function s4(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function jm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function E7(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var c4={exports:{}},qg={},l4={exports:{}},Ke={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Nm=Symbol.for("react.element"),B7=Symbol.for("react.portal"),F7=Symbol.for("react.fragment"),O7=Symbol.for("react.strict_mode"),L7=Symbol.for("react.profiler"),W7=Symbol.for("react.provider"),U7=Symbol.for("react.context"),H7=Symbol.for("react.forward_ref"),Z7=Symbol.for("react.suspense"),V7=Symbol.for("react.memo"),q7=Symbol.for("react.lazy"),KS=Symbol.iterator;function _7(e){return e===null||typeof e!="object"?null:(e=KS&&e[KS]||e["@@iterator"],typeof e=="function"?e:null)}var d4={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},u4=Object.assign,A4={};function ku(e,t,n){this.props=e,this.context=t,this.refs=A4,this.updater=n||d4}ku.prototype.isReactComponent={};ku.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ku.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function f4(){}f4.prototype=ku.prototype;function lx(e,t,n){this.props=e,this.context=t,this.refs=A4,this.updater=n||d4}var dx=lx.prototype=new f4;dx.constructor=lx;u4(dx,ku.prototype);dx.isPureReactComponent=!0;var JS=Array.isArray,m4=Object.prototype.hasOwnProperty,ux={current:null},v4={key:!0,ref:!0,__self:!0,__source:!0};function p4(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)m4.call(t,r)&&!v4.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1>>1,z=I[W];if(0>>1;Wo(P,D))Uo(B,P)?(I[W]=B,I[U]=D,W=U):(I[W]=P,I[q]=D,W=q);else if(Uo(B,D))I[W]=B,I[U]=D,W=U;else break e}}return E}function o(I,E){var D=I.sortIndex-E.sortIndex;return D!==0?D:I.id-E.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var c=[],l=[],d=1,A=null,f=3,m=!1,v=!1,p=!1,y=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(I){for(var E=n(l);E!==null;){if(E.callback===null)r(l);else if(E.startTime<=I)r(l),E.sortIndex=E.expirationTime,t(c,E);else break;E=n(l)}}function x(I){if(p=!1,w(I),!v)if(n(c)!==null)v=!0,_(k);else{var E=n(l);E!==null&&Y(x,E.startTime-I)}}function k(I,E){v=!1,p&&(p=!1,b(C),C=-1),m=!0;var D=f;try{for(w(E),A=n(c);A!==null&&(!(A.expirationTime>E)||I&&!T());){var W=A.callback;if(typeof W=="function"){A.callback=null,f=A.priorityLevel;var z=W(A.expirationTime<=E);E=e.unstable_now(),typeof z=="function"?A.callback=z:A===n(c)&&r(c),w(E)}else r(c);A=n(c)}if(A!==null)var L=!0;else{var q=n(l);q!==null&&Y(x,q.startTime-E),L=!1}return L}finally{A=null,f=D,m=!1}}var S=!1,N=null,C=-1,M=5,j=-1;function T(){return!(e.unstable_now()-jI||125W?(I.sortIndex=D,t(l,I),n(c)===null&&I===n(l)&&(p?(b(C),C=-1):p=!0,Y(x,D-W))):(I.sortIndex=z,t(c,I),v||m||(v=!0,_(k))),I},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(I){var E=f;return function(){var D=f;f=E;try{return I.apply(this,arguments)}finally{f=D}}}})(w4);y4.exports=w4;var iz=y4.exports;/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var az=g,oo=iz;function ue(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),xy=Object.prototype.hasOwnProperty,sz=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,$S={},ej={};function cz(e){return xy.call(ej,e)?!0:xy.call($S,e)?!1:sz.test(e)?ej[e]=!0:($S[e]=!0,!1)}function lz(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function dz(e,t,n,r){if(t===null||typeof t>"u"||lz(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function wr(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var Vn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Vn[e]=new wr(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Vn[t]=new wr(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Vn[e]=new wr(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Vn[e]=new wr(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Vn[e]=new wr(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Vn[e]=new wr(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Vn[e]=new wr(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Vn[e]=new wr(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Vn[e]=new wr(e,5,!1,e.toLowerCase(),null,!1,!1)});var fx=/[\-:]([a-z])/g;function mx(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(fx,mx);Vn[t]=new wr(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(fx,mx);Vn[t]=new wr(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(fx,mx);Vn[t]=new wr(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Vn[e]=new wr(e,1,!1,e.toLowerCase(),null,!1,!1)});Vn.xlinkHref=new wr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Vn[e]=new wr(e,1,!1,e.toLowerCase(),null,!0,!0)});function vx(e,t,n,r){var o=Vn.hasOwnProperty(t)?Vn[t]:null;(o!==null?o.type!==0:r||!(2s||o[a]!==i[s]){var c=` `+o[a].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=a&&0<=s);break}}}finally{pb=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?TA(e):""}function uz(e){switch(e.tag){case 5:return TA(e.type);case 16:return TA("Lazy");case 13:return TA("Suspense");case 19:return TA("SuspenseList");case 0:case 2:case 15:return e=gb(e.type,!1),e;case 11:return e=gb(e.type.render,!1),e;case 1:return e=gb(e.type,!0),e;default:return""}}function Ny(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case rd:return"Fragment";case nd:return"Portal";case ky:return"Profiler";case px:return"StrictMode";case Sy:return"Suspense";case jy:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case S4:return(e.displayName||"Context")+".Consumer";case k4:return(e._context.displayName||"Context")+".Provider";case gx:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case hx:return t=e.displayName||null,t!==null?t:Ny(e.type)||"Memo";case Xa:t=e._payload,e=e._init;try{return Ny(e(t))}catch{}}return null}function Az(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ny(t);case 8:return t===px?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ms(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function N4(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function fz(e){var t=N4(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function l0(e){e._valueTracker||(e._valueTracker=fz(e))}function C4(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=N4(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function mp(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Cy(e,t){var n=t.checked;return Jt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function nj(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ms(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function T4(e,t){t=t.checked,t!=null&&vx(e,"checked",t,!1)}function Ty(e,t){T4(e,t);var n=Ms(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Iy(e,t.type,n):t.hasOwnProperty("defaultValue")&&Iy(e,t.type,Ms(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function rj(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Iy(e,t,n){(t!=="number"||mp(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var IA=Array.isArray;function kd(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=d0.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function If(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var GA={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},mz=["Webkit","ms","Moz","O"];Object.keys(GA).forEach(function(e){mz.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),GA[t]=GA[e]})});function M4(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||GA.hasOwnProperty(e)&&GA[e]?(""+t).trim():t+"px"}function R4(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=M4(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var vz=Jt({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function My(e,t){if(t){if(vz[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ue(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ue(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ue(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ue(62))}}function Ry(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var zy=null;function bx(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ey=null,Sd=null,jd=null;function aj(e){if(e=Im(e)){if(typeof Ey!="function")throw Error(ue(280));var t=e.stateNode;t&&(t=Kg(t),Ey(e.stateNode,e.type,t))}}function z4(e){Sd?jd?jd.push(e):jd=[e]:Sd=e}function E4(){if(Sd){var e=Sd,t=jd;if(jd=Sd=null,aj(e),t)for(e=0;e>>=0,e===0?32:31-(Nz(e)/Cz|0)|0}var u0=64,A0=4194304;function PA(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function hp(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~o;s!==0?r=PA(s):(i&=a,i!==0&&(r=PA(i)))}else a=n&~o,a!==0?r=PA(a):i!==0&&(r=PA(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Cm(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ti(t),e[t]=n}function Dz(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=KA),vj=" ",pj=!1;function tI(e,t){switch(e){case"keyup":return iE.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nI(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var od=!1;function sE(e,t){switch(e){case"compositionend":return nI(t);case"keypress":return t.which!==32?null:(pj=!0,vj);case"textInput":return e=t.data,e===vj&&pj?null:e;default:return null}}function cE(e,t){if(od)return e==="compositionend"||!Cx&&tI(e,t)?(e=$4(),Cv=Sx=rs=null,od=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=yj(n)}}function aI(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?aI(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function sI(){for(var e=window,t=mp();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=mp(e.document)}return t}function Tx(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function gE(e){var t=sI(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&aI(n.ownerDocument.documentElement,n)){if(r!==null&&Tx(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=wj(n,i);var a=wj(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,id=null,Uy=null,QA=null,Hy=!1;function xj(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hy||id==null||id!==mp(r)||(r=id,"selectionStart"in r&&Tx(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),QA&&Ef(QA,r)||(QA=r,r=wp(Uy,"onSelect"),0cd||(e.current=Gy[cd],Gy[cd]=null,cd--)}function It(e,t){cd++,Gy[cd]=e.current,e.current=t}var Rs={},rr=Xs(Rs),Br=Xs(!1),el=Rs;function Xd(e,t){var n=e.type.contextTypes;if(!n)return Rs;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Fr(e){return e=e.childContextTypes,e!=null}function kp(){Ot(Br),Ot(rr)}function Ij(e,t,n){if(rr.current!==Rs)throw Error(ue(168));It(rr,t),It(Br,n)}function pI(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(ue(108,Az(e)||"Unknown",o));return Jt({},n,r)}function Sp(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Rs,el=rr.current,It(rr,e),It(Br,Br.current),!0}function Pj(e,t,n){var r=e.stateNode;if(!r)throw Error(ue(169));n?(e=pI(e,t,el),r.__reactInternalMemoizedMergedChildContext=e,Ot(Br),Ot(rr),It(rr,e)):Ot(Br),It(Br,n)}var Ji=null,Jg=!1,Db=!1;function gI(e){Ji===null?Ji=[e]:Ji.push(e)}function IE(e){Jg=!0,gI(e)}function Gs(){if(!Db&&Ji!==null){Db=!0;var e=0,t=yt;try{var n=Ji;for(yt=1;e>=a,o-=a,na=1<<32-ti(t)+o|n<C?(M=N,N=null):M=N.sibling;var j=f(b,N,w[C],x);if(j===null){N===null&&(N=M);break}e&&N&&j.alternate===null&&t(b,N),h=i(j,h,C),S===null?k=j:S.sibling=j,S=j,N=M}if(C===w.length)return n(b,N),Vt&&gc(b,C),k;if(N===null){for(;CC?(M=N,N=null):M=N.sibling;var T=f(b,N,j.value,x);if(T===null){N===null&&(N=M);break}e&&N&&T.alternate===null&&t(b,N),h=i(T,h,C),S===null?k=T:S.sibling=T,S=T,N=M}if(j.done)return n(b,N),Vt&&gc(b,C),k;if(N===null){for(;!j.done;C++,j=w.next())j=A(b,j.value,x),j!==null&&(h=i(j,h,C),S===null?k=j:S.sibling=j,S=j);return Vt&&gc(b,C),k}for(N=r(b,N);!j.done;C++,j=w.next())j=m(N,b,C,j.value,x),j!==null&&(e&&j.alternate!==null&&N.delete(j.key===null?C:j.key),h=i(j,h,C),S===null?k=j:S.sibling=j,S=j);return e&&N.forEach(function(F){return t(b,F)}),Vt&&gc(b,C),k}function y(b,h,w,x){if(typeof w=="object"&&w!==null&&w.type===rd&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case c0:e:{for(var k=w.key,S=h;S!==null;){if(S.key===k){if(k=w.type,k===rd){if(S.tag===7){n(b,S.sibling),h=o(S,w.props.children),h.return=b,b=h;break e}}else if(S.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Xa&&Rj(k)===S.type){n(b,S.sibling),h=o(S,w.props),h.ref=Qu(b,S,w),h.return=b,b=h;break e}n(b,S);break}else t(b,S);S=S.sibling}w.type===rd?(h=Zc(w.props.children,b.mode,x,w.key),h.return=b,b=h):(x=Ev(w.type,w.key,w.props,null,b.mode,x),x.ref=Qu(b,h,w),x.return=b,b=x)}return a(b);case nd:e:{for(S=w.key;h!==null;){if(h.key===S)if(h.tag===4&&h.stateNode.containerInfo===w.containerInfo&&h.stateNode.implementation===w.implementation){n(b,h.sibling),h=o(h,w.children||[]),h.return=b,b=h;break e}else{n(b,h);break}else t(b,h);h=h.sibling}h=Lb(w,b.mode,x),h.return=b,b=h}return a(b);case Xa:return S=w._init,y(b,h,S(w._payload),x)}if(IA(w))return v(b,h,w,x);if(Xu(w))return p(b,h,w,x);b0(b,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,h!==null&&h.tag===6?(n(b,h.sibling),h=o(h,w),h.return=b,b=h):(n(b,h),h=Ob(w,b.mode,x),h.return=b,b=h),a(b)):n(b,h)}return y}var Yd=wI(!0),xI=wI(!1),Cp=Xs(null),Tp=null,ud=null,Mx=null;function Rx(){Mx=ud=Tp=null}function zx(e){var t=Cp.current;Ot(Cp),e._currentValue=t}function Jy(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Cd(e,t){Tp=e,Mx=ud=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(zr=!0),e.firstContext=null)}function Do(e){var t=e._currentValue;if(Mx!==e)if(e={context:e,memoizedValue:t,next:null},ud===null){if(Tp===null)throw Error(ue(308));ud=e,Tp.dependencies={lanes:0,firstContext:e}}else ud=ud.next=e;return t}var Dc=null;function Ex(e){Dc===null?Dc=[e]:Dc.push(e)}function kI(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Ex(t)):(n.next=o.next,o.next=n),t.interleaved=n,ga(e,r)}function ga(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ga=!1;function Bx(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function SI(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ca(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function vs(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,at&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,ga(e,n)}return o=r.interleaved,o===null?(t.next=t,Ex(r)):(t.next=o.next,o.next=t),r.interleaved=t,ga(e,n)}function Iv(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,wx(e,n)}}function zj(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ip(e,t,n,r){var o=e.updateQueue;Ga=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var c=s,l=c.next;c.next=null,a===null?i=l:a.next=l,a=c;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=l:s.next=l,d.lastBaseUpdate=c))}if(i!==null){var A=o.baseState;a=0,d=l=c=null,s=i;do{var f=s.lane,m=s.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:m,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var v=e,p=s;switch(f=t,m=n,p.tag){case 1:if(v=p.payload,typeof v=="function"){A=v.call(m,A,f);break e}A=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=p.payload,f=typeof v=="function"?v.call(m,A,f):v,f==null)break e;A=Jt({},A,f);break e;case 2:Ga=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=o.effects,f===null?o.effects=[s]:f.push(s))}else m={eventTime:m,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(l=d=m,c=A):d=d.next=m,a|=f;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);if(d===null&&(c=A),o.baseState=c,o.firstBaseUpdate=l,o.lastBaseUpdate=d,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);rl|=a,e.lanes=a,e.memoizedState=A}}function Ej(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Rb.transition;Rb.transition={};try{e(!1),t()}finally{yt=n,Rb.transition=r}}function UI(){return Mo().memoizedState}function RE(e,t,n){var r=gs(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},HI(e))ZI(t,n);else if(n=kI(e,t,n,r),n!==null){var o=pr();ni(n,e,r,o),VI(n,t,r)}}function zE(e,t,n){var r=gs(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(HI(e))ZI(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,n);if(o.hasEagerState=!0,o.eagerState=s,ai(s,a)){var c=t.interleaved;c===null?(o.next=o,Ex(t)):(o.next=c.next,c.next=o),t.interleaved=o;return}}catch{}finally{}n=kI(e,t,o,r),n!==null&&(o=pr(),ni(n,e,r,o),VI(n,t,r))}}function HI(e){var t=e.alternate;return e===Kt||t!==null&&t===Kt}function ZI(e,t){$A=Dp=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function VI(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,wx(e,n)}}var Mp={readContext:Do,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useInsertionEffect:qn,useLayoutEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useMutableSource:qn,useSyncExternalStore:qn,useId:qn,unstable_isNewReconciler:!1},EE={readContext:Do,useCallback:function(e,t){return xi().memoizedState=[e,t===void 0?null:t],e},useContext:Do,useEffect:Fj,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Dv(4194308,4,BI.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Dv(4194308,4,e,t)},useInsertionEffect:function(e,t){return Dv(4,2,e,t)},useMemo:function(e,t){var n=xi();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=xi();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=RE.bind(null,Kt,e),[r.memoizedState,e]},useRef:function(e){var t=xi();return e={current:e},t.memoizedState=e},useState:Bj,useDebugValue:Vx,useDeferredValue:function(e){return xi().memoizedState=e},useTransition:function(){var e=Bj(!1),t=e[0];return e=ME.bind(null,e[1]),xi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Kt,o=xi();if(Vt){if(n===void 0)throw Error(ue(407));n=n()}else{if(n=t(),Dn===null)throw Error(ue(349));nl&30||TI(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Fj(PI.bind(null,r,i,e),[e]),r.flags|=2048,Zf(9,II.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=xi(),t=Dn.identifierPrefix;if(Vt){var n=ra,r=na;n=(r&~(1<<32-ti(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Uf++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Ii]=t,e[Of]=r,eP(e,t,!1,!1),t.stateNode=e;e:{switch(a=Ry(n,r),n){case"dialog":zt("cancel",e),zt("close",e),o=r;break;case"iframe":case"object":case"embed":zt("load",e),o=r;break;case"video":case"audio":for(o=0;oQd&&(t.flags|=128,r=!0,$u(i,!1),t.lanes=4194304)}else{if(!r)if(e=Pp(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),$u(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Vt)return _n(t),null}else 2*cn()-i.renderingStartTime>Qd&&n!==1073741824&&(t.flags|=128,r=!0,$u(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=cn(),t.sibling=null,n=Gt.current,It(Gt,r?n&1|2:n&1),t):(_n(t),null);case 22:case 23:return Kx(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Gr&1073741824&&(_n(t),t.subtreeFlags&6&&(t.flags|=8192)):_n(t),null;case 24:return null;case 25:return null}throw Error(ue(156,t.tag))}function ZE(e,t){switch(Px(t),t.tag){case 1:return Fr(t.type)&&kp(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Kd(),Ot(Br),Ot(rr),Lx(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ox(t),null;case 13:if(Ot(Gt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ue(340));Gd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ot(Gt),null;case 4:return Kd(),null;case 10:return zx(t.type._context),null;case 22:case 23:return Kx(),null;case 24:return null;default:return null}}var w0=!1,Jn=!1,VE=typeof WeakSet=="function"?WeakSet:Set,ye=null;function Ad(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){nn(e,t,r)}else n.current=null}function aw(e,t,n){try{n()}catch(r){nn(e,t,r)}}var Gj=!1;function qE(e,t){if(Zy=bp,e=sI(),Tx(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,s=-1,c=-1,l=0,d=0,A=e,f=null;t:for(;;){for(var m;A!==n||o!==0&&A.nodeType!==3||(s=a+o),A!==i||r!==0&&A.nodeType!==3||(c=a+r),A.nodeType===3&&(a+=A.nodeValue.length),(m=A.firstChild)!==null;)f=A,A=m;for(;;){if(A===e)break t;if(f===n&&++l===o&&(s=a),f===i&&++d===r&&(c=a),(m=A.nextSibling)!==null)break;A=f,f=A.parentNode}A=m}n=s===-1||c===-1?null:{start:s,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Vy={focusedElem:e,selectionRange:n},bp=!1,ye=t;ye!==null;)if(t=ye,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ye=e;else for(;ye!==null;){t=ye;try{var v=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var p=v.memoizedProps,y=v.memoizedState,b=t.stateNode,h=b.getSnapshotBeforeUpdate(t.elementType===t.type?p:Yo(t.type,p),y);b.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ue(163))}}catch(x){nn(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,ye=e;break}ye=t.return}return v=Gj,Gj=!1,v}function ef(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&aw(t,n,i)}o=o.next}while(o!==r)}}function eh(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function sw(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function rP(e){var t=e.alternate;t!==null&&(e.alternate=null,rP(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ii],delete t[Of],delete t[Xy],delete t[CE],delete t[TE])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function oP(e){return e.tag===5||e.tag===3||e.tag===4}function Yj(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||oP(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function cw(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=xp));else if(r!==4&&(e=e.child,e!==null))for(cw(e,t,n),e=e.sibling;e!==null;)cw(e,t,n),e=e.sibling}function lw(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(lw(e,t,n),e=e.sibling;e!==null;)lw(e,t,n),e=e.sibling}var On=null,Ko=!1;function za(e,t,n){for(n=n.child;n!==null;)iP(e,t,n),n=n.sibling}function iP(e,t,n){if(Di&&typeof Di.onCommitFiberUnmount=="function")try{Di.onCommitFiberUnmount(_g,n)}catch{}switch(n.tag){case 5:Jn||Ad(n,t);case 6:var r=On,o=Ko;On=null,za(e,t,n),On=r,Ko=o,On!==null&&(Ko?(e=On,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):On.removeChild(n.stateNode));break;case 18:On!==null&&(Ko?(e=On,n=n.stateNode,e.nodeType===8?Pb(e.parentNode,n):e.nodeType===1&&Pb(e,n),Rf(e)):Pb(On,n.stateNode));break;case 4:r=On,o=Ko,On=n.stateNode.containerInfo,Ko=!0,za(e,t,n),On=r,Ko=o;break;case 0:case 11:case 14:case 15:if(!Jn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&aw(n,t,a),o=o.next}while(o!==r)}za(e,t,n);break;case 1:if(!Jn&&(Ad(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){nn(n,t,s)}za(e,t,n);break;case 21:za(e,t,n);break;case 22:n.mode&1?(Jn=(r=Jn)||n.memoizedState!==null,za(e,t,n),Jn=r):za(e,t,n);break;default:za(e,t,n)}}function Kj(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new VE),t.forEach(function(r){var o=eB.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Eo(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=a),r&=~i}if(r=o,r=cn()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*XE(r/1960))-r,10e?16:e,os===null)var r=!1;else{if(e=os,os=null,Ep=0,at&6)throw Error(ue(331));var o=at;for(at|=4,ye=e.current;ye!==null;){var i=ye,a=i.child;if(ye.flags&16){var s=i.deletions;if(s!==null){for(var c=0;ccn()-Gx?Hc(e,0):Xx|=n),Or(e,t)}function fP(e,t){t===0&&(e.mode&1?(t=A0,A0<<=1,!(A0&130023424)&&(A0=4194304)):t=1);var n=pr();e=ga(e,t),e!==null&&(Cm(e,t,n),Or(e,n))}function $E(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fP(e,n)}function eB(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ue(314))}r!==null&&r.delete(t),fP(e,n)}var mP;mP=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Br.current)zr=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return zr=!1,UE(e,t,n);zr=!!(e.flags&131072)}else zr=!1,Vt&&t.flags&1048576&&hI(t,Np,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mv(e,t),e=t.pendingProps;var o=Xd(t,rr.current);Cd(t,n),o=Ux(null,t,r,e,o,n);var i=Hx();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Fr(r)?(i=!0,Sp(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Bx(t),o.updater=$g,t.stateNode=o,o._reactInternals=t,$y(t,r,e,n),t=nw(null,t,r,!0,i,n)):(t.tag=0,Vt&&i&&Ix(t),cr(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mv(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=nB(r),e=Yo(r,e),o){case 0:t=tw(null,t,r,e,n);break e;case 1:t=qj(null,t,r,e,n);break e;case 11:t=Zj(null,t,r,e,n);break e;case 14:t=Vj(null,t,r,Yo(r.type,e),n);break e}throw Error(ue(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Yo(r,o),tw(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Yo(r,o),qj(e,t,r,o,n);case 3:e:{if(JI(t),e===null)throw Error(ue(387));r=t.pendingProps,i=t.memoizedState,o=i.element,SI(e,t),Ip(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=Jd(Error(ue(423)),t),t=_j(e,t,r,n,o);break e}else if(r!==o){o=Jd(Error(ue(424)),t),t=_j(e,t,r,n,o);break e}else for(Qr=ms(t.stateNode.containerInfo.firstChild),eo=t,Vt=!0,Qo=null,n=xI(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Gd(),r===o){t=ha(e,t,n);break e}cr(e,t,r,n)}t=t.child}return t;case 5:return jI(t),e===null&&Ky(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,qy(r,o)?a=null:i!==null&&qy(r,i)&&(t.flags|=32),KI(e,t),cr(e,t,a,n),t.child;case 6:return e===null&&Ky(t),null;case 13:return QI(e,t,n);case 4:return Fx(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Yd(t,null,r,n):cr(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Yo(r,o),Zj(e,t,r,o,n);case 7:return cr(e,t,t.pendingProps,n),t.child;case 8:return cr(e,t,t.pendingProps.children,n),t.child;case 12:return cr(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,It(Cp,r._currentValue),r._currentValue=a,i!==null)if(ai(i.value,a)){if(i.children===o.children&&!Br.current){t=ha(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var c=s.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=ca(-1,n&-n),c.tag=2;var l=i.updateQueue;if(l!==null){l=l.shared;var d=l.pending;d===null?c.next=c:(c.next=d.next,d.next=c),l.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Jy(i.return,n,t),s.lanes|=n;break}c=c.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ue(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),Jy(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}cr(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Cd(t,n),o=Do(o),r=r(o),t.flags|=1,cr(e,t,r,n),t.child;case 14:return r=t.type,o=Yo(r,t.pendingProps),o=Yo(r.type,o),Vj(e,t,r,o,n);case 15:return GI(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Yo(r,o),Mv(e,t),t.tag=1,Fr(r)?(e=!0,Sp(t)):e=!1,Cd(t,n),qI(t,r,o),$y(t,r,o,n),nw(null,t,r,!0,e,n);case 19:return $I(e,t,n);case 22:return YI(e,t,n)}throw Error(ue(156,t.tag))};function vP(e,t){return H4(e,t)}function tB(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Co(e,t,n,r){return new tB(e,t,n,r)}function Qx(e){return e=e.prototype,!(!e||!e.isReactComponent)}function nB(e){if(typeof e=="function")return Qx(e)?1:0;if(e!=null){if(e=e.$$typeof,e===gx)return 11;if(e===hx)return 14}return 2}function hs(e,t){var n=e.alternate;return n===null?(n=Co(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ev(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")Qx(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case rd:return Zc(n.children,o,i,t);case px:a=8,o|=8;break;case ky:return e=Co(12,n,t,o|2),e.elementType=ky,e.lanes=i,e;case Sy:return e=Co(13,n,t,o),e.elementType=Sy,e.lanes=i,e;case jy:return e=Co(19,n,t,o),e.elementType=jy,e.lanes=i,e;case j4:return nh(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case k4:a=10;break e;case S4:a=9;break e;case gx:a=11;break e;case hx:a=14;break e;case Xa:a=16,r=null;break e}throw Error(ue(130,e==null?e:typeof e,""))}return t=Co(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Zc(e,t,n,r){return e=Co(7,e,r,t),e.lanes=n,e}function nh(e,t,n,r){return e=Co(22,e,r,t),e.elementType=j4,e.lanes=n,e.stateNode={isHidden:!1},e}function Ob(e,t,n){return e=Co(6,e,null,t),e.lanes=n,e}function Lb(e,t,n){return t=Co(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function rB(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=bb(0),this.expirationTimes=bb(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=bb(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function $x(e,t,n,r,o,i,a,s,c){return e=new rB(e,t,n,s,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Co(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Bx(i),e}function oB(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(bP)}catch(e){console.error(e)}}bP(),b4.exports=lo;var zs=b4.exports;const S0=jm(zs);var oN=zs;wy.createRoot=oN.createRoot,wy.hydrateRoot=oN.hydrateRoot;function ba(){return ba=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}/** * React Router v6.3.0 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */const sh=g.createContext(null),Dm=g.createContext(null),pl=g.createContext({outlet:null,matches:[]});function io(e,t){throw new Error(t)}function fB(e,t){return t===void 0&&(t={}),e.replace(/:(\w+)/g,(n,r)=>(t[r]==null&&io(),t[r])).replace(/\/*\*$/,n=>t["*"]==null?"":t["*"].replace(/^\/*/,"/"))}function wP(e,t,n){n===void 0&&(n="/");let r=typeof t=="string"?Ro(t):t,o=jP(r.pathname||"/",n);if(o==null)return null;let i=xP(e);mB(i);let a=null;for(let s=0;a==null&&s{let a={relativePath:o.path||"",caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};a.relativePath.startsWith("/")&&(a.relativePath.startsWith(r)||io(),a.relativePath=a.relativePath.slice(r.length));let s=ys([r,a.relativePath]),c=n.concat(a);o.children&&o.children.length>0&&(o.index===!0&&io(),xP(o.children,t,c,s)),!(o.path==null&&!o.index)&&t.push({path:s,score:wB(s,o.index),routesMeta:c})}),t}function mB(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:xB(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const vB=/^:\w+$/,pB=3,gB=2,hB=1,bB=10,yB=-2,aN=e=>e==="*";function wB(e,t){let n=e.split("/"),r=n.length;return n.some(aN)&&(r+=yB),t&&(r+=gB),n.filter(o=>!aN(o)).reduce((o,i)=>o+(vB.test(i)?pB:i===""?hB:bB),r)}function xB(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function kB(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let a=0;a{if(d==="*"){let f=s[A]||"";a=i.slice(0,i.length-f.length).replace(/(.)\/+$/,"$1")}return l[d]=jB(s[A]||""),l},{}),pathname:i,pathnameBase:a,pattern:e}}function SB(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0);let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/:(\w+)/g,(a,s)=>(r.push(s),"([^\\/]+)"));return e.endsWith("*")?(r.push("*"),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):o+=n?"\\/*$":"(?:(?=[.~-]|%[0-9A-F]{2})|\\b|\\/|$)",[new RegExp(o,t?void 0:"i"),r]}function jB(e,t){try{return decodeURIComponent(e)}catch{return e}}function kP(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Ro(e):e;return{pathname:n?n.startsWith("/")?n:NB(n,t):t,search:TB(r),hash:IB(o)}}function NB(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function SP(e,t,n){let r=typeof e=="string"?Ro(e):e,o=e===""||r.pathname===""?"/":r.pathname,i;if(o==null)i=n;else{let s=t.length-1;if(o.startsWith("..")){let c=o.split("/");for(;c[0]==="..";)c.shift(),s-=1;r.pathname=c.join("/")}i=s>=0?t[s]:"/"}let a=kP(r,i);return o&&o!=="/"&&o.endsWith("/")&&!a.pathname.endsWith("/")&&(a.pathname+="/"),a}function CB(e){return e===""||e.pathname===""?"/":typeof e=="string"?Ro(e).pathname:e.pathname}function jP(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=e.charAt(t.length);return n&&n!=="/"?null:e.slice(t.length)||"/"}const ys=e=>e.join("/").replace(/\/\/+/g,"/"),NP=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),TB=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,IB=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function CP(e){Ys()||io();let{basename:t,navigator:n}=g.useContext(sh),{hash:r,pathname:o,search:i}=ch(e),a=o;if(t!=="/"){let s=CB(e),c=s!=null&&s.endsWith("/");a=o==="/"?t+(c?"/":""):ys([t,o])}return n.createHref({pathname:a,search:i,hash:r})}function Ys(){return g.useContext(Dm)!=null}function Ao(){return Ys()||io(),g.useContext(Dm).location}function PB(){return g.useContext(Dm).navigationType}function DB(e){Ys()||io();let{pathname:t}=Ao();return g.useMemo(()=>rk(e,t),[t,e])}function gl(){Ys()||io();let{basename:e,navigator:t}=g.useContext(sh),{matches:n}=g.useContext(pl),{pathname:r}=Ao(),o=JSON.stringify(n.map(s=>s.pathnameBase)),i=g.useRef(!1);return g.useEffect(()=>{i.current=!0}),g.useCallback(function(s,c){if(c===void 0&&(c={}),!i.current)return;if(typeof s=="number"){t.go(s);return}let l=SP(s,JSON.parse(o),r);e!=="/"&&(l.pathname=ys([e,l.pathname])),(c.replace?t.replace:t.push)(l,c.state)},[e,t,o,r])}const TP=g.createContext(null);function MB(){return g.useContext(TP)}function IP(e){let t=g.useContext(pl).outlet;return t&&g.createElement(TP.Provider,{value:e},t)}function RB(){let{matches:e}=g.useContext(pl),t=e[e.length-1];return t?t.params:{}}function ch(e){let{matches:t}=g.useContext(pl),{pathname:n}=Ao(),r=JSON.stringify(t.map(o=>o.pathnameBase));return g.useMemo(()=>SP(e,JSON.parse(r),n),[e,r,n])}function PP(e,t){Ys()||io();let{matches:n}=g.useContext(pl),r=n[n.length-1],o=r?r.params:{};r&&r.pathname;let i=r?r.pathnameBase:"/";r&&r.route;let a=Ao(),s;if(t){var c;let f=typeof t=="string"?Ro(t):t;i==="/"||(c=f.pathname)!=null&&c.startsWith(i)||io(),s=f}else s=a;let l=s.pathname||"/",d=i==="/"?l:l.slice(i.length)||"/",A=wP(e,{pathname:d});return DP(A&&A.map(f=>Object.assign({},f,{params:Object.assign({},o,f.params),pathname:ys([i,f.pathname]),pathnameBase:f.pathnameBase==="/"?i:ys([i,f.pathnameBase])})),n)}function DP(e,t){return t===void 0&&(t=[]),e==null?null:e.reduceRight((n,r,o)=>g.createElement(pl.Provider,{children:r.route.element!==void 0?r.route.element:n,value:{outlet:n,matches:t.concat(e.slice(0,o+1))}}),null)}function zB(e){let{basename:t,children:n,initialEntries:r,initialIndex:o}=e,i=g.useRef();i.current==null&&(i.current=AB({initialEntries:r,initialIndex:o}));let a=i.current,[s,c]=g.useState({action:a.action,location:a.location});return g.useLayoutEffect(()=>a.listen(c),[a]),g.createElement(Mm,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a})}function EB(e){let{to:t,replace:n,state:r}=e;Ys()||io();let o=gl();return g.useEffect(()=>{o(t,{replace:n,state:r})}),null}function BB(e){return IP(e.context)}function ok(e){io()}function Mm(e){let{basename:t="/",children:n=null,location:r,navigationType:o=tr.Pop,navigator:i,static:a=!1}=e;Ys()&&io();let s=NP(t),c=g.useMemo(()=>({basename:s,navigator:i,static:a}),[s,i,a]);typeof r=="string"&&(r=Ro(r));let{pathname:l="/",search:d="",hash:A="",state:f=null,key:m="default"}=r,v=g.useMemo(()=>{let p=jP(l,s);return p==null?null:{pathname:p,search:d,hash:A,state:f,key:m}},[s,l,d,A,f,m]);return v==null?null:g.createElement(sh.Provider,{value:c},g.createElement(Dm.Provider,{children:n,value:{location:v,navigationType:o}}))}function MP(e){let{children:t,location:n}=e;return PP(Up(t),n)}function Up(e){let t=[];return g.Children.forEach(e,n=>{if(!g.isValidElement(n))return;if(n.type===g.Fragment){t.push.apply(t,Up(n.props.children));return}n.type!==ok&&io();let r={caseSensitive:n.props.caseSensitive,element:n.props.element,index:n.props.index,path:n.props.path};n.props.children&&(r.children=Up(n.props.children)),t.push(r)}),t}function FB(e){return DP(e)}/** * React Router DOM v6.3.0 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Hp(){return Hp=Object.assign||function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}const OB=["onClick","reloadDocument","replace","state","target","to"],LB=["aria-current","caseSensitive","className","end","style","to","children"];function zP(e){let{basename:t,children:n,window:r}=e,o=g.useRef();o.current==null&&(o.current=dB({window:r}));let i=o.current,[a,s]=g.useState({action:i.action,location:i.location});return g.useLayoutEffect(()=>i.listen(s),[i]),g.createElement(Mm,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:i})}function WB(e){let{basename:t,children:n,window:r}=e,o=g.useRef();o.current==null&&(o.current=uB({window:r}));let i=o.current,[a,s]=g.useState({action:i.action,location:i.location});return g.useLayoutEffect(()=>i.listen(s),[i]),g.createElement(Mm,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:i})}function UB(e){let{basename:t,children:n,history:r}=e;const[o,i]=g.useState({action:r.action,location:r.location});return g.useLayoutEffect(()=>r.listen(i),[r]),g.createElement(Mm,{basename:t,children:n,location:o.location,navigationType:o.action,navigator:r})}function HB(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const jt=g.forwardRef(function(t,n){let{onClick:r,reloadDocument:o,replace:i=!1,state:a,target:s,to:c}=t,l=RP(t,OB),d=CP(c),A=EP(c,{replace:i,state:a,target:s});function f(m){r&&r(m),!m.defaultPrevented&&!o&&A(m)}return g.createElement("a",Hp({},l,{href:d,onClick:f,ref:n,target:s}))}),ZB=g.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:a=!1,style:s,to:c,children:l}=t,d=RP(t,LB),A=Ao(),f=ch(c),m=A.pathname,v=f.pathname;o||(m=m.toLowerCase(),v=v.toLowerCase());let p=m===v||!a&&m.startsWith(v)&&m.charAt(v.length)==="/",y=p?r:void 0,b;typeof i=="function"?b=i({isActive:p}):b=[i,p?"active":null].filter(Boolean).join(" ");let h=typeof s=="function"?s({isActive:p}):s;return g.createElement(jt,Hp({},d,{"aria-current":y,className:b,ref:n,style:h,to:c}),typeof l=="function"?l({isActive:p}):l)});function EP(e,t){let{target:n,replace:r,state:o}=t===void 0?{}:t,i=gl(),a=Ao(),s=ch(e);return g.useCallback(c=>{if(c.button===0&&(!n||n==="_self")&&!HB(c)){c.preventDefault();let l=!!r||bs(a)===bs(s);i(e,{replace:l,state:o})}},[a,i,s,r,o,n,e])}function Ks(e){let t=g.useRef(Bv(e)),n=Ao(),r=g.useMemo(()=>{let a=Bv(n.search);for(let s of t.current.keys())a.has(s)||t.current.getAll(s).forEach(c=>{a.append(s,c)});return a},[n.search]),o=gl(),i=g.useCallback((a,s)=>{o("?"+Bv(a),s)},[o]);return[r,i]}function Bv(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}const VB=Object.freeze(Object.defineProperty({__proto__:null,BrowserRouter:zP,HashRouter:WB,Link:jt,MemoryRouter:zB,NavLink:ZB,Navigate:EB,get NavigationType(){return tr},Outlet:BB,Route:ok,Router:Mm,Routes:MP,UNSAFE_LocationContext:Dm,UNSAFE_NavigationContext:sh,UNSAFE_RouteContext:pl,createPath:bs,createRoutesFromChildren:Up,createSearchParams:Bv,generatePath:fB,matchPath:rk,matchRoutes:wP,parsePath:Ro,renderMatches:FB,resolvePath:kP,unstable_HistoryRouter:UB,useHref:CP,useInRouterContext:Ys,useLinkClickHandler:EP,useLocation:Ao,useMatch:DB,useNavigate:gl,useNavigationType:PB,useOutlet:IP,useOutletContext:MB,useParams:RB,useResolvedPath:ch,useRoutes:PP,useSearchParams:Ks},Symbol.toStringTag,{value:"Module"}));(e=>{Array.prototype.distinct=function(){const t=new Set;return this.filter(n=>t.has(n)?!1:(t.add(n),!0))},Array.prototype.distinctBy=function(t){const n=new Set;return this.filter(r=>{const o=t(r);return n.has(o)?!1:(n.add(o),!0)})},Array.prototype.groupBy=function(t){const n=new Map;return this.forEach(r=>{const o=t(r);n.has(o)||n.set(o,[]),n.get(o).push(r)}),n},Array.prototype.groupJoin=function(t,n,r,o){const i=new Map;t.forEach(s=>{const c=r(s);i.has(c)||i.set(c,[]),i.get(c).push(s)});const a=[];return this.forEach(s=>{const c=n(s),l=i.get(c)||[];a.push(o(s,l))}),a},Array.prototype.manyToManyJoin=function(t,n,r,o){const i=new Map;t.forEach(s=>{const c=r(s);i.has(c)||i.set(c,[]),i.get(c).push(s)});const a=[];return this.forEach(s=>{const c=n(s);(i.get(c)||[]).forEach(d=>{a.push(o(s,d))})}),a},Array.prototype.includesBy=function(t,n){return this.some(r=>t(r)===n)},Array.prototype.filterMap=function(t){return this.map(t).filter(n=>n!==void 0)}})();var BP={exports:{}},ik={};const qB=E7(VB);Object.defineProperty(ik,"__esModule",{value:!0});var tA,Go=g,qf=(tA=Go)&&typeof tA=="object"&&"default"in tA?tA.default:tA,_B=qB;function bc(){bc=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=typeof Symbol=="function"?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function s(j,T,F){return Object.defineProperty(j,T,{value:F,enumerable:!0,configurable:!0,writable:!0}),j[T]}try{s({},"")}catch{s=function(T,F,H){return T[F]=H}}function c(j,T,F,H){var R=Object.create((T&&T.prototype instanceof A?T:A).prototype),O=new N(H||[]);return R._invoke=function(_,Y,I){var E="suspendedStart";return function(D,W){if(E==="executing")throw new Error("Generator is already running");if(E==="completed"){if(D==="throw")throw W;return{value:void 0,done:!0}}for(I.method=D,I.arg=W;;){var z=I.delegate;if(z){var L=x(z,I);if(L){if(L===d)continue;return L}}if(I.method==="next")I.sent=I._sent=I.arg;else if(I.method==="throw"){if(E==="suspendedStart")throw E="completed",I.arg;I.dispatchException(I.arg)}else I.method==="return"&&I.abrupt("return",I.arg);E="executing";var q=l(_,Y,I);if(q.type==="normal"){if(E=I.done?"completed":"suspendedYield",q.arg===d)continue;return{value:q.arg,done:I.done}}q.type==="throw"&&(E="completed",I.method="throw",I.arg=q.arg)}}}(j,F,O),R}function l(j,T,F){try{return{type:"normal",arg:j.call(T,F)}}catch(H){return{type:"throw",arg:H}}}e.wrap=c;var d={};function A(){}function f(){}function m(){}var v={};s(v,o,function(){return this});var p=Object.getPrototypeOf,y=p&&p(p(C([])));y&&y!==t&&n.call(y,o)&&(v=y);var b=m.prototype=A.prototype=Object.create(v);function h(j){["next","throw","return"].forEach(function(T){s(j,T,function(F){return this._invoke(T,F)})})}function w(j,T){var F;this._invoke=function(H,R){function O(){return new T(function(_,Y){(function I(E,D,W,z){var L=l(j[E],j,D);if(L.type!=="throw"){var q=L.arg,P=q.value;return P&&typeof P=="object"&&n.call(P,"__await")?T.resolve(P.__await).then(function(U){I("next",U,W,z)},function(U){I("throw",U,W,z)}):T.resolve(P).then(function(U){q.value=U,W(q)},function(U){return I("throw",U,W,z)})}z(L.arg)})(H,R,_,Y)})}return F=F?F.then(O,O):O()}}function x(j,T){var F=j.iterator[T.method];if(F===void 0){if(T.delegate=null,T.method==="throw"){if(j.iterator.return&&(T.method="return",T.arg=void 0,x(j,T),T.method==="throw"))return d;T.method="throw",T.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var H=l(F,j.iterator,T.arg);if(H.type==="throw")return T.method="throw",T.arg=H.arg,T.delegate=null,d;var R=H.arg;return R?R.done?(T[j.resultName]=R.value,T.next=j.nextLoc,T.method!=="return"&&(T.method="next",T.arg=void 0),T.delegate=null,d):R:(T.method="throw",T.arg=new TypeError("iterator result is not an object"),T.delegate=null,d)}function k(j){var T={tryLoc:j[0]};1 in j&&(T.catchLoc=j[1]),2 in j&&(T.finallyLoc=j[2],T.afterLoc=j[3]),this.tryEntries.push(T)}function S(j){var T=j.completion||{};T.type="normal",delete T.arg,j.completion=T}function N(j){this.tryEntries=[{tryLoc:"root"}],j.forEach(k,this),this.reset(!0)}function C(j){if(j){var T=j[o];if(T)return T.call(j);if(typeof j.next=="function")return j;if(!isNaN(j.length)){var F=-1,H=function R(){for(;++F=0;--H){var R=this.tryEntries[H],O=R.completion;if(R.tryLoc==="root")return F("end");if(R.tryLoc<=this.prev){var _=n.call(R,"catchLoc"),Y=n.call(R,"finallyLoc");if(_&&Y){if(this.prev=0;--F){var H=this.tryEntries[F];if(H.tryLoc<=this.prev&&n.call(H,"finallyLoc")&&this.prev=0;--T){var F=this.tryEntries[T];if(F.finallyLoc===j)return this.complete(F.completion,F.afterLoc),S(F),d}},catch:function(j){for(var T=this.tryEntries.length-1;T>=0;--T){var F=this.tryEntries[T];if(F.tryLoc===j){var H=F.completion;if(H.type==="throw"){var R=H.arg;S(F)}return R}}throw new Error("illegal catch attempt")},delegateYield:function(j,T,F){return this.delegate={iterator:C(j),resultName:T,nextLoc:F},this.method==="next"&&(this.arg=void 0),d}},e}function sN(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(l){return void n(l)}s.done?t(c):Promise.resolve(c).then(r,o)}function Wb(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(c){sN(i,r,o,a,s,"next",c)}function s(c){sN(i,r,o,a,s,"throw",c)}a(void 0)})}}function Yl(){return(Yl=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?oF:rF;OP.useSyncExternalStore=tu.useSyncExternalStore!==void 0?tu.useSyncExternalStore:iF;FP.exports=OP;var LP=FP.exports,WP={exports:{}},UP={};/** * @license React * use-sync-external-store-shim/with-selector.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var lh=g,aF=LP;function sF(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var cF=typeof Object.is=="function"?Object.is:sF,lF=aF.useSyncExternalStore,dF=lh.useRef,uF=lh.useEffect,AF=lh.useMemo,fF=lh.useDebugValue;UP.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var i=dF(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=AF(function(){function c(m){if(!l){if(l=!0,d=m,m=r(m),o!==void 0&&a.hasValue){var v=a.value;if(o(v,m))return A=v}return A=m}if(v=A,cF(d,m))return v;var p=r(m);return o!==void 0&&o(v,p)?v:(d=m,A=p)}var l=!1,d,A,f=n===void 0?null:n;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,n,r,o]);var s=lF(e,i[0],i[1]);return uF(function(){a.hasValue=!0,a.value=s},[s]),fF(s),s};WP.exports=UP;var mF=WP.exports;function vF(e){e()}let HP=vF;const pF=e=>HP=e,gF=()=>HP,Es=ht.createContext(null);function ZP(){return g.useContext(Es)}const hF=()=>{throw new Error("uSES not initialized!")};let VP=hF;const bF=e=>{VP=e},yF=(e,t)=>e===t;function wF(e=Es){const t=e===Es?ZP:()=>g.useContext(e);return function(r,o=yF){const{store:i,subscription:a,getServerState:s}=t(),c=VP(a.addNestedSub,i.getState,s||i.getState,r,o);return g.useDebugValue(c),c}}const ve=wF();function qP(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}var _P={exports:{}},wt={};/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var zn=typeof Symbol=="function"&&Symbol.for,ak=zn?Symbol.for("react.element"):60103,sk=zn?Symbol.for("react.portal"):60106,dh=zn?Symbol.for("react.fragment"):60107,uh=zn?Symbol.for("react.strict_mode"):60108,Ah=zn?Symbol.for("react.profiler"):60114,fh=zn?Symbol.for("react.provider"):60109,mh=zn?Symbol.for("react.context"):60110,ck=zn?Symbol.for("react.async_mode"):60111,vh=zn?Symbol.for("react.concurrent_mode"):60111,ph=zn?Symbol.for("react.forward_ref"):60112,gh=zn?Symbol.for("react.suspense"):60113,xF=zn?Symbol.for("react.suspense_list"):60120,hh=zn?Symbol.for("react.memo"):60115,bh=zn?Symbol.for("react.lazy"):60116,kF=zn?Symbol.for("react.block"):60121,SF=zn?Symbol.for("react.fundamental"):60117,jF=zn?Symbol.for("react.responder"):60118,NF=zn?Symbol.for("react.scope"):60119;function fo(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case ak:switch(e=e.type,e){case ck:case vh:case dh:case Ah:case uh:case gh:return e;default:switch(e=e&&e.$$typeof,e){case mh:case ph:case bh:case hh:case fh:return e;default:return t}}case sk:return t}}}function XP(e){return fo(e)===vh}wt.AsyncMode=ck;wt.ConcurrentMode=vh;wt.ContextConsumer=mh;wt.ContextProvider=fh;wt.Element=ak;wt.ForwardRef=ph;wt.Fragment=dh;wt.Lazy=bh;wt.Memo=hh;wt.Portal=sk;wt.Profiler=Ah;wt.StrictMode=uh;wt.Suspense=gh;wt.isAsyncMode=function(e){return XP(e)||fo(e)===ck};wt.isConcurrentMode=XP;wt.isContextConsumer=function(e){return fo(e)===mh};wt.isContextProvider=function(e){return fo(e)===fh};wt.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===ak};wt.isForwardRef=function(e){return fo(e)===ph};wt.isFragment=function(e){return fo(e)===dh};wt.isLazy=function(e){return fo(e)===bh};wt.isMemo=function(e){return fo(e)===hh};wt.isPortal=function(e){return fo(e)===sk};wt.isProfiler=function(e){return fo(e)===Ah};wt.isStrictMode=function(e){return fo(e)===uh};wt.isSuspense=function(e){return fo(e)===gh};wt.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===dh||e===vh||e===Ah||e===uh||e===gh||e===xF||typeof e=="object"&&e!==null&&(e.$$typeof===bh||e.$$typeof===hh||e.$$typeof===fh||e.$$typeof===mh||e.$$typeof===ph||e.$$typeof===SF||e.$$typeof===jF||e.$$typeof===NF||e.$$typeof===kF)};wt.typeOf=fo;_P.exports=wt;var CF=_P.exports,GP=CF,TF={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},IF={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},YP={};YP[GP.ForwardRef]=TF;YP[GP.Memo]=IF;var xt={};/** * @license React * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var lk=Symbol.for("react.element"),dk=Symbol.for("react.portal"),yh=Symbol.for("react.fragment"),wh=Symbol.for("react.strict_mode"),xh=Symbol.for("react.profiler"),kh=Symbol.for("react.provider"),Sh=Symbol.for("react.context"),PF=Symbol.for("react.server_context"),jh=Symbol.for("react.forward_ref"),Nh=Symbol.for("react.suspense"),Ch=Symbol.for("react.suspense_list"),Th=Symbol.for("react.memo"),Ih=Symbol.for("react.lazy"),DF=Symbol.for("react.offscreen"),KP;KP=Symbol.for("react.module.reference");function zo(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case lk:switch(e=e.type,e){case yh:case xh:case wh:case Nh:case Ch:return e;default:switch(e=e&&e.$$typeof,e){case PF:case Sh:case jh:case Ih:case Th:case kh:return e;default:return t}}case dk:return t}}}xt.ContextConsumer=Sh;xt.ContextProvider=kh;xt.Element=lk;xt.ForwardRef=jh;xt.Fragment=yh;xt.Lazy=Ih;xt.Memo=Th;xt.Portal=dk;xt.Profiler=xh;xt.StrictMode=wh;xt.Suspense=Nh;xt.SuspenseList=Ch;xt.isAsyncMode=function(){return!1};xt.isConcurrentMode=function(){return!1};xt.isContextConsumer=function(e){return zo(e)===Sh};xt.isContextProvider=function(e){return zo(e)===kh};xt.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===lk};xt.isForwardRef=function(e){return zo(e)===jh};xt.isFragment=function(e){return zo(e)===yh};xt.isLazy=function(e){return zo(e)===Ih};xt.isMemo=function(e){return zo(e)===Th};xt.isPortal=function(e){return zo(e)===dk};xt.isProfiler=function(e){return zo(e)===xh};xt.isStrictMode=function(e){return zo(e)===wh};xt.isSuspense=function(e){return zo(e)===Nh};xt.isSuspenseList=function(e){return zo(e)===Ch};xt.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===yh||e===xh||e===wh||e===Nh||e===Ch||e===DF||typeof e=="object"&&e!==null&&(e.$$typeof===Ih||e.$$typeof===Th||e.$$typeof===kh||e.$$typeof===Sh||e.$$typeof===jh||e.$$typeof===KP||e.getModuleId!==void 0)};xt.typeOf=zo;function MF(){const e=gF();let t=null,n=null;return{clear(){t=null,n=null},notify(){e(()=>{let r=t;for(;r;)r.callback(),r=r.next})},get(){let r=[],o=t;for(;o;)r.push(o),o=o.next;return r},subscribe(r){let o=!0,i=n={callback:r,next:null,prev:n};return i.prev?i.prev.next=i:t=i,function(){!o||t===null||(o=!1,i.next?i.next.prev=i.prev:n=i.prev,i.prev?i.prev.next=i.next:t=i.next)}}}}const dN={notify(){},get:()=>[]};function RF(e,t){let n,r=dN;function o(A){return c(),r.subscribe(A)}function i(){r.notify()}function a(){d.onStateChange&&d.onStateChange()}function s(){return!!n}function c(){n||(n=e.subscribe(a),r=MF())}function l(){n&&(n(),n=void 0,r.clear(),r=dN)}const d={addNestedSub:o,notifyNestedSubs:i,handleChangeWrapper:a,isSubscribed:s,trySubscribe:c,tryUnsubscribe:l,getListeners:()=>r};return d}const zF=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",EF=zF?g.useLayoutEffect:g.useEffect;function BF({store:e,context:t,children:n,serverState:r}){const o=g.useMemo(()=>{const s=RF(e);return{store:e,subscription:s,getServerState:r?()=>r:void 0}},[e,r]),i=g.useMemo(()=>e.getState(),[e]);EF(()=>{const{subscription:s}=o;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),i!==e.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[o,i]);const a=t||Es;return ht.createElement(a.Provider,{value:o},n)}function JP(e=Es){const t=e===Es?ZP:()=>g.useContext(e);return function(){const{store:r}=t();return r}}const FF=JP();function OF(e=Es){const t=e===Es?FF:JP(e);return function(){return t().dispatch}}const dn=OF();bF(mF.useSyncExternalStoreWithSelector);pF(zs.unstable_batchedUpdates);var Qe=(e=>(e[e.Custom=100000001]="Custom",e[e["No Access"]=16496e4]="No Access",e[e.Administrator=164960003]="Administrator",e))(Qe||{}),Be=(e=>(e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e))(Be||{}),Zt=(e=>(e[e.IndividualContact=16496e4]="IndividualContact",e[e.TeamContact=164960001]="TeamContact",e))(Zt||{}),oa=(e=>(e[e["Legal Entity"]=1]="Legal Entity",e[e["Head Office"]=2]="Head Office",e[e.Site=3]="Site",e[e["Home Worker"]=4]="Home Worker",e[e["Billing Only"]=5]="Billing Only",e[e["Data Centre"]=6]="Data Centre",e))(oa||{}),Rc=(e=>(e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e))(Rc||{});const Oe=[{accountid:"fd7fba82-1d87-4f31-b987-1ff5c502890c",name:"Vegetable Castle",address1_composite:"BH5 5HB Vegetable Castle The Road",bistech_sitetype:oa["Data Centre"],_primarycontactid_value:null,address1_postalcode:"BH12 5NJS",statecode:Rc.Active},{accountid:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05",name:"Fruit Farm",address1_composite:"BH5 5HB Fruit Farm The Road",bistech_sitetype:oa["Head Office"],_primarycontactid_value:null,address1_postalcode:"BH12 5NJR",statecode:Rc.Active},{accountid:"eb6c79f4-ba03-4210-9fb5-939a5eef93f7",name:"Apple Village",address1_composite:"BH5 5HB Apple Village The Road",bistech_sitetype:oa.Site,_primarycontactid_value:null,address1_postalcode:"BH12 5NJK",statecode:Rc.Inactive},{accountid:"c0a4d1f0-aae9-47e3-9b36-a31e80783e06",name:"Test Account 2",address1_composite:"BH5 5HB Test Account 2 The Road",bistech_sitetype:oa["Legal Entity"],_primarycontactid_value:"e0c091b5-84cb-4617-befd-e100b7d6df70",address1_postalcode:"BH12 5NJG",statecode:Rc.Active}];var Ue=(e=>(e[e["No Access"]=1e8]="No Access",e[e["Owned Cases"]=100000001]="Owned Cases",e[e["All Cases"]=100000002]="All Cases",e))(Ue||{}),dt=(e=>(e[e["No Access"]=1e8]="No Access",e[e["All Contacts"]=100000002]="All Contacts",e))(dt||{}),$e=(e=>(e[e["No Access"]=1e8]="No Access",e[e["Owned Orders"]=100000001]="Owned Orders",e[e["All Orders"]=100000002]="All Orders",e))($e||{}),kt=(e=>(e[e["No Access"]=1e8]="No Access",e[e["All Invoices"]=100000001]="All Invoices",e))(kt||{}),gt=(e=>(e[e["No Access"]=1e8]="No Access",e[e["All Projects"]=100000001]="All Projects",e))(gt||{});const ee={tonyStark:{bistech_portalcontacttype:Zt.IndividualContact,contactid:"df1f9f5e-ee7b-4315-b14f-b44d552b6b62",fullname:"Tony Stark",firstname:"Tony",lastname:"Stark",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe.Custom,bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],emailaddress1:"tony@starkindustries.com",msdyn_portaltermsagreementdate:"2022-02-06 12:33:11Z",jobtitle:"Chief Technology Officer",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 697331",mobilephone:"07904 399888",bistech_receivealertnotifications:!0,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!0,bistech_isshowninportal:!0},thor:{bistech_portalcontacttype:Zt.IndividualContact,contactid:"b629a8a0-b0f7-4df2-95e7-4706efe1f01c",fullname:"Thor Odinson",firstname:"Thor",lastname:"Odinson",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe.Administrator,bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],emailaddress1:"point.break@avengers.com",msdyn_portaltermsagreementdate:"2022-02-06 07:05:32Z",jobtitle:"Ikea Salesman",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 884102",mobilephone:"07912 399834",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!0,bistech_isshowninportal:!0},bruceBanner:{bistech_portalcontacttype:Zt.IndividualContact,contactid:"cbca9b74-962a-4d88-9f3a-7f173c86424d",fullname:"Bruce Banner",firstname:"Bruce",lastname:"Banner",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],emailaddress1:"test@email.com",msdyn_portaltermsagreementdate:"2022-02-06 09:22:41Z",jobtitle:"Biologist",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 331548",mobilephone:"07456 399812",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!1,bistech_isshowninportal:!0},steveRogers:{bistech_portalcontacttype:Zt.IndividualContact,contactid:"24b96101-2a51-496c-8965-ead5dd89cb29",fullname:"Steve Rogers",firstname:"Steve",lastname:"Rogers",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],emailaddress1:"capsicle@avengers.com",msdyn_portaltermsagreementdate:"2022-02-06 12:17:48Z",jobtitle:"War Veteran",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 534228",mobilephone:"07162 999809",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!0,bistech_isshowninportal:!0},nickFury:{bistech_portalcontacttype:Zt.IndividualContact,contactid:"7a32fdf6-ce69-4031-9f3c-dc697b2e5ccc",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],fullname:"Nicholas Fury",firstname:"Nicholas",lastname:"Fury",emailaddress1:"fury.nj@shield.com",msdyn_portaltermsagreementdate:"2022-06-01 09:13:29Z",jobtitle:"Shield Director",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 357482",mobilephone:"07234 397018",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!1,bistech_isshowninportal:!0},scottLang:{bistech_portalcontacttype:Zt.IndividualContact,contactid:"5e4e6152-9810-4569-931d-87bfa777a27a",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],fullname:"Scott Lang",firstname:"Scott",lastname:"Lang",emailaddress1:"scott@baskin-robbins.com",msdyn_portaltermsagreementdate:"2022-09-22 11:33:16Z",jobtitle:"Doughnut Salesman",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 746521",mobilephone:"07947 611303",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!0,bistech_isshowninportal:!0},peterQuill:{bistech_portalcontacttype:Zt.TeamContact,contactid:"eda84f4d-3459-44f6-8572-af644e4ed623",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],fullname:"Peter Quill",firstname:"Peter",lastname:"Quill",emailaddress1:"starlord@guardians.gal",msdyn_portaltermsagreementdate:"2022-02-28 15:25:11Z",jobtitle:"Intergalactic Trader",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 556368",mobilephone:"07304 774963",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Inactive,adx_identity_logonenabled:!1,bistech_isshowninportal:!0},tchalla:{bistech_portalcontacttype:Zt.TeamContact,contactid:"c5a05ed4-48d7-406f-bac2-7fe8cd85aa28",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],fullname:"King T'Challa",firstname:"King",lastname:"T'Challa",emailaddress1:"black.panther@wakander.forever",msdyn_portaltermsagreementdate:"2022-02-12 09:31:24Z",jobtitle:"Precious Metal Tradesman",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 337456",mobilephone:"07315 327882",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Inactive,adx_identity_logonenabled:!0,bistech_isshowninportal:!0},stephenstrange:{bistech_portalcontacttype:Zt.TeamContact,contactid:"83527cbb-6c4e-4f7c-901d-70ef57194ab4",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],fullname:"Stephen Strange",firstname:"Stephen",lastname:"Strange",emailaddress1:"sorcerer.supreme@kamartaj.np",msdyn_portaltermsagreementdate:"2022-04-06 15:02:52Z",jobtitle:"Medical Professional",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 332299",mobilephone:"07644 599846",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Inactive,adx_identity_logonenabled:!1,bistech_isshowninportal:!0},peterParker:{bistech_portalcontacttype:Zt.TeamContact,contactid:"e0c091b5-84cb-4617-befd-e100b7d6df70",_parentcustomerid_value:Oe[0].accountid,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"],fullname:"Peter Parker",firstname:"Peter",lastname:"Parker",emailaddress1:"peter.parker@midtown-high.nyc.edu",msdyn_portaltermsagreementdate:"2022-03-09 18:17:44Z",jobtitle:"Photography Consultant",_bistech_primarysite_value:"ac969565-c9e6-ee11-904d-7c1e5204708b",telephone1:"01202 123789",mobilephone:"07787 787788",bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,statecode:Be.Active,adx_identity_logonenabled:!0,bistech_isshowninportal:!0}},qr={...ee.tonyStark};function Ni(){const[e,t,n,r,o,i,a,s,c,l,d]=["contactid","contactname","parentcustomerid","parentcustomername","bistech_permissionlevel","bistech_portalcasepermissionlevel","bistech_portalcontactpermissionlevel","bistech_portalorderpermissionlevel","bistech_portalprojectpermissionlevel","bistech_portalinvoicepermissionlevel","msdyn_portaltermsagreementdate"].map(A=>{const f=document.querySelector(`ul#metadata li[data-key='${A}'][data-value]`);return f&&f.getAttribute("data-value")});return{contactId:e,contactName:t,accountId:n,accountName:r,basePermissionLevel:o?Qe[o]:null,portalCasePermissionLevel:i?Ue[i]:null,portalContactPermissionLevel:a?dt[a]:null,portalOrderPermissionLevel:s?$e[s]:null,portalProjectPermissionLevel:c?gt[c]:null,portalInvoicePermissionLevel:l?kt[l]:null,termsAndConditionsAcceptanceDate:d?new Date(d):null}}const on=()=>{const e=ve(n=>n.isLocalMode),t=g.useMemo(Ni,[Ni]);return e?{contactId:qr.contactid,contactName:[qr.firstname,qr.lastname].filter(n=>n).join(" "),accountId:qr._parentcustomerid_value,accountName:"Pete's Test Customer",basePermissionLevel:qr.bistech_permissionlevel,portalCasePermissionLevel:qr.bistech_portalcasepermissionlevel,portalContactPermissionLevel:qr.bistech_portalcontactpermissionlevel,portalOrderPermissionLevel:qr.bistech_portalorderpermissionlevel,portalProjectPermissionLevel:qr.bistech_portalprojectpermissionlevel,portalInvoicePermissionLevel:qr.bistech_portalinvoicepermissionlevel}:t},Wn=({src:e,height:t,width:n,className:r})=>{const o=`/${e.replace(/^\//g,"")}`;return u.jsx("img",{height:t,width:n,src:o,alt:`${e.replaceAll("-"," ").substring(0,e.lastIndexOf("."))}`,className:r})},LF=e=>{const{contactName:t}=on(),n=ve(i=>i.feedbackPaneIsShown),r=dn(),o=()=>{r({type:"SetFeedbackPaneIsShown",feedbackPaneIsShown:!n})};return u.jsxs("div",{className:"header",children:[u.jsxs("button",{type:"button",className:"navbar-toggle-button",title:"Toggle navigation",onClick:()=>e.setNavigationPanelExpanded(!e.isNavigationPanelExpanded),children:[u.jsx("span",{className:"icon-bar"}),u.jsx("span",{className:"icon-bar"}),u.jsx("span",{className:"icon-bar"})]}),u.jsx("div",{id:"bistech-logo",children:u.jsx(jt,{to:"/",children:u.jsx(Wn,{src:"bistech-logo.png",height:54})})}),u.jsx("button",{className:"feedback-button",onClick:o,children:u.jsx(Wn,{src:"feedback-main-icon.svg",height:24,width:24})}),u.jsx("div",{className:"divider"}),u.jsx(jt,{to:"Profile",className:"profile-link",replace:!0,children:t})]})};var it=(e=>(e[e._8x8=164960011]="_8x8",e[e.NMS=16496e4]="NMS",e[e.Solarwinds=164960001]="Solarwinds",e[e.MicrosoftLicensing=164960002]="MicrosoftLicensing",e[e.NinjaRMM=164960003]="NinjaRMM",e[e.Meraki=164960004]="Meraki",e[e.Mimecast=164960005]="Mimecast",e[e.FortiMail=164960006]="FortiMail",e[e.FortiGate=164960007]="FortiGate",e[e.FortiAnalyzer=164960008]="FortiAnalyzer",e[e.VMWare=164960009]="VMWare",e[e.WebAbility=164960010]="WebAbility",e[e.Azure=164960012]="Azure",e[e.M365AdminCentre=164960013]="M365AdminCentre",e))(it||{}),Se=(e=>(e[e.Incident=1]="Incident",e[e["Major Incident"]=2]="Major Incident",e[e["Support Request"]=3]="Support Request",e[e.Problem=4]="Problem",e[e.Change=5]="Change",e))(Se||{}),de=(e=>(e[e.Open=16496e4]="Open",e[e["In Progress"]=1]="In Progress",e[e["On Hold"]=2]="On Hold",e[e["Pending Feedback"]=3]="Pending Feedback",e[e.Resolved=4]="Resolved",e[e["Closure Requested"]=164960002]="Closure Requested",e[e.Closed=5]="Closed",e[e.Cancelled=6]="Cancelled",e[e.Merged=2e3]="Merged",e))(de||{}),Ve=(e=>(e[e["Priority 1"]=1]="Priority 1",e[e["Priority 2"]=2]="Priority 2",e[e["Priority 3"]=3]="Priority 3",e[e["Priority 4"]=4]="Priority 4",e))(Ve||{});const uk=e=>{const{pathname:t}=Ao(),n=t.replace(/\/$/g,""),r=Object.values(_e).filter(s=>n.includes(s.path)),o=Object.values(_e).filter(s=>{var c;return e.isLoading?!1:(c=e.parentPage)==null?void 0:c.fullPath.includes(s.path)}),i=Array.from(new Set([...o,...r])),a=o[o.length-1];return u.jsx("div",{className:"breadcrumb-trail",children:i.map((s,c)=>{const l=c{var A,f;return e.isLoading||e.parentPage&&!e.parentPage.pageId?u.jsx("span",{className:"breadcrumb",children:s.title}):u.jsx(jt,{className:"breadcrumb",to:i[c].path!==(a==null?void 0:a.path)?`${s.path}`:`${s.path}?${(A=e.parentPage)==null?void 0:A.editIdName}=${(f=e.parentPage)==null?void 0:f.pageId}`,children:s.title})})();return u.jsxs("span",{children:[d,l&&u.jsx("span",{className:"divider",children:"/"})]},s.path)})})};var QP={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},uN=ht.createContext&&ht.createContext(QP),ws=function(){return ws=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{const e=on();return{contactId:e.contactId,accountId:e.accountId,permissionLevel:e.basePermissionLevel?Qe[e.basePermissionLevel]:null,portalContactPermissionLevel:e.portalContactPermissionLevel?e.portalContactPermissionLevel:null,portalCasePermissionLevel:e.portalCasePermissionLevel?e.portalCasePermissionLevel:null,portalOrderPermissionLevel:e.portalOrderPermissionLevel?e.portalOrderPermissionLevel:null,portalProjectPermissionLevel:e.portalProjectPermissionLevel?e.portalProjectPermissionLevel:null,portalInvoicePermissionLevel:e.portalInvoicePermissionLevel?e.portalInvoicePermissionLevel:null}},Nt=()=>{const e=eD(),t=ve(i=>i.appInsights);if(!t)return{appInsights:null,trackExceptionWithBistechMetadata:null,trackRenderExceptionWithBistechMetadata:null,trackEventWithBistechMetadata:null};function n(i){console.error(i),t==null||t.trackException({exception:i instanceof Error?i:new Error((i==null?void 0:i.toString())||"Unknown error")},{errorType:"Error",...e})}function r(i){console.warn(i),t==null||t.trackEvent({name:i.type},{event:i,...e})}function o(i,a){console.error(i),t==null||t.trackException({exception:i},{errorType:"RenderError",...e,reactComponentStack:a.componentStack})}return{appInsights:t,trackExceptionWithBistechMetadata:n,trackRenderExceptionWithBistechMetadata:o,trackEventWithBistechMetadata:r}},tD=e=>u.jsxs("span",{className:"info-card",children:[u.jsxs("span",{className:"info-card-header",children:[u.jsx("span",{className:"info-card-icon",children:e.info.icon}),u.jsxs("span",{className:"info-card-heading",children:[u.jsx("p",{className:"info-card-primary-text",children:e.info.primaryText}),u.jsx("p",{className:"info-card-secondary-text",children:e.info.secondaryText})]})]}),u.jsx("span",{className:"info-card-additional-fields",children:e.info.additionalFields.map(t=>u.jsxs("p",{children:[u.jsx("strong",{children:t.name}),": ",u.jsx("span",{children:t.value})]},t.name))})]}),rt=e=>{const t=Nt();return u.jsx(_F,{...e,onError:(n,r)=>{var o;return(o=t.trackRenderExceptionWithBistechMetadata)==null?void 0:o.call(t,n,r)},children:e.children})};class _F extends ht.Component{constructor(t){super(t),this.state={latestError:void 0}}componentDidCatch(t,n){this.setState({latestError:{error:t,errorInfo:n}}),this.props.onError(t,n)}render(){var t,n;return this.state.latestError?this.props.customErrorFallbackRender?(n=(t=this.props).customErrorFallbackRender)==null?void 0:n.call(t,this.state.latestError):u.jsx(XF,{error:this.state.latestError.error,errorInfo:this.state.latestError.errorInfo}):this.props.children}}const XF=e=>{var r,o,i,a,s,c;const[t,n]=g.useState(!1);return u.jsxs("span",{className:"error-fallback",onMouseOver:()=>n(!0),onMouseLeave:()=>n(!1),children:[u.jsx(AN,{})," Error occurred",t&&u.jsx(tD,{info:{icon:u.jsx(AN,{}),primaryText:"Error",secondaryText:((r=e.error)==null?void 0:r.name)||"Error",additionalFields:[{name:"Message",value:((o=e.error)==null?void 0:o.message)||"null"},{name:"Stack",value:((i=e.error)==null?void 0:i.stack)||"null"},{name:"Component Stack",value:((a=e.errorInfo)==null?void 0:a.componentStack)||"null"},{name:"Cause",value:((c=(s=e.error)==null?void 0:s.cause)==null?void 0:c.toString())||"null"}]}})]})},GF=["Top","Right","Bottom","Left"];function Rm(e,t,...n){const[r,o=r,i=r,a=o]=n,s=[r,o,i,a],c={};for(let l=0;ltypeof e=="string"&&/(\d+(\w+|%))/.test(e),j0=e=>typeof e=="number"&&!Number.isNaN(e),rO=e=>e==="initial",fN=e=>e==="auto",oO=e=>e==="none",iO=["content","fit-content","max-content","min-content"],Hb=e=>iO.some(t=>e===t)||nO(e);function aO(...e){const t=e.length===1,n=e.length===2,r=e.length===3;if(t){const[o]=e;if(rO(o))return{flexGrow:0,flexShrink:1,flexBasis:"auto"};if(fN(o))return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if(oO(o))return{flexGrow:0,flexShrink:0,flexBasis:"auto"};if(j0(o))return{flexGrow:o,flexShrink:1,flexBasis:0};if(Hb(o))return{flexGrow:1,flexShrink:1,flexBasis:o}}if(n){const[o,i]=e;if(j0(i))return{flexGrow:o,flexShrink:i,flexBasis:0};if(Hb(i))return{flexGrow:o,flexShrink:1,flexBasis:i}}if(r){const[o,i,a]=e;if(j0(o)&&j0(i)&&(fN(a)||Hb(a)))return{flexGrow:o,flexShrink:i,flexBasis:a}}return{}}function sO(e,t=e){return{columnGap:e,rowGap:t}}const cO=/var\(.*\)/gi;function lO(e){return e===void 0||typeof e=="number"||typeof e=="string"&&!cO.test(e)}const dO=/^[a-zA-Z0-9\-_\\#;]+$/,uO=/^-moz-initial$|^auto$|^initial$|^inherit$|^revert$|^unset$|^span \d+$|^\d.*/;function Zb(e){return e!==void 0&&typeof e=="string"&&dO.test(e)&&!uO.test(e)}function AO(...e){if(e.some(i=>!lO(i)))return{};const t=e[0]!==void 0?e[0]:"auto",n=e[1]!==void 0?e[1]:Zb(t)?t:"auto",r=e[2]!==void 0?e[2]:Zb(t)?t:"auto",o=e[3]!==void 0?e[3]:Zb(n)?n:"auto";return{gridRowStart:t,gridColumnStart:n,gridRowEnd:r,gridColumnEnd:o}}function fO(...e){return Rm("margin","",...e)}function mO(e,t=e){return{marginBlockStart:e,marginBlockEnd:t}}function vO(e,t=e){return{marginInlineStart:e,marginInlineEnd:t}}function pO(...e){return Rm("padding","",...e)}function gO(e,t=e){return{paddingBlockStart:e,paddingBlockEnd:t}}function hO(e,t=e){return{paddingInlineStart:e,paddingInlineEnd:t}}function bO(e,t=e){return{overflowX:e,overflowY:t}}function yO(...e){const[t,n=t,r=t,o=n]=e;return{top:t,right:n,bottom:r,left:o}}function wO(e,t,n){return Object.assign({outlineWidth:e},t&&{outlineStyle:t},n&&{outlineColor:n})}function xO(...e){return SO(e)?{transitionDelay:e[0],transitionDuration:e[0],transitionProperty:e[0],transitionTimingFunction:e[0]}:jO(e).reduce((n,[r,o="0s",i="0s",a="ease"],s)=>(s===0?(n.transitionProperty=r,n.transitionDuration=o,n.transitionDelay=i,n.transitionTimingFunction=a):(n.transitionProperty+=`, ${r}`,n.transitionDuration+=`, ${o}`,n.transitionDelay+=`, ${i}`,n.transitionTimingFunction+=`, ${a}`),n),{})}const kO=["-moz-initial","inherit","initial","revert","unset"];function SO(e){return e.length===1&&kO.includes(e[0])}function jO(e){return e.length===1&&Array.isArray(e[0])?e[0]:[e]}function NO(e,...t){if(t.length===0)return TO(e)?{textDecorationStyle:e}:{textDecorationLine:e};const[n,r,o]=t;return Object.assign({textDecorationLine:e},n&&{textDecorationStyle:n},r&&{textDecorationColor:r},o&&{textDecorationThickness:o})}const CO=["dashed","dotted","double","solid","wavy"];function TO(e){return CO.includes(e)}const Vb=typeof window>"u"?global:window,qb="@griffel/";function IO(e,t){return Vb[Symbol.for(qb+e)]||(Vb[Symbol.for(qb+e)]=t),Vb[Symbol.for(qb+e)]}const hw=IO("DEFINITION_LOOKUP_TABLE",{}),rf="data-make-styles-bucket",PO="data-priority",bw="f",yw=7,Ak="___",DO=Ak.length+yw,MO=0,RO=1,zO={all:1,borderColor:1,borderStyle:1,borderWidth:1,borderBlock:1,borderBlockEnd:1,borderBlockStart:1,borderInline:1,borderInlineEnd:1,borderInlineStart:1},ww="DO_NOT_USE_DIRECTLY: @griffel/reset-value";function _f(e){for(var t=0,n,r=0,o=e.length;o>=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function EO(e){const t=e.length;if(t===yw)return e;for(let n=t;n0&&(t+=f.slice(0,m)),n+=v,r[A]=v}}}if(n==="")return t.slice(0,-1);const o=mN[n];if(o!==void 0)return t+o;const i=[];for(let A=0;Aa.cssText):o}}}const OO=["r","d","l","v","w","f","i","h","a","s","k","t","m","c"],vN=OO.reduce((e,t,n)=>(e[t]=n,e),{});function LO(e,t,n){return(e==="m"?e+t:e)+n}function WO(e,t,n,r,o={}){var i,a;const s=e==="m",c=(i=o.m)!==null&&i!==void 0?i:"0",l=(a=o.p)!==null&&a!==void 0?a:0,d=LO(e,c,l);if(!r.stylesheets[d]){const A=t&&t.createElement("style"),f=FO(A,e,l,Object.assign({},r.styleElementAttributes,s&&{media:c}));r.stylesheets[d]=f,t&&A&&t.head.insertBefore(A,HO(t,n,e,r,o))}return r.stylesheets[d]}function UO(e,t,n){var r,o;const i=t+((r=n.m)!==null&&r!==void 0?r:""),a=e.getAttribute(rf)+((o=e.media)!==null&&o!==void 0?o:"");return i===a}function HO(e,t,n,r,o={}){var i,a;const s=vN[n],c=(i=o.m)!==null&&i!==void 0?i:"",l=(a=o.p)!==null&&a!==void 0?a:0;let d=p=>s-vN[p.getAttribute(rf)],A=e.head.querySelectorAll(`[${rf}]`);if(n==="m"){const p=e.head.querySelectorAll(`[${rf}="${n}"]`);p.length&&(A=p,d=y=>r.compareMediaQueries(c,y.media))}const f=p=>UO(p,n,o)?l-Number(p.getAttribute("data-priority")):d(p),m=A.length;let v=m-1;for(;v>=0;){const p=A.item(v);if(f(p)>0)return p.nextSibling;v--}return m>0?A.item(0):t?t.nextSibling:null}function pN(e,t){try{e.insertRule(t)}catch{}}let ZO=0;const VO=(e,t)=>et?1:0;function qO(e=typeof document>"u"?void 0:document,t={}){const{classNameHashSalt:n,unstable_filterCSSRule:r,insertionPoint:o,styleElementAttributes:i,compareMediaQueries:a=VO}=t,s={classNameHashSalt:n,insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(i),compareMediaQueries:a,id:`d${ZO++}`,insertCSSRules(c){for(const l in c){const d=c[l];for(let A=0,f=d.length;A{const e={};return function(n,r){e[n.id]===void 0&&(n.insertCSSRules(r),e[n.id]=!0)}};function oD(e){return e.reduce(function(t,n){var r=n[0],o=n[1];return t[r]=o,t[o]=r,t},{})}function _O(e){return typeof e=="boolean"}function XO(e){return typeof e=="function"}function MA(e){return typeof e=="number"}function GO(e){return e===null||typeof e>"u"}function YO(e){return e&&typeof e=="object"}function KO(e){return typeof e=="string"}function Fv(e,t){return e.indexOf(t)!==-1}function JO(e){return parseFloat(e)===0?e:e[0]==="-"?e.slice(1):"-"+e}function N0(e,t,n,r){return t+JO(n)+r}function QO(e){var t=e.indexOf(".");if(t===-1)e=100-parseFloat(e)+"%";else{var n=e.length-t-2;e=100-parseFloat(e),e=e.toFixed(n)+"%"}return e}function iD(e){return e.replace(/ +/g," ").split(" ").map(function(t){return t.trim()}).filter(Boolean).reduce(function(t,n){var r=t.list,o=t.state,i=(n.match(/\(/g)||[]).length,a=(n.match(/\)/g)||[]).length;return o.parensDepth>0?r[r.length-1]=r[r.length-1]+" "+n:r.push(n),o.parensDepth+=i-a,{list:r,state:o}},{list:[],state:{parensDepth:0}}).list}function gN(e){var t=iD(e);if(t.length<=3||t.length>4)return e;var n=t[0],r=t[1],o=t[2],i=t[3];return[n,i,o,r].join(" ")}function $O(e){return!_O(e)&&!GO(e)}function eL(e){for(var t=[],n=0,r=0,o=!1;r0?dr(Nu,--ao):0,nu--,Yt===10&&(nu=1,Mh--),Yt}function Po(){return Yt=ao2||Vp(Yt)>3?"":" "}function yL(e){for(;Po();)switch(Vp(Yt)){case 0:zc(bD(ao-1),e);break;case 2:zc(Lv(Yt),e);break;default:zc(Dh(Yt),e)}return e}function wL(e,t){for(;--t&&Po()&&!(Yt<48||Yt>102||Yt>57&&Yt<65||Yt>70&&Yt<97););return zh(e,Ov()+(t<6&&Vc()==32&&Po()==32))}function kw(e){for(;Po();)switch(Yt){case e:return ao;case 34:case 39:e!==34&&e!==39&&kw(Yt);break;case 40:e===41&&kw(e);break;case 92:Po();break}return ao}function xL(e,t){for(;Po()&&e+Yt!==57;)if(e+Yt===84&&Vc()===47)break;return"/*"+zh(t,ao-1)+"*"+Dh(e===47?e:Po())}function bD(e){for(;!Vp(Vc());)Po();return zh(e,ao)}function yD(e){return hD(Wv("",null,null,null,[""],e=gD(e),0,[0],e))}function Wv(e,t,n,r,o,i,a,s,c){for(var l=0,d=0,A=a,f=0,m=0,v=0,p=1,y=1,b=1,h=0,w="",x=o,k=i,S=r,N=w;y;)switch(v=h,h=Po()){case 40:if(v!=108&&dr(N,A-1)==58){mD(N+=Dr(Lv(h),"&","&\f"),"&\f",uD(l?s[l-1]:0))!=-1&&(b=-1);break}case 34:case 39:case 91:N+=Lv(h);break;case 9:case 10:case 13:case 32:N+=bL(v);break;case 92:N+=wL(Ov()-1,7);continue;case 47:switch(Vc()){case 42:case 47:zc(kL(xL(Po(),Ov()),t,n,c),c);break;default:N+="/"}break;case 123*p:s[l++]=Ci(N)*b;case 125*p:case 59:case 0:switch(h){case 0:case 125:y=0;case 59+d:b==-1&&(N=Dr(N,/\f/g,"")),m>0&&Ci(N)-A&&zc(m>32?yN(N+";",r,n,A-1,c):yN(Dr(N," ","")+";",r,n,A-2,c),c);break;case 59:N+=";";default:if(zc(S=bN(N,t,n,l,d,o,s,w,x=[],k=[],A,i),i),h===123)if(d===0)Wv(N,t,S,S,x,i,A,s,k);else switch(f===99&&dr(N,3)===110?100:f){case 100:case 108:case 109:case 115:Wv(e,S,S,r&&zc(bN(e,S,S,0,0,o,s,w,o,x=[],A,k),k),o,k,A,s,r?x:k);break;default:Wv(N,S,S,S,[""],k,0,s,k)}}l=d=m=0,p=b=1,w=N="",A=a;break;case 58:A=1+Ci(N),m=v;default:if(p<1){if(h==123)--p;else if(h==125&&p++==0&&gL()==125)continue}switch(N+=Dh(h),h*p){case 38:b=d>0?1:(N+="\f",-1);break;case 44:s[l++]=(Ci(N)-1)*b,b=1;break;case 64:Vc()===45&&(N+=Lv(Po())),f=Vc(),d=A=Ci(w=N+=bD(Ov())),h++;break;case 45:v===45&&Ci(N)==2&&(p=0)}}return i}function bN(e,t,n,r,o,i,a,s,c,l,d,A){for(var f=o-1,m=o===0?i:[""],v=vD(m),p=0,y=0,b=0;p0?m[h]+" "+w:Dr(w,/&\f/g,m[h])))&&(c[b++]=x);return Rh(e,t,n,o===0?Ph:s,c,l,d,A)}function kL(e,t,n,r){return Rh(e,t,n,lD,Dh(pL()),Xf(e,2,-2),0,r)}function yN(e,t,n,r,o){return Rh(e,t,n,mk,Xf(e,0,r),Xf(e,r+1,-1),r,o)}function ru(e,t){for(var n="",r=0;r{switch(e.type){case Ph:if(typeof e.props=="string")return;e.props=e.props.map(t=>t.indexOf(":global(")===-1?t:hL(t).reduce((n,r,o,i)=>{if(r==="")return n;if(r===":"&&i[o+1]==="global"){const a=i[o+2].slice(1,-1)+" ";return n.unshift(a),i[o+1]="",i[o+2]="",n}return n.push(r),n},[]).join(""))}};function SD(e,t,n){switch(mL(e,t)){case 5103:return Lo+"print-"+e+e;case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:return Lo+e+e;case 4215:if(dr(e,9)===102||dr(e,t+1)===116)return Lo+e+e;break;case 4789:return of+e+e;case 5349:case 4246:case 6968:return Lo+e+of+e+e;case 6187:if(!fD(e,/grab/))return Dr(Dr(Dr(e,/(zoom-|grab)/,Lo+"$1"),/(image-set)/,Lo+"$1"),e,"")+e;case 5495:case 3959:return Dr(e,/(image-set\([^]*)/,Lo+"$1$`$1");case 4095:case 3583:case 4068:case 2532:return Dr(e,/(.+)-inline(.+)/,Lo+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Ci(e)-1-t>6)switch(dr(e,t+1)){case 102:if(dr(e,t+3)===108)return Dr(e,/(.+:)(.+)-([^]+)/,"$1"+Lo+"$2-$3$1"+of+(dr(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~mD(e,"stretch")?SD(Dr(e,"stretch","fill-available"),t)+e:e}break}return e}function jD(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case mk:e.return=SD(e.value,e.length);return;case Ph:if(e.length)return vL(e.props,function(o){switch(fD(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return ru([Xb(e,{props:[Dr(o,/:(read-\w+)/,":"+of+"$1")]})],r);case"::placeholder":return ru([Xb(e,{props:[Dr(o,/:(plac\w+)/,":"+Lo+"input-$1")]}),Xb(e,{props:[Dr(o,/:(plac\w+)/,":"+of+"$1")]})],r)}return""})}}function jL(e){switch(e.type){case"@container":case lL:case uL:case dD:return!0}return!1}const NL=e=>{jL(e)&&Array.isArray(e.children)&&e.children.sort((t,n)=>t.props[0]>n.props[0]?1:-1)};function CL(e,t){const n=[];return ru(yD(e),xD([SL,NL,jD,wD,kD(r=>n.push(r))])),n}const TL=/,( *[^ &])/g;function IL(e){return"&"+cD(e.replace(TL,",&$1"))}function wN(e,t,n){let r=t;return n.length>0&&(r=n.reduceRight((o,i)=>`${IL(i)} { ${o} }`,t)),`${e}{${r}}`}function xN(e,t){const{className:n,selectors:r,property:o,rtlClassName:i,rtlProperty:a,rtlValue:s,value:c}=e,{container:l,layer:d,media:A,supports:f}=t,m=`.${n}`,v=Array.isArray(c)?`${c.map(y=>`${md(o)}: ${y}`).join(";")};`:`${md(o)}: ${c};`;let p=wN(m,v,r);if(a&&i){const y=`.${i}`,b=Array.isArray(s)?`${s.map(h=>`${md(a)}: ${h}`).join(";")};`:`${md(a)}: ${s};`;p+=wN(y,b,r)}return A&&(p=`@media ${A} { ${p} }`),d&&(p=`@layer ${d} { ${p} }`),f&&(p=`@supports ${f} { ${p} }`),l&&(p=`@container ${l} { ${p} }`),CL(p)}function PL(e){let t="";for(const n in e){const r=e[n];if(typeof r=="string"||typeof r=="number"){t+=md(n)+":"+r+";";continue}if(Array.isArray(r))for(const o of r)t+=md(n)+":"+o+";"}return t}function kN(e){let t="";for(const n in e)t+=`${n}{${PL(e[n])}}`;return t}function SN(e,t){const n=`@keyframes ${e} {${t}}`,r=[];return ru(yD(n),xD([wD,jD,kD(o=>r.push(o))])),r}const DL={animation:[-1,["animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimeline","animationTimingFunction"]],animationRange:[-1,["animationRangeEnd","animationRangeStart"]],background:[-2,["backgroundAttachment","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize"]],backgroundPosition:[-1,["backgroundPositionX","backgroundPositionY"]],border:[-2,["borderBottom","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderTop","borderTopColor","borderTopStyle","borderTopWidth"]],borderBottom:[-1,["borderBottomColor","borderBottomStyle","borderBottomWidth"]],borderImage:[-1,["borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth"]],borderLeft:[-1,["borderLeftColor","borderLeftStyle","borderLeftWidth"]],borderRadius:[-1,["borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius"]],borderRight:[-1,["borderRightColor","borderRightStyle","borderRightWidth"]],borderTop:[-1,["borderTopColor","borderTopStyle","borderTopWidth"]],caret:[-1,["caretColor","caretShape"]],columnRule:[-1,["columnRuleColor","columnRuleStyle","columnRuleWidth"]],columns:[-1,["columnCount","columnWidth"]],containIntrinsicSize:[-1,["containIntrinsicHeight","containIntrinsicWidth"]],container:[-1,["containerName","containerType"]],flex:[-1,["flexBasis","flexGrow","flexShrink"]],flexFlow:[-1,["flexDirection","flexWrap"]],font:[-1,["fontFamily","fontSize","fontStretch","fontStyle","fontVariant","fontWeight","lineHeight"]],gap:[-1,["columnGap","rowGap"]],grid:[-1,["columnGap","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumnGap","gridRowGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","rowGap"]],gridArea:[-1,["gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart"]],gridColumn:[-1,["gridColumnEnd","gridColumnStart"]],gridRow:[-1,["gridRowEnd","gridRowStart"]],gridTemplate:[-1,["gridTemplateAreas","gridTemplateColumns","gridTemplateRows"]],inset:[-1,["bottom","left","right","top"]],insetBlock:[-1,["insetBlockEnd","insetBlockStart"]],insetInline:[-1,["insetInlineEnd","insetInlineStart"]],listStyle:[-1,["listStyleImage","listStylePosition","listStyleType"]],margin:[-1,["marginBottom","marginLeft","marginRight","marginTop"]],marginBlock:[-1,["marginBlockEnd","marginBlockStart"]],marginInline:[-1,["marginInlineEnd","marginInlineStart"]],mask:[-1,["maskClip","maskComposite","maskImage","maskMode","maskOrigin","maskPosition","maskRepeat","maskSize"]],maskBorder:[-1,["maskBorderMode","maskBorderOutset","maskBorderRepeat","maskBorderSlice","maskBorderSource","maskBorderWidth"]],offset:[-1,["offsetAnchor","offsetDistance","offsetPath","offsetPosition","offsetRotate"]],outline:[-1,["outlineColor","outlineStyle","outlineWidth"]],overflow:[-1,["overflowX","overflowY"]],overscrollBehavior:[-1,["overscrollBehaviorX","overscrollBehaviorY"]],padding:[-1,["paddingBottom","paddingLeft","paddingRight","paddingTop"]],paddingBlock:[-1,["paddingBlockEnd","paddingBlockStart"]],paddingInline:[-1,["paddingInlineEnd","paddingInlineStart"]],placeContent:[-1,["alignContent","justifyContent"]],placeItems:[-1,["alignItems","justifyItems"]],placeSelf:[-1,["alignSelf","justifySelf"]],scrollMargin:[-1,["scrollMarginBottom","scrollMarginLeft","scrollMarginRight","scrollMarginTop"]],scrollMarginBlock:[-1,["scrollMarginBlockEnd","scrollMarginBlockStart"]],scrollMarginInline:[-1,["scrollMarginInlineEnd","scrollMarginInlineStart"]],scrollPadding:[-1,["scrollPaddingBottom","scrollPaddingLeft","scrollPaddingRight","scrollPaddingTop"]],scrollPaddingBlock:[-1,["scrollPaddingBlockEnd","scrollPaddingBlockStart"]],scrollPaddingInline:[-1,["scrollPaddingInlineEnd","scrollPaddingInlineStart"]],scrollTimeline:[-1,["scrollTimelineAxis","scrollTimelineName"]],textDecoration:[-1,["textDecorationColor","textDecorationLine","textDecorationStyle","textDecorationThickness"]],textEmphasis:[-1,["textEmphasisColor","textEmphasisStyle"]],transition:[-1,["transitionBehavior","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction"]],viewTimeline:[-1,["viewTimelineAxis","viewTimelineName"]]};function jN(e,t){return e.length===0?t:`${e} and ${t}`}function ML(e){return e.substr(0,6)==="@media"}function RL(e){return e.substr(0,6)==="@layer"}const zL=/^(:|\[|>|&)/;function EL(e){return zL.test(e)}function BL(e){return e.substr(0,9)==="@supports"}function FL(e){return e.substring(0,10)==="@container"}function OL(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}const NN={"us-w":"w","us-v":"i",nk:"l",si:"v",cu:"f",ve:"h",ti:"a"};function CN(e,t){if(t.media)return"m";if(t.layer||t.supports)return"t";if(t.container)return"c";if(e.length>0){const n=e[0].trim();if(n.charCodeAt(0)===58)return NN[n.slice(4,8)]||NN[n.slice(3,5)]||"d"}return"d"}function C0(e,t){return e&&t+e}function ND(e){return C0(e.container,"c")+C0(e.media,"m")+C0(e.layer,"l")+C0(e.supports,"s")}function Gb(e,t,n){const r=e+ND(n)+t,o=_f(r),i=o.charCodeAt(0);return i>=48&&i<=57?String.fromCharCode(i+17)+o.slice(1):o}function T0({property:e,selector:t,salt:n,value:r},o){return bw+_f(n+t+ND(o)+e+r.trim())}function LL(e){return e===ww}function Yb(e){return e.replace(/>\s+/g,">")}function TN(e){return DL[e]}function IN(e){var t;return(t=e==null?void 0:e[0])!==null&&t!==void 0?t:0}function Kb(e,t,n,r){e[t]=r?[n,r]:n}function PN(e,t){return t.length>0?[e,Object.fromEntries(t)]:e}function Jb(e,t,n,r,o,i){var a;const s=[];i!==0&&s.push(["p",i]),t==="m"&&o&&s.push(["m",o]),(a=e[t])!==null&&a!==void 0||(e[t]=[]),n&&e[t].push(PN(n,s)),r&&e[t].push(PN(r,s))}function Gi(e,t="",n=[],r={container:"",layer:"",media:"",supports:""},o={},i={},a){for(const s in e){if(zO.hasOwnProperty(s)){e[s];continue}const c=e[s];if(c!=null){if(LL(c)){const l=Yb(n.join("")),d=Gb(l,s,r);Kb(o,d,0,void 0);continue}if(typeof c=="string"||typeof c=="number"){const l=Yb(n.join("")),d=TN(s);if(d){const x=d[1],k=Object.fromEntries(x.map(S=>[S,ww]));Gi(k,t,n,r,o,i)}const A=Gb(l,s,r),f=T0({value:c.toString(),salt:t,selector:l,property:s},r),m=a&&{key:s,value:a}||xw(s,c),v=m.key!==s||m.value!==c,p=v?T0({value:m.value.toString(),property:m.key,salt:t,selector:l},r):void 0,y=v?{rtlClassName:p,rtlProperty:m.key,rtlValue:m.value}:void 0,b=CN(n,r),[h,w]=xN(Object.assign({className:f,selectors:n,property:s,value:c},y),r);Kb(o,A,f,p),Jb(i,b,h,w,r.media,IN(d))}else if(s==="animationName"){const l=Array.isArray(c)?c:[c],d=[],A=[];for(const f of l){const m=kN(f),v=kN(sD(f)),p=bw+_f(m);let y;const b=SN(p,m);let h=[];m===v?y=p:(y=bw+_f(v),h=SN(y,v));for(let w=0;w[N,ww]));Gi(S,t,n,r,o,i)}const A=Gb(l,s,r),f=T0({value:c.map(k=>(k??"").toString()).join(";"),salt:t,selector:l,property:s},r),m=c.map(k=>xw(s,k));if(!!m.some(k=>k.key!==m[0].key))continue;const p=m[0].key!==s||m.some((k,S)=>k.value!==c[S]),y=p?T0({value:m.map(k=>{var S;return((S=k==null?void 0:k.value)!==null&&S!==void 0?S:"").toString()}).join(";"),salt:t,property:m[0].key,selector:l},r):void 0,b=p?{rtlClassName:y,rtlProperty:m[0].key,rtlValue:m.map(k=>k.value)}:void 0,h=CN(n,r),[w,x]=xN(Object.assign({className:f,selectors:n,property:s,value:c},b),r);Kb(o,A,f,y),Jb(i,h,w,x,r.media,IN(d))}else if(OL(c)){if(EL(s))Gi(c,t,n.concat(cD(s)),r,o,i);else if(ML(s)){const l=jN(r.media,s.slice(6).trim());Gi(c,t,n,Object.assign({},r,{media:l}),o,i)}else if(RL(s)){const l=(r.layer?`${r.layer}.`:"")+s.slice(6).trim();Gi(c,t,n,Object.assign({},r,{layer:l}),o,i)}else if(BL(s)){const l=jN(r.supports,s.slice(9).trim());Gi(c,t,n,Object.assign({},r,{supports:l}),o,i)}else if(FL(s)){const l=s.slice(10).trim();Gi(c,t,n,Object.assign({},r,{container:l}),o,i)}}}}return[o,i]}function WL(e,t=""){const n={},r={};for(const o in e){const i=e[o],[a,s]=Gi(i,t);n[o]=a,Object.keys(s).forEach(c=>{r[c]=(r[c]||[]).concat(s[c])})}return[n,r]}function UL(e,t=fk){const n=t();let r=null,o=null,i=null,a=null;function s(c){const{dir:l,renderer:d}=c;r===null&&([r,o]=WL(e,d.classNameHashSalt));const A=l==="ltr";return A?i===null&&(i=Zp(r,l)):a===null&&(a=Zp(r,l)),n(d,o),A?i:a}return s}function CD(e,t,n=fk){const r=n();let o=null,i=null;function a(s){const{dir:c,renderer:l}=s,d=c==="ltr";return d?o===null&&(o=Zp(e,c)):i===null&&(i=Zp(e,c)),r(l,t),d?o:i}return a}function HL(e,t,n,r=fk){const o=r();function i(a){const{dir:s,renderer:c}=a,l=s==="ltr"?e:t||e;return o(c,Array.isArray(n)?{r:n}:n),l}return i}const DN={border:KF,borderLeft:JF,borderBottom:QF,borderRight:$F,borderTop:eO,borderColor:gw,borderStyle:pw,borderRadius:tO,borderWidth:vw,flex:aO,gap:sO,gridArea:AO,margin:fO,marginBlock:mO,marginInline:vO,padding:pO,paddingBlock:gO,paddingInline:hO,overflow:bO,inset:yO,outline:wO,transition:xO,textDecoration:NO};function ZL(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const MN=qd.useInsertionEffect?qd.useInsertionEffect:void 0,vk=()=>{const e={};return function(n,r){if(MN&&ZL()){MN(()=>{n.insertCSSRules(r)},[n,r]);return}e[n.id]===void 0&&(n.insertCSSRules(r),e[n.id]=!0)}},VL=g.createContext(qO());function Em(){return g.useContext(VL)}const TD=g.createContext("ltr"),qL=({children:e,dir:t})=>g.createElement(TD.Provider,{value:t},e);function pk(){return g.useContext(TD)}function Cu(e){const t=UL(e,vk);return function(){const r=pk(),o=Em();return t({dir:r,renderer:o})}}function $(e,t){const n=CD(e,t,vk);return function(){const o=pk(),i=Em();return n({dir:o,renderer:i})}}function Re(e,t,n){const r=HL(e,t,n,vk);return function(){const i=pk(),a=Em();return r({dir:i,renderer:a})}}function _L(e,t){if(t){const n=Object.keys(t).reduce((r,o)=>`${r}--${o}: ${t[o]}; `,"");return`${e} { ${n} }`}return`${e} {}`}const qp=Symbol.for("fui.slotRenderFunction"),ou=Symbol.for("fui.slotElementType");function be(e,t){const{defaultProps:n,elementType:r}=t,o=XL(e),i={...n,...o,[ou]:r};return o&&typeof o.children=="function"&&(i[qp]=o.children,i.children=n==null?void 0:n.children),i}function Te(e,t){if(!(e===null||e===void 0&&!t.renderByDefault))return be(e,t)}function XL(e){return typeof e=="string"||typeof e=="number"||Array.isArray(e)||g.isValidElement(e)?{children:e}:e}function _p(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&!g.isValidElement(e)}function RN(e){return!!(e!=null&&e.hasOwnProperty(ou))}const Mt=(...e)=>{const t={};for(const n of e){const r=Array.isArray(n)?n:Object.keys(n);for(const o of r)t[o]=1}return t},GL=Mt(["onAuxClick","onAnimationEnd","onAnimationStart","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onInput","onSubmit","onLoad","onError","onKeyDown","onKeyDownCapture","onKeyPress","onKeyUp","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onClick","onClickCapture","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseUpCapture","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onPointerCancel","onPointerDown","onPointerEnter","onPointerLeave","onPointerMove","onPointerOut","onPointerOver","onPointerUp","onGotPointerCapture","onLostPointerCapture"]),YL=Mt(["accessKey","children","className","contentEditable","dir","draggable","hidden","htmlFor","id","lang","ref","role","style","tabIndex","title","translate","spellCheck","name"]),KL=Mt(["itemID","itemProp","itemRef","itemScope","itemType"]),vn=Mt(YL,GL,KL),JL=Mt(vn,["form"]),ID=Mt(vn,["height","loop","muted","preload","src","width"]),QL=Mt(ID,["poster"]),$L=Mt(vn,["start"]),eW=Mt(vn,["value"]),tW=Mt(vn,["download","href","hrefLang","media","rel","target","type"]),nW=Mt(vn,["dateTime"]),Eh=Mt(vn,["autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","type","value"]),rW=Mt(Eh,["accept","alt","autoCapitalize","autoComplete","checked","dirname","form","height","inputMode","list","max","maxLength","min","multiple","pattern","placeholder","readOnly","required","src","step","size","type","value","width"]),oW=Mt(Eh,["autoCapitalize","cols","dirname","form","maxLength","placeholder","readOnly","required","rows","wrap"]),iW=Mt(Eh,["form","multiple","required"]),aW=Mt(vn,["selected","value"]),sW=Mt(vn,["cellPadding","cellSpacing"]),cW=vn,lW=Mt(vn,["colSpan","rowSpan","scope"]),dW=Mt(vn,["colSpan","headers","rowSpan","scope"]),uW=Mt(vn,["span"]),AW=Mt(vn,["span"]),fW=Mt(vn,["disabled","form"]),mW=Mt(vn,["acceptCharset","action","encType","encType","method","noValidate","target"]),vW=Mt(vn,["allow","allowFullScreen","allowPaymentRequest","allowTransparency","csp","height","importance","referrerPolicy","sandbox","src","srcDoc","width"]),pW=Mt(vn,["alt","crossOrigin","height","src","srcSet","useMap","width"]),gW=Mt(vn,["open","onCancel","onClose"]);function hW(e,t,n){const r=Array.isArray(t),o={},i=Object.keys(e);for(const a of i)(!r&&t[a]||r&&t.indexOf(a)>=0||a.indexOf("data-")===0||a.indexOf("aria-")===0)&&(!n||(n==null?void 0:n.indexOf(a))===-1)&&(o[a]=e[a]);return o}const bW={label:JL,audio:ID,video:QL,ol:$L,li:eW,a:tW,button:Eh,input:rW,textarea:oW,select:iW,option:aW,table:sW,tr:cW,th:lW,td:dW,colGroup:uW,col:AW,fieldset:fW,form:mW,iframe:vW,img:pW,time:nW,dialog:gW};function PD(e,t,n){const r=e&&bW[e]||vn;return r.as=1,hW(t,r,n)}const Bh=({primarySlotTagName:e,props:t,excludedPropNames:n})=>({root:{style:t.style,className:t.className},primary:PD(e,t,[...n||[],"style","className"])}),ze=(e,t,n)=>{var r;return PD((r=t.as)!==null&&r!==void 0?r:e,t,n)};function yW(e,t){const n={};for(const r in e)t.indexOf(r)===-1&&e.hasOwnProperty(r)&&(n[r]=e[r]);return n}function DD(e,t){const n=g.useRef(void 0),r=g.useCallback((i,a)=>(n.current!==void 0&&t(n.current),n.current=e(i,a),n.current),[t,e]),o=g.useCallback(()=>{n.current!==void 0&&(t(n.current),n.current=void 0)},[t]);return g.useEffect(()=>o,[o]),[r,o]}const MD=g.createContext(void 0),wW=MD.Provider,RD=g.createContext(void 0),xW="",kW=RD.Provider;function SW(){var e;return(e=g.useContext(RD))!==null&&e!==void 0?e:xW}const jW=g.createContext(void 0),NW=jW.Provider,zD=g.createContext(void 0),CW={targetDocument:typeof document=="object"?document:void 0,dir:"ltr"},TW=zD.Provider;function Ge(){var e;return(e=g.useContext(zD))!==null&&e!==void 0?e:CW}const ED=g.createContext(void 0),IW=ED.Provider;function BD(){var e;return(e=g.useContext(ED))!==null&&e!==void 0?e:{}}const gk=g.createContext(void 0),PW=()=>{},DW=gk.Provider,Ye=e=>{var t,n;return(n=(t=g.useContext(gk))===null||t===void 0?void 0:t[e])!==null&&n!==void 0?n:PW},FD=g.createContext(void 0);FD.Provider;function MW(){return g.useContext(FD)}const OD=g.createContext(void 0);OD.Provider;function RW(){var e;return(e=g.useContext(OD))!==null&&e!==void 0?e:{announce:()=>{}}}const zW=e=>(e(0),0),EW=e=>e;function BW(){const{targetDocument:e}=Ge(),t=e==null?void 0:e.defaultView,n=t?t.requestAnimationFrame:zW,r=t?t.cancelAnimationFrame:EW;return DD(n,r)}function FW(e){return typeof e=="function"}const Mn=e=>{"use no memo";const[t,n]=g.useState(()=>e.defaultState===void 0?e.initialState:OW(e.defaultState)?e.defaultState():e.defaultState),r=g.useRef(e.state);g.useEffect(()=>{r.current=e.state},[e.state]);const o=g.useCallback(i=>{FW(i)&&i(r.current)},[]);return LW(e.state)?[e.state,o]:[t,n]};function OW(e){return typeof e=="function"}const LW=e=>{"use no memo";const[t]=g.useState(()=>e!==void 0);return t};function hk(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const WW={current:0},UW=g.createContext(void 0);function HW(){var e;return(e=g.useContext(UW))!==null&&e!==void 0?e:WW}const nr=hk()?g.useLayoutEffect:g.useEffect,fe=e=>{const t=g.useRef(()=>{throw new Error("Cannot call an event handler while rendering")});return nr(()=>{t.current=e},[e]),g.useCallback((...n)=>{const r=t.current;return r(...n)},[t])};function LD(){const e=g.useRef(!0);return e.current?(e.current=!1,!0):e.current}function ZW(){return g.useReducer(e=>e+1,0)[1]}const WD=g.createContext(void 0);WD.Provider;function VW(){return g.useContext(WD)||""}function Rn(e="fui-",t){"use no memo";const n=HW(),r=VW(),o=qd.useId;if(o){const i=o(),a=g.useMemo(()=>i.replace(/:/g,""),[i]);return t||`${r}${e}${a}`}return g.useMemo(()=>t||`${r}${e}${++n.current}`,[r,e,t,n])}function ot(...e){"use no memo";const t=g.useCallback(n=>{t.current=n;for(const r of e)typeof r=="function"?r(n):r&&(r.current=n)},[...e]);return t}const UD=(e,t)=>!!(e!=null&&e.contains(t)),Fh=e=>{const{targetDocument:t}=Ge(),n=t==null?void 0:t.defaultView,{refs:r,callback:o,element:i,disabled:a,disabledFocusOnIframe:s,contains:c=UD}=e,l=g.useRef(void 0);_W({element:i,disabled:s||a,callback:o,refs:r,contains:c});const d=g.useRef(!1),A=fe(m=>{if(d.current){d.current=!1;return}const v=m.composedPath()[0];r.every(y=>!c(y.current||null,v))&&!a&&o(m)}),f=fe(m=>{d.current=r.some(v=>c(v.current||null,m.target))});g.useEffect(()=>{if(a)return;let m=qW(n);const v=p=>{if(p===m){m=void 0;return}A(p)};return i==null||i.addEventListener("click",v,!0),i==null||i.addEventListener("touchstart",v,!0),i==null||i.addEventListener("contextmenu",v,!0),i==null||i.addEventListener("mousedown",f,!0),l.current=n==null?void 0:n.setTimeout(()=>{m=void 0},1),()=>{i==null||i.removeEventListener("click",v,!0),i==null||i.removeEventListener("touchstart",v,!0),i==null||i.removeEventListener("contextmenu",v,!0),i==null||i.removeEventListener("mousedown",f,!0),n==null||n.clearTimeout(l.current),m=void 0}},[A,i,a,f,n])},qW=e=>{if(e){var t,n;if(typeof e.window=="object"&&e.window===e)return e.event;var r;return(r=(n=e.ownerDocument)===null||n===void 0||(t=n.defaultView)===null||t===void 0?void 0:t.event)!==null&&r!==void 0?r:void 0}},Qb="fuiframefocus",_W=e=>{const{disabled:t,element:n,callback:r,contains:o=UD,pollDuration:i=1e3,refs:a}=e,s=g.useRef(),c=fe(l=>{a.every(A=>!o(A.current||null,l.target))&&!t&&r(l)});g.useEffect(()=>{if(!t)return n==null||n.addEventListener(Qb,c,!0),()=>{n==null||n.removeEventListener(Qb,c,!0)}},[n,t,c]),g.useEffect(()=>{var l;if(!t)return s.current=n==null||(l=n.defaultView)===null||l===void 0?void 0:l.setInterval(()=>{const d=n==null?void 0:n.activeElement;if((d==null?void 0:d.tagName)==="IFRAME"||(d==null?void 0:d.tagName)==="WEBVIEW"){const A=new CustomEvent(Qb,{bubbles:!0});d.dispatchEvent(A)}},i),()=>{var d;n==null||(d=n.defaultView)===null||d===void 0||d.clearTimeout(s.current)}},[n,t,i])},bk=e=>{const{refs:t,callback:n,element:r,disabled:o,contains:i}=e,a=fe(s=>{const c=i||((A,f)=>!!(A!=null&&A.contains(f))),l=s.composedPath()[0];t.every(A=>!c(A.current||null,l))&&!o&&n(s)});g.useEffect(()=>{if(!o)return r==null||r.addEventListener("wheel",a),r==null||r.addEventListener("touchmove",a),()=>{r==null||r.removeEventListener("wheel",a),r==null||r.removeEventListener("touchmove",a)}},[a,r,o])},XW=e=>-1,GW=e=>{};function Bm(){const{targetDocument:e}=Ge(),t=e==null?void 0:e.defaultView,n=t?t.setTimeout:XW,r=t?t.clearTimeout:GW;return DD(n,r)}const zN=(e,t)=>{if(t==="rtl")switch(e){case"ArrowLeft":return"ArrowRight";case"ArrowRight":return"ArrowLeft"}return e};function We(e,t){return(...n)=>{e==null||e(...n),t==null||t(...n)}}function Pn(e,t){var n;const r=e;var o;return!!(!(r==null||(n=r.ownerDocument)===null||n===void 0)&&n.defaultView&&r instanceof r.ownerDocument.defaultView[(o=void 0)!==null&&o!==void 0?o:"HTMLElement"])}function HD(e){return!!e.type.isFluentTriggerComponent}function yk(e,t){return typeof e=="function"?e(t):e?ZD(e,t):e||null}function ZD(e,t){if(!g.isValidElement(e)||e.type===g.Fragment)throw new Error("A trigger element must be a single element for this component. Please ensure that you're not using React Fragments.");if(HD(e)){const n=ZD(e.props.children,t);return g.cloneElement(e,void 0,n)}else return g.cloneElement(e,t)}function Oh(e){return g.isValidElement(e)?HD(e)?Oh(e.props.children):e:null}function Sw(e){return e.type.startsWith("touch")}function jw(e){return e.type.startsWith("mouse")||["click","contextmenu","dblclick"].indexOf(e.type)>-1}function EN(e){return jw(e)?{clientX:e.clientX,clientY:e.clientY}:Sw(e)?{clientX:e.touches[0].clientX,clientY:e.touches[0].clientY}:{clientX:0,clientY:0}}function BN(e){return e instanceof Set?e:new Set(e)}function VD(e){const[t,n]=Mn({initialState:new Set,defaultState:g.useMemo(()=>e.defaultSelectedItems&&BN(e.defaultSelectedItems),[e.defaultSelectedItems]),state:g.useMemo(()=>e.selectedItems&&BN(e.selectedItems),[e.selectedItems])});return[t,(o,i)=>{var a;(a=e.onSelectionChange)===null||a===void 0||a.call(e,o,{selectedItems:i}),n(i)}]}function YW(e){const[t,n]=VD(e);return[t,{deselectItem:o=>n(o,new Set),selectItem:(o,i)=>n(o,new Set([i])),toggleAllItems:()=>{},toggleItem:(o,i)=>n(o,new Set([i])),clearItems:o=>n(o,new Set),isSelected:o=>{var i;return(i=t.has(o))!==null&&i!==void 0?i:!1}}]}function KW(e){const[t,n]=VD(e);return[t,{toggleItem:(o,i)=>{const a=new Set(t);t.has(i)?a.delete(i):a.add(i),n(o,a)},selectItem:(o,i)=>{const a=new Set(t);a.add(i),n(o,a)},deselectItem:(o,i)=>{const a=new Set(t);a.delete(i),n(o,a)},clearItems:o=>{n(o,new Set)},isSelected:o=>t.has(o),toggleAllItems:(o,i)=>{const a=i.every(c=>t.has(c)),s=new Set(t);a?s.clear():i.forEach(c=>s.add(c)),n(o,s)}}]}function JW(e){"use no memo";return e.selectionMode==="multiselect"?KW(e):YW(e)}function QW(e){return e&&!!e._virtual}function $W(e){return QW(e)&&e._virtual.parent||null}function qD(e,t={}){if(!e)return null;if(!t.skipVirtual){const r=$W(e);if(r)return r}const n=e.parentNode;return n&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE?n.host:n}function ur(e,t){if(!e||!t)return!1;if(e===t)return!0;{const n=new WeakSet;for(;t;){const r=qD(t,{skipVirtual:n.has(t)});if(n.add(t),r===e)return!0;t=r}}return!1}function FN(e,t){if(!e)return;const n=e;n._virtual||(n._virtual={}),n._virtual.parent=t}function eU(e,t){return{...t,[ou]:e}}var _D={exports:{}},Ct={};/** @license React v17.0.2 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Lh=60103,Wh=60106,Fm=60107,Om=60108,Lm=60114,Wm=60109,Um=60110,Hm=60112,Zm=60113,wk=60120,Vm=60115,qm=60116,XD=60121,GD=60122,YD=60117,KD=60129,JD=60131;if(typeof Symbol=="function"&&Symbol.for){var En=Symbol.for;Lh=En("react.element"),Wh=En("react.portal"),Fm=En("react.fragment"),Om=En("react.strict_mode"),Lm=En("react.profiler"),Wm=En("react.provider"),Um=En("react.context"),Hm=En("react.forward_ref"),Zm=En("react.suspense"),wk=En("react.suspense_list"),Vm=En("react.memo"),qm=En("react.lazy"),XD=En("react.block"),GD=En("react.server.block"),YD=En("react.fundamental"),KD=En("react.debug_trace_mode"),JD=En("react.legacy_hidden")}function fi(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Lh:switch(e=e.type,e){case Fm:case Lm:case Om:case Zm:case wk:return e;default:switch(e=e&&e.$$typeof,e){case Um:case Hm:case qm:case Vm:case Wm:return e;default:return t}}case Wh:return t}}}var tU=Wm,nU=Lh,rU=Hm,oU=Fm,iU=qm,aU=Vm,sU=Wh,cU=Lm,lU=Om,dU=Zm;Ct.ContextConsumer=Um;Ct.ContextProvider=tU;Ct.Element=nU;Ct.ForwardRef=rU;Ct.Fragment=oU;Ct.Lazy=iU;Ct.Memo=aU;Ct.Portal=sU;Ct.Profiler=cU;Ct.StrictMode=lU;Ct.Suspense=dU;Ct.isAsyncMode=function(){return!1};Ct.isConcurrentMode=function(){return!1};Ct.isContextConsumer=function(e){return fi(e)===Um};Ct.isContextProvider=function(e){return fi(e)===Wm};Ct.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Lh};Ct.isForwardRef=function(e){return fi(e)===Hm};Ct.isFragment=function(e){return fi(e)===Fm};Ct.isLazy=function(e){return fi(e)===qm};Ct.isMemo=function(e){return fi(e)===Vm};Ct.isPortal=function(e){return fi(e)===Wh};Ct.isProfiler=function(e){return fi(e)===Lm};Ct.isStrictMode=function(e){return fi(e)===Om};Ct.isSuspense=function(e){return fi(e)===Zm};Ct.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Fm||e===Lm||e===KD||e===Om||e===Zm||e===wk||e===JD||typeof e=="object"&&e!==null&&(e.$$typeof===qm||e.$$typeof===Vm||e.$$typeof===Wm||e.$$typeof===Um||e.$$typeof===Hm||e.$$typeof===YD||e.$$typeof===XD||e[0]===GD)};Ct.typeOf=fi;_D.exports=Ct;var uU=_D.exports;function QD(e,t){return function(r,o,i,a,s){return RN(o)?t(eU(r,o),null,i,a,s):RN(r)?t(r,o,i,a,s):e(r,o,i,a,s)}}function $D(e){const{as:t,[ou]:n,[qp]:r,...o}=e,i=o,a=typeof n=="string"?t??n:n;return typeof a!="string"&&t&&(i.as=t),{elementType:a,props:i,renderFunction:r}}const qc=oz,AU=(e,t,n)=>{const{elementType:r,renderFunction:o,props:i}=$D(e),a={...i,...t};return o?qc.jsx(g.Fragment,{children:o(r,a)},n):qc.jsx(r,a,n)},fU=(e,t,n)=>{const{elementType:r,renderFunction:o,props:i}=$D(e),a={...i,...t};return o?qc.jsx(g.Fragment,{children:o(r,{...a,children:qc.jsxs(g.Fragment,{children:a.children},void 0)})},n):qc.jsxs(r,a,n)},Q=QD(qc.jsx,AU),ut=QD(qc.jsxs,fU),Nw=g.createContext(void 0),mU={},vU=Nw.Provider,pU=()=>g.useContext(Nw)?g.useContext(Nw):mU,gU=(e,t)=>Q(TW,{value:t.provider,children:Q(wW,{value:t.theme,children:Q(kW,{value:t.themeClassName,children:Q(DW,{value:t.customStyleHooks_unstable,children:Q(NW,{value:t.tooltip,children:Q(qL,{dir:t.textDirection,children:Q(vU,{value:t.iconDirection,children:Q(IW,{value:t.overrides_unstable,children:ut(e.root,{children:[hk()?null:Q("style",{dangerouslySetInnerHTML:{__html:e.serverStyleProps.cssRule},...e.serverStyleProps.attributes}),e.root.children]})})})})})})})})});var hU=typeof WeakRef<"u",ON=class{constructor(e){hU&&typeof e=="object"?this._weakRef=new WeakRef(e):this._instance=e}deref(){var e,t;let n;return this._weakRef?(n=(e=this._weakRef)==null?void 0:e.deref(),n||delete this._weakRef):(n=this._instance,(t=n==null?void 0:n.isDisposed)!=null&&t.call(n)&&delete this._instance),n}},si="keyborg:focusin",Gf="keyborg:focusout";function bU(e){const t=e.HTMLElement,n=t.prototype.focus;let r=!1;return t.prototype.focus=function(){r=!0},e.document.createElement("button").focus(),t.prototype.focus=n,r}var $b=!1;function Bi(e){const t=e.focus;t.__keyborgNativeFocus?t.__keyborgNativeFocus.call(e):e.focus()}function yU(e){const t=e;$b||($b=bU(t));const n=t.HTMLElement.prototype.focus;if(n.__keyborgNativeFocus)return;t.HTMLElement.prototype.focus=c;const r=new Set,o=d=>{const A=d.target;if(!A)return;const f=new CustomEvent(Gf,{cancelable:!0,bubbles:!0,composed:!0,detail:{originalEvent:d}});A.dispatchEvent(f)},i=d=>{const A=d.target;if(!A)return;let f=d.composedPath()[0];const m=new Set;for(;f;)f.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(m.add(f),f=f.host):f=f.parentNode;for(const v of r){const p=v.deref();(!p||!m.has(p))&&(r.delete(v),p&&(p.removeEventListener("focusin",i,!0),p.removeEventListener("focusout",o,!0)))}a(A,d.relatedTarget||void 0)},a=(d,A,f)=>{var m;const v=d.shadowRoot;if(v){for(const b of r)if(b.deref()===v)return;v.addEventListener("focusin",i,!0),v.addEventListener("focusout",o,!0),r.add(new ON(v));return}const p={relatedTarget:A,originalEvent:f},y=new CustomEvent(si,{cancelable:!0,bubbles:!0,composed:!0,detail:p});y.details=p,($b||s.lastFocusedProgrammatically)&&(p.isFocusedProgrammatically=d===((m=s.lastFocusedProgrammatically)==null?void 0:m.deref()),s.lastFocusedProgrammatically=void 0),d.dispatchEvent(y)},s=t.__keyborgData={focusInHandler:i,focusOutHandler:o,shadowTargets:r};t.document.addEventListener("focusin",t.__keyborgData.focusInHandler,!0),t.document.addEventListener("focusout",t.__keyborgData.focusOutHandler,!0);function c(){const d=t.__keyborgData;return d&&(d.lastFocusedProgrammatically=new ON(this)),n.apply(this,arguments)}let l=t.document.activeElement;for(;l&&l.shadowRoot;)a(l),l=l.shadowRoot.activeElement;c.__keyborgNativeFocus=n}function wU(e){const t=e,n=t.HTMLElement.prototype,r=n.focus.__keyborgNativeFocus,o=t.__keyborgData;if(o){t.document.removeEventListener("focusin",o.focusInHandler,!0),t.document.removeEventListener("focusout",o.focusOutHandler,!0);for(const i of o.shadowTargets){const a=i.deref();a&&(a.removeEventListener("focusin",o.focusInHandler,!0),a.removeEventListener("focusout",o.focusOutHandler,!0))}o.shadowTargets.clear(),delete t.__keyborgData}r&&(n.focus=r)}var xU=500,e8=0,kU=class{constructor(e,t){this._isNavigatingWithKeyboard_DO_NOT_USE=!1,this._onFocusIn=r=>{if(this._isMouseOrTouchUsedTimer||this.isNavigatingWithKeyboard)return;const o=r.detail;o.relatedTarget&&(o.isFocusedProgrammatically||o.isFocusedProgrammatically===void 0||(this.isNavigatingWithKeyboard=!0))},this._onMouseDown=r=>{r.buttons===0||r.clientX===0&&r.clientY===0&&r.screenX===0&&r.screenY===0||this._onMouseOrTouch()},this._onMouseOrTouch=()=>{const r=this._win;r&&(this._isMouseOrTouchUsedTimer&&r.clearTimeout(this._isMouseOrTouchUsedTimer),this._isMouseOrTouchUsedTimer=r.setTimeout(()=>{delete this._isMouseOrTouchUsedTimer},1e3)),this.isNavigatingWithKeyboard=!1},this._onKeyDown=r=>{this.isNavigatingWithKeyboard?this._shouldDismissKeyboardNavigation(r)&&this._scheduleDismiss():this._shouldTriggerKeyboardNavigation(r)&&(this.isNavigatingWithKeyboard=!0)},this.id="c"+ ++e8,this._win=e;const n=e.document;if(t){const r=t.triggerKeys,o=t.dismissKeys;r!=null&&r.length&&(this._triggerKeys=new Set(r)),o!=null&&o.length&&(this._dismissKeys=new Set(o))}n.addEventListener(si,this._onFocusIn,!0),n.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("keydown",this._onKeyDown,!0),n.addEventListener("touchstart",this._onMouseOrTouch,!0),n.addEventListener("touchend",this._onMouseOrTouch,!0),n.addEventListener("touchcancel",this._onMouseOrTouch,!0),yU(e)}get isNavigatingWithKeyboard(){return this._isNavigatingWithKeyboard_DO_NOT_USE}set isNavigatingWithKeyboard(e){this._isNavigatingWithKeyboard_DO_NOT_USE!==e&&(this._isNavigatingWithKeyboard_DO_NOT_USE=e,this.update())}dispose(){const e=this._win;if(e){this._isMouseOrTouchUsedTimer&&(e.clearTimeout(this._isMouseOrTouchUsedTimer),this._isMouseOrTouchUsedTimer=void 0),this._dismissTimer&&(e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0),wU(e);const t=e.document;t.removeEventListener(si,this._onFocusIn,!0),t.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("keydown",this._onKeyDown,!0),t.removeEventListener("touchstart",this._onMouseOrTouch,!0),t.removeEventListener("touchend",this._onMouseOrTouch,!0),t.removeEventListener("touchcancel",this._onMouseOrTouch,!0),delete this._win}}isDisposed(){return!!this._win}update(){var e,t;const n=(t=(e=this._win)==null?void 0:e.__keyborg)==null?void 0:t.refs;if(n)for(const r of Object.keys(n))xk.update(n[r],this.isNavigatingWithKeyboard)}_shouldTriggerKeyboardNavigation(e){var t;if(e.key==="Tab")return!0;const n=(t=this._win)==null?void 0:t.document.activeElement,r=!this._triggerKeys||this._triggerKeys.has(e.keyCode),o=n&&(n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.isContentEditable);return r&&!o}_shouldDismissKeyboardNavigation(e){var t;return(t=this._dismissKeys)==null?void 0:t.has(e.keyCode)}_scheduleDismiss(){const e=this._win;if(e){this._dismissTimer&&(e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0);const t=e.document.activeElement;this._dismissTimer=e.setTimeout(()=>{this._dismissTimer=void 0;const n=e.document.activeElement;t&&n&&t===n&&(this.isNavigatingWithKeyboard=!1)},xU)}}},xk=class t8{constructor(t,n){this._cb=[],this._id="k"+ ++e8,this._win=t;const r=t.__keyborg;r?(this._core=r.core,r.refs[this._id]=this):(this._core=new kU(t,n),t.__keyborg={core:this._core,refs:{[this._id]:this}})}static create(t,n){return new t8(t,n)}static dispose(t){t.dispose()}static update(t,n){t._cb.forEach(r=>r(n))}dispose(){var t;const n=(t=this._win)==null?void 0:t.__keyborg;n!=null&&n.refs[this._id]&&(delete n.refs[this._id],Object.keys(n.refs).length===0&&(n.core.dispose(),delete this._win.__keyborg)),this._cb=[],delete this._core,delete this._win}isNavigatingWithKeyboard(){var t;return!!((t=this._core)!=null&&t.isNavigatingWithKeyboard)}subscribe(t){this._cb.push(t)}unsubscribe(t){const n=this._cb.indexOf(t);n>=0&&this._cb.splice(n,1)}setVal(t){this._core&&(this._core.isNavigatingWithKeyboard=t)}};function Uh(e,t){return xk.create(e,t)}function Hh(e){xk.dispose(e)}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. *//*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const la="data-tabster",SU="data-tabster-dummy",n8=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","*[tabindex]","*[contenteditable]","details > summary","audio[controls]","video[controls]"].join(", "),da={EscapeGroupper:1,Restorer:2,Deloser:3},Ea={Invisible:0,PartiallyVisible:1,Visible:2},Bs={Source:0,Target:1},$o={Both:0,Vertical:1,Horizontal:2,Grid:3,GridLinear:4},an={ArrowUp:1,ArrowDown:2,ArrowLeft:3,ArrowRight:4,PageUp:5,PageDown:6,Home:7,End:8},Uv={Unlimited:0,Limited:1,LimitedTrapFocus:2},LN={Enter:1,Escape:2},jU={Auto:0,Inside:1,Outside:2};/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */function gr(e,t){var n;return(n=e.storageEntry(t))===null||n===void 0?void 0:n.tabster}function r8(e,t,n){var r,o;const i=n||e._noop?void 0:t.getAttribute(la);let a=e.storageEntry(t),s;if(i)if(i!==((r=a==null?void 0:a.attr)===null||r===void 0?void 0:r.string))try{const A=JSON.parse(i);if(typeof A!="object")throw new Error(`Value is not a JSON object, got '${i}'.`);s={string:i,object:A}}catch{}else return;else if(!a)return;a||(a=e.storageEntry(t,!0)),a.tabster||(a.tabster={});const c=a.tabster||{},l=((o=a.attr)===null||o===void 0?void 0:o.object)||{},d=(s==null?void 0:s.object)||{};for(const A of Object.keys(l))if(!d[A]){if(A==="root"){const f=c[A];f&&e.root.onRoot(f,!0)}switch(A){case"deloser":case"root":case"groupper":case"modalizer":case"restorer":case"mover":const f=c[A];f&&(f.dispose(),delete c[A]);break;case"observed":delete c[A],e.observedElement&&e.observedElement.onObservedElementUpdate(t);break;case"focusable":case"outline":case"uncontrolled":case"sys":delete c[A];break}}for(const A of Object.keys(d)){const f=d.sys;switch(A){case"deloser":c.deloser?c.deloser.setProps(d.deloser):e.deloser&&(c.deloser=e.deloser.createDeloser(t,d.deloser));break;case"root":c.root?c.root.setProps(d.root):c.root=e.root.createRoot(t,d.root,f),e.root.onRoot(c.root);break;case"modalizer":c.modalizer?c.modalizer.setProps(d.modalizer):e.modalizer&&(c.modalizer=e.modalizer.createModalizer(t,d.modalizer,f));break;case"restorer":c.restorer?c.restorer.setProps(d.restorer):e.restorer&&d.restorer&&(c.restorer=e.restorer.createRestorer(t,d.restorer));break;case"focusable":c.focusable=d.focusable;break;case"groupper":c.groupper?c.groupper.setProps(d.groupper):e.groupper&&(c.groupper=e.groupper.createGroupper(t,d.groupper,f));break;case"mover":c.mover?c.mover.setProps(d.mover):e.mover&&(c.mover=e.mover.createMover(t,d.mover,f));break;case"observed":e.observedElement&&(c.observed=d.observed,e.observedElement.onObservedElementUpdate(t));break;case"uncontrolled":c.uncontrolled=d.uncontrolled;break;case"outline":e.outline&&(c.outline=d.outline);break;case"sys":c.sys=d.sys;break;default:console.error(`Unknown key '${A}' in data-tabster attribute value.`)}}s?a.attr=s:(Object.keys(c).length===0&&(delete a.tabster,delete a.attr),e.storageEntry(t,!1))}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const NU="tabster:focusin",CU="tabster:focusout",TU="tabster:movefocus",IU="tabster:modalizer:active",PU="tabster:modalizer:inactive",DU="tabster:mover:state",WN="tabster:mover:movefocus",UN="tabster:mover:memorized-element",HN="tabster:groupper:movefocus",Cw="tabster:restorer:restore-focus",MU="tabster:root:focus",RU="tabster:root:blur",zU=typeof CustomEvent<"u"?CustomEvent:function(){};class Na extends zU{constructor(t,n){super(t,{bubbles:!0,cancelable:!0,composed:!0,detail:n}),this.details=n}}class EU extends Na{constructor(t){super(NU,t)}}class BU extends Na{constructor(t){super(CU,t)}}class xs extends Na{constructor(t){super(TU,t)}}class ZN extends Na{constructor(t){super(DU,t)}}class FU extends Na{constructor(t){super(IU,t)}}class OU extends Na{constructor(t){super(PU,t)}}class VN extends Na{constructor(){super(Cw)}}class LU extends Na{constructor(t){super(MU,t)}}class WU extends Na{constructor(t){super(RU,t)}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const UU=e=>new MutationObserver(e),HU=(e,t,n,r)=>e.createTreeWalker(t,n,r),ZU=e=>e?e.parentNode:null,VU=e=>e?e.parentElement:null,qU=(e,t)=>!!(t&&(e!=null&&e.contains(t))),_U=e=>e.activeElement,XU=(e,t)=>e.querySelector(t),GU=(e,t)=>Array.prototype.slice.call(e.querySelectorAll(t),0),YU=(e,t)=>e.getElementById(t),KU=e=>(e==null?void 0:e.firstChild)||null,JU=e=>(e==null?void 0:e.lastChild)||null,QU=e=>(e==null?void 0:e.nextSibling)||null,$U=e=>(e==null?void 0:e.previousSibling)||null,eH=e=>(e==null?void 0:e.firstElementChild)||null,tH=e=>(e==null?void 0:e.lastElementChild)||null,nH=e=>(e==null?void 0:e.nextElementSibling)||null,rH=e=>(e==null?void 0:e.previousElementSibling)||null,oH=(e,t)=>e.appendChild(t),iH=(e,t,n)=>e.insertBefore(t,n),aH=e=>{var t;return((t=e.ownerDocument)===null||t===void 0?void 0:t.getSelection())||null},sH=(e,t)=>e.ownerDocument.getElementsByName(t),ie={createMutationObserver:UU,createTreeWalker:HU,getParentNode:ZU,getParentElement:VU,nodeContains:qU,getActiveElement:_U,querySelector:XU,querySelectorAll:GU,getElementById:YU,getFirstChild:KU,getLastChild:JU,getNextSibling:QU,getPreviousSibling:$U,getFirstElementChild:eH,getLastElementChild:tH,getNextElementSibling:nH,getPreviousElementSibling:rH,appendChild:oH,insertBefore:iH,getSelection:aH,getElementsByName:sH};function cH(e){for(const t of Object.keys(e))ie[t]=e[t]}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */let Tw;const qN=typeof DOMRect<"u"?DOMRect:class{constructor(e,t,n,r){this.left=e||0,this.top=t||0,this.right=(e||0)+(n||0),this.bottom=(t||0)+(r||0)}};let lH=0;try{document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT),Tw=!1}catch{Tw=!0}const e1=100;function Ca(e){const t=e();let n=t.__tabsterInstanceContext;return n||(n={elementByUId:{},basics:{Promise:t.Promise||void 0,WeakRef:t.WeakRef||void 0},containerBoundingRectCache:{},lastContainerBoundingRectCacheId:0,fakeWeakRefs:[],fakeWeakRefsStarted:!1},t.__tabsterInstanceContext=n),n}function dH(e){const t=e.__tabsterInstanceContext;t&&(t.elementByUId={},delete t.WeakRef,t.containerBoundingRectCache={},t.containerBoundingRectCacheTimer&&e.clearTimeout(t.containerBoundingRectCacheTimer),t.fakeWeakRefsTimer&&e.clearTimeout(t.fakeWeakRefsTimer),t.fakeWeakRefs=[],delete e.__tabsterInstanceContext)}function uH(e){const t=e.__tabsterInstanceContext;return new((t==null?void 0:t.basics.WeakMap)||WeakMap)}function AH(e){return!!e.querySelector(n8)}class o8{constructor(t){this._target=t}deref(){return this._target}static cleanup(t,n){return t._target?n||!Sk(t._target.ownerDocument,t._target)?(delete t._target,!0):!1:!0}}class to{constructor(t,n,r){const o=Ca(t);let i;o.WeakRef?i=new o.WeakRef(n):(i=new o8(n),o.fakeWeakRefs.push(i)),this._ref=i,this._data=r}get(){const t=this._ref;let n;return t&&(n=t.deref(),n||delete this._ref),n}getData(){return this._data}}function i8(e,t){const n=Ca(e);n.fakeWeakRefs=n.fakeWeakRefs.filter(r=>!o8.cleanup(r,t))}function a8(e){const t=Ca(e);t.fakeWeakRefsStarted||(t.fakeWeakRefsStarted=!0,t.WeakRef=hH(t)),t.fakeWeakRefsTimer||(t.fakeWeakRefsTimer=e().setTimeout(()=>{t.fakeWeakRefsTimer=void 0,i8(e),a8(e)},2*60*1e3))}function fH(e){const t=Ca(e);t.fakeWeakRefsStarted=!1,t.fakeWeakRefsTimer&&(e().clearTimeout(t.fakeWeakRefsTimer),t.fakeWeakRefsTimer=void 0,t.fakeWeakRefs=[])}function kk(e,t,n){if(t.nodeType!==Node.ELEMENT_NODE)return;const r=Tw?n:{acceptNode:n};return ie.createTreeWalker(e,t,NodeFilter.SHOW_ELEMENT,r,!1)}function s8(e,t){let n=t.__tabsterCacheId;const r=Ca(e),o=n?r.containerBoundingRectCache[n]:void 0;if(o)return o.rect;const i=t.ownerDocument&&t.ownerDocument.documentElement;if(!i)return new qN;let a=0,s=0,c=i.clientWidth,l=i.clientHeight;if(t!==i){const A=t.getBoundingClientRect();a=Math.max(a,A.left),s=Math.max(s,A.top),c=Math.min(c,A.right),l=Math.min(l,A.bottom)}const d=new qN(a{r.containerBoundingRectCacheTimer=void 0;for(const A of Object.keys(r.containerBoundingRectCache))delete r.containerBoundingRectCache[A].element.__tabsterCacheId;r.containerBoundingRectCache={}},50)),d}function _N(e,t,n){const r=c8(t);if(!r)return!1;const o=s8(e,r),i=t.getBoundingClientRect(),a=i.height*(1-n),s=Math.max(0,o.top-i.top),c=Math.max(0,i.bottom-o.bottom),l=s+c;return l===0||l<=a}function mH(e,t,n){const r=c8(t);if(r){const o=s8(e,r),i=t.getBoundingClientRect();n?r.scrollTop+=i.top-o.top:r.scrollTop+=i.bottom-o.bottom}}function c8(e){const t=e.ownerDocument;if(t){for(let n=ie.getParentElement(e);n;n=ie.getParentElement(n))if(n.scrollWidth>n.clientWidth||n.scrollHeight>n.clientHeight)return n;return t.documentElement}return null}function vH(e){e.__shouldIgnoreFocus=!0}function l8(e){return!!e.__shouldIgnoreFocus}function pH(e){const t=new Uint32Array(4);if(e.crypto&&e.crypto.getRandomValues)e.crypto.getRandomValues(t);else if(e.msCrypto&&e.msCrypto.getRandomValues)e.msCrypto.getRandomValues(t);else for(let r=0;r{if(this._fixedTarget){const f=this._fixedTarget.get();f&&Bi(f);return}const A=this.input;if(this.onFocusIn&&A){const f=d.relatedTarget;this.onFocusIn(this,this._isBackward(!0,A,f),f)}},this._focusOut=d=>{if(this._fixedTarget)return;this.useDefaultAction=!1;const A=this.input;if(this.onFocusOut&&A){const f=d.relatedTarget;this.onFocusOut(this,this._isBackward(!1,A,f),f)}};const s=t(),c=s.document.createElement("i");c.tabIndex=0,c.setAttribute("role","none"),c.setAttribute(SU,""),c.setAttribute("aria-hidden","true");const l=c.style;l.position="fixed",l.width=l.height="1px",l.opacity="0.001",l.zIndex="-1",l.setProperty("content-visibility","hidden"),vH(c),this.input=c,this.isFirst=r.isFirst,this.isOutside=n,this._isPhantom=(a=r.isPhantom)!==null&&a!==void 0?a:!1,this._fixedTarget=i,c.addEventListener("focusin",this._focusIn),c.addEventListener("focusout",this._focusOut),c.__tabsterDummyContainer=o,this._isPhantom&&(this._disposeTimer=s.setTimeout(()=>{delete this._disposeTimer,this.dispose()},0),this._clearDisposeTimeout=()=>{this._disposeTimer&&(s.clearTimeout(this._disposeTimer),delete this._disposeTimer),delete this._clearDisposeTimeout})}dispose(){var t;this._clearDisposeTimeout&&this._clearDisposeTimeout();const n=this.input;n&&(delete this._fixedTarget,delete this.onFocusIn,delete this.onFocusOut,delete this.input,n.removeEventListener("focusin",this._focusIn),n.removeEventListener("focusout",this._focusOut),delete n.__tabsterDummyContainer,(t=ie.getParentNode(n))===null||t===void 0||t.removeChild(n))}setTopLeft(t,n){var r;const o=(r=this.input)===null||r===void 0?void 0:r.style;o&&(o.top=`${t}px`,o.left=`${n}px`)}_isBackward(t,n,r){return t&&!r?!this.isFirst:!!(r&&n.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_FOLLOWING)}}const Zh={Root:1,Modalizer:2,Mover:3,Groupper:4};class iu{constructor(t,n,r,o,i,a){this._element=n,this._instance=new wH(t,n,this,r,o,i,a)}_setHandlers(t,n){this._onFocusIn=t,this._onFocusOut=n}moveOut(t){var n;(n=this._instance)===null||n===void 0||n.moveOut(t)}moveOutWithDefaultAction(t,n){var r;(r=this._instance)===null||r===void 0||r.moveOutWithDefaultAction(t,n)}getHandler(t){return t?this._onFocusIn:this._onFocusOut}setTabbable(t){var n;(n=this._instance)===null||n===void 0||n.setTabbable(this,t)}dispose(){this._instance&&(this._instance.dispose(this),delete this._instance),delete this._onFocusIn,delete this._onFocusOut}static moveWithPhantomDummy(t,n,r,o,i){const s=new Xp(t.getWindow,!0,{isPhantom:!0,isFirst:!0}).input;if(s){let c,l;if(n.tagName==="BODY")c=n,l=r&&o||!r&&!o?ie.getFirstElementChild(n):null;else{r&&(!o||o&&!t.focusable.isFocusable(n,!1,!0,!0))?(c=n,l=o?n.firstElementChild:null):(c=ie.getParentElement(n),l=r&&o||!r&&!o?n:ie.getNextElementSibling(n));let d,A;do d=r&&o||!r&&!o?ie.getPreviousElementSibling(l):l,A=au(d),A===n?l=r&&o||!r&&!o?d:ie.getNextElementSibling(d):A=null;while(A)}c!=null&&c.dispatchEvent(new xs({by:"root",owner:c,next:null,relatedEvent:i}))&&(ie.insertBefore(c,s,l),Bi(s))}}static addPhantomDummyWithTarget(t,n,r,o){const a=new Xp(t.getWindow,!0,{isPhantom:!0,isFirst:!0},void 0,new to(t.getWindow,o)).input;if(a){let s,c;AH(n)&&!r?(s=n,c=ie.getFirstElementChild(n)):(s=ie.getParentElement(n),c=r?n:ie.getNextElementSibling(n)),s&&ie.insertBefore(s,a,c)}}}class yH{constructor(t){this._updateQueue=new Set,this._lastUpdateQueueTime=0,this._changedParents=new WeakSet,this._dummyElements=[],this._dummyCallbacks=new WeakMap,this._domChanged=n=>{var r;this._changedParents.has(n)||(this._changedParents.add(n),!this._updateDummyInputsTimer&&(this._updateDummyInputsTimer=(r=this._win)===null||r===void 0?void 0:r.call(this).setTimeout(()=>{delete this._updateDummyInputsTimer;for(const o of this._dummyElements){const i=o.get();if(i){const a=this._dummyCallbacks.get(i);if(a){const s=ie.getParentNode(i);(!s||this._changedParents.has(s))&&a()}}}this._changedParents=new WeakSet},e1)))},this._win=t}add(t,n){!this._dummyCallbacks.has(t)&&this._win&&(this._dummyElements.push(new to(this._win,t)),this._dummyCallbacks.set(t,n),this.domChanged=this._domChanged)}remove(t){this._dummyElements=this._dummyElements.filter(n=>{const r=n.get();return r&&r!==t}),this._dummyCallbacks.delete(t),this._dummyElements.length===0&&delete this.domChanged}dispose(){var t;const n=(t=this._win)===null||t===void 0?void 0:t.call(this);this._updateTimer&&(n==null||n.clearTimeout(this._updateTimer),delete this._updateTimer),this._updateDummyInputsTimer&&(n==null||n.clearTimeout(this._updateDummyInputsTimer),delete this._updateDummyInputsTimer),this._changedParents=new WeakSet,this._dummyCallbacks=new WeakMap,this._dummyElements=[],this._updateQueue.clear(),delete this.domChanged,delete this._win}updatePositions(t){this._win&&(this._updateQueue.add(t),this._lastUpdateQueueTime=Date.now(),this._scheduledUpdatePositions())}_scheduledUpdatePositions(){var t;this._updateTimer||(this._updateTimer=(t=this._win)===null||t===void 0?void 0:t.call(this).setTimeout(()=>{if(delete this._updateTimer,this._lastUpdateQueueTime+e1<=Date.now()){const n=new Map,r=[];for(const o of this._updateQueue)r.push(o(n));this._updateQueue.clear();for(const o of r)o();n.clear()}else this._scheduledUpdatePositions()},e1))}}class wH{constructor(t,n,r,o,i,a,s){this._wrappers=[],this._isOutside=!1,this._transformElements=new Set,this._onFocusIn=(m,v,p)=>{this._onFocus(!0,m,v,p)},this._onFocusOut=(m,v,p)=>{this._onFocus(!1,m,v,p)},this.moveOut=m=>{var v;const p=this._firstDummy,y=this._lastDummy;if(p&&y){this._ensurePosition();const b=p.input,h=y.input,w=(v=this._element)===null||v===void 0?void 0:v.get();if(b&&h&&w){let x;m?(b.tabIndex=0,x=b):(h.tabIndex=0,x=h),x&&Bi(x)}}},this.moveOutWithDefaultAction=(m,v)=>{var p;const y=this._firstDummy,b=this._lastDummy;if(y&&b){this._ensurePosition();const h=y.input,w=b.input,x=(p=this._element)===null||p===void 0?void 0:p.get();if(h&&w&&x){let k;m?!y.isOutside&&this._tabster.focusable.isFocusable(x,!0,!0,!0)?k=x:(y.useDefaultAction=!0,h.tabIndex=0,k=h):(b.useDefaultAction=!0,w.tabIndex=0,k=w),k&&x.dispatchEvent(new xs({by:"root",owner:x,next:null,relatedEvent:v}))&&Bi(k)}}},this.setTabbable=(m,v)=>{var p,y;for(const h of this._wrappers)if(h.manager===m){h.tabbable=v;break}const b=this._getCurrent();if(b){const h=b.tabbable?0:-1;let w=(p=this._firstDummy)===null||p===void 0?void 0:p.input;w&&(w.tabIndex=h),w=(y=this._lastDummy)===null||y===void 0?void 0:y.input,w&&(w.tabIndex=h)}},this._addDummyInputs=()=>{this._addTimer||(this._addTimer=this._getWindow().setTimeout(()=>{delete this._addTimer,this._ensurePosition(),this._addTransformOffsets()},0))},this._addTransformOffsets=()=>{this._tabster._dummyObserver.updatePositions(this._computeTransformOffsets)},this._computeTransformOffsets=m=>{var v,p;const y=((v=this._firstDummy)===null||v===void 0?void 0:v.input)||((p=this._lastDummy)===null||p===void 0?void 0:p.input),b=this._transformElements,h=new Set;let w=0,x=0;const k=this._getWindow();for(let S=y;S&&S.nodeType===Node.ELEMENT_NODE;S=ie.getParentElement(S)){let N=m.get(S);if(N===void 0){const C=k.getComputedStyle(S).transform;C&&C!=="none"&&(N={scrollTop:S.scrollTop,scrollLeft:S.scrollLeft}),m.set(S,N||null)}N&&(h.add(S),b.has(S)||S.addEventListener("scroll",this._addTransformOffsets),w+=N.scrollTop,x+=N.scrollLeft)}for(const S of b)h.has(S)||S.removeEventListener("scroll",this._addTransformOffsets);return this._transformElements=h,()=>{var S,N;(S=this._firstDummy)===null||S===void 0||S.setTopLeft(w,x),(N=this._lastDummy)===null||N===void 0||N.setTopLeft(w,x)}};const c=n.get();if(!c)throw new Error("No element");this._tabster=t,this._getWindow=t.getWindow,this._callForDefaultAction=s;const l=c.__tabsterDummy;if((l||this)._wrappers.push({manager:r,priority:o,tabbable:!0}),l)return l;c.__tabsterDummy=this;const d=i==null?void 0:i.dummyInputsPosition,A=c.tagName;this._isOutside=d?d===jU.Outside:(a||A==="UL"||A==="OL"||A==="TABLE")&&!(A==="LI"||A==="TD"||A==="TH"),this._firstDummy=new Xp(this._getWindow,this._isOutside,{isFirst:!0},n),this._lastDummy=new Xp(this._getWindow,this._isOutside,{isFirst:!1},n);const f=this._firstDummy.input;f&&t._dummyObserver.add(f,this._addDummyInputs),this._firstDummy.onFocusIn=this._onFocusIn,this._firstDummy.onFocusOut=this._onFocusOut,this._lastDummy.onFocusIn=this._onFocusIn,this._lastDummy.onFocusOut=this._onFocusOut,this._element=n,this._addDummyInputs()}dispose(t,n){var r,o,i,a;if((this._wrappers=this._wrappers.filter(c=>c.manager!==t&&!n)).length===0){delete((r=this._element)===null||r===void 0?void 0:r.get()).__tabsterDummy;for(const d of this._transformElements)d.removeEventListener("scroll",this._addTransformOffsets);this._transformElements.clear();const c=this._getWindow();this._addTimer&&(c.clearTimeout(this._addTimer),delete this._addTimer);const l=(o=this._firstDummy)===null||o===void 0?void 0:o.input;l&&this._tabster._dummyObserver.remove(l),(i=this._firstDummy)===null||i===void 0||i.dispose(),(a=this._lastDummy)===null||a===void 0||a.dispose()}}_onFocus(t,n,r,o){var i;const a=this._getCurrent();a&&(!n.useDefaultAction||this._callForDefaultAction)&&((i=a.manager.getHandler(t))===null||i===void 0||i(n,r,o))}_getCurrent(){return this._wrappers.sort((t,n)=>t.tabbable!==n.tabbable?t.tabbable?-1:1:t.priority-n.priority),this._wrappers[0]}_ensurePosition(){var t,n,r;const o=(t=this._element)===null||t===void 0?void 0:t.get(),i=(n=this._firstDummy)===null||n===void 0?void 0:n.input,a=(r=this._lastDummy)===null||r===void 0?void 0:r.input;if(!(!o||!i||!a))if(this._isOutside){const s=ie.getParentNode(o);if(s){const c=ie.getNextSibling(o);c!==a&&ie.insertBefore(s,a,c),ie.getPreviousElementSibling(o)!==i&&ie.insertBefore(s,i,o)}}else{ie.getLastElementChild(o)!==a&&ie.appendChild(o,a);const s=ie.getFirstElementChild(o);s&&s!==i&&s.parentNode&&ie.insertBefore(s.parentNode,i,s)}}}function u8(e){let t=null;for(let n=ie.getLastElementChild(e);n;n=ie.getLastElementChild(n))t=n;return t||void 0}function xH(e,t){let n=e,r=null;for(;n&&!r;)r=t?ie.getPreviousElementSibling(n):ie.getNextElementSibling(n),n=ie.getParentElement(n);return r||void 0}function t1(e,t,n,r){const o=e.storageEntry(t,!0);let i=!1;if(!o.aug){if(r===void 0)return i;o.aug={}}if(r===void 0){if(n in o.aug){const a=o.aug[n];delete o.aug[n],a===null?t.removeAttribute(n):t.setAttribute(n,a),i=!0}}else{let a;n in o.aug||(a=t.getAttribute(n)),a!==void 0&&a!==r&&(o.aug[n]=a,r===null?t.removeAttribute(n):t.setAttribute(n,r),i=!0)}return r===void 0&&Object.keys(o.aug).length===0&&(delete o.aug,e.storageEntry(t,!1)),i}function kH(e){var t,n;const r=e.ownerDocument,o=(t=r.defaultView)===null||t===void 0?void 0:t.getComputedStyle(e);return e.offsetParent===null&&r.body!==e&&(o==null?void 0:o.position)!=="fixed"||(o==null?void 0:o.visibility)==="hidden"||(o==null?void 0:o.position)==="fixed"&&(o.display==="none"||((n=e.parentElement)===null||n===void 0?void 0:n.offsetParent)===null&&r.body!==e.parentElement)}function Iw(e){return e.tagName==="INPUT"&&!!e.name&&e.type==="radio"}function SH(e){if(!Iw(e))return;const t=e.name;let n=Array.from(ie.getElementsByName(e,t)),r;return n=n.filter(o=>Iw(o)?(o.checked&&(r=o),!0):!1),{name:t,buttons:new Set(n),checked:r}}function au(e){var t;return((t=e==null?void 0:e.__tabsterDummyContainer)===null||t===void 0?void 0:t.get())||null}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */function Vh(e,t){const n=JSON.stringify(e);return t===!0?n:{[la]:n}}function jH(e,t){for(const n of Object.keys(t)){const r=t[n];r?e[n]=r:delete e[n]}}function NH(e,t,n){let r;{const o=e.getAttribute(la);if(o)try{r=JSON.parse(o)}catch{}}r||(r={}),jH(r,t),Object.keys(r).length>0?e.setAttribute(la,Vh(r,!0)):e.removeAttribute(la)}class GN extends iu{constructor(t,n,r,o){super(t,n,Zh.Root,o,void 0,!0),this._onDummyInputFocus=i=>{var a;if(i.useDefaultAction)this._setFocused(!1);else{this._tabster.keyboardNavigation.setNavigatingWithKeyboard(!0);const s=this._element.get();if(s){this._setFocused(!0);const c=this._tabster.focusedElement.getFirstOrLastTabbable(i.isFirst,{container:s,ignoreAccessibility:!0});if(c){Bi(c);return}}(a=i.input)===null||a===void 0||a.blur()}},this._setHandlers(this._onDummyInputFocus),this._tabster=t,this._setFocused=r}}class CH extends _m{constructor(t,n,r,o,i){super(t,n,o),this._isFocused=!1,this._setFocused=l=>{var d;if(this._setFocusedTimer&&(this._tabster.getWindow().clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),this._isFocused===l)return;const A=this._element.get();A&&(l?(this._isFocused=!0,(d=this._dummyManager)===null||d===void 0||d.setTabbable(!1),A.dispatchEvent(new LU({element:A}))):this._setFocusedTimer=this._tabster.getWindow().setTimeout(()=>{var f;delete this._setFocusedTimer,this._isFocused=!1,(f=this._dummyManager)===null||f===void 0||f.setTabbable(!0),A.dispatchEvent(new WU({element:A}))},0))},this._onFocusIn=l=>{const d=this._tabster.getParent,A=this._element.get();let f=l.composedPath()[0];do{if(f===A){this._setFocused(!0);return}f=f&&d(f)}while(f)},this._onFocusOut=()=>{this._setFocused(!1)},this._onDispose=r;const a=t.getWindow;this.uid=Hv(a,n),this._sys=i,(t.controlTab||t.rootDummyInputs)&&this.addDummyInputs();const c=a().document;c.addEventListener(si,this._onFocusIn),c.addEventListener(Gf,this._onFocusOut),this._add()}addDummyInputs(){this._dummyManager||(this._dummyManager=new GN(this._tabster,this._element,this._setFocused,this._sys))}dispose(){var t;this._onDispose(this);const n=this._tabster.getWindow(),r=n.document;r.removeEventListener(si,this._onFocusIn),r.removeEventListener(Gf,this._onFocusOut),this._setFocusedTimer&&(n.clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),(t=this._dummyManager)===null||t===void 0||t.dispose(),this._remove()}moveOutWithDefaultAction(t,n){const r=this._dummyManager;if(r)r.moveOutWithDefaultAction(t,n);else{const o=this.getElement();o&&GN.moveWithPhantomDummy(this._tabster,o,!0,t,n)}}_add(){}_remove(){}}class Pt{constructor(t,n){this._autoRootWaiting=!1,this._roots={},this._forceDummy=!1,this.rootById={},this._autoRootCreate=()=>{var r;const o=this._win().document,i=o.body;if(i){this._autoRootUnwait(o);const a=this._autoRoot;if(a)return NH(i,{root:a}),r8(this._tabster,i),(r=gr(this._tabster,i))===null||r===void 0?void 0:r.root}else this._autoRootWaiting||(this._autoRootWaiting=!0,o.addEventListener("readystatechange",this._autoRootCreate))},this._onRootDispose=r=>{delete this._roots[r.id]},this._tabster=t,this._win=t.getWindow,this._autoRoot=n,t.queueInit(()=>{this._autoRoot&&this._autoRootCreate()})}_autoRootUnwait(t){t.removeEventListener("readystatechange",this._autoRootCreate),this._autoRootWaiting=!1}dispose(){const t=this._win();this._autoRootUnwait(t.document),delete this._autoRoot,Object.keys(this._roots).forEach(n=>{this._roots[n]&&(this._roots[n].dispose(),delete this._roots[n])}),this.rootById={}}createRoot(t,n,r){const o=new CH(this._tabster,t,this._onRootDispose,n,r);return this._roots[o.id]=o,this._forceDummy&&o.addDummyInputs(),o}addDummyInputs(){this._forceDummy=!0;const t=this._roots;for(const n of Object.keys(t))t[n].addDummyInputs()}static getRootByUId(t,n){const r=t().__tabsterInstance;return r&&r.root.rootById[n]}static getTabsterContext(t,n,r){r===void 0&&(r={});var o,i,a,s;if(!n.ownerDocument)return;const{checkRtl:c,referenceElement:l}=r,d=t.getParent;t.drainInitQueue();let A,f,m,v,p=!1,y,b,h,w,x=l||n;const k={};for(;x&&(!A||c);){const N=gr(t,x);if(c&&h===void 0){const F=x.dir;F&&(h=F.toLowerCase()==="rtl")}if(!N){x=d(x);continue}const C=x.tagName;(N.uncontrolled||C==="IFRAME"||C==="WEBVIEW")&&(w=x),!v&&(!((o=N.focusable)===null||o===void 0)&&o.excludeFromMover)&&!m&&(p=!0);const M=N.modalizer,j=N.groupper,T=N.mover;!f&&M&&(f=M),!m&&j&&(!f||M)&&(f?(!j.isActive()&&j.getProps().tabbability&&f.userId!==((i=t.modalizer)===null||i===void 0?void 0:i.activeId)&&(f=void 0,m=j),b=j):m=j),!v&&T&&(!f||M)&&(!j||x!==n)&&x.contains(n)&&(v=T,y=!!m&&m!==j),N.root&&(A=N.root),!((a=N.focusable)===null||a===void 0)&&a.ignoreKeydown&&Object.assign(k,N.focusable.ignoreKeydown),x=d(x)}if(!A){const N=t.root;N._autoRoot&&!((s=n.ownerDocument)===null||s===void 0)&&s.body&&(A=N._autoRootCreate())}return m&&!v&&(y=!0),A?{root:A,modalizer:f,groupper:m,mover:v,groupperBeforeMover:y,modalizerInGroupper:b,rtl:c?!!h:void 0,uncontrolled:w,excludedFromMover:p,ignoreKeydown:N=>!!k[N.key]}:void 0}static getRoot(t,n){var r;const o=t.getParent;for(let i=n;i;i=o(i)){const a=(r=gr(t,i))===null||r===void 0?void 0:r.root;if(a)return a}}onRoot(t,n){n?delete this.rootById[t.uid]:this.rootById[t.uid]=t}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class A8{constructor(){this._callbacks=[]}dispose(){this._callbacks=[],delete this._val}subscribe(t){const n=this._callbacks;n.indexOf(t)<0&&n.push(t)}subscribeFirst(t){const n=this._callbacks,r=n.indexOf(t);r>=0&&n.splice(r,1),n.unshift(t)}unsubscribe(t){const n=this._callbacks.indexOf(t);n>=0&&this._callbacks.splice(n,1)}setVal(t,n){this._val!==t&&(this._val=t,this._callCallbacks(t,n))}getVal(){return this._val}trigger(t,n){this._callCallbacks(t,n)}_callCallbacks(t,n){this._callbacks.forEach(r=>r(t,n))}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class TH{constructor(t){this._tabster=t}dispose(){}getProps(t){const n=gr(this._tabster,t);return n&&n.focusable||{}}isFocusable(t,n,r,o){return d8(t,n8)&&(n||t.tabIndex!==-1)?(r||this.isVisible(t))&&(o||this.isAccessible(t)):!1}isVisible(t){if(!t.ownerDocument||t.nodeType!==Node.ELEMENT_NODE||kH(t))return!1;const n=t.ownerDocument.body.getBoundingClientRect();return!(n.width===0&&n.height===0)}isAccessible(t){var n;for(let r=t;r;r=ie.getParentElement(r)){const o=gr(this._tabster,r);if(this._isHidden(r)||!((n=o==null?void 0:o.focusable)===null||n===void 0?void 0:n.ignoreAriaDisabled)&&this._isDisabled(r))return!1}return!0}_isDisabled(t){return t.hasAttribute("disabled")}_isHidden(t){var n;const r=t.getAttribute("aria-hidden");return!!(r&&r.toLowerCase()==="true"&&!(!((n=this._tabster.modalizer)===null||n===void 0)&&n.isAugmented(t)))}findFirst(t,n){return this.findElement({...t},n)}findLast(t,n){return this.findElement({isBackward:!0,...t},n)}findNext(t,n){return this.findElement({...t},n)}findPrev(t,n){return this.findElement({...t,isBackward:!0},n)}findDefault(t,n){return this.findElement({...t,acceptCondition:r=>this.isFocusable(r,t.includeProgrammaticallyFocusable)&&!!this.getProps(r).isDefault},n)||null}findAll(t){return this._findElements(!0,t)||[]}findElement(t,n){const r=this._findElements(!1,t,n);return r&&r[0]}_findElements(t,n,r){var o,i,a;const{container:s,currentElement:c=null,includeProgrammaticallyFocusable:l,useActiveModalizer:d,ignoreAccessibility:A,modalizerId:f,isBackward:m,onElement:v}=n;r||(r={});const p=[];let{acceptCondition:y}=n;const b=!!y;if(!s)return null;y||(y=k=>this.isFocusable(k,l,!1,A));const h={container:s,modalizerUserId:f===void 0&&d?(o=this._tabster.modalizer)===null||o===void 0?void 0:o.activeId:f||((a=(i=Pt.getTabsterContext(this._tabster,s))===null||i===void 0?void 0:i.modalizer)===null||a===void 0?void 0:a.userId),from:c||s,isBackward:m,isFindAll:t,acceptCondition:y,hasCustomCondition:b,includeProgrammaticallyFocusable:l,ignoreAccessibility:A,cachedGrouppers:{},cachedRadioGroups:{}},w=kk(s.ownerDocument,s,k=>this._acceptElement(k,h));if(!w)return null;const x=k=>{var S,N;const C=(S=h.foundElement)!==null&&S!==void 0?S:h.foundBackward;return C&&p.push(C),t?C&&(h.found=!1,delete h.foundElement,delete h.foundBackward,delete h.fromCtx,h.from=C,v&&!v(C))?!1:!!(C||k):(C&&r&&(r.uncontrolled=(N=Pt.getTabsterContext(this._tabster,C))===null||N===void 0?void 0:N.uncontrolled),!!(k&&!C))};if(c||(r.outOfDOMOrder=!0),c&&ie.nodeContains(s,c))w.currentNode=c;else if(m){const k=u8(s);if(!k)return null;if(this._acceptElement(k,h)===NodeFilter.FILTER_ACCEPT&&!x(!0))return h.skippedFocusable&&(r.outOfDOMOrder=!0),p;w.currentNode=k}do m?w.previousNode():w.nextNode();while(x());return h.skippedFocusable&&(r.outOfDOMOrder=!0),p.length?p:null}_acceptElement(t,n){var r,o,i;if(n.found)return NodeFilter.FILTER_ACCEPT;const a=n.foundBackward;if(a&&(t===a||!ie.nodeContains(a,t)))return n.found=!0,n.foundElement=a,NodeFilter.FILTER_ACCEPT;const s=n.container;if(t===s)return NodeFilter.FILTER_SKIP;if(!ie.nodeContains(s,t)||au(t)||ie.nodeContains(n.rejectElementsFrom,t))return NodeFilter.FILTER_REJECT;const c=n.currentCtx=Pt.getTabsterContext(this._tabster,t);if(!c)return NodeFilter.FILTER_SKIP;if(l8(t))return this.isFocusable(t,void 0,!0,!0)&&(n.skippedFocusable=!0),NodeFilter.FILTER_SKIP;if(!n.hasCustomCondition&&(t.tagName==="IFRAME"||t.tagName==="WEBVIEW"))return((r=c.modalizer)===null||r===void 0?void 0:r.userId)===((o=this._tabster.modalizer)===null||o===void 0?void 0:o.activeId)?(n.found=!0,n.rejectElementsFrom=n.foundElement=t,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT;if(!n.ignoreAccessibility&&!this.isAccessible(t))return this.isFocusable(t,!1,!0,!0)&&(n.skippedFocusable=!0),NodeFilter.FILTER_REJECT;let l,d=n.fromCtx;d||(d=n.fromCtx=Pt.getTabsterContext(this._tabster,n.from));const A=d==null?void 0:d.mover;let f=c.groupper,m=c.mover;if(l=(i=this._tabster.modalizer)===null||i===void 0?void 0:i.acceptElement(t,n),l!==void 0&&(n.skippedFocusable=!0),l===void 0&&(f||m||A)){const v=f==null?void 0:f.getElement(),p=A==null?void 0:A.getElement();let y=m==null?void 0:m.getElement();y&&ie.nodeContains(p,y)&&ie.nodeContains(s,p)&&(!v||!m||ie.nodeContains(p,v))&&(m=A,y=p),v&&(v===s||!ie.nodeContains(s,v))&&(f=void 0),y&&!ie.nodeContains(s,y)&&(m=void 0),f&&m&&(y&&v&&!ie.nodeContains(v,y)?m=void 0:f=void 0),f&&(l=f.acceptElement(t,n)),m&&(l=m.acceptElement(t,n))}if(l===void 0&&(l=n.acceptCondition(t)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,l===NodeFilter.FILTER_SKIP&&this.isFocusable(t,!1,!0,!0)&&(n.skippedFocusable=!0)),l===NodeFilter.FILTER_ACCEPT&&!n.found){if(!n.isFindAll&&Iw(t)&&!t.checked){const v=t.name;let p=n.cachedRadioGroups[v];if(p||(p=SH(t),p&&(n.cachedRadioGroups[v]=p)),p!=null&&p.checked&&p.checked!==t)return NodeFilter.FILTER_SKIP}n.isBackward?(n.foundBackward=t,l=NodeFilter.FILTER_SKIP):(n.found=!0,n.foundElement=t)}return l}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const $t={Tab:"Tab",Enter:"Enter",Escape:"Escape",Space:" ",PageUp:"PageUp",PageDown:"PageDown",End:"End",Home:"Home",ArrowLeft:"ArrowLeft",ArrowUp:"ArrowUp",ArrowRight:"ArrowRight",ArrowDown:"ArrowDown"};/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */function IH(e,t){var n;const r=e.getParent;let o=t;do{const i=(n=gr(e,o))===null||n===void 0?void 0:n.uncontrolled;if(i&&e.uncontrolled.isUncontrolledCompletely(o,!!i.completely))return o;o=r(o)}while(o)}const YN={[da.Restorer]:0,[da.Deloser]:1,[da.EscapeGroupper]:2};class en extends A8{constructor(t,n){super(),this._init=()=>{const r=this._win(),o=r.document;o.addEventListener(si,this._onFocusIn,!0),o.addEventListener(Gf,this._onFocusOut,!0),r.addEventListener("keydown",this._onKeyDown,!0);const i=ie.getActiveElement(o);i&&i!==o.body&&this._setFocusedElement(i),this.subscribe(this._onChanged)},this._onFocusIn=r=>{const o=r.composedPath()[0];o&&this._setFocusedElement(o,r.detail.relatedTarget,r.detail.isFocusedProgrammatically)},this._onFocusOut=r=>{var o;this._setFocusedElement(void 0,(o=r.detail)===null||o===void 0?void 0:o.originalEvent.relatedTarget)},this._validateFocusedElement=r=>{},this._onKeyDown=r=>{if(r.key!==$t.Tab||r.ctrlKey)return;const o=this.getVal();if(!o||!o.ownerDocument||o.contentEditable==="true")return;const i=this._tabster,a=i.controlTab,s=Pt.getTabsterContext(i,o);if(!s||s.ignoreKeydown(r))return;const c=r.shiftKey,l=en.findNextTabbable(i,s,void 0,o,void 0,c,!0),d=s.root.getElement();if(!d)return;const A=l==null?void 0:l.element,f=IH(i,o);if(A){const m=l.uncontrolled;if(s.uncontrolled||ie.nodeContains(m,o)){if(!l.outOfDOMOrder&&m===s.uncontrolled||f&&!ie.nodeContains(f,A))return;iu.addPhantomDummyWithTarget(i,o,c,A);return}if(m||A.tagName==="IFRAME"){d.dispatchEvent(new xs({by:"root",owner:d,next:A,relatedEvent:r}))&&iu.moveWithPhantomDummy(this._tabster,m??A,!1,c,r);return}(a||l!=null&&l.outOfDOMOrder)&&d.dispatchEvent(new xs({by:"root",owner:d,next:A,relatedEvent:r}))&&(r.preventDefault(),r.stopImmediatePropagation(),Bi(A))}else!f&&d.dispatchEvent(new xs({by:"root",owner:d,next:null,relatedEvent:r}))&&s.root.moveOutWithDefaultAction(c,r)},this._onChanged=(r,o)=>{var i,a;if(r)r.dispatchEvent(new EU(o));else{const s=(i=this._lastVal)===null||i===void 0?void 0:i.get();if(s){const c={...o},l=Pt.getTabsterContext(this._tabster,s),d=(a=l==null?void 0:l.modalizer)===null||a===void 0?void 0:a.userId;d&&(c.modalizerId=d),s.dispatchEvent(new BU(c))}}},this._tabster=t,this._win=n,t.queueInit(this._init)}dispose(){super.dispose();const t=this._win(),n=t.document;n.removeEventListener(si,this._onFocusIn,!0),n.removeEventListener(Gf,this._onFocusOut,!0),t.removeEventListener("keydown",this._onKeyDown,!0),this.unsubscribe(this._onChanged);const r=this._asyncFocus;r&&(t.clearTimeout(r.timeout),delete this._asyncFocus),delete en._lastResetElement,delete this._nextVal,delete this._lastVal}static forgetMemorized(t,n){var r,o;let i=en._lastResetElement,a=i&&i.get();a&&ie.nodeContains(n,a)&&delete en._lastResetElement,a=(o=(r=t._nextVal)===null||r===void 0?void 0:r.element)===null||o===void 0?void 0:o.get(),a&&ie.nodeContains(n,a)&&delete t._nextVal,i=t._lastVal,a=i&&i.get(),a&&ie.nodeContains(n,a)&&delete t._lastVal}getFocusedElement(){return this.getVal()}getLastFocusedElement(){var t;let n=(t=this._lastVal)===null||t===void 0?void 0:t.get();return(!n||n&&!Sk(n.ownerDocument,n))&&(this._lastVal=n=void 0),n}focus(t,n,r){return this._tabster.focusable.isFocusable(t,n,!1,r)?(t.focus(),!0):!1}focusDefault(t){const n=this._tabster.focusable.findDefault({container:t});return n?(this._tabster.focusedElement.focus(n),!0):!1}getFirstOrLastTabbable(t,n){var r;const{container:o,ignoreAccessibility:i}=n;let a;if(o){const s=Pt.getTabsterContext(this._tabster,o);s&&(a=(r=en.findNextTabbable(this._tabster,s,o,void 0,void 0,!t,i))===null||r===void 0?void 0:r.element)}return a&&!ie.nodeContains(o,a)&&(a=void 0),a||void 0}_focusFirstOrLast(t,n){const r=this.getFirstOrLastTabbable(t,n);return r?(this.focus(r,!1,!0),!0):!1}focusFirst(t){return this._focusFirstOrLast(!0,t)}focusLast(t){return this._focusFirstOrLast(!1,t)}resetFocus(t){if(!this._tabster.focusable.isVisible(t))return!1;if(this._tabster.focusable.isFocusable(t,!0,!0,!0))this.focus(t);else{const n=t.getAttribute("tabindex"),r=t.getAttribute("aria-hidden");t.tabIndex=-1,t.setAttribute("aria-hidden","true"),en._lastResetElement=new to(this._win,t),this.focus(t,!0,!0),this._setOrRemoveAttribute(t,"tabindex",n),this._setOrRemoveAttribute(t,"aria-hidden",r)}return!0}requestAsyncFocus(t,n,r){const o=this._tabster.getWindow(),i=this._asyncFocus;if(i){if(YN[t]>YN[i.source])return;o.clearTimeout(i.timeout)}this._asyncFocus={source:t,callback:n,timeout:o.setTimeout(()=>{this._asyncFocus=void 0,n()},r)}}cancelAsyncFocus(t){const n=this._asyncFocus;(n==null?void 0:n.source)===t&&(this._tabster.getWindow().clearTimeout(n.timeout),this._asyncFocus=void 0)}_setOrRemoveAttribute(t,n,r){r===null?t.removeAttribute(n):t.setAttribute(n,r)}_setFocusedElement(t,n,r){var o,i;if(this._tabster._noop)return;const a={relatedTarget:n};if(t){const c=(o=en._lastResetElement)===null||o===void 0?void 0:o.get();if(en._lastResetElement=void 0,c===t||l8(t))return;a.isFocusedProgrammatically=r;const l=Pt.getTabsterContext(this._tabster,t),d=(i=l==null?void 0:l.modalizer)===null||i===void 0?void 0:i.userId;d&&(a.modalizerId=d)}const s=this._nextVal={element:t?new to(this._win,t):void 0,detail:a};t&&t!==this._val&&this._validateFocusedElement(t),this._nextVal===s&&this.setVal(t,a),this._nextVal=void 0}setVal(t,n){super.setVal(t,n),t&&(this._lastVal=new to(this._win,t))}static findNextTabbable(t,n,r,o,i,a,s){const c=r||n.root.getElement();if(!c)return null;let l=null;const d=en._isTabbingTimer,A=t.getWindow();d&&A.clearTimeout(d),en.isTabbing=!0,en._isTabbingTimer=A.setTimeout(()=>{delete en._isTabbingTimer,en.isTabbing=!1},0);const f=n.modalizer,m=n.groupper,v=n.mover,p=y=>{if(l=y.findNextTabbable(o,i,a,s),o&&!(l!=null&&l.element)){const b=y!==f&&ie.getParentElement(y.getElement());if(b){const h=Pt.getTabsterContext(t,o,{referenceElement:b});if(h){const w=y.getElement(),x=a?w:w&&u8(w)||w;x&&(l=en.findNextTabbable(t,h,r,x,b,a,s),l&&(l.outOfDOMOrder=!0))}}}};if(m&&v)p(n.groupperBeforeMover?m:v);else if(m)p(m);else if(v)p(v);else if(f)p(f);else{const y={container:c,currentElement:o,referenceElement:i,ignoreAccessibility:s,useActiveModalizer:!0},b={};l={element:t.focusable[a?"findPrev":"findNext"](y,b),outOfDOMOrder:b.outOfDOMOrder,uncontrolled:b.uncontrolled}}return l}}en.isTabbing=!1;/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class PH extends iu{constructor(t,n,r,o){super(r,t,Zh.Groupper,o,!0),this._setHandlers((i,a,s)=>{var c,l;const d=t.get(),A=i.input;if(d&&A){const f=Pt.getTabsterContext(r,A);if(f){let m;m=(c=n.findNextTabbable(s||void 0,void 0,a,!0))===null||c===void 0?void 0:c.element,m||(m=(l=en.findNextTabbable(r,f,void 0,i.isOutside?A:xH(d,!a),void 0,a,!0))===null||l===void 0?void 0:l.element),m&&Bi(m)}}})}}class DH extends _m{constructor(t,n,r,o,i){super(t,n,o),this._shouldTabInside=!1,this.makeTabbable(!1),this._onDispose=r,t.controlTab||(this.dummyManager=new PH(this._element,this,t,i))}dispose(){var t;this._onDispose(this),this._element.get(),(t=this.dummyManager)===null||t===void 0||t.dispose(),delete this.dummyManager,delete this._first}findNextTabbable(t,n,r,o){const i=this.getElement();if(!i)return null;const a=au(t)===i;if(!this._shouldTabInside&&t&&ie.nodeContains(i,t)&&!a)return{element:void 0,outOfDOMOrder:!0};const s=this.getFirst(!0);if(!t||!ie.nodeContains(i,t)||a)return{element:s,outOfDOMOrder:!0};const c=this._tabster;let l=null,d=!1,A;if(this._shouldTabInside&&s){const f={container:i,currentElement:t,referenceElement:n,ignoreAccessibility:o,useActiveModalizer:!0},m={};l=c.focusable[r?"findPrev":"findNext"](f,m),d=!!m.outOfDOMOrder,!l&&this._props.tabbability===Uv.LimitedTrapFocus&&(l=c.focusable[r?"findLast":"findFirst"]({container:i,ignoreAccessibility:o,useActiveModalizer:!0},m),d=!0),A=m.uncontrolled}return{element:l,uncontrolled:A,outOfDOMOrder:d}}makeTabbable(t){this._shouldTabInside=t||!this._props.tabbability}isActive(t){var n;const r=this.getElement()||null;let o=!0;for(let a=ie.getParentElement(r);a;a=ie.getParentElement(a)){const s=(n=gr(this._tabster,a))===null||n===void 0?void 0:n.groupper;s&&(s._shouldTabInside||(o=!1))}let i=o?this._props.tabbability?this._shouldTabInside:!1:void 0;if(i&&t){const a=this._tabster.focusedElement.getFocusedElement();a&&(i=a!==this.getFirst(!0))}return i}getFirst(t){var n;const r=this.getElement();let o;if(r){if(t&&this._tabster.focusable.isFocusable(r))return r;o=(n=this._first)===null||n===void 0?void 0:n.get(),o||(o=this._tabster.focusable.findFirst({container:r,useActiveModalizer:!0})||void 0,o&&this.setFirst(o))}return o}setFirst(t){t?this._first=new to(this._tabster.getWindow,t):delete this._first}acceptElement(t,n){const r=n.cachedGrouppers,o=ie.getParentElement(this.getElement()),i=o&&Pt.getTabsterContext(this._tabster,o),a=i==null?void 0:i.groupper,s=i!=null&&i.groupperBeforeMover?a:void 0;let c;const l=f=>{let m=r[f.id],v;return m?v=m.isActive:(v=this.isActive(!0),m=r[f.id]={isActive:v}),v};if(s&&(c=s.getElement(),!l(s)&&c&&n.container!==c&&ie.nodeContains(n.container,c)))return n.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const d=l(this),A=this.getElement();if(A&&d!==!0){if(A===t&&a&&(c||(c=a.getElement()),c&&!l(a)&&ie.nodeContains(n.container,c)&&c!==n.container)||A!==t&&ie.nodeContains(A,t))return n.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const f=r[this.id];let m;if("first"in f?m=f.first:m=f.first=this.getFirst(!0),m&&n.acceptCondition(m))return n.rejectElementsFrom=A,n.skippedFocusable=!0,m!==n.from?(n.found=!0,n.foundElement=m,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT}}}class MH{constructor(t,n){this._current={},this._grouppers={},this._init=()=>{const r=this._win();this._tabster.focusedElement.subscribeFirst(this._onFocus);const o=r.document,i=ie.getActiveElement(o);i&&this._onFocus(i),o.addEventListener("mousedown",this._onMouseDown,!0),r.addEventListener("keydown",this._onKeyDown,!0),r.addEventListener(HN,this._onMoveFocus)},this._onGroupperDispose=r=>{delete this._grouppers[r.id]},this._onFocus=r=>{r&&this._updateCurrent(r,!0,!0)},this._onMouseDown=r=>{r.target&&this._updateCurrent(r.target,!0)},this._onKeyDown=r=>{if(r.key!==$t.Enter&&r.key!==$t.Escape||r.ctrlKey||r.altKey||r.shiftKey||r.metaKey)return;const o=this._tabster.focusedElement.getFocusedElement();o&&this.handleKeyPress(o,r)},this._onMoveFocus=r=>{var o;const i=r.composedPath()[0],a=(o=r.detail)===null||o===void 0?void 0:o.action;i&&a!==void 0&&!r.defaultPrevented&&(a===LN.Enter?this._enterGroupper(i):this._escapeGroupper(i),r.stopImmediatePropagation())},this._tabster=t,this._win=n,t.queueInit(this._init)}dispose(){const t=this._win();this._tabster.focusedElement.cancelAsyncFocus(da.EscapeGroupper),this._current={},this._updateTimer&&(t.clearTimeout(this._updateTimer),delete this._updateTimer),this._tabster.focusedElement.unsubscribe(this._onFocus),t.document.removeEventListener("mousedown",this._onMouseDown,!0),t.removeEventListener("keydown",this._onKeyDown,!0),t.removeEventListener(HN,this._onMoveFocus),Object.keys(this._grouppers).forEach(n=>{this._grouppers[n]&&(this._grouppers[n].dispose(),delete this._grouppers[n])})}createGroupper(t,n,r){const o=new DH(this._tabster,t,this._onGroupperDispose,n,r);this._grouppers[o.id]=o;const i=this._tabster.focusedElement.getFocusedElement();return i&&ie.nodeContains(t,i)&&!this._updateTimer&&(this._updateTimer=this._win().setTimeout(()=>{delete this._updateTimer,i===this._tabster.focusedElement.getFocusedElement()&&this._updateCurrent(i,!0,!0)},0)),o}forgetCurrentGrouppers(){this._current={}}_updateCurrent(t,n,r){var o;this._updateTimer&&(this._win().clearTimeout(this._updateTimer),delete this._updateTimer);const i={};let a=!0;for(let s=t;s;s=ie.getParentElement(s)){const c=(o=gr(this._tabster,s))===null||o===void 0?void 0:o.groupper;if(c){if(i[c.id]=!0,a&&r&&s!==t&&(a=!1),n||!a){this._current[c.id]=c;const l=c.isActive()||t!==s&&(!c.getProps().delegated||c.getFirst(!1)!==t);c.makeTabbable(l)}a=!1}}for(const s of Object.keys(this._current)){const c=this._current[s];c.id in i||(c.makeTabbable(!1),c.setFirst(void 0),delete this._current[s])}}_enterGroupper(t,n){const r=this._tabster,o=Pt.getTabsterContext(r,t),i=(o==null?void 0:o.groupper)||(o==null?void 0:o.modalizerInGroupper),a=i==null?void 0:i.getElement();if(i&&a&&(t===a||i.getProps().delegated&&t===i.getFirst(!1))){const s=r.focusable.findNext({container:a,currentElement:t,useActiveModalizer:!0});if(s&&(!n||n&&a.dispatchEvent(new xs({by:"groupper",owner:a,next:s,relatedEvent:n}))))return n&&(n.preventDefault(),n.stopImmediatePropagation()),s.focus(),s}return null}_escapeGroupper(t,n,r){var o;const i=this._tabster,a=Pt.getTabsterContext(i,t),s=a==null?void 0:a.modalizerInGroupper;let c=(a==null?void 0:a.groupper)||s;const l=c==null?void 0:c.getElement();if(c&&l&&ie.nodeContains(l,t)){let d;if(t!==l||r)d=c.getFirst(!0);else{const A=ie.getParentElement(l),f=A?Pt.getTabsterContext(i,A):void 0;c=f==null?void 0:f.groupper,d=c==null?void 0:c.getFirst(!0)}if(d&&(!n||n&&l.dispatchEvent(new xs({by:"groupper",owner:l,next:d,relatedEvent:n}))))return c&&(c.makeTabbable(!1),s&&((o=i.modalizer)===null||o===void 0||o.setActive(void 0))),d.focus(),d}return null}moveFocus(t,n){return n===LN.Enter?this._enterGroupper(t):this._escapeGroupper(t)}handleKeyPress(t,n,r){const o=this._tabster,i=Pt.getTabsterContext(o,t);if(i&&(i!=null&&i.groupper||i!=null&&i.modalizerInGroupper)){if(o.focusedElement.cancelAsyncFocus(da.EscapeGroupper),i.ignoreKeydown(n))return;if(n.key===$t.Enter)this._enterGroupper(t,n);else if(n.key===$t.Escape){const a=o.focusedElement.getFocusedElement();o.focusedElement.requestAsyncFocus(da.EscapeGroupper,()=>{a!==o.focusedElement.getFocusedElement()&&(r&&!a||!r)||this._escapeGroupper(t,n,r)},0)}}}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class RH extends A8{constructor(t){super(),this._onChange=n=>{this.setVal(n,void 0)},this._keyborg=Uh(t()),this._keyborg.subscribe(this._onChange)}dispose(){super.dispose(),this._keyborg&&(this._keyborg.unsubscribe(this._onChange),Hh(this._keyborg),delete this._keyborg)}setNavigatingWithKeyboard(t){var n;(n=this._keyborg)===null||n===void 0||n.setVal(t)}isNavigatingWithKeyboard(){var t;return!!(!((t=this._keyborg)===null||t===void 0)&&t.isNavigatingWithKeyboard())}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */let zH=0;const n1="aria-hidden";class EH extends iu{constructor(t,n,r){super(n,t,Zh.Modalizer,r),this._setHandlers((o,i)=>{var a,s;const c=t.get(),l=c&&((a=Pt.getRoot(n,c))===null||a===void 0?void 0:a.getElement()),d=o.input;let A;if(l&&d){const f=au(d),m=Pt.getTabsterContext(n,f||d);m&&(A=(s=en.findNextTabbable(n,m,l,d,void 0,i,!0))===null||s===void 0?void 0:s.element),A&&Bi(A)}})}}class BH extends _m{constructor(t,n,r,o,i,a){super(t,n,o),this._wasFocused=0,this.userId=o.id,this._onDispose=r,this._activeElements=a,t.controlTab||(this.dummyManager=new EH(this._element,t,i))}makeActive(t){if(this._isActive!==t){this._isActive=t;const n=this.getElement();if(n){const r=this._activeElements,o=r.map(i=>i.get()).indexOf(n);t?o<0&&r.push(new to(this._tabster.getWindow,n)):o>=0&&r.splice(o,1)}this._dispatchEvent(t)}}focused(t){return t||(this._wasFocused=++zH),this._wasFocused}setProps(t){t.id&&(this.userId=t.id),this._props={...t}}dispose(){var t;this.makeActive(!1),this._onDispose(this),(t=this.dummyManager)===null||t===void 0||t.dispose(),delete this.dummyManager,this._activeElements=[],this._remove()}isActive(){return!!this._isActive}contains(t){return ie.nodeContains(this.getElement(),t)}findNextTabbable(t,n,r,o){var i,a;if(!this.getElement())return null;const c=this._tabster;let l=null,d=!1,A;const f=t&&((i=Pt.getRoot(c,t))===null||i===void 0?void 0:i.getElement());if(f){const m={container:f,currentElement:t,referenceElement:n,ignoreAccessibility:o,useActiveModalizer:!0},v={};l=c.focusable[r?"findPrev":"findNext"](m,v),!l&&this._props.isTrapped&&(!((a=c.modalizer)===null||a===void 0)&&a.activeId)?(l=c.focusable[r?"findLast":"findFirst"]({container:f,ignoreAccessibility:o,useActiveModalizer:!0},v),d=!0):d=!!v.outOfDOMOrder,A=v.uncontrolled}return{element:l,uncontrolled:A,outOfDOMOrder:d}}_dispatchEvent(t,n){const r=this.getElement();let o=!1;if(r){const i=n?this._activeElements.map(a=>a.get()):[r];for(const a of i)if(a){const s={id:this.userId,element:r},c=t?new FU(s):new OU(s);a.dispatchEvent(c),c.defaultPrevented&&(o=!0)}}return o}_remove(){}}class FH{constructor(t,n,r){this._onModalizerDispose=i=>{const a=i.id,s=i.userId,c=this._parts[s];delete this._modalizers[a],c&&(delete c[a],Object.keys(c).length===0&&(delete this._parts[s],this.activeId===s&&this.setActive(void 0)))},this._onKeyDown=i=>{var a;if(i.key!==$t.Escape)return;const s=this._tabster,c=s.focusedElement.getFocusedElement();if(c){const l=Pt.getTabsterContext(s,c),d=l==null?void 0:l.modalizer;if(l&&!l.groupper&&(d!=null&&d.isActive())&&!l.ignoreKeydown(i)){const A=d.userId;if(A){const f=this._parts[A];if(f){const m=Object.keys(f).map(v=>{var p;const y=f[v],b=y.getElement();let h;return b&&(h=(p=gr(this._tabster,b))===null||p===void 0?void 0:p.groupper),y&&b&&h?{el:b,focusedSince:y.focused(!0)}:{focusedSince:0}}).filter(v=>v.focusedSince>0).sort((v,p)=>v.focusedSince>p.focusedSince?-1:v.focusedSince{var s,c;const l=i&&Pt.getTabsterContext(this._tabster,i);if(!l||!i)return;const d=this._augMap;for(let f=i;f;f=ie.getParentElement(f))d.has(f)&&(d.delete(f),t1(this._tabster,f,n1));const A=l.modalizer;if((c=A||((s=gr(this._tabster,i))===null||s===void 0?void 0:s.modalizer))===null||c===void 0||c.focused(),(A==null?void 0:A.userId)===this.activeId){this.currentIsOthersAccessible=A==null?void 0:A.getProps().isOthersAccessible;return}if(a.isFocusedProgrammatically||this.currentIsOthersAccessible||A!=null&&A.getProps().isAlwaysAccessible)this.setActive(A);else{const f=this._win();f.clearTimeout(this._restoreModalizerFocusTimer),this._restoreModalizerFocusTimer=f.setTimeout(()=>this._restoreModalizerFocus(i),100)}},this._tabster=t,this._win=t.getWindow,this._modalizers={},this._parts={},this._augMap=new WeakMap,this._aug=[],this._alwaysAccessibleSelector=n,this._accessibleCheck=r,this.activeElements=[],t.controlTab||t.root.addDummyInputs(),this._win().addEventListener("keydown",this._onKeyDown,!0),t.queueInit(()=>{this._tabster.focusedElement.subscribe(this._onFocus)})}dispose(){const t=this._win();t.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._modalizers).forEach(n=>{this._modalizers[n]&&(this._modalizers[n].dispose(),delete this._modalizers[n])}),t.clearTimeout(this._restoreModalizerFocusTimer),t.clearTimeout(this._hiddenUpdateTimer),this._parts={},delete this.activeId,this.activeElements=[],this._augMap=new WeakMap,this._aug=[],this._tabster.focusedElement.unsubscribe(this._onFocus)}createModalizer(t,n,r){var o;const i=new BH(this._tabster,t,this._onModalizerDispose,n,r,this.activeElements),a=i.id,s=n.id;this._modalizers[a]=i;let c=this._parts[s];return c||(c=this._parts[s]={}),c[a]=i,ie.nodeContains(t,(o=this._tabster.focusedElement.getFocusedElement())!==null&&o!==void 0?o:null)&&(s!==this.activeId?this.setActive(i):i.makeActive(!0)),i}isAugmented(t){return this._augMap.has(t)}hiddenUpdate(){this._hiddenUpdateTimer||(this._hiddenUpdateTimer=this._win().setTimeout(()=>{delete this._hiddenUpdateTimer,this._hiddenUpdate()},250))}setActive(t){const n=t==null?void 0:t.userId,r=this.activeId;if(r!==n){if(this.activeId=n,r){const o=this._parts[r];if(o)for(const i of Object.keys(o))o[i].makeActive(!1)}if(n){const o=this._parts[n];if(o)for(const i of Object.keys(o))o[i].makeActive(!0)}this.currentIsOthersAccessible=t==null?void 0:t.getProps().isOthersAccessible,this.hiddenUpdate()}}focus(t,n,r){const o=Pt.getTabsterContext(this._tabster,t),i=o==null?void 0:o.modalizer;if(i){this.setActive(i);const a=i.getProps(),s=i.getElement();if(s){if(n===void 0&&(n=a.isNoFocusFirst),!n&&this._tabster.keyboardNavigation.isNavigatingWithKeyboard()&&this._tabster.focusedElement.focusFirst({container:s})||(r===void 0&&(r=a.isNoFocusDefault),!r&&this._tabster.focusedElement.focusDefault(s)))return!0;this._tabster.focusedElement.resetFocus(s)}}return!1}acceptElement(t,n){var r;const o=n.modalizerUserId,i=(r=n.currentCtx)===null||r===void 0?void 0:r.modalizer;if(o)for(const s of this.activeElements){const c=s.get();if(c&&(ie.nodeContains(t,c)||c===t))return NodeFilter.FILTER_SKIP}const a=o===(i==null?void 0:i.userId)||!o&&(i!=null&&i.getProps().isAlwaysAccessible)?void 0:NodeFilter.FILTER_SKIP;return a!==void 0&&(n.skippedFocusable=!0),a}_hiddenUpdate(){var t;const n=this._tabster,r=n.getWindow().document.body,o=this.activeId,i=this._parts,a=[],s=[],c=this._alwaysAccessibleSelector,l=c?Array.from(ie.querySelectorAll(r,c)):[],d=[];for(const b of Object.keys(i)){const h=i[b];for(const w of Object.keys(h)){const x=h[w],k=x.getElement(),N=x.getProps().isAlwaysAccessible;k&&(b===o?(d.push(k),this.currentIsOthersAccessible||a.push(k)):N?l.push(k):s.push(k))}}const A=this._augMap,f=a.length>0?[...a,...l]:void 0,m=[],v=new WeakMap,p=(b,h)=>{var w;const x=b.tagName;if(x==="SCRIPT"||x==="STYLE")return;let k=!1;A.has(b)?h?k=!0:(A.delete(b),t1(n,b,n1)):h&&!(!((w=this._accessibleCheck)===null||w===void 0)&&w.call(this,b,d))&&t1(n,b,n1,"true")&&(A.set(b,!0),k=!0),k&&(m.push(new to(n.getWindow,b)),v.set(b,!0))},y=b=>{var h;for(let w=ie.getFirstElementChild(b);w;w=ie.getNextElementSibling(w)){let x=!1,k=!1,S=!1;if(f){const N=n.getParent(w);for(const C of f){if(w===C){x=!0;break}if(ie.nodeContains(w,C)){k=!0;break}else ie.nodeContains(C,N)&&(S=!0)}k||!((h=w.__tabsterElementFlags)===null||h===void 0)&&h.noDirectAriaHidden?y(w):!x&&!S&&p(w,!0)}else p(w,!1)}};f||l.forEach(b=>p(b,!1)),s.forEach(b=>p(b,!0)),r&&y(r),(t=this._aug)===null||t===void 0||t.map(b=>b.get()).forEach(b=>{b&&!v.get(b)&&p(b,!1)}),this._aug=m,this._augMap=v}_restoreModalizerFocus(t){const n=t==null?void 0:t.ownerDocument;if(!t||!n)return;const r=Pt.getTabsterContext(this._tabster,t),o=r==null?void 0:r.modalizer,i=this.activeId;if(!o&&!i||o&&i===o.userId)return;const a=r==null?void 0:r.root.getElement();if(a){let s=this._tabster.focusable.findFirst({container:a,useActiveModalizer:!0});if(s){if(t.compareDocumentPosition(s)&document.DOCUMENT_POSITION_PRECEDING&&(s=this._tabster.focusable.findLast({container:a,useActiveModalizer:!0}),!s))throw new Error("Something went wrong.");this._tabster.focusedElement.focus(s);return}}t.blur()}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const OH=["input","textarea","*[contenteditable]"].join(", ");class LH extends iu{constructor(t,n,r,o){super(n,t,Zh.Mover,o),this._onFocusDummyInput=i=>{var a,s;const c=this._element.get(),l=i.input;if(c&&l){const d=Pt.getTabsterContext(this._tabster,c);let A;d&&(A=(a=en.findNextTabbable(this._tabster,d,void 0,l,void 0,!i.isFirst,!0))===null||a===void 0?void 0:a.element);const f=(s=this._getMemorized())===null||s===void 0?void 0:s.get();f&&this._tabster.focusable.isFocusable(f)&&(A=f),A&&Bi(A)}},this._tabster=n,this._getMemorized=r,this._setHandlers(this._onFocusDummyInput)}}const r1=1,KN=2,JN=3;class WH extends _m{constructor(t,n,r,o,i){var a;super(t,n,o),this._visible={},this._onIntersection=c=>{for(const l of c){const d=l.target,A=Hv(this._win,d);let f,m=this._fullyVisible;if(l.intersectionRatio>=.25?(f=l.intersectionRatio>=.75?Ea.Visible:Ea.PartiallyVisible,f===Ea.Visible&&(m=A)):f=Ea.Invisible,this._visible[A]!==f){f===void 0?(delete this._visible[A],m===A&&delete this._fullyVisible):(this._visible[A]=f,this._fullyVisible=m);const v=this.getState(d);v&&d.dispatchEvent(new ZN(v))}}},this._win=t.getWindow,this.visibilityTolerance=(a=o.visibilityTolerance)!==null&&a!==void 0?a:.8,(this._props.trackState||this._props.visibilityAware)&&(this._intersectionObserver=new IntersectionObserver(this._onIntersection,{threshold:[0,.25,.5,.75,1]}),this._observeState()),this._onDispose=r;const s=()=>o.memorizeCurrent?this._current:void 0;t.controlTab||(this.dummyManager=new LH(this._element,t,s,i))}dispose(){var t;this._onDispose(this),this._intersectionObserver&&(this._intersectionObserver.disconnect(),delete this._intersectionObserver),delete this._current,delete this._fullyVisible,delete this._allElements,delete this._updateQueue,this._unobserve&&(this._unobserve(),delete this._unobserve);const n=this._win();this._setCurrentTimer&&(n.clearTimeout(this._setCurrentTimer),delete this._setCurrentTimer),this._updateTimer&&(n.clearTimeout(this._updateTimer),delete this._updateTimer),(t=this.dummyManager)===null||t===void 0||t.dispose(),delete this.dummyManager}setCurrent(t){t?this._current=new to(this._win,t):this._current=void 0,(this._props.trackState||this._props.visibilityAware)&&!this._setCurrentTimer&&(this._setCurrentTimer=this._win().setTimeout(()=>{var n;delete this._setCurrentTimer;const r=[];this._current!==this._prevCurrent&&(r.push(this._current),r.push(this._prevCurrent),this._prevCurrent=this._current);for(const o of r){const i=o==null?void 0:o.get();if(i&&((n=this._allElements)===null||n===void 0?void 0:n.get(i))===this){const a=this._props;if(i&&(a.visibilityAware!==void 0||a.trackState)){const s=this.getState(i);s&&i.dispatchEvent(new ZN(s))}}}}))}getCurrent(){var t;return((t=this._current)===null||t===void 0?void 0:t.get())||null}findNextTabbable(t,n,r,o){const i=this.getElement(),a=i&&au(t)===i;if(!i)return null;let s=null,c=!1,l;if(this._props.tabbable||a||t&&!ie.nodeContains(i,t)){const d={currentElement:t,referenceElement:n,container:i,ignoreAccessibility:o,useActiveModalizer:!0},A={};s=this._tabster.focusable[r?"findPrev":"findNext"](d,A),c=!!A.outOfDOMOrder,l=A.uncontrolled}return{element:s,uncontrolled:l,outOfDOMOrder:c}}acceptElement(t,n){var r,o;if(!en.isTabbing)return!((r=n.currentCtx)===null||r===void 0)&&r.excludedFromMover?NodeFilter.FILTER_REJECT:void 0;const{memorizeCurrent:i,visibilityAware:a,hasDefault:s=!0}=this._props,c=this.getElement();if(c&&(i||a||s)&&(!ie.nodeContains(c,n.from)||au(n.from)===c)){let l;if(i){const d=(o=this._current)===null||o===void 0?void 0:o.get();d&&n.acceptCondition(d)&&(l=d)}if(!l&&s&&(l=this._tabster.focusable.findDefault({container:c,useActiveModalizer:!0})),!l&&a&&(l=this._tabster.focusable.findElement({container:c,useActiveModalizer:!0,isBackward:n.isBackward,acceptCondition:d=>{var A;const f=Hv(this._win,d),m=this._visible[f];return c!==d&&!!(!((A=this._allElements)===null||A===void 0)&&A.get(d))&&n.acceptCondition(d)&&(m===Ea.Visible||m===Ea.PartiallyVisible&&(a===Ea.PartiallyVisible||!this._fullyVisible))}})),l)return n.found=!0,n.foundElement=l,n.rejectElementsFrom=c,n.skippedFocusable=!0,NodeFilter.FILTER_ACCEPT}}_observeState(){const t=this.getElement();if(this._unobserve||!t||typeof MutationObserver>"u")return;const n=this._win(),r=this._allElements=new WeakMap,o=this._tabster.focusable;let i=this._updateQueue=[];const a=ie.createMutationObserver(m=>{for(const v of m){const p=v.target,y=v.removedNodes,b=v.addedNodes;if(v.type==="attributes")v.attributeName==="tabindex"&&i.push({element:p,type:KN});else{for(let h=0;h{var p,y;const b=r.get(m);b&&v&&((p=this._intersectionObserver)===null||p===void 0||p.unobserve(m),r.delete(m)),!b&&!v&&(r.set(m,this),(y=this._intersectionObserver)===null||y===void 0||y.observe(m))},c=m=>{const v=o.isFocusable(m);r.get(m)?v||s(m,!0):v&&s(m)},l=m=>{const{mover:v}=f(m);if(v&&v!==this)if(v.getElement()===m&&o.isFocusable(m))s(m);else return;const p=kk(n.document,m,y=>{const{mover:b,groupper:h}=f(y);if(b&&b!==this)return NodeFilter.FILTER_REJECT;const w=h==null?void 0:h.getFirst(!0);return h&&h.getElement()!==y&&w&&w!==y?NodeFilter.FILTER_REJECT:(o.isFocusable(y)&&s(y),NodeFilter.FILTER_SKIP)});if(p)for(p.currentNode=m;p.nextNode(););},d=m=>{r.get(m)&&s(m,!0);for(let p=ie.getFirstElementChild(m);p;p=ie.getNextElementSibling(p))d(p)},A=()=>{!this._updateTimer&&i.length&&(this._updateTimer=n.setTimeout(()=>{delete this._updateTimer;for(const{element:m,type:v}of i)switch(v){case KN:c(m);break;case r1:l(m);break;case JN:d(m);break}i=this._updateQueue=[]},0))},f=m=>{const v={};for(let p=m;p;p=ie.getParentElement(p)){const y=gr(this._tabster,p);if(y&&(y.groupper&&!v.groupper&&(v.groupper=y.groupper),y.mover)){v.mover=y.mover;break}}return v};i.push({element:t,type:r1}),A(),a.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),this._unobserve=()=>{a.disconnect()}}getState(t){const n=Hv(this._win,t);if(n in this._visible){const r=this._visible[n]||Ea.Invisible;return{isCurrent:this._current?this._current.get()===t:void 0,visibility:r}}}}function UH(e,t,n,r,o,i,a,s){const c=n{const r=this._win();r.addEventListener("keydown",this._onKeyDown,!0),r.addEventListener(WN,this._onMoveFocus),r.addEventListener(UN,this._onMemorizedElement),this._tabster.focusedElement.subscribe(this._onFocus)},this._onMoverDispose=r=>{delete this._movers[r.id]},this._onFocus=r=>{var o;let i=r,a=r;for(let s=ie.getParentElement(r);s;s=ie.getParentElement(s)){const c=(o=gr(this._tabster,s))===null||o===void 0?void 0:o.mover;c&&(c.setCurrent(a),i=void 0),!i&&this._tabster.focusable.isFocusable(s)&&(i=a=s)}},this._onKeyDown=async r=>{var o;if(this._ignoredInputTimer&&(this._win().clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),(o=this._ignoredInputResolve)===null||o===void 0||o.call(this,!1),r.ctrlKey||r.altKey||r.shiftKey||r.metaKey)return;const i=r.key;let a;if(i===$t.ArrowDown?a=an.ArrowDown:i===$t.ArrowRight?a=an.ArrowRight:i===$t.ArrowUp?a=an.ArrowUp:i===$t.ArrowLeft?a=an.ArrowLeft:i===$t.PageDown?a=an.PageDown:i===$t.PageUp?a=an.PageUp:i===$t.Home?a=an.Home:i===$t.End&&(a=an.End),!a)return;const s=this._tabster.focusedElement.getFocusedElement();!s||await this._isIgnoredInput(s,i)||this._moveFocus(s,a,r)},this._onMoveFocus=r=>{var o;const i=r.composedPath()[0],a=(o=r.detail)===null||o===void 0?void 0:o.key;i&&a!==void 0&&!r.defaultPrevented&&(this._moveFocus(i,a),r.stopImmediatePropagation())},this._onMemorizedElement=r=>{var o;const i=r.composedPath()[0];let a=(o=r.detail)===null||o===void 0?void 0:o.memorizedElement;if(i){const s=Pt.getTabsterContext(this._tabster,i),c=s==null?void 0:s.mover;c&&(a&&!ie.nodeContains(c.getElement(),a)&&(a=void 0),c.setCurrent(a),r.stopImmediatePropagation())}},this._tabster=t,this._win=n,this._movers={},t.queueInit(this._init)}dispose(){var t;const n=this._win();this._tabster.focusedElement.unsubscribe(this._onFocus),(t=this._ignoredInputResolve)===null||t===void 0||t.call(this,!1),this._ignoredInputTimer&&(n.clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),n.removeEventListener("keydown",this._onKeyDown,!0),n.removeEventListener(WN,this._onMoveFocus),n.removeEventListener(UN,this._onMemorizedElement),Object.keys(this._movers).forEach(r=>{this._movers[r]&&(this._movers[r].dispose(),delete this._movers[r])})}createMover(t,n,r){const o=new WH(this._tabster,t,this._onMoverDispose,n,r);return this._movers[o.id]=o,o}moveFocus(t,n){return this._moveFocus(t,n)}_moveFocus(t,n,r){var o,i;const a=this._tabster,s=Pt.getTabsterContext(a,t,{checkRtl:!0});if(!s||!s.mover||s.excludedFromMover||r&&s.ignoreKeydown(r))return null;const c=s.mover,l=c.getElement();if(s.groupperBeforeMover){const C=s.groupper;if(C&&!C.isActive(!0)){for(let M=ie.getParentElement(C.getElement());M&&M!==l;M=ie.getParentElement(M))if(!((i=(o=gr(a,M))===null||o===void 0?void 0:o.groupper)===null||i===void 0)&&i.isActive(!0))return null}else return null}if(!l)return null;const d=a.focusable,A=c.getProps(),f=A.direction||$o.Both,m=f===$o.Both,v=m||f===$o.Vertical,p=m||f===$o.Horizontal,y=f===$o.GridLinear,b=y||f===$o.Grid,h=A.cyclic;let w,x,k,S=0,N=0;if(b&&(k=t.getBoundingClientRect(),S=Math.ceil(k.left),N=Math.floor(k.right)),s.rtl&&(n===an.ArrowRight?n=an.ArrowLeft:n===an.ArrowLeft&&(n=an.ArrowRight)),n===an.ArrowDown&&v||n===an.ArrowRight&&(p||b))if(w=d.findNext({currentElement:t,container:l,useActiveModalizer:!0}),w&&b){const C=Math.ceil(w.getBoundingClientRect().left);!y&&N>C&&(w=void 0)}else!w&&h&&(w=d.findFirst({container:l,useActiveModalizer:!0}));else if(n===an.ArrowUp&&v||n===an.ArrowLeft&&(p||b))if(w=d.findPrev({currentElement:t,container:l,useActiveModalizer:!0}),w&&b){const C=Math.floor(w.getBoundingClientRect().right);!y&&C>S&&(w=void 0)}else!w&&h&&(w=d.findLast({container:l,useActiveModalizer:!0}));else if(n===an.Home)b?d.findElement({container:l,currentElement:t,useActiveModalizer:!0,isBackward:!0,acceptCondition:C=>{var M;if(!d.isFocusable(C))return!1;const j=Math.ceil((M=C.getBoundingClientRect().left)!==null&&M!==void 0?M:0);return C!==t&&S<=j?!0:(w=C,!1)}}):w=d.findFirst({container:l,useActiveModalizer:!0});else if(n===an.End)b?d.findElement({container:l,currentElement:t,useActiveModalizer:!0,acceptCondition:C=>{var M;if(!d.isFocusable(C))return!1;const j=Math.ceil((M=C.getBoundingClientRect().left)!==null&&M!==void 0?M:0);return C!==t&&S>=j?!0:(w=C,!1)}}):w=d.findLast({container:l,useActiveModalizer:!0});else if(n===an.PageUp){if(d.findElement({currentElement:t,container:l,useActiveModalizer:!0,isBackward:!0,acceptCondition:C=>d.isFocusable(C)?_N(this._win,C,c.visibilityTolerance)?(w=C,!1):!0:!1}),b&&w){const C=Math.ceil(w.getBoundingClientRect().left);d.findElement({currentElement:w,container:l,useActiveModalizer:!0,acceptCondition:M=>{if(!d.isFocusable(M))return!1;const j=Math.ceil(M.getBoundingClientRect().left);return S=j?!0:(w=M,!1)}})}x=!1}else if(n===an.PageDown){if(d.findElement({currentElement:t,container:l,useActiveModalizer:!0,acceptCondition:C=>d.isFocusable(C)?_N(this._win,C,c.visibilityTolerance)?(w=C,!1):!0:!1}),b&&w){const C=Math.ceil(w.getBoundingClientRect().left);d.findElement({currentElement:w,container:l,useActiveModalizer:!0,isBackward:!0,acceptCondition:M=>{if(!d.isFocusable(M))return!1;const j=Math.ceil(M.getBoundingClientRect().left);return S>j||C<=j?!0:(w=M,!1)}})}x=!0}else if(b){const C=n===an.ArrowUp,M=S,j=Math.ceil(k.top),T=N,F=Math.floor(k.bottom);let H,R,O=0;d.findAll({container:l,currentElement:t,isBackward:C,onElement:_=>{const Y=_.getBoundingClientRect(),I=Math.ceil(Y.left),E=Math.ceil(Y.top),D=Math.floor(Y.right),W=Math.floor(Y.bottom);if(C&&jE)return!0;const z=Math.ceil(Math.min(T,D))-Math.floor(Math.max(M,I)),L=Math.ceil(Math.min(T-M,D-I));if(z>0&&L>=z){const q=z/L;q>O&&(H=_,O=q)}else if(O===0){const q=UH(M,j,T,F,I,E,D,W);(R===void 0||q0)return!1;return!0}}),w=H}return w&&(!r||r&&l.dispatchEvent(new xs({by:"mover",owner:l,next:w,relatedEvent:r})))?(x!==void 0&&mH(this._win,w,x),r&&(r.preventDefault(),r.stopImmediatePropagation()),Bi(w),w):null}async _isIgnoredInput(t,n){if(t.getAttribute("aria-expanded")==="true"&&t.hasAttribute("aria-activedescendant"))return!0;if(d8(t,OH)){let r=0,o=0,i=0,a;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"){const s=t.type;if(i=(t.value||"").length,s==="email"||s==="number"){if(i){const l=ie.getSelection(t);if(l){const d=l.toString().length,A=n===$t.ArrowLeft||n===$t.ArrowUp;if(l.modify("extend",A?"backward":"forward","character"),d!==l.toString().length)return l.modify("extend",A?"forward":"backward","character"),!0;i=0}}}else{const l=t.selectionStart;if(l===null)return s==="hidden";r=l||0,o=t.selectionEnd||0}}else t.contentEditable==="true"&&(a=new(gH(this._win))(s=>{this._ignoredInputResolve=m=>{delete this._ignoredInputResolve,s(m)};const c=this._win();this._ignoredInputTimer&&c.clearTimeout(this._ignoredInputTimer);const{anchorNode:l,focusNode:d,anchorOffset:A,focusOffset:f}=ie.getSelection(t)||{};this._ignoredInputTimer=c.setTimeout(()=>{var m,v,p;delete this._ignoredInputTimer;const{anchorNode:y,focusNode:b,anchorOffset:h,focusOffset:w}=ie.getSelection(t)||{};if(y!==l||b!==d||h!==A||w!==f){(m=this._ignoredInputResolve)===null||m===void 0||m.call(this,!1);return}if(r=h||0,o=w||0,i=((v=t.textContent)===null||v===void 0?void 0:v.length)||0,y&&b&&ie.nodeContains(t,y)&&ie.nodeContains(t,b)&&y!==t){let x=!1;const k=S=>{if(S===y)x=!0;else if(S===b)return!0;const N=S.textContent;if(N&&!ie.getFirstChild(S)){const M=N.length;x?b!==y&&(o+=M):(r+=M,o+=M)}let C=!1;for(let M=ie.getFirstChild(S);M&&!C;M=M.nextSibling)C=k(M);return C};k(t)}(p=this._ignoredInputResolve)===null||p===void 0||p.call(this,!0)},0)}));if(a&&!await a||r!==o||r>0&&(n===$t.ArrowLeft||n===$t.ArrowUp||n===$t.Home)||r"u")return()=>{};const o=t.getWindow;let i;const a=d=>{var A,f,m,v,p;const y=new Set;for(const b of d){const h=b.target,w=b.removedNodes,x=b.addedNodes;if(b.type==="attributes")b.attributeName===la&&(y.has(h)||n(t,h));else{for(let k=0;kc(m,A));if(f)for(;f.nextNode(););}function c(d,A){var f;if(!d.getAttribute)return NodeFilter.FILTER_SKIP;const m=d.__tabsterElementUID;return m&&i&&(A?delete i[m]:(f=i[m])!==null&&f!==void 0||(i[m]=new to(o,d))),(gr(t,d)||d.hasAttribute(la))&&n(t,d,A),NodeFilter.FILTER_SKIP}const l=ie.createMutationObserver(a);return r&&s(o().document.body),l.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[la]}),()=>{l.disconnect()}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class VH{constructor(t){this._isUncontrolledCompletely=t}isUncontrolledCompletely(t,n){var r;const o=(r=this._isUncontrolledCompletely)===null||r===void 0?void 0:r.call(this,t,n);return o===void 0?n:o}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const qH=10;class _H extends _m{constructor(t,n,r){var o;if(super(t,n,r),this._hasFocus=!1,this._onFocusOut=i=>{var a;const s=(a=this._element)===null||a===void 0?void 0:a.get();s&&i.relatedTarget===null&&s.dispatchEvent(new VN),s&&!ie.nodeContains(s,i.relatedTarget)&&(this._hasFocus=!1)},this._onFocusIn=()=>{this._hasFocus=!0},this._props.type===Bs.Source){const i=(o=this._element)===null||o===void 0?void 0:o.get();i==null||i.addEventListener("focusout",this._onFocusOut),i==null||i.addEventListener("focusin",this._onFocusIn),this._hasFocus=ie.nodeContains(i,i&&ie.getActiveElement(i.ownerDocument))}}dispose(){var t;if(this._props.type===Bs.Source){const n=(t=this._element)===null||t===void 0?void 0:t.get();n==null||n.removeEventListener("focusout",this._onFocusOut),n==null||n.removeEventListener("focusin",this._onFocusIn),this._hasFocus&&this._tabster.getWindow().document.body.dispatchEvent(new VN)}}}class XH{constructor(t){this._history=[],this._onRestoreFocus=n=>{this._focusedElementState.cancelAsyncFocus(da.Restorer);const r=n.composedPath()[0];r&&this._focusedElementState.requestAsyncFocus(da.Restorer,()=>this._restoreFocus(r),0)},this._onFocusIn=n=>{var r;if(!n)return;const o=gr(this._tabster,n);((r=o==null?void 0:o.restorer)===null||r===void 0?void 0:r.getProps().type)===Bs.Target&&this._addToHistory(n)},this._restoreFocus=n=>{var r;const o=this._getWindow().document;if(ie.getActiveElement(o)!==o.body||!this._keyboardNavState.isNavigatingWithKeyboard()&&ie.nodeContains(o.body,n))return;let i=this._history.pop();for(;i&&!ie.nodeContains(o.body,ie.getParentElement(i.get()));)i=this._history.pop();(r=i==null?void 0:i.get())===null||r===void 0||r.focus()},this._tabster=t,this._getWindow=t.getWindow,this._getWindow().addEventListener(Cw,this._onRestoreFocus),this._keyboardNavState=t.keyboardNavigation,this._focusedElementState=t.focusedElement,this._focusedElementState.subscribe(this._onFocusIn)}dispose(){const t=this._getWindow();this._focusedElementState.unsubscribe(this._onFocusIn),this._focusedElementState.cancelAsyncFocus(da.Restorer),t.removeEventListener(Cw,this._onRestoreFocus)}_addToHistory(t){var n;((n=this._history[this._history.length-1])===null||n===void 0?void 0:n.get())!==t&&(this._history.length>qH&&this._history.shift(),this._history.push(new to(this._getWindow,t)))}createRestorer(t,n){const r=new _H(this._tabster,t,n);return n.type===Bs.Target&&ie.getActiveElement(t.ownerDocument)===t&&this._addToHistory(t),r}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class GH{constructor(t){this.keyboardNavigation=t.keyboardNavigation,this.focusedElement=t.focusedElement,this.focusable=t.focusable,this.root=t.root,this.uncontrolled=t.uncontrolled,this.core=t}}class YH{constructor(t,n){var r,o;this._forgetMemorizedElements=[],this._wrappers=new Set,this._initQueue=[],this._version="8.0.1",this._noop=!1,this.getWindow=()=>{if(!this._win)throw new Error("Using disposed Tabster.");return this._win},this._storage=uH(t),this._win=t;const i=this.getWindow;n!=null&&n.DOMAPI&&cH({...n.DOMAPI}),this.keyboardNavigation=new RH(i),this.focusedElement=new en(this,i),this.focusable=new TH(this),this.root=new Pt(this,n==null?void 0:n.autoRoot),this.uncontrolled=new VH((n==null?void 0:n.checkUncontrolledCompletely)||(n==null?void 0:n.checkUncontrolledTrappingFocus)),this.controlTab=(r=n==null?void 0:n.controlTab)!==null&&r!==void 0?r:!0,this.rootDummyInputs=!!(n!=null&&n.rootDummyInputs),this._dummyObserver=new yH(i),this.getParent=(o=n==null?void 0:n.getParent)!==null&&o!==void 0?o:ie.getParentNode,this.internal={stopObserver:()=>{this._unobserve&&(this._unobserve(),delete this._unobserve)},resumeObserver:a=>{if(!this._unobserve){const s=i().document;this._unobserve=ZH(s,this,r8,a)}}},a8(i),this.queueInit(()=>{this.internal.resumeObserver(!0)})}_mergeProps(t){var n;t&&(this.getParent=(n=t.getParent)!==null&&n!==void 0?n:this.getParent)}createTabster(t,n){const r=new GH(this);return t||this._wrappers.add(r),this._mergeProps(n),r}disposeTabster(t,n){n?this._wrappers.clear():this._wrappers.delete(t),this._wrappers.size===0&&this.dispose()}dispose(){var t,n,r,o,i,a,s,c;this.internal.stopObserver();const l=this._win;l==null||l.clearTimeout(this._initTimer),delete this._initTimer,this._initQueue=[],this._forgetMemorizedElements=[],l&&this._forgetMemorizedTimer&&(l.clearTimeout(this._forgetMemorizedTimer),delete this._forgetMemorizedTimer),(t=this.outline)===null||t===void 0||t.dispose(),(n=this.crossOrigin)===null||n===void 0||n.dispose(),(r=this.deloser)===null||r===void 0||r.dispose(),(o=this.groupper)===null||o===void 0||o.dispose(),(i=this.mover)===null||i===void 0||i.dispose(),(a=this.modalizer)===null||a===void 0||a.dispose(),(s=this.observedElement)===null||s===void 0||s.dispose(),(c=this.restorer)===null||c===void 0||c.dispose(),this.keyboardNavigation.dispose(),this.focusable.dispose(),this.focusedElement.dispose(),this.root.dispose(),this._dummyObserver.dispose(),fH(this.getWindow),XN(this.getWindow),this._storage=new WeakMap,this._wrappers.clear(),l&&(dH(l),delete l.__tabsterInstance,delete this._win)}storageEntry(t,n){const r=this._storage;let o=r.get(t);return o?n===!1&&Object.keys(o).length===0&&r.delete(t):n===!0&&(o={},r.set(t,o)),o}forceCleanup(){this._win&&(this._forgetMemorizedElements.push(this._win.document.body),!this._forgetMemorizedTimer&&(this._forgetMemorizedTimer=this._win.setTimeout(()=>{delete this._forgetMemorizedTimer;for(let t=this._forgetMemorizedElements.shift();t;t=this._forgetMemorizedElements.shift())XN(this.getWindow,t),en.forgetMemorized(this.focusedElement,t)},0),i8(this.getWindow,!0)))}queueInit(t){var n;this._win&&(this._initQueue.push(t),this._initTimer||(this._initTimer=(n=this._win)===null||n===void 0?void 0:n.setTimeout(()=>{delete this._initTimer,this.drainInitQueue()},0)))}drainInitQueue(){if(!this._win)return;const t=this._initQueue;this._initQueue=[],t.forEach(n=>n())}}function KH(e,t){let n=tZ(e);return n?n.createTabster(!1,t):(n=new YH(e,t),e.__tabsterInstance=n,n.createTabster())}function JH(e){const t=e.core;return t.groupper||(t.groupper=new MH(t,t.getWindow)),t.groupper}function QH(e){const t=e.core;return t.mover||(t.mover=new HH(t,t.getWindow)),t.mover}function $H(e,t,n){const r=e.core;return r.modalizer||(r.modalizer=new FH(r,t,n)),r.modalizer}function jk(e){const t=e.core;return t.restorer||(t.restorer=new XH(t)),t.restorer}function eZ(e,t){e.core.disposeTabster(e,t)}function tZ(e){return e.__tabsterInstance}const Js=()=>{const{targetDocument:e}=Ge(),t=(e==null?void 0:e.defaultView)||void 0,n=t==null?void 0:t.__tabsterShadowDOMAPI,r=g.useMemo(()=>t?KH(t,{autoRoot:{},controlTab:!1,getParent:qD,checkUncontrolledTrappingFocus:o=>{var i;return!!(!((i=o.firstElementChild)===null||i===void 0)&&i.hasAttribute("data-is-focus-trap-zone-bumper"))},DOMAPI:n}):null,[t,n]);return nr(()=>()=>{r&&eZ(r)},[r]),r},su=e=>{Js();const t=Vh(e,!0);return g.useMemo(()=>({[la]:t}),[t])},Tu=(e={})=>{const{circular:t,axis:n,memorizeCurrent:r=!0,tabbable:o,ignoreDefaultKeydown:i,unstable_hasDefault:a}=e,s=Js();return s&&QH(s),su({mover:{cyclic:!!t,direction:nZ(n??"vertical"),memorizeCurrent:r,tabbable:o,hasDefault:a},...i&&{focusable:{ignoreKeydown:i}}})};function nZ(e){switch(e){case"horizontal":return $o.Horizontal;case"grid":return $o.Grid;case"grid-linear":return $o.GridLinear;case"both":return $o.Both;case"vertical":default:return $o.Vertical}}const rZ=e=>{const t=Js();return t&&JH(t),su({groupper:{tabbability:oZ(e==null?void 0:e.tabBehavior)},focusable:{ignoreKeydown:e==null?void 0:e.ignoreDefaultKeydown}})},oZ=e=>{switch(e){case"unlimited":return Uv.Unlimited;case"limited":return Uv.Limited;case"limited-trap-focus":return Uv.LimitedTrapFocus;default:return}},Iu=()=>{const e=Js(),{targetDocument:t}=Ge(),n=g.useCallback((s,c)=>(e==null?void 0:e.focusable.findAll({container:s,acceptCondition:c}))||[],[e]),r=g.useCallback(s=>e==null?void 0:e.focusable.findFirst({container:s}),[e]),o=g.useCallback(s=>e==null?void 0:e.focusable.findLast({container:s}),[e]),i=g.useCallback((s,c={})=>{if(!e||!t)return null;const{container:l=t.body}=c;return e.focusable.findNext({currentElement:s,container:l})},[e,t]),a=g.useCallback((s,c={})=>{if(!e||!t)return null;const{container:l=t.body}=c;return e.focusable.findPrev({currentElement:s,container:l})},[e,t]);return{findAllFocusable:n,findFirstFocusable:r,findLastFocusable:o,findNextFocusable:i,findPrevFocusable:a}},QN="data-fui-focus-visible",f8="data-fui-focus-within";function iZ(e,t){if(m8(e))return()=>{};const n={current:void 0},r=Uh(t);function o(c){r.isNavigatingWithKeyboard()&&Pn(c)&&(n.current=c,c.setAttribute(QN,""))}function i(){n.current&&(n.current.removeAttribute(QN),n.current=void 0)}r.subscribe(c=>{c||i()});const a=c=>{i();const l=c.composedPath()[0];o(l)},s=c=>{(!c.relatedTarget||Pn(c.relatedTarget)&&!e.contains(c.relatedTarget))&&i()};return e.addEventListener(si,a),e.addEventListener("focusout",s),e.focusVisible=!0,e.contains(t.document.activeElement)&&o(t.document.activeElement),()=>{i(),e.removeEventListener(si,a),e.removeEventListener("focusout",s),delete e.focusVisible,Hh(r)}}function m8(e){return e?e.focusVisible?!0:m8(e==null?void 0:e.parentElement):!1}function Nk(e={}){const t=Ge(),n=g.useRef(null);var r;const o=(r=e.targetDocument)!==null&&r!==void 0?r:t.targetDocument;return g.useEffect(()=>{if(o!=null&&o.defaultView&&n.current)return iZ(n.current,o.defaultView)},[n,o]),n}function aZ(e,t){const n=Uh(t);n.subscribe(i=>{i||$N(e)});const r=i=>{n.isNavigatingWithKeyboard()&&eC(i.target)&&sZ(e)},o=i=>{(!i.relatedTarget||eC(i.relatedTarget)&&!e.contains(i.relatedTarget))&&$N(e)};return e.addEventListener(si,r),e.addEventListener("focusout",o),()=>{e.removeEventListener(si,r),e.removeEventListener("focusout",o),Hh(n)}}function sZ(e){e.setAttribute(f8,"")}function $N(e){e.removeAttribute(f8)}function eC(e){return e?!!(e&&typeof e=="object"&&"classList"in e&&"contains"in e):!1}function Xm(){const{targetDocument:e}=Ge(),t=g.useRef(null);return g.useEffect(()=>{if(e!=null&&e.defaultView&&t.current)return aZ(t.current,e.defaultView)},[t,e]),t}function v8(){const{targetDocument:e}=Ge(),t=g.useRef(null);return g.useEffect(()=>{if(e){const n=Uh(e.defaultView);return t.current=n,()=>{Hh(n),t.current=null}}},[e]),t}function p8(e){const t=v8(),n=fe(e);g.useEffect(()=>{const r=t.current;if(r){const o=i=>{n(i)};return r.subscribe(o),o(r.isNavigatingWithKeyboard()),()=>{r.unsubscribe(o)}}},[t,n])}const Gm=(e={})=>{const{trapFocus:t,alwaysFocusable:n,legacyTrapFocus:r}=e,o=Js();o&&($H(o),jk(o));const i=Rn("modal-",e.id),a=su({restorer:{type:Bs.Source},...t&&{modalizer:{id:i,isOthersAccessible:!t,isAlwaysAccessible:n,isTrapped:r&&t}}}),s=su({restorer:{type:Bs.Target}});return{modalAttributes:a,triggerAttributes:s}};function cZ(){const e=Js();return e&&jk(e),Vh({restorer:{type:Bs.Target}})}function lZ(){const e=Js();return e&&jk(e),Vh({restorer:{type:Bs.Source}})}function dZ(){const e=v8();return g.useCallback(t=>{var n;(n=e.current)===null||n===void 0||n.setVal(t)},[e])}function uZ(e){const t=Js();g.useEffect(()=>{if(t)return t.focusedElement.subscribe(e),()=>t.focusedElement.unsubscribe(e)},[t,e])}const ke={2:"#050505",4:"#0a0a0a",6:"#0f0f0f",8:"#141414",10:"#1a1a1a",12:"#1f1f1f",14:"#242424",16:"#292929",18:"#2e2e2e",20:"#333333",22:"#383838",24:"#3d3d3d",26:"#424242",28:"#474747",30:"#4d4d4d",32:"#525252",34:"#575757",36:"#5c5c5c",38:"#616161",40:"#666666",42:"#6b6b6b",44:"#707070",46:"#757575",48:"#7a7a7a",50:"#808080",52:"#858585",54:"#8a8a8a",56:"#8f8f8f",58:"#949494",60:"#999999",62:"#9e9e9e",64:"#a3a3a3",66:"#a8a8a8",68:"#adadad",70:"#b3b3b3",72:"#b8b8b8",74:"#bdbdbd",76:"#c2c2c2",78:"#c7c7c7",80:"#cccccc",82:"#d1d1d1",84:"#d6d6d6",86:"#dbdbdb",88:"#e0e0e0",90:"#e6e6e6",92:"#ebebeb",94:"#f0f0f0",96:"#f5f5f5",98:"#fafafa"},Ba={5:"rgba(255, 255, 255, 0.05)",10:"rgba(255, 255, 255, 0.1)",20:"rgba(255, 255, 255, 0.2)",30:"rgba(255, 255, 255, 0.3)",40:"rgba(255, 255, 255, 0.4)",50:"rgba(255, 255, 255, 0.5)",60:"rgba(255, 255, 255, 0.6)",70:"rgba(255, 255, 255, 0.7)",80:"rgba(255, 255, 255, 0.8)",90:"rgba(255, 255, 255, 0.9)"},Fa={5:"rgba(0, 0, 0, 0.05)",10:"rgba(0, 0, 0, 0.1)",20:"rgba(0, 0, 0, 0.2)",30:"rgba(0, 0, 0, 0.3)",40:"rgba(0, 0, 0, 0.4)",50:"rgba(0, 0, 0, 0.5)",60:"rgba(0, 0, 0, 0.6)",70:"rgba(0, 0, 0, 0.7)",80:"rgba(0, 0, 0, 0.8)",90:"rgba(0, 0, 0, 0.9)"},sn="#ffffff",AZ="#000000",fZ={shade50:"#130204",shade40:"#230308",shade30:"#420610",shade20:"#590815",shade10:"#690a19",primary:"#750b1c",tint10:"#861b2c",tint20:"#962f3f",tint30:"#ac4f5e",tint40:"#d69ca5",tint50:"#e9c7cd",tint60:"#f9f0f2"},g8={shade50:"#200205",shade40:"#3b0509",shade30:"#6e0811",shade20:"#960b18",shade10:"#b10e1c",primary:"#c50f1f",tint10:"#cc2635",tint20:"#d33f4c",tint30:"#dc626d",tint40:"#eeacb2",tint50:"#f6d1d5",tint60:"#fdf3f4"},mZ={shade50:"#210809",shade40:"#3f1011",shade30:"#751d1f",shade20:"#9f282b",shade10:"#bc2f32",primary:"#d13438",tint10:"#d7494c",tint20:"#dc5e62",tint30:"#e37d80",tint40:"#f1bbbc",tint50:"#f8dadb",tint60:"#fdf6f6"},vZ={shade50:"#230900",shade40:"#411200",shade30:"#7a2101",shade20:"#a62d01",shade10:"#c43501",primary:"#da3b01",tint10:"#de501c",tint20:"#e36537",tint30:"#e9835e",tint40:"#f4bfab",tint50:"#f9dcd1",tint60:"#fdf6f3"},pZ={shade50:"#200d03",shade40:"#3d1805",shade30:"#712d09",shade20:"#9a3d0c",shade10:"#b6480e",primary:"#ca5010",tint10:"#d06228",tint20:"#d77440",tint30:"#df8e64",tint40:"#efc4ad",tint50:"#f7dfd2",tint60:"#fdf7f4"},gZ={shade50:"#271002",shade40:"#4a1e04",shade30:"#8a3707",shade20:"#bc4b09",shade10:"#de590b",primary:"#f7630c",tint10:"#f87528",tint20:"#f98845",tint30:"#faa06b",tint40:"#fdcfb4",tint50:"#fee5d7",tint60:"#fff9f5"},hZ={shade50:"#291600",shade40:"#4d2a00",shade30:"#8f4e00",shade20:"#c26a00",shade10:"#e67e00",primary:"#ff8c00",tint10:"#ff9a1f",tint20:"#ffa83d",tint30:"#ffba66",tint40:"#ffddb3",tint50:"#ffedd6",tint60:"#fffaf5"},bZ={shade50:"#251a00",shade40:"#463100",shade30:"#835b00",shade20:"#b27c00",shade10:"#d39300",primary:"#eaa300",tint10:"#edad1c",tint20:"#efb839",tint30:"#f2c661",tint40:"#f9e2ae",tint50:"#fcefd3",tint60:"#fefbf4"},yZ={shade50:"#282400",shade40:"#4c4400",shade30:"#817400",shade20:"#c0ad00",shade10:"#e4cc00",primary:"#fde300",tint10:"#fde61e",tint20:"#fdea3d",tint30:"#feee66",tint40:"#fef7b2",tint50:"#fffad6",tint60:"#fffef5"},wZ={shade50:"#1f1900",shade40:"#3a2f00",shade30:"#6c5700",shade20:"#937700",shade10:"#ae8c00",primary:"#c19c00",tint10:"#c8a718",tint20:"#d0b232",tint30:"#dac157",tint40:"#ecdfa5",tint50:"#f5eece",tint60:"#fdfbf2"},xZ={shade50:"#181202",shade40:"#2e2103",shade30:"#553e06",shade20:"#745408",shade10:"#89640a",primary:"#986f0b",tint10:"#a47d1e",tint20:"#b18c34",tint30:"#c1a256",tint40:"#e0cea2",tint50:"#efe4cb",tint60:"#fbf8f2"},kZ={shade50:"#170e07",shade40:"#2b1a0e",shade30:"#50301a",shade20:"#6c4123",shade10:"#804d29",primary:"#8e562e",tint10:"#9c663f",tint20:"#a97652",tint30:"#bb8f6f",tint40:"#ddc3b0",tint50:"#edded3",tint60:"#faf7f4"},SZ={shade50:"#0c1501",shade40:"#162702",shade30:"#294903",shade20:"#376304",shade10:"#427505",primary:"#498205",tint10:"#599116",tint20:"#6ba02b",tint30:"#85b44c",tint40:"#bdd99b",tint50:"#dbebc7",tint60:"#f6faf0"},jZ={shade50:"#002111",shade40:"#003d20",shade30:"#00723b",shade20:"#009b51",shade10:"#00b85f",primary:"#00cc6a",tint10:"#19d279",tint20:"#34d889",tint30:"#5ae0a0",tint40:"#a8f0cd",tint50:"#cff7e4",tint60:"#f3fdf8"},NZ={shade50:"#031a02",shade40:"#063004",shade30:"#0b5a08",shade20:"#0e7a0b",shade10:"#11910d",primary:"#13a10e",tint10:"#27ac22",tint20:"#3db838",tint30:"#5ec75a",tint40:"#a7e3a5",tint50:"#cef0cd",tint60:"#f2fbf2"},h8={shade50:"#031403",shade40:"#052505",shade30:"#094509",shade20:"#0c5e0c",shade10:"#0e700e",primary:"#107c10",tint10:"#218c21",tint20:"#359b35",tint30:"#54b054",tint40:"#9fd89f",tint50:"#c9eac9",tint60:"#f1faf1"},CZ={shade50:"#021102",shade40:"#032003",shade30:"#063b06",shade20:"#085108",shade10:"#0a5f0a",primary:"#0b6a0b",tint10:"#1a7c1a",tint20:"#2d8e2d",tint30:"#4da64d",tint40:"#9ad29a",tint50:"#c6e7c6",tint60:"#f0f9f0"},TZ={shade50:"#001d1f",shade40:"#00373a",shade30:"#00666d",shade20:"#008b94",shade10:"#00a5af",primary:"#00b7c3",tint10:"#18bfca",tint20:"#32c8d1",tint30:"#58d3db",tint40:"#a6e9ed",tint50:"#cef3f5",tint60:"#f2fcfd"},IZ={shade50:"#001516",shade40:"#012728",shade30:"#02494c",shade20:"#026467",shade10:"#037679",primary:"#038387",tint10:"#159195",tint20:"#2aa0a4",tint30:"#4cb4b7",tint40:"#9bd9db",tint50:"#c7ebec",tint60:"#f0fafa"},PZ={shade50:"#000f12",shade40:"#001b22",shade30:"#00333f",shade20:"#004555",shade10:"#005265",primary:"#005b70",tint10:"#0f6c81",tint20:"#237d92",tint30:"#4496a9",tint40:"#94c8d4",tint50:"#c3e1e8",tint60:"#eff7f9"},DZ={shade50:"#001322",shade40:"#002440",shade30:"#004377",shade20:"#005ba1",shade10:"#006cbf",primary:"#0078d4",tint10:"#1a86d9",tint20:"#3595de",tint30:"#5caae5",tint40:"#a9d3f2",tint50:"#d0e7f8",tint60:"#f3f9fd"},MZ={shade50:"#000c16",shade40:"#00172a",shade30:"#002c4e",shade20:"#003b6a",shade10:"#00467e",primary:"#004e8c",tint10:"#125e9a",tint20:"#286fa8",tint30:"#4a89ba",tint40:"#9abfdc",tint50:"#c7dced",tint60:"#f0f6fa"},RZ={shade50:"#0d1126",shade40:"#182047",shade30:"#2c3c85",shade20:"#3c51b4",shade10:"#4760d5",primary:"#4f6bed",tint10:"#637cef",tint20:"#778df1",tint30:"#93a4f4",tint40:"#c8d1fa",tint50:"#e1e6fc",tint60:"#f7f9fe"},zZ={shade50:"#00061d",shade40:"#000c36",shade30:"#001665",shade20:"#001e89",shade10:"#0023a2",primary:"#0027b4",tint10:"#173bbd",tint20:"#3050c6",tint30:"#546fd2",tint40:"#a3b2e8",tint50:"#ccd5f3",tint60:"#f2f4fc"},EZ={shade50:"#120f25",shade40:"#221d46",shade30:"#3f3682",shade20:"#5649b0",shade10:"#6656d1",primary:"#7160e8",tint10:"#8172eb",tint20:"#9184ee",tint30:"#a79cf1",tint40:"#d2ccf8",tint50:"#e7e4fb",tint60:"#f9f8fe"},BZ={shade50:"#0f0717",shade40:"#1c0e2b",shade30:"#341a51",shade20:"#46236e",shade10:"#532982",primary:"#5c2e91",tint10:"#6b3f9e",tint20:"#7c52ab",tint30:"#9470bd",tint40:"#c6b1de",tint50:"#e0d3ed",tint60:"#f7f4fb"},FZ={shade50:"#160418",shade40:"#29072e",shade30:"#4c0d55",shade20:"#671174",shade10:"#7a1589",primary:"#881798",tint10:"#952aa4",tint20:"#a33fb1",tint30:"#b55fc1",tint40:"#d9a7e0",tint50:"#eaceef",tint60:"#faf2fb"},OZ={shade50:"#1f091d",shade40:"#3a1136",shade30:"#6d2064",shade20:"#932b88",shade10:"#af33a1",primary:"#c239b3",tint10:"#c94cbc",tint20:"#d161c4",tint30:"#da7ed0",tint40:"#edbbe7",tint50:"#f5daf2",tint60:"#fdf5fc"},LZ={shade50:"#1c0b1f",shade40:"#35153a",shade30:"#63276d",shade20:"#863593",shade10:"#9f3faf",primary:"#b146c2",tint10:"#ba58c9",tint20:"#c36bd1",tint30:"#cf87da",tint40:"#e6bfed",tint50:"#f2dcf5",tint60:"#fcf6fd"},WZ={shade50:"#24091b",shade40:"#441232",shade30:"#80215d",shade20:"#ad2d7e",shade10:"#cd3595",primary:"#e43ba6",tint10:"#e750b0",tint20:"#ea66ba",tint30:"#ef85c8",tint40:"#f7c0e3",tint50:"#fbddf0",tint60:"#fef6fb"},UZ={shade50:"#1f0013",shade40:"#390024",shade30:"#6b0043",shade20:"#91005a",shade10:"#ac006b",primary:"#bf0077",tint10:"#c71885",tint20:"#ce3293",tint30:"#d957a8",tint40:"#eca5d1",tint50:"#f5cee6",tint60:"#fcf2f9"},HZ={shade50:"#13000c",shade40:"#240017",shade30:"#43002b",shade20:"#5a003b",shade10:"#6b0045",primary:"#77004d",tint10:"#87105d",tint20:"#98246f",tint30:"#ad4589",tint40:"#d696c0",tint50:"#e9c4dc",tint60:"#faf0f6"},ZZ={shade50:"#141313",shade40:"#252323",shade30:"#444241",shade20:"#5d5958",shade10:"#6e6968",primary:"#7a7574",tint10:"#8a8584",tint20:"#9a9594",tint30:"#afabaa",tint40:"#d7d4d4",tint50:"#eae8e8",tint60:"#faf9f9"},VZ={shade50:"#0f0e0e",shade40:"#1c1b1a",shade30:"#343231",shade20:"#474443",shade10:"#54514f",primary:"#5d5a58",tint10:"#706d6b",tint20:"#84817e",tint30:"#9e9b99",tint40:"#cecccb",tint50:"#e5e4e3",tint60:"#f8f8f8"},qZ={shade50:"#111314",shade40:"#1f2426",shade30:"#3b4447",shade20:"#505c60",shade10:"#5f6d71",primary:"#69797e",tint10:"#79898d",tint20:"#89989d",tint30:"#a0adb2",tint40:"#cdd6d8",tint50:"#e4e9ea",tint60:"#f8f9fa"},_Z={shade50:"#090a0b",shade40:"#111315",shade30:"#202427",shade20:"#2b3135",shade10:"#333a3f",primary:"#394146",tint10:"#4d565c",tint20:"#626c72",tint30:"#808a90",tint40:"#bcc3c7",tint50:"#dbdfe1",tint60:"#f6f7f8"},_r={red:mZ,green:h8,darkOrange:vZ,yellow:yZ,berry:OZ,lightGreen:NZ,marigold:bZ},o1={darkRed:fZ,cranberry:g8,pumpkin:pZ,peach:hZ,gold:wZ,brass:xZ,brown:kZ,forest:SZ,seafoam:jZ,darkGreen:CZ,lightTeal:TZ,teal:IZ,steel:PZ,blue:DZ,royalBlue:MZ,cornflower:RZ,navy:zZ,lavender:EZ,purple:BZ,grape:FZ,lilac:LZ,pink:WZ,magenta:UZ,plum:HZ,beige:ZZ,mink:VZ,platinum:qZ,anchor:_Z},sr={cranberry:g8,green:h8,orange:gZ},XZ=["red","green","darkOrange","yellow","berry","lightGreen","marigold"],GZ=["darkRed","cranberry","pumpkin","peach","gold","brass","brown","forest","seafoam","darkGreen","lightTeal","teal","steel","blue","royalBlue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],Pu={success:"green",warning:"orange",danger:"cranberry"},Ym=XZ.reduce((e,t)=>{const n=t.slice(0,1).toUpperCase()+t.slice(1),r={[`colorPalette${n}Background1`]:_r[t].tint60,[`colorPalette${n}Background2`]:_r[t].tint40,[`colorPalette${n}Background3`]:_r[t].primary,[`colorPalette${n}Foreground1`]:_r[t].shade10,[`colorPalette${n}Foreground2`]:_r[t].shade30,[`colorPalette${n}Foreground3`]:_r[t].primary,[`colorPalette${n}BorderActive`]:_r[t].primary,[`colorPalette${n}Border1`]:_r[t].tint40,[`colorPalette${n}Border2`]:_r[t].primary};return Object.assign(e,r)},{});Ym.colorPaletteYellowForeground1=_r.yellow.shade30;Ym.colorPaletteRedForegroundInverted=_r.red.tint20;Ym.colorPaletteGreenForegroundInverted=_r.green.tint20;Ym.colorPaletteYellowForegroundInverted=_r.yellow.tint40;const YZ=GZ.reduce((e,t)=>{const n=t.slice(0,1).toUpperCase()+t.slice(1),r={[`colorPalette${n}Background2`]:o1[t].tint40,[`colorPalette${n}Foreground2`]:o1[t].shade30,[`colorPalette${n}BorderActive`]:o1[t].primary};return Object.assign(e,r)},{}),KZ={...Ym,...YZ},Du=Object.entries(Pu).reduce((e,[t,n])=>{const r=t.slice(0,1).toUpperCase()+t.slice(1),o={[`colorStatus${r}Background1`]:sr[n].tint60,[`colorStatus${r}Background2`]:sr[n].tint40,[`colorStatus${r}Background3`]:sr[n].primary,[`colorStatus${r}Foreground1`]:sr[n].shade10,[`colorStatus${r}Foreground2`]:sr[n].shade30,[`colorStatus${r}Foreground3`]:sr[n].primary,[`colorStatus${r}ForegroundInverted`]:sr[n].tint30,[`colorStatus${r}BorderActive`]:sr[n].primary,[`colorStatus${r}Border1`]:sr[n].tint40,[`colorStatus${r}Border2`]:sr[n].primary};return Object.assign(e,o)},{});Du.colorStatusDangerBackground3Hover=sr[Pu.danger].shade10;Du.colorStatusDangerBackground3Pressed=sr[Pu.danger].shade20;Du.colorStatusWarningForeground1=sr[Pu.warning].shade20;Du.colorStatusWarningForeground3=sr[Pu.warning].shade20;Du.colorStatusWarningBorder2=sr[Pu.warning].shade20;const JZ=e=>({colorNeutralForeground1:ke[14],colorNeutralForeground1Hover:ke[14],colorNeutralForeground1Pressed:ke[14],colorNeutralForeground1Selected:ke[14],colorNeutralForeground2:ke[26],colorNeutralForeground2Hover:ke[14],colorNeutralForeground2Pressed:ke[14],colorNeutralForeground2Selected:ke[14],colorNeutralForeground2BrandHover:e[80],colorNeutralForeground2BrandPressed:e[70],colorNeutralForeground2BrandSelected:e[80],colorNeutralForeground3:ke[38],colorNeutralForeground3Hover:ke[26],colorNeutralForeground3Pressed:ke[26],colorNeutralForeground3Selected:ke[26],colorNeutralForeground3BrandHover:e[80],colorNeutralForeground3BrandPressed:e[70],colorNeutralForeground3BrandSelected:e[80],colorNeutralForeground4:ke[44],colorNeutralForegroundDisabled:ke[74],colorNeutralForegroundInvertedDisabled:Ba[40],colorBrandForegroundLink:e[70],colorBrandForegroundLinkHover:e[60],colorBrandForegroundLinkPressed:e[40],colorBrandForegroundLinkSelected:e[70],colorNeutralForeground2Link:ke[26],colorNeutralForeground2LinkHover:ke[14],colorNeutralForeground2LinkPressed:ke[14],colorNeutralForeground2LinkSelected:ke[14],colorCompoundBrandForeground1:e[80],colorCompoundBrandForeground1Hover:e[70],colorCompoundBrandForeground1Pressed:e[60],colorBrandForeground1:e[80],colorBrandForeground2:e[70],colorBrandForeground2Hover:e[60],colorBrandForeground2Pressed:e[30],colorNeutralForeground1Static:ke[14],colorNeutralForegroundStaticInverted:sn,colorNeutralForegroundInverted:sn,colorNeutralForegroundInvertedHover:sn,colorNeutralForegroundInvertedPressed:sn,colorNeutralForegroundInvertedSelected:sn,colorNeutralForegroundInverted2:sn,colorNeutralForegroundOnBrand:sn,colorNeutralForegroundInvertedLink:sn,colorNeutralForegroundInvertedLinkHover:sn,colorNeutralForegroundInvertedLinkPressed:sn,colorNeutralForegroundInvertedLinkSelected:sn,colorBrandForegroundInverted:e[100],colorBrandForegroundInvertedHover:e[110],colorBrandForegroundInvertedPressed:e[100],colorBrandForegroundOnLight:e[80],colorBrandForegroundOnLightHover:e[70],colorBrandForegroundOnLightPressed:e[50],colorBrandForegroundOnLightSelected:e[60],colorNeutralBackground1:sn,colorNeutralBackground1Hover:ke[96],colorNeutralBackground1Pressed:ke[88],colorNeutralBackground1Selected:ke[92],colorNeutralBackground2:ke[98],colorNeutralBackground2Hover:ke[94],colorNeutralBackground2Pressed:ke[86],colorNeutralBackground2Selected:ke[90],colorNeutralBackground3:ke[96],colorNeutralBackground3Hover:ke[92],colorNeutralBackground3Pressed:ke[84],colorNeutralBackground3Selected:ke[88],colorNeutralBackground4:ke[94],colorNeutralBackground4Hover:ke[98],colorNeutralBackground4Pressed:ke[96],colorNeutralBackground4Selected:sn,colorNeutralBackground5:ke[92],colorNeutralBackground5Hover:ke[96],colorNeutralBackground5Pressed:ke[94],colorNeutralBackground5Selected:ke[98],colorNeutralBackground6:ke[90],colorNeutralBackgroundInverted:ke[16],colorNeutralBackgroundStatic:ke[20],colorNeutralBackgroundAlpha:Ba[50],colorNeutralBackgroundAlpha2:Ba[80],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:ke[96],colorSubtleBackgroundPressed:ke[88],colorSubtleBackgroundSelected:ke[92],colorSubtleBackgroundLightAlphaHover:Ba[70],colorSubtleBackgroundLightAlphaPressed:Ba[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:Fa[10],colorSubtleBackgroundInvertedPressed:Fa[30],colorSubtleBackgroundInvertedSelected:Fa[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:ke[94],colorNeutralBackgroundInvertedDisabled:Ba[10],colorNeutralStencil1:ke[90],colorNeutralStencil2:ke[98],colorNeutralStencil1Alpha:Fa[10],colorNeutralStencil2Alpha:Fa[5],colorBackgroundOverlay:Fa[40],colorScrollbarOverlay:Fa[50],colorBrandBackground:e[80],colorBrandBackgroundHover:e[70],colorBrandBackgroundPressed:e[40],colorBrandBackgroundSelected:e[60],colorCompoundBrandBackground:e[80],colorCompoundBrandBackgroundHover:e[70],colorCompoundBrandBackgroundPressed:e[60],colorBrandBackgroundStatic:e[80],colorBrandBackground2:e[160],colorBrandBackground2Hover:e[150],colorBrandBackground2Pressed:e[130],colorBrandBackground3Static:e[60],colorBrandBackground4Static:e[40],colorBrandBackgroundInverted:sn,colorBrandBackgroundInvertedHover:e[160],colorBrandBackgroundInvertedPressed:e[140],colorBrandBackgroundInvertedSelected:e[150],colorNeutralCardBackground:ke[98],colorNeutralCardBackgroundHover:sn,colorNeutralCardBackgroundPressed:ke[96],colorNeutralCardBackgroundSelected:ke[92],colorNeutralCardBackgroundDisabled:ke[94],colorNeutralStrokeAccessible:ke[38],colorNeutralStrokeAccessibleHover:ke[34],colorNeutralStrokeAccessiblePressed:ke[30],colorNeutralStrokeAccessibleSelected:e[80],colorNeutralStroke1:ke[82],colorNeutralStroke1Hover:ke[78],colorNeutralStroke1Pressed:ke[70],colorNeutralStroke1Selected:ke[74],colorNeutralStroke2:ke[88],colorNeutralStroke3:ke[94],colorNeutralStrokeSubtle:ke[88],colorNeutralStrokeOnBrand:sn,colorNeutralStrokeOnBrand2:sn,colorNeutralStrokeOnBrand2Hover:sn,colorNeutralStrokeOnBrand2Pressed:sn,colorNeutralStrokeOnBrand2Selected:sn,colorBrandStroke1:e[80],colorBrandStroke2:e[140],colorBrandStroke2Hover:e[120],colorBrandStroke2Pressed:e[80],colorBrandStroke2Contrast:e[140],colorCompoundBrandStroke:e[80],colorCompoundBrandStrokeHover:e[70],colorCompoundBrandStrokePressed:e[60],colorNeutralStrokeDisabled:ke[88],colorNeutralStrokeInvertedDisabled:Ba[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:Fa[5],colorNeutralStrokeAlpha2:Ba[20],colorStrokeFocus1:sn,colorStrokeFocus2:AZ,colorNeutralShadowAmbient:"rgba(0,0,0,0.12)",colorNeutralShadowKey:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.06)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.07)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.20)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.24)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),QZ={borderRadiusNone:"0",borderRadiusSmall:"2px",borderRadiusMedium:"4px",borderRadiusLarge:"6px",borderRadiusXLarge:"8px",borderRadiusCircular:"10000px"},$Z={curveAccelerateMax:"cubic-bezier(0.9,0.1,1,0.2)",curveAccelerateMid:"cubic-bezier(1,0,1,1)",curveAccelerateMin:"cubic-bezier(0.8,0,0.78,1)",curveDecelerateMax:"cubic-bezier(0.1,0.9,0.2,1)",curveDecelerateMid:"cubic-bezier(0,0,0,1)",curveDecelerateMin:"cubic-bezier(0.33,0,0.1,1)",curveEasyEaseMax:"cubic-bezier(0.8,0,0.2,1)",curveEasyEase:"cubic-bezier(0.33,0,0.67,1)",curveLinear:"cubic-bezier(0,0,1,1)"},eV={durationUltraFast:"50ms",durationFaster:"100ms",durationFast:"150ms",durationNormal:"200ms",durationGentle:"250ms",durationSlow:"300ms",durationSlower:"400ms",durationUltraSlow:"500ms"},tV={fontSizeBase100:"10px",fontSizeBase200:"12px",fontSizeBase300:"14px",fontSizeBase400:"16px",fontSizeBase500:"20px",fontSizeBase600:"24px",fontSizeHero700:"28px",fontSizeHero800:"32px",fontSizeHero900:"40px",fontSizeHero1000:"68px"},nV={lineHeightBase100:"14px",lineHeightBase200:"16px",lineHeightBase300:"20px",lineHeightBase400:"22px",lineHeightBase500:"28px",lineHeightBase600:"32px",lineHeightHero700:"36px",lineHeightHero800:"40px",lineHeightHero900:"52px",lineHeightHero1000:"92px"},rV={fontWeightRegular:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},oV={fontFamilyBase:"'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif",fontFamilyMonospace:"Consolas, 'Courier New', Courier, monospace",fontFamilyNumeric:"Bahnschrift, 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif"},tn={none:"0",xxs:"2px",xs:"4px",sNudge:"6px",s:"8px",mNudge:"10px",m:"12px",l:"16px",xl:"20px",xxl:"24px",xxxl:"32px"},iV={spacingHorizontalNone:tn.none,spacingHorizontalXXS:tn.xxs,spacingHorizontalXS:tn.xs,spacingHorizontalSNudge:tn.sNudge,spacingHorizontalS:tn.s,spacingHorizontalMNudge:tn.mNudge,spacingHorizontalM:tn.m,spacingHorizontalL:tn.l,spacingHorizontalXL:tn.xl,spacingHorizontalXXL:tn.xxl,spacingHorizontalXXXL:tn.xxxl},aV={spacingVerticalNone:tn.none,spacingVerticalXXS:tn.xxs,spacingVerticalXS:tn.xs,spacingVerticalSNudge:tn.sNudge,spacingVerticalS:tn.s,spacingVerticalMNudge:tn.mNudge,spacingVerticalM:tn.m,spacingVerticalL:tn.l,spacingVerticalXL:tn.xl,spacingVerticalXXL:tn.xxl,spacingVerticalXXXL:tn.xxxl},sV={strokeWidthThin:"1px",strokeWidthThick:"2px",strokeWidthThicker:"3px",strokeWidthThickest:"4px"},cV={colorNeutralForeground1:"var(--colorNeutralForeground1)",colorNeutralForeground1Hover:"var(--colorNeutralForeground1Hover)",colorNeutralForeground1Pressed:"var(--colorNeutralForeground1Pressed)",colorNeutralForeground1Selected:"var(--colorNeutralForeground1Selected)",colorNeutralForeground2:"var(--colorNeutralForeground2)",colorNeutralForeground2Hover:"var(--colorNeutralForeground2Hover)",colorNeutralForeground2Pressed:"var(--colorNeutralForeground2Pressed)",colorNeutralForeground2Selected:"var(--colorNeutralForeground2Selected)",colorNeutralForeground2BrandHover:"var(--colorNeutralForeground2BrandHover)",colorNeutralForeground2BrandPressed:"var(--colorNeutralForeground2BrandPressed)",colorNeutralForeground2BrandSelected:"var(--colorNeutralForeground2BrandSelected)",colorNeutralForeground3:"var(--colorNeutralForeground3)",colorNeutralForeground3Hover:"var(--colorNeutralForeground3Hover)",colorNeutralForeground3Pressed:"var(--colorNeutralForeground3Pressed)",colorNeutralForeground3Selected:"var(--colorNeutralForeground3Selected)",colorNeutralForeground3BrandHover:"var(--colorNeutralForeground3BrandHover)",colorNeutralForeground3BrandPressed:"var(--colorNeutralForeground3BrandPressed)",colorNeutralForeground3BrandSelected:"var(--colorNeutralForeground3BrandSelected)",colorNeutralForeground4:"var(--colorNeutralForeground4)",colorNeutralForegroundDisabled:"var(--colorNeutralForegroundDisabled)",colorBrandForegroundLink:"var(--colorBrandForegroundLink)",colorBrandForegroundLinkHover:"var(--colorBrandForegroundLinkHover)",colorBrandForegroundLinkPressed:"var(--colorBrandForegroundLinkPressed)",colorBrandForegroundLinkSelected:"var(--colorBrandForegroundLinkSelected)",colorNeutralForeground2Link:"var(--colorNeutralForeground2Link)",colorNeutralForeground2LinkHover:"var(--colorNeutralForeground2LinkHover)",colorNeutralForeground2LinkPressed:"var(--colorNeutralForeground2LinkPressed)",colorNeutralForeground2LinkSelected:"var(--colorNeutralForeground2LinkSelected)",colorCompoundBrandForeground1:"var(--colorCompoundBrandForeground1)",colorCompoundBrandForeground1Hover:"var(--colorCompoundBrandForeground1Hover)",colorCompoundBrandForeground1Pressed:"var(--colorCompoundBrandForeground1Pressed)",colorNeutralForegroundOnBrand:"var(--colorNeutralForegroundOnBrand)",colorNeutralForegroundInverted:"var(--colorNeutralForegroundInverted)",colorNeutralForegroundInvertedHover:"var(--colorNeutralForegroundInvertedHover)",colorNeutralForegroundInvertedPressed:"var(--colorNeutralForegroundInvertedPressed)",colorNeutralForegroundInvertedSelected:"var(--colorNeutralForegroundInvertedSelected)",colorNeutralForegroundInverted2:"var(--colorNeutralForegroundInverted2)",colorNeutralForegroundStaticInverted:"var(--colorNeutralForegroundStaticInverted)",colorNeutralForegroundInvertedLink:"var(--colorNeutralForegroundInvertedLink)",colorNeutralForegroundInvertedLinkHover:"var(--colorNeutralForegroundInvertedLinkHover)",colorNeutralForegroundInvertedLinkPressed:"var(--colorNeutralForegroundInvertedLinkPressed)",colorNeutralForegroundInvertedLinkSelected:"var(--colorNeutralForegroundInvertedLinkSelected)",colorNeutralForegroundInvertedDisabled:"var(--colorNeutralForegroundInvertedDisabled)",colorBrandForeground1:"var(--colorBrandForeground1)",colorBrandForeground2:"var(--colorBrandForeground2)",colorBrandForeground2Hover:"var(--colorBrandForeground2Hover)",colorBrandForeground2Pressed:"var(--colorBrandForeground2Pressed)",colorNeutralForeground1Static:"var(--colorNeutralForeground1Static)",colorBrandForegroundInverted:"var(--colorBrandForegroundInverted)",colorBrandForegroundInvertedHover:"var(--colorBrandForegroundInvertedHover)",colorBrandForegroundInvertedPressed:"var(--colorBrandForegroundInvertedPressed)",colorBrandForegroundOnLight:"var(--colorBrandForegroundOnLight)",colorBrandForegroundOnLightHover:"var(--colorBrandForegroundOnLightHover)",colorBrandForegroundOnLightPressed:"var(--colorBrandForegroundOnLightPressed)",colorBrandForegroundOnLightSelected:"var(--colorBrandForegroundOnLightSelected)",colorNeutralBackground1:"var(--colorNeutralBackground1)",colorNeutralBackground1Hover:"var(--colorNeutralBackground1Hover)",colorNeutralBackground1Pressed:"var(--colorNeutralBackground1Pressed)",colorNeutralBackground1Selected:"var(--colorNeutralBackground1Selected)",colorNeutralBackground2:"var(--colorNeutralBackground2)",colorNeutralBackground2Hover:"var(--colorNeutralBackground2Hover)",colorNeutralBackground2Pressed:"var(--colorNeutralBackground2Pressed)",colorNeutralBackground2Selected:"var(--colorNeutralBackground2Selected)",colorNeutralBackground3:"var(--colorNeutralBackground3)",colorNeutralBackground3Hover:"var(--colorNeutralBackground3Hover)",colorNeutralBackground3Pressed:"var(--colorNeutralBackground3Pressed)",colorNeutralBackground3Selected:"var(--colorNeutralBackground3Selected)",colorNeutralBackground4:"var(--colorNeutralBackground4)",colorNeutralBackground4Hover:"var(--colorNeutralBackground4Hover)",colorNeutralBackground4Pressed:"var(--colorNeutralBackground4Pressed)",colorNeutralBackground4Selected:"var(--colorNeutralBackground4Selected)",colorNeutralBackground5:"var(--colorNeutralBackground5)",colorNeutralBackground5Hover:"var(--colorNeutralBackground5Hover)",colorNeutralBackground5Pressed:"var(--colorNeutralBackground5Pressed)",colorNeutralBackground5Selected:"var(--colorNeutralBackground5Selected)",colorNeutralBackground6:"var(--colorNeutralBackground6)",colorNeutralBackgroundInverted:"var(--colorNeutralBackgroundInverted)",colorNeutralBackgroundStatic:"var(--colorNeutralBackgroundStatic)",colorNeutralBackgroundAlpha:"var(--colorNeutralBackgroundAlpha)",colorNeutralBackgroundAlpha2:"var(--colorNeutralBackgroundAlpha2)",colorSubtleBackground:"var(--colorSubtleBackground)",colorSubtleBackgroundHover:"var(--colorSubtleBackgroundHover)",colorSubtleBackgroundPressed:"var(--colorSubtleBackgroundPressed)",colorSubtleBackgroundSelected:"var(--colorSubtleBackgroundSelected)",colorSubtleBackgroundLightAlphaHover:"var(--colorSubtleBackgroundLightAlphaHover)",colorSubtleBackgroundLightAlphaPressed:"var(--colorSubtleBackgroundLightAlphaPressed)",colorSubtleBackgroundLightAlphaSelected:"var(--colorSubtleBackgroundLightAlphaSelected)",colorSubtleBackgroundInverted:"var(--colorSubtleBackgroundInverted)",colorSubtleBackgroundInvertedHover:"var(--colorSubtleBackgroundInvertedHover)",colorSubtleBackgroundInvertedPressed:"var(--colorSubtleBackgroundInvertedPressed)",colorSubtleBackgroundInvertedSelected:"var(--colorSubtleBackgroundInvertedSelected)",colorTransparentBackground:"var(--colorTransparentBackground)",colorTransparentBackgroundHover:"var(--colorTransparentBackgroundHover)",colorTransparentBackgroundPressed:"var(--colorTransparentBackgroundPressed)",colorTransparentBackgroundSelected:"var(--colorTransparentBackgroundSelected)",colorNeutralBackgroundDisabled:"var(--colorNeutralBackgroundDisabled)",colorNeutralBackgroundInvertedDisabled:"var(--colorNeutralBackgroundInvertedDisabled)",colorNeutralStencil1:"var(--colorNeutralStencil1)",colorNeutralStencil2:"var(--colorNeutralStencil2)",colorNeutralStencil1Alpha:"var(--colorNeutralStencil1Alpha)",colorNeutralStencil2Alpha:"var(--colorNeutralStencil2Alpha)",colorBackgroundOverlay:"var(--colorBackgroundOverlay)",colorScrollbarOverlay:"var(--colorScrollbarOverlay)",colorBrandBackground:"var(--colorBrandBackground)",colorBrandBackgroundHover:"var(--colorBrandBackgroundHover)",colorBrandBackgroundPressed:"var(--colorBrandBackgroundPressed)",colorBrandBackgroundSelected:"var(--colorBrandBackgroundSelected)",colorCompoundBrandBackground:"var(--colorCompoundBrandBackground)",colorCompoundBrandBackgroundHover:"var(--colorCompoundBrandBackgroundHover)",colorCompoundBrandBackgroundPressed:"var(--colorCompoundBrandBackgroundPressed)",colorBrandBackgroundStatic:"var(--colorBrandBackgroundStatic)",colorBrandBackground2:"var(--colorBrandBackground2)",colorBrandBackground2Hover:"var(--colorBrandBackground2Hover)",colorBrandBackground2Pressed:"var(--colorBrandBackground2Pressed)",colorBrandBackground3Static:"var(--colorBrandBackground3Static)",colorBrandBackground4Static:"var(--colorBrandBackground4Static)",colorBrandBackgroundInverted:"var(--colorBrandBackgroundInverted)",colorBrandBackgroundInvertedHover:"var(--colorBrandBackgroundInvertedHover)",colorBrandBackgroundInvertedPressed:"var(--colorBrandBackgroundInvertedPressed)",colorBrandBackgroundInvertedSelected:"var(--colorBrandBackgroundInvertedSelected)",colorNeutralCardBackground:"var(--colorNeutralCardBackground)",colorNeutralCardBackgroundHover:"var(--colorNeutralCardBackgroundHover)",colorNeutralCardBackgroundPressed:"var(--colorNeutralCardBackgroundPressed)",colorNeutralCardBackgroundSelected:"var(--colorNeutralCardBackgroundSelected)",colorNeutralCardBackgroundDisabled:"var(--colorNeutralCardBackgroundDisabled)",colorNeutralStrokeAccessible:"var(--colorNeutralStrokeAccessible)",colorNeutralStrokeAccessibleHover:"var(--colorNeutralStrokeAccessibleHover)",colorNeutralStrokeAccessiblePressed:"var(--colorNeutralStrokeAccessiblePressed)",colorNeutralStrokeAccessibleSelected:"var(--colorNeutralStrokeAccessibleSelected)",colorNeutralStroke1:"var(--colorNeutralStroke1)",colorNeutralStroke1Hover:"var(--colorNeutralStroke1Hover)",colorNeutralStroke1Pressed:"var(--colorNeutralStroke1Pressed)",colorNeutralStroke1Selected:"var(--colorNeutralStroke1Selected)",colorNeutralStroke2:"var(--colorNeutralStroke2)",colorNeutralStroke3:"var(--colorNeutralStroke3)",colorNeutralStrokeSubtle:"var(--colorNeutralStrokeSubtle)",colorNeutralStrokeOnBrand:"var(--colorNeutralStrokeOnBrand)",colorNeutralStrokeOnBrand2:"var(--colorNeutralStrokeOnBrand2)",colorNeutralStrokeOnBrand2Hover:"var(--colorNeutralStrokeOnBrand2Hover)",colorNeutralStrokeOnBrand2Pressed:"var(--colorNeutralStrokeOnBrand2Pressed)",colorNeutralStrokeOnBrand2Selected:"var(--colorNeutralStrokeOnBrand2Selected)",colorBrandStroke1:"var(--colorBrandStroke1)",colorBrandStroke2:"var(--colorBrandStroke2)",colorBrandStroke2Hover:"var(--colorBrandStroke2Hover)",colorBrandStroke2Pressed:"var(--colorBrandStroke2Pressed)",colorBrandStroke2Contrast:"var(--colorBrandStroke2Contrast)",colorCompoundBrandStroke:"var(--colorCompoundBrandStroke)",colorCompoundBrandStrokeHover:"var(--colorCompoundBrandStrokeHover)",colorCompoundBrandStrokePressed:"var(--colorCompoundBrandStrokePressed)",colorNeutralStrokeDisabled:"var(--colorNeutralStrokeDisabled)",colorNeutralStrokeInvertedDisabled:"var(--colorNeutralStrokeInvertedDisabled)",colorTransparentStroke:"var(--colorTransparentStroke)",colorTransparentStrokeInteractive:"var(--colorTransparentStrokeInteractive)",colorTransparentStrokeDisabled:"var(--colorTransparentStrokeDisabled)",colorNeutralStrokeAlpha:"var(--colorNeutralStrokeAlpha)",colorNeutralStrokeAlpha2:"var(--colorNeutralStrokeAlpha2)",colorStrokeFocus1:"var(--colorStrokeFocus1)",colorStrokeFocus2:"var(--colorStrokeFocus2)",colorNeutralShadowAmbient:"var(--colorNeutralShadowAmbient)",colorNeutralShadowKey:"var(--colorNeutralShadowKey)",colorNeutralShadowAmbientLighter:"var(--colorNeutralShadowAmbientLighter)",colorNeutralShadowKeyLighter:"var(--colorNeutralShadowKeyLighter)",colorNeutralShadowAmbientDarker:"var(--colorNeutralShadowAmbientDarker)",colorNeutralShadowKeyDarker:"var(--colorNeutralShadowKeyDarker)",colorBrandShadowAmbient:"var(--colorBrandShadowAmbient)",colorBrandShadowKey:"var(--colorBrandShadowKey)",colorPaletteRedBackground1:"var(--colorPaletteRedBackground1)",colorPaletteRedBackground2:"var(--colorPaletteRedBackground2)",colorPaletteRedBackground3:"var(--colorPaletteRedBackground3)",colorPaletteRedBorderActive:"var(--colorPaletteRedBorderActive)",colorPaletteRedBorder1:"var(--colorPaletteRedBorder1)",colorPaletteRedBorder2:"var(--colorPaletteRedBorder2)",colorPaletteRedForeground1:"var(--colorPaletteRedForeground1)",colorPaletteRedForeground2:"var(--colorPaletteRedForeground2)",colorPaletteRedForeground3:"var(--colorPaletteRedForeground3)",colorPaletteRedForegroundInverted:"var(--colorPaletteRedForegroundInverted)",colorPaletteGreenBackground1:"var(--colorPaletteGreenBackground1)",colorPaletteGreenBackground2:"var(--colorPaletteGreenBackground2)",colorPaletteGreenBackground3:"var(--colorPaletteGreenBackground3)",colorPaletteGreenBorderActive:"var(--colorPaletteGreenBorderActive)",colorPaletteGreenBorder1:"var(--colorPaletteGreenBorder1)",colorPaletteGreenBorder2:"var(--colorPaletteGreenBorder2)",colorPaletteGreenForeground1:"var(--colorPaletteGreenForeground1)",colorPaletteGreenForeground2:"var(--colorPaletteGreenForeground2)",colorPaletteGreenForeground3:"var(--colorPaletteGreenForeground3)",colorPaletteGreenForegroundInverted:"var(--colorPaletteGreenForegroundInverted)",colorPaletteDarkOrangeBackground1:"var(--colorPaletteDarkOrangeBackground1)",colorPaletteDarkOrangeBackground2:"var(--colorPaletteDarkOrangeBackground2)",colorPaletteDarkOrangeBackground3:"var(--colorPaletteDarkOrangeBackground3)",colorPaletteDarkOrangeBorderActive:"var(--colorPaletteDarkOrangeBorderActive)",colorPaletteDarkOrangeBorder1:"var(--colorPaletteDarkOrangeBorder1)",colorPaletteDarkOrangeBorder2:"var(--colorPaletteDarkOrangeBorder2)",colorPaletteDarkOrangeForeground1:"var(--colorPaletteDarkOrangeForeground1)",colorPaletteDarkOrangeForeground2:"var(--colorPaletteDarkOrangeForeground2)",colorPaletteDarkOrangeForeground3:"var(--colorPaletteDarkOrangeForeground3)",colorPaletteYellowBackground1:"var(--colorPaletteYellowBackground1)",colorPaletteYellowBackground2:"var(--colorPaletteYellowBackground2)",colorPaletteYellowBackground3:"var(--colorPaletteYellowBackground3)",colorPaletteYellowBorderActive:"var(--colorPaletteYellowBorderActive)",colorPaletteYellowBorder1:"var(--colorPaletteYellowBorder1)",colorPaletteYellowBorder2:"var(--colorPaletteYellowBorder2)",colorPaletteYellowForeground1:"var(--colorPaletteYellowForeground1)",colorPaletteYellowForeground2:"var(--colorPaletteYellowForeground2)",colorPaletteYellowForeground3:"var(--colorPaletteYellowForeground3)",colorPaletteYellowForegroundInverted:"var(--colorPaletteYellowForegroundInverted)",colorPaletteBerryBackground1:"var(--colorPaletteBerryBackground1)",colorPaletteBerryBackground2:"var(--colorPaletteBerryBackground2)",colorPaletteBerryBackground3:"var(--colorPaletteBerryBackground3)",colorPaletteBerryBorderActive:"var(--colorPaletteBerryBorderActive)",colorPaletteBerryBorder1:"var(--colorPaletteBerryBorder1)",colorPaletteBerryBorder2:"var(--colorPaletteBerryBorder2)",colorPaletteBerryForeground1:"var(--colorPaletteBerryForeground1)",colorPaletteBerryForeground2:"var(--colorPaletteBerryForeground2)",colorPaletteBerryForeground3:"var(--colorPaletteBerryForeground3)",colorPaletteMarigoldBackground1:"var(--colorPaletteMarigoldBackground1)",colorPaletteMarigoldBackground2:"var(--colorPaletteMarigoldBackground2)",colorPaletteMarigoldBackground3:"var(--colorPaletteMarigoldBackground3)",colorPaletteMarigoldBorderActive:"var(--colorPaletteMarigoldBorderActive)",colorPaletteMarigoldBorder1:"var(--colorPaletteMarigoldBorder1)",colorPaletteMarigoldBorder2:"var(--colorPaletteMarigoldBorder2)",colorPaletteMarigoldForeground1:"var(--colorPaletteMarigoldForeground1)",colorPaletteMarigoldForeground2:"var(--colorPaletteMarigoldForeground2)",colorPaletteMarigoldForeground3:"var(--colorPaletteMarigoldForeground3)",colorPaletteLightGreenBackground1:"var(--colorPaletteLightGreenBackground1)",colorPaletteLightGreenBackground2:"var(--colorPaletteLightGreenBackground2)",colorPaletteLightGreenBackground3:"var(--colorPaletteLightGreenBackground3)",colorPaletteLightGreenBorderActive:"var(--colorPaletteLightGreenBorderActive)",colorPaletteLightGreenBorder1:"var(--colorPaletteLightGreenBorder1)",colorPaletteLightGreenBorder2:"var(--colorPaletteLightGreenBorder2)",colorPaletteLightGreenForeground1:"var(--colorPaletteLightGreenForeground1)",colorPaletteLightGreenForeground2:"var(--colorPaletteLightGreenForeground2)",colorPaletteLightGreenForeground3:"var(--colorPaletteLightGreenForeground3)",colorPaletteAnchorBackground2:"var(--colorPaletteAnchorBackground2)",colorPaletteAnchorBorderActive:"var(--colorPaletteAnchorBorderActive)",colorPaletteAnchorForeground2:"var(--colorPaletteAnchorForeground2)",colorPaletteBeigeBackground2:"var(--colorPaletteBeigeBackground2)",colorPaletteBeigeBorderActive:"var(--colorPaletteBeigeBorderActive)",colorPaletteBeigeForeground2:"var(--colorPaletteBeigeForeground2)",colorPaletteBlueBackground2:"var(--colorPaletteBlueBackground2)",colorPaletteBlueBorderActive:"var(--colorPaletteBlueBorderActive)",colorPaletteBlueForeground2:"var(--colorPaletteBlueForeground2)",colorPaletteBrassBackground2:"var(--colorPaletteBrassBackground2)",colorPaletteBrassBorderActive:"var(--colorPaletteBrassBorderActive)",colorPaletteBrassForeground2:"var(--colorPaletteBrassForeground2)",colorPaletteBrownBackground2:"var(--colorPaletteBrownBackground2)",colorPaletteBrownBorderActive:"var(--colorPaletteBrownBorderActive)",colorPaletteBrownForeground2:"var(--colorPaletteBrownForeground2)",colorPaletteCornflowerBackground2:"var(--colorPaletteCornflowerBackground2)",colorPaletteCornflowerBorderActive:"var(--colorPaletteCornflowerBorderActive)",colorPaletteCornflowerForeground2:"var(--colorPaletteCornflowerForeground2)",colorPaletteCranberryBackground2:"var(--colorPaletteCranberryBackground2)",colorPaletteCranberryBorderActive:"var(--colorPaletteCranberryBorderActive)",colorPaletteCranberryForeground2:"var(--colorPaletteCranberryForeground2)",colorPaletteDarkGreenBackground2:"var(--colorPaletteDarkGreenBackground2)",colorPaletteDarkGreenBorderActive:"var(--colorPaletteDarkGreenBorderActive)",colorPaletteDarkGreenForeground2:"var(--colorPaletteDarkGreenForeground2)",colorPaletteDarkRedBackground2:"var(--colorPaletteDarkRedBackground2)",colorPaletteDarkRedBorderActive:"var(--colorPaletteDarkRedBorderActive)",colorPaletteDarkRedForeground2:"var(--colorPaletteDarkRedForeground2)",colorPaletteForestBackground2:"var(--colorPaletteForestBackground2)",colorPaletteForestBorderActive:"var(--colorPaletteForestBorderActive)",colorPaletteForestForeground2:"var(--colorPaletteForestForeground2)",colorPaletteGoldBackground2:"var(--colorPaletteGoldBackground2)",colorPaletteGoldBorderActive:"var(--colorPaletteGoldBorderActive)",colorPaletteGoldForeground2:"var(--colorPaletteGoldForeground2)",colorPaletteGrapeBackground2:"var(--colorPaletteGrapeBackground2)",colorPaletteGrapeBorderActive:"var(--colorPaletteGrapeBorderActive)",colorPaletteGrapeForeground2:"var(--colorPaletteGrapeForeground2)",colorPaletteLavenderBackground2:"var(--colorPaletteLavenderBackground2)",colorPaletteLavenderBorderActive:"var(--colorPaletteLavenderBorderActive)",colorPaletteLavenderForeground2:"var(--colorPaletteLavenderForeground2)",colorPaletteLightTealBackground2:"var(--colorPaletteLightTealBackground2)",colorPaletteLightTealBorderActive:"var(--colorPaletteLightTealBorderActive)",colorPaletteLightTealForeground2:"var(--colorPaletteLightTealForeground2)",colorPaletteLilacBackground2:"var(--colorPaletteLilacBackground2)",colorPaletteLilacBorderActive:"var(--colorPaletteLilacBorderActive)",colorPaletteLilacForeground2:"var(--colorPaletteLilacForeground2)",colorPaletteMagentaBackground2:"var(--colorPaletteMagentaBackground2)",colorPaletteMagentaBorderActive:"var(--colorPaletteMagentaBorderActive)",colorPaletteMagentaForeground2:"var(--colorPaletteMagentaForeground2)",colorPaletteMinkBackground2:"var(--colorPaletteMinkBackground2)",colorPaletteMinkBorderActive:"var(--colorPaletteMinkBorderActive)",colorPaletteMinkForeground2:"var(--colorPaletteMinkForeground2)",colorPaletteNavyBackground2:"var(--colorPaletteNavyBackground2)",colorPaletteNavyBorderActive:"var(--colorPaletteNavyBorderActive)",colorPaletteNavyForeground2:"var(--colorPaletteNavyForeground2)",colorPalettePeachBackground2:"var(--colorPalettePeachBackground2)",colorPalettePeachBorderActive:"var(--colorPalettePeachBorderActive)",colorPalettePeachForeground2:"var(--colorPalettePeachForeground2)",colorPalettePinkBackground2:"var(--colorPalettePinkBackground2)",colorPalettePinkBorderActive:"var(--colorPalettePinkBorderActive)",colorPalettePinkForeground2:"var(--colorPalettePinkForeground2)",colorPalettePlatinumBackground2:"var(--colorPalettePlatinumBackground2)",colorPalettePlatinumBorderActive:"var(--colorPalettePlatinumBorderActive)",colorPalettePlatinumForeground2:"var(--colorPalettePlatinumForeground2)",colorPalettePlumBackground2:"var(--colorPalettePlumBackground2)",colorPalettePlumBorderActive:"var(--colorPalettePlumBorderActive)",colorPalettePlumForeground2:"var(--colorPalettePlumForeground2)",colorPalettePumpkinBackground2:"var(--colorPalettePumpkinBackground2)",colorPalettePumpkinBorderActive:"var(--colorPalettePumpkinBorderActive)",colorPalettePumpkinForeground2:"var(--colorPalettePumpkinForeground2)",colorPalettePurpleBackground2:"var(--colorPalettePurpleBackground2)",colorPalettePurpleBorderActive:"var(--colorPalettePurpleBorderActive)",colorPalettePurpleForeground2:"var(--colorPalettePurpleForeground2)",colorPaletteRoyalBlueBackground2:"var(--colorPaletteRoyalBlueBackground2)",colorPaletteRoyalBlueBorderActive:"var(--colorPaletteRoyalBlueBorderActive)",colorPaletteRoyalBlueForeground2:"var(--colorPaletteRoyalBlueForeground2)",colorPaletteSeafoamBackground2:"var(--colorPaletteSeafoamBackground2)",colorPaletteSeafoamBorderActive:"var(--colorPaletteSeafoamBorderActive)",colorPaletteSeafoamForeground2:"var(--colorPaletteSeafoamForeground2)",colorPaletteSteelBackground2:"var(--colorPaletteSteelBackground2)",colorPaletteSteelBorderActive:"var(--colorPaletteSteelBorderActive)",colorPaletteSteelForeground2:"var(--colorPaletteSteelForeground2)",colorPaletteTealBackground2:"var(--colorPaletteTealBackground2)",colorPaletteTealBorderActive:"var(--colorPaletteTealBorderActive)",colorPaletteTealForeground2:"var(--colorPaletteTealForeground2)",colorStatusSuccessBackground1:"var(--colorStatusSuccessBackground1)",colorStatusSuccessBackground2:"var(--colorStatusSuccessBackground2)",colorStatusSuccessBackground3:"var(--colorStatusSuccessBackground3)",colorStatusSuccessForeground1:"var(--colorStatusSuccessForeground1)",colorStatusSuccessForeground2:"var(--colorStatusSuccessForeground2)",colorStatusSuccessForeground3:"var(--colorStatusSuccessForeground3)",colorStatusSuccessForegroundInverted:"var(--colorStatusSuccessForegroundInverted)",colorStatusSuccessBorderActive:"var(--colorStatusSuccessBorderActive)",colorStatusSuccessBorder1:"var(--colorStatusSuccessBorder1)",colorStatusSuccessBorder2:"var(--colorStatusSuccessBorder2)",colorStatusWarningBackground1:"var(--colorStatusWarningBackground1)",colorStatusWarningBackground2:"var(--colorStatusWarningBackground2)",colorStatusWarningBackground3:"var(--colorStatusWarningBackground3)",colorStatusWarningForeground1:"var(--colorStatusWarningForeground1)",colorStatusWarningForeground2:"var(--colorStatusWarningForeground2)",colorStatusWarningForeground3:"var(--colorStatusWarningForeground3)",colorStatusWarningForegroundInverted:"var(--colorStatusWarningForegroundInverted)",colorStatusWarningBorderActive:"var(--colorStatusWarningBorderActive)",colorStatusWarningBorder1:"var(--colorStatusWarningBorder1)",colorStatusWarningBorder2:"var(--colorStatusWarningBorder2)",colorStatusDangerBackground1:"var(--colorStatusDangerBackground1)",colorStatusDangerBackground2:"var(--colorStatusDangerBackground2)",colorStatusDangerBackground3:"var(--colorStatusDangerBackground3)",colorStatusDangerBackground3Hover:"var(--colorStatusDangerBackground3Hover)",colorStatusDangerBackground3Pressed:"var(--colorStatusDangerBackground3Pressed)",colorStatusDangerForeground1:"var(--colorStatusDangerForeground1)",colorStatusDangerForeground2:"var(--colorStatusDangerForeground2)",colorStatusDangerForeground3:"var(--colorStatusDangerForeground3)",colorStatusDangerForegroundInverted:"var(--colorStatusDangerForegroundInverted)",colorStatusDangerBorderActive:"var(--colorStatusDangerBorderActive)",colorStatusDangerBorder1:"var(--colorStatusDangerBorder1)",colorStatusDangerBorder2:"var(--colorStatusDangerBorder2)",borderRadiusNone:"var(--borderRadiusNone)",borderRadiusSmall:"var(--borderRadiusSmall)",borderRadiusMedium:"var(--borderRadiusMedium)",borderRadiusLarge:"var(--borderRadiusLarge)",borderRadiusXLarge:"var(--borderRadiusXLarge)",borderRadiusCircular:"var(--borderRadiusCircular)",fontFamilyBase:"var(--fontFamilyBase)",fontFamilyMonospace:"var(--fontFamilyMonospace)",fontFamilyNumeric:"var(--fontFamilyNumeric)",fontSizeBase100:"var(--fontSizeBase100)",fontSizeBase200:"var(--fontSizeBase200)",fontSizeBase300:"var(--fontSizeBase300)",fontSizeBase400:"var(--fontSizeBase400)",fontSizeBase500:"var(--fontSizeBase500)",fontSizeBase600:"var(--fontSizeBase600)",fontSizeHero700:"var(--fontSizeHero700)",fontSizeHero800:"var(--fontSizeHero800)",fontSizeHero900:"var(--fontSizeHero900)",fontSizeHero1000:"var(--fontSizeHero1000)",fontWeightRegular:"var(--fontWeightRegular)",fontWeightMedium:"var(--fontWeightMedium)",fontWeightSemibold:"var(--fontWeightSemibold)",fontWeightBold:"var(--fontWeightBold)",lineHeightBase100:"var(--lineHeightBase100)",lineHeightBase200:"var(--lineHeightBase200)",lineHeightBase300:"var(--lineHeightBase300)",lineHeightBase400:"var(--lineHeightBase400)",lineHeightBase500:"var(--lineHeightBase500)",lineHeightBase600:"var(--lineHeightBase600)",lineHeightHero700:"var(--lineHeightHero700)",lineHeightHero800:"var(--lineHeightHero800)",lineHeightHero900:"var(--lineHeightHero900)",lineHeightHero1000:"var(--lineHeightHero1000)",shadow2:"var(--shadow2)",shadow4:"var(--shadow4)",shadow8:"var(--shadow8)",shadow16:"var(--shadow16)",shadow28:"var(--shadow28)",shadow64:"var(--shadow64)",shadow2Brand:"var(--shadow2Brand)",shadow4Brand:"var(--shadow4Brand)",shadow8Brand:"var(--shadow8Brand)",shadow16Brand:"var(--shadow16Brand)",shadow28Brand:"var(--shadow28Brand)",shadow64Brand:"var(--shadow64Brand)",strokeWidthThin:"var(--strokeWidthThin)",strokeWidthThick:"var(--strokeWidthThick)",strokeWidthThicker:"var(--strokeWidthThicker)",strokeWidthThickest:"var(--strokeWidthThickest)",spacingHorizontalNone:"var(--spacingHorizontalNone)",spacingHorizontalXXS:"var(--spacingHorizontalXXS)",spacingHorizontalXS:"var(--spacingHorizontalXS)",spacingHorizontalSNudge:"var(--spacingHorizontalSNudge)",spacingHorizontalS:"var(--spacingHorizontalS)",spacingHorizontalMNudge:"var(--spacingHorizontalMNudge)",spacingHorizontalM:"var(--spacingHorizontalM)",spacingHorizontalL:"var(--spacingHorizontalL)",spacingHorizontalXL:"var(--spacingHorizontalXL)",spacingHorizontalXXL:"var(--spacingHorizontalXXL)",spacingHorizontalXXXL:"var(--spacingHorizontalXXXL)",spacingVerticalNone:"var(--spacingVerticalNone)",spacingVerticalXXS:"var(--spacingVerticalXXS)",spacingVerticalXS:"var(--spacingVerticalXS)",spacingVerticalSNudge:"var(--spacingVerticalSNudge)",spacingVerticalS:"var(--spacingVerticalS)",spacingVerticalMNudge:"var(--spacingVerticalMNudge)",spacingVerticalM:"var(--spacingVerticalM)",spacingVerticalL:"var(--spacingVerticalL)",spacingVerticalXL:"var(--spacingVerticalXL)",spacingVerticalXXL:"var(--spacingVerticalXXL)",spacingVerticalXXXL:"var(--spacingVerticalXXXL)",durationUltraFast:"var(--durationUltraFast)",durationFaster:"var(--durationFaster)",durationFast:"var(--durationFast)",durationNormal:"var(--durationNormal)",durationGentle:"var(--durationGentle)",durationSlow:"var(--durationSlow)",durationSlower:"var(--durationSlower)",durationUltraSlow:"var(--durationUltraSlow)",curveAccelerateMax:"var(--curveAccelerateMax)",curveAccelerateMid:"var(--curveAccelerateMid)",curveAccelerateMin:"var(--curveAccelerateMin)",curveDecelerateMax:"var(--curveDecelerateMax)",curveDecelerateMid:"var(--curveDecelerateMid)",curveDecelerateMin:"var(--curveDecelerateMin)",curveEasyEaseMax:"var(--curveEasyEaseMax)",curveEasyEase:"var(--curveEasyEase)",curveLinear:"var(--curveLinear)"};function tC(e,t,n=""){return{[`shadow2${n}`]:`0 0 2px ${e}, 0 1px 2px ${t}`,[`shadow4${n}`]:`0 0 2px ${e}, 0 2px 4px ${t}`,[`shadow8${n}`]:`0 0 2px ${e}, 0 4px 8px ${t}`,[`shadow16${n}`]:`0 0 2px ${e}, 0 8px 16px ${t}`,[`shadow28${n}`]:`0 0 8px ${e}, 0 14px 28px ${t}`,[`shadow64${n}`]:`0 0 8px ${e}, 0 32px 64px ${t}`}}const lV=e=>{const t=JZ(e);return{...QZ,...tV,...nV,...oV,...rV,...sV,...iV,...aV,...eV,...$Z,...t,...KZ,...Du,...tC(t.colorNeutralShadowAmbient,t.colorNeutralShadowKey),...tC(t.colorBrandShadowAmbient,t.colorBrandShadowKey,"Brand")}},b8={root:"fui-FluentProvider"},dV=CD({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",fsow6f:["f1o700av","fes3tcz"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}"]}),uV=e=>{"use no memo";const t=Em(),n=dV({dir:e.dir,renderer:t});return e.root.className=G(b8.root,e.themeClassName,n.root,e.root.className),e},AV=g.useInsertionEffect?g.useInsertionEffect:nr,fV=(e,t)=>{if(!e)return;const n=e.createElement("style");return Object.keys(t).forEach(r=>{n.setAttribute(r,t[r])}),e.head.appendChild(n),n},mV=(e,t)=>{const n=e.sheet;n&&(n.cssRules.length>0&&n.deleteRule(0),n.insertRule(t,0))},vV=e=>{"use no memo";const{targetDocument:t,theme:n,rendererAttributes:r}=e,o=g.useRef(),i=Rn(b8.root),a=r,s=g.useMemo(()=>_L(`.${i}`,n),[n,i]);return pV(t,i),AV(()=>{const c=t==null?void 0:t.getElementById(i);return c?o.current=c:(o.current=fV(t,{...a,id:i}),o.current&&mV(o.current,s)),()=>{var l;(l=o.current)===null||l===void 0||l.remove()}},[i,t,s,a]),{styleTagId:i,rule:s}};function pV(e,t){g.useState(()=>{if(!e)return;const n=e.getElementById(t);n&&e.head.append(n)})}const gV={},hV={},bV=(e,t)=>{"use no memo";const n=Ge(),r=yV(),o=BD(),i=g.useContext(gk)||gV,{applyStylesToPortals:a=!0,customStyleHooks_unstable:s,dir:c=n.dir,targetDocument:l=n.targetDocument,theme:d,overrides_unstable:A={}}=e,f=i1(r,d),m=i1(o,A),v=i1(i,s),p=Em();var y;const{styleTagId:b,rule:h}=vV({theme:f,targetDocument:l,rendererAttributes:(y=p.styleElementAttributes)!==null&&y!==void 0?y:hV});return{applyStylesToPortals:a,customStyleHooks_unstable:v,dir:c,targetDocument:l,theme:f,overrides_unstable:m,themeClassName:b,components:{root:"div"},root:be(ze("div",{...e,dir:c,ref:ot(t,Nk({targetDocument:l}))}),{elementType:"div"}),serverStyleProps:{cssRule:h,attributes:{...p.styleElementAttributes,id:b}}}};function i1(e,t){return e&&t?{...e,...t}:e||t}function yV(){return g.useContext(MD)}function wV(e){const{applyStylesToPortals:t,customStyleHooks_unstable:n,dir:r,root:o,targetDocument:i,theme:a,themeClassName:s,overrides_unstable:c}=e,l=g.useMemo(()=>({dir:r,targetDocument:i}),[r,i]),[d]=g.useState(()=>({})),A=g.useMemo(()=>({textDirection:r}),[r]);return{customStyleHooks_unstable:n,overrides_unstable:c,provider:l,textDirection:r,iconDirection:A,tooltip:d,theme:a,themeClassName:t?o.className:s}}const y8=g.forwardRef((e,t)=>{const n=bV(e,t);uV(n);const r=wV(n);return gU(n,r)});y8.displayName="FluentProvider";var w8={exports:{}},x8={};/** * @license React * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */(function(e){function t(I,E){var D=I.length;I.push(E);e:for(;0>>1,z=I[W];if(0>>1;Wo(P,D))Uo(B,P)?(I[W]=B,I[U]=D,W=U):(I[W]=P,I[q]=D,W=q);else if(Uo(B,D))I[W]=B,I[U]=D,W=U;else break e}}return E}function o(I,E){var D=I.sortIndex-E.sortIndex;return D!==0?D:I.id-E.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var c=[],l=[],d=1,A=null,f=3,m=!1,v=!1,p=!1,y=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(I){for(var E=n(l);E!==null;){if(E.callback===null)r(l);else if(E.startTime<=I)r(l),E.sortIndex=E.expirationTime,t(c,E);else break;E=n(l)}}function x(I){if(p=!1,w(I),!v)if(n(c)!==null)v=!0,_(k);else{var E=n(l);E!==null&&Y(x,E.startTime-I)}}function k(I,E){v=!1,p&&(p=!1,b(C),C=-1),m=!0;var D=f;try{for(w(E),A=n(c);A!==null&&(!(A.expirationTime>E)||I&&!T());){var W=A.callback;if(typeof W=="function"){A.callback=null,f=A.priorityLevel;var z=W(A.expirationTime<=E);E=e.unstable_now(),typeof z=="function"?A.callback=z:A===n(c)&&r(c),w(E)}else r(c);A=n(c)}if(A!==null)var L=!0;else{var q=n(l);q!==null&&Y(x,q.startTime-E),L=!1}return L}finally{A=null,f=D,m=!1}}var S=!1,N=null,C=-1,M=5,j=-1;function T(){return!(e.unstable_now()-jI||125W?(I.sortIndex=D,t(l,I),n(c)===null&&I===n(l)&&(p?(b(C),C=-1):p=!0,Y(x,D-W))):(I.sortIndex=z,t(c,I),v||m||(v=!0,_(k))),I},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(I){var E=f;return function(){var D=f;f=E;try{return I.apply(this,arguments)}finally{f=D}}}})(x8);w8.exports=x8;var nC=w8.exports;const xV=e=>n=>{const r=g.useRef(n.value),o=g.useRef(0),i=g.useRef();return i.current||(i.current={value:r,version:o,listeners:[]}),nr(()=>{r.current=n.value,o.current+=1,nC.unstable_runWithPriority(nC.unstable_NormalPriority,()=>{i.current.listeners.forEach(a=>{a([o.current,n.value])})})},[n.value]),g.createElement(e,{value:i.current},n.children)},Vi=e=>{const t=g.createContext({value:{current:e},version:{current:-1},listeners:[]});return t.Provider=xV(t.Provider),delete t.Consumer,t},Qs=(e,t)=>{const n=g.useContext(e),{value:{current:r},version:{current:o},listeners:i}=n,a=t(r),[s,c]=g.useState([r,a]),l=A=>{c(f=>{if(!A)return[r,a];if(A[0]<=o)return Object.is(f[1],a)?f:[r,a];try{if(Object.is(f[0],A[1]))return f;const m=t(A[1]);return Object.is(f[1],m)?f:[A[1],m]}catch{}return[f[0],f[1]]})};Object.is(s[1],a)||l(void 0);const d=fe(l);return nr(()=>(i.push(d),()=>{const A=i.indexOf(d);i.splice(A,1)}),[d,i]),s[1]};function qh(e){const t=g.useContext(e);return t.version?t.version.current!==-1:!1}const kV="Shift",Hn="Enter",To=" ",k8="Tab",cu="ArrowDown",Mu="ArrowLeft",Ru="ArrowRight",af="ArrowUp",S8="End",j8="Home",N8="PageDown",C8="PageUp",SV="Backspace",$s="Escape";function il(e,t){const{disabled:n,disabledFocusable:r=!1,["aria-disabled"]:o,onClick:i,onKeyDown:a,onKeyUp:s,...c}=t??{},l=typeof o=="string"?o==="true":o,d=n||r||l,A=fe(v=>{d?(v.preventDefault(),v.stopPropagation()):i==null||i(v)}),f=fe(v=>{if(a==null||a(v),v.isDefaultPrevented())return;const p=v.key;if(d&&(p===Hn||p===To)){v.preventDefault(),v.stopPropagation();return}if(p===To){v.preventDefault();return}else p===Hn&&(v.preventDefault(),v.currentTarget.click())}),m=fe(v=>{if(s==null||s(v),v.isDefaultPrevented())return;const p=v.key;if(d&&(p===Hn||p===To)){v.preventDefault(),v.stopPropagation();return}p===To&&(v.preventDefault(),v.currentTarget.click())});if(e==="button"||e===void 0)return{...c,disabled:n&&!r,"aria-disabled":r?!0:l,onClick:r?void 0:A,onKeyUp:r?void 0:s,onKeyDown:r?void 0:a};{const v={role:"button",tabIndex:n&&!r?void 0:0,...c,onClick:A,onKeyUp:m,onKeyDown:f,"aria-disabled":n||r||l};return e==="a"&&d&&(v.href=void 0),v}}const Sr=()=>{},jV={controller:{active:Sr,blur:Sr,find:Sr,first:Sr,focus:Sr,focusLastActive:Sr,scrollActiveIntoView:Sr,last:Sr,next:Sr,prev:Sr,showAttributes:Sr,hideAttributes:Sr,showFocusVisibleAttributes:Sr,hideFocusVisibleAttributes:Sr}},Ck=g.createContext(void 0),T8=Ck.Provider,I8=()=>{var e;return(e=g.useContext(Ck))!==null&&e!==void 0?e:jV},NV=()=>!!g.useContext(Ck);function CV(e){const{matchOption:t}=e,{targetDocument:n}=Ge(),r=g.useRef(null),o=g.useRef(null),i=g.useCallback(c=>Pn(c)&&t(c)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,[t]),a=g.useCallback(c=>{c&&n?(o.current=c,r.current=n.createTreeWalker(c,NodeFilter.SHOW_ELEMENT,i)):o.current=null},[n,i]);return{optionWalker:g.useMemo(()=>({first:()=>!r.current||!o.current?null:(r.current.currentNode=o.current,r.current.firstChild()),last:()=>!r.current||!o.current?null:(r.current.currentNode=o.current,r.current.lastChild()),next:()=>r.current?r.current.nextNode():null,prev:()=>r.current?r.current.previousNode():null,find:(c,l)=>{if(!r.current||!o.current)return null;const d=l?n==null?void 0:n.getElementById(l):null;r.current.currentNode=d??o.current;let A=r.current.currentNode;for(;A&&!c(A.id);)A=r.current.nextNode();return A},setCurrent:c=>{r.current&&(r.current.currentNode=c)}}),[n]),listboxCallbackRef:a}}const rC="data-activedescendant",Dl="data-activedescendant-focusvisible",oC=e=>{if(!e)return;const t=P8(e.parentElement);if(!t)return;const{offsetHeight:n}=e,r=D8(e,t),{scrollMarginTop:o,scrollMarginBottom:i}=TV(e),{offsetHeight:a,scrollTop:s}=t,c=r-os+a,d=2;c?t.scrollTo(0,r-o-d):l&&t.scrollTo(0,r+n+i-a+d)},P8=e=>e?e.scrollHeight>e.offsetHeight?e:P8(e.parentElement):null,D8=(e,t)=>!e||e===t?0:e.contains(t)?t.offsetTop*-1:e.offsetTop+D8(e.offsetParent,t),TV=e=>{var t;const n=(t=e.ownerDocument)===null||t===void 0?void 0:t.defaultView;if(!n)return{scrollMarginTop:0,scrollMarginBottom:0};const r=n.getComputedStyle(e);var o;const i=(o=I0(r.scrollMarginTop))!==null&&o!==void 0?o:I0(r.scrollMarginBlockStart);var a;const s=(a=I0(r.scrollMarginBottom))!==null&&a!==void 0?a:I0(r.scrollMarginBlockEnd);return{scrollMarginTop:i,scrollMarginBottom:s}},I0=e=>e?parseInt(e,10):0,IV=e=>new CustomEvent("activedescendantchange",{bubbles:!0,cancelable:!1,composed:!0,detail:e});function M8(e){const{imperativeRef:t,matchOption:n}=e,r=g.useRef(!1),o=g.useRef(!0),i=g.useRef(null),a=g.useRef(null),s=g.useRef(null),c=g.useRef(!0),l=g.useCallback(()=>{var x;(x=s.current)===null||x===void 0||x.removeAttribute("aria-activedescendant")},[]),d=g.useCallback(x=>{if(x&&(i.current=x),c.current&&i.current){var k;(k=s.current)===null||k===void 0||k.setAttribute("aria-activedescendant",i.current)}},[]);p8(x=>{r.current=x;const k=p();k&&(x&&o.current?k.setAttribute(Dl,""):k.removeAttribute(Dl))});const A=fe(n),f=g.useRef(null),{optionWalker:m,listboxCallbackRef:v}=CV({matchOption:A}),p=g.useCallback(()=>{var x;return(x=f.current)===null||x===void 0?void 0:x.querySelector(`#${i.current}`)},[f]),y=g.useCallback(x=>{o.current=x;const k=p();k&&(x&&r.current?k.setAttribute(Dl,""):k.removeAttribute(Dl))},[p]),b=g.useCallback(()=>{const x=p();x&&(x.removeAttribute(rC),x.removeAttribute(Dl)),l(),a.current=i.current,i.current=null;var k;return(k=x==null?void 0:x.id)!==null&&k!==void 0?k:null},[p,l]),h=g.useCallback(x=>{if(!x)return;const k=b();oC(x),d(x.id),x.setAttribute(rC,""),r.current&&o.current&&x.setAttribute(Dl,"");const S=IV({id:x.id,previousId:k});x.dispatchEvent(S)},[b,d]),w=g.useMemo(()=>({first:({passive:x}={})=>{const k=m.first();return x||h(k),k==null?void 0:k.id},last:({passive:x}={})=>{const k=m.last();return x||h(k),k==null?void 0:k.id},next:({passive:x}={})=>{const k=p();if(!k)return;m.setCurrent(k);const S=m.next();return x||h(S),S==null?void 0:S.id},prev:({passive:x}={})=>{const k=p();if(!k)return;m.setCurrent(k);const S=m.prev();return x||h(S),S==null?void 0:S.id},blur:()=>{b()},active:()=>{var x;return(x=p())===null||x===void 0?void 0:x.id},focus:x=>{if(!f.current)return;const k=f.current.querySelector(`#${x}`);k&&h(k)},focusLastActive:()=>{if(!f.current||!a.current)return;const x=f.current.querySelector(`#${a.current}`);if(x)return h(x),!0},find(x,{passive:k,startFrom:S}={}){const N=m.find(x,S);return k||h(N),N==null?void 0:N.id},scrollActiveIntoView:()=>{if(!f.current)return;const x=p();x&&oC(x)},showAttributes(){c.current=!0,d()},hideAttributes(){c.current=!1,l()},showFocusVisibleAttributes(){y(!0)},hideFocusVisibleAttributes(){y(!1)}}),[m,f,d,l,h,b,p,y]);return g.useImperativeHandle(t,()=>w),{listboxRef:ot(f,v),activeParentRef:s,controller:w}}const PV=$({root:{mc9l5x:"f1w7gpdv",Bg96gwp:"fez10in",ycbfsm:"fg4l7m0"},rtl:{Bz10aip:"f13rod7r"}},{d:[".f1w7gpdv{display:inline;}",".fez10in{line-height:0;}",".f13rod7r{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}"],t:["@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}"]}),DV=(e,t)=>{const{title:n,primaryFill:r="currentColor",...o}=e,i={...o,title:void 0,fill:r},a=PV(),s=pU();return i.className=G(a.root,(t==null?void 0:t.flipInRtl)&&(s==null?void 0:s.textDirection)==="rtl"&&a.rtl,i.className),n&&(i["aria-label"]=n),!i["aria-label"]&&!i["aria-labelledby"]?i["aria-hidden"]=!0:i.role="img",i},we=(e,t,n,r)=>{const o=t==="1em"?"20":t,i=g.forwardRef((a,s)=>{const c={...DV(a,{flipInRtl:r==null?void 0:r.flipInRtl}),ref:s,width:t,height:t,viewBox:`0 0 ${o} ${o}`,xmlns:"http://www.w3.org/2000/svg"};return g.createElement("svg",c,...n.map(l=>g.createElement("path",{d:l,fill:c.fill})))});return i.displayName=e,i},R8=we("ArrowDownRegular","1em",["M16.87 10.84a.5.5 0 1 0-.74-.68l-5.63 6.17V2.5a.5.5 0 0 0-1 0v13.83l-5.63-6.17a.5.5 0 0 0-.74.68l6.31 6.91a.75.75 0 0 0 1.11 0l6.32-6.91Z"]),z8=we("ArrowUpRegular","1em",["M3.13 9.16a.5.5 0 1 0 .74.68L9.5 3.67V17.5a.5.5 0 1 0 1 0V3.67l5.63 6.17a.5.5 0 0 0 .74-.68l-6.32-6.92a.75.75 0 0 0-1.1 0L3.13 9.16Z"]),MV=we("CalendarMonthRegular","1em",["M14.5 3A2.5 2.5 0 0 1 17 5.5v9a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 3 14.5v-9A2.5 2.5 0 0 1 5.5 3h9Zm0 1h-9C4.67 4 4 4.67 4 5.5v9c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-9c0-.83-.67-1.5-1.5-1.5ZM7 11a1 1 0 1 1 0 2 1 1 0 0 1 0-2Zm3 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2ZM7 7a1 1 0 1 1 0 2 1 1 0 0 1 0-2Zm3 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2Zm3 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"]),RV=we("CheckmarkFilled","1em",["M7.03 13.9 3.56 10a.75.75 0 0 0-1.12 1l4 4.5c.29.32.79.34 1.09.03l10.5-10.5a.75.75 0 0 0-1.06-1.06l-9.94 9.94Z"]),zV=we("CheckmarkCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm3.36 5.65a.5.5 0 0 0-.64-.06l-.07.06L9 11.3 7.35 9.65l-.07-.06a.5.5 0 0 0-.7.7l.07.07 2 2 .07.06c.17.11.4.11.56 0l.07-.06 4-4 .07-.08a.5.5 0 0 0-.06-.63Z"]),EV=we("ChevronDownRegular","1em",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),BV=we("CircleFilled","1em",["M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Z"]),FV=we("DismissFilled","1em",["m3.9 4.05.07-.08a.75.75 0 0 1 .98-.07l.08.07L10 8.94l4.97-4.97a.75.75 0 0 1 .98-.07l.08.07c.27.27.3.68.07.98l-.07.08L11.06 10l4.97 4.97c.27.27.3.68.07.98l-.07.08a.75.75 0 0 1-.98.07l-.08-.07L10 11.06l-4.97 4.97a.75.75 0 0 1-.98.07l-.08-.07a.75.75 0 0 1-.07-.98l.07-.08L8.94 10 3.97 5.03a.75.75 0 0 1-.07-.98l.07-.08-.07.08Z"]),Tk=we("DismissRegular","1em",["m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"]),OV=we("DismissCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16ZM7.8 7.11a.5.5 0 0 0-.63.06l-.06.07a.5.5 0 0 0 .06.64L9.3 10l-2.12 2.12-.06.07a.5.5 0 0 0 .06.64l.07.06c.2.13.47.11.64-.06L10 10.7l2.12 2.12.07.06c.2.13.46.11.64-.06l.06-.07a.5.5 0 0 0-.06-.64L10.7 10l2.12-2.12.06-.07a.5.5 0 0 0-.06-.64l-.07-.06a.5.5 0 0 0-.64.06L10 9.3 7.88 7.17l-.07-.06Z"]),LV=we("InfoFilled","1em",["M18 10a8 8 0 1 0-16 0 8 8 0 0 0 16 0ZM9.5 8.91a.5.5 0 0 1 1 0V13.6a.5.5 0 0 1-1 0V8.9Zm-.25-2.16a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Z"]),WV=we("PersonRegular","1em",["M10 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM7 6a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm-2 5a2 2 0 0 0-2 2c0 1.7.83 2.97 2.13 3.8A9.14 9.14 0 0 0 10 18c1.85 0 3.58-.39 4.87-1.2A4.35 4.35 0 0 0 17 13a2 2 0 0 0-2-2H5Zm-1 2a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1c0 1.3-.62 2.28-1.67 2.95A8.16 8.16 0 0 1 10 17a8.16 8.16 0 0 1-4.33-1.05A3.36 3.36 0 0 1 4 13Z"]),UV=we("WarningFilled","1em",["M8.68 2.79a1.5 1.5 0 0 1 2.64 0l6.5 12A1.5 1.5 0 0 1 16.5 17h-13a1.5 1.5 0 0 1-1.32-2.21l6.5-12ZM10.5 7.5a.5.5 0 0 0-1 0v4a.5.5 0 0 0 1 0v-4Zm.25 6.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"]),HV=we("ArrowForwardDownPerson24Regular","24",["m19.69 9.5-2.96-2.96a.75.75 0 0 1 .97-1.14l.09.08 4.24 4.24c.27.27.3.68.07.98l-.07.08-4.24 4.24a.75.75 0 0 1-1.14-.97l.08-.09L19.69 11H14a7.75 7.75 0 0 1-7.75-7.5v-.25a.75.75 0 0 1 1.5 0 6.25 6.25 0 0 0 6.02 6.25H19.7ZM9 13.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Zm2 5.38C11 20.43 9.71 22 6.5 22S2 20.44 2 18.88v-.1c0-.99.8-1.78 1.77-1.78h5.46c.98 0 1.77.8 1.77 1.77v.1Z"],{flipInRtl:!0}),E8=we("Checkmark12Filled","12",["M9.76 3.2c.3.29.32.76.04 1.06l-4.25 4.5a.75.75 0 0 1-1.08.02L2.22 6.53a.75.75 0 0 1 1.06-1.06l1.7 1.7L8.7 3.24a.75.75 0 0 1 1.06-.04Z"]),ZV=we("Checkmark16Filled","16",["M14.05 3.49c.28.3.27.77-.04 1.06l-7.93 7.47A.85.85 0 0 1 4.9 12L2.22 9.28a.75.75 0 1 1 1.06-1.06l2.24 2.27 7.47-7.04a.75.75 0 0 1 1.06.04Z"]),VV=we("CheckmarkCircle24Regular","24",["M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17Zm-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.13.98l-.07.08-5 5a.75.75 0 0 1-.98.07l-.08-.07-2.5-2.5a.75.75 0 0 1 .98-1.13l.08.07 1.97 1.97 4.47-4.47-4.47 4.47Z"]),Yf=we("ChevronDown20Regular","20",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),qV=we("ChevronRight12Regular","12",["M4.65 2.15a.5.5 0 0 0 0 .7L7.79 6 4.65 9.15a.5.5 0 1 0 .7.7l3.5-3.5a.5.5 0 0 0 0-.7l-3.5-3.5a.5.5 0 0 0-.7 0Z"]),_V=we("ChevronRight20Regular","20",["M7.65 4.15c.2-.2.5-.2.7 0l5.49 5.46c.21.22.21.57 0 .78l-5.49 5.46a.5.5 0 0 1-.7-.7L12.8 10 7.65 4.85a.5.5 0 0 1 0-.7Z"]),Ik=we("Dismiss20Regular","20",["m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"]),B8=we("Dismiss24Regular","24",["m4.4 4.55.07-.08a.75.75 0 0 1 .98-.07l.08.07L12 10.94l6.47-6.47a.75.75 0 1 1 1.06 1.06L13.06 12l6.47 6.47c.27.27.3.68.07.98l-.07.08a.75.75 0 0 1-.98.07l-.08-.07L12 13.06l-6.47 6.47a.75.75 0 0 1-1.06-1.06L10.94 12 4.47 5.53a.75.75 0 0 1-.07-.98l.07-.08-.07.08Z"]),XV=we("ExpandUpRight24Regular","24",["M4.5 6.25c0-.97.78-1.75 1.75-1.75h4a.75.75 0 0 0 0-1.5h-4A3.25 3.25 0 0 0 3 6.25v11.5C3 19.55 4.46 21 6.25 21h11.5c1.8 0 3.25-1.46 3.25-3.25v-4a.75.75 0 0 0-1.5 0v4c0 .97-.78 1.75-1.75 1.75H12v-4.75A2.75 2.75 0 0 0 9.25 12H4.5V6.25Zm0 7.25h4.75c.69 0 1.25.56 1.25 1.25v4.75H6.25c-.97 0-1.75-.78-1.75-1.75V13.5ZM13 3.75c0-.41.34-.75.75-.75h6.5c.41 0 .75.34.75.75v6.5a.75.75 0 0 1-1.5 0V5.56l-5.22 5.22a.75.75 0 0 1-1.06-1.06l5.22-5.22h-4.69a.75.75 0 0 1-.75-.75Z"]),F8=we("Filter20Regular","20",["M7.5 13h5a.5.5 0 0 1 .09 1H7.5a.5.5 0 0 1-.09-1h5.09-5Zm-2-4h9a.5.5 0 0 1 .09 1H5.5a.5.5 0 0 1-.09-1h9.09-9Zm-2-4h13a.5.5 0 0 1 .09 1H3.5a.5.5 0 0 1-.09-1H16.5h-13Z"]),iC=we("PresenceAvailable10Filled","10",["M5 10A5 5 0 1 0 5 0a5 5 0 0 0 0 10Zm2.1-5.9L4.85 6.35a.5.5 0 0 1-.7 0l-1-1a.5.5 0 0 1 .7-.7l.65.64 1.9-1.9a.5.5 0 0 1 .7.71Z"]),aC=we("PresenceAvailable10Regular","10",["M5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0ZM1 5a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm6.1-1.6c.2.2.2.5 0 .7L4.85 6.35a.5.5 0 0 1-.7 0l-1-1a.5.5 0 1 1 .7-.7l.65.64 1.9-1.9c.2-.19.5-.19.7 0Z"]),GV=we("PresenceAvailable12Filled","12",["M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm2.53-6.72L5.78 8.03c-.3.3-.77.3-1.06 0l-1-1a.75.75 0 0 1 1.06-1.06l.47.47 2.22-2.22a.75.75 0 0 1 1.06 1.06Z"]),YV=we("PresenceAvailable12Regular","12",["M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM1.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0Zm7.03-1.78c.3.3.3.77 0 1.06L5.78 8.03c-.3.3-.77.3-1.06 0l-1-1a.75.75 0 0 1 1.06-1.06l.47.47 2.22-2.22c.3-.3.77-.3 1.06 0Z"]),KV=we("PresenceAvailable16Filled","16",["M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16Zm3.7-9.3-4 4a1 1 0 0 1-1.41 0l-2-2a1 1 0 1 1 1.42-1.4L7 8.58l3.3-3.3a1 1 0 0 1 1.4 1.42Z"]),JV=we("PresenceAvailable16Regular","16",["M11.7 6.7a1 1 0 0 0-1.4-1.4L7 8.58l-1.3-1.3a1 1 0 0 0-1.4 1.42l2 2a1 1 0 0 0 1.4 0l4-4ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]),sC=we("PresenceAvailable20Filled","20",["M10 20a10 10 0 1 0 0-20 10 10 0 0 0 0 20Zm4.2-11.8-4.5 4.5a1 1 0 0 1-1.4 0l-2-2a1 1 0 1 1 1.4-1.4L9 10.58l3.8-3.8a1 1 0 1 1 1.4 1.42Z"]),cC=we("PresenceAvailable20Regular","20",["M10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 10a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm12.2-3.2a1 1 0 0 1 0 1.4l-4.5 4.5a1 1 0 0 1-1.4 0l-2-2a1 1 0 0 1 1.4-1.4L9 10.58l3.8-3.8a1 1 0 0 1 1.4 0Z"]),lC=we("PresenceAway10Filled","10",["M5 10A5 5 0 1 0 5 0a5 5 0 0 0 0 10Zm0-7v1.8l1.35 1.35a.5.5 0 1 1-.7.7l-1.5-1.5A.5.5 0 0 1 4 5V3a.5.5 0 0 1 1 0Z"]),QV=we("PresenceAway12Filled","12",["M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm.5-8.75v2.4l1.49 1.28A.75.75 0 1 1 7 8.07l-1.75-1.5A.75.75 0 0 1 5 6V3.25a.75.75 0 0 1 1.5 0Z"]),$V=we("PresenceAway16Filled","16",["M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16Zm.5-11.5v3.02l2.12 1.7a1 1 0 1 1-1.24 1.56l-2.5-2A1 1 0 0 1 6.5 8V4.5a1 1 0 0 1 2 0Z"]),dC=we("PresenceAway20Filled","20",["M10 20a10 10 0 1 0 0-20 10 10 0 0 0 0 20Zm0-14V9.6l2.7 2.7a1 1 0 0 1-1.4 1.42l-3-3A1 1 0 0 1 8 10V6a1 1 0 1 1 2 0Z"]),uC=we("PresenceBlocked10Regular","10",["M10 5A5 5 0 1 0 0 5a5 5 0 0 0 10 0ZM9 5a4 4 0 0 1-6.45 3.16l5.61-5.61C8.69 3.22 9 4.08 9 5ZM7.45 1.84 1.84 7.45a4 4 0 0 1 5.61-5.61Z"]),eq=we("PresenceBlocked12Regular","12",["M12 6A6 6 0 1 1 0 6a6 6 0 0 1 12 0Zm-1.5 0c0-.97-.3-1.87-.83-2.6L3.39 9.66A4.5 4.5 0 0 0 10.5 6ZM8.6 2.33a4.5 4.5 0 0 0-6.28 6.28l6.29-6.28Z"]),tq=we("PresenceBlocked16Regular","16",["M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-2 0c0-1.3-.41-2.5-1.1-3.48L4.51 12.9A6 6 0 0 0 14 8Zm-2.52-4.9a6 6 0 0 0-8.37 8.37l8.37-8.36Z"]),AC=we("PresenceBlocked20Regular","20",["M20 10a10 10 0 1 0-20 0 10 10 0 0 0 20 0Zm-2 0a8 8 0 0 1-12.9 6.32L16.31 5.09A7.97 7.97 0 0 1 18 10Zm-3.1-6.32L3.69 14.91A8 8 0 0 1 14.91 3.68Z"]),fC=we("PresenceBusy10Filled","10",["M10 5A5 5 0 1 1 0 5a5 5 0 0 1 10 0Z"]),nq=we("PresenceBusy12Filled","12",["M12 6A6 6 0 1 1 0 6a6 6 0 0 1 12 0Z"]),rq=we("PresenceBusy16Filled","16",["M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Z"]),mC=we("PresenceBusy20Filled","20",["M20 10a10 10 0 1 1-20 0 10 10 0 0 1 20 0Z"]),vC=we("PresenceDnd10Filled","10",["M5 10A5 5 0 1 0 5 0a5 5 0 0 0 0 10ZM3.5 4.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1Z"]),pC=we("PresenceDnd10Regular","10",["M5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0ZM1 5a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm2 0c0-.28.22-.5.5-.5h3a.5.5 0 0 1 0 1h-3A.5.5 0 0 1 3 5Z"]),oq=we("PresenceDnd12Filled","12",["M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12ZM3.75 5.25h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5Z"]),iq=we("PresenceDnd12Regular","12",["M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM1.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM3 6c0-.41.34-.75.75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 3 6Z"]),aq=we("PresenceDnd16Filled","16",["M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16ZM5.25 7h5.5a1 1 0 1 1 0 2h-5.5a1 1 0 1 1 0-2Z"]),sq=we("PresenceDnd16Regular","16",["M5.25 7a1 1 0 0 0 0 2h5.5a1 1 0 1 0 0-2h-5.5ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]),gC=we("PresenceDnd20Filled","20",["M10 20a10 10 0 1 0 0-20 10 10 0 0 0 0 20ZM7 9h6a1 1 0 1 1 0 2H7a1 1 0 1 1 0-2Z"]),hC=we("PresenceDnd20Regular","20",["M10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 10a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm4 0a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1Z"]),bC=we("PresenceOffline10Regular","10",["M6.85 3.15c.2.2.2.5 0 .7L5.71 5l1.14 1.15a.5.5 0 1 1-.7.7L5 5.71 3.85 6.85a.5.5 0 1 1-.7-.7L4.29 5 3.15 3.85a.5.5 0 1 1 .7-.7L5 4.29l1.15-1.14c.2-.2.5-.2.7 0ZM0 5a5 5 0 1 1 10 0A5 5 0 0 1 0 5Zm5-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z"]),cq=we("PresenceOffline12Regular","12",["M8.03 3.97c.3.3.3.77 0 1.06L7.06 6l.97.97a.75.75 0 0 1-1.06 1.06L6 7.06l-.97.97a.75.75 0 0 1-1.06-1.06L4.94 6l-.97-.97a.75.75 0 0 1 1.06-1.06l.97.97.97-.97c.3-.3.77-.3 1.06 0ZM0 6a6 6 0 1 1 12 0A6 6 0 0 1 0 6Zm6-4.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z"]),lq=we("PresenceOffline16Regular","16",["M10.7 5.3a1 1 0 0 1 0 1.4L9.42 8l1.3 1.3a1 1 0 0 1-1.42 1.4L8 9.42l-1.3 1.3a1 1 0 0 1-1.4-1.42L6.58 8l-1.3-1.3a1 1 0 0 1 1.42-1.4L8 6.58l1.3-1.3a1 1 0 0 1 1.4 0ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]),yC=we("PresenceOffline20Regular","20",["M13.7 6.3a1 1 0 0 1 0 1.4L11.42 10l2.3 2.3a1 1 0 0 1-1.42 1.4L10 11.42l-2.3 2.3a1 1 0 0 1-1.4-1.42L8.58 10l-2.3-2.3a1 1 0 0 1 1.42-1.4L10 8.58l2.3-2.3a1 1 0 0 1 1.4 0ZM0 10a10 10 0 1 1 20 0 10 10 0 0 1-20 0Zm10-8a8 8 0 1 0 0 16 8 8 0 0 0 0-16Z"]),wC=we("PresenceOof10Regular","10",["M5.35 3.85a.5.5 0 1 0-.7-.7l-1.5 1.5a.5.5 0 0 0 0 .7l1.5 1.5a.5.5 0 1 0 .7-.7L4.7 5.5h1.8a.5.5 0 1 0 0-1H4.7l.65-.65ZM5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0ZM1 5a4 4 0 1 1 8 0 4 4 0 0 1-8 0Z"]),dq=we("PresenceOof12Regular","12",["M6.28 4.53a.75.75 0 0 0-1.06-1.06l-2 2c-.3.3-.3.77 0 1.06l2 2a.75.75 0 0 0 1.06-1.06l-.72-.72h2.69a.75.75 0 1 0 0-1.5h-2.7l.73-.72ZM6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM1.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0Z"]),uq=we("PresenceOof16Regular","16",["M8.2 6.2a1 1 0 1 0-1.4-1.4L4.3 7.3a1 1 0 0 0 0 1.4l2.5 2.5a1 1 0 0 0 1.4-1.4L7.42 9H11a1 1 0 1 0 0-2H7.41l.8-.8ZM8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0ZM2 8a6 6 0 1 1 12 0A6 6 0 0 1 2 8Z"]),xC=we("PresenceOof20Regular","20",["M10.7 7.7A1 1 0 1 0 9.28 6.3l-3 3a1 1 0 0 0 0 1.41l3 3a1 1 0 1 0 1.42-1.41l-1.3-1.3H13a1 1 0 1 0 0-2H9.4l1.3-1.29ZM10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 10a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"]),kC=we("PresenceUnknown10Regular","10",["M5 1a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 5a5 5 0 1 1 10 0A5 5 0 0 1 0 5Z"]),Aq=we("PresenceUnknown12Regular","12",["M6 1.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9ZM0 6a6 6 0 1 1 12 0A6 6 0 0 1 0 6Z"]),fq=we("PresenceUnknown16Regular","16",["M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Z"]),SC=we("PresenceUnknown20Regular","20",["M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM0 10a10 10 0 1 1 20 0 10 10 0 0 1-20 0Z"]),mq=we("Square12Filled","12",["M2 4c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Z"]),vq=we("Square16Filled","16",["M2 4.5A2.5 2.5 0 0 1 4.5 2h7A2.5 2.5 0 0 1 14 4.5v7a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 11.5v-7Z"]),pq="fui-Icon-filled",gq="fui-Icon-regular",hq=$({root:{mc9l5x:"fjseox"},visible:{mc9l5x:"f1w7gpdv"}},{d:[".fjseox{display:none;}",".f1w7gpdv{display:inline;}"]}),bq=(e,t)=>{const n=r=>{const{className:o,filled:i,...a}=r,s=hq();return g.createElement(g.Fragment,null,g.createElement(e,Object.assign({},a,{className:G(s.root,i&&s.visible,pq,o)})),g.createElement(t,Object.assign({},a,{className:G(s.root,!i&&s.visible,gq,o)})))};return n.displayName="CompoundIcon",n},O8={durationUltraFast:50,durationFaster:100,durationFast:150,durationNormal:200,durationGentle:250,durationSlow:300,durationSlower:400,durationUltraSlow:500},L8={curveAccelerateMax:"cubic-bezier(0.9,0.1,1,0.2)",curveAccelerateMid:"cubic-bezier(1,0,1,1)",curveAccelerateMin:"cubic-bezier(0.8,0,0.78,1)",curveDecelerateMax:"cubic-bezier(0.1,0.9,0.2,1)",curveDecelerateMid:"cubic-bezier(0,0,0,1)",curveDecelerateMin:"cubic-bezier(0.33,0,0.1,1)",curveEasyEaseMax:"cubic-bezier(0.8,0,0.2,1)",curveEasyEase:"cubic-bezier(0.33,0,0.67,1)",curveLinear:"cubic-bezier(0,0,1,1)"},fr={...O8,...L8};function yq(){return g.useCallback((e,t,n)=>{const r=Array.isArray(t)?t:[t],{isReducedMotion:o}=n,i=r.map(a=>{const{keyframes:s,...c}=a,l=e.animate(s,{fill:"forwards",...c,...o&&{duration:1}});return l.persist(),l});return{set playbackRate(a){i.forEach(s=>{s.playbackRate=a})},setMotionEndCallbacks(a,s){Promise.all(i.map(c=>c.finished)).then(()=>{a()}).catch(c=>{var l;const d=(l=e.ownerDocument.defaultView)===null||l===void 0?void 0:l.DOMException;if(d&&c instanceof d&&c.name==="AbortError"){s();return}throw c})},cancel:()=>{i.forEach(a=>{a.cancel()})},pause:()=>{i.forEach(a=>{a.pause()})},play:()=>{i.forEach(a=>{a.play()})},finish:()=>{i.forEach(a=>{a.finish()})}}},[])}function wq(){"use no memo";return yq()}function xq(e){const t=g.useRef();return g.useImperativeHandle(e,()=>({setPlayState:n=>{if(n==="running"){var r;(r=t.current)===null||r===void 0||r.play()}if(n==="paused"){var o;(o=t.current)===null||o===void 0||o.pause()}},setPlaybackRate:n=>{t.current&&(t.current.playbackRate=n)}})),t}const kq="screen and (prefers-reduced-motion: reduce)";function Sq(){const{targetDocument:e}=Ge();var t;const n=(t=e==null?void 0:e.defaultView)!==null&&t!==void 0?t:null,r=g.useRef(!1),o=g.useCallback(()=>r.current,[]);return g.useEffect(()=>{if(n===null||typeof n.matchMedia!="function")return;const i=n.matchMedia(kq);i.matches&&(r.current=!0);const a=s=>{r.current=s.matches};return i.addEventListener("change",a),()=>{i.removeEventListener("change",a)}},[n]),o}function jq(e){try{const t=g.Children.only(e);if(typeof t.type=="string"||uU.isForwardRef(t))return t}catch{}throw new Error(["@fluentui/react-motion: Invalid child element.",` `,"Motion factories require a single child element to be passed. ","That element element should support ref forwarding i.e. it should be either an intrinsic element (e.g. div) or a component that uses React.forwardRef()."].join(""))}const Nq=g.createContext(void 0);function Cq(e=!1,t=!1){const n=g.useRef(t?e:!0),r=ZW(),o=g.useCallback(i=>{n.current!==i&&(n.current=i,r())},[r]);return g.useEffect(()=>{e&&(n.current=e)}),[e||n.current,o]}const W8=Symbol("MOTION_DEFINITION");function Tq(e,t,n){return!e&&t&&!!n}function _h(e){return Object.assign(t=>{"use no memo";const r={...g.useContext(Nq),...t},{appear:o,children:i,imperativeRef:a,onExit:s,onMotionFinish:c,onMotionStart:l,onMotionCancel:d,visible:A,unmountOnExit:f,...m}=r,v=m,[p,y]=Cq(A,f),b=jq(i),h=xq(a),w=g.useRef(),x=ot(w,b.ref),k=g.useRef({appear:o,params:v}),S=wq(),N=LD(),C=Sq(),M=fe(F=>{l==null||l(null,{direction:F})}),j=fe(F=>{c==null||c(null,{direction:F}),F==="exit"&&f&&(y(!1),s==null||s())}),T=fe(F=>{d==null||d(null,{direction:F})});return nr(()=>{k.current={appear:o,params:v}}),nr(()=>{const F=w.current;if(!F||Tq(k.current.appear,N,A))return;const H=typeof e=="function"?e({element:F,...k.current.params}):e,R=A?H.enter:H.exit,O=A?"enter":"exit",_=!A&&N;_||M(O);const Y=S(F,R,{isReducedMotion:C()});if(_){Y.finish();return}return h.current=Y,Y.setMotionEndCallbacks(()=>j(O),()=>T(O)),()=>{Y.cancel()}},[S,h,C,j,M,T,A]),p?g.cloneElement(b,{ref:x}):null},{[W8]:typeof e=="function"?e:()=>e})}function Iq(e,t){return(...n)=>{const{enter:r,exit:o}=e(...n);return{enter:{...r,...t.all,...t.enter},exit:{...o,...t.all,...t.exit}}}}function U8(e,t){return _h(Iq(e[W8],t))}function lu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Pk(e,t){const{as:n,children:r,...o}=e??{};if(e===null){const a=!t.defaultProps.visible&&t.defaultProps.unmountOnExit,s=(c,l)=>a?null:g.createElement(g.Fragment,null,l.children);return{[qp]:s,[ou]:t.elementType}}const i={...t.defaultProps,...o,[ou]:t.elementType};return typeof r=="function"&&(i[qp]=r),i}const Pq=({element:e,animateOpacity:t=!0})=>{const n=t?0:1,r=1,o="0",i=`${e.scrollHeight}px`,a="hidden",s=fr.durationNormal,c=fr.curveEasyEaseMax;return{enter:{duration:s,easing:c,keyframes:[{opacity:n,maxHeight:o,overflow:a},{opacity:r,maxHeight:i,offset:.9999,overflow:a},{opacity:r,maxHeight:"unset",overflow:a}]},exit:{duration:s,easing:c,keyframes:[{opacity:r,maxHeight:i,overflow:a},{opacity:n,maxHeight:o,overflow:a}]}}},Kf=_h(Pq);U8(Kf,{all:{duration:fr.durationUltraFast}});U8(Kf,{enter:{duration:fr.durationSlow,easing:fr.curveEasyEaseMax},exit:{duration:fr.durationNormal,easing:fr.curveEasyEaseMax}});const Dq=e=>ut(e.root,{children:[e.initials&&Q(e.initials,{}),e.icon&&Q(e.icon,{}),e.image&&Q(e.image,{}),e.badge&&Q(e.badge,{}),e.activeAriaLabelElement]}),Mq=/[\(\[\{][^\)\]\}]*[\)\]\}]/g,Rq=/[\0-\u001F\!-/:-@\[-`\{-\u00BF\u0250-\u036F\uD800-\uFFFF]/g,zq=/^\d+[\d\s]*(:?ext|x|)\s*\d+$/i,Eq=/\s+/g,Bq=/[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uAC00-\uD7AF\uD7B0-\uD7FF\u3040-\u309F\u30A0-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD869][\uDC00-\uDED6]/;function Fq(e,t,n){let r="";const o=e.split(" ");return o.length!==0&&(r+=o[0].charAt(0).toUpperCase()),n||(o.length===2?r+=o[1].charAt(0).toUpperCase():o.length===3&&(r+=o[2].charAt(0).toUpperCase())),t&&r.length>1?r.charAt(1)+r.charAt(0):r}function Oq(e){return e=e.replace(Mq,""),e=e.replace(Rq,""),e=e.replace(Eq," "),e=e.trim(),e}function Lq(e,t,n){return!e||(e=Oq(e),Bq.test(e)||!(n!=null&&n.allowPhoneInitials)&&zq.test(e))?"":Fq(e,t,n==null?void 0:n.firstInitialOnly)}const Wq=(e,t)=>{const{shape:n="circular",size:r="medium",iconPosition:o="before",appearance:i="filled",color:a="brand"}=e;return{shape:n,size:r,iconPosition:o,appearance:i,color:a,components:{root:"div",icon:"span"},root:be(ze("div",{ref:t,...e}),{elementType:"div"}),icon:Te(e.icon,{elementType:"span"})}},Uq=e=>ut(e.root,{children:[e.iconPosition==="before"&&e.icon&&Q(e.icon,{}),e.root.children,e.iconPosition==="after"&&e.icon&&Q(e.icon,{})]}),Hq={tiny:lC,"extra-small":lC,small:QV,medium:$V,large:dC,"extra-large":dC},Zq={tiny:aC,"extra-small":aC,small:YV,medium:JV,large:cC,"extra-large":cC},Vq={tiny:iC,"extra-small":iC,small:GV,medium:KV,large:sC,"extra-large":sC},qq={tiny:uC,"extra-small":uC,small:eq,medium:tq,large:AC,"extra-large":AC},_q={tiny:fC,"extra-small":fC,small:nq,medium:rq,large:mC,"extra-large":mC},Xq={tiny:vC,"extra-small":vC,small:oq,medium:aq,large:gC,"extra-large":gC},Gq={tiny:pC,"extra-small":pC,small:iq,medium:sq,large:hC,"extra-large":hC},a1={tiny:wC,"extra-small":wC,small:dq,medium:uq,large:xC,"extra-large":xC},Yq={tiny:bC,"extra-small":bC,small:cq,medium:lq,large:yC,"extra-large":yC},jC={tiny:kC,"extra-small":kC,small:Aq,medium:fq,large:SC,"extra-large":SC},Kq=(e,t,n)=>{switch(e){case"available":return t?Zq[n]:Vq[n];case"away":return t?a1[n]:Hq[n];case"blocked":return qq[n];case"busy":return t?jC[n]:_q[n];case"do-not-disturb":return t?Gq[n]:Xq[n];case"offline":return t?a1[n]:Yq[n];case"out-of-office":return a1[n];case"unknown":return jC[n]}},NC={busy:"busy","out-of-office":"out of office",away:"away",available:"available",offline:"offline","do-not-disturb":"do not disturb",unknown:"unknown",blocked:"blocked"},Jq=(e,t)=>{const{size:n="medium",status:r="available",outOfOffice:o=!1}=e,i=NC[r],a=e.outOfOffice&&e.status!=="out-of-office"?` ${NC["out-of-office"]}`:"",s=Kq(r,o,n);return{...Wq({"aria-label":i+a,role:"img",...e,size:n,icon:Te(e.icon,{defaultProps:{children:s?g.createElement(s,null):null},renderByDefault:!0,elementType:"span"})},t),status:r,outOfOffice:o}},CC={root:"fui-PresenceBadge",icon:"fui-PresenceBadge__icon"},Qq=e=>e==="busy"||e==="do-not-disturb"||e==="blocked",$q=Re("r832ydo",null,[".r832ydo{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;border-radius:var(--borderRadiusCircular);background-color:var(--colorNeutralBackground1);padding:1px;background-clip:content-box;}"]),e_=Re("r11ag4qr",null,[".r11ag4qr{display:flex;margin:-1px;}"]),t_=$({statusBusy:{sj55zd:"fvi85wt"},statusAway:{sj55zd:"f14k8a89"},statusAvailable:{sj55zd:"fqa5hgp"},statusOffline:{sj55zd:"f11d4kpn"},statusOutOfOffice:{sj55zd:"fdce8r3"},statusUnknown:{sj55zd:"f11d4kpn"},outOfOffice:{sj55zd:"fr0bkrk"},outOfOfficeAvailable:{sj55zd:"fqa5hgp"},outOfOfficeBusy:{sj55zd:"fvi85wt"},outOfOfficeUnknown:{sj55zd:"f11d4kpn"},tiny:{Bubjx69:"f9ikmtg",a9b677:"f16dn6v3",B2eet1l:"f1w2irj7",B5pe6w7:"fab5kbq",p4uzdd:"f1ms1d91"},large:{Bubjx69:"f9ikmtg",a9b677:"f64fuq3",B5pe6w7:"f1vfi1yj",p4uzdd:"f15s34gz"},extraLarge:{Bubjx69:"f9ikmtg",a9b677:"f1w9dchk",B5pe6w7:"f14efy9b",p4uzdd:"fhipgdu"}},{d:[".fvi85wt{color:var(--colorPaletteRedBackground3);}",".f14k8a89{color:var(--colorPaletteMarigoldBackground3);}",".fqa5hgp{color:var(--colorPaletteLightGreenForeground3);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".fdce8r3{color:var(--colorPaletteBerryForeground3);}",".fr0bkrk{color:var(--colorNeutralBackground1);}",".f9ikmtg{aspect-ratio:1;}",".f16dn6v3{width:6px;}",".f1w2irj7{background-clip:unset;}",".fab5kbq svg{width:6px!important;}",".f1ms1d91 svg{height:6px!important;}",".f64fuq3{width:20px;}",".f1vfi1yj svg{width:20px!important;}",".f15s34gz svg{height:20px!important;}",".f1w9dchk{width:28px;}",".f14efy9b svg{width:28px!important;}",".fhipgdu svg{height:28px!important;}"]}),n_=e=>{"use no memo";const t=$q(),n=e_(),r=t_(),o=Qq(e.status);return e.root.className=G(CC.root,t,o&&r.statusBusy,e.status==="away"&&r.statusAway,e.status==="available"&&r.statusAvailable,e.status==="offline"&&r.statusOffline,e.status==="out-of-office"&&r.statusOutOfOffice,e.status==="unknown"&&r.statusUnknown,e.outOfOffice&&r.outOfOffice,e.outOfOffice&&e.status==="available"&&r.outOfOfficeAvailable,e.outOfOffice&&o&&r.outOfOfficeBusy,e.outOfOffice&&(e.status==="out-of-office"||e.status==="away"||e.status==="offline")&&r.statusOutOfOffice,e.outOfOffice&&e.status==="unknown"&&r.outOfOfficeUnknown,e.size==="tiny"&&r.tiny,e.size==="large"&&r.large,e.size==="extra-large"&&r.extraLarge,e.root.className),e.icon&&(e.icon.className=G(CC.icon,n,e.icon.className)),e},Jf=g.forwardRef((e,t)=>{const n=Jq(e,t);return n_(n),Ye("usePresenceBadgeStyles_unstable")(n),Uq(n)});Jf.displayName="PresenceBadge";const H8=g.createContext(void 0),r_={},o_=H8.Provider,i_=()=>{var e;return(e=g.useContext(H8))!==null&&e!==void 0?e:r_},a_={active:"active",inactive:"inactive"},s_=(e,t)=>{const{dir:n}=Ge(),{shape:r,size:o}=i_(),{name:i,size:a=o??32,shape:s=r??"circular",active:c="unset",activeAppearance:l="ring",idForColor:d}=e;let{color:A="neutral"}=e;if(A==="colorful"){var f;A=TC[l_((f=d??i)!==null&&f!==void 0?f:"")%TC.length]}const m=Rn("avatar-"),v=be(ze("span",{role:"img",id:m,...e,ref:t},["name"]),{elementType:"span"}),[p,y]=g.useState(void 0);let b=Te(e.image,{defaultProps:{alt:"",role:"presentation","aria-hidden":!0,hidden:p},elementType:"img"});b!=null&&b.src||(b=void 0),b&&(b.onError=We(b.onError,()=>y(!0)),b.onLoad=We(b.onLoad,()=>y(void 0)));let h=Te(e.initials,{renderByDefault:!0,defaultProps:{children:Lq(i,n==="rtl",{firstInitialOnly:a<=16}),id:m+"__initials"},elementType:"span"});h!=null&&h.children||(h=void 0);let w;!h&&(!b||p)&&(w=Te(e.icon,{renderByDefault:!0,defaultProps:{children:g.createElement(WV,null),"aria-hidden":!0},elementType:"span"}));const x=Te(e.badge,{defaultProps:{size:c_(a),id:m+"__badge"},elementType:Jf});let k;if(!v["aria-label"]&&!v["aria-labelledby"]&&(i?(v["aria-label"]=i,x&&(v["aria-labelledby"]=v.id+" "+x.id)):h&&(v["aria-labelledby"]=h.id+(x?" "+x.id:"")),c==="active"||c==="inactive")){const S=a_[c];if(v["aria-labelledby"]){const N=m+"__active";v["aria-labelledby"]+=" "+N,k=g.createElement("span",{hidden:!0,id:N},S)}else v["aria-label"]&&(v["aria-label"]+=" "+S)}return{size:a,shape:s,active:c,activeAppearance:l,activeAriaLabelElement:k,color:A,components:{root:"span",initials:"span",icon:"span",image:"img",badge:Jf},root:v,initials:h,icon:w,image:b,badge:x}},c_=e=>e>=96?"extra-large":e>=64?"large":e>=56?"medium":e>=40?"small":e>=28?"extra-small":"tiny",TC=["dark-red","cranberry","red","pumpkin","peach","marigold","gold","brass","brown","forest","seafoam","dark-green","light-teal","teal","steel","blue","royal-blue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],l_=e=>{let t=0;for(let n=e.length-1;n>=0;n--){const r=e.charCodeAt(n),o=n%8;t^=(r<>8-o)}return t},nA={root:"fui-Avatar",image:"fui-Avatar__image",initials:"fui-Avatar__initials",icon:"fui-Avatar__icon",badge:"fui-Avatar__badge"},d_=Re("r81b29z","r1aatmv",{r:[".r81b29z{display:inline-block;flex-shrink:0;position:relative;vertical-align:middle;border-radius:var(--borderRadiusCircular);font-family:var(--fontFamilyBase);font-weight:var(--fontWeightSemibold);font-size:var(--fontSizeBase300);width:32px;height:32px;}",".r81b29z::before,.r81b29z::after{position:absolute;top:0;left:0;bottom:0;right:0;z-index:-1;margin:calc(-2 * var(--fui-Avatar-ringWidth, 0px));border-radius:inherit;transition-property:margin,opacity;transition-timing-function:var(--curveEasyEaseMax),var(--curveLinear);transition-duration:var(--durationUltraSlow),var(--durationSlower);}",".r81b29z::before{border-style:solid;border-width:var(--fui-Avatar-ringWidth);}",".r1aatmv{display:inline-block;flex-shrink:0;position:relative;vertical-align:middle;border-radius:var(--borderRadiusCircular);font-family:var(--fontFamilyBase);font-weight:var(--fontWeightSemibold);font-size:var(--fontSizeBase300);width:32px;height:32px;}",".r1aatmv::before,.r1aatmv::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:calc(-2 * var(--fui-Avatar-ringWidth, 0px));border-radius:inherit;transition-property:margin,opacity;transition-timing-function:var(--curveEasyEaseMax),var(--curveLinear);transition-duration:var(--durationUltraSlow),var(--durationSlower);}",".r1aatmv::before{border-style:solid;border-width:var(--fui-Avatar-ringWidth);}"],s:["@media screen and (prefers-reduced-motion: reduce){.r81b29z::before,.r81b29z::after{transition-duration:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1aatmv::before,.r1aatmv::after{transition-duration:0.01ms;}}"]}),u_=Re("r136dc0n","rjly0nl",[".r136dc0n{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;vertical-align:top;}",".rjly0nl{position:absolute;top:0;right:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;vertical-align:top;}"]),A_=Re("rip04v","r31uzil",[".rip04v{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;height:100%;line-height:1;border:var(--strokeWidthThin) solid var(--colorTransparentStroke);display:flex;align-items:center;justify-content:center;vertical-align:center;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:inherit;}",".r31uzil{position:absolute;box-sizing:border-box;top:0;right:0;width:100%;height:100%;line-height:1;border:var(--strokeWidthThin) solid var(--colorTransparentStroke);display:flex;align-items:center;justify-content:center;vertical-align:center;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:inherit;}"]),f_=$({textCaption2Strong:{Be2twd7:"f13mqy1h"},textCaption1Strong:{Be2twd7:"fy9rknc"},textSubtitle2:{Be2twd7:"fod5ikn"},textSubtitle1:{Be2twd7:"f1pp30po"},textTitle3:{Be2twd7:"f1x0m3f5"},squareSmall:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fq9zq91"},squareMedium:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5"},squareLarge:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1o0qvyv"},squareXLarge:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1kijzfu"},activeOrInactive:{Bz10aip:"ftfx35i",Bmy1vo4:"fv0atk9",B3o57yi:"f1iry5bo",Bkqvd7p:"f15n41j8",Hwfdqs:"f1onx1g3"},ring:{Ftih45:"f1wl9k8s"},ringBadgeCutout:{f4a502:"fp2gujx"},ringThick:{of393c:"fq1w1vq"},ringThicker:{of393c:"fzg6ace"},ringThickest:{of393c:"f1nu8p71"},shadow:{Bsft5z2:"f13zj6fq"},shadow4:{Be6vj1x:"fcjn15l"},shadow8:{Be6vj1x:"f1tm8t9f"},shadow16:{Be6vj1x:"f1a1aohj"},shadow28:{Be6vj1x:"fond6v5"},inactive:{abs64n:"fp25eh",Bz10aip:"f1clczzi",Bkqvd7p:"f1l3s34x",Bfgortx:0,Bnvr3x9:0,b2tv09:0,Bucmhp4:0,iayac2:"flkahu5",b6ubon:"fw457kn",Bqinb2h:"f1wmllxl"},badge:{qhf8xq:"f1euv43f",B5kzvoi:"f1yab3r1",j35jbq:["f1e31b4d","f1vgc2s3"]},badgeCutout:{btxmck:"f1eugkqs"},badgeAlign:{Dnlfbu:["f1tlnv9o","f1y9kyih"]},tiny:{Bdjeniz:"f1uwoubl",niu6jh:"fid048z"},"extra-small":{Bdjeniz:"f13ar0e0",niu6jh:"fid048z"},small:{Bdjeniz:"fwwuruf",niu6jh:"fid048z"},medium:{Bdjeniz:"f1af27q5",niu6jh:"fid048z"},large:{Bdjeniz:"f18yy57a",niu6jh:"f924bxt"},"extra-large":{Bdjeniz:"f2jg042",niu6jh:"f924bxt"},icon12:{Be2twd7:"f1ugzwwg"},icon16:{Be2twd7:"f4ybsrx"},icon20:{Be2twd7:"fe5j1ua"},icon24:{Be2twd7:"f1rt2boy"},icon28:{Be2twd7:"f24l1pt"},icon32:{Be2twd7:"ffl51b"},icon48:{Be2twd7:"f18m8u13"}},{d:[".f13mqy1h{font-size:var(--fontSizeBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",[".fq9zq91{border-radius:var(--borderRadiusSmall);}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],[".f1o0qvyv{border-radius:var(--borderRadiusLarge);}",{p:-1}],[".f1kijzfu{border-radius:var(--borderRadiusXLarge);}",{p:-1}],".ftfx35i{transform:perspective(1px);}",".fv0atk9{transition-property:transform,opacity;}",".f1iry5bo{transition-duration:var(--durationUltraSlow),var(--durationFaster);}",".f15n41j8{transition-timing-function:var(--curveEasyEaseMax),var(--curveLinear);}",'.f1wl9k8s::before{content:"";}',".fp2gujx::before{-webkit-mask-image:radial-gradient(circle at bottom calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)) var(--fui-Avatar-badgeAlign) calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));mask-image:radial-gradient(circle at bottom calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)) var(--fui-Avatar-badgeAlign) calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));}",".fq1w1vq{--fui-Avatar-ringWidth:var(--strokeWidthThick);}",".fzg6ace{--fui-Avatar-ringWidth:var(--strokeWidthThicker);}",".f1nu8p71{--fui-Avatar-ringWidth:var(--strokeWidthThickest);}",'.f13zj6fq::after{content:"";}',".fcjn15l::after{box-shadow:var(--shadow4);}",".f1tm8t9f::after{box-shadow:var(--shadow8);}",".f1a1aohj::after{box-shadow:var(--shadow16);}",".fond6v5::after{box-shadow:var(--shadow28);}",".fp25eh{opacity:0.8;}",".f1clczzi{transform:scale(0.875);}",".f1l3s34x{transition-timing-function:var(--curveDecelerateMin),var(--curveLinear);}",[".flkahu5::before,.flkahu5::after{margin:0;}",{p:-1}],".fw457kn::before,.fw457kn::after{opacity:0;}",".f1wmllxl::before,.f1wmllxl::after{transition-timing-function:var(--curveDecelerateMin),var(--curveLinear);}",".f1euv43f{position:absolute;}",".f1yab3r1{bottom:0;}",".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f1eugkqs{-webkit-mask-image:radial-gradient(circle at bottom var(--fui-Avatar-badgeRadius) var(--fui-Avatar-badgeAlign) var(--fui-Avatar-badgeRadius), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));mask-image:radial-gradient(circle at bottom var(--fui-Avatar-badgeRadius) var(--fui-Avatar-badgeAlign) var(--fui-Avatar-badgeRadius), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));}",".f1tlnv9o{--fui-Avatar-badgeAlign:right;}",".f1y9kyih{--fui-Avatar-badgeAlign:left;}",".f1uwoubl{--fui-Avatar-badgeRadius:3px;}",".fid048z{--fui-Avatar-badgeGap:var(--strokeWidthThin);}",".f13ar0e0{--fui-Avatar-badgeRadius:5px;}",".fwwuruf{--fui-Avatar-badgeRadius:6px;}",".f1af27q5{--fui-Avatar-badgeRadius:8px;}",".f18yy57a{--fui-Avatar-badgeRadius:10px;}",".f924bxt{--fui-Avatar-badgeGap:var(--strokeWidthThick);}",".f2jg042{--fui-Avatar-badgeRadius:14px;}",".f1ugzwwg{font-size:12px;}",".f4ybsrx{font-size:16px;}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f24l1pt{font-size:28px;}",".ffl51b{font-size:32px;}",".f18m8u13{font-size:48px;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1onx1g3{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),m_=$({16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),v_=$({neutral:{sj55zd:"f11d4kpn",De3pzq:"f18f03hv"},brand:{sj55zd:"fonrgv7",De3pzq:"f1blnnmj"},"dark-red":{sj55zd:"fqjd1y1",De3pzq:"f1vq2oo4"},cranberry:{sj55zd:"fg9gses",De3pzq:"f1lwxszt"},red:{sj55zd:"f23f7i0",De3pzq:"f1q9qhfq"},pumpkin:{sj55zd:"fjnan08",De3pzq:"fz91bi3"},peach:{sj55zd:"fknu15p",De3pzq:"f1b9nr51"},marigold:{sj55zd:"f9603vw",De3pzq:"f3z4w6d"},gold:{sj55zd:"fmq0uwp",De3pzq:"fg50kya"},brass:{sj55zd:"f28g5vo",De3pzq:"f4w2gd0"},brown:{sj55zd:"ftl572b",De3pzq:"f14wu1f4"},forest:{sj55zd:"f1gymlvd",De3pzq:"f19ut4y6"},seafoam:{sj55zd:"fnnb6wn",De3pzq:"f1n057jc"},"dark-green":{sj55zd:"ff58qw8",De3pzq:"f11t05wk"},"light-teal":{sj55zd:"f1up9qbj",De3pzq:"f42feg1"},teal:{sj55zd:"f135dsb4",De3pzq:"f6hvv1p"},steel:{sj55zd:"f151dlcp",De3pzq:"f1lnp8zf"},blue:{sj55zd:"f1rjv50u",De3pzq:"f1ggcpy6"},"royal-blue":{sj55zd:"f1emykk5",De3pzq:"f12rj61f"},cornflower:{sj55zd:"fqsigj7",De3pzq:"f8k7hur"},navy:{sj55zd:"f1nj97xi",De3pzq:"f19gw0ux"},lavender:{sj55zd:"fwctg0i",De3pzq:"ff379vm"},purple:{sj55zd:"fjrsgpu",De3pzq:"f1mzf1e1"},grape:{sj55zd:"f1fiiydq",De3pzq:"f1o4k8oy"},lilac:{sj55zd:"f1res9jt",De3pzq:"f1x6mz1o"},pink:{sj55zd:"fv3fbbi",De3pzq:"fydlv6t"},magenta:{sj55zd:"f1f1fwnz",De3pzq:"f4xb6j5"},plum:{sj55zd:"f8ptl6j",De3pzq:"fqo8e26"},beige:{sj55zd:"f1ntv3ld",De3pzq:"f101elhj"},mink:{sj55zd:"f1fscmp",De3pzq:"f13g8o5c"},platinum:{sj55zd:"f1dr00v2",De3pzq:"fkh7blw"},anchor:{sj55zd:"f1f3ti53",De3pzq:"fu4yj0j"}},{d:[".f11d4kpn{color:var(--colorNeutralForeground3);}",".f18f03hv{background-color:var(--colorNeutralBackground6);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1blnnmj{background-color:var(--colorBrandBackgroundStatic);}",".fqjd1y1{color:var(--colorPaletteDarkRedForeground2);}",".f1vq2oo4{background-color:var(--colorPaletteDarkRedBackground2);}",".fg9gses{color:var(--colorPaletteCranberryForeground2);}",".f1lwxszt{background-color:var(--colorPaletteCranberryBackground2);}",".f23f7i0{color:var(--colorPaletteRedForeground2);}",".f1q9qhfq{background-color:var(--colorPaletteRedBackground2);}",".fjnan08{color:var(--colorPalettePumpkinForeground2);}",".fz91bi3{background-color:var(--colorPalettePumpkinBackground2);}",".fknu15p{color:var(--colorPalettePeachForeground2);}",".f1b9nr51{background-color:var(--colorPalettePeachBackground2);}",".f9603vw{color:var(--colorPaletteMarigoldForeground2);}",".f3z4w6d{background-color:var(--colorPaletteMarigoldBackground2);}",".fmq0uwp{color:var(--colorPaletteGoldForeground2);}",".fg50kya{background-color:var(--colorPaletteGoldBackground2);}",".f28g5vo{color:var(--colorPaletteBrassForeground2);}",".f4w2gd0{background-color:var(--colorPaletteBrassBackground2);}",".ftl572b{color:var(--colorPaletteBrownForeground2);}",".f14wu1f4{background-color:var(--colorPaletteBrownBackground2);}",".f1gymlvd{color:var(--colorPaletteForestForeground2);}",".f19ut4y6{background-color:var(--colorPaletteForestBackground2);}",".fnnb6wn{color:var(--colorPaletteSeafoamForeground2);}",".f1n057jc{background-color:var(--colorPaletteSeafoamBackground2);}",".ff58qw8{color:var(--colorPaletteDarkGreenForeground2);}",".f11t05wk{background-color:var(--colorPaletteDarkGreenBackground2);}",".f1up9qbj{color:var(--colorPaletteLightTealForeground2);}",".f42feg1{background-color:var(--colorPaletteLightTealBackground2);}",".f135dsb4{color:var(--colorPaletteTealForeground2);}",".f6hvv1p{background-color:var(--colorPaletteTealBackground2);}",".f151dlcp{color:var(--colorPaletteSteelForeground2);}",".f1lnp8zf{background-color:var(--colorPaletteSteelBackground2);}",".f1rjv50u{color:var(--colorPaletteBlueForeground2);}",".f1ggcpy6{background-color:var(--colorPaletteBlueBackground2);}",".f1emykk5{color:var(--colorPaletteRoyalBlueForeground2);}",".f12rj61f{background-color:var(--colorPaletteRoyalBlueBackground2);}",".fqsigj7{color:var(--colorPaletteCornflowerForeground2);}",".f8k7hur{background-color:var(--colorPaletteCornflowerBackground2);}",".f1nj97xi{color:var(--colorPaletteNavyForeground2);}",".f19gw0ux{background-color:var(--colorPaletteNavyBackground2);}",".fwctg0i{color:var(--colorPaletteLavenderForeground2);}",".ff379vm{background-color:var(--colorPaletteLavenderBackground2);}",".fjrsgpu{color:var(--colorPalettePurpleForeground2);}",".f1mzf1e1{background-color:var(--colorPalettePurpleBackground2);}",".f1fiiydq{color:var(--colorPaletteGrapeForeground2);}",".f1o4k8oy{background-color:var(--colorPaletteGrapeBackground2);}",".f1res9jt{color:var(--colorPaletteLilacForeground2);}",".f1x6mz1o{background-color:var(--colorPaletteLilacBackground2);}",".fv3fbbi{color:var(--colorPalettePinkForeground2);}",".fydlv6t{background-color:var(--colorPalettePinkBackground2);}",".f1f1fwnz{color:var(--colorPaletteMagentaForeground2);}",".f4xb6j5{background-color:var(--colorPaletteMagentaBackground2);}",".f8ptl6j{color:var(--colorPalettePlumForeground2);}",".fqo8e26{background-color:var(--colorPalettePlumBackground2);}",".f1ntv3ld{color:var(--colorPaletteBeigeForeground2);}",".f101elhj{background-color:var(--colorPaletteBeigeBackground2);}",".f1fscmp{color:var(--colorPaletteMinkForeground2);}",".f13g8o5c{background-color:var(--colorPaletteMinkBackground2);}",".f1dr00v2{color:var(--colorPalettePlatinumForeground2);}",".fkh7blw{background-color:var(--colorPalettePlatinumBackground2);}",".f1f3ti53{color:var(--colorPaletteAnchorForeground2);}",".fu4yj0j{background-color:var(--colorPaletteAnchorBackground2);}"]}),p_=$({neutral:{Bic5iru:"f1uuiafn"},brand:{Bic5iru:"f1uuiafn"},"dark-red":{Bic5iru:"f1t2x9on"},cranberry:{Bic5iru:"f1pvshc9"},red:{Bic5iru:"f1ectbk9"},pumpkin:{Bic5iru:"fvzpl0b"},peach:{Bic5iru:"fwj2kd7"},marigold:{Bic5iru:"fr120vy"},gold:{Bic5iru:"f8xmmar"},brass:{Bic5iru:"f1hbety2"},brown:{Bic5iru:"f1vg3s4g"},forest:{Bic5iru:"f1m3olm5"},seafoam:{Bic5iru:"f17xiqtr"},"dark-green":{Bic5iru:"fx32vyh"},"light-teal":{Bic5iru:"f1mkihwv"},teal:{Bic5iru:"fecnooh"},steel:{Bic5iru:"f15hfgzm"},blue:{Bic5iru:"fqproka"},"royal-blue":{Bic5iru:"f17v2w59"},cornflower:{Bic5iru:"fp0q1mo"},navy:{Bic5iru:"f1nlym55"},lavender:{Bic5iru:"f62vk8h"},purple:{Bic5iru:"f15zl69q"},grape:{Bic5iru:"f53w4j7"},lilac:{Bic5iru:"fu2771t"},pink:{Bic5iru:"fzflscs"},magenta:{Bic5iru:"fb6rmqc"},plum:{Bic5iru:"f1a4gm5b"},beige:{Bic5iru:"f1qpf9z1"},mink:{Bic5iru:"f1l7or83"},platinum:{Bic5iru:"fzrj0iu"},anchor:{Bic5iru:"f8oz6wf"}},{d:[".f1uuiafn::before{color:var(--colorBrandStroke1);}",".f1t2x9on::before{color:var(--colorPaletteDarkRedBorderActive);}",".f1pvshc9::before{color:var(--colorPaletteCranberryBorderActive);}",".f1ectbk9::before{color:var(--colorPaletteRedBorderActive);}",".fvzpl0b::before{color:var(--colorPalettePumpkinBorderActive);}",".fwj2kd7::before{color:var(--colorPalettePeachBorderActive);}",".fr120vy::before{color:var(--colorPaletteMarigoldBorderActive);}",".f8xmmar::before{color:var(--colorPaletteGoldBorderActive);}",".f1hbety2::before{color:var(--colorPaletteBrassBorderActive);}",".f1vg3s4g::before{color:var(--colorPaletteBrownBorderActive);}",".f1m3olm5::before{color:var(--colorPaletteForestBorderActive);}",".f17xiqtr::before{color:var(--colorPaletteSeafoamBorderActive);}",".fx32vyh::before{color:var(--colorPaletteDarkGreenBorderActive);}",".f1mkihwv::before{color:var(--colorPaletteLightTealBorderActive);}",".fecnooh::before{color:var(--colorPaletteTealBorderActive);}",".f15hfgzm::before{color:var(--colorPaletteSteelBorderActive);}",".fqproka::before{color:var(--colorPaletteBlueBorderActive);}",".f17v2w59::before{color:var(--colorPaletteRoyalBlueBorderActive);}",".fp0q1mo::before{color:var(--colorPaletteCornflowerBorderActive);}",".f1nlym55::before{color:var(--colorPaletteNavyBorderActive);}",".f62vk8h::before{color:var(--colorPaletteLavenderBorderActive);}",".f15zl69q::before{color:var(--colorPalettePurpleBorderActive);}",".f53w4j7::before{color:var(--colorPaletteGrapeBorderActive);}",".fu2771t::before{color:var(--colorPaletteLilacBorderActive);}",".fzflscs::before{color:var(--colorPalettePinkBorderActive);}",".fb6rmqc::before{color:var(--colorPaletteMagentaBorderActive);}",".f1a4gm5b::before{color:var(--colorPalettePlumBorderActive);}",".f1qpf9z1::before{color:var(--colorPaletteBeigeBorderActive);}",".f1l7or83::before{color:var(--colorPaletteMinkBorderActive);}",".fzrj0iu::before{color:var(--colorPalettePlatinumBorderActive);}",".f8oz6wf::before{color:var(--colorPaletteAnchorBorderActive);}"]}),g_=e=>{"use no memo";const{size:t,shape:n,active:r,activeAppearance:o,color:i}=e,a=d_(),s=u_(),c=A_(),l=f_(),d=m_(),A=v_(),f=p_(),m=[a,t!==32&&d[t]];if(e.badge&&m.push(l.badgeAlign,l[e.badge.size||"medium"]),t<=24?m.push(l.textCaption2Strong):t<=28?m.push(l.textCaption1Strong):t<=40||(t<=56?m.push(l.textSubtitle2):t<=96?m.push(l.textSubtitle1):m.push(l.textTitle3)),n==="square"&&(t<=24?m.push(l.squareSmall):t<=48?m.push(l.squareMedium):t<=72?m.push(l.squareLarge):m.push(l.squareXLarge)),(r==="active"||r==="inactive")&&(m.push(l.activeOrInactive),(o==="ring"||o==="ring-shadow")&&(m.push(l.ring,f[i]),e.badge&&m.push(l.ringBadgeCutout),t<=48?m.push(l.ringThick):t<=64?m.push(l.ringThicker):m.push(l.ringThickest)),(o==="shadow"||o==="ring-shadow")&&(m.push(l.shadow),t<=28?m.push(l.shadow4):t<=48?m.push(l.shadow8):t<=64?m.push(l.shadow16):m.push(l.shadow28)),r==="inactive"&&m.push(l.inactive)),e.root.className=G(nA.root,...m,e.root.className),e.badge&&(e.badge.className=G(nA.badge,l.badge,e.badge.className)),e.image&&(e.image.className=G(nA.image,s,A[i],e.badge&&l.badgeCutout,e.image.className)),e.initials&&(e.initials.className=G(nA.initials,c,A[i],e.badge&&l.badgeCutout,e.initials.className)),e.icon){let v;t<=16?v=l.icon12:t<=24?v=l.icon16:t<=40?v=l.icon20:t<=48?v=l.icon24:t<=56?v=l.icon28:t<=72?v=l.icon32:v=l.icon48,e.icon.className=G(nA.icon,c,v,A[i],e.badge&&l.badgeCutout,e.icon.className)}return e},Pw=g.forwardRef((e,t)=>{const n=s_(e,t);return g_(n),Ye("useAvatarStyles_unstable")(n),Dq(n)});Pw.displayName="Avatar";function h_(e){const t=e.clientX,n=e.clientY,r=t+1,o=n+1;function i(){return{left:t,top:n,right:r,bottom:o,x:t,y:n,height:1,width:1}}return{getBoundingClientRect:i}}const IC="data-popper-is-intersecting",PC="data-popper-escaped",DC="data-popper-reference-hidden",b_="data-popper-placement",Dw="fui-positioningend",y_=["top","right","bottom","left"],ia=Math.min,ko=Math.max,Gp=Math.round,Fs=e=>({x:e,y:e}),w_={left:"right",right:"left",bottom:"top",top:"bottom"},x_={start:"end",end:"start"};function Mw(e,t,n){return ko(e,ia(t,n))}function ya(e,t){return typeof e=="function"?e(t):e}function wa(e){return e.split("-")[0]}function zu(e){return e.split("-")[1]}function Dk(e){return e==="x"?"y":"x"}function Mk(e){return e==="y"?"height":"width"}function Os(e){return["top","bottom"].includes(wa(e))?"y":"x"}function Rk(e){return Dk(Os(e))}function k_(e,t,n){n===void 0&&(n=!1);const r=zu(e),o=Rk(e),i=Mk(o);let a=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=Yp(a)),[a,Yp(a)]}function S_(e){const t=Yp(e);return[Rw(e),t,Rw(t)]}function Rw(e){return e.replace(/start|end/g,t=>x_[t])}function j_(e,t,n){const r=["left","right"],o=["right","left"],i=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?i:a;default:return[]}}function N_(e,t,n,r){const o=zu(e);let i=j_(wa(e),n==="start",r);return o&&(i=i.map(a=>a+"-"+o),t&&(i=i.concat(i.map(Rw)))),i}function Yp(e){return e.replace(/left|right|bottom|top/g,t=>w_[t])}function C_(e){return{top:0,right:0,bottom:0,left:0,...e}}function Z8(e){return typeof e!="number"?C_(e):{top:e,right:e,bottom:e,left:e}}function Kp(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function MC(e,t,n){let{reference:r,floating:o}=e;const i=Os(t),a=Rk(t),s=Mk(a),c=wa(t),l=i==="y",d=r.x+r.width/2-o.width/2,A=r.y+r.height/2-o.height/2,f=r[s]/2-o[s]/2;let m;switch(c){case"top":m={x:d,y:r.y-o.height};break;case"bottom":m={x:d,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:A};break;case"left":m={x:r.x-o.width,y:A};break;default:m={x:r.x,y:r.y}}switch(zu(t)){case"start":m[a]-=f*(n&&l?-1:1);break;case"end":m[a]+=f*(n&&l?-1:1);break}return m}const T_=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,s=i.filter(Boolean),c=await(a.isRTL==null?void 0:a.isRTL(t));let l=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:d,y:A}=MC(l,r,c),f=r,m={},v=0;for(let p=0;p({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:a,elements:s,middlewareData:c}=t,{element:l,padding:d=0}=ya(e,t)||{};if(l==null)return{};const A=Z8(d),f={x:n,y:r},m=Rk(o),v=Mk(m),p=await a.getDimensions(l),y=m==="y",b=y?"top":"left",h=y?"bottom":"right",w=y?"clientHeight":"clientWidth",x=i.reference[v]+i.reference[m]-f[m]-i.floating[v],k=f[m]-i.reference[m],S=await(a.getOffsetParent==null?void 0:a.getOffsetParent(l));let N=S?S[w]:0;(!N||!await(a.isElement==null?void 0:a.isElement(S)))&&(N=s.floating[w]||i.floating[v]);const C=x/2-k/2,M=N/2-p[v]/2-1,j=ia(A[b],M),T=ia(A[h],M),F=j,H=N-p[v]-T,R=N/2-p[v]/2+C,O=Mw(F,R,H),_=!c.arrow&&zu(o)!=null&&R!==O&&i.reference[v]/2-(RR<=0)){var T,F;const R=(((T=i.flip)==null?void 0:T.index)||0)+1,O=N[R];if(O)return{data:{index:R,overflows:j},reset:{placement:O}};let _=(F=j.filter(Y=>Y.overflows[0]<=0).sort((Y,I)=>Y.overflows[1]-I.overflows[1])[0])==null?void 0:F.placement;if(!_)switch(m){case"bestFit":{var H;const Y=(H=j.filter(I=>{if(S){const E=Os(I.placement);return E===h||E==="y"}return!0}).map(I=>[I.placement,I.overflows.filter(E=>E>0).reduce((E,D)=>E+D,0)]).sort((I,E)=>I[1]-E[1])[0])==null?void 0:H[0];Y&&(_=Y);break}case"initialPlacement":_=s;break}if(o!==_)return{reset:{placement:_}}}return{}}}};function RC(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function zC(e){return y_.some(t=>e[t]>=0)}const D_=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=ya(e,t);switch(r){case"referenceHidden":{const i=await du(t,{...o,elementContext:"reference"}),a=RC(i,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:zC(a)}}}case"escaped":{const i=await du(t,{...o,altBoundary:!0}),a=RC(i,n.floating);return{data:{escapedOffsets:a,escaped:zC(a)}}}default:return{}}}}};async function M_(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),a=wa(n),s=zu(n),c=Os(n)==="y",l=["left","top"].includes(a)?-1:1,d=i&&c?-1:1,A=ya(t,e);let{mainAxis:f,crossAxis:m,alignmentAxis:v}=typeof A=="number"?{mainAxis:A,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...A};return s&&typeof v=="number"&&(m=s==="end"?v*-1:v),c?{x:m*d,y:f*l}:{x:f*l,y:m*d}}const R_=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:a,middlewareData:s}=t,c=await M_(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:o+c.x,y:i+c.y,data:{...c,placement:a}}}}},z_=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:s={fn:y=>{let{x:b,y:h}=y;return{x:b,y:h}}},...c}=ya(e,t),l={x:n,y:r},d=await du(t,c),A=Os(wa(o)),f=Dk(A);let m=l[f],v=l[A];if(i){const y=f==="y"?"top":"left",b=f==="y"?"bottom":"right",h=m+d[y],w=m-d[b];m=Mw(h,m,w)}if(a){const y=A==="y"?"top":"left",b=A==="y"?"bottom":"right",h=v+d[y],w=v-d[b];v=Mw(h,v,w)}const p=s.fn({...t,[f]:m,[A]:v});return{...p,data:{x:p.x-n,y:p.y-r}}}}},E_=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:a}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=ya(e,t),d={x:n,y:r},A=Os(o),f=Dk(A);let m=d[f],v=d[A];const p=ya(s,t),y=typeof p=="number"?{mainAxis:p,crossAxis:0}:{mainAxis:0,crossAxis:0,...p};if(c){const w=f==="y"?"height":"width",x=i.reference[f]-i.floating[w]+y.mainAxis,k=i.reference[f]+i.reference[w]-y.mainAxis;mk&&(m=k)}if(l){var b,h;const w=f==="y"?"width":"height",x=["top","left"].includes(wa(o)),k=i.reference[A]-i.floating[w]+(x&&((b=a.offset)==null?void 0:b[A])||0)+(x?0:y.crossAxis),S=i.reference[A]+i.reference[w]+(x?0:((h=a.offset)==null?void 0:h[A])||0)-(x?y.crossAxis:0);vS&&(v=S)}return{[f]:m,[A]:v}}}},B_=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:r,platform:o,elements:i}=t,{apply:a=()=>{},...s}=ya(e,t),c=await du(t,s),l=wa(n),d=zu(n),A=Os(n)==="y",{width:f,height:m}=r.floating;let v,p;l==="top"||l==="bottom"?(v=l,p=d===(await(o.isRTL==null?void 0:o.isRTL(i.floating))?"start":"end")?"left":"right"):(p=l,v=d==="end"?"top":"bottom");const y=m-c.top-c.bottom,b=f-c.left-c.right,h=ia(m-c[v],y),w=ia(f-c[p],b),x=!t.middlewareData.shift;let k=h,S=w;if(A?S=d||x?ia(w,b):b:k=d||x?ia(h,y):y,x&&!d){const C=ko(c.left,0),M=ko(c.right,0),j=ko(c.top,0),T=ko(c.bottom,0);A?S=f-2*(C!==0||M!==0?C+M:ko(c.left,c.right)):k=m-2*(j!==0||T!==0?j+T:ko(c.top,c.bottom))}await a({...t,availableWidth:S,availableHeight:k});const N=await o.getDimensions(i.floating);return f!==N.width||m!==N.height?{reset:{rects:!0}}:{}}}};function Eu(e){return V8(e)?(e.nodeName||"").toLowerCase():"#document"}function no(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ec(e){var t;return(t=(V8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function V8(e){return e instanceof Node||e instanceof no(e).Node}function ci(e){return e instanceof Element||e instanceof no(e).Element}function Fi(e){return e instanceof HTMLElement||e instanceof no(e).HTMLElement}function EC(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof no(e).ShadowRoot}function Km(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=li(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function F_(e){return["table","td","th"].includes(Eu(e))}function Xh(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch{return!1}})}function zk(e){const t=Ek(),n=ci(e)?li(e):e;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function O_(e){let t=Ls(e);for(;Fi(t)&&!uu(t);){if(zk(t))return t;if(Xh(t))return null;t=Ls(t)}return null}function Ek(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function uu(e){return["html","body","#document"].includes(Eu(e))}function li(e){return no(e).getComputedStyle(e)}function Gh(e){return ci(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ls(e){if(Eu(e)==="html")return e;const t=e.assignedSlot||e.parentNode||EC(e)&&e.host||ec(e);return EC(t)?t.host:t}function q8(e){const t=Ls(e);return uu(t)?e.ownerDocument?e.ownerDocument.body:e.body:Fi(t)&&Km(t)?t:q8(t)}function zw(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=q8(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=no(o);return i?t.concat(a,a.visualViewport||[],Km(o)?o:[],a.frameElement&&n?zw(a.frameElement):[]):t.concat(o,zw(o,[],n))}function _8(e){const t=li(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Fi(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=Gp(n)!==i||Gp(r)!==a;return s&&(n=i,r=a),{width:n,height:r,$:s}}function X8(e){return ci(e)?e:e.contextElement}function Id(e){const t=X8(e);if(!Fi(t))return Fs(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=_8(t);let a=(i?Gp(n.width):n.width)/r,s=(i?Gp(n.height):n.height)/o;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const L_=Fs(0);function G8(e){const t=no(e);return!Ek()||!t.visualViewport?L_:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function W_(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==no(e)?!1:t}function Qf(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=X8(e);let a=Fs(1);t&&(r?ci(r)&&(a=Id(r)):a=Id(e));const s=W_(i,n,r)?G8(i):Fs(0);let c=(o.left+s.x)/a.x,l=(o.top+s.y)/a.y,d=o.width/a.x,A=o.height/a.y;if(i){const f=no(i),m=r&&ci(r)?no(r):r;let v=f,p=v.frameElement;for(;p&&r&&m!==v;){const y=Id(p),b=p.getBoundingClientRect(),h=li(p),w=b.left+(p.clientLeft+parseFloat(h.paddingLeft))*y.x,x=b.top+(p.clientTop+parseFloat(h.paddingTop))*y.y;c*=y.x,l*=y.y,d*=y.x,A*=y.y,c+=w,l+=x,v=no(p),p=v.frameElement}}return Kp({width:d,height:A,x:c,y:l})}function U_(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",a=ec(r),s=t?Xh(t.floating):!1;if(r===a||s&&i)return n;let c={scrollLeft:0,scrollTop:0},l=Fs(1);const d=Fs(0),A=Fi(r);if((A||!A&&!i)&&((Eu(r)!=="body"||Km(a))&&(c=Gh(r)),Fi(r))){const f=Qf(r);l=Id(r),d.x=f.x+r.clientLeft,d.y=f.y+r.clientTop}return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+d.x,y:n.y*l.y-c.scrollTop*l.y+d.y}}function H_(e){return Array.from(e.getClientRects())}function Y8(e){return Qf(ec(e)).left+Gh(e).scrollLeft}function Z_(e){const t=ec(e),n=Gh(e),r=e.ownerDocument.body,o=ko(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=ko(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Y8(e);const s=-n.scrollTop;return li(r).direction==="rtl"&&(a+=ko(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:s}}function V_(e,t){const n=no(e),r=ec(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,s=0,c=0;if(o){i=o.width,a=o.height;const l=Ek();(!l||l&&t==="fixed")&&(s=o.offsetLeft,c=o.offsetTop)}return{width:i,height:a,x:s,y:c}}function q_(e,t){const n=Qf(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=Fi(e)?Id(e):Fs(1),a=e.clientWidth*i.x,s=e.clientHeight*i.y,c=o*i.x,l=r*i.y;return{width:a,height:s,x:c,y:l}}function BC(e,t,n){let r;if(t==="viewport")r=V_(e,n);else if(t==="document")r=Z_(ec(e));else if(ci(t))r=q_(t,n);else{const o=G8(e);r={...t,x:t.x-o.x,y:t.y-o.y}}return Kp(r)}function K8(e,t){const n=Ls(e);return n===t||!ci(n)||uu(n)?!1:li(n).position==="fixed"||K8(n,t)}function __(e,t){const n=t.get(e);if(n)return n;let r=zw(e,[],!1).filter(s=>ci(s)&&Eu(s)!=="body"),o=null;const i=li(e).position==="fixed";let a=i?Ls(e):e;for(;ci(a)&&!uu(a);){const s=li(a),c=zk(a);!c&&s.position==="fixed"&&(o=null),(i?!c&&!o:!c&&s.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||Km(a)&&!c&&K8(e,a))?r=r.filter(d=>d!==a):o=s,a=Ls(a)}return t.set(e,r),r}function X_(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[...n==="clippingAncestors"?Xh(t)?[]:__(t,this._c):[].concat(n),r],s=a[0],c=a.reduce((l,d)=>{const A=BC(t,d,o);return l.top=ko(A.top,l.top),l.right=ia(A.right,l.right),l.bottom=ia(A.bottom,l.bottom),l.left=ko(A.left,l.left),l},BC(t,s,o));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function G_(e){const{width:t,height:n}=_8(e);return{width:t,height:n}}function Y_(e,t,n){const r=Fi(t),o=ec(t),i=n==="fixed",a=Qf(e,!0,i,t);let s={scrollLeft:0,scrollTop:0};const c=Fs(0);if(r||!r&&!i)if((Eu(t)!=="body"||Km(o))&&(s=Gh(t)),r){const A=Qf(t,!0,i,t);c.x=A.x+t.clientLeft,c.y=A.y+t.clientTop}else o&&(c.x=Y8(o));const l=a.left+s.scrollLeft-c.x,d=a.top+s.scrollTop-c.y;return{x:l,y:d,width:a.width,height:a.height}}function s1(e){return li(e).position==="static"}function FC(e,t){return!Fi(e)||li(e).position==="fixed"?null:t?t(e):e.offsetParent}function J8(e,t){const n=no(e);if(Xh(e))return n;if(!Fi(e)){let o=Ls(e);for(;o&&!uu(o);){if(ci(o)&&!s1(o))return o;o=Ls(o)}return n}let r=FC(e,t);for(;r&&F_(r)&&s1(r);)r=FC(r,t);return r&&uu(r)&&s1(r)&&!zk(r)?n:r||O_(e)||n}const K_=async function(e){const t=this.getOffsetParent||J8,n=this.getDimensions,r=await n(e.floating);return{reference:Y_(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function J_(e){return li(e).direction==="rtl"}const Q_={convertOffsetParentRelativeRectToViewportRelativeRect:U_,getDocumentElement:ec,getClippingRect:X_,getOffsetParent:J8,getElementRects:K_,getClientRects:H_,getDimensions:G_,getScale:Id,isElement:ci,isRTL:J_},$_=du,eX=R_,tX=z_,nX=P_,rX=B_,OC=D_,oX=I_,iX=E_,aX=(e,t,n)=>{const r=new Map,o={platform:Q_,...n},i={...o.platform,_c:r};return T_(e,t,{...o,platform:i})};function Q8(e){const t=e.split("-");return{side:t[0],alignment:t[1]}}const sX=e=>e.nodeName==="HTML"?e:e.parentNode||e.host,cX=e=>{var t;return e.nodeType!==1?{}:((t=e.ownerDocument)===null||t===void 0?void 0:t.defaultView).getComputedStyle(e,null)},Yh=e=>{const t=e&&sX(e);if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:n,overflowX:r,overflowY:o}=cX(t);return/(auto|scroll|overlay)/.test(n+o+r)?t:Yh(t)},lX=e=>{var t;const n=Yh(e);return n?n!==((t=n.ownerDocument)===null||t===void 0?void 0:t.body):!1};function Bk(e,t){if(t==="window")return e==null?void 0:e.ownerDocument.documentElement;if(t==="clippingParents")return"clippingAncestors";if(t==="scrollParent"){let n=Yh(e);return n.nodeName==="BODY"&&(n=e==null?void 0:e.ownerDocument.documentElement),n}return t}function dX(e,t){return typeof e=="number"||typeof e=="object"&&e!==null?c1(e,t):typeof e=="function"?n=>{const r=e(n);return c1(r,t)}:{mainAxis:t}}const c1=(e,t)=>{if(typeof e=="number")return{mainAxis:e+t};var n;return{...e,mainAxis:((n=e.mainAxis)!==null&&n!==void 0?n:0)+t}};function $8(e,t){if(typeof e=="number")return e;const{start:n,end:r,...o}=e,i=o,a=t?"end":"start",s=t?"start":"end";return e[a]&&(i.left=e[a]),e[s]&&(i.right=e[s]),i}const uX=e=>({above:"top",below:"bottom",before:e?"right":"left",after:e?"left":"right"}),AX=()=>({start:"start",end:"end",top:"start",bottom:"end",center:void 0}),fX=(e,t)=>{const n=e==="above"||e==="below",r=t==="top"||t==="bottom";return n&&r||!n&&!r},e6=(e,t,n)=>{const r=fX(t,e)?"center":e,o=t&&uX(n)[t],i=r&&AX()[r];return o&&i?`${o}-${i}`:o},mX=()=>({top:"above",bottom:"below",right:"after",left:"before"}),vX=e=>e==="above"||e==="below"?{start:"start",end:"end"}:{start:"top",end:"bottom"},pX=e=>{const{side:t,alignment:n}=Q8(e),r=mX()[t],o=n&&vX(r)[n];return{position:r,alignment:o}},gX={above:{position:"above",align:"center"},"above-start":{position:"above",align:"start"},"above-end":{position:"above",align:"end"},below:{position:"below",align:"center"},"below-start":{position:"below",align:"start"},"below-end":{position:"below",align:"end"},before:{position:"before",align:"center"},"before-top":{position:"before",align:"top"},"before-bottom":{position:"before",align:"bottom"},after:{position:"after",align:"center"},"after-top":{position:"after",align:"top"},"after-bottom":{position:"after",align:"bottom"}};function Jm(e){return e==null?{}:typeof e=="string"?gX[e]:e}function l1(e,t,n){const r=g.useRef(!0),[o]=g.useState(()=>({value:e,callback:t,facade:{get current(){return o.value},set current(i){const a=o.value;a!==i&&(o.value=i,o.callback(i,a))}}}));return nr(()=>{r.current=!1},[]),o.callback=t,o.facade}function hX(e){let t;return()=>(t||(t=new Promise(n=>{Promise.resolve().then(()=>{t=void 0,n(e())})})),t)}function bX(e){const{arrow:t,middlewareData:n}=e;if(!n.arrow||!t)return;const{x:r,y:o}=n.arrow;Object.assign(t.style,{left:`${r}px`,top:`${o}px`})}function yX(e){var t,n,r;const{container:o,placement:i,middlewareData:a,strategy:s,lowPPI:c,coordinates:l,useTransform:d=!0}=e;if(!o)return;o.setAttribute(b_,i),o.removeAttribute(IC),a.intersectionObserver.intersecting&&o.setAttribute(IC,""),o.removeAttribute(PC),!((t=a.hide)===null||t===void 0)&&t.escaped&&o.setAttribute(PC,""),o.removeAttribute(DC),!((n=a.hide)===null||n===void 0)&&n.referenceHidden&&o.setAttribute(DC,"");const A=((r=o.ownerDocument.defaultView)===null||r===void 0?void 0:r.devicePixelRatio)||1,f=Math.round(l.x*A)/A,m=Math.round(l.y*A)/A;if(Object.assign(o.style,{position:s}),d){Object.assign(o.style,{transform:c?`translate(${f}px, ${m}px)`:`translate3d(${f}px, ${m}px, 0)`});return}Object.assign(o.style,{left:`${f}px`,top:`${m}px`})}const wX=e=>{switch(e){case"always":case!0:return{applyMaxWidth:!0,applyMaxHeight:!0};case"width-always":case"width":return{applyMaxWidth:!0,applyMaxHeight:!1};case"height-always":case"height":return{applyMaxWidth:!1,applyMaxHeight:!0};default:return!1}};function xX(){return{name:"coverTarget",fn:e=>{const{placement:t,rects:n,x:r,y:o}=e,i=Q8(t).side,a={x:r,y:o};switch(i){case"bottom":a.y-=n.reference.height;break;case"top":a.y+=n.reference.height;break;case"left":a.x+=n.reference.width;break;case"right":a.x-=n.reference.width;break}return a}}}function kX(e){const{hasScrollableElement:t,flipBoundary:n,container:r,fallbackPositions:o=[],isRtl:i}=e,a=o.reduce((s,c)=>{const{position:l,align:d}=Jm(c),A=e6(d,l,i);return A&&s.push(A),s},[]);return nX({...t&&{boundary:"clippingAncestors"},...n&&{altBoundary:!0,boundary:Bk(r,n)},fallbackStrategy:"bestFit",...a.length&&{fallbackPlacements:a}})}function SX(){return{name:"intersectionObserver",fn:async e=>{const t=e.rects.floating,n=await $_(e,{altBoundary:!0}),r=n.top0,o=n.bottom0;return{data:{intersecting:r||o}}}}}const jX=e=>({name:"resetMaxSize",fn({middlewareData:t,elements:n}){var r;if(!((r=t.resetMaxSize)===null||r===void 0)&&r.maxSizeAlreadyReset)return{};const{applyMaxWidth:o,applyMaxHeight:i}=e;return o&&(n.floating.style.removeProperty("box-sizing"),n.floating.style.removeProperty("max-width"),n.floating.style.removeProperty("width")),i&&(n.floating.style.removeProperty("box-sizing"),n.floating.style.removeProperty("max-height"),n.floating.style.removeProperty("height")),{data:{maxSizeAlreadyReset:!0},reset:{rects:!0}}}});function NX(e,t){const{container:n,overflowBoundary:r,overflowBoundaryPadding:o,isRtl:i}=t;return rX({...o&&{padding:$8(o,i)},...r&&{altBoundary:!0,boundary:Bk(n,r)},apply({availableHeight:a,availableWidth:s,elements:c,rects:l}){const d=(m,v,p)=>{if(m&&(c.floating.style.setProperty("box-sizing","border-box"),c.floating.style.setProperty(`max-${v}`,`${p}px`),l.floating[v]>p)){c.floating.style.setProperty(v,`${p}px`);const y=v==="width"?"x":"y";c.floating.style.getPropertyValue(`overflow-${y}`)||c.floating.style.setProperty(`overflow-${y}`,"auto")}},{applyMaxWidth:A,applyMaxHeight:f}=e;d(A,"width",s),d(f,"height",a)}})}function CX(e){return!e||typeof e=="number"||typeof e=="object"?e:({rects:{floating:t,reference:n},placement:r})=>{const{position:o,alignment:i}=pX(r);return e({positionedRect:t,targetRect:n,position:o,alignment:i})}}function TX(e){const t=CX(e);return eX(t)}function IX(e){const{hasScrollableElement:t,disableTether:n,overflowBoundary:r,container:o,overflowBoundaryPadding:i,isRtl:a}=e;return tX({...t&&{boundary:"clippingAncestors"},...n&&{crossAxis:n==="all",limiter:iX({crossAxis:n!=="all",mainAxis:!1})},...i&&{padding:$8(i,a)},...r&&{altBoundary:!0,boundary:Bk(o,r)}})}const LC="--fui-match-target-size";function PX(){return{name:"matchTargetSize",fn:async e=>{const{rects:{reference:t,floating:n},elements:{floating:r},middlewareData:{matchTargetSize:{matchTargetSizeAttempt:o=!1}={}}}=e;if(t.width===n.width||o)return{};const{width:i}=t;return r.style.setProperty(LC,`${i}px`),r.style.width||(r.style.width=`var(${LC})`),{data:{matchTargetSizeAttempt:!0},reset:{rects:!0}}}}}function WC(e){const t=[];let n=e;for(;n;){const r=Yh(n);if(e.ownerDocument.body===r){t.push(r);break}if(r.nodeName==="BODY"&&r!==e.ownerDocument.body)break;t.push(r),n=r}return t}function DX(e,t){return new e.ResizeObserver(t)}function MX(e){let t=!1;const{container:n,target:r,arrow:o,strategy:i,middleware:a,placement:s,useTransform:c=!0,disableUpdateOnResize:l=!1}=e,d=n.ownerDocument.defaultView;if(!r||!n||!d)return{updatePosition:()=>{},dispose:()=>{}};const A=l?null:DX(d,b=>{b.every(w=>w.contentRect.width>0&&w.contentRect.height>0)&&p()});let f=!0;const m=new Set;Object.assign(n.style,{position:"fixed",left:0,top:0,margin:0});const v=()=>{t||(f&&(WC(n).forEach(b=>m.add(b)),Pn(r)&&WC(r).forEach(b=>m.add(b)),m.forEach(b=>{b.addEventListener("scroll",p,{passive:!0})}),A==null||A.observe(n),Pn(r)&&(A==null||A.observe(r)),f=!1),Object.assign(n.style,{position:i}),aX(r,n,{placement:s,middleware:a,strategy:i}).then(({x:b,y:h,middlewareData:w,placement:x})=>{t||(bX({arrow:o,middlewareData:w}),yX({container:n,middlewareData:w,placement:x,coordinates:{x:b,y:h},lowPPI:((d==null?void 0:d.devicePixelRatio)||1)<=1,strategy:i,useTransform:c}),n.dispatchEvent(new CustomEvent(Dw)))}).catch(b=>{}))},p=hX(()=>v()),y=()=>{t=!0,d&&(d.removeEventListener("scroll",p),d.removeEventListener("resize",p)),m.forEach(b=>{b.removeEventListener("scroll",p)}),m.clear(),A==null||A.disconnect()};return d&&(d.addEventListener("scroll",p,{passive:!0}),d.addEventListener("resize",p)),p(),{updatePosition:p,dispose:y}}function Kh(e){"use no memo";const t=g.useRef(null),n=g.useRef(null),r=g.useRef(null),o=g.useRef(null),i=g.useRef(null),{enabled:a=!0}=e,s=RX(e),c=g.useCallback(()=>{t.current&&t.current.dispose(),t.current=null;var v;const p=(v=r.current)!==null&&v!==void 0?v:n.current;a&&hk()&&p&&o.current&&(t.current=MX({container:o.current,target:p,arrow:i.current,...s(o.current,i.current)}))},[a,s]),l=fe(v=>{r.current=v,c()});g.useImperativeHandle(e.positioningRef,()=>({updatePosition:()=>{var v;return(v=t.current)===null||v===void 0?void 0:v.updatePosition()},setTarget:v=>{e.target,l(v)}}),[e.target,l]),nr(()=>{var v;l((v=e.target)!==null&&v!==void 0?v:null)},[e.target,l]),nr(()=>{c()},[c]);const d=l1(null,v=>{n.current!==v&&(n.current=v,c())}),A=fe(()=>{var v;return(v=e.onPositioningEnd)===null||v===void 0?void 0:v.call(e)}),f=l1(null,v=>{if(o.current!==v){var p;(p=o.current)===null||p===void 0||p.removeEventListener(Dw,A),v==null||v.addEventListener(Dw,A),o.current=v,c()}}),m=l1(null,v=>{i.current!==v&&(i.current=v,c())});return{targetRef:d,containerRef:f,arrowRef:m}}function RX(e){"use no memo";const{align:t,arrowPadding:n,autoSize:r,coverTarget:o,flipBoundary:i,offset:a,overflowBoundary:s,pinned:c,position:l,unstable_disableTether:d,positionFixed:A,strategy:f,overflowBoundaryPadding:m,fallbackPositions:v,useTransform:p,matchTargetSize:y,disableUpdateOnResize:b=!1}=e,{dir:h,targetDocument:w}=Ge(),x=h==="rtl",k=f??A?"fixed":"absolute",S=wX(r);return g.useCallback((N,C)=>{const M=lX(N),j=[S&&jX(S),y&&PX(),a&&TX(a),o&&xX(),!c&&kX({container:N,flipBoundary:i,hasScrollableElement:M,isRtl:x,fallbackPositions:v}),IX({container:N,hasScrollableElement:M,overflowBoundary:s,disableTether:d,overflowBoundaryPadding:m,isRtl:x}),S&&NX(S,{container:N,overflowBoundary:s,overflowBoundaryPadding:m,isRtl:x}),SX(),C&&oX({element:C,padding:n}),OC({strategy:"referenceHidden"}),OC({strategy:"escaped"}),!1].filter(Boolean);return{placement:e6(t,l,x),middleware:j,strategy:k,useTransform:p,disableUpdateOnResize:b}},[t,n,S,o,d,i,x,a,s,c,l,k,m,v,p,y,w,b])}const t6=e=>{const[t,n]=g.useState(e);return[t,o=>{if(o==null){n(void 0);return}let i;o instanceof MouseEvent?i=o:i=o.nativeEvent,i instanceof MouseEvent;const a=h_(i);n(a)}]},Fk=Vi(void 0),zX={open:!1,setOpen:()=>null,toggleOpen:()=>null,triggerRef:{current:null},contentRef:{current:null},arrowRef:{current:null},openOnContext:!1,openOnHover:!1,size:"medium",trapFocus:!1,inline:!1};Fk.Provider;const Ht=e=>Qs(Fk,(t=zX)=>e(t)),n6=(e,t)=>{const n=Ht(h=>h.contentRef),r=Ht(h=>h.openOnHover),o=Ht(h=>h.setOpen),i=Ht(h=>h.mountNode),a=Ht(h=>h.arrowRef),s=Ht(h=>h.size),c=Ht(h=>h.withArrow),l=Ht(h=>h.appearance),d=Ht(h=>h.trapFocus),A=Ht(h=>h.inertTrapFocus),f=Ht(h=>h.inline),{modalAttributes:m}=Gm({trapFocus:d,legacyTrapFocus:!A,alwaysFocusable:!d}),v={inline:f,appearance:l,withArrow:c,size:s,arrowRef:a,mountNode:i,components:{root:"div"},root:be(ze("div",{ref:ot(t,n),role:d?"dialog":"group","aria-modal":d?!0:void 0,...m,...e}),{elementType:"div"})},{onMouseEnter:p,onMouseLeave:y,onKeyDown:b}=v.root;return v.root.onMouseEnter=h=>{r&&o(h,!0),p==null||p(h)},v.root.onMouseLeave=h=>{r&&o(h,!1),y==null||y(h)},v.root.onKeyDown=h=>{var w;h.key==="Escape"&&(!((w=n.current)===null||w===void 0)&&w.contains(h.target))&&(h.preventDefault(),o(h,!1)),b==null||b(h)},v};function EX(e){return Pn(e)?{element:e}:typeof e=="object"?e===null?{element:null}:e:{}}var r6=()=>g.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current,BX=()=>!1,UC=new WeakSet;function FX(e,t){const n=r6();g.useEffect(()=>{if(!UC.has(n)){UC.add(n),e();return}return e()},t)}var HC=new WeakSet;function OX(e,t){return g.useMemo(()=>{const n=r6();return HC.has(n)?e():(HC.add(n),null)},t)}function LX(e,t){var n;const r=BX()&&!1,o=r?OX:g.useMemo,i=r?FX:g.useEffect,[a,s]=(n=o(()=>e(),t))!=null?n:[null,()=>null];return i(()=>s,t),a}const WX=$({root:{qhf8xq:"f1euv43f",Bhzewxz:"f15twtuk",oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["f1e31b4d","f1vgc2s3"],Bj3rh1h:"f494woh"}},{d:[".f1euv43f{position:absolute;}",".f15twtuk{top:0;}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".f494woh{z-index:1000000;}"]}),ZC=qd.useInsertionEffect,UX=e=>{"use no memo";const{targetDocument:t,dir:n}=Ge(),r=MW(),o=Nk(),i=WX(),a=SW(),s=G(a,i.root,e.className),c=r??(t==null?void 0:t.body),l=LX(()=>{if(c===void 0||e.disabled)return[null,()=>null];const d=c.ownerDocument.createElement("div");return c.appendChild(d),[d,()=>d.remove()]},[c]);return ZC?ZC(()=>{if(!l)return;const d=s.split(" ").filter(Boolean);return l.classList.add(...d),l.setAttribute("dir",n),l.setAttribute("data-portal-node","true"),o.current=l,()=>{l.classList.remove(...d),l.removeAttribute("dir")}},[s,n,l,o]):g.useMemo(()=>{l&&(l.className=s,l.setAttribute("dir",n),l.setAttribute("data-portal-node","true"),o.current=l)},[s,n,l,o]),l},HX=e=>{const{element:t,className:n}=EX(e.mountNode),r=g.useRef(null),o=UX({disabled:!!t,className:n}),i=t??o,a={children:e.children,mountNode:i,virtualParentRootRef:r};return g.useEffect(()=>{if(!i)return;const s=r.current,c=i.contains(s);if(s&&!c)return FN(i,s),()=>{FN(i,void 0)}},[r,i]),a},ZX=e=>g.createElement("span",{hidden:!0,ref:e.virtualParentRootRef},e.mountNode&&zs.createPortal(e.children,e.mountNode)),Bu=e=>{const t=HX(e);return ZX(t)};Bu.displayName="Portal";const o6=e=>{const t=ut(e.root,{children:[e.withArrow&&Q("div",{ref:e.arrowRef,className:e.arrowClassName}),e.root.children]});return e.inline?t:Q(Bu,{mountNode:e.mountNode,children:t})},VX={root:"fui-PopoverSurface"},qX={small:6,medium:8,large:8},_X=$({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f9ggezi",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y",Bhu2qc9:"fymb6k8"},inline:{Bj3rh1h:"f19g0ac"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},brand:{De3pzq:"ffp7eso",sj55zd:"f1phragk"},smallPadding:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1sy4kr4"},mediumPadding:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f4zyqsv"},largePadding:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fop8ug2"},smallArrow:{rhnwrx:"f1s3jn22",Bdy53xb:"fv40uqz"},mediumLargeArrow:{rhnwrx:"f1f72gjr",Bdy53xb:"f69yoe5"},arrow:{B7ck84d:"f1ewtqcl",qhf8xq:"f1euv43f",Bj3rh1h:"f1bsuimh",De3pzq:"f1u2r49w",B2eet1l:"fqhgnl",Beyfa6y:"f17bz04i",Bz10aip:"f36o3x3",Bqenvij:"fzofk8q",a9b677:"f1wbx1ie",Ftih45:"f1wl9k8s",Br0sdwz:"f1aocrix",cmx5o7:"f1ljr5q2",susq4k:0,Biibvgv:0,Bicfajf:0,qehafq:0,Brs5u8j:"f155f1qt",Ccq8qp:"f9mhzq7",Baz25je:"fr6rhvx",Bcgcnre:0,Bqjgrrk:0,qa3bma:0,y0oebl:0,Biqmznv:0,Bm6vgfq:0,Bbv0w2i:0,uvfttm:0,eqrjj:0,Bk5zm6e:0,m598lv:0,B4f6apu:0,ydt019:0,Bq4z7u6:0,Bdkvgpv:0,B0qfbqy:0,kj8mxx:"f1kc0wz4",r59vdv:"fgq90dz",Bkw5xw4:"fq0y47f",hl6cv3:"f1pwrbz6",aea9ga:"f1hxxcvm",yayu3t:"fw8rgyo",Bhsv975:"f1wnzycx",rhl9o9:"f1730wal",B7gxrvb:"f1fy4ixr",B6q6orb:"fobkauc",B0lu1f8:"f16bqv1l"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],[".f9ggezi{border:1px solid var(--colorTransparentStroke);}",{p:-2}],".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}",".fymb6k8{filter:drop-shadow(0 0 2px var(--colorNeutralShadowAmbient)) drop-shadow(0 8px 16px var(--colorNeutralShadowKey));}",".f19g0ac{z-index:1;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",[".f1sy4kr4{padding:12px;}",{p:-1}],[".f4zyqsv{padding:16px;}",{p:-1}],[".fop8ug2{padding:20px;}",{p:-1}],".f1s3jn22{--fui-positioning-arrow-height:8.484px;}",".fv40uqz{--fui-positioning-arrow-offset:-4.242px;}",".f1f72gjr{--fui-positioning-arrow-height:11.312px;}",".f69yoe5{--fui-positioning-arrow-offset:-5.656px;}",".f1ewtqcl{box-sizing:border-box;}",".f1euv43f{position:absolute;}",".f1bsuimh{z-index:-1;}",".f1u2r49w{background-color:inherit;}",".fqhgnl{background-clip:content-box;}",".f17bz04i{border-bottom-left-radius:var(--borderRadiusSmall);}",".f36o3x3{transform:rotate(var(--fui-positioning-arrow-angle));}",".fzofk8q{height:var(--fui-positioning-arrow-height);}",".f1wbx1ie{width:var(--fui-positioning-arrow-height);}",'.f1wl9k8s::before{content:"";}',".f1aocrix::before{display:block;}",".f1ljr5q2::before{background-color:inherit;}",[".f155f1qt::before{margin:-1px;}",{p:-1}],".f9mhzq7::before{width:100%;}",".fr6rhvx::before{height:100%;}",[".f1kc0wz4::before{border:1px solid var(--colorTransparentStroke);}",{p:-2}],".fgq90dz::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".fq0y47f::before{clip-path:polygon(0% 0%, 100% 100%, 0% 100%);}",'[data-popper-placement^="top"] .f1pwrbz6{bottom:var(--fui-positioning-arrow-offset);}','[data-popper-placement^="top"] .f1hxxcvm{--fui-positioning-arrow-angle:-45deg;}','[data-popper-placement^="right"] .fw8rgyo{left:var(--fui-positioning-arrow-offset);}','[data-popper-placement^="right"] .f1wnzycx{--fui-positioning-arrow-angle:45deg;}','[data-popper-placement^="bottom"] .f1730wal{top:var(--fui-positioning-arrow-offset);}','[data-popper-placement^="bottom"] .f1fy4ixr{--fui-positioning-arrow-angle:135deg;}','[data-popper-placement^="left"] .fobkauc{right:var(--fui-positioning-arrow-offset);}','[data-popper-placement^="left"] .f16bqv1l{--fui-positioning-arrow-angle:225deg;}'],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),i6=e=>{"use no memo";const t=_X();return e.root.className=G(VX.root,t.root,e.inline&&t.inline,e.size==="small"&&t.smallPadding,e.size==="medium"&&t.mediumPadding,e.size==="large"&&t.largePadding,e.appearance==="inverted"&&t.inverted,e.appearance==="brand"&&t.brand,e.root.className),e.arrowClassName=G(t.arrow,e.size==="small"?t.smallArrow:t.mediumLargeArrow),e},a6=g.forwardRef((e,t)=>{const n=n6(e,t);return i6(n),Ye("usePopoverSurfaceStyles_unstable")(n),o6(n)});a6.displayName="PopoverSurface";const XX=4,s6=e=>{const[t,n]=t6(),r={size:"medium",contextTarget:t,setContextTarget:n,...e},o=g.Children.toArray(e.children);let i,a;o.length===2?(i=o[0],a=o[1]):o.length===1&&(a=o[0]);const[s,c]=GX(r),[l,d]=Bm(),A=fe((x,k)=>{if(d(),!(x instanceof Event)&&x.persist&&x.persist(),x.type==="mouseleave"){var S;l(()=>{c(x,k)},(S=e.mouseLeaveDelay)!==null&&S!==void 0?S:500)}else c(x,k)}),f=g.useCallback(x=>{A(x,!s)},[A,s]),m=YX(r),{targetDocument:v}=Ge();var p;Fh({contains:ur,element:v,callback:x=>A(x,!1),refs:[m.triggerRef,m.contentRef],disabled:!s,disabledFocusOnIframe:!(!((p=e.closeOnIframeFocus)!==null&&p!==void 0)||p)});const y=r.openOnContext||r.closeOnScroll;bk({contains:ur,element:v,callback:x=>A(x,!1),refs:[m.triggerRef,m.contentRef],disabled:!s||!y});const{findFirstFocusable:b}=Iu();g.useEffect(()=>{if(!e.unstable_disableAutoFocus&&s&&m.contentRef.current){var x;const k=(x=m.contentRef.current.getAttribute("tabIndex"))!==null&&x!==void 0?x:void 0,S=isNaN(k)?b(m.contentRef.current):m.contentRef.current;S==null||S.focus()}},[b,s,m.contentRef,e.unstable_disableAutoFocus]);var h,w;return{...r,...m,inertTrapFocus:(h=e.inertTrapFocus)!==null&&h!==void 0?h:e.legacyTrapFocus===void 0?!1:!e.legacyTrapFocus,popoverTrigger:i,popoverSurface:a,open:s,setOpen:A,toggleOpen:f,setContextTarget:n,contextTarget:t,inline:(w=e.inline)!==null&&w!==void 0?w:!1}};function GX(e){"use no memo";const t=fe((a,s)=>{var c;return(c=e.onOpenChange)===null||c===void 0?void 0:c.call(e,a,s)}),[n,r]=Mn({state:e.open,defaultState:e.defaultOpen,initialState:!1});e.open=n!==void 0?n:e.open;const o=e.setContextTarget,i=g.useCallback((a,s)=>{s&&a.type==="contextmenu"&&o(a),s||o(void 0),r(s),t==null||t(a,{open:s})},[r,t,o]);return[n,i]}function YX(e){"use no memo";const t={position:"above",align:"center",arrowPadding:2*XX,target:e.openOnContext?e.contextTarget:void 0,...Jm(e.positioning)};t.coverTarget&&(e.withArrow=!1),e.withArrow&&(t.offset=dX(t.offset,qX[e.size]));const{targetRef:n,containerRef:r,arrowRef:o}=Kh(t);return{triggerRef:n,contentRef:r,arrowRef:o}}const c6=e=>{const{appearance:t,arrowRef:n,contentRef:r,inline:o,mountNode:i,open:a,openOnContext:s,openOnHover:c,setOpen:l,size:d,toggleOpen:A,trapFocus:f,triggerRef:m,withArrow:v,inertTrapFocus:p}=e;return g.createElement(Fk.Provider,{value:{appearance:t,arrowRef:n,contentRef:r,inline:o,mountNode:i,open:a,openOnContext:s,openOnHover:c,setOpen:l,toggleOpen:A,triggerRef:m,size:d,trapFocus:f,inertTrapFocus:p,withArrow:v}},e.popoverTrigger,e.open&&e.popoverSurface)},l6=e=>{const t=s6(e);return c6(t)};l6.displayName="Popover";const KX=e=>{const{children:t,disableButtonEnhancement:n=!1}=e,r=Oh(t),o=Ht(w=>w.open),i=Ht(w=>w.setOpen),a=Ht(w=>w.toggleOpen),s=Ht(w=>w.triggerRef),c=Ht(w=>w.openOnHover),l=Ht(w=>w.openOnContext),{triggerAttributes:d}=Gm(),A=w=>{l&&(w.preventDefault(),i(w,!0))},f=w=>{l||a(w)},m=w=>{w.key===$s&&o&&!w.isDefaultPrevented()&&(i(w,!1),w.preventDefault())},v=w=>{c&&i(w,!0)},p=w=>{c&&i(w,!1)},y={...d,"aria-expanded":`${o}`,...r==null?void 0:r.props,onMouseEnter:fe(We(r==null?void 0:r.props.onMouseEnter,v)),onMouseLeave:fe(We(r==null?void 0:r.props.onMouseLeave,p)),onContextMenu:fe(We(r==null?void 0:r.props.onContextMenu,A)),ref:ot(s,r==null?void 0:r.ref)},b={...y,onClick:fe(We(r==null?void 0:r.props.onClick,f)),onKeyDown:fe(We(r==null?void 0:r.props.onKeyDown,m))},h=il((r==null?void 0:r.type)==="button"||(r==null?void 0:r.type)==="a"?r.type:"div",b);return{children:yk(e.children,il((r==null?void 0:r.type)==="button"||(r==null?void 0:r.type)==="a"?r.type:"div",l?y:n?b:h))}},JX=e=>e.children,Ok=e=>{const t=KX(e);return JX(t)};Ok.displayName="PopoverTrigger";Ok.isFluentTriggerComponent=!0;const QX=e=>{const{iconOnly:t,iconPosition:n}=e;return ut(e.root,{children:[n!=="after"&&e.icon&&Q(e.icon,{}),!t&&e.root.children,n==="after"&&e.icon&&Q(e.icon,{})]})},d6=g.createContext(void 0),$X={},eG=d6.Provider,tG=()=>{var e;return(e=g.useContext(d6))!==null&&e!==void 0?e:$X},u6=(e,t)=>{const{size:n}=tG(),{appearance:r="secondary",as:o="button",disabled:i=!1,disabledFocusable:a=!1,icon:s,iconPosition:c="before",shape:l="rounded",size:d=n??"medium"}=e,A=Te(s,{elementType:"span"});return{appearance:r,disabled:i,disabledFocusable:a,iconPosition:c,shape:l,size:d,iconOnly:!!(A!=null&&A.children&&!e.children),components:{root:"button",icon:"span"},root:be(ze(o,il(e.as,e)),{elementType:"button",defaultProps:{ref:t,type:"button"}}),icon:A}},VC={root:"fui-Button",icon:"fui-Button__icon"},nG=Re("r1alrhcs",null,{r:[".r1alrhcs{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration-line:none;vertical-align:middle;margin:0;overflow:hidden;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);font-family:var(--fontFamilyBase);outline-style:none;padding:5px var(--spacingHorizontalM);min-width:96px;border-radius:var(--borderRadiusMedium);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);transition-duration:var(--durationFaster);transition-property:background,border,color;transition-timing-function:var(--curveEasyEase);}",".r1alrhcs:hover{background-color:var(--colorNeutralBackground1Hover);border-color:var(--colorNeutralStroke1Hover);color:var(--colorNeutralForeground1Hover);cursor:pointer;}",".r1alrhcs:hover:active{background-color:var(--colorNeutralBackground1Pressed);border-color:var(--colorNeutralStroke1Pressed);color:var(--colorNeutralForeground1Pressed);outline-style:none;}",".r1alrhcs[data-fui-focus-visible]{border-color:var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);border-width:1px;outline:var(--strokeWidthThick) solid var(--colorTransparentStroke);box-shadow:0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;z-index:1;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1alrhcs{transition-duration:0.01ms;}}","@media (forced-colors: active){.r1alrhcs:focus{border-color:ButtonText;}.r1alrhcs:hover{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}.r1alrhcs:hover:active{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}}","@supports (-moz-appearance:button){.r1alrhcs[data-fui-focus-visible]{box-shadow:0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),rG=Re("rywnvv2",null,[".rywnvv2{align-items:center;display:inline-flex;justify-content:center;font-size:20px;height:20px;width:20px;--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}"]),oG=$({outline:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",iro3zm:"fwiml72"},primary:{De3pzq:"ffp7eso",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"f1phragk",Jwef8y:"f15wkkf3",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f1rq72xc",iro3zm:"fnp9lpt",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1d6v5y2",Bsw6fvg:"f1rirnrt",Bjwas2f:"f1uu00uk",Bn1d65q:["fkvaka8","f9a0qzu"],Bxeuatn:"f1ux7til",n51gp8:["f9a0qzu","fkvaka8"],Bbusuzp:"f1lkg8j3",ycbfsm:"fkc42ay",Bqrx1nm:"fq7113v",pgvf35:"ff1wgvm",Bh7lczh:["fiob0tu","f1x4h75k"],dpv3f4:"f1j6scgf",Bpnjhaq:["f1x4h75k","fiob0tu"],ze5xyy:"f4xjyn1",g2kj27:"fbgcvur",Bf756sw:"f1ks1yx8",Bow2dr7:["f1o6qegi","fmxjhhp"],Bvhedfk:"fcnxywj",Gye4lf:["fmxjhhp","f1o6qegi"],pc6evw:"f9ddjv3"},secondary:{},subtle:{De3pzq:"fhovq9v",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"f1t94bn6",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bbdnnc7:"fy5bs14",iro3zm:"fsv2rcd",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1omzyqd",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",x3br3k:"fj8yq94",ze5xyy:"f4xjyn1",Bx3q9su:"f1et0tmh",pc6evw:"f9ddjv3",xd2cci:"f1wi8ngl"},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"fjxutwb",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f139oj5f",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",iro3zm:"fwiml72",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1fg1p5m",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",Bqrx1nm:"f1tme0vf",ze5xyy:"f4xjyn1",g2kj27:"f18onu3q",pc6evw:"f9ddjv3"},circular:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f44lkw9"},rounded:{},square:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1fabniw"},small:{Bf4jedk:"fh7ncta",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fneth5b",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},smallWithIcon:{Byoj8tv:"f1brlhvm",z8tnut:"f1sl3k7w"},medium:{},large:{Bf4jedk:"f14es27b",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f4db1ww",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},largeWithIcon:{Byoj8tv:"fy7v416",z8tnut:"f1a1bwwz"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",[".f44lkw9{border-radius:var(--borderRadiusCircular);}",{p:-1}],[".f1fabniw{border-radius:var(--borderRadiusNone);}",{p:-1}],".fh7ncta{min-width:64px;}",[".fneth5b{padding:3px var(--spacingHorizontalS);}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1brlhvm{padding-bottom:1px;}",".f1sl3k7w{padding-top:1px;}",".f14es27b{min-width:96px;}",[".f4db1ww{padding:8px var(--spacingHorizontalL);}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fy7v416{padding-bottom:7px;}",".f1a1bwwz{padding-top:7px;}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".fwiml72:hover:active{background-color:var(--colorTransparentBackgroundPressed);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".fnp9lpt:hover:active{background-color:var(--colorBrandBackgroundPressed);}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}",".f1d6v5y2:hover:active{color:var(--colorNeutralForegroundOnBrand);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".fy5bs14:hover .fui-Button__icon{color:var(--colorNeutralForeground2BrandHover);}",".fsv2rcd:hover:active{background-color:var(--colorSubtleBackgroundPressed);}",".f1omzyqd:hover:active{color:var(--colorNeutralForeground2Pressed);}",".f1dfjoow:hover:active .fui-Icon-filled{display:inline;}",".f1j98vj9:hover:active .fui-Icon-regular{display:none;}",".fj8yq94:hover:active .fui-Button__icon{color:var(--colorNeutralForeground2BrandPressed);}",".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}",".f1fg1p5m:hover:active{color:var(--colorNeutralForeground2BrandPressed);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1uu00uk{border-top-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9a0qzu{border-left-color:HighlightText;}.fkvaka8{border-right-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ux7til{border-bottom-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fq7113v:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ff1wgvm:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1x4h75k:hover{border-left-color:Highlight;}.fiob0tu:hover{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1j6scgf:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f4xjyn1:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbgcvur:hover:active{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ks1yx8:hover:active{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1o6qegi:hover:active{border-right-color:Highlight;}.fmxjhhp:hover:active{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fcnxywj:hover:active{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9ddjv3:hover:active{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1et0tmh:hover .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1wi8ngl:hover:active .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1tme0vf:hover{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18onu3q:hover:active{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}]]}),iG=$({base:{De3pzq:"f1bg9a2p",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bfinmwp:"f15x8b5r",Jwef8y:"f1falr9n",Bgoe8wy:"f12mpcsy",Bwzppfd:["f1gwvigk","f18rmfxp"],oetu4i:"f1jnshp0",gg5e9n:["f18rmfxp","f1gwvigk"],Bi91k9c:"fvgxktp",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bbdnnc7:"f1al02dq",iro3zm:"f1t6o4dc",b661bw:"f10ztigi",Bk6r4ia:["f1ft5sdu","f1gzf82w"],B9zn80p:"f12zbtn2",Bpld233:["f1gzf82w","f1ft5sdu"],B2d53fq:"fcvwxyo",c3iz72:"f8w4c43",em6i61:"f1ol4fw6",vm6p8p:"f1q1lw4e",x3br3k:"f1dwjv2g"},highContrast:{Bsw6fvg:"f4lkoma",Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bbusuzp:"f1dcs8yz",G867l3:"fjwq6ea",gdbnj:["f1lr3nhc","f1mbxvi6"],mxns5l:"fn5gmvv",o3nasb:["f1mbxvi6","f1lr3nhc"],Bqrx1nm:"f1vmkb5g",pgvf35:"f53ppgq",Bh7lczh:["f1663y11","f80fkiy"],dpv3f4:"f18v5270",Bpnjhaq:["f80fkiy","f1663y11"],ze5xyy:"f1kc2mi9",g2kj27:"f1y0svfh",Bf756sw:"fihuait",Bow2dr7:["fnxhupq","fyd6l6x"],Bvhedfk:"fx507ft",Gye4lf:["fyd6l6x","fnxhupq"],pc6evw:"fb3rf2x"},outline:{De3pzq:"f1c21dwh",Jwef8y:"f9ql6rf",iro3zm:"f3h1zc4"},primary:{g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},secondary:{},subtle:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]}},{d:[".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f15x8b5r .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}"],h:[".f1falr9n:hover{background-color:var(--colorNeutralBackgroundDisabled);}",".f12mpcsy:hover{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1gwvigk:hover{border-right-color:var(--colorNeutralStrokeDisabled);}",".f18rmfxp:hover{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1jnshp0:hover{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1al02dq:hover .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1t6o4dc:hover:active{background-color:var(--colorNeutralBackgroundDisabled);}",".f10ztigi:hover:active{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1ft5sdu:hover:active{border-right-color:var(--colorNeutralStrokeDisabled);}",".f1gzf82w:hover:active{border-left-color:var(--colorNeutralStrokeDisabled);}",".f12zbtn2:hover:active{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fcvwxyo:hover:active{color:var(--colorNeutralForegroundDisabled);}",".f8w4c43:hover:active{cursor:not-allowed;}",".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}",".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}",".f1dwjv2g:hover:active .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}"],m:[["@media (forced-colors: active){.f4lkoma{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fjwq6ea:focus{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lr3nhc:focus{border-right-color:GrayText;}.f1mbxvi6:focus{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fn5gmvv:focus{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1vmkb5g:hover{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f53ppgq:hover{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1663y11:hover{border-right-color:GrayText;}.f80fkiy:hover{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18v5270:hover{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1kc2mi9:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1y0svfh:hover:active{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fihuait:hover:active{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnxhupq:hover:active{border-right-color:GrayText;}.fyd6l6x:hover:active{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fx507ft:hover:active{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fb3rf2x:hover:active{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),aG=$({circular:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f1062rbf"},rounded:{},square:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"fj0ryk1"},primary:{B8q5s1w:"f17t0x8g",Bci5o5g:["f194v5ow","fk7jm04"],n8qw10:"f1qgg65p",Bdrgwmp:["fk7jm04","f194v5ow"],j6ew2k:["fhgccpy","fjo7pq6"],he4mth:"f32wu9k",Byr4aka:"fu5nqqq",lks7q5:["f13prjl2","f1nl83rv"],Bnan3qt:"f1czftr5",k1dn9:["f1nl83rv","f13prjl2"],Boium3a:["f12k37oa","fdnykm2"],tm8e47:"fr96u23"},small:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"fazmxh"},medium:{},large:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f1b6alqh"}},{d:[[".f1062rbf[data-fui-focus-visible]{border-radius:var(--borderRadiusCircular);}",{p:-1}],[".fj0ryk1[data-fui-focus-visible]{border-radius:var(--borderRadiusNone);}",{p:-1}],".f17t0x8g[data-fui-focus-visible]{border-top-color:var(--colorStrokeFocus2);}",".f194v5ow[data-fui-focus-visible]{border-right-color:var(--colorStrokeFocus2);}",".fk7jm04[data-fui-focus-visible]{border-left-color:var(--colorStrokeFocus2);}",".f1qgg65p[data-fui-focus-visible]{border-bottom-color:var(--colorStrokeFocus2);}",".fhgccpy[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".fjo7pq6[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".f32wu9k[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;}",".fu5nqqq[data-fui-focus-visible]:hover{border-top-color:var(--colorStrokeFocus2);}",".f13prjl2[data-fui-focus-visible]:hover{border-right-color:var(--colorStrokeFocus2);}",".f1nl83rv[data-fui-focus-visible]:hover{border-left-color:var(--colorStrokeFocus2);}",".f1czftr5[data-fui-focus-visible]:hover{border-bottom-color:var(--colorStrokeFocus2);}",[".fazmxh[data-fui-focus-visible]{border-radius:var(--borderRadiusSmall);}",{p:-1}],[".f1b6alqh[data-fui-focus-visible]{border-radius:var(--borderRadiusLarge);}",{p:-1}]],t:["@supports (-moz-appearance:button){.f12k37oa[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}.fdnykm2[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}}","@supports (-moz-appearance:button){.fr96u23[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),sG=$({small:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fu97m5z",Bf4jedk:"f17fgpbq",B2u0y6b:"f1jt17bm"},medium:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f18ktai2",Bf4jedk:"fwbmr0d",B2u0y6b:"f44c6la"},large:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1hbd1aw",Bf4jedk:"f12clzc2",B2u0y6b:"fjy1crr"}},{d:[[".fu97m5z{padding:1px;}",{p:-1}],".f17fgpbq{min-width:24px;}",".f1jt17bm{max-width:24px;}",[".f18ktai2{padding:5px;}",{p:-1}],".fwbmr0d{min-width:32px;}",".f44c6la{max-width:32px;}",[".f1hbd1aw{padding:7px;}",{p:-1}],".f12clzc2{min-width:40px;}",".fjy1crr{max-width:40px;}"]}),cG=$({small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3",Bqrlyyl:"fbaiahx"},medium:{},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun",Bqrlyyl:"f1exjqw5"},before:{t21cq0:["f1nizpg2","f1a695kz"]},after:{Frg6f3:["f1a695kz","f1nizpg2"]}},{d:[".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".fbaiahx{--fui-Button__icon--spacing:var(--spacingHorizontalXS);}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".f1exjqw5{--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}",".f1nizpg2{margin-right:var(--fui-Button__icon--spacing);}",".f1a695kz{margin-left:var(--fui-Button__icon--spacing);}"]}),A6=e=>{"use no memo";const t=nG(),n=rG(),r=oG(),o=iG(),i=aG(),a=sG(),s=cG(),{appearance:c,disabled:l,disabledFocusable:d,icon:A,iconOnly:f,iconPosition:m,shape:v,size:p}=e;return e.root.className=G(VC.root,t,c&&r[c],r[p],A&&p==="small"&&r.smallWithIcon,A&&p==="large"&&r.largeWithIcon,r[v],(l||d)&&o.base,(l||d)&&o.highContrast,c&&(l||d)&&o[c],c==="primary"&&i.primary,i[p],i[v],f&&a[p],e.root.className),e.icon&&(e.icon.className=G(VC.icon,n,!!e.root.children&&s[m],s[p],e.icon.className)),e},ri=g.forwardRef((e,t)=>{const n=u6(e,t);return A6(n),Ye("useButtonStyles_unstable")(n),QX(n)});ri.displayName="Button";const f6=g.createContext(void 0);f6.Provider;const m6=()=>g.useContext(f6);function Lk(e,t){return lG(m6(),e,t)}function lG(e,t,n){if(!e)return t;t={...t};const{generatedControlId:r,hintId:o,labelFor:i,labelId:a,required:s,validationMessageId:c,validationState:l}=e;if(r){var d,A;(A=(d=t).id)!==null&&A!==void 0||(d.id=r)}if(a&&(!(n!=null&&n.supportsLabelFor)||i!==t.id)){var f,m,v;(v=(f=t)[m="aria-labelledby"])!==null&&v!==void 0||(f[m]=a)}if((c||o)&&(t["aria-describedby"]=[c,o,t==null?void 0:t["aria-describedby"]].filter(Boolean).join(" ")),l==="error"){var p,y,b;(b=(p=t)[y="aria-invalid"])!==null&&b!==void 0||(p[y]=!0)}if(s)if(n!=null&&n.supportsRequired){var h,w;(w=(h=t).required)!==null&&w!==void 0||(h.required=!0)}else{var x,k,S;(S=(x=t)[k="aria-required"])!==null&&S!==void 0||(x[k]=!0)}if(n!=null&&n.supportsSize){var N,C;(C=(N=t).size)!==null&&C!==void 0||(N.size=e.size)}return t}const dG=(e,t)=>{const{disabled:n=!1,required:r=!1,weight:o="regular",size:i="medium"}=e;return{disabled:n,required:Te(r===!0?"*":r||void 0,{defaultProps:{"aria-hidden":"true"},elementType:"span"}),weight:o,size:i,components:{root:"label",required:"span"},root:be(ze("label",{ref:t,...e}),{elementType:"label"})}},uG=e=>ut(e.root,{children:[e.root.children,e.required&&Q(e.required,{})]}),qC={root:"fui-Label",required:"fui-Label__required"},AG=$({root:{Bahqtrf:"fk6fouc",sj55zd:"f19n0e5"},disabled:{sj55zd:"f1s2aq7o",Bbusuzp:"f1dcs8yz"},required:{sj55zd:"f1whyuy6",uwmqm3:["fruq291","f7x41pl"]},small:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},medium:{Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi"},large:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k",Bhrd7zp:"fl43uef"},semibold:{Bhrd7zp:"fl43uef"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),fG=e=>{"use no memo";const t=AG();return e.root.className=G(qC.root,t.root,e.disabled&&t.disabled,t[e.size],e.weight==="semibold"&&t.semibold,e.root.className),e.required&&(e.required.className=G(qC.required,t.required,e.disabled&&t.disabled,e.required.className)),e},al=g.forwardRef((e,t)=>{const n=dG(e,t);return fG(n),Ye("useLabelStyles_unstable")(n),uG(n)});al.displayName="Label";const mG=(e,t)=>{"use no memo";e=Lk(e,{supportsLabelFor:!0,supportsRequired:!0});const{disabled:n=!1,required:r,shape:o="square",size:i="medium",labelPosition:a="after",onChange:s}=e,[c,l]=Mn({defaultState:e.defaultChecked,state:e.checked,initialState:!1}),d=Bh({props:e,primarySlotTagName:"input",excludedPropNames:["checked","defaultChecked","size","onChange"]}),A=c==="mixed",f=Rn("checkbox-",d.primary.id);let m;A?o==="circular"?m=g.createElement(BV,null):m=i==="large"?g.createElement(vq,null):g.createElement(mq,null):c&&(m=i==="large"?g.createElement(ZV,null):g.createElement(E8,null));const v={shape:o,checked:c,disabled:n,size:i,labelPosition:a,components:{root:"span",input:"input",indicator:"div",label:al},root:be(e.root,{defaultProps:{ref:Xm(),...d.root},elementType:"span"}),input:be(e.input,{defaultProps:{type:"checkbox",id:f,ref:t,checked:c===!0,...d.primary},elementType:"input"}),label:Te(e.label,{defaultProps:{htmlFor:f,disabled:n,required:r,size:"medium"},elementType:al}),indicator:Te(e.indicator,{renderByDefault:!0,defaultProps:{"aria-hidden":!0,children:m},elementType:"div"})};v.input.onChange=fe(y=>{const b=y.currentTarget.indeterminate?"mixed":y.currentTarget.checked;s==null||s(y,{checked:b}),l(b)});const p=ot(v.input.ref);return v.input.ref=p,nr(()=>{p.current&&(p.current.indeterminate=A)},[p,A]),v},vG=e=>ut(e.root,{children:[Q(e.input,{}),e.labelPosition==="before"&&e.label&&Q(e.label,{}),Q(e.indicator,{}),e.labelPosition==="after"&&e.label&&Q(e.label,{})]}),P0={root:"fui-Checkbox",label:"fui-Checkbox__label",input:"fui-Checkbox__input",indicator:"fui-Checkbox__indicator"},pG=Re("r1q22k1j","r18ze4k2",{r:[".r1q22k1j{position:relative;display:inline-flex;cursor:pointer;vertical-align:middle;color:var(--colorNeutralForeground3);}",".r1q22k1j:focus{outline-style:none;}",".r1q22k1j:focus-visible{outline-style:none;}",".r1q22k1j[data-fui-focus-within]:focus-within{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1q22k1j[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r18ze4k2{position:relative;display:inline-flex;cursor:pointer;vertical-align:middle;color:var(--colorNeutralForeground3);}",".r18ze4k2:focus{outline-style:none;}",".r18ze4k2:focus-visible{outline-style:none;}",".r18ze4k2[data-fui-focus-within]:focus-within{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r18ze4k2[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1q22k1j[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.r18ze4k2[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),gG=$({unchecked:{Bi91k9c:"f3p8bqa",pv5h1i:"fium13f",lj723h:"f1r2dosr",Hnthvo:"f1729es6"},checked:{sj55zd:"f19n0e5",wkncrt:"f35ds98",zxk7z7:"f12mnkne",Hmsnfy:"fei9a8h",e6czan:"fix56y3",pv5h1i:"f1bcv2js",qbydtz:"f7dr4go",Hnthvo:"f1r5cpua"},mixed:{sj55zd:"f19n0e5",Hmsnfy:"f1l27tf0",zxk7z7:"fcilktj",pv5h1i:"f1lphd54",Bunfa6h:"f1obkvq7",Hnthvo:"f2gmbuh",B15ykmv:"f1oy4fa1"},disabled:{Bceei9c:"f158kwzp",sj55zd:"f1s2aq7o",Hmsnfy:"f1w7mfl5",zxk7z7:"fcoafq6",Bbusuzp:"f1dcs8yz",mrqfp9:"fxb3eh3"}},{h:[".f3p8bqa:hover{color:var(--colorNeutralForeground2);}",".fium13f:hover{--fui-Checkbox__indicator--borderColor:var(--colorNeutralStrokeAccessibleHover);}",".fix56y3:hover{--fui-Checkbox__indicator--backgroundColor:var(--colorCompoundBrandBackgroundHover);}",".f1bcv2js:hover{--fui-Checkbox__indicator--borderColor:var(--colorCompoundBrandBackgroundHover);}",".f1lphd54:hover{--fui-Checkbox__indicator--borderColor:var(--colorCompoundBrandStrokeHover);}",".f1obkvq7:hover{--fui-Checkbox__indicator--color:var(--colorCompoundBrandForeground1Hover);}"],a:[".f1r2dosr:active{color:var(--colorNeutralForeground1);}",".f1729es6:active{--fui-Checkbox__indicator--borderColor:var(--colorNeutralStrokeAccessiblePressed);}",".f7dr4go:active{--fui-Checkbox__indicator--backgroundColor:var(--colorCompoundBrandBackgroundPressed);}",".f1r5cpua:active{--fui-Checkbox__indicator--borderColor:var(--colorCompoundBrandBackgroundPressed);}",".f2gmbuh:active{--fui-Checkbox__indicator--borderColor:var(--colorCompoundBrandStrokePressed);}",".f1oy4fa1:active{--fui-Checkbox__indicator--color:var(--colorCompoundBrandForeground1Pressed);}"],d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".f35ds98{--fui-Checkbox__indicator--backgroundColor:var(--colorCompoundBrandBackground);}",".f12mnkne{--fui-Checkbox__indicator--color:var(--colorNeutralForegroundInverted);}",".fei9a8h{--fui-Checkbox__indicator--borderColor:var(--colorCompoundBrandBackground);}",".f1l27tf0{--fui-Checkbox__indicator--borderColor:var(--colorCompoundBrandStroke);}",".fcilktj{--fui-Checkbox__indicator--color:var(--colorCompoundBrandForeground1);}",".f158kwzp{cursor:default;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1w7mfl5{--fui-Checkbox__indicator--borderColor:var(--colorNeutralStrokeDisabled);}",".fcoafq6{--fui-Checkbox__indicator--color:var(--colorNeutralForegroundDisabled);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fxb3eh3{--fui-Checkbox__indicator--color:GrayText;}}",{m:"(forced-colors: active)"}]]}),hG=Re("ruo9svu",null,[".ruo9svu{box-sizing:border-box;cursor:inherit;height:100%;margin:0;opacity:0;position:absolute;top:0;width:calc(16px + 2 * var(--spacingHorizontalS));}"]),bG=$({before:{j35jbq:["f1e31b4d","f1vgc2s3"]},after:{oyh7mz:["f1vgc2s3","f1e31b4d"]},large:{a9b677:"f1mq5jt6"}},{d:[".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f1mq5jt6{width:calc(20px + 2 * var(--spacingHorizontalS));}"]}),yG=Re("rl7ci6d",null,[".rl7ci6d{align-self:flex-start;box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--fui-Checkbox__indicator--color);background-color:var(--fui-Checkbox__indicator--backgroundColor);border-color:var(--fui-Checkbox__indicator--borderColor, var(--colorNeutralStrokeAccessible));border-style:solid;border-width:var(--strokeWidthThin);border-radius:var(--borderRadiusSmall);margin:var(--spacingVerticalS) var(--spacingHorizontalS);fill:currentColor;pointer-events:none;font-size:12px;height:16px;width:16px;}"]),wG=$({large:{Be2twd7:"f4ybsrx",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},circular:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f44lkw9"}},{d:[".f4ybsrx{font-size:16px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",[".f44lkw9{border-radius:var(--borderRadiusCircular);}",{p:-1}]]}),xG=$({base:{qb2dma:"f7nlbp4",sj55zd:"f1ym3bx4",Bceei9c:"fpo1scq",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1f5q0n8"},before:{z189sj:["f7x41pl","fruq291"]},after:{uwmqm3:["fruq291","f7x41pl"]},medium:{B6of3ja:"fjzwpt6",jrapky:"fh6j2fo"},large:{B6of3ja:"f1xlvstr",jrapky:"f49ad5g"}},{d:[".f7nlbp4{align-self:center;}",".f1ym3bx4{color:inherit;}",".fpo1scq{cursor:inherit;}",[".f1f5q0n8{padding:var(--spacingVerticalS) var(--spacingHorizontalS);}",{p:-1}],".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".fjzwpt6{margin-top:calc((16px - var(--lineHeightBase300)) / 2);}",".fh6j2fo{margin-bottom:calc((16px - var(--lineHeightBase300)) / 2);}",".f1xlvstr{margin-top:calc((20px - var(--lineHeightBase300)) / 2);}",".f49ad5g{margin-bottom:calc((20px - var(--lineHeightBase300)) / 2);}"]}),kG=e=>{"use no memo";const{checked:t,disabled:n,labelPosition:r,shape:o,size:i}=e,a=pG(),s=gG();e.root.className=G(P0.root,a,n?s.disabled:t==="mixed"?s.mixed:t?s.checked:s.unchecked,e.root.className);const c=hG(),l=bG();e.input.className=G(P0.input,c,i==="large"&&l.large,l[r],e.input.className);const d=yG(),A=wG();e.indicator&&(e.indicator.className=G(P0.indicator,d,i==="large"&&A.large,o==="circular"&&A.circular,e.indicator.className));const f=xG();return e.label&&(e.label.className=G(P0.label,f.base,f[i],f[r],e.label.className)),e},$f=g.forwardRef((e,t)=>{const n=mG(e,t);return kG(n),Ye("useCheckboxStyles_unstable")(n),vG(n)});$f.displayName="Checkbox";const v6=Vi({activeOption:void 0,appearance:"outline",focusVisible:!1,open:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){},setOpen(){},size:"medium"});v6.Provider;const SG={activeOption:void 0,focusVisible:!1,multiselect:!1,getOptionById(){},getOptionsMatchingValue(){return[]},registerOption(){return()=>{}},selectedOptions:[],onOptionClick(){},onActiveDescendantChange(){},selectOption(){},setActiveOption(){}},Qm=Vi(void 0),Kr=e=>Qs(Qm,(t=SG)=>e(t)),jG=Qm.Provider;function NG(e){const{appearance:t,open:n,getOptionById:r,getOptionsMatchingValue:o,registerOption:i,selectedOptions:a,selectOption:s,setOpen:c,size:l,activeDescendantController:d,onOptionClick:A,onActiveDescendantChange:f}=e,m={activeOption:void 0,appearance:t,focusVisible:!1,open:n,registerOption:i,selectedOptions:a,selectOption:s,setActiveOption:()=>null,setOpen:c,size:l},v={activeOption:void 0,focusVisible:!1,getOptionById:r,getOptionsMatchingValue:o,registerOption:i,selectedOptions:a,selectOption:s,setActiveOption:()=>null,onOptionClick:A,onActiveDescendantChange:f},p=g.useMemo(()=>({controller:d}),[d]);return{combobox:m,activeDescendant:p,listbox:v}}function CG(e){const t=qh(Qm),{getOptionById:n,getOptionsMatchingValue:r,multiselect:o,registerOption:i,selectedOptions:a,selectOption:s,activeDescendantController:c}=e,l=Kr(p=>p.registerOption),d=Kr(p=>p.onOptionClick),A=Kr(p=>p.onActiveDescendantChange),m={activeOption:void 0,focusVisible:!1,getOptionById:n,getOptionsMatchingValue:r,multiselect:o,registerOption:t?l:i,selectedOptions:a,selectOption:s,setActiveOption:()=>{},onOptionClick:d,onActiveDescendantChange:A},v=g.useMemo(()=>({controller:c}),[c]);return{listbox:m,activeDescendant:v}}function Jp(e,t={}){const{open:n=!0,multiselect:r=!1}=t,o=e.key,{altKey:i,ctrlKey:a,key:s,metaKey:c}=e;return s.length===1&&o!==To&&!i&&!a&&!c?"Type":n?o===af&&i||o===Hn||!r&&o===To?"CloseSelect":r&&o===To?"Select":o===$s?"Close":o===cu?"Next":o===af?"Previous":o===j8?"First":o===S8?"Last":o===C8?"PageUp":o===N8?"PageDown":o===k8?"Tab":"None":o===cu||o===af||o===Hn||o===To?"Open":"None"}const p6=()=>{const e=g.useRef(new Map),t=g.useMemo(()=>({getCount:()=>e.current.size,getOptionAtIndex:()=>{},getIndexOfId:()=>-1,getOptionById:l=>e.current.get(l),getOptionsMatchingText:l=>Array.from(e.current.values()).filter(({text:d})=>l(d)),getOptionsMatchingValue:l=>{const d=[];for(const A of e.current.values())l(A.value)&&d.push(A);return d}}),[]),n=g.useCallback(r=>(e.current.set(r.id,r),()=>e.current.delete(r.id)),[]);return{...t,options:Array.from(e.current.values()),registerOption:n}},g6=e=>{const{defaultSelectedOptions:t,multiselect:n,onOptionSelect:r}=e,[o,i]=Mn({state:e.selectedOptions,defaultState:t,initialState:[]}),a=g.useCallback((c,l)=>{if(l.disabled)return;let d=[l.value];if(n){const A=o.findIndex(f=>f===l.value);A>-1?d=[...o.slice(0,A),...o.slice(A+1)]:d=[...o,l.value]}i(d),r==null||r(c,{optionValue:l.value,optionText:l.text,selectedOptions:d})},[r,n,o,i]);return{clearSelection:c=>{i([]),r==null||r(c,{optionValue:void 0,optionText:void 0,selectedOptions:[]})},selectOption:a,selectedOptions:o}},Qp={root:"fui-Option",checkIcon:"fui-Option__checkIcon"},TG=$({root:{Bt984gj:"f122n59",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",sj55zd:"f19n0e5",i8kkvl:"f1ufnopg",Bceei9c:"f1k6fduh",mc9l5x:"f22iagw",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fm5eomj",qhf8xq:"f10pi13n",Jwef8y:"f1knas48",Bi91k9c:"feu1g3u",zqbkvg:"fo79ri9",h82x05:["f1osiabc","f1e8le25"],cqj998:"f1yusjty",j3hlsh:["f1e8le25","f1osiabc"],ecr2s2:"fb40n2d",lj723h:"f1g4hkjv",Btxx2vb:"f1lnr2zp",sltcwy:["f1ogfk9z","f1g7j8ec"],dnwvvm:"fiuf46r",Blyvkvs:["f1g7j8ec","f1ogfk9z"]},active:{Bowz1zl:"f11vrvdw",oxogb1:"f17hxjb7",Ix2sn8:"f1dha69c",q7v32p:"f1lm7500",B7cbj04:0,Bewtojm:0,b50fsz:0,B1wzb3v:0,Bqwk70n:0,B37u8z8:0,avt0cx:0,f0sref:0,B9fkznv:0,Be3o27t:0,Bertapg:0,B53xpsf:0,Bsv72rj:0,B39dzdd:0,Btq9bd3:0,Bqfxd14:0,atup0s:"fo7xqb",Fffuxt:0,Bttcd12:0,Beitzug:0,Bqougee:0,B86i8pi:"f1kurthe",Bhijsxg:"fwq15dy",kktds4:"f1pb3wry",Bmau3bo:["ftjv2f4","f1flhb1f"],npektv:["f1flhb1f","ftjv2f4"]},disabled:{sj55zd:"f1s2aq7o",Jwef8y:"f9ql6rf",Bi91k9c:"fvgxktp",zqbkvg:"f185j3qj",h82x05:["f1dligi3","f1vydzie"],cqj998:"fjw1di3",j3hlsh:["f1vydzie","f1dligi3"],ecr2s2:"fgj9um3",lj723h:"f19wldhg",Btxx2vb:"f1ss0kt2",sltcwy:["f1t6oli3","fjy9ci8"],dnwvvm:"fresaxk",Blyvkvs:["fjy9ci8","f1t6oli3"],Bbusuzp:"f1dcs8yz"},selected:{},checkIcon:{Be2twd7:"fod5ikn",Frg6f3:["f18b9hdq","fn6qj8t"],t21cq0:["f1xk557c","f1h9en5y"],Bcdw1i0:"fd7fpy0",Bo70h7d:"fvc9v3g"},selectedCheck:{Bcdw1i0:"f1022m68"},multiselectCheck:{Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f1l3cf7o",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fq9zq91",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bkfmm31:"f1w9h62z",Be2twd7:"f1ugzwwg",Bqenvij:"fd461yt",a9b677:"fjw5fx7",Bcdw1i0:"f1022m68"},selectedMultiselectCheck:{De3pzq:"ftywsgz",sj55zd:"fqpbvvt",g2u3we:"f3xi7mh",h3c5rm:["ftovhe4","f1wczvin"],B9xav0g:"f68vbr6",zhjwy3:["f1wczvin","ftovhe4"]},checkDisabled:{sj55zd:"f1s2aq7o",Bbusuzp:"f1dcs8yz"},multiselectCheckDisabled:{g2u3we:"f1r1t4y1",h3c5rm:["fmj8ijw","figx54m"],B9xav0g:"f360ss8",zhjwy3:["figx54m","fmj8ijw"]}},{d:[".f122n59{align-items:center;}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}",".f1k6fduh{cursor:pointer;}",".f22iagw{display:flex;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",[".fm5eomj{padding:var(--spacingVerticalSNudge) var(--spacingHorizontalS);}",{p:-1}],".f10pi13n{position:relative;}",'.f11vrvdw[data-activedescendant-focusvisible]::after{content:"";}',".f17hxjb7[data-activedescendant-focusvisible]::after{position:absolute;}",".f1dha69c[data-activedescendant-focusvisible]::after{pointer-events:none;}",".f1lm7500[data-activedescendant-focusvisible]::after{z-index:1;}",[".fo7xqb[data-activedescendant-focusvisible]::after{border:2px solid var(--colorStrokeFocus2);}",{p:-2}],[".f1kurthe[data-activedescendant-focusvisible]::after{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fwq15dy[data-activedescendant-focusvisible]::after{top:-2px;}",".f1pb3wry[data-activedescendant-focusvisible]::after{bottom:-2px;}",".ftjv2f4[data-activedescendant-focusvisible]::after{left:-2px;}",".f1flhb1f[data-activedescendant-focusvisible]::after{right:-2px;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}",".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".fd7fpy0{visibility:hidden;}",".fvc9v3g svg{display:block;}",".f1022m68{visibility:visible;}",[".f1l3cf7o{border:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}",{p:-2}],[".fq9zq91{border-radius:var(--borderRadiusSmall);}",{p:-1}],".f1ewtqcl{box-sizing:border-box;}",".f4d9j23{justify-content:center;}",".f1w9h62z{fill:currentColor;}",".f1ugzwwg{font-size:12px;}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".ftywsgz{background-color:var(--colorCompoundBrandBackground);}",".fqpbvvt{color:var(--colorNeutralForegroundInverted);}",".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}",".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}",".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}",".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}",".f1r1t4y1{border-top-color:var(--colorNeutralForegroundDisabled);}",".fmj8ijw{border-right-color:var(--colorNeutralForegroundDisabled);}",".figx54m{border-left-color:var(--colorNeutralForegroundDisabled);}",".f360ss8{border-bottom-color:var(--colorNeutralForegroundDisabled);}"],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}",".fo79ri9:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}",".f1osiabc:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}",".f1e8le25:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}",".f1yusjty:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".f185j3qj:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}",".f1dligi3:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}",".f1vydzie:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}",".fjw1di3:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1g4hkjv:active{color:var(--colorNeutralForeground1Pressed);}",".f1lnr2zp:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}",".f1ogfk9z:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}",".f1g7j8ec:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}",".fiuf46r:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}",".fgj9um3:active{background-color:var(--colorTransparentBackground);}",".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}",".f1ss0kt2:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}",".f1t6oli3:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}",".fjy9ci8:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}",".fresaxk:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),IG=e=>{"use no memo";const{disabled:t,multiselect:n,selected:r}=e,o=TG();return e.root.className=G(Qp.root,o.root,o.active,t&&o.disabled,r&&o.selected,e.root.className),e.checkIcon&&(e.checkIcon.className=G(Qp.checkIcon,o.checkIcon,n&&o.multiselectCheck,r&&o.selectedCheck,r&&n&&o.selectedMultiselectCheck,t&&o.checkDisabled,t&&n&&o.multiselectCheckDisabled,e.checkIcon.className)),e},_C={activeOption:void 0,focusVisible:!1,setActiveOption:()=>null},PG=(e,t)=>{"use no memo";const{multiselect:n,disableAutoFocus:r=!1}=e,o=p6(),{listboxRef:i,activeParentRef:a,controller:s}=M8({matchOption:R=>R.classList.contains(Qp.root)}),c=qh(Qm),l=Kr(R=>R.onActiveDescendantChange),d=Kr(R=>R.getOptionById),A=Kr(R=>R.getOptionsMatchingValue),f=c?d:o.getOptionById,m=c?A:o.getOptionsMatchingValue,v=g.useMemo(()=>{let R=null;const O=_=>{const Y=_;l==null||l(Y)};return _=>{if(!_){R==null||R.removeEventListener("activedescendantchange",O);return}R=_,R.addEventListener("activedescendantchange",O)}},[l]),[p,y]=g.useState(!1);p8(y);const b=I8(),h=NV(),w=h?b.controller:s,{clearSelection:x,selectedOptions:k,selectOption:S}=g6(e),N=R=>{const O=Jp(R,{open:!0}),_=w.active(),Y=_?f(_):null;switch(O){case"First":case"Last":case"Next":case"Previous":case"PageDown":case"PageUp":case"CloseSelect":case"Select":R.preventDefault();break}switch(O){case"Next":Y?w.next():w.first();break;case"Previous":Y?w.prev():w.first();break;case"PageUp":case"First":w.first();break;case"PageDown":case"Last":w.last();break;case"Select":case"CloseSelect":Y&&S(R,Y);break}},C=Kr(R=>R.selectedOptions),M=Kr(R=>R.selectOption),j=c?{selectedOptions:C,selectOption:M,..._C}:{selectedOptions:k,selectOption:S,..._C};g.useEffect(()=>{if(!h){if(w.hideFocusVisibleAttributes(),!r)if(!n&&j.selectedOptions.length>0){const R=m(O=>O===j.selectedOptions[0]).pop();R!=null&&R.id&&w.focus(R.id)}else w.first();return()=>{w.blur()}}},[]);const T=g.useCallback(()=>{h||(w.showFocusVisibleAttributes(),p&&w.scrollActiveIntoView())},[w,h,p]),F=g.useCallback(()=>{h||w.hideFocusVisibleAttributes()},[w,h]),H={components:{root:"div"},root:be(ze("div",{ref:ot(t,a,i,v),role:n?"menu":"listbox",tabIndex:0,...e}),{elementType:"div"}),standalone:!c,multiselect:n,clearSelection:x,activeDescendantController:w,onActiveDescendantChange:l,...o,...j};return H.root.onKeyDown=fe(We(H.root.onKeyDown,N)),H.root.onFocus=fe(We(H.root.onFocus,T)),H.root.onBlur=fe(We(H.root.onBlur,F)),H},DG=(e,t)=>Q(T8,{value:t.activeDescendant,children:Q(Qm.Provider,{value:t.listbox,children:Q(e.root,{})})}),MG={root:"fui-Listbox"},RG=$({root:{De3pzq:"fxugw4r",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Bf4jedk:"f3hsy1e",Bmxbyg5:"f5zp4f",Bw0xxkn:0,oeaueh:0,Bpd4iqm:0,Befb4lg:"f1iepc6i",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1t35pdg",Belr9w4:"fiut8dr"}},{d:[".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".f3hsy1e{min-width:160px;}",".f5zp4f{overflow-y:auto;}",[".f1iepc6i{outline:1px solid var(--colorTransparentStroke);}",{p:-1}],[".f1t35pdg{padding:var(--spacingHorizontalXS);}",{p:-1}],".fiut8dr{row-gap:var(--spacingHorizontalXXS);}"]}),zG=e=>{"use no memo";const t=RG();return e.root.className=G(MG.root,t.root,e.root.className),e},Wk=g.forwardRef((e,t)=>{const n=PG(e,t),r=CG(n);return zG(n),Ye("useListboxStyles_unstable")(n),DG(n,r)});Wk.displayName="Listbox";function EG(e,t){if(e!==void 0)return e;let n="",r=!1;return g.Children.forEach(t,o=>{typeof o=="string"?n+=o:r=!0}),r&&console.warn("Provide a `text` prop to Option components when they contain non-string children."),n}const BG=(e,t)=>{const{children:n,disabled:r,text:o,value:i}=e,a=g.useRef(null),s=EG(o,n),c=i??s,l=Rn("fluent-option",e.id),d=g.useMemo(()=>({id:l,disabled:r,text:s,value:c}),[l,r,s,c]),{controller:A}=I8(),f=Kr(x=>x.multiselect),m=Kr(x=>x.registerOption),v=Kr(x=>{const k=x.selectedOptions;return c!==void 0&&k.find(S=>S===c)!==void 0}),p=Kr(x=>x.selectOption),y=Kr(x=>x.onOptionClick);let b=g.createElement(RV,null);f&&(b=v?g.createElement(E8,null):"");const h=x=>{var k;if(r){x.preventDefault();return}A.focus(l),p(x,d),y(x),(k=e.onClick)===null||k===void 0||k.call(e,x)};g.useEffect(()=>{if(l&&a.current)return m(d,a.current)},[l,d,m]);const w=f?{role:"menuitemcheckbox","aria-checked":v}:{role:"option","aria-selected":v};return{components:{root:"div",checkIcon:"span"},root:be(ze("div",{ref:ot(t,a),"aria-disabled":r?"true":void 0,id:l,...w,...e,onClick:h}),{elementType:"div"}),checkIcon:Te(e.checkIcon,{renderByDefault:!0,defaultProps:{"aria-hidden":"true",children:b},elementType:"span"}),disabled:r,multiselect:f,selected:v,focusVisible:!1,active:!1}},FG=e=>ut(e.root,{children:[e.checkIcon&&Q(e.checkIcon,{}),e.root.children]}),$a=g.forwardRef((e,t)=>{const n=BG(e,t);return IG(n),Ye("useOptionStyles_unstable")(n),FG(n)});$a.displayName="Option";const OG=e=>{"use no memo";const{appearance:t="outline",disableAutoFocus:n,children:r,clearable:o=!1,editable:i=!1,inlinePopup:a=!1,mountNode:s=void 0,multiselect:c,onOpenChange:l,size:d="medium",activeDescendantController:A,freeform:f=!1,disabled:m=!1,onActiveOptionChange:v=null}=e,p=p6(),{getOptionsMatchingValue:y}=p,{getOptionById:b}=p,h=g.useCallback(()=>{const z=A.active();return z?b(z):void 0},[A,b]),w=h(),x=g.useCallback(z=>{let L;if(typeof z=="function"){const q=h();L=z(q)}L?A.focus(L.id):A.blur()},[A,h]),[k,S]=g.useState(!1),[N,C]=g.useState(!1),M=g.useRef(!1),j=LD(),[T,F]=Mn({state:e.value,initialState:void 0}),{selectedOptions:H,selectOption:R,clearSelection:O}=g6(e),_=g.useCallback((z,L)=>{zs.unstable_batchedUpdates(()=>{F(void 0),R(z,L)})},[F,R]),Y=g.useMemo(()=>{if(T!==void 0)return T;if(j&&e.defaultValue!==void 0)return e.defaultValue;const z=y(L=>H.includes(L)).map(L=>L.text);return c?i?"":z.join(", "):z[0]},[T,i,y,c,e.defaultValue,H]),[I,E]=Mn({state:e.open,defaultState:e.defaultOpen,initialState:!1}),D=g.useCallback((z,L)=>{m||(l==null||l(z,{open:L}),zs.unstable_batchedUpdates(()=>{!L&&!f&&F(void 0),E(L)}))},[l,E,F,f,m]);g.useEffect(()=>{if(I){if(!c&&H.length>0){const z=y(L=>L===H[0]).pop();z!=null&&z.id&&A.focus(z.id)}}else A.blur()},[I,A]),g.useEffect(()=>{I&&!n&&!A.active()&&A.first()},[I,r,n,A,b]);const W=fe(z=>{const L=z.detail.previousId?p.getOptionById(z.detail.previousId):null,q=p.getOptionById(z.detail.id);v==null||v(z,{event:z,type:"change",previousOption:L,nextOption:q})});return{...p,freeform:f,disabled:m,selectOption:_,clearSelection:O,selectedOptions:H,activeOption:w,appearance:t,clearable:o,focusVisible:k,ignoreNextBlur:M,inlinePopup:a,mountNode:s,open:I,hasFocus:N,setActiveOption:x,setFocusVisible:S,setHasFocus:C,setOpen:D,setValue:F,size:d,value:Y,multiselect:c,onOptionClick:fe(z=>{c||D(z,!1)}),onActiveDescendantChange:W}};function LG(e){const{positioning:t}=e,r={position:"below",align:"start",offset:{crossAxis:0,mainAxis:2},fallbackPositions:["above","after","after-top","before","before-top"],matchTargetSize:"width",autoSize:!0,...Jm(t)},{targetRef:o,containerRef:i}=Kh(r);return[i,o]}function WG(e,t,n){const{state:{multiselect:r},triggerRef:o,defaultProps:i}=n,a=Rn("fluent-listbox",_p(e)?e.id:void 0),s=Te(e,{renderByDefault:!0,elementType:Wk,defaultProps:{id:a,multiselect:r,tabIndex:void 0,...i}}),c=fe(We(A=>{A.preventDefault()},s==null?void 0:s.onMouseDown)),l=fe(We(A=>{var f;A.preventDefault(),(f=o.current)===null||f===void 0||f.focus()},s==null?void 0:s.onClick)),d=ot(s==null?void 0:s.ref,t);return s&&(s.ref=d,s.onMouseDown=c,s.onClick=l),s}function UG(e,t,n){const{state:{open:r,setOpen:o,setHasFocus:i},defaultProps:a,elementType:s,activeDescendantController:c}=n,l=be(e,{defaultProps:{type:"text","aria-expanded":r,role:"combobox",...typeof a=="object"&&a},elementType:s}),d=g.useRef(null);return l.ref=ot(d,l.ref,t),l.onBlur=We(A=>{o(A,!1),i(!1)},l.onBlur),l.onFocus=We(A=>{A.target===A.currentTarget&&i(!0)},l.onFocus),l.onClick=We(A=>{o(A,!r)},l.onClick),l.onKeyDown=We(HG({activeDescendantController:c,...n.state}),l.onKeyDown),l}function HG(e){const{activeDescendantController:t,getOptionById:n,setOpen:r,selectOption:o,multiselect:i,open:a}=e,s=g.useCallback(()=>{const p=t.active();return p?n(p):void 0},[t,n]),c=()=>{t.first()},l=()=>{t.last()},d=p=>{p?t.next():t.first()},A=p=>{p?t.prev():t.first()},f=()=>{for(let p=0;p<10;p++)t.prev()},m=()=>{for(let p=0;p<10;p++)t.next()},v=dZ();return fe(p=>{const y=Jp(p,{open:a,multiselect:i}),b=s();switch(y){case"First":case"Last":case"Next":case"Previous":case"PageDown":case"PageUp":case"Open":case"Close":case"CloseSelect":case"Select":p.preventDefault();break}switch(v(!0),y){case"First":c();break;case"Last":l();break;case"Next":d(b);break;case"Previous":A(b);break;case"PageDown":m();break;case"PageUp":f();break;case"Open":r(p,!0);break;case"Close":p.stopPropagation(),r(p,!1);break;case"CloseSelect":!i&&!(b!=null&&b.disabled)&&r(p,!1);case"Select":b&&o(p,b);break;case"Tab":!i&&b&&o(p,b);break}})}function ZG(e,t,n){"use no memo";const{state:{open:r,value:o,selectOption:i,setValue:a,multiselect:s,selectedOptions:c,clearSelection:l,getOptionById:d,setOpen:A},freeform:f,defaultProps:m,activeDescendantController:v}=n,p=C=>{if(!r&&!f){const M=v.active(),j=M?d(M):null;o&&j&&o.trim().toLowerCase()===(j==null?void 0:j.text.toLowerCase())&&i(C,j),a(void 0)}},y=C=>{const M=C==null?void 0:C.trim().toLowerCase();if(!M||M.length===0){v.blur();return}const j=F=>F.toLowerCase().indexOf(M)===0,T=v.find(F=>{const H=d(F);return!!H&&j(H.text)});if(!T){v.blur();return}return d(T)},b=C=>{const M=C.target.value;a(M);const j=y(M);!s&&c.length===1&&(M.length<1||!j)&&l(C)},h=UG(e,t,{state:n.state,defaultProps:m,elementType:"input",activeDescendantController:v});h.onChange=We(h.onChange,b),h.onBlur=We(h.onBlur,p);const[w,x]=g.useState(!1),k=g.useRef(!1),S=h.onKeyDown,N=fe(C=>{!r&&Jp(C)==="Type"&&A(C,!0),C.key===Mu||C.key===Ru?x(!0):x(!1);const M=Jp(C,{open:r,multiselect:s});if(M==="Type"?k.current=!0:(M==="Open"&&C.key!==" "||M==="Next"||M==="Previous"||M==="First"||M==="Last"||M==="PageUp"||M==="PageDown")&&(k.current=!1),(k.current||!r)&&C.key===" "){var j;e==null||(j=e.onKeyDown)===null||j===void 0||j.call(e,C);return}S==null||S(C)});return h.onKeyDown=N,w&&(h["aria-activedescendant"]=void 0),h}const VG=(e,t)=>{"use no memo";var n,r;e=Lk(e,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const{listboxRef:o,activeParentRef:i,controller:a}=M8({matchOption:z=>z.classList.contains(Qp.root)}),s=OG({...e,editable:!0,activeDescendantController:a}),{clearable:c,clearSelection:l,disabled:d,multiselect:A,open:f,selectedOptions:m,setOpen:v,value:p,hasFocus:y}=s,[b,h]=LG(e),{disableAutoFocus:w=!1,freeform:x,inlinePopup:k}=e,S=Rn("combobox-"),{primary:N,root:C}=Bh({props:e,primarySlotTagName:"input",excludedPropNames:["children","size"]}),M=g.useRef(null),j=WG(e.listbox,ot(b,o),{state:s,triggerRef:M,defaultProps:{children:e.children,disableAutoFocus:w}});var T;const F=ZG((T=e.input)!==null&&T!==void 0?T:{},ot(M,i,t),{state:s,freeform:x,defaultProps:{type:"text",value:p??"","aria-controls":f?j==null?void 0:j.id:void 0,...N},activeDescendantController:a}),H=be(e.root,{defaultProps:{"aria-owns":!k&&f?j==null?void 0:j.id:void 0,...C},elementType:"div"});H.ref=ot(H.ref,h);const R=m.length>0&&c&&!A,O={components:{root:"div",input:"input",expandIcon:"span",listbox:Wk,clearIcon:"span"},root:H,input:F,listbox:f||y?j:void 0,clearIcon:Te(e.clearIcon,{defaultProps:{"aria-hidden":"true",children:g.createElement(Tk,null)},elementType:"span",renderByDefault:!0}),expandIcon:Te(e.expandIcon,{renderByDefault:!0,defaultProps:{"aria-disabled":d?"true":void 0,"aria-expanded":f,children:g.createElement(EV,null),role:"button"},elementType:"span"}),showClearIcon:R,activeDescendantController:a,...s},{targetDocument:_}=Ge();Fh({element:_,callback:z=>v(z,!1),refs:[M,b,h],disabled:!f});const{onMouseDown:Y}=O.expandIcon||{},I=fe(We(Y,z=>{var L;z.preventDefault(),O.setOpen(z,!O.open),(L=M.current)===null||L===void 0||L.focus()}));if(O.expandIcon){O.expandIcon.onMouseDown=I;const z=O.expandIcon["aria-label"]||O.expandIcon["aria-labelledby"],L="Open";if(!z)if(e["aria-labelledby"]){var E;const q=(E=O.expandIcon.id)!==null&&E!==void 0?E:`${S}-chevron`,P=`${q} ${O.input["aria-labelledby"]}`;O.expandIcon["aria-label"]=L,O.expandIcon.id=q,O.expandIcon["aria-labelledby"]=P}else e["aria-label"]?O.expandIcon["aria-label"]=`${L} ${e["aria-label"]}`:O.expandIcon["aria-label"]=L}const D=fe(We((n=O.clearIcon)===null||n===void 0?void 0:n.onMouseDown,z=>{z.preventDefault()})),W=fe(We((r=O.clearIcon)===null||r===void 0?void 0:r.onClick,z=>{l(z)}));return O.clearIcon&&(O.clearIcon.onMouseDown=D,O.clearIcon.onClick=W),A&&(O.clearIcon=void 0),O},qG=(e,t)=>Q(e.root,{children:Q(T8,{value:t.activeDescendant,children:Q(jG,{value:t.listbox,children:ut(v6.Provider,{value:t.combobox,children:[Q(e.input,{}),e.clearIcon&&Q(e.clearIcon,{}),e.expandIcon&&Q(e.expandIcon,{}),e.listbox&&(e.inlinePopup?Q(e.listbox,{}):Q(Bu,{mountNode:e.mountNode,children:Q(e.listbox,{})}))]})})})}),rA={root:"fui-Combobox",input:"fui-Combobox__input",expandIcon:"fui-Combobox__expandIcon",clearIcon:"fui-Combobox__clearIcon",listbox:"fui-Combobox__listbox"},_G=$({root:{Bt984gj:"f122n59",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",B7ck84d:"f1ewtqcl",i8kkvl:"f14mj54c",mc9l5x:"fwk3njj",Budl1dq:"fz17x9o",Brf1p80:"f1869bpl",Bf4jedk:"f1exfvgq",qhf8xq:"f10pi13n",ha4doy:"fmrv4ls",Bbr2w1p:"f14a1fxs",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7",li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"f145g4dw",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],B1q35kw:0,Bw17bha:0,Bcgy8vk:0,Bjuhk93:"f1mnjydx",Gjdm7m:"f13evtba",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",df92cz:"fv8e3ye",I188md:"ftb5wc6",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",H713fs:"f1cmft4k",B9ooomg:"f1x58t8o",Bercvud:"f1ibeo51"},listbox:{E5pizo:"f1hg901r",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Bxyxcbc:"fmmk62d",B7ck84d:"f1ewtqcl"},listboxCollapsed:{mc9l5x:"fjseox"},inlineListbox:{Bj3rh1h:"f19g0ac"},small:{Bqenvij:"frvgh55",z189sj:["fdw0yi8","fk8j09s"]},medium:{Bqenvij:"f1d2rq10",z189sj:["f11gcy0p","f1ng84yb"]},large:{i8kkvl:"f1rjii52",Bqenvij:"fbhnoac",z189sj:["fw5db7e","f1uw59to"]},outline:{De3pzq:"fxugw4r",Bgfg5da:0,B9xav0g:"f1c1zstj",oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"fhz96rm"},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"flmw63s",gg5e9n:["f1m52nbi","f1ub3y4t"],B6oc9vd:"fvs00aa",ak43y8:["f1assf6x","f4ruux4"],wmxk5l:"fqhmt4z",B50zh58:["f4ruux4","f1assf6x"]},underline:{De3pzq:"f1c21dwh",B9xav0g:0,oivjwe:0,Bn0qgzm:0,Bgfg5da:"f9ez7ne",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fokr779"},"filled-lighter":{De3pzq:"fxugw4r",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f88035w"},"filled-darker":{De3pzq:"f16xq7d1",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f88035w"},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},invalidUnderline:{hhx65j:"f1fgmyf4"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"]}},{d:[".f122n59{align-items:center;}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f1ewtqcl{box-sizing:border-box;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fwk3njj{display:inline-grid;}",".fz17x9o{grid-template-columns:1fr auto;}",".f1869bpl{justify-content:space-between;}",".f1exfvgq{min-width:250px;}",".f10pi13n{position:relative;}",".fmrv4ls{vertical-align:middle;}",".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",[".f1mnjydx::after{border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);}",{p:-1}],".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",".f1hg901r{box-shadow:var(--shadow16);}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fmmk62d{max-height:80vh;}",".fjseox{display:none;}",".f19g0ac{z-index:1;}",".frvgh55{height:24px;}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f1d2rq10{height:32px;}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".fbhnoac{height:40px;}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",[".fhz96rm{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);}",{p:-2}],".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".f9ez7ne{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}",{p:-1}],[".fokr779{border-radius:0;}",{p:-1}],[".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}",{p:-2}],".f16xq7d1{background-color:var(--colorNeutralBackground3);}",[".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}",{p:-2}],".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}"],w:[".f14a1fxs:focus-within{outline-width:2px;}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}"],a:[".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}",".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}",".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}"]}),XG=$({input:{qb2dma:"f1ub7u0d",De3pzq:"f1c21dwh",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",sj55zd:"f19n0e5",Bahqtrf:"fk6fouc",Brovlpu:"ftqa4ok",yvdlaj:"fwyc1cq",B3o7kgh:"f13ta7ih"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["fxe2rs","f1gflqzi"]},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["fzy81xo","f58b53b"]},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["f1kdav7a","footqm6"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".f1ub7u0d{align-self:stretch;}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".f3bhgqh{border:none;}",{p:-2}],".f19n0e5{color:var(--colorNeutralForeground1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}",".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}",".f13ta7ih::-webkit-input-placeholder{opacity:1;}",".f13ta7ih::-moz-placeholder{opacity:1;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",[".fxe2rs{padding:0 0 0 calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",{p:-1}],[".f1gflqzi{padding:0 calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS)) 0 0;}",{p:-1}],".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",[".fzy81xo{padding:0 0 0 calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",{p:-1}],[".f58b53b{padding:0 calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS)) 0 0;}",{p:-1}],".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",[".f1kdav7a{padding:0 0 0 calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",{p:-1}],[".footqm6{padding:0 calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge)) 0 0;}",{p:-1}],".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"],f:[".ftqa4ok:focus{outline-style:none;}"]}),GG=$({icon:{B7ck84d:"f1ewtqcl",sj55zd:"fxkbij4",Bceei9c:"f1k6fduh",mc9l5x:"ftgm304",Be2twd7:"f1pp30po",Bo70h7d:"fvc9v3g"},hidden:{mc9l5x:"fjseox"},visuallyHidden:{Bh84pgu:"f1ekcaio",Bqenvij:"f1mpe4l3",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1jlpb2r",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1c5fvqg",a9b677:"frkrog8",qhf8xq:"f1euv43f"},small:{Be2twd7:"f4ybsrx",Frg6f3:["f1h9en5y","f1xk557c"]},medium:{Be2twd7:"fe5j1ua",Frg6f3:["f1h9en5y","f1xk557c"]},large:{Be2twd7:"f1rt2boy",Frg6f3:["f1t5qyk5","f1ikr372"]},disabled:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr"}},{d:[".f1ewtqcl{box-sizing:border-box;}",".fxkbij4{color:var(--colorNeutralStrokeAccessible);}",".f1k6fduh{cursor:pointer;}",".ftgm304{display:block;}",".f1pp30po{font-size:var(--fontSizeBase500);}",".fvc9v3g svg{display:block;}",".fjseox{display:none;}",".f1ekcaio{clip:rect(0px, 0px, 0px, 0px);}",".f1mpe4l3{height:1px;}",[".f1jlpb2r{margin:-1px;}",{p:-1}],[".f1a3p1vp{overflow:hidden;}",{p:-1}],[".f1c5fvqg{padding:0px;}",{p:-1}],".frkrog8{width:1px;}",".f1euv43f{position:absolute;}",".f4ybsrx{font-size:16px;}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}",".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}"]}),YG=e=>{"use no memo";const{appearance:t,open:n,size:r,showClearIcon:o}=e,i=`${e.input["aria-invalid"]}`=="true",a=e.input.disabled,s=_G(),c=GG(),l=XG();return e.root.className=G(rA.root,s.root,s[t],s[r],!a&&t==="outline"&&s.outlineInteractive,i&&t!=="underline"&&s.invalid,i&&t==="underline"&&s.invalidUnderline,a&&s.disabled,e.root.className),e.input.className=G(rA.input,l.input,l[r],a&&l.disabled,e.input.className),e.listbox&&(e.listbox.className=G(rA.listbox,s.listbox,e.inlinePopup&&s.inlineListbox,!n&&s.listboxCollapsed,e.listbox.className)),e.expandIcon&&(e.expandIcon.className=G(rA.expandIcon,c.icon,c[r],a&&c.disabled,o&&c.visuallyHidden,e.expandIcon.className)),e.clearIcon&&(e.clearIcon.className=G(rA.clearIcon,c.icon,c[r],a&&c.disabled,!o&&c.hidden,e.clearIcon.className)),e},em=g.forwardRef((e,t)=>{const n=VG(e,t),r=NG(n);return YG(n),Ye("useComboboxStyles_unstable")(n),qG(n,r)});em.displayName="Combobox";const KG=(e,t)=>{const n=Rn("group-label"),{label:r}=e;return{components:{root:"div",label:"span"},root:be(ze("div",{ref:t,role:"group","aria-labelledby":r?n:void 0,...e}),{elementType:"div"}),label:Te(r,{defaultProps:{id:n,role:"presentation"},elementType:"span"})}},JG=e=>ut(e.root,{children:[e.label&&Q(e.label,{children:e.label.children}),e.root.children]}),XC={root:"fui-OptionGroup",label:"fui-OptionGroup__label"},QG=$({root:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Belr9w4:"fiut8dr",B8lkq7l:"f1xxzjds",eii1in:0,H93o2g:0,Gwp8xu:0,Bd39igo:"f16cmn8k",om0q45:"f5642y",Hl9o3s:"ffdf81h",sl1c2c:0,z4hxbw:0,B0i58d9:0,Bi9x0x4:0,Bgurq3m:"f1bsn9kn"},label:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",sj55zd:"f11d4kpn",mc9l5x:"ftgm304",Be2twd7:"fy9rknc",Bhrd7zp:"fl43uef",Bg96gwp:"fwrc4pm",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mpq0zz"}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}",'.f1xxzjds:not(:last-child)::after{content:"";}',[".f16cmn8k:not(:last-child)::after{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStroke2);}",{p:-1}],".f5642y:not(:last-child)::after{display:block;}",".ffdf81h:not(:last-child)::after{padding-bottom:var(--spacingHorizontalXS);}",[".f1bsn9kn:not(:last-child)::after{margin:0 calc(var(--spacingHorizontalXS) * -1) var(--spacingVerticalXS);}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f11d4kpn{color:var(--colorNeutralForeground3);}",".ftgm304{display:block;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",[".f1mpq0zz{padding:var(--spacingHorizontalS) var(--spacingHorizontalSNudge);}",{p:-1}]]}),$G=e=>{"use no memo";const t=QG();return e.root.className=G(XC.root,t.root,e.root.className),e.label&&(e.label.className=G(XC.label,t.label,e.label.className)),e},h6=g.forwardRef((e,t)=>{const n=KG(e,t);return $G(n),Ye("useOptionGroupStyles_unstable")(n),JG(n)});h6.displayName="OptionGroup";const eY=(e,t)=>{e=Lk(e,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const n=BD();var r;const{size:o="medium",appearance:i=(r=n.inputDefaultAppearance)!==null&&r!==void 0?r:"outline",onChange:a}=e,[s,c]=Mn({state:e.value,defaultState:e.defaultValue,initialState:""}),l=Bh({props:e,primarySlotTagName:"input",excludedPropNames:["size","onChange","value","defaultValue"]}),d={size:o,appearance:i,components:{root:"span",input:"input",contentBefore:"span",contentAfter:"span"},input:be(e.input,{defaultProps:{type:"text",ref:t,...l.primary},elementType:"input"}),contentAfter:Te(e.contentAfter,{elementType:"span"}),contentBefore:Te(e.contentBefore,{elementType:"span"}),root:be(e.root,{defaultProps:l.root,elementType:"span"})};return d.input.value=s,d.input.onChange=fe(A=>{const f=A.target.value;a==null||a(A,{value:f}),c(f)}),d},tY=e=>ut(e.root,{children:[e.contentBefore&&Q(e.contentBefore,{}),Q(e.input,{}),e.contentAfter&&Q(e.contentAfter,{})]}),D0={root:"fui-Input",input:"fui-Input__input",contentBefore:"fui-Input__contentBefore",contentAfter:"fui-Input__contentAfter"},nY=Re("r1oeeo9n","r9sxh5",{r:[".r1oeeo9n{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;vertical-align:middle;min-height:32px;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r1oeeo9n::after{box-sizing:border-box;content:"";position:absolute;left:-1px;bottom:-1px;right:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r1oeeo9n:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r1oeeo9n:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r1oeeo9n:focus-within{outline:2px solid transparent;}",".r9sxh5{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;vertical-align:middle;min-height:32px;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r9sxh5::after{box-sizing:border-box;content:"";position:absolute;right:-1px;bottom:-1px;left:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r9sxh5:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r9sxh5:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r9sxh5:focus-within{outline:2px solid transparent;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1oeeo9n::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1oeeo9n:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r9sxh5::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r9sxh5:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}"]}),rY=$({small:{sshi5w:"f1pha7fy",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{},large:{sshi5w:"f1w5jphr",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",i8kkvl:0,Belr9w4:0,rmohyg:"f1eyhf9v"},outline:{},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],Drbcw7:"f8vnjqi",udz0bu:["fz1etlk","f1hc16gm"],Be8ivqh:"f1klwx88",ofdepl:["f1hc16gm","fz1etlk"]},underline:{De3pzq:"f1c21dwh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fokr779",icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],wvpqe5:["f1deefiw","f1n71otn"],Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"]},underlineInteractive:{oetu4i:"f1l4zc64",Be8ivqh:"f1klwx88",d9w3h3:0,B3778ie:0,B4j8arr:0,Bl18szs:0,Blrzh8d:"f2ale1x"},filled:{g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},filledInteractive:{q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",E5pizo:"fyed02w"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bsft5z2:"fhr9occ",Bduesf4:"f99w1ws"},smallWithContentBefore:{uwmqm3:["fk8j09s","fdw0yi8"]},smallWithContentAfter:{z189sj:["fdw0yi8","fk8j09s"]},mediumWithContentBefore:{uwmqm3:["f1ng84yb","f11gcy0p"]},mediumWithContentAfter:{z189sj:["f11gcy0p","f1ng84yb"]},largeWithContentBefore:{uwmqm3:["f1uw59to","fw5db7e"]},largeWithContentAfter:{z189sj:["fw5db7e","f1uw59to"]}},{d:[".f1pha7fy{min-height:24px;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1w5jphr{min-height:40px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",[".f1eyhf9v{gap:var(--spacingHorizontalSNudge);}",{p:-1}],".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".fokr779{border-radius:0;}",{p:-1}],".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",[".f2ale1x::after{border-radius:0;}",{p:-1}],".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".fyed02w{box-shadow:var(--shadow2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fhr9occ::after{content:unset;}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}"],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}",".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}"],a:[".f8vnjqi:active,.f8vnjqi:focus-within{border-top-color:var(--colorNeutralStroke1Pressed);}",".fz1etlk:active,.fz1etlk:focus-within{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1hc16gm:active,.f1hc16gm:focus-within{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1klwx88:active,.f1klwx88:focus-within{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"],m:[["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],w:[".f99w1ws:focus-within{outline-style:none;}"]}),oY=Re("r12stul0",null,[".r12stul0{align-self:stretch;box-sizing:border-box;flex-grow:1;min-width:0;border-style:none;padding:0 var(--spacingHorizontalM);color:var(--colorNeutralForeground1);background-color:transparent;outline-style:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;}",".r12stul0::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".r12stul0::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".r12stul0::placeholder{color:var(--colorNeutralForeground4);opacity:1;}"]),iY=$({small:{uwmqm3:["f1f5gg8d","f1vdfbxk"],z189sj:["f1vdfbxk","f1f5gg8d"]},medium:{},large:{uwmqm3:["fnphzt9","flt1dlf"],z189sj:["flt1dlf","fnphzt9"]},smallWithContentBefore:{uwmqm3:["fgiv446","ffczdla"]},smallWithContentAfter:{z189sj:["ffczdla","fgiv446"]},mediumWithContentBefore:{uwmqm3:["fgiv446","ffczdla"]},mediumWithContentAfter:{z189sj:["ffczdla","fgiv446"]},largeWithContentBefore:{uwmqm3:["fk8j09s","fdw0yi8"]},largeWithContentAfter:{z189sj:["fdw0yi8","fk8j09s"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".fnphzt9{padding-left:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".flt1dlf{padding-right:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"]}),aY=Re("r1572tok",null,[".r1572tok{box-sizing:border-box;color:var(--colorNeutralForeground3);display:flex;}",".r1572tok>svg{font-size:20px;}"]),sY=$({disabled:{sj55zd:"f1s2aq7o"},small:{Duoase:"f3qv9w"},medium:{},large:{Duoase:"f16u2scb"}},{d:[".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f3qv9w>svg{font-size:16px;}",".f16u2scb>svg{font-size:24px;}"]}),cY=e=>{"use no memo";const{size:t,appearance:n}=e,r=e.input.disabled,o=`${e.input["aria-invalid"]}`=="true",i=n.startsWith("filled"),a=rY(),s=iY(),c=sY();e.root.className=G(D0.root,nY(),a[t],e.contentBefore&&a[`${t}WithContentBefore`],e.contentAfter&&a[`${t}WithContentAfter`],a[n],!r&&n==="outline"&&a.outlineInteractive,!r&&n==="underline"&&a.underlineInteractive,!r&&i&&a.filledInteractive,i&&a.filled,!r&&o&&a.invalid,r&&a.disabled,e.root.className),e.input.className=G(D0.input,oY(),s[t],e.contentBefore&&s[`${t}WithContentBefore`],e.contentAfter&&s[`${t}WithContentAfter`],r&&s.disabled,e.input.className);const l=[aY(),r&&c.disabled,c[t]];return e.contentBefore&&(e.contentBefore.className=G(D0.contentBefore,...l,e.contentBefore.className)),e.contentAfter&&(e.contentAfter.className=G(D0.contentAfter,...l,e.contentAfter.className)),e},Ew=g.forwardRef((e,t)=>{const n=eY(e,t);return cY(n),Ye("useInputStyles_unstable")(n),tY(n)});Ew.displayName="Input";const b6=Vi(void 0),lY={open:!1,setOpen:()=>!1,checkedValues:{},onCheckedValueChange:()=>null,isSubmenu:!1,triggerRef:{current:null},menuPopoverRef:{current:null},mountNode:null,triggerId:"",openOnContext:!1,openOnHover:!1,hasIcons:!1,hasCheckmarks:!1,inline:!1,persistOnItemClick:!1},dY=b6.Provider,Kn=e=>Qs(b6,(t=lY)=>e(t)),uY=g.createContext(void 0),AY=uY.Provider,y6=Vi(void 0);y6.Provider;const tm="fuimenuenter",fY=e=>{const{refs:t,callback:n,element:r,disabled:o}=e,i=fe(a=>{const s=t[0],c=a.target;var l;!ur((l=s.current)!==null&&l!==void 0?l:null,c)&&!o&&n(a)});g.useEffect(()=>{if(r!=null)return o||r.addEventListener(tm,i),()=>{r.removeEventListener(tm,i)}},[i,r,o])},mY=(e,t)=>{e.dispatchEvent(new CustomEvent(tm,{bubbles:!0,detail:{nativeEvent:t}}))};function Uk(){const e=Kn(n=>n.isSubmenu),t=qh(y6);return e||t}const vY=["after","after-bottom","before-top","before","before-bottom","above"],pY=e=>{const t=Uk(),{hoverDelay:n=500,inline:r=!1,hasCheckmarks:o=!1,hasIcons:i=!1,closeOnScroll:a=!1,openOnContext:s=!1,persistOnItemClick:c=!1,openOnHover:l=t,defaultCheckedValues:d,mountNode:A=null}=e,f=Rn("menu"),[m,v]=t6(),p={position:t?"after":"below",align:t?"top":"start",target:e.openOnContext?m:void 0,fallbackPositions:t?vY:void 0,...Jm(e.positioning)},y=g.Children.toArray(e.children);let b,h;y.length===2?(b=y[0],h=y[1]):y.length===1&&(h=y[0]);const{targetRef:w,containerRef:x}=Kh(p),[k,S]=hY({hoverDelay:n,isSubmenu:t,setContextTarget:v,closeOnScroll:a,menuPopoverRef:x,triggerRef:w,open:e.open,defaultOpen:e.defaultOpen,onOpenChange:e.onOpenChange,openOnContext:s}),[N,C]=gY({checkedValues:e.checkedValues,defaultCheckedValues:d,onCheckedValueChange:e.onCheckedValueChange});return{inline:r,hoverDelay:n,triggerId:f,isSubmenu:t,openOnHover:l,contextTarget:m,setContextTarget:v,hasCheckmarks:o,hasIcons:i,closeOnScroll:a,menuTrigger:b,menuPopover:h,mountNode:A,triggerRef:w,menuPopoverRef:x,components:{},openOnContext:s,open:k,setOpen:S,checkedValues:N,onCheckedValueChange:C,persistOnItemClick:c}},gY=e=>{const[t,n]=Mn({state:e.checkedValues,defaultState:e.defaultCheckedValues,initialState:{}}),r=fe((o,{name:i,checkedItems:a})=>{var s;(s=e.onCheckedValueChange)===null||s===void 0||s.call(e,o,{name:i,checkedItems:a}),n(c=>({...c,[i]:a}))});return[t,r]},hY=e=>{const{targetDocument:t}=Ge(),n=Kn(v=>v.setOpen),r=fe((v,p)=>{var y;return(y=e.onOpenChange)===null||y===void 0?void 0:y.call(e,v,p)}),o=g.useRef(!1),[i,a]=Mn({state:e.open,defaultState:e.defaultOpen,initialState:!1}),s=fe((v,p)=>{const y=v instanceof CustomEvent&&v.type===tm?v.detail.nativeEvent:v;r==null||r(y,{...p}),p.open&&v.type==="contextmenu"&&e.setContextTarget(v),p.open||e.setContextTarget(void 0),p.bubble&&n(v,{...p}),a(p.open)}),[c,l]=Bm(),d=fe((v,p)=>{if(l(),!(v instanceof Event)&&v.persist&&v.persist(),v.type==="mouseleave"||v.type==="mouseenter"||v.type==="mousemove"||v.type===tm){var y;!((y=e.triggerRef.current)===null||y===void 0)&&y.contains(v.target)&&(o.current=v.type==="mouseenter"||v.type==="mousemove"),c(()=>s(v,p),e.hoverDelay)}else s(v,p)});Fh({contains:ur,disabled:!i,element:t,refs:[e.menuPopoverRef,!e.openOnContext&&e.triggerRef].filter(Boolean),callback:v=>d(v,{open:!1,type:"clickOutside",event:v})});const A=e.openOnContext||e.closeOnScroll;bk({contains:ur,element:t,callback:v=>d(v,{open:!1,type:"scrollOutside",event:v}),refs:[e.menuPopoverRef,!e.openOnContext&&e.triggerRef].filter(Boolean),disabled:!i||!A}),fY({element:t,callback:v=>{o.current||d(v,{open:!1,type:"menuMouseEnter",event:v})},disabled:!i,refs:[e.menuPopoverRef]});const{findFirstFocusable:f}=Iu(),m=g.useCallback(()=>{const v=f(e.menuPopoverRef.current);v==null||v.focus()},[f,e.menuPopoverRef]);return g.useEffect(()=>{i&&m()},[i,m]),[i,d]};function bY(e){const{checkedValues:t,hasCheckmarks:n,hasIcons:r,inline:o,isSubmenu:i,menuPopoverRef:a,mountNode:s,onCheckedValueChange:c,open:l,openOnContext:d,openOnHover:A,persistOnItemClick:f,setOpen:m,triggerId:v,triggerRef:p}=e;return{menu:{checkedValues:t,hasCheckmarks:n,hasIcons:r,inline:o,isSubmenu:i,menuPopoverRef:a,mountNode:s,onCheckedValueChange:c,open:l,openOnContext:d,openOnHover:A,persistOnItemClick:f,setOpen:m,triggerId:v,triggerRef:p}}}const yY=(e,t)=>g.createElement(dY,{value:t.menu},e.menuTrigger,e.open&&e.menuPopover),Hk=e=>{const t=pY(e),n=bY(t);return yY(t,n)};Hk.displayName="Menu";const wY=(e,t)=>{"use no memo";const n=Kn(k=>k.menuPopoverRef),r=Kn(k=>k.setOpen),o=Kn(k=>k.open),i=Kn(k=>k.openOnHover),a=Kn(k=>k.triggerRef),s=Uk(),c=g.useRef(!0),l=lZ(),[d,A]=Bm(),{dir:f}=Ge(),m=f==="ltr"?Mu:Ru,v=g.useCallback(k=>{k&&k.addEventListener("mouseover",S=>{c.current&&(c.current=!1,mY(n.current,S),d(()=>c.current=!0,250))})},[n,d]);g.useEffect(()=>{},[A]);var p;const y=(p=Kn(k=>k.inline))!==null&&p!==void 0?p:!1,b=Kn(k=>k.mountNode),h=be(ze("div",{role:"presentation",...l,...e,ref:ot(t,n,v)}),{elementType:"div"}),{onMouseEnter:w,onKeyDown:x}=h;return h.onMouseEnter=fe(k=>{(i||s)&&r(k,{open:!0,keyboard:!1,type:"menuPopoverMouseEnter",event:k}),w==null||w(k)}),h.onKeyDown=fe(k=>{const S=k.key;if(S===$s||s&&S===m){var N;o&&(!((N=n.current)===null||N===void 0)&&N.contains(k.target))&&!k.isDefaultPrevented()&&(r(k,{open:!1,keyboard:!0,type:"menuPopoverKeyDown",event:k}),k.preventDefault())}if(S===k8&&(r(k,{open:!1,keyboard:!0,type:"menuPopoverKeyDown",event:k}),!s)){var C;(C=a.current)===null||C===void 0||C.focus()}x==null||x(k)}),{inline:y,mountNode:b,components:{root:"div"},root:h}},xY={root:"fui-MenuPopover"},kY=$({root:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",De3pzq:"fxugw4r",sj55zd:"f19n0e5",B7ck84d:"f1ewtqcl",Bf4jedk:"fl8fusi",B2u0y6b:"f1kaai3v",B68tc82:"f1p9o1ba",a9b677:"f1ahpp82",E5pizo:"f1hg901r",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fd3pd8h",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f9ggezi",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y"}},{d:[[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ewtqcl{box-sizing:border-box;}",".fl8fusi{min-width:138px;}",".f1kaai3v{max-width:300px;}",".f1p9o1ba{overflow-x:hidden;}",".f1ahpp82{width:max-content;}",".f1hg901r{box-shadow:var(--shadow16);}",[".fd3pd8h{padding:4px;}",{p:-1}],[".f9ggezi{border:1px solid var(--colorTransparentStroke);}",{p:-2}],".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}"],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),SY=e=>{"use no memo";const t=kY();return e.root.className=G(xY.root,t.root,e.root.className),e},jY=e=>e.inline?Q(e.root,{}):Q(Bu,{mountNode:e.mountNode,children:Q(e.root,{})}),Zk=g.forwardRef((e,t)=>{const n=wY(e,t);return SY(n),Ye("useMenuPopoverStyles_unstable")(n),jY(n)});Zk.displayName="MenuPopover";const NY=e=>{const{children:t,disableButtonEnhancement:n=!1}=e,r=Kn(F=>F.triggerRef),o=Kn(F=>F.menuPopoverRef),i=Kn(F=>F.setOpen),a=Kn(F=>F.open),s=Kn(F=>F.triggerId),c=Kn(F=>F.openOnHover),l=Kn(F=>F.openOnContext),d=cZ(),A=Uk(),{findFirstFocusable:f}=Iu(),m=g.useCallback(()=>{const F=f(o.current);F==null||F.focus()},[f,o]),v=g.useRef(!1),p=g.useRef(!1),{dir:y}=Ge(),b=y==="ltr"?Ru:Mu,h=Oh(t),w=F=>{Ml(F)||F.isDefaultPrevented()||l&&(F.preventDefault(),i(F,{open:!0,keyboard:!1,type:"menuTriggerContextMenu",event:F}))},x=F=>{Ml(F)||l||(i(F,{open:!a,keyboard:v.current,type:"menuTriggerClick",event:F}),v.current=!1)},k=F=>{if(Ml(F))return;const H=F.key;!l&&(A&&H===b||!A&&H===cu)&&i(F,{open:!0,keyboard:!0,type:"menuTriggerKeyDown",event:F}),H===$s&&!A&&i(F,{open:!1,keyboard:!0,type:"menuTriggerKeyDown",event:F}),a&&H===b&&A&&m()},S=F=>{Ml(F)||c&&p.current&&i(F,{open:!0,keyboard:!1,type:"menuTriggerMouseEnter",event:F})},N=F=>{Ml(F)||c&&!p.current&&(i(F,{open:!0,keyboard:!1,type:"menuTriggerMouseMove",event:F}),p.current=!0)},C=F=>{Ml(F)||c&&i(F,{open:!1,keyboard:!1,type:"menuTriggerMouseLeave",event:F})},M={id:s,...d,...h==null?void 0:h.props,ref:ot(r,h==null?void 0:h.ref),onMouseEnter:fe(We(h==null?void 0:h.props.onMouseEnter,S)),onMouseLeave:fe(We(h==null?void 0:h.props.onMouseLeave,C)),onContextMenu:fe(We(h==null?void 0:h.props.onContextMenu,w)),onMouseMove:fe(We(h==null?void 0:h.props.onMouseMove,N))},j={"aria-haspopup":"menu","aria-expanded":!a&&!A?void 0:a,...M,onClick:fe(We(h==null?void 0:h.props.onClick,x)),onKeyDown:fe(We(h==null?void 0:h.props.onKeyDown,k))},T=il((h==null?void 0:h.type)==="button"||(h==null?void 0:h.type)==="a"?h.type:"div",j);return{isSubmenu:A,children:yk(t,l?M:n?j:T)}},Ml=e=>{const t=n=>n.hasAttribute("disabled")||n.hasAttribute("aria-disabled")&&n.getAttribute("aria-disabled")==="true";return Pn(e.target)&&t(e.target)?!0:Pn(e.currentTarget)&&t(e.currentTarget)},CY=e=>g.createElement(AY,{value:e.isSubmenu},e.children),Jh=e=>{const t=NY(e);return CY(t)};Jh.displayName="MenuTrigger";Jh.isFluentTriggerComponent=!0;const TY=e=>{const{presenceOnly:t,textPosition:n}=e,r=t?e.presence&&Q(e.presence,{}):e.avatar&&Q(e.avatar,{});return ut(e.root,{children:[(n==="after"||n==="below")&&r,e.primaryText&&Q(e.primaryText,{}),e.secondaryText&&Q(e.secondaryText,{}),e.tertiaryText&&Q(e.tertiaryText,{}),e.quaternaryText&&Q(e.quaternaryText,{}),n==="before"&&r]})},IY=(e,t)=>{const{name:n,presenceOnly:r=!1,size:o="medium",textAlignment:i="start",textPosition:a="after"}=e,s=Te(e.primaryText,{renderByDefault:!0,defaultProps:{children:n},elementType:"span"}),c=Te(e.secondaryText,{elementType:"span"}),l=Te(e.tertiaryText,{elementType:"span"}),d=Te(e.quaternaryText,{elementType:"span"});return{numTextLines:[s,c,l,d].filter(Boolean).length,presenceOnly:r,size:o,textAlignment:i,textPosition:a,components:{root:"div",avatar:Pw,presence:Jf,primaryText:"span",secondaryText:"span",tertiaryText:"span",quaternaryText:"span"},root:be(ze("div",{...e,ref:t},["name"]),{elementType:"div"}),avatar:r?void 0:Te(e.avatar,{renderByDefault:!0,defaultProps:{name:n,badge:e.presence,size:DY[o]},elementType:Pw}),presence:r?Te(e.presence,{defaultProps:{size:PY[o]},elementType:Jf}):void 0,primaryText:s,secondaryText:c,tertiaryText:l,quaternaryText:d}},PY={"extra-small":"tiny",small:"extra-small",medium:"small",large:"medium","extra-large":"large",huge:"large"},DY={"extra-small":20,small:28,medium:32,large:36,"extra-large":40,huge:56},sc={root:"fui-Persona",avatar:"fui-Persona__avatar",presence:"fui-Persona__presence",primaryText:"fui-Persona__primaryText",secondaryText:"fui-Persona__secondaryText",tertiaryText:"fui-Persona__tertiaryText",quaternaryText:"fui-Persona__quaternaryText"},MY=Re("rlroi9i",null,[".rlroi9i{display:inline-grid;grid-auto-rows:max-content;grid-auto-flow:column;justify-items:start;grid-template-columns:max-content [middle] auto;}"]),RY=$({beforeAfterCenter:{wkccdc:"f1iantul"},after:{},before:{B7hvi0a:"f1tll2w5",Budl1dq:"ffvkwdr"},below:{Bxotwcr:"f1nkeedh",B7hvi0a:"f1oiokrs",Budl1dq:"f1emgwh2"},media:{Ijaq50:"f1hek2iy"},mediaBeforeAfterCenter:{Ijaq50:"fa4dipu"},start:{qb2dma:"f9h729m"},center:{qb2dma:"f7nlbp4"},afterAlignToPrimary:{qb2dma:"f7nlbp4",Ijaq50:"f1rnkkuc",Bw0ie65:"f1warjpf"},beforeAlignToPrimary:{qb2dma:"f7nlbp4",Ijaq50:"f1rnkkuc",Br312pm:"fwu52yu"},secondLineSpacing:{B6of3ja:"f1ryq6si"},primary:{Ijaq50:"f1q3ipgb"},secondary:{Ijaq50:"f3drtdk"},tertiary:{Ijaq50:"fa1o6s1"},quaternary:{Ijaq50:"f1tuwaia"}},{d:[".f1iantul{grid-template-rows:1fr [primary] max-content [secondary] max-content [tertiary] max-content [quaternary] max-content 1fr;}",".f1tll2w5{justify-items:end;}",".ffvkwdr{grid-template-columns:auto [middle] max-content;}",".f1nkeedh{grid-auto-flow:unset;}",".f1oiokrs{justify-items:center;}",".f1emgwh2{grid-template-columns:unset;}",".f1hek2iy{grid-row-start:span 5;}",".fa4dipu{grid-row-start:span 6;}",".f9h729m{align-self:start;}",".f7nlbp4{align-self:center;}",".f1rnkkuc{grid-row-start:unset;}",".f1warjpf{grid-column-end:middle;}",".fwu52yu{grid-column-start:middle;}",".f1ryq6si{margin-top:-2px;}",".f1q3ipgb{grid-row-start:primary;}",".f3drtdk{grid-row-start:secondary;}",".fa1o6s1{grid-row-start:tertiary;}",".f1tuwaia{grid-row-start:quaternary;}"]}),zY=$({"extra-small":{Bs1gm4r:"f1e48tse"},small:{Bs1gm4r:"f18q9vkd"},medium:{Bs1gm4r:"f18q9vkd"},large:{Bs1gm4r:"fx34bi6"},"extra-large":{Bs1gm4r:"fx34bi6"},huge:{Bs1gm4r:"f1o96qtm"},after:{t21cq0:["f103ycu4","f1tao51"]},below:{jrapky:"fbo7acy"},before:{Frg6f3:["f1tao51","f103ycu4"]}},{d:[".f1e48tse{--fui-Persona__avatar--spacing:var(--spacingHorizontalSNudge);}",".f18q9vkd{--fui-Persona__avatar--spacing:var(--spacingHorizontalS);}",".fx34bi6{--fui-Persona__avatar--spacing:var(--spacingHorizontalMNudge);}",".f1o96qtm{--fui-Persona__avatar--spacing:var(--spacingHorizontalM);}",".f103ycu4{margin-right:var(--fui-Persona__avatar--spacing);}",".f1tao51{margin-left:var(--fui-Persona__avatar--spacing);}",".fbo7acy{margin-bottom:var(--fui-Persona__avatar--spacing);}"]}),EY=$({small:{Bs1gm4r:"f1e48tse"}},{d:[".f1e48tse{--fui-Persona__avatar--spacing:var(--spacingHorizontalSNudge);}"]}),BY=e=>{"use no memo";const{presenceOnly:t,size:n,textAlignment:r,textPosition:o}=e,i=t&&r==="start"&&n!=="extra-large"&&n!=="huge",a=o!=="below"&&r==="center",{primaryTextClassName:s,optionalTextClassName:c}=WY(e,i),l=MY(),d=RY(),A=zY(),f={...A,...EY()};return e.root.className=G(sc.root,l,a&&d.beforeAfterCenter,d[o],e.root.className),e.avatar&&(e.avatar.className=G(sc.avatar,o!=="below"&&d.media,a&&d.mediaBeforeAfterCenter,d[r],A[n],A[o],e.avatar.className)),e.presence&&(e.presence.className=G(sc.presence,o!=="below"&&d.media,a&&d.mediaBeforeAfterCenter,d[r],f[n],f[o],o==="after"&&i&&d.afterAlignToPrimary,o==="before"&&i&&d.beforeAlignToPrimary,e.presence.className)),e.primaryText&&(e.primaryText.className=G(sc.primaryText,a&&d.primary,s,e.primaryText.className)),e.secondaryText&&(e.secondaryText.className=G(sc.secondaryText,a&&d.secondary,c,d.secondLineSpacing,e.secondaryText.className)),e.tertiaryText&&(e.tertiaryText.className=G(sc.tertiaryText,a&&d.tertiary,c,e.tertiaryText.className)),e.quaternaryText&&(e.quaternaryText.className=G(sc.quaternaryText,a&&d.quaternary,c,e.quaternaryText.className)),e},FY=Re("rvj41k9",null,[".rvj41k9{display:block;color:var(--colorNeutralForeground1);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);}"]),OY=Re("rp1pf9e",null,[".rp1pf9e{display:block;color:var(--colorNeutralForeground2);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase200);}"]),LY=$({beforeAlignToPrimary:{Bw0ie65:"f1warjpf"},afterAlignToPrimary:{Br312pm:"fwu52yu"},body1:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},caption1:{Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},subtitle2:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"}},{d:[".f1warjpf{grid-column-end:middle;}",".fwu52yu{grid-column-start:middle;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}"]}),WY=(e,t)=>{const{presenceOnly:n,size:r,textPosition:o}=e,i=FY(),a=OY(),s=LY();let c,l;return n?(r==="extra-small"?c=e.numTextLines<=1&&s.caption1:(r==="extra-large"||r==="huge")&&(c=s.subtitle2),t&&(o==="before"?l=s.beforeAlignToPrimary:o==="after"&&(l=s.afterAlignToPrimary))):(r==="huge"||r==="extra-large")&&(c=s.subtitle2),{primaryTextClassName:G(i,c,l),optionalTextClassName:G(a,!n&&r==="huge"&&s.body1,l)}},w6=g.forwardRef((e,t)=>{const n=IY(e,t);return BY(n),Ye("usePersonaStyles_unstable")(n),TY(n)});w6.displayName="Persona";const x6=g.createContext(void 0),UY={};x6.Provider;const HY=()=>g.useContext(x6)||UY,ZY=e=>ut(e.root,{children:[Q(e.input,{}),Q(e.indicator,{}),e.label&&Q(e.label,{})]}),VY=(e,t)=>{const n=HY(),{name:r=n.name,checked:o=n.value!==void 0?n.value===e.value:void 0,defaultChecked:i=n.defaultValue!==void 0?n.defaultValue===e.value:void 0,labelPosition:a=n.layout==="horizontal-stacked"?"below":"after",disabled:s=n.disabled,required:c=n.required,"aria-describedby":l=n["aria-describedby"],onChange:d}=e,A=Bh({props:e,primarySlotTagName:"input",excludedPropNames:["checked","defaultChecked","onChange"]}),f=be(e.root,{defaultProps:{ref:Xm(),...A.root},elementType:"span"}),m=be(e.input,{defaultProps:{ref:t,type:"radio",id:Rn("radio-",A.primary.id),name:r,checked:o,defaultChecked:i,disabled:s,required:c,"aria-describedby":l,...A.primary},elementType:"input"});m.onChange=We(m.onChange,y=>d==null?void 0:d(y,{value:y.currentTarget.value}));const v=Te(e.label,{defaultProps:{htmlFor:m.id,disabled:m.disabled},elementType:al}),p=be(e.indicator,{defaultProps:{"aria-hidden":!0},elementType:"div"});return{labelPosition:a,components:{root:"span",input:"input",label:al,indicator:"div"},root:f,input:m,label:v,indicator:p}},M0={root:"fui-Radio",indicator:"fui-Radio__indicator",input:"fui-Radio__input",label:"fui-Radio__label"},qY=Re("r1siqwd8","rmnplyc",{r:[".r1siqwd8{display:inline-flex;position:relative;}",".r1siqwd8:focus{outline-style:none;}",".r1siqwd8:focus-visible{outline-style:none;}",".r1siqwd8[data-fui-focus-within]:focus-within{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1siqwd8[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".rmnplyc{display:inline-flex;position:relative;}",".rmnplyc:focus{outline-style:none;}",".rmnplyc:focus-visible{outline-style:none;}",".rmnplyc[data-fui-focus-within]:focus-within{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.rmnplyc[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1siqwd8[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.rmnplyc[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),_Y=$({vertical:{Beiy3e4:"f1vx9l62",Bt984gj:"f122n59"}},{d:[".f1vx9l62{flex-direction:column;}",".f122n59{align-items:center;}"]}),XY=Re("rg1upok","rzwdzb4",{r:[".rg1upok{position:absolute;left:0;top:0;width:calc(16px + 2 * var(--spacingHorizontalS));height:100%;box-sizing:border-box;margin:0;opacity:0;}",".rg1upok:enabled{cursor:pointer;}",".rg1upok:enabled~.fui-Radio__label{cursor:pointer;}",".rg1upok:enabled:not(:checked)~.fui-Radio__label{color:var(--colorNeutralForeground3);}",".rg1upok:enabled:not(:checked)~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeAccessible);}",".rg1upok:enabled:not(:checked):hover~.fui-Radio__label{color:var(--colorNeutralForeground2);}",".rg1upok:enabled:not(:checked):hover~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeAccessibleHover);}",".rg1upok:enabled:not(:checked):hover:active~.fui-Radio__label{color:var(--colorNeutralForeground1);}",".rg1upok:enabled:not(:checked):hover:active~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeAccessiblePressed);}",".rg1upok:enabled:checked~.fui-Radio__label{color:var(--colorNeutralForeground1);}",".rg1upok:enabled:checked~.fui-Radio__indicator{border-color:var(--colorCompoundBrandStroke);color:var(--colorCompoundBrandForeground1);}",".rg1upok:enabled:checked:hover~.fui-Radio__indicator{border-color:var(--colorCompoundBrandStrokeHover);color:var(--colorCompoundBrandForeground1Hover);}",".rg1upok:enabled:checked:hover:active~.fui-Radio__indicator{border-color:var(--colorCompoundBrandStrokePressed);color:var(--colorCompoundBrandForeground1Pressed);}",".rg1upok:disabled~.fui-Radio__label{color:var(--colorNeutralForegroundDisabled);cursor:default;}",".rg1upok:disabled~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeDisabled);color:var(--colorNeutralForegroundDisabled);}",".rzwdzb4{position:absolute;right:0;top:0;width:calc(16px + 2 * var(--spacingHorizontalS));height:100%;box-sizing:border-box;margin:0;opacity:0;}",".rzwdzb4:enabled{cursor:pointer;}",".rzwdzb4:enabled~.fui-Radio__label{cursor:pointer;}",".rzwdzb4:enabled:not(:checked)~.fui-Radio__label{color:var(--colorNeutralForeground3);}",".rzwdzb4:enabled:not(:checked)~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeAccessible);}",".rzwdzb4:enabled:not(:checked):hover~.fui-Radio__label{color:var(--colorNeutralForeground2);}",".rzwdzb4:enabled:not(:checked):hover~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeAccessibleHover);}",".rzwdzb4:enabled:not(:checked):hover:active~.fui-Radio__label{color:var(--colorNeutralForeground1);}",".rzwdzb4:enabled:not(:checked):hover:active~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeAccessiblePressed);}",".rzwdzb4:enabled:checked~.fui-Radio__label{color:var(--colorNeutralForeground1);}",".rzwdzb4:enabled:checked~.fui-Radio__indicator{border-color:var(--colorCompoundBrandStroke);color:var(--colorCompoundBrandForeground1);}",".rzwdzb4:enabled:checked:hover~.fui-Radio__indicator{border-color:var(--colorCompoundBrandStrokeHover);color:var(--colorCompoundBrandForeground1Hover);}",".rzwdzb4:enabled:checked:hover:active~.fui-Radio__indicator{border-color:var(--colorCompoundBrandStrokePressed);color:var(--colorCompoundBrandForeground1Pressed);}",".rzwdzb4:disabled~.fui-Radio__label{color:var(--colorNeutralForegroundDisabled);cursor:default;}",".rzwdzb4:disabled~.fui-Radio__indicator{border-color:var(--colorNeutralStrokeDisabled);color:var(--colorNeutralForegroundDisabled);}"],s:["@media (forced-colors: active){.rg1upok:enabled:not(:checked)~.fui-Radio__indicator{border-color:ButtonBorder;}}","@media (forced-colors: active){.rg1upok:enabled:checked~.fui-Radio__indicator{border-color:Highlight;color:Highlight;}.rg1upok:enabled:checked~.fui-Radio__indicator::after{background-color:Highlight;}}","@media (forced-colors: active){.rg1upok:disabled~.fui-Radio__label{color:GrayText;}}","@media (forced-colors: active){.rg1upok:disabled~.fui-Radio__indicator{border-color:GrayText;color:GrayText;}.rg1upok:disabled~.fui-Radio__indicator::after{background-color:GrayText;}}","@media (forced-colors: active){.rzwdzb4:enabled:not(:checked)~.fui-Radio__indicator{border-color:ButtonBorder;}}","@media (forced-colors: active){.rzwdzb4:enabled:checked~.fui-Radio__indicator{border-color:Highlight;color:Highlight;}.rzwdzb4:enabled:checked~.fui-Radio__indicator::after{background-color:Highlight;}}","@media (forced-colors: active){.rzwdzb4:disabled~.fui-Radio__label{color:GrayText;}}","@media (forced-colors: active){.rzwdzb4:disabled~.fui-Radio__indicator{border-color:GrayText;color:GrayText;}.rzwdzb4:disabled~.fui-Radio__indicator::after{background-color:GrayText;}}"]}),GY=$({below:{a9b677:"fly5x3f",Bqenvij:"f1je6zif"},defaultIndicator:{Blbys7f:"f9ma1gx"},customIndicator:{Bj53wkj:"f12zxao0"}},{d:[".fly5x3f{width:100%;}",".f1je6zif{height:calc(16px + 2 * var(--spacingVerticalS));}",'.f9ma1gx:checked~.fui-Radio__indicator::after{content:"";}',".f12zxao0:not(:checked)~.fui-Radio__indicator>*{opacity:0;}"]}),YY=Re("rwtekvw",null,[".rwtekvw{position:relative;width:16px;height:16px;font-size:12px;box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:var(--strokeWidthThin) solid;border-radius:var(--borderRadiusCircular);margin:var(--spacingVerticalS) var(--spacingHorizontalS);fill:currentColor;pointer-events:none;}",".rwtekvw::after{position:absolute;width:16px;height:16px;border-radius:var(--borderRadiusCircular);transform:scale(0.625);background-color:currentColor;}"]),KY=$({base:{qb2dma:"f7nlbp4",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1f5q0n8"},after:{uwmqm3:["fruq291","f7x41pl"],B6of3ja:"fjzwpt6",jrapky:"fh6j2fo"},below:{z8tnut:"f1ywm7hm",fsow6f:"f17mccla"}},{d:[".f7nlbp4{align-self:center;}",[".f1f5q0n8{padding:var(--spacingVerticalS) var(--spacingHorizontalS);}",{p:-1}],".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fjzwpt6{margin-top:calc((16px - var(--lineHeightBase300)) / 2);}",".fh6j2fo{margin-bottom:calc((16px - var(--lineHeightBase300)) / 2);}",".f1ywm7hm{padding-top:var(--spacingVerticalXS);}",".f17mccla{text-align:center;}"]}),JY=e=>{"use no memo";const{labelPosition:t}=e,n=qY(),r=_Y();e.root.className=G(M0.root,n,t==="below"&&r.vertical,e.root.className);const o=XY(),i=GY();e.input.className=G(M0.input,o,t==="below"&&i.below,e.indicator.children?i.customIndicator:i.defaultIndicator,e.input.className);const a=YY();e.indicator.className=G(M0.indicator,a,e.indicator.className);const s=KY();return e.label&&(e.label.className=G(M0.label,s.base,s[t],e.label.className)),e},nm=g.forwardRef((e,t)=>{const n=VY(e,t);return JY(n),Ye("useRadioStyles_unstable")(n),ZY(n)});nm.displayName="Radio";const k6=g.createContext(void 0),QY={};k6.Provider;const $Y=()=>{var e;return(e=g.useContext(k6))!==null&&e!==void 0?e:QY},eK=(e,t)=>{const{animation:n,appearance:r}=$Y(),{animation:o=n??"wave",appearance:i=r??"opaque",size:a=16,shape:s="rectangle"}=e,c=be(ze("div",{ref:t,...e}),{elementType:"div"});return{appearance:i,animation:o,size:a,shape:s,components:{root:"div"},root:c}},tK=e=>Q(e.root,{}),nK={root:"fui-SkeletonItem"},rK=$({root:{qhf8xq:"f10pi13n",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",Bsft5z2:"f13zj6fq",ap17g6:"f2gz7yw",E3zdtr:"f1mdlcz9",By385i5:0,Eqx8gd:0,B1piin3:0,bn5sak:0,B58onuk:"f1nt53hs",s9ouvv:"f18xs7ez",xr36ep:"ffm3629",Bitv4sc:"f1f9zsvm",Jx5sug:"f1ub80pn",Hzyzrh:"f1e7twep"},wave:{De3pzq:"f1gjxg63",Br128sd:["f3fo419","f6m9r4"],h62rwi:["ftnv2js","f12jzhyt"],b1kco5:["fig1c6l","f1rv5y9h"],oi31me:"f103n15n"},pulse:{Br128sd:"f171zwvm",xr36ep:"fs3pcyf",Bjyk6c5:"f1yu5riq"},translucent:{De3pzq:"f162mh4z",h62rwi:["flvf4r0","f1uek97b"]},translucentPulse:{De3pzq:"flu3bqm",Bjyk6c5:"fxucc0w"}},{d:[".f10pi13n{position:relative;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],'.f13zj6fq::after{content:"";}',".f2gz7yw::after{display:block;}",".f1mdlcz9::after{position:absolute;}",[".f1nt53hs::after{inset:0;}",{p:-1}],".f18xs7ez::after{animation-iteration-count:infinite;}",".ffm3629::after{animation-duration:3s;}",".f1f9zsvm::after{animation-timing-function:ease-in-out;}",".f1gjxg63{background-color:var(--colorNeutralStencil1);}",".f3fo419::after{animation-name:f1efwx7q;}",".f6m9r4::after{animation-name:f1kkgpz1;}",`.ftnv2js::after{background-image:linear-gradient( to right, var(--colorNeutralStencil1) 0%, var(--colorNeutralStencil2) 50%, var(--colorNeutralStencil1) 100%);}`,`.f12jzhyt::after{background-image:linear-gradient( to left, var(--colorNeutralStencil1) 0%, var(--colorNeutralStencil2) 50%, var(--colorNeutralStencil1) 100%);}`,".fig1c6l::after{transform:translate(-100%);}",".f1rv5y9h::after{transform:translate(100%);}",".f171zwvm::after{animation-name:f12o7gg6;}",".fs3pcyf::after{animation-duration:1s;}",".f1yu5riq::after{background-color:var(--colorNeutralStencil1);}",".f162mh4z{background-color:var(--colorNeutralStencil1Alpha);}",`.flvf4r0::after{background-image:linear-gradient( to right, transparent 0%, var(--colorNeutralStencil1Alpha) 50%, transparent 100%);}`,`.f1uek97b::after{background-image:linear-gradient( to left, transparent 0%, var(--colorNeutralStencil1Alpha) 50%, transparent 100%);}`,".flu3bqm{background-color:none;}",".fxucc0w::after{background-color:var(--colorNeutralStencil1Alpha);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1ub80pn::after{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1e7twep::after{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f103n15n::after{background-color:WindowText;}}",{m:"screen and (forced-colors: active)"}]],k:["@keyframes f1efwx7q{to{transform:translate(100%);}}","@keyframes f1kkgpz1{to{transform:translate(-100%);}}","@keyframes f12o7gg6{0%{opacity:1;}50%{opacity:0.4;}100%{opacity:1;}}"]}),oK=$({8:{Bqenvij:"f1x82gua"},12:{Bqenvij:"fvblgha"},16:{Bqenvij:"fd461yt"},20:{Bqenvij:"fjamq6b"},24:{Bqenvij:"frvgh55"},28:{Bqenvij:"fxldao9"},32:{Bqenvij:"f1d2rq10"},36:{Bqenvij:"f8ljn23"},40:{Bqenvij:"fbhnoac"},48:{Bqenvij:"ff2sm71"},56:{Bqenvij:"fzki0ko"},64:{Bqenvij:"f16k9i2m"},72:{Bqenvij:"f1shusfg"},96:{Bqenvij:"fypu0ge"},120:{Bqenvij:"fjr5b71"},128:{Bqenvij:"fele2au"},root:{a9b677:"fly5x3f",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ff3glw6"}},{d:[".f1x82gua{height:8px;}",".fvblgha{height:12px;}",".fd461yt{height:16px;}",".fjamq6b{height:20px;}",".frvgh55{height:24px;}",".fxldao9{height:28px;}",".f1d2rq10{height:32px;}",".f8ljn23{height:36px;}",".fbhnoac{height:40px;}",".ff2sm71{height:48px;}",".fzki0ko{height:56px;}",".f16k9i2m{height:64px;}",".f1shusfg{height:72px;}",".fypu0ge{height:96px;}",".fjr5b71{height:120px;}",".fele2au{height:128px;}",".fly5x3f{width:100%;}",[".ff3glw6{border-radius:4px;}",{p:-1}]]}),iK=$({8:{a9b677:"f1o3cbw4",Bqenvij:"f1x82gua"},12:{a9b677:"frx94fk",Bqenvij:"fvblgha"},16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".f1o3cbw4{width:8px;}",".f1x82gua{height:8px;}",".frx94fk{width:12px;}",".fvblgha{height:12px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),aK=$({root:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f5q2cvs"}},{d:[[".f5q2cvs{border-radius:50%;}",{p:-1}]]}),sK=e=>{"use no memo";const{animation:t,appearance:n,size:r,shape:o}=e,i=rK(),a=oK(),s=iK(),c=aK();return e.root.className=G(nK.root,i.root,t==="wave"&&i.wave,t==="pulse"&&i.pulse,n==="translucent"&&i.translucent,t==="pulse"&&n==="translucent"&&i.translucentPulse,o==="rectangle"&&a.root,o==="rectangle"&&a[r],o==="square"&&s[r],o==="circle"&&c.root,o==="circle"&&s[r],e.root.className),e},S6=g.forwardRef((e,t)=>{const n=eK(e,t);return sK(n),tK(n)});S6.displayName="SkeletonItem";const j6=g.createContext(void 0),cK={};j6.Provider;const lK=()=>{var e;return(e=g.useContext(j6))!==null&&e!==void 0?e:cK},dK=(e,t)=>{const{size:n}=lK(),{appearance:r="primary",labelPosition:o="after",size:i=n??"medium",delay:a=0}=e,s=Rn("spinner"),{role:c="progressbar",...l}=e,d=be(ze("div",{ref:t,role:c,...l},["size"]),{elementType:"div"}),[A,f]=g.useState(!1),[m,v]=Bm();g.useEffect(()=>{if(!(a<=0))return m(()=>{f(!0)},a),()=>{v()}},[m,v,a]);const p=Te(e.label,{defaultProps:{id:s},renderByDefault:!1,elementType:al}),y=Te(e.spinner,{renderByDefault:!0,elementType:"span"});return p&&d&&!d["aria-labelledby"]&&(d["aria-labelledby"]=p.id),{appearance:r,delay:a,labelPosition:o,size:i,shouldRenderSpinner:!a||A,components:{root:"div",spinner:"span",spinnerTail:"span",label:al},root:d,spinner:y,spinnerTail:be(e.spinnerTail,{elementType:"span"}),label:p}},uK=e=>{const{labelPosition:t,shouldRenderSpinner:n}=e;return ut(e.root,{children:[e.label&&n&&(t==="above"||t==="before")&&Q(e.label,{}),e.spinner&&n&&Q(e.spinner,{children:e.spinnerTail&&Q(e.spinnerTail,{})}),e.label&&n&&(t==="below"||t==="after")&&Q(e.label,{})]})},R0={root:"fui-Spinner",spinner:"fui-Spinner__spinner",spinnerTail:"fui-Spinner__spinnerTail",label:"fui-Spinner__label"},AK=Re("r82apo5",null,[".r82apo5{display:flex;align-items:center;justify-content:center;line-height:0;gap:8px;overflow:hidden;}"]),fK=$({vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f1vx9l62{flex-direction:column;}"]}),mK=Re("rvgcg50","r15nd2jo",{r:[".rvgcg50{position:relative;flex-shrink:0;-webkit-mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);background-color:var(--colorBrandStroke2Contrast);color:var(--colorBrandStroke1);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:rb7n1on;}","@keyframes rb7n1on{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}",".r15nd2jo{position:relative;flex-shrink:0;-webkit-mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);background-color:var(--colorBrandStroke2Contrast);color:var(--colorBrandStroke1);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:r1gx3jof;}","@keyframes r1gx3jof{0%{transform:rotate(0deg);}100%{transform:rotate(-360deg);}}"],s:["@media screen and (forced-colors: active){.rvgcg50{background-color:HighlightText;color:Highlight;forced-color-adjust:none;}}","@media screen and (prefers-reduced-motion: reduce){.rvgcg50{animation-duration:1.8s;}}","@media screen and (forced-colors: active){.r15nd2jo{background-color:HighlightText;color:Highlight;forced-color-adjust:none;}}","@media screen and (prefers-reduced-motion: reduce){.r15nd2jo{animation-duration:1.8s;}}"]}),vK=Re("rxov3xa","r1o544mv",{r:[".rxov3xa{position:absolute;display:block;width:100%;height:100%;-webkit-mask-image:conic-gradient(transparent 105deg, white 105deg);mask-image:conic-gradient(transparent 105deg, white 105deg);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:var(--curveEasyEase);animation-name:r15mim6k;}",'.rxov3xa::before,.rxov3xa::after{content:"";position:absolute;display:block;width:100%;height:100%;animation:inherit;background-image:conic-gradient(currentcolor 135deg, transparent 135deg);}',"@keyframes r15mim6k{0%{transform:rotate(-135deg);}50%{transform:rotate(0deg);}100%{transform:rotate(225deg);}}",".rxov3xa::before{animation-name:r18vhmn8;}","@keyframes r18vhmn8{0%{transform:rotate(0deg);}50%{transform:rotate(105deg);}100%{transform:rotate(0deg);}}",".rxov3xa::after{animation-name:rkgrvoi;}","@keyframes rkgrvoi{0%{transform:rotate(0deg);}50%{transform:rotate(225deg);}100%{transform:rotate(0deg);}}",".r1o544mv{position:absolute;display:block;width:100%;height:100%;-webkit-mask-image:conic-gradient(transparent 105deg, white 105deg);mask-image:conic-gradient(transparent 105deg, white 105deg);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:var(--curveEasyEase);animation-name:r109gmi5;}",'.r1o544mv::before,.r1o544mv::after{content:"";position:absolute;display:block;width:100%;height:100%;animation:inherit;background-image:conic-gradient(currentcolor 135deg, transparent 135deg);}',"@keyframes r109gmi5{0%{transform:rotate(135deg);}50%{transform:rotate(0deg);}100%{transform:rotate(-225deg);}}",".r1o544mv::before{animation-name:r17whflh;}","@keyframes r17whflh{0%{transform:rotate(0deg);}50%{transform:rotate(-105deg);}100%{transform:rotate(0deg);}}",".r1o544mv::after{animation-name:re4odhl;}","@keyframes re4odhl{0%{transform:rotate(0deg);}50%{transform:rotate(-225deg);}100%{transform:rotate(0deg);}}"],s:["@media screen and (prefers-reduced-motion: reduce){.rxov3xa{animation-iteration-count:0;background-image:conic-gradient(transparent 120deg, currentcolor 360deg);}.rxov3xa::before,.rxov3xa::after{content:none;}}","@media screen and (prefers-reduced-motion: reduce){.r1o544mv{animation-iteration-count:0;background-image:conic-gradient(transparent 120deg, currentcolor 360deg);}.r1o544mv::before,.r1o544mv::after{content:none;}}"]}),pK=$({inverted:{De3pzq:"fr407j0",sj55zd:"f1f7voed"},rtlTail:{btxmck:"f179dep3",gb5jj2:"fbz9ihp",Br2kee7:"f1wkkxo7"},"extra-tiny":{Bqenvij:"fd461yt",a9b677:"fjw5fx7",qmp6fs:"f1v3ph3m"},tiny:{Bqenvij:"fjamq6b",a9b677:"f64fuq3",qmp6fs:"f1v3ph3m"},"extra-small":{Bqenvij:"frvgh55",a9b677:"fq4mcun",qmp6fs:"f1v3ph3m"},small:{Bqenvij:"fxldao9",a9b677:"f1w9dchk",qmp6fs:"f1v3ph3m"},medium:{Bqenvij:"f1d2rq10",a9b677:"f1szoe96",qmp6fs:"fb52u90"},large:{Bqenvij:"f8ljn23",a9b677:"fpdz1er",qmp6fs:"fb52u90"},"extra-large":{Bqenvij:"fbhnoac",a9b677:"feqmc2u",qmp6fs:"fb52u90"},huge:{Bqenvij:"f1ft4266",a9b677:"fksc0bp",qmp6fs:"fa3u9ii"}},{d:[".fr407j0{background-color:var(--colorNeutralStrokeAlpha2);}",".f1f7voed{color:var(--colorNeutralStrokeOnBrand2);}",".f179dep3{-webkit-mask-image:conic-gradient(white 255deg, transparent 255deg);mask-image:conic-gradient(white 255deg, transparent 255deg);}",".fbz9ihp::before,.fbz9ihp::after{background-image:conic-gradient(transparent 225deg, currentcolor 225deg);}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".f1v3ph3m{--fui-Spinner--strokeWidth:var(--strokeWidthThick);}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxldao9{height:28px;}",".f1w9dchk{width:28px;}",".f1d2rq10{height:32px;}",".f1szoe96{width:32px;}",".fb52u90{--fui-Spinner--strokeWidth:var(--strokeWidthThicker);}",".f8ljn23{height:36px;}",".fpdz1er{width:36px;}",".fbhnoac{height:40px;}",".feqmc2u{width:40px;}",".f1ft4266{height:44px;}",".fksc0bp{width:44px;}",".fa3u9ii{--fui-Spinner--strokeWidth:var(--strokeWidthThickest);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1wkkxo7{background-image:conic-gradient(currentcolor 0deg, transparent 240deg);}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),gK=$({inverted:{sj55zd:"fonrgv7"},"extra-tiny":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},tiny:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},"extra-small":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},"extra-large":{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},huge:{Bahqtrf:"fk6fouc",Be2twd7:"f1pp30po",Bhrd7zp:"fl43uef",Bg96gwp:"f106mvju"}},{d:[".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}"]}),hK=e=>{"use no memo";const{labelPosition:t,size:n,appearance:r}=e,{dir:o}=Ge(),i=AK(),a=fK(),s=mK(),c=pK(),l=vK(),d=gK();return e.root.className=G(R0.root,i,(t==="above"||t==="below")&&a.vertical,e.root.className),e.spinner&&(e.spinner.className=G(R0.spinner,s,c[n],r==="inverted"&&c.inverted,e.spinner.className)),e.spinnerTail&&(e.spinnerTail.className=G(R0.spinnerTail,l,o==="rtl"&&c.rtlTail,e.spinnerTail.className)),e.label&&(e.label.className=G(R0.label,d[n],r==="inverted"&&d.inverted,e.label.className)),e},N6=g.forwardRef((e,t)=>{const n=dK(e,t);return hK(n),Ye("useSpinnerStyles_unstable")(n),uK(n)});N6.displayName="Spinner";const bK={appearance:"transparent",reserveSelectedTabSpace:!0,selectTabOnFocus:!1,disabled:!1,selectedValue:void 0,onRegister:()=>{},onUnregister:()=>{},onSelect:()=>{},getRegisteredTabs:()=>({registeredTabs:{}}),size:"medium",vertical:!1},C6=Vi(void 0),yK=C6.Provider,Wo=e=>Qs(C6,(t=bK)=>e(t)),wK=(e,t)=>{const{content:n,disabled:r=!1,icon:o,onClick:i,onFocus:a,value:s}=e,c=Wo(T=>T.appearance),l=Wo(T=>T.reserveSelectedTabSpace),d=Wo(T=>T.selectTabOnFocus),A=Wo(T=>T.disabled),f=Wo(T=>T.selectedValue===s),m=Wo(T=>T.onRegister),v=Wo(T=>T.onUnregister),p=Wo(T=>T.onSelect),y=Wo(T=>T.size),b=Wo(T=>!!T.vertical),h=A||r,w=g.useRef(null),x=T=>p(T,{value:s}),k=fe(We(i,x)),S=fe(We(a,x));g.useEffect(()=>(m({value:s,ref:w}),()=>{v({value:s,ref:w})}),[m,v,w,s]);const N=Te(o,{elementType:"span"}),C=be(n,{defaultProps:{children:e.children},elementType:"span"}),M=n&&typeof n=="object"?yW(n,["ref"]):n,j=!!(N!=null&&N.children&&!C.children);return{components:{root:"button",icon:"span",content:"span",contentReservedSpace:"span"},root:be(ze("button",{ref:ot(t,w),role:"tab",type:"button","aria-selected":h?void 0:`${f}`,...e,disabled:h,onClick:k,onFocus:d?S:a}),{elementType:"button"}),icon:N,iconOnly:j,content:C,contentReservedSpace:Te(M,{renderByDefault:!f&&!j&&l,defaultProps:{children:e.children},elementType:"span"}),appearance:c,disabled:h,selected:f,size:y,value:s,vertical:b}},xK=e=>ut(e.root,{children:[e.icon&&Q(e.icon,{}),!e.iconOnly&&Q(e.content,{}),e.contentReservedSpace&&Q(e.contentReservedSpace,{})]}),GC={offsetVar:"--fui-Tab__indicator--offset",scaleVar:"--fui-Tab__indicator--scale"},kK=$({base:{B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg"},animated:{Ba2ppi3:"fhwpy7i",F2fol1:"f6zz20j",B1dyfl9:"f1ai4sc1",B0vmy72:"f9qxlq5",u9bimw:"f1aql376"},horizontal:{sjv3b2:["fug4aj8","f1i5xzg7"],b1kco5:"f1q7ujh"},vertical:{sjv3b2:"f1hqboyk",b1kco5:"f1dxupa6"}},{d:[[".f1gl81tg{overflow:visible;}",{p:-1}],".fhwpy7i::after{transition-property:transform;}",".f6zz20j::after{transition-duration:var(--durationSlow);}",".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}",".fug4aj8::after{transform-origin:left;}",".f1i5xzg7::after{transform-origin:right;}",".f1q7ujh::after{transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));}",".f1hqboyk::after{transform-origin:top;}",".f1dxupa6::after{transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));}"],m:[["@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}",{m:"(prefers-reduced-motion: reduce)"}],["@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}",{m:"(prefers-reduced-motion: reduce)"}]]}),SK=e=>{if(e){var t;const n=((t=e.parentElement)===null||t===void 0?void 0:t.getBoundingClientRect())||{x:0,y:0,width:0,height:0},r=e.getBoundingClientRect();return{x:r.x-n.x,y:r.y-n.y,width:r.width,height:r.height}}},YC=(e,t)=>{var n;const r=t!=null?(n=e[JSON.stringify(t)])===null||n===void 0?void 0:n.ref.current:void 0;return r?SK(r):void 0},jK=e=>{const{disabled:t,selected:n,vertical:r}=e,o=kK(),[i,a]=g.useState(),[s,c]=g.useState({offset:0,scale:1}),l=Wo(f=>f.getRegisteredTabs);if(g.useEffect(()=>{i&&c({offset:0,scale:1})},[i]),n){const{previousSelectedValue:f,selectedValue:m,registeredTabs:v}=l();if(f&&i!==f){const p=YC(v,f),y=YC(v,m);if(y&&p){const b=r?p.y-y.y:p.x-y.x,h=r?p.height/y.height:p.width/y.width;c({offset:b,scale:h}),a(f)}}}else i&&a(void 0);if(t)return e;const d=s.offset===0&&s.scale===1;e.root.className=G(e.root.className,n&&o.base,n&&d&&o.animated,n&&(r?o.vertical:o.horizontal));const A={[GC.offsetVar]:`${s.offset}px`,[GC.scaleVar]:`${s.scale}`};return e.root.style={...A,...e.root.style},e},d1={root:"fui-Tab",icon:"fui-Tab__icon",content:"fui-Tab__content"},NK={content:"fui-Tab__content--reserved-space"},CK=$({base:{Bt984gj:"f122n59",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Bceei9c:"f1k6fduh",mc9l5x:"f13qh94s",Bnnss6s:"fi64zpg",Bxotwcr:"f1u07yai",Budl1dq:"frn2hmy",wkccdc:"f1olsevy",Bahqtrf:"fk6fouc",Bg96gwp:"f1i3iumi",oeaueh:"f1s6fcnf",qhf8xq:"f10pi13n",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",B9bfxx9:"f1cxpek8"},horizontal:{Brf1p80:"f4d9j23"},vertical:{Brf1p80:"f1s9ku6b"},smallHorizontal:{i8kkvl:"f14mj54c",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1wmopi4"},smallVertical:{i8kkvl:"f14mj54c",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f12or63q"},mediumHorizontal:{i8kkvl:"f1rjii52",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1w08f2p"},mediumVertical:{i8kkvl:"f1rjii52",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fymxs25"},largeHorizontal:{i8kkvl:"f1rjii52",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1ssfvub"},largeVertical:{i8kkvl:"f1rjii52",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fwkd1rq"},transparent:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",ecr2s2:"fophhak",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},subtle:{De3pzq:"fhovq9v",Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},disabled:{De3pzq:"f1c21dwh",Bptxc3x:"fato7r6",cl4aha:"fao1bnu",Bceei9c:"fdrzuqr"},selected:{Bptxc3x:"f1cadz5z",B076xvk:"f1ck17l",q9r9w5:"f42ak0g",cl4aha:"ffplhdr",Bk452zc:"ffth601",a4hkcw:"fhklyu5"}},{d:[".f122n59{align-items:center;}",[".f3bhgqh{border:none;}",{p:-2}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f1k6fduh{cursor:pointer;}",".f13qh94s{display:grid;}",".fi64zpg{flex-shrink:0;}",".f1u07yai{grid-auto-flow:column;}",".frn2hmy{grid-template-columns:auto;}",".f1olsevy{grid-template-rows:auto;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1s6fcnf{outline-style:none;}",".f10pi13n{position:relative;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],".f1cxpek8{text-transform:none;}",".f4d9j23{justify-content:center;}",".f1s9ku6b{justify-content:start;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",[".f1wmopi4{padding:var(--spacingVerticalSNudge) var(--spacingHorizontalSNudge);}",{p:-1}],[".f12or63q{padding:var(--spacingVerticalXXS) var(--spacingHorizontalSNudge);}",{p:-1}],".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",[".f1w08f2p{padding:var(--spacingVerticalM) var(--spacingHorizontalMNudge);}",{p:-1}],[".fymxs25{padding:var(--spacingVerticalSNudge) var(--spacingHorizontalMNudge);}",{p:-1}],[".f1ssfvub{padding:var(--spacingVerticalL) var(--spacingHorizontalMNudge);}",{p:-1}],[".fwkd1rq{padding:var(--spacingVerticalS) var(--spacingHorizontalMNudge);}",{p:-1}],".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fmmjozx .fui-Tab__icon{color:var(--colorNeutralForeground2);}",".fpkze5g .fui-Tab__content{color:var(--colorNeutralForeground2);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fato7r6 .fui-Tab__icon{color:var(--colorNeutralForegroundDisabled);}",".fao1bnu .fui-Tab__content{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1cadz5z .fui-Tab__icon{color:var(--colorCompoundBrandForeground1);}",".ffplhdr .fui-Tab__content{color:var(--colorNeutralForeground1);}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1mfqf41:hover .fui-Tab__icon{color:var(--colorNeutralForeground2Hover);}",".f149wc3x:hover .fui-Tab__content{color:var(--colorNeutralForeground2Hover);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1ck17l:hover .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Hover);}",".ffth601:hover .fui-Tab__content{color:var(--colorNeutralForeground1Hover);}"],a:[".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f10aiid4:active .fui-Tab__icon{color:var(--colorNeutralForeground2Pressed);}",".fjioou7:active .fui-Tab__content{color:var(--colorNeutralForeground2Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".f42ak0g:active .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Pressed);}",".fhklyu5:active .fui-Tab__content{color:var(--colorNeutralForeground1Pressed);}"]}),TK=$({base:{B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bn4voq9:"f1p7hgxw",Bfpq7zp:"f1way5bb",g9k6zt:"f9znhxp",j6ew2k:["fqa318h","fqa318h"],Bhxq17a:"f1vjpng2"}},{d:[".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".f1p7hgxw[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);}",".f1way5bb[data-fui-focus-visible]{outline-color:transparent;}",".f9znhxp[data-fui-focus-visible]{outline-style:solid;}",".fqa318h[data-fui-focus-visible]{box-shadow:var(--shadow4),0 0 0 var(--strokeWidthThick) var(--colorStrokeFocus2);}",".f1vjpng2[data-fui-focus-visible]{z-index:1;}"]}),IK=$({base:{az7l2e:"fhw179n",vqofr:0,Bv4n3vi:0,Bgqb9hq:0,B0uxbk8:0,Bf3jju6:"fg9j5n4",amg5m6:"f1kmhr4c",zkfqfm:"fl1ydde",Bkydozb:"f1y7maxz",Bka2azo:0,vzq8l0:0,csmgbd:0,Br4ovkg:0,aelrif:"fceyvr4",y36c18:"f16cxu0",B1ctymy:"f1nwgacf",Bgvrrv0:"f15ovonk",ddr6p5:"fvje46l"},disabled:{az7l2e:"f1ut20fw",Bkydozb:"fhrzcfn"},smallHorizontal:{lawp4y:"fchca7p",Baz25je:"f1r53b5e",Fbdkly:["f1s6rxz5","fo35v8s"],mdwyqc:["fo35v8s","f1s6rxz5"]},smallVertical:{lawp4y:"fze4zud",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"fdp32p8",Ccq8qp:"f1aij3q"},mediumHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},mediumVertical:{lawp4y:"f17jracn",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f117lcb2",Ccq8qp:"f1aij3q"},largeHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},largeVertical:{lawp4y:"fel9d3z",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f6vqlre",Ccq8qp:"f1aij3q"}},{h:[".fhw179n:hover::before{background-color:var(--colorNeutralStroke1Hover);}",[".fg9j5n4:hover::before{border-radius:var(--borderRadiusCircular);}",{p:-1}],'.f1kmhr4c:hover::before{content:"";}',".fl1ydde:hover::before{position:absolute;}",".f1ut20fw:hover::before{background-color:var(--colorTransparentStroke);}"],a:[".f1y7maxz:active::before{background-color:var(--colorNeutralStroke1Pressed);}",[".fceyvr4:active::before{border-radius:var(--borderRadiusCircular);}",{p:-1}],'.f16cxu0:active::before{content:"";}',".f1nwgacf:active::before{position:absolute;}",".fhrzcfn:active::before{background-color:var(--colorTransparentStroke);}"],m:[["@media (forced-colors: active){.f15ovonk:hover::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fvje46l:active::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}]],d:[".fchca7p::before{bottom:0;}",".f1r53b5e::before{height:var(--strokeWidthThick);}",".f1s6rxz5::before{left:var(--spacingHorizontalSNudge);}",".fo35v8s::before{right:var(--spacingHorizontalSNudge);}",".fze4zud::before{bottom:var(--spacingVerticalXS);}",".f1fzr1x6::before{left:0;}",".f1f351id::before{right:0;}",".fdp32p8::before{top:var(--spacingVerticalXS);}",".f1aij3q::before{width:var(--strokeWidthThicker);}",".f1s2r9ax::before{height:var(--strokeWidthThicker);}",".f1o0nnkk::before{left:var(--spacingHorizontalM);}",".fxb7rol::before{right:var(--spacingHorizontalM);}",".f17jracn::before{bottom:var(--spacingVerticalS);}",".f117lcb2::before{top:var(--spacingVerticalS);}",".fel9d3z::before{bottom:var(--spacingVerticalMNudge);}",".f6vqlre::before{top:var(--spacingVerticalMNudge);}"]}),PK=$({base:{Bjyk6c5:"f1rp0jgh",d9w3h3:0,B3778ie:0,B4j8arr:0,Bl18szs:0,Blrzh8d:"f3b9emi",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9"},selected:{Bjyk6c5:"f1ksivud",Glksuk:"f1eytvvh",Blzl0y7:"fuaa9s",f7digc:"fy7ktjt",Biqphg1:"f16tp0gf",Bntoloa:"fj0yp7j"},disabled:{Bjyk6c5:"f13lkzet"},smallHorizontal:{By385i5:"fo72kxq",Dlnsje:"f9bb2ob",Eqx8gd:["f1q70ajw","f18rbzdx"],B1piin3:["f18rbzdx","f1q70ajw"]},smallVertical:{By385i5:"fqbue9b",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fk1klkt",a2br6o:"f1o25lip"},mediumHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},mediumVertical:{By385i5:"fipylg0",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fqchiol",a2br6o:"f1o25lip"},largeHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},largeVertical:{By385i5:"f1w7dm5g",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"f1p6em4m",a2br6o:"f1o25lip"}},{d:[".f1rp0jgh::after{background-color:var(--colorTransparentStroke);}",[".f3b9emi::after{border-radius:var(--borderRadiusCircular);}",{p:-1}],'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1ksivud::after{background-color:var(--colorCompoundBrandStroke);}",".f13lkzet::after{background-color:var(--colorNeutralForegroundDisabled);}",".fo72kxq::after{bottom:0;}",".f9bb2ob::after{height:var(--strokeWidthThick);}",".f1q70ajw::after{left:var(--spacingHorizontalSNudge);}",".f18rbzdx::after{right:var(--spacingHorizontalSNudge);}",".fqbue9b::after{bottom:var(--spacingVerticalXS);}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fk1klkt::after{top:var(--spacingVerticalXS);}",".f1o25lip::after{width:var(--strokeWidthThicker);}",".f1vx7lu8::after{height:var(--strokeWidthThicker);}",".fna7m5n::after{left:var(--spacingHorizontalM);}",".f1oxpfwv::after{right:var(--spacingHorizontalM);}",".fipylg0::after{bottom:var(--spacingVerticalS);}",".fqchiol::after{top:var(--spacingVerticalS);}",".f1w7dm5g::after{bottom:var(--spacingVerticalMNudge);}",".f1p6em4m::after{top:var(--spacingVerticalMNudge);}"],h:[".f1eytvvh:hover::after{background-color:var(--colorCompoundBrandStrokeHover);}"],a:[".fuaa9s:active::after{background-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media (forced-colors: active){.fy7ktjt::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16tp0gf:hover::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fj0yp7j:active::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}]]}),DK=$({base:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94",Bt984gj:"f122n59",mc9l5x:"ftuwxu6",Brf1p80:"f4d9j23",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",D0sxk3:"f16u1re",t6yez3:"f8bsbmo"},small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},medium:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun"},selected:{D0sxk3:"fxoiby5",t6yez3:"f15q0o9g"}},{d:[".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".f4d9j23{justify-content:center;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],".f16u1re .fui-Icon-filled{display:none;}",".f8bsbmo .fui-Icon-regular{display:inline;}",".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxoiby5 .fui-Icon-filled{display:inline;}",".f15q0o9g .fui-Icon-regular{display:none;}"]}),MK=$({base:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1bwptpd"},selected:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"fl43uef",Bg96gwp:"f1i3iumi"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"},largeSelected:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},noIconBefore:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94"},iconBefore:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94"},placeholder:{Bcdw1i0:"fd7fpy0"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],[".f1bwptpd{padding:var(--spacingVerticalNone) var(--spacingHorizontalXXS);}",{p:-1}],".fl43uef{font-weight:var(--fontWeightSemibold);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".fd46tj4{grid-column-start:2;}",".fd7fpy0{visibility:hidden;}"]}),RK=e=>{"use no memo";const t=CK(),n=TK(),r=IK(),o=PK(),i=DK(),a=MK(),{appearance:s,disabled:c,selected:l,size:d,vertical:A}=e;return e.root.className=G(d1.root,t.base,A?t.vertical:t.horizontal,d==="small"&&(A?t.smallVertical:t.smallHorizontal),d==="medium"&&(A?t.mediumVertical:t.mediumHorizontal),d==="large"&&(A?t.largeVertical:t.largeHorizontal),n.base,!c&&s==="subtle"&&t.subtle,!c&&s==="transparent"&&t.transparent,!c&&l&&t.selected,c&&t.disabled,r.base,d==="small"&&(A?r.smallVertical:r.smallHorizontal),d==="medium"&&(A?r.mediumVertical:r.mediumHorizontal),d==="large"&&(A?r.largeVertical:r.largeHorizontal),c&&r.disabled,l&&o.base,l&&!c&&o.selected,l&&d==="small"&&(A?o.smallVertical:o.smallHorizontal),l&&d==="medium"&&(A?o.mediumVertical:o.mediumHorizontal),l&&d==="large"&&(A?o.largeVertical:o.largeHorizontal),l&&c&&o.disabled,e.root.className),e.icon&&(e.icon.className=G(d1.icon,i.base,i[d],l&&i.selected,e.icon.className)),e.contentReservedSpace&&(e.contentReservedSpace.className=G(NK.content,a.base,d==="large"?a.largeSelected:a.selected,e.icon?a.iconBefore:a.noIconBefore,a.placeholder,e.content.className),e.contentReservedSpaceClassName=e.contentReservedSpace.className),e.content.className=G(d1.content,a.base,d==="large"&&a.large,l&&(d==="large"?a.largeSelected:a.selected),e.icon?a.iconBefore:a.noIconBefore,e.content.className),jK(e),e},T6=g.forwardRef((e,t)=>{const n=wK(e,t);return RK(n),Ye("useTabStyles_unstable")(n),xK(n)});T6.displayName="Tab";const zK=(e,t)=>{const{appearance:n="transparent",reserveSelectedTabSpace:r=!0,disabled:o=!1,onTabSelect:i,selectTabOnFocus:a=!1,size:s="medium",vertical:c=!1}=e,l=g.useRef(null),d=Tu({circular:!0,axis:c?"vertical":"horizontal",memorizeCurrent:!0}),[A,f]=Mn({state:e.selectedValue,defaultState:e.defaultSelectedValue,initialState:void 0}),m=g.useRef(void 0),v=g.useRef(void 0);g.useEffect(()=>{v.current=m.current,m.current=A},[A]);const p=fe((x,k)=>{f(k.value),i==null||i(x,k)}),y=g.useRef({}),b=fe(x=>{y.current[JSON.stringify(x.value)]=x}),h=fe(x=>{delete y.current[JSON.stringify(x.value)]}),w=g.useCallback(()=>({selectedValue:m.current,previousSelectedValue:v.current,registeredTabs:y.current}),[]);return{components:{root:"div"},root:be(ze("div",{ref:ot(t,l),role:"tablist","aria-orientation":c?"vertical":"horizontal",...d,...e}),{elementType:"div"}),appearance:n,reserveSelectedTabSpace:r,disabled:o,selectTabOnFocus:a,selectedValue:A,size:s,vertical:c,onRegister:b,onUnregister:h,onSelect:p,getRegisteredTabs:w}},EK=(e,t)=>Q(e.root,{children:Q(yK,{value:t.tabList,children:e.root.children})}),BK={root:"fui-TabList"},FK=$({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bnnss6s:"fi64zpg",Eh141a:"flvyvdh",qhf8xq:"f10pi13n"},horizontal:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1063pyq"},vertical:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fi64zpg{flex-shrink:0;}",".flvyvdh{flex-wrap:nowrap;}",".f10pi13n{position:relative;}",".f1q9h2pe{align-items:stretch;}",".f1vx9l62{flex-direction:column;}"]}),OK=e=>{"use no memo";const{vertical:t}=e,n=FK();return e.root.className=G(BK.root,n.root,t?n.vertical:n.horizontal,e.root.className),e};function LK(e){const{appearance:t,reserveSelectedTabSpace:n,disabled:r,selectTabOnFocus:o,selectedValue:i,onRegister:a,onUnregister:s,onSelect:c,getRegisteredTabs:l,size:d,vertical:A}=e;return{tabList:{appearance:t,reserveSelectedTabSpace:n,disabled:r,selectTabOnFocus:o,selectedValue:i,onSelect:c,onRegister:a,onUnregister:s,getRegisteredTabs:l,size:d,vertical:A}}}const I6=g.forwardRef((e,t)=>{const n=zK(e,t),r=LK(n);return OK(n),Ye("useTabListStyles_unstable")(n),EK(n,r)});I6.displayName="TabList";const WK=(e,t)=>{const{wrap:n,truncate:r,block:o,italic:i,underline:a,strikethrough:s,size:c,font:l,weight:d,align:A}=e;return{align:A??"start",block:o??!1,font:l??"base",italic:i??!1,size:c??300,strikethrough:s??!1,truncate:r??!1,underline:a??!1,weight:d??"regular",wrap:n??!0,components:{root:"span"},root:be(ze("span",{ref:t,...e}),{elementType:"span"})}},UK=e=>Q(e.root,{}),HK={root:"fui-Text"},ZK=$({root:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Bhrd7zp:"figsok6",fsow6f:"fpgzoln",mc9l5x:"f1w7gpdv",Huce71:"f6juhto",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",ygn44y:"f2jf649"},nowrap:{Huce71:"fz5stix",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp"},truncate:{ygn44y:"f1cmbuwj"},block:{mc9l5x:"ftgm304"},italic:{B80ckks:"f1j4dglz"},underline:{w71qe1:"f13mvf36"},strikethrough:{w71qe1:"fv5q2k7"},strikethroughUnderline:{w71qe1:"f1drk4o6"},base100:{Be2twd7:"f13mqy1h",Bg96gwp:"fcpl73t"},base200:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},base400:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k"},base500:{Be2twd7:"f1pp30po",Bg96gwp:"f106mvju"},base600:{Be2twd7:"f1x0m3f5",Bg96gwp:"fb86gi6"},hero700:{Be2twd7:"fojgt09",Bg96gwp:"fcen8rp"},hero800:{Be2twd7:"fccw675",Bg96gwp:"f1ebx5kk"},hero900:{Be2twd7:"f15afnhw",Bg96gwp:"fr3w3wp"},hero1000:{Be2twd7:"fpyltcb",Bg96gwp:"f1ivgwrt"},monospace:{Bahqtrf:"f1fedwem"},numeric:{Bahqtrf:"f1uq0ln5"},weightMedium:{Bhrd7zp:"fdj6btp"},weightSemibold:{Bhrd7zp:"fl43uef"},weightBold:{Bhrd7zp:"flh3ekv"},alignCenter:{fsow6f:"f17mccla"},alignEnd:{fsow6f:"f12ymhq5"},alignJustify:{fsow6f:"f1j59e10"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fpgzoln{text-align:start;}",".f1w7gpdv{display:inline;}",".f6juhto{white-space:normal;}",[".f1gl81tg{overflow:visible;}",{p:-1}],".f2jf649{text-overflow:clip;}",".fz5stix{white-space:nowrap;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],".f1cmbuwj{text-overflow:ellipsis;}",".ftgm304{display:block;}",".f1j4dglz{font-style:italic;}",".f13mvf36{text-decoration-line:underline;}",".fv5q2k7{text-decoration-line:line-through;}",".f1drk4o6{text-decoration-line:line-through underline;}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".fb86gi6{line-height:var(--lineHeightBase600);}",".fojgt09{font-size:var(--fontSizeHero700);}",".fcen8rp{line-height:var(--lineHeightHero700);}",".fccw675{font-size:var(--fontSizeHero800);}",".f1ebx5kk{line-height:var(--lineHeightHero800);}",".f15afnhw{font-size:var(--fontSizeHero900);}",".fr3w3wp{line-height:var(--lineHeightHero900);}",".fpyltcb{font-size:var(--fontSizeHero1000);}",".f1ivgwrt{line-height:var(--lineHeightHero1000);}",".f1fedwem{font-family:var(--fontFamilyMonospace);}",".f1uq0ln5{font-family:var(--fontFamilyNumeric);}",".fdj6btp{font-weight:var(--fontWeightMedium);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".flh3ekv{font-weight:var(--fontWeightBold);}",".f17mccla{text-align:center;}",".f12ymhq5{text-align:end;}",".f1j59e10{text-align:justify;}"]}),VK=e=>{"use no memo";const t=ZK();return e.root.className=G(HK.root,t.root,e.wrap===!1&&t.nowrap,e.truncate&&t.truncate,e.block&&t.block,e.italic&&t.italic,e.underline&&t.underline,e.strikethrough&&t.strikethrough,e.underline&&e.strikethrough&&t.strikethroughUnderline,e.size===100&&t.base100,e.size===200&&t.base200,e.size===400&&t.base400,e.size===500&&t.base500,e.size===600&&t.base600,e.size===700&&t.hero700,e.size===800&&t.hero800,e.size===900&&t.hero900,e.size===1e3&&t.hero1000,e.font==="monospace"&&t.monospace,e.font==="numeric"&&t.numeric,e.weight==="medium"&&t.weightMedium,e.weight==="semibold"&&t.weightSemibold,e.weight==="bold"&&t.weightBold,e.align==="center"&&t.alignCenter,e.align==="end"&&t.alignEnd,e.align==="justify"&&t.alignJustify,e.root.className),e},rn=g.forwardRef((e,t)=>{const n=WK(e,t);return VK(n),Ye("useTextStyles_unstable")(n),UK(n)});rn.displayName="Text";const qK=Re("r6pzz3z",null,[".r6pzz3z{overflow-y:hidden;overflow-y:clip;scrollbar-gutter:stable;}"]),_K=Re("r144vlu9",null,[".r144vlu9{overflow-y:hidden;}"]);function XK(){const e=qK(),t=_K(),{targetDocument:n}=Ge(),r=g.useCallback(()=>{var i;if(!n)return;var a;n.body.clientHeight>((a=(i=n.defaultView)===null||i===void 0?void 0:i.innerHeight)!==null&&a!==void 0?a:0)&&(n.documentElement.classList.add(e),n.body.classList.add(t))},[n,e,t]),o=g.useCallback(()=>{n&&(n.documentElement.classList.remove(e),n.body.classList.remove(t))},[n,e,t]);return{disableBodyScroll:r,enableBodyScroll:o}}function GK(e,t){const{findFirstFocusable:n}=Iu(),{targetDocument:r}=Ge(),o=g.useRef(null);return g.useEffect(()=>{if(!e)return;const i=o.current&&n(o.current);if(i)i.focus();else{var a;(a=o.current)===null||a===void 0||a.focus()}},[n,e,t,r]),o}const YK={open:!1,inertTrapFocus:!1,modalType:"modal",isNestedDialog:!1,dialogRef:{current:null},requestOpenChange(){}},Vk=Vi(void 0),KK=Vk.Provider,Si=e=>Qs(Vk,(t=YK)=>e(t)),JK=!1,P6=g.createContext(void 0),D6=P6.Provider,QK=()=>{var e;return(e=g.useContext(P6))!==null&&e!==void 0?e:JK},KC=[{opacity:0,boxShadow:"0px 0px 0px 0px rgba(0, 0, 0, 0.1)",transform:"scale(0.85) translateZ(0)"},{boxShadow:cV.shadow64,transform:"scale(1) translateZ(0)",opacity:1}],JC=_h({enter:{keyframes:KC,easing:fr.curveDecelerateMid,duration:fr.durationGentle},exit:{keyframes:[...KC].reverse(),easing:fr.curveAccelerateMin,duration:fr.durationGentle}}),$K=e=>{const{children:t,modalType:n="modal",onOpenChange:r,inertTrapFocus:o=!1}=e,[i,a]=eJ(t),[s,c]=Mn({state:e.open,defaultState:e.defaultOpen,initialState:!1}),l=fe(v=>{r==null||r(v.event,v),v.event.isDefaultPrevented()||c(v.open)}),d=GK(s,n),{modalAttributes:A,triggerAttributes:f}=Gm({trapFocus:n!=="non-modal",legacyTrapFocus:!o}),m=qh(Vk);return{components:{surfaceMotion:JC},inertTrapFocus:o,open:s,modalType:n,content:a,trigger:i,requestOpenChange:l,dialogTitleId:Rn("dialog-title-"),isNestedDialog:m,dialogRef:d,modalAttributes:A,triggerAttributes:f,surfaceMotion:Pk(e.surfaceMotion,{elementType:JC,defaultProps:{appear:!0,visible:s,unmountOnExit:!0}})}};function eJ(e){const t=g.Children.toArray(e);switch(t.length){case 2:return t;case 1:return[void 0,t[0]];default:return[void 0,void 0]}}const M6=g.createContext(void 0);function tJ(){return g.useContext(M6)}const nJ=g.forwardRef((e,t)=>g.createElement(M6.Provider,{value:t},e.children)),rJ=(e,t)=>Q(KK,{value:t.dialog,children:ut(D6,{value:t.dialogSurface,children:[e.trigger,e.content&&Q(e.surfaceMotion,{children:Q(nJ,{children:e.content})})]})});function oJ(e){const{modalType:t,open:n,dialogRef:r,dialogTitleId:o,isNestedDialog:i,inertTrapFocus:a,requestOpenChange:s,modalAttributes:c,triggerAttributes:l}=e;return{dialog:{open:n,modalType:t,dialogRef:r,dialogTitleId:o,isNestedDialog:i,inertTrapFocus:a,modalAttributes:c,triggerAttributes:l,requestOpenChange:s},dialogSurface:!1}}const qk=g.memo(e=>{const t=$K(e),n=oJ(t);return rJ(t,n)});qk.displayName="Dialog";const iJ=e=>{const t=QK(),{children:n,disableButtonEnhancement:r=!1,action:o=t?"close":"open"}=e,i=Oh(n),a=Si(A=>A.requestOpenChange),{triggerAttributes:s}=Gm(),c=fe(A=>{var f,m;i==null||(f=(m=i.props).onClick)===null||f===void 0||f.call(m,A),A.isDefaultPrevented()||a({event:A,type:"triggerClick",open:o==="open"})}),l={...i==null?void 0:i.props,ref:i==null?void 0:i.ref,onClick:c,...s},d=il((i==null?void 0:i.type)==="button"||(i==null?void 0:i.type)==="a"?i.type:"div",{...l,type:"button"});return{children:yk(n,r?l:d)}},aJ=e=>e.children,Qh=e=>{const t=iJ(e);return aJ(t)};Qh.displayName="DialogTrigger";Qh.isFluentTriggerComponent=!0;const sJ=(e,t)=>{var n;return{components:{root:"div"},root:be(ze((n=e.as)!==null&&n!==void 0?n:"div",{ref:t,...e}),{elementType:"div"})}},cJ=e=>Q(e.root,{}),lJ={root:"fui-DialogBody"},dJ=Re("r1h3qql9",null,{r:[".r1h3qql9{overflow:unset;gap:8px;display:grid;max-height:calc(100vh - 2 * 24px);box-sizing:border-box;grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr auto;}"],s:["@media screen and (max-width: 480px){.r1h3qql9{max-width:100vw;grid-template-rows:auto 1fr auto;}}","@media screen and (max-height: 359px){.r1h3qql9{max-height:unset;}}"]}),uJ=e=>{"use no memo";const t=dJ();return e.root.className=G(lJ.root,t,e.root.className),e},_k=g.forwardRef((e,t)=>{const n=sJ(e,t);return uJ(n),Ye("useDialogBodyStyles_unstable")(n),cJ(n)});_k.displayName="DialogBody";const QC={root:"fui-DialogTitle",action:"fui-DialogTitle__action"},AJ=Re("rxjm636",null,[".rxjm636{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase500);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase500);margin:0;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:3;}"]),fJ=$({rootWithoutAction:{Bw0ie65:"fsyjsko"}},{d:[".fsyjsko{grid-column-end:4;}"]}),mJ=Re("r13kcrze",null,[".r13kcrze{grid-row-start:1;grid-row-end:1;grid-column-start:3;justify-self:end;align-self:start;}"]),vJ=Re("r2avt6e","roj2bbc",{r:[".r2avt6e{overflow:visible;padding:0;border-style:none;position:relative;box-sizing:content-box;background-color:inherit;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;line-height:0;-webkit-appearance:button;text-align:unset;}",".r2avt6e:focus{outline-style:none;}",".r2avt6e:focus-visible{outline-style:none;}",".r2avt6e[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r2avt6e[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".roj2bbc{overflow:visible;padding:0;border-style:none;position:relative;box-sizing:content-box;background-color:inherit;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;line-height:0;-webkit-appearance:button;text-align:unset;}",".roj2bbc:focus{outline-style:none;}",".roj2bbc:focus-visible{outline-style:none;}",".roj2bbc[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.roj2bbc[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r2avt6e[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.roj2bbc[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),pJ=e=>{"use no memo";const t=AJ(),n=mJ(),r=fJ();return e.root.className=G(QC.root,t,!e.action&&r.rootWithoutAction,e.root.className),e.action&&(e.action.className=G(QC.action,n,e.action.className)),e},gJ=(e,t)=>{const{action:n}=e,r=Si(i=>i.modalType),o=vJ();return{components:{root:"h2",action:"div"},root:be(ze("h2",{ref:t,id:Si(i=>i.dialogTitleId),...e}),{elementType:"h2"}),action:Te(n,{renderByDefault:r==="non-modal",defaultProps:{children:g.createElement(Qh,{disableButtonEnhancement:!0,action:"close"},g.createElement("button",{type:"button",className:o,"aria-label":"close"},g.createElement(Ik,null)))},elementType:"div"})}},hJ=e=>ut(g.Fragment,{children:[Q(e.root,{children:e.root.children}),e.action&&Q(e.action,{})]}),R6=g.forwardRef((e,t)=>{const n=gJ(e,t);return pJ(n),Ye("useDialogTitleStyles_unstable")(n),hJ(n)});R6.displayName="DialogTitle";const $C=[{opacity:0},{opacity:1}],e3=_h({enter:{keyframes:$C,easing:fr.curveLinear,duration:fr.durationGentle},exit:{keyframes:[...$C].reverse(),easing:fr.curveLinear,duration:fr.durationGentle}}),bJ=(e,t)=>{const n=tJ(),r=Si(p=>p.modalType),o=Si(p=>p.isNestedDialog),i=Si(p=>p.modalAttributes),a=Si(p=>p.dialogRef),s=Si(p=>p.requestOpenChange),c=Si(p=>p.dialogTitleId),l=Si(p=>p.open),d=fe(p=>{if(_p(e.backdrop)){var y,b;(y=(b=e.backdrop).onClick)===null||y===void 0||y.call(b,p)}r==="modal"&&!p.isDefaultPrevented()&&s({event:p,open:!1,type:"backdropClick"})}),A=fe(p=>{var y;(y=e.onKeyDown)===null||y===void 0||y.call(e,p),p.key===$s&&!p.isDefaultPrevented()&&(s({event:p,open:!1,type:"escapeKeyDown"}),p.preventDefault())}),f=Te(e.backdrop,{renderByDefault:r!=="non-modal",defaultProps:{"aria-hidden":"true"},elementType:"div"});f&&(f.onClick=d);const{disableBodyScroll:m,enableBodyScroll:v}=XK();return nr(()=>{if(!(o||r==="non-modal"))return m(),()=>{v()}},[v,o,m,r]),{components:{backdrop:"div",root:"div",backdropMotion:e3},open:l,backdrop:f,isNestedDialog:o,mountNode:e.mountNode,root:be(ze("div",{tabIndex:-1,"aria-modal":r!=="non-modal",role:r==="alert"?"alertdialog":"dialog","aria-labelledby":e["aria-label"]?void 0:c,...e,...i,onKeyDown:A,ref:ot(t,n,a)}),{elementType:"div"}),backdropMotion:Pk(e.backdropMotion,{elementType:e3,defaultProps:{appear:!0,visible:l}}),transitionStatus:void 0}},yJ=(e,t)=>ut(Bu,{mountNode:e.mountNode,children:[e.backdrop&&Q(e.backdropMotion,{children:Q(e.backdrop,{})}),Q(D6,{value:t.dialogSurface,children:Q(e.root,{})})]}),t3={root:"fui-DialogSurface",backdrop:"fui-DialogSurface__backdrop"},wJ=Re("r1svjbtt","r131yuoq",{r:[".r1svjbtt{inset:0;padding:24px;margin:auto;border-style:none;overflow:unset;border:1px solid var(--colorTransparentStroke);border-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".r1svjbtt:focus{outline-style:none;}",".r1svjbtt:focus-visible{outline-style:none;}",".r1svjbtt[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1svjbtt[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r131yuoq{inset:0;padding:24px;margin:auto;border-style:none;overflow:unset;border:1px solid var(--colorTransparentStroke);border-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".r131yuoq:focus{outline-style:none;}",".r131yuoq:focus-visible{outline-style:none;}",".r131yuoq[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r131yuoq[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1svjbtt[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media screen and (max-width: 480px){.r1svjbtt{max-width:100vw;}}","@media screen and (max-height: 359px){.r1svjbtt{overflow-y:auto;padding-right:calc(24px - 4px);border-right-width:4px;border-top-width:4px;border-bottom-width:4px;}}","@media (forced-colors: active){.r131yuoq[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}","@media screen and (max-width: 480px){.r131yuoq{max-width:100vw;}}","@media screen and (max-height: 359px){.r131yuoq{overflow-y:auto;padding-left:calc(24px - 4px);border-left-width:4px;border-top-width:4px;border-bottom-width:4px;}}"]}),xJ=Re("rsptlh5",null,[".rsptlh5{inset:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;}"]),kJ=$({nestedDialogBackdrop:{De3pzq:"f1c21dwh"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}"]}),SJ=e=>{"use no memo";const{isNestedDialog:t,root:n,backdrop:r}=e,o=wJ(),i=xJ(),a=kJ();return n.className=G(t3.root,o,n.className),r&&(r.className=G(t3.backdrop,i,t&&a.nestedDialogBackdrop,r.className)),e};function jJ(e){return{dialogSurface:!0}}const Xk=g.forwardRef((e,t)=>{const n=bJ(e,t),r=jJ();return SJ(n),Ye("useDialogSurfaceStyles_unstable")(n),yJ(n,r)});Xk.displayName="DialogSurface";const NJ=(e,t)=>{var n;return{components:{root:"div"},root:be(ze((n=e.as)!==null&&n!==void 0?n:"div",{ref:t,...e}),{elementType:"div"})}},CJ=e=>Q(e.root,{}),TJ={root:"fui-DialogContent"},IJ=Re("r1v5zwsm",null,{r:[".r1v5zwsm{padding:var(--strokeWidthThick);margin:calc(var(--strokeWidthThick) * -1);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);overflow-y:auto;min-height:32px;box-sizing:border-box;grid-row-start:2;grid-row-end:2;grid-column-start:1;grid-column-end:4;}"],s:["@media screen and (max-height: 359px){.r1v5zwsm{overflow-y:unset;}}"]}),PJ=e=>{"use no memo";const t=IJ();return e.root.className=G(TJ.root,t,e.root.className),e},z6=g.forwardRef((e,t)=>{const n=NJ(e,t);return PJ(n),Ye("useDialogContentStyles_unstable")(n),CJ(n)});z6.displayName="DialogContent";const oA=()=>{},E6={allRowsSelected:!1,clearRows:oA,deselectRow:oA,isRowSelected:()=>!1,selectRow:oA,selectedRows:new Set,someRowsSelected:!1,toggleAllRows:oA,toggleRow:oA,selectionMode:"multiselect"};function B6(e){"use no memo";return t=>DJ(t,e)}function DJ(e,t){const{items:n,getRowId:r}=e,{selectionMode:o,defaultSelectedItems:i,selectedItems:a,onSelectionChange:s}=t,[c,l]=JW({selectionMode:o,defaultSelectedItems:i,selectedItems:a,onSelectionChange:s}),d=g.useMemo(()=>{const w=new Set;for(let k=0;k{if(o==="single"){const x=Array.from(c)[0];return d.has(x)}if(c.size{c.has(x)||(w=!1)}),w},[d,c,o]),f=g.useMemo(()=>{if(c.size<=0)return!1;let w=!1;return d.forEach(x=>{c.has(x)&&(w=!0)}),w},[d,c]),m=fe(w=>{l.toggleAllItems(w,n.map((x,k)=>{var S;return(S=r==null?void 0:r(x))!==null&&S!==void 0?S:k}))}),v=fe((w,x)=>l.toggleItem(w,x)),p=fe((w,x)=>l.deselectItem(w,x)),y=fe((w,x)=>l.selectItem(w,x)),b=w=>l.isSelected(w),h=fe(w=>l.clearItems(w));return{...e,selection:{selectionMode:o,someRowsSelected:f,allRowsSelected:A,selectedRows:c,toggleRow:v,toggleAllRows:m,clearRows:h,deselectRow:p,selectRow:y,isRowSelected:b}}}const n3=()=>{},F6={getSortDirection:()=>"ascending",setColumnSort:n3,sort:e=>[...e],sortColumn:void 0,sortDirection:"ascending",toggleColumnSort:n3},MJ=(e,t)=>{const n=fe(r=>{var o;(o=e.onClick)===null||o===void 0||o.call(e,r),r.stopPropagation()});return{components:{root:"div"},root:be(ze("div",{ref:t,...e,onClick:n}),{elementType:"div"})}},RJ=e=>Q(e.root,{}),zJ={root:"fui-TableResizeHandle"},EJ=$({root:{qhf8xq:"f1euv43f",j35jbq:["f1e31b4d","f1vgc2s3"],Bhzewxz:"f15twtuk",B5kzvoi:"f1yab3r1",a9b677:"fjw5fx7",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"fg06o1j",Bceei9c:"fc3en1c",abs64n:"fk73vx1",Bmy1vo4:"f13u1uyl",B3o57yi:"fezquic",Bj3rh1h:"f19g0ac",B3cna0y:"f1tkae59",Brovlpu:"ftqa4ok",B7zu5sd:"f15pjodv",Bs6t6z0:"ftgrb5f",Fdvyjd:"f2df6js",Biobvvw:"fshsryb",Hdbjpj:"f11ef69",jc51t6:["f12lb1dx","f13tbxeo"],u6d25:"fu4ulse",Bj55yzk:"fw2wsqs",Bkbwdz4:"f1swzn7y"}},{d:[".f1euv43f{position:absolute;}",".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f15twtuk{top:0;}",".f1yab3r1{bottom:0;}",".fjw5fx7{width:16px;}",[".fg06o1j{margin:0 -8px;}",{p:-1}],".fc3en1c{cursor:col-resize;}",".fk73vx1{opacity:0;}",".f13u1uyl{transition-property:opacity;}",".fezquic{transition-duration:.2s;}",".f19g0ac{z-index:1;}",'.ftgrb5f:after{content:" ";}',".f2df6js:after{display:block;}",".fshsryb:after{width:1px;}",".f11ef69:after{position:absolute;}",".f12lb1dx:after{left:50%;}",".f13tbxeo:after{right:50%;}",".fu4ulse:after{top:0;}",".fw2wsqs:after{bottom:0;}",".f1swzn7y:after{background-color:var(--colorNeutralStroke1);}"],f:[".f1tkae59:focus{opacity:1;}",".ftqa4ok:focus{outline-style:none;}"],h:[".f15pjodv:hover{opacity:1;}"]}),BJ=e=>{"use no memo";const t=EJ();return e.root.className=G(zJ.root,t.root,e.root.className),e},O6=g.forwardRef((e,t)=>{const n=MJ(e,t);return BJ(n),Ye("useTableResizeHandleStyles_unstable")(n),RJ(n)});O6.displayName="TableResizeHandle";function FJ(){const[e,t]=g.useState(0),n=g.useRef(void 0),r=g.useRef(null),{targetDocument:o}=Ge(),i=g.useCallback(()=>{var s;const c=(s=n.current)===null||s===void 0?void 0:s.getBoundingClientRect().width;t(c||0)},[]),a=g.useCallback(s=>{if(o&&(!s&&r.current&&n.current&&r.current.unobserve(n.current),n.current=void 0,s!=null&&s.parentElement)){var c;n.current=s.parentElement,i(),(c=r.current)===null||c===void 0||c.observe(n.current)}},[o,i]);return g.useEffect(()=>{if(r.current=OJ(o,i),!(!n.current||!r.current))return r.current.observe(n.current),()=>{var s;(s=r.current)===null||s===void 0||s.disconnect()}},[i,o]),{width:e,measureElementRef:a}}function OJ(e,t){var n;return!(e==null||(n=e.defaultView)===null||n===void 0)&&n.ResizeObserver?new e.defaultView.ResizeObserver(t):null}function LJ(e){const t=g.useRef(0),n=g.useRef(0),r=g.useRef(void 0),[o,i]=g.useState(!1),{targetDocument:a}=Ge(),{getColumnWidth:s,setColumnWidth:c}=e,l=g.useCallback(v=>{const{clientX:p}=EN(v),y=p-t.current;n.current+=y,r.current&&c(v,{columnId:r.current,width:n.current}),t.current=p},[c]),[d]=BW(),A=g.useCallback(v=>{d(()=>l(v))},[d,l]),f=g.useCallback(v=>{jw(v)&&(a==null||a.removeEventListener("mouseup",f),a==null||a.removeEventListener("mousemove",A)),Sw(v)&&(a==null||a.removeEventListener("touchend",f),a==null||a.removeEventListener("touchmove",A)),i(!1)},[A,a]);return{getOnMouseDown:g.useCallback(v=>p=>{if(n.current=s(v),t.current=EN(p).clientX,r.current=v,jw(p)){if(p.target!==p.currentTarget||p.button!==0)return;a==null||a.addEventListener("mouseup",f),a==null||a.addEventListener("mousemove",A),i(!0)}Sw(p)&&(a==null||a.addEventListener("touchend",f),a==null||a.addEventListener("touchmove",A),i(!0))},[s,A,f,a]),dragging:o}}const WJ=150,UJ=100;function Bw(e,t=[],n={}){let r=!1;const o=new Map(t.map(a=>[a.columnId,a])),i=e.map(a=>{const s=o.get(a.columnId);if(s){var c;const{idealWidth:v=s.idealWidth,minWidth:p=s.minWidth,padding:y=s.padding}=(c=n[a.columnId])!==null&&c!==void 0?c:{};return v!==s.idealWidth||p!==s.minWidth||y!==s.padding?(r=!0,{...s,idealWidth:v,width:v,minWidth:p,padding:y}):s}var l;const{defaultWidth:d,idealWidth:A=WJ,minWidth:f=UJ,padding:m}=(l=n[a.columnId])!==null&&l!==void 0?l:{};return r=!0,{columnId:a.columnId,width:Math.max(d??A,f),minWidth:f,idealWidth:Math.max(d??A,f),padding:m??16}});if(i.length!==t.length||r){const a=i.find(s=>s.width>s.idealWidth);a&&(a.width=a.idealWidth),r=!0}return r?i:t}function rm(e,t){return e.find(n=>n.columnId===t)}function u1(e,t){return e[t]}function HJ(e){return e.reduce((t,n)=>t+n.width+n.padding,0)}function ZJ(e,t){const n=rm(e,t);var r;return(r=n==null?void 0:n.width)!==null&&r!==void 0?r:0}function sf(e,t,n,r){const o=rm(e,t);if(!o||(o==null?void 0:o[n])===r)return e;const i={...o,[n]:r};return e.reduce((s,c)=>c.columnId===i.columnId?[...s,i]:[...s,c],[])}function z0(e,t){let n=e;const r=HJ(n);if(r0;){const a=u1(n,i),s=Math.min(a.idealWidth-a.width,o);if(n=sf(n,a.columnId,"width",a.width+s),o-=s,i===n.length-1&&o!==0){const c=u1(n,i);n=sf(n,c.columnId,"width",c.width+o)}i++}}else if(r>=t){let o=r-t,i=n.length-1;for(;i>=0&&o>0;){const a=u1(n,i);if(a.width>a.minWidth){const s=Math.min(a.width-a.minWidth,o);o-=s,n=sf(n,a.columnId,"width",a.width-s)}i--}}return n}const VJ=e=>(t,n)=>{switch(n.type){case"CONTAINER_WIDTH_UPDATED":return{...t,containerWidth:n.containerWidth,columnWidthState:e?z0(t.columnWidthState,n.containerWidth):t.columnWidthState};case"COLUMNS_UPDATED":const r=Bw(n.columns,t.columnWidthState,t.columnSizingOptions);return{...t,columns:n.columns,columnWidthState:e?z0(r,t.containerWidth):r};case"COLUMN_SIZING_OPTIONS_UPDATED":const o=Bw(t.columns,t.columnWidthState,n.columnSizingOptions);return{...t,columnSizingOptions:n.columnSizingOptions,columnWidthState:e?z0(o,t.containerWidth):o};case"SET_COLUMN_WIDTH":const{columnId:i,width:a}=n,{containerWidth:s}=t,c=rm(t.columnWidthState,i);let l=[...t.columnWidthState];return c?(l=sf(l,i,"width",a),l=sf(l,i,"idealWidth",a),e&&(l=z0(l,s)),{...t,columnWidthState:l}):t}};function qJ(e,t,n={}){const{onColumnResize:r,columnSizingOptions:o,autoFitColumns:i=!0}=n,a=g.useMemo(()=>VJ(i),[i]),[s,c]=g.useReducer(a,{columns:e,containerWidth:0,columnWidthState:Bw(e,void 0,o),columnSizingOptions:o});nr(()=>{c({type:"CONTAINER_WIDTH_UPDATED",containerWidth:t})},[t]),nr(()=>{c({type:"COLUMNS_UPDATED",columns:e})},[e]),nr(()=>{c({type:"COLUMN_SIZING_OPTIONS_UPDATED",columnSizingOptions:o})},[o]);const l=fe((d,A)=>{let{width:f}=A;const{columnId:m}=A,v=rm(s.columnWidthState,m);v&&(f=Math.max(v.minWidth||0,f),r&&r(d,{columnId:m,width:f}),c({type:"SET_COLUMN_WIDTH",columnId:m,width:f}))});return{getColumnById:g.useCallback(d=>rm(s.columnWidthState,d),[s.columnWidthState]),getColumns:g.useCallback(()=>s.columnWidthState,[s.columnWidthState]),getColumnWidth:g.useCallback(d=>ZJ(s.columnWidthState,d),[s.columnWidthState]),setColumnWidth:l}}const E0=20,_J=kV,r3=1/4;function XJ(e){const[t,n]=g.useState(),r=g.useRef(),{findPrevFocusable:o}=Iu(),i=g.useRef(e);g.useEffect(()=>{i.current=e},[e]);const[a]=g.useState(()=>new Map),s=fe(m=>{if(!t)return;const v=i.current.getColumnWidth(t),p=m.getModifierState(_J),y=()=>{m.preventDefault(),m.stopPropagation()};switch(m.key){case Mu:y(),i.current.setColumnWidth(m.nativeEvent,{columnId:t,width:v-(p?E0*r3:E0)});return;case Ru:y(),i.current.setColumnWidth(m.nativeEvent,{columnId:t,width:v+(p?E0*r3:E0)});return;case To:case Hn:case $s:var b,h;y(),(h=a.get(t))===null||h===void 0||(b=h.current)===null||b===void 0||b.blur();break}}),c=g.useCallback(m=>{var v,p;n(m),(v=r.current)===null||v===void 0||v.call(r,m,!0);const y=(p=a.get(m))===null||p===void 0?void 0:p.current;y&&(y.setAttribute("tabindex","-1"),y.tabIndex=-1,y.focus())},[a]),l=g.useCallback(()=>{var m,v;if(!t)return;(m=r.current)===null||m===void 0||m.call(r,t,!1);const p=(v=a.get(t))===null||v===void 0?void 0:v.current;if(p){var y;(y=o(p))===null||y===void 0||y.focus(),p.removeAttribute("tabindex")}n(void 0)},[t,o,a]),d=(m,v)=>{r.current=v,t?m&&t!==m?(c(m),n(m)):l():c(m)},A=g.useCallback(m=>{const v=a.get(m)||g.createRef();return a.set(m,v),v},[a]),f=su({focusable:{ignoreKeydown:{ArrowLeft:!0,ArrowRight:!0}}});return{toggleInteractiveMode:d,columnId:t,getKeyboardResizingProps:g.useCallback((m,v)=>({onKeyDown:s,onBlur:l,ref:A(m),role:"separator","aria-label":"Resize column","aria-valuetext":`${v} pixels`,"aria-hidden":m!==t,tabIndex:m===t?0:void 0,...f}),[t,l,A,s,f])}}const L6={getColumnWidths:()=>[],getOnMouseDown:()=>()=>null,setColumnWidth:()=>null,getTableProps:()=>({}),getTableHeaderCellProps:()=>({style:{},columnId:""}),getTableCellProps:()=>({style:{},columnId:""}),enableKeyboardMode:()=>()=>null};function W6(e){"use no memo";return t=>GJ(t,{autoFitColumns:!0,...e})}function o3(e,t){const n=e.width;return{width:n,minWidth:n,maxWidth:n,...t?{pointerEvents:"none"}:{}}}function GJ(e,t={}){const{columns:n}=e,{width:r,measureElementRef:o}=FJ(),i=qJ(n,r+((t==null?void 0:t.containerWidthOffset)||0),t),a=LJ(i),{toggleInteractiveMode:s,getKeyboardResizingProps:c}=XJ(i),{autoFitColumns:l}=t,d=g.useCallback((y,b)=>h=>{h.preventDefault(),h.nativeEvent.stopPropagation(),s(y,b)},[s]),{getColumnById:A,setColumnWidth:f,getColumns:m}=i,{getOnMouseDown:v,dragging:p}=a;return{...e,tableRef:o,columnSizing_unstable:{getOnMouseDown:v,setColumnWidth:(y,b)=>f(void 0,{columnId:y,width:b}),getColumnWidths:m,getTableProps:(y={})=>({...y,style:{minWidth:"fit-content",...y.style||{}}}),getTableHeaderCellProps:g.useCallback(y=>{var b;const h=A(y),x=((b=n[n.length-1])===null||b===void 0?void 0:b.columnId)===y&&l?null:g.createElement(O6,{onMouseDown:v(y),onTouchStart:v(y),...c(y,(h==null?void 0:h.width)||0)});return h?{style:o3(h,p),aside:x}:{}},[A,n,p,c,v,l]),getTableCellProps:g.useCallback(y=>{const b=A(y);return b?{style:o3(b)}:{}},[A]),enableKeyboardMode:d}}}const YJ=e=>e;g.createRef();function U6(e,t=[]){const{items:n,getRowId:r,columns:o}=e,i=g.useCallback((s=YJ)=>n.map((c,l)=>{var d;return s({item:c,rowId:(d=r==null?void 0:r(c))!==null&&d!==void 0?d:l})}),[n,r]),a={getRowId:r,items:n,columns:o,getRows:i,selection:E6,sort:F6,columnSizing_unstable:L6,tableRef:g.createRef()};return t.reduce((s,c)=>c(s),a)}const KJ=()=>0,JJ=()=>null,QJ=()=>null;function Qn(e){const{columnId:t,renderCell:n=JJ,renderHeaderCell:r=QJ,compare:o=KJ}=e;return{columnId:t,renderCell:n,renderHeaderCell:r,compare:o}}const H6=g.createContext(void 0),$J={size:"medium",noNativeElements:!1,sortable:!1},eQ=H6.Provider,hl=()=>{var e;return(e=g.useContext(H6))!==null&&e!==void 0?e:$J},Z6=(e,t)=>{const{noNativeElements:n,size:r}=hl();var o;const i=((o=e.as)!==null&&o!==void 0?o:n)?"div":"td";return{components:{root:i},root:be(ze(i,{ref:t,role:i==="div"?"cell":void 0,...e}),{elementType:i}),noNativeElements:n,size:r}},tQ=e=>Q(e.root,{}),nQ="fui-TableCell",rQ={root:nQ},oQ=$({root:{mc9l5x:"f15pt5es",ha4doy:"fmrv4ls"},medium:{Bqenvij:"f1ft4266"},small:{Bqenvij:"fbsu25e"},"extra-small":{Bqenvij:"frvgh55"}},{d:[".f15pt5es{display:table-cell;}",".fmrv4ls{vertical-align:middle;}",".f1ft4266{height:44px;}",".fbsu25e{height:34px;}",".frvgh55{height:24px;}"]}),iQ=$({root:{mc9l5x:"f22iagw",Bf4jedk:"f10tiqix",Bt984gj:"f122n59",xawz:0,Bh6795r:0,Bnnss6s:0,fkmc3a:"f1izfyrr"},medium:{sshi5w:"f5pgtk9"},small:{sshi5w:"fcep9tg"},"extra-small":{sshi5w:"f1pha7fy"}},{d:[".f22iagw{display:flex;}",".f10tiqix{min-width:0px;}",".f122n59{align-items:center;}",[".f1izfyrr{flex:1 1 0px;}",{p:-1}],".f5pgtk9{min-height:44px;}",".fcep9tg{min-height:34px;}",".f1pha7fy{min-height:24px;}"]}),aQ=$({root:{qhf8xq:"f10pi13n",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f3gpkru",Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f1dxfoyt",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w"}},{d:[".f10pi13n{position:relative;}",[".f3gpkru{padding:0px var(--spacingHorizontalS);}",{p:-1}],[".f1dxfoyt[data-fui-focus-visible]{outline:2px solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}]]}),sQ=e=>{"use no memo";const t=aQ(),n={table:oQ(),flex:iQ()};return e.root.className=G(rQ.root,t.root,e.noNativeElements?n.flex.root:n.table.root,e.noNativeElements?n.flex[e.size]:n.table[e.size],e.root.className),e},Gk=g.forwardRef((e,t)=>{const n=Z6(e,t);return sQ(n),Ye("useTableCellStyles_unstable")(n),tQ(n)});Gk.displayName="TableCell";const V6=g.createContext(void 0),cQ="",lQ=V6.Provider,dQ=()=>g.useContext(V6)===cQ,uQ=(e,t)=>{const{noNativeElements:n,size:r}=hl();var o;const i=((o=e.as)!==null&&o!==void 0?o:n)?"div":"tr",a=Nk(),s=Xm(),c=dQ();var l;return{components:{root:i},root:be(ze(i,{ref:ot(t,a,s),role:i==="div"?"row":void 0,...e}),{elementType:i}),size:r,noNativeElements:n,appearance:(l=e.appearance)!==null&&l!==void 0?l:"none",isHeaderRow:c}},AQ=e=>Q(e.root,{}),A1={root:"fui-TableSelectionCell",checkboxIndicator:"fui-TableSelectionCell__checkboxIndicator",radioIndicator:"fui-TableSelectionCell__radioIndicator"},fQ=$({root:{mc9l5x:"f15pt5es",a9b677:"fksc0bp"}},{d:[".f15pt5es{display:table-cell;}",".fksc0bp{width:44px;}"]}),mQ=$({root:{mc9l5x:"f22iagw",xawz:0,Bh6795r:0,Bnnss6s:0,fkmc3a:"f1izfyrr",Bf4jedk:"fvrlu0f",B2u0y6b:"f1c71y05",Brf1p80:"f4d9j23"}},{d:[".f22iagw{display:flex;}",[".f1izfyrr{flex:1 1 0px;}",{p:-1}],".fvrlu0f{min-width:44px;}",".f1c71y05{max-width:44px;}",".f4d9j23{justify-content:center;}"]}),vQ=$({root:{fsow6f:"f17mccla",Huce71:"fz5stix",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f1dxfoyt",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w"},radioIndicator:{mc9l5x:"f22iagw",Bh6795r:"fqerorx",Bt984gj:"f122n59",Brf1p80:"f4d9j23"},subtle:{abs64n:"fk73vx1",B8a84jv:"f1y7ij6c"},hidden:{abs64n:"fk73vx1"}},{d:[".f17mccla{text-align:center;}",".fz5stix{white-space:nowrap;}",[".f1mk8lai{padding:0;}",{p:-1}],[".f1dxfoyt[data-fui-focus-visible]{outline:2px solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f22iagw{display:flex;}",".fqerorx{flex-grow:1;}",".f122n59{align-items:center;}",".f4d9j23{justify-content:center;}",".fk73vx1{opacity:0;}",".f1y7ij6c[data-fui-focus-within]:focus-within{opacity:1;}"]}),pQ=e=>{"use no memo";const t=vQ(),n={table:fQ(),flex:mQ()};return e.root.className=G(A1.root,t.root,e.noNativeElements?n.flex.root:n.table.root,e.subtle&&e.checked===!1&&t.subtle,e.hidden&&t.hidden,e.root.className),e.checkboxIndicator&&(e.checkboxIndicator.className=G(A1.checkboxIndicator,e.checkboxIndicator.className)),e.radioIndicator&&(e.radioIndicator.className=G(A1.radioIndicator,t.radioIndicator,e.radioIndicator.className)),e},gQ="fui-TableRow",hQ={root:gQ},bQ=$({root:{mc9l5x:"f1u0rzck"}},{d:[".f1u0rzck{display:table-row;}"]}),yQ=$({root:{mc9l5x:"f22iagw",Bt984gj:"f122n59"}},{d:[".f22iagw{display:flex;}",".f122n59{align-items:center;}"]}),wQ=$({root:{sj55zd:"f19n0e5",B7ck84d:"f1ewtqcl",Bconypa:"f1jazu75",B6guboy:"f1xeqee6",Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f1dxfoyt",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w"},rootInteractive:{ecr2s2:"f1wfn5kd",lj723h:"f1g4hkjv",B43xm9u:"f15ngxrw",i921ia:"fjbbrdp",Jwef8y:"f1t94bn6",Bi91k9c:"feu1g3u",Bpt6rm4:"f1uorfem",ff6mpl:"fw60kww",ze5xyy:"f4xjyn1",pgvf35:"ff1wgvm",Bh7lczh:["fiob0tu","f1x4h75k"],dpv3f4:"f1j6scgf",Bpnjhaq:["f1x4h75k","fiob0tu"]},medium:{B9xav0g:0,oivjwe:0,Bn0qgzm:0,Bgfg5da:"f1facbz3"},small:{B9xav0g:0,oivjwe:0,Bn0qgzm:0,Bgfg5da:"f1facbz3"},"extra-small":{Be2twd7:"fy9rknc"},brand:{De3pzq:"f16xkysk",g2u3we:"f1bh3yvw",h3c5rm:["fmi79ni","f11fozsx"],B9xav0g:"fnzw4c6",zhjwy3:["f11fozsx","fmi79ni"],ecr2s2:"f7tkmfy",lj723h:"f1r2dosr",uu68id:0,Bxeuatn:0,felo30:0,Bc736ss:0,Bhz882k:0,n51gp8:0,Eshu5l:0,Bk6ri7n:0,v49c4f:0,Bn1d65q:0,c4eypz:0,v3aym:0,hft9gk:0,Bjwas2f:0,Bk5ld8o:0,gwxt9v:0,B6k8go:"f95l9gw",h6lo6r:0,Beo2b4z:0,w1pwid:0,Btyw6ap:0,Hkxhyr:"fw8kmcu",Brwvgy3:"fd94n53",yadkgm:"f1e0wld5"},neutral:{uu68id:0,Bxeuatn:0,felo30:0,Bc736ss:0,Bhz882k:0,n51gp8:0,Eshu5l:0,Bk6ri7n:0,v49c4f:0,Bn1d65q:0,c4eypz:0,v3aym:0,hft9gk:0,Bjwas2f:0,Bk5ld8o:0,gwxt9v:0,B6k8go:"f95l9gw",h6lo6r:0,Beo2b4z:0,w1pwid:0,Btyw6ap:0,Hkxhyr:"fw8kmcu",Brwvgy3:"fd94n53",yadkgm:"f1e0wld5",De3pzq:"fq5gl1p",sj55zd:"f1cgsbmv",Jwef8y:"f1uqaxdt",ecr2s2:"fa9o754",g2u3we:"frmsihh",h3c5rm:["frttxa5","f11o2r7f"],B9xav0g:"fem5et0",zhjwy3:["f11o2r7f","frttxa5"]},none:{}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ewtqcl{box-sizing:border-box;}",".f1jazu75[data-fui-focus-within]:focus-within .fui-TableSelectionCell{opacity:1;}",".f1xeqee6[data-fui-focus-within]:focus-within .fui-TableCellActions{opacity:1;}",[".f1dxfoyt[data-fui-focus-visible]{outline:2px solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}],[".f1facbz3{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStroke2);}",{p:-1}],[".f1facbz3{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStroke2);}",{p:-1}],".fy9rknc{font-size:var(--fontSizeBase200);}",".f16xkysk{background-color:var(--colorBrandBackground2);}",".f1bh3yvw{border-top-color:var(--colorTransparentStrokeInteractive);}",".fmi79ni{border-right-color:var(--colorTransparentStrokeInteractive);}",".f11fozsx{border-left-color:var(--colorTransparentStrokeInteractive);}",".fnzw4c6{border-bottom-color:var(--colorTransparentStrokeInteractive);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1cgsbmv{color:var(--colorNeutralForeground1Hover);}",".frmsihh{border-top-color:var(--colorNeutralStrokeOnBrand);}",".frttxa5{border-right-color:var(--colorNeutralStrokeOnBrand);}",".f11o2r7f{border-left-color:var(--colorNeutralStrokeOnBrand);}",".fem5et0{border-bottom-color:var(--colorNeutralStrokeOnBrand);}"],a:[".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".f1g4hkjv:active{color:var(--colorNeutralForeground1Pressed);}",".f15ngxrw:active .fui-TableCellActions{opacity:1;}",".fjbbrdp:active .fui-TableSelectionCell{opacity:1;}",".f7tkmfy:active{background-color:var(--colorBrandBackground2);}",".f1r2dosr:active{color:var(--colorNeutralForeground1);}",".fa9o754:active{background-color:var(--colorSubtleBackgroundSelected);}"],h:[".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}",".f1uorfem:hover .fui-TableCellActions{opacity:1;}",".fw60kww:hover .fui-TableSelectionCell{opacity:1;}",".f1uqaxdt:hover{background-color:var(--colorSubtleBackgroundSelected);}"],m:[["@media (forced-colors: active){.f4xjyn1:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ff1wgvm:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1x4h75k:hover{border-left-color:Highlight;}.fiob0tu:hover{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1j6scgf:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f95l9gw{border:2px solid transparent;}}",{p:-2,m:"(forced-colors: active)"}],["@media (forced-colors: active){.fw8kmcu{border-radius:var(--borderRadiusMedium);}}",{p:-1,m:"(forced-colors: active)"}],["@media (forced-colors: active){.fd94n53{box-sizing:border-box;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1e0wld5:focus-visible{outline-offset:-4px;}}",{m:"(forced-colors: active)"}]]}),xQ=e=>{"use no memo";const t=wQ(),n={table:bQ(),flex:yQ()};return e.root.className=G(hQ.root,t.root,!e.isHeaderRow&&t.rootInteractive,t[e.size],e.noNativeElements?n.flex.root:n.table.root,t[e.appearance],e.root.className),e},om=g.forwardRef((e,t)=>{const n=uQ(e,t);return xQ(n),Ye("useTableRowStyles_unstable")(n),AQ(n)});om.displayName="TableRow";const kQ=(e,t)=>{const{noNativeElements:n}=hl();var r;const o=((r=e.as)!==null&&r!==void 0?r:n)?"div":"tbody";return{components:{root:o},root:be(ze(o,{ref:t,role:o==="div"?"rowgroup":void 0,...e}),{elementType:o}),noNativeElements:n}},SQ=e=>Q(e.root,{}),jQ=$({root:{mc9l5x:"f1tp1avn"}},{d:[".f1tp1avn{display:table-row-group;}"]}),NQ=$({root:{mc9l5x:"ftgm304"}},{d:[".ftgm304{display:block;}"]}),CQ="fui-TableBody",TQ=e=>{"use no memo";const t={table:jQ(),flex:NQ()};return e.root.className=G(CQ,e.noNativeElements?t.flex.root:t.table.root,e.root.className),e},Yk=g.forwardRef((e,t)=>{const n=kQ(e,t);return TQ(n),Ye("useTableBodyStyles_unstable")(n),SQ(n)});Yk.displayName="TableBody";const IQ=(e,t)=>{var n;const r=((n=e.as)!==null&&n!==void 0?n:e.noNativeElements)?"div":"table";var o,i,a;return{components:{root:r},root:be(ze(r,{ref:t,role:r==="div"?"table":void 0,...e}),{elementType:r}),size:(o=e.size)!==null&&o!==void 0?o:"medium",noNativeElements:(i=e.noNativeElements)!==null&&i!==void 0?i:!1,sortable:(a=e.sortable)!==null&&a!==void 0?a:!1}},PQ=(e,t)=>Q(eQ,{value:t.table,children:Q(e.root,{})}),DQ="fui-Table",MQ=$({root:{mc9l5x:"f1w4nmp0",ha4doy:"fmrv4ls",a9b677:"fly5x3f",B73mfa3:"f14m3nip"}},{d:[".f1w4nmp0{display:table;}",".fmrv4ls{vertical-align:middle;}",".fly5x3f{width:100%;}",".f14m3nip{table-layout:fixed;}"]}),RQ=$({root:{mc9l5x:"ftgm304"}},{d:[".ftgm304{display:block;}"]}),zQ=$({root:{po53p8:"fgkb47j",De3pzq:"fhovq9v"}},{d:[".fgkb47j{border-collapse:collapse;}",".fhovq9v{background-color:var(--colorSubtleBackground);}"]}),EQ=e=>{"use no memo";const t=zQ(),n={table:MQ(),flex:RQ()};return e.root.className=G(DQ,t.root,e.noNativeElements?n.flex.root:n.table.root,e.root.className),e};function BQ(e){const{size:t,noNativeElements:n,sortable:r}=e;return{table:g.useMemo(()=>({noNativeElements:n,size:t,sortable:r}),[n,t,r])}}const Kk=g.forwardRef((e,t)=>{const n=IQ(e,t);return EQ(n),Ye("useTableStyles_unstable")(n),PQ(n,BQ(n))});Kk.displayName="Table";const FQ=(e,t)=>{const{noNativeElements:n}=hl();var r;const o=((r=e.as)!==null&&r!==void 0?r:n)?"div":"thead";return{components:{root:o},root:be(ze(o,{ref:t,role:o==="div"?"rowgroup":void 0,...e}),{elementType:o}),noNativeElements:n}},OQ=e=>Q(lQ,{value:"",children:Q(e.root,{})}),LQ="fui-TableHeader",WQ=$({root:{mc9l5x:"ftgm304"}},{d:[".ftgm304{display:block;}"]}),UQ=$({root:{mc9l5x:"f1tp1avn"}},{d:[".f1tp1avn{display:table-row-group;}"]}),HQ=e=>{"use no memo";const t={table:UQ(),flex:WQ()};return e.root.className=G(LQ,e.noNativeElements?t.flex.root:t.table.root,e.root.className),e},Jk=g.forwardRef((e,t)=>{const n=FQ(e,t);return HQ(n),Ye("useTableHeaderStyles_unstable")(n),OQ(n)});Jk.displayName="TableHeader";const ZQ={ascending:g.createElement(z8,{fontSize:12}),descending:g.createElement(R8,{fontSize:12})},VQ=(e,t)=>{const{noNativeElements:n,sortable:r}=hl(),{sortable:o=r}=e;var i;const a=((i=e.as)!==null&&i!==void 0?i:n)?"div":"th",s=be(e.button,{elementType:"div",defaultProps:{as:"div",...!o&&{role:"presentation",tabIndex:void 0}}});var c;return{components:{root:a,button:"div",sortIcon:"span",aside:"span"},root:be(ze(a,{ref:ot(t,Xm()),role:a==="div"?"columnheader":void 0,"aria-sort":o?(c=e.sortDirection)!==null&&c!==void 0?c:"none":void 0,...e}),{elementType:a}),aside:Te(e.aside,{elementType:"span"}),sortIcon:Te(e.sortIcon,{renderByDefault:!!e.sortDirection,defaultProps:{children:e.sortDirection?ZQ[e.sortDirection]:void 0},elementType:"span"}),button:il(s.as,s),sortable:o,noNativeElements:n}},qQ=e=>ut(e.root,{children:[ut(e.button,{children:[e.root.children,e.sortIcon&&Q(e.sortIcon,{})]}),e.aside&&Q(e.aside,{})]}),B0={root:"fui-TableHeaderCell",button:"fui-TableHeaderCell__button",sortIcon:"fui-TableHeaderCell__sortIcon",aside:"fui-TableHeaderCell__aside"},_Q=$({root:{mc9l5x:"f15pt5es",ha4doy:"fmrv4ls"}},{d:[".f15pt5es{display:table-cell;}",".fmrv4ls{vertical-align:middle;}"]}),XQ=$({root:{mc9l5x:"f22iagw",xawz:0,Bh6795r:0,Bnnss6s:0,fkmc3a:"f1izfyrr",Bf4jedk:"f10tiqix"}},{d:[".f22iagw{display:flex;}",[".f1izfyrr{flex:1 1 0px;}",{p:-1}],".f10tiqix{min-width:0px;}"]}),GQ=$({root:{Bhrd7zp:"figsok6",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f3gpkru",robkg1:0,Bmvh20x:0,B3nxjsc:0,Bmkhcsx:"f14ym4q2",B8osjzx:0,pehzd3:0,Blsv9te:0,u7xebq:0,Bsvwmf7:"f1euou18",qhf8xq:"f10pi13n"},rootInteractive:{Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd"},resetButton:{B3rzk8w:"fq6nmtn",B7ck84d:"f1e4lqlz",De3pzq:"f1u2r49w",sj55zd:"f1ym3bx4",Bahqtrf:"f1mo0ibp",Be2twd7:"fjoy568",Bg96gwp:"fytdu2e",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",fsow6f:"fgusgyc"},button:{qhf8xq:"f10pi13n",a9b677:"fly5x3f",mc9l5x:"f22iagw",Bh6795r:0,Bqenvij:"f1l02sjl",Bt984gj:"f122n59",i8kkvl:0,Belr9w4:0,rmohyg:"fkln5zr",sshi5w:"f1nxs5xn",xawz:0,Bnnss6s:0,fkmc3a:"f1izfyrr",oeaueh:"f1s6fcnf"},sortable:{Bceei9c:"f1k6fduh"},sortIcon:{mc9l5x:"f22iagw",Bt984gj:"f122n59",z8tnut:"fclwglc"},resizeHandle:{}},{d:[".figsok6{font-weight:var(--fontWeightRegular);}",[".f3gpkru{padding:0px var(--spacingHorizontalS);}",{p:-1}],[".f14ym4q2[data-fui-focus-within]:focus-within{outline:2px solid var(--colorStrokeFocus2);}",{p:-1}],[".f1euou18[data-fui-focus-within]:focus-within{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f10pi13n{position:relative;}",".fq6nmtn{resize:horizontal;}",".f1e4lqlz{box-sizing:content-box;}",".f1u2r49w{background-color:inherit;}",".f1ym3bx4{color:inherit;}",".f1mo0ibp{font-family:inherit;}",".fjoy568{font-size:inherit;}",".fytdu2e{line-height:normal;}",[".f1gl81tg{overflow:visible;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],[".f3bhgqh{border:none;}",{p:-2}],".fgusgyc{text-align:unset;}",".fly5x3f{width:100%;}",".f22iagw{display:flex;}",".fqerorx{flex-grow:1;}",".f1l02sjl{height:100%;}",".f122n59{align-items:center;}",[".fkln5zr{gap:var(--spacingHorizontalXS);}",{p:-1}],".f1nxs5xn{min-height:32px;}",[".f1izfyrr{flex:1 1 0px;}",{p:-1}],".f1s6fcnf{outline-style:none;}",".f1k6fduh{cursor:pointer;}",".fclwglc{padding-top:var(--spacingVerticalXXS);}"],h:[".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}"],a:[".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}"]}),YQ=e=>{"use no memo";const t=GQ(),n={table:_Q(),flex:XQ()};return e.root.className=G(B0.root,t.root,e.sortable&&t.rootInteractive,e.noNativeElements?n.flex.root:n.table.root,e.root.className),e.button.className=G(B0.button,t.resetButton,t.button,e.sortable&&t.sortable,e.button.className),e.sortIcon&&(e.sortIcon.className=G(B0.sortIcon,t.sortIcon,e.sortIcon.className)),e.aside&&(e.aside.className=G(B0.aside,t.resizeHandle,e.aside.className)),e},Qk=g.forwardRef((e,t)=>{const n=VQ(e,t);return YQ(n),Ye("useTableHeaderCellStyles_unstable")(n),qQ(n)});Qk.displayName="TableHeaderCell";const KQ=(e,t)=>{const n=Z6(e,t),{noNativeElements:r}=hl(),{type:o="checkbox",checked:i=!1,subtle:a=!1,hidden:s=!1,invisible:c=!1}=e;return{...n,components:{...n.components,checkboxIndicator:$f,radioIndicator:nm},checkboxIndicator:Te(e.checkboxIndicator,{renderByDefault:o==="checkbox"&&!c,defaultProps:{checked:e.checked},elementType:$f}),radioIndicator:Te(e.radioIndicator,{renderByDefault:o==="radio"&&!c,defaultProps:{checked:!!i,input:{name:Rn("table-selection-radio")}},elementType:nm}),type:o,checked:i,noNativeElements:r,subtle:a,hidden:c||s}},JQ=e=>ut(e.root,{children:[e.type==="checkbox"&&e.checkboxIndicator&&Q(e.checkboxIndicator,{}),e.type==="radio"&&e.radioIndicator&&Q(e.radioIndicator,{})]}),Pd=g.forwardRef((e,t)=>{const n=KQ(e,t);return pQ(n),Ye("useTableSelectionCellStyles_unstable")(n),JQ(n)});Pd.displayName="TableSelectionCell";const QQ={medium:32,small:24,"extra-small":20},$Q=(e,t)=>{const{size:n}=hl();return{components:{root:"div",main:"span",description:"span",content:"div",media:"span"},root:be(ze("div",{ref:t,...e}),{elementType:"div"}),appearance:e.appearance,truncate:e.truncate,main:Te(e.main,{renderByDefault:!0,elementType:"span"}),media:Te(e.media,{elementType:"span"}),description:Te(e.description,{elementType:"span"}),content:Te(e.content,{renderByDefault:!!e.description||!!e.children,elementType:"div"}),avatarSize:QQ[n],size:n}},e$=(e,t)=>ut(e.root,{children:[e.media&&Q(o_,{value:t.avatar,children:Q(e.media,{})}),e.content&&ut(e.content,{children:[e.main&&Q(e.main,{children:e.root.children}),e.description&&Q(e.description,{})]})]}),iA={root:"fui-TableCellLayout",media:"fui-TableCellLayout__media",main:"fui-TableCellLayout__main",description:"fui-TableCellLayout__description",content:"fui-TableCellLayout__content"},t$=$({root:{mc9l5x:"f22iagw",Bt984gj:"f122n59",i8kkvl:0,Belr9w4:0,rmohyg:"faqewft",xawz:0,Bh6795r:0,Bnnss6s:0,fkmc3a:"f1izfyrr"},rootTruncate:{B68tc82:"f1p9o1ba"},content:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62"},contentTruncate:{B68tc82:"f1p9o1ba"},media:{mc9l5x:"f22iagw",Bt984gj:"f122n59"},mediaExtraSmall:{Be2twd7:"f4ybsrx"},mediaSmallAndMedium:{Be2twd7:"fe5j1ua"},mediaPrimary:{Be2twd7:"f1rt2boy"},mainPrimary:{Bhrd7zp:"fl43uef"},mainTruncate:{B68tc82:"f1p9o1ba",Huce71:"fz5stix",ygn44y:"f1cmbuwj"},description:{sj55zd:"fkfq4zb",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"}},{d:[".f22iagw{display:flex;}",".f122n59{align-items:center;}",[".faqewft{gap:var(--spacingHorizontalS);}",{p:-1}],[".f1izfyrr{flex:1 1 0px;}",{p:-1}],".f1p9o1ba{overflow-x:hidden;}",".f1vx9l62{flex-direction:column;}",".f4ybsrx{font-size:16px;}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fz5stix{white-space:nowrap;}",".f1cmbuwj{text-overflow:ellipsis;}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}"]}),n$=e=>{"use no memo";const t=t$(),{truncate:n}=e;e.root.className=G(iA.root,t.root,n&&t.rootTruncate,e.root.className);const r=e.appearance==="primary";if(e.media){const o={small:t.mediaSmallAndMedium,medium:t.mediaSmallAndMedium,"extra-small":t.mediaExtraSmall};e.media.className=G(iA.media,t.media,o[e.size],r&&t.mediaPrimary,e.media.className)}return e.main&&(e.main.className=G(iA.main,n&&t.mainTruncate,r&&t.mainPrimary,e.main.className)),e.description&&(e.description.className=G(iA.description,t.description,e.description.className)),e.content&&(e.content.className=G(iA.content,t.content,n&&t.contentTruncate,e.content.className)),e};function r$(e){const{avatarSize:t}=e;return{avatar:g.useMemo(()=>({size:t}),[t])}}const In=g.forwardRef((e,t)=>{const n=$Q(e,t);return n$(n),Ye("useTableCellLayoutStyles_unstable")(n),e$(n,r$(n))});In.displayName="TableCellLayout";const o$=(e,{referenceLabel:t,referenceId:n},r)=>{const{checkbox:o={},onSelectionChange:i,floatingAction:a,onClick:s,onKeyDown:c}=e,{findAllFocusable:l}=Iu(),d=g.useRef(null),[A,f]=Mn({state:e.selected,defaultState:e.defaultSelected,initialState:!1}),m=[e.selected,e.defaultSelected,i].some(S=>typeof S<"u"),[v,p]=g.useState(!1),y=g.useCallback(S=>{if(!r.current)return!1;const N=l(r.current),C=S.target,M=N.some(T=>T.contains(C)),j=(d==null?void 0:d.current)===C;return M&&!j},[r,l]),b=g.useCallback(S=>{if(y(S))return;const N=!A;f(N),i&&i(S,{selected:N})},[i,A,f,y]),h=g.useCallback(S=>{[Hn].includes(S.key)&&(S.preventDefault(),b(S))},[b]),w=g.useMemo(()=>{if(!m||a)return;const S={};return n?S["aria-labelledby"]=n:t&&(S["aria-label"]=t),Te(o,{defaultProps:{ref:d,type:"checkbox",checked:A,onChange:N=>b(N),onFocus:()=>p(!0),onBlur:()=>p(!1),...S},elementType:"input"})},[o,a,A,m,b,n,t]),x=g.useMemo(()=>{if(a)return Te(a,{defaultProps:{ref:d},elementType:"div"})},[a]),k=g.useMemo(()=>m?{onClick:We(s,b),onKeyDown:We(c,h)}:null,[m,b,s,c,h]);return{selected:A,selectable:m,selectFocused:v,selectableCardProps:k,checkboxSlot:w,floatingActionSlot:x}},i$=g.createContext(void 0),i3={selectableA11yProps:{referenceId:void 0,setReferenceId(){},referenceLabel:void 0,setReferenceLabel(){}}},a$=i$.Provider,s$={off:void 0,"no-tab":"limited-trap-focus","tab-exit":"limited","tab-only":"unlimited"},c$=({focusMode:e,...t})=>{const n=["onClick","onDoubleClick","onMouseUp","onMouseDown","onPointerUp","onPointerDown","onTouchStart","onTouchEnd","onDragStart","onDragEnd"].some(a=>t[a]),r=e??(n?"no-tab":"off"),i={...rZ({tabBehavior:s$[r]}),tabIndex:0};return{interactive:n,focusAttributes:r==="off"?null:i}},l$=(e,t)=>{const{appearance:n="filled",orientation:r="vertical",size:o="medium"}=e,[i,a]=g.useState(i3.selectableA11yProps.referenceId),[s,c]=g.useState(i3.selectableA11yProps.referenceId),l=Xm(),{selectable:d,selected:A,selectableCardProps:f,selectFocused:m,checkboxSlot:v,floatingActionSlot:p}=o$(e,{referenceId:i,referenceLabel:s},l),y=ot(l,t),{interactive:b,focusAttributes:h}=c$(e);return{appearance:n,orientation:r,size:o,interactive:b,selectable:d,selectFocused:m,selected:A,selectableA11yProps:{setReferenceId:a,referenceId:i,referenceLabel:s,setReferenceLabel:c},components:{root:"div",floatingAction:"div",checkbox:"input"},root:be(ze("div",{ref:y,role:"group",...d?null:h,...e,...f}),{elementType:"div"}),floatingAction:p,checkbox:v}},d$=(e,t)=>Q(e.root,{children:ut(a$,{value:t,children:[e.checkbox?Q(e.checkbox,{}):null,e.floatingAction?Q(e.floatingAction,{}):null,e.root.children]})}),f1={root:"fui-Card",floatingAction:"fui-Card__floatingAction",checkbox:"fui-Card__checkbox"},u$=Re("rfxo2k2","rgle7w9",[".rfxo2k2{overflow:hidden;border-radius:var(--fui-Card--border-radius);padding:var(--fui-Card--size);gap:var(--fui-Card--size);display:flex;position:relative;box-sizing:border-box;color:var(--colorNeutralForeground1);}",'.rfxo2k2::after{position:absolute;top:0;left:0;right:0;bottom:0;content:"";pointer-events:none;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-radius:var(--fui-Card--border-radius);}',".rfxo2k2>.fui-CardHeader,.rfxo2k2>.fui-CardFooter{flex-shrink:0;}",".rgle7w9{overflow:hidden;border-radius:var(--fui-Card--border-radius);padding:var(--fui-Card--size);gap:var(--fui-Card--size);display:flex;position:relative;box-sizing:border-box;color:var(--colorNeutralForeground1);}",'.rgle7w9::after{position:absolute;top:0;right:0;left:0;bottom:0;content:"";pointer-events:none;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-radius:var(--fui-Card--border-radius);}',".rgle7w9>.fui-CardHeader,.rgle7w9>.fui-CardFooter{flex-shrink:0;}"]),A$=$({focused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",f6g5ot:0,Boxcth7:0,Bhdgwq3:0,hgwjuy:0,Bshpdp8:0,Bsom6fd:0,Blkhhs4:0,Bonggc9:0,Ddfuxk:0,i03rao:0,kclons:0,clg4pj:0,Bpqj9nj:0,B6dhp37:0,Bf4ptjt:0,Bqtpl0w:0,i4rwgc:"fpqizxz",Dah5zi:0,B1tsrr9:0,qqdqy8:0,Bkh64rk:0,e3fwne:"fnd8nzh",J0r882:"f15fr7a0",Bule8hv:["fwsq40z","fy0y4wt"],Bjwuhne:"f34ld9f",Ghsupd:["fy0y4wt","fwsq40z"]},selectableFocused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",Bssx7fj:"f1b1k54r",uh7if5:["f4ne723","fqqcjud"],clntm0:"fh7aioi",Dlk2r6:["fqqcjud","f4ne723"],Bm3wd5j:"f1k55ka9",Bbrhkcr:["fgclinu","f16pcs8n"],f1oku:"fycbxed",aywvf2:["f16pcs8n","fgclinu"],B2j2mmj:"ffht0p2",wigs8:"f1p0ul1q",pbfy6t:"f1c901ms",B0v4ure:"f1alokd7",Byrf0fs:0,Bsiemmq:0,Bwckmig:0,skfxo0:0,Iidy0u:0,B98u21t:0,Bvwlmkc:0,jo1ztg:0,Ba1iezr:0,Blmvk6g:0,B24cy0v:0,Bil7v7r:0,Br3gin4:0,nr063g:0,ghq09:0,Bbgo44z:0,Bseh09z:"f1i978nd",az1dzo:0,Ba3ybja:0,B6352mv:0,vppk2z:0,Biaj6j7:"f1nh8hsq",B2pnrqr:"f1amxum7",B29w5g4:["f1cec8w7","f554mv0"],Bhhzhcn:"f1sj6kbr",Bec0n69:["f554mv0","f1cec8w7"]},orientationHorizontal:{Beiy3e4:"f1063pyq",Bt984gj:"f122n59",Binpb3b:"ftrw7vg",qrt8p2:"f18opajm",k6ws3r:["f13002it","fqo182t"],Btcwela:["f18yna97","f1kd6wh7"],Fer9m8:"f4i4759"},orientationVertical:{Beiy3e4:"f1vx9l62",B5nvv7i:["f14k419y","f1fgo9fz"],Baxg94k:["f1fgo9fz","f14k419y"],tn21ii:"fvqmfsm",B0ud6bj:"f3am6yf",Bgdo4j:"f1r5wgso"},sizeSmall:{B7balbw:"f1pi9uxy",B1h88n7:"f1h1zgly"},sizeMedium:{B7balbw:"frsmuga",B1h88n7:"fuldkky"},sizeLarge:{B7balbw:"f1qua4xo",B1h88n7:"fimkt6v"},interactive:{rhjd8f:"f1epqm3e"},filled:{De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Bi91k9c:"feu1g3u",Jwef8y:"f1knas48",Bvxd0ez:"f1m145df",ecr2s2:"fb40n2d"},filledInteractiveSelected:{De3pzq:"f1nfm20t",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Bi91k9c:"fx9teim",Jwef8y:"f1kz6goq"},filledAlternative:{De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledAlternativeInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Bi91k9c:"fnwyq0v",Jwef8y:"f1uvynv3",Bvxd0ez:"f1m145df",ecr2s2:"f1yhgkbh"},filledAlternativeInteractiveSelected:{De3pzq:"fjxa0vh",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Bi91k9c:"f1luvkty",Jwef8y:"fehi0vp"},outline:{De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]},outlineInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"],Bi91k9c:"feu1g3u",Jwef8y:"fjxutwb",Be0v6ae:"f1llr77y",B5kxglz:["fzk0khw","fjj8tog"],B3pwyw6:"fb1u8ub",Bymgtzf:["fjj8tog","fzk0khw"],ecr2s2:"fophhak",dmfk:"f1uohb70",B4ofi8:["f1jm7v1n","f1bus3rq"],jgq6uv:"f1fbu7rr",Baxewws:["f1bus3rq","f1jm7v1n"]},outlineInteractiveSelected:{De3pzq:"f1q9pm1r",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Bi91k9c:"fx9teim",Jwef8y:"fg59vm4"},subtle:{De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},subtleInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Bi91k9c:"feu1g3u",Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd"},subtleInteractiveSelected:{De3pzq:"fq5gl1p",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Bi91k9c:"fx9teim",Jwef8y:"f1uqaxdt"},highContrastSelected:{ycbfsm:"fkc42ay",Bsw6fvg:"f1rirnrt",Bbusuzp:"f1lkg8j3",xgfqdd:"f1nkj0oa",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},highContrastInteractive:{h1vhog:"fpfvv3l",kslmdy:"f1oamsm6",Baaf6ca:"f1il21bs",x9zz3d:"fnn5dk0",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},select:{qhf8xq:"f1euv43f",Bhzewxz:"fqclxi7",j35jbq:["fiv86kb","f36uhnt"],Bj3rh1h:"f19g0ac"},hiddenCheckbox:{B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",a9b677:"frkrog8",Bqenvij:"f1mpe4l3",qhf8xq:"f1euv43f",Bh84pgu:"fmf1zke",Bgl5zvf:"f1wch0ki",Huce71:"fz5stix"}},{f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],d:[".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",[".fpqizxz[data-fui-focus-visible]::after{border:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-2}],[".fnd8nzh[data-fui-focus-visible]::after{border-radius:var(--fui-Card--border-radius);}",{p:-1}],".f15fr7a0[data-fui-focus-visible]::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".fwsq40z[data-fui-focus-visible]::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".fy0y4wt[data-fui-focus-visible]::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f34ld9f[data-fui-focus-visible]::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1b1k54r[data-fui-focus-within]:focus-within{border-top-color:transparent;}",".f4ne723[data-fui-focus-within]:focus-within{border-right-color:transparent;}",".fqqcjud[data-fui-focus-within]:focus-within{border-left-color:transparent;}",".fh7aioi[data-fui-focus-within]:focus-within{border-bottom-color:transparent;}",'.ffht0p2[data-fui-focus-within]:focus-within::after{content:"";}',".f1p0ul1q[data-fui-focus-within]:focus-within::after{position:absolute;}",".f1c901ms[data-fui-focus-within]:focus-within::after{pointer-events:none;}",".f1alokd7[data-fui-focus-within]:focus-within::after{z-index:1;}",[".f1i978nd[data-fui-focus-within]:focus-within::after{border:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-2}],[".f1nh8hsq[data-fui-focus-within]:focus-within::after{border-radius:var(--fui-Card--border-radius);}",{p:-1}],".f1amxum7[data-fui-focus-within]:focus-within::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".f1cec8w7[data-fui-focus-within]:focus-within::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".f554mv0[data-fui-focus-within]:focus-within::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f1sj6kbr[data-fui-focus-within]:focus-within::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1063pyq{flex-direction:row;}",".f122n59{align-items:center;}",".ftrw7vg>.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",".f18opajm>.fui-CardPreview{margin-bottom:calc(var(--fui-Card--size) * -1);}",'.f13002it>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-left:calc(var(--fui-Card--size) * -1);}','.fqo182t>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.f18yna97>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.f1kd6wh7>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-left:calc(var(--fui-Card--size) * -1);}',".f4i4759>.fui-CardHeader:last-of-type,.f4i4759>.fui-CardFooter:last-of-type{flex-grow:1;}",".f1vx9l62{flex-direction:column;}",".f14k419y>.fui-CardPreview{margin-left:calc(var(--fui-Card--size) * -1);}",".f1fgo9fz>.fui-CardPreview{margin-right:calc(var(--fui-Card--size) * -1);}",'.fvqmfsm>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-top:calc(var(--fui-Card--size) * -1);}',".f3am6yf>.fui-Card__floatingAction+.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",'.f1r5wgso>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-bottom:calc(var(--fui-Card--size) * -1);}',".f1pi9uxy{--fui-Card--size:8px;}",".f1h1zgly{--fui-Card--border-radius:var(--borderRadiusSmall);}",".frsmuga{--fui-Card--size:12px;}",".fuldkky{--fui-Card--border-radius:var(--borderRadiusMedium);}",".f1qua4xo{--fui-Card--size:16px;}",".fimkt6v{--fui-Card--border-radius:var(--borderRadiusLarge);}",".f1epqm3e .fui-Text{color:currentColor;}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1whvlc6{box-shadow:var(--shadow4);}",".f16gxe2i::after{border-top-color:var(--colorTransparentStroke);}",".fpgykix::after{border-right-color:var(--colorTransparentStroke);}",".fzybk4o::after{border-left-color:var(--colorTransparentStroke);}",".f1osi826::after{border-bottom-color:var(--colorTransparentStroke);}",".f1k6fduh{cursor:pointer;}",".f1nfm20t{background-color:var(--colorNeutralBackground1Selected);}",".f16eln5f::after{border-top-color:var(--colorNeutralStroke1Selected);}",".fa2okxs::after{border-right-color:var(--colorNeutralStroke1Selected);}",".fg4zq3l::after{border-left-color:var(--colorNeutralStroke1Selected);}",".ff6932p::after{border-bottom-color:var(--colorNeutralStroke1Selected);}",".f1dmdbja{background-color:var(--colorNeutralBackground2);}",".fjxa0vh{background-color:var(--colorNeutralBackground2Selected);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1couhl3{box-shadow:none;}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}",".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1euv43f{position:absolute;}",".fqclxi7{top:4px;}",".fiv86kb{right:4px;}",".f36uhnt{left:4px;}",".f19g0ac{z-index:1;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],".frkrog8{width:1px;}",".f1mpe4l3{height:1px;}",".fmf1zke{clip:rect(0 0 0 0);}",".f1wch0ki{clip-path:inset(50%);}",".fz5stix{white-space:nowrap;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1k55ka9[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16pcs8n[data-fui-focus-within]:focus-within::after{border-left-color:Highlight;}.fgclinu[data-fui-focus-within]:focus-within::after{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fycbxed[data-fui-focus-within]:focus-within::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1nkj0oa .fui-CardPreview,.f1nkj0oa .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fey3rwa::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f5jhx11::after{border-right-color:Highlight;}.fff9uym::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fm7n0jy::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fpfvv3l:hover,.fpfvv3l :active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1oamsm6:hover,.f1oamsm6 :active{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1il21bs:hover,.f1il21bs :active{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnn5dk0:hover .fui-CardPreview,.fnn5dk0 :active .fui-CardPreview,.fnn5dk0:hover .fui-CardFooter,.fnn5dk0 :active .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}]],h:[".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}",".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f1m145df:hover{box-shadow:var(--shadow8);}",".fx9teim:hover{color:var(--colorNeutralForeground1Selected);}",".f1kz6goq:hover{background-color:var(--colorNeutralBackground1Selected);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".f1uvynv3:hover{background-color:var(--colorNeutralBackground2Hover);}",".f1luvkty:hover{color:var(--colorNeutralForeground2Selected);}",".fehi0vp:hover{background-color:var(--colorNeutralBackground2Selected);}",".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1llr77y:hover::after{border-top-color:var(--colorNeutralStroke1Hover);}",".fzk0khw:hover::after{border-right-color:var(--colorNeutralStroke1Hover);}",".fjj8tog:hover::after{border-left-color:var(--colorNeutralStroke1Hover);}",".fb1u8ub:hover::after{border-bottom-color:var(--colorNeutralStroke1Hover);}",".fg59vm4:hover{background-color:var(--colorTransparentBackgroundSelected);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1uqaxdt:hover{background-color:var(--colorSubtleBackgroundSelected);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1yhgkbh:active{background-color:var(--colorNeutralBackground2Pressed);}",".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f1uohb70:active::after{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1jm7v1n:active::after{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1bus3rq:active::after{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1fbu7rr:active::after{border-bottom-color:var(--colorNeutralStroke1Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}"]}),f$=e=>{"use no memo";const t=u$(),n=A$(),r={horizontal:n.orientationHorizontal,vertical:n.orientationVertical},o={small:n.sizeSmall,medium:n.sizeMedium,large:n.sizeLarge},i={filled:n.filled,"filled-alternative":n.filledAlternative,outline:n.outline,subtle:n.subtle},a={filled:n.filledInteractiveSelected,"filled-alternative":n.filledAlternativeInteractiveSelected,outline:n.outlineInteractiveSelected,subtle:n.subtleInteractiveSelected},s={filled:n.filledInteractive,"filled-alternative":n.filledAlternativeInteractive,outline:n.outlineInteractive,subtle:n.subtleInteractive},c=e.interactive||e.selectable,l=g.useMemo(()=>e.selectable?e.selectFocused?n.selectableFocused:"":n.focused,[e.selectFocused,e.selectable,n.focused,n.selectableFocused]);return e.root.className=G(f1.root,t,r[e.orientation],o[e.size],i[e.appearance],c&&n.interactive,c&&s[e.appearance],e.selected&&a[e.appearance],l,c&&n.highContrastInteractive,e.selected&&n.highContrastSelected,e.root.className),e.floatingAction&&(e.floatingAction.className=G(f1.floatingAction,n.select,e.floatingAction.className)),e.checkbox&&(e.checkbox.className=G(f1.checkbox,n.hiddenCheckbox,e.checkbox.className)),e};function m$({selectableA11yProps:e}){return{selectableA11yProps:e}}const $k=g.forwardRef((e,t)=>{const n=l$(e,t),r=m$(n);return f$(n),d$(n,r)});$k.displayName="Card";const wi=Symbol("#internalSet");let v$=wi,p$=Symbol.hasInstance,g$=Symbol.iterator;class ro{static dangerouslyGetInternalSet(t){return t[wi]}static copy(t){return new ro(new Set(t[wi]))}static from(t){return t===void 0?this.empty:t instanceof this?t:new this(new Set(t))}static[p$](t){return!!(typeof t=="object"&&t&&wi in t)}add(t){if(this.has(t))return this;const n=ro.copy(this);return n[wi].add(t),n}delete(t){if(!this.has(t))return this;const n=ro.copy(this);return n[wi].delete(t),n}has(t){return this[wi].has(t)}[g$](){return this[wi].values()}constructor(t){lu(this,"size",void 0),lu(this,v$,void 0),this[wi]=t,this.size=this[wi].size}}lu(ro,"empty",new ro(new Set));function h$(e){return Mn({state:g.useMemo(()=>e.openItems&&ro.from(e.openItems),[e.openItems]),defaultState:e.defaultOpenItems&&(()=>ro.from(e.defaultOpenItems)),initialState:ro.empty})}function q6(e,t){return e.open?t.add(e.value):t.delete(e.value)}const Uo=Symbol("#internalMap");let b$=Uo,y$=Symbol.hasInstance,w$=Symbol.iterator;class Oi{static dangerouslyGetInternalMap(t){return t[Uo]}static copy(t){return this.from(t[Uo])}static from(t,n){if(t===void 0)return this.empty;if(!n){if(t instanceof this)return t;const o=t;return new this(new Map(o))}const r=new Map;for(const o of t)r.set(...n(o));return new this(r)}static[y$](t){return!!(typeof t=="object"&&t&&Uo in t)}delete(t){if(!this.has(t))return this;const n=Oi.copy(this);return n[Uo].delete(t),n}get(t){return this[Uo].get(t)}has(t){return this[Uo].has(t)}set(t,n){if(this.get(t)===n)return this;const r=Oi.copy(this);return r[Uo].set(t,n),r}[w$](){return this[Uo].entries()}constructor(t){lu(this,"size",void 0),lu(this,b$,void 0),this[Uo]=t,this.size=this[Uo].size}}lu(Oi,"empty",new Oi(new Map));const x$=e=>Array.isArray(e)?e:[e,!0],_6=e=>Oi.from(e,x$);function k$(e){return g.useMemo(()=>_6(e.checkedItems),[e.checkedItems])}function S$(e,t){return e.selectionMode==="single"?Oi.from([[e.value,e.checked]]):e.selectionMode==="multiselect"?t.set(e.value,e.checked):t}const j$={level:0,contextType:"subtree"},$p=g.createContext(void 0),X6=()=>{var e;return(e=g.useContext($p))!==null&&e!==void 0?e:j$},Xt={ArrowLeft:Mu,ArrowRight:Ru,Enter:Hn,Click:"Click",ExpandIconClick:"ExpandIconClick",End:S8,Home:j8,ArrowUp:af,ArrowDown:cu,TypeAhead:"TypeAhead",Change:"Change"};function N$(e,t){const{appearance:n="subtle",size:r="medium",selectionMode:o="none"}=e,i=g.useMemo(()=>ro.from(e.openItems),[e.openItems]),a=g.useMemo(()=>_6(e.checkedItems),[e.checkedItems]),s=A=>{var f;(f=e.onOpenChange)===null||f===void 0||f.call(e,A.event,{...A,openItems:ro.dangerouslyGetInternalSet(q6(A,i))})},c=A=>{var f;o!=="none"&&((f=e.onCheckedChange)===null||f===void 0||f.call(e,A.event,{...A,selectionMode:o,checkedItems:Oi.dangerouslyGetInternalMap(a)}))},l=A=>{var f;let m=!1;switch((f=e.onNavigation)===null||f===void 0||f.call(e,A.event,{...A,preventScroll:()=>{m=!0},isScrollPrevented:()=>m}),A.type){case Xt.ArrowDown:case Xt.ArrowUp:case Xt.Home:case Xt.End:A.event.preventDefault()}},d=fe(A=>{switch(A.requestType){case"navigate":return l(A);case"open":return s(A);case"selection":return c(A)}});return{components:{root:"div",collapseMotion:Kf},contextType:"root",selectionMode:o,open:!0,appearance:n,size:r,level:1,openItems:i,checkedItems:a,requestTreeResponse:d,root:be(ze("div",{ref:t,role:"tree","aria-multiselectable":o==="multiselect"?!0:void 0,...e}),{elementType:"div"}),collapseMotion:void 0}}const C$={level:0,contextType:"root",treeType:"nested",selectionMode:"none",openItems:ro.empty,checkedItems:Oi.empty,requestTreeResponse:T$,appearance:"subtle",size:"medium"};function T$(){}const G6=Vi(void 0),es=e=>Qs(G6,(t=C$)=>e(t)),I$="__fuiHeadlessTreeRoot",P$={value:I$,selectionRef:g.createRef(),layoutRef:g.createRef(),treeItemRef:g.createRef(),subtreeRef:g.createRef(),actionsRef:g.createRef(),expandIconRef:g.createRef(),isActionsVisible:!1,isAsideVisible:!1,itemType:"leaf",open:!1,checked:!1},Y6=Vi(void 0),{Provider:D$}=Y6,Yr=e=>Qs(Y6,(t=P$)=>e(t));function M$(e,t){const n=Yr(i=>i.subtreeRef),{level:r}=X6(),o=Yr(i=>i.open);return{contextType:"subtree",open:o,components:{root:"div",collapseMotion:Kf},level:r+1,root:be(ze("div",{ref:ot(t,n),role:"group",...e}),{elementType:"div"}),collapseMotion:Pk(e.collapseMotion,{elementType:Kf,defaultProps:{visible:o,unmountOnExit:!0}})}}function R$(e,t){const n=t.toLowerCase(),r=i=>{var a;return((a=i.textContent)===null||a===void 0?void 0:a.trim().charAt(0).toLowerCase())===n?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP};let o=e.nextElement(r);return o||(e.currentElement=e.root,o=e.nextElement(r)),o}function z$(){const e=g.useRef(null),t=g.useRef(null),{targetDocument:n}=Ge();g.useEffect(()=>{(e.current===null||!(n!=null&&n.body.contains(e.current)))&&t.current&&r(t.current)}),uZ(i=>{(i==null?void 0:i.getAttribute("role"))==="treeitem"&&t.current&&ur(t.current.root,i)&&o(i)});const r=g.useCallback(i=>{t.current=i,i.currentElement=i.root;let a=i.firstChild(c=>c.tabIndex===0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP);if(i.currentElement=i.root,a??(a=i.firstChild()),!a)return;a.tabIndex=0,e.current=a;let s=null;for(;(s=i.nextElement())&&s!==a;)s.tabIndex=-1},[]),o=g.useCallback((i,a)=>{e.current&&(e.current.tabIndex=-1,i.tabIndex=0,i.focus(a),e.current=i)},[]);return{rove:o,initialize:r}}function E$(e,t,n=()=>NodeFilter.FILTER_ACCEPT){let r;const o=t.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(i){if(!Pn(i))return NodeFilter.FILTER_REJECT;const a=n(i);var s;return a===NodeFilter.FILTER_ACCEPT&&(s=r==null?void 0:r(i))!==null&&s!==void 0?s:a}});return{get root(){return o.root},get currentElement(){return o.currentNode},set currentElement(i){o.currentNode=i},firstChild:i=>{r=i;const a=o.firstChild();return r=void 0,a},lastChild:i=>{r=i;const a=o.lastChild();return r=void 0,a},nextElement:i=>{r=i;const a=o.nextNode();return r=void 0,a},nextSibling:i=>{r=i;const a=o.nextSibling();return r=void 0,a},parentElement:i=>{r=i;const a=o.parentNode();return r=void 0,a},previousElement:i=>{r=i;const a=o.previousNode();return r=void 0,a},previousSibling:i=>{r=i;const a=o.previousSibling();return r=void 0,a}}}const B$=e=>e.getAttribute("role")==="treeitem"?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;function F$(){const{targetDocument:e}=Ge(),t=g.useRef(),n=g.useCallback(r=>{t.current=e&&r?E$(r,e,B$):void 0},[e]);return{walkerRef:t,rootRef:n}}function O$(){"use no memo";const{rove:e,initialize:t}=z$(),{walkerRef:n,rootRef:r}=F$(),o=g.useCallback(s=>{s&&n.current&&t(n.current)},[n,t]),i=s=>{if(!n.current)return null;switch(s.type){case Xt.Click:return s.target;case Xt.TypeAhead:return n.current.currentElement=s.target,R$(n.current,s.event.key);case Xt.ArrowLeft:return n.current.currentElement=s.target,n.current.parentElement();case Xt.ArrowRight:return n.current.currentElement=s.target,n.current.firstChild();case Xt.End:return n.current.currentElement=n.current.root,L$(n.current);case Xt.Home:return n.current.currentElement=n.current.root,n.current.firstChild();case Xt.ArrowDown:return n.current.currentElement=s.target,n.current.nextElement();case Xt.ArrowUp:return n.current.currentElement=s.target,n.current.previousElement()}};function a(s,c){const l=i(s);l&&e(l,c)}return{navigate:a,treeRef:ot(r,o)}}function L$(e){let t=null,n=null;for(;n=e.lastChild();)t=n;return t}const W$=(e,t)=>{"use no memo";return g.useContext($p)===void 0?U$(e,t):H$(e,t)};function U$(e,t){"use no memo";const[n,r]=h$(e),o=k$(e),i=O$();return Object.assign(N$({...e,openItems:n,checkedItems:o,onOpenChange:fe((a,s)=>{var c;const l=q6(s,n);(c=e.onOpenChange)===null||c===void 0||c.call(e,a,{...s,openItems:ro.dangerouslyGetInternalSet(l)}),r(l)}),onNavigation:fe((a,s)=>{var c;(c=e.onNavigation)===null||c===void 0||c.call(e,a,s),a.isDefaultPrevented()||i.navigate(s,{preventScroll:s.isScrollPrevented()})}),onCheckedChange:fe((a,s)=>{var c;const l=S$(s,o);(c=e.onCheckedChange)===null||c===void 0||c.call(e,a,{...s,checkedItems:Oi.dangerouslyGetInternalMap(l)})})},ot(t,i.treeRef)),{treeType:"nested"})}function H$(e,t){"use no memo";return M$(e,t)}function Z$(e){"use no memo";if(e.contextType==="root"){const{openItems:t,level:n,contextType:r,treeType:o,checkedItems:i,selectionMode:a,appearance:s,size:c,requestTreeResponse:l}=e;return{tree:{treeType:o,size:c,openItems:t,appearance:s,checkedItems:i,selectionMode:a,contextType:r,level:n,requestTreeResponse:l}}}return{tree:g.useMemo(()=>({level:e.level,contextType:"subtree"}),[e.level])}}const V$={root:"fui-Tree"},q$=Re("rnv2ez3",null,[".rnv2ez3{display:flex;flex-direction:column;row-gap:var(--spacingVerticalXXS);}"]),_$=$({subtree:{z8tnut:"fclwglc"}},{d:[".fclwglc{padding-top:var(--spacingVerticalXXS);}"]}),X$=e=>{"use no memo";const t=q$(),n=_$(),r=e.level>1;return e.root.className=G(V$.root,t,r&&n.subtree,e.root.className),e},G$={level:1,contextType:"subtree"},K6=e=>e.value.contextType==="subtree"?g.createElement($p.Provider,{value:e.value},e.children):g.createElement(G6.Provider,{value:e.value},g.createElement($p.Provider,{value:G$},e.children));K6.displayName="TreeProvider";const Y$=(e,t)=>Q(K6,{value:t.tree,children:e.collapseMotion?Q(e.collapseMotion,{children:Q(e.root,{})}):Q(e.root,{})}),eS=g.forwardRef((e,t)=>{const n=W$(e,t),r=Z$(n);return X$(n),Y$(n,r)});eS.displayName="Tree";const K$="data-fui-tree-item-value";function J$(e,t){"use no memo";es(R=>R.treeType);const n=es(R=>R.requestTreeResponse),{level:r}=X6(),o=Yr(R=>{var O;return(O=e.parentValue)!==null&&O!==void 0?O:R.value}),i=Rn("fuiTreeItemValue-");var a;const s=(a=e.value)!==null&&a!==void 0?a:i,{onClick:c,onKeyDown:l,onChange:d,as:A="div",itemType:f="leaf","aria-level":m=r,"aria-selected":v,"aria-expanded":p,...y}=e,b=g.useRef(null),h=g.useRef(null),w=g.useRef(null),x=g.useRef(null),k=g.useRef(null),S=g.useRef(null),N=es(R=>{var O;return(O=e.open)!==null&&O!==void 0?O:R.openItems.has(s)}),C=()=>f==="branch"?!N:N,M=es(R=>R.selectionMode),j=es(R=>{var O;return(O=R.checkedItems.get(s))!==null&&O!==void 0?O:!1}),T=fe(R=>{if(c==null||c(R),R.isDefaultPrevented()||f==="leaf"||b.current&&ur(b.current,R.target)||x.current&&ur(x.current,R.target)||k.current&&ur(k.current,R.target))return;const I=h.current&&ur(h.current,R.target);zs.unstable_batchedUpdates(()=>{var E;const D={event:R,value:s,open:C(),target:R.currentTarget,type:I?Xt.ExpandIconClick:Xt.Click};(E=e.onOpenChange)===null||E===void 0||E.call(e,R,D),n({...D,itemType:f,requestType:"open"}),n({...D,itemType:f,parentValue:o,requestType:"navigate",type:Xt.Click})})}),F=fe(R=>{if(l==null||l(R),R.isDefaultPrevented()||R.currentTarget!==R.target)return;switch(R.key){case To:if(M!=="none"){var O;(O=k.current)===null||O===void 0||O.click(),R.preventDefault()}return;case Xt.Enter:return R.currentTarget.click();case Xt.End:case Xt.Home:case Xt.ArrowUp:case Xt.ArrowDown:return n({requestType:"navigate",event:R,value:s,itemType:f,parentValue:o,type:R.key,target:R.currentTarget});case Xt.ArrowLeft:{if(R.altKey||m===1&&!N)return;const E={value:s,event:R,open:C(),type:R.key,target:R.currentTarget};if(N){var _;(_=e.onOpenChange)===null||_===void 0||_.call(e,R,E)}n({...E,itemType:f,parentValue:o,requestType:N?"open":"navigate"});return}case Xt.ArrowRight:{if(R.altKey||f==="leaf")return;const E={value:s,event:R,open:C(),type:R.key,target:R.currentTarget};if(!N){var Y;(Y=e.onOpenChange)===null||Y===void 0||Y.call(e,R,E)}n({...E,itemType:f,parentValue:o,requestType:N?"navigate":"open"});return}}R.key.length===1&&R.key.match(/\w/)&&!R.altKey&&!R.ctrlKey&&!R.metaKey&&n({requestType:"navigate",event:R,target:R.currentTarget,value:s,itemType:f,type:Xt.TypeAhead,parentValue:o})}),H=fe(R=>{d==null||d(R),!(R.isDefaultPrevented()||x.current&&ur(x.current,R.target))&&n({requestType:"selection",event:R,value:s,itemType:f,type:"Change",target:R.currentTarget,checked:j==="mixed"?!0:!j})});return{value:s,open:N,checked:j,subtreeRef:x,layoutRef:w,selectionRef:k,expandIconRef:h,treeItemRef:S,actionsRef:b,itemType:f,level:m,components:{root:"div"},isAsideVisible:!1,isActionsVisible:!1,root:be(ze(A,{tabIndex:-1,[K$]:s,...y,ref:ot(t,S),role:"treeitem","aria-level":m,"aria-checked":M==="multiselect"?j:void 0,"aria-selected":v!==void 0?v:M==="single"?!!j:void 0,"aria-expanded":p!==void 0?p:f==="branch"?N:void 0,onClick:T,onKeyDown:F,onChange:H}),{elementType:"div"})}}const Q$=(e,t)=>Q(e.root,{children:Q(D$,{value:t.treeItem,children:e.root.children})}),Oa={root:"fui-TreeItemLayout",iconBefore:"fui-TreeItemLayout__iconBefore",main:"fui-TreeItemLayout__main",iconAfter:"fui-TreeItemLayout__iconAfter",expandIcon:"fui-TreeItemLayout__expandIcon",aside:"fui-TreeItemLayout__aside",actions:"fui-TreeItemLayout__actions",selector:"fui-TreeItemLayout__selector"},$$=Re("r1bx0xiv",null,[".r1bx0xiv{display:flex;align-items:center;min-height:32px;box-sizing:border-box;grid-area:layout;}",".r1bx0xiv:active{color:var(--colorNeutralForeground2Pressed);background-color:var(--colorSubtleBackgroundPressed);}",".r1bx0xiv:active .fui-TreeItemLayout__expandIcon{color:var(--colorNeutralForeground3Pressed);}",".r1bx0xiv:hover{color:var(--colorNeutralForeground2Hover);background-color:var(--colorSubtleBackgroundHover);}",".r1bx0xiv:hover .fui-TreeItemLayout__expandIcon{color:var(--colorNeutralForeground3Hover);}"]),eee=$({leaf:{uwmqm3:["f1k1erfc","faevyjx"]},branch:{uwmqm3:["fo100m9","f6yw3pu"]},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{sshi5w:"f1pha7fy",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},subtle:{},"subtle-alpha":{Jwef8y:"f146ro5n",ecr2s2:"fkam630"},transparent:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",ecr2s2:"fophhak"}},{d:[".f1k1erfc{padding-left:calc(var(--fluent-TreeItem--level, 1) * var(--spacingHorizontalXXL));}",".faevyjx{padding-right:calc(var(--fluent-TreeItem--level, 1) * var(--spacingHorizontalXXL));}",".fo100m9{padding-left:calc((var(--fluent-TreeItem--level, 1) - 1) * var(--spacingHorizontalXXL));}",".f6yw3pu{padding-right:calc((var(--fluent-TreeItem--level, 1) - 1) * var(--spacingHorizontalXXL));}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1pha7fy{min-height:24px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}"],h:[".f146ro5n:hover{background-color:var(--colorSubtleBackgroundLightAlphaHover);}",".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}"],a:[".fkam630:active{background-color:var(--colorSubtleBackgroundLightAlphaPressed);}",".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}"]}),tee=Re("rzvs2in","r17h8a29",[".rzvs2in{display:flex;margin-left:auto;position:relative;z-index:1;grid-area:aside;padding:0 var(--spacingHorizontalS);}",".r17h8a29{display:flex;margin-right:auto;position:relative;z-index:1;grid-area:aside;padding:0 var(--spacingHorizontalS);}"]),nee=Re("r1825u21","rezy0yk",[".r1825u21{display:flex;margin-left:auto;align-items:center;z-index:0;grid-area:aside;padding:0 var(--spacingHorizontalM);gap:var(--spacingHorizontalXS);}",".rezy0yk{display:flex;margin-right:auto;align-items:center;z-index:0;grid-area:aside;padding:0 var(--spacingHorizontalM);gap:var(--spacingHorizontalXS);}"]),ree=Re("rh4pu5o",null,[".rh4pu5o{display:flex;align-items:center;justify-content:center;min-width:24px;box-sizing:border-box;color:var(--colorNeutralForeground3);flex:0 0 auto;padding:var(--spacingVerticalXS) 0;}"]),oee=Re("rklbe47",null,[".rklbe47{padding:0 var(--spacingHorizontalXXS);}"]),iee=Re("rphzgg1",null,[".rphzgg1{display:flex;align-items:center;color:var(--colorNeutralForeground2);line-height:var(--lineHeightBase500);font-size:var(--fontSizeBase500);}"]),aee=$({medium:{z189sj:["f7x41pl","fruq291"]},small:{z189sj:["ffczdla","fgiv446"]}},{d:[".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}"]}),see=$({medium:{uwmqm3:["fruq291","f7x41pl"]},small:{uwmqm3:["fgiv446","ffczdla"]}},{d:[".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}"]}),cee=e=>{"use no memo";const{main:t,iconAfter:n,iconBefore:r,expandIcon:o,root:i,aside:a,actions:s,selector:c}=e,l=eee(),d=$$(),A=tee(),f=nee(),m=oee(),v=ree(),p=iee(),y=aee(),b=see(),h=es(k=>k.size),w=es(k=>k.appearance),x=Yr(k=>k.itemType);return i.className=G(Oa.root,d,l[w],l[h],l[x],i.className),t.className=G(Oa.main,m,t.className),o&&(o.className=G(Oa.expandIcon,v,o.className)),r&&(r.className=G(Oa.iconBefore,p,y[h],r.className)),n&&(n.className=G(Oa.iconAfter,p,b[h],n.className)),s&&(s.className=G(Oa.actions,A,s.className)),a&&(a.className=G(Oa.aside,f,a.className)),c&&(c.className=G(Oa.selector,c.className)),e},lee={root:"fui-TreeItem"},dee=Re("r15xhw3a","r2f6k57",[".r15xhw3a{position:relative;cursor:pointer;display:flex;flex-direction:column;box-sizing:border-box;background-color:var(--colorSubtleBackground);color:var(--colorNeutralForeground2);padding-right:var(--spacingHorizontalNone);}",".r15xhw3a:focus{outline-style:none;}",".r15xhw3a:focus-visible{outline-style:none;}",".r15xhw3a[data-fui-focus-visible]>.fui-TreeItemLayout,.r15xhw3a[data-fui-focus-visible]>.fui-TreeItemPersonaLayout{border-radius:var(--borderRadiusMedium);outline-color:var(--colorStrokeFocus2);outline-radius:var(--borderRadiusMedium);outline-width:2px;outline-style:solid;}",".r2f6k57{position:relative;cursor:pointer;display:flex;flex-direction:column;box-sizing:border-box;background-color:var(--colorSubtleBackground);color:var(--colorNeutralForeground2);padding-left:var(--spacingHorizontalNone);}",".r2f6k57:focus{outline-style:none;}",".r2f6k57:focus-visible{outline-style:none;}",".r2f6k57[data-fui-focus-visible]>.fui-TreeItemLayout,.r2f6k57[data-fui-focus-visible]>.fui-TreeItemPersonaLayout{border-radius:var(--borderRadiusMedium);outline-color:var(--colorStrokeFocus2);outline-radius:var(--borderRadiusMedium);outline-width:2px;outline-style:solid;}"]),uee=$({level1:{iytv0q:"f10bgyvd"},level2:{iytv0q:"f1h0rod3"},level3:{iytv0q:"fgoqafk"},level4:{iytv0q:"f75dvuh"},level5:{iytv0q:"fqk7yw6"},level6:{iytv0q:"f1r3z17b"},level7:{iytv0q:"f1hrpd1h"},level8:{iytv0q:"f1iy65d0"},level9:{iytv0q:"ftg42e5"},level10:{iytv0q:"fyat3t"}},{d:[".f10bgyvd{--fluent-TreeItem--level:1;}",".f1h0rod3{--fluent-TreeItem--level:2;}",".fgoqafk{--fluent-TreeItem--level:3;}",".f75dvuh{--fluent-TreeItem--level:4;}",".fqk7yw6{--fluent-TreeItem--level:5;}",".f1r3z17b{--fluent-TreeItem--level:6;}",".f1hrpd1h{--fluent-TreeItem--level:7;}",".f1iy65d0{--fluent-TreeItem--level:8;}",".ftg42e5{--fluent-TreeItem--level:9;}",".fyat3t{--fluent-TreeItem--level:10;}"]}),Aee=e=>{"use no memo";const t=dee(),n=uee(),{level:r}=e;return e.root.className=G(lee.root,t,fee(r)&&n[`level${r}`],e.root.className),e};function fee(e){return e>=1&&e<=10}function mee(e){const{value:t,itemType:n,layoutRef:r,subtreeRef:o,open:i,expandIconRef:a,actionsRef:s,treeItemRef:c,isActionsVisible:l,isAsideVisible:d,selectionRef:A,checked:f}=e;return{treeItem:{value:t,checked:f,itemType:n,layoutRef:r,subtreeRef:o,open:i,selectionRef:A,isActionsVisible:l,isAsideVisible:d,actionsRef:s,treeItemRef:c,expandIconRef:a}}}const eg=g.forwardRef((e,t)=>{const n=J$(e,t);Aee(n);const r=mee(n);return Q$(n,r)});eg.displayName="TreeItem";const J6=g.memo(()=>{const e=Yr(r=>r.open),{dir:t}=Ge(),n=e?90:t!=="rtl"?0:180;return g.createElement(qV,{style:{...vee[n],transition:`transform ${O8.durationNormal}ms ${L8.curveEasyEaseMax}`}})});J6.displayName="TreeItemChevron";const vee={90:{transform:"rotate(90deg)"},0:{transform:"rotate(0deg)"},180:{transform:"rotate(180deg)"}},pee=(e,t)=>{"use no memo";const{main:n,iconAfter:r,iconBefore:o}=e,i=Yr(F=>F.layoutRef),a=es(F=>F.selectionMode),[s,c]=_p(e.actions)?[e.actions.visible,e.actions.onVisibilityChange]:[void 0,void 0],[l,d]=Mn({state:s,initialState:!1}),A=Yr(F=>F.selectionRef),f=Yr(F=>F.expandIconRef),m=Yr(F=>F.actionsRef),v=g.useRef(null),p=Yr(F=>F.treeItemRef),y=Yr(F=>F.subtreeRef),b=Yr(F=>F.checked),h=Yr(F=>F.itemType==="branch"),w=g.useCallback(F=>{!!(y.current&&ur(y.current,F.target))||(c==null||c(F,{visible:!0,event:F,type:F.type}),d(!0))},[y,d,c]),x=g.useCallback(F=>{if(!!(v.current&&ur(v.current,F.relatedTarget))){c==null||c(F,{visible:!0,event:F,type:F.type}),d(!0);return}if(!!!(y.current&&ur(y.current,F.target))){c==null||c(F,{visible:!1,event:F,type:F.type}),d(!1);return}},[y,d,c]),k=Te(e.expandIcon,{renderByDefault:h,defaultProps:{children:g.createElement(J6,null),"aria-hidden":!0},elementType:"div"}),S=ot(k==null?void 0:k.ref,f);k&&(k.ref=S);const N=Tu({circular:!0,axis:"horizontal"}),C=l?Te(e.actions,{defaultProps:{...N,role:"toolbar"},elementType:"div"}):void 0;C==null||delete C.visible,C==null||delete C.onVisibilityChange;const M=ot(C==null?void 0:C.ref,m,v),j=fe(F=>{if(_p(e.actions)){var H,R;(H=(R=e.actions).onBlur)===null||H===void 0||H.call(R,F)}const O=!!ur(F.currentTarget,F.relatedTarget);c==null||c(F,{visible:O,event:F,type:F.type}),d(O)});C&&(C.ref=M,C.onBlur=j);const T=!!e.actions;return g.useEffect(()=>{if(p.current&&T&&s===void 0){const F=p.current,H=w,R=x,O=w,_=x;return F.addEventListener("mouseover",H),F.addEventListener("mouseout",R),F.addEventListener("focus",O),F.addEventListener("blur",_),()=>{F.removeEventListener("mouseover",H),F.removeEventListener("mouseout",R),F.removeEventListener("focus",O),F.removeEventListener("blur",_)}}},[T,p,s,w,x]),{components:{root:"div",expandIcon:"div",iconBefore:"div",main:"div",iconAfter:"div",actions:"div",aside:"div",selector:a==="multiselect"?$f:nm},buttonContextValue:{size:"small"},root:be(ze("div",{...e,ref:ot(t,i)}),{elementType:"div"}),iconBefore:Te(o,{defaultProps:{"aria-hidden":!0},elementType:"div"}),main:be(n,{elementType:"div"}),iconAfter:Te(r,{defaultProps:{"aria-hidden":!0},elementType:"div"}),aside:l?void 0:Te(e.aside,{defaultProps:{"aria-hidden":!0},elementType:"div"}),actions:C,expandIcon:k,selector:Te(e.selector,{renderByDefault:a!=="none",defaultProps:{checked:b,tabIndex:-1,"aria-hidden":!0,ref:A},elementType:a==="multiselect"?$f:nm})}},gee=e=>ut(e.root,{children:[e.expandIcon&&Q(e.expandIcon,{}),e.selector&&Q(e.selector,{}),e.iconBefore&&Q(e.iconBefore,{}),Q(e.main,{children:e.root.children}),e.iconAfter&&Q(e.iconAfter,{}),ut(eG,{value:e.buttonContextValue,children:[e.actions&&Q(e.actions,{}),e.aside&&Q(e.aside,{})]})]}),Q6=g.forwardRef((e,t)=>{const n=pee(e,t);return cee(n),gee(n)});Q6.displayName="TreeItemLayout";function hee(e){switch(e){case"info":return g.createElement(LV,null);case"warning":return g.createElement(UV,null);case"error":return g.createElement(OV,null);case"success":return g.createElement(zV,null);default:return null}}function bee(e=!1){const{targetDocument:t}=Ge(),n=g.useReducer(()=>({}),{})[1],r=g.useRef(!1),o=g.useRef(null),i=g.useRef(-1),a=g.useCallback(c=>{var l;const d=c[0];var A;const f=(A=d==null||(l=d.borderBoxSize)===null||l===void 0?void 0:l[0].inlineSize)!==null&&A!==void 0?A:d==null?void 0:d.target.getBoundingClientRect().width;if(f===void 0||!d)return;const{target:m}=d;if(!Pn(m))return;let v;if(r.current)i.current{var l;if(!e||!c||!(t!=null&&t.defaultView))return;(l=o.current)===null||l===void 0||l.disconnect();const d=t.defaultView,A=new d.ResizeObserver(a);o.current=A,A.observe(c,{box:"border-box"})},[t,a,e]);return g.useEffect(()=>()=>{var c;(c=o.current)===null||c===void 0||c.disconnect()},[]),{ref:s,reflowing:r.current}}const $6=g.createContext(void 0),yee={className:"",nodeRef:g.createRef()},wee=$6.Provider,xee=()=>{var e;return(e=g.useContext($6))!==null&&e!==void 0?e:yee},kee=(e,t)=>{const{layout:n="auto",intent:r="info",politeness:o,shape:i="rounded"}=e,a=o??r==="info"?"polite":"assertive",s=n==="auto",{ref:c,reflowing:l}=bee(s),d=s?l?"multiline":"singleline":n,{className:A,nodeRef:f}=xee(),m=g.useRef(null),v=g.useRef(null),{announce:p}=RW(),y=Rn();return g.useEffect(()=>{var b,h;const w=(b=v.current)===null||b===void 0?void 0:b.textContent,x=(h=m.current)===null||h===void 0?void 0:h.textContent,k=[w,x].filter(Boolean).join(",");p(k,{polite:a==="polite",alert:a==="assertive"})},[v,m,p,a]),{components:{root:"div",icon:"div",bottomReflowSpacer:"div"},root:be(ze("div",{ref:ot(t,c,f),role:"group","aria-labelledby":y,...e}),{elementType:"div"}),icon:Te(e.icon,{renderByDefault:!0,elementType:"div",defaultProps:{children:hee(r)}}),bottomReflowSpacer:Te(e.bottomReflowSpacer,{renderByDefault:d==="multiline",elementType:"div"}),layout:d,intent:r,transitionClassName:A,actionsRef:m,bodyRef:v,titleId:y,shape:i}},eM=g.createContext(void 0),See={titleId:"",layout:"singleline",actionsRef:g.createRef(),bodyRef:g.createRef()},jee=eM.Provider,Nee=()=>{var e;return(e=g.useContext(eM))!==null&&e!==void 0?e:See},Cee=(e,t)=>Q(jee,{value:t.messageBar,children:ut(e.root,{children:[e.icon&&Q(e.icon,{}),e.root.children,e.bottomReflowSpacer&&Q(e.bottomReflowSpacer,{})]})}),m1={root:"fui-MessageBar",icon:"fui-MessageBar__icon",bottomReflowSpacer:"fui-MessageBar__bottomReflowSpacer"},Tee=Re("r2oyxsj","r1wuyrhw",['.r2oyxsj{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-left:var(--spacingHorizontalM);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);border-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}','.r1wuyrhw{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-right:var(--spacingHorizontalM);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);border-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}']),Iee=Re("r1df1z33","rivnfjc",[".r1df1z33{grid-area:icon;font-size:var(--fontSizeBase500);margin-right:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}",".rivnfjc{grid-area:icon;font-size:var(--fontSizeBase500);margin-left:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}"]),Pee=Re("r1vx593n",null,[".r1vx593n{margin-bottom:var(--spacingVerticalS);grid-area:secondaryActions;}"]),Dee=$({rootMultiline:{Huce71:"f6juhto",Bt984gj:"f1s2louj",z8tnut:"f1ngh7ph",Budl1dq:"f17g0uqy",zoa1oz:"f1w7oly7"},secondaryActionsMultiline:{Brf1p80:"f1e8xxv9",B6of3ja:"f1gaxbfw",jrapky:"fqcjy3b",t21cq0:["fibjyge","f9yszdx"]},square:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fokr779"}},{d:[".f6juhto{white-space:normal;}",".f1s2louj{align-items:start;}",".f1ngh7ph{padding-top:var(--spacingVerticalMNudge);}",".f17g0uqy{grid-template-columns:auto 1fr auto;}",'.f1w7oly7{grid-template-areas:"icon body actions" "secondaryActions secondaryActions secondaryActions";}',".f1e8xxv9{justify-content:end;}",".f1gaxbfw{margin-top:var(--spacingVerticalMNudge);}",".fqcjy3b{margin-bottom:var(--spacingVerticalS);}",".fibjyge{margin-right:0px;}",".f9yszdx{margin-left:0px;}",[".fokr779{border-radius:0;}",{p:-1}]]}),Mee=$({info:{},error:{sj55zd:"f1ca9wz"},warning:{sj55zd:"f14a4cve"},success:{sj55zd:"f36rra6"}},{d:[".f1ca9wz{color:var(--colorStatusDangerForeground1);}",".f14a4cve{color:var(--colorStatusWarningForeground3);}",".f36rra6{color:var(--colorStatusSuccessForeground1);}"]}),Ree=$({info:{},error:{De3pzq:"f1eon7jj",g2u3we:"f1f8dvr7",h3c5rm:["f1g1ijmo","f1nxacbt"],B9xav0g:"fo25q1j",zhjwy3:["f1nxacbt","f1g1ijmo"]},warning:{De3pzq:"f13ftzij",g2u3we:"frd1ypx",h3c5rm:["f1gyjrma","f18qd5xz"],B9xav0g:"fqyqtrt",zhjwy3:["f18qd5xz","f1gyjrma"]},success:{De3pzq:"f64thcm",g2u3we:"f1b4u7v",h3c5rm:["f1nyd2b1","f70v3om"],B9xav0g:"fk173vo",zhjwy3:["f70v3om","f1nyd2b1"]}},{d:[".f1eon7jj{background-color:var(--colorStatusDangerBackground1);}",".f1f8dvr7{border-top-color:var(--colorStatusDangerBorder1);}",".f1g1ijmo{border-right-color:var(--colorStatusDangerBorder1);}",".f1nxacbt{border-left-color:var(--colorStatusDangerBorder1);}",".fo25q1j{border-bottom-color:var(--colorStatusDangerBorder1);}",".f13ftzij{background-color:var(--colorStatusWarningBackground1);}",".frd1ypx{border-top-color:var(--colorStatusWarningBorder1);}",".f1gyjrma{border-right-color:var(--colorStatusWarningBorder1);}",".f18qd5xz{border-left-color:var(--colorStatusWarningBorder1);}",".fqyqtrt{border-bottom-color:var(--colorStatusWarningBorder1);}",".f64thcm{background-color:var(--colorStatusSuccessBackground1);}",".f1b4u7v{border-top-color:var(--colorStatusSuccessBorder1);}",".f1nyd2b1{border-right-color:var(--colorStatusSuccessBorder1);}",".f70v3om{border-left-color:var(--colorStatusSuccessBorder1);}",".fk173vo{border-bottom-color:var(--colorStatusSuccessBorder1);}"]}),zee=e=>{"use no memo";const t=Tee(),n=Iee(),r=Mee(),o=Ree(),i=Pee(),a=Dee();return e.root.className=G(m1.root,t,e.layout==="multiline"&&a.rootMultiline,e.shape==="square"&&a.square,o[e.intent],e.transitionClassName,e.root.className),e.icon&&(e.icon.className=G(m1.icon,n,r[e.intent],e.icon.className)),e.bottomReflowSpacer&&(e.bottomReflowSpacer.className=G(m1.bottomReflowSpacer,i)),e};function Eee(e){const{layout:t,actionsRef:n,bodyRef:r,titleId:o}=e;return{messageBar:g.useMemo(()=>({layout:t,actionsRef:n,bodyRef:r,titleId:o}),[t,n,r,o])}}const cf=g.forwardRef((e,t)=>{const n=kee(e,t);return zee(n),Ye("useMessageBarStyles_unstable")(n),Cee(n,Eee(n))});cf.displayName="MessageBar";const Bee=(e,t)=>{const{bodyRef:n}=Nee();return{components:{root:"div"},root:be(ze("div",{ref:ot(t,n),...e}),{elementType:"div"})}},Fee=e=>Q(e.root,{}),Oee={root:"fui-MessageBarBody"},Lee=Re("rtatq2b","re2rary",[".rtatq2b{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-area:body;padding-right:var(--spacingHorizontalM);}",".re2rary{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-area:body;padding-left:var(--spacingHorizontalM);}"]),Wee=e=>{"use no memo";const t=Lee();return e.root.className=G(Oee.root,t,e.root.className),e},lf=g.forwardRef((e,t)=>{const n=Bee(e,t);return Wee(n),Ye("useMessageBarBodyStyles_unstable")(n),Fee(n)});lf.displayName="MessageBarBody";const Uee=(e,t)=>{var n;const r=g.Children.map((n=e.children)!==null&&n!==void 0?n:[],i=>g.isValidElement(i)&&i.type!==g.Fragment?i:null).filter(Boolean);var o;return{components:{root:"div"},root:be(ze("div",{ref:t,...e}),{elementType:"div"}),children:r,animate:(o=e.animate)!==null&&o!==void 0?o:"exit-only",enterStyles:"",exitStyles:""}};function Fw(e,t){return Fw=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Fw(e,t)}function tM(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Fw(e,t)}var nM={exports:{}},Hee="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Zee=Hee,Vee=Zee;function rM(){}function oM(){}oM.resetWarningCache=rM;var qee=function(){function e(r,o,i,a,s,c){if(c!==Vee){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:oM,resetWarningCache:rM};return n.PropTypes=n,n};nM.exports=qee();var _ee=nM.exports;const me=jm(_ee),a3={disabled:!1},tg=ht.createContext(null);var Xee=function(t){return t.scrollTop},RA="unmounted",yc="exited",wc="entering",Kl="entered",Ow="exiting",Ta=function(e){tM(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var a=o,s=a&&!a.isMounting?r.enter:r.appear,c;return i.appearStatus=null,r.in?s?(c=yc,i.appearStatus=wc):c=Kl:r.unmountOnExit||r.mountOnEnter?c=RA:c=yc,i.state={status:c},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var a=o.in;return a&&i.status===RA?{status:yc}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var a=this.state.status;this.props.in?a!==wc&&a!==Kl&&(i=wc):(a===wc||a===Kl)&&(i=Ow)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,a,s;return i=a=s=o,o!=null&&typeof o!="number"&&(i=o.exit,a=o.enter,s=o.appear!==void 0?o.appear:a),{exit:i,enter:a,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===wc){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:S0.findDOMNode(this);a&&Xee(a)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===yc&&this.setState({status:RA})},n.performEnter=function(o){var i=this,a=this.props.enter,s=this.context?this.context.isMounting:o,c=this.props.nodeRef?[s]:[S0.findDOMNode(this),s],l=c[0],d=c[1],A=this.getTimeouts(),f=s?A.appear:A.enter;if(!o&&!a||a3.disabled){this.safeSetState({status:Kl},function(){i.props.onEntered(l)});return}this.props.onEnter(l,d),this.safeSetState({status:wc},function(){i.props.onEntering(l,d),i.onTransitionEnd(f,function(){i.safeSetState({status:Kl},function(){i.props.onEntered(l,d)})})})},n.performExit=function(){var o=this,i=this.props.exit,a=this.getTimeouts(),s=this.props.nodeRef?void 0:S0.findDOMNode(this);if(!i||a3.disabled){this.safeSetState({status:yc},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:Ow},function(){o.props.onExiting(s),o.onTransitionEnd(a.exit,function(){o.safeSetState({status:yc},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,a=!0;return this.nextCallback=function(s){a&&(a=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var a=this.props.nodeRef?this.props.nodeRef.current:S0.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!a||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var c=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],l=c[0],d=c[1];this.props.addEndListener(l,d)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===RA)return null;var i=this.props,a=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=qP(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ht.createElement(tg.Provider,{value:null},typeof a=="function"?a(o,s):ht.cloneElement(ht.Children.only(a),s))},t}(ht.Component);Ta.contextType=tg;Ta.propTypes={};function Rl(){}Ta.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Rl,onEntering:Rl,onEntered:Rl,onExit:Rl,onExiting:Rl,onExited:Rl};Ta.UNMOUNTED=RA;Ta.EXITED=yc;Ta.ENTERING=wc;Ta.ENTERED=Kl;Ta.EXITING=Ow;function Gee(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function tS(e,t){var n=function(i){return t&&g.isValidElement(i)?t(i):i},r=Object.create(null);return e&&g.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function Yee(e,t){e=e||{},t=t||{};function n(d){return d in t?t[d]:e[d]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var c in t){if(r[c])for(a=0;a{switch(e){case"entering":case"entered":return r==="both"?t:"";case"exiting":case"exited":return n;default:return""}},tte=({children:e,enterClassName:t,exitClassName:n,animate:r,...o})=>{const i=g.useRef(null);return g.createElement(Ta,{timeout:250,nodeRef:i,...o},a=>g.createElement(nte,{animate:r,enterClassName:t,exitClassName:n,nodeRef:i,state:a},e))},nte=({children:e,state:t,enterClassName:n,exitClassName:r,animate:o,nodeRef:i})=>{const a=ete(t,n,r,o),s=g.useMemo(()=>({className:a,nodeRef:i}),[a,i]);return g.createElement(wee,{value:s},e)},rte=e=>Q(e.root,{children:Q(nS,{component:null,children:e.children.map(t=>Q(tte,{animate:e.animate,enterClassName:e.enterStyles,exitClassName:e.exitStyles,children:t},t.key))})}),ote={root:"fui-MessageBarGroup"},ite=$({base:{Bf5fcs:"f4cll0y",vin17d:"fy8si0b"},enter:{Bv12yb3:"f1dg9w1v"},exit:{Bv12yb3:"fu80iee"}},{d:[".f4cll0y{animation-fill-mode:forwards;}",".fy8si0b{animation-duration:var(--durationNormal);}",".f1dg9w1v{animation-name:fngeioi;}",".fu80iee{animation-name:fk0lfw7;}"],k:["@keyframes fngeioi{from{opacity:0;transform:translateY(-100%);}to{opacity:1;transform:translateY(0);}}","@keyframes fk0lfw7{from{opacity:1;}to{opacity:0;}}"]}),ate=e=>{"use no memo";const t=ite();return e.root.className=G(ote.root,e.root.className),e.enterStyles=G(t.base,t.enter),e.exitStyles=G(t.base,t.exit),e},iM=g.forwardRef((e,t)=>{const n=Uee(e,t);return ate(n),Ye("useMessageBarGroupStyles_unstable")(n),rte(n)});iM.displayName="MessageBarGroup";const ste=(e,t)=>{const{mediaLength:n}=e;return{components:{root:"div",media:"span"},root:be(ze("div",{ref:t,...e}),{elementType:"div"}),media:Te(e.media,{elementType:"span"}),mediaLength:n??"short"}},cte=e=>ut(e.root,{children:[e.media&&Q(e.media,{}),e.root.children]}),s3={root:"fui-TeachingPopoverBody",media:"fui-TeachingPopoverBody__media"},lte=$({base:{Bw0ie65:0,Br312pm:0,nk6f5a:0,Ijaq50:0,Bq1tomu:"fujjg13",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",a9b677:"f1dxqujg",jrapky:"f1jlhsmd",ha4doy:"fmrv4ls",Brf1p80:"f4d9j23",mc9l5x:"f22iagw"},short:{Bubjx69:"f1taewuw",Bmuttt3:"fs5pxn9"},medium:{Bubjx69:"f7da563",Bmuttt3:"f98prui"},tall:{Bubjx69:"f9ikmtg",Bmuttt3:"fqws08j"}},{d:[[".fujjg13{grid-area:media;}",{p:-1}],[".f1a3p1vp{overflow:hidden;}",{p:-1}],".f1dxqujg{width:288px;}",".f1jlhsmd{margin-bottom:12px;}",".fmrv4ls{vertical-align:middle;}",".f4d9j23{justify-content:center;}",".f22iagw{display:flex;}",".f1taewuw{aspect-ratio:2.4615384615384617;}",".f7da563{aspect-ratio:1.6363636363636365;}",".f9ikmtg{aspect-ratio:1;}"],t:["@supports not (aspect-ratio){.fs5pxn9{height:117px;}}","@supports not (aspect-ratio){.f98prui{height:176px;}}","@supports not (aspect-ratio){.fqws08j{height:288px;}}"]}),dte=$({root:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Byoj8tv:"fpe6lb7"}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".fpe6lb7{padding-bottom:12px;}"]}),ute=e=>{"use no memo";const{mediaLength:t}=e,n=dte(),r=lte();return e.root.className=G(s3.root,n.root,e.root.className),e.media&&(e.media.className=G(s3.media,r.base,r[t],e.media.className)),e},aM=g.forwardRef((e,t)=>{const n=ste(e,t);return ute(n),Ye("useTeachingPopoverBodyStyles_unstable")(n),cte(n)});aM.displayName="TeachingPopoverBody";const sM=()=>{let e=[],t=[];const n={clear(){e=[],r()},addValue(o){e=[...e,o],r()},insertValue(o,i){if(!i)e=[o,...e];else{const a=e.indexOf(i);e.splice(a+1,0,o),e=[...e]}r()},removeValue(o){const i=e.indexOf(o);e.splice(i,1),e=[...e],r()},subscribe(o){return t=[...t,o],()=>{t=t.filter(i=>i!==o)}},getSnapshot(){return e}};function r(){for(const o of t)o()}return n},Ate={store:sM(),value:null,selectPageByDirection:()=>{},selectPageByValue:()=>{}},cM=Vi(void 0),fte=cM.Provider,Au=e=>Qs(cM,(t=Ate)=>e(t)),Mr="data-carousel-item",lM="data-carousel-active-item",mte=(e,t)=>{const{value:n}=e,r=Au(i=>i.value===n),o={value:n,visible:r,components:{root:"div"},root:be(ze("div",{ref:t,[Mr]:n,[lM]:r,hidden:!r,...e}),{elementType:"div"})};return r||(o.root.children=null),o},vte=e=>Q(e.root,{}),Lw=g.forwardRef((e,t)=>{const n=mte(e,t);return vte(n)});Lw.displayName="CarouselItem";const pte=(e,t)=>{const{value:n}=e;return{value:n,components:{root:Lw},root:be({...ze("div",{ref:t,...e}),value:n},{elementType:Lw})}},gte=e=>Q(e.root,{}),hte={root:"fui-TeachingPopoverCarouselCard"},bte=$({root:{}},{}),yte=e=>{"use no memo";const t=bte();return e.root.className=G(hte.root,t.root,e.root.className),e},dM=g.forwardRef((e,t)=>{const n=pte(e,t);return yte(n),gte(n)});dM.displayName="TeachingPopoverCarouselCard";const wte=()=>{const{targetDocument:e}=Ge(),t=g.useRef(e==null?void 0:e.createTreeWalker(e.body)),n=g.useRef(null);return{ref:g.useCallback(o=>{e&&o&&(n.current=o,t.current=e.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,{acceptNode(i){return Pn(i)&&i.hasAttribute(Mr)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}))},[e]),walker:g.useMemo(()=>({active(){if(!n.current)return null;const o=n.current.querySelector(`[${lM}="true"]`);return Pn(o)?{el:o,value:o.getAttribute(Mr)}:null},find(o){var i;if(!(!((i=t.current)===null||i===void 0)&&i.currentNode)||!n.current)return null;t.current.currentNode=n.current;let a=null;for(;a=t.current.nextNode();)if(Pn(a)&&a.getAttribute(Mr)===o)return{el:a,value:a.getAttribute(Mr)};return null},nextPage(o){var i;const a=this.find(o);if(!a||!(!((i=t.current)===null||i===void 0)&&i.currentNode))return null;t.current.currentNode=a.el;const s=t.current.nextNode();return Pn(s)?{el:s,value:s.getAttribute(Mr)}:null},prevPage(o){var i;const a=this.find(o);if(!a||!(!((i=t.current)===null||i===void 0)&&i.currentNode))return null;t.current.currentNode=a.el;const s=t.current.previousNode();return Pn(s)?{el:s,value:s.getAttribute(Mr)}:null}}),[])}};function xte(e){"use no memo";const{onValueChange:t,onFinish:n}=e,{targetDocument:r}=Ge(),o=r==null?void 0:r.defaultView,{ref:i,walker:a}=wte(),[s]=g.useState(()=>sM()),[c,l]=Mn({defaultState:e.defaultValue,state:e.value,initialState:null}),d=g.useRef(null);g.useEffect(()=>{var m;const v=(m=d.current)===null||m===void 0?void 0:m.querySelectorAll(`[${Mr}]`);for(let p=0;p{s.clear()}},[s]),g.useEffect(()=>{if(!o)return;const m={attributes:!0,attributeFilter:[Mr],childList:!0,subtree:!0},v=y=>{for(const h of y){for(const w of Array.from(h.addedNodes))if(Pn(w)&&w.hasAttribute(Mr)){const x=w.getAttribute(Mr),k=a.find(x);if(!(k!=null&&k.value))return;const S=a.prevPage(k==null?void 0:k.value);var b;s.insertValue(x,(b=S==null?void 0:S.value)!==null&&b!==void 0?b:null)}for(const w of Array.from(h.removedNodes))if(Pn(w)&&(w!=null&&w.hasAttribute(Mr))){const x=w.getAttribute(Mr);s.removeValue(x)}}},p=new o.MutationObserver(v);return p.observe(d.current,m),()=>{p.disconnect()}},[a,s,o]);const A=fe((m,v)=>{const p=a.active();if(!(p!=null&&p.value))return;const y=v==="prev"?a.prevPage(p.value):a.nextPage(p.value);y?(l(y==null?void 0:y.value),t==null||t(m,{event:m,type:"click",value:y==null?void 0:y.value})):n==null||n(m,{event:m,type:"click",value:p==null?void 0:p.value})}),f=fe((m,v)=>{l(v),t==null||t(m,{event:m,type:"click",value:v})});return{carouselRef:ot(d,i),carousel:{store:s,value:c,selectPageByDirection:A,selectPageByValue:f}}}const kte=(e,t)=>{const n=Ht(s=>s.toggleOpen),r=fe((s,c)=>{var l;(l=e.onFinish)===null||l===void 0||l.call(e,s,c),n(s)}),{carousel:o,carouselRef:i}=xte({defaultValue:e.defaultValue,value:e.value,onValueChange:e.onValueChange,onFinish:r});return{appearance:Ht(s=>s.appearance),components:{root:"div"},root:be(ze("div",{ref:ot(t,i),...e}),{elementType:"div"}),...o}},Ste=(e,t)=>Q(fte,{value:t.carousel,children:Q(e.root,{})}),jte={root:"fui-TeachingPopoverCarousel"},Nte=$({root:{}},{}),Cte=e=>{"use no memo";const t=Nte();return e.root.className=G(jte.root,t.root,e.root.className),e};function Tte(e){const{store:t,value:n,selectPageByValue:r,selectPageByDirection:o}=e;return{carousel:{store:t,value:n,selectPageByDirection:o,selectPageByValue:r}}}const uM=g.forwardRef((e,t)=>{const n=kte(e,t);Cte(n),Ye("useTeachingPopoverCarouselStyles_unstable")(n);const r=Tte(n);return Ste(n,r)});uM.displayName="TeachingPopoverCarousel";function AM(e){const t=Au(n=>n.store);return LP.useSyncExternalStore(t.subscribe,()=>e(t.getSnapshot()))}const Ite=(e,t)=>{const{navType:n,altText:r}=e,o=Ht(m=>m.appearance),i=Au(m=>m.selectPageByDirection),a=AM(m=>m),s=Au(m=>m.value),l=fe(We(m=>{m.isDefaultPrevented()||i(m,n)},e.onClick)),d=g.useMemo(()=>s?n==="prev"?a.indexOf(s)===0:a.indexOf(s)===a.length-1:!1,[n,s,a]);let A;n==="next"?A=o==="brand"?void 0:"primary":A=o==="brand"?"outline":void 0;let f=e.children;return d&&(f=r),{...u6({appearance:A,...e},t),navType:n,popoverAppearance:o,altText:r,root:be(ze("button",{ref:t,appearance:A,...e,onClick:l,children:f}),{elementType:"button"})}},Pte=e=>Q(e.root,{}),Dte={root:"fui-TeachingPopoverCarouselFooterButton"},Mte=$({root:{Bf4jedk:"f14es27b"},brandNext:{sj55zd:"f16muhyy",De3pzq:"f10s6wn9",g2u3we:"f1iimpp0",h3c5rm:["f19uhqvu","f1nx14hx"],B9xav0g:"fnqa90p",zhjwy3:["f1nx14hx","f19uhqvu"],Bi91k9c:"f3ymbdj",Jwef8y:"f1rgtb95",B2d53fq:"f1pu27ff",iro3zm:"f1d5c7in"},brandPrevious:{sj55zd:"f1phragk",De3pzq:"ffp7eso",g2u3we:"fm1ebug",h3c5rm:["f28omuz","f1uhflii"],B9xav0g:"f1ixw5o4",zhjwy3:["f1uhflii","f28omuz"],Bi91k9c:"f1rq72xc",Bgoe8wy:"f1bg5g8r",Bwzppfd:["f1h9bnsk","f12x9t0k"],oetu4i:"f19ervry",gg5e9n:["f12x9t0k","f1h9bnsk"],Jwef8y:"f15wkkf3",B2d53fq:"f1d6v5y2",b661bw:"f1565b9n",Bk6r4ia:["fm07gvo","fwlsg72"],B9zn80p:"fzw6fmy",Bpld233:["fwlsg72","fm07gvo"],iro3zm:"fnp9lpt"}},{d:[".f14es27b{min-width:96px;}",".f16muhyy{color:var(--colorBrandForeground1);}",".f10s6wn9{background-color:var(--colorNeutralForegroundOnBrand);}",".f1iimpp0{border-top-color:var(--colorTransparentBackground);}",".f19uhqvu{border-right-color:var(--colorTransparentBackground);}",".f1nx14hx{border-left-color:var(--colorTransparentBackground);}",".fnqa90p{border-bottom-color:var(--colorTransparentBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".fm1ebug{border-top-color:var(--colorNeutralForegroundOnBrand);}",".f28omuz{border-right-color:var(--colorNeutralForegroundOnBrand);}",".f1uhflii{border-left-color:var(--colorNeutralForegroundOnBrand);}",".f1ixw5o4{border-bottom-color:var(--colorNeutralForegroundOnBrand);}"],h:[".f3ymbdj:hover{color:var(--colorCompoundBrandForeground1Hover);}",".f1rgtb95:hover{background-color:var(--colorNeutralForegroundOnBrand);}",".f1pu27ff:hover:active{color:var(--colorCompoundBrandForeground1Pressed);}",".f1d5c7in:hover:active{background-color:var(--colorNeutralForegroundOnBrand);}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".f1bg5g8r:hover{border-top-color:var(--colorNeutralForegroundOnBrand);}",".f1h9bnsk:hover{border-right-color:var(--colorNeutralForegroundOnBrand);}",".f12x9t0k:hover{border-left-color:var(--colorNeutralForegroundOnBrand);}",".f19ervry:hover{border-bottom-color:var(--colorNeutralForegroundOnBrand);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1d6v5y2:hover:active{color:var(--colorNeutralForegroundOnBrand);}",".f1565b9n:hover:active{border-top-color:var(--colorNeutralForegroundOnBrand);}",".fm07gvo:hover:active{border-right-color:var(--colorNeutralForegroundOnBrand);}",".fwlsg72:hover:active{border-left-color:var(--colorNeutralForegroundOnBrand);}",".fzw6fmy:hover:active{border-bottom-color:var(--colorNeutralForegroundOnBrand);}",".fnp9lpt:hover:active{background-color:var(--colorBrandBackgroundPressed);}"]}),Rte=e=>{"use no memo";const t=Mte(),{navType:n,popoverAppearance:r}=e;return e={...e,...A6(e)},e.root.className=G(Dte.root,t.root,n==="prev"&&r==="brand"&&t.brandPrevious,n==="next"&&r==="brand"&&t.brandNext,e.root.className),e},zA=g.forwardRef((e,t)=>{const n=Ite(e,t);return Rte(n),Pte(n)});zA.displayName="TeachingPopoverCarouselFooterButton";const zte=(e,t)=>{const{layout:n="centered",initialStepText:r,finalStepText:o}=e,i=Te(e.previous,{defaultProps:{navType:"prev",altText:r},renderByDefault:!0,elementType:zA}),a=be(e.next,{defaultProps:{navType:"next",altText:o},elementType:zA});return{layout:n,components:{root:"div",next:zA,previous:zA},root:be(ze("div",{ref:t,...e}),{elementType:"div"}),previous:i,next:a}},Ete=e=>{const{layout:t}=e;return ut(e.root,{children:[t==="centered"&&e.previous&&Q(e.previous,{}),e.root.children,t==="offset"&&e.previous&&Q(e.previous,{}),Q(e.next,{})]})},v1={root:"fui-TeachingPopoverCarouselFooter",previous:"fui-TeachingPopoverCarouselFooter__previous",next:"fui-TeachingPopoverCarouselFooter__next"},Bte=$({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq"},rootCentered:{Brf1p80:"f1869bpl",i8kkvl:0,Belr9w4:0,rmohyg:"f19gb1f4"},rootRightAligned:{i8kkvl:0,Belr9w4:0,rmohyg:"f19gb1f4",Bp34fd5:"f1y65ohq"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".f1869bpl{justify-content:space-between;}",[".f19gb1f4{gap:8px;}",{p:-1}],[".f19gb1f4{gap:8px;}",{p:-1}],".f1y65ohq :first-child{-webkit-margin-end:auto;margin-inline-end:auto;}"]}),Fte=e=>{"use no memo";const t=Bte(),{layout:n}=e;return e.root.className=G(v1.root,t.root,n==="centered"?t.rootCentered:t.rootRightAligned,e.root.className),e.previous&&(e.previous.className=G(v1.previous,e.previous.className)),e.next.className=G(v1.next,e.next.className),e},fM=g.forwardRef((e,t)=>{const n=zte(e,t);return Fte(n),Ete(n)});fM.displayName="TeachingPopoverCarouselFooter";const Ote=(e,t)=>{const n=Tu({circular:!1,axis:"horizontal",memorizeCurrent:!1,unstable_hasDefault:!0});return{values:AM(o=>o),renderNavButton:e.children,components:{root:"div"},root:be(ze("div",{ref:t,role:"tablist",tabIndex:0,...e,...n,children:null}),{elementType:"div"})}},mM=g.createContext(void 0),Lte="",Wte=()=>{var e;return(e=g.useContext(mM))!==null&&e!==void 0?e:Lte},Ute=mM.Provider,Hte=e=>{const{values:t,renderNavButton:n}=e;return Q(e.root,{children:t.map(r=>Q(Ute,{value:r,children:n(r)},r))})},Zte={root:"fui-TeachingPopoverCarouselNav"},Vte=$({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",i8kkvl:"f1ufnopg",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f89hs3r",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"]}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}",".f122n59{align-items:center;}",".f4d9j23{justify-content:center;}",[".f89hs3r[data-fui-focus-visible]{outline:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}"]}),qte=e=>{"use no memo";const t=Vte();return e.root.className=G(Zte.root,t.root,e.root.className),e},vM=g.forwardRef((e,t)=>{const n=Ote(e,t);return qte(n),Hte(n)});vM.displayName="TeachingPopoverCarouselNav";const _te=(e,t)=>{const{onClick:n,as:r="a"}=e,o=Wte(),i=Ht(f=>f.appearance),a=Au(f=>f.selectPageByValue),s=Au(f=>f.value===o),c=fe(f=>{n==null||n(f),!f.defaultPrevented&&Pn(f.target)&&a(f,o)}),l=su({focusable:{isDefault:s}}),d=be(ze(r,il(e.as,e)),{elementType:"button",defaultProps:{ref:t,role:"tab",type:"button",...l}});return d.onClick=c,{isSelected:s,appearance:i,components:{root:"button"},root:d}},Xte=e=>Q(e.root,{}),Gte={root:"fui-TeachingPopoverCarouselNavButton"},Yte=$({root:{mc9l5x:"f22iagw",Bceei9c:"f1k6fduh",B7ck84d:"f1ewtqcl",Bqenvij:"f1x82gua",a9b677:"f1o3cbw4",De3pzq:"ffp7eso"},rootUnselected:{Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f5q2cvs",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1c5fvqg",Bw0xxkn:0,oeaueh:0,Bpd4iqm:0,Befb4lg:"f71xx7",Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f89hs3r",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],De3pzq:"frgiif3",Bfclv37:"f14lfud5",B372c46:"fngekiq"},rootSelected:{Bw0xxkn:0,oeaueh:0,Bpd4iqm:0,Befb4lg:"f71xx7",a9b677:"fjw5fx7",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ff3glw6",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1c5fvqg",Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f89hs3r",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bsw6fvg:"fe2ae1k"},rootBrand:{De3pzq:"f10s6wn9"},rootBrandUnselected:{De3pzq:"frxe7el",Bfclv37:"f14lfud5",B372c46:"fngekiq"}},{d:[".f22iagw{display:flex;}",".f1k6fduh{cursor:pointer;}",".f1ewtqcl{box-sizing:border-box;}",".f1x82gua{height:8px;}",".f1o3cbw4{width:8px;}",".ffp7eso{background-color:var(--colorBrandBackground);}",[".f3bhgqh{border:none;}",{p:-2}],[".f5q2cvs{border-radius:50%;}",{p:-1}],[".f1c5fvqg{padding:0px;}",{p:-1}],[".f71xx7{outline:var(--strokeWidthThin) solid transparent;}",{p:-1}],[".f89hs3r[data-fui-focus-visible]{outline:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".frgiif3{background-color:color-mix(in srgb, var(--colorBrandBackground) 30%, transparent);}",[".f71xx7{outline:var(--strokeWidthThin) solid transparent;}",{p:-1}],".fjw5fx7{width:16px;}",[".f3bhgqh{border:none;}",{p:-2}],[".ff3glw6{border-radius:4px;}",{p:-1}],[".f1c5fvqg{padding:0px;}",{p:-1}],[".f89hs3r[data-fui-focus-visible]{outline:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f10s6wn9{background-color:var(--colorNeutralForegroundOnBrand);}",".frxe7el{background-color:color-mix(in srgb, var(--colorNeutralForegroundOnBrand) 30%, transparent);}"],t:["@supports not (color: color-mix(in lch, white, black)){.f14lfud5{opacity:0.3;}}","@supports not (color: color-mix(in lch, white, black)){.fngekiq{background-color:var(--colorBrandBackground);}}"],m:[["@media (forced-colors: active){.fe2ae1k{background-color:CanvasText;}}",{m:"(forced-colors: active)"}]]}),Kte=e=>{"use no memo";const t=Yte(),{appearance:n,isSelected:r}=e,o=r?t.rootBrand:t.rootBrandUnselected;return e.root.className=G(Gte.root,t.root,r?t.rootSelected:t.rootUnselected,n==="brand"&&o,e.root.className),e},pM=g.forwardRef((e,t)=>{const n=_te(e,t);return Kte(n),Xte(n)});pM.displayName="TeachingPopoverCarouselNavButton";const Jte=(e,t)=>n6(e,t),Qte={root:"fui-TeachingPopoverSurface"},$te=$({root:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f23zza1",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1kijzfu",a9b677:"f1dxqujg",B7ck84d:"f1e4lqlz"}},{d:[[".f23zza1{padding:var(--spacingVerticalL) var(--spacingVerticalL);}",{p:-1}],[".f1kijzfu{border-radius:var(--borderRadiusXLarge);}",{p:-1}],".f1dxqujg{width:288px;}",".f1e4lqlz{box-sizing:content-box;}"]}),ene=e=>{"use no memo";const t=$te();return e.root.className=G(Qte.root,t.root,e.root.className),i6(e)},tne=e=>o6(e),gM=g.forwardRef((e,t)=>{const n=Jte(e,t);return ene(n),Ye("useTeachingPopoverSurfaceStyles_unstable")(n),tne(n)});gM.displayName="TeachingPopoverSurface";const nne=bq(FV,Tk),rne=(e,t)=>{const{dismissButton:n}=e,r=Ht(s=>s.setOpen),o=Ht(s=>s.triggerRef),i=Ht(s=>s.appearance),a=fe(s=>{s.defaultPrevented||r(s,!1),o.current&&o.current.focus()});return{appearance:i,components:{root:"h2",dismissButton:"button"},root:be(ze("h2",{ref:t,...e}),{elementType:"h2"}),dismissButton:Te(n,{renderByDefault:!1,defaultProps:{children:g.createElement(nne,null),onClick:a,"aria-label":"dismiss","aria-hidden":!0},elementType:"button"})}},one=e=>ut(e.root,{children:[e.root.children,e.dismissButton&&Q(e.dismissButton,{})]}),c3={root:"fui-TeachingPopoverTitle",dismissButton:"fui-TeachingPopoverTitle__dismissButton"},ine=$({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Brf1p80:"f1869bpl",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",sj55zd:"f19n0e5",Bg96gwp:"faaz57k",Byoj8tv:"f5b47ha",B6of3ja:"f1jkagg5",jrapky:"fi2ljxd"},rootBrand:{sj55zd:"f1phragk"},dismissButton:{qhf8xq:"f10pi13n",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:["f1n71otn","f1deefiw"],Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f88035w",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bceei9c:"f1k6fduh",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",De3pzq:"f1c21dwh",B7ck84d:"f1ewtqcl",B7oj6ja:["f3fg2lr","f13av6d4"],Bbmb7ep:["fzi6hpg","fyowgf4"],Bfpq7zp:0,g9k6zt:0,Bn4voq9:0,giviqs:"f89hs3r",Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f2krc9w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Jyy4pa:"f1lfeew"},dismissBrand:{sj55zd:"f1phragk"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".f1869bpl{justify-content:space-between;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1jkagg5{margin-top:var(--spacingHorizontalNone);}",".fi2ljxd{margin-bottom:var(--spacingHorizontalNone);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".f10pi13n{position:relative;}",[".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}",{p:-2}],".f122n59{align-items:center;}",".f1k6fduh{cursor:pointer;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1ewtqcl{box-sizing:border-box;}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",[".f89hs3r[data-fui-focus-visible]{outline:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-1}],[".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".f1lfeew{-webkit-margin-start:auto;margin-inline-start:auto;}"]}),ane=e=>{"use no memo";const t=ine(),{appearance:n}=e;return e.root.className=G(c3.root,t.root,n==="brand"&&t.rootBrand,e.root.className),e.dismissButton&&(e.dismissButton.className=G(c3.dismissButton,t.dismissButton,n==="brand"?t.dismissBrand:void 0,e.dismissButton.className)),e},hM=g.forwardRef((e,t)=>{const n=rne(e,t);return ane(n),Ye("useTeachingPopoverTitleStyles_unstable")(n),one(n)});hM.displayName="TeachingPopoverTitle";const sne=e=>{const t=s6(e);var n,r;return{...t,withArrow:(n=e.withArrow)!==null&&n!==void 0?n:!0,trapFocus:(r=e.trapFocus)!==null&&r!==void 0?r:!0}},cne=c6,bM=e=>{const t=sne(e);return cne(t)};bM.displayName="TeachingPopover";function Wr(e){return un({tag:"svg",attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8c-0.020-1.045-0.247-2.086-0.665-3.038-0.417-0.953-1.023-1.817-1.766-2.53s-1.624-1.278-2.578-1.651c-0.953-0.374-1.978-0.552-2.991-0.531-1.013 0.020-2.021 0.24-2.943 0.646-0.923 0.405-1.758 0.992-2.449 1.712s-1.237 1.574-1.597 2.497c-0.361 0.923-0.533 1.914-0.512 2.895 0.020 0.981 0.234 1.955 0.627 2.847 0.392 0.892 0.961 1.7 1.658 2.368s1.523 1.195 2.416 1.543c0.892 0.348 1.851 0.514 2.799 0.493 0.949-0.020 1.89-0.227 2.751-0.608 0.862-0.379 1.642-0.929 2.287-1.604s1.154-1.472 1.488-2.335c0.204-0.523 0.342-1.069 0.415-1.622 0.019 0.001 0.039 0.002 0.059 0.002 0.552 0 1-0.448 1-1 0-0.028-0.001-0.056-0.004-0.083h0.004zM14.411 10.655c-0.367 0.831-0.898 1.584-1.55 2.206s-1.422 1.112-2.254 1.434c-0.832 0.323-1.723 0.476-2.608 0.454-0.884-0.020-1.759-0.215-2.56-0.57-0.801-0.354-1.526-0.867-2.125-1.495s-1.071-1.371-1.38-2.173c-0.31-0.801-0.457-1.66-0.435-2.512s0.208-1.694 0.551-2.464c0.342-0.77 0.836-1.468 1.441-2.044s1.321-1.029 2.092-1.326c0.771-0.298 1.596-0.438 2.416-0.416s1.629 0.202 2.368 0.532c0.74 0.329 1.41 0.805 1.963 1.387s0.988 1.27 1.272 2.011c0.285 0.74 0.418 1.532 0.397 2.32h0.004c-0.002 0.027-0.004 0.055-0.004 0.083 0 0.516 0.39 0.94 0.892 0.994-0.097 0.544-0.258 1.075-0.481 1.578z"}}]})(e)}function yM(e){return un({tag:"svg",attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M13.5 2l-7.5 7.5-3.5-3.5-2.5 2.5 6 6 10-10z"}}]})(e)}const lne=[{hostNameSegment:"localhost",label:"Localhost"},{hostNameSegment:"127",label:"Localhost"},{hostNameSegment:"dev",label:"Development"},{hostNameSegment:"stg",label:"Staging"},{hostNameSegment:"uat",label:"UAT"},{hostNameSegment:"temp",label:"Temp"}],Li=window.location.hostname==="portal.bistech.co.uk",dne=()=>{const e=lne.find(t=>window.location.hostname.includes(t.hostNameSegment));return e?u.jsx("div",{className:"environment-banner","data-environment-id":e.hostNameSegment,children:e.label}):null},$h=()=>{var f;const e=dn(),t=ve(m=>m.latestErrors),n=ve(m=>m.notifications),r=ve(m=>m.currentPage),o=ve(m=>m.dirtyBannerSettings),[i,a]=g.useState((o==null?void 0:o.type)==="showAlreadySaving"?o.initialSubmissionStatus:{state:"idle"}),s=n.filter(m=>new Date!m.isValid()),A=g.useMemo(()=>{const m=t.length>0?t.filter((y,b)=>bu.jsx(cf,{intent:"error",children:u.jsx(lf,{style:{overflow:"hidden",textOverflow:"ellipsis"},children:y.message})},b)):[],v=s.length>0?s.filter((y,b)=>bu.jsx(cf,{intent:"success",children:u.jsxs(lf,{className:"notification",style:{overflow:"hidden",textOverflow:"ellipsis"},children:[y.message,u.jsx("button",{className:"dismiss-button",onClick:()=>e({type:"RemoveNotification",id:y.id}),children:"x"})]})},b)):[],p=o?u.jsx(cf,{intent:"warning",children:u.jsxs(lf,{style:{overflow:"hidden",textOverflow:"ellipsis"},children:["There are unsaved changes.",d!=null&&d.length?u.jsx("span",{className:"invalid-prerequisites",style:{marginLeft:"1em"},children:d[0].customerMessage}):i.state==="idle"&&o.type==="showSaveButton"?u.jsxs(u.Fragment,{children:[" ",u.jsx("a",{href:"#",onClick:async()=>{a({state:"submitting"});try{await o.saveFunction(),e({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0})}catch(y){e({type:"AddLatestError",error:y})}finally{a({state:"idle"})}},children:"Click here to save."})]}):u.jsx("div",{style:{display:"flex",alignItems:"center"},children:u.jsx(Wr,{className:"spin",style:{marginLeft:"1em"}})})]})},1):void 0;return[...m,p,...v].filter(y=>y)},[o,t.length,s.length,i]);return u.jsx("div",{"data-has-banner":!Li,children:u.jsx(iM,{animate:"both",children:A})})},l3=()=>window.innerWidth,mi=()=>{const[e,t]=g.useState(l3());return g.useEffect(()=>{const n=()=>{t(l3())};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),e},vi=()=>u.jsxs("p",{className:"loading-spinner",children:[u.jsx(Wr,{className:"spin"})," Loading"]}),Lr=e=>{const n=mi();return u.jsxs(u.Fragment,{children:[u.jsx($h,{}),u.jsxs("div",{className:"page-content is-mobile-width","data-is-production":Li,style:n<1025?{paddingTop:"1em"}:{},children:[u.jsx(rt,{children:u.jsx(uk,{isLoading:!1})}),u.jsx("div",{className:"base-page-header",children:u.jsx("h1",{children:e.title})}),u.jsx(rt,{children:e.children})]})]})},bl=()=>{const t=mi();return u.jsxs(u.Fragment,{children:[u.jsx($h,{}),u.jsxs("div",{className:"page-content is-mobile-width","data-is-production":Li,style:t<1025?{paddingTop:"1em"}:{},children:[u.jsx(rt,{children:u.jsx(uk,{isLoading:!0})}),u.jsx("div",{className:"base-page-header",children:u.jsx("h1",{})}),u.jsx(rt,{children:u.jsx(vi,{})})]})]})};class Pe{static toDateString(t){return new Date(t).toLocaleString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}static newDateFromDateOnly(t){return new Date(parseInt(t.split("/")[2]),parseInt(t.split("/")[1])-1,parseInt(t.split("/")[0]))}static getMidnightToday(){const t=new Date().toISOString().split("T")[0];return new Date(t)}static getMidnightTomorrow(){const t=Pe.getMidnightToday();return t.setDate(t.getDate()+1),t}static toDateOnlyString(t){return new Date(t).toLocaleString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric"})}static toTimeOnlyString(t){return new Date(t).toLocaleString("en-GB",{hour:"2-digit",minute:"2-digit"})}static addSeconds(t,n){return new Date(Number(t)+1e3*n)}}function F0(e){return un({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"}}]})(e)}function une(e){return un({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"}}]})(e)}function Ane(e){return un({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"}}]})(e)}function wM(e){return un({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"}}]})(e)}function fne(e){return un({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"}}]})(e)}function mne(e){return un({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"}}]})(e)}function im(e){return un({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"}}]})(e)}function vne(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.496 6.033h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286a.237.237 0 0 0 .241.247zm2.325 6.443c.61 0 1.029-.394 1.029-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94 0 .533.425.927 1.01.927z"}}]})(e)}function Ws(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 0a1 1 0 0 1 1 1v5.268l4.562-2.634a1 1 0 1 1 1 1.732L10 8l4.562 2.634a1 1 0 1 1-1 1.732L9 9.732V15a1 1 0 1 1-2 0V9.732l-4.562 2.634a1 1 0 1 1-1-1.732L6 8 1.438 5.366a1 1 0 0 1 1-1.732L7 6.268V1a1 1 0 0 1 1-1z"}}]})(e)}function $m(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M13.485 1.431a1.473 1.473 0 0 1 2.104 2.062l-7.84 9.801a1.473 1.473 0 0 1-2.12.04L.431 8.138a1.473 1.473 0 0 1 2.084-2.083l4.111 4.112 6.82-8.69a.486.486 0 0 1 .04-.045z"}}]})(e)}function pne(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"}}]})(e)}function gne(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"}}]})(e)}function hne(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293V2.5zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z"}}]})(e)}function bne(e){return un({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M3.5 12.5a.5.5 0 0 1-1 0V3.707L1.354 4.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.498.498 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 3.707V12.5zm3.5-9a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z"}}]})(e)}const tc=e=>u.jsxs("div",{className:"tooltip",children:[u.jsx(vne,{className:"tooltip-icon"}),u.jsx("div",{className:"tooltip-content",children:u.jsx(rt,{children:e.overlayContent})})]});function d3(e){return typeof e=="object"&&e!=null&&e.nodeType===1}function u3(e,t){return(!t||e!=="hidden")&&e!=="visible"&&e!=="clip"}function p1(e,t){if(e.clientHeightt||i>e&&a=t&&s>=n?i-e-r:a>t&&sn?a-t+o:0}var yne=function(e,t){var n=window,r=t.scrollMode,o=t.block,i=t.inline,a=t.boundary,s=t.skipOverflowHiddenElements,c=typeof a=="function"?a:function(xe){return xe!==a};if(!d3(e))throw new TypeError("Invalid target");for(var l,d,A=document.scrollingElement||document.documentElement,f=[],m=e;d3(m)&&c(m);){if((m=(d=(l=m).parentElement)==null?l.getRootNode().host||null:d)===A){f.push(m);break}m!=null&&m===document.body&&p1(m)&&!p1(document.documentElement)||m!=null&&p1(m,s)&&f.push(m)}for(var v=n.visualViewport?n.visualViewport.width:innerWidth,p=n.visualViewport?n.visualViewport.height:innerHeight,y=window.scrollX||pageXOffset,b=window.scrollY||pageYOffset,h=e.getBoundingClientRect(),w=h.height,x=h.width,k=h.top,S=h.right,N=h.bottom,C=h.left,M=o==="start"||o==="nearest"?k:o==="end"?N:k+w/2,j=i==="center"?C+x/2:i==="end"?S:C,T=[],F=0;F=0&&C>=0&&N<=p&&S<=v&&k>=Y&&N<=E&&C>=D&&S<=I)return T;var W=getComputedStyle(H),z=parseInt(W.borderLeftWidth,10),L=parseInt(W.borderTopWidth,10),q=parseInt(W.borderRightWidth,10),P=parseInt(W.borderBottomWidth,10),U=0,B=0,K="offsetWidth"in H?H.offsetWidth-H.clientWidth-z-q:0,te="offsetHeight"in H?H.offsetHeight-H.clientHeight-L-P:0,Ae="offsetWidth"in H?H.offsetWidth===0?0:_/H.offsetWidth:0,ae="offsetHeight"in H?H.offsetHeight===0?0:O/H.offsetHeight:0;if(A===H)U=o==="start"?M:o==="end"?M-p:o==="nearest"?O0(b,b+p,p,L,P,b+M,b+M+w,w):M-p/2,B=i==="start"?j:i==="center"?j-v/2:i==="end"?j-v:O0(y,y+v,v,z,q,y+j,y+j+x,x),U=Math.max(0,U+b),B=Math.max(0,B+y);else{U=o==="start"?M-Y-L:o==="end"?M-E+P+te:o==="nearest"?O0(Y,E,O,L,P+te,M,M+w,w):M-(Y+O/2)+te/2,B=i==="start"?j-D-z:i==="center"?j-(D+_/2)+K/2:i==="end"?j-I+q+K:O0(D,I,_,z,q+K,j,j+x,x);var Ne=H.scrollLeft,oe=H.scrollTop;M+=oe-(U=Math.max(0,Math.min(oe+U/ae,H.scrollHeight-O/ae+te))),j+=Ne-(B=Math.max(0,Math.min(Ne+B/Ae,H.scrollWidth-_/Ae+K)))}T.push({el:H,top:U,left:B})}return T},ng=function(){return ng=Object.assign||function(t){for(var n,r=1,o=arguments.length;r{let{el:o,top:i,left:a}=r;o.scrollTop=i,o.scrollLeft=a})}function f3(e,t,n){return e===t||t instanceof n.Node&&e.contains&&e.contains(t)}function rS(e,t){let n;function r(){n&&clearTimeout(n)}function o(){for(var i=arguments.length,a=new Array(i),s=0;s{n=null,e(...a)},t)}return o.cancel=r,o}function hi(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),a=1;a(s&&s(r,...i),r.preventDownshiftDefault||r.hasOwnProperty("nativeEvent")&&r.nativeEvent.preventDownshiftDefault))}}function m3(){for(var e=arguments.length,t=new Array(e),n=0;n{t.forEach(o=>{typeof o=="function"?o(r):o&&(o.current=r)})}}function xne(){return String(wne++)}function kM(e){let{isOpen:t,resultCount:n,previousResultCount:r}=e;return t?n?n!==r?`${n} result${n===1?" is":"s are"} available, use up and down arrow keys to navigate. Press Enter key to select.`:"":"No results are available.":""}function v3(e,t){return e=Array.isArray(e)?e[0]:e,!e&&t?t:e}function kne(e){return typeof e.type=="string"}function Sne(e){return e.props}const jne=["highlightedIndex","inputValue","isOpen","selectedItem","type"];function L0(e){e===void 0&&(e={});const t={};return jne.forEach(n=>{e.hasOwnProperty(n)&&(t[n]=e[n])}),t}function Nne(e,t){return Object.keys(e).reduce((n,r)=>(n[r]=Ww(t,r)?t[r]:e[r],n),{})}function Ww(e,t){return e[t]!==void 0}function p3(e){const{key:t,keyCode:n}=e;return n>=37&&n<=40&&t.indexOf("Arrow")!==0?`Arrow${t}`:t}function g1(e,t,n,r,o){if(o===void 0&&(o=!0),n===0)return-1;const i=n-1;(typeof t!="number"||t<0||t>=n)&&(t=e>0?-1:i+1);let a=t+e;a<0?a=o?i:0:a>i&&(a=o?0:i);const s=am(e,a,n,r,o);return s===-1?t>=n?-1:t:s}function am(e,t,n,r,o){const i=r(t);if(!i||!i.hasAttribute("disabled"))return t;if(e>0){for(let a=t+1;a=0;a--)if(!r(a).hasAttribute("disabled"))return a;return o?e>0?am(1,0,n,r,!1):am(-1,n-1,n,r,!1):-1}function g3(e,t,n,r){return r===void 0&&(r=!0),t.some(o=>o&&(f3(o,e,n)||r&&f3(o,n.document.activeElement,n)))}const Cne=rS(e=>{jM(e).textContent=""},500);function SM(e,t){const n=jM(t);e&&(n.textContent=e,Cne(t))}function jM(e){e===void 0&&(e=document);let t=e.getElementById("a11y-status-message");return t||(t=e.createElement("div"),t.setAttribute("id","a11y-status-message"),t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.setAttribute("aria-relevant","additions text"),Object.assign(t.style,{border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",width:"1px"}),e.body.appendChild(t),t)}const NM=0,CM=1,TM=2,Zv=3,Vv=4,IM=5,PM=6,DM=7,MM=8,RM=9,zM=10,EM=11,BM=12,FM=13,OM=14,LM=15,WM=16;var Tne=Object.freeze({__proto__:null,unknown:NM,mouseUp:CM,itemMouseEnter:TM,keyDownArrowUp:Zv,keyDownArrowDown:Vv,keyDownEscape:IM,keyDownEnter:PM,keyDownHome:DM,keyDownEnd:MM,clickItem:RM,blurInput:zM,changeInput:EM,keyDownSpaceButton:BM,clickButton:FM,blurButton:OM,controlledPropUpdatedSelectedItem:LM,touchEnd:WM});const Ine=(()=>{class e extends g.Component{constructor(n){var r;super(n),r=this,this.id=this.props.id||`downshift-${xne()}`,this.menuId=this.props.menuId||`${this.id}-menu`,this.labelId=this.props.labelId||`${this.id}-label`,this.inputId=this.props.inputId||`${this.id}-input`,this.getItemId=this.props.getItemId||(A=>`${this.id}-item-${A}`),this.input=null,this.items=[],this.itemCount=null,this.previousResultCount=0,this.timeoutIds=[],this.internalSetTimeout=(A,f)=>{const m=setTimeout(()=>{this.timeoutIds=this.timeoutIds.filter(v=>v!==m),A()},f);this.timeoutIds.push(m)},this.setItemCount=A=>{this.itemCount=A},this.unsetItemCount=()=>{this.itemCount=null},this.setHighlightedIndex=function(A,f){A===void 0&&(A=r.props.defaultHighlightedIndex),f===void 0&&(f={}),f=L0(f),r.internalSetState({highlightedIndex:A,...f})},this.clearSelection=A=>{this.internalSetState({selectedItem:null,inputValue:"",highlightedIndex:this.props.defaultHighlightedIndex,isOpen:this.props.defaultIsOpen},A)},this.selectItem=(A,f,m)=>{f=L0(f),this.internalSetState({isOpen:this.props.defaultIsOpen,highlightedIndex:this.props.defaultHighlightedIndex,selectedItem:A,inputValue:this.props.itemToString(A),...f},m)},this.selectItemAtIndex=(A,f,m)=>{const v=this.items[A];v!=null&&this.selectItem(v,f,m)},this.selectHighlightedItem=(A,f)=>this.selectItemAtIndex(this.getState().highlightedIndex,A,f),this.internalSetState=(A,f)=>{let m,v;const p={},y=typeof A=="function";return!y&&A.hasOwnProperty("inputValue")&&this.props.onInputValueChange(A.inputValue,{...this.getStateAndHelpers(),...A}),this.setState(b=>{b=this.getState(b);let h=y?A(b):A;h=this.props.stateReducer(b,h),m=h.hasOwnProperty("selectedItem");const w={};return m&&h.selectedItem!==b.selectedItem&&(v=h.selectedItem),h.type=h.type||NM,Object.keys(h).forEach(x=>{b[x]!==h[x]&&(p[x]=h[x]),x!=="type"&&(h[x],Ww(this.props,x)||(w[x]=h[x]))}),y&&h.hasOwnProperty("inputValue")&&this.props.onInputValueChange(h.inputValue,{...this.getStateAndHelpers(),...h}),w},()=>{A3(f)(),Object.keys(p).length>1&&this.props.onStateChange(p,this.getStateAndHelpers()),m&&this.props.onSelect(A.selectedItem,this.getStateAndHelpers()),v!==void 0&&this.props.onChange(v,this.getStateAndHelpers()),this.props.onUserAction(p,this.getStateAndHelpers())})},this.rootRef=A=>this._rootNode=A,this.getRootProps=function(A,f){let{refKey:m="ref",ref:v,...p}=A===void 0?{}:A,{suppressRefError:y=!1}=f===void 0?{}:f;r.getRootProps.called=!0,r.getRootProps.refKey=m,r.getRootProps.suppressRefError=y;const{isOpen:b}=r.getState();return{[m]:m3(v,r.rootRef),role:"combobox","aria-expanded":b,"aria-haspopup":"listbox","aria-owns":b?r.menuId:null,"aria-labelledby":r.labelId,...p}},this.keyDownHandlers={ArrowDown(A){if(A.preventDefault(),this.getState().isOpen){const f=A.shiftKey?5:1;this.moveHighlightedIndex(f,{type:Vv})}else this.internalSetState({isOpen:!0,type:Vv},()=>{const f=this.getItemCount();if(f>0){const{highlightedIndex:m}=this.getState(),v=g1(1,m,f,p=>this.getItemNodeFromIndex(p));this.setHighlightedIndex(v,{type:Vv})}})},ArrowUp(A){if(A.preventDefault(),this.getState().isOpen){const f=A.shiftKey?-5:-1;this.moveHighlightedIndex(f,{type:Zv})}else this.internalSetState({isOpen:!0,type:Zv},()=>{const f=this.getItemCount();if(f>0){const{highlightedIndex:m}=this.getState(),v=g1(-1,m,f,p=>this.getItemNodeFromIndex(p));this.setHighlightedIndex(v,{type:Zv})}})},Enter(A){if(A.which===229)return;const{isOpen:f,highlightedIndex:m}=this.getState();if(f&&m!=null){A.preventDefault();const v=this.items[m],p=this.getItemNodeFromIndex(m);if(v==null||p&&p.hasAttribute("disabled"))return;this.selectHighlightedItem({type:PM})}},Escape(A){A.preventDefault(),this.reset({type:IM,...!this.state.isOpen&&{selectedItem:null,inputValue:""}})}},this.buttonKeyDownHandlers={...this.keyDownHandlers," "(A){A.preventDefault(),this.toggleMenu({type:BM})}},this.inputKeyDownHandlers={...this.keyDownHandlers,Home(A){const{isOpen:f}=this.getState();if(!f)return;A.preventDefault();const m=this.getItemCount();if(m<=0||!f)return;const v=am(1,0,m,p=>this.getItemNodeFromIndex(p),!1);this.setHighlightedIndex(v,{type:DM})},End(A){const{isOpen:f}=this.getState();if(!f)return;A.preventDefault();const m=this.getItemCount();if(m<=0||!f)return;const v=am(-1,m-1,m,p=>this.getItemNodeFromIndex(p),!1);this.setHighlightedIndex(v,{type:MM})}},this.getToggleButtonProps=function(A){let{onClick:f,onPress:m,onKeyDown:v,onKeyUp:p,onBlur:y,...b}=A===void 0?{}:A;const{isOpen:h}=r.getState(),w={onClick:hi(f,r.buttonHandleClick),onKeyDown:hi(v,r.buttonHandleKeyDown),onKeyUp:hi(p,r.buttonHandleKeyUp),onBlur:hi(y,r.buttonHandleBlur)},x=b.disabled?{}:w;return{type:"button",role:"button","aria-label":h?"close menu":"open menu","aria-haspopup":!0,"data-toggle":!0,...x,...b}},this.buttonHandleKeyUp=A=>{A.preventDefault()},this.buttonHandleKeyDown=A=>{const f=p3(A);this.buttonKeyDownHandlers[f]&&this.buttonKeyDownHandlers[f].call(this,A)},this.buttonHandleClick=A=>{A.preventDefault(),this.props.environment.document.activeElement===this.props.environment.document.body&&A.target.focus(),this.internalSetTimeout(()=>this.toggleMenu({type:FM}))},this.buttonHandleBlur=A=>{const f=A.target;this.internalSetTimeout(()=>{!this.isMouseDown&&(this.props.environment.document.activeElement==null||this.props.environment.document.activeElement.id!==this.inputId)&&this.props.environment.document.activeElement!==f&&this.reset({type:OM})})},this.getLabelProps=A=>({htmlFor:this.inputId,id:this.labelId,...A}),this.getInputProps=function(A){let{onKeyDown:f,onBlur:m,onChange:v,onInput:p,onChangeText:y,...b}=A===void 0?{}:A,h,w={};h="onChange";const{inputValue:x,isOpen:k,highlightedIndex:S}=r.getState();return b.disabled||(w={[h]:hi(v,p,r.inputHandleChange),onKeyDown:hi(f,r.inputHandleKeyDown),onBlur:hi(m,r.inputHandleBlur)}),{"aria-autocomplete":"list","aria-activedescendant":k&&typeof S=="number"&&S>=0?r.getItemId(S):null,"aria-controls":k?r.menuId:null,"aria-labelledby":r.labelId,autoComplete:"off",value:x,id:r.inputId,...w,...b}},this.inputHandleKeyDown=A=>{const f=p3(A);f&&this.inputKeyDownHandlers[f]&&this.inputKeyDownHandlers[f].call(this,A)},this.inputHandleChange=A=>{this.internalSetState({type:EM,isOpen:!0,inputValue:A.target.value,highlightedIndex:this.props.defaultHighlightedIndex})},this.inputHandleBlur=()=>{this.internalSetTimeout(()=>{const A=this.props.environment.document&&!!this.props.environment.document.activeElement&&!!this.props.environment.document.activeElement.dataset&&this.props.environment.document.activeElement.dataset.toggle&&this._rootNode&&this._rootNode.contains(this.props.environment.document.activeElement);!this.isMouseDown&&!A&&this.reset({type:zM})})},this.menuRef=A=>{this._menuNode=A},this.getMenuProps=function(A,f){let{refKey:m="ref",ref:v,...p}=A===void 0?{}:A,{suppressRefError:y=!1}=f===void 0?{}:f;return r.getMenuProps.called=!0,r.getMenuProps.refKey=m,r.getMenuProps.suppressRefError=y,{[m]:m3(v,r.menuRef),role:"listbox","aria-labelledby":p&&p["aria-label"]?null:r.labelId,id:r.menuId,...p}},this.getItemProps=function(A){let{onMouseMove:f,onMouseDown:m,onClick:v,onPress:p,index:y,item:b=void 0,...h}=A===void 0?{}:A;y===void 0?(r.items.push(b),y=r.items.indexOf(b)):r.items[y]=b;const w="onClick",x=v,k={onMouseMove:hi(f,()=>{y!==r.getState().highlightedIndex&&(r.setHighlightedIndex(y,{type:TM}),r.avoidScrolling=!0,r.internalSetTimeout(()=>r.avoidScrolling=!1,250))}),onMouseDown:hi(m,N=>{N.preventDefault()}),[w]:hi(x,()=>{r.selectItemAtIndex(y,{type:RM})})},S=h.disabled?{onMouseDown:k.onMouseDown}:k;return{id:r.getItemId(y),role:"option","aria-selected":r.getState().highlightedIndex===y,...S,...h}},this.clearItems=()=>{this.items=[]},this.reset=function(A,f){A===void 0&&(A={}),A=L0(A),r.internalSetState(m=>{let{selectedItem:v}=m;return{isOpen:r.props.defaultIsOpen,highlightedIndex:r.props.defaultHighlightedIndex,inputValue:r.props.itemToString(v),...A}},f)},this.toggleMenu=function(A,f){A===void 0&&(A={}),A=L0(A),r.internalSetState(m=>{let{isOpen:v}=m;return{isOpen:!v,...v&&{highlightedIndex:r.props.defaultHighlightedIndex},...A}},()=>{const{isOpen:m,highlightedIndex:v}=r.getState();m&&r.getItemCount()>0&&typeof v=="number"&&r.setHighlightedIndex(v,A),A3(f)()})},this.openMenu=A=>{this.internalSetState({isOpen:!0},A)},this.closeMenu=A=>{this.internalSetState({isOpen:!1},A)},this.updateStatus=rS(()=>{const A=this.getState(),f=this.items[A.highlightedIndex],m=this.getItemCount(),v=this.props.getA11yStatusMessage({itemToString:this.props.itemToString,previousResultCount:this.previousResultCount,resultCount:m,highlightedItem:f,...A});this.previousResultCount=m,SM(v,this.props.environment.document)},200);const{defaultHighlightedIndex:o,initialHighlightedIndex:i=o,defaultIsOpen:a,initialIsOpen:s=a,initialInputValue:c="",initialSelectedItem:l=null}=this.props,d=this.getState({highlightedIndex:i,isOpen:s,inputValue:c,selectedItem:l});d.selectedItem!=null&&this.props.initialInputValue===void 0&&(d.inputValue=this.props.itemToString(d.selectedItem)),this.state=d}internalClearTimeouts(){this.timeoutIds.forEach(n=>{clearTimeout(n)}),this.timeoutIds=[]}getState(n){return n===void 0&&(n=this.state),Nne(n,this.props)}getItemCount(){let n=this.items.length;return this.itemCount!=null?n=this.itemCount:this.props.itemCount!==void 0&&(n=this.props.itemCount),n}getItemNodeFromIndex(n){return this.props.environment.document.getElementById(this.getItemId(n))}scrollHighlightedItemIntoView(){{const n=this.getItemNodeFromIndex(this.getState().highlightedIndex);this.props.scrollIntoView(n,this._menuNode)}}moveHighlightedIndex(n,r){const o=this.getItemCount(),{highlightedIndex:i}=this.getState();if(o>0){const a=g1(n,i,o,s=>this.getItemNodeFromIndex(s));this.setHighlightedIndex(a,r)}}getStateAndHelpers(){const{highlightedIndex:n,inputValue:r,selectedItem:o,isOpen:i}=this.getState(),{itemToString:a}=this.props,{id:s}=this,{getRootProps:c,getToggleButtonProps:l,getLabelProps:d,getMenuProps:A,getInputProps:f,getItemProps:m,openMenu:v,closeMenu:p,toggleMenu:y,selectItem:b,selectItemAtIndex:h,selectHighlightedItem:w,setHighlightedIndex:x,clearSelection:k,clearItems:S,reset:N,setItemCount:C,unsetItemCount:M,internalSetState:j}=this;return{getRootProps:c,getToggleButtonProps:l,getLabelProps:d,getMenuProps:A,getInputProps:f,getItemProps:m,reset:N,openMenu:v,closeMenu:p,toggleMenu:y,selectItem:b,selectItemAtIndex:h,selectHighlightedItem:w,setHighlightedIndex:x,clearSelection:k,clearItems:S,setItemCount:C,unsetItemCount:M,setState:j,itemToString:a,id:s,highlightedIndex:n,inputValue:r,isOpen:i,selectedItem:o}}componentDidMount(){{const n=()=>{this.isMouseDown=!0},r=c=>{this.isMouseDown=!1,!g3(c.target,[this._rootNode,this._menuNode],this.props.environment)&&this.getState().isOpen&&this.reset({type:CM},()=>this.props.onOuterClick(this.getStateAndHelpers()))},o=()=>{this.isTouchMove=!1},i=()=>{this.isTouchMove=!0},a=c=>{const l=g3(c.target,[this._rootNode,this._menuNode],this.props.environment,!1);!this.isTouchMove&&!l&&this.getState().isOpen&&this.reset({type:WM},()=>this.props.onOuterClick(this.getStateAndHelpers()))},{environment:s}=this.props;s.addEventListener("mousedown",n),s.addEventListener("mouseup",r),s.addEventListener("touchstart",o),s.addEventListener("touchmove",i),s.addEventListener("touchend",a),this.cleanup=()=>{this.internalClearTimeouts(),this.updateStatus.cancel(),s.removeEventListener("mousedown",n),s.removeEventListener("mouseup",r),s.removeEventListener("touchstart",o),s.removeEventListener("touchmove",i),s.removeEventListener("touchend",a)}}}shouldScroll(n,r){const{highlightedIndex:o}=this.props.highlightedIndex===void 0?this.getState():this.props,{highlightedIndex:i}=r.highlightedIndex===void 0?n:r;return o&&this.getState().isOpen&&!n.isOpen||o!==i}componentDidUpdate(n,r){Ww(this.props,"selectedItem")&&this.props.selectedItemChanged(n.selectedItem,this.props.selectedItem)&&this.internalSetState({type:LM,inputValue:this.props.itemToString(this.props.selectedItem)}),!this.avoidScrolling&&this.shouldScroll(r,n)&&this.scrollHighlightedItemIntoView(),this.updateStatus()}componentWillUnmount(){this.cleanup()}render(){const n=v3(this.props.children,Va);this.clearItems(),this.getRootProps.called=!1,this.getRootProps.refKey=void 0,this.getRootProps.suppressRefError=void 0,this.getMenuProps.called=!1,this.getMenuProps.refKey=void 0,this.getMenuProps.suppressRefError=void 0,this.getLabelProps.called=!1,this.getInputProps.called=!1;const r=v3(n(this.getStateAndHelpers()));if(!r)return null;if(this.getRootProps.called||this.props.suppressRefError)return r;if(kne(r))return g.cloneElement(r,this.getRootProps(Sne(r)))}}return e.defaultProps={defaultHighlightedIndex:null,defaultIsOpen:!1,getA11yStatusMessage:kM,itemToString:t=>t==null?"":String(t),onStateChange:Va,onInputValueChange:Va,onUserAction:Va,onChange:Va,onSelect:Va,onOuterClick:Va,selectedItemChanged:(t,n)=>t!==n,environment:typeof window>"u"?{}:window,stateReducer:(t,n)=>n,suppressRefError:!1,scrollIntoView:xM},e.stateChangeTypes=Tne,e})();var Pne=Ine;function Dne(e,t){return t.changes}function Mne(e){const{selectedItem:t,itemToString:n}=e;return t?`${n(t)} has been selected.`:""}rS((e,t)=>{SM(e(),t)},200);function Rne(e){return e?String(e):""}const df={itemToString:Rne,stateReducer:Dne,getA11ySelectionMessage:Mne,scrollIntoView:xM,environment:typeof window>"u"?{}:window};me.array.isRequired,me.func,me.func,me.func,me.number,me.number,me.number,me.bool,me.bool,me.bool,me.any,me.any,me.any,me.string,me.string,me.string,me.func,me.string,me.func,me.func,me.func,me.func,me.func,me.shape({addEventListener:me.func,removeEventListener:me.func,document:me.shape({getElementById:me.func,activeElement:me.any,body:me.any})});function zne(e){var t=e.isOpen,n=e.resultCount,r=e.previousResultCount;return t?n?n!==r?"".concat(n," result").concat(n===1?" is":"s are"," available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select."):"":"No results are available.":""}ng(ng({},df),{getA11yStatusMessage:zne});me.array.isRequired,me.func,me.func,me.func,me.number,me.number,me.number,me.bool,me.bool,me.bool,me.any,me.any,me.any,me.string,me.string,me.string,me.string,me.string,me.string,me.func,me.string,me.string,me.func,me.func,me.func,me.func,me.func,me.func,me.shape({addEventListener:me.func,removeEventListener:me.func,document:me.shape({getElementById:me.func,activeElement:me.any,body:me.any})});({...df});function Ene(e){const{removedSelectedItem:t,itemToString:n}=e;return`${n(t)} has been removed.`}me.array,me.array,me.array,me.func,me.func,me.func,me.number,me.number,me.number,me.func,me.func,me.string,me.string,me.shape({addEventListener:me.func,removeEventListener:me.func,document:me.shape({getElementById:me.func,activeElement:me.any,body:me.any})});df.itemToString,df.stateReducer,df.environment;const nc=function(t){var v,p,y,b,h;const n=g.useRef(null),r=g.useRef(null);t.customValidity!==void 0&&((v=n.current)==null||v.setCustomValidity(t.customValidity(n.current.validity)));const o={...t.additionalInputProps,required:((p=t.additionalInputProps)==null?void 0:p.required)??!0,autoComplete:((y=t.additionalInputProps)==null?void 0:y.autoComplete)??"off"},[i,a]=g.useState(),[s,c]=g.useState(!1),[l,d]=g.useState(!1);g.useEffect(()=>{t.selectedOptionId||a("")},[t.selectedOptionId]),g.useEffect(()=>{var w,x,k;o.required&&(t.selectedOptionId?(x=n.current)==null||x.setCustomValidity(((w=t.customValidity)==null?void 0:w.call(t,n.current.validity))||""):(k=n.current)==null||k.setCustomValidity("Please select an option"))},[o,t.selectedOptionId,n]);const A=10,f=g.useMemo(()=>{if(t.options.loadingStatus!=="loaded")return[];const w=t.options.value.filter(x=>x.isPickable);return i?w.map(x=>({option:x,matchCount:i.trim().split(" ").filter((k,S)=>S===0||k.length>=3).filter(k=>{var S,N;return((S=x.primaryText)==null?void 0:S.toLowerCase().includes(k==null?void 0:k.toLowerCase()))||((N=x.secondaryText)==null?void 0:N.toLowerCase().includes(k==null?void 0:k.toLowerCase()))}).length})).filter(({matchCount:x})=>x>0).sort((x,k)=>(x.option.primaryText||"").localeCompare(k.option.primaryText||"")).sort((x,k)=>k.matchCount-x.matchCount).map(({option:x})=>x):w.sort((x,k)=>(x.primaryText||"").localeCompare(k.primaryText||""))},[i,t.options]);g.useEffect(()=>{const w=x=>{if(document.activeElement===r.current&&!o.disabled)switch(x.key){case"Enter":case"Backspace":t.setSelectedOptionId(null),x.preventDefault(),window.setTimeout(()=>{var k;return(k=n.current)==null?void 0:k.focus()},50);break}};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[r,n,t.setSelectedOptionId]);const m=(()=>{if(!t.selectedOptionId||!t.selectedOptionCardInfo||!l)return null;if(t.options.loadingStatus!=="loaded")throw new Error("Expected `props.options.loadingStatus` to be 'loaded'");const w=t.options.value.find(k=>k.id===t.selectedOptionId);if(!w)return null;const x=t.selectedOptionCardInfo(w);return u.jsx(tD,{info:x})})();return u.jsx("label",{"data-name":t.name,className:"field lookup-field","aria-disabled":o.disabled,...t.additionalLabelProps,onFocus:()=>c(!0),onBlur:()=>c(!1),children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[t.label,!o.disabled&&o.required&&(t.selectedOptionId?u.jsx($m,{className:"completed-icon"}):u.jsx(Ws,{className:"required-icon"})),t.tooltip&&u.jsx(tc,{overlayContent:t.tooltip})," "]}),((b=n.current)==null?void 0:b.validationMessage)&&u.jsx("span",{className:"validity-message",children:(h=n.current)==null?void 0:h.validationMessage}),t.options.loadingStatus!=="loaded"?u.jsxs("span",{className:"loading-message",title:`Loading ${t.pluralOptionsName}`,children:[u.jsx(Wr,{className:"spin"})," Loading"]}):u.jsx(Pne,{onChange:w=>{w&&t.setSelectedOptionId(w.id)},selectedItem:t.options.value.find(w=>w.id===t.selectedOptionId),selectedItemChanged:()=>!1,itemToString:w=>w&&w.primaryText||"",children:({getInputProps:w,getItemProps:x,getMenuProps:k,highlightedIndex:S,isOpen:N})=>{var C;return u.jsx("div",{className:"lookup-field-control-wrapper",style:{position:t.fixedWidth!==void 0?"fixed":"relative",width:`${t.fixedWidth}px`},children:t.selectedOptionId?u.jsxs(rt,{children:[u.jsxs("span",{className:"selected-option",children:[u.jsx("span",{className:"primary-text",children:u.jsx("span",{onMouseOver:()=>d(!0),onMouseLeave:()=>d(!1),children:t.options.loadingStatus==="loaded"&&((C=t.options.value.find(M=>M.id===t.selectedOptionId))==null?void 0:C.primaryText)||"(No name)"})}),!o.disabled&&u.jsx("span",{className:"button clear-button default",onClick:()=>t.setSelectedOptionId(null),ref:r,tabIndex:0,title:"Clear",children:"x"})]}),u.jsx(rt,{children:m})]}):u.jsxs(u.Fragment,{children:[u.jsx("input",{className:"field-control",type:"text",ref:n,...w(),...o,value:i,onChange:M=>a(M.target.value)}),(N||s)&&t.options.loadingStatus==="loaded"&&u.jsxs("span",{className:"suggestions",...k(),children:[u.jsxs("span",{className:"suggestions-header",children:[u.jsx("span",{className:"suggestions-header-title",children:t.pluralOptionsName}),u.jsx("span",{className:"suggestions-header-results-message",children:f.length>A?u.jsxs(u.Fragment,{children:["Showing top ",A," results"]}):u.jsxs(u.Fragment,{children:["Found ",f.length," result",f.length===1?"":"s"]})})]}),f.length===0?u.jsxs("span",{className:"no-results-message",children:["No ",t.pluralOptionsName," found."]}):f.filter((M,j)=>ju.jsxs("span",{className:"suggestion","data-is-focussed-option":S===j,...x({key:`${M.id}${j}`,item:M,index:j}),children:[u.jsx("span",{className:"primary-text",children:M.primaryText}),u.jsx("span",{className:"secondary-text",children:M.secondaryText})]},M.id)),f.length>A&&u.jsxs("span",{className:"refinement-message",children:["Refine your search to see more ",t.pluralOptionsName]})]})]})})}})]})})},Bne=e=>e>1600?"4:0":e>1353?"3:1":e>1115?"2:2":"1";function Fne(e){const[t,n]=g.useState(1),r=()=>n(t+1),[o,i]=g.useState(""),a=mi();g.useEffect(()=>{i(Bne(a))},[a]);const s=()=>{e.filtersToDisplay.forEach(A=>A.onChange(null)),r(),e.onReset()},c=(A,f)=>{switch(A){case"optionSet":return l(f);case"lookup":return d(f);default:return}},l=A=>{if(A.type!=="optionSet")throw Error(`Expected a filter type of 'optionSet' but was ${A.type} `);return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"advanced-filter-tile",children:[u.jsx("h3",{children:A.title}),u.jsx("ul",{className:A.styleClassName,children:A.options.map(f=>u.jsx("li",{className:`${A.inputType}-list`,children:u.jsxs("label",{children:[u.jsx("input",{type:A.inputType,id:f.name,value:f.value,name:f.name,checked:A.associatedList.includes(f.value),onChange:m=>A.onChange(f.name)}),f.name]})},f.name))})]},A.name),o!=="1"&&u.jsx("div",{className:"border"},`${A.name}-border`)]})},d=A=>{if(A.type!=="lookup")throw Error(`Expected a filter type of 'lookup' but was ${A.type} `);const[f,m]=g.useState(null);return g.useEffect(()=>{m(null)},[t,m]),u.jsx(u.Fragment,{children:u.jsxs("div",{className:"advanced-filter-tile",children:[u.jsx("h3",{children:A.title}),u.jsx("form",{children:u.jsx(nc,{name:A.name,label:"",selectedOptionId:f,pluralOptionsName:A.pluralOptionsName,options:A.options,setSelectedOptionId:v=>{m(v),A.onChange(v)},additionalInputProps:{placeholder:A.placeholderText,required:!1}},t)})]},A.name)})};return u.jsx(u.Fragment,{children:u.jsxs("div",{className:"advanced-filters-panel",children:[u.jsx("div",{className:"advanced-filter-section-container",children:e.filtersToDisplay.map(A=>c(A.type,A))}),u.jsx("button",{className:"reset-filters default",onClick:s,children:"Reset Filters"})]})})}function One(e){const t=()=>{e.selectedTileIds.includes(e.tile.id)?e.setSelectedTileIds([]):e.setSelectedTileIds([e.tile.id])};let n={};return e.selectedTileIds.length!==0&&(n={"data-selected":!!e.selectedTileIds.includes(e.tile.id)}),u.jsxs("div",{className:"filter-tile",onClick:()=>t(),...n,title:e.onHoverMessage,children:[u.jsx("div",{className:"label",children:e.tile.label}),u.jsx("span",{className:"count",children:e.tile.value.loadingStatus==="loaded"?e.tile.value.data:"*"}),u.jsx(Wn,{className:"image",src:e.tile.imagePath,height:48})]})}function Fu(e){const[t,n]=g.useState(""),[r,o]=g.useState(!1),i=g.useRef(e.filterGroups),{trackEventWithBistechMetadata:a}=Nt();g.useEffect(()=>{r&&(a==null||a({type:"Management Panel - Advanced Filter Panel opened"}))},[r]);function s(){return e.getSummarySections(r).map(d=>{switch(d.type){case"button-link":return u.jsxs("div",{"data-type":d.type,className:"summary-section",children:[u.jsx("div",{className:"heading",children:d.label}),d.to.loadingStatus==="loaded"&&u.jsx(jt,{className:"button",to:d.to.data,children:d.buttonLabel})]},`${d.type} + ${d.label}`);case"count":return u.jsxs("div",{"data-type":d.type,className:"summary-section",children:[u.jsx("div",{className:"heading",children:d.label}),u.jsx("div",{className:"content",children:d.value.loadingStatus==="loaded"?d.value.data:"*"})]},`${d.type} + ${d.label}`);case"string":return u.jsxs("div",{"data-type":d.type,className:"summary-section",children:[u.jsx("div",{className:"heading",children:d.label}),u.jsx("div",{className:"content",children:d.value.loadingStatus==="loaded"?d.value.data:"*"})]},`${d.type} + ${d.label}`);case"link":return u.jsxs("div",{"data-type":d.type,className:"summary-section",children:[u.jsx("div",{className:"heading",children:d.label}),d.to.loadingStatus==="loaded"&&u.jsx(jt,{to:d.to.data,children:d.buttonLabel})]},`${d.type} + ${d.label}`);default:throw new Error(`Unimplemented summary section type: '${d.type}'`)}})}const c=s();return u.jsxs("div",{className:"management-panel",children:[u.jsxs("div",{className:"filter-section",children:[u.jsxs("div",{className:"search-group",children:[u.jsx("div",{className:"label",children:"Search"}),u.jsxs("form",{className:"search-bar-group",onSubmit:l=>{e.setSearchBarContent(t),l.preventDefault(),a==null||a({type:"Management Panel - Search submitted",searchTerm:t})},children:[u.jsx("input",{type:"text",id:"view-search",className:"search-bar",onChange:l=>{n(l.target.value)},value:t,placeholder:e.placeholderText,"aria-label":e.placeholderText}),u.jsx("button",{type:"submit",className:"search-button",title:"Search Results",onClick:()=>e.setSearchBarContent(t),"aria-label":"Search Results",children:u.jsx(mne,{})})]})]}),e.filterGroups!==null&&u.jsxs("div",{className:"filter-groups",children:[e.filterGroups.map(l=>u.jsxs("div",{className:"filter-group",children:[u.jsxs("label",{className:"label-group",children:["Filter by ",l.labelElement,l.tooltipElement&&u.jsx(tc,{overlayContent:l.tooltipElement})]}),u.jsx("div",{className:"filter-tiles",children:l.tiles.map(d=>u.jsx(One,{onHoverMessage:d.onHoverMessage,tile:d,selectedTileIds:d.selectedTileIds,setSelectedTileIds:A=>{d.setSelectedTileIds(A),a==null||a({type:"Management Panel - Filter Tile clicked",tileName:d.id})}},d.id))})]},l.attribute)),e.filtersToDisplay.length!==0&&u.jsxs("div",{className:"advanced-filter-section",children:[u.jsxs("div",{className:"advanced-filter-button-wrapper",children:[u.jsx("span",{className:"advanced-filter-button-icon","data-is-open":r,children:">"})," ",u.jsx("button",{className:"advanced-filter-button",onClick:()=>o(!r),children:"Advanced Filters"})]}),r&&u.jsx(Fne,{filtersToDisplay:e.filtersToDisplay,onReset:()=>{n(""),e.filterGroups.forEach((l,d)=>l.tiles.forEach((A,f)=>A.setSelectedTileIds(i.current[d].tiles[f].selectedTileIds)))}})]})]})]}),c.length>0&&u.jsx("div",{className:"summary-sections",children:c})]})}function He(e,t){return e.loadingStatus!=="loaded"?{loadingStatus:e.loadingStatus}:{loadingStatus:"loaded",data:t(e.data)}}const h3="Cases in-progress and currently being worked on.",b3="Cases awaiting feedback or confirmation of resolution.",y3="Cases where the resolution of Case is on hold as agreed with you.",w3="A fault or impairment causing a reduction in service.",x3="A formal request for something to be provided.",k3="An amendment to the functionality of a service.",S3="An ongoing reduction in service, for which a resolution has yet to be determined.",Lne=(e,t,n,r,o)=>[{labelElement:u.jsx(u.Fragment,{children:"Status"}),attribute:"Status",tooltipElement:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"With Bistech"})," - ",h3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"With You"})," - ",b3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"On Hold"})," - ",y3]})]}),tiles:[{id:"case-type-with-bistech",setSelectedTileIds:n,selectedTileIds:t,filter:i=>[de.Open,de["In Progress"],de["Closure Requested"]].includes(i.statuscode),label:u.jsxs(u.Fragment,{children:["With",u.jsx("br",{}),"Bistech"]}),value:He(e.casesWithBistech,i=>i.length),imagePath:"/case-management-status-with-bistech.svg",onHoverMessage:h3},{id:"case-type-with-you",setSelectedTileIds:n,selectedTileIds:t,filter:i=>[de["Pending Feedback"],de.Resolved].includes(i.statuscode),label:u.jsxs(u.Fragment,{children:["With",u.jsx("br",{}),"You"]}),value:He(e.casesWithYou,i=>i.length),imagePath:"/case-management-status-with-you.svg",onHoverMessage:b3},{id:"case-type-on-hold",setSelectedTileIds:n,selectedTileIds:t,filter:i=>i.statuscode===de["On Hold"],label:u.jsxs(u.Fragment,{children:["On",u.jsx("br",{}),"Hold"]}),value:He(e.casesOnHold,i=>i.length),imagePath:"/case-management-status-on-hold.svg",onHoverMessage:y3}]},{labelElement:u.jsx(u.Fragment,{children:"Type"}),attribute:"Type",tooltipElement:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"Incident"})," - ",w3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Support Request"})," - ",x3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Change"})," - ",k3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Problem"})," - ",S3]})]}),tiles:[{id:"case-type-support-request",setSelectedTileIds:o,selectedTileIds:r,filter:i=>i.casetypecode===Se["Support Request"],label:u.jsxs(u.Fragment,{children:["Support",u.jsx("br",{}),"Requests"]}),value:He(e.supportRequests,i=>i.length),imagePath:"/case-type-service-request.svg",onHoverMessage:x3},{id:"case-type-incident",setSelectedTileIds:o,selectedTileIds:r,filter:i=>i.casetypecode===Se.Incident,label:"Incidents",value:He(e.incidents,i=>i.length),imagePath:"/case-type-incident.svg",onHoverMessage:w3},{id:"case-type-change",setSelectedTileIds:o,selectedTileIds:r,filter:i=>i.casetypecode===Se.Change,label:"Changes",value:He(e.changes,i=>i.length),imagePath:"/case-type-change.svg",onHoverMessage:k3},{id:"case-type-problem",setSelectedTileIds:o,selectedTileIds:r,filter:i=>i.casetypecode===Se.Problem,label:"Problems",value:He(e.problems,i=>i.length),imagePath:"/case-type-problem.svg",onHoverMessage:S3}]}],Ou=e=>{const t=e.sortingProps;if((t==null?void 0:t.sortingEnabled)!==!0)return u.jsx("th",{className:e.fieldName,children:e.columnHeader});const n=e.fieldName===t.sortedColumn,r=()=>{n&&t.setIsSortedAscending(!t.isSortedAscending),t.setSortedColumn(e.fieldName)},o=t.isSortedAscending?u.jsx(bne,{size:20,className:"sort-icon"}):u.jsx(hne,{size:20,className:"sort-icon"});return u.jsxs("th",{className:e.fieldName,onClick:r,style:e.headerWidth?{width:e.headerWidth}:{},children:[e.columnHeader," ",n&&o]})},UM=()=>[{id:0,columnHeader:"Case Number",fieldName:"ticketnumber",isSortable:!0},{id:1,columnHeader:"Case Title",fieldName:"title",isSortable:!0},{id:2,columnHeader:"Case Type",fieldName:"casetypecode",isSortable:!0},{id:3,columnHeader:"Created On",fieldName:"createdon",isSortable:!0},{id:4,columnHeader:"Primary Contact",fieldName:"_primarycontactid_value",isSortable:!0},{id:5,columnHeader:"Case Priority",fieldName:"prioritycode",isSortable:!0},{id:6,columnHeader:"Case Status",fieldName:"statuscode",isSortable:!0}];function Wne(e,t){return[{type:"button-link",label:"New Case",buttonLabel:"Create",to:{loadingStatus:"loaded",data:_e.CreateCase.path}},{type:"count",label:"Active Cases",value:e},...t?[{type:"button-link",label:"Closed Cases",buttonLabel:"Closed Cases",to:{loadingStatus:"loaded",data:_e.ClosedCases.path}}]:[]]}var Ft=(e=>(e[e.Today=1]="Today",e[e.Yesterday=2]="Yesterday",e[e["This Week"]=3]="This Week",e[e["This Month"]=4]="This Month",e[e["This Year"]=5]="This Year",e))(Ft||{});const j3=e=>u.jsxs("div",{className:e.styleClass,"data-incident-status":"active",children:[u.jsx(Wn,{src:"incident-warning-triangle.svg",height:53,width:64,className:"incident-warning-triangle"}),u.jsx("p",{className:"incident-warning-message",children:e.messageText}),u.jsx(jt,{to:_e.MajorIncidents.path,className:"button default btn-incident-details",title:"View Details",children:"View Details"})]}),Une=()=>{const e=ve(R=>R.incidents),t=ve(R=>R.contacts),[n,r]=g.useState("createdon"),[o,i]=g.useState(!1),[a,s]=g.useState(""),[c,l]=g.useState([]),[d,A]=g.useState([]),[f,m]=g.useState({selectedCaseTypes:[],selectedIncidentStatuses:[],createdBy:"",dateRange:{value:null,from:null,to:null}}),v=R=>{if(!R){m(O=>({...O,createdBy:""}));return}m(O=>({...O,createdBy:R}))},p=R=>{if(R===null){m(_=>({..._,selectedIncidentStatuses:[]}));return}const O=de[R];if(!O)throw new Error(`'${R}' filter value for the Case Status filter is not implemented`);if(f.selectedIncidentStatuses.includes(O)){m(_=>({..._,selectedIncidentStatuses:[...f.selectedIncidentStatuses].filter(Y=>Y!==O)}));return}m(_=>({..._,selectedIncidentStatuses:[...f.selectedIncidentStatuses,O]}))},y=R=>{if(R===null){m(_=>({..._,selectedCaseTypes:[]}));return}const O=Se[R];if(!O)throw new Error(`'${R}' filter value for the Case Type filter is not implemented`);if(f.selectedCaseTypes.includes(O)){m(_=>({..._,selectedCaseTypes:[...f.selectedCaseTypes].filter(Y=>Y!==O)}));return}m(_=>({..._,selectedCaseTypes:[...f.selectedCaseTypes,O]}))},b=R=>{if(!R){m(Y=>({...Y,dateRange:{value:null,from:null,to:null}}));return}let O=new Date,_=new Date;switch(O.setHours(0,0,0,0),_.setHours(23,59,59,999),Ft[R]){case Ft.Today:break;case Ft.Yesterday:O.setDate(O.getDate()-1),_.setDate(_.getDate()-1);break;case Ft["This Week"]:O.setDate(O.getDate()-O.getDay());break;case Ft["This Month"]:O=new Date(O.getFullYear(),O.getMonth(),1);break;case Ft["This Year"]:O=new Date(O.getFullYear(),0,1);break;default:throw new Error(`'${R}' filter value for the Created On filter is not implemented`)}m(Y=>({...Y,dateRange:{value:Ft[R],from:O,to:_}}))},h=ht.useMemo(()=>{if(e.activeIncidents.loadingStatus!=="loaded")return{loadingStatus:e.activeIncidents.loadingStatus};const R=e.activeIncidents.data.slice().sort((O,_)=>{var Y,I;return(((Y=O[n])==null?void 0:Y.toString())??"").localeCompare(((I=_[n])==null?void 0:I.toString())??"")});return o?{loadingStatus:"loaded",data:R}:{loadingStatus:"loaded",data:R.reverse()}},[e,n,o]),w={activeCases:h,casesWithBistech:He(h,R=>R.filter(O=>[de.Open,de["In Progress"],de["Closure Requested"]].includes(O.statuscode))),casesWithYou:He(h,R=>R.filter(O=>[de["Pending Feedback"],de.Resolved].includes(O.statuscode))),casesOnHold:He(h,R=>R.filter(O=>O.statuscode===de["On Hold"])),supportRequests:He(h,R=>R.filter(O=>O.casetypecode===Se["Support Request"])),incidents:He(h,R=>R.filter(O=>O.casetypecode===Se.Incident)),changes:He(h,R=>R.filter(O=>O.casetypecode===Se.Change)),problems:He(h,R=>R.filter(O=>O.casetypecode===Se.Problem))},x=Lne(w,c,l,d,A),k=x.flatMap(R=>R.tiles.filter(O=>c.length>0?c.includes(O.id):!0).flatMap(O=>O.filter)),S=x.flatMap(R=>R.tiles.filter(O=>d.length>0?d.includes(O.id):!0).flatMap(O=>O.filter)),N=R=>Wne(w.activeCases.loadingStatus==="loaded"?{loadingStatus:"loaded",data:w.activeCases.data.length}:{loadingStatus:"loading"},R),C="We are aware of an issue which may be affecting some customers. If you are experiencing any issues please create a case and we shall provide appropriate updates.",M="A previous issue which was affecting some customers has recently been resolved. If you are experiencing any further issues, please update your case.",j=UM(),T=R=>{var O;return(O=j.find(_=>_.fieldName===R))==null?void 0:O.columnHeader},F=He(h,R=>R.filter(O=>Object.entries(O).some(([_,Y])=>{let I=Y==null?void 0:Y.toString();switch(_){case"casetypecode":{I=!O||!O.casetypecode?null:Se[O.casetypecode];break}case"createdon":{I=Pe.toDateString(O.createdon);break}case"prioritycode":{I=!O||!O.prioritycode?null:Ve[O.prioritycode];break}case"statuscode":{I=!O||!O.casetypecode?null:de[O.statuscode];break}case"_primarycontactid_value":{I=(()=>{if(t.loadingStatus!=="loaded")return;const E=t.data.find(D=>D.contactid===O._primarycontactid_value);return E?[E.firstname,E.lastname].filter(D=>D).join(" "):null})();break}}return I==null?void 0:I.toString().toLowerCase().includes(a.toLowerCase())})).filter(O=>k.some(_=>_(O))).filter(O=>S.some(_=>_(O))).filter(O=>{var Y,I;const _=new Date(O.createdon);return(f.selectedIncidentStatuses.length?(Y=f.selectedIncidentStatuses)==null?void 0:Y.includes(O.statuscode):!0)&&(O.casetypecode&&f.selectedCaseTypes.length?(I=f.selectedCaseTypes)==null?void 0:I.includes(O.casetypecode):!0)&&(f.createdBy?f.createdBy===O._primarycontactid_value:!0)&&(f.dateRange.from&&f.dateRange.to?_>=f.dateRange.from&&_<=f.dateRange.to:!0)})),H=e.activeMajorIncidents.loadingStatus==="loaded"?e.activeMajorIncidents.data.filter(R=>R.statuscode!==de.Resolved).length:0;return u.jsxs(Lr,{title:"Cases",children:[e.activeMajorIncidents.loadingStatus==="loaded"&&H>0&&u.jsx(j3,{messageText:C,styleClass:"incident-warning"}),e.recentlyResolvedMajorIncidents.loadingStatus==="loaded"&&e.activeMajorIncidents.loadingStatus==="loaded"&&H===0&&e.recentlyResolvedMajorIncidents.data.length>0&&u.jsx(j3,{messageText:M,styleClass:"resolved-incident-warning"}),u.jsx(Fu,{setSearchBarContent:s,filterGroups:x,placeholderText:"Search for Case",getSummarySections:N,filtersToDisplay:[{type:"optionSet",options:[{name:"Open",value:de.Open},{name:"In Progress",value:de["In Progress"]},{name:"On Hold",value:de["On Hold"]},{name:"Pending Feedback",value:de["Pending Feedback"]},{name:"Resolved",value:de.Resolved},{name:"Closure Requested",value:de["Closure Requested"]}],onChange:p,associatedList:f.selectedIncidentStatuses,name:"incident-types",inputType:"checkbox",styleClassName:"checkbox-section incident",title:"Status"},{type:"optionSet",options:[{name:"Incident",value:Se.Incident},{name:"Support Request",value:Se["Support Request"]},{name:"Problem",value:Se.Problem},{name:"Change",value:Se.Change}],onChange:y,associatedList:f.selectedCaseTypes,name:"case-types",inputType:"checkbox",styleClassName:"checkbox-section case",title:"Case Type"},{type:"optionSet",options:[{name:"Today",value:Ft.Today},{name:"Yesterday",value:Ft.Yesterday},{name:"This Week",value:Ft["This Week"]},{name:"This Month",value:Ft["This Month"]},{name:"This Year",value:Ft["This Year"]}],onChange:b,associatedList:[f.dateRange.value],name:"date-since",inputType:"radio",styleClassName:"checkbox-section case",title:"Created On"},{type:"lookup",name:"_primarycontactid_value",placeholderText:"Filter by contact",pluralOptionsName:"Contacts",title:"Created By",options:t.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loaded",value:t.data.map(R=>({id:R.contactid,primaryText:[R.firstname,R.lastname].filter(O=>O).join(" "),secondaryText:Be[R.statecode],isPickable:!0,contact:R}))},onChange:v}]}),F.loadingStatus!=="loaded"?u.jsx(vi,{}):F.data.length===0?u.jsx("div",{className:"no-results-message",children:"There are no records to display."}):u.jsxs("table",{className:"entitylist cases-table",children:[u.jsx("thead",{children:u.jsx("tr",{children:j.map(R=>u.jsx(Ou,{columnHeader:R.columnHeader,fieldName:R.fieldName,headerWidth:R.cellWidth,sortingProps:{sortingEnabled:R.isSortable,sortedColumn:n,setSortedColumn:()=>r(R.fieldName),isSortedAscending:o,setIsSortedAscending:i}},R.id))})}),u.jsx("tbody",{children:F.data.map(R=>u.jsxs("tr",{"data-id":R.incidentid,"data-entity":"incident","data-name":R.title,children:[u.jsx("td",{className:"number",title:R.ticketnumber,"data-heading-title":T("ticketnumber"),children:u.jsx(jt,{to:`edit?caseId=${R.incidentid}`,children:`${R.ticketnumber}`},R.incidentid)}),u.jsx("td",{className:"title",title:R.title,"data-heading-title":T("title"),children:u.jsx(jt,{to:`edit?caseId=${R.incidentid}`,children:`${R.title}`},R.incidentid)}),u.jsx("td",{className:"type","data-heading-title":T("casetypecode"),children:R.casetypecode&&Se[R.casetypecode]}),u.jsx("td",{className:"created-on","data-heading-title":T("createdon"),children:Pe.toDateString(R.createdon)}),u.jsx("td",{className:"contact","data-heading-title":T("_primarycontactid_value"),children:R._primarycontactid_value&&(()=>{if(t.loadingStatus!=="loaded")return;const O=t.data.find(_=>_.contactid===R._primarycontactid_value);return O?[O.firstname,O.lastname].filter(_=>_).join(" "):null})()}),u.jsx("td",{className:"priority","data-heading-title":T("prioritycode"),children:R.prioritycode&&Ve[R.prioritycode]}),u.jsx("td",{className:"status","data-heading-title":T("statuscode"),children:de[R.statuscode]})]},R.incidentid))})]})]})};let Hne=class{constructor(){this.incidentid=void 0,this.title=void 0,this._customerid_value=void 0,this.ticketnumber=void 0,this.bistech_customerreference=void 0,this.description=void 0,this.casetypecode=void 0,this.caseorigincode=void 0,this.severitycode=void 0,this.bistech_urgency=void 0,this.prioritycode=void 0,this.statuscode=void 0,this.createdon=void 0,this._primarycontactid_value=void 0,this._bistech_createdbycontact_value=void 0,this.bistech_resolutiondate=void 0}};const _c={titleColumnName:"title",columnNames:Object.keys(new Hne),entityReferenceColumnMappings:[{columnName:"_customerid_value",navigationPropertyName:"customerid_account",pluralEntitySetName:"accounts"},{columnName:"_primarycontactid_value",navigationPropertyName:"primarycontactid",pluralEntitySetName:"contacts"},{columnName:"_bistech_createdbycontact_value",navigationPropertyName:"bistech_createdbycontact",pluralEntitySetName:"contacts"}],expandProperties:[]};function Uw(){return"00000000-0000-0000-0000-000000000000".replace(/[0]/g,t=>Math.round(Math.random()*16).toString(16))}const HM=()=>{async function e(A,f,m){var b;if(!((b=window.shell)!=null&&b.getTokenDeferred))throw new Error("`window.shell.getTokenDeferred` is not defined");const v=await window.shell.getTokenDeferred();let p,y;try{p=await fetch(`/_api/${A}`,{method:"POST",headers:{"content-type":"application/json",__RequestVerificationToken:v},body:JSON.stringify(sm(f,m))}),p.status!==204&&await zl(p,{statusCode:204,statusText:"No Content"});const h=p.headers.get("entityid");if(!h)throw new Error("Expected response from POST request to contain the 'entityid'");y=h}catch(h){throw new Error(`Failed to create a '${A}' record:\r ${h}`)}return{id:y}}async function t(A,f,m){var x;if(!((x=window.shell)!=null&&x.getTokenDeferred))throw new Error("`window.shell.getTokenDeferred` is not defined");const v=Hw(f.columnNames);f.titleColumnName&&(m=(m??[]).concat([{attribute:f.titleColumnName,operator:"ne",value:`'cache-buster-${Uw().substring(0,8)}'`}]));const p=m?Vne(m):"",y=f.expandProperties.length>0?N3(f):"",b=`${v}${p}${y}`,h=await window.shell.getTokenDeferred();let w;try{return w=await fetch(`/_api/${A}?${b}`,{method:"GET",headers:{"content-type":"application/json",__RequestVerificationToken:h}}),w.status!==200&&await zl(w,{statusCode:200,statusText:"OK"}),(await w.json()).value}catch(k){throw new Error(`Failed to retrieve multiple '${A}' records:\r ${k}`)}}async function n(A,f,m){var x;if(!((x=window.shell)!=null&&x.getTokenDeferred))throw new Error("`window.shell.getTokenDeferred` is not defined");const v=Hw(m.columnNames),p=m.titleColumnName?`&$filter=${m.titleColumnName.toString()} ne 'cache-buster-${Uw().substring(0,8)}'`:"",y=m.expandProperties.length>0?N3(m):"",b=`${v}${p}${y}`,h=await window.shell.getTokenDeferred();let w;try{return w=await fetch(`/_api/${A}(${f})?${b}`,{method:"GET",headers:{"content-type":"application/json",__RequestVerificationToken:h}}),w.status!==200&&await zl(w,{statusCode:200,statusText:"OK"}),await w.json()}catch(k){throw new Error(`Failed to retrieve a singular '${A}' record:\r ${k}`)}}async function r(A,f,m,v){var y;if(!((y=window.shell)!=null&&y.getTokenDeferred))throw new Error("`window.shell.getTokenDeferred` is not defined");const p=await window.shell.getTokenDeferred();try{if(Object.keys(m).length>0){const b=await fetch(`/_api/${A}(${f})`,{method:"PATCH",headers:{"content-type":"application/json",__RequestVerificationToken:p},body:JSON.stringify(sm(m,v))});b.status!==204&&await zl(b,{statusCode:204,statusText:"No Content"})}}catch(b){throw new Error(`Failed to update ${Object.keys(m).map(h=>`'${h}'`).join(", ")} columns of a '${A}' record:\r ${b}`)}}async function o(A,f,m){var p;if(!((p=window.shell)!=null&&p.getTokenDeferred))throw new Error("`window.shell.getTokenDeferred` is not defined");const v=await window.shell.getTokenDeferred();try{const y=await fetch(`/_api/${A}(${f})/${m}/$ref`,{method:"DELETE",headers:{"content-type":"application/json",__RequestVerificationToken:v}});y.status!==204&&await zl(y,{statusCode:204,statusText:"No Content"})}catch(y){throw new Error(`Failed to disassociate '${m}' from '${A}' record with id '${f}':\r ${y}`)}}async function i(A,f){await d({event:"Feedback",feedbackCategory:f,feedbackDescription:A})}async function a(A){return await d({event:"RequestClosure",incidentId:A}),await n("incidents",A,_c)}async function s(A){return await d({event:"RequestReopen",incidentId:A}),await n("incidents",A,_c)}async function c(A){await d({event:"SendPortalInvitation",contactId:A})}async function l(A,f){await d({event:"CloseProjectTask",projectTaskId:A,comment:f})}async function d(A){try{const f=JSON.stringify(A),m=encodeURIComponent(f),v=await fetch(`/portalactions/?params=${m}`);v.status!==200&&await zl(v,{statusCode:200,statusText:"OK"})}catch(f){throw new Error(`Failed to execute Portal Action '${A.event}': ${f}`)}}return{create:e,retrieveMultiple:t,retrieve:n,update:r,disassociate:o,executeFeedbackPortalAction:i,executeRequestClosurePortalAction:a,executeRequestReopenPortalAction:s,executeCloseProjectTask:l,executeSendInvitationPortalAction:c}};async function zl(e,t){const n=await(async()=>{var o,i,a,s;const r=`Expected HTTP Status Code to be '${t.statusCode} (${t.statusText})', but was '${e.status}'`;try{const c=await e.json();return Zne(c)?`${Array.from(new Set([(o=c.error.innererror)==null?void 0:o.type,(i=c.error.innererror)==null?void 0:i.message,(a=c.error.innererror)!=null&&a.code?`(Error Code: ${(s=c.error.innererror)==null?void 0:s.code})`:"",c.error.message,`(Error Code: ${c.error.code})`])).filter(d=>d).join(" ")}. ${r}`:r}catch{return r}})();throw new Error(n)}function Zne(e){const t=e;return typeof t.error=="object"&&typeof t.error.code=="string"&&typeof t.error.message=="string"}function Hw(e){return`$select=${e.filter(t=>!t.includes("@OData")).map(t=>t.toLocaleString()).join(",")}`}function Vne(e){const t=e.filter(n=>!n.attribute.includes("@OData")).map(n=>`${n.attribute} ${n.operator} ${n.value??""}`).join(" and ");return`&$filter=${encodeURIComponent(t)}`}function N3(e){return e.expandProperties.length>0?"&$expand="+e.expandProperties.map(n=>`${n.columnName.toString()}(${Hw(n.entityMetadata.columnNames.filter(r=>!n.entityMetadata.expandProperties.map(o=>o.columnName).includes(r)))})`).join(","):""}function qne(e,t,n){if(t.startsWith("_")&&t.endsWith("_value")){const r=e.entityReferenceColumnMappings.find(o=>o.columnName===t);if(!r)throw new Error(`\`entityReferenceColumnMappings\` does not contain a definition for the Entity Reference column '${t}'`);t=`${r.navigationPropertyName}@odata.bind`,n=n?`/${r.pluralEntitySetName}(${n})`:null}return[t,n]}function sm(e,t){return Object.fromEntries(Object.entries(e).filter(([n])=>!n.includes("@OData")).filter(([n,r])=>!(n.startsWith("_")&&n.endsWith("_value")&&!r)).map(([n,r])=>{[n,r]=qne(t,n,r);const o=t.expandProperties.find(i=>i.columnName===n);return o&&(r=r.map(a=>sm(a,o.entityMetadata))),[n,r]}))}var ct=(e=>(e[e.Open=0]="Open",e[e.Completed=1]="Completed",e[e.Cancelled=2]="Cancelled",e[e.Scheduled=3]="Scheduled",e))(ct||{}),nt=(e=>(e[e.Incoming=1]="Incoming",e[e.Outgoing=2]="Outgoing",e))(nt||{}),lt=(e=>(e[e.Open=1]="Open",e[e.Sent=2]="Sent",e[e.Received=3]="Received",e[e.Cancelled=4]="Cancelled",e[e.Scheduled=5]="Scheduled",e))(lt||{});const po=[{activityid:"2fbhdfd7b-6961-40c0-acf4-e15ehkggmj2e1",_regardingobjectid_value:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",adx_portalcommentdirectioncode:nt.Incoming,description:"Im stuck in another country, in a cave.",createdon:"2020-07-07T08:48:00.000Z",modifiedon:"2020-07-07T08:48:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd11-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",adx_portalcommentdirectioncode:nt.Incoming,description:"Gonna need your magic.",createdon:"2020-07-07T09:08:00.000Z",modifiedon:"2020-07-07T09:08:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd12-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"0ea9ee91-edc0-4dc2-898d-1e28bbafede5",adx_portalcommentdirectioncode:nt.Incoming,description:"Stop breaking stuff please Hulk.",createdon:"2020-09-03T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd13-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"5a5700b2-1a7f-4b0f-b5bb-d422237c5a03",adx_portalcommentdirectioncode:nt.Incoming,description:"He has set the servers on fire.",createdon:"2020-09-03T08:28:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd14-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"77c612c2-6170-4a30-80b5-bd5ee3a9bf16",adx_portalcommentdirectioncode:nt.Incoming,description:"Can you help me get back to Asgard as I have been exiled to Midgard.",createdon:"2020-09-04T03:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd15-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"77c612c2-6170-4a30-80b5-bd5ee3a9bf16",adx_portalcommentdirectioncode:nt.Incoming,description:"Going to need some Stark tech to put the fires out.",createdon:"2020-09-06T08:48:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd16-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"4f4ee320-9a50-438e-bf24-ffd786afc397",adx_portalcommentdirectioncode:nt.Incoming,description:"Im not sure how to use a computer yet. I've been stuck in the ice.",createdon:"2020-10-04T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd17-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"eed5699c-4395-489e-853f-9e7a6d5ea0ea",adx_portalcommentdirectioncode:nt.Incoming,description:"My magic tricks are better than yours.",createdon:"2020-10-05T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd18-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"1b26b94d-737b-451b-b89d-725bd25ff02e",adx_portalcommentdirectioncode:nt.Incoming,description:"We need to get the team together. We need to stop Loki from setting the servers on fire.",createdon:"2020-10-06T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd19-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3d6c7411-1622-48f3-bd0b-509d6a39a562",adx_portalcommentdirectioncode:nt.Incoming,description:"A.I.M has big aims for very fast network connections. Their servers are also fireproof!",createdon:"2020-10-07T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd21-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"d437dde0-c79d-41c6-b719-e2378269dc7b",adx_portalcommentdirectioncode:nt.Incoming,description:"How are we going to resolve this? Is there a backup of a backup?",createdon:"2020-10-08T07:56:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd22-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"50990913-8ecf-4d6f-b806-b01278c68369",adx_portalcommentdirectioncode:nt.Incoming,description:"He has used Hydra's servers and is using their broadband too.",createdon:"2020-10-11T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd23-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3f9df6ef-43ae-44da-b3aa-6876c6e68657",adx_portalcommentdirectioncode:nt.Incoming,description:"I am Groot I am Groot I am Groot I am Groot I am Groot I am Groot I am Groot I am Groot I am Groot. I am Groot.",createdon:"2020-10-12T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd25-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3f9df6ef-43ae-44da-b3aa-6876c6e68657",adx_portalcommentdirectioncode:nt.Incoming,description:"Im sorry about that, I think Groot got onto my email account.",createdon:"2020-10-13T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"e41f0c31-108e-4f3e-964c-2733kdgjso8",_regardingobjectid_value:"e41f0c8c-108e-4f3e-964c-273361425f48",adx_portalcommentdirectioncode:nt.Incoming,description:"Do you see the flying city too?",createdon:"2020-10-14T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd32-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"e41f0c8c-108e-4f3e-964c-273361425f48",adx_portalcommentdirectioncode:nt.Incoming,description:"We haven't seen you in a while, how's the jet treating you?",createdon:"2020-10-15T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd33-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"585d45bc-34bb-4537-9ef7-ed66d69e54cb",adx_portalcommentdirectioncode:nt.Incoming,description:"It's getting really boring, i've resorted to learning magic tricks.",createdon:"2020-10-16T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd34-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"585d45bc-34bb-4537-9ef7-ed66d69e54cb",adx_portalcommentdirectioncode:nt.Incoming,description:"You have about 5 weeks left. Sorry.",createdon:"2020-10-25T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd35-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"e5367559-36f0-4494-87bd-6cb8249c8d2c",adx_portalcommentdirectioncode:nt.Incoming,description:"It's not his fault for the server fire. Hydra used him to set the Wakandan's servers on fire.",createdon:"2020-10-15T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd36-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"e5367559-36f0-4494-87bd-6cb8249c8d2c",adx_portalcommentdirectioncode:nt.Incoming,description:"He did all of it under his own influence.",createdon:"2020-10-02T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd41-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"c083ad34-69b2-4603-9358-522e56b3da29",adx_portalcommentdirectioncode:nt.Incoming,description:"I has a server error and now i need an operation.",createdon:"2020-10-06T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd42-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"77e4a7a4-7037-41ed-8e8f-8a218fafb9a4",adx_portalcommentdirectioncode:nt.Incoming,description:"This guy is a planet, its inflated his Ego so much. Also he is my father.",createdon:"2020-10-25T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd43-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"aa1313df-0590-46ae-ab9a-61c7d1a17b06",adx_portalcommentdirectioncode:nt.Incoming,description:"Ned is busy fixing a server issue.",createdon:"2020-12-14T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd45-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"c348955f-ad48-43c3-88ab-423ff2bb8e28",adx_portalcommentdirectioncode:nt.Incoming,description:"It turns out my sister is Hela, she is good at fixing servers.",createdon:"2020-12-16T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd47-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"864e4f6f-fac6-45b1-b720-b52153259fe3",adx_portalcommentdirectioncode:nt.Incoming,description:"Wakanda is great, we have fireproof servers made from vibranium.",createdon:"2020-12-17T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd51-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",adx_portalcommentdirectioncode:nt.Incoming,description:"I got into some trouble and need you doc.",createdon:"2020-12-19T07:18:00.000Z",modifiedon:"2020-09-12T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd52-9123-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",adx_portalcommentdirectioncode:nt.Incoming,description:"I need this sorted ASAP.",createdon:"2020-12-13T07:18:00.000Z",modifiedon:"2020-10-13T09:01:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"2fbhdfd53-9123-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"eed5699c-4395-489e-853f-9e7a6d5ea0ea",adx_portalcommentdirectioncode:nt.Incoming,description:"Antman shrunk the server and its only working with quantum processing, can we get a new one please?",createdon:"2020-11-14T07:18:00.000Z",modifiedon:"2020-10-13T09:01:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"4hfhdfd47-6961-50d2-bbf4-e15e8er032a3",_regardingobjectid_value:"377e4652-e38d-4c0c-9768-b047a4a459c6",adx_portalcommentdirectioncode:nt.Incoming,description:"I want SoGFast and I want it in all of Valhalla.",createdon:"2022-10-14T07:18:00.000Z",modifiedon:"2022-11-19T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent},{activityid:"fc9d62da-7716-46a5-9a42-af41996fc60d",_regardingobjectid_value:"b9c5fe33-808f-47a0-8402-de9b2ee10a7d",adx_portalcommentdirectioncode:nt.Incoming,description:"Gareth Southgate stops at red lights in GTA.",createdon:"2024-06-27T07:18:00.000Z",modifiedon:"2024-06-27T09:43:00.000Z",statecode:ct.Completed,statuscode:lt.Sent}],_ne=[{activityid:"2fbhdfd7b-6961-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",_createdby_value:ee.nickFury.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"The 10 rings have a lot of weaponry.",description:"We need to try and stop them from using their missiles.",createdon:"2020-07-07T08:31:55.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4011-acf4-e15e8er032e2",_regardingobjectid_value:"20ea9ee91-edc0-4dc2-898d-1e28bbafede5",_createdby_value:ee.nickFury.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Big green raging monster.",description:"There is a big green monster running rampant around the city. We need air support ASAP!",createdon:"2020-07-07T08:33:55.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4012-acf4-e15e8er032e3",_regardingobjectid_value:"5a5700b2-1a7f-4b0f-b5bb-d422237c5a03",_createdby_value:ee.nickFury.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"There is a man on the Formula 1 track.",description:"There is a man on the F1 track, we need Iron Man now.",createdon:"2020-07-08T08:23:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4013-acf4-e15e8er032e4",_regardingobjectid_value:"5a5700b2-1a7f-4b0f-b5bb-d422237c5a03",_createdby_value:ee.tonyStark.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"The stark expo has gone awry.",description:"We have remotely controlled machines attacking civilians. Iron Man and War Machine need to act fast.",createdon:"2020-07-08T08:27:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4014-acf4-e15e8er014af",_regardingobjectid_value:"77c612c2-6170-4a30-80b5-bd5ee3a9bf16",_createdby_value:ee.thor.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Loki is taking over Asgard.",description:"I have been exiled to Midgard and Loki is trying trying to take the throne of Asgard.",createdon:"2020-07-08T08:32:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4015-acf4-e15e812312fs",_regardingobjectid_value:"4f4ee320-9a50-438e-bf24-ffd786afc397",_createdby_value:ee.steveRogers.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Red Skull has the Tesseract.",description:"Red Skull has the Tesseract and could wreak havoc with it.",createdon:"2020-07-08T08:31:13.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4016-acf4-e15e812312fs",_regardingobjectid_value:"4f4ee320-9a50-438e-bf24-ffd786afc397",_createdby_value:ee.steveRogers.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"I need to crash into the Ice.",description:"To stop these missiles reaching their destination I must crash this plane into the ice.",createdon:"2020-08-01T08:32:13.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4117-acf4-e15e812312fs",_regardingobjectid_value:"1b26b94d-737b-451b-b89d-725bd25ff02e",_createdby_value:ee.nickFury.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Loki is attacking New York.",description:"We are going to need the Avengers to assemble to get out of this one.",createdon:"2020-08-11T11:32:13.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6ass-2318-acf4-e15e812312fs",_regardingobjectid_value:"3d6c7411-1622-48f3-bd0b-509d6a39a562",_createdby_value:ee.tonyStark.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"A.I.M is up to something.",description:"Im going to sort this out, should be solved in a few days.",createdon:"2020-08-11T12:13:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4021-adfss4-e15e812312fs",_regardingobjectid_value:"d437dde0-c79d-41c6-b719-e2378269dc7b",_createdby_value:ee.thor.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Malekith is up to something.",description:"He is causing havoc on Midgard.",createdon:"2020-08-11T13:16:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4022-adfss4-e15e812312fs",_regardingobjectid_value:"50990913-8ecf-4d6f-b806-b01278c68369",_createdby_value:ee.steveRogers.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Bucky is up to something.",description:"He is breaking Wakanda's servers.",createdon:"2020-08-15T13:18:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4023-adfss4-e15e812312fs",_regardingobjectid_value:"3f9df6ef-43ae-44da-b3aa-6876c6e68657",_createdby_value:ee.peterQuill.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Ronan is up to something.",description:"He has almost got his hands on the power stone.",createdon:"2020-08-15T13:18:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4024-adfss4-e15e812312fs",_regardingobjectid_value:"e41f0c8c-108e-4f3e-964c-273361425f48",_createdby_value:ee.steveRogers.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Ultron is up to something.",description:"He has lifted Sokovia up into the sky, what is going on?",createdon:"2020-08-15T17:18:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-40c5-adfss4-e15e812312fs",_regardingobjectid_value:"585d45bc-34bb-4537-9ef7-ed66d69e54cb",_createdby_value:ee.scottLang.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Yellow Jacket is up to something.",description:"He has stole Hank's Pym Particals and is going to shrink the server.",createdon:"2020-08-17T12:11:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4025-adfss4-e15e812312fs",_regardingobjectid_value:"e5367559-36f0-4494-87bd-6cb8249c8d2c",_createdby_value:ee.tonyStark.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Steve is up to something.",description:"He is on the run with Bucky, we need to get them under control.",createdon:"2020-09-17T13:11:10.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4026-adfss4-e15e812312fs",_regardingobjectid_value:"c083ad34-69b2-4603-9358-522e56b3da29",_createdby_value:ee.stephenstrange.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Dormammu is up to something.",description:"He and his disciples are breaking all the servers, we need to send them back to the Dark Dimension.",createdon:"2020-09-23T09:11:10.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4031-adfss4-e15e812312fs",_regardingobjectid_value:"77e4a7a4-7037-41ed-8e8f-8a218fafb9a4",_createdby_value:ee.peterQuill.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Ego is up to something.",description:"He is trying to get me to take over servers with him.",createdon:"2020-10-03T10:11:10.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4032-adfss4-e15e812312fs",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",_createdby_value:ee.tonyStark.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Thanos is up to something.",description:"He has just stole the Power Stone and is now trying to get the Mind Stone from Vision.",createdon:"2020-10-07T10:15:10.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-3232-adfss4-e15e812312fs",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",_createdby_value:ee.tonyStark.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Thanos and the Stones.",description:"If Thanos gets his hands on all 6 Infinity Stones he will have the power to wipe out half of the internet.",createdon:"2020-10-03T11:18:10.000Z",modifiedon:"2020-07-07T09:35:00.000Z"},{activityid:"2fbhdfd7b-6961-4043-acf4-e15e8er03212",_regardingobjectid_value:"eed5699c-4395-489e-853f-9e7a6d5ea0ea",_createdby_value:ee.steveRogers.contactid,actualend:"2020-07-07T09:58:00.000Z",prioritycode:"1",statecode:"1",statuscode:"1",subject:"Thanos just used the Infinity Gauntlet",description:"Fifty Percent of life in the universe is GONE!",createdon:"2020-10-09T10:12:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z"}],Ho=[{activityid:"2fbhdfd7b-0001-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",bistech_direction:!1,subject:"Iron Man",description:"We need you to come and help us fix these servers.",createdon:"2020-07-07T07:08:00.000Z",modifiedon:"2020-07-07T07:08:00.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-0001-40c0-acf4-e15e8er032e2",_regardingobjectid_value:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",bistech_direction:!0,subject:"Tony Stark is Iron Man",description:"Did you see that Tony Stark is Iron Man? News to me!",createdon:"2020-07-07T12:06:00.000Z",modifiedon:"2020-07-07T12:06:00.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-0001-40c0-acf4-e15e8er032e3",_regardingobjectid_value:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",bistech_direction:!0,subject:"Tony Stark is obviously Iron Man",description:"Did you know Tony Stark is Iron Man? Super obvious to me!",createdon:"2020-07-07T13:16:00.000Z",modifiedon:"2020-07-07T13:16:00.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-0001-40c0-acss-e15e8er032e1",_regardingobjectid_value:"0ea9ee91-edc0-4dc2-898d-1e28bbafede5",bistech_direction:!1,subject:"Invoice: $100,000,000",description:"Hello Bruce, you have caused chaos in the city. I will be invoicing you for the damange caused.",createdon:"2020-07-07T14:06:31.000Z",modifiedon:"2020-07-07T14:06:31.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-0cc1-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"5a5700b2-1a7f-4b0f-b5bb-d422237c5a03",bistech_direction:!1,subject:"Whiplash need a new server.",description:"Hello Tony, would you be able to get Whiplash a new server? His old was was set on fire.",createdon:"2020-08-01T14:06:31.000Z",modifiedon:"2020-08-01T14:06:31.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-0111-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"77c612c2-6170-4a30-80b5-bd5ee3a9bf16",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Thor is causing chaos on Earth. We need to get rid of him! I hope we never see his brother Loki either.",createdon:"2020-09-02T11:09:37.000Z",modifiedon:"2020-09-02T11:09:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-3301-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"4f4ee320-9a50-438e-bf24-ffd786afc397",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Im going to need a new suit, can you make me one? Oh nevermind, you aren't born yet.",createdon:"2020-09-07T11:09:37.000Z",modifiedon:"2020-09-07T11:09:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4444-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"1b26b94d-737b-451b-b89d-725bd25ff02e",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Hello, can I become part of your Avengers team? I can fix your servers.",createdon:"2020-09-14T10:10:37.000Z",modifiedon:"2020-09-14T10:10:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-5555-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3d6c7411-1622-48f3-bd0b-509d6a39a562",bistech_direction:!1,subject:"In reference to: TEST-123",description:"A.I.M for better bandwith. We can offer you a much better deal on bandwith with much faster download speeds.",createdon:"2020-09-21T11:09:37.000Z",modifiedon:"2020-09-21T11:09:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-6666-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"d437dde0-c79d-41c6-b719-e2378269dc7b",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Malekith is causing alot of chaos with the servers.",createdon:"2020-09-28T11:23:37.000Z",modifiedon:"2020-09-28T11:23:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-7777-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"50990913-8ecf-4d6f-b806-b01278c68369",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Bucky is working on servers with Hydra.",createdon:"2020-10-02T11:09:37.000Z",modifiedon:"2020-10-02T11:09:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-8888-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3f9df6ef-43ae-44da-b3aa-6876c6e68657",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Ronan has got the most powerful server in the galaxy.",createdon:"2020-10-03T10:34:37.000Z",modifiedon:"2020-10-03T10:34:37.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-9999-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"e41f0c8c-108e-4f3e-964c-273361425f48",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Ultron is working with Wanda and Pietro on some new servers.",createdon:"2020-10-05T10:22:12.000Z",modifiedon:"2020-10-05T10:22:12.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-8899-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"e41f0c8c-108e-4f3e-964c-273361425f48",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Wanda and Pietro are now working on our servers.",createdon:"2020-10-05T11:11:11.000Z",modifiedon:"2020-10-05T11:11:11.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-7799-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"585d45bc-34bb-4537-9ef7-ed66d69e54cb",bistech_direction:!0,subject:"In reference to: TEST-123",description:"I can't wait to get out of my house, I need to fix some servers.",createdon:"2020-10-05T14:14:11.000Z",modifiedon:"2020-10-05T14:14:11.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-6699-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"e5367559-36f0-4494-87bd-6cb8249c8d2c",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Bucky is working on our servers now.",createdon:"2020-10-06T11:14:11.000Z",modifiedon:"2020-10-06T11:14:11.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-5599-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"c083ad34-69b2-4603-9358-522e56b3da29",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Dormammu loves dark mode, please can we get some support for that?",createdon:"2020-11-06T11:13:11.000Z",modifiedon:"2020-11-06T11:13:11.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4949-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"77e4a7a4-7037-41ed-8e8f-8a218fafb9a4",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Ego is trying to take over our servers. What can we do to prevent him from doing this?",createdon:"2020-11-08T13:11:11.000Z",modifiedon:"2020-11-08T13:11:11.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4499-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"aa1313df-0590-46ae-ab9a-61c7d1a17b06",bistech_direction:!0,subject:"In reference to: TEST-123",description:"I had a nice time at Homecoming, I fixed a few servers while I was there.",createdon:"2020-11-10T12:11:15.000Z",modifiedon:"2020-11-10T12:11:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-3399-40c0-acf4-e15e8er9999",_regardingobjectid_value:"",bistech_direction:!0,subject:"In reference to: TEST-123",description:"",createdon:"2020-11-14T15:12:15.000Z",modifiedon:"2020-11-14T15:12:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4411-40c0-acf4-e15e8er8888",_regardingobjectid_value:"864e4f6f-fac6-45b1-b720-b52153259fe3",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Wakanda has the best Vibranium servers, get yours here now.",createdon:"2020-11-14T18:12:15.000Z",modifiedon:"2020-11-14T18:12:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4422-40c0-acf4-e15e8er7777",_regardingobjectid_value:"864e4f6f-fac6-45b1-b720-b52153259fe3",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Shuri will be able to fix your server, no problems.",createdon:"2020-11-15T15:12:15.000Z",modifiedon:"2020-11-15T15:12:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4433-40c0-acf4-e15e8er06666",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",bistech_direction:!0,subject:"In reference to: TEST-123",description:"Thanos has got all the stones. This will be quite catastrophic.",createdon:"2021-11-15T13:12:15.000Z",modifiedon:"2021-11-15T13:12:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4455-40c0-acf4-e15e8er05555",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",bistech_direction:!1,subject:"In reference to: TEST-123",description:"Thanos has wiped out half of the internet.",createdon:"2021-11-17T11:11:15.000Z",modifiedon:"2021-11-17T11:11:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4466-40c0-acf4-e15e8e444444",_regardingobjectid_value:"eed5699c-4395-489e-853f-9e7a6d5ea0ea",bistech_direction:!0,subject:"In reference to: TEST-123",description:"The server is performing at quantum speeds.",createdon:"2021-12-11T14:13:15.000Z",modifiedon:"2021-12-11T14:13:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"2fbhdfd7b-4477-40c0-acf4-e15e8er032e1",_regardingobjectid_value:"3b5b1840-c978-476e-8697-149b16573f81",bistech_direction:!1,subject:"Time to change back to Banner, Hulk.",description:"The suns getting real low.",createdon:"2021-12-15T14:11:15.000Z",modifiedon:"2021-12-15T14:11:15.000Z",_createdby_value:ee.stephenstrange.contactid},{activityid:"a0698ce5-bd59-41eb-bb0f-13789a845d233",_regardingobjectid_value:"b9c5fe33-808f-47a0-8402-de9b2ee10a7d",bistech_direction:!0,subject:"Do fish not like pineapple?",description:`Hi Louisa, I am just taking an initial look at the configuration changes and need to confirm some more information. As part of these change we want to make sure we decommission and remove any configuration that is no longer required. As well as the 01877 440011 there are a few other lines that end up with some of the Operations existing queues/groups. These are: 0187703082: Which dependant on the time of the call goes to the Going Queue or the Helpdesk Queue 0187703085: Which dependant on the time of the call goes to the Non Runners Queue or the Helpdesk Queue 0187703086: Which ends up at the Entries queue I have also attached the list of ACD Paths and ACD Groups relating to Operations. Do you want to review the above and confirm how it needs to work in the new setup. Thanks,Rob`,createdon:"2021-12-15T14:11:15.000Z",modifiedon:"2021-12-15T14:11:15.000Z",_createdby_value:"4"},{activityid:"a0698ce5-bd59-41eb-bb0f-13789a845d2f",_regardingobjectid_value:"b9c5fe33-808f-47a0-8402-de9b2ee10a7d",bistech_direction:!0,subject:"How can Mr Krabs leave his resturant?",description:"It's literally a lobster cage, so he shouldn't be able to leave?",createdon:"2022-03-12T14:11:15.000Z",modifiedon:"2022-03-12T14:11:15.000Z",_createdby_value:"5"}];var mt=(e=>(e[e.Low=1]="Low",e[e.Medium=2]="Medium",e[e.High=3]="High",e))(mt||{}),vt=(e=>(e[e.Low=1]="Low",e[e.Medium=2]="Medium",e[e.High=3]="High",e))(vt||{}),Qt=(e=>(e[e.Phone=1]="Phone",e[e.Email=2]="Email",e[e.Portal=3]="Portal",e[e.Event=4]="Event",e[e.Other=5]="Other",e))(Qt||{});const Zo=[{incidentid:"2fbc6d7b-6961-40c0-acf4-e15e8cb032e1",title:"Iron Man",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.High,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2008-09-07T07:48:00.000Z",ticketnumber:"CAS-1R0N-M4N-1",_primarycontactid_value:ee.tonyStark.contactid,_bistech_createdbycontact_value:ee.tonyStark.contactid,casetypecode:Se.Incident,statuscode:de.Open,prioritycode:Ve["Priority 2"],bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"0ea9ee91-edc0-4dc2-898d-1e28bbafede5",title:"The Incredible Hulk",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.Low,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2008-06-13T16:45:00.000Z",_primarycontactid_value:ee.bruceBanner.contactid,_bistech_createdbycontact_value:ee.tonyStark.contactid,casetypecode:Se.Incident,prioritycode:Ve["Priority 3"],statuscode:de.Open,ticketnumber:"CAS-HULK-1",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"5a5700b2-1a7f-4b0f-b5bb-d422237c5a03",title:"Iron Man 2",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.Low,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2010-05-07T19:12:00.000Z",_primarycontactid_value:ee.tonyStark.contactid,_bistech_createdbycontact_value:null,casetypecode:Se["Support Request"],prioritycode:Ve["Priority 3"],statuscode:de["Closure Requested"],ticketnumber:"CAS-1R0N-M4N-2",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"77c612c2-6170-4a30-80b5-bd5ee3a9bf16",title:"Thor",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.High,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2011-05-06T10:02:00.000Z",_primarycontactid_value:ee.thor.contactid,_bistech_createdbycontact_value:null,casetypecode:Se["Major Incident"],prioritycode:Ve["Priority 2"],statuscode:de["Pending Feedback"],ticketnumber:"CAS-TH0R-1",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"4f4ee320-9a50-438e-bf24-ffd786afc397",title:"Captain America",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.Low,severitycode:vt.Low,_customerid_value:Oe[0].accountid,createdon:"2011-07-22T14:53:00.000Z",_primarycontactid_value:ee.steveRogers.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Problem,prioritycode:Ve["Priority 4"],statuscode:de["On Hold"],ticketnumber:"CAS-F1R5T-4V3NG3R",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"1b26b94d-737b-451b-b89d-725bd25ff02e",title:"Avengers Assemble",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.High,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2012-05-04T18:51:00.000Z",_primarycontactid_value:ee.nickFury.contactid,_bistech_createdbycontact_value:ee.nickFury.contactid,casetypecode:Se.Problem,prioritycode:Ve["Priority 2"],statuscode:de.Open,ticketnumber:"CAS-4553MBL3",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"3d6c7411-1622-48f3-bd0b-509d6a39a562",title:"Iron Man 3",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.High,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2013-06-03T09:19:00.000Z",_primarycontactid_value:ee.tonyStark.contactid,_bistech_createdbycontact_value:ee.tonyStark.contactid,casetypecode:Se.Problem,prioritycode:Ve["Priority 2"],statuscode:de.Open,ticketnumber:"CAS-1R0N-M4N-3",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"d437dde0-c79d-41c6-b719-e2378269dc7b",title:"Thor: The Dark World",bistech_customerreference:"",description:"",caseorigincode:Qt.Phone,bistech_urgency:mt.Low,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2013-11-08T16:34:00.000Z",_primarycontactid_value:ee.thor.contactid,_bistech_createdbycontact_value:null,casetypecode:Se["Support Request"],prioritycode:Ve["Priority 3"],statuscode:de["In Progress"],ticketnumber:"CAS-D4RK-W0RLD",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"50990913-8ecf-4d6f-b806-b01278c68369",title:"Captain America: The Winter Soldier",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.High,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2014-04-04T06:49:00.000Z",_primarycontactid_value:ee.steveRogers.contactid,_bistech_createdbycontact_value:ee.steveRogers.contactid,casetypecode:Se.Change,prioritycode:Ve["Priority 2"],statuscode:de["In Progress"],ticketnumber:"CAS-50LD13R",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"3f9df6ef-43ae-44da-b3aa-6876c6e68657",title:"Guardians of the Galaxy",bistech_customerreference:"",description:"",caseorigincode:Qt.Phone,bistech_urgency:mt.Low,severitycode:vt.Low,_customerid_value:Oe[0].accountid,createdon:"2014-08-01T16:37:00.000Z",_primarycontactid_value:ee.peterQuill.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Problem,prioritycode:Ve["Priority 4"],statuscode:de.Open,ticketnumber:"CAS-V0LUM3-1",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"e41f0c8c-108e-4f3e-964c-273361425f48",title:"Avengers: Age of Ultron",bistech_customerreference:"",description:"",caseorigincode:Qt.Event,bistech_urgency:mt.High,severitycode:vt.High,_customerid_value:Oe[0].accountid,createdon:"2015-05-01T14:51:00.000Z",_primarycontactid_value:ee.nickFury.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Incident,prioritycode:Ve["Priority 1"],statuscode:de.Resolved,ticketnumber:"CAS-4G3-0F-ULTR0N",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"585d45bc-34bb-4537-9ef7-ed66d69e54cb",title:"Ant-Man",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.High,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2015-07-17T12:03:00.000Z",_primarycontactid_value:ee.scottLang.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Incident,prioritycode:Ve["Priority 2"],statuscode:de["Pending Feedback"],ticketnumber:"CAS-4NT-M4N-1",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"e5367559-36f0-4494-87bd-6cb8249c8d2c",title:"Captain America: Civil War",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.Low,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2016-05-06T17:39:00.000Z",_primarycontactid_value:ee.steveRogers.contactid,_bistech_createdbycontact_value:ee.steveRogers.contactid,casetypecode:Se.Incident,prioritycode:Ve["Priority 3"],statuscode:de.Open,ticketnumber:"CAS-C1V1L-W4R",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"c083ad34-69b2-4603-9358-522e56b3da29",title:"Doctor Strange",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.Medium,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2016-11-04T17:39:00.000Z",_primarycontactid_value:ee.stephenstrange.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Incident,prioritycode:Ve["Priority 2"],statuscode:de["On Hold"],ticketnumber:"CAS-K4M4R-T4J",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"77e4a7a4-7037-41ed-8e8f-8a218fafb9a4",title:"Guardians of the Galaxy Vol. 2",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.Medium,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2017-06-05T11:48:00.000Z",_primarycontactid_value:ee.peterQuill.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Problem,prioritycode:Ve["Priority 2"],statuscode:de.Closed,ticketnumber:"CAS-V0LUM3-2",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"aa1313df-0590-46ae-ab9a-61c7d1a17b06",title:"Spider-Man: Homecoming",bistech_customerreference:"",description:"",caseorigincode:Qt.Email,bistech_urgency:mt.Low,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2017-07-07T12:20:00.000Z",_primarycontactid_value:ee.peterParker.contactid,_bistech_createdbycontact_value:null,casetypecode:Se.Incident,prioritycode:Ve["Priority 3"],statuscode:de["In Progress"],ticketnumber:"CAS-H0M3C0M1NG",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"c348955f-ad48-43c3-88ab-423ff2bb8e28",title:"Thor: Ragnarok",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.Low,severitycode:vt.Low,_customerid_value:Oe[0].accountid,createdon:"2017-11-03T09:54:00.000Z",_primarycontactid_value:ee.thor.contactid,_bistech_createdbycontact_value:ee.thor.contactid,casetypecode:Se.Incident,prioritycode:Ve["Priority 4"],statuscode:de["Closure Requested"],ticketnumber:"CAS-R4GN4R0K",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"864e4f6f-fac6-45b1-b720-b52153259fe3",title:"Black Panther",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.High,severitycode:vt.High,_customerid_value:Oe[0].accountid,createdon:"2018-02-16T15:29:00.000Z",_primarycontactid_value:ee.tchalla.contactid,_bistech_createdbycontact_value:ee.tchalla.contactid,casetypecode:Se.Incident,prioritycode:Ve["Priority 1"],statuscode:de.Closed,ticketnumber:"CAS-W4K4ND4",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"3b5b1840-c978-476e-8697-149b16573f81",title:"Avengers: Infinity War",bistech_customerreference:"",description:"",caseorigincode:Qt.Portal,bistech_urgency:mt.High,severitycode:vt.High,_customerid_value:Oe[0].accountid,createdon:"2018-04-27T12:33:00.000Z",_primarycontactid_value:ee.nickFury.contactid,_bistech_createdbycontact_value:ee.nickFury.contactid,casetypecode:Se["Major Incident"],prioritycode:Ve["Priority 1"],statuscode:de["In Progress"],ticketnumber:"CAS-G4NTL3T",bistech_resolutiondate:null,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]},{incidentid:"eed5699c-4395-489e-853f-9e7a6d5ea0ea",title:"Ant-Man and the Wasp",bistech_customerreference:"",description:"Marvel Reference",caseorigincode:Qt.Portal,bistech_urgency:mt.Medium,severitycode:vt.Medium,_customerid_value:Oe[0].accountid,createdon:"2018-07-06T19:18:00.000Z",_primarycontactid_value:ee.scottLang.contactid,_bistech_createdbycontact_value:ee.scottLang.contactid,casetypecode:Se["Major Incident"],prioritycode:Ve["Priority 2"],statuscode:de.Resolved,ticketnumber:"CAS-TTH3-W4SP",bistech_resolutiondate:new Date,incident_adx_portalcomments:[],incident_bistech_majorincidentupdates:[],incident_bistech_portalemails:[]}],xc=[{productid:"a4b1348b-e132-4b1c-827c-ded137104edb",bistech_tiletargeturl:"https://account.meraki.com/login/dashboard_login",bistech_portaltilemapping:it.Meraki},{productid:"064d5ab4-391f-4043-8cbd-ff662f9a834b",bistech_tiletargeturl:"https://login.mimecast.com/u/login/?gta=apps#/login",bistech_portaltilemapping:it.Mimecast},{productid:"147d1482-a8c8-40af-a851-5a8d341ab857",bistech_tiletargeturl:"https://utm.bistech.co.uk/login?redir=%2Fng",bistech_portaltilemapping:it.FortiGate},{productid:"082c9cae-01fb-4c56-924d-6519841f33ac",bistech_tiletargeturl:"https://csp.bistech.co.uk",bistech_portaltilemapping:it.MicrosoftLicensing}];var Jo=(e=>(e[e.Active=0]="Active",e[e.Submitted=1]="Submitted",e[e.Canceled=2]="Canceled",e[e.Fulfilled=3]="Fulfilled",e[e.Invoiced=4]="Invoiced",e))(Jo||{}),qe=(e=>(e[e.New=1]="New",e[e.Pending=2]="Pending",e[e["On Hold"]=69097e4]="On Hold",e[e.Signed=690970001]="Signed",e[e.Processing=690970002]="Processing",e[e["Project Onboarding"]=690970004]="Project Onboarding",e[e["In Progress"]=690970005]="In Progress",e[e["Processing Complete"]=690970006]="Processing Complete",e[e["In Progress*"]=3]="In Progress*",e[e.Complete=100001]="Complete",e[e.Partial=100002]="Partial",e[e.Invoiced=100003]="Invoiced",e[e.Cancelled=690970003]="Cancelled",e[e.Revised=100004]="Revised",e[e.NoMoney=4]="NoMoney",e))(qe||{});const aA="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jEcSKiDoqjAH4UAOooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooqK6uoLO2e5uZVihjGWdjgCgCWivONQ8S6x4pvH0zw5E8Vt0ef7rEepP8I9up/Suz8OaVJo2kR2c101zICWZ2J6nsM9hQB5V4igW68fXNu5ISW7VCR1AJAr0QeA/DgtzF9iYnH+sMrbvr1x+lcBrH/JSH/6/k/9CFeyUAeJqkvhfxssaSMfs1wBnu0Z9fqpp/iZxd+OrlL+Vo4ftKxu/wDcjBAyPw5p3jUi68c3ixnO6SOPI9Qqg/qK77xL4JstduTeJM1rdMAGdV3K+OmRxz+NAC23hPwjcwKlvbwzjH3kuGYn3yGqLVtCs9C8GaxDZeZ5cqmQh2zg8Dj8q5HWfAOo6TYy30d3DPHAN7BcqwA7j/8AXU2i63eX/g7XLC8mabyIA0bucsATggnv2xQBb+E3/Hzqf+5H/Nq77VNLstXsza30IliJDAZwQR3BHSuB+E3/AB86n/uR/wA2rtfEuky61pD2cN01tLkMrjOCR2OOxoAzf+EB8Of8+kn/AH+b/Gj/AIQHw5/z6Sf9/m/xrA07xPq/he8XTPEkTywdEn+8wHqD/EP1H6V6DbXEN3bpcW8qyxOMq6nIIoA53/hAfDn/AD6Sf9/m/wAaP+EB8Of8+kn/AH+b/GunooA5j/hAfDn/AD6Sf9/m/wAaP+EB8Of8+kn/AH+b/Gunqpquow6Tps1/cK7RQgFhGAWOSBxkj1oAw/8AhAfDn/PpJ/3+b/Gj/hAfDn/PpJ/3+b/Gp9Q8XWFm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UuJXkiZBGFzxkjqc44oA6GsfSz9t1i/1BuVib7LD7BeWP4sf0rYrJ8Lwyw6FCJ43jmdnd1dSDksTyD7YoATWfI03w9PBbxhfMVooox/E754H4kmtCwgNrp9tbE5MUSx5+gArAe9eXXXuLvT78w2pKWyJbOwJ7yH+Q9q6K3mE8CShJEDDO2RSrD6g9KAJKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK57xvrR0XQJGibbcznyoiOoz1b8B+uK6GvOddH/CSfEa20v71rZ/6wduPmf8+FoA3PAGhDSdFFzMuLu7Ads9VX+Ff6n6+1dVQBgYFFAEdzcQ2ltJcTyCOKNSzMegArx7xV4vvNcneGB3gsAcLEDguPVvX6dK6b4p6q8VtbaVE2PO/ey47qD8o/PJ/AVzPgbw6mvaozXIP2O3AaQDjeT0X9D+VAGbpXh7VtXG6xspJI+nmHCr+ZwKu3XgnxFaxGVtPMijr5Tq5/IHJ/CvaIo0hjWOJFRFGFVRgAewp1AHgOnajf6Ne+faTPBMpww7H2Yd/wAa9MT4g2B8OG/ZP9NB8v7MD1fHX/d9/wAKXx/4Zh1DTpdTtogt7Au9io/1qDrn3A6flXktAF7VNVv9avPPvJmmkJwqjovso7Vp2ngrxDdxCVNPaNT0811Q/kTmu0+HvhmGz0+LVrqINdzjdFuH+rQ9CPcjnPp+NdtQB4TqvhzWNITzL2xeOP8A56KQy/mM4/GtHwp4vu9CmSGZnn08nDRE5Ke6+n06H9a9kdEkRkdQyMMFWGQRXj/j3w5HomopParizuclV/uMOq/Tnj/61AHrttPFdW8dxA4eKRQysOhBqSuB+FmqNNZ3OlyNnyCJIs/3T1H58/8AAq76gDlPiDoQ1TRjeQr/AKXZ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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFBAIweRRRQAigKoVQABwAO1LRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABTZI0lQpIiup6hhkGnUUAVF0rTUfemn2qt6iFQf5VbAAAAGAKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuf8baL/bWgSJEm65g/ew+pI6r+I/XFdBRQBynw+1wapootJnzdWYCNnqyfwn+n4e9dXXnHiexufCniGPxFpiZtpWxNGOgJ6g+zdR6H8K7zStStdW0+K9tH3RSDp3U9wfcUAW6KKKACvIPiFoP9lax9rgTFrdksMdFf+If1H/1q9frN8Q6RFrejz2MmAzDdG5/gcdD/AJ7E0Aee+E/HZ0u1j0/Uonlto+I5E5ZB6EdxXWv4+8OLDvF3I7f881hbd+ox+teP3MEtrcSW86FJY2KMp7EVoHw9qw0z+0vsh+x7N/m71xj8/wBKAL3i7xRL4iukCxmG0hz5cZPJP94+/wDKrnw80H+1NX+2zpm1tCG56M/Yfh1/L1rlra3lu7mK2gQvLKwRFHcmvddA0mLRNIgsYsEoMuw/jc9T/ntigDRooooAKKKp6tqdtpGny3t2+2NB0HVj2A9zQBz3xD1waboxsoW/0q8BQAdVT+I/j0/E+lX/AAZov9iaBFFIuLmb97N6gnt+A4/OuX8K6fdeKPEEniTU1/cRv+5jPQkdAPZf1P416NQAVmeItYTQtIkvnj81gQqR5xuY9B/X8K065/xtpt1qfh9o7NN88UizKn97Hb8jQBW/tbxRbafc32oabZQRRQPIAHJbcBwCM1Faa54l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ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqnqepQ6dAHk+Zm4VB1Nc4/ie+Z8okSr6bc/1q4wctjmq4qnSfLJ6nX0Vhad4kiuHEV0ghc9GB+U/4Vu9alxa3NadWFVXgwooopGgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABQTjk0jusaF3YKqjJJ7VyWt6611ut7UlYehbu//ANaqjFyMK9eNGN5GtceI7GGfyxvkAOCyAYrTtriK6gWaF9yN0Nec12XheCWHTWaQECR9yg+mBzWk4KKuceFxdSrU5ZLQwfEVw0+rSqT8sfyAfT/6+azVRnztUtgZOB0FWtW/5Ct1/wBdW/nV3wrg6sQRn9239K1+GJ57j7Wu03uzGrf0PXTblba6YmHor90/+tUuuaFt3XVmvHV4x29xXN0tJobVTC1P61PSlIZQykEHkEd6WuO0TW3smEE5L25/NK6+ORJY1kjYMjDII6GueUXE9qhiI1o3W46iiipOgKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKjnnitoWlmcIi9SajvbyGygMszYHYdyfQVxeqanNqM2XO2MfdQdBWkIORyYnFRoq27JtY1iXUH8tMpbg8L/AHvc1lgEnApyI0jhEBZicACus0XQ1tQLi6AabqF7J/8AXrdtQR5EKdTFTv8AiVtE0D7tzer7rGf5n/Cul6UUVzSk5O7Pco0Y0Y8sTz/Vv+Qrdf8AXVv51e8K/wDIWP8A1zb+lUdW/wCQrdf9dW/nV7wr/wAhY/8AXNv6V0S+A8Sl/vC9Tsq57XNCEu66s1w/Vox39xXQ0Vzxk4u6Pcq0o1Y8sjzUggkEYIrU0bWJNPk8t8vbseV9PcVta5oa3YNxbALP1K9n/wDr1yToyMVYEMOCDXSmpo8KdOphal1956NDNHcRLLE4dG5BFPrhNJ1WbTpuMvCx+ZP6j3rtrW5iu4FmhcMjfp7GuecHE9jDYmNZeZLRRRUHUFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABVPUtRh06DfJy5+6g6mrbusaM7HCqMk+1cDqN499ePM54Jwo9B2Fa04czOPF4j2MdN2JfXs19OZZmz6L2Ue1RQQSXEyxQoWdugFSWVnNeziKFck9T2A9a7PTNMh06Hag3SH7znqf8A61bzmoKx5dDDzxEuZ7dyHR9Hj09BI+HuD1bsvsK1KKK5G23dnu06caceWK0CiiikWcDqw/4ml1/11b+dXfCw/wCJsf8Arm39Kp6qP+Jpc/8AXRv51e8Lj/ian/rmf6V2yXuHz1L/AHlep19FFFcR9CFZOtaMl+pliwlwB17N9a1qKabTuiKlONSPLI83lieGRo5FKupwQe1WtN1GbTp98Zyh+8h6Gus1fSYtRj3DCTqPlb19jXF3EEltM0UqlXU4INdUZKaPBrUZ4ad18md9ZXkN9brNC2Qeo7g+hqxXE+H75rTUFQt+6lO1h/I121c848rPYwtf20LvdBRRRUHSFZPiHW10SCGVoDN5jFcBsY4rWrkPiJ/yD7T/AK6H+VAEX/Cfx/8AQPb/AL+f/Wo/4T+P/oHt/wB/P/rVw1FAHc/8J/H/ANA9v+/n/wBaj/hP4/8AoHt/38/+tXDUUAdz/wAJ/H/0D2/7+f8A1qB4/jzzp7f9/P8A61cNRQB6HbeOtOkbE8E0Pvww/wAa6Kyv7S/i8y0nSVe+08j6jtXjVT2d5cWNws9tK0ci91NAHs1I7KiM7HCqMknsKxvDWvJrVqQ4CXUY/eKOh9x7Vf1aN5tIvIovvtC4XHrg0Aef654rvr64dLSZ7e2BwoQ4Zvcn+lUbDxDqljMHS7kkUHlJGLKfzrLPBopgew6RqMWq6dFdxDAbhl/ukdRVyuZ8AxSJoTu+QskxK/TAH8xXTUgCiiigAooooAKKKKACiiuf8Y6nd6Xp8E1nIEdpdpJUHjB9aAOgorzD/hMNb/5+l/79r/hVnTPFWsXGp2sMlypSSVVYbF5BIz2oA9GooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArnNe8VDRtQFqbTzfkD7t+Oufb2ro6838ff8jAP+uK/wAzQBpf8J+P+gd/5F/+tWp4e8TnWr17b7J5O2Mvu357genvXmldT8Pf+Q1N/wBcD/6EtAHolFFFABRRRQAUUUUAUdaYppNwR3XH5nFcLXoGoQm4sJoR95lOPr2rgSCCQRiuvD7M8XMk+eL8jrfDEKJpvmgfPIxyfpWzXLeHdTS3zaTttRjlWPQH0rqaxqpqTuehg5xlSSj0CiiquoX8OnwGSU5J+6o6sazSbdkdMpKKux93dw2cJlmbA7DuT7VzF7r11cMRE3kx+i9fzrPvr+a/nMsrf7qjooqO3hluJVihQu56AV3U6MYK8tzxMRip1Xyw0X5jWJZizEkk5JNOhkkhkDxOyMO6nFE8bQTPE+NyEqcetPtLaW7kaOFdzBS2PXFb6WucKjK9lubGn+IZY2CXf7xP746j/GuljkSWNZI2DIwyCK8+ZSrEMCCOoNaGlarJYSbTl4SeV9PcVz1aCesTvw2NlB8tTVHZ0VHBPHcwrLEwZG71JXDse0mmroK5nxdCga3mAAcgqffH/wCuukkdIo2eRgqqMkntXF65qI1C7Bj/ANVGMLnv71tRTcrnFj5xVLle7MxSVYEdRXo8ZLRqx6kA15/ZQNc3kUKjJZgPwr0IDAAHQVVfoYZanaT9AooornPVCuQ+In/IPtP+uh/lXX1yHxE/5B9p/wBdD/KgDgaKKKYHZWngYXFpDP8Ab9vmIHx5fTIz61L/AMIAP+gj/wCQv/r11mlf8gmz/wCuKf8AoIq1SA4n/hAB/wBBH/yF/wDXqrfeBLuGIva3KTkfwEbSfpXoFFAHikkbxSNHIpR1OCpGCDTa6v4g2scOpwXCABpkO7Hcjv8AkR+VcpTA0NAv203WLe4Bwu7a49VPWvXa8SHWvZ7Vv9ChZuvlgn8qQHMa54MjvLhrmxlWB3OWjYfKT6jHSqVh4Dm85WvrqMRg8rFkk/iRxW4fGGiA4+0v/wB+m/wpP+Ex0P8A5+X/AO/Tf4UAbcEMVtAkEKBI0G1VHYVJVewvYNQtEubZi0TZwSMdDirFABRVPUNUsdNTdd3KR+i9WP0HWueufHlkjEW9rLL7sQo/rQB1tFcN/wAJ++f+QcuP+uv/ANarEPj62JAnsZFHco4b/CgDsaKy9O8Q6XqRCQXIWQ/8s5Plb/6/4VqUAFcn8Q/+QTbf9d//AGU1t6nrmn6VKkd5KyM43DCE8fhXJeMNd07VdPhhs5Wd1l3EFCOMH1oA5Cr2h865Yf8AXdP/AEIVRq1pU8dtqtpPKcRxyqzEDOACCaYHsdFYH/CY6H/z8v8A9+m/wo/4THQ/+fl/+/Tf4UgN+iq9jeQ39qtzb7jE/wB0spXP51YoAKKydS8R6XprFJrgPIP+WcfzH/61YU3j6EE+RYOw9XfH8gaAOzoriI/H53fvNOGP9mX/AOtWtYeMdKuyEkd7Zz/z1HH5igDoaKRHWRA6MGU8gg5BpaACiiigAooqlqGrWGmrm7uUjPUL1Y/gKALtFcjc+PLNGIt7SWX3Yhf8aqf8J++f+QcuP+uv/wBagDuaK5K28eWTsBcWssQ9VIYf0rodP1Wx1JN1pcJJ6r0YfUdaALleb+Pv+RgH/XFf5mvSK838ff8AIwD/AK4r/M0Ac1XU/D3/AJDU3/XA/wDoS1y1dT8Pf+Q1N/1wP/oS0AeiUVTv9UsdOTdd3KR+inlj9B1rnrnx5ZIxFvayy+7EKP60AdbRXDjx++7nTlx/11/+tWhY+N9OuHCXEclsT/EfmX9Of0oA6iimRSxzxLLE6yRsMhlOQafQAVy/iDSWjka8gXMbcuB/CfX6V1FBAIwRkVcJuDujGvRjWjys85rf0XWzDtt7psx9Ff8Au/X2p2s6J5e65tFynVkHb6e1YGK7ly1YnhfvcJU/rU7XVNVg063Dkh5GHyID19/pXE3d5NeTmaZ9zH8h7Cmyqz4OSSBjmpNOsJ9QuBDEvT7zHoo96mNNUldnROvLEuy+4LO1mvZxDCu5j+Q9zXa6XpkOnQ7V+aQ/ef1/+tT9O0+DT7cRxDJP3nPVjVuuerVc9Fsd+Hwqpe9Lc4DVj/xNbr/rq386veFTnVj/ANc2/pWdq5/4m11/11b+dXvCZzq5/wCubf0rok/3fyOCnH9+n5m9q+jpeKZoQFnH5NXKSRvFIyOpVlOCDXoNZ2raVHfpvXCTgcN6+xrGjX5fdlsdOLwfP79Pf8zmtN1GXT5sr80Z+8h6Gusj1C1kszdCUCMdc9R7VxM8MlvK0UqlXXqDUe5tu3Jx6V0VKUZ6nDQxc6F47mhrGryX77EykCnhfX3NZgBJwBkmnIjOwVQSx4AFdXouiraAXFyA03Zeyf8A16mTjTiTTp1MVO7+8Tw/pJtF+0zjEzDCr/dH+NbdFFcUpOTuz3qVKNKKjEKKKKk0CuQ+In/IPtP+uh/lXX1yHxE/5B9p/wBdD/KgDgaKKKYHself8gmz/wCuKf8AoIq1Xl8Pi3WIIUhSdAiKFUeWvQfhT/8AhMtb/wCe6f8Aftf8KQHptFeZf8Jlrf8Az3T/AL9r/hVW+8SatfRGKa7YRngqgC5/KgC7421OLUNWWOBg8duuzcOhbvj9K5yipLe3muplht4mkkboqjJpgS6baPfajBaoMmRwPoO5/KvYXULAyjoFwPyrn/CvhwaShubnDXbjGByIx6fWuhl/1T/7ppAeKv8AfP1pKV/vn60lMD1DwZ/yLNt9W/8AQjVfxZ4j/spBa2pBu3GSTz5Y9frVjwaQPDFuT0Bf/wBCNecaldPe6jcXMhy0jk/h2FICGeaW4laWaRpJGOSzHJNMortPCPhqzvLAX96pl3sQkecAAcZPrTA4uivYY9K06NdqWFsB/wBchVW78N6PdqQ9lHGT/FENh/SkB5QCQcjg11vhTxHqAvIdPlV7uNztHdk98+n1qvr3hG405TcWjNcW+eRj51+o711HhPQRpNp586/6XKPm/wBgf3f8aAMH4if8hC0/65H+dchXqmt+HbbWpo5Z5pYzGu0BMevuK5LxR4btdFsYp4JpXZ5NhD4xjBPYe1AHMUUVY063W71G2tnJVZZVQkdQCcUwK9a/hvR31jUljIIt4/mlb29Pqa6r/hA9P/5+rn/x3/Ct7SNKttIs/s9vkgnczt1Y+9IC1+6tbf8AhihiX6BQK8/8ReLZ712trBmhthwXHDP/AICrXjvWmaUaVA+FXDTEdz2X+tcZQAE55NFXtI0q51e8FvbL7s56KPU131h4O0q1jHnxtcyd2ckD8AKYHmdFerTeGNFlQqbFFz3QkGuQ8ReEpNNja6s3aa2XlgfvJ/iKQGbomv3ujyjy3MkBPzQseD9PQ16bpeo2+qWa3Ns2VPBU9VPoa8drZ8L6w2k6mpZj9nlIWUe3r+FAHqlFAIIyDkGub8aay2nWAtoGxcXAIyOqr3P9PzoAo+J/Fxgd7LTGBccPN1wfRf8AGuGkkkmkaSR2d2OSzHJNNopgFFdTongy4vYluL2Q20TDKqB85H9K6AeCdHCbT55P97fz/KkB5tT4ZpbeVZYZGjkU5DKcEV1ur+B5YI2l06VpgOTE/wB78D3rkRG5k8sI2/O3bjnPpimB3/hjxWL5lsr8hbg8JJ0D+x9DWH4+/wCRgH/XFf5mtzwt4VWyCXt+ga56pGekfuff+VYfj7/kYB/1xX+ZpAc1V7StUuNKkmlttokkjMYYjO3kHI/KqNAGeBTAfPNLcStLNI0kjHJZjkmmV1Gj+C7u9jWa8k+yxtyFxlz+Hatk+AtP2YF3cbvX5cflikB59RW9r3he60hPPVhPbZxvAwV+orBpgb3hbXpNKvFhlcmzkOHU/wAJ/vCvTwQRkcivEq9X8L3Ru/D1pIxJZV2En/ZOP6UgNaiisHxFrv2EG1tiDcMPmb+4P8aqMXJ2RM5qCuyTXddj09TDAQ9yfyT61x6XBZz5hySc5qszs7FmYsx5JPetPRdGm1OXJykCn5n/AKD3rsglSVzyqt8Q7Edaej6o2nyFGG6Fz8w7j3rT1LQIjbq1ku10GNufvD/GubZSrFWBBHBBrWMo1YnHOnUws0zv4ZY54lkiYMjcgin1xel6nLYScfNEfvJ/h7119tcRXUKywtuU/pXDVpOm/I9nDYmNdeZ59rB/4m93/wBdW/nWh4RP/E4P/XJv6Vn6x/yF7v8A66t/Or/hD/kMH/rk39K6JfAckP4q9Tt6r3t5DZQGWZvoo6saZqGoQ2EO+Q5c/dQdTXHXt5NezmWVs+g7AVjSouer2OjFYtUVyx1kO1G9kv7gyyYAHCqOwqpU1vby3MyxRKWZu1dND4ftlsjFIczNz5g7H2rslOFNJHk06FXENyRzVpcSWlws0ZG5fUV2Wm6jDqEO5PlkH3k7j/61chfWU1jOYpV+jdiKjt55baZZYmKsvcVNSnGoroqhiJ4aXLLbqjv6Ko6VqKahBnhZV+8v9avV58ouLsz34TjOKlHYKKKKRQVyHxE/5B9p/wBdD/KuvrkPiJ/yD7T/AK6H+VAHA0UUUwCivU9N0PSpNNtZH0+BmaJSSUHJwKsf2Bo//QNt/wDvgUgPJKK9b/sDR/8AoG2//fAqOfw1o00ZQ2ESZ7p8pH5UAeUVp6Rr19pDYt2Qxk5ZGUEH8etWfE3h59FnV43MlrIcIx6g+hrDpgeraDr9rrUJ2fu7hRl4if1HqK1Zf9U/+6a8csLyawvYrqBtrxtn6+1euw3CXenpcx/clj3j8RSA8bf75+tJSv8AfP1pKYHp/g4bvC9uvrvH/jxrzS5iaG6liYYZHKkfQ16Z4M/5Fm2+rf8AoRrnvG2gyR3L6nbIWik5lAH3G9foaQHIV0vhrxUdIg+yXEJlt85UqfmXPX61zVFMD1O28VaLcD/j7EZ9JFK//WrTgvbS5/1FzDL/ALjg14zShipBBII7ikB7ZRXlOneJdV09gEuWljH/ACzl+Yf4j8K7vQPElrrI8vHk3QGTGT19we9AG3XJ/EP/AJBNt/13/wDZTXWVyfxD/wCQTbf9d/8A2U0AefVe0P8A5Dth/wBfCf8AoQqjV7Q/+Q7Yf9fCf+hCmB6/UdxMtvbSzv8AdjQsfoBmpKyvFDmPw5fEd49v5kD+tIDyy6ne6upbiQ5eRixPuaioopgen+FLO303RYsugmmAkkO4Z56D8BW158P/AD1T/voV4tRSA9p8+H/nqn/fQpGlgdSrSRlSMEFhzXi9FAGhr9imn6xcW8ZBiDbkwc/KeRWfRRTA9V8J3hvfD9s7HLxjy2P06fpiuA8U3pvtfuXzlEby1+i8fzzXUfD+UjSbtT0STcPxH/1q4OVi8zserEmkA2ul8EaSl/qTXM67obfBwRwW7f41zVej+AYlTQWkA5klYn8ABQB01FFFABVFdIsV1RtREC/aSMbu2fXHr71eooAK838ff8jAP+uK/wAzXpFeb+Pv+RgH/XFf5mgDmq6TwLaw3OuEzRh/KjLpnoGyBn9a5uup+Hv/ACGpv+uB/wDQloA9EooooAiuoEurWW3kAKSKVIPvXjMi7JGU9jiva68Wuf8Aj5l/3j/OgCOvTPA3/Itx/wDXRv515nXpngb/AJFyP/ro386ANy7nW2tJZ26RqWrzOeZ553mkbc7kkmvQPEGf7Eusf3R/MV53XTQWjZw4p6pGvoGjNqcxeQlbeM/MR1J9BXdwwxwRLFEgRFGABWT4U2f2Im3rvbd9c/4YrZrOrJuVjehBRin3CsrV9IS9UyxALOPyb61q0VEZOLui6lONSPLJHn0kbxSNHIpVlOCD2qzp+oTWEu6M5U/eQ9DXUarpUd+m4YSYdG9fY1yd1Zz2kmyaMqex7H6V6EKkaqszwq1Cphpcy27lS/3XN9NOqYEjlgM9MmrGjXD6ddtcGMMdhUDPc4qKlq/Zq1jP6xNO63Jbm4lupmlmYsx/Sls7Sa8nEUK5J6nsBU1hplzfONiFU7uegrrrGyhsYBHEOf4mPVjWdSqqastzbD4Wdd80tvzGabp0Onw7UG6Q/efuf/rVcoorz23J3Z7sIKC5YrQgvLSG9gMUy5HY9wfauM1CyksbkwvyOqt6iu6rnvFezbb/AN/5vy4row82pcvQ4cfRjKn7TqjJ0q6NpfxyZ+Una30NdvXngznjrXoMefLXPXAqsUtUzLLZNqUR1FFFch6oVyHxE/5B9p/10P8AKuvrkPiJ/wAg+0/66H+VAHA0UUUwPY9K/wCQTZ/9cU/9BFWqq6V/yCbP/rin/oIq1SAKKKOlAHPeOVVvDchbqsilfrn/AAzXmddh441yG62adauHVG3SOp4z2FcfQAV6d4RkaTwrDu/hDr+przGvUvC8Bt/C1up4LIz/AJkkUAeXP98/WkpX++frSUwPUPBn/Is231b/ANCNbpAIIIyD1BrC8Gf8izbfVv8A0I1d1rV7fR7IzzfMxOEjB5Y0gMvVPBunXrGSAm1kPPyDKn8P8K5258D6pEf3EkM6+zbT+v8AjXd6bqVrqlqtxayBlPVe6n0Iq3QB5NceHNYtgTJYSkDug3fyrMZWRirqVYdQRivbKyvEGk2mpafMZo1EqIWSXHKkD19KAPJ6ktp5bW4jnhcpJGwZSOxqOimB7Hpl4t/p1vdqMeagYj0PcfnXO/EP/kE23/Xf/wBlNXvBJJ8NQZPRnA/76NUfiH/yCbb/AK7/APsppAefVe0P/kO2H/Xwn/oQqjV3RWCa3YsxwBOhJ/4EKYHsFZniWMy+Hb5QMkRlvy5/pWnTZY1lieNxlXUqfoaQHilFWNQtHsb+e1kHzRuV+voar0wOhg8G6pcQRzxtblJFDKd56H8Kk/4QfV/W3/77P+FbHgjXY5LddLuHCyp/qSf4h6fUV2FIDzf/AIQfV/W3/wC+z/hR/wAIPq/rb/8AfZ/wr0iigDzf/hB9X9bf/vs/4Uf8IPq/rb/99n/Cu71DVrHTTGLudY2kYBR1P1+nvV0EEAg5B6EUAc94T0W60m1uYrsx5lYEbGz2Neb3CGK4kjPBVip/A17TXl3jGwNlr0zBcRz/AL1T9ev65oAw69F8ATiTRZIf4opT+RA/+vXnVbnhLWF0nU/3xxbzDZIf7vof8+tMD1GikVldQykMpGQR0NLSAKKKxF8U6a2sHT/Mx2E2fkLen/16ANuvN/H3/IwD/riv8zXpFeb+Pv8AkYB/1xX+ZoA5qup+Hv8AyGpv+uB/9CWuWrqfh7/yGpv+uB/9CWgD0SiiigArxa5/4+Zf94/zr2mvFrn/AI+Zf94/zoAjr0zwN/yLkf8A10b+deZ16Z4G/wCRcj/66N/OgDcuoFubWWBukilfzrzO4he3neGQYdCQRXqNYPiLQ/t6/abYAXCjlf74/wAa2pT5XZnNiKbmrrdHP6DrLaXMVcFreQ/MB1B9RXdwTR3EKywuHRhkEV5e6NG5R1KsDgg9q0dG1ibTJuMvAx+aP+o961qU+bVGFGtye7LY9CoqG0uoby3WeBwyN+nsamrkO9O+qCmvGkilZEV1PZhkU6igZ57qh8rVLmOPCoshAA6Dmr3hhEuNUKzKsiiMkBhkZyKoaz/yGLv/AK6t/OtDwj/yFm/65N/MV3yb9meNCEfbLTqdmAAMAAAdhRRRXAeyFFFVr69hsYDJKef4VHVjTSbdkTKSiry2HXd1DZwGWZsAdB3J9q43Ub2S/ujK/A6KvoKS+vpr6cySnj+FR0AqKCCS4lWKJSzt0Ar0KVJU1d7nhYnFOu+WO35k+lWpu7+KMD5QdzfQV3FUNJ01NPgwcNK33m/pV+uStU55abHp4Og6MPe3YUUUVidgVyHxE/5B9p/10P8AKuvrkPiJ/wAeFp/10P8AKgDgaKKKYGlHr+rRxrGl/MqKAAAegFL/AMJDrB/5iM//AH1WZRQBp/8ACQ6x/wBBGf8A77qGfV9SuUKTX07oeqlzg1SooAKKME9q2NK8NalqbArCYoT1lkGB+HrQBX0TTJdW1KO2QHZnMjf3V7mvWSixWpjQYVU2gegAqlouj22j2vkwDc7cvIerGr8v+qf/AHTSA8Vf75+tJSv98/WkpgeleGLqKy8HR3M7Yjj3k4H+0a4XW9Vn1e/a4lOF6Rp2VfSu/wDByq/heBHUMrbwQRkH5jWNr3gttzXGlYIPJgJ6f7p/pSA5GxvrrT5xNazNE49O/wBR3rr9P8eAKFv7Uk93hPX8D/jXGT281tKYp4njcdVYYNR0wPST420cLn9+T6bP/r1ha74ye+tntbKEwxyDazufmI9OOlcnRSAKVFZ3CqCWJwAO9Pgt5rmVYoImkduiqMmu88L+FDYyLfagAZxykfUJ7n3pgb+iWR0/R7a1b76J83+8eT+prI8ewGXQVkA/1UqsfoQR/UV0tQXtrHe2ctrMMpKpU/40gPGaASpBBwR0NXdW0u50m8a3uEOP4Hxw49RVKmB2Vn48ljtlS5sxLKoxvV8bvcjFXfDviqbVNae3uVSOORP3SL2I5698jP5VwFTWlxJaXcVxEcPGwYfhSA7nxxobXUQ1K2TMsYxKo6svr+H8vpXAV7TbTC4topgpAkQNhhgjIrkfEXg4TO91pYCueWgPAJ/2fT6UAcIrFWDKSCOQR2rpdO8aalaII51S6QdC/DfnXPXFvPaymKeJ4nHVWGDUdMDuD4/TZxpx3f8AXXj+VZ17431K4UrbpHbA91G5vzP+FcxRSAfPPLcStLNI0kjclmOSa7LwZ4j2lNLvX4PEMh7f7J/pXKWGm3moyiO0t3kPcgcD6ntXfeHPCkWmMt1dlZrrsB91Pp6n3oA6WsXxTo39r6aRGB9pi+aM+vqPxraooA8TdGjdkdSrKcEHqDSV6X4j8Lw6rm5tysN33P8AC/19/evPr/TrzTpjFdwPG3YkcH6HvTAv6P4m1DSVESMJYB/yzk5A+h7Vvjx+uz5tOO/2l4/lXD0UAb+reLdR1GMwpttoW4Kx9T9TWBRVvTtMvNTmEVpAznu38K/U0AdR4S8TyiSLTb3dIrELFIBkj2PqKo+Pv+RgH/XFf5mur8O+G4NGTzXIlu2GC+OF9h/jXKePv+RgH/XFf5mkBzVdT8Pf+Q1N/wBcD/6EtctXU/D7/kNTf9cD/wChLQB6JRRRQAV4tc/8fMv+8f517TXi1z/x8y/7x/nQBHXpngb/AJFyP/ro3868zr0zwN/yLkf/AF0b+dAHQ0UUUAY2u6FHqKGaEBLkDr2f2P8AjXDzQyQStFKhR1OCD2r1GszWdGh1OLPCTqPlf+hranUtozlrUOb3o7nF6XqlxplxviOUP3kPRhXe6ffwajbCaBs/3lPVT6GvOru1ms7hoJ0KOv61Jp9/Pp9wJoGwe47MPQ1tOmp6o56VV03Z7HpdFUdK1SDU4N8Z2yD78Z6r/wDWq9XI01oz0U1JXR53rP8AyGLv/rq3860fCP8AyFm/65H+YrO1n/kMXf8A10b+daHhH/kLN/1yP8xXbL+H8jyofxl6naUUVn6tqsWnRY4eZh8qf1NcSi5OyPUnNQXNLYk1LUYdPh3Od0h+6nc//Wrjru7mvJjLM2Seg7Cori4lup2mmcs7VNY2U17MIol+p7AV6FOmqauzwcRXniJcsduw21tpbuYRQruY/pXY6ZpsWnw4X5pT95/X/wCtT7CwhsIdkYyx+8x6mrVc1Ws56LY9LC4RUvel8X5BRRRXOdwUUUUAFQ3NpbXaqtzBHMqnIDqDipqKAKH9i6V/0DrX/v0tH9i6V/0DrX/v0tX6KAKH9i6V/wBA61/79LR/Yulf9A61/wC/S1fooAof2LpX/QOtf+/S0f2LpX/QOtf+/S1fooArQ6fY25zDZwRn1WMCrNFFABQRkYPSiigCj/Yulf8AQOtf+/QpP7F0r/oHWv8A36Wr9FAEcEENtEIoIkjjHRUGAKkoooAhubS2u02XMEcy+jqDWPP4P0WZiRbvGT/cc/1reooA5j/hBtJz/rLn/vsf4VYg8HaLEQTDJLj++5/pit+igCC1srWyTZa28cK/7C4zU9FFABRRRQBBd2dtfQmG6hSVD2YdPp6Vz1x4G0yRswyzw+wIYfqK6iigDkU8BWQPz3k5HsAK1tO8M6VpziSO38yQdHlO4j+lbFFABRRRQBBdWdreR7Lm3jmX0dc4rGn8HaLKxKwyRZ/uOf65roKKAOZXwPpIOS9yfYuP8KuW3hXRbc5FmJD/ANNGLfp0raooAbFFHCgSJFRB0VRgCnUUUAFFFFABTJoYp4zHNGkiHqrjIp9FAGHceEdFnbP2YxH/AKZuR+lVf+EG0nOfMucem8f4V01FAGHbeEtFt23fZTKf+mjE/p0rZiijgjEcMaxoOiqMAU+igAqrcadY3UnmXFpDK+MbnQE4q1RQBQ/sXSv+gda/9+lqa20+ytJDJbWkMLkYLIgBxVmigAooooAKonRtLJJOnWxJ7+UKvUUAUP7F0r/oHWv/AH6Wrdvbw2sXlW8SRRg52oMCpKKACiiigAooooAo6rpcGpwbJBtkX7kgHK//AFq4LULCfT7gwzrg9j2Yeor0uquoWEGo25hnXP8AdYdVPqK1p1OXR7HPWoqeq3PO7S6ms7hZ4HKOvp3r0HSNQGpWKz7drZ2uvoa5KfwzqMdxsjjEiZ4cMAK6vRdP/s2wWAsGcnc5HTNXVcWroyw8Zxk01ocVrP8AyGLv/rq3860fCP8AyFm/65N/MVT1+Ixa1cgj7zbh+PNQWF7NYzNLAQHKlckZxmt7c0LI4+bkq3fRnY6zrMenoY48PcEcDsvua46WWSeVpZWLOxySajd2kcu7FmY5JPetDSdLm1Gbj5Yl+8/+HvThCNNXZFWpPESsvuE03T5r+bZGMKPvOegrs7KzhsoBFCuB3Pdj70+1torSBYYV2qP1+tS1y1arnp0PRw2GjRV3uFFFFYnWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAY3iDRzqCLNBgToMYP8Q9K5N9PvI5NjWsob02GvRaK2hWcVY5auFjUfNexx+m+Hbmdw90DDF6H7x/DtXWQQx28KxRIFRegFSUVM6jnuaUqEKXwhRRRWZsFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB87f8ACR69/wBBvUf/AAKf/Gj/AISPXv8AoN6j/wCBT/40UUAH/CR69/0G9R/8Cn/xo/4SPXv+g3qP/gU/+NFFAB/wkevf9BvUf/Ap/wDGj/hI9e/6Deo/+BT/AONFFAB/wkevf9BvUf8AwKf/ABo/4SPXv+g3qP8A4FP/AI0UUAH/AAkevf8AQb1H/wACn/xo/wCEj17/AKDeo/8AgU/+NFFAB/wkevf9BvUf/Ap/8aP+Ej17/oN6j/4FP/jRRQAf8JHr3/Qb1H/wKf8Axo/4SPXv+g3qP/gU/wDjRRQAf8JHr3/Qb1H/AMCn/wAaP+Ej17/oN6j/AOBT/wCNFFAB/wAJHr3/AEG9R/8AAp/8aP8AhI9e/wCg3qP/AIFP/jRRQAf8JHr3/Qb1H/wKf/Gj/hI9e/6Deo/+BT/40UUAH/CR69/0G9R/8Cn/AMaP+Ej17/oN6j/4FP8A40UUAH/CR69/0G9R/wDAp/8AGj/hI9e/6Deo/wDgU/8AjRRQAf8ACR69/wBBvUf/AAKf/Gj/AISPXv8AoN6j/wCBT/40UUAH/CR69/0G9R/8Cn/xo/4SPXv+g3qP/gU/+NFFAB/wkevf9BvUf/Ap/wDGj/hI9e/6Deo/+BT/AONFFAB/wkevf9BvUf8AwKf/ABo/4SPXv+g3qP8A4FP/AI0UUAH/AAkevf8AQb1H/wACn/xo/wCEj17/AKDeo/8AgU/+NFFAB/wkevf9BvUf/Ap/8aP+Ej17/oN6j/4FP/jRRQAf8JHr3/Qb1H/wKf8Axo/4SPXv+g3qP/gU/wDjRRQAf8JHr3/Qb1H/AMCn/wAaP+Ej17/oN6j/AOBT/wCNFFAB/wAJHr3/AEG9R/8AAp/8aP8AhI9e/wCg3qP/AIFP/jRRQAf8JHr3/Qb1H/wKf/Gj/hI9e/6Deo/+BT/40UUAH/CR69/0G9R/8Cn/AMaP+Ej17/oN6j/4FP8A40UUAH/CR69/0G9R/wDAp/8AGj/hI9e/6Deo/wDgU/8AjRRQAf8ACR69/wBBvUf/AAKf/Gj/AISPXv8AoN6j/wCBT/40UUAH/CR69/0G9R/8Cn/xo/4SPXv+g3qP/gU/+NFFAB/wkevf9BvUf/Ap/wDGj/hI9e/6Deo/+BT/AONFFAB/wkevf9BvUf8AwKf/ABo/4SPXv+g3qP8A4FP/AI0UUAH/AAkevf8AQb1H/wACn/xo/wCEj17/AKDeo/8AgU/+NFFAB/wkevf9BvUf/Ap/8aP+Ej17/oN6j/4FP/jRRQAf8JHr3/Qb1H/wKf8Axo/4SPXv+g3qP/gU/wDjRRQAf8JHr3/Qb1H/AMCn/wAaP+Ej17/oN6j/AOBT/wCNFFAB/wAJHr3/AEG9R/8AAp/8aP8AhI9e/wCg3qP/AIFP/jRRQAf8JHr3/Qb1H/wKf/Gj/hI9e/6Deo/+BT/40UUAH/CR69/0G9R/8Cn/AMaP+Ej17/oN6j/4FP8A40UUAH/CR69/0G9R/wDAp/8AGj/hI9e/6Deo/wDgU/8AjRRQAf8ACR69/wBBvUf/AAKf/Gj/AISPXv8AoN6j/wCBT/40UUAf/9kKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagoxNSAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagoxNiAwIG9iago8PAovQzAgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagoxNyAwIG9iago8PAovQm91bmRzIFsgMC4yNSAwLjI1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRW5jb2RlIFsgMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDMKL0Z1bmN0aW9ucyBbIDE0IDAgUiAxNSAwIFIgMTYgMCBSIF0KPj4KZW5kb2JqCjE4IDAgb2JqCjw8Ci9NYXRyaXggWyAwLjc1IDAuMCAwLjAgLTAuNzUgMC4wIDc5Mi4wIF0KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsgMC4wIDMxMy45MjAwMSAwLjAgMzE1Ljg0IF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiAxNyAwIFIKL1NoYWRpbmdUeXBlIDIKPj4KL1R5cGUgL1BhdHRlcm4KPj4KZW5kb2JqCjE5IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjIwIDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjIxIDAgb2JqCjw8Ci9DMCBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjIyIDAgb2JqCjw8Ci9Cb3VuZHMgWyAwLjMwNzY5IDAuMzA3NjkgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9FbmNvZGUgWyAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMwovRnVuY3Rpb25zIFsgMTkgMCBSIDIwIDAgUiAyMSAwIFIgXQo+PgplbmRvYmoKMjMgMCBvYmoKPDwKL01hdHJpeCBbIDAuNzUgMC4wIDAuMCAtMC43NSAwLjAgNzkyLjAgXQovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWyAwLjAgMzQyLjA3OTk5IDAuMCAzNDQuMTYgXQovRXh0ZW5kIFsgdHJ1ZSB0cnVlIF0KL0Z1bmN0aW9uIDIyIDAgUgovU2hhZGluZ1R5cGUgMgo+PgovVHlwZSAvUGF0dGVybgo+PgplbmRvYmoKMjQgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKMjUgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKMjYgMCBvYmoKPDwKL0MwIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKMjcgMCBvYmoKPDwKL0JvdW5kcyBbIDAuMzMzMzMgMC4zMzMzMyBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0VuY29kZSBbIDAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAzCi9GdW5jdGlvbnMgWyAyNCAwIFIgMjUgMCBSIDI2IDAgUiBdCj4+CmVuZG9iagoyOCAwIG9iago8PAovTWF0cml4IFsgMC43NSAwLjAgMC4wIC0wLjc1IDAuMCA3OTIuMCBdCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbIDAuMCAzNzAuMzk5OTkgMC4wIDM3Mi4zMjAwMSBdCi9FeHRlbmQgWyB0cnVlIHRydWUgXQovRnVuY3Rpb24gMjcgMCBSCi9TaGFkaW5nVHlwZSAyCj4+Ci9UeXBlIC9QYXR0ZXJuCj4+CmVuZG9iagoyOSAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagozMCAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagozMSAwIG9iago8PAovQzAgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagozMiAwIG9iago8PAovQm91bmRzIFsgMC4zMzMzMyAwLjMzMzMzIF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRW5jb2RlIFsgMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDMKL0Z1bmN0aW9ucyBbIDI5IDAgUiAzMCAwIFIgMzEgMCBSIF0KPj4KZW5kb2JqCjMzIDAgb2JqCjw8Ci9NYXRyaXggWyAwLjc1IDAuMCAwLjAgLTAuNzUgMC4wIDc5Mi4wIF0KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsgMC4wIDM5OC43MiAwLjAgNDAwLjY0MDAxIF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiAzMiAwIFIKL1NoYWRpbmdUeXBlIDIKPj4KL1R5cGUgL1BhdHRlcm4KPj4KZW5kb2JqCjM0IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjM1IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjM2IDAgb2JqCjw8Ci9DMCBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjM3IDAgb2JqCjw8Ci9Cb3VuZHMgWyAwLjMzMzMzIDAuMzMzMzMgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9FbmNvZGUgWyAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMwovRnVuY3Rpb25zIFsgMzQgMCBSIDM1IDAgUiAzNiAwIFIgXQo+PgplbmRvYmoKMzggMCBvYmoKPDwKL01hdHJpeCBbIDAuNzUgMC4wIDAuMCAtMC43NSAwLjAgNzkyLjAgXQovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWyAwLjAgNTA2LjM5OTk5IDAuMCA1MDguMzIwMDEgXQovRXh0ZW5kIFsgdHJ1ZSB0cnVlIF0KL0Z1bmN0aW9uIDM3IDAgUgovU2hhZGluZ1R5cGUgMgo+PgovVHlwZSAvUGF0dGVybgo+PgplbmRvYmoKMzkgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNDAgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNDEgMCBvYmoKPDwKL0MwIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNDIgMCBvYmoKPDwKL0JvdW5kcyBbIDAuMjUgMC4yNSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0VuY29kZSBbIDAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAzCi9GdW5jdGlvbnMgWyAzOSAwIFIgNDAgMCBSIDQxIDAgUiBdCj4+CmVuZG9iago0MyAwIG9iago8PAovTWF0cml4IFsgMC43NSAwLjAgMC4wIC0wLjc1IDAuMCA3OTIuMCBdCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbIDAuMCA1MjQuNjQwMDEgMC4wIDUyNi41NiBdCi9FeHRlbmQgWyB0cnVlIHRydWUgXQovRnVuY3Rpb24gNDIgMCBSCi9TaGFkaW5nVHlwZSAyCj4+Ci9UeXBlIC9QYXR0ZXJuCj4+CmVuZG9iago0NCAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago0NSAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago0NiAwIG9iago8PAovQzAgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago0NyAwIG9iago8PAovQm91bmRzIFsgMC4zMDc2OSAwLjMwNzY5IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRW5jb2RlIFsgMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDMKL0Z1bmN0aW9ucyBbIDQ0IDAgUiA0NSAwIFIgNDYgMCBSIF0KPj4KZW5kb2JqCjQ4IDAgb2JqCjw8Ci9NYXRyaXggWyAwLjc1IDAuMCAwLjAgLTAuNzUgMC4wIDc5Mi4wIF0KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsgMC4wIDU0Mi44OCAwLjAgNTQ0Ljk2MDAyIF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiA0NyAwIFIKL1NoYWRpbmdUeXBlIDIKPj4KL1R5cGUgL1BhdHRlcm4KPj4KZW5kb2JqCjQ5IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjUwIDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjUxIDAgb2JqCjw8Ci9DMCBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjUyIDAgb2JqCjw8Ci9Cb3VuZHMgWyAwLjMzMzMzIDAuMzMzMzMgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9FbmNvZGUgWyAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMwovRnVuY3Rpb25zIFsgNDkgMCBSIDUwIDAgUiA1MSAwIFIgXQo+PgplbmRvYmoKNTMgMCBvYmoKPDwKL01hdHJpeCBbIDAuNzUgMC4wIDAuMCAtMC43NSAwLjAgNzkyLjAgXQovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWyAwLjAgNTYxLjEyIDAuMCA1NjMuMDM5OTggXQovRXh0ZW5kIFsgdHJ1ZSB0cnVlIF0KL0Z1bmN0aW9uIDUyIDAgUgovU2hhZGluZ1R5cGUgMgo+PgovVHlwZSAvUGF0dGVybgo+PgplbmRvYmoKNTQgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNTUgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNTYgMCBvYmoKPDwKL0MwIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNTcgMCBvYmoKPDwKL0JvdW5kcyBbIDAuMjY2NjcgMC4yNjY2NyBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0VuY29kZSBbIDAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAzCi9GdW5jdGlvbnMgWyA1NCAwIFIgNTUgMCBSIDU2IDAgUiBdCj4+CmVuZG9iago1OCAwIG9iago8PAovTWF0cml4IFsgMC43NSAwLjAgMC4wIC0wLjc1IDAuMCA3OTIuMCBdCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbIDAuMCA4ODcuNTIwMDIgMC4wIDg4OS45MTk5OCBdCi9FeHRlbmQgWyB0cnVlIHRydWUgXQovRnVuY3Rpb24gNTcgMCBSCi9TaGFkaW5nVHlwZSAyCj4+Ci9UeXBlIC9QYXR0ZXJuCj4+CmVuZG9iago1OSAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago2MCAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago2MSAwIG9iago8PAovQzAgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago2MiAwIG9iago8PAovQm91bmRzIFsgMC4yNjY2NyAwLjI2NjY3IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRW5jb2RlIFsgMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDMKL0Z1bmN0aW9ucyBbIDU5IDAgUiA2MCAwIFIgNjEgMCBSIF0KPj4KZW5kb2JqCjYzIDAgb2JqCjw8Ci9NYXRyaXggWyAwLjc1IDAuMCAwLjAgLTAuNzUgMC4wIDc5Mi4wIF0KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsgMC4wIDg4Ny41MjAwMiAwLjAgODg5LjkxOTk4IF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiA2MiAwIFIKL1NoYWRpbmdUeXBlIDIKPj4KL1R5cGUgL1BhdHRlcm4KPj4KZW5kb2JqCjY0IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjY1IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjY2IDAgb2JqCjw8Ci9DMCBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjY3IDAgb2JqCjw8Ci9Cb3VuZHMgWyAwLjI2NjY3IDAuMjY2NjcgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9FbmNvZGUgWyAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMwovRnVuY3Rpb25zIFsgNjQgMCBSIDY1IDAgUiA2NiAwIFIgXQo+PgplbmRvYmoKNjggMCBvYmoKPDwKL01hdHJpeCBbIDAuNzUgMC4wIDAuMCAtMC43NSAwLjAgNzkyLjAgXQovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWyAwLjAgOTE0LjQwMDAyIDAuMCA5MTYuNzk5OTkgXQovRXh0ZW5kIFsgdHJ1ZSB0cnVlIF0KL0Z1bmN0aW9uIDY3IDAgUgovU2hhZGluZ1R5cGUgMgo+PgovVHlwZSAvUGF0dGVybgo+PgplbmRvYmoKNjkgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNzAgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNzEgMCBvYmoKPDwKL0MwIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovQzEgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKNzIgMCBvYmoKPDwKL0JvdW5kcyBbIDAuMjY2NjcgMC4yNjY2NyBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0VuY29kZSBbIDAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAzCi9GdW5jdGlvbnMgWyA2OSAwIFIgNzAgMCBSIDcxIDAgUiBdCj4+CmVuZG9iago3MyAwIG9iago8PAovTWF0cml4IFsgMC43NSAwLjAgMC4wIC0wLjc1IDAuMCA3OTIuMCBdCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbIDAuMCA5MTQuNDAwMDIgMC4wIDkxNi43OTk5OSBdCi9FeHRlbmQgWyB0cnVlIHRydWUgXQovRnVuY3Rpb24gNzIgMCBSCi9TaGFkaW5nVHlwZSAyCj4+Ci9UeXBlIC9QYXR0ZXJuCj4+CmVuZG9iago3NCAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago3NSAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago3NiAwIG9iago8PAovQzAgWyAwLjgzMTM3IDAuOTcyNTUgMC45NzI1NSBdCi9DMSBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago3NyAwIG9iago8PAovQm91bmRzIFsgMC4yNjY2NyAwLjI2NjY3IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRW5jb2RlIFsgMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDMKL0Z1bmN0aW9ucyBbIDc0IDAgUiA3NSAwIFIgNzYgMCBSIF0KPj4KZW5kb2JqCjc4IDAgb2JqCjw8Ci9NYXRyaXggWyAwLjc1IDAuMCAwLjAgLTAuNzUgMC4wIDc5Mi4wIF0KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsgMC4wIDkxNC40MDAwMiAwLjAgOTE2Ljc5OTk5IF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiA3NyAwIFIKL1NoYWRpbmdUeXBlIDIKPj4KL1R5cGUgL1BhdHRlcm4KPj4KZW5kb2JqCjc5IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjgwIDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjgxIDAgb2JqCjw8Ci9DMCBbIDAuODMxMzcgMC45NzI1NSAwLjk3MjU1IF0KL0MxIFsgMC44MzEzNyAwLjk3MjU1IDAuOTcyNTUgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjgyIDAgb2JqCjw8Ci9Cb3VuZHMgWyAwLjI2NjY3IDAuMjY2NjcgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9FbmNvZGUgWyAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMwovRnVuY3Rpb25zIFsgNzkgMCBSIDgwIDAgUiA4MSAwIFIgXQo+PgplbmRvYmoKODMgMCBvYmoKPDwKL01hdHJpeCBbIDAuNzUgMC4wIDAuMCAtMC43NSAwLjAgNzkyLjAgXQovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWyAwLjAgOTE0LjQwMDAyIDAuMCA5MTYuNzk5OTkgXQovRXh0ZW5kIFsgdHJ1ZSB0cnVlIF0KL0Z1bmN0aW9uIDgyIDAgUgovU2hhZGluZ1R5cGUgMgo+PgovVHlwZSAvUGF0dGVybgo+PgplbmRvYmoKODQgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKODUgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjAgMC4wIDAuMCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKODYgMCBvYmoKPDwKL0MwIFsgMC4wIDAuMCAwLjAgXQovQzEgWyAwLjAgMC4wIDAuMCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKODcgMCBvYmoKPDwKL0JvdW5kcyBbIDAuOTc3NzggMC45Nzc3OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0VuY29kZSBbIDAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAzCi9GdW5jdGlvbnMgWyA4NCAwIFIgODUgMCBSIDg2IDAgUiBdCj4+CmVuZG9iago4OCAwIG9iago8PAovTWF0cml4IFsgMC43NSAwLjAgMC4wIC0wLjc1IDAuMCA3OTIuMCBdCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbIDAuMCA5NDcuMjAwMDEgMC4wIDk3Ni4wIF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiA4NyAwIFIKL1NoYWRpbmdUeXBlIDIKPj4KL1R5cGUgL1BhdHRlcm4KPj4KZW5kb2JqCjg5IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjkwIDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC4wIDAuMCAwLjAgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjkxIDAgb2JqCjw8Ci9DMCBbIDAuMCAwLjAgMC4wIF0KL0MxIFsgMC4wIDAuMCAwLjAgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjkyIDAgb2JqCjw8Ci9Cb3VuZHMgWyAwLjk3Nzc4IDAuOTc3NzggXQovRG9tYWluIFsgMC4wIDEuMCBdCi9FbmNvZGUgWyAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMwovRnVuY3Rpb25zIFsgODkgMCBSIDkwIDAgUiA5MSAwIFIgXQo+PgplbmRvYmoKOTMgMCBvYmoKPDwKL01hdHJpeCBbIDAuNzUgMC4wIDAuMCAtMC43NSAwLjAgNzkyLjAgXQovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PAovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWyAwLjAgOTQ3LjIwMDAxIDAuMCA5NzYuMCBdCi9FeHRlbmQgWyB0cnVlIHRydWUgXQovRnVuY3Rpb24gOTIgMCBSCi9TaGFkaW5nVHlwZSAyCj4+Ci9UeXBlIC9QYXR0ZXJuCj4+CmVuZG9iago5NCAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago5NSAwIG9iago8PAovQzAgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9DMSBbIDAuMCAwLjAgMC4wIF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago5NiAwIG9iago8PAovQzAgWyAwLjAgMC4wIDAuMCBdCi9DMSBbIDAuMCAwLjAgMC4wIF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iago5NyAwIG9iago8PAovQm91bmRzIFsgMC45Nzc3OCAwLjk3Nzc4IF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRW5jb2RlIFsgMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDMKL0Z1bmN0aW9ucyBbIDk0IDAgUiA5NSAwIFIgOTYgMCBSIF0KPj4KZW5kb2JqCjk4IDAgb2JqCjw8Ci9NYXRyaXggWyAwLjc1IDAuMCAwLjAgLTAuNzUgMC4wIDc5Mi4wIF0KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsgMC4wIDk0Ny4yMDAwMSAwLjAgOTc2LjAgXQovRXh0ZW5kIFsgdHJ1ZSB0cnVlIF0KL0Z1bmN0aW9uIDk3IDAgUgovU2hhZGluZ1R5cGUgMgo+PgovVHlwZSAvUGF0dGVybgo+PgplbmRvYmoKOTkgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKMTAwIDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC4wIDAuMCAwLjAgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjEwMSAwIG9iago8PAovQzAgWyAwLjAgMC4wIDAuMCBdCi9DMSBbIDAuMCAwLjAgMC4wIF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagoxMDIgMCBvYmoKPDwKL0JvdW5kcyBbIDAuOTc3NzggMC45Nzc3OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0VuY29kZSBbIDAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAzCi9GdW5jdGlvbnMgWyA5OSAwIFIgMTAwIDAgUiAxMDEgMCBSIF0KPj4KZW5kb2JqCjEwMyAwIG9iago8PAovTWF0cml4IFsgMC43NSAwLjAgMC4wIC0wLjc1IDAuMCA3OTIuMCBdCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbIDAuMCA5NDcuMjAwMDEgMC4wIDk3Ni4wIF0KL0V4dGVuZCBbIHRydWUgdHJ1ZSBdCi9GdW5jdGlvbiAxMDIgMCBSCi9TaGFkaW5nVHlwZSAyCj4+Ci9UeXBlIC9QYXR0ZXJuCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwKL0MwIFsgMC42NTA5OCAwLjY1MDk4IDAuNjUwOTggXQovQzEgWyAwLjY1MDk4IDAuNjUwOTggMC42NTA5OCBdCi9Eb21haW4gWyAwLjAgMS4wIF0KL0Z1bmN0aW9uVHlwZSAyCi9OIDEuMAo+PgplbmRvYmoKMTA1IDAgb2JqCjw8Ci9DMCBbIDAuNjUwOTggMC42NTA5OCAwLjY1MDk4IF0KL0MxIFsgMC4wIDAuMCAwLjAgXQovRG9tYWluIFsgMC4wIDEuMCBdCi9GdW5jdGlvblR5cGUgMgovTiAxLjAKPj4KZW5kb2JqCjEwNiAwIG9iago8PAovQzAgWyAwLjAgMC4wIDAuMCBdCi9DMSBbIDAuMCAwLjAgMC4wIF0KL0RvbWFpbiBbIDAuMCAxLjAgXQovRnVuY3Rpb25UeXBlIDIKL04gMS4wCj4+CmVuZG9iagox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TWVkaWFCb3ggWyAwLjAgMC4wIDYxMi4wIDc5Mi4wIF0KL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDExMCAwIFIKL1JvdGF0ZSAwCi9UeXBlIC9QYWdlCj4+CmVuZG9iagoxMCAwIG9iago8PAovTGVuZ3RoIDEyNDkKPj4Kc3RyZWFtCi9DSURJbml0IC9Qcm9jU2V0IGZpbmRyZXNvdXJjZSBiZWdpbiAxMiBkaWN0IGJlZ2luIGJlZ2luY21hcCAvQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PiBkZWYgL0NNYXBOYW1lIC9BZG9iZS1JZGVudGl0eS1VQ1MgZGVmIC9DTWFwVHlwZSAyIGRlZiAxIGJlZ2luY29kZXNwYWNlcmFuZ2UgPDAwMDA+IDxGRkZGPiBlbmRjb2Rlc3BhY2VyYW5nZSA2NiBiZWdpbmJmY2hhciA8MDAwMz4gPDAwMjA+IDwwMDA5PiA8MDAyNj4gPDAwMEI+IDwwMDI4PiA8MDAwQz4gPDAwMjk+IDwwMDBGPiA8MDAyQz4gPDAwMTA+IDwwMDJEPiA8MDAxMT4gPDAwMkU+IDwwMDEyPiA8MDAyRj4gPDAwMTM+IDwwMDMwPiA8MDAxND4gPDAwMzE+IDwwMDE1PiA8MDAzMj4gPDAwMTY+IDwwMDMzPiA8MDAxOD4gPDAwMzU+IDwwMDFCPiA8MDAzOD4gPDAwMUM+IDwwMDM5PiA8MDAxRT4gPDAwM0I+IDwwMDFGPiA8MDAzQz4gPDAwMjA+IDwwMDNEPiA8MDAyMT4gPDAwM0U+IDwwMDI0PiA8MDA0MT4gPDAwMjU+IDwwMDQyPiA8MDAyNj4gPDAwNDM+IDwwMDI3PiA8MDA0ND4gPDAwMjg+IDwwMDQ1PiA8MDAyOT4gPDAwNDY+IDwwMDJBPiA8MDA0Nz4gPDAwMkI+IDwwMDQ4PiA8MDAyQz4gPDAwNDk+IDwwMDJEPiA8MDA0QT4gPDAwMkY+IDwwMDRDPiA8MDAzMD4gPDAwNEQ+IDwwMDMxPiA8MDA0RT4gPDAwMzI+IDwwMDRGPiA8MDAzMz4gPDAwNTA+IDwwMDM1PiA8MDA1Mj4gPDAwMzY+IDwwMDUzPiA8MDAzNz4gPDAwNTQ+IDwwMDM5PiA8MDA1Nj4gPDAwNDI+IDwwMDVGPiA8MDA0ND4gPDAwNjE+IDwwMDQ1PiA8MDA2Mj4gPDAwNDY+IDwwMDYzPiA8MDA0Nz4gPDAwNjQ+IDwwMDQ4PiA8MDA2NT4gPDAwNDk+IDwwMDY2PiA8MDA0QT4gPDAwNjc+IDwwMDRCPiA8MDA2OD4gPDAwNEM+IDwwMDY5PiA8MDA0RT4gPDAwNkI+IDwwMDRGPiA8MDA2Qz4gPDAwNTA+IDwwMDZEPiA8MDA1MT4gPDAwNkU+IDwwMDUyPiA8MDA2Rj4gPDAwNTM+IDwwMDcwPiA8MDA1ND4gPDAwNzE+IDwwMDU1PiA8MDA3Mj4gPDAwNTY+IDwwMDczPiA8MDA1Nz4gPDAwNzQ+IDwwMDU4PiA8MDA3NT4gPDAwNTk+IDwwMDc2PiA8MDA1QT4gPDAwNzc+IDwwMDVCPiA8MDA3OD4gPDAwNUM+IDwwMDc5PiA8MDBCMT4gPDIwMTM+IDwwMEI0PiA8MjAxRD4gPDAwQjY+IDwyMDE5PiBlbmRiZmNoYXIgZW5kY21hcCBDTWFwTmFtZSBjdXJyZW50ZGljdCAvQ01hcCBkZWZpbmVyZXNvdXJjZSBwb3AgZW5kIGVuZCAKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqClsgMyAzIDI2NSA5IDkgNjY2IDExIDExIDMzMyAxMiAxMiAzMzMgMTUgMTUgMjc3IDE2IDE2IDMzMyAxNyAxNyAyNzcgMTggMTggMjc3IDE5IDE5IDU1NiAyMCAyMCA1NTYgMjEgMjEgNTU2IDIyIDIyIDU1NiAyNCAyNCA1NTYgMjcgMjcgNTU2IDI4IDI4IDU1NiAzMCAzMCAyNzcgMzEgMzEgNTgzIDMyIDMyIDU4MyAzMyAzMyA1ODMgMzYgMzYgNjY2IDM3IDM3IDY2NiAzOCAzOCA3MjIgMzkgMzkgNzIyIDQwIDQwIDY2NiA0MSA0MSA2MTAgNDIgNDIgNzc3IDQzIDQzIDcyMiA0NCA0NCAyNzcgNDUgNDUgNTAwIDQ3IDQ3IDU1NiA0OCA0OCA4MzMgNDkgNDkgNzIyIDUwIDUwIDc3NyA1MSA1MSA2NjYgNTMgNTMgNzIyIDU0IDU0IDY2NiA1NSA1NSA2MTAgNTcgNTcgNjY2IDY2IDY2IDU1MSA2OCA2OCA1NTYgNjkgNjkgNTU2IDcwIDcwIDUwMCA3MSA3MSA1NTYgNzIgNzIgNTU2IDczIDczIDI3NyA3NCA3NCA1NTYgNzUgNzUgNTU2IDc2IDc2IDIyOCA3OCA3OCA1MDAgNzkgNzkgMjI4IDgwIDgwIDgzMyA4MSA4MSA1NTYgODIgODIgNTU2IDgzIDgzIDU1NiA4NCA4NCA1NTYgODUgODUgMzMzIDg2IDg2IDUwMCA4NyA4NyAyNzcgODggODggNTU2IDg5IDg5IDUwMCA5MCA5MCA3MjIgOTEgOTEgNTAwIDkyIDkyIDUwMCAxNzcgMTc3IDI5MiAxODAgMTgwIDMzMyAxODIgMTgyIDIyMiBdCmVuZG9iago2IDAgb2JqClsgLTgzMyAtMjA5IDgzMyA5MjEgXQplbmRvYmoKNyAwIG9iago4MzMKZW5kb2JqCjIgMCBvYmoKPDwKL0NvdW50IDEKL0tpZHMgWyAzIDAgUiBdCi9UeXBlIC9QYWdlcwo+PgplbmRvYmoKMSAwIG9iago8PAovUGFnZXMgMiAwIFIKL1R5cGUgL0NhdGFsb2cKPj4KZW5kb2JqCjExMSAwIG9iago8PAovQXV0aG9yIChSQ2FtcGJlbGwpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyMzA5MTgxMTE1MTMrMDEnMDAnKQovTW9kRGF0ZSAoRDoyMDIzMDkxODExMTUxMyswMScwMCcpCi9Qcm9kdWNlciAoTWljcm9zb2Z0OiBQcmludCBUbyBQREYpCi9UaXRsZSAoTWljcm9zb2Z0IFdvcmQgLSBCQzAxYSBDb250cmFjdC5kb2N4KQo+PgplbmRvYmoKeHJlZgowIDExMg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMTY3Nzk1IDAwMDAwIG4NCjAwMDAxNjc3MzYgMDAwMDAgbg0KMDAwMDE2NTUzMiAwMDAwMCBuDQowMDAwMDAwMDA5IDAwMDAwIG4NCjAwMDAwMDAwMzUgMDAwMDAgbg0KMDAwMDE2NzY4MCAwMDAwMCBuDQowMDAwMTY3NzE3IDAwMDAwIG4NCjAwMDAwMDAwNTggMDAwMDAgbg0KMDAwMDE2Njk5OSAwMDAwMCBuDQowMDAwMTY1Njk3IDAwMDAwIG4NCjAwMDAwNjg4MjcgMDAwMDAgbg0KMDAwMDA2OTI5OSAwMDAwMCBuDQowMDAwMTI2OTYxIDAwMDAwIG4NCjAwMDAxMzk4NjcgMDAwMDAgbg0KMDAwMDEzOTk5NiAwMDAwMCBuDQowMDAwMTQwMTI1IDAwMDAwIG4NCjAwMDAxNDAyNTQgMDAwMDAgbg0KMDAwMDE0MDQwNiAwMDAwMCBuDQowMDAwMTQwNjI4IDAwMDAwIG4NCjAwMDAxNDA3NTcgMDAwMDAgbg0KMDAwMDE0MDg4NiAwMDAwMCBuDQowMDAwMTQxMDE1IDAwMDAwIG4NCjAwMDAxNDExNzMgMDAwMDAgbg0KMDAwMDE0MTM5NSAwMDAwMCBuDQowMDAwMTQxNTI0IDAwMDAwIG4NCjAwMDAxNDE2NTMgMDAwMDAgbg0KMDAwMDE0MTc4MiAwMDAwMCBuDQowMDAwMTQxOTQwIDAwMDAwIG4NCjAwMDAxNDIxNjUgMDAwMDAgbg0KMDAwMDE0MjI5NCAwMDAwMCBuDQowMDAwMTQyNDIzIDAwMDAwIG4NCjAwMDAxNDI1NTIgMDAwMDAgbg0KMDAwMDE0MjcxMCAwMDAwMCBuDQowMDAwMTQyOTMyIDAwMDAwIG4NCjAwMDAxNDMwNjEgMDAwMDAgbg0KMDAwMDE0MzE5MCAwMDAwMCBuDQowMDAwMTQzMzE5IDAwMDAwIG4NCjAwMDAxNDM0NzcgMDAwMDAgbg0KMDAwMDE0MzcwMiAwMDAwMCBuDQowMDAwMTQzODMxIDAwMDAwIG4NCjAwMDAxNDM5NjAgMDAwMDAgbg0KMDAwMDE0NDA4OSAwMDAwMCBuDQowMDAwMTQ0MjQxIDAwMDAwIG4NCjAwMDAxNDQ0NjMgMDAwMDAgbg0KMDAwMDE0NDU5MiAwMDAwMCBuDQowMDAwMTQ0NzIxIDAwMDAwIG4NCjAwMDAxNDQ4NTAgMDAwMDAgbg0KMDAwMDE0NTAwOCAwMDAwMCBuDQowMDAwMTQ1MjMwIDAwMDAwIG4NCjAwMDAxNDUzNTkgMDAwMDAgbg0KMDAwMDE0NTQ4OCAwMDAwMCBuDQowMDAwMTQ1NjE3IDAwMDAwIG4NCjAwMDAxNDU3NzUgMDAwMDAgbg0KMDAwMDE0NTk5NyAwMDAwMCBuDQowMDAwMTQ2MTI2IDAwMDAwIG4NCjAwMDAxNDYyNTUgMDAwMDAgbg0KMDAwMDE0NjM4NCAwMDAwMCBuDQowMDAwMTQ2NTQyIDAwMDAwIG4NCjAwMDAxNDY3NjcgMDAwMDAgbg0KMDAwMDE0Njg5NiAwMDAwMCBuDQowMDAwMTQ3MDI1IDAwMDAwIG4NCjAwMDAxNDcxNTQgMDAwMDAgbg0KMDAwMDE0NzMxMiAwMDAwMCBuDQowMDAwMTQ3NTM3IDAwMDAwIG4NCjAwMDAxNDc2NjYgMDAwMDAgbg0KMDAwMDE0Nzc5NSAwMDAwMCBuDQowMDAwMTQ3OTI0IDAwMDAwIG4NCjAwMDAxNDgwODIgMDAwMDAgbg0KMDAwMDE0ODMwNyAwMDAwMCBuDQowMDAwMTQ4NDM2IDAwMDAwIG4NCjAwMDAxNDg1NjUgMDAwMDAgbg0KMDAwMDE0ODY5NCAwMDAwMCBuDQowMDAwMTQ4ODUyIDAwMDAwIG4NCjAwMDAxNDkwNzcgMDAwMDAgbg0KMDAwMDE0OTIwNiAwMDAwMCBuDQowMDAwMTQ5MzM1IDAwMDAwIG4NCjAwMDAxNDk0NjQgMDAwMDAgbg0KMDAwMDE0OTYyMiAwMDAwMCBuDQowMDAwMTQ5ODQ3IDAwMDAwIG4NCjAwMDAxNDk5NzYgMDAwMDAgbg0KMDAwMDE1MDEwNSAwMDAwMCBuDQowMDAwMTUwMjM0IDAwMDAwIG4NCjAwMDAxNTAzOTIgMDAwMDAgbg0KMDAwMDE1MDYxNyAwMDAwMCBuDQowMDAwMTUwNzQ2IDAwMDAwIG4NCjAwMDAxNTA4NjMgMDAwMDAgbg0KMDAwMDE1MDk2OCAwMDAwMCBuDQowMDAwMTUxMTI2IDAwMDAwIG4NCjAwMDAxNTEzNDcgMDAwMDAgbg0KMDAwMDE1MTQ3NiAwMDAwMCBuDQowMDAwMTUxNTkzIDAwMDAwIG4NCjAwMDAxNTE2OTggMDAwMDAgbg0KMDAwMDE1MTg1NiAwMDAwMCBuDQowMDAwMTUyMDc3IDAwMDAwIG4NCjAwMDAxNTIyMDYgMDAwMDAgbg0KMDAwMDE1MjMyMyAwMDAwMCBuDQowMDAwMTUyNDI4IDAwMDAwIG4NCjAwMDAxNTI1ODYgMDAwMDAgbg0KMDAwMDE1MjgwNyAwMDAwMCBuDQowMDAwMTUyOTM2IDAwMDAwIG4NCjAwMDAxNTMwNTQgMDAwMDAgbg0KMDAwMDE1MzE2MCAwMDAwMCBuDQowMDAwMTUzMzIxIDAwMDAwIG4NCjAwMDAxNTM1NDQgMDAwMDAgbg0KMDAwMDE1MzY3NCAwMDAwMCBuDQowMDAwMTUzNzkyIDAwMDAwIG4NCjAwMDAxNTM4OTggMDAwMDAgbg0KMDAwMDE1NDA2MCAwMDAwMCBuDQowMDAwMTU0MjgzIDAwMDAwIG4NCjAwMDAxNjUwOTEgMDAwMDAgbg0KMDAwMDE2Nzg0NCAwMDAwMCBuDQp0cmFpbGVyCjw8Ci9JbmZvIDExMSAwIFIKL1Jvb3QgMSAwIFIKL1NpemUgMTEyCj4+CnN0YXJ0eHJlZgoxNjgwNDUKJSVFT0YK",kc={Order1:{bistech_orderformid:"9363e790-43b0-47d7-85ab-2b45a0c86703",bistech_datesigned:"2022-05-07T07:08:56.010Z",bistech_pdfbase64field1:aA,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null},Order2:{bistech_orderformid:"bda74674-b4a1-4816-890c-56eb2c7048d6",bistech_datesigned:"2023-03-15T07:08:23.089Z",bistech_pdfbase64field1:aA,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null},Order3:{bistech_orderformid:"ada74672-c4a7-3814-390d-86eb2c7048da",bistech_datesigned:"2023-09-01T09:08:11.123Z",bistech_pdfbase64field1:aA,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null},Order4:{bistech_orderformid:"cda74671-d4a2-1814-390d-76eb2c7048dd",bistech_datesigned:null,bistech_pdfbase64field1:aA,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null},Order5:{bistech_orderformid:"cda74671-d4a2-1814-390d-76eb2c7048dd",bistech_datesigned:"2024-09-01T09:08:11.123Z",bistech_pdfbase64field1:aA,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null}};var Gn=(e=>(e[e.Product=1]="Product",e[e["Project-Based Service"]=5]="Project-Based Service",e))(Gn||{}),Vo=(e=>(e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e))(Vo||{}),Ce=(e=>(e[e.Draft=100000002]="Draft",e[e.Active=1]="Active",e[e["Project copying"]=192350001]="Project copying",e[e.Cancelled=192350003]="Cancelled",e[e["Project copy failed"]=192350002]="Project copy failed",e[e["Project importing"]=192350011]="Project importing",e[e["Project import failed"]=192350012]="Project import failed",e[e["Project converting"]=192350021]="Project converting",e[e["Project convert failed"]=192350022]="Project convert failed",e[e.Inactive=2]="Inactive",e[e.Closed=19235e4]="Closed",e[e["Project estimates copy failed"]=192350023]="Project estimates copy failed",e[e["Project Onboarding"]=192350024]="Project Onboarding",e[e["Ready to Triage"]=192350025]="Ready to Triage",e[e["In Progress"]=192350026]="In Progress",e[e.Blocked=192350027]="Blocked",e[e["Pending Start"]=100000001]="Pending Start",e[e["On Hold"]=100000003]="On Hold",e[e.Signed=100000004]="Signed",e[e.Processing=100000005]="Processing",e[e["In Quote"]=100000006]="In Quote",e))(Ce||{}),uf=(e=>(e[e.Avoid=1e8]="Avoid",e[e.Reduce=100000001]="Reduce",e[e.Transfer=100000002]="Transfer",e[e.Share=100000003]="Share",e[e.Accept=100000004]="Accept",e[e["Prepare Contigency Plan"]=100000005]="Prepare Contigency Plan",e))(uf||{}),Af=(e=>(e[e.Low=1e8]="Low",e[e.Medium=100000001]="Medium",e[e.High=100000002]="High",e))(Af||{}),ks=(e=>(e[e.Active=1]="Active",e[e.Inactive=2]="Inactive",e))(ks||{}),ff=(e=>(e[e.Risk=1e8]="Risk",e[e.Assumption=100000001]="Assumption",e[e.Issue=100000002]="Issue",e[e.Dependency=100000003]="Dependency",e[e["Lessons Learnt"]=100000004]="Lessons Learnt",e))(ff||{});const qo=[{bistech_projectlogsid:"4fef8805-f327-ef11-840b-0022484175ad",bistech_name:"Example 1",bistech_type:ff.Dependency,createdon:"2023-01-11T14:46:27Z",bistech_description:"Example short description",bistech_impact:"High",bistech_severity:Af.Medium,bistech_mitigationresponseoptionset:uf["Prepare Contigency Plan"],bistech_updatedetails:"No updates yet",statuscode:ks.Inactive,bistech_projectlogs_adx_portalcomments:[],bistech_projectlogs_bistech_portalemails:[]},{bistech_projectlogsid:"42696938-6a38-ef11-a316-6045bdcf9e28",bistech_name:"Example 2",bistech_type:ff.Risk,createdon:"2023-09-11T14:46:27Z",bistech_description:"Example of a long description that should be truncated to a certain length",bistech_impact:"High",bistech_severity:Af.Medium,bistech_mitigationresponseoptionset:uf["Prepare Contigency Plan"],bistech_updatedetails:"No updates yet",statuscode:ks.Inactive,bistech_projectlogs_adx_portalcomments:[],bistech_projectlogs_bistech_portalemails:[]},{bistech_projectlogsid:"31b29acb-082f-4b6a-b6a5-122875e82a8e",bistech_name:"Example 3",bistech_type:ff["Lessons Learnt"],createdon:"2024-01-12T14:46:27Z",bistech_description:"gjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgsgjhsjghfdjsghfhgs",bistech_impact:"Medium",bistech_severity:Af.Low,bistech_mitigationresponseoptionset:uf.Accept,bistech_updatedetails:"No updates yet Exercitation et elit est ullamco qui voluptate commodo velit non ipsum. Voluptate et culpa eiusmod laboris nulla cupidatat id anim do occaecat aute. Laboris enim elit aute cupidatat duis nulla. Aliquip adipisicing magna id cillum veniam veniam ad do aliqua nisi laborum consequat. Culpa veniam cupidatat ipsum est proident non anim ex Lorem officia anim quis. Et nisi aliqua eiusmod quis proident aliquip. Laboris sunt aliquip incididunt sint quis cillum dolore ut proident.",statuscode:ks.Active,bistech_projectlogs_adx_portalcomments:po,bistech_projectlogs_bistech_portalemails:[]}];var ne=(e=>(e[e.Bistech=1e8]="Bistech",e[e.Customer=100000001]="Customer",e))(ne||{}),re=(e=>(e[e["In Progress"]=1]="In Progress",e[e.Inactive=2]="Inactive",e[e["Awaiting Customer"]=100000001]="Awaiting Customer",e[e["Awaiting 3rd Party"]=100000002]="Awaiting 3rd Party",e[e.Blocked=100000003]="Blocked",e[e.Completed=100000004]="Completed",e[e.Pending=100000005]="Pending",e))(re||{});const _o=[{msdyn_projecttaskid:"e544d78f-ea8d-ee11-8173-000d3a7fbd84",msdyn_subject:"Customer Training/Handover",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:125.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re.Pending},{msdyn_projecttaskid:"43c87de2-a920-ee11-8f69-000d3a7fbd84",msdyn_subject:"Explain the process for the customer to take when devices will not enrol",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:141.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re.Pending},{msdyn_projecttaskid:"c747ef4b-6f58-ee11-be69-000d3a7fbd84",msdyn_subject:"Implement SSO device group policy",_msdyn_parenttask_value:"ef04dc6e-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:66.0625,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["Awaiting 3rd Party"]},{msdyn_projecttaskid:"aae4055b-6f58-ee11-be69-000d3a7fbd84",msdyn_subject:"Assist with implementing SSO device group policy",_msdyn_parenttask_value:"ef04dc6e-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:66.125,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"3a585cf8-6f58-ee11-be69-000d3a7fbd84",msdyn_subject:"Configure Bistech best-practice security groups",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:81.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"7a0e8e06-7058-ee11-be69-000d3a7fbd84",msdyn_subject:"Assist with best-practice security groups",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:81.75,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"3c03d134-7058-ee11-be69-000d3a7fbd84",msdyn_subject:"Configure Conditional Access named locations",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:83.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"02e96f49-7058-ee11-be69-000d3a7fbd84",msdyn_subject:"Assist with Conditional Access named locations",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:83.75,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"aad4c978-7058-ee11-be69-000d3a7fbd84",msdyn_subject:"Configure Bistech best-practice app configuration policies",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:87.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"b0d4c978-7058-ee11-be69-000d3a7fbd84",msdyn_subject:" Assist with best-practice app configuration policies",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:87.75,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e551cc95-2759-ee11-be69-000d3a7fbd84",msdyn_subject:"Send Enterprise Mobility + Security prerequisites MS form",_msdyn_parenttask_value:"a0097cd7-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:22.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Directing a project (not stage dependent)",_msdyn_parenttask_value:null,msdyn_displaysequence:2,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8081fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project duration - Allocation of a Project Manager for up to (VARIABLE) weeks",_msdyn_parenttask_value:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:3,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.scottLang.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8281fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project duration - Allocation of a Solutions Consultant for up to (VARIABLE) weeks",_msdyn_parenttask_value:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:4,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re.Completed},{msdyn_projecttaskid:"82a53077-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Scheduled project update meetings every 2 weeks for up to (VARIABLE) weeks estimated project duration",_msdyn_parenttask_value:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-02-02T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["Awaiting 3rd Party"]},{msdyn_projecttaskid:"e8d5eab2-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Up to (VARIABLE) hours contingency budget",_msdyn_parenttask_value:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:6,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2023-01-03T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e8d5eab2-5f1a-ee11-8f67-000d3a3fbdbc",msdyn_subject:"Get the Customer to sign off on the project",_msdyn_parenttask_value:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:7,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2023-01-04T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re.Pending},{msdyn_projecttaskid:"e8d5eab2-5f1a-ed11-8f67-000d3a3fbdbc",msdyn_subject:"Get the Specific User from the Customer Company to get information",_msdyn_parenttask_value:"7e81fe6e-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:8,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2023-01-05T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.scottLang.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8fda28f9-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project startup",_msdyn_parenttask_value:null,msdyn_displaysequence:7,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"42bacf27-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Ensure that all information required for the project team is available",_msdyn_parenttask_value:"8fda28f9-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:8,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"956b8b2e-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create the project team and assign roles",_msdyn_parenttask_value:"8fda28f9-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:9,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"976b8b2e-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Contract review",_msdyn_parenttask_value:"8fda28f9-5f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:10,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project initiation",_msdyn_parenttask_value:null,msdyn_displaysequence:11,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e90fee53-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Claim Customer Partner Of Record (CPOR)",_msdyn_parenttask_value:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:12,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"573d095b-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create Project Initiation Document (PID)",_msdyn_parenttask_value:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:13,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"593d095b-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Technical review of implementation approach",_msdyn_parenttask_value:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:14,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"4de97f61-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create or arrange required access for the Consultant",_msdyn_parenttask_value:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:15,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"4fe97f61-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Obtain a list of authorised contacts",_msdyn_parenttask_value:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:16,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"2ff5586a-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Enable access to the Bistech and TechData portals",_msdyn_parenttask_value:"6adde44d-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:17,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"491b42cd-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project planning",_msdyn_parenttask_value:null,msdyn_displaysequence:20,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a0097cd7-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Enterprise Mobility + Security - technical preparation",_msdyn_parenttask_value:"491b42cd-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:21,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"ae6b63e0-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Confirm that Azure tenant has been created and Azure AD Connect is set up If using hybrid identities",_msdyn_parenttask_value:"a0097cd7-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:22,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"f32bedf9-601a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Complete Enterprise Mobility + Security prerequisites MS form",_msdyn_parenttask_value:"a0097cd7-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:23,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Customer meeting",_msdyn_parenttask_value:"a0097cd7-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:24,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"3da8002d-611a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Review Enterprise Mobility + Security prerequisites MS form and Test Plan",_msdyn_parenttask_value:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:25,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"002ad436-611a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Assist with creating corporate Apple account (for iOS devices)",_msdyn_parenttask_value:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:26,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.peterQuill.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"022ad436-611a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create a corporate Apple account (for iOS devices)",_msdyn_parenttask_value:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:27,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"f6ea9b3d-611a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create a list of device types and quantities",_msdyn_parenttask_value:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:30,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"b3486144-611a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Obtain notification email address",_msdyn_parenttask_value:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:32,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.bruceBanner.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"122e1888-7a1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Add Enterprise Mobility + Security licencing to customer tenant",_msdyn_parenttask_value:"a0097cd7-601a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:55,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8b52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project delivery",_msdyn_parenttask_value:null,msdyn_displaysequence:56,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Day 1",_msdyn_parenttask_value:"8b52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:57,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"ef04dc6e-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Customer meeting - kick-off meeting",_msdyn_parenttask_value:"8d52f65b-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:58,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a756d474-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create licencing groups",_msdyn_parenttask_value:"ef04dc6e-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:59,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"72a8f17e-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Assist with creating licencing groups",_msdyn_parenttask_value:"ef04dc6e-7b1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:60,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:4,statuscode:re["In Progress"]},{msdyn_projecttaskid:"58da82ca-7d1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Apple Business Manager Day",_msdyn_parenttask_value:null,msdyn_displaysequence:93,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8338a8ee-7d1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Customer meeting",_msdyn_parenttask_value:"58da82ca-7d1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:94,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"8538a8ee-7d1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Configure Apple Business Manager for enrolment if already used or required (variable)",_msdyn_parenttask_value:"8338a8ee-7d1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:95,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"96922a36-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Samsung Knox Secure Platform Solution Day",_msdyn_parenttask_value:null,msdyn_displaysequence:96,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"d5d09c41-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Customer meeting",_msdyn_parenttask_value:"96922a36-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:97,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a3205a49-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Configure Samsung Knox with supplied documentation",_msdyn_parenttask_value:"d5d09c41-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:98,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a5205a49-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Support customer with Samsung Knox configuration",_msdyn_parenttask_value:"d5d09c41-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:99,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.stephenstrange.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"c8451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Day 2",_msdyn_parenttask_value:null,msdyn_displaysequence:100,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Customer meeting - day 2",_msdyn_parenttask_value:"c8451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:101,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"7a878b62-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Configure Microsoft 365 applications and company portal for Windows devices",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:102,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"54022669-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Assist with configuring Microsoft 365 applications and company portal for Windows devices",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:103,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"56022669-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Configure up to (variable) additional application deployments for customer applications",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:104,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"58022669-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Assist with application deployments for customer applications",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:105,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a88bea70-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Enable configuration profiles for preview devices",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:106,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"aa8bea70-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Deploy Windows Apps for preview devices",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:106.25,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a04a0477-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Provide Customer with Mobile Device Enrolment Instructions",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:109,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.scottLang.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a24a0477-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Agree best-practice policies",_msdyn_parenttask_value:"ca451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:110,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"496df39f-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Adjust Bistech best-practice policies in line with customer requirements - stage 1",_msdyn_parenttask_value:"c8451c59-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:111,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"246e98cb-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Day 3",_msdyn_parenttask_value:null,msdyn_displaysequence:112,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"266e98cb-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Review preview device compliance",_msdyn_parenttask_value:"246e98cb-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:113,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"7e0473d5-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Assist with configuring custom banned password list (and on-prem integration if hybrid)",_msdyn_parenttask_value:"246e98cb-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:114,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"800473d5-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Configure custom banned password list (and on-prem integration if hybrid)",_msdyn_parenttask_value:"246e98cb-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:115,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"820473d5-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Adjust Bistech best-practice policies in line with customer requirements - stage 2",_msdyn_parenttask_value:"246e98cb-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:116,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e8fc5af3-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Day 4",_msdyn_parenttask_value:null,msdyn_displaysequence:117,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"eafc5af3-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Review Conditional Access reports",_msdyn_parenttask_value:"e8fc5af3-7f1a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:118,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"d50e9a02-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Day 5",_msdyn_parenttask_value:null,msdyn_displaysequence:119,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"d70e9a02-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Enable Conditional Access policies for Preview Users",_msdyn_parenttask_value:"d50e9a02-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:120,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project pre-closure",_msdyn_parenttask_value:null,msdyn_displaysequence:124,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e5b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Customer Training/Handover",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:125,bistech_assignedto:ne.Customer,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:ee.peterQuill.contactid,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"ef2a6a3b-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Provide project completion documentation",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:126,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"f12a6a3b-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Remove Bistech accounts and policies",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:127,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!0,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"f32a6a3b-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Does the customer have IT Support? ",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:128,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"523e9b42-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Create all relevant configurations and Bistech Support entries in IT Glue with details eg, serial numbers",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:129,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"543e9b42-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Ensure that access/credentials to supported devices are documented",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:130,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"563e9b42-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Notify customer that support has commenced",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:131,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"aa0c3d4b-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Advise Service Desk that services live",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:132,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"ac0c3d4b-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Enterprise Mobility + Security - post-deployment support for 14 days",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:133,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Project closure",_msdyn_parenttask_value:null,msdyn_displaysequence:134,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:1,statuscode:re["In Progress"]},{msdyn_projecttaskid:"3fbb07e6-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Check objectives have been met against the order form, business case and PID",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:135,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Maintenance and operational handover",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:136,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"e53c8a02-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Make recommendations for any follow-up actions",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:137,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"2a76cc08-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Send 'Managing Security in Endpoint Manager' document",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:138,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"2c76cc08-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Send the Enterprise Management + Security handover template email",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:139,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"2e76cc08-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Complete a maintenance and operations handover",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:140,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"f5fc3b0f-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Complete a maintenance and operations handover",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:141,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"b66a393d-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Final review of IT Glue documentation",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:142,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"b86a393d-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Update RMT allocation",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:143,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"ba6a393d-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Complete 24 hour checks",_msdyn_parenttask_value:"4a7442f2-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:141.75,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:3,statuscode:re["In Progress"]},{msdyn_projecttaskid:"a8543547-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Remove passwords from Thycotic if customer does not have any Bistech support",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:142.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"aa543547-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Send feedback form",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:146,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"947ceb4e-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Review the project and document any lessons learned",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:147,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"967ceb4e-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Close risk register",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:148,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"987ceb4e-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Close technical log",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:149,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"b9fcba57-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Send chaser for feedback form after 7 days",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:150,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"bbfcba57-811a-ee11-8f67-000d3a7fbdbc",msdyn_subject:"Complete Dynamics Project",_msdyn_parenttask_value:"069ba07f-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:151,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"6f3c29d6-2a89-ee11-8173-6045bd1040d2",msdyn_subject:"Independent peer review of configuration",_msdyn_parenttask_value:"e3b7662c-801a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:124.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:2,statuscode:re["In Progress"]},{msdyn_projecttaskid:"07d208c9-d298-ee11-be31-6045bd104f39",msdyn_subject:"Confirm if the customer is using security defaults",_msdyn_parenttask_value:"750eb11a-611a-ee11-8f67-000d3a7fbdbc",msdyn_displaysequence:24.5,bistech_assignedto:ne.Bistech,bistech_showstartdateinportal:!0,msdyn_scheduledstart:new Date("2022-01-01T00:00:00Z"),_bistech_assignedcustomercontact_value:null,bistech_includeinstatementofworks:!1,msdyn_outlinelevel:4,statuscode:re["In Progress"]}],Nr={"Microsoft Defender for Endpoint/Business":{msdyn_projectid:"b9c5fe33-808f-47a0-8402-de9b2ee10a7d",msdyn_subject:"Microsoft Defender for Endpoint/Business",bistech_projectnumber:"PROJ-73367-Z2E612",statuscode:Ce["In Progress"],statecode:Vo.Active,msdyn_scheduledstart:new Date("2024-01-04"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"fb6cb55d-72ee-e811-a97e-00224801b4c8","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Louisa Allen",_msdyn_salesorderid_value:"2e73d45a-71e7-46b5-b448-ed2e43e7d76b","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-543223-925-NO-ORDERFORM",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Account Name ",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_bistech_projectlogs_Project_msdyn_project:qo,bistech_msdyn_project_Contact_Contact:Object.values(ee),msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Azure Subscription":{msdyn_projectid:"bc522951-dcc7-ed11-b596-0022483efd35",bistech_projectnumber:"PROJ-83321-G2E192",msdyn_subject:"Professional Services - Microsoft Azure Subscription",statuscode:Ce.Blocked,statecode:Vo.Active,msdyn_scheduledstart:new Date("2023-03-21T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"fb6cb55d-72ee-e811-a97e-00224801b4c8","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Louisa Allen",_msdyn_salesorderid_value:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Company Limited","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-012345-123",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Exchange Online - Tooled Migration":{msdyn_projectid:"71e8a276-c3c8-ed11-b596-0022483efd35",bistech_projectnumber:"PROJ-63345-A2D174",msdyn_subject:"Professional Services - Microsoft Exchange Online - Tooled Migration",statuscode:Ce.Closed,statecode:Vo.Inactive,msdyn_scheduledstart:new Date("2023-03-22T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"e4a3c4f0-bc5a-e911-a98d-002248018b80","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Eliza Doolittle",_msdyn_salesorderid_value:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Private Enterprise","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-012345-123",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Exchange Online - Full Migration":{msdyn_projectid:"f1e8a276-c3c8-ed11-c591-0022483efd32",bistech_projectnumber:"PROJ-13342-B2D172",msdyn_subject:"Professional Services - Microsoft Exchange Online - Full Migration",statuscode:Ce.Processing,statecode:Vo.Active,msdyn_scheduledstart:new Date("2023-03-22T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"e4a3c4f0-bc5a-e911-a98d-002248018b80","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Eliza Doolittle",_msdyn_salesorderid_value:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Company","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-012345-123",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee).slice(0,1),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Exchange - Part Migration":{msdyn_projectid:"11e8a276-c3c8-ed11-a592-0022483efd3a",bistech_projectnumber:"PROJ-83341-F2D171",msdyn_subject:"Professional Services - Microsoft Exchange - Part Migration",statuscode:Ce["Pending Start"],statecode:Vo.Active,msdyn_scheduledstart:new Date("2023-03-20T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"e4a3c4f0-bc5a-e911-a98d-002248018b80","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Eliza Doolittle",_msdyn_salesorderid_value:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Legal Entity","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-012345-123",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Entra ID":{msdyn_projectid:"966311f8-f5c7-ed11-b596-00224841c660",bistech_projectnumber:"PROJ-84242-D8D779",msdyn_subject:"Professional Services - Microsoft Entra ID",statuscode:Ce["On Hold"],statecode:Vo.Active,msdyn_scheduledstart:new Date("2023-03-21T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"063aadbe-81a4-e811-a975-00224801ab04","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Rita Ora",_msdyn_salesorderid_value:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Company Plc","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-012345-123",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Entra ID Connect Sync":{msdyn_projectid:"807d3191-0bc8-ed11-b596-00224841c660",bistech_projectnumber:"PROJ-13542-B6D774",msdyn_subject:"Professional Services - Microsoft Entra ID Connect Sync",statuscode:Ce["In Progress"],statecode:Vo.Active,msdyn_scheduledstart:new Date("2023-03-21T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"d5a3c4f0-bc5a-e911-a98d-002248018b80","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Dahyun Twice",_msdyn_salesorderid_value:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example account company name","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-012345-123",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Professional Services - Microsoft Defender for Endpoint/Defender for Business Server (Intune Integrated)":{msdyn_projectid:"3f10a01e-9fc8-ed11-b596-00224841c660",bistech_projectnumber:"PROJ-23571-A6D8M4",msdyn_subject:"Professional Services - Microsoft Defender for Endpoint/Defender for Business Server (Intune Integrated)",statuscode:Ce.Cancelled,statecode:Vo.Inactive,msdyn_scheduledstart:new Date("2023-03-22T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"fb6cb55d-72ee-e811-a97e-00224801b4c8","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Ellie Goulding",_msdyn_salesorderid_value:"2e73d45a-71e7-46b5-b448-ed2e43e7d76b",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Insurance Enterprise","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-543223-925-NO-ORDERFORM",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"PS for 3 New Sites - Professional Services - Meraki Cloud Networking":{msdyn_projectid:"1ae3b25e-5af6-46ac-a408-ff1b901ed2b1",bistech_projectnumber:"PROJ-13577-D6D8M5",msdyn_subject:"PS for 3 New Sites - Professional Services - Meraki Cloud Networking",statuscode:Ce["In Quote"],statecode:Vo.Active,msdyn_scheduledstart:new Date("2024-01-23T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"d5a3c4f0-bc5a-e911-a98d-002248018b80","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Dahyun Twice",_msdyn_salesorderid_value:"2e73d45a-71e7-46b5-b448-ed2e43e7d76b",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Legal Enterprise","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-543223-925-NO-ORDERFORM",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_msdyn_project_Contact_Contact:Object.values(ee),bistech_bistech_projectlogs_Project_msdyn_project:qo,msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho},"Kit and PS - Professional Services - Connectivity with Juniper CPE":{msdyn_projectid:"e4f19d8a-317d-4980-8938-ff70874658d8",bistech_projectnumber:"PROJ-14595-L5V5W5",msdyn_subject:"Kit and PS - Professional Services - Connectivity with Juniper CPE",statuscode:Ce["Project Onboarding"],statecode:Vo.Active,msdyn_scheduledstart:new Date("2024-02-16T09:00:00Z"),bistech_estimatedfinishdate:new Date("2024-08-12"),_ownerid_value:"fb6cb55d-72ee-e811-a97e-00224801b4c8","_ownerid_value@OData.Community.Display.V1.FormattedValue":"Ellie Goulding",_msdyn_salesorderid_value:"2e73d45a-71e7-46b5-b448-ed2e43e7d76b",_msdyn_customer_value:"d0a4d1f1-bae9-37e3-9b36-a31e80783e05","_msdyn_customer_value@OData.Community.Display.V1.FormattedValue":"Example Company Limited","_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue":"ORD-543223-925-NO-ORDERFORM",msdyn_msdyn_project_msdyn_projecttask_project:_o,bistech_bistech_projectlogs_Project_msdyn_project:qo,bistech_msdyn_project_Contact_Contact:[Object.values(ee)[0],Object.values(ee)[6],Object.values(ee)[8]],msdyn_project_adx_portalcomments:po,msdyn_project_bistech_portalemails:Ho}},ar={Order1:[{salesorderdetailid:"c9348455-4693-44cb-ac99-13bb84fa6c04",producttypecode:Gn.Product,bistech_totalannualprice:3900,baseamount:0,quantity:325,bistech_productdescription:"Additional Local Number - UK",_msdyn_project_value:null},{salesorderdetailid:"b7d93ce9-bf7c-42d7-bded-668f30b09cc5",producttypecode:Gn.Product,bistech_totalannualprice:13860,baseamount:0,quantity:11,bistech_productdescription:"X Series - X6 (Bundled) Licence",_msdyn_project_value:null},{salesorderdetailid:"90b74c33-70ae-476ssa22f-f2ea1b0c5012",producttypecode:Gn["Project-Based Service"],bistech_totalannualprice:200,baseamount:100,quantity:4,bistech_productdescription:"8x8 Option - Professional Services - 8x8 Work X0-X4 including VCC X6-X8 - Bistech Led",_msdyn_project_value:"bc522951-dcc7-ed11-b596-0022483efd35"},{salesorderdetailid:"90b74c33-70ae-4769-552f-f2ea1b0c5012",producttypecode:Gn.Product,bistech_totalannualprice:888,baseamount:0,quantity:2,bistech_productdescription:"X Series - X4 Licence",_msdyn_project_value:null},{salesorderdetailid:"90b74c33-70ae-4769-a22f-f1ea1b0c5012",producttypecode:Gn.Product,bistech_totalannualprice:2640,baseamount:0,quantity:11,bistech_productdescription:"X Series - X2 Licence",_msdyn_project_value:null},{salesorderdetailid:"90b74c33-70ae-4769-a22f-f2ea2b0c5012",producttypecode:Gn.Product,bistech_totalannualprice:6480,baseamount:0,quantity:54,bistech_productdescription:"X Series - X1 Nationwide Licence",_msdyn_project_value:null},{salesorderdetailid:"90b74c33-70ae-4769-a22f-f2ea1b0c5013",producttypecode:Gn.Product,bistech_totalannualprice:192,baseamount:0,quantity:4,bistech_productdescription:"X Series - Lobby Licence",_msdyn_project_value:null},{salesorderdetailid:"90b74c33-70ae-4769-a22f-f2ea1b0c5014",producttypecode:Gn.Product,bistech_totalannualprice:null,baseamount:4400,quantity:1,bistech_productdescription:"Training Bundle - Bronze",_msdyn_project_value:null},{salesorderdetailid:"90b74cd3-70ae-4769-a22f-f2ea1b0c5014",producttypecode:Gn.Product,bistech_totalannualprice:220.8,baseamount:0,quantity:4,bistech_productdescription:"UC Call Recodings Cold Storage up to 7 Years",_msdyn_project_value:null},{salesorderdetailid:"90b74cd3-70te-4769-a22f-f2ea1b0c5014",producttypecode:Gn.Product,bistech_totalannualprice:0,baseamount:88.69,quantity:1,bistech_productdescription:"Carriage - Special",_msdyn_project_value:null},{salesorderdetailid:"90b74cs3-70ae-4769-a22f-f2ea1b0c5014",producttypecode:Gn.Product,bistech_totalannualprice:0,baseamount:2170.92,quantity:6,bistech_productdescription:"Poly Rove B2 DECT DECT Base Station + Rove 30 DECT IP Phone Handset",_msdyn_project_value:null}],Order2:[{salesorderdetailid:"a9348454-7791-34ca-bc92-33bb84fa6c09",producttypecode:Gn.Product,bistech_totalannualprice:0,baseamount:2160,quantity:12,bistech_productdescription:"On-site Labour (per hour)",_msdyn_project_value:null},{salesorderdetailid:"a9348454-7791-34ca-bc92-34bb84fc6c09",producttypecode:Gn["Project-Based Service"],bistech_totalannualprice:2e4,baseamount:100,quantity:1,bistech_productdescription:"8x8 Option - Professional Services - 8x8 Work X0-X4 including VCC X6-X8 - Bistech Led",_msdyn_project_value:Nr["Microsoft Defender for Endpoint/Business"].msdyn_projectid}],Order3:[]},Hr=[{salesorderid:"2e73d45a-71e7-46b5-b448-ed2e43e7d76b",name:"A new sword for Iron Man",ordernumber:"ORD-543223-925-NO-ORDERFORM",_bistech_contact_value:null,totallineitemamount:120,bistech_totalannualprice:0,bistech_orderform:null,statecode:Jo.Active,statuscode:qe.Pending,bistech_customerreference:"CUST-12345",order_details:[]},{salesorderid:"fe1ed1d0-4cba-4aec-b5f3-f3ed12f9a060",name:"A New Suit for Iron Man",ordernumber:"ORD-012345-123",_bistech_contact_value:ee.tonyStark.contactid,totallineitemamount:34260,bistech_totalannualprice:1200,bistech_orderform:kc.Order1,statecode:Jo.Active,statuscode:qe["In Progress"],bistech_customerreference:"CUST-54321",order_details:ar.Order1},{salesorderid:"ae73d45b-11e4-46b5-a448-fd2e43e7d76c",name:"A new suit for his friend War Machine",ordernumber:"ORD-543210-421",_bistech_contact_value:ee.tonyStark.contactid,totallineitemamount:2150,bistech_totalannualprice:100,bistech_orderform:kc.Order2,statecode:Jo.Active,statuscode:qe["Project Onboarding"],bistech_customerreference:"CUST-34526",order_details:ar.Order2},{salesorderid:"5e73d45b-21e3-a6b5-b448-6d2e43e7d76d",name:"A new helmet for Iron Man",ordernumber:"ORD-943271-618",_bistech_contact_value:ee.nickFury.contactid,totallineitemamount:150,bistech_totalannualprice:0,bistech_orderform:kc.Order3,statecode:Jo.Active,statuscode:qe.Processing,bistech_customerreference:"CUST-90826",order_details:ar.Order3},{salesorderid:"4e73d451-61e7-46b2-a448-ed2e43e7d76c",name:"A new rocket booster for Iron Man",ordernumber:"ORD-843283-429",_bistech_contact_value:ee.peterParker.contactid,totallineitemamount:120,bistech_totalannualprice:0,bistech_orderform:kc.Order4,statecode:Jo.Active,statuscode:qe.Pending,bistech_customerreference:"CUST-90283",order_details:[]},{salesorderid:"4e73d451-61e7-46b2-a448-ed2e43e7d56c",name:"A brand new glove for Thanos",ordernumber:"ORD-843283-428",_bistech_contact_value:ee.peterParker.contactid,totallineitemamount:120,bistech_totalannualprice:0,bistech_orderform:kc.Order4,statecode:Jo.Fulfilled,statuscode:qe.Complete,bistech_customerreference:"CUST-09283",order_details:[]},{salesorderid:"f13f0a31-fd8f-4842-8f66-2a036369d1d7",name:"A brand new glove for Thanos",ordernumber:"ORD-843283-428",_bistech_contact_value:ee.peterParker.contactid,totallineitemamount:120,bistech_totalannualprice:0,bistech_orderform:kc.Order4,statecode:Jo.Fulfilled,statuscode:qe.Complete,bistech_customerreference:"CUST-09284",order_details:[]}];var jn=(e=>(e[e.Local=16496e4]="Local",e[e.Microsoft=164960002]="Microsoft",e[e.AzureB2B=164960001]="AzureB2B",e))(jn||{}),Bt=(e=>(e[e.New=1]="New",e[e["Pending Send"]=756150003]="Pending Send",e[e.Sent=75615e4]="Sent",e[e.Redeemed=756150001]="Redeemed",e[e.Expired=756150002]="Expired",e[e.Failed=756150004]="Failed",e[e.Inactive=2]="Inactive",e))(Bt||{});const Xne=[{adx_invitationid:"1160687ae8d84e3eb7849fca753880b6",_adx_invitecontact_value:ee.nickFury.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt["Pending Send"]},{adx_invitationid:"24928ede-cfe4-4754-9152-5a1c3d53e789",_adx_invitecontact_value:ee.peterParker.contactid,bistech_authenticationtype:jn.Local,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"5a673e33-67aa-4ef9-acff-39ecae1ba920",_adx_invitecontact_value:ee.peterQuill.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"7a211e27-92e4-4f86-9bfa-b899e366c263",_adx_invitecontact_value:ee.scottLang.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"1fe59990-01d7-432d-afa3-4d6e8e3c3cdc",_adx_invitecontact_value:ee.stephenstrange.contactid,bistech_authenticationtype:jn.Local,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"349eda10-d9cd-460f-afae-1b92f2b1483f",_adx_invitecontact_value:ee.nickFury.contactid,bistech_authenticationtype:jn.Local,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"6582b9d5-3827-4e22-baab-e9d42b732933",_adx_invitecontact_value:ee.tonyStark.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"fd68d5cc-1c05-4edd-bf95-8aa9eb3e96d6",_adx_invitecontact_value:ee.tonyStark.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2021-07-06T09:08:00.000Z",statuscode:Bt.Expired},{adx_invitationid:"7d1b7896-2301-4207-9de4-799643c47ca3",_adx_invitecontact_value:ee.steveRogers.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Redeemed},{adx_invitationid:"f2bd1990-9761-4d36-977b-cba933ca6e80",_adx_invitecontact_value:ee.steveRogers.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-06T10:08:00.000Z",statuscode:Bt.Expired},{adx_invitationid:"72fde85e-8c4a-4df1-9986-ba3ee834c7af",_adx_invitecontact_value:ee.thor.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.Failed},{adx_invitationid:"74af8887-3681-4b36-bfd8-fb9f4c8c603c",_adx_invitecontact_value:ee.thor.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-09T09:08:00.000Z",statuscode:Bt.Expired},{adx_invitationid:"3d446d8a-15e3-4900-a974-8b00fb90a1a3",_adx_invitecontact_value:ee.scottLang.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-07T09:02:00.000Z",statuscode:Bt.Failed},{adx_invitationid:"93f3795d-6b64-4834-89ef-dec9c892b290",_adx_invitecontact_value:ee.scottLang.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-06T09:01:00.000Z",statuscode:Bt.Expired},{adx_invitationid:"f54be1bc-430c-49e8-90b5-802376a9ea90",_adx_invitecontact_value:ee.tchalla.contactid,bistech_authenticationtype:null,createdon:"2020-07-07T09:08:00.000Z",statuscode:Bt.New},{adx_invitationid:"c2f83c6a-c458-48ef-a859-6f84ffb8c9dd",_adx_invitecontact_value:ee.stephenstrange.contactid,bistech_authenticationtype:jn.Microsoft,createdon:"2020-07-06T09:08:00.000Z",statuscode:Bt.Sent}],Gne=[{activityid:"ffd5699c-4395-489e-853f-9e7a6d5ea0ea",_regardingobjectid_value:Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].incidentid,subject:"Major Incident Resolved",description:`Major Incident ${Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].ticketnumber} has been marked as resolved.`,createdon:"2020-10-09T10:12:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z",bistech_casestatussnapshot:"Resolved"},{activityid:"ffd5699c-4395-489e-853f-9d7a6d5ea0ea",_regardingobjectid_value:Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].incidentid,subject:"Major Incident Re-Opened",description:`Major Incident ${Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].ticketnumber} has been re-opened.`,createdon:"2020-10-09T10:12:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z",bistech_casestatussnapshot:"In Progress"},{activityid:"ffd5699c-4395-489e-853f-9d7a6d5ea0ea",_regardingobjectid_value:Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].incidentid,subject:"Update",description:`Please be advised that Major Incident ${Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].ticketnumber} has now been resolved. Service was fully restored at 08:50. We believe that inbound calls should now be working as expected - please retest and contact the ServiceDesk on 01202 332299 if still experiencing issues.`,createdon:"2020-10-09T10:12:09.000Z",modifiedon:"2020-07-07T09:35:00.000Z",bistech_casestatussnapshot:"In Progress"},{activityid:"ffd5699c-4395-489e-903f-9e7a6d5ea0ea",_regardingobjectid_value:Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].incidentid,subject:"Major Incident Created",description:`Major Incident ${Zo.filter(e=>e.casetypecode===Se["Major Incident"])[0].ticketnumber} created.`,createdon:"2020-10-09T10:12:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z",bistech_casestatussnapshot:"In Progress"},{activityid:"ffd5699c-4395-489e-903f-9e7a6d5ea0ea",_regardingobjectid_value:Zo.filter(e=>e.casetypecode===Se["Major Incident"])[1].incidentid,subject:"Major Incident Created",description:`Major Incident ${Zo.filter(e=>e.casetypecode===Se["Major Incident"])[1].ticketnumber} created.`,createdon:"2020-10-09T10:12:11.000Z",modifiedon:"2020-07-07T09:35:00.000Z",bistech_casestatussnapshot:"In Progress"}],Yne=[{bistech_blogpostid:"1",bistech_name:"Lorem Ipsum part 1",bistech_description:"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",bistech_url:"https://bistech.co.uk/blog-post/a-constant-threat-is-your-business-ready/",bistech_imageurl:"https://bistech.co.uk/wp-content/uploads/2023/02/chess-banner.jpg",bistech_publishedby:"Tim Bamber",bistech_publishedon:Pe.getMidnightToday()},{bistech_blogpostid:"2",bistech_name:"Lorem Ipsum part 2",bistech_description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",bistech_url:"https://bistech.co.uk/blog-post/cyber-due-diligence-the-role-of-security-in-ma-activity/",bistech_imageurl:"https://bistech.co.uk/wp-content/uploads/2022/11/dd.jpg",bistech_publishedby:"Timothy Bamber",bistech_publishedon:Pe.getMidnightToday()},{bistech_blogpostid:"3",bistech_name:"Example title 3",bistech_description:"Something, something, something, Lorem Ipsum something.",bistech_url:"https://bistech.co.uk/blog-post/grow-or-go-navigating-the-technology-speedbumps-in-the-motor-industry/",bistech_imageurl:"https://bistech.co.uk/wp-content/uploads/2022/10/motor-banner.jpg",bistech_publishedby:"TSB",bistech_publishedon:Pe.getMidnightToday()},{bistech_blogpostid:"4",bistech_name:"Lorem Ipsum part 4",bistech_description:"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",bistech_url:"https://bistech.co.uk/blog-post/towards-sustainability/",bistech_imageurl:"https://bistech.co.uk/wp-content/uploads/2022/08/Sustainability-Banner-scaled.jpg",bistech_publishedby:"Jeff",bistech_publishedon:Pe.getMidnightToday()}];var Cr=(e=>(e[e["New Order"]=1e8]="New Order",e[e["Cease Order"]=100000001]="Cease Order",e))(Cr||{}),Tr=(e=>(e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e))(Tr||{}),Ut=(e=>(e[e["In Progress"]=1]="In Progress",e[e.Pending=100000001]="Pending",e[e.Rejected=100000002]="Rejected",e[e.Delayed=100000003]="Delayed",e[e.Confirmed=100000004]="Confirmed",e[e["Ready To Order"]=100000006]="Ready To Order",e[e.Completed=1e8]="Completed",e[e.Cancelled=100000005]="Cancelled",e))(Ut||{}),mf=(e=>(e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e))(mf||{});const Zr=[{msdyn_customerassetid:"377e4652-e38d-4c0c-9768-b047a4a459c6",msdyn_name:"EVA-002",_msdyn_product_value:xc[0].productid,msdyn_product:xc[0],statecode:mf.Active,_bistech_site_value:Oe[0].accountid,bistech_serialnumber:"123456"},{msdyn_customerassetid:"377e4652-e38d-4c0c-9768-b047a4a459c7",msdyn_name:"EVA-003",_msdyn_product_value:xc[0].productid,msdyn_product:xc[0],statecode:mf.Active,_bistech_site_value:Oe[1].accountid,bistech_serialnumber:"123456"},{msdyn_customerassetid:"377e4652-e38d-4c0c-9768-b047a4a459c8",msdyn_name:"EVA-004",_msdyn_product_value:xc[0].productid,msdyn_product:xc[0],statecode:mf.Active,_bistech_site_value:Oe[2].accountid,bistech_serialnumber:"123456"}];var Fn=(e=>(e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e))(Fn||{}),Ee=(e=>(e[e.Identified=100000001]="Identified",e[e.Delayed=100000002]="Delayed",e[e.Scheduled=100000003]="Scheduled",e[e.Completed=2]="Completed",e[e.Cancelled=100000004]="Cancelled",e))(Ee||{}),Le=(e=>(e[e["Order Placed"]=1e3]="Order Placed",e[e.Survey=1e8]="Survey",e[e.Wayleave=100000010]="Wayleave",e[e["Civils Work"]=100000020]="Civils Work",e[e.Installation=100000025]="Installation",e[e["Fibre Install"]=100000030]="Fibre Install",e[e["Fibre Splicing"]=100000040]="Fibre Splicing",e[e["Fit & Test"]=100000050]="Fit & Test",e[e["Connection Installed"]=100000060]="Connection Installed",e[e["CommsCare Site Visit"]=100000070]="CommsCare Site Visit",e))(Le||{});const mo=[{bistech_networkorderstageid:"09bd096c-bf7f-ee11-8179-6045bd10f0f8",bistech_stage:Le["Order Placed"],bistech_datefrom:"2023-10-25T23:00:00Z",statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"5fb3f527-2182-ee11-8179-6045bd10f3ee",bistech_stage:Le["Fit & Test"],bistech_datefrom:"2023-11-13T00:00:00Z",statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"d7012fff-2c6f-ee11-9ae7-6045bd10f40d",bistech_stage:Le["Civils Work"],bistech_datefrom:"2023-10-20T00:00:00Z",statecode:Fn.Active,statuscode:Ee.Identified},{bistech_networkorderstageid:"d7012fff-2c6f-ee11-9ae7-6045bd30f40d",bistech_stage:Le.Installation,bistech_datefrom:"2023-10-25T00:00:00Z",statecode:Fn.Active,statuscode:Ee.Identified},{bistech_networkorderstageid:"d7012fff-2c6f-ee11-9ye7-6045td30f40d",bistech_stage:Le.Installation,bistech_datefrom:"2023-10-21T00:00:00Z",statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"463e457d-b666-ee11-9ae7-6045bd10fdaa",bistech_stage:Le["Connection Installed"],bistech_datefrom:"2023-10-24T00:00:00Z",statecode:Fn.Active,statuscode:Ee.Delayed},{bistech_networkorderstageid:"4d9ddbb3-097f-ee11-8179-6045bdd0b45d",bistech_stage:Le.Wayleave,bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"f266e538-0a7f-ee11-8179-6045bdd0b45d",bistech_stage:Le.Survey,bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"eda044d7-c961-ee11-8def-6045bdd0b45d",bistech_stage:Le["Connection Installed"],bistech_datefrom:"2023-10-03T00:00:00Z",statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"7326f8f5-087f-ee11-8179-6045bdd0bed0",bistech_stage:Le["Connection Installed"],bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"9526f8f5-087f-ee11-8179-6045bdd0bed0",bistech_stage:Le["Fibre Splicing"],bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"9526f8f5-087f-ee11-8179-6045bdd0bed0",bistech_stage:Le["Fibre Splicing"],bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"9526f8f5-087f-ee11-8179-6045bdd0bed0",bistech_stage:Le["Fibre Splicing"],bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Completed},{bistech_networkorderstageid:"9526f8f5-087f-ee11-8179-6045bdd0bed0",bistech_stage:Le["Fibre Splicing"],bistech_datefrom:null,statecode:Fn.Inactive,statuscode:Ee.Identified},{bistech_networkorderstageid:"9526f8f5-087f-ee11-8179-6045bdd0bed0",bistech_stage:Le["CommsCare Site Visit"],bistech_datefrom:null,statecode:Fn.Active,statuscode:Ee.Identified}],Kne=[{bistech_networkorderid:"377e4652-e38d-4c0c-9768-b047a4a459c6",bistech_name:"NO-137584",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Completed,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"377e4652-e38d-4c0c-9768-b047a4a459c7",bistech_name:"NO-137585",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Cancelled,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"377e4652-e38d-4c0c-9768-b047a4a459c8",bistech_name:"NO-137586",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[1].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Pending,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"377e4652-e38d-4c0c-9768-b047a4a459c9",bistech_name:"NO-137587",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[2].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Pending,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"377e4652-e38d-4c0c-9768-b048a4a459c6",bistech_name:"NO-137584",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Cancelled,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"177e4652-e38d-4c0c-9768-b047a4a459c7",bistech_name:"NO-137585",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Pending,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"277e4652-e38d-4c0c-9768-b047a4a459c8",bistech_name:"NO-137586",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[1].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Pending,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"477e4652-e38d-4c0c-9768-b047a4a459c9",bistech_name:"NO-137587",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[2].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Pending,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"577e4652-e38d-4c0c-9768-b047a4a459c6",bistech_name:"NO-137584",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Completed,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"677e4652-e38d-4c0c-9768-b047a4a459c7",bistech_name:"NO-137585",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Active,statuscode:Ut.Pending,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo.slice(Math.floor(Math.random()*10),Math.floor(Math.random()*14+10)),bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"a40765a2-4b6d-4651-88b3-d143305aab65",bistech_name:"NO-233499",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Inactive,statuscode:Ut.Cancelled,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo,bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]},{bistech_networkorderid:"3b2d8179-a90b-490b-a5cc-fa8c6de9a150",bistech_name:"NO-451292",bistech_networkordertype:Cr["New Order"],_bistech_contact_value:null,_bistech_customerasset_value:Zr[0].msdyn_customerassetid,_bistech_projectnetworkorder_value:Nr["Professional Services - Microsoft Exchange Online - Full Migration"].msdyn_projectid,statecode:Tr.Inactive,statuscode:Ut.Completed,_bistech_salesorder_value:Hr[1].salesorderid,_bistech_orderline_value:ar.Order1[1].salesorderdetailid,bistech_bistech_networkorderstage_networkorder_bi:mo,bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_majorincidentupdates:[],bistech_networkorder_bistech_portalemails:[]}],La="JVBERi0xLjcNJcjIyMjIyMgNJSAgIAoxIDAgb2JqClsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldDQplbmRvYmoKMiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDggMCBSL01lZGlhQm94WzAgMCA4NDEuODg5OTk5OTk5OTk5OTg2MzYgNTk1LjI3NTk5OTk5OTk5OTk1MzYyXS9Db250ZW50cyA3IDAgUi9SZXNvdXJjZXM8PC9Qcm9jU2V0IDEgMCBSL1hPYmplY3Q8PC9JbTUgNSAwIFIvSW02IDYgMCBSPj4vRm9udDw8L0YzIDMgMCBSL0Y0IDQgMCBSPj4+Pj4+DQplbmRvYmoKMyAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9GaXJzdENoYXIgMC9MYXN0Q2hhciAyNTUvV2lkdGhzWzUwMCAxMDAwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDQ5MCA1MDAgMjYwIDQ5MCA0OTAgMjYwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDI2NiAyNzggMzU1IDU1NiA1NTYgODg5IDY2NyAxOTEgMzMzIDMzMyAzODkgNTg0IDI3OCAzMzMgMjc4IDI3OCA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgMjc4IDI3OCA1ODQgNTg0IDU4NCA1NTYgMTAxNSA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggNzIyIDI3OCA1MDAgNjY3IDU1NiA4MzMgNzIyIDc3OCA2NjcgNzc4IDcyMiA2NjcgNjExIDcyMiA2NjcgOTQ0IDY2NyA2NjcgNjExIDI3OCAyNzggMjc4IDQ2OSA1NTIgMzMzIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjI4IDIyOCA1MDAgMjI4IDgzMyA1NTYgNTU2IDU1NiA1NTYgMzMzIDUwMCAyNzggNTU2IDUwMCA3MjIgNTAwIDUwMCA1MDAgMzM0IDI2MCAzMzQgNTg0IDUwMCA1NTYgNTAwIDI3OCA1NTYgMzkyIDU2NSA1NTYgNTU2IDMzMyAxMDAwIDY2NyAzMzMgMTAwMCA1MDAgNjExIDUwMCA1MDAgMjIyIDIyMiAzMzMgMzMzIDM1MCAyOTMgNTg2IDMzMyA2ODQgNTAwIDMzMyA5NDQgNTAwIDUwMCA2NjcgMjY2IDI3OCA1NTYgNTU2IDU1NiA1NTYgMjYwIDU1NiAzMzMgNzM3IDM3MCA1NTYgNTg0IDMzMyA3MzcgNTAwIDQwMCA1ODQgMzMzIDMzMyAzMzMgNTU2IDUzNyAyNzggMzMzIDMzMyAzNjUgNTU2IDgzNCA4MzQgODM0IDU1NiA2NjcgNjY3IDY2NyA2NjcgNjY3IDY2NyAxMDAwIDcyMiA2NjcgNjY3IDY2NyA2NjcgMjc4IDI3OCAyNzggMjc4IDcyMiA3MjIgNzc4IDc3OCA3NzggNzc4IDc3OCA1ODQgNzc4IDcyMiA3MjIgNzIyIDcyMiA2NjcgNjY3IDYxMSA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA4ODkgNTAwIDU1NiA1NTYgNTU2IDU1NiAyMjggMjI4IDIyOCAyMjggNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU4NCA1NTYgNTU2IDU1NiA1NTYgNTU2IDUwMCA1NTYgNTAwXS9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvQmFzZUZvbnQvQUJDREVFK01pY3Jvc29mdCMyMFNhbnMjMjBTZXJpZi9Gb250RGVzY3JpcHRvciAxMSAwIFI+Pg0KZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvRmlyc3RDaGFyIDAvTGFzdENoYXIgMjU1L1dpZHRoc1s1MDAgMTAwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI1OSA1MDAgNTAwIDI1OSA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyNjUgMjc3IDM1NCA1NTYgNTU2IDg4OSA2NjYgMTkwIDMzMyAzMzMgMzg5IDU4MyAyNzcgMzMzIDI3NyAyNzcgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDI3NyAyNzcgNTgzIDU4MyA1ODMgNTU2IDEwMTUgNjY2IDY2NiA3MjIgNzIyIDY2NiA2MTAgNzc3IDcyMiAyNzcgNTAwIDY2NiA1NTYgODMzIDcyMiA3NzcgNjY2IDc3NyA3MjIgNjY2IDYxMCA3MjIgNjY2IDk0MyA2NjYgNjY2IDYxMCAyNzcgMjc3IDI3NyA0NjkgNTUxIDMzMyA1NTYgNTU2IDUwMCA1NTYgNTU2IDI3NyA1NTYgNTU2IDIyOCAyMjggNTAwIDIyOCA4MzMgNTU2IDU1NiA1NTYgNTU2IDMzMyA1MDAgMjc3IDU1NiA1MDAgNzIyIDUwMCA1MDAgNTAwIDMzMyAyNTkgMzMzIDU4MyA1MDAgNTU2IDUwMCAyNzcgNTU2IDM5MSA1NjUgNTU2IDU1NiAzMzMgMTAwMCA2NjYgMzMzIDEwMDAgNTAwIDYxMCA1MDAgNTAwIDIyMiAyMjIgMzMzIDMzMyAzNTAgMjkyIDU4NSAzMzMgNjgzIDUwMCAzMzMgOTQzIDUwMCA1MDAgNjY2IDI2NSAyNzcgNTU2IDU1NiA1NTYgNTU2IDI1OSA1NTYgMzMzIDczNiAzNzAgNTU2IDU4MyAzMzMgNzM2IDUwMCAzOTkgNTgzIDMzMyAzMzMgMzMzIDU1NiA1MzcgMjc3IDMzMyAzMzMgMzY1IDU1NiA4MzMgODMzIDgzMyA1NTYgNjY2IDY2NiA2NjYgNjY2IDY2NiA2NjYgMTAwMCA3MjIgNjY2IDY2NiA2NjYgNjY2IDI3NyAyNzcgMjc3IDI3NyA3MjIgNzIyIDc3NyA3NzcgNzc3IDc3NyA3NzcgNTgzIDc3NyA3MjIgNzIyIDcyMiA3MjIgNjY2IDY2NiA2MTAgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgODg5IDUwMCA1NTYgNTU2IDU1NiA1NTYgMjI4IDIyOCAyMjggMjI4IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1ODMgNTU2IDU1NiA1NTYgNTU2IDU1NiA1MDAgNTU2IDUwMF0vRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0Jhc2VGb250L0FCQ0RFRStNaWNyb3NvZnQjMjBTYW5zIzIwU2VyaWYvRm9udERlc2NyaXB0b3IgMTIgMCBSPj4NCmVuZG9iago1IDAgb2JqCjw8L1R5cGUvWE9iamVjdC9TdWJ0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m41mzNnAVOUR0RXpqRpQ0CVzUkk9ysZtsB2eqm3jN7/5zdatWycmbrv55vGvf/1rSE0lcvLvfe+en/70fzk3zf8PjG+m1Q0KZW5kc3RyZWFtDQplbmRvYmoKNiAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9CaXRzUGVyQ29tcG9uZW50IDgvRmlsdGVyL0RDVERlY29kZS9Db2xvclNwYWNlL0RldmljZVJHQi9XaWR0aCAxNzcyL0hlaWdodCA1OTEvTGVuZ3RoIDE1OTEyNj4+c3RyZWFtDQr/2P/gABBKRklGAAECAQBIAEgAAP/tACxQaG90b3Nob3AgMy4wADhCSU0D7QAAAAAAEABIAAAAAQABAEgAAAABAAH/4T8vaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjEtYzAwMCA3OS5jYjdjNWExLCAyMDIyLzA0LzE0LTA1OjIyOjM1ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wR0ltZz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL2cvaW1nLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczppbGx1c3RyYXRvcj0iaHR0cDovL25zLmFkb2JlLmNvbS9pbGx1c3RyYXRvci8xLjAvIgogICAgICAgICAgICB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iCiAgICAgICAgICAgIHhtbG5zOnBkZng9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmeC8xLjMvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxkYzp0aXRsZT4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+V2ViPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC9kYzp0aXRsZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBJbGx1c3RyYXRvciAyNi4zIChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyMi0wNS0yNFQxNjoxODoxMCswMTowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIyLTA1LTI0VDE1OjE4OjEyWjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMjItMDUtMjRUMTY6MTg6MTArMDE6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6VGh1bWJuYWlscz4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8eG1wR0ltZzp3aWR0aD4yNTY8L3htcEdJbWc6d2lkdGg+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOmhlaWdodD43NjwveG1wR0ltZzpoZWlnaHQ+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOmZvcm1hdD5KUEVHPC94bXBHSW1nOmZvcm1hdD4KICAgICAgICAgICAgICAgICAgPHhtcEdJbWc6aW1hZ2U+LzlqLzRBQVFTa1pKUmdBQkFnRUFTQUJJQUFELzdRQXNVR2h2ZEc5emFHOXdJRE11TUFBNFFrbE5BKzBBQUFBQUFCQUFTQUFBQUFFQSYjeEE7QVFCSUFBQUFBUUFCLys0QURrRmtiMkpsQUdUQUFBQUFBZi9iQUlRQUJnUUVCQVVFQmdVRkJna0dCUVlKQ3dnR0JnZ0xEQW9LQ3dvSyYjeEE7REJBTURBd01EQXdRREE0UEVBOE9EQk1URkJRVEV4d2JHeHNjSHg4Zkh4OGZIeDhmSHdFSEJ3Y05EQTBZRUJBWUdoVVJGUm9mSHg4ZiYjeEE7SHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmLzhBQUVRZ0FUQUVBQXdFUiYjeEE7QUFJUkFRTVJBZi9FQWFJQUFBQUhBUUVCQVFFQUFBQUFBQUFBQUFRRkF3SUdBUUFIQ0FrS0N3RUFBZ0lEQVFFQkFRRUFBQUFBQUFBQSYjeEE7QVFBQ0F3UUZCZ2NJQ1FvTEVBQUNBUU1EQWdRQ0JnY0RCQUlHQW5NQkFnTVJCQUFGSVJJeFFWRUdFMkVpY1lFVU1wR2hCeFd4UWlQQiYjeEE7VXRIaE14Wmk4Q1J5Z3ZFbFF6UlRrcUt5WTNQQ05VUW5rNk96TmhkVVpIVEQwdUlJSm9NSkNoZ1poSlJGUnFTMFZ0TlZLQnJ5NC9QRSYjeEE7MU9UMFpYV0ZsYVcxeGRYbDlXWjJocGFtdHNiVzV2WTNSMWRuZDRlWHA3ZkgxK2YzT0VoWWFIaUltS2k0eU5qbytDazVTVmxwZVltWiYjeEE7cWJuSjJlbjVLanBLV21wNmlwcXF1c3JhNnZvUkFBSUNBUUlEQlFVRUJRWUVDQU1EYlFFQUFoRURCQ0VTTVVFRlVSTmhJZ1p4Z1pFeSYjeEE7b2JId0ZNSFI0U05DRlZKaWN2RXpKRFJEZ2hhU1V5V2lZN0xDQjNQU05lSkVneGRVa3dnSkNoZ1pKalpGR2lka2RGVTM4cU96d3lncCYjeEE7MCtQemhKU2t0TVRVNVBSbGRZV1ZwYlhGMWVYMVJsWm1kb2FXcHJiRzF1YjJSMWRuZDRlWHA3ZkgxK2YzT0VoWWFIaUltS2k0eU5qbyYjeEE7K0RsSldXbDVpWm1wdWNuWjZma3FPa3BhYW5xS21xcTZ5dHJxK3YvYUFBd0RBUUFDRVFNUkFEOEE5VTRxNGtBVk93SFU0cXdLOS9PTCYjeEE7eTlCcnlhYkJFOTFhbHhITHFFYkRnR0pwVkZwOGFqdWEvS3ZmTGpwSkdOOWU1NTdMN1I0WTV1QURpanlNdjFkLzRwZ241dmF0cUY3NSYjeEE7d2wwdHBEOVZzaEVsdkNEUmVVc2F5RmlPbklsNlY4TXl0SkVDRjk3b1BhSFVUbnFUanYweHFoN3dEK2xEZVV2T3V1ZVROVWZUNytPUiYjeEE7N0ZYNFhkaEpYbEdmNTRxbWdiOEdIMEVITGhqa0ZqbTE5bjlwNWRGazRKZzhQV1BkNWo4VWZ0ZTc2WHF1bjZyWXhYMWhNczlyTUtwSSYjeEE7djRnZzdnanVEbXJsQXhORjc3Qm5obGdKd054S0t5TGM3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGVk80dUlMYUI1N2lSWW9Jd1drbGNoVlVEcVNUMHdnRW1neG5NUkJNalFEeFA4QU1EOHpiblhHZlN0RyYjeEE7THhhV1R3a2tBSWt1UGFuVlVyMjZudjRadE5QcGVIYzgzaE8xKzNKWno0ZUxiSDlzdjJmZzl5ZmZseitWZjFWb2RaMTZQL1NWSWt0TCYjeEE7QS83cklvVmVYL0sveWUzZmZZVTZqVS93eGRqMk4yRncxbHpEMWRJOTNtZlB5K2JEZnpRLzhtTHFIK3RiZjlROFdYNlgrN0RwZTNQOCYjeEE7ZG4vbS93QzVEMW56MTVBMC93QXoydk5lTnRxc1EvMGU3cHMzL0ZjdE55dnYxWHQzQndjR2N3UGs5ZjJyMlREVlJzZW5JT1IvUWZMNyYjeEE7bmtlZytZZk1ma1BXNUxhNGhjUmhxWG1ueUdpT09uTkR1Sy95dU92eXpZVHh4eXgvUzhkcE5abjBHVXhJOThUMS9IUXZkOUMxN1ROYyYjeEE7MDZPLzA2VVN3dnN5OUhSdTZPdjdMRCswYlpxc21NeE5GNy9TNnZIbmdKd05qN3ZJcGhrSEpkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpciYjeEE7c1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmVFZWZmT2VwZWFOV09rNmJ6YlRVbDlLMmdpcVRjT0RRT3dHNXFmcyYjeEE7anQ4ODNPbjA0eHhzODN6M3RidFBKcTh2aDQvb3VnQi9GNS9xWjErWC93Q1dWdG9peDZqcWlyUHE1RlVUWm83ZnZSZkYvRnZ1OFRoNiYjeEE7blZjVzBmcCs5NkRzZnNPT0NzbVRmSjlrZjIrZnk3MmU1aFBSUG43OHpRcmZtRnFEQWdqbGI3L0tDTUhONXBJWGlINDZ2bS9ic3Y4QSYjeEE7RFovNXYrNUQ2QnpSdnBESGZPWGtyVFBNOWo2YzRFVjlFcCtxM2dIeElldEcvbVU5eDkyWDRjNWdmSjF2YVhabVBWUW83VEhJL2pvOCYjeEE7WnNyM3pOK1gzbU40blhpd0krc1c1TlliaUd1ekthZlBpM1VkUEVac3BSamxpOFBpeTUrenM1QitJNlNINDVIcDh3K2dOT3ZyZlVMQyYjeEE7M3ZyWThvTG1OWllpZXZGeFVWOS9ITlJLSmlhTDZOaHl4eVFFNDhwQzBSa1d4ODFlZVB6cy9NUFN2T0dzNmJaWDBjZHBaM2NzTUNHMyYjeEE7aFloRVlnQ3BVazRxa2Y4QXl2OEEvTS8vQUt1TVgvU05CL3pSaXJ2K1YvOEE1bi85WEdML0FLUm9QK2FNVlpGNVYvNXlVOHcyOTNIRiYjeEE7NWt0b3I2eFlnU1QyNitsT24rVUFENmJmS2crZUt2VlB6TTg0M1ZwK1dOMTVoOHRUK3A5WVNFMjE3R0s4STUzVlRJQWVoQWFtL1E0cSYjeEE7OFEvS0x6NzV5WHo3cGxvK28zVi9iYWpNSUx1M3VKWG1VbzFTemptV295ZmFxUDFZcStxc1ZkaXJzVlFldGFwRHBPalgrcXpJMGtOaCYjeEE7YnkzVWlKVGt5d29aQ0ZyUVZJWGJGWG1PbC84QU9SL2xiVU5TdExDTFRMNUpMeWFPQkhiMGVJYVZ3Z0pvL1RmRlhyV0t1eFYyS3V4ViYjeEE7Mkt1eFYyS3V4VjVCK2ZINWgrYS9LZHpwRVdoWFMyeTNrYzVtTFJSeW1xRkFwSHFLMUtjamlxLzhnZlBmbXZ6WCtuZjAvZmZYZnFYMSYjeEE7VDZ0KzZoaTQrcjYzUCs2U090ZlRYcmlyMXpGWFlxK2RmS1dvSjVZODR3ejZuRXdGbkpMQmNxQlZrSlZvMkk4ZUpQYnRuUlpzZmlZLyYjeEE7VDFmTU96czQwbXFCeUQ2U1FmTG8rZzQ3Nnlsc3hlcE9qV2JKNm91T1E0Y0tWNWN1bEtaejVpUWFyZDlMamxqS1BHQ09IbmZSNDk1NiYjeEE7L05LNTFTNU9rK1gzZU96NWVtOXhIVVNYQk8xRXA4UVN2MHRtODBlaEVCeFQ1L2M4VjJ4MjNQS2ZDdzJJOTQ1eTkzbDk3QjlSc0x2VCYjeEE7NzlyRytpTU40b1F2RXhGUjZpQjFCcDM0c00yTVp4bU9JY25tYzJteVlwOEVoVXR2dDNaZjVZODU2NTVSMUp0TTFSSkhzbzI0VDJjaCYjeEE7cThYK1ZGVTA5NmREK09ZbW8wa004ZUtQUHY3L0FIdTQ3UDdWemFISjRlVUhnSE9KNmU3OFVYdEduNmxZNmhaUjN0bk1zMXJLT1NTTCYjeEE7MHAzclhjRWR3YzU2ZU9VRHdrYnZvT0RQRExBVGdiaVhpWDV0ZVo5TTF2V0xlSFR1TTBWZ2p4dmRxTnBIY2drS2Yya1hqc2ZFbnR2bSYjeEE7MjBtQ1VJNzlYZy9hSFg0OCtVQ0c0aDE3L3dCZy9XOWI4azZmUHAzbFBTN1M0cUprZ1ZwRklJS2w2dnhJUGRlVk0xbW9rSlRKRDJmWiYjeEE7ZUdXUFRRakxudy9mdW5lVXVlK0wvd0F6di9KaCtZditZK2YvQUltY1ZleC9raDVBOG02MzVFaXZ0VzBtQzh1MnVKa00wZ0piaXBGQiYjeEE7c1IweFZuazM1UGZsckxDOFIwRzNVT0NwWk9hTUs5d3dZRUhGWHlyNTIwQ0x5LzVzMVRSb1pETERaVHRIRTVwVW9maVhsVHVGTkQ3NCYjeEE7VmUzL0FKTytaTk8wNzhtZFJ1L01hbWJSYkc5bHRtaU1mcWhvWi9SSEhnZG1VeXptdUJVdy9ML3pYK1NnOHlRMm5sYlQydGRYditVVSYjeEE7Y3BoZm9GTHNvWjJiZ0NGN1lxOUE4MStkdkxQbFcxVzQxdTlXMjlTdm93Z0Y1WkNPdkNOYXNhZHowSGZGWG5Vdi9PVG5rMVpHRWVtYSYjeEE7ZzZEN0xsWVZKK2oxRGlxZitXUHoxOGdhOWNKYS9XSk5NdTVDRmppdmxFYXN4N0NSV2VQNWNtRmNWV2ZtNStZdmxyUmRJMVR5NWZQSyYjeEE7TlQxUFNwL3FxcEdXUS9XRWxoanF3NmZHcHhWOHZlWHIyQ3gxL1RMMjRKRUZyZHdUU2xSVThJNUZacUQ1RENyNmdzZno3OGczOTdCWiYjeEE7V1p2Sjd1NWRZb0lVdDJMTTdtaWdiK09CV1hlWi9OL2x6eXhaQzgxdTlTMGplb2lRMWFTUWpxRWpVRm0rZ2JkOFZlYnovd0RPVGZreCYjeEE7SldXSFR0UWxRZEpDc0sxK2oxRGlySy9KMzV2K1NmTlV5MnRsZE5hNmcvMkxLOFVSU04vcUVGa2MreXRYMnhWbXVLcFo1aDh6YUQ1ZCYjeEE7c0RmYTFleDJWc05sWnlTekgrVkVXcnVmWlFjVmVhWGYvT1RQa21LZG83ZXh2N2lOZGhNRWlRTjhnMG5LbnpBeFZPUExQNTllUWRjdSYjeEE7VXRYbWwwdTVrUEdOYjVWUkdid0VxTTZEL1pFWXF3TC9BSnlrTmIveThSMDlLNS80bEhpcUQvNXg1OHo2RDVjc1BORi9yVjdIWjIzKyYjeEE7Z2hTOVN6dC9wQjRvaTFaejdLTVZaamQvODVNK1NvcDJTM3NMKzRqWFlTOElrRGU0RFNjcWZPbUtzczhqL214NVE4NHlHMjA2YVMzMSYjeEE7QlZMR3d1bENTbFIxS2NTeU9CN05YeEdLb1Q4elBJdW5halpUNjNESkhaNmhiSnpta2tJU0taRkhTUW5ZUDJWdm9QWWpZNkhWbUI0VCYjeEE7dkUvWTg3MjUyTkRQRTVZK25JUGxMMytmY2ZnZkxqcDFmVlRvMG1sd1hqcnAwemlWN1lINEdZZmo5SFR4Nlp2RGdqSThYOFR4T0xXNSYjeEE7Y1VUaUpQQmU0ZXIvQUpVK1F0THNyQzMxK2VTTzl2N2hlY0RJZVVjQU94VWY4V2RtUGJvUGZTYTdVeUpNT1FEMi9Zdlp1SVJHYXhLUiYjeEE7NWVYN2UvdWVmZm1sSlQ4eWRSSCtYYmY5UThXWnVpbCs2QTkvM3VuN1p3WHFabjNmN2tQWXZQSGt6Uzlmc0htbWRMUzl0MExSM3pVQSYjeEE7Q3FDU3NwL2svVjE4YTYzUjZ1V0tWRGNIcCtwNkR0ZnNyRnFZV2FqT1A4WDYvTDduaHNlc2F0WTJ0M3B0dGVPbG5jRXJjUnh0OEQwMiYjeEE7MjltSFduVWRjNkRKampJaVJHNGZPNGFuTGpqTEhHUjRaYzY1SDhmYTlBL0t2eUhwOXpGSDVndnBJN2txeCtyV2lrTUkzVS9hbC95dSYjeEE7NFh0MStXcDErb01Ud0RaNm4yZTdKaE1EUE1pWGNPNzMrZms5WnpVUGFPeFY4WC9tZC81TVB6Ri96SHovQVBFemlxYytUUHpxODArVSYjeEE7ZEVYUjlOdGJHYTFTUjVROXpITTBuS1ExTzZTeGluMFlxbk54L3dBNUxmbUJMQThjZHRwdHU3Q2l6Und6RjFQaW9rbWRmdlU0cTg5MCYjeEE7eXp1L01ubUJZcnEvaGd1YitVdlBmMzBvamo1dTFXWjNQY2s0VmZRMzVnZVZMRHlyK1F1bzZMWk9aVWdGczB0d1FBWlpIdllXZHlCNCYjeEE7bm9Pd29NQ3ZHZnlXL3dESm42RC9BTVpaUCtURW1LcGYrWld0MytzZWVkWnVyeVF1MGQxTGJ3clhaSVlYS1JvdnlBKytweFY2NStYdiYjeEE7NUhmbDlyZmxTeDFPNHZaNys3dTRFa3VmUW1SRWdrZGF0RnhVTVEwWitFOGoxR0tvZld2K2NZNmF2YUhSOVRZNlRMSUJlTGNnZXZESCYjeEE7U3JNaktBc2xhVUE0aW0zWGZGVTcvTm44bmRPdjlNZlhJTCtTMWk4dTZNME52WmNQVjVwWkxMS29hUm41ZkZ5NDlEaXI1MjBXd0dvNiYjeEE7eFk2ZXorbUx5NGl0eklCVXFKWENjcWJWcFhDcjZTOHNmbE41Yy9MWTMvbTIrdm4xSjlQdHBIaDV4ckVJNktlWlVjbnE3ajRGK2Z2ZyYjeEE7VjREcldzZVl2UFBtdjE1dVZ6cVdvU3JEYVd5bjRVRE5TT0tNSDdLclgrSjc0VmUyYUwvempINWVUVGxHdGFsZFM2aXkvdkRhR09PRiYjeEE7R085RkR4eU0xT2xTUlh3R0JYbFA1bC9scnFma1BWb0I2NXVkUHVhdllYeWdvd0tIZEhwOWwxMk8zWHFQQUt2ZFB5aC9Nc2E1NUh1NyYjeEE7dldwdjlOMEJTTlJ1RHVYaFZDNlRON2xVWUh4S2s5OFZmT3ZuZnpscXZtL3pCUHFsNjdjV1lwWjIxYXJERFg0STFINnozTytGWHFQbCYjeEE7SC9uR3FlODB4THZ6SmZ5V056TXZKTEczVldlTUViZXE3VkhMeFVEYng4QXFTZVpmK2NlZk50aHJkcFo2T3cxT3d2V0tyZWtla0lLYiYjeEE7bjZ3S3R4Rk9qRHIwNjBHS3FuNTUrWFg4dTZYNVIwZDcyVy9hMHQ3bFRjekdwSkx4a2hmQkIwVUVtZzJ4VmlINWVmbHpyUG5mVTVMVyYjeEE7eGRMZTF0UXJYMTdKdXNTdVR4QVVic3pjVFFlM1VZcTlGOHpmODQwejJHaXozdWthczE3ZVcwYlNOYXl3aVAxUW9KSVJsWnFOVG9EMSYjeEE7OFJpcngzUXRYdTlHMWl6MVcwY3BjV1V5VFJrR2xlSnFWUHN3MlB0aFY3SDU5ODRhMTV6OHhEUTlKVjVOUFNZeFdkckgxbWRhZ3l2OSYjeEE7eElyc3EvVG0yd1lvNDQ4UjV2TmF6VVR6ejRJL1RldzcvTmw5bCtTTWNQbHYwM3UvOXp6ZnZESlVtM0JwL2RVNjAveSt2dDJ5T1B0TSYjeEE7eG55OURIVSt6a2N1TG5XWHY2ZTc5ckdQTDNtUFhmSldzUzIxeEN3akRCYjJ3azJyNE1wNkJxZEdHeEhqbXp6NmVHb2hZUHVMek9oMSYjeEE7K2ZzL0tZeUczOFVmMGo5ZlZJdlAycVdtcmVlTHJVN0lzOXJPYlprWmxLbjRZSTFZRWVLc3BHWStEREtFUkVqZDJ1czF1TExNNUluMCYjeEE7bXZ1Wlg1NDgvd0I3NWp1UDBacGl2SHBoWUtzYWcrcGNOeStFc0J2U3YyVSsvZWxMTkhvaGlIRkw2dnVjTHRqdHFlcWw0ZU94aisyWCYjeEE7NDZEOEE5MEQ4bm81ZEdsZlY1V2gxSzRVRzNWTnhiOS9pSFIyUFFqK08rWXVmdFNwK2dla2ZhN0xSZXk0T0VuS2F5UzVmMGZmM3NXdCYjeEE7THp6SDVCOHd0RElEd3FQV2hxZlN1SXE3TXAvVWVvUDBqTTZVTWVxeDJQN0hTNHN1bzdNejBmaU9raCtPWGM5MXNyeUM5czRMeTNibCYjeEE7QmNSckxFM2lyaW8vWG5NemlZa2c4dytrNHNzY2tCT1BLUXRXeUxZK0wvek8vd0RKaCtZditZK2YvaVp4VjY5K1NuNWIrU2RmOGpSYSYjeEE7anErbEpkM2pYRXlHWm5sVThWSTRpaU9vMnhWbk0zNUpmbGZMRTBaME5FNUNuSkpwMVllNElreFY4MmZtZDVQZzhwZWNielI3YVZwYiYjeEE7UlFrMXF6MExpT1JlUVZxQUNxbW9yM3hWbXVqK1pyN1ZQK2NmZk0ybTNralN0cEUxbkhidTI1RUV0MUVVU3A2OFdWcWVBb08yS3NXLyYjeEE7SmIveVorZy84WlpQK1RFbUtzKy9OejhqZGR1TmN1L01IbG1JWGtGNjVudTdBRUxLa3JieU1nYWdkV1B4VXJXcDZZcThndWRLODBhRCYjeEE7S1pMbTB2ZExsWGIxSGpsdHlLN2ZhSVhDckpQTEg1eitmOUJuUWpVcE5SdEZJOVMwdm1NNnNvN0IyckludHhiQXI2RzFIelBZK2FQeSYjeEE7aDFqVzdJRklidlNMNHRFeHEwYnJCSXJvYWZ5c0Q4K3VLdmxmeWY4QThwYm9uL01mYS84QUo1Y0t2cC84K1huVDhyZFg5TFlGcllTayYjeEE7ZnlHNWovV2FEQXI1VTBoOVhUVVlIMGRyaGRTQlAxWnJRdUp3MURYZ1kvanJTdlRDcksvMGgrZFgvTFQ1ay80Ty93RDY0RlFXcVduNSYjeEE7bzZ0RWtPcXc2M3FFVWJjNDQ3cGJ1WlZhbE9RRWdZQTB4VmtQazNTL01lbCtTL1BQMW14dWJPT2JUNFIrL2llSldwT0ExQzRXdEVkcyYjeEE7VllyK1hxVzBubnZ5OGx6UXd0cU5xR0RkRCs5V2dQc1RpcjdXeFYyS3Zuei9BSnlrL3dCNy9MMy9BQml1ZitKUjRxaVArY1YvK21uLyYjeEE7QU9qSC9zWXhWNzJ5aGdWWVZCMklQUWpGWHdUaFY3QjVNMU5QSm5ud0hWNHlFdG5sdExwZ0tsT1h3K29CM0hmYnQwemNabytKajJlVyYjeEE7MDAvQXplcnBzK2tiUzd0cnkyaXVyV1ZacmVaUThVcUdxc3A2RUhOT1FRYUwxRVpDUXNja2s4MitTdEs4eVc2aTQvY1hrWXBCZUlBWCYjeEE7VWIvQzFmdEpVMXA5MU15ZE5xNVlUdHk3blc5cGRsWXRYR3BiU0hLWFg5b2VFNjlwRW1rZWFKZkw3eUNhV09TS05ad0NxbjFsVjFKRyYjeEE7NUd6NzUwR0xWaWNPS25nOVQyTlBGbDhQaUIzRy92ZTBlVHZ5NTB2eTlKOWJrZjY3cVZLTGNNdkZZd2V2cHBWcUU5Q3hOZmx2bWsxVyYjeEE7dmxsMjVSZXo3TDdDeGFVOFJQSGs3KzczRDlMTHN3SGVQRS96Vzh5NmRyT3FXdHRwNUV5V0FrUjdoZWp1NUZWVTkxWGhzZmZPajdOMCYjeEE7OHNjU1pmeFBuZnRKcjhlb3l4amozRUwzN3lmN0hxL2xTeG5zUExXbTJrNEluaXQwRWlucXJFVksvUldtYVBVekVza2lPVnZiOW00WiYjeEE7WTlQQ0V1WWlFMXloelh4ZitaMy9BSk1QekYvekh6LzhUT0tzMC9MYjg4Ylh5ZDVZVFJaTkllOFpKWkpmWFdZUmo5NGEwNGxHNmZQRiYjeEE7V1RTLzg1UzJ2cHQ2WGwxL1VwOEhLNkhHdnZTTEZYaXZtcnpOcVhtYlhycld0UksvV3JwZ1NpQWhFVlZDb2lBazdLb3dxOUwwbnl6ZCYjeEE7NlYvemoxNWsxSzdReFNheE5aeXdJd0lQb1IzVUt4dlEvd0F4WmlQYWh3S3hQOGx5QitaMmhFOUJMTFgvQUpFU1lxOUExai9uSSsvdCYjeEE7dk9zaHNyUVQrV3JldHViWnh3bWtLdDhVNFlpcXQyVlR0VHJ2MFZaeGEvOEFPUUg1WVhWa1pMaTlsdG5aZmp0SnJhVm4zRzYxaldTTSYjeEE7L3dEQllxK2NQUGVyYUpxL216VWRSME8wK282WGNPcHQ3ZmlxVW9pcXpjRjJYbXdMVUhqaFY3eitYT2g2akQrUWVwVzhrYkNmVWJMVSYjeEE7WmJhSnRqeG1pWkk5cWRHcHlIendLK2N0THZuMC9VN08vUmVUMms4YzZxZWhNVGh3UHd3cStsby96UjhsZm1ORkw1TmhTNXQ1OVp0SiYjeEE7a1dTNFJBc2N5cnpVQ2pOeVplSllmNnZ2Z1Y4OFQyL21EeWQ1bjRTSzFuckdremgxSkZRSFExVmhYWmtZYmpzUmhWNzU1ZjhBK2NsZiYjeEE7S2x4WXArbTdXNHNiOVFQVkVLQ2FGajRvZVhNVjhDTnZFNEZTZnpSL3prM0h5amo4c2FheEFkV211TCtpOGtVMVpFampadnREYmtXMiYjeEE7OE1WZXFhUHEraStmL0pMelFWRmxxdHZMYlhNVGZiaWRsS1NJZmRTZGo5T0t2a1h6Rm9HcytWZk1FMm0zcXRCZTJjZ2FLVmFnTUFhcCYjeEE7TEdmNVdwVUgrT0ZYdW5sRC9uSkxRNU5Namg4endUUWFqRW9WN2kzUVNSUzBGT1ZLaGtZOXhTbnYyd0trM21UL0FKeVh2VzFxMWJ5OSYjeEE7WmNOSXQzcmRMZEJmVnVWT3hYNGVYcEFkaUNUWHI0WXFsWDU5ZVpiRHpOWWVVOWFzRmtTMnVvTG9xa3FsSFZsZU5XVTlqUmhTbzJ4ViYjeEE7UHY4QW5GZi9BS2FmL294LzdHTVZlOTRxK0NjS3ZyNzh4L3kwcy9ORUJ2TFRqYjYxRXRJNWFVV1lBYkpKL0J1M3l6SjArb01OajlMciYjeEE7OWJvUmxGamFUeTN5YjU0MTN5THEwbWs2cERJYkJaT04zWXY5dUpqMWtpM3AzcjROK09adWJESEtMSE4xT20xVTlQTGhseTZqOVQ2QSYjeEE7MHJWYkRWYkNHL3NKbG50SjE1UnlMK0lJN0VkQ0QwelZTaVltaTlIanlSbkhpanllRGZtRi93Q1RidVArWWl5LzVNdzV1TkwvQUhQeiYjeEE7L1M4cDJqL2pSOThmdUQ2Q2QwalJuZGdpSUN6TXhvQUJ1U1NjMG9EMXBJQXN2SC9QMzVsU2FtOG1qNkc3Q3pyd211a0o1VDl1Q1UzNCYjeEE7ZjhTK1hYZmFIUUNIcm56N3U1NFh0dnQwNVNjV0g2ZXAvbmVROHZ2OTNNNC9Mejh0UlptTFY5YWpyZGo0N2F6WWJSZUR5ZjVmZ08zeiYjeEE7NlVhN3REaTlFT1hVdWQySDJCNGRaY3c5WFNQZDVueis3Mzh1azVxSHJYWXE4azh4Zjg0NzZOcmV1MytyeTZ2Y3d5WDg3M0R4TEhHViYjeEE7VXlHdEFUaXFYZjhBUXIyZy93RFY3dXYrUmNlS3UvNkZlMEgvQUt2ZDEveUxqeFZQdkxuL0FEajE1RTBpNlM2dXZYMWFXTWhsanUyWCYjeEE7MGFqdVkwVmVYeVlrWXF6UHpsNVZ0dk5IbGk3MENhWnJXQzc5SUdXTUFzb2lsU1VVQjIvM1hURldEZVVmeUIwankxNWpzdGNnMVc0dSYjeEE7SmJKbWRZWFJBcmNrWk55Ti93QnJGVTQ4N2ZreDVOODF6dmV5eFBwK3B2dTk3YUVLWkQ0eW9RVWI1MERlK0t2UFp2OEFuRnFmMWYzUCYjeEE7bU5URWY1N1FoaHY3VEVIYkZXUitWLzhBbkhEeW5wZHlsenE5MUxyVWtaQldGMEVGdVNEWDRvMVoyYjVGNmVJeFY2MGlJaUtpS0ZSUSYjeEE7RlZWRkFBTmdBQmlyeGp6Zi93QTQyNmJxV296WCtnNmdOTkU3RjNzWkkvVWhWbU5UNmJLeWxGcit6USsyMjJLclBKbi9BRGpwSm8ydSYjeEE7V2VyMyt1RjNzWlVuaWh0SXVCTG8zSWNwSExmRHR1T08vamlyMFR6citYSGxYempBcTZ0YkVYVWFsWUwrRThKMEhXbktoREwvQUpMQSYjeEE7akZYbGQ1L3ppMys5SnN2TU5JaldpVFd0V0E3ZkVzZ0IrNFlxblBsLy9uR2p5dlpUck5yR29UNnNFTmZRVlJiUk43T0ZhU1Q3bkdLdiYjeEE7WExLeXM3RzBpczdPRkxlMWdVSkRCR29WRlVkQUFNVlNQemw1QThzZWI3UmJmV2JibkpGWDZ2ZHhIaFBGWHJ3ZWgyUGd3STlzVmVUMyYjeEE7My9PTGFtWW14OHdsWVNka250dVRBZjY2eUtEL0FNQ01WVHJ5ei96alo1WTA2NVM1MW0rbDFob3p5VzM0QzNnSkg4NmhwSGIvQUlNZSYjeEE7K0tzay9NSDhvdEk4NWZvMVh1bjAySFRJM2hnaHRvMDRjSDQwQVUwQ2hlR3dHS3EzNWJmbGRZZVJmMGo5VXZwYno5SStqejlWVlhqNiYjeEE7SHFVcHg4ZlZ4Vm0yS3ZFLytoWHRCLzZ2ZDEveUxqeFY3WmlyRlBQdjVmYVo1cnNxdFMzMVNGVDlWdkFQK0VrL21UOFIyOTc4R2M0eiYjeEE7NU9IcTlISE1PNlhlOGo4bTZoNXU4bGVjb3REbGdjcmR6eHhYTmlmaVNSWFlLSllqMHJUY045K2JETEdHU0hFNlhUVHk0TXZCWE04bCYjeEE7MzVqeUpGK2ExMUxJZU1hVFdiTXg2QlJCQ1NjczBvdkQ4M0c3U2tCcWlUM3grNEpoNSsvTWk4OHgzUDZIMFhtdWx1d1NpZytyY3ZYYiYjeEE7YnJ4cjBYdjM4QlBSNk1ZeHhTK3I3bkY3WTdXbG5QaFk3NFB0bCtPNW12NWQvbHJGb3lSNmxxeUxMcXBvMFVYMmxnMis0djc5dTNqbSYjeEE7SnJkZVorbVAwL2U3VHNic0lZYXlaZDhuUWZ6ZjIvZ1BRTTFqMHJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZCYjeEE7aXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZXbjB2VVd2SDFhSGhXbktuZW5mRkd6eEg4OHYwSCtucmYwT2Y2WTlKZnJsS2VsNiYjeEE7ZS9wMTc4LzRVemNkbmNYRHY5THkzYjNCeGl2cnJmOEFIZW1INUsvNFI5ZHE4djhBRWZGdUhyMDQrbjM5Q25lbjJxNzA2YlZ4N1I4UyYjeEE7djZINDVzZXdmeS9Idi9mZWZkL1IvVDFld1pwM3JIWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWC8yUT09PC94bXBHSW1nOmltYWdlPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L3htcDpUaHVtYm5haWxzPgogICAgICAgICA8eG1wTU06UmVuZGl0aW9uQ2xhc3M+ZGVmYXVsdDwveG1wTU06UmVuZGl0aW9uQ2xhc3M+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+dXVpZDo2NUU2MzkwNjg2Q0YxMURCQTZFMkQ4ODdDRUFDQjQwNzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjI3YWVlZDk5LWIyMDEtM2E0Zi04YjFkLTE5YTY4MGMyOWZkYzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDoyN2FlZWQ5OS1iMjAxLTNhNGYtOGIxZC0xOWE2ODBjMjlmZGM8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6MGQ0NTIyNTAtN2Y0ZS05ZjRhLWJiYWMtZDc5MjFlYmYzZDk2PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjBkNDUyMjUwLTdmNGUtOWY0YS1iYmFjLWQ3OTIxZWJmM2Q5Njwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD51dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3PC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpyZW5kaXRpb25DbGFzcz5kZWZhdWx0PC9zdFJlZjpyZW5kaXRpb25DbGFzcz4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBkNDUyMjUwLTdmNGUtOWY0YS1iYmFjLWQ3OTIxZWJmM2Q5Njwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMi0wNS0yNFQxNjoxNzo1OSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgMjYuMyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjI3YWVlZDk5LWIyMDEtM2E0Zi04YjFkLTE5YTY4MGMyOWZkYzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMi0wNS0yNFQxNjoxODoxMCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgMjYuMyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPGlsbHVzdHJhdG9yOlN0YXJ0dXBQcm9maWxlPldlYjwvaWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU+CiAgICAgICAgIDxpbGx1c3RyYXRvcjpDcmVhdG9yU3ViVG9vbD5BZG9iZSBJbGx1c3RyYXRvcjwvaWxsdXN0cmF0b3I6Q3JlYXRvclN1YlRvb2w+CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+QWRvYmUgUERGIGxpYnJhcnkgMTUuMDA8L3BkZjpQcm9kdWNlcj4KICAgICAgICAgPHBkZng6Q3JlYXRvclZlcnNpb24+MjEuMC4wPC9wZGZ4OkNyZWF0b3JWZXJzaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJ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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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MCAtMjU3IDE0NzMgMTAwM10vRm9udE5hbWUvQUJDREVFK01pY3Jvc29mdCMyMFNhbnMjMjBTZXJpZi9JdGFsaWNBbmdsZSAwL1N0ZW1WIDAvRm9udEZpbGUyIDkgMCBSPj4NCmVuZG9iagoxMiAwIG9iago8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0FzY2VudCA3MjgvQ2FwSGVpZ2h0IDAvRGVzY2VudCAtMjEwL0ZsYWdzIDMyL0ZvbnRCQm94Wy01ODAgLTI1NyAxNDczIDEwMDNdL0ZvbnROYW1lL0FCQ0RFRStNaWNyb3NvZnQjMjBTYW5zIzIwU2VyaWYvSXRhbGljQW5nbGUgMC9TdGVtViAwL0ZvbnRGaWxlMiA5IDAgUj4+DQplbmRvYmoKMTMgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1BhZ2VzIDggMCBSL1ZlcnNpb24vMS43L01ldGFkYXRhIDE1IDAgUj4+DQplbmRvYmoKMTQgMCBvYmoKPDwvVGl0bGU8Pi9BdXRob3I8Pi9TdWJqZWN0PD4vQ3JlYXRvcihBc3Bvc2UgUHR5IEx0ZC4pL1Byb2R1Y2VyKEFzcG9zZS5QREYgZm9yIC5ORVQgMjMuOS4wKS9DcmVhdGlvbkRhdGUoRDoyMDI0MDYxNDA3NTQxMVowMCcwMCcpL01vZERhdGUoRDoyMDI0MDYxNDA3NTQxMSswMCcwMCcpPj4NCmVuZG9iagoxNSAwIG9iago8PC9MZW5ndGggMjM3L1R5cGUvTWV0YWRhdGEvU3VidHlwZS9YTUw+PnN0cmVhbQ0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIC8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+DQplbmRzdHJlYW0NCmVuZG9iagp4cmVmCjAgMTYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAyMyAwMDAwMCBuDQowMDAwMDAwMDcyIDAwMDAwIG4NCjAwMDAwMDAyNzYgMDAwMDAgbg0KMDAwMDAwMTQ3NCAwMDAwMCBuDQowMDAwMDAyNjcyIDAwMDAwIG4NCjAwMDAwNTU4OTAgMDAwMDAgbg0KMDAwMDIxNTE3NiAwMDAwMCBuDQowMDAwMjE3NjAyIDAwMDAwIG4NCjAwMDAyMTc3MDUgMDAwMDAgbg0KMDAwMDI4NTc5OSAwMDAwMCBuDQowMDAwMjg2MTExIDAwMDAwIG4NCjAwMDAyODYzMDcgMDAwMDAgbg0KMDAwMDI4NjUwMyAwMDAwMCBuDQowMDAwMjg2NTc4IDAwMDAwIG4NCjAwMDAyODY3NjAgMDAwMDAgbg0KdHJhaWxlcgo8PC9Sb290IDEzIDAgUi9JbmZvIDE0IDAgUi9JRFs8MzMzNTJEMzQ0NjJEMzY0MTJENDI0MTJENDIzNDJEMzA+PDMzMzUyRDM0NDYyRDM2NDEyRDQyNDEyRDQyMzQyRDMwPl0vU2l6ZSAxNj4+CnN0YXJ0eHJlZgoyODcwNzUKJSVFT0YK",Jne=[{invoiceid:"11111111-1111-1111-1111-111111111111",invoicenumber:"60046754",duedate:"2024-03-15",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"DD",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-03-13"},{invoiceid:"22222222-2222-2222-2222-222222222222",invoicenumber:"60046755",duedate:"2024-03-20",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"DD",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-03-14"},{invoiceid:"33333333-3333-3333-3333-333333333333",invoicenumber:"60046756",duedate:"2024-03-25",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"DD",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-03-14"},{invoiceid:"44444444-4444-4444-4444-444444444444",invoicenumber:"60046757",duedate:"2024-03-30",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"DD",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-03-18"},{invoiceid:"55555555-5555-5555-5555-555555555555",invoicenumber:"60046758",duedate:"2024-04-05",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"BACS",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-03-28"},{invoiceid:"66666666-6666-6666-6666-666666666666",invoicenumber:"60046759",duedate:"2024-04-10",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"DD",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-04-03"},{invoiceid:"77777777-7777-7777-7777-777777777777",invoicenumber:"60046760",duedate:"2024-04-15",_customerid_value:Oe[0].accountid,bistech_paymentmethodcode:"CC",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-04-03"},{invoiceid:"88888888-8888-8888-8888-888888888888",invoicenumber:"60046761",duedate:"2024-04-20",_customerid_value:Oe[1].accountid,bistech_paymentmethodcode:"DD",bistech_pdfbase64field1:La,bistech_pdfbase64field2:null,bistech_pdfbase64field3:null,bistech_pdfbase64field4:null,bistech_pdfbase64field5:null,msdyn_invoicedate:"2024-04-12"}],ZM=()=>{const[e,t]=g.useState(_o),[n,r]=g.useState(Zr),[o,i]=g.useState(Object.values(ee)),[a,s]=g.useState(Zo),[c,l]=g.useState(xc),[d,A]=g.useState(Jne),[f,m]=g.useState(Hr),[v,p]=g.useState(Kne),[y,b]=g.useState(Object.values(Nr)),[h,w]=g.useState(qo),[x,k]=g.useState(Object.values(kc)),[S,N]=g.useState(Ho),[C,M]=g.useState(po),[j,T]=g.useState(Xne),[F,H]=g.useState(Oe),[R,O]=g.useState(Yne),[_,Y]=g.useState(_ne),[I,E]=g.useState(Gne);async function D(Z,V,X){const{data:J,idColumnName:ce,setter:le,mockCreationBehaviour:pe}=Ae(Z);sm(V,X);const Ie=xe(),je=pe({...V,[ce]:Ie});return le(J.concat([je])),await oe(1e3),{id:Ie}}async function W(Z,V,X){const{data:J}=Ae(Z,X);return await oe(100*J.length),J}async function z(Z,V,X){const{data:J,idColumnName:ce}=Ae(Z),le=J.find(pe=>pe[ce]===V);if(await oe(500),!le)throw new Error(`${Z} record with ${ce.toString()} of '${V}' was not found`);return le}async function L(Z,V,X,J){const{data:ce,idColumnName:le,setter:pe}=Ae(Z),Ie=await z(Z,V);await oe(1e3),sm(X,J);const je={...Ie,...X};pe(ce.filter(At=>At[le]!==je[le]).concat([je])),await oe(1e3)}async function q(Z,V,X,J){const{data:ce,idColumnName:le,setter:pe}=Ae(Z),Ie=await z(Z,V);await oe(1e3);const je={...Ie,[X]:null};pe(ce.filter(At=>At[le]!==je[le]).concat([je])),await oe(1e3)}async function P(Z,V){await oe(2e3)}async function U(Z){const V=await z("incidents",Z);return await L("incidents",Z,{statuscode:V.statuscode===de.Resolved?de.Closed:de["Closure Requested"]},_c),await z("incidents",Z)}async function B(Z){return await L("incidents",Z,{statuscode:de["In Progress"]},_c),await z("incidents",Z)}async function K(Z){await oe(2e3)}async function te(Z,V){await oe(2e3)}function Ae(Z,V){switch(Z){case"contacts":return{data:ae(o,V),idColumnName:"contactid",setter:i,mockCreationBehaviour:J=>(J.statecode=Be.Active,J)};case"incidents":return{data:ae(a,V),idColumnName:"incidentid",setter:s,mockCreationBehaviour:J=>(J.createdon=new Date().toISOString(),J.statuscode=de.Open,J.casetypecode=Se["Support Request"],J.ticketnumber=`CAS-${Math.random().toString(36).slice(2,8)}-${Math.random().toString(36).slice(2,8)}`.toUpperCase(),J)};case"products":return{data:ae(c,V),idColumnName:"productid",setter:l,mockCreationBehaviour:J=>J};case"invoices":return{data:ae(d,V),idColumnName:"invoiceid",setter:A,mockCreationBehaviour:J=>J};case"salesorders":return{data:ae(f,V),idColumnName:"salesorderid",setter:m,mockCreationBehaviour:J=>J};case"bistech_networkorders":return{data:ae(v,V),idColumnName:"bistech_networkorderid",setter:p,mockCreationBehaviour:J=>J};case"msdyn_projects":return{data:ae(y,V),idColumnName:"msdyn_projectid",setter:b,mockCreationBehaviour:J=>J};case"bistech_projectlogses":return{data:ae(h,V),idColumnName:"bistech_projectlogsid",setter:w,mockCreationBehaviour:J=>J};case"msdyn_projecttasks":return{data:ae(e,V),idColumnName:"msdyn_projecttaskid",setter:t,mockCreationBehaviour:J=>J};case"msdyn_customerassets":return{data:ae(n,V),idColumnName:"msdyn_customerassetid",setter:r,mockCreationBehaviour:J=>J};case"bistech_portalemails":return{data:ae(S,V),idColumnName:"activityid",setter:N,mockCreationBehaviour:J=>J};case"adx_portalcomments":return{data:ae(C,V),idColumnName:"activityid",setter:M,mockCreationBehaviour:J=>(J.createdon=new Date().toISOString(),J)};case"bistech_majorincidentupdates":return{data:ae(_,V),idColumnName:"activityid",setter:Y,mockCreationBehaviour:J=>J};case"adx_invitations":return{data:ae(j,V),idColumnName:"adx_invitationid",setter:T,mockCreationBehaviour:J=>J};case"bistech_portalmajorincidentupdates":return{data:ae(I,V),idColumnName:"activityid",setter:E,mockCreationBehaviour:J=>J};case"accounts":return{data:ae(F,V),idColumnName:"accountid",setter:H,mockCreationBehaviour:J=>J};case"bistech_orderforms":return{data:ae(x,V),idColumnName:"bistech_orderformid",setter:k,mockCreationBehaviour:J=>J};case"bistech_blogposts":return{data:ae(R,V),idColumnName:"bistech_blogpostid",setter:O,mockCreationBehaviour:J=>J};default:throw new Error(`Retrieving data for ${Z} is not implemented.`)}}function ae(Z,V){return V?Z.filter(X=>V.every(J=>Ne(X,J))):Z}function Ne(Z,V){switch(V.operator){case"eq":return Z[V.attribute]===V.value;case"ne":return Z[V.attribute]!==V.value;case"ge":return Z[V.attribute]>=V.value;case"gt":return Z[V.attribute]>V.value;case"le":return Z[V.attribute]<=V.value;case"lt":return Z[V.attribute]setTimeout(V,Z))}function xe(){return"00000000-0000-0000-0000-000000000000".replace(/[0]/g,V=>Math.round(Math.random()*16).toString(16))}return{create:D,retrieveMultiple:W,retrieve:z,update:L,disassociate:q,executeFeedbackPortalAction:P,executeRequestReopenPortalAction:B,executeRequestClosurePortalAction:U,executeSendInvitationPortalAction:K,executeCloseProjectTask:te}};let Qne=class{constructor(){this.productid=void 0,this.bistech_tiletargeturl=void 0,this.bistech_portaltilemapping=void 0}};const $ne={titleColumnName:"bistech_portaltilemapping",columnNames:Object.keys(new Qne),entityReferenceColumnMappings:[],expandProperties:[]};let ere=class{constructor(){this.msdyn_customerassetid=void 0,this._msdyn_product_value=void 0,this.msdyn_name=void 0,this.statecode=void 0,this.msdyn_product=void 0,this._bistech_site_value=void 0,this.bistech_serialnumber=void 0}};const h1={titleColumnName:"msdyn_name",columnNames:Object.keys(new ere),entityReferenceColumnMappings:[{columnName:"_msdyn_product_value",navigationPropertyName:"msdyn_product",pluralEntitySetName:"products"},{columnName:"_bistech_site_value",navigationPropertyName:"bistech_site",pluralEntitySetName:"accounts"}],expandProperties:[{columnName:"msdyn_product",entityMetadata:$ne}]};let tre=class{constructor(){this.contactid=void 0,this.bistech_portalcontacttype=void 0,this.fullname=void 0,this.firstname=void 0,this.lastname=void 0,this.telephone1=void 0,this._bistech_primarysite_value=void 0,this._parentcustomerid_value=void 0,this.bistech_permissionlevel=void 0,this.bistech_portalcasepermissionlevel=void 0,this.bistech_portalcontactpermissionlevel=void 0,this.bistech_portalorderpermissionlevel=void 0,this.bistech_portalprojectpermissionlevel=void 0,this.bistech_portalinvoicepermissionlevel=void 0,this.emailaddress1=void 0,this.jobtitle=void 0,this.msdyn_portaltermsagreementdate=void 0,this.mobilephone=void 0,this.bistech_receivealertnotifications=void 0,this.bistech_receivemajorincidentupdates=void 0,this.bistech_receivepewnotifications=void 0,this.bistech_receivesecurityupdates=void 0,this.bistech_receivecustomernewsletter=void 0,this.bistech_receiveproductupdates=void 0,this.statecode=void 0,this.adx_identity_logonenabled=void 0,this.bistech_isshowninportal=void 0}};const EA={titleColumnName:"firstname",columnNames:Object.keys(new tre),entityReferenceColumnMappings:[{columnName:"_parentcustomerid_value",navigationPropertyName:"parentcustomerid_account",pluralEntitySetName:"accounts"},{columnName:"_bistech_primarysite_value",navigationPropertyName:"bistech_primarysite",pluralEntitySetName:"accounts"}],expandProperties:[]};let nre=class{constructor(){this.statecode=void 0,this.statuscode=void 0}};const rre={titleColumnName:null,columnNames:Object.keys(new nre),entityReferenceColumnMappings:[],expandProperties:[]};let ore=class{constructor(){this.accountid=void 0,this.name=void 0,this.address1_composite=void 0,this.bistech_sitetype=void 0,this._primarycontactid_value=void 0,this.address1_postalcode=void 0,this.statecode=void 0}};const b1={titleColumnName:"name",columnNames:Object.keys(new ore),entityReferenceColumnMappings:[{columnName:"_primarycontactid_value",navigationPropertyName:"primarycontactid",pluralEntitySetName:"contacts"}],expandProperties:[]};let ire=class{constructor(){this.activityid=void 0,this._regardingobjectid_value=void 0,this.subject=void 0,this.description=void 0,this.createdon=void 0,this.modifiedon=void 0,this.bistech_casestatussnapshot=void 0}};const are={titleColumnName:"subject",columnNames:Object.keys(new ire),entityReferenceColumnMappings:[],expandProperties:[]};let sre=class{constructor(){this.adx_invitationid=void 0,this._adx_invitecontact_value=void 0,this.bistech_authenticationtype=void 0,this.statuscode=void 0,this.createdon=void 0}};const cre={titleColumnName:null,columnNames:Object.keys(new sre),entityReferenceColumnMappings:[{columnName:"_adx_invitecontact_value",navigationPropertyName:"adx_invitecontact_contact",pluralEntitySetName:"contacts"}],expandProperties:[]};let lre=class{constructor(){this.bistech_blogpostid=void 0,this.bistech_name=void 0,this.bistech_description=void 0,this.bistech_url=void 0,this.bistech_imageurl=void 0,this.bistech_publishedby=void 0,this.bistech_publishedon=void 0}};const dre={titleColumnName:"bistech_name",columnNames:Object.keys(new lre),entityReferenceColumnMappings:[],expandProperties:[]};let ure=class{constructor(){this.bistech_orderformid=void 0,this.bistech_datesigned=void 0,this.bistech_pdfbase64field1=void 0,this.bistech_pdfbase64field2=void 0,this.bistech_pdfbase64field3=void 0,this.bistech_pdfbase64field4=void 0,this.bistech_pdfbase64field5=void 0}};function VM(){return{titleColumnName:null,columnNames:Object.keys(new ure),entityReferenceColumnMappings:[],expandProperties:[]}}const Are=VM(),fre=VM();let mre=class{constructor(){this.salesorderdetailid=void 0,this.producttypecode=void 0,this.bistech_totalannualprice=void 0,this.baseamount=void 0,this.quantity=void 0,this.bistech_productdescription=void 0,this._msdyn_project_value=void 0}};const vre={titleColumnName:"bistech_productdescription",columnNames:Object.keys(new mre),entityReferenceColumnMappings:[],expandProperties:[]};let pre=class{constructor(){this.salesorderid=void 0,this.name=void 0,this.ordernumber=void 0,this.statecode=void 0,this.statuscode=void 0,this._bistech_contact_value=void 0,this.totallineitemamount=void 0,this.bistech_totalannualprice=void 0,this.bistech_orderform=void 0,this.bistech_customerreference=void 0,this.order_details=void 0}};const W0={titleColumnName:"name",columnNames:Object.keys(new pre),entityReferenceColumnMappings:[{columnName:"_bistech_contact_value",navigationPropertyName:"bistech_contact",pluralEntitySetName:"contacts"}],expandProperties:[{columnName:"order_details",entityMetadata:vre},{columnName:"bistech_orderform",entityMetadata:Are}]};let gre=class{constructor(){this.activityid=void 0,this._regardingobjectid_value=void 0,this.adx_portalcommentdirectioncode=void 0,this.description=void 0,this.statecode=void 0,this.statuscode=void 0,this.createdon=void 0,this.modifiedon=void 0}};const eb=(e,t)=>({titleColumnName:"description",columnNames:Object.keys(new gre),entityReferenceColumnMappings:[{columnName:"_regardingobjectid_value",navigationPropertyName:e,pluralEntitySetName:t}],expandProperties:[]}),Zw=eb("regardingobjectid_incident","incidents"),qM=eb("regardingobjectid_bistech_networkorder","bistech_networkorders"),_M=eb("regardingobjectid_msdyn_project","msdyn_projects"),XM=eb("regardingobjectid_bistech_projectlogs_adx_portalcomment","bistech_projectlogses");let hre=class{constructor(){this.activityid=void 0,this._regardingobjectid_value=void 0,this.bistech_direction=void 0,this._createdby_value=void 0,this.subject=void 0,this.description=void 0,this.createdon=void 0,this.modifiedon=void 0}};const tb=(e,t)=>({titleColumnName:"description",columnNames:Object.keys(new hre),entityReferenceColumnMappings:[{columnName:"_regardingobjectid_value",navigationPropertyName:e,pluralEntitySetName:t}],expandProperties:[]}),bre=tb("regardingobjectid_msdyn_project_bistech_portalemail","msdyn_projects"),yre=tb("regardingobjectid_incident_bistech_portalemail","incidents"),wre=tb("regardingobjectid_bistech_networkorder_bistech_portalemail","bistech_networkorders"),xre=tb("regardingobjectid_bistech_projectlogs_bistech_portalemail","bistech_projectlogses");let kre=class{constructor(){this.bistech_projectlogsid=void 0,this.bistech_name=void 0,this.bistech_type=void 0,this.createdon=void 0,this.bistech_description=void 0,this.bistech_impact=void 0,this.bistech_severity=void 0,this.bistech_mitigationresponseoptionset=void 0,this.bistech_updatedetails=void 0,this.statuscode=void 0,this.bistech_projectlogs_bistech_portalemails=void 0,this.bistech_projectlogs_adx_portalcomments=void 0}};const GM={titleColumnName:"bistech_name",columnNames:Object.keys(new kre),entityReferenceColumnMappings:[],expandProperties:[{columnName:"bistech_projectlogs_bistech_portalemails",entityMetadata:xre},{columnName:"bistech_projectlogs_adx_portalcomments",entityMetadata:XM}]};let Sre=class{constructor(){this.msdyn_projecttaskid=void 0,this.msdyn_subject=void 0,this.msdyn_scheduledstart=void 0,this.statuscode=void 0,this._msdyn_parenttask_value=void 0,this.bistech_assignedto=void 0,this.bistech_includeinstatementofworks=!1,this.msdyn_displaysequence=void 0,this._bistech_assignedcustomercontact_value=void 0,this.bistech_showstartdateinportal=!1,this.msdyn_outlinelevel=void 0}};const YM={titleColumnName:"msdyn_subject",columnNames:Object.keys(new Sre),entityReferenceColumnMappings:[{columnName:"_msdyn_parenttask_value",navigationPropertyName:"msdyn_parenttask",pluralEntitySetName:"msdyn_projecttasks"},{columnName:"_bistech_assignedcustomercontact_value",navigationPropertyName:"bistech_AssignedCustomerContact",pluralEntitySetName:"contacts"}],expandProperties:[]};let jre=class{constructor(){this.msdyn_projectid=void 0,this.bistech_projectnumber=void 0,this.msdyn_subject=void 0,this.statuscode=void 0,this.statecode=void 0,this.msdyn_scheduledstart=void 0,this.bistech_estimatedfinishdate=void 0,this._ownerid_value=void 0,this["_ownerid_value@OData.Community.Display.V1.FormattedValue"]=void 0,this._msdyn_salesorderid_value=void 0,this._msdyn_customer_value=void 0,this["_msdyn_customer_value@OData.Community.Display.V1.FormattedValue"]=void 0,this["_msdyn_salesorderid_value@OData.Community.Display.V1.FormattedValue"]=void 0,this.msdyn_msdyn_project_msdyn_projecttask_project=void 0,this.bistech_msdyn_project_Contact_Contact=void 0,this.msdyn_project_adx_portalcomments=void 0,this.msdyn_project_bistech_portalemails=void 0,this.bistech_bistech_projectlogs_Project_msdyn_project=void 0}};const C3={titleColumnName:"msdyn_subject",columnNames:Object.keys(new jre),entityReferenceColumnMappings:[],expandProperties:[{columnName:"msdyn_msdyn_project_msdyn_projecttask_project",entityMetadata:YM},{columnName:"bistech_msdyn_project_Contact_Contact",entityMetadata:EA},{columnName:"msdyn_project_bistech_portalemails",entityMetadata:bre},{columnName:"msdyn_project_adx_portalcomments",entityMetadata:_M},{columnName:"bistech_bistech_projectlogs_Project_msdyn_project",entityMetadata:GM}]};let Nre=class{constructor(){this.title=void 0,this._customerid_value=void 0,this.bistech_customerreference=void 0,this.description=void 0,this.caseorigincode=void 0,this.severitycode=void 0,this.bistech_urgency=void 0,this._primarycontactid_value=void 0,this._bistech_createdbycontact_value=void 0}};const Cre={titleColumnName:"title",columnNames:Object.keys(new Nre),entityReferenceColumnMappings:[{columnName:"_customerid_value",navigationPropertyName:"customerid_account",pluralEntitySetName:"accounts"},{columnName:"_primarycontactid_value",navigationPropertyName:"primarycontactid",pluralEntitySetName:"contacts"},{columnName:"_bistech_createdbycontact_value",navigationPropertyName:"bistech_createdbycontact",pluralEntitySetName:"contacts"}],expandProperties:[]};let Tre=class{constructor(){this.activityid=void 0,this._regardingobjectid_value=void 0,this._createdby_value=void 0,this.statecode=void 0,this.statuscode=void 0,this.prioritycode=void 0,this.subject=void 0,this.description=void 0,this.createdon=void 0,this.modifiedon=void 0,this.actualend=void 0}};const KM={titleColumnName:"subject",columnNames:Object.keys(new Tre),entityReferenceColumnMappings:[],expandProperties:[]};let Ire=class{constructor(){this.incidentid=void 0,this.title=void 0,this._customerid_value=void 0,this.ticketnumber=void 0,this.bistech_customerreference=void 0,this.description=void 0,this.casetypecode=void 0,this.caseorigincode=void 0,this.severitycode=void 0,this.bistech_urgency=void 0,this.prioritycode=void 0,this.statuscode=void 0,this.createdon=void 0,this._primarycontactid_value=void 0,this._bistech_createdbycontact_value=void 0,this.bistech_resolutiondate=void 0,this.incident_adx_portalcomments=void 0,this.incident_bistech_portalemails=void 0,this.incident_bistech_majorincidentupdates=void 0}};const y1={titleColumnName:"title",columnNames:Object.keys(new Ire),entityReferenceColumnMappings:[{columnName:"_customerid_value",navigationPropertyName:"customerid_account",pluralEntitySetName:"accounts"},{columnName:"_primarycontactid_value",navigationPropertyName:"primarycontactid",pluralEntitySetName:"contacts"},{columnName:"_bistech_createdbycontact_value",navigationPropertyName:"bistech_createdbycontact",pluralEntitySetName:"contacts"}],expandProperties:[{columnName:"incident_adx_portalcomments",entityMetadata:Zw},{columnName:"incident_bistech_portalemails",entityMetadata:yre},{columnName:"incident_bistech_majorincidentupdates",entityMetadata:KM}]};let Pre=class{constructor(){this.bistech_customerreference=void 0,this._primarycontactid_value=void 0}};const Dre={titleColumnName:null,columnNames:Object.keys(new Pre),entityReferenceColumnMappings:[{columnName:"_primarycontactid_value",navigationPropertyName:"primarycontactid",pluralEntitySetName:"contacts"}],expandProperties:[]};let Mre=class{constructor(){this.bistech_portalcontacttype=void 0,this.firstname=void 0,this.lastname=void 0,this.telephone1=void 0,this._bistech_primarysite_value=void 0,this._parentcustomerid_value=void 0,this.bistech_permissionlevel=void 0,this.bistech_portalcasepermissionlevel=void 0,this.bistech_portalcontactpermissionlevel=void 0,this.bistech_portalorderpermissionlevel=void 0,this.bistech_portalprojectpermissionlevel=void 0,this.bistech_portalinvoicepermissionlevel=void 0,this.emailaddress1=void 0,this.jobtitle=void 0,this.mobilephone=void 0,this.bistech_receivealertnotifications=void 0,this.bistech_receivemajorincidentupdates=void 0,this.bistech_receivepewnotifications=void 0,this.bistech_receivesecurityupdates=void 0,this.bistech_receivecustomernewsletter=void 0,this.bistech_receiveproductupdates=void 0,this.bistech_isshowninportal=void 0}};const Rre={titleColumnName:"firstname",columnNames:Object.keys(new Mre),entityReferenceColumnMappings:[{columnName:"_parentcustomerid_value",navigationPropertyName:"parentcustomerid_account",pluralEntitySetName:"accounts"},{columnName:"_bistech_primarysite_value",navigationPropertyName:"bistech_primarysite",pluralEntitySetName:"accounts"}],expandProperties:[]};let zre=class{constructor(){this.bistech_portalcontacttype=void 0,this.firstname=void 0,this.lastname=void 0,this.telephone1=void 0,this._bistech_primarysite_value=void 0,this.bistech_permissionlevel=void 0,this.bistech_portalcasepermissionlevel=void 0,this.bistech_portalcontactpermissionlevel=void 0,this.bistech_portalorderpermissionlevel=void 0,this.bistech_portalprojectpermissionlevel=void 0,this.bistech_portalinvoicepermissionlevel=void 0,this.emailaddress1=void 0,this.jobtitle=void 0,this.mobilephone=void 0,this.bistech_receivealertnotifications=void 0,this.bistech_receivemajorincidentupdates=void 0,this.bistech_receivepewnotifications=void 0,this.bistech_receivesecurityupdates=void 0,this.bistech_receivecustomernewsletter=void 0,this.bistech_receiveproductupdates=void 0,this.statecode=void 0}};const Ere={titleColumnName:"firstname",columnNames:Object.keys(new zre),entityReferenceColumnMappings:[{columnName:"_bistech_primarysite_value",navigationPropertyName:"bistech_primarysite",pluralEntitySetName:"accounts"}],expandProperties:[]};let Bre=class{constructor(){this.statuscode=void 0,this._bistech_contact_value=void 0}};const Fre={titleColumnName:null,columnNames:Object.keys(new Bre),entityReferenceColumnMappings:[{columnName:"_bistech_contact_value",navigationPropertyName:"bistech_Contact",pluralEntitySetName:"contacts"}],expandProperties:[]};let Ore=class{constructor(){this.bistech_networkorderstageid=void 0,this.bistech_stage=void 0,this.bistech_datefrom=void 0,this.statecode=void 0,this.statuscode=void 0}};const Lre={titleColumnName:null,columnNames:Object.keys(new Ore),entityReferenceColumnMappings:[],expandProperties:[]};let Wre=class{constructor(){this.bistech_networkorderid=void 0,this.bistech_name=void 0,this.statecode=void 0,this.statuscode=void 0,this.bistech_networkordertype=void 0,this._bistech_projectnetworkorder_value=void 0,this._bistech_orderline_value=void 0,this._bistech_salesorder_value=void 0,this._bistech_contact_value=void 0,this._bistech_customerasset_value=void 0,this.bistech_bistech_networkorderstage_networkorder_bi=void 0,this.bistech_networkorder_adx_portalcomments=void 0,this.bistech_networkorder_bistech_portalemails=void 0,this.bistech_networkorder_bistech_majorincidentupdates=void 0}};const U0={titleColumnName:"bistech_name",columnNames:Object.keys(new Wre),entityReferenceColumnMappings:[{columnName:"_bistech_contact_value",navigationPropertyName:"bistech_contact",pluralEntitySetName:"contacts"},{columnName:"_bistech_customerasset_value",navigationPropertyName:"bistech_customerasset",pluralEntitySetName:"customerassets"},{columnName:"_bistech_salesorder_value",navigationPropertyName:"bistech_salesorder",pluralEntitySetName:"salesorders"},{columnName:"_bistech_orderline_value",navigationPropertyName:"bistech_OrderLine",pluralEntitySetName:"salesorderdetails"},{columnName:"_bistech_projectnetworkorder_value",navigationPropertyName:"bistech_projectnetworkorder",pluralEntitySetName:"msdyn_projects"}],expandProperties:[{columnName:"bistech_bistech_networkorderstage_networkorder_bi",entityMetadata:Lre},{columnName:"bistech_networkorder_adx_portalcomments",entityMetadata:qM},{columnName:"bistech_networkorder_bistech_portalemails",entityMetadata:wre},{columnName:"bistech_networkorder_bistech_majorincidentupdates",entityMetadata:KM}]};let Ure=class{constructor(){this.bistech_networkorderid=void 0,this.bistech_name=void 0,this.statecode=void 0,this.statuscode=void 0,this.bistech_networkordertype=void 0,this._bistech_projectnetworkorder_value=void 0,this._bistech_orderline_value=void 0,this._bistech_salesorder_value=void 0,this._bistech_contact_value=void 0,this._bistech_customerasset_value=void 0}};const Hre={titleColumnName:"bistech_name",columnNames:Object.keys(new Ure),entityReferenceColumnMappings:[{columnName:"_bistech_contact_value",navigationPropertyName:"bistech_contact",pluralEntitySetName:"contacts"},{columnName:"_bistech_customerasset_value",navigationPropertyName:"bistech_customerasset",pluralEntitySetName:"customerassets"},{columnName:"_bistech_salesorder_value",navigationPropertyName:"bistech_salesorder",pluralEntitySetName:"salesorders"},{columnName:"_bistech_orderline_value",navigationPropertyName:"bistech_OrderLine",pluralEntitySetName:"salesorderdetails"},{columnName:"_bistech_projectnetworkorder_value",navigationPropertyName:"bistech_projectnetworkorder",pluralEntitySetName:"msdyn_projects"}],expandProperties:[]};let Zre=class{constructor(){this.msdyn_portaltermsagreementdate=void 0}};const Vre={titleColumnName:null,columnNames:Object.keys(new Zre),entityReferenceColumnMappings:[],expandProperties:[]};let qre=class{constructor(){this.invoiceid=void 0,this.invoicenumber=void 0,this.duedate=void 0,this._customerid_value=void 0,this.bistech_paymentmethodcode=void 0,this.msdyn_invoicedate=void 0}};const _re={titleColumnName:"invoicenumber",columnNames:Object.keys(new qre),entityReferenceColumnMappings:[{columnName:"_customerid_value",navigationPropertyName:"customerid",pluralEntitySetName:"accounts"}],expandProperties:[]};let Xre=class{constructor(){this.msdyn_projecttaskid=void 0,this._bistech_assignedcustomercontact_value=void 0}};const Gre={titleColumnName:null,columnNames:Object.keys(new Xre),entityReferenceColumnMappings:[{columnName:"_bistech_assignedcustomercontact_value",navigationPropertyName:"bistech_AssignedCustomerContact",pluralEntitySetName:"contacts"}],expandProperties:[]};let Yre=class{constructor(){this.invoiceid=void 0,this.invoicenumber=void 0,this.duedate=void 0,this._customerid_value=void 0,this.bistech_paymentmethodcode=void 0,this.msdyn_invoicedate=void 0,this.bistech_pdfbase64field1=void 0,this.bistech_pdfbase64field2=void 0,this.bistech_pdfbase64field3=void 0,this.bistech_pdfbase64field4=void 0,this.bistech_pdfbase64field5=void 0}};const Kre={titleColumnName:"invoicenumber",columnNames:Object.keys(new Yre),entityReferenceColumnMappings:[{columnName:"_customerid_value",navigationPropertyName:"customerid",pluralEntitySetName:"accounts"}],expandProperties:[]},kn=()=>{const e=ve(B=>B.isLocalMode),t=ve(B=>B.userId),n=HM(),r=ZM(),o=e?r:n;async function i(B){if(!t)throw new Error("Expected `userId` to not be null");const{id:K}=await o.create("incidents",B,Cre);return await o.retrieve("incidents",K,y1)}async function a(B){if(!t)throw new Error("Expected `userId` to not be null");const{id:K}=await o.create("contacts",B,Rre);return await o.retrieve("contacts",K,EA)}async function s(B,K){if(!B)throw new Error("Expected `incidentid` to not be null/empty");return await o.update("incidents",B,K,Dre),await o.retrieve("incidents",B,y1)}async function c(B,K){if(!B)throw new Error("Expected `contactid` to not be null/empty");return await o.update("contacts",B,K,Ere),await o.retrieve("contacts",B,EA)}async function l(B,K){if(!B)throw new Error("Expected `accountid` to not be null/empty");return await o.update("accounts",B,K,b1),await o.retrieve("accounts",B,b1)}async function d(B,K){if(!B)throw new Error("Expected `orderid` to not be null/empty");return await o.update("salesorders",B,K,W0),await o.retrieve("salesorders",B,W0)}async function A(B,K){if(!B)throw new Error("Expected 'networkOrderId' to not be null/empty");return await o.update("bistech_networkorders",B,K,Fre),await o.retrieve("bistech_networkorders",B,U0)}async function f(B){if(!B)throw new Error("Expected 'networkOrderId' to not be null/empty");return await o.disassociate("bistech_networkorders",B,"bistech_Contact",U0),await o.retrieve("bistech_networkorders",B,U0)}async function m(B,K,te){if(!t)throw new Error("Expected `userId` to not be null");const{id:Ae}=await o.create("adx_portalcomments",B,K);return await o.update("adx_portalcomments",Ae,{statecode:ct.Completed,statuscode:lt.Sent},rre),await o.retrieve("adx_portalcomments",Ae,te)}async function v(){if(!t)throw new Error("Expected `userId` to not be null");const B=new Date;return await o.update("contacts",t,{msdyn_portaltermsagreementdate:B.toISOString()},Vre),{acceptedDate:B}}async function p(B){if(!B)throw new Error("Expected `orderformid` to not be null/empty");return await o.retrieve("bistech_orderforms",B,fre)}async function y(){const B=[{attribute:"statuscode",operator:"ne",value:de.Closed},{attribute:"statuscode",operator:"ne",value:de.Cancelled},{attribute:"statuscode",operator:"ne",value:de.Merged}];return await o.retrieveMultiple("incidents",_c,B)}async function b(B){return await o.retrieve("incidents",B,y1)}async function h(B){return await o.retrieve("contacts",B,EA)}async function w(B){return await o.retrieve("salesorders",B,W0)}async function x(B){if(!B.msdyn_projecttaskid)throw new Error("Expected 'projectTaskId' to not be null/empty");return await o.update("msdyn_projecttasks",B.msdyn_projecttaskid,B,Gre),await o.retrieve("msdyn_projecttasks",B.msdyn_projecttaskid,YM)}async function k(B){const K=await o.retrieve("msdyn_projects",B,C3);return{...K,msdyn_msdyn_project_msdyn_projecttask_project:(K.msdyn_msdyn_project_msdyn_projecttask_project||[]).map(te=>te.statuscode===re.Pending||te.bistech_assignedto!==ne.Bistech&&!te.bistech_showstartdateinportal?{...te,msdyn_scheduledstart:null}:te)}}async function S(B){return await o.retrieve("invoices",B,Kre)}async function N(B){return await o.retrieve("bistech_networkorders",B,U0)}async function C(B){return await o.retrieve("msdyn_customerassets",B,h1)}async function M(){const B=[{attribute:"statuscode",operator:"eq",value:de.Resolved},{attribute:"casetypecode",operator:"eq",value:Se["Major Incident"]},{attribute:"bistech_resolutiondate",operator:"gt",value:Pe.getMidnightToday().toISOString()},{attribute:"bistech_resolutiondate",operator:"lt",value:Pe.getMidnightTomorrow().toISOString()}];return await o.retrieveMultiple("incidents",_c,B)}async function j(){const B=[{attribute:"statuscode",operator:"ne",value:de.Open},{attribute:"casetypecode",operator:"ne",value:Se["Major Incident"]},{attribute:"statuscode",operator:"ne",value:de["In Progress"]},{attribute:"statuscode",operator:"ne",value:de["Pending Feedback"]},{attribute:"statuscode",operator:"ne",value:de["On Hold"]},{attribute:"statuscode",operator:"ne",value:de["Closure Requested"]},{attribute:"statuscode",operator:"ne",value:de.Resolved}];return await o.retrieveMultiple("incidents",_c,B)}async function T(){return await o.retrieveMultiple("accounts",b1)}async function F(){return await o.retrieveMultiple("contacts",EA)}async function H(){const B=[{attribute:"statecode",operator:"eq",value:mf.Active}];return(await o.retrieveMultiple("msdyn_customerassets",h1,B)).flatMap(te=>te.msdyn_product).filter(te=>te)}async function R(){return(await o.retrieveMultiple("salesorders",W0)).map(K=>K.statuscode===qe.New||K.statuscode===qe.Pending?{...K,totallineitemamount:null,bistech_totalannualprice:null}:K.order_details.length===0?{...K,totallineitemamount:null,bistech_totalannualprice:null}:K)}async function O(){return await o.retrieveMultiple("invoices",_re)}async function _(){return await o.retrieveMultiple("bistech_networkorders",Hre,[{attribute:"bistech_networkordertype",operator:"eq",value:Cr["New Order"]}])}async function Y(){return(await o.retrieveMultiple("msdyn_projects",C3)).map(K=>({...K,msdyn_msdyn_project_msdyn_projecttask_project:(K.msdyn_msdyn_project_msdyn_projecttask_project||[]).map(te=>te.statuscode===re.Pending||te.bistech_assignedto!==ne.Bistech&&!te.bistech_showstartdateinportal?{...te,msdyn_scheduledstart:null}:te)}))}async function I(){return await o.retrieveMultiple("msdyn_customerassets",h1)}async function E(){return await o.retrieveMultiple("bistech_portalmajorincidentupdates",are)}async function D(B){const K=[{attribute:"_adx_invitecontact_value",operator:"eq",value:B}];return await o.retrieveMultiple("adx_invitations",cre,K)}async function W(){return await o.retrieveMultiple("bistech_blogposts",dre)}async function z(B,K){await o.executeFeedbackPortalAction(B,K)}async function L(B){return await o.executeRequestClosurePortalAction(B)}async function q(B){return await o.executeRequestReopenPortalAction(B)}async function P(B){return await o.executeSendInvitationPortalAction(B)}async function U(B,K){await o.executeCloseProjectTask(B,K)}return{createIncident:i,updateIncident:s,createContact:a,updateContact:c,updateAccount:l,updateOrder:d,sendPortalComment:m,setPortalTermsOfAgreementDate:v,disassociateContactFromNetworkOrder:f,executeFeedbackPortalAction:z,executeRequestClosurePortalAction:L,executeRequestReopenPortalAction:q,executeSendInvitationPortalAction:P,executeCloseProjectTask:U,retrieveOrderFormInfo:p,retrieveActiveIncidents:y,retrieveClosedIncidents:j,updateNetworkOrder:A,updateProjectTask:x,retrieveIncident:b,retrieveContact:h,retrieveOrder:w,retrieveProject:k,retrieveInvoice:S,retrieveNetworkOrder:N,retrieveCustomerAsset:C,retrieveAccounts:T,retrieveContacts:F,retrieveProducts:H,retrieveOrders:R,retrieveInvoices:O,retrieveNetworkOrders:_,retrieveProjects:Y,retrieveCustomerAssets:I,retrievePortalInvitations:D,retrieveRecentlyResolvedMajorIncidents:M,retrievePortalMajorIncidentUpdatesRegardingActiveAndRecentlyResolvedMajorIncidents:E,retrieveBlogPostRecords:W}},Jre=()=>{const e=ve(i=>i.isLocalMode),t=HM(),n=ZM(),r=e?n:t;async function o(i){return await r.retrieve("bistech_projectlogses",i,GM)}return{retrieveProjectLog:o}},Qre=()=>{const e=on(),t=ve(i=>i.incidents),n=dn(),r=kn(),{trackExceptionWithBistechMetadata:o}=Nt();g.useEffect(()=>{(async()=>{if(e.contactId&&!(t.closedIncidents.loadingStatus==="loaded"||t.closedIncidents.loadingStatus==="loading")){n({type:"SetClosedIncidents",closedIncidents:{loadingStatus:"loading"}});try{const i=await r.retrieveClosedIncidents();n({type:"SetClosedIncidents",closedIncidents:{loadingStatus:"loaded",data:i}})}catch(i){n({type:"AddLatestError",error:i}),o==null||o(i)}}})()},[r,n,t,e.contactId])},$re=()=>{Qre();const e=ve(b=>b.incidents),t=ve(b=>b.contacts),[n,r]=g.useState("createdon"),[o,i]=g.useState(!1),[a,s]=g.useState(""),[c,l]=g.useState({selectedCaseTypes:[],selectedIncidentStatuses:[],createdBy:"",dateRange:{value:null,from:null,to:null}}),d=b=>{if(!b){l(h=>({...h,createdBy:""}));return}l(h=>({...h,createdBy:b}))},A=b=>{if(b===null){l(w=>({...w,selectedCaseTypes:[]}));return}const h=Se[b];if(!h)throw new Error(`'${b}' filter value for the Case Type filter is not implemented`);if(c.selectedCaseTypes.includes(h)){l(w=>({...w,selectedCaseTypes:[...c.selectedCaseTypes].filter(x=>x!==h)}));return}l(w=>({...w,selectedCaseTypes:[...c.selectedCaseTypes,h]}))},f=b=>{if(!b){l(x=>({...x,dateRange:{value:null,from:null,to:null}}));return}let h=new Date,w=new Date;switch(h.setHours(0,0,0,0),w.setHours(23,59,59,999),Ft[b]){case Ft.Today:break;case Ft.Yesterday:h.setDate(h.getDate()-1),w.setDate(w.getDate()-1);break;case Ft["This Week"]:h.setDate(h.getDate()-h.getDay());break;case Ft["This Month"]:h=new Date(h.getFullYear(),h.getMonth(),1);break;case Ft["This Year"]:h=new Date(h.getFullYear(),0,1);break;default:throw new Error(`'${b}' filter value for the Created On filter is not implemented`)}l(x=>({...x,dateRange:{value:Ft[b],from:h,to:w}}))},m=ht.useMemo(()=>{if(e.closedIncidents.loadingStatus!=="loaded")return{loadingStatus:e.closedIncidents.loadingStatus};const b=e.closedIncidents.data.slice().sort((h,w)=>{var x,k;return(((x=h[n])==null?void 0:x.toString())??"").localeCompare(((k=w[n])==null?void 0:k.toString())??"")});return o?{loadingStatus:"loaded",data:b}:{loadingStatus:"loaded",data:b.reverse()}},[e,n,o]),v=UM(),p=b=>{var h;return(h=v.find(w=>w.fieldName===b))==null?void 0:h.columnHeader},y=He(m,b=>b.filter(h=>Object.values(h).some(w=>w==null?void 0:w.toString().toLowerCase().includes(a.toLowerCase()))).filter(h=>{var x,k;const w=new Date(h.createdon);return(c.selectedIncidentStatuses.length?(x=c.selectedIncidentStatuses)==null?void 0:x.includes(h.statuscode):!0)&&(h.casetypecode&&c.selectedCaseTypes.length?(k=c.selectedCaseTypes)==null?void 0:k.includes(h.casetypecode):!0)&&(c.createdBy?c.createdBy===h._primarycontactid_value:!0)&&(c.dateRange.from&&c.dateRange.to?w>=c.dateRange.from&&w<=c.dateRange.to:!0)}));return u.jsxs(Lr,{title:"Closed Cases",children:[u.jsx(Fu,{setSearchBarContent:s,filterGroups:[],placeholderText:"Search by Case Title or Reference",getSummarySections:()=>[],filtersToDisplay:[{type:"optionSet",options:[{name:"Support Request",value:Se["Support Request"]},{name:"Incident",value:Se.Incident},{name:"Change",value:Se.Change},{name:"Problem",value:Se.Problem}],onChange:A,associatedList:c.selectedCaseTypes,name:"case-types",inputType:"checkbox",styleClassName:"checkbox-section case",title:"Case Type"},{type:"optionSet",options:[{name:"Today",value:Ft.Today},{name:"Yesterday",value:Ft.Yesterday},{name:"This Week",value:Ft["This Week"]},{name:"This Month",value:Ft["This Month"]},{name:"This Year",value:Ft["This Year"]}],onChange:f,associatedList:[c.dateRange.value],name:"date-since",inputType:"radio",styleClassName:"checkbox-section case",title:"Created On"},{type:"lookup",name:"_primarycontactid_value",placeholderText:"Filter by contact",pluralOptionsName:"Contacts",title:"Created By",options:t.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loaded",value:t.data.map(b=>({id:b.contactid,primaryText:[b.firstname,b.lastname].filter(h=>h).join(" "),secondaryText:Be[b.statecode],isPickable:!0,contact:b}))},onChange:d}]}),y.loadingStatus!=="loaded"?u.jsx(vi,{}):y.data.length===0?u.jsx("div",{className:"no-results-message",children:"There are no records to display."}):u.jsxs("table",{className:"cases-table",children:[u.jsx("thead",{children:u.jsx("tr",{children:v.map(b=>u.jsx(Ou,{columnHeader:b.columnHeader,fieldName:b.fieldName,headerWidth:b.cellWidth,sortingProps:{sortingEnabled:b.isSortable,sortedColumn:n,setSortedColumn:()=>r(b.fieldName),isSortedAscending:o,setIsSortedAscending:i}},b.id))})}),u.jsx("tbody",{children:y.data.map(b=>u.jsxs("tr",{"data-id":b.incidentid,"data-entity":"incident","data-name":b.title,children:[u.jsx("td",{className:"number",title:b.ticketnumber,"data-heading-title":p("ticketnumber"),children:u.jsx(jt,{to:`${_e.EditCase.path}?caseId=${b.incidentid}`,children:`${b.ticketnumber}`},b.incidentid)}),u.jsx("td",{className:"title",title:b.title,"data-heading-title":p("title"),children:u.jsx(jt,{to:`${_e.EditCase.path}?caseId=${b.incidentid}`,children:`${b.title}`},b.incidentid)}),u.jsx("td",{className:"type","data-heading-title":p("casetypecode"),children:b.casetypecode&&Se[b.casetypecode]}),u.jsx("td",{className:"created-on","data-heading-title":p("createdon"),children:Pe.toDateString(b.createdon)}),u.jsx("td",{className:"contact","data-heading-title":p("_primarycontactid_value"),children:b._primarycontactid_value&&(()=>{if(t.loadingStatus!=="loaded")return;const h=t.data.find(w=>w.contactid===b._primarycontactid_value);return h?[h.firstname,h.lastname].filter(w=>w).join(" "):null})()}),u.jsx("td",{className:"priority","data-heading-title":p("prioritycode"),children:b.prioritycode&&Ve[b.prioritycode]}),u.jsx("td",{className:"status","data-heading-title":p("statuscode"),children:de[b.statuscode]})]},b.incidentid))})]})]})},rg=e=>{var r,o,i,a,s,c;const t=g.useRef(null);e.customValidity!==void 0&&((r=t.current)==null||r.setCustomValidity(e.customValidity(t.current.validity)));const n={...e.additionalSelectProps,required:((o=e.additionalSelectProps)==null?void 0:o.required)??!0,autoComplete:((i=e.additionalSelectProps)==null?void 0:i.autoComplete)??"off"};return g.useEffect(()=>{var l;(l=t.current)==null||l.checkValidity()},[t]),u.jsx("label",{"data-name":e.name,className:"field",...e.additionalLabelProps,children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[e.label,!n.disabled&&n.required&&((a=t.current)!=null&&a.validity.valid?u.jsx($m,{className:"completed-icon"}):u.jsx(Ws,{className:"required-icon"})),e.tooltip&&u.jsx(tc,{overlayContent:e.tooltip})]}),((s=t.current)==null?void 0:s.validationMessage)&&u.jsx("span",{className:"validity-message",children:(c=t.current)==null?void 0:c.validationMessage}),u.jsxs("select",{className:"field-control",name:e.name,value:e.selectedOptionId||void 0,onChange:l=>e.onChange(l.target.value===""?null:Number(l.target.value)),ref:t,...n,children:[u.jsx("option",{disabled:e.readonlyDropdown}),e.options.map(l=>u.jsx("option",{value:l.id,disabled:e.readonlyDropdown,children:l.label},l.id))]})]})})},Dd=e=>{var r,o,i,a,s,c;const t=g.useRef(null);e.customValidity!==void 0&&((r=t.current)==null||r.setCustomValidity(e.customValidity(t.current.validity)));const n={...e.additionalTextAreaProps,required:((o=e.additionalTextAreaProps)==null?void 0:o.required)??!0,autoComplete:((i=e.additionalTextAreaProps)==null?void 0:i.autoComplete)??"off"};return u.jsx("label",{"data-name":e.name,className:"field",...e.additionalLabelProps,children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[e.label,!n.disabled&&n.required&&((a=t.current)!=null&&a.validity.valid?u.jsx($m,{className:"completed-icon"}):u.jsx(Ws,{className:"required-icon"})),e.tooltip&&u.jsx(tc,{overlayContent:e.tooltip})]}),((s=t.current)==null?void 0:s.validationMessage)&&u.jsx("span",{className:"validity-message",children:(c=t.current)==null?void 0:c.validationMessage}),u.jsx("textarea",{className:"field-control",name:e.name,value:e.value,onChange:l=>e.onChange?e.onChange(l.target.value):{},ref:t,...n})]})})},bt=e=>{var r,o,i,a,s,c;const t=g.useRef(null);e.customValidity!==void 0&&((r=t.current)==null||r.setCustomValidity(e.customValidity(t.current.validity)));const n={...e.additionalInputProps,required:((o=e.additionalInputProps)==null?void 0:o.required)??!0,autoComplete:((i=e.additionalInputProps)==null?void 0:i.autoComplete)??"off"};return u.jsx("label",{"data-name":e.name,className:"field",title:e.title||"",...e.additionalLabelProps,children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[e.label,!n.disabled&&n.required&&((a=t.current)!=null&&a.validity.valid?u.jsx($m,{className:"completed-icon"}):u.jsx(Ws,{className:"required-icon"})),e.requiredGroup&&u.jsx(Ws,{className:"required-group-icon"}),e.tooltip&&u.jsx(tc,{overlayContent:e.tooltip})]}),((s=t.current)==null?void 0:s.validationMessage)&&u.jsx("span",{className:"validity-message",children:(c=t.current)==null?void 0:c.validationMessage}),u.jsx("input",{type:"text",className:"field-control",name:e.name,value:e.value,onChange:l=>e.onChange?e.onChange(l.target.value):{},ref:t,...n})]})})},eoe=()=>{const e=on(),t=gl(),n=dn(),{trackExceptionWithBistechMetadata:r,trackEventWithBistechMetadata:o}=Nt(),i=ve(w=>w.contacts),a=ve(w=>w.incidents);if(!e.accountId)throw new Error("Expected `userMetadata.accountId` to be populated");const[s,c]=g.useState({title:"",_customerid_value:e.accountId,_primarycontactid_value:e.contactId,_bistech_createdbycontact_value:e.contactId,caseorigincode:Qt.Portal,bistech_customerreference:"",description:"",severitycode:null,bistech_urgency:null}),l=kn(),d=noe(s.bistech_urgency,s.severitycode),[A,f]=g.useState(!1),[m,v]=g.useState(!1),[p,y]=g.useState({state:"idle"});g.useEffect(()=>{v(!0)},[]);async function b(w){if(w.preventDefault(),a.activeIncidents.loadingStatus!=="loaded")throw new Error("Expected `incidents` to have loaded before submission");y({state:"submitting"}),o==null||o({type:"Create Case - Case creation submitted"});let x;try{x=await l.createIncident(s)}catch(S){y({state:"errored",error:S}),r==null||r(S);return}o==null||o({type:"Create Case - Case created successfully",incidentId:x.incidentid}),n({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loaded",data:a.activeIncidents.data.concat([x])}}),y({state:"completed"});const k=`${_e.EditCase.path}?caseId=${x.incidentid}`;n({type:"AddNotification",notification:{message:"Case created successfully",displayedOnRelativeUrl:k,displayUntil:Pe.addSeconds(new Date,10)}}),t(k)}const h=[...e.portalCasePermissionLevel!==Ue["All Cases"]&&d===Ve["Priority 1"]?["A Priority One Case poses a significant impact on a critical element of your business, and as such cannot be logged in the Portal"]:[]];return u.jsx(Lr,{title:"Create a Case",children:u.jsx("form",{className:"create-case","data-submit-attempted":A,onSubmit:b,onInvalid:()=>{m&&f(!0)},children:u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"main-content",children:u.jsxs("div",{className:"general-container",children:[u.jsx(bt,{label:"Title",name:"title",tooltip:u.jsx(u.Fragment,{children:"Please provide a quick title for the Case."}),value:s.title,onChange:w=>c({...s,title:w}),additionalInputProps:{autoFocus:!0}}),u.jsxs("fieldset",{children:[u.jsx(bt,{label:"Your Reference",name:"bistech_customerreference",tooltip:u.jsx(u.Fragment,{children:"Your Case Reference (if needed) for our records."}),value:s.bistech_customerreference||"",onChange:w=>c({...s,bistech_customerreference:w}),additionalInputProps:{required:!1}}),u.jsx(nc,{name:"_primarycontactid_value",label:"Primary Contact",selectedOptionId:s._primarycontactid_value,tooltip:u.jsx(u.Fragment,{children:"The nominated Contact to receive Case related correspondence."}),pluralOptionsName:"Active Contacts",options:i.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loaded",value:i.data.map(w=>({id:w.contactid,primaryText:[w.firstname,w.lastname].filter(x=>x).join(" "),secondaryText:w.emailaddress1??"",isPickable:w.statecode===Be.Active,contact:w}))},setSelectedOptionId:w=>c({...s,_primarycontactid_value:w}),selectedOptionCardInfo:w=>({icon:u.jsx(im,{}),primaryText:w.primaryText,secondaryText:w.secondaryText,additionalFields:[{name:"Job Title",value:w.contact.jobtitle},{name:"Telephone",value:w.contact.telephone1||""},{name:"Mobile",value:w.contact.mobilephone||""},{name:"Permission Level",value:Qe[w.contact.bistech_permissionlevel]}]}),additionalInputProps:{placeholder:"Select a Contact"}})]}),u.jsxs("fieldset",{children:[u.jsxs("div",{children:[u.jsx(rg,{label:"Urgency",name:"bistech_urgency",tooltip:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"High"})," - Resolution of the Incident is time-critical."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Medium"})," - The effect of the Incident increases considerably over time."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Low"})," - The effect of the Incident increases marginally over time."]})]}),options:[{id:mt.Low,label:mt[mt.Low]},{id:mt.Medium,label:mt[mt.Medium]},{id:mt.High,label:mt[mt.High]}],selectedOptionId:s.bistech_urgency,onChange:w=>c({...s,bistech_urgency:w})}),u.jsx(rg,{label:"Severity",name:"severitycode",tooltip:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"High"})," - A large number of users are affected."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Medium"})," - A moderate number of users are affected."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Low"})," - A minimal number of users are affected."]})]}),options:[{id:vt.Low,label:vt[vt.Low]},{id:vt.Medium,label:vt[vt.Medium]},{id:vt.High,label:vt[vt.High]}],selectedOptionId:s.severitycode,onChange:w=>c({...s,severitycode:w})})]}),u.jsx("div",{className:"priority-describer-parent",children:d!==null&&u.jsx(toe,{priorityCode:d})})]}),u.jsx(Dd,{label:"Description",name:"description",tooltip:u.jsx(u.Fragment,{children:"Please provide a clear explanation of the issue / requirement."}),value:s.description||"",onChange:w=>c({...s,description:w}),additionalTextAreaProps:{maxLength:2e3}}),d===Ve["Priority 1"]&&u.jsx("section",{className:"priority-one-case-warning",id:"priority-one-case-warning",children:u.jsxs("div",{className:"priority-one-case-warning-container",children:[u.jsxs("b",{className:"priority-one-case-warning-headline",children:["A Priority One Case poses a significant impact on a critical element of your business",e.portalCasePermissionLevel===Ue["All Cases"]?"":", and as such cannot be logged in the Portal","."]}),u.jsx("p",{className:"priority-one-case-warning-message",children:"We recommend you call us immediately to help resolve the issue as quickly as possible."}),u.jsxs("ul",{className:"priority-one-case-warning-hours",children:[u.jsxs("li",{className:"priority-one-case-warning-hour",children:[u.jsx("b",{children:"Office hours (09.00-17.00):"})," ",u.jsx("a",{href:"tel:01202332299",children:"01202 33 22 99"})]}),u.jsxs("li",{className:"priority-one-case-warning-hour",children:[u.jsx("b",{children:"Out of hours (17.00-09.00):"})," ",u.jsx("a",{href:"tel:03301244448",children:"0330 124 4448"})]})]})]})})]})}),p.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsx("strong",{children:"Failed to create Case"}),": ",p.error.message]}),u.jsxs("fieldset",{className:"buttons",children:[u.jsxs("button",{className:"button",type:"submit",disabled:h.length>0||p.state==="submitting",title:h.length>0?h.join(`\r `):"",children:[p.state==="submitting"&&u.jsx(Wr,{className:"spin"}),"Submit"]}),u.jsx(jt,{className:"button default",to:_e.Cases.path,children:"Cancel"})]})]})})})},toe=e=>{var o;const t=[{priority:Ve["Priority 1"],description:"One or more services are inaccessible or unusable. There is a significant impact on a critical element of your business. Multiple users or a service is affected."},{priority:Ve["Priority 2"],description:"A service is usable but impaired. The situation has moderate business impact and can be dealt with during business hours. Multiple users or a service is partially affected."},{priority:Ve["Priority 3"],description:"The issue is important but is not currently causing you a significant impact. Users may be experiencing partial disruption, but an acceptable workaround exists."},{priority:Ve["Priority 4"],description:"The issue is low impact and is not causing you a disruption. Users are unaffected. This may include cosmetic defects."}],{priorityCode:n}=e,r=(o=t.find(({priority:i})=>i===n))==null?void 0:o.description;return u.jsxs("section",{className:"priority-describer","data-selected-level":Ve[n],children:[u.jsx("div",{className:"priority-describer-levels-section",children:t.map(({priority:i})=>u.jsx("span",{className:"priority-describer-level","data-level":Ve[i],"data-selected":n===i},i))}),u.jsx("div",{className:"priority-describer-details-section",children:u.jsxs("div",{className:"priority-describer-details","data-level":Ve[n],children:[u.jsx("h3",{className:"priority-describer-title",children:Ve[n]}),u.jsx("p",{className:"priority-describer-description",children:r})]})})]})};function noe(e,t){if(e===null||t===null)return null;switch(t+e){case 2:return Ve["Priority 4"];case 3:case 4:return Ve["Priority 3"];case 5:return Ve["Priority 2"];case 6:return Ve["Priority 1"]}throw new Error("Unexpected urgency and severity")}const roe=(e,t,n)=>[{labelElement:u.jsx(u.Fragment,{children:"Status"}),attribute:"Status",tiles:[{id:"active-contacts",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Be.Active].includes(r.statecode),label:u.jsx(u.Fragment,{children:"Active"}),value:He(e.activeContacts,r=>r.length),imagePath:"/contact-management-status-active.svg"},{id:"inactive-contacts",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Be.Inactive].includes(r.statecode),label:u.jsx(u.Fragment,{children:"Inactive"}),value:He(e.inactiveContacts,r=>r.length),imagePath:"/contact-management-status-inactive.svg"}]}],ooe=(e,t)=>[{type:"button-link",label:"New Contact",buttonLabel:"Create",to:{loadingStatus:"loaded",data:_e.CreateContact.path}},e.loadingStatus==="loaded"?t?{type:"link",label:"Key Service Contact",buttonLabel:[t.firstname,t.lastname].filter(n=>n).join(" "),to:{loadingStatus:"loaded",data:`${_e.EditContact.path}?id=${t.contactid}`}}:{type:"string",label:"Key Service Contact",value:{loadingStatus:"loaded",data:"None Set"}}:{type:"string",label:"Key Service Contact",value:{loadingStatus:"loading"}}],ioe=()=>[{id:0,columnHeader:"Full Name",fieldName:"firstname",isSortable:!0},{id:1,columnHeader:"Job Title",fieldName:"jobtitle",isSortable:!0},{id:2,columnHeader:"Email",fieldName:"emailaddress1",isSortable:!0},{id:3,columnHeader:"DDI",fieldName:"telephone1",isSortable:!0},{id:4,columnHeader:"Mobile Phone",fieldName:"mobilephone",isSortable:!0}],aoe=()=>{const e=on(),t=ve(k=>k.contacts),[n,r]=g.useState(""),[o,i]=g.useState(["active-contacts"]),[a,s]=g.useState("firstname"),[c,l]=g.useState(!0);if(!e.accountId)throw new Error("Expected `userMetadata.accountId` to be populated");const d=ve(k=>k.accounts),A=ht.useMemo(()=>{if(t.loadingStatus!=="loaded")return{loadingStatus:t.loadingStatus};const k=t.data.slice().sort((S,N)=>{var C,M,j,T,F,H;return a==="firstname"?`${((C=S.firstname)==null?void 0:C.toString())??""}${((M=S.lastname)==null?void 0:M.toString())??""}`.localeCompare(`${((j=N.firstname)==null?void 0:j.toString())??""}${((T=N.lastname)==null?void 0:T.toString())??""}`):((H=S[a])==null?void 0:H.toString().localeCompare(((F=N[a])==null?void 0:F.toString())??""))??0});return c?{loadingStatus:"loaded",data:k}:{loadingStatus:"loaded",data:k.reverse()}},[t,a,c]),f={activeContacts:He(A,k=>k.filter(S=>S.statecode===Be.Active)),inactiveContacts:He(A,k=>k.filter(S=>S.statecode===Be.Inactive))},m=roe(f,o,i),v=m.flatMap(k=>k.tiles.filter(S=>o.length>0?o.includes(S.id):!0).flatMap(S=>S.filter)),p=d.loadingStatus!=="loaded"?void 0:d.data.find(k=>k.accountid===e.accountId),y=t.loadingStatus!=="loaded"?void 0:t.data.find(k=>k.contactid===(p==null?void 0:p._primarycontactid_value)),b=ooe(t,y),h=ioe(),w=k=>{var S;return(S=h.find(N=>N.fieldName===k))==null?void 0:S.columnHeader},x=He(A,k=>k.filter(S=>Object.entries(S).some(([N,C])=>{let M=C==null?void 0:C.toString();switch(N){case"contactid":{M=S?[S.firstname,S.lastname].filter(j=>j).join(" "):null;break}}return M==null?void 0:M.toString().toLowerCase().includes(n.toLowerCase())})).filter(S=>v.some(N=>N(S))));return u.jsxs(Lr,{title:"Contacts",children:[u.jsx(Fu,{setSearchBarContent:r,filterGroups:m,placeholderText:"Search for Contact",getSummarySections:()=>b,filtersToDisplay:[]}),x.loadingStatus!=="loaded"?u.jsx(vi,{}):x.data.length===0?u.jsx("div",{className:"no-results-message",children:"There are no records to display."}):u.jsxs("table",{className:"entitylist contacts-table",children:[u.jsx("thead",{children:u.jsx("tr",{children:h.map(k=>u.jsx(Ou,{columnHeader:k.columnHeader,fieldName:k.fieldName,headerWidth:k.cellWidth,sortingProps:{sortingEnabled:k.isSortable,sortedColumn:a,setSortedColumn:()=>s(k.fieldName),isSortedAscending:c,setIsSortedAscending:l}},k.id))})}),u.jsx("tbody",{children:x.data.map(k=>u.jsxs("tr",{"data-id":k.contactid,"data-entity":"contact","data-name":[k.firstname,k.lastname].filter(S=>S).join(" "),children:[u.jsx("td",{className:"full-name",title:[k.firstname,k.lastname].filter(S=>S).join(" "),"data-heading-title":w("firstname"),children:u.jsx(jt,{to:`${_e.EditContact.path}?id=${k.contactid}`,children:[k.firstname,k.lastname].filter(S=>S).join(" ")},k.firstname+k.lastname)}),u.jsx("td",{className:"job-title","data-heading-title":w("jobtitle"),children:k.jobtitle}),u.jsx("td",{className:"email-address","data-heading-title":w("emailaddress1"),children:k.emailaddress1}),u.jsx("td",{className:"telephone-number","data-heading-title":w("telephone1"),children:k.telephone1}),u.jsx("td",{className:"mobile-number","data-heading-title":w("mobilephone"),children:k.mobilephone})]},k.contactid))})]})]})},soe=()=>{const e=ve(i=>i.portalMajorIncidentUpdates),t=ve(i=>i.incidents);if(e.loadingStatus!=="loaded"||t.recentlyResolvedMajorIncidents.loadingStatus!=="loaded"||t.activeMajorIncidents.loadingStatus!=="loaded")return u.jsx(Lr,{title:"Major Incidents",children:u.jsx(vi,{})});const n=t.activeMajorIncidents.data.concat(t.recentlyResolvedMajorIncidents.data),r=e.data.reduce((i,a)=>{const s=i.find(c=>c.incidentId===a._regardingobjectid_value);return s?i=[...i.filter(c=>c.incidentId!==a._regardingobjectid_value),{incidentId:a._regardingobjectid_value,childrenUpdates:[...s.childrenUpdates,a]}]:i.push({incidentId:a._regardingobjectid_value,childrenUpdates:[a]}),i},[]).map(({incidentId:i,childrenUpdates:a})=>({majorIncident:n.find(c=>c.incidentid===i),childrenUpdates:a})).filter(({majorIncident:i})=>i).map(({majorIncident:i,childrenUpdates:a})=>({majorIncident:i,childrenUpdates:a})).sort((i,a)=>a.majorIncident.createdon.localeCompare(i.majorIncident.createdon));return u.jsx(Lr,{title:"Major Incidents",children:r.map(({majorIncident:i,childrenUpdates:a})=>u.jsx("div",{className:"major-incident","data-incident-id":i.incidentid,children:u.jsxs("div",{className:"major-incident-updates",children:[u.jsxs("h2",{className:"major-incident-title",children:["Major Incident ",i.ticketnumber]}),a.sort((s,c)=>c.createdon.localeCompare(s.createdon)).map(s=>u.jsxs("div",{className:"major-incident-update","data-type":o(s.subject),children:[u.jsxs("h3",{className:"major-incident-update-heading",title:s.subject,"data-record-id":s.activityid,children:[u.jsx("span",{className:"major-incident-update-title",children:s.subject}),u.jsxs("span",{className:"major-incident-update-status-snapshot",children:["Status: ",s.bistech_casestatussnapshot]}),u.jsxs("span",{className:"major-incident-update-created-on",children:[u.jsx("span",{className:"major-incident-update-created-on-date",children:Pe.toDateOnlyString(s.createdon)}),u.jsx("span",{className:"major-incident-update-created-on-time",children:Pe.toTimeOnlyString(s.createdon)})]})]}),u.jsx("p",{className:"major-incident-update-description",children:s.description})]},s.activityid))]})}))});function o(i){switch(i){case"Major Incident Created":return"created";case"Update":return"updated";case"Major Incident Re-Opened":return"re-opened";case"Major Incident Resolved":return"resolved";default:return"updated"}}},So=e=>{var r,o,i,a,s,c;const t=g.useRef(null);e.customValidity!==void 0&&((r=t.current)==null||r.setCustomValidity(e.customValidity(t.current.validity)));const n={...e.additionalInputProps,required:((o=e.additionalInputProps)==null?void 0:o.required)??!0,autoComplete:((i=e.additionalInputProps)==null?void 0:i.autoComplete)??"off",style:{cursor:"pointer"}};return u.jsx("label",{"data-name":e.name,className:"field radio-button-boolean-field",...e.additionalLabelProps,children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[e.label,n.required&&((a=t.current)!=null&&a.validity.valid?u.jsx($m,{className:"completed-icon"}):u.jsx(Ws,{className:"required-icon"})),e.tooltip&&u.jsx(tc,{overlayContent:e.tooltip})]}),((s=t.current)==null?void 0:s.validationMessage)&&u.jsx("span",{className:"validity-message",children:(c=t.current)==null?void 0:c.validationMessage}),u.jsxs("div",{className:"field-controls",children:[u.jsxs("label",{children:[u.jsx("input",{type:"radio",value:"no",id:"no",className:"field-control",name:e.name,onChange:()=>e.onChange(!1),checked:!e.value,ref:t,...n}),"No"]}),u.jsxs("label",{children:[u.jsx("input",{type:"radio",value:"yes",id:"yes",className:"field-control radio-button-spacing",name:e.name,onChange:()=>e.onChange(!0),ref:t,checked:e.value,...n}),"Yes"]})]})]})})},og=e=>{var t;return u.jsx(bt,{...e,additionalInputProps:{...e.additionalInputProps,type:"tel",minLength:10,maxLength:16,pattern:"^\\+\\d{9,15}|\\d{10,16}$",placeholder:((t=e.additionalInputProps)==null?void 0:t.placeholder)||"Provide a telephone number"},customValidity:n=>{var r;return n.patternMismatch?"Please provide a valid telephone number (between 10 and 16 digits, with an optional '+' at the start).":((r=e.customValidity)==null?void 0:r.call(e,n))||""}})},JM=e=>{var t;return u.jsx("label",{"data-name":e.name,className:"field popup-field",title:e.title||"",...e.additionalLabelProps,children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[e.label,e.requiredGroup&&u.jsx(Ws,{className:"required-group-icon"}),e.tooltip&&u.jsx(tc,{overlayContent:e.tooltip})]}),(t=e.additionalButtonProps)!=null&&t.disabled?u.jsx("span",{children:e.value}):u.jsx("button",{type:"button",className:"field-control",name:e.name,onClick:()=>e.onClick(),...e.additionalButtonProps,children:e.value}),e.subText&&u.jsx("span",{className:"subtext",children:e.subText})]})})},sA=u.jsx("svg",{fill:"currentColor",style:{color:"darkred"},width:"16",height:"16",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",children:u.jsx("path",{d:"M24 4a20 20 0 1 1 0 40 20 20 0 0 1 0-40Zm0 2.5a17.5 17.5 0 1 0 0 35 17.5 17.5 0 0 0 0-35Zm-6.22 9.52.1.1L24 22.23l6.12-6.11a1.25 1.25 0 0 1 1.66-.1l.1.1c.46.45.49 1.17.1 1.66l-.1.1L25.77 24l6.11 6.12c.46.45.49 1.17.1 1.66l-.1.1c-.45.46-1.17.49-1.66.1l-.1-.1L24 25.77l-6.12 6.11c-.45.46-1.17.49-1.66.1l-.1-.1a1.25 1.25 0 0 1-.1-1.66l.1-.1L22.23 24l-6.11-6.12a1.25 1.25 0 0 1-.1-1.66l.1-.1a1.25 1.25 0 0 1 1.66-.1Z",fill:"currentColor"})}),cA=u.jsx("svg",{fill:"currentColor",width:"16",height:"16",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",children:u.jsx("path",{d:"M11.5 11a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0ZM15 5a6 6 0 1 0 0 12 6 6 0 0 0 0-12Zm14.5 6a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0ZM33 5a6 6 0 1 0 0 12 6 6 0 0 0 0-12ZM4 22.45C4 20.55 5.54 19 7.45 19h9.62c-.44.76-.76 1.6-.93 2.5h-8.7a.95.95 0 0 0-.94.95v.43c0 .27 0 1.93 1.02 3.5.9 1.39 2.72 2.92 6.68 3.1a5.47 5.47 0 0 0-2.46 2.22c-3.22-.63-5.18-2.2-6.32-3.96A9.18 9.18 0 0 1 4 22.88v-.43Zm29.8 7.03a5.47 5.47 0 0 1 2.46 2.22c3.22-.63 5.18-2.2 6.32-3.96C44 25.54 44 23.27 44 22.88v-.43c0-1.9-1.54-3.45-3.45-3.45h-9.62c.44.76.76 1.6.93 2.5h8.7c.52 0 .94.42.94.95v.43c0 .27 0 1.93-1.02 3.5-.9 1.39-2.72 2.92-6.68 3.1ZM24 19.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM18 23a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm-5 11.45c0-1.9 1.54-3.45 3.45-3.45h15.1c1.9 0 3.45 1.54 3.45 3.45v.43c0 .4 0 2.66-1.42 4.86C32.1 42.04 29.23 44 24 44s-8.1-1.97-9.58-4.26C13 37.54 13 35.27 13 34.88v-.43Zm3.45-.95a.95.95 0 0 0-.95.95v.42c0 .28 0 1.94 1.02 3.51.95 1.48 2.96 3.12 7.48 3.12 4.52 0 6.53-1.64 7.48-3.12a6.68 6.68 0 0 0 1.02-3.5v-.43a.95.95 0 0 0-.95-.95h-15.1Z",fill:"currentColor"})}),T3=u.jsx("svg",{fill:"currentColor",width:"16",height:"16",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",children:u.jsx("path",{d:"M24 4a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-7.5 10a7.5 7.5 0 1 1 15 0 7.5 7.5 0 0 1-15 0Zm-4.25 14A4.25 4.25 0 0 0 8 32.25V33c0 3.76 1.94 6.57 4.92 8.38C15.85 43.16 19.79 44 24 44s8.15-.84 11.08-2.62C38.06 39.57 40 36.76 40 33v-.75C40 29.9 38.1 28 35.75 28h-23.5Zm-1.75 4.25c0-.97.78-1.75 1.75-1.75h23.5c.97 0 1.75.78 1.75 1.75V33c0 2.74-1.36 4.8-3.72 6.24-2.41 1.47-5.85 2.26-9.78 2.26-3.93 0-7.37-.79-9.78-2.26-2.36-1.43-3.72-3.5-3.72-6.24v-.75Z",fill:"currentColor"})}),coe=[{label:"No Access",description:"No access to any features of the Portal",fieldName:"bistech_permissionlevel",value:Qe["No Access"],additionalFields:{bistech_portalcasepermissionlevel:Ue["No Access"],bistech_portalcontactpermissionlevel:dt["No Access"],bistech_portalorderpermissionlevel:$e["No Access"],bistech_portalprojectpermissionlevel:gt["No Access"],bistech_portalinvoicepermissionlevel:kt["No Access"]}},{label:"Administrator",description:"Access to all features of the Portal",fieldName:"bistech_permissionlevel",value:Qe.Administrator,additionalFields:{bistech_portalcasepermissionlevel:Ue["All Cases"],bistech_portalcontactpermissionlevel:dt["All Contacts"],bistech_portalorderpermissionlevel:$e["All Orders"],bistech_portalprojectpermissionlevel:gt["All Projects"],bistech_portalinvoicepermissionlevel:kt["All Invoices"]}},{label:"Custom",description:"",fieldName:"bistech_permissionlevel",value:Qe.Custom,additionalFields:{bistech_portalcasepermissionlevel:Ue["No Access"],bistech_portalcontactpermissionlevel:dt["No Access"],bistech_portalorderpermissionlevel:$e["No Access"],bistech_portalprojectpermissionlevel:gt["No Access"],bistech_portalinvoicepermissionlevel:kt["No Access"]},subCategories:[{label:"Cases",description:"",isVisible:!0,options:[{label:"No Access",description:"No access to any Cases",icon:sA,fieldName:"bistech_portalcasepermissionlevel",value:Ue["No Access"]},{label:"Owned Cases",description:"Access to Cases where I am the Primary Contact",icon:T3,fieldName:"bistech_portalcasepermissionlevel",value:Ue["Owned Cases"]},{label:"All Cases",description:"Access to all Cases for my company",icon:cA,fieldName:"bistech_portalcasepermissionlevel",value:Ue["All Cases"]}]},{label:"Contacts",description:"",isVisible:!0,options:[{label:"No Access",description:"No access to any Contacts",icon:sA,fieldName:"bistech_portalcontactpermissionlevel",value:dt["No Access"]},{label:"All Contacts",description:"Access to all Contacts for my company",icon:cA,fieldName:"bistech_portalcontactpermissionlevel",value:dt["All Contacts"]}]},{label:"Orders",description:"",isVisible:!Li,options:[{label:"No Access",description:"No access to any Orders",icon:sA,fieldName:"bistech_portalorderpermissionlevel",value:$e["No Access"]},{label:"Owned Orders",description:"Access to Orders where I am the Primary Contact",icon:T3,fieldName:"bistech_portalorderpermissionlevel",value:$e["Owned Orders"]},{label:"All Orders",description:"Access to all Orders for my company",icon:cA,fieldName:"bistech_portalorderpermissionlevel",value:$e["All Orders"]}]},{label:"Projects",description:"",isVisible:!Li,options:[{label:"No Access",description:"No access to any Projects",icon:sA,fieldName:"bistech_portalprojectpermissionlevel",value:gt["No Access"]},{label:"All Projects",description:"Access to all Projects for my company",icon:cA,fieldName:"bistech_portalprojectpermissionlevel",value:gt["All Projects"]}]},{label:"Invoices",description:"",isVisible:!0,options:[{label:"No Access",description:"No access to any Invoices",icon:sA,fieldName:"bistech_portalinvoicepermissionlevel",value:kt["No Access"]},{label:"All Invoices",description:"Access to all Invoices for my company",icon:cA,fieldName:"bistech_portalinvoicepermissionlevel",value:kt["All Invoices"]}]}]}],loe=e=>{const t=e.contact[e.permission.fieldName]===e.permission.value,n=g.useRef(null);return u.jsx(u.Fragment,{children:u.jsxs("div",{className:"sub-category",ref:n,children:[u.jsx("h3",{className:"title",children:e.subCategory.label}),u.jsx("p",{className:"description",children:e.subCategory.description}),u.jsx("div",{className:"options",children:e.subCategory.options.map(r=>u.jsxs("label",{className:"option","aria-disabled":!t,"aria-selected":e.contact[r.fieldName]===r.value,children:[u.jsx("input",{className:"radio-button",type:"radio",checked:e.contact[r.fieldName]===r.value,onChange:()=>e.onUpdateContact({[r.fieldName]:r.value}),name:e.subCategory.label,disabled:!t}),u.jsx("div",{className:"icon",children:r.icon}),u.jsxs("div",{className:"content",children:[u.jsx("h5",{className:"title",children:r.label}),u.jsx("p",{className:"description",children:r.description})]})]}))})]})})},doe=e=>{var n;const t=()=>{e.onUpdateContact({[e.permission.fieldName]:e.permission.value,...e.permission.additionalFields})};return u.jsx(u.Fragment,{children:u.jsxs("div",{className:"top-level-permission",children:[u.jsxs("label",{className:"label","aria-selected":e.contact[e.permission.fieldName]===e.permission.value,children:[u.jsx("input",{className:"radio-button",type:"radio",checked:e.contact[e.permission.fieldName]===e.permission.value,onChange:t,name:"top-level-permission"}),u.jsxs("div",{className:"content",children:[u.jsx("h2",{className:"title",children:e.permission.label}),u.jsx("p",{className:"description",children:e.permission.description})]})]}),(((n=e.permission.subCategories)==null?void 0:n.length)??0)>0&&u.jsx("div",{className:"sub-categories",children:e.permission.subCategories.filter(r=>r.isVisible).map((r,o)=>u.jsx(loe,{subCategory:r,permission:e.permission,index:o,contact:e.contact,onUpdateContact:e.onUpdateContact}))})]})})},yl=e=>{const{trackExceptionWithBistechMetadata:t}=Nt(),[n,r]=g.useState(!1),[o,i]=g.useState({state:"idle"});if(!e.buttonInfo.hasModal)return u.jsx(u.Fragment,{});function a(){i({state:"idle"}),e.setIsModalShown(!1)}async function s(){r(!0);try{if(!e.buttonInfo.hasModal)throw new Error("Expected the `hasModal` to be 'true'.");if(e.buttonInfo.modalInfo.isErrorModal)throw new Error("Expected the `isErrorModal` to be 'false'.");await e.buttonInfo.modalInfo.onClick()}catch(c){i({state:"errored",error:c}),r(!1),t==null||t(c);return}r(!1),e.setIsModalShown(!e.isModalShown)}return u.jsx(u.Fragment,{children:e.isModalShown&&u.jsx("section",{className:"modal-section",children:u.jsx("div",{className:"modal-dialog",children:u.jsxs("div",{className:"modal-content",children:[u.jsx("div",{className:"modal-header",children:u.jsxs("div",{className:"modal-title",children:[u.jsx("h1",{children:e.buttonInfo.modalInfo.modalTitle}),u.jsx("button",{className:"button default modal-close",onClick:a,children:u.jsx("span",{children:"x"})})]})}),u.jsxs("form",{children:[u.jsxs("div",{className:"modal-body",children:[e.buttonInfo.modalInfo.modalContent,o.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsxs("strong",{children:["The ",e.buttonInfo.label," action has failed"]}),":"," ",o.error.message]})]}),u.jsxs("div",{className:"modal-footer",children:[!e.buttonInfo.modalInfo.isErrorModal&&u.jsx("button",{className:"button modal-button",type:"button",onClick:s,disabled:e.buttonInfo.disabled||o.state==="errored",children:n?u.jsxs("div",{children:[u.jsx(Wr,{className:"spin"})," Submitting..."]}):o.state==="errored"?u.jsx("div",{children:"Unsuccessful"}):e.buttonInfo.modalInfo.modalButtonLabel}),u.jsx("button",{className:"button default",type:"button",onClick:a,children:"Cancel"})]})]})]})})})})},QM=e=>{const[t,n]=g.useState({bistech_permissionlevel:e.contact.bistech_permissionlevel??Qe["No Access"],bistech_portalcasepermissionlevel:e.contact.bistech_portalcasepermissionlevel??Ue["No Access"],bistech_portalcontactpermissionlevel:e.contact.bistech_portalcontactpermissionlevel??dt["No Access"],bistech_portalorderpermissionlevel:e.contact.bistech_portalorderpermissionlevel??$e["No Access"],bistech_portalprojectpermissionlevel:e.contact.bistech_portalprojectpermissionlevel??gt["No Access"],bistech_portalinvoicepermissionlevel:e.contact.bistech_portalinvoicepermissionlevel??kt["No Access"]}),r=o=>{e.onSave(o),e.closePopup()};return u.jsx(u.Fragment,{children:u.jsx(yl,{buttonInfo:{hasModal:!0,label:"Permission Level",modalInfo:{isErrorModal:!1,modalButtonLabel:e.submitLabel,modalContent:u.jsx("div",{className:"popup-container",children:coe.map((o,i)=>u.jsx(doe,{permission:o,index:i,contact:t,onUpdateContact:a=>n({...t,...a})}))}),modalTitle:"Edit Permission Level",onClick:async()=>r(t)}},isModalShown:!0,setIsModalShown:o=>{o||e.closePopup()}})})},$M=e=>u.jsxs("ul",{className:"permission-level-list",children:[u.jsxs("li",{className:"case-permission-level-list-item",children:[u.jsx("strong",{className:"permission-level-list-item-name",children:"Cases"}),":"," ",u.jsx("span",{className:"permission-level-list-item-value",children:e.contact.bistech_portalcasepermissionlevel?Ue[e.contact.bistech_portalcasepermissionlevel]:"None"})]}),u.jsxs("li",{className:"contact-permission-level-list-item",children:[u.jsx("strong",{className:"permission-level-list-item-name",children:"Contacts"}),":"," ",u.jsx("span",{className:"permission-level-list-item-value",children:e.contact.bistech_portalcontactpermissionlevel?dt[e.contact.bistech_portalcontactpermissionlevel]:"None"})]}),!Li&&u.jsxs("li",{className:"order-permission-level-list-item",children:[u.jsx("strong",{className:"permission-level-list-item-name",children:"Orders"}),":"," ",u.jsx("span",{className:"permission-level-list-item-value",children:e.contact.bistech_portalorderpermissionlevel?$e[e.contact.bistech_portalorderpermissionlevel]:"None"})]}),!Li&&u.jsxs("li",{className:"project-permission-level-list-item",children:[u.jsx("strong",{className:"permission-level-list-item-name",children:"Projects"}),":"," ",u.jsx("span",{className:"permission-level-list-item-value",children:e.contact.bistech_portalprojectpermissionlevel?gt[e.contact.bistech_portalprojectpermissionlevel]:"None"})]}),u.jsxs("li",{className:"invoice-permission-level-list-item",children:[u.jsx("strong",{className:"permission-level-list-item-name",children:"Invoices"}),":"," ",u.jsx("span",{className:"permission-level-list-item-value",children:e.contact.bistech_portalinvoicepermissionlevel?kt[e.contact.bistech_portalinvoicepermissionlevel]:"None"})]})]}),uoe=()=>{const e=gl(),t=dn(),n=on(),r=kn(),{trackExceptionWithBistechMetadata:o,trackEventWithBistechMetadata:i}=Nt(),a=ve(x=>x.accounts),s=ve(x=>x.contacts),[c,l]=g.useState(!1),[d,A]=g.useState(!1),[f,m]=g.useState(!1),[v,p]=g.useState({state:"idle"}),[y,b]=g.useState({bistech_portalcontacttype:Zt.IndividualContact,firstname:"",lastname:"",jobtitle:"",telephone1:null,_bistech_primarysite_value:null,_parentcustomerid_value:n.accountId,bistech_permissionlevel:Qe["No Access"],bistech_portalcasepermissionlevel:Ue["No Access"],bistech_portalcontactpermissionlevel:dt["No Access"],bistech_portalorderpermissionlevel:$e["No Access"],bistech_portalprojectpermissionlevel:gt["No Access"],bistech_portalinvoicepermissionlevel:kt["No Access"],emailaddress1:"",mobilephone:null,bistech_receivealertnotifications:!1,bistech_receivemajorincidentupdates:!1,bistech_receivepewnotifications:!1,bistech_receivesecurityupdates:!1,bistech_receivecustomernewsletter:!1,bistech_receiveproductupdates:!1,bistech_isshowninportal:!0});async function h(x){if(x.preventDefault(),s.loadingStatus!=="loaded")throw new Error("Expected `incidents` to have loaded before submission");p({state:"submitting"}),i==null||i({type:"Create Contact - Contact creation submitted"});let k;try{k=await r.createContact(y)}catch(N){p({state:"errored",error:N}),o==null||o(N);return}i==null||i({type:"Create Contact - Contact created successfully",contactId:k.contactid}),t({type:"SetContacts",contacts:{loadingStatus:"loaded",data:s.data.concat([k])}}),p({state:"completed"});const S=`${_e.EditContact.path}?id=${k.contactid}`;t({type:"AddNotification",notification:{message:"Contact created successfully",displayedOnRelativeUrl:S,displayUntil:Pe.addSeconds(new Date,10)}}),e(S)}g.useEffect(()=>{m(!0)},[]);const w=g.useRef(null);return u.jsxs(Lr,{title:"Create Contact",children:[u.jsx("form",{className:"create-contact","data-submit-attempted":d,onSubmit:h,onInvalid:()=>{f&&A(!0)},children:u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"main-content",children:[u.jsxs("div",{className:"information-container",children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsxs(u.Fragment,{children:[u.jsx(rg,{label:"Contact Type",name:"user_contact_type",options:[{id:Zt.IndividualContact,label:"Individual Contact"},{id:Zt.TeamContact,label:"Team Contact"}],selectedOptionId:y.bistech_portalcontacttype,onChange:x=>b({...y,bistech_portalcontacttype:x})}),y.bistech_portalcontacttype===Zt.IndividualContact?u.jsx(bt,{label:"First Name",name:"firstname",value:y.firstname||"",onChange:x=>b({...y,firstname:x}),additionalInputProps:{required:!0}}):y.firstname!==""?b({...y,firstname:""}):null,u.jsx(bt,{label:y.bistech_portalcontacttype===Zt.IndividualContact?"Last Name":"Team Name",name:"lastname",value:y.lastname||"",onChange:x=>b({...y,lastname:x}),additionalInputProps:{required:!0}}),y.bistech_portalcontacttype===Zt.IndividualContact?u.jsx(bt,{label:"Job Title",name:"jobtitle",value:y.jobtitle||"",onChange:x=>b({...y,jobtitle:x}),additionalInputProps:{required:!0}}):y.jobtitle!==""?b({...y,jobtitle:""}):null]}),u.jsx(nc,{name:"_bistech_primarysite_value",label:"Primary Site",selectedOptionId:y._bistech_primarysite_value,pluralOptionsName:"Active Sites",options:a.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loaded",value:a.data.map(x=>({id:x.accountid,primaryText:`${x.name}`,secondaryText:oa[x.bistech_sitetype],isPickable:x.statecode===Rc.Active&&x.bistech_sitetype!==oa["Legal Entity"],account:x}))},setSelectedOptionId:x=>b({...y,_bistech_primarysite_value:x}),selectedOptionCardInfo:x=>({icon:u.jsx(wM,{}),primaryText:x.primaryText,secondaryText:x.secondaryText,additionalFields:[]}),additionalInputProps:{placeholder:"Select a Site",required:!1}}),u.jsx(bt,{label:"Email Address",name:"emailaddress",title:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.",value:y.emailaddress1||"",onChange:x=>b({...y,emailaddress1:x}),additionalInputProps:{required:!1,type:"email"},requiredGroup:!0,customValidity:()=>!y.emailaddress1&&!y.telephone1&&!y.mobilephone?"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.":""}),u.jsx(og,{label:"Direct Dial",name:"directdial",title:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.",value:y.telephone1||"",onChange:x=>b({...y,telephone1:x}),additionalInputProps:{required:!1},requiredGroup:!0,customValidity:()=>!y.emailaddress1&&!y.telephone1&&!y.mobilephone?"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.":""}),u.jsx(og,{label:"Mobile Phone",name:"mobilephone",title:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.",value:y.mobilephone||"",onChange:x=>b({...y,mobilephone:x}),additionalInputProps:{required:!1},requiredGroup:!0,customValidity:()=>!y.emailaddress1&&!y.telephone1&&!y.mobilephone?"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.":""})]}),u.jsxs("div",{className:"preferences-container",children:[u.jsx("h2",{className:"heading",children:"Preferences"}),u.jsx(JM,{name:"bistech_permissionlevel",label:"Permissions",tooltip:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"No Access"})," - The user or team will have no access to the portal."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Administrator"})," - The user or team will have access to all features of the portal."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Custom"})," - The user or team will have customised access to certain features of the portal."]})]}),value:`${y.bistech_permissionlevel?Qe[y.bistech_permissionlevel]:"None"} (edit)`,subText:u.jsx($M,{contact:y}),onClick:()=>l(!c),additionalButtonProps:{style:{cursor:"pointer"}},additionalLabelProps:{ref:w}}),u.jsx(So,{name:"receivealertnotifications",label:"Receive Alert Notifications?",tooltip:"Receive Network Alert Notifications if our proactive monitoring tool identifies issues with your Company's sites.",value:y.bistech_receivealertnotifications,onChange:x=>b({...y,bistech_receivealertnotifications:x})}),u.jsx(So,{name:"receiveplannedmaintenancenotifications",label:"Receive Planned Maintenance Notifications?",tooltip:"Receive Planned Maintenance Notifications if your Company's services are identified as affected.",value:y.bistech_receivepewnotifications,onChange:x=>b({...y,bistech_receivepewnotifications:x})}),u.jsx(So,{name:"receivemajorincidentupdates",label:"Receive Major Incident Updates?",tooltip:"Receive regular updates if your Company has a Case associated to a Major Incident.",value:y.bistech_receivemajorincidentupdates,onChange:x=>b({...y,bistech_receivemajorincidentupdates:x})}),u.jsx(So,{name:"receivesecurityupdates",label:"Receive Security Updates?",tooltip:"Receive Security Updates when known threats or vulnerabilities are reported in the marketplace.",value:y.bistech_receivesecurityupdates,onChange:x=>b({...y,bistech_receivesecurityupdates:x})}),u.jsx(So,{name:"receivecustomernewsletter",label:"Receive Customer Newsletter?",tooltip:"Receive the Bistech Customer Newsletter covering news, views and the latest IT industry development.",value:y.bistech_receivecustomernewsletter,onChange:x=>b({...y,bistech_receivecustomernewsletter:x})}),u.jsx(So,{name:"receiveproductupdates",label:"Receive Product Updates?",tooltip:"Receive Product Updates, roadmap information and end of life announcements.",value:y.bistech_receiveproductupdates,onChange:x=>b({...y,bistech_receiveproductupdates:x})})]})]}),v.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsx("strong",{children:"Failed to create Contact"}),": ",v.error.message]}),u.jsxs("fieldset",{className:"buttons",children:[u.jsxs("button",{className:"button",type:"submit",disabled:v.state==="submitting",children:[v.state==="submitting"&&u.jsx(Wr,{className:"spin"}),"Submit"]}),u.jsx(jt,{className:"button default",to:_e.Contacts.path,children:"Cancel"})]})]})}),c&&u.jsx(QM,{closePopup:()=>l(!1),contact:y,submitLabel:"Ok",onSave:x=>b({...y,...x})})]})},pn=e=>{switch(e.type){case"page-not-found":return u.jsxs(Lr,{title:"Page Not Found",children:[u.jsx("p",{children:"Sorry, but the page you were trying to view does not exist."}),u.jsx("p",{children:"It looks like this was the result of either:"}),u.jsxs("ul",{children:[u.jsx("li",{children:"A mistyped address"}),u.jsx("li",{children:"An out-of-date link"})]})]});case"record-not-found":return u.jsxs(Lr,{title:`${e.singularEntityName} Not Found`,children:[u.jsx("p",{children:"Sorry, but the record you were trying to view does not exist."}),u.jsx("p",{children:"It looks like this was the result of either:"}),u.jsxs("ul",{children:[u.jsx("li",{children:"A mistyped address"}),u.jsx("li",{children:"An out-of-date link"})]})]})}},Aoe=e=>{const[t,n]=g.useState(!1),[r,o]=g.useState(!1),{trackEventWithBistechMetadata:i}=Nt();return u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"button",type:"button",disabled:t,onClick:async()=>{if(e.buttonInfo.hasModal){o(!r);return}n(!0),e.buttonInfo.appInsights&&(i==null||i({type:e.buttonInfo.appInsights.submissionEventType,buttonName:e.buttonInfo.label}));try{await e.buttonInfo.onClick(),e.buttonInfo.appInsights&&(i==null||i({type:e.buttonInfo.appInsights.completedSuccessfullyEventType,buttonName:e.buttonInfo.label}))}catch(a){const s=new Error(`Error occurred performing '${e.buttonInfo.label}' button behaviour: ${a}`);e.setSubmissionState({state:"errored",error:s})}n(!1)},children:t?u.jsxs("div",{children:[u.jsx(Wr,{className:"spin"})," Submitting..."]}):e.buttonInfo.label}),e.buttonInfo.hasModal&&u.jsx(yl,{buttonInfo:e.buttonInfo,isModalShown:r,setIsModalShown:o})]})},Lu=({children:e,title:t,callToActionInformation:n,tags:r,parentPageReference:o,setSubmissionState:i})=>{var d,A,f;const l=mi();return u.jsxs(u.Fragment,{children:[u.jsx($h,{}),u.jsxs("div",{className:"page-content",style:l<991?{paddingTop:"1em"}:{},children:[u.jsx(rt,{children:u.jsx(uk,{isLoading:!1,parentPage:o})}),u.jsxs("div",{className:"call-to-action-base-page",children:[u.jsxs("div",{className:"base-page-header",children:[u.jsx("h1",{className:"call-to-action-base-page-title",children:t}),u.jsx("div",{className:"label-group",children:r&&r.filter(m=>m.value).map(m=>u.jsx("span",{className:"label",children:m.value},m.name))})]}),u.jsxs("div",{className:"call-to-action-panel",children:[u.jsx("div",{className:"call-to-action-icon-panel",children:n.loadingStatus==="loaded"&&u.jsx(Wn,{className:"call-to-action-icon",width:40,height:40,src:n.data.icon})}),n.loadingStatus==="loaded"?u.jsxs("div",{className:"call-to-action-information-panel",children:[u.jsxs("div",{"data-info-panel-has-buttons":((d=n.data.buttons)==null?void 0:d.length)??!0,children:[u.jsx("div",{className:"call-to-action-information-panel-title",children:n.data.title}),u.jsx("div",{className:"call-to-action-information-panel-description",children:n.data.description})]}),(((A=n.data.buttons)==null?void 0:A.length)??0)!==0?u.jsx("div",{className:"call-to-action-button-panel",children:u.jsx("div",{className:"call-to-action-buttons",children:(f=n.data.buttons)==null?void 0:f.map(m=>u.jsx(Aoe,{buttonInfo:m,setSubmissionState:i},m.label))})}):u.jsx(u.Fragment,{})]}):u.jsx(vi,{})]})]}),u.jsx(rt,{children:e})]})]})};function Xc(e,t){return Object.entries(t).reduce((r,[o,i])=>{const a=JSON.stringify(e[o]),s=JSON.stringify(i);return a!==s&&(r[o]=t[o]),r},{})}const foe=e=>{var W;const t=ve(z=>z.contacts),n=ve(z=>z.accounts),r=ve(z=>z.incidents),o=dn(),i=kn(),a=on(),{trackExceptionWithBistechMetadata:s,trackEventWithBistechMetadata:c}=Nt(),l=()=>{var z,L,q,P,U,B,K,te,Ae,ae,Ne,oe,xe,Z,V,X,J,ce,le,pe,Ie;return{firstname:(z=e.initialContact)==null?void 0:z.firstname,lastname:(L=e.initialContact)==null?void 0:L.lastname,jobtitle:(q=e.initialContact)==null?void 0:q.jobtitle,telephone1:(P=e.initialContact)==null?void 0:P.telephone1,bistech_portalcontacttype:(U=e.initialContact)==null?void 0:U.bistech_portalcontacttype,_bistech_primarysite_value:(B=e.initialContact)==null?void 0:B._bistech_primarysite_value,bistech_permissionlevel:(K=e.initialContact)==null?void 0:K.bistech_permissionlevel,bistech_portalcasepermissionlevel:(te=e.initialContact)==null?void 0:te.bistech_portalcasepermissionlevel,bistech_portalcontactpermissionlevel:(Ae=e.initialContact)==null?void 0:Ae.bistech_portalcontactpermissionlevel,bistech_portalorderpermissionlevel:(ae=e.initialContact)==null?void 0:ae.bistech_portalorderpermissionlevel,bistech_portalprojectpermissionlevel:(Ne=e.initialContact)==null?void 0:Ne.bistech_portalprojectpermissionlevel,bistech_portalinvoicepermissionlevel:(oe=e.initialContact)==null?void 0:oe.bistech_portalinvoicepermissionlevel,emailaddress1:(xe=e.initialContact)==null?void 0:xe.emailaddress1,mobilephone:(Z=e.initialContact)==null?void 0:Z.mobilephone,bistech_receivealertnotifications:(V=e.initialContact)==null?void 0:V.bistech_receivealertnotifications,bistech_receivemajorincidentupdates:(X=e.initialContact)==null?void 0:X.bistech_receivemajorincidentupdates,bistech_receivepewnotifications:(J=e.initialContact)==null?void 0:J.bistech_receivepewnotifications,bistech_receivesecurityupdates:(ce=e.initialContact)==null?void 0:ce.bistech_receivesecurityupdates,bistech_receivecustomernewsletter:(le=e.initialContact)==null?void 0:le.bistech_receivecustomernewsletter,bistech_receiveproductupdates:(pe=e.initialContact)==null?void 0:pe.bistech_receiveproductupdates,statecode:(Ie=e.initialContact)==null?void 0:Ie.statecode}},[d,A]=g.useState(l()),f=[{description:"First Name is Populated.",isValid:()=>d.bistech_portalcontacttype!==Zt.IndividualContact||!!d.firstname,customerMessage:"Please populate a 'First Name'."},{description:"Last Name is Populated.",isValid:()=>!!d.lastname,customerMessage:"Please populate a 'Last Name'."},{description:"Job Title is Populated.",isValid:()=>d.bistech_portalcontacttype!==Zt.IndividualContact||!!d.jobtitle,customerMessage:"Please populate a 'Job Title'."},{description:"Contact Type is not Populated.",isValid:()=>!!e.initialContact.bistech_portalcontacttype,customerMessage:"'Contact Type' cannot be updated after creation."},{description:"Email Address is malformed.",isValid:()=>{var z;return((z=e.initialContact.emailaddress1)==null?void 0:z.includes("@"))??!1},customerMessage:"Please include an '@' in the email address."},{description:"Ensure a contact type is populated",isValid:()=>!!(d.emailaddress1||d.telephone1||d.mobilephone),customerMessage:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone."}],[m,v]=g.useState({loadingStatus:"not-started"}),[p,y]=g.useState({loadingStatus:"not-started"}),[b,h]=g.useState(""),[w,x]=g.useState(""),[k,S]=g.useState(""),[N,C]=g.useState(!1),M=ve(z=>z.dirtyBannerSettings),[j,T]=g.useState(!1),[F,H]=g.useState(!1),[R,O]=g.useState({state:"idle"});g.useEffect(()=>{A(l()),I(!1)},[e.initialContact]);const _=z=>{const{statecode:L,...q}=z,P=K=>{const te={};for(const Ae in K)K.hasOwnProperty(Ae)&&(te[Ae]=K[Ae]===""?null:K[Ae]);return te},U=P(e.initialContact),B=P(q);return Object.keys(Xc(U,B)).length>0},Y=z=>{A(z);const L=_(z);I(L,z)},I=(z,L)=>{if(!z||!L){o({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0});return}o({type:"SetDirtyBannerSettings",dirtyBannerSettings:{type:"showSaveButton",saveFunction:()=>E(L),submissionPrerequisites:f}})};if(g.useEffect(()=>{if(!e.initialContact||p.loadingStatus!=="loaded"||n.loadingStatus!=="loaded")return;z(e.initialContact,p.data),v(()=>{const L={label:"Activate",hasModal:!0,appInsights:{submissionEventType:"Edit Contact - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Contact - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!1,modalTitle:"Activate",modalButtonLabel:"Activate",modalContent:"Are you sure you want to activate this record?",onClick:async()=>{if(t.loadingStatus!=="loaded")throw new Error("Expected `contacts` to have loaded before submission");const V=await i.updateContact(e.initialContact.contactid,{statecode:Be.Active});o({type:"SetContacts",contacts:{loadingStatus:"loaded",data:t.data.filter(X=>X.contactid!==V.contactid).concat([V])}}),o({type:"AddNotification",notification:{message:"Contact activated successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}}},q={label:"Deactivate",hasModal:!0,appInsights:{submissionEventType:"Edit Contact - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Contact - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!1,modalTitle:"Are you sure?",modalButtonLabel:"Deactivate",modalContent:(()=>{const V=n.data.find(ce=>ce.accountid===a.accountId);return(V==null?void 0:V._primarycontactid_value)===e.initialContact.contactid?u.jsxs(u.Fragment,{children:[u.jsx("strong",{children:"Warning:"})," You are about to deactivate the Key Service Contact of your organisation. Are you sure you wish to continue?"]}):r.activeIncidents.loadingStatus==="loaded"&&r.activeIncidents.data.some(ce=>ce._primarycontactid_value===e.initialContact.contactid)?u.jsxs(u.Fragment,{children:[u.jsx("strong",{children:"Warning:"})," You are about to deactivate the Primary Contact of at least one case. Are you sure you wish to continue?"]}):u.jsx(u.Fragment,{children:"You are about to deactivate this contact. Are you sure you wish to continue?"})})(),onClick:async()=>{if(t.loadingStatus!=="loaded")throw new Error("Expected `contacts` to have loaded before submission");const V=await i.updateContact(e.initialContact.contactid,{statecode:Be.Inactive});o({type:"SetContacts",contacts:{loadingStatus:"loaded",data:t.data.filter(X=>X.contactid!==V.contactid).concat([V])}}),o({type:"AddNotification",notification:{message:"Contact deactivated successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}}},P={label:"Send Invite",hasModal:!0,appInsights:{submissionEventType:"Edit Contact - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Contact - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!1,modalTitle:"Send Invite?",modalButtonLabel:"Proceed",modalContent:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:["Are you sure you would like to send an invitation with"," ",u.jsx("strong",{children:e.initialContact.bistech_permissionlevel?Qe[e.initialContact.bistech_permissionlevel]:"no"})," ","permissions?"]}),u.jsx("p",{children:"If you would like to change the contact's permissions, please save the form first."})]}),onClick:async()=>{await i.executeSendInvitationPortalAction(e.initialContact.contactid),y({loadingStatus:"loaded",data:{_adx_invitecontact_value:e.initialContact.contactid,adx_invitationid:"00000000-0000-0000-0000-000000000000",bistech_authenticationtype:null,createdon:new Date().toLocaleDateString(),statuscode:Bt.Sent}}),o({type:"AddNotification",notification:{message:"Contact Invitation sent successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}}},U={label:"Set as Key Contact",hasModal:!0,appInsights:{submissionEventType:"Edit Contact - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Contact - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!1,modalTitle:"Are you sure?",modalButtonLabel:"Proceed",modalContent:"Are you sure you would like to set this user as your organisation's Key Service Contact?",onClick:async()=>{if(n.loadingStatus!=="loaded")throw new Error("Expected `accounts` to have loaded before submission");const V=await i.updateAccount(a.accountId,{_primarycontactid_value:e.initialContact.contactid});o({type:"SetAccounts",accounts:{loadingStatus:"loaded",data:n.data.filter(X=>X.accountid!==V.accountid).concat([{...V,_primarycontactid_value:e.initialContact.contactid}])}}),o({type:"AddNotification",notification:{message:"Key Contact updated successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}}},B={label:"Send Invite",hasModal:!0,appInsights:{submissionEventType:"Edit Contact - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Contact - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!0,modalTitle:"Missing Email Address",modalButtonLabel:"",modalContent:u.jsxs(u.Fragment,{children:[u.jsx("p",{children:"This contact cannot be invited to the Bistech portal as they have no email address."}),u.jsx("p",{children:"Please update this information and save the contact before inviting them to the Bistech portal."})]})}},K={label:"Send Invite",hasModal:!0,appInsights:{submissionEventType:"Edit Contact - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Contact - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!0,modalTitle:"Missing Permission Level",modalButtonLabel:"",modalContent:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:["This contact cannot be invited to the Bistech portal as they have"," ",u.jsx("strong",{children:"No Access"})," as their Permission Level."]}),u.jsx("p",{children:"Please update this information and save the contact before inviting them to the Bistech portal."})]})}},te=(()=>{const V=e.initialContact.statecode===Be.Active,X=a.contactId===e.initialContact.contactid;return V&&!X})(),Ae=(()=>{const V=e.initialContact.statecode===Be.Inactive,X=a.contactId===e.initialContact.contactid;return V&&!X})(),ae=function(){if(!p.data)return!!te;const V=p.data.statuscode===Bt["Pending Send"]||p.data.statuscode===Bt.Sent,X=a.contactId===e.initialContact.contactid;return te&&!V&&!X}(),Ne=function(){const V=e.initialContact.statecode===Be.Active,X=a.portalContactPermissionLevel===dt["All Contacts"],J=n.data.some(ce=>ce._primarycontactid_value===e.initialContact.contactid);return V&&X&&!J}(),oe=(()=>{var ce;const V=a.contactId===e.initialContact.contactid,X=((ce=p.data)==null?void 0:ce.bistech_authenticationtype)===jn.Local,J=e.initialContact.statecode===Be.Active;return V&&X&&J})(),xe=function(){return e.initialContact.emailaddress1?!e.initialContact.bistech_permissionlevel||e.initialContact.bistech_permissionlevel===Qe["No Access"]||e.initialContact.bistech_portalcontactpermissionlevel===dt["No Access"]&&e.initialContact.bistech_portalcasepermissionlevel===Ue["No Access"]&&e.initialContact.bistech_portalorderpermissionlevel===$e["No Access"]?K:P:B}(),Z={label:"Change Password",hasModal:!1,onClick:async()=>{window.location.href="/Account/Manage/ChangePassword"}};return{loadingStatus:"loaded",data:{title:b,description:w,icon:k,buttons:[...te?[q]:[],...Ae?[L]:[],...ae?[xe]:[],...Ne?[U]:[],...oe?[Z]:[]]}}});function z(L,q){if(L.statecode===Be.Inactive){h("Inactive"),x("Activate this contact to give access"),S("contact-status-inactive.svg");return}if(L.adx_identity_logonenabled){h("Active"),L.contactid===a.contactId?x("Update your profile information below"):x("Deactivate to revoke access"),S("contact-status-active.svg");return}if(!q){h("No Access"),x("Send an invitation to give access"),S("contact-status-no-access.svg");return}switch(q.statuscode){case Bt.New:h("No Access"),x("Send an invitation to give access"),S("contact-status-no-access.svg");return;case Bt["Pending Send"]:h("Awaiting Redemption"),x("Awaiting Invitation redemption"),S("contact-status-awaiting-redemption.svg");return;case Bt.Sent:h("Awaiting Redemption"),x("Awaiting Invitation redemption"),S("contact-status-awaiting-redemption.svg");return;case Bt.Redeemed:if(L.adx_identity_logonenabled){h("Active"),x("Deactivate to revoke access"),S("contact-status-active.svg");return}else{h("No Access"),x("Send an invitation to give access"),S("contact-status-no-access.svg");return}case Bt.Expired:h("No Access"),x("Send an invitation to give access"),S("contact-status-no-access.svg");return;default:h("No Access"),x("Send an invitation to give access"),S("contact-status-no-access.svg");return}}},[e.initialContact,p,b,w,k,n,i,o,a,t]),g.useEffect(()=>{e.initialContact&&p.loadingStatus==="not-started"&&(v({loadingStatus:"loading"}),y({loadingStatus:"loading"}),i.retrievePortalInvitations(e.initialContact.contactid).then(z=>{const L=z.sort((q,P)=>new Date(P.createdon).getTime()-new Date(q.createdon).getTime());y({loadingStatus:"loaded",data:L[0]||null})}).catch(z=>o({type:"AddLatestError",error:z})))},[e.initialContact,i,o,p,v,y]),!a.contactId)throw new Error(`Expected the user contactID to be populated but was '${a.contactId}' `);if(g.useEffect(()=>{H(!0)},[]),!e.initialContact||!d)return u.jsx(pn,{type:"record-not-found",singularEntityName:"Contact"});async function E(z){if(t.loadingStatus!=="loaded")throw new Error("Expected `contacts` to have loaded before submission");O({state:"submitting"}),c==null||c({type:"Edit Contact - Contact update submitted",contactId:e.initialContact.contactid});let L;try{L=await i.updateContact(e.initialContact.contactid,Xc(e.initialContact,z))}catch(q){O({state:"errored",error:q}),s==null||s(q);return}c==null||c({type:"Edit Contact - Contact updated successfully",contactId:e.initialContact.contactid}),o({type:"SetContacts",contacts:{loadingStatus:"loaded",data:t.data.map(q=>q.contactid===L.contactid?L:q)}}),O({state:"completed"}),e.onSave(),o({type:"AddNotification",notification:{message:"Contact updated successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}const D=g.useRef(null);return u.jsxs(Lu,{title:[e.initialContact.firstname,e.initialContact.lastname].filter(z=>z).join(" "),tags:[],callToActionInformation:m,setSubmissionState:O,children:[u.jsx("form",{className:"edit-contact","data-submit-attempted":j,onSubmit:async z=>{z.preventDefault(),await E(d)},onInvalid:()=>{F&&T(!0)},children:u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"main-content",children:[u.jsxs("div",{className:"information-container",children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsxs(u.Fragment,{children:[u.jsx(rg,{label:"Contact Type",name:"user_contact_type",options:[{id:Zt.IndividualContact,label:"Individual Contact"},{id:Zt.TeamContact,label:"Team Contact"}],selectedOptionId:e.initialContact.bistech_portalcontacttype,onChange:()=>{},additionalSelectProps:{required:!0,disabled:!0,title:"'Contact Type' cannot be updated after creation."}}),e.initialContact.bistech_portalcontacttype===Zt.IndividualContact?u.jsx(bt,{label:"First Name",name:"firstname",value:d.firstname||"",onChange:z=>Y({...d,firstname:z}),additionalInputProps:{required:!0,disabled:e.initialContact.statecode===Be.Inactive}}):d.firstname!==""?Y({...d,firstname:""}):null,u.jsx(bt,{label:e.initialContact.bistech_portalcontacttype===Zt.IndividualContact?"Last Name":"Team Name",name:"lastname",value:d.lastname||"",onChange:z=>Y({...d,lastname:z}),additionalInputProps:{required:!0,disabled:e.initialContact.statecode===Be.Inactive}}),e.initialContact.bistech_portalcontacttype===Zt.IndividualContact?u.jsx(bt,{label:"Job Title",name:"jobtitle",value:d.jobtitle||"",onChange:z=>{Y({...d,jobtitle:z})},additionalInputProps:{required:!0}}):d.jobtitle!==""?Y({...d,jobtitle:""}):null]}),u.jsx(nc,{name:"_bistech_primarysite_value",label:"Primary Site",selectedOptionId:d._bistech_primarysite_value??null,pluralOptionsName:"Active Sites",options:n.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loaded",value:n.data.map(z=>({id:z.accountid,primaryText:`${z.name}`,secondaryText:oa[z.bistech_sitetype],isPickable:z.statecode===Rc.Active&&z.bistech_sitetype!==oa["Legal Entity"],account:z}))},setSelectedOptionId:z=>Y({...d,_bistech_primarysite_value:z}),additionalInputProps:{placeholder:"Select a Site",required:!1,disabled:e.initialContact.statecode===Be.Inactive},selectedOptionCardInfo:z=>({icon:u.jsx(wM,{}),primaryText:z.primaryText,secondaryText:z.secondaryText,additionalFields:[]})}),u.jsx(bt,{label:"Email Address",name:"emailaddress",title:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.",value:d.emailaddress1||"",onChange:z=>Y({...d,emailaddress1:z}),additionalInputProps:{required:!0,type:"email",title:"'Email Address' cannot be updated. Contact Service Desk if an update is required.",disabled:p.loadingStatus!=="loaded"||((W=p.data)==null?void 0:W.bistech_authenticationtype)===jn.Local},requiredGroup:!0,customValidity:()=>!d.emailaddress1&&!d.telephone1&&!d.mobilephone?"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.":""}),u.jsx(og,{label:"Direct Dial",name:"directdial",title:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.",value:d.telephone1||"",onChange:z=>Y({...d,telephone1:z}),additionalInputProps:{required:!1,disabled:e.initialContact.statecode===Be.Inactive},requiredGroup:!0,customValidity:()=>!d.emailaddress1&&!d.telephone1&&!d.mobilephone?"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.":""}),u.jsx(og,{label:"Mobile Phone",name:"mobilephone",title:"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.",value:d.mobilephone||"",onChange:z=>Y({...d,mobilephone:z}),additionalInputProps:{required:!1,disabled:e.initialContact.statecode===Be.Inactive},requiredGroup:!0,customValidity:()=>!d.emailaddress1&&!d.telephone1&&!d.mobilephone?"You must supply at least one of the following fields: Email, Direct Dial, Mobile Phone.":""})]}),u.jsxs("div",{className:"preferences-container",children:[u.jsx("h2",{className:"heading",children:"Preferences"}),u.jsx(JM,{name:"bistech_permissionlevel",label:"Permissions",tooltip:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"No Access"})," - The user or team will have no access to the portal."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Administrator"})," - The user or team will have access to all features of the portal."]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Custom"})," - The user or team will have customised access to certain features of the portal."]})]}),value:`${e.initialContact.bistech_permissionlevel?Qe[e.initialContact.bistech_permissionlevel]:"None"} (edit)`,subText:u.jsx($M,{contact:d}),onClick:()=>C(!N),additionalLabelProps:{ref:D},additionalButtonProps:{title:a.portalContactPermissionLevel!==dt["All Contacts"]?"Only a user with the 'All Contacts' Contact permission level can update this field.":e.initialContact.statecode===Be.Inactive?"A deactivated Contact cannot be updated.":void 0,disabled:a.portalContactPermissionLevel!==dt["All Contacts"]||e.initialContact.statecode===Be.Inactive,style:{cursor:"pointer"}}}),u.jsx(So,{name:"receivealertnotifications",label:"Receive Alert Notifications?",tooltip:"Receive Network Alert Notifications if our proactive monitoring tool identifies issues with your Company's sites.",value:d.bistech_receivealertnotifications??!1,onChange:z=>Y({...d,bistech_receivealertnotifications:z}),additionalInputProps:{disabled:e.initialContact.statecode===Be.Inactive}}),u.jsx(So,{name:"receiveplannedmaintenancenotifications",label:"Receive Planned Maintenance Notifications?",tooltip:"Receive Planned Maintenance Notifications if your Company's services are identified as affected.",value:d.bistech_receivepewnotifications??!1,onChange:z=>Y({...d,bistech_receivepewnotifications:z}),additionalInputProps:{disabled:e.initialContact.statecode===Be.Inactive}}),u.jsx(So,{name:"receivemajorincidentupdates",label:"Receive Major Incident Updates?",tooltip:"Receive regular updates if your Company has a Case associated to a Major Incident.",value:d.bistech_receivemajorincidentupdates??!1,onChange:z=>Y({...d,bistech_receivemajorincidentupdates:z}),additionalInputProps:{disabled:e.initialContact.statecode===Be.Inactive}}),u.jsx(So,{name:"receivesecurityupdates",label:"Receive Security Updates?",tooltip:"Receive Security Updates when known threats or vulnerabilities are reported in the marketplace.",value:d.bistech_receivesecurityupdates??!1,onChange:z=>Y({...d,bistech_receivesecurityupdates:z}),additionalInputProps:{disabled:e.initialContact.statecode===Be.Inactive}}),u.jsx(So,{name:"receivecustomernewsletter",label:"Receive Customer Newsletter?",tooltip:"Receive the Bistech Customer Newsletter covering news, views and the latest IT industry development.",value:d.bistech_receivecustomernewsletter??!1,onChange:z=>Y({...d,bistech_receivecustomernewsletter:z}),additionalInputProps:{disabled:e.initialContact.statecode===Be.Inactive}}),u.jsx(So,{name:"receiveproductupdates",label:"Receive Product Updates?",tooltip:"Receive Product Updates, roadmap information and end of life announcements.",value:d.bistech_receiveproductupdates??!1,onChange:z=>Y({...d,bistech_receiveproductupdates:z}),additionalInputProps:{disabled:e.initialContact.statecode===Be.Inactive}})]})]}),R.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsx("strong",{children:"Failed to update Contact"}),": ",R.error.message]}),u.jsxs("fieldset",{className:"buttons",children:[u.jsxs("button",{className:"button",type:"submit",disabled:R.state==="submitting"||e.initialContact.statecode===Be.Inactive||!M,title:(()=>{if(!M)return"No changes to save";if(e.initialContact.statecode===Be.Inactive)return`Contact is read-only as it is ${Be[e.initialContact.statecode]}. Activate the Contact to make changes.`})(),children:[R.state==="submitting"&&u.jsx(Wr,{className:"spin"}),"Save"]}),u.jsx(jt,{className:"button default",to:_e.Contacts.path,children:"Cancel"})]})]})}),N&&u.jsx(QM,{closePopup:()=>C(!1),contact:d,submitLabel:"Save",onSave:async z=>{const L={...d,...z};A(L),o({type:"SetDirtyBannerSettings",dirtyBannerSettings:{type:"showAlreadySaving",initialSubmissionStatus:{state:"submitting"},submissionPrerequisites:f}}),await E(L)}})]})},eR=e=>{const t=dn(),n=kn(),r=ve(l=>l.contacts),[o,i]=g.useState(1),[a,s]=g.useState({loadingStatus:"not-started"});g.useEffect(()=>{s({loadingStatus:"not-started"})},[r,o]);const c=g.useMemo(()=>{if(a.loadingStatus==="not-started"&&(s({loadingStatus:"loading"}),n.retrieveContact(e.contactid).then(d=>s({loadingStatus:"loaded",data:d})).catch(d=>{t({type:"AddLatestError",error:d}),s({loadingStatus:"errored",error:d})})),a.loadingStatus==="loaded")return{loadingStatus:"loaded",data:a.data};if(r.loadingStatus!=="loaded")return{loadingStatus:"loading"};const l=r.data.find(d=>d.contactid===e.contactid);return l?{loadingStatus:"loaded",data:l}:{loadingStatus:"loading"}},[r,a,n,e.contactid,t]);return a.loadingStatus==="errored"?u.jsx(pn,{type:"record-not-found",singularEntityName:"Contact"}):c.loadingStatus!=="loaded"?u.jsx(bl,{}):u.jsx(foe,{initialContact:c.data,onSave:()=>i(o+1)})},moe=()=>{const[e]=Ks(),n=e.get("id");return n?u.jsx(eR,{contactid:n}):u.jsx(pn,{singularEntityName:"Contact",type:"record-not-found"})},gn=({imagePath:e,tile:t,modalMessage:n})=>{const{trackEventWithBistechMetadata:r}=Nt(),o=ve(m=>m.products),[i,a]=g.useState(""),[s,c]=g.useState(!1),l=on(),d=ve(m=>m);g.useEffect(()=>{if(t.type=="page"){const v=Object.values(_e).find(y=>y.path===t.link);(v==null?void 0:v.isPermitted(l,d))&&a(t.link)}if(o.loadingStatus!=="loaded"||t.type!=="customer-asset")return;const m=o.data.filter(v=>v.bistech_portaltilemapping===t.tileMapping);m.length>=1&&a(m[0].bistech_tiletargeturl)},[o,t]);const A=()=>{c(!0),window.scrollTo({top:0,behavior:"smooth"})},f={label:n||"",hasModal:!0,modalInfo:{isErrorModal:!1,modalButtonLabel:"Confirm",modalContent:u.jsx(u.Fragment,{children:n}),modalTitle:t.label,onClick:async()=>{const m=window.open();m.opener=null,m.location=i,r==null||r({type:"Home - Customer Asset tile clicked",tileName:t.label})}}};return i?n?u.jsxs(u.Fragment,{children:[u.jsx("a",{"data-has-link":!0,onClick:()=>A(),target:"_blank",rel:"noreferrer",className:"tile",children:u.jsxs(rt,{children:[u.jsx("div",{className:"tile-image-container",children:u.jsx(Wn,{className:"tile-image",src:e,width:40,height:40})}),u.jsx("p",{className:"tile-title",children:t.label})]})}),u.jsx(yl,{buttonInfo:f,isModalShown:s,setIsModalShown:c})]}):i.startsWith("http://")||i.startsWith("https://")?u.jsx("a",{"data-has-link":!0,href:i,target:"_blank",rel:"noreferrer",className:"tile",onClick:()=>r==null?void 0:r({type:"Home - Customer Asset tile clicked",tileName:t.label}),children:u.jsxs(rt,{children:[u.jsx("div",{className:"tile-image-container",children:u.jsx(Wn,{className:"tile-image",src:e,width:40,height:40})}),u.jsx("p",{className:"tile-title",children:t.label})]})}):u.jsx(jt,{"data-has-link":!0,to:i,className:"tile",onClick:()=>r==null?void 0:r({type:"Home - Customer Asset tile clicked",tileName:t.label}),children:u.jsxs(rt,{children:[u.jsx("div",{className:"tile-image-container",children:u.jsx(Wn,{className:"tile-image",src:e,width:40,height:40})}),u.jsx("p",{className:"tile-title",children:t.label})]})}):u.jsx("div",{"data-has-link":!1,className:"tile",title:o.loadingStatus==="loading"?"Loading...":void 0,children:u.jsxs(rt,{children:[u.jsx("div",{className:"tile-image-container",children:u.jsx(Wn,{className:"tile-image",src:e,width:40,height:40})}),u.jsx("p",{className:"tile-title",children:t.label})]})})},voe=e=>e>300*5?"5:0":e>300*4?"4:1":e>300*3?"3:2":e>300*2?"2:2":"1",poe=()=>{const[e,t]=g.useState(""),n=16,r=mi(),o=r>=1025?288:0,i=r-n-o;return g.useEffect(()=>{t(voe(i))},[i]),u.jsxs(u.Fragment,{children:[u.jsx($h,{}),u.jsx("div",{className:"masthead",children:u.jsxs("div",{className:"masthead-content",children:[u.jsx("div",{className:"branding",children:u.jsx(Wn,{src:"/bistech-logo.png",width:224,height:72})}),u.jsx("div",{children:u.jsx("h1",{className:"title",children:"Customer Portal"})})]})}),u.jsxs("div",{className:"tiles",children:[u.jsxs("section",{className:"tile-group",children:[u.jsx("span",{className:"tile-group-title",children:"Management"}),u.jsx(gn,{imagePath:"/home-icon-case-management.svg",tile:{type:"page",label:"Cases",link:_e.Cases.path}}),u.jsx(gn,{imagePath:"/home-icon-contacts.svg",tile:{type:"page",label:"Contacts",link:_e.Contacts.path}}),!Li&&u.jsx(gn,{imagePath:"/home-icon-order-management.svg",tile:{type:"page",label:"Orders",link:_e.Orders.path}}),!Li&&u.jsx(gn,{imagePath:"/home-icon-project-management.svg",tile:{type:"page",label:"Projects",link:_e.Projects.path}}),u.jsx(gn,{imagePath:"/home-icon-invoices.svg",tile:{type:"page",label:"Invoices",link:_e.Invoices.path}})]}),e!=="1"&&u.jsx("div",{className:"tile-group-seperator"}),u.jsxs("section",{className:"tile-group",children:[u.jsx("span",{className:"tile-group-title",children:"Infrastructure"}),u.jsx(gn,{imagePath:"/home-icon-meraki.svg",tile:{type:"customer-asset",label:"Meraki",tileMapping:it.Meraki}}),u.jsx(gn,{imagePath:"/home-icon-ninja-rmm.svg",tile:{type:"customer-asset",label:"Ninja RMM",tileMapping:it.NinjaRMM}}),u.jsx(gn,{imagePath:"/home-icon-solarwinds.svg",tile:{type:"customer-asset",label:"Solarwinds",tileMapping:it.Solarwinds}}),u.jsx(gn,{imagePath:"/home-icon-v-cloud-director.svg",tile:{type:"customer-asset",label:"VMWare",tileMapping:it.VMWare}})]}),e!=="2:2"&&e!=="1"&&u.jsx("div",{className:"tile-group-seperator"}),u.jsxs("section",{className:"tile-group",children:[u.jsx("span",{className:"tile-group-title",children:"Security"}),u.jsx(gn,{imagePath:"/home-icon-fortianalyzer.svg",tile:{type:"customer-asset",label:"FortiAnalyzer",tileMapping:it.FortiAnalyzer},modalMessage:"In order to access the FortiAnalyzer, you must be connected to your company VPN."}),u.jsx(gn,{imagePath:"/home-icon-fortigate.svg",tile:{type:"customer-asset",label:"FortiGate",tileMapping:it.FortiGate},modalMessage:"In order to access the FortiGate, you must be connected to your company VPN."}),u.jsx(gn,{imagePath:"/home-icon-fortimail.svg",tile:{type:"customer-asset",label:"FortiMail",tileMapping:it.FortiMail}}),u.jsx(gn,{imagePath:"/home-icon-mimecast.svg",tile:{type:"customer-asset",label:"Mimecast",tileMapping:it.Mimecast}})]}),e!=="3:2"&&e!=="1"&&u.jsx("div",{className:"tile-group-seperator"}),u.jsxs("section",{className:"tile-group",children:[u.jsx("span",{className:"tile-group-title",children:"Cloud Admin"}),u.jsx(gn,{imagePath:"/home-icon-8x8.svg",tile:{type:"customer-asset",label:"8x8",tileMapping:it._8x8}}),u.jsx(gn,{imagePath:"/home-icon-azure.svg",tile:{type:"customer-asset",label:"Azure",tileMapping:it.Azure}}),u.jsx(gn,{imagePath:"/home-icon-microsoft.svg",tile:{type:"customer-asset",label:"M365 Admin Centre",tileMapping:it.M365AdminCentre}}),u.jsx(gn,{imagePath:"/home-icon-nms.svg",tile:{type:"customer-asset",label:"NMS",tileMapping:it.NMS}})]}),(e==="5:0"||e==="3:2")&&u.jsx("div",{className:"tile-group-seperator"}),u.jsxs("section",{className:"tile-group",children:[u.jsx("span",{className:"tile-group-title",children:"Licensing and Billing"}),u.jsx(gn,{imagePath:"/home-icon-abillity.svg",tile:{type:"customer-asset",label:"aBILLity",tileMapping:it.WebAbility}}),u.jsx(gn,{imagePath:"/home-icon-microsoft.svg",tile:{type:"customer-asset",label:"Microsoft Licensing",tileMapping:it.MicrosoftLicensing}})]})]})]})},goe=()=>{const e=on();return e.contactId?u.jsx(eR,{contactid:e.contactId}):u.jsx(pn,{singularEntityName:"Contact",type:"record-not-found"})};var hoe={};const oS=e=>{const n=ve(r=>r.isLocalMode)?`${hoe.PUBLIC_URL}/images/basic-background.jpg`:"/basic-background.jpg";return u.jsx("div",{className:"dialog-background",style:{backgroundImage:`url("${n}"), linear-gradient(30deg, #29aacd, #29aacd, #a6ce39)`},children:u.jsx("div",{className:"dialog-box-container",role:"dialog","data-dialog-title":e.title,children:u.jsxs("div",{className:"dialog-box",children:[e.showIcon&&u.jsx(Wn,{src:"bistech-logo.png",height:75,width:232,className:"dialog-logo"}),u.jsx("h3",{className:"dialog-heading",children:e.title}),u.jsx(rt,{children:e.content})]})})})},tR=()=>{const e=dn(),t=kn(),n=gl(),{trackExceptionWithBistechMetadata:r,trackEventWithBistechMetadata:o}=Nt(),[i,a]=g.useState({state:"idle"}),s=ve(l=>l.currentPage);g.useEffect(()=>{o==null||o({type:"Terms and Conditions - Prompted"})},[]);async function c(){a({state:"submitting"}),o==null||o({type:"Terms and Conditions - Accepted"});try{const{acceptedDate:l}=await t.setPortalTermsOfAgreementDate();if(e({type:"SetTermsAndConditionsAcceptanceDate",termsAndConditionsAcceptanceDate:l}),a({state:"completed"}),s.path===_e.TermsAndConditions.path)return n(_e.Home.path)}catch(l){a({state:"errored",error:l}),r==null||r(l)}}return u.jsx(oS,{showIcon:!0,title:"Terms and Conditions",content:u.jsxs(u.Fragment,{children:[u.jsxs("p",{className:"terms-and-conditions-text",children:["Use of the Bistech Self-Service Portal is governed by the Terms and Conditions found"," ",u.jsx("a",{target:"_blank",rel:"noreferrer",href:"https://www.bistech.co.uk/site-services/global-pages/Customer-Portal-Terms-and-Conditions",children:"here"}),"."]}),i.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsx("strong",{children:"Failed to accept Terms and Conditions"}),": ",i.error.message]}),u.jsx("div",{className:"terms-and-conditions-accept",children:u.jsxs("button",{className:"button accept-button",onClick:()=>c(),disabled:i.state==="submitting"||i.state==="completed",children:[i.state==="submitting"&&u.jsx(Wr,{className:"spin"})," Accept"]})}),u.jsx("div",{className:"terms-and-conditions-cancel",children:u.jsx("a",{className:"cancel-button",href:_e.SignOut.path,children:"Cancel"})})]})})},I3=()=>{const e=Ao();return u.jsx(oS,{showIcon:!1,title:"Dev Mode limitation",content:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:["The page ",u.jsx("strong",{children:e.pathname})," is not expected to work in Dev Mode."]}),u.jsx("p",{children:"If you wish to test this functionality, you will need to deploy to a full Dynamics 365 Portal."}),u.jsx("p",{children:u.jsx("button",{onClick:()=>window.history.back(),children:"Back"})})]})})},w1=e=>{const t=Ni().basePermissionLevel,n=Ni().portalCasePermissionLevel,r=Ni().portalOrderPermissionLevel,o=Ni().portalContactPermissionLevel,i=Ni().portalInvoicePermissionLevel,a=Ni().portalProjectPermissionLevel,{trackEventWithBistechMetadata:s}=Nt();return g.useEffect(()=>{s==null||s({type:"Access Denied"})},[]),u.jsxs(Lr,{title:"Forbidden",children:[u.jsx("p",{children:"Sorry, but you do not have permission to view this page."}),u.jsxs("p",{children:["If you believe you should have access to this page, contact your IT Administrator to review your"," ","'Permission Level'."]}),t&&u.jsxs("p",{children:[e.permissionLevelMessage&&e.permissionLevelMessage,u.jsx("br",{}),u.jsxs("p",{children:["Your current 'Base Permission Level' is"," ",u.jsx("strong",{children:Qe[t]})]}),u.jsxs("p",{children:["Your current 'Case Permission Level' is"," ",u.jsx("strong",{children:n?Ue[n]:"Unknown"})]}),u.jsxs("p",{children:["Your current 'Contact Permission Level' is"," ",u.jsx("strong",{children:o?dt[o]:"Unknown"}),"."]}),u.jsxs("p",{children:["Your current 'Order Permission Level' is"," ",u.jsx("strong",{children:r?$e[r]:"Unknown"})]}),u.jsxs("p",{children:["Your current 'Project Permission Level' is"," ",u.jsx("strong",{children:a?gt[a]:"Unknown"}),"."]}),u.jsxs("p",{children:["Your current 'Invoice Permission Level' is"," ",u.jsx("strong",{children:i?kt[i]:"Unknown"}),"."]})]})]})},nR=e=>{const t=e.date.toLocaleString("en-GB",{month:"short",year:"numeric"}),n=e.date.toLocaleTimeString("en-GB",{hour:"numeric",minute:"numeric"});return u.jsx("div",{className:"timeline-card-date",children:u.jsxs("div",{className:"timestamp",children:[u.jsx("span",{className:"date",children:e.date.getDate()}),u.jsx("span",{className:"month-year",children:t}),u.jsx("span",{className:"time",children:n})]})})},boe=e=>{const{accountName:t}=on(),n=u.jsxs(u.Fragment,{children:[u.jsx(Wn,{className:"bistech-icon",width:16,height:16,src:"favicon.png"}),"Bistech"]}),r=u.jsxs(u.Fragment,{children:[u.jsx(im,{className:"activity-icon"}),t]});return u.jsxs("div",{className:"timeline-card","data-activity-type":e.timelineRecord.type,"data-direction":e.timelineRecord.direction,children:[u.jsx(nR,{date:new Date(e.timelineRecord.date)}),u.jsxs("div",{className:"timeline-card-content",children:[u.jsxs("div",{className:"timeline-transaction-info",children:[e.timelineRecord.type==="MajorIncidentUpdate"&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"timeline-sender",title:"From: Bistech",children:n}),u.jsxs("div",{className:"timeline-activity-type",title:"Major Incident Update for your case",children:[u.jsx(Ane,{className:"activity-icon"}),"Major Incident Update"]})]}),e.timelineRecord.type==="Email"&&u.jsxs(u.Fragment,{children:[(()=>{switch(e.timelineRecord.direction){case"from-bistech":return u.jsx(u.Fragment,{children:u.jsxs("div",{className:"timeline-sender",title:`From: Bistech, To: ${t}`,children:[n," ",u.jsx(F0,{className:"direction-icon"})," ",r]})});case"from-customer":return u.jsxs("div",{className:"timeline-sender",title:`From: ${t}, To: Bistech`,children:[r," ",u.jsx(F0,{className:"direction-icon"})," ",n]});default:return u.jsx(u.Fragment,{})}})(),u.jsxs("div",{className:"timeline-activity-type",title:"Sent via Email",children:[u.jsx(ZF,{className:"activity-icon"}),"Email"]})]}),e.timelineRecord.type==="Comment"&&u.jsxs(u.Fragment,{children:[(()=>{switch(e.timelineRecord.direction){case"from-bistech":return u.jsx(u.Fragment,{children:u.jsxs("div",{className:"timeline-sender",title:`From: Bistech, To: ${t}`,children:[n," ",u.jsx(F0,{className:"direction-icon"})," ",r]})});case"from-customer":return u.jsxs("div",{className:"timeline-sender",title:`From: ${t}, To: Bistech`,children:[r," ",u.jsx(F0,{className:"direction-icon"})," ",n]});default:return u.jsx(u.Fragment,{})}})(),u.jsxs("div",{className:"timeline-activity-type",title:"Sent via Portal",children:[u.jsx(im,{className:"activity-icon"}),"Portal"]})]})]}),(e.timelineRecord.type==="MajorIncidentUpdate"||e.timelineRecord.type==="Email")&&u.jsx("div",{className:"timeline-card-header",children:u.jsx("div",{className:"timeline-subject",title:e.timelineRecord.subject,children:e.timelineRecord.subject})}),u.jsx("div",{className:"timeline-card-body",children:u.jsx("p",{children:e.timelineRecord.body})})]})]})},rR=e=>{var n;const t=g.useRef(null);return e.customValidity!==void 0&&((n=t.current)==null||n.setCustomValidity(e.customValidity(t.current.validity))),u.jsx("label",{"data-name":e.name,className:"field",children:u.jsx(rt,{children:u.jsx("textarea",{className:"comment-field",name:e.name,value:e.value,placeholder:"Add a comment.",rows:3,onChange:r=>e.onChange(r.target.value),ref:t,autoFocus:!0,readOnly:e.readOnly})})})};var iS=(e=>(e[e.Sender=1]="Sender",e[e.ToRecipient=2]="ToRecipient",e[e.CCRecipient=3]="CCRecipient",e[e.BCCRecipient=4]="BCCRecipient",e[e.RequiredAttendee=5]="RequiredAttendee",e[e.OptionalAttendee=6]="OptionalAttendee",e[e.Organizer=7]="Organizer",e[e.Regarding=8]="Regarding",e[e.Owner=9]="Owner",e[e.Resource=10]="Resource",e[e.Customer=11]="Customer",e))(iS||{});function yoe({entityInformation:e,setPortalComments:t,portalComments:n,disabled:r,entityId:o,trackPortalCommentSubmission:i,trackPortalCommentCreatedSuccessfully:a}){const s=on(),c=kn(),{trackExceptionWithBistechMetadata:l}=Nt();if(!s.contactId)throw new Error("Expected `userMetadata.contactId` to be populated");const[d,A]=g.useState(!1),[f,m]=g.useState({_regardingobjectid_value:o,adx_portalcommentdirectioncode:nt.Incoming,description:"",adx_portalcomment_activity_parties:[{participationtypemask:iS.Sender,_partyid_value:s.contactId}]}),[v,p]=g.useState({state:"idle"});async function y(){if(f.description===""){p({state:"errored",error:new Error("The comment can not be empty.")});return}p({state:"submitting"}),i==null||i(f);let b;try{b=await c.sendPortalComment(f,e.createMetadata,e.retrieveMetadata)}catch(h){p({state:"errored",error:h}),l==null||l(h);return}p({state:"completed"}),a==null||a(b),t([...n,b]),m({...f,description:""}),A(!1)}return d?u.jsxs("div",{className:"timeline-card",children:[u.jsx(nR,{date:new Date}),u.jsxs("div",{className:"timeline-card-content",children:[u.jsx("div",{className:"timeline-card-header",children:u.jsx("div",{className:"timeline-subject",children:"Add a Comment..."})}),u.jsxs("div",{className:"timeline-card-body",children:[u.jsx(rR,{name:"Comment",value:f.description||"",onChange:b=>m({...f,description:b})}),u.jsxs("div",{className:"timeline-submission",children:[v.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsx("strong",{children:"Failed to create Comment"}),": ",v.error.message]}),u.jsx("button",{className:"button cancel-comment default",type:"submit",onClick:()=>A(!d),children:"Cancel"}),u.jsxs("button",{className:"button submit-comment",type:"submit",onClick:()=>y(),disabled:v.state==="submitting",children:[v.state==="submitting"&&u.jsx(Wr,{className:"spin"}),"Submit"]})]})]})]})]}):u.jsx("div",{className:"timeline-comment-section",children:u.jsxs("button",{type:"button",className:"button timeline-comment-content",onClick:()=>A(!d),disabled:r,title:r?"A Portal Comment cannot be created as the record is read-only":void 0,children:[u.jsx("div",{className:"comment-image",children:u.jsx("div",{className:"comment-pencil",children:u.jsx(qF,{size:"1.3em"})})}),u.jsxs("div",{className:"comment-title",children:[u.jsx("div",{className:"comment-text",children:u.jsx("p",{children:"Add a Comment..."})}),u.jsx("div",{className:"chevron",children:u.jsx(HF,{size:"1.3em"})})]})]})})}const nb=e=>{const t=e.portalEmails.map(a=>({id:a.activityid,type:"Email",subject:a.subject,body:a.description,date:a.createdon,direction:a.bistech_direction?"from-bistech":"from-customer"})),n=e.portalComments.map(a=>({id:a.activityid,type:"Comment",body:a.description,date:a.createdon,direction:a.adx_portalcommentdirectioncode===nt.Outgoing?"from-bistech":"from-customer"})),r=e.majorIncidentUpdates.map(a=>({id:a.activityid,type:"MajorIncidentUpdate",subject:`In reference to: ${e.ticketNumber}`,body:a.description,date:a.createdon,direction:"from-bistech"})),i=t.concat(n).concat(r).slice().sort((a,s)=>new Date(s.date).getTime()-new Date(a.date).getTime());return u.jsxs("div",{className:"timeline-container",ref:e.divReference,children:[u.jsx("h2",{className:"heading",children:"Timeline"}),u.jsx(yoe,{entityInformation:{createMetadata:e.currentEntity.createMetadata,retrieveMetadata:e.currentEntity.retrieveMetadata},setPortalComments:e.setPortalComments,portalComments:e.portalComments,disabled:e.disabled,entityId:e.entityId,trackPortalCommentSubmission:e.trackPortalCommentSubmission,trackPortalCommentCreatedSuccessfully:e.trackPortalCommentCreatedSuccessfully}),i.map(a=>u.jsx(boe,{timelineRecord:a},a.id))]})};let woe=class{constructor(){this.participationtypemask=void 0,this._partyid_value=void 0}};const xoe={titleColumnName:null,columnNames:Object.keys(new woe),entityReferenceColumnMappings:[{columnName:"_partyid_value",navigationPropertyName:"partyid_contact",pluralEntitySetName:"contacts"}],expandProperties:[]};class koe{constructor(){this._regardingobjectid_value=void 0,this.adx_portalcommentdirectioncode=void 0,this.description=void 0,this.adx_portalcomment_activity_parties=void 0}}const rb=(e,t)=>({titleColumnName:"description",columnNames:Object.keys(new koe),entityReferenceColumnMappings:[{columnName:"_regardingobjectid_value",navigationPropertyName:e,pluralEntitySetName:t}],expandProperties:[{columnName:"adx_portalcomment_activity_parties",entityMetadata:xoe}]}),P3=rb("regardingobjectid_incident","incidents"),Soe=rb("regardingobjectid_bistech_networkorder","bistech_networkorders"),joe=rb("regardingobjectid_msdyn_project","msdyn_projects"),Noe=rb("regardingobjectid_bistech_projectlogs_adx_portalcomment","bistech_projectlogses"),Coe=e=>{const t=ve(T=>T.incidents),n=ve(T=>T.contacts),r=dn(),o=kn(),i=on(),{trackExceptionWithBistechMetadata:a,trackEventWithBistechMetadata:s}=Nt(),c=ve(T=>T.dirtyBannerSettings),[l,d]=g.useState({_primarycontactid_value:e.initialIncident._primarycontactid_value,bistech_customerreference:e.initialIncident.bistech_customerreference}),A=[{description:"Primary Contact field is not Populated.",isValid:()=>!!l._primarycontactid_value,customerMessage:"Please populate a 'Primary Contact'"}],[f,m]=g.useState(!1),[v,p]=g.useState(""),[y,b]=g.useState(!1),[h,w]=g.useState({state:"idle"}),[x,k]=g.useState(e.initialIncident.incident_adx_portalcomments??[]);if(!i.contactId)throw new Error(`Expected the user contactID to be populated but was ${i.contactId} `);if(g.useEffect(()=>{if(!(Object.keys(Xc(e.initialIncident,l)).length>0)){r({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0});return}r({type:"SetDirtyBannerSettings",dirtyBannerSettings:{type:"showSaveButton",saveFunction:S,submissionPrerequisites:A}})},[l,e.initialIncident]),g.useEffect(()=>{b(!0)},[]),!e.initialIncident||!l)return u.jsx(pn,{type:"record-not-found",singularEntityName:"Case"});async function S(){if(t.activeIncidents.loadingStatus!=="loaded")throw new Error("Expected `incidents` to have loaded before submission");w({state:"submitting"}),s==null||s({type:"Edit Case - Case update submitted",incidentId:e.initialIncident.incidentid});let T;try{T=await o.updateIncident(e.initialIncident.incidentid,Xc(e.initialIncident,l))}catch(F){w({state:"errored",error:F}),a==null||a(F);return}s==null||s({type:"Edit Case - Case updated successfully",incidentId:e.initialIncident.incidentid}),r({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loaded",data:t.activeIncidents.data.concat([T])}}),w({state:"completed"}),e.onSave(),r({type:"AddNotification",notification:{message:"Case updated successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}function N(){async function T(I){const E={_regardingobjectid_value:e.initialIncident.incidentid,adx_portalcommentdirectioncode:nt.Incoming,description:I,adx_portalcomment_activity_parties:[{participationtypemask:iS.Sender,_partyid_value:i.contactId}]};s==null||s({type:"Edit Case - Portal Comment submitted",incidentId:e.initialIncident.incidentid});const D=await o.sendPortalComment(E,P3,Zw);s==null||s({type:"Edit Case - Portal Comment created successfully",incidentId:e.initialIncident.incidentid,activityId:D.activityid}),k([...x,D])}const F={label:"Request Closure",hasModal:!0,appInsights:{submissionEventType:"Edit Case - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Case - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!1,modalButtonLabel:"Submit",modalContent:u.jsx(u.Fragment,{children:u.jsx(Dd,{name:"Reason",label:"Reason",onChange:p,value:v})}),modalTitle:"Request Closure",onClick:async()=>{const I=await o.executeRequestClosurePortalAction(e.initialIncident.incidentid);if(t.activeIncidents.loadingStatus!=="loaded")throw new Error(`Expected active Incidents to be loaded but was ${t.activeIncidents.loadingStatus}`);await T(`Case closure requested: ${v}`),r({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loaded",data:[...t.activeIncidents.data.filter(E=>E.incidentid!==I.incidentid),{...I,statuscode:de["Closure Requested"]}]}}),r({type:"AddNotification",notification:{message:"Case closure requested successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}}},H={label:"Request Reopen",hasModal:!0,appInsights:{submissionEventType:"Edit Case - Call-to-Action submitted",completedSuccessfullyEventType:"Edit Case - Call-to-Action completed successfully"},modalInfo:{isErrorModal:!1,modalButtonLabel:"Submit",modalContent:u.jsx(u.Fragment,{children:u.jsx(Dd,{name:"Reason",label:"Reason",onChange:p,value:v})}),modalTitle:"Request Closure",onClick:async()=>{const I=await o.executeRequestReopenPortalAction(e.initialIncident.incidentid);if(t.activeIncidents.loadingStatus!=="loaded")throw new Error(`Expected active Incidents to be loaded but was ${t.activeIncidents.loadingStatus}`);await T(`Case reopen requested: ${v}`),r({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loaded",data:[...t.activeIncidents.data.filter(E=>E.incidentid!==I.incidentid),{...I,statuscode:de["In Progress"]}]}}),r({type:"AddNotification",notification:{message:"Case reopened successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}}},R={label:"Confirm Closure",hasModal:!1,onClick:async()=>{const I=await o.executeRequestClosurePortalAction(e.initialIncident.incidentid);if(t.activeIncidents.loadingStatus!=="loaded")throw new Error(`Expected active Incidents to be loaded but was ${t.activeIncidents.loadingStatus}`);await T("Case closed by customer"),r({type:"SetClosedIncidents",closedIncidents:{loadingStatus:"loaded",data:[...t.closedIncidents.loadingStatus==="loaded"?t.closedIncidents.data.filter(E=>E.incidentid!==I.incidentid):[],{...I,statuscode:de.Closed}]}}),r({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loaded",data:t.activeIncidents.data.filter(E=>E.incidentid!==I.incidentid)}}),r({type:"AddNotification",notification:{message:"Case closed successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),window.scrollTo({top:0,behavior:"smooth"})}},O=e.initialIncident.statuscode===de.Open||e.initialIncident.statuscode===de["In Progress"]||e.initialIncident.statuscode===de["On Hold"]||e.initialIncident.statuscode===de["Pending Feedback"],_=e.initialIncident.statuscode===de.Resolved,Y=e.initialIncident.statuscode===de.Resolved;return{loadingStatus:"loaded",data:{title:de[e.initialIncident.statuscode],description:M(e.initialIncident.statuscode),icon:C(e.initialIncident.statuscode),buttons:[...O?[F]:[],..._?[H]:[],...Y?[R]:[]]}}}function C(T){switch(T){case de.Cancelled:return"case-status-cancelled.svg";case de.Closed:return"case-status-closed.svg";case de["Closure Requested"]:return"case-status-closure-requested.svg";case de["In Progress"]:return"case-status-in-progress.svg";case de.Merged:return"case-status-merged.svg";case de["On Hold"]:return"case-status-on-hold.svg";case de.Open:return"case-status-open.svg";case de["Pending Feedback"]:return"case-status-pending-customer-feedback.svg";case de.Resolved:return"case-status-resolved.svg"}}function M(T){switch(T){case de.Cancelled:return"Case cancelled";case de.Closed:return"Solution implemented";case de["Closure Requested"]:return"Validating closure";case de["In Progress"]:return"Implementing the solution";case de.Merged:return"Merged into another case";case de["On Hold"]:return"Case On Hold until later date";case de.Open:return"Triaging the Case";case de["Pending Feedback"]:return"Provide further information";case de.Resolved:return"Confirm closure to close the Case"}}const j=e.initialIncident.statuscode===de.Cancelled||e.initialIncident.statuscode===de.Closed||e.initialIncident.statuscode===de.Merged;return u.jsx(Lu,{title:e.initialIncident.title,tags:[{name:"case-reference",value:e.initialIncident.ticketnumber},{name:"case-type",value:e.initialIncident.casetypecode?Se[e.initialIncident.casetypecode]:null}],callToActionInformation:N(),setSubmissionState:w,children:u.jsx("form",{className:"edit-case","data-submit-attempted":f,onSubmit:T=>{T.preventDefault(),S()},onInvalid:()=>{y&&m(!0)},children:u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"main-content",children:[u.jsxs("div",{className:"general-container",children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsx(nc,{name:"_primarycontactid_value",label:"Primary Contact",selectedOptionId:l._primarycontactid_value,tooltip:u.jsx(u.Fragment,{children:"The nominated Contact to receive Case related correspondence."}),pluralOptionsName:"Active Contacts",options:n.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loaded",value:n.data.map(T=>({id:T.contactid,primaryText:[T.firstname,T.lastname].filter(F=>F).join(" "),secondaryText:T.emailaddress1??"",isPickable:T.statecode===Be.Active,contact:T}))},setSelectedOptionId:T=>d({...l,_primarycontactid_value:T}),selectedOptionCardInfo:T=>({icon:u.jsx(im,{}),primaryText:T.primaryText,secondaryText:T.secondaryText,additionalFields:[{name:"Job Title",value:T.contact.jobtitle},{name:"Telephone",value:T.contact.telephone1||""},{name:"Mobile",value:T.contact.mobilephone||""},{name:"Permission Level",value:Qe[T.contact.bistech_permissionlevel]}]}),additionalInputProps:{placeholder:"Select a Contact",disabled:j}}),u.jsx(bt,{label:"Your Reference",name:"bistech_customerreference",tooltip:u.jsx(u.Fragment,{children:"Your Case Reference (if needed) for our records."}),value:l.bistech_customerreference||"",onChange:T=>d({...l,bistech_customerreference:T}),additionalInputProps:{required:!1,disabled:j}}),u.jsx(bt,{label:"Priority",name:"prioritycode",value:e.initialIncident.prioritycode?Ve[e.initialIncident.prioritycode]:"",onChange:()=>{},additionalInputProps:{required:!1,disabled:!0}}),u.jsx(Dd,{label:"Description",name:"description",tooltip:u.jsx(u.Fragment,{children:"Please provide a clear explanation of the issue / requirement."}),value:e.initialIncident.description||"",onChange:()=>{},additionalTextAreaProps:{maxLength:2e3,disabled:!0}})]}),u.jsx(nb,{currentEntity:{createMetadata:P3,retrieveMetadata:Zw},ticketNumber:e.initialIncident.ticketnumber,portalComments:x,portalEmails:e.initialIncident.incident_bistech_portalemails??[],majorIncidentUpdates:e.initialIncident.incident_bistech_majorincidentupdates??[],setPortalComments:k,disabled:j,entityId:e.initialIncident.incidentid,trackPortalCommentSubmission:()=>s==null?void 0:s({type:"Edit Case - Portal Comment submitted",incidentId:e.initialIncident.incidentid}),trackPortalCommentCreatedSuccessfully:T=>s==null?void 0:s({type:"Edit Case - Portal Comment created successfully",incidentId:e.initialIncident.incidentid,activityId:T.activityid})})]}),h.state==="errored"&&u.jsxs("p",{className:"error",children:[u.jsx("strong",{children:"Failed to update Case"}),": ",h.error.message]}),u.jsxs("fieldset",{className:"buttons",children:[u.jsxs("button",{className:"button",type:"submit",disabled:!c||h.state==="submitting"||j,title:(()=>{if(!c)return"No Changes to Save.";if(j)return`Case is read-only as it is ${de[e.initialIncident.statuscode]}`})(),children:[h.state==="submitting"&&u.jsx(Wr,{className:"spin"}),"Save"]}),u.jsx(jt,{className:"button default",to:_e.Cases.path,children:"Cancel"})]})]})})})},Toe=e=>{const t=dn(),n=on(),r=kn(),o=ve(A=>A.incidents.activeIncidents),i=ve(A=>A.incidents.closedIncidents),[a,s]=g.useState(1),[c,l]=g.useState({loadingStatus:"not-started"});g.useEffect(()=>{l({loadingStatus:"not-started"})},[o,i,a]);const d=g.useMemo(()=>(c.loadingStatus==="not-started"&&n.contactId&&(l({loadingStatus:"loading"}),r.retrieveIncident(e.incidentid).then(A=>l({loadingStatus:"loaded",data:A})).catch(A=>{t({type:"AddLatestError",error:A}),l({loadingStatus:"errored",error:A})})),c.loadingStatus==="loaded"?{loadingStatus:"loaded",data:c.data}:o.loadingStatus!=="loaded"?{loadingStatus:"loading"}:{loadingStatus:"loading"}),[o,i,c,r,e.incidentid,n.contactId,t]);return c.loadingStatus==="errored"?u.jsx(pn,{type:"record-not-found",singularEntityName:"Case"}):d.loadingStatus!=="loaded"?u.jsx(bl,{}):u.jsx(Coe,{initialIncident:d.data,onSave:()=>s(a+1)})},Ioe=()=>{const[e]=Ks(),n=e.get("caseId");return n?u.jsx(Toe,{incidentid:n}):u.jsx(pn,{singularEntityName:"Case",type:"record-not-found"})},Poe=()=>[{id:0,columnHeader:"Order ID",fieldName:"ordernumber",isSortable:!0},{id:1,columnHeader:"Date Signed",fieldName:"bistech_orderform",isSortable:!0},{id:2,columnHeader:"Your Reference",fieldName:"bistech_customerreference",isSortable:!0},{id:3,columnHeader:"Contact",fieldName:"_bistech_contact_value",isSortable:!0},{id:4,columnHeader:"Status",fieldName:"statuscode",isSortable:!0}],Doe=[qe["In Progress"],qe.Signed,qe["On Hold"],qe.Processing,qe["Processing Complete"],qe["Project Onboarding"]],D3="Awaiting authorised signatory to progress",M3="Our team are working on your order",R3="Your order is complete",Moe=(e,t,n)=>[{labelElement:u.jsx(u.Fragment,{children:"Status"}),attribute:"Status",tooltipElement:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"Pending Signature"})," - ",D3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"In Progress"})," - ",M3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Completed"})," - ",R3]})]}),tiles:[{id:"pending-signature",setSelectedTileIds:n,selectedTileIds:t,filter:r=>qe.Pending===r.statuscode,label:u.jsx(u.Fragment,{children:"Pending Signature"}),value:He(e.pendingSignature,r=>r.length),imagePath:"/order-management-status-pending-signature.svg",onHoverMessage:D3},{id:"in-progress",setSelectedTileIds:n,selectedTileIds:t,filter:r=>Doe.includes(r.statuscode),label:u.jsx(u.Fragment,{children:"In Progress"}),value:He(e.inProgress,r=>r.length),imagePath:"/order-management-status-in-progress.svg",onHoverMessage:M3},{id:"completed",setSelectedTileIds:n,selectedTileIds:t,filter:r=>Jo.Fulfilled===r.statecode,label:u.jsx(u.Fragment,{children:"Completed"}),value:He(e.completed,r=>r.length),imagePath:"/order-management-status-completed.svg",onHoverMessage:R3}]}];function Gc(e,t,n){return e.loadingStatus!=="loaded"?n:t(e.data)}const Roe=()=>{var x;const e=on(),t=ve(k=>k.orders),n=ve(k=>k.contacts),[r,o]=g.useState("bistech_orderform"),[i,a]=g.useState(!1),[s,c]=g.useState(""),[l,d]=g.useState([]);if(!e.accountId)throw new Error("Expected `userMetadata.accountId` to be populated");const A=Poe(),f=k=>{var S;return(S=A.find(N=>N.fieldName===k))==null?void 0:S.columnHeader},m=k=>i?{loadingStatus:"loaded",data:k}:{loadingStatus:"loaded",data:k.reverse()},v=ht.useMemo(()=>{if(t.loadingStatus!=="loaded")return{loadingStatus:t.loadingStatus};const k=t.data.slice().filter(S=>S.order_details.length||S.bistech_orderform);switch(r){case"_bistech_contact_value":return m(k.sort((S,N)=>{if(n.loadingStatus!=="loaded")return 0;const C=n.data.find(j=>j.contactid===S._bistech_contact_value),M=n.data.find(j=>j.contactid===N._bistech_contact_value);return`${C==null?void 0:C.firstname} ${C==null?void 0:C.lastname}`.localeCompare(`${M==null?void 0:M.firstname} ${M==null?void 0:M.lastname}`)??0}));case"bistech_orderform":return m(k.sort((S,N)=>{var C,M;return(((C=S.bistech_orderform)==null?void 0:C.bistech_datesigned)||"Z").localeCompare(((M=N.bistech_orderform)==null?void 0:M.bistech_datesigned)||"Z")}));default:return m(k.sort((S,N)=>{var C,M;return(((C=S[r])==null?void 0:C.toString())??"").localeCompare(((M=N[r])==null?void 0:M.toString())??"")}))}},[t,r,i]),p={pendingSignature:He(v,k=>k.filter(S=>S.statuscode===qe.Pending)),inProgress:He(v,k=>k.filter(S=>[qe["In Progress"],qe.Signed,qe["On Hold"],qe.Processing,qe["Processing Complete"],qe["Project Onboarding"]].includes(S.statuscode))),completed:He(v,k=>k.filter(S=>[Jo.Fulfilled].includes(S.statecode)))},y=Moe(p,l,d),b=y.flatMap(k=>k.tiles.filter(S=>l.length>0?l.includes(S.id):!0).flatMap(S=>S.filter)),h=He(v,k=>k.filter(S=>Object.entries(S).some(([N,C])=>{let M=C==null?void 0:C.toString();return M==null?void 0:M.toString().toLowerCase().includes(s.toLowerCase())})).filter(S=>b.some(N=>N(S)))),w=(x=y.find(k=>k.attribute==="Status"))==null?void 0:x.tiles;return u.jsxs(Lr,{title:"Orders",children:[u.jsx(Fu,{setSearchBarContent:c,filterGroups:y,placeholderText:"Search for Order",getSummarySections:()=>[],filtersToDisplay:[]}),h.loadingStatus!=="loaded"?u.jsx(vi,{}):h.data.length===0?u.jsx("div",{className:"no-results-message",children:"There are no records to display."}):u.jsxs("table",{className:"entitylist orders-table",children:[u.jsx("thead",{children:u.jsx("tr",{children:A.map(k=>u.jsx(Ou,{columnHeader:k.columnHeader,fieldName:k.fieldName,headerWidth:k.cellWidth,sortingProps:{sortingEnabled:k.isSortable,sortedColumn:r,setSortedColumn:()=>o(k.fieldName),isSortedAscending:i,setIsSortedAscending:a}},k.id))})}),u.jsx("tbody",{children:h.data.map(k=>{var C,M;const S=((C=w==null?void 0:w.find(j=>j.filter(k)))==null?void 0:C.label)??qe[k.statuscode],N={[qe.Pending]:"Pending Signature",[qe.Signed]:"Signed",[qe["On Hold"]]:"On Hold",[qe.Processing]:"Processing",[qe["Processing Complete"]]:"Processing",[qe["Project Onboarding"]]:"Project Onboarding"};return u.jsxs("tr",{"data-id":k.salesorderid,"data-entity":"salesorder",children:[u.jsx("td",{className:"order-id",title:k.ordernumber,"data-heading-title":f("salesorderid"),children:u.jsx(jt,{to:`edit?orderId=${k.salesorderid}`,children:k.ordernumber},k.salesorderid)}),u.jsx("td",{className:"order-signed","data-heading-title":f("bistech_orderform"),children:(M=k.bistech_orderform)!=null&&M.bistech_datesigned?Pe.toDateOnlyString(k.bistech_orderform.bistech_datesigned):""}),u.jsx("td",{className:"order-customer-reference","data-heading-title":f("bistech_customerreference"),children:k.bistech_customerreference}),u.jsx("td",{className:"order-contact","data-heading-title":f("_bistech_contact_value"),children:(()=>{const j=Gc(n,T=>T.find(F=>F.contactid===k._bistech_contact_value));return j?[j.firstname,j.lastname].filter(T=>T).join(" "):null})()}),u.jsx("td",{className:"order-status","data-heading-title":f("statuscode"),children:k.statuscode in N?u.jsx(u.Fragment,{children:N[k.statuscode]}):S})]},k.salesorderid)})})]})]})};class vd{static toMoneyString(t){return t===null?"":new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP"}).format(t)}static getPaymentMethodCodeString(t){switch(t){case"CHEQUE":return"Cheque";case"CC":return"Credit Card";case"BACS":return"BACS";case"PAYPAL":return"PayPal";case"MANUAL":return"Manual Payment";case"WORLDPAY":return"WorldPay";case"DD":return"Direct Debit";default:return null}}}function zoe({setOpenFilterMenuId:e,setColumnFilters:t,columnFilters:n,column:r,flattenedItems:o,tableName:i}){const{trackEventWithBistechMetadata:a}=Nt(),s=n.find(S=>S.columnName===r.columnId),[c,l]=g.useState(s?s.operator:"Equals"),[d,A]=g.useState(s?s.value:""),[f,m]=g.useState(!1);g.useEffect(()=>{const S=N=>{const C=document.querySelector("[role='listbox']");C&&!C.contains(N.target)&&m(!1)};return document.addEventListener("click",S),()=>{document.removeEventListener("click",S)}},[]);const v=S=>typeof S=="string"?["Equals","Not Equals","Contains","Does Not Contain","Starts With","Ends With"]:typeof S=="number"?["Equals","Not Equals","Greater Than","Less Than","Greater Than Or Equal To","Less Than Or Equal To"]:typeof S=="boolean"?["Equals","Not Equals"]:S instanceof Date?["Equals","Not Equals","After","Before","On Or After","On Or Before"]:[],p=()=>{const S=r.columnId;return(C=>o.sort((M,j)=>{var H,R;if(r.compare.name!=="defaultCompare")return r.compare(M,j);const T=((H=M==null?void 0:M[C])==null?void 0:H.toString())??"",F=((R=j==null?void 0:j[C])==null?void 0:R.toString())??"";return T.localeCompare(F)}).map(M=>M[C]).filter(M=>M!=null&&M!=="").distinct().map(M=>u.jsx($a,{value:M,children:M},M)))(S)},y=()=>{if(d==="")return;const S=n.filter(N=>N.columnName!==r.columnId);S.push({columnName:r.columnId,operator:c,value:d}),t(S),e(void 0),a==null||a({type:"Filter Menu - Applied",tableName:i,columnName:`${r.columnId}`,operator:c,value:`${d}`})},b=()=>u.jsx(em,{defaultValue:x,defaultSelectedOptions:[x],onOptionSelect:(S,N)=>{l(N.optionValue)},children:w.map(S=>u.jsx($a,{value:S,children:S},S))}),h=()=>{const S=["Equals","Not Equals"].includes(c),N=C=>{C.stopPropagation(),C.preventDefault(),S&&m(!f)};return u.jsx(em,{listbox:{style:{maxHeight:"300px",overflowY:"auto"}},value:d,onOptionSelect:(C,M)=>{A(M.optionValue),m(!1)},onChange:C=>{A(C.target.value)},expandIcon:S?u.jsx(Yf,{onClick:N}):u.jsx(u.Fragment,{}),freeform:!0,defaultValue:d,defaultSelectedOptions:[d],open:f&&S,onClick:C=>{C.stopPropagation(),C.preventDefault(),S&&m(!f)},children:k})},w=v(o[0][r.columnId]),x=w.includes(c)?c:w[0],k=p();return u.jsx(Zk,{style:{height:"fit-content"},children:u.jsxs("div",{id:"filter-menu",style:{display:"flex",flexDirection:"column",padding:"1em",gap:"1em"},children:[u.jsxs("div",{style:{display:"flex",flexDirection:"row",alignItems:"center"},children:[u.jsx(rn,{weight:"semibold",children:"Filter By"}),u.jsx("div",{style:{flexGrow:1}}),u.jsx(ri,{appearance:"subtle",icon:u.jsx(Ik,{}),onClick:()=>e(void 0)})]}),b(),h(),u.jsxs("div",{style:{display:"flex",flexDirection:"row",justifyContent:"flex-end",gap:"1em"},children:[u.jsx(ri,{appearance:"primary",onClick:()=>y(),disabled:(()=>{const S=!c||!d,N=n.find(M=>M.columnName===r.columnId),C=N&&N.operator===c&&N.value===d;return S||C})(),children:"Apply"}),u.jsx(ri,{onClick:()=>{t(n.filter(S=>S.columnName!==r.columnId)),e(void 0)},disabled:!s,children:"Clear"})]})]})})}const H0="fui-Virtualizer",Z0={before:`${H0}__before`,beforeContainer:`${H0}__beforeContainer`,after:`${H0}__after`,afterContainer:`${H0}__afterContainer`},Eoe=$({base:{mc9l5x:"ftgm304",Bkecrkj:"f1aehjj5"},relative:{qhf8xq:"f10pi13n"},horizontal:{sshi5w:"fan4evk"},vertical:{Bf4jedk:"f11qra4b"}},{d:[".ftgm304{display:block;}",".f1aehjj5{pointer-events:none;}",".f10pi13n{position:relative;}",".fan4evk{min-height:100%;}",".f11qra4b{min-width:100%;}"]}),Boe=e=>{"use no memo";const t=Eoe(),{reversed:n,axis:r,beforeBufferHeight:o,afterBufferHeight:i,bufferSize:a}=e,s=r==="horizontal";e.before.className=G(Z0.before,t.base,t.relative,s?t.horizontal:t.vertical,e.before.className),e.after.className=G(Z0.after,t.base,t.relative,s?t.horizontal:t.vertical,e.after.className),e.beforeContainer.className=G(Z0.beforeContainer,t.base,s?t.horizontal:t.vertical,e.beforeContainer.className),e.afterContainer.className=G(Z0.afterContainer,t.base,s?t.horizontal:t.vertical,e.afterContainer.className);const c=o+"px",l=i+"px",d=o+a+"px",A=i+a+"px",f=a+"px",m={...!n&&!s&&{marginBottom:`-${f}`},...n&&!s&&{marginTop:`-${f}`},...!n&&s&&{marginRight:`-${f}`},...n&&s&&{marginLeft:`-${f}`}},v={...!n&&!s&&{marginTop:`-${f}`},...n&&!s&&{marginBottom:`-${f}`},...!n&&s&&{marginLeft:`-${f}`},...n&&s&&{marginRight:`-${f}`}};return e.before.style={height:s?"100%":d,width:s?d:"100%",...m,...e.before.style},e.beforeContainer.style={height:s?"auto":c,width:s?c:"auto",...e.beforeContainer.style},e.after.style={height:s?"100%":A,width:s?A:"100%",...v,...e.after.style},e.afterContainer.style={height:s?"auto":l,width:s?l:"auto",...e.afterContainer.style},e},{useRef:Foe,useEffect:z3}=qd,Ooe=(e,t,n)=>{"use no memo";const r=Foe(),{targetDocument:o}=Ge(),i=o==null?void 0:o.defaultView;return z3(()=>{i&&(r.current=new i.MutationObserver(t))},[t,i]),z3(()=>{if(e){var a;(a=r.current)===null||a===void 0||a.observe(e,n)}return()=>{var s;(s=r.current)===null||s===void 0||s.disconnect()}},[e,n]),{observer:r}},{useCallback:E3,useState:B3,useRef:F3}=qd,V0=(e,t,n)=>{if(t&&n)if(n.getComputedStyle(t).direction==="rtl"){let o=e;const i=e.split(" ");return i.length===4&&(o=`${i[0]} ${i[3]} ${i[2]} ${i[1]}`),o}else return e;return e},Loe=(e,t)=>{"use no memo";const n=F3(),[r,o]=B3(),{targetDocument:i}=Ge(),a=i==null?void 0:i.defaultView;var s;const[c,l]=B3(t&&{...t,rootMargin:V0((s=t.rootMargin)!==null&&s!==void 0?s:"0px",t.root,a)});var d;const A=F3((d=t==null?void 0:t.rootMargin)!==null&&d!==void 0?d:"0px"),f=E3(v=>{for(const p of v)p.type==="attributes"&&p.attributeName==="dir"&&(t!=null&&t.root)&&p.target.contains(t==null?void 0:t.root)&&l({...c,rootMargin:V0(A.current,c==null?void 0:c.root,a)})},[A,c,t==null?void 0:t.root,a]);Ooe(i,f,{attributes:!0,subtree:!0,attributeFilter:["dir"]}),nr(()=>{if(a)return n.current=new a.IntersectionObserver(e,{...c,rootMargin:V0(A.current,c==null?void 0:c.root,a)}),n.current&&r&&r.length>0&&r.forEach(v=>{var p;(p=n.current)===null||p===void 0||p.observe(v)}),()=>{n.current&&n.current.disconnect()}},[r,c,e,a]);const m=E3(v=>{var p;A.current=(p=v==null?void 0:v.rootMargin)!==null&&p!==void 0?p:"0px",l({...v,rootMargin:V0(A.current,v==null?void 0:v.root,a)})},[A,l,a]);return{setObserverList:o,setObserverInit:m,observer:n}},oR=g.createContext(void 0);oR.Provider;const Woe=()=>g.useContext(oR),Uoe=e=>{const t=Woe(),[n,r]=g.useState(-1),o=g.useMemo(()=>{var a;return(a=e??t)!==null&&a!==void 0?a:{contextIndex:n,setContextIndex:r}},[n,e,t]);return g.useMemo(()=>({contextIndex:o.contextIndex,setContextIndex:o.setContextIndex}),[o])};function Hoe(e){"use no memo";const{itemSize:t,numItems:n,virtualizerLength:r,children:o,getItemSize:i,bufferItems:a=Math.round(r/4),bufferSize:s=Math.floor(a/2)*t,scrollViewRef:c,axis:l="vertical",reversed:d=!1,virtualizerContext:A,onRenderedFlaggedIndex:f,imperativeVirtualizerRef:m}=e,v=Uoe(A),p=g.useRef(v.contextIndex);p.current!==v.contextIndex&&(p.current=v.contextIndex);const y=g.useRef(null),b=v.contextIndex,h=v.setContextIndex,w=g.useRef(null),x=g.useRef(null),k=g.useRef(new Array(i?n:0)),S=g.useRef(new Array(i?n:0)),N=g.useRef(new Array(r)),C=g.useReducer(()=>({}),{})[1],M=l==="horizontal",j=()=>{if(i){n!==k.current.length&&(k.current=new Array(n)),n!==S.current.length&&(S.current=new Array(n));for(let oe=0;oe{O.current++,O.current>=10&&F(!0),R(),H(()=>{F(!1),O.current=0},100)},[R,H]);g.useEffect(()=>{_()},[b,_]);const Y=oe=>{P(oe),K(oe),p.current=oe,h(oe)},{setObserverList:I}=Loe((oe,xe)=>{if(r>n){b!==0&&Y(0);return}let Z=0,V=a;const X=oe.length===1?oe[0]:oe.sort((Ie,je)=>je.time-Ie.time).find(Ie=>Ie.intersectionRatio>0);if(!X)return;X.target===x.current?(V=r-a,Z=d?q():z()-q(),M?d?Z-=Math.abs(X.boundingClientRect.right):X.boundingClientRect.left<0&&(Z-=X.boundingClientRect.left):d?Z-=Math.abs(X.boundingClientRect.bottom):X.boundingClientRect.top<0&&(Z-=X.boundingClientRect.top)):X.target===w.current&&(Z=d?z()-L():L(),M?d?X.boundingClientRect.left<0&&(Z-=X.boundingClientRect.left):Z-=Math.abs(X.boundingClientRect.right):d?X.boundingClientRect.top<0&&(Z-=X.boundingClientRect.top):Z-=Math.abs(X.boundingClientRect.bottom)),d&&(Z=Math.max(z()-Math.abs(Z),0));const J=W(Z),ce=Math.max(J-V,0),le=Math.max(n-r,0),pe=Math.min(Math.max(ce,0),le);b!==pe&&zs.flushSync(()=>{Y(pe)})},{root:c?c==null?void 0:c.current:null,rootMargin:"0px",threshold:0}),E=(oe,xe,Z)=>{if(xe>Z)return b;const V=Math.floor((xe+Z)/2),X=Math.max(V-1,0),J=Math.min(V+1,S.current.length-1),ce=S.current[V],le=S.current[J],pe=S.current[X];return oe<=le&&oe>=pe?V:ce>oe?E(oe,xe,V-1):E(oe,V+1,Z)},D=oe=>oe===0||S.current.length===0||oe<=S.current[0]?0:oe>=S.current[S.current.length-1]?S.current.length-1:E(oe,0,S.current.length-1),W=oe=>i?D(oe):Math.round(oe/t),z=g.useCallback(()=>i?S.current[n-1]:t*n,[i,t,n]),L=g.useCallback(()=>{const oe=Math.min(b,n-1);return i?oe<=0?0:S.current[oe-1]:oe*t},[b,i,t,n]),q=g.useCallback(()=>{if(n===0||b+r>=n)return 0;const oe=Math.min(b+r,n);return i?S.current[n-1]-S.current[oe-1]:(n-oe)*t},[b,i,t,n,r]),P=g.useCallback(oe=>{if(n===0)return;N.current=new Array(r);const xe=Math.max(oe,0),Z=Math.min(xe+r,n);for(let V=xe;V{if(!oe||w.current===oe)return;w.current=oe;const xe=[];xe.push(w.current),x.current&&xe.push(x.current),I(xe)},[I]),B=g.useCallback(oe=>{if(!oe||x.current===oe)return;x.current=oe;const xe=[];w.current&&xe.push(w.current),xe.push(x.current),I(xe)},[I]),K=oe=>{if(!i)return;const xe=Math.min(oe+r,n),Z=Math.max(oe,0);let V=!1;for(let X=Z;X0?S.current[X-1]:0;S.current[X]=J+k.current[X]}},te=g.useRef(!1),Ae=()=>{te.current===!1&&(te.current=!0,j())};g.useImperativeHandle(m,()=>({progressiveSizes:S,nodeSizes:k,setFlaggedIndex:oe=>y.current=oe,currentIndex:p}),[S,k]),g.useEffect(()=>{b<0&&Y(0)},[]),g.useEffect(()=>{b>=0&&(P(b),C())},[o,P]),g.useEffect(()=>{j()},[i]),g.useEffect(()=>{!f||y.current===null||b<=y.current&&b+r>=y.current&&(f(y.current),y.current=null)},[b,f,r]),Ae(),i&&(n!==k.current.length||n!==S.current.length)&&j();const ae=Math.min(r,n);N.current.length!==ae&&b+N.current.length=0;return{components:{before:"div",after:"div",beforeContainer:"div",afterContainer:"div"},virtualizedChildren:N.current,before:be(e.before,{defaultProps:{ref:U,role:"none"},elementType:"div"}),after:be(e.after,{defaultProps:{ref:B,role:"none"},elementType:"div"}),beforeContainer:be(e.beforeContainer,{defaultProps:{role:"none"},elementType:"div"}),afterContainer:be(e.afterContainer,{defaultProps:{role:"none"},elementType:"div"}),beforeBufferHeight:Ne?L():0,afterBufferHeight:Ne?q():0,totalVirtualizerHeight:Ne?z():r*t,virtualizerStartIndex:b,axis:l,bufferSize:s,reversed:d,childSizes:k,childProgressiveSizes:S}}const Zoe=e=>ut(g.Fragment,{children:[Q(e.beforeContainer,{children:Q(e.before,{})}),e.virtualizedChildren,Q(e.afterContainer,{children:Q(e.after,{})})]}),iR=e=>{const t=Hoe(e);return Boe(t),Zoe(t)};iR.displayName="Virtualizer";function Voe(e){let t;return()=>{t||(t=!0,queueMicrotask(()=>{t=!1,e()}))}}function O3(e,t){var n;return!(e==null||(n=e.defaultView)===null||n===void 0)&&n.ResizeObserver?new e.defaultView.ResizeObserver(t):null}const qoe=e=>{"use no memo";const{targetDocument:t}=Ge(),n=g.useRef(null),r=Voe((s,c)=>{e(s,c,n)}),[o,i]=g.useState(()=>O3(t,r));return g.useEffect(()=>{n.current=null,o==null||o.disconnect(),i(()=>O3(t,r))},[e,t]),g.useEffect(()=>()=>{n.current=null,o==null||o.disconnect()},[]),g.useCallback(s=>{n.current!==s&&(n.current&&(o==null||o.unobserve(n.current)),n.current=s,n.current&&(o==null||o.observe(n.current)))},[o])},_oe=e=>{const{defaultItemSize:t,direction:n="vertical"}=e,[r,o]=g.useState({virtualizerLength:0,bufferSize:0,bufferItems:0}),{virtualizerLength:i,bufferItems:a,bufferSize:s}=r,c=g.useCallback((d,A,f)=>{if(!(f!=null&&f.current))return;const m=n==="vertical"?f==null?void 0:f.current.getBoundingClientRect().height:f==null?void 0:f.current.getBoundingClientRect().width,v=Math.ceil(m/t+1),p=Math.max(Math.floor(v/4),2),y=Math.max(Math.floor(v/8*t),1),b=v+p*2+1;o({virtualizerLength:b,bufferItems:p,bufferSize:y})},[t,n]),l=qoe(c);return{virtualizerLength:i,bufferItems:a,bufferSize:s,scrollRef:l}},Xoe=Cu({projectsGrid:{height:"100%"},gridBody:{height:"95%",overflowY:"auto","@media (max-width: 767px)":{height:"100%"}},tableRow:{"&:hover":{cursor:"default"},"@media (max-width: 767px)":{display:"flex",flexDirection:"column",width:"23em !important",marginTop:"0 !important"},"@media (max-width: 1023px)":{display:"flex",flexDirection:"column",width:"100% !important",maxWidth:"100%",justifyContent:"center",height:"fit-content",gap:"1em",paddingTop:"1em"}},tableCell:{"@media (max-width: 1024px)":{display:"flex !important",flexDirection:"column",width:"100% !important",maxWidth:"100% !important",justifyContent:"center",height:"fit-content"}},filterIconContainer:{display:"flex",flexDirection:"column",justifyContent:"center",height:"100%",cursor:"pointer",marginRight:"0.8em"}}),L3=44;function Goe({tableName:e,items:t,columns:n,selectionMode:r,onSelectionChanged:o,initialRowSelection:i,columnSizingOptions:a}){const s=Xoe(),[c,l]=g.useState(new Set(i??[])),[d,A]=g.useState([]),[f,m]=g.useState(),v=r!==void 0,p=mi(),y=p<768,b=p<1024,{virtualizerLength:h,bufferItems:w,bufferSize:x,scrollRef:k}=_oe({defaultItemSize:L3});function S(D){return D.flatMap(W=>[W])}const{getRows:N,selection:{allRowsSelected:C,someRowsSelected:M,toggleAllRows:j,toggleRow:T,isRowSelected:F},columnSizing_unstable:H,tableRef:R}=U6({columns:n,items:S(t),getRowId:D=>(D==null?void 0:D.key)??""},[...v?[B6({selectionMode:r,selectedItems:c,onSelectionChange:(D,W)=>{l(W.selectedItems),o==null||o(W.selectedItems)}})]:[],W6({columnSizingOptions:a})]),O=N(D=>{const W=F(D.rowId);return{...D,onClick:z=>T(z,D.rowId),onKeyDown:z=>{z.key===" "&&(z.preventDefault(),T(z,D.rowId))},selected:v?W:!1,appearance:W?"brand":"none"}}),_=ht.useCallback(D=>{D.key===" "&&(j(D),D.preventDefault())},[j]),Y=(D,W)=>W.every(z=>{const L=D[z.columnName],q=(P,U,B)=>P&&B(P.toString().toLowerCase(),U.toLowerCase());switch(z.operator){case"Equals":return L===z.value;case"Not Equals":return L!==z.value;case"Contains":return q(L,z.value,(P,U)=>P.includes(U));case"Does Not Contain":return!q(L,z.value,(P,U)=>P.includes(U));case"Starts With":return q(L,z.value,(P,U)=>P.startsWith(U));case"Ends With":return q(L,z.value,(P,U)=>P.endsWith(U));case"Greater Than":return L>z.value;case"Less Than":return L=z.value;case"Less Than Or Equal To":return L<=z.value;case"After":return L?Pe.newDateFromDateOnly(L)>z.value:!1;case"Before":return L?Pe.newDateFromDateOnly(L)=z.value:!1;case"On Or Before":return L?Pe.newDateFromDateOnly(L)<=z.value:!1;default:return!0}}),I=D=>D.columnId==="actions"?u.jsx(u.Fragment,{}):u.jsx(zoe,{tableName:e,setOpenFilterMenuId:m,setColumnFilters:A,columnFilters:d,column:D,flattenedItems:S(t)}),E=D=>{const{item:W,selected:z,onClick:L,onKeyDown:q,appearance:P}=O.find(U=>U.rowId===D.key);return u.jsx(eg,{itemType:"leaf",children:u.jsxs(om,{onClick:L,onKeyDown:q,"aria-selected":z,appearance:P,className:s.tableRow,"data-test-id":"table-row",children:[v&&u.jsx(Pd,{type:r==="multiselect"?"checkbox":"radio",checked:z,checkboxIndicator:{"aria-label":"Select row"},hidden:r===void 0}),n.filter(U=>!(b&&U.columnId==="actions"&&U.renderCell(W)===void 0)).map(U=>u.jsx(Gk,{...H.getTableCellProps(U.columnId),className:s.tableCell,children:b?u.jsxs("div",{style:{marginBottom:"4px",width:"100%"},children:[U.renderHeaderCell(),U.renderCell(W)]}):U.renderCell(W)},U.columnId))]},D.key)},D.key)};return u.jsxs(Kk,{ref:R,...H.getTableProps(),noNativeElements:!y,className:s.projectsGrid,"aria-labelledby":void 0,size:"medium",sortable:!0,children:[u.jsx(Jk,{children:u.jsxs(om,{children:[v&&u.jsx(Pd,{checked:C?!0:M?"mixed":!1,onClick:j,onKeyDown:_,checkboxIndicator:{"aria-label":"Select all rows "},hidden:r!=="multiselect"}),n.map(D=>u.jsxs(Hk,{open:f===D.columnId,positioning:"below-end",onOpenChange:(W,z)=>m(z.open?D.columnId:void 0),children:[u.jsx(Jh,{disableButtonEnhancement:!0,children:u.jsxs(Qk,{...H.getTableHeaderCellProps(D.columnId),children:[D.renderHeaderCell(),d.some(W=>W.columnName===D.columnId)&&u.jsx(F8,{}),u.jsx("div",{style:{display:"flex",flexGrow:1}}),D.columnId!=="actions"?u.jsx("div",{className:s.filterIconContainer,children:u.jsx(Yf,{})}):u.jsx(u.Fragment,{})]},D.columnId)}),I(D)]},D.columnId)),u.jsx("div",{style:{display:"flex",flexGrow:1}})]})}),u.jsx(Yk,{className:s.gridBody,ref:k,children:u.jsx(eS,{children:u.jsx(iR,{numItems:t.length,virtualizerLength:h,bufferItems:w,bufferSize:x,itemSize:L3,children:D=>{const W=t[D];return Y(W,d)?E(W):u.jsx(u.Fragment,{})}})})})]})}function aR({tableName:e,type:t,items:n,columns:r,additionalCardProps:o,getColumnSizingOptions:i}){const a=g.useRef(null),[s,c]=g.useState(void 0);return g.useLayoutEffect(()=>{var d;const l=(d=a.current)==null?void 0:d.clientWidth;l&&c(i(l))},[a.current]),u.jsx($k,{ref:a,appearance:t==="inline"?"filled":"subtle",...o,children:u.jsx(Goe,{tableName:e,items:n,columns:r,columnSizingOptions:s})})}const Yoe=Cu({dialogSurface:{width:"auto",maxWidth:"900px",height:"50em"},dialogBody:{display:"flex",flexDirection:"column",height:"100%"},dialogTitle:{display:"flex",flexDirection:"row"},dialogContent:{display:"flex",height:"100%"}}),Koe=e=>{var F,H,R;const n=mi()<1024,r=Yoe(),o=e.initialOrder,i=ve(O=>O.contacts),a=ve(O=>O.networkOrders),s=ve(O=>O.projects),[c,l]=g.useState(void 0),[d,A]=g.useState(void 0),[f,m]=g.useState(),[v,p]=g.useState(!1),[y,b]=g.useState(!1),[h,w]=g.useState(!1),x=kn(),k=o.order_details.filter(O=>O.producttypecode===Gn.Product),S=o.order_details.filter(O=>O.producttypecode===Gn["Project-Based Service"]),N=[...k,...S];g.useEffect(()=>{p(!0)},[]),g.useEffect(()=>{if(i.loadingStatus!=="loaded")return;const O=i.data.find(_=>_.contactid===o._bistech_contact_value);O&&l(O)},[i.loadingStatus]),g.useEffect(()=>{var O,_;(O=o.bistech_orderform)!=null&&O.bistech_orderformid&&x.retrieveOrderFormInfo((_=o.bistech_orderform)==null?void 0:_.bistech_orderformid).then(Y=>{if(!Y.bistech_pdfbase64field1)return;const I=[Y.bistech_pdfbase64field1,Y.bistech_pdfbase64field2,Y.bistech_pdfbase64field3,Y.bistech_pdfbase64field4,Y.bistech_pdfbase64field5].filter(Boolean).join("");A(I)})},[v]),g.useEffect(()=>{if((o==null?void 0:o.statecode)===Jo.Fulfilled){m({title:"Completed",description:"Your order is complete",icon:"/order-call-to-action-completed.svg"});return}switch(o.statuscode){case qe.Pending:{m({title:"Pending Signature",description:"Awaiting authorised signatory to progress",icon:"/order-call-to-action-pending-signature.svg"});break}case qe["In Progress"]:{m({title:"In Progress",description:"Our team is working on your order",icon:"/order-call-to-action-in-progress.svg"});break}case qe.Signed:{m({title:"Signed",description:"All signatures are complete - your order is ready to be processed",icon:"/order-call-to-action-signed.svg"});break}case qe["On Hold"]:{m({title:"On Hold",description:"Your order is on hold - an update will be provided by the Bistech team",icon:"/order-call-to-action-on-hold.svg"});break}case qe.Processing:case qe["Processing Complete"]:{m({title:"Processing",description:"Your order is being processed by the Bistech team",icon:"/order-call-to-action-processing.svg"});break}case qe["Project Onboarding"]:{m({title:"Project Onboarding",description:"Your Project Manager is reviewing this order and will be in touch shortly to discuss next steps",icon:"/order-call-to-action-project-onboarding.svg"});break}default:{m({title:"",description:"",icon:"/order-call-to-action-in-progress.svg"});break}}},[o]);const C=()=>{if(d)return u.jsx("iframe",{style:{minHeight:"100%",width:"100%"},src:`data:application/pdf;base64,${d}`,allowFullScreen:!0,title:"PDF Viewer"})},M=[Qn({columnId:"Description",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Description"}),renderCell:O=>u.jsx(In,{title:O.Description,children:O.Description})}),Qn({columnId:"Quantity",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Qty"}),compare:(O,_)=>(O.Quantity??0)-(_.Quantity??0),renderCell:O=>{var _;return u.jsx(In,{title:(_=O.Quantity)==null?void 0:_.toString(),children:O.Quantity})}}),Qn({columnId:"Total Non-Recurring",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Total Non-Recurring"}),compare:(O,_)=>(O["Total Non-Recurring"]??0)-(_["Total Non-Recurring"]??0),renderCell:O=>{var _;return u.jsx(In,{title:(_=O["Total Non-Recurring"])==null?void 0:_.toString(),children:vd.toMoneyString(O["Total Non-Recurring"])})}}),Qn({columnId:"Total Annual Rental",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Total Annual Rental"}),compare:(O,_)=>(O["Total Annual Rental"]??0)-(_["Total Annual Rental"]??0),renderCell:O=>{var _;return u.jsx(In,{title:(_=O["Total Annual Rental"])==null?void 0:_.toString(),children:vd.toMoneyString(O["Total Annual Rental"])})}}),Qn({columnId:"Details",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Details"}),renderCell:O=>{const _=(()=>{const{relatedProject:Y,relatedNetworkOrder:I}=O._additionalInfo;return Y?{link:`/projects/edit?projectId=${Y.msdyn_projectid}`,key:Y.msdyn_projectid,title:"Related Project",content:Y.bistech_projectnumber}:I?{link:`/networkorders/edit?networkorderId=${I.bistech_networkorderid}`,key:I.bistech_networkorderid,title:"Related Network Order",content:I.bistech_name}:null})();return _?u.jsx(In,{title:_.title,children:u.jsx(jt,{to:_.link,children:_.content},_.key)}):u.jsx(In,{})}})];function j(O){return Object.fromEntries(Object.entries({Description:.3,Quantity:.1,"Total Non-Recurring":.2,"Total Annual Rental":.2,Details:.25}).map(([Y,I])=>[Y,{columnId:Y,idealWidth:O*I,autoFitColumns:!1}]))}const T=N.map(O=>{const _=O._msdyn_project_value&&s.loadingStatus==="loaded"&&s.data.find(I=>I.msdyn_projectid===O._msdyn_project_value)||null,Y=a.loadingStatus==="loaded"&&a.data.find(I=>I._bistech_orderline_value===O.salesorderdetailid)||null;return{key:O.salesorderdetailid,_additionalInfo:{relatedProject:_,relatedNetworkOrder:Y},Description:O.bistech_productdescription,Quantity:O.quantity,"Total Non-Recurring":O.baseamount,"Total Annual Rental":O.bistech_totalannualprice,Details:(_==null?void 0:_.bistech_projectnumber)??(Y==null?void 0:Y.bistech_name)??""}});return u.jsx(Lu,{title:((F=e.initialOrder)==null?void 0:F.ordernumber)??"",tags:[],callToActionInformation:f?{loadingStatus:"loaded",data:{title:f.title,description:f.description,icon:f.icon}}:{loadingStatus:"loading"},setSubmissionState:()=>{},children:u.jsxs("form",{className:"edit-order","data-submit-attempted":y,onInvalid:()=>{v&&b(!0)},children:[u.jsxs("div",{className:"main-content",children:[u.jsxs("div",{className:"general-container",children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsx(nc,{label:"Contact",name:"_bistech_contact_value",selectedOptionId:Gc(i,O=>{var _;return(_=O.find(Y=>Y.contactid===(c==null?void 0:c.contactid)))==null?void 0:_.contactid}),options:i.loadingStatus==="loaded"?{loadingStatus:"loaded",value:i.data.map(O=>({id:O.contactid,isPickable:!1,primaryText:`${(O==null?void 0:O.firstname)||""} ${(O==null?void 0:O.lastname)||""}`,secondaryText:"",contact:O}))}:{loadingStatus:"loading"},selectedOptionCardInfo:O=>({icon:u.jsx(im,{}),primaryText:O.primaryText,secondaryText:O.secondaryText,additionalFields:[{name:"Job Title",value:O.contact.jobtitle},{name:"Telephone",value:O.contact.telephone1||""},{name:"Mobile",value:O.contact.mobilephone||""},{name:"Permission Level",value:Qe[O.contact.bistech_permissionlevel]??"No Permissions Specified"}]}),additionalInputProps:{required:!1,disabled:!0},pluralOptionsName:"Contacts",setSelectedOptionId:()=>{}}),u.jsx(bt,{label:"Date signed",name:"bistech_datesigned",onChange:()=>{},value:(H=o.bistech_orderform)!=null&&H.bistech_datesigned?Pe.toDateOnlyString((R=o.bistech_orderform)==null?void 0:R.bistech_datesigned):"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Your Reference",name:"bistech_customerreference",onChange:()=>{},value:o.bistech_customerreference??"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),N.length>0&&u.jsxs(u.Fragment,{children:[u.jsx(bt,{label:"Total Non-Recurring",name:"totallineitemamount",onChange:()=>{},value:vd.toMoneyString(o.totallineitemamount),requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Total Annual Rental",name:"bistech_totalannualprice",onChange:()=>{},value:vd.toMoneyString(o.bistech_totalannualprice),requiredGroup:!1,additionalInputProps:{disabled:!0}})]}),u.jsx("div",{className:"order-form-link",children:d&&u.jsxs(u.Fragment,{children:[u.jsx("a",{href:`data:application/pdf;base64,${d}`,download:`${o.ordernumber}.pdf`,className:"download-order-form",children:"Download Order Form"}),N.length>0&&u.jsx("a",{href:"#",onClick:()=>w(!0),className:"view-order-form",children:"View Order Form"})]})})]}),N.length>0?u.jsx(aR,{tableName:"Order Lines",type:"inline",items:T,columns:M,additionalCardProps:{style:{width:"100%",maxHeight:n?void 0:"40em"}},getColumnSizingOptions:j}):u.jsx("div",{className:"iframe-container",style:{padding:0},children:C()})]}),u.jsx(qk,{open:h,onOpenChange:(O,_)=>w(_.open),children:u.jsx(Xk,{"aria-describedby":void 0,className:r.dialogSurface,children:u.jsxs(_k,{className:r.dialogBody,children:[u.jsx("div",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:u.jsx(R6,{className:r.dialogTitle,action:u.jsx(Qh,{action:"close",children:u.jsx(ri,{appearance:"subtle","aria-label":"close",icon:u.jsx(B8,{})})}),children:"Order Form"})}),u.jsx(z6,{className:r.dialogContent,children:C()||u.jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"90%"},children:u.jsx(Wr,{style:{height:30,width:30},className:"spin"})})})]})})})]})})},Joe=e=>{const t=dn(),n=kn(),r=ve(l=>l.orders),[o,i]=g.useState(1),[a,s]=g.useState({loadingStatus:"not-started"});g.useEffect(()=>{s({loadingStatus:"not-started"})},[r,o]);const c=g.useMemo(()=>{if(a.loadingStatus==="not-started"&&(s({loadingStatus:"loading"}),n.retrieveOrder(e.salesorderid).then(d=>s({loadingStatus:"loaded",data:d})).catch(d=>{t({type:"AddLatestError",error:d}),s({loadingStatus:"errored",error:d})})),a.loadingStatus==="loaded")return{loadingStatus:"loaded",data:a.data};if(r.loadingStatus!=="loaded")return{loadingStatus:"loading"};const l=r.data.find(d=>d.salesorderid===e.salesorderid);return l?{loadingStatus:"loaded",data:l}:{loadingStatus:"loading"}},[r,a,n,e.salesorderid,t]);return a.loadingStatus==="errored"?u.jsx(pn,{type:"record-not-found",singularEntityName:"Order"}):c.loadingStatus!=="loaded"?u.jsx(bl,{}):u.jsx(Koe,{initialOrder:c.data,onSave:()=>i(o+1)})},Qoe=()=>{const[e]=Ks(),n=e.get("orderId");return n?u.jsx(Joe,{salesorderid:n}):u.jsx(pn,{singularEntityName:"Order",type:"record-not-found"})};function Bc(e){if(!e||e.basePermissionLevel===Qe["No Access"])return!1;const t=e.portalCasePermissionLevel?e.portalCasePermissionLevel!==Ue["No Access"]:!1,n=e.portalContactPermissionLevel?e.portalContactPermissionLevel!==dt["No Access"]:!1,r=e.portalOrderPermissionLevel?e.portalOrderPermissionLevel!==$e["No Access"]:!1,o=e.portalProjectPermissionLevel?e.portalProjectPermissionLevel!==gt["No Access"]:!1,i=e.portalInvoicePermissionLevel?e.portalInvoicePermissionLevel!==kt["No Access"]:!1;return t||n||r||o||i}const $oe=e=>u.jsxs(l6,{withArrow:!0,positioning:"below",children:[u.jsx(Ok,{disableButtonEnhancement:!0,children:e.children}),u.jsx(a6,{tabIndex:-1,children:u.jsx("div",{style:{maxWidth:"18em",padding:"0.5em"},children:e.renderPopoverContent()})})]}),W3=({networkOrderStage:e,networkOrderId:t})=>{const n=g.useRef(null),[r,o]=g.useState({showing:!1,wasDismissed:!1}),{trackEventWithBistechMetadata:i}=Nt(),a=f=>e.bistech_datefrom?`The ${f} has been scheduled for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}. Please ensure access is available and that someone is able to receive the engineer. If this date is not suitable, please comment on the Network Order below and we shall contact the Carrier to find an alternative suitable date.`:"The Installation Date is as yet undecided, more information will be provided as soon as the date is confirmed.",c=[{stageType:Le["Order Placed"],title:"Your network order has been placed",description:"Your network order has been placed and is in progress, further updates will be provided when they are received from the carrier"},{stageType:Le.Survey,...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Site Survey",description:"A site survey is required by the carrier to progress your network order."};case Ee.Scheduled:return{title:"Site Survey",description:`A site survey is required by the carrier${e.bistech_datefrom?`, this has been scheduled for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}.`:"."}`};case Ee.Completed:return{title:"Site Survey",description:""};default:return{title:"A Site Survey is required",description:`The Vendor has confirmed that a Site Survey is required in order to fulfil the Order.${e.bistech_datefrom?` The Survey has been scheduled for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}.`:""}`}}})()},{stageType:Le["Civils Work"],...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Civil Works required",description:"Civil works are required to progress your network order - this is being arranged by the carrier and may take some time to complete."};case Ee.Scheduled:return{title:"Civil Works required",description:`Civil works are required to progress your network order${e.bistech_datefrom?` - this has been scheduled for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}}.`:"."}`};case Ee.Completed:return{title:"Civil Works",description:""};default:return{title:"Civils Work is required",description:`Civil Works typically involve the preparation of physical infrastructure such as trenching, conduit installation, and cable routing in order to install the connection. As a result, Civil Works can take time to complete.`}}})()},{stageType:Le.Wayleave,title:"Wayleave required",description:"A wayleave is required to progress your network order - your Project Manager will be in touch to discuss this."},{stageType:Le.Installation,...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Installation required",description:"Installation is required, we will provide an update when this is scheduled."};case Ee.Scheduled:return{title:"Installation",description:`Installation has been scheduled${e.bistech_datefrom?` for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}`:""}. Please ensure site access is available or contact your Project Manager if this date is unsuitable.`};case Ee.Completed:return{title:"Installation",description:""};default:return{title:"Installation is required",description:a("Installation")}}})()},{stageType:Le["Fibre Install"],...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Fibre installation required",description:"Fibre installation is required, we will provide an update when this is scheduled."};case Ee.Scheduled:return{title:"Fibre Installation",description:`Fibre installation has been scheduled${e.bistech_datefrom?` for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}`:""}. Please ensure site access is available or contact your Project Manager if this date is unsuitable.`};case Ee.Completed:return{title:"Fibre Installation",description:""};default:return{title:"A Fibre Install is required",description:a("Fibre Install")}}})()},{stageType:Le["Fibre Splicing"],...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Fibre splicing required",description:"Fibre splicing is required, we will provide an update when this is scheduled."};case Ee.Scheduled:return{title:"Fibre Splicing",description:`Fibre splicing has been scheduled${e.bistech_datefrom?` for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}`:""}. Please ensure site access is available or contact your Project Manager if this date is unsuitable.`};case Ee.Completed:return{title:"Fibre Splicing",description:""};default:return{title:"A Fibre splicing is required",description:a("Fibre Splicing")}}})()},{stageType:Le["Fit & Test"],...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Fit and test required",description:"A fit and test is required, we will provide an update when this is scheduled."};case Ee.Scheduled:return{title:"Fit and Test",description:`A fit and test has been scheduled${e.bistech_datefrom?` for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}`:""}. Please ensure site access is available or contact your Project Manager if this date is unsuitable.`};case Ee.Completed:return{title:"Fit and Test",description:""};default:return{title:"Fit and Test is required",description:a("Fit & Test")}}})()},{stageType:Le["Connection Installed"],title:"Your connection install is complete",description:"Your connection has been installed. Please contact your Project Manager if there are any further queries."},{stageType:Le["CommsCare Site Visit"],...(()=>{switch(e.statuscode){case Ee.Identified:return{title:"Site Visit required",description:"A site visit is required, we will provide an update when this is scheduled."};case Ee.Scheduled:return{title:"Site Visit",description:`A site visit has been scheduled${e.bistech_datefrom?` for ${new Date(e.bistech_datefrom).toLocaleDateString("en-GB")}`:""}. Please ensure site access is available or contact your Project Manager if this date is unsuitable.`};case Ee.Completed:return{title:"Site Visit",description:""};default:return{title:"Site visit is required",description:a("CommsCare Site Visit")}}})()}].find(f=>f.stageType===e.bistech_stage),l=(c==null?void 0:c.title)||Le[e.bistech_stage],d=(c==null?void 0:c.description)||"",A=Ee[e.statuscode];return u.jsx($oe,{isVisible:r.showing,onDismiss:()=>{o({showing:!1,wasDismissed:!0}),setTimeout(()=>{o({showing:!1,wasDismissed:!1})},100)},renderPopoverContent:()=>u.jsxs(u.Fragment,{children:[u.jsxs("h3",{style:{fontWeight:"500",margin:0,marginBottom:"0.8em"},children:[l," - ",A]}),u.jsx(rn,{style:{fontSize:"14px"},children:d})]}),children:u.jsxs("div",{className:"card",ref:n,"data-card-status":e.statuscode,onClick:()=>{r.wasDismissed||o({showing:!r.showing,wasDismissed:!1}),i==null||i({type:"Edit Network Order - Network Order Stage clicked",networkOrderId:t,networkOrderStageId:e.bistech_networkorderstageid,networkOrderStageType:Le[e.bistech_stage],networkOrderStageStatus:Ee[e.statuscode]})},children:[u.jsx("div",{className:"circle","data-stage-type":Le[e.bistech_stage],"data-card-status":Ee[e.statuscode]}),u.jsxs("div",{className:"rect","data-card-status":Ee[e.statuscode],children:[u.jsx("h3",{className:"stage-title",children:Le[e.bistech_stage]}),u.jsxs("h3",{className:"stage-date",children:[e.statuscode==Ee.Completed&&u.jsx(yM,{style:{marginRight:"0.3em"}}),e.bistech_datefrom?new Date(e.bistech_datefrom).toLocaleDateString("en-GB"):e.statuscode==Ee.Completed?"Completed":""]})]})]})})},aS=e=>{const{ref:n,onSwipe:r}=e,[o,i]=g.useState(null);g.useEffect(()=>{if(!n.current)return;const a=l=>i(l.changedTouches[0]),s=l=>{if(o===null)throw new Error("Expected the startTouch to be non-null as a 'touchend' event had occurred");const d=l.changedTouches[0],A=d.pageX-o.pageX;if(A===0||!(Math.abs(A)>15))return;const m=d.pageY-o.pageY;if(!(Math.abs(m/A)<.5))return;const p=A<0?"horizontal-left":"horizontal-right";r(p),i(null)};n.current.addEventListener("touchstart",a),n.current.addEventListener("touchend",s);const c=n.current;return()=>{c.removeEventListener("touchstart",a),c.removeEventListener("touchend",s)}},[n,r,o])},sR=({children:e,on:t,swipeDirection:n})=>t===void 0?u.jsx("div",{style:{height:"100%"},children:e}):u.jsx("div",{className:"fade-in",style:{height:"100%"},"data-swipe-direction":n,children:e},t),eie=({items:e,currentIndex:t,updateIndex:n})=>{const r=g.useRef(null),[o,i]=g.useState(null);aS({ref:r,onSwipe:s=>{if(s==="horizontal-right"){if(t===0)return;i("right"),n(t-1)}if(s==="horizontal-left"){if(t+1===e.length)return;i("left"),n(t+1)}}});const a=s=>{su.jsx(une,{className:"selector",color:c===t?"black":"gray",style:{cursor:"pointer"},onClick:()=>a(c)},c))})]})})},cR=({name:e,label:t,title:n,tooltip:r,linkDetails:o,additionalLabelProps:i,requiredGroup:a})=>u.jsx("label",{"data-name":e,className:"field hyperlink-field",title:n||"",...i,children:u.jsxs(rt,{children:[u.jsxs("div",{className:"field-label-header",children:[t,a&&u.jsx(Ws,{className:"required-group-icon"}),r&&u.jsx(tc,{overlayContent:r})]}),u.jsxs(jt,{className:"field-control",to:o.href,...o.additionalProps,children:[o.iconPath&&u.jsx("img",{className:"icon",src:o.iconPath,height:"16"})," ",u.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:o.name})]})]})}),sS=({name:e,positioningRef:t,teachingBubbles:n,closeTeachingBubble:r})=>{var s;const[o,i]=g.useState((s=n[0])==null?void 0:s.headline),{trackEventWithBistechMetadata:a}=Nt();return g.useLayoutEffect(()=>{var l;const c=o?n.find(d=>d.headline===o):void 0;c&&((l=t==null?void 0:t.current)==null||l.setTarget(c.refElement))},[t,n,o]),u.jsx(bM,{positioning:{positioningRef:t},open:!0,appearance:"brand",children:u.jsx(gM,{children:u.jsxs(uM,{value:o,onValueChange:(c,l)=>{l.value&&i(l.value)},onFinish:()=>{var l;const c=o!==((l=n[n.length-1])==null?void 0:l.headline)?"dismissed":"completed";c==="dismissed"?a==null||a({type:"Teaching Bubble - Dismissed",teachingBubbleName:e}):a==null||a({type:"Teaching Bubble - Completed",teachingBubbleName:e}),r(c)},children:[n.map(c=>u.jsx(dM,{value:c.headline,children:u.jsxs(aM,{children:[u.jsx(hM,{children:c.headline}),u.jsx("div",{children:c.content})]})},c.headline)),u.jsx(fM,{next:"Next",previous:"Previous",initialStepText:"Close",finalStepText:"Finish",children:u.jsx(vM,{children:()=>u.jsx(pM,{})})})]})})})},U3="Bistech:TeachingBubble:NetworkOrder-2024-08",tie=e=>{var z;const t=kn(),n=dn(),r=ve(L=>L.networkOrders),o=ve(L=>L.projects),i=ve(L=>L.orders),a=ve(L=>L.customerAssets),s=ve(L=>L.accounts),{trackExceptionWithBistechMetadata:c,trackEventWithBistechMetadata:l}=Nt(),d=ve(L=>L.dirtyBannerSettings),[A,f]=g.useState(localStorage.getItem(U3)!=="false"),[m,v]=g.useState(e.initialNetworkOrder),p=e.initialNetworkOrder.bistech_bistech_networkorderstage_networkorder_bi,[y,b]=g.useState({accountid:"",name:""}),[h,w]=g.useState(p.length-1),x=Gc(i,L=>L.find(q=>q.salesorderid===m._bistech_salesorder_value)),k=Gc(o,L=>L.find(q=>q.msdyn_projectid===m._bistech_projectnetworkorder_value)),S=Gc(a,L=>L.find(q=>q.msdyn_customerassetid===m._bistech_customerasset_value)),N=g.useRef(null),C=g.useRef(null),M=g.useRef(null),j=g.useRef(null),T=[{refElement:N.current,headline:"Keep track of progress",content:"This timeline shows how the installation of your network order is progressing"},{refElement:C.current,headline:"Find out more",content:"Select a stage to view more details"},{refElement:M.current,headline:"View and leave comments",content:"View correspondence and send a message or a query to your Project Manager here"}];g.useEffect(()=>{p.length>0&&w(p.length-1)},[p]);const[F,H]=g.useState({_bistech_contact_value:m._bistech_contact_value??null,statuscode:m.statuscode}),[R,O]=g.useState(e.initialNetworkOrder.bistech_networkorder_adx_portalcomments??[]),[_,Y]=g.useState({state:"idle"});function I(){const L=m.statuscode===Ut.Pending&&!Li,q={label:"Request Order",hasModal:!1,onClick:async()=>{if(r.loadingStatus==="loaded"){Y({state:"submitting"}),l==null||l({type:"Edit Network Order - Call-to-Action submitted",buttonName:"Request Order"}),H({...F,statuscode:Ut["Ready To Order"]});try{const U={...F,statuscode:Ut["Ready To Order"]},B=await t.updateNetworkOrder(m.bistech_networkorderid,Xc(m,U));n({type:"AddNotification",notification:{message:"Thank you for confirmation to proceed, our team will place your network order with the carrier and you will receive updates as this progresses",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),n({type:"SetNetworkOrders",networkOrders:{loadingStatus:"loaded",data:r.data.map(K=>K.bistech_networkorderid===m.bistech_networkorderid?B:K)}}),n({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0})}catch(U){c==null||c(U),n({type:"AddLatestError",error:U})}finally{Y({state:"idle"})}}}},P=E();return{loadingStatus:"loaded",data:{title:(P==null?void 0:P.title)??"",description:(P==null?void 0:P.description)??"",icon:(P==null?void 0:P.icon)??"",buttons:L?[q]:[]}}}g.useEffect(()=>{if(Object.keys(Xc(m,F)).length>0){n({type:"SetDirtyBannerSettings",dirtyBannerSettings:{type:"showSaveButton",saveFunction:D,submissionPrerequisites:[]}});return}n({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0})},[F]),g.useEffect(()=>{if(i.loadingStatus!=="loaded"||a.loadingStatus!=="loaded"||s.loadingStatus!=="loaded")return;const L=s.data.find(q=>q.accountid===(S==null?void 0:S._bistech_site_value));L&&b(L)},[m,i,S]);function E(){switch(m.statuscode){case Ut.Pending:return{title:"Pending",description:"Your network order has not yet been placed - please let us know when you are ready to proceed",icon:"/network-order-call-to-action-pending.svg"};case Ut["Ready To Order"]:return{title:"Processing",description:"Your network order is being processed by the Bistech team",icon:"/network-order-call-to-action-processing.svg"};case Ut["In Progress"]:case Ut.Rejected:case Ut.Delayed:case Ut.Confirmed:return{title:"In Progress",description:"Your network order is in progress with the carrier - updates will be provided when received",icon:"/network-order-call-to-action-in-progress.svg"};case Ut.Completed:return{title:"Fulfilled",description:"Your network order has been completed by the carrier",icon:"/network-order-call-to-action-fulfilled.svg"}}}async function D(L){L==null||L.preventDefault(),Y({state:"submitting"}),l==null||l({type:"Edit Network Order - Network Order update submitted",networkOrderId:e.initialNetworkOrder.bistech_networkorderid});try{F._bistech_contact_value||await t.disassociateContactFromNetworkOrder(m.bistech_networkorderid);const q=await t.updateNetworkOrder(m.bistech_networkorderid,Xc(m,F));v(q)}catch(q){Y({state:"errored",error:q}),c==null||c(q);return}l==null||l({type:"Edit Network Order - Network Order updated successfully",networkOrderId:e.initialNetworkOrder.bistech_networkorderid}),Y({state:"completed"}),n({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0})}const W=L=>{f(!1),L==="completed"&&localStorage.setItem(U3,"false")};return u.jsx(Lu,{title:((x==null?void 0:x.ordernumber)??"")+" - "+m.bistech_name,tags:[],callToActionInformation:I(),setSubmissionState:Y,parentPageReference:{editIdName:"orderId",fullPath:"/orders/edit",pageId:(x==null?void 0:x.salesorderid)??""},children:u.jsx("form",{className:"edit-networkorder",onSubmit:D,children:u.jsxs(u.Fragment,{children:[p.length>0&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{ref:N,className:"network-order-stage-info",children:[A&&u.jsx(sS,{name:"Network Order",closeTeachingBubble:W,positioningRef:j,teachingBubbles:T}),u.jsx("div",{className:"network-order-stage-container",children:u.jsx("div",{className:"network-order-stages",children:(z=[...p].sort((L,q)=>L.bistech_stage-q.bistech_stage))==null?void 0:z.map((L,q)=>u.jsxs(ht.Fragment,{children:[q!==0&&u.jsx("div",{className:"lb-container",children:u.jsx("div",{className:"line","data-card-status":Ee[L.statuscode]})}),u.jsx("div",{ref:q===0?C:void 0,children:u.jsx(W3,{networkOrderStage:L,networkOrderId:m.bistech_networkorderid})})]},q))})})]}),u.jsxs("div",{className:"latest-network-order-stage",children:[u.jsx("h2",{className:"heading",children:h+1!==p.length?`Current Stage (${h+1}/ ${p.length})`:"Latest Stage"}),u.jsx("div",{className:"stage-container",children:u.jsx(eie,{items:[...p].sort((L,q)=>L.bistech_stage-q.bistech_stage).map(L=>u.jsx(W3,{networkOrderStage:L,networkOrderId:m.bistech_networkorderid},L.bistech_networkorderstageid)),currentIndex:h,updateIndex:w})})]})]}),u.jsxs("div",{className:"main-content",children:[u.jsxs("div",{className:"general-container",children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsx(bt,{label:"Connection Type",name:"msdyn_customerasset",tooltip:"Connectivity type and speed",value:(S==null?void 0:S.msdyn_name)??"",onChange:()=>{},additionalInputProps:{required:!1,disabled:!0}}),u.jsx(bt,{label:"Installation Site",name:"msdyn_customerassetsitename",tooltip:"Site name & postcode where connectivity is to be provided",value:(y==null?void 0:y.name)??"",onChange:()=>{},additionalInputProps:{required:!1,disabled:!0}}),(S==null?void 0:S.bistech_serialnumber)&&u.jsx(bt,{label:"Serial Number",name:"bistech_serialnumber",tooltip:"The serial number of the asset.",value:S.bistech_serialnumber,onChange:()=>{},additionalInputProps:{required:!1,disabled:!0}}),k&&u.jsx(cR,{label:"Project",name:"project",linkDetails:{href:`${_e.EditProject.path}?projectId=${k.msdyn_projectid}`,iconPath:_e.Projects.navigationPanelConfig.iconPath,name:k.msdyn_subject,additionalProps:{title:k.msdyn_subject}}})]}),u.jsx(nb,{currentEntity:{createMetadata:Soe,retrieveMetadata:qM},ticketNumber:e.initialNetworkOrder.bistech_networkorderid,portalComments:R,portalEmails:e.initialNetworkOrder.bistech_networkorder_bistech_portalemails??[],majorIncidentUpdates:e.initialNetworkOrder.bistech_networkorder_bistech_majorincidentupdates??[],setPortalComments:O,disabled:!1,entityId:e.initialNetworkOrder.bistech_networkorderid,trackPortalCommentSubmission:()=>l==null?void 0:l({type:"Edit Network Order - Portal Comment submitted",networkOrderId:e.initialNetworkOrder.bistech_networkorderid}),trackPortalCommentCreatedSuccessfully:L=>l==null?void 0:l({type:"Edit Network Order - Portal Comment created successfully",networkOrderId:e.initialNetworkOrder.bistech_networkorderid,activityId:L.activityid}),divReference:M})]}),u.jsx("fieldset",{className:"buttons",children:u.jsxs("button",{className:"button",type:"submit",disabled:!d||_.state==="submitting",title:d?void 0:"No changes to save",children:[_.state==="submitting"&&u.jsx(Wr,{className:"spin"}),"Save"]})})]})})})},nie=e=>{const t=dn(),n=kn(),r=ve(d=>d.networkOrders),o=ve(d=>d.orders),[i,a]=g.useState(1),[s,c]=g.useState({loadingStatus:"not-started"});g.useEffect(()=>{c({loadingStatus:"not-started"})},[r,i]);const l=g.useMemo(()=>{if(s.loadingStatus==="not-started"&&(c({loadingStatus:"loading"}),n.retrieveNetworkOrder(e.networkorderid).then(A=>c({loadingStatus:"loaded",data:A})).catch(A=>{t({type:"AddLatestError",error:A}),c({loadingStatus:"errored",error:A})})),s.loadingStatus==="loaded")return{loadingStatus:"loaded",data:s.data};if(r.loadingStatus!=="loaded")return{loadingStatus:"loading"};const d=r.data.find(A=>A.bistech_networkorderid===e.networkorderid);return d?{loadingStatus:"loaded",data:{...d,bistech_bistech_networkorderstage_networkorder_bi:[],bistech_networkorder_adx_portalcomments:[],bistech_networkorder_bistech_portalemails:[],bistech_networkorder_bistech_majorincidentupdates:[]}}:{loadingStatus:"loading"}},[r,s,n,e.networkorderid,t]);return s.loadingStatus==="errored"?u.jsx(pn,{type:"record-not-found",singularEntityName:"Order"}):l.loadingStatus!=="loaded"||o.loadingStatus!=="loaded"?u.jsx(bl,{}):u.jsx(tie,{initialNetworkOrder:l.data,onSave:()=>a(i+1)})},rie=()=>{const[e]=Ks(),n=e.get("networkorderId");return n?u.jsx(nie,{networkorderid:n}):u.jsx(pn,{singularEntityName:"Network Order",type:"record-not-found"})},oie=()=>[{id:0,columnHeader:"Invoice ID",fieldName:"invoicenumber",isSortable:!0},{id:1,columnHeader:"Payment Method",fieldName:"bistech_paymentmethodcode",isSortable:!0},{id:2,columnHeader:"Due Date",fieldName:"duedate",isSortable:!0},{id:3,columnHeader:"Invoice Date",fieldName:"msdyn_invoicedate",isSortable:!0}],iie=()=>{const e=on(),t=ve(m=>m.invoices),[n,r]=g.useState("duedate"),[o,i]=g.useState(!1),[a,s]=g.useState("");if(!e.accountId)throw new Error("Expected `userMetadata.accountId` to be populated");const c=oie(),l=m=>{var v;return(v=c.find(p=>p.fieldName===m))==null?void 0:v.columnHeader},d=m=>o?{loadingStatus:"loaded",data:m}:{loadingStatus:"loaded",data:m.reverse()},A=ht.useMemo(()=>{if(t.loadingStatus!=="loaded")return{loadingStatus:t.loadingStatus};const m=t.data.slice();return d(m.sort((v,p)=>{var y,b;return(((y=v[n])==null?void 0:y.toString())??"").localeCompare(((b=p[n])==null?void 0:b.toString())??"")}))},[t,n,o]),f=He(A,m=>m.filter(v=>Object.entries(v).some(([p,y])=>{const b=y==null?void 0:y.toString();return b==null?void 0:b.toString().toLowerCase().includes(a.toLowerCase())})));return u.jsxs(Lr,{title:"Invoices",children:[u.jsx(cf,{intent:"info",style:{marginBottom:"0.4em",backgroundColor:"rgb(255, 244, 206)"},children:u.jsx(lf,{style:{overflow:"hidden",textOverflow:"ellipsis"},children:u.jsxs("p",{style:{fontSize:"13px"},children:[u.jsx("strong",{children:"Note:"})," Invoice IDs that begin with the number '7' are only accessible through the aBILLity platform. Please check your ID and proceed to"," ",u.jsx("a",{"data-has-link":!0,href:"https://webabillity.co.uk/2.7.320_en-GB/BIS01.aspx",target:"_blank",className:"abillity-link",children:"aBILLity"})," ","via the portal if this applies."]})})}),u.jsx(Fu,{setSearchBarContent:s,filterGroups:null,placeholderText:"Search by Invoice ID",getSummarySections:()=>[],filtersToDisplay:[]}),f.loadingStatus!=="loaded"?u.jsx(vi,{}):f.data.length===0?u.jsx("div",{className:"no-results-message",children:"There are no Invoices to display."}):u.jsxs("table",{className:"entitylist invoices-table",children:[u.jsx("thead",{children:u.jsx("tr",{children:c.map(m=>u.jsx(Ou,{columnHeader:m.columnHeader,fieldName:m.fieldName,headerWidth:m.cellWidth,sortingProps:{sortingEnabled:m.isSortable,sortedColumn:n,setSortedColumn:()=>r(m.fieldName),isSortedAscending:o,setIsSortedAscending:i}},m.id))})}),u.jsx("tbody",{children:f.data.map(m=>u.jsx(rt,{children:u.jsxs("tr",{"data-id":m.invoiceid,"data-entity":"invoice",children:[u.jsx("td",{className:"invoice-id",title:m.invoicenumber,"data-heading-title":l("invoicenumber"),children:u.jsx(jt,{to:`view?invoiceid=${m.invoiceid}`,children:m.invoicenumber},m.invoicenumber)}),u.jsx("td",{className:"invoice-payment-method","data-heading-title":l("bistech_paymentmethodcode"),children:vd.getPaymentMethodCodeString(m.bistech_paymentmethodcode)}),u.jsx("td",{className:"invoice-due-date","data-heading-title":l("duedate"),children:m.duedate?Pe.toDateOnlyString(m.duedate):""}),u.jsx("td",{className:"invoice-date","data-heading-title":l("msdyn_invoicedate"),children:m.msdyn_invoicedate?Pe.toDateOnlyString(m.msdyn_invoicedate):""})]},m.invoiceid)},m.invoiceid))})]})]})},aie=({initialInvoice:e})=>{const t=[e.bistech_pdfbase64field1,e.bistech_pdfbase64field2,e.bistech_pdfbase64field3,e.bistech_pdfbase64field4,e.bistech_pdfbase64field5].filter(Boolean).join("");return u.jsx(Lr,{title:(e==null?void 0:e.invoicenumber)??"",children:u.jsx("div",{className:"view-invoice",children:u.jsxs("div",{className:"main-content",children:[u.jsx("div",{className:"general-container",children:u.jsxs("form",{children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsx(bt,{label:"Invoice ID",name:"invoice-id",onChange:()=>{},value:e.invoicenumber??"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Due Date",name:"due-date",onChange:()=>{},value:e.duedate?Pe.toDateOnlyString(e.duedate):"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Payment Method",name:"payment-method",onChange:()=>{},value:vd.getPaymentMethodCodeString(e.bistech_paymentmethodcode)??"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Invoice Date",name:"invoice-date",onChange:()=>{},value:e.msdyn_invoicedate?Pe.toDateOnlyString(e.msdyn_invoicedate):"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx("a",{href:`data:application/pdf;base64,${t}`,download:`${e.invoicenumber}.pdf`,className:"download-invoice",children:"Download Invoice"})]})}),e.bistech_pdfbase64field1&&u.jsx("div",{className:"iframe-container view-invoice",children:u.jsx("iframe",{style:{minHeight:"100%",width:"100%"},src:`data:application/pdf;base64,${t}`,allowFullScreen:!0,children:u.jsx("object",{data:`data:application/pdf;base64,${t}`})})})]})})})},sie=e=>{const t=dn(),n=kn(),r=ve(s=>s.invoices),[o,i]=g.useState({loadingStatus:"not-started"});g.useEffect(()=>{i({loadingStatus:"not-started"})},[r]);const a=g.useMemo(()=>{if(o.loadingStatus==="not-started"&&(i({loadingStatus:"loading"}),n.retrieveInvoice(e.invoiceid).then(c=>i({loadingStatus:"loaded",data:c})).catch(c=>{t({type:"AddLatestError",error:c}),i({loadingStatus:"errored",error:c})})),o.loadingStatus==="loaded")return{loadingStatus:"loaded",data:o.data};if(r.loadingStatus!=="loaded")return{loadingStatus:"loading"};const s=r.data.find(c=>c.invoiceid===e.invoiceid);return s?{loadingStatus:"loaded",data:s}:{loadingStatus:"loading"}},[r,o,n,e.invoiceid,t]);return o.loadingStatus==="errored"?u.jsx(pn,{type:"record-not-found",singularEntityName:"Invoice"}):a.loadingStatus!=="loaded"?u.jsx(bl,{}):u.jsx(aie,{initialInvoice:a.data})},cie=()=>{const[e]=Ks(),n=e.get("invoiceid");return n?u.jsx(sie,{invoiceid:n}):u.jsx(pn,{singularEntityName:"Invoice",type:"record-not-found"})},lie=()=>[{id:0,columnHeader:"Project ID",fieldName:"bistech_projectnumber",isSortable:!0,cellWidth:"13%"},{id:1,columnHeader:"Name",fieldName:"msdyn_subject",isSortable:!0,cellWidth:"35%"},{id:2,columnHeader:"Estimated Start Date",fieldName:"msdyn_scheduledstart",isSortable:!0,cellWidth:"13%"},{id:3,columnHeader:"Project Manager",fieldName:"_ownerid_value@OData.Community.Display.V1.FormattedValue",isSortable:!0,cellWidth:"26%"},{id:4,columnHeader:"Status",fieldName:"statuscode",isSortable:!0,cellWidth:"13%"}],H3="Your Project Manager is reviewing your project and will be in touch shortly to discuss next steps",Z3="Our team are working on your project",V3="Something is preventing your project from progressing",q3="Your project has been placed on hold",_3="Your project is complete",die=(e,t,n)=>[{labelElement:u.jsx(u.Fragment,{children:"Status"}),attribute:"Status",tooltipElement:u.jsxs(u.Fragment,{children:[u.jsxs("p",{children:[u.jsx("strong",{children:"Project Onboarding"})," - ",H3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"In Progress"})," - ",Z3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Blocked"})," - ",V3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"On Hold"})," - ",q3]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Closed"})," - ",_3]})]}),tiles:[{id:"project-onboarding",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Ce["Project Onboarding"],Ce["Pending Start"],Ce.Processing].includes(r.statuscode),label:u.jsx(u.Fragment,{children:"Project Onboarding"}),value:He(e.projectOnboarding,r=>r.length),imagePath:"/project-management-status-project-onboarding.svg",onHoverMessage:H3},{id:"in-progress",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Ce["In Progress"]].includes(r.statuscode),label:u.jsx(u.Fragment,{children:"In Progress"}),value:He(e.inProgress,r=>r.length),imagePath:"/project-management-status-in-progress.svg",onHoverMessage:Z3},{id:"blocked",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Ce.Blocked].includes(r.statuscode),label:u.jsx(u.Fragment,{children:"Blocked"}),value:He(e.blocked,r=>r.length),imagePath:"/project-management-status-blocked.svg",onHoverMessage:V3},{id:"on-hold",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Ce["On Hold"]].includes(r.statuscode),label:u.jsx(u.Fragment,{children:"On Hold"}),value:He(e.onHold,r=>r.length),imagePath:"/project-management-status-on-hold.svg",onHoverMessage:q3},{id:"closed",setSelectedTileIds:n,selectedTileIds:t,filter:r=>[Ce.Closed].includes(r.statuscode),label:u.jsx(u.Fragment,{children:"Closed"}),value:He(e.closed,r=>r.length),imagePath:"/project-management-status-closed.svg",onHoverMessage:_3}]}],uie=()=>{const e=on(),t=ve(h=>h.projects),[n,r]=g.useState("msdyn_scheduledstart"),[o,i]=g.useState(!1),[a,s]=g.useState(""),[c,l]=g.useState([]);if(!e.accountId)throw new Error("Expected `userMetadata.accountId` to be populated");const d=lie(),A=h=>{var w;return(w=d.find(x=>x.fieldName===h))==null?void 0:w.columnHeader},f=h=>o?{loadingStatus:"loaded",data:h}:{loadingStatus:"loaded",data:h.reverse()},m=ht.useMemo(()=>{if(t.loadingStatus!=="loaded")return{loadingStatus:t.loadingStatus};const h=t.data.slice();switch(n){case"statuscode":h.sort((w,x)=>{var k,S;return(((k=Ce[w[n]])==null?void 0:k.toString())??"").localeCompare(((S=Ce[x[n]])==null?void 0:S.toString())??"")});break;default:h.sort((w,x)=>{var k,S;return(((k=w[n])==null?void 0:k.toString())??"").localeCompare(((S=x[n])==null?void 0:S.toString())??"")});break}return f(h)},[t,n,o]),v={projectOnboarding:He(m,h=>h.filter(w=>[Ce["Project Onboarding"],Ce["Pending Start"],Ce.Processing].includes(w.statuscode))),inProgress:He(m,h=>h.filter(w=>[Ce["In Progress"]].includes(w.statuscode))),blocked:He(m,h=>h.filter(w=>[Ce.Blocked].includes(w.statuscode))),onHold:He(m,h=>h.filter(w=>[Ce["On Hold"]].includes(w.statuscode))),closed:He(m,h=>h.filter(w=>[Ce.Closed].includes(w.statuscode)))},p=die(v,c,l),y=p.flatMap(h=>h.tiles.filter(w=>c.length>0?c.includes(w.id):!0).flatMap(w=>w.filter)),b=He(m,h=>h.filter(w=>Object.entries(w).some(([x,k])=>{let S=k==null?void 0:k.toString();return S==null?void 0:S.toString().toLowerCase().includes(a.toLowerCase())})).filter(w=>y.some(x=>x(w))));return u.jsxs(Lr,{title:"Projects",children:[u.jsx(Fu,{setSearchBarContent:s,filterGroups:p,placeholderText:"Search for Project",getSummarySections:()=>[],filtersToDisplay:[]}),b.loadingStatus!=="loaded"?u.jsx(vi,{}):b.data.length===0?u.jsx("div",{className:"no-results-message",children:"There are no records to display."}):u.jsxs("table",{className:"entitylist projects-table",children:[u.jsx("thead",{children:u.jsx("tr",{children:d.map(h=>u.jsx(Ou,{columnHeader:h.columnHeader,fieldName:h.fieldName,headerWidth:h.cellWidth,sortingProps:{sortingEnabled:h.isSortable,sortedColumn:n,setSortedColumn:()=>r(h.fieldName),isSortedAscending:o,setIsSortedAscending:i}},h.id))})}),u.jsx("tbody",{children:b.data.map(h=>u.jsxs("tr",{"data-id":h.msdyn_projectid,"data-entity":"msdyn_project",children:[u.jsx("td",{className:"project-id",title:h.bistech_projectnumber,"data-heading-title":A("bistech_projectnumber"),children:u.jsx(jt,{to:`edit?projectId=${h.msdyn_projectid}`,children:h.bistech_projectnumber},h.msdyn_projectid)}),u.jsx("td",{className:"project-name",title:h.msdyn_subject,"data-heading-title":A("msdyn_subject"),children:h.msdyn_subject}),u.jsx("td",{className:"project-start","data-heading-title":A("msdyn_scheduledstart"),children:h.msdyn_scheduledstart?Pe.toDateOnlyString(h.msdyn_scheduledstart):""}),u.jsx("td",{className:"project-owner","data-heading-title":A("_ownerid_value@OData.Community.Display.V1.FormattedValue"),children:h["_ownerid_value@OData.Community.Display.V1.FormattedValue"]}),u.jsx("td",{className:"project-status","data-heading-title":A("statuscode"),children:Ce[h.statuscode]})]},h.msdyn_projectid))})]})]})},Aie=["Summary","Project Tasks","Contacts","Project Logs","Network Orders"],X3="Bistech:TeachingBubble:Project-Tabs-Completed-Stages",fie=Cu({tabList:{display:"flex",marginBottom:"2px",alignItems:"center",flexBasis:"calc(33% - 1.5em)"},container:{...DN.overflow("hidden"),...DN.padding("5px","0px"),overflow:"auto",height:"fit-content",minWidth:"150px",width:"100%",boxSizing:"border-box"},horizontal:{height:"fit-content",width:"100%",maxWidth:"100%",backgroundColor:"#fff"},tabItem:{paddingRight:"1.5em",paddingLeft:"1.5em",paddingBottom:"1em",font:"inherit"},tabContent:{display:"flex",flexDirection:"row",alignItems:"center"}}),mie=e=>{const t=fie(),n=e.tabs.filter(p=>p.showWhen),r=JSON.parse(localStorage.getItem(X3)||"[]"),o=g.useRef(null),i=g.useRef(null),a=g.useRef(null),s=g.useRef(null),c=g.useRef(null),l=g.useRef(null),d=[{refElement:o.current,headline:"Summary",content:"View information about your project"},{refElement:i.current,headline:"Project Tasks",content:"View and manage the tasks associated with your project"},{refElement:a.current,headline:"Contacts",content:"View the contacts associated with your project"},{refElement:s.current,headline:"Network Orders",content:"View the network orders associated with your project"},{refElement:c.current,headline:"Project Logs",content:"View the logs associated with your project"}];if(n.length<=1)return u.jsx(u.Fragment,{});const A=d.filter(p=>!r.includes(p.headline)).filter(p=>n.map(y=>y.name).includes(p.headline)),[f,m]=g.useState(A.length>0),v=p=>{if(m(!1),p==="completed"){const y=[...r,...A.map(b=>b.headline)];localStorage.setItem(X3,JSON.stringify(y))}};return u.jsxs(rt,{children:[u.jsx("div",{className:t.tabList,children:u.jsx("div",{className:G(t.container,t.horizontal),children:u.jsx(I6,{selectedValue:e.activeTab,onTabSelect:(p,y)=>e.onTabClick(p,y.value),children:n.map(p=>u.jsx(T6,{ref:(()=>{switch(p.name){case"Summary":return o;case"Project Tasks":return i;case"Contacts":return a;case"Network Orders":return s;case"Project Logs":return c}})(),value:p.name,className:t.tabItem,children:u.jsx("div",{className:t.tabContent,children:p.label})},p.name))})})}),f&&u.jsx(sS,{name:"Project Tabs",closeTeachingBubble:v,positioningRef:l,teachingBubbles:A})]})},vie=({projectTask:e,projectId:t,completeProjectTaskIsShown:n,setCompleteProjectTaskIsShown:r,onSubmit:o})=>{const[i,a]=g.useState(!1),[s,c]=g.useState(!1),[l,d]=g.useState(""),{trackEventWithBistechMetadata:A,trackExceptionWithBistechMetadata:f}=Nt();function m(p){p.length>0?a(!0):a(!1),d(p)}async function v(){try{c(!0),A==null||A({type:"Edit Project - Project Task completion submitted",projectId:t,projectTaskId:e.msdyn_projecttaskid}),await o(e,l)}catch(p){throw f==null||f(p),p}finally{c(!1)}A==null||A({type:"Edit Project - Project Task completed successfully",projectId:t,projectTaskId:e.msdyn_projecttaskid})}return u.jsx(yl,{buttonInfo:{disabled:!i||s,hasModal:!0,label:"Complete Task",modalInfo:{isErrorModal:!1,modalButtonLabel:"Complete",modalContent:u.jsx(rt,{children:u.jsx(rR,{name:"comment",value:l,onChange:p=>m(p),readOnly:s})}),modalTitle:"Complete Project Task",onClick:async()=>v()}},isModalShown:n,setIsModalShown:r})},pie=({projectTask:e,projectTaskDetailsIsShown:t,projectId:n,setProjectTaskDetailsIsShown:r,onSubmit:o})=>{const i=ve(h=>h.contacts),[a,s]=g.useState(e._bistech_assignedcustomercontact_value??""),[c,l]=g.useState(!1),d=g.useRef(null),{trackEventWithBistechMetadata:A,trackExceptionWithBistechMetadata:f}=Nt(),[m,v]=g.useState(void 0),y=[...i.loadingStatus!=="loaded"?[]:i.data].filter(h=>h.bistech_isshowninportal).map(h=>({id:h.contactid,primaryText:[h.firstname,h.lastname].filter(w=>w).join(" "),secondaryText:h.emailaddress1??"",isPickable:h.statecode===Be.Active})).sort((h,w)=>`${h.primaryText}`.localeCompare(`${w.primaryText}`));g.useEffect(()=>{t&&s(e._bistech_assignedcustomercontact_value??"")},[t,e._bistech_assignedcustomercontact_value]),g.useEffect(()=>{a!==e._bistech_assignedcustomercontact_value?l(!0):l(!1)},[a]),g.useEffect(()=>{d.current&&v(d.current.clientWidth)},[d.current,t]);async function b(){const h={...e,_bistech_assignedcustomercontact_value:a};try{A==null||A({type:"Edit Project - Project Task update submitted",projectId:n,projectTaskId:e.msdyn_projecttaskid}),await o(h)}catch(w){throw f==null||f(w),w}A==null||A({type:"Edit Project - Project Task updated successfully",projectId:n,projectTaskId:e.msdyn_projecttaskid}),r(!1)}return u.jsx(yl,{buttonInfo:{disabled:!c,hasModal:!0,label:"Edit",modalInfo:{isErrorModal:!1,modalButtonLabel:"Save",modalContent:u.jsx(rt,{children:u.jsxs("div",{ref:d,children:[u.jsx(bt,{label:"Name",name:"project-name",value:e.msdyn_subject,onChange:()=>{},additionalInputProps:{disabled:!0}}),u.jsx("br",{}),m!==void 0&&u.jsx(nc,{name:"assigned to",label:"Assigned To",selectedOptionId:a,options:{loadingStatus:"loaded",value:y},pluralOptionsName:"Active Contacts",setSelectedOptionId:h=>s(h??""),fixedWidth:m})]})}),modalTitle:"Edit Project Task",onClick:async()=>b()}},isModalShown:t,setIsModalShown:r})};var Ar;(function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday"})(Ar||(Ar={}));var Vw;(function(e){e[e.January=0]="January",e[e.February=1]="February",e[e.March=2]="March",e[e.April=3]="April",e[e.May=4]="May",e[e.June=5]="June",e[e.July=6]="July",e[e.August=7]="August",e[e.September=8]="September",e[e.October=9]="October",e[e.November=10]="November",e[e.December=11]="December"})(Vw||(Vw={}));var fu;(function(e){e[e.FirstDay=0]="FirstDay",e[e.FirstFullWeek=1]="FirstFullWeek",e[e.FirstFourDayWeek=2]="FirstFourDayWeek"})(fu||(fu={}));var er;(function(e){e[e.Day=0]="Day",e[e.Week=1]="Week",e[e.Month=2]="Month",e[e.WorkWeek=3]="WorkWeek"})(er||(er={}));const cm=7,Tt={MillisecondsInOneDay:864e5,MillisecondsIn1Sec:1e3,MillisecondsIn1Min:6e4,MillisecondsIn30Mins:18e5,MillisecondsIn1Hour:36e5,MinutesInOneDay:1440,MinutesInOneHour:60,DaysInOneWeek:7,MonthInOneYear:12,HoursInOneDay:24,SecondsInOneMinute:60,OffsetTo24HourFormat:12,TimeFormatRegex:/^(\d\d?):(\d\d):?(\d\d)? ?([ap]m)?/i},gie=e=>e.getDate().toString(),hie=(e,t)=>t.months[e.getMonth()]+" "+e.getDate()+", "+e.getFullYear(),bie=(e,t)=>t.months[e.getMonth()]+" "+e.getFullYear(),yie=(e,t)=>t.months[e.getMonth()],wie=e=>e.getFullYear().toString(),xie={months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["S","M","T","W","T","F","S"]},lR={formatDay:gie,formatMonth:yie,formatYear:wie,formatMonthDayYear:hie,formatMonthYear:bie},dR={...xie,goToToday:"Go to today",weekNumberFormatString:"Week number {0}",prevMonthAriaLabel:"Previous month",nextMonthAriaLabel:"Next month",prevYearAriaLabel:"Previous year",nextYearAriaLabel:"Next year",prevYearRangeAriaLabel:"Previous year range",nextYearRangeAriaLabel:"Next year range",closeButtonAriaLabel:"Close",selectedDateFormatString:"Selected date {0}",todayDateFormatString:"Today's date {0}",monthPickerHeaderAriaLabel:"{0}, change year",yearPickerHeaderAriaLabel:"{0}, change month",dayMarkedAriaLabel:"marked"};function oi(e,t){const n=new Date(e.getTime());return n.setDate(n.getDate()+t),n}function G3(e,t){return oi(e,t*Tt.DaysInOneWeek)}function is(e,t){let n=new Date(e.getTime());const r=n.getMonth()+t;return n.setMonth(r),n.getMonth()!==(r%Tt.MonthInOneYear+Tt.MonthInOneYear)%Tt.MonthInOneYear&&(n=oi(n,-n.getDate())),n}function pd(e,t){let n=new Date(e.getTime());return n.setFullYear(e.getFullYear()+t),n.getMonth()!==(e.getMonth()%Tt.MonthInOneYear+Tt.MonthInOneYear)%Tt.MonthInOneYear&&(n=oi(n,-n.getDate())),n}function uR(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function AR(e){return new Date(e.getFullYear(),e.getMonth()+1,0,0,0,0,0)}function kie(e){return new Date(e.getFullYear(),0,1,0,0,0,0)}function Sie(e){return new Date(e.getFullYear()+1,0,0,0,0,0,0)}function q0(e,t){return is(e,t-e.getMonth())}function ua(e,t){return!e&&!t?!0:!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Er(e,t){return K3(e)-K3(t)}function ig(e,t,n,r,o=1){const i=[];let a,s=null;switch(r||(r=[Ar.Monday,Ar.Tuesday,Ar.Wednesday,Ar.Thursday,Ar.Friday]),o=Math.max(o,1),t){case er.Day:a=Y3(e),s=oi(a,o);break;case er.Week:case er.WorkWeek:a=Tie(Y3(e),n),s=oi(a,Tt.DaysInOneWeek);break;case er.Month:a=new Date(e.getFullYear(),e.getMonth(),1),s=is(a,1);break;default:throw new Error("Unexpected object: "+t)}let c=a;do(t!==er.WorkWeek||r.indexOf(c.getDay())!==-1)&&i.push(c),c=oi(c,1);while(!ua(c,s));return i}function jie(e,t){for(const n of t)if(ua(e,n))return!0;return!1}function Nie(e,t,n,r){const o=r.getFullYear(),i=r.getMonth();let a=1;const s=new Date(o,i,a),c=a+(t+Tt.DaysInOneWeek-1)-Pie(t,s.getDay());let l=new Date(o,i,c);a=l.getDate();const d=[];for(let A=0;A0&&(n-=Tt.DaysInOneWeek),oi(e,n)}function Y3(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function K3(e){return e.getDate()+(e.getMonth()<<5)+(e.getFullYear()<<9)}function J3(e,t,n){const r=qw(e)-1;let o=e.getDay()-r%Tt.DaysInOneWeek;const i=new Date(e.getFullYear()-1,Vw.December,31),a=qw(i)-1;let s=(t-o+2*Tt.DaysInOneWeek)%Tt.DaysInOneWeek;s!==0&&s>=n&&(s-=Tt.DaysInOneWeek);let c=r-s;return c<0&&(o-=a%Tt.DaysInOneWeek,s=(t-o+2*Tt.DaysInOneWeek)%Tt.DaysInOneWeek,s!==0&&s+1>=n&&(s-=Tt.DaysInOneWeek),c=a-s),Math.floor(c/Tt.DaysInOneWeek+1)}function Iie(e,t){const n=qw(e)-1,o=(e.getDay()-n%Tt.DaysInOneWeek-t+2*Tt.DaysInOneWeek)%Tt.DaysInOneWeek;return Math.floor((n+o)/Tt.DaysInOneWeek+1)}function Pie(e,t){return e!==Ar.Sunday&&t{const{minDate:n}=t;return n?Er(n,e)>=1:!1},mR=(e,t)=>{const{maxDate:n}=t;return n?Er(e,n)>=1:!1},vf=(e,t)=>{const{restrictedDates:n,minDate:r,maxDate:o}=t;return!n&&!r&&!o?!1:n&&n.some(a=>ua(a,e))||fR(e,t)||mR(e,t)},Q3=e=>{const{targetDate:t,initialDate:n,direction:r,...o}=e;let i=t;if(!vf(t,o))return t;for(;Er(n,i)!==0&&vf(i,o)&&!mR(i,o)&&!fR(i,o);)i=oi(i,r);if(Er(n,i)!==0&&!vf(i,o))return i},vR=(e,t,n)=>{let r=[...e];return t&&(r=r.filter(o=>Er(o,t)>=0)),n&&(r=r.filter(o=>Er(o,n)<=0)),r},Mie=(e,t,n)=>{const r=new Set(e);let o=0;for(const i of e){const a=(i+1)%7;r.has(a)&&n!==a||o++}return o<2},Rie=(e,t,n)=>t&&e===er.WorkWeek&&(!Mie(t,!0,n)||t.length===0)?er.Week:e,zie=e=>{const{selectedDate:t,dateRangeType:n,firstDayOfWeek:r,today:o,minDate:i,maxDate:a,weeksToShow:s,workWeekDays:c,daysToSelectInDayView:l,restrictedDates:d,markedDays:A}=e,f={minDate:i,maxDate:a,restrictedDates:d},m=o||new Date,v=e.navigatedDate?e.navigatedDate:m;let p;s&&s<=4?p=new Date(v.getFullYear(),v.getMonth(),v.getDate()):p=new Date(v.getFullYear(),v.getMonth(),1);const y=[];for(;p.getDay()!==r;)p.setDate(p.getDate()-1);p=oi(p,-cm);let b=!1;const h=Rie(n,c,r);let w=[];t&&(w=ig(t,h,r,c,l),w=vR(w,i,a));let x=!0;for(let k=0;x;k++){const S=[];b=!0;for(let N=0;Nua(C,j)))||!1};S.push(M),M.isInMonth&&(b=!1),p.setDate(p.getDate()+1)}x=s?k{El&&El.focus(),El=void 0})}}var Md;(function(e){e[e.Horizontal=0]="Horizontal",e[e.Vertical=1]="Vertical"})(Md||(Md={}));const ho={topRightCornerDate:"fui-CalendarDayGrid__topRightCornerDate",topLeftCornerDate:"fui-CalendarDayGrid__topLeftCornerDate",bottomRightCornerDate:"fui-CalendarDayGrid__bottomRightCornerDate",bottomLeftCornerDate:"fui-CalendarDayGrid__bottomLeftCornerDate"};function Eie(e){const{dir:t}=Ge(),n=i=>{const a={},s=i.slice(1,i.length-1);return s.forEach((c,l)=>{c.forEach((d,A)=>{const f=s[l-1]&&s[l-1][A]&&o(s[l-1][A].originalDate,d.originalDate,s[l-1][A].isSelected,d.isSelected),m=s[l+1]&&s[l+1][A]&&o(s[l+1][A].originalDate,d.originalDate,s[l+1][A].isSelected,d.isSelected),v=s[l][A-1]&&o(s[l][A-1].originalDate,d.originalDate,s[l][A-1].isSelected,d.isSelected),p=s[l][A+1]&&o(s[l][A+1].originalDate,d.originalDate,s[l][A+1].isSelected,d.isSelected);a[l+"_"+A]=r(f,m,v,p)})}),a},r=(i,a,s,c)=>{const l=[],d=!i&&!s,A=!i&&!c,f=!a&&!s,m=!a&&!c;return d&&l.push(t==="rtl"?ho.topRightCornerDate:ho.topLeftCornerDate),A&&l.push(t==="rtl"?ho.topLeftCornerDate:ho.topRightCornerDate),f&&l.push(t==="rtl"?ho.bottomRightCornerDate:ho.bottomLeftCornerDate),m&&l.push(t==="rtl"?ho.bottomLeftCornerDate:ho.bottomRightCornerDate),G(...l)},o=(i,a,s,c)=>{const{dateRangeType:l,firstDayOfWeek:d,workWeekDays:A}=e,f=l===er.WorkWeek?er.Week:l,m=ig(i,f,d,A);return s!==c?!1:s&&c?!0:m.filter(v=>v.getTime()===a.getTime()).length>0};return[n,r]}const Xn={wrapper:"fui-CalendarDayGrid__wrapper",table:"fui-CalendarDayGrid__table",dayCell:"fui-CalendarDayGrid__dayCell",daySelected:"fui-CalendarDayGrid__daySelected",daySingleSelected:"fui-CalendarDayGrid__daySingleSelected",weekRow:"fui-CalendarDayGrid__weekRow",weekDayLabelCell:"fui-CalendarDayGrid__weekDayLabelCell",weekNumberCell:"fui-CalendarDayGrid__weekNumberCell",dayOutsideBounds:"fui-CalendarDayGrid__dayOutsideBounds",dayOutsideNavigatedMonth:"fui-CalendarDayGrid__dayOutsideNavigatedMonth",dayButton:"fui-CalendarDayGrid__dayButton",dayIsToday:"fui-CalendarDayGrid__dayIsToday",firstTransitionWeek:"fui-CalendarDayGrid__firstTransitionWeek",lastTransitionWeek:"fui-CalendarDayGrid__lastTransitionWeek",dayMarker:"fui-CalendarDayGrid__dayMarker",dayTodayMarker:"fui-CalendarDayGrid__dayTodayMarker"},lA={hoverStyle:"fui-CalendarDayGrid__hoverStyle",pressedStyle:"fui-CalendarDayGrid__pressedStyle"},Bie=$({base:{Byoj8tv:"f1fow5ox"}},{d:[".f1fow5ox{padding-bottom:10px;}"]}),Fie=$({base:{po53p8:"fgkb47j",Bxjg3zr:"f16vktn6",Be2twd7:"fjoy568",B6of3ja:"fvjh0tl",Byoj8tv:"f1fow5ox",qhf8xq:"f10pi13n",B73mfa3:"f14m3nip",fsow6f:"f17mccla",a9b677:"f4m2ahc"},showWeekNumbers:{a9b677:"fl524qk"}},{d:[".fgkb47j{border-collapse:collapse;}",".f16vktn6{border-spacing:0;}",".fjoy568{font-size:inherit;}",".fvjh0tl{margin-top:4px;}",".f1fow5ox{padding-bottom:10px;}",".f10pi13n{position:relative;}",".f14m3nip{table-layout:fixed;}",".f17mccla{text-align:center;}",".f4m2ahc{width:196px;}",".fl524qk{width:226px;}"]}),Oie=$({base:{sj55zd:"f19n0e5",Bceei9c:"f1k6fduh",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1s184ao",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fqtknz5",qhf8xq:"f10pi13n",Bsw6fvg:"f8pusc0",Bbusuzp:"fqgauei",cvlxnx:"fp6dsbd",Bweudez:"f4xgodq",Bsnevi5:0,z1p9vi:0,dua3dm:0,Bf7el8m:"f1ko8o2g",xnb59o:"fts5qqo",B0mcfed:"fq2wdp5",Bj67fi1:"f1lhgsq9",B2gfgcj:"fdbuq6n",B6cqqer:"f16j2ub3",fpurfy:"f5hk6jp",Fioj4w:["f1d258es","f1llk4aj"],Bq9yiu4:"ftezgwa",cpbo2x:["f1llk4aj","f1d258es"],Bq268z6:"f1iohfpm"},focusIndicator:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",f6g5ot:0,Boxcth7:0,Bhdgwq3:0,hgwjuy:0,Bshpdp8:0,Bsom6fd:0,Blkhhs4:0,Bonggc9:0,Ddfuxk:0,i03rao:0,kclons:0,clg4pj:0,Bpqj9nj:0,B6dhp37:0,Bf4ptjt:0,Bqtpl0w:0,i4rwgc:"fpqizxz",Dah5zi:0,B1tsrr9:0,qqdqy8:0,Bkh64rk:0,e3fwne:"f3znvyf",J0r882:"fqkqgbk",Bule8hv:["f1as04kd","ft30ozv"],Bjwuhne:"f8pxvb2",Ghsupd:["ft30ozv","f1as04kd"]}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".f1k6fduh{cursor:pointer;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",[".f1s184ao{margin:0;}",{p:-1}],[".fqtknz5{padding:2px;}",{p:-1}],".f10pi13n{position:relative;}",".fp6dsbd.fui-CalendarDayGrid__hoverStyle{color:var(--colorNeutralForeground1Static);}",".f4xgodq.fui-CalendarDayGrid__hoverStyle{background-color:var(--colorBrandBackgroundInvertedHover);}",".f1lhgsq9.fui-CalendarDayGrid__pressedStyle{color:var(--colorNeutralForeground1Static);}",".fdbuq6n.fui-CalendarDayGrid__pressedStyle{background-color:var(--colorBrandBackgroundInvertedPressed);}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",[".fpqizxz[data-fui-focus-visible]::after{border:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}",{p:-2}],[".f3znvyf[data-fui-focus-visible]::after{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fqkqgbk[data-fui-focus-visible]::after{top:calc(var(--strokeWidthThick) * -1);}",".f1as04kd[data-fui-focus-visible]::after{right:calc(var(--strokeWidthThick) * -1);}",".ft30ozv[data-fui-focus-visible]::after{left:calc(var(--strokeWidthThick) * -1);}",".f8pxvb2[data-fui-focus-visible]::after{bottom:calc(var(--strokeWidthThick) * -1);}"],m:[["@media (forced-colors: active){.f8pusc0{background-color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fqgauei{color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ko8o2g.fui-CalendarDayGrid__hoverStyle{outline:1px solid Highlight;}}",{p:-1,m:"(forced-colors: active)"}],["@media (forced-colors: active){.fts5qqo.fui-CalendarDayGrid__hoverStyle{z-index:3;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fq2wdp5.fui-CalendarDayGrid__hoverStyle .fui-CalendarDayGrid__dayTodayMarker{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16j2ub3.fui-CalendarDayGrid__pressedStyle{background-color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f5hk6jp.fui-CalendarDayGrid__pressedStyle{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1d258es.fui-CalendarDayGrid__pressedStyle{border-right-color:Highlight;}.f1llk4aj.fui-CalendarDayGrid__pressedStyle{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ftezgwa.fui-CalendarDayGrid__pressedStyle{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1iohfpm.fui-CalendarDayGrid__pressedStyle{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}]],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"]}),Lie=$({base:{De3pzq:"f1vevd59",sj55zd:"ff5vbop",Bsw6fvg:"f1rirnrt",Bjwas2f:"f132fbg1",Bn1d65q:["f1ene5x0","fzbc999"],Bxeuatn:"f6jgcol",n51gp8:["fzbc999","f1ene5x0"],Bbusuzp:"f1lkg8j3",ycbfsm:"fkc42ay",a3nq4f:"f1chdfq9",Bnf3alp:"fq0dbue",H2c3sd:"f3pe0v7",qu8ld:"f3t0uu2",E9zv3o:"ft4goo8"}},{d:[".f1vevd59{background-color:var(--colorBrandBackgroundInvertedSelected);}",".ff5vbop{color:var(--colorNeutralForeground1Static);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f132fbg1{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ene5x0{border-right-color:Highlight;}.fzbc999{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f6jgcol{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3pe0v7:hover,.f3pe0v7.fui-CalendarDayGrid__hoverStyle,.f3pe0v7.fui-CalendarDayGrid__pressedStyle{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3t0uu2:hover,.f3t0uu2.fui-CalendarDayGrid__hoverStyle,.f3t0uu2.fui-CalendarDayGrid__pressedStyle{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ft4goo8>.fui-CalendarDayGrid__dayMarker{background-color:Window;}}",{m:"(forced-colors: active)"}]],h:[".f1chdfq9:hover,.f1chdfq9.fui-CalendarDayGrid__hoverStyle,.f1chdfq9.fui-CalendarDayGrid__pressedStyle{color:var(--colorNeutralForeground1Static);}",".fq0dbue:hover,.fq0dbue.fui-CalendarDayGrid__hoverStyle,.fq0dbue.fui-CalendarDayGrid__pressedStyle{background-color:var(--colorBrandBackgroundInvertedSelected);}"]}),Wie=$({base:{sj55zd:"ff5vbop",E9zv3o:"ft4goo8",B2ns3jv:"fy35frb",Bwxf4zv:0,Bp8cau8:0,Buy161k:0,Bpzqh5e:0,Fh6yq5:"f8kna22",B75pphk:"f3ef5pp",Cmeexk:["f1lmnm0c","f1nrej41"],yen2pv:"f1pt3b1q",ydc5we:["f1nrej41","f1lmnm0c"],Bz06psx:"fcydihv",Bvql7r5:["fgb2y1b","fzbode6"],k24jl4:"fofq8g1",Bksmc0g:["fzbode6","fgb2y1b"],Buxuwzc:"f36ub4m",xn840g:["f19aczhj","ffhc5ea"],Jh9m0u:"flfq9gv",Fmkg4n:["ffhc5ea","f19aczhj"],kmtgwu:"fv38a4k",g6m10a:"f1wil596",Birdjzs:["f1941p3i","fsfopon"],yojo9v:"f14tb4e3",qdeutu:["fsfopon","f1941p3i"],yfp87c:"f161hy0n",zuskld:"fbp2bxz"}},{d:[".ff5vbop{color:var(--colorNeutralForeground1Static);}",".fy35frb>.fui-CalendarDayGrid__dayButton{background-color:var(--colorBrandBackgroundInvertedSelected);}",[".f8kna22>.fui-CalendarDayGrid__dayButton{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f3ef5pp>.fui-CalendarDayGrid__dayButton{border-top-width:1px;}",".f1lmnm0c>.fui-CalendarDayGrid__dayButton{border-right-width:1px;}",".f1nrej41>.fui-CalendarDayGrid__dayButton{border-left-width:1px;}",".f1pt3b1q>.fui-CalendarDayGrid__dayButton{border-bottom-width:1px;}",".fcydihv>.fui-CalendarDayGrid__dayButton{border-top-style:solid;}",".fgb2y1b>.fui-CalendarDayGrid__dayButton{border-right-style:solid;}",".fzbode6>.fui-CalendarDayGrid__dayButton{border-left-style:solid;}",".fofq8g1>.fui-CalendarDayGrid__dayButton{border-bottom-style:solid;}",".f36ub4m>.fui-CalendarDayGrid__dayButton{border-top-color:var(--colorBrandStroke1);}",".f19aczhj>.fui-CalendarDayGrid__dayButton{border-right-color:var(--colorBrandStroke1);}",".ffhc5ea>.fui-CalendarDayGrid__dayButton{border-left-color:var(--colorBrandStroke1);}",".flfq9gv>.fui-CalendarDayGrid__dayButton{border-bottom-color:var(--colorBrandStroke1);}"],m:[["@media (forced-colors: active){.ft4goo8>.fui-CalendarDayGrid__dayMarker{background-color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fv38a4k>.fui-CalendarDayGrid__dayButton{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1wil596>.fui-CalendarDayGrid__dayButton{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1941p3i>.fui-CalendarDayGrid__dayButton{border-right-color:Highlight;}.fsfopon>.fui-CalendarDayGrid__dayButton{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14tb4e3>.fui-CalendarDayGrid__dayButton{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f161hy0n>.fui-CalendarDayGrid__dayButton{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbp2bxz>.fui-CalendarDayGrid__dayButton{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]]}),Uie=$({base:{qhf8xq:"f10pi13n",mlyf9c:"f1gazwyt"},animation:{vin17d:"f5f2jbu",Bf5fcs:"fywypte",Ezkn3b:"f1ee2ue"},horizontalBackward:{Bv12yb3:["f1o9w3l8","f1kwjajc"]},horizontalForward:{Bv12yb3:["f1kwjajc","f1o9w3l8"]},verticalBackward:{Bv12yb3:"fgl3yn7"},verticalForward:{Bv12yb3:"faiu5ye"}},{d:[".f10pi13n{position:relative;}",".f5f2jbu{animation-duration:0.367s;}",".fywypte{animation-fill-mode:both;}",".f1ee2ue{animation-timing-function:cubic-bezier(.1,.9,.2,1);}",".f1o9w3l8{animation-name:f5j8bii,f2lgmc3;}",".f1kwjajc{animation-name:f5j8bii,fpktcv7;}",".fgl3yn7{animation-name:f5j8bii,f3bv9km;}",".faiu5ye{animation-name:f5j8bii,funtx0y;}"],w:[".f1gazwyt:focus-within{z-index:1;}"],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f2lgmc3{from{pointer-events:none;transform:translate3d(-20px, 0, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}","@keyframes fpktcv7{from{pointer-events:none;transform:translate3d(20px, 0, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}","@keyframes f3bv9km{from{pointer-events:none;transform:translate3d(0, -20px, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}","@keyframes funtx0y{from{pointer-events:none;transform:translate3d(0, 20px, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}"]}),Hie=$({base:{famaaq:"f1xqy1su",vin17d:"fhsqnsn",Bf5fcs:"fywypte",Bv12yb3:"f1h7u52p",Ezkn3b:"fjq4c94"}},{d:[".f1xqy1su{-webkit-user-select:none;-moz-user-select:none;user-select:none;}",".fhsqnsn{animation-duration:0.267s;}",".fywypte{animation-fill-mode:both;}",".f1h7u52p{animation-name:f5j8bii;}",".fjq4c94{animation-timing-function:cubic-bezier(.1,.25,.75,.9);}"],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}"]}),Zie=$({base:{De3pzq:"f1c21dwh",h3c5rm:0,vrafjx:0,Bekrc4i:0,u1mtju:["fe2nn5g","f1rcbay7"],B7ck84d:"f1ewtqcl",sj55zd:"fxc4j92",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bqenvij:"fxldao9",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1s184ao",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",a9b677:"f1w9dchk"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".fe2nn5g{border-right:1px solid var(--colorNeutralStroke2);}",{p:-1}],[".f1rcbay7{border-left:1px solid var(--colorNeutralStroke2);}",{p:-1}],".f1ewtqcl{box-sizing:border-box;}",".fxc4j92{color:var(--colorNeutralForeground4);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fxldao9{height:28px;}",[".f1s184ao{margin:0;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],".f1w9dchk{width:28px;}"]}),Vie=$({base:{x734em:"f1v4z6xg",B0ssf13:"f1u9q7oh",B8h8h5z:"f1a22lcc",Bbusuzp:"f1dcs8yz"}},{d:[".f1v4z6xg,.f1v4z6xg:disabled,.f1v4z6xg button,.f1v4z6xg.fui-CalendarDayGrid__hoverStyle,.f1v4z6xg.fui-CalendarDayGrid__pressedStyle{background-color:var(--colorTransparentBackground);}",".f1u9q7oh,.f1u9q7oh:disabled,.f1u9q7oh button,.f1u9q7oh.fui-CalendarDayGrid__hoverStyle,.f1u9q7oh.fui-CalendarDayGrid__pressedStyle{color:var(--colorNeutralForegroundDisabled);}",".f1a22lcc,.f1a22lcc:disabled,.f1a22lcc button,.f1a22lcc.fui-CalendarDayGrid__hoverStyle,.f1a22lcc.fui-CalendarDayGrid__pressedStyle{pointer-events:none;}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),qie=$({lightenDaysOutsideNavigatedMonth:{sj55zd:"fxc4j92",Bhrd7zp:"figsok6",Bbusuzp:"f1dcs8yz"}},{d:[".fxc4j92{color:var(--colorNeutralForeground4);}",".figsok6{font-weight:var(--fontWeightRegular);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),_ie=$({base:{De3pzq:"f1c21dwh",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",sj55zd:"f1ym3bx4",Bceei9c:"f1k6fduh",Be2twd7:"fy9rknc",Bhrd7zp:"ff5ikls",Bqenvij:"frvgh55",Bg96gwp:"f8xlz6g",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",a9b677:"fq4mcun",Bx0yju7:"f10y451g",l98f4w:"f1dwpgx3",Jwef8y:"f18a0fwf",Btmb5he:0,gu71dq:0,B2zomw9:0,Fgk69s:0,Bw6eyry:"f1mhq3ai",ecr2s2:"f7la2e8"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".f3bhgqh{border:none;}",{p:-2}],".f1ym3bx4{color:inherit;}",".f1k6fduh{cursor:pointer;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".ff5ikls{font-weight:inherit;}",".frvgh55{height:24px;}",".f8xlz6g{line-height:24px;}",[".f1gl81tg{overflow:visible;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],".fq4mcun{width:24px;}",".f10y451gspan{height:inherit;}",".f1dwpgx3span{line-height:inherit;}"],h:[".f18a0fwf:hover{background-color:var(--colorBrandBackgroundInvertedHover);}",[".f1mhq3ai:hover{border-radius:var(--borderRadiusMedium);}",{p:-1}]],a:[".f7la2e8:active{background-color:var(--colorBrandBackgroundInvertedPressed);}"]}),Xie=$({base:{mc9l5x:"f22iagw",Brf1p80:"f4d9j23",Bt984gj:"f122n59",sj55zd:"f1phragk",Bhrd7zp:"fl43uef",kof2un:"f1b5s8wn",E9zv3o:"ft4goo8"}},{d:[".f22iagw{display:flex;}",".f4d9j23{justify-content:center;}",".f122n59{align-items:center;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".f1b5s8wn>.fui-CalendarDayGrid__dayMarker{background-color:var(--colorNeutralForegroundOnBrand);}"],m:[["@media (forced-colors: active){.ft4goo8>.fui-CalendarDayGrid__dayMarker{background-color:Window;}}",{m:"(forced-colors: active)"}]]}),Gie=$({base:{mc9l5x:"f22iagw",Brf1p80:"f4d9j23",Bt984gj:"f122n59",De3pzq:"ffp7eso",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1qtlz2s",a9b677:"f64fuq3",Bqenvij:"fjamq6b",Bg96gwp:"f1n95isl",Bsw6fvg:"fg374yq",Bjwas2f:"fx4t0an",Bn1d65q:["f1bd7qk0","fk5vpic"],Bxeuatn:"fgxnpfp",n51gp8:["fk5vpic","f1bd7qk0"],Bbusuzp:"f1yig07e",ycbfsm:"fkc42ay"}},{d:[".f22iagw{display:flex;}",".f4d9j23{justify-content:center;}",".f122n59{align-items:center;}",".ffp7eso{background-color:var(--colorBrandBackground);}",[".f1qtlz2s{border-radius:100%;}",{p:-1}],".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".f1n95isl{line-height:20px;}"],m:[["@media (forced-colors: active){.fg374yq{background-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fx4t0an{border-top-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1bd7qk0{border-right-color:WindowText;}.fk5vpic{border-left-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fgxnpfp{border-bottom-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1yig07e{color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]]}),Yie=$({base:{Bqenvij:"fniina8",abs64n:"fk73vx1",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",qhf8xq:"f1euv43f",a9b677:"f3tsq5r"},verticalForward:{vin17d:"f5f2jbu",Bf5fcs:"fywypte",Bv12yb3:"fupj2f5",Ezkn3b:"f1ee2ue"}},{d:[".fniina8{height:0;}",".fk73vx1{opacity:0;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],".f1euv43f{position:absolute;}",".f3tsq5r{width:0;}",".f5f2jbu{animation-duration:0.367s;}",".fywypte{animation-fill-mode:both;}",".fupj2f5{animation-name:f199e34v,f76svrd,f13agkrc;}",".f1ee2ue{animation-timing-function:cubic-bezier(.1,.9,.2,1);}"],k:["@keyframes f199e34v{from{opacity:1;}to{opacity:0;visibility:hidden;}}","@keyframes f76svrd{from{transform:translate3d(0, 0, 0);}to{transform:translate3d(0, -20px, 0);}}","@keyframes f13agkrc{100%{height:0px;overflow:hidden;width:0px;}99.9%{height:28px;overflow:visible;width:100%;}0%{height:28px;overflow:visible;width:100%;}}"]}),Kie=$({base:{Bqenvij:"fniina8",B6of3ja:"flykjtj",abs64n:"fk73vx1",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",qhf8xq:"f1euv43f",a9b677:"f3tsq5r"},verticalBackward:{vin17d:"f5f2jbu",Bf5fcs:"fywypte",Bv12yb3:"fifoktk",Ezkn3b:"f1ee2ue"}},{d:[".fniina8{height:0;}",".flykjtj{margin-top:-28px;}",".fk73vx1{opacity:0;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],".f1euv43f{position:absolute;}",".f3tsq5r{width:0;}",".f5f2jbu{animation-duration:0.367s;}",".fywypte{animation-fill-mode:both;}",".fifoktk{animation-name:f199e34v,f18895iq,f13agkrc;}",".f1ee2ue{animation-timing-function:cubic-bezier(.1,.9,.2,1);}"],k:["@keyframes f199e34v{from{opacity:1;}to{opacity:0;visibility:hidden;}}","@keyframes f18895iq{from{transform:translate3d(0, 0, 0);}to{transform:translate3d(0, 20px, 0);}}","@keyframes f13agkrc{100%{height:0px;overflow:hidden;width:0px;}99.9%{height:28px;overflow:visible;width:100%;}0%{height:28px;overflow:visible;width:100%;}}"]}),Jie=$({base:{De3pzq:"fnggedw",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1qtlz2s",B5kzvoi:"f1oq0udb",Bqenvij:"f6ywr7j",oyh7mz:["f1vgc2s3","f1e31b4d"],jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"fcpdi13",qhf8xq:"f1euv43f",j35jbq:["f1e31b4d","f1vgc2s3"],a9b677:"faro0ui",Bsw6fvg:"fg374yq",ycbfsm:"fkc42ay"}},{d:[".fnggedw{background-color:var(--colorBrandForeground2);}",[".f1qtlz2s{border-radius:100%;}",{p:-1}],".f1oq0udb{bottom:1px;}",".f6ywr7j{height:4px;}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",[".fcpdi13{margin:auto;}",{p:-1}],".f1euv43f{position:absolute;}",".faro0ui{width:4px;}"],m:[["@media (forced-colors: active){.fg374yq{background-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]]}),Qie=$({corners:{Cy64m2:["f1yxjewa","f5xfyye"],Bnn43bw:["f1kpdnd7","fokqrni"],feanbc:["f127emps","f1s6s1el"],B4268ip:["f39vr2a","frpqyrn"]}},{d:[".f1yxjewa.fui-CalendarDayGrid__topRightCornerDate{border-top-right-radius:var(--borderRadiusMedium);}",".f5xfyye.fui-CalendarDayGrid__topRightCornerDate{border-top-left-radius:var(--borderRadiusMedium);}",".f1kpdnd7.fui-CalendarDayGrid__topLeftCornerDate{border-top-left-radius:var(--borderRadiusMedium);}",".fokqrni.fui-CalendarDayGrid__topLeftCornerDate{border-top-right-radius:var(--borderRadiusMedium);}",".f127emps.fui-CalendarDayGrid__bottomRightCornerDate{border-bottom-right-radius:var(--borderRadiusMedium);}",".f1s6s1el.fui-CalendarDayGrid__bottomRightCornerDate{border-bottom-left-radius:var(--borderRadiusMedium);}",".f39vr2a.fui-CalendarDayGrid__bottomLeftCornerDate{border-bottom-left-radius:var(--borderRadiusMedium);}",".frpqyrn.fui-CalendarDayGrid__bottomLeftCornerDate{border-bottom-right-radius:var(--borderRadiusMedium);}"]}),$ie=e=>{"use no memo";const t=Bie(),n=Fie(),r=Oie(),o=Lie(),i=Wie(),a=Uie(),s=Hie(),c=Zie(),l=Vie(),d=qie(),A=_ie(),f=Xie(),m=Yie(),v=Kie(),p=Jie(),y=Qie(),b=Gie(),{animateBackwards:h,animationDirection:w,lightenDaysOutsideNavigatedMonth:x,showWeekNumbers:k}=e;return{wrapper:G(Xn.wrapper,t.base),table:G(Xn.table,n.base,k&&n.showWeekNumbers),dayCell:G(Xn.dayCell,r.base,r.focusIndicator,y.corners),daySelected:G(Xn.daySelected,o.base),daySingleSelected:G(Xn.daySingleSelected,i.base),weekRow:G(Xn.weekRow,a.base,h!==void 0&&a.animation,h!==void 0&&(w===Md.Horizontal?h?a.horizontalBackward:a.horizontalForward:h?a.verticalBackward:a.verticalForward)),weekDayLabelCell:G(Xn.weekDayLabelCell,s.base),weekNumberCell:G(Xn.weekNumberCell,c.base),dayOutsideBounds:G(Xn.dayOutsideBounds,l.base),dayOutsideNavigatedMonth:G(Xn.dayOutsideNavigatedMonth,x&&d.lightenDaysOutsideNavigatedMonth),dayButton:G(Xn.dayButton,A.base),dayIsToday:G(Xn.dayIsToday,f.base),firstTransitionWeek:G(Xn.firstTransitionWeek,m.base,h!==void 0&&w!==Md.Horizontal&&!h&&m.verticalForward),lastTransitionWeek:G(Xn.lastTransitionWeek,v.base,h!==void 0&&w!==Md.Horizontal&&h&&v.verticalBackward),dayMarker:G(Xn.dayMarker,p.base),dayTodayMarker:G(Xn.dayTodayMarker,b.base)}},eae=e=>{const{showWeekNumbers:t,strings:n,firstDayOfWeek:r,allFocusable:o,weeksToShow:i,weeks:a,classNames:s}=e,c=n.shortDays.slice();let l=-1;const d=a[1];for(let A=0;A=0){const A=(l+r)%cm;c[A]=n.shortMonths[a[1][l].originalDate.getMonth()]}return g.createElement("tr",null,t&&g.createElement("th",{className:s.dayCell}),c.map((A,f)=>{const m=(f+r)%cm,v=n.days[m];return g.createElement("th",{className:G(s.dayCell,s.weekDayLabelCell),scope:"col",key:c[m]+" "+f,title:v,"aria-label":v,tabIndex:o?0:void 0},c[m])}))},tae=e=>{"use no memo";const{navigatedDate:t,dateTimeFormatter:n,allFocusable:r,strings:o,activeDescendantId:i,navigatedDayRef:a,calculateRoundedStyles:s,weeks:c,classNames:l,day:d,dayIndex:A,weekIndex:f,weekCorners:m,ariaHidden:v,customDayCellRef:p,dateRangeType:y,daysToSelectInDayView:b,onSelectDate:h,restrictedDates:w,minDate:x,maxDate:k,onNavigateDate:S,getDayInfosInRangeOfDay:N,getRefsFromDayInfos:C}=e;var M;const j=(M=m==null?void 0:m[f+"_"+A])!==null&&M!==void 0?M:"",T=ua(t,d.originalDate),{dir:F}=Ge(),H=(W,z)=>{let L,q=1;if(W.key===af?(L=G3(z,-1),q=-1):W.key===cu?L=G3(z,1):W.key===zN(Mu,F)?(L=oi(z,-1),q=-1):W.key===zN(Ru,F)&&(L=oi(z,1)),!L)return;const P={initialDate:z,targetDate:L,direction:q,restrictedDates:w,minDate:x,maxDate:k};let U=Q3(P);U||(P.direction=-q,U=Q3(P)),!(c&&U&&c.slice(1,c.length-1).some(K=>K.some(te=>ua(te.originalDate,U))))&&U&&(S(U,!0),W.preventDefault())},R=W=>{const z=N(d),L=C(z);L.forEach((q,P)=>{if(q&&(q.classList.add(lA.hoverStyle),!z[P].isSelected&&y===er.Day&&b&&b>1)){q.classList.remove(ho.bottomLeftCornerDate,ho.bottomRightCornerDate,ho.topLeftCornerDate,ho.topRightCornerDate);const U=s(!1,!1,P>0,P{const z=N(d);C(z).forEach(q=>{q&&q.classList.add(lA.pressedStyle)})},_=W=>{const z=N(d);C(z).forEach(q=>{q&&q.classList.remove(lA.pressedStyle)})},Y=W=>{const z=N(d),L=C(z);L.forEach((q,P)=>{if(q&&(q.classList.remove(lA.hoverStyle),q.classList.remove(lA.pressedStyle),!z[P].isSelected&&y===er.Day&&b&&b>1)){const U=s(!1,!1,P>0,P{W.key===Hn?h==null||h(d.originalDate):H(W,d.originalDate)};let E=d.originalDate.getDate()+", "+o.months[d.originalDate.getMonth()]+", "+d.originalDate.getFullYear();d.isMarked&&(E=E+", "+o.dayMarkedAriaLabel);const D=!v&&(r||(d.isInBounds?!0:void 0));return g.createElement("td",{className:G(l.dayCell,m&&j,d.isSelected&&!d.isSingleSelected&&l.daySelected,d.isSingleSelected&&l.daySingleSelected,!d.isInBounds&&l.dayOutsideBounds,!d.isInMonth&&l.dayOutsideNavigatedMonth),ref:W=>{p==null||p(W,d.originalDate,l),d.setRef(W),T&&(a.current=W)},"aria-disabled":!v&&!d.isInBounds,onClick:d.isInBounds&&!v?d.onSelected:void 0,onMouseOver:v?void 0:R,onMouseDown:v?void 0:O,onMouseUp:v?void 0:_,onMouseOut:v?void 0:Y,onKeyDown:v?void 0:I,role:"gridcell",tabIndex:T||D?0:void 0,"aria-current":d.isToday?"date":void 0,"aria-selected":d.isInBounds?d.isSelected:void 0},g.createElement("button",{key:d.key+"button",className:G(l.dayButton,d.isToday&&l.dayIsToday),"aria-label":E,id:T?i:void 0,disabled:!v&&!d.isInBounds,type:"button",tabIndex:-1},g.createElement("span",{className:d.isToday?G(l.dayTodayMarker):void 0},n.formatDay(d.originalDate)),d.isMarked&&g.createElement("div",{"aria-hidden":"true",className:l.dayMarker})))},x1=e=>{const{ariaHidden:t,classNames:n,week:r,weeks:o,weekIndex:i,rowClassName:a,ariaRole:s,showWeekNumbers:c,firstDayOfWeek:l,firstWeekOfYear:d,navigatedDate:A,strings:f}=e,m=c?Nie(o.length,l,d,A):null,v=m?f.weekNumberFormatString&&f.weekNumberFormatString.replace("{0}",`${m[i]}`):"";return g.createElement("tr",{role:s,"aria-hidden":t,className:a,key:i+"_"+r[0].key},c&&m&&g.createElement("th",{className:n.weekNumberCell,key:i,title:v,"aria-label":v,scope:"row"},g.createElement("span",null,m[i])),r.map((p,y)=>g.createElement(tae,{...e,key:p.key,day:p,dayIndex:y})))};function nae(e,t,n){"use no memo";return g.useMemo(()=>{var o;const i=zie(e),a=i[1][0].originalDate,s=i[i.length-1][6].originalDate,c=((o=e.getMarkedDays)===null||o===void 0?void 0:o.call(e,a,s))||[],l=[];for(let d=0;dt(m.originalDate),setRef:n(m.key),...m,isMarked:m.isMarked||(c==null?void 0:c.some(p=>ua(m.originalDate,p)))};A.push(v)}l.push(A)}return l},[e])}function rae(){const e=g.useRef({});return[e,n=>r=>{r===null?delete e.current[n]:e.current[n]=r}]}function oae(e){const t=g.useRef();g.useEffect(()=>{t.current=e[0][0].originalDate});const n=t.current;if(!(!n||n.getTime()===e[0][0].originalDate.getTime()))return!(n<=e[0][0].originalDate)}const pR=e=>{const t=g.useRef(null),n=Rn(),r=S=>{var N,C;const{firstDayOfWeek:M,minDate:j,maxDate:T,workWeekDays:F,daysToSelectInDayView:H,restrictedDates:R}=e,O={minDate:j,maxDate:T,restrictedDates:R};let _=ig(S,m,M,F,H);_=vR(_,j,T),_=_.filter(Y=>!vf(Y,O)),(N=e.onSelectDate)===null||N===void 0||N.call(e,S,_),(C=e.onNavigateDate)===null||C===void 0||C.call(e,S,!0)},[o,i]=rae(),a=nae(e,r,i),s=oae(a),[c,l]=Eie(e);g.useImperativeHandle(e.componentRef,()=>({focus(){var S,N;(N=t.current)===null||N===void 0||(S=N.focus)===null||S===void 0||S.call(N)}}),[]);const d=S=>{const N=iae(e.dateRangeType,e.workWeekDays),C=ig(S.originalDate,N,e.firstDayOfWeek,e.workWeekDays,e.daysToSelectInDayView).map(j=>j.getTime());return a.reduce((j,T)=>j.concat(T.filter(F=>C.indexOf(F.originalDate.getTime())!==-1)),[])},A=S=>{let N=[];return N=S.map(C=>o.current[C.key]),N},{gridLabel:f,dateRangeType:m,showWeekNumbers:v,labelledBy:p,lightenDaysOutsideNavigatedMonth:y,animationDirection:b}=e,h=$ie({animateBackwards:s,animationDirection:b,dateRangeType:m,lightenDaysOutsideNavigatedMonth:y===void 0?!0:y,showWeekNumbers:v}),w=c(a),x={weeks:a,navigatedDayRef:t,calculateRoundedStyles:l,activeDescendantId:n,classNames:h,weekCorners:w,getDayInfosInRangeOfDay:d,getRefsFromDayInfos:A},k=Tu({axis:"grid"});return g.createElement("table",{className:G(h.table,e.className),"aria-multiselectable":"false","aria-label":f,"aria-labelledby":p,"aria-activedescendant":n,role:"grid",...k},g.createElement("tbody",null,g.createElement(eae,{...e,classNames:h,weeks:a}),g.createElement(x1,{...e,...x,week:a[0],weekIndex:-1,rowClassName:h.firstTransitionWeek,"aria-role":"presentation",ariaHidden:!0}),a.slice(1,a.length-1).map((S,N)=>g.createElement(x1,{...e,...x,key:N,week:S,weekIndex:N,rowClassName:h.weekRow})),g.createElement(x1,{...e,...x,week:a[a.length-1],weekIndex:-2,rowClassName:h.lastTransitionWeek,"aria-role":"presentation",ariaHidden:!0})))};pR.displayName="CalendarDayGrid";function iae(e,t){if(t&&e===er.WorkWeek){const n=t.slice().sort();let r=!0;for(let o=1;o{"use no memo";const t=aae(),n=sae(),r=cae(),o=lae(),i=dae(),a=uae(),{className:s,headerIsClickable:c,showWeekNumbers:l}=e;return{root:G(Bl.root,t.normalize,t.base,l&&t.showWeekNumbers,s),header:G(Bl.header,n.base),monthAndYear:G(Bl.monthAndYear,r.base,r.animation,c&&r.headerIsClickable),monthComponents:G(Bl.monthComponents,o.base),headerIconButton:G(Bl.headerIconButton,i.base),disabledStyle:G(Bl.disabledStyle,a.base)}},gR=e=>{const t=g.useRef(null);g.useImperativeHandle(e.componentRef,()=>({focus(){var k,S;(S=t.current)===null||S===void 0||(k=S.focus)===null||k===void 0||k.call(S)}}),[]);const{strings:n,gridLabel:r,navigatedDate:o,dateTimeFormatter:i,className:a,onHeaderSelect:s,showSixWeeksByDefault:c,minDate:l,maxDate:d,restrictedDates:A,onNavigateDate:f,showWeekNumbers:m,dateRangeType:v,animationDirection:p}=e,y=Aae({className:a,headerIsClickable:!!s,showWeekNumbers:m,animationDirection:p}),b=i.formatMonthYear(o,n),h=s?"button":"div",w=n.yearPickerHeaderAriaLabel?n.yearPickerHeaderAriaLabel.replace("{0}",b):b,{...x}=e;return g.createElement("div",{className:y.root},g.createElement("div",{className:y.header},g.createElement(h,{"aria-label":s?w:void 0,className:y.monthAndYear,onClick:s,tabIndex:s?0:-1,onKeyDown:qv(s),type:"button"},g.createElement("span",{"aria-live":"polite","aria-atomic":"true"},b)),g.createElement(hR,{...e,classNames:y})),g.createElement(pR,{...x,gridLabel:`${b}, ${r}`,componentRef:t,strings:n,navigatedDate:o,weeksToShow:c?6:void 0,dateTimeFormatter:i,minDate:l,maxDate:d,restrictedDates:A,onNavigateDate:f,dateRangeType:v}))};gR.displayName="CalendarDay";const hR=e=>{const{minDate:t,maxDate:n,navigatedDate:r,navigationIcons:o,allFocusable:i,strings:a,showCloseButton:s,classNames:c,onNavigateDate:l,onDismiss:d}=e,A=()=>{l(is(r,1),!1)},f=()=>{l(is(r,-1),!1)},m=t?Er(t,uR(r))<0:!0,v=n?Er(AR(r),n)<0:!0;return g.createElement("div",{className:c.monthComponents},g.createElement("button",{className:G(c.headerIconButton,!m&&c.disabledStyle),tabIndex:m?void 0:i?0:-1,"aria-disabled":!m,onClick:m?f:void 0,onKeyDown:m?qv(f):void 0,title:a.prevMonthAriaLabel?a.prevMonthAriaLabel+" "+a.months[is(r,-1).getMonth()]:void 0,type:"button"},o.upNavigation),g.createElement("button",{className:G(c.headerIconButton,!v&&c.disabledStyle),tabIndex:v?void 0:i?0:-1,"aria-disabled":!v,onClick:v?A:void 0,onKeyDown:v?qv(A):void 0,title:a.nextMonthAriaLabel?a.nextMonthAriaLabel+" "+a.months[is(r,1).getMonth()]:void 0,type:"button"},o.downNavigation),s&&g.createElement("button",{className:c.headerIconButton,onClick:d,onKeyDown:qv(d),title:a.closeButtonAriaLabel,type:"button"},o.dismiss))};hR.displayName="CalendarDayNavigationButtons";const qv=e=>t=>{switch(t.key){case Hn:e==null||e();break}},Bo={root:"fui-CalendarPicker",headerContainer:"fui-CalendarPicker__headerContainer",currentItemButton:"fui-CalendarPicker__currentItemButton",navigationButtonsContainer:"fui-CalendarPicker__navigationButtonsContainer",navigationButton:"fui-CalendarPicker__navigationButton",gridContainer:"fui-CalendarPicker__gridContainer",buttonRow:"fui-CalendarPicker__buttonRow",itemButton:"fui-CalendarPicker__itemButton",current:"fui-CalendarPicker__current",selected:"fui-CalendarPicker__selected",disabled:"fui-CalendarPicker__disabled"},fae=$({base:{B7ck84d:"f1e4lqlz",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1sy4kr4",a9b677:"f4m2ahc"},normalize:{E5pizo:"f1couhl3",B7ck84d:"f1ewtqcl",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1s184ao",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai"}},{d:[".f1e4lqlz{box-sizing:content-box;}",[".f1a3p1vp{overflow:hidden;}",{p:-1}],[".f1sy4kr4{padding:12px;}",{p:-1}],".f4m2ahc{width:196px;}",".f1couhl3{box-shadow:none;}",".f1ewtqcl{box-sizing:border-box;}",[".f1s184ao{margin:0;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}]]}),mae=$({base:{mc9l5x:"f22iagw"}},{d:[".f22iagw{display:flex;}"]}),vae=$({base:{De3pzq:"f1c21dwh",icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"],Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",sj55zd:"f1ym3bx4",Bh6795r:"fqerorx",Bahqtrf:"f1mo0ibp",Be2twd7:"fkhj508",Bhrd7zp:"fl43uef",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["f1td8mcv","f1udkdxo"],fsow6f:["f1o700av","fes3tcz"]},animation:{vin17d:"fhsqnsn",Bf5fcs:"fywypte",Bv12yb3:"f1h7u52p",Ezkn3b:"fjq4c94"},hasHeaderClickCallback:{Jwef8y:"f18a0fwf",Bi91k9c:"f3sdaeg",eoavqd:"f8491dx",pugfm4:0,ukgb2i:0,Dwtyhm:0,Biisq0s:"f15rpok4",iro3zm:"f1wvkgvo",B2d53fq:"f1wdoaqd",c3iz72:"f13c0t7h",mghro0:0,Bx68yb:0,syojd9:0,E5hylx:"fy2scak"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f1ym3bx4{color:inherit;}",".fqerorx{flex-grow:1;}",".f1mo0ibp{font-family:inherit;}",".fkhj508{font-size:var(--fontSizeBase300);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",[".f1gl81tg{overflow:visible;}",{p:-1}],[".f1td8mcv{padding:0 4px 0 10px;}",{p:-1}],[".f1udkdxo{padding:0 10px 0 4px;}",{p:-1}],".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fhsqnsn{animation-duration:0.267s;}",".fywypte{animation-fill-mode:both;}",".f1h7u52p{animation-name:f5j8bii;}",".fjq4c94{animation-timing-function:cubic-bezier(.1,.25,.75,.9);}"],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}"],h:[".f18a0fwf:hover{background-color:var(--colorBrandBackgroundInvertedHover);}",".f3sdaeg:hover{color:var(--colorBrandForegroundOnLightHover);}",".f8491dx:hover{cursor:pointer;}",[".f15rpok4:hover{outline:1px solid var(--colorTransparentStroke);}",{p:-1}],".f1wvkgvo:hover:active{background-color:var(--colorBrandBackgroundInvertedPressed);}",".f1wdoaqd:hover:active{color:var(--colorBrandForegroundOnLightPressed);}",".f13c0t7h:hover:active{cursor:pointer;}",[".fy2scak:hover:active{outline:1px solid var(--colorTransparentStroke);}",{p:-1}]]}),pae=$({base:{Bt984gj:"f122n59",mc9l5x:"f22iagw"}},{d:[".f122n59{align-items:center;}",".f22iagw{display:flex;}"]}),gae=$({base:{De3pzq:"f1c21dwh",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",sj55zd:"f19n0e5",mc9l5x:"ftgm304",Bahqtrf:"f1mo0ibp",Be2twd7:"fy9rknc",Bqenvij:"fxldao9",Bg96gwp:"f336tjw",sshi5w:"f1ysfysz",Bf4jedk:"f107v6xj",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",qhf8xq:"f10pi13n",fsow6f:"f17mccla",a9b677:"f1w9dchk",Jwef8y:"f18a0fwf",Bi91k9c:"f3sdaeg",eoavqd:"f8491dx",pugfm4:0,ukgb2i:0,Dwtyhm:0,Biisq0s:"f15rpok4",iro3zm:"f1wvkgvo",B2d53fq:"f1wdoaqd"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".f3bhgqh{border:none;}",{p:-2}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f19n0e5{color:var(--colorNeutralForeground1);}",".ftgm304{display:block;}",".f1mo0ibp{font-family:inherit;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fxldao9{height:28px;}",".f336tjw{line-height:28px;}",".f1ysfysz{min-height:28px;}",".f107v6xj{min-width:28px;}",[".f1gl81tg{overflow:visible;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],".f10pi13n{position:relative;}",".f17mccla{text-align:center;}",".f1w9dchk{width:28px;}"],h:[".f18a0fwf:hover{background-color:var(--colorBrandBackgroundInvertedHover);}",".f3sdaeg:hover{color:var(--colorBrandForegroundOnLightHover);}",".f8491dx:hover{cursor:pointer;}",[".f15rpok4:hover{outline:1px solid var(--colorTransparentStroke);}",{p:-1}],".f1wvkgvo:hover:active{background-color:var(--colorBrandBackgroundInvertedPressed);}",".f1wdoaqd:hover:active{color:var(--colorBrandForegroundOnLightPressed);}"]}),hae=$({base:{B6of3ja:"fvjh0tl"}},{d:[".fvjh0tl{margin-top:4px;}"]}),bae=$({base:{jrapky:"f15tpi3i",sw9gdo:"f1gdbdba"},animation:{vin17d:"f5f2jbu",Bf5fcs:"fywypte",Ezkn3b:"f1ee2ue"},horizontalBackward:{Bv12yb3:["f1o9w3l8","f1kwjajc"]},horizontalForward:{Bv12yb3:["f1kwjajc","f1o9w3l8"]},verticalBackward:{Bv12yb3:"fgl3yn7"},verticalForward:{Bv12yb3:"faiu5ye"}},{d:[".f15tpi3i{margin-bottom:16px;}",".f1gdbdba:last-of-type{margin-bottom:0;}",".f5f2jbu{animation-duration:0.367s;}",".fywypte{animation-fill-mode:both;}",".f1ee2ue{animation-timing-function:cubic-bezier(.1,.9,.2,1);}",".f1o9w3l8{animation-name:f5j8bii,f2lgmc3;}",".f1kwjajc{animation-name:f5j8bii,fpktcv7;}",".fgl3yn7{animation-name:f5j8bii,f3bv9km;}",".faiu5ye{animation-name:f5j8bii,funtx0y;}"],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f2lgmc3{from{pointer-events:none;transform:translate3d(-20px, 0, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}","@keyframes fpktcv7{from{pointer-events:none;transform:translate3d(20px, 0, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}","@keyframes f3bv9km{from{pointer-events:none;transform:translate3d(0, -20px, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}","@keyframes funtx0y{from{pointer-events:none;transform:translate3d(0, 20px, 0);}to{pointer-events:auto;transform:translate3d(0, 0, 0);}}"]}),yae=$({base:{De3pzq:"f1c21dwh",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",sj55zd:"f11d4kpn",Bahqtrf:"f1mo0ibp",Be2twd7:"fy9rknc",Bqenvij:"fbhnoac",Bg96gwp:"fc76cdq",sshi5w:"f1w5jphr",Bf4jedk:"f12clzc2",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:["f1ytixos","fqk6p8t"],B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",a9b677:"feqmc2u",Btgfwho:["f65zstl","f1yt3tqw"],xrote9:"flfbxit",Bja5ulm:"ff5vbxt",Jwef8y:"f18a0fwf",Bi91k9c:"f1u69ym5",eoavqd:"f8491dx",pugfm4:0,ukgb2i:0,Dwtyhm:0,Biisq0s:"f15rpok4",Bqrx1nm:"f9ep5xw",ze5xyy:"f1qvjex",iyr2r2:"fd2qbv0",Bx7pl5v:0,Bnosqey:0,Bv57zgv:0,Bbxjs3m:"fm3bo9w",iro3zm:"f1wvkgvo",g2kj27:"f1b9qfq3",pc6evw:"f9ddjv3",B76w7ga:"fr4cgi0"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".f3bhgqh{border:none;}",{p:-2}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f11d4kpn{color:var(--colorNeutralForeground3);}",".f1mo0ibp{font-family:inherit;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fbhnoac{height:40px;}",".fc76cdq{line-height:40px;}",".f1w5jphr{min-height:40px;}",".f12clzc2{min-width:40px;}",[".f1ytixos{margin:0 12px 0 0;}",{p:-1}],[".fqk6p8t{margin:0 0 0 12px;}",{p:-1}],[".f1gl81tg{overflow:visible;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],".feqmc2u{width:40px;}",".f65zstl:nth-child(4n + 4){margin-right:0;}",".f1yt3tqw:nth-child(4n + 4){margin-left:0;}",".flfbxit:nth-child(n + 9){margin-bottom:0;}",".ff5vbxt div{font-weight:var(--fontWeightRegular);}"],h:[".f18a0fwf:hover{background-color:var(--colorBrandBackgroundInvertedHover);}",".f1u69ym5:hover{color:var(--colorNeutralForeground1Static);}",".f8491dx:hover{cursor:pointer;}",[".f15rpok4:hover{outline:1px solid var(--colorTransparentStroke);}",{p:-1}],".f1wvkgvo:hover:active{background-color:var(--colorBrandBackgroundInvertedPressed);}"],m:[["@media (forced-colors: active){.f9ep5xw:hover{background-color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1qvjex:hover{color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fd2qbv0:hover{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fm3bo9w:hover{outline:1px solid Highlight;}}",{p:-1,m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1b9qfq3:hover:active{background-color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9ddjv3:hover:active{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fr4cgi0:hover:active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]]}),wae=$({highlightCurrent:{De3pzq:"ffp7eso",sj55zd:"f1phragk",Bhrd7zp:"fl43uef",Bsw6fvg:"fg374yq",Bbusuzp:"f1yig07e",ycbfsm:"fkc42ay",mk428o:"ffic4m0",B1lrsqs:"f13lyc4l",z0vste:"f13g7o2i",Bgjd7nk:"fbbf6h8",kur00z:"f1fsg2me"}},{d:[".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fl43uef{font-weight:var(--fontWeightSemibold);}"],m:[["@media (forced-colors: active){.fg374yq{background-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1yig07e{color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13g7o2i:hover,.f13g7o2i:hover:active{background-color:WindowText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbbf6h8:hover,.fbbf6h8:hover:active{color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1fsg2me:hover,.f1fsg2me:hover:active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]],h:[".ffic4m0:hover,.ffic4m0:hover:active{background-color:var(--colorBrandBackground);}",".f13lyc4l:hover,.f13lyc4l:hover:active{color:var(--colorNeutralForegroundOnBrand);}"]}),xae=$({highlightSelected:{De3pzq:"f1vevd59",sj55zd:"ff5vbop",Bhrd7zp:"fl43uef",Bsw6fvg:"f1rirnrt",Bbusuzp:"f1yig07e",ycbfsm:"fkc42ay",Bja5ulm:"fospawf",Jwef8y:"fbo057p",Bi91k9c:"f1u69ym5",Bqrx1nm:"fiu8gst",ze5xyy:"f1v4q6pl",iyr2r2:"fd2qbv0",iro3zm:"f1wvkgvo"}},{d:[".f1vevd59{background-color:var(--colorBrandBackgroundInvertedSelected);}",".ff5vbop{color:var(--colorNeutralForeground1Static);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fospawf div{font-weight:var(--fontWeightSemibold);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1yig07e{color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fiu8gst:hover{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1v4q6pl:hover{color:Window;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fd2qbv0:hover{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]],h:[".fbo057p:hover{background-color:var(--colorBrandBackgroundInvertedSelected);}",".f1u69ym5:hover{color:var(--colorNeutralForeground1Static);}",".f1wvkgvo:hover:active{background-color:var(--colorBrandBackgroundInvertedPressed);}"]}),kae=$({base:{Bg33ivm:"f1oelgmz",t69wg0:"fhh1ekj",Bbusuzp:"f1dcs8yz",ycbfsm:"fkc42ay"}},{d:[".f1oelgmz,.f1oelgmz:disabled,.f1oelgmz button{color:var(--colorNeutralForegroundDisabled);}",".fhh1ekj,.fhh1ekj:disabled,.fhh1ekj button{pointer-events:none;}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}]]}),bR=e=>{"use no memo";const t=fae(),n=mae(),r=vae(),o=pae(),i=gae(),a=hae(),s=bae(),c=yae(),l=wae(),d=xae(),A=kae(),{animateBackwards:f,animationDirection:m,className:v,hasHeaderClickCallback:p,highlightCurrent:y,highlightSelected:b}=e;return{root:G(Bo.root,t.normalize,t.base,v),headerContainer:G(Bo.headerContainer,n.base),currentItemButton:G(Bo.currentItemButton,r.base,f!==void 0&&r.animation,p&&r.hasHeaderClickCallback),navigationButtonsContainer:G(Bo.navigationButtonsContainer,o.base),navigationButton:G(Bo.navigationButton,i.base),gridContainer:G(Bo.gridContainer,a.base),buttonRow:G(Bo.buttonRow,s.base,s.animation,f!==void 0&&(m===Md.Horizontal?f?s.horizontalBackward:s.horizontalForward:f?s.verticalBackward:s.verticalForward)),itemButton:G(Bo.itemButton,c.base),selected:G(Bo.selected,b&&d.highlightSelected),current:G(Bo.current,y&&l.highlightCurrent),disabled:G(Bo.disabled,A.base)}},wl=e=>{"use no memo";return bR(e)},Rd=12,eT=4,yR={prevRangeAriaLabel:void 0,nextRangeAriaLabel:void 0},wR=e=>{const{className:t,highlightCurrentYear:n,highlightSelectedYear:r,year:o,selected:i,disabled:a,componentRef:s,onSelectYear:c,onRenderYear:l}=e,d=g.useRef(null);g.useImperativeHandle(s,()=>({focus(){var p,y;(y=d.current)===null||y===void 0||(p=y.focus)===null||p===void 0||p.call(y)}}),[]);const A=()=>{c==null||c(o)},f=p=>{p.key===Hn&&(c==null||c(o))},m=wl({className:t,highlightCurrent:n,highlightSelected:r});var v;return g.createElement("button",{className:G(m.itemButton,i&&m.selected,a&&m.disabled),type:"button",role:"gridcell",onClick:a?void 0:A,onKeyDown:a?void 0:f,disabled:a,"aria-selected":i,ref:d},(v=l==null?void 0:l(o))!==null&&v!==void 0?v:o)};wR.displayName="CalendarYearGridCell";const xR=e=>{const{className:t,fromYear:n,toYear:r,animationDirection:o,animateBackwards:i,minYear:a,maxYear:s,onSelectYear:c,selectedYear:l,componentRef:d}=e,A=g.useRef(null),f=g.useRef(null);g.useImperativeHandle(d,()=>({focus(){var x,k;(k=A.current||f.current)===null||k===void 0||(x=k.focus)===null||x===void 0||x.call(k)}}),[]);const m=x=>{const k=x===l,S=a!==void 0&&xs,N=x===new Date().getFullYear();return g.createElement(wR,{...e,key:x,year:x,selected:k,current:N,disabled:S,onSelectYear:c,componentRef:k?A:N?f:void 0})},v=wl({className:t,animateBackwards:i,animationDirection:o}),p=x=>{var k,S;return(S=(k=e.onRenderYear)===null||k===void 0?void 0:k.call(e,x))!==null&&S!==void 0?S:x},y=`${p(n)} - ${p(r)}`;let b=n;const h=[];for(let x=0;x<(r-n+1)/eT;x++){h.push([]);for(let k=0;kg.createElement("div",{key:"yearPickerRow_"+k+"_"+n,role:"row",className:v.buttonRow},x)))};xR.displayName="CalendarYearGrid";const Tc={Previous:0,Next:1},_w=e=>{const{className:t,strings:n=yR,direction:r,onSelectPrev:o,onSelectNext:i,fromYear:a,toYear:s,maxYear:c,minYear:l,navigationIcons:d}=e,A=wl({className:t}),f=r===Tc.Previous?n.prevRangeAriaLabel:n.nextRangeAriaLabel,m=r===Tc.Previous?-Rd:Rd,v={fromYear:a+m,toYear:s+m},p=f?typeof f=="string"?f:f(v):void 0,y=r===Tc.Previous?l!==void 0&&ac,b=()=>{r===Tc.Previous?o==null||o():i==null||i()},h=w=>{w.key===Hn&&b()};return g.createElement("button",{className:G(A.navigationButton,y&&A.disabled),onClick:y?void 0:b,onKeyDown:y?void 0:h,type:"button",title:p,disabled:y},r===Tc.Previous?d.upNavigation:d.downNavigation)};_w.displayName="CalendarYearNavArrow";const kR=e=>{const{className:t}=e,n=wl({className:t});return g.createElement("div",{className:n.navigationButtonsContainer},g.createElement(_w,{...e,direction:Tc.Previous}),g.createElement(_w,{...e,direction:Tc.Next}))};kR.displayName="CalendarYearNav";const SR=e=>{const{className:t,fromYear:n,toYear:r,strings:o=yR,animateBackwards:i,animationDirection:a}=e,s=()=>{var A;(A=e.onHeaderSelect)===null||A===void 0||A.call(e,!0)},c=A=>{(A.key===Hn||A.key===To)&&s()},l=A=>{var f,m;return(m=(f=e.onRenderYear)===null||f===void 0?void 0:f.call(e,A))!==null&&m!==void 0?m:A},d=wl({className:t,hasHeaderClickCallback:!!e.onHeaderSelect,animateBackwards:i,animationDirection:a});if(e.onHeaderSelect){const A=o.rangeAriaLabel,f=o.headerAriaLabelFormatString,m=A?typeof A=="string"?A:A(e):void 0,v=f?f.replace("{0}",m??""):m;return g.createElement("button",{className:d.currentItemButton,onClick:s,onKeyDown:c,"aria-label":v,role:"button",type:"button"},g.createElement("span",{"aria-live":"assertive","aria-atomic":"true"},l(n)," - ",l(r)))}return g.createElement("div",{className:d.current},l(n)," - ",l(r))};SR.displayName="CalendarYearTitle";const jR=e=>{const{className:t,animateBackwards:n,animationDirection:r,onRenderTitle:o}=e,i=wl({className:t,hasHeaderClickCallback:!!e.onHeaderSelect,animateBackwards:n,animationDirection:r});var a;return g.createElement("div",{className:i.headerContainer},(a=o==null?void 0:o(e))!==null&&a!==void 0?a:g.createElement(SR,e),g.createElement(kR,e))};jR.displayName="CalendarYearHeader";function Sae({selectedYear:e,navigatedYear:t}){const n=e||t||new Date().getFullYear(),r=Math.floor(n/10)*10,o=g.useRef(r);g.useRef(()=>{o.current=r});const i=o.current;if(!(!i||i===r))return i>r}function jae({selectedYear:e,navigatedYear:t}){const n=g.useMemo(()=>e||t||Math.floor(new Date().getFullYear()/10)*10,[t,e]),[r,o]=g.useState(n),i=()=>{o(c=>c+Rd)},a=()=>{o(c=>c-Rd)};g.useEffect(()=>{o(n)},[n]);const s=r+Rd-1;return[r,s,i,a]}const NR=e=>{const t=Sae(e),[n,r,o,i]=jae(e),a=g.useRef(null);g.useImperativeHandle(e.componentRef,()=>({focus(){var l,d;(d=a.current)===null||d===void 0||(l=d.focus)===null||l===void 0||l.call(d)}}));const{className:s}=e,c=wl({className:s});return g.createElement("div",{className:c.root},g.createElement(jR,{...e,fromYear:n,toYear:r,onSelectPrev:i,onSelectNext:o,animateBackwards:t}),g.createElement(xR,{...e,fromYear:n,toYear:r,animateBackwards:t,componentRef:a}))};NR.displayName="CalendarYear";const Nae=e=>{"use no memo";return bR(e)},_0=4;function Cae({navigatedDate:e}){const t=e.getFullYear(),n=g.useRef();g.useEffect(()=>{n.current=t});const r=n.current;if(!(r===void 0||r===t))return r>t}function Tae({componentRef:e}){const t=g.useRef(null),n=g.useRef(null),r=g.useRef(!1),o=g.useCallback(()=>{n.current?n.current.focus():t.current&&t.current.focus()},[]);return g.useImperativeHandle(e,()=>({focus:o}),[o]),g.useEffect(()=>{r.current&&(o(),r.current=!1)}),[t,n,()=>{r.current=!0}]}const CR=e=>{const{allFocusable:t,animationDirection:n,className:r,componentRef:o,dateTimeFormatter:i=lR,highlightCurrentMonth:a,highlightSelectedMonth:s,maxDate:c,minDate:l,navigatedDate:d,navigationIcons:A,onHeaderSelect:f,onNavigateDate:m,selectedDate:v,strings:p,today:y=new Date,yearPickerHidden:b=!1}=e,[h,w,x]=Tae({componentRef:o}),[k,S]=g.useState(!1),N=Cae({navigatedDate:d}),C=L=>()=>T(L),M=()=>{m(pd(d,1),!1)},j=()=>{m(pd(d,-1),!1)},T=L=>{f==null||f(),m(q0(d,L),!0)},F=()=>{b?f==null||f():(x(),S(!0))},H=L=>{if(x(),d.getFullYear()!==L){let P=new Date(d.getTime());P.setFullYear(L),c&&P>c?P=q0(P,c.getMonth()):l&&P{x(),S(!1)},O=i,_=l?Er(l,kie(d))<0:!0,Y=c?Er(Sie(d),c)<0:!0,I=Nae({className:r,hasHeaderClickCallback:!!f||!b,highlightCurrent:a,highlightSelected:s,animateBackwards:N,animationDirection:n}),E=Tu({axis:"grid"});if(k){const[L,q]=Iae({dateTimeFormatter:i,navigatedDate:d,strings:p});return g.createElement(NR,{key:"calendarYear",minYear:l?l.getFullYear():void 0,maxYear:c?c.getFullYear():void 0,onSelectYear:H,onHeaderSelect:R,selectedYear:v?v.getFullYear():d?d.getFullYear():void 0,navigatedYear:d.getFullYear(),navigationIcons:A,onRenderYear:L,strings:q,componentRef:w,highlightCurrentYear:a,highlightSelectedYear:s,animationDirection:n})}const D=[];for(let L=0;L{const q=p.shortMonths.slice(L*_0,(L+1)*_0);return g.createElement("div",{key:"monthRow_"+L+d.getFullYear(),role:"row",className:I.buttonRow},q.map((P,U)=>{const B=L*_0+U,K=q0(d,B),te=d.getMonth()===B,Ae=v.getMonth()===B,ae=v.getFullYear()===d.getFullYear(),Ne=(l?Er(l,AR(K))<1:!0)&&(c?Er(uR(K),c)<1:!0);return g.createElement("button",{ref:te?h:void 0,role:"gridcell",className:G(I.itemButton,a&&Pae(B,d.getFullYear(),y)&&I.current,s&&Ae&&ae&&I.selected,!Ne&&I.disabled),disabled:!t&&!Ne,key:B,onClick:Ne?C(B):void 0,onKeyDown:Ne?X0(C(B)):void 0,"aria-label":O.formatMonth(K,p),"aria-selected":te,tabIndex:Ne?0:-1,type:"button"},P)}))})))};CR.displayName="CalendarMonth";function Iae({dateTimeFormatter:e,navigatedDate:t,strings:n}){const r=s=>{if(e){const c=new Date(t.getTime());return c.setFullYear(s),e.formatYear(c)}return String(s)},o=s=>`${r(s.fromYear)} - ${r(s.toYear)}`;return[r,{rangeAriaLabel:o,prevRangeAriaLabel:s=>n.prevYearRangeAriaLabel?`${n.prevYearRangeAriaLabel} ${o(s)}`:"",nextRangeAriaLabel:s=>n.nextYearRangeAriaLabel?`${n.nextYearRangeAriaLabel} ${o(s)}`:"",headerAriaLabelFormatString:n.yearPickerHeaderAriaLabel}]}function Pae(e,t,n){return n.getFullYear()===t&&n.getMonth()===e}function X0(e){return t=>{switch(t.key){case Hn:e();break}}}const tT={dismiss:g.createElement(Tk,null),downNavigation:g.createElement(R8,null),upNavigation:g.createElement(z8,null)},dA={root:"fui-Calendar",divider:"fui-Calendar__divider",goTodayButton:"fui-Calendar__goTodayButton",monthPickerWrapper:"fui-Calendar__monthPickerWrapper",liveRegion:"fui-Calendar__liveRegion"},Dae=$({base:{mc9l5x:"f22iagw",a9b677:"f13dwy2t"},normalize:{E5pizo:"f1couhl3",B7ck84d:"f1ewtqcl",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1s184ao",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai"},monthPickerNotVisible:{Beiy3e4:"f1vx9l62"},dayAndMonthPickersVisible:{a9b677:"fcy5b15"},dayPickerVisibleAndWeekNumbersShown:{a9b677:"fhsg0in"},dayAndMonthPickersVisibleAndWeekNumbersShown:{a9b677:"fcarq7f"}},{d:[".f22iagw{display:flex;}",".f13dwy2t{width:220px;}",".f1couhl3{box-shadow:none;}",".f1ewtqcl{box-sizing:border-box;}",[".f1s184ao{margin:0;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],".f1vx9l62{flex-direction:column;}",".fcy5b15{width:440px;}",".fhsg0in{width:250px;}",".fcarq7f{width:470px;}"]}),Mae=$({base:{h3c5rm:0,vrafjx:0,Bekrc4i:0,u1mtju:["fe2nn5g","f1rcbay7"],Bhzewxz:"f15twtuk"}},{d:[[".fe2nn5g{border-right:1px solid var(--colorNeutralStroke2);}",{p:-1}],[".f1rcbay7{border-left:1px solid var(--colorNeutralStroke2);}",{p:-1}],".f15twtuk{top:0;}"]}),Rae=$({base:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}"]}),zae=$({base:{qb2dma:"fpydfdc",De3pzq:"f1c21dwh",icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"],B5kzvoi:"f1yab3r1",B7ck84d:"f1e4lqlz",sj55zd:"f19n0e5",Bahqtrf:"f1mo0ibp",Be2twd7:"fy9rknc",Bqenvij:"f1tvdnth",Bg96gwp:"fpfng1i",t21cq0:["f17vyym1","fb5scp"],B6of3ja:"f4gg0ds",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1gl81tg",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1p2x7z2",seuwu7:"fvy6vk6",Jwef8y:"f9ql6rf",Bi91k9c:"f1f1pb61",eoavqd:"f8491dx",Bx7pl5v:0,Bnosqey:0,Bv57zgv:0,Bbxjs3m:"fzk52v6",knvgbf:0,B23s7e0:0,Be8uuq8:0,B3ons6i:0,Bnj8mme:"fxh1mxx",B2d53fq:"fc9d3oc",Dyrjrp:"f1cqwcg4",Be90el1:"fmjaa5u"}},{d:[".fpydfdc{align-self:flex-end;}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",".f1yab3r1{bottom:0;}",".f1e4lqlz{box-sizing:content-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1mo0ibp{font-family:inherit;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".f1tvdnth{height:30px;}",".fpfng1i{line-height:30px;}",".f17vyym1{margin-right:16px;}",".fb5scp{margin-left:16px;}",".f4gg0ds{margin-top:3px;}",[".f1gl81tg{overflow:visible;}",{p:-1}],[".f1p2x7z2{padding:0 4px;}",{p:-1}],".fvy6vk6 div{font-size:var(--fontSizeBase200);}",".f1cqwcg4:disabled{color:var(--colorNeutralForegroundDisabled);}",".fmjaa5u:disabled{pointer-events:none;}"],h:[".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f1f1pb61:hover{color:var(--colorBrandForeground1);}",".f8491dx:hover{cursor:pointer;}",".fc9d3oc:hover:active{color:var(--colorBrandForeground2);}"],m:[["@media (forced-colors: active){.fzk52v6:hover{outline:var(--strokeWidthThin);}}",{p:-1,m:"(forced-colors: active)"}],["@media (forced-colors: active){.fxh1mxx:hover{border-radius:var(--borderRadiusSmall);}}",{p:-1,m:"(forced-colors: active)"}]]}),Eae=$({base:{Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",Bqenvij:"f1mpe4l3",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1jlpb2r",B68tc82:0,Bmxbyg5:0,Bpg54ce:"f1a3p1vp",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1mk8lai",qhf8xq:"f1euv43f",a9b677:"frkrog8"}},{d:[[".f3bhgqh{border:none;}",{p:-2}],".f1mpe4l3{height:1px;}",[".f1jlpb2r{margin:-1px;}",{p:-1}],[".f1a3p1vp{overflow:hidden;}",{p:-1}],[".f1mk8lai{padding:0;}",{p:-1}],".f1euv43f{position:absolute;}",".frkrog8{width:1px;}"]}),Bae=e=>{"use no memo";const t=Dae(),n=Mae(),r=Rae(),o=zae(),i=Eae(),{className:a,isDayPickerVisible:s,isMonthPickerVisible:c,showWeekNumbers:l}=e;return{root:G(dA.root,t.base,t.normalize,!c&&t.monthPickerNotVisible,s&&c&&!l&&t.dayAndMonthPickersVisible,s&&!c&&l&&t.dayPickerVisibleAndWeekNumbersShown,s&&c&&l&&t.dayAndMonthPickersVisibleAndWeekNumbersShown,a),divider:G(dA.divider,n.base),monthPickerWrapper:G(dA.monthPickerWrapper,r.base),goTodayButton:G(dA.goTodayButton,o.base),liveRegion:G(dA.liveRegion,i.base)}},Fae=440,Oae=[Ar.Monday,Ar.Tuesday,Ar.Wednesday,Ar.Thursday,Ar.Friday];function Lae(e){const{value:t,today:n,onSelectDate:r}=e,o=g.useMemo(()=>n??new Date,[n]),[i,a]=Mn({state:t,defaultState:t?void 0:o,initialState:o}),[s=o,c]=g.useState(t),[l=o,d]=g.useState(t),[A=o,f]=g.useState(t);return t&&A.valueOf()!==t.valueOf()&&(c(t),d(t),f(t)),[i,s,l,(y,b)=>{d(y),c(y),a(y),r==null||r(y,b)},y=>{d(y),c(y)},y=>{d(y)}]}function Wae({isDayPickerVisible:e,isMonthPickerVisible:t,showMonthPickerAsOverlay:n}){const r=TR({isDayPickerVisible:e,showMonthPickerAsOverlay:n}),[o,i]=g.useState(()=>r?!1:t??!1),[a,s]=g.useState(()=>r?!0:e??!0);return[o,a,()=>{i(!o),s(!a)}]}function Uae({componentRef:e},t,n){const r=g.useRef(null),o=g.useRef(null),i=g.useRef(!1),{targetDocument:a}=Ge(),s=a==null?void 0:a.defaultView,c=g.useCallback(()=>{t&&r.current?$3(r.current,s):n&&o.current&&$3(o.current,s)},[t,n,s]);return g.useImperativeHandle(e,()=>({focus:c}),[c]),g.useEffect(()=>{i.current&&(c(),i.current=!1)}),[r,o,()=>{i.current=!0}]}const Xw=g.forwardRef((e,t)=>{const{allFocusable:n=!1,calendarDayProps:r,calendarMonthProps:o,className:i,componentRef:a,dateRangeType:s=er.Day,dateTimeFormatter:c=lR,firstDayOfWeek:l=Ar.Sunday,firstWeekOfYear:d=fu.FirstDay,highlightCurrentMonth:A=!1,highlightSelectedMonth:f=!1,id:m,isDayPickerVisible:v=!0,isMonthPickerVisible:p=!0,maxDate:y,minDate:b,onDismiss:h,onSelectDate:w,restrictedDates:x,showCloseButton:k=!1,showGoToToday:S=!0,showMonthPickerAsOverlay:N=!1,showSixWeeksByDefault:C=!1,showWeekNumbers:M=!1,strings:j=dR,today:T,value:F,workWeekDays:H=Oae}=e,R=g.useMemo(()=>T??new Date,[T]),[O,_,Y,I,E,D]=Lae({onSelectDate:w,value:F,today:R}),[W,z,L]=Wae({isDayPickerVisible:v,isMonthPickerVisible:p,showMonthPickerAsOverlay:N}),[q,P,U]=Uae({componentRef:a},z,W),B=()=>{let le=S;return le&&R&&(le=_.getFullYear()!==R.getFullYear()||_.getMonth()!==R.getMonth()||Y.getFullYear()!==R.getFullYear()||Y.getMonth()!==R.getMonth()),S&&g.createElement("button",{className:V.goTodayButton,onClick:Ne,onKeyDown:oe(Ne),type:"button",disabled:!le},j.goToToday)},K=(le,pe)=>{E(le),pe&&U()},te=(le,pe)=>{if(pe&&U(),!pe){D(le);return}Z&&I(le),E(le)},Ae=TR({isDayPickerVisible:v,showMonthPickerAsOverlay:N}),ae=Ae?()=>{L(),U()}:void 0,Ne=()=>{E(R),Ae&&W&&L(),U()},oe=le=>pe=>{switch(pe.key){case Hn:case To:le();break}},xe=le=>{switch(le.key){case Hn:le.preventDefault();break;case SV:le.preventDefault();break;case $s:le.stopPropagation(),h==null||h();break;case C8:le.ctrlKey?E(pd(_,1)):E(is(_,1)),le.preventDefault();break;case N8:le.ctrlKey?E(pd(_,-1)):E(is(_,-1)),le.preventDefault();break}},Z=!Ae&&!z,V=Bae({className:i,isDayPickerVisible:z,isMonthPickerVisible:W,showWeekNumbers:M});let X="",J="";if(c&&j.todayDateFormatString&&(X=j.todayDateFormatString.replace("{0}",c.formatMonthDayYear(R,j))),c&&j.selectedDateFormatString){const le=Z?c.formatMonthYear:c.formatMonthDayYear;J=j.selectedDateFormatString.replace("{0}",le(O,j))}const ce=J+", "+X;return g.createElement("div",{id:m,ref:t,className:V.root,onKeyDown:xe},g.createElement("div",{className:V.liveRegion,"aria-live":"polite","aria-atomic":"true"},g.createElement("span",null,J)),z&&g.createElement(gR,{gridLabel:ce,selectedDate:O,navigatedDate:_,today:R,onSelectDate:I,onNavigateDate:K,onDismiss:h,firstDayOfWeek:l,dateRangeType:s,strings:j,onHeaderSelect:ae,showWeekNumbers:M,firstWeekOfYear:d,dateTimeFormatter:c,showSixWeeksByDefault:C,minDate:b,maxDate:y,navigationIcons:tT,restrictedDates:x,workWeekDays:H,componentRef:q,showCloseButton:k,allFocusable:n,...r}),z&&W&&g.createElement("div",{className:V.divider}),W?g.createElement("div",{className:V.monthPickerWrapper},g.createElement(CR,{navigatedDate:Y,selectedDate:_,strings:j,onNavigateDate:te,today:R,highlightCurrentMonth:A,highlightSelectedMonth:f,onHeaderSelect:ae,dateTimeFormatter:c,minDate:b,maxDate:y,componentRef:P,navigationIcons:tT,...o}),B()):B())});Xw.displayName="Calendar";const TR=({isDayPickerVisible:e,showMonthPickerAsOverlay:t})=>{const{targetDocument:n}=Ge(),r=n==null?void 0:n.defaultView;return t||e&&r&&r.innerWidth<=Fae},Hae=dR,Zae={...Hae,prevMonthAriaLabel:"Go to previous month",nextMonthAriaLabel:"Go to next month",prevYearAriaLabel:"Go to previous year",nextYearAriaLabel:"Go to next year",closeButtonAriaLabel:"Close date picker"},Vae=e=>{const{inlinePopup:t}=e;return ut(g.Fragment,{children:[Q(e.root,{}),e.popupSurface&&(t?Q(e.popupSurface,{children:Q(e.calendar,{})}):Q(Bu,{mountNode:e.mountNode,children:Q(e.popupSurface,{children:Q(e.calendar,{})})}))]})};function qae(e){const{positioning:t}=e,n={position:"below",align:"start",...Jm(t)},{targetRef:r,containerRef:o}=Kh(n);return[r,o]}function _ae(e,t,n){return!!t&&Er(t,e)>0||!!n&&Er(n,e)<0}function Xae(){const e=g.useRef(null),t=g.useRef(!1),n=g.useCallback(()=>{var o,i;(i=e.current)===null||i===void 0||(o=i.focus)===null||o===void 0||o.call(i)},[]),r=g.useCallback(()=>{t.current=!0},[]);return[n,e,t,r]}function Gae(e){"use no memo";const[t,n]=Mn({initialState:!1,defaultState:e.defaultOpen,state:e.open}),r=g.useRef(!1);return g.useEffect(()=>{if(r.current&&!t){var o;(o=e.onOpenChange)===null||o===void 0||o.call(e,!1)}r.current=!0},[e.allowTextInput,t]),[t,n]}function Yae({formatDate:e,onSelectDate:t,value:n}){const[r,o]=Mn({initialState:null,state:n}),[i,a]=g.useState(()=>n&&e?e(n):""),s=c=>{t==null||t(c),o(c),a(c&&e?e(c):"")};return g.useEffect(()=>{a(n&&e?e(n):"")},[e,n]),[r,i,s,a]}const Kae=e=>e?e.toDateString():"",Jae=e=>{const t=Date.parse(e);return t?new Date(t):null},Qae=(e,t)=>{"use no memo";const{allowTextInput:n=!1,allFocusable:r=!1,borderless:o=!1,dateTimeFormatter:i,defaultOpen:a=!1,disableAutoFocus:s=!0,firstDayOfWeek:c=Ar.Sunday,firstWeekOfYear:l=fu.FirstDay,formatDate:d=Kae,highlightCurrentMonth:A=!1,highlightSelectedMonth:f=!1,initialPickerDate:m,inlinePopup:v=!1,isMonthPickerVisible:p=!0,maxDate:y,minDate:b,mountNode:h,onOpenChange:w,onSelectDate:x,openOnClick:k=!0,onValidationResult:S,parseDateFromString:N=Jae,showCloseButton:C=!1,showGoToToday:M=!0,showMonthPickerAsOverlay:j=!1,showWeekNumbers:T=!1,strings:F=Zae,today:H,underlined:R=!1,value:O,..._}=e,Y=g.useMemo(()=>m??new Date,[m]),I=g.useRef(null),[E,D,W,z]=Xae(),[L,q,P,U]=Yae({formatDate:d,onSelectDate:x,value:O}),[B,K]=Gae(e),te=m6();var Ae;const ae=(Ae=te==null?void 0:te.required)!==null&&Ae!==void 0?Ae:e.required,Ne=Rn("datePicker-input"),oe=Rn("datePicker-popupSurface"),xe=g.useCallback((st=null)=>{let ac;if(n)if(q||st){if(L&&d&&d(st??L)===q)return;st=st||N(q),!st||isNaN(st.getTime())?(P(L),ac="invalid-input"):_ae(st,b,y)?ac="out-of-bounds":P(st)}else ae&&(ac="required-input"),x==null||x(st);else ae&&!q&&(ac="required-input");S==null||S({error:ac})},[n,d,q,y,b,x,S,N,ae,L,P]),Z=g.useCallback(st=>{w==null||w(st),K(st),!B&&!e.disabled&&E()},[E,w,e.disabled,K]),V=g.useCallback(st=>{B&&(Z(!1),xe(st),!n&&st&&P(st))},[n,B,Z,P,xe]),X=g.useCallback(()=>{B||(z(),Z(!0))},[B,z,Z]),J=g.useCallback(st=>{z(),V(st)},[V,z]),ce=g.useCallback((st,ac)=>{const{value:z7}=ac;n&&(B&&V(),U(z7))},[n,V,B,U]),le=g.useCallback(()=>{xe()},[xe]),pe=g.useCallback(st=>{switch(st.key){case Hn:st.preventDefault(),st.stopPropagation(),B?e.allowTextInput&&V():(xe(),X());break;case $s:st.stopPropagation(),st.preventDefault(),B&&J();break;case cu:st.preventDefault(),B||X();break}},[J,V,B,e.allowTextInput,X,xe]),Ie=g.useCallback(()=>{s||n||(W.current||X(),W.current=!1)},[n,s,W,X]),je=g.useCallback(()=>{if((e.openOnClick||!e.disableAutoFocus)&&!B&&!e.disabled){X();return}n&&V()},[n,V,B,e.disabled,e.disableAutoFocus,e.openOnClick,X]),At=st=>{st.stopPropagation(),!B&&!e.disabled?X():e.allowTextInput&&V()},xr=R?"underline":o?"filled-lighter":"outline",[An,qi]=qae(e),pi=be(e.root,{defaultProps:{ref:An},elementType:"span"});pi.ref=ot(pi.ref,An);const or=be(e.input,{elementType:"input"});or.ref=ot(or.ref,t,D);const Il=e["aria-labelledby"];var ub;const Ab=(ub=e.id)!==null&&ub!==void 0?ub:Ne,D7=g.useMemo(()=>({role:"button","aria-expanded":B,"aria-labelledby":Il??Ab}),[B,Il,Ab]),fb=be(e.contentAfter||{},{defaultProps:{children:g.createElement(MV,null),...D7},elementType:"span"});fb.onClick=fe(We(fb.onClick,At));const kr=be(_,{defaultProps:{appearance:xr,"aria-controls":B?oe:void 0,"aria-expanded":B,"aria-haspopup":"dialog",readOnly:!n,role:"combobox",id:Ab},elementType:Ew});kr.root=pi,kr.input=or,kr.contentAfter=fb,kr.onChange=fe(We(kr.onChange,ce)),kr.onBlur=fe(We(kr.onBlur,le)),kr.onKeyDown=fe(We(kr.onKeyDown,pe)),kr.onFocus=fe(We(kr.onFocus,Ie)),kr.onClick=fe(We(kr.onClick,je));const{modalAttributes:M7}=Gm({trapFocus:!0,alwaysFocusable:!0,legacyTrapFocus:!0}),R7=B?Te(e.popupSurface,{renderByDefault:!0,defaultProps:{"aria-label":"Calendar","aria-modal":!0,id:oe,role:"dialog",ref:qi,...M7},elementType:"div"}):void 0,{targetDocument:GS}=Ge();Fh({element:GS,callback:st=>V(),refs:[An,qi],disabled:!B}),bk({element:GS,callback:st=>V(),refs:[An,qi],disabled:!B}),g.useEffect(()=>{B&&!e.disabled&&I.current&&I.current.focus()},[s,B,e.disabled]);const _u=be(e.calendar,{defaultProps:{allFocusable:r,componentRef:I,dateTimeFormatter:i,firstDayOfWeek:c,firstWeekOfYear:l,highlightCurrentMonth:A,highlightSelectedMonth:f,isMonthPickerVisible:p,maxDate:y,minDate:b,showCloseButton:C,showGoToToday:M,showMonthPickerAsOverlay:j,showWeekNumbers:T,strings:F,today:H,value:L||Y},elementType:Xw});_u.onDismiss=fe(We(_u.onDismiss,J)),_u.onSelectDate=fe(We(_u.onSelectDate,J));const YS={disabled:!!e.disabled,inlinePopup:v,components:{root:Ew,calendar:Xw,popupSurface:"div"},calendar:_u,mountNode:h,root:kr,popupSurface:R7};return YS.root.value=q,YS},k1={root:"fui-DatePicker",calendar:"fui-DatePicker__calendar",popupSurface:"fui-DatePicker__popupSurface"},$ae=$({base:{qhf8xq:"f10pi13n",Bceei9c:"f1k6fduh",xfaavh:"faxec97"},disabled:{Bceei9c:"f158kwzp",xfaavh:"f19qwlmg"},inline:{Bj3rh1h:"f19g0ac"}},{d:[".f10pi13n{position:relative;}",".f1k6fduh{cursor:pointer;}",".faxec97 input{cursor:pointer;}",".f158kwzp{cursor:default;}",".f19qwlmg input{cursor:default;}",".f19g0ac{z-index:1;}"]}),ese=Re("r1ytv1z8",null,[".r1ytv1z8{background-color:var(--colorNeutralBackground1);box-shadow:var(--shadow16);border-radius:var(--borderRadiusMedium);border-width:1px;border-style:solid;border-color:var(--colorTransparentStroke);display:inline-flex;color:var(--colorNeutralForeground1);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);}"]),tse=e=>{"use no memo";const t=$ae(),n=ese(),{disabled:r,inlinePopup:o}=e;return e.root.className=G(k1.root,t.base,r&&t.disabled,e.root.className),e.popupSurface&&(e.popupSurface.className=G(k1.popupSurface,n,e.popupSurface.className,o&&t.inline)),e.calendar.className=G(k1.calendar,e.calendar.className),e},IR=g.forwardRef((e,t)=>{const n=Qae(e,t);return tse(n),Vae(n)});IR.displayName="DatePicker";const nse=({setOpenFilterMenuId:e,setColumnFilters:t,columnFilters:n,column:r,flattenedItems:o,tableName:i})=>{const{trackEventWithBistechMetadata:a}=Nt(),s=ve(M=>M.contacts),c=n.find(M=>M.columnName===r.columnId),[l,d]=g.useState(c?c.operator:"Equals"),[A,f]=g.useState(c?c.value:""),[m,v]=g.useState(!1);g.useEffect(()=>{const M=j=>{const T=document.querySelector("[role='listbox']");T&&!T.contains(j.target)&&v(!1)};return document.addEventListener("click",M),()=>{document.removeEventListener("click",M)}},[]);const p=M=>typeof M=="string"?["Equals","Not Equals","Contains","Does Not Contain","Starts With","Ends With"]:typeof M=="number"?["Equals","Not Equals","Greater Than","Less Than","Greater Than Or Equal To","Less Than Or Equal To"]:typeof M=="boolean"?["Equals","Not Equals"]:M instanceof Date?["Equals","Not Equals","After","Before","On Or After","On Or Before"]:[],y=()=>{if(s.loadingStatus!=="loaded")return[];switch(r.columnId){case"actions":case"startDate":return[];case"name":return o.filter(H=>{var R;return((R=H.children)==null?void 0:R.length)===0}).map(H=>H.name).distinct().sort((H,R)=>H.localeCompare(R)).map(H=>u.jsx($a,{value:H,children:H},H));case"assignedTo":const T=o.map(H=>H.assignedTo).filter(H=>H!==null).distinct().sort((H,R)=>H.localeCompare(R)).map(H=>u.jsx($a,{value:H,children:H},H)),F=o.map(H=>H.assignedToCustomerContactId).filter(H=>H!==null).distinct().map(H=>s.data.find(R=>R.contactid===H).fullname).sort((H,R)=>H.localeCompare(R)).map(H=>u.jsx($a,{value:H,children:H},H));return[u.jsx(h6,{children:T}),...F];case"status":return o.map(H=>H.status).filter(H=>H!==null).distinct().sort((H,R)=>H.localeCompare(R)).map(H=>u.jsx($a,{value:H,children:H},H))}},b=()=>{if(A==="")return;const M=n.filter(j=>j.columnName!==r.columnId);M.push({columnName:r.columnId,operator:l,value:A}),t(M),e(void 0),a==null||a({type:"Filter Menu - Applied",tableName:i,columnName:`${r.columnId}`,operator:l,value:`${A}`})},h=()=>u.jsx(em,{defaultValue:N,defaultSelectedOptions:[N],onOptionSelect:(M,j)=>{d(j.optionValue)},children:S.map(M=>u.jsx($a,{value:M,children:M},M))}),w=g.useCallback(M=>{const j=A||new Date,T=(M||"").trim().split("/"),F=T.length>0?Math.max(1,Math.min(31,parseInt(T[0],10))):j.getDate(),H=T.length>1?Math.max(1,Math.min(12,parseInt(T[1],10)))-1:j.getMonth();let R=T.length>2?parseInt(T[2],10):j.getFullYear();return R<100&&(R+=j.getFullYear()-j.getFullYear()%100),new Date(R,H,F)},[A]),x=M=>M?M.getDate()+"/"+(M.getMonth()+1)+"/"+M.getFullYear()%100:"",k=()=>{const M=["Equals","Not Equals"].includes(l);if(r.columnId==="startDate")return u.jsx(IR,{allowTextInput:!0,parseDateFromString:w,formatDate:x,placeholder:"Select a date...",value:A||null,onSelectDate:T=>{T&&f(T)}});const j=T=>{T.stopPropagation(),T.preventDefault(),M&&v(!m)};return u.jsx(em,{listbox:{style:{maxHeight:"300px",overflowY:"auto"}},onOptionSelect:(T,F)=>{f(F.optionValue),v(!1)},onChange:T=>{f(T.target.value)},disableAutoFocus:!0,expandIcon:M?u.jsx(Yf,{onClick:j}):u.jsx(u.Fragment,{}),freeform:!0,defaultValue:A,defaultSelectedOptions:[A],open:m&&M,onClick:j,children:C})},S=p(o[0][r.columnId]),N=S.includes(l)?l:S[0],C=y();return u.jsx(Zk,{style:{height:"fit-content"},children:u.jsxs("div",{id:"filter-menu",style:{display:"flex",flexDirection:"column",padding:"1em",gap:"1em"},children:[u.jsxs("div",{style:{display:"flex",flexDirection:"row",alignItems:"center"},children:[u.jsx(rn,{weight:"semibold",children:"Filter By"}),u.jsx("div",{style:{flexGrow:1}}),u.jsx(ri,{appearance:"subtle",icon:u.jsx(Ik,{}),onClick:()=>e(void 0)})]}),h(),k(),u.jsxs("div",{style:{display:"flex",flexDirection:"row",justifyContent:"flex-end",gap:"1em"},children:[u.jsx(ri,{appearance:"primary",onClick:()=>b(),disabled:(()=>{const M=!l||!A,j=n.find(F=>F.columnName===r.columnId),T=j&&j.operator===l&&j.value===A;return M||T})(),children:"Apply"}),u.jsx(ri,{onClick:()=>{t(n.filter(M=>M.columnName!==r.columnId)),e(void 0)},disabled:!c,children:"Clear"})]})]})})},rse=Cu({projectsGrid:{height:"100%"},gridBody:{height:"95%",overflowY:"auto","@media (max-width: 767px)":{height:"100%"}},summaryTask:{borderBottom:"1px solid #ccc",padding:"0.8em","@media (max-width: 767px)":{paddingLeft:0}},tableRow:{"&:hover":{cursor:"default"},"@media (max-width: 767px)":{display:"flex",flexDirection:"column",width:"23em !important",marginTop:"0 !important"},"@media (max-width: 1023px)":{display:"flex",flexDirection:"column",width:"100% !important",maxWidth:"100%",justifyContent:"center",height:"fit-content",gap:"1em",paddingTop:"1em"}},tableCell:{"@media (max-width: 1024px)":{display:"flex !important",flexDirection:"column",width:"100% !important",maxWidth:"100% !important",justifyContent:"center",height:"fit-content"}},filterIconContainer:{display:"flex",flexDirection:"column",justifyContent:"center",height:"100%",cursor:"pointer",marginRight:"0.8em"}}),ose=25;function PR(e){return(e-1)*ose}const ise=({items:e,columns:t,selectionMode:n,onSelectionChanged:r,initialRowSelection:o,columnSizingOptions:i,setIsProjectTaskGridModalOpen:a,isProjectTaskGridModalOpen:s})=>{const c=rse(),l=ve(P=>P.contacts),[d,A]=g.useState(new Set(o??[])),[f,m]=g.useState(N(e).map(P=>P.key)),[v,p]=g.useState([]),[y,b]=g.useState(),h=f.length===N(e).length,w=n!==void 0,x=mi(),k=x<768,S=x<1024;function N(P){return P.flatMap(U=>U.children?[U,...N(U.children)]:[U])}const{getRows:C,selection:{allRowsSelected:M,someRowsSelected:j,toggleAllRows:T,toggleRow:F,isRowSelected:H},columnSizing_unstable:R,tableRef:O}=U6({columns:t,items:N(e),getRowId:P=>(P==null?void 0:P.key)??""},[...w?[B6({selectionMode:n,selectedItems:d,onSelectionChange:(P,U)=>{A(U.selectedItems),r==null||r(U.selectedItems)}})]:[],W6({columnSizingOptions:i})]),_=C(P=>{const U=H(P.rowId);return{...P,onClick:B=>F(B,P.rowId),onKeyDown:B=>{B.key===" "&&(B.preventDefault(),F(B,P.rowId))},selected:w?U:!1,appearance:U?"brand":"none"}}),Y=ht.useCallback(P=>{P.key===" "&&(T(P),P.preventDefault())},[T]),I=(P,U)=>{if(l.loadingStatus!=="loaded")throw new Error("Contacts are not loaded");switch(P.columnName){case"assignedTo":const B=U.assignedTo;if(Object.keys(ne).includes(P.value)&&B)return B;const K=l.data.find(te=>te.contactid===U.assignedToCustomerContactId);return K?K.fullname:void 0;case"startDate":return Pe.toDateOnlyString(U.startDate);case"name":case"status":return U[P.columnName];case"actions":return null}},E=(P,U)=>U.every(B=>{const K=I(B,P),te=(Ae,ae,Ne)=>Ae&&Ne(Ae.toString().toLowerCase(),ae.toLowerCase());switch(B.operator){case"Equals":if(B.columnName==="startDate"){if(!K)return!1;const Ae=Pe.newDateFromDateOnly(K),ae=new Date(B.value);return Ae.setHours(0,0,0,0),ae.setHours(0,0,0,0),Ae.getTime()===ae.getTime()}return K===B.value;case"Not Equals":return K!==B.value;case"Contains":return te(K,B.value,(Ae,ae)=>Ae.includes(ae));case"Does Not Contain":return!te(K,B.value,(Ae,ae)=>Ae.includes(ae));case"Starts With":return te(K,B.value,(Ae,ae)=>Ae.startsWith(ae));case"Ends With":return te(K,B.value,(Ae,ae)=>Ae.endsWith(ae));case"Greater Than":return K>B.value;case"Less Than":return K=B.value;case"Less Than Or Equal To":return K<=B.value;case"After":return K?Pe.newDateFromDateOnly(K)>B.value:!1;case"Before":return K?Pe.newDateFromDateOnly(K)=B.value:!1;case"On Or Before":return K?Pe.newDateFromDateOnly(K)<=B.value:!1;default:return!0}}),D=(P,U)=>P.children?P.children.some(B=>E(B,U)||D(B,U)):!1,W=P=>P.map(U=>{const B=U.children&&U.children.length>0,K=B?D(U,v):!1;return B&&K?u.jsxs("div",{children:[L(U),f.includes(U.key)&&W(U.children)]},U.key):B?u.jsx(u.Fragment,{}):E(U,v)?q(U):u.jsx(u.Fragment,{})}),z=P=>P.columnId==="actions"?u.jsx(u.Fragment,{}):u.jsx(nse,{tableName:"Project Tasks",setOpenFilterMenuId:b,setColumnFilters:p,columnFilters:v,column:P,flattenedItems:N(e)}),L=P=>{const{selected:U}=_.find(te=>te.rowId===P.key),B=N(P.children),K=w&&B.every(te=>d.has(te.key))?!0:B.some(te=>d.has(te.key))?"mixed":!1;return u.jsx(rt,{children:u.jsx(eg,{itemType:"branch",open:f.includes(P.key),onOpenChange:()=>{f.includes(P.key)?m(f.filter(te=>te!==P.key)):m([...f,P.key])},children:u.jsx(Q6,{className:c.summaryTask,style:{marginLeft:S?0:PR(P.level)},iconAfter:w?u.jsx(Pd,{type:n==="multiselect"?"checkbox":"radio",checkboxIndicator:{"aria-label":"Select row"},hidden:n===void 0,checked:K,onClick:te=>{te.stopPropagation();const Ae=N(P.children),ae=!U;A(Ne=>{const oe=new Set(Ne);return ae?(Ae.forEach(xe=>oe.add(xe.key)),oe.add(P.key)):(Ae.forEach(xe=>oe.delete(xe.key)),oe.delete(P.key)),oe}),r==null||r(new Set(ae?[P.key,...d,...Ae.map(Ne=>Ne.key)]:Array.from(d.values()).filter(Ne=>![P.key,...Ae.map(oe=>oe.key)].includes(Ne))))}}):void 0,children:u.jsx(rn,{weight:"semibold",size:400,children:P.name})})},P.key)})},q=P=>{const{item:U,selected:B,onClick:K,onKeyDown:te,appearance:Ae}=_.find(ae=>ae.rowId===P.key);return u.jsx(eg,{itemType:"leaf",children:u.jsxs(om,{onClick:K,onKeyDown:te,"aria-selected":B,appearance:Ae,className:c.tableRow,"data-test-id":"table-row",children:[w&&u.jsx(Pd,{type:n==="multiselect"?"checkbox":"radio",checked:B,checkboxIndicator:{"aria-label":"Select row"},hidden:n===void 0}),t.filter(ae=>!(S&&ae.columnId==="actions"&&ae.renderCell(U)===void 0)).map(ae=>u.jsx(Gk,{...R.getTableCellProps(ae.columnId),className:c.tableCell,children:S?u.jsxs("div",{style:{marginBottom:"4px",width:"100%"},children:[ae.renderHeaderCell(),ae.renderCell(U)]}):ae.renderCell(U)},ae.columnId))]},P.key)},P.key)};return u.jsxs(Kk,{ref:O,...R.getTableProps(),noNativeElements:!k,className:c.projectsGrid,"aria-labelledby":void 0,size:"medium",sortable:!0,children:[u.jsx(Jk,{children:u.jsxs(om,{children:[h?u.jsx(Yf,{style:{cursor:"pointer"},onClick:()=>{m([])}}):u.jsx(_V,{style:{cursor:"pointer"},onClick:()=>{m(N(e).map(P=>P.key))}}),w&&u.jsx(Pd,{checked:M?!0:j?"mixed":!1,onClick:T,onKeyDown:Y,checkboxIndicator:{"aria-label":"Select all rows "},hidden:n!=="multiselect"}),t.map(P=>u.jsxs(Hk,{open:y===P.columnId,positioning:"below-end",onOpenChange:(U,B)=>b(B.open?P.columnId:void 0),children:[u.jsx(Jh,{disableButtonEnhancement:!0,children:u.jsxs(Qk,{...R.getTableHeaderCellProps(P.columnId),children:[P.renderHeaderCell(),v.some(U=>U.columnName===P.columnId)&&u.jsx(F8,{}),u.jsx("div",{style:{display:"flex",flexGrow:1}}),P.columnId!=="actions"?u.jsx("div",{className:c.filterIconContainer,children:u.jsx(Yf,{})}):u.jsx(u.Fragment,{})]},P.columnId)}),z(P)]},P.columnId)),u.jsx("div",{style:{display:"flex",flexGrow:1}}),u.jsx(ri,{onClick:()=>{a==null||a(!s)},appearance:"subtle",icon:s?u.jsx(B8,{}):u.jsx(XV,{})})]})}),u.jsx(Yk,{className:c.gridBody,children:u.jsx(eS,{children:W(e)})})]})},bi={name:.45,assignedTo:.15,startDate:.125,status:.125,actions:.1},nT=({type:e,items:t,columns:n,setIsProjectTaskGridModalOpen:r,isProjectTaskGridModalOpen:o,getColumnSizingOptions:i,additionalCardProps:a,setHasComponentRendered:s})=>{const c=g.useRef(null),[l,d]=g.useState(0),[A,f]=g.useState(void 0);return g.useLayoutEffect(()=>{var v;const m=(v=c.current)==null?void 0:v.clientWidth;m&&(f(i(m)),s==null||s(!0),d(p=>p+1))},[c.current]),u.jsx($k,{ref:c,appearance:e==="inline"?"filled":"subtle",...a,children:u.jsx(ise,{items:t,columns:n,columnSizingOptions:A,setIsProjectTaskGridModalOpen:r,isProjectTaskGridModalOpen:o},e==="modal"?l:void 0)})},rT=window.innerWidth-100,oT=window.innerHeight-100,iT="Bistech:TeachingBubble:Project-Task-Grid-Completed-Stages",ase=["Review a Project Task","Task Assignee","Assign a Task","Complete a Task"],sse=Cu({tableCellLayout:{display:"flex",justifyContent:"center","@media (max-width: 767px)":{justifyContent:"flex-start"}},loadingContainer:{display:"flex",flexDirection:"row",justifyContent:"center",width:"100%",height:"30em"},dialogSurface:{width:`${rT}px !important`,maxWidth:`${rT}px !important`,minHeight:"15em",maxHeight:`${oT}px !important`},dialogBody:{display:"flex",flexDirection:"column",height:`${oT-100}px !important`,width:"100%"}}),cse=e=>{const t=sse(),n=ve(I=>I.contacts),[r,o]=g.useState(!1),[i,a]=g.useState(!1),[s,c]=g.useState(null),[l,d]=g.useState(!1),[A,f]=g.useState(!1),[m,v]=g.useState(!1),p=n.loadingStatus!=="loaded"?[]:n.data,b=mi()<1024,h=JSON.parse(localStorage.getItem(iT)||"[]");g.useEffect(()=>{v(!r)},[r]);const w=g.useRef(null);function x(I){return I.map(E=>({ref:g.createRef(),key:E.msdyn_projecttaskid}))}const k=g.useMemo(()=>x(e.projectTasks),[e.projectTasks.length]),S=g.useMemo(()=>x(e.projectTasks),[e.projectTasks.length]),N=g.useMemo(()=>x(e.projectTasks.filter(I=>I.bistech_assignedto===ne.Customer)),[e.projectTasks.length]),C=g.useMemo(()=>x(e.projectTasks.filter(I=>I.bistech_assignedto===ne.Customer)),[e.projectTasks.length]),M=I=>{const E=I.status&&(re[I.status]===re.Inactive||re[I.status]===re.Completed);return I.assignedTo&&ne[I.assignedTo]===ne.Customer&&!E},j=[Qn({columnId:"name",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Name"}),renderCell:I=>u.jsx(In,{ref:I.nameRef,title:I.name,style:{fontSize:"11pt",marginLeft:b?0:PR(I.level+1),minHeight:"2em"},truncate:!0,children:I.name})}),Qn({columnId:"assignedTo",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Assigned To"}),renderCell:I=>{if(!I.assignedTo)return u.jsx(u.Fragment,{});const E=p.find(z=>z.contactid===I.assignedToCustomerContactId),D=E?E.fullname:e.project["_msdyn_customer_value@OData.Community.Display.V1.FormattedValue"]??"",W=ne[I.assignedTo]===ne.Bistech?I.assignedTo:D;return u.jsx(In,{truncate:!0,children:u.jsx(w6,{ref:I.assignedToRef,size:"large",title:W,textAlignment:"center",name:W,avatar:ne[I.assignedTo]===ne.Bistech?{image:{src:"/bistech-logo-project-task.png"}}:{color:"colorful"}})})}}),Qn({columnId:"startDate",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Start Date"}),renderCell:I=>I.startDate?u.jsx(In,{truncate:!0,className:t.tableCellLayout,children:Pe.toDateOnlyString(I.startDate)}):u.jsx(u.Fragment,{})}),Qn({columnId:"status",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Status"}),renderCell:I=>u.jsx(In,{truncate:!0,className:t.tableCellLayout,children:I.status||""})}),Qn({columnId:"actions",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Actions"}),renderCell:I=>{if(M(I))return u.jsx(In,{className:t.tableCellLayout,children:u.jsxs("div",{style:{display:"flex",flexDirection:"row",gap:"8px"},children:[u.jsx(ri,{ref:I.assignedButtonRef,"aria-label":"Assign",title:"Assign",icon:u.jsx(HV,{}),onClick:()=>{o(!0),c(e.projectTasks.find(E=>E.msdyn_projecttaskid===I.key)??null)}}),u.jsx(ri,{ref:I.completeTaskButtonRef,"aria-label":"Complete",title:"Complete",icon:u.jsx(VV,{}),onClick:()=>{a(!0),c(e.projectTasks.find(E=>E.msdyn_projecttaskid===I.key)??null)}})]})})}})],T=I=>{const E=e.projectTasks.filter(q=>q._msdyn_parenttask_value===I.msdyn_projecttaskid),D=k.find(q=>q.key===I.msdyn_projecttaskid),W=S.find(q=>q.key===I.msdyn_projecttaskid),z=N.find(q=>q.key===I.msdyn_projecttaskid),L=C.find(q=>q.key===I.msdyn_projecttaskid);return{key:I.msdyn_projecttaskid,name:I.msdyn_subject,assignedTo:I.bistech_assignedto?ne[I.bistech_assignedto]:null,assignedToCustomerContactId:I._bistech_assignedcustomercontact_value,startDate:I.msdyn_scheduledstart,status:I.statuscode?re[I.statuscode]:null,count:E.length,children:E.map(q=>T(q)),level:I.msdyn_outlinelevel,nameRef:D==null?void 0:D.ref,assignedToRef:W==null?void 0:W.ref,assignedButtonRef:z==null?void 0:z.ref,completeTaskButtonRef:L==null?void 0:L.ref}},F=I=>I.flatMap(E=>[E,...F(E.children??[])]),H=e.projectTasks.map(I=>T(I)).filter(I=>I.level<=1),R=g.useMemo(()=>{if(h.length===ase.length)return[];const I=F(H),E=I.find(B=>B.level>1);if(!E)return[];const D=k.find(B=>B.key===E.key),W=S.find(B=>B.key===E.key),z=[{refElement:(D==null?void 0:D.ref.current)??null,headline:"Review a Project Task",content:"Each row in this grid displays a task that will be carried out as part of your project"},{refElement:(W==null?void 0:W.ref.current)??null,headline:"Task Assignee",content:"View who is currently assigned to complete each task"}],L=z.every(B=>h.includes(B.headline));if(L&&!I.some(B=>M(B)&&B.level>1))return[];const q=I.find(B=>M(B)&&B.level>1);if(!q)return L?[]:z;const P=N.find(B=>B.key===q.key),U=C.find(B=>B.key===q.key);return[...L?[]:z,{refElement:(P==null?void 0:P.ref.current)??null,headline:"Assign a Task",content:"Assign a task to one of your portal contacts – to add a contact please speak to your Project Manager"},{refElement:(U==null?void 0:U.ref.current)??null,headline:"Complete a Task",content:"Mark a task assigned to you or your team as completed"}]},[H,k,S,N,C,h]),O=I=>({name:{idealWidth:I*bi.name,autoFitColumns:!0},assignedTo:{idealWidth:I*bi.assignedTo,autoFitColumns:!1},startDate:{idealWidth:I*bi.startDate,autoFitColumns:!1},status:{idealWidth:I*bi.status,autoFitColumns:!1},actions:{idealWidth:I*bi.actions,autoFitColumns:!1}}),_=I=>({name:{minWidth:I*bi.name,autoFitColumns:!0},assignedTo:{minWidth:I*bi.assignedTo,autoFitColumns:!1},startDate:{minWidth:I*bi.startDate,autoFitColumns:!1},status:{idealWidth:I*bi.status,autoFitColumns:!1},actions:{idealWidth:I*bi.actions,autoFitColumns:!1}});g.useLayoutEffect(()=>{A&&v(!0)},[A]);const Y=I=>{if(v(!1),I==="completed"){const E=[...h,...R.map(D=>D.headline)].distinct();localStorage.setItem(iT,JSON.stringify(E))}};return u.jsxs(u.Fragment,{children:[n.loadingStatus!=="loaded"?u.jsx("div",{className:t.loadingContainer,children:u.jsx(N6,{})}):u.jsx(nT,{type:"inline",items:H,columns:j,setIsProjectTaskGridModalOpen:d,isProjectTaskGridModalOpen:l,getColumnSizingOptions:O,additionalCardProps:{style:{width:"100%",maxHeight:b?void 0:"40em"}},setHasComponentRendered:f}),r&&s&&u.jsx(pie,{projectId:e.project.msdyn_projectid,setProjectTaskDetailsIsShown:o,projectTaskDetailsIsShown:r,projectTask:s,onSubmit:e.onSubmit}),i&&s&&u.jsx(vie,{projectId:e.project.msdyn_projectid,projectTask:s,completeProjectTaskIsShown:i,setCompleteProjectTaskIsShown:a,onSubmit:e.onComplete}),u.jsx(qk,{open:l,modalType:"modal",children:u.jsx(Xk,{className:t.dialogSurface,children:u.jsx(_k,{className:t.dialogBody,children:u.jsx(nT,{type:"modal",items:H,columns:j,setIsProjectTaskGridModalOpen:d,isProjectTaskGridModalOpen:l,getColumnSizingOptions:_,additionalCardProps:{style:{width:"100%",padding:"0"}}})})})}),m&&R.length>0&&A&&u.jsx(sS,{name:"Project-Task-Grid-Teaching-Bubble",closeTeachingBubble:Y,positioningRef:w,teachingBubbles:R})]})},DR=e=>{const[n,r]=g.useState(!1),o=mi();g.useEffect(()=>{r(!0)},[]);const i=a=>a.width&&o>767;return u.jsxs("table",{style:{width:"100%"},children:[u.jsx("thead",{children:u.jsx("tr",{children:e.columns.map(a=>u.jsx("th",{children:a.columnHeading},a.columnHeading))})}),u.jsx("tbody",{children:e.isLoading?Array.from(Array(e.loadingRowCount).keys()).map(()=>u.jsx("tr",{children:e.columns.map(a=>u.jsx("td",{style:{width:i(a)?a.width:void 0,padding:0,margin:0},children:u.jsx(S6,{style:{height:"2.5em"}})},a.columnHeading))})):[...e.rows].sort(e.sortRows).map((a,s)=>{const c=l=>e.columns.findIndex(d=>d.correspondingItemProperty===l)??0;return u.jsx("tr",{onClick:()=>e.onClickRow?e.onClickRow(a):{},"data-id":e.getRowId(a),"data-entity":e.entityName,children:Object.keys(a).sort((l,d)=>c(l){const A=e.columns.find(m=>m.correspondingItemProperty===l);if(!A)return u.jsx(u.Fragment,{});const f=A==null?void 0:A.getContent(a);return u.jsx("td",{style:i(A)?{width:A.width}:void 0,title:A.getTitle?A.getTitle(a):void 0,"data-heading-title":A.columnHeading,...e.additionalTableCellProps,children:u.jsx(sR,{on:n.toString(),swipeDirection:"down",children:u.jsx(u.Fragment,{children:f})})},e.columns.length*s+d)})},JSON.stringify(a))})})]})},lse=e=>{const t=[{columnHeading:"Name",correspondingItemProperty:"firstname",getContent:n=>u.jsxs(jt,{to:`/contacts/edit?id=${n.contactid}`,children:[n.firstname," ",n.lastname]},n.contactid)},{columnHeading:"Job Title",correspondingItemProperty:"jobtitle",getContent:n=>n.jobtitle??void 0},{columnHeading:"Number",correspondingItemProperty:"telephone1",getContent:n=>n.telephone1??void 0},{columnHeading:"Email",correspondingItemProperty:"emailaddress1",getContent:n=>n.emailaddress1??void 0}];return u.jsx(DR,{columns:t,rows:e.project.bistech_msdyn_project_Contact_Contact??[],sortRows:(n,r)=>{var o,i,a,s;return`${((o=n.firstname)==null?void 0:o.toString())??""}${((i=n.lastname)==null?void 0:i.toString())??""}`.localeCompare(`${((a=r.firstname)==null?void 0:a.toString())??""}${((s=r.lastname)==null?void 0:s.toString())??""}`)},entityName:"contact",getRowId:n=>n.contactid})},dse={[Le["Order Placed"]]:"order-placed.svg",[Le.Survey]:"survey.svg",[Le.Wayleave]:"way-leave.svg",[Le["Civils Work"]]:"civils-work.svg",[Le.Installation]:"fibre-install.svg",[Le["Fibre Install"]]:"fibre-install.svg",[Le["Fibre Splicing"]]:"fibre-splice.svg",[Le["Fit & Test"]]:"fit-and-test.svg",[Le["Connection Installed"]]:"connection-installed.svg",[Le["CommsCare Site Visit"]]:"commsCare-site-visit.svg"},use=Cu({stageWrapper:{display:"flex",alignItems:"center",justifyContent:"center"},stageIconWrapper:{width:"1.25em",height:"1.25em",border:"2px solid #29aacd",boxShadow:"#0000003c 0 1px 2px, #0000003f 0 2px 3px",backgroundColor:"#29aacd",backgroundSize:"50%",backgroundPosition:"center, center",backgroundRepeat:"no-repeat",borderRadius:"22px",marginRight:"6px",display:"flex",fontSize:"22px",padding:"3px",fontWeight:"bold",flexDirection:"column",alignItems:"center"},circleStatus:{display:"inline-block",width:"10px",height:"10px",borderRadius:"50%",marginRight:"8px",backgroundColor:"#29aacd",boxShadow:"#0000003c 0 1px 2px, #0000003f 0 2px 3px","&[data-status='Cancelled'], &[data-status='Completed']":{backgroundColor:"#e6e6e6"}}}),Ase=e=>{const n=mi()<1024,r=use(),o=[Qn({columnId:"networkOrderNumber",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Network Order Number"}),renderCell:f=>u.jsx(In,{ref:f.networkOrderNumberRef,title:f.networkOrderNumber,children:u.jsx(jt,{to:`/networkorders/edit?networkorderId=${f.key}`,children:f.networkOrderNumber},f.networkOrderNumber)})}),Qn({columnId:"site",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Site"}),renderCell:f=>u.jsx(In,{ref:f.siteRef,title:f.site,children:f.site})}),Qn({columnId:"postCode",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Postcode"}),renderCell:f=>u.jsx(In,{ref:f.postCodeRef,title:f.postCode,children:f.postCode})}),Qn({columnId:"connection",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Connection"}),renderCell:f=>u.jsx(In,{ref:f.connectionRef,title:f.connection,children:f.connection})}),Qn({columnId:"stage",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Stage"}),renderCell:f=>u.jsx(In,{ref:f.stageRef,title:f.stage,children:f.stage?u.jsxs("span",{className:r.stageWrapper,children:[u.jsx("span",{className:r.stageIconWrapper,children:u.jsx("img",{src:`/${dse[Le[f.stage]]}`})}),f.stage]}):""})}),Qn({columnId:"status",renderHeaderCell:()=>u.jsx(rn,{weight:"semibold",children:"Status"}),renderCell:f=>u.jsx(In,{ref:f.statusRef,title:f.status,children:u.jsxs("span",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[u.jsx("div",{className:r.circleStatus,"data-status":f.status}),f.status]})})})];function i(f){return Object.fromEntries(Object.entries({networkOrderNumber:.2,site:.15,postCode:.1,connection:.15,stage:.25,status:.15}).map(([v,p])=>[v,{columnId:v,idealWidth:f*p,autoFitColumns:!1}]))}const a=kn(),s=ve(f=>f.customerAssets),c=ve(f=>f.accounts),[l,d]=g.useState([]);if(g.useEffect(()=>{const f=e.networkOrders.map(async m=>await a.retrieveNetworkOrder(m.bistech_networkorderid));Promise.all(f).then(m=>{d(m)})},[]),s.loadingStatus!=="loaded"||c.loadingStatus!=="loaded")return u.jsx(pn,{type:"record-not-found",singularEntityName:"Network Order"});const A=l.map(f=>{const m=s.data.find(b=>b.msdyn_customerassetid===f._bistech_customerasset_value),v=c.data.find(b=>b.accountid===(m==null?void 0:m._bistech_site_value)),p=b=>b?Date.parse(b):-1,y=f.statecode===Tr.Active?[...f.bistech_bistech_networkorderstage_networkorder_bi].filter(b=>b.statecode===Fn.Active).sort((b,h)=>!b.bistech_datefrom&&!h.bistech_datefrom?h.bistech_stage-b.bistech_stage:b.bistech_datefrom&&h.bistech_datefrom?p(b.bistech_datefrom)-p(h.bistech_datefrom):b.bistech_datefrom?-1:1)[0]??null:null;return{key:f.bistech_networkorderid,networkOrderNumber:f.bistech_name,site:(v==null?void 0:v.name)??"",postCode:(v==null?void 0:v.address1_postalcode)??"",connection:(m==null?void 0:m.msdyn_name)??"",stage:y?Le[y.bistech_stage]:"",status:f.statuscode?Ut[f.statuscode]:null}});return u.jsx(u.Fragment,{children:u.jsx(aR,{tableName:"Network Orders",type:"inline",items:A,columns:o,additionalCardProps:{style:{width:"100%",maxHeight:n?void 0:"40em"}},getColumnSizingOptions:i})})},fse=({projectLogs:e})=>{function t(r,o){return u.jsx(jt,{to:`projectlogs/view?projectLogId=${o.bistech_projectlogsid}`,children:r},o.bistech_projectlogsid)}const n=[{columnHeading:"Name",correspondingItemProperty:"bistech_name",getContent:r=>t(r.bistech_name,r),width:"10%"},{columnHeading:"Date Raised",correspondingItemProperty:"createdon",getContent:r=>u.jsx("span",{children:Pe.toDateOnlyString(r.createdon)??""}),width:"8%"},{columnHeading:"Type",correspondingItemProperty:"bistech_type",getContent:r=>r.bistech_type&&ff[r.bistech_type],width:"9%"},{columnHeading:"Description",correspondingItemProperty:"bistech_description",getContent:r=>r.bistech_description??"",width:"30%"},{columnHeading:"Status",correspondingItemProperty:"statuscode",getContent:r=>r.statuscode?ks[r.statuscode]:void 0,width:"6%"}];return u.jsx(u.Fragment,{children:u.jsx(DR,{columns:n,rows:e,sortRows:(r,o)=>!r.createdon&&!o.createdon?0:!r.createdon||!o.createdon||r.createdonr.bistech_projectlogsid})})},mse=e=>{var l,d,A;const t=on(),n=ve(f=>f.orders),{trackEventWithBistechMetadata:r}=Nt(),o=e.isReadOnly||e.initialProject.statuscode===Ce.Cancelled||e.initialProject.statuscode===Ce.Closed||e.initialProject.statuscode===Ce.Inactive,[i,a]=g.useState(((l=e.initialProject.msdyn_project_adx_portalcomments)==null?void 0:l.filter(f=>f._regardingobjectid_value===e.initialProject.msdyn_projectid))??[]),s=((d=e.initialProject.msdyn_project_bistech_portalemails)==null?void 0:d.filter(f=>f._regardingobjectid_value===e.initialProject.msdyn_projectid))??[];if(!t.contactId)throw new Error(`Expected the user contactId to be populated but was '${t.contactId}' `);if(!e.initialProject)return u.jsx(pn,{type:"record-not-found",singularEntityName:"Project"});const c=e.initialProject._msdyn_salesorderid_value&&n.loadingStatus==="loaded"&&n.data.some(f=>f.salesorderid===e.initialProject._msdyn_salesorderid_value);return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"general-container",children:[u.jsx("h2",{className:"heading",children:"Information"}),e.initialProject._ownerid_value&&u.jsx(nc,{label:"Project Manager",name:"project-manager",selectedOptionId:e.initialProject._ownerid_value,tooltip:"The Project Manager responsible for this Project",pluralOptionsName:"Project Managers",options:{loadingStatus:"loaded",value:[{id:e.initialProject._ownerid_value||"",primaryText:e.initialProject["_ownerid_value@OData.Community.Display.V1.FormattedValue"],secondaryText:"Project Manager",isPickable:!1,user:e.initialProject._ownerid_value}]},setSelectedOptionId:()=>{},additionalInputProps:{disabled:!0}}),c&&u.jsx(cR,{label:"Order",name:"order",linkDetails:{href:`${_e.EditOrder.path}?orderId=${e.initialProject._msdyn_salesorderid_value}`,iconPath:_e.Orders.navigationPanelConfig.iconPath,name:n.loadingStatus==="loaded"?((A=n.data.find(f=>f.salesorderid===e.initialProject._msdyn_salesorderid_value))==null?void 0:A.ordernumber)??"":""}}),u.jsx(bt,{label:"Scheduled Start Date",name:"scheduled-start-date",onChange:()=>{},value:e.initialProject.msdyn_scheduledstart?Pe.toDateOnlyString(e.initialProject.msdyn_scheduledstart):"",requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Estimated Finish Date",name:"estimated-finish-date",onChange:()=>{},value:e.initialProject.bistech_estimatedfinishdate?Pe.toDateOnlyString(e.initialProject.bistech_estimatedfinishdate):"",requiredGroup:!1,additionalInputProps:{disabled:!0}})]}),u.jsx(nb,{currentEntity:{createMetadata:joe,retrieveMetadata:_M},ticketNumber:"",majorIncidentUpdates:[],setPortalComments:a,portalComments:i,portalEmails:s,disabled:o,entityId:e.initialProject.msdyn_projectid,trackPortalCommentSubmission:()=>r==null?void 0:r({type:"Edit Project - Portal Comment submitted",projectId:e.initialProject.msdyn_projectid}),trackPortalCommentCreatedSuccessfully:f=>r==null?void 0:r({type:"Edit Project - Portal Comment created successfully",projectId:e.initialProject.msdyn_projectid,activityId:f.activityid})})]})},vse=e=>{const t=dn(),n=on(),r=kn(),{trackExceptionWithBistechMetadata:o,trackEventWithBistechMetadata:i}=Nt(),a=ve(j=>j.networkOrders),[s,c]=g.useState(e.projectTasks),l=decodeURIComponent(window.location.hash.slice(1)),d=Aie.includes(l)?l:"Summary",[A,f]=g.useState(d),m=e.initialProject.bistech_msdyn_project_Contact_Contact??[],v=e.initialProject.bistech_bistech_projectlogs_Project_msdyn_project??[],p=n.portalProjectPermissionLevel===gt["All Projects"],y=Gc(a,j=>j.filter(T=>T._bistech_projectnetworkorder_value===e.initialProject.msdyn_projectid),[]),b=g.useMemo(()=>{const j=new Set;return s.forEach(T=>{T._msdyn_parenttask_value&&j.add(T._msdyn_parenttask_value)}),s.filter(T=>!j.has(T.msdyn_projecttaskid)).length},[s]),h=[{name:"Summary",label:"Summary",showWhen:!0,componentToRender:j=>u.jsx(mse,{initialProject:j.initialProject,projectTasks:j.projectTasks,isReadOnly:!p,onSave:j.onSave})},{name:"Project Tasks",label:`Project Tasks (${b})`,showWhen:p&&e.projectTasks.length>0,componentToRender:j=>u.jsx(cse,{project:j.initialProject,projectTasks:s.sort((T,F)=>(T.msdyn_displaysequence?T.msdyn_displaysequence:0)-(F.msdyn_displaysequence?F.msdyn_displaysequence:0)),onSubmit:w,onComplete:x})},{name:"Contacts",label:`Contacts (${m.length})`,showWhen:p&&m.length>0,componentToRender:j=>u.jsx(lse,{project:j.initialProject})},{name:"Network Orders",label:`Network Orders (${y.length})`,showWhen:p&&y.length>0,componentToRender:j=>u.jsx(Ase,{networkOrders:y})},{name:"Project Logs",label:`Project Logs (${v.length})`,showWhen:p&&v.length>0,componentToRender:j=>u.jsx(fse,{projectLogs:v})}];async function w(j){if(!j.msdyn_projecttaskid)throw new Error("projectTask.msdyn_projecttaskid is null");try{await r.updateProjectTask({msdyn_projecttaskid:j.msdyn_projecttaskid,_bistech_assignedcustomercontact_value:j._bistech_assignedcustomercontact_value}),c(T=>T.map(F=>F.msdyn_projecttaskid===j.msdyn_projecttaskid?{...F,_bistech_assignedcustomercontact_value:j._bistech_assignedcustomercontact_value}:F)),t({type:"AddNotification",notification:{message:"Contact Successfully Assigned to Task.",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}})}catch(T){throw o==null||o(T),new Error("Error updating Project Task")}}async function x(j,T){if(!S.contactId)throw new Error("User metadata contactId is null");try{await r.executeCloseProjectTask(j.msdyn_projecttaskid,T),c(F=>F.map(H=>H.msdyn_projecttaskid===j.msdyn_projecttaskid?{...H,statuscode:re.Completed}:H)),t({type:"AddNotification",notification:{message:"Task Successfully Completed",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}})}catch(F){throw o==null||o(F),new Error("Error completing Project Task")}}const k=(j,T)=>{j.preventDefault(),T&&(window.location.hash=T,f(T),i==null||i({type:"Edit Project - Tab change",tabName:T}))},S=on(),N=g.useMemo(()=>{const T={[Ce["Project Onboarding"]]:{description:"Your Project Manager is reviewing your project and will be in touch shortly to discuss next steps",icon:"/project-status-project-onboarding.svg"},[Ce["Pending Start"]]:{description:"Work on your project has not yet started",icon:"/project-status-pending-start.svg"},[Ce.Processing]:{description:"Your project is currently being processed by the Bistech team",icon:"/project-status-processing.svg"},[Ce["In Progress"]]:{description:"Work on your project is in progress - updates will be provided throughout",icon:"/project-status-in-progress.svg"},[Ce.Blocked]:{description:"Your project is blocked - your Project Manager will provide an update",icon:"/project-status-blocked.svg"},[Ce["On Hold"]]:{description:"Your project is on hold - your Project Manager will provide an update",icon:"/project-status-on-hold.svg"},[Ce.Closed]:{description:"Your Project has been completed",icon:"/project-status-closed.svg"},[Ce.Draft]:null,[Ce.Active]:null,[Ce["Project copying"]]:null,[Ce.Cancelled]:null,[Ce["Project copy failed"]]:null,[Ce["Project importing"]]:null,[Ce["Project import failed"]]:null,[Ce["Project converting"]]:null,[Ce["Project convert failed"]]:null,[Ce.Inactive]:null,[Ce["Project estimates copy failed"]]:null,[Ce["Ready to Triage"]]:null,[Ce.Signed]:null,[Ce["In Quote"]]:null}[e.initialProject.statuscode];return T?{title:Ce[e.initialProject.statuscode],description:T.description,icon:T.icon,buttons:[]}:null},[e.initialProject]);if(!S.contactId)throw new Error(`Expected the user contactId to be populated but was '${S.contactId}'`);if(!e.initialProject||!N)return u.jsx(pn,{type:"record-not-found",singularEntityName:"Project"});const C=h.find(j=>j.name===A),M=`${C==null?void 0:C.name.toLocaleLowerCase().replace(" ","-")}-table`;return u.jsx(Lu,{title:e.initialProject.msdyn_subject,tags:[{name:"project-number",value:e.initialProject.bistech_projectnumber}],callToActionInformation:{loadingStatus:"loaded",data:N},setSubmissionState:j=>{},children:u.jsxs("form",{className:"edit-project",children:[u.jsx(mie,{tabs:h,activeTab:A,onTabClick:k}),u.jsx("div",{className:"main-content","data-name":M,children:C==null?void 0:C.componentToRender(e)})]})})},pse=e=>{const t=dn(),n=kn(),r=ve(A=>A.projects),[o,i]=g.useState(1),[a,s]=g.useState({loadingStatus:"not-started"});g.useEffect(()=>{s({loadingStatus:"not-started"})},[r,o]);const c=g.useMemo(()=>{if(a.loadingStatus==="not-started"&&(s({loadingStatus:"loading"}),n.retrieveProject(e.projectid).then(f=>s({loadingStatus:"loaded",data:f})).catch(f=>{t({type:"AddLatestError",error:f}),s({loadingStatus:"errored",error:f})})),a.loadingStatus==="loaded")return{loadingStatus:"loaded",data:a.data};if(r.loadingStatus!=="loaded")return{loadingStatus:"loading"};const A=r.data.find(f=>f.msdyn_projectid===e.projectid);return A?{loadingStatus:"loaded",data:A}:{loadingStatus:"loading"}},[r,a,n,e.projectid,t]);if(a.loadingStatus==="errored")return u.jsx(pn,{type:"record-not-found",singularEntityName:"Project"});if(c.loadingStatus!=="loaded")return u.jsx(bl,{});function l(A,f){return f.some(m=>{if(m._msdyn_parenttask_value===A){const v=m.bistech_includeinstatementofworks===!0,p=m.bistech_assignedto!==null;return v&&p||l(m.msdyn_projecttaskid,f)}return!1})}const d=function(){const A=c.data.msdyn_msdyn_project_msdyn_projecttask_project;return A?A.filter(f=>{const m=f.bistech_includeinstatementofworks===!0,v=f.bistech_assignedto!==null,p=l(f.msdyn_projecttaskid,A);return m&&v||p}):[]}();return u.jsx(vse,{initialProject:c.data,projectTasks:d,onSave:()=>i(o+1)})},gse=()=>{const[e]=Ks(),n=e.get("projectId");return n?u.jsx(pse,{projectid:n}):u.jsx(pn,{singularEntityName:"Project",type:"record-not-found"})},hse=({projectLog:e,project:t})=>{const{trackEventWithBistechMetadata:n}=Nt(),[r,o]=g.useState(e.bistech_projectlogs_adx_portalcomments??[]);function i(){const s={[ks.Active]:{description:"This Project Log is in progress.",icon:"/project-status-project-onboarding.svg"},[ks.Inactive]:{description:"This Project Log has been Completed.",icon:"/project-status-blocked.svg"}}[e.statuscode];return{loadingStatus:"loaded",data:{title:e.statuscode===ks.Active?"In Progress":"Completed",description:s.description,icon:s.icon}}}return u.jsx(u.Fragment,{children:u.jsx(Lu,{title:e.bistech_name??"",tags:[],callToActionInformation:i(),setSubmissionState:()=>{},parentPageReference:{editIdName:"projectId",fullPath:"/projects/edit",pageId:(t==null?void 0:t.msdyn_projectid)??""},children:e&&u.jsxs("div",{className:"main-content",children:[u.jsx("div",{className:"general-container",children:u.jsxs("form",{children:[u.jsx("h2",{className:"heading",children:"Information"}),u.jsx(bt,{label:"Date",name:"createdon",value:Pe.toDateString(e.createdon),requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Severity",name:"bistech_severity",value:Af[e.bistech_severity],requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(bt,{label:"Mitigation Response",name:"bistech_mitigationresponseoptionset",value:uf[e.bistech_mitigationresponseoptionset],requiredGroup:!1,additionalInputProps:{disabled:!0}}),u.jsx(Dd,{name:"Impact Details",label:"Impact Details",value:e.bistech_updatedetails,additionalTextAreaProps:{maxLength:2e3,disabled:!0,style:{minHeight:"8vh"}}}),u.jsx(Dd,{name:"Update Details",label:"Update Details",value:e.bistech_impact,additionalTextAreaProps:{maxLength:2e3,disabled:!0,style:{minHeight:"8vh"}}})]})}),u.jsxs("div",{className:"description-and-timeline main-content",children:[u.jsx("div",{className:"description general-container",children:u.jsxs("form",{children:[u.jsx("h3",{className:"heading",children:"Description"}),u.jsx(rn,{style:{wordBreak:"break-word"},children:e.bistech_description})]})}),u.jsx(nb,{currentEntity:{createMetadata:Noe,retrieveMetadata:XM},ticketNumber:e.bistech_projectlogsid,portalComments:r,portalEmails:e.bistech_projectlogs_bistech_portalemails??[],majorIncidentUpdates:[],setPortalComments:o,disabled:!1,entityId:e.bistech_projectlogsid,trackPortalCommentSubmission:()=>n==null?void 0:n({type:"Edit Project Log - Portal Comment submitted",projectLogId:e.bistech_projectlogsid}),trackPortalCommentCreatedSuccessfully:a=>n==null?void 0:n({type:"Edit Project Log - Portal Comment created successfully",projectLogId:e.bistech_projectlogsid,activityId:a.activityid})})]})]})})})},bse=({projectLogId:e})=>{const t=Jre(),n=dn(),r=ve(s=>s.projects),[o,i]=g.useState(void 0),a=Gc(r,s=>s.find(c=>{var l;return(l=c.bistech_bistech_projectlogs_Project_msdyn_project)==null?void 0:l.some(d=>d.bistech_projectlogsid===e)}));return g.useEffect(()=>{e&&t.retrieveProjectLog(e).then(s=>{i(s)}).catch(s=>{n({type:"AddLatestError",error:s})})},[e]),o?u.jsx(hse,{projectLog:o,project:a}):u.jsx(bl,{})},yse=()=>{const[e]=Ks(),n=e.get("projectLogId");return n?u.jsx(bse,{projectLogId:n}):u.jsx(pn,{singularEntityName:"Project Log",type:"record-not-found"})},_e={Home:{path:"/",title:"Home",pageConfig:{type:"internal",element:u.jsx(poe,{})},forbiddenPageErrorMessage:({basePermissionLevel:e})=>e?Sn("Your current 'Permission Level' is: ",Qe[e]):u.jsx(u.Fragment,{}),isPermitted:(e,t)=>Bc(e),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-home.svg"}},Cases:{path:"/cases",title:"Cases",pageConfig:{type:"internal",element:u.jsx(Une,{})},forbiddenPageErrorMessage:({portalCasePermissionLevel:e})=>e?Sn("Your current Case 'Permission Level' is: ",Ue[e]):u.jsx(u.Fragment,{}),isPermitted:({portalCasePermissionLevel:e},t)=>!!(e&&e!==Ue["No Access"]),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-case-management.svg"}},CreateCase:{path:"/cases/create",title:"Create a Case",pageConfig:{type:"internal",element:u.jsx(eoe,{})},forbiddenPageErrorMessage:({portalCasePermissionLevel:e})=>e?Sn("Your current Case 'Permission Level' is: ",Ue[e]):u.jsx(u.Fragment,{}),isPermitted:({portalCasePermissionLevel:e},t)=>!!(e&&(e===Ue["Owned Cases"]||e===Ue["All Cases"])),navigationPanelConfig:{isVisible:!1}},EditCase:{path:"/cases/edit",title:"Edit a Case",pageConfig:{type:"internal",element:u.jsx(Ioe,{})},forbiddenPageErrorMessage:({portalCasePermissionLevel:e})=>e?Sn("Your current Case 'Permission Level' is: ",Ue[e]):u.jsx(u.Fragment,{}),isPermitted:({portalCasePermissionLevel:e},t)=>!!(e&&(e===Ue["All Cases"]||e===Ue["Owned Cases"])),navigationPanelConfig:{isVisible:!1}},ClosedCases:{path:"/cases/closed-cases",title:"Closed Cases",pageConfig:{type:"internal",element:u.jsx($re,{})},forbiddenPageErrorMessage:({portalCasePermissionLevel:e})=>e?Sn("Your current Case 'Permission Level' is: ",Ue[e]):u.jsx(u.Fragment,{}),isPermitted:({portalCasePermissionLevel:e},t)=>!!(e&&e!==Ue["No Access"]),navigationPanelConfig:{isVisible:!1}},MajorIncidents:{path:"/cases/major-incidents",title:"Major Incidents",pageConfig:{type:"internal",element:u.jsx(soe,{})},forbiddenPageErrorMessage:({portalCasePermissionLevel:e})=>e?Sn("Your current Case 'Permission Level' is: ",Ue[e]):u.jsx(u.Fragment,{}),isPermitted:({portalCasePermissionLevel:e},t)=>!!(e&&e!==Ue["No Access"]),navigationPanelConfig:{isVisible:!1}},Contacts:{path:"/contacts",title:"Contacts",pageConfig:{type:"internal",element:u.jsx(aoe,{})},forbiddenPageErrorMessage:({portalContactPermissionLevel:e})=>e?Sn("Your current Contact 'Permission Level' is: ",dt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalContactPermissionLevel:e},t)=>!!(e&&e!==dt["No Access"]),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-contacts.svg"}},CreateContact:{path:"/contacts/create",title:"Create a Contact",pageConfig:{type:"internal",element:u.jsx(uoe,{})},forbiddenPageErrorMessage:({portalContactPermissionLevel:e})=>e?Sn("Your current Contact 'Permission Level' is: ",dt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalContactPermissionLevel:e},t)=>!!(e&&e===dt["All Contacts"]),navigationPanelConfig:{isVisible:!1}},EditContact:{path:"/contacts/edit",title:"Edit a Contact",pageConfig:{type:"internal",element:u.jsx(moe,{})},forbiddenPageErrorMessage:({portalContactPermissionLevel:e})=>e?Sn("Your current Contact 'Permission Level' is: ",dt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalContactPermissionLevel:e},t)=>!!(e&&e===dt["All Contacts"]),navigationPanelConfig:{isVisible:!1}},Orders:{path:"/orders",title:"Orders",pageConfig:{type:"internal",element:u.jsx(Roe,{})},forbiddenPageErrorMessage:({portalOrderPermissionLevel:e})=>e?Sn("Your current Order 'Permission Level' is: ",$e[e]):u.jsx(u.Fragment,{}),isPermitted:({portalOrderPermissionLevel:e},t)=>!!(e&&e!==$e["No Access"]),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-order-management.svg"}},EditOrder:{path:"/orders/edit",title:"Edit an Order",pageConfig:{type:"internal",element:u.jsx(Qoe,{})},forbiddenPageErrorMessage:({portalOrderPermissionLevel:e})=>e?Sn("Your current Order 'Permission Level' is: ",$e[e]):u.jsx(u.Fragment,{}),isPermitted:({portalOrderPermissionLevel:e},t)=>!!(e&&e!==$e["No Access"]),navigationPanelConfig:{isVisible:!1}},Projects:{path:"/projects",title:"Projects",pageConfig:{type:"internal",element:u.jsx(uie,{})},forbiddenPageErrorMessage:({portalProjectPermissionLevel:e})=>e?Sn("Your current Project 'Permission Level' is: ",gt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalProjectPermissionLevel:e},t)=>!!(e&&e!==gt["No Access"]),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-project-management.svg"}},EditProject:{path:"/projects/edit",title:"Edit a Project",pageConfig:{type:"internal",element:u.jsx(gse,{})},forbiddenPageErrorMessage:({portalProjectPermissionLevel:e})=>e?Sn("Your current Project 'Permission Level' is: ",gt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalProjectPermissionLevel:e,portalOrderPermissionLevel:t},n)=>!!(e&&e!==gt["No Access"])||!!(t&&t!==$e["No Access"]),navigationPanelConfig:{isVisible:!1}},ViewProjectLog:{path:"/projects/edit/projectlogs/view",title:"View Project Log Details",pageConfig:{type:"internal",element:u.jsx(yse,{})},forbiddenPageErrorMessage:({portalProjectPermissionLevel:e})=>e?Sn("Your current Project 'Permission Level' is: ",gt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalProjectPermissionLevel:e,portalOrderPermissionLevel:t},n)=>!!(e&&e!==gt["No Access"])||!!(t&&t!==$e["No Access"]),navigationPanelConfig:{isVisible:!1}},Invoices:{path:"/invoices",title:"Invoices",pageConfig:{type:"internal",element:u.jsx(iie,{})},forbiddenPageErrorMessage:({portalInvoicePermissionLevel:e})=>e?Sn("Your current Invoice 'Permission Level' is: ",kt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalInvoicePermissionLevel:e})=>!!(e&&e!==kt["No Access"]),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-invoices.svg"}},ViewInvoice:{path:"/invoices/view",title:"View an Invoice",pageConfig:{type:"internal",element:u.jsx(cie,{})},forbiddenPageErrorMessage:({portalInvoicePermissionLevel:e})=>e?Sn("Your current Invoice 'Permission Level' is: ",kt[e]):u.jsx(u.Fragment,{}),isPermitted:({portalInvoicePermissionLevel:e},t)=>!!(e&&e!==kt["No Access"]),navigationPanelConfig:{isVisible:!1}},EditNetworkOrder:{path:"/networkorders/edit",title:"Edit a Network Order",pageConfig:{type:"internal",element:u.jsx(rie,{})},forbiddenPageErrorMessage:({portalOrderPermissionLevel:e})=>e?Sn("Your current Order 'Permission Level' is: ",$e[e]):u.jsx(u.Fragment,{}),isPermitted:({portalOrderPermissionLevel:e},t)=>!!(e&&e!==$e["No Access"]),navigationPanelConfig:{isVisible:!1}},Profile:{path:"/Profile",title:"Profile",pageConfig:{type:"internal",element:u.jsx(goe,{})},forbiddenPageErrorMessage:({basePermissionLevel:e})=>e?Sn("Your current 'Permission Level' is: ",Qe[e]):u.jsx(u.Fragment,{}),isPermitted:(e,t)=>!!Bc(e),navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-my-profile.svg"}},SignOut:{path:"/Account/Login/LogOff",title:"Sign out",pageConfig:{type:"external"},forbiddenPageErrorMessage:void 0,isPermitted:(e,t)=>!0,navigationPanelConfig:{isVisible:!0,iconPath:"/navigation-icon-sign-out.svg"}},SignIn:{path:"/SignIn",title:"Sign in",pageConfig:{type:"external"},forbiddenPageErrorMessage:void 0,isPermitted:(e,t)=>!0,navigationPanelConfig:{isVisible:!1}},TermsAndConditions:{path:"/terms-and-conditions",title:"Terms and Conditions",pageConfig:{type:"internal",element:u.jsx(tR,{})},forbiddenPageErrorMessage:void 0,isPermitted:(e,t)=>!0,navigationPanelConfig:{isVisible:!1}},NotFound:{path:"*",title:"Not Found",pageConfig:{type:"internal",element:u.jsx(pn,{type:"page-not-found"})},forbiddenPageErrorMessage:void 0,isPermitted:(e,t)=>!0,navigationPanelConfig:{isVisible:!1}}},Sn=(e,t)=>u.jsxs("p",{children:[e,u.jsx("strong",{children:t})]});function wse(){const e=Ao(),t=dn(),n=ve(A=>A),r=ve(A=>A.userId),o=ve(A=>A.currentPage),i=ve(A=>A.isLocalMode),a=ve(A=>A.termsAndConditionsAcceptanceDate),s=on(),{appInsights:c}=Nt(),l=eD(),d=r?o.pageConfig.type==="external"?u.jsx(I3,{}):Bc(s)?!a&&o.path!==_e.TermsAndConditions.path?u.jsx(tR,{}):u.jsx(MP,{children:Object.values(_e).map(f=>u.jsx(ok,{path:f.path,element:(()=>{if(!f.isPermitted(s,n))return f.forbiddenPageErrorMessage?u.jsx(w1,{permissionLevelMessage:f.forbiddenPageErrorMessage(s)}):u.jsx(w1,{});if(f.pageConfig.type==="internal")return u.jsx("div",{"data-page-title":f.title,children:u.jsx(rt,{children:f.pageConfig.element})});if(i)return u.jsx(I3,{})})()},f.path))}):u.jsx(w1,{}):u.jsx(oS,{showIcon:!1,title:"Loading",content:u.jsx(vi,{})});return g.useEffect(()=>{const A=f=>f.replace(/\/$/g,"");t({type:"SetCurrentPage",currentPage:Object.values(_e).find(f=>A(f.path.toLowerCase())===A(e.pathname.toLowerCase()))||_e.NotFound})},[e,t]),g.useEffect(()=>{window.document.title=`${o.title} | Bistech Customer Portal`,window.scrollTo({top:0,behavior:"smooth"})},[o]),g.useEffect(()=>{t({type:"ClearLatestErrors"})},[o,t]),g.useEffect(()=>{c==null||c.trackPageView({name:o.title,uri:o.path,properties:l})},[o]),{routes:d}}const xse=({iconPath:e,displayName:t,url:n,isSinglePageAppLink:r})=>{const o=Ao(),{trackEventWithBistechMetadata:i}=Nt(),s=o.pathname.replace(/^\//,"").split("/")[0].toLowerCase()===n.replace(/\//g,"").toLowerCase();return r?u.jsx(jt,{to:n,"aria-current":s,onClick:()=>i==null?void 0:i({type:"Navigation Panel - Customer Asset tile clicked",tileName:t}),children:u.jsxs(rt,{children:[u.jsx(Wn,{width:18,height:18,src:e}),t]})}):u.jsx("a",{href:n,"aria-current":s,onClick:()=>i==null?void 0:i({type:"Navigation Panel - Customer Asset tile clicked",tileName:t}),children:u.jsxs(rt,{children:[u.jsx(Wn,{width:18,height:18,src:e}),t]})})},kse=e=>{const{navigationMenuGroup:t}=e,[n,r]=g.useState(!1),[o,i]=g.useState(!1),[a,s]=g.useState(null),c=ve(A=>A.products),l=g.useMemo(()=>c.loadingStatus!=="loaded"?{loadingStatus:c.loadingStatus}:{loadingStatus:"loaded",data:t.productLinks.map(f=>{var v;const m=(v=c.data.find(p=>p.bistech_portaltilemapping===f.tileMapping))==null?void 0:v.bistech_tiletargeturl;return{...f,url:m}}).filter(({url:f})=>f)},[c,t]),d=A=>{i(!0),window.scrollTo({top:0,behavior:"smooth"}),s(A)};return u.jsxs("li",{className:"navigation-menu-group",children:[u.jsxs(rt,{children:[u.jsxs("button",{className:"button navigation-menu-group-header",onClick:()=>r(!n),children:[u.jsx(Wn,{src:t.iconPath,width:18,height:18}),u.jsx("span",{className:"navigation-menu-group-header-label",children:t.title}),n?u.jsx(gne,{}):u.jsx(pne,{})]}),n&&u.jsx("div",{className:"navigation-menu-group-items",children:u.jsx(rt,{children:(()=>{var A;switch(l.loadingStatus){case"not-started":case"loading":return u.jsx(vi,{});case"loaded":return l.data.length===0?u.jsx("p",{children:"No products found"}):(A=l.data)==null?void 0:A.map(({label:f,url:m,modalMessage:v})=>{const p=u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"navigation-menu-group-item-label",children:f}),u.jsx(VF,{style:{color:"#777"}})]});if(v){const y={label:v,hasModal:!0,modalInfo:{isErrorModal:!1,modalButtonLabel:"Confirm",modalContent:u.jsx(u.Fragment,{children:v}),modalTitle:f,onClick:async()=>{const b=window.open();b.opener=null,b.location=m}}};return u.jsx("a",{onClick:()=>d(y),target:"_blank",rel:"noreferrer",className:"navigation-menu-group-item",children:p},f)}else return u.jsx("a",{href:m,target:"_blank",rel:"noreferrer",className:"navigation-menu-group-item",children:p},f)})}})()})})]}),a&&u.jsx(yl,{buttonInfo:a,isModalShown:o,setIsModalShown:i})]},t.title)},Sse=e=>{const t=on(),n=ve(a=>a),r=g.useRef(null);aS({ref:r,onSwipe:a=>{a==="horizontal-left"&&e.setIsNavigationPanelExpanded(!1)}});const o=[{title:"Infrastructure",iconPath:"/navigation-menu-icon-dropdown-infrastructure.svg",productLinks:[{label:"Meraki",tileMapping:it.Meraki},{label:"Ninja RMM",tileMapping:it.NinjaRMM},{label:"Solarwinds",tileMapping:it.Solarwinds},{label:"VMWare",tileMapping:it.VMWare}]},{title:"Security",iconPath:"/navigation-menu-icon-dropdown-security.svg",productLinks:[{label:"FortiAnalyzer",tileMapping:it.FortiAnalyzer,modalMessage:"In order to access the FortiAnalyzer, you must be connected to your company VPN."},{label:"FortiGate",tileMapping:it.FortiGate,modalMessage:"In order to access the FortiGate, you must be connected to your company VPN."},{label:"FortiMail",tileMapping:it.FortiMail},{label:"Mimecast",tileMapping:it.Mimecast}]},{title:"Cloud Admin",iconPath:"/navigation-menu-icon-dropdown-cloud.svg",productLinks:[{label:"8x8",tileMapping:it._8x8},{label:"Azure",tileMapping:it.Azure},{label:"M365 Admin Centre",tileMapping:it.M365AdminCentre},{label:"NMS",tileMapping:it.NMS}]},{title:"Licensing & Billing",iconPath:"/navigation-menu-icon-dropdown-licensing-billing.svg",productLinks:[{label:"aBILLity",tileMapping:it.WebAbility},{label:"Microsoft Licensing",tileMapping:it.MicrosoftLicensing}]}],i=_e.Profile.title;return u.jsx("nav",{className:"navigation-panel","data-is-shown":e.isNavigationPanelExpanded,ref:r,children:u.jsx("ul",{className:"navigation-panel-items",children:Object.values(_e).filter(a=>a.navigationPanelConfig.isVisible&&a.isPermitted(t,n)).map(a=>u.jsx("div",{children:u.jsxs(rt,{children:[a.title===i&&o.map(s=>u.jsx(kse,{navigationMenuGroup:s},s.title)),u.jsx("li",{className:"navigation-panel-item",children:u.jsx(xse,{iconPath:a.navigationPanelConfig.isVisible&&a.navigationPanelConfig.iconPath||"",displayName:a.title,url:a.path,isSinglePageAppLink:a.pageConfig.type==="internal"})},a.path)]})},a.title))})})},jse=()=>{const e=dn(),t=kn(),{trackExceptionWithBistechMetadata:n,trackEventWithBistechMetadata:r}=Nt(),o=ve(b=>b.feedbackPaneIsShown),[i,a]=g.useState(""),[s,c]=g.useState("not-shown"),[l,d]=g.useState(null),[A,f]=g.useState("");g.useEffect(()=>{o&&(r==null||r({type:"Feedback Pane - Opened"}))},[o]);const m=g.useRef(null);aS({ref:m,onSwipe:b=>{b==="horizontal-right"&&e({type:"SetFeedbackPaneIsShown",feedbackPaneIsShown:!1})}});const v=b=>{d(b),c("shown")};g.useEffect(()=>{s==="complete"&&(f(""),d(null),c("not-shown"),a(""))},[o,s]);const p=b=>{f(b.target.value)};async function y(){if(A===""){a("Description Required");return}a.length&&a(""),c("submitting");try{r==null||r({type:"Feedback Pane - Feedback creation submitted",feedbackCategory:l}),await t.executeFeedbackPortalAction(A,l),c("complete"),f(""),e({type:"AddNotification",notification:{message:"Feedback submitted successfully",displayedOnRelativeUrl:`${window.location.pathname}${window.location.search}`,displayUntil:Pe.addSeconds(new Date,10)}}),e({type:"SetFeedbackPaneIsShown",feedbackPaneIsShown:!1}),r==null||r({type:"Feedback Pane - Feedback created successfully",feedbackCategory:l})}catch(b){c("error"),a("Unable to submit your feedback. Please verify your connection, refresh the page, and try again."),n==null||n(b)}}return u.jsx("div",{className:"feedback-pane","data-is-shown":`${o}`,ref:m,children:u.jsxs(rt,{children:[u.jsx("h3",{className:"feedback-title",children:"Please provide any feedback about the portal"}),u.jsxs("div",{id:"feedback-form",children:[u.jsx("input",{className:"feedback-button-selector",type:"radio",name:"feedback-type",value:"not-working",id:"feedback-type-not-working",onClick:()=>v("not-working")}),u.jsxs("label",{className:`feedback-button-label ${l==="not-working"&&"selected"}`,htmlFor:"feedback-type-not-working",children:[u.jsx(Wn,{src:"/feedback-not-working-icon.svg",width:24,height:24}),u.jsx("span",{className:"feedback-button-text",children:"Something isn't working"})]}),u.jsx("input",{className:"feedback-button-selector",type:"radio",name:"feedback-type",value:"suggestion",id:"feedback-type-suggestion",onClick:()=>v("suggestion")}),u.jsxs("label",{className:`feedback-button-label ${l==="suggestion"&&"selected"}`,htmlFor:"feedback-type-suggestion",children:[u.jsx(Wn,{src:"/feedback-suggestion-icon.svg",width:24,height:24}),u.jsx("span",{className:"feedback-button-text",children:"I have a suggestion"})]}),i.length>0&&u.jsx("div",{className:"description-required",role:"alert",children:u.jsxs("p",{className:"validation-header",children:[u.jsx(fne,{className:"info-circle"}),i]})}),s!=="not-shown"&&u.jsxs(u.Fragment,{children:[u.jsx("textarea",{className:"feedback-description",name:"message",maxLength:500,cols:30,rows:10,value:A,placeholder:"Please provide any feedback here",onChange:p}),u.jsx("button",{id:"feedback-submit",onClick:()=>y(),disabled:s==="submitting"||s==="complete","data-is-submitted":`${s}`,className:"button",children:u.jsxs("div",{className:"button-content",children:[s==="submitting"&&u.jsx(Wr,{className:"spin"}),s==="complete"&&u.jsx(yM,{}),u.jsx("span",{children:s==="complete"?"Submitted":"Submit"})]})})]})]})]})})},Nse=()=>{const e=kn(),t=on(),n=dn(),r=ve(p=>p.incidents),o=ve(p=>p.contacts),i=ve(p=>p.products),a=ve(p=>p.orders),s=ve(p=>p.invoices),c=ve(p=>p.networkOrders),l=ve(p=>p.projects),d=ve(p=>p.customerAssets),A=ve(p=>p.accounts),f=ve(p=>p.portalMajorIncidentUpdates),m=ve(p=>p.blogPosts),{trackExceptionWithBistechMetadata:v}=Nt();g.useEffect(()=>{t.contactId&&(A.loadingStatus==="loaded"||A.loadingStatus==="loading"||Bc(t)&&(n({type:"SetAccounts",accounts:{loadingStatus:"loading"}}),e.retrieveAccounts().then(p=>n({type:"SetAccounts",accounts:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,A,t.contactId]),g.useEffect(()=>{t.contactId&&(o.loadingStatus==="loaded"||o.loadingStatus==="loading"||Bc(t)&&(n({type:"SetContacts",contacts:{loadingStatus:"loading"}}),e.retrieveContacts().then(p=>n({type:"SetContacts",contacts:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,o,t.contactId]),g.useEffect(()=>{(async()=>{if(t.contactId&&!(r.activeIncidents.loadingStatus==="loaded"||r.activeIncidents.loadingStatus==="loading")&&!(t.basePermissionLevel===Qe["No Access"]||t.portalCasePermissionLevel===Ue["No Access"])){n({type:"SetMajorIncidents",activeMajorIncidents:{loadingStatus:"loading"},recentlyResolvedMajorIncidents:{loadingStatus:"loading"}}),n({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loading"}});try{const p=await e.retrieveActiveIncidents(),y=p.filter(w=>w.casetypecode===Se["Major Incident"]&&(w.statuscode===de["In Progress"]||w.statuscode===de["On Hold"]||w.statuscode===de["Pending Feedback"])),b=p.filter(w=>w.casetypecode!==Se["Major Incident"]),h=await e.retrieveRecentlyResolvedMajorIncidents();n({type:"SetMajorIncidents",activeMajorIncidents:{loadingStatus:"loaded",data:y},recentlyResolvedMajorIncidents:{loadingStatus:"loaded",data:h}}),n({type:"SetActiveIncidents",activeIncidents:{loadingStatus:"loaded",data:b}})}catch(p){n({type:"AddLatestError",error:p}),v==null||v(p)}}})()},[e,n,r,t.contactId]),g.useEffect(()=>{t.contactId&&(i.loadingStatus==="loaded"||i.loadingStatus==="loading"||Bc(t)&&(n({type:"SetProducts",products:{loadingStatus:"loading"}}),e.retrieveProducts().then(p=>n({type:"SetProducts",products:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,i,t.contactId]),g.useEffect(()=>{t.contactId&&(f.loadingStatus==="loaded"||f.loadingStatus==="loading"||t.basePermissionLevel===Qe["No Access"]||t.portalCasePermissionLevel===Ue["No Access"]||(n({type:"SetPortalMajorIncidentUpdates",portalMajorIncidentUpdates:{loadingStatus:"loading"}}),e.retrievePortalMajorIncidentUpdatesRegardingActiveAndRecentlyResolvedMajorIncidents().then(p=>n({type:"SetPortalMajorIncidentUpdates",portalMajorIncidentUpdates:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,f,t.contactId]),g.useEffect(()=>{m.loadingStatus==="loaded"||m.loadingStatus==="loading"||Bc(t)&&(n({type:"SetBlogPosts",blogPosts:{loadingStatus:"loading"}}),e.retrieveBlogPostRecords().then(p=>n({type:"SetBlogPosts",blogPosts:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)}))},[e,n,m]),g.useEffect(()=>{t.contactId&&(c.loadingStatus==="loaded"||c.loadingStatus==="loading"||t.basePermissionLevel===Qe["No Access"]||t.portalOrderPermissionLevel===$e["No Access"]||(n({type:"SetNetworkOrders",networkOrders:{loadingStatus:"loading"}}),e.retrieveNetworkOrders().then(p=>n({type:"SetNetworkOrders",networkOrders:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,c,t.contactId]),g.useEffect(()=>{t.contactId&&(l.loadingStatus==="loaded"||l.loadingStatus==="loading"||t.basePermissionLevel===Qe["No Access"]||t.portalOrderPermissionLevel===$e["No Access"]&&t.portalProjectPermissionLevel===gt["No Access"]||(n({type:"SetProjects",projects:{loadingStatus:"loading"}}),e.retrieveProjects().then(p=>n({type:"SetProjects",projects:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,l,t.contactId]),g.useEffect(()=>{t.contactId&&(a.loadingStatus==="loaded"||a.loadingStatus==="loading"||t.basePermissionLevel===Qe["No Access"]||t.portalOrderPermissionLevel===$e["No Access"]||(n({type:"SetOrders",orders:{loadingStatus:"loading"}}),e.retrieveOrders().then(p=>n({type:"SetOrders",orders:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,a,t.contactId]),g.useEffect(()=>{t.contactId&&(d.loadingStatus==="loaded"||d.loadingStatus==="loading"||t.basePermissionLevel===Qe["No Access"]||t.portalOrderPermissionLevel===$e["No Access"]||(n({type:"SetCustomerAssets",customerAssets:{loadingStatus:"loading"}}),e.retrieveCustomerAssets().then(p=>n({type:"SetCustomerAssets",customerAssets:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,d,t.contactId]),g.useEffect(()=>{t.contactId&&(s.loadingStatus==="loaded"||s.loadingStatus==="loading"||t.basePermissionLevel===Qe["No Access"]||t.portalInvoicePermissionLevel===kt["No Access"]||(n({type:"SetInvoices",invoices:{loadingStatus:"loading"}}),e.retrieveInvoices().then(p=>n({type:"SetInvoices",invoices:{loadingStatus:"loaded",data:p}})).catch(p=>{n({type:"AddLatestError",error:p}),v==null||v(p)})))},[e,n,s,t.contactId])},Cse=()=>{const{routes:e}=wse(),t=Ao(),n=dn(),[r,o]=g.useState(!1),i=ve(c=>c.dirtyBannerSettings),[a,s]=g.useState(1);return Nse(),g.useEffect(()=>{o(!1)},[t]),u.jsxs("div",{className:"App",children:[u.jsx(LF,{setNavigationPanelExpanded:o,isNavigationPanelExpanded:r}),u.jsx(dne,{}),u.jsxs("div",{className:"single-page-application-body",children:[u.jsx(Sse,{isNavigationPanelExpanded:r,setIsNavigationPanelExpanded:o}),e,u.jsx(KB,{when:!!i,children:({isActive:c,onConfirm:l,onCancel:d})=>u.jsx(yl,{isModalShown:c,setIsModalShown:()=>d(null),buttonInfo:{hasModal:!0,label:"Unsaved changes",modalInfo:{isErrorModal:!1,modalContent:u.jsx(u.Fragment,{children:"You have unsaved changes. Are you sure you want to leave without saving?"}),modalButtonLabel:"Leave",modalTitle:"Unsaved changes",onClick:async()=>{n({type:"SetDirtyBannerSettings",dirtyBannerSettings:void 0}),l(null),s(a+1)}}}})},a),u.jsx(jse,{})]})]})};function vo(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var aT=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),S1=function(){return Math.random().toString(36).substring(7).split("").join(".")},sT={INIT:"@@redux/INIT"+S1(),REPLACE:"@@redux/REPLACE"+S1(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+S1()}};function Tse(e){if(typeof e!="object"||e===null)return!1;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function MR(e,t,n){var r;if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(vo(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(vo(1));return n(MR)(e,t)}if(typeof e!="function")throw new Error(vo(2));var o=e,i=t,a=[],s=a,c=!1;function l(){s===a&&(s=a.slice())}function d(){if(c)throw new Error(vo(3));return i}function A(p){if(typeof p!="function")throw new Error(vo(4));if(c)throw new Error(vo(5));var y=!0;return l(),s.push(p),function(){if(y){if(c)throw new Error(vo(6));y=!1,l();var h=s.indexOf(p);s.splice(h,1),a=null}}}function f(p){if(!Tse(p))throw new Error(vo(7));if(typeof p.type>"u")throw new Error(vo(8));if(c)throw new Error(vo(9));try{c=!0,i=o(i,p)}finally{c=!1}for(var y=a=s,b=0;b1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:cS(e)?2:lS(e)?3:0}function Gw(e,t){return Wu(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Pse(e,t){return Wu(e)===2?e.get(t):e[t]}function RR(e,t,n){var r=Wu(e);r===2?e.set(t,n):r===3?(e.delete(t),e.add(n)):e[t]=n}function Dse(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function cS(e){return Ese&&e instanceof Map}function lS(e){return Bse&&e instanceof Set}function Sc(e){return e.o||e.t}function dS(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Ose(e);delete t[so];for(var n=mS(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=Mse),Object.freeze(e),t&&lm(e,function(n,r){return uS(r,!0)},!0)),e}function Mse(){ei(2)}function AS(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Ri(e){var t=Lse[e];return t||ei(18,e),t}function cT(){return dm}function j1(e,t){t&&(Ri("Patches"),e.u=[],e.s=[],e.v=t)}function ag(e){Yw(e),e.p.forEach(Rse),e.p=null}function Yw(e){e===dm&&(dm=e.l)}function lT(e){return dm={p:[],l:dm,h:e,m:!0,_:0}}function Rse(e){var t=e[so];t.i===0||t.i===1?t.j():t.O=!0}function N1(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||Ri("ES5").S(t,e,r),r?(n[so].P&&(ag(t),ei(4)),sl(e)&&(e=sg(t,e),t.l||cg(t,e)),t.u&&Ri("Patches").M(n[so].t,e,t.u,t.s)):e=sg(t,n,[]),ag(t),t.u&&t.v(t.u,t.s),e!==zR?e:void 0}function sg(e,t,n){if(AS(t))return t;var r=t[so];if(!r)return lm(t,function(i,a){return dT(e,r,t,i,a,n)},!0),t;if(r.A!==e)return t;if(!r.P)return cg(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=r.i===4||r.i===5?r.o=dS(r.k):r.o;lm(r.i===3?new Set(o):o,function(i,a){return dT(e,r,o,i,a,n)}),cg(e,o,!1),n&&e.u&&Ri("Patches").R(r,n,e.u,e.s)}return r.o}function dT(e,t,n,r,o,i){if(mu(o)){var a=sg(e,o,i&&t&&t.i!==3&&!Gw(t.D,r)?i.concat(r):void 0);if(RR(n,r,a),!mu(a))return;e.m=!1}if(sl(o)&&!AS(o)){if(!e.h.F&&e._<1)return;sg(e,o),t&&t.A.l||cg(e,o)}}function cg(e,t,n){n===void 0&&(n=!1),e.h.F&&e.m&&uS(t,n)}function C1(e,t){var n=e[so];return(n?Sc(n):e)[t]}function uT(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Kw(e){e.P||(e.P=!0,e.l&&Kw(e.l))}function T1(e){e.o||(e.o=dS(e.t))}function Jw(e,t,n){var r=cS(t)?Ri("MapSet").N(t,n):lS(t)?Ri("MapSet").T(t,n):e.g?function(o,i){var a=Array.isArray(o),s={i:a?1:0,A:i?i.A:cT(),P:!1,I:!1,D:{},l:i,t:o,k:null,o:null,j:null,C:!1},c=s,l=Qw;a&&(c=[s],l=BA);var d=Proxy.revocable(c,l),A=d.revoke,f=d.proxy;return s.k=f,s.j=A,f}(t,n):Ri("ES5").J(t,n);return(n?n.A:cT()).p.push(r),r}function zse(e){return mu(e)||ei(22,e),function t(n){if(!sl(n))return n;var r,o=n[so],i=Wu(n);if(o){if(!o.P&&(o.i<4||!Ri("ES5").K(o)))return o.t;o.I=!0,r=AT(n,i),o.I=!1}else r=AT(n,i);return lm(r,function(a,s){o&&Pse(o.t,a)===s||RR(r,a,t(s))}),i===3?new Set(r):r}(e)}function AT(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return dS(e)}var fT,dm,fS=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Ese=typeof Map<"u",Bse=typeof Set<"u",mT=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",zR=fS?Symbol.for("immer-nothing"):((fT={})["immer-nothing"]=!0,fT),vT=fS?Symbol.for("immer-draftable"):"__$immer_draftable",so=fS?Symbol.for("immer-state"):"__$immer_state",Fse=""+Object.prototype.constructor,mS=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Ose=Object.getOwnPropertyDescriptors||function(e){var t={};return mS(e).forEach(function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)}),t},Lse={},Qw={get:function(e,t){if(t===so)return e;var n=Sc(e);if(!Gw(n,t))return function(o,i,a){var s,c=uT(i,a);return c?"value"in c?c.value:(s=c.get)===null||s===void 0?void 0:s.call(o.k):void 0}(e,n,t);var r=n[t];return e.I||!sl(r)?r:r===C1(e.t,t)?(T1(e),e.o[t]=Jw(e.A.h,r,e)):r},has:function(e,t){return t in Sc(e)},ownKeys:function(e){return Reflect.ownKeys(Sc(e))},set:function(e,t,n){var r=uT(Sc(e),t);if(r!=null&&r.set)return r.set.call(e.k,n),!0;if(!e.P){var o=C1(Sc(e),t),i=o==null?void 0:o[so];if(i&&i.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(Dse(n,o)&&(n!==void 0||Gw(e.t,t)))return!0;T1(e),Kw(e)}return e.o[t]===n&&typeof n!="number"&&(n!==void 0||t in e.o)||(e.o[t]=n,e.D[t]=!0,!0)},deleteProperty:function(e,t){return C1(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,T1(e),Kw(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=Sc(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty:function(){ei(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){ei(12)}},BA={};lm(Qw,function(e,t){BA[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),BA.deleteProperty=function(e,t){return BA.set.call(this,e,t,void 0)},BA.set=function(e,t,n){return Qw.set.call(this,e[0],t,n,e[0])};var Wse=function(){function e(n){var r=this;this.g=mT,this.F=!0,this.produce=function(o,i,a){if(typeof o=="function"&&typeof i!="function"){var s=i;i=o;var c=r;return function(p){var y=this;p===void 0&&(p=s);for(var b=arguments.length,h=Array(b>1?b-1:0),w=1;w1?d-1:0),f=1;f=0;o--){var i=r[o];if(i.path.length===0&&i.op==="replace"){n=i.value;break}}o>-1&&(r=r.slice(o+1));var a=Ri("Patches").$;return mu(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},e}(),co=new Wse,Use=co.produce;co.produceWithPatches.bind(co);co.setAutoFreeze.bind(co);co.setUseProxies.bind(co);co.applyPatches.bind(co);co.createDraft.bind(co);co.finishDraft.bind(co);/*! * Microsoft Dynamic Proto Utility, 1.1.7 * Copyright (c) Microsoft and contributors. All rights reserved. */var G0,Y0="undefined",lg="constructor",xa="prototype",dg="function",ug="_dynInstFuncs",$w="_isDynProxy",zd="_dynClass",Hse="_dynCls$",e2="_dynInstChk",um=e2,ER="_dfOpts",pT="_unknown_",BR="__proto__",K0="_dyn"+BR,gT="__dynProto$Gbl",I1="_dynInstProto",_v="useBaseInst",t2="setInstFuncs",ob=Object,Am=ob.getPrototypeOf,hT=ob.getOwnPropertyNames;function Zse(){var e;return typeof globalThis!==Y0&&(e=globalThis),!e&&typeof self!==Y0&&(e=self),!e&&typeof window!==Y0&&(e=window),!e&&typeof global!==Y0&&(e=global),e||{}}var bT=Zse(),n2=bT[gT]||(bT[gT]={o:(G0={},G0[t2]=!0,G0[_v]=!0,G0),n:1e3});function ka(e,t){return e&&ob[xa].hasOwnProperty.call(e,t)}function FR(e){return e&&(e===ob[xa]||e===Array[xa])}function vS(e){return FR(e)||e===Function[xa]}function cl(e){var t;if(e){if(Am)return Am(e);var n=e[BR]||e[xa]||(e[lg]?e[lg][xa]:null);t=e[K0]||n,ka(e,K0)||(delete e[I1],t=e[K0]=e[I1]||e[K0],e[I1]=n)}return t}function Ag(e,t){var n=[];if(hT)n=hT(e);else for(var r in e)typeof r=="string"&&ka(e,r)&&n.push(r);if(n&&n.length>0)for(var o=0;o=0;n--)if(e[n]===t)return!0;return!1}function qse(e,t,n,r){function o(c,l,d){var A=l[d];if(A[$w]&&r){var f=c[ug]||{};f[um]!==!1&&(A=(f[l[zd]]||{})[d]||A)}return function(){return A.apply(c,arguments)}}var i={};Ag(n,function(c){i[c]=o(t,n,c)});for(var a=cl(e),s=[];a&&!vS(a)&&!gS(s,a);)Ag(a,function(c){!i[c]&&pS(a,c,!Am)&&(i[c]=o(t,a,c))}),s.push(a),a=cl(a);return i}function _se(e,t,n,r){var o=null;if(e&&ka(n,zd)){var i=e[ug]||{};if(o=(i[n[zd]]||{})[t],o||fg("Missing ["+t+"] "+dg),!o[e2]&&i[um]!==!1){for(var a=!ka(e,t),s=cl(e),c=[];a&&s&&!vS(s)&&!gS(c,s);){var l=s[t];if(l){a=l===r;break}c.push(s),s=cl(s)}try{a&&(e[t]=o),o[e2]=1}catch{i[um]=!1}}}return o}function Xse(e,t,n){var r=t[e];return r===n&&(r=cl(t)[e]),typeof r!==dg&&fg("["+e+"] is not a "+dg),r}function Gse(e,t,n,r,o){function i(c,l){var d=function(){var A=_se(this,l,c,d)||Xse(l,c,d);return A.apply(this,arguments)};return d[$w]=1,d}if(!FR(e)){var a=n[ug]=n[ug]||{},s=a[t]=a[t]||{};a[um]!==!1&&(a[um]=!!o),Ag(n,function(c){pS(n,c,!1)&&n[c]!==r[c]&&(s[c]=n[c],delete n[c],(!ka(e,c)||e[c]&&!e[c][$w])&&(e[c]=i(e,c)))})}}function Yse(e,t){if(Am){for(var n=[],r=cl(t);r&&!vS(r)&&!gS(n,r);){if(r===e)return!0;n.push(r),r=cl(r)}return!1}return!0}function P1(e,t){return ka(e,xa)?e.name||t||pT:((e||{})[lg]||{}).name||t||pT}function Lt(e,t,n,r){ka(e,xa)||fg("theClass is an invalid class definition.");var o=e[xa];Yse(o,t)||fg("["+P1(e)+"] not in hierarchy of ["+P1(t)+"]");var i=null;ka(o,zd)?i=o[zd]:(i=Hse+P1(e,"_")+"$"+n2.n,n2.n++,o[zd]=i);var a=Lt[ER],s=!!a[_v];s&&r&&r[_v]!==void 0&&(s=!!r[_v]);var c=Vse(t),l=qse(o,t,c,s);n(t,l);var d=!!Am&&!!a[t2];d&&r&&(d=!!r[t2]),Gse(o,i,t,c,d!==!1)}Lt[ER]=n2.o;var Uu="function",Ia="object",as="undefined",hr="prototype",hS="hasOwnProperty",Pa=Object,bS=Pa[hr],r2=Pa.assign,Kse=Pa.create,OR=Pa.defineProperty,ll=bS[hS],yT=null;function Hu(e){e===void 0&&(e=!0);var t=e===!1?null:yT;return t||(typeof globalThis!==as&&(t=globalThis),!t&&typeof self!==as&&(t=self),!t&&typeof window!==as&&(t=window),!t&&typeof global!==as&&(t=global),yT=t),t}function yS(e){throw new TypeError(e)}function LR(e){var t=Kse;if(t)return t(e);if(e==null)return{};var n=typeof e;n!==Ia&&n!==Uu&&yS("Object prototype may only be an Object:"+e);function r(){}return r[hr]=e,new r}(Hu()||{}).Symbol;(Hu()||{}).Reflect;var Jse=function(e){for(var t,n=1,r=arguments.length;n=r&&!(n=e===t)){for(var i=o-1,a=r-1;a>=0;a--){if(e[i]!=t[a])return!1;i--}n=!0}return n}function Yn(e,t){return e&&t?e[e0](t)!==-1:!1}var Dt=oce||Ace;function Ace(e){return!!(e&&GR[br](e)==="[object Array]")}function QR(e){return!!(e&&GR[br](e)==="[object Error]")}function Fe(e){return typeof e=="string"}function $R(e){return typeof e=="number"}function fce(e){return typeof e=="boolean"}function RT(e){var t=!1;if(e&&typeof e=="object"){var n=bg?bg(e):KR(e);n?(n[Kv]&&ll[br](n,Kv)&&(n=n[Kv]),t=typeof n===Uu&&YR[br](n)===ice):t=!0}return t}function bu(e){if(e)return rce?e[VR]():mce(e)}function mce(e){if(e&&e.getUTCFullYear){var t=function(n){var r=String(n);return r[tt]===1&&(r="0"+r),r};return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+String((e.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}}function Me(e,t,n){var r=e[tt];try{for(var o=0;o=0?o:r-Math.abs(o),0);i=3)r=arguments[2];else{for(;i0&&fce(s)&&(l=s,s=a[d]||{},d++),di(s)||(s={});d=m&&(c[w](h[Ed]),r[x]=!0)}else o>=m&&c[w](h[Ed]);l(m,h)}},c[Yv]=function(m){OT("warn",m),f("warning",m)},c[R1]=function(m){OT("error",m),f("error",m)},c.resetInternalMessageCount=function(){n=0,r={}},c[HR]=l;function l(m,v){if(!A()){var p=!0,y=Uce+v[vg];if(r[y]?p=!1:r[y]=!0,p&&(m<=i&&(c.queue[St](v),n++,f(m===1?"error":"warn",v)),n===a)){var b="Internal events throttle limit per PageView reached for this app.",h=new pm(23,b,!1);c.queue[St](h),m===1?c[R1](b):c[Yv](b)}}}function d(m){o=Ti(m.loggingLevelConsole,0),i=Ti(m.loggingLevelTelemetry,1),a=Ti(m.maxMessageLimit,25),s=Ti(m[ST],!1)}function A(){return n>=a}function f(m,v){var p=u9(t||{});p&&p[Al]&&p[Al](m,v)}})}return e.__ieDyn=1,e}();function NS(e){return e||new ab}function he(e,t,n,r,o,i){i===void 0&&(i=!1),NS(e).throwInternal(t,n,r,o,i)}function Fc(e,t){NS(e)[Yv](t)}function Hce(e,t,n){NS(e)[HR](t,n)}var Od="ctx",y2="ParentContextKey",yf="ChildrenContextKey",Zce=null,Jv=function(){function e(t,n,r){var o=this,i=!1;if(o.start=Ui(),o[Us]=t,o[pu]=r,o[l2]=function(){return!1},Xe(n)){var a;i=ss(o,"payload",function(){return!a&&Xe(n)&&(a=n(),n=null),a})}o[Bd]=function(s){return s?s===e[y2]||s===e[yf]?o[s]:(o[Od]||{})[s]:null},o[ki]=function(s,c){if(s)if(s===e[y2])o[s]||(o[l2]=function(){return!0}),o[s]=c;else if(s===e[yf])o[s]=c;else{var l=o[Od]=o[Od]||{};l[s]=c}},o[d2]=function(){var s=0,c=o[Bd](e[yf]);if(Dt(c))for(var l=0;l>>=0),OA=123456789+e&Yc,LA=987654321-e&Yc,f9=!0}function Xce(){try{var e=Ui()&2147483647;_ce((Math.random()*A9^e)+e)}catch{}}function jg(e){var t=0,n=Rce()||zce();return n&&n.getRandomValues&&(t=n.getRandomValues(new Uint32Array(1))[0]&Yc),t===0&&b2()&&(f9||Xce(),t=Gce()&Yc),t===0&&(t=Math.floor(A9*Math.random()|0)),e||(t>>>=0),t}function Gce(e){LA=36969*(LA&65535)+(LA>>16)&Yc,OA=18e3*(OA&65535)+(OA>>16)&Yc;var t=(LA<<16)+(OA&65535)>>>0&Yc|0;return e||(t>>>=0),t}function CS(e){e===void 0&&(e=22);for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=jg()>>>0,r=0,o=et;o[tt]>>=6,r===5&&(n=(jg()<<2&4294967295|n&3)>>>0,r=0);return o}var LT=OR,m9="2.8.9",Yce="."+CS(6),Kce=0;function Jce(e,t,n){if(LT)try{return LT(e,t,{value:n,enumerable:!1,configurable:!0}),!0}catch{}return!1}function v9(e){return e[M1]===1||e[M1]===9||!+e[M1]}function Qce(e,t){var n=t[e.id];if(!n){n={};try{v9(t)&&(Jce(t,e.id,n)||(t[e.id]=n))}catch{}}return n}function Ra(e,t){return t===void 0&&(t=!1),yg(e+Kce+++(t?"."+m9:et)+Yce)}function p9(e){var t={id:Ra("_aiData-"+(e||et)+"."+m9),accept:function(n){return v9(n)},get:function(n,r,o,i){var a=n[t.id];return a?a[yg(r)]:(i&&(a=Qce(t,n),a[yg(r)]=o),o)},kill:function(n,r){if(n&&n[r])try{delete n[r]}catch{}}};return t}var WT="toGMTString",UT="toUTCString",TS="cookie",W1="expires",w2="enabled",HT="isCookieUseDisabled",ZT="disableCookiesUsage",hd="_ckMgr",ev=null,U1=null,VT=null,gm=$r(),qT={},Ng={};function $ce(e,t){var n=Qv[hd]||Ng[hd];return n||(n=Qv[hd]=Qv(e,t),Ng[hd]=n),n}function tv(e){return e?e.isEnabled():!0}function ele(e){var t=e[kT]=e[kT]||{};if(pt(t,"domain",e.cookieDomain,lce,ge),pt(t,"path",e.cookiePath||"/",null,ge),ge(t[w2])){var n=void 0;$n(e[HT])||(n=!e[HT]),$n(e[ZT])||(n=!e[ZT]),t[w2]=n}return t}function g9(e,t){return t&&e&&Dt(e.ignoreCookies)?e.ignoreCookies[e0](t)!==-1:!1}function tle(e,t){return t&&e&&Dt(e.blockedCookies)&&e.blockedCookies[e0](t)!==-1?!0:g9(e,t)}function IS(e,t){var n;return e&&(n=e.getCookieMgr()),n||(n=$ce(t,(e||{})[ji])),n}function Qv(e,t){var n,r=ele(e||Ng),o=r.path||"/",i=r.domain,a=r[w2]!==!1,s=(n={isEnabled:function(){var c=a&&_T(t),l=Ng[hd];return c&&l&&s!==l&&(c=tv(l)),c}},n[UR]=function(c){a=c!==!1},n.set=function(c,l,d,A,f){var m=!1;if(tv(s)&&!tle(r,c)){var v={},p=vr(l||et),y=p[e0](";");if(y!==-1&&(p=vr(l[pg](0,y)),v=h9(l[pg](y+1))),pt(v,"domain",A||i,p2,$n),!ge(d)){var b=b2();if($n(v[W1])){var h=Ui(),w=h+d*1e3;if(w>0){var x=new Date;x.setTime(w),pt(v,W1,XT(x,b?WT:UT)||XT(x,b?WT:UT)||et,p2)}}b||pt(v,"max-age",et+d,null,$n)}var k=cs();k&&k.protocol==="https:"&&(pt(v,"secure",null,null,$n),U1===null&&(U1=!rle((Ma()||{})[gg])),U1&&pt(v,"SameSite","None",null,$n)),pt(v,"path",f||o,null,$n);var S=r.setCookie||YT;S(c,GT(p,v)),m=!0}return m},n.get=function(c){var l=et;return tv(s)&&!g9(r,c)&&(l=(r.getCookie||nle)(c)),l},n.del=function(c,l){var d=!1;return tv(s)&&(d=s.purge(c,l)),d},n.purge=function(c,l){var d,A=!1;if(_T(t)){var f=(d={},d.path=l||"/",d[W1]="Thu, 01 Jan 1970 00:00:01 GMT",d);b2()||(f["max-age"]="0");var m=r.delCookie||YT;m(c,GT(et,f)),A=!0}return A},n);return s[hd]=s,s}function _T(e){if(ev===null){ev=!1;try{var t=gm||{};ev=t[TS]!==void 0}catch(n){he(e,2,68,"Cannot access document.cookie - "+ft(n),{exception:De(n)})}}return ev}function h9(e){var t={};if(e&&e[tt]){var n=vr(e)[vm](";");Me(n,function(r){if(r=vr(r||et),r){var o=r[e0]("=");o===-1?t[r]=null:t[vr(r[pg](0,o))]=vr(r[pg](o+1))}})}return t}function XT(e,t){return Xe(e[t])?e[t]():null}function GT(e,t){var n=e||et;return _t(t,function(r,o){n+="; "+r+(ge(o)?et:"="+o)}),n}function nle(e){var t=et;if(gm){var n=gm[TS]||et;VT!==n&&(qT=h9(n),VT=n),t=vr(qT[e]||et)}return t}function YT(e,t){gm&&(gm[TS]=e+"="+t)}function rle(e){return Fe(e)?!!(Yn(e,"CPU iPhone OS 12")||Yn(e,"iPad; CPU OS 12")||Yn(e,"Macintosh; Intel Mac OS X 10_14")&&Yn(e,"Version/")&&Yn(e,"Safari")||Yn(e,"Macintosh; Intel Mac OS X 10_14")&&dce(e,"AppleWebKit/605.1.15 (KHTML, like Gecko)")||Yn(e,"Chrome/5")||Yn(e,"Chrome/6")||Yn(e,"UnrealEngine")&&!Yn(e,"Chrome")||Yn(e,"UCBrowser/12")||Yn(e,"UCBrowser/11")):!1}var b9="on",KT="attachEvent",JT="addEventListener",QT="detachEvent",$T="removeEventListener",x2="events",k2="visibilitychange",sb="pagehide",y9="unload",w9="beforeunload",x9=Ra("aiEvtPageHide");Ra("aiEvtPageShow");var ole=/\.[\.]+/g,ile=/[\.]+$/,ale=1,Cg=p9("events"),sle=/^([^.]*)(?:\.(.+)|)/;function e5(e){return e&&e[js]?e[js](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g,et):e}function PS(e,t){var n;if(t){var r=et;Dt(t)?(r=et,Me(t,function(i){i=e5(i),i&&(i[0]!=="."&&(i="."+i),r+=i)})):r=e5(t),r&&(r[0]!=="."&&(r="."+r),e=(e||et)+r)}var o=sle.exec(e||et)||[];return n={},n[Aa]=o[1],n.ns=(o[2]||et).replace(ole,".").replace(ile,et)[vm](".").sort().join("."),n}function k9(e,t,n){n===void 0&&(n=!0);var r=Cg.get(e,x2,{},n),o=r[t];return o||(o=r[t]=[]),o}function S9(e,t,n,r){e&&t&&t[Aa]&&(e[$T]?e[$T](t[Aa],n,r):e[QT]&&e[QT](b9+t[Aa],n))}function cle(e,t,n,r){var o=!1;return e&&t&&t[Aa]&&n&&(e[JT]?(e[JT](t[Aa],n,r),o=!0):e[KT]&&(e[KT](b9+t[Aa],n),o=!0)),o}function t5(e,t,n,r){for(var o=t[tt];o--;){var i=t[o];i&&(!n.ns||n.ns===i.evtName.ns)&&(!r||r(i))&&(S9(e,i.evtName,i[wS],i.capture),t[vu](o,1))}}function lle(e,t,n){if(t[Aa])t5(e,k9(e,t[Aa]),t,n);else{var r=Cg.get(e,x2,{});_t(r,function(o,i){t5(e,i,t,n)}),fl(r)[tt]===0&&Cg.kill(e,x2)}}function xl(e,t){var n;return t?(Dt(t)?n=[e].concat(t):n=[e,t],n=PS("xx",n).ns[vm](".")):n=e,n}function Ts(e,t,n,r,o){var i;o===void 0&&(o=!1);var a=!1;if(e)try{var s=PS(t,r);if(a=cle(e,s,n,o),a&&Cg.accept(e)){var c=(i={guid:ale++,evtName:s},i[wS]=n,i.capture=o,i);k9(e,s.type)[St](c)}}catch{}return a}function wf(e,t,n,r,o){if(o===void 0&&(o=!1),e)try{var i=PS(t,r),a=!1;lle(e,i,function(s){return i.ns&&!n||s[wS]===n?(a=!0,!0):!1}),a||S9(e,i,n,o)}catch{}}function dle(e,t,n){var r=!1,o=Cs();o&&(r=Ts(o,e,t,n),r=Ts(o.body,e,t,n)||r);var i=$r();return i&&(r=Ts(i,e,t,n)||r),r}function ule(e,t,n){var r=Cs();r&&(wf(r,e,t,n),wf(r.body,e,t,n));var o=$r();o&&wf(o,e,t,n)}function Tg(e,t,n,r){var o=!1;return t&&e&&e[tt]>0&&Me(e,function(i){i&&(!n||ii(n,i)===-1)&&(o=dle(i,t,r)||o)}),o}function Ale(e,t,n,r){var o=!1;return t&&e&&Dt(e)&&(o=Tg(e,t,n,r),!o&&n&&n[tt]>0&&(o=Tg(e,t,null,r))),o}function S2(e,t,n){e&&Dt(e)&&Me(e,function(r){r&&ule(r,t,n)})}function fle(e,t,n){return Ale([w9,y9,sb],e,t,n)}function mle(e,t){S2([w9,y9,sb],e,t)}function j2(e,t,n){function r(a){var s=$r();e&&s&&s.visibilityState==="hidden"&&e(a)}var o=xl(x9,n),i=Tg([sb],e,t,o);return(!t||ii(t,k2)===-1)&&(i=Tg([k2],r,t,o)||i),!i&&t&&(i=j2(e,null,n)),i}function vle(e,t){var n=xl(x9,t);S2([sb],e,n),S2([k2],null,n)}function ls(){for(var e=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],t=et,n,r=0;r<4;r++)n=jg(),t+=e[n&15]+e[n>>4&15]+e[n>>8&15]+e[n>>12&15]+e[n>>16&15]+e[n>>20&15]+e[n>>24&15]+e[n>>28&15];var o=e[8+(jg()&3)|0];return t[Jl](0,8)+t[Jl](9,4)+"4"+t[Jl](13,3)+o+t[Jl](16,3)+t[Jl](19,12)}var N2="00",ple="ff",j9="00000000000000000000000000000000",N9="0000000000000000";function r0(e,t,n){return e&&e[tt]===t&&e!==n?!!e.match(/^[\da-f]*$/):!1}function n5(e,t,n){return r0(e,t)?e:n}function gle(e){(isNaN(e)||e<0||e>255)&&(e=1);for(var t=e.toString(16);t[tt]<2;)t="0"+t;return t}function r5(e,t,n,r){var o;return o={},o[ZR]=r0(r,2,ple)?r:N2,o[u2]=DS(e)?e:ls(),o.spanId=MS(t)?t:ls()[Jl](0,16),o.traceFlags=n>=0&&n<=255?n:1,o}function DS(e){return r0(e,32,j9)}function MS(e){return r0(e,16,N9)}function o5(e){if(e){var t=gle(e[A2]);r0(t,2)||(t="01");var n=e[ZR]||N2;return n!=="00"&&n!=="ff"&&(n=N2),"".concat(n,"-").concat(n5(e.traceId,32,j9),"-").concat(n5(e.spanId,16,N9),"-").concat(t)}return""}var hle=p9("plugin");function Kc(e){return hle.get(e,"state",{},!0)}function C9(e,t){for(var n=[],r=null,o=e[zi](),i;o;){var a=o[ib]();if(a){r&&Xe(r[mm])&&Xe(a[Wi])&&r[mm](a);var s=!1;Xe(a[aa])?s=a[aa]():(i=Kc(a),s=i[aa]),s||n[St](a),r=a,o=o[zi]()}}Me(n,function(c){var l=e[yn]();c[dl](e.getCfg(),l,t,e[zi]()),i=Kc(c),!c[yn]&&!i[yn]&&(i[yn]=l),i[aa]=!0,delete i[Qi]})}function H1(e){return e.sort(function(t,n){var r=0;if(n){var o=Xe(n[Wi]);Xe(t[Wi])?r=o?t[Ns]-n[Ns]:1:o&&(r=-1)}else r=t?1:-1;return r})}function ble(e){var t={};return{getName:function(){return t[Us]},setName:function(n){t[Us]=n},getTraceId:function(){return t[u2]},setTraceId:function(n){DS(n)&&(t[u2]=n)},getSpanId:function(){return t[jT]},setSpanId:function(n){MS(n)&&(t[jT]=n)},getTraceFlags:function(){return t[A2]},setTraceFlags:function(n){t[A2]=n}}}var yle="TelemetryPluginChain",i5="_hasRun",a5="_getTelCtx",s5=0;function wle(e,t,n){for(;e;){if(e[ib]()===n)return e;e=e[zi]()}return Zs([n],t[ul]||{},t)}function RS(e,t,n,r){var o=null,i=[];r!==null&&(o=r?wle(e,n,r):e);var a={_next:c,ctx:{core:function(){return n},diagLog:function(){return n0(n,t)},getCfg:function(){return t},getExtCfg:l,getConfig:d,hasNext:function(){return!!o},getNext:function(){return o},setNext:function(f){o=f},iterate:A,onComplete:s}};function s(f,m){for(var v=[],p=2;p0&&(Me(m,function(v){try{v.func[br](v.self,v.args)}catch(p){he(n[ji],2,73,"Unexpected Exception during onComplete - "+De(p))}}),i=[])}return f}function l(f,m,v){m===void 0&&(m={}),v===void 0&&(v=0);var p;if(t){var y=t[xS];y&&f&&(p=y[f])}if(!p)p=m;else if(di(m)&&v!==0){var b=jS(!0,m,p);t&&v===2&&_t(m,function(h){if(ge(b[h])){var w=t[h];ge(w)||(b[h]=w)}}),p=b}return p}function d(f,m,v){v===void 0&&(v=!1);var p,y=l(f,null);return y&&!ge(y[m])?p=y[m]:t&&!ge(t[m])&&(p=t[m]),ge(p)?v:p}function A(f){for(var m;m=a._next();){var v=m[ib]();v&&f(v)}}return a}function Hi(e,t,n,r){var o=RS(e,t,n,r),i=o.ctx;function a(c){var l=o._next();return l&&l[Wi](c,i),!l}function s(c,l){return c===void 0&&(c=null),Dt(c)&&(c=Zs(c,t,n,l)),Hi(c||i[zi](),t,n,l)}return i[ln]=a,i[gu]=s,i}function Ig(e,t,n){var r=t[ul]||{},o=RS(e,r,t,n),i=o.ctx;function a(c){var l=o._next();return l&&l.unload(i,c),!l}function s(c,l){return c===void 0&&(c=null),Dt(c)&&(c=Zs(c,r,t,l)),Ig(c||i[zi](),t,l)}return i[ln]=a,i[gu]=s,i}function zS(e,t,n){var r=t[ul]||{},o=RS(e,r,t,n),i=o.ctx;function a(c){return i.iterate(function(l){Xe(l[fm])&&l[fm](i,c)})}function s(c,l){return c===void 0&&(c=null),Dt(c)&&(c=Zs(c,r,t,l)),zS(c||i[zi](),t,l)}return i[ln]=a,i[gu]=s,i}function Zs(e,t,n,r){var o=null,i=!r;if(Dt(e)&&e[tt]>0){var a=null;Me(e,function(s){if(!i&&r===s&&(i=!0),i&&s&&Xe(s[Wi])){var c=xle(s,t,n);o||(o=c),a&&a._setNext(c),a=c}})}return r&&!o?Zs([r],t,n):o}function xle(e,t,n){var r=null,o=Xe(e[Wi]),i=Xe(e[mm]),a;e?a=e[Ss]+"-"+e[Ns]+"-"+s5++:a="Unknown-0-"+s5++;var s={getPlugin:function(){return e},getNext:function(){return r},processTelemetry:d,unload:A,update:f,_id:a,_setNext:function(m){r=m}};function c(){var m;return e&&Xe(e[a5])&&(m=e[a5]()),m||(m=Hi(s,t,n)),m}function l(m,v,p,y,b){var h=!1,w=e?e[Ss]:yle,x=m[i5];return x||(x=m[i5]={}),m.setNext(r),e&&Sg(m[yn](),function(){return w+":"+p},function(){x[a]=!0;try{var k=r?r._id:et;k&&(x[k]=!1),h=v(m)}catch(N){var S=r?x[r._id]:!0;S&&(h=!0),(!r||!S)&&he(m[Al](),1,73,"Plugin ["+w+"] failed during "+p+" - "+De(N)+", run flags: "+De(x))}},y,b),h}function d(m,v){v=v||c();function p(y){if(!e||!o)return!1;var b=Kc(e);return b[Qi]||b[f2]?!1:(i&&e[mm](r),e[Wi](m,y),!0)}l(v,p,"processTelemetry",function(){return{item:m}},!m.sync)||v[ln](m)}function A(m,v){function p(){var y=!1;if(e){var b=Kc(e),h=e[yn]||b[yn];e&&(!h||h===m.core())&&!b[Qi]&&(b[yn]=null,b[Qi]=!0,b[aa]=!1,e[Qi]&&e[Qi](m,v)===!0&&(y=!0))}return y}l(m,p,"unload",function(){},v[pu])||m[ln](v)}function f(m,v){function p(){var y=!1;if(e){var b=Kc(e),h=e[yn]||b[yn];e&&(!h||h===m.core())&&!b[Qi]&&e[fm]&&e[fm](m,v)===!0&&(y=!0)}return y}l(m,p,"update",function(){},!1)||m[ln](v)}return Fd(s)}var cb=500,kle="Channel has invalid priority - ";function c5(e,t,n){t&&Dt(t)&&t[tt]>0&&(t=t.sort(function(r,o){return r[Ns]-o[Ns]}),Me(t,function(r){r[Ns]0&&Me(l,function(p){if(p&&p.queue[tt]>0){var y=p.chain,b=d[gu](y);b[a2](v),A(b)}else m--}),v()}function o(l,d){var A=d||{reason:0};return r(e,l,function(f){f[ln](A)},function(){l[ln](A)}),!0}function i(l,d){var A=d||{reason:0,isAsync:!1};return r(e,l,function(f){f[ln](A)},function(){l[ln](A),s=!1}),!0}function a(l){var d=null;return e&&e[tt]>0&&Me(e,function(A){if(A&&A.queue[tt]>0&&(Me(A.queue,function(f){if(f[Ss]===l)return d=f,-1}),d))return-1}),d}var s=!1,c={identifier:"ChannelControllerPlugin",priority:cb,initialize:function(l,d,A,f){s=!0,Me(e,function(m){m&&m.queue[tt]>0&&C9(Hi(m.chain,l,d),A)})},isInitialized:function(){return s},processTelemetry:function(l,d){r(e,d||n(),function(A){A[ln](l)},function(){d[ln](l)})},update:o,pause:function(){r(e,n(),function(l){l.iterate(function(d){d.pause&&d.pause()})},null)},resume:function(){r(e,n(),function(l){l.iterate(function(d){d.resume&&d.resume()})},null)},teardown:i,getChannel:a,flush:function(l,d,A,f){var m=1,v=!1,p=null;f=f||5e3;function y(){m--,v&&m===0&&(p&&(clearTimeout(p),p=null),d&&d(v),d=null)}return r(e,n(),function(b){b.iterate(function(h){if(h[mg]){m++;var w=!1;h[mg](l,function(){w=!0,y()},A)||w||(l&&p==null?p=setTimeout(function(){p=null,y()},f):y())}})},function(){v=!0,y()}),!0},_setQueue:function(l){e=l}};return c}function jle(e,t,n){var r=[];if(e&&Me(e,function(i){return c5(r,i,n)}),t){var o=[];Me(t,function(i){i[Ns]>cb&&o[St](i)}),c5(r,o,n)}return r}function T9(){var e=[];function t(r){r&&e[St](r)}function n(r,o){Me(e,function(i){try{i(r,o)}catch(a){he(r[Al](),2,73,"Unexpected error calling unload handler - "+De(a))}}),e=[]}return{add:t,run:n}}var Wa="getPlugin",o0=function(){function e(){var t=this,n,r,o,i,a;l(),Lt(e,t,function(d){d[dl]=function(A,f,m,v){c(A,f,v),n=!0},d[Qi]=function(A,f){var m,v=d[yn];if(!v||A&&v!==A[yn]())return;var p,y=!1,b=A||Ig(null,v,o&&o[Wa]?o[Wa]():o),h=f||(m={reason:0},m[pu]=!1,m);function w(){if(!y){y=!0,i.run(b,f);var x=a;a=[],Me(x,function(k){k.rm()}),p===!0&&b[ln](h),l()}}return!d[s2]||d[s2](b,h,w)!==!0?w():p=!0,p},d[fm]=function(A,f){var m=d[yn];if(!m||A&&m!==A[yn]())return;var v,p=!1,y=A||zS(null,m,o&&o[Wa]?o[Wa]():o),b=f||{reason:0};function h(){p||(p=!0,c(y.getCfg(),y.core(),y[zi]()))}return!d._doUpdate||d._doUpdate(y,b,h)!==!0?h():v=!0,v},d._addHook=function(A){A&&(Dt(A)?a=a.concat(A):a[St](A))},SS(d,"_addUnloadCb",function(){return i},"add")}),t[Al]=function(d){return s(d)[Al]()},t[aa]=function(){return n},t.setInitialized=function(d){n=d},t[mm]=function(d){o=d},t[ln]=function(d,A){A?A[ln](d):o&&Xe(o[Wi])&&o[Wi](d,null)},t._getTelCtx=s;function s(d){d===void 0&&(d=null);var A=d;if(!A){var f=r||Hi(null,{},t[yn]);o&&o[Wa]?A=f[gu](null,o[Wa]):A=f[gu](null,o)}return A}function c(d,A,f){d&&pt(d,xS,[],null,ge),!f&&A&&(f=A[WR]()[zi]());var m=o;o&&o[Wa]&&(m=o[Wa]()),t[yn]=A,r=Hi(f,d,A,m)}function l(){n=!1,t[yn]=null,r=null,o=null,a=[],i=T9()}}return e.__ieDyn=1,e}(),Nle=function(e){Da(t,e);function t(){var n=e.call(this)||this;n.identifier="TelemetryInitializerPlugin",n.priority=199;var r,o;i(),Lt(t,n,function(a,s){a.addTelemetryInitializer=function(c){var l={id:r++,fn:c};o[St](l);var d={remove:function(){Me(o,function(A,f){if(A.id===l.id)return o[vu](f,1),-1})}};return d},a[Wi]=function(c,l){for(var d=!1,A=o[tt],f=0;f0){var D=r;r=[],Me(D,function(W){C()[ln](W)})}},S.pollInternalLogs=function(D){y=D||null;var W=Ti(t.diagnosticLogInterval);return(!W||!(W>0))&&(W=1e4),k&&clearInterval(k),k=setInterval(function(){H()},W),k},S[xT]=function(){k&&(clearInterval(k),k=0,H())},FA(S,function(){return p},["addTelemetryInitializer"]),S.unload=function(D,W,z){var L;D===void 0&&(D=!0),n||lr(Cle),v&&lr(d5);var q=(L={reason:50},L[pu]=D,L.flushComplete=!1,L),P=Ig(T(),S);P[a2](function(){N(),W&&W(q)},S);function U(B){q.flushComplete=B,v=!0,h.run(P,q),S[xT](),P[ln](q)}R(D,U,6,z)||U(!1)},S[ib]=j,S.addPlugin=function(D,W,z,L){if(!D){L&&L(!1),E(I9);return}var q=j(D[Ss]);if(q&&!W){L&&L(!1),E("Plugin ["+D[Ss]+"] is already loaded!");return}var P={reason:16};function U(te){l[St](D),P.added=[D],M(P),L&&L(!0)}if(q){var B=[q.plugin],K={reason:2,isAsync:!!z};F(B,K,function(te){te?(P.removed=B,P.reason|=32,U()):L&&L(!1)})}else U()},S.evtNamespace=function(){return b},S[mg]=R,S.getTraceCtx=function(D){return x||(x=ble()),x},S.setTraceCtx=function(D){x=D||null},SS(S,"addUnloadCb",function(){return h},"add");function N(){n=!1,t=jS(!0,{},Tle),S[ul]=t,S[ji]=new ab(t),S[J0]=[],p=new Nle,r=[],o=null,i=null,a=null,s=null,c=null,d=null,l=[],A=null,f=null,m=null,v=!1,y=null,b=Ra("AIBaseCore",!0),h=T9(),x=null}function C(){return Hi(T(),t,S)}function M(D){var W=Ple(S[ji],cb,l);d=W[yn],c=null;var z=W.all;if(m=Fd(jle(f,z,S)),A){var L=ii(z,A);L!==-1&&z[vu](L,1),L=ii(d,A),L!==-1&&d[vu](L,1),A._setQueue(m)}else A=Sle(m,S);z[St](A),d[St](A),S[J0]=H1(z),A[dl](t,S,z),C9(C(),z),S[J0]=Fd(H1(d||[])).slice(),D&&I(D)}function j(D){var W,z=null,L=null;return Me(S[J0],function(q){if(q[Ss]===D&&q!==A&&q!==p)return L=q,-1}),!L&&A&&(L=A.getChannel(D)),L&&(z=(W={plugin:L},W[UR]=function(q){Kc(L)[f2]=!q},W.isEnabled=function(){var q=Kc(L);return!q[Qi]&&!q[f2]},W.remove=function(q,P){var U;q===void 0&&(q=!0);var B=[L],K=(U={reason:1},U[pu]=q,U);F(B,K,function(te){te&&M({reason:32,removed:B}),P&&P(te)})},W)),z}function T(){if(!c){var D=(d||[]).slice();ii(D,p)===-1&&D[St](p),c=Zs(H1(D),t,S)}return c}function F(D,W,z){if(D&&D[tt]>0){var L=Zs(D,t,S),q=Ig(L,S);q[a2](function(){var P=!1,U=[];Me(l,function(K,te){u5(K,D)?P=!0:U[St](K)}),l=U;var B=[];f&&(Me(f,function(K,te){var Ae=[];Me(K,function(ae){u5(ae,D)?P=!0:Ae[St](ae)}),B[St](Ae)}),f=B),z&&z(P)}),q[ln](W)}else z(!1)}function H(){var D=S[ji]?S[ji].queue:[];D&&(Me(D,function(W){var z,L=(z={},z[Us]=y||"InternalMessageId: "+W[vg],z.iKey=Ti(t[D1]),z.time=bu(new Date),z.baseType=pm.dataType,z.baseData={message:W[Ed]},z);S.track(L)}),D[tt]=0)}function R(D,W,z,L){return A?A[mg](D,W,z||6,L):(W&&W(!1),!0)}function O(){var D=Ti(t.disableDbgExt);D===!0&&w&&(o[hf](w),w=null),o&&!w&&D!==!0&&(w=Oce(t),o[gf](w))}function _(){var D=Ti(t.enablePerfMgr);!D&&a&&(a=null),D&&Nn(t,CT,Ile)}function Y(){var D=Nn(t,xS,{});D.NotificationManager=o}function I(D){var W=zS(T(),S);(!S._updateHook||S._updateHook(W,D)!==!0)&&W[ln](D)}function E(D){var W=S[ji];W?he(W,2,73,D):lr(D)}})}return e.__ieDyn=1,e}();function nv(e,t,n,r){Me(e,function(o){if(o&&o[t])if(n)setTimeout(function(){return r(o)},0);else try{r(o)}catch{}})}var Rle=function(){function e(t){this.listeners=[];var n=!!(t||{}).perfEvtsSendAll;Lt(e,this,function(r){r[gf]=function(o){r.listeners[St](o)},r[hf]=function(o){for(var i=ii(r[Fl],o);i>-1;)r.listeners[vu](i,1),i=ii(r[Fl],o)},r[Xv]=function(o){nv(r[Fl],Xv,!0,function(i){i[Xv](o)})},r[bf]=function(o,i){nv(r[Fl],bf,!0,function(a){a[bf](o,i)})},r[Gv]=function(o,i){nv(r[Fl],Gv,i,function(a){a[Gv](o,i)})},r[gd]=function(o){o&&(n||!o[l2]())&&nv(r[Fl],gd,!1,function(i){o[pu]?setTimeout(function(){return i[gd](o)},0):i[gd](o)})}})}return e.__ieDyn=1,e}(),zle=function(e){Da(t,e);function t(){var n=e.call(this)||this;return Lt(t,n,function(r,o){r[dl]=function(s,c,l,d){o[dl](s,c,l||new ab(s),d||new Rle(s))},r.track=function(s){Sg(r[hg](),function(){return"AppInsightsCore:track"},function(){s===null&&(a(s),lr("Invalid telemetry item")),i(s),o.track(s)},function(){return{item:s}},!s.sync)};function i(s){ge(s[Us])&&(a(s),lr("telemetry name required"))}function a(s){var c=r[i2]();c&&c[bf]([s],2)}}),n}return t.__ieDyn=1,t}(Mle),A5="_aiHooks",f5=["req","rsp","hkErr","fnErr"];function ES(e,t){if(e)for(var n=0;n=0&&o<=2&&ES(e,function(i,a){var s=i.cbks,c=s[f5[o]];if(c){t.ctx=function(){var A=r[a]=r[a]||{};return A};try{c[hu](t.inst,n)}catch(A){var l=t.err;try{var d=s[f5[2]];d&&(t.err=A,d[hu](t.inst,n))}catch{}finally{t.err=l}}}})}function Ele(e){return function(){var t,n=this,r=arguments,o=e.h,i=(t={},t[Us]=e.n,t.inst=n,t.ctx=null,t.set=l,t),a=[],s=c([i],r);i.evt=xn("event");function c(A,f){return ES(f,function(m){A[St](m)}),A}function l(A,f){r=c([],r),r[A]=f,s=c([i],r)}Z1(o,i,s,a,0);var d=e.f;if(d)try{i.rslt=d[hu](n,r)}catch(A){throw i.err=A,Z1(o,i,s,a,3),A}return Z1(o,i,s,a,1),i.rslt}}function BS(e,t,n){var r=null;return e&&(JR(e,t)?r=e:n&&(r=BS(KR(e),t,!1))),r}function Ble(e,t,n){return e?C2(e[hr],t,n,!1):null}function P9(e,t,n,r){var o=n&&n[A5];if(!o){o={i:0,n:t,f:n,h:[]};var i=Ele(o);i[A5]=o,e[t]=i}var a={id:o.i,cbks:r,rm:function(){var s=this.id;ES(o.h,function(c,l){if(c.id===s)return o.h[vu](l,1),1})}};return o.i++,o.h[St](a),a}function C2(e,t,n,r){if(r===void 0&&(r=!0),e&&t&&n){var o=BS(e,t,r);if(o){var i=o[t];if(typeof i===Uu)return P9(o,t,i,n)}}return null}function rv(e,t,n,r){if(e&&t&&n){var o=BS(e,t,r)||e;if(o)return P9(o,t,o[t],n)}return null}var Oc="Microsoft_ApplicationInsights_BypassAjaxInstrumentation",D9="sampleRate",V1="ProcessLegacy",m5="http.method",FS="https://dc.services.visualstudio.com",xf="/v2/track",Zi="not_specified",q1="iKey";function uA(e){var t=null;if(Xe(Event))t=new Event(e);else{var n=$r();n&&n.createEvent&&(t=n.createEvent("Event"),t.initEvent(e,!0,!0))}return t}var yu="split",Ze="length",wu="toLowerCase",ov="ingestionendpoint",Vs="toString",OS="removeItem",Ai="name",Lc="message",Fle="count",T2="stringify",_1="pathname",v5="correlationHeaderExcludePatterns",Pg="indexOf",Ll="exceptions",_i="parsedStack",fa="properties",ma="measurements",Ld="sizeInBytes",Yi="typeName",WA="severityLevel",X1="problemGroup",G1="isManual",M9="CreateFromInterface",$v="hasFullStack",iv="level",Wl="method",av="assembly",AA="fileName",fA="line",Dg="duration",p5="receivedResponse",Vu="substring",Ole="sanitizeKeyAndAddUniqueness",Lle="sanitizeException",Wle="sanitizeProperties",Ule="sanitizeMeasurements",mA="";function yi(e,t){return t===void 0&&(t=!1),e==null?t:e.toString()[wu]()==="true"}function ts(e){(isNaN(e)||e<0)&&(e=0),e=Math.round(e);var t=mA+e%1e3,n=mA+Math.floor(e/1e3)%60,r=mA+Math.floor(e/(1e3*60))%60,o=mA+Math.floor(e/(1e3*60*60))%24,i=Math.floor(e/(1e3*60*60*24));return t=t[Ze]===1?"00"+t:t[Ze]===2?"0"+t:t,n=n[Ze]<2?"0"+n:n,r=r[Ze]<2?"0"+r:r,o=o[Ze]<2?"0"+o:o,(i>0?i+".":mA)+o+":"+r+":"+n+"."+t}function Hle(e,t,n,r,o){return!o&&Fe(e)&&(e==="Script error."||e==="Script error")}var Wt=bce({requestContextHeader:[0,"Request-Context"],requestContextTargetKey:[1,"appId"],requestContextAppIdFormat:[2,"appId=cid-v1:"],requestIdHeader:[3,"Request-Id"],traceParentHeader:[4,"traceparent"],traceStateHeader:[5,"tracestate"],sdkContextHeader:[6,"Sdk-Context"],sdkContextHeaderAppIdRequest:[7,"appId"],requestContextHeaderLowerCase:[8,"request-context"]}),i0=n9({LocalStorage:0,SessionStorage:1});n9({AI:0,AI_AND_W3C:1,W3C:2});var Is=void 0,Ps=void 0;function LS(){return US()?lb(i0.LocalStorage):null}function lb(e){try{if(ge(Hu()))return null;var t=new Date()[Vs](),n=xn(e===i0.LocalStorage?"localStorage":"sessionStorage");n.setItem(t,t);var r=n.getItem(t)!==t;if(n[OS](t),!r)return n}catch{}return null}function WS(){return hm()?lb(i0.SessionStorage):null}function Zle(){Is=!1,Ps=!1}function Vle(){Is=US(!0),Ps=hm(!0)}function US(e){return(e||Is===void 0)&&(Is=!!lb(i0.LocalStorage)),Is}function qle(e,t){var n=LS();if(n!==null)try{return n.getItem(t)}catch(r){Is=!1,he(e,2,1,"Browser failed read of local storage. "+ft(r),{exception:De(r)})}return null}function _le(e,t,n){var r=LS();if(r!==null)try{return r.setItem(t,n),!0}catch(o){Is=!1,he(e,2,3,"Browser failed write to local storage. "+ft(o),{exception:De(o)})}return!1}function Xle(e,t){var n=LS();if(n!==null)try{return n[OS](t),!0}catch(r){Is=!1,he(e,2,5,"Browser failed removal of local storage item. "+ft(r),{exception:De(r)})}return!1}function hm(e){return(e||Ps===void 0)&&(Ps=!!lb(i0.SessionStorage)),Ps}function I2(e,t){var n=WS();if(n!==null)try{return n.getItem(t)}catch(r){Ps=!1,he(e,2,2,"Browser failed read of session storage. "+ft(r),{exception:De(r)})}return null}function P2(e,t,n){var r=WS();if(r!==null)try{return r.setItem(t,n),!0}catch(o){Ps=!1,he(e,2,4,"Browser failed write to session storage. "+ft(o),{exception:De(o)})}return!1}function Gle(e,t){var n=WS();if(n!==null)try{return n[OS](t),!0}catch(r){Ps=!1,he(e,2,6,"Browser failed removal of session storage item. "+ft(r),{exception:De(r)})}return!1}var jr;function HS(e,t,n){var r=t[Ze],o=R9(e,t);if(o[Ze]!==r){for(var i=0,a=o;n[a]!==void 0;)i++,a=o[Vu](0,147)+B9(i);o=a}return o}function R9(e,t){var n;return t&&(t=vr(t[Vs]()),t[Ze]>150&&(n=t[Vu](0,150),he(e,2,57,"name is too long. It has been truncated to 150 characters.",{name:t},!0))),n||t}function Zn(e,t,n){n===void 0&&(n=1024);var r;return t&&(n=n||1024,t=vr(t),t.toString()[Ze]>n&&(r=t[Vs]()[Vu](0,n),he(e,2,61,"string value is too long. It has been truncated to "+n+" characters.",{value:t},!0))),r||t}function a0(e,t){return VS(e,t,2048,66)}function ZS(e,t){var n;return t&&t[Ze]>32768&&(n=t[Vu](0,32768),he(e,2,56,"message is too long, it has been truncated to 32768 characters.",{message:t},!0)),n||t}function z9(e,t){var n;if(t){var r=""+t;r[Ze]>32768&&(n=r[Vu](0,32768),he(e,2,52,"exception is too long, it has been truncated to 32768 characters.",{exception:t},!0))}return n||t}function rc(e,t){if(t){var n={};_t(t,function(r,o){if(di(o)&&Zu())try{o=ui()[T2](o)}catch(i){he(e,2,49,"custom property is not valid",{exception:i},!0)}o=Zn(e,o,8192),r=HS(e,r,n),n[r]=o}),t=n}return t}function oc(e,t){if(t){var n={};_t(t,function(r,o){r=HS(e,r,n),n[r]=o}),t=n}return t}function E9(e,t){return t&&VS(e,t,128,69)[Vs]()}function VS(e,t,n,r){var o;return t&&(t=vr(t),t[Ze]>n&&(o=t[Vu](0,n),he(e,2,r,"input is too long, it has been truncated to "+n+" characters.",{data:t},!0))),o||t}function B9(e){var t="00"+e;return t.substr(t[Ze]-3)}jr={MAX_NAME_LENGTH:150,MAX_ID_LENGTH:128,MAX_PROPERTY_LENGTH:8192,MAX_STRING_LENGTH:1024,MAX_URL_LENGTH:2048,MAX_MESSAGE_LENGTH:32768,MAX_EXCEPTION_LENGTH:32768},jr[Ole]=HS,jr.sanitizeKey=R9,jr.sanitizeString=Zn,jr.sanitizeUrl=a0,jr.sanitizeMessage=ZS,jr[Lle]=z9,jr[Wle]=rc,jr[Ule]=oc,jr.sanitizeId=E9,jr.sanitizeInput=VS,jr.padNumber=B9,jr.trim=vr;var g5=$r()||{},h5=0,Yle=[null,null,null,null,null];function qS(e){var t=h5,n=Yle,r=n[t];return g5.createElement?n[t]||(r=n[t]=g5.createElement("a")):r={host:Qle(e,!0)},r.href=e,t++,t>=n[Ze]&&(t=0),h5=t,r}function Kle(e){var t,n=qS(e);return n&&(t=n.href),t}function Jle(e,t){return e?e.toUpperCase()+" "+t:t}function Qle(e,t){var n=F9(e,t)||"";if(n){var r=n.match(/(www\d{0,5}\.)?([^\/:]{1,256})(:\d{1,20})?/i);if(r!=null&&r[Ze]>3&&Fe(r[2])&&r[2][Ze]>0)return r[2]+(r[3]||"")}return n}function F9(e,t){var n=null;if(e){var r=e.match(/(\w{1,150}):\/\/([^\/:]{1,256})(:\d{1,20})?/i);if(r!=null&&r[Ze]>2&&Fe(r[2])&&r[2][Ze]>0&&(n=r[2]||"",t&&r[Ze]>2)){var o=(r[1]||"")[wu](),i=r[3]||"";(o==="http"&&i===":80"||o==="https"&&i===":443")&&(i=""),n+=i}}return n}var $le=[FS+xf,"https://breeze.aimon.applicationinsights.io"+xf,"https://dc-int.services.visualstudio.com"+xf];function ep(e){return ii($le,e[wu]())!==-1}var bd={correlationIdPrefix:"cid-v1:",canIncludeCorrelationHeader:function(e,t,n){if(!t||e&&e.disableCorrelationHeaders)return!1;if(e&&e[v5]){for(var r=0;r0},getCorrelationContext:function(e){if(e){var t=bd.getCorrelationContextValue(e,Wt[1]);if(t&&t!==bd.correlationIdPrefix)return t}},getCorrelationContextValue:function(e,t){if(e)for(var n=e[yu](","),r=0;r0){var s=qS(t);if(o=s.host,!i)if(s[_1]!=null){var c=s.pathname[Ze]===0?"/":s[_1];c.charAt(0)!=="/"&&(c="/"+c),a=s[_1],i=Zn(e,n?n+" "+c:c)}else i=Zn(e,t)}else o=r,i=r;return{target:o,name:i,data:a}}function sv(){var e=Hs();if(e&&e.now&&e.timing){var t=e.now()+e.timing.navigationStart;if(t>0)return t}return Ui()}function Ir(e,t){var n=null;return e!==0&&t!==0&&!ge(e)&&!ge(t)&&(n=t-e),n}function _S(e,t){var n=e||{};return{getName:function(){return n[Ai]},setName:function(r){t&&t.setName(r),n[Ai]=r},getTraceId:function(){return n.traceID},setTraceId:function(r){t&&t.setTraceId(r),DS(r)&&(n.traceID=r)},getSpanId:function(){return n.parentID},setSpanId:function(r){t&&t.setSpanId(r),MS(r)&&(n.parentID=r)},getTraceFlags:function(){return n.traceFlags},setTraceFlags:function(r){t&&t.setTraceFlags(r),n.traceFlags=r}}}var tde=";",nde="=";function rde(e){if(!e)return{};var t=e[yu](tde),n=vce(t,function(o,i){var a=i[yu](nde);if(a[Ze]===2){var s=a[0][wu](),c=a[1];o[s]=c}return o},{});if(fl(n)[Ze]>0){if(n.endpointsuffix){var r=n.location?n.location+".":"";n[ov]=n[ov]||"https://"+r+"dc."+n.endpointsuffix}n[ov]=n[ov]||FS}return n}var ode=function(){function e(t,n,r){var o=this,i=this;i.ver=1,i.sampleRate=100,i.tags={},i[Ai]=Zn(t,r)||Zi,i.data=n,i.time=bu(new Date),i.aiDataContract={time:1,iKey:1,name:1,sampleRate:function(){return o.sampleRate===100?4:1},tags:1,data:1}}return e}(),ns=function(){function e(t,n,r,o){this.aiDataContract={ver:1,name:1,properties:0,measurements:0};var i=this;i.ver=2,i[Ai]=Zn(t,n)||Zi,i[fa]=rc(t,r),i[ma]=oc(t,o)}return e.envelopeType="Microsoft.ApplicationInsights.{0}.Event",e.dataType="EventData",e}(),ide="",Wd="error",Pr="stack",D2="stackDetails",b5="errorSrc",M2="message",O9="description";function R2(e,t){var n=e;return n&&!Fe(n)&&(JSON&&JSON[T2]?(n=JSON[T2](e),t&&(!n||n==="{}")&&(Xe(e[Vs])?n=e[Vs]():n=""+e)):n=""+e+" - (Missing JSON.stringify)"),n||""}function L9(e,t){var n=e;return e&&(n&&!Fe(n)&&(n=e[M2]||e[O9]||n),n&&!Fe(n)&&(n=R2(n,!0)),e.filename&&(n=n+" @"+(e.filename||"")+":"+(e.lineno||"?")+":"+(e.colno||"?"))),t&&t!=="String"&&t!=="Object"&&t!=="Error"&&(n||"")[Pg](t)===-1&&(n=t+": "+n),n||""}function ade(e){try{if(di(e))return"hasFullStack"in e&&"typeName"in e}catch{}return!1}function sde(e){try{if(di(e))return"ver"in e&&"exceptions"in e&&"properties"in e}catch{}return!1}function y5(e){return e&&e.src&&Fe(e.src)&&e.obj&&Dt(e.obj)}function cc(e){var t=e||"";Fe(t)||(Fe(t[Pr])?t=t[Pr]:t=""+t);var n=t[yu](` `);return{src:t,obj:n}}function cde(e){for(var t=[],n=e[yu](` `),r=0;r0){t=[];var r=0,o=0;Me(n,function(v){var p=v[Vs]();if(z2.regex.test(p)){var y=new z2(p,r++);o+=y[Ld],t.push(y)}});var i=32*1024;if(o>i)for(var a=0,s=t[Ze]-1,c=0,l=a,d=s;ai){var m=d-l+1;t.splice(l,m);break}l=a,d=s,a++,s--}}return t}function Mg(e){var t="";if(e&&(t=e.typeName||e[Ai]||"",!t))try{var n=/function (.{1,200})\(/,r=n.exec(e.constructor[Vs]());t=r&&r[Ze]>1?r[1]:""}catch{}return t}function Y1(e){if(e)try{if(!Fe(e)){var t=Mg(e),n=R2(e,!1);return(!n||n==="{}")&&(e[Wd]&&(e=e[Wd],t=Mg(e)),n=R2(e,!0)),n[Pg](t)!==0&&t!=="String"?t+":"+n:n}}catch{}return""+(e||"")}var bo=function(){function e(t,n,r,o,i,a){this.aiDataContract={ver:1,exceptions:1,severityLevel:0,properties:0,measurements:0};var s=this;s.ver=2,sde(n)?(s[Ll]=n[Ll]||[],s[fa]=n[fa],s[ma]=n[ma],n[WA]&&(s[WA]=n[WA]),n.id&&(s.id=n.id),n[X1]&&(s[X1]=n[X1]),ge(n[G1])||(s[G1]=n[G1])):(r||(r={}),s[Ll]=[new w5(t,n,r)],s[fa]=rc(t,r),s[ma]=oc(t,o),i&&(s[WA]=i),a&&(s.id=a))}return e.CreateAutoException=function(t,n,r,o,i,a,s,c){var l,d=Mg(i||a||t);return l={},l[Lc]=L9(t,d),l.url=n,l.lineNumber=r,l.columnNumber=o,l.error=Y1(i||a||t),l.evt=Y1(a||t),l[Yi]=d,l.stackDetails=W9(s||i||a),l.errorSrc=c,l},e.CreateFromInterface=function(t,n,r,o){var i=n[Ll]&&wg(n[Ll],function(s){return w5[M9](t,s)}),a=new e(t,mr(mr({},n),{exceptions:i}),r,o);return a},e.prototype.toInterface=function(){var t,n=this,r=n.exceptions,o=n.properties,i=n.measurements,a=n.severityLevel,s=n.problemGroup,c=n.id,l=n.isManual,d=r instanceof Array&&wg(r,function(A){return A.toInterface()})||void 0;return t={ver:"4.0"},t[Ll]=d,t.severityLevel=a,t.properties=o,t.measurements=i,t.problemGroup=s,t.id=c,t.isManual=l,t},e.CreateSimpleException=function(t,n,r,o,i,a){var s;return{exceptions:[(s={},s[$v]=!0,s.message=t,s.stack=i,s.typeName=n,s)]}},e.envelopeType="Microsoft.ApplicationInsights.{0}.Exception",e.dataType="ExceptionData",e.formatError=Y1,e}(),w5=function(){function e(t,n,r){this.aiDataContract={id:0,outerId:0,typeName:1,message:1,hasFullStack:0,stack:0,parsedStack:2};var o=this;if(ade(n))o[Yi]=n[Yi],o[Lc]=n[Lc],o[Pr]=n[Pr],o[_i]=n[_i]||[],o[$v]=n[$v];else{var i=n,a=i&&i.evt;QR(i)||(i=i[Wd]||a||i),o[Yi]=Zn(t,Mg(i))||Zi,o[Lc]=ZS(t,L9(n||i,o[Yi]))||Zi;var s=n[D2]||W9(n);o[_i]=dde(s),o[Pr]=z9(t,lde(s)),o.hasFullStack=Dt(o.parsedStack)&&o.parsedStack[Ze]>0,r&&(r[Yi]=r[Yi]||o[Yi])}}return e.prototype.toInterface=function(){var t,n=this,r=n[_i]instanceof Array&&wg(n[_i],function(i){return i.toInterface()}),o=(t={id:n.id,outerId:n.outerId,typeName:n[Yi],message:n[Lc],hasFullStack:n[$v],stack:n[Pr]},t[_i]=r||void 0,t);return o},e.CreateFromInterface=function(t,n){var r=n[_i]instanceof Array&&wg(n[_i],function(i){return z2[M9](i)})||n[_i],o=new e(t,mr(mr({},n),{parsedStack:r}));return o},e}(),z2=function(){function e(t,n){this.aiDataContract={level:1,method:1,assembly:0,fileName:0,line:0};var r=this;if(r[Ld]=0,typeof t=="string"){var o=t;r[iv]=n,r[Wl]=ide,r[av]=vr(o),r[AA]="",r[fA]=0;var i=o.match(e.regex);i&&i[Ze]>=5&&(r[Wl]=vr(i[2])||r[Wl],r[AA]=vr(i[4]),r[fA]=parseInt(i[5])||0)}else r[iv]=t[iv],r[Wl]=t[Wl],r[av]=t[av],r[AA]=t[AA],r[fA]=t[fA],r[Ld]=0;r.sizeInBytes+=r.method[Ze],r.sizeInBytes+=r.fileName[Ze],r.sizeInBytes+=r.assembly[Ze],r[Ld]+=e.baseSize,r.sizeInBytes+=r.level.toString()[Ze],r.sizeInBytes+=r.line.toString()[Ze]}return e.CreateFromInterface=function(t){return new e(t,null)},e.prototype.toInterface=function(){var t=this;return{level:t[iv],method:t[Wl],assembly:t[av],fileName:t[AA],line:t[fA]}},e.regex=/^([\s]+at)?[\s]{0,50}([^\@\()]+?)[\s]{0,50}(\@|\()([^\(\n]+):([0-9]+):([0-9]+)(\)?)$/,e.baseSize=58,e}(),ude=function(){function e(){this.aiDataContract={name:1,kind:0,value:1,count:0,min:0,max:0,stdDev:0},this.kind=0}return e}(),Jc=function(){function e(t,n,r,o,i,a,s,c,l){this.aiDataContract={ver:1,metrics:1,properties:0};var d=this;d.ver=2;var A=new ude;A[Fle]=o>0?o:void 0,A.max=isNaN(a)||a===null?void 0:a,A.min=isNaN(i)||i===null?void 0:i,A[Ai]=Zn(t,n)||Zi,A.value=r,A.stdDev=isNaN(s)||s===null?void 0:s,d.metrics=[A],d[fa]=rc(t,c),d[ma]=oc(t,l)}return e.envelopeType="Microsoft.ApplicationInsights.{0}.Metric",e.dataType="MetricData",e}(),Ds=function(){function e(t,n,r,o,i,a,s){this.aiDataContract={ver:1,name:0,url:0,duration:0,properties:0,measurements:0,id:0};var c=this;c.ver=2,c.id=E9(t,s),c.url=a0(t,r),c[Ai]=Zn(t,n)||Zi,isNaN(o)||(c[Dg]=ts(o)),c[fa]=rc(t,i),c[ma]=oc(t,a)}return e.envelopeType="Microsoft.ApplicationInsights.{0}.Pageview",e.dataType="PageviewData",e}(),Qc=function(){function e(t,n,r,o,i,a,s,c,l,d,A,f){l===void 0&&(l="Ajax"),this.aiDataContract={id:1,ver:1,name:0,resultCode:0,duration:0,success:0,data:0,target:0,type:0,properties:0,measurements:0,kind:0,value:0,count:0,min:0,max:0,stdDev:0,dependencyKind:0,dependencySource:0,commandName:0,dependencyTypeName:0};var m=this;m.ver=2,m.id=n,m[Dg]=ts(i),m.success=a,m.resultCode=s+"",m.type=Zn(t,l);var v=ede(t,r,c,o);m.data=a0(t,o)||v.data,m.target=Zn(t,v.target),d&&(m.target="".concat(m.target," | ").concat(d)),m[Ai]=Zn(t,v[Ai]),m[fa]=rc(t,A),m[ma]=oc(t,f)}return e.envelopeType="Microsoft.ApplicationInsights.{0}.RemoteDependency",e.dataType="RemoteDependencyData",e}(),Ud=function(){function e(t,n,r,o,i){this.aiDataContract={ver:1,message:1,severityLevel:0,properties:0};var a=this;a.ver=2,n=n||Zi,a[Lc]=ZS(t,n),a[fa]=rc(t,o),a[ma]=oc(t,i),r&&(a[WA]=r)}return e.envelopeType="Microsoft.ApplicationInsights.{0}.Message",e.dataType="MessageData",e}(),Hd=function(){function e(t,n,r,o,i,a,s){this.aiDataContract={ver:1,name:0,url:0,duration:0,perfTotal:0,networkConnect:0,sentRequest:0,receivedResponse:0,domProcessing:0,properties:0,measurements:0};var c=this;c.ver=2,c.url=a0(t,r),c[Ai]=Zn(t,n)||Zi,c[fa]=rc(t,i),c[ma]=oc(t,a),s&&(c.domProcessing=s.domProcessing,c[Dg]=s[Dg],c.networkConnect=s.networkConnect,c.perfTotal=s.perfTotal,c[p5]=s[p5],c.sentRequest=s.sentRequest)}return e.envelopeType="Microsoft.ApplicationInsights.{0}.PageviewPerformance",e.dataType="PageviewPerformanceData",e}(),kl=function(){function e(t,n){this.aiDataContract={baseType:1,baseData:1},this.baseType=t,this.baseData=n}return e}();function ic(e){var t="ai."+e+".";return function(n){return t+n}}var vA=ic("application"),hn=ic("device"),cv=ic("location"),Ul=ic("operation"),K1=ic("session"),Ua=ic("user"),lc=ic("cloud"),pA=ic("internal"),U9=function(e){Da(t,e);function t(){return e.call(this)||this}return t}(hce({applicationVersion:vA("ver"),applicationBuild:vA("build"),applicationTypeId:vA("typeId"),applicationId:vA("applicationId"),applicationLayer:vA("layer"),deviceId:hn("id"),deviceIp:hn("ip"),deviceLanguage:hn("language"),deviceLocale:hn("locale"),deviceModel:hn("model"),deviceFriendlyName:hn("friendlyName"),deviceNetwork:hn("network"),deviceNetworkName:hn("networkName"),deviceOEMName:hn("oemName"),deviceOS:hn("os"),deviceOSVersion:hn("osVersion"),deviceRoleInstance:hn("roleInstance"),deviceRoleName:hn("roleName"),deviceScreenResolution:hn("screenResolution"),deviceType:hn("type"),deviceMachineName:hn("machineName"),deviceVMName:hn("vmName"),deviceBrowser:hn("browser"),deviceBrowserVersion:hn("browserVersion"),locationIp:cv("ip"),locationCountry:cv("country"),locationProvince:cv("province"),locationCity:cv("city"),operationId:Ul("id"),operationName:Ul("name"),operationParentId:Ul("parentId"),operationRootId:Ul("rootId"),operationSyntheticSource:Ul("syntheticSource"),operationCorrelationVector:Ul("correlationVector"),sessionId:K1("id"),sessionIsFirst:K1("isFirst"),sessionIsNew:K1("isNew"),userAccountAcquisitionDate:Ua("accountAcquisitionDate"),userAccountId:Ua("accountId"),userAgent:Ua("userAgent"),userId:Ua("id"),userStoreRegion:Ua("storeRegion"),userAuthUserId:Ua("authUserId"),userAnonymousUserAcquisitionDate:Ua("anonUserAcquisitionDate"),userAuthenticatedUserAcquisitionDate:Ua("authUserAcquisitionDate"),cloudName:lc("name"),cloudRole:lc("role"),cloudRoleVer:lc("roleVer"),cloudRoleInstance:lc("roleInstance"),cloudEnvironment:lc("environment"),cloudLocation:lc("location"),cloudDeploymentUnit:lc("deploymentUnit"),internalNodeName:pA("nodeName"),internalSdkVersion:pA("sdkVersion"),internalAgentVersion:pA("agentVersion"),internalSnippet:pA("snippet"),internalSdkSrc:pA("sdkSrc")}));function qa(e,t,n,r,o,i){var a;n=Zn(r,n)||Zi,(ge(e)||ge(t)||ge(n))&&lr("Input doesn't contain all required fields");var s="";e[q1]&&(s=e[q1],delete e[q1]);var c=(a={},a[Ai]=n,a.time=bu(new Date),a.iKey=s,a.ext=i||{},a.tags=[],a.data={},a.baseType=t,a.baseData=e,a);return ge(o)||_t(o,function(l,d){c.data[l]=d}),c}var Vr={UserExt:"user",DeviceExt:"device",TraceExt:"trace",WebExt:"web",AppExt:"app",OSExt:"os",SessionExt:"ses",SDKExt:"sdk"},Et=new U9,db="AppInsightsPropertiesPlugin",H9="AppInsightsChannelPlugin",Ade="ApplicationInsightsAnalytics",Rg="toString",E2="disableExceptionTracking",zg="autoTrackPageVisitTime",B2="overridePageViewDuration",F2="enableUnhandledPromiseRejectionTracking",lv="samplingPercentage",Eg="isStorageUseDisabled",Bg="isBrowserLinkTrackingEnabled",O2="enableAutoRouteTracking",L2="namePrefix",J1="disableFlushOnBeforeUnload",Bn="core",Ha="dataType",dc="envelopeType",Ur="diagLog",uc="track",tp="trackPageView",W2="trackPreviousPageVisit",Ic="sendPageViewInternal",U2="sendPageViewPerformanceInternal",XS="populatePageViewPerformanceEvent",Ql="href",x5="sendExceptionInternal",Q1="exception",gA="error",$1="_onerror",ey="errorSrc",ty="lineNumber",ny="columnNumber",k5="message",ry="CreateAutoException",dv="addTelemetryInitializer",Ya="duration",bm="length",Z9="isPerformanceTimingSupported",V9="getPerformanceTiming",Fg="navigationStart",H2="shouldCollectDuration",q9="isPerformanceTimingDataReady",fde="getEntriesByType",UA="responseStart",mde="requestStart",np="loadEventEnd",Z2="responseEnd",rp="connectEnd",_9="pageVisitStartTime",vde=function(){function e(t,n,r,o){Lt(e,this,function(i){var a=null,s=[],c=!1,l;r&&(l=r.logger);function d(f){r&&r.flush(f)}function A(f){s.push(f),a||(a=setInterval(function(){var m=s.slice(0),v=!1;s=[],Me(m,function(p){p()?v=!0:s.push(p)}),s[bm]===0&&(clearInterval(a),a=null),v&&d(!0)},100))}i[tp]=function(f,m){var v=f.name;if(ge(v)||typeof v!="string"){var p=$r();v=f.name=p&&p.title||""}var y=f.uri;if(ge(y)||typeof y!="string"){var b=cs();y=f.uri=b&&b[Ql]||""}if(!o[Z9]()){t[Ic](f,m),d(!0),he(l,2,25,"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.");return}var h=!1,w,x=o[V9]()[Fg];x>0&&(w=Ir(x,+new Date),o[H2](w)||(w=void 0));var k;!ge(m)&&!ge(m[Ya])&&(k=m[Ya]),(n||!isNaN(k))&&(isNaN(k)&&(m||(m={}),m[Ya]=w),t[Ic](f,m),d(!0),h=!0);var S=6e4;m||(m={}),A(function(){var N=!1;try{if(o[q9]()){N=!0;var C={name:v,uri:y};o[XS](C),!C.isValid&&!h?(m[Ya]=w,t[Ic](f,m)):(h||(m[Ya]=C.durationMs,t[Ic](f,m)),c||(t[U2](C,m),c=!0))}else x>0&&Ir(x,+new Date)>S&&(N=!0,h||(m[Ya]=S,t[Ic](f,m)))}catch(M){he(l,1,38,"trackPageView failed on page load calculation: "+ft(M),{exception:De(M)})}return N})},i.teardown=function(f,m){if(a){clearInterval(a),a=null;var v=s.slice(0);s=[],Me(v,function(p){p()})}}})}return e.__ieDyn=1,e}(),pde=36e5,S5=["googlebot","adsbot-google","apis-google","mediapartners-google"];function X9(){var e=Hs();return e&&!!e.timing}function gde(){var e=Hs();return e&&e.getEntriesByType&&e.getEntriesByType("navigation")[bm]>0}function hde(){var e=Hs(),t=e?e.timing:0;return t&&t.domainLookupStart>0&&t[Fg]>0&&t[UA]>0&&t[mde]>0&&t[np]>0&&t[Z2]>0&&t[rp]>0&&t.domLoading>0}function j5(){return X9()?Hs().timing:null}function bde(){return gde()?Hs()[fde]("navigation")[0]:null}function yde(){for(var e=[],t=0;t=pde)return!1;return!0}var wde=function(){function e(t){var n=this,r=n0(t);Lt(e,this,function(o){o[XS]=function(i){i.isValid=!1;var a=bde(),s=j5(),c=0,l=0,d=0,A=0,f=0;(a||s)&&(a?(c=a[Ya],l=a.startTime===0?a[rp]:Ir(a.startTime,a[rp]),d=Ir(a.requestStart,a[UA]),A=Ir(a[UA],a[Z2]),f=Ir(a.responseEnd,a[np])):(c=Ir(s[Fg],s[np]),l=Ir(s[Fg],s[rp]),d=Ir(s.requestStart,s[UA]),A=Ir(s[UA],s[Z2]),f=Ir(s.responseEnd,s[np])),c===0?he(r,2,10,"error calculating page view performance.",{total:c,network:l,request:d,response:A,dom:f}):n[H2](c,l,d,A,f)?c=100)&&(e[lv]=100),e[Eg]=yi(e[Eg]),e[Bg]=yi(e[Bg]),e[O2]=yi(e[O2]),e[L2]=e[L2]||"",e.enableDebug=yi(e.enableDebug),e[J1]=yi(e[J1]),e.disableFlushOnUnload=yi(e.disableFlushOnUnload,e[J1]),e}function Nde(e){$n(e[Eg])||(e[Eg]?Zle():Vle())}var Cde=function(e){Da(t,e);function t(){var n=e.call(this)||this;n.identifier=Ade,n.priority=180,n.autoRoutePVDelay=500;var r,o,i,a,s,c,l,d,A,f,m,v,p,y,b,h,w;return Lt(t,n,function(x,k){var S=k._addHook;I(),x.getCookieMgr=function(){return IS(x[Bn])},x.processTelemetry=function(E,D){x.processNext(E,D)},x.trackEvent=function(E,D){try{var W=qa(E,ns[Ha],ns[dc],x[Ur](),D);x[Bn][uc](W)}catch(z){Y(2,39,"trackTrace failed, trace will not be collected: "+ft(z),{exception:De(z)})}},x.startTrackEvent=function(E){try{r.start(E)}catch(D){Y(1,29,"startTrackEvent failed, event will not be collected: "+ft(D),{exception:De(D)})}},x.stopTrackEvent=function(E,D,W){try{r.stop(E,void 0,D,W)}catch(z){Y(1,30,"stopTrackEvent failed, event will not be collected: "+ft(z),{exception:De(z)})}},x.trackTrace=function(E,D){try{var W=qa(E,Ud[Ha],Ud[dc],x[Ur](),D);x[Bn][uc](W)}catch(z){Y(2,39,"trackTrace failed, trace will not be collected: "+ft(z),{exception:De(z)})}},x.trackMetric=function(E,D){try{var W=qa(E,Jc[Ha],Jc[dc],x[Ur](),D);x[Bn][uc](W)}catch(z){Y(1,36,"trackMetric failed, metric will not be collected: "+ft(z),{exception:De(z)})}},x[tp]=function(E,D){try{var W=E||{};i[tp](W,mr(mr(mr({},W.properties),W.measurements),D)),x.config[zg]&&s[W2](W.name,W.uri)}catch(z){Y(1,37,"trackPageView failed, page view will not be collected: "+ft(z),{exception:De(z)})}},x[Ic]=function(E,D,W){var z=$r();z&&(E.refUri=E.refUri===void 0?z.referrer:E.refUri);var L=qa(E,Ds[Ha],Ds[dc],x[Ur](),D,W);x[Bn][uc](L)},x[U2]=function(E,D,W){var z=qa(E,Hd[Ha],Hd[dc],x[Ur](),D,W);x[Bn][uc](z)},x.trackPageViewPerformance=function(E,D){var W=E||{};try{a[XS](W),x[U2](W,D)}catch(z){Y(1,37,"trackPageViewPerformance failed, page view will not be collected: "+ft(z),{exception:De(z)})}},x.startTrackPage=function(E){try{if(typeof E!="string"){var D=$r();E=D&&D.title||""}o.start(E)}catch(W){Y(1,31,"startTrackPage failed, page view may not be collected: "+ft(W),{exception:De(W)})}},x.stopTrackPage=function(E,D,W,z){try{if(typeof E!="string"){var L=$r();E=L&&L.title||""}if(typeof D!="string"){var q=cs();D=q&&q[Ql]||""}o.stop(E,D,W,z),x.config[zg]&&s[W2](E,D)}catch(P){Y(1,32,"stopTrackPage failed, page view will not be collected: "+ft(P),{exception:De(P)})}},x[x5]=function(E,D,W){var z=E[Q1]||E[gA]||new Error(Zi),L=new bo(x[Ur](),z,E.properties||D,E.measurements,E.severityLevel,E.id).toInterface(),q=qa(L,bo[Ha],bo[dc],x[Ur](),D,W);x[Bn][uc](q)},x.trackException=function(E,D){E&&!E[Q1]&&E[gA]&&(E[Q1]=E[gA]);try{x[x5](E,D)}catch(W){Y(1,35,"trackException failed, exception will not be collected: "+ft(W),{exception:De(W)})}},x[$1]=function(E){var D=E&&E[gA],W=E&&E.evt;try{if(!W){var z=Cs();z&&(W=z[Sde])}var L=E&&E.url||($r()||{}).URL,q=E[ey]||"window.onerror@"+L+":"+(E[ty]||0)+":"+(E[ny]||0),P={errorSrc:q,url:L,lineNumber:E[ty]||0,columnNumber:E[ny]||0,message:E[k5]};Hle(E.message,E.url,E.lineNumber,E.columnNumber,E[gA])?T(bo[ry]("Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.",L,E[ty]||0,E[ny]||0,D,W,null,q),P):(E[ey]||(E[ey]=q),x.trackException({exception:E,severityLevel:3},P))}catch(B){var U=D?D.name+", "+D[k5]:"null";Y(1,11,"_onError threw exception while logging error, error will not be collected: "+ft(B),{exception:De(B),errorString:U})}},x[dv]=function(E){if(x[Bn])return x[Bn][dv](E);c||(c=[]),c.push(E)},x.initialize=function(E,D,W,z){if(!x.isInitialized()){ge(D)&&lr("Error initializing"),k.initialize(E,D,W,z);try{w=xl(Ra(x.identifier),D.evtNamespace&&D.evtNamespace()),c&&(Me(c,function(q){D[dv](q)}),c=null);var L=N(E);Nde(L),a=new wde(x[Bn]),i=new vde(n,L[B2],x[Bn],a),s=new xde(x[Ur](),function(q,P,U){return M(q,P,U)}),C(L,E),r=new N5(x[Ur](),"trackEvent"),r.action=function(q,P,U,B,K){B||(B={}),K||(K={}),B.duration=U[Rg](),x.trackEvent({name:q,properties:B,measurements:K})},o=new N5(x[Ur](),"trackPageView"),o.action=function(q,P,U,B,K){ge(B)&&(B={}),B.duration=U[Rg]();var te={name:q,uri:P,properties:B,measurements:K};x[Ic](te,B)},t0()&&(F(L),H(L))}catch(q){throw x.setInitialized(!1),q}}},x._doTeardown=function(E,D){i&&i.teardown(E,D),wf(window,null,null,w),I()};function N(E){var D=Hi(null,E,x[Bn]),W=x.identifier,z=I5(E),L=x.config=D.getExtCfg(W);return z!==void 0&&_t(z,function(q,P){L[q]=D.getConfig(W,q,P),L[q]===void 0&&(L=P)}),L}function C(E,D){l=E[Bg]||D[Bg],j()}function M(E,D,W){var z={PageName:E,PageUrl:D};x.trackMetric({name:"PageVisitTime",average:W,max:W,min:W,sampleCount:1},z)}function j(){if(!d&&l){var E=["/browserLinkSignalR/","/__browserLink/"],D=function(W){if(l&&W.baseType===Qc[Ha]){var z=W.baseData;if(z){for(var L=0;L=0)return!1}}return!0};x[dv](D),d=!0}}function T(E,D){var W=qa(E,bo[Ha],bo[dc],x[Ur](),D);x[Bn][uc](W)}function F(E){var D=Cs(),W=cs(!0);m=E[E2],!m&&!v&&!E.autoExceptionInstrumented&&(S(rv(D,"onerror",{ns:w,rsp:function(z,L,q,P,U,B){!m&&z.rslt!==!0&&x[$1](bo[ry](L,q,P,U,B,z.evt))}},!1)),v=!0),_(E,D,W)}function H(E){var D=Cs(),W=cs(!0);if(A=E[O2]===!0,D&&A&&l9()){var z=Dce();Xe(z.pushState)&&Xe(z.replaceState)&&typeof Event!==as&&O(E,D,z,W)}}function R(){var E=null;if(x[Bn]&&x[Bn].getTraceCtx&&(E=x[Bn].getTraceCtx(!1)),!E){var D=x[Bn].getPlugin(db);if(D){var W=D.plugin.context;W&&(E=_S(W.telemetryTrace))}}return E}function O(E,D,W,z){var L=E[L2]||"";function q(){A&&hA(D,uA(L+"locationchange"))}function P(){if(h&&(b=h),h=z&&z[Ql]||"",A){var U=R();if(U){U.setTraceId(ls());var B="_unknown_";z&&z.pathname&&(B=z.pathname+(z.hash||"")),U.setName(Zn(x[Ur](),B))}setTimeout((function(K){x[tp]({refUri:K,properties:{duration:0}})}).bind(this,b),x.autoRoutePVDelay)}}f||(S(rv(W,"pushState",{ns:w,rsp:function(){A&&(hA(D,uA(L+"pushState")),hA(D,uA(L+"locationchange")))}},!0)),S(rv(W,"replaceState",{ns:w,rsp:function(){A&&(hA(D,uA(L+"replaceState")),hA(D,uA(L+"locationchange")))}},!0)),Ts(D,L+"popstate",q,w),Ts(D,L+"locationchange",P,w),f=!0)}function _(E,D,W){p=E[F2]===!0,p&&!y&&(S(rv(D,"onunhandledrejection",{ns:w,rsp:function(z,L){p&&z.rslt!==!0&&x[$1](bo[ry](jde(L),W?W[Ql]:"",0,0,L,z.evt))}},!1)),y=!0,E.autoUnhandledPromiseInstrumented=y)}function Y(E,D,W,z,L){x[Ur]().throwInternal(E,D,W,z,L)}function I(){r=null,o=null,i=null,a=null,s=null,c=null,l=!1,d=!1,A=!1,f=!1,m=!1,v=!1,p=!1,y=!1;var E=cs(!0);b=E&&E[Ql]||"",h=null,w=null}ss(x,"_pageViewManager",function(){return i}),ss(x,"_pageViewPerformanceManager",function(){return a}),ss(x,"_pageVisitTimeManager",function(){return s}),ss(x,"_evtNamespace",function(){return"."+w})}),n}return t.Version="2.8.9",t.getDefaultConfig=I5,t}(o0),jc="duration",Ln="tags",oy="deviceType",Jr="data",Sa="name",ym="traceID",Je="length",wm="stringify",Sl="measurements",Ei="dataType",jl="envelopeType",Nc="toString",uv="onLine",xm="enqueue",Zd="count",Vd="push",V2="emitLineDelimitedJson",xu="clear",HA="batchPayloads",yd="markAsSent",kf="clearSent",bA="BUFFER_KEY",Ac="SENT_BUFFER_KEY",yA="MAX_BUFFER_SIZE",Cc="namePrefix",q2="maxBatchSizeInBytes",Hl="triggerSend",ir="diagLog",G9="onunloadDisableBeacon",_2="isBeaconApiDisabled",wA="_sender",Rt="_senderConfig",Zl="_buffer",Y9="enableSessionStorageBuffer",K9="samplingPercentage",op="instrumentationKey",fc="endpointUrl",J9="customHeaders",ZA="disableXhr",Q9="onunloadDisableFetch",X2="disableTelemetry",iy="baseType",Og="sampleRate",$9="convertUndefined",Tde="_xhrReadyStateChange",Fo="_onError",ay="_onPartialSuccess",Av="_onSuccess",fv="itemsAccepted",Ide="itemsReceived",VA="isRetryDisabled",sy="setRequestHeader",e7="maxBatchInterval",P5="eventsSendRequest",D5="disableInstrumentationKeyValidation",t7="getSamplingScore",Pde="getHashCodeScore",cy="baseType",qt="baseData",Tn="properties",M5="true";function fn(e,t,n){return pt(e,t,n,p2)}function Dde(e,t,n){var r=n[Ln]=n[Ln]||{},o=t.ext=t.ext||{},i=t[Ln]=t[Ln]||[],a=o.user;a&&(fn(r,Et.userAuthUserId,a.authId),fn(r,Et.userId,a.id||a.localId));var s=o.app;s&&fn(r,Et.sessionId,s.sesId);var c=o.device;c&&(fn(r,Et.deviceId,c.id||c.localId),fn(r,Et[oy],c.deviceClass),fn(r,Et.deviceIp,c.ip),fn(r,Et.deviceModel,c.model),fn(r,Et[oy],c[oy]));var l=t.ext.web;if(l){fn(r,Et.deviceLanguage,l.browserLang),fn(r,Et.deviceBrowserVersion,l.browserVer),fn(r,Et.deviceBrowser,l.browser);var d=n[Jr]=n[Jr]||{},A=d[qt]=d[qt]||{},f=A[Tn]=A[Tn]||{};fn(f,"domain",l.domain),fn(f,"isManual",l.isManual?M5:null),fn(f,"screenRes",l.screenRes),fn(f,"userConsent",l.userConsent?M5:null)}var m=o.os;m&&fn(r,Et.deviceOS,m[Sa]);var v=o.trace;v&&(fn(r,Et.operationParentId,v.parentID),fn(r,Et.operationName,Zn(e,v[Sa])),fn(r,Et.operationId,v[ym]));for(var p={},y=i[Je]-1;y>=0;y--){var b=i[y];_t(b,function(w,x){p[w]=x}),i.splice(y,1)}_t(i,function(w,x){p[w]=x});var h=mr(mr({},r),p);h[Et.internalSdkVersion]||(h[Et.internalSdkVersion]="javascript:".concat(Mde.Version)),n[Ln]=t9(h)}function qs(e,t,n){ge(e)||_t(e,function(r,o){$R(o)?n[r]=o:Fe(o)?t[r]=o:Zu()&&(t[r]=ui()[wm](o))})}function Nl(e,t){ge(e)||_t(e,function(n,r){e[n]=r||t})}function Cl(e,t,n,r){var o=new ode(e,r,t);fn(o,"sampleRate",n[D9]),(n[qt]||{}).startTime&&(o.time=bu(n[qt].startTime)),o.iKey=n.iKey;var i=n.iKey.replace(/-/g,"");return o[Sa]=o[Sa].replace("{0}",i),Dde(e,n,o),n[Ln]=n[Ln]||[],t9(o)}function Tl(e,t){ge(t[qt])&&he(e,1,46,"telemetryItem.baseData cannot be null.")}var Mde={Version:"2.8.9"};function Rde(e,t,n){Tl(e,t);var r=t[qt][Sl]||{},o=t[qt][Tn]||{};qs(t[Jr],o,r),ge(n)||Nl(o,n);var i=t[qt];if(ge(i))return Fc(e,"Invalid input for dependency data"),null;var a=i[Tn]&&i[Tn][m5]?i[Tn][m5]:"GET",s=new Qc(e,i.id,i.target,i[Sa],i[jc],i.success,i.responseCode,a,i.type,i.correlationContext,o,r),c=new kl(Qc[Ei],s);return Cl(e,Qc[jl],t,c)}function n7(e,t,n){Tl(e,t);var r={},o={};t[cy]!==ns[Ei]&&(r.baseTypeSource=t[cy]),t[cy]===ns[Ei]?(r=t[qt][Tn]||{},o=t[qt][Sl]||{}):t[qt]&&qs(t[qt],r,o),qs(t[Jr],r,o),ge(n)||Nl(r,n);var i=t[qt][Sa],a=new ns(e,i,r,o),s=new kl(ns[Ei],a);return Cl(e,ns[jl],t,s)}function zde(e,t,n){Tl(e,t);var r=t[qt][Sl]||{},o=t[qt][Tn]||{};qs(t[Jr],o,r),ge(n)||Nl(o,n);var i=t[qt],a=bo.CreateFromInterface(e,i,o,r),s=new kl(bo[Ei],a);return Cl(e,bo[jl],t,s)}function Ede(e,t,n){Tl(e,t);var r=t[qt],o=r[Tn]||{},i=r[Sl]||{};qs(t[Jr],o,i),ge(n)||Nl(o,n);var a=new Jc(e,r[Sa],r.average,r.sampleCount,r.min,r.max,r.stdDev,o,i),s=new kl(Jc[Ei],a);return Cl(e,Jc[jl],t,s)}function Bde(e,t,n){Tl(e,t);var r,o=t[qt];!ge(o)&&!ge(o[Tn])&&!ge(o[Tn][jc])?(r=o[Tn][jc],delete o[Tn][jc]):!ge(t[Jr])&&!ge(t[Jr][jc])&&(r=t[Jr][jc],delete t[Jr][jc]);var i=t[qt],a;((t.ext||{}).trace||{})[ym]&&(a=t.ext.trace[ym]);var s=i.id||a,c=i[Sa],l=i.uri,d=i[Tn]||{},A=i[Sl]||{};if(ge(i.refUri)||(d.refUri=i.refUri),ge(i.pageType)||(d.pageType=i.pageType),ge(i.isLoggedIn)||(d.isLoggedIn=i.isLoggedIn[Nc]()),!ge(i[Tn])){var f=i[Tn];_t(f,function(p,y){d[p]=y})}qs(t[Jr],d,A),ge(n)||Nl(d,n);var m=new Ds(e,c,l,r,d,A,s),v=new kl(Ds[Ei],m);return Cl(e,Ds[jl],t,v)}function Fde(e,t,n){Tl(e,t);var r=t[qt],o=r[Sa],i=r.uri||r.url,a=r[Tn]||{},s=r[Sl]||{};qs(t[Jr],a,s),ge(n)||Nl(a,n);var c=new Hd(e,o,i,void 0,a,s,r),l=new kl(Hd[Ei],c);return Cl(e,Hd[jl],t,l)}function Ode(e,t,n){Tl(e,t);var r=t[qt].message,o=t[qt].severityLevel,i=t[qt][Tn]||{},a=t[qt][Sl]||{};qs(t[Jr],i,a),ge(n)||Nl(i,n);var s=new Ud(e,r,o,i,a),c=new kl(Ud[Ei],s);return Cl(e,Ud[jl],t,c)}function R5(e,t){wf(e,null,null,t)}function Lde(e){var t=$r(),n=Ma(),r=!1,o=!0,i=xl(Ra("OfflineListener"),e);try{if(s(Cs())&&(r=!0),t){var a=t.body||t;a.ononline&&s(a)&&(r=!0)}r&&n&&!ge(n[uv])&&(o=n[uv])}catch{r=!1}function s(f){var m=!1;return f&&(m=Ts(f,"online",c,i),m&&Ts(f,"offline",l,i)),m}function c(){o=!0}function l(){o=!1}function d(){var f=!0;return r?f=o:n&&!ge(n[uv])&&(f=n[uv]),f}function A(){var f=Cs();if(f&&r){if(R5(f,i),t){var m=t.body||t;$n(m.ononline)||R5(m,i)}r=!1}}return{isOnline:d,isListening:function(){return r},unload:A}}var r7=function(){function e(t,n){var r=[],o=!1;this._get=function(){return r},this._set=function(i){return r=i,r},Lt(e,this,function(i){i[xm]=function(a){if(i[Zd]()>=n.eventsLimitInMem()){o||(he(t,2,105,"Maximum in-memory buffer size reached: "+i[Zd](),!0),o=!0);return}r[Vd](a)},i[Zd]=function(){return r[Je]},i.size=function(){for(var a=r[Je],s=0;s0){var s=n[V2]()?a.join(` `):"["+a.join(",")+"]";return s}return null}})}return e.__ieDyn=1,e}(),Wde=function(e){Da(t,e);function t(n,r){var o=e.call(this,n,r)||this;return Lt(t,o,function(i,a){i[yd]=function(s){a[xu]()},i[kf]=function(s){}}),o}return t.__ieDyn=1,t}(r7),Ude=function(e){Da(t,e);function t(n,r){var o=e.call(this,n,r)||this,i=!1;return Lt(t,o,function(a,s){var c=f(t[bA]),l=f(t[Ac]),d=a._set(c.concat(l));d[Je]>t[yA]&&(d[Je]=t[yA]),m(t[Ac],[]),m(t[bA],d),a[xm]=function(v){if(a[Zd]()>=t[yA]){i||(he(n,2,67,"Maximum buffer size reached: "+a[Zd](),!0),i=!0);return}s[xm](v),m(t[bA],a._get())},a[xu]=function(){s[xu](),m(t[bA],a._get()),m(t[Ac],[]),i=!1},a[yd]=function(v){m(t[bA],a._set(A(v,a._get())));var p=f(t[Ac]);p instanceof Array&&v instanceof Array&&(p=p.concat(v),p[Je]>t[yA]&&(he(n,1,67,"Sent buffer reached its maximum size: "+p[Je],!0),p[Je]=t[yA]),m(t[Ac],p))},a[kf]=function(v){var p=f(t[Ac]);p=A(v,p),m(t[Ac],p)};function A(v,p){var y=[];return Me(p,function(b){!Xe(b)&&ii(v,b)===-1&&y[Vd](b)}),y}function f(v){var p=v;try{p=r[Cc]&&r[Cc]()?r[Cc]()+"_"+p:p;var y=I2(n,p);if(y){var b=ui().parse(y);if(Fe(b)&&(b=ui().parse(b)),b&&Dt(b))return b}}catch(h){he(n,1,42," storage key: "+p+", "+ft(h),{exception:De(h)})}return[]}function m(v,p){var y=v;try{y=r[Cc]&&r[Cc]()?r[Cc]()+"_"+y:y;var b=JSON[wm](p);P2(n,y,b)}catch(h){P2(n,y,JSON[wm]([])),he(n,2,41," storage key: "+y+", "+ft(h)+". Buffer cleared",{exception:De(h)})}}}),o}return t.BUFFER_KEY="AI_buffer",t.SENT_BUFFER_KEY="AI_sentBuffer",t.MAX_BUFFER_SIZE=2e3,t}(r7),Hde=function(){function e(t){Lt(e,this,function(n){n.serialize=function(a){var s=r(a,"root");try{return ui()[wm](s)}catch(c){he(t,1,48,c&&Xe(c[Nc])?c[Nc]():"Error serializing object",null,!0)}};function r(a,s){var c="__aiCircularRefCheck",l={};if(!a)return he(t,1,48,"cannot serialize object because it is null or undefined",{name:s},!0),l;if(a[c])return he(t,2,50,"Circular reference detected while serializing object",{name:s},!0),l;if(!a.aiDataContract){if(s==="measurements")l=i(a,"number",s);else if(s==="properties")l=i(a,"string",s);else if(s==="tags")l=i(a,"string",s);else if(Dt(a))l=o(a,s);else{he(t,2,49,"Attempting to serialize an object which does not implement ISerializable",{name:s},!0);try{ui()[wm](a),l=a}catch(d){he(t,1,48,d&&Xe(d[Nc])?d[Nc]():"Error serializing object",null,!0)}}return l}return a[c]=!0,_t(a.aiDataContract,function(d,A){var f=Xe(A)?A()&1:A&1,m=Xe(A)?A()&4:A&4,v=A&2,p=a[d]!==void 0,y=di(a[d])&&a[d]!==null;if(f&&!p&&!v)he(t,1,24,"Missing required field specification. The field is required but not present on source",{field:d,name:s});else if(!m){var b=void 0;y?v?b=o(a[d],d):b=r(a[d],d):b=a[d],b!==void 0&&(l[d]=b)}}),delete a[c],l}function o(a,s){var c;if(a)if(!Dt(a))he(t,1,54,`This field was specified as an array in the contract but the item is not an array.\r `,{name:s},!0);else{c=[];for(var l=0;l100||t<0)&&(r.throwInternal(2,58,"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.",{samplingRate:t},!0),t=100),this[Og]=t,this.samplingScoreGenerator=new qde}return e.prototype.isSampledIn=function(t){var n=this[Og],r=!1;return n==null||n>=100||t.baseType===Jc[Ei]?!0:(r=this.samplingScoreGenerator[t7](t)y._senderConfig[q2]()&&y[Hl](!0,null,10),O())},y.flush=function(P,U,B){if(P===void 0&&(P=!0),!a){_();try{y[Hl](P,null,B||1)}catch(K){he(y[ir](),1,22,"flush failed, telemetry will not be collected: "+ft(K),{exception:De(K)})}}},y.onunloadFlush=function(){if(!a)if((y._senderConfig[G9]()===!1||y[Rt][_2]()===!1)&&Q0())try{y[Hl](!0,k,2)}catch(P){he(y[ir](),1,20,"failed to flush with beacon sender on page unload, telemetry will not be collected: "+ft(P),{exception:De(P)})}else y.flush()},y.addHeader=function(P,U){d[P]=U},y.initialize=function(P,U,B,K){y.isInitialized()&&he(y[ir](),1,28,"Sender is already initialized"),b.initialize(P,U,B,K);var te=y._getTelCtx(),Ae=y.identifier;c=new Hde(U.logger),r=0,o=null,i=0,y[wA]=null,l=0;var ae=y[ir]();p=xl(Ra("Sender"),U.evtNamespace&&U.evtNamespace()),v=Lde(p);var Ne=z5();_t(Ne,function(Z,V){y[Rt][Z]=function(){var X=te.getConfig(Ae,Z,V());return!X&&Z==="endpointUrl"&&(X=V()),X}}),y._buffer=y[Rt][Y9]()&&hm()?new Ude(ae,y[Rt]):new Wde(ae,y[Rt]),y._sample=new _de(y[Rt][K9](),ae),L(P)||he(ae,1,100,"Invalid Instrumentation key "+P[op]),!ep(y._senderConfig.endpointUrl())&&y._senderConfig.customHeaders()&&y._senderConfig.customHeaders()[Je]>0&&Me(y[Rt][J9](),function(Z){n.addHeader(Z.header,Z.value)});var oe=y[Rt],xe=null;!oe[ZA]()&&BT()?xe=E:!oe[ZA]()&&xg()&&(xe=C),!xe&&ET()&&(xe=j),f=xe||C,!oe[_2]()&&Q0()&&(xe=N),y[wA]=xe||C,!oe[Q9]()&&ET(!0)?m=M:Q0()?m=N:!oe[ZA]()&&BT()?m=E:!oe[ZA]()&&xg()?m=C:m=f},y.processTelemetry=function(P,U){U=y._getTelCtx(U);var B=U[ir]();try{if(y[Rt][X2]())return;if(!P){he(B,1,7,"Cannot send empty telemetry");return}if(P.baseData&&!P[iy]){he(B,1,70,"Cannot send telemetry without baseData and baseType");return}if(P[iy]||(P[iy]="EventData"),!y[wA]){he(B,1,28,"Sender was not initialized");return}if(h(P))P[D9]=y._sample[Og];else{he(B,2,33,"Telemetry item was sampled out and not sent",{SampleRate:y._sample[Og]});return}var K=y[Rt][$9]()||void 0,te=P.iKey||y[Rt][op](),Ae=t.constructEnvelope(P,te,B,K);if(!Ae){he(B,1,47,"Unable to create an AppInsights envelope");return}var ae=!1;if(P[Ln]&&P[Ln][V1]&&(Me(P[Ln][V1],function(Z){try{Z&&Z(Ae)===!1&&(ae=!0,Fc(B,"Telemetry processor check returns false"))}catch(V){he(B,1,64,"One of telemetry initializers failed, telemetry item will not be sent: "+ft(V),{exception:De(V)},!0)}}),delete P[Ln][V1]),ae)return;var Ne=c.serialize(Ae),oe=y[Zl],xe=oe.size();xe+Ne[Je]>y[Rt][q2]()&&y[Hl](!0,null,10),oe[xm](Ne),O()}catch(Z){he(B,2,12,"Failed adding telemetry to the sender's buffer, some telemetry will be lost: "+ft(Z),{exception:De(Z)})}y.processNext(P,U)},y[Tde]=function(P,U,B){P.readyState===4&&w(P.status,U,P.responseURL,B,I(P),mv(P)||P.response)},y[Hl]=function(P,U,B){if(P===void 0&&(P=!0),!a)try{var K=y[Zl];if(y[Rt][X2]())K[xu]();else{if(K[Zd]()>0){var te=K.getItems();z(B||0,P),U?U.call(n,te,P):y[wA](te,P)}i=+new Date}_()}catch(ae){var Ae=d9();(!Ae||Ae>9)&&he(y[ir](),1,40,"Telemetry transmission failed, some telemetry will be lost: "+ft(ae),{exception:De(ae)})}},y._doTeardown=function(P,U){y.onunloadFlush(),v.unload(),q()},y[Fo]=function(P,U,B){he(y[ir](),2,26,"Failed to send telemetry.",{message:U}),y._buffer[kf](P)},y[ay]=function(P,U){for(var B=[],K=[],te=U.errors.reverse(),Ae=0,ae=te;Ae0&&y[Av](P,U[fv]),B[Je]>0&&y[Fo](B,I(null,["partial success",U[fv],"of",U.itemsReceived].join(" "))),K[Je]>0&&(H(K),he(y[ir](),2,40,"Partial success. Delivered: "+P[Je]+", Failed: "+B[Je]+". Will retry to send "+K[Je]+" our of "+U[Ide]+" items"))},y[Av]=function(P,U){y._buffer[kf](P)},y._xdrOnLoad=function(P,U){var B=mv(P);if(P&&(B+""=="200"||B===""))r=0,y[Av](U,0);else{var K=F(B);K&&K.itemsReceived&&K.itemsReceived>K[fv]&&!y[Rt][VA]()?y[ay](U,K):y[Fo](U,D(P))}};function h(P){return y._sample.isSampledIn(P)}function w(P,U,B,K,te,Ae){var ae=null;if(y._appId||(ae=F(Ae),ae&&ae.appId&&(y._appId=ae.appId)),(P<200||P>=300)&&P!==0){if((P===301||P===307||P===308)&&!x(B)){y[Fo](U,te);return}!y[Rt][VA]()&&Y(P)?(H(U),he(y[ir](),2,40,". Response code "+P+". Will retry to send "+U[Je]+" items.")):y[Fo](U,te)}else if(v&&!v.isOnline()){if(!y[Rt][VA]()){var Ne=10;H(U,Ne),he(y[ir](),2,40,". Offline - Response Code: ".concat(P,". Offline status: ").concat(!v.isOnline(),". Will retry to send ").concat(U.length," items."))}}else x(B),P===206?(ae||(ae=F(Ae)),ae&&!y[Rt][VA]()?y[ay](U,ae):y[Fo](U,te)):(r=0,y[Av](U,K))}function x(P){return l>=10?!1:!ge(P)&&P!==""&&P!==y[Rt][fc]()?(y[Rt][fc]=function(){return P},++l,!0):!1}function k(P,U){m?m(P,!1):N(P)}function S(P){var U=Ma(),B=y[Zl],K=y[Rt][fc](),te=y._buffer[HA](P),Ae=new Blob([te],{type:"text/plain;charset=UTF-8"}),ae=U.sendBeacon(K,Ae);return ae&&(B[yd](P),y._onSuccess(P,P[Je])),ae}function N(P,U){if(Dt(P)&&P[Je]>0&&!S(P)){for(var B=[],K=0;K0&&(f&&f(B,!0),he(y[ir](),2,40,". Failed to send telemetry with Beacon API, retried with normal sender."))}}function C(P,U){var B=new XMLHttpRequest,K=y[Rt][fc]();try{B[Oc]=!0}catch{}B.open("POST",K,U),B[sy]("Content-type","application/json"),ep(K)&&B[sy](Wt[6],Wt[7]),Me(fl(d),function(Ae){B[sy](Ae,d[Ae])}),B.onreadystatechange=function(){return y._xhrReadyStateChange(B,P,P[Je])},B.onerror=function(Ae){return y[Fo](P,I(B),Ae)};var te=y._buffer[HA](P);B.send(te),y._buffer[yd](P)}function M(P,U){if(Dt(P)){for(var B=P[Je],K=0;K=U[fv]&&U.itemsReceived-U.itemsAccepted===U.errors[Je])return U}}catch(B){he(y[ir](),1,43,"Cannot parse the response. "+ft(B),{response:P})}return null}function H(P,U){if(U===void 0&&(U=1),!(!P||P[Je]===0)){var B=y[Zl];B[kf](P),r++;for(var K=0,te=P;K=200&&+l[Pi]<400,m.responseCode=+l[Pi],m.method=l[ta],m[yo]={HttpMethod:l[ta]},m);if(l[Uc]&&(v[Wc]=new Date,v[Wc].setTime(l[Uc])),Kde(l,v),A&&fl(l.requestHeaders)[$i]>0){var p=v[yo]=v[yo]||{};p[go]=l[go]}if(f){var y=f();if(y){var b=y[rx];if(b&&(v.correlationContext=b),y[xd]&&fl(y.headerMap)[$i]>0){var p=v[yo]=v[yo]||{};p.responseHeaders=y[xd]}if(l.errorStatusText&&l[Pi]>=400){var h=y.type,p=v[yo]=v[yo]||{};(h===""||h==="text")&&(p.responseText=y.responseText?y[wd]+" - "+y[c]:y[wd]),h==="json"&&(p.responseText=y.response?y[wd]+" - "+JSON.stringify(y[m7]):y[wd])}}}return v},l[tx]=function(){var d,A=null,f=l[fy];if(f&&(f[ip]||f[ap])){A={};var m=A[Vr.TraceExt]=(d={},d[sa]=f[ip],d.parentID=f[ap],d);ge(f[No])||(m[No]=f[No])}return A}})}return e.__ieDyn=1,e}(),V5="ai.ajxmn.",jf="diagLog",Xr="ajaxData",Nf="fetch",xA="Failed to monitor XMLHttpRequest",g7=", monitoring data for this ajax call ",ql=g7+"may be incorrect.",q5=g7+"won't be sent.",_5="Failed to get Request-Context correlation header as it may be not included in the response or not accessible.",X5="Failed to add custom defined request context as configured call back may missing a null check.",G5="Failed to calculate the duration of the ",Y5=0;function Qde(){var e=Hu();return!e||ge(e.Request)||ge(e.Request[hr])||ge(e[Nf])?null:e[Nf]}function $de(e){var t=!1;if(xg()){var n=XMLHttpRequest[hr];t=!ge(n)&&!ge(n.open)&&!ge(n.send)&&!ge(n.abort)}var r=d9();if(r&&r<9&&(t=!1),t)try{var o=new XMLHttpRequest;o[Xr]={};var i=XMLHttpRequest[hr].open;XMLHttpRequest[hr].open=i}catch(a){t=!1,Cf(e,15,"Failed to enable XMLHttpRequest monitoring, extension is not supported",{exception:De(a)})}return t}function sp(e){var t="";try{e&&e[Xr]&&e[Xr][jo]&&(t+="(url: '"+e[Xr][jo]+"')")}catch{}return t}function Cf(e,t,n,r,o){he(e[jf](),1,t,n,r,o)}function _l(e,t,n,r,o){he(e[jf](),2,t,n,r,o)}function kA(e,t,n){return function(r){Cf(e,t,n,{ajaxDiagnosticsMessage:sp(r[qA]),exception:De(r.err)})}}function Xl(e,t){return e&&t?e.indexOf(t):-1}function K5(e,t,n){var r={id:t,fn:n};return e.push(r),{remove:function(){Me(e,function(o,i){if(o.id===r.id)return e.splice(i,1),-1})}}}function h7(e,t,n,r){var o=!0;return Me(t,function(i,a){try{i.fn.call(null,n)===!1&&(o=!1)}catch(s){he(e&&e.logger,1,64,"Dependency "+r+" [#"+a+"] failed: "+ft(s),{exception:De(s)},!0)}}),o}function eue(e,t,n,r,o,i){var a,s=e[$i];if(s>0){var c=(a={},a[Xo]=t,a.xhr=r,a.input=o,a.init=i,a.traceId=n[sa],a.spanId=n[ds],a.traceFlags=n[No],a.context=n[Sf]||{},a);h7(t,e,c,"listener"),n[sa]=c[ip],n[ds]=c[ap],n[No]=c[No],n[Sf]=c[Sf]}}var vv="*.blob.core.",tue=kS([vv+"windows.net",vv+"chinacloudapi.cn",vv+"cloudapi.de",vv+"usgovcloudapi.net"]),nue=[/https:\/\/[^\/]*(\.pipe\.aria|aria\.pipe|events\.data|collector\.azure)\.[^\/]+\/(OneCollector\/1|Collector\/3)\.0/i];function ox(){var e,t=(e={},e[s7]=500,e[u7]=!1,e[A7]=!1,e[l7]=void 0,e.disableCorrelationHeaders=!1,e.distributedTracingMode=1,e.correlationHeaderExcludedDomains=tue,e.correlationHeaderDomains=void 0,e.correlationHeaderExcludePatterns=void 0,e[_A]=void 0,e.enableCorsCorrelation=!1,e[o7]=!1,e[c7]=!1,e[i7]=!1,e[a7]=!1,e.maxAjaxPerfLookupAttempts=3,e[v7]=25,e.ignoreHeaders=["Authorization","X-API-Key","WWW-Authenticate"],e[d7]=void 0,e.addIntEndpoints=!0,e);return t}function J5(){var e=ox();return _t(e,function(t){e[t]=void 0}),e}var rue=function(e){Da(t,e);function t(){var n=e.call(this)||this;n.identifier=t.identifier,n.priority=120;var r,o,i,a,s,c,l,d,A,f,m,v,p,y,b,h,w,x,k,S,N,C,M;return Lt(t,n,function(j,T){var F=T._addHook;H(),j.initialize=function(Z,V,X,J){j.isInitialized()||(T.initialize(Z,V,X,J),S=xl(Ra("ajax"),V&&V.evtNamespace&&V.evtNamespace()),R(Z),E(),Y(),O())},j._doTeardown=function(){H()},j.trackDependencyData=function(Z,V){xe(M,j[Xo],null,Z,V)},j[ly]=function(Z,V,X,J){var ce=j._currentWindowHost||i;if(eue(C,j[Xo],Z,J,V,X),V){if(bd[B5](a,Z[G2](),ce)){X||(X={});var le=new Headers(X[mc]||(V instanceof Request?V[mc]||{}:{}));if(f){var pe="|"+Z[sa]+"."+Z[ds];le.set(Wt[3],pe),s&&(Z[go][Wt[3]]=pe)}var Ie=a[_A]||d&&d[_A]();if(Ie&&(le.set(Wt[0],Wt[2]+Ie),s&&(Z[go][Wt[0]]=Wt[2]+Ie)),A){var je=Z[No];ge(je)&&(je=1);var At=o5(r5(Z[sa],Z[ds],je));le.set(Wt[4],At),s&&(Z[go][Wt[4]]=At)}X[mc]=le}return X}else if(J){if(bd[B5](a,Z[G2](),ce)){if(f){var pe="|"+Z[sa]+"."+Z[ds];J[dy](Wt[3],pe),s&&(Z[go][Wt[3]]=pe)}var Ie=a[_A]||d&&d[_A]();if(Ie&&(J[dy](Wt[0],Wt[2]+Ie),s&&(Z[go][Wt[0]]=Wt[2]+Ie)),A){var je=Z[No];ge(je)&&(je=1);var At=o5(r5(Z[sa],Z[ds],je));J[dy](Wt[4],At),s&&(Z[go][Wt[4]]=At)}}return J}},j[F5]=function(Z,V,X){if(p===-1||l5?m=V5+ce.substring(ce[$i]-5)+".":m=V5+ce+"."}h=!!a[u7],w=!!a[A7]}function O(){var Z=j[Xo].getPlugin(db);Z&&(d=Z.plugin[Sf])}function _(Z){var V=!0;return(Z||a.ignoreHeaders)&&Me(a.ignoreHeaders,function(X){if(X[Vl]()===Z[Vl]())return V=!1,-1}),V}function Y(){var Z=Qde();if(Z){var V=Hu(),X=Z.polyfill;!w&&!r?(F(C2(V,Nf,{ns:S,req:function(J,ce,le){var pe;if(!w&&r&&!D(null,ce,le)&&!(X&&o)){var Ie=J.ctx();pe=Ae(ce,le);var je=j[ly](pe,ce,le);je!==le&&J.set(1,je),Ie.data=pe}},rsp:function(J,ce){if(!w){var le=J.ctx().data;le&&(J.rslt=J.rslt.then(function(pe){return Ne(J,(pe||{})[Pi],ce,pe,le,function(){var Ie,je=(Ie={statusText:pe[wd]},Ie[xd]=null,Ie[rx]=oe(pe),Ie);if(y){var At={};pe.headers.forEach(function(xr,An){_(An)&&(At[An]=xr)}),je[xd]=At}return je}),pe}).catch(function(pe){throw Ne(J,0,ce,null,le,null,{error:pe.message}),pe}))}},hkErr:kA(j,15,"Failed to monitor Window.fetch"+ql)})),r=!0):X&&F(C2(V,Nf,{ns:S,req:function(J,ce,le){D(null,ce,le)}})),X&&(V[Nf].polyfill=X)}}function I(Z,V,X){F(Ble(Z,V,X))}function E(){$de(j)&&!h&&!o&&(I(XMLHttpRequest,"open",{ns:S,req:function(Z,V,X,J){if(!h){var ce=Z[qA],le=ce[Xr];!D(ce,X)&&W(ce,!0)&&((!le||!le.xhrMonitoringState[Y2])&&L(ce,V,X,J),q(ce))}},hkErr:kA(j,15,xA+".open"+ql)}),I(XMLHttpRequest,"send",{ns:S,req:function(Z,V){if(!h){var X=Z[qA],J=X[Xr];W(X)&&!J.xhrMonitoringState[K2]&&(K("xhr",J),J[Uc]=sv(),j[ly](J,void 0,void 0,X),J.xhrMonitoringState[K2]=!0)}},hkErr:kA(j,17,xA+ql)}),I(XMLHttpRequest,"abort",{ns:S,req:function(Z){if(!h){var V=Z[qA],X=V[Xr];W(V)&&!X.xhrMonitoringState[J2]&&(X.aborted=1,X.xhrMonitoringState[J2]=!0)}},hkErr:kA(j,13,xA+".abort"+ql)}),I(XMLHttpRequest,"setRequestHeader",{ns:S,req:function(Z,V,X){if(!h&&s){var J=Z[qA];W(J)&&_(V)&&(J[Xr][go][V]=X)}},hkErr:kA(j,71,xA+".setRequestHeader"+ql)}),o=!0)}function D(Z,V,X){var J=!1,ce=((Fe(V)?V:(V||{}).url||"")||"")[Vl]();if(Me(x,function(Ie){var je=Ie;Fe(Ie)&&(je=new RegExp(Ie)),J||(J=je.test(ce))}),J)return J;var le=Xl(ce,"?"),pe=Xl(ce,"#");return(le===-1||pe!==-1&&pe=0;pi--){var or=qi[pi];if(or){if(or.entryType==="resource")or.initiatorType===Z&&(Xl(or[$l],je)!==-1||Xl(je,or[$l])!==-1)&&(An=or);else if(or.entryType==="mark"&&or[$l]===ce[$l]){V[nx]=An;break}if(or[Wc]=pe||V.async===!1?(ce&&Xe(le.clearMarks)&&le.clearMarks(ce[$l]),V.perfAttempts=At,X()):setTimeout(xr,Ie)}catch(Il){J(Il)}})()}function Ae(Z,V){var X,J=z(),ce=J&&J[Q2]()||ls(),le=ls().substr(0,16),pe=new Z5(ce,le,j[jf](),(X=j.core)===null||X===void 0?void 0:X.getTraceCtx());pe[No]=J&&J[$2](),pe[Uc]=sv(),pe[O5]=c,Z instanceof Request?pe[jo]=Z?Z.url:"":pe[jo]=Z;var Ie="GET";V&&V[ta]?Ie=V[ta]:Z&&Z instanceof Request&&(Ie=Z[ta]),pe[ta]=Ie;var je={};if(s){var At=new Headers((V?V[mc]:0)||(Z instanceof Request?Z[mc]||{}:{}));At.forEach(function(xr,An){_(An)&&(je[An]=xr)})}return pe[go]=je,K("fetch",pe),pe}function ae(Z){var V="";try{ge(Z)||(typeof Z=="string"?V+="(url: '".concat(Z,"')"):V+="(url: '".concat(Z.url,"')"))}catch(X){Cf(j,15,"Failed to grab failed fetch diagnostics message",{exception:De(X)})}return V}function Ne(Z,V,X,J,ce,le,pe){if(!ce)return;function Ie(je,At,xr){var An=xr||{};An.fetchDiagnosticsMessage=ae(X),At&&(An.exception=De(At)),_l(j,je,G5+"fetch call"+q5,An)}ce[XA]=sv(),ce[Pi]=V,te("fetch",ce,function(){var je=ce[ex]("Fetch",s,le),At;try{k&&(At=k({status:V,request:X,response:J}))}catch{_l(j,104,X5)}if(je){At!==void 0&&(je[yo]=mr(mr({},je.properties),At));var xr=ce[tx]();xe(M,j[Xo],ce,je,null,xr)}else Ie(14,null,{requestSentTime:ce[Uc],responseFinishedTime:ce[XA]})},function(je){Ie(18,je,null)})}function oe(Z){if(Z&&Z[mc])try{var V=Z[mc].get(Wt[0]);return bd[U5](V)}catch(X){_l(j,18,_5,{fetchDiagnosticsMessage:ae(Z),exception:De(X)})}}function xe(Z,V,X,J,ce,le){var pe,Ie=!0,je=Z[$i];if(je>0){var At=(pe={item:J},pe[yo]=ce,pe.sysProperties=le,pe.context=X?X[Sf]:null,pe);Ie=h7(V,Z,At,"initializer")}Ie&&j[F5](J,ce,le)}}),n}return t.prototype.processTelemetry=function(n,r){this.processNext(n,r)},t.prototype.addDependencyInitializer=function(n){return null},t.identifier="AjaxDependencyPlugin",t.getDefaultConfig=ox,t.getEmptyConfig=J5,t}(o0),oue=function(){function e(){}return e}(),iue=function(){function e(){this.id="browser",this.deviceClass="Browser"}return e}(),Wg="sessionManager",Ug="update",cp="isUserCookieSet",Hg="isNewUser",my="getTraceCtx",ix="telemetryTrace",b7="applySessionContext",y7="applyApplicationContext",w7="applyDeviceContext",x7="applyOperationContext",k7="applyUserContext",S7="applyOperatingSystemContxt",j7="applyLocationContext",N7="applyInternalContext",Ka="accountId",lp="sdkExtension",dp="getSessionId",$c="namePrefix",up="sessionCookiePostfix",Ap="userCookiePostfix",km="idLength",Sm="getNewId",Zg="length",ed="automaticSession",td="authenticatedId",SA="sessionExpirationMs",pv="sessionRenewalMs",ea="config",jA="acquisitionDate",gv="renewalDate",ax="cookieDomain",fp="join",NA="cookieSeparator",vy="authUserCookieName",aue="2.8.9",sue=function(){function e(t){this.sdkVersion=(t[lp]&&t[lp]()?t[lp]()+"_":"")+"javascript:"+aue}return e}(),cue=function(){function e(){}return e}(),lue="ai_session",C7=function(){function e(){}return e}(),due=function(){function e(t,n){var r=this,o,i,a=n0(n),s=IS(n);Lt(e,r,function(c){t||(t={}),Xe(t[SA])||(t[SA]=function(){return e.acquisitionSpan}),Xe(t[pv])||(t[pv]=function(){return e.renewalSpan}),c[ea]=t;var l=c.config[up]&&c[ea][up]()?c.config[up]():c.config[$c]&&c[ea][$c]()?c[ea][$c]():"";o=function(){return lue+l},c[ed]=new C7,c[Ug]=function(){var p=Ui(),y=!1,b=c[ed];b.id||(y=!d(b));var h=c.config[SA]();if(!y&&h>0){var w=c.config[pv](),x=p-b[jA],k=p-b[gv];y=x<0||k<0,y=y||x>h,y=y||k>w}y?f(p):(!i||p-i>e.cookieUpdateInterval)&&m(b,p)},c.backup=function(){var p=c[ed];v(p.id,p[jA],p[gv])};function d(p,y){var b=!1,h=s.get(o());if(h&&Xe(h.split))b=A(p,h);else{var w=qle(a,o());w&&(b=A(p,w))}return b||!!p.id}function A(p,y){var b=!1,h=", session will be reset",w=y.split("|");if(w[Zg]>=2)try{var x=+w[1]||0,k=+w[2]||0;isNaN(x)||x<=0?he(a,2,27,"AI session acquisition date is 0"+h):isNaN(k)||k<=0?he(a,2,27,"AI session renewal date is 0"+h):w[0]&&(p.id=w[0],p[jA]=x,p[gv]=k,b=!0)}catch(S){he(a,1,9,"Error parsing ai_session value ["+(y||"")+"]"+h+" - "+ft(S),{exception:De(S)})}return b}function f(p){var y=c[ea]||{},b=(y[Sm]?y[Sm]():null)||CS;c.automaticSession.id=b(y[km]?y[km]():22),c[ed][jA]=p,m(c[ed],p),US()||he(a,2,0,"Browser does not support local storage. Session durations will be inaccurate.")}function m(p,y){var b=p[jA];p[gv]=y;var h=c[ea],w=h[pv](),x=b+h[SA]()-y,k=[p.id,b,y],S=0;x0?S:null,N),i=y}function v(p,y,b){_le(a,o(),[p,y,b][fp]("|"))}})}return e.acquisitionSpan=864e5,e.renewalSpan=18e5,e.cookieUpdateInterval=6e4,e}(),uue=function(){function e(t,n,r,o){var i=this;i.traceID=t||ls(),i.parentID=n;var a=cs();!r&&a&&a.pathname&&(r=a.pathname),i.name=Zn(o,r)}return e}();function Q5(e){return!(typeof e!="string"||!e||e.match(/,|;|=| |\|/))}var Aue=function(){function e(t,n){this.isNewUser=!1,this.isUserCookieSet=!1;var r=n0(n),o=IS(n),i;Lt(e,this,function(a){a[ea]=t;var s=a.config[Ap]&&a[ea][Ap]()?a[ea][Ap]():"";i=function(){return e.userCookieName+s};var c=o.get(i());if(c){a[Hg]=!1;var l=c.split(e[NA]);l[Zg]>0&&(a.id=l[0],a[cp]=!!a.id)}function d(){var b=t||{},h=(b[Sm]?b[Sm]():null)||CS,w=h(b[km]?t[km]():22);return w}function A(b){var h=bu(new Date);a.accountAcquisitionDate=h,a[Hg]=!0;var w=[b,h];return w}function f(b){var h=31536e3;a[cp]=o.set(i(),b,h)}if(!a.id){a.id=d();var m=A(a.id);f(m[fp](e[NA]));var v=t[$c]&&t[$c]()?t[$c]()+"ai_session":"ai_session";Xle(r,v)}a[Ka]=t[Ka]?t[Ka]():void 0;var p=o.get(e[vy]);if(p){p=decodeURI(p);var y=p.split(e[NA]);y[0]&&(a[td]=y[0]),y[Zg]>1&&y[1]&&(a[Ka]=y[1])}a.setAuthenticatedUserContext=function(b,h,w){w===void 0&&(w=!1);var x=!Q5(b)||h&&!Q5(h);if(x){he(r,2,60,"Setting auth user context failed. User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.",!0);return}a[td]=b;var k=a[td];h&&(a[Ka]=h,k=[a[td],a.accountId][fp](e[NA])),w&&o.set(e[vy],encodeURI(k))},a.clearAuthenticatedUserContext=function(){a[td]=null,a[Ka]=null,o.del(e[vy])},a[Ug]=function(b){if(a.id!==b||!a[cp]){var h=b||d(),w=A(h);f(w[fp](e[NA]))}}})}return e.cookieSeparator="|",e.userCookieName="ai_user",e.authUserCookieName="ai_authUser",e}(),hv="ext",bv="tags";function Gl(e,t){e&&e[t]&&fl(e[t])[Zg]===0&&delete e[t]}var fue=function(){function e(t,n,r){var o=this,i=t.logger;this.appId=function(){return null},this[dp]=function(){return null},Lt(e,this,function(a){if(a.application=new oue,a.internal=new sue(n),t0()){a[Wg]=new due(n,t),a.device=new iue,a.location=new cue,a.user=new Aue(n,t);var s=void 0,c=void 0,l;r&&(s=r.getTraceId(),c=r.getSpanId(),l=r.getName()),a[ix]=new uue(s,c,l,i),a.session=new C7}a[dp]=function(){var d=a.session,A=null;if(d&&Fe(d.id))A=d.id;else{var f=(a[Wg]||{})[ed];A=f&&Fe(f.id)?f.id:null}return A},a[b7]=function(d,A){pt(Nn(d.ext,Vr.AppExt),"sesId",a[dp](),Fe)},a[S7]=function(d,A){pt(d.ext,Vr.OSExt,a.os)},a[y7]=function(d,A){var f=a.application;if(f){var m=Nn(d,bv);pt(m,Et.applicationVersion,f.ver,Fe),pt(m,Et.applicationBuild,f.build,Fe)}},a[w7]=function(d,A){var f=a.device;if(f){var m=Nn(Nn(d,hv),Vr.DeviceExt);pt(m,"localId",f.id,Fe),pt(m,"ip",f.ip,Fe),pt(m,"model",f.model,Fe),pt(m,"deviceClass",f.deviceClass,Fe)}},a[N7]=function(d,A){var f=a.internal;if(f){var m=Nn(d,bv);pt(m,Et.internalAgentVersion,f.agentVersion,Fe),pt(m,Et.internalSdkVersion,f.sdkVersion,Fe),(d.baseType===pm.dataType||d.baseType===Ds.dataType)&&(pt(m,Et.internalSnippet,f.snippetVer,Fe),pt(m,Et.internalSdkSrc,f.sdkSrc,Fe))}},a[j7]=function(d,A){var f=o.location;f&&pt(Nn(d,bv,[]),Et.locationIp,f.ip,Fe)},a[x7]=function(d,A){var f=a[ix];if(f){var m=Nn(Nn(d,hv),Vr.TraceExt,{traceID:void 0,parentID:void 0});pt(m,"traceID",f.traceID,Fe,ge),pt(m,"name",f.name,Fe,ge),pt(m,"parentID",f.parentID,Fe,ge)}},a.applyWebContext=function(d,A){var f=o.web;f&&pt(Nn(d,hv),Vr.WebExt,f)},a[k7]=function(d,A){var f=a.user;if(f){var m=Nn(d,bv,[]);pt(m,Et.userAccountId,f[Ka],Fe);var v=Nn(Nn(d,hv),Vr.UserExt);pt(v,"id",f.id,Fe),pt(v,"authId",f[td],Fe)}},a.cleanUp=function(d,A){var f=d.ext;f&&(Gl(f,Vr.DeviceExt),Gl(f,Vr.UserExt),Gl(f,Vr.WebExt),Gl(f,Vr.OSExt),Gl(f,Vr.AppExt),Gl(f,Vr.TraceExt))}})}return e.__ieDyn=1,e}(),mue=function(e){Da(t,e);function t(){var n=e.call(this)||this;n.priority=110,n.identifier=db;var r,o,i;return Lt(t,n,function(a,s){c(),a.initialize=function(A,f,m,v){s.initialize(A,f,m,v),l(A)},a.processTelemetry=function(A,f){if(!ge(A)){f=a._getTelCtx(f),A.name===Ds.envelopeType&&f.diagLog().resetInternalMessageCount();var m=a.context||{};m.session&&typeof a.context.session.id!="string"&&m[Wg]&&m[Wg][Ug]();var v=m.user;if(v&&!v[cp]&&v[Ug](m.user.id),d(A,f),v&&v[Hg]){v[Hg]=!1;var p=new pm(72,(Ma()||{}).userAgent||"");Hce(f.diagLog(),1,p)}a.processNext(A,f)}},a._doTeardown=function(A,f){var m=(A||{}).core();if(m&&m[my]){var v=m[my](!1);v===o&&m.setTraceCtx(i)}c()};function c(){r=null,o=null,i=null}function l(A){var f=a.identifier,m=a.core,v=Hi(null,A,m),p=t.getDefaultConfig();r=r||{},_t(p,function(y,b){r[y]=function(){return v.getConfig(f,y,b())}}),i=m[my](!1),a.context=new fue(m,r,i),o=_S(a.context[ix],i),m.setTraceCtx(o),a.context.appId=function(){var y=m.getPlugin(H9);return y?y.plugin._appId:null},a._extConfig=r}function d(A,f){Nn(A,"tags",[]),Nn(A,"ext",{});var m=a.context;m[b7](A,f),m[y7](A,f),m[w7](A,f),m[x7](A,f),m[k7](A,f),m[S7](A,f),m.applyWebContext(A,f),m[j7](A,f),m[N7](A,f),m.cleanUp(A,f)}}),n}return t.getDefaultConfig=function(){var n,r,o=null,i=(n={instrumentationKey:function(){return r}},n[Ka]=function(){return o},n.sessionRenewalMs=function(){return 30*60*1e3},n.samplingPercentage=function(){return 100},n.sessionExpirationMs=function(){return 24*60*60*1e3},n[ax]=function(){return o},n[lp]=function(){return o},n.isBrowserLinkTrackingEnabled=function(){return!1},n.appId=function(){return o},n[dp]=function(){return o},n[$c]=function(){return r},n[up]=function(){return r},n[Ap]=function(){return r},n[km]=function(){return 22},n[Sm]=function(){return o},n);return i},t}(o0),T7="AuthenticatedUserContext",qu="track",sx="snippet",vue="getCookieMgr",pue="startTrackPage",gue="stopTrackPage",py="flush",hue="startTrackEvent",bue="stopTrackEvent",yue="addTelemetryInitializer",$5="pollInternalLogs",gy="getPlugin",hy="evtNamespace",wue=qu+"Event",xue=qu+"Trace",kue=qu+"Metric",Sue=qu+"PageView",jue=qu+"Exception",Nue=qu+"DependencyData",Cue="set"+T7,Tue="clear"+T7,Iue="updateSnippetDefinitions",Pue="loadAppInsights",e4="endpointUrl",yv="diagnosticLogInterval",Due="disableFlushOnBeforeUnload",Mue="disableFlushOnUnload",Za="config",Oo="context",wv="push",by="version",pc="queue",yy="connectionString",t4="instrumentationKey",xv="appInsights",n4="disableIkeyDeprecationMessage",r4="getTransmissionControls",CA="onunloadFlush",o4="addHousekeepingBeforeUnload",kv="indexOf",cx,i4=[sx,"dependencies","properties","_snippetVersion","appInsightsNew","getSKUDefaults"],Rue=function(){function e(t){var n=this,r,o,i,a,s,c,l;Lt(e,this,function(d){b(),a=""+(t.sv||t[by]||""),t[pc]=t[pc]||[],t[by]=t[by]||2;var A=t[Za]||{};if(A[yy]){var f=rde(A[yy]),m=f.ingestionendpoint;A[e4]=m?m+xf:A[e4],A[t4]=f.instrumentationkey||A[t4]}d[xv]=new Cde,o=new mue,r=new rue,i=new Yde,l=new zle,d.core=l;var v=ge(A[n4])?!0:A[n4];!A[yy]&&!v&&he(l.logger,1,106,"Instrumentation key support will end soon, see aka.ms/IkeyMigrate"),d[sx]=t,d[Za]=A,p(),d[py]=function(h){h===void 0&&(h=!0),Sg(l,function(){return"AISKU.flush"},function(){Me(l[r4](),function(w){Me(w,function(x){x[py](h)})})},null,h)},d[CA]=function(h){h===void 0&&(h=!0),Me(l[r4](),function(w){Me(w,function(x){x[CA]?x[CA]():x[py](h)})})},d[Pue]=function(h,w,x){h===void 0&&(h=!1);function k(S){if(S){var N="";ge(a)||(N+=a),h&&(N+=".lg"),d[Oo]&&d[Oo].internal&&(d[Oo].internal.snippetVer=N||"-"),_t(d,function(C,M){Fe(C)&&!Xe(M)&&C&&C[0]!=="_"&&ii(i4,C)===-1&&(S[C]=M)})}}return h&&d[Za].extensions&&d[Za].extensions.length>0&&lr("Extensions not allowed in legacy mode"),Sg(d.core,function(){return"AISKU.loadAppInsights"},function(){var S=[];S[wv](i),S[wv](o),S[wv](r),S[wv](d[xv]),l.initialize(d[Za],S,w,x),d[Oo]=o[Oo],cx&&d[Oo]&&(d[Oo].internal.sdkSrc=cx),k(d[sx]),d.emptyQueue(),d[$5](),d[o4](n)}),d},d[Iue]=function(h){gce(h,d,function(w){return w&&ii(i4,w)===-1})},d.emptyQueue=function(){try{if(Dt(d.snippet[pc])){for(var h=d.snippet[pc].length,w=0;w0?d[Za][yv]:1e4}function y(){return r}function b(){s=Ra("AISKU"),c=null,r=null,o=null,i=null,a=null}})}return e.prototype.addDependencyInitializer=function(t){return null},e}();(function(){var e=null,t=!1,n=["://js.monitor.azure.com/","://az416426.vo.msecnd.net/"];try{var r=(document||{}).currentScript;r&&(e=r.src)}catch{}if(e)try{var o=e.toLowerCase();if(o){for(var i="",a=0;ae.path===window.location.pathname)||_e.Home,appInsights:(()=>{if(Vg)return null;if(!APP_INSIGHTS_INSTRUMENTATION_KEY)return console.warn("App Insights Instrumentation Key was not found"),null;const e=new Rue({config:{instrumentationKey:APP_INSIGHTS_INSTRUMENTATION_KEY}});return e.loadAppInsights(),e})()},Bue=(e,t)=>Use(e,n=>{switch(t.type){case"SetActiveIncidents":{n.incidents={...n.incidents,activeIncidents:t.activeIncidents};break}case"SetClosedIncidents":{n.incidents={...n.incidents,closedIncidents:t.closedIncidents};break}case"SetMajorIncidents":{n.incidents={...n.incidents,activeMajorIncidents:t.activeMajorIncidents,recentlyResolvedMajorIncidents:t.recentlyResolvedMajorIncidents};break}case"SetAccounts":{n.accounts=t.accounts;break}case"SetContacts":{n.contacts=t.contacts;break}case"SetProducts":{n.products=t.products;break}case"SetOrders":{n.orders=t.orders;break}case"SetNetworkOrders":{n.networkOrders=t.networkOrders;break}case"SetProjects":{n.projects=t.projects;break}case"SetCustomerAssets":{n.customerAssets=t.customerAssets;break}case"SetInvoices":{n.invoices=t.invoices;break}case"SetBlogPosts":{n.blogPosts=t.blogPosts;break}case"SetPortalMajorIncidentUpdates":{n.portalMajorIncidentUpdates=t.portalMajorIncidentUpdates;break}case"SetTermsAndConditionsAcceptanceDate":{n.termsAndConditionsAcceptanceDate=t.termsAndConditionsAcceptanceDate;break}case"SetFeedbackPaneIsShown":{n.feedbackPaneIsShown=t.feedbackPaneIsShown;break}case"SetCurrentPage":{n.currentPage=t.currentPage;break}case"SetDirtyBannerSettings":{n.dirtyBannerSettings=t.dirtyBannerSettings;break}case"AddLatestError":{n.latestErrors=[...n.latestErrors,t.error];break}case"AddNotification":{n.notifications=[...n.notifications,{...t.notification,id:Uw()}];break}case"RemoveNotification":{n.notifications=n.notifications.filter(r=>r.id!==t.id);break}case"ClearLatestErrors":{n.latestErrors=[];break}default:throw new Error(`No behaviour for the action type '${t}' has been defined in the reducer`)}}),Fue=wy.createRoot(document.getElementById("root"));var a4;const Oue=Ise((e,t)=>e?Bue(e,t):Eue,(a4=window.__REDUX_DEVTOOLS_EXTENSION__)==null?void 0:a4.call(window)),Lue={10:"#020304",20:"#10191D",30:"#172A31",40:"#1B3740",50:"#1F4451",60:"#225262",70:"#246073",80:"#266F85",90:"#287E97",100:"#298DAA",110:"#299DBD",120:"#33ACCE",130:"#61B9D6",140:"#83C6DE",150:"#A1D3E5",160:"#BEE0ED"},Wue={...lV(Lue),colorBrandForeground1:"#000",fontFamilyBase:"inherit",fontSizeBase100:"inherit",fontSizeBase200:"inherit",fontSizeBase300:"inherit",fontSizeBase400:"inherit",fontSizeBase500:"inherit",fontSizeBase600:"inherit",fontSizeHero700:"inherit",fontSizeHero800:"inherit",fontSizeHero900:"inherit",fontSizeHero1000:"inherit",lineHeightBase100:"inherit",lineHeightBase200:"inherit",lineHeightBase300:"inherit",lineHeightBase400:"inherit",lineHeightBase500:"inherit",lineHeightBase600:"inherit",lineHeightHero700:"inherit",lineHeightHero800:"inherit",lineHeightHero900:"inherit",lineHeightHero1000:"inherit"};Fue.render(u.jsx(BF,{store:Oue,children:u.jsx(ht.StrictMode,{children:u.jsx(zP,{window,children:u.jsx(y8,{theme:Wue,children:u.jsx(Cse,{})})})})})); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXBhZ2UtYXBwbGljYXRpb24tc2NyaXB0cy5qcyIsInNvdXJjZXMiOlsiLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL2hpc3RvcnkvaW5kZXguanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3Qtcm91dGVyLWRvbS9ub2RlX21vZHVsZXMvcmVhY3Qtcm91dGVyL2luZGV4LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJvdXRlci1kb20vaW5kZXguanMiLCIuLi8uLi8uLi9CaXN0ZWNoLlR5cGVTY3JpcHQuSGVscGVycy9Ycm1IZWxwZXIvSGVscGVycy9BcnJheUV4dGVuc2lvbnMudHMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3Qtcm91dGVyLXByb21wdC9kaXN0L3JlYWN0LXJvdXRlci1wcm9tcHQuY2pzLnByb2R1Y3Rpb24ubWluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJvdXRlci1wcm9tcHQvZGlzdC9pbmRleC5qcyIsIi4uL25vZGVfbW9kdWxlcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS9janMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUtc2hpbS5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uL25vZGVfbW9kdWxlcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS9zaGltL2luZGV4LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL2Nqcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS1zaGltL3dpdGgtc2VsZWN0b3IucHJvZHVjdGlvbi5taW4uanMiLCIuLi9ub2RlX21vZHVsZXMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvc2hpbS93aXRoLXNlbGVjdG9yLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2VzL3V0aWxzL2JhdGNoLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2VzL2NvbXBvbmVudHMvQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1yZWR1eC9lcy9ob29rcy91c2VSZWR1eENvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVkdXgvZXMvdXRpbHMvdXNlU3luY0V4dGVybmFsU3RvcmUuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVkdXgvZXMvaG9va3MvdXNlU2VsZWN0b3IuanMiLCIuLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcyIsIi4uL25vZGVfbW9kdWxlcy9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy9kaXN0L2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzLmNqcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1yZWR1eC9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2VzL3V0aWxzL1N1YnNjcmlwdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1yZWR1eC9lcy91dGlscy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZHV4L2VzL2NvbXBvbmVudHMvUHJvdmlkZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVkdXgvZXMvaG9va3MvdXNlU3RvcmUuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVkdXgvZXMvaG9va3MvdXNlRGlzcGF0Y2guanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVkdXgvZXMvaW5kZXguanMiLCIuLi9zcmMvRW51bXMvQmFzZVBlcm1pc3Npb25MZXZlbC50cyIsIi4uL3NyYy9FbnVtcy9Db250YWN0U3RhdGVDb2RlLnRzIiwiLi4vc3JjL0VudW1zL1BvcnRhbENvbnRhY3RUeXBlLnRzIiwiLi4vc3JjL0VudW1zL0FjY291bnRTaXRlVHlwZS50cyIsIi4uL3NyYy9FbnVtcy9BY2NvdW50U3RhdGVDb2RlLnRzIiwiLi4vc3JjL01vY2tEYXRhL01vY2tBY2NvdW50RGF0YS50cyIsIi4uL3NyYy9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsLnRzIiwiLi4vc3JjL0VudW1zL0NvbnRhY3RQZXJtaXNzaW9uTGV2ZWwudHMiLCIuLi9zcmMvRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWwudHMiLCIuLi9zcmMvRW51bXMvSW52b2ljZVBlcm1pc3Npb25MZXZlbC50cyIsIi4uL3NyYy9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsLnRzIiwiLi4vc3JjL01vY2tEYXRhL01vY2tDb250YWN0RGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrQXV0aGVudGljYXRlZFVzZXIudHMiLCIuLi9zcmMvSG9va3MvdXNlVXNlck1ldGFkYXRhLnRzIiwiLi4vc3JjL0NvbXBvbmVudHMvSW1hZ2UudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvSGVhZGVyLnRzeCIsIi4uL3NyYy9FbnVtcy9Qcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcudHMiLCIuLi9zcmMvRW51bXMvQ2FzZVR5cGUudHMiLCIuLi9zcmMvRW51bXMvSW5jaWRlbnRTdGF0dXNDb2RlLnRzIiwiLi4vc3JjL0VudW1zL0Nhc2VQcmlvcml0eUNvZGUudHMiLCIuLi9zcmMvQ29tcG9uZW50cy9CcmVhZGNydW1iLnRzeCIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1pY29ucy9saWIvZXNtL2ljb25Db250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWljb25zL2xpYi9lc20vaWNvbkJhc2UuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvYmkvaW5kZXguZXNtLmpzIiwiLi4vc3JjL0hvb2tzL3VzZUFwcEluc2lnaHRzQ3VzdG9tUHJvcGVydGllcy50c3giLCIuLi9zcmMvSG9va3MvdXNlQXBwSW5zaWdodHMudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvSW5mb0NhcmQudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvRXJyb3JCb3VuZGFyeS50c3giLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9zaG9ydGhhbmRzL2dlbmVyYXRlU3R5bGVzLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvYm9yZGVyV2lkdGguZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9ib3JkZXJTdHlsZS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9zaG9ydGhhbmRzL2JvcmRlckNvbG9yLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvdXRpbHMuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9ib3JkZXIuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9ib3JkZXJMZWZ0LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvYm9yZGVyQm90dG9tLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvYm9yZGVyUmlnaHQuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9ib3JkZXJUb3AuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9ib3JkZXJSYWRpdXMuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9mbGV4LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvZ2FwLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvZ3JpZEFyZWEuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9tYXJnaW4uZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9tYXJnaW5CbG9jay5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9zaG9ydGhhbmRzL21hcmdpbklubGluZS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9zaG9ydGhhbmRzL3BhZGRpbmcuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9wYWRkaW5nQmxvY2suZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9wYWRkaW5nSW5saW5lLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvb3ZlcmZsb3cuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy9pbnNldC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9zaG9ydGhhbmRzL291dGxpbmUuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvc2hvcnRoYW5kcy90cmFuc2l0aW9uLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Nob3J0aGFuZHMvdGV4dERlY29yYXRpb24uZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvY29uc3RhbnRzLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9oYXNoL2Rpc3QvZW1vdGlvbi1oYXNoLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvaGFzaFNlcXVlbmNlLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvcmVkdWNlVG9DbGFzc05hbWVGb3JTbG90cy5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9tZXJnZUNsYXNzZXMuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvcnVudGltZS91dGlscy9ub3JtYWxpemVDU1NCdWNrZXRFbnRyeS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9yZW5kZXJlci9jcmVhdGVJc29tb3JwaGljU3R5bGVTaGVldC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9yZW5kZXJlci9nZXRTdHlsZVNoZWV0Rm9yQnVja2V0LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3JlbmRlcmVyL3NhZmVJbnNlcnRSdWxlLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3JlbmRlcmVyL2NyZWF0ZURPTVJlbmRlcmVyLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL2luc2VydGlvbkZhY3RvcnkuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3J0bC1jc3MtanMvZGlzdC9lc20vY29udmVydC05NzY4YTk2NS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvaHlwaGVuYXRlUHJvcGVydHkuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvcnVudGltZS91dGlscy9ub3JtYWxpemVOZXN0ZWRQcm9wZXJ0eS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9FbnVtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVXRpbGl0eS5qcyIsIi4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1Rva2VuaXplci5qcyIsIi4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1BhcnNlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1NlcmlhbGl6ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9NaWRkbGV3YXJlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvcnVudGltZS9zdHlsaXMvZ2xvYmFsUGx1Z2luLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvc3R5bGlzL3ByZWZpeGVyUGx1Z2luLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvc3R5bGlzL2lzQXRSdWxlRWxlbWVudC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3N0eWxpcy9zb3J0Q2xhc3Nlc0luQXRSdWxlc1BsdWdpbi5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL2NvbXBpbGVDU1NSdWxlcy5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL2NvbXBpbGVBdG9taWNDU1NSdWxlLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvY3NzaWZ5T2JqZWN0LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvY29tcGlsZUtleWZyYW1lQ1NTLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvc2hvcnRoYW5kcy5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3V0aWxzL2dlbmVyYXRlQ29tYmluZWRNZWRpYVF1ZXJ5LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvaXNNZWRpYVF1ZXJ5U2VsZWN0b3IuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvcnVudGltZS91dGlscy9pc0xheWVyU2VsZWN0b3IuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvcnVudGltZS91dGlscy9pc05lc3RlZFNlbGVjdG9yLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvaXNTdXBwb3J0UXVlcnlTZWxlY3Rvci5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3V0aWxzL2lzQ29udGFpbmVyUXVlcnlTZWxlY3Rvci5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3V0aWxzL2lzT2JqZWN0LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvZ2V0U3R5bGVCdWNrZXROYW1lLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvaGFzaFByb3BlcnR5S2V5LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3J1bnRpbWUvdXRpbHMvaGFzaENsYXNzTmFtZS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3V0aWxzL2lzUmVzZXRWYWx1ZS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3V0aWxzL3RyaW1TZWxlY3Rvci5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9ydW50aW1lL3Jlc29sdmVTdHlsZVJ1bGVzLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL3Jlc29sdmVTdHlsZVJ1bGVzRm9yU2xvdHMuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL2NvcmUvbWFrZVN0eWxlcy5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9fX3N0eWxlcy5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvY29yZS9fX3Jlc2V0U3R5bGVzLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9jb3JlL2luZGV4LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9yZWFjdC91dGlscy9jYW5Vc2VET00uZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL3JlYWN0L3VzZUluc2VydGlvbkVmZmVjdC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvcmVhY3QvaW5zZXJ0aW9uRmFjdG9yeS5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvcmVhY3QvUmVuZGVyZXJDb250ZXh0LmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZ3JpZmZlbC9yZWFjdC9UZXh0RGlyZWN0aW9uQ29udGV4dC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvcmVhY3QvbWFrZVN0eWxlcy5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvQGdyaWZmZWwvcmVhY3QvX19zdHlsZXMuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BncmlmZmVsL3JlYWN0L19fcmVzZXRTdHlsZXMuZXNtLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wcm92aWRlci9saWIvY29tcG9uZW50cy9GbHVlbnRQcm92aWRlci9jcmVhdGVDU1NSdWxlRnJvbVRoZW1lLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL2NvbXBvc2UvY29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL2NvbXBvc2Uvc2xvdC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9jb21wb3NlL2lzUmVzb2x2ZWRTaG9ydGhhbmQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvY29tcG9zZS9pc1Nsb3QuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvdXRpbHMvcHJvcGVydGllcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi91dGlscy9nZXROYXRpdmVFbGVtZW50UHJvcHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvY29tcG9zZS9nZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvdXRpbHMvb21pdC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ob29rcy91c2VCcm93c2VyVGltZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cy9saWIvVGhlbWVDb250ZXh0L1RoZW1lQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzL2xpYi9UaGVtZUNsYXNzTmFtZUNvbnRleHQvVGhlbWVDbGFzc05hbWVDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMvbGliL1Rvb2x0aXBWaXNpYmlsaXR5Q29udGV4dC9Ub29sdGlwQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzL2xpYi9Qcm92aWRlckNvbnRleHQvUHJvdmlkZXJDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMvbGliL092ZXJyaWRlc0NvbnRleHQvT3ZlcnJpZGVzQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzL2xpYi9DdXN0b21TdHlsZUhvb2tzQ29udGV4dC9DdXN0b21TdHlsZUhvb2tzQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzL2xpYi9Qb3J0YWxNb3VudE5vZGVDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMvbGliL0Fubm91bmNlQ29udGV4dC9Bbm5vdW5jZUNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvaG9va3MvdXNlQW5pbWF0aW9uRnJhbWUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvaG9va3MvdXNlQ29udHJvbGxhYmxlU3RhdGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvc3NyL2NhblVzZURPTS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9zc3IvU1NSQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ob29rcy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2suanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvaG9va3MvdXNlRmlyc3RNb3VudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ob29rcy91c2VGb3JjZVVwZGF0ZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ob29rcy91c2VJZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ob29rcy91c2VNZXJnZWRSZWZzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL2hvb2tzL3VzZU9uU2Nyb2xsT3V0c2lkZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ob29rcy91c2VUaW1lb3V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL3V0aWxzL2dldFJUTFNhZmVLZXkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvdXRpbHMvbWVyZ2VDYWxsYmFja3MuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvdXRpbHMvaXNIVE1MRWxlbWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi90cmlnZ2VyL2lzRmx1ZW50VHJpZ2dlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi90cmlnZ2VyL2FwcGx5VHJpZ2dlclByb3BzVG9DaGlsZHJlbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi90cmlnZ2VyL2dldFRyaWdnZXJDaGlsZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzL2xpYi9ldmVudHMvbW91c2VUb3VjaEhlbHBlcnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvdXRpbHMvY3JlYXRlU2V0RnJvbUl0ZXJhYmxlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL3NlbGVjdGlvbi91c2VTZWxlY3Rpb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcy9saWIvdmlydHVhbFBhcmVudC9pc1ZpcnR1YWxFbGVtZW50LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL3ZpcnR1YWxQYXJlbnQvZ2V0UGFyZW50LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL3ZpcnR1YWxQYXJlbnQvZWxlbWVudENvbnRhaW5zLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMvbGliL3ZpcnR1YWxQYXJlbnQvc2V0VmlydHVhbFBhcmVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvbGliL3V0aWxzL2NyZWF0ZUNvbXBhdFNsb3RDb21wb25lbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9saWIvanN4L2NyZWF0ZUpTWC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvbGliL3V0aWxzL2dldE1ldGFkYXRhRnJvbVNsb3RDb21wb25lbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2xpYi91dGlscy9SdW50aW1lLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9saWIvanN4L2pzeFNsb3QuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2xpYi9qc3gvanN4c1Nsb3QuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2xpYi9qc3gtcnVudGltZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaWNvbnMvbGliL2NvbnRleHRzL0ljb25EaXJlY3Rpb25Db250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wcm92aWRlci9saWIvY29tcG9uZW50cy9GbHVlbnRQcm92aWRlci9yZW5kZXJGbHVlbnRQcm92aWRlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9rZXlib3JnL2Rpc3QvZXNtL2luZGV4LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3RhYnN0ZXIvZGlzdC90YWJzdGVyLmVzbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFic3Rlci9saWIvaG9va3MvdXNlVGFic3Rlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFic3Rlci9saWIvaG9va3MvdXNlVGFic3RlckF0dHJpYnV0ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXIvbGliL2hvb2tzL3VzZUFycm93TmF2aWdhdGlvbkdyb3VwLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyL2xpYi9ob29rcy91c2VGb2N1c2FibGVHcm91cC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFic3Rlci9saWIvaG9va3MvdXNlRm9jdXNGaW5kZXJzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyL2xpYi9mb2N1cy9jb25zdGFudHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXIvbGliL2ZvY3VzL2ZvY3VzVmlzaWJsZVBvbHlmaWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyL2xpYi9ob29rcy91c2VGb2N1c1Zpc2libGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXIvbGliL2ZvY3VzL2ZvY3VzV2l0aGluUG9seWZpbGwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXIvbGliL2hvb2tzL3VzZUZvY3VzV2l0aGluLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyL2xpYi9ob29rcy91c2VLZXlib3JnUmVmLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyL2xpYi9ob29rcy91c2VPbktleWJvYXJkTmF2aWdhdGlvbkNoYW5nZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFic3Rlci9saWIvaG9va3MvdXNlTW9kYWxBdHRyaWJ1dGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyL2xpYi9ob29rcy91c2VSZXN0b3JlRm9jdXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXIvbGliL2hvb2tzL3VzZVNldEtleWJvYXJkTmF2aWdhdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFic3Rlci9saWIvaG9va3MvdXNlRm9jdXNlZEVsZW1lbnRDaGFuZ2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3Rva2Vucy9saWIvZ2xvYmFsL2NvbG9ycy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvdG9rZW5zL2xpYi9nbG9iYWwvY29sb3JQYWxldHRlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL3NoYXJlZENvbG9yTmFtZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3Rva2Vucy9saWIvc3RhdHVzQ29sb3JNYXBwaW5nLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL2FsaWFzL2xpZ2h0Q29sb3JQYWxldHRlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL2FsaWFzL2xpZ2h0Q29sb3IuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3Rva2Vucy9saWIvZ2xvYmFsL2JvcmRlclJhZGl1cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvdG9rZW5zL2xpYi9nbG9iYWwvY3VydmVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL2dsb2JhbC9kdXJhdGlvbnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3Rva2Vucy9saWIvZ2xvYmFsL2ZvbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL2dsb2JhbC9zcGFjaW5ncy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvdG9rZW5zL2xpYi9nbG9iYWwvc3Ryb2tlV2lkdGhzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL3Rva2Vucy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvdG9rZW5zL2xpYi91dGlscy9zaGFkb3dzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS90b2tlbnMvbGliL3V0aWxzL2NyZWF0ZUxpZ2h0VGhlbWUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXByb3ZpZGVyL2xpYi9jb21wb25lbnRzL0ZsdWVudFByb3ZpZGVyL3VzZUZsdWVudFByb3ZpZGVyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcHJvdmlkZXIvbGliL2NvbXBvbmVudHMvRmx1ZW50UHJvdmlkZXIvdXNlRmx1ZW50UHJvdmlkZXJUaGVtZVN0eWxlVGFnLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wcm92aWRlci9saWIvY29tcG9uZW50cy9GbHVlbnRQcm92aWRlci91c2VGbHVlbnRQcm92aWRlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcHJvdmlkZXIvbGliL2NvbXBvbmVudHMvRmx1ZW50UHJvdmlkZXIvdXNlRmx1ZW50UHJvdmlkZXJDb250ZXh0VmFsdWVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wcm92aWRlci9saWIvY29tcG9uZW50cy9GbHVlbnRQcm92aWRlci9GbHVlbnRQcm92aWRlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvaW5kZXguanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3IvbGliL2NyZWF0ZUNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3IvbGliL3VzZUNvbnRleHRTZWxlY3Rvci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29udGV4dC1zZWxlY3Rvci9saWIvdXNlSGFzUGFyZW50Q29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkva2V5Ym9hcmQta2V5cy9saWIva2V5cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYXJpYS9saWIvYnV0dG9uL3VzZUFSSUFCdXR0b25Qcm9wcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYXJpYS9saWIvYWN0aXZlZGVzY2VuZGFudC9BY3RpdmVEZXNjZW5kYW50Q29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYXJpYS9saWIvYWN0aXZlZGVzY2VuZGFudC91c2VPcHRpb25XYWxrZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWFyaWEvbGliL2FjdGl2ZWRlc2NlbmRhbnQvY29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1hcmlhL2xpYi9hY3RpdmVkZXNjZW5kYW50L3Njcm9sbEludG9WaWV3LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1hcmlhL2xpYi9hY3RpdmVkZXNjZW5kYW50L3VzZUFjdGl2ZURlc2NlbmRhbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi91dGlscy91c2VJY29uU3RhdGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi91dGlscy9jcmVhdGVGbHVlbnRJY29uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1pY29ucy9saWIvaWNvbnMvY2h1bmstMC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaWNvbnMvbGliL2ljb25zL2NodW5rLTEuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi9pY29ucy9jaHVuay0yLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1pY29ucy9saWIvaWNvbnMvY2h1bmstMy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaWNvbnMvbGliL2ljb25zL2NodW5rLTQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi9zaXplZEljb25zL2NodW5rLTAuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi9zaXplZEljb25zL2NodW5rLTMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi9zaXplZEljb25zL2NodW5rLTUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi9zaXplZEljb25zL2NodW5rLTYuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWljb25zL2xpYi9zaXplZEljb25zL2NodW5rLTExLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1pY29ucy9saWIvc2l6ZWRJY29ucy9jaHVuay0xMy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaWNvbnMvbGliL3V0aWxzL2NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaWNvbnMvbGliL3V0aWxzL2J1bmRsZUljb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1vdGlvbi9saWIvbW90aW9ucy9tb3Rpb25Ub2tlbnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1vdGlvbi9saWIvaG9va3MvdXNlQW5pbWF0ZUF0b21zLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24vbGliL2hvb2tzL3VzZU1vdGlvbkltcGVyYXRpdmVSZWYuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1vdGlvbi9saWIvaG9va3MvdXNlSXNSZWR1Y2VkTW90aW9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24vbGliL3V0aWxzL2dldENoaWxkRWxlbWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbW90aW9uL2xpYi9jb250ZXh0cy9QcmVzZW5jZUdyb3VwQ2hpbGRDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24vbGliL2hvb2tzL3VzZU1vdW50ZWRTdGF0ZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbW90aW9uL2xpYi9mYWN0b3JpZXMvY3JlYXRlUHJlc2VuY2VDb21wb25lbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1vdGlvbi9saWIvZmFjdG9yaWVzL2NyZWF0ZVByZXNlbmNlQ29tcG9uZW50VmFyaWFudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL19kZWZpbmVfcHJvcGVydHkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1vdGlvbi9saWIvc2xvdHMvcHJlc2VuY2VNb3Rpb25TbG90LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24tY29tcG9uZW50cy1wcmV2aWV3L2xpYi9jb21wb25lbnRzL0NvbGxhcHNlL0NvbGxhcHNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1hdmF0YXIvbGliL2NvbXBvbmVudHMvQXZhdGFyL3JlbmRlckF2YXRhci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYXZhdGFyL2xpYi91dGlscy9nZXRJbml0aWFscy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYmFkZ2UvbGliL2NvbXBvbmVudHMvQmFkZ2UvdXNlQmFkZ2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWJhZGdlL2xpYi9jb21wb25lbnRzL0JhZGdlL3JlbmRlckJhZGdlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1iYWRnZS9saWIvY29tcG9uZW50cy9QcmVzZW5jZUJhZGdlL3ByZXNlbmNlSWNvbnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWJhZGdlL2xpYi9jb21wb25lbnRzL1ByZXNlbmNlQmFkZ2UvdXNlUHJlc2VuY2VCYWRnZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYmFkZ2UvbGliL2NvbXBvbmVudHMvUHJlc2VuY2VCYWRnZS91c2VQcmVzZW5jZUJhZGdlU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYmFkZ2UvbGliL2NvbXBvbmVudHMvUHJlc2VuY2VCYWRnZS9QcmVzZW5jZUJhZGdlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1hdmF0YXIvbGliL2NvbnRleHRzL0F2YXRhckNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWF2YXRhci9saWIvY29tcG9uZW50cy9BdmF0YXIvdXNlQXZhdGFyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1hdmF0YXIvbGliL2NvbXBvbmVudHMvQXZhdGFyL3VzZUF2YXRhclN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWF2YXRhci9saWIvY29tcG9uZW50cy9BdmF0YXIvQXZhdGFyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvY3JlYXRlVmlydHVhbEVsZW1lbnRGcm9tQ2xpY2suanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nL2xpYi9jb25zdGFudHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3V0aWxzL2Rpc3QvZmxvYXRpbmctdWkudXRpbHMubWpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9jb3JlL2Rpc3QvZmxvYXRpbmctdWkuY29yZS5tanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3V0aWxzL2Rpc3QvZmxvYXRpbmctdWkudXRpbHMuZG9tLm1qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLm1qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL3BhcnNlRmxvYXRpbmdVSVBsYWNlbWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL2dldFNjcm9sbFBhcmVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL2dldEJvdW5kYXJ5LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvdXRpbHMvbWVyZ2VBcnJvd09mZnNldC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL3RvRmxvYXRpbmdVSVBhZGRpbmcuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nL2xpYi91dGlscy90b0Zsb2F0aW5nVUlQbGFjZW1lbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nL2xpYi91dGlscy9mcm9tRmxvYXRpbmdVSVBsYWNlbWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL3Jlc29sdmVQb3NpdGlvbmluZ1Nob3J0aGFuZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL3VzZUNhbGxiYWNrUmVmLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvdXRpbHMvZGVib3VuY2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nL2xpYi91dGlscy93cml0ZUFycm93VXBkYXRlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL3dyaXRlQ29udGFpbmVydXBkYXRlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3V0aWxzL25vcm1hbGl6ZUF1dG9TaXplLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvbWlkZGxld2FyZS9jb3ZlclRhcmdldC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL21pZGRsZXdhcmUvZmxpcC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL21pZGRsZXdhcmUvaW50ZXJzZWN0aW5nLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvbWlkZGxld2FyZS9tYXhTaXplLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvdXRpbHMvZ2V0RmxvYXRpbmdVSU9mZnNldC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL21pZGRsZXdhcmUvb2Zmc2V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvbWlkZGxld2FyZS9zaGlmdC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL21pZGRsZXdhcmUvbWF0Y2hUYXJnZXRTaXplLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvdXRpbHMvbGlzdFNjcm9sbFBhcmVudHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nL2xpYi91dGlscy9jcmVhdGVSZXNpemVPYnNlcnZlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL2NyZWF0ZVBvc2l0aW9uTWFuYWdlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcvbGliL3VzZVBvc2l0aW9uaW5nLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZy9saWIvdXNlUG9zaXRpb25pbmdNb3VzZVRhcmdldC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9wb3Zlci9saWIvcG9wb3ZlckNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcG92ZXIvbGliL2NvbXBvbmVudHMvUG9wb3ZlclN1cmZhY2UvdXNlUG9wb3ZlclN1cmZhY2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcnRhbC9saWIvdXRpbHMvdG9Nb3VudE5vZGVQcm9wcy5qcyIsIi4uL25vZGVfbW9kdWxlcy91c2UtZGlzcG9zYWJsZS9saWIvaW5kZXguanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcnRhbC9saWIvY29tcG9uZW50cy9Qb3J0YWwvdXNlUG9ydGFsTW91bnROb2RlU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9ydGFsL2xpYi9jb21wb25lbnRzL1BvcnRhbC91c2VQb3J0YWxNb3VudE5vZGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcnRhbC9saWIvY29tcG9uZW50cy9Qb3J0YWwvdXNlUG9ydGFsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3J0YWwvbGliL2NvbXBvbmVudHMvUG9ydGFsL3JlbmRlclBvcnRhbC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9ydGFsL2xpYi9jb21wb25lbnRzL1BvcnRhbC9Qb3J0YWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcG92ZXIvbGliL2NvbXBvbmVudHMvUG9wb3ZlclN1cmZhY2UvcmVuZGVyUG9wb3ZlclN1cmZhY2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcG92ZXIvbGliL2NvbXBvbmVudHMvUG9wb3ZlclN1cmZhY2UvdXNlUG9wb3ZlclN1cmZhY2VTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1BvcG92ZXJTdXJmYWNlL1BvcG92ZXJTdXJmYWNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1BvcG92ZXIvY29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1BvcG92ZXIvdXNlUG9wb3Zlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcG9wb3Zlci9saWIvY29tcG9uZW50cy9Qb3BvdmVyL3JlbmRlclBvcG92ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBvcG92ZXIvbGliL2NvbXBvbmVudHMvUG9wb3Zlci9Qb3BvdmVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1BvcG92ZXJUcmlnZ2VyL3VzZVBvcG92ZXJUcmlnZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1BvcG92ZXJUcmlnZ2VyL3JlbmRlclBvcG92ZXJUcmlnZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1BvcG92ZXJUcmlnZ2VyL1BvcG92ZXJUcmlnZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1idXR0b24vbGliL2NvbXBvbmVudHMvQnV0dG9uL3JlbmRlckJ1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYnV0dG9uL2xpYi9jb250ZXh0cy9CdXR0b25Db250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1idXR0b24vbGliL2NvbXBvbmVudHMvQnV0dG9uL3VzZUJ1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtYnV0dG9uL2xpYi9jb21wb25lbnRzL0J1dHRvbi91c2VCdXR0b25TdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1idXR0b24vbGliL2NvbXBvbmVudHMvQnV0dG9uL0J1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZmllbGQvbGliL2NvbnRleHRzL0ZpZWxkQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZmllbGQvbGliL2NvbnRleHRzL3VzZUZpZWxkQ29udHJvbFByb3BzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1sYWJlbC9saWIvY29tcG9uZW50cy9MYWJlbC91c2VMYWJlbC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbGFiZWwvbGliL2NvbXBvbmVudHMvTGFiZWwvcmVuZGVyTGFiZWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWxhYmVsL2xpYi9jb21wb25lbnRzL0xhYmVsL3VzZUxhYmVsU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbGFiZWwvbGliL2NvbXBvbmVudHMvTGFiZWwvTGFiZWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNoZWNrYm94L2xpYi9jb21wb25lbnRzL0NoZWNrYm94L3VzZUNoZWNrYm94LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jaGVja2JveC9saWIvY29tcG9uZW50cy9DaGVja2JveC9yZW5kZXJDaGVja2JveC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2hlY2tib3gvbGliL2NvbXBvbmVudHMvQ2hlY2tib3gvdXNlQ2hlY2tib3hTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jaGVja2JveC9saWIvY29tcG9uZW50cy9DaGVja2JveC9DaGVja2JveC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbnRleHRzL0NvbWJvYm94Q29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbnRleHRzL0xpc3Rib3hDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29udGV4dHMvdXNlQ29tYm9ib3hDb250ZXh0VmFsdWVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29udGV4dHMvdXNlTGlzdGJveENvbnRleHRWYWx1ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi91dGlscy9kcm9wZG93bktleUFjdGlvbnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi91dGlscy91c2VPcHRpb25Db2xsZWN0aW9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvdXRpbHMvdXNlU2VsZWN0aW9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29tcG9uZW50cy9PcHRpb24vdXNlT3B0aW9uU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbXBvbmVudHMvTGlzdGJveC91c2VMaXN0Ym94LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29tcG9uZW50cy9MaXN0Ym94L3JlbmRlckxpc3Rib3guanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi9jb21wb25lbnRzL0xpc3Rib3gvdXNlTGlzdGJveFN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi9jb21wb25lbnRzL0xpc3Rib3gvTGlzdGJveC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbXBvbmVudHMvT3B0aW9uL3VzZU9wdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbXBvbmVudHMvT3B0aW9uL3JlbmRlck9wdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbXBvbmVudHMvT3B0aW9uL09wdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL3V0aWxzL3VzZUNvbWJvYm94QmFzZVN0YXRlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvdXRpbHMvdXNlQ29tYm9ib3hQb3NpdGlvbmluZy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL3V0aWxzL3VzZUxpc3Rib3hTbG90LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvdXRpbHMvdXNlVHJpZ2dlclNsb3QuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi9jb21wb25lbnRzL0NvbWJvYm94L3VzZUlucHV0VHJpZ2dlclNsb3QuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi9jb21wb25lbnRzL0NvbWJvYm94L3VzZUNvbWJvYm94LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29tcG9uZW50cy9Db21ib2JveC9yZW5kZXJDb21ib2JveC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbXBvbmVudHMvQ29tYm9ib3gvdXNlQ29tYm9ib3hTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29tcG9uZW50cy9Db21ib2JveC9Db21ib2JveC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY29tYm9ib3gvbGliL2NvbXBvbmVudHMvT3B0aW9uR3JvdXAvdXNlT3B0aW9uR3JvdXAuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi9jb21wb25lbnRzL09wdGlvbkdyb3VwL3JlbmRlck9wdGlvbkdyb3VwLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jb21ib2JveC9saWIvY29tcG9uZW50cy9PcHRpb25Hcm91cC91c2VPcHRpb25Hcm91cFN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94L2xpYi9jb21wb25lbnRzL09wdGlvbkdyb3VwL09wdGlvbkdyb3VwLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1pbnB1dC9saWIvY29tcG9uZW50cy9JbnB1dC91c2VJbnB1dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaW5wdXQvbGliL2NvbXBvbmVudHMvSW5wdXQvcmVuZGVySW5wdXQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWlucHV0L2xpYi9jb21wb25lbnRzL0lucHV0L3VzZUlucHV0U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtaW5wdXQvbGliL2NvbXBvbmVudHMvSW5wdXQvSW5wdXQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lbnUvbGliL2NvbnRleHRzL21lbnVDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZW51L2xpYi9jb250ZXh0cy9tZW51VHJpZ2dlckNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lbnUvbGliL2NvbnRleHRzL21lbnVMaXN0Q29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvdXRpbHMvdXNlT25NZW51RW50ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lbnUvbGliL3V0aWxzL3VzZUlzU3VibWVudS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51L3VzZU1lbnUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lbnUvbGliL2NvbXBvbmVudHMvTWVudS91c2VNZW51Q29udGV4dFZhbHVlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51L3JlbmRlck1lbnUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lbnUvbGliL2NvbXBvbmVudHMvTWVudS9NZW51LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZW51L2xpYi9jb21wb25lbnRzL01lbnVQb3BvdmVyL3VzZU1lbnVQb3BvdmVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZW51L2xpYi9jb21wb25lbnRzL01lbnVQb3BvdmVyL3VzZU1lbnVQb3BvdmVyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51UG9wb3Zlci9yZW5kZXJNZW51UG9wb3Zlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51UG9wb3Zlci9NZW51UG9wb3Zlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51VHJpZ2dlci91c2VNZW51VHJpZ2dlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51VHJpZ2dlci9yZW5kZXJNZW51VHJpZ2dlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVudS9saWIvY29tcG9uZW50cy9NZW51VHJpZ2dlci9NZW51VHJpZ2dlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcGVyc29uYS9saWIvY29tcG9uZW50cy9QZXJzb25hL3JlbmRlclBlcnNvbmEuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBlcnNvbmEvbGliL2NvbXBvbmVudHMvUGVyc29uYS91c2VQZXJzb25hLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1wZXJzb25hL2xpYi9jb21wb25lbnRzL1BlcnNvbmEvdXNlUGVyc29uYVN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXBlcnNvbmEvbGliL2NvbXBvbmVudHMvUGVyc29uYS9QZXJzb25hLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1yYWRpby9saWIvY29udGV4dHMvUmFkaW9Hcm91cENvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXJhZGlvL2xpYi9jb21wb25lbnRzL1JhZGlvL3JlbmRlclJhZGlvLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1yYWRpby9saWIvY29tcG9uZW50cy9SYWRpby91c2VSYWRpby5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtcmFkaW8vbGliL2NvbXBvbmVudHMvUmFkaW8vdXNlUmFkaW9TdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1yYWRpby9saWIvY29tcG9uZW50cy9SYWRpby9SYWRpby5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2tlbGV0b24vbGliL2NvbnRleHRzL1NrZWxldG9uQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2tlbGV0b24vbGliL2NvbXBvbmVudHMvU2tlbGV0b25JdGVtL3VzZVNrZWxldG9uSXRlbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2tlbGV0b24vbGliL2NvbXBvbmVudHMvU2tlbGV0b25JdGVtL3JlbmRlclNrZWxldG9uSXRlbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc2tlbGV0b24vbGliL2NvbXBvbmVudHMvU2tlbGV0b25JdGVtL3VzZVNrZWxldG9uSXRlbVN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXNrZWxldG9uL2xpYi9jb21wb25lbnRzL1NrZWxldG9uSXRlbS9Ta2VsZXRvbkl0ZW0uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXNwaW5uZXIvbGliL2NvbnRleHRzL1NwaW5uZXJDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1zcGlubmVyL2xpYi9jb21wb25lbnRzL1NwaW5uZXIvdXNlU3Bpbm5lci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc3Bpbm5lci9saWIvY29tcG9uZW50cy9TcGlubmVyL3JlbmRlclNwaW5uZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXNwaW5uZXIvbGliL2NvbXBvbmVudHMvU3Bpbm5lci91c2VTcGlubmVyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3Qtc3Bpbm5lci9saWIvY29tcG9uZW50cy9TcGlubmVyL1NwaW5uZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnMvbGliL2NvbXBvbmVudHMvVGFiTGlzdC9UYWJMaXN0Q29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFicy9saWIvY29tcG9uZW50cy9UYWIvdXNlVGFiLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzL2xpYi9jb21wb25lbnRzL1RhYi9yZW5kZXJUYWIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnMvbGliL2NvbXBvbmVudHMvVGFiL3VzZVRhYkFuaW1hdGVkSW5kaWNhdG9yLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFicy9saWIvY29tcG9uZW50cy9UYWIvdXNlVGFiU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFicy9saWIvY29tcG9uZW50cy9UYWIvVGFiLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzL2xpYi9jb21wb25lbnRzL1RhYkxpc3QvdXNlVGFiTGlzdC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFicy9saWIvY29tcG9uZW50cy9UYWJMaXN0L3JlbmRlclRhYkxpc3QuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYnMvbGliL2NvbXBvbmVudHMvVGFiTGlzdC91c2VUYWJMaXN0U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFicy9saWIvY29tcG9uZW50cy9UYWJMaXN0L3VzZVRhYkxpc3RDb250ZXh0VmFsdWVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJzL2xpYi9jb21wb25lbnRzL1RhYkxpc3QvVGFiTGlzdC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGV4dC9saWIvY29tcG9uZW50cy9UZXh0L3VzZVRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRleHQvbGliL2NvbXBvbmVudHMvVGV4dC9yZW5kZXJUZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZXh0L2xpYi9jb21wb25lbnRzL1RleHQvdXNlVGV4dFN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRleHQvbGliL2NvbXBvbmVudHMvVGV4dC9UZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL3V0aWxzL3VzZURpc2FibGVCb2R5U2Nyb2xsLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi91dGlscy91c2VEaXNhYmxlQm9keVNjcm9sbC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi91dGlscy91c2VGb2N1c0ZpcnN0RWxlbWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb250ZXh0cy9kaWFsb2dDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbnRleHRzL2RpYWxvZ1N1cmZhY2VDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nU3VyZmFjZU1vdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb21wb25lbnRzL0RpYWxvZy91c2VEaWFsb2cuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9Nb3Rpb25SZWZGb3J3YXJkZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2cvcmVuZGVyRGlhbG9nLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nL3VzZURpYWxvZ0NvbnRleHRWYWx1ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nVHJpZ2dlci91c2VEaWFsb2dUcmlnZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nVHJpZ2dlci9yZW5kZXJEaWFsb2dUcmlnZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nVHJpZ2dlci9EaWFsb2dUcmlnZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nQm9keS91c2VEaWFsb2dCb2R5LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nQm9keS9yZW5kZXJEaWFsb2dCb2R5LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nQm9keS91c2VEaWFsb2dCb2R5U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb21wb25lbnRzL0RpYWxvZ0JvZHkvRGlhbG9nQm9keS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb21wb25lbnRzL0RpYWxvZ1RpdGxlL3VzZURpYWxvZ1RpdGxlU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb21wb25lbnRzL0RpYWxvZ1RpdGxlL3VzZURpYWxvZ1RpdGxlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nVGl0bGUvcmVuZGVyRGlhbG9nVGl0bGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2dUaXRsZS9EaWFsb2dUaXRsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb21wb25lbnRzL0RpYWxvZ0JhY2tkcm9wTW90aW9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nU3VyZmFjZS91c2VEaWFsb2dTdXJmYWNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nU3VyZmFjZS9yZW5kZXJEaWFsb2dTdXJmYWNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nU3VyZmFjZS91c2VEaWFsb2dTdXJmYWNlU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGlhbG9nL2xpYi9jb21wb25lbnRzL0RpYWxvZ1N1cmZhY2UvdXNlRGlhbG9nU3VyZmFjZUNvbnRleHRWYWx1ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2dTdXJmYWNlL0RpYWxvZ1N1cmZhY2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2dDb250ZW50L3VzZURpYWxvZ0NvbnRlbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2dDb250ZW50L3JlbmRlckRpYWxvZ0NvbnRlbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRpYWxvZy9saWIvY29tcG9uZW50cy9EaWFsb2dDb250ZW50L3VzZURpYWxvZ0NvbnRlbnRTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1kaWFsb2cvbGliL2NvbXBvbmVudHMvRGlhbG9nQ29udGVudC9EaWFsb2dDb250ZW50LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvaG9va3MvdXNlVGFibGVTZWxlY3Rpb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9ob29rcy91c2VUYWJsZVNvcnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlUmVzaXplSGFuZGxlL3VzZVRhYmxlUmVzaXplSGFuZGxlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVJlc2l6ZUhhbmRsZS9yZW5kZXJUYWJsZVJlc2l6ZUhhbmRsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVSZXNpemVIYW5kbGUvdXNlVGFibGVSZXNpemVIYW5kbGVTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVJlc2l6ZUhhbmRsZS9UYWJsZVJlc2l6ZUhhbmRsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2hvb2tzL3VzZU1lYXN1cmVFbGVtZW50LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvaG9va3MvdXNlVGFibGVDb2x1bW5SZXNpemVNb3VzZUhhbmRsZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi91dGlscy9jb2x1bW5SZXNpemVVdGlscy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2hvb2tzL3VzZVRhYmxlQ29sdW1uUmVzaXplU3RhdGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9ob29rcy91c2VLZXlib2FyZFJlc2l6aW5nLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvaG9va3MvdXNlVGFibGVDb2x1bW5TaXppbmcuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9ob29rcy91c2VUYWJsZUZlYXR1cmVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvaG9va3MvY3JlYXRlQ29sdW1uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29udGV4dHMvdGFibGVDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUNlbGwvdXNlVGFibGVDZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUNlbGwvcmVuZGVyVGFibGVDZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUNlbGwvdXNlVGFibGVDZWxsU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVDZWxsL1RhYmxlQ2VsbC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbnRleHRzL3RhYmxlSGVhZGVyQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVSb3cvdXNlVGFibGVSb3cuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlUm93L3JlbmRlclRhYmxlUm93LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVNlbGVjdGlvbkNlbGwvdXNlVGFibGVTZWxlY3Rpb25DZWxsU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVSb3cvdXNlVGFibGVSb3dTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVJvdy9UYWJsZVJvdy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVCb2R5L3VzZVRhYmxlQm9keS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVCb2R5L3JlbmRlclRhYmxlQm9keS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVCb2R5L3VzZVRhYmxlQm9keVN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlQm9keS9UYWJsZUJvZHkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlL3VzZVRhYmxlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZS9yZW5kZXJUYWJsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGUvdXNlVGFibGVTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZS91c2VUYWJsZUNvbnRleHRWYWx1ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlL1RhYmxlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUhlYWRlci91c2VUYWJsZUhlYWRlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVIZWFkZXIvcmVuZGVyVGFibGVIZWFkZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlSGVhZGVyL3VzZVRhYmxlSGVhZGVyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVIZWFkZXIvVGFibGVIZWFkZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlSGVhZGVyQ2VsbC91c2VUYWJsZUhlYWRlckNlbGwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlSGVhZGVyQ2VsbC9yZW5kZXJUYWJsZUhlYWRlckNlbGwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlSGVhZGVyQ2VsbC91c2VUYWJsZUhlYWRlckNlbGxTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUhlYWRlckNlbGwvVGFibGVIZWFkZXJDZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVNlbGVjdGlvbkNlbGwvdXNlVGFibGVTZWxlY3Rpb25DZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVNlbGVjdGlvbkNlbGwvcmVuZGVyVGFibGVTZWxlY3Rpb25DZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZVNlbGVjdGlvbkNlbGwvVGFibGVTZWxlY3Rpb25DZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUNlbGxMYXlvdXQvdXNlVGFibGVDZWxsTGF5b3V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUNlbGxMYXlvdXQvcmVuZGVyVGFibGVDZWxsTGF5b3V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10YWJsZS9saWIvY29tcG9uZW50cy9UYWJsZUNlbGxMYXlvdXQvdXNlVGFibGVDZWxsTGF5b3V0U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGFibGUvbGliL2NvbXBvbmVudHMvVGFibGVDZWxsTGF5b3V0L3VzZVRhYmxlQ2VsbExheW91dENvbnRleHRWYWx1ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRhYmxlL2xpYi9jb21wb25lbnRzL1RhYmxlQ2VsbExheW91dC9UYWJsZUNlbGxMYXlvdXQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhcmQvbGliL2NvbXBvbmVudHMvQ2FyZC91c2VDYXJkU2VsZWN0YWJsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FyZC9saWIvY29tcG9uZW50cy9DYXJkL0NhcmRDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYXJkL2xpYi9jb21wb25lbnRzL0NhcmQvdXNlQ2FyZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FyZC9saWIvY29tcG9uZW50cy9DYXJkL3JlbmRlckNhcmQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhcmQvbGliL2NvbXBvbmVudHMvQ2FyZC91c2VDYXJkU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FyZC9saWIvY29tcG9uZW50cy9DYXJkL3VzZUNhcmRDb250ZXh0VmFsdWUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhcmQvbGliL2NvbXBvbmVudHMvQ2FyZC9DYXJkLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi91dGlscy9JbW11dGFibGVTZXQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2hvb2tzL3VzZUNvbnRyb2xsYWJsZU9wZW5JdGVtcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvdXRpbHMvSW1tdXRhYmxlTWFwLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi91dGlscy9jcmVhdGVDaGVja2VkSXRlbXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZS91c2VOZXN0ZWRDb250cm9sbGFibGVDaGVja2VkSXRlbXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbnRleHRzL3N1YnRyZWVDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi91dGlscy90b2tlbnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2hvb2tzL3VzZVJvb3RUcmVlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb250ZXh0cy90cmVlQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvdXRpbHMvY3JlYXRlSGVhZGxlc3NUcmVlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb250ZXh0cy90cmVlSXRlbUNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2hvb2tzL3VzZVN1YnRyZWUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL3V0aWxzL25leHRUeXBlQWhlYWRFbGVtZW50LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9ob29rcy91c2VSb3ZpbmdUYWJJbmRleGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi91dGlscy9jcmVhdGVIVE1MRWxlbWVudFdhbGtlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvdXRpbHMvdHJlZUl0ZW1GaWx0ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2hvb2tzL3VzZUhUTUxFbGVtZW50V2Fsa2VyUmVmLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9ob29rcy91c2VUcmVlTmF2aWdhdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvY29tcG9uZW50cy9UcmVlL3VzZVRyZWUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZS91c2VUcmVlQ29udGV4dFZhbHVlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvY29tcG9uZW50cy9UcmVlL3VzZVRyZWVTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb21wb25lbnRzL1RyZWVQcm92aWRlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvY29tcG9uZW50cy9UcmVlL3JlbmRlclRyZWUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZS9UcmVlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi91dGlscy9nZXRUcmVlSXRlbVZhbHVlRnJvbUVsZW1lbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZUl0ZW0vdXNlVHJlZUl0ZW0uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZUl0ZW0vcmVuZGVyVHJlZUl0ZW0uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZUl0ZW1MYXlvdXQvdXNlVHJlZUl0ZW1MYXlvdXRTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb21wb25lbnRzL1RyZWVJdGVtL3VzZVRyZWVJdGVtU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdHJlZS9saWIvY29tcG9uZW50cy9UcmVlSXRlbS91c2VUcmVlSXRlbUNvbnRleHRWYWx1ZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZUl0ZW0vVHJlZUl0ZW0uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRyZWUvbGliL2NvbXBvbmVudHMvVHJlZUl0ZW1DaGV2cm9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb21wb25lbnRzL1RyZWVJdGVtTGF5b3V0L3VzZVRyZWVJdGVtTGF5b3V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb21wb25lbnRzL1RyZWVJdGVtTGF5b3V0L3JlbmRlclRyZWVJdGVtTGF5b3V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10cmVlL2xpYi9jb21wb25lbnRzL1RyZWVJdGVtTGF5b3V0L1RyZWVJdGVtTGF5b3V0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZXNzYWdlLWJhci9saWIvY29tcG9uZW50cy9NZXNzYWdlQmFyL2dldEludGVudEljb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lc3NhZ2UtYmFyL2xpYi9jb21wb25lbnRzL01lc3NhZ2VCYXIvdXNlTWVzc2FnZUJhclJlZmxvdy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbnRleHRzL21lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbXBvbmVudHMvTWVzc2FnZUJhci91c2VNZXNzYWdlQmFyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZXNzYWdlLWJhci9saWIvY29udGV4dHMvbWVzc2FnZUJhckNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lc3NhZ2UtYmFyL2xpYi9jb21wb25lbnRzL01lc3NhZ2VCYXIvcmVuZGVyTWVzc2FnZUJhci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbXBvbmVudHMvTWVzc2FnZUJhci91c2VNZXNzYWdlQmFyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbXBvbmVudHMvTWVzc2FnZUJhci91c2VNZXNzYWdlQmFyQ29udGV4dFZhbHVlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbXBvbmVudHMvTWVzc2FnZUJhci9NZXNzYWdlQmFyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZXNzYWdlLWJhci9saWIvY29tcG9uZW50cy9NZXNzYWdlQmFyQm9keS91c2VNZXNzYWdlQmFyQm9keS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbXBvbmVudHMvTWVzc2FnZUJhckJvZHkvcmVuZGVyTWVzc2FnZUJhckJvZHkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lc3NhZ2UtYmFyL2xpYi9jb21wb25lbnRzL01lc3NhZ2VCYXJCb2R5L3VzZU1lc3NhZ2VCYXJCb2R5U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtbWVzc2FnZS1iYXIvbGliL2NvbXBvbmVudHMvTWVzc2FnZUJhckJvZHkvTWVzc2FnZUJhckJvZHkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lc3NhZ2UtYmFyL2xpYi9jb21wb25lbnRzL01lc3NhZ2VCYXJHcm91cC91c2VNZXNzYWdlQmFyR3JvdXAuanMiLCIuLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMiLCIuLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNMb29zZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsIi4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvZXNtL2NvbmZpZy5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL2VzbS9UcmFuc2l0aW9uR3JvdXBDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvZXNtL3V0aWxzL3JlZmxvdy5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL2VzbS9UcmFuc2l0aW9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL2VzbS91dGlscy9DaGlsZE1hcHBpbmcuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9lc20vVHJhbnNpdGlvbkdyb3VwLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZXNzYWdlLWJhci9saWIvY29tcG9uZW50cy9NZXNzYWdlQmFyR3JvdXAvTWVzc2FnZUJhclRyYW5zaXRpb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lc3NhZ2UtYmFyL2xpYi9jb21wb25lbnRzL01lc3NhZ2VCYXJHcm91cC9yZW5kZXJNZXNzYWdlQmFyR3JvdXAuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LW1lc3NhZ2UtYmFyL2xpYi9jb21wb25lbnRzL01lc3NhZ2VCYXJHcm91cC91c2VNZXNzYWdlQmFyR3JvdXBTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1tZXNzYWdlLWJhci9saWIvY29tcG9uZW50cy9NZXNzYWdlQmFyR3JvdXAvTWVzc2FnZUJhckdyb3VwLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckJvZHkvdXNlVGVhY2hpbmdQb3BvdmVyQm9keS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJCb2R5L3JlbmRlclRlYWNoaW5nUG9wb3ZlckJvZHkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQm9keS91c2VUZWFjaGluZ1BvcG92ZXJCb2R5U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJCb2R5L1RlYWNoaW5nUG9wb3ZlckJvZHkuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvY3JlYXRlQ2Fyb3VzZWxTdG9yZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC9DYXJvdXNlbC9DYXJvdXNlbENvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvY29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsL0Nhcm91c2VsL0Nhcm91c2VsSXRlbS91c2VDYXJvdXNlbEl0ZW0uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvQ2Fyb3VzZWxJdGVtL3JlbmRlckNhcm91c2VsSXRlbS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC9DYXJvdXNlbC9DYXJvdXNlbEl0ZW0vQ2Fyb3VzZWx0ZW0uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQvcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZC91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZC9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvdXNlQ2Fyb3VzZWxXYWxrZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvQ2Fyb3VzZWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ29udGV4dFZhbHVlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC9DYXJvdXNlbC91c2VDYXJvdXNlbFZhbHVlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbi9yZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvblN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIvdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIvcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIvdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2L3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2L3ZhbHVlSWRDb250ZXh0LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2L3JlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2L3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2U3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdi9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi9yZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvblN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b24vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b24uanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyU3VyZmFjZS91c2VUZWFjaGluZ1BvcG92ZXJTdXJmYWNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlclN1cmZhY2UvdXNlVGVhY2hpbmdQb3BvdmVyU3VyZmFjZVN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyU3VyZmFjZS9yZW5kZXJUZWFjaGluZ1BvcG92ZXJTdXJmYWNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3ZlclN1cmZhY2UvVGVhY2hpbmdQb3BvdmVyU3VyZmFjZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJUaXRsZS91c2VUZWFjaGluZ1BvcG92ZXJUaXRsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJUaXRsZS9yZW5kZXJUZWFjaGluZ1BvcG92ZXJUaXRsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXJUaXRsZS91c2VUZWFjaGluZ1BvcG92ZXJUaXRsZVN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyVGl0bGUvVGVhY2hpbmdQb3BvdmVyVGl0bGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXRlYWNoaW5nLXBvcG92ZXIvbGliL2NvbXBvbmVudHMvVGVhY2hpbmdQb3BvdmVyL3VzZVRlYWNoaW5nUG9wb3Zlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdGVhY2hpbmctcG9wb3Zlci9saWIvY29tcG9uZW50cy9UZWFjaGluZ1BvcG92ZXIvcmVuZGVyVGVhY2hpbmdQb3BvdmVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC10ZWFjaGluZy1wb3BvdmVyL2xpYi9jb21wb25lbnRzL1RlYWNoaW5nUG9wb3Zlci9UZWFjaGluZ1BvcG92ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvaW0vaW5kZXguZXNtLmpzIiwiLi4vc3JjL0NvbXBvbmVudHMvRW52aXJvbm1lbnRCYW5uZXIudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvTm90aWZpY2F0aW9ucy50c3giLCIuLi9zcmMvSG9va3MvdXNlV2luZG93V2lkdGgudHMiLCIuLi9zcmMvQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lci50c3giLCIuLi9zcmMvUGFnZXMvQmFzZVBhZ2UudHN4IiwiLi4vc3JjL0hlbHBlcnMvRGF0ZUhlbHBlci50cyIsIi4uL25vZGVfbW9kdWxlcy9yZWFjdC1pY29ucy9mYS9pbmRleC5lc20uanMiLCIuLi9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvYnMvaW5kZXguZXNtLmpzIiwiLi4vc3JjL0NvbXBvbmVudHMvVG9vbHRpcC50c3giLCIuLi9ub2RlX21vZHVsZXMvY29tcHV0ZS1zY3JvbGwtaW50by12aWV3L2Rpc3QvaW5kZXgubWpzIiwiLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5tanMiLCIuLi9ub2RlX21vZHVsZXMvZG93bnNoaWZ0L2Rpc3QvZG93bnNoaWZ0LmVzbS5qcyIsIi4uL3NyYy9Db21wb25lbnRzL0ZpZWxkcy9Mb29rdXBGaWVsZC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9BZHZhbmNlZEZpbHRlclBhbmVsLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL0ZpbHRlclRpbGUudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvTWFuYWdlbWVudFBhbmVsLnRzeCIsIi4uL3NyYy9IZWxwZXJzL3RvTG9hZGluZ0RhdGEudHMiLCIuLi9zcmMvRGF0YS9nZXRDYXNlc0ZpbHRlckdyb3Vwcy50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9UYWJsZUhlYWRlckNlbGwudHN4IiwiLi4vc3JjL0RhdGEvZ2V0Q2FzZVRhYmxlSGVhZGVyQ2VsbHMudHMiLCIuLi9zcmMvRGF0YS9nZXRDYXNlc1N1bW1hcnlTZWN0aW9ucy50cyIsIi4uL3NyYy9FbnVtcy9EYXRlU2luY2UudHMiLCIuLi9zcmMvQ29tcG9uZW50cy9NYWpvckluY2lkZW50QmFubmVyLnRzeCIsIi4uL3NyYy9QYWdlcy9DYXNlcy50c3giLCIuLi9zcmMvTW9kZWxzL0luY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZS50cyIsIi4uL3NyYy9IZWxwZXJzL25ld0d1aWQudHMiLCIuLi9zcmMvSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlLnRzIiwiLi4vc3JjL0VudW1zL0FjdGl2aXR5U3RhdGVDb2RlLnRzIiwiLi4vc3JjL0VudW1zL0RpcmVjdGlvbkNvZGUudHMiLCIuLi9zcmMvRW51bXMvUG9ydGFsQ29tbWVudFN0YXR1c0NvZGUudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja1BvcnRhbENvbW1lbnREYXRhLnRzIiwiLi4vc3JjL01vY2tEYXRhL01vY2tNYWpvckluY2lkZW50VXBkYXRlRGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrUG9ydGFsRW1haWxEYXRhLnRzIiwiLi4vc3JjL0VudW1zL0Nhc2VVcmdlbmN5LnRzIiwiLi4vc3JjL0VudW1zL0Nhc2VTZXZlcml0eUNvZGUudHMiLCIuLi9zcmMvRW51bXMvQ2FzZU9yaWdpbkNvZGUudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja0luY2lkZW50RGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrUHJvZHVjdERhdGEudHMiLCIuLi9zcmMvRW51bXMvT3JkZXJTdGF0ZUNvZGUudHMiLCIuLi9zcmMvRW51bXMvT3JkZXJTdGF0dXNDb2RlLnRzIiwiLi4vc3JjL01vY2tEYXRhL01vY2tCYXNlNjRPcmRlckZvcm1QREYudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja09yZGVyRm9ybURhdGEudHMiLCIuLi9zcmMvRW51bXMvUHJvZHVjdFR5cGVDb2RlLnRzIiwiLi4vc3JjL0VudW1zL1Byb2plY3RTdGF0ZUNvZGUudHMiLCIuLi9zcmMvRW51bXMvUHJvamVjdFN0YXR1c0NvZGUudHMiLCIuLi9zcmMvRW51bXMvUHJvamVjdExvZ01pdGlnYXRpb25SZXNwb25zZS50cyIsIi4uL3NyYy9FbnVtcy9Qcm9qZWN0TG9nU2V2ZXJpdHkudHMiLCIuLi9zcmMvRW51bXMvUHJvamVjdExvZ1N0YXR1c0NvZGUudHMiLCIuLi9zcmMvRW51bXMvUHJvamVjdExvZ1R5cGUudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja1Byb2plY3RMb2dEYXRhLnRzIiwiLi4vc3JjL0VudW1zL1Byb2plY3RUYXNrQXNzaWduZWRUby50cyIsIi4uL3NyYy9FbnVtcy9Qcm9qZWN0VGFza1N0YXR1c0NvZGUudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja1Byb2plY3RUYXNrRGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrUHJvamVjdERhdGEudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja09yZGVyTGluZURhdGEudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja09yZGVyRGF0YS50cyIsIi4uL3NyYy9FbnVtcy9Qb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlLnRzIiwiLi4vc3JjL0VudW1zL1BvcnRhbEludml0YXRpb25TdGF0dXNDb2RlLnRzIiwiLi4vc3JjL01vY2tEYXRhL01vY2tQb3J0YWxJbnZpdGF0aW9uRGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGEudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja0Jsb2dQb3N0RGF0YS50cyIsIi4uLy4uLy4uL0Jpc3RlY2guVHlwZVNjcmlwdC5IZWxwZXJzL1hybUhlbHBlci9FbnVtcy9OZXR3b3JrT3JkZXJUeXBlLnRzIiwiLi4vc3JjL0VudW1zL05ldHdvcmtPcmRlclN0YXRlQ29kZS50cyIsIi4uL3NyYy9FbnVtcy9OZXR3b3JrT3JkZXJTdGF0dXNDb2RlLnRzIiwiLi4vc3JjL0VudW1zL0N1c3RvbWVyQXNzZXRTdGF0ZUNvZGUudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja0N1c3RvbWVyQXNzZXREYXRhLnRzIiwiLi4vc3JjL0VudW1zL05ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlLnRzIiwiLi4vc3JjL0VudW1zL05ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS50cyIsIi4uL3NyYy9FbnVtcy9OZXR3b3JrT3JkZXJTdGFnZVR5cGUudHMiLCIuLi9zcmMvTW9ja0RhdGEvTW9ja05ldHdvcmtPcmRlclN0YWdlRGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrTmV0d29ya09yZGVyRGF0YS50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrQmFzZTY0SW52b2ljZVBERi50cyIsIi4uL3NyYy9Nb2NrRGF0YS9Nb2NrSW52b2ljZURhdGEudHMiLCIuLi9zcmMvSG9va3MvdXNlTW9ja0NydWRTZXJ2aWNlLnRzIiwiLi4vc3JjL01vZGVscy9Qcm9kdWN0LnRzIiwiLi4vc3JjL01vZGVscy9DdXN0b21lckFzc2V0LnRzIiwiLi4vc3JjL01vZGVscy9Db250YWN0Rm9yUmV0cmlldmFsLnRzIiwiLi4vc3JjL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yVXBkYXRlLnRzIiwiLi4vc3JjL01vZGVscy9BY2NvdW50LnRzIiwiLi4vc3JjL01vZGVscy9Qb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLnRzIiwiLi4vc3JjL01vZGVscy9Qb3J0YWxJbnZpdGF0aW9uLnRzIiwiLi4vc3JjL01vZGVscy9CbG9nUG9zdC50cyIsIi4uL3NyYy9Nb2RlbHMvT3JkZXJGb3JtLnRzIiwiLi4vc3JjL01vZGVscy9PcmRlcmxpbmUudHMiLCIuLi9zcmMvTW9kZWxzL09yZGVyLnRzIiwiLi4vc3JjL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsLnRzIiwiLi4vc3JjL01vZGVscy9Qb3J0YWxFbWFpbC50cyIsIi4uL3NyYy9Nb2RlbHMvUHJvamVjdExvZy50cyIsIi4uL3NyYy9Nb2RlbHMvUHJvamVjdFRhc2sudHMiLCIuLi9zcmMvTW9kZWxzL1Byb2plY3QudHMiLCIuLi9zcmMvTW9kZWxzL0luY2lkZW50Rm9yQ3JlYXRlLnRzIiwiLi4vc3JjL01vZGVscy9NYWpvckluY2lkZW50VXBkYXRlLnRzIiwiLi4vc3JjL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZhbC50cyIsIi4uL3NyYy9Nb2RlbHMvSW5jaWRlbnRGb3JVcGRhdGUudHMiLCIuLi9zcmMvTW9kZWxzL0NvbnRhY3RGb3JDcmVhdGUudHMiLCIuLi9zcmMvTW9kZWxzL0NvbnRhY3RGb3JVcGRhdGUudHMiLCIuLi9zcmMvTW9kZWxzL05ldHdvcmtPcmRlckZvclVwZGF0ZS50cyIsIi4uL3NyYy9Nb2RlbHMvTmV0d29ya09yZGVyU3RhZ2UudHMiLCIuLi9zcmMvTW9kZWxzL05ldHdvcmtPcmRlckZvclJldHJpZXZhbC50cyIsIi4uL3NyYy9Nb2RlbHMvTmV0d29ya09yZGVyRm9yUmV0cmlldmVNdWx0aXBsZS50cyIsIi4uL3NyYy9Nb2RlbHMvQ29udGFjdEZvclRlcm1zQW5kQ29uZGl0aW9uc1VwZGF0ZS50cyIsIi4uL3NyYy9Nb2RlbHMvSW52b2ljZUZvclJldHJpZXZlTXVsdGlwbGUudHMiLCIuLi9zcmMvTW9kZWxzL1Byb2plY3RUYXNrRm9yVXBkYXRlLnRzIiwiLi4vc3JjL01vZGVscy9JbnZvaWNlLnRzIiwiLi4vc3JjL0hvb2tzL3VzZURhdGFTZXJ2aWNlLnRzIiwiLi4vc3JjL0hvb2tzL3VzZUNsb3NlZENhc2VzLnRzeCIsIi4uL3NyYy9QYWdlcy9DYXNlc0Nsb3NlZC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9GaWVsZHMvRHJvcGRvd25GaWVsZC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9GaWVsZHMvTXVsdGlMaW5lU3RyaW5nRmllbGQudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvRmllbGRzL1N0cmluZ0ZpZWxkLnRzeCIsIi4uL3NyYy9QYWdlcy9DYXNlc0NyZWF0ZS50c3giLCIuLi9zcmMvRGF0YS9nZXRDb250YWN0c0ZpbHRlckdyb3Vwcy50c3giLCIuLi9zcmMvRGF0YS9nZXRDb250YWN0c1N1bW1hcnlTZWN0aW9ucy50cyIsIi4uL3NyYy9EYXRhL2dldENvbnRhY3RUYWJsZUhlYWRlckNlbGxzLnRzIiwiLi4vc3JjL1BhZ2VzL0NvbnRhY3RzLnRzeCIsIi4uL3NyYy9QYWdlcy9DYXNlc01ham9ySW5jaWRlbnRzLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL0ZpZWxkcy9SYWRpb0J1dHRvbkJvb2xlYW5GaWVsZC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9GaWVsZHMvVGVsZXBob25lRmllbGQudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvRmllbGRzL1BvcHVwTGlua0ZpZWxkLnRzeCIsIi4uL3NyYy9JY29ucy9EaXNtaXNzQ2lyY2xlUmVndWxhci50c3giLCIuLi9zcmMvSWNvbnMvUGVvcGxlQ29tbXVuaXR5UmVndWxhci50c3giLCIuLi9zcmMvSWNvbnMvUGVyc29uUmVndWxhci50c3giLCIuLi9zcmMvRGF0YS9QZXJtaXNzaW9ucy50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9TdWJMZXZlbFBlcm1pc3Npb25DYXRlZ29yeS50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9Ub3BMZXZlbFBlcm1pc3Npb25DYXRlZ29yeS50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9Nb2RhbC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9QZXJtaXNzaW9uc1BhbmVsLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL1Blcm1pc3Npb25MZXZlbFN1bW1hcnkudHN4IiwiLi4vc3JjL1BhZ2VzL0NvbnRhY3RzQ3JlYXRlLnRzeCIsIi4uL3NyYy9QYWdlcy9Ob3RGb3VuZC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9CdXR0b24udHN4IiwiLi4vc3JjL1BhZ2VzL0NhbGxUb0FjdGlvbkJhc2VQYWdlLnRzeCIsIi4uL3NyYy9IZWxwZXJzL3RvUGFydGlhbERpZmYudHMiLCIuLi9zcmMvUGFnZXMvQ29udGFjdHNFZGl0L0NvbnRhY3RzRWRpdENvbnRlbnQudHN4IiwiLi4vc3JjL1BhZ2VzL0NvbnRhY3RzRWRpdC9Db250YWN0c0VkaXRGcm9tSWQudHN4IiwiLi4vc3JjL1BhZ2VzL0NvbnRhY3RzRWRpdC9Db250YWN0c0VkaXQudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvSG9tZVBhZ2VUaWxlLnRzeCIsIi4uL3NyYy9QYWdlcy9Ib21lLnRzeCIsIi4uL3NyYy9QYWdlcy9Qcm9maWxlLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL0RpYWxvZy50c3giLCIuLi9zcmMvUGFnZXMvVGVybXNBbmRDb25kaXRpb25zLnRzeCIsIi4uL3NyYy9QYWdlcy9EZXZNb2RlTGltaXRhdGlvbi50c3giLCIuLi9zcmMvUGFnZXMvRm9yYmlkZGVuLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL1RpbWVsaW5lQ2FyZERhdGUudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvVGltZWxpbmVDYXJkLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL0ZpZWxkcy9Db21tZW50RmllbGQudHN4IiwiLi4vc3JjL0VudW1zL1BhcnRpY2lwYXRpb25UeXBlTWFzay50cyIsIi4uL3NyYy9Db21wb25lbnRzL1RpbWVsaW5lQ29tbWVudENhcmQudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvVGltZWxpbmUudHN4IiwiLi4vc3JjL01vZGVscy9BY3Rpdml0eVBhcnR5LnRzIiwiLi4vc3JjL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yQ3JlYXRlLnRzIiwiLi4vc3JjL1BhZ2VzL0Nhc2VzRWRpdC9DYXNlc0VkaXRDb250ZW50LnRzeCIsIi4uL3NyYy9QYWdlcy9DYXNlc0VkaXQvQ2FzZXNFZGl0RnJvbUlkLnRzeCIsIi4uL3NyYy9QYWdlcy9DYXNlc0VkaXQvQ2FzZXNFZGl0LnRzeCIsIi4uL3NyYy9EYXRhL2dldE9yZGVyVGFibGVIZWFkZXJDZWxscy50c3giLCIuLi9zcmMvRGF0YS9nZXRPcmRlcnNGaWx0ZXJHcm91cC50c3giLCIuLi9zcmMvSGVscGVycy9mcm9tTG9hZGluZ0RhdGEudHMiLCIuLi9zcmMvUGFnZXMvT3JkZXJzLnRzeCIsIi4uL3NyYy9IZWxwZXJzL0Zvcm1hdHRpbmdIZWxwZXIudHMiLCIuLi9zcmMvUGFnZXMvRmlsdGVyQ29udGVudFRhYmxlL0ZpbHRlck1lbnUudHN4IiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC12aXJ0dWFsaXplci9saWIvY29tcG9uZW50cy9WaXJ0dWFsaXplci91c2VWaXJ0dWFsaXplclN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXZpcnR1YWxpemVyL2xpYi9ob29rcy91c2VNdXRhdGlvbk9ic2VydmVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC12aXJ0dWFsaXplci9saWIvaG9va3MvdXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXZpcnR1YWxpemVyL2xpYi91dGlsaXRpZXMvVmlydHVhbGl6ZXJDb250ZXh0L1ZpcnR1YWxpemVyQ29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdmlydHVhbGl6ZXIvbGliL2NvbXBvbmVudHMvVmlydHVhbGl6ZXIvdXNlVmlydHVhbGl6ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LXZpcnR1YWxpemVyL2xpYi9jb21wb25lbnRzL1ZpcnR1YWxpemVyL3JlbmRlclZpcnR1YWxpemVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC12aXJ0dWFsaXplci9saWIvY29tcG9uZW50cy9WaXJ0dWFsaXplci9WaXJ0dWFsaXplci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdmlydHVhbGl6ZXIvbGliL3V0aWxpdGllcy9kZWJvdW5jZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdmlydHVhbGl6ZXIvbGliL3V0aWxpdGllcy9jcmVhdGVSZXNpemVPYnNlcnZlckZyb21Eb2N1bWVudC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtdmlydHVhbGl6ZXIvbGliL2hvb2tzL3VzZVJlc2l6ZU9ic2VydmVyUmVmLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC12aXJ0dWFsaXplci9saWIvaG9va3MvdXNlVmlydHVhbGl6ZXJNZWFzdXJlLmpzIiwiLi4vc3JjL1BhZ2VzL0ZpbHRlckNvbnRlbnRUYWJsZS9GaWx0ZXJDb250ZW50VGFibGUudHN4IiwiLi4vc3JjL1BhZ2VzL0ZpbHRlckNvbnRlbnRUYWJsZS9HcmlkLnRzeCIsIi4uL3NyYy9QYWdlcy9PcmRlcnNFZGl0L09yZGVyc0VkaXRDb250ZW50LnRzeCIsIi4uL3NyYy9QYWdlcy9PcmRlcnNFZGl0L09yZGVyc0VkaXRGcm9tSWQudHN4IiwiLi4vc3JjL1BhZ2VzL09yZGVyc0VkaXQvT3JkZXJzRWRpdC50c3giLCIuLi9zcmMvSGVscGVycy91c2VySGFzUG9ydGFsQWNjZXNzLnRzIiwiLi4vc3JjL0NvbXBvbmVudHMvUG9wdXAudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvTmV0d29ya09yZGVyU3RhZ2VDb21wb25lbnQudHN4IiwiLi4vc3JjL0hvb2tzL3VzZVN3aXBlTGlzdGVuZXIudHMiLCIuLi9zcmMvQ29tcG9uZW50cy9BbmltYXRlLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL01vYmlsZUNhcm91c2VsLnRzeCIsIi4uL3NyYy9Db21wb25lbnRzL0ZpZWxkcy9IeXBlcmxpbmtGaWVsZC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9NdWx0aVN0ZXBUZWFjaGluZ0J1YmJsZS50c3giLCIuLi9zcmMvUGFnZXMvTmV0d29ya09yZGVyc0VkaXQvTmV0d29ya09yZGVyc0VkaXRDb250ZW50LnRzeCIsIi4uL3NyYy9QYWdlcy9OZXR3b3JrT3JkZXJzRWRpdC9OZXR3b3JrT3JkZXJzRWRpdEZyb21JZC50c3giLCIuLi9zcmMvUGFnZXMvTmV0d29ya09yZGVyc0VkaXQvTmV0d29ya09yZGVyc0VkaXQudHN4IiwiLi4vc3JjL0RhdGEvZ2V0SW52b2ljZVRhYmxlSGVhZGVyQ2VsbHMudHN4IiwiLi4vc3JjL1BhZ2VzL0ludm9pY2VzLnRzeCIsIi4uL3NyYy9QYWdlcy9JbnZvaWNlc1ZpZXcvSW52b2ljZXNWaWV3Q29udGVudC50c3giLCIuLi9zcmMvUGFnZXMvSW52b2ljZXNWaWV3L0ludm9pY2VzVmlld0Zyb21JZC50c3giLCIuLi9zcmMvUGFnZXMvSW52b2ljZXNWaWV3L0ludm9pY2VzVmlldy50c3giLCIuLi9zcmMvRGF0YS9nZXRQcm9qZWN0VGFibGVIZWFkZXJDZWxscy50c3giLCIuLi9zcmMvRGF0YS9nZXRQcm9qZWN0c0ZpbHRlckdyb3Vwcy50c3giLCIuLi9zcmMvUGFnZXMvUHJvamVjdHMudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvVGFiTGlzdC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9Db21wbGV0ZVByb2plY3RUYXNrTW9kYWwudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvUHJvamVjdFRhc2tEZXRhaWxzTW9kYWwudHN4IiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL3V0aWxzL2NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9kYXRlRm9ybWF0dGluZy9kYXRlRm9ybWF0dGluZy5kZWZhdWx0cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9kYXRlTWF0aC9kYXRlTWF0aC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9kYXRlR3JpZC9pc0JlZm9yZU1pbkRhdGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvdXRpbHMvZGF0ZUdyaWQvaXNBZnRlck1heERhdGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvdXRpbHMvZGF0ZUdyaWQvaXNSZXN0cmljdGVkRGF0ZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9kYXRlR3JpZC9maW5kQXZhaWxhYmxlRGF0ZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9kYXRlR3JpZC9nZXRCb3VuZGVkRGF0ZVJhbmdlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL3V0aWxzL2RhdGVHcmlkL2lzQ29udGlndW91cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9kYXRlR3JpZC9nZXREYXRlUmFuZ2VUeXBlVG9Vc2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvdXRpbHMvZGF0ZUdyaWQvZ2V0RGF5R3JpZC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi91dGlscy9mb2N1cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyL0NhbGVuZGFyLnR5cGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL2NvbXBvbmVudHMvQ2FsZW5kYXJEYXlHcmlkL3VzZVdlZWtDb3JuZXJTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL2NvbXBvbmVudHMvQ2FsZW5kYXJEYXlHcmlkL3VzZUNhbGVuZGFyRGF5R3JpZFN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvY29tcG9uZW50cy9DYWxlbmRhckRheUdyaWQvQ2FsZW5kYXJNb250aEhlYWRlclJvdy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyRGF5R3JpZC9DYWxlbmRhckdyaWREYXlDZWxsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL2NvbXBvbmVudHMvQ2FsZW5kYXJEYXlHcmlkL0NhbGVuZGFyR3JpZFJvdy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyRGF5R3JpZC91c2VXZWVrcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyRGF5R3JpZC9DYWxlbmRhckRheUdyaWQuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvY29tcG9uZW50cy9DYWxlbmRhckRheS91c2VDYWxlbmRhckRheVN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvY29tcG9uZW50cy9DYWxlbmRhckRheS9DYWxlbmRhckRheS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyUGlja2VyL3VzZUNhbGVuZGFyUGlja2VyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyWWVhci91c2VDYWxlbmRhclllYXJTdHlsZXMuc3R5bGVzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL2NvbXBvbmVudHMvQ2FsZW5kYXJZZWFyL0NhbGVuZGFyWWVhci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyTW9udGgvdXNlQ2FsZW5kYXJNb250aFN0eWxlcy5zdHlsZXMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvY29tcG9uZW50cy9DYWxlbmRhck1vbnRoL0NhbGVuZGFyTW9udGguanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWNhbGVuZGFyLWNvbXBhdC9saWIvY29tcG9uZW50cy9DYWxlbmRhci9jYWxlbmRhck5hdmlnYXRpb25JY29ucy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyL3VzZUNhbGVuZGFyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0L2xpYi9jb21wb25lbnRzL0NhbGVuZGFyL0NhbGVuZGFyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQvbGliL2NvbXBvbmVudHMvQ2FsZW5kYXIvZGVmYXVsdHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRhdGVwaWNrZXItY29tcGF0L2xpYi9jb21wb25lbnRzL0RhdGVQaWNrZXIvZGVmYXVsdHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRhdGVwaWNrZXItY29tcGF0L2xpYi9jb21wb25lbnRzL0RhdGVQaWNrZXIvcmVuZGVyRGF0ZVBpY2tlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGF0ZXBpY2tlci1jb21wYXQvbGliL3V0aWxzL3VzZVBvcHVwUG9zaXRpb25pbmcuanMiLCIuLi9ub2RlX21vZHVsZXMvQGZsdWVudHVpL3JlYWN0LWRhdGVwaWNrZXItY29tcGF0L2xpYi9jb21wb25lbnRzL0RhdGVQaWNrZXIvdXNlRGF0ZVBpY2tlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGF0ZXBpY2tlci1jb21wYXQvbGliL2NvbXBvbmVudHMvRGF0ZVBpY2tlci91c2VEYXRlUGlja2VyU3R5bGVzLnN0eWxlcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AZmx1ZW50dWkvcmVhY3QtZGF0ZXBpY2tlci1jb21wYXQvbGliL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLmpzIiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RzRWRpdC9Qcm9qZWN0VGFza1RhYmxlL0ZpbHRlck1lbnUudHN4IiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RzRWRpdC9Qcm9qZWN0VGFza1RhYmxlL1Byb2plY3RUYXNrVGFibGUudHN4IiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RzRWRpdC9Qcm9qZWN0VGFza1RhYmxlL1Byb2plY3RUYXNrR3JpZC50c3giLCIuLi9zcmMvUGFnZXMvUHJvamVjdHNFZGl0L1Byb2plY3RUYXNrVGFibGUvUHJvamVjdHNFZGl0VGFza3MudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvVGFiVGFibGUudHN4IiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RzRWRpdC9Qcm9qZWN0c0VkaXRDb250YWN0cy50c3giLCIuLi9zcmMvUGFnZXMvUHJvamVjdHNFZGl0L1Byb2plY3RzRWRpdE5ldHdvcmtPcmRlcnMudHN4IiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RzRWRpdC9Qcm9qZWN0c0VkaXRQcm9qZWN0TG9ncy50c3giLCIuLi9zcmMvUGFnZXMvUHJvamVjdHNFZGl0L1Byb2plY3RzRWRpdFN1bW1hcnkudHN4IiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RzRWRpdC9Qcm9qZWN0c0VkaXRDb250ZW50LnRzeCIsIi4uL3NyYy9QYWdlcy9Qcm9qZWN0c0VkaXQvUHJvamVjdHNFZGl0RnJvbUlkLnRzeCIsIi4uL3NyYy9QYWdlcy9Qcm9qZWN0c0VkaXQvUHJvamVjdHNFZGl0LnRzeCIsIi4uL3NyYy9QYWdlcy9Qcm9qZWN0TG9nVmlldy9Qcm9qZWN0TG9nVmlld0NvbnRlbnQudHN4IiwiLi4vc3JjL1BhZ2VzL1Byb2plY3RMb2dWaWV3L1Byb2plY3RMb2dWaWV3RnJvbUlkLnRzeCIsIi4uL3NyYy9QYWdlcy9Qcm9qZWN0TG9nVmlldy9Qcm9qZWN0TG9nVmlldy50c3giLCIuLi9zcmMvSG9va3MvdXNlUGFnZU5hdmlnYXRpb24udHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvTmF2aWdhdGlvbkxpbmsudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvTmF2aWdhdGlvbk1lbnVHcm91cC50c3giLCIuLi9zcmMvQ29tcG9uZW50cy9OYXZpZ2F0aW9uUGFuZWwudHN4IiwiLi4vc3JjL0NvbXBvbmVudHMvRmVlZGJhY2tQYW5lLnRzeCIsIi4uL3NyYy9Ib29rcy91c2VEYXRhUmV0cmlldmFscy50c3giLCIuLi9zcmMvQXBwLnRzeCIsIi4uL25vZGVfbW9kdWxlcy9yZWR1eC9lcy9yZWR1eC5qcyIsIi4uL25vZGVfbW9kdWxlcy9pbW1lci9kaXN0L2ltbWVyLmVzbS5tanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanMvbGliL2Rpc3QvZXNtL2R5bmFtaWNwcm90by1qcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtc2hpbXMvZGlzdC1lc20vQ29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltcy9kaXN0LWVzbS9IZWxwZXJzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltcy9kaXN0LWVzbS9Uc0xpYlNoaW1zLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL19fRHluYW1pY0NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcy9kaXN0LWVzbS9KYXZhU2NyaXB0U0RLL0ludGVybmFsQ29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvSGVscGVyRnVuY3MuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy5FbnVtcy9FbnVtSGVscGVyRnVuY3MuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9FbnZVdGlscy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcy9kaXN0LWVzbS9KYXZhU2NyaXB0U0RLL0RiZ0V4dGVuc2lvblV0aWxzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvRGlhZ25vc3RpY0xvZ2dlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcy9kaXN0LWVzbS9KYXZhU2NyaXB0U0RLL1BlcmZNYW5hZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvUmFuZG9tSGVscGVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvRGF0YUNhY2hlSGVscGVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvQ29va2llTWdyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvRXZlbnRIZWxwZXJzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvQ29yZVV0aWxzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvVzNjVHJhY2VQYXJlbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9UZWxlbWV0cnlIZWxwZXJzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9DaGFubmVsQ29udHJvbGxlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcy9kaXN0LWVzbS9KYXZhU2NyaXB0U0RLL1VubG9hZEhhbmRsZXJDb250YWluZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9CYXNlVGVsZW1ldHJ5UGx1Z2luLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4uanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9CYXNlQ29yZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcy9kaXN0LWVzbS9KYXZhU2NyaXB0U0RLL05vdGlmaWNhdGlvbk1hbmFnZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9BcHBJbnNpZ2h0c0NvcmUuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9JbnN0cnVtZW50SG9va3MuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9Db25zdGFudHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9Eb21IZWxwZXJGdW5jcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uL2Rpc3QtZXNtL19fRHluYW1pY0NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uL2Rpc3QtZXNtL0hlbHBlckZ1bmNzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vUmVxdWVzdFJlc3BvbnNlSGVhZGVycy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uL2Rpc3QtZXNtL0VudW1zLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vU3RvcmFnZUhlbHBlckZ1bmNzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVGVsZW1ldHJ5L0NvbW1vbi9EYXRhU2FuaXRpemVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVXJsSGVscGVyRnVuY3MuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9VdGlsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vQ29ubmVjdGlvblN0cmluZ1BhcnNlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uL2Rpc3QtZXNtL1RlbGVtZXRyeS9Db21tb24vRW52ZWxvcGUuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9UZWxlbWV0cnkvRXZlbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9UZWxlbWV0cnkvRXhjZXB0aW9uLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVGVsZW1ldHJ5L0NvbW1vbi9EYXRhUG9pbnQuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9UZWxlbWV0cnkvTWV0cmljLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVGVsZW1ldHJ5L1BhZ2VWaWV3LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVGVsZW1ldHJ5L1JlbW90ZURlcGVuZGVuY3lEYXRhLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVGVsZW1ldHJ5L1RyYWNlLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vVGVsZW1ldHJ5L1BhZ2VWaWV3UGVyZm9ybWFuY2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9UZWxlbWV0cnkvQ29tbW9uL0RhdGEuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9JbnRlcmZhY2VzL0NvbnRyYWN0cy9Db250ZXh0VGFnS2V5cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uL2Rpc3QtZXNtL1RlbGVtZXRyeUl0ZW1DcmVhdG9yLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24vZGlzdC1lc20vSW50ZXJmYWNlcy9QYXJ0QUV4dGVuc2lvbnMuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi9kaXN0LWVzbS9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzL2Rpc3QtZXNtL19fRHluYW1pY0NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvVGVsZW1ldHJ5L1BhZ2VWaWV3TWFuYWdlci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvVGVsZW1ldHJ5L1BhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1hbmFseXRpY3MtanMvZGlzdC1lc20vSmF2YVNjcmlwdFNESy9UZWxlbWV0cnkvUGFnZVZpc2l0VGltZU1hbmFnZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWFuYWx5dGljcy1qcy9kaXN0LWVzbS9KYXZhU2NyaXB0U0RLL1RpbWluZy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzL2Rpc3QtZXNtL0phdmFTY3JpcHRTREsvQW5hbHl0aWNzUGx1Z2luLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jaGFubmVsLWpzL2Rpc3QtZXNtL0ludGVybmFsQ29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jaGFubmVsLWpzL2Rpc3QtZXNtL19fRHluYW1pY0NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY2hhbm5lbC1qcy9kaXN0LWVzbS9FbnZlbG9wZUNyZWF0b3IuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNoYW5uZWwtanMvZGlzdC1lc20vT2ZmbGluZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY2hhbm5lbC1qcy9kaXN0LWVzbS9TZW5kQnVmZmVyLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jaGFubmVsLWpzL2Rpc3QtZXNtL1NlcmlhbGl6ZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNoYW5uZWwtanMvZGlzdC1lc20vVGVsZW1ldHJ5UHJvY2Vzc29ycy9TYW1wbGluZ1Njb3JlR2VuZXJhdG9ycy9IYXNoQ29kZVNjb3JlR2VuZXJhdG9yLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jaGFubmVsLWpzL2Rpc3QtZXNtL1RlbGVtZXRyeVByb2Nlc3NvcnMvU2FtcGxpbmdTY29yZUdlbmVyYXRvcnMvU2FtcGxpbmdTY29yZUdlbmVyYXRvci5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY2hhbm5lbC1qcy9kaXN0LWVzbS9UZWxlbWV0cnlQcm9jZXNzb3JzL1NhbXBsZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY2hhbm5lbC1qcy9kaXN0LWVzbS9TZW5kZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWRlcGVuZGVuY2llcy1qcy9kaXN0LWVzbS9JbnRlcm5hbENvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtZGVwZW5kZW5jaWVzLWpzL2Rpc3QtZXNtL19fRHluYW1pY0NvbnN0YW50cy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtZGVwZW5kZW5jaWVzLWpzL2Rpc3QtZXNtL2FqYXhSZWNvcmQuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWRlcGVuZGVuY2llcy1qcy9kaXN0LWVzbS9hamF4LmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1wcm9wZXJ0aWVzLWpzL2Rpc3QtZXNtL0NvbnRleHQvQXBwbGljYXRpb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMvZGlzdC1lc20vQ29udGV4dC9EZXZpY2UuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMvZGlzdC1lc20vX19EeW5hbWljQ29uc3RhbnRzLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1wcm9wZXJ0aWVzLWpzL2Rpc3QtZXNtL0NvbnRleHQvSW50ZXJuYWwuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMvZGlzdC1lc20vQ29udGV4dC9Mb2NhdGlvbi5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qcy9kaXN0LWVzbS9Db250ZXh0L1Nlc3Npb24uanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMvZGlzdC1lc20vQ29udGV4dC9UZWxlbWV0cnlUcmFjZS5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qcy9kaXN0LWVzbS9Db250ZXh0L1VzZXIuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMvZGlzdC1lc20vVGVsZW1ldHJ5Q29udGV4dC5qcyIsIi4uL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qcy9kaXN0LWVzbS9Qcm9wZXJ0aWVzUGx1Z2luLmpzIiwiLi4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy13ZWIvZGlzdC1lc20vSW50ZXJuYWxDb25zdGFudHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXdlYi9kaXN0LWVzbS9fX0R5bmFtaWNDb25zdGFudHMuanMiLCIuLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXdlYi9kaXN0LWVzbS9Jbml0aWFsaXphdGlvbi5qcyIsIi4uL3NyYy9SZWR1Y2Vycy50cyIsIi4uL3NyYy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBsPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLG49U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxwPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxxPVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxyPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSx0PVN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKSx1PVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLHY9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLHc9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLHg9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIikseT1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSx6PVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBBKGEpe2lmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGEpcmV0dXJuIG51bGw7YT16JiZhW3pdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9XG52YXIgQj17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sQz1PYmplY3QuYXNzaWduLEQ9e307ZnVuY3Rpb24gRShhLGIsZSl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1EO3RoaXMudXBkYXRlcj1lfHxCfUUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e307XG5FLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihhLGIpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJm51bGwhPWEpdGhyb3cgRXJyb3IoXCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy5cIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGEsYixcInNldFN0YXRlXCIpfTtFLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihhKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsYSxcImZvcmNlVXBkYXRlXCIpfTtmdW5jdGlvbiBGKCl7fUYucHJvdG90eXBlPUUucHJvdG90eXBlO2Z1bmN0aW9uIEcoYSxiLGUpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9RDt0aGlzLnVwZGF0ZXI9ZXx8Qn12YXIgSD1HLnByb3RvdHlwZT1uZXcgRjtcbkguY29uc3RydWN0b3I9RztDKEgsRS5wcm90b3R5cGUpO0guaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEk9QXJyYXkuaXNBcnJheSxKPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksSz17Y3VycmVudDpudWxsfSxMPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07XG5mdW5jdGlvbiBNKGEsYixlKXt2YXIgZCxjPXt9LGs9bnVsbCxoPW51bGw7aWYobnVsbCE9Yilmb3IoZCBpbiB2b2lkIDAhPT1iLnJlZiYmKGg9Yi5yZWYpLHZvaWQgMCE9PWIua2V5JiYoaz1cIlwiK2Iua2V5KSxiKUouY2FsbChiLGQpJiYhTC5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09YltkXSk7dmFyIGc9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1nKWMuY2hpbGRyZW49ZTtlbHNlIGlmKDE8Zyl7Zm9yKHZhciBmPUFycmF5KGcpLG09MDttPGc7bSsrKWZbbV09YXJndW1lbnRzW20rMl07Yy5jaGlsZHJlbj1mfWlmKGEmJmEuZGVmYXVsdFByb3BzKWZvcihkIGluIGc9YS5kZWZhdWx0UHJvcHMsZyl2b2lkIDA9PT1jW2RdJiYoY1tkXT1nW2RdKTtyZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEsa2V5OmsscmVmOmgscHJvcHM6Yyxfb3duZXI6Sy5jdXJyZW50fX1cbmZ1bmN0aW9uIE4oYSxiKXtyZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEudHlwZSxrZXk6YixyZWY6YS5yZWYscHJvcHM6YS5wcm9wcyxfb3duZXI6YS5fb3duZXJ9fWZ1bmN0aW9uIE8oYSl7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PWx9ZnVuY3Rpb24gZXNjYXBlKGEpe3ZhciBiPXtcIj1cIjpcIj0wXCIsXCI6XCI6XCI9MlwifTtyZXR1cm5cIiRcIithLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihhKXtyZXR1cm4gYlthXX0pfXZhciBQPS9cXC8rL2c7ZnVuY3Rpb24gUShhLGIpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJm51bGwhPWEua2V5P2VzY2FwZShcIlwiK2Eua2V5KTpiLnRvU3RyaW5nKDM2KX1cbmZ1bmN0aW9uIFIoYSxiLGUsZCxjKXt2YXIgaz10eXBlb2YgYTtpZihcInVuZGVmaW5lZFwiPT09a3x8XCJib29sZWFuXCI9PT1rKWE9bnVsbDt2YXIgaD0hMTtpZihudWxsPT09YSloPSEwO2Vsc2Ugc3dpdGNoKGspe2Nhc2UgXCJzdHJpbmdcIjpjYXNlIFwibnVtYmVyXCI6aD0hMDticmVhaztjYXNlIFwib2JqZWN0XCI6c3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgbDpjYXNlIG46aD0hMH19aWYoaClyZXR1cm4gaD1hLGM9YyhoKSxhPVwiXCI9PT1kP1wiLlwiK1EoaCwwKTpkLEkoYyk/KGU9XCJcIixudWxsIT1hJiYoZT1hLnJlcGxhY2UoUCxcIiQmL1wiKStcIi9cIiksUihjLGIsZSxcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBhfSkpOm51bGwhPWMmJihPKGMpJiYoYz1OKGMsZSsoIWMua2V5fHxoJiZoLmtleT09PWMua2V5P1wiXCI6KFwiXCIrYy5rZXkpLnJlcGxhY2UoUCxcIiQmL1wiKStcIi9cIikrYSkpLGIucHVzaChjKSksMTtoPTA7ZD1cIlwiPT09ZD9cIi5cIjpkK1wiOlwiO2lmKEkoYSkpZm9yKHZhciBnPTA7ZzxhLmxlbmd0aDtnKyspe2s9XG5hW2ddO3ZhciBmPWQrUShrLGcpO2grPVIoayxiLGUsZixjKX1lbHNlIGlmKGY9QShhKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZilmb3IoYT1mLmNhbGwoYSksZz0wOyEoaz1hLm5leHQoKSkuZG9uZTspaz1rLnZhbHVlLGY9ZCtRKGssZysrKSxoKz1SKGssYixlLGYsYyk7ZWxzZSBpZihcIm9iamVjdFwiPT09ayl0aHJvdyBiPVN0cmluZyhhKSxFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIrKFwiW29iamVjdCBPYmplY3RdXCI9PT1iP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYSkuam9pbihcIiwgXCIpK1wifVwiOmIpK1wiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLlwiKTtyZXR1cm4gaH1cbmZ1bmN0aW9uIFMoYSxiLGUpe2lmKG51bGw9PWEpcmV0dXJuIGE7dmFyIGQ9W10sYz0wO1IoYSxkLFwiXCIsXCJcIixmdW5jdGlvbihhKXtyZXR1cm4gYi5jYWxsKGUsYSxjKyspfSk7cmV0dXJuIGR9ZnVuY3Rpb24gVChhKXtpZigtMT09PWEuX3N0YXR1cyl7dmFyIGI9YS5fcmVzdWx0O2I9YigpO2IudGhlbihmdW5jdGlvbihiKXtpZigwPT09YS5fc3RhdHVzfHwtMT09PWEuX3N0YXR1cylhLl9zdGF0dXM9MSxhLl9yZXN1bHQ9Yn0sZnVuY3Rpb24oYil7aWYoMD09PWEuX3N0YXR1c3x8LTE9PT1hLl9zdGF0dXMpYS5fc3RhdHVzPTIsYS5fcmVzdWx0PWJ9KTstMT09PWEuX3N0YXR1cyYmKGEuX3N0YXR1cz0wLGEuX3Jlc3VsdD1iKX1pZigxPT09YS5fc3RhdHVzKXJldHVybiBhLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBhLl9yZXN1bHQ7fVxudmFyIFU9e2N1cnJlbnQ6bnVsbH0sVj17dHJhbnNpdGlvbjpudWxsfSxXPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlUsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6VixSZWFjdEN1cnJlbnRPd25lcjpLfTtmdW5jdGlvbiBYKCl7dGhyb3cgRXJyb3IoXCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LlwiKTt9XG5leHBvcnRzLkNoaWxkcmVuPXttYXA6Uyxmb3JFYWNoOmZ1bmN0aW9uKGEsYixlKXtTKGEsZnVuY3Rpb24oKXtiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZSl9LGNvdW50OmZ1bmN0aW9uKGEpe3ZhciBiPTA7UyhhLGZ1bmN0aW9uKCl7YisrfSk7cmV0dXJuIGJ9LHRvQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIFMoYSxmdW5jdGlvbihhKXtyZXR1cm4gYX0pfHxbXX0sb25seTpmdW5jdGlvbihhKXtpZighTyhhKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gYX19O2V4cG9ydHMuQ29tcG9uZW50PUU7ZXhwb3J0cy5GcmFnbWVudD1wO2V4cG9ydHMuUHJvZmlsZXI9cjtleHBvcnRzLlB1cmVDb21wb25lbnQ9RztleHBvcnRzLlN0cmljdE1vZGU9cTtleHBvcnRzLlN1c3BlbnNlPXc7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPVc7ZXhwb3J0cy5hY3Q9WDtcbmV4cG9ydHMuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGEsYixlKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBFcnJvcihcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiK2ErXCIuXCIpO3ZhciBkPUMoe30sYS5wcm9wcyksYz1hLmtleSxrPWEucmVmLGg9YS5fb3duZXI7aWYobnVsbCE9Yil7dm9pZCAwIT09Yi5yZWYmJihrPWIucmVmLGg9Sy5jdXJyZW50KTt2b2lkIDAhPT1iLmtleSYmKGM9XCJcIitiLmtleSk7aWYoYS50eXBlJiZhLnR5cGUuZGVmYXVsdFByb3BzKXZhciBnPWEudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGYgaW4gYilKLmNhbGwoYixmKSYmIUwuaGFzT3duUHJvcGVydHkoZikmJihkW2ZdPXZvaWQgMD09PWJbZl0mJnZvaWQgMCE9PWc/Z1tmXTpiW2ZdKX12YXIgZj1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWYpZC5jaGlsZHJlbj1lO2Vsc2UgaWYoMTxmKXtnPUFycmF5KGYpO1xuZm9yKHZhciBtPTA7bTxmO20rKylnW21dPWFyZ3VtZW50c1ttKzJdO2QuY2hpbGRyZW49Z31yZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEudHlwZSxrZXk6YyxyZWY6ayxwcm9wczpkLF9vd25lcjpofX07ZXhwb3J0cy5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGEpe2E9eyQkdHlwZW9mOnUsX2N1cnJlbnRWYWx1ZTphLF9jdXJyZW50VmFsdWUyOmEsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9kZWZhdWx0VmFsdWU6bnVsbCxfZ2xvYmFsTmFtZTpudWxsfTthLlByb3ZpZGVyPXskJHR5cGVvZjp0LF9jb250ZXh0OmF9O3JldHVybiBhLkNvbnN1bWVyPWF9O2V4cG9ydHMuY3JlYXRlRWxlbWVudD1NO2V4cG9ydHMuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihhKXt2YXIgYj1NLmJpbmQobnVsbCxhKTtiLnR5cGU9YTtyZXR1cm4gYn07ZXhwb3J0cy5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX07XG5leHBvcnRzLmZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnYscmVuZGVyOmF9fTtleHBvcnRzLmlzVmFsaWRFbGVtZW50PU87ZXhwb3J0cy5sYXp5PWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp5LF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6YX0sX2luaXQ6VH19O2V4cG9ydHMubWVtbz1mdW5jdGlvbihhLGIpe3JldHVybnskJHR5cGVvZjp4LHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX07ZXhwb3J0cy5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9Vi50cmFuc2l0aW9uO1YudHJhbnNpdGlvbj17fTt0cnl7YSgpfWZpbmFsbHl7Vi50cmFuc2l0aW9uPWJ9fTtleHBvcnRzLnVuc3RhYmxlX2FjdD1YO2V4cG9ydHMudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUNhbGxiYWNrKGEsYil9O2V4cG9ydHMudXNlQ29udGV4dD1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZUNvbnRleHQoYSl9O1xuZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKGEpfTtleHBvcnRzLnVzZUVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlRWZmZWN0KGEsYil9O2V4cG9ydHMudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gVS5jdXJyZW50LnVzZUlkKCl9O2V4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VJbXBlcmF0aXZlSGFuZGxlKGEsYixlKX07ZXhwb3J0cy51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUluc2VydGlvbkVmZmVjdChhLGIpfTtleHBvcnRzLnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlTGF5b3V0RWZmZWN0KGEsYil9O1xuZXhwb3J0cy51c2VNZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VNZW1vKGEsYil9O2V4cG9ydHMudXNlUmVkdWNlcj1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VSZWR1Y2VyKGEsYixlKX07ZXhwb3J0cy51c2VSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VSZWYoYSl9O2V4cG9ydHMudXNlU3RhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VTdGF0ZShhKX07ZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShhLGIsZSl9O2V4cG9ydHMudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBVLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfTtleHBvcnRzLnZlcnNpb249XCIxOC4zLjFcIjtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBmPXJlcXVpcmUoXCJyZWFjdFwiKSxrPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLGw9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxuPWYuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIscD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gcShjLGEsZyl7dmFyIGIsZD17fSxlPW51bGwsaD1udWxsO3ZvaWQgMCE9PWcmJihlPVwiXCIrZyk7dm9pZCAwIT09YS5rZXkmJihlPVwiXCIrYS5rZXkpO3ZvaWQgMCE9PWEucmVmJiYoaD1hLnJlZik7Zm9yKGIgaW4gYSltLmNhbGwoYSxiKSYmIXAuaGFzT3duUHJvcGVydHkoYikmJihkW2JdPWFbYl0pO2lmKGMmJmMuZGVmYXVsdFByb3BzKWZvcihiIGluIGE9Yy5kZWZhdWx0UHJvcHMsYSl2b2lkIDA9PT1kW2JdJiYoZFtiXT1hW2JdKTtyZXR1cm57JCR0eXBlb2Y6ayx0eXBlOmMsa2V5OmUscmVmOmgscHJvcHM6ZCxfb3duZXI6bi5jdXJyZW50fX1leHBvcnRzLkZyYWdtZW50PWw7ZXhwb3J0cy5qc3g9cTtleHBvcnRzLmpzeHM9cTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0JztmdW5jdGlvbiBmKGEsYil7dmFyIGM9YS5sZW5ndGg7YS5wdXNoKGIpO2E6Zm9yKDswPGM7KXt2YXIgZD1jLTE+Pj4xLGU9YVtkXTtpZigwPGcoZSxiKSlhW2RdPWIsYVtjXT1lLGM9ZDtlbHNlIGJyZWFrIGF9fWZ1bmN0aW9uIGgoYSl7cmV0dXJuIDA9PT1hLmxlbmd0aD9udWxsOmFbMF19ZnVuY3Rpb24gayhhKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGI9YVswXSxjPWEucG9wKCk7aWYoYyE9PWIpe2FbMF09YzthOmZvcih2YXIgZD0wLGU9YS5sZW5ndGgsdz1lPj4+MTtkPHc7KXt2YXIgbT0yKihkKzEpLTEsQz1hW21dLG49bSsxLHg9YVtuXTtpZigwPmcoQyxjKSluPGUmJjA+Zyh4LEMpPyhhW2RdPXgsYVtuXT1jLGQ9bik6KGFbZF09QyxhW21dPWMsZD1tKTtlbHNlIGlmKG48ZSYmMD5nKHgsYykpYVtkXT14LGFbbl09YyxkPW47ZWxzZSBicmVhayBhfX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGcoYSxiKXt2YXIgYz1hLnNvcnRJbmRleC1iLnNvcnRJbmRleDtyZXR1cm4gMCE9PWM/YzphLmlkLWIuaWR9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdyl7dmFyIGw9cGVyZm9ybWFuY2U7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gbC5ub3coKX19ZWxzZXt2YXIgcD1EYXRlLHE9cC5ub3coKTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBwLm5vdygpLXF9fXZhciByPVtdLHQ9W10sdT0xLHY9bnVsbCx5PTMsej0hMSxBPSExLEI9ITEsRD1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwsRT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLEY9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7XG5cInVuZGVmaW5lZFwiIT09dHlwZW9mIG5hdmlnYXRvciYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcmJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTtmdW5jdGlvbiBHKGEpe2Zvcih2YXIgYj1oKHQpO251bGwhPT1iOyl7aWYobnVsbD09PWIuY2FsbGJhY2spayh0KTtlbHNlIGlmKGIuc3RhcnRUaW1lPD1hKWsodCksYi5zb3J0SW5kZXg9Yi5leHBpcmF0aW9uVGltZSxmKHIsYik7ZWxzZSBicmVhaztiPWgodCl9fWZ1bmN0aW9uIEgoYSl7Qj0hMTtHKGEpO2lmKCFBKWlmKG51bGwhPT1oKHIpKUE9ITAsSShKKTtlbHNle3ZhciBiPWgodCk7bnVsbCE9PWImJksoSCxiLnN0YXJ0VGltZS1hKX19XG5mdW5jdGlvbiBKKGEsYil7QT0hMTtCJiYoQj0hMSxFKEwpLEw9LTEpO3o9ITA7dmFyIGM9eTt0cnl7RyhiKTtmb3Iodj1oKHIpO251bGwhPT12JiYoISh2LmV4cGlyYXRpb25UaW1lPmIpfHxhJiYhTSgpKTspe3ZhciBkPXYuY2FsbGJhY2s7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3YuY2FsbGJhY2s9bnVsbDt5PXYucHJpb3JpdHlMZXZlbDt2YXIgZT1kKHYuZXhwaXJhdGlvblRpbWU8PWIpO2I9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgZT92LmNhbGxiYWNrPWU6dj09PWgocikmJmsocik7RyhiKX1lbHNlIGsocik7dj1oKHIpfWlmKG51bGwhPT12KXZhciB3PSEwO2Vsc2V7dmFyIG09aCh0KTtudWxsIT09bSYmSyhILG0uc3RhcnRUaW1lLWIpO3c9ITF9cmV0dXJuIHd9ZmluYWxseXt2PW51bGwseT1jLHo9ITF9fXZhciBOPSExLE89bnVsbCxMPS0xLFA9NSxRPS0xO1xuZnVuY3Rpb24gTSgpe3JldHVybiBleHBvcnRzLnVuc3RhYmxlX25vdygpLVE8UD8hMTohMH1mdW5jdGlvbiBSKCl7aWYobnVsbCE9PU8pe3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7UT1hO3ZhciBiPSEwO3RyeXtiPU8oITAsYSl9ZmluYWxseXtiP1MoKTooTj0hMSxPPW51bGwpfX1lbHNlIE49ITF9dmFyIFM7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIEYpUz1mdW5jdGlvbigpe0YoUil9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIFQ9bmV3IE1lc3NhZ2VDaGFubmVsLFU9VC5wb3J0MjtULnBvcnQxLm9ubWVzc2FnZT1SO1M9ZnVuY3Rpb24oKXtVLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIFM9ZnVuY3Rpb24oKXtEKFIsMCl9O2Z1bmN0aW9uIEkoYSl7Tz1hO058fChOPSEwLFMoKSl9ZnVuY3Rpb24gSyhhLGIpe0w9RChmdW5jdGlvbigpe2EoZXhwb3J0cy51bnN0YWJsZV9ub3coKSl9LGIpfVxuZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NTtleHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTE7ZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eT00O2V4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MztleHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe2EuY2FsbGJhY2s9bnVsbH07ZXhwb3J0cy51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe0F8fHp8fChBPSEwLEkoSikpfTtcbmV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oYSl7MD5hfHwxMjU8YT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOlA9MDxhP01hdGguZmxvb3IoMUUzL2EpOjV9O2V4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4geX07ZXhwb3J0cy51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZT1mdW5jdGlvbigpe3JldHVybiBoKHIpfTtleHBvcnRzLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKHkpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBiPTM7YnJlYWs7ZGVmYXVsdDpiPXl9dmFyIGM9eTt5PWI7dHJ5e3JldHVybiBhKCl9ZmluYWxseXt5PWN9fTtleHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fTtcbmV4cG9ydHMudW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPXk7eT1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7eT1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yz8oYz1jLmRlbGF5LGM9XCJudW1iZXJcIj09PXR5cGVvZiBjJiYwPGM/ZCtjOmQpOmM9ZDtzd2l0Y2goYSl7Y2FzZSAxOnZhciBlPS0xO2JyZWFrO2Nhc2UgMjplPTI1MDticmVhaztjYXNlIDU6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDplPTFFNDticmVhaztkZWZhdWx0OmU9NUUzfWU9YytlO2E9e2lkOnUrKyxjYWxsYmFjazpiLHByaW9yaXR5TGV2ZWw6YSxzdGFydFRpbWU6YyxleHBpcmF0aW9uVGltZTplLHNvcnRJbmRleDotMX07Yz5kPyhhLnNvcnRJbmRleD1jLGYodCxhKSxudWxsPT09aChyKSYmYT09PWgodCkmJihCPyhFKEwpLEw9LTEpOkI9ITAsSyhILGMtZCkpKTooYS5zb3J0SW5kZXg9ZSxmKHIsYSksQXx8enx8KEE9ITAsSShKKSkpO3JldHVybiBhfTtcbmV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9TTtleHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj15O3JldHVybiBmdW5jdGlvbigpe3ZhciBjPXk7eT1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXt5PWN9fX07XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbi8qXG4gTW9kZXJuaXpyIDMuMC4wcHJlIChDdXN0b20gQnVpbGQpIHwgTUlUXG4qL1xuJ3VzZSBzdHJpY3QnO3ZhciBhYT1yZXF1aXJlKFwicmVhY3RcIiksY2E9cmVxdWlyZShcInNjaGVkdWxlclwiKTtmdW5jdGlvbiBwKGEpe2Zvcih2YXIgYj1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2EsYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYis9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbY10pO3JldHVyblwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2ErXCI7IHZpc2l0IFwiK2IrXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwifXZhciBkYT1uZXcgU2V0LGVhPXt9O2Z1bmN0aW9uIGZhKGEsYil7aGEoYSxiKTtoYShhK1wiQ2FwdHVyZVwiLGIpfVxuZnVuY3Rpb24gaGEoYSxiKXtlYVthXT1iO2ZvcihhPTA7YTxiLmxlbmd0aDthKyspZGEuYWRkKGJbYV0pfVxudmFyIGlhPSEoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3d8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSxqYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGthPS9eWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokLyxsYT1cbnt9LG1hPXt9O2Z1bmN0aW9uIG9hKGEpe2lmKGphLmNhbGwobWEsYSkpcmV0dXJuITA7aWYoamEuY2FsbChsYSxhKSlyZXR1cm4hMTtpZihrYS50ZXN0KGEpKXJldHVybiBtYVthXT0hMDtsYVthXT0hMDtyZXR1cm4hMX1mdW5jdGlvbiBwYShhLGIsYyxkKXtpZihudWxsIT09YyYmMD09PWMudHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIGIpe2Nhc2UgXCJmdW5jdGlvblwiOmNhc2UgXCJzeW1ib2xcIjpyZXR1cm4hMDtjYXNlIFwiYm9vbGVhblwiOmlmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpcmV0dXJuIWMuYWNjZXB0c0Jvb2xlYW5zO2E9YS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7cmV0dXJuXCJkYXRhLVwiIT09YSYmXCJhcmlhLVwiIT09YTtkZWZhdWx0OnJldHVybiExfX1cbmZ1bmN0aW9uIHFhKGEsYixjLGQpe2lmKG51bGw9PT1ifHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIGJ8fHBhKGEsYixjLGQpKXJldHVybiEwO2lmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpc3dpdGNoKGMudHlwZSl7Y2FzZSAzOnJldHVybiFiO2Nhc2UgNDpyZXR1cm4hMT09PWI7Y2FzZSA1OnJldHVybiBpc05hTihiKTtjYXNlIDY6cmV0dXJuIGlzTmFOKGIpfHwxPmJ9cmV0dXJuITF9ZnVuY3Rpb24gdihhLGIsYyxkLGUsZixnKXt0aGlzLmFjY2VwdHNCb29sZWFucz0yPT09Ynx8Mz09PWJ8fDQ9PT1iO3RoaXMuYXR0cmlidXRlTmFtZT1kO3RoaXMuYXR0cmlidXRlTmFtZXNwYWNlPWU7dGhpcy5tdXN0VXNlUHJvcGVydHk9Yzt0aGlzLnByb3BlcnR5TmFtZT1hO3RoaXMudHlwZT1iO3RoaXMuc2FuaXRpemVVUkw9Zjt0aGlzLnJlbW92ZUVtcHR5U3RyaW5nPWd9dmFyIHo9e307XG5cImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwwLCExLGEsbnVsbCwhMSwhMSl9KTtbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiY2xhc3NOYW1lXCIsXCJjbGFzc1wiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWFbMF07eltiXT1uZXcgdihiLDEsITEsYVsxXSxudWxsLCExLCExKX0pO1tcImNvbnRlbnRFZGl0YWJsZVwiLFwiZHJhZ2dhYmxlXCIsXCJzcGVsbENoZWNrXCIsXCJ2YWx1ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwyLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuW1wiYXV0b1JldmVyc2VcIixcImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcIixcImZvY3VzYWJsZVwiLFwicHJlc2VydmVBbHBoYVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwyLCExLGEsbnVsbCwhMSwhMSl9KTtcImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMgYXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVyZUluUGljdHVyZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgZm9ybU5vVmFsaWRhdGUgaGlkZGVuIGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJlcXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMywhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbltcImNoZWNrZWRcIixcIm11bHRpcGxlXCIsXCJtdXRlZFwiLFwic2VsZWN0ZWRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMywhMCxhLG51bGwsITEsITEpfSk7W1wiY2FwdHVyZVwiLFwiZG93bmxvYWRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNCwhMSxhLG51bGwsITEsITEpfSk7W1wiY29sc1wiLFwicm93c1wiLFwic2l6ZVwiLFwic3BhblwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSw2LCExLGEsbnVsbCwhMSwhMSl9KTtbXCJyb3dTcGFuXCIsXCJzdGFydFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSw1LCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO3ZhciByYT0vW1xcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIHNhKGEpe3JldHVybiBhWzFdLnRvVXBwZXJDYXNlKCl9XG5cImFjY2VudC1oZWlnaHQgYWxpZ25tZW50LWJhc2VsaW5lIGFyYWJpYy1mb3JtIGJhc2VsaW5lLXNoaWZ0IGNhcC1oZWlnaHQgY2xpcC1wYXRoIGNsaXAtcnVsZSBjb2xvci1pbnRlcnBvbGF0aW9uIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyBjb2xvci1wcm9maWxlIGNvbG9yLXJlbmRlcmluZyBkb21pbmFudC1iYXNlbGluZSBlbmFibGUtYmFja2dyb3VuZCBmaWxsLW9wYWNpdHkgZmlsbC1ydWxlIGZsb29kLWNvbG9yIGZsb29kLW9wYWNpdHkgZm9udC1mYW1pbHkgZm9udC1zaXplIGZvbnQtc2l6ZS1hZGp1c3QgZm9udC1zdHJldGNoIGZvbnQtc3R5bGUgZm9udC12YXJpYW50IGZvbnQtd2VpZ2h0IGdseXBoLW5hbWUgZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCBnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCBob3Jpei1hZHYteCBob3Jpei1vcmlnaW4teCBpbWFnZS1yZW5kZXJpbmcgbGV0dGVyLXNwYWNpbmcgbGlnaHRpbmctY29sb3IgbWFya2VyLWVuZCBtYXJrZXItbWlkIG1hcmtlci1zdGFydCBvdmVybGluZS1wb3NpdGlvbiBvdmVybGluZS10aGlja25lc3MgcGFpbnQtb3JkZXIgcGFub3NlLTEgcG9pbnRlci1ldmVudHMgcmVuZGVyaW5nLWludGVudCBzaGFwZS1yZW5kZXJpbmcgc3RvcC1jb2xvciBzdG9wLW9wYWNpdHkgc3RyaWtldGhyb3VnaC1wb3NpdGlvbiBzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyBzdHJva2UtZGFzaGFycmF5IHN0cm9rZS1kYXNob2Zmc2V0IHN0cm9rZS1saW5lY2FwIHN0cm9rZS1saW5lam9pbiBzdHJva2UtbWl0ZXJsaW1pdCBzdHJva2Utb3BhY2l0eSBzdHJva2Utd2lkdGggdGV4dC1hbmNob3IgdGV4dC1kZWNvcmF0aW9uIHRleHQtcmVuZGVyaW5nIHVuZGVybGluZS1wb3NpdGlvbiB1bmRlcmxpbmUtdGhpY2tuZXNzIHVuaWNvZGUtYmlkaSB1bmljb2RlLXJhbmdlIHVuaXRzLXBlci1lbSB2LWFscGhhYmV0aWMgdi1oYW5naW5nIHYtaWRlb2dyYXBoaWMgdi1tYXRoZW1hdGljYWwgdmVjdG9yLWVmZmVjdCB2ZXJ0LWFkdi15IHZlcnQtb3JpZ2luLXggdmVydC1vcmlnaW4teSB3b3JkLXNwYWNpbmcgd3JpdGluZy1tb2RlIHhtbG5zOnhsaW5rIHgtaGVpZ2h0XCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHJhLFxuc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsbnVsbCwhMSwhMSl9KTtcInhsaW5rOmFjdHVhdGUgeGxpbms6YXJjcm9sZSB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxzYSk7eltiXT1uZXcgdihiLDEsITEsYSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMSwhMSl9KTtbXCJ4bWw6YmFzZVwiLFwieG1sOmxhbmdcIixcInhtbDpzcGFjZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxzYSk7eltiXT1uZXcgdihiLDEsITEsYSxcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiLCExLCExKX0pO1tcInRhYkluZGV4XCIsXCJjcm9zc09yaWdpblwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwxLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuei54bGlua0hyZWY9bmV3IHYoXCJ4bGlua0hyZWZcIiwxLCExLFwieGxpbms6aHJlZlwiLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCEwLCExKTtbXCJzcmNcIixcImhyZWZcIixcImFjdGlvblwiLFwiZm9ybUFjdGlvblwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwxLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCEwLCEwKX0pO1xuZnVuY3Rpb24gdGEoYSxiLGMsZCl7dmFyIGU9ei5oYXNPd25Qcm9wZXJ0eShiKT96W2JdOm51bGw7aWYobnVsbCE9PWU/MCE9PWUudHlwZTpkfHwhKDI8Yi5sZW5ndGgpfHxcIm9cIiE9PWJbMF0mJlwiT1wiIT09YlswXXx8XCJuXCIhPT1iWzFdJiZcIk5cIiE9PWJbMV0pcWEoYixjLGUsZCkmJihjPW51bGwpLGR8fG51bGw9PT1lP29hKGIpJiYobnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6YS5zZXRBdHRyaWJ1dGUoYixcIlwiK2MpKTplLm11c3RVc2VQcm9wZXJ0eT9hW2UucHJvcGVydHlOYW1lXT1udWxsPT09Yz8zPT09ZS50eXBlPyExOlwiXCI6YzooYj1lLmF0dHJpYnV0ZU5hbWUsZD1lLmF0dHJpYnV0ZU5hbWVzcGFjZSxudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTooZT1lLnR5cGUsYz0zPT09ZXx8ND09PWUmJiEwPT09Yz9cIlwiOlwiXCIrYyxkP2Euc2V0QXR0cmlidXRlTlMoZCxiLGMpOmEuc2V0QXR0cmlidXRlKGIsYykpKX1cbnZhciB1YT1hYS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCx2YT1TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSx3YT1TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLHlhPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSx6YT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksQWE9U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLEJhPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKSxDYT1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxEYT1TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksRWE9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLEZhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLEdhPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLEhhPVN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTtTeW1ib2wuZm9yKFwicmVhY3QuZGVidWdfdHJhY2VfbW9kZVwiKTtcbnZhciBJYT1TeW1ib2wuZm9yKFwicmVhY3Qub2Zmc2NyZWVuXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5sZWdhY3lfaGlkZGVuXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5jYWNoZVwiKTtTeW1ib2wuZm9yKFwicmVhY3QudHJhY2luZ19tYXJrZXJcIik7dmFyIEphPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBLYShhKXtpZihudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBhKXJldHVybiBudWxsO2E9SmEmJmFbSmFdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9dmFyIEE9T2JqZWN0LmFzc2lnbixMYTtmdW5jdGlvbiBNYShhKXtpZih2b2lkIDA9PT1MYSl0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2goYyl7dmFyIGI9Yy5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtMYT1iJiZiWzFdfHxcIlwifXJldHVyblwiXFxuXCIrTGErYX12YXIgTmE9ITE7XG5mdW5jdGlvbiBPYShhLGIpe2lmKCFhfHxOYSlyZXR1cm5cIlwiO05hPSEwO3ZhciBjPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYoYilpZihiPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLnByb3RvdHlwZSxcInByb3BzXCIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fX0pLFwib2JqZWN0XCI9PT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChiLFtdKX1jYXRjaChsKXt2YXIgZD1sfVJlZmxlY3QuY29uc3RydWN0KGEsW10sYil9ZWxzZXt0cnl7Yi5jYWxsKCl9Y2F0Y2gobCl7ZD1sfWEuY2FsbChiLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2gobCl7ZD1sfWEoKX19Y2F0Y2gobCl7aWYobCYmZCYmXCJzdHJpbmdcIj09PXR5cGVvZiBsLnN0YWNrKXtmb3IodmFyIGU9bC5zdGFjay5zcGxpdChcIlxcblwiKSxcbmY9ZC5zdGFjay5zcGxpdChcIlxcblwiKSxnPWUubGVuZ3RoLTEsaD1mLmxlbmd0aC0xOzE8PWcmJjA8PWgmJmVbZ10hPT1mW2hdOyloLS07Zm9yKDsxPD1nJiYwPD1oO2ctLSxoLS0paWYoZVtnXSE9PWZbaF0pe2lmKDEhPT1nfHwxIT09aCl7ZG8gaWYoZy0tLGgtLSwwPmh8fGVbZ10hPT1mW2hdKXt2YXIgaz1cIlxcblwiK2VbZ10ucmVwbGFjZShcIiBhdCBuZXcgXCIsXCIgYXQgXCIpO2EuZGlzcGxheU5hbWUmJmsuaW5jbHVkZXMoXCI8YW5vbnltb3VzPlwiKSYmKGs9ay5yZXBsYWNlKFwiPGFub255bW91cz5cIixhLmRpc3BsYXlOYW1lKSk7cmV0dXJuIGt9d2hpbGUoMTw9ZyYmMDw9aCl9YnJlYWt9fX1maW5hbGx5e05hPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPWN9cmV0dXJuKGE9YT9hLmRpc3BsYXlOYW1lfHxhLm5hbWU6XCJcIik/TWEoYSk6XCJcIn1cbmZ1bmN0aW9uIFBhKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnJldHVybiBNYShhLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIE1hKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBNYShcIlN1c3BlbnNlXCIpO2Nhc2UgMTk6cmV0dXJuIE1hKFwiU3VzcGVuc2VMaXN0XCIpO2Nhc2UgMDpjYXNlIDI6Y2FzZSAxNTpyZXR1cm4gYT1PYShhLnR5cGUsITEpLGE7Y2FzZSAxMTpyZXR1cm4gYT1PYShhLnR5cGUucmVuZGVyLCExKSxhO2Nhc2UgMTpyZXR1cm4gYT1PYShhLnR5cGUsITApLGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1cbmZ1bmN0aW9uIFFhKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGEuZGlzcGxheU5hbWV8fGEubmFtZXx8bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpcmV0dXJuIGE7c3dpdGNoKGEpe2Nhc2UgeWE6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2Ugd2E6cmV0dXJuXCJQb3J0YWxcIjtjYXNlIEFhOnJldHVyblwiUHJvZmlsZXJcIjtjYXNlIHphOnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgRWE6cmV0dXJuXCJTdXNwZW5zZVwiO2Nhc2UgRmE6cmV0dXJuXCJTdXNwZW5zZUxpc3RcIn1pZihcIm9iamVjdFwiPT09dHlwZW9mIGEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgQ2E6cmV0dXJuKGEuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgQmE6cmV0dXJuKGEuX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Qcm92aWRlclwiO2Nhc2UgRGE6dmFyIGI9YS5yZW5kZXI7YT1hLmRpc3BsYXlOYW1lO2F8fChhPWIuZGlzcGxheU5hbWV8fFxuYi5uYW1lfHxcIlwiLGE9XCJcIiE9PWE/XCJGb3J3YXJkUmVmKFwiK2ErXCIpXCI6XCJGb3J3YXJkUmVmXCIpO3JldHVybiBhO2Nhc2UgR2E6cmV0dXJuIGI9YS5kaXNwbGF5TmFtZXx8bnVsbCxudWxsIT09Yj9iOlFhKGEudHlwZSl8fFwiTWVtb1wiO2Nhc2UgSGE6Yj1hLl9wYXlsb2FkO2E9YS5faW5pdDt0cnl7cmV0dXJuIFFhKGEoYikpfWNhdGNoKGMpe319cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBSYShhKXt2YXIgYj1hLnR5cGU7c3dpdGNoKGEudGFnKXtjYXNlIDI0OnJldHVyblwiQ2FjaGVcIjtjYXNlIDk6cmV0dXJuKGIuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgMTA6cmV0dXJuKGIuX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Qcm92aWRlclwiO2Nhc2UgMTg6cmV0dXJuXCJEZWh5ZHJhdGVkRnJhZ21lbnRcIjtjYXNlIDExOnJldHVybiBhPWIucmVuZGVyLGE9YS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxcIlwiLGIuZGlzcGxheU5hbWV8fChcIlwiIT09YT9cIkZvcndhcmRSZWYoXCIrYStcIilcIjpcIkZvcndhcmRSZWZcIik7Y2FzZSA3OnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIDU6cmV0dXJuIGI7Y2FzZSA0OnJldHVyblwiUG9ydGFsXCI7Y2FzZSAzOnJldHVyblwiUm9vdFwiO2Nhc2UgNjpyZXR1cm5cIlRleHRcIjtjYXNlIDE2OnJldHVybiBRYShiKTtjYXNlIDg6cmV0dXJuIGI9PT16YT9cIlN0cmljdE1vZGVcIjpcIk1vZGVcIjtjYXNlIDIyOnJldHVyblwiT2Zmc2NyZWVuXCI7XG5jYXNlIDEyOnJldHVyblwiUHJvZmlsZXJcIjtjYXNlIDIxOnJldHVyblwiU2NvcGVcIjtjYXNlIDEzOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIDE5OnJldHVyblwiU3VzcGVuc2VMaXN0XCI7Y2FzZSAyNTpyZXR1cm5cIlRyYWNpbmdNYXJrZXJcIjtjYXNlIDE6Y2FzZSAwOmNhc2UgMTc6Y2FzZSAyOmNhc2UgMTQ6Y2FzZSAxNTppZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYilyZXR1cm4gYn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTYShhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgXCJib29sZWFuXCI6Y2FzZSBcIm51bWJlclwiOmNhc2UgXCJzdHJpbmdcIjpjYXNlIFwidW5kZWZpbmVkXCI6cmV0dXJuIGE7Y2FzZSBcIm9iamVjdFwiOnJldHVybiBhO2RlZmF1bHQ6cmV0dXJuXCJcIn19XG5mdW5jdGlvbiBUYShhKXt2YXIgYj1hLnR5cGU7cmV0dXJuKGE9YS5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWEudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWJ8fFwicmFkaW9cIj09PWIpfVxuZnVuY3Rpb24gVWEoYSl7dmFyIGI9VGEoYSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxiKSxkPVwiXCIrYVtiXTtpZighYS5oYXNPd25Qcm9wZXJ0eShiKSYmXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5nZXQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnNldCl7dmFyIGU9Yy5nZXQsZj1jLnNldDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGEpe2Q9XCJcIithO2YuY2FsbCh0aGlzLGEpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2VudW1lcmFibGU6Yy5lbnVtZXJhYmxlfSk7cmV0dXJue2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHNldFZhbHVlOmZ1bmN0aW9uKGEpe2Q9XCJcIithfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXthLl92YWx1ZVRyYWNrZXI9XG5udWxsO2RlbGV0ZSBhW2JdfX19fWZ1bmN0aW9uIFZhKGEpe2EuX3ZhbHVlVHJhY2tlcnx8KGEuX3ZhbHVlVHJhY2tlcj1VYShhKSl9ZnVuY3Rpb24gV2EoYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9YS5fdmFsdWVUcmFja2VyO2lmKCFiKXJldHVybiEwO3ZhciBjPWIuZ2V0VmFsdWUoKTt2YXIgZD1cIlwiO2EmJihkPVRhKGEpP2EuY2hlY2tlZD9cInRydWVcIjpcImZhbHNlXCI6YS52YWx1ZSk7YT1kO3JldHVybiBhIT09Yz8oYi5zZXRWYWx1ZShhKSwhMCk6ITF9ZnVuY3Rpb24gWGEoYSl7YT1hfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudHx8YS5ib2R5fWNhdGNoKGIpe3JldHVybiBhLmJvZHl9fVxuZnVuY3Rpb24gWWEoYSxiKXt2YXIgYz1iLmNoZWNrZWQ7cmV0dXJuIEEoe30sYix7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9Yz9jOmEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFphKGEsYil7dmFyIGM9bnVsbD09Yi5kZWZhdWx0VmFsdWU/XCJcIjpiLmRlZmF1bHRWYWx1ZSxkPW51bGwhPWIuY2hlY2tlZD9iLmNoZWNrZWQ6Yi5kZWZhdWx0Q2hlY2tlZDtjPVNhKG51bGwhPWIudmFsdWU/Yi52YWx1ZTpjKTthLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOmQsaW5pdGlhbFZhbHVlOmMsY29udHJvbGxlZDpcImNoZWNrYm94XCI9PT1iLnR5cGV8fFwicmFkaW9cIj09PWIudHlwZT9udWxsIT1iLmNoZWNrZWQ6bnVsbCE9Yi52YWx1ZX19ZnVuY3Rpb24gYWIoYSxiKXtiPWIuY2hlY2tlZDtudWxsIT1iJiZ0YShhLFwiY2hlY2tlZFwiLGIsITEpfVxuZnVuY3Rpb24gYmIoYSxiKXthYihhLGIpO3ZhciBjPVNhKGIudmFsdWUpLGQ9Yi50eXBlO2lmKG51bGwhPWMpaWYoXCJudW1iZXJcIj09PWQpe2lmKDA9PT1jJiZcIlwiPT09YS52YWx1ZXx8YS52YWx1ZSE9YylhLnZhbHVlPVwiXCIrY31lbHNlIGEudmFsdWUhPT1cIlwiK2MmJihhLnZhbHVlPVwiXCIrYyk7ZWxzZSBpZihcInN1Ym1pdFwiPT09ZHx8XCJyZXNldFwiPT09ZCl7YS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtyZXR1cm59Yi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpP2NiKGEsYi50eXBlLGMpOmIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikmJmNiKGEsYi50eXBlLFNhKGIuZGVmYXVsdFZhbHVlKSk7bnVsbD09Yi5jaGVja2VkJiZudWxsIT1iLmRlZmF1bHRDaGVja2VkJiYoYS5kZWZhdWx0Q2hlY2tlZD0hIWIuZGVmYXVsdENoZWNrZWQpfVxuZnVuY3Rpb24gZGIoYSxiLGMpe2lmKGIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKXx8Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSl7dmFyIGQ9Yi50eXBlO2lmKCEoXCJzdWJtaXRcIiE9PWQmJlwicmVzZXRcIiE9PWR8fHZvaWQgMCE9PWIudmFsdWUmJm51bGwhPT1iLnZhbHVlKSlyZXR1cm47Yj1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7Y3x8Yj09PWEudmFsdWV8fChhLnZhbHVlPWIpO2EuZGVmYXVsdFZhbHVlPWJ9Yz1hLm5hbWU7XCJcIiE9PWMmJihhLm5hbWU9XCJcIik7YS5kZWZhdWx0Q2hlY2tlZD0hIWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcIlwiIT09YyYmKGEubmFtZT1jKX1cbmZ1bmN0aW9uIGNiKGEsYixjKXtpZihcIm51bWJlclwiIT09Ynx8WGEoYS5vd25lckRvY3VtZW50KSE9PWEpbnVsbD09Yz9hLmRlZmF1bHRWYWx1ZT1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6YS5kZWZhdWx0VmFsdWUhPT1cIlwiK2MmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2MpfXZhciBlYj1BcnJheS5pc0FycmF5O1xuZnVuY3Rpb24gZmIoYSxiLGMsZCl7YT1hLm9wdGlvbnM7aWYoYil7Yj17fTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyliW1wiJFwiK2NbZV1dPSEwO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspZT1iLmhhc093blByb3BlcnR5KFwiJFwiK2FbY10udmFsdWUpLGFbY10uc2VsZWN0ZWQhPT1lJiYoYVtjXS5zZWxlY3RlZD1lKSxlJiZkJiYoYVtjXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Yz1cIlwiK1NhKGMpO2I9bnVsbDtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKXtpZihhW2VdLnZhbHVlPT09Yyl7YVtlXS5zZWxlY3RlZD0hMDtkJiYoYVtlXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1udWxsIT09Ynx8YVtlXS5kaXNhYmxlZHx8KGI9YVtlXSl9bnVsbCE9PWImJihiLnNlbGVjdGVkPSEwKX19XG5mdW5jdGlvbiBnYihhLGIpe2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpdGhyb3cgRXJyb3IocCg5MSkpO3JldHVybiBBKHt9LGIse3ZhbHVlOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLGNoaWxkcmVuOlwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGhiKGEsYil7dmFyIGM9Yi52YWx1ZTtpZihudWxsPT1jKXtjPWIuY2hpbGRyZW47Yj1iLmRlZmF1bHRWYWx1ZTtpZihudWxsIT1jKXtpZihudWxsIT1iKXRocm93IEVycm9yKHAoOTIpKTtpZihlYihjKSl7aWYoMTxjLmxlbmd0aCl0aHJvdyBFcnJvcihwKDkzKSk7Yz1jWzBdfWI9Y31udWxsPT1iJiYoYj1cIlwiKTtjPWJ9YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6U2EoYyl9fVxuZnVuY3Rpb24gaWIoYSxiKXt2YXIgYz1TYShiLnZhbHVlKSxkPVNhKGIuZGVmYXVsdFZhbHVlKTtudWxsIT1jJiYoYz1cIlwiK2MsYyE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSk7bnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrZCl9ZnVuY3Rpb24gamIoYSl7dmFyIGI9YS50ZXh0Q29udGVudDtiPT09YS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmXCJcIiE9PWImJm51bGwhPT1iJiYoYS52YWx1ZT1iKX1mdW5jdGlvbiBrYihhKXtzd2l0Y2goYSl7Y2FzZSBcInN2Z1wiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtjYXNlIFwibWF0aFwiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiO2RlZmF1bHQ6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCJ9fVxuZnVuY3Rpb24gbGIoYSxiKXtyZXR1cm4gbnVsbD09YXx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP2tiKGIpOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09PWEmJlwiZm9yZWlnbk9iamVjdFwiPT09Yj9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjphfVxudmFyIG1iLG5iPWZ1bmN0aW9uKGEpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgTVNBcHAmJk1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uP2Z1bmN0aW9uKGIsYyxkLGUpe01TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIGEoYixjLGQsZSl9KX06YX0oZnVuY3Rpb24oYSxiKXtpZihcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIhPT1hLm5hbWVzcGFjZVVSSXx8XCJpbm5lckhUTUxcImluIGEpYS5pbm5lckhUTUw9YjtlbHNle21iPW1ifHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO21iLmlubmVySFRNTD1cIjxzdmc+XCIrYi52YWx1ZU9mKCkudG9TdHJpbmcoKStcIjwvc3ZnPlwiO2ZvcihiPW1iLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtiLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQoYi5maXJzdENoaWxkKX19KTtcbmZ1bmN0aW9uIG9iKGEsYil7aWYoYil7dmFyIGM9YS5maXJzdENoaWxkO2lmKGMmJmM9PT1hLmxhc3RDaGlsZCYmMz09PWMubm9kZVR5cGUpe2Mubm9kZVZhbHVlPWI7cmV0dXJufX1hLnRleHRDb250ZW50PWJ9XG52YXIgcGI9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCxcbnpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0scWI9W1wiV2Via2l0XCIsXCJtc1wiLFwiTW96XCIsXCJPXCJdO09iamVjdC5rZXlzKHBiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3FiLmZvckVhY2goZnVuY3Rpb24oYil7Yj1iK2EuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSk7cGJbYl09cGJbYV19KX0pO2Z1bmN0aW9uIHJiKGEsYixjKXtyZXR1cm4gbnVsbD09Ynx8XCJib29sZWFuXCI9PT10eXBlb2YgYnx8XCJcIj09PWI/XCJcIjpjfHxcIm51bWJlclwiIT09dHlwZW9mIGJ8fDA9PT1ifHxwYi5oYXNPd25Qcm9wZXJ0eShhKSYmcGJbYV0/KFwiXCIrYikudHJpbSgpOmIrXCJweFwifVxuZnVuY3Rpb24gc2IoYSxiKXthPWEuc3R5bGU7Zm9yKHZhciBjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9MD09PWMuaW5kZXhPZihcIi0tXCIpLGU9cmIoYyxiW2NdLGQpO1wiZmxvYXRcIj09PWMmJihjPVwiY3NzRmxvYXRcIik7ZD9hLnNldFByb3BlcnR5KGMsZSk6YVtjXT1lfX12YXIgdGI9QSh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtcbmZ1bmN0aW9uIHViKGEsYil7aWYoYil7aWYodGJbYV0mJihudWxsIT1iLmNoaWxkcmVufHxudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihwKDEzNyxhKSk7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9Yi5jaGlsZHJlbil0aHJvdyBFcnJvcihwKDYwKSk7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKFwiX19odG1sXCJpbiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihwKDYxKSk7fWlmKG51bGwhPWIuc3R5bGUmJlwib2JqZWN0XCIhPT10eXBlb2YgYi5zdHlsZSl0aHJvdyBFcnJvcihwKDYyKSk7fX1cbmZ1bmN0aW9uIHZiKGEsYil7aWYoLTE9PT1hLmluZGV4T2YoXCItXCIpKXJldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYi5pcztzd2l0Y2goYSl7Y2FzZSBcImFubm90YXRpb24teG1sXCI6Y2FzZSBcImNvbG9yLXByb2ZpbGVcIjpjYXNlIFwiZm9udC1mYWNlXCI6Y2FzZSBcImZvbnQtZmFjZS1zcmNcIjpjYXNlIFwiZm9udC1mYWNlLXVyaVwiOmNhc2UgXCJmb250LWZhY2UtZm9ybWF0XCI6Y2FzZSBcImZvbnQtZmFjZS1uYW1lXCI6Y2FzZSBcIm1pc3NpbmctZ2x5cGhcIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgd2I9bnVsbDtmdW5jdGlvbiB4YihhKXthPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnR8fHdpbmRvdzthLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoYT1hLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KTtyZXR1cm4gMz09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmF9dmFyIHliPW51bGwsemI9bnVsbCxBYj1udWxsO1xuZnVuY3Rpb24gQmIoYSl7aWYoYT1DYihhKSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIHliKXRocm93IEVycm9yKHAoMjgwKSk7dmFyIGI9YS5zdGF0ZU5vZGU7YiYmKGI9RGIoYikseWIoYS5zdGF0ZU5vZGUsYS50eXBlLGIpKX19ZnVuY3Rpb24gRWIoYSl7emI/QWI/QWIucHVzaChhKTpBYj1bYV06emI9YX1mdW5jdGlvbiBGYigpe2lmKHpiKXt2YXIgYT16YixiPUFiO0FiPXpiPW51bGw7QmIoYSk7aWYoYilmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKUJiKGJbYV0pfX1mdW5jdGlvbiBHYihhLGIpe3JldHVybiBhKGIpfWZ1bmN0aW9uIEhiKCl7fXZhciBJYj0hMTtmdW5jdGlvbiBKYihhLGIsYyl7aWYoSWIpcmV0dXJuIGEoYixjKTtJYj0hMDt0cnl7cmV0dXJuIEdiKGEsYixjKX1maW5hbGx5e2lmKEliPSExLG51bGwhPT16Ynx8bnVsbCE9PUFiKUhiKCksRmIoKX19XG5mdW5jdGlvbiBLYihhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO2lmKG51bGw9PT1jKXJldHVybiBudWxsO3ZhciBkPURiKGMpO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2M9ZFtiXTthOnN3aXRjaChiKXtjYXNlIFwib25DbGlja1wiOmNhc2UgXCJvbkNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZSBcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VEb3duXCI6Y2FzZSBcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlTW92ZVwiOmNhc2UgXCJvbk1vdXNlTW92ZUNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZVVwXCI6Y2FzZSBcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlIFwib25Nb3VzZUVudGVyXCI6KGQ9IWQuZGlzYWJsZWQpfHwoYT1hLnR5cGUsZD0hKFwiYnV0dG9uXCI9PT1hfHxcImlucHV0XCI9PT1hfHxcInNlbGVjdFwiPT09YXx8XCJ0ZXh0YXJlYVwiPT09YSkpO2E9IWQ7YnJlYWsgYTtkZWZhdWx0OmE9ITF9aWYoYSlyZXR1cm4gbnVsbDtpZihjJiZcImZ1bmN0aW9uXCIhPT1cbnR5cGVvZiBjKXRocm93IEVycm9yKHAoMjMxLGIsdHlwZW9mIGMpKTtyZXR1cm4gY312YXIgTGI9ITE7aWYoaWEpdHJ5e3ZhciBNYj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTWIsXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe0xiPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLE1iLE1iKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIixNYixNYil9Y2F0Y2goYSl7TGI9ITF9ZnVuY3Rpb24gTmIoYSxiLGMsZCxlLGYsZyxoLGspe3ZhciBsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7Yi5hcHBseShjLGwpfWNhdGNoKG0pe3RoaXMub25FcnJvcihtKX19dmFyIE9iPSExLFBiPW51bGwsUWI9ITEsUmI9bnVsbCxTYj17b25FcnJvcjpmdW5jdGlvbihhKXtPYj0hMDtQYj1hfX07ZnVuY3Rpb24gVGIoYSxiLGMsZCxlLGYsZyxoLGspe09iPSExO1BiPW51bGw7TmIuYXBwbHkoU2IsYXJndW1lbnRzKX1cbmZ1bmN0aW9uIFViKGEsYixjLGQsZSxmLGcsaCxrKXtUYi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoT2Ipe2lmKE9iKXt2YXIgbD1QYjtPYj0hMTtQYj1udWxsfWVsc2UgdGhyb3cgRXJyb3IocCgxOTgpKTtRYnx8KFFiPSEwLFJiPWwpfX1mdW5jdGlvbiBWYihhKXt2YXIgYj1hLGM9YTtpZihhLmFsdGVybmF0ZSlmb3IoO2IucmV0dXJuOyliPWIucmV0dXJuO2Vsc2V7YT1iO2RvIGI9YSwwIT09KGIuZmxhZ3MmNDA5OCkmJihjPWIucmV0dXJuKSxhPWIucmV0dXJuO3doaWxlKGEpfXJldHVybiAzPT09Yi50YWc/YzpudWxsfWZ1bmN0aW9uIFdiKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09YiYmKGE9YS5hbHRlcm5hdGUsbnVsbCE9PWEmJihiPWEubWVtb2l6ZWRTdGF0ZSkpO2lmKG51bGwhPT1iKXJldHVybiBiLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWGIoYSl7aWYoVmIoYSkhPT1hKXRocm93IEVycm9yKHAoMTg4KSk7fVxuZnVuY3Rpb24gWWIoYSl7dmFyIGI9YS5hbHRlcm5hdGU7aWYoIWIpe2I9VmIoYSk7aWYobnVsbD09PWIpdGhyb3cgRXJyb3IocCgxODgpKTtyZXR1cm4gYiE9PWE/bnVsbDphfWZvcih2YXIgYz1hLGQ9Yjs7KXt2YXIgZT1jLnJldHVybjtpZihudWxsPT09ZSlicmVhazt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsPT09Zil7ZD1lLnJldHVybjtpZihudWxsIT09ZCl7Yz1kO2NvbnRpbnVlfWJyZWFrfWlmKGUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj1lLmNoaWxkO2Y7KXtpZihmPT09YylyZXR1cm4gWGIoZSksYTtpZihmPT09ZClyZXR1cm4gWGIoZSksYjtmPWYuc2libGluZ310aHJvdyBFcnJvcihwKDE4OCkpO31pZihjLnJldHVybiE9PWQucmV0dXJuKWM9ZSxkPWY7ZWxzZXtmb3IodmFyIGc9ITEsaD1lLmNoaWxkO2g7KXtpZihoPT09Yyl7Zz0hMDtjPWU7ZD1mO2JyZWFrfWlmKGg9PT1kKXtnPSEwO2Q9ZTtjPWY7YnJlYWt9aD1oLnNpYmxpbmd9aWYoIWcpe2ZvcihoPWYuY2hpbGQ7aDspe2lmKGg9PT1cbmMpe2c9ITA7Yz1mO2Q9ZTticmVha31pZihoPT09ZCl7Zz0hMDtkPWY7Yz1lO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXRocm93IEVycm9yKHAoMTg5KSk7fX1pZihjLmFsdGVybmF0ZSE9PWQpdGhyb3cgRXJyb3IocCgxOTApKTt9aWYoMyE9PWMudGFnKXRocm93IEVycm9yKHAoMTg4KSk7cmV0dXJuIGMuc3RhdGVOb2RlLmN1cnJlbnQ9PT1jP2E6Yn1mdW5jdGlvbiBaYihhKXthPVliKGEpO3JldHVybiBudWxsIT09YT8kYihhKTpudWxsfWZ1bmN0aW9uICRiKGEpe2lmKDU9PT1hLnRhZ3x8Nj09PWEudGFnKXJldHVybiBhO2ZvcihhPWEuY2hpbGQ7bnVsbCE9PWE7KXt2YXIgYj0kYihhKTtpZihudWxsIT09YilyZXR1cm4gYjthPWEuc2libGluZ31yZXR1cm4gbnVsbH1cbnZhciBhYz1jYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLGJjPWNhLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGNjPWNhLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGRjPWNhLnVuc3RhYmxlX3JlcXVlc3RQYWludCxCPWNhLnVuc3RhYmxlX25vdyxlYz1jYS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxmYz1jYS51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxnYz1jYS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxoYz1jYS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxpYz1jYS51bnN0YWJsZV9Mb3dQcmlvcml0eSxqYz1jYS51bnN0YWJsZV9JZGxlUHJpb3JpdHksa2M9bnVsbCxsYz1udWxsO2Z1bmN0aW9uIG1jKGEpe2lmKGxjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbGMub25Db21taXRGaWJlclJvb3QpdHJ5e2xjLm9uQ29tbWl0RmliZXJSb290KGtjLGEsdm9pZCAwLDEyOD09PShhLmN1cnJlbnQuZmxhZ3MmMTI4KSl9Y2F0Y2goYil7fX1cbnZhciBvYz1NYXRoLmNsejMyP01hdGguY2x6MzI6bmMscGM9TWF0aC5sb2cscWM9TWF0aC5MTjI7ZnVuY3Rpb24gbmMoYSl7YT4+Pj0wO3JldHVybiAwPT09YT8zMjozMS0ocGMoYSkvcWN8MCl8MH12YXIgcmM9NjQsc2M9NDE5NDMwNDtcbmZ1bmN0aW9uIHRjKGEpe3N3aXRjaChhJi1hKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gYSY0MTk0MjQwO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuIGEmMTMwMDIzNDI0O2Nhc2UgMTM0MjE3NzI4OnJldHVybiAxMzQyMTc3Mjg7Y2FzZSAyNjg0MzU0NTY6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlIDUzNjg3MDkxMjpyZXR1cm4gNTM2ODcwOTEyO2Nhc2UgMTA3Mzc0MTgyNDpyZXR1cm4gMTA3Mzc0MTgyNDtcbmRlZmF1bHQ6cmV0dXJuIGF9fWZ1bmN0aW9uIHVjKGEsYil7dmFyIGM9YS5wZW5kaW5nTGFuZXM7aWYoMD09PWMpcmV0dXJuIDA7dmFyIGQ9MCxlPWEuc3VzcGVuZGVkTGFuZXMsZj1hLnBpbmdlZExhbmVzLGc9YyYyNjg0MzU0NTU7aWYoMCE9PWcpe3ZhciBoPWcmfmU7MCE9PWg/ZD10YyhoKTooZiY9ZywwIT09ZiYmKGQ9dGMoZikpKX1lbHNlIGc9YyZ+ZSwwIT09Zz9kPXRjKGcpOjAhPT1mJiYoZD10YyhmKSk7aWYoMD09PWQpcmV0dXJuIDA7aWYoMCE9PWImJmIhPT1kJiYwPT09KGImZSkmJihlPWQmLWQsZj1iJi1iLGU+PWZ8fDE2PT09ZSYmMCE9PShmJjQxOTQyNDApKSlyZXR1cm4gYjswIT09KGQmNCkmJihkfD1jJjE2KTtiPWEuZW50YW5nbGVkTGFuZXM7aWYoMCE9PWIpZm9yKGE9YS5lbnRhbmdsZW1lbnRzLGImPWQ7MDxiOyljPTMxLW9jKGIpLGU9MTw8YyxkfD1hW2NdLGImPX5lO3JldHVybiBkfVxuZnVuY3Rpb24gdmMoYSxiKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIGIrMjUwO2Nhc2UgODpjYXNlIDE2OmNhc2UgMzI6Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gYis1RTM7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4tMTtjYXNlIDEzNDIxNzcyODpjYXNlIDI2ODQzNTQ1NjpjYXNlIDUzNjg3MDkxMjpjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuLTE7ZGVmYXVsdDpyZXR1cm4tMX19XG5mdW5jdGlvbiB3YyhhLGIpe2Zvcih2YXIgYz1hLnN1c3BlbmRlZExhbmVzLGQ9YS5waW5nZWRMYW5lcyxlPWEuZXhwaXJhdGlvblRpbWVzLGY9YS5wZW5kaW5nTGFuZXM7MDxmOyl7dmFyIGc9MzEtb2MoZiksaD0xPDxnLGs9ZVtnXTtpZigtMT09PWspe2lmKDA9PT0oaCZjKXx8MCE9PShoJmQpKWVbZ109dmMoaCxiKX1lbHNlIGs8PWImJihhLmV4cGlyZWRMYW5lc3w9aCk7ZiY9fmh9fWZ1bmN0aW9uIHhjKGEpe2E9YS5wZW5kaW5nTGFuZXMmLTEwNzM3NDE4MjU7cmV0dXJuIDAhPT1hP2E6YSYxMDczNzQxODI0PzEwNzM3NDE4MjQ6MH1mdW5jdGlvbiB5Yygpe3ZhciBhPXJjO3JjPDw9MTswPT09KHJjJjQxOTQyNDApJiYocmM9NjQpO3JldHVybiBhfWZ1bmN0aW9uIHpjKGEpe2Zvcih2YXIgYj1bXSxjPTA7MzE+YztjKyspYi5wdXNoKGEpO3JldHVybiBifVxuZnVuY3Rpb24gQWMoYSxiLGMpe2EucGVuZGluZ0xhbmVzfD1iOzUzNjg3MDkxMiE9PWImJihhLnN1c3BlbmRlZExhbmVzPTAsYS5waW5nZWRMYW5lcz0wKTthPWEuZXZlbnRUaW1lcztiPTMxLW9jKGIpO2FbYl09Y31mdW5jdGlvbiBCYyhhLGIpe3ZhciBjPWEucGVuZGluZ0xhbmVzJn5iO2EucGVuZGluZ0xhbmVzPWI7YS5zdXNwZW5kZWRMYW5lcz0wO2EucGluZ2VkTGFuZXM9MDthLmV4cGlyZWRMYW5lcyY9YjthLm11dGFibGVSZWFkTGFuZXMmPWI7YS5lbnRhbmdsZWRMYW5lcyY9YjtiPWEuZW50YW5nbGVtZW50czt2YXIgZD1hLmV2ZW50VGltZXM7Zm9yKGE9YS5leHBpcmF0aW9uVGltZXM7MDxjOyl7dmFyIGU9MzEtb2MoYyksZj0xPDxlO2JbZV09MDtkW2VdPS0xO2FbZV09LTE7YyY9fmZ9fVxuZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1hLmVudGFuZ2xlZExhbmVzfD1iO2ZvcihhPWEuZW50YW5nbGVtZW50cztjOyl7dmFyIGQ9MzEtb2MoYyksZT0xPDxkO2UmYnxhW2RdJmImJihhW2RdfD1iKTtjJj1+ZX19dmFyIEM9MDtmdW5jdGlvbiBEYyhhKXthJj0tYTtyZXR1cm4gMTxhPzQ8YT8wIT09KGEmMjY4NDM1NDU1KT8xNjo1MzY4NzA5MTI6NDoxfXZhciBFYyxGYyxHYyxIYyxJYyxKYz0hMSxLYz1bXSxMYz1udWxsLE1jPW51bGwsTmM9bnVsbCxPYz1uZXcgTWFwLFBjPW5ldyBNYXAsUWM9W10sUmM9XCJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0XCIuc3BsaXQoXCIgXCIpO1xuZnVuY3Rpb24gU2MoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjpjYXNlIFwiZm9jdXNvdXRcIjpMYz1udWxsO2JyZWFrO2Nhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6TWM9bnVsbDticmVhaztjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcIm1vdXNlb3V0XCI6TmM9bnVsbDticmVhaztjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcm91dFwiOk9jLmRlbGV0ZShiLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOlBjLmRlbGV0ZShiLnBvaW50ZXJJZCl9fVxuZnVuY3Rpb24gVGMoYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hfHxhLm5hdGl2ZUV2ZW50IT09ZilyZXR1cm4gYT17YmxvY2tlZE9uOmIsZG9tRXZlbnROYW1lOmMsZXZlbnRTeXN0ZW1GbGFnczpkLG5hdGl2ZUV2ZW50OmYsdGFyZ2V0Q29udGFpbmVyczpbZV19LG51bGwhPT1iJiYoYj1DYihiKSxudWxsIT09YiYmRmMoYikpLGE7YS5ldmVudFN5c3RlbUZsYWdzfD1kO2I9YS50YXJnZXRDb250YWluZXJzO251bGwhPT1lJiYtMT09PWIuaW5kZXhPZihlKSYmYi5wdXNoKGUpO3JldHVybiBhfVxuZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXtzd2l0Y2goYil7Y2FzZSBcImZvY3VzaW5cIjpyZXR1cm4gTGM9VGMoTGMsYSxiLGMsZCxlKSwhMDtjYXNlIFwiZHJhZ2VudGVyXCI6cmV0dXJuIE1jPVRjKE1jLGEsYixjLGQsZSksITA7Y2FzZSBcIm1vdXNlb3ZlclwiOnJldHVybiBOYz1UYyhOYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJwb2ludGVyb3ZlclwiOnZhciBmPWUucG9pbnRlcklkO09jLnNldChmLFRjKE9jLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKTtyZXR1cm4hMDtjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpyZXR1cm4gZj1lLnBvaW50ZXJJZCxQYy5zZXQoZixUYyhQYy5nZXQoZil8fG51bGwsYSxiLGMsZCxlKSksITB9cmV0dXJuITF9XG5mdW5jdGlvbiBWYyhhKXt2YXIgYj1XYyhhLnRhcmdldCk7aWYobnVsbCE9PWIpe3ZhciBjPVZiKGIpO2lmKG51bGwhPT1jKWlmKGI9Yy50YWcsMTM9PT1iKXtpZihiPVdiKGMpLG51bGwhPT1iKXthLmJsb2NrZWRPbj1iO0ljKGEucHJpb3JpdHksZnVuY3Rpb24oKXtHYyhjKX0pO3JldHVybn19ZWxzZSBpZigzPT09YiYmYy5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7YS5ibG9ja2VkT249Mz09PWMudGFnP2Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtyZXR1cm59fWEuYmxvY2tlZE9uPW51bGx9XG5mdW5jdGlvbiBYYyhhKXtpZihudWxsIT09YS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciBiPWEudGFyZ2V0Q29udGFpbmVyczswPGIubGVuZ3RoOyl7dmFyIGM9WWMoYS5kb21FdmVudE5hbWUsYS5ldmVudFN5c3RlbUZsYWdzLGJbMF0sYS5uYXRpdmVFdmVudCk7aWYobnVsbD09PWMpe2M9YS5uYXRpdmVFdmVudDt2YXIgZD1uZXcgYy5jb25zdHJ1Y3RvcihjLnR5cGUsYyk7d2I9ZDtjLnRhcmdldC5kaXNwYXRjaEV2ZW50KGQpO3diPW51bGx9ZWxzZSByZXR1cm4gYj1DYihjKSxudWxsIT09YiYmRmMoYiksYS5ibG9ja2VkT249YywhMTtiLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gWmMoYSxiLGMpe1hjKGEpJiZjLmRlbGV0ZShiKX1mdW5jdGlvbiAkYygpe0pjPSExO251bGwhPT1MYyYmWGMoTGMpJiYoTGM9bnVsbCk7bnVsbCE9PU1jJiZYYyhNYykmJihNYz1udWxsKTtudWxsIT09TmMmJlhjKE5jKSYmKE5jPW51bGwpO09jLmZvckVhY2goWmMpO1BjLmZvckVhY2goWmMpfVxuZnVuY3Rpb24gYWQoYSxiKXthLmJsb2NrZWRPbj09PWImJihhLmJsb2NrZWRPbj1udWxsLEpjfHwoSmM9ITAsY2EudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhjYS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwkYykpKX1cbmZ1bmN0aW9uIGJkKGEpe2Z1bmN0aW9uIGIoYil7cmV0dXJuIGFkKGIsYSl9aWYoMDxLYy5sZW5ndGgpe2FkKEtjWzBdLGEpO2Zvcih2YXIgYz0xO2M8S2MubGVuZ3RoO2MrKyl7dmFyIGQ9S2NbY107ZC5ibG9ja2VkT249PT1hJiYoZC5ibG9ja2VkT249bnVsbCl9fW51bGwhPT1MYyYmYWQoTGMsYSk7bnVsbCE9PU1jJiZhZChNYyxhKTtudWxsIT09TmMmJmFkKE5jLGEpO09jLmZvckVhY2goYik7UGMuZm9yRWFjaChiKTtmb3IoYz0wO2M8UWMubGVuZ3RoO2MrKylkPVFjW2NdLGQuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxRYy5sZW5ndGgmJihjPVFjWzBdLG51bGw9PT1jLmJsb2NrZWRPbik7KVZjKGMpLG51bGw9PT1jLmJsb2NrZWRPbiYmUWMuc2hpZnQoKX12YXIgY2Q9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsZGQ9ITA7XG5mdW5jdGlvbiBlZChhLGIsYyxkKXt2YXIgZT1DLGY9Y2QudHJhbnNpdGlvbjtjZC50cmFuc2l0aW9uPW51bGw7dHJ5e0M9MSxmZChhLGIsYyxkKX1maW5hbGx5e0M9ZSxjZC50cmFuc2l0aW9uPWZ9fWZ1bmN0aW9uIGdkKGEsYixjLGQpe3ZhciBlPUMsZj1jZC50cmFuc2l0aW9uO2NkLnRyYW5zaXRpb249bnVsbDt0cnl7Qz00LGZkKGEsYixjLGQpfWZpbmFsbHl7Qz1lLGNkLnRyYW5zaXRpb249Zn19XG5mdW5jdGlvbiBmZChhLGIsYyxkKXtpZihkZCl7dmFyIGU9WWMoYSxiLGMsZCk7aWYobnVsbD09PWUpaGQoYSxiLGQsaWQsYyksU2MoYSxkKTtlbHNlIGlmKFVjKGUsYSxiLGMsZCkpZC5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKFNjKGEsZCksYiY0JiYtMTxSYy5pbmRleE9mKGEpKXtmb3IoO251bGwhPT1lOyl7dmFyIGY9Q2IoZSk7bnVsbCE9PWYmJkVjKGYpO2Y9WWMoYSxiLGMsZCk7bnVsbD09PWYmJmhkKGEsYixkLGlkLGMpO2lmKGY9PT1lKWJyZWFrO2U9Zn1udWxsIT09ZSYmZC5zdG9wUHJvcGFnYXRpb24oKX1lbHNlIGhkKGEsYixkLG51bGwsYyl9fXZhciBpZD1udWxsO1xuZnVuY3Rpb24gWWMoYSxiLGMsZCl7aWQ9bnVsbDthPXhiKGQpO2E9V2MoYSk7aWYobnVsbCE9PWEpaWYoYj1WYihhKSxudWxsPT09YilhPW51bGw7ZWxzZSBpZihjPWIudGFnLDEzPT09Yyl7YT1XYihiKTtpZihudWxsIT09YSlyZXR1cm4gYTthPW51bGx9ZWxzZSBpZigzPT09Yyl7aWYoYi5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PWIudGFnP2Iuc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDthPW51bGx9ZWxzZSBiIT09YSYmKGE9bnVsbCk7aWQ9YTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGpkKGEpe3N3aXRjaChhKXtjYXNlIFwiY2FuY2VsXCI6Y2FzZSBcImNsaWNrXCI6Y2FzZSBcImNsb3NlXCI6Y2FzZSBcImNvbnRleHRtZW51XCI6Y2FzZSBcImNvcHlcIjpjYXNlIFwiY3V0XCI6Y2FzZSBcImF1eGNsaWNrXCI6Y2FzZSBcImRibGNsaWNrXCI6Y2FzZSBcImRyYWdlbmRcIjpjYXNlIFwiZHJhZ3N0YXJ0XCI6Y2FzZSBcImRyb3BcIjpjYXNlIFwiZm9jdXNpblwiOmNhc2UgXCJmb2N1c291dFwiOmNhc2UgXCJpbnB1dFwiOmNhc2UgXCJpbnZhbGlkXCI6Y2FzZSBcImtleWRvd25cIjpjYXNlIFwia2V5cHJlc3NcIjpjYXNlIFwia2V5dXBcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwicGFzdGVcIjpjYXNlIFwicGF1c2VcIjpjYXNlIFwicGxheVwiOmNhc2UgXCJwb2ludGVyY2FuY2VsXCI6Y2FzZSBcInBvaW50ZXJkb3duXCI6Y2FzZSBcInBvaW50ZXJ1cFwiOmNhc2UgXCJyYXRlY2hhbmdlXCI6Y2FzZSBcInJlc2V0XCI6Y2FzZSBcInJlc2l6ZVwiOmNhc2UgXCJzZWVrZWRcIjpjYXNlIFwic3VibWl0XCI6Y2FzZSBcInRvdWNoY2FuY2VsXCI6Y2FzZSBcInRvdWNoZW5kXCI6Y2FzZSBcInRvdWNoc3RhcnRcIjpjYXNlIFwidm9sdW1lY2hhbmdlXCI6Y2FzZSBcImNoYW5nZVwiOmNhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjpjYXNlIFwidGV4dElucHV0XCI6Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjpjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpjYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlIFwiYmVmb3JlYmx1clwiOmNhc2UgXCJhZnRlcmJsdXJcIjpjYXNlIFwiYmVmb3JlaW5wdXRcIjpjYXNlIFwiYmx1clwiOmNhc2UgXCJmdWxsc2NyZWVuY2hhbmdlXCI6Y2FzZSBcImZvY3VzXCI6Y2FzZSBcImhhc2hjaGFuZ2VcIjpjYXNlIFwicG9wc3RhdGVcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInNlbGVjdHN0YXJ0XCI6cmV0dXJuIDE7Y2FzZSBcImRyYWdcIjpjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdleGl0XCI6Y2FzZSBcImRyYWdsZWF2ZVwiOmNhc2UgXCJkcmFnb3ZlclwiOmNhc2UgXCJtb3VzZW1vdmVcIjpjYXNlIFwibW91c2VvdXRcIjpjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcInBvaW50ZXJtb3ZlXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwic2Nyb2xsXCI6Y2FzZSBcInRvZ2dsZVwiOmNhc2UgXCJ0b3VjaG1vdmVcIjpjYXNlIFwid2hlZWxcIjpjYXNlIFwibW91c2VlbnRlclwiOmNhc2UgXCJtb3VzZWxlYXZlXCI6Y2FzZSBcInBvaW50ZXJlbnRlclwiOmNhc2UgXCJwb2ludGVybGVhdmVcIjpyZXR1cm4gNDtcbmNhc2UgXCJtZXNzYWdlXCI6c3dpdGNoKGVjKCkpe2Nhc2UgZmM6cmV0dXJuIDE7Y2FzZSBnYzpyZXR1cm4gNDtjYXNlIGhjOmNhc2UgaWM6cmV0dXJuIDE2O2Nhc2UgamM6cmV0dXJuIDUzNjg3MDkxMjtkZWZhdWx0OnJldHVybiAxNn1kZWZhdWx0OnJldHVybiAxNn19dmFyIGtkPW51bGwsbGQ9bnVsbCxtZD1udWxsO2Z1bmN0aW9uIG5kKCl7aWYobWQpcmV0dXJuIG1kO3ZhciBhLGI9bGQsYz1iLmxlbmd0aCxkLGU9XCJ2YWx1ZVwiaW4ga2Q/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsZj1lLmxlbmd0aDtmb3IoYT0wO2E8YyYmYlthXT09PWVbYV07YSsrKTt2YXIgZz1jLWE7Zm9yKGQ9MTtkPD1nJiZiW2MtZF09PT1lW2YtZF07ZCsrKTtyZXR1cm4gbWQ9ZS5zbGljZShhLDE8ZD8xLWQ6dm9pZCAwKX1cbmZ1bmN0aW9uIG9kKGEpe3ZhciBiPWEua2V5Q29kZTtcImNoYXJDb2RlXCJpbiBhPyhhPWEuY2hhckNvZGUsMD09PWEmJjEzPT09YiYmKGE9MTMpKTphPWI7MTA9PT1hJiYoYT0xMyk7cmV0dXJuIDMyPD1hfHwxMz09PWE/YTowfWZ1bmN0aW9uIHBkKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWQoKXtyZXR1cm4hMX1cbmZ1bmN0aW9uIHJkKGEpe2Z1bmN0aW9uIGIoYixkLGUsZixnKXt0aGlzLl9yZWFjdE5hbWU9Yjt0aGlzLl90YXJnZXRJbnN0PWU7dGhpcy50eXBlPWQ7dGhpcy5uYXRpdmVFdmVudD1mO3RoaXMudGFyZ2V0PWc7dGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmKGI9YVtjXSx0aGlzW2NdPWI/YihmKTpmW2NdKTt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Zi5kZWZhdWx0UHJldmVudGVkP2YuZGVmYXVsdFByZXZlbnRlZDohMT09PWYucmV0dXJuVmFsdWUpP3BkOnFkO3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cWQ7cmV0dXJuIHRoaXN9QShiLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5yZXR1cm5WYWx1ZSYmXG4oYS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGQpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOlwidW5rbm93blwiIT09dHlwZW9mIGEuY2FuY2VsQnViYmxlJiYoYS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cGQpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6cGR9KTtyZXR1cm4gYn1cbnZhciBzZD17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSx0ZD1yZChzZCksdWQ9QSh7fSxzZCx7dmlldzowLGRldGFpbDowfSksdmQ9cmQodWQpLHdkLHhkLHlkLEFkPUEoe30sdWQse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6emQsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHZvaWQgMD09PWEucmVsYXRlZFRhcmdldD9hLmZyb21FbGVtZW50PT09YS5zcmNFbGVtZW50P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ6YS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oYSl7aWYoXCJtb3ZlbWVudFhcImluXG5hKXJldHVybiBhLm1vdmVtZW50WDthIT09eWQmJih5ZCYmXCJtb3VzZW1vdmVcIj09PWEudHlwZT8od2Q9YS5zY3JlZW5YLXlkLnNjcmVlblgseGQ9YS5zY3JlZW5ZLXlkLnNjcmVlblkpOnhkPXdkPTAseWQ9YSk7cmV0dXJuIHdkfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJtb3ZlbWVudFlcImluIGE/YS5tb3ZlbWVudFk6eGR9fSksQmQ9cmQoQWQpLENkPUEoe30sQWQse2RhdGFUcmFuc2ZlcjowfSksRGQ9cmQoQ2QpLEVkPUEoe30sdWQse3JlbGF0ZWRUYXJnZXQ6MH0pLEZkPXJkKEVkKSxHZD1BKHt9LHNkLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxIZD1yZChHZCksSWQ9QSh7fSxzZCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihhKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGE/YS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLEpkPXJkKElkKSxLZD1BKHt9LHNkLHtkYXRhOjB9KSxMZD1yZChLZCksTWQ9e0VzYzpcIkVzY2FwZVwiLFxuU3BhY2ViYXI6XCIgXCIsTGVmdDpcIkFycm93TGVmdFwiLFVwOlwiQXJyb3dVcFwiLFJpZ2h0OlwiQXJyb3dSaWdodFwiLERvd246XCJBcnJvd0Rvd25cIixEZWw6XCJEZWxldGVcIixXaW46XCJPU1wiLE1lbnU6XCJDb250ZXh0TWVudVwiLEFwcHM6XCJDb250ZXh0TWVudVwiLFNjcm9sbDpcIlNjcm9sbExvY2tcIixNb3pQcmludGFibGVLZXk6XCJVbmlkZW50aWZpZWRcIn0sTmQ9ezg6XCJCYWNrc3BhY2VcIiw5OlwiVGFiXCIsMTI6XCJDbGVhclwiLDEzOlwiRW50ZXJcIiwxNjpcIlNoaWZ0XCIsMTc6XCJDb250cm9sXCIsMTg6XCJBbHRcIiwxOTpcIlBhdXNlXCIsMjA6XCJDYXBzTG9ja1wiLDI3OlwiRXNjYXBlXCIsMzI6XCIgXCIsMzM6XCJQYWdlVXBcIiwzNDpcIlBhZ2VEb3duXCIsMzU6XCJFbmRcIiwzNjpcIkhvbWVcIiwzNzpcIkFycm93TGVmdFwiLDM4OlwiQXJyb3dVcFwiLDM5OlwiQXJyb3dSaWdodFwiLDQwOlwiQXJyb3dEb3duXCIsNDU6XCJJbnNlcnRcIiw0NjpcIkRlbGV0ZVwiLDExMjpcIkYxXCIsMTEzOlwiRjJcIiwxMTQ6XCJGM1wiLDExNTpcIkY0XCIsMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsXG4xMTk6XCJGOFwiLDEyMDpcIkY5XCIsMTIxOlwiRjEwXCIsMTIyOlwiRjExXCIsMTIzOlwiRjEyXCIsMTQ0OlwiTnVtTG9ja1wiLDE0NTpcIlNjcm9sbExvY2tcIiwyMjQ6XCJNZXRhXCJ9LE9kPXtBbHQ6XCJhbHRLZXlcIixDb250cm9sOlwiY3RybEtleVwiLE1ldGE6XCJtZXRhS2V5XCIsU2hpZnQ6XCJzaGlmdEtleVwifTtmdW5jdGlvbiBQZChhKXt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBiLmdldE1vZGlmaWVyU3RhdGU/Yi5nZXRNb2RpZmllclN0YXRlKGEpOihhPU9kW2FdKT8hIWJbYV06ITF9ZnVuY3Rpb24gemQoKXtyZXR1cm4gUGR9XG52YXIgUWQ9QSh7fSx1ZCx7a2V5OmZ1bmN0aW9uKGEpe2lmKGEua2V5KXt2YXIgYj1NZFthLmtleV18fGEua2V5O2lmKFwiVW5pZGVudGlmaWVkXCIhPT1iKXJldHVybiBifXJldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT8oYT1vZChhKSwxMz09PWE/XCJFbnRlclwiOlN0cmluZy5mcm9tQ2hhckNvZGUoYSkpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/TmRbYS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxjaGFyQ29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/b2QoYSk6MH0sa2V5Q29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1cbmEudHlwZT9vZChhKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfX0pLFJkPXJkKFFkKSxTZD1BKHt9LEFkLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLFRkPXJkKFNkKSxVZD1BKHt9LHVkLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6emR9KSxWZD1yZChVZCksV2Q9QSh7fSxzZCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxYZD1yZChXZCksWWQ9QSh7fSxBZCx7ZGVsdGFYOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFYXCJpbiBhP2EuZGVsdGFYOlwid2hlZWxEZWx0YVhcImluIGE/LWEud2hlZWxEZWx0YVg6MH0sXG5kZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVlcImluIGE/YS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gYT8tYS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLFpkPXJkKFlkKSwkZD1bOSwxMywyNywzMl0sYWU9aWEmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LGJlPW51bGw7aWEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKGJlPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGNlPWlhJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhYmUsZGU9aWEmJighYWV8fGJlJiY4PGJlJiYxMT49YmUpLGVlPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLGZlPSExO1xuZnVuY3Rpb24gZ2UoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImtleXVwXCI6cmV0dXJuLTEhPT0kZC5pbmRleE9mKGIua2V5Q29kZSk7Y2FzZSBcImtleWRvd25cIjpyZXR1cm4gMjI5IT09Yi5rZXlDb2RlO2Nhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwiZm9jdXNvdXRcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBoZShhKXthPWEuZGV0YWlsO3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmXCJkYXRhXCJpbiBhP2EuZGF0YTpudWxsfXZhciBpZT0hMTtmdW5jdGlvbiBqZShhLGIpe3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gaGUoYik7Y2FzZSBcImtleXByZXNzXCI6aWYoMzIhPT1iLndoaWNoKXJldHVybiBudWxsO2ZlPSEwO3JldHVybiBlZTtjYXNlIFwidGV4dElucHV0XCI6cmV0dXJuIGE9Yi5kYXRhLGE9PT1lZSYmZmU/bnVsbDphO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24ga2UoYSxiKXtpZihpZSlyZXR1cm5cImNvbXBvc2l0aW9uZW5kXCI9PT1hfHwhYWUmJmdlKGEsYik/KGE9bmQoKSxtZD1sZD1rZD1udWxsLGllPSExLGEpOm51bGw7c3dpdGNoKGEpe2Nhc2UgXCJwYXN0ZVwiOnJldHVybiBudWxsO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKCEoYi5jdHJsS2V5fHxiLmFsdEtleXx8Yi5tZXRhS2V5KXx8Yi5jdHJsS2V5JiZiLmFsdEtleSl7aWYoYi5jaGFyJiYxPGIuY2hhci5sZW5ndGgpcmV0dXJuIGIuY2hhcjtpZihiLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGIud2hpY2gpfXJldHVybiBudWxsO2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBkZSYmXCJrb1wiIT09Yi5sb2NhbGU/bnVsbDpiLmRhdGE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG52YXIgbGU9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbWUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWI/ISFsZVthLnR5cGVdOlwidGV4dGFyZWFcIj09PWI/ITA6ITF9ZnVuY3Rpb24gbmUoYSxiLGMsZCl7RWIoZCk7Yj1vZShiLFwib25DaGFuZ2VcIik7MDxiLmxlbmd0aCYmKGM9bmV3IHRkKFwib25DaGFuZ2VcIixcImNoYW5nZVwiLG51bGwsYyxkKSxhLnB1c2goe2V2ZW50OmMsbGlzdGVuZXJzOmJ9KSl9dmFyIHBlPW51bGwscWU9bnVsbDtmdW5jdGlvbiByZShhKXtzZShhLDApfWZ1bmN0aW9uIHRlKGEpe3ZhciBiPXVlKGEpO2lmKFdhKGIpKXJldHVybiBhfVxuZnVuY3Rpb24gdmUoYSxiKXtpZihcImNoYW5nZVwiPT09YSlyZXR1cm4gYn12YXIgd2U9ITE7aWYoaWEpe3ZhciB4ZTtpZihpYSl7dmFyIHllPVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIXllKXt2YXIgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt6ZS5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpO3llPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB6ZS5vbmlucHV0fXhlPXllfWVsc2UgeGU9ITE7d2U9eGUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gQWUoKXtwZSYmKHBlLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSxxZT1wZT1udWxsKX1mdW5jdGlvbiBCZShhKXtpZihcInZhbHVlXCI9PT1hLnByb3BlcnR5TmFtZSYmdGUocWUpKXt2YXIgYj1bXTtuZShiLHFlLGEseGIoYSkpO0piKHJlLGIpfX1cbmZ1bmN0aW9uIENlKGEsYixjKXtcImZvY3VzaW5cIj09PWE/KEFlKCkscGU9YixxZT1jLHBlLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSk6XCJmb2N1c291dFwiPT09YSYmQWUoKX1mdW5jdGlvbiBEZShhKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09YXx8XCJrZXl1cFwiPT09YXx8XCJrZXlkb3duXCI9PT1hKXJldHVybiB0ZShxZSl9ZnVuY3Rpb24gRWUoYSxiKXtpZihcImNsaWNrXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBGZShhLGIpe2lmKFwiaW5wdXRcIj09PWF8fFwiY2hhbmdlXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiBhPT09YiYmKDAhPT1hfHwxL2E9PT0xL2IpfHxhIT09YSYmYiE9PWJ9dmFyIEhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOkdlO1xuZnVuY3Rpb24gSWUoYSxiKXtpZihIZShhLGIpKXJldHVybiEwO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYXx8bnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYnx8bnVsbD09PWIpcmV0dXJuITE7dmFyIGM9T2JqZWN0LmtleXMoYSksZD1PYmplY3Qua2V5cyhiKTtpZihjLmxlbmd0aCE9PWQubGVuZ3RoKXJldHVybiExO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07aWYoIWphLmNhbGwoYixlKXx8IUhlKGFbZV0sYltlXSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gSmUoYSl7Zm9yKDthJiZhLmZpcnN0Q2hpbGQ7KWE9YS5maXJzdENoaWxkO3JldHVybiBhfVxuZnVuY3Rpb24gS2UoYSxiKXt2YXIgYz1KZShhKTthPTA7Zm9yKHZhciBkO2M7KXtpZigzPT09Yy5ub2RlVHlwZSl7ZD1hK2MudGV4dENvbnRlbnQubGVuZ3RoO2lmKGE8PWImJmQ+PWIpcmV0dXJue25vZGU6YyxvZmZzZXQ6Yi1hfTthPWR9YTp7Zm9yKDtjOyl7aWYoYy5uZXh0U2libGluZyl7Yz1jLm5leHRTaWJsaW5nO2JyZWFrIGF9Yz1jLnBhcmVudE5vZGV9Yz12b2lkIDB9Yz1KZShjKX19ZnVuY3Rpb24gTGUoYSxiKXtyZXR1cm4gYSYmYj9hPT09Yj8hMDphJiYzPT09YS5ub2RlVHlwZT8hMTpiJiYzPT09Yi5ub2RlVHlwZT9MZShhLGIucGFyZW50Tm9kZSk6XCJjb250YWluc1wiaW4gYT9hLmNvbnRhaW5zKGIpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik6ITE6ITF9XG5mdW5jdGlvbiBNZSgpe2Zvcih2YXIgYT13aW5kb3csYj1YYSgpO2IgaW5zdGFuY2VvZiBhLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBjPVwic3RyaW5nXCI9PT10eXBlb2YgYi5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZCl7Yz0hMX1pZihjKWE9Yi5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7Yj1YYShhLmRvY3VtZW50KX1yZXR1cm4gYn1mdW5jdGlvbiBOZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGImJihcImlucHV0XCI9PT1iJiYoXCJ0ZXh0XCI9PT1hLnR5cGV8fFwic2VhcmNoXCI9PT1hLnR5cGV8fFwidGVsXCI9PT1hLnR5cGV8fFwidXJsXCI9PT1hLnR5cGV8fFwicGFzc3dvcmRcIj09PWEudHlwZSl8fFwidGV4dGFyZWFcIj09PWJ8fFwidHJ1ZVwiPT09YS5jb250ZW50RWRpdGFibGUpfVxuZnVuY3Rpb24gT2UoYSl7dmFyIGI9TWUoKSxjPWEuZm9jdXNlZEVsZW0sZD1hLnNlbGVjdGlvblJhbmdlO2lmKGIhPT1jJiZjJiZjLm93bmVyRG9jdW1lbnQmJkxlKGMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYykpe2lmKG51bGwhPT1kJiZOZShjKSlpZihiPWQuc3RhcnQsYT1kLmVuZCx2b2lkIDA9PT1hJiYoYT1iKSxcInNlbGVjdGlvblN0YXJ0XCJpbiBjKWMuc2VsZWN0aW9uU3RhcnQ9YixjLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihhLGMudmFsdWUubGVuZ3RoKTtlbHNlIGlmKGE9KGI9Yy5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJmIuZGVmYXVsdFZpZXd8fHdpbmRvdyxhLmdldFNlbGVjdGlvbil7YT1hLmdldFNlbGVjdGlvbigpO3ZhciBlPWMudGV4dENvbnRlbnQubGVuZ3RoLGY9TWF0aC5taW4oZC5zdGFydCxlKTtkPXZvaWQgMD09PWQuZW5kP2Y6TWF0aC5taW4oZC5lbmQsZSk7IWEuZXh0ZW5kJiZmPmQmJihlPWQsZD1mLGY9ZSk7ZT1LZShjLGYpO3ZhciBnPUtlKGMsXG5kKTtlJiZnJiYoMSE9PWEucmFuZ2VDb3VudHx8YS5hbmNob3JOb2RlIT09ZS5ub2RlfHxhLmFuY2hvck9mZnNldCE9PWUub2Zmc2V0fHxhLmZvY3VzTm9kZSE9PWcubm9kZXx8YS5mb2N1c09mZnNldCE9PWcub2Zmc2V0KSYmKGI9Yi5jcmVhdGVSYW5nZSgpLGIuc2V0U3RhcnQoZS5ub2RlLGUub2Zmc2V0KSxhLnJlbW92ZUFsbFJhbmdlcygpLGY+ZD8oYS5hZGRSYW5nZShiKSxhLmV4dGVuZChnLm5vZGUsZy5vZmZzZXQpKTooYi5zZXRFbmQoZy5ub2RlLGcub2Zmc2V0KSxhLmFkZFJhbmdlKGIpKSl9Yj1bXTtmb3IoYT1jO2E9YS5wYXJlbnROb2RlOykxPT09YS5ub2RlVHlwZSYmYi5wdXNoKHtlbGVtZW50OmEsbGVmdDphLnNjcm9sbExlZnQsdG9wOmEuc2Nyb2xsVG9wfSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGMuZm9jdXMmJmMuZm9jdXMoKTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWE9YltjXSxhLmVsZW1lbnQuc2Nyb2xsTGVmdD1hLmxlZnQsYS5lbGVtZW50LnNjcm9sbFRvcD1hLnRvcH19XG52YXIgUGU9aWEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxRZT1udWxsLFJlPW51bGwsU2U9bnVsbCxUZT0hMTtcbmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD1jLndpbmRvdz09PWM/Yy5kb2N1bWVudDo5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudDtUZXx8bnVsbD09UWV8fFFlIT09WGEoZCl8fChkPVFlLFwic2VsZWN0aW9uU3RhcnRcImluIGQmJk5lKGQpP2Q9e3N0YXJ0OmQuc2VsZWN0aW9uU3RhcnQsZW5kOmQuc2VsZWN0aW9uRW5kfTooZD0oZC5vd25lckRvY3VtZW50JiZkLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCksZD17YW5jaG9yTm9kZTpkLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OmQuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpkLmZvY3VzTm9kZSxmb2N1c09mZnNldDpkLmZvY3VzT2Zmc2V0fSksU2UmJkllKFNlLGQpfHwoU2U9ZCxkPW9lKFJlLFwib25TZWxlY3RcIiksMDxkLmxlbmd0aCYmKGI9bmV3IHRkKFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsYixjKSxhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmR9KSxiLnRhcmdldD1RZSkpKX1cbmZ1bmN0aW9uIFZlKGEsYil7dmFyIGM9e307Y1thLnRvTG93ZXJDYXNlKCldPWIudG9Mb3dlckNhc2UoKTtjW1wiV2Via2l0XCIrYV09XCJ3ZWJraXRcIitiO2NbXCJNb3pcIithXT1cIm1velwiK2I7cmV0dXJuIGN9dmFyIFdlPXthbmltYXRpb25lbmQ6VmUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246VmUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpWZShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpWZShcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LFhlPXt9LFllPXt9O1xuaWEmJihZZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBXZS5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBXZS5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBXZS5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBXZS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIFplKGEpe2lmKFhlW2FdKXJldHVybiBYZVthXTtpZighV2VbYV0pcmV0dXJuIGE7dmFyIGI9V2VbYV0sYztmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gWWUpcmV0dXJuIFhlW2FdPWJbY107cmV0dXJuIGF9dmFyICRlPVplKFwiYW5pbWF0aW9uZW5kXCIpLGFmPVplKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLGJmPVplKFwiYW5pbWF0aW9uc3RhcnRcIiksY2Y9WmUoXCJ0cmFuc2l0aW9uZW5kXCIpLGRmPW5ldyBNYXAsZWY9XCJhYm9ydCBhdXhDbGljayBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbFwiLnNwbGl0KFwiIFwiKTtcbmZ1bmN0aW9uIGZmKGEsYil7ZGYuc2V0KGEsYik7ZmEoYixbYV0pfWZvcih2YXIgZ2Y9MDtnZjxlZi5sZW5ndGg7Z2YrKyl7dmFyIGhmPWVmW2dmXSxqZj1oZi50b0xvd2VyQ2FzZSgpLGtmPWhmWzBdLnRvVXBwZXJDYXNlKCkraGYuc2xpY2UoMSk7ZmYoamYsXCJvblwiK2tmKX1mZigkZSxcIm9uQW5pbWF0aW9uRW5kXCIpO2ZmKGFmLFwib25BbmltYXRpb25JdGVyYXRpb25cIik7ZmYoYmYsXCJvbkFuaW1hdGlvblN0YXJ0XCIpO2ZmKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIik7ZmYoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpO2ZmKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKTtmZihjZixcIm9uVHJhbnNpdGlvbkVuZFwiKTtoYShcIm9uTW91c2VFbnRlclwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pO2hhKFwib25Nb3VzZUxlYXZlXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSk7aGEoXCJvblBvaW50ZXJFbnRlclwiLFtcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdKTtcbmhhKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSk7ZmEoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2ZhKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSk7ZmEoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKTtmYShcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtmYShcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7XG5mYShcIm9uQ29tcG9zaXRpb25VcGRhdGVcIixcImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTt2YXIgbGY9XCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFwiIFwiKSxtZj1uZXcgU2V0KFwiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChsZikpO1xuZnVuY3Rpb24gbmYoYSxiLGMpe3ZhciBkPWEudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7YS5jdXJyZW50VGFyZ2V0PWM7VWIoZCxiLHZvaWQgMCxhKTthLmN1cnJlbnRUYXJnZXQ9bnVsbH1cbmZ1bmN0aW9uIHNlKGEsYil7Yj0wIT09KGImNCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmV2ZW50O2Q9ZC5saXN0ZW5lcnM7YTp7dmFyIGY9dm9pZCAwO2lmKGIpZm9yKHZhciBnPWQubGVuZ3RoLTE7MDw9ZztnLS0pe3ZhciBoPWRbZ10saz1oLmluc3RhbmNlLGw9aC5jdXJyZW50VGFyZ2V0O2g9aC5saXN0ZW5lcjtpZihrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7bmYoZSxoLGwpO2Y9a31lbHNlIGZvcihnPTA7ZzxkLmxlbmd0aDtnKyspe2g9ZFtnXTtrPWguaW5zdGFuY2U7bD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtuZihlLGgsbCk7Zj1rfX19aWYoUWIpdGhyb3cgYT1SYixRYj0hMSxSYj1udWxsLGE7fVxuZnVuY3Rpb24gRChhLGIpe3ZhciBjPWJbb2ZdO3ZvaWQgMD09PWMmJihjPWJbb2ZdPW5ldyBTZXQpO3ZhciBkPWErXCJfX2J1YmJsZVwiO2MuaGFzKGQpfHwocGYoYixhLDIsITEpLGMuYWRkKGQpKX1mdW5jdGlvbiBxZihhLGIsYyl7dmFyIGQ9MDtiJiYoZHw9NCk7cGYoYyxhLGQsYil9dmFyIHJmPVwiX3JlYWN0TGlzdGVuaW5nXCIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gc2YoYSl7aWYoIWFbcmZdKXthW3JmXT0hMDtkYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1wic2VsZWN0aW9uY2hhbmdlXCIhPT1iJiYobWYuaGFzKGIpfHxxZihiLCExLGEpLHFmKGIsITAsYSkpfSk7dmFyIGI9OT09PWEubm9kZVR5cGU/YTphLm93bmVyRG9jdW1lbnQ7bnVsbD09PWJ8fGJbcmZdfHwoYltyZl09ITAscWYoXCJzZWxlY3Rpb25jaGFuZ2VcIiwhMSxiKSl9fVxuZnVuY3Rpb24gcGYoYSxiLGMsZCl7c3dpdGNoKGpkKGIpKXtjYXNlIDE6dmFyIGU9ZWQ7YnJlYWs7Y2FzZSA0OmU9Z2Q7YnJlYWs7ZGVmYXVsdDplPWZkfWM9ZS5iaW5kKG51bGwsYixjLGEpO2U9dm9pZCAwOyFMYnx8XCJ0b3VjaHN0YXJ0XCIhPT1iJiZcInRvdWNobW92ZVwiIT09YiYmXCJ3aGVlbFwiIT09Ynx8KGU9ITApO2Q/dm9pZCAwIT09ZT9hLmFkZEV2ZW50TGlzdGVuZXIoYixjLHtjYXB0dXJlOiEwLHBhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITApOnZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7cGFzc2l2ZTplfSk6YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSl9XG5mdW5jdGlvbiBoZChhLGIsYyxkLGUpe3ZhciBmPWQ7aWYoMD09PShiJjEpJiYwPT09KGImMikmJm51bGwhPT1kKWE6Zm9yKDs7KXtpZihudWxsPT09ZClyZXR1cm47dmFyIGc9ZC50YWc7aWYoMz09PWd8fDQ9PT1nKXt2YXIgaD1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2lmKGg9PT1lfHw4PT09aC5ub2RlVHlwZSYmaC5wYXJlbnROb2RlPT09ZSlicmVhaztpZig0PT09Zylmb3IoZz1kLnJldHVybjtudWxsIT09Zzspe3ZhciBrPWcudGFnO2lmKDM9PT1rfHw0PT09aylpZihrPWcuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8saz09PWV8fDg9PT1rLm5vZGVUeXBlJiZrLnBhcmVudE5vZGU9PT1lKXJldHVybjtnPWcucmV0dXJufWZvcig7bnVsbCE9PWg7KXtnPVdjKGgpO2lmKG51bGw9PT1nKXJldHVybjtrPWcudGFnO2lmKDU9PT1rfHw2PT09ayl7ZD1mPWc7Y29udGludWUgYX1oPWgucGFyZW50Tm9kZX19ZD1kLnJldHVybn1KYihmdW5jdGlvbigpe3ZhciBkPWYsZT14YihjKSxnPVtdO1xuYTp7dmFyIGg9ZGYuZ2V0KGEpO2lmKHZvaWQgMCE9PWgpe3ZhciBrPXRkLG49YTtzd2l0Y2goYSl7Y2FzZSBcImtleXByZXNzXCI6aWYoMD09PW9kKGMpKWJyZWFrIGE7Y2FzZSBcImtleWRvd25cIjpjYXNlIFwia2V5dXBcIjprPVJkO2JyZWFrO2Nhc2UgXCJmb2N1c2luXCI6bj1cImZvY3VzXCI7az1GZDticmVhaztjYXNlIFwiZm9jdXNvdXRcIjpuPVwiYmx1clwiO2s9RmQ7YnJlYWs7Y2FzZSBcImJlZm9yZWJsdXJcIjpjYXNlIFwiYWZ0ZXJibHVyXCI6az1GZDticmVhaztjYXNlIFwiY2xpY2tcIjppZigyPT09Yy5idXR0b24pYnJlYWsgYTtjYXNlIFwiYXV4Y2xpY2tcIjpjYXNlIFwiZGJsY2xpY2tcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcIm1vdXNlbW92ZVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcIm1vdXNlb3V0XCI6Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJjb250ZXh0bWVudVwiOms9QmQ7YnJlYWs7Y2FzZSBcImRyYWdcIjpjYXNlIFwiZHJhZ2VuZFwiOmNhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2V4aXRcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6Y2FzZSBcImRyYWdvdmVyXCI6Y2FzZSBcImRyYWdzdGFydFwiOmNhc2UgXCJkcm9wXCI6az1cbkRkO2JyZWFrO2Nhc2UgXCJ0b3VjaGNhbmNlbFwiOmNhc2UgXCJ0b3VjaGVuZFwiOmNhc2UgXCJ0b3VjaG1vdmVcIjpjYXNlIFwidG91Y2hzdGFydFwiOms9VmQ7YnJlYWs7Y2FzZSAkZTpjYXNlIGFmOmNhc2UgYmY6az1IZDticmVhaztjYXNlIGNmOms9WGQ7YnJlYWs7Y2FzZSBcInNjcm9sbFwiOms9dmQ7YnJlYWs7Y2FzZSBcIndoZWVsXCI6az1aZDticmVhaztjYXNlIFwiY29weVwiOmNhc2UgXCJjdXRcIjpjYXNlIFwicGFzdGVcIjprPUpkO2JyZWFrO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwicG9pbnRlcmNhbmNlbFwiOmNhc2UgXCJwb2ludGVyZG93blwiOmNhc2UgXCJwb2ludGVybW92ZVwiOmNhc2UgXCJwb2ludGVyb3V0XCI6Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInBvaW50ZXJ1cFwiOms9VGR9dmFyIHQ9MCE9PShiJjQpLEo9IXQmJlwic2Nyb2xsXCI9PT1hLHg9dD9udWxsIT09aD9oK1wiQ2FwdHVyZVwiOm51bGw6aDt0PVtdO2Zvcih2YXIgdz1kLHU7bnVsbCE9PVxudzspe3U9dzt2YXIgRj11LnN0YXRlTm9kZTs1PT09dS50YWcmJm51bGwhPT1GJiYodT1GLG51bGwhPT14JiYoRj1LYih3LHgpLG51bGwhPUYmJnQucHVzaCh0Zih3LEYsdSkpKSk7aWYoSilicmVhazt3PXcucmV0dXJufTA8dC5sZW5ndGgmJihoPW5ldyBrKGgsbixudWxsLGMsZSksZy5wdXNoKHtldmVudDpoLGxpc3RlbmVyczp0fSkpfX1pZigwPT09KGImNykpe2E6e2g9XCJtb3VzZW92ZXJcIj09PWF8fFwicG9pbnRlcm92ZXJcIj09PWE7az1cIm1vdXNlb3V0XCI9PT1hfHxcInBvaW50ZXJvdXRcIj09PWE7aWYoaCYmYyE9PXdiJiYobj1jLnJlbGF0ZWRUYXJnZXR8fGMuZnJvbUVsZW1lbnQpJiYoV2Mobil8fG5bdWZdKSlicmVhayBhO2lmKGt8fGgpe2g9ZS53aW5kb3c9PT1lP2U6KGg9ZS5vd25lckRvY3VtZW50KT9oLmRlZmF1bHRWaWV3fHxoLnBhcmVudFdpbmRvdzp3aW5kb3c7aWYoayl7aWYobj1jLnJlbGF0ZWRUYXJnZXR8fGMudG9FbGVtZW50LGs9ZCxuPW4/V2Mobik6bnVsbCxudWxsIT09XG5uJiYoSj1WYihuKSxuIT09Snx8NSE9PW4udGFnJiY2IT09bi50YWcpKW49bnVsbH1lbHNlIGs9bnVsbCxuPWQ7aWYoayE9PW4pe3Q9QmQ7Rj1cIm9uTW91c2VMZWF2ZVwiO3g9XCJvbk1vdXNlRW50ZXJcIjt3PVwibW91c2VcIjtpZihcInBvaW50ZXJvdXRcIj09PWF8fFwicG9pbnRlcm92ZXJcIj09PWEpdD1UZCxGPVwib25Qb2ludGVyTGVhdmVcIix4PVwib25Qb2ludGVyRW50ZXJcIix3PVwicG9pbnRlclwiO0o9bnVsbD09az9oOnVlKGspO3U9bnVsbD09bj9oOnVlKG4pO2g9bmV3IHQoRix3K1wibGVhdmVcIixrLGMsZSk7aC50YXJnZXQ9SjtoLnJlbGF0ZWRUYXJnZXQ9dTtGPW51bGw7V2MoZSk9PT1kJiYodD1uZXcgdCh4LHcrXCJlbnRlclwiLG4sYyxlKSx0LnRhcmdldD11LHQucmVsYXRlZFRhcmdldD1KLEY9dCk7Sj1GO2lmKGsmJm4pYjp7dD1rO3g9bjt3PTA7Zm9yKHU9dDt1O3U9dmYodSkpdysrO3U9MDtmb3IoRj14O0Y7Rj12ZihGKSl1Kys7Zm9yKDswPHctdTspdD12Zih0KSx3LS07Zm9yKDswPHUtdzspeD1cbnZmKHgpLHUtLTtmb3IoO3ctLTspe2lmKHQ9PT14fHxudWxsIT09eCYmdD09PXguYWx0ZXJuYXRlKWJyZWFrIGI7dD12Zih0KTt4PXZmKHgpfXQ9bnVsbH1lbHNlIHQ9bnVsbDtudWxsIT09ayYmd2YoZyxoLGssdCwhMSk7bnVsbCE9PW4mJm51bGwhPT1KJiZ3ZihnLEosbix0LCEwKX19fWE6e2g9ZD91ZShkKTp3aW5kb3c7az1oLm5vZGVOYW1lJiZoLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoXCJzZWxlY3RcIj09PWt8fFwiaW5wdXRcIj09PWsmJlwiZmlsZVwiPT09aC50eXBlKXZhciBuYT12ZTtlbHNlIGlmKG1lKGgpKWlmKHdlKW5hPUZlO2Vsc2V7bmE9RGU7dmFyIHhhPUNlfWVsc2Uoaz1oLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09ay50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09aC50eXBlfHxcInJhZGlvXCI9PT1oLnR5cGUpJiYobmE9RWUpO2lmKG5hJiYobmE9bmEoYSxkKSkpe25lKGcsbmEsYyxlKTticmVhayBhfXhhJiZ4YShhLGgsZCk7XCJmb2N1c291dFwiPT09YSYmKHhhPWguX3dyYXBwZXJTdGF0ZSkmJlxueGEuY29udHJvbGxlZCYmXCJudW1iZXJcIj09PWgudHlwZSYmY2IoaCxcIm51bWJlclwiLGgudmFsdWUpfXhhPWQ/dWUoZCk6d2luZG93O3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmlmKG1lKHhhKXx8XCJ0cnVlXCI9PT14YS5jb250ZW50RWRpdGFibGUpUWU9eGEsUmU9ZCxTZT1udWxsO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOlNlPVJlPVFlPW51bGw7YnJlYWs7Y2FzZSBcIm1vdXNlZG93blwiOlRlPSEwO2JyZWFrO2Nhc2UgXCJjb250ZXh0bWVudVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcImRyYWdlbmRcIjpUZT0hMTtVZShnLGMsZSk7YnJlYWs7Y2FzZSBcInNlbGVjdGlvbmNoYW5nZVwiOmlmKFBlKWJyZWFrO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6VWUoZyxjLGUpfXZhciAkYTtpZihhZSliOntzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgYmE9XCJvbkNvbXBvc2l0aW9uU3RhcnRcIjticmVhayBiO2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOmJhPVwib25Db21wb3NpdGlvbkVuZFwiO1xuYnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpiYT1cIm9uQ29tcG9zaXRpb25VcGRhdGVcIjticmVhayBifWJhPXZvaWQgMH1lbHNlIGllP2dlKGEsYykmJihiYT1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1hJiYyMjk9PT1jLmtleUNvZGUmJihiYT1cIm9uQ29tcG9zaXRpb25TdGFydFwiKTtiYSYmKGRlJiZcImtvXCIhPT1jLmxvY2FsZSYmKGllfHxcIm9uQ29tcG9zaXRpb25TdGFydFwiIT09YmE/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT1iYSYmaWUmJigkYT1uZCgpKTooa2Q9ZSxsZD1cInZhbHVlXCJpbiBrZD9rZC52YWx1ZTprZC50ZXh0Q29udGVudCxpZT0hMCkpLHhhPW9lKGQsYmEpLDA8eGEubGVuZ3RoJiYoYmE9bmV3IExkKGJhLGEsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6YmEsbGlzdGVuZXJzOnhhfSksJGE/YmEuZGF0YT0kYTooJGE9aGUoYyksbnVsbCE9PSRhJiYoYmEuZGF0YT0kYSkpKSk7aWYoJGE9Y2U/amUoYSxjKTprZShhLGMpKWQ9b2UoZCxcIm9uQmVmb3JlSW5wdXRcIiksXG4wPGQubGVuZ3RoJiYoZT1uZXcgTGQoXCJvbkJlZm9yZUlucHV0XCIsXCJiZWZvcmVpbnB1dFwiLG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmUsbGlzdGVuZXJzOmR9KSxlLmRhdGE9JGEpfXNlKGcsYil9KX1mdW5jdGlvbiB0ZihhLGIsYyl7cmV0dXJue2luc3RhbmNlOmEsbGlzdGVuZXI6YixjdXJyZW50VGFyZ2V0OmN9fWZ1bmN0aW9uIG9lKGEsYil7Zm9yKHZhciBjPWIrXCJDYXB0dXJlXCIsZD1bXTtudWxsIT09YTspe3ZhciBlPWEsZj1lLnN0YXRlTm9kZTs1PT09ZS50YWcmJm51bGwhPT1mJiYoZT1mLGY9S2IoYSxjKSxudWxsIT1mJiZkLnVuc2hpZnQodGYoYSxmLGUpKSxmPUtiKGEsYiksbnVsbCE9ZiYmZC5wdXNoKHRmKGEsZixlKSkpO2E9YS5yZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gdmYoYSl7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhP2E6bnVsbH1cbmZ1bmN0aW9uIHdmKGEsYixjLGQsZSl7Zm9yKHZhciBmPWIuX3JlYWN0TmFtZSxnPVtdO251bGwhPT1jJiZjIT09ZDspe3ZhciBoPWMsaz1oLmFsdGVybmF0ZSxsPWguc3RhdGVOb2RlO2lmKG51bGwhPT1rJiZrPT09ZClicmVhazs1PT09aC50YWcmJm51bGwhPT1sJiYoaD1sLGU/KGs9S2IoYyxmKSxudWxsIT1rJiZnLnVuc2hpZnQodGYoYyxrLGgpKSk6ZXx8KGs9S2IoYyxmKSxudWxsIT1rJiZnLnB1c2godGYoYyxrLGgpKSkpO2M9Yy5yZXR1cm59MCE9PWcubGVuZ3RoJiZhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmd9KX12YXIgeGY9L1xcclxcbj8vZyx5Zj0vXFx1MDAwMHxcXHVGRkZEL2c7ZnVuY3Rpb24gemYoYSl7cmV0dXJuKFwic3RyaW5nXCI9PT10eXBlb2YgYT9hOlwiXCIrYSkucmVwbGFjZSh4ZixcIlxcblwiKS5yZXBsYWNlKHlmLFwiXCIpfWZ1bmN0aW9uIEFmKGEsYixjKXtiPXpmKGIpO2lmKHpmKGEpIT09YiYmYyl0aHJvdyBFcnJvcihwKDQyNSkpO31mdW5jdGlvbiBCZigpe31cbnZhciBDZj1udWxsLERmPW51bGw7ZnVuY3Rpb24gRWYoYSxiKXtyZXR1cm5cInRleHRhcmVhXCI9PT1hfHxcIm5vc2NyaXB0XCI9PT1hfHxcInN0cmluZ1wiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwibnVtYmVyXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9XG52YXIgRmY9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAsR2Y9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLEhmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBQcm9taXNlP1Byb21pc2U6dm9pZCAwLEpmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz9xdWV1ZU1pY3JvdGFzazpcInVuZGVmaW5lZFwiIT09dHlwZW9mIEhmP2Z1bmN0aW9uKGEpe3JldHVybiBIZi5yZXNvbHZlKG51bGwpLnRoZW4oYSkuY2F0Y2goSWYpfTpGZjtmdW5jdGlvbiBJZihhKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYTt9KX1cbmZ1bmN0aW9uIEtmKGEsYil7dmFyIGM9YixkPTA7ZG97dmFyIGU9Yy5uZXh0U2libGluZzthLnJlbW92ZUNoaWxkKGMpO2lmKGUmJjg9PT1lLm5vZGVUeXBlKWlmKGM9ZS5kYXRhLFwiLyRcIj09PWMpe2lmKDA9PT1kKXthLnJlbW92ZUNoaWxkKGUpO2JkKGIpO3JldHVybn1kLS19ZWxzZVwiJFwiIT09YyYmXCIkP1wiIT09YyYmXCIkIVwiIT09Y3x8ZCsrO2M9ZX13aGlsZShjKTtiZChiKX1mdW5jdGlvbiBMZihhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVhaztpZig4PT09Yil7Yj1hLmRhdGE7aWYoXCIkXCI9PT1ifHxcIiQhXCI9PT1ifHxcIiQ/XCI9PT1iKWJyZWFrO2lmKFwiLyRcIj09PWIpcmV0dXJuIG51bGx9fXJldHVybiBhfVxuZnVuY3Rpb24gTWYoYSl7YT1hLnByZXZpb3VzU2libGluZztmb3IodmFyIGI9MDthOyl7aWYoOD09PWEubm9kZVR5cGUpe3ZhciBjPWEuZGF0YTtpZihcIiRcIj09PWN8fFwiJCFcIj09PWN8fFwiJD9cIj09PWMpe2lmKDA9PT1iKXJldHVybiBhO2ItLX1lbHNlXCIvJFwiPT09YyYmYisrfWE9YS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9dmFyIE5mPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLE9mPVwiX19yZWFjdEZpYmVyJFwiK05mLFBmPVwiX19yZWFjdFByb3BzJFwiK05mLHVmPVwiX19yZWFjdENvbnRhaW5lciRcIitOZixvZj1cIl9fcmVhY3RFdmVudHMkXCIrTmYsUWY9XCJfX3JlYWN0TGlzdGVuZXJzJFwiK05mLFJmPVwiX19yZWFjdEhhbmRsZXMkXCIrTmY7XG5mdW5jdGlvbiBXYyhhKXt2YXIgYj1hW09mXTtpZihiKXJldHVybiBiO2Zvcih2YXIgYz1hLnBhcmVudE5vZGU7Yzspe2lmKGI9Y1t1Zl18fGNbT2ZdKXtjPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1iLmNoaWxkfHxudWxsIT09YyYmbnVsbCE9PWMuY2hpbGQpZm9yKGE9TWYoYSk7bnVsbCE9PWE7KXtpZihjPWFbT2ZdKXJldHVybiBjO2E9TWYoYSl9cmV0dXJuIGJ9YT1jO2M9YS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIENiKGEpe2E9YVtPZl18fGFbdWZdO3JldHVybiFhfHw1IT09YS50YWcmJjYhPT1hLnRhZyYmMTMhPT1hLnRhZyYmMyE9PWEudGFnP251bGw6YX1mdW5jdGlvbiB1ZShhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IocCgzMykpO31mdW5jdGlvbiBEYihhKXtyZXR1cm4gYVtQZl18fG51bGx9dmFyIFNmPVtdLFRmPS0xO2Z1bmN0aW9uIFVmKGEpe3JldHVybntjdXJyZW50OmF9fVxuZnVuY3Rpb24gRShhKXswPlRmfHwoYS5jdXJyZW50PVNmW1RmXSxTZltUZl09bnVsbCxUZi0tKX1mdW5jdGlvbiBHKGEsYil7VGYrKztTZltUZl09YS5jdXJyZW50O2EuY3VycmVudD1ifXZhciBWZj17fSxIPVVmKFZmKSxXZj1VZighMSksWGY9VmY7ZnVuY3Rpb24gWWYoYSxiKXt2YXIgYz1hLnR5cGUuY29udGV4dFR5cGVzO2lmKCFjKXJldHVybiBWZjt2YXIgZD1hLnN0YXRlTm9kZTtpZihkJiZkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1iKXJldHVybiBkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciBlPXt9LGY7Zm9yKGYgaW4gYyllW2ZdPWJbZl07ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWIsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1lKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFpmKGEpe2E9YS5jaGlsZENvbnRleHRUeXBlcztyZXR1cm4gbnVsbCE9PWEmJnZvaWQgMCE9PWF9ZnVuY3Rpb24gJGYoKXtFKFdmKTtFKEgpfWZ1bmN0aW9uIGFnKGEsYixjKXtpZihILmN1cnJlbnQhPT1WZil0aHJvdyBFcnJvcihwKDE2OCkpO0coSCxiKTtHKFdmLGMpfWZ1bmN0aW9uIGJnKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtiPWIuY2hpbGRDb250ZXh0VHlwZXM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGQuZ2V0Q2hpbGRDb250ZXh0KXJldHVybiBjO2Q9ZC5nZXRDaGlsZENvbnRleHQoKTtmb3IodmFyIGUgaW4gZClpZighKGUgaW4gYikpdGhyb3cgRXJyb3IocCgxMDgsUmEoYSl8fFwiVW5rbm93blwiLGUpKTtyZXR1cm4gQSh7fSxjLGQpfVxuZnVuY3Rpb24gY2coYSl7YT0oYT1hLnN0YXRlTm9kZSkmJmEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fFZmO1hmPUguY3VycmVudDtHKEgsYSk7RyhXZixXZi5jdXJyZW50KTtyZXR1cm4hMH1mdW5jdGlvbiBkZyhhLGIsYyl7dmFyIGQ9YS5zdGF0ZU5vZGU7aWYoIWQpdGhyb3cgRXJyb3IocCgxNjkpKTtjPyhhPWJnKGEsYixYZiksZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dD1hLEUoV2YpLEUoSCksRyhILGEpKTpFKFdmKTtHKFdmLGMpfXZhciBlZz1udWxsLGZnPSExLGdnPSExO2Z1bmN0aW9uIGhnKGEpe251bGw9PT1lZz9lZz1bYV06ZWcucHVzaChhKX1mdW5jdGlvbiBpZyhhKXtmZz0hMDtoZyhhKX1cbmZ1bmN0aW9uIGpnKCl7aWYoIWdnJiZudWxsIT09ZWcpe2dnPSEwO3ZhciBhPTAsYj1DO3RyeXt2YXIgYz1lZztmb3IoQz0xO2E8Yy5sZW5ndGg7YSsrKXt2YXIgZD1jW2FdO2RvIGQ9ZCghMCk7d2hpbGUobnVsbCE9PWQpfWVnPW51bGw7Zmc9ITF9Y2F0Y2goZSl7dGhyb3cgbnVsbCE9PWVnJiYoZWc9ZWcuc2xpY2UoYSsxKSksYWMoZmMsamcpLGU7fWZpbmFsbHl7Qz1iLGdnPSExfX1yZXR1cm4gbnVsbH12YXIga2c9W10sbGc9MCxtZz1udWxsLG5nPTAsb2c9W10scGc9MCxxZz1udWxsLHJnPTEsc2c9XCJcIjtmdW5jdGlvbiB0ZyhhLGIpe2tnW2xnKytdPW5nO2tnW2xnKytdPW1nO21nPWE7bmc9Yn1cbmZ1bmN0aW9uIHVnKGEsYixjKXtvZ1twZysrXT1yZztvZ1twZysrXT1zZztvZ1twZysrXT1xZztxZz1hO3ZhciBkPXJnO2E9c2c7dmFyIGU9MzItb2MoZCktMTtkJj1+KDE8PGUpO2MrPTE7dmFyIGY9MzItb2MoYikrZTtpZigzMDxmKXt2YXIgZz1lLWUlNTtmPShkJigxPDxnKS0xKS50b1N0cmluZygzMik7ZD4+PWc7ZS09ZztyZz0xPDwzMi1vYyhiKStlfGM8PGV8ZDtzZz1mK2F9ZWxzZSByZz0xPDxmfGM8PGV8ZCxzZz1hfWZ1bmN0aW9uIHZnKGEpe251bGwhPT1hLnJldHVybiYmKHRnKGEsMSksdWcoYSwxLDApKX1mdW5jdGlvbiB3ZyhhKXtmb3IoO2E9PT1tZzspbWc9a2dbLS1sZ10sa2dbbGddPW51bGwsbmc9a2dbLS1sZ10sa2dbbGddPW51bGw7Zm9yKDthPT09cWc7KXFnPW9nWy0tcGddLG9nW3BnXT1udWxsLHNnPW9nWy0tcGddLG9nW3BnXT1udWxsLHJnPW9nWy0tcGddLG9nW3BnXT1udWxsfXZhciB4Zz1udWxsLHlnPW51bGwsST0hMSx6Zz1udWxsO1xuZnVuY3Rpb24gQWcoYSxiKXt2YXIgYz1CZyg1LG51bGwsbnVsbCwwKTtjLmVsZW1lbnRUeXBlPVwiREVMRVRFRFwiO2Muc3RhdGVOb2RlPWI7Yy5yZXR1cm49YTtiPWEuZGVsZXRpb25zO251bGw9PT1iPyhhLmRlbGV0aW9ucz1bY10sYS5mbGFnc3w9MTYpOmIucHVzaChjKX1cbmZ1bmN0aW9uIENnKGEsYil7c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIGM9YS50eXBlO2I9MSE9PWIubm9kZVR5cGV8fGMudG9Mb3dlckNhc2UoKSE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmI7cmV0dXJuIG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLHhnPWEseWc9TGYoYi5maXJzdENoaWxkKSwhMCk6ITE7Y2FzZSA2OnJldHVybiBiPVwiXCI9PT1hLnBlbmRpbmdQcm9wc3x8MyE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLHhnPWEseWc9bnVsbCwhMCk6ITE7Y2FzZSAxMzpyZXR1cm4gYj04IT09Yi5ub2RlVHlwZT9udWxsOmIsbnVsbCE9PWI/KGM9bnVsbCE9PXFnP3tpZDpyZyxvdmVyZmxvdzpzZ306bnVsbCxhLm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6Yix0cmVlQ29udGV4dDpjLHJldHJ5TGFuZToxMDczNzQxODI0fSxjPUJnKDE4LG51bGwsbnVsbCwwKSxjLnN0YXRlTm9kZT1iLGMucmV0dXJuPWEsYS5jaGlsZD1jLHhnPWEseWc9XG5udWxsLCEwKTohMTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBEZyhhKXtyZXR1cm4gMCE9PShhLm1vZGUmMSkmJjA9PT0oYS5mbGFncyYxMjgpfWZ1bmN0aW9uIEVnKGEpe2lmKEkpe3ZhciBiPXlnO2lmKGIpe3ZhciBjPWI7aWYoIUNnKGEsYikpe2lmKERnKGEpKXRocm93IEVycm9yKHAoNDE4KSk7Yj1MZihjLm5leHRTaWJsaW5nKTt2YXIgZD14ZztiJiZDZyhhLGIpP0FnKGQsYyk6KGEuZmxhZ3M9YS5mbGFncyYtNDA5N3wyLEk9ITEseGc9YSl9fWVsc2V7aWYoRGcoYSkpdGhyb3cgRXJyb3IocCg0MTgpKTthLmZsYWdzPWEuZmxhZ3MmLTQwOTd8MjtJPSExO3hnPWF9fX1mdW5jdGlvbiBGZyhhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjEzIT09YS50YWc7KWE9YS5yZXR1cm47eGc9YX1cbmZ1bmN0aW9uIEdnKGEpe2lmKGEhPT14ZylyZXR1cm4hMTtpZighSSlyZXR1cm4gRmcoYSksST0hMCwhMTt2YXIgYjsoYj0zIT09YS50YWcpJiYhKGI9NSE9PWEudGFnKSYmKGI9YS50eXBlLGI9XCJoZWFkXCIhPT1iJiZcImJvZHlcIiE9PWImJiFFZihhLnR5cGUsYS5tZW1vaXplZFByb3BzKSk7aWYoYiYmKGI9eWcpKXtpZihEZyhhKSl0aHJvdyBIZygpLEVycm9yKHAoNDE4KSk7Zm9yKDtiOylBZyhhLGIpLGI9TGYoYi5uZXh0U2libGluZyl9RmcoYSk7aWYoMTM9PT1hLnRhZyl7YT1hLm1lbW9pemVkU3RhdGU7YT1udWxsIT09YT9hLmRlaHlkcmF0ZWQ6bnVsbDtpZighYSl0aHJvdyBFcnJvcihwKDMxNykpO2E6e2E9YS5uZXh0U2libGluZztmb3IoYj0wO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGM9YS5kYXRhO2lmKFwiLyRcIj09PWMpe2lmKDA9PT1iKXt5Zz1MZihhLm5leHRTaWJsaW5nKTticmVhayBhfWItLX1lbHNlXCIkXCIhPT1jJiZcIiQhXCIhPT1jJiZcIiQ/XCIhPT1jfHxiKyt9YT1hLm5leHRTaWJsaW5nfXlnPVxubnVsbH19ZWxzZSB5Zz14Zz9MZihhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBIZygpe2Zvcih2YXIgYT15ZzthOylhPUxmKGEubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIElnKCl7eWc9eGc9bnVsbDtJPSExfWZ1bmN0aW9uIEpnKGEpe251bGw9PT16Zz96Zz1bYV06emcucHVzaChhKX12YXIgS2c9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7XG5mdW5jdGlvbiBMZyhhLGIsYyl7YT1jLnJlZjtpZihudWxsIT09YSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJlwib2JqZWN0XCIhPT10eXBlb2YgYSl7aWYoYy5fb3duZXIpe2M9Yy5fb3duZXI7aWYoYyl7aWYoMSE9PWMudGFnKXRocm93IEVycm9yKHAoMzA5KSk7dmFyIGQ9Yy5zdGF0ZU5vZGV9aWYoIWQpdGhyb3cgRXJyb3IocCgxNDcsYSkpO3ZhciBlPWQsZj1cIlwiK2E7aWYobnVsbCE9PWImJm51bGwhPT1iLnJlZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIucmVmJiZiLnJlZi5fc3RyaW5nUmVmPT09ZilyZXR1cm4gYi5yZWY7Yj1mdW5jdGlvbihhKXt2YXIgYj1lLnJlZnM7bnVsbD09PWE/ZGVsZXRlIGJbZl06YltmXT1hfTtiLl9zdHJpbmdSZWY9ZjtyZXR1cm4gYn1pZihcInN0cmluZ1wiIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IocCgyODQpKTtpZighYy5fb3duZXIpdGhyb3cgRXJyb3IocCgyOTAsYSkpO31yZXR1cm4gYX1cbmZ1bmN0aW9uIE1nKGEsYil7YT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYik7dGhyb3cgRXJyb3IocCgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09YT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjphKSk7fWZ1bmN0aW9uIE5nKGEpe3ZhciBiPWEuX2luaXQ7cmV0dXJuIGIoYS5fcGF5bG9hZCl9XG5mdW5jdGlvbiBPZyhhKXtmdW5jdGlvbiBiKGIsYyl7aWYoYSl7dmFyIGQ9Yi5kZWxldGlvbnM7bnVsbD09PWQ/KGIuZGVsZXRpb25zPVtjXSxiLmZsYWdzfD0xNik6ZC5wdXNoKGMpfX1mdW5jdGlvbiBjKGMsZCl7aWYoIWEpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09ZDspYihjLGQpLGQ9ZC5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGQoYSxiKXtmb3IoYT1uZXcgTWFwO251bGwhPT1iOyludWxsIT09Yi5rZXk/YS5zZXQoYi5rZXksYik6YS5zZXQoYi5pbmRleCxiKSxiPWIuc2libGluZztyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7YT1QZyhhLGIpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGIuZmxhZ3N8PTEwNDg1NzYsYztkPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1kKXJldHVybiBkPWQuaW5kZXgsZDxjPyhiLmZsYWdzfD0yLGMpOmQ7Yi5mbGFnc3w9MjtyZXR1cm4gY31mdW5jdGlvbiBnKGIpe2EmJlxubnVsbD09PWIuYWx0ZXJuYXRlJiYoYi5mbGFnc3w9Mik7cmV0dXJuIGJ9ZnVuY3Rpb24gaChhLGIsYyxkKXtpZihudWxsPT09Ynx8NiE9PWIudGFnKXJldHVybiBiPVFnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7dmFyIGY9Yy50eXBlO2lmKGY9PT15YSlyZXR1cm4gbShhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGMua2V5KTtpZihudWxsIT09YiYmKGIuZWxlbWVudFR5cGU9PT1mfHxcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLiQkdHlwZW9mPT09SGEmJk5nKGYpPT09Yi50eXBlKSlyZXR1cm4gZD1lKGIsYy5wcm9wcyksZC5yZWY9TGcoYSxiLGMpLGQucmV0dXJuPWEsZDtkPVJnKGMudHlwZSxjLmtleSxjLnByb3BzLG51bGwsYS5tb2RlLGQpO2QucmVmPUxnKGEsYixjKTtkLnJldHVybj1hO3JldHVybiBkfWZ1bmN0aW9uIGwoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDQhPT1iLnRhZ3x8XG5iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09Yy5jb250YWluZXJJbmZvfHxiLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PWMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9U2coYyxhLm1vZGUsZCksYi5yZXR1cm49YSxiO2I9ZShiLGMuY2hpbGRyZW58fFtdKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIG0oYSxiLGMsZCxmKXtpZihudWxsPT09Ynx8NyE9PWIudGFnKXJldHVybiBiPVRnKGMsYS5tb2RlLGQsZiksYi5yZXR1cm49YSxiO2I9ZShiLGMpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBiJiZcIlwiIT09Ynx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPVFnKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBjPVJnKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLFxuYy5yZWY9TGcoYSxudWxsLGIpLGMucmV0dXJuPWEsYztjYXNlIHdhOnJldHVybiBiPVNnKGIsYS5tb2RlLGMpLGIucmV0dXJuPWEsYjtjYXNlIEhhOnZhciBkPWIuX2luaXQ7cmV0dXJuIHEoYSxkKGIuX3BheWxvYWQpLGMpfWlmKGViKGIpfHxLYShiKSlyZXR1cm4gYj1UZyhiLGEubW9kZSxjLG51bGwpLGIucmV0dXJuPWEsYjtNZyhhLGIpfXJldHVybiBudWxsfWZ1bmN0aW9uIHIoYSxiLGMsZCl7dmFyIGU9bnVsbCE9PWI/Yi5rZXk6bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGMmJlwiXCIhPT1jfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6aChhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBjLmtleT09PWU/ayhhLGIsYyxkKTpudWxsO2Nhc2Ugd2E6cmV0dXJuIGMua2V5PT09ZT9sKGEsYixjLGQpOm51bGw7Y2FzZSBIYTpyZXR1cm4gZT1jLl9pbml0LHIoYSxcbmIsZShjLl9wYXlsb2FkKSxkKX1pZihlYihjKXx8S2EoYykpcmV0dXJuIG51bGwhPT1lP251bGw6bShhLGIsYyxkLG51bGwpO01nKGEsYyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geShhLGIsYyxkLGUpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZCYmXCJcIiE9PWR8fFwibnVtYmVyXCI9PT10eXBlb2YgZClyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxoKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGsoYixhLGQsZSk7Y2FzZSB3YTpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsbChiLGEsZCxlKTtjYXNlIEhhOnZhciBmPWQuX2luaXQ7cmV0dXJuIHkoYSxiLGMsZihkLl9wYXlsb2FkKSxlKX1pZihlYihkKXx8S2EoZCkpcmV0dXJuIGE9YS5nZXQoYyl8fG51bGwsbShiLGEsZCxlLG51bGwpO01nKGIsZCl9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBuKGUsZyxoLGspe2Zvcih2YXIgbD1udWxsLG09bnVsbCx1PWcsdz1nPTAseD1udWxsO251bGwhPT11JiZ3PGgubGVuZ3RoO3crKyl7dS5pbmRleD53Pyh4PXUsdT1udWxsKTp4PXUuc2libGluZzt2YXIgbj1yKGUsdSxoW3ddLGspO2lmKG51bGw9PT1uKXtudWxsPT09dSYmKHU9eCk7YnJlYWt9YSYmdSYmbnVsbD09PW4uYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKG4sZyx3KTtudWxsPT09bT9sPW46bS5zaWJsaW5nPW47bT1uO3U9eH1pZih3PT09aC5sZW5ndGgpcmV0dXJuIGMoZSx1KSxJJiZ0ZyhlLHcpLGw7aWYobnVsbD09PXUpe2Zvcig7dzxoLmxlbmd0aDt3KyspdT1xKGUsaFt3XSxrKSxudWxsIT09dSYmKGc9Zih1LGcsdyksbnVsbD09PW0/bD11Om0uc2libGluZz11LG09dSk7SSYmdGcoZSx3KTtyZXR1cm4gbH1mb3IodT1kKGUsdSk7dzxoLmxlbmd0aDt3KyspeD15KHUsZSx3LGhbd10sayksbnVsbCE9PXgmJihhJiZudWxsIT09eC5hbHRlcm5hdGUmJnUuZGVsZXRlKG51bGw9PT1cbngua2V5P3c6eC5rZXkpLGc9Zih4LGcsdyksbnVsbD09PW0/bD14Om0uc2libGluZz14LG09eCk7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZ1bmN0aW9uIHQoZSxnLGgsayl7dmFyIGw9S2EoaCk7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGwpdGhyb3cgRXJyb3IocCgxNTApKTtoPWwuY2FsbChoKTtpZihudWxsPT1oKXRocm93IEVycm9yKHAoMTUxKSk7Zm9yKHZhciB1PWw9bnVsbCxtPWcsdz1nPTAseD1udWxsLG49aC5uZXh0KCk7bnVsbCE9PW0mJiFuLmRvbmU7dysrLG49aC5uZXh0KCkpe20uaW5kZXg+dz8oeD1tLG09bnVsbCk6eD1tLnNpYmxpbmc7dmFyIHQ9cihlLG0sbi52YWx1ZSxrKTtpZihudWxsPT09dCl7bnVsbD09PW0mJihtPXgpO2JyZWFrfWEmJm0mJm51bGw9PT10LmFsdGVybmF0ZSYmYihlLG0pO2c9Zih0LGcsdyk7bnVsbD09PXU/bD10OnUuc2libGluZz10O3U9dDttPXh9aWYobi5kb25lKXJldHVybiBjKGUsXG5tKSxJJiZ0ZyhlLHcpLGw7aWYobnVsbD09PW0pe2Zvcig7IW4uZG9uZTt3Kyssbj1oLm5leHQoKSluPXEoZSxuLnZhbHVlLGspLG51bGwhPT1uJiYoZz1mKG4sZyx3KSxudWxsPT09dT9sPW46dS5zaWJsaW5nPW4sdT1uKTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZvcihtPWQoZSxtKTshbi5kb25lO3crKyxuPWgubmV4dCgpKW49eShtLGUsdyxuLnZhbHVlLGspLG51bGwhPT1uJiYoYSYmbnVsbCE9PW4uYWx0ZXJuYXRlJiZtLmRlbGV0ZShudWxsPT09bi5rZXk/dzpuLmtleSksZz1mKG4sZyx3KSxudWxsPT09dT9sPW46dS5zaWJsaW5nPW4sdT1uKTthJiZtLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO0kmJnRnKGUsdyk7cmV0dXJuIGx9ZnVuY3Rpb24gSihhLGQsZixoKXtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLnR5cGU9PT15YSYmbnVsbD09PWYua2V5JiYoZj1mLnByb3BzLmNoaWxkcmVuKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mKXtzd2l0Y2goZi4kJHR5cGVvZil7Y2FzZSB2YTphOntmb3IodmFyIGs9XG5mLmtleSxsPWQ7bnVsbCE9PWw7KXtpZihsLmtleT09PWspe2s9Zi50eXBlO2lmKGs9PT15YSl7aWYoNz09PWwudGFnKXtjKGEsbC5zaWJsaW5nKTtkPWUobCxmLnByb3BzLmNoaWxkcmVuKTtkLnJldHVybj1hO2E9ZDticmVhayBhfX1lbHNlIGlmKGwuZWxlbWVudFR5cGU9PT1rfHxcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rJiZrLiQkdHlwZW9mPT09SGEmJk5nKGspPT09bC50eXBlKXtjKGEsbC5zaWJsaW5nKTtkPWUobCxmLnByb3BzKTtkLnJlZj1MZyhhLGwsZik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1jKGEsbCk7YnJlYWt9ZWxzZSBiKGEsbCk7bD1sLnNpYmxpbmd9Zi50eXBlPT09eWE/KGQ9VGcoZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsaCxmLmtleSksZC5yZXR1cm49YSxhPWQpOihoPVJnKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGgpLGgucmVmPUxnKGEsZCxmKSxoLnJldHVybj1hLGE9aCl9cmV0dXJuIGcoYSk7Y2FzZSB3YTphOntmb3IobD1mLmtleTtudWxsIT09XG5kOyl7aWYoZC5rZXk9PT1sKWlmKDQ9PT1kLnRhZyYmZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWYuY29udGFpbmVySW5mbyYmZC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1mLmltcGxlbWVudGF0aW9uKXtjKGEsZC5zaWJsaW5nKTtkPWUoZCxmLmNoaWxkcmVufHxbXSk7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1lbHNle2MoYSxkKTticmVha31lbHNlIGIoYSxkKTtkPWQuc2libGluZ31kPVNnKGYsYS5tb2RlLGgpO2QucmV0dXJuPWE7YT1kfXJldHVybiBnKGEpO2Nhc2UgSGE6cmV0dXJuIGw9Zi5faW5pdCxKKGEsZCxsKGYuX3BheWxvYWQpLGgpfWlmKGViKGYpKXJldHVybiBuKGEsZCxmLGgpO2lmKEthKGYpKXJldHVybiB0KGEsZCxmLGgpO01nKGEsZil9cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBmJiZcIlwiIT09Znx8XCJudW1iZXJcIj09PXR5cGVvZiBmPyhmPVwiXCIrZixudWxsIT09ZCYmNj09PWQudGFnPyhjKGEsZC5zaWJsaW5nKSxkPWUoZCxmKSxkLnJldHVybj1hLGE9ZCk6XG4oYyhhLGQpLGQ9UWcoZixhLm1vZGUsaCksZC5yZXR1cm49YSxhPWQpLGcoYSkpOmMoYSxkKX1yZXR1cm4gSn12YXIgVWc9T2coITApLFZnPU9nKCExKSxXZz1VZihudWxsKSxYZz1udWxsLFlnPW51bGwsWmc9bnVsbDtmdW5jdGlvbiAkZygpe1pnPVlnPVhnPW51bGx9ZnVuY3Rpb24gYWgoYSl7dmFyIGI9V2cuY3VycmVudDtFKFdnKTthLl9jdXJyZW50VmFsdWU9Yn1mdW5jdGlvbiBiaChhLGIsYyl7Zm9yKDtudWxsIT09YTspe3ZhciBkPWEuYWx0ZXJuYXRlOyhhLmNoaWxkTGFuZXMmYikhPT1iPyhhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PWQmJihkLmNoaWxkTGFuZXN8PWIpKTpudWxsIT09ZCYmKGQuY2hpbGRMYW5lcyZiKSE9PWImJihkLmNoaWxkTGFuZXN8PWIpO2lmKGE9PT1jKWJyZWFrO2E9YS5yZXR1cm59fVxuZnVuY3Rpb24gY2goYSxiKXtYZz1hO1pnPVlnPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoMCE9PShhLmxhbmVzJmIpJiYoZGg9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIGVoKGEpe3ZhciBiPWEuX2N1cnJlbnRWYWx1ZTtpZihaZyE9PWEpaWYoYT17Y29udGV4dDphLG1lbW9pemVkVmFsdWU6YixuZXh0Om51bGx9LG51bGw9PT1ZZyl7aWYobnVsbD09PVhnKXRocm93IEVycm9yKHAoMzA4KSk7WWc9YTtYZy5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OmF9fWVsc2UgWWc9WWcubmV4dD1hO3JldHVybiBifXZhciBmaD1udWxsO2Z1bmN0aW9uIGdoKGEpe251bGw9PT1maD9maD1bYV06ZmgucHVzaChhKX1cbmZ1bmN0aW9uIGhoKGEsYixjLGQpe3ZhciBlPWIuaW50ZXJsZWF2ZWQ7bnVsbD09PWU/KGMubmV4dD1jLGdoKGIpKTooYy5uZXh0PWUubmV4dCxlLm5leHQ9Yyk7Yi5pbnRlcmxlYXZlZD1jO3JldHVybiBpaChhLGQpfWZ1bmN0aW9uIGloKGEsYil7YS5sYW5lc3w9Yjt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmKGMubGFuZXN8PWIpO2M9YTtmb3IoYT1hLnJldHVybjtudWxsIT09YTspYS5jaGlsZExhbmVzfD1iLGM9YS5hbHRlcm5hdGUsbnVsbCE9PWMmJihjLmNoaWxkTGFuZXN8PWIpLGM9YSxhPWEucmV0dXJuO3JldHVybiAzPT09Yy50YWc/Yy5zdGF0ZU5vZGU6bnVsbH12YXIgamg9ITE7ZnVuY3Rpb24ga2goYSl7YS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1cbmZ1bmN0aW9uIGxoKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9PT1hJiYoYi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTphLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTphLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDphLnNoYXJlZCxlZmZlY3RzOmEuZWZmZWN0c30pfWZ1bmN0aW9uIG1oKGEsYil7cmV0dXJue2V2ZW50VGltZTphLGxhbmU6Yix0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fVxuZnVuY3Rpb24gbmgoYSxiLGMpe3ZhciBkPWEudXBkYXRlUXVldWU7aWYobnVsbD09PWQpcmV0dXJuIG51bGw7ZD1kLnNoYXJlZDtpZigwIT09KEsmMikpe3ZhciBlPWQucGVuZGluZztudWxsPT09ZT9iLm5leHQ9YjooYi5uZXh0PWUubmV4dCxlLm5leHQ9Yik7ZC5wZW5kaW5nPWI7cmV0dXJuIGloKGEsYyl9ZT1kLmludGVybGVhdmVkO251bGw9PT1lPyhiLm5leHQ9YixnaChkKSk6KGIubmV4dD1lLm5leHQsZS5uZXh0PWIpO2QuaW50ZXJsZWF2ZWQ9YjtyZXR1cm4gaWgoYSxjKX1mdW5jdGlvbiBvaChhLGIsYyl7Yj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iJiYoYj1iLnNoYXJlZCwwIT09KGMmNDE5NDI0MCkpKXt2YXIgZD1iLmxhbmVzO2QmPWEucGVuZGluZ0xhbmVzO2N8PWQ7Yi5sYW5lcz1jO0NjKGEsYyl9fVxuZnVuY3Rpb24gcGgoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlLGQ9YS5hbHRlcm5hdGU7aWYobnVsbCE9PWQmJihkPWQudXBkYXRlUXVldWUsYz09PWQpKXt2YXIgZT1udWxsLGY9bnVsbDtjPWMuZmlyc3RCYXNlVXBkYXRlO2lmKG51bGwhPT1jKXtkb3t2YXIgZz17ZXZlbnRUaW1lOmMuZXZlbnRUaW1lLGxhbmU6Yy5sYW5lLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpjLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWY/ZT1mPWc6Zj1mLm5leHQ9ZztjPWMubmV4dH13aGlsZShudWxsIT09Yyk7bnVsbD09PWY/ZT1mPWI6Zj1mLm5leHQ9Yn1lbHNlIGU9Zj1iO2M9e2Jhc2VTdGF0ZTpkLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZSxsYXN0QmFzZVVwZGF0ZTpmLHNoYXJlZDpkLnNoYXJlZCxlZmZlY3RzOmQuZWZmZWN0c307YS51cGRhdGVRdWV1ZT1jO3JldHVybn1hPWMubGFzdEJhc2VVcGRhdGU7bnVsbD09PWE/Yy5maXJzdEJhc2VVcGRhdGU9YjphLm5leHQ9XG5iO2MubGFzdEJhc2VVcGRhdGU9Yn1cbmZ1bmN0aW9uIHFoKGEsYixjLGQpe3ZhciBlPWEudXBkYXRlUXVldWU7amg9ITE7dmFyIGY9ZS5maXJzdEJhc2VVcGRhdGUsZz1lLmxhc3RCYXNlVXBkYXRlLGg9ZS5zaGFyZWQucGVuZGluZztpZihudWxsIT09aCl7ZS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBrPWgsbD1rLm5leHQ7ay5uZXh0PW51bGw7bnVsbD09PWc/Zj1sOmcubmV4dD1sO2c9azt2YXIgbT1hLmFsdGVybmF0ZTtudWxsIT09bSYmKG09bS51cGRhdGVRdWV1ZSxoPW0ubGFzdEJhc2VVcGRhdGUsaCE9PWcmJihudWxsPT09aD9tLmZpcnN0QmFzZVVwZGF0ZT1sOmgubmV4dD1sLG0ubGFzdEJhc2VVcGRhdGU9aykpfWlmKG51bGwhPT1mKXt2YXIgcT1lLmJhc2VTdGF0ZTtnPTA7bT1sPWs9bnVsbDtoPWY7ZG97dmFyIHI9aC5sYW5lLHk9aC5ldmVudFRpbWU7aWYoKGQmcik9PT1yKXtudWxsIT09bSYmKG09bS5uZXh0PXtldmVudFRpbWU6eSxsYW5lOjAsdGFnOmgudGFnLHBheWxvYWQ6aC5wYXlsb2FkLGNhbGxiYWNrOmguY2FsbGJhY2ssXG5uZXh0Om51bGx9KTthOnt2YXIgbj1hLHQ9aDtyPWI7eT1jO3N3aXRjaCh0LnRhZyl7Y2FzZSAxOm49dC5wYXlsb2FkO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuKXtxPW4uY2FsbCh5LHEscik7YnJlYWsgYX1xPW47YnJlYWsgYTtjYXNlIDM6bi5mbGFncz1uLmZsYWdzJi02NTUzN3wxMjg7Y2FzZSAwOm49dC5wYXlsb2FkO3I9XCJmdW5jdGlvblwiPT09dHlwZW9mIG4/bi5jYWxsKHkscSxyKTpuO2lmKG51bGw9PT1yfHx2b2lkIDA9PT1yKWJyZWFrIGE7cT1BKHt9LHEscik7YnJlYWsgYTtjYXNlIDI6amg9ITB9fW51bGwhPT1oLmNhbGxiYWNrJiYwIT09aC5sYW5lJiYoYS5mbGFnc3w9NjQscj1lLmVmZmVjdHMsbnVsbD09PXI/ZS5lZmZlY3RzPVtoXTpyLnB1c2goaCkpfWVsc2UgeT17ZXZlbnRUaW1lOnksbGFuZTpyLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PW0/KGw9bT15LGs9cSk6bT1tLm5leHQ9eSxnfD1yO1xuaD1oLm5leHQ7aWYobnVsbD09PWgpaWYoaD1lLnNoYXJlZC5wZW5kaW5nLG51bGw9PT1oKWJyZWFrO2Vsc2Ugcj1oLGg9ci5uZXh0LHIubmV4dD1udWxsLGUubGFzdEJhc2VVcGRhdGU9cixlLnNoYXJlZC5wZW5kaW5nPW51bGx9d2hpbGUoMSk7bnVsbD09PW0mJihrPXEpO2UuYmFzZVN0YXRlPWs7ZS5maXJzdEJhc2VVcGRhdGU9bDtlLmxhc3RCYXNlVXBkYXRlPW07Yj1lLnNoYXJlZC5pbnRlcmxlYXZlZDtpZihudWxsIT09Yil7ZT1iO2RvIGd8PWUubGFuZSxlPWUubmV4dDt3aGlsZShlIT09Yil9ZWxzZSBudWxsPT09ZiYmKGUuc2hhcmVkLmxhbmVzPTApO3JofD1nO2EubGFuZXM9ZzthLm1lbW9pemVkU3RhdGU9cX19XG5mdW5jdGlvbiBzaChhLGIsYyl7YT1iLmVmZmVjdHM7Yi5lZmZlY3RzPW51bGw7aWYobnVsbCE9PWEpZm9yKGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGQ9YVtiXSxlPWQuY2FsbGJhY2s7aWYobnVsbCE9PWUpe2QuY2FsbGJhY2s9bnVsbDtkPWM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpdGhyb3cgRXJyb3IocCgxOTEsZSkpO2UuY2FsbChkKX19fXZhciB0aD17fSx1aD1VZih0aCksdmg9VWYodGgpLHdoPVVmKHRoKTtmdW5jdGlvbiB4aChhKXtpZihhPT09dGgpdGhyb3cgRXJyb3IocCgxNzQpKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHloKGEsYil7Ryh3aCxiKTtHKHZoLGEpO0codWgsdGgpO2E9Yi5ub2RlVHlwZTtzd2l0Y2goYSl7Y2FzZSA5OmNhc2UgMTE6Yj0oYj1iLmRvY3VtZW50RWxlbWVudCk/Yi5uYW1lc3BhY2VVUkk6bGIobnVsbCxcIlwiKTticmVhaztkZWZhdWx0OmE9OD09PWE/Yi5wYXJlbnROb2RlOmIsYj1hLm5hbWVzcGFjZVVSSXx8bnVsbCxhPWEudGFnTmFtZSxiPWxiKGIsYSl9RSh1aCk7Ryh1aCxiKX1mdW5jdGlvbiB6aCgpe0UodWgpO0UodmgpO0Uod2gpfWZ1bmN0aW9uIEFoKGEpe3hoKHdoLmN1cnJlbnQpO3ZhciBiPXhoKHVoLmN1cnJlbnQpO3ZhciBjPWxiKGIsYS50eXBlKTtiIT09YyYmKEcodmgsYSksRyh1aCxjKSl9ZnVuY3Rpb24gQmgoYSl7dmguY3VycmVudD09PWEmJihFKHVoKSxFKHZoKSl9dmFyIEw9VWYoMCk7XG5mdW5jdGlvbiBDaChhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe3ZhciBjPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGw9PT1jfHxcIiQ/XCI9PT1jLmRhdGF8fFwiJCFcIj09PWMuZGF0YSkpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5mbGFncyYxMjgpKXJldHVybiBifWVsc2UgaWYobnVsbCE9PWIuY2hpbGQpe2IuY2hpbGQucmV0dXJuPWI7Yj1iLmNoaWxkO2NvbnRpbnVlfWlmKGI9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWIuc2libGluZzspe2lmKG51bGw9PT1iLnJldHVybnx8Yi5yZXR1cm49PT1hKXJldHVybiBudWxsO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybjtiPWIuc2libGluZ31yZXR1cm4gbnVsbH12YXIgRGg9W107XG5mdW5jdGlvbiBFaCgpe2Zvcih2YXIgYT0wO2E8RGgubGVuZ3RoO2ErKylEaFthXS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1udWxsO0RoLmxlbmd0aD0wfXZhciBGaD11YS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLEdoPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLEhoPTAsTT1udWxsLE49bnVsbCxPPW51bGwsSWg9ITEsSmg9ITEsS2g9MCxMaD0wO2Z1bmN0aW9uIFAoKXt0aHJvdyBFcnJvcihwKDMyMSkpO31mdW5jdGlvbiBNaChhLGIpe2lmKG51bGw9PT1iKXJldHVybiExO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgmJmM8YS5sZW5ndGg7YysrKWlmKCFIZShhW2NdLGJbY10pKXJldHVybiExO3JldHVybiEwfVxuZnVuY3Rpb24gTmgoYSxiLGMsZCxlLGYpe0hoPWY7TT1iO2IubWVtb2l6ZWRTdGF0ZT1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtiLmxhbmVzPTA7RmguY3VycmVudD1udWxsPT09YXx8bnVsbD09PWEubWVtb2l6ZWRTdGF0ZT9PaDpQaDthPWMoZCxlKTtpZihKaCl7Zj0wO2Rve0poPSExO0toPTA7aWYoMjU8PWYpdGhyb3cgRXJyb3IocCgzMDEpKTtmKz0xO089Tj1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtGaC5jdXJyZW50PVFoO2E9YyhkLGUpfXdoaWxlKEpoKX1GaC5jdXJyZW50PVJoO2I9bnVsbCE9PU4mJm51bGwhPT1OLm5leHQ7SGg9MDtPPU49TT1udWxsO0loPSExO2lmKGIpdGhyb3cgRXJyb3IocCgzMDApKTtyZXR1cm4gYX1mdW5jdGlvbiBTaCgpe3ZhciBhPTAhPT1LaDtLaD0wO3JldHVybiBhfVxuZnVuY3Rpb24gVGgoKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtudWxsPT09Tz9NLm1lbW9pemVkU3RhdGU9Tz1hOk89Ty5uZXh0PWE7cmV0dXJuIE99ZnVuY3Rpb24gVWgoKXtpZihudWxsPT09Til7dmFyIGE9TS5hbHRlcm5hdGU7YT1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGE9Ti5uZXh0O3ZhciBiPW51bGw9PT1PP00ubWVtb2l6ZWRTdGF0ZTpPLm5leHQ7aWYobnVsbCE9PWIpTz1iLE49YTtlbHNle2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzEwKSk7Tj1hO2E9e21lbW9pemVkU3RhdGU6Ti5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpOLmJhc2VTdGF0ZSxiYXNlUXVldWU6Ti5iYXNlUXVldWUscXVldWU6Ti5xdWV1ZSxuZXh0Om51bGx9O251bGw9PT1PP00ubWVtb2l6ZWRTdGF0ZT1PPWE6Tz1PLm5leHQ9YX1yZXR1cm4gT31cbmZ1bmN0aW9uIFZoKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gV2goYSl7dmFyIGI9VWgoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IocCgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1OLGU9ZC5iYXNlUXVldWUsZj1jLnBlbmRpbmc7aWYobnVsbCE9PWYpe2lmKG51bGwhPT1lKXt2YXIgZz1lLm5leHQ7ZS5uZXh0PWYubmV4dDtmLm5leHQ9Z31kLmJhc2VRdWV1ZT1lPWY7Yy5wZW5kaW5nPW51bGx9aWYobnVsbCE9PWUpe2Y9ZS5uZXh0O2Q9ZC5iYXNlU3RhdGU7dmFyIGg9Zz1udWxsLGs9bnVsbCxsPWY7ZG97dmFyIG09bC5sYW5lO2lmKChIaCZtKT09PW0pbnVsbCE9PWsmJihrPWsubmV4dD17bGFuZTowLGFjdGlvbjpsLmFjdGlvbixoYXNFYWdlclN0YXRlOmwuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmwuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxkPWwuaGFzRWFnZXJTdGF0ZT9sLmVhZ2VyU3RhdGU6YShkLGwuYWN0aW9uKTtlbHNle3ZhciBxPXtsYW5lOm0sYWN0aW9uOmwuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6bC5oYXNFYWdlclN0YXRlLFxuZWFnZXJTdGF0ZTpsLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09az8oaD1rPXEsZz1kKTprPWsubmV4dD1xO00ubGFuZXN8PW07cmh8PW19bD1sLm5leHR9d2hpbGUobnVsbCE9PWwmJmwhPT1mKTtudWxsPT09az9nPWQ6ay5uZXh0PWg7SGUoZCxiLm1lbW9pemVkU3RhdGUpfHwoZGg9ITApO2IubWVtb2l6ZWRTdGF0ZT1kO2IuYmFzZVN0YXRlPWc7Yi5iYXNlUXVldWU9aztjLmxhc3RSZW5kZXJlZFN0YXRlPWR9YT1jLmludGVybGVhdmVkO2lmKG51bGwhPT1hKXtlPWE7ZG8gZj1lLmxhbmUsTS5sYW5lc3w9ZixyaHw9ZixlPWUubmV4dDt3aGlsZShlIT09YSl9ZWxzZSBudWxsPT09ZSYmKGMubGFuZXM9MCk7cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1cbmZ1bmN0aW9uIFhoKGEpe3ZhciBiPVVoKCksYz1iLnF1ZXVlO2lmKG51bGw9PT1jKXRocm93IEVycm9yKHAoMzExKSk7Yy5sYXN0UmVuZGVyZWRSZWR1Y2VyPWE7dmFyIGQ9Yy5kaXNwYXRjaCxlPWMucGVuZGluZyxmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZSl7Yy5wZW5kaW5nPW51bGw7dmFyIGc9ZT1lLm5leHQ7ZG8gZj1hKGYsZy5hY3Rpb24pLGc9Zy5uZXh0O3doaWxlKGchPT1lKTtIZShmLGIubWVtb2l6ZWRTdGF0ZSl8fChkaD0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7bnVsbD09PWIuYmFzZVF1ZXVlJiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltmLGRdfWZ1bmN0aW9uIFloKCl7fVxuZnVuY3Rpb24gWmgoYSxiKXt2YXIgYz1NLGQ9VWgoKSxlPWIoKSxmPSFIZShkLm1lbW9pemVkU3RhdGUsZSk7ZiYmKGQubWVtb2l6ZWRTdGF0ZT1lLGRoPSEwKTtkPWQucXVldWU7JGgoYWkuYmluZChudWxsLGMsZCxhKSxbYV0pO2lmKGQuZ2V0U25hcHNob3QhPT1ifHxmfHxudWxsIT09TyYmTy5tZW1vaXplZFN0YXRlLnRhZyYxKXtjLmZsYWdzfD0yMDQ4O2JpKDksY2kuYmluZChudWxsLGMsZCxlLGIpLHZvaWQgMCxudWxsKTtpZihudWxsPT09USl0aHJvdyBFcnJvcihwKDM0OSkpOzAhPT0oSGgmMzApfHxkaShjLGIsZSl9cmV0dXJuIGV9ZnVuY3Rpb24gZGkoYSxiLGMpe2EuZmxhZ3N8PTE2Mzg0O2E9e2dldFNuYXBzaG90OmIsdmFsdWU6Y307Yj1NLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE0udXBkYXRlUXVldWU9YixiLnN0b3Jlcz1bYV0pOihjPWIuc3RvcmVzLG51bGw9PT1jP2Iuc3RvcmVzPVthXTpjLnB1c2goYSkpfVxuZnVuY3Rpb24gY2koYSxiLGMsZCl7Yi52YWx1ZT1jO2IuZ2V0U25hcHNob3Q9ZDtlaShiKSYmZmkoYSl9ZnVuY3Rpb24gYWkoYSxiLGMpe3JldHVybiBjKGZ1bmN0aW9uKCl7ZWkoYikmJmZpKGEpfSl9ZnVuY3Rpb24gZWkoYSl7dmFyIGI9YS5nZXRTbmFwc2hvdDthPWEudmFsdWU7dHJ5e3ZhciBjPWIoKTtyZXR1cm4hSGUoYSxjKX1jYXRjaChkKXtyZXR1cm4hMH19ZnVuY3Rpb24gZmkoYSl7dmFyIGI9aWgoYSwxKTtudWxsIT09YiYmZ2koYixhLDEsLTEpfVxuZnVuY3Rpb24gaGkoYSl7dmFyIGI9VGgoKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpWaCxsYXN0UmVuZGVyZWRTdGF0ZTphfTtiLnF1ZXVlPWE7YT1hLmRpc3BhdGNoPWlpLmJpbmQobnVsbCxNLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19XG5mdW5jdGlvbiBiaShhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07Yj1NLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE0udXBkYXRlUXVldWU9YixiLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOihjPWIubGFzdEVmZmVjdCxudWxsPT09Yz9iLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGQ9Yy5uZXh0LGMubmV4dD1hLGEubmV4dD1kLGIubGFzdEVmZmVjdD1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gamkoKXtyZXR1cm4gVWgoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGtpKGEsYixjLGQpe3ZhciBlPVRoKCk7TS5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9YmkoMXxiLGMsdm9pZCAwLHZvaWQgMD09PWQ/bnVsbDpkKX1cbmZ1bmN0aW9uIGxpKGEsYixjLGQpe3ZhciBlPVVoKCk7ZD12b2lkIDA9PT1kP251bGw6ZDt2YXIgZj12b2lkIDA7aWYobnVsbCE9PU4pe3ZhciBnPU4ubWVtb2l6ZWRTdGF0ZTtmPWcuZGVzdHJveTtpZihudWxsIT09ZCYmTWgoZCxnLmRlcHMpKXtlLm1lbW9pemVkU3RhdGU9YmkoYixjLGYsZCk7cmV0dXJufX1NLmZsYWdzfD1hO2UubWVtb2l6ZWRTdGF0ZT1iaSgxfGIsYyxmLGQpfWZ1bmN0aW9uIG1pKGEsYil7cmV0dXJuIGtpKDgzOTA2NTYsOCxhLGIpfWZ1bmN0aW9uICRoKGEsYil7cmV0dXJuIGxpKDIwNDgsOCxhLGIpfWZ1bmN0aW9uIG5pKGEsYil7cmV0dXJuIGxpKDQsMixhLGIpfWZ1bmN0aW9uIG9pKGEsYil7cmV0dXJuIGxpKDQsNCxhLGIpfVxuZnVuY3Rpb24gcGkoYSxiKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYT1hKCksYihhKSxmdW5jdGlvbigpe2IobnVsbCl9O2lmKG51bGwhPT1iJiZ2b2lkIDAhPT1iKXJldHVybiBhPWEoKSxiLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2IuY3VycmVudD1udWxsfX1mdW5jdGlvbiBxaShhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIGxpKDQsNCxwaS5iaW5kKG51bGwsYixhKSxjKX1mdW5jdGlvbiByaSgpe31mdW5jdGlvbiBzaShhLGIpe3ZhciBjPVVoKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZNaChiLGRbMV0pKXJldHVybiBkWzBdO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHRpKGEsYil7dmFyIGM9VWgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJk1oKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfWZ1bmN0aW9uIHVpKGEsYixjKXtpZigwPT09KEhoJjIxKSlyZXR1cm4gYS5iYXNlU3RhdGUmJihhLmJhc2VTdGF0ZT0hMSxkaD0hMCksYS5tZW1vaXplZFN0YXRlPWM7SGUoYyxiKXx8KGM9eWMoKSxNLmxhbmVzfD1jLHJofD1jLGEuYmFzZVN0YXRlPSEwKTtyZXR1cm4gYn1mdW5jdGlvbiB2aShhLGIpe3ZhciBjPUM7Qz0wIT09YyYmND5jP2M6NDthKCEwKTt2YXIgZD1HaC50cmFuc2l0aW9uO0doLnRyYW5zaXRpb249e307dHJ5e2EoITEpLGIoKX1maW5hbGx5e0M9YyxHaC50cmFuc2l0aW9uPWR9fWZ1bmN0aW9uIHdpKCl7cmV0dXJuIFVoKCkubWVtb2l6ZWRTdGF0ZX1cbmZ1bmN0aW9uIHhpKGEsYixjKXt2YXIgZD15aShhKTtjPXtsYW5lOmQsYWN0aW9uOmMsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZih6aShhKSlBaShiLGMpO2Vsc2UgaWYoYz1oaChhLGIsYyxkKSxudWxsIT09Yyl7dmFyIGU9UigpO2dpKGMsYSxkLGUpO0JpKGMsYixkKX19XG5mdW5jdGlvbiBpaShhLGIsYyl7dmFyIGQ9eWkoYSksZT17bGFuZTpkLGFjdGlvbjpjLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoemkoYSkpQWkoYixlKTtlbHNle3ZhciBmPWEuYWx0ZXJuYXRlO2lmKDA9PT1hLmxhbmVzJiYobnVsbD09PWZ8fDA9PT1mLmxhbmVzKSYmKGY9Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyLG51bGwhPT1mKSl0cnl7dmFyIGc9Yi5sYXN0UmVuZGVyZWRTdGF0ZSxoPWYoZyxjKTtlLmhhc0VhZ2VyU3RhdGU9ITA7ZS5lYWdlclN0YXRlPWg7aWYoSGUoaCxnKSl7dmFyIGs9Yi5pbnRlcmxlYXZlZDtudWxsPT09az8oZS5uZXh0PWUsZ2goYikpOihlLm5leHQ9ay5uZXh0LGsubmV4dD1lKTtiLmludGVybGVhdmVkPWU7cmV0dXJufX1jYXRjaChsKXt9ZmluYWxseXt9Yz1oaChhLGIsZSxkKTtudWxsIT09YyYmKGU9UigpLGdpKGMsYSxkLGUpLEJpKGMsYixkKSl9fVxuZnVuY3Rpb24gemkoYSl7dmFyIGI9YS5hbHRlcm5hdGU7cmV0dXJuIGE9PT1NfHxudWxsIT09YiYmYj09PU19ZnVuY3Rpb24gQWkoYSxiKXtKaD1JaD0hMDt2YXIgYz1hLnBlbmRpbmc7bnVsbD09PWM/Yi5uZXh0PWI6KGIubmV4dD1jLm5leHQsYy5uZXh0PWIpO2EucGVuZGluZz1ifWZ1bmN0aW9uIEJpKGEsYixjKXtpZigwIT09KGMmNDE5NDI0MCkpe3ZhciBkPWIubGFuZXM7ZCY9YS5wZW5kaW5nTGFuZXM7Y3w9ZDtiLmxhbmVzPWM7Q2MoYSxjKX19XG52YXIgUmg9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOlAsdXNlQ29udGV4dDpQLHVzZUVmZmVjdDpQLHVzZUltcGVyYXRpdmVIYW5kbGU6UCx1c2VJbnNlcnRpb25FZmZlY3Q6UCx1c2VMYXlvdXRFZmZlY3Q6UCx1c2VNZW1vOlAsdXNlUmVkdWNlcjpQLHVzZVJlZjpQLHVzZVN0YXRlOlAsdXNlRGVidWdWYWx1ZTpQLHVzZURlZmVycmVkVmFsdWU6UCx1c2VUcmFuc2l0aW9uOlAsdXNlTXV0YWJsZVNvdXJjZTpQLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlAsdXNlSWQ6UCx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LE9oPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpmdW5jdGlvbihhLGIpe1RoKCkubWVtb2l6ZWRTdGF0ZT1bYSx2b2lkIDA9PT1iP251bGw6Yl07cmV0dXJuIGF9LHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0Om1pLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiBraSg0MTk0MzA4LFxuNCxwaS5iaW5kKG51bGwsYixhKSxjKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGtpKDQxOTQzMDgsNCxhLGIpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4ga2koNCwyLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1UaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1UaCgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifTtkLnF1ZXVlPWE7YT1hLmRpc3BhdGNoPXhpLmJpbmQobnVsbCxNLGEpO3JldHVybltkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpmdW5jdGlvbihhKXt2YXIgYj1cblRoKCk7YT17Y3VycmVudDphfTtyZXR1cm4gYi5tZW1vaXplZFN0YXRlPWF9LHVzZVN0YXRlOmhpLHVzZURlYnVnVmFsdWU6cmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gVGgoKS5tZW1vaXplZFN0YXRlPWF9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1oaSghMSksYj1hWzBdO2E9dmkuYmluZChudWxsLGFbMV0pO1RoKCkubWVtb2l6ZWRTdGF0ZT1hO3JldHVybltiLGFdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9TSxlPVRoKCk7aWYoSSl7aWYodm9pZCAwPT09Yyl0aHJvdyBFcnJvcihwKDQwNykpO2M9YygpfWVsc2V7Yz1iKCk7aWYobnVsbD09PVEpdGhyb3cgRXJyb3IocCgzNDkpKTswIT09KEhoJjMwKXx8ZGkoZCxiLGMpfWUubWVtb2l6ZWRTdGF0ZT1jO3ZhciBmPXt2YWx1ZTpjLGdldFNuYXBzaG90OmJ9O2UucXVldWU9ZjttaShhaS5iaW5kKG51bGwsZCxcbmYsYSksW2FdKTtkLmZsYWdzfD0yMDQ4O2JpKDksY2kuYmluZChudWxsLGQsZixjLGIpLHZvaWQgMCxudWxsKTtyZXR1cm4gY30sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgYT1UaCgpLGI9US5pZGVudGlmaWVyUHJlZml4O2lmKEkpe3ZhciBjPXNnO3ZhciBkPXJnO2M9KGQmfigxPDwzMi1vYyhkKS0xKSkudG9TdHJpbmcoMzIpK2M7Yj1cIjpcIitiK1wiUlwiK2M7Yz1LaCsrOzA8YyYmKGIrPVwiSFwiK2MudG9TdHJpbmcoMzIpKTtiKz1cIjpcIn1lbHNlIGM9TGgrKyxiPVwiOlwiK2IrXCJyXCIrYy50b1N0cmluZygzMikrXCI6XCI7cmV0dXJuIGEubWVtb2l6ZWRTdGF0ZT1ifSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LFBoPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpzaSx1c2VDb250ZXh0OmVoLHVzZUVmZmVjdDokaCx1c2VJbXBlcmF0aXZlSGFuZGxlOnFpLHVzZUluc2VydGlvbkVmZmVjdDpuaSx1c2VMYXlvdXRFZmZlY3Q6b2ksdXNlTWVtbzp0aSx1c2VSZWR1Y2VyOldoLHVzZVJlZjpqaSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBXaChWaCl9LFxudXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPVVoKCk7cmV0dXJuIHVpKGIsTi5tZW1vaXplZFN0YXRlLGEpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9V2goVmgpWzBdLGI9VWgoKS5tZW1vaXplZFN0YXRlO3JldHVyblthLGJdfSx1c2VNdXRhYmxlU291cmNlOlloLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlpoLHVzZUlkOndpLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sUWg9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOnNpLHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0OiRoLHVzZUltcGVyYXRpdmVIYW5kbGU6cWksdXNlSW5zZXJ0aW9uRWZmZWN0Om5pLHVzZUxheW91dEVmZmVjdDpvaSx1c2VNZW1vOnRpLHVzZVJlZHVjZXI6WGgsdXNlUmVmOmppLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFhoKFZoKX0sdXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPVVoKCk7cmV0dXJuIG51bGw9PT1cbk4/Yi5tZW1vaXplZFN0YXRlPWE6dWkoYixOLm1lbW9pemVkU3RhdGUsYSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1YaChWaClbMF0sYj1VaCgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW2EsYl19LHVzZU11dGFibGVTb3VyY2U6WWgsdXNlU3luY0V4dGVybmFsU3RvcmU6WmgsdXNlSWQ6d2ksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBDaShhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPUEoe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKTtyZXR1cm4gYn1yZXR1cm4gYn1mdW5jdGlvbiBEaShhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6QSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jOzA9PT1hLmxhbmVzJiYoYS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9Yyl9XG52YXIgRWk9e2lzTW91bnRlZDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLl9yZWFjdEludGVybmFscyk/VmIoYSk9PT1hOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9UigpLGU9eWkoYSksZj1taChkLGUpO2YucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZi5jYWxsYmFjaz1jKTtiPW5oKGEsZixlKTtudWxsIT09YiYmKGdpKGIsYSxlLGQpLG9oKGIsYSxlKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9UigpLGU9eWkoYSksZj1taChkLGUpO2YudGFnPTE7Zi5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihmLmNhbGxiYWNrPWMpO2I9bmgoYSxmLGUpO251bGwhPT1iJiYoZ2koYixhLGUsZCksb2goYixhLGUpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsczt2YXIgYz1SKCksZD1cbnlpKGEpLGU9bWgoYyxkKTtlLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZS5jYWxsYmFjaz1iKTtiPW5oKGEsZSxkKTtudWxsIT09YiYmKGdpKGIsYSxkLGMpLG9oKGIsYSxkKSl9fTtmdW5jdGlvbiBGaShhLGIsYyxkLGUsZixnKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsZyk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFJZShjLGQpfHwhSWUoZSxmKTohMH1cbmZ1bmN0aW9uIEdpKGEsYixjKXt2YXIgZD0hMSxlPVZmO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPWVoKGYpOihlPVpmKGIpP1hmOkguY3VycmVudCxkPWIuY29udGV4dFR5cGVzLGY9KGQ9bnVsbCE9PWQmJnZvaWQgMCE9PWQpP1lmKGEsZSk6VmYpO2I9bmV3IGIoYyxmKTthLm1lbW9pemVkU3RhdGU9bnVsbCE9PWIuc3RhdGUmJnZvaWQgMCE9PWIuc3RhdGU/Yi5zdGF0ZTpudWxsO2IudXBkYXRlcj1FaTthLnN0YXRlTm9kZT1iO2IuX3JlYWN0SW50ZXJuYWxzPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEhpKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZFaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIElpKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9e307a2goYSk7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD1laChmKTooZj1aZihiKT9YZjpILmN1cnJlbnQsZS5jb250ZXh0PVlmKGEsZikpO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2Y9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJihEaShhLGIsZixjKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50fHwoYj1lLnN0YXRlLFxuXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50JiZlLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGIhPT1lLnN0YXRlJiZFaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGUsZS5zdGF0ZSxudWxsKSxxaChhLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50RGlkTW91bnQmJihhLmZsYWdzfD00MTk0MzA4KX1mdW5jdGlvbiBKaShhLGIpe3RyeXt2YXIgYz1cIlwiLGQ9YjtkbyBjKz1QYShkKSxkPWQucmV0dXJuO3doaWxlKGQpO3ZhciBlPWN9Y2F0Y2goZil7ZT1cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2YubWVzc2FnZStcIlxcblwiK2Yuc3RhY2t9cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6ZSxkaWdlc3Q6bnVsbH19XG5mdW5jdGlvbiBLaShhLGIsYyl7cmV0dXJue3ZhbHVlOmEsc291cmNlOm51bGwsc3RhY2s6bnVsbCE9Yz9jOm51bGwsZGlnZXN0Om51bGwhPWI/YjpudWxsfX1mdW5jdGlvbiBMaShhLGIpe3RyeXtjb25zb2xlLmVycm9yKGIudmFsdWUpfWNhdGNoKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBjO30pfX12YXIgTWk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gTmkoYSxiLGMpe2M9bWgoLTEsYyk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7T2l8fChPaT0hMCxQaT1kKTtMaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIFFpKGEsYixjKXtjPW1oKC0xLGMpO2MudGFnPTM7dmFyIGQ9YS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGU9Yi52YWx1ZTtjLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZChlKX07Yy5jYWxsYmFjaz1mdW5jdGlvbigpe0xpKGEsYil9fXZhciBmPWEuc3RhdGVOb2RlO251bGwhPT1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaCYmKGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtMaShhLGIpO1wiZnVuY3Rpb25cIiE9PXR5cGVvZiBkJiYobnVsbD09PVJpP1JpPW5ldyBTZXQoW3RoaXNdKTpSaS5hZGQodGhpcykpO3ZhciBjPWIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChiLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09Yz9jOlwiXCJ9KX0pO3JldHVybiBjfVxuZnVuY3Rpb24gU2koYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO2lmKG51bGw9PT1kKXtkPWEucGluZ0NhY2hlPW5ldyBNaTt2YXIgZT1uZXcgU2V0O2Quc2V0KGIsZSl9ZWxzZSBlPWQuZ2V0KGIpLHZvaWQgMD09PWUmJihlPW5ldyBTZXQsZC5zZXQoYixlKSk7ZS5oYXMoYyl8fChlLmFkZChjKSxhPVRpLmJpbmQobnVsbCxhLGIsYyksYi50aGVuKGEsYSkpfWZ1bmN0aW9uIFVpKGEpe2Rve3ZhciBiO2lmKGI9MTM9PT1hLnRhZyliPWEubWVtb2l6ZWRTdGF0ZSxiPW51bGwhPT1iP251bGwhPT1iLmRlaHlkcmF0ZWQ/ITA6ITE6ITA7aWYoYilyZXR1cm4gYTthPWEucmV0dXJufXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFZpKGEsYixjLGQsZSl7aWYoMD09PShhLm1vZGUmMSkpcmV0dXJuIGE9PT1iP2EuZmxhZ3N8PTY1NTM2OihhLmZsYWdzfD0xMjgsYy5mbGFnc3w9MTMxMDcyLGMuZmxhZ3MmPS01MjgwNSwxPT09Yy50YWcmJihudWxsPT09Yy5hbHRlcm5hdGU/Yy50YWc9MTc6KGI9bWgoLTEsMSksYi50YWc9MixuaChjLGIsMSkpKSxjLmxhbmVzfD0xKSxhO2EuZmxhZ3N8PTY1NTM2O2EubGFuZXM9ZTtyZXR1cm4gYX12YXIgV2k9dWEuUmVhY3RDdXJyZW50T3duZXIsZGg9ITE7ZnVuY3Rpb24gWGkoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT9WZyhiLG51bGwsYyxkKTpVZyhiLGEuY2hpbGQsYyxkKX1cbmZ1bmN0aW9uIFlpKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjtjaChiLGUpO2Q9TmgoYSxiLGMsZCxmLGUpO2M9U2goKTtpZihudWxsIT09YSYmIWRoKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTIwNTMsYS5sYW5lcyY9fmUsWmkoYSxiLGUpO0kmJmMmJnZnKGIpO2IuZmxhZ3N8PTE7WGkoYSxiLGQsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiAkaShhLGIsYyxkLGUpe2lmKG51bGw9PT1hKXt2YXIgZj1jLnR5cGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJiFhaihmKSYmdm9pZCAwPT09Zi5kZWZhdWx0UHJvcHMmJm51bGw9PT1jLmNvbXBhcmUmJnZvaWQgMD09PWMuZGVmYXVsdFByb3BzKXJldHVybiBiLnRhZz0xNSxiLnR5cGU9ZixiaihhLGIsZixkLGUpO2E9UmcoYy50eXBlLG51bGwsZCxiLGIubW9kZSxlKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9Zj1hLmNoaWxkO2lmKDA9PT0oYS5sYW5lcyZlKSl7dmFyIGc9Zi5tZW1vaXplZFByb3BzO2M9Yy5jb21wYXJlO2M9bnVsbCE9PWM/YzpJZTtpZihjKGcsZCkmJmEucmVmPT09Yi5yZWYpcmV0dXJuIFppKGEsYixlKX1iLmZsYWdzfD0xO2E9UGcoZixkKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9XG5mdW5jdGlvbiBiaihhLGIsYyxkLGUpe2lmKG51bGwhPT1hKXt2YXIgZj1hLm1lbW9pemVkUHJvcHM7aWYoSWUoZixkKSYmYS5yZWY9PT1iLnJlZilpZihkaD0hMSxiLnBlbmRpbmdQcm9wcz1kPWYsMCE9PShhLmxhbmVzJmUpKTAhPT0oYS5mbGFncyYxMzEwNzIpJiYoZGg9ITApO2Vsc2UgcmV0dXJuIGIubGFuZXM9YS5sYW5lcyxaaShhLGIsZSl9cmV0dXJuIGNqKGEsYixjLGQsZSl9XG5mdW5jdGlvbiBkaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHMsZT1kLmNoaWxkcmVuLGY9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGw7aWYoXCJoaWRkZW5cIj09PWQubW9kZSlpZigwPT09KGIubW9kZSYxKSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LEcoZWosZmopLGZqfD1jO2Vsc2V7aWYoMD09PShjJjEwNzM3NDE4MjQpKXJldHVybiBhPW51bGwhPT1mP2YuYmFzZUxhbmVzfGM6YyxiLmxhbmVzPWIuY2hpbGRMYW5lcz0xMDczNzQxODI0LGIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmEsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sYi51cGRhdGVRdWV1ZT1udWxsLEcoZWosZmopLGZqfD1hLG51bGw7Yi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfTtkPW51bGwhPT1mP2YuYmFzZUxhbmVzOmM7Ryhlaixmaik7Zmp8PWR9ZWxzZSBudWxsIT09XG5mPyhkPWYuYmFzZUxhbmVzfGMsYi5tZW1vaXplZFN0YXRlPW51bGwpOmQ9YyxHKGVqLGZqKSxmanw9ZDtYaShhLGIsZSxjKTtyZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBnaihhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mn1mdW5jdGlvbiBjaihhLGIsYyxkLGUpe3ZhciBmPVpmKGMpP1hmOkguY3VycmVudDtmPVlmKGIsZik7Y2goYixlKTtjPU5oKGEsYixjLGQsZixlKTtkPVNoKCk7aWYobnVsbCE9PWEmJiFkaClyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZmxhZ3MmPS0yMDUzLGEubGFuZXMmPX5lLFppKGEsYixlKTtJJiZkJiZ2ZyhiKTtiLmZsYWdzfD0xO1hpKGEsYixjLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gaGooYSxiLGMsZCxlKXtpZihaZihjKSl7dmFyIGY9ITA7Y2coYil9ZWxzZSBmPSExO2NoKGIsZSk7aWYobnVsbD09PWIuc3RhdGVOb2RlKWlqKGEsYiksR2koYixjLGQpLElpKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGc9Yi5zdGF0ZU5vZGUsaD1iLm1lbW9pemVkUHJvcHM7Zy5wcm9wcz1oO3ZhciBrPWcuY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPWVoKGwpOihsPVpmKGMpP1hmOkguY3VycmVudCxsPVlmKGIsbCkpO3ZhciBtPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLHE9XCJmdW5jdGlvblwiPT09dHlwZW9mIG18fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlO3F8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHxcbihoIT09ZHx8ayE9PWwpJiZIaShiLGcsZCxsKTtqaD0hMTt2YXIgcj1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1yO3FoKGIsZCxnLGUpO2s9Yi5tZW1vaXplZFN0YXRlO2ghPT1kfHxyIT09a3x8V2YuY3VycmVudHx8amg/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBtJiYoRGkoYixjLG0sZCksaz1iLm1lbW9pemVkU3RhdGUpLChoPWpofHxGaShiLGMsaCxkLHIsayxsKSk/KHF8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudHx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudCYmZy5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSk6XG4oXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9ayksZy5wcm9wcz1kLGcuc3RhdGU9ayxnLmNvbnRleHQ9bCxkPWgpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQxOTQzMDgpLGQ9ITEpfWVsc2V7Zz1iLnN0YXRlTm9kZTtsaChhLGIpO2g9Yi5tZW1vaXplZFByb3BzO2w9Yi50eXBlPT09Yi5lbGVtZW50VHlwZT9oOkNpKGIudHlwZSxoKTtnLnByb3BzPWw7cT1iLnBlbmRpbmdQcm9wcztyPWcuY29udGV4dDtrPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBrJiZudWxsIT09az9rPWVoKGspOihrPVpmKGMpP1hmOkguY3VycmVudCxrPVlmKGIsaykpO3ZhciB5PWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyhtPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB5fHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChoIT09cXx8ciE9PWspJiZIaShiLGcsZCxrKTtqaD0hMTtyPWIubWVtb2l6ZWRTdGF0ZTtnLnN0YXRlPXI7cWgoYixkLGcsZSk7dmFyIG49Yi5tZW1vaXplZFN0YXRlO2ghPT1xfHxyIT09bnx8V2YuY3VycmVudHx8amg/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB5JiYoRGkoYixjLHksZCksbj1iLm1lbW9pemVkU3RhdGUpLChsPWpofHxGaShiLGMsbCxkLHIsbixrKXx8ITEpPyhtfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGUmJmcuY29tcG9uZW50V2lsbFVwZGF0ZShkLG4sayksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlxuZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShkLG4saykpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZSYmKGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5mbGFnc3w9MTAyNCkpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTEwMjQpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1uKSxnLnByb3BzPWQsZy5zdGF0ZT1uLGcuY29udGV4dD1rLGQ9bCk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PVxuYS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0xMDI0KSxkPSExKX1yZXR1cm4gamooYSxiLGMsZCxmLGUpfVxuZnVuY3Rpb24gamooYSxiLGMsZCxlLGYpe2dqKGEsYik7dmFyIGc9MCE9PShiLmZsYWdzJjEyOCk7aWYoIWQmJiFnKXJldHVybiBlJiZkZyhiLGMsITEpLFppKGEsYixmKTtkPWIuc3RhdGVOb2RlO1dpLmN1cnJlbnQ9Yjt2YXIgaD1nJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDpkLnJlbmRlcigpO2IuZmxhZ3N8PTE7bnVsbCE9PWEmJmc/KGIuY2hpbGQ9VWcoYixhLmNoaWxkLG51bGwsZiksYi5jaGlsZD1VZyhiLG51bGwsaCxmKSk6WGkoYSxiLGgsZik7Yi5tZW1vaXplZFN0YXRlPWQuc3RhdGU7ZSYmZGcoYixjLCEwKTtyZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBraihhKXt2YXIgYj1hLnN0YXRlTm9kZTtiLnBlbmRpbmdDb250ZXh0P2FnKGEsYi5wZW5kaW5nQ29udGV4dCxiLnBlbmRpbmdDb250ZXh0IT09Yi5jb250ZXh0KTpiLmNvbnRleHQmJmFnKGEsYi5jb250ZXh0LCExKTt5aChhLGIuY29udGFpbmVySW5mbyl9XG5mdW5jdGlvbiBsaihhLGIsYyxkLGUpe0lnKCk7SmcoZSk7Yi5mbGFnc3w9MjU2O1hpKGEsYixjLGQpO3JldHVybiBiLmNoaWxkfXZhciBtaj17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjB9O2Z1bmN0aW9uIG5qKGEpe3JldHVybntiYXNlTGFuZXM6YSxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfX1cbmZ1bmN0aW9uIG9qKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPUwuY3VycmVudCxmPSExLGc9MCE9PShiLmZsYWdzJjEyOCksaDsoaD1nKXx8KGg9bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGU/ITE6MCE9PShlJjIpKTtpZihoKWY9ITAsYi5mbGFncyY9LTEyOTtlbHNlIGlmKG51bGw9PT1hfHxudWxsIT09YS5tZW1vaXplZFN0YXRlKWV8PTE7RyhMLGUmMSk7aWYobnVsbD09PWEpe0VnKGIpO2E9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiYoYT1hLmRlaHlkcmF0ZWQsbnVsbCE9PWEpKXJldHVybiAwPT09KGIubW9kZSYxKT9iLmxhbmVzPTE6XCIkIVwiPT09YS5kYXRhP2IubGFuZXM9ODpiLmxhbmVzPTEwNzM3NDE4MjQsbnVsbDtnPWQuY2hpbGRyZW47YT1kLmZhbGxiYWNrO3JldHVybiBmPyhkPWIubW9kZSxmPWIuY2hpbGQsZz17bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOmd9LDA9PT0oZCYxKSYmbnVsbCE9PWY/KGYuY2hpbGRMYW5lcz0wLGYucGVuZGluZ1Byb3BzPVxuZyk6Zj1waihnLGQsMCxudWxsKSxhPVRnKGEsZCxjLG51bGwpLGYucmV0dXJuPWIsYS5yZXR1cm49YixmLnNpYmxpbmc9YSxiLmNoaWxkPWYsYi5jaGlsZC5tZW1vaXplZFN0YXRlPW5qKGMpLGIubWVtb2l6ZWRTdGF0ZT1taixhKTpxaihiLGcpfWU9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1lJiYoaD1lLmRlaHlkcmF0ZWQsbnVsbCE9PWgpKXJldHVybiByaihhLGIsZyxkLGgsZSxjKTtpZihmKXtmPWQuZmFsbGJhY2s7Zz1iLm1vZGU7ZT1hLmNoaWxkO2g9ZS5zaWJsaW5nO3ZhciBrPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn07MD09PShnJjEpJiZiLmNoaWxkIT09ZT8oZD1iLmNoaWxkLGQuY2hpbGRMYW5lcz0wLGQucGVuZGluZ1Byb3BzPWssYi5kZWxldGlvbnM9bnVsbCk6KGQ9UGcoZSxrKSxkLnN1YnRyZWVGbGFncz1lLnN1YnRyZWVGbGFncyYxNDY4MDA2NCk7bnVsbCE9PWg/Zj1QZyhoLGYpOihmPVRnKGYsZyxjLG51bGwpLGYuZmxhZ3N8PTIpO2YucmV0dXJuPVxuYjtkLnJldHVybj1iO2Quc2libGluZz1mO2IuY2hpbGQ9ZDtkPWY7Zj1iLmNoaWxkO2c9YS5jaGlsZC5tZW1vaXplZFN0YXRlO2c9bnVsbD09PWc/bmooYyk6e2Jhc2VMYW5lczpnLmJhc2VMYW5lc3xjLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOmcudHJhbnNpdGlvbnN9O2YubWVtb2l6ZWRTdGF0ZT1nO2YuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMmfmM7Yi5tZW1vaXplZFN0YXRlPW1qO3JldHVybiBkfWY9YS5jaGlsZDthPWYuc2libGluZztkPVBnKGYse21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn0pOzA9PT0oYi5tb2RlJjEpJiYoZC5sYW5lcz1jKTtkLnJldHVybj1iO2Quc2libGluZz1udWxsO251bGwhPT1hJiYoYz1iLmRlbGV0aW9ucyxudWxsPT09Yz8oYi5kZWxldGlvbnM9W2FdLGIuZmxhZ3N8PTE2KTpjLnB1c2goYSkpO2IuY2hpbGQ9ZDtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gZH1cbmZ1bmN0aW9uIHFqKGEsYil7Yj1waih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpifSxhLm1vZGUsMCxudWxsKTtiLnJldHVybj1hO3JldHVybiBhLmNoaWxkPWJ9ZnVuY3Rpb24gc2ooYSxiLGMsZCl7bnVsbCE9PWQmJkpnKGQpO1VnKGIsYS5jaGlsZCxudWxsLGMpO2E9cWooYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbik7YS5mbGFnc3w9MjtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gYX1cbmZ1bmN0aW9uIHJqKGEsYixjLGQsZSxmLGcpe2lmKGMpe2lmKGIuZmxhZ3MmMjU2KXJldHVybiBiLmZsYWdzJj0tMjU3LGQ9S2koRXJyb3IocCg0MjIpKSksc2ooYSxiLGcsZCk7aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gYi5jaGlsZD1hLmNoaWxkLGIuZmxhZ3N8PTEyOCxudWxsO2Y9ZC5mYWxsYmFjaztlPWIubW9kZTtkPXBqKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmQuY2hpbGRyZW59LGUsMCxudWxsKTtmPVRnKGYsZSxnLG51bGwpO2YuZmxhZ3N8PTI7ZC5yZXR1cm49YjtmLnJldHVybj1iO2Quc2libGluZz1mO2IuY2hpbGQ9ZDswIT09KGIubW9kZSYxKSYmVWcoYixhLmNoaWxkLG51bGwsZyk7Yi5jaGlsZC5tZW1vaXplZFN0YXRlPW5qKGcpO2IubWVtb2l6ZWRTdGF0ZT1tajtyZXR1cm4gZn1pZigwPT09KGIubW9kZSYxKSlyZXR1cm4gc2ooYSxiLGcsbnVsbCk7aWYoXCIkIVwiPT09ZS5kYXRhKXtkPWUubmV4dFNpYmxpbmcmJmUubmV4dFNpYmxpbmcuZGF0YXNldDtcbmlmKGQpdmFyIGg9ZC5kZ3N0O2Q9aDtmPUVycm9yKHAoNDE5KSk7ZD1LaShmLGQsdm9pZCAwKTtyZXR1cm4gc2ooYSxiLGcsZCl9aD0wIT09KGcmYS5jaGlsZExhbmVzKTtpZihkaHx8aCl7ZD1RO2lmKG51bGwhPT1kKXtzd2l0Y2goZyYtZyl7Y2FzZSA0OmU9MjticmVhaztjYXNlIDE2OmU9ODticmVhaztjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6ZT0zMjticmVhaztjYXNlIDUzNjg3MDkxMjplPTI2ODQzNTQ1NjticmVhaztkZWZhdWx0OmU9MH1lPTAhPT0oZSYoZC5zdXNwZW5kZWRMYW5lc3xnKSk/MDplO1xuMCE9PWUmJmUhPT1mLnJldHJ5TGFuZSYmKGYucmV0cnlMYW5lPWUsaWgoYSxlKSxnaShkLGEsZSwtMSkpfXRqKCk7ZD1LaShFcnJvcihwKDQyMSkpKTtyZXR1cm4gc2ooYSxiLGcsZCl9aWYoXCIkP1wiPT09ZS5kYXRhKXJldHVybiBiLmZsYWdzfD0xMjgsYi5jaGlsZD1hLmNoaWxkLGI9dWouYmluZChudWxsLGEpLGUuX3JlYWN0UmV0cnk9YixudWxsO2E9Zi50cmVlQ29udGV4dDt5Zz1MZihlLm5leHRTaWJsaW5nKTt4Zz1iO0k9ITA7emc9bnVsbDtudWxsIT09YSYmKG9nW3BnKytdPXJnLG9nW3BnKytdPXNnLG9nW3BnKytdPXFnLHJnPWEuaWQsc2c9YS5vdmVyZmxvdyxxZz1iKTtiPXFqKGIsZC5jaGlsZHJlbik7Yi5mbGFnc3w9NDA5NjtyZXR1cm4gYn1mdW5jdGlvbiB2aihhLGIsYyl7YS5sYW5lc3w9Yjt2YXIgZD1hLmFsdGVybmF0ZTtudWxsIT09ZCYmKGQubGFuZXN8PWIpO2JoKGEucmV0dXJuLGIsYyl9XG5mdW5jdGlvbiB3aihhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zj9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpkLHRhaWw6Yyx0YWlsTW9kZTplfTooZi5pc0JhY2t3YXJkcz1iLGYucmVuZGVyaW5nPW51bGwsZi5yZW5kZXJpbmdTdGFydFRpbWU9MCxmLmxhc3Q9ZCxmLnRhaWw9YyxmLnRhaWxNb2RlPWUpfVxuZnVuY3Rpb24geGooYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5yZXZlYWxPcmRlcixmPWQudGFpbDtYaShhLGIsZC5jaGlsZHJlbixjKTtkPUwuY3VycmVudDtpZigwIT09KGQmMikpZD1kJjF8MixiLmZsYWdzfD0xMjg7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmZsYWdzJjEyOCkpYTpmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7aWYoMTM9PT1hLnRhZyludWxsIT09YS5tZW1vaXplZFN0YXRlJiZ2aihhLGMsYik7ZWxzZSBpZigxOT09PWEudGFnKXZqKGEsYyxiKTtlbHNlIGlmKG51bGwhPT1hLmNoaWxkKXthLmNoaWxkLnJldHVybj1hO2E9YS5jaGlsZDtjb250aW51ZX1pZihhPT09YilicmVhayBhO2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8YS5yZXR1cm49PT1iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPTF9RyhMLGQpO2lmKDA9PT0oYi5tb2RlJjEpKWIubWVtb2l6ZWRTdGF0ZT1cbm51bGw7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcImZvcndhcmRzXCI6Yz1iLmNoaWxkO2ZvcihlPW51bGw7bnVsbCE9PWM7KWE9Yy5hbHRlcm5hdGUsbnVsbCE9PWEmJm51bGw9PT1DaChhKSYmKGU9YyksYz1jLnNpYmxpbmc7Yz1lO251bGw9PT1jPyhlPWIuY2hpbGQsYi5jaGlsZD1udWxsKTooZT1jLnNpYmxpbmcsYy5zaWJsaW5nPW51bGwpO3dqKGIsITEsZSxjLGYpO2JyZWFrO2Nhc2UgXCJiYWNrd2FyZHNcIjpjPW51bGw7ZT1iLmNoaWxkO2ZvcihiLmNoaWxkPW51bGw7bnVsbCE9PWU7KXthPWUuYWx0ZXJuYXRlO2lmKG51bGwhPT1hJiZudWxsPT09Q2goYSkpe2IuY2hpbGQ9ZTticmVha31hPWUuc2libGluZztlLnNpYmxpbmc9YztjPWU7ZT1hfXdqKGIsITAsYyxudWxsLGYpO2JyZWFrO2Nhc2UgXCJ0b2dldGhlclwiOndqKGIsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGlqKGEsYil7MD09PShiLm1vZGUmMSkmJm51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpfWZ1bmN0aW9uIFppKGEsYixjKXtudWxsIT09YSYmKGIuZGVwZW5kZW5jaWVzPWEuZGVwZW5kZW5jaWVzKTtyaHw9Yi5sYW5lcztpZigwPT09KGMmYi5jaGlsZExhbmVzKSlyZXR1cm4gbnVsbDtpZihudWxsIT09YSYmYi5jaGlsZCE9PWEuY2hpbGQpdGhyb3cgRXJyb3IocCgxNTMpKTtpZihudWxsIT09Yi5jaGlsZCl7YT1iLmNoaWxkO2M9UGcoYSxhLnBlbmRpbmdQcm9wcyk7Yi5jaGlsZD1jO2ZvcihjLnJldHVybj1iO251bGwhPT1hLnNpYmxpbmc7KWE9YS5zaWJsaW5nLGM9Yy5zaWJsaW5nPVBnKGEsYS5wZW5kaW5nUHJvcHMpLGMucmV0dXJuPWI7Yy5zaWJsaW5nPW51bGx9cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiB5aihhLGIsYyl7c3dpdGNoKGIudGFnKXtjYXNlIDM6a2ooYik7SWcoKTticmVhaztjYXNlIDU6QWgoYik7YnJlYWs7Y2FzZSAxOlpmKGIudHlwZSkmJmNnKGIpO2JyZWFrO2Nhc2UgNDp5aChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6dmFyIGQ9Yi50eXBlLl9jb250ZXh0LGU9Yi5tZW1vaXplZFByb3BzLnZhbHVlO0coV2csZC5fY3VycmVudFZhbHVlKTtkLl9jdXJyZW50VmFsdWU9ZTticmVhaztjYXNlIDEzOmQ9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kKXtpZihudWxsIT09ZC5kZWh5ZHJhdGVkKXJldHVybiBHKEwsTC5jdXJyZW50JjEpLGIuZmxhZ3N8PTEyOCxudWxsO2lmKDAhPT0oYyZiLmNoaWxkLmNoaWxkTGFuZXMpKXJldHVybiBvaihhLGIsYyk7RyhMLEwuY3VycmVudCYxKTthPVppKGEsYixjKTtyZXR1cm4gbnVsbCE9PWE/YS5zaWJsaW5nOm51bGx9RyhMLEwuY3VycmVudCYxKTticmVhaztjYXNlIDE5OmQ9MCE9PShjJlxuYi5jaGlsZExhbmVzKTtpZigwIT09KGEuZmxhZ3MmMTI4KSl7aWYoZClyZXR1cm4geGooYSxiLGMpO2IuZmxhZ3N8PTEyOH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwsZS5sYXN0RWZmZWN0PW51bGwpO0coTCxMLmN1cnJlbnQpO2lmKGQpYnJlYWs7ZWxzZSByZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGIubGFuZXM9MCxkaihhLGIsYyl9cmV0dXJuIFppKGEsYixjKX12YXIgemosQWosQmosQ2o7XG56aj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09Yy50YWcmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YilicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YilyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX07QWo9ZnVuY3Rpb24oKXt9O1xuQmo9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5tZW1vaXplZFByb3BzO2lmKGUhPT1kKXthPWIuc3RhdGVOb2RlO3hoKHVoLmN1cnJlbnQpO3ZhciBmPW51bGw7c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOmU9WWEoYSxlKTtkPVlhKGEsZCk7Zj1bXTticmVhaztjYXNlIFwic2VsZWN0XCI6ZT1BKHt9LGUse3ZhbHVlOnZvaWQgMH0pO2Q9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtmPVtdO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmU9Z2IoYSxlKTtkPWdiKGEsZCk7Zj1bXTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLm9uQ2xpY2smJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfXViKGMsZCk7dmFyIGc7Yz1udWxsO2ZvcihsIGluIGUpaWYoIWQuaGFzT3duUHJvcGVydHkobCkmJmUuaGFzT3duUHJvcGVydHkobCkmJm51bGwhPWVbbF0paWYoXCJzdHlsZVwiPT09bCl7dmFyIGg9ZVtsXTtmb3IoZyBpbiBoKWguaGFzT3duUHJvcGVydHkoZykmJlxuKGN8fChjPXt9KSxjW2ddPVwiXCIpfWVsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1sJiZcImNoaWxkcmVuXCIhPT1sJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09bCYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWwmJlwiYXV0b0ZvY3VzXCIhPT1sJiYoZWEuaGFzT3duUHJvcGVydHkobCk/Znx8KGY9W10pOihmPWZ8fFtdKS5wdXNoKGwsbnVsbCkpO2ZvcihsIGluIGQpe3ZhciBrPWRbbF07aD1udWxsIT1lP2VbbF06dm9pZCAwO2lmKGQuaGFzT3duUHJvcGVydHkobCkmJmshPT1oJiYobnVsbCE9a3x8bnVsbCE9aCkpaWYoXCJzdHlsZVwiPT09bClpZihoKXtmb3IoZyBpbiBoKSFoLmhhc093blByb3BlcnR5KGcpfHxrJiZrLmhhc093blByb3BlcnR5KGcpfHwoY3x8KGM9e30pLGNbZ109XCJcIik7Zm9yKGcgaW4gaylrLmhhc093blByb3BlcnR5KGcpJiZoW2ddIT09a1tnXSYmKGN8fChjPXt9KSxjW2ddPWtbZ10pfWVsc2UgY3x8KGZ8fChmPVtdKSxmLnB1c2gobCxcbmMpKSxjPWs7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWw/KGs9az9rLl9faHRtbDp2b2lkIDAsaD1oP2guX19odG1sOnZvaWQgMCxudWxsIT1rJiZoIT09ayYmKGY9Znx8W10pLnB1c2gobCxrKSk6XCJjaGlsZHJlblwiPT09bD9cInN0cmluZ1wiIT09dHlwZW9mIGsmJlwibnVtYmVyXCIhPT10eXBlb2Yga3x8KGY9Znx8W10pLnB1c2gobCxcIlwiK2spOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1sJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09bCYmKGVhLmhhc093blByb3BlcnR5KGwpPyhudWxsIT1rJiZcIm9uU2Nyb2xsXCI9PT1sJiZEKFwic2Nyb2xsXCIsYSksZnx8aD09PWt8fChmPVtdKSk6KGY9Znx8W10pLnB1c2gobCxrKSl9YyYmKGY9Znx8W10pLnB1c2goXCJzdHlsZVwiLGMpO3ZhciBsPWY7aWYoYi51cGRhdGVRdWV1ZT1sKWIuZmxhZ3N8PTR9fTtDaj1mdW5jdGlvbihhLGIsYyxkKXtjIT09ZCYmKGIuZmxhZ3N8PTQpfTtcbmZ1bmN0aW9uIERqKGEsYil7aWYoIUkpc3dpdGNoKGEudGFpbE1vZGUpe2Nhc2UgXCJoaWRkZW5cIjpiPWEudGFpbDtmb3IodmFyIGM9bnVsbDtudWxsIT09YjspbnVsbCE9PWIuYWx0ZXJuYXRlJiYoYz1iKSxiPWIuc2libGluZztudWxsPT09Yz9hLnRhaWw9bnVsbDpjLnNpYmxpbmc9bnVsbDticmVhaztjYXNlIFwiY29sbGFwc2VkXCI6Yz1hLnRhaWw7Zm9yKHZhciBkPW51bGw7bnVsbCE9PWM7KW51bGwhPT1jLmFsdGVybmF0ZSYmKGQ9YyksYz1jLnNpYmxpbmc7bnVsbD09PWQ/Ynx8bnVsbD09PWEudGFpbD9hLnRhaWw9bnVsbDphLnRhaWwuc2libGluZz1udWxsOmQuc2libGluZz1udWxsfX1cbmZ1bmN0aW9uIFMoYSl7dmFyIGI9bnVsbCE9PWEuYWx0ZXJuYXRlJiZhLmFsdGVybmF0ZS5jaGlsZD09PWEuY2hpbGQsYz0wLGQ9MDtpZihiKWZvcih2YXIgZT1hLmNoaWxkO251bGwhPT1lOyljfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxkfD1lLnN1YnRyZWVGbGFncyYxNDY4MDA2NCxkfD1lLmZsYWdzJjE0NjgwMDY0LGUucmV0dXJuPWEsZT1lLnNpYmxpbmc7ZWxzZSBmb3IoZT1hLmNoaWxkO251bGwhPT1lOyljfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxkfD1lLnN1YnRyZWVGbGFncyxkfD1lLmZsYWdzLGUucmV0dXJuPWEsZT1lLnNpYmxpbmc7YS5zdWJ0cmVlRmxhZ3N8PWQ7YS5jaGlsZExhbmVzPWM7cmV0dXJuIGJ9XG5mdW5jdGlvbiBFaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHM7d2coYik7c3dpdGNoKGIudGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gUyhiKSxudWxsO2Nhc2UgMTpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSxTKGIpLG51bGw7Y2FzZSAzOmQ9Yi5zdGF0ZU5vZGU7emgoKTtFKFdmKTtFKEgpO0VoKCk7ZC5wZW5kaW5nQ29udGV4dCYmKGQuY29udGV4dD1kLnBlbmRpbmdDb250ZXh0LGQucGVuZGluZ0NvbnRleHQ9bnVsbCk7aWYobnVsbD09PWF8fG51bGw9PT1hLmNoaWxkKUdnKGIpP2IuZmxhZ3N8PTQ6bnVsbD09PWF8fGEubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PT0oYi5mbGFncyYyNTYpfHwoYi5mbGFnc3w9MTAyNCxudWxsIT09emcmJihGaih6Zyksemc9bnVsbCkpO0FqKGEsYik7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDU6QmgoYik7dmFyIGU9eGgod2guY3VycmVudCk7XG5jPWIudHlwZTtpZihudWxsIT09YSYmbnVsbCE9Yi5zdGF0ZU5vZGUpQmooYSxiLGMsZCxlKSxhLnJlZiE9PWIucmVmJiYoYi5mbGFnc3w9NTEyLGIuZmxhZ3N8PTIwOTcxNTIpO2Vsc2V7aWYoIWQpe2lmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO1MoYik7cmV0dXJuIG51bGx9YT14aCh1aC5jdXJyZW50KTtpZihHZyhiKSl7ZD1iLnN0YXRlTm9kZTtjPWIudHlwZTt2YXIgZj1iLm1lbW9pemVkUHJvcHM7ZFtPZl09YjtkW1BmXT1mO2E9MCE9PShiLm1vZGUmMSk7c3dpdGNoKGMpe2Nhc2UgXCJkaWFsb2dcIjpEKFwiY2FuY2VsXCIsZCk7RChcImNsb3NlXCIsZCk7YnJlYWs7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpEKFwibG9hZFwiLGQpO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihlPTA7ZTxsZi5sZW5ndGg7ZSsrKUQobGZbZV0sZCk7YnJlYWs7Y2FzZSBcInNvdXJjZVwiOkQoXCJlcnJvclwiLGQpO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkQoXCJlcnJvclwiLFxuZCk7RChcImxvYWRcIixkKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkQoXCJ0b2dnbGVcIixkKTticmVhaztjYXNlIFwiaW5wdXRcIjpaYShkLGYpO0QoXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmQuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFmLm11bHRpcGxlfTtEKFwiaW52YWxpZFwiLGQpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGQsZiksRChcImludmFsaWRcIixkKX11YihjLGYpO2U9bnVsbDtmb3IodmFyIGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO1wiY2hpbGRyZW5cIj09PWc/XCJzdHJpbmdcIj09PXR5cGVvZiBoP2QudGV4dENvbnRlbnQhPT1oJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxoLGEpLGU9W1wiY2hpbGRyZW5cIixoXSk6XCJudW1iZXJcIj09PXR5cGVvZiBoJiZkLnRleHRDb250ZW50IT09XCJcIitoJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxcbmgsYSksZT1bXCJjaGlsZHJlblwiLFwiXCIraF0pOmVhLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1oJiZcIm9uU2Nyb2xsXCI9PT1nJiZEKFwic2Nyb2xsXCIsZCl9c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOlZhKGQpO2RiKGQsZiwhMCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6VmEoZCk7amIoZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJvcHRpb25cIjpicmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLm9uQ2xpY2smJihkLm9uY2xpY2s9QmYpfWQ9ZTtiLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJihiLmZsYWdzfD00KX1lbHNle2c9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hJiYoYT1rYihjKSk7XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP1wic2NyaXB0XCI9PT1jPyhhPWcuY3JlYXRlRWxlbWVudChcImRpdlwiKSxhLmlubmVySFRNTD1cIjxzY3JpcHQ+XFx4M2Mvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpKTpcblwic3RyaW5nXCI9PT10eXBlb2YgZC5pcz9hPWcuY3JlYXRlRWxlbWVudChjLHtpczpkLmlzfSk6KGE9Zy5jcmVhdGVFbGVtZW50KGMpLFwic2VsZWN0XCI9PT1jJiYoZz1hLGQubXVsdGlwbGU/Zy5tdWx0aXBsZT0hMDpkLnNpemUmJihnLnNpemU9ZC5zaXplKSkpOmE9Zy5jcmVhdGVFbGVtZW50TlMoYSxjKTthW09mXT1iO2FbUGZdPWQ7emooYSxiLCExLCExKTtiLnN0YXRlTm9kZT1hO2E6e2c9dmIoYyxkKTtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkQoXCJjYW5jZWxcIixhKTtEKFwiY2xvc2VcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpEKFwibG9hZFwiLGEpO2U9ZDticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoZT0wO2U8bGYubGVuZ3RoO2UrKylEKGxmW2VdLGEpO2U9ZDticmVhaztjYXNlIFwic291cmNlXCI6RChcImVycm9yXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkQoXCJlcnJvclwiLFxuYSk7RChcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImRldGFpbHNcIjpEKFwidG9nZ2xlXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGEsZCk7ZT1ZYShhLGQpO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmU9ZDticmVhaztjYXNlIFwic2VsZWN0XCI6YS5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWQubXVsdGlwbGV9O2U9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtEKFwiaW52YWxpZFwiLGEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGEsZCk7ZT1nYihhLGQpO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7ZGVmYXVsdDplPWR9dWIoYyxlKTtoPWU7Zm9yKGYgaW4gaClpZihoLmhhc093blByb3BlcnR5KGYpKXt2YXIgaz1oW2ZdO1wic3R5bGVcIj09PWY/c2IoYSxrKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1mPyhrPWs/ay5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJm5iKGEsaykpOlwiY2hpbGRyZW5cIj09PWY/XCJzdHJpbmdcIj09PXR5cGVvZiBrPyhcInRleHRhcmVhXCIhPT1cbmN8fFwiXCIhPT1rKSYmb2IoYSxrKTpcIm51bWJlclwiPT09dHlwZW9mIGsmJm9iKGEsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09ZiYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWYmJlwiYXV0b0ZvY3VzXCIhPT1mJiYoZWEuaGFzT3duUHJvcGVydHkoZik/bnVsbCE9ayYmXCJvblNjcm9sbFwiPT09ZiYmRChcInNjcm9sbFwiLGEpOm51bGwhPWsmJnRhKGEsZixrLGcpKX1zd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoYSk7ZGIoYSxkLCExKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShhKTtqYihhKTticmVhaztjYXNlIFwib3B0aW9uXCI6bnVsbCE9ZC52YWx1ZSYmYS5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIrU2EoZC52YWx1ZSkpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLm11bHRpcGxlPSEhZC5tdWx0aXBsZTtmPWQudmFsdWU7bnVsbCE9Zj9mYihhLCEhZC5tdWx0aXBsZSxmLCExKTpudWxsIT1kLmRlZmF1bHRWYWx1ZSYmZmIoYSwhIWQubXVsdGlwbGUsZC5kZWZhdWx0VmFsdWUsXG4hMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5vbkNsaWNrJiYoYS5vbmNsaWNrPUJmKX1zd2l0Y2goYyl7Y2FzZSBcImJ1dHRvblwiOmNhc2UgXCJpbnB1dFwiOmNhc2UgXCJzZWxlY3RcIjpjYXNlIFwidGV4dGFyZWFcIjpkPSEhZC5hdXRvRm9jdXM7YnJlYWsgYTtjYXNlIFwiaW1nXCI6ZD0hMDticmVhayBhO2RlZmF1bHQ6ZD0hMX19ZCYmKGIuZmxhZ3N8PTQpfW51bGwhPT1iLnJlZiYmKGIuZmxhZ3N8PTUxMixiLmZsYWdzfD0yMDk3MTUyKX1TKGIpO3JldHVybiBudWxsO2Nhc2UgNjppZihhJiZudWxsIT1iLnN0YXRlTm9kZSlDaihhLGIsYS5tZW1vaXplZFByb3BzLGQpO2Vsc2V7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBkJiZudWxsPT09Yi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IocCgxNjYpKTtjPXhoKHdoLmN1cnJlbnQpO3hoKHVoLmN1cnJlbnQpO2lmKEdnKGIpKXtkPWIuc3RhdGVOb2RlO2M9Yi5tZW1vaXplZFByb3BzO2RbT2ZdPWI7aWYoZj1kLm5vZGVWYWx1ZSE9PWMpaWYoYT1cbnhnLG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOkFmKGQubm9kZVZhbHVlLGMsMCE9PShhLm1vZGUmMSkpO2JyZWFrO2Nhc2UgNTohMCE9PWEubWVtb2l6ZWRQcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGQubm9kZVZhbHVlLGMsMCE9PShhLm1vZGUmMSkpfWYmJihiLmZsYWdzfD00KX1lbHNlIGQ9KDk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShkKSxkW09mXT1iLGIuc3RhdGVOb2RlPWR9UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDEzOkUoTCk7ZD1iLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PWF8fG51bGwhPT1hLm1lbW9pemVkU3RhdGUmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYoSSYmbnVsbCE9PXlnJiYwIT09KGIubW9kZSYxKSYmMD09PShiLmZsYWdzJjEyOCkpSGcoKSxJZygpLGIuZmxhZ3N8PTk4NTYwLGY9ITE7ZWxzZSBpZihmPUdnKGIpLG51bGwhPT1kJiZudWxsIT09ZC5kZWh5ZHJhdGVkKXtpZihudWxsPT09XG5hKXtpZighZil0aHJvdyBFcnJvcihwKDMxOCkpO2Y9Yi5tZW1vaXplZFN0YXRlO2Y9bnVsbCE9PWY/Zi5kZWh5ZHJhdGVkOm51bGw7aWYoIWYpdGhyb3cgRXJyb3IocCgzMTcpKTtmW09mXT1ifWVsc2UgSWcoKSwwPT09KGIuZmxhZ3MmMTI4KSYmKGIubWVtb2l6ZWRTdGF0ZT1udWxsKSxiLmZsYWdzfD00O1MoYik7Zj0hMX1lbHNlIG51bGwhPT16ZyYmKEZqKHpnKSx6Zz1udWxsKSxmPSEwO2lmKCFmKXJldHVybiBiLmZsYWdzJjY1NTM2P2I6bnVsbH1pZigwIT09KGIuZmxhZ3MmMTI4KSlyZXR1cm4gYi5sYW5lcz1jLGI7ZD1udWxsIT09ZDtkIT09KG51bGwhPT1hJiZudWxsIT09YS5tZW1vaXplZFN0YXRlKSYmZCYmKGIuY2hpbGQuZmxhZ3N8PTgxOTIsMCE9PShiLm1vZGUmMSkmJihudWxsPT09YXx8MCE9PShMLmN1cnJlbnQmMSk/MD09PVQmJihUPTMpOnRqKCkpKTtudWxsIT09Yi51cGRhdGVRdWV1ZSYmKGIuZmxhZ3N8PTQpO1MoYik7cmV0dXJuIG51bGw7Y2FzZSA0OnJldHVybiB6aCgpLFxuQWooYSxiKSxudWxsPT09YSYmc2YoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksUyhiKSxudWxsO2Nhc2UgMTA6cmV0dXJuIGFoKGIudHlwZS5fY29udGV4dCksUyhiKSxudWxsO2Nhc2UgMTc6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksUyhiKSxudWxsO2Nhc2UgMTk6RShMKTtmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09ZilyZXR1cm4gUyhiKSxudWxsO2Q9MCE9PShiLmZsYWdzJjEyOCk7Zz1mLnJlbmRlcmluZztpZihudWxsPT09ZylpZihkKURqKGYsITEpO2Vsc2V7aWYoMCE9PVR8fG51bGwhPT1hJiYwIT09KGEuZmxhZ3MmMTI4KSlmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7Zz1DaChhKTtpZihudWxsIT09Zyl7Yi5mbGFnc3w9MTI4O0RqKGYsITEpO2Q9Zy51cGRhdGVRdWV1ZTtudWxsIT09ZCYmKGIudXBkYXRlUXVldWU9ZCxiLmZsYWdzfD00KTtiLnN1YnRyZWVGbGFncz0wO2Q9Yztmb3IoYz1iLmNoaWxkO251bGwhPT1jOylmPWMsYT1kLGYuZmxhZ3MmPTE0NjgwMDY2LFxuZz1mLmFsdGVybmF0ZSxudWxsPT09Zz8oZi5jaGlsZExhbmVzPTAsZi5sYW5lcz1hLGYuY2hpbGQ9bnVsbCxmLnN1YnRyZWVGbGFncz0wLGYubWVtb2l6ZWRQcm9wcz1udWxsLGYubWVtb2l6ZWRTdGF0ZT1udWxsLGYudXBkYXRlUXVldWU9bnVsbCxmLmRlcGVuZGVuY2llcz1udWxsLGYuc3RhdGVOb2RlPW51bGwpOihmLmNoaWxkTGFuZXM9Zy5jaGlsZExhbmVzLGYubGFuZXM9Zy5sYW5lcyxmLmNoaWxkPWcuY2hpbGQsZi5zdWJ0cmVlRmxhZ3M9MCxmLmRlbGV0aW9ucz1udWxsLGYubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZi5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxmLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZi50eXBlPWcudHlwZSxhPWcuZGVwZW5kZW5jaWVzLGYuZGVwZW5kZW5jaWVzPW51bGw9PT1hP251bGw6e2xhbmVzOmEubGFuZXMsZmlyc3RDb250ZXh0OmEuZmlyc3RDb250ZXh0fSksYz1jLnNpYmxpbmc7RyhMLEwuY3VycmVudCYxfDIpO3JldHVybiBiLmNoaWxkfWE9XG5hLnNpYmxpbmd9bnVsbCE9PWYudGFpbCYmQigpPkdqJiYoYi5mbGFnc3w9MTI4LGQ9ITAsRGooZiwhMSksYi5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFkKWlmKGE9Q2goZyksbnVsbCE9PWEpe2lmKGIuZmxhZ3N8PTEyOCxkPSEwLGM9YS51cGRhdGVRdWV1ZSxudWxsIT09YyYmKGIudXBkYXRlUXVldWU9YyxiLmZsYWdzfD00KSxEaihmLCEwKSxudWxsPT09Zi50YWlsJiZcImhpZGRlblwiPT09Zi50YWlsTW9kZSYmIWcuYWx0ZXJuYXRlJiYhSSlyZXR1cm4gUyhiKSxudWxsfWVsc2UgMipCKCktZi5yZW5kZXJpbmdTdGFydFRpbWU+R2omJjEwNzM3NDE4MjQhPT1jJiYoYi5mbGFnc3w9MTI4LGQ9ITAsRGooZiwhMSksYi5sYW5lcz00MTk0MzA0KTtmLmlzQmFja3dhcmRzPyhnLnNpYmxpbmc9Yi5jaGlsZCxiLmNoaWxkPWcpOihjPWYubGFzdCxudWxsIT09Yz9jLnNpYmxpbmc9ZzpiLmNoaWxkPWcsZi5sYXN0PWcpfWlmKG51bGwhPT1mLnRhaWwpcmV0dXJuIGI9Zi50YWlsLGYucmVuZGVyaW5nPVxuYixmLnRhaWw9Yi5zaWJsaW5nLGYucmVuZGVyaW5nU3RhcnRUaW1lPUIoKSxiLnNpYmxpbmc9bnVsbCxjPUwuY3VycmVudCxHKEwsZD9jJjF8MjpjJjEpLGI7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEhqKCksZD1udWxsIT09Yi5tZW1vaXplZFN0YXRlLG51bGwhPT1hJiZudWxsIT09YS5tZW1vaXplZFN0YXRlIT09ZCYmKGIuZmxhZ3N8PTgxOTIpLGQmJjAhPT0oYi5tb2RlJjEpPzAhPT0oZmomMTA3Mzc0MTgyNCkmJihTKGIpLGIuc3VidHJlZUZsYWdzJjYmJihiLmZsYWdzfD04MTkyKSk6UyhiKSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpO31cbmZ1bmN0aW9uIElqKGEsYil7d2coYik7c3dpdGNoKGIudGFnKXtjYXNlIDE6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksYT1iLmZsYWdzLGEmNjU1MzY/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSAzOnJldHVybiB6aCgpLEUoV2YpLEUoSCksRWgoKSxhPWIuZmxhZ3MsMCE9PShhJjY1NTM2KSYmMD09PShhJjEyOCk/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSA1OnJldHVybiBCaChiKSxudWxsO2Nhc2UgMTM6RShMKTthPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YSYmbnVsbCE9PWEuZGVoeWRyYXRlZCl7aWYobnVsbD09PWIuYWx0ZXJuYXRlKXRocm93IEVycm9yKHAoMzQwKSk7SWcoKX1hPWIuZmxhZ3M7cmV0dXJuIGEmNjU1MzY/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSAxOTpyZXR1cm4gRShMKSxudWxsO2Nhc2UgNDpyZXR1cm4gemgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIGFoKGIudHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEhqKCksXG5udWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIEpqPSExLFU9ITEsS2o9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsVj1udWxsO2Z1bmN0aW9uIExqKGEsYil7dmFyIGM9YS5yZWY7aWYobnVsbCE9PWMpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGMpdHJ5e2MobnVsbCl9Y2F0Y2goZCl7VyhhLGIsZCl9ZWxzZSBjLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBNaihhLGIsYyl7dHJ5e2MoKX1jYXRjaChkKXtXKGEsYixkKX19dmFyIE5qPSExO1xuZnVuY3Rpb24gT2ooYSxiKXtDZj1kZDthPU1lKCk7aWYoTmUoYSkpe2lmKFwic2VsZWN0aW9uU3RhcnRcImluIGEpdmFyIGM9e3N0YXJ0OmEuc2VsZWN0aW9uU3RhcnQsZW5kOmEuc2VsZWN0aW9uRW5kfTtlbHNlIGE6e2M9KGM9YS5vd25lckRvY3VtZW50KSYmYy5kZWZhdWx0Vmlld3x8d2luZG93O3ZhciBkPWMuZ2V0U2VsZWN0aW9uJiZjLmdldFNlbGVjdGlvbigpO2lmKGQmJjAhPT1kLnJhbmdlQ291bnQpe2M9ZC5hbmNob3JOb2RlO3ZhciBlPWQuYW5jaG9yT2Zmc2V0LGY9ZC5mb2N1c05vZGU7ZD1kLmZvY3VzT2Zmc2V0O3RyeXtjLm5vZGVUeXBlLGYubm9kZVR5cGV9Y2F0Y2goRil7Yz1udWxsO2JyZWFrIGF9dmFyIGc9MCxoPS0xLGs9LTEsbD0wLG09MCxxPWEscj1udWxsO2I6Zm9yKDs7KXtmb3IodmFyIHk7Oyl7cSE9PWN8fDAhPT1lJiYzIT09cS5ub2RlVHlwZXx8KGg9ZytlKTtxIT09Znx8MCE9PWQmJjMhPT1xLm5vZGVUeXBlfHwoaz1nK2QpOzM9PT1xLm5vZGVUeXBlJiYoZys9XG5xLm5vZGVWYWx1ZS5sZW5ndGgpO2lmKG51bGw9PT0oeT1xLmZpcnN0Q2hpbGQpKWJyZWFrO3I9cTtxPXl9Zm9yKDs7KXtpZihxPT09YSlicmVhayBiO3I9PT1jJiYrK2w9PT1lJiYoaD1nKTtyPT09ZiYmKyttPT09ZCYmKGs9Zyk7aWYobnVsbCE9PSh5PXEubmV4dFNpYmxpbmcpKWJyZWFrO3E9cjtyPXEucGFyZW50Tm9kZX1xPXl9Yz0tMT09PWh8fC0xPT09az9udWxsOntzdGFydDpoLGVuZDprfX1lbHNlIGM9bnVsbH1jPWN8fHtzdGFydDowLGVuZDowfX1lbHNlIGM9bnVsbDtEZj17Zm9jdXNlZEVsZW06YSxzZWxlY3Rpb25SYW5nZTpjfTtkZD0hMTtmb3IoVj1iO251bGwhPT1WOylpZihiPVYsYT1iLmNoaWxkLDAhPT0oYi5zdWJ0cmVlRmxhZ3MmMTAyOCkmJm51bGwhPT1hKWEucmV0dXJuPWIsVj1hO2Vsc2UgZm9yKDtudWxsIT09Vjspe2I9Vjt0cnl7dmFyIG49Yi5hbHRlcm5hdGU7aWYoMCE9PShiLmZsYWdzJjEwMjQpKXN3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpicmVhaztcbmNhc2UgMTppZihudWxsIT09bil7dmFyIHQ9bi5tZW1vaXplZFByb3BzLEo9bi5tZW1vaXplZFN0YXRlLHg9Yi5zdGF0ZU5vZGUsdz14LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGIuZWxlbWVudFR5cGU9PT1iLnR5cGU/dDpDaShiLnR5cGUsdCksSik7eC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT13fWJyZWFrO2Nhc2UgMzp2YXIgdT1iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOzE9PT11Lm5vZGVUeXBlP3UudGV4dENvbnRlbnQ9XCJcIjo5PT09dS5ub2RlVHlwZSYmdS5kb2N1bWVudEVsZW1lbnQmJnUucmVtb3ZlQ2hpbGQodS5kb2N1bWVudEVsZW1lbnQpO2JyZWFrO2Nhc2UgNTpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MykpO319Y2F0Y2goRil7VyhiLGIucmV0dXJuLEYpfWE9Yi5zaWJsaW5nO2lmKG51bGwhPT1hKXthLnJldHVybj1iLnJldHVybjtWPWE7YnJlYWt9Vj1iLnJldHVybn1uPU5qO05qPSExO3JldHVybiBufVxuZnVuY3Rpb24gUGooYSxiLGMpe3ZhciBkPWIudXBkYXRlUXVldWU7ZD1udWxsIT09ZD9kLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09ZCl7dmFyIGU9ZD1kLm5leHQ7ZG97aWYoKGUudGFnJmEpPT09YSl7dmFyIGY9ZS5kZXN0cm95O2UuZGVzdHJveT12b2lkIDA7dm9pZCAwIT09ZiYmTWooYixjLGYpfWU9ZS5uZXh0fXdoaWxlKGUhPT1kKX19ZnVuY3Rpb24gUWooYSxiKXtiPWIudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7dmFyIGM9Yj1iLm5leHQ7ZG97aWYoKGMudGFnJmEpPT09YSl7dmFyIGQ9Yy5jcmVhdGU7Yy5kZXN0cm95PWQoKX1jPWMubmV4dH13aGlsZShjIT09Yil9fWZ1bmN0aW9uIFJqKGEpe3ZhciBiPWEucmVmO2lmKG51bGwhPT1iKXt2YXIgYz1hLnN0YXRlTm9kZTtzd2l0Y2goYS50YWcpe2Nhc2UgNTphPWM7YnJlYWs7ZGVmYXVsdDphPWN9XCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpiLmN1cnJlbnQ9YX19XG5mdW5jdGlvbiBTaihhKXt2YXIgYj1hLmFsdGVybmF0ZTtudWxsIT09YiYmKGEuYWx0ZXJuYXRlPW51bGwsU2ooYikpO2EuY2hpbGQ9bnVsbDthLmRlbGV0aW9ucz1udWxsO2Euc2libGluZz1udWxsOzU9PT1hLnRhZyYmKGI9YS5zdGF0ZU5vZGUsbnVsbCE9PWImJihkZWxldGUgYltPZl0sZGVsZXRlIGJbUGZdLGRlbGV0ZSBiW29mXSxkZWxldGUgYltRZl0sZGVsZXRlIGJbUmZdKSk7YS5zdGF0ZU5vZGU9bnVsbDthLnJldHVybj1udWxsO2EuZGVwZW5kZW5jaWVzPW51bGw7YS5tZW1vaXplZFByb3BzPW51bGw7YS5tZW1vaXplZFN0YXRlPW51bGw7YS5wZW5kaW5nUHJvcHM9bnVsbDthLnN0YXRlTm9kZT1udWxsO2EudXBkYXRlUXVldWU9bnVsbH1mdW5jdGlvbiBUaihhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIFVqKGEpe2E6Zm9yKDs7KXtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fFRqKGEucmV0dXJuKSlyZXR1cm4gbnVsbDthPWEucmV0dXJufWEuc2libGluZy5yZXR1cm49YS5yZXR1cm47Zm9yKGE9YS5zaWJsaW5nOzUhPT1hLnRhZyYmNiE9PWEudGFnJiYxOCE9PWEudGFnOyl7aWYoYS5mbGFncyYyKWNvbnRpbnVlIGE7aWYobnVsbD09PWEuY2hpbGR8fDQ9PT1hLnRhZyljb250aW51ZSBhO2Vsc2UgYS5jaGlsZC5yZXR1cm49YSxhPWEuY2hpbGR9aWYoIShhLmZsYWdzJjIpKXJldHVybiBhLnN0YXRlTm9kZX19XG5mdW5jdGlvbiBWaihhLGIsYyl7dmFyIGQ9YS50YWc7aWYoNT09PWR8fDY9PT1kKWE9YS5zdGF0ZU5vZGUsYj84PT09Yy5ub2RlVHlwZT9jLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYik6Yy5pbnNlcnRCZWZvcmUoYSxiKTooOD09PWMubm9kZVR5cGU/KGI9Yy5wYXJlbnROb2RlLGIuaW5zZXJ0QmVmb3JlKGEsYykpOihiPWMsYi5hcHBlbmRDaGlsZChhKSksYz1jLl9yZWFjdFJvb3RDb250YWluZXIsbnVsbCE9PWMmJnZvaWQgMCE9PWN8fG51bGwhPT1iLm9uY2xpY2t8fChiLm9uY2xpY2s9QmYpKTtlbHNlIGlmKDQhPT1kJiYoYT1hLmNoaWxkLG51bGwhPT1hKSlmb3IoVmooYSxiLGMpLGE9YS5zaWJsaW5nO251bGwhPT1hOylWaihhLGIsYyksYT1hLnNpYmxpbmd9XG5mdW5jdGlvbiBXaihhLGIsYyl7dmFyIGQ9YS50YWc7aWYoNT09PWR8fDY9PT1kKWE9YS5zdGF0ZU5vZGUsYj9jLmluc2VydEJlZm9yZShhLGIpOmMuYXBwZW5kQ2hpbGQoYSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKFdqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspV2ooYSxiLGMpLGE9YS5zaWJsaW5nfXZhciBYPW51bGwsWGo9ITE7ZnVuY3Rpb24gWWooYSxiLGMpe2ZvcihjPWMuY2hpbGQ7bnVsbCE9PWM7KVpqKGEsYixjKSxjPWMuc2libGluZ31cbmZ1bmN0aW9uIFpqKGEsYixjKXtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtsYy5vbkNvbW1pdEZpYmVyVW5tb3VudChrYyxjKX1jYXRjaChoKXt9c3dpdGNoKGMudGFnKXtjYXNlIDU6VXx8TGooYyxiKTtjYXNlIDY6dmFyIGQ9WCxlPVhqO1g9bnVsbDtZaihhLGIsYyk7WD1kO1hqPWU7bnVsbCE9PVgmJihYaj8oYT1YLGM9Yy5zdGF0ZU5vZGUsOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpOmEucmVtb3ZlQ2hpbGQoYykpOlgucmVtb3ZlQ2hpbGQoYy5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDE4Om51bGwhPT1YJiYoWGo/KGE9WCxjPWMuc3RhdGVOb2RlLDg9PT1hLm5vZGVUeXBlP0tmKGEucGFyZW50Tm9kZSxjKToxPT09YS5ub2RlVHlwZSYmS2YoYSxjKSxiZChhKSk6S2YoWCxjLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpkPVg7ZT1YajtYPWMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87WGo9ITA7XG5ZaihhLGIsYyk7WD1kO1hqPWU7YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFVJiYoZD1jLnVwZGF0ZVF1ZXVlLG51bGwhPT1kJiYoZD1kLmxhc3RFZmZlY3QsbnVsbCE9PWQpKSl7ZT1kPWQubmV4dDtkb3t2YXIgZj1lLGc9Zi5kZXN0cm95O2Y9Zi50YWc7dm9pZCAwIT09ZyYmKDAhPT0oZiYyKT9NaihjLGIsZyk6MCE9PShmJjQpJiZNaihjLGIsZykpO2U9ZS5uZXh0fXdoaWxlKGUhPT1kKX1ZaihhLGIsYyk7YnJlYWs7Y2FzZSAxOmlmKCFVJiYoTGooYyxiKSxkPWMuc3RhdGVOb2RlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudFdpbGxVbm1vdW50KSl0cnl7ZC5wcm9wcz1jLm1lbW9pemVkUHJvcHMsZC5zdGF0ZT1jLm1lbW9pemVkU3RhdGUsZC5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKGgpe1coYyxiLGgpfVlqKGEsYixjKTticmVhaztjYXNlIDIxOllqKGEsYixjKTticmVhaztjYXNlIDIyOmMubW9kZSYxPyhVPShkPVUpfHxudWxsIT09XG5jLm1lbW9pemVkU3RhdGUsWWooYSxiLGMpLFU9ZCk6WWooYSxiLGMpO2JyZWFrO2RlZmF1bHQ6WWooYSxiLGMpfX1mdW5jdGlvbiBhayhhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBLaik7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWJrLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fVxuZnVuY3Rpb24gY2soYSxiKXt2YXIgYz1iLmRlbGV0aW9ucztpZihudWxsIT09Yylmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTt0cnl7dmFyIGY9YSxnPWIsaD1nO2E6Zm9yKDtudWxsIT09aDspe3N3aXRjaChoLnRhZyl7Y2FzZSA1Olg9aC5zdGF0ZU5vZGU7WGo9ITE7YnJlYWsgYTtjYXNlIDM6WD1oLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1hqPSEwO2JyZWFrIGE7Y2FzZSA0Olg9aC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztYaj0hMDticmVhayBhfWg9aC5yZXR1cm59aWYobnVsbD09PVgpdGhyb3cgRXJyb3IocCgxNjApKTtaaihmLGcsZSk7WD1udWxsO1hqPSExO3ZhciBrPWUuYWx0ZXJuYXRlO251bGwhPT1rJiYoay5yZXR1cm49bnVsbCk7ZS5yZXR1cm49bnVsbH1jYXRjaChsKXtXKGUsYixsKX19aWYoYi5zdWJ0cmVlRmxhZ3MmMTI4NTQpZm9yKGI9Yi5jaGlsZDtudWxsIT09YjspZGsoYixhKSxiPWIuc2libGluZ31cbmZ1bmN0aW9uIGRrKGEsYil7dmFyIGM9YS5hbHRlcm5hdGUsZD1hLmZsYWdzO3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmNrKGIsYSk7ZWsoYSk7aWYoZCY0KXt0cnl7UGooMyxhLGEucmV0dXJuKSxRaigzLGEpfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX10cnl7UGooNSxhLGEucmV0dXJuKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgMTpjayhiLGEpO2VrKGEpO2QmNTEyJiZudWxsIT09YyYmTGooYyxjLnJldHVybik7YnJlYWs7Y2FzZSA1OmNrKGIsYSk7ZWsoYSk7ZCY1MTImJm51bGwhPT1jJiZMaihjLGMucmV0dXJuKTtpZihhLmZsYWdzJjMyKXt2YXIgZT1hLnN0YXRlTm9kZTt0cnl7b2IoZSxcIlwiKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWlmKGQmNCYmKGU9YS5zdGF0ZU5vZGUsbnVsbCE9ZSkpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcyxnPW51bGwhPT1jP2MubWVtb2l6ZWRQcm9wczpmLGg9YS50eXBlLGs9YS51cGRhdGVRdWV1ZTtcbmEudXBkYXRlUXVldWU9bnVsbDtpZihudWxsIT09ayl0cnl7XCJpbnB1dFwiPT09aCYmXCJyYWRpb1wiPT09Zi50eXBlJiZudWxsIT1mLm5hbWUmJmFiKGUsZik7dmIoaCxnKTt2YXIgbD12YihoLGYpO2ZvcihnPTA7ZzxrLmxlbmd0aDtnKz0yKXt2YXIgbT1rW2ddLHE9a1tnKzFdO1wic3R5bGVcIj09PW0/c2IoZSxxKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1tP25iKGUscSk6XCJjaGlsZHJlblwiPT09bT9vYihlLHEpOnRhKGUsbSxxLGwpfXN3aXRjaChoKXtjYXNlIFwiaW5wdXRcIjpiYihlLGYpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGUsZik7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOnZhciByPWUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtlLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFmLm11bHRpcGxlO3ZhciB5PWYudmFsdWU7bnVsbCE9eT9mYihlLCEhZi5tdWx0aXBsZSx5LCExKTpyIT09ISFmLm11bHRpcGxlJiYobnVsbCE9Zi5kZWZhdWx0VmFsdWU/ZmIoZSwhIWYubXVsdGlwbGUsXG5mLmRlZmF1bHRWYWx1ZSwhMCk6ZmIoZSwhIWYubXVsdGlwbGUsZi5tdWx0aXBsZT9bXTpcIlwiLCExKSl9ZVtQZl09Zn1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgNjpjayhiLGEpO2VrKGEpO2lmKGQmNCl7aWYobnVsbD09PWEuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTYyKSk7ZT1hLnN0YXRlTm9kZTtmPWEubWVtb2l6ZWRQcm9wczt0cnl7ZS5ub2RlVmFsdWU9Zn1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgMzpjayhiLGEpO2VrKGEpO2lmKGQmNCYmbnVsbCE9PWMmJmMubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2JkKGIuY29udGFpbmVySW5mbyl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfWJyZWFrO2Nhc2UgNDpjayhiLGEpO2VrKGEpO2JyZWFrO2Nhc2UgMTM6Y2soYixhKTtlayhhKTtlPWEuY2hpbGQ7ZS5mbGFncyY4MTkyJiYoZj1udWxsIT09ZS5tZW1vaXplZFN0YXRlLGUuc3RhdGVOb2RlLmlzSGlkZGVuPWYsIWZ8fFxubnVsbCE9PWUuYWx0ZXJuYXRlJiZudWxsIT09ZS5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZXx8KGZrPUIoKSkpO2QmNCYmYWsoYSk7YnJlYWs7Y2FzZSAyMjptPW51bGwhPT1jJiZudWxsIT09Yy5tZW1vaXplZFN0YXRlO2EubW9kZSYxPyhVPShsPVUpfHxtLGNrKGIsYSksVT1sKTpjayhiLGEpO2VrKGEpO2lmKGQmODE5Mil7bD1udWxsIT09YS5tZW1vaXplZFN0YXRlO2lmKChhLnN0YXRlTm9kZS5pc0hpZGRlbj1sKSYmIW0mJjAhPT0oYS5tb2RlJjEpKWZvcihWPWEsbT1hLmNoaWxkO251bGwhPT1tOyl7Zm9yKHE9Vj1tO251bGwhPT1WOyl7cj1WO3k9ci5jaGlsZDtzd2l0Y2goci50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpQaig0LHIsci5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpMaihyLHIucmV0dXJuKTt2YXIgbj1yLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5jb21wb25lbnRXaWxsVW5tb3VudCl7ZD1yO2M9ci5yZXR1cm47dHJ5e2I9ZCxuLnByb3BzPVxuYi5tZW1vaXplZFByb3BzLG4uc3RhdGU9Yi5tZW1vaXplZFN0YXRlLG4uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaCh0KXtXKGQsYyx0KX19YnJlYWs7Y2FzZSA1OkxqKHIsci5yZXR1cm4pO2JyZWFrO2Nhc2UgMjI6aWYobnVsbCE9PXIubWVtb2l6ZWRTdGF0ZSl7Z2socSk7Y29udGludWV9fW51bGwhPT15Pyh5LnJldHVybj1yLFY9eSk6Z2socSl9bT1tLnNpYmxpbmd9YTpmb3IobT1udWxsLHE9YTs7KXtpZig1PT09cS50YWcpe2lmKG51bGw9PT1tKXttPXE7dHJ5e2U9cS5zdGF0ZU5vZGUsbD8oZj1lLnN0eWxlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLnNldFByb3BlcnR5P2Yuc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6Zi5kaXNwbGF5PVwibm9uZVwiKTooaD1xLnN0YXRlTm9kZSxrPXEubWVtb2l6ZWRQcm9wcy5zdHlsZSxnPXZvaWQgMCE9PWsmJm51bGwhPT1rJiZrLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9rLmRpc3BsYXk6bnVsbCxoLnN0eWxlLmRpc3BsYXk9XG5yYihcImRpc3BsYXlcIixnKSl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX19ZWxzZSBpZig2PT09cS50YWcpe2lmKG51bGw9PT1tKXRyeXtxLnN0YXRlTm9kZS5ub2RlVmFsdWU9bD9cIlwiOnEubWVtb2l6ZWRQcm9wc31jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWVsc2UgaWYoKDIyIT09cS50YWcmJjIzIT09cS50YWd8fG51bGw9PT1xLm1lbW9pemVkU3RhdGV8fHE9PT1hKSYmbnVsbCE9PXEuY2hpbGQpe3EuY2hpbGQucmV0dXJuPXE7cT1xLmNoaWxkO2NvbnRpbnVlfWlmKHE9PT1hKWJyZWFrIGE7Zm9yKDtudWxsPT09cS5zaWJsaW5nOyl7aWYobnVsbD09PXEucmV0dXJufHxxLnJldHVybj09PWEpYnJlYWsgYTttPT09cSYmKG09bnVsbCk7cT1xLnJldHVybn1tPT09cSYmKG09bnVsbCk7cS5zaWJsaW5nLnJldHVybj1xLnJldHVybjtxPXEuc2libGluZ319YnJlYWs7Y2FzZSAxOTpjayhiLGEpO2VrKGEpO2QmNCYmYWsoYSk7YnJlYWs7Y2FzZSAyMTpicmVhaztkZWZhdWx0OmNrKGIsXG5hKSxlayhhKX19ZnVuY3Rpb24gZWsoYSl7dmFyIGI9YS5mbGFncztpZihiJjIpe3RyeXthOntmb3IodmFyIGM9YS5yZXR1cm47bnVsbCE9PWM7KXtpZihUaihjKSl7dmFyIGQ9YzticmVhayBhfWM9Yy5yZXR1cm59dGhyb3cgRXJyb3IocCgxNjApKTt9c3dpdGNoKGQudGFnKXtjYXNlIDU6dmFyIGU9ZC5zdGF0ZU5vZGU7ZC5mbGFncyYzMiYmKG9iKGUsXCJcIiksZC5mbGFncyY9LTMzKTt2YXIgZj1VaihhKTtXaihhLGYsZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZz1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGg9VWooYSk7VmooYSxoLGcpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjEpKTt9fWNhdGNoKGspe1coYSxhLnJldHVybixrKX1hLmZsYWdzJj0tM31iJjQwOTYmJihhLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gaGsoYSxiLGMpe1Y9YTtpayhhLGIsYyl9XG5mdW5jdGlvbiBpayhhLGIsYyl7Zm9yKHZhciBkPTAhPT0oYS5tb2RlJjEpO251bGwhPT1WOyl7dmFyIGU9VixmPWUuY2hpbGQ7aWYoMjI9PT1lLnRhZyYmZCl7dmFyIGc9bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZXx8Smo7aWYoIWcpe3ZhciBoPWUuYWx0ZXJuYXRlLGs9bnVsbCE9PWgmJm51bGwhPT1oLm1lbW9pemVkU3RhdGV8fFU7aD1Kajt2YXIgbD1VO0pqPWc7aWYoKFU9aykmJiFsKWZvcihWPWU7bnVsbCE9PVY7KWc9VixrPWcuY2hpbGQsMjI9PT1nLnRhZyYmbnVsbCE9PWcubWVtb2l6ZWRTdGF0ZT9qayhlKTpudWxsIT09az8oay5yZXR1cm49ZyxWPWspOmprKGUpO2Zvcig7bnVsbCE9PWY7KVY9ZixpayhmLGIsYyksZj1mLnNpYmxpbmc7Vj1lO0pqPWg7VT1sfWtrKGEsYixjKX1lbHNlIDAhPT0oZS5zdWJ0cmVlRmxhZ3MmODc3MikmJm51bGwhPT1mPyhmLnJldHVybj1lLFY9Zik6a2soYSxiLGMpfX1cbmZ1bmN0aW9uIGtrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKDAhPT0oYi5mbGFncyY4NzcyKSl7dmFyIGM9Yi5hbHRlcm5hdGU7dHJ5e2lmKDAhPT0oYi5mbGFncyY4NzcyKSlzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6VXx8UWooNSxiKTticmVhaztjYXNlIDE6dmFyIGQ9Yi5zdGF0ZU5vZGU7aWYoYi5mbGFncyY0JiYhVSlpZihudWxsPT09YylkLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgZT1iLmVsZW1lbnRUeXBlPT09Yi50eXBlP2MubWVtb2l6ZWRQcm9wczpDaShiLnR5cGUsYy5tZW1vaXplZFByb3BzKTtkLmNvbXBvbmVudERpZFVwZGF0ZShlLGMubWVtb2l6ZWRTdGF0ZSxkLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgZj1iLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiZzaChiLGYsZCk7YnJlYWs7Y2FzZSAzOnZhciBnPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWcpe2M9bnVsbDtpZihudWxsIT09Yi5jaGlsZClzd2l0Y2goYi5jaGlsZC50YWcpe2Nhc2UgNTpjPVxuYi5jaGlsZC5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAxOmM9Yi5jaGlsZC5zdGF0ZU5vZGV9c2goYixnLGMpfWJyZWFrO2Nhc2UgNTp2YXIgaD1iLnN0YXRlTm9kZTtpZihudWxsPT09YyYmYi5mbGFncyY0KXtjPWg7dmFyIGs9Yi5tZW1vaXplZFByb3BzO3N3aXRjaChiLnR5cGUpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6ay5hdXRvRm9jdXMmJmMuZm9jdXMoKTticmVhaztjYXNlIFwiaW1nXCI6ay5zcmMmJihjLnNyYz1rLnNyYyl9fWJyZWFrO2Nhc2UgNjpicmVhaztjYXNlIDQ6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmlmKG51bGw9PT1iLm1lbW9pemVkU3RhdGUpe3ZhciBsPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1sKXt2YXIgbT1sLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW0pe3ZhciBxPW0uZGVoeWRyYXRlZDtudWxsIT09cSYmYmQocSl9fX1icmVhaztjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNTpicmVhaztcbmRlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKTt9VXx8Yi5mbGFncyY1MTImJlJqKGIpfWNhdGNoKHIpe1coYixiLnJldHVybixyKX19aWYoYj09PWEpe1Y9bnVsbDticmVha31jPWIuc2libGluZztpZihudWxsIT09Yyl7Yy5yZXR1cm49Yi5yZXR1cm47Vj1jO2JyZWFrfVY9Yi5yZXR1cm59fWZ1bmN0aW9uIGdrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKGI9PT1hKXtWPW51bGw7YnJlYWt9dmFyIGM9Yi5zaWJsaW5nO2lmKG51bGwhPT1jKXtjLnJldHVybj1iLnJldHVybjtWPWM7YnJlYWt9Vj1iLnJldHVybn19XG5mdW5jdGlvbiBqayhhKXtmb3IoO251bGwhPT1WOyl7dmFyIGI9Vjt0cnl7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnZhciBjPWIucmV0dXJuO3RyeXtRaig0LGIpfWNhdGNoKGspe1coYixjLGspfWJyZWFrO2Nhc2UgMTp2YXIgZD1iLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRNb3VudCl7dmFyIGU9Yi5yZXR1cm47dHJ5e2QuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChrKXtXKGIsZSxrKX19dmFyIGY9Yi5yZXR1cm47dHJ5e1JqKGIpfWNhdGNoKGspe1coYixmLGspfWJyZWFrO2Nhc2UgNTp2YXIgZz1iLnJldHVybjt0cnl7UmooYil9Y2F0Y2goayl7VyhiLGcsayl9fX1jYXRjaChrKXtXKGIsYi5yZXR1cm4sayl9aWYoYj09PWEpe1Y9bnVsbDticmVha312YXIgaD1iLnNpYmxpbmc7aWYobnVsbCE9PWgpe2gucmV0dXJuPWIucmV0dXJuO1Y9aDticmVha31WPWIucmV0dXJufX1cbnZhciBsaz1NYXRoLmNlaWwsbWs9dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixuaz11YS5SZWFjdEN1cnJlbnRPd25lcixvaz11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxLPTAsUT1udWxsLFk9bnVsbCxaPTAsZmo9MCxlaj1VZigwKSxUPTAscGs9bnVsbCxyaD0wLHFrPTAscms9MCxzaz1udWxsLHRrPW51bGwsZms9MCxHaj1JbmZpbml0eSx1az1udWxsLE9pPSExLFBpPW51bGwsUmk9bnVsbCx2az0hMSx3az1udWxsLHhrPTAseWs9MCx6az1udWxsLEFrPS0xLEJrPTA7ZnVuY3Rpb24gUigpe3JldHVybiAwIT09KEsmNik/QigpOi0xIT09QWs/QWs6QWs9QigpfVxuZnVuY3Rpb24geWkoYSl7aWYoMD09PShhLm1vZGUmMSkpcmV0dXJuIDE7aWYoMCE9PShLJjIpJiYwIT09WilyZXR1cm4gWiYtWjtpZihudWxsIT09S2cudHJhbnNpdGlvbilyZXR1cm4gMD09PUJrJiYoQms9eWMoKSksQms7YT1DO2lmKDAhPT1hKXJldHVybiBhO2E9d2luZG93LmV2ZW50O2E9dm9pZCAwPT09YT8xNjpqZChhLnR5cGUpO3JldHVybiBhfWZ1bmN0aW9uIGdpKGEsYixjLGQpe2lmKDUwPHlrKXRocm93IHlrPTAsems9bnVsbCxFcnJvcihwKDE4NSkpO0FjKGEsYyxkKTtpZigwPT09KEsmMil8fGEhPT1RKWE9PT1RJiYoMD09PShLJjIpJiYocWt8PWMpLDQ9PT1UJiZDayhhLFopKSxEayhhLGQpLDE9PT1jJiYwPT09SyYmMD09PShiLm1vZGUmMSkmJihHaj1CKCkrNTAwLGZnJiZqZygpKX1cbmZ1bmN0aW9uIERrKGEsYil7dmFyIGM9YS5jYWxsYmFja05vZGU7d2MoYSxiKTt2YXIgZD11YyhhLGE9PT1RP1o6MCk7aWYoMD09PWQpbnVsbCE9PWMmJmJjKGMpLGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTA7ZWxzZSBpZihiPWQmLWQsYS5jYWxsYmFja1ByaW9yaXR5IT09Yil7bnVsbCE9YyYmYmMoYyk7aWYoMT09PWIpMD09PWEudGFnP2lnKEVrLmJpbmQobnVsbCxhKSk6aGcoRWsuYmluZChudWxsLGEpKSxKZihmdW5jdGlvbigpezA9PT0oSyY2KSYmamcoKX0pLGM9bnVsbDtlbHNle3N3aXRjaChEYyhkKSl7Y2FzZSAxOmM9ZmM7YnJlYWs7Y2FzZSA0OmM9Z2M7YnJlYWs7Y2FzZSAxNjpjPWhjO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOmM9amM7YnJlYWs7ZGVmYXVsdDpjPWhjfWM9RmsoYyxHay5iaW5kKG51bGwsYSkpfWEuY2FsbGJhY2tQcmlvcml0eT1iO2EuY2FsbGJhY2tOb2RlPWN9fVxuZnVuY3Rpb24gR2soYSxiKXtBaz0tMTtCaz0wO2lmKDAhPT0oSyY2KSl0aHJvdyBFcnJvcihwKDMyNykpO3ZhciBjPWEuY2FsbGJhY2tOb2RlO2lmKEhrKCkmJmEuY2FsbGJhY2tOb2RlIT09YylyZXR1cm4gbnVsbDt2YXIgZD11YyhhLGE9PT1RP1o6MCk7aWYoMD09PWQpcmV0dXJuIG51bGw7aWYoMCE9PShkJjMwKXx8MCE9PShkJmEuZXhwaXJlZExhbmVzKXx8YiliPUlrKGEsZCk7ZWxzZXtiPWQ7dmFyIGU9SztLfD0yO3ZhciBmPUprKCk7aWYoUSE9PWF8fFohPT1iKXVrPW51bGwsR2o9QigpKzUwMCxLayhhLGIpO2RvIHRyeXtMaygpO2JyZWFrfWNhdGNoKGgpe01rKGEsaCl9d2hpbGUoMSk7JGcoKTttay5jdXJyZW50PWY7Sz1lO251bGwhPT1ZP2I9MDooUT1udWxsLFo9MCxiPVQpfWlmKDAhPT1iKXsyPT09YiYmKGU9eGMoYSksMCE9PWUmJihkPWUsYj1OayhhLGUpKSk7aWYoMT09PWIpdGhyb3cgYz1wayxLayhhLDApLENrKGEsZCksRGsoYSxCKCkpLGM7aWYoNj09PWIpQ2soYSxkKTtcbmVsc2V7ZT1hLmN1cnJlbnQuYWx0ZXJuYXRlO2lmKDA9PT0oZCYzMCkmJiFPayhlKSYmKGI9SWsoYSxkKSwyPT09YiYmKGY9eGMoYSksMCE9PWYmJihkPWYsYj1OayhhLGYpKSksMT09PWIpKXRocm93IGM9cGssS2soYSwwKSxDayhhLGQpLERrKGEsQigpKSxjO2EuZmluaXNoZWRXb3JrPWU7YS5maW5pc2hlZExhbmVzPWQ7c3dpdGNoKGIpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IocCgzNDUpKTtjYXNlIDI6UGsoYSx0ayx1ayk7YnJlYWs7Y2FzZSAzOkNrKGEsZCk7aWYoKGQmMTMwMDIzNDI0KT09PWQmJihiPWZrKzUwMC1CKCksMTA8Yikpe2lmKDAhPT11YyhhLDApKWJyZWFrO2U9YS5zdXNwZW5kZWRMYW5lcztpZigoZSZkKSE9PWQpe1IoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmU7YnJlYWt9YS50aW1lb3V0SGFuZGxlPUZmKFBrLmJpbmQobnVsbCxhLHRrLHVrKSxiKTticmVha31QayhhLHRrLHVrKTticmVhaztjYXNlIDQ6Q2soYSxkKTtpZigoZCY0MTk0MjQwKT09PVxuZClicmVhaztiPWEuZXZlbnRUaW1lcztmb3IoZT0tMTswPGQ7KXt2YXIgZz0zMS1vYyhkKTtmPTE8PGc7Zz1iW2ddO2c+ZSYmKGU9Zyk7ZCY9fmZ9ZD1lO2Q9QigpLWQ7ZD0oMTIwPmQ/MTIwOjQ4MD5kPzQ4MDoxMDgwPmQ/MTA4MDoxOTIwPmQ/MTkyMDozRTM+ZD8zRTM6NDMyMD5kPzQzMjA6MTk2MCpsayhkLzE5NjApKS1kO2lmKDEwPGQpe2EudGltZW91dEhhbmRsZT1GZihQay5iaW5kKG51bGwsYSx0ayx1ayksZCk7YnJlYWt9UGsoYSx0ayx1ayk7YnJlYWs7Y2FzZSA1OlBrKGEsdGssdWspO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgzMjkpKTt9fX1EayhhLEIoKSk7cmV0dXJuIGEuY2FsbGJhY2tOb2RlPT09Yz9Hay5iaW5kKG51bGwsYSk6bnVsbH1cbmZ1bmN0aW9uIE5rKGEsYil7dmFyIGM9c2s7YS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoS2soYSxiKS5mbGFnc3w9MjU2KTthPUlrKGEsYik7MiE9PWEmJihiPXRrLHRrPWMsbnVsbCE9PWImJkZqKGIpKTtyZXR1cm4gYX1mdW5jdGlvbiBGaihhKXtudWxsPT09dGs/dGs9YTp0ay5wdXNoLmFwcGx5KHRrLGEpfVxuZnVuY3Rpb24gT2soYSl7Zm9yKHZhciBiPWE7Oyl7aWYoYi5mbGFncyYxNjM4NCl7dmFyIGM9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09YyYmKGM9Yy5zdG9yZXMsbnVsbCE9PWMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLGY9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e2lmKCFIZShmKCksZSkpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuITF9fX1jPWIuY2hpbGQ7aWYoYi5zdWJ0cmVlRmxhZ3MmMTYzODQmJm51bGwhPT1jKWMucmV0dXJuPWIsYj1jO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuITA7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4hMH1cbmZ1bmN0aW9uIENrKGEsYil7YiY9fnJrO2ImPX5xazthLnN1c3BlbmRlZExhbmVzfD1iO2EucGluZ2VkTGFuZXMmPX5iO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yjspe3ZhciBjPTMxLW9jKGIpLGQ9MTw8YzthW2NdPS0xO2ImPX5kfX1mdW5jdGlvbiBFayhhKXtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTtIaygpO3ZhciBiPXVjKGEsMCk7aWYoMD09PShiJjEpKXJldHVybiBEayhhLEIoKSksbnVsbDt2YXIgYz1JayhhLGIpO2lmKDAhPT1hLnRhZyYmMj09PWMpe3ZhciBkPXhjKGEpOzAhPT1kJiYoYj1kLGM9TmsoYSxkKSl9aWYoMT09PWMpdGhyb3cgYz1wayxLayhhLDApLENrKGEsYiksRGsoYSxCKCkpLGM7aWYoNj09PWMpdGhyb3cgRXJyb3IocCgzNDUpKTthLmZpbmlzaGVkV29yaz1hLmN1cnJlbnQuYWx0ZXJuYXRlO2EuZmluaXNoZWRMYW5lcz1iO1BrKGEsdGssdWspO0RrKGEsQigpKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFFrKGEsYil7dmFyIGM9SztLfD0xO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e0s9YywwPT09SyYmKEdqPUIoKSs1MDAsZmcmJmpnKCkpfX1mdW5jdGlvbiBSayhhKXtudWxsIT09d2smJjA9PT13ay50YWcmJjA9PT0oSyY2KSYmSGsoKTt2YXIgYj1LO0t8PTE7dmFyIGM9b2sudHJhbnNpdGlvbixkPUM7dHJ5e2lmKG9rLnRyYW5zaXRpb249bnVsbCxDPTEsYSlyZXR1cm4gYSgpfWZpbmFsbHl7Qz1kLG9rLnRyYW5zaXRpb249YyxLPWIsMD09PShLJjYpJiZqZygpfX1mdW5jdGlvbiBIaigpe2ZqPWVqLmN1cnJlbnQ7RShlail9XG5mdW5jdGlvbiBLayhhLGIpe2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7dmFyIGM9YS50aW1lb3V0SGFuZGxlOy0xIT09YyYmKGEudGltZW91dEhhbmRsZT0tMSxHZihjKSk7aWYobnVsbCE9PVkpZm9yKGM9WS5yZXR1cm47bnVsbCE9PWM7KXt2YXIgZD1jO3dnKGQpO3N3aXRjaChkLnRhZyl7Y2FzZSAxOmQ9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1kJiZ2b2lkIDAhPT1kJiYkZigpO2JyZWFrO2Nhc2UgMzp6aCgpO0UoV2YpO0UoSCk7RWgoKTticmVhaztjYXNlIDU6QmgoZCk7YnJlYWs7Y2FzZSA0OnpoKCk7YnJlYWs7Y2FzZSAxMzpFKEwpO2JyZWFrO2Nhc2UgMTk6RShMKTticmVhaztjYXNlIDEwOmFoKGQudHlwZS5fY29udGV4dCk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOkhqKCl9Yz1jLnJldHVybn1RPWE7WT1hPVBnKGEuY3VycmVudCxudWxsKTtaPWZqPWI7VD0wO3BrPW51bGw7cms9cWs9cmg9MDt0az1zaz1udWxsO2lmKG51bGwhPT1maCl7Zm9yKGI9XG4wO2I8ZmgubGVuZ3RoO2IrKylpZihjPWZoW2JdLGQ9Yy5pbnRlcmxlYXZlZCxudWxsIT09ZCl7Yy5pbnRlcmxlYXZlZD1udWxsO3ZhciBlPWQubmV4dCxmPWMucGVuZGluZztpZihudWxsIT09Zil7dmFyIGc9Zi5uZXh0O2YubmV4dD1lO2QubmV4dD1nfWMucGVuZGluZz1kfWZoPW51bGx9cmV0dXJuIGF9XG5mdW5jdGlvbiBNayhhLGIpe2Rve3ZhciBjPVk7dHJ5eyRnKCk7RmguY3VycmVudD1SaDtpZihJaCl7Zm9yKHZhciBkPU0ubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZDspe3ZhciBlPWQucXVldWU7bnVsbCE9PWUmJihlLnBlbmRpbmc9bnVsbCk7ZD1kLm5leHR9SWg9ITF9SGg9MDtPPU49TT1udWxsO0poPSExO0toPTA7bmsuY3VycmVudD1udWxsO2lmKG51bGw9PT1jfHxudWxsPT09Yy5yZXR1cm4pe1Q9MTtwaz1iO1k9bnVsbDticmVha31hOnt2YXIgZj1hLGc9Yy5yZXR1cm4saD1jLGs9YjtiPVo7aC5mbGFnc3w9MzI3Njg7aWYobnVsbCE9PWsmJlwib2JqZWN0XCI9PT10eXBlb2YgayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGsudGhlbil7dmFyIGw9ayxtPWgscT1tLnRhZztpZigwPT09KG0ubW9kZSYxKSYmKDA9PT1xfHwxMT09PXF8fDE1PT09cSkpe3ZhciByPW0uYWx0ZXJuYXRlO3I/KG0udXBkYXRlUXVldWU9ci51cGRhdGVRdWV1ZSxtLm1lbW9pemVkU3RhdGU9ci5tZW1vaXplZFN0YXRlLFxubS5sYW5lcz1yLmxhbmVzKToobS51cGRhdGVRdWV1ZT1udWxsLG0ubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgeT1VaShnKTtpZihudWxsIT09eSl7eS5mbGFncyY9LTI1NztWaSh5LGcsaCxmLGIpO3kubW9kZSYxJiZTaShmLGwsYik7Yj15O2s9bDt2YXIgbj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1uKXt2YXIgdD1uZXcgU2V0O3QuYWRkKGspO2IudXBkYXRlUXVldWU9dH1lbHNlIG4uYWRkKGspO2JyZWFrIGF9ZWxzZXtpZigwPT09KGImMSkpe1NpKGYsbCxiKTt0aigpO2JyZWFrIGF9az1FcnJvcihwKDQyNikpfX1lbHNlIGlmKEkmJmgubW9kZSYxKXt2YXIgSj1VaShnKTtpZihudWxsIT09Sil7MD09PShKLmZsYWdzJjY1NTM2KSYmKEouZmxhZ3N8PTI1Nik7VmkoSixnLGgsZixiKTtKZyhKaShrLGgpKTticmVhayBhfX1mPWs9SmkoayxoKTs0IT09VCYmKFQ9Mik7bnVsbD09PXNrP3NrPVtmXTpzay5wdXNoKGYpO2Y9Zztkb3tzd2l0Y2goZi50YWcpe2Nhc2UgMzpmLmZsYWdzfD02NTUzNjtcbmImPS1iO2YubGFuZXN8PWI7dmFyIHg9TmkoZixrLGIpO3BoKGYseCk7YnJlYWsgYTtjYXNlIDE6aD1rO3ZhciB3PWYudHlwZSx1PWYuc3RhdGVOb2RlO2lmKDA9PT0oZi5mbGFncyYxMjgpJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHcuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09dSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHUuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09Uml8fCFSaS5oYXModSkpKSl7Zi5mbGFnc3w9NjU1MzY7YiY9LWI7Zi5sYW5lc3w9Yjt2YXIgRj1RaShmLGgsYik7cGgoZixGKTticmVhayBhfX1mPWYucmV0dXJufXdoaWxlKG51bGwhPT1mKX1TayhjKX1jYXRjaChuYSl7Yj1uYTtZPT09YyYmbnVsbCE9PWMmJihZPWM9Yy5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfXdoaWxlKDEpfWZ1bmN0aW9uIEprKCl7dmFyIGE9bWsuY3VycmVudDttay5jdXJyZW50PVJoO3JldHVybiBudWxsPT09YT9SaDphfVxuZnVuY3Rpb24gdGooKXtpZigwPT09VHx8Mz09PVR8fDI9PT1UKVQ9NDtudWxsPT09UXx8MD09PShyaCYyNjg0MzU0NTUpJiYwPT09KHFrJjI2ODQzNTQ1NSl8fENrKFEsWil9ZnVuY3Rpb24gSWsoYSxiKXt2YXIgYz1LO0t8PTI7dmFyIGQ9SmsoKTtpZihRIT09YXx8WiE9PWIpdWs9bnVsbCxLayhhLGIpO2RvIHRyeXtUaygpO2JyZWFrfWNhdGNoKGUpe01rKGEsZSl9d2hpbGUoMSk7JGcoKTtLPWM7bWsuY3VycmVudD1kO2lmKG51bGwhPT1ZKXRocm93IEVycm9yKHAoMjYxKSk7UT1udWxsO1o9MDtyZXR1cm4gVH1mdW5jdGlvbiBUaygpe2Zvcig7bnVsbCE9PVk7KVVrKFkpfWZ1bmN0aW9uIExrKCl7Zm9yKDtudWxsIT09WSYmIWNjKCk7KVVrKFkpfWZ1bmN0aW9uIFVrKGEpe3ZhciBiPVZrKGEuYWx0ZXJuYXRlLGEsZmopO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09Yj9TayhhKTpZPWI7bmsuY3VycmVudD1udWxsfVxuZnVuY3Rpb24gU2soYSl7dmFyIGI9YTtkb3t2YXIgYz1iLmFsdGVybmF0ZTthPWIucmV0dXJuO2lmKDA9PT0oYi5mbGFncyYzMjc2OCkpe2lmKGM9RWooYyxiLGZqKSxudWxsIT09Yyl7WT1jO3JldHVybn19ZWxzZXtjPUlqKGMsYik7aWYobnVsbCE9PWMpe2MuZmxhZ3MmPTMyNzY3O1k9YztyZXR1cm59aWYobnVsbCE9PWEpYS5mbGFnc3w9MzI3NjgsYS5zdWJ0cmVlRmxhZ3M9MCxhLmRlbGV0aW9ucz1udWxsO2Vsc2V7VD02O1k9bnVsbDtyZXR1cm59fWI9Yi5zaWJsaW5nO2lmKG51bGwhPT1iKXtZPWI7cmV0dXJufVk9Yj1hfXdoaWxlKG51bGwhPT1iKTswPT09VCYmKFQ9NSl9ZnVuY3Rpb24gUGsoYSxiLGMpe3ZhciBkPUMsZT1vay50cmFuc2l0aW9uO3RyeXtvay50cmFuc2l0aW9uPW51bGwsQz0xLFdrKGEsYixjLGQpfWZpbmFsbHl7b2sudHJhbnNpdGlvbj1lLEM9ZH1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFdrKGEsYixjLGQpe2RvIEhrKCk7d2hpbGUobnVsbCE9PXdrKTtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTtjPWEuZmluaXNoZWRXb3JrO3ZhciBlPWEuZmluaXNoZWRMYW5lcztpZihudWxsPT09YylyZXR1cm4gbnVsbDthLmZpbmlzaGVkV29yaz1udWxsO2EuZmluaXNoZWRMYW5lcz0wO2lmKGM9PT1hLmN1cnJlbnQpdGhyb3cgRXJyb3IocCgxNzcpKTthLmNhbGxiYWNrTm9kZT1udWxsO2EuY2FsbGJhY2tQcmlvcml0eT0wO3ZhciBmPWMubGFuZXN8Yy5jaGlsZExhbmVzO0JjKGEsZik7YT09PVEmJihZPVE9bnVsbCxaPTApOzA9PT0oYy5zdWJ0cmVlRmxhZ3MmMjA2NCkmJjA9PT0oYy5mbGFncyYyMDY0KXx8dmt8fCh2az0hMCxGayhoYyxmdW5jdGlvbigpe0hrKCk7cmV0dXJuIG51bGx9KSk7Zj0wIT09KGMuZmxhZ3MmMTU5OTApO2lmKDAhPT0oYy5zdWJ0cmVlRmxhZ3MmMTU5OTApfHxmKXtmPW9rLnRyYW5zaXRpb247b2sudHJhbnNpdGlvbj1udWxsO1xudmFyIGc9QztDPTE7dmFyIGg9SztLfD00O25rLmN1cnJlbnQ9bnVsbDtPaihhLGMpO2RrKGMsYSk7T2UoRGYpO2RkPSEhQ2Y7RGY9Q2Y9bnVsbDthLmN1cnJlbnQ9YztoayhjLGEsZSk7ZGMoKTtLPWg7Qz1nO29rLnRyYW5zaXRpb249Zn1lbHNlIGEuY3VycmVudD1jO3ZrJiYodms9ITEsd2s9YSx4az1lKTtmPWEucGVuZGluZ0xhbmVzOzA9PT1mJiYoUmk9bnVsbCk7bWMoYy5zdGF0ZU5vZGUsZCk7RGsoYSxCKCkpO2lmKG51bGwhPT1iKWZvcihkPWEub25SZWNvdmVyYWJsZUVycm9yLGM9MDtjPGIubGVuZ3RoO2MrKyllPWJbY10sZChlLnZhbHVlLHtjb21wb25lbnRTdGFjazplLnN0YWNrLGRpZ2VzdDplLmRpZ2VzdH0pO2lmKE9pKXRocm93IE9pPSExLGE9UGksUGk9bnVsbCxhOzAhPT0oeGsmMSkmJjAhPT1hLnRhZyYmSGsoKTtmPWEucGVuZGluZ0xhbmVzOzAhPT0oZiYxKT9hPT09ems/eWsrKzooeWs9MCx6az1hKTp5az0wO2pnKCk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBIaygpe2lmKG51bGwhPT13ayl7dmFyIGE9RGMoeGspLGI9b2sudHJhbnNpdGlvbixjPUM7dHJ5e29rLnRyYW5zaXRpb249bnVsbDtDPTE2PmE/MTY6YTtpZihudWxsPT09d2spdmFyIGQ9ITE7ZWxzZXthPXdrO3drPW51bGw7eGs9MDtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMzEpKTt2YXIgZT1LO0t8PTQ7Zm9yKFY9YS5jdXJyZW50O251bGwhPT1WOyl7dmFyIGY9VixnPWYuY2hpbGQ7aWYoMCE9PShWLmZsYWdzJjE2KSl7dmFyIGg9Zi5kZWxldGlvbnM7aWYobnVsbCE9PWgpe2Zvcih2YXIgaz0wO2s8aC5sZW5ndGg7aysrKXt2YXIgbD1oW2tdO2ZvcihWPWw7bnVsbCE9PVY7KXt2YXIgbT1WO3N3aXRjaChtLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpQaig4LG0sZil9dmFyIHE9bS5jaGlsZDtpZihudWxsIT09cSlxLnJldHVybj1tLFY9cTtlbHNlIGZvcig7bnVsbCE9PVY7KXttPVY7dmFyIHI9bS5zaWJsaW5nLHk9bS5yZXR1cm47U2oobSk7aWYobT09PVxubCl7Vj1udWxsO2JyZWFrfWlmKG51bGwhPT1yKXtyLnJldHVybj15O1Y9cjticmVha31WPXl9fX12YXIgbj1mLmFsdGVybmF0ZTtpZihudWxsIT09bil7dmFyIHQ9bi5jaGlsZDtpZihudWxsIT09dCl7bi5jaGlsZD1udWxsO2Rve3ZhciBKPXQuc2libGluZzt0LnNpYmxpbmc9bnVsbDt0PUp9d2hpbGUobnVsbCE9PXQpfX1WPWZ9fWlmKDAhPT0oZi5zdWJ0cmVlRmxhZ3MmMjA2NCkmJm51bGwhPT1nKWcucmV0dXJuPWYsVj1nO2Vsc2UgYjpmb3IoO251bGwhPT1WOyl7Zj1WO2lmKDAhPT0oZi5mbGFncyYyMDQ4KSlzd2l0Y2goZi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6UGooOSxmLGYucmV0dXJuKX12YXIgeD1mLnNpYmxpbmc7aWYobnVsbCE9PXgpe3gucmV0dXJuPWYucmV0dXJuO1Y9eDticmVhayBifVY9Zi5yZXR1cm59fXZhciB3PWEuY3VycmVudDtmb3IoVj13O251bGwhPT1WOyl7Zz1WO3ZhciB1PWcuY2hpbGQ7aWYoMCE9PShnLnN1YnRyZWVGbGFncyYyMDY0KSYmbnVsbCE9PVxudSl1LnJldHVybj1nLFY9dTtlbHNlIGI6Zm9yKGc9dztudWxsIT09Vjspe2g9VjtpZigwIT09KGguZmxhZ3MmMjA0OCkpdHJ5e3N3aXRjaChoLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpRaig5LGgpfX1jYXRjaChuYSl7VyhoLGgucmV0dXJuLG5hKX1pZihoPT09Zyl7Vj1udWxsO2JyZWFrIGJ9dmFyIEY9aC5zaWJsaW5nO2lmKG51bGwhPT1GKXtGLnJldHVybj1oLnJldHVybjtWPUY7YnJlYWsgYn1WPWgucmV0dXJufX1LPWU7amcoKTtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7bGMub25Qb3N0Q29tbWl0RmliZXJSb290KGtjLGEpfWNhdGNoKG5hKXt9ZD0hMH1yZXR1cm4gZH1maW5hbGx5e0M9Yyxvay50cmFuc2l0aW9uPWJ9fXJldHVybiExfWZ1bmN0aW9uIFhrKGEsYixjKXtiPUppKGMsYik7Yj1OaShhLGIsMSk7YT1uaChhLGIsMSk7Yj1SKCk7bnVsbCE9PWEmJihBYyhhLDEsYiksRGsoYSxiKSl9XG5mdW5jdGlvbiBXKGEsYixjKXtpZigzPT09YS50YWcpWGsoYSxhLGMpO2Vsc2UgZm9yKDtudWxsIT09Yjspe2lmKDM9PT1iLnRhZyl7WGsoYixhLGMpO2JyZWFrfWVsc2UgaWYoMT09PWIudGFnKXt2YXIgZD1iLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09Uml8fCFSaS5oYXMoZCkpKXthPUppKGMsYSk7YT1RaShiLGEsMSk7Yj1uaChiLGEsMSk7YT1SKCk7bnVsbCE9PWImJihBYyhiLDEsYSksRGsoYixhKSk7YnJlYWt9fWI9Yi5yZXR1cm59fVxuZnVuY3Rpb24gVGkoYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtiPVIoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmM7UT09PWEmJihaJmMpPT09YyYmKDQ9PT1UfHwzPT09VCYmKFomMTMwMDIzNDI0KT09PVomJjUwMD5CKCktZms/S2soYSwwKTpya3w9Yyk7RGsoYSxiKX1mdW5jdGlvbiBZayhhLGIpezA9PT1iJiYoMD09PShhLm1vZGUmMSk/Yj0xOihiPXNjLHNjPDw9MSwwPT09KHNjJjEzMDAyMzQyNCkmJihzYz00MTk0MzA0KSkpO3ZhciBjPVIoKTthPWloKGEsYik7bnVsbCE9PWEmJihBYyhhLGIsYyksRGsoYSxjKSl9ZnVuY3Rpb24gdWooYSl7dmFyIGI9YS5tZW1vaXplZFN0YXRlLGM9MDtudWxsIT09YiYmKGM9Yi5yZXRyeUxhbmUpO1lrKGEsYyl9XG5mdW5jdGlvbiBiayhhLGIpe3ZhciBjPTA7c3dpdGNoKGEudGFnKXtjYXNlIDEzOnZhciBkPWEuc3RhdGVOb2RlO3ZhciBlPWEubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGM9ZS5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6ZD1hLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzE0KSk7fW51bGwhPT1kJiZkLmRlbGV0ZShiKTtZayhhLGMpfXZhciBWaztcblZrPWZ1bmN0aW9uKGEsYixjKXtpZihudWxsIT09YSlpZihhLm1lbW9pemVkUHJvcHMhPT1iLnBlbmRpbmdQcm9wc3x8V2YuY3VycmVudClkaD0hMDtlbHNle2lmKDA9PT0oYS5sYW5lcyZjKSYmMD09PShiLmZsYWdzJjEyOCkpcmV0dXJuIGRoPSExLHlqKGEsYixjKTtkaD0wIT09KGEuZmxhZ3MmMTMxMDcyKT8hMDohMX1lbHNlIGRoPSExLEkmJjAhPT0oYi5mbGFncyYxMDQ4NTc2KSYmdWcoYixuZyxiLmluZGV4KTtiLmxhbmVzPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6dmFyIGQ9Yi50eXBlO2lqKGEsYik7YT1iLnBlbmRpbmdQcm9wczt2YXIgZT1ZZihiLEguY3VycmVudCk7Y2goYixjKTtlPU5oKG51bGwsYixkLGEsZSxjKTt2YXIgZj1TaCgpO2IuZmxhZ3N8PTE7XCJvYmplY3RcIj09PXR5cGVvZiBlJiZudWxsIT09ZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGUucmVuZGVyJiZ2b2lkIDA9PT1lLiQkdHlwZW9mPyhiLnRhZz0xLGIubWVtb2l6ZWRTdGF0ZT1udWxsLGIudXBkYXRlUXVldWU9XG5udWxsLFpmKGQpPyhmPSEwLGNnKGIpKTpmPSExLGIubWVtb2l6ZWRTdGF0ZT1udWxsIT09ZS5zdGF0ZSYmdm9pZCAwIT09ZS5zdGF0ZT9lLnN0YXRlOm51bGwsa2goYiksZS51cGRhdGVyPUVpLGIuc3RhdGVOb2RlPWUsZS5fcmVhY3RJbnRlcm5hbHM9YixJaShiLGQsYSxjKSxiPWpqKG51bGwsYixkLCEwLGYsYykpOihiLnRhZz0wLEkmJmYmJnZnKGIpLFhpKG51bGwsYixlLGMpLGI9Yi5jaGlsZCk7cmV0dXJuIGI7Y2FzZSAxNjpkPWIuZWxlbWVudFR5cGU7YTp7aWooYSxiKTthPWIucGVuZGluZ1Byb3BzO2U9ZC5faW5pdDtkPWUoZC5fcGF5bG9hZCk7Yi50eXBlPWQ7ZT1iLnRhZz1aayhkKTthPUNpKGQsYSk7c3dpdGNoKGUpe2Nhc2UgMDpiPWNqKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDE6Yj1oaihudWxsLGIsZCxhLGMpO2JyZWFrIGE7Y2FzZSAxMTpiPVlpKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDE0OmI9JGkobnVsbCxiLGQsQ2koZC50eXBlLGEpLGMpO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgzMDYsXG5kLFwiXCIpKTt9cmV0dXJuIGI7Y2FzZSAwOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLGNqKGEsYixkLGUsYyk7Y2FzZSAxOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLGhqKGEsYixkLGUsYyk7Y2FzZSAzOmE6e2tqKGIpO2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzg3KSk7ZD1iLnBlbmRpbmdQcm9wcztmPWIubWVtb2l6ZWRTdGF0ZTtlPWYuZWxlbWVudDtsaChhLGIpO3FoKGIsZCxudWxsLGMpO3ZhciBnPWIubWVtb2l6ZWRTdGF0ZTtkPWcuZWxlbWVudDtpZihmLmlzRGVoeWRyYXRlZClpZihmPXtlbGVtZW50OmQsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOmcuY2FjaGUscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpnLnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsdHJhbnNpdGlvbnM6Zy50cmFuc2l0aW9uc30sYi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9XG5mLGIubWVtb2l6ZWRTdGF0ZT1mLGIuZmxhZ3MmMjU2KXtlPUppKEVycm9yKHAoNDIzKSksYik7Yj1saihhLGIsZCxjLGUpO2JyZWFrIGF9ZWxzZSBpZihkIT09ZSl7ZT1KaShFcnJvcihwKDQyNCkpLGIpO2I9bGooYSxiLGQsYyxlKTticmVhayBhfWVsc2UgZm9yKHlnPUxmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCkseGc9YixJPSEwLHpnPW51bGwsYz1WZyhiLG51bGwsZCxjKSxiLmNoaWxkPWM7YzspYy5mbGFncz1jLmZsYWdzJi0zfDQwOTYsYz1jLnNpYmxpbmc7ZWxzZXtJZygpO2lmKGQ9PT1lKXtiPVppKGEsYixjKTticmVhayBhfVhpKGEsYixkLGMpfWI9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDU6cmV0dXJuIEFoKGIpLG51bGw9PT1hJiZFZyhiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsZz1lLmNoaWxkcmVuLEVmKGQsZSk/Zz1udWxsOm51bGwhPT1mJiZFZihkLGYpJiYoYi5mbGFnc3w9MzIpLFxuZ2ooYSxiKSxYaShhLGIsZyxjKSxiLmNoaWxkO2Nhc2UgNjpyZXR1cm4gbnVsbD09PWEmJkVnKGIpLG51bGw7Y2FzZSAxMzpyZXR1cm4gb2ooYSxiLGMpO2Nhc2UgNDpyZXR1cm4geWgoYixiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxkPWIucGVuZGluZ1Byb3BzLG51bGw9PT1hP2IuY2hpbGQ9VWcoYixudWxsLGQsYyk6WGkoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDExOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLFlpKGEsYixkLGUsYyk7Y2FzZSA3OnJldHVybiBYaShhLGIsYi5wZW5kaW5nUHJvcHMsYyksYi5jaGlsZDtjYXNlIDg6cmV0dXJuIFhpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTI6cmV0dXJuIFhpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztmPWIubWVtb2l6ZWRQcm9wcztcbmc9ZS52YWx1ZTtHKFdnLGQuX2N1cnJlbnRWYWx1ZSk7ZC5fY3VycmVudFZhbHVlPWc7aWYobnVsbCE9PWYpaWYoSGUoZi52YWx1ZSxnKSl7aWYoZi5jaGlsZHJlbj09PWUuY2hpbGRyZW4mJiFXZi5jdXJyZW50KXtiPVppKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihmPWIuY2hpbGQsbnVsbCE9PWYmJihmLnJldHVybj1iKTtudWxsIT09Zjspe3ZhciBoPWYuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1oKXtnPWYuY2hpbGQ7Zm9yKHZhciBrPWguZmlyc3RDb250ZXh0O251bGwhPT1rOyl7aWYoay5jb250ZXh0PT09ZCl7aWYoMT09PWYudGFnKXtrPW1oKC0xLGMmLWMpO2sudGFnPTI7dmFyIGw9Zi51cGRhdGVRdWV1ZTtpZihudWxsIT09bCl7bD1sLnNoYXJlZDt2YXIgbT1sLnBlbmRpbmc7bnVsbD09PW0/ay5uZXh0PWs6KGsubmV4dD1tLm5leHQsbS5uZXh0PWspO2wucGVuZGluZz1rfX1mLmxhbmVzfD1jO2s9Zi5hbHRlcm5hdGU7bnVsbCE9PWsmJihrLmxhbmVzfD1jKTtiaChmLnJldHVybixcbmMsYik7aC5sYW5lc3w9YzticmVha31rPWsubmV4dH19ZWxzZSBpZigxMD09PWYudGFnKWc9Zi50eXBlPT09Yi50eXBlP251bGw6Zi5jaGlsZDtlbHNlIGlmKDE4PT09Zi50YWcpe2c9Zi5yZXR1cm47aWYobnVsbD09PWcpdGhyb3cgRXJyb3IocCgzNDEpKTtnLmxhbmVzfD1jO2g9Zy5hbHRlcm5hdGU7bnVsbCE9PWgmJihoLmxhbmVzfD1jKTtiaChnLGMsYik7Zz1mLnNpYmxpbmd9ZWxzZSBnPWYuY2hpbGQ7aWYobnVsbCE9PWcpZy5yZXR1cm49ZjtlbHNlIGZvcihnPWY7bnVsbCE9PWc7KXtpZihnPT09Yil7Zz1udWxsO2JyZWFrfWY9Zy5zaWJsaW5nO2lmKG51bGwhPT1mKXtmLnJldHVybj1nLnJldHVybjtnPWY7YnJlYWt9Zz1nLnJldHVybn1mPWd9WGkoYSxiLGUuY2hpbGRyZW4sYyk7Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgOTpyZXR1cm4gZT1iLnR5cGUsZD1iLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjaChiLGMpLGU9ZWgoZSksZD1kKGUpLGIuZmxhZ3N8PTEsWGkoYSxiLGQsYyksXG5iLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGQ9Yi50eXBlLGU9Q2koZCxiLnBlbmRpbmdQcm9wcyksZT1DaShkLnR5cGUsZSksJGkoYSxiLGQsZSxjKTtjYXNlIDE1OnJldHVybiBiaihhLGIsYi50eXBlLGIucGVuZGluZ1Byb3BzLGMpO2Nhc2UgMTc6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkNpKGQsZSksaWooYSxiKSxiLnRhZz0xLFpmKGQpPyhhPSEwLGNnKGIpKTphPSExLGNoKGIsYyksR2koYixkLGUpLElpKGIsZCxlLGMpLGpqKG51bGwsYixkLCEwLGEsYyk7Y2FzZSAxOTpyZXR1cm4geGooYSxiLGMpO2Nhc2UgMjI6cmV0dXJuIGRqKGEsYixjKX10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpO307ZnVuY3Rpb24gRmsoYSxiKXtyZXR1cm4gYWMoYSxiKX1cbmZ1bmN0aW9uICRrKGEsYixjLGQpe3RoaXMudGFnPWE7dGhpcy5rZXk9Yzt0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsO3RoaXMuaW5kZXg9MDt0aGlzLnJlZj1udWxsO3RoaXMucGVuZGluZ1Byb3BzPWI7dGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGw7dGhpcy5tb2RlPWQ7dGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wO3RoaXMuZGVsZXRpb25zPW51bGw7dGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MDt0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIEJnKGEsYixjLGQpe3JldHVybiBuZXcgJGsoYSxiLGMsZCl9ZnVuY3Rpb24gYWooYSl7YT1hLnByb3RvdHlwZTtyZXR1cm4hKCFhfHwhYS5pc1JlYWN0Q29tcG9uZW50KX1cbmZ1bmN0aW9uIFprKGEpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBhaihhKT8xOjA7aWYodm9pZCAwIT09YSYmbnVsbCE9PWEpe2E9YS4kJHR5cGVvZjtpZihhPT09RGEpcmV0dXJuIDExO2lmKGE9PT1HYSlyZXR1cm4gMTR9cmV0dXJuIDJ9XG5mdW5jdGlvbiBQZyhhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlO251bGw9PT1jPyhjPUJnKGEudGFnLGIsYS5rZXksYS5tb2RlKSxjLmVsZW1lbnRUeXBlPWEuZWxlbWVudFR5cGUsYy50eXBlPWEudHlwZSxjLnN0YXRlTm9kZT1hLnN0YXRlTm9kZSxjLmFsdGVybmF0ZT1hLGEuYWx0ZXJuYXRlPWMpOihjLnBlbmRpbmdQcm9wcz1iLGMudHlwZT1hLnR5cGUsYy5mbGFncz0wLGMuc3VidHJlZUZsYWdzPTAsYy5kZWxldGlvbnM9bnVsbCk7Yy5mbGFncz1hLmZsYWdzJjE0NjgwMDY0O2MuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXM7Yy5sYW5lcz1hLmxhbmVzO2MuY2hpbGQ9YS5jaGlsZDtjLm1lbW9pemVkUHJvcHM9YS5tZW1vaXplZFByb3BzO2MubWVtb2l6ZWRTdGF0ZT1hLm1lbW9pemVkU3RhdGU7Yy51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlO2I9YS5kZXBlbmRlbmNpZXM7Yy5kZXBlbmRlbmNpZXM9bnVsbD09PWI/bnVsbDp7bGFuZXM6Yi5sYW5lcyxmaXJzdENvbnRleHQ6Yi5maXJzdENvbnRleHR9O1xuYy5zaWJsaW5nPWEuc2libGluZztjLmluZGV4PWEuaW5kZXg7Yy5yZWY9YS5yZWY7cmV0dXJuIGN9XG5mdW5jdGlvbiBSZyhhLGIsYyxkLGUsZil7dmFyIGc9MjtkPWE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpYWooYSkmJihnPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKWc9NTtlbHNlIGE6c3dpdGNoKGEpe2Nhc2UgeWE6cmV0dXJuIFRnKGMuY2hpbGRyZW4sZSxmLGIpO2Nhc2UgemE6Zz04O2V8PTg7YnJlYWs7Y2FzZSBBYTpyZXR1cm4gYT1CZygxMixjLGIsZXwyKSxhLmVsZW1lbnRUeXBlPUFhLGEubGFuZXM9ZixhO2Nhc2UgRWE6cmV0dXJuIGE9QmcoMTMsYyxiLGUpLGEuZWxlbWVudFR5cGU9RWEsYS5sYW5lcz1mLGE7Y2FzZSBGYTpyZXR1cm4gYT1CZygxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1GYSxhLmxhbmVzPWYsYTtjYXNlIElhOnJldHVybiBwaihjLGUsZixiKTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgQmE6Zz0xMDticmVhayBhO2Nhc2UgQ2E6Zz05O2JyZWFrIGE7Y2FzZSBEYTpnPTExO1xuYnJlYWsgYTtjYXNlIEdhOmc9MTQ7YnJlYWsgYTtjYXNlIEhhOmc9MTY7ZD1udWxsO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgxMzAsbnVsbD09YT9hOnR5cGVvZiBhLFwiXCIpKTt9Yj1CZyhnLGMsYixlKTtiLmVsZW1lbnRUeXBlPWE7Yi50eXBlPWQ7Yi5sYW5lcz1mO3JldHVybiBifWZ1bmN0aW9uIFRnKGEsYixjLGQpe2E9QmcoNyxhLGQsYik7YS5sYW5lcz1jO3JldHVybiBhfWZ1bmN0aW9uIHBqKGEsYixjLGQpe2E9QmcoMjIsYSxkLGIpO2EuZWxlbWVudFR5cGU9SWE7YS5sYW5lcz1jO2Euc3RhdGVOb2RlPXtpc0hpZGRlbjohMX07cmV0dXJuIGF9ZnVuY3Rpb24gUWcoYSxiLGMpe2E9QmcoNixhLG51bGwsYik7YS5sYW5lcz1jO3JldHVybiBhfVxuZnVuY3Rpb24gU2coYSxiLGMpe2I9QmcoNCxudWxsIT09YS5jaGlsZHJlbj9hLmNoaWxkcmVuOltdLGEua2V5LGIpO2IubGFuZXM9YztiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn07cmV0dXJuIGJ9XG5mdW5jdGlvbiBhbChhLGIsYyxkLGUpe3RoaXMudGFnPWI7dGhpcy5jb250YWluZXJJbmZvPWE7dGhpcy5maW5pc2hlZFdvcms9dGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGw7dGhpcy50aW1lb3V0SGFuZGxlPS0xO3RoaXMuY2FsbGJhY2tOb2RlPXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGw7dGhpcy5jYWxsYmFja1ByaW9yaXR5PTA7dGhpcy5ldmVudFRpbWVzPXpjKDApO3RoaXMuZXhwaXJhdGlvblRpbWVzPXpjKC0xKTt0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTA7dGhpcy5lbnRhbmdsZW1lbnRzPXpjKDApO3RoaXMuaWRlbnRpZmllclByZWZpeD1kO3RoaXMub25SZWNvdmVyYWJsZUVycm9yPWU7dGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVxubnVsbH1mdW5jdGlvbiBibChhLGIsYyxkLGUsZixnLGgsayl7YT1uZXcgYWwoYSxiLGMsaCxrKTsxPT09Yj8oYj0xLCEwPT09ZiYmKGJ8PTgpKTpiPTA7Zj1CZygzLG51bGwsbnVsbCxiKTthLmN1cnJlbnQ9ZjtmLnN0YXRlTm9kZT1hO2YubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDpkLGlzRGVoeWRyYXRlZDpjLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9O2toKGYpO3JldHVybiBhfWZ1bmN0aW9uIGNsKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6d2Esa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5mdW5jdGlvbiBkbChhKXtpZighYSlyZXR1cm4gVmY7YT1hLl9yZWFjdEludGVybmFsczthOntpZihWYihhKSE9PWF8fDEhPT1hLnRhZyl0aHJvdyBFcnJvcihwKDE3MCkpO3ZhciBiPWE7ZG97c3dpdGNoKGIudGFnKXtjYXNlIDM6Yj1iLnN0YXRlTm9kZS5jb250ZXh0O2JyZWFrIGE7Y2FzZSAxOmlmKFpmKGIudHlwZSkpe2I9Yi5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgYX19Yj1iLnJldHVybn13aGlsZShudWxsIT09Yik7dGhyb3cgRXJyb3IocCgxNzEpKTt9aWYoMT09PWEudGFnKXt2YXIgYz1hLnR5cGU7aWYoWmYoYykpcmV0dXJuIGJnKGEsYyxiKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGVsKGEsYixjLGQsZSxmLGcsaCxrKXthPWJsKGMsZCwhMCxhLGUsZixnLGgsayk7YS5jb250ZXh0PWRsKG51bGwpO2M9YS5jdXJyZW50O2Q9UigpO2U9eWkoYyk7Zj1taChkLGUpO2YuY2FsbGJhY2s9dm9pZCAwIT09YiYmbnVsbCE9PWI/YjpudWxsO25oKGMsZixlKTthLmN1cnJlbnQubGFuZXM9ZTtBYyhhLGUsZCk7RGsoYSxkKTtyZXR1cm4gYX1mdW5jdGlvbiBmbChhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1SKCksZz15aShlKTtjPWRsKGMpO251bGw9PT1iLmNvbnRleHQ/Yi5jb250ZXh0PWM6Yi5wZW5kaW5nQ29udGV4dD1jO2I9bWgoZixnKTtiLnBheWxvYWQ9e2VsZW1lbnQ6YX07ZD12b2lkIDA9PT1kP251bGw6ZDtudWxsIT09ZCYmKGIuY2FsbGJhY2s9ZCk7YT1uaChlLGIsZyk7bnVsbCE9PWEmJihnaShhLGUsZyxmKSxvaChhLGUsZykpO3JldHVybiBnfVxuZnVuY3Rpb24gZ2woYSl7YT1hLmN1cnJlbnQ7aWYoIWEuY2hpbGQpcmV0dXJuIG51bGw7c3dpdGNoKGEuY2hpbGQudGFnKXtjYXNlIDU6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlO2RlZmF1bHQ6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlfX1mdW5jdGlvbiBobChhLGIpe2E9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXt2YXIgYz1hLnJldHJ5TGFuZTthLnJldHJ5TGFuZT0wIT09YyYmYzxiP2M6Yn19ZnVuY3Rpb24gaWwoYSxiKXtobChhLGIpOyhhPWEuYWx0ZXJuYXRlKSYmaGwoYSxiKX1mdW5jdGlvbiBqbCgpe3JldHVybiBudWxsfXZhciBrbD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oYSl7Y29uc29sZS5lcnJvcihhKX07ZnVuY3Rpb24gbGwoYSl7dGhpcy5faW50ZXJuYWxSb290PWF9XG5tbC5wcm90b3R5cGUucmVuZGVyPWxsLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGw9PT1iKXRocm93IEVycm9yKHAoNDA5KSk7ZmwoYSxiLG51bGwsbnVsbCl9O21sLnByb3RvdHlwZS51bm1vdW50PWxsLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGwhPT1hKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgYj1hLmNvbnRhaW5lckluZm87UmsoZnVuY3Rpb24oKXtmbChudWxsLGEsbnVsbCxudWxsKX0pO2JbdWZdPW51bGx9fTtmdW5jdGlvbiBtbChhKXt0aGlzLl9pbnRlcm5hbFJvb3Q9YX1cbm1sLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1IYygpO2E9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDphLHByaW9yaXR5OmJ9O2Zvcih2YXIgYz0wO2M8UWMubGVuZ3RoJiYwIT09YiYmYjxRY1tjXS5wcmlvcml0eTtjKyspO1FjLnNwbGljZShjLDAsYSk7MD09PWMmJlZjKGEpfX07ZnVuY3Rpb24gbmwoYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUpfWZ1bmN0aW9uIG9sKGEpe3JldHVybiEoIWF8fDEhPT1hLm5vZGVUeXBlJiY5IT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlJiYoOCE9PWEubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09YS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBwbCgpe31cbmZ1bmN0aW9uIHFsKGEsYixjLGQsZSl7aWYoZSl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBmPWQ7ZD1mdW5jdGlvbigpe3ZhciBhPWdsKGcpO2YuY2FsbChhKX19dmFyIGc9ZWwoYixkLGEsMCxudWxsLCExLCExLFwiXCIscGwpO2EuX3JlYWN0Um9vdENvbnRhaW5lcj1nO2FbdWZdPWcuY3VycmVudDtzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7UmsoKTtyZXR1cm4gZ31mb3IoO2U9YS5sYXN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoZSk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBoPWQ7ZD1mdW5jdGlvbigpe3ZhciBhPWdsKGspO2guY2FsbChhKX19dmFyIGs9YmwoYSwwLCExLG51bGwsbnVsbCwhMSwhMSxcIlwiLHBsKTthLl9yZWFjdFJvb3RDb250YWluZXI9azthW3VmXT1rLmN1cnJlbnQ7c2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO1JrKGZ1bmN0aW9uKCl7ZmwoYixrLGMsZCl9KTtyZXR1cm4ga31cbmZ1bmN0aW9uIHJsKGEsYixjLGQsZSl7dmFyIGY9Yy5fcmVhY3RSb290Q29udGFpbmVyO2lmKGYpe3ZhciBnPWY7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBoPWU7ZT1mdW5jdGlvbigpe3ZhciBhPWdsKGcpO2guY2FsbChhKX19ZmwoYixnLGEsZSl9ZWxzZSBnPXFsKGMsYixhLGUsZCk7cmV0dXJuIGdsKGcpfUVjPWZ1bmN0aW9uKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAzOnZhciBiPWEuc3RhdGVOb2RlO2lmKGIuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7dmFyIGM9dGMoYi5wZW5kaW5nTGFuZXMpOzAhPT1jJiYoQ2MoYixjfDEpLERrKGIsQigpKSwwPT09KEsmNikmJihHaj1CKCkrNTAwLGpnKCkpKX1icmVhaztjYXNlIDEzOlJrKGZ1bmN0aW9uKCl7dmFyIGI9aWgoYSwxKTtpZihudWxsIT09Yil7dmFyIGM9UigpO2dpKGIsYSwxLGMpfX0pLGlsKGEsMSl9fTtcbkZjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWloKGEsMTM0MjE3NzI4KTtpZihudWxsIT09Yil7dmFyIGM9UigpO2dpKGIsYSwxMzQyMTc3MjgsYyl9aWwoYSwxMzQyMTc3MjgpfX07R2M9ZnVuY3Rpb24oYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9eWkoYSksYz1paChhLGIpO2lmKG51bGwhPT1jKXt2YXIgZD1SKCk7Z2koYyxhLGIsZCl9aWwoYSxiKX19O0hjPWZ1bmN0aW9uKCl7cmV0dXJuIEN9O0ljPWZ1bmN0aW9uKGEsYil7dmFyIGM9Qzt0cnl7cmV0dXJuIEM9YSxiKCl9ZmluYWxseXtDPWN9fTtcbnliPWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goYil7Y2FzZSBcImlucHV0XCI6YmIoYSxjKTtiPWMubmFtZTtpZihcInJhZGlvXCI9PT1jLnR5cGUmJm51bGwhPWIpe2ZvcihjPWE7Yy5wYXJlbnROb2RlOyljPWMucGFyZW50Tm9kZTtjPWMucXVlcnlTZWxlY3RvckFsbChcImlucHV0W25hbWU9XCIrSlNPTi5zdHJpbmdpZnkoXCJcIitiKSsnXVt0eXBlPVwicmFkaW9cIl0nKTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXt2YXIgZD1jW2JdO2lmKGQhPT1hJiZkLmZvcm09PT1hLmZvcm0pe3ZhciBlPURiKGQpO2lmKCFlKXRocm93IEVycm9yKHAoOTApKTtXYShkKTtiYihkLGUpfX19YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aWIoYSxjKTticmVhaztjYXNlIFwic2VsZWN0XCI6Yj1jLnZhbHVlLG51bGwhPWImJmZiKGEsISFjLm11bHRpcGxlLGIsITEpfX07R2I9UWs7SGI9Ums7XG52YXIgc2w9e3VzaW5nQ2xpZW50RW50cnlQb2ludDohMSxFdmVudHM6W0NiLHVlLERiLEViLEZiLFFrXX0sdGw9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOldjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOlwiMTguMy4xXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwifTtcbnZhciB1bD17YnVuZGxlVHlwZTp0bC5idW5kbGVUeXBlLHZlcnNpb246dGwudmVyc2lvbixyZW5kZXJlclBhY2thZ2VOYW1lOnRsLnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6dGwucmVuZGVyZXJDb25maWcsb3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzUmVuYW1lUGF0aDpudWxsLHNldEVycm9ySGFuZGxlcjpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPVpiKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp0bC5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8XG5qbCxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsLHJlY29uY2lsZXJWZXJzaW9uOlwiMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNlwifTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIHZsPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighdmwuaXNEaXNhYmxlZCYmdmwuc3VwcG9ydHNGaWJlcil0cnl7a2M9dmwuaW5qZWN0KHVsKSxsYz12bH1jYXRjaChhKXt9fWV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9c2w7XG5leHBvcnRzLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihhLGIpe3ZhciBjPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKCFubChiKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBjbChhLGIsbnVsbCxjKX07ZXhwb3J0cy5jcmVhdGVSb290PWZ1bmN0aW9uKGEsYil7aWYoIW5sKGEpKXRocm93IEVycm9yKHAoMjk5KSk7dmFyIGM9ITEsZD1cIlwiLGU9a2w7bnVsbCE9PWImJnZvaWQgMCE9PWImJighMD09PWIudW5zdGFibGVfc3RyaWN0TW9kZSYmKGM9ITApLHZvaWQgMCE9PWIuaWRlbnRpZmllclByZWZpeCYmKGQ9Yi5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1iLm9uUmVjb3ZlcmFibGVFcnJvciYmKGU9Yi5vblJlY292ZXJhYmxlRXJyb3IpKTtiPWJsKGEsMSwhMSxudWxsLG51bGwsYywhMSxkLGUpO2FbdWZdPWIuY3VycmVudDtzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7cmV0dXJuIG5ldyBsbChiKX07XG5leHBvcnRzLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoMT09PWEubm9kZVR5cGUpcmV0dXJuIGE7dmFyIGI9YS5fcmVhY3RJbnRlcm5hbHM7aWYodm9pZCAwPT09Yil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEucmVuZGVyKXRocm93IEVycm9yKHAoMTg4KSk7YT1PYmplY3Qua2V5cyhhKS5qb2luKFwiLFwiKTt0aHJvdyBFcnJvcihwKDI2OCxhKSk7fWE9WmIoYik7YT1udWxsPT09YT9udWxsOmEuc3RhdGVOb2RlO3JldHVybiBhfTtleHBvcnRzLmZsdXNoU3luYz1mdW5jdGlvbihhKXtyZXR1cm4gUmsoYSl9O2V4cG9ydHMuaHlkcmF0ZT1mdW5jdGlvbihhLGIsYyl7aWYoIW9sKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHJsKG51bGwsYSxiLCEwLGMpfTtcbmV4cG9ydHMuaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFubChhKSl0aHJvdyBFcnJvcihwKDQwNSkpO3ZhciBkPW51bGwhPWMmJmMuaHlkcmF0ZWRTb3VyY2VzfHxudWxsLGU9ITEsZj1cIlwiLGc9a2w7bnVsbCE9PWMmJnZvaWQgMCE9PWMmJighMD09PWMudW5zdGFibGVfc3RyaWN0TW9kZSYmKGU9ITApLHZvaWQgMCE9PWMuaWRlbnRpZmllclByZWZpeCYmKGY9Yy5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1jLm9uUmVjb3ZlcmFibGVFcnJvciYmKGc9Yy5vblJlY292ZXJhYmxlRXJyb3IpKTtiPWVsKGIsbnVsbCxhLDEsbnVsbCE9Yz9jOm51bGwsZSwhMSxmLGcpO2FbdWZdPWIuY3VycmVudDtzZihhKTtpZihkKWZvcihhPTA7YTxkLmxlbmd0aDthKyspYz1kW2FdLGU9Yy5fZ2V0VmVyc2lvbixlPWUoYy5fc291cmNlKSxudWxsPT1iLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE/Yi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVtjLGVdOmIubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKGMsXG5lKTtyZXR1cm4gbmV3IG1sKGIpfTtleHBvcnRzLnJlbmRlcj1mdW5jdGlvbihhLGIsYyl7aWYoIW9sKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHJsKG51bGwsYSxiLCExLGMpfTtleHBvcnRzLnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24oYSl7aWYoIW9sKGEpKXRocm93IEVycm9yKHAoNDApKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPyhSayhmdW5jdGlvbigpe3JsKG51bGwsbnVsbCxhLCExLGZ1bmN0aW9uKCl7YS5fcmVhY3RSb290Q29udGFpbmVyPW51bGw7YVt1Zl09bnVsbH0pfSksITApOiExfTtleHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPVFrO1xuZXhwb3J0cy51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihhLGIsYyxkKXtpZighb2woYykpdGhyb3cgRXJyb3IocCgyMDApKTtpZihudWxsPT1hfHx2b2lkIDA9PT1hLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcihwKDM4KSk7cmV0dXJuIHJsKGEsYixjLCExLGQpfTtleHBvcnRzLnZlcnNpb249XCIxOC4zLjEtbmV4dC1mMTMzOGY4MDgwLTIwMjQwNDI2XCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBtID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBtLmNyZWF0ZVJvb3Q7XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBtLmh5ZHJhdGVSb290O1xufSBlbHNlIHtcbiAgdmFyIGkgPSBtLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBmdW5jdGlvbihjLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5jcmVhdGVSb290KGMsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIGgsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmh5ZHJhdGVSb290KGMsIGgsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbn1cbiIsImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICByZXR1cm4gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAobikge1xuICAgIGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XG4gICAgICB2YXIgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9LCBfZXh0ZW5kcy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xufVxuZXhwb3J0IHsgX2V4dGVuZHMgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcblxuLyoqXHJcbiAqIEFjdGlvbnMgcmVwcmVzZW50IHRoZSB0eXBlIG9mIGNoYW5nZSB0byBhIGxvY2F0aW9uIHZhbHVlLlxyXG4gKlxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZW1peC1ydW4vaGlzdG9yeS90cmVlL21haW4vZG9jcy9hcGktcmVmZXJlbmNlLm1kI2FjdGlvblxyXG4gKi9cbnZhciBBY3Rpb247XG5cbihmdW5jdGlvbiAoQWN0aW9uKSB7XG4gIC8qKlxyXG4gICAqIEEgUE9QIGluZGljYXRlcyBhIGNoYW5nZSB0byBhbiBhcmJpdHJhcnkgaW5kZXggaW4gdGhlIGhpc3Rvcnkgc3RhY2ssIHN1Y2hcclxuICAgKiBhcyBhIGJhY2sgb3IgZm9yd2FyZCBuYXZpZ2F0aW9uLiBJdCBkb2VzIG5vdCBkZXNjcmliZSB0aGUgZGlyZWN0aW9uIG9mIHRoZVxyXG4gICAqIG5hdmlnYXRpb24sIG9ubHkgdGhhdCB0aGUgY3VycmVudCBpbmRleCBjaGFuZ2VkLlxyXG4gICAqXHJcbiAgICogTm90ZTogVGhpcyBpcyB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIG5ld2x5IGNyZWF0ZWQgaGlzdG9yeSBvYmplY3RzLlxyXG4gICAqL1xuICBBY3Rpb25bXCJQb3BcIl0gPSBcIlBPUFwiO1xuICAvKipcclxuICAgKiBBIFBVU0ggaW5kaWNhdGVzIGEgbmV3IGVudHJ5IGJlaW5nIGFkZGVkIHRvIHRoZSBoaXN0b3J5IHN0YWNrLCBzdWNoIGFzIHdoZW5cclxuICAgKiBhIGxpbmsgaXMgY2xpY2tlZCBhbmQgYSBuZXcgcGFnZSBsb2Fkcy4gV2hlbiB0aGlzIGhhcHBlbnMsIGFsbCBzdWJzZXF1ZW50XHJcbiAgICogZW50cmllcyBpbiB0aGUgc3RhY2sgYXJlIGxvc3QuXHJcbiAgICovXG5cbiAgQWN0aW9uW1wiUHVzaFwiXSA9IFwiUFVTSFwiO1xuICAvKipcclxuICAgKiBBIFJFUExBQ0UgaW5kaWNhdGVzIHRoZSBlbnRyeSBhdCB0aGUgY3VycmVudCBpbmRleCBpbiB0aGUgaGlzdG9yeSBzdGFja1xyXG4gICAqIGJlaW5nIHJlcGxhY2VkIGJ5IGEgbmV3IG9uZS5cclxuICAgKi9cblxuICBBY3Rpb25bXCJSZXBsYWNlXCJdID0gXCJSRVBMQUNFXCI7XG59KShBY3Rpb24gfHwgKEFjdGlvbiA9IHt9KSk7XG5cbnZhciByZWFkT25seSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUob2JqKTtcbn0gOiBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmo7XG59O1xuXG5mdW5jdGlvbiB3YXJuaW5nKGNvbmQsIG1lc3NhZ2UpIHtcbiAgaWYgKCFjb25kKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSBjb25zb2xlLndhcm4obWVzc2FnZSk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gV2VsY29tZSB0byBkZWJ1Z2dpbmcgaGlzdG9yeSFcbiAgICAgIC8vXG4gICAgICAvLyBUaGlzIGVycm9yIGlzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHlvdSBjYW4gbW9yZSBlYXNpbHlcbiAgICAgIC8vIGZpbmQgdGhlIHNvdXJjZSBmb3IgYSB3YXJuaW5nIHRoYXQgYXBwZWFycyBpbiB0aGUgY29uc29sZSBieVxuICAgICAgLy8gZW5hYmxpbmcgXCJwYXVzZSBvbiBleGNlcHRpb25zXCIgaW4geW91ciBKYXZhU2NyaXB0IGRlYnVnZ2VyLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG59XG5cbnZhciBCZWZvcmVVbmxvYWRFdmVudFR5cGUgPSAnYmVmb3JldW5sb2FkJztcbnZhciBIYXNoQ2hhbmdlRXZlbnRUeXBlID0gJ2hhc2hjaGFuZ2UnO1xudmFyIFBvcFN0YXRlRXZlbnRUeXBlID0gJ3BvcHN0YXRlJztcbi8qKlxyXG4gKiBCcm93c2VyIGhpc3Rvcnkgc3RvcmVzIHRoZSBsb2NhdGlvbiBpbiByZWd1bGFyIFVSTHMuIFRoaXMgaXMgdGhlIHN0YW5kYXJkIGZvclxyXG4gKiBtb3N0IHdlYiBhcHBzLCBidXQgaXQgcmVxdWlyZXMgc29tZSBjb25maWd1cmF0aW9uIG9uIHRoZSBzZXJ2ZXIgdG8gZW5zdXJlIHlvdVxyXG4gKiBzZXJ2ZSB0aGUgc2FtZSBhcHAgYXQgbXVsdGlwbGUgVVJMcy5cclxuICpcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVtaXgtcnVuL2hpc3RvcnkvdHJlZS9tYWluL2RvY3MvYXBpLXJlZmVyZW5jZS5tZCNjcmVhdGVicm93c2VyaGlzdG9yeVxyXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlQnJvd3Nlckhpc3Rvcnkob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIF9vcHRpb25zJHdpbmRvdyA9IF9vcHRpb25zLndpbmRvdyxcbiAgICAgIHdpbmRvdyA9IF9vcHRpb25zJHdpbmRvdyA9PT0gdm9pZCAwID8gZG9jdW1lbnQuZGVmYXVsdFZpZXcgOiBfb3B0aW9ucyR3aW5kb3c7XG4gIHZhciBnbG9iYWxIaXN0b3J5ID0gd2luZG93Lmhpc3Rvcnk7XG5cbiAgZnVuY3Rpb24gZ2V0SW5kZXhBbmRMb2NhdGlvbigpIHtcbiAgICB2YXIgX3dpbmRvdyRsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbixcbiAgICAgICAgcGF0aG5hbWUgPSBfd2luZG93JGxvY2F0aW9uLnBhdGhuYW1lLFxuICAgICAgICBzZWFyY2ggPSBfd2luZG93JGxvY2F0aW9uLnNlYXJjaCxcbiAgICAgICAgaGFzaCA9IF93aW5kb3ckbG9jYXRpb24uaGFzaDtcbiAgICB2YXIgc3RhdGUgPSBnbG9iYWxIaXN0b3J5LnN0YXRlIHx8IHt9O1xuICAgIHJldHVybiBbc3RhdGUuaWR4LCByZWFkT25seSh7XG4gICAgICBwYXRobmFtZTogcGF0aG5hbWUsXG4gICAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICAgIGhhc2g6IGhhc2gsXG4gICAgICBzdGF0ZTogc3RhdGUudXNyIHx8IG51bGwsXG4gICAgICBrZXk6IHN0YXRlLmtleSB8fCAnZGVmYXVsdCdcbiAgICB9KV07XG4gIH1cblxuICB2YXIgYmxvY2tlZFBvcFR4ID0gbnVsbDtcblxuICBmdW5jdGlvbiBoYW5kbGVQb3AoKSB7XG4gICAgaWYgKGJsb2NrZWRQb3BUeCkge1xuICAgICAgYmxvY2tlcnMuY2FsbChibG9ja2VkUG9wVHgpO1xuICAgICAgYmxvY2tlZFBvcFR4ID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG5leHRBY3Rpb24gPSBBY3Rpb24uUG9wO1xuXG4gICAgICB2YXIgX2dldEluZGV4QW5kTG9jYXRpb24gPSBnZXRJbmRleEFuZExvY2F0aW9uKCksXG4gICAgICAgICAgbmV4dEluZGV4ID0gX2dldEluZGV4QW5kTG9jYXRpb25bMF0sXG4gICAgICAgICAgbmV4dExvY2F0aW9uID0gX2dldEluZGV4QW5kTG9jYXRpb25bMV07XG5cbiAgICAgIGlmIChibG9ja2Vycy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKG5leHRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgdmFyIGRlbHRhID0gaW5kZXggLSBuZXh0SW5kZXg7XG5cbiAgICAgICAgICBpZiAoZGVsdGEpIHtcbiAgICAgICAgICAgIC8vIFJldmVydCB0aGUgUE9QXG4gICAgICAgICAgICBibG9ja2VkUG9wVHggPSB7XG4gICAgICAgICAgICAgIGFjdGlvbjogbmV4dEFjdGlvbixcbiAgICAgICAgICAgICAgbG9jYXRpb246IG5leHRMb2NhdGlvbixcbiAgICAgICAgICAgICAgcmV0cnk6IGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgICAgICAgICAgIGdvKGRlbHRhICogLTEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZ28oZGVsdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUcnlpbmcgdG8gUE9QIHRvIGEgbG9jYXRpb24gd2l0aCBubyBpbmRleC4gV2UgZGlkIG5vdCBjcmVhdGVcbiAgICAgICAgICAvLyB0aGlzIGxvY2F0aW9uLCBzbyB3ZSBjYW4ndCBlZmZlY3RpdmVseSBibG9jayB0aGUgbmF2aWdhdGlvbi5cbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGZhbHNlLCAvLyBUT0RPOiBXcml0ZSB1cCBhIGRvYyB0aGF0IGV4cGxhaW5zIG91ciBibG9ja2luZyBzdHJhdGVneSBpblxuICAgICAgICAgIC8vIGRldGFpbCBhbmQgbGluayB0byBpdCBoZXJlIHNvIHBlb3BsZSBjYW4gdW5kZXJzdGFuZCBiZXR0ZXIgd2hhdFxuICAgICAgICAgIC8vIGlzIGdvaW5nIG9uIGFuZCBob3cgdG8gYXZvaWQgaXQuXG4gICAgICAgICAgXCJZb3UgYXJlIHRyeWluZyB0byBibG9jayBhIFBPUCBuYXZpZ2F0aW9uIHRvIGEgbG9jYXRpb24gdGhhdCB3YXMgbm90IFwiICsgXCJjcmVhdGVkIGJ5IHRoZSBoaXN0b3J5IGxpYnJhcnkuIFRoZSBibG9jayB3aWxsIGZhaWwgc2lsZW50bHkgaW4gXCIgKyBcInByb2R1Y3Rpb24sIGJ1dCBpbiBnZW5lcmFsIHlvdSBzaG91bGQgZG8gYWxsIG5hdmlnYXRpb24gd2l0aCB0aGUgXCIgKyBcImhpc3RvcnkgbGlicmFyeSAoaW5zdGVhZCBvZiB1c2luZyB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgZGlyZWN0bHkpIFwiICsgXCJ0byBhdm9pZCB0aGlzIHNpdHVhdGlvbi5cIikgOiB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFwcGx5VHgobmV4dEFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoUG9wU3RhdGVFdmVudFR5cGUsIGhhbmRsZVBvcCk7XG4gIHZhciBhY3Rpb24gPSBBY3Rpb24uUG9wO1xuXG4gIHZhciBfZ2V0SW5kZXhBbmRMb2NhdGlvbjIgPSBnZXRJbmRleEFuZExvY2F0aW9uKCksXG4gICAgICBpbmRleCA9IF9nZXRJbmRleEFuZExvY2F0aW9uMlswXSxcbiAgICAgIGxvY2F0aW9uID0gX2dldEluZGV4QW5kTG9jYXRpb24yWzFdO1xuXG4gIHZhciBsaXN0ZW5lcnMgPSBjcmVhdGVFdmVudHMoKTtcbiAgdmFyIGJsb2NrZXJzID0gY3JlYXRlRXZlbnRzKCk7XG5cbiAgaWYgKGluZGV4ID09IG51bGwpIHtcbiAgICBpbmRleCA9IDA7XG4gICAgZ2xvYmFsSGlzdG9yeS5yZXBsYWNlU3RhdGUoX2V4dGVuZHMoe30sIGdsb2JhbEhpc3Rvcnkuc3RhdGUsIHtcbiAgICAgIGlkeDogaW5kZXhcbiAgICB9KSwgJycpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlSHJlZih0bykge1xuICAgIHJldHVybiB0eXBlb2YgdG8gPT09ICdzdHJpbmcnID8gdG8gOiBjcmVhdGVQYXRoKHRvKTtcbiAgfSAvLyBzdGF0ZSBkZWZhdWx0cyB0byBgbnVsbGAgYmVjYXVzZSBgd2luZG93Lmhpc3Rvcnkuc3RhdGVgIGRvZXNcblxuXG4gIGZ1bmN0aW9uIGdldE5leHRMb2NhdGlvbih0bywgc3RhdGUpIHtcbiAgICBpZiAoc3RhdGUgPT09IHZvaWQgMCkge1xuICAgICAgc3RhdGUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiByZWFkT25seShfZXh0ZW5kcyh7XG4gICAgICBwYXRobmFtZTogbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICBoYXNoOiAnJyxcbiAgICAgIHNlYXJjaDogJydcbiAgICB9LCB0eXBlb2YgdG8gPT09ICdzdHJpbmcnID8gcGFyc2VQYXRoKHRvKSA6IHRvLCB7XG4gICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICBrZXk6IGNyZWF0ZUtleSgpXG4gICAgfSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0SGlzdG9yeVN0YXRlQW5kVXJsKG5leHRMb2NhdGlvbiwgaW5kZXgpIHtcbiAgICByZXR1cm4gW3tcbiAgICAgIHVzcjogbmV4dExvY2F0aW9uLnN0YXRlLFxuICAgICAga2V5OiBuZXh0TG9jYXRpb24ua2V5LFxuICAgICAgaWR4OiBpbmRleFxuICAgIH0sIGNyZWF0ZUhyZWYobmV4dExvY2F0aW9uKV07XG4gIH1cblxuICBmdW5jdGlvbiBhbGxvd1R4KGFjdGlvbiwgbG9jYXRpb24sIHJldHJ5KSB7XG4gICAgcmV0dXJuICFibG9ja2Vycy5sZW5ndGggfHwgKGJsb2NrZXJzLmNhbGwoe1xuICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICBsb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICByZXRyeTogcmV0cnlcbiAgICB9KSwgZmFsc2UpO1xuICB9XG5cbiAgZnVuY3Rpb24gYXBwbHlUeChuZXh0QWN0aW9uKSB7XG4gICAgYWN0aW9uID0gbmV4dEFjdGlvbjtcblxuICAgIHZhciBfZ2V0SW5kZXhBbmRMb2NhdGlvbjMgPSBnZXRJbmRleEFuZExvY2F0aW9uKCk7XG5cbiAgICBpbmRleCA9IF9nZXRJbmRleEFuZExvY2F0aW9uM1swXTtcbiAgICBsb2NhdGlvbiA9IF9nZXRJbmRleEFuZExvY2F0aW9uM1sxXTtcbiAgICBsaXN0ZW5lcnMuY2FsbCh7XG4gICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIGxvY2F0aW9uOiBsb2NhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gcHVzaCh0bywgc3RhdGUpIHtcbiAgICB2YXIgbmV4dEFjdGlvbiA9IEFjdGlvbi5QdXNoO1xuICAgIHZhciBuZXh0TG9jYXRpb24gPSBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKTtcblxuICAgIGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgcHVzaCh0bywgc3RhdGUpO1xuICAgIH1cblxuICAgIGlmIChhbGxvd1R4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbiwgcmV0cnkpKSB7XG4gICAgICB2YXIgX2dldEhpc3RvcnlTdGF0ZUFuZFVyID0gZ2V0SGlzdG9yeVN0YXRlQW5kVXJsKG5leHRMb2NhdGlvbiwgaW5kZXggKyAxKSxcbiAgICAgICAgICBoaXN0b3J5U3RhdGUgPSBfZ2V0SGlzdG9yeVN0YXRlQW5kVXJbMF0sXG4gICAgICAgICAgdXJsID0gX2dldEhpc3RvcnlTdGF0ZUFuZFVyWzFdOyAvLyBUT0RPOiBTdXBwb3J0IGZvcmNlZCByZWxvYWRpbmdcbiAgICAgIC8vIHRyeS4uLmNhdGNoIGJlY2F1c2UgaU9TIGxpbWl0cyB1cyB0byAxMDAgcHVzaFN0YXRlIGNhbGxzIDovXG5cblxuICAgICAgdHJ5IHtcbiAgICAgICAgZ2xvYmFsSGlzdG9yeS5wdXNoU3RhdGUoaGlzdG9yeVN0YXRlLCAnJywgdXJsKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIFRoZXkgYXJlIGdvaW5nIHRvIGxvc2Ugc3RhdGUgaGVyZSwgYnV0IHRoZXJlIGlzIG5vIHJlYWxcbiAgICAgICAgLy8gd2F5IHRvIHdhcm4gdGhlbSBhYm91dCBpdCBzaW5jZSB0aGUgcGFnZSB3aWxsIHJlZnJlc2guLi5cbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih1cmwpO1xuICAgICAgfVxuXG4gICAgICBhcHBseVR4KG5leHRBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlcGxhY2UodG8sIHN0YXRlKSB7XG4gICAgdmFyIG5leHRBY3Rpb24gPSBBY3Rpb24uUmVwbGFjZTtcbiAgICB2YXIgbmV4dExvY2F0aW9uID0gZ2V0TmV4dExvY2F0aW9uKHRvLCBzdGF0ZSk7XG5cbiAgICBmdW5jdGlvbiByZXRyeSgpIHtcbiAgICAgIHJlcGxhY2UodG8sIHN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAoYWxsb3dUeChuZXh0QWN0aW9uLCBuZXh0TG9jYXRpb24sIHJldHJ5KSkge1xuICAgICAgdmFyIF9nZXRIaXN0b3J5U3RhdGVBbmRVcjIgPSBnZXRIaXN0b3J5U3RhdGVBbmRVcmwobmV4dExvY2F0aW9uLCBpbmRleCksXG4gICAgICAgICAgaGlzdG9yeVN0YXRlID0gX2dldEhpc3RvcnlTdGF0ZUFuZFVyMlswXSxcbiAgICAgICAgICB1cmwgPSBfZ2V0SGlzdG9yeVN0YXRlQW5kVXIyWzFdOyAvLyBUT0RPOiBTdXBwb3J0IGZvcmNlZCByZWxvYWRpbmdcblxuXG4gICAgICBnbG9iYWxIaXN0b3J5LnJlcGxhY2VTdGF0ZShoaXN0b3J5U3RhdGUsICcnLCB1cmwpO1xuICAgICAgYXBwbHlUeChuZXh0QWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBnbyhkZWx0YSkge1xuICAgIGdsb2JhbEhpc3RvcnkuZ28oZGVsdGEpO1xuICB9XG5cbiAgdmFyIGhpc3RvcnkgPSB7XG4gICAgZ2V0IGFjdGlvbigpIHtcbiAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfSxcblxuICAgIGdldCBsb2NhdGlvbigpIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbjtcbiAgICB9LFxuXG4gICAgY3JlYXRlSHJlZjogY3JlYXRlSHJlZixcbiAgICBwdXNoOiBwdXNoLFxuICAgIHJlcGxhY2U6IHJlcGxhY2UsXG4gICAgZ286IGdvLFxuICAgIGJhY2s6IGZ1bmN0aW9uIGJhY2soKSB7XG4gICAgICBnbygtMSk7XG4gICAgfSxcbiAgICBmb3J3YXJkOiBmdW5jdGlvbiBmb3J3YXJkKCkge1xuICAgICAgZ28oMSk7XG4gICAgfSxcbiAgICBsaXN0ZW46IGZ1bmN0aW9uIGxpc3RlbihsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIGxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9LFxuICAgIGJsb2NrOiBmdW5jdGlvbiBibG9jayhibG9ja2VyKSB7XG4gICAgICB2YXIgdW5ibG9jayA9IGJsb2NrZXJzLnB1c2goYmxvY2tlcik7XG5cbiAgICAgIGlmIChibG9ja2Vycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoQmVmb3JlVW5sb2FkRXZlbnRUeXBlLCBwcm9tcHRCZWZvcmVVbmxvYWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICB1bmJsb2NrKCk7IC8vIFJlbW92ZSB0aGUgYmVmb3JldW5sb2FkIGxpc3RlbmVyIHNvIHRoZSBkb2N1bWVudCBtYXlcbiAgICAgICAgLy8gc3RpbGwgYmUgc2FsdmFnZWFibGUgaW4gdGhlIHBhZ2VoaWRlIGV2ZW50LlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jdW5sb2FkaW5nLWRvY3VtZW50c1xuXG4gICAgICAgIGlmICghYmxvY2tlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoQmVmb3JlVW5sb2FkRXZlbnRUeXBlLCBwcm9tcHRCZWZvcmVVbmxvYWQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGhpc3Rvcnk7XG59XG4vKipcclxuICogSGFzaCBoaXN0b3J5IHN0b3JlcyB0aGUgbG9jYXRpb24gaW4gd2luZG93LmxvY2F0aW9uLmhhc2guIFRoaXMgbWFrZXMgaXQgaWRlYWxcclxuICogZm9yIHNpdHVhdGlvbnMgd2hlcmUgeW91IGRvbid0IHdhbnQgdG8gc2VuZCB0aGUgbG9jYXRpb24gdG8gdGhlIHNlcnZlciBmb3JcclxuICogc29tZSByZWFzb24sIGVpdGhlciBiZWNhdXNlIHlvdSBkbyBjYW5ub3QgY29uZmlndXJlIGl0IG9yIHRoZSBVUkwgc3BhY2UgaXNcclxuICogcmVzZXJ2ZWQgZm9yIHNvbWV0aGluZyBlbHNlLlxyXG4gKlxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZW1peC1ydW4vaGlzdG9yeS90cmVlL21haW4vZG9jcy9hcGktcmVmZXJlbmNlLm1kI2NyZWF0ZWhhc2hoaXN0b3J5XHJcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVIYXNoSGlzdG9yeShvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgX29wdGlvbnMyID0gb3B0aW9ucyxcbiAgICAgIF9vcHRpb25zMiR3aW5kb3cgPSBfb3B0aW9uczIud2luZG93LFxuICAgICAgd2luZG93ID0gX29wdGlvbnMyJHdpbmRvdyA9PT0gdm9pZCAwID8gZG9jdW1lbnQuZGVmYXVsdFZpZXcgOiBfb3B0aW9uczIkd2luZG93O1xuICB2YXIgZ2xvYmFsSGlzdG9yeSA9IHdpbmRvdy5oaXN0b3J5O1xuXG4gIGZ1bmN0aW9uIGdldEluZGV4QW5kTG9jYXRpb24oKSB7XG4gICAgdmFyIF9wYXJzZVBhdGggPSBwYXJzZVBhdGgod2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpKSxcbiAgICAgICAgX3BhcnNlUGF0aCRwYXRobmFtZSA9IF9wYXJzZVBhdGgucGF0aG5hbWUsXG4gICAgICAgIHBhdGhuYW1lID0gX3BhcnNlUGF0aCRwYXRobmFtZSA9PT0gdm9pZCAwID8gJy8nIDogX3BhcnNlUGF0aCRwYXRobmFtZSxcbiAgICAgICAgX3BhcnNlUGF0aCRzZWFyY2ggPSBfcGFyc2VQYXRoLnNlYXJjaCxcbiAgICAgICAgc2VhcmNoID0gX3BhcnNlUGF0aCRzZWFyY2ggPT09IHZvaWQgMCA/ICcnIDogX3BhcnNlUGF0aCRzZWFyY2gsXG4gICAgICAgIF9wYXJzZVBhdGgkaGFzaCA9IF9wYXJzZVBhdGguaGFzaCxcbiAgICAgICAgaGFzaCA9IF9wYXJzZVBhdGgkaGFzaCA9PT0gdm9pZCAwID8gJycgOiBfcGFyc2VQYXRoJGhhc2g7XG5cbiAgICB2YXIgc3RhdGUgPSBnbG9iYWxIaXN0b3J5LnN0YXRlIHx8IHt9O1xuICAgIHJldHVybiBbc3RhdGUuaWR4LCByZWFkT25seSh7XG4gICAgICBwYXRobmFtZTogcGF0aG5hbWUsXG4gICAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICAgIGhhc2g6IGhhc2gsXG4gICAgICBzdGF0ZTogc3RhdGUudXNyIHx8IG51bGwsXG4gICAgICBrZXk6IHN0YXRlLmtleSB8fCAnZGVmYXVsdCdcbiAgICB9KV07XG4gIH1cblxuICB2YXIgYmxvY2tlZFBvcFR4ID0gbnVsbDtcblxuICBmdW5jdGlvbiBoYW5kbGVQb3AoKSB7XG4gICAgaWYgKGJsb2NrZWRQb3BUeCkge1xuICAgICAgYmxvY2tlcnMuY2FsbChibG9ja2VkUG9wVHgpO1xuICAgICAgYmxvY2tlZFBvcFR4ID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG5leHRBY3Rpb24gPSBBY3Rpb24uUG9wO1xuXG4gICAgICB2YXIgX2dldEluZGV4QW5kTG9jYXRpb240ID0gZ2V0SW5kZXhBbmRMb2NhdGlvbigpLFxuICAgICAgICAgIG5leHRJbmRleCA9IF9nZXRJbmRleEFuZExvY2F0aW9uNFswXSxcbiAgICAgICAgICBuZXh0TG9jYXRpb24gPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjRbMV07XG5cbiAgICAgIGlmIChibG9ja2Vycy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKG5leHRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgdmFyIGRlbHRhID0gaW5kZXggLSBuZXh0SW5kZXg7XG5cbiAgICAgICAgICBpZiAoZGVsdGEpIHtcbiAgICAgICAgICAgIC8vIFJldmVydCB0aGUgUE9QXG4gICAgICAgICAgICBibG9ja2VkUG9wVHggPSB7XG4gICAgICAgICAgICAgIGFjdGlvbjogbmV4dEFjdGlvbixcbiAgICAgICAgICAgICAgbG9jYXRpb246IG5leHRMb2NhdGlvbixcbiAgICAgICAgICAgICAgcmV0cnk6IGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgICAgICAgICAgIGdvKGRlbHRhICogLTEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZ28oZGVsdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUcnlpbmcgdG8gUE9QIHRvIGEgbG9jYXRpb24gd2l0aCBubyBpbmRleC4gV2UgZGlkIG5vdCBjcmVhdGVcbiAgICAgICAgICAvLyB0aGlzIGxvY2F0aW9uLCBzbyB3ZSBjYW4ndCBlZmZlY3RpdmVseSBibG9jayB0aGUgbmF2aWdhdGlvbi5cbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGZhbHNlLCAvLyBUT0RPOiBXcml0ZSB1cCBhIGRvYyB0aGF0IGV4cGxhaW5zIG91ciBibG9ja2luZyBzdHJhdGVneSBpblxuICAgICAgICAgIC8vIGRldGFpbCBhbmQgbGluayB0byBpdCBoZXJlIHNvIHBlb3BsZSBjYW4gdW5kZXJzdGFuZCBiZXR0ZXJcbiAgICAgICAgICAvLyB3aGF0IGlzIGdvaW5nIG9uIGFuZCBob3cgdG8gYXZvaWQgaXQuXG4gICAgICAgICAgXCJZb3UgYXJlIHRyeWluZyB0byBibG9jayBhIFBPUCBuYXZpZ2F0aW9uIHRvIGEgbG9jYXRpb24gdGhhdCB3YXMgbm90IFwiICsgXCJjcmVhdGVkIGJ5IHRoZSBoaXN0b3J5IGxpYnJhcnkuIFRoZSBibG9jayB3aWxsIGZhaWwgc2lsZW50bHkgaW4gXCIgKyBcInByb2R1Y3Rpb24sIGJ1dCBpbiBnZW5lcmFsIHlvdSBzaG91bGQgZG8gYWxsIG5hdmlnYXRpb24gd2l0aCB0aGUgXCIgKyBcImhpc3RvcnkgbGlicmFyeSAoaW5zdGVhZCBvZiB1c2luZyB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgZGlyZWN0bHkpIFwiICsgXCJ0byBhdm9pZCB0aGlzIHNpdHVhdGlvbi5cIikgOiB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFwcGx5VHgobmV4dEFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoUG9wU3RhdGVFdmVudFR5cGUsIGhhbmRsZVBvcCk7IC8vIHBvcHN0YXRlIGRvZXMgbm90IGZpcmUgb24gaGFzaGNoYW5nZSBpbiBJRSAxMSBhbmQgb2xkICh0cmlkZW50KSBFZGdlXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RlL2RvY3MvV2ViL0FQSS9XaW5kb3cvcG9wc3RhdGVfZXZlbnRcblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihIYXNoQ2hhbmdlRXZlbnRUeXBlLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9nZXRJbmRleEFuZExvY2F0aW9uNSA9IGdldEluZGV4QW5kTG9jYXRpb24oKSxcbiAgICAgICAgbmV4dExvY2F0aW9uID0gX2dldEluZGV4QW5kTG9jYXRpb241WzFdOyAvLyBJZ25vcmUgZXh0cmFuZW91cyBoYXNoY2hhbmdlIGV2ZW50cy5cblxuXG4gICAgaWYgKGNyZWF0ZVBhdGgobmV4dExvY2F0aW9uKSAhPT0gY3JlYXRlUGF0aChsb2NhdGlvbikpIHtcbiAgICAgIGhhbmRsZVBvcCgpO1xuICAgIH1cbiAgfSk7XG4gIHZhciBhY3Rpb24gPSBBY3Rpb24uUG9wO1xuXG4gIHZhciBfZ2V0SW5kZXhBbmRMb2NhdGlvbjYgPSBnZXRJbmRleEFuZExvY2F0aW9uKCksXG4gICAgICBpbmRleCA9IF9nZXRJbmRleEFuZExvY2F0aW9uNlswXSxcbiAgICAgIGxvY2F0aW9uID0gX2dldEluZGV4QW5kTG9jYXRpb242WzFdO1xuXG4gIHZhciBsaXN0ZW5lcnMgPSBjcmVhdGVFdmVudHMoKTtcbiAgdmFyIGJsb2NrZXJzID0gY3JlYXRlRXZlbnRzKCk7XG5cbiAgaWYgKGluZGV4ID09IG51bGwpIHtcbiAgICBpbmRleCA9IDA7XG4gICAgZ2xvYmFsSGlzdG9yeS5yZXBsYWNlU3RhdGUoX2V4dGVuZHMoe30sIGdsb2JhbEhpc3Rvcnkuc3RhdGUsIHtcbiAgICAgIGlkeDogaW5kZXhcbiAgICB9KSwgJycpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0QmFzZUhyZWYoKSB7XG4gICAgdmFyIGJhc2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiYXNlJyk7XG4gICAgdmFyIGhyZWYgPSAnJztcblxuICAgIGlmIChiYXNlICYmIGJhc2UuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgIHZhciB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIHZhciBoYXNoSW5kZXggPSB1cmwuaW5kZXhPZignIycpO1xuICAgICAgaHJlZiA9IGhhc2hJbmRleCA9PT0gLTEgPyB1cmwgOiB1cmwuc2xpY2UoMCwgaGFzaEluZGV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaHJlZjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUhyZWYodG8pIHtcbiAgICByZXR1cm4gZ2V0QmFzZUhyZWYoKSArICcjJyArICh0eXBlb2YgdG8gPT09ICdzdHJpbmcnID8gdG8gOiBjcmVhdGVQYXRoKHRvKSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKSB7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIHN0YXRlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVhZE9ubHkoX2V4dGVuZHMoe1xuICAgICAgcGF0aG5hbWU6IGxvY2F0aW9uLnBhdGhuYW1lLFxuICAgICAgaGFzaDogJycsXG4gICAgICBzZWFyY2g6ICcnXG4gICAgfSwgdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHBhcnNlUGF0aCh0bykgOiB0bywge1xuICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAga2V5OiBjcmVhdGVLZXkoKVxuICAgIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEhpc3RvcnlTdGF0ZUFuZFVybChuZXh0TG9jYXRpb24sIGluZGV4KSB7XG4gICAgcmV0dXJuIFt7XG4gICAgICB1c3I6IG5leHRMb2NhdGlvbi5zdGF0ZSxcbiAgICAgIGtleTogbmV4dExvY2F0aW9uLmtleSxcbiAgICAgIGlkeDogaW5kZXhcbiAgICB9LCBjcmVhdGVIcmVmKG5leHRMb2NhdGlvbildO1xuICB9XG5cbiAgZnVuY3Rpb24gYWxsb3dUeChhY3Rpb24sIGxvY2F0aW9uLCByZXRyeSkge1xuICAgIHJldHVybiAhYmxvY2tlcnMubGVuZ3RoIHx8IChibG9ja2Vycy5jYWxsKHtcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgbG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgcmV0cnk6IHJldHJ5XG4gICAgfSksIGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5VHgobmV4dEFjdGlvbikge1xuICAgIGFjdGlvbiA9IG5leHRBY3Rpb247XG5cbiAgICB2YXIgX2dldEluZGV4QW5kTG9jYXRpb243ID0gZ2V0SW5kZXhBbmRMb2NhdGlvbigpO1xuXG4gICAgaW5kZXggPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjdbMF07XG4gICAgbG9jYXRpb24gPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjdbMV07XG4gICAgbGlzdGVuZXJzLmNhbGwoe1xuICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICBsb2NhdGlvbjogbG9jYXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHB1c2godG8sIHN0YXRlKSB7XG4gICAgdmFyIG5leHRBY3Rpb24gPSBBY3Rpb24uUHVzaDtcbiAgICB2YXIgbmV4dExvY2F0aW9uID0gZ2V0TmV4dExvY2F0aW9uKHRvLCBzdGF0ZSk7XG5cbiAgICBmdW5jdGlvbiByZXRyeSgpIHtcbiAgICAgIHB1c2godG8sIHN0YXRlKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKG5leHRMb2NhdGlvbi5wYXRobmFtZS5jaGFyQXQoMCkgPT09ICcvJywgXCJSZWxhdGl2ZSBwYXRobmFtZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gaGFzaCBoaXN0b3J5LnB1c2goXCIgKyBKU09OLnN0cmluZ2lmeSh0bykgKyBcIilcIikgOiB2b2lkIDA7XG5cbiAgICBpZiAoYWxsb3dUeChuZXh0QWN0aW9uLCBuZXh0TG9jYXRpb24sIHJldHJ5KSkge1xuICAgICAgdmFyIF9nZXRIaXN0b3J5U3RhdGVBbmRVcjMgPSBnZXRIaXN0b3J5U3RhdGVBbmRVcmwobmV4dExvY2F0aW9uLCBpbmRleCArIDEpLFxuICAgICAgICAgIGhpc3RvcnlTdGF0ZSA9IF9nZXRIaXN0b3J5U3RhdGVBbmRVcjNbMF0sXG4gICAgICAgICAgdXJsID0gX2dldEhpc3RvcnlTdGF0ZUFuZFVyM1sxXTsgLy8gVE9ETzogU3VwcG9ydCBmb3JjZWQgcmVsb2FkaW5nXG4gICAgICAvLyB0cnkuLi5jYXRjaCBiZWNhdXNlIGlPUyBsaW1pdHMgdXMgdG8gMTAwIHB1c2hTdGF0ZSBjYWxscyA6L1xuXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGdsb2JhbEhpc3RvcnkucHVzaFN0YXRlKGhpc3RvcnlTdGF0ZSwgJycsIHVybCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBUaGV5IGFyZSBnb2luZyB0byBsb3NlIHN0YXRlIGhlcmUsIGJ1dCB0aGVyZSBpcyBubyByZWFsXG4gICAgICAgIC8vIHdheSB0byB3YXJuIHRoZW0gYWJvdXQgaXQgc2luY2UgdGhlIHBhZ2Ugd2lsbCByZWZyZXNoLi4uXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odXJsKTtcbiAgICAgIH1cblxuICAgICAgYXBwbHlUeChuZXh0QWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZXBsYWNlKHRvLCBzdGF0ZSkge1xuICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlJlcGxhY2U7XG4gICAgdmFyIG5leHRMb2NhdGlvbiA9IGdldE5leHRMb2NhdGlvbih0bywgc3RhdGUpO1xuXG4gICAgZnVuY3Rpb24gcmV0cnkoKSB7XG4gICAgICByZXBsYWNlKHRvLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhuZXh0TG9jYXRpb24ucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycsIFwiUmVsYXRpdmUgcGF0aG5hbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIGhhc2ggaGlzdG9yeS5yZXBsYWNlKFwiICsgSlNPTi5zdHJpbmdpZnkodG8pICsgXCIpXCIpIDogdm9pZCAwO1xuXG4gICAgaWYgKGFsbG93VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uLCByZXRyeSkpIHtcbiAgICAgIHZhciBfZ2V0SGlzdG9yeVN0YXRlQW5kVXI0ID0gZ2V0SGlzdG9yeVN0YXRlQW5kVXJsKG5leHRMb2NhdGlvbiwgaW5kZXgpLFxuICAgICAgICAgIGhpc3RvcnlTdGF0ZSA9IF9nZXRIaXN0b3J5U3RhdGVBbmRVcjRbMF0sXG4gICAgICAgICAgdXJsID0gX2dldEhpc3RvcnlTdGF0ZUFuZFVyNFsxXTsgLy8gVE9ETzogU3VwcG9ydCBmb3JjZWQgcmVsb2FkaW5nXG5cblxuICAgICAgZ2xvYmFsSGlzdG9yeS5yZXBsYWNlU3RhdGUoaGlzdG9yeVN0YXRlLCAnJywgdXJsKTtcbiAgICAgIGFwcGx5VHgobmV4dEFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ28oZGVsdGEpIHtcbiAgICBnbG9iYWxIaXN0b3J5LmdvKGRlbHRhKTtcbiAgfVxuXG4gIHZhciBoaXN0b3J5ID0ge1xuICAgIGdldCBhY3Rpb24oKSB7XG4gICAgICByZXR1cm4gYWN0aW9uO1xuICAgIH0sXG5cbiAgICBnZXQgbG9jYXRpb24oKSB7XG4gICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgfSxcblxuICAgIGNyZWF0ZUhyZWY6IGNyZWF0ZUhyZWYsXG4gICAgcHVzaDogcHVzaCxcbiAgICByZXBsYWNlOiByZXBsYWNlLFxuICAgIGdvOiBnbyxcbiAgICBiYWNrOiBmdW5jdGlvbiBiYWNrKCkge1xuICAgICAgZ28oLTEpO1xuICAgIH0sXG4gICAgZm9yd2FyZDogZnVuY3Rpb24gZm9yd2FyZCgpIHtcbiAgICAgIGdvKDEpO1xuICAgIH0sXG4gICAgbGlzdGVuOiBmdW5jdGlvbiBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgfSxcbiAgICBibG9jazogZnVuY3Rpb24gYmxvY2soYmxvY2tlcikge1xuICAgICAgdmFyIHVuYmxvY2sgPSBibG9ja2Vycy5wdXNoKGJsb2NrZXIpO1xuXG4gICAgICBpZiAoYmxvY2tlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKEJlZm9yZVVubG9hZEV2ZW50VHlwZSwgcHJvbXB0QmVmb3JlVW5sb2FkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdW5ibG9jaygpOyAvLyBSZW1vdmUgdGhlIGJlZm9yZXVubG9hZCBsaXN0ZW5lciBzbyB0aGUgZG9jdW1lbnQgbWF5XG4gICAgICAgIC8vIHN0aWxsIGJlIHNhbHZhZ2VhYmxlIGluIHRoZSBwYWdlaGlkZSBldmVudC5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3VubG9hZGluZy1kb2N1bWVudHNcblxuICAgICAgICBpZiAoIWJsb2NrZXJzLmxlbmd0aCkge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEJlZm9yZVVubG9hZEV2ZW50VHlwZSwgcHJvbXB0QmVmb3JlVW5sb2FkKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBoaXN0b3J5O1xufVxuLyoqXHJcbiAqIE1lbW9yeSBoaXN0b3J5IHN0b3JlcyB0aGUgY3VycmVudCBsb2NhdGlvbiBpbiBtZW1vcnkuIEl0IGlzIGRlc2lnbmVkIGZvciB1c2VcclxuICogaW4gc3RhdGVmdWwgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnRzIGxpa2UgdGVzdHMgYW5kIFJlYWN0IE5hdGl2ZS5cclxuICpcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVtaXgtcnVuL2hpc3RvcnkvdHJlZS9tYWluL2RvY3MvYXBpLXJlZmVyZW5jZS5tZCNjcmVhdGVtZW1vcnloaXN0b3J5XHJcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVNZW1vcnlIaXN0b3J5KG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9uczMgPSBvcHRpb25zLFxuICAgICAgX29wdGlvbnMzJGluaXRpYWxFbnRyID0gX29wdGlvbnMzLmluaXRpYWxFbnRyaWVzLFxuICAgICAgaW5pdGlhbEVudHJpZXMgPSBfb3B0aW9uczMkaW5pdGlhbEVudHIgPT09IHZvaWQgMCA/IFsnLyddIDogX29wdGlvbnMzJGluaXRpYWxFbnRyLFxuICAgICAgaW5pdGlhbEluZGV4ID0gX29wdGlvbnMzLmluaXRpYWxJbmRleDtcbiAgdmFyIGVudHJpZXMgPSBpbml0aWFsRW50cmllcy5tYXAoZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgdmFyIGxvY2F0aW9uID0gcmVhZE9ubHkoX2V4dGVuZHMoe1xuICAgICAgcGF0aG5hbWU6ICcvJyxcbiAgICAgIHNlYXJjaDogJycsXG4gICAgICBoYXNoOiAnJyxcbiAgICAgIHN0YXRlOiBudWxsLFxuICAgICAga2V5OiBjcmVhdGVLZXkoKVxuICAgIH0sIHR5cGVvZiBlbnRyeSA9PT0gJ3N0cmluZycgPyBwYXJzZVBhdGgoZW50cnkpIDogZW50cnkpKTtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGxvY2F0aW9uLnBhdGhuYW1lLmNoYXJBdCgwKSA9PT0gJy8nLCBcIlJlbGF0aXZlIHBhdGhuYW1lcyBhcmUgbm90IHN1cHBvcnRlZCBpbiBjcmVhdGVNZW1vcnlIaXN0b3J5KHsgaW5pdGlhbEVudHJpZXMgfSkgKGludmFsaWQgZW50cnk6IFwiICsgSlNPTi5zdHJpbmdpZnkoZW50cnkpICsgXCIpXCIpIDogdm9pZCAwO1xuICAgIHJldHVybiBsb2NhdGlvbjtcbiAgfSk7XG4gIHZhciBpbmRleCA9IGNsYW1wKGluaXRpYWxJbmRleCA9PSBudWxsID8gZW50cmllcy5sZW5ndGggLSAxIDogaW5pdGlhbEluZGV4LCAwLCBlbnRyaWVzLmxlbmd0aCAtIDEpO1xuICB2YXIgYWN0aW9uID0gQWN0aW9uLlBvcDtcbiAgdmFyIGxvY2F0aW9uID0gZW50cmllc1tpbmRleF07XG4gIHZhciBsaXN0ZW5lcnMgPSBjcmVhdGVFdmVudHMoKTtcbiAgdmFyIGJsb2NrZXJzID0gY3JlYXRlRXZlbnRzKCk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlSHJlZih0bykge1xuICAgIHJldHVybiB0eXBlb2YgdG8gPT09ICdzdHJpbmcnID8gdG8gOiBjcmVhdGVQYXRoKHRvKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldE5leHRMb2NhdGlvbih0bywgc3RhdGUpIHtcbiAgICBpZiAoc3RhdGUgPT09IHZvaWQgMCkge1xuICAgICAgc3RhdGUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiByZWFkT25seShfZXh0ZW5kcyh7XG4gICAgICBwYXRobmFtZTogbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICBzZWFyY2g6ICcnLFxuICAgICAgaGFzaDogJydcbiAgICB9LCB0eXBlb2YgdG8gPT09ICdzdHJpbmcnID8gcGFyc2VQYXRoKHRvKSA6IHRvLCB7XG4gICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICBrZXk6IGNyZWF0ZUtleSgpXG4gICAgfSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gYWxsb3dUeChhY3Rpb24sIGxvY2F0aW9uLCByZXRyeSkge1xuICAgIHJldHVybiAhYmxvY2tlcnMubGVuZ3RoIHx8IChibG9ja2Vycy5jYWxsKHtcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgbG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgcmV0cnk6IHJldHJ5XG4gICAgfSksIGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uKSB7XG4gICAgYWN0aW9uID0gbmV4dEFjdGlvbjtcbiAgICBsb2NhdGlvbiA9IG5leHRMb2NhdGlvbjtcbiAgICBsaXN0ZW5lcnMuY2FsbCh7XG4gICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIGxvY2F0aW9uOiBsb2NhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gcHVzaCh0bywgc3RhdGUpIHtcbiAgICB2YXIgbmV4dEFjdGlvbiA9IEFjdGlvbi5QdXNoO1xuICAgIHZhciBuZXh0TG9jYXRpb24gPSBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKTtcblxuICAgIGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgcHVzaCh0bywgc3RhdGUpO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcobG9jYXRpb24ucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycsIFwiUmVsYXRpdmUgcGF0aG5hbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIG1lbW9yeSBoaXN0b3J5LnB1c2goXCIgKyBKU09OLnN0cmluZ2lmeSh0bykgKyBcIilcIikgOiB2b2lkIDA7XG5cbiAgICBpZiAoYWxsb3dUeChuZXh0QWN0aW9uLCBuZXh0TG9jYXRpb24sIHJldHJ5KSkge1xuICAgICAgaW5kZXggKz0gMTtcbiAgICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCBlbnRyaWVzLmxlbmd0aCwgbmV4dExvY2F0aW9uKTtcbiAgICAgIGFwcGx5VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZXBsYWNlKHRvLCBzdGF0ZSkge1xuICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlJlcGxhY2U7XG4gICAgdmFyIG5leHRMb2NhdGlvbiA9IGdldE5leHRMb2NhdGlvbih0bywgc3RhdGUpO1xuXG4gICAgZnVuY3Rpb24gcmV0cnkoKSB7XG4gICAgICByZXBsYWNlKHRvLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhsb2NhdGlvbi5wYXRobmFtZS5jaGFyQXQoMCkgPT09ICcvJywgXCJSZWxhdGl2ZSBwYXRobmFtZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gbWVtb3J5IGhpc3RvcnkucmVwbGFjZShcIiArIEpTT04uc3RyaW5naWZ5KHRvKSArIFwiKVwiKSA6IHZvaWQgMDtcblxuICAgIGlmIChhbGxvd1R4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbiwgcmV0cnkpKSB7XG4gICAgICBlbnRyaWVzW2luZGV4XSA9IG5leHRMb2NhdGlvbjtcbiAgICAgIGFwcGx5VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBnbyhkZWx0YSkge1xuICAgIHZhciBuZXh0SW5kZXggPSBjbGFtcChpbmRleCArIGRlbHRhLCAwLCBlbnRyaWVzLmxlbmd0aCAtIDEpO1xuICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlBvcDtcbiAgICB2YXIgbmV4dExvY2F0aW9uID0gZW50cmllc1tuZXh0SW5kZXhdO1xuXG4gICAgZnVuY3Rpb24gcmV0cnkoKSB7XG4gICAgICBnbyhkZWx0YSk7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uLCByZXRyeSkpIHtcbiAgICAgIGluZGV4ID0gbmV4dEluZGV4O1xuICAgICAgYXBwbHlUeChuZXh0QWN0aW9uLCBuZXh0TG9jYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBoaXN0b3J5ID0ge1xuICAgIGdldCBpbmRleCgpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9LFxuXG4gICAgZ2V0IGFjdGlvbigpIHtcbiAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfSxcblxuICAgIGdldCBsb2NhdGlvbigpIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbjtcbiAgICB9LFxuXG4gICAgY3JlYXRlSHJlZjogY3JlYXRlSHJlZixcbiAgICBwdXNoOiBwdXNoLFxuICAgIHJlcGxhY2U6IHJlcGxhY2UsXG4gICAgZ286IGdvLFxuICAgIGJhY2s6IGZ1bmN0aW9uIGJhY2soKSB7XG4gICAgICBnbygtMSk7XG4gICAgfSxcbiAgICBmb3J3YXJkOiBmdW5jdGlvbiBmb3J3YXJkKCkge1xuICAgICAgZ28oMSk7XG4gICAgfSxcbiAgICBsaXN0ZW46IGZ1bmN0aW9uIGxpc3RlbihsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIGxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9LFxuICAgIGJsb2NrOiBmdW5jdGlvbiBibG9jayhibG9ja2VyKSB7XG4gICAgICByZXR1cm4gYmxvY2tlcnMucHVzaChibG9ja2VyKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBoaXN0b3J5O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVVRJTFNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmZ1bmN0aW9uIGNsYW1wKG4sIGxvd2VyQm91bmQsIHVwcGVyQm91bmQpIHtcbiAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sIGxvd2VyQm91bmQpLCB1cHBlckJvdW5kKTtcbn1cblxuZnVuY3Rpb24gcHJvbXB0QmVmb3JlVW5sb2FkKGV2ZW50KSB7XG4gIC8vIENhbmNlbCB0aGUgZXZlbnQuXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIENocm9tZSAoYW5kIGxlZ2FjeSBJRSkgcmVxdWlyZXMgcmV0dXJuVmFsdWUgdG8gYmUgc2V0LlxuXG4gIGV2ZW50LnJldHVyblZhbHVlID0gJyc7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50cygpIHtcbiAgdmFyIGhhbmRsZXJzID0gW107XG4gIHJldHVybiB7XG4gICAgZ2V0IGxlbmd0aCgpIHtcbiAgICAgIHJldHVybiBoYW5kbGVycy5sZW5ndGg7XG4gICAgfSxcblxuICAgIHB1c2g6IGZ1bmN0aW9uIHB1c2goZm4pIHtcbiAgICAgIGhhbmRsZXJzLnB1c2goZm4pO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaGFuZGxlcnMgPSBoYW5kbGVycy5maWx0ZXIoZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlciAhPT0gZm47XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9LFxuICAgIGNhbGw6IGZ1bmN0aW9uIGNhbGwoYXJnKSB7XG4gICAgICBoYW5kbGVycy5mb3JFYWNoKGZ1bmN0aW9uIChmbikge1xuICAgICAgICByZXR1cm4gZm4gJiYgZm4oYXJnKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlS2V5KCkge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDgpO1xufVxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdHJpbmcgVVJMIHBhdGggZnJvbSB0aGUgZ2l2ZW4gcGF0aG5hbWUsIHNlYXJjaCwgYW5kIGhhc2ggY29tcG9uZW50cy5cclxuICpcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVtaXgtcnVuL2hpc3RvcnkvdHJlZS9tYWluL2RvY3MvYXBpLXJlZmVyZW5jZS5tZCNjcmVhdGVwYXRoXHJcbiAqL1xuXG5cbmZ1bmN0aW9uIGNyZWF0ZVBhdGgoX3JlZikge1xuICB2YXIgX3JlZiRwYXRobmFtZSA9IF9yZWYucGF0aG5hbWUsXG4gICAgICBwYXRobmFtZSA9IF9yZWYkcGF0aG5hbWUgPT09IHZvaWQgMCA/ICcvJyA6IF9yZWYkcGF0aG5hbWUsXG4gICAgICBfcmVmJHNlYXJjaCA9IF9yZWYuc2VhcmNoLFxuICAgICAgc2VhcmNoID0gX3JlZiRzZWFyY2ggPT09IHZvaWQgMCA/ICcnIDogX3JlZiRzZWFyY2gsXG4gICAgICBfcmVmJGhhc2ggPSBfcmVmLmhhc2gsXG4gICAgICBoYXNoID0gX3JlZiRoYXNoID09PSB2b2lkIDAgPyAnJyA6IF9yZWYkaGFzaDtcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2ggIT09ICc/JykgcGF0aG5hbWUgKz0gc2VhcmNoLmNoYXJBdCgwKSA9PT0gJz8nID8gc2VhcmNoIDogJz8nICsgc2VhcmNoO1xuICBpZiAoaGFzaCAmJiBoYXNoICE9PSAnIycpIHBhdGhuYW1lICs9IGhhc2guY2hhckF0KDApID09PSAnIycgPyBoYXNoIDogJyMnICsgaGFzaDtcbiAgcmV0dXJuIHBhdGhuYW1lO1xufVxuLyoqXHJcbiAqIFBhcnNlcyBhIHN0cmluZyBVUkwgcGF0aCBpbnRvIGl0cyBzZXBhcmF0ZSBwYXRobmFtZSwgc2VhcmNoLCBhbmQgaGFzaCBjb21wb25lbnRzLlxyXG4gKlxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZW1peC1ydW4vaGlzdG9yeS90cmVlL21haW4vZG9jcy9hcGktcmVmZXJlbmNlLm1kI3BhcnNlcGF0aFxyXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VQYXRoKHBhdGgpIHtcbiAgdmFyIHBhcnNlZFBhdGggPSB7fTtcblxuICBpZiAocGF0aCkge1xuICAgIHZhciBoYXNoSW5kZXggPSBwYXRoLmluZGV4T2YoJyMnKTtcblxuICAgIGlmIChoYXNoSW5kZXggPj0gMCkge1xuICAgICAgcGFyc2VkUGF0aC5oYXNoID0gcGF0aC5zdWJzdHIoaGFzaEluZGV4KTtcbiAgICAgIHBhdGggPSBwYXRoLnN1YnN0cigwLCBoYXNoSW5kZXgpO1xuICAgIH1cblxuICAgIHZhciBzZWFyY2hJbmRleCA9IHBhdGguaW5kZXhPZignPycpO1xuXG4gICAgaWYgKHNlYXJjaEluZGV4ID49IDApIHtcbiAgICAgIHBhcnNlZFBhdGguc2VhcmNoID0gcGF0aC5zdWJzdHIoc2VhcmNoSW5kZXgpO1xuICAgICAgcGF0aCA9IHBhdGguc3Vic3RyKDAsIHNlYXJjaEluZGV4KTtcbiAgICB9XG5cbiAgICBpZiAocGF0aCkge1xuICAgICAgcGFyc2VkUGF0aC5wYXRobmFtZSA9IHBhdGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlZFBhdGg7XG59XG5cbmV4cG9ydCB7IEFjdGlvbiwgY3JlYXRlQnJvd3Nlckhpc3RvcnksIGNyZWF0ZUhhc2hIaXN0b3J5LCBjcmVhdGVNZW1vcnlIaXN0b3J5LCBjcmVhdGVQYXRoLCBwYXJzZVBhdGggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcFxuIiwiLyoqXG4gKiBSZWFjdCBSb3V0ZXIgdjYuMy4wXG4gKlxuICogQ29weXJpZ2h0IChjKSBSZW1peCBTb2Z0d2FyZSBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFLm1kIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICogQGxpY2Vuc2UgTUlUXG4gKi9cbmltcG9ydCB7IHBhcnNlUGF0aCwgY3JlYXRlTWVtb3J5SGlzdG9yeSwgQWN0aW9uIH0gZnJvbSAnaGlzdG9yeSc7XG5leHBvcnQgeyBBY3Rpb24gYXMgTmF2aWdhdGlvblR5cGUsIGNyZWF0ZVBhdGgsIHBhcnNlUGF0aCB9IGZyb20gJ2hpc3RvcnknO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCBjcmVhdGVFbGVtZW50LCB1c2VTdGF0ZSwgdXNlTGF5b3V0RWZmZWN0LCBDaGlsZHJlbiwgaXNWYWxpZEVsZW1lbnQsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBOYXZpZ2F0aW9uQ29udGV4dCA9IC8qI19fUFVSRV9fKi9jcmVhdGVDb250ZXh0KG51bGwpO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIE5hdmlnYXRpb25Db250ZXh0LmRpc3BsYXlOYW1lID0gXCJOYXZpZ2F0aW9uXCI7XG59XG5cbmNvbnN0IExvY2F0aW9uQ29udGV4dCA9IC8qI19fUFVSRV9fKi9jcmVhdGVDb250ZXh0KG51bGwpO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIExvY2F0aW9uQ29udGV4dC5kaXNwbGF5TmFtZSA9IFwiTG9jYXRpb25cIjtcbn1cblxuY29uc3QgUm91dGVDb250ZXh0ID0gLyojX19QVVJFX18qL2NyZWF0ZUNvbnRleHQoe1xuICBvdXRsZXQ6IG51bGwsXG4gIG1hdGNoZXM6IFtdXG59KTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBSb3V0ZUNvbnRleHQuZGlzcGxheU5hbWUgPSBcIlJvdXRlXCI7XG59XG5cbmZ1bmN0aW9uIGludmFyaWFudChjb25kLCBtZXNzYWdlKSB7XG4gIGlmICghY29uZCkgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gd2FybmluZyhjb25kLCBtZXNzYWdlKSB7XG4gIGlmICghY29uZCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiKSBjb25zb2xlLndhcm4obWVzc2FnZSk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgUm91dGVyIVxuICAgICAgLy9cbiAgICAgIC8vIFRoaXMgZXJyb3IgaXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28geW91IGNhbiBtb3JlIGVhc2lseVxuICAgICAgLy8gZmluZCB0aGUgc291cmNlIGZvciBhIHdhcm5pbmcgdGhhdCBhcHBlYXJzIGluIHRoZSBjb25zb2xlIGJ5XG4gICAgICAvLyBlbmFibGluZyBcInBhdXNlIG9uIGV4Y2VwdGlvbnNcIiBpbiB5b3VyIEphdmFTY3JpcHQgZGVidWdnZXIuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxuICAgIH0gY2F0Y2ggKGUpIHt9XG4gIH1cbn1cbmNvbnN0IGFscmVhZHlXYXJuZWQgPSB7fTtcbmZ1bmN0aW9uIHdhcm5pbmdPbmNlKGtleSwgY29uZCwgbWVzc2FnZSkge1xuICBpZiAoIWNvbmQgJiYgIWFscmVhZHlXYXJuZWRba2V5XSkge1xuICAgIGFscmVhZHlXYXJuZWRba2V5XSA9IHRydWU7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhmYWxzZSwgbWVzc2FnZSkgOiB2b2lkIDA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgcGF0aCB3aXRoIHBhcmFtcyBpbnRlcnBvbGF0ZWQuXG4gKlxuICogQHNlZSBodHRwczovL3JlYWN0cm91dGVyLmNvbS9kb2NzL2VuL3Y2L2FwaSNnZW5lcmF0ZXBhdGhcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVQYXRoKHBhdGgsIHBhcmFtcykge1xuICBpZiAocGFyYW1zID09PSB2b2lkIDApIHtcbiAgICBwYXJhbXMgPSB7fTtcbiAgfVxuXG4gIHJldHVybiBwYXRoLnJlcGxhY2UoLzooXFx3KykvZywgKF8sIGtleSkgPT4ge1xuICAgICEocGFyYW1zW2tleV0gIT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiTWlzc2luZyBcXFwiOlwiICsga2V5ICsgXCJcXFwiIHBhcmFtXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICByZXR1cm4gcGFyYW1zW2tleV07XG4gIH0pLnJlcGxhY2UoL1xcLypcXCokLywgXyA9PiBwYXJhbXNbXCIqXCJdID09IG51bGwgPyBcIlwiIDogcGFyYW1zW1wiKlwiXS5yZXBsYWNlKC9eXFwvKi8sIFwiL1wiKSk7XG59XG4vKipcbiAqIEEgUm91dGVNYXRjaCBjb250YWlucyBpbmZvIGFib3V0IGhvdyBhIHJvdXRlIG1hdGNoZWQgYSBVUkwuXG4gKi9cblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBnaXZlbiByb3V0ZXMgdG8gYSBsb2NhdGlvbiBhbmQgcmV0dXJucyB0aGUgbWF0Y2ggZGF0YS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI21hdGNocm91dGVzXG4gKi9cbmZ1bmN0aW9uIG1hdGNoUm91dGVzKHJvdXRlcywgbG9jYXRpb25BcmcsIGJhc2VuYW1lKSB7XG4gIGlmIChiYXNlbmFtZSA9PT0gdm9pZCAwKSB7XG4gICAgYmFzZW5hbWUgPSBcIi9cIjtcbiAgfVxuXG4gIGxldCBsb2NhdGlvbiA9IHR5cGVvZiBsb2NhdGlvbkFyZyA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlUGF0aChsb2NhdGlvbkFyZykgOiBsb2NhdGlvbkFyZztcbiAgbGV0IHBhdGhuYW1lID0gc3RyaXBCYXNlbmFtZShsb2NhdGlvbi5wYXRobmFtZSB8fCBcIi9cIiwgYmFzZW5hbWUpO1xuXG4gIGlmIChwYXRobmFtZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBsZXQgYnJhbmNoZXMgPSBmbGF0dGVuUm91dGVzKHJvdXRlcyk7XG4gIHJhbmtSb3V0ZUJyYW5jaGVzKGJyYW5jaGVzKTtcbiAgbGV0IG1hdGNoZXMgPSBudWxsO1xuXG4gIGZvciAobGV0IGkgPSAwOyBtYXRjaGVzID09IG51bGwgJiYgaSA8IGJyYW5jaGVzLmxlbmd0aDsgKytpKSB7XG4gICAgbWF0Y2hlcyA9IG1hdGNoUm91dGVCcmFuY2goYnJhbmNoZXNbaV0sIHBhdGhuYW1lKTtcbiAgfVxuXG4gIHJldHVybiBtYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBmbGF0dGVuUm91dGVzKHJvdXRlcywgYnJhbmNoZXMsIHBhcmVudHNNZXRhLCBwYXJlbnRQYXRoKSB7XG4gIGlmIChicmFuY2hlcyA9PT0gdm9pZCAwKSB7XG4gICAgYnJhbmNoZXMgPSBbXTtcbiAgfVxuXG4gIGlmIChwYXJlbnRzTWV0YSA9PT0gdm9pZCAwKSB7XG4gICAgcGFyZW50c01ldGEgPSBbXTtcbiAgfVxuXG4gIGlmIChwYXJlbnRQYXRoID09PSB2b2lkIDApIHtcbiAgICBwYXJlbnRQYXRoID0gXCJcIjtcbiAgfVxuXG4gIHJvdXRlcy5mb3JFYWNoKChyb3V0ZSwgaW5kZXgpID0+IHtcbiAgICBsZXQgbWV0YSA9IHtcbiAgICAgIHJlbGF0aXZlUGF0aDogcm91dGUucGF0aCB8fCBcIlwiLFxuICAgICAgY2FzZVNlbnNpdGl2ZTogcm91dGUuY2FzZVNlbnNpdGl2ZSA9PT0gdHJ1ZSxcbiAgICAgIGNoaWxkcmVuSW5kZXg6IGluZGV4LFxuICAgICAgcm91dGVcbiAgICB9O1xuXG4gICAgaWYgKG1ldGEucmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAhbWV0YS5yZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChwYXJlbnRQYXRoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCJBYnNvbHV0ZSByb3V0ZSBwYXRoIFxcXCJcIiArIG1ldGEucmVsYXRpdmVQYXRoICsgXCJcXFwiIG5lc3RlZCB1bmRlciBwYXRoIFwiICsgKFwiXFxcIlwiICsgcGFyZW50UGF0aCArIFwiXFxcIiBpcyBub3QgdmFsaWQuIEFuIGFic29sdXRlIGNoaWxkIHJvdXRlIHBhdGggXCIpICsgXCJtdXN0IHN0YXJ0IHdpdGggdGhlIGNvbWJpbmVkIHBhdGggb2YgYWxsIGl0cyBwYXJlbnQgcm91dGVzLlwiKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICBtZXRhLnJlbGF0aXZlUGF0aCA9IG1ldGEucmVsYXRpdmVQYXRoLnNsaWNlKHBhcmVudFBhdGgubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IGpvaW5QYXRocyhbcGFyZW50UGF0aCwgbWV0YS5yZWxhdGl2ZVBhdGhdKTtcbiAgICBsZXQgcm91dGVzTWV0YSA9IHBhcmVudHNNZXRhLmNvbmNhdChtZXRhKTsgLy8gQWRkIHRoZSBjaGlsZHJlbiBiZWZvcmUgYWRkaW5nIHRoaXMgcm91dGUgdG8gdGhlIGFycmF5IHNvIHdlIHRyYXZlcnNlIHRoZVxuICAgIC8vIHJvdXRlIHRyZWUgZGVwdGgtZmlyc3QgYW5kIGNoaWxkIHJvdXRlcyBhcHBlYXIgYmVmb3JlIHRoZWlyIHBhcmVudHMgaW5cbiAgICAvLyB0aGUgXCJmbGF0dGVuZWRcIiB2ZXJzaW9uLlxuXG4gICAgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICEocm91dGUuaW5kZXggIT09IHRydWUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCBcIkluZGV4IHJvdXRlcyBtdXN0IG5vdCBoYXZlIGNoaWxkIHJvdXRlcy4gUGxlYXNlIHJlbW92ZSBcIiArIChcImFsbCBjaGlsZCByb3V0ZXMgZnJvbSByb3V0ZSBwYXRoIFxcXCJcIiArIHBhdGggKyBcIlxcXCIuXCIpKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICBmbGF0dGVuUm91dGVzKHJvdXRlLmNoaWxkcmVuLCBicmFuY2hlcywgcm91dGVzTWV0YSwgcGF0aCk7XG4gICAgfSAvLyBSb3V0ZXMgd2l0aG91dCBhIHBhdGggc2hvdWxkbid0IGV2ZXIgbWF0Y2ggYnkgdGhlbXNlbHZlcyB1bmxlc3MgdGhleSBhcmVcbiAgICAvLyBpbmRleCByb3V0ZXMsIHNvIGRvbid0IGFkZCB0aGVtIHRvIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGJyYW5jaGVzLlxuXG5cbiAgICBpZiAocm91dGUucGF0aCA9PSBudWxsICYmICFyb3V0ZS5pbmRleCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJyYW5jaGVzLnB1c2goe1xuICAgICAgcGF0aCxcbiAgICAgIHNjb3JlOiBjb21wdXRlU2NvcmUocGF0aCwgcm91dGUuaW5kZXgpLFxuICAgICAgcm91dGVzTWV0YVxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGJyYW5jaGVzO1xufVxuXG5mdW5jdGlvbiByYW5rUm91dGVCcmFuY2hlcyhicmFuY2hlcykge1xuICBicmFuY2hlcy5zb3J0KChhLCBiKSA9PiBhLnNjb3JlICE9PSBiLnNjb3JlID8gYi5zY29yZSAtIGEuc2NvcmUgLy8gSGlnaGVyIHNjb3JlIGZpcnN0XG4gIDogY29tcGFyZUluZGV4ZXMoYS5yb3V0ZXNNZXRhLm1hcChtZXRhID0+IG1ldGEuY2hpbGRyZW5JbmRleCksIGIucm91dGVzTWV0YS5tYXAobWV0YSA9PiBtZXRhLmNoaWxkcmVuSW5kZXgpKSk7XG59XG5cbmNvbnN0IHBhcmFtUmUgPSAvXjpcXHcrJC87XG5jb25zdCBkeW5hbWljU2VnbWVudFZhbHVlID0gMztcbmNvbnN0IGluZGV4Um91dGVWYWx1ZSA9IDI7XG5jb25zdCBlbXB0eVNlZ21lbnRWYWx1ZSA9IDE7XG5jb25zdCBzdGF0aWNTZWdtZW50VmFsdWUgPSAxMDtcbmNvbnN0IHNwbGF0UGVuYWx0eSA9IC0yO1xuXG5jb25zdCBpc1NwbGF0ID0gcyA9PiBzID09PSBcIipcIjtcblxuZnVuY3Rpb24gY29tcHV0ZVNjb3JlKHBhdGgsIGluZGV4KSB7XG4gIGxldCBzZWdtZW50cyA9IHBhdGguc3BsaXQoXCIvXCIpO1xuICBsZXQgaW5pdGlhbFNjb3JlID0gc2VnbWVudHMubGVuZ3RoO1xuXG4gIGlmIChzZWdtZW50cy5zb21lKGlzU3BsYXQpKSB7XG4gICAgaW5pdGlhbFNjb3JlICs9IHNwbGF0UGVuYWx0eTtcbiAgfVxuXG4gIGlmIChpbmRleCkge1xuICAgIGluaXRpYWxTY29yZSArPSBpbmRleFJvdXRlVmFsdWU7XG4gIH1cblxuICByZXR1cm4gc2VnbWVudHMuZmlsdGVyKHMgPT4gIWlzU3BsYXQocykpLnJlZHVjZSgoc2NvcmUsIHNlZ21lbnQpID0+IHNjb3JlICsgKHBhcmFtUmUudGVzdChzZWdtZW50KSA/IGR5bmFtaWNTZWdtZW50VmFsdWUgOiBzZWdtZW50ID09PSBcIlwiID8gZW1wdHlTZWdtZW50VmFsdWUgOiBzdGF0aWNTZWdtZW50VmFsdWUpLCBpbml0aWFsU2NvcmUpO1xufVxuXG5mdW5jdGlvbiBjb21wYXJlSW5kZXhlcyhhLCBiKSB7XG4gIGxldCBzaWJsaW5ncyA9IGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLnNsaWNlKDAsIC0xKS5ldmVyeSgobiwgaSkgPT4gbiA9PT0gYltpXSk7XG4gIHJldHVybiBzaWJsaW5ncyA/IC8vIElmIHR3byByb3V0ZXMgYXJlIHNpYmxpbmdzLCB3ZSBzaG91bGQgdHJ5IHRvIG1hdGNoIHRoZSBlYXJsaWVyIHNpYmxpbmdcbiAgLy8gZmlyc3QuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byBoYXZlIGZpbmUtZ3JhaW5lZCBjb250cm9sIG92ZXIgdGhlIG1hdGNoaW5nXG4gIC8vIGJlaGF2aW9yIGJ5IHNpbXBseSBwdXR0aW5nIHJvdXRlcyB3aXRoIGlkZW50aWNhbCBwYXRocyBpbiB0aGUgb3JkZXIgdGhleVxuICAvLyB3YW50IHRoZW0gdHJpZWQuXG4gIGFbYS5sZW5ndGggLSAxXSAtIGJbYi5sZW5ndGggLSAxXSA6IC8vIE90aGVyd2lzZSwgaXQgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZSB0byByYW5rIG5vbi1zaWJsaW5ncyBieSBpbmRleCxcbiAgLy8gc28gdGhleSBzb3J0IGVxdWFsbHkuXG4gIDA7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUm91dGVCcmFuY2goYnJhbmNoLCBwYXRobmFtZSkge1xuICBsZXQge1xuICAgIHJvdXRlc01ldGFcbiAgfSA9IGJyYW5jaDtcbiAgbGV0IG1hdGNoZWRQYXJhbXMgPSB7fTtcbiAgbGV0IG1hdGNoZWRQYXRobmFtZSA9IFwiL1wiO1xuICBsZXQgbWF0Y2hlcyA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcm91dGVzTWV0YS5sZW5ndGg7ICsraSkge1xuICAgIGxldCBtZXRhID0gcm91dGVzTWV0YVtpXTtcbiAgICBsZXQgZW5kID0gaSA9PT0gcm91dGVzTWV0YS5sZW5ndGggLSAxO1xuICAgIGxldCByZW1haW5pbmdQYXRobmFtZSA9IG1hdGNoZWRQYXRobmFtZSA9PT0gXCIvXCIgPyBwYXRobmFtZSA6IHBhdGhuYW1lLnNsaWNlKG1hdGNoZWRQYXRobmFtZS5sZW5ndGgpIHx8IFwiL1wiO1xuICAgIGxldCBtYXRjaCA9IG1hdGNoUGF0aCh7XG4gICAgICBwYXRoOiBtZXRhLnJlbGF0aXZlUGF0aCxcbiAgICAgIGNhc2VTZW5zaXRpdmU6IG1ldGEuY2FzZVNlbnNpdGl2ZSxcbiAgICAgIGVuZFxuICAgIH0sIHJlbWFpbmluZ1BhdGhuYW1lKTtcbiAgICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcbiAgICBPYmplY3QuYXNzaWduKG1hdGNoZWRQYXJhbXMsIG1hdGNoLnBhcmFtcyk7XG4gICAgbGV0IHJvdXRlID0gbWV0YS5yb3V0ZTtcbiAgICBtYXRjaGVzLnB1c2goe1xuICAgICAgcGFyYW1zOiBtYXRjaGVkUGFyYW1zLFxuICAgICAgcGF0aG5hbWU6IGpvaW5QYXRocyhbbWF0Y2hlZFBhdGhuYW1lLCBtYXRjaC5wYXRobmFtZV0pLFxuICAgICAgcGF0aG5hbWVCYXNlOiBub3JtYWxpemVQYXRobmFtZShqb2luUGF0aHMoW21hdGNoZWRQYXRobmFtZSwgbWF0Y2gucGF0aG5hbWVCYXNlXSkpLFxuICAgICAgcm91dGVcbiAgICB9KTtcblxuICAgIGlmIChtYXRjaC5wYXRobmFtZUJhc2UgIT09IFwiL1wiKSB7XG4gICAgICBtYXRjaGVkUGF0aG5hbWUgPSBqb2luUGF0aHMoW21hdGNoZWRQYXRobmFtZSwgbWF0Y2gucGF0aG5hbWVCYXNlXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXM7XG59XG4vKipcbiAqIEEgUGF0aFBhdHRlcm4gaXMgdXNlZCB0byBtYXRjaCBvbiBzb21lIHBvcnRpb24gb2YgYSBVUkwgcGF0aG5hbWUuXG4gKi9cblxuXG4vKipcbiAqIFBlcmZvcm1zIHBhdHRlcm4gbWF0Y2hpbmcgb24gYSBVUkwgcGF0aG5hbWUgYW5kIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXRcbiAqIHRoZSBtYXRjaC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI21hdGNocGF0aFxuICovXG5mdW5jdGlvbiBtYXRjaFBhdGgocGF0dGVybiwgcGF0aG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBwYXR0ZXJuID09PSBcInN0cmluZ1wiKSB7XG4gICAgcGF0dGVybiA9IHtcbiAgICAgIHBhdGg6IHBhdHRlcm4sXG4gICAgICBjYXNlU2Vuc2l0aXZlOiBmYWxzZSxcbiAgICAgIGVuZDogdHJ1ZVxuICAgIH07XG4gIH1cblxuICBsZXQgW21hdGNoZXIsIHBhcmFtTmFtZXNdID0gY29tcGlsZVBhdGgocGF0dGVybi5wYXRoLCBwYXR0ZXJuLmNhc2VTZW5zaXRpdmUsIHBhdHRlcm4uZW5kKTtcbiAgbGV0IG1hdGNoID0gcGF0aG5hbWUubWF0Y2gobWF0Y2hlcik7XG4gIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuICBsZXQgbWF0Y2hlZFBhdGhuYW1lID0gbWF0Y2hbMF07XG4gIGxldCBwYXRobmFtZUJhc2UgPSBtYXRjaGVkUGF0aG5hbWUucmVwbGFjZSgvKC4pXFwvKyQvLCBcIiQxXCIpO1xuICBsZXQgY2FwdHVyZUdyb3VwcyA9IG1hdGNoLnNsaWNlKDEpO1xuICBsZXQgcGFyYW1zID0gcGFyYW1OYW1lcy5yZWR1Y2UoKG1lbW8sIHBhcmFtTmFtZSwgaW5kZXgpID0+IHtcbiAgICAvLyBXZSBuZWVkIHRvIGNvbXB1dGUgdGhlIHBhdGhuYW1lQmFzZSBoZXJlIHVzaW5nIHRoZSByYXcgc3BsYXQgdmFsdWVcbiAgICAvLyBpbnN0ZWFkIG9mIHVzaW5nIHBhcmFtc1tcIipcIl0gbGF0ZXIgYmVjYXVzZSBpdCB3aWxsIGJlIGRlY29kZWQgdGhlblxuICAgIGlmIChwYXJhbU5hbWUgPT09IFwiKlwiKSB7XG4gICAgICBsZXQgc3BsYXRWYWx1ZSA9IGNhcHR1cmVHcm91cHNbaW5kZXhdIHx8IFwiXCI7XG4gICAgICBwYXRobmFtZUJhc2UgPSBtYXRjaGVkUGF0aG5hbWUuc2xpY2UoMCwgbWF0Y2hlZFBhdGhuYW1lLmxlbmd0aCAtIHNwbGF0VmFsdWUubGVuZ3RoKS5yZXBsYWNlKC8oLilcXC8rJC8sIFwiJDFcIik7XG4gICAgfVxuXG4gICAgbWVtb1twYXJhbU5hbWVdID0gc2FmZWx5RGVjb2RlVVJJQ29tcG9uZW50KGNhcHR1cmVHcm91cHNbaW5kZXhdIHx8IFwiXCIsIHBhcmFtTmFtZSk7XG4gICAgcmV0dXJuIG1lbW87XG4gIH0sIHt9KTtcbiAgcmV0dXJuIHtcbiAgICBwYXJhbXMsXG4gICAgcGF0aG5hbWU6IG1hdGNoZWRQYXRobmFtZSxcbiAgICBwYXRobmFtZUJhc2UsXG4gICAgcGF0dGVyblxuICB9O1xufVxuXG5mdW5jdGlvbiBjb21waWxlUGF0aChwYXRoLCBjYXNlU2Vuc2l0aXZlLCBlbmQpIHtcbiAgaWYgKGNhc2VTZW5zaXRpdmUgPT09IHZvaWQgMCkge1xuICAgIGNhc2VTZW5zaXRpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChlbmQgPT09IHZvaWQgMCkge1xuICAgIGVuZCA9IHRydWU7XG4gIH1cblxuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKHBhdGggPT09IFwiKlwiIHx8ICFwYXRoLmVuZHNXaXRoKFwiKlwiKSB8fCBwYXRoLmVuZHNXaXRoKFwiLypcIiksIFwiUm91dGUgcGF0aCBcXFwiXCIgKyBwYXRoICsgXCJcXFwiIHdpbGwgYmUgdHJlYXRlZCBhcyBpZiBpdCB3ZXJlIFwiICsgKFwiXFxcIlwiICsgcGF0aC5yZXBsYWNlKC9cXCokLywgXCIvKlwiKSArIFwiXFxcIiBiZWNhdXNlIHRoZSBgKmAgY2hhcmFjdGVyIG11c3QgXCIpICsgXCJhbHdheXMgZm9sbG93IGEgYC9gIGluIHRoZSBwYXR0ZXJuLiBUbyBnZXQgcmlkIG9mIHRoaXMgd2FybmluZywgXCIgKyAoXCJwbGVhc2UgY2hhbmdlIHRoZSByb3V0ZSBwYXRoIHRvIFxcXCJcIiArIHBhdGgucmVwbGFjZSgvXFwqJC8sIFwiLypcIikgKyBcIlxcXCIuXCIpKSA6IHZvaWQgMDtcbiAgbGV0IHBhcmFtTmFtZXMgPSBbXTtcbiAgbGV0IHJlZ2V4cFNvdXJjZSA9IFwiXlwiICsgcGF0aC5yZXBsYWNlKC9cXC8qXFwqPyQvLCBcIlwiKSAvLyBJZ25vcmUgdHJhaWxpbmcgLyBhbmQgLyosIHdlJ2xsIGhhbmRsZSBpdCBiZWxvd1xuICAucmVwbGFjZSgvXlxcLyovLCBcIi9cIikgLy8gTWFrZSBzdXJlIGl0IGhhcyBhIGxlYWRpbmcgL1xuICAucmVwbGFjZSgvW1xcXFwuKiteJD97fXwoKVtcXF1dL2csIFwiXFxcXCQmXCIpIC8vIEVzY2FwZSBzcGVjaWFsIHJlZ2V4IGNoYXJzXG4gIC5yZXBsYWNlKC86KFxcdyspL2csIChfLCBwYXJhbU5hbWUpID0+IHtcbiAgICBwYXJhbU5hbWVzLnB1c2gocGFyYW1OYW1lKTtcbiAgICByZXR1cm4gXCIoW15cXFxcL10rKVwiO1xuICB9KTtcblxuICBpZiAocGF0aC5lbmRzV2l0aChcIipcIikpIHtcbiAgICBwYXJhbU5hbWVzLnB1c2goXCIqXCIpO1xuICAgIHJlZ2V4cFNvdXJjZSArPSBwYXRoID09PSBcIipcIiB8fCBwYXRoID09PSBcIi8qXCIgPyBcIiguKikkXCIgLy8gQWxyZWFkeSBtYXRjaGVkIHRoZSBpbml0aWFsIC8sIGp1c3QgbWF0Y2ggdGhlIHJlc3RcbiAgICA6IFwiKD86XFxcXC8oLispfFxcXFwvKikkXCI7IC8vIERvbid0IGluY2x1ZGUgdGhlIC8gaW4gcGFyYW1zW1wiKlwiXVxuICB9IGVsc2Uge1xuICAgIHJlZ2V4cFNvdXJjZSArPSBlbmQgPyBcIlxcXFwvKiRcIiAvLyBXaGVuIG1hdGNoaW5nIHRvIHRoZSBlbmQsIGlnbm9yZSB0cmFpbGluZyBzbGFzaGVzXG4gICAgOiAvLyBPdGhlcndpc2UsIG1hdGNoIGEgd29yZCBib3VuZGFyeSBvciBhIHByb2NlZWRpbmcgLy4gVGhlIHdvcmQgYm91bmRhcnkgcmVzdHJpY3RzXG4gICAgLy8gcGFyZW50IHJvdXRlcyB0byBtYXRjaGluZyBvbmx5IHRoZWlyIG93biB3b3JkcyBhbmQgbm90aGluZyBtb3JlLCBlLmcuIHBhcmVudFxuICAgIC8vIHJvdXRlIFwiL2hvbWVcIiBzaG91bGQgbm90IG1hdGNoIFwiL2hvbWUyXCIuXG4gICAgLy8gQWRkaXRpb25hbGx5LCBhbGxvdyBwYXRocyBzdGFydGluZyB3aXRoIGAuYCwgYC1gLCBgfmAsIGFuZCB1cmwtZW5jb2RlZCBlbnRpdGllcyxcbiAgICAvLyBidXQgZG8gbm90IGNvbnN1bWUgdGhlIGNoYXJhY3RlciBpbiB0aGUgbWF0Y2hlZCBwYXRoIHNvIHRoZXkgY2FuIG1hdGNoIGFnYWluc3RcbiAgICAvLyBuZXN0ZWQgcGF0aHMuXG4gICAgXCIoPzooPz1bLn4tXXwlWzAtOUEtRl17Mn0pfFxcXFxifFxcXFwvfCQpXCI7XG4gIH1cblxuICBsZXQgbWF0Y2hlciA9IG5ldyBSZWdFeHAocmVnZXhwU291cmNlLCBjYXNlU2Vuc2l0aXZlID8gdW5kZWZpbmVkIDogXCJpXCIpO1xuICByZXR1cm4gW21hdGNoZXIsIHBhcmFtTmFtZXNdO1xufVxuXG5mdW5jdGlvbiBzYWZlbHlEZWNvZGVVUklDb21wb25lbnQodmFsdWUsIHBhcmFtTmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoZmFsc2UsIFwiVGhlIHZhbHVlIGZvciB0aGUgVVJMIHBhcmFtIFxcXCJcIiArIHBhcmFtTmFtZSArIFwiXFxcIiB3aWxsIG5vdCBiZSBkZWNvZGVkIGJlY2F1c2VcIiArIChcIiB0aGUgc3RyaW5nIFxcXCJcIiArIHZhbHVlICsgXCJcXFwiIGlzIGEgbWFsZm9ybWVkIFVSTCBzZWdtZW50LiBUaGlzIGlzIHByb2JhYmx5XCIpICsgKFwiIGR1ZSB0byBhIGJhZCBwZXJjZW50IGVuY29kaW5nIChcIiArIGVycm9yICsgXCIpLlwiKSkgOiB2b2lkIDA7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4vKipcbiAqIFJldHVybnMgYSByZXNvbHZlZCBwYXRoIG9iamVjdCByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gcGF0aG5hbWUuXG4gKlxuICogQHNlZSBodHRwczovL3JlYWN0cm91dGVyLmNvbS9kb2NzL2VuL3Y2L2FwaSNyZXNvbHZlcGF0aFxuICovXG5cblxuZnVuY3Rpb24gcmVzb2x2ZVBhdGgodG8sIGZyb21QYXRobmFtZSkge1xuICBpZiAoZnJvbVBhdGhuYW1lID09PSB2b2lkIDApIHtcbiAgICBmcm9tUGF0aG5hbWUgPSBcIi9cIjtcbiAgfVxuXG4gIGxldCB7XG4gICAgcGF0aG5hbWU6IHRvUGF0aG5hbWUsXG4gICAgc2VhcmNoID0gXCJcIixcbiAgICBoYXNoID0gXCJcIlxuICB9ID0gdHlwZW9mIHRvID09PSBcInN0cmluZ1wiID8gcGFyc2VQYXRoKHRvKSA6IHRvO1xuICBsZXQgcGF0aG5hbWUgPSB0b1BhdGhuYW1lID8gdG9QYXRobmFtZS5zdGFydHNXaXRoKFwiL1wiKSA/IHRvUGF0aG5hbWUgOiByZXNvbHZlUGF0aG5hbWUodG9QYXRobmFtZSwgZnJvbVBhdGhuYW1lKSA6IGZyb21QYXRobmFtZTtcbiAgcmV0dXJuIHtcbiAgICBwYXRobmFtZSxcbiAgICBzZWFyY2g6IG5vcm1hbGl6ZVNlYXJjaChzZWFyY2gpLFxuICAgIGhhc2g6IG5vcm1hbGl6ZUhhc2goaGFzaClcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVBhdGhuYW1lKHJlbGF0aXZlUGF0aCwgZnJvbVBhdGhuYW1lKSB7XG4gIGxldCBzZWdtZW50cyA9IGZyb21QYXRobmFtZS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpLnNwbGl0KFwiL1wiKTtcbiAgbGV0IHJlbGF0aXZlU2VnbWVudHMgPSByZWxhdGl2ZVBhdGguc3BsaXQoXCIvXCIpO1xuICByZWxhdGl2ZVNlZ21lbnRzLmZvckVhY2goc2VnbWVudCA9PiB7XG4gICAgaWYgKHNlZ21lbnQgPT09IFwiLi5cIikge1xuICAgICAgLy8gS2VlcCB0aGUgcm9vdCBcIlwiIHNlZ21lbnQgc28gdGhlIHBhdGhuYW1lIHN0YXJ0cyBhdCAvXG4gICAgICBpZiAoc2VnbWVudHMubGVuZ3RoID4gMSkgc2VnbWVudHMucG9wKCk7XG4gICAgfSBlbHNlIGlmIChzZWdtZW50ICE9PSBcIi5cIikge1xuICAgICAgc2VnbWVudHMucHVzaChzZWdtZW50KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc2VnbWVudHMubGVuZ3RoID4gMSA/IHNlZ21lbnRzLmpvaW4oXCIvXCIpIDogXCIvXCI7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVUbyh0b0FyZywgcm91dGVQYXRobmFtZXMsIGxvY2F0aW9uUGF0aG5hbWUpIHtcbiAgbGV0IHRvID0gdHlwZW9mIHRvQXJnID09PSBcInN0cmluZ1wiID8gcGFyc2VQYXRoKHRvQXJnKSA6IHRvQXJnO1xuICBsZXQgdG9QYXRobmFtZSA9IHRvQXJnID09PSBcIlwiIHx8IHRvLnBhdGhuYW1lID09PSBcIlwiID8gXCIvXCIgOiB0by5wYXRobmFtZTsgLy8gSWYgYSBwYXRobmFtZSBpcyBleHBsaWNpdGx5IHByb3ZpZGVkIGluIGB0b2AsIGl0IHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGVcbiAgLy8gcm91dGUgY29udGV4dC4gVGhpcyBpcyBleHBsYWluZWQgaW4gYE5vdGUgb24gYDxMaW5rIHRvPmAgdmFsdWVzYCBpbiBvdXJcbiAgLy8gbWlncmF0aW9uIGd1aWRlIGZyb20gdjUgYXMgYSBtZWFucyBvZiBkaXNhbWJpZ3VhdGlvbiBiZXR3ZWVuIGB0b2AgdmFsdWVzXG4gIC8vIHRoYXQgYmVnaW4gd2l0aCBgL2AgYW5kIHRob3NlIHRoYXQgZG8gbm90LiBIb3dldmVyLCB0aGlzIGlzIHByb2JsZW1hdGljIGZvclxuICAvLyBgdG9gIHZhbHVlcyB0aGF0IGRvIG5vdCBwcm92aWRlIGEgcGF0aG5hbWUuIGB0b2AgY2FuIHNpbXBseSBiZSBhIHNlYXJjaCBvclxuICAvLyBoYXNoIHN0cmluZywgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgYXNzdW1lIHRoYXQgdGhlIG5hdmlnYXRpb24gaXMgcmVsYXRpdmVcbiAgLy8gdG8gdGhlIGN1cnJlbnQgbG9jYXRpb24ncyBwYXRobmFtZSBhbmQgKm5vdCogdGhlIHJvdXRlIHBhdGhuYW1lLlxuXG4gIGxldCBmcm9tO1xuXG4gIGlmICh0b1BhdGhuYW1lID09IG51bGwpIHtcbiAgICBmcm9tID0gbG9jYXRpb25QYXRobmFtZTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgcm91dGVQYXRobmFtZUluZGV4ID0gcm91dGVQYXRobmFtZXMubGVuZ3RoIC0gMTtcblxuICAgIGlmICh0b1BhdGhuYW1lLnN0YXJ0c1dpdGgoXCIuLlwiKSkge1xuICAgICAgbGV0IHRvU2VnbWVudHMgPSB0b1BhdGhuYW1lLnNwbGl0KFwiL1wiKTsgLy8gRWFjaCBsZWFkaW5nIC4uIHNlZ21lbnQgbWVhbnMgXCJnbyB1cCBvbmUgcm91dGVcIiBpbnN0ZWFkIG9mIFwiZ28gdXAgb25lXG4gICAgICAvLyBVUkwgc2VnbWVudFwiLiAgVGhpcyBpcyBhIGtleSBkaWZmZXJlbmNlIGZyb20gaG93IDxhIGhyZWY+IHdvcmtzIGFuZCBhXG4gICAgICAvLyBtYWpvciByZWFzb24gd2UgY2FsbCB0aGlzIGEgXCJ0b1wiIHZhbHVlIGluc3RlYWQgb2YgYSBcImhyZWZcIi5cblxuICAgICAgd2hpbGUgKHRvU2VnbWVudHNbMF0gPT09IFwiLi5cIikge1xuICAgICAgICB0b1NlZ21lbnRzLnNoaWZ0KCk7XG4gICAgICAgIHJvdXRlUGF0aG5hbWVJbmRleCAtPSAxO1xuICAgICAgfVxuXG4gICAgICB0by5wYXRobmFtZSA9IHRvU2VnbWVudHMuam9pbihcIi9cIik7XG4gICAgfSAvLyBJZiB0aGVyZSBhcmUgbW9yZSBcIi4uXCIgc2VnbWVudHMgdGhhbiBwYXJlbnQgcm91dGVzLCByZXNvbHZlIHJlbGF0aXZlIHRvXG4gICAgLy8gdGhlIHJvb3QgLyBVUkwuXG5cblxuICAgIGZyb20gPSByb3V0ZVBhdGhuYW1lSW5kZXggPj0gMCA/IHJvdXRlUGF0aG5hbWVzW3JvdXRlUGF0aG5hbWVJbmRleF0gOiBcIi9cIjtcbiAgfVxuXG4gIGxldCBwYXRoID0gcmVzb2x2ZVBhdGgodG8sIGZyb20pOyAvLyBFbnN1cmUgdGhlIHBhdGhuYW1lIGhhcyBhIHRyYWlsaW5nIHNsYXNoIGlmIHRoZSBvcmlnaW5hbCB0byB2YWx1ZSBoYWQgb25lLlxuXG4gIGlmICh0b1BhdGhuYW1lICYmIHRvUGF0aG5hbWUgIT09IFwiL1wiICYmIHRvUGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpICYmICFwYXRoLnBhdGhuYW1lLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgIHBhdGgucGF0aG5hbWUgKz0gXCIvXCI7XG4gIH1cblxuICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGdldFRvUGF0aG5hbWUodG8pIHtcbiAgLy8gRW1wdHkgc3RyaW5ncyBzaG91bGQgYmUgdHJlYXRlZCB0aGUgc2FtZSBhcyAvIHBhdGhzXG4gIHJldHVybiB0byA9PT0gXCJcIiB8fCB0by5wYXRobmFtZSA9PT0gXCJcIiA/IFwiL1wiIDogdHlwZW9mIHRvID09PSBcInN0cmluZ1wiID8gcGFyc2VQYXRoKHRvKS5wYXRobmFtZSA6IHRvLnBhdGhuYW1lO1xufVxuZnVuY3Rpb24gc3RyaXBCYXNlbmFtZShwYXRobmFtZSwgYmFzZW5hbWUpIHtcbiAgaWYgKGJhc2VuYW1lID09PSBcIi9cIikgcmV0dXJuIHBhdGhuYW1lO1xuXG4gIGlmICghcGF0aG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGJhc2VuYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBsZXQgbmV4dENoYXIgPSBwYXRobmFtZS5jaGFyQXQoYmFzZW5hbWUubGVuZ3RoKTtcblxuICBpZiAobmV4dENoYXIgJiYgbmV4dENoYXIgIT09IFwiL1wiKSB7XG4gICAgLy8gcGF0aG5hbWUgZG9lcyBub3Qgc3RhcnQgd2l0aCBiYXNlbmFtZS9cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwYXRobmFtZS5zbGljZShiYXNlbmFtZS5sZW5ndGgpIHx8IFwiL1wiO1xufVxuY29uc3Qgam9pblBhdGhzID0gcGF0aHMgPT4gcGF0aHMuam9pbihcIi9cIikucmVwbGFjZSgvXFwvXFwvKy9nLCBcIi9cIik7XG5jb25zdCBub3JtYWxpemVQYXRobmFtZSA9IHBhdGhuYW1lID0+IHBhdGhuYW1lLnJlcGxhY2UoL1xcLyskLywgXCJcIikucmVwbGFjZSgvXlxcLyovLCBcIi9cIik7XG5cbmNvbnN0IG5vcm1hbGl6ZVNlYXJjaCA9IHNlYXJjaCA9PiAhc2VhcmNoIHx8IHNlYXJjaCA9PT0gXCI/XCIgPyBcIlwiIDogc2VhcmNoLnN0YXJ0c1dpdGgoXCI/XCIpID8gc2VhcmNoIDogXCI/XCIgKyBzZWFyY2g7XG5cbmNvbnN0IG5vcm1hbGl6ZUhhc2ggPSBoYXNoID0+ICFoYXNoIHx8IGhhc2ggPT09IFwiI1wiID8gXCJcIiA6IGhhc2guc3RhcnRzV2l0aChcIiNcIikgPyBoYXNoIDogXCIjXCIgKyBoYXNoO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGZ1bGwgaHJlZiBmb3IgdGhlIGdpdmVuIFwidG9cIiB2YWx1ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGJ1aWxkaW5nXG4gKiBjdXN0b20gbGlua3MgdGhhdCBhcmUgYWxzbyBhY2Nlc3NpYmxlIGFuZCBwcmVzZXJ2ZSByaWdodC1jbGljayBiZWhhdmlvci5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZWhyZWZcbiAqL1xuXG5mdW5jdGlvbiB1c2VIcmVmKHRvKSB7XG4gICF1c2VJblJvdXRlckNvbnRleHQoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgLy8gVE9ETzogVGhpcyBlcnJvciBpcyBwcm9iYWJseSBiZWNhdXNlIHRoZXkgc29tZWhvdyBoYXZlIDIgdmVyc2lvbnMgb2YgdGhlXG4gIC8vIHJvdXRlciBsb2FkZWQuIFdlIGNhbiBoZWxwIHRoZW0gdW5kZXJzdGFuZCBob3cgdG8gYXZvaWQgdGhhdC5cbiAgXCJ1c2VIcmVmKCkgbWF5IGJlIHVzZWQgb25seSBpbiB0aGUgY29udGV4dCBvZiBhIDxSb3V0ZXI+IGNvbXBvbmVudC5cIikgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICBsZXQge1xuICAgIGJhc2VuYW1lLFxuICAgIG5hdmlnYXRvclxuICB9ID0gdXNlQ29udGV4dChOYXZpZ2F0aW9uQ29udGV4dCk7XG4gIGxldCB7XG4gICAgaGFzaCxcbiAgICBwYXRobmFtZSxcbiAgICBzZWFyY2hcbiAgfSA9IHVzZVJlc29sdmVkUGF0aCh0byk7XG4gIGxldCBqb2luZWRQYXRobmFtZSA9IHBhdGhuYW1lO1xuXG4gIGlmIChiYXNlbmFtZSAhPT0gXCIvXCIpIHtcbiAgICBsZXQgdG9QYXRobmFtZSA9IGdldFRvUGF0aG5hbWUodG8pO1xuICAgIGxldCBlbmRzV2l0aFNsYXNoID0gdG9QYXRobmFtZSAhPSBudWxsICYmIHRvUGF0aG5hbWUuZW5kc1dpdGgoXCIvXCIpO1xuICAgIGpvaW5lZFBhdGhuYW1lID0gcGF0aG5hbWUgPT09IFwiL1wiID8gYmFzZW5hbWUgKyAoZW5kc1dpdGhTbGFzaCA/IFwiL1wiIDogXCJcIikgOiBqb2luUGF0aHMoW2Jhc2VuYW1lLCBwYXRobmFtZV0pO1xuICB9XG5cbiAgcmV0dXJuIG5hdmlnYXRvci5jcmVhdGVIcmVmKHtcbiAgICBwYXRobmFtZTogam9pbmVkUGF0aG5hbWUsXG4gICAgc2VhcmNoLFxuICAgIGhhc2hcbiAgfSk7XG59XG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbXBvbmVudCBpcyBhIGRlc2NlbmRhbnQgb2YgYSA8Um91dGVyPi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZWlucm91dGVyY29udGV4dFxuICovXG5cbmZ1bmN0aW9uIHVzZUluUm91dGVyQ29udGV4dCgpIHtcbiAgcmV0dXJuIHVzZUNvbnRleHQoTG9jYXRpb25Db250ZXh0KSAhPSBudWxsO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvY2F0aW9uIG9iamVjdCwgd2hpY2ggcmVwcmVzZW50cyB0aGUgY3VycmVudCBVUkwgaW4gd2ViXG4gKiBicm93c2Vycy5cbiAqXG4gKiBOb3RlOiBJZiB5b3UncmUgdXNpbmcgdGhpcyBpdCBtYXkgbWVhbiB5b3UncmUgZG9pbmcgc29tZSBvZiB5b3VyIG93blxuICogXCJyb3V0aW5nXCIgaW4geW91ciBhcHAsIGFuZCB3ZSdkIGxpa2UgdG8ga25vdyB3aGF0IHlvdXIgdXNlIGNhc2UgaXMuIFdlIG1heVxuICogYmUgYWJsZSB0byBwcm92aWRlIHNvbWV0aGluZyBoaWdoZXItbGV2ZWwgdG8gYmV0dGVyIHN1aXQgeW91ciBuZWVkcy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZWxvY2F0aW9uXG4gKi9cblxuZnVuY3Rpb24gdXNlTG9jYXRpb24oKSB7XG4gICF1c2VJblJvdXRlckNvbnRleHQoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgLy8gVE9ETzogVGhpcyBlcnJvciBpcyBwcm9iYWJseSBiZWNhdXNlIHRoZXkgc29tZWhvdyBoYXZlIDIgdmVyc2lvbnMgb2YgdGhlXG4gIC8vIHJvdXRlciBsb2FkZWQuIFdlIGNhbiBoZWxwIHRoZW0gdW5kZXJzdGFuZCBob3cgdG8gYXZvaWQgdGhhdC5cbiAgXCJ1c2VMb2NhdGlvbigpIG1heSBiZSB1c2VkIG9ubHkgaW4gdGhlIGNvbnRleHQgb2YgYSA8Um91dGVyPiBjb21wb25lbnQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgcmV0dXJuIHVzZUNvbnRleHQoTG9jYXRpb25Db250ZXh0KS5sb2NhdGlvbjtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBuYXZpZ2F0aW9uIGFjdGlvbiB3aGljaCBkZXNjcmliZXMgaG93IHRoZSByb3V0ZXIgY2FtZSB0b1xuICogdGhlIGN1cnJlbnQgbG9jYXRpb24sIGVpdGhlciBieSBhIHBvcCwgcHVzaCwgb3IgcmVwbGFjZSBvbiB0aGUgaGlzdG9yeSBzdGFjay5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZW5hdmlnYXRpb250eXBlXG4gKi9cblxuZnVuY3Rpb24gdXNlTmF2aWdhdGlvblR5cGUoKSB7XG4gIHJldHVybiB1c2VDb250ZXh0KExvY2F0aW9uQ29udGV4dCkubmF2aWdhdGlvblR5cGU7XG59XG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgVVJMIGZvciB0aGUgZ2l2ZW4gXCJ0b1wiIHZhbHVlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVVJMLlxuICogVGhpcyBpcyB1c2VmdWwgZm9yIGNvbXBvbmVudHMgdGhhdCBuZWVkIHRvIGtub3cgXCJhY3RpdmVcIiBzdGF0ZSwgZS5nLlxuICogPE5hdkxpbms+LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjdXNlbWF0Y2hcbiAqL1xuXG5mdW5jdGlvbiB1c2VNYXRjaChwYXR0ZXJuKSB7XG4gICF1c2VJblJvdXRlckNvbnRleHQoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgLy8gVE9ETzogVGhpcyBlcnJvciBpcyBwcm9iYWJseSBiZWNhdXNlIHRoZXkgc29tZWhvdyBoYXZlIDIgdmVyc2lvbnMgb2YgdGhlXG4gIC8vIHJvdXRlciBsb2FkZWQuIFdlIGNhbiBoZWxwIHRoZW0gdW5kZXJzdGFuZCBob3cgdG8gYXZvaWQgdGhhdC5cbiAgXCJ1c2VNYXRjaCgpIG1heSBiZSB1c2VkIG9ubHkgaW4gdGhlIGNvbnRleHQgb2YgYSA8Um91dGVyPiBjb21wb25lbnQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgbGV0IHtcbiAgICBwYXRobmFtZVxuICB9ID0gdXNlTG9jYXRpb24oKTtcbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gbWF0Y2hQYXRoKHBhdHRlcm4sIHBhdGhuYW1lKSwgW3BhdGhuYW1lLCBwYXR0ZXJuXSk7XG59XG4vKipcbiAqIFRoZSBpbnRlcmZhY2UgZm9yIHRoZSBuYXZpZ2F0ZSgpIGZ1bmN0aW9uIHJldHVybmVkIGZyb20gdXNlTmF2aWdhdGUoKS5cbiAqL1xuXG4vKipcbiAqIFJldHVybnMgYW4gaW1wZXJhdGl2ZSBtZXRob2QgZm9yIGNoYW5naW5nIHRoZSBsb2NhdGlvbi4gVXNlZCBieSA8TGluaz5zLCBidXRcbiAqIG1heSBhbHNvIGJlIHVzZWQgYnkgb3RoZXIgZWxlbWVudHMgdG8gY2hhbmdlIHRoZSBsb2NhdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZW5hdmlnYXRlXG4gKi9cbmZ1bmN0aW9uIHVzZU5hdmlnYXRlKCkge1xuICAhdXNlSW5Sb3V0ZXJDb250ZXh0KCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIC8vIFRPRE86IFRoaXMgZXJyb3IgaXMgcHJvYmFibHkgYmVjYXVzZSB0aGV5IHNvbWVob3cgaGF2ZSAyIHZlcnNpb25zIG9mIHRoZVxuICAvLyByb3V0ZXIgbG9hZGVkLiBXZSBjYW4gaGVscCB0aGVtIHVuZGVyc3RhbmQgaG93IHRvIGF2b2lkIHRoYXQuXG4gIFwidXNlTmF2aWdhdGUoKSBtYXkgYmUgdXNlZCBvbmx5IGluIHRoZSBjb250ZXh0IG9mIGEgPFJvdXRlcj4gY29tcG9uZW50LlwiKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIGxldCB7XG4gICAgYmFzZW5hbWUsXG4gICAgbmF2aWdhdG9yXG4gIH0gPSB1c2VDb250ZXh0KE5hdmlnYXRpb25Db250ZXh0KTtcbiAgbGV0IHtcbiAgICBtYXRjaGVzXG4gIH0gPSB1c2VDb250ZXh0KFJvdXRlQ29udGV4dCk7XG4gIGxldCB7XG4gICAgcGF0aG5hbWU6IGxvY2F0aW9uUGF0aG5hbWVcbiAgfSA9IHVzZUxvY2F0aW9uKCk7XG4gIGxldCByb3V0ZVBhdGhuYW1lc0pzb24gPSBKU09OLnN0cmluZ2lmeShtYXRjaGVzLm1hcChtYXRjaCA9PiBtYXRjaC5wYXRobmFtZUJhc2UpKTtcbiAgbGV0IGFjdGl2ZVJlZiA9IHVzZVJlZihmYWxzZSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYWN0aXZlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICB9KTtcbiAgbGV0IG5hdmlnYXRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHRvLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoYWN0aXZlUmVmLmN1cnJlbnQsIFwiWW91IHNob3VsZCBjYWxsIG5hdmlnYXRlKCkgaW4gYSBSZWFjdC51c2VFZmZlY3QoKSwgbm90IHdoZW4gXCIgKyBcInlvdXIgY29tcG9uZW50IGlzIGZpcnN0IHJlbmRlcmVkLlwiKSA6IHZvaWQgMDtcbiAgICBpZiAoIWFjdGl2ZVJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBpZiAodHlwZW9mIHRvID09PSBcIm51bWJlclwiKSB7XG4gICAgICBuYXZpZ2F0b3IuZ28odG8pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwYXRoID0gcmVzb2x2ZVRvKHRvLCBKU09OLnBhcnNlKHJvdXRlUGF0aG5hbWVzSnNvbiksIGxvY2F0aW9uUGF0aG5hbWUpO1xuXG4gICAgaWYgKGJhc2VuYW1lICE9PSBcIi9cIikge1xuICAgICAgcGF0aC5wYXRobmFtZSA9IGpvaW5QYXRocyhbYmFzZW5hbWUsIHBhdGgucGF0aG5hbWVdKTtcbiAgICB9XG5cbiAgICAoISFvcHRpb25zLnJlcGxhY2UgPyBuYXZpZ2F0b3IucmVwbGFjZSA6IG5hdmlnYXRvci5wdXNoKShwYXRoLCBvcHRpb25zLnN0YXRlKTtcbiAgfSwgW2Jhc2VuYW1lLCBuYXZpZ2F0b3IsIHJvdXRlUGF0aG5hbWVzSnNvbiwgbG9jYXRpb25QYXRobmFtZV0pO1xuICByZXR1cm4gbmF2aWdhdGU7XG59XG5jb25zdCBPdXRsZXRDb250ZXh0ID0gLyojX19QVVJFX18qL2NyZWF0ZUNvbnRleHQobnVsbCk7XG4vKipcbiAqIFJldHVybnMgdGhlIGNvbnRleHQgKGlmIHByb3ZpZGVkKSBmb3IgdGhlIGNoaWxkIHJvdXRlIGF0IHRoaXMgbGV2ZWwgb2YgdGhlIHJvdXRlXG4gKiBoaWVyYXJjaHkuXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZW91dGxldGNvbnRleHRcbiAqL1xuXG5mdW5jdGlvbiB1c2VPdXRsZXRDb250ZXh0KCkge1xuICByZXR1cm4gdXNlQ29udGV4dChPdXRsZXRDb250ZXh0KTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZWxlbWVudCBmb3IgdGhlIGNoaWxkIHJvdXRlIGF0IHRoaXMgbGV2ZWwgb2YgdGhlIHJvdXRlXG4gKiBoaWVyYXJjaHkuIFVzZWQgaW50ZXJuYWxseSBieSA8T3V0bGV0PiB0byByZW5kZXIgY2hpbGQgcm91dGVzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjdXNlb3V0bGV0XG4gKi9cblxuZnVuY3Rpb24gdXNlT3V0bGV0KGNvbnRleHQpIHtcbiAgbGV0IG91dGxldCA9IHVzZUNvbnRleHQoUm91dGVDb250ZXh0KS5vdXRsZXQ7XG5cbiAgaWYgKG91dGxldCkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChPdXRsZXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogY29udGV4dFxuICAgIH0sIG91dGxldCk7XG4gIH1cblxuICByZXR1cm4gb3V0bGV0O1xufVxuLyoqXG4gKiBSZXR1cm5zIGFuIG9iamVjdCBvZiBrZXkvdmFsdWUgcGFpcnMgb2YgdGhlIGR5bmFtaWMgcGFyYW1zIGZyb20gdGhlIGN1cnJlbnRcbiAqIFVSTCB0aGF0IHdlcmUgbWF0Y2hlZCBieSB0aGUgcm91dGUgcGF0aC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI3VzZXBhcmFtc1xuICovXG5cbmZ1bmN0aW9uIHVzZVBhcmFtcygpIHtcbiAgbGV0IHtcbiAgICBtYXRjaGVzXG4gIH0gPSB1c2VDb250ZXh0KFJvdXRlQ29udGV4dCk7XG4gIGxldCByb3V0ZU1hdGNoID0gbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdO1xuICByZXR1cm4gcm91dGVNYXRjaCA/IHJvdXRlTWF0Y2gucGFyYW1zIDoge307XG59XG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRobmFtZSBvZiB0aGUgZ2l2ZW4gYHRvYCB2YWx1ZSBhZ2FpbnN0IHRoZSBjdXJyZW50IGxvY2F0aW9uLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjdXNlcmVzb2x2ZWRwYXRoXG4gKi9cblxuZnVuY3Rpb24gdXNlUmVzb2x2ZWRQYXRoKHRvKSB7XG4gIGxldCB7XG4gICAgbWF0Y2hlc1xuICB9ID0gdXNlQ29udGV4dChSb3V0ZUNvbnRleHQpO1xuICBsZXQge1xuICAgIHBhdGhuYW1lOiBsb2NhdGlvblBhdGhuYW1lXG4gIH0gPSB1c2VMb2NhdGlvbigpO1xuICBsZXQgcm91dGVQYXRobmFtZXNKc29uID0gSlNPTi5zdHJpbmdpZnkobWF0Y2hlcy5tYXAobWF0Y2ggPT4gbWF0Y2gucGF0aG5hbWVCYXNlKSk7XG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHJlc29sdmVUbyh0bywgSlNPTi5wYXJzZShyb3V0ZVBhdGhuYW1lc0pzb24pLCBsb2NhdGlvblBhdGhuYW1lKSwgW3RvLCByb3V0ZVBhdGhuYW1lc0pzb24sIGxvY2F0aW9uUGF0aG5hbWVdKTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZWxlbWVudCBvZiB0aGUgcm91dGUgdGhhdCBtYXRjaGVkIHRoZSBjdXJyZW50IGxvY2F0aW9uLCBwcmVwYXJlZFxuICogd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0IHRvIHJlbmRlciB0aGUgcmVtYWluZGVyIG9mIHRoZSByb3V0ZSB0cmVlLiBSb3V0ZVxuICogZWxlbWVudHMgaW4gdGhlIHRyZWUgbXVzdCByZW5kZXIgYW4gPE91dGxldD4gdG8gcmVuZGVyIHRoZWlyIGNoaWxkIHJvdXRlJ3NcbiAqIGVsZW1lbnQuXG4gKlxuICogQHNlZSBodHRwczovL3JlYWN0cm91dGVyLmNvbS9kb2NzL2VuL3Y2L2FwaSN1c2Vyb3V0ZXNcbiAqL1xuXG5mdW5jdGlvbiB1c2VSb3V0ZXMocm91dGVzLCBsb2NhdGlvbkFyZykge1xuICAhdXNlSW5Sb3V0ZXJDb250ZXh0KCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIC8vIFRPRE86IFRoaXMgZXJyb3IgaXMgcHJvYmFibHkgYmVjYXVzZSB0aGV5IHNvbWVob3cgaGF2ZSAyIHZlcnNpb25zIG9mIHRoZVxuICAvLyByb3V0ZXIgbG9hZGVkLiBXZSBjYW4gaGVscCB0aGVtIHVuZGVyc3RhbmQgaG93IHRvIGF2b2lkIHRoYXQuXG4gIFwidXNlUm91dGVzKCkgbWF5IGJlIHVzZWQgb25seSBpbiB0aGUgY29udGV4dCBvZiBhIDxSb3V0ZXI+IGNvbXBvbmVudC5cIikgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICBsZXQge1xuICAgIG1hdGNoZXM6IHBhcmVudE1hdGNoZXNcbiAgfSA9IHVzZUNvbnRleHQoUm91dGVDb250ZXh0KTtcbiAgbGV0IHJvdXRlTWF0Y2ggPSBwYXJlbnRNYXRjaGVzW3BhcmVudE1hdGNoZXMubGVuZ3RoIC0gMV07XG4gIGxldCBwYXJlbnRQYXJhbXMgPSByb3V0ZU1hdGNoID8gcm91dGVNYXRjaC5wYXJhbXMgOiB7fTtcbiAgbGV0IHBhcmVudFBhdGhuYW1lID0gcm91dGVNYXRjaCA/IHJvdXRlTWF0Y2gucGF0aG5hbWUgOiBcIi9cIjtcbiAgbGV0IHBhcmVudFBhdGhuYW1lQmFzZSA9IHJvdXRlTWF0Y2ggPyByb3V0ZU1hdGNoLnBhdGhuYW1lQmFzZSA6IFwiL1wiO1xuICBsZXQgcGFyZW50Um91dGUgPSByb3V0ZU1hdGNoICYmIHJvdXRlTWF0Y2gucm91dGU7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIFlvdSB3b24ndCBnZXQgYSB3YXJuaW5nIGFib3V0IDIgZGlmZmVyZW50IDxSb3V0ZXM+IHVuZGVyIGEgPFJvdXRlPlxuICAgIC8vIHdpdGhvdXQgYSB0cmFpbGluZyAqLCBidXQgdGhpcyBpcyBhIGJlc3QtZWZmb3J0IHdhcm5pbmcgYW55d2F5IHNpbmNlIHdlXG4gICAgLy8gY2Fubm90IGV2ZW4gZ2l2ZSB0aGUgd2FybmluZyB1bmxlc3MgdGhleSBsYW5kIGF0IHRoZSBwYXJlbnQgcm91dGUuXG4gICAgLy9cbiAgICAvLyBFeGFtcGxlOlxuICAgIC8vXG4gICAgLy8gPFJvdXRlcz5cbiAgICAvLyAgIHsvKiBUaGlzIHJvdXRlIHBhdGggTVVTVCBlbmQgd2l0aCAvKiBiZWNhdXNlIG90aGVyd2lzZVxuICAgIC8vICAgICAgIGl0IHdpbGwgbmV2ZXIgbWF0Y2ggL2Jsb2cvcG9zdC8xMjMgKi99XG4gICAgLy8gICA8Um91dGUgcGF0aD1cImJsb2dcIiBlbGVtZW50PXs8QmxvZyAvPn0gLz5cbiAgICAvLyAgIDxSb3V0ZSBwYXRoPVwiYmxvZy9mZWVkXCIgZWxlbWVudD17PEJsb2dGZWVkIC8+fSAvPlxuICAgIC8vIDwvUm91dGVzPlxuICAgIC8vXG4gICAgLy8gZnVuY3Rpb24gQmxvZygpIHtcbiAgICAvLyAgIHJldHVybiAoXG4gICAgLy8gICAgIDxSb3V0ZXM+XG4gICAgLy8gICAgICAgPFJvdXRlIHBhdGg9XCJwb3N0LzppZFwiIGVsZW1lbnQ9ezxQb3N0IC8+fSAvPlxuICAgIC8vICAgICA8L1JvdXRlcz5cbiAgICAvLyAgICk7XG4gICAgLy8gfVxuICAgIGxldCBwYXJlbnRQYXRoID0gcGFyZW50Um91dGUgJiYgcGFyZW50Um91dGUucGF0aCB8fCBcIlwiO1xuICAgIHdhcm5pbmdPbmNlKHBhcmVudFBhdGhuYW1lLCAhcGFyZW50Um91dGUgfHwgcGFyZW50UGF0aC5lbmRzV2l0aChcIipcIiksIFwiWW91IHJlbmRlcmVkIGRlc2NlbmRhbnQgPFJvdXRlcz4gKG9yIGNhbGxlZCBgdXNlUm91dGVzKClgKSBhdCBcIiArIChcIlxcXCJcIiArIHBhcmVudFBhdGhuYW1lICsgXCJcXFwiICh1bmRlciA8Um91dGUgcGF0aD1cXFwiXCIgKyBwYXJlbnRQYXRoICsgXCJcXFwiPikgYnV0IHRoZSBcIikgKyBcInBhcmVudCByb3V0ZSBwYXRoIGhhcyBubyB0cmFpbGluZyBcXFwiKlxcXCIuIFRoaXMgbWVhbnMgaWYgeW91IG5hdmlnYXRlIFwiICsgXCJkZWVwZXIsIHRoZSBwYXJlbnQgd29uJ3QgbWF0Y2ggYW55bW9yZSBhbmQgdGhlcmVmb3JlIHRoZSBjaGlsZCBcIiArIFwicm91dGVzIHdpbGwgbmV2ZXIgcmVuZGVyLlxcblxcblwiICsgKFwiUGxlYXNlIGNoYW5nZSB0aGUgcGFyZW50IDxSb3V0ZSBwYXRoPVxcXCJcIiArIHBhcmVudFBhdGggKyBcIlxcXCI+IHRvIDxSb3V0ZSBcIikgKyAoXCJwYXRoPVxcXCJcIiArIChwYXJlbnRQYXRoID09PSBcIi9cIiA/IFwiKlwiIDogcGFyZW50UGF0aCArIFwiLypcIikgKyBcIlxcXCI+LlwiKSk7XG4gIH1cblxuICBsZXQgbG9jYXRpb25Gcm9tQ29udGV4dCA9IHVzZUxvY2F0aW9uKCk7XG4gIGxldCBsb2NhdGlvbjtcblxuICBpZiAobG9jYXRpb25BcmcpIHtcbiAgICB2YXIgX3BhcnNlZExvY2F0aW9uQXJnJHBhO1xuXG4gICAgbGV0IHBhcnNlZExvY2F0aW9uQXJnID0gdHlwZW9mIGxvY2F0aW9uQXJnID09PSBcInN0cmluZ1wiID8gcGFyc2VQYXRoKGxvY2F0aW9uQXJnKSA6IGxvY2F0aW9uQXJnO1xuICAgICEocGFyZW50UGF0aG5hbWVCYXNlID09PSBcIi9cIiB8fCAoKF9wYXJzZWRMb2NhdGlvbkFyZyRwYSA9IHBhcnNlZExvY2F0aW9uQXJnLnBhdGhuYW1lKSA9PSBudWxsID8gdm9pZCAwIDogX3BhcnNlZExvY2F0aW9uQXJnJHBhLnN0YXJ0c1dpdGgocGFyZW50UGF0aG5hbWVCYXNlKSkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCBcIldoZW4gb3ZlcnJpZGluZyB0aGUgbG9jYXRpb24gdXNpbmcgYDxSb3V0ZXMgbG9jYXRpb24+YCBvciBgdXNlUm91dGVzKHJvdXRlcywgbG9jYXRpb24pYCwgXCIgKyBcInRoZSBsb2NhdGlvbiBwYXRobmFtZSBtdXN0IGJlZ2luIHdpdGggdGhlIHBvcnRpb24gb2YgdGhlIFVSTCBwYXRobmFtZSB0aGF0IHdhcyBcIiArIChcIm1hdGNoZWQgYnkgYWxsIHBhcmVudCByb3V0ZXMuIFRoZSBjdXJyZW50IHBhdGhuYW1lIGJhc2UgaXMgXFxcIlwiICsgcGFyZW50UGF0aG5hbWVCYXNlICsgXCJcXFwiIFwiKSArIChcImJ1dCBwYXRobmFtZSBcXFwiXCIgKyBwYXJzZWRMb2NhdGlvbkFyZy5wYXRobmFtZSArIFwiXFxcIiB3YXMgZ2l2ZW4gaW4gdGhlIGBsb2NhdGlvbmAgcHJvcC5cIikpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICBsb2NhdGlvbiA9IHBhcnNlZExvY2F0aW9uQXJnO1xuICB9IGVsc2Uge1xuICAgIGxvY2F0aW9uID0gbG9jYXRpb25Gcm9tQ29udGV4dDtcbiAgfVxuXG4gIGxldCBwYXRobmFtZSA9IGxvY2F0aW9uLnBhdGhuYW1lIHx8IFwiL1wiO1xuICBsZXQgcmVtYWluaW5nUGF0aG5hbWUgPSBwYXJlbnRQYXRobmFtZUJhc2UgPT09IFwiL1wiID8gcGF0aG5hbWUgOiBwYXRobmFtZS5zbGljZShwYXJlbnRQYXRobmFtZUJhc2UubGVuZ3RoKSB8fCBcIi9cIjtcbiAgbGV0IG1hdGNoZXMgPSBtYXRjaFJvdXRlcyhyb3V0ZXMsIHtcbiAgICBwYXRobmFtZTogcmVtYWluaW5nUGF0aG5hbWVcbiAgfSk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcocGFyZW50Um91dGUgfHwgbWF0Y2hlcyAhPSBudWxsLCBcIk5vIHJvdXRlcyBtYXRjaGVkIGxvY2F0aW9uIFxcXCJcIiArIGxvY2F0aW9uLnBhdGhuYW1lICsgbG9jYXRpb24uc2VhcmNoICsgbG9jYXRpb24uaGFzaCArIFwiXFxcIiBcIikgOiB2b2lkIDA7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhtYXRjaGVzID09IG51bGwgfHwgbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdLnJvdXRlLmVsZW1lbnQgIT09IHVuZGVmaW5lZCwgXCJNYXRjaGVkIGxlYWYgcm91dGUgYXQgbG9jYXRpb24gXFxcIlwiICsgbG9jYXRpb24ucGF0aG5hbWUgKyBsb2NhdGlvbi5zZWFyY2ggKyBsb2NhdGlvbi5oYXNoICsgXCJcXFwiIGRvZXMgbm90IGhhdmUgYW4gZWxlbWVudC4gXCIgKyBcIlRoaXMgbWVhbnMgaXQgd2lsbCByZW5kZXIgYW4gPE91dGxldCAvPiB3aXRoIGEgbnVsbCB2YWx1ZSBieSBkZWZhdWx0IHJlc3VsdGluZyBpbiBhbiBcXFwiZW1wdHlcXFwiIHBhZ2UuXCIpIDogdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIF9yZW5kZXJNYXRjaGVzKG1hdGNoZXMgJiYgbWF0Y2hlcy5tYXAobWF0Y2ggPT4gT2JqZWN0LmFzc2lnbih7fSwgbWF0Y2gsIHtcbiAgICBwYXJhbXM6IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudFBhcmFtcywgbWF0Y2gucGFyYW1zKSxcbiAgICBwYXRobmFtZTogam9pblBhdGhzKFtwYXJlbnRQYXRobmFtZUJhc2UsIG1hdGNoLnBhdGhuYW1lXSksXG4gICAgcGF0aG5hbWVCYXNlOiBtYXRjaC5wYXRobmFtZUJhc2UgPT09IFwiL1wiID8gcGFyZW50UGF0aG5hbWVCYXNlIDogam9pblBhdGhzKFtwYXJlbnRQYXRobmFtZUJhc2UsIG1hdGNoLnBhdGhuYW1lQmFzZV0pXG4gIH0pKSwgcGFyZW50TWF0Y2hlcyk7XG59XG5mdW5jdGlvbiBfcmVuZGVyTWF0Y2hlcyhtYXRjaGVzLCBwYXJlbnRNYXRjaGVzKSB7XG4gIGlmIChwYXJlbnRNYXRjaGVzID09PSB2b2lkIDApIHtcbiAgICBwYXJlbnRNYXRjaGVzID0gW107XG4gIH1cblxuICBpZiAobWF0Y2hlcyA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIG1hdGNoZXMucmVkdWNlUmlnaHQoKG91dGxldCwgbWF0Y2gsIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFJvdXRlQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgY2hpbGRyZW46IG1hdGNoLnJvdXRlLmVsZW1lbnQgIT09IHVuZGVmaW5lZCA/IG1hdGNoLnJvdXRlLmVsZW1lbnQgOiBvdXRsZXQsXG4gICAgICB2YWx1ZToge1xuICAgICAgICBvdXRsZXQsXG4gICAgICAgIG1hdGNoZXM6IHBhcmVudE1hdGNoZXMuY29uY2F0KG1hdGNoZXMuc2xpY2UoMCwgaW5kZXggKyAxKSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgbnVsbCk7XG59XG5cbi8qKlxuICogQSA8Um91dGVyPiB0aGF0IHN0b3JlcyBhbGwgZW50cmllcyBpbiBtZW1vcnkuXG4gKlxuICogQHNlZSBodHRwczovL3JlYWN0cm91dGVyLmNvbS9kb2NzL2VuL3Y2L2FwaSNtZW1vcnlyb3V0ZXJcbiAqL1xuZnVuY3Rpb24gTWVtb3J5Um91dGVyKF9yZWYpIHtcbiAgbGV0IHtcbiAgICBiYXNlbmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBpbml0aWFsRW50cmllcyxcbiAgICBpbml0aWFsSW5kZXhcbiAgfSA9IF9yZWY7XG4gIGxldCBoaXN0b3J5UmVmID0gdXNlUmVmKCk7XG5cbiAgaWYgKGhpc3RvcnlSZWYuY3VycmVudCA9PSBudWxsKSB7XG4gICAgaGlzdG9yeVJlZi5jdXJyZW50ID0gY3JlYXRlTWVtb3J5SGlzdG9yeSh7XG4gICAgICBpbml0aWFsRW50cmllcyxcbiAgICAgIGluaXRpYWxJbmRleFxuICAgIH0pO1xuICB9XG5cbiAgbGV0IGhpc3RvcnkgPSBoaXN0b3J5UmVmLmN1cnJlbnQ7XG4gIGxldCBbc3RhdGUsIHNldFN0YXRlXSA9IHVzZVN0YXRlKHtcbiAgICBhY3Rpb246IGhpc3RvcnkuYWN0aW9uLFxuICAgIGxvY2F0aW9uOiBoaXN0b3J5LmxvY2F0aW9uXG4gIH0pO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gaGlzdG9yeS5saXN0ZW4oc2V0U3RhdGUpLCBbaGlzdG9yeV0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoUm91dGVyLCB7XG4gICAgYmFzZW5hbWU6IGJhc2VuYW1lLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBsb2NhdGlvbjogc3RhdGUubG9jYXRpb24sXG4gICAgbmF2aWdhdGlvblR5cGU6IHN0YXRlLmFjdGlvbixcbiAgICBuYXZpZ2F0b3I6IGhpc3RvcnlcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hhbmdlcyB0aGUgY3VycmVudCBsb2NhdGlvbi5cbiAqXG4gKiBOb3RlOiBUaGlzIEFQSSBpcyBtb3N0bHkgdXNlZnVsIGluIFJlYWN0LkNvbXBvbmVudCBzdWJjbGFzc2VzIHRoYXQgYXJlIG5vdFxuICogYWJsZSB0byB1c2UgaG9va3MuIEluIGZ1bmN0aW9uYWwgY29tcG9uZW50cywgd2UgcmVjb21tZW5kIHlvdSB1c2UgdGhlXG4gKiBgdXNlTmF2aWdhdGVgIGhvb2sgaW5zdGVhZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Ryb3V0ZXIuY29tL2RvY3MvZW4vdjYvYXBpI25hdmlnYXRlXG4gKi9cbmZ1bmN0aW9uIE5hdmlnYXRlKF9yZWYyKSB7XG4gIGxldCB7XG4gICAgdG8sXG4gICAgcmVwbGFjZSxcbiAgICBzdGF0ZVxuICB9ID0gX3JlZjI7XG4gICF1c2VJblJvdXRlckNvbnRleHQoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgLy8gVE9ETzogVGhpcyBlcnJvciBpcyBwcm9iYWJseSBiZWNhdXNlIHRoZXkgc29tZWhvdyBoYXZlIDIgdmVyc2lvbnMgb2ZcbiAgLy8gdGhlIHJvdXRlciBsb2FkZWQuIFdlIGNhbiBoZWxwIHRoZW0gdW5kZXJzdGFuZCBob3cgdG8gYXZvaWQgdGhhdC5cbiAgXCI8TmF2aWdhdGU+IG1heSBiZSB1c2VkIG9ubHkgaW4gdGhlIGNvbnRleHQgb2YgYSA8Um91dGVyPiBjb21wb25lbnQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghdXNlQ29udGV4dChOYXZpZ2F0aW9uQ29udGV4dCkuc3RhdGljLCBcIjxOYXZpZ2F0ZT4gbXVzdCBub3QgYmUgdXNlZCBvbiB0aGUgaW5pdGlhbCByZW5kZXIgaW4gYSA8U3RhdGljUm91dGVyPi4gXCIgKyBcIlRoaXMgaXMgYSBuby1vcCwgYnV0IHlvdSBzaG91bGQgbW9kaWZ5IHlvdXIgY29kZSBzbyB0aGUgPE5hdmlnYXRlPiBpcyBcIiArIFwib25seSBldmVyIHJlbmRlcmVkIGluIHJlc3BvbnNlIHRvIHNvbWUgdXNlciBpbnRlcmFjdGlvbiBvciBzdGF0ZSBjaGFuZ2UuXCIpIDogdm9pZCAwO1xuICBsZXQgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG5hdmlnYXRlKHRvLCB7XG4gICAgICByZXBsYWNlLFxuICAgICAgc3RhdGVcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGNoaWxkIHJvdXRlJ3MgZWxlbWVudCwgaWYgdGhlcmUgaXMgb25lLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjb3V0bGV0XG4gKi9cbmZ1bmN0aW9uIE91dGxldChwcm9wcykge1xuICByZXR1cm4gdXNlT3V0bGV0KHByb3BzLmNvbnRleHQpO1xufVxuXG4vKipcbiAqIERlY2xhcmVzIGFuIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgYXQgYSBjZXJ0YWluIFVSTCBwYXRoLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjcm91dGVcbiAqL1xuZnVuY3Rpb24gUm91dGUoX3Byb3BzKSB7XG4gICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiQSA8Um91dGU+IGlzIG9ubHkgZXZlciB0byBiZSB1c2VkIGFzIHRoZSBjaGlsZCBvZiA8Um91dGVzPiBlbGVtZW50LCBcIiArIFwibmV2ZXIgcmVuZGVyZWQgZGlyZWN0bHkuIFBsZWFzZSB3cmFwIHlvdXIgPFJvdXRlPiBpbiBhIDxSb3V0ZXM+LlwiKSA6IGludmFyaWFudChmYWxzZSkgO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGxvY2F0aW9uIGNvbnRleHQgZm9yIHRoZSByZXN0IG9mIHRoZSBhcHAuXG4gKlxuICogTm90ZTogWW91IHVzdWFsbHkgd29uJ3QgcmVuZGVyIGEgPFJvdXRlcj4gZGlyZWN0bHkuIEluc3RlYWQsIHlvdSdsbCByZW5kZXIgYVxuICogcm91dGVyIHRoYXQgaXMgbW9yZSBzcGVjaWZpYyB0byB5b3VyIGVudmlyb25tZW50IHN1Y2ggYXMgYSA8QnJvd3NlclJvdXRlcj5cbiAqIGluIHdlYiBicm93c2VycyBvciBhIDxTdGF0aWNSb3V0ZXI+IGZvciBzZXJ2ZXIgcmVuZGVyaW5nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjcm91dGVyXG4gKi9cbmZ1bmN0aW9uIFJvdXRlcihfcmVmMykge1xuICBsZXQge1xuICAgIGJhc2VuYW1lOiBiYXNlbmFtZVByb3AgPSBcIi9cIixcbiAgICBjaGlsZHJlbiA9IG51bGwsXG4gICAgbG9jYXRpb246IGxvY2F0aW9uUHJvcCxcbiAgICBuYXZpZ2F0aW9uVHlwZSA9IEFjdGlvbi5Qb3AsXG4gICAgbmF2aWdhdG9yLFxuICAgIHN0YXRpYzogc3RhdGljUHJvcCA9IGZhbHNlXG4gIH0gPSBfcmVmMztcbiAgISF1c2VJblJvdXRlckNvbnRleHQoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCJZb3UgY2Fubm90IHJlbmRlciBhIDxSb3V0ZXI+IGluc2lkZSBhbm90aGVyIDxSb3V0ZXI+LlwiICsgXCIgWW91IHNob3VsZCBuZXZlciBoYXZlIG1vcmUgdGhhbiBvbmUgaW4geW91ciBhcHAuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgbGV0IGJhc2VuYW1lID0gbm9ybWFsaXplUGF0aG5hbWUoYmFzZW5hbWVQcm9wKTtcbiAgbGV0IG5hdmlnYXRpb25Db250ZXh0ID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIGJhc2VuYW1lLFxuICAgIG5hdmlnYXRvcixcbiAgICBzdGF0aWM6IHN0YXRpY1Byb3BcbiAgfSksIFtiYXNlbmFtZSwgbmF2aWdhdG9yLCBzdGF0aWNQcm9wXSk7XG5cbiAgaWYgKHR5cGVvZiBsb2NhdGlvblByb3AgPT09IFwic3RyaW5nXCIpIHtcbiAgICBsb2NhdGlvblByb3AgPSBwYXJzZVBhdGgobG9jYXRpb25Qcm9wKTtcbiAgfVxuXG4gIGxldCB7XG4gICAgcGF0aG5hbWUgPSBcIi9cIixcbiAgICBzZWFyY2ggPSBcIlwiLFxuICAgIGhhc2ggPSBcIlwiLFxuICAgIHN0YXRlID0gbnVsbCxcbiAgICBrZXkgPSBcImRlZmF1bHRcIlxuICB9ID0gbG9jYXRpb25Qcm9wO1xuICBsZXQgbG9jYXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBsZXQgdHJhaWxpbmdQYXRobmFtZSA9IHN0cmlwQmFzZW5hbWUocGF0aG5hbWUsIGJhc2VuYW1lKTtcblxuICAgIGlmICh0cmFpbGluZ1BhdGhuYW1lID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogdHJhaWxpbmdQYXRobmFtZSxcbiAgICAgIHNlYXJjaCxcbiAgICAgIGhhc2gsXG4gICAgICBzdGF0ZSxcbiAgICAgIGtleVxuICAgIH07XG4gIH0sIFtiYXNlbmFtZSwgcGF0aG5hbWUsIHNlYXJjaCwgaGFzaCwgc3RhdGUsIGtleV0pO1xuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGxvY2F0aW9uICE9IG51bGwsIFwiPFJvdXRlciBiYXNlbmFtZT1cXFwiXCIgKyBiYXNlbmFtZSArIFwiXFxcIj4gaXMgbm90IGFibGUgdG8gbWF0Y2ggdGhlIFVSTCBcIiArIChcIlxcXCJcIiArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaCArIFwiXFxcIiBiZWNhdXNlIGl0IGRvZXMgbm90IHN0YXJ0IHdpdGggdGhlIFwiKSArIFwiYmFzZW5hbWUsIHNvIHRoZSA8Um91dGVyPiB3b24ndCByZW5kZXIgYW55dGhpbmcuXCIpIDogdm9pZCAwO1xuXG4gIGlmIChsb2NhdGlvbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoTmF2aWdhdGlvbkNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogbmF2aWdhdGlvbkNvbnRleHRcbiAgfSwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoTG9jYXRpb25Db250ZXh0LlByb3ZpZGVyLCB7XG4gICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgIHZhbHVlOiB7XG4gICAgICBsb2NhdGlvbixcbiAgICAgIG5hdmlnYXRpb25UeXBlXG4gICAgfVxuICB9KSk7XG59XG5cbi8qKlxuICogQSBjb250YWluZXIgZm9yIGEgbmVzdGVkIHRyZWUgb2YgPFJvdXRlPiBlbGVtZW50cyB0aGF0IHJlbmRlcnMgdGhlIGJyYW5jaFxuICogdGhhdCBiZXN0IG1hdGNoZXMgdGhlIGN1cnJlbnQgbG9jYXRpb24uXG4gKlxuICogQHNlZSBodHRwczovL3JlYWN0cm91dGVyLmNvbS9kb2NzL2VuL3Y2L2FwaSNyb3V0ZXNcbiAqL1xuZnVuY3Rpb24gUm91dGVzKF9yZWY0KSB7XG4gIGxldCB7XG4gICAgY2hpbGRyZW4sXG4gICAgbG9jYXRpb25cbiAgfSA9IF9yZWY0O1xuICByZXR1cm4gdXNlUm91dGVzKGNyZWF0ZVJvdXRlc0Zyb21DaGlsZHJlbihjaGlsZHJlbiksIGxvY2F0aW9uKTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVVRJTFNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBDcmVhdGVzIGEgcm91dGUgY29uZmlnIGZyb20gYSBSZWFjdCBcImNoaWxkcmVuXCIgb2JqZWN0LCB3aGljaCBpcyB1c3VhbGx5XG4gKiBlaXRoZXIgYSBgPFJvdXRlPmAgZWxlbWVudCBvciBhbiBhcnJheSBvZiB0aGVtLiBVc2VkIGludGVybmFsbHkgYnlcbiAqIGA8Um91dGVzPmAgdG8gY3JlYXRlIGEgcm91dGUgY29uZmlnIGZyb20gaXRzIGNoaWxkcmVuLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZWFjdHJvdXRlci5jb20vZG9jcy9lbi92Ni9hcGkjY3JlYXRlcm91dGVzZnJvbWNoaWxkcmVuXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlUm91dGVzRnJvbUNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIGxldCByb3V0ZXMgPSBbXTtcbiAgQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZWxlbWVudCA9PiB7XG4gICAgaWYgKCEgLyojX19QVVJFX18qL2lzVmFsaWRFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAvLyBJZ25vcmUgbm9uLWVsZW1lbnRzLiBUaGlzIGFsbG93cyBwZW9wbGUgdG8gbW9yZSBlYXNpbHkgaW5saW5lXG4gICAgICAvLyBjb25kaXRpb25hbHMgaW4gdGhlaXIgcm91dGUgY29uZmlnLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEZyYWdtZW50KSB7XG4gICAgICAvLyBUcmFuc3BhcmVudGx5IHN1cHBvcnQgUmVhY3QuRnJhZ21lbnQgYW5kIGl0cyBjaGlsZHJlbi5cbiAgICAgIHJvdXRlcy5wdXNoLmFwcGx5KHJvdXRlcywgY3JlYXRlUm91dGVzRnJvbUNoaWxkcmVuKGVsZW1lbnQucHJvcHMuY2hpbGRyZW4pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAhKGVsZW1lbnQudHlwZSA9PT0gUm91dGUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCBcIltcIiArICh0eXBlb2YgZWxlbWVudC50eXBlID09PSBcInN0cmluZ1wiID8gZWxlbWVudC50eXBlIDogZWxlbWVudC50eXBlLm5hbWUpICsgXCJdIGlzIG5vdCBhIDxSb3V0ZT4gY29tcG9uZW50LiBBbGwgY29tcG9uZW50IGNoaWxkcmVuIG9mIDxSb3V0ZXM+IG11c3QgYmUgYSA8Um91dGU+IG9yIDxSZWFjdC5GcmFnbWVudD5cIikgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgIGxldCByb3V0ZSA9IHtcbiAgICAgIGNhc2VTZW5zaXRpdmU6IGVsZW1lbnQucHJvcHMuY2FzZVNlbnNpdGl2ZSxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQucHJvcHMuZWxlbWVudCxcbiAgICAgIGluZGV4OiBlbGVtZW50LnByb3BzLmluZGV4LFxuICAgICAgcGF0aDogZWxlbWVudC5wcm9wcy5wYXRoXG4gICAgfTtcblxuICAgIGlmIChlbGVtZW50LnByb3BzLmNoaWxkcmVuKSB7XG4gICAgICByb3V0ZS5jaGlsZHJlbiA9IGNyZWF0ZVJvdXRlc0Zyb21DaGlsZHJlbihlbGVtZW50LnByb3BzLmNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByb3V0ZXMucHVzaChyb3V0ZSk7XG4gIH0pO1xuICByZXR1cm4gcm91dGVzO1xufVxuLyoqXG4gKiBSZW5kZXJzIHRoZSByZXN1bHQgb2YgYG1hdGNoUm91dGVzKClgIGludG8gYSBSZWFjdCBlbGVtZW50LlxuICovXG5cbmZ1bmN0aW9uIHJlbmRlck1hdGNoZXMobWF0Y2hlcykge1xuICByZXR1cm4gX3JlbmRlck1hdGNoZXMobWF0Y2hlcyk7XG59XG5cbmV4cG9ydCB7IE1lbW9yeVJvdXRlciwgTmF2aWdhdGUsIE91dGxldCwgUm91dGUsIFJvdXRlciwgUm91dGVzLCBMb2NhdGlvbkNvbnRleHQgYXMgVU5TQUZFX0xvY2F0aW9uQ29udGV4dCwgTmF2aWdhdGlvbkNvbnRleHQgYXMgVU5TQUZFX05hdmlnYXRpb25Db250ZXh0LCBSb3V0ZUNvbnRleHQgYXMgVU5TQUZFX1JvdXRlQ29udGV4dCwgY3JlYXRlUm91dGVzRnJvbUNoaWxkcmVuLCBnZW5lcmF0ZVBhdGgsIG1hdGNoUGF0aCwgbWF0Y2hSb3V0ZXMsIHJlbmRlck1hdGNoZXMsIHJlc29sdmVQYXRoLCB1c2VIcmVmLCB1c2VJblJvdXRlckNvbnRleHQsIHVzZUxvY2F0aW9uLCB1c2VNYXRjaCwgdXNlTmF2aWdhdGUsIHVzZU5hdmlnYXRpb25UeXBlLCB1c2VPdXRsZXQsIHVzZU91dGxldENvbnRleHQsIHVzZVBhcmFtcywgdXNlUmVzb2x2ZWRQYXRoLCB1c2VSb3V0ZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcFxuIiwiLyoqXG4gKiBSZWFjdCBSb3V0ZXIgRE9NIHY2LjMuMFxuICpcbiAqIENvcHlyaWdodCAoYykgUmVtaXggU29mdHdhcmUgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRS5tZCBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqIEBsaWNlbnNlIE1JVFxuICovXG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlLCB1c2VMYXlvdXRFZmZlY3QsIGNyZWF0ZUVsZW1lbnQsIGZvcndhcmRSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnksIGNyZWF0ZUhhc2hIaXN0b3J5IH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgeyBSb3V0ZXIsIHVzZUhyZWYsIGNyZWF0ZVBhdGgsIHVzZUxvY2F0aW9uLCB1c2VSZXNvbHZlZFBhdGgsIHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyJztcbmV4cG9ydCB7IE1lbW9yeVJvdXRlciwgTmF2aWdhdGUsIE5hdmlnYXRpb25UeXBlLCBPdXRsZXQsIFJvdXRlLCBSb3V0ZXIsIFJvdXRlcywgVU5TQUZFX0xvY2F0aW9uQ29udGV4dCwgVU5TQUZFX05hdmlnYXRpb25Db250ZXh0LCBVTlNBRkVfUm91dGVDb250ZXh0LCBjcmVhdGVQYXRoLCBjcmVhdGVSb3V0ZXNGcm9tQ2hpbGRyZW4sIGdlbmVyYXRlUGF0aCwgbWF0Y2hQYXRoLCBtYXRjaFJvdXRlcywgcGFyc2VQYXRoLCByZW5kZXJNYXRjaGVzLCByZXNvbHZlUGF0aCwgdXNlSHJlZiwgdXNlSW5Sb3V0ZXJDb250ZXh0LCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2gsIHVzZU5hdmlnYXRlLCB1c2VOYXZpZ2F0aW9uVHlwZSwgdXNlT3V0bGV0LCB1c2VPdXRsZXRDb250ZXh0LCB1c2VQYXJhbXMsIHVzZVJlc29sdmVkUGF0aCwgdXNlUm91dGVzIH0gZnJvbSAncmVhY3Qtcm91dGVyJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmNvbnN0IF9leGNsdWRlZCA9IFtcIm9uQ2xpY2tcIiwgXCJyZWxvYWREb2N1bWVudFwiLCBcInJlcGxhY2VcIiwgXCJzdGF0ZVwiLCBcInRhcmdldFwiLCBcInRvXCJdLFxuICAgICAgX2V4Y2x1ZGVkMiA9IFtcImFyaWEtY3VycmVudFwiLCBcImNhc2VTZW5zaXRpdmVcIiwgXCJjbGFzc05hbWVcIiwgXCJlbmRcIiwgXCJzdHlsZVwiLCBcInRvXCIsIFwiY2hpbGRyZW5cIl07XG5cbmZ1bmN0aW9uIHdhcm5pbmcoY29uZCwgbWVzc2FnZSkge1xuICBpZiAoIWNvbmQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIikgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IFJvdXRlciFcbiAgICAgIC8vXG4gICAgICAvLyBUaGlzIGVycm9yIGlzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHlvdSBjYW4gbW9yZSBlYXNpbHlcbiAgICAgIC8vIGZpbmQgdGhlIHNvdXJjZSBmb3IgYSB3YXJuaW5nIHRoYXQgYXBwZWFycyBpbiB0aGUgY29uc29sZSBieVxuICAgICAgLy8gZW5hYmxpbmcgXCJwYXVzZSBvbiBleGNlcHRpb25zXCIgaW4geW91ciBKYXZhU2NyaXB0IGRlYnVnZ2VyLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDT01QT05FTlRTXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIEEgYDxSb3V0ZXI+YCBmb3IgdXNlIGluIHdlYiBicm93c2Vycy4gUHJvdmlkZXMgdGhlIGNsZWFuZXN0IFVSTHMuXG4gKi9cbmZ1bmN0aW9uIEJyb3dzZXJSb3V0ZXIoX3JlZikge1xuICBsZXQge1xuICAgIGJhc2VuYW1lLFxuICAgIGNoaWxkcmVuLFxuICAgIHdpbmRvd1xuICB9ID0gX3JlZjtcbiAgbGV0IGhpc3RvcnlSZWYgPSB1c2VSZWYoKTtcblxuICBpZiAoaGlzdG9yeVJlZi5jdXJyZW50ID09IG51bGwpIHtcbiAgICBoaXN0b3J5UmVmLmN1cnJlbnQgPSBjcmVhdGVCcm93c2VySGlzdG9yeSh7XG4gICAgICB3aW5kb3dcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBoaXN0b3J5ID0gaGlzdG9yeVJlZi5jdXJyZW50O1xuICBsZXQgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZSh7XG4gICAgYWN0aW9uOiBoaXN0b3J5LmFjdGlvbixcbiAgICBsb2NhdGlvbjogaGlzdG9yeS5sb2NhdGlvblxuICB9KTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IGhpc3RvcnkubGlzdGVuKHNldFN0YXRlKSwgW2hpc3RvcnldKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFJvdXRlciwge1xuICAgIGJhc2VuYW1lOiBiYXNlbmFtZSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgbG9jYXRpb246IHN0YXRlLmxvY2F0aW9uLFxuICAgIG5hdmlnYXRpb25UeXBlOiBzdGF0ZS5hY3Rpb24sXG4gICAgbmF2aWdhdG9yOiBoaXN0b3J5XG4gIH0pO1xufVxuXG4vKipcbiAqIEEgYDxSb3V0ZXI+YCBmb3IgdXNlIGluIHdlYiBicm93c2Vycy4gU3RvcmVzIHRoZSBsb2NhdGlvbiBpbiB0aGUgaGFzaFxuICogcG9ydGlvbiBvZiB0aGUgVVJMIHNvIGl0IGlzIG5vdCBzZW50IHRvIHRoZSBzZXJ2ZXIuXG4gKi9cbmZ1bmN0aW9uIEhhc2hSb3V0ZXIoX3JlZjIpIHtcbiAgbGV0IHtcbiAgICBiYXNlbmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICB3aW5kb3dcbiAgfSA9IF9yZWYyO1xuICBsZXQgaGlzdG9yeVJlZiA9IHVzZVJlZigpO1xuXG4gIGlmIChoaXN0b3J5UmVmLmN1cnJlbnQgPT0gbnVsbCkge1xuICAgIGhpc3RvcnlSZWYuY3VycmVudCA9IGNyZWF0ZUhhc2hIaXN0b3J5KHtcbiAgICAgIHdpbmRvd1xuICAgIH0pO1xuICB9XG5cbiAgbGV0IGhpc3RvcnkgPSBoaXN0b3J5UmVmLmN1cnJlbnQ7XG4gIGxldCBbc3RhdGUsIHNldFN0YXRlXSA9IHVzZVN0YXRlKHtcbiAgICBhY3Rpb246IGhpc3RvcnkuYWN0aW9uLFxuICAgIGxvY2F0aW9uOiBoaXN0b3J5LmxvY2F0aW9uXG4gIH0pO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gaGlzdG9yeS5saXN0ZW4oc2V0U3RhdGUpLCBbaGlzdG9yeV0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoUm91dGVyLCB7XG4gICAgYmFzZW5hbWU6IGJhc2VuYW1lLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBsb2NhdGlvbjogc3RhdGUubG9jYXRpb24sXG4gICAgbmF2aWdhdGlvblR5cGU6IHN0YXRlLmFjdGlvbixcbiAgICBuYXZpZ2F0b3I6IGhpc3RvcnlcbiAgfSk7XG59XG5cbi8qKlxuICogQSBgPFJvdXRlcj5gIHRoYXQgYWNjZXB0cyBhIHByZS1pbnN0YW50aWF0ZWQgaGlzdG9yeSBvYmplY3QuIEl0J3MgaW1wb3J0YW50XG4gKiB0byBub3RlIHRoYXQgdXNpbmcgeW91ciBvd24gaGlzdG9yeSBvYmplY3QgaXMgaGlnaGx5IGRpc2NvdXJhZ2VkIGFuZCBtYXkgYWRkXG4gKiB0d28gdmVyc2lvbnMgb2YgdGhlIGhpc3RvcnkgbGlicmFyeSB0byB5b3VyIGJ1bmRsZXMgdW5sZXNzIHlvdSB1c2UgdGhlIHNhbWVcbiAqIHZlcnNpb24gb2YgdGhlIGhpc3RvcnkgbGlicmFyeSB0aGF0IFJlYWN0IFJvdXRlciB1c2VzIGludGVybmFsbHkuXG4gKi9cbmZ1bmN0aW9uIEhpc3RvcnlSb3V0ZXIoX3JlZjMpIHtcbiAgbGV0IHtcbiAgICBiYXNlbmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBoaXN0b3J5XG4gIH0gPSBfcmVmMztcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZSh7XG4gICAgYWN0aW9uOiBoaXN0b3J5LmFjdGlvbixcbiAgICBsb2NhdGlvbjogaGlzdG9yeS5sb2NhdGlvblxuICB9KTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IGhpc3RvcnkubGlzdGVuKHNldFN0YXRlKSwgW2hpc3RvcnldKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFJvdXRlciwge1xuICAgIGJhc2VuYW1lOiBiYXNlbmFtZSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgbG9jYXRpb246IHN0YXRlLmxvY2F0aW9uLFxuICAgIG5hdmlnYXRpb25UeXBlOiBzdGF0ZS5hY3Rpb24sXG4gICAgbmF2aWdhdG9yOiBoaXN0b3J5XG4gIH0pO1xufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIEhpc3RvcnlSb3V0ZXIuZGlzcGxheU5hbWUgPSBcInVuc3RhYmxlX0hpc3RvcnlSb3V0ZXJcIjtcbn1cblxuZnVuY3Rpb24gaXNNb2RpZmllZEV2ZW50KGV2ZW50KSB7XG4gIHJldHVybiAhIShldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5KTtcbn1cblxuLyoqXG4gKiBUaGUgcHVibGljIEFQSSBmb3IgcmVuZGVyaW5nIGEgaGlzdG9yeS1hd2FyZSA8YT4uXG4gKi9cbmNvbnN0IExpbmsgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBMaW5rV2l0aFJlZihfcmVmNCwgcmVmKSB7XG4gIGxldCB7XG4gICAgb25DbGljayxcbiAgICByZWxvYWREb2N1bWVudCxcbiAgICByZXBsYWNlID0gZmFsc2UsXG4gICAgc3RhdGUsXG4gICAgdGFyZ2V0LFxuICAgIHRvXG4gIH0gPSBfcmVmNCxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmNCwgX2V4Y2x1ZGVkKTtcblxuICBsZXQgaHJlZiA9IHVzZUhyZWYodG8pO1xuICBsZXQgaW50ZXJuYWxPbkNsaWNrID0gdXNlTGlua0NsaWNrSGFuZGxlcih0bywge1xuICAgIHJlcGxhY2UsXG4gICAgc3RhdGUsXG4gICAgdGFyZ2V0XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgaWYgKG9uQ2xpY2spIG9uQ2xpY2soZXZlbnQpO1xuXG4gICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkICYmICFyZWxvYWREb2N1bWVudCkge1xuICAgICAgaW50ZXJuYWxPbkNsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIC8qI19fUFVSRV9fKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvYW5jaG9yLWhhcy1jb250ZW50XG4gICAgY3JlYXRlRWxlbWVudChcImFcIiwgX2V4dGVuZHMoe30sIHJlc3QsIHtcbiAgICAgIGhyZWY6IGhyZWYsXG4gICAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAgIHJlZjogcmVmLFxuICAgICAgdGFyZ2V0OiB0YXJnZXRcbiAgICB9KSlcbiAgKTtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIExpbmsuZGlzcGxheU5hbWUgPSBcIkxpbmtcIjtcbn1cblxuLyoqXG4gKiBBIDxMaW5rPiB3cmFwcGVyIHRoYXQga25vd3MgaWYgaXQncyBcImFjdGl2ZVwiIG9yIG5vdC5cbiAqL1xuY29uc3QgTmF2TGluayA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIE5hdkxpbmtXaXRoUmVmKF9yZWY1LCByZWYpIHtcbiAgbGV0IHtcbiAgICBcImFyaWEtY3VycmVudFwiOiBhcmlhQ3VycmVudFByb3AgPSBcInBhZ2VcIixcbiAgICBjYXNlU2Vuc2l0aXZlID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWVQcm9wID0gXCJcIixcbiAgICBlbmQgPSBmYWxzZSxcbiAgICBzdHlsZTogc3R5bGVQcm9wLFxuICAgIHRvLFxuICAgIGNoaWxkcmVuXG4gIH0gPSBfcmVmNSxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmNSwgX2V4Y2x1ZGVkMik7XG5cbiAgbGV0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgbGV0IHBhdGggPSB1c2VSZXNvbHZlZFBhdGgodG8pO1xuICBsZXQgbG9jYXRpb25QYXRobmFtZSA9IGxvY2F0aW9uLnBhdGhuYW1lO1xuICBsZXQgdG9QYXRobmFtZSA9IHBhdGgucGF0aG5hbWU7XG5cbiAgaWYgKCFjYXNlU2Vuc2l0aXZlKSB7XG4gICAgbG9jYXRpb25QYXRobmFtZSA9IGxvY2F0aW9uUGF0aG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB0b1BhdGhuYW1lID0gdG9QYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgbGV0IGlzQWN0aXZlID0gbG9jYXRpb25QYXRobmFtZSA9PT0gdG9QYXRobmFtZSB8fCAhZW5kICYmIGxvY2F0aW9uUGF0aG5hbWUuc3RhcnRzV2l0aCh0b1BhdGhuYW1lKSAmJiBsb2NhdGlvblBhdGhuYW1lLmNoYXJBdCh0b1BhdGhuYW1lLmxlbmd0aCkgPT09IFwiL1wiO1xuICBsZXQgYXJpYUN1cnJlbnQgPSBpc0FjdGl2ZSA/IGFyaWFDdXJyZW50UHJvcCA6IHVuZGVmaW5lZDtcbiAgbGV0IGNsYXNzTmFtZTtcblxuICBpZiAodHlwZW9mIGNsYXNzTmFtZVByb3AgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZVByb3Aoe1xuICAgICAgaXNBY3RpdmVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgY2xhc3NOYW1lIHByb3AgaXMgbm90IGEgZnVuY3Rpb24sIHdlIHVzZSBhIGRlZmF1bHQgYGFjdGl2ZWBcbiAgICAvLyBjbGFzcyBmb3IgPE5hdkxpbmsgLz5zIHRoYXQgYXJlIGFjdGl2ZS4gSW4gdjUgYGFjdGl2ZWAgd2FzIHRoZSBkZWZhdWx0XG4gICAgLy8gdmFsdWUgZm9yIGBhY3RpdmVDbGFzc05hbWVgLCBidXQgd2UgYXJlIHJlbW92aW5nIHRoYXQgQVBJIGFuZCBjYW4gc3RpbGxcbiAgICAvLyB1c2UgdGhlIG9sZCBkZWZhdWx0IGJlaGF2aW9yIGZvciBhIGNsZWFuZXIgdXBncmFkZSBwYXRoIGFuZCBrZWVwIHRoZVxuICAgIC8vIHNpbXBsZSBzdHlsaW5nIHJ1bGVzIHdvcmtpbmcgYXMgdGhleSBjdXJyZW50bHkgZG8uXG4gICAgY2xhc3NOYW1lID0gW2NsYXNzTmFtZVByb3AsIGlzQWN0aXZlID8gXCJhY3RpdmVcIiA6IG51bGxdLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgfVxuXG4gIGxldCBzdHlsZSA9IHR5cGVvZiBzdHlsZVByb3AgPT09IFwiZnVuY3Rpb25cIiA/IHN0eWxlUHJvcCh7XG4gICAgaXNBY3RpdmVcbiAgfSkgOiBzdHlsZVByb3A7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChMaW5rLCBfZXh0ZW5kcyh7fSwgcmVzdCwge1xuICAgIFwiYXJpYS1jdXJyZW50XCI6IGFyaWFDdXJyZW50LFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgIHJlZjogcmVmLFxuICAgIHN0eWxlOiBzdHlsZSxcbiAgICB0bzogdG9cbiAgfSksIHR5cGVvZiBjaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiID8gY2hpbGRyZW4oe1xuICAgIGlzQWN0aXZlXG4gIH0pIDogY2hpbGRyZW4pO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgTmF2TGluay5kaXNwbGF5TmFtZSA9IFwiTmF2TGlua1wiO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSE9PS1Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogSGFuZGxlcyB0aGUgY2xpY2sgYmVoYXZpb3IgZm9yIHJvdXRlciBgPExpbms+YCBjb21wb25lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpZlxuICogeW91IG5lZWQgdG8gY3JlYXRlIGN1c3RvbSBgPExpbms+YCBjb21wb25lbnRzIHdpdGggdGhlIHNhbWUgY2xpY2sgYmVoYXZpb3Igd2VcbiAqIHVzZSBpbiBvdXIgZXhwb3J0ZWQgYDxMaW5rPmAuXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VMaW5rQ2xpY2tIYW5kbGVyKHRvLCBfdGVtcCkge1xuICBsZXQge1xuICAgIHRhcmdldCxcbiAgICByZXBsYWNlOiByZXBsYWNlUHJvcCxcbiAgICBzdGF0ZVxuICB9ID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA7XG4gIGxldCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGxldCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIGxldCBwYXRoID0gdXNlUmVzb2x2ZWRQYXRoKHRvKTtcbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGV2ZW50ID0+IHtcbiAgICBpZiAoZXZlbnQuYnV0dG9uID09PSAwICYmICggLy8gSWdub3JlIGV2ZXJ5dGhpbmcgYnV0IGxlZnQgY2xpY2tzXG4gICAgIXRhcmdldCB8fCB0YXJnZXQgPT09IFwiX3NlbGZcIikgJiYgLy8gTGV0IGJyb3dzZXIgaGFuZGxlIFwidGFyZ2V0PV9ibGFua1wiIGV0Yy5cbiAgICAhaXNNb2RpZmllZEV2ZW50KGV2ZW50KSAvLyBJZ25vcmUgY2xpY2tzIHdpdGggbW9kaWZpZXIga2V5c1xuICAgICkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gSWYgdGhlIFVSTCBoYXNuJ3QgY2hhbmdlZCwgYSByZWd1bGFyIDxhPiB3aWxsIGRvIGEgcmVwbGFjZSBpbnN0ZWFkIG9mXG4gICAgICAvLyBhIHB1c2gsIHNvIGRvIHRoZSBzYW1lIGhlcmUuXG5cbiAgICAgIGxldCByZXBsYWNlID0gISFyZXBsYWNlUHJvcCB8fCBjcmVhdGVQYXRoKGxvY2F0aW9uKSA9PT0gY3JlYXRlUGF0aChwYXRoKTtcbiAgICAgIG5hdmlnYXRlKHRvLCB7XG4gICAgICAgIHJlcGxhY2UsXG4gICAgICAgIHN0YXRlXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtsb2NhdGlvbiwgbmF2aWdhdGUsIHBhdGgsIHJlcGxhY2VQcm9wLCBzdGF0ZSwgdGFyZ2V0LCB0b10pO1xufVxuLyoqXG4gKiBBIGNvbnZlbmllbnQgd3JhcHBlciBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBzZWFyY2ggcGFyYW1ldGVycyB2aWEgdGhlXG4gKiBVUkxTZWFyY2hQYXJhbXMgaW50ZXJmYWNlLlxuICovXG5cbmZ1bmN0aW9uIHVzZVNlYXJjaFBhcmFtcyhkZWZhdWx0SW5pdCkge1xuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKHR5cGVvZiBVUkxTZWFyY2hQYXJhbXMgIT09IFwidW5kZWZpbmVkXCIsIFwiWW91IGNhbm5vdCB1c2UgdGhlIGB1c2VTZWFyY2hQYXJhbXNgIGhvb2sgaW4gYSBicm93c2VyIHRoYXQgZG9lcyBub3QgXCIgKyBcInN1cHBvcnQgdGhlIFVSTFNlYXJjaFBhcmFtcyBBUEkuIElmIHlvdSBuZWVkIHRvIHN1cHBvcnQgSW50ZXJuZXQgXCIgKyBcIkV4cGxvcmVyIDExLCB3ZSByZWNvbW1lbmQgeW91IGxvYWQgYSBwb2x5ZmlsbCBzdWNoIGFzIFwiICsgXCJodHRwczovL2dpdGh1Yi5jb20vdW5nYXAvdXJsLXNlYXJjaC1wYXJhbXNcXG5cXG5cIiArIFwiSWYgeW91J3JlIHVuc3VyZSBob3cgdG8gbG9hZCBwb2x5ZmlsbHMsIHdlIHJlY29tbWVuZCB5b3UgY2hlY2sgb3V0IFwiICsgXCJodHRwczovL3BvbHlmaWxsLmlvL3YzLyB3aGljaCBwcm92aWRlcyBzb21lIHJlY29tbWVuZGF0aW9ucyBhYm91dCBob3cgXCIgKyBcInRvIGxvYWQgcG9seWZpbGxzIG9ubHkgZm9yIHVzZXJzIHRoYXQgbmVlZCB0aGVtLCBpbnN0ZWFkIG9mIGZvciBldmVyeSBcIiArIFwidXNlci5cIikgOiB2b2lkIDA7XG4gIGxldCBkZWZhdWx0U2VhcmNoUGFyYW1zUmVmID0gdXNlUmVmKGNyZWF0ZVNlYXJjaFBhcmFtcyhkZWZhdWx0SW5pdCkpO1xuICBsZXQgbG9jYXRpb24gPSB1c2VMb2NhdGlvbigpO1xuICBsZXQgc2VhcmNoUGFyYW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IHNlYXJjaFBhcmFtcyA9IGNyZWF0ZVNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuXG4gICAgZm9yIChsZXQga2V5IG9mIGRlZmF1bHRTZWFyY2hQYXJhbXNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgIGlmICghc2VhcmNoUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgIGRlZmF1bHRTZWFyY2hQYXJhbXNSZWYuY3VycmVudC5nZXRBbGwoa2V5KS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zO1xuICB9LCBbbG9jYXRpb24uc2VhcmNoXSk7XG4gIGxldCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGxldCBzZXRTZWFyY2hQYXJhbXMgPSB1c2VDYWxsYmFjaygobmV4dEluaXQsIG5hdmlnYXRlT3B0aW9ucykgPT4ge1xuICAgIG5hdmlnYXRlKFwiP1wiICsgY3JlYXRlU2VhcmNoUGFyYW1zKG5leHRJbml0KSwgbmF2aWdhdGVPcHRpb25zKTtcbiAgfSwgW25hdmlnYXRlXSk7XG4gIHJldHVybiBbc2VhcmNoUGFyYW1zLCBzZXRTZWFyY2hQYXJhbXNdO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBVUkxTZWFyY2hQYXJhbXMgb2JqZWN0IHVzaW5nIHRoZSBnaXZlbiBpbml0aWFsaXplci5cbiAqXG4gKiBUaGlzIGlzIGlkZW50aWNhbCB0byBgbmV3IFVSTFNlYXJjaFBhcmFtcyhpbml0KWAgZXhjZXB0IGl0IGFsc29cbiAqIHN1cHBvcnRzIGFycmF5cyBhcyB2YWx1ZXMgaW4gdGhlIG9iamVjdCBmb3JtIG9mIHRoZSBpbml0aWFsaXplclxuICogaW5zdGVhZCBvZiBqdXN0IHN0cmluZ3MuIFRoaXMgaXMgY29udmVuaWVudCB3aGVuIHlvdSBuZWVkIG11bHRpcGxlXG4gKiB2YWx1ZXMgZm9yIGEgZ2l2ZW4ga2V5LCBidXQgZG9uJ3Qgd2FudCB0byB1c2UgYW4gYXJyYXkgaW5pdGlhbGl6ZXIuXG4gKlxuICogRm9yIGV4YW1wbGUsIGluc3RlYWQgb2Y6XG4gKlxuICogICBsZXQgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhbXG4gKiAgICAgWydzb3J0JywgJ25hbWUnXSxcbiAqICAgICBbJ3NvcnQnLCAncHJpY2UnXVxuICogICBdKTtcbiAqXG4gKiB5b3UgY2FuIGRvOlxuICpcbiAqICAgbGV0IHNlYXJjaFBhcmFtcyA9IGNyZWF0ZVNlYXJjaFBhcmFtcyh7XG4gKiAgICAgc29ydDogWyduYW1lJywgJ3ByaWNlJ11cbiAqICAgfSk7XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaFBhcmFtcyhpbml0KSB7XG4gIGlmIChpbml0ID09PSB2b2lkIDApIHtcbiAgICBpbml0ID0gXCJcIjtcbiAgfVxuXG4gIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHR5cGVvZiBpbml0ID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkoaW5pdCkgfHwgaW5pdCBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcyA/IGluaXQgOiBPYmplY3Qua2V5cyhpbml0KS5yZWR1Y2UoKG1lbW8sIGtleSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IGluaXRba2V5XTtcbiAgICByZXR1cm4gbWVtby5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBba2V5LCB2XSkgOiBbW2tleSwgdmFsdWVdXSk7XG4gIH0sIFtdKSk7XG59XG5cbmV4cG9ydCB7IEJyb3dzZXJSb3V0ZXIsIEhhc2hSb3V0ZXIsIExpbmssIE5hdkxpbmssIGNyZWF0ZVNlYXJjaFBhcmFtcywgSGlzdG9yeVJvdXRlciBhcyB1bnN0YWJsZV9IaXN0b3J5Um91dGVyLCB1c2VMaW5rQ2xpY2tIYW5kbGVyLCB1c2VTZWFyY2hQYXJhbXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcFxuIiwiLyoqXHJcbiAqIFRoaXMgYmxvY2sgYXVnbWVudHMgdGhlIGdsb2JhbCBuYW1lc3BhY2UgdG8gaW5jbHVkZSBjdXN0b20gdHlwZXMgYW5kIGZ1bmN0aW9ucy5cclxuICovXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIGludGVyZmFjZSBBcnJheTxUPiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUmV0dXJucyBhIG5ldyBhcnJheSBjb250YWluaW5nIG9ubHkgZGlzdGluY3QgZWxlbWVudHMuXHJcbiAgICAgICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzdGluY3QgZWxlbWVudHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZGlzdGluY3QoKTogVFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IGNvbnRhaW5pbmcgb25seSBkaXN0aW5jdCBlbGVtZW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IHNlbGVjdG9yIGZ1bmN0aW9uLlxyXG4gICAgICAgICAqIEBwYXJhbSBrZXlTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUga2V5IGZvciBjb21wYXJpc29uLlxyXG4gICAgICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRpc3RpbmN0IGVsZW1lbnRzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGRpc3RpbmN0Qnkoa2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBhbnkpOiBUW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEdyb3VwcyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleSBzZWxlY3RvciBmdW5jdGlvbi5cclxuICAgICAgICAgKiBAcGFyYW0ga2V5U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIGtleSBmb3IgZ3JvdXBpbmcuXHJcbiAgICAgICAgICogQHJldHVybnMgQSBNYXAgd2hlcmUga2V5cyBhcmUgdGhlIGdyb3VwIGtleXMgYW5kIHZhbHVlcyBhcmUgYXJyYXlzIG9mIGVsZW1lbnRzIHdpdGggdGhlIHNhbWUga2V5LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGdyb3VwQnk8Sz4oa2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBLKTogTWFwPEssIFRbXT47XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFBlcmZvcm1zIGEgZ3JvdXAgam9pbiBvbiB0d28gYXJyYXlzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBrZXkgc2VsZWN0b3JzLlxyXG4gICAgICAgICAqIEBwYXJhbSBpbm5lciBUaGUgaW5uZXIgYXJyYXkgdG8gam9pbi5cclxuICAgICAgICAgKiBAcGFyYW0gb3V0ZXJLZXlTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUga2V5IGZvciB0aGUgb3V0ZXIgYXJyYXkuXHJcbiAgICAgICAgICogQHBhcmFtIGlubmVyS2V5U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIGtleSBmb3IgdGhlIGlubmVyIGFycmF5LlxyXG4gICAgICAgICAqIEBwYXJhbSByZXN1bHRTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUgcmVzdWx0IGZvciBlYWNoIGpvaW5lZCBncm91cC5cclxuICAgICAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBqb2luZWQgZ3JvdXBzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGdyb3VwSm9pbjxVLCBLLCBSPihcclxuICAgICAgICAgICAgaW5uZXI6IFVbXSxcclxuICAgICAgICAgICAgb3V0ZXJLZXlTZWxlY3RvcjogKGl0ZW06IFQpID0+IEssXHJcbiAgICAgICAgICAgIGlubmVyS2V5U2VsZWN0b3I6IChpdGVtOiBVKSA9PiBLLFxyXG4gICAgICAgICAgICByZXN1bHRTZWxlY3RvcjogKG91dGVyOiBULCBpbm5lckdyb3VwOiBVW10pID0+IFJcclxuICAgICAgICApOiBSW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFBlcmZvcm1zIGEgbWFueS10by1tYW55IGpvaW4gb24gdHdvIGFycmF5cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IHNlbGVjdG9ycy5cclxuICAgICAgICAgKiBAcGFyYW0gaW5uZXIgVGhlIGlubmVyIGFycmF5IHRvIGpvaW4uXHJcbiAgICAgICAgICogQHBhcmFtIG91dGVyS2V5U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIGtleSBmb3IgdGhlIG91dGVyIGFycmF5LlxyXG4gICAgICAgICAqIEBwYXJhbSBpbm5lcktleVNlbGVjdG9yIEEgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSBrZXkgZm9yIHRoZSBpbm5lciBhcnJheS5cclxuICAgICAgICAgKiBAcGFyYW0gcmVzdWx0U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIHJlc3VsdCBmb3IgZWFjaCBqb2luZWQgcGFpci5cclxuICAgICAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBqb2luZWQgcGFpcnMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbWFueVRvTWFueUpvaW48VSwgSywgUj4oXHJcbiAgICAgICAgICAgIGlubmVyOiBVW10sXHJcbiAgICAgICAgICAgIG91dGVyS2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBLLFxyXG4gICAgICAgICAgICBpbm5lcktleVNlbGVjdG9yOiAoaXRlbTogVSkgPT4gSyxcclxuICAgICAgICAgICAgcmVzdWx0U2VsZWN0b3I6IChvdXRlcjogVCwgaW5uZXI6IFUpID0+IFJcclxuICAgICAgICApOiBSW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFBlcmZvcm1zIGFuICdpbmNsdWRlcycgcXVlcnkgb24gYW4gYXJyYXkgb2Ygb2JqZWN0cyBieSBhIGdpdmVuIGtleS5cclxuICAgICAgICAgKiBAcGFyYW0ga2V5U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIGtleSBmb3IgY2hlY2tpbmcuXHJcbiAgICAgICAgICogQHJldHVybnMgV2hldGhlciB0aGUgdmFsdWUgaXMgaW5jbHVkZWQgaW4gdGhlIG9iamVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBpbmNsdWRlc0J5PEs+KGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gSywgdmFsdWU6IEspOiBib29sZWFuO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBGaWx0ZXIgYW5kIG1hcCBpbiBvbmUgb3BlcmF0aW9uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZmlsdGVyTWFwPFU+KGZpbHRlck1hcDogKGl0ZW06IFQpID0+IFUgfCB1bmRlZmluZWQpOiBVW107XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1vZHVsZSBjb250YWlucyBleHRlbnNpb25zIGZvciB0aGUgQXJyYXkgcHJvdG90eXBlLlxyXG4gKi9cclxuLy8gQHRzLWlnbm9yZVxyXG5tb2R1bGUgQXJyYXlFeHRlbnNpb25zIHtcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIG5ldyBhcnJheSBjb250YWluaW5nIG9ubHkgZGlzdGluY3QgZWxlbWVudHMuXHJcbiAgICAgKiBAdGhpcyBUaGUgc291cmNlIGFycmF5LlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzdGluY3QgZWxlbWVudHMuXHJcbiAgICAgKi9cclxuICAgIEFycmF5LnByb3RvdHlwZS5kaXN0aW5jdCA9IGZ1bmN0aW9uIDxUPih0aGlzOiBUW10pOiBUW10ge1xyXG4gICAgICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PFQ+KCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXMoaXRlbSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc2Vlbi5hZGQoaXRlbSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgbmV3IGFycmF5IGNvbnRhaW5pbmcgb25seSBkaXN0aW5jdCBlbGVtZW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IHNlbGVjdG9yIGZ1bmN0aW9uLlxyXG4gICAgICogQHRoaXMgVGhlIHNvdXJjZSBhcnJheS5cclxuICAgICAqIEBwYXJhbSBrZXlTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUga2V5IGZvciBjb21wYXJpc29uLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzdGluY3QgZWxlbWVudHMuXHJcbiAgICAgKi9cclxuICAgIEFycmF5LnByb3RvdHlwZS5kaXN0aW5jdEJ5ID0gZnVuY3Rpb24gPFQ+KHRoaXM6IFRbXSwga2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBhbnkpOiBUW10ge1xyXG4gICAgICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PGFueT4oKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleVNlbGVjdG9yKGl0ZW0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc2Vlbi5hZGQoa2V5KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdyb3VwcyB0aGUgZWxlbWVudHMgb2YgYW4gYXJyYXkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleSBzZWxlY3RvciBmdW5jdGlvbi5cclxuICAgICAqIEBwYXJhbSBrZXlTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUga2V5IGZvciBncm91cGluZy5cclxuICAgICAqIEByZXR1cm5zIEEgTWFwIHdoZXJlIGtleXMgYXJlIHRoZSBncm91cCBrZXlzIGFuZCB2YWx1ZXMgYXJlIGFycmF5cyBvZiBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIGtleS5cclxuICAgICAqL1xyXG4gICAgQXJyYXkucHJvdG90eXBlLmdyb3VwQnkgPSBmdW5jdGlvbiA8VCwgSz4odGhpczogVFtdLCBrZXlTZWxlY3RvcjogKGl0ZW06IFQpID0+IEspOiBNYXA8SywgVFtdPiB7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxLLCBUW10+KCk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlTZWxlY3RvcihpdGVtKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghZ3JvdXBzLmhhcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBncm91cHMuc2V0KGtleSwgW10pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBncm91cHMuZ2V0KGtleSkhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBncm91cHM7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybXMgYSBncm91cCBqb2luIG9uIHR3byBhcnJheXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleSBzZWxlY3RvcnMuXHJcbiAgICAgKiBAcGFyYW0gaW5uZXIgVGhlIGlubmVyIGFycmF5IHRvIGpvaW4uXHJcbiAgICAgKiBAcGFyYW0gb3V0ZXJLZXlTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUga2V5IGZvciB0aGUgb3V0ZXIgYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gaW5uZXJLZXlTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUga2V5IGZvciB0aGUgaW5uZXIgYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gcmVzdWx0U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIHJlc3VsdCBmb3IgZWFjaCBqb2luZWQgZ3JvdXAuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBqb2luZWQgZ3JvdXBzLlxyXG4gICAgICovXHJcbiAgICBBcnJheS5wcm90b3R5cGUuZ3JvdXBKb2luID0gZnVuY3Rpb24gPFQsIFUsIEssIFI+KFxyXG4gICAgICAgIHRoaXM6IFRbXSxcclxuICAgICAgICBpbm5lcjogVVtdLFxyXG4gICAgICAgIG91dGVyS2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBLLFxyXG4gICAgICAgIGlubmVyS2V5U2VsZWN0b3I6IChpdGVtOiBVKSA9PiBLLFxyXG4gICAgICAgIHJlc3VsdFNlbGVjdG9yOiAob3V0ZXI6IFQsIGlubmVyR3JvdXA6IFVbXSkgPT4gUlxyXG4gICAgKTogUltdIHtcclxuICAgICAgICBjb25zdCBpbm5lckdyb3VwcyA9IG5ldyBNYXA8SywgVVtdPigpO1xyXG5cclxuICAgICAgICAvLyBHcm91cCB0aGUgaW5uZXIgYXJyYXkgYnkga2V5c1xyXG4gICAgICAgIGlubmVyLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gaW5uZXJLZXlTZWxlY3RvcihpdGVtKTtcclxuICAgICAgICAgICAgaWYgKCFpbm5lckdyb3Vwcy5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgaW5uZXJHcm91cHMuc2V0KGtleSwgW10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlubmVyR3JvdXBzLmdldChrZXkpIS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBQZXJmb3JtIHRoZSBncm91cCBqb2luXHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSW10gPSBbXTtcclxuICAgICAgICB0aGlzLmZvckVhY2goKG91dGVySXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBvdXRlcktleVNlbGVjdG9yKG91dGVySXRlbSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlubmVyR3JvdXAgPSBpbm5lckdyb3Vwcy5nZXQoa2V5KSB8fCBbXTtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0U2VsZWN0b3Iob3V0ZXJJdGVtLCBpbm5lckdyb3VwKSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybXMgYSBtYW55LXRvLW1hbnkgam9pbiBvbiB0d28gYXJyYXlzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBrZXkgc2VsZWN0b3JzLlxyXG4gICAgICogQHBhcmFtIGlubmVyIFRoZSBpbm5lciBhcnJheSB0byBqb2luLlxyXG4gICAgICogQHBhcmFtIG91dGVyS2V5U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIGtleSBmb3IgdGhlIG91dGVyIGFycmF5LlxyXG4gICAgICogQHBhcmFtIGlubmVyS2V5U2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIGtleSBmb3IgdGhlIGlubmVyIGFycmF5LlxyXG4gICAgICogQHBhcmFtIHJlc3VsdFNlbGVjdG9yIEEgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSByZXN1bHQgZm9yIGVhY2ggam9pbmVkIHBhaXIuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBqb2luZWQgcGFpcnMuXHJcbiAgICAgKi9cclxuICAgIEFycmF5LnByb3RvdHlwZS5tYW55VG9NYW55Sm9pbiA9IGZ1bmN0aW9uIDxULCBVLCBLLCBSPihcclxuICAgICAgICB0aGlzOiBUW10sXHJcbiAgICAgICAgaW5uZXI6IFVbXSxcclxuICAgICAgICBvdXRlcktleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gSyxcclxuICAgICAgICBpbm5lcktleVNlbGVjdG9yOiAoaXRlbTogVSkgPT4gSyxcclxuICAgICAgICByZXN1bHRTZWxlY3RvcjogKG91dGVyOiBULCBpbm5lcjogVSkgPT4gUlxyXG4gICAgKTogUltdIHtcclxuICAgICAgICBjb25zdCBpbm5lckdyb3VwcyA9IG5ldyBNYXA8SywgVVtdPigpO1xyXG5cclxuICAgICAgICAvLyBHcm91cCB0aGUgaW5uZXIgYXJyYXkgYnkga2V5c1xyXG4gICAgICAgIGlubmVyLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gaW5uZXJLZXlTZWxlY3RvcihpdGVtKTtcclxuICAgICAgICAgICAgaWYgKCFpbm5lckdyb3Vwcy5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgaW5uZXJHcm91cHMuc2V0KGtleSwgW10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlubmVyR3JvdXBzLmdldChrZXkpIS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBQZXJmb3JtIHRoZSBtYW55LXRvLW1hbnkgam9pblxyXG4gICAgICAgIGNvbnN0IHJlc3VsdDogUltdID0gW107XHJcbiAgICAgICAgdGhpcy5mb3JFYWNoKChvdXRlckl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gb3V0ZXJLZXlTZWxlY3RvcihvdXRlckl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBpbm5lckdyb3VwID0gaW5uZXJHcm91cHMuZ2V0KGtleSkgfHwgW107XHJcbiAgICAgICAgICAgIGlubmVyR3JvdXAuZm9yRWFjaCgoaW5uZXJJdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRTZWxlY3RvcihvdXRlckl0ZW0sIGlubmVySXRlbSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgYW4gYXJyYXkgb2Ygb2JqZWN0cyBpbmNsdWRlcyBhIGdpdmVuIGtleS5cclxuICAgICAqIEB0aGlzIFRoZSBzb3VyY2UgYXJyYXkuXHJcbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIGFuIGFycmF5IGluY2x1ZGVzIGEgZ2l2ZW4ga2V5LlxyXG4gICAgICovXHJcbiAgICBBcnJheS5wcm90b3R5cGUuaW5jbHVkZXNCeSA9IGZ1bmN0aW9uIDxULCBLPih0aGlzOiBUW10sIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gSywgdmFsdWU6IEspOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zb21lKChpdGVtKSA9PiBrZXlTZWxlY3RvcihpdGVtKSA9PT0gdmFsdWUpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbHRlciBhbmQgbWFwIGluIG9uZSBvcGVyYXRpb24uXHJcbiAgICAgKiBAdGhpcyBUaGUgc291cmNlIGFycmF5LlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgbWFwcGVkIGVsZW1lbnRzLlxyXG4gICAgICovXHJcbiAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyTWFwID0gZnVuY3Rpb24gPFQsIFU+KHRoaXM6IFRbXSwgZmlsdGVyTWFwOiAoaXRlbTogVCkgPT4gVSB8IHVuZGVmaW5lZCk6IFVbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwKGZpbHRlck1hcCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSB1bmRlZmluZWQpIGFzIFVbXTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCB7fTtcclxuIiwiXCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHQsZT1yZXF1aXJlKFwicmVhY3RcIikscj0odD1lKSYmXCJvYmplY3RcIj09dHlwZW9mIHQmJlwiZGVmYXVsdFwiaW4gdD90LmRlZmF1bHQ6dCxuPXJlcXVpcmUoXCJyZWFjdC1yb3V0ZXItZG9tXCIpO2Z1bmN0aW9uIG8oKXtvPWZ1bmN0aW9uKCl7cmV0dXJuIHR9O3ZhciB0PXt9LGU9T2JqZWN0LnByb3RvdHlwZSxyPWUuaGFzT3duUHJvcGVydHksbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGk9bi5pdGVyYXRvcnx8XCJAQGl0ZXJhdG9yXCIsYT1uLmFzeW5jSXRlcmF0b3J8fFwiQEBhc3luY0l0ZXJhdG9yXCIsYz1uLnRvU3RyaW5nVGFnfHxcIkBAdG9TdHJpbmdUYWdcIjtmdW5jdGlvbiB1KHQsZSxyKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e3Uoe30sXCJcIil9Y2F0Y2godCl7dT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbZV09cn19ZnVuY3Rpb24gZih0LGUscixuKXt2YXIgbz1PYmplY3QuY3JlYXRlKChlJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGg/ZTpoKS5wcm90b3R5cGUpLGk9bmV3IE8obnx8W10pO3JldHVybiBvLl9pbnZva2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVwic3VzcGVuZGVkU3RhcnRcIjtyZXR1cm4gZnVuY3Rpb24obyxpKXtpZihcImV4ZWN1dGluZ1wiPT09bil0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO2lmKFwiY29tcGxldGVkXCI9PT1uKXtpZihcInRocm93XCI9PT1vKXRocm93IGk7cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9byxyLmFyZz1pOzspe3ZhciBhPXIuZGVsZWdhdGU7aWYoYSl7dmFyIGM9YihhLHIpO2lmKGMpe2lmKGM9PT1sKWNvbnRpbnVlO3JldHVybiBjfX1pZihcIm5leHRcIj09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoXCJ0aHJvd1wiPT09ci5tZXRob2Qpe2lmKFwic3VzcGVuZGVkU3RhcnRcIj09PW4pdGhyb3cgbj1cImNvbXBsZXRlZFwiLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2VcInJldHVyblwiPT09ci5tZXRob2QmJnIuYWJydXB0KFwicmV0dXJuXCIsci5hcmcpO249XCJleGVjdXRpbmdcIjt2YXIgdT1zKHQsZSxyKTtpZihcIm5vcm1hbFwiPT09dS50eXBlKXtpZihuPXIuZG9uZT9cImNvbXBsZXRlZFwiOlwic3VzcGVuZGVkWWllbGRcIix1LmFyZz09PWwpY29udGludWU7cmV0dXJue3ZhbHVlOnUuYXJnLGRvbmU6ci5kb25lfX1cInRocm93XCI9PT11LnR5cGUmJihuPVwiY29tcGxldGVkXCIsci5tZXRob2Q9XCJ0aHJvd1wiLHIuYXJnPXUuYXJnKX19fSh0LHIsaSksb31mdW5jdGlvbiBzKHQsZSxyKXt0cnl7cmV0dXJue3R5cGU6XCJub3JtYWxcIixhcmc6dC5jYWxsKGUscil9fWNhdGNoKHQpe3JldHVybnt0eXBlOlwidGhyb3dcIixhcmc6dH19fXQud3JhcD1mO3ZhciBsPXt9O2Z1bmN0aW9uIGgoKXt9ZnVuY3Rpb24gdigpe31mdW5jdGlvbiBwKCl7fXZhciBkPXt9O3UoZCxpLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB5PU9iamVjdC5nZXRQcm90b3R5cGVPZixtPXkmJnkoeShfKFtdKSkpO20mJm0hPT1lJiZyLmNhbGwobSxpKSYmKGQ9bSk7dmFyIGc9cC5wcm90b3R5cGU9aC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkKTtmdW5jdGlvbiB3KHQpe1tcIm5leHRcIixcInRocm93XCIsXCJyZXR1cm5cIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dSh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiB4KHQsZSl7dmFyIG47dGhpcy5faW52b2tlPWZ1bmN0aW9uKG8saSl7ZnVuY3Rpb24gYSgpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24obixhKXshZnVuY3Rpb24gbihvLGksYSxjKXt2YXIgdT1zKHRbb10sdCxpKTtpZihcInRocm93XCIhPT11LnR5cGUpe3ZhciBmPXUuYXJnLGw9Zi52YWx1ZTtyZXR1cm4gbCYmXCJvYmplY3RcIj09dHlwZW9mIGwmJnIuY2FsbChsLFwiX19hd2FpdFwiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKFwibmV4dFwiLHQsYSxjKX0pLChmdW5jdGlvbih0KXtuKFwidGhyb3dcIix0LGEsYyl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2YudmFsdWU9dCxhKGYpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKFwidGhyb3dcIix0LGEsYyl9KSl9Yyh1LmFyZyl9KG8saSxuLGEpfSkpfXJldHVybiBuPW4/bi50aGVuKGEsYSk6YSgpfX1mdW5jdGlvbiBiKHQsZSl7dmFyIHI9dC5pdGVyYXRvcltlLm1ldGhvZF07aWYodm9pZCAwPT09cil7aWYoZS5kZWxlZ2F0ZT1udWxsLFwidGhyb3dcIj09PWUubWV0aG9kKXtpZih0Lml0ZXJhdG9yLnJldHVybiYmKGUubWV0aG9kPVwicmV0dXJuXCIsZS5hcmc9dm9pZCAwLGIodCxlKSxcInRocm93XCI9PT1lLm1ldGhvZCkpcmV0dXJuIGw7ZS5tZXRob2Q9XCJ0aHJvd1wiLGUuYXJnPW5ldyBUeXBlRXJyb3IoXCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICd0aHJvdycgbWV0aG9kXCIpfXJldHVybiBsfXZhciBuPXMocix0Lml0ZXJhdG9yLGUuYXJnKTtpZihcInRocm93XCI9PT1uLnR5cGUpcmV0dXJuIGUubWV0aG9kPVwidGhyb3dcIixlLmFyZz1uLmFyZyxlLmRlbGVnYXRlPW51bGwsbDt2YXIgbz1uLmFyZztyZXR1cm4gbz9vLmRvbmU/KGVbdC5yZXN1bHROYW1lXT1vLnZhbHVlLGUubmV4dD10Lm5leHRMb2MsXCJyZXR1cm5cIiE9PWUubWV0aG9kJiYoZS5tZXRob2Q9XCJuZXh0XCIsZS5hcmc9dm9pZCAwKSxlLmRlbGVnYXRlPW51bGwsbCk6bzooZS5tZXRob2Q9XCJ0aHJvd1wiLGUuYXJnPW5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKSxlLmRlbGVnYXRlPW51bGwsbCl9ZnVuY3Rpb24gRSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPVwibm9ybWFsXCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIE8odCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOlwicm9vdFwifV0sdC5mb3JFYWNoKEUsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gXyh0KXtpZih0KXt2YXIgZT10W2ldO2lmKGUpcmV0dXJuIGUuY2FsbCh0KTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lm5leHQpcmV0dXJuIHQ7aWYoIWlzTmFOKHQubGVuZ3RoKSl7dmFyIG49LTEsbz1mdW5jdGlvbiBlKCl7Zm9yKDsrK248dC5sZW5ndGg7KWlmKHIuY2FsbCh0LG4pKXJldHVybiBlLnZhbHVlPXRbbl0sZS5kb25lPSExLGU7cmV0dXJuIGUudmFsdWU9dm9pZCAwLGUuZG9uZT0hMCxlfTtyZXR1cm4gby5uZXh0PW99fXJldHVybntuZXh0Omp9fWZ1bmN0aW9uIGooKXtyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXJldHVybiB2LnByb3RvdHlwZT1wLHUoZyxcImNvbnN0cnVjdG9yXCIscCksdShwLFwiY29uc3RydWN0b3JcIix2KSx2LmRpc3BsYXlOYW1lPXUocCxjLFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksdC5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXZ8fFwiR2VuZXJhdG9yRnVuY3Rpb25cIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sdC5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQscCk6KHQuX19wcm90b19fPXAsdSh0LGMsXCJHZW5lcmF0b3JGdW5jdGlvblwiKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnKSx0fSx0LmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSx3KHgucHJvdG90eXBlKSx1KHgucHJvdG90eXBlLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5Bc3luY0l0ZXJhdG9yPXgsdC5hc3luYz1mdW5jdGlvbihlLHIsbixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyB4KGYoZSxyLG4sbyksaSk7cmV0dXJuIHQuaXNHZW5lcmF0b3JGdW5jdGlvbihyKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sdyhnKSx1KGcsYyxcIkdlbmVyYXRvclwiKSx1KGcsaSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSx1KGcsXCJ0b1N0cmluZ1wiLChmdW5jdGlvbigpe3JldHVyblwiW29iamVjdCBHZW5lcmF0b3JdXCJ9KSksdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaChyKTtyZXR1cm4gZS5yZXZlcnNlKCksZnVuY3Rpb24gcigpe2Zvcig7ZS5sZW5ndGg7KXt2YXIgbj1lLnBvcCgpO2lmKG4gaW4gdClyZXR1cm4gci52YWx1ZT1uLHIuZG9uZT0hMSxyfXJldHVybiByLmRvbmU9ITAscn19LHQudmFsdWVzPV8sTy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk8scmVzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dm9pZCAwLHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9XCJuZXh0XCIsdGhpcy5hcmc9dm9pZCAwLHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKEwpLCF0KWZvcih2YXIgZSBpbiB0aGlzKVwidFwiPT09ZS5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLGUpJiYhaXNOYU4oK2Uuc2xpY2UoMSkpJiYodGhpc1tlXT12b2lkIDApfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbih0KXtpZih0aGlzLmRvbmUpdGhyb3cgdDt2YXIgZT10aGlzO2Z1bmN0aW9uIG4ocixuKXtyZXR1cm4gYS50eXBlPVwidGhyb3dcIixhLmFyZz10LGUubmV4dD1yLG4mJihlLm1ldGhvZD1cIm5leHRcIixlLmFyZz12b2lkIDApLCEhbn1mb3IodmFyIG89dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO28+PTA7LS1vKXt2YXIgaT10aGlzLnRyeUVudHJpZXNbb10sYT1pLmNvbXBsZXRpb247aWYoXCJyb290XCI9PT1pLnRyeUxvYylyZXR1cm4gbihcImVuZFwiKTtpZihpLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgYz1yLmNhbGwoaSxcImNhdGNoTG9jXCIpLHU9ci5jYWxsKGksXCJmaW5hbGx5TG9jXCIpO2lmKGMmJnUpe2lmKHRoaXMucHJldjxpLmNhdGNoTG9jKXJldHVybiBuKGkuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxpLmZpbmFsbHlMb2MpcmV0dXJuIG4oaS5maW5hbGx5TG9jKX1lbHNlIGlmKGMpe2lmKHRoaXMucHJldjxpLmNhdGNoTG9jKXJldHVybiBuKGkuY2F0Y2hMb2MsITApfWVsc2V7aWYoIXUpdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7aWYodGhpcy5wcmV2PGkuZmluYWxseUxvYylyZXR1cm4gbihpLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sXCJmaW5hbGx5TG9jXCIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoXCJicmVha1wiPT09dHx8XCJjb250aW51ZVwiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPVwibmV4dFwiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbCk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZihcInRocm93XCI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuXCJicmVha1wiPT09dC50eXBlfHxcImNvbnRpbnVlXCI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOlwicmV0dXJuXCI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD1cInJldHVyblwiLHRoaXMubmV4dD1cImVuZFwiKTpcIm5vcm1hbFwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGx9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgcj10aGlzLnRyeUVudHJpZXNbZV07aWYoci5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShyLmNvbXBsZXRpb24sci5hZnRlckxvYyksTChyKSxsfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW2VdO2lmKHIudHJ5TG9jPT09dCl7dmFyIG49ci5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PW4udHlwZSl7dmFyIG89bi5hcmc7TChyKX1yZXR1cm4gb319dGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCBjYXRjaCBhdHRlbXB0XCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6Xyh0KSxyZXN1bHROYW1lOmUsbmV4dExvYzpyfSxcIm5leHRcIj09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dm9pZCAwKSxsfX0sdH1mdW5jdGlvbiBpKHQsZSxyLG4sbyxpLGEpe3RyeXt2YXIgYz10W2ldKGEpLHU9Yy52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCByKHQpfWMuZG9uZT9lKHUpOlByb21pc2UucmVzb2x2ZSh1KS50aGVuKG4sbyl9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLHI9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixvKXt2YXIgYT10LmFwcGx5KGUscik7ZnVuY3Rpb24gYyh0KXtpKGEsbixvLGMsdSxcIm5leHRcIix0KX1mdW5jdGlvbiB1KHQpe2koYSxuLG8sYyx1LFwidGhyb3dcIix0KX1jKHZvaWQgMCl9KSl9fWZ1bmN0aW9uIGMoKXtyZXR1cm4oYz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciByPWFyZ3VtZW50c1tlXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKHRbbl09cltuXSl9cmV0dXJuIHR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIHU9ci5jcmVhdGVDb250ZXh0KG51bGwpLGY9ZnVuY3Rpb24odCl7dmFyIG49dC5jaGlsZHJlbixvPWUudXNlU3RhdGUoITEpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQodS5Qcm92aWRlcix7dmFsdWU6e3Jlc29sdmU6b1swXSxzZXRSZXNvbHZlOm9bMV19fSxuKX0scz1mdW5jdGlvbigpe30sbD17aXNBY3RpdmU6ITEscHJvY2VlZDpzLGNhbmNlbDpzfSxoPWZ1bmN0aW9uKHQpe3ZhciBpPXQud2hlbixmPXQuY2hpbGRyZW4scz1mdW5jdGlvbih0KXt2YXIgcj1lLnVzZVN0YXRlKGwpLG49clswXSxpPXJbMV0sZj0oZS51c2VDb250ZXh0KHUpfHx7fSkuc2V0UmVzb2x2ZTtlLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5pc0FjdGl2ZSYmKHdpbmRvdy5vbmJlZm9yZXVubG9hZD1mdW5jdGlvbigpe3JldHVybiExfSksZnVuY3Rpb24oKXtuLmlzQWN0aXZlJiYod2luZG93Lm9uYmVmb3JldW5sb2FkPW51bGwpfX0pLFtuXSk7dmFyIHM9ZS51c2VDYWxsYmFjaygoZnVuY3Rpb24oKXtpKGwpfSksW10pLGg9ZS51c2VDYWxsYmFjayhmdW5jdGlvbigpe3ZhciBlPWEobygpLm1hcmsoKGZ1bmN0aW9uIGUocil7dmFyIHU7cmV0dXJuIG8oKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gdT1uZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBlPWEobygpLm1hcmsoKGZ1bmN0aW9uIGUobixhKXtyZXR1cm4gbygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKGkoKGZ1bmN0aW9uKHQpe3JldHVybiBjKHt9LHQse2lzQWN0aXZlOiEwLHByb2NlZWQ6bixjYW5jZWw6YX0pfSkpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpe2UubmV4dD02O2JyZWFrfXJldHVybiBlLm5leHQ9NCx0KHIubG9jYXRpb24sci5hY3Rpb24pO2Nhc2UgNDplLnNlbnR8fG4oITApO2Nhc2UgNjpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpO3JldHVybiBmdW5jdGlvbih0LHIpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLGUuYWJydXB0KFwicmV0dXJuXCIsdS50aGVuKChmdW5jdGlvbigpe3JldHVybiBudWxsPT1mfHxmKCEwKSxpKGMoe30sbix7aXNBY3RpdmU6ITF9KSksITB9KSwoZnVuY3Rpb24oKXtyZXR1cm4gaShjKHt9LG4se2lzQWN0aXZlOiExfSkpLG51bGw9PWZ8fGYoITEpLCExfSkpKTtjYXNlIDI6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxbbixmLHRdKTtyZXR1cm4gYyh7fSxuLHtvbkNvbmZpcm06aCxyZXNldENvbmZpcm1hdGlvbjpzfSl9KGkpLGg9cy5vbkNvbmZpcm0sdj1zLnJlc2V0Q29uZmlybWF0aW9uLHA9cy5pc0FjdGl2ZSxkPXMucHJvY2VlZCx5PXMuY2FuY2VsLG09KGUudXNlQ29udGV4dCh1KXx8e30pLnJlc29sdmU7cmV0dXJuIGZ1bmN0aW9uKHQscil7dm9pZCAwPT09ciYmKHI9ITApO3ZhciBvPWUudXNlQ29udGV4dChuLlVOU0FGRV9OYXZpZ2F0aW9uQ29udGV4dCkubmF2aWdhdG9yO2UudXNlRWZmZWN0KChmdW5jdGlvbigpe2lmKHIpe3ZhciBlPW8uYmxvY2soKGZ1bmN0aW9uKHIpe3ZhciBuPWMoe30scix7cmV0cnk6ZnVuY3Rpb24oKXtlKCksci5yZXRyeSgpfX0pO3Qobil9KSk7cmV0dXJuIGV9fSksW28sdCxyXSl9KGUudXNlQ2FsbGJhY2soZnVuY3Rpb24oKXt2YXIgdD1hKG8oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3JldHVybiBvKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLGgoZSk7Y2FzZSAyOnQuc2VudCYmKHYoKSxlLnJldHJ5KCkpO2Nhc2UgNDpjYXNlXCJlbmRcIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFt2LGhdKSxpJiYhbSksci5jcmVhdGVFbGVtZW50KFwiZGl2XCIsbnVsbCxmKHtpc0FjdGl2ZTpwLG9uQ29uZmlybTpkLG9uQ2FuY2VsOnl9KSl9O2V4cG9ydHMuZGVmYXVsdD1mdW5jdGlvbih0KXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGYsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoaCxPYmplY3QuYXNzaWduKHt9LHQpKSl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtcm91dGVyLXByb21wdC5janMucHJvZHVjdGlvbi5taW4uanMubWFwXG4iLCJcbid1c2Ugc3RyaWN0J1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vcmVhY3Qtcm91dGVyLXByb21wdC5janMucHJvZHVjdGlvbi5taW4uanMnKVxufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL3JlYWN0LXJvdXRlci1wcm9tcHQuY2pzLmRldmVsb3BtZW50LmpzJylcbn1cbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHVzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXNoaW0ucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBlPXJlcXVpcmUoXCJyZWFjdFwiKTtmdW5jdGlvbiBoKGEsYil7cmV0dXJuIGE9PT1iJiYoMCE9PWF8fDEvYT09PTEvYil8fGEhPT1hJiZiIT09Yn12YXIgaz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpoLGw9ZS51c2VTdGF0ZSxtPWUudXNlRWZmZWN0LG49ZS51c2VMYXlvdXRFZmZlY3QscD1lLnVzZURlYnVnVmFsdWU7ZnVuY3Rpb24gcShhLGIpe3ZhciBkPWIoKSxmPWwoe2luc3Q6e3ZhbHVlOmQsZ2V0U25hcHNob3Q6Yn19KSxjPWZbMF0uaW5zdCxnPWZbMV07bihmdW5jdGlvbigpe2MudmFsdWU9ZDtjLmdldFNuYXBzaG90PWI7cihjKSYmZyh7aW5zdDpjfSl9LFthLGQsYl0pO20oZnVuY3Rpb24oKXtyKGMpJiZnKHtpbnN0OmN9KTtyZXR1cm4gYShmdW5jdGlvbigpe3IoYykmJmcoe2luc3Q6Y30pfSl9LFthXSk7cChkKTtyZXR1cm4gZH1cbmZ1bmN0aW9uIHIoYSl7dmFyIGI9YS5nZXRTbmFwc2hvdDthPWEudmFsdWU7dHJ5e3ZhciBkPWIoKTtyZXR1cm4hayhhLGQpfWNhdGNoKGYpe3JldHVybiEwfX1mdW5jdGlvbiB0KGEsYil7cmV0dXJuIGIoKX12YXIgdT1cInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ/dDpxO2V4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmU9dm9pZCAwIT09ZS51c2VTeW5jRXh0ZXJuYWxTdG9yZT9lLnVzZVN5bmNFeHRlcm5hbFN0b3JlOnU7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vY2pzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXNoaW0ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vY2pzL3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXNoaW0uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHVzZS1zeW5jLWV4dGVybmFsLXN0b3JlLXNoaW0vd2l0aC1zZWxlY3Rvci5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7dmFyIGg9cmVxdWlyZShcInJlYWN0XCIpLG49cmVxdWlyZShcInVzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3NoaW1cIik7ZnVuY3Rpb24gcChhLGIpe3JldHVybiBhPT09YiYmKDAhPT1hfHwxL2E9PT0xL2IpfHxhIT09YSYmYiE9PWJ9dmFyIHE9XCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6cCxyPW4udXNlU3luY0V4dGVybmFsU3RvcmUsdD1oLnVzZVJlZix1PWgudXNlRWZmZWN0LHY9aC51c2VNZW1vLHc9aC51c2VEZWJ1Z1ZhbHVlO1xuZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3Rvcj1mdW5jdGlvbihhLGIsZSxsLGcpe3ZhciBjPXQobnVsbCk7aWYobnVsbD09PWMuY3VycmVudCl7dmFyIGY9e2hhc1ZhbHVlOiExLHZhbHVlOm51bGx9O2MuY3VycmVudD1mfWVsc2UgZj1jLmN1cnJlbnQ7Yz12KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhKXtpZighYyl7Yz0hMDtkPWE7YT1sKGEpO2lmKHZvaWQgMCE9PWcmJmYuaGFzVmFsdWUpe3ZhciBiPWYudmFsdWU7aWYoZyhiLGEpKXJldHVybiBrPWJ9cmV0dXJuIGs9YX1iPWs7aWYocShkLGEpKXJldHVybiBiO3ZhciBlPWwoYSk7aWYodm9pZCAwIT09ZyYmZyhiLGUpKXJldHVybiBiO2Q9YTtyZXR1cm4gaz1lfXZhciBjPSExLGQsayxtPXZvaWQgMD09PWU/bnVsbDplO3JldHVybltmdW5jdGlvbigpe3JldHVybiBhKGIoKSl9LG51bGw9PT1tP3ZvaWQgMDpmdW5jdGlvbigpe3JldHVybiBhKG0oKSl9XX0sW2IsZSxsLGddKTt2YXIgZD1yKGEsY1swXSxjWzFdKTtcbnUoZnVuY3Rpb24oKXtmLmhhc1ZhbHVlPSEwO2YudmFsdWU9ZH0sW2RdKTt3KGQpO3JldHVybiBkfTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi9janMvdXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUtc2hpbS93aXRoLXNlbGVjdG9yLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uL2Nqcy91c2Utc3luYy1leHRlcm5hbC1zdG9yZS1zaGltL3dpdGgtc2VsZWN0b3IuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8vIERlZmF1bHQgdG8gYSBkdW1teSBcImJhdGNoXCIgaW1wbGVtZW50YXRpb24gdGhhdCBqdXN0IHJ1bnMgdGhlIGNhbGxiYWNrXG5mdW5jdGlvbiBkZWZhdWx0Tm9vcEJhdGNoKGNhbGxiYWNrKSB7XG4gIGNhbGxiYWNrKCk7XG59XG5cbmxldCBiYXRjaCA9IGRlZmF1bHROb29wQmF0Y2g7IC8vIEFsbG93IGluamVjdGluZyBhbm90aGVyIGJhdGNoaW5nIGZ1bmN0aW9uIGxhdGVyXG5cbmV4cG9ydCBjb25zdCBzZXRCYXRjaCA9IG5ld0JhdGNoID0+IGJhdGNoID0gbmV3QmF0Y2g7IC8vIFN1cHBseSBhIGdldHRlciBqdXN0IHRvIHNraXAgZGVhbGluZyB3aXRoIEVTTSBiaW5kaW5nc1xuXG5leHBvcnQgY29uc3QgZ2V0QmF0Y2ggPSAoKSA9PiBiYXRjaDsiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGNvbnN0IFJlYWN0UmVkdXhDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIFJlYWN0UmVkdXhDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1JlYWN0UmVkdXgnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWFjdFJlZHV4Q29udGV4dDsiLCJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVhY3RSZWR1eENvbnRleHQgfSBmcm9tICcuLi9jb21wb25lbnRzL0NvbnRleHQnO1xuXG4vKipcclxuICogQSBob29rIHRvIGFjY2VzcyB0aGUgdmFsdWUgb2YgdGhlIGBSZWFjdFJlZHV4Q29udGV4dGAuIFRoaXMgaXMgYSBsb3ctbGV2ZWxcclxuICogaG9vayB0aGF0IHlvdSBzaG91bGQgdXN1YWxseSBub3QgbmVlZCB0byBjYWxsIGRpcmVjdGx5LlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7YW55fSB0aGUgdmFsdWUgb2YgdGhlIGBSZWFjdFJlZHV4Q29udGV4dGBcclxuICpcclxuICogQGV4YW1wbGVcclxuICpcclxuICogaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG4gKiBpbXBvcnQgeyB1c2VSZWR1eENvbnRleHQgfSBmcm9tICdyZWFjdC1yZWR1eCdcclxuICpcclxuICogZXhwb3J0IGNvbnN0IENvdW50ZXJDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgY29uc3QgeyBzdG9yZSB9ID0gdXNlUmVkdXhDb250ZXh0KClcclxuICogICByZXR1cm4gPGRpdj57c3RvcmUuZ2V0U3RhdGUoKX08L2Rpdj5cclxuICogfVxyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWR1eENvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZUNvbnRleHQoUmVhY3RSZWR1eENvbnRleHQpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFjb250ZXh0VmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCBmaW5kIHJlYWN0LXJlZHV4IGNvbnRleHQgdmFsdWU7IHBsZWFzZSBlbnN1cmUgdGhlIGNvbXBvbmVudCBpcyB3cmFwcGVkIGluIGEgPFByb3ZpZGVyPicpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHRWYWx1ZTtcbn0iLCJleHBvcnQgY29uc3Qgbm90SW5pdGlhbGl6ZWQgPSAoKSA9PiB7XG4gIHRocm93IG5ldyBFcnJvcigndVNFUyBub3QgaW5pdGlhbGl6ZWQhJyk7XG59OyIsImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZURlYnVnVmFsdWUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWR1eENvbnRleHQgYXMgdXNlRGVmYXVsdFJlZHV4Q29udGV4dCB9IGZyb20gJy4vdXNlUmVkdXhDb250ZXh0JztcbmltcG9ydCB7IFJlYWN0UmVkdXhDb250ZXh0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9Db250ZXh0JztcbmltcG9ydCB7IG5vdEluaXRpYWxpemVkIH0gZnJvbSAnLi4vdXRpbHMvdXNlU3luY0V4dGVybmFsU3RvcmUnO1xubGV0IHVzZVN5bmNFeHRlcm5hbFN0b3JlV2l0aFNlbGVjdG9yID0gbm90SW5pdGlhbGl6ZWQ7XG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZVVzZVNlbGVjdG9yID0gZm4gPT4ge1xuICB1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciA9IGZuO1xufTtcblxuY29uc3QgcmVmRXF1YWxpdHkgPSAoYSwgYikgPT4gYSA9PT0gYjtcbi8qKlxyXG4gKiBIb29rIGZhY3RvcnksIHdoaWNoIGNyZWF0ZXMgYSBgdXNlU2VsZWN0b3JgIGhvb2sgYm91bmQgdG8gYSBnaXZlbiBjb250ZXh0LlxyXG4gKlxyXG4gKiBAcGFyYW0ge1JlYWN0LkNvbnRleHR9IFtjb250ZXh0PVJlYWN0UmVkdXhDb250ZXh0XSBDb250ZXh0IHBhc3NlZCB0byB5b3VyIGA8UHJvdmlkZXI+YC5cclxuICogQHJldHVybnMge0Z1bmN0aW9ufSBBIGB1c2VTZWxlY3RvcmAgaG9vayBib3VuZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRleHQuXHJcbiAqL1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3Rvckhvb2soY29udGV4dCA9IFJlYWN0UmVkdXhDb250ZXh0KSB7XG4gIGNvbnN0IHVzZVJlZHV4Q29udGV4dCA9IGNvbnRleHQgPT09IFJlYWN0UmVkdXhDb250ZXh0ID8gdXNlRGVmYXVsdFJlZHV4Q29udGV4dCA6ICgpID0+IHVzZUNvbnRleHQoY29udGV4dCk7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VTZWxlY3RvcihzZWxlY3RvciwgZXF1YWxpdHlGbiA9IHJlZkVxdWFsaXR5KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgbXVzdCBwYXNzIGEgc2VsZWN0b3IgdG8gdXNlU2VsZWN0b3JgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBzZWxlY3RvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFlvdSBtdXN0IHBhc3MgYSBmdW5jdGlvbiBhcyBhIHNlbGVjdG9yIHRvIHVzZVNlbGVjdG9yYCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZXF1YWxpdHlGbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFlvdSBtdXN0IHBhc3MgYSBmdW5jdGlvbiBhcyBhbiBlcXVhbGl0eSBmdW5jdGlvbiB0byB1c2VTZWxlY3RvcmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIHN0b3JlLFxuICAgICAgc3Vic2NyaXB0aW9uLFxuICAgICAgZ2V0U2VydmVyU3RhdGVcbiAgICB9ID0gdXNlUmVkdXhDb250ZXh0KCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRTdGF0ZSA9IHVzZVN5bmNFeHRlcm5hbFN0b3JlV2l0aFNlbGVjdG9yKHN1YnNjcmlwdGlvbi5hZGROZXN0ZWRTdWIsIHN0b3JlLmdldFN0YXRlLCBnZXRTZXJ2ZXJTdGF0ZSB8fCBzdG9yZS5nZXRTdGF0ZSwgc2VsZWN0b3IsIGVxdWFsaXR5Rm4pO1xuICAgIHVzZURlYnVnVmFsdWUoc2VsZWN0ZWRTdGF0ZSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkU3RhdGU7XG4gIH07XG59XG4vKipcclxuICogQSBob29rIHRvIGFjY2VzcyB0aGUgcmVkdXggc3RvcmUncyBzdGF0ZS4gVGhpcyBob29rIHRha2VzIGEgc2VsZWN0b3IgZnVuY3Rpb25cclxuICogYXMgYW4gYXJndW1lbnQuIFRoZSBzZWxlY3RvciBpcyBjYWxsZWQgd2l0aCB0aGUgc3RvcmUgc3RhdGUuXHJcbiAqXHJcbiAqIFRoaXMgaG9vayB0YWtlcyBhbiBvcHRpb25hbCBlcXVhbGl0eSBjb21wYXJpc29uIGZ1bmN0aW9uIGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyXHJcbiAqIHRoYXQgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgdGhlIHdheSB0aGUgc2VsZWN0ZWQgc3RhdGUgaXMgY29tcGFyZWQgdG8gZGV0ZXJtaW5lXHJcbiAqIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBuZWVkcyB0byBiZSByZS1yZW5kZXJlZC5cclxuICpcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gc2VsZWN0b3IgdGhlIHNlbGVjdG9yIGZ1bmN0aW9uXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb249fSBlcXVhbGl0eUZuIHRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgZXF1YWxpdHlcclxuICpcclxuICogQHJldHVybnMge2FueX0gdGhlIHNlbGVjdGVkIHN0YXRlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIGltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcclxuICogaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCdcclxuICpcclxuICogZXhwb3J0IGNvbnN0IENvdW50ZXJDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgY29uc3QgY291bnRlciA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHN0YXRlLmNvdW50ZXIpXHJcbiAqICAgcmV0dXJuIDxkaXY+e2NvdW50ZXJ9PC9kaXY+XHJcbiAqIH1cclxuICovXG5cbmV4cG9ydCBjb25zdCB1c2VTZWxlY3RvciA9IC8qI19fUFVSRV9fKi9jcmVhdGVTZWxlY3Rvckhvb2soKTsiLCJmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShyLCBlKSB7XG4gIGlmIChudWxsID09IHIpIHJldHVybiB7fTtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgbiBpbiByKSBpZiAoe30uaGFzT3duUHJvcGVydHkuY2FsbChyLCBuKSkge1xuICAgIGlmIChlLmluY2x1ZGVzKG4pKSBjb250aW51ZTtcbiAgICB0W25dID0gcltuXTtcbiAgfVxuICByZXR1cm4gdDtcbn1cbmV4cG9ydCB7IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIGFzIGRlZmF1bHQgfTsiLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO3ZhciBiPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsYz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLGQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LGU9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsZj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCxnPWI/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LGg9Yj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksaz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLGw9Yj9TeW1ib2wuZm9yKFwicmVhY3QuYXN5bmNfbW9kZVwiKTo2MDExMSxtPWI/U3ltYm9sLmZvcihcInJlYWN0LmNvbmN1cnJlbnRfbW9kZVwiKTo2MDExMSxuPWI/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLHA9Yj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMscT1iP1xuU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIik6NjAxMjAscj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpOjYwMTE1LHQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNix2PWI/U3ltYm9sLmZvcihcInJlYWN0LmJsb2NrXCIpOjYwMTIxLHc9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik6NjAxMTcseD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5yZXNwb25kZXJcIik6NjAxMTgseT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTo2MDExOTtcbmZ1bmN0aW9uIHooYSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSl7dmFyIHU9YS4kJHR5cGVvZjtzd2l0Y2godSl7Y2FzZSBjOnN3aXRjaChhPWEudHlwZSxhKXtjYXNlIGw6Y2FzZSBtOmNhc2UgZTpjYXNlIGc6Y2FzZSBmOmNhc2UgcDpyZXR1cm4gYTtkZWZhdWx0OnN3aXRjaChhPWEmJmEuJCR0eXBlb2YsYSl7Y2FzZSBrOmNhc2UgbjpjYXNlIHQ6Y2FzZSByOmNhc2UgaDpyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB1fX1jYXNlIGQ6cmV0dXJuIHV9fX1mdW5jdGlvbiBBKGEpe3JldHVybiB6KGEpPT09bX1leHBvcnRzLkFzeW5jTW9kZT1sO2V4cG9ydHMuQ29uY3VycmVudE1vZGU9bTtleHBvcnRzLkNvbnRleHRDb25zdW1lcj1rO2V4cG9ydHMuQ29udGV4dFByb3ZpZGVyPWg7ZXhwb3J0cy5FbGVtZW50PWM7ZXhwb3J0cy5Gb3J3YXJkUmVmPW47ZXhwb3J0cy5GcmFnbWVudD1lO2V4cG9ydHMuTGF6eT10O2V4cG9ydHMuTWVtbz1yO2V4cG9ydHMuUG9ydGFsPWQ7XG5leHBvcnRzLlByb2ZpbGVyPWc7ZXhwb3J0cy5TdHJpY3RNb2RlPWY7ZXhwb3J0cy5TdXNwZW5zZT1wO2V4cG9ydHMuaXNBc3luY01vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIEEoYSl8fHooYSk9PT1sfTtleHBvcnRzLmlzQ29uY3VycmVudE1vZGU9QTtleHBvcnRzLmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09a307ZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWh9O2V4cG9ydHMuaXNFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1jfTtleHBvcnRzLmlzRm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PW59O2V4cG9ydHMuaXNGcmFnbWVudD1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWV9O2V4cG9ydHMuaXNMYXp5PWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09dH07XG5leHBvcnRzLmlzTWVtbz1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXJ9O2V4cG9ydHMuaXNQb3J0YWw9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1kfTtleHBvcnRzLmlzUHJvZmlsZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1nfTtleHBvcnRzLmlzU3RyaWN0TW9kZT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWZ9O2V4cG9ydHMuaXNTdXNwZW5zZT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXB9O1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oYSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBhfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYXx8YT09PWV8fGE9PT1tfHxhPT09Z3x8YT09PWZ8fGE9PT1wfHxhPT09cXx8XCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmKGEuJCR0eXBlb2Y9PT10fHxhLiQkdHlwZW9mPT09cnx8YS4kJHR5cGVvZj09PWh8fGEuJCR0eXBlb2Y9PT1rfHxhLiQkdHlwZW9mPT09bnx8YS4kJHR5cGVvZj09PXd8fGEuJCR0eXBlb2Y9PT14fHxhLiQkdHlwZW9mPT09eXx8YS4kJHR5cGVvZj09PXYpfTtleHBvcnRzLnR5cGVPZj16O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciByZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSwgWWFob28hIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xudmFyIFJFQUNUX1NUQVRJQ1MgPSB7XG4gIGNoaWxkQ29udGV4dFR5cGVzOiB0cnVlLFxuICBjb250ZXh0VHlwZTogdHJ1ZSxcbiAgY29udGV4dFR5cGVzOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBnZXREZWZhdWx0UHJvcHM6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjogdHJ1ZSxcbiAgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiB0cnVlLFxuICBtaXhpbnM6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBLTk9XTl9TVEFUSUNTID0ge1xuICBuYW1lOiB0cnVlLFxuICBsZW5ndGg6IHRydWUsXG4gIHByb3RvdHlwZTogdHJ1ZSxcbiAgY2FsbGVyOiB0cnVlLFxuICBjYWxsZWU6IHRydWUsXG4gIGFyZ3VtZW50czogdHJ1ZSxcbiAgYXJpdHk6IHRydWVcbn07XG52YXIgRk9SV0FSRF9SRUZfU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgcmVuZGVyOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWVcbn07XG52YXIgTUVNT19TVEFUSUNTID0ge1xuICAnJCR0eXBlb2YnOiB0cnVlLFxuICBjb21wYXJlOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgVFlQRV9TVEFUSUNTID0ge307XG5UWVBFX1NUQVRJQ1NbcmVhY3RJcy5Gb3J3YXJkUmVmXSA9IEZPUldBUkRfUkVGX1NUQVRJQ1M7XG5UWVBFX1NUQVRJQ1NbcmVhY3RJcy5NZW1vXSA9IE1FTU9fU1RBVElDUztcblxuZnVuY3Rpb24gZ2V0U3RhdGljcyhjb21wb25lbnQpIHtcbiAgLy8gUmVhY3QgdjE2LjExIGFuZCBiZWxvd1xuICBpZiAocmVhY3RJcy5pc01lbW8oY29tcG9uZW50KSkge1xuICAgIHJldHVybiBNRU1PX1NUQVRJQ1M7XG4gIH0gLy8gUmVhY3QgdjE2LjEyIGFuZCBhYm92ZVxuXG5cbiAgcmV0dXJuIFRZUEVfU1RBVElDU1tjb21wb25lbnRbJyQkdHlwZW9mJ11dIHx8IFJFQUNUX1NUQVRJQ1M7XG59XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIGdldFByb3RvdHlwZU9mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIG9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5mdW5jdGlvbiBob2lzdE5vblJlYWN0U3RhdGljcyh0YXJnZXRDb21wb25lbnQsIHNvdXJjZUNvbXBvbmVudCwgYmxhY2tsaXN0KSB7XG4gIGlmICh0eXBlb2Ygc291cmNlQ29tcG9uZW50ICE9PSAnc3RyaW5nJykge1xuICAgIC8vIGRvbid0IGhvaXN0IG92ZXIgc3RyaW5nIChodG1sKSBjb21wb25lbnRzXG4gICAgaWYgKG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgdmFyIGluaGVyaXRlZENvbXBvbmVudCA9IGdldFByb3RvdHlwZU9mKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICAgIGlmIChpbmhlcml0ZWRDb21wb25lbnQgJiYgaW5oZXJpdGVkQ29tcG9uZW50ICE9PSBvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgICAgaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBpbmhlcml0ZWRDb21wb25lbnQsIGJsYWNrbGlzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICBpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICBrZXlzID0ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZUNvbXBvbmVudCkpO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXRTdGF0aWNzID0gZ2V0U3RhdGljcyh0YXJnZXRDb21wb25lbnQpO1xuICAgIHZhciBzb3VyY2VTdGF0aWNzID0gZ2V0U3RhdGljcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKCFLTk9XTl9TVEFUSUNTW2tleV0gJiYgIShibGFja2xpc3QgJiYgYmxhY2tsaXN0W2tleV0pICYmICEoc291cmNlU3RhdGljcyAmJiBzb3VyY2VTdGF0aWNzW2tleV0pICYmICEodGFyZ2V0U3RhdGljcyAmJiB0YXJnZXRTdGF0aWNzW2tleV0pKSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZUNvbXBvbmVudCwga2V5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIEF2b2lkIGZhaWx1cmVzIGZyb20gcmVhZC1vbmx5IHByb3BlcnRpZXNcbiAgICAgICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXRDb21wb25lbnQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldENvbXBvbmVudDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBob2lzdE5vblJlYWN0U3RhdGljcztcbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYj1TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSxjPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksZD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksZT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksZj1TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksZz1TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIiksaD1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxrPVN5bWJvbC5mb3IoXCJyZWFjdC5zZXJ2ZXJfY29udGV4dFwiKSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxtPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxuPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLHA9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIikscT1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSx0PVN5bWJvbC5mb3IoXCJyZWFjdC5vZmZzY3JlZW5cIiksdTt1PVN5bWJvbC5mb3IoXCJyZWFjdC5tb2R1bGUucmVmZXJlbmNlXCIpO1xuZnVuY3Rpb24gdihhKXtpZihcIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hKXt2YXIgcj1hLiQkdHlwZW9mO3N3aXRjaChyKXtjYXNlIGI6c3dpdGNoKGE9YS50eXBlLGEpe2Nhc2UgZDpjYXNlIGY6Y2FzZSBlOmNhc2UgbTpjYXNlIG46cmV0dXJuIGE7ZGVmYXVsdDpzd2l0Y2goYT1hJiZhLiQkdHlwZW9mLGEpe2Nhc2UgazpjYXNlIGg6Y2FzZSBsOmNhc2UgcTpjYXNlIHA6Y2FzZSBnOnJldHVybiBhO2RlZmF1bHQ6cmV0dXJuIHJ9fWNhc2UgYzpyZXR1cm4gcn19fWV4cG9ydHMuQ29udGV4dENvbnN1bWVyPWg7ZXhwb3J0cy5Db250ZXh0UHJvdmlkZXI9ZztleHBvcnRzLkVsZW1lbnQ9YjtleHBvcnRzLkZvcndhcmRSZWY9bDtleHBvcnRzLkZyYWdtZW50PWQ7ZXhwb3J0cy5MYXp5PXE7ZXhwb3J0cy5NZW1vPXA7ZXhwb3J0cy5Qb3J0YWw9YztleHBvcnRzLlByb2ZpbGVyPWY7ZXhwb3J0cy5TdHJpY3RNb2RlPWU7ZXhwb3J0cy5TdXNwZW5zZT1tO1xuZXhwb3J0cy5TdXNwZW5zZUxpc3Q9bjtleHBvcnRzLmlzQXN5bmNNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuITF9O2V4cG9ydHMuaXNDb25jdXJyZW50TW9kZT1mdW5jdGlvbigpe3JldHVybiExfTtleHBvcnRzLmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGEpe3JldHVybiB2KGEpPT09aH07ZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihhKXtyZXR1cm4gdihhKT09PWd9O2V4cG9ydHMuaXNFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1ifTtleHBvcnRzLmlzRm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm4gdihhKT09PWx9O2V4cG9ydHMuaXNGcmFnbWVudD1mdW5jdGlvbihhKXtyZXR1cm4gdihhKT09PWR9O2V4cG9ydHMuaXNMYXp5PWZ1bmN0aW9uKGEpe3JldHVybiB2KGEpPT09cX07ZXhwb3J0cy5pc01lbW89ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYSk9PT1wfTtcbmV4cG9ydHMuaXNQb3J0YWw9ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYSk9PT1jfTtleHBvcnRzLmlzUHJvZmlsZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYSk9PT1mfTtleHBvcnRzLmlzU3RyaWN0TW9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdihhKT09PWV9O2V4cG9ydHMuaXNTdXNwZW5zZT1mdW5jdGlvbihhKXtyZXR1cm4gdihhKT09PW19O2V4cG9ydHMuaXNTdXNwZW5zZUxpc3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYSk9PT1ufTtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGEpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYXx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGF8fGE9PT1kfHxhPT09Znx8YT09PWV8fGE9PT1tfHxhPT09bnx8YT09PXR8fFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJihhLiQkdHlwZW9mPT09cXx8YS4kJHR5cGVvZj09PXB8fGEuJCR0eXBlb2Y9PT1nfHxhLiQkdHlwZW9mPT09aHx8YS4kJHR5cGVvZj09PWx8fGEuJCR0eXBlb2Y9PT11fHx2b2lkIDAhPT1hLmdldE1vZHVsZUlkKT8hMDohMX07ZXhwb3J0cy50eXBlT2Y9djtcbiIsImltcG9ydCB7IGdldEJhdGNoIH0gZnJvbSAnLi9iYXRjaCc7IC8vIGVuY2Fwc3VsYXRlcyB0aGUgc3Vic2NyaXB0aW9uIGxvZ2ljIGZvciBjb25uZWN0aW5nIGEgY29tcG9uZW50IHRvIHRoZSByZWR1eCBzdG9yZSwgYXNcbi8vIHdlbGwgYXMgbmVzdGluZyBzdWJzY3JpcHRpb25zIG9mIGRlc2NlbmRhbnQgY29tcG9uZW50cywgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoZVxuLy8gYW5jZXN0b3IgY29tcG9uZW50cyByZS1yZW5kZXIgYmVmb3JlIGRlc2NlbmRhbnRzXG5cbmZ1bmN0aW9uIGNyZWF0ZUxpc3RlbmVyQ29sbGVjdGlvbigpIHtcbiAgY29uc3QgYmF0Y2ggPSBnZXRCYXRjaCgpO1xuICBsZXQgZmlyc3QgPSBudWxsO1xuICBsZXQgbGFzdCA9IG51bGw7XG4gIHJldHVybiB7XG4gICAgY2xlYXIoKSB7XG4gICAgICBmaXJzdCA9IG51bGw7XG4gICAgICBsYXN0ID0gbnVsbDtcbiAgICB9LFxuXG4gICAgbm90aWZ5KCkge1xuICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICBsZXQgbGlzdGVuZXIgPSBmaXJzdDtcblxuICAgICAgICB3aGlsZSAobGlzdGVuZXIpIHtcbiAgICAgICAgICBsaXN0ZW5lci5jYWxsYmFjaygpO1xuICAgICAgICAgIGxpc3RlbmVyID0gbGlzdGVuZXIubmV4dDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcblxuICAgIGdldCgpIHtcbiAgICAgIGxldCBsaXN0ZW5lcnMgPSBbXTtcbiAgICAgIGxldCBsaXN0ZW5lciA9IGZpcnN0O1xuXG4gICAgICB3aGlsZSAobGlzdGVuZXIpIHtcbiAgICAgICAgbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgICAgICBsaXN0ZW5lciA9IGxpc3RlbmVyLm5leHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaXN0ZW5lcnM7XG4gICAgfSxcblxuICAgIHN1YnNjcmliZShjYWxsYmFjaykge1xuICAgICAgbGV0IGlzU3Vic2NyaWJlZCA9IHRydWU7XG4gICAgICBsZXQgbGlzdGVuZXIgPSBsYXN0ID0ge1xuICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgICAgcHJldjogbGFzdFxuICAgICAgfTtcblxuICAgICAgaWYgKGxpc3RlbmVyLnByZXYpIHtcbiAgICAgICAgbGlzdGVuZXIucHJldi5uZXh0ID0gbGlzdGVuZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaXJzdCA9IGxpc3RlbmVyO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgIGlmICghaXNTdWJzY3JpYmVkIHx8IGZpcnN0ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGlzU3Vic2NyaWJlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChsaXN0ZW5lci5uZXh0KSB7XG4gICAgICAgICAgbGlzdGVuZXIubmV4dC5wcmV2ID0gbGlzdGVuZXIucHJldjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYXN0ID0gbGlzdGVuZXIucHJldjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0ZW5lci5wcmV2KSB7XG4gICAgICAgICAgbGlzdGVuZXIucHJldi5uZXh0ID0gbGlzdGVuZXIubmV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaXJzdCA9IGxpc3RlbmVyLm5leHQ7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gIH07XG59XG5cbmNvbnN0IG51bGxMaXN0ZW5lcnMgPSB7XG4gIG5vdGlmeSgpIHt9LFxuXG4gIGdldDogKCkgPT4gW11cbn07XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Vic2NyaXB0aW9uKHN0b3JlLCBwYXJlbnRTdWIpIHtcbiAgbGV0IHVuc3Vic2NyaWJlO1xuICBsZXQgbGlzdGVuZXJzID0gbnVsbExpc3RlbmVycztcblxuICBmdW5jdGlvbiBhZGROZXN0ZWRTdWIobGlzdGVuZXIpIHtcbiAgICB0cnlTdWJzY3JpYmUoKTtcbiAgICByZXR1cm4gbGlzdGVuZXJzLnN1YnNjcmliZShsaXN0ZW5lcik7XG4gIH1cblxuICBmdW5jdGlvbiBub3RpZnlOZXN0ZWRTdWJzKCkge1xuICAgIGxpc3RlbmVycy5ub3RpZnkoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZVdyYXBwZXIoKSB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbi5vblN0YXRlQ2hhbmdlKSB7XG4gICAgICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3Vic2NyaWJlZCgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih1bnN1YnNjcmliZSk7XG4gIH1cblxuICBmdW5jdGlvbiB0cnlTdWJzY3JpYmUoKSB7XG4gICAgaWYgKCF1bnN1YnNjcmliZSkge1xuICAgICAgdW5zdWJzY3JpYmUgPSBwYXJlbnRTdWIgPyBwYXJlbnRTdWIuYWRkTmVzdGVkU3ViKGhhbmRsZUNoYW5nZVdyYXBwZXIpIDogc3RvcmUuc3Vic2NyaWJlKGhhbmRsZUNoYW5nZVdyYXBwZXIpO1xuICAgICAgbGlzdGVuZXJzID0gY3JlYXRlTGlzdGVuZXJDb2xsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdHJ5VW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKHVuc3Vic2NyaWJlKSB7XG4gICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgdW5zdWJzY3JpYmUgPSB1bmRlZmluZWQ7XG4gICAgICBsaXN0ZW5lcnMuY2xlYXIoKTtcbiAgICAgIGxpc3RlbmVycyA9IG51bGxMaXN0ZW5lcnM7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgIGFkZE5lc3RlZFN1YixcbiAgICBub3RpZnlOZXN0ZWRTdWJzLFxuICAgIGhhbmRsZUNoYW5nZVdyYXBwZXIsXG4gICAgaXNTdWJzY3JpYmVkLFxuICAgIHRyeVN1YnNjcmliZSxcbiAgICB0cnlVbnN1YnNjcmliZSxcbiAgICBnZXRMaXN0ZW5lcnM6ICgpID0+IGxpc3RlbmVyc1xuICB9O1xuICByZXR1cm4gc3Vic2NyaXB0aW9uO1xufSIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAncmVhY3QnOyAvLyBSZWFjdCBjdXJyZW50bHkgdGhyb3dzIGEgd2FybmluZyB3aGVuIHVzaW5nIHVzZUxheW91dEVmZmVjdCBvbiB0aGUgc2VydmVyLlxuLy8gVG8gZ2V0IGFyb3VuZCBpdCwgd2UgY2FuIGNvbmRpdGlvbmFsbHkgdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIgKG5vLW9wKSBhbmRcbi8vIHVzZUxheW91dEVmZmVjdCBpbiB0aGUgYnJvd3Nlci4gV2UgbmVlZCB1c2VMYXlvdXRFZmZlY3QgdG8gZW5zdXJlIHRoZSBzdG9yZVxuLy8gc3Vic2NyaXB0aW9uIGNhbGxiYWNrIGFsd2F5cyBoYXMgdGhlIHNlbGVjdG9yIGZyb20gdGhlIGxhdGVzdCByZW5kZXIgY29tbWl0XG4vLyBhdmFpbGFibGUsIG90aGVyd2lzZSBhIHN0b3JlIHVwZGF0ZSBtYXkgaGFwcGVuIGJldHdlZW4gcmVuZGVyIGFuZCB0aGUgZWZmZWN0LFxuLy8gd2hpY2ggbWF5IGNhdXNlIG1pc3NlZCB1cGRhdGVzOyB3ZSBhbHNvIG11c3QgZW5zdXJlIHRoZSBzdG9yZSBzdWJzY3JpcHRpb25cbi8vIGlzIGNyZWF0ZWQgc3luY2hyb25vdXNseSwgb3RoZXJ3aXNlIGEgc3RvcmUgdXBkYXRlIG1heSBvY2N1ciBiZWZvcmUgdGhlXG4vLyBzdWJzY3JpcHRpb24gaXMgY3JlYXRlZCBhbmQgYW4gaW5jb25zaXN0ZW50IHN0YXRlIG1heSBiZSBvYnNlcnZlZFxuLy8gTWF0Y2hlcyBsb2dpYyBpbiBSZWFjdCdzIGBzaGFyZWQvRXhlY3V0aW9uRW52aXJvbm1lbnRgIGZpbGVcblxuZXhwb3J0IGNvbnN0IGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcpO1xuZXhwb3J0IGNvbnN0IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSBjYW5Vc2VET00gPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7IiwiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSZWFjdFJlZHV4Q29udGV4dCB9IGZyb20gJy4vQ29udGV4dCc7XG5pbXBvcnQgeyBjcmVhdGVTdWJzY3JpcHRpb24gfSBmcm9tICcuLi91dGlscy9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJy4uL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QnO1xuXG5mdW5jdGlvbiBQcm92aWRlcih7XG4gIHN0b3JlLFxuICBjb250ZXh0LFxuICBjaGlsZHJlbixcbiAgc2VydmVyU3RhdGVcbn0pIHtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY3JlYXRlU3Vic2NyaXB0aW9uKHN0b3JlKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RvcmUsXG4gICAgICBzdWJzY3JpcHRpb24sXG4gICAgICBnZXRTZXJ2ZXJTdGF0ZTogc2VydmVyU3RhdGUgPyAoKSA9PiBzZXJ2ZXJTdGF0ZSA6IHVuZGVmaW5lZFxuICAgIH07XG4gIH0sIFtzdG9yZSwgc2VydmVyU3RhdGVdKTtcbiAgY29uc3QgcHJldmlvdXNTdGF0ZSA9IHVzZU1lbW8oKCkgPT4gc3RvcmUuZ2V0U3RhdGUoKSwgW3N0b3JlXSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHN1YnNjcmlwdGlvblxuICAgIH0gPSBjb250ZXh0VmFsdWU7XG4gICAgc3Vic2NyaXB0aW9uLm9uU3RhdGVDaGFuZ2UgPSBzdWJzY3JpcHRpb24ubm90aWZ5TmVzdGVkU3VicztcbiAgICBzdWJzY3JpcHRpb24udHJ5U3Vic2NyaWJlKCk7XG5cbiAgICBpZiAocHJldmlvdXNTdGF0ZSAhPT0gc3RvcmUuZ2V0U3RhdGUoKSkge1xuICAgICAgc3Vic2NyaXB0aW9uLm5vdGlmeU5lc3RlZFN1YnMoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnRyeVVuc3Vic2NyaWJlKCk7XG4gICAgICBzdWJzY3JpcHRpb24ub25TdGF0ZUNoYW5nZSA9IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9LCBbY29udGV4dFZhbHVlLCBwcmV2aW91c1N0YXRlXSk7XG4gIGNvbnN0IENvbnRleHQgPSBjb250ZXh0IHx8IFJlYWN0UmVkdXhDb250ZXh0OyAvLyBAdHMtaWdub3JlICdBbnlBY3Rpb24nIGlzIGFzc2lnbmFibGUgdG8gdGhlIGNvbnN0cmFpbnQgb2YgdHlwZSAnQScsIGJ1dCAnQScgY291bGQgYmUgaW5zdGFudGlhdGVkIHdpdGggYSBkaWZmZXJlbnQgc3VidHlwZVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGNvbnRleHRWYWx1ZVxuICB9LCBjaGlsZHJlbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb3ZpZGVyOyIsImltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSZWFjdFJlZHV4Q29udGV4dCB9IGZyb20gJy4uL2NvbXBvbmVudHMvQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VSZWR1eENvbnRleHQgYXMgdXNlRGVmYXVsdFJlZHV4Q29udGV4dCB9IGZyb20gJy4vdXNlUmVkdXhDb250ZXh0Jztcbi8qKlxyXG4gKiBIb29rIGZhY3RvcnksIHdoaWNoIGNyZWF0ZXMgYSBgdXNlU3RvcmVgIGhvb2sgYm91bmQgdG8gYSBnaXZlbiBjb250ZXh0LlxyXG4gKlxyXG4gKiBAcGFyYW0ge1JlYWN0LkNvbnRleHR9IFtjb250ZXh0PVJlYWN0UmVkdXhDb250ZXh0XSBDb250ZXh0IHBhc3NlZCB0byB5b3VyIGA8UHJvdmlkZXI+YC5cclxuICogQHJldHVybnMge0Z1bmN0aW9ufSBBIGB1c2VTdG9yZWAgaG9vayBib3VuZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRleHQuXHJcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RvcmVIb29rKGNvbnRleHQgPSBSZWFjdFJlZHV4Q29udGV4dCkge1xuICBjb25zdCB1c2VSZWR1eENvbnRleHQgPSAvLyBAdHMtaWdub3JlXG4gIGNvbnRleHQgPT09IFJlYWN0UmVkdXhDb250ZXh0ID8gdXNlRGVmYXVsdFJlZHV4Q29udGV4dCA6ICgpID0+IHVzZUNvbnRleHQoY29udGV4dCk7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VTdG9yZSgpIHtcbiAgICBjb25zdCB7XG4gICAgICBzdG9yZVxuICAgIH0gPSB1c2VSZWR1eENvbnRleHQoKTsgLy8gQHRzLWlnbm9yZVxuXG4gICAgcmV0dXJuIHN0b3JlO1xuICB9O1xufVxuLyoqXHJcbiAqIEEgaG9vayB0byBhY2Nlc3MgdGhlIHJlZHV4IHN0b3JlLlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7YW55fSB0aGUgcmVkdXggc3RvcmVcclxuICpcclxuICogQGV4YW1wbGVcclxuICpcclxuICogaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG4gKiBpbXBvcnQgeyB1c2VTdG9yZSB9IGZyb20gJ3JlYWN0LXJlZHV4J1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgRXhhbXBsZUNvbXBvbmVudCA9ICgpID0+IHtcclxuICogICBjb25zdCBzdG9yZSA9IHVzZVN0b3JlKClcclxuICogICByZXR1cm4gPGRpdj57c3RvcmUuZ2V0U3RhdGUoKX08L2Rpdj5cclxuICogfVxyXG4gKi9cblxuZXhwb3J0IGNvbnN0IHVzZVN0b3JlID0gLyojX19QVVJFX18qL2NyZWF0ZVN0b3JlSG9vaygpOyIsImltcG9ydCB7IFJlYWN0UmVkdXhDb250ZXh0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9Db250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlIGFzIHVzZURlZmF1bHRTdG9yZSwgY3JlYXRlU3RvcmVIb29rIH0gZnJvbSAnLi91c2VTdG9yZSc7XG4vKipcclxuICogSG9vayBmYWN0b3J5LCB3aGljaCBjcmVhdGVzIGEgYHVzZURpc3BhdGNoYCBob29rIGJvdW5kIHRvIGEgZ2l2ZW4gY29udGV4dC5cclxuICpcclxuICogQHBhcmFtIHtSZWFjdC5Db250ZXh0fSBbY29udGV4dD1SZWFjdFJlZHV4Q29udGV4dF0gQ29udGV4dCBwYXNzZWQgdG8geW91ciBgPFByb3ZpZGVyPmAuXHJcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSBgdXNlRGlzcGF0Y2hgIGhvb2sgYm91bmQgdG8gdGhlIHNwZWNpZmllZCBjb250ZXh0LlxyXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpc3BhdGNoSG9vayhjb250ZXh0ID0gUmVhY3RSZWR1eENvbnRleHQpIHtcbiAgY29uc3QgdXNlU3RvcmUgPSAvLyBAdHMtaWdub3JlXG4gIGNvbnRleHQgPT09IFJlYWN0UmVkdXhDb250ZXh0ID8gdXNlRGVmYXVsdFN0b3JlIDogY3JlYXRlU3RvcmVIb29rKGNvbnRleHQpO1xuICByZXR1cm4gZnVuY3Rpb24gdXNlRGlzcGF0Y2goKSB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VTdG9yZSgpOyAvLyBAdHMtaWdub3JlXG5cbiAgICByZXR1cm4gc3RvcmUuZGlzcGF0Y2g7XG4gIH07XG59XG4vKipcclxuICogQSBob29rIHRvIGFjY2VzcyB0aGUgcmVkdXggYGRpc3BhdGNoYCBmdW5jdGlvbi5cclxuICpcclxuICogQHJldHVybnMge2FueXxmdW5jdGlvbn0gcmVkdXggc3RvcmUncyBgZGlzcGF0Y2hgIGZ1bmN0aW9uXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIGltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xyXG4gKiBpbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4J1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgQ291bnRlckNvbXBvbmVudCA9ICh7IHZhbHVlIH0pID0+IHtcclxuICogICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKClcclxuICogICBjb25zdCBpbmNyZWFzZUNvdW50ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiBkaXNwYXRjaCh7IHR5cGU6ICdpbmNyZWFzZS1jb3VudGVyJyB9KSwgW10pXHJcbiAqICAgcmV0dXJuIChcclxuICogICAgIDxkaXY+XHJcbiAqICAgICAgIDxzcGFuPnt2YWx1ZX08L3NwYW4+XHJcbiAqICAgICAgIDxidXR0b24gb25DbGljaz17aW5jcmVhc2VDb3VudGVyfT5JbmNyZWFzZSBjb3VudGVyPC9idXR0b24+XHJcbiAqICAgICA8L2Rpdj5cclxuICogICApXHJcbiAqIH1cclxuICovXG5cbmV4cG9ydCBjb25zdCB1c2VEaXNwYXRjaCA9IC8qI19fUFVSRV9fKi9jcmVhdGVEaXNwYXRjaEhvb2soKTsiLCIvLyBUaGUgcHJpbWFyeSBlbnRyeSBwb2ludCBhc3N1bWVzIHdlJ3JlIHdvcmtpbmcgd2l0aCBzdGFuZGFyZCBSZWFjdERPTS9STiwgYnV0XG4vLyBvbGRlciB2ZXJzaW9ucyB0aGF0IGRvIG5vdCBpbmNsdWRlIGB1c2VTeW5jRXh0ZXJuYWxTdG9yZWAgKFJlYWN0IDE2LjkgLSAxNy54KS5cbi8vIEJlY2F1c2Ugb2YgdGhhdCwgdGhlIHVzZVN5bmNFeHRlcm5hbFN0b3JlIGNvbXBhdCBzaGltIGlzIG5lZWRlZC5cbmltcG9ydCB7IHVzZVN5bmNFeHRlcm5hbFN0b3JlIH0gZnJvbSAndXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvc2hpbSc7XG5pbXBvcnQgeyB1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciB9IGZyb20gJ3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3NoaW0vd2l0aC1zZWxlY3Rvcic7XG5pbXBvcnQgeyB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyBhcyBiYXRjaCB9IGZyb20gJy4vdXRpbHMvcmVhY3RCYXRjaGVkVXBkYXRlcyc7XG5pbXBvcnQgeyBzZXRCYXRjaCB9IGZyb20gJy4vdXRpbHMvYmF0Y2gnO1xuaW1wb3J0IHsgaW5pdGlhbGl6ZVVzZVNlbGVjdG9yIH0gZnJvbSAnLi9ob29rcy91c2VTZWxlY3Rvcic7XG5pbXBvcnQgeyBpbml0aWFsaXplQ29ubmVjdCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25uZWN0JztcbmluaXRpYWxpemVVc2VTZWxlY3Rvcih1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3Rvcik7XG5pbml0aWFsaXplQ29ubmVjdCh1c2VTeW5jRXh0ZXJuYWxTdG9yZSk7IC8vIEVuYWJsZSBiYXRjaGVkIHVwZGF0ZXMgaW4gb3VyIHN1YnNjcmlwdGlvbnMgZm9yIHVzZVxuLy8gd2l0aCBzdGFuZGFyZCBSZWFjdCByZW5kZXJlcnMgKFJlYWN0RE9NLCBSZWFjdCBOYXRpdmUpXG5cbnNldEJhdGNoKGJhdGNoKTtcbmV4cG9ydCB7IGJhdGNoIH07XG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydHMnOyIsIi8qKiBFbnVtZXJhdGlvbiBkZXNjcmliaW5nIHRoZSBCYXNlIFBlcm1pc3Npb24gTGV2ZWwgZm9yIGEgQ29udGFjdCwgbm90ZTogQWRtaW4gd2lsbCBwcm9wYWdhdGUgdG8gYWxsIG90aGVyIFBlcm1pc3Npb24gTGV2ZWxzIG9uIGEgY29udGFjdC4gKi9cclxuZXhwb3J0IGVudW0gQmFzZVBlcm1pc3Npb25MZXZlbCB7XHJcbiAgICAvKiogQ3VzdG9tICovXHJcbiAgICBDdXN0b20gPSAxMDBfMDAwXzAwMSxcclxuXHJcbiAgICAvKiogTm8gQWNjZXNzICovXHJcbiAgICBcIk5vIEFjY2Vzc1wiID0gMTY0Xzk2MF8wMDAsXHJcblxyXG4gICAgLyoqIEFkbWluaXN0cmF0b3IgKi9cclxuICAgIEFkbWluaXN0cmF0b3IgPSAxNjRfOTYwXzAwMyxcclxufVxyXG4iLCIvKiogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBzdGF0ZWNvZGUgb2YgYSBDb250YWN0ICovXHJcbmV4cG9ydCBlbnVtIENvbnRhY3RTdGF0ZUNvZGUge1xyXG4gICAgLyoqIEFjdGl2ZSAqL1xyXG4gICAgQWN0aXZlID0gMCxcclxuXHJcbiAgICAvKiogSW5hY3RpdmUgKi9cclxuICAgIEluYWN0aXZlID0gMSxcclxufVxyXG4iLCIvKiogRW51bWVyYXRpb24gZGVzY3JpYmluZyBwb3J0YWwgY29udGFjdCB0eXBlcyAqL1xyXG5leHBvcnQgZW51bSBQb3J0YWxDb250YWN0VHlwZSB7XHJcbiAgICAvKiogQ29udGFjdCBpcyBhbiBpbmRpdmlkdWFsICovXHJcbiAgICBJbmRpdmlkdWFsQ29udGFjdCA9IDE2NDk2MDAwMCxcclxuXHJcbiAgICAvKiogQ29udGFjdCBpcyBhIHRlYW0gKi9cclxuICAgIFRlYW1Db250YWN0ID0gMTY0OTYwMDAxXHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgQWNjb3VudHMgc2l0ZSB0eXBlICovXHJcbmV4cG9ydCBlbnVtIEFjY291bnRTaXRlVHlwZSB7XHJcbiAgICAvKiogTGVnYWwgRW50aXR5ICovXHJcbiAgICBcIkxlZ2FsIEVudGl0eVwiID0gMSxcclxuXHJcbiAgICAvKiogSGVhZCBPZmZpY2UgKi9cclxuICAgIFwiSGVhZCBPZmZpY2VcIiA9IDIsXHJcblxyXG4gICAgLyoqIFNpdGUgKi9cclxuICAgIFNpdGUgPSAzLFxyXG5cclxuICAgIC8qKiBIb21lIFdvcmtlciAqL1xyXG4gICAgXCJIb21lIFdvcmtlclwiID0gNCxcclxuXHJcbiAgICAvKiogQmlsbGluZyBPbmx5ICovXHJcbiAgICBcIkJpbGxpbmcgT25seVwiID0gNSxcclxuXHJcbiAgICAvKiogRGF0YSBDZW50cmUgKi9cclxuICAgIFwiRGF0YSBDZW50cmVcIiA9IDYsXHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgc3RhdGVjb2RlIG9mIGFuIEFjY291bnQgKi9cclxuZXhwb3J0IGVudW0gQWNjb3VudFN0YXRlQ29kZSB7XHJcbiAgICAvKiogQWN0aXZlICovXHJcbiAgICBBY3RpdmUgPSAwLFxyXG4gICAgXHJcbiAgICAvKiogSW5hY3RpdmUgKi9cclxuICAgIEluYWN0aXZlID0gMSxcclxufVxyXG4iLCJpbXBvcnQgeyBBY2NvdW50U2l0ZVR5cGUgfSBmcm9tIFwiLi4vRW51bXMvQWNjb3VudFNpdGVUeXBlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQWNjb3VudFN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSBcIi4uL01vZGVscy9BY2NvdW50XCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciB0aGUgcG9ydGFsIHVzZXIncyBBY2NvdW50LiAqL1xyXG5leHBvcnQgY29uc3QgTW9ja0FjY291bnREYXRhOiBBY2NvdW50W10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgYWNjb3VudGlkOiBcImZkN2ZiYTgyLTFkODctNGYzMS1iOTg3LTFmZjVjNTAyODkwY1wiLFxyXG4gICAgICAgIG5hbWU6IFwiVmVnZXRhYmxlIENhc3RsZVwiLFxyXG4gICAgICAgIGFkZHJlc3MxX2NvbXBvc2l0ZTogXCJCSDUgNUhCIFZlZ2V0YWJsZSBDYXN0bGUgVGhlIFJvYWRcIixcclxuICAgICAgICBiaXN0ZWNoX3NpdGV0eXBlOiBBY2NvdW50U2l0ZVR5cGVbXCJEYXRhIENlbnRyZVwiXSxcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogbnVsbCxcclxuICAgICAgICBhZGRyZXNzMV9wb3N0YWxjb2RlOiBcIkJIMTIgNU5KU1wiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWNjb3VudFN0YXRlQ29kZVtcIkFjdGl2ZVwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWNjb3VudGlkOiBcImQwYTRkMWYxLWJhZTktMzdlMy05YjM2LWEzMWU4MDc4M2UwNVwiLFxyXG4gICAgICAgIG5hbWU6IFwiRnJ1aXQgRmFybVwiLFxyXG4gICAgICAgIGFkZHJlc3MxX2NvbXBvc2l0ZTogXCJCSDUgNUhCIEZydWl0IEZhcm0gVGhlIFJvYWRcIixcclxuICAgICAgICBiaXN0ZWNoX3NpdGV0eXBlOiBBY2NvdW50U2l0ZVR5cGVbXCJIZWFkIE9mZmljZVwiXSxcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogbnVsbCxcclxuICAgICAgICBhZGRyZXNzMV9wb3N0YWxjb2RlOiBcIkJIMTIgNU5KUlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWNjb3VudFN0YXRlQ29kZVtcIkFjdGl2ZVwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWNjb3VudGlkOiBcImViNmM3OWY0LWJhMDMtNDIxMC05ZmI1LTkzOWE1ZWVmOTNmN1wiLFxyXG4gICAgICAgIG5hbWU6IFwiQXBwbGUgVmlsbGFnZVwiLFxyXG4gICAgICAgIGFkZHJlc3MxX2NvbXBvc2l0ZTogXCJCSDUgNUhCIEFwcGxlIFZpbGxhZ2UgVGhlIFJvYWRcIixcclxuICAgICAgICBiaXN0ZWNoX3NpdGV0eXBlOiBBY2NvdW50U2l0ZVR5cGVbXCJTaXRlXCJdLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGFkZHJlc3MxX3Bvc3RhbGNvZGU6IFwiQkgxMiA1TkpLXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY2NvdW50U3RhdGVDb2RlW1wiSW5hY3RpdmVcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjY291bnRpZDogXCJjMGE0ZDFmMC1hYWU5LTQ3ZTMtOWIzNi1hMzFlODA3ODNlMDZcIixcclxuICAgICAgICBuYW1lOiBcIlRlc3QgQWNjb3VudCAyXCIsXHJcbiAgICAgICAgYWRkcmVzczFfY29tcG9zaXRlOiBcIkJINSA1SEIgVGVzdCBBY2NvdW50IDIgVGhlIFJvYWRcIixcclxuICAgICAgICBiaXN0ZWNoX3NpdGV0eXBlOiBBY2NvdW50U2l0ZVR5cGVbXCJMZWdhbCBFbnRpdHlcIl0sXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IFwiZTBjMDkxYjUtODRjYi00NjE3LWJlZmQtZTEwMGI3ZDZkZjcwXCIsXHJcbiAgICAgICAgYWRkcmVzczFfcG9zdGFsY29kZTogXCJCSDEyIDVOSkdcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjY291bnRTdGF0ZUNvZGVbXCJBY3RpdmVcIl0sXHJcbiAgICB9LFxyXG5dO1xyXG4iLCIvKiogRW51bSBSZXByZXNlbnRpbmcgYSBQb3J0YWwgQ29udGFjdHMgQ2FzZSBQZXJtaXNzaW9uIGxldmVsIGZvciBDYXNlcyBpbiB0aGVpciBMZWdhbCBFbnRpdHkuICovXHJcbmV4cG9ydCBlbnVtIENhc2VQZXJtaXNzaW9uTGV2ZWwge1xyXG4gICAgLyoqIE5vIEFjY2Vzcy4gKi9cclxuICAgIFwiTm8gQWNjZXNzXCIgPSAxMDBfMDAwXzAwMCxcclxuXHJcbiAgICAvKiogQ2FzZXMgd2hlcmUgdGhlIENvbnRhY3QgaXMgdGhlIE93bmVyLiAqL1xyXG4gICAgXCJPd25lZCBDYXNlc1wiID0gMTAwXzAwMF8wMDEsXHJcblxyXG4gICAgLyoqIEFsbCBDYXNlcyBmb3IgdGhlIENvbnRhY3QncyBMZWdhbCBFbnRpdHkuICovXHJcbiAgICBcIkFsbCBDYXNlc1wiID0gMTAwXzAwMF8wMDIsXHJcbn1cclxuIiwiLyoqIEVudW0gUmVwcmVzZW50aW5nIGEgUG9ydGFsIENvbnRhY3RzIENvbnRhY3QgUGVybWlzc2lvbiBsZXZlbCBmb3IgQ29udGFjdHMgaW4gdGhlaXIgTGVnYWwgRW50aXR5LiAqL1xyXG5leHBvcnQgZW51bSBDb250YWN0UGVybWlzc2lvbkxldmVsIHtcclxuICAgIC8qKiBObyBBY2Nlc3MuICovXHJcbiAgICBcIk5vIEFjY2Vzc1wiID0gMTAwXzAwMF8wMDAsXHJcblxyXG4gICAgLyoqIEFsbCBDb250YWN0cyBmb3IgdGhlIENvbnRhY3QncyBMZWdhbCBFbnRpdHkuICovXHJcbiAgICBcIkFsbCBDb250YWN0c1wiID0gMTAwXzAwMF8wMDIsXHJcbn1cclxuIiwiLyoqIEVudW0gUmVwcmVzZW50aW5nIGEgUG9ydGFsIENvbnRhY3RzIE9yZGVyIFBlcm1pc3Npb24gbGV2ZWwgZm9yIE9yZGVycyBpbiB0aGVpciBMZWdhbCBFbnRpdHkuICovXHJcbmV4cG9ydCBlbnVtIE9yZGVyUGVybWlzc2lvbkxldmVsIHtcclxuICAgIC8qKiBObyBBY2Nlc3MuICovXHJcbiAgICBcIk5vIEFjY2Vzc1wiID0gMTAwXzAwMF8wMDAsXHJcblxyXG4gICAgLyoqIE9yZGVycyB3aGVyZSB0aGUgQ29udGFjdCBpcyB0aGUgT3duZXIuICovXHJcbiAgICBcIk93bmVkIE9yZGVyc1wiID0gMTAwXzAwMF8wMDEsXHJcblxyXG4gICAgLyoqIEFsbCBPcmRlcnMgZm9yIHRoZSBDb250YWN0J3MgTGVnYWwgRW50aXR5LiAqL1xyXG4gICAgXCJBbGwgT3JkZXJzXCIgPSAxMDBfMDAwXzAwMixcclxufVxyXG4iLCIvKiogRW51bSBSZXByZXNlbnRpbmcgYSBQb3J0YWwgQ29udGFjdHMgSW52b2ljZSBQZXJtaXNzaW9uIGxldmVsIGZvciBJbnZvaWNlcyBpbiB0aGVpciBMZWdhbCBFbnRpdHkuICovXHJcbmV4cG9ydCBlbnVtIEludm9pY2VQZXJtaXNzaW9uTGV2ZWwge1xyXG4gICAgLyoqIE5vIEFjY2Vzcy4gKi9cclxuICAgIFwiTm8gQWNjZXNzXCIgPSAxMDBfMDAwXzAwMCxcclxuXHJcbiAgICAvKiogQWxsIEludm9pY2VzIGZvciB0aGUgQ29udGFjdCdzIExlZ2FsIEVudGl0eS4gKi9cclxuICAgIFwiQWxsIEludm9pY2VzXCIgPSAxMDBfMDAwXzAwMSxcclxufVxyXG4iLCIvKiogRW51bSBSZXByZXNlbnRpbmcgYSBQb3J0YWwgQ29udGFjdHMgUHJvamVjdCBQZXJtaXNzaW9uIGxldmVsIGZvciBQcm9qZWN0cyBpbiB0aGVpciBMZWdhbCBFbnRpdHkuICovXHJcbmV4cG9ydCBlbnVtIFByb2plY3RQZXJtaXNzaW9uTGV2ZWwge1xyXG4gICAgLyoqIE5vIEFjY2Vzcy4gKi9cclxuICAgIFwiTm8gQWNjZXNzXCIgPSAxMDBfMDAwXzAwMCxcclxuXHJcbiAgICAvKiogQWxsIFByb2plY3RzIGZvciB0aGUgQ29udGFjdCdzIExlZ2FsIEVudGl0eS4gKi9cclxuICAgIFwiQWxsIFByb2plY3RzXCIgPSAxMDBfMDAwXzAwMSxcclxufVxyXG4iLCJpbXBvcnQgeyBDb250YWN0U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbnRhY3RUeXBlIH0gZnJvbSBcIi4uL0VudW1zL1BvcnRhbENvbnRhY3RUeXBlXCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgTW9ja0FjY291bnREYXRhIH0gZnJvbSBcIi4vTW9ja0FjY291bnREYXRhXCI7XHJcbmltcG9ydCB7IENhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBDb250YWN0UGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgSW52b2ljZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9JbnZvaWNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgQ29udGFjdHMuICovXHJcbmV4cG9ydCBjb25zdCBNb2NrQ29udGFjdERhdGE6IHtcclxuICAgIHRvbnlTdGFyazogQ29udGFjdEZvclJldHJpZXZhbDtcclxuICAgIHRob3I6IENvbnRhY3RGb3JSZXRyaWV2YWw7XHJcbiAgICBicnVjZUJhbm5lcjogQ29udGFjdEZvclJldHJpZXZhbDtcclxuICAgIHN0ZXZlUm9nZXJzOiBDb250YWN0Rm9yUmV0cmlldmFsO1xyXG4gICAgbmlja0Z1cnk6IENvbnRhY3RGb3JSZXRyaWV2YWw7XHJcbiAgICBzY290dExhbmc6IENvbnRhY3RGb3JSZXRyaWV2YWw7XHJcbiAgICBwZXRlclF1aWxsOiBDb250YWN0Rm9yUmV0cmlldmFsO1xyXG4gICAgdGNoYWxsYTogQ29udGFjdEZvclJldHJpZXZhbDtcclxuICAgIHN0ZXBoZW5zdHJhbmdlOiBDb250YWN0Rm9yUmV0cmlldmFsO1xyXG4gICAgcGV0ZXJQYXJrZXI6IENvbnRhY3RGb3JSZXRyaWV2YWw7XHJcbn0gPSB7XHJcbiAgICB0b255U3Rhcms6IHtcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlOiBQb3J0YWxDb250YWN0VHlwZS5JbmRpdmlkdWFsQ29udGFjdCxcclxuICAgICAgICBjb250YWN0aWQ6IFwiZGYxZjlmNWUtZWU3Yi00MzE1LWIxNGYtYjQ0ZDU1MmI2YjYyXCIsXHJcbiAgICAgICAgZnVsbG5hbWU6IFwiVG9ueSBTdGFya1wiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJUb255XCIsXHJcbiAgICAgICAgbGFzdG5hbWU6IFwiU3RhcmtcIixcclxuICAgICAgICBfcGFyZW50Y3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbDogQmFzZVBlcm1pc3Npb25MZXZlbC5DdXN0b20sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsOiBDYXNlUGVybWlzc2lvbkxldmVsW1wiQWxsIENhc2VzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDogQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBDb250YWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsOiBPcmRlclBlcm1pc3Npb25MZXZlbFtcIkFsbCBPcmRlcnNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIFByb2plY3RzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbDogSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBJbnZvaWNlc1wiXSxcclxuICAgICAgICBlbWFpbGFkZHJlc3MxOiBcInRvbnlAc3RhcmtpbmR1c3RyaWVzLmNvbVwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTAyLTA2IDEyOjMzOjExWlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIkNoaWVmIFRlY2hub2xvZ3kgT2ZmaWNlclwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlOiBcImFjOTY5NTY1LWM5ZTYtZWUxMS05MDRkLTdjMWU1MjA0NzA4YlwiLFxyXG4gICAgICAgIHRlbGVwaG9uZTE6IFwiMDEyMDIgNjk3MzMxXCIsXHJcbiAgICAgICAgbW9iaWxlcGhvbmU6IFwiMDc5MDQgMzk5ODg4XCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zOiB0cnVlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcjogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIHN0YXRlY29kZTogQ29udGFjdFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgYWR4X2lkZW50aXR5X2xvZ29uZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBiaXN0ZWNoX2lzc2hvd25pbnBvcnRhbDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB0aG9yOiB7XHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZTogUG9ydGFsQ29udGFjdFR5cGUuSW5kaXZpZHVhbENvbnRhY3QsXHJcbiAgICAgICAgY29udGFjdGlkOiBcImI2MjlhOGEwLWIwZjctNGRmMi05NWU3LTQ3MDZlZmUxZjAxY1wiLFxyXG4gICAgICAgIGZ1bGxuYW1lOiBcIlRob3IgT2RpbnNvblwiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJUaG9yXCIsXHJcbiAgICAgICAgbGFzdG5hbWU6IFwiT2RpbnNvblwiLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsLkFkbWluaXN0cmF0b3IsXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsOiBDYXNlUGVybWlzc2lvbkxldmVsW1wiQWxsIENhc2VzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDogQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBDb250YWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsOiBPcmRlclBlcm1pc3Npb25MZXZlbFtcIkFsbCBPcmRlcnNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIFByb2plY3RzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbDogSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBJbnZvaWNlc1wiXSxcclxuICAgICAgICBlbWFpbGFkZHJlc3MxOiBcInBvaW50LmJyZWFrQGF2ZW5nZXJzLmNvbVwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTAyLTA2IDA3OjA1OjMyWlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIklrZWEgU2FsZXNtYW5cIixcclxuICAgICAgICBfYmlzdGVjaF9wcmltYXJ5c2l0ZV92YWx1ZTogXCJhYzk2OTU2NS1jOWU2LWVlMTEtOTA0ZC03YzFlNTIwNDcwOGJcIixcclxuICAgICAgICB0ZWxlcGhvbmUxOiBcIjAxMjAyIDg4NDEwMlwiLFxyXG4gICAgICAgIG1vYmlsZXBob25lOiBcIjA3OTEyIDM5OTgzNFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWFsZXJ0bm90aWZpY2F0aW9uczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlbWFqb3JpbmNpZGVudHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZXBld25vdGlmaWNhdGlvbnM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZXNlY3VyaXR5dXBkYXRlczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlY3VzdG9tZXJuZXdzbGV0dGVyOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwcm9kdWN0dXBkYXRlczogZmFsc2UsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBDb250YWN0U3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBhZHhfaWRlbnRpdHlfbG9nb25lbmFibGVkOiB0cnVlLFxyXG4gICAgICAgIGJpc3RlY2hfaXNzaG93bmlucG9ydGFsOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIGJydWNlQmFubmVyOiB7XHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZTogUG9ydGFsQ29udGFjdFR5cGUuSW5kaXZpZHVhbENvbnRhY3QsXHJcbiAgICAgICAgY29udGFjdGlkOiBcImNiY2E5Yjc0LTk2MmEtNGQ4OC05ZjNhLTdmMTczYzg2NDI0ZFwiLFxyXG4gICAgICAgIGZ1bGxuYW1lOiBcIkJydWNlIEJhbm5lclwiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJCcnVjZVwiLFxyXG4gICAgICAgIGxhc3RuYW1lOiBcIkJhbm5lclwiLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbDogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw6IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgT3JkZXJzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBQcm9qZWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgSW52b2ljZXNcIl0sXHJcbiAgICAgICAgZW1haWxhZGRyZXNzMTogXCJ0ZXN0QGVtYWlsLmNvbVwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTAyLTA2IDA5OjIyOjQxWlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIkJpb2xvZ2lzdFwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlOiBcImFjOTY5NTY1LWM5ZTYtZWUxMS05MDRkLTdjMWU1MjA0NzA4YlwiLFxyXG4gICAgICAgIHRlbGVwaG9uZTE6IFwiMDEyMDIgMzMxNTQ4XCIsXHJcbiAgICAgICAgbW9iaWxlcGhvbmU6IFwiMDc0NTYgMzk5ODEyXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9uczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBzdGF0ZWNvZGU6IENvbnRhY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIGFkeF9pZGVudGl0eV9sb2dvbmVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfaXNzaG93bmlucG9ydGFsOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHN0ZXZlUm9nZXJzOiB7XHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZTogUG9ydGFsQ29udGFjdFR5cGUuSW5kaXZpZHVhbENvbnRhY3QsXHJcbiAgICAgICAgY29udGFjdGlkOiBcIjI0Yjk2MTAxLTJhNTEtNDk2Yy04OTY1LWVhZDVkZDg5Y2IyOVwiLFxyXG4gICAgICAgIGZ1bGxuYW1lOiBcIlN0ZXZlIFJvZ2Vyc1wiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJTdGV2ZVwiLFxyXG4gICAgICAgIGxhc3RuYW1lOiBcIlJvZ2Vyc1wiLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbDogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw6IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgT3JkZXJzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBQcm9qZWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgSW52b2ljZXNcIl0sXHJcbiAgICAgICAgZW1haWxhZGRyZXNzMTogXCJjYXBzaWNsZUBhdmVuZ2Vycy5jb21cIixcclxuICAgICAgICBtc2R5bl9wb3J0YWx0ZXJtc2FncmVlbWVudGRhdGU6IFwiMjAyMi0wMi0wNiAxMjoxNzo0OFpcIixcclxuICAgICAgICBqb2J0aXRsZTogXCJXYXIgVmV0ZXJhblwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlOiBcImFjOTY5NTY1LWM5ZTYtZWUxMS05MDRkLTdjMWU1MjA0NzA4YlwiLFxyXG4gICAgICAgIHRlbGVwaG9uZTE6IFwiMDEyMDIgNTM0MjI4XCIsXHJcbiAgICAgICAgbW9iaWxlcGhvbmU6IFwiMDcxNjIgOTk5ODA5XCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9uczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBzdGF0ZWNvZGU6IENvbnRhY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIGFkeF9pZGVudGl0eV9sb2dvbmVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgYmlzdGVjaF9pc3Nob3duaW5wb3J0YWw6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgbmlja0Z1cnk6IHtcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlOiBQb3J0YWxDb250YWN0VHlwZS5JbmRpdmlkdWFsQ29udGFjdCxcclxuICAgICAgICBjb250YWN0aWQ6IFwiN2EzMmZkZjYtY2U2OS00MDMxLTlmM2MtZGM2OTdiMmU1Y2NjXCIsXHJcbiAgICAgICAgX3BhcmVudGN1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWw6IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsOiBDYXNlUGVybWlzc2lvbkxldmVsW1wiQWxsIENhc2VzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDogQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBDb250YWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsOiBPcmRlclBlcm1pc3Npb25MZXZlbFtcIkFsbCBPcmRlcnNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIFByb2plY3RzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbDogSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBJbnZvaWNlc1wiXSxcclxuICAgICAgICBmdWxsbmFtZTogXCJOaWNob2xhcyBGdXJ5XCIsXHJcbiAgICAgICAgZmlyc3RuYW1lOiBcIk5pY2hvbGFzXCIsXHJcbiAgICAgICAgbGFzdG5hbWU6IFwiRnVyeVwiLFxyXG4gICAgICAgIGVtYWlsYWRkcmVzczE6IFwiZnVyeS5uakBzaGllbGQuY29tXCIsXHJcbiAgICAgICAgbXNkeW5fcG9ydGFsdGVybXNhZ3JlZW1lbnRkYXRlOiBcIjIwMjItMDYtMDEgMDk6MTM6MjlaXCIsXHJcbiAgICAgICAgam9idGl0bGU6IFwiU2hpZWxkIERpcmVjdG9yXCIsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWU6IFwiYWM5Njk1NjUtYzllNi1lZTExLTkwNGQtN2MxZTUyMDQ3MDhiXCIsXHJcbiAgICAgICAgdGVsZXBob25lMTogXCIwMTIwMiAzNTc0ODJcIixcclxuICAgICAgICBtb2JpbGVwaG9uZTogXCIwNzIzNCAzOTcwMThcIixcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVhbGVydG5vdGlmaWNhdGlvbnM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcjogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIHN0YXRlY29kZTogQ29udGFjdFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgYWR4X2lkZW50aXR5X2xvZ29uZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9pc3Nob3duaW5wb3J0YWw6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgc2NvdHRMYW5nOiB7XHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZTogUG9ydGFsQ29udGFjdFR5cGUuSW5kaXZpZHVhbENvbnRhY3QsXHJcbiAgICAgICAgY29udGFjdGlkOiBcIjVlNGU2MTUyLTk4MTAtNDU2OS05MzFkLTg3YmZhNzc3YTI3YVwiLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbDogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw6IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgT3JkZXJzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBQcm9qZWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgSW52b2ljZXNcIl0sXHJcbiAgICAgICAgZnVsbG5hbWU6IFwiU2NvdHQgTGFuZ1wiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJTY290dFwiLFxyXG4gICAgICAgIGxhc3RuYW1lOiBcIkxhbmdcIixcclxuICAgICAgICBlbWFpbGFkZHJlc3MxOiBcInNjb3R0QGJhc2tpbi1yb2JiaW5zLmNvbVwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTA5LTIyIDExOjMzOjE2WlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIkRvdWdobnV0IFNhbGVzbWFuXCIsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWU6IFwiYWM5Njk1NjUtYzllNi1lZTExLTkwNGQtN2MxZTUyMDQ3MDhiXCIsXHJcbiAgICAgICAgdGVsZXBob25lMTogXCIwMTIwMiA3NDY1MjFcIixcclxuICAgICAgICBtb2JpbGVwaG9uZTogXCIwNzk0NyA2MTEzMDNcIixcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVhbGVydG5vdGlmaWNhdGlvbnM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcjogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIHN0YXRlY29kZTogQ29udGFjdFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgYWR4X2lkZW50aXR5X2xvZ29uZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBiaXN0ZWNoX2lzc2hvd25pbnBvcnRhbDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBwZXRlclF1aWxsOiB7XHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZTogUG9ydGFsQ29udGFjdFR5cGUuVGVhbUNvbnRhY3QsXHJcbiAgICAgICAgY29udGFjdGlkOiBcImVkYTg0ZjRkLTM0NTktNDRmNi04NTcyLWFmNjQ0ZTRlZDYyM1wiLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbDogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw6IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgT3JkZXJzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBQcm9qZWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgSW52b2ljZXNcIl0sXHJcbiAgICAgICAgZnVsbG5hbWU6IFwiUGV0ZXIgUXVpbGxcIixcclxuICAgICAgICBmaXJzdG5hbWU6IFwiUGV0ZXJcIixcclxuICAgICAgICBsYXN0bmFtZTogXCJRdWlsbFwiLFxyXG4gICAgICAgIGVtYWlsYWRkcmVzczE6IFwic3RhcmxvcmRAZ3VhcmRpYW5zLmdhbFwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTAyLTI4IDE1OjI1OjExWlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIkludGVyZ2FsYWN0aWMgVHJhZGVyXCIsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWU6IFwiYWM5Njk1NjUtYzllNi1lZTExLTkwNGQtN2MxZTUyMDQ3MDhiXCIsXHJcbiAgICAgICAgdGVsZXBob25lMTogXCIwMTIwMiA1NTYzNjhcIixcclxuICAgICAgICBtb2JpbGVwaG9uZTogXCIwNzMwNCA3NzQ5NjNcIixcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVhbGVydG5vdGlmaWNhdGlvbnM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcjogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIHN0YXRlY29kZTogQ29udGFjdFN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBhZHhfaWRlbnRpdHlfbG9nb25lbmFibGVkOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX2lzc2hvd25pbnBvcnRhbDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB0Y2hhbGxhOiB7XHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZTogUG9ydGFsQ29udGFjdFR5cGUuVGVhbUNvbnRhY3QsXHJcbiAgICAgICAgY29udGFjdGlkOiBcImM1YTA1ZWQ0LTQ4ZDctNDA2Zi1iYWMyLTdmZThjZDg1YWEyOFwiLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbDogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw6IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgT3JkZXJzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBQcm9qZWN0c1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgSW52b2ljZXNcIl0sXHJcbiAgICAgICAgZnVsbG5hbWU6IFwiS2luZyBUJ0NoYWxsYVwiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJLaW5nXCIsXHJcbiAgICAgICAgbGFzdG5hbWU6IFwiVCdDaGFsbGFcIixcclxuICAgICAgICBlbWFpbGFkZHJlc3MxOiBcImJsYWNrLnBhbnRoZXJAd2FrYW5kZXIuZm9yZXZlclwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTAyLTEyIDA5OjMxOjI0WlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIlByZWNpb3VzIE1ldGFsIFRyYWRlc21hblwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlOiBcImFjOTY5NTY1LWM5ZTYtZWUxMS05MDRkLTdjMWU1MjA0NzA4YlwiLFxyXG4gICAgICAgIHRlbGVwaG9uZTE6IFwiMDEyMDIgMzM3NDU2XCIsXHJcbiAgICAgICAgbW9iaWxlcGhvbmU6IFwiMDczMTUgMzI3ODgyXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9uczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBzdGF0ZWNvZGU6IENvbnRhY3RTdGF0ZUNvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgYWR4X2lkZW50aXR5X2xvZ29uZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBiaXN0ZWNoX2lzc2hvd25pbnBvcnRhbDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBzdGVwaGVuc3RyYW5nZToge1xyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGU6IFBvcnRhbENvbnRhY3RUeXBlLlRlYW1Db250YWN0LFxyXG4gICAgICAgIGNvbnRhY3RpZDogXCI4MzUyN2NiYi02YzRlLTRmN2MtOTAxZC03MGVmNTcxOTRhYjRcIixcclxuICAgICAgICBfcGFyZW50Y3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbDogQmFzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ2FzZXNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsOiBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIENvbnRhY3RzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWw6IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiQWxsIE9yZGVyc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbHByb2plY3RwZXJtaXNzaW9ubGV2ZWw6IFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgUHJvamVjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsOiBJbnZvaWNlUGVybWlzc2lvbkxldmVsW1wiQWxsIEludm9pY2VzXCJdLFxyXG4gICAgICAgIGZ1bGxuYW1lOiBcIlN0ZXBoZW4gU3RyYW5nZVwiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJTdGVwaGVuXCIsXHJcbiAgICAgICAgbGFzdG5hbWU6IFwiU3RyYW5nZVwiLFxyXG4gICAgICAgIGVtYWlsYWRkcmVzczE6IFwic29yY2VyZXIuc3VwcmVtZUBrYW1hcnRhai5ucFwiLFxyXG4gICAgICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZTogXCIyMDIyLTA0LTA2IDE1OjAyOjUyWlwiLFxyXG4gICAgICAgIGpvYnRpdGxlOiBcIk1lZGljYWwgUHJvZmVzc2lvbmFsXCIsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWU6IFwiYWM5Njk1NjUtYzllNi1lZTExLTkwNGQtN2MxZTUyMDQ3MDhiXCIsXHJcbiAgICAgICAgdGVsZXBob25lMTogXCIwMTIwMiAzMzIyOTlcIixcclxuICAgICAgICBtb2JpbGVwaG9uZTogXCIwNzY0NCA1OTk4NDZcIixcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVhbGVydG5vdGlmaWNhdGlvbnM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcjogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIHN0YXRlY29kZTogQ29udGFjdFN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBhZHhfaWRlbnRpdHlfbG9nb25lbmFibGVkOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX2lzc2hvd25pbnBvcnRhbDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBwZXRlclBhcmtlcjoge1xyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGU6IFBvcnRhbENvbnRhY3RUeXBlLlRlYW1Db250YWN0LFxyXG4gICAgICAgIGNvbnRhY3RpZDogXCJlMGMwOTFiNS04NGNiLTQ2MTctYmVmZC1lMTAwYjdkNmRmNzBcIixcclxuICAgICAgICBfcGFyZW50Y3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbDogQmFzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ2FzZXNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsOiBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIENvbnRhY3RzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWw6IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiQWxsIE9yZGVyc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbHByb2plY3RwZXJtaXNzaW9ubGV2ZWw6IFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgUHJvamVjdHNcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsOiBJbnZvaWNlUGVybWlzc2lvbkxldmVsW1wiQWxsIEludm9pY2VzXCJdLFxyXG4gICAgICAgIGZ1bGxuYW1lOiBcIlBldGVyIFBhcmtlclwiLFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJQZXRlclwiLFxyXG4gICAgICAgIGxhc3RuYW1lOiBcIlBhcmtlclwiLFxyXG4gICAgICAgIGVtYWlsYWRkcmVzczE6IFwicGV0ZXIucGFya2VyQG1pZHRvd24taGlnaC5ueWMuZWR1XCIsXHJcbiAgICAgICAgbXNkeW5fcG9ydGFsdGVybXNhZ3JlZW1lbnRkYXRlOiBcIjIwMjItMDMtMDkgMTg6MTc6NDRaXCIsXHJcbiAgICAgICAgam9idGl0bGU6IFwiUGhvdG9ncmFwaHkgQ29uc3VsdGFudFwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlOiBcImFjOTY5NTY1LWM5ZTYtZWUxMS05MDRkLTdjMWU1MjA0NzA4YlwiLFxyXG4gICAgICAgIHRlbGVwaG9uZTE6IFwiMDEyMDIgMTIzNzg5XCIsXHJcbiAgICAgICAgbW9iaWxlcGhvbmU6IFwiMDc3ODcgNzg3Nzg4XCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9uczogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBzdGF0ZWNvZGU6IENvbnRhY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIGFkeF9pZGVudGl0eV9sb2dvbmVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgYmlzdGVjaF9pc3Nob3duaW5wb3J0YWw6IHRydWUsXHJcbiAgICB9LFxyXG59O1xyXG4iLCJpbXBvcnQgeyBDb250YWN0Rm9yUmV0cmlldmFsIH0gZnJvbSBcIi4uL01vZGVscy9Db250YWN0Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IE1vY2tDb250YWN0RGF0YSB9IGZyb20gXCIuL01vY2tDb250YWN0RGF0YVwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgdGhlIHVzZXIgY3VycmVudGx5IHNpZ25lZC1pbi4gKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tBdXRoZW50aWNhdGVkVXNlcjogQ29udGFjdEZvclJldHJpZXZhbCA9IHtcclxuICAgIC4uLk1vY2tDb250YWN0RGF0YS50b255U3RhcmssXHJcbn07XHJcbiIsImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IE1vY2tBdXRoZW50aWNhdGVkVXNlciB9IGZyb20gXCIuLi9Nb2NrRGF0YS9Nb2NrQXV0aGVudGljYXRlZFVzZXJcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBPcmRlclBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vKiogSW50ZXJmYWNlIGRlc2NyaWJpbmcgdGhlIG1ldGFkYXRhIG9mIGEgcG9ydGFsIHVzZXIgKi9cclxuZXhwb3J0IHR5cGUgVXNlck1ldGFkYXRhID0ge1xyXG4gICAgLyoqIElkIG9mIHRoZSBDb250YWN0ICovXHJcbiAgICBjb250YWN0SWQ6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gICAgLyoqIE5hbWUgb2YgdGhlIENvbnRhY3QgKi9cclxuICAgIGNvbnRhY3ROYW1lOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICAgIC8qKiBJZCBvZiB0aGUgUGFyZW50IEFjY291bnQgKi9cclxuICAgIGFjY291bnRJZDogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICAvKiogTmFtZSBvZiB0aGUgUGFyZW50IEFjY291bnQgKi9cclxuICAgIGFjY291bnROYW1lOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICAgIC8qKiAgVGhlIEJhc2UgUGVybWlzc2lvbiBMZXZlbCBmb3IgdGhlIGN1cnJlbnQgUG9ydGFsIENvbnRhY3QuICovXHJcbiAgICBiYXNlUGVybWlzc2lvbkxldmVsOiBCYXNlUGVybWlzc2lvbkxldmVsIHwgbnVsbDtcclxuXHJcbiAgICAvKiogUG9ydGFsIENhc2UgUGVybWlzc2lvbiBsZXZlbCBvZiB0aGUgY3VycmVudCBQb3J0YWwgQ29udGFjdC4gKi9cclxuICAgIHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWw6IENhc2VQZXJtaXNzaW9uTGV2ZWwgfCBudWxsO1xyXG5cclxuICAgIC8qKiBQb3J0YWwgQ29udGFjdCBQZXJtaXNzaW9uIGxldmVsIG9mIHRoZSBjdXJyZW50IFBvcnRhbCBDb250YWN0LiAqL1xyXG4gICAgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbDogQ29udGFjdFBlcm1pc3Npb25MZXZlbCB8IG51bGw7XHJcblxyXG4gICAgLyoqIFBvcnRhbCBPcmRlciBQZXJtaXNzaW9uIGxldmVsIG9mIHRoZSBjdXJyZW50IFBvcnRhbCBDb250YWN0LiAqL1xyXG4gICAgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWw6IE9yZGVyUGVybWlzc2lvbkxldmVsIHwgbnVsbDtcclxuXHJcbiAgICAvKiogUG9ydGFsIFByb2plY3RzIFBlcm1pc3Npb24gbGV2ZWwgb2YgdGhlIGN1cnJlbnQgUG9ydGFsIENvbnRhY3QuICovXHJcbiAgICBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsIHwgbnVsbDtcclxuXHJcbiAgICAvKiogVGhlIEludm9pY2UgUGVybWlzc2lvbiBMZXZlbCBmb3IgdGhlIGN1cnJlbnQgUG9ydGFsIENvbnRhY3QuICovXHJcbiAgICBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsOiBJbnZvaWNlUGVybWlzc2lvbkxldmVsIHwgbnVsbDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBtZXRhZGF0YS5cclxuICogQHJldHVybnMgUmV0cmlldmVkIG1ldGFkYXRhLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFVzZXJNZXRhZGF0YSgpOiBVc2VyTWV0YWRhdGEgJiB7XHJcbiAgICAvKiogRGF0ZSBvbiB3aGljaCB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMgd2VyZSBhY2NlcHRlZCwgb3IgbnVsbCBpZiBub3QgeWV0IGFjY2VwdGVkICovXHJcbiAgICB0ZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZTogRGF0ZSB8IG51bGw7XHJcbn0ge1xyXG4gICAgY29uc3QgW1xyXG4gICAgICAgIGNvbnRhY3RJZCxcclxuICAgICAgICBjb250YWN0TmFtZSxcclxuICAgICAgICBhY2NvdW50SWQsXHJcbiAgICAgICAgYWNjb3VudE5hbWUsXHJcbiAgICAgICAgcGVybWlzc2lvbkxldmVsLFxyXG4gICAgICAgIGNhc2VQZXJtaXNzaW9uTGV2ZWwsXHJcbiAgICAgICAgY29udGFjdFBlcm1pc3Npb25MZXZlbCxcclxuICAgICAgICBvcmRlclBlcm1pc3Npb25MZXZlbCxcclxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbkxldmVsLFxyXG4gICAgICAgIGludm9pY2VQZXJtaXNzaW9uTGV2ZWwsXHJcbiAgICAgICAgdGVybXNBbmRDb25kaXRpb25zQWNjZXB0YW5jZURhdGUsXHJcbiAgICBdID0gW1xyXG4gICAgICAgIFwiY29udGFjdGlkXCIsXHJcbiAgICAgICAgXCJjb250YWN0bmFtZVwiLFxyXG4gICAgICAgIFwicGFyZW50Y3VzdG9tZXJpZFwiLFxyXG4gICAgICAgIFwicGFyZW50Y3VzdG9tZXJuYW1lXCIsXHJcbiAgICAgICAgXCJiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgIFwiYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgXCJiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWxcIixcclxuICAgICAgICBcImJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWxcIixcclxuICAgICAgICBcImJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgIFwiYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgXCJtc2R5bl9wb3J0YWx0ZXJtc2FncmVlbWVudGRhdGVcIixcclxuICAgIF0ubWFwKChtZXRhZGF0YUtleSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGB1bCNtZXRhZGF0YSBsaVtkYXRhLWtleT0nJHttZXRhZGF0YUtleX0nXVtkYXRhLXZhbHVlXWApO1xyXG5cclxuICAgICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIik7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvbnRhY3RJZCxcclxuICAgICAgICBjb250YWN0TmFtZSxcclxuICAgICAgICBhY2NvdW50SWQsXHJcbiAgICAgICAgYWNjb3VudE5hbWUsXHJcbiAgICAgICAgYmFzZVBlcm1pc3Npb25MZXZlbDogcGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgID8gQmFzZVBlcm1pc3Npb25MZXZlbFtwZXJtaXNzaW9uTGV2ZWwgYXMga2V5b2YgdHlwZW9mIEJhc2VQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsOiBjYXNlUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgID8gQ2FzZVBlcm1pc3Npb25MZXZlbFtjYXNlUGVybWlzc2lvbkxldmVsIGFzIGtleW9mIHR5cGVvZiBDYXNlUGVybWlzc2lvbkxldmVsXVxyXG4gICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbDogY29udGFjdFBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbY29udGFjdFBlcm1pc3Npb25MZXZlbCBhcyBrZXlvZiB0eXBlb2YgQ29udGFjdFBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsOiBvcmRlclBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IE9yZGVyUGVybWlzc2lvbkxldmVsW29yZGVyUGVybWlzc2lvbkxldmVsIGFzIGtleW9mIHR5cGVvZiBPcmRlclBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWw6IHByb2plY3RQZXJtaXNzaW9uTGV2ZWxcclxuICAgICAgICAgICAgPyBQcm9qZWN0UGVybWlzc2lvbkxldmVsW3Byb2plY3RQZXJtaXNzaW9uTGV2ZWwgYXMga2V5b2YgdHlwZW9mIFByb2plY3RQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsOiBpbnZvaWNlUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgID8gSW52b2ljZVBlcm1pc3Npb25MZXZlbFtpbnZvaWNlUGVybWlzc2lvbkxldmVsIGFzIGtleW9mIHR5cGVvZiBJbnZvaWNlUGVybWlzc2lvbkxldmVsXVxyXG4gICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgdGVybXNBbmRDb25kaXRpb25zQWNjZXB0YW5jZURhdGU6IHRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlXHJcbiAgICAgICAgICAgID8gbmV3IERhdGUodGVybXNBbmRDb25kaXRpb25zQWNjZXB0YW5jZURhdGUpXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKiBIb29rIGZvciBhY2Nlc3NpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlciAqL1xyXG5leHBvcnQgY29uc3QgdXNlVXNlck1ldGFkYXRhOiAoKSA9PiBVc2VyTWV0YWRhdGEgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBpc0xvY2FsTW9kZSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuaXNMb2NhbE1vZGUpO1xyXG4gICAgY29uc3QgbWV0YWRhdGE6IFVzZXJNZXRhZGF0YSA9IHVzZU1lbW8oZ2V0VXNlck1ldGFkYXRhLCBbZ2V0VXNlck1ldGFkYXRhXSk7XHJcblxyXG4gICAgLy8gSWYgd2UgYXJlIGluIERldiBNb2RlXHJcbiAgICBpZiAoaXNMb2NhbE1vZGUpIHtcclxuICAgICAgICAvLyBSZXR1cm4gdGhlIG1vY2tlZCBkYXRhXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY29udGFjdElkOiBNb2NrQXV0aGVudGljYXRlZFVzZXIuY29udGFjdGlkLFxyXG4gICAgICAgICAgICBjb250YWN0TmFtZTogW01vY2tBdXRoZW50aWNhdGVkVXNlci5maXJzdG5hbWUsIE1vY2tBdXRoZW50aWNhdGVkVXNlci5sYXN0bmFtZV0uZmlsdGVyKChzKSA9PiBzKS5qb2luKFwiIFwiKSxcclxuICAgICAgICAgICAgYWNjb3VudElkOiBNb2NrQXV0aGVudGljYXRlZFVzZXIuX3BhcmVudGN1c3RvbWVyaWRfdmFsdWUsXHJcbiAgICAgICAgICAgIGFjY291bnROYW1lOiBcIlBldGUncyBUZXN0IEN1c3RvbWVyXCIsXHJcbiAgICAgICAgICAgIGJhc2VQZXJtaXNzaW9uTGV2ZWw6IE1vY2tBdXRoZW50aWNhdGVkVXNlci5iaXN0ZWNoX3Blcm1pc3Npb25sZXZlbCxcclxuICAgICAgICAgICAgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbDogTW9ja0F1dGhlbnRpY2F0ZWRVc2VyLmJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbCxcclxuICAgICAgICAgICAgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbDogTW9ja0F1dGhlbnRpY2F0ZWRVc2VyLmJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbCxcclxuICAgICAgICAgICAgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWw6IE1vY2tBdXRoZW50aWNhdGVkVXNlci5iaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsLFxyXG4gICAgICAgICAgICBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsOiBNb2NrQXV0aGVudGljYXRlZFVzZXIuYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsLFxyXG4gICAgICAgICAgICBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsOiBNb2NrQXV0aGVudGljYXRlZFVzZXIuYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1ldGFkYXRhO1xyXG59O1xyXG4iLCIvKiogQ29tcG9uZW50IHVzZWQgZm9yIHJlbmRlcmluZyBpbWFnZXMgYW5kIGhhbmRsZXMgdGhlIGRldm1vZGUgY2hhbmdlcyB0byB0aGUgaW1hZ2UgcGF0aC4gKi9cclxuZXhwb3J0IGNvbnN0IEltYWdlOiBSZWFjdC5GQzx7XHJcbiAgICBzcmM6IHN0cmluZztcclxuICAgIGhlaWdodD86IG51bWJlcjtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59PiA9ICh7IHNyYywgaGVpZ2h0LCB3aWR0aCwgY2xhc3NOYW1lIH0pID0+IHtcclxuICAgIGNvbnN0IGltYWdlVXJsID0gYC8ke3NyYy5yZXBsYWNlKC9eXFwvL2csIFwiXCIpfWA7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0fVxyXG4gICAgICAgICAgICB3aWR0aD17d2lkdGh9XHJcbiAgICAgICAgICAgIHNyYz17aW1hZ2VVcmx9XHJcbiAgICAgICAgICAgIGFsdD17YCR7c3JjLnJlcGxhY2VBbGwoXCItXCIsIFwiIFwiKS5zdWJzdHJpbmcoMCwgc3JjLmxhc3RJbmRleE9mKFwiLlwiKSl9YH1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XHJcbiAgICAgICAgLz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gXCIuL0ltYWdlXCI7XHJcblxyXG4vKiogQ29tcG9uZW50IHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgaGVhZGVyIGZvciB0aGUgU1BBLiAqL1xyXG5leHBvcnQgY29uc3QgSGVhZGVyOiBSZWFjdC5GQzx7XHJcbiAgICBpc05hdmlnYXRpb25QYW5lbEV4cGFuZGVkOiBib29sZWFuO1xyXG4gICAgc2V0TmF2aWdhdGlvblBhbmVsRXhwYW5kZWQ6IChpc0V4cGFuZGVkOiBib29sZWFuKSA9PiB2b2lkO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgeyBjb250YWN0TmFtZSB9ID0gdXNlVXNlck1ldGFkYXRhKCk7XHJcbiAgICBjb25zdCBpc1Nob3duID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5mZWVkYmFja1BhbmVJc1Nob3duKTtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuXHJcbiAgICBjb25zdCBvbkNsaWNrRmVlZGJhY2tQYW5lSWNvbiA9ICgpID0+IHtcclxuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiU2V0RmVlZGJhY2tQYW5lSXNTaG93blwiLCBmZWVkYmFja1BhbmVJc1Nob3duOiAhaXNTaG93biB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdmJhci10b2dnbGUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcHJvcHMuc2V0TmF2aWdhdGlvblBhbmVsRXhwYW5kZWQoIXByb3BzLmlzTmF2aWdhdGlvblBhbmVsRXhwYW5kZWQpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLWJhclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi1iYXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwiYmlzdGVjaC1sb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8TGluayB0bz17XCIvXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCJiaXN0ZWNoLWxvZ28ucG5nXCIgaGVpZ2h0PXs1NH0gLz5cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiZmVlZGJhY2stYnV0dG9uXCIgb25DbGljaz17b25DbGlja0ZlZWRiYWNrUGFuZUljb259PlxyXG4gICAgICAgICAgICAgICAgPEltYWdlIHNyYz1cImZlZWRiYWNrLW1haW4taWNvbi5zdmdcIiBoZWlnaHQ9ezI0fSB3aWR0aD17MjR9IC8+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgPExpbmsgdG89XCJQcm9maWxlXCIgY2xhc3NOYW1lPVwicHJvZmlsZS1saW5rXCIgcmVwbGFjZT5cclxuICAgICAgICAgICAgICAgIHtjb250YWN0TmFtZX1cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuIiwiLyoqIEVudW1lcmF0aW9uIG9mIHRoZSBgYmlzdGVjaF9wb3J0YWx0aWxlbWFwcGluZ2Agb2YgYSBQcm9kdWN0LiAqL1xyXG5leHBvcnQgZW51bSBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcge1xyXG4gICAgXzh4OCA9IDE2NDk2MDAxMSxcclxuICAgIE5NUyA9IDE2NDk2MDAwMCxcclxuICAgIFNvbGFyd2luZHMgPSAxNjQ5NjAwMDEsXHJcbiAgICBNaWNyb3NvZnRMaWNlbnNpbmcgPSAxNjQ5NjAwMDIsXHJcbiAgICBOaW5qYVJNTSA9IDE2NDk2MDAwMyxcclxuICAgIE1lcmFraSA9IDE2NDk2MDAwNCxcclxuICAgIE1pbWVjYXN0ID0gMTY0OTYwMDA1LFxyXG4gICAgRm9ydGlNYWlsID0gMTY0OTYwMDA2LFxyXG4gICAgRm9ydGlHYXRlID0gMTY0OTYwMDA3LFxyXG4gICAgRm9ydGlBbmFseXplciA9IDE2NDk2MDAwOCxcclxuICAgIFZNV2FyZSA9IDE2NDk2MDAwOSxcclxuICAgIFdlYkFiaWxpdHkgPSAxNjQ5NjAwMTAsXHJcbiAgICBBenVyZSA9IDE2NDk2MDAxMixcclxuICAgIE0zNjVBZG1pbkNlbnRyZSA9IDE2NDk2MDAxMyxcclxufVxyXG4iLCIvKiogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSB0eXBlIG9mIGEgQ2FzZSAqL1xyXG5leHBvcnQgZW51bSBDYXNlVHlwZSB7XHJcbiAgICAvKiogSW5jaWRlbnQgdHlwZSAqL1xyXG4gICAgSW5jaWRlbnQgPSAxLFxyXG5cclxuICAgIC8qKiBNYWpvciBJbmNpZGVudCB0eXBlICovXHJcbiAgICBcIk1ham9yIEluY2lkZW50XCIgPSAyLFxyXG5cclxuICAgIC8qKiBTdXBwb3J0IFJlcXVlc3QgdHlwZSAqL1xyXG4gICAgXCJTdXBwb3J0IFJlcXVlc3RcIiA9IDMsXHJcblxyXG4gICAgLyoqIFByb2JsZW0gdHlwZSAqL1xyXG4gICAgUHJvYmxlbSA9IDQsXHJcblxyXG4gICAgLyoqIENoYW5nZSB0eXBlICovXHJcbiAgICBDaGFuZ2UgPSA1XHJcbn1cclxuIiwiLyoqIER5bmFtaWNzIDM2NSBgaW5jaWRlbnRgIHN0YXR1cyBjb2Rlcy4gKi9cclxuZXhwb3J0IGVudW0gSW5jaWRlbnRTdGF0dXNDb2RlIHtcclxuICAgIC8qKiBBY3RpdmUgLSBPcGVuICovXHJcbiAgICBPcGVuID0gMTY0OTYwMDAwLFxyXG5cclxuICAgIC8qKiBBY3RpdmUgLSBJbiBQcm9ncmVzcy4gKi9cclxuICAgIFwiSW4gUHJvZ3Jlc3NcIiA9IDEsXHJcblxyXG4gICAgLyoqIEFjdGl2ZSAtIE9uIEhvbGQuICovXHJcbiAgICBcIk9uIEhvbGRcIiA9IDIsXHJcblxyXG4gICAgLyoqIEFjdGl2ZSAtIFBlbmRpbmcgQ3VzdG9tZXIgRmVlZGJhY2suICovXHJcbiAgICBcIlBlbmRpbmcgRmVlZGJhY2tcIiA9IDMsXHJcblxyXG4gICAgLyoqIEFjdGl2ZSAtIFJlc29sdmVkLiAqL1xyXG4gICAgUmVzb2x2ZWQgPSA0LFxyXG5cclxuICAgIC8qKiBBY3RpdmUgLSBDbG9zdXJlIFJlcXVlc3RlZCAqL1xyXG4gICAgXCJDbG9zdXJlIFJlcXVlc3RlZFwiID0gMTY0OTYwMDAyLFxyXG5cclxuICAgIC8qKiBSZXNvbHZlZCAtIENsb3NlZC4gKi9cclxuICAgIENsb3NlZCA9IDUsXHJcblxyXG4gICAgLyoqIENhbmNlbGxlZCAtIENhbmNlbGxlZC4gKi9cclxuICAgIENhbmNlbGxlZCA9IDYsXHJcblxyXG4gICAgLyoqIENhbmNlbGxlZCAtIE1lcmdlZC4gKi9cclxuICAgIE1lcmdlZCA9IDIwMDAsXHJcbn1cclxuIiwiLyoqIEVudW0gcmVwcmVzZW50aW5nIHRoZSBwcmlvcml0eSBsZXZlbHMgZm9yIGNhc2VzICovXHJcbmV4cG9ydCBlbnVtIENhc2VQcmlvcml0eUNvZGUge1xyXG4gICAgLyoqIFByaW9yaXR5IDEgKEluY2lkZW50IG9ubHkpICovXHJcbiAgICBcIlByaW9yaXR5IDFcIiA9IDEsXHJcblxyXG4gICAgLyoqIFByaW9yaXR5IDIgKEluY2lkZW50IG9ubHkpICovXHJcbiAgICBcIlByaW9yaXR5IDJcIiA9IDIsXHJcblxyXG4gICAgLyoqIFByaW9yaXR5IDMgKEluY2lkZW50IG9ubHkpICovXHJcbiAgICBcIlByaW9yaXR5IDNcIiA9IDMsXHJcblxyXG4gICAgLyoqIFByaW9yaXR5IDQgKEluY2lkZW50IG9ubHkpICovXHJcbiAgICBcIlByaW9yaXR5IDRcIiA9IDRcclxufVxyXG4iLCJpbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IFBBR0VTLCBQYWdlSW5mbyB9IGZyb20gXCIuLi9Ib29rcy91c2VQYWdlTmF2aWdhdGlvblwiO1xyXG5cclxuLyoqIEEgY29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgcGFnZSBicmVhZGNydW1icyBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBCcmVhZGNydW1iOiBSZWFjdC5GQzxcclxuICAgIHsgaXNMb2FkaW5nOiB0cnVlIH0gfCB7IGlzTG9hZGluZzogZmFsc2U7IHBhcmVudFBhZ2U/OiB7IGVkaXRJZE5hbWU6IHN0cmluZzsgZnVsbFBhdGg6IHN0cmluZzsgcGFnZUlkOiBzdHJpbmcgfSB9XHJcbj4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHVzZUxvY2F0aW9uKCk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXNcclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoTmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1xcLyQvZywgXCJcIik7XHJcblxyXG4gICAgLy8gTWVyZ2UgdGhlIHBhZ2VzIGZvciB0aGUgY3VycmVudCBwYWdlIGFuZCBhbnkgcGFyZW50IHBhZ2UgcmVmZXJlbmNlcy5cclxuICAgIGNvbnN0IHBhZ2VzOiBQYWdlSW5mb1tdID0gT2JqZWN0LnZhbHVlcyhQQUdFUykuZmlsdGVyKChwYWdlKSA9PiBjdXJyZW50UGF0aE5hbWUuaW5jbHVkZXMocGFnZS5wYXRoKSk7XHJcbiAgICBjb25zdCBwYXJlbnRQYWdlczogUGFnZUluZm9bXSA9IE9iamVjdC52YWx1ZXMoUEFHRVMpLmZpbHRlcigocGFnZSkgPT5cclxuICAgICAgICBwcm9wcy5pc0xvYWRpbmcgPyBmYWxzZSA6IHByb3BzLnBhcmVudFBhZ2U/LmZ1bGxQYXRoLmluY2x1ZGVzKHBhZ2UucGF0aClcclxuICAgICk7XHJcbiAgICBjb25zdCBhbGxQYWdlczogUGFnZUluZm9bXSA9IEFycmF5LmZyb20obmV3IFNldChbLi4ucGFyZW50UGFnZXMsIC4uLnBhZ2VzXSkpO1xyXG5cclxuICAgIGNvbnN0IGxhc3RQYXJlbnRQYWdlOiBQYWdlSW5mbyB8IHVuZGVmaW5lZCA9IHBhcmVudFBhZ2VzW3BhcmVudFBhZ2VzLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJicmVhZGNydW1iLXRyYWlsXCI+XHJcbiAgICAgICAgICAgIHthbGxQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc05vdExhc3RQYWdlID0gaW5kZXggPCBhbGxQYWdlcy5sZW5ndGggLSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwYWdlLnBhdGggPT09IGN1cnJlbnRQYXRoTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17cGFnZS5wYXRofT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJyZWFkY3J1bWJcIj57cGFnZS50aXRsZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNOb3RMYXN0UGFnZSAmJiA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+Lzwvc3Bhbj59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBJRCBvZiB0aGUgcGFnZSBoYXMgbm90IGxvYWRlZCAoZml4ICMzOTQxMSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuaXNMb2FkaW5nIHx8IChwcm9wcy5wYXJlbnRQYWdlICYmICFwcm9wcy5wYXJlbnRQYWdlLnBhZ2VJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVuZGVyIGEgbm9uLWNsaWNrYWJsZSBicmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJicmVhZGNydW1iXCI+e3BhZ2UudGl0bGV9PC9zcGFuPjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIEVsc2U7IHJlbmRlciB0aGUgaHlwZXJsaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJyZWFkY3J1bWJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbFBhZ2VzW2luZGV4XS5wYXRoICE9PSBsYXN0UGFyZW50UGFnZT8ucGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke3BhZ2UucGF0aH1gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7cGFnZS5wYXRofT8ke3Byb3BzLnBhcmVudFBhZ2U/LmVkaXRJZE5hbWV9PSR7cHJvcHMucGFyZW50UGFnZT8ucGFnZUlkfWBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhZ2UudGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSkoKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17cGFnZS5wYXRofT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2xpbmt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc05vdExhc3RQYWdlICYmIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj4vPC9zcGFuPn1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgdmFyIERlZmF1bHRDb250ZXh0ID0ge1xuICBjb2xvcjogdW5kZWZpbmVkLFxuICBzaXplOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICBzdHlsZTogdW5kZWZpbmVkLFxuICBhdHRyOiB1bmRlZmluZWRcbn07XG5leHBvcnQgdmFyIEljb25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCAmJiBSZWFjdC5jcmVhdGVDb250ZXh0KERlZmF1bHRDb250ZXh0KTsiLCJ2YXIgX19hc3NpZ24gPSB0aGlzICYmIHRoaXMuX19hc3NpZ24gfHwgZnVuY3Rpb24gKCkge1xuICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHQpIHtcbiAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgIHMgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHQ7XG4gIH07XG5cbiAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuXG52YXIgX19yZXN0ID0gdGhpcyAmJiB0aGlzLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb25Db250ZXh0LCBEZWZhdWx0Q29udGV4dCB9IGZyb20gJy4vaWNvbkNvbnRleHQnO1xuXG5mdW5jdGlvbiBUcmVlMkVsZW1lbnQodHJlZSkge1xuICByZXR1cm4gdHJlZSAmJiB0cmVlLm1hcChmdW5jdGlvbiAobm9kZSwgaSkge1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfX2Fzc2lnbih7XG4gICAgICBrZXk6IGlcbiAgICB9LCBub2RlLmF0dHIpLCBUcmVlMkVsZW1lbnQobm9kZS5jaGlsZCkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdlbkljb24oZGF0YSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJhc2UsIF9fYXNzaWduKHtcbiAgICAgIGF0dHI6IF9fYXNzaWduKHt9LCBkYXRhLmF0dHIpXG4gICAgfSwgcHJvcHMpLCBUcmVlMkVsZW1lbnQoZGF0YS5jaGlsZCkpO1xuICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIEljb25CYXNlKHByb3BzKSB7XG4gIHZhciBlbGVtID0gZnVuY3Rpb24gKGNvbmYpIHtcbiAgICB2YXIgYXR0ciA9IHByb3BzLmF0dHIsXG4gICAgICAgIHNpemUgPSBwcm9wcy5zaXplLFxuICAgICAgICB0aXRsZSA9IHByb3BzLnRpdGxlLFxuICAgICAgICBzdmdQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiYXR0clwiLCBcInNpemVcIiwgXCJ0aXRsZVwiXSk7XG5cbiAgICB2YXIgY29tcHV0ZWRTaXplID0gc2l6ZSB8fCBjb25mLnNpemUgfHwgXCIxZW1cIjtcbiAgICB2YXIgY2xhc3NOYW1lO1xuICAgIGlmIChjb25mLmNsYXNzTmFtZSkgY2xhc3NOYW1lID0gY29uZi5jbGFzc05hbWU7XG4gICAgaWYgKHByb3BzLmNsYXNzTmFtZSkgY2xhc3NOYW1lID0gKGNsYXNzTmFtZSA/IGNsYXNzTmFtZSArICcgJyA6ICcnKSArIHByb3BzLmNsYXNzTmFtZTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfX2Fzc2lnbih7XG4gICAgICBzdHJva2U6IFwiY3VycmVudENvbG9yXCIsXG4gICAgICBmaWxsOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgc3Ryb2tlV2lkdGg6IFwiMFwiXG4gICAgfSwgY29uZi5hdHRyLCBhdHRyLCBzdmdQcm9wcywge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICBzdHlsZTogX19hc3NpZ24oX19hc3NpZ24oe1xuICAgICAgICBjb2xvcjogcHJvcHMuY29sb3IgfHwgY29uZi5jb2xvclxuICAgICAgfSwgY29uZi5zdHlsZSksIHByb3BzLnN0eWxlKSxcbiAgICAgIGhlaWdodDogY29tcHV0ZWRTaXplLFxuICAgICAgd2lkdGg6IGNvbXB1dGVkU2l6ZSxcbiAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB9KSwgdGl0bGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcInRpdGxlXCIsIG51bGwsIHRpdGxlKSwgcHJvcHMuY2hpbGRyZW4pO1xuICB9O1xuXG4gIHJldHVybiBJY29uQ29udGV4dCAhPT0gdW5kZWZpbmVkID8gUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQ29udGV4dC5Db25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKGNvbmYpIHtcbiAgICByZXR1cm4gZWxlbShjb25mKTtcbiAgfSkgOiBlbGVtKERlZmF1bHRDb250ZXh0KTtcbn0iLCIvLyBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURURcbmltcG9ydCB7IEdlbkljb24gfSBmcm9tICcuLi9saWInO1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWJhY3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDNoMnYxOEgyem0xOCAwaDJ2MThoLTJ6TTUgMTNoMnYxaDJ2LTFoMnYxaDJ2LTFoNHYxaDJ2LTRoLTJ2MWgtNHYtMWgtMnYxSDl2LTFIN3YxSDV6bTAtOXY0aDJWN2g4djFoMlY3aDJWNWgtMlY0aC0ydjFIN1Y0em0wIDEzdjNoMnYtMWgydjFoMnYtMWg4di0yaC04di0xSDl2MUg3di0xSDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWNjZXNzaWJpbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy44MzYgMTIuMDE0LTQuMzQ1LjcyNSAzLjI5LTQuMTEzYTEgMSAwIDAgMC0uMjI3LTEuNDU3bC02LTRhLjk5OS45OTkgMCAwIDAtMS4yNjIuMTI1bC00IDQgMS40MTQgMS40MTQgMy40Mi0zLjQyIDIuNTg0IDEuNzIzLTIuNjgxIDMuMzUyYTUuOTEzIDUuOTEzIDAgMCAwLTUuNS43NTJsMS40NTEgMS40NTFBMy45NzIgMy45NzIgMCAwIDEgOCAxMmMyLjIwNiAwIDQgMS43OTQgNCA0IDAgLjczOS0uMjE2IDEuNDI1LS41NjYgMi4wMmwxLjQ1MSAxLjQ1MUE1Ljk2MSA1Ljk2MSAwIDAgMCAxNCAxNmMwLS40NDUtLjA1My0uODc4LS4xNDUtMS4yOTVMMTcgMTQuMTgxVjIwaDJ2LTdhLjk5OC45OTggMCAwIDAtMS4xNjQtLjk4NnpNOCAyMGMtMi4yMDYgMC00LTEuNzk0LTQtNCAwLS43MzkuMjE2LTEuNDI1LjU2Ni0yLjAybC0xLjQ1MS0xLjQ1MUE1Ljk2MSA1Ljk2MSAwIDAgMCAyIDE2YzAgMy4zMDkgMi42OTEgNiA2IDYgMS4yOTQgMCAyLjQ5LS40MTYgMy40NzEtMS4xMTVsLTEuNDUxLTEuNDUxQTMuOTcyIDMuOTcyIDAgMCAxIDggMjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWRkVG9RdWV1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoMTJjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yek04IDE2VjRoMTJsLjAwMiAxMkg4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOEgydjEyYzAgMS4xMDMuODk3IDIgMiAyaDEydi0ySDRWOHptMTEtMmgtMnYzaC0zdjJoM3YzaDJ2LTNoM1Y5aC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFkanVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjNS41MTQgMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMHptMC0xOGM0LjQxMSAwIDggMy41ODkgOCA4cy0zLjU4OSA4LTggOC04LTMuNTg5LTgtOCAzLjU4OS04IDgtOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmE3IDcgMCAwIDAtNy03djE0YTcgNyAwIDAgMCA3LTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWxhcm1BZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjLTQuODc5IDAtOSA0LjEyMS05IDlzNC4xMjEgOSA5IDkgOS00LjEyMSA5LTktNC4xMjEtOS05LTl6bTAgMTZjLTMuNzk0IDAtNy0zLjIwNi03LTdzMy4yMDYtNyA3LTcgNyAzLjIwNiA3IDctMy4yMDYgNy03IDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGgtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00em03LjI5Mi0xLjI5Mi0zLjAxLTMgMS40MTItMS40MTcgMy4wMSAzek01LjI4MiAyLjI5NCA2LjcgMy43MDZsLTIuOTkgMy0xLjQxNy0xLjQxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbGFybUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmM0Ljg3OSAwIDktNC4xMjEgOS05cy00LjEyMS05LTktOS05IDQuMTIxLTkgOSA0LjEyMSA5IDkgOXptMC0xNmMzLjc5NCAwIDcgMy4yMDYgNyA3cy0zLjIwNiA3LTcgNy03LTMuMjA2LTctNyAzLjIwNi03IDctN3ptNS4yODQtMi4yOTMgMS40MTItMS40MTYgMy4wMSAzLTEuNDEzIDEuNDE3ek01LjI4MiAyLjI5NCA2LjcgMy43MDZsLTIuOTkgMy0xLjQxNy0xLjQxM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA5aDJ2NWgtMnptMCA2aDJ2MmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbGFybU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMjkyIDYuNzA4LTMuMDEtMyAxLjQxMi0xLjQxNyAzLjAxIDN6bTEuNDE1IDEzLjU4NS0yLjI4Ny0yLjI4N0MyMC40MDkgMTYuNTYzIDIxIDE0LjgzOCAyMSAxM2MwLTQuODc5LTQuMTIxLTktOS05LTEuODM4IDAtMy41NjMuNTkxLTUuMDA2IDEuNThMNS45MSA0LjQ5NmwuNzg4LS43OS0xLjQxNi0xLjQxMi0uNzg2Ljc4OC0uNzg5LS43ODktMS40MTQgMS40MTQgMTggMTggMS40MTQtMS40MTR6TTEyIDZjMy43OTQgMCA3IDMuMjA2IDcgNyAwIDEuMjkyLS4zODcgMi41MDctMS4wMjcgMy41NTlMMTUuNDE0IDE0SDE3di0yaC0zLjU4NkwxMyAxMS41ODZWOGgtMnYxLjU4Nkw4LjQ0MSA3LjAyN0M5LjQ5MyA2LjM4NyAxMC43MDggNiAxMiA2ek00LjMwNSA4LjQyNkE4Ljc5MiA4Ljc5MiAwIDAgMCAzIDEzYzAgNC44NzkgNC4xMjEgOSA5IDlhOC43OTIgOC43OTIgMCAwIDAgNC41NzQtMS4zMDVsLTEuNDYxLTEuNDYxQTYuODAxIDYuODAxIDAgMCAxIDEyIDIwYy0zLjc5NCAwLTctMy4yMDYtNy03IDAtMS4xMTEuMjgxLTIuMTY5Ljc2Ni0zLjExM0w0LjMwNSA4LjQyNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbGFybVNub296ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGMtNC44NzkgMC05IDQuMTIxLTkgOXM0LjEyMSA5IDkgOSA5LTQuMTIxIDktOS00LjEyMS05LTktOXptMCAxNmMtMy43OTQgMC03LTMuMjA2LTctN3MzLjIwNi03IDctNyA3IDMuMjA2IDcgNy0zLjIwNiA3LTcgN3ptOC4yOTItMTMuMjkyLTMuMDEtMyAxLjQxMi0xLjQxNyAzLjAxIDN6TTYuNjk4IDMuNzA3bC0yLjk5IDIuOTk5TDIuMjkgNS4yOTRsMi45OS0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjgzMiAxMC41NTVBMSAxIDAgMCAwIDE0IDlIOXYyaDMuMTMybC0yLjk2NCA0LjQ0NUExIDEgMCAwIDAgMTAgMTdoNXYtMmgtMy4xMzJsMi45NjQtNC40NDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWxhcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjLTQuODc5IDAtOSA0LjEyMS05IDlzNC4xMjEgOSA5IDkgOS00LjEyMSA5LTktNC4xMjEtOS05LTl6bTAgMTZjLTMuNzk0IDAtNy0zLjIwNi03LTdzMy4yMDYtNyA3LTcgNyAzLjIwNiA3IDctMy4yMDYgNy03IDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTJWOGgtMnY2aDZ2LTJ6bTQuMjg0LTguMjkzIDEuNDEyLTEuNDE2IDMuMDEgMy0xLjQxMyAxLjQxN3ptLTEwLjU4NiAwLTIuOTkgMi45OTlMMi4yOSA1LjI5NGwyLjk5LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWxidW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTEuOTlcIixcImN5XCI6XCIxMS45OVwiLFwiclwiOlwiMi4wMVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJhMTAgMTAgMCAxIDAgMTAgMTBBMTAgMTAgMCAwIDAgMTIgMnptMCAxOGE4IDggMCAxIDEgOC04IDggOCAwIDAgMS04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmE2IDYgMCAwIDAtNiA2aDJhNCA0IDAgMCAxIDQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbGlnbkp1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgN2gxNnYySDR6bTAtNGgxNnYySDR6bTAgOGgxNnYySDR6bTAgNGgxNnYySDR6bTIgNGgxMnYySDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQWxpZ25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE5aDE2djJINHptMC00aDExdjJINHptMC00aDE2djJINHptMC04aDE2djJINHptMCA0aDExdjJINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbGlnbk1pZGRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOWgxNnYySDR6bTMtNGgxMHYySDd6bS0zLTRoMTZ2Mkg0em0wLThoMTZ2Mkg0em0zIDRoMTB2Mkg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFsaWduUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTloMTZ2Mkg0em01LTRoMTF2Mkg5em0tNS00aDE2djJINHptMC04aDE2djJINHptNSA0aDExdjJIOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbmFseXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEyaDJhNy45ODYgNy45ODYgMCAwIDEgMi4zMzctNS42NjMgNy45MSA3LjkxIDAgMCAxIDIuNTQyLTEuNzEgOC4xMiA4LjEyIDAgMCAxIDYuMTMtLjA0MUEyLjQ4OCAyLjQ4OCAwIDAgMCAxNy41IDdDMTguODg2IDcgMjAgNS44ODYgMjAgNC41UzE4Ljg4NiAyIDE3LjUgMmMtLjY4OSAwLTEuMzEyLjI3Ni0xLjc2My43MjUtMi40MzEtLjk3My01LjIyMy0uOTU4LTcuNjM1LjA1OWE5LjkyOCA5LjkyOCAwIDAgMC0zLjE4IDIuMTM5IDkuOTIgOS45MiAwIDAgMC0yLjE0IDMuMTc5QTEwLjAwNSAxMC4wMDUgMCAwIDAgMiAxMnptMTcuMzczIDMuMTIyYy0uNDAxLjk1Mi0uOTc3IDEuODA4LTEuNzEgMi41NDFzLTEuNTg5IDEuMzA5LTIuNTQyIDEuNzFhOC4xMiA4LjEyIDAgMCAxLTYuMTMuMDQxQTIuNDg4IDIuNDg4IDAgMCAwIDYuNSAxN0M1LjExNCAxNyA0IDE4LjExNCA0IDE5LjVTNS4xMTQgMjIgNi41IDIyYy42ODkgMCAxLjMxMi0uMjc2IDEuNzYzLS43MjVBOS45NjUgOS45NjUgMCAwIDAgMTIgMjJhOS45ODMgOS45ODMgMCAwIDAgOS4yMTctNi4xMDJBOS45OTIgOS45OTIgMCAwIDAgMjIgMTJoLTJhNy45OTMgNy45OTMgMCAwIDEtLjYyNyAzLjEyMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3LjQ2MmMtMi41MDIgMC00LjUzOCAyLjAzNi00LjUzOCA0LjUzOFM5LjQ5OCAxNi41MzggMTIgMTYuNTM4czQuNTM4LTIuMDM2IDQuNTM4LTQuNTM4UzE0LjUwMiA3LjQ2MiAxMiA3LjQ2MnptMCA3LjA3NmMtMS4zOTkgMC0yLjUzOC0xLjEzOS0yLjUzOC0yLjUzOFMxMC42MDEgOS40NjIgMTIgOS40NjJzMi41MzggMS4xMzkgMi41MzggMi41MzgtMS4xMzkgMi41MzgtMi41MzggMi41Mzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQW5jaG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiAxNS0zLTQtMyA0aDEuOTA2Yy0uNDM2IDIuNDY5LTIuNDM4IDQuNDcxLTQuOTA2IDQuOTA2VjEzaDJ2LTJoLTJWOS4zMzZjMS41NDMtLjQ1OSAyLjcxNC0xLjkyMyAyLjcxNC0zLjYyMUMxNS43MTQgMy42NjYgMTQuMDQ4IDIgMTIgMlM4LjI4NiAzLjY2NiA4LjI4NiA1LjcxNWMwIDEuNjk4IDEuMTcxIDMuMTYyIDIuNzE0IDMuNjIxVjExSDl2MmgydjYuOTA2QzguNTMxIDE5LjQ3MSA2LjUyOSAxNy40NjkgNi4wOTQgMTVIOGwtMy00LTMgNGgyLjA3M2MuNTExIDMuODg1IDMuOTI5IDcgNy45MjcgN3M3LjQxNi0zLjExNSA3LjkyNy03SDIyek0xMC4yODYgNS43MTVDMTAuMjg2IDQuNzcgMTEuMDU1IDQgMTIgNHMxLjcxNC43NyAxLjcxNCAxLjcxNWMwIC45NTEtLjgwMSAxLjc4NS0xLjcxNCAxLjc4NXMtMS43MTQtLjgzNC0xLjcxNC0xLjc4NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBbmdyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0Yy0zIDAtNCAzLTQgM2g4cy0xLTMtNC0zem0tMi40MzktMi40MzljLjAxNC0uMDE0LjAyMy0uMDMuMDM3LS4wNDRsMS4wMzEuNDEzLjc0Mi0xLjg1Ny01LTItLjc0MiAxLjg1NiAxLjM3My41NDlMNyAxMC41YTEuNDk5IDEuNDk5IDAgMCAwIDIuNTYxIDEuMDYxem0zLjA2OC0xLjQ5Ljc0MiAxLjg1NyAxLjAzNy0uNDE1Yy4wMTEuMDExLjAxOS4wMjQuMDI5LjAzNWExLjQ4OCAxLjQ4OCAwIDAgMCAyLjExMiAwYy4yNzEtLjI3MS40MzgtLjY0NC40MzgtMS4wNTZsLS4wMDEtLjAxIDEuMzg2LS41NTQtLjc0Mi0xLjg1Ny01LjAwMSAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFwZXJ0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNTc5IDIgMiA2LjU3OSAyIDEyczQuNTc5IDEwIDEwIDEwIDEwLTQuNTc5IDEwLTEwUzE3LjQyMSAyIDEyIDJ6bTIuMTEzIDEzSDkuOTg2bC0xLjcyMy0zLjA5NEwxMC4yMDIgOWgzLjczNmwxLjg3MSAzLjA2MkwxNC4xMTMgMTV6TTQgMTJjMC0uOTUzLjE4Ni0xLjg3LjUwOC0yLjcyN0w3LjY5NiAxNUg0LjYxQTcuNzU3IDcuNzU3IDAgMCAxIDQgMTJ6bTEyLjI4My0zaDMuMTA2QTcuNzQgNy43NCAwIDAgMSAyMCAxMmMwIC44NDQtLjE0MyAxLjY2LS4zOTcgMi40MzJMMTYuMjgzIDl6bTEuOTA1LTJoLTYuNjUzbDEuOTA1LTIuODU3YzEuODg2LjM1OSAzLjU2MiAxLjQwMyA0Ljc0OCAyLjg1N3ptLTcuMDk1LTIuOTQxTDkuMTMyIDdIOXYuMTk3TDcuMTcgOS45NDIgNS42NSA3LjIxNGMxLjMtMS43MDMgMy4yNDktMi44OTUgNS40NDMtMy4xNTV6TTUuODEyIDE3aDcuMTQ3bC0xLjcwOSAyLjk2MUM5LjA4NCAxOS43NDggNy4xNDEgMTguNjMgNS44MTIgMTd6bTcuODI4IDIuODIgMy4zNTctNS44MTUgMS41NDQgMi41MjZjLTEuMTU0IDEuNjQyLTIuOTAxIDIuODU0LTQuOTAxIDMuMjg5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjJoMXYtNi45OTVjLjAwNi0uNTAyLjE3Ny0zLjAwNSAzLTMuMDA1czIuOTk0IDIuNTAzIDMgM3Y3aDd2LTJoLTFWNGgxVjJIMnYyaDF2MTZIMnYyaDZ6TTE5IDR2Mkg1VjRoMTR6TTUgOGgxNHYxMmgtMnYtNWMwLTEuNzI5LTEuMDQ1LTUtNS01cy01IDMuMjcxLTUgNXY1SDVWOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBcmNoaXZlSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjcwNiA1LjI5Mi0yLjk5OS0yLjk5OUEuOTk2Ljk5NiAwIDAgMCAxOCAySDZhLjk5Ni45OTYgMCAwIDAtLjcwNy4yOTNMMi4yOTQgNS4yOTJBLjk5NC45OTQgMCAwIDAgMiA2djEzYzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY2YS45OTQuOTk0IDAgMCAwLS4yOTQtLjcwOHpNNi40MTQgNGgxMS4xNzJsMSAxSDUuNDE0bDEtMXpNNCAxOVY3aDE2bC4wMDIgMTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5aC00djNIN2w1IDUgNS01aC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFyY2hpdmVPdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjcwNiA1LjI5Mi0yLjk5OS0yLjk5OUEuOTk2Ljk5NiAwIDAgMCAxOCAySDZhLjk5Ni45OTYgMCAwIDAtLjcwNy4yOTNMMi4yOTQgNS4yOTJBLjk5NC45OTQgMCAwIDAgMiA2djEzYzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY2YS45OTQuOTk0IDAgMCAwLS4yOTQtLjcwOHpNNi40MTQgNGgxMS4xNzJsMSAxSDUuNDE0bDEtMXpNNCAxOVY3aDE2bC4wMDIgMTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE0aDN2M2g0di0zaDNsLTUtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBcmNoaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS43MDYgNS4yOTEtMi45OTktMi45OThBLjk5Ni45OTYgMCAwIDAgMTggMkg2YS45OTYuOTk2IDAgMCAwLS43MDcuMjkzTDIuMjk0IDUuMjkxQS45OTQuOTk0IDAgMCAwIDIgNS45OTlWMTljMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjUuOTk5YS45OTQuOTk0IDAgMCAwLS4yOTQtLjcwOHpNNi40MTQgNGgxMS4xNzJsLjk5OS45OTlINS40MTVMNi40MTQgNHpNNCAxOVY2Ljk5OWgxNkwyMC4wMDIgMTlINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMkg5di0ySDd2NGgxMHYtNGgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBcmVhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnptMTYuMDAyIDE0SDVWNWgxNGwuMDAyIDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEyaDJWN2gtNXYyaDN6bS0zIDNIOXYtM0g3djVoNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBcnJvd0JhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExSDYuNDE0bDUuMjkzLTUuMjkzLTEuNDE0LTEuNDE0TDIuNTg2IDEybDcuNzA3IDcuNzA3IDEuNDE0LTEuNDE0TDYuNDE0IDEzSDIxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFycm93RnJvbUJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOGgxMnYySDZ6bTYtMTQuNDE0LTYuNzA3IDYuNzA3IDEuNDE0IDEuNDE0TDExIDcuNDE0VjE2aDJWNy40MTRsNC4yOTMgNC4yOTMgMS40MTQtMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQXJyb3dGcm9tTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2aDJ2MTJINHptNCA3aDguNTg2bC00LjI5MyA0LjI5MyAxLjQxNCAxLjQxNEwyMC40MTQgMTJsLTYuNzA3LTYuNzA3LTEuNDE0IDEuNDE0TDE2LjU4NiAxMUg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFycm93RnJvbVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2aDJ2MTJoLTJ6bS0yIDVINy40MTRsNC4yOTMtNC4yOTMtMS40MTQtMS40MTRMMy41ODYgMTJsNi43MDcgNi43MDcgMS40MTQtMS40MTRMNy40MTQgMTNIMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQXJyb3dGcm9tVG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDRoMTJ2Mkg2em02IDE2LjQxNCA2LjcwNy02LjcwNy0xLjQxNC0xLjQxNEwxMyAxNi41ODZWOGgtMnY4LjU4NmwtNC4yOTMtNC4yOTMtMS40MTQgMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQXJyb3dUb0JvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOGgxMnYySDZ6bTUtMTR2OC41ODZMNi43MDcgOC4yOTMgNS4yOTMgOS43MDcgMTIgMTYuNDE0bDYuNzA3LTYuNzA3LTEuNDE0LTEuNDE0TDEzIDEyLjU4NlY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFycm93VG9MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZoMnYxMkg0em0xMC4yOTMtLjcwN0w3LjU4NiAxMmw2LjcwNyA2LjcwNyAxLjQxNC0xLjQxNEwxMS40MTQgMTNIMjB2LTJoLTguNTg2bDQuMjkzLTQuMjkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUFycm93VG9SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNmgydjEyaC0yek00IDEzaDguNTg2bC00LjI5MyA0LjI5MyAxLjQxNCAxLjQxNEwxNi40MTQgMTIgOS43MDcgNS4yOTMgOC4yOTMgNi43MDcgMTIuNTg2IDExSDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQXJyb3dUb1RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA0aDEydjJINnptLjcwNyAxMS43MDdMMTEgMTEuNDE0VjIwaDJ2LTguNTg2bDQuMjkzIDQuMjkzIDEuNDE0LTEuNDE0TDEyIDcuNTg2bC02LjcwNyA2LjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMGMxLjQ2NiAwIDIuOTYxLS4zNzEgNC40NDItMS4xMDRsLS44ODUtMS43OTNDMTQuMzUzIDE5LjY5OCAxMy4xNTYgMjAgMTIgMjBjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDh2MWMwIC42OTItLjMxMyAyLTEuNSAyLTEuMzk2IDAtMS40OTQtMS44MTktMS41LTJWOGgtMnYuMDI1QTQuOTU0IDQuOTU0IDAgMCAwIDEyIDdjLTIuNzU3IDAtNSAyLjI0My01IDVzMi4yNDMgNSA1IDVjMS40NSAwIDIuNzQ4LS42MzEgMy42NjItMS42MjEuNTI0Ljg5IDEuNDA4IDEuNjIxIDIuODM4IDEuNjIxIDIuMjczIDAgMy41LTIuMDYxIDMuNS00di0xYzAtNS41MTQtNC40ODYtMTAtMTAtMTB6bTAgMTNjLTEuNjU0IDAtMy0xLjM0Ni0zLTNzMS4zNDYtMyAzLTMgMyAxLjM0NiAzIDMtMS4zNDYgMy0zIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQXRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4xMDIgMjAuODk4Yy42OTguNjk5IDEuNjk2IDEuMDY4IDIuODg3IDEuMDY4IDEuNzQyIDAgMy44NTUtLjc3OCA2LjAxMi0yLjEyNyAyLjE1NiAxLjM1IDQuMjcgMi4xMjcgNi4wMTIgMi4xMjcgMS4xOSAwIDIuMTg4LS4zNjkgMi44ODctMS4wNjggMS4yNjktMS4yNjkgMS40MTEtMy40MTMuNDAxLTYuMDM5LS4zNTgtLjkzMi0uODU0LTEuODk1LTEuNDU3LTIuODU5YTE2Ljc5MiAxNi43OTIgMCAwIDAgMS40NTctMi44NTljMS4wMS0yLjYyNi44NjctNC43NzEtLjQwMS02LjAzOS0uNjk4LS42OTktMS42OTYtMS4wNjgtMi44ODctMS4wNjgtMS43NDIgMC0zLjg1NS43NzgtNi4wMTIgMi4xMjctMi4xNTYtMS4zNS00LjI3LTIuMTI3LTYuMDEyLTIuMTI3LTEuMTkgMC0yLjE4OC4zNjktMi44ODcgMS4wNjhDMS44MzMgNC4zNzEgMS42OSA2LjUxNSAyLjcgOS4xNDFjLjM1OS45MzIuODU0IDEuODk1IDEuNDU3IDIuODU5QTE2Ljc5MiAxNi43OTIgMCAwIDAgMi43IDE0Ljg1OWMtMS4wMSAyLjYyNi0uODY3IDQuNzcuNDAyIDYuMDM5em0xNi4zMzEtNS4zMjFjLjY4OSAxLjc5LjcwOCAzLjI1MS4wNTIgMy45MDctLjMyLjMyLS44MTUuNDgyLTEuNDczLjQ4Mi0xLjE2NyAwLTIuNjQ2LS41MDMtNC4yMDgtMS4zOGEyNi42MTEgMjYuNjExIDAgMCAwIDQuNzgzLTQuNzg0Yy4zMzYuNjAxLjYyMyAxLjE5Ni44NDYgMS43NzV6TTEyIDE3LjQxN2EyMy41NjggMjMuNTY4IDAgMCAxLTIuOTM0LTIuNDgzQTIzLjk5OCAyMy45OTggMCAwIDEgNi41NjYgMTIgMjMuNzQgMjMuNzQgMCAwIDEgMTIgNi41ODNhMjMuNTY4IDIzLjU2OCAwIDAgMSAyLjkzNCAyLjQ4MyAyMy45OTggMjMuOTk4IDAgMCAxIDIuNSAyLjkzNEEyMy43NCAyMy43NCAwIDAgMSAxMiAxNy40MTd6bTYuMDEyLTEzLjM4M2MuNjU3IDAgMS4xNTIuMTYyIDEuNDczLjQ4Mi42NTYuNjU2LjYzOCAyLjExNy0uMDUyIDMuOTA3LS4yMjMuNTc5LS41MSAxLjE3NC0uODQ2IDEuNzc1YTI2LjQ0OCAyNi40NDggMCAwIDAtNC43ODMtNC43ODRjMS41NjItLjg3NiAzLjA0MS0xLjM4IDQuMjA4LTEuMzh6TTQuNTY3IDguNDIzYy0uNjg5LTEuNzktLjcwOC0zLjI1MS0uMDUyLTMuOTA3LjMyLS4zMi44MTUtLjQ4MiAxLjQ3My0uNDgyIDEuMTY3IDAgMi42NDYuNTAzIDQuMjA4IDEuMzhhMjYuNDQ4IDI2LjQ0OCAwIDAgMC00Ljc4MyA0Ljc4NCAxMy45MzQgMTMuOTM0IDAgMCAxLS44NDYtMS43NzV6bTAgNy4xNTRjLjIyMy0uNTc5LjUxLTEuMTc0Ljg0Ni0xLjc3NWEyNi40NDggMjYuNDQ4IDAgMCAwIDQuNzgzIDQuNzg0Yy0xLjU2My44NzctMy4wNDEgMS4zOC00LjIwOCAxLjM4LS42NTcgMC0xLjE1Mi0uMTYyLTEuNDczLS40ODItLjY1Ni0uNjU2LS42MzctMi4xMTcuMDUyLTMuOTA3elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMi41NzRcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlBd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA4Ljk5OWMwIDEuOTAyLjc2NSAzLjYyNyAyIDQuODlWMjFhLjk5OC45OTggMCAwIDAgMS40NDcuODk1TDEyIDIwLjExOGwzLjU1MyAxLjc3NmEuOTkyLjk5MiAwIDAgMCAuOTcyLS4wNDNjLjI5NS0uMTgzLjQ3NS0uNTA0LjQ3NS0uODUxdi03LjExYTYuOTc2IDYuOTc2IDAgMCAwIDItNC44OTFDMTkgNS4xNCAxNS44NiAyIDEyIDJTNSA1LjE0IDUgOC45OTl6bTcuNDQ3IDkuMTA2YTEgMSAwIDAgMC0uODk1IDBMOSAxOS4zODJ2LTQuMDY3Yy45MTEuNDM0IDEuOTI2LjY4NSAzIC42ODVzMi4wODktLjI1IDMtLjY4NXY0LjA2NmwtMi41NTMtMS4yNzZ6TTEyIDRjMi43NTYgMCA1IDIuMjQyIDUgNC45OTlBNS4wMDYgNS4wMDYgMCAwIDEgMTIgMTRjLTIuNzU3IDAtNS0yLjI0My01LTUuMDAxQTUuMDA1IDUuMDA1IDAgMCAxIDEyIDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmFkZ2VDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4wMzUgMTUuNDc5QTMuOTc2IDMuOTc2IDAgMCAwIDQgMTZjMCAyLjM3OCAyLjEzOCA0LjI4NCA0LjUyMSAzLjk2NEM5LjIxNCAyMS4xOTggMTAuNTM0IDIyIDEyIDIyczIuNzg2LS44MDIgMy40NzktMi4wMzZDMTcuODU3IDIwLjI4NCAyMCAxOC4zNzggMjAgMTZjMC0uMTczLS4wMTItLjM0Ny0uMDM1LS41MjFDMjEuMTk4IDE0Ljc4NiAyMiAxMy40NjUgMjIgMTJzLS44MDItMi43ODYtMi4wMzUtMy40NzlDMTkuOTg4IDguMzQ3IDIwIDguMTczIDIwIDhjMC0yLjM3OC0yLjE0My00LjI4OC00LjUyMS0zLjk2NEMxNC43ODYgMi44MDIgMTMuNDY2IDIgMTIgMnMtMi43ODYuODAyLTMuNDc5IDIuMDM2QzYuMTM4IDMuNzEyIDQgNS42MjIgNCA4YzAgLjE3My4wMTIuMzQ3LjAzNS41MjFDMi44MDIgOS4yMTQgMiAxMC41MzUgMiAxMnMuODAyIDIuNzg2IDIuMDM1IDMuNDc5em0xLjQ0Mi01LjQwMyAxLjEwMi0uMjkzLS40MzQtMS4wNTNBMS45MzIgMS45MzIgMCAwIDEgNiA4YzAtMS4xMDMuODk3LTIgMi0yIC4yNDcgMCAuNDk5LjA1LjczLjE0NWwxLjA1NC40MzQuMjkzLTEuMTAyYTEuOTkgMS45OSAwIDAgMSAzLjg0NiAwbC4yOTMgMS4xMDIgMS4wNTQtLjQzNEMxNS41MDEgNi4wNSAxNS43NTMgNiAxNiA2YzEuMTAzIDAgMiAuODk3IDIgMiAwIC4yNDctLjA1LjUtLjE0NS43M2wtLjQzNCAxLjA1MyAxLjEwMi4yOTNhMS45OTMgMS45OTMgMCAwIDEgMCAzLjg0OGwtMS4xMDIuMjkzLjQzNCAxLjA1M2MuMDk1LjIzLjE0NS40ODMuMTQ1LjczIDAgMS4xMDMtLjg5NyAyLTIgMi0uMjQ3IDAtLjQ5OS0uMDUtLjczLS4xNDVsLTEuMDU0LS40MzQtLjI5MyAxLjEwMmExLjk5IDEuOTkgMCAwIDEtMy44NDYgMGwtLjI5My0xLjEwMi0xLjA1NC40MzRBMS45MzUgMS45MzUgMCAwIDEgOCAxOGMtMS4xMDMgMC0yLS44OTctMi0yIDAtLjI0Ny4wNS0uNS4xNDUtLjczbC40MzQtMS4wNTMtMS4xMDItLjI5M2ExLjk5MyAxLjk5MyAwIDAgMSAwLTMuODQ4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljc0MiAxMC43MS0xLjQwOC0xLjQyLTMuMzMxIDMuMjk5LTEuMjk2LTEuMjk2LTEuNDE0IDEuNDE0IDIuNzA0IDIuNzA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45NjUgOC41MjFDMTkuOTg4IDguMzQ3IDIwIDguMTczIDIwIDhjMC0yLjM3OC0yLjE0My00LjI4OC00LjUyMS0zLjk2NEMxNC43ODYgMi44MDIgMTMuNDY2IDIgMTIgMnMtMi43ODYuODAyLTMuNDc5IDIuMDM2QzYuMTM4IDMuNzEyIDQgNS42MjIgNCA4YzAgLjE3My4wMTIuMzQ3LjAzNS41MjFDMi44MDIgOS4yMTQgMiAxMC41MzUgMiAxMnMuODAyIDIuNzg2IDIuMDM1IDMuNDc5QTMuOTc2IDMuOTc2IDAgMCAwIDQgMTZjMCAyLjM3OCAyLjEzOCA0LjI4NCA0LjUyMSAzLjk2NEM5LjIxNCAyMS4xOTggMTAuNTM0IDIyIDEyIDIyczIuNzg2LS44MDIgMy40NzktMi4wMzZDMTcuODU3IDIwLjI4NCAyMCAxOC4zNzggMjAgMTZjMC0uMTczLS4wMTItLjM0Ny0uMDM1LS41MjFDMjEuMTk4IDE0Ljc4NiAyMiAxMy40NjUgMjIgMTJzLS44MDItMi43ODYtMi4wMzUtMy40Nzl6bS0xLjQ0MiA1LjQwMy0xLjEwMi4yOTMuNDM0IDEuMDUzYy4wOTUuMjMuMTQ1LjQ4My4xNDUuNzMgMCAxLjEwMy0uODk3IDItMiAyLS4yNDcgMC0uNDk5LS4wNS0uNzMtLjE0NWwtMS4wNTQtLjQzNC0uMjkzIDEuMTAyYTEuOTkgMS45OSAwIDAgMS0zLjg0NiAwbC0uMjkzLTEuMTAyLTEuMDU0LjQzNEExLjkzNSAxLjkzNSAwIDAgMSA4IDE4Yy0xLjEwMyAwLTItLjg5Ny0yLTIgMC0uMjQ3LjA1LS41LjE0NS0uNzNsLjQzNC0xLjA1My0xLjEwMi0uMjkzYTEuOTkzIDEuOTkzIDAgMCAxIDAtMy44NDhsMS4xMDItLjI5My0uNDM0LTEuMDUzQTEuOTMyIDEuOTMyIDAgMCAxIDYgOGMwLTEuMTAzLjg5Ny0yIDItMiAuMjQ3IDAgLjQ5OS4wNS43My4xNDVsMS4wNTQuNDM0LjI5My0xLjEwMmExLjk5IDEuOTkgMCAwIDEgMy44NDYgMGwuMjkzIDEuMTAyIDEuMDU0LS40MzRDMTUuNTAxIDYuMDUgMTUuNzUzIDYgMTYgNmMxLjEwMyAwIDIgLjg5NyAyIDIgMCAuMjQ3LS4wNS41LS4xNDUuNzNsLS40MzQgMS4wNTMgMS4xMDIuMjkzYTEuOTkzIDEuOTkzIDAgMCAxIDAgMy44NDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy43NiAyMWExNy42OCAxNy42OCAwIDAgMCA0IC40MyAxMy44OSAxMy44OSAwIDAgMCA5LjkzLTMuNjlDMjMgMTIuMzcgMjEuMDYgNC4xMSAyMSAzLjc2YTEgMSAwIDAgMC0uNzYtLjc2IDE3LjkxIDE3LjkxIDAgMCAwLTQtLjQzIDEzLjgyIDEzLjgyIDAgMCAwLTkuOTYgMy43MUMuOTQgMTEuNjMgMi45NCAxOS44OSAzIDIwLjI0YTEgMSAwIDAgMCAuNzYuNzZ6TTcuNyA3LjdhMTEuODYgMTEuODYgMCAwIDEgOC40OS0zLjEgMTcuNTcgMTcuNTcgMCAwIDEgMyAuMjVjLjMxIDEuODcuOTEgNy42Ny0yLjg2IDExLjQ0YTExLjkxIDExLjkxIDAgMCAxLTguNTUgMy4xMSAxNy4xNiAxNy4xNiAwIDAgMS0yLjkzLS4yNWMtLjMyLTEuODgtLjkyLTcuNjcgMi44NS0xMS40NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03LjI5IDE1LjI5IDEuNDIgMS40MiAxLjc5LTEuNzkgMS43OSAxLjc5IDEuNDItMS40Mi0xLjgtMS43OSAxLjU5LTEuNTkgMS43OSAxLjggMS40Mi0xLjQyLTEuOC0xLjc5IDEuOC0xLjc5LTEuNDItMS40Mi0xLjc5IDEuOC0xLjc5LTEuOC0xLjQyIDEuNDIgMS44IDEuNzktMS41OSAxLjU5LTEuNzktMS44LTEuNDIgMS40MiAxLjggMS43OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCYW5kQWlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjExMSAyMS44ODlhNS45NjIgNS45NjIgMCAwIDAgNC4yNDItMS43NTdsNy43NzgtNy43NzhhNi4wMDcgNi4wMDcgMCAwIDAgMC04LjQ4NSA1Ljk2NSA1Ljk2NSAwIDAgMC00LjI0My0xLjc1NyA1Ljk2MiA1Ljk2MiAwIDAgMC00LjI0MiAxLjc1N2wtNy43NzggNy43NzhhNi4wMDcgNi4wMDcgMCAwIDAgMCA4LjQ4NSA1Ljk2NSA1Ljk2NSAwIDAgMCA0LjI0MyAxLjc1N3ptLTIuODI5LTguODI4IDcuNzc4LTcuNzc4YTMuOTc2IDMuOTc2IDAgMCAxIDIuODI4LTEuMTcxYzEuMDY5IDAgMi4wNzMuNDE2IDIuODI5IDEuMTcxYTQuMDA2IDQuMDA2IDAgMCAxIDAgNS42NTdsLTcuNzc4IDcuNzc4YTMuOTc2IDMuOTc2IDAgMCAxLTIuODI4IDEuMTcxIDMuOTc3IDMuOTc3IDAgMCAxLTIuODI5LTEuMTcxIDQuMDA4IDQuMDA4IDAgMCAxIDAtNS42NTd6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTVcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiOVwiLFwiclwiOlwiMVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJhckNoYXJ0QWx0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN2gtNFY0YzAtMS4xMDMtLjg5Ny0yLTItMmgtNGMtMS4xMDMgMC0yIC44OTctMiAydjVINGMtMS4xMDMgMC0yIC44OTctMiAydjlhMSAxIDAgMCAwIDEgMWgxOGExIDEgMCAwIDAgMS0xVjljMC0xLjEwMy0uODk3LTItMi0yek00IDExaDR2OEg0di04em02LTFWNGg0djE1aC00di05em0xMCA5aC00VjloNHYxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCYXJDaGFydEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNmgydjExaC0yem00LTNoMnYxNGgtMnpNOSA5aDJ2OEg5ek00IDE5aDE2djJINHptMS03aDJ2NUg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJhckNoYXJ0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnptMTYuMDAxIDE0SDVWNWgxNGwuMDAxIDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoMnYxMGgtMnptNCAzaDJ2N2gtMnptLTggMmgydjVIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCYXJDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2aDJ2MTRIOXptNCAyaDJ2MTJoLTJ6bTQtNGgydjE2aC0yek01IDEyaDJ2OEg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJhcmNvZGVSZWFkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgN2gydjEwSDV6bTkgMGgxdjEwaC0xem0tNCAwaDN2MTBoLTN6TTggN2gxdjEwSDh6bTggMGgzdjEwaC0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNWg0VjNINGMtMS4xMDMgMC0yIC44OTctMiAydjRoMlY1em0wIDE2aDR2LTJINHYtNEgydjRjMCAxLjEwMy44OTcgMiAyIDJ6TTIwIDNoLTR2Mmg0djRoMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNmgtNHYyaDRjMS4xMDMgMCAyLS44OTcgMi0ydi00aC0ydjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmFyY29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMnpNNCAxOFY2aDE2djEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOGgydjhINnptMyAwaDF2OEg5em04IDBoMXY4aC0xem0tNCAwaDN2OGgtM3ptLTIgMGgxdjhoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmFzZWJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJhOS45MzcgOS45MzcgMCAwIDAtNy4wNzEgMi45MzhjLTMuODk4IDMuODk4LTMuODk4IDEwLjI0MyAwIDE0LjE0MyAxLjg5NSAxLjg5NSA0LjQwNSAyLjkzOCA3LjA3MSAyLjkzOHM1LjE3Ny0xLjA0MyA3LjA3MS0yLjkzOGMzLjg5OS0zLjg5OSAzLjg5OS0xMC4yNDQgMC0xNC4xNDNBOS45MzcgOS45MzcgMCAwIDAgMTEuOTkgMnptNS42NTcgMTUuNjY3YTcuOTU3IDcuOTU3IDAgMCAxLTMuODE2IDIuMTI5bC0uMDAxLS4wMzdhNi4xOTkgNi4xOTkgMCAwIDEgLjQyMS0yLjI1OWwtMS44NjMtLjcyOWE4LjE4OCA4LjE4OCAwIDAgMC0uNTUyIDMuMjM5IDcuOTUzIDcuOTUzIDAgMCAxLTUuNTAzLTIuMzQ0IDcuOTY1IDcuOTY1IDAgMCAxLTIuMzMyLTUuNTAzYy4wOC4wMDIuMTYuMDA1LjI0LjAwNWE4LjE2IDguMTYgMCAwIDAgMi45ODgtLjU1OGwtLjczLTEuODYyYTYuMTU2IDYuMTU2IDAgMCAxLTIuMjgxLjQxMiA3LjkzNiA3LjkzNiAwIDAgMSAyLjExNS0zLjgwOSA3Ljk2MyA3Ljk2MyAwIDAgMSAzLjk3Mi0yLjE2OCA1Ljk3NCA1Ljk3NCAwIDAgMS0uMzU3IDEuOTVsMS44ODEuNjgxYTcuOTIgNy45MiAwIDAgMCAuNDgyLTIuNzAxYzAtLjAzMy0uMDA0LS4wNjUtLjAwNS0uMDk4IDIuMDEzLjA3OSAzLjkuODk2IDUuMzQyIDIuMzM2YTcuOTU5IDcuOTU5IDAgMCAxIDIuMzI0IDUuMzQ4IDcuOTA4IDcuOTA4IDAgMCAwLTIuNzg3LjQ3M2wuNjg0IDEuODhhNS45MSA1LjkxIDAgMCAxIDEuOTM1LS4zNjEgNy45NTMgNy45NTMgMCAwIDEtMi4xNTcgMy45NzZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMTEyIDE0LjEzYTcuNTk5IDcuNTk5IDAgMCAwLS45MjYgMS4xMjFsMS42NTYgMS4xMmMuMi0uMjk2LjQzLS41NzQuNjgzLS44MjZhNi40MjggNi40MjggMCAwIDEgMS4xNzgtLjkyOWwtMS4wNDktMS43MDNhOC40MDggOC40MDggMCAwIDAtMS41NDIgMS4yMTd6TTguNDU2IDguNDc0YTUuNzEzIDUuNzEzIDAgMCAxLS44MjcuNjgxbDEuMTE5IDEuNjU4YTcuNzIgNy43MiAwIDAgMCAxLjEyMi0uOTI2IDguNTAxIDguNTAxIDAgMCAwIDEuMjE3LTEuNTQyTDkuMzg0IDcuMjk3YTYuNTE5IDYuNTE5IDAgMCAxLS45MjggMS4xNzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmFza2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA5aC0xLjQybC0zLjcxMi02LjQ5Ni0xLjczNi45OTJMMTcuMjc3IDlINi43MjNsMy4xNDYtNS41MDQtMS43MzctLjk5Mkw0LjQyIDlIM2ExLjAwMSAxLjAwMSAwIDAgMC0uOTY1IDEuMjYzbDIuNzk5IDEwLjI2NEEyLjAwNSAyLjAwNSAwIDAgMCA2Ljc2NCAyMmgxMC40NzNjLjg5OCAwIDEuNjkyLS42MDUgMS45My0xLjQ3NWwyLjc5OS0xMC4yNjNBLjk5OC45OTggMCAwIDAgMjEgOXptLTMuNzY0IDExdjEtMUg2Ljc2NEw0LjMxIDExaDE1LjM4bC0yLjQ1NCA5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTNoMnY1SDl6bTQgMGgydjVoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmFza2V0YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC45MjkgMTkuMDcxYzEuODk1IDEuODk1IDQuNDA1IDIuOTM4IDcuMDcxIDIuOTM4czUuMTc3LTEuMDQzIDcuMDcxLTIuOTM4YzMuODk5LTMuODk5IDMuODk5LTEwLjI0MyAwLTE0LjE0M0MxNy4xNzcgMy4wMzQgMTQuNjY1IDEuOTkgMTIgMS45OVM2LjgyMyAzLjAzNCA0LjkyOSA0LjkyOWMtMy44OTkgMy44OTgtMy44OTkgMTAuMjQzIDAgMTQuMTQyem03LjM4LTE1LjA2NWE3LjkxMiA3LjkxMiAwIDAgMSA0LjU5NCAxLjY3OEwxMiAxMC41ODZsLTEuNDYtMS40NmMxLjE2MS0xLjQ3OSAxLjc5Mi0zLjMwOCAxLjc2OS01LjEyek05LjExIDcuNjk2IDcuMDk4IDUuNjg0YTcuOTI5IDcuOTI5IDAgMCAxIDMuMjE4LTEuNTFjLS4wMTUgMS4yMzYtLjQ0NSAyLjQ3Ny0xLjIwNiAzLjUyMnpNNy42ODYgOS4xYTYuMDY1IDYuMDY1IDAgMCAxLTMuNDU5IDEuMDU3IDcuOTIzIDcuOTIzIDAgMCAxIDEuNDU4LTMuMDU4TDcuNjg2IDkuMXptLTMuNjc1IDMuMDQ2Yy4wNzcuMDAyLjE1NC4wMTQuMjMxLjAxNGE4LjA1IDguMDUgMCAwIDAgNC44NzctMS42MjZMMTAuNTg2IDEybC00LjkwMSA0LjkwMWE3Ljk3MiA3Ljk3MiAwIDAgMS0xLjY3NC00Ljc1NXptMTIuMjk0IDIuNzQ1YzEuMDQyLS43NTggMi4yOC0xLjE4OCAzLjUwOC0xLjIwNmE3Ljk0NyA3Ljk0NyAwIDAgMS0xLjQ5NyAzLjIxN2wtMi4wMTEtMi4wMTF6bS41OTcgMy40MjVhNy45MzUgNy45MzUgMCAwIDEtMy4wNTkgMS40NyA2LjA1IDYuMDUgMCAwIDEgMS4wNTctMy40NzJsMi4wMDIgMi4wMDJ6bS01LjA0NCAxLjY4NmE3LjkyMiA3LjkyMiAwIDAgMS00Ljc2MS0xLjY4NkwxMiAxMy40MTRsMS40NjMgMS40NjNjLTEuMTAzIDEuNDQ0LTEuNjU5IDMuMjY2LTEuNjA1IDUuMTI1em04LjEyNC04LjMxYy0xLjgwNy0uMDE4LTMuNjMzLjYxLTUuMTA4IDEuNzY4TDEzLjQxNCAxMmw0LjkwMS00LjkwMWE3Ljk2OCA3Ljk2OCAwIDAgMSAxLjY2NyA0LjU5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCYXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMEg3VjdjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMmgyYzAtMi4yMDYtMS43OTQtNC00LTRTNSA0Ljc5NCA1IDd2M0gzYTEgMSAwIDAgMC0xIDF2MmMwIDIuNjA2IDEuNjc0IDQuODIzIDQgNS42NVYyMmgydi0zaDh2M2gydi0zLjM1YzIuMzI2LS44MjcgNC0zLjA0NCA0LTUuNjV2LTJhMSAxIDAgMCAwLTEtMXptLTEgM2MwIDIuMjA2LTEuNzk0IDQtNCA0SDhjLTIuMjA2IDAtNC0xLjc5NC00LTR2LTFoMTZ2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE4aDE0YzEuMTAzIDAgMi0uODk3IDItMnYtMmgydi00aC0yVjhjMC0xLjEwMy0uODk3LTItMi0ySDRjLTEuMTAzIDAtMiAuODk3LTIgMnY4YzAgMS4xMDMuODk3IDIgMiAyek00IDhoMTRsLjAwMiA4SDRWOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDkuNTU3VjNoLTJ2Mkg2VjNINHY2LjU1N0MyLjgxIDEwLjI1IDIgMTEuNTI1IDIgMTN2NGExIDEgMCAwIDAgMSAxaDF2NGgydi00aDEydjRoMnYtNGgxYTEgMSAwIDAgMCAxLTF2LTRjMC0xLjQ3NS0uODExLTIuNzUtMi0zLjQ0M3pNMTggN3YyaC01VjdoNXpNNiA3aDV2Mkg2Vjd6bTE0IDlINHYtM2MwLTEuMTAzLjg5Ny0yIDItMmgxMmMxLjEwMyAwIDIgLjg5NyAyIDJ2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCZWVuSGVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM3LjU4OSAyIDQgNS41ODkgNCA5Ljk5NWMtLjAyOSA2LjQ0NSA3LjExNiAxMS42MDQgNy40MiAxMS44MTlhLjk5OC45OTggMCAwIDAgMS4xNiAwQzEyLjg4NCAyMS41OTkgMjAuMDI5IDE2LjQ0IDIwIDEwYzAtNC40MTEtMy41ODktOC04LTh6bTAgMTcuNzM1QzEwLjM4OSAxOC40MjcgNS45NzkgMTQuNDQxIDYgMTBjMC0zLjMwOSAyLjY5MS02IDYtNnM2IDIuNjkxIDYgNi4wMDVjLjAyMSA0LjQzNy00LjM4OCA4LjQyMy02IDkuNzN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTEuNTg2IDguNzA3IDkuMjkzbC0xLjQxNCAxLjQxNEwxMSAxNC40MTRsNS43MDctNS43MDctMS40MTQtMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmVlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtMlY0YTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjE1YzAgMS42NTQgMS4zNDYgMyAzIDNoMTBjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMWgyYzEuMTAzIDAgMi0uODk3IDItMlY4YzAtMS4xMDMtLjg5Ny0yLTItMnptLTQgMTNjMCAuNTUxLS40NDggMS0xIDFINWMtLjU1MiAwLTEtLjQ0OS0xLTFWNWgxMnYxNHptNC0zaC0yVjhoMnY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgN2gydjEwSDZ6bTYgMGgydjEwaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJlbGxNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNzA3IDE1LjI5MyAxOSAxMy41ODZWMTBjMC0zLjIxNy0yLjE4NS01LjkyNy01LjE0NS02Ljc0MkMxMy41NjIgMi41MiAxMi44NDYgMiAxMiAycy0xLjU2Mi41Mi0xLjg1NSAxLjI1OEM3LjE4NSA0LjA3NCA1IDYuNzgzIDUgMTB2My41ODZsLTEuNzA3IDEuNzA3QS45OTYuOTk2IDAgMCAwIDMgMTZ2MmExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTF2LTJhLjk5Ni45OTYgMCAwIDAtLjI5My0uNzA3ek0xOSAxN0g1di0uNTg2bDEuNzA3LTEuNzA3QS45OTYuOTk2IDAgMCAwIDcgMTR2LTRjMC0yLjc1NyAyLjI0My01IDUtNXM1IDIuMjQzIDUgNXY0YzAgLjI2Ni4xMDUuNTIuMjkzLjcwN0wxOSAxNi40MTRWMTd6bS03IDVhMi45OCAyLjk4IDAgMCAwIDIuODE4LTJIOS4xODJBMi45OCAyLjk4IDAgMCAwIDEyIDIyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMDM3IDEwaDcuOTI2djJIOC4wMzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmVsbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJhMi45OCAyLjk4IDAgMCAwIDIuODE4LTJIOS4xODJBMi45OCAyLjk4IDAgMCAwIDEyIDIyem05LTR2LTJhLjk5Ni45OTYgMCAwIDAtLjI5My0uNzA3TDE5IDEzLjU4NlYxMGMwLTMuMjE3LTIuMTg1LTUuOTI3LTUuMTQ1LTYuNzQyQzEzLjU2MiAyLjUyIDEyLjg0NiAyIDEyIDJzLTEuNTYyLjUyLTEuODU1IDEuMjU4Yy0xLjMyMy4zNjQtMi40NjMgMS4xMjgtMy4zNDYgMi4xMjdMMy43MDcgMi4yOTMgMi4yOTMgMy43MDdsMTggMTggMS40MTQtMS40MTQtMS4zNjItMS4zNjJBLjk5My45OTMgMCAwIDAgMjEgMTh6TTEyIDVjMi43NTcgMCA1IDIuMjQzIDUgNXY0YzAgLjI2Ni4xMDUuNTIuMjkzLjcwN0wxOSAxNi40MTRWMTdoLS41ODZMOC4yMDcgNi43OTNDOS4xMiA1LjcwNSAxMC40NzEgNSAxMiA1em0tNS4yOTMgOS43MDdBLjk5Ni45OTYgMCAwIDAgNyAxNHYtMi44NzlMNS4wNjggOS4xODlDNS4wMzcgOS40NTcgNSA5LjcyNCA1IDEwdjMuNTg2bC0xLjcwNyAxLjcwN0EuOTk2Ljk5NiAwIDAgMCAzIDE2djJhMSAxIDAgMCAwIDEgMWgxMC44NzlsLTItMkg1di0uNTg2bDEuNzA3LTEuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJlbGxQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3LjAzN2gtMlYxMEg4LjAzN3YySDExdjIuOTYzaDJWMTJoMi45NjN2LTJIMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTMuNTg2VjEwYzAtMy4yMTctMi4xODUtNS45MjctNS4xNDUtNi43NDJDMTMuNTYyIDIuNTIgMTIuODQ2IDIgMTIgMnMtMS41NjIuNTItMS44NTUgMS4yNThDNy4xODUgNC4wNzQgNSA2Ljc4MyA1IDEwdjMuNTg2bC0xLjcwNyAxLjcwN0EuOTk2Ljk5NiAwIDAgMCAzIDE2djJhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi0yYS45OTYuOTk2IDAgMCAwLS4yOTMtLjcwN0wxOSAxMy41ODZ6TTE5IDE3SDV2LS41ODZsMS43MDctMS43MDdBLjk5Ni45OTYgMCAwIDAgNyAxNHYtNGMwLTIuNzU3IDIuMjQzLTUgNS01czUgMi4yNDMgNSA1djRjMCAuMjY2LjEwNS41Mi4yOTMuNzA3TDE5IDE2LjQxNFYxN3ptLTcgNWEyLjk4IDIuOTggMCAwIDAgMi44MTgtMkg5LjE4MkEyLjk4IDIuOTggMCAwIDAgMTIgMjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTMuNTg2VjEwYzAtMy4yMTctMi4xODUtNS45MjctNS4xNDUtNi43NDJDMTMuNTYyIDIuNTIgMTIuODQ2IDIgMTIgMnMtMS41NjIuNTItMS44NTUgMS4yNThDNy4xODUgNC4wNzQgNSA2Ljc4MyA1IDEwdjMuNTg2bC0xLjcwNyAxLjcwN0EuOTk2Ljk5NiAwIDAgMCAzIDE2djJhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi0yYS45OTYuOTk2IDAgMCAwLS4yOTMtLjcwN0wxOSAxMy41ODZ6TTE5IDE3SDV2LS41ODZsMS43MDctMS43MDdBLjk5Ni45OTYgMCAwIDAgNyAxNHYtNGMwLTIuNzU3IDIuMjQzLTUgNS01czUgMi4yNDMgNSA1djRjMCAuMjY2LjEwNS41Mi4yOTMuNzA3TDE5IDE2LjQxNFYxN3ptLTcgNWEyLjk4IDIuOTggMCAwIDAgMi44MTgtMkg5LjE4MkEyLjk4IDIuOTggMCAwIDAgMTIgMjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmlibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMjJoMTV2LTJINi4wMTJDNS41NSAxOS45ODggNSAxOS44MDUgNSAxOXMuNTUtLjk4OCAxLjAxMi0xSDIxVjRjMC0xLjEwMy0uODk3LTItMi0ySDZjLTEuMjA2IDAtMyAuNzk5LTMgM3YxNGMwIDIuMjAxIDEuNzk0IDMgMyAzek01IDhWNWMwLS44MDUuNTUtLjk4OCAxLTFoMTN2MTJINVY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0aDJ2LTRoMlY4aC0yVjZoLTJ2Mkg5djJoMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCaXRjb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEzdjRINnYyaDN2Mmgydi0yaDJ2Mmgydi0yLjA1MWMxLjk2OC0uMjQ5IDMuNS0xLjkxNSAzLjUtMy45NDkgMC0xLjMyLS42NS0yLjQ4NC0xLjY0LTMuMjEzQTMuOTgyIDMuOTgyIDAgMCAwIDE4IDljMC0xLjg1OC0xLjI3OS0zLjQxMS0zLTMuODU4VjNoLTJ2MmgtMlYzSDl2Mkg2djJoMnY2em02LjUgNEgxMHYtNGg0LjVjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyek0xMCA3aDRjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC00Vjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmxhbmtldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg3QzQuMjQzIDIgMiA0LjI0MyAyIDd2MTBjMCAyLjc1NyAyLjI0MyA1IDUgNWgxMmMxLjY1NCAwIDMtMS4zNDYgMy0zcy0xLjM0Ni0zLTMtM0g2djJoMTNhMSAxIDAgMCAxIDAgMkg3Yy0xLjY1NCAwLTMtMS4zNDYtMy0zczEuMzQ2LTMgMy0zaDEzYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxMEg3YTQuOTczIDQuOTczIDAgMCAwLTMgMS4wMDJWN2MwLTEuNjU0IDEuMzQ2LTMgMy0zaDEzdjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnpNNCAxMmMwLTEuODQ2LjYzNC0zLjU0MiAxLjY4OC00Ljg5N2wxMS4yMDkgMTEuMjA5QTcuOTQ2IDcuOTQ2IDAgMCAxIDEyIDIwYy00LjQxMSAwLTgtMy41ODktOC04em0xNC4zMTIgNC44OTdMNy4xMDMgNS42ODhBNy45NDggNy45NDggMCAwIDEgMTIgNGM0LjQxMSAwIDggMy41ODkgOCA4YTcuOTU0IDcuOTU0IDAgMCAxLTEuNjg4IDQuODk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNC40MSAxNi4xOTIgMS4xOCAxLjYxNUwxMCAxNC41ODRWMjFhMSAxIDAgMCAwIDEuNTQxLjg0MWw3LTQuNWEuOTk5Ljk5OSAwIDAgMCAuMDQ5LTEuNjQ5TDEzLjUzNyAxMmw1LjA1My0zLjY5MmExLjAwMiAxLjAwMiAwIDAgMC0uMDQ5LTEuNjVsLTctNC41YTEuMDAyIDEuMDAyIDAgMCAwLTEuMDIxLS4wMzdjLS4zMi4xNzYtLjUyLjUxMy0uNTIuODc5djYuNDE2TDUuNTkgNi4xOTIgNC40MSA3LjgwOCAxMCAxMS44OTN2LjIxNWwtNS41OSA0LjA4NHpNMTIgNC44MzJsNC4yMzIgMi43MjFMMTIgMTAuNjQ2VjQuODMyem0wIDguNTIyIDQuMjMyIDMuMDkzTDEyIDE5LjE2OHYtNS44MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9keSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMlY5aDVWN0g0djJoNXYxM2gydi03aDJ2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb2xkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4wNjEgMTEuMjJBNC40NiA0LjQ2IDAgMCAwIDE4IDguNUMxOCA2LjAxOSAxNS45ODEgNCAxMy41IDRINnYxNWg4YzIuNDgxIDAgNC41LTIuMDE5IDQuNS00LjVhNC40OCA0LjQ4IDAgMCAwLTEuNDM5LTMuMjh6TTEzLjUgN2MuODI3IDAgMS41LjY3MyAxLjUgMS41cy0uNjczIDEuNS0xLjUgMS41SDlWN2g0LjV6bS41IDlIOXYtM2g1Yy44MjcgMCAxLjUuNjczIDEuNSAxLjVTMTQuODI3IDE2IDE0IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvbHRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA2LTYgN2g0djVsNi03aC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvbWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDMuMDAxYy0xLjQgMC0yLjU4NCAxLjE2Ny0yLjcwNyAxLjI5M0wxNy4yMDcgNS4zOGwtMS4wOTEtMS4wODhhLjk5OS45OTkgMCAwIDAtMS40MTMuMDAxTDEzLjQ2IDUuNTM3QTguMzUzIDguMzUzIDAgMCAwIDEwLjUgNUM1LjgxMyA1IDIgOC44MTMgMiAxMy41UzUuODEzIDIyIDEwLjUgMjJzOC41LTMuODEzIDguNS04LjVjMC0uOTA5LS4xNDQtMS44LS40MjgtMi42NThsMS4zNDUtMS4zNDVhMS4wMDIgMS4wMDIgMCAwIDAtLjAwMS0xLjQxNWwtMS4yOTMtMS4yOSAxLjA4OC0xLjA4OGMuMjI5LS4yMjkuODQ1LS43MDMgMS4yODktLjcwM2gxdi0yaC0xem0tNC41MTEgNy45NzhjLjMzOS44MDQuNTExIDEuNjUyLjUxMSAyLjUyMSAwIDMuNTg0LTIuOTE2IDYuNS02LjUgNi41UzQgMTcuMDg0IDQgMTMuNSA2LjkxNiA3IDEwLjUgN2MuOTYgMCAxLjg5LjIxIDIuNzYyLjYyNC4zODEuMTgxLjgzNy4xMDMgMS4xMzYtLjE5NmwxLjAxNC0xLjAxNCAyLjM4NCAyLjM3Ny0xLjA5MiAxLjA5MmEuOTk4Ljk5OCAwIDAgMC0uMjE1IDEuMDk2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTMuNWE0LjQ3IDQuNDcgMCAwIDAgMS4zMTggMy4xODJsMS40MTQtMS40MTRDOC4yNiAxNC43OTUgOCAxNC4xNjggOCAxMy41cy4yNi0xLjI5NS43MzItMS43NjhBMi40ODQgMi40ODQgMCAwIDEgMTAuNSAxMVY5YTQuNDY5IDQuNDY5IDAgMCAwLTMuMTgyIDEuMzE4QTQuNDcgNC40NyAwIDAgMCA2IDEzLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDQ5IDQuOTUxYTMuOTUzIDMuOTUzIDAgMCAwLTEuMDI4LTEuODAxYy0xLjUxLTEuNTEtNC4xNDYtMS41MS01LjY1NiAwYTQuMDA5IDQuMDA5IDAgMCAwLS42MTggNC44NmwtMy43MTQgMy43MTRjLTEuNTA1LS44OS0zLjU5MS0uNjQ5LTQuODYuNjE4YTQuMDA0IDQuMDA0IDAgMCAwIDAgNS42NTcgMy45NDYgMy45NDYgMCAwIDAgMS44IDEuMDI4Yy4xNzguNjgxLjUzIDEuMzAyIDEuMDI4IDEuOEEzLjk2NiAzLjk2NiAwIDAgMCA4LjgyOSAyMmEzLjk3MyAzLjk3MyAwIDAgMCAyLjgyOC0xLjE3MiA0LjAwNyA0LjAwNyAwIDAgMCAuNjE3LTQuODU5bDMuNzE0LTMuNzE0YzEuNTA3Ljg5MSAzLjU5My42NSA0Ljg2MS0uNjE5YTQuMDAzIDQuMDAzIDAgMCAwIDAtNS42NTYgMy45NDIgMy45NDIgMCAwIDAtMS44LTEuMDI5em0uMzg3IDUuMjcxYy0uNzU2Ljc1NS0yLjA3My43NTYtMi44MjkgMGwtLjcwNy0uNzA3LTYuMzYzIDYuMzY0LjcwNy43MDdhMi4wMDMgMi4wMDMgMCAwIDEgMCAyLjgyOGMtLjc1Ny43NTctMi4wNzQuNzU1LTIuODI5IDBhMS45NjMgMS45NjMgMCAwIDEtLjU3MS0xLjMxbC0uMDQ3LS45LS45LS4wNDdhMS45NzIgMS45NzIgMCAwIDEtMS4zMS0uNTcxIDIuMDAzIDIuMDAzIDAgMCAxIDAtMi44MjljLjM3Ny0uMzc3Ljg3OS0uNTg1IDEuNDEzLS41ODVzMS4wMzYuMjA4IDEuNDE0LjU4NWwuNzA3LjcwNyA2LjM2NC02LjM2My0uNzA3LS43MDdhMi4wMDMgMi4wMDMgMCAwIDEgMC0yLjgyOWMuNzU2LS43NTQgMi4wNzItLjc1NCAyLjgyOCAwIC4zNDMuMzQzLjU0Ni44MDkuNTcyIDEuMzEybC4wNDguODk3Ljg5Ny4wNDhjLjUwMy4wMjYuOTY5LjIyOSAxLjMxMi41NzIuMzc3LjM3OC41ODUuODguNTg1IDEuNDE0cy0uMjA3IDEuMDM2LS41ODQgMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuMjkzIDguMjkzLTIuMDY5IDIuMDY5QTcuMDE3IDcuMDE3IDAgMCAwIDE1IDguNjgxVjRoMVYySDh2MmgxdjQuNjgxQTcuMDEgNy4wMSAwIDAgMCA1IDE1YzAgMy44NTkgMy4xNDEgNyA3IDdzNy0zLjE0MSA3LTdhNi45NTggNi45NTggMCAwIDAtLjY1Mi0yLjkzNGwyLjM1OS0yLjM1OS0xLjQxNC0xLjQxNHptLTguOTU5IDEuOTk4LjY2Ni0uMjM1VjRoMnY2LjA1NmwuNjY2LjIzNUE1LjAwNiA1LjAwNiAwIDAgMSAxNi44ODYgMTRINy4xMTRhNS4wMDYgNS4wMDYgMCAwIDEgMy4yMi0zLjcwOXpNMTIgMjBhNS4wMDcgNS4wMDcgMCAwIDEtNC44OTgtNGg5Ljc5N0E1LjAwOSA1LjAwOSAwIDAgMSAxMiAyMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb29rQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDh2MTFjMCAyLjIwMSAxLjc5NCAzIDMgM2gxNXYtMkg2LjAxMkM1LjU1IDE5Ljk4OCA1IDE5LjgwNiA1IDE5YzAtLjEwMS4wMDktLjE5MS4wMjQtLjI3My4xMTItLjU3Ni41ODQtLjcxNy45ODgtLjcyN0gyMVY0YzAtMS4xMDMtLjg5Ny0yLTItMkg2Yy0xLjIwNiAwLTMgLjc5OS0zIDN2M3ptMy00aDEzdjEySDVWNWMwLS44MDYuNTUtLjk4OCAxLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRoMnYtM2gzVjloLTNWNmgtMnYzSDh2MmgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvb2tBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJINmMtMS4yMDYgMC0zIC43OTktMyAzdjE0YzAgMi4yMDEgMS43OTQgMyAzIDNoMTV2LTJINi4wMTJDNS41NSAxOS45ODggNSAxOS44MDYgNSAxOXMuNTUtLjk4OCAxLjAxMi0xSDIxVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0SDVWNWMwLS44MDYuNTUtLjk4OCAxLTFoMTN2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyLjAxSDZjLTEuMjA2IDAtMyAuNzk5LTMgM3YxNGMwIDIuMjAxIDEuNzk0IDMgMyAzaDE1di0ySDYuMDEyQzUuNTUgMTkuOTk4IDUgMTkuODE1IDUgMTkuMDFjMC0uMTAxLjAwOS0uMTkxLjAyNC0uMjczLjExMi0uNTc1LjU4My0uNzE3Ljk4Ny0uNzI3SDIwYy4wMTggMCAuMDMxLS4wMDkuMDQ5LS4wMUgyMVY0LjAxYzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNEg1di0xMWMwLS44MDYuNTUtLjk4OCAxLTFoN3Y3bDItMSAyIDF2LTdoMnYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb29rQ29udGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek00IDE5VjVoN3YxNEg0em05IDBWNWg3bC4wMDEgMTRIMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgN2gzdjJoLTN6bTAgNGgzdjJoLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDh2MTFjMCAyLjIwMSAxLjc5NCAzIDMgM2gxNXYtMkg2LjAxMkM1LjU1IDE5Ljk4OCA1IDE5LjgwNiA1IDE5cy41NS0uOTg4IDEuMDEyLTFIMjFWNGMwLTEuMTAzLS44OTctMi0yLTJINmMtMS4yMDYgMC0zIC43OTktMyAzdjN6bTMtNGgxM3YxMkg1VjVjMC0uODA2LjU1LS45ODggMS0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjk5NyAxNCAzLjM1LTMuMjg5YTIuMTI5IDIuMTI5IDAgMCAwIDAtMy4wNjkgMi4yMjUgMi4yMjUgMCAwIDAtMy4xMjYgMGwtLjIyNC4yMTgtLjIyNC0uMjE5YTIuMjI0IDIuMjI0IDAgMCAwLTMuMTI1IDAgMi4xMjkgMi4xMjkgMCAwIDAgMCAzLjA2OUwxMS45OTcgMTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNoLTdhMi45OCAyLjk4IDAgMCAwLTIgLjc4QTIuOTggMi45OCAwIDAgMCAxMCAzSDNhMSAxIDAgMCAwLTEgMXYxNWExIDEgMCAwIDAgMSAxaDUuNzU4Yy41MjYgMCAxLjA0Mi4yMTQgMS40MTQuNTg2bDEuMTIxIDEuMTIxYy4wMDkuMDA5LjAyMS4wMTIuMDMuMDIxLjA4Ni4wNzkuMTgyLjE0OS4yOTQuMTk2aC4wMDJhLjk5Ni45OTYgMCAwIDAgLjc2MiAwaC4wMDJjLjExMi0uMDQ3LjIwOC0uMTE3LjI5NC0uMTk2LjAwOS0uMDA5LjAyMS0uMDEyLjAzLS4wMjFsMS4xMjEtMS4xMjFBMi4wMTUgMi4wMTUgMCAwIDEgMTUuMjQyIDIwSDIxYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xek04Ljc1OCAxOEg0VjVoNmMuNTUyIDAgMSAuNDQ5IDEgMXYxMi42ODlBNC4wMzIgNC4wMzIgMCAwIDAgOC43NTggMTh6TTIwIDE4aC00Ljc1OGMtLjc5OSAwLTEuNTg0LjI0Ni0yLjI0Mi42ODlWNmMwLS41NTEuNDQ4LTEgMS0xaDZ2MTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va1JlYWRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOGMtLjIwMiAwLTQuODUuMDI5LTkgMi4wMDhDNy44NSA4LjAyOSAzLjIwMiA4IDMgOGExIDEgMCAwIDAtMSAxdjkuODgzYTEgMSAwIDAgMCAuMzA1LjcxOWMuMTk1LjE4OC40OC4zMDUuNzI5LjI4bC4xMjctLjAwMWMuNjgzIDAgNC4yOTYuMDk4IDguNDE2IDIuMDI1LjAxNi4wMDguMDM0LjAwNS4wNS4wMTEuMTE5LjA0OS4yNDQuMDgzLjM3My4wODNzLjI1NC0uMDM0LjM3NC0uMDgzYy4wMTYtLjAwNi4wMzQtLjAwMy4wNS0uMDExIDQuMTItMS45MjggNy43MzMtMi4wMjUgOC40MTYtMi4wMjVsLjEyNy4wMDFjLjIzOC4wMjUuNTMzLS4wOTIuNzI5LS4yOC4xOTQtLjE4OS4zMDQtLjQ0OS4zMDQtLjcxOVY5YTEgMSAwIDAgMC0xLTF6TTQgMTAuMDQ5YzEuNDg1LjExMSA0LjM4MS40OCA3IDEuNjkydjcuNzQyYy0zLTEuMTc1LTUuNTktMS40OTQtNy0xLjU3NnYtNy44NTh6bTE2IDcuODU4Yy0xLjQxLjA4Mi00IC40MDEtNyAxLjU3NnYtNy43NDJjMi42MTktMS4yMTIgNS41MTUtMS41ODEgNy0xLjY5MnY3Ljg1OHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNVwiLFwiclwiOlwiM1wifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMjJoMTV2LTJINi4wMTJDNS41NSAxOS45ODggNSAxOS44MDUgNSAxOXMuNTUtLjk4OCAxLjAxMi0xSDIxVjRjMC0xLjEwMy0uODk3LTItMi0ySDZjLTEuMjA2IDAtMyAuNzk5LTMgM3YxNGMwIDIuMjAxIDEuNzk0IDMgMyAzek01IDhWNWMwLS44MDUuNTUtLjk4OCAxLTFoMTN2MTJINVY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNmg5djJIOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb29rbWFya0FsdE1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDJoLTEyQzQuNTcgMiAzIDMuNTcgMyA1LjVWMjJsNy0zLjUgNyAzLjV2LTloNVY1LjVDMjIgMy41NyAyMC40MyAyIDE4LjUgMnpNMTUgMTguNzY0bC01LTIuNS01IDIuNVY1LjVDNSA0LjY3MyA1LjY3MyA0IDYuNSA0aDguODUyQTMuNDUxIDMuNDUxIDAgMCAwIDE1IDUuNXYxMy4yNjR6TTIwIDExaC0zVjUuNWMwLS44MjcuNjczLTEuNSAxLjUtMS41czEuNS42NzMgMS41IDEuNVYxMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDloNnYySDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va21hcmtBbHRQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDJoLTEyQzQuNTcgMiAzIDMuNTcgMyA1LjVWMjJsNy0zLjUgNyAzLjV2LTloNVY1LjVDMjIgMy41NyAyMC40MyAyIDE4LjUgMnpNMTUgMTguNzY0bC01LTIuNS01IDIuNVY1LjVDNSA0LjY3MyA1LjY3MyA0IDYuNSA0aDguODUyQTMuNDUxIDMuNDUxIDAgMCAwIDE1IDUuNXYxMy4yNjR6TTIwIDExaC0zVjUuNWMwLS44MjcuNjczLTEuNSAxLjUtMS41czEuNS42NzMgMS41IDEuNVYxMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3SDl2Mkg3djJoMnYyaDJ2LTJoMlY5aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvb2ttYXJrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41IDJoLTEyQzQuNTcgMiAzIDMuNTcgMyA1LjVWMjJsNy0zLjUgNyAzLjV2LTloNVY1LjVDMjIgMy41NyAyMC40MyAyIDE4LjUgMnpNMTUgMTguNzY0bC01LTIuNS01IDIuNVY1LjVDNSA0LjY3MyA1LjY3MyA0IDYuNSA0aDguODUyQTMuNDUxIDMuNDUxIDAgMCAwIDE1IDUuNXYxMy4yNjR6TTIwIDExaC0zVjUuNWMwLS44MjcuNjczLTEuNSAxLjUtMS41czEuNS42NzMgMS41IDEuNVYxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb29rbWFya0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAyMlY0YzAtMS4xMDMtLjg5Ny0yLTItMkg2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MThsOC00LjU3MkwyMCAyMnpNNiAxMFY0aDEydjE0LjU1M2wtNi0zLjQyOC02IDMuNDI4VjEwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjQwOSA5LjUxMmMuMzYxLS4zNzIuNTg1LS44ODguNTg1LTEuNDU2cy0uMjIzLTEuMDgzLS41ODUtMS40NTZhMS45NjIgMS45NjIgMCAwIDAtMS40MTItLjYwM1MxMy4wMDEgNS45OTQgMTIgNy4wMjZjLTEuMDAxLTEuMDMyLTEuOTk3LTEuMDI5LTEuOTk3LTEuMDI5LS41NTIgMC0xLjA1MS4yMy0xLjQxMi42MDMtLjM2Mi4zNzMtLjU4NS44ODctLjU4NSAxLjQ1NnMuMjIzIDEuMDg0LjU4NSAxLjQ1NkwxMiAxMy4yMDNsMy40MDktMy42OTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va21hcmtNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5aDh2Mkg4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDIyVjRjMC0xLjEwMy0uODk3LTItMi0ySDZjLTEuMTAzIDAtMiAuODk3LTIgMnYxOGw4LTQuNTcyTDIwIDIyek02IDEwVjRoMTJ2MTQuNTUzbC02LTMuNDI4LTYgMy40MjhWMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9va21hcmtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxNHYtM2gzVjloLTNWNmgtMnYzSDh2MmgzdjN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMjJWNGMwLTEuMTAzLS44OTctMi0yLTJINmMtMS4xMDMgMC0yIC44OTctMiAydjE4bDgtNC41NzJMMjAgMjJ6TTYgMTBWNGgxMnYxNC41NTNsLTYtMy40MjgtNiAzLjQyOFYxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb29rbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MThsOC00LjU3MkwyMCAyMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNi41NTMtNi0zLjQyOC02IDMuNDI4VjRoMTJ2MTQuNTUzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvb2ttYXJrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNUg2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTZsNi0zLjYwMUwxNiAyM1Y3YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNC40NjctNC0yLjM5OS00IDIuMzk5VjdoOHYxMi40Njd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMWgtOGMtMS4xMDMgMC0yIC44OTctMiAyaDhjMS4xMDMgMCAyIC44OTcgMiAydjEwLjQ0M2wyIDIuNDg5VjNjMC0xLjEwMy0uODk3LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvcmRlckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyMWgxMlYzSDN2MThoNnptMTAtNHYyaC02di02aDZ2NHpNMTUgNWg0djZoLTZWNWgyek01IDdWNWg2djZINVY3em0wIDEydi02aDZ2Nkg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvcmRlckJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA3aDJ2Mkgzem0wIDRoMnYySDN6bTAgNGgydjJIM3pNMyAzaDJ2Mkgzem04IDBoMnYyaC0yek03IDNoMnYySDd6bTggMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTAgMTJoMnYyaC0yem0wLTRoMnYyaC0yem0wLTRoMnYyaC0yem0tNCA0aDJ2MmgtMnptLTggMGgydjJIN3ptNC00aDJ2MmgtMnptMCA4aDJ2MmgtMnptMC00aDJ2MmgtMnptNiA4SDN2MmgxOHYtMmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb3JkZXJJbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTloMnYyaC0yek03IDE5aDJ2Mkg3em04IDBoMnYyaC0yek0zIDE5aDJ2Mkgzem0wLTRoMnYySDN6bTAtOGgydjJIM3ptMC00aDJ2Mkgzem0xMiAwaDJ2MmgtMnpNNyAzaDJ2Mkg3em0xMiAwaDJ2MmgtMnptMCAxMmgydjJoLTJ6bTAtOGgydjJoLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxM2g2djhoMnYtOGg4di0yaC04VjNoLTJ2OEgzdjJoMS45M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb3JkZXJMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAzaDJ2MmgtMnptNCAwaDJ2MmgtMnpNNyAzaDJ2Mkg3em0xMiAwaDJ2MmgtMnptMCA4aDJ2MmgtMnptMCA0aDJ2MmgtMnptMC04aDJ2MmgtMnptMCAxMmgydjJoLTJ6bS00IDBoMnYyaC0yem0tOCAwaDJ2Mkg3em00IDBoMnYyaC0yem0wLTRoMnYyaC0yem0wLThoMnYyaC0yem00IDRoMnYyaC0yem0tOCAwaDJ2Mkg3em00IDBoMnYyaC0yek0zIDV2MTZoMlYzSDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9yZGVyTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTloMnYyaC0yem0tOCAwaDJ2MmgtMnptNCAwaDJ2MmgtMnptLTggMGgydjJIN3ptLTQgMGgydjJIM3pNMyA3aDJ2Mkgzem0wIDhoMnYySDN6bTAtNGgydjJIM3ptMC04aDJ2Mkgzem00IDBoMnYySDd6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTAgNGgydjJoLTJ6bTAgNGgydjJoLTJ6bTAgNGgydjJoLTJ6bS04LThoMnYyaC0yem0wIDhoMnYyaC0yem0tNC00aDJ2Mkg3em04IDBoMnYyaC0yem0tNCAwaDJ2MmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb3JkZXJPdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjJoLTJ6bTAgOGgydjJoLTJ6bS00LTRoMnYySDd6bTggMGgydjJoLTJ6bS00IDBoMnYyaC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNIM3YxOGgxOFYzaC0yem0wIDR2MTJINVY1aDE0djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9yZGVyUmFkaXVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOWgydjJoLTJ6TTcgMTloMnYySDd6bTggMGgydjJoLTJ6bS00IDBoMnYyaC0yem0tOCAwaDJ2Mkgzem0wLTRoMnYySDN6bTAtOGgydjJIM3ptMCA0aDJ2Mkgzem0wLThoMnYySDN6bTQgMGgydjJIN3ptMTIgMTJoMnYyaC0yek0xNiAzaC01djJoNWMxLjY1NCAwIDMgMS4zNDYgMyAzdjVoMlY4YzAtMi43NTctMi4yNDMtNS01LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQm9yZGVyUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE5aDJ2MmgtMnptLTQgMGgydjJoLTJ6bS00IDBoMnYySDd6bS00IDBoMnYySDN6TTMgN2gydjJIM3ptMCA4aDJ2Mkgzem0wLTRoMnYySDN6bTAtOGgydjJIM3ptMTIgMGgydjJoLTJ6bS00IDBoMnYyaC0yek03IDNoMnYySDd6bTQgNGgydjJoLTJ6bTAgOGgydjJoLTJ6bS00LTRoMnYySDd6bTggMGgydjJoLTJ6bS00IDBoMnYyaC0yem04LTZ2MTZoMlYzaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvcmRlclRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTFoMnYyaC0yem0wIDRoMnYyaC0yem0wLThoMnYyaC0yem0wIDEyaDJ2MmgtMnptLTggMGgydjJoLTJ6bTQgMGgydjJoLTJ6bS04IDBoMnYySDd6bS00IDBoMnYySDN6bTAtOGgydjJIM3ptMCA0aDJ2Mkgzem0wLThoMnYySDN6bTQgNGgydjJIN3ptOCAwaDJ2MmgtMnptLTQtNGgydjJoLTJ6bTAgOGgydjJoLTJ6bTAtNGgydjJoLTJ6bTEwLThIM3YyaDE4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTI4IDExLjYwN2MtLjIwMi0uNDg4LS42MzUtLjYwNS0uOTI4LS42MzNWOGMwLTEuMTAzLS44OTctMi0yLTJoLTZWNC42MWMuMzA1LS4yNzQuNS0uNjY4LjUtMS4xMWExLjUgMS41IDAgMCAwLTMgMGMwIC40NDIuMTk1LjgzNi41IDEuMTFWNkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2Mi45OTdsLS4wODIuMDA2QTEgMSAwIDAgMCAxLjk5IDEydjJhMSAxIDAgMCAwIDEgMUgzdjVjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0ydi01YTEgMSAwIDAgMCAxLTF2LTEuOTM4YTEuMDA2IDEuMDA2IDAgMCAwLS4wNzItLjQ1NXpNNSAyMFY4aDE0bC4wMDEgMy45OTZMMTkgMTJ2MmwuMDAxLjAwNS4wMDEgNS45OTVINXpcIn19LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxMlwiLFwicnhcIjpcIjEuNVwiLFwicnlcIjpcIjJcIn19LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIxLjVcIixcInJ5XCI6XCIyXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmg4djJIOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb3dsaW5nQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMC41XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExLjVcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDEgMS43MlYxOWEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOC43MkEyIDIgMCAwIDAgMjIgN1Y1YTIgMiAwIDAgMC0yLTJ6TTQgNWgxNnYySDR6bTEgMTRWOWgxNHYxMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExaDh2Mkg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJyYWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRWMkg0djIwaDZ2LTJINlY0em00IDE2djJoNlYyaC02djJoNHYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCcmFpbGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjRcIixcImN5XCI6XCI3XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiN1wiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxN1wiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMjBcIixcImN5XCI6XCI3XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI0XCIsXCJjeVwiOlwiMTdcIixcInJcIjpcIjJcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuODY0IDguNDY1YTMuNTA1IDMuNTA1IDAgMCAwLTMuMDMtNC40NDlBMy4wMDUgMy4wMDUgMCAwIDAgMTQgMmEyLjk4IDIuOTggMCAwIDAtMiAuNzhBMi45OCAyLjk4IDAgMCAwIDEwIDJjLTEuMzAxIDAtMi40MS44MzEtMi44MjUgMi4wMTVhMy41MDUgMy41MDUgMCAwIDAtMy4wMzkgNC40NUE0LjAyOCA0LjAyOCAwIDAgMCAyIDEyYzAgMS4wNzUuNDI4IDIuMDg2IDEuMTcyIDIuODMyQTQuMDY3IDQuMDY3IDAgMCAwIDMgMTZjMCAxLjk1NyAxLjQxMiAzLjU5IDMuMzA2IDMuOTM0QTMuNTE1IDMuNTE1IDAgMCAwIDkuNSAyMmMuOTc5IDAgMS44NjQtLjQwNyAyLjUtMS4wNTlBMy40ODQgMy40ODQgMCAwIDAgMTQuNSAyMmEzLjUxIDMuNTEgMCAwIDAgMy4xOS0yLjA2IDQuMDA2IDQuMDA2IDAgMCAwIDMuMTM4LTUuMTA4QTQuMDAzIDQuMDAzIDAgMCAwIDIyIDEyYTQuMDI4IDQuMDI4IDAgMCAwLTIuMTM2LTMuNTM1ek05LjUgMjBjLS43MTEgMC0xLjMzLS41MDQtMS40Ny0xLjE5OEw3LjgxOCAxOEg3Yy0xLjEwMyAwLTItLjg5Ny0yLTIgMC0uMzUyLjA4NS0uNjgyLjI1My0uOTgxbC40NTYtLjgxNi0uNzg0LS41MUEyLjAxOSAyLjAxOSAwIDAgMSA0IDEyYzAtLjk3Ny43MjMtMS44MjQgMS42ODItMS45NzJsMS42OTMtLjI2LTEuMDU5LTEuMzQ2YTEuNTAyIDEuNTAyIDAgMCAxIDEuNDk4LTIuMzlMOSA2LjIwN1Y1YTEgMSAwIDAgMSAyIDB2MTMuNWMwIC44MjctLjY3MyAxLjUtMS41IDEuNXptOS41NzUtNi4zMDgtLjc4NC41MS40NTYuODE2Yy4xNjguMy4yNTMuNjMuMjUzLjk4MiAwIDEuMTAzLS44OTcgMi0yLjA1IDJoLS44MThsLS4xNjIuODAyQTEuNTAyIDEuNTAyIDAgMCAxIDE0LjUgMjBjLS44MjcgMC0xLjUtLjY3My0xLjUtMS41VjVjMC0uNTUyLjQ0OC0xIDEtMXMxIC40NDggMSAxLjA1djEuMjA3bDEuMTg2LS4yMjVhMS41MDIgMS41MDIgMCAwIDEgMS40OTggMi4zOWwtMS4wNTkgMS4zNDcgMS42OTMuMjZBMi4wMDIgMi4wMDIgMCAwIDEgMjAgMTJjMCAuNjgzLS4zNDYgMS4zMTUtLjkyNSAxLjY5MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCcmllZmNhc2VBbHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0zVjRjMC0xLjEwMy0uODk3LTItMi0ySDljLTEuMTAzIDAtMiAuODk3LTIgMnYySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMWMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWOGMwLTEuMTAzLS44OTctMi0yLTJ6bS01LTJ2Mkg5VjRoNnpNNCA4aDE2djRoLTN2LTJoLTJ2Mkg5di0ySDd2Mkg0Vjh6bTAgMTF2LTVoM3YyaDJ2LTJoNnYyaDJ2LTJoMy4wMDF2NUg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJyaWVmY2FzZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtM1Y0YzAtMS4xMDMtLjg5Ny0yLTItMkg5Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2Mkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTFjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjhjMC0xLjEwMy0uODk3LTItMi0yem0tNCAydjExSDhWOGg4em0tMS00djJIOVY0aDZ6TTQgOGgydjExSDRWOHptMTQgMTFWOGgybC4wMDEgMTFIMTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQnJpZWZjYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0zVjRjMC0xLjEwMy0uODk3LTItMi0ySDljLTEuMTAzIDAtMiAuODk3LTIgMnYySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMWMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWOGMwLTEuMTAzLS44OTctMi0yLTJ6bS01LTJ2Mkg5VjRoNnpNOCA4aDEydjNINFY4aDR6TTQgMTl2LTZoNnYyaDR2LTJoNmwuMDAxIDZINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCcmlnaHRuZXNzSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNzA3IDExLjI5My0yLTJMMTkgOC41ODZWNmExIDEgMCAwIDAtMS0xaC0yLjU4NmwtLjcwNy0uNzA3LTItMmEuOTk5Ljk5OSAwIDAgMC0xLjQxNCAwbC0yIDJMOC41ODYgNUg2YTEgMSAwIDAgMC0xIDF2Mi41ODZsLS43MDcuNzA3LTIgMmEuOTk5Ljk5OSAwIDAgMCAwIDEuNDE0bDIgMiAuNzA3LjcwN1YxOGExIDEgMCAwIDAgMSAxaDIuNTg2bC43MDcuNzA3IDIgMmEuOTk3Ljk5NyAwIDAgMCAxLjQxNCAwbDItMiAuNzA3LS43MDdIMThhMSAxIDAgMCAwIDEtMXYtMi41ODZsLjcwNy0uNzA3IDItMmEuOTk5Ljk5OSAwIDAgMCAwLTEuNDE0em0tNC40MTQgMy0uMjkzLjI5M1YxN2gtMi40MTRsLS4yOTMuMjkzLTEgMUwxMiAxOS41ODZsLTEuMjkzLTEuMjkzLTEtMUw5LjQxNCAxN0g3di0yLjQxNGwtLjI5My0uMjkzLTEtMUw0LjQxNCAxMmwxLjI5My0xLjI5MyAxLTFMNyA5LjQxNFY3aDIuNDE0bC4yOTMtLjI5MyAxLTFMMTIgNC40MTRsMS4yOTMgMS4yOTMgMSAxIC4yOTMuMjkzSDE3djIuNDE0bC4yOTMuMjkzIDEgMUwxOS41ODYgMTJsLTEuMjkzIDEuMjkzLTEgMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4djhjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQnJpZ2h0bmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzA3IDkuMjkzIDE5IDguNTg2VjZhMSAxIDAgMCAwLTEtMWgtMi41ODZsLS43MDctLjcwNy0yLTJhLjk5OS45OTkgMCAwIDAtMS40MTQgMGwtMiAyTDguNTg2IDVINmExIDEgMCAwIDAtMSAxdjIuNTg2bC0uNzA3LjcwNy0yIDJhLjk5OS45OTkgMCAwIDAgMCAxLjQxNGwyIDIgLjcwNy43MDdWMThhMSAxIDAgMCAwIDEgMWgyLjU4NmwuNzA3LjcwNyAyIDJhLjk5Ny45OTcgMCAwIDAgMS40MTQgMGwyLTIgLjcwNy0uNzA3SDE4YTEgMSAwIDAgMCAxLTF2LTIuNTg2bC43MDctLjcwNyAyLTJhLjk5OS45OTkgMCAwIDAgMC0xLjQxNGwtMi0yem0tMi40MTQgNS0uMjkzLjI5M1YxN2gtMi40MTRsLS4yOTMuMjkzLTEgMUwxMiAxOS41ODZsLTEuMjkzLTEuMjkzLTEtMUw5LjQxNCAxN0g3di0yLjQxNGwtLjI5My0uMjkzLTEtMUw0LjQxNCAxMmwxLjI5My0xLjI5MyAxLTFMNyA5LjQxNFY3aDIuNDE0bC4yOTMtLjI5MyAxLTFMMTIgNC40MTRsMS4yOTMgMS4yOTMgMSAxIC4yOTMuMjkzSDE3djIuNDE0bC4yOTMuMjkzIDEgMUwxOS41ODYgMTJsLTEuMjkzIDEuMjkzLTEgMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4Yy0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0IDQtMS43OTQgNC00LTEuNzk0LTQtNC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJyb2FkY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuNzA3IDQuMjkzLTEuNDE0IDEuNDE0YzIuNzMzIDIuNzMzIDIuNzMzIDcuMzUzIDAgMTAuMDg2bDEuNDE0IDEuNDE0YzMuNS0zLjUgMy41LTkuNDE0IDAtMTIuOTE0em0tNC40MTQgNC40MTRjLjU2Ni41NjYuODc5IDEuMjkyLjg3OSAyLjA0M3MtLjMxMyAxLjQ3Ny0uODc5IDIuMDQzbDEuNDE0IDEuNDE0Yy45NDQtLjk0MyAxLjQ2NS0yLjE3MiAxLjQ2NS0zLjQ1N3MtLjUyMS0yLjUxNC0xLjQ2NS0zLjQ1N2wtMS40MTQgMS40MTR6bS05LjA4Ni0zTDQuNzkzIDQuMjkzYy0zLjUgMy41LTMuNSA5LjQxNCAwIDEyLjkxNGwxLjQxNC0xLjQxNGMtMi43MzMtMi43MzMtMi43MzMtNy4zNTMgMC0xMC4wODZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yOTMgNy4yOTNjLS45NDQuOTQzLTEuNDY1IDIuMTcyLTEuNDY1IDMuNDU3cy41MjEgMi41MTQgMS40NjUgMy40NTdsMS40MTQtMS40MTRjLS41NjYtLjU2Ni0uODc5LTEuMjkyLS44NzktMi4wNDNzLjMxMy0xLjQ3Ny44NzktMi4wNDNMNy4yOTMgNy4yOTN6TTE0IDEwLjVhMiAyIDAgMCAwLTQgMCAxLjk5MyAxLjk5MyAwIDAgMCAuODk1IDEuNjY2TDEwLjAwMiAyMmgzLjk5NmwtLjg5My05LjgzNWMuNTQtLjM1OC44OTUtLjk3Ljg5NS0xLjY2NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCcnVzaEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOC4wMDFoLTRWNC45OTlhMi45MiAyLjkyIDAgMCAwLS44NzQtMi4xMDggMi45NDMgMi45NDMgMCAwIDAtMi4zOS0uODc5QzEwLjIwMiAyLjE0NCA5IDMuNTA4IDkgNS4xMTdWOEg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTBjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0ydi05Ljk5OWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTBoNlY1LjExN2MwLS41Ny40MDctMS4wNyAxLjAwMi0xLjExNy4yNjYgMCAuNTEyLjEwMy43MTIuMzA3YS45NTYuOTU2IDAgMCAxIC4yODYuNjkyVjEwaC45OTVsLjAwNS4wMDFoNVYxMkg1di0yem0wIDEwdi02aDE0bC4wMDIgNkg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJydXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy43MDcgMi4yOTNhLjk5OS45OTkgMCAwIDAtMS40MTQgMGwtNS44NCA1Ljg0Yy0uMDE1LS4wMDEtLjAyOS0uMDA5LS4wNDQtLjAwOWEuOTk3Ljk5NyAwIDAgMC0uNzA3LjI5M0w0LjI4OCA5LjgzMWEyLjk4NSAyLjk4NSAwIDAgMC0uODc4IDIuMTIyYzAgLjgwMi4zMTMgMS41NTYuODc5IDIuMTIxbC43MDcuNzA3LTIuMTIyIDIuMTIyQTIuOTIgMi45MiAwIDAgMCAyIDE5LjAxMmEyLjk2OCAyLjk2OCAwIDAgMCAxLjA2MyAyLjMwOGMuNTE5LjQzOSAxLjE4OC42OCAxLjg4NS42OC44MzQgMCAxLjY1NC0uMzQxIDIuMjUtLjkzN2wyLjA0LTIuMDM5LjcwNy43MDZjMS4xMzQgMS4xMzMgMy4xMDkgMS4xMzQgNC4yNDIuMDAxbDEuNDE1LTEuNDE0YS45OTcuOTk3IDAgMCAwIC4yOTMtLjcwN2MwLS4wMjYtLjAxMy0uMDUtLjAxNS0uMDc2bDUuODI3LTUuODI3YS45OTkuOTk5IDAgMCAwIDAtMS40MTRsLTgtOHptLS45MzUgMTYuMDI0YTEuMDIzIDEuMDIzIDAgMCAxLTEuNDE0LS4wMDFsLTEuNDE0LTEuNDEzYS45OTkuOTk5IDAgMCAwLTEuNDE0IDBsLTIuNzQ2IDIuNzQ1YTEuMTkgMS4xOSAwIDAgMS0uODM2LjM1Mi45MS45MSAwIDAgMS0uNTk0LS4yMDhBLjk3OC45NzggMCAwIDEgNCAxOS4wMWEuOTU5Ljk1OSAwIDAgMSAuMjg3LS42OTJsMi44MjktMi44MjlhLjk5OS45OTkgMCAwIDAgMC0xLjQxNEw1LjcwMSAxMi42NmEuOTkuOTkgMCAwIDEtLjI5Mi0uNzA2YzAtLjI2OC4xMDQtLjUxOS4yOTMtLjcwOGwuNzA3LS43MDcgNy4wNzEgNy4wNzItLjcwOC43MDZ6bTEuODg5LTIuMzkyTDguMDc1IDkuMzM5IDEzIDQuNDE0IDE5LjU4NiAxMWwtNC45MjUgNC45MjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQnVnQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDloNnYySDl6bTAgNGg2djJIOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA1LjQxNCAxLjcwNy0xLjcwNy0xLjQxNC0xLjQxNC0xLjU2MyAxLjU2MkMxNS40ODMgMi43MDggMTMuODI0IDIgMTIgMnMtMy40ODMuNzA4LTQuNzMgMS44NTVMNS43MDcgMi4yOTMgNC4yOTMgMy43MDcgNiA1LjQxNEE2LjkzNyA2LjkzNyAwIDAgMCA1IDlIM3YyaDJ2MkgzdjJoMmMwIDMuODYgMy4xNDEgNyA3IDdzNy0zLjE0IDctN2gydi0yaC0ydi0yaDJWOWgtMmE2LjkzNyA2LjkzNyAwIDAgMC0xLTMuNTg2ek0xNyAxM3YyYzAgMi43NTctMi4yNDMgNS01IDVzLTUtMi4yNDMtNS01VjljMC0yLjc1NyAyLjI0My01IDUtNXM1IDIuMjQzIDUgNXY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJ1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuODk1IDYuNTE5IDIuODEzLTIuODEyLTEuNDE0LTEuNDE0LTIuODQ2IDIuODQ2YTYuNTc1IDYuNTc1IDAgMCAwLS43MjMtLjQ1NCA1Ljc3OCA1Ljc3OCAwIDAgMC01LjQ1IDBjLS4yNS4xMzItLjQ4OC4yODctLjcyMi40NTNMNS43MDcgMi4yOTMgNC4yOTMgMy43MDdsMi44MTMgMi44MTJBOC40NzMgOC40NzMgMCAwIDAgNS43NTYgOUgydjJoMi4zMDdjLS4wNjUuNDk1LS4xMDcuOTk3LS4xMDcgMS41IDAgLjUwNy4wNDIgMS4wMTMuMTA3IDEuNTExSDJ2MmgyLjc1M2MuMDEzLjAzOS4wMjEuMDguMDM0LjExOC4xODguNTU1LjQyMSAxLjA5My42OTUgMS42LjA0NC4wODEuMDk1LjE1NS4xNDEuMjM0bC0yLjMzIDIuMzMgMS40MTQgMS40MTQgMi4xMS0yLjExMWE3LjQ3NyA3LjQ3NyAwIDAgMCAyLjA2OCAxLjYxOWMuNDc5LjI1My45ODIuNDQ5IDEuNDk2LjU4YTYuNTE1IDYuNTE1IDAgMCAwIDMuMjM3LjAwMSA2LjgxMiA2LjgxMiAwIDAgMCAxLjQ5Ni0uNThjLjQ2NS0uMjQ2LjkxNC0uNTUgMS4zMzMtLjkwNC4yNTgtLjIxOC41LS40NjIuNzM0LS43MTZsMi4xMTEgMi4xMTEgMS40MTQtMS40MTQtMi4zMy0yLjMzYy4wNDctLjA4LjA5OC0uMTU1LjE0Mi0uMjM2LjI3My0uNTA1LjUwNy0xLjA0My42OTQtMS41OTkuMDEzLS4wMzkuMDIxLS4wNzkuMDM0LS4xMThIMjJ2LTJoLTIuMzA4Yy4wNjUtLjQ5OS4xMDctMS4wMDQuMTA3LTEuNTExIDAtLjUwMy0uMDQyLTEuMDA1LS4xMDYtMS41SDIyVjloLTMuNzU2YTguNDk0IDguNDk0IDAgMCAwLTEuMzQ5LTIuNDgxek04LjY4MSA3Ljc0OGMuNDQ1LS41NTguOTYtLjk5MyAxLjUyOC0xLjI5NGEzLjc3MyAzLjc3MyAwIDAgMSAzLjU4MSAwIDQuODk0IDQuODk0IDAgMCAxIDEuNTMgMS4yOTVjLjI5OS4zNzMuNTQuOC43NTMgMS4yNTFINy45MjdjLjIxNC0uNDUxLjQ1NC0uODc5Ljc1NC0xLjI1MnpNMTcuOCAxMi41YzAgLjUyMi0uMDQyIDEuMDQ0LS4xMjYgMS41NTMtLjA3OS40OS0uMTk5Ljk3My0uMzU1IDEuNDM2YTguMjggOC4yOCAwIDAgMS0uNTU5IDEuMjg4IDcuNTkgNy41OSAwIDAgMS0uNzMzIDEuMTFjLS4yNjcuMzMzLS41Ni42MzYtLjg2OS44OTgtLjMxLjI2MS0uNjM5LjQ4NC0uOTc5LjY2NHMtLjY5NS4zMTctMS4wNTcuNDFjLS4wNC4wMS0uMDgyLjAxNC0uMTIyLjAyM1YxNGgtMnY1Ljg4MWMtLjA0LS4wMDktLjA4Mi0uMDEzLS4xMjItLjAyMy0uMzYxLS4wOTMtLjcxNy0uMjMtMS4wNTctLjQxcy0uNjY5LS40MDMtLjk3OC0uNjY0YTYuNDYyIDYuNDYyIDAgMCAxLS44NzEtLjg5OSA3LjQwMiA3LjQwMiAwIDAgMS0uNzMxLTEuMTA4IDguMzM3IDguMzM3IDAgMCAxLS41Ni0xLjI4OSA5LjA3NSA5LjA3NSAwIDAgMS0uMzU2LTEuNDM4QTkuNjEgOS42MSAwIDAgMSA2LjMxOSAxMUgxNy42OGMuMDc5LjQ5MS4xMi45OTUuMTIgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJ1aWxkaW5nSG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJIOWMtMS4xMDMgMC0yIC44OTctMiAydjUuNTg2bC00LjcwNyA0LjcwN0ExIDEgMCAwIDAgMyAxNnY1YTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMVY0YzAtMS4xMDMtLjg5Ny0yLTItMnptLTggMThINXYtNS41ODZsMy0zIDMgM1YyMHptOCAwaC02di00YS45OTkuOTk5IDAgMCAwIC43MDctMS43MDdMOSA5LjU4NlY0aDEwdjE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZoMnYyaC0yem00IDBoMnYyaC0yem0wIDQuMDMxaDJWMTJoLTJ6TTE1IDE0aDJ2MmgtMnptLTggMWgydjJIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCdWlsZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTdhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE4SDZWNGgxMnYxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDZoM3YySDh6bTUgMGgzdjJoLTN6bS01IDRoM3YySDh6bTUgLjAzMWgzVjEyaC0zek04IDE0aDN2Mkg4em01IDBoM3YyaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUJ1aWxkaW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg5Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2Nkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OWExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTFWNGMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTJoNnY4SDV2LTh6bTE0IDhoLTZ2LThjMC0xLjEwMy0uODk3LTItMi0ySDlWNGgxMHYxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2aDJ2MmgtMnptNCAwaDJ2MmgtMnptMCA0LjAzMWgyVjEyaC0yek0xNSAxNGgydjJoLTJ6bS04IC4wMDFoMnYySDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQnVsYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyMGg2djJIOXptNy45MDYtNi4yODhDMTcuOTM2IDEyLjUwNiAxOSAxMS4yNTkgMTkgOWMwLTMuODU5LTMuMTQxLTctNy03UzUgNS4xNDEgNSA5YzAgMi4yODUgMS4wNjcgMy41MjggMi4xMDEgNC43My4zNTguNDE4LjcyOS44NTEgMS4wODQgMS4zNDkuMTQ0LjIwNi4zOC45OTYuNTkxIDEuOTIxSDh2Mmg4di0yaC0uNzc0Yy4yMTMtLjkyNy40NS0xLjcxOS41OTMtMS45MjUuMzUyLS41MDMuNzI2LS45NCAxLjA4Ny0xLjM2M3ptLTIuNzI0LjIxM2MtLjQzNC42MTctLjc5NiAyLjA3NS0xLjAwNiAzLjA3NWgtMi4zNTFjLS4yMDktMS4wMDItLjU3Mi0yLjQ2My0xLjAxMS0zLjA4YTIwLjUwMiAyMC41MDIgMCAwIDAtMS4xOTYtMS40OTJDNy42NDQgMTEuMjk0IDcgMTAuNTQ0IDcgOWMwLTIuNzU3IDIuMjQzLTUgNS01czUgMi4yNDMgNSA1YzAgMS41MjEtLjY0MyAyLjI3NC0xLjYxNSAzLjQxMy0uMzczLjQzOC0uNzk2LjkzMy0xLjIwMyAxLjUxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCdWxsc2V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMtMy4zMDkgMC02IDIuNjkxLTYgNnMyLjY5MSA2IDYgNiA2LTIuNjkxIDYtNi0yLjY5MS02LTYtNnptMCAxMGMtMi4yMDYgMC00LTEuNzk0LTQtNHMxLjc5NC00IDQtNCA0IDEuNzk0IDQgNC0xLjc5NCA0LTQgNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNTc5IDIgMiA2LjU3OSAyIDEyczQuNTc5IDEwIDEwIDEwIDEwLTQuNTc5IDEwLTEwUzE3LjQyMSAyIDEyIDJ6bTAgMThjLTQuMzM3IDAtOC0zLjY2My04LThzMy42NjMtOCA4LTggOCAzLjY2MyA4IDgtMy42NjMgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTBjLTEuMDgxIDAtMiAuOTE5LTIgMnMuOTE5IDIgMiAyIDItLjkxOSAyLTItLjkxOS0yLTItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCdW95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTcuNDExIDdIMTZ2LjAzMUE1LjAzNyA1LjAzNyAwIDAgMCAxNC45NjkgOEgxNVY0LjU4OUE4LjAzOSA4LjAzOSAwIDAgMSAxOS40MTEgOXpNMTIgMTVjLTEuNjU0IDAtMy0xLjM0Ni0zLTNzMS4zNDYtMyAzLTMgMyAxLjM0NiAzIDMtMS4zNDYgMy0zIDN6bTEtMTAuOTMxdjMuMDMyYTQuOTg4IDQuOTg4IDAgMCAwLTIgMFY0LjA2OWMuMzI4LS4wNDEuNjYtLjA2OSAxLS4wNjlzLjY3Mi4wMjggMSAuMDY5em0tNCAuNTJWOGguMDMxQTUuMDM3IDUuMDM3IDAgMCAwIDggOS4wMzFWOUg0LjU4OUM1LjQwMiA3IDYuOTk5IDUuNDAyIDkgNC41ODl6TTQuMDY5IDExaDMuMDMyYTQuOTk1IDQuOTk1IDAgMCAwIC4wMDEgMkg0LjA2OUM0LjAyOCAxMi42NzIgNCAxMi4zMzkgNCAxMnMuMDI4LS42NzIuMDY5LTF6bS41MiA0SDh2LS4wMzFjLjI4NC4zODEuNjIxLjcxOCAxIDEuMDA1djMuNDM3QTguMDM5IDguMDM5IDAgMCAxIDQuNTg5IDE1ek0xMSAxOS45MzF2LTMuMDMyYTQuOTg4IDQuOTg4IDAgMCAwIDIgMHYzLjAzMmMtLjMyOC4wNDEtLjY2LjA2OS0xIC4wNjlzLS42NzItLjAyOC0xLS4wNjl6bTQtLjUydi0zLjQzN2E1LjAzOCA1LjAzOCAwIDAgMCAxLTEuMDA1VjE1aDMuNDExQTguMDM5IDguMDM5IDAgMCAxIDE1IDE5LjQxMXpNMTkuOTMxIDEzaC0zLjAzMmE0Ljk5NSA0Ljk5NSAwIDAgMC0uMDAxLTJoMy4wMzJjLjA0Mi4zMjguMDcuNjYxLjA3IDFzLS4wMjguNjcyLS4wNjkgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlCdXNTY2hvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjI1OSAxMS45NDhBLjk4Ni45ODYgMCAwIDAgMjIgMTFWOGEuOTk5Ljk5OSAwIDAgMC0uOTk2LS45OTlWNkgyMWMwLTIuMjA2LTEuNzk0LTQtNC00SDdDNC43OTQgMiAzIDMuNzk0IDMgNnYxYTEgMSAwIDAgMC0xIDF2M2MwIC40NjEuMzE3LjgzMi43NDIuOTQ4YTMuOTUzIDMuOTUzIDAgMCAwLS43NDEgMi4yOThsLjAwNCAzLjc1N2MuMDAxLjczMy40MDQgMS4zNjkuOTk1IDEuNzE2VjIxYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xaDEydjFhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTEuMjc0YTIuMDIgMi4wMiAwIDAgMCAuNDIxLS4zMTNjLjM3Ny0uMzc4LjU4NS0uODgxLjU4NC0xLjQxNWwtLjAwNC0zLjc1OWEzLjk2NiAzLjk2NiAwIDAgMC0uNzQyLTIuMjkxek01IDE4aC0uOTk1bC0uMDA0LTMuNzU3Yy0uMDAxLS40NTkuMTYxLS44OS40NDMtMS4yNDNoMTUuMTExYy4yODMuMzUzLjQ0NS43ODMuNDQ2IDEuMjQyTDIwLjAwNiAxOEg1em02LjAwNC0xMHYzSDVWOGg2LjAwNHpNMTkgMTFoLTUuOTk2VjhIMTl2M3pNNyA0aDEwYzEuMTAzIDAgMiAuODk3IDIgMmgtNFY1SDl2MUg1YzAtMS4xMDMuODk3LTIgMi0yelwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi41XCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNy41XCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS41XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4wMDQgNy45NzVWNmMwLTIuMjA2LTEuNzk0LTQtNC00aC0xMGMtMi4yMDYgMC00IDEuNzk0LTQgNHYxLjk5OGwtLjA3Ni4wMDRBMSAxIDAgMCAwIDIgOXYyYTEgMSAwIDAgMCAxIDFoLjAwNHY2YzAgLjczNS40MDMgMS4zNzIuOTk2IDEuNzJWMjFhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTFoMTB2MWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMXYtMS4yNzZBMS45OTQgMS45OTQgMCAwIDAgMjEuMDA0IDE4di02YTEgMSAwIDAgMCAxLTFWOS4wNjJhMS4wMDYgMS4wMDYgMCAwIDAtLjA3Mi0uNDU1Yy0uMjAzLS40ODctLjYzNS0uNjA0LS45MjgtLjYzMnpNMTkuMDA2IDE4SDUuMDA0di01aDE0LjAwMWwuMDAxIDV6TTExLjAwNCA3djRoLTZWN2g2em04IDB2NGgtNlY3aDZ6bS0xMi0zaDEwYy43MzYgMCAxLjM3NS40MDUgMS43MjIgMUg1LjI4MmMuMzQ3LS41OTUuOTg2LTEgMS43MjItMXpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhYmluZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNmMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNHpNNSA0aDE0djdINVY0em0wIDE2di03aDE0LjAwMXY3SDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgN2gtNFY2SDh2M2g4VjZoLTJ6bTAgOHYxaC00di0xSDh2M2g4di0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVoLTZWMmgtMnYzSDVDMy4zNDYgNSAyIDYuMzQ2IDIgOHYxMGMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWOGMwLTEuNjU0LTEuMzQ2LTMtMy0zek01IDdoMTRhMSAxIDAgMCAxIDEgMWwuMDAxIDMuMTJjLS44OTYuMjI4LTEuNDY5LjczNC0xLjkxNiAxLjEzMi0uNTA3LjQ1LS44NDIuNzQ4LTEuNTg4Ljc0OC0uNzQ1IDAtMS4wOC0uMjk4LTEuNTg3LS43NDctLjU5NS0uNTI5LTEuNDA5LTEuMjUzLTIuOTE1LTEuMjUzLTEuNTA1IDAtMi4zMTkuNzI0LTIuOTE0IDEuMjUzLS41MDcuNDUtLjg0MS43NDctMS41ODYuNzQ3LS43NDMgMC0xLjA3Ny0uMjk3LTEuNTgyLS43NDctLjQ0Ny0uMzk4LTEuMDE4LS45MDUtMS45MTMtMS4xMzNWOGExIDEgMCAwIDEgMS0xek00IDE4di00LjcxNGMuMTkxLjEyMy4zNzQuMjc0LjU4My40NjFDNS4xNzggMTQuMjc2IDUuOTkxIDE1IDcuNDk1IDE1YzEuNTA1IDAgMi4zMTktLjcyNCAyLjkxNC0xLjI1My41MDctLjQ1Ljg0MS0uNzQ3IDEuNTg2LS43NDdzMS4wOC4yOTggMS41ODcuNzQ3Yy41OTUuNTI5IDEuNDA5IDEuMjUzIDIuOTE1IDEuMjUzczIuMzIxLS43MjQgMi45MTYtMS4yNTNjLjIxMS0uMTg4LjM5NS0uMzQuNTg4LS40NjRMMjAuMDAyIDE4SDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FsY3VsYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTZjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yek01IDIwVjRoMTRsLjAwMSAxNkg1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTJoMnYySDd6bTAgNGgydjJIN3ptNC00aDJ2MmgtMnpNNyA2aDEwdjRIN3ptNCAxMGgydjJoLTJ6bTQtNGgydjZoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FsZW5kYXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0yVjJoLTJ2Mkg5VjJIN3YySDVhMiAyIDAgMCAwLTIgMnptMTYgMTRINVY4aDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhbGVuZGFyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTJWMmgtMnYySDlWMkg3djJINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY2YzAtMS4xMDMtLjg5Ny0yLTItMnptLjAwMiAxNkg1VjhoMTRsLjAwMiAxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSAxNy40MTQgNS43MDctNS43MDctMS40MTQtMS40MTRMMTEgMTQuNTg2bC0yLjI5My0yLjI5My0xLjQxNCAxLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYWxlbmRhckVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTNWMmgtMnYyaC00VjJIOHYySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMjBWN2gxNFY2bC4wMDIgMTRINXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS42MjggMTIuMTgzLTEuOC0xLjc5OSAxLjM3LTEuMzcxIDEuOCAxLjc5OXptLTcuNjIzIDQuMDE4VjE4aDEuNzk5bDQuOTc2LTQuOTctMS43OTktMS43OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FsZW5kYXJFdmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTJoNnY2aC02elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTJWMmgtMnYySDlWMkg3djJINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY2YzAtMS4xMDMtLjg5Ny0yLTItMnptLjAwMSAxNkg1VjhoMTRsLjAwMSAxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYWxlbmRhckV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0yVjJoLTJ2Mkg5VjJIN3YySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6bS4wMDIgMTZINVY4aDE0bC4wMDIgMTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTBoMnY1aC0yem0wIDZoMnYyaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhbGVuZGFySGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNjQ4IDE0LjcxMSAxMS45OTcgMThsMy4zNS0zLjI4OWEyLjEyOSAyLjEyOSAwIDAgMCAwLTMuMDY5IDIuMjI1IDIuMjI1IDAgMCAwLTMuMTI2IDBsLS4yMjQuMjE5LS4yMjQtLjIxOWEyLjIyNCAyLjIyNCAwIDAgMC0zLjEyNSAwIDIuMTI5IDIuMTI5IDAgMCAwIDAgMy4wNjl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNGgtMlYyaC0ydjJIOVYySDd2Mkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yem0uMDAyIDE2SDVWOGgxNGwuMDAyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhbGVuZGFyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTNoOHYySDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNGgtMlYyaC0ydjJIOVYySDd2Mkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yem0uMDAyIDE2SDVWOGgxNGwuMDAyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhbGVuZGFyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNWgzdjNoMnYtM2gzdi0yaC0zdi0zaC0ydjNIOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0yVjJoLTJ2Mkg5VjJIN3YySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6bS4wMDIgMTZINVY4aDE0bC4wMDIgMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FsZW5kYXJTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05Ljk4MSAxNC44MTEtLjQ2NyAyLjcyNiAyLjQ0OS0xLjI4NyAyLjQ0OSAxLjI4Ny0uNDY4LTIuNzI2IDEuOTgyLTEuOTMyLTIuNzM4LS4zOThMMTEuOTYzIDEwbC0xLjIyNSAyLjQ4MUw4IDEyLjg3OXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0yVjJoLTJ2Mkg5VjJIN3YySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6bS4wMDIgMTZINVY4aDE0bC4wMDIgMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FsZW5kYXJXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0zVjJoLTJ2MmgtNFYySDh2Mkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yek01IDIwVjdoMTRWNmwuMDAyIDE0SDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMHYyaDEwVjlIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYWxlbmRhclggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguMjkzIDE2LjI5MyAxLjQxNCAxLjQxNEwxMiAxNS40MTRsMi4yOTMgMi4yOTMgMS40MTQtMS40MTRMMTMuNDE0IDE0bDIuMjkzLTIuMjkzLTEuNDE0LTEuNDE0TDEyIDEyLjU4NmwtMi4yOTMtMi4yOTMtMS40MTQgMS40MTRMMTAuNTg2IDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTJWMmgtMnYySDlWMkg3djJINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY2YzAtMS4xMDMtLjg5Ny0yLTItMnptLjAwMiAxNkg1VjhoMTRsLjAwMiAxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMWgydjJIN3ptMCA0aDJ2Mkg3em00LTRoMnYyaC0yem0wIDRoMnYyaC0yem00LTRoMnYyaC0yem0wIDRoMnYyaC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yaC0yVjJoLTJ2Mkg5VjJIN3YySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMnpNMTkgOGwuMDAxIDEySDVWOGgxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYW1lcmFIb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4xMjUgMkg1Ljg3NUExLjg3NyAxLjg3NyAwIDAgMCA0IDMuODc1djEyLjI1QzQgMTcuMTU5IDQuODQxIDE4IDUuODc1IDE4SDExdjJIN3YyaDEwdi0yaC00di0yaDUuMTI1QTEuODc3IDEuODc3IDAgMCAwIDIwIDE2LjEyNVYzLjg3NUExLjg3NyAxLjg3NyAwIDAgMCAxOC4xMjUgMnpNMTggMTZINlY0aDEydjEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYW1lcmFNb3ZpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTFjMC0uOTU5LS42OC0xLjc2MS0xLjU4MS0xLjk1NEMxNi43NzkgOC40NDUgMTcgNy43NSAxNyA3YzAtMi4yMDYtMS43OTQtNC00LTQtMS41MTcgMC0yLjgyMS44NTctMy41IDIuMTA0QzguODIxIDMuODU3IDcuNTE3IDMgNiAzIDMuNzk0IDMgMiA0Ljc5NCAyIDdjMCAuOTAyLjMxMiAxLjcyNy44MTcgMi4zOTZBMS45OTQgMS45OTQgMCAwIDAgMiAxMXY4YzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMnYtMi42MzhsNCAydi03bC00IDJWMTF6bS01LTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnpNNiA1YzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMi0yLS44OTctMi0yIC44OTctMiAyLTJ6TTQgMTl2LThoMTJsLjAwMiA4SDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FtZXJhT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjAxNCAxMi4xMzVjLjA3NCAyLjA2MiAxLjc4OSAzLjc3NyAzLjg1MSAzLjg1MWwtMy44NTEtMy44NTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMGgxMS44NzlsLTItMkg0VjguMTIxTDIuMTQ0IDYuMjY1QTEuOTc2IDEuOTc2IDAgMCAwIDIgN3YxMWMwIDEuMTAzLjg5NyAyIDIgMnpNMjAgNWgtMi41ODZsLTIuNzA3LTIuNzA3QS45OTYuOTk2IDAgMCAwIDE0IDJoLTRhLjk5Ny45OTcgMCAwIDAtLjcwNy4yOTNMNi41ODYgNWgtLjE3MkwzLjcwNyAyLjI5MyAyLjI5MyAzLjcwN2wxOCAxOCAxLjQxNC0xLjQxNC0uNjI2LS42MjZBMS45OCAxLjk4IDAgMCAwIDIyIDE4VjdjMC0xLjEwMy0uODk3LTItMi0yem0tNi4wODEgNy41MDUtMi40MjQtMi40MjVjLjE2My0uMDQ2LjMzMS0uMDguNTA1LS4wOCAxLjA2NSAwIDIgLjkzNSAyIDIgMCAuMTc0LS4wMzMuMzQyLS4wODEuNTA1em0xLjUwMiAxLjUwMUEzLjg4MSAzLjg4MSAwIDAgMCAxNiAxMmMwLTIuMTY4LTEuODMyLTQtNC00LS43MjkgMC0xLjQxMi4yMi0yLjAwNy41NzlMNy45MTQgNi41bDIuNS0yLjVoMy4xNzJsMi43MDcgMi43MDdBLjk5Ni45OTYgMCAwIDAgMTcgN2wzLS4wMDFWMThoLS41ODZsLTMuOTkzLTMuOTk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMtMi4xNjggMC00IDEuODMyLTQgNHMxLjgzMiA0IDQgNCA0LTEuODMyIDQtNC0xLjgzMi00LTQtNHptMCA2Yy0xLjA2NSAwLTItLjkzNS0yLTJzLjkzNS0yIDItMiAyIC45MzUgMiAyLS45MzUgMi0yIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtMi41ODZsLTIuNzA3LTIuNzA3QS45OTYuOTk2IDAgMCAwIDE0IDJoLTRhLjk5Ni45OTYgMCAwIDAtLjcwNy4yOTNMNi41ODYgNUg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTFjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjdjMC0xLjEwMy0uODk3LTItMi0yek00IDE4VjdoM2MuMjY2IDAgLjUyLS4xMDUuNzA3LS4yOTNMMTAuNDE0IDRoMy4xNzJsMi43MDcgMi43MDdBLjk5Ni45OTYgMCAwIDAgMTcgN2gzbC4wMDIgMTFINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXBzdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ljk5OSAyMC4xMzNhNC45NjkgNC45NjkgMCAwIDAgMy41MzYtMS40NjVsNy4xMzQtNy4xMzNhNS4wMDcgNS4wMDcgMCAwIDAtLjAwMS03LjA3MkMxOC43MjMgMy41MiAxNy40NjcgMyAxNi4xMzIgM3MtMi41OTEuNTItMy41MzQgMS40NjRsLTcuMTM0IDcuMTM0YTUuMDA5IDUuMDA5IDAgMCAwIDAgNy4wNzIgNC45NyA0Ljk3IDAgMCAwIDMuNTM1IDEuNDYzem01LjAxMy0xNC4yNTVBMi45NzkgMi45NzkgMCAwIDEgMTYuMTMyIDVjLjgwMiAwIDEuNTU2LjMxMyAyLjEyMi44NzhhMy4wMDQgMy4wMDQgMCAwIDEgLjAwMSA0LjI0M2wtMi44OTMgMi44OTJMMTEuMTIgOC43N2wyLjg5Mi0yLjg5MnptLTcuMTM0IDcuMTM0IDIuODI4LTIuODI4IDQuMjQyIDQuMjQzLTIuODI3IDIuODI3Yy0xLjEzMyAxLjEzMy0zLjExIDEuMTMyLTQuMjQzLjAwMWEzLjAwNSAzLjAwNSAwIDAgMSAwLTQuMjQzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhcHRpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEwdjRjMCAxLjEwMy44OTcgMiAyIDJoM3YtMkg4di00aDNWOEg4Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ6bTcgMHY0YzAgMS4xMDMuODk3IDIgMiAyaDN2LTJoLTN2LTRoM1Y4aC0zYy0xLjEwMyAwLTIgLjg5Ny0yIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yek00IDE4VjZoMTZsLjAwMiAxMkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNzcyIDEwLjE1Ni0xLjM2OC00LjEwNUEyLjk5NSAyLjk5NSAwIDAgMCAxNi41NTkgNEg3LjQ0MWEyLjk5NSAyLjk5NSAwIDAgMC0yLjg0NSAyLjA1MWwtMS4zNjggNC4xMDVBMi4wMDMgMi4wMDMgMCAwIDAgMiAxMnY1YzAgLjc1My40MjMgMS40MDIgMS4wMzkgMS43NDMtLjAxMy4wNjYtLjAzOS4xMjYtLjAzOS4xOTVWMjFhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTJoMTJ2MmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMXYtMi4wNjJjMC0uMDY5LS4wMjYtLjEzLS4wMzktLjE5NUExLjk5MyAxLjk5MyAwIDAgMCAyMiAxN3YtNWMwLS44MjktLjUwOC0xLjU0MS0xLjIyOC0xLjg0NHpNNCAxN3YtNWgxNmwuMDAyIDVINHpNNy40NDEgNmg5LjExN2MuNDMxIDAgLjgxMy4yNzQuOTQ5LjY4NEwxOC42MTMgMTBINS4zODdsMS4xMDUtMy4zMTZBMSAxIDAgMCAxIDcuNDQxIDZ6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45OTkgMTdjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yaC0xMmMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDEyem0tMTItMTJoMTJsLjAwMiAxMEg1Ljk5OVY1em0tMiAxNGgxNnYyaC0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXJldERvd25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE2IDUtNkg3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXJldERvd25TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE2IDUtNkg3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNSAxOVY1aDE0bC4wMDIgMTRINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXJldERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjk5OCAxNyA3LThoLTE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhcmV0TGVmdENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTdWN2wtNiA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXJldExlZnRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE3VjdsLTYgNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTlWNWgxNGwuMDAyIDE0SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FyZXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOVY1bC04IDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FyZXRSaWdodENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTcgNi01LTYtNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FyZXRSaWdodFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTcgNi01LTYtNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTlWNWgxNGwuMDAyIDE0SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FyZXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOSAxOSA4LTctOC03elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhcmV0VXBDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTRoMTBsLTUtNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FyZXRVcFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNGgxMGwtNS02elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNSAxOVY1aDE0bC4wMDIgMTRINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXJldFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1aDE0bC03LTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2Fyb3VzZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTloMmMwIDEuMTAzLjg5NyAyIDIgMmg4YzEuMTAzIDAgMi0uODk3IDItMmgyYzEuMTAzIDAgMi0uODk3IDItMlY3YzAtMS4xMDMtLjg5Ny0yLTItMmgtMmMwLTEuMTAzLS44OTctMi0yLTJIOGMtMS4xMDMgMC0yIC44OTctMiAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMGMwIDEuMTAzLjg5NyAyIDIgMnpNMjAgN3YxMGgtMlY3aDJ6TTggNWg4bC4wMDEgMTRIOFY1ek00IDdoMnYxMEg0Vjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2FydEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNEgydjJoMi4zbDMuMjggOWEzIDMgMCAwIDAgMi44MiAySDE5di0yaC04LjZhMSAxIDAgMCAxLS45NC0uNjZMOSAxM2g5LjI4YTIgMiAwIDAgMCAxLjkyLTEuNDVMMjIgNS4yN0ExIDEgMCAwIDAgMjEuMjcgNCAuODQuODQgMCAwIDAgMjEgNHptLTIuNzUgN2gtMTBMNi40MyA2aDEzLjI0elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTAuNVwiLFwiY3lcIjpcIjE5LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjE5LjVcIixcInJcIjpcIjEuNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjgyMiA3LjQzMUExIDEgMCAwIDAgMjEgN0g3LjMzM0w2LjE3OSA0LjIzQTEuOTk0IDEuOTk0IDAgMCAwIDQuMzMzIDNIMnYyaDIuMzMzbDQuNzQ0IDExLjM4NUExIDEgMCAwIDAgMTAgMTdoOGMuNDE3IDAgLjc5LS4yNTkuOTM3LS42NDhsMy04YTEgMSAwIDAgMC0uMTE1LS45MjF6TTE3LjMwNyAxNWgtNi42NGwtMi41LTZoMTEuMzlsLTIuMjUgNnpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwLjVcIixcImN5XCI6XCIxOS41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3LjVcIixcImN5XCI6XCIxOS41XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMS4wMDFoMkMxMyAxNC45MzUgOC4wNjUgMTAgMiAxMHYyYzQuOTYyIDAgOSA0LjAzOCA5IDkuMDAxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjEuMDAxaDJDOSAxNy4xNDEgNS44NiAxNCAyIDE0djJjMi43NTcgMCA1IDIuMjQzIDUgNS4wMDF6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIzLjVcIixcImN5XCI6XCIxOS41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTAzIDAtMiAuODk3LTIgMnYyLjA1MmMuNjguMDI1IDEuMzQ5LjA5NCAyIC4yMTdWNmgxNnYxM2gtNS4yNjljLjEyMy42NTEuMTkxIDEuMzIuMjE3IDJIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNhdGVnb3J5QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzSDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMXpNOSA5SDVWNWg0djR6bTExIDRoLTZhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi02YTEgMSAwIDAgMC0xLTF6bS0xIDZoLTR2LTRoNHY0ek0xNyAzYy0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0IDQtMS43OTQgNC00LTEuNzk0LTQtNC00em0wIDZjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yIDIgLjg5NyAyIDItLjg5NyAyLTIgMnpNNyAxM2MtMi4yMDYgMC00IDEuNzk0LTQgNHMxLjc5NCA0IDQgNCA0LTEuNzk0IDQtNC0xLjc5NC00LTQtNHptMCA2Yy0xLjEwMyAwLTItLjg5Ny0yLTJzLjg5Ny0yIDItMiAyIC44OTcgMiAyLS44OTcgMi0yIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2F0ZWdvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNINGExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xek05IDlINVY1aDR2NHptMTEtNmgtNmExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xem0tMSA2aC00VjVoNHY0em0tOSA0SDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi02YTEgMSAwIDAgMC0xLTF6bS0xIDZINXYtNGg0djR6bTgtNmMtMi4yMDYgMC00IDEuNzk0LTQgNHMxLjc5NCA0IDQgNCA0LTEuNzk0IDQtNC0xLjc5NC00LTQtNHptMCA2Yy0xLjEwMyAwLTItLjg5Ny0yLTJzLjg5Ny0yIDItMiAyIC44OTcgMiAyLS44OTcgMi0yIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2N0diAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTE2IDkuNTY0YS45OTguOTk4IDAgMCAwLS41MTMtMS4zMTZMNy4zMjggMi40OTJjLS45OTUtLjQzOC0yLjIyLjA1MS0yLjY0NSAxLjA0MmwtMi4yMSA1LjE1NGEyLjAwMSAyLjAwMSAwIDAgMCAxLjA1MiAyLjYyNEw5LjU2MyAxMy45IDguMzIzIDE3SDR2LTNIMnY4aDJ2LTNoNC4zMjNjLjgyMyAwIDEuNTUyLS40OTQgMS44NTYtMS4yNThsMS4yMjItMy4wNTQgNS4yMDUgMi4yM2ExIDEgMCAwIDAgMS4zMS0uNTE3bC4zMTItLjcxIDEuNzAxLjY4IDItNS0xLjUzNi0uNjEzLjUyMy0xLjE5NHptLTQuNDM0IDUuMTI2TDQuMzEzIDkuNDc1bDIuMjA4LTUuMTUyIDEyLjE2MiA1LjM1NC0yLjIwMSA1LjAxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDZXJ0aWZpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjA2IDE0LjY4YTEgMSAwIDAgMCAuNDYuNmwxLjkxIDEuMTF2Mi4yYTEgMSAwIDAgMCAxIDFoMi4ybDEuMTEgMS45MWExIDEgMCAwIDAgLjg2LjUgMSAxIDAgMCAwIC41MS0uMTRsMS45LTEuMSAxLjkxIDEuMWExIDEgMCAwIDAgMS4zNy0uMzZsMS4xLTEuOTFoMi4yYTEgMSAwIDAgMCAxLTF2LTIuMmwxLjkxLTEuMTFhMSAxIDAgMCAwIC4zNy0xLjM2TDIwLjc2IDEybDEuMTEtMS45MWExIDEgMCAwIDAtLjM3LTEuMzZsLTEuOTEtMS4xdi0yLjJhMSAxIDAgMCAwLTEtMWgtMi4ybC0xLjEtMS45MWExIDEgMCAwIDAtLjYxLS40NiAxIDEgMCAwIDAtLjc2LjFMMTIgMy4yNmwtMS45LTEuMWExIDEgMCAwIDAtMS4zNi4zNkw3LjYzIDQuNDNoLTIuMmExIDEgMCAwIDAtMSAxdjIuMmwtMS45IDEuMWExIDEgMCAwIDAtLjM3IDEuMzdsMS4xIDEuOS0xLjEgMS45MWExIDEgMCAwIDAtLjEuNzd6bTMuMjItMy4xN0w0LjM5IDEwbDEuNTUtLjlhMSAxIDAgMCAwIC40OS0uODZWNi40M2gxLjc4YTEgMSAwIDAgMCAuODctLjVMMTAgNC4zOWwxLjU0Ljg5YTEgMSAwIDAgMCAxIDBsMS41NS0uODkuOTEgMS41NGExIDEgMCAwIDAgLjg3LjVoMS43N3YxLjc4YTEgMSAwIDAgMCAuNS44NmwxLjU0LjktLjg5IDEuNTRhMSAxIDAgMCAwIDAgMWwuODkgMS41NC0xLjU0LjlhMSAxIDAgMCAwLS41Ljg2djEuNzhoLTEuODNhMSAxIDAgMCAwLS44Ni41bC0uODkgMS41NC0xLjU1LS44OWExIDEgMCAwIDAtMSAwbC0xLjUxLjg5LS44OS0xLjU0YTEgMSAwIDAgMC0uODctLjVINi40M3YtMS43OGExIDEgMCAwIDAtLjQ5LS44MWwtMS41NS0uOS44OS0xLjU0YTEgMSAwIDAgMCAwLTEuMDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2hhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzVjRjMC0xLjEwMy0uODk3LTItMi0ySDdjLTEuMTAzIDAtMiAuODk3LTIgMnY5YTEgMSAwIDAgMC0xIDF2OGgydi01aDEydjVoMnYtOGExIDEgMCAwIDAtMS0xem0tMi05djloLTJWNGgyem0tNCAwdjloLTJWNGgyek03IDRoMnY5SDdWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGFsa2JvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMWMwIDEuMTAzLjg5NyAyIDIgMmg0bC0xLjggMi40IDEuNiAxLjIgMi43LTMuNmgzbDIuNyAzLjYgMS42LTEuMkwxNiAxOGg0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxNlY1aDE2bC4wMDEgMTFINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEyaDR2Mkg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIxaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJ6TTUgNWgxNGwuMDAxIDE0SDVWNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy41NTMgMTEuNjU4LTQtMi0yLjQ0OCA0Ljg5NSAxLjc5Ljg5NCAxLjU1Mi0zLjEwNSA0IDIgMi40NDgtNC44OTUtMS43OS0uODk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTh2My43NjZsMS41MTUtLjkwOUwxMS4yNzcgMThIMTZjMS4xMDMgMCAyLS44OTcgMi0yVjhjMC0xLjEwMy0uODk3LTItMi0ySDRjLTEuMTAzIDAtMiAuODk3LTIgMnY4YzAgMS4xMDMuODk3IDIgMiAyaDF6TTQgOGgxMnY4aC01LjI3N0w3IDE4LjIzNFYxNkg0Vjh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEwMyAwLTIgLjg5Ny0yIDJoMTJjMS4xMDMgMCAyIC44OTcgMiAydjhjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS45OTkgMTMuNTg3IDcuNyAxMS4yOTJsLTEuNDEyIDEuNDE2IDMuNzEzIDMuNzA1IDYuNzA2LTYuNzA2LTEuNDE0LTEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZWNrRG91YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjM5NCAxMy43NDIgNC43NDMgMy42MiA3LjYxNi04LjcwNC0xLjUwNi0xLjMxNi02LjM4NCA3LjI5Ni0zLjI1Ny0yLjQ4NnptMTkuMzU5LTUuMDg0LTEuNTA2LTEuMzE2LTYuMzY5IDcuMjc5LS43NTMtLjYwMi0xLjI1IDEuNTYyIDIuMjQ3IDEuNzk4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZWNrU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45OTUgNi45YS45OTguOTk4IDAgMCAwLS41NDgtLjc5NWwtOC00YTEgMSAwIDAgMC0uODk1IDBsLTggNGExLjAwMiAxLjAwMiAwIDAgMC0uNTQ3Ljc5NWMtLjAxMS4xMDctLjk2MSAxMC43NjcgOC41ODkgMTUuMDE0YS45ODcuOTg3IDAgMCAwIC44MTIgMGM5LjU1LTQuMjQ3IDguNi0xNC45MDYgOC41ODktMTUuMDE0ek0xMiAxOS44OTdDNS4yMzEgMTYuNjI1IDQuOTExIDkuNjQyIDQuOTY2IDcuNjM1TDEyIDQuMTE4bDcuMDI5IDMuNTE1Yy4wMzcgMS45ODktLjMyOCA5LjAxOC03LjAyOSAxMi4yNjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgMTIuNTg2LTIuMjkzLTIuMjkzLTEuNDE0IDEuNDE0TDExIDE1LjQxNGw1LjcwNy01LjcwNy0xLjQxNC0xLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGVja1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuOTMzIDEzLjUxOS0yLjIyNi0yLjIyNi0xLjQxNCAxLjQxNCAzLjc3NCAzLjc3NCA1LjcwMi02Ljg0LTEuNTM4LTEuMjgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNSAxOVY1aDE0bC4wMDIgMTRINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTUuNTg2LTMuMjkzLTMuMjkzLTEuNDE0IDEuNDE0TDEwIDE4LjQxNGw5LjcwNy05LjcwNy0xLjQxNC0xLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGVja2JveENoZWNrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNWMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDEwYzEuMTAzIDAgMi0uODk3IDItMlY3YzAtMS4xMDMtLjg5Ny0yLTItMkg3em0wIDEyVjdoMTBsLjAwMiAxMEg3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjk5NiAxMi41NTYgOS43IDExLjI4NWwtMS40IDEuNDMgMi43MDQgMi42NDcgNC42OTktNC42NTEtMS40MDYtMS40MjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2hlY2tib3hNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wMSAxMWg2djJoLTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNUg3YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnpNNyAxN1Y3aDEwdjEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZWNrYm94U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDloNnY2SDl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTdWN2MwLTEuMTAzLS44OTctMi0yLTJIN2MtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDEwYzEuMTAzIDAgMi0uODk3IDItMnpNNyA3aDEwbC4wMDIgMTBIN1Y3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZWNrYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxMGMwIDEuMTAzLjg5NyAyIDIgMmgxMGMxLjEwMyAwIDItLjg5NyAyLTJWN2MwLTEuMTAzLS44OTctMi0yLTJIN3ptMCAxMlY3aDEwbC4wMDIgMTBIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uRG93bkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzLjU4NiA3LjcwNyA5LjI5M2wtMS40MTQgMS40MTRMMTIgMTYuNDE0bDUuNzA3LTUuNzA3LTEuNDE0LTEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZXZyb25Eb3duU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIxaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJ6TTUgNWgxNGwuMDAxIDE0SDVWNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMy41ODYgNy43MDcgOS4yOTNsLTEuNDE0IDEuNDE0TDEyIDE2LjQxNGw1LjcwNy01LjcwNy0xLjQxNC0xLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMjkzIDkuMjkzIDEyIDEzLjU4NiA3LjcwNyA5LjI5M2wtMS40MTQgMS40MTRMMTIgMTYuNDE0bDUuNzA3LTUuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZXZyb25MZWZ0Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjkzIDYuMjkzIDcuNTg2IDEybDUuNzA3IDUuNzA3IDEuNDE0LTEuNDE0TDEwLjQxNCAxMmw0LjI5My00LjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uTGVmdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyMWgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyek01IDVoMTRsLjAwMSAxNEg1VjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjkzIDYuMjkzIDcuNTg2IDEybDUuNzA3IDUuNzA3IDEuNDE0LTEuNDE0TDEwLjQxNCAxMmw0LjI5My00LjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjkzIDYuMjkzIDcuNTg2IDEybDUuNzA3IDUuNzA3IDEuNDE0LTEuNDE0TDEwLjQxNCAxMmw0LjI5My00LjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uUmlnaHRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyA3LjcwNyAxMy41ODYgMTJsLTQuMjkzIDQuMjkzIDEuNDE0IDEuNDE0TDE2LjQxNCAxMmwtNS43MDctNS43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2hldnJvblJpZ2h0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIxaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJ6TTUgNWgxNGwuMDAxIDE0SDVWNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyA3LjcwNyAxMy41ODYgMTJsLTQuMjkzIDQuMjkzIDEuNDE0IDEuNDE0TDE2LjQxNCAxMmwtNS43MDctNS43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC43MDcgMTcuNzA3IDE2LjQxNCAxMmwtNS43MDctNS43MDctMS40MTQgMS40MTRMMTMuNTg2IDEybC00LjI5MyA0LjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uVXBDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02LjI5MyAxMy4yOTMgMS40MTQgMS40MTRMMTIgMTAuNDE0bDQuMjkzIDQuMjkzIDEuNDE0LTEuNDE0TDEyIDcuNTg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZXZyb25VcFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyMWgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyek01IDVoMTRsLjAwMSAxNEg1VjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi4yOTMgMTMuMjkzIDEuNDE0IDEuNDE0TDEyIDEwLjQxNGw0LjI5MyA0LjI5MyAxLjQxNC0xLjQxNEwxMiA3LjU4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDaGV2cm9uVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYuMjkzIDEzLjI5MyAxLjQxNCAxLjQxNEwxMiAxMC40MTRsNC4yOTMgNC4yOTMgMS40MTQtMS40MTRMMTIgNy41ODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2hldnJvbnNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxNS41ODYtNC4yOTMtNC4yOTMtMS40MTQgMS40MTRMMTIgMTguNDE0bDUuNzA3LTUuNzA3LTEuNDE0LTEuNDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjcwNyA3LjcwNy0xLjQxNC0xLjQxNEwxMiAxMC41ODYgNy43MDcgNi4yOTMgNi4yOTMgNy43MDcgMTIgMTMuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZXZyb25zTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuNzA3IDcuNzA3LTEuNDE0LTEuNDE0TDUuNTg2IDEybDUuNzA3IDUuNzA3IDEuNDE0LTEuNDE0TDguNDE0IDEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjI5MyA2LjI5MyAxMC41ODYgMTJsNS43MDcgNS43MDcgMS40MTQtMS40MTRMMTMuNDE0IDEybDQuMjkzLTQuMjkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoZXZyb25zUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjI5NiA3LjcxIDE0LjYyMSAxMmwtNC4zMjUgNC4yOSAxLjQwOCAxLjQyTDE3LjQ2MSAxMmwtNS43NTctNS43MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjcwNCA2LjI5IDUuMjk2IDcuNzEgOS42MjEgMTJsLTQuMzI1IDQuMjkgMS40MDggMS40MkwxMi40NjEgMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2hldnJvbnNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi4yOTMgMTEuMjkzIDEuNDE0IDEuNDE0TDEyIDguNDE0bDQuMjkzIDQuMjkzIDEuNDE0LTEuNDE0TDEyIDUuNTg2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYuMjkzIDE2LjI5MyAxLjQxNCAxLjQxNEwxMiAxMy40MTRsNC4yOTMgNC4yOTMgMS40MTQtMS40MTRMMTIgMTAuNTg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOWg2djZIOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2YzAtMS4xMDMtLjg5Ny0yLTItMmgtMlYyaC0ydjJoLTRWMkg4djJINmMtMS4xMDMgMC0yIC44OTctMiAydjJIMnYyaDJ2NEgydjJoMnYyYzAgMS4xMDMuODk3IDIgMiAyaDJ2Mmgydi0yaDR2Mmgydi0yaDJjMS4xMDMgMCAyLS44OTcgMi0ydi0yaDJ2LTJoLTJ2LTRoMlY4aC0yVjZ6TTYgMThWNmgxMmwuMDAyIDEySDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2h1cmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS40NDcgMTQuMTA1IDE4IDEyLjM4MlYxMmExIDEgMCAwIDAtLjQ4NS0uODU3TDEzIDguNDM0VjZoMlY0aC0yVjJoLTJ2Mkg5djJoMnYyLjQzNGwtNC41MTUgMi43MDlBMSAxIDAgMCAwIDYgMTJ2LjM4MmwtMy40NDcgMS43MjRBLjk5OC45OTggMCAwIDAgMiAxNXY2YTEgMSAwIDAgMCAxIDFoMThhMSAxIDAgMCAwIDEtMXYtNmMwLS4zNzktLjIxNC0uNzI1LS41NTMtLjg5NXpNNCAxNS42MThsMi0xVjIwSDR2LTQuMzgyek0xMiAxNWEyIDIgMCAwIDAtMiAydjNIOHYtNy40MzRsNC0yLjQgNCAyLjRWMjBoLTJ2LTNhMiAyIDAgMCAwLTItMnptOCA1aC0ydi01LjM4MmwyIDFWMjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyYy4wMDEgNS41MTUgNC40ODcgMTAuMDAxIDEwIDEwLjAwMSA1LjUxNCAwIDEwLTQuNDg2IDEwLjAwMS0xMC4wMDEgMC01LjUxNC00LjQ4Ni0xMC0xMC4wMDEtMTB6bTAgMTguMDAxYy00LjQxIDAtNy45OTktMy41ODktOC04LjAwMSAwLTQuNDExIDMuNTg5LTggOC04IDQuNDEyIDAgOC4wMDEgMy41ODkgOC4wMDEgOC0uMDAxIDQuNDEyLTMuNTkgOC4wMDEtOC4wMDEgOC4wMDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2xpbmljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi43MDcgMi4yOTNhLjk5OS45OTkgMCAwIDAtMS40MTQgMGwtOSA5QTEgMSAwIDAgMCAzIDEzaDF2N2MwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTdoMWEuOTk5Ljk5OSAwIDAgMCAuNzA3LTEuNzA3bC05LTl6TTE4LjAwMSAyMEg2di05LjU4Nmw2LTYgNiA2VjE1bC4wMDEgNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMGgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtMi4yNWExIDEgMCAwIDAtMS0xaC03LjVhMSAxIDAgMCAwLTEgMUg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTVjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yem0wIDE3SDVWNWgydjJoMTBWNWgydjE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNsb3NldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTAuNTUxdi0uNjc4QTQuMDA1IDQuMDA1IDAgMCAwIDE2IDZjMC0yLjIwNi0xLjc5NC00LTQtNFM4IDMuNzk0IDggNmgyYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDItLjg5NyAyLTIgMmExIDEgMCAwIDAtMSAxdjEuNTUxbC04LjY2NSA3LjcwMkExLjAwMSAxLjAwMSAwIDAgMCAzIDIwaDE4YTEuMDAxIDEuMDAxIDAgMCAwIC42NjQtMS43NDhMMTMgMTAuNTUxek01LjYzIDE4IDEyIDEyLjMzOCAxOC4zNyAxOEg1LjYzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNsb3VkRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljk0OCAxMS4xMTJDMTguNTExIDcuNjcgMTUuNTYzIDUgMTIuMDA0IDVjLTIuNzU2IDAtNS4xNSAxLjYxMS02LjI0MyA0LjE1LTIuMTQ4LjY0Mi0zLjc1NyAyLjY3LTMuNzU3IDQuODUgMCAyLjc1NyAyLjI0MyA1IDUgNWgxdi0yaC0xYy0xLjY1NCAwLTMtMS4zNDYtMy0zIDAtMS40MDQgMS4xOTktMi43NTcgMi42NzMtMy4wMTZsLjU4MS0uMTAyLjE5Mi0uNTU4QzguMTUzIDguMjczIDkuODk4IDcgMTIuMDA0IDdjMi43NTcgMCA1IDIuMjQzIDUgNXYxaDFjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0ydjJoMmMyLjIwNiAwIDQtMS43OTQgNC00YTQuMDA4IDQuMDA4IDAgMCAwLTMuMDU2LTMuODg4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjAwNCAxNHYtNGgtMnY0aC0zbDQgNSA0LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2xvdWREcml6emxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEzaDJ2M0g4em0wIDRoMnYzSDh6bTMtMmgydjNoLTJ6bTAgNGgydjNoLTJ6bTMtNmgydjNoLTJ6bTAgNGgydjNoLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTQ0IDEwLjExMkMxOC41MDcgNi42NyAxNS41NiA0IDEyIDQgOS4yNDUgNCA2Ljg1IDUuNjExIDUuNzU3IDguMTUgMy42MDkgOC43OTIgMiAxMC44MTkgMiAxM2MwIDIuNzU3IDIuMjQzIDUgNSA1di0yYy0xLjY1NCAwLTMtMS4zNDYtMy0zIDAtMS40MDMgMS4xOTktMi43NTYgMi42NzMtMy4wMTVsLjU4Mi0uMTAzLjE5MS0uNTU5QzguMTQ5IDcuMjczIDkuODk1IDYgMTIgNmMyLjc1NyAwIDUgMi4yNDMgNSA1djFoMWMxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTF2MmgxYzIuMjA2IDAgNC0xLjc5NCA0LTRhNC4wMDggNC4wMDggMCAwIDAtMy4wNTYtMy44ODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2xvdWRMaWdodFJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTNoMnY0SDh6bTAgNWgydjJIOHptMy0zaDJ2NGgtMnptMCA1aDJ2MmgtMnptMy03aDJ2NGgtMnptMCA1aDJ2MmgtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45NDQgMTAuMTEyQzE4LjUwNyA2LjY3IDE1LjU2IDQgMTIgNCA5LjI0NCA0IDYuODUgNS42MTEgNS43NTcgOC4xNSAzLjYwOSA4Ljc5MiAyIDEwLjgxOSAyIDEzYzAgMi43NTcgMi4yNDMgNSA1IDV2LTJjLTEuNjU0IDAtMy0xLjM0Ni0zLTMgMC0xLjQwMyAxLjE5OS0yLjc1NiAyLjY3My0zLjAxNWwuNTgxLS4xMDMuMTkyLS41NTlDOC4xNDkgNy4yNzMgOS44OTUgNiAxMiA2YzIuNzU3IDAgNSAyLjI0MyA1IDV2MWgxYzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMmgtMXYyaDFjMi4yMDYgMCA0LTEuNzk0IDQtNGE0LjAwOCA0LjAwOCAwIDAgMC0zLjA1Ni0zLjg4OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDbG91ZExpZ2h0bmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTMtMSA1aDJ2NGwzLjk3NS02SDEzbDEtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45NDQgMTAuMTEyQzE4LjUwNyA2LjY3IDE1LjU2IDQgMTIgNCA5LjI0NCA0IDYuODUgNS42MTEgNS43NTcgOC4xNSAzLjYwOSA4Ljc5MiAyIDEwLjgxOSAyIDEzYzAgMi43NTcgMi4yNDMgNSA1IDV2LTJjLTEuNjU0IDAtMy0xLjM0Ni0zLTMgMC0xLjQwMyAxLjE5OS0yLjc1NiAyLjY3My0zLjAxNWwuNTgxLS4xMDMuMTkyLS41NTlDOC4xNDkgNy4yNzMgOS44OTUgNiAxMiA2YzIuNzU3IDAgNSAyLjI0MyA1IDV2MWgxYzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMmgtMXYyaDFjMi4yMDYgMCA0LTEuNzk0IDQtNGE0LjAwOCA0LjAwOCAwIDAgMC0zLjA1Ni0zLjg4OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDbG91ZFJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTNoMnY3SDh6bTMgMmgydjdoLTJ6bTMtMmgydjdoLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTQ0IDEwLjExM0MxOC41MDcgNi42NzEgMTUuNTYgNC4wMDEgMTIgNC4wMDFjLTIuNzU2IDAtNS4xNSAxLjYxMS02LjI0MyA0LjE1QzMuNjA5IDguNzkzIDIgMTAuODIgMiAxMy4wMDFjMCAyLjc1NyAyLjI0MyA1IDUgNXYtMmMtMS42NTQgMC0zLTEuMzQ2LTMtMyAwLTEuNDAzIDEuMTk5LTIuNzU2IDIuNjczLTMuMDE1bC41ODEtLjEwMy4xOTItLjU1OUM4LjE0OSA3LjI3NCA5Ljg5NSA2LjAwMSAxMiA2LjAwMWMyLjc1NyAwIDUgMi4yNDMgNSA1djFoMWMxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTF2MmgxYzIuMjA2IDAgNC0xLjc5NCA0LTRhNC4wMDggNC4wMDggMCAwIDAtMy4wNTYtMy44ODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2xvdWRTbm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45NDQgMTAuMTEyQzE4LjUwNyA2LjY3IDE1LjU2IDQgMTIgNCA5LjI0NCA0IDYuODUgNS42MTEgNS43NTcgOC4xNSAzLjYwOSA4Ljc5MiAyIDEwLjgxOSAyIDEzYzAgMi43NTcgMi4yNDMgNSA1IDV2LTJjLTEuNjU0IDAtMy0xLjM0Ni0zLTMgMC0xLjQwMyAxLjE5OS0yLjc1NiAyLjY3My0zLjAxNWwuNTgxLS4xMDMuMTkyLS41NTlDOC4xNDkgNy4yNzMgOS44OTUgNiAxMiA2YzIuNzU3IDAgNSAyLjI0MyA1IDV2MWgxYzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMmgtMXYyaDFjMi4yMDYgMCA0LTEuNzk0IDQtNGE0LjAwOCA0LjAwOCAwIDAgMC0zLjA1Ni0zLjg4OHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTlcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMjFcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxOVwiLFwiclwiOlwiMVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ2xvdWRVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE5di00aDNsLTQtNS00IDVoM3Y0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTloMnYtMkg3Yy0xLjY1NCAwLTMtMS4zNDYtMy0zIDAtMS40MDQgMS4xOTktMi43NTYgMi42NzMtMy4wMTVsLjU4MS0uMTAyLjE5Mi0uNTU4QzguMTQ5IDguMjc0IDkuODk1IDcgMTIgN2MyLjc1NyAwIDUgMi4yNDMgNSA1djFoMWMxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTN2MmgzYzIuMjA2IDAgNC0xLjc5NCA0LTRhNC4wMSA0LjAxIDAgMCAwLTMuMDU2LTMuODg4QzE4LjUwNyA3LjY3IDE1LjU2IDUgMTIgNSA5LjI0NCA1IDYuODUgNi42MTEgNS43NTcgOS4xNSAzLjYwOSA5Ljc5MiAyIDExLjgyIDIgMTRjMCAyLjc1NyAyLjI0MyA1IDUgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTQ0IDExLjExMkMxOC41MDcgNy42NyAxNS41NiA1IDEyIDUgOS4yNDQgNSA2Ljg1IDYuNjExIDUuNzU3IDkuMTUgMy42MDkgOS43OTIgMiAxMS44MiAyIDE0YzAgMi43NTcgMi4yNDMgNSA1IDVoMTFjMi4yMDYgMCA0LTEuNzk0IDQtNGE0LjAxIDQuMDEgMCAwIDAtMy4wNTYtMy44ODh6TTE4IDE3SDdjLTEuNjU0IDAtMy0xLjM0Ni0zLTMgMC0xLjQwNCAxLjE5OS0yLjc1NiAyLjY3My0zLjAxNWwuNTgxLS4xMDIuMTkyLS41NThDOC4xNDkgOC4yNzQgOS44OTUgNyAxMiA3YzIuNzU3IDAgNSAyLjI0MyA1IDV2MWgxYzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb2RlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03LjM3NSAxNi43ODEgMS4yNS0xLjU2Mkw0LjYwMSAxMmw0LjAyNC0zLjIxOS0xLjI1LTEuNTYyLTUgNGExIDEgMCAwIDAgMCAxLjU2Mmw1IDR6bTkuMjUtOS41NjItMS4yNSAxLjU2MkwxOS4zOTkgMTJsLTQuMDI0IDMuMjE5IDEuMjUgMS41NjIgNS00YTEgMSAwIDAgMCAwLTEuNTYybC01LTR6bS0xLjY0OS00LjAwMy00IDE4LTEuOTUzLS40MzQgNC0xOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb2RlQmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxOVY3aDE2bC4wMDIgMTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyA5LjI5MyA1LjU4NiAxM2wzLjcwNyAzLjcwNyAxLjQxNC0xLjQxNEw4LjQxNCAxM2wyLjI5My0yLjI5M3ptNS40MTQgMC0xLjQxNCAxLjQxNEwxNS41ODYgMTNsLTIuMjkzIDIuMjkzIDEuNDE0IDEuNDE0TDE4LjQxNCAxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb2RlQ3VybHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMjJoMXYtMmgtLjk4OUM4LjcwMyAxOS45OTQgNiAxOS44MjcgNiAxNmMwLTEuOTkzLS42NjUtMy4yNDYtMS41MDItNEM1LjMzNSAxMS4yNDYgNiA5Ljk5MyA2IDhjMC0zLjgyNyAyLjcwMy0zLjk5NCAzLTRoMVYySDguOTk4QzcuMjY5IDIuMDA0IDQgMy4yNjQgNCA4YzAgMi44LTEuNjc4IDIuOTktMi4wMTQgM0wyIDEzYy4wODIgMCAyIC4wMzQgMiAzIDAgNC43MzYgMy4yNjkgNS45OTYgNSA2em0xMy0xMWMtLjA4MiAwLTItLjAzNC0yLTMgMC00LjczNi0zLjI2OS01Ljk5Ni01LTZoLTF2MmguOTg5Yy4zMDguMDA2IDMuMDExLjE3MyAzLjAxMSA0IDAgMS45OTMuNjY1IDMuMjQ2IDEuNTAyIDQtLjgzNy43NTQtMS41MDIgMi4wMDctMS41MDIgNCAwIDMuODI3LTIuNzAzIDMuOTk0LTMgNGgtMXYyaDEuMDAyQzE2LjczMSAyMS45OTYgMjAgMjAuNzM2IDIwIDE2YzAtMi44IDEuNjc4LTIuOTkgMi4wMTQtM0wyMiAxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjI5MyA2LjI5MyAyLjU4NiAxMmw1LjcwNyA1LjcwNyAxLjQxNC0xLjQxNEw1LjQxNCAxMmw0LjI5My00LjI5M3ptNy40MTQgMTEuNDE0TDIxLjQxNCAxMmwtNS43MDctNS43MDctMS40MTQgMS40MTRMMTguNTg2IDEybC00LjI5MyA0LjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb2ZmZWVUb2dvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIyaDEwYTEgMSAwIDAgMCAuOTktLjg1OEwxOS44NjcgOEgyMVY2aC0xLjM4MmwtMS43MjQtMy40NDdBLjk5OC45OTggMCAwIDAgMTcgMkg3Yy0uMzc5IDAtLjcyNS4yMTQtLjg5NS41NTNMNC4zODIgNkgzdjJoMS4xMzNMNi4wMSAyMS4xNDJBMSAxIDAgMCAwIDcgMjJ6bTEwLjQxOC0xMUg2LjU4MmwtLjQyOS0zaDExLjY5M2wtLjQyOCAzem0tOS41NTEgOS0uNDI5LTNoOS4xMjNsLS40MjkgM0g3Ljg2N3pNNy42MTggNGg4Ljc2NGwxIDJINi42MThsMS0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvZmZlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyaDJ2M0g1em00IDBoMnYzSDl6bTQgMGgydjNoLTJ6bTYgN2gtMlY3SDN2MTFjMCAxLjY1NCAxLjM0NiAzIDMgM2g4YzEuNjU0IDAgMy0xLjM0NiAzLTNoMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTVjMC0xLjEwMy0uODk3LTItMi0yem0tNCA5YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjloMTB2OXptMi0ydi01aDJsLjAwMiA1SDE3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTAtNmMxLjA4NCAwIDIgLjkxNiAyIDJzLS45MTYgMi0yIDItMi0uOTE2LTItMiAuOTE2LTIgMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuODQ1IDE2LjEzNiAxIDEuNzNjLjUzMS45MTcgMS44MDkgMS4yNjEgMi43My43M2wuNTI5LS4zMDZBOC4xIDguMSAwIDAgMCA5IDE5LjQwMlYyMGMwIDEuMTAzLjg5NyAyIDIgMmgyYzEuMTAzIDAgMi0uODk3IDItMnYtLjU5OGE4LjEzMiA4LjEzMiAwIDAgMCAxLjg5Ni0xLjExMWwuNTI5LjMwNmMuOTIzLjUzIDIuMTk4LjE4OCAyLjczMS0uNzMxbC45OTktMS43MjlhMi4wMDEgMi4wMDEgMCAwIDAtLjczMS0yLjczMmwtLjUwNS0uMjkyYTcuNzE4IDcuNzE4IDAgMCAwIDAtMi4yMjRsLjUwNS0uMjkyYTIuMDAyIDIuMDAyIDAgMCAwIC43MzEtMi43MzJsLS45OTktMS43MjljLS41MzEtLjkyLTEuODA4LTEuMjY1LTIuNzMxLS43MzJsLS41MjkuMzA2QTguMSA4LjEgMCAwIDAgMTUgNC41OThWNGMwLTEuMTAzLS44OTctMi0yLTJoLTJjLTEuMTAzIDAtMiAuODk3LTIgMnYuNTk4YTguMTMyIDguMTMyIDAgMCAwLTEuODk2IDEuMTExbC0uNTI5LS4zMDZjLS45MjQtLjUzMS0yLjItLjE4Ny0yLjczMS43MzJsLS45OTkgMS43MjlhMi4wMDEgMi4wMDEgMCAwIDAgLjczMSAyLjczMmwuNTA1LjI5MmE3LjY4MyA3LjY4MyAwIDAgMCAwIDIuMjIzbC0uNTA1LjI5MmEyLjAwMyAyLjAwMyAwIDAgMC0uNzMxIDIuNzMzem0zLjMyNi0yLjc1OEE1LjcwMyA1LjcwMyAwIDAgMSA2IDEyYzAtLjQ2Mi4wNTgtLjkyNi4xNy0xLjM3OGEuOTk5Ljk5OSAwIDAgMC0uNDctMS4xMDhsLTEuMTIzLS42NS45OTgtMS43MjkgMS4xNDUuNjYyYS45OTcuOTk3IDAgMCAwIDEuMTg4LS4xNDIgNi4wNzEgNi4wNzEgMCAwIDEgMi4zODQtMS4zOTlBMSAxIDAgMCAwIDExIDUuM1Y0aDJ2MS4zYTEgMSAwIDAgMCAuNzA4Ljk1NiA2LjA4MyA2LjA4MyAwIDAgMSAyLjM4NCAxLjM5OS45OTkuOTk5IDAgMCAwIDEuMTg4LjE0MmwxLjE0NC0uNjYxIDEgMS43MjktMS4xMjQuNjQ5YTEgMSAwIDAgMC0uNDcgMS4xMDhjLjExMi40NTIuMTcuOTE2LjE3IDEuMzc4IDAgLjQ2MS0uMDU4LjkyNS0uMTcxIDEuMzc4YTEgMSAwIDAgMCAuNDcxIDEuMTA4bDEuMTIzLjY0OS0uOTk4IDEuNzI5LTEuMTQ1LS42NjFhLjk5Ni45OTYgMCAwIDAtMS4xODguMTQyIDYuMDcxIDYuMDcxIDAgMCAxLTIuMzg0IDEuMzk5QTEgMSAwIDAgMCAxMyAxOC43bC4wMDIgMS4zSDExdi0xLjNhMSAxIDAgMCAwLS43MDgtLjk1NiA2LjA4MyA2LjA4MyAwIDAgMS0yLjM4NC0xLjM5OS45OTIuOTkyIDAgMCAwLTEuMTg4LS4xNDFsLTEuMTQ0LjY2Mi0xLTEuNzI5IDEuMTI0LS42NTFhMSAxIDAgMCAwIC40NzEtMS4xMDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29pblN0YWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMzLjk3NiAwIDgtMS4zNzQgOC00VjZjMC0yLjYyNi00LjAyNC00LTgtNFM0IDMuMzc0IDQgNnYxMmMwIDIuNjI2IDQuMDI0IDQgOCA0em0wLTJjLTMuNzIyIDAtNi0xLjI5NS02LTJ2LTEuMjY4QzcuNTQxIDE3LjU3IDkuNzc3IDE4IDEyIDE4czQuNDU5LS40MyA2LTEuMjY4VjE4YzAgLjcwNS0yLjI3OCAyLTYgMnptMC0xNmMzLjcyMiAwIDYgMS4yOTUgNiAycy0yLjI3OCAyLTYgMi02LTEuMjk1LTYtMiAyLjI3OC0yIDYtMnpNNiA4LjczMkM3LjU0MSA5LjU3IDkuNzc3IDEwIDEyIDEwczQuNDU5LS40MyA2LTEuMjY4VjEwYzAgLjcwNS0yLjI3OCAyLTYgMnMtNi0xLjI5NS02LTJWOC43MzJ6bTAgNEM3LjU0MSAxMy41NyA5Ljc3NyAxNCAxMiAxNHM0LjQ1OS0uNDMgNi0xLjI2OFYxNGMwIC43MDUtMi4yNzggMi02IDJzLTYtMS4yOTUtNi0ydi0xLjI2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2QzcuMDMgNiAyIDcuNTQ2IDIgMTAuNXY0QzIgMTcuNDU0IDcuMDMgMTkgMTIgMTlzMTAtMS41NDYgMTAtNC41di00QzIyIDcuNTQ2IDE2Ljk3IDYgMTIgNnptLTggOC41di0xLjE5N2E5Ljk4OSA5Ljk4OSAwIDAgMCAyIC44NnYxLjg4MWMtMS4zMTItLjUxNC0yLTEuMTI2LTItMS41NDR6bTEyIC4xNDh2MS45NzFjLS44NjcuMTc5LTEuODY3LjMxLTMgLjM1OHYtMmEyMS43NSAyMS43NSAwIDAgMCAzLS4zMjl6bS01IDIuMzNhMTguNzg4IDE4Ljc4OCAwIDAgMS0zLS4zNTh2LTEuOTcxYy45NTkuMTc0IDEuOTcyLjI4NyAzIC4zM3YxLjk5OXptNy0uOTM0di0xLjg4MWE5LjkzMSA5LjkzMSAwIDAgMCAyLS44NlYxNC41YzAgLjQxOC0uNjg3IDEuMDMtMiAxLjU0NHpNMTIgMTNjLTUuMTc3IDAtOC0xLjY1MS04LTIuNVM2LjgyMyA4IDEyIDhzOCAxLjY1MSA4IDIuNS0yLjgyMyAyLjUtOCAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29sbGFwc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjEyMSA2LjQ2NSAxNCA0LjM0NFYxMGg1LjY1NmwtMi4xMjEtMi4xMjEgMy4xNzItMy4xNzItMS40MTQtMS40MTR6TTQuNzA3IDMuMjkzIDMuMjkzIDQuNzA3bDMuMTcyIDMuMTcyTDQuMzQ0IDEwSDEwVjQuMzQ0TDcuODc5IDYuNDY1ek0xOS42NTYgMTRIMTR2NS42NTZsMi4xMjEtMi4xMjEgMy4xNzIgMy4xNzIgMS40MTQtMS40MTQtMy4xNzItMy4xNzJ6TTYuNDY1IDE2LjEyMWwtMy4xNzIgMy4xNzIgMS40MTQgMS40MTQgMy4xNzItMy4xNzJMMTAgMTkuNjU2VjE0SDQuMzQ0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbGxlY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEwSDVjLTEuMTAzIDAtMiAuODk3LTIgMnY4YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMnYtOGMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMjB2LThoMTRsLjAwMiA4SDV6TTUgNmgxNHYySDV6bTItNGgxMHYySDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29sb3JGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMy45OThjLS4wOTIuMDY1LTIgMi4wODMtMiAzLjUgMCAxLjQ5NC45NDkgMi40NDggMiAyLjUuOTA2LjA0NCAyLS44OTEgMi0yLjUgMC0xLjUtMS45MDgtMy40MzUtMi0zLjV6bS0xNi41ODYtMWMwIC41MzQuMjA4IDEuMDM2LjU4NiAxLjQxNGw1LjU4NiA1LjU4NmMuMzc4LjM3OC44OC41ODYgMS40MTQuNTg2czEuMDM2LS4yMDggMS40MTQtLjU4Nmw3LTctLjcwNy0uNzA3TDExIDQuNTg0IDguNzA3IDIuMjkxIDcuMjkzIDMuNzA1bDIuMjkzIDIuMjkzTDQgMTEuNTg0Yy0uMzc4LjM3OC0uNTg2Ljg4LS41ODYgMS40MTR6TTExIDcuNDEybDUuNTg2IDUuNTg2TDExIDE4LjU4NGguMDAxbC0uMDAxIDF2LTFsLTUuNTg2LTUuNTg2TDExIDcuNDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbHVtbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljg5MyAzLjAwMUg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTUuODkzYzEuMTAzIDAgMi0uODk3IDItMlY1YTIuMDAzIDIuMDAzIDAgMCAwLTItMS45OTl6TTggMTkuMDAxSDRWOGg0djExLjAwMXptNiAwaC00VjhoNHYxMS4wMDF6bTIgMFY4aDMuODkzbC4wMDEgMTEuMDAxSDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbW1hbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDRhNC4wMDMgNC4wMDMgMCAwIDAgMy45OTgtMy45OEgxMFYxNmg0djIuMDM5aC4wMDRBNC4wMDIgNC4wMDIgMCAwIDAgMTggMjJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTRoLTJ2LTRoMmMyLjIwNiAwIDQtMS43OTQgNC00cy0xLjc5NC00LTQtNC00IDEuNzk0LTQgNHYyaC00VjUuOThoLS4wMDJBNC4wMDMgNC4wMDMgMCAwIDAgNiAyQzMuNzk0IDIgMiAzLjc5NCAyIDZzMS43OTQgNCA0IDRoMnY0SDZ6bTIgNGMwIDEuMTIyLS44NzkgMi0yIDJzLTItLjg3OC0yLTIgLjg3OS0yIDItMmgydjJ6bTEwLTJjMS4xMjEgMCAyIC44NzggMiAycy0uODc5IDItMiAyLTItLjg3OC0yLTJ2LTJoMnpNMTYgNmMwLTEuMTIyLjg3OS0yIDItMnMyIC44NzggMiAyLS44NzkgMi0yIDJoLTJWNnpNNiA4Yy0xLjEyMSAwLTItLjg3OC0yLTJzLjg3OS0yIDItMiAyIC44NzggMiAydjJINnptNCAyaDR2NGgtNHYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb21tZW50QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNGgydi0zaDNWOWgtM1Y2aC0ydjNIOHYyaDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MThsNS4zMzMtNEgyMGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bTAgMTRINi42NjdMNCAxOFY0aDE2djEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbW1lbnRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMjA3IDguMjA3LTEuNDE0LTEuNDE0TDExIDExLjU4NiA4LjcwNyA5LjI5M2wtMS40MTQgMS40MTRMMTEgMTQuNDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xMDMgMC0yIC44OTctMiAydjE4bDUuMzMzLTRIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0SDYuNjY3TDQgMThWNGgxNnYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb21tZW50RGV0YWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoMTB2Mkg3em0wIDRoN3YySDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MThsNS4zMzMtNEgyMGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bTAgMTRINi42NjdMNCAxOFY0aDE2djEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbW1lbnREb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxOGw1LjMzMy00SDIwYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNEg2LjY2N0w0IDE4VjRoMTZ2MTJ6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjJcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb21tZW50RWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuNzcxIDkuMTIzLTEuMzk5LTEuMzk4LTMuODY5IDMuODY0djEuMzk4aDEuMzk4ek0xNC4wOTggNmwxLjM5OCAxLjM5OC0xLjA2NyAxLjA2Ny0xLjM5OC0xLjM5OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxOGw1LjMzMy00SDIwYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNEg2LjY2N0w0IDE4VjRoMTZ2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29tbWVudEVycm9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2aDJ2NWgtMnptMCA2aDJ2MmgtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxOGw1LjMzMy00SDIwYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNEg2LjY2N0w0IDE4VjRoMTZ2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29tbWVudE1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDloOHYySDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MThsNS4zMzMtNEgyMGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bTAgMTRINi42NjdMNCAxOFY0aDE2djEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbW1lbnRYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjcwNyAxMy43MDcgMTIgMTEuNDE0bDIuMjkzIDIuMjkzIDEuNDE0LTEuNDE0TDEzLjQxNCAxMGwyLjI5My0yLjI5My0xLjQxNC0xLjQxNEwxMiA4LjU4NiA5LjcwNyA2LjI5MyA4LjI5MyA3LjcwNyAxMC41ODYgMTBsLTIuMjkzIDIuMjkzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xMDMgMC0yIC44OTctMiAydjE4bDUuMzMzLTRIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0SDYuNjY3TDQgMThWNGgxNnYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxOGw1LjMzMy00SDIwYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNEg2LjY2N0w0IDE4VjRoMTZ2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29tcGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggMTYgNS45OTEtMkwxNiA4bC02IDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29uZnVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNDkzXCIsXCJjeVwiOlwiMTAuNDkzXCIsXCJyXCI6XCIxLjQ5M1wifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguMTI0IDE2Ljk5Mi0uMjQ4LTEuOTg0IDgtMSAuMjQ4IDEuOTg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvbnZlcnNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTRoLjVjLjgyNyAwIDEuNS0uNjczIDEuNS0xLjV2LTljMC0uODI3LS42NzMtMS41LTEuNS0xLjVoLTEzQzIuNjczIDIgMiAyLjY3MyAyIDMuNVYxOGw1LjMzMy00SDE2em0tOS4zMzMtMkw0IDE0VjRoMTJ2OEg2LjY2N3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC41IDhIMjB2Ni4wMDFjMCAxLjEtLjg5MyAxLjk5My0xLjk5IDEuOTk5SDh2LjVjMCAuODI3LjY3MyAxLjUgMS41IDEuNWg3LjE2N0wyMiAyMlY5LjVjMC0uODI3LS42NzMtMS41LTEuNS0xLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29va2llIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS41OTggMTEuMDY0YTEuMDA2IDEuMDA2IDAgMCAwLS44NTQtLjE3MkEyLjkzOCAyLjkzOCAwIDAgMSAyMCAxMWMtMS42NTQgMC0zLTEuMzQ2LTMuMDAzLTIuOTM3LjAwNS0uMDM0LjAxNi0uMTM2LjAxNy0uMTdhLjk5OC45OTggMCAwIDAtMS4yNTQtMS4wMDZBMi45NjMgMi45NjMgMCAwIDEgMTUgN2MtMS42NTQgMC0zLTEuMzQ2LTMtMyAwLS4yMTcuMDMxLS40NDQuMDk5LS43MTZhMSAxIDAgMCAwLTEuMDY3LTEuMjM2QTkuOTU2IDkuOTU2IDAgMCAwIDIgMTJjMCA1LjUxNCA0LjQ4NiAxMCAxMCAxMHMxMC00LjQ4NiAxMC0xMGMwLS4wNDktLjAwMy0uMDk3LS4wMDctLjE2YTEuMDA0IDEuMDA0IDAgMCAwLS4zOTUtLjc3NnpNMTIgMjBjLTQuNDExIDAtOC0zLjU4OS04LThhNy45NjIgNy45NjIgMCAwIDEgNi4wMDYtNy43NUE1LjAwNiA1LjAwNiAwIDAgMCAxNSA5bC4xMDEtLjAwMWE1LjAwNyA1LjAwNyAwIDAgMCA0LjgzNyA0QzE5LjQ0NCAxNi45NDEgMTYuMDczIDIwIDEyIDIwelwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTIuNVwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjEyLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTAuNVwiLFwiY3lcIjpcIjE2LjVcIixcInJcIjpcIjEuNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjY4MyAxNC44MjhhNC4wNTUgNC4wNTUgMCAwIDEtMS4yNzIuODU4IDQuMDAyIDQuMDAyIDAgMCAxLTQuODc1LTEuNDVsLTEuNjU4IDEuMTE5YTYuMDYzIDYuMDYzIDAgMCAwIDEuNjIxIDEuNjIgNS45NjMgNS45NjMgMCAwIDAgMi4xNDguOTAzIDYuMDM1IDYuMDM1IDAgMCAwIDMuNTQyLS4zNSA2LjA0OCA2LjA0OCAwIDAgMCAxLjkwNy0xLjI4NGMuMjcyLS4yNzEuNTItLjU3MS43MzQtLjg4OWwtMS42NTgtMS4xMTlhNC4xNDcgNC4xNDcgMCAwIDEtLjQ4OS41OTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDJjMi45NTMgMCA1LjUzMSAxLjYxMyA2LjkxOCA0SDUuMDgyQzYuNDY5IDUuNjEzIDkuMDQ3IDQgMTIgNHptMCAxNmMtNC40MTEgMC04LTMuNTg5LTgtOCAwLS42OTEuMDk4LTEuMzU5LjI2NC0ySDV2MWEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMmgyYTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi0xaC43MzZjLjE2Ni42NDEuMjY0IDEuMzA5LjI2NCAyIDAgNC40MTEtMy41ODkgOC04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ29weUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkgxMGMtMS4xMDMgMC0yIC44OTctMiAydjRINGMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDEwYzEuMTAzIDAgMi0uODk3IDItMnYtNGg0YzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAyMFYxMGgxMGwuMDAyIDEwSDR6bTE2LTZoLTR2LTRjMC0xLjEwMy0uODk3LTItMi0yaC00VjRoMTB2MTB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMmg2djJINnptMCA0aDZ2Mkg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIMTBjLTEuMTAzIDAtMiAuODk3LTIgMnY0SDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMGMwIDEuMTAzLjg5NyAyIDIgMmgxMGMxLjEwMyAwIDItLjg5NyAyLTJ2LTRoNGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6TTQgMjBWMTBoMTBsLjAwMiAxMEg0em0xNi02aC00di00YzAtMS4xMDMtLjg5Ny0yLTItMmgtNFY0aDEwdjEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNvcHlyaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjNS40MjEgMCAxMC00LjU3OSAxMC0xMFMxNy40MjEgMiAxMiAyIDIgNi41NzkgMiAxMnM0LjU3OSAxMCAxMCAxMHptMC0xOGM0LjMzNyAwIDggMy42NjMgOCA4cy0zLjY2MyA4LTggOC04LTMuNjYzLTgtOCAzLjY2My04IDgtOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MuOTAxIDAgMi41ODEtLjE2OCAzLjcwNy0xLjI5MmwtMS40MTQtMS40MTZDMTMuODUgMTQuNzM1IDEyLjk5MiAxNSAxMiAxNWMtMS42MjYgMC0zLTEuMzc0LTMtM3MxLjM3NC0zIDMtM2MuOTkzIDAgMS44NTEuMjY1IDIuMjkzLjcwN2wxLjQxNC0xLjQxNEMxNC41ODIgNy4xNjggMTIuOTAxIDcgMTIgN2MtMi43NTcgMC01IDIuMjQzLTUgNXMyLjI0MyA1IDUgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDcmVkaXRDYXJkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIyLjVcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMy41YzAtLjgxNS4zOTYtMS41MzIgMS0xLjk4OEEyLjQ3IDIuNDcgMCAwIDAgMTEuNSAxMWEyLjUgMi41IDAgMSAwIDAgNSAyLjQ3IDIuNDcgMCAwIDAgMS41LS41MTIgMi40ODYgMi40ODYgMCAwIDEtMS0xLjk4OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6TTQgMThWNmgxNmwuMDAyIDEySDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ3JlZGl0Q2FyZEZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6TTQgMThWNmgxNmwuMDAxIDEySDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDExaDNhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgLjUuNXpNNiAxNGg2djIuMDAxSDZ6bTcgMGg1djIuMDAxaC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY2YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCA2aDE2djJINFY2em0wIDEydi02aDE2LjAwMWwuMDAxIDZINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE0aDZ2Mkg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUNyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdjMC0xLjEwMy0uODk3LTItMi0ySDdWMkg1djNIMnYyaDE1djE1aDJ2LTNoM3YtMmgtM1Y3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgOXY4YzAgMS4xMDMuODk3IDIgMiAyaDh2LTJIN1Y5SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ3Jvc3NoYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTEgMTcuOTMxVjE3aC0ydjIuOTMxQTguMDA4IDguMDA4IDAgMCAxIDQuMDY5IDEzSDd2LTJINC4wNjlBOC4wMDggOC4wMDggMCAwIDEgMTEgNC4wNjlWN2gyVjQuMDY5QTguMDA3IDguMDA3IDAgMCAxIDE5LjkzMSAxMUgxN3YyaDIuOTMxQTguMDA4IDguMDA4IDAgMCAxIDEzIDE5LjkzMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDcm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjE5IDMuMzc1IDggNy4zOTkgNC43ODEgMy4zNzVBMS4wMDIgMS4wMDIgMCAwIDAgMyA0djE1YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY0YTEuMDAyIDEuMDAyIDAgMCAwLTEuNzgxLS42MjVMMTYgNy4zOTlsLTMuMjE5LTQuMDI0Yy0uMzgxLS40NzQtMS4xODEtLjQ3NC0xLjU2MiAwek01IDE5di0yaDE0LjAwMXYySDV6bTEwLjIxOS05LjM3NWMuMzgxLjQ3NSAxLjE4Mi40NzUgMS41NjMgMEwxOSA2Ljg1MSAxOS4wMDEgMTVINVY2Ljg1MWwyLjIxOSAyLjc3NGMuMzgxLjQ3NSAxLjE4Mi40NzUgMS41NjMgMEwxMiA1LjYwMWwzLjIxOSA0LjAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDdWJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44OTUgMy41NTNBMS4wMDEgMS4wMDEgMCAwIDAgMTcgM0g3Yy0uMzc5IDAtLjcyNS4yMTQtLjg5NS41NTNsLTQgOGExIDEgMCAwIDAgMCAuODk1bDQgOGMuMTcuMzM4LjUxNi41NTIuODk1LjU1MmgxMGMuMzc5IDAgLjcyNS0uMjE0Ljg5NS0uNTUzbDQtOGExIDEgMCAwIDAgMC0uODk1bC00LTcuOTk5ek0xOS4zODIgMTFoLTcuNzY0bC0zLTZoNy43NjRsMyA2ek00LjExOCAxMiA3IDYuMjM2IDkuODgyIDEyIDcgMTcuNzY0IDQuMTE4IDEyem0xMi4yNjQgN0g4LjYxOGwzLTZoNy43NjRsLTMgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDdWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MDYgNi4wODYtOS00YTEuMDAxIDEuMDAxIDAgMCAwLS44MTMgMGwtOSA0Yy0uMDIuMDA5LS4wMzQuMDI0LS4wNTQuMDM1LS4wMjguMDE0LS4wNTguMDIzLS4wODQuMDQtLjAyMi4wMTUtLjAzOS4wMzQtLjA2LjA1YS44Ny44NyAwIDAgMC0uMTkuMTk0Yy0uMDIuMDI4LS4wNDEuMDUzLS4wNTkuMDgxYTEuMTE5IDEuMTE5IDAgMCAwLS4wNzYuMTY1Yy0uMDA5LjAyNy0uMDIzLjA1Mi0uMDMxLjA3OUExLjAxMyAxLjAxMyAwIDAgMCAyIDd2MTBjMCAuMzk2LjIzMi43NTMuNTk0LjkxNGw5IDRjLjEzLjA1OC4yNjguMDg2LjQwNi4wODZhLjk5Ny45OTcgMCAwIDAgLjQwMi0uMDk2bC4wMDQuMDEgOS00QS45OTkuOTk5IDAgMCAwIDIyIDE3VjdhLjk5OS45OTkgMCAwIDAtLjU5NC0uOTE0ek0xMiA0LjA5NSAxOC41MzggNyAxMiA5LjkwNWwtMS4zMDgtLjU4MUw1LjQ2MyA3IDEyIDQuMDk1ek00IDE2LjM1MVY4LjUzOWw3IDMuMTExdjcuODExbC03LTMuMTF6bTkgMy4xMVYxMS42NWw3LTMuMTExdjcuODEybC03IDMuMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ3Vib2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi43MDcgMi4yOTNBLjk5Ni45OTYgMCAwIDAgMTYgMkg4Yy0uNDE0IDAtLjc4NS4yNTUtLjkzNC42NDFsLTUgMTNhLjk5OS45OTkgMCAwIDAgLjIyNyAxLjA2Nmw1IDVBLjk5Ni45OTYgMCAwIDAgOCAyMmg4Yy40MTQgMCAuNzg1LS4yNTUuOTM0LS42NDFsNS0xM2EuOTk5Ljk5OSAwIDAgMC0uMjI3LTEuMDY2bC01LTV6TTE4LjU4NSA3aC01LjE3MWwtMy0zaDUuMTcybDIuOTk5IDN6TTguMzgxIDQuNzk1bDMuNDM4IDMuNDM4LTQuNDYyIDEwLjcxLTMuMTktMy4xOTFMOC4zODEgNC43OTV6TTE1LjMxMyAyMGgtNi4yM2w0LjU4My0xMWg1Ljg3OGwtNC4yMzEgMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ3VycmVudExvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjRcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA0LjA2OVYyaC0ydjIuMDY5QTguMDEgOC4wMSAwIDAgMCA0LjA2OSAxMUgydjJoMi4wNjlBOC4wMDggOC4wMDggMCAwIDAgMTEgMTkuOTMxVjIyaDJ2LTIuMDY5QTguMDA3IDguMDA3IDAgMCAwIDE5LjkzMSAxM0gyMnYtMmgtMi4wNjlBOC4wMDggOC4wMDggMCAwIDAgMTMgNC4wNjl6TTEyIDE4Yy0zLjMwOSAwLTYtMi42OTEtNi02czIuNjkxLTYgNi02IDYgMi42OTEgNiA2LTIuNjkxIDYtNiA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUN1c3RvbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMWg2YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDF6bTEtNmg0djRINVY1em0xNS0yaC02YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTF6bS0xIDZoLTRWNWg0djR6bS05IDEyYTEgMSAwIDAgMCAxLTF2LTZhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDZ6bS01LTZoNHY0SDV2LTR6bTEzLTFoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2LTJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpQ3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2LjVDMTAgNC41NyA4LjQzIDMgNi41IDNTMyA0LjU3IDMgNi41IDQuNTcgMTAgNi41IDEwYTMuNDUgMy40NSAwIDAgMCAxLjYxMy0uNDEzbDIuMzU3IDIuNTI4LTIuMzE4IDIuMzE4QTMuNDYgMy40NiAwIDAgMCA2LjUgMTRDNC41NyAxNCAzIDE1LjU3IDMgMTcuNVM0LjU3IDIxIDYuNSAyMXMzLjUtMS41NyAzLjUtMy41YzAtLjYwMS0uMTY2LTEuMTU4LS40MzQtMS42NTJsMi4yNjktMi4yNjhMMTcgMTkuMTIxYTMgMyAwIDAgMCAyLjEyMS44NzlIMjJMOS4zNSA4LjUxOGMuNDA2LS41NzIuNjUtMS4yNjUuNjUtMi4wMTh6TTYuNSA4QzUuNjczIDggNSA3LjMyNyA1IDYuNVM1LjY3MyA1IDYuNSA1IDggNS42NzMgOCA2LjUgNy4zMjcgOCA2LjUgOHptMCAxMWMtLjgyNyAwLTEuNS0uNjczLTEuNS0xLjVTNS42NzMgMTYgNi41IDE2czEuNS42NzMgMS41IDEuNVM3LjMyNyAxOSA2LjUgMTl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgNC44NzktMy43MDcgNC40MTQgMS40MTQgMS40MTRMMjIgNGgtMi44NzlBMyAzIDAgMCAwIDE3IDQuODc5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUN5Y2xpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1LjQxNFYyMGgydi00LjU4NmMwLS41MjYtLjIxNC0xLjA0Mi0uNTg2LTEuNDE0bC0yLTJMMTMgOS40MTRsMiAyYy4zNzIuMzcyLjg4OC41ODYgMS40MTQuNTg2SDIwdi0yaC0zLjU4NmwtMy43MDctMy43MDdhLjk5OS45OTkgMCAwIDAtMS40MTQgMEw4IDkuNTg2Yy0uMzc4LjM3OC0uNTg2Ljg4LS41ODYgMS40MTRzLjIwOCAxLjAzNi41ODYgMS40MTRsMyAzelwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCI1XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTIgMiAuODk3IDIgMi0uODk3IDItMiAyek02IDIyYzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlDeWxpbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjNS4xMzEgMCA5LTEuOTM1IDktNC41VjdoLS4wNTNjLjAzMy0uMTY0LjA1My0uMzMuMDUzLS41QzIxIDMuOTM1IDE3LjEzMSAyIDEyIDIgNy4yMDkgMiAzLjUyIDMuNjg4IDMuMDUzIDZIM3YxMS41YzAgMi41NjUgMy44NjkgNC41IDkgNC41em0wLTJjLTQuMjczIDAtNy0xLjQ4LTctMi41VjkuMzk0QzYuNjIzIDEwLjM4NyA5LjExMSAxMSAxMiAxMXM1LjM3Ny0uNjEzIDctMS42MDZWMTcuNWMwIDEuMDItMi43MjcgMi41LTcgMi41em0wLTE2YzQuMjczIDAgNyAxLjQ4IDcgMi41UzE2LjI3MyA5IDEyIDkgNSA3LjUyIDUgNi41IDcuNzI3IDQgMTIgNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxN1Y3YzAtMi4xNjgtMy42NjMtNC04LTRTNCA0LjgzMiA0IDd2MTBjMCAyLjE2OCAzLjY2MyA0IDggNHM4LTEuODMyIDgtNHpNMTIgNWMzLjY5MSAwIDUuOTMxIDEuNTA3IDYgMS45OTRDMTcuOTMxIDcuNDkzIDE1LjY5MSA5IDEyIDlTNi4wNjkgNy40OTMgNiA3LjAwNkM2LjA2OSA2LjUwNyA4LjMwOSA1IDEyIDV6TTYgOS42MDdDNy40NzkgMTAuNDU0IDkuNjM3IDExIDEyIDExczQuNTIxLS41NDYgNi0xLjM5M3YyLjM4N2MtLjA2OS40OTktMi4zMDkgMi4wMDYtNiAyLjAwNnMtNS45MzEtMS41MDctNi0yVjkuNjA3ek02IDE3di0yLjM5M0M3LjQ3OSAxNS40NTQgOS42MzcgMTYgMTIgMTZzNC41MjEtLjU0NiA2LTEuMzkzdjIuMzg3Yy0uMDY5LjQ5OS0yLjMwOSAyLjAwNi02IDIuMDA2cy01LjkzMS0xLjUwNy02LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRGVza3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTFjMCAxLjEwMy44OTcgMiAyIDJoN3YySDh2Mmg4di0yaC0zdi0yaDdjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek00IDE0VjVoMTZsLjAwMiA5SDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRGV0YWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTQgMTlWNWgxNmwuMDAyIDE0SDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA3aDEydjJINnptMCA0aDEydjJINnptMCA0aDZ2Mkg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURldmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNIN2MtMS4xMDMgMC0yIC44OTctMiAydjJINGMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDZjMS4xMDMgMCAyLS44OTcgMi0yaDhjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek05Ljk5NyAxOUg0VjloNmwtLjAwMyAxMHptMTAtMkgxMlY5YzAtMS4xMDMtLjg5Ny0yLTItMkg3VjVoMTNsLS4wMDMgMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRGlhbHBhZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURpYWxwYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNoNHYzaC00em0wIDVoNHYzaC00em0wIDVoNHYzaC00em02LTEwaDR2M2gtNHptMCA1aDR2M2gtNHptMCA1aDR2M2gtNHpNNCAzaDR2M0g0em0wIDVoNHYzSDR6bTAgNWg0djNINHptNiA1aDR2M2gtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEaWFtb25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44MTMgMy44MzhBMiAyIDAgMCAwIDE2LjE4NyAzSDcuODEzYy0uNjQ0IDAtMS4yNTIuMzEzLTEuNjY3Ljg5OWwtNCA2LjU4MWEuOTk5Ljk5OSAwIDAgMCAuMTExIDEuMTg4bDkgMTBhLjk5NS45OTUgMCAwIDAgMS40ODYuMDAxbDktMTBhLjk5Ny45OTcgMCAwIDAgLjExMS0xLjE4OGwtNC4wNDEtNi42NDN6TTEyIDE5LjUwNSA1LjI0NSAxMmgxMy41MDlMMTIgMTkuNTA1ek00Ljc3NyAxMGwzLjAzNi01IDguMzMyLS4wNjJMMTkuMjIyIDEwSDQuNzc3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURpY2UxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTlWNWgxNGwuMDAyIDE0SDV6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEaWNlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek01IDE5VjVoMTRsLjAwMiAxNEg1elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOS41XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEaWNlMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek01IDE5VjVoMTRsLjAwMiAxNEg1elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEaWNlNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek01IDE5VjVoMTRsLjAwMiAxNEg1elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCI4XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEaWNlNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek01IDE5VjVoMTRsLjAwMiAxNEg1elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjEuNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURpY2U2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTlWNWgxNGwuMDAyIDE0SDV6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjEuNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURpcmVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjc4MSAxMy44NzUtMi0yLjVBMSAxIDAgMCAwIDE5IDExaC02VjloNmMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJINWExIDEgMCAwIDAtLjc4MS4zNzVsLTIgMi41YTEuMDAxIDEuMDAxIDAgMCAwIDAgMS4yNWwyIDIuNUExIDEgMCAwIDAgNSA5aDZ2Mkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2M2MwIDEuMTAzLjg5NyAyIDIgMmg2djRoMnYtNGg2YTEgMSAwIDAgMCAuNzgxLS4zNzVsMi0yLjVhMS4wMDEgMS4wMDEgMCAwIDAgMC0xLjI1ek00LjI4MSA1LjUgNS40OCA0SDE5bC4wMDIgM0g1LjQ4TDQuMjgxIDUuNXpNMTguNTIgMTZINXYtM2gxMy41MmwxLjIgMS41LTEuMiAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRGlzYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMEExMCAxMCAwIDAgMCAxMiAyem0wIDE4YTggOCAwIDEgMSA4LTggOCA4IDAgMCAxLTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4YTQgNCAwIDEgMCA0IDQgNCA0IDAgMCAwLTQtNHptMCA2YTIgMiAwIDEgMSAyLTIgMiAyIDAgMCAxLTIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNWMwLTQuNjI1LTMuNTA3LTguNDQxLTgtOC45NDFWNGgtMnYyLjA1OWMtNC40OTMuNS04IDQuMzE2LTggOC45NDF2MmgxOHYtMnpNNSAxNWMwLTMuODU5IDMuMTQxLTcgNy03czcgMy4xNDEgNyA3SDV6bS0zIDNoMjB2MkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURpc2xpa2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINi42OTNBMi4wMSAyLjAxIDAgMCAwIDQuODIgNC4yOThsLTIuNzU3IDcuMzUxQTEgMSAwIDAgMCAyIDEydjJjMCAxLjEwMy44OTcgMiAyIDJoNS42MTJMOC40OSAxOS4zNjdhMi4wMDQgMi4wMDQgMCAwIDAgLjI3NCAxLjgwMmMuMzc2LjUyLjk4Mi44MzEgMS42MjQuODMxSDEyYy4yOTcgMCAuNTc4LS4xMzIuNzY5LS4zNmw0LjctNS42NEgyMGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6bS04LjQ2OSAxN2gtMS4xNDVsMS41NjItNC42ODRBMSAxIDAgMCAwIDExIDE0SDR2LTEuODE5TDYuNjkzIDVIMTZ2OS42MzhMMTEuNTMxIDIwek0xOCAxNFY1aDJsLjAwMSA5SDE4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURpenp5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNzA3IDEyLjI5MyA5LjQxNCAxMWwxLjI5My0xLjI5My0xLjQxNC0xLjQxNEw4IDkuNTg2IDYuNzA3IDguMjkzIDUuMjkzIDkuNzA3IDYuNTg2IDExbC0xLjI5MyAxLjI5MyAxLjQxNCAxLjQxNEw4IDEyLjQxNGwxLjI5MyAxLjI5M3ptNi41ODYtNEwxNiA5LjU4NmwtMS4yOTMtMS4yOTMtMS40MTQgMS40MTRMMTQuNTg2IDExbC0xLjI5MyAxLjI5MyAxLjQxNCAxLjQxNEwxNiAxMi40MTRsMS4yOTMgMS4yOTMgMS40MTQtMS40MTRMMTcuNDE0IDExbDEuMjkzLTEuMjkzek0xMCAxNmg0djJoLTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG5hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43OTQgMTEuMDljLjMzMi0uMjYzLjY0OC0uNTQyLjk0Ny0uODRsLjEzNi0uMTQyYy4yODMtLjI5My41NTItLjU5OC44MDEtLjkxOWwuMDYyLS4wNzVjLjI1NS0uMzM1LjQ4Ni0uNjg4LjcwMi0xLjA0OWwuMTI4LS4yMmMuMjA1LS4zNjQuMzk1LS43MzcuNTU5LTEuMTIzLjAyLS4wNDcuMDM1LS4wOTUuMDU1LS4xNDIuMTQ3LS4zNjEuMjc0LS43MzEuMzgzLTEuMTA5LjAyMS0uMDcuMDQ0LS4xNC4wNjMtLjIxMS4xMDctLjQwMi4xODktLjgxMy4yNTEtMS4yMjkuMDEzLS4wODcuMDIxLS4xNzUuMDMyLS4yNjMuMDUxLS40MzIuMDg3LS44NjkuMDg3LTEuMzExVjJoLTJ2LjQ1N2MwIC4xODQtLjAzMS4zNjEtLjA0Mi41NDNINi4wMjJDNi4wMTIgMi44MTkgNiAyLjY0IDYgMi40NTdWMkg0di40NTdjMCA0Ljg3NiAzLjI2OSA5LjIxOCA3Ljk1MiAxMC41NjlsLjAyOC4wMDljMi44ODEuODIzIDUuMDU2IDMuMTQ2IDUuNzY5IDUuOTY1SDYuMjUxbC43OTktMmg3LjYwN2E3LjQxNiA3LjQxNiAwIDAgMC0yLjA2My0yaC00Yy40NDUtLjQyNC45NTYtLjc3NCAxLjQ5MS0xLjA5YTkuOTIyIDkuOTIyIDAgMCAxLTIuMDgtMS4wMTRDNS41NSAxNC44MTIgNCAxNy43NzkgNCAyMS4wMTVWMjNoMnYtMS45ODVMNi4wMDEgMjFoMTEuOTk4bC4wMDEuMDE1VjIzaDJ2LTEuOTg1YzAtMy44My0yLjE1OS03LjMwMy01LjQ0My05LjA3YTExLjEgMTEuMSAwIDAgMCAxLjA3Mi0uNzI5Yy4wNTUtLjA0Mi4xMS0uMDgyLjE2NS0uMTI2em0tMS4xOS0xLjYwNGE4Ljk0NSA4Ljk0NSAwIDAgMS0yLjMyNSAxLjM0OGMtLjA5Mi4wMzYtLjE4NS4wNjgtLjI3OC4xMDJBOC45NSA4Ljk1IDAgMCAxIDguODM2IDloNi4yOTJjLS4xNzEuMTYxLS4zMzIuMzMzLS41MTcuNDhsLS4wMDcuMDA2ek0xNy42MTkgNWMtLjAwNS4wMTYtLjAwNy4wMzMtLjAxMi4wNDlsLS4wNDQuMTUxYTkuMDg5IDkuMDg5IDAgMCAxLS41MTMgMS4yNTJjLS4wOTYuMTktLjIxMy4zNjUtLjMyMS41NDhoLTkuNDhhOS4wNjYgOS4wNjYgMCAwIDEtLjg3MS0yaDExLjI0MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEb2NrQm90dG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDJ2OUg1VjV6TTUgMTl2LTNoMTR2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEb2NrTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMnpNNSA1aDN2MTRINXptNSAxNFY1aDl2MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG9ja1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yek01IDVoOXYxNEg1em0xMSAxNFY1aDN2MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG9ja1RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAydjNINVY1ek01IDE5di05aDE0djl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG9sbGFyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYTEwIDEwIDAgMSAwIDEwIDEwQTEwIDEwIDAgMCAwIDEyIDJ6bTAgMThhOCA4IDAgMSAxIDgtOCA4IDggMCAwIDEtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExYy0yIDAtMi0uNjMtMi0xcy43LTEgMi0xIDEuMzkuNjQgMS40IDFoMkEzIDMgMCAwIDAgMTMgNy4xMlY2aC0ydjEuMDlDOSA3LjQyIDggOC43MSA4IDEwYzAgMS4xMi41MiAzIDQgMyAyIDAgMiAuNjggMiAxcy0uNjIgMS0yIDFjLTEuODQgMC0yLS44Ni0yLTFIOGMwIC45Mi42NiAyLjU1IDMgMi45MlYxOGgydi0xLjA4YzItLjM0IDMtMS42MyAzLTIuOTIgMC0xLjEyLS41Mi0zLTQtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljk5OSA4LjVoMmMwLTIuODM3LTIuNzU1LTQuMTMxLTUtNC40MjlWMmgtMnYyLjA3MWMtMi4yNDUuMjk4LTUgMS41OTItNSA0LjQyOSAwIDIuNzA2IDIuNjY2IDQuMTEzIDUgNC40M3Y0Ljk3Yy0xLjQ0OC0uMjUxLTMtMS4wMjQtMy0yLjRoLTJjMCAyLjU4OSAyLjQyNSA0LjExOSA1IDQuNDM2VjIyaDJ2LTIuMDdjMi4yNDUtLjI5OCA1LTEuNTkzIDUtNC40M3MtMi43NTUtNC4xMzEtNS00LjQyOVY2LjFjMS4zMy4yMzkgMyAuOTQxIDMgMi40em0tOCAwYzAtMS40NTkgMS42Ny0yLjE2MSAzLTIuNHY0Ljc5OWMtMS4zNzEtLjI1My0zLTEuMDAyLTMtMi4zOTl6bTggN2MwIDEuNDU5LTEuNjcgMi4xNjEtMyAyLjR2LTQuOGMxLjMzLjIzOSAzIC45NDEgMyAyLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG9uYXRlQmxvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjFoOS42MmEzLjk5NSAzLjk5NSAwIDAgMCAzLjAzNy0xLjM5N2w1LjEwMi01Ljk1MmExIDEgMCAwIDAtLjQ0Mi0xLjZsLTEuOTY4LS42NTZhMy4wNDMgMy4wNDMgMCAwIDAtMi44MjMuNTAzbC0zLjE4NSAyLjU0Ny0uNjE3LTEuMjM1QTMuOTggMy45OCAwIDAgMCA5LjE0NiAxMUg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NmMwIDEuMTAzLjg5NyAyIDIgMnptMC04aDUuMTQ2Yy43NjMgMCAxLjQ0OC40MjMgMS43ODkgMS4xMDVsLjQ0Ny44OTVIN3YyaDYuMDE0YS45OTYuOTk2IDAgMCAwIC40NDItLjExbC4wMDMtLjAwMS4wMDQtLjAwMmguMDAzbC4wMDItLjAwMWguMDA0bC4wMDEtLjAwMWMuMDExLjAwMy4wMDMtLjAwMS4wMDMtLjAwMS4wMTIgMCAuMDAyLS4wMDEuMDAyLS4wMDFoLjAwMWwuMDAyLS4wMDEuMDAzLS4wMDEuMDAyLS4wMDEuMDAyLS4wMDEuMDAzLS4wMDEuMDAyLS4wMDEuMDAyLS4wMDEuMDAzLS4wMDIuMDAyLS4wMDEuMDAyLS4wMDEuMDAzLS4wMDEuMDAyLS4wMDFoLjAwMWwuMDAyLS4wMDFoLjAwMWwuMDAyLS4wMDEuMDAyLS4wMDFjLjAxMS0uMDAxLjAwMy0uMDAxLjAwMy0uMDAxbC4wMDItLjAwMWEuOTE1LjkxNSAwIDAgMCAuMTEtLjA3OGw0LjE0Ni0zLjMxN2MuMjYxLS4yMDguNjIzLS4yNzMuOTQtLjE2N2wuNTU3LjE4Ni00LjEzMyA0LjgyM2EyLjAyOSAyLjAyOSAwIDAgMS0xLjUyLjY4OEg0di02em05Ljc2MS0xMC42NzRDMTMuMyAyLjgzMiAxMSA1LjQ1NyAxMSA3LjVjMCAxLjkzIDEuNTcgMy41IDMuNSAzLjVTMTggOS40MyAxOCA3LjVjMC0yLjA0My0yLjMtNC42NjgtMi43NjEtNS4xNzQtLjM3OS0uNDE2LTEuMDk5LS40MTYtMS40NzggMHpNMTYgNy41YzAgLjgyNy0uNjczIDEuNS0xLjUgMS41UzEzIDguMzI3IDEzIDcuNWMwLS43MDguNzM4LTEuOTM0IDEuNS0yLjkzNC43NjIgMSAxLjUgMi4yMjYgMS41IDIuOTM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURvbmF0ZUhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIxaDkuNjJhMy45OTUgMy45OTUgMCAwIDAgMy4wMzctMS4zOTdsNS4xMDItNS45NTJhMSAxIDAgMCAwLS40NDItMS42bC0xLjk2OC0uNjU2YTMuMDQzIDMuMDQzIDAgMCAwLTIuODIzLjUwM2wtMy4xODUgMi41NDctLjYxNy0xLjIzNUEzLjk4IDMuOTggMCAwIDAgOS4xNDYgMTFINGMtMS4xMDMgMC0yIC44OTctMiAydjZjMCAxLjEwMy44OTcgMiAyIDJ6bTAtOGg1LjE0NmMuNzYzIDAgMS40NDguNDIzIDEuNzg5IDEuMTA1bC40NDcuODk1SDd2Mmg2LjAxNGEuOTk2Ljk5NiAwIDAgMCAuNDQyLS4xMWwuMDAzLS4wMDEuMDA0LS4wMDJoLjAwM2wuMDAyLS4wMDFoLjAwNGwuMDAxLS4wMDFjLjAwOS4wMDMuMDAzLS4wMDEuMDAzLS4wMDEuMDEgMCAuMDAyLS4wMDEuMDAyLS4wMDFoLjAwMWwuMDAyLS4wMDEuMDAzLS4wMDEuMDAyLS4wMDEuMDAyLS4wMDEuMDAzLS4wMDEuMDAyLS4wMDFjLjAwMyAwIC4wMDEtLjAwMS4wMDItLjAwMWwuMDAzLS4wMDIuMDAyLS4wMDEuMDAyLS4wMDEuMDAzLS4wMDEuMDAyLS4wMDFoLjAwMWwuMDAyLS4wMDFoLjAwMWwuMDAyLS4wMDEuMDAyLS4wMDFjLjAwOS0uMDAxLjAwMy0uMDAxLjAwMy0uMDAxbC4wMDItLjAwMWEuOTE1LjkxNSAwIDAgMCAuMTEtLjA3OGw0LjE0Ni0zLjMxN2MuMjYyLS4yMDguNjIzLS4yNzMuOTQtLjE2N2wuNTU3LjE4Ni00LjEzMyA0LjgyM2EyLjAyOSAyLjAyOSAwIDAgMS0xLjUyLjY4OEg0di02ek0xNiAyaC0uMDE3Yy0uMTYzLjAwMi0xLjAwNi4wMzktMS45ODMuNzA1LS45NTEtLjY0OC0xLjc3NC0uNy0xLjk2OC0uNzA0TDEyLjAwMiAyaC0uMDA0Yy0uODAxIDAtMS41NTUuMzEzLTIuMTE5Ljg3OEM5LjMxMyAzLjQ0NSA5IDQuMTk4IDkgNXMuMzEzIDEuNTU1Ljg2MSAyLjEwNGwzLjQxNCAzLjU4NmExLjAwNiAxLjAwNiAwIDAgMCAxLjQ1LS4wMDFsMy4zOTYtMy41NjhDMTguNjg4IDYuNTU1IDE5IDUuODAyIDE5IDVzLS4zMTMtMS41NTUtLjg3OC0yLjEyMUEyLjk3OCAyLjk3OCAwIDAgMCAxNi4wMDIgMkgxNnptMSAzYzAgLjI2Ny0uMTA0LjUxOC0uMzExLjcyNUwxNCA4LjU1bC0yLjcwNy0yLjg0M0MxMS4xMDQgNS41MTggMTEgNS4yNjcgMTEgNXMuMTA0LS41MTguMjk0LS43MDhBLjk3Ny45NzcgMCAwIDEgMTEuOTc5IDRjLjAyNS4wMDEuNTAyLjAzMiAxLjA2Ny40ODUuMDgxLjA2NS4xNjMuMTM5LjI0Ny4yMjJsLjcwNy43MDcuNzA3LS43MDdjLjA4NC0uMDgzLjE2Ni0uMTU3LjI0Ny0uMjIyLjUyOS0uNDI1Ljk3Ni0uNDc4IDEuMDUyLS40ODRhLjk4Ny45ODcgMCAwIDEgLjcwMS4yOTJjLjE4OS4xODkuMjkzLjQ0LjI5My43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG9vck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjM4NSAyMS43ODhhLjk5Ny45OTcgMCAwIDAgLjg1Ny4xODJsOC0yQS45OTkuOTk5IDAgMCAwIDIwIDE5VjVhMSAxIDAgMCAwLS43NTgtLjk3bC04LTJBMS4wMDMgMS4wMDMgMCAwIDAgMTAgM3YxSDZhMSAxIDAgMCAwLTEgMXYxNGExIDEgMCAwIDAgMSAxaDR2MWMwIC4zMDguMTQyLjU5OS4zODUuNzg4ek0xMiA0LjI4MWw2IDEuNXYxMi40MzhsLTYgMS41VjQuMjgxek03IDE4VjZoM3YxMkg3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjI0MiAxMy4xNTljLjQ0Ni0uMTEyLjc1OC0uNTEyLjc1OC0uOTcxdi0uMzc3YTEgMSAwIDEgMC0yIC4wMDF2LjM3N2ExIDEgMCAwIDAgMS4yNDIuOTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG90c0hvcml6b250YWxSb3VuZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTYgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURvdHNIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMGg0djRoLTR6bTYgMGg0djRoLTR6TTQgMTBoNHY0SDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG90c1ZlcnRpY2FsUm91bmRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDEyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEb3RzVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEwaDR2NGgtNHptMC02aDR2NGgtNHptMCAxMmg0djRoLTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG91Z2hudXRDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem03LjkzMSA5aC0zLjAzMkE1LjAxMyA1LjAxMyAwIDAgMCAxMyA3LjEwMlY0LjA2OUE4LjAwOCA4LjAwOCAwIDAgMSAxOS45MzEgMTF6TTEyIDljMS42NTQgMCAzIDEuMzQ2IDMgM3MtMS4zNDYgMy0zIDMtMy0xLjM0Ni0zLTMgMS4zNDYtMyAzLTN6bTAgMTFjLTQuNDExIDAtOC0zLjU4OS04LTggMC00LjA3MiAzLjA2MS03LjQzNiA3LTcuOTMxdjMuMDMyQTUuMDA5IDUuMDA5IDAgMCAwIDcgMTJjMCAyLjc1NyAyLjI0MyA1IDUgNWE1LjAwNyA1LjAwNyAwIDAgMCA0Ljg5OC00aDMuMDMyYy0uNDk0IDMuOTM5LTMuODU4IDctNy45MyA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURvd25BcnJvd0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguNzA3IDEyLjcwNy0xLjQxNC0xLjQxNEwxMyAxNS41ODZWNmgtMnY5LjU4NmwtNC4yOTMtNC4yOTMtMS40MTQgMS40MTRMMTIgMTkuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURvd25BcnJvd0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMS45OTNDNi40ODYgMS45OTQgMiA2LjQ4IDIgMTEuOTk0YzAgNS41MTMgNC40ODYgOS45OTkgMTAgMTAgNS41MTQgMCAxMC00LjQ4NiAxMC0xMHMtNC40ODUtMTAtMTAtMTAuMDAxem0wIDE4LjAwMWMtNC40MTEtLjAwMS04LTMuNTktOC04IDAtNC40MTEgMy41ODktOCA4LTguMDAxIDQuNDExLjAwMSA4IDMuNTkgOCA4LjAwMXMtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGgtMnY0SDcuOTkxbDQuMDA1IDQuMDA1TDE2IDEyaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaURvd25BcnJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuODg2IDUuNTM2QTEuMDAyIDEuMDAyIDAgMCAwIDIxIDVIM2ExLjAwMiAxLjAwMiAwIDAgMC0uODIyIDEuNTY5bDkgMTNhLjk5OC45OTggMCAwIDAgMS42NDQgMGw5LTEzYS45OTguOTk4IDAgMCAwIC4wNjQtMS4wMzN6TTEyIDE3LjI0MyA0LjkwOCA3aDE0LjE4NEwxMiAxNy4yNDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE2IDQtNWgtM1Y0aC0ydjdIOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOEg0di03SDJ2N2MwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTdoLTJ2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEb3dudm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTAxIDEwLjU2NkExLjAwMSAxLjAwMSAwIDAgMCAyMCAxMGgtNFYzYTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjdINGExLjAwMSAxLjAwMSAwIDAgMC0uNzgxIDEuNjI1bDggMTBhMSAxIDAgMCAwIDEuNTYyIDBsOC0xMGMuMjQtLjMwMS4yODYtLjcxMi4xMi0xLjA1OXpNMTIgMTkuMzk5IDYuMDgxIDEySDEwVjRoNHY4aDMuOTE5TDEyIDE5LjM5OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEcmluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuODMyIDQuNTU1QTEgMSAwIDAgMCAyMCAzSDRhMSAxIDAgMCAwLS44MzIgMS41NTRMMTEgMTYuMzAzVjIwSDh2Mmg4di0yaC0zdi0zLjY5N2w3LjgzMi0xMS43NDh6TTEyIDE0LjE5NyA4LjUzNSA5aDYuOTNMMTIgMTQuMTk3ek0xOC4xMzIgNWwtMS4zMzMgMkg3LjIwMUw1Ljg2OCA1aDEyLjI2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEcm9wbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmM0LjYzNiAwIDgtMy40NjggOC04LjI0NkMyMCA3LjUyMiAxMi44ODIgMi40IDEyLjU3OSAyLjE4NWExIDEgMCAwIDAtMS4xNTYtLjAwMUMxMS4xMiAyLjM5NyA0IDcuNTAzIDQgMTMuNzUgNCAxOC41MyA3LjM2NCAyMiAxMiAyMnptLS4wMDEtMTcuNzRDMTMuNjA0IDUuNTUgMTggOS40NzQgMTggMTMuNzU0IDE4IDE3LjQzMiAxNS41MzIgMjAgMTIgMjBzLTYtMi41Ny02LTYuMjVjMC00LjI5IDQuMzk0LTguMjAzIDUuOTk5LTkuNDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRHVtYmJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNXYxNGgzdi02aDZ2NmgzVjVoLTN2Nkg5VjV6TTMgMTVhMSAxIDAgMCAwIDEgMWgxVjhINGExIDEgMCAwIDAtMSAxdjJIMnYyaDF2MnptMTgtNmExIDEgMCAwIDAtMS0xaC0xdjhoMWExIDEgMCAwIDAgMS0xdi0yaDF2LTJoLTFWOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlEdXBsaWNhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEwSDl2M0g2djJoM3YzaDJ2LTNoM3YtMmgtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIyaDEyYzEuMTAzIDAgMi0uODk3IDItMlY4YzAtMS4xMDMtLjg5Ny0yLTItMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJ6TTQgOGgxMmwuMDAyIDEySDRWOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDh2MmgxMnYxMmgyVjRjMC0xLjEwMy0uODk3LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUVkaXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjA0NSA3LjQwMWMuMzc4LS4zNzguNTg2LS44OC41ODYtMS40MTRzLS4yMDgtMS4wMzYtLjU4Ni0xLjQxNGwtMS41ODYtMS41ODZjLS4zNzgtLjM3OC0uODgtLjU4Ni0xLjQxNC0uNTg2cy0xLjAzNi4yMDgtMS40MTMuNTg1TDQgMTMuNTg1VjE4aDQuNDEzTDE5LjA0NSA3LjQwMXptLTMtMyAxLjU4NyAxLjU4NS0xLjU5IDEuNTg0LTEuNTg2LTEuNTg1IDEuNTg5LTEuNTg0ek02IDE2di0xLjU4NWw3LjA0LTcuMDE4IDEuNTg2IDEuNTg2TDcuNTg3IDE2SDZ6bS0yIDRoMTZ2Mkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcgMTcuMDEzIDQuNDEzLS4wMTUgOS42MzItOS41NGMuMzc4LS4zNzguNTg2LS44OC41ODYtMS40MTRzLS4yMDgtMS4wMzYtLjU4Ni0xLjQxNGwtMS41ODYtMS41ODZjLS43NTYtLjc1Ni0yLjA3NS0uNzUyLTIuODI1LS4wMDNMNyAxMi41ODN2NC40M3pNMTguMDQ1IDQuNDU4bDEuNTg5IDEuNTgzLTEuNTk3IDEuNTgyLTEuNTg2LTEuNTg1IDEuNTk0LTEuNTh6TTkgMTMuNDE3bDYuMDMtNS45NzMgMS41ODYgMS41ODYtNi4wMjkgNS45NzFMOSAxNS4wMDZ2LTEuNTg5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjFoMTRjMS4xMDMgMCAyLS44OTcgMi0ydi04LjY2OGwtMiAyVjE5SDguMTU4Yy0uMDI2IDAtLjA1My4wMS0uMDc5LjAxLS4wMzMgMC0uMDY2LS4wMDktLjEtLjAxSDVWNWg2Ljg0N2wyLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUVudmVsb3BlT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNTU1IDguMTY4LTktNmExIDEgMCAwIDAtMS4xMDkgMGwtOSA2QTEgMSAwIDAgMCAyIDl2MTFjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjljMC0uMzM0LS4xNjctLjY0Ni0uNDQ1LS44MzJ6TTEyIDQuMjAyIDE5LjE5NyA5IDEyIDEzLjc5OCA0LjgwMyA5IDEyIDQuMjAyek00IDIwdi05LjEzMWw3LjQ0NSA0Ljk2M2ExIDEgMCAwIDAgMS4xMSAwTDIwIDEwLjg2OSAxOS45OTcgMjBINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlFbnZlbG9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yem0wIDJ2LjUxMWwtOCA2LjIyMy04LTYuMjIyVjZoMTZ6TTQgMThWOS4wNDRsNy4zODYgNS43NDVhLjk5NC45OTQgMCAwIDAgMS4yMjggMEwyMCA5LjA0NCAyMC4wMDIgMThINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlFcXVhbGl6ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDloMnY2aC0yem00LTNoMnYxMmgtMnpNNyA0aDJ2MTZIN3ptMTIgN2gydjJoLTJ6TTMgMTBoMnY0SDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRXJhc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjU4NiAxNS40MDggNC4yOTkgNC4yOTlhLjk5Ni45OTYgMCAwIDAgLjcwNy4yOTNoMTIuMDAxdi0yaC02Ljk1OGw3LjIyMi03LjIyMmMuNzgtLjc3OS43OC0yLjA0OSAwLTIuODI4TDE0LjkwNiAzYTIuMDAzIDIuMDAzIDAgMCAwLTIuODI4IDBsLTQuNzUgNC43NDktNC43NTQgNC44NDNhMi4wMDcgMi4wMDcgMCAwIDAgLjAxMiAyLjgxNnpNMTMuNDkyIDQuNDE0bDQuOTUgNC45NS0yLjU4NiAyLjU4NkwxMC45MDYgN2wyLjU4Ni0yLjU4NnpNOC43NDkgOS4xNTZsLjc0My0uNzQyIDQuOTUgNC45NS00LjU1NyA0LjU1N2ExLjAyNiAxLjAyNiAwIDAgMC0uMDY5LjA3OWgtMS44MWwtNC4wMDUtNC4wMDcgNC43NDgtNC44Mzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRXJyb3JBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoMnY3aC0yem0wIDhoMnYyaC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjcwNyA3LjI5My01LTVBLjk5Ni45OTYgMCAwIDAgMTYgMkg4YS45OTYuOTk2IDAgMCAwLS43MDcuMjkzbC01IDVBLjk5Ni45OTYgMCAwIDAgMiA4djhjMCAuMjY2LjEwNS41Mi4yOTMuNzA3bDUgNUEuOTk2Ljk5NiAwIDAgMCA4IDIyaDhjLjI2NiAwIC41Mi0uMTA1LjcwNy0uMjkzbDUtNUEuOTk2Ljk5NiAwIDAgMCAyMiAxNlY4YS45OTYuOTk2IDAgMCAwLS4yOTMtLjcwN3pNMjAgMTUuNTg2IDE1LjU4NiAyMEg4LjQxNEw0IDE1LjU4NlY4LjQxNEw4LjQxNCA0aDcuMTcyTDIwIDguNDE0djcuMTcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUVycm9yQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45NTMgMkM2LjQ2NSAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy40OTMgMiAxMS45NTMgMnpNMTIgMjBjLTQuNDExIDAtOC0zLjU4OS04LThzMy41NjctOCA3Ljk1My04QzE2LjM5MSA0IDIwIDcuNTg5IDIwIDEycy0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3aDJ2N2gtMnptMCA4aDJ2MmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDAxIDEwaDJ2NWgtMnpNMTEgMTZoMnYyaC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjc2OCA0LjJDMTMuNDIgMy41NDUgMTIuNzQyIDMuMTM4IDEyIDMuMTM4cy0xLjQyLjQwNy0xLjc2OCAxLjA2M0wyLjg5NCAxOC4wNjRhMS45ODYgMS45ODYgMCAwIDAgLjA1NCAxLjk2OEExLjk4NCAxLjk4NCAwIDAgMCA0LjY2MSAyMWgxNC42NzhjLjcwOCAwIDEuMzQ5LS4zNjIgMS43MTQtLjk2OGExLjk4OSAxLjk4OSAwIDAgMCAuMDU0LTEuOTY4TDEzLjc2OCA0LjJ6TTQuNjYxIDE5IDEyIDUuMTM3IDE5LjM0NCAxOUg0LjY2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlFdXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy40NjQgNmMxLjQzIDAgMi43NzkuNjEzIDMuNzk5IDEuNzI2bDEuNDc1LTEuMzUyQzE3LjMzNCA0Ljg0MyAxNS40NjEgNCAxMy40NjQgNGMtMS45OTggMC0zLjg3Ljg0My01LjI3MiAyLjM3NUE4LjAzNCA4LjAzNCAwIDAgMCA2LjU4OSA5SDR2MmgyLjExNGMtLjAzOC4zMy0uMDY0LjY2My0uMDY0IDFzLjAyNi42Ny4wNjQgMUg0djJoMi41ODljLjM2Mi45Ny45MDEgMS44NjEgMS42MDMgMi42MjZDOS41OTQgMTkuMTU3IDExLjQ2NiAyMCAxMy40NjQgMjBjMS45OTcgMCAzLjg3LS44NDMgNS4yNzMtMi4zNzRsLTEuNDc1LTEuMzUyQzE2LjI0MyAxNy4zODcgMTQuODk0IDE4IDEzLjQ2NCAxOHMtMi43NzgtLjYxMi0zLjc5OC0xLjcyNkE1LjkzNyA1LjkzNyAwIDAgMSA4LjgwMSAxNUgxM3YtMkg4LjEzOWMtLjA1LS4zMjgtLjA4OS0uNjYtLjA4OS0xcy4wMzktLjY3Mi4wODktMUgxM1Y5SDguODAxYy4yNC0uNDU3LjUxNi0uODkzLjg2NS0xLjI3NEMxMC42ODYgNi42MTMgMTIuMDM0IDYgMTMuNDY0IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRXhjbHVkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOGgtM1Y1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OWMwIDEuMTAzLjg5NyAyIDIgMmgzdjNjMCAxLjEwMy44OTcgMiAyIDJoOWMxLjEwMyAwIDItLjg5NyAyLTJ2LTljMC0xLjEwMy0uODk3LTItMi0yem0tNCA3SDlWOWg2djZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRXhpdEZ1bGxzY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRIOHY0SDR2Mmg2ek04IDIwaDJ2LTZINHYyaDR6bTEyLTZoLTZ2Nmgydi00aDR6bTAtNmgtNFY0aC0ydjZoNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlFeGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wMDIgM2gtMTRjLTEuMTAzIDAtMiAuODk3LTIgMnY0aDJWNWgxNHYxNGgtMTR2LTRoLTJ2NGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTgtMi0yLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgMTYgNS00LTUtNHYzLjAwMUgzdjJoOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlFeHBhbmRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJIM3Y5aDl2LTJINXptNy03aDd2N2gyVjNoLTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxNS4zNDQtMi4xMjEgMi4xMjEtMy4xNzItMy4xNzItMS40MTQgMS40MTQgMy4xNzIgMy4xNzJMMTUuMzQ0IDIxSDIxek0zIDguNjU2bDIuMTIxLTIuMTIxIDMuMTcyIDMuMTcyIDEuNDE0LTEuNDE0LTMuMTcyLTMuMTcyTDguNjU2IDNIM3pNMjEgM2gtNS42NTZsMi4xMjEgMi4xMjEtMy4xNzIgMy4xNzIgMS40MTQgMS40MTQgMy4xNzItMy4xNzJMMjEgOC42NTZ6TTMgMjFoNS42NTZsLTIuMTIxLTIuMTIxIDMuMTcyLTMuMTcyLTEuNDE0LTEuNDE0LTMuMTcyIDMuMTcyTDMgMTUuMzQ0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUV4cG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTZoMlY3aDNsLTQtNS00IDVoM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIyaDE0YzEuMTAzIDAgMi0uODk3IDItMnYtOWMwLTEuMTAzLS44OTctMi0yLTJoLTR2Mmg0djlINXYtOWg0VjlINWMtMS4xMDMgMC0yIC44OTctMiAydjljMCAxLjEwMy44OTcgMiAyIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRXh0ZW5zaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMFY3YzAtMS4xMDMtLjg5Ny0yLTItMmgtM2MwLTEuNjU0LTEuMzQ2LTMtMy0zUzggMy4zNDYgOCA1SDVjLTEuMTAzIDAtMiAuODk3LTIgMnYzLjg4MWwuNjU5LjIzOUM0LjQ2MSAxMS40MSA1IDEyLjE2NiA1IDEzcy0uNTM5IDEuNTktMS4zNDEgMS44OEwzIDE1LjExOVYxOWMwIDEuMTAzLjg5NyAyIDIgMmgzLjg4MWwuMjM5LS42NTlDOS40MSAxOS41MzkgMTAuMTY2IDE5IDExIDE5czEuNTkuNTM5IDEuODggMS4zNDFsLjIzOS42NTlIMTdjMS4xMDMgMCAyLS44OTcgMi0ydi0zYzEuNjU0IDAgMy0xLjM0NiAzLTNzLTEuMzQ2LTMtMy0zem0wIDRoLTJsLS4wMDMgNWgtMi41NDVjLS43MTEtMS4yMi0yLjAyMi0yLTMuNDUyLTJzLTIuNzQxLjc4LTMuNDUyIDJINXYtMi41NDhDNi4yMiAxNS43NDEgNyAxNC40MyA3IDEzcy0uNzgtMi43NDEtMi0zLjQ1MlY3aDVWNWExIDEgMCAwIDEgMiAwdjJoNXY1aDJhMSAxIDAgMCAxIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMmMzLjIxMyAwIDUuOTgyIDEuOTA4IDcuMjU0IDQuNjQ4YTcuOCA3LjggMCAwIDEtLjg5NS0uNDk4Yy0uNDA5LS4yNTgtLjg3My0uNTUxLTEuNDYtLjc3Mi0uNjY5LS4yNTUtMS40LS4zNzgtMi4yMzQtLjM3OHMtMS41NjUuMTIzLTIuMjM0LjM3N2MtLjU4Ny4yMjMtMS4wNTEuNTE2LTEuNDcyLjc4MS0uMzc4LjIzNy0uNzAzLjQ0My0xLjEwMy41OTRDOS40MSA4LjkyMSA4LjkyNiA5IDguMzMgOWMtLjU5NSAwLTEuMDc5LS4wNzktMS41MjQtLjI0OC0uNC0uMTUxLS43MjgtLjM1OC0xLjEwNi0uNTk4LS4xNjEtLjEwMS0uMzQtLjIwOC0uNTItLjMxM0M2LjU4NyA1LjU0MiA5LjExMyA0IDEyIDR6bTAgMTZjLTQuNDExIDAtOC0zLjU4OS04LTggMC0uODEuMTIzLTEuNTkuMzQ4LTIuMzI3LjA5NC4wNTguMTg1LjExLjI4My4xNzMuNDExLjI2Ljg3Ni41NTQgMS40NjYuNzc2LjY2OS4yNTUgMS4zOTkuMzc4IDIuMjMzLjM3OC44MzMgMCAxLjU2NC0uMTIzIDIuMjM1LS4zNzcuNTg3LS4yMjMgMS4wNTEtLjUxNiAxLjQ3Mi0uNzgxLjM3OC0uMjM3LjcwMy0uNDQzIDEuMTAzLS41OTUuNDQ1LS4xNjguOTI5LS4yNDcgMS41MjUtLjI0N3MxLjA4LjA3OSAxLjUyNS4yNDhjLjM5OS4xNS43MjUuMzU2IDEuMTE0LjYwMi40MDkuMjU4Ljg3My41NTEgMS40Ni43NzMuMzYzLjEzOC43NDguMjI5IDEuMTUzLjI5MS4wNDkuMzU3LjA4My43MTcuMDgzIDEuMDg2IDAgNC40MTEtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGYXN0Rm9yd2FyZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzIDE2IDUtNC01LTR6bS02IDAgNS00LTUtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGYXN0Rm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkgMTItNy01djEwek01IDd2MTBsNy01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUZlbWFsZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC42OTEgMiA2IDQuNjkxIDYgOGMwIDIuOTY3IDIuMTY3IDUuNDMyIDUgNS45MVYxN0g4djJoM3YyLjk4OGgyVjE5aDN2LTJoLTN2LTMuMDljMi44MzMtLjQ3OSA1LTIuOTQzIDUtNS45MSAwLTMuMzA5LTIuNjkxLTYtNi02em0wIDEwYy0yLjIwNiAwLTQtMS43OTQtNC00czEuNzk0LTQgNC00IDQgMS43OTQgNCA0LTEuNzk0IDQtNCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUZlbWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC45NDggNy42ODRBLjk5Ny45OTcgMCAwIDAgMTQgN2gtNGEuOTk4Ljk5OCAwIDAgMC0uOTQ4LjY4NGwtMiA2IDEuNzc1LjU5M0w4IDE4aDJ2NGg0di00aDJsLS44MjctMy43MjQgMS43NzUtLjU5My0yLTUuOTk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUZpbGVCbGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTM3IDguNjhjLS4wMTEtLjAzMi0uMDItLjA2My0uMDMzLS4wOTRhLjk5Ny45OTcgMCAwIDAtLjE5Ni0uMjkzbC02LTZhLjk5Ny45OTcgMCAwIDAtLjI5My0uMTk2Yy0uMDMtLjAxNC0uMDYyLS4wMjItLjA5NC0uMDMzYS45OTEuOTkxIDAgMCAwLS4yNTktLjA1MUMxMy4wNCAyLjAxMSAxMy4wMjEgMiAxMyAySDZjLTEuMTAzIDAtMiAuODk3LTIgMnYxNmMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJWOWMwLS4wMjEtLjAxMS0uMDQtLjAxMy0uMDYyYS45OS45OSAwIDAgMC0uMDUtLjI1OHpNMTYuNTg2IDhIMTRWNS40MTRMMTYuNTg2IDh6TTYgMjBWNGg2djVhMSAxIDAgMCAwIDEgMWg1bC4wMDIgMTBINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGaWxlRmluZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNzA3IDIuMjkzQS45OTYuOTk2IDAgMCAwIDEzIDJINmMtMS4xMDMgMC0yIC44OTctMiAydjE2YzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMlY5YS45OTYuOTk2IDAgMCAwLS4yOTMtLjcwN2wtNi02ek02IDRoNi41ODZMMTggOS40MTRsLjAwMiA5LjE3NC0yLjU2OC0yLjU2OGMuMzUtLjU5NS41NjYtMS4yODEuNTY2LTIuMDIgMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDQgMS43OTQgNCA0IDRjLjczOSAwIDEuNDI1LS4yMTYgMi4wMi0uNTY2TDE2LjU4NiAyMEg2VjR6bTYgMTJjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yIDIgLjg5NyAyIDItLjg5NyAyLTIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45MDMgOC41ODZhLjk5Ny45OTcgMCAwIDAtLjE5Ni0uMjkzbC02LTZhLjk5Ny45OTcgMCAwIDAtLjI5My0uMTk2Yy0uMDMtLjAxNC0uMDYyLS4wMjItLjA5NC0uMDMzYS45OTEuOTkxIDAgMCAwLS4yNTktLjA1MUMxMy4wNCAyLjAxMSAxMy4wMjEgMiAxMyAySDZjLTEuMTAzIDAtMiAuODk3LTIgMnYxNmMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJWOWMwLS4wMjEtLjAxMS0uMDQtLjAxMy0uMDYyYS45NTIuOTUyIDAgMCAwLS4wNTEtLjI1OWMtLjAxLS4wMzItLjAxOS0uMDYzLS4wMzMtLjA5M3pNMTYuNTg2IDhIMTRWNS40MTRMMTYuNTg2IDh6TTYgMjBWNGg2djVhMSAxIDAgMCAwIDEgMWg1bC4wMDIgMTBINnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEyaDh2Mkg4em0wIDRoOHYySDh6bTAtOGgydjJIOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGaWxtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTkgMTFWNWg2djZIOXptNiAydjZIOXYtNmg2ek01IDVoMnYySDVWNXptMCA0aDJ2Mkg1Vjl6bTAgNGgydjJINXYtMnptMCA0aDJ2Mkg1di0yem0xNC4wMDIgMkgxN3YtMmgyLjAwMnYyem0tLjAwMS00SDE3di0yaDIuMDAxdjJ6bTAtNEgxN1Y5aDIuMDAxdjJ6TTE3IDdWNWgydjJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRmlsdGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDVhMSAxIDAgMCAwLTEgMXYyLjU5YzAgLjUyMy4yMTMgMS4wMzcuNTgzIDEuNDA3TDEwIDEzLjQxNFYyMWExLjAwMSAxLjAwMSAwIDAgMCAxLjQ0Ny44OTVsNC0yYy4zMzktLjE3LjU1My0uNTE2LjU1My0uODk1di01LjU4Nmw1LjQxNy01LjQxN2MuMzctLjM3LjU4My0uODg0LjU4My0xLjQwN1Y0YTEgMSAwIDAgMC0xLTF6bS02LjcwNyA5LjI5M0EuOTk2Ljk5NiAwIDAgMCAxNCAxM3Y1LjM4MmwtMiAxVjEzYS45OTYuOTk2IDAgMCAwLS4yOTMtLjcwN0w2IDYuNTlWNWgxNC4wMDFsLjAwMiAxLjU4My01LjcxIDUuNzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRmlsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExaDEwdjJIN3pNNCA3aDE2djJINHptNiA4aDR2MmgtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGaW5nZXJwcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS45NjIgMTcuNjc0QzcgMTkuMzMxIDcgMjAuNTY3IDcgMjJoMmMwLTEuNTIxIDAtMy4yNDQtMS4zNDMtNS4zODlsLTEuNjk1IDEuMDYzek0xNi41MDQgMy4zODdDMTMuOTc3IDEuOTEgNy41NS45MjYgNC4yODEgNC4zMDVjLTMuMzY4IDMuNDgxLTIuMjQ5IDkuMDcyLjAwMSAxMS4zOTIuMTE4LjEyMi4yNDQuMjI5LjM2OS4zMzMuMDcyLjA2MS4xNDYuMTE2LjIwNS4xODRsMS40OTQtMS4zM2EzLjkxOCAzLjkxOCAwIDAgMC0uNDE5LS4zOTFjLS4wNzItLjA2LS4xNDYtLjExOS0uMjE0LS4xODgtMS42Ni0xLjcxMS0yLjUwNi02LjAxNy4wMDEtOC42MDggMi41MjUtMi42MTEgOC4wNjgtMS41NzkgOS43NzctLjU4MSAyLjY5MSAxLjU2OSA0LjA5NyA0LjMwOCA0LjEwOSA0LjMzM2wxLjc4OS0uODk1Yy0uMDY1LS4xMzUtMS42NjgtMy4yODktNC44ODktNS4xNjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4zNCAxMi44MjJjLTEuMDMtMS4yNi0xLjc4Ny0yLjMxNy0xLjM5Mi0zLjUwNi4yNjMtLjc4NS44MTMtMS4zMjUgMS42MzctMS42MDQgMS4yMjQtLjQxIDIuOTItLjE2IDQuMDQuNjAxbDEuMTIzLTEuNjU0Yy0xLjY0OC0xLjEyLTMuOTgyLTEuNDU3LTUuODA0LS44NDEtMS40MDguNDc2LTIuNDM1IDEuNDk1LTIuODkyIDIuODY2LS43NzYgMi4zMjguNzk5IDQuMjU0IDEuNzQgNS40MDUuMTQ5LjE4My4yOS4zNTQuNDA5LjUxMkMxMSAxOC4zMjMgMTEgMjAuMTA5IDExIDIyaDJjMC0yLjAzNiAwLTQuMzQ1LTMuMjAxLTguNjAxYTE5LjcxIDE5LjcxIDAgMCAwLS40NTktLjU3N3ptNS43OTEtMy4zNDRjMS44MzUgMS43NjQgMy4wMzQgNC40NDcgMy44ODkgOC43MDFsMS45NjEtLjM5NWMtLjkzOS00LjY3OC0yLjMxNi03LjY4NS00LjQ2My05Ljc0OGwtMS4zODcgMS40NDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuNTU2IDkuMTY5LTEuMTE1IDEuNjZjLjAyNy4wMTkgMi43MTEgMS44OCAzLjgwMSA1LjcyNGwxLjkyNC0uNTQ1Yy0xLjI5OS00LjU4Mi00LjQ3Ni02Ljc0OS00LjYxLTYuODM5em0zLjEzMiA5LjI5Yy4yMSAxLjE2OC4zMTIgMi4zMjYuMzEyIDMuNTQxaDJjMC0xLjMzNS0uMTEyLTIuNjA4LS4zNDMtMy44OTVsLTEuOTY5LjM1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGaXJzdEFpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtM1Y0YzAtMS4xMDMtLjg5Ny0yLTItMkg5Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2Mkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTBjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjhjMC0xLjEwMy0uODk3LTItMi0yek05IDRoNnYySDlWNHpNNCAxOFY4aDE2bC4wMDEgMTBINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA5aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRmlyc3RQYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi4yOTMgMTcuNzA3IDEuNDE0LTEuNDE0TDEzLjQxNCAxMmw0LjI5My00LjI5My0xLjQxNC0xLjQxNEwxMC41ODYgMTJ6TTcgNmgydjEySDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg2VjJINHYxOEgzdjJoNHYtMkg2di01aDEzYTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xem0tMSA5SDZWNmgxMnY3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUZvbGRlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC04LjU4Nkw5LjcwNyAzLjI5M0EuOTk2Ljk5NiAwIDAgMCA5IDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY3YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxOVY3aDE2bC4wMDIgMTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljg3NCAxMmg4djJoLTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRm9sZGVyT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4xNjUgMTkuNTUxYy4xODYuMjguNDk5LjQ0OS44MzUuNDQ5aDE1Yy40IDAgLjc2Mi0uMjM4LjkxOS0uNjA2bDMtN0EuOTk4Ljk5OCAwIDAgMCAyMSAxMWgtMVY3YzAtMS4xMDMtLjg5Ny0yLTItMmgtNi4xTDkuNjE2IDMuMjEzQS45OTcuOTk3IDAgMCAwIDkgM0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRoLjAwN2ExIDEgMCAwIDAgLjE1OC41NTF6TTE3LjM0MSAxOEg0LjUxN2wyLjE0My01aDEyLjgyNGwtMi4xNDMgNXpNMTggN3Y0SDZjLS40IDAtLjc2Mi4yMzgtLjkxOS42MDZMNCAxNC4xMjlWN2gxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGb2xkZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA5aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtOC41ODZMOS43MDcgMy4yOTNBLjk5Ni45OTYgMCAwIDAgOSAzSDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWN2MwLTEuMTAzLS44OTctMi0yLTJ6TTQgMTlWN2gxNmwuMDAyIDEySDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC04LjU4Nkw5LjcwNyAzLjI5M0EuOTk3Ljk5NyAwIDAgMCA5IDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY3YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxOVY3aDE2bC4wMDIgMTJINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGb250Q29sb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMThoMTR2M0g1em03LjUtMTRoLTFjLS40MDEgMC0uNzY0LjI0LS45MjEuNjA5TDUuNzQ1IDE2aDIuMTczbDEuMjczLTNoNS42MDRsMS4yNjggM2gyLjE3MUwxMy40MjEgNC42MUExIDEgMCAwIDAgMTIuNSA0em0tMi40NiA3IDEuOTU5LTQuNjE2TDEzLjk1IDExaC0zLjkxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUZvbnRGYW1pbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDRoN3YyaC03em0xIDRoNnYyaC02em0yIDRoNHYyaC00ek05LjMwNyA0bC02IDE2aDIuMTM3bDEuODc1LTVoNi4zNjNsMS44NzUgNWgyLjEzN2wtNi0xNkg5LjMwN3ptLTEuMjM5IDlMMTAuNSA2LjUxNSAxMi45MzIgMTNIOC4wNjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRm9udFNpemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDYtMy00LTMgNGgydjRoLTJsMyA0IDMtNGgtMlY2ek05LjMwNyA0bC02IDE2aDIuMTM3bDEuODc1LTVoNi4zNjNsMS44NzUgNWgyLjEzN2wtNi0xNkg5LjMwN3ptLTEuMjM5IDlMMTAuNSA2LjUxNSAxMi45MzIgMTNIOC4wNjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuMzA3IDQtNiAxNmgyLjEzN2wxLjg3NS01aDYuMzYzbDEuODc1IDVoMi4xMzdsLTYtMTZoLTIuMzg3em0tMS4yMzkgOUwxMi41IDYuNTE1IDE0LjkzMiAxM2gtNC44NjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRm9vZE1lbnUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMmgydjIwSDN6bTcgNGg3djJoLTd6bTAgNGg3djJoLTd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg2djIwaDEzYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxOEg4VjRoMTF2MTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRm9vZFRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0YTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMXptLTEgMTZINVY1aDE0djE0elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUZvb3RiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wNzEgNC45MjlhOS45MzYgOS45MzYgMCAwIDAtNy4wNy0yLjkzOCA5Ljk0MyA5Ljk0MyAwIDAgMC03LjA3MiAyLjkzOGMtMy44OTkgMy44OTgtMy44OTkgMTAuMjQzIDAgMTQuMTQyYTkuOTQgOS45NCAwIDAgMCA3LjA3MyAyLjkzOCA5LjkzNiA5LjkzNiAwIDAgMCA3LjA3LTIuOTM3YzMuODk5LTMuODk4IDMuODk5LTEwLjI0My0uMDAxLTE0LjE0M3pNMTIuMTgxIDRoLS4zNTljLjA2MS0uMDAxLjExOS0uMDA5LjE4LS4wMDlzLjExOC4wMDguMTc5LjAwOXptNi4wNjIgMTNIMTZsLTEuMjU4IDIuNTE2YTcuOTU2IDcuOTU2IDAgMCAxLTIuNzQxLjQ5MyA3Ljk2IDcuOTYgMCAwIDEtMi43NDYtLjQ5NEw4IDE3LjAxSDUuNzY1YTcuOTYgNy45NiAwIDAgMS0xLjYyMy0zLjUzMkw2IDExIDQuNzg0IDguNTY3YTcuOTM2IDcuOTM2IDAgMCAxIDEuNTU5LTIuMjI0IDcuOTk0IDcuOTk0IDAgMCAxIDMuMjItMS45NjlMMTIgNmwyLjQzOC0xLjYyNWE4LjAxIDguMDEgMCAwIDEgMy4yMiAxLjk2OCA3Ljk0IDcuOTQgMCAwIDEgMS41NTggMi4yMjFMMTggMTFsMS44NTggMi40NzhBNy45NTIgNy45NTIgMCAwIDEgMTguMjQzIDE3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguNSAxMSAxLjUgNGg0bDEuNS00TDEyIDguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlGcmlkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJINmMtMS4xMDMgMC0yIC44OTctMiAydjE2YzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAyIC4wMDEgNUgxMFY3SDh2Mkg2VjRoMTJ6TTYgMjB2LTloMnYzaDJ2LTNoOC4wMDFsLjAwMSA5SDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpRnVsbHNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA1aDVWM0gzdjdoMnptNSAxNEg1di01SDN2N2g3em0xMS01aC0ydjVoLTV2Mmg3em0tMi00aDJWM2gtN3YyaDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpR2FtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTM3IDcuNTNDMTkuMjI3IDQuMTE5IDE1LjgwMyAyIDEyIDIgNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTBjMy44MDMgMCA3LjIyNy0yLjExOSA4LjkzNy01LjUzYTEgMSAwIDAgMC0uMzk3LTEuMzE2TDE1LjAxNyAxMmw1LjUyMi0zLjE1M2MuNDYxLS4yNjQuNjM2LS44NDIuMzk4LTEuMzE3em0tOC40MzMgMy42MDJhLjk5OS45OTkgMCAwIDAgMCAxLjczNmw2LjE3MyAzLjUyNUE3Ljk0OSA3Ljk0OSAwIDAgMSAxMiAyMGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOGE3Ljk1IDcuOTUgMCAwIDEgNi42NzcgMy42MDZsLTYuMTczIDMuNTI2elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTEuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpR2FzUHVtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuNjE2IDYuNDguMDE0LS4wMTctNC0zLjI0LTEuMjYgMS41NTQgMi4wNjcgMS42NzRhMi45OSAyLjk5IDAgMCAwLTEuMzk1IDMuMDU4Yy4xNDkuODk5Ljc2NiAxLjY3NiAxLjU2NSAyLjExMi44OTcuNDkgMS42ODUuNDQ2IDIuMzg0LjE5N0wxOC45NzYgMThhLjk5Ni45OTYgMCAwIDEtMS4zOS45MjIuOTk1Ljk5NSAwIDAgMS0uMzE4LS4yMTcuOTk2Ljk5NiAwIDAgMS0uMjkxLS43MDVMMTcgMTZhMi45OCAyLjk4IDAgMCAwLS44NzctMi4xMTlBMyAzIDAgMCAwIDE0IDEzaC0xVjVjMC0xLjEwMy0uODk3LTItMi0ySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmg3YzEuMTAzIDAgMi0uODk3IDItMnYtNGgxYy4xMzYgMCAuMjY3LjAyNy4zOTEuMDc4YTEuMDI4IDEuMDI4IDAgMCAxIC41MzEuNTMzQS45OTQuOTk0IDAgMCAxIDE1IDE2bC0uMDI0IDJjMCAuNDA2LjA3OS43OTkuMjM2IDEuMTY4LjE1MS4zNTkuMzY4LjY4LjY0MS45NTFhMi45NyAyLjk3IDAgMCAwIDIuMTIzLjg4MWMuNDA2IDAgLjc5OC0uMDc4IDEuMTY4LS4yMzYuMzU4LS4xNS42OC0uMzY3Ljk1MS0uNjQxQTIuOTgzIDIuOTgzIDAgMCAwIDIwLjk3NiAxOEwyMSA5YTIuOTk3IDIuOTk3IDAgMCAwLTEuMzg0LTIuNTJ6TTQgNWg3bC4wMDEgNEg0VjV6bTAgMTR2LThoNy4wMDFsLjAwMSA4SDR6bTE0LTlhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdob3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00Ljk2MyAwLTkgNC4wMzgtOSA5djhoLjA1MWMuMjQ1IDEuNjkxIDEuNjkgMyAzLjQ0OSAzIDEuMTc0IDAgMi4wNzQtLjQxNyAyLjY3Mi0xLjE3NGEzLjk5IDMuOTkgMCAwIDAgNS42NjgtLjAxNGMuNjAxLjc2MiAxLjUwNCAxLjE4OCAyLjY2IDEuMTg4IDEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjExYzAtNC45NjItNC4wMzctOS05LTl6bTcgMTYuNWMwIC44MjctLjY3MyAxLjUtMS41IDEuNS0uNDQ5IDAtMS41IDAtMS41LTJ2LTFoLTJ2MWMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJ2LTFIOHYxYzAgMS44NDUtLjc3NCAyLTEuNSAyLS44MjcgMC0xLjUtLjY3My0xLjUtMS41VjExYzAtMy44NiAzLjE0MS03IDctN3M3IDMuMTQgNyA3djcuNXpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDdoLTEuMjA5QTQuOTIgNC45MiAwIDAgMCAxOSA1LjVDMTkgMy41NyAxNy40MyAyIDE1LjUgMmMtMS42MjIgMC0yLjcwNSAxLjQ4Mi0zLjQwNCAzLjA4NUMxMS40MDcgMy41NyAxMC4yNjkgMiA4LjUgMiA2LjU3IDIgNSAzLjU3IDUgNS41YzAgLjU5Ni4wNzkgMS4wODkuMjA5IDEuNUg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnY3YzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMnYtN2MxLjEwMyAwIDItLjg5NyAyLTJWOWMwLTEuMTAzLS44OTctMi0yLTJ6bS00LjUtM2MuODI3IDAgMS41LjY3MyAxLjUgMS41QzE3IDcgMTYuMzc0IDcgMTYgN2gtMi40NzhjLjUxMS0xLjU3NiAxLjI1My0zIDEuOTc4LTN6TTcgNS41QzcgNC42NzMgNy42NzMgNCA4LjUgNGMuODg4IDAgMS43MTQgMS41MjUgMi4xOTggM0g4Yy0uMzc0IDAtMSAwLTEtMS41ek00IDloN3YySDRWOXptMiAxMXYtN2g1djdINnptMTIgMGgtNXYtN2g1djd6bS01LTlWOS4wODVMMTMuMDE3IDlIMjBsLjAwMSAySDEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdpdEJyYW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSA0QzE1LjU3IDQgMTQgNS41NyAxNCA3LjVjMCAxLjU1NCAxLjAyNSAyLjg1OSAyLjQzIDMuMzE1LS4xNDYuOTMyLS41NDcgMS43LTEuMjMgMi4zMjMtMS45NDYgMS43NzMtNS41MjcgMS45MzUtNy4yIDEuOTA3VjguODM3YzEuNDQtLjQzNCAyLjUtMS43NTcgMi41LTMuMzM3QzEwLjUgMy41NyA4LjkzIDIgNyAyUzMuNSAzLjU3IDMuNSA1LjVjMCAxLjU4IDEuMDYgMi45MDMgMi41IDMuMzM3djYuMzI2Yy0xLjQ0LjQzNC0yLjUgMS43NTctMi41IDMuMzM3QzMuNSAyMC40MyA1LjA3IDIyIDcgMjJzMy41LTEuNTcgMy41LTMuNWMwLS41NTEtLjE0LTEuMDY1LS4zNjctMS41MjkgMi4wNi0uMTg2IDQuNjU3LS43NTcgNi40MDktMi4zNSAxLjA5Ny0uOTk3IDEuNzMxLTIuMjY0IDEuOTA0LTMuNzY4QzE5LjkxNSAxMC40MzggMjEgOS4xIDIxIDcuNSAyMSA1LjU3IDE5LjQzIDQgMTcuNSA0em0tMTIgMS41QzUuNSA0LjY3MyA2LjE3MyA0IDcgNHMxLjUuNjczIDEuNSAxLjVTNy44MjcgNyA3IDdzLTEuNS0uNjczLTEuNS0xLjV6TTcgMjBjLS44MjcgMC0xLjUtLjY3My0xLjUtMS41YTEuNSAxLjUgMCAwIDEgMS40ODItMS40OThsLjEzLjAxQTEuNDk1IDEuNDk1IDAgMCAxIDcgMjB6TTE3LjUgOWMtLjgyNyAwLTEuNS0uNjczLTEuNS0xLjVTMTYuNjczIDYgMTcuNSA2czEuNS42NzMgMS41IDEuNVMxOC4zMjcgOSAxNy41IDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpR2l0Q29tbWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2Yy0yLjk2NyAwLTUuNDMxIDIuMTY3LTUuOTA5IDVIMnYyaDQuMDkyYy40NzkgMi44MzIgMi45NDIgNC45OTggNS45MDkgNC45OThzNS40My0yLjE2NiA1LjkwOS00Ljk5OEgyMnYtMmgtNC4wOWMtLjQ3OC0yLjgzMy0yLjk0Mi01LTUuOTEtNXptMCA5Ljk5OGMtMi4yMDUgMC0zLjk5OS0xLjc5NC0zLjk5OS0zLjk5OVM5Ljc5NSA4IDEyIDhjMi4yMDYgMCA0IDEuNzk0IDQgMy45OTlzLTEuNzk0IDMuOTk5LTQgMy45OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpR2l0Q29tcGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4wMSAyYy0xLjkzIDAtMy41IDEuNTctMy41IDMuNSAwIDEuNTggMS4wNiAyLjkwMyAyLjUgMy4zMzd2Ny4xNmMtLjAwMS4xNzkuMDI3IDEuNzgxIDEuMTc0IDIuOTMxQzYuODkyIDE5LjY0IDcuODQgMjAgOSAyMHYybDQtMy00LTN2MmMtMS44MjMgMC0xLjk4NC0xLjUzNC0xLjk5LTJWOC44MzdjMS40NC0uNDM0IDIuNS0xLjc1NyAyLjUtMy4zMzcgMC0xLjkzLTEuNTcxLTMuNS0zLjUtMy41em0wIDVjLS44MjcgMC0xLjUtLjY3My0xLjUtMS41UzUuMTgzIDQgNi4wMSA0czEuNS42NzMgMS41IDEuNVM2LjgzNyA3IDYuMDEgN3ptMTMgOC4xNjNWNy45OTdDMTkuMDA1IDYuMzkxIDE3LjkzMyA0IDE1IDRWMmwtNCAzIDQgM1Y2YzEuODI5IDAgMi4wMDEgMS41MzkgMi4wMSAydjcuMTYzYy0xLjQ0LjQzNC0yLjUgMS43NTctMi41IDMuMzM3IDAgMS45MyAxLjU3IDMuNSAzLjUgMy41czMuNS0xLjU3IDMuNS0zLjVjMC0xLjU4LTEuMDYtMi45MDMtMi41LTMuMzM3em0tMSA0LjgzN2MtLjgyNyAwLTEuNS0uNjczLTEuNS0xLjVzLjY3My0xLjUgMS41LTEuNSAxLjUuNjczIDEuNSAxLjUtLjY3MyAxLjUtMS41IDEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHaXRNZXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDE4LjVDMi41IDIwLjQzIDQuMDcgMjIgNiAyMnMzLjUtMS41NyAzLjUtMy41YzAtMS41OC0xLjA2LTIuOTAzLTIuNS0zLjMzN3YtMy40ODhjLjI0NC4yNzMuNTA5LjUyNy44MTMuNzQ0IDEuMTguODQ0IDIuNjE3IDEuMDk4IDMuOTE4IDEuMDk4Ljk2NiAwIDEuODUzLS4xNCAyLjUwNi0uMjgxYTMuNSAzLjUgMCAwIDAgMy4yNjQgMi4yNjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVzLTEuNTctMy41LTMuNS0zLjVhMy41IDMuNSAwIDAgMC0zLjQwNCAyLjcxOGMtMS4yOTcuMzIxLTMuNjY0LjYxNi01LjExOS0uNDI2LS42NjYtLjQ3Ny0xLjA5LTEuMjM5LTEuMzA2LTIuMjM2QzguNzU1IDcuOTYgOS41IDYuODIxIDkuNSA1LjUgOS41IDMuNTcgNy45MyAyIDYgMlMyLjUgMy41NyAyLjUgNS41YzAgMS41OCAxLjA2IDIuOTAzIDIuNSAzLjMzN3Y2LjMyNmMtMS40NC40MzQtMi41IDEuNzU3LTIuNSAzLjMzN3ptMTUtOGMuODI3IDAgMS41LjY3MyAxLjUgMS41cy0uNjczIDEuNS0xLjUgMS41UzE2IDEyLjgyNyAxNiAxMnMuNjczLTEuNSAxLjUtMS41em0tMTAgOGMwIC44MjctLjY3MyAxLjUtMS41IDEuNXMtMS41LS42NzMtMS41LTEuNVM1LjE3MyAxNyA2IDE3czEuNS42NzMgMS41IDEuNXptLTMtMTNDNC41IDQuNjczIDUuMTczIDQgNiA0czEuNS42NzMgMS41IDEuNVM2LjgyNyA3IDYgN3MtMS41LS42NzMtMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHaXRQdWxsUmVxdWVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDEgMTUuMTYzVjcuOTk3QzE5LjAwNSA2LjM5MSAxNy45MzMgNCAxNSA0VjJsLTQgMyA0IDNWNmMxLjgyOSAwIDIuMDAxIDEuNTM5IDIuMDEgMnY3LjE2M2MtMS40NC40MzQtMi41IDEuNzU3LTIuNSAzLjMzNyAwIDEuOTMgMS41NyAzLjUgMy41IDMuNXMzLjUtMS41NyAzLjUtMy41YzAtMS41OC0xLjA2LTIuOTAzLTIuNS0zLjMzN3ptLTEgNC44MzdjLS44MjcgMC0xLjUtLjY3My0xLjUtMS41cy42NzMtMS41IDEuNS0xLjUgMS41LjY3MyAxLjUgMS41LS42NzMgMS41LTEuNSAxLjV6TTkuNSA1LjVDOS41IDMuNTcgNy45MyAyIDYgMlMyLjUgMy41NyAyLjUgNS41YzAgMS41OCAxLjA2IDIuOTAzIDIuNSAzLjMzN3Y2LjMyNmMtMS40NC40MzQtMi41IDEuNzU3LTIuNSAzLjMzN0MyLjUgMjAuNDMgNC4wNyAyMiA2IDIyczMuNS0xLjU3IDMuNS0zLjVjMC0xLjU4LTEuMDYtMi45MDMtMi41LTMuMzM3VjguODM3QzguNDQgOC40MDMgOS41IDcuMDggOS41IDUuNXptLTUgMEM0LjUgNC42NzMgNS4xNzMgNCA2IDRzMS41LjY3MyAxLjUgMS41UzYuODI3IDcgNiA3cy0xLjUtLjY3My0xLjUtMS41em0zIDEzYzAgLjgyNy0uNjczIDEuNS0xLjUgMS41cy0xLjUtLjY3My0xLjUtMS41UzUuMTczIDE3IDYgMTdzMS41LjY3MyAxLjUgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdpdFJlcG9Gb3JrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNTU5IDguODU1Yy4xNjYgMS4xODMuNzg5IDMuMjA3IDMuMDg3IDQuMDc5QzExIDEzLjgyOSAxMSAxNC41MzQgMTEgMTV2LjE2M2MtMS40NC40MzQtMi41IDEuNzU3LTIuNSAzLjMzNyAwIDEuOTMgMS41NyAzLjUgMy41IDMuNXMzLjUtMS41NyAzLjUtMy41YzAtMS41OC0xLjA2LTIuOTAzLTIuNS0zLjMzN1YxNWMwLS40NjYgMC0xLjE3MSAyLjM1NC0yLjA2NSAyLjI5OC0uODcyIDIuOTIxLTIuODk2IDMuMDg3LTQuMDc5QzE5LjkxMiA4LjQ0MSAyMSA3LjEwMiAyMSA1LjUgMjEgMy41NyAxOS40MyAyIDE3LjUgMlMxNCAzLjU3IDE0IDUuNWMwIDEuNTUyIDEuMDIyIDIuODU1IDIuNDI0IDMuMzEzLS4xNDYuNzM1LS41NjUgMS43OTEtMS43NzggMi4yNTItMS4xOTIuNDUyLTIuMDUzLjk1My0yLjY0NiAxLjUzNi0uNTkzLS41ODMtMS40NTMtMS4wODQtMi42NDYtMS41MzYtMS4yMTMtLjQ2MS0xLjYzMy0xLjUxNy0xLjc3OC0yLjI1MkM4Ljk3OCA4LjM1NSAxMCA3LjA1MiAxMCA1LjUgMTAgMy41NyA4LjQzIDIgNi41IDJTMyAzLjU3IDMgNS41YzAgMS42MDIgMS4wODggMi45NDEgMi41NTkgMy4zNTV6TTE3LjUgNGMuODI3IDAgMS41LjY3MyAxLjUgMS41UzE4LjMyNyA3IDE3LjUgNyAxNiA2LjMyNyAxNiA1LjUgMTYuNjczIDQgMTcuNSA0em0tNCAxNC41YzAgLjgyNy0uNjczIDEuNS0xLjUgMS41cy0xLjUtLjY3My0xLjUtMS41LjY3My0xLjUgMS41LTEuNSAxLjUuNjczIDEuNSAxLjV6TTYuNSA0QzcuMzI3IDQgOCA0LjY3MyA4IDUuNVM3LjMyNyA3IDYuNSA3IDUgNi4zMjcgNSA1LjUgNS42NzMgNCA2LjUgNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHbGFzc2VzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS45NDggMTEuNjg0LTItNkEuOTk3Ljk5NyAwIDAgMCAxOSA1aC0zdjJoMi4yNzlsMS4zMzQgNEgxNWMtMS4xMDMgMC0yIC44OTctMiAyaC0yYzAtMS4xMDMtLjg5Ny0yLTItMkg0LjM4N2wxLjMzNC00SDhWNUg1YS45OTguOTk4IDAgMCAwLS45NDguNjg0bC0yIDYgLjAxMi4wMDRBLjkyOC45MjggMCAwIDAgMiAxMnY0YzAgMS42NTQgMS4zNDYgMyAzIDNoM2MxLjY1NCAwIDMtMS4zNDYgMy0zdi0xaDJ2MWMwIDEuNjU0IDEuMzQ2IDMgMyAzaDNjMS42NTQgMCAzLTEuMzQ2IDMtM3YtNGEuOTY0Ljk2NCAwIDAgMC0uMDYzLS4zMTNsLjAxMS0uMDAzek05IDE2YzAgLjU1MS0uNDQ4IDEtMSAxSDVjLS41NTIgMC0xLS40NDktMS0xdi0zaDV2M3ptMTEgMGMwIC41NTEtLjQ0OCAxLTEgMWgtM2MtLjU1MiAwLTEtLjQ0OS0xLTF2LTNoNXYzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdsYXNzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjk3NyAxMy43ODMtMi05QTEuMDAyIDEuMDAyIDAgMCAwIDE5IDRoLTN2MmgyLjE5OGwuOTYxIDQuMzI2QTQuNDY3IDQuNDY3IDAgMCAwIDE3LjUgMTBjLTEuOTUzIDAtMy42MDMgMS4yNTgtNC4yMjQgM2gtMi41NTNjLS42MjEtMS43NDItMi4yNzEtMy00LjIyNC0zLS41ODcgMC0xLjE0NS4xMjEtMS42NTkuMzI2TDUuODAyIDZIOFY0SDVhMSAxIDAgMCAwLS45NzYuNzgzbC0yIDkgLjA0Ny4wMTFBNC41NTIgNC41NTIgMCAwIDAgMiAxNC41QzIgMTYuOTgxIDQuMDE5IDE5IDYuNSAxOWMyLjMxIDAgNC4xOTctMS43NTYgNC40NDktNGgyLjEwMmMuMjUyIDIuMjQ0IDIuMTM5IDQgNC40NDkgNCAyLjQ4MSAwIDQuNS0yLjAxOSA0LjUtNC41IDAtLjI0Mi0uMDM0LS40NzUtLjA3MS0uNzA2bC4wNDgtLjAxMXpNNi41IDE3QzUuMTIyIDE3IDQgMTUuODc4IDQgMTQuNVM1LjEyMiAxMiA2LjUgMTIgOSAxMy4xMjIgOSAxNC41IDcuODc4IDE3IDYuNSAxN3ptMTEgMGMtMS4zNzkgMC0yLjUtMS4xMjItMi41LTIuNXMxLjEyMS0yLjUgMi41LTIuNSAyLjUgMS4xMjIgMi41IDIuNS0xLjEyMSAyLjUtMi41IDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHbG9iZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTguNzkxVjIwSDl2Mmg2di0yaC0ydi0xLjg0NWE5LjkzNCA5LjkzNCAwIDAgMCAzLjA3MS0yLjA4NGMzLjg5OC0zLjg5OCAzLjg5OC0xMC4yNDMgMC0xNC4xNDNsLTEuNDE0IDEuNDE0YzMuMTE5IDMuMTIgMy4xMTkgOC4xOTUgMCAxMS4zMTQtMy4xMTkgMy4xMTgtOC4xOTUgMy4xMi0xMS4zMTQgMEwxLjkyOSAxNi4wN0E5Ljk3MSA5Ljk3MSAwIDAgMCA5IDE4Ljk5NGE5Ljk4IDkuOTggMCAwIDAgMi0uMjAzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOWMwIDMuMzA5IDIuNjkxIDYgNiA2czYtMi42OTEgNi02LTIuNjkxLTYtNi02LTYgMi42OTEtNiA2em0xMCAwYzAgMi4yMDYtMS43OTQgNC00IDRzLTQtMS43OTQtNC00IDEuNzk0LTQgNC00IDQgMS43OTQgNCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdsb2JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTcuOTMxIDloLTIuNzY0YTE0LjY3IDE0LjY3IDAgMCAwLTEuNzkyLTYuMjQzQTguMDEzIDguMDEzIDAgMCAxIDE5LjkzMSAxMXpNMTIuNTMgNC4wMjdjMS4wMzUgMS4zNjQgMi40MjcgMy43OCAyLjYyNyA2Ljk3M0g5LjAzYy4xMzktMi41OTYuOTk0LTUuMDI4IDIuNDUxLTYuOTc0LjE3Mi0uMDEuMzQ0LS4wMjYuNTE5LS4wMjYuMTc5IDAgLjM1NC4wMTYuNTMuMDI3em0tMy44NDIuN0M3LjcwNCA2LjYxOCA3LjEzNiA4Ljc2MiA3LjAzIDExSDQuMDY5YTguMDEzIDguMDEzIDAgMCAxIDQuNjE5LTYuMjczek00LjA2OSAxM2gyLjk3NGMuMTM2IDIuMzc5LjY2NSA0LjQ3OCAxLjU1NiA2LjIzQTguMDEgOC4wMSAwIDAgMSA0LjA2OSAxM3ptNy4zODEgNi45NzNDMTAuMDQ5IDE4LjI3NSA5LjIyMiAxNS44OTYgOS4wNDEgMTNoNi4xMTNjLS4yMDggMi43NzMtMS4xMTcgNS4xOTYtMi42MDMgNi45NzItLjE4Mi4wMTItLjM2NC4wMjgtLjU1MS4wMjgtLjE4NiAwLS4zNjctLjAxNi0uNTUtLjAyN3ptNC4wMTEtLjc3MmMuOTU1LTEuNzk0IDEuNTM4LTMuOTAxIDEuNjkxLTYuMjAxaDIuNzc4YTguMDA1IDguMDA1IDAgMCAxLTQuNDY5IDYuMjAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdyaWRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNINGExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xek05IDlINVY1aDR2NHptNSAyaDZhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFoLTZhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDF6bTEtNmg0djRoLTRWNXpNMyAyMGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXYtNmExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY2em0yLTVoNHY0SDV2LTR6bTggNWExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXYtNmExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2NnptMi01aDR2NGgtNHYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHcmlkSG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgN2g0djRoLTR6bTYgMGg0djRoLTR6TTQgN2g0djRINHptNiA2aDR2NGgtNHptNiAwaDR2NGgtNHpNNCAxM2g0djRINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHcmlkU21hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2g0djRIN3ptMCA2aDR2NEg3em02LTZoNHY0aC00em0wIDZoNHY0aC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdyaWRWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMGg0djRIN3ptMC02aDR2NEg3em0wIDEyaDR2NEg3em02LTZoNHY0aC00em0wLTZoNHY0aC00em0wIDEyaDR2NGgtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlHcmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAzSDQuOTg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTQuMDE2YzAgMS4xMDMuODk3IDIgMiAySDE5YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMmgtNHptNCA1aC0zVjVoM3Yzek00Ljk4NCAxMGgzdjQuMDE2aC0zVjEwem01IDBIMTR2NC4wMTZIOS45ODRWMTB6TTE2IDEwaDN2NC4wMTZoLTNWMTB6bS0yLTV2M0g5Ljk4NFY1SDE0ek03Ljk4NCA1djNoLTNWNWgzem0tMyAxMS4wMTZoM3YzaC0zdi0zem01IDN2LTNIMTR2M0g5Ljk4NHptNi4wMTYgMHYtM2gzLjAwMXYzSDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi42MDQgMTEuMDQ4YTUuNjcgNS42NyAwIDAgMCAuNzUxLTMuNDRjLS4xNzktMS43ODQtMS4xNzUtMy4zNjEtMi44MDMtNC40NGwtMS4xMDUgMS42NjZjMS4xMTkuNzQyIDEuOCAxLjc5OSAxLjkxOCAyLjk3NGEzLjY5MyAzLjY5MyAwIDAgMS0xLjA3MiAyLjk4NmwtMS4xOTIgMS4xOTIgMS42MTguNDc1QzE4Ljk1MSAxMy43MDEgMTkgMTcuOTU3IDE5IDE4aDJjMC0xLjc4OS0uOTU2LTUuMjg1LTQuMzk2LTYuOTUyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMmMyLjIwNiAwIDQtMS43OTQgNC00cy0xLjc5NC00LTQtNC00IDEuNzk0LTQgNCAxLjc5NCA0IDQgNHptMC02YzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMi0yLS44OTctMi0yIC44OTctMiAyLTJ6bTEuNSA3SDhjLTMuMzA5IDAtNiAyLjY5MS02IDZ2MWgydi0xYzAtMi4yMDYgMS43OTQtNCA0LTRoM2MyLjIwNiAwIDQgMS43OTQgNCA0djFoMnYtMWMwLTMuMzA5LTIuNjkxLTYtNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhhbmRpY2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuOTggMTQuODA0QTEgMSAwIDAgMCAxNiAxNGgtNC4xMzNsLS40MjktM0gxNlY5aC00Ljg0N2wtLjE2My0xLjE0MkExIDEgMCAwIDAgMTAgN0g5YTEuMDAzIDEuMDAzIDAgMCAwLS45OSAxLjE0MmwuODc3IDYuMTQyQTIuMDA5IDIuMDA5IDAgMCAwIDEwLjg2NyAxNmg0LjMxM2wuODM5IDQuMTk2Yy4wOTQuNDY3LjUwNC44MDQuOTgxLjgwNGgzdi0yaC0yLjE4MWwtLjgzOS00LjE5NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41MSAxNy41Yy0uNzM5IDEuNDc2LTIuMjUgMi41LTQuMDEgMi41QTQuNTA1IDQuNTA1IDAgMCAxIDQgMTUuNWE0LjUwMyA0LjUwMyAwIDAgMSAyLjgxNy00LjE2N2wtLjI4OS0yLjAyNUMzLjkwNSAxMC4xNDUgMiAxMi42MDQgMiAxNS41IDIgMTkuMDg0IDQuOTE2IDIyIDguNSAyMmE2LjQ5NyA2LjQ5NyAwIDAgMCA1LjU0NS0zLjEyNmwtLjI3NC0xLjM3NEgxMi41MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIYXBweUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjQ5M1wiLFwiY3lcIjpcIjkuNDkzXCIsXCJyXCI6XCIxLjQ5M1wifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE4YzUgMCA2LTUgNi01SDZzMSA1IDYgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIYXBweUJlYW1pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE4YzQgMCA1LTQgNS00SDdzMSA0IDUgNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgMTIgMiAuMDEyYy4wMTItLjQ2Mi4xOTQtMS4wMTIgMS0xLjAxMnMuOTg4LjU1IDEgMWgyYzAtMS4yMDYtLjc5OS0zLTMtM3MtMyAxLjc5NC0zIDN6bS01LTFjLjgwNiAwIC45ODguNTUgMSAxaDJjMC0xLjIwNi0uNzk5LTMtMy0zcy0zIDEuNzk0LTMgM2wyIC4wMTJDNy4wMTIgMTEuNTUgNy4xOTQgMTEgOCAxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIYXBweUhlYXJ0RXllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThjNCAwIDUtNCA1LTRIN3MxIDQgNSA0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYzUuNTE0IDAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTB6bTAtMThjNC40MTEgMCA4IDMuNTg5IDggOHMtMy41ODkgOC04IDgtOC0zLjU4OS04LTggMy41ODktOCA4LTh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC41MzUgMTIuNjM0IDIuMDUtMi4wODNhMS40ODUgMS40ODUgMCAwIDAtLjAxOC0yLjExOCAxLjQ5IDEuNDkgMCAwIDAtMi4wNjUtLjAzNCAxLjQ4OCAxLjQ4OCAwIDAgMC0yLjA2Ny4wNjhjLS41ODYuNi0uNTc5IDEuNTMuMDE5IDIuMTE3bDIuMDgxIDIuMDV6bTcgMCAyLjA1LTIuMDgzYTEuNDg1IDEuNDg1IDAgMCAwLS4wMTgtMi4xMTggMS40OSAxLjQ5IDAgMCAwLTIuMDY1LS4wMzQgMS40ODggMS40ODggMCAwIDAtMi4wNjguMDY3Yy0uNTg2LjYtLjU3OSAxLjUzLjAxOSAyLjExN2wyLjA4MiAyLjA1MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIYXBweSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS40OTNcIixcImN5XCI6XCIxMC40OTNcIixcInJcIjpcIjEuNDkzXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThjNCAwIDUtNCA1LTRIN3MxIDQgNSA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjAxOCAzLjgxNSAxNS4yMzIgOGgtNC45NjZsLjcxNi0zLjgxNS0xLjk2NC0uMzdMOC4yMzIgOEg0djJoMy44NTdsLS43NTEgNEgzdjJoMy43MzFsLS43MTQgMy44MDUgMS45NjUuMzY5TDguNzY2IDE2aDQuOTY2bC0uNzE0IDMuODA1IDEuOTY1LjM2OS43ODMtNC4xNzRIMjB2LTJoLTMuODU5bC43NTEtNEgyMVY4aC0zLjczM2wuNzE2LTMuODE1LTEuOTY1LS4zN3pNMTQuMTA2IDE0SDkuMTQxbC43NTEtNGg0Ljk2NmwtLjc1MiA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuOTgzIDEzLjgyMS0xLjg1MS0xMC4xOEExLjk5OCAxLjk5OCAwIDAgMCAxOC4xNjUgMkg1LjgzNWEyIDIgMCAwIDAtMS45NjggMS42NDNsLTEuODUgMTAuMTc4LjAxOS4wMDNjLS4wMTIuMDYtLjAzNi4xMTQtLjAzNi4xNzZ2NWMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTVjMC0uMDYzLS4wMjQtLjExNi0uMDM1LS4xNzZsLjAxOC0uMDAzek01LjgzNSA0aDEyLjMzMWwxLjYzNyA5SDQuMTk4bDEuNjM3LTl6TTQgMTl2LTRoMTZsLjAwMiA0SDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTZoMnYyaC0yem0tMyAwaDJ2MmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIZWFkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyMFY0aC0zdjZIOVY0SDZ2MTZoM3YtN2g2djd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSGVhZHBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMnYtMS43MDdjMC00LjQ0Mi0zLjQ3OS04LjE2MS03Ljc1NS04LjI5LTIuMjA0LS4wNTEtNC4yNTEuNzM2LTUuODE2IDIuMjU2QTcuOTMzIDcuOTMzIDAgMCAwIDQgMTB2MmMtMS4xMDMgMC0yIC44OTctMiAydjRjMCAxLjEwMy44OTcgMiAyIDJoMlYxMGE1Ljk1IDUuOTUgMCAwIDEgMS44MjEtNC4zMDYgNS45NzcgNS45NzcgMCAwIDEgNC4zNjMtMS42OTFDMTUuMzkyIDQuMDk5IDE4IDYuOTIxIDE4IDEwLjI5M1YyMGgyYzEuMTAzIDAgMi0uODk3IDItMnYtNGMwLTEuMTAzLS44OTctMi0yLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMmgydjhIN3ptOCAwaDJ2OGgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIZWFsdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjY0OSA1LjI4NiAxNCA4LjU0OFYyLjAyNWgtNHY2LjUyM0w0LjM1MSA1LjI4NmwtMiAzLjQ2NSA1LjY0OCAzLjI2MS01LjY0OCAzLjI2MSAyIDMuNDY1TDEwIDE1LjQ3N1YyMmg0di02LjUyM2w1LjY0OSAzLjI2MSAyLTMuNDY1LTUuNjQ4LTMuMjYxIDUuNjQ4LTMuMjYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhlYXJ0Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4yNzkgOC44MzMgMTIgOS4xMTJsLS4yNzktLjI3OWEyLjc0NSAyLjc0NSAwIDAgMC0zLjkwNiAwIDIuNzQ1IDIuNzQ1IDAgMCAwIDAgMy45MDdMMTIgMTYuOTI2bDQuMTg2LTQuMTg2YTIuNzQ1IDIuNzQ1IDAgMCAwIDAtMy45MDcgMi43NDYgMi43NDYgMCAwIDAtMy45MDcgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSGVhcnRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjk5OCAxNyA0LjE4Ni00LjE4NmEyLjc0NSAyLjc0NSAwIDAgMCAwLTMuOTA3IDIuNzQ2IDIuNzQ2IDAgMCAwLTMuOTA3IDBsLS4yNzguMjc5LS4yNzktLjI3OWEyLjc0NiAyLjc0NiAwIDAgMC0zLjkwNyAwIDIuNzQ2IDIuNzQ2IDAgMCAwIDAgMy45MDdMMTEuOTk4IDE3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xVjR6bS0yIDE1SDVWNWgxNHYxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNC41OTVhNS45MDQgNS45MDQgMCAwIDAtMy45OTYtMS41NTggNS45NDIgNS45NDIgMCAwIDAtNC4yMTMgMS43NThjLTIuMzUzIDIuMzYzLTIuMzUyIDYuMDU5LjAwMiA4LjQxMmw3LjMzMiA3LjMzMmMuMTcuMjk5LjQ5OC40OTIuODc1LjQ5MmEuOTkuOTkgMCAwIDAgLjc5Mi0uNDA5bDcuNDE1LTcuNDE1YzIuMzU0LTIuMzU0IDIuMzU0LTYuMDQ5LS4wMDItOC40MTZhNS45MzggNS45MzggMCAwIDAtNC4yMDktMS43NTRBNS45MDYgNS45MDYgMCAwIDAgMTIgNC41OTV6bTYuNzkxIDEuNjFjMS41NjMgMS41NzEgMS41NjQgNC4wMjUuMDAyIDUuNTg4TDEyIDE4LjU4NmwtNi43OTMtNi43OTNjLTEuNTYyLTEuNTYzLTEuNTYxLTQuMDE3LS4wMDItNS41ODQuNzYtLjc1NiAxLjc1NC0xLjE3MiAyLjc5OS0xLjE3MnMyLjAzNS40MTYgMi43ODkgMS4xN2wuNS41YS45OTkuOTk5IDAgMCAwIDEuNDE0IDBsLjUtLjVjMS41MTItMS41MDkgNC4wNzQtMS41MDUgNS41ODQtLjAwMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIZWxwQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YTMuOTM5IDMuOTM5IDAgMCAwLTMuOTM0IDMuOTM0aDJDMTAuMDY2IDguODY3IDEwLjkzNCA4IDEyIDhzMS45MzQuODY3IDEuOTM0IDEuOTM0YzAgLjU5OC0uNDgxIDEuMDMyLTEuMjE2IDEuNjI2YTkuMjA4IDkuMjA4IDAgMCAwLS42OTEuNTk5Yy0uOTk4Ljk5Ny0xLjAyNyAyLjA1Ni0xLjAyNyAyLjE3NFYxNWgybC0uMDAxLS42MzNjLjAwMS0uMDE2LjAzMy0uMzg2LjQ0MS0uNzkzLjE1LS4xNS4zMzktLjMuNTM1LS40NTguNzc5LS42MzEgMS45NTgtMS41ODQgMS45NTgtMy4xODJBMy45MzcgMy45MzcgMCAwIDAgMTIgNnptLTEgMTBoMnYyaC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOWMuOTQ2IDAgMS44MS0uMTAzIDIuNTk4LS4yODFsLTEuNzU3LTEuNzU3Yy0uMjczLjAyMS0uNTUuMDM4LS44NDEuMDM4LTUuMzUxIDAtNy40MjQtMy44NDYtNy45MjYtNWE4LjY0MiA4LjY0MiAwIDAgMSAxLjUwOC0yLjI5N0w0LjE4NCA4LjMwNWMtMS41MzggMS42NjctMi4xMjEgMy4zNDYtMi4xMzIgMy4zNzlhLjk5NC45OTQgMCAwIDAgMCAuNjMzQzIuMDczIDEyLjM4MyA0LjM2NyAxOSAxMiAxOXptMC0xNGMtMS44MzcgMC0zLjM0Ni4zOTYtNC42MDQuOTgxTDMuNzA3IDIuMjkzIDIuMjkzIDMuNzA3bDE4IDE4IDEuNDE0LTEuNDE0LTMuMzE5LTMuMzE5YzIuNjE0LTEuOTUxIDMuNTQ3LTQuNjE1IDMuNTYxLTQuNjU3YS45OTQuOTk0IDAgMCAwIDAtLjYzM0MyMS45MjcgMTEuNjE3IDE5LjYzMyA1IDEyIDV6bTQuOTcyIDEwLjU1OC0yLjI4LTIuMjhjLjE5LS4zOS4zMDgtLjgxOS4zMDgtMS4yNzggMC0xLjY0MS0xLjM1OS0zLTMtMy0uNDU5IDAtLjg4OC4xMTgtMS4yNzcuMzA5TDguOTE1IDcuNTAxQTkuMjYgOS4yNiAwIDAgMSAxMiA3YzUuMzUxIDAgNy40MjQgMy44NDYgNy45MjYgNS0uMzAyLjY5Mi0xLjE2NiAyLjM0Mi0yLjk1NCAzLjU1OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIaWdobGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjcwNyA1LjgyNi0zLjUzNS0zLjUzM2EuOTk5Ljk5OSAwIDAgMC0xLjQwOC0uMDA2TDcuMDk2IDEwLjgyYTEuMDEgMS4wMSAwIDAgMC0uMjczLjQ4OGwtMS4wMjQgNC40MzdMNCAxOGgyLjgyOGwxLjE0Mi0xLjEyOSAzLjU4OC0uODI4Yy4xOC0uMDQyLjM0NS0uMTMzLjQ3Ny0uMjYybDguNjY3LTguNTM1YTEgMSAwIDAgMCAuMDA1LTEuNDJ6bS05LjM2OSA3LjgzMy0yLjEyMS0yLjEyIDcuMjQzLTcuMTMxIDIuMTIgMi4xMi03LjI0MiA3LjEzMXpNNCAyMGgxNnYySDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOHY1aDV2LTJoLTNWOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4yOTIgOC40OTdhOC45NTcgOC45NTcgMCAwIDAtMS45MjgtMi44NjIgOS4wMDQgOS4wMDQgMCAwIDAtNC41NS0yLjQ1MiA5LjA5IDkuMDkgMCAwIDAtMy42MjYgMCA4Ljk2NSA4Ljk2NSAwIDAgMC00LjU1MiAyLjQ1MyA5LjA0OCA5LjA0OCAwIDAgMC0xLjkyOCAyLjg2QTguOTYzIDguOTYzIDAgMCAwIDQgMTJsLjAwMS4wMjVIMkw1IDE2bDMtMy45NzVINi4wMDFMNiAxMmE2Ljk1NyA2Ljk1NyAwIDAgMSAxLjE5NS0zLjkxMyA3LjA2NiA3LjA2NiAwIDAgMSAxLjg5MS0xLjg5MiA3LjAzNCA3LjAzNCAwIDAgMSAyLjUwMy0xLjA1NCA3LjAwMyA3LjAwMyAwIDAgMSA4LjI2OSA1LjQ0NSA3LjExNyA3LjExNyAwIDAgMSAwIDIuODI0IDYuOTM2IDYuOTM2IDAgMCAxLTEuMDU0IDIuNTAzYy0uMjUuMzcxLS41MzcuNzItLjg1NCAxLjAzNmE3LjA1OCA3LjA1OCAwIDAgMS0yLjIyNSAxLjUwMSA2Ljk4IDYuOTggMCAwIDEtMS4zMTMuNDA4IDcuMTE3IDcuMTE3IDAgMCAxLTIuODIzIDAgNi45NTcgNi45NTcgMCAwIDEtMi41MDEtMS4wNTMgNy4wNjYgNy4wNjYgMCAwIDEtMS4wMzctLjg1NWwtMS40MTQgMS40MTRBOC45ODUgOC45ODUgMCAwIDAgMTMgMjFhOS4wNSA5LjA1IDAgMCAwIDMuNTAzLS43MDcgOS4wMDkgOS4wMDkgMCAwIDAgMy45NTktMy4yNkE4Ljk2OCA4Ljk2OCAwIDAgMCAyMiAxMmE4LjkyOCA4LjkyOCAwIDAgMC0uNzA4LTMuNTAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjg5NSA3LjU1My0yLTRBMS4wMDEgMS4wMDEgMCAwIDAgMTggM2gtNWMtLjM3OSAwLS43MjUuMjE0LS44OTUuNTUzTDEwLjM4MiA3SDZjLS4zNzkgMC0uNzI1LjIxNC0uODk1LjU1M2wtMiA0YTEgMSAwIDAgMCAwIC44OTVsMiA0Yy4xNy4zMzguNTE2LjU1Mi44OTUuNTUyaDQuMzgybDEuNzI0IDMuNDQ3QS45OTguOTk4IDAgMCAwIDEzIDIxaDVjLjM3OSAwIC43MjUtLjIxNC44OTUtLjU1M2wyLTRhMSAxIDAgMCAwIDAtLjg5NUwxOS4xMTggMTJsMS43NzYtMy41NTNhMSAxIDAgMCAwIC4wMDEtLjg5NHpNMTMuNjE4IDVoMy43NjRsMS41IDMtMS41IDNoLTMuNzY0bC0xLjUtMyAxLjUtM3ptLTguNSA3IDEuNS0zaDMuNzY0bDEuNSAzLTEuNSAzSDYuNjE4bC0xLjUtM3ptMTIuMjY0IDdoLTMuNzY0bC0xLjUtMyAxLjUtM2gzLjc2NGwxLjUgMy0xLjUgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIb21lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIyaDE0YTIgMiAwIDAgMCAyLTJ2LTlhMSAxIDAgMCAwLS4yOS0uNzFsLTgtOGExIDEgMCAwIDAtMS40MSAwbC04IDhBMSAxIDAgMCAwIDMgMTF2OWEyIDIgMCAwIDAgMiAyem01LTJ2LTVoNHY1em0tNS04LjU5IDctNyA3IDdWMjBoLTN2LTVhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjVINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlIb21lQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDF2N2MwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTdoMWExIDEgMCAwIDAgLjcwNy0xLjcwN2wtOS05YS45OTkuOTk5IDAgMCAwLTEuNDE0IDBsLTkgOUExIDEgMCAwIDAgMyAxM3ptOS04LjU4NiA2IDZWMTVsLjAwMSA1SDZ2LTkuNTg1bDYtNi4wMDF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTdjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTAtNmMxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDItMi0uODk3LTItMiAuODk3LTIgMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhvbWVIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuMjIzIDExLjY0MS0uMjIzLjIyLS4yMjQtLjIyYTIuMjI0IDIuMjI0IDAgMCAwLTMuMTI1IDAgMi4xMyAyLjEzIDAgMCAwIDAgMy4wN0wxMiAxOGwzLjM0OS0zLjI4OWEyLjEzIDIuMTMgMCAwIDAgMC0zLjA3IDIuMjI1IDIuMjI1IDAgMCAwLTMuMTI2IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNzA3IDExLjI5My05LTlhLjk5OS45OTkgMCAwIDAtMS40MTQgMGwtOSA5QTEgMSAwIDAgMCAzIDEzaDF2N2MwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTdoMWExIDEgMCAwIDAgLjcwNy0xLjcwN3pNMTguMDAxIDIwSDZ2LTkuNTg1bDYtNiA2IDZWMTVsLjAwMSA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhvbWVTbWlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxM2gxdjdjMCAxLjEwMy44OTcgMiAyIDJoMTJjMS4xMDMgMCAyLS44OTcgMi0ydi03aDFhMSAxIDAgMCAwIC43MDctMS43MDdsLTktOWEuOTk5Ljk5OSAwIDAgMC0xLjQxNCAwbC05IDlBMSAxIDAgMCAwIDMgMTN6bTktOC41ODYgNiA2VjE1bC4wMDEgNUg2di05LjU4Nmw2LTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThjMy43MDMgMCA0LjkwMS0zLjUzOSA0Ljk1LTMuNjg5bC0xLjktLjYyMWMtLjAwOC4wMjMtLjc4MSAyLjMxLTMuMDUgMi4zMS0yLjIzOCAwLTMuMDItMi4yMjEtMy4wNTEtMi4zMTZsLTEuODk5LjYyN0M3LjA5OSAxNC40NjEgOC4yOTcgMTggMTIgMTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxM2gxdjdjMCAxLjEwMy44OTcgMiAyIDJoMTJjMS4xMDMgMCAyLS44OTcgMi0ydi03aDFhMSAxIDAgMCAwIC43MDctMS43MDdsLTktOWEuOTk5Ljk5OSAwIDAgMC0xLjQxNCAwbC05IDlBMSAxIDAgMCAwIDMgMTN6bTcgN3YtNWg0djVoLTR6bTItMTUuNTg2IDYgNlYxNWwuMDAxIDVIMTZ2LTVjMC0xLjEwMy0uODk3LTItMi0yaC00Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NUg2di05LjU4Nmw2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSG9yaXpvbnRhbENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNS4wMDUgMTUuOTk1IDQtNC00LTR2M2gtM3YyaDN6bTE0LTV2LTNsLTQgNCA0IDR2LTNoM3YtMmgtMi4wNzJ6bS04IDdoMnYzaC0yem0wLTVoMnYzaC0yem0wLTVoMnYzaC0yem0wLTVoMnYzaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUhvdGVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjIuNVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjIwNSA3SDEyYTEgMSAwIDAgMC0xIDF2N0g0VjZIMnYxNGgydi0zaDE2djNoMnYtOC4yMDVBNC44IDQuOCAwIDAgMCAxNy4yMDUgN3pNMTMgMTVWOWg0LjIwNUEyLjc5OCAyLjc5OCAwIDAgMSAyMCAxMS43OTVWMTVoLTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSG91cmdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41NjYgMTEuMDIxQTcuMDE2IDcuMDE2IDAgMCAwIDE5IDVWNGgxVjJINHYyaDF2MWE3LjAxNiA3LjAxNiAwIDAgMCAzLjQzNCA2LjAyMWMuMzU0LjIwOC41NjYuNTQ1LjU2Ni45di4xNThjMCAuMzU0LS4yMTIuNjktLjU2Ni45QTcuMDE2IDcuMDE2IDAgMCAwIDUgMTl2MUg0djJoMTZ2LTJoLTF2LTFhNy4wMTQgNy4wMTQgMCAwIDAtMy40MzMtNi4wMmMtLjM1NS0uMjEtLjU2Ny0uNTQ3LS41NjctLjkwMXYtLjE1OGMwLS4zNTUuMjEyLS42OTIuNTY2LS45em0tMS4wMTUgMy42ODFBNS4wMDggNS4wMDggMCAwIDEgMTcgMTl2MUg3di0xYTUuMDEgNS4wMSAwIDAgMSAyLjQ1LTQuMjk5Yy45NzEtLjU3MyAxLjU1LTEuNTU0IDEuNTUtMi42MjJ2LS4xNThjMC0xLjA2OS0uNTgtMi4wNTEtMS41NTEtMi42MjNBNS4wMDggNS4wMDggMCAwIDEgNyA1VjRoMTB2MWMwIDEuNzYtLjkzOCAzLjQwNi0yLjQ0OSA0LjI5OEMxMy41OCA5Ljg3IDEzIDEwLjg1MiAxMyAxMS45MjF2LjE1OGMwIDEuMDY4LjU3OSAyLjA0OSAxLjU1MSAyLjYyM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlJZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNzE1IDEyYzEuMTUxIDAgMi0uODQ5IDItMnMtLjg0OS0yLTItMi0yIC44NDktMiAyIC44NDggMiAyIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEwMyAwLTIgLjg0MS0yIDEuODc1djEyLjI1QzIgMTkuMTU5IDIuODk3IDIwIDQgMjBoMTZjMS4xMDMgMCAyLS44NDEgMi0xLjg3NVY1Ljg3NUMyMiA0Ljg0MSAyMS4xMDMgNCAyMCA0em0wIDE0LTE2LS4wMTFWNmwxNiAuMDExVjE4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDloNHYyaC00em0xIDRoM3YyaC0zem0tMS41NyAyLjUzNmMwLTEuMzc0LTEuNjc2LTIuNzg2LTMuNzE1LTIuNzg2UzYgMTQuMTYyIDYgMTUuNTM2VjE2aDcuNDN2LS40NjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSW1hZ2VBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNWgxM3Y3aDJWNWMwLTEuMTAzLS44OTctMi0yLTJINGMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDh2LTJINFY1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggMTEtMyA0aDExbC00LTYtMyA0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE0aC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUltYWdlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgMTlWNWgxNGwuMDAyIDE0SDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTQtMS0xLTMgNGgxMmwtNS03elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNDk5XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC40OTkgMTQtMS41LTItMyA0aDEybC00LjUtNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45OTkgNGgtMTZjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJWNmMwLTEuMTAzLS44OTctMi0yLTJ6bS0xNiAxNFY2aDE2bC4wMDIgMTJIMy45OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6TTggMTZWNGgxMmwuMDAyIDEySDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA4SDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoMTJ2LTJINFY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDEyLTEtMS0yIDNoMTBsLTQtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlJbXBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE4IDQtNWgtM1YyaC0ydjExSDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWgtNHYyaDR2OUg1di05aDRWOUg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OWMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJ2LTljMC0xLjEwMy0uODk3LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUluZmluaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA3Yy0yLjA5NCAwLTMuNjExIDEuNTY3LTUuMDAxIDMuMzQ2QzEwLjYwOSA4LjU2NyA5LjA5MyA3IDcgN2MtMi43NTcgMC01IDIuMjQzLTUgNWE0Ljk4IDQuOTggMCAwIDAgMS40NTkgMy41MzRBNC45NTYgNC45NTYgMCAwIDAgNi45OSAxN2guMDEyYzIuMDg5LS4wMDUgMy42MDUtMS41NzIgNC45OTYtMy4zNTFDMTMuMzg5IDE1LjQzMSAxNC45MDYgMTcgMTcgMTdjMi43NTcgMCA1LTIuMjQzIDUtNXMtMi4yNDMtNS01LTV6TTYuOTk4IDE1bC0uMDA4IDF2LTFjLS43OTkgMC0xLjU1LS4zMTItMi4xMTQtLjg3OEEzLjAwNCAzLjAwNCAwIDAgMSA3IDljMS4zMyAwIDIuNTYgMS40MzggMy43NDYgMi45OThDOS41NTggMTMuNTU3IDguMzI4IDE0Ljk5NyA2Ljk5OCAxNXpNMTcgMTVjLTEuMzMgMC0yLjU2MS0xLjQ0LTMuNzQ5LTMuMDAyQzE0LjQzOCAxMC40MzggMTUuNjY4IDkgMTcgOWMxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlJbmZvQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTFoMnY2aC0yem0wLTRoMnYyaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUluZm9TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGExIDEgMCAwIDAtMSAxdjE2YTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTF6bS0xIDE2SDVWNWgxNHYxNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3aDJ2MmgtMnptMCA0aDJ2NmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlJbnRlcnNlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTZoM3YzYzAgMS4xMDMuODk3IDIgMiAyaDljMS4xMDMgMCAyLS44OTcgMi0ydi05YzAtMS4xMDMtLjg5Ny0yLTItMmgtM1Y1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OWMwIDEuMTAzLjg5NyAyIDIgMnptOS4wMDEtMkwxNCAxMGguMDAxdjR6TTE5IDEwbC4wMDEgOUgxMHYtM2g0YzEuMTAzIDAgMi0uODk3IDItMnYtNGgzek01IDVoOXYzaC00Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NEg1VjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSXRhbGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3VjRIOXYzaDIuODY4TDkuMDEyIDE3SDV2M2gxMHYtM2gtMi44NjhsMi44NTYtMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSm95c3RpY2tBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCIxMVwiLFwiclwiOlwiMVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDlIOHYySDZ2MmgydjJoMnYtMmgydi0yaC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDVIOWE3IDcgMCAwIDAtNyA3IDcgNyAwIDAgMCA3IDdoNmE3IDcgMCAwIDAgNy03IDcgNyAwIDAgMC03LTd6bTAgMTJIOUE1IDUgMCAxIDEgOSA3aDZhNSA1IDAgMSAxIDAgMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpSm95c3RpY2tCdXR0b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDdoLTNWNGMwLTEuMTAzLS44OTctMi0yLTJIOWMtMS4xMDMgMC0yIC44OTctMiAydjNINGMtMS4xMDMgMC0yIC44OTctMiAydjZjMCAxLjEwMy44OTcgMiAyIDJoM3YzYzAgMS4xMDMuODk3IDIgMiAyaDZjMS4xMDMgMCAyLS44OTcgMi0ydi0zaDNjMS4xMDMgMCAyLS44OTcgMi0yVjljMC0xLjEwMy0uODk3LTItMi0yem0wIDhoLTV2NGguMDAxdjFIOXYtNUg0VjloNVY0aDZ2NWg1djZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNHYtNGwtMyAyem04IDAgMy0yLTMtMnptLTYtNmg0bC0yLTN6bTIgMTEgMi0zaC00elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUpveXN0aWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA4LjY1QTUgNSAwIDAgMCAxNyA0SDdhNSA1IDAgMCAwLTUgNC43NEEyIDIgMCAwIDAgMiA5djcuNUEzLjQ4IDMuNDggMCAwIDAgNS41IDIwYzEuNDMgMCAyLjMyLTEuMDYgMy4xOS0yLjA5LjMyLS4zNy42NS0uNzYgMS0xLjFhNC44MSA0LjgxIDAgMCAxIDEuNTQtLjc1IDYuNjEgNi42MSAwIDAgMSAxLjU0IDAgNC44MSA0LjgxIDAgMCAxIDEuNTQuNzVjLjM1LjM0LjY4LjczIDEgMS4xLjg3IDEgMS43NiAyLjA5IDMuMTkgMi4wOWEzLjQ4IDMuNDggMCAwIDAgMy41LTMuNVY5YTIuMDkgMi4wOSAwIDAgMCAwLS4yNnptLTIgNy44NWExLjUgMS41IDAgMCAxLTEuNSAxLjVjLS41IDAtMS0uNjQtMS42Ni0xLjM4LS4zNC0uMzktLjcyLS44NS0xLjE1LTEuMjZhNi42OCA2LjY4IDAgMCAwLTIuNDYtMS4yNSA2LjkzIDYuOTMgMCAwIDAtMi40NiAwIDYuNjggNi42OCAwIDAgMC0yLjQ2IDEuMjVjLS40My40MS0uODEuODctMS4xNSAxLjI2QzYuNTQgMTcuMzYgNiAxOCA1LjUgMThBMS41IDEuNSAwIDAgMSA0IDE2LjVWOWEuNzcuNzcgMCAwIDAgMC0uMTVBMyAzIDAgMCAxIDcgNmgxMGEzIDMgMCAwIDEgMyAyLjcydi4xMkEuODYuODYgMCAwIDAgMjAgOXpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiMVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIyXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE3YTUuMDA3IDUuMDA3IDAgMCAwIDQuODk4LTRIMTR2Mmgydi0yaDJ2M2gydi0zaDF2LTJoLTkuMTAyQTUuMDA3IDUuMDA3IDAgMCAwIDcgN2MtMi43NTcgMC01IDIuMjQzLTUgNXMyLjI0MyA1IDUgNXptMC04YzEuNjU0IDAgMyAxLjM0NiAzIDNzLTEuMzQ2IDMtMyAzLTMtMS4zNDYtMy0zIDEuMzQ2LTMgMy0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxhYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi44MTMgNC40MTlBLjk5Ny45OTcgMCAwIDAgMTYgNEgzYTEgMSAwIDAgMC0uODEzIDEuNTgxTDYuNzcxIDEybC00LjU4NSA2LjQxOUExIDEgMCAwIDAgMyAyMGgxM2EuOTk3Ljk5NyAwIDAgMCAuODEzLS40MTlsNS03YS45OTcuOTk3IDAgMCAwIDAtMS4xNjJsLTUtN3pNMTUuNDg1IDE4SDQuOTQzbDMuODctNS40MTlhLjk5Ny45OTcgMCAwIDAgMC0xLjE2Mkw0Ljk0MyA2aDEwLjU0Mmw0LjI4NiA2LTQuMjg2IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIwaDE4YTEgMSAwIDAgMCAuODY0LTEuNTA0bC03LTEyYy0uMzU5LS42MTUtMS4zNjktLjYxMy0xLjcyOSAwTDkuODY2IDEyLjFsLTEuMDItMS42MzJBLjk5OC45OTggMCAwIDAgOCAxMGgtLjAwMWExIDEgMCAwIDAtLjg0Ny40N2wtNSA4QTEgMSAwIDAgMCAzIDIwek0xNCA4Ljk4NSAxOS4yNTkgMThoLTUuNzA0bC0yLjQ4Ni0zLjk4N0wxNCA4Ljk4NXptLTUuOTk5IDMuOUwxMS4xOTcgMThINC44MDVsMy4xOTYtNS4xMTV6TTYgOGMxLjY1NCAwIDMtMS4zNDYgMy0zUzcuNjU0IDIgNiAyIDMgMy4zNDYgMyA1czEuMzQ2IDMgMyAzem0wLTRhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTcuNzIyYy41OTUtLjM0NyAxLS45ODUgMS0xLjcyMlY1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTFjMCAuNzM2LjQwNSAxLjM3NSAxIDEuNzIyVjE4SDJ2MmgyMHYtMmgtMnYtLjI3OHpNNSAxNlY1aDE0bC4wMDIgMTFINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMYXN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43MDcgMTcuNzA3IDEzLjQxNCAxMiA3LjcwNyA2LjI5MyA2LjI5MyA3LjcwNyAxMC41ODYgMTJsLTQuMjkzIDQuMjkzek0xNSA2aDJ2MTJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTGF1Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOGM0IDAgNS00IDUtNEg3czEgNCA1IDR6bTUuNTU1LTkuMTY4LTEuMTA5LTEuNjY0LTMgMmExLjAwMSAxLjAwMSAwIDAgMCAuMTA4IDEuNzI3bDQgMiAuODk1LTEuNzg5LTIuNDU5LTEuMjI5IDEuNTY1LTEuMDQ1em0tNi41NTcgMS4yM2ExIDEgMCAwIDAtLjQ0My0uODk0bC0zLTItMS4xMSAxLjY2NCAxLjU2NiAxLjA0NC0yLjQ1OSAxLjIyOS44OTUgMS43ODkgNC0yYS45OTguOTk4IDAgMCAwIC41NTEtLjgzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMYXllck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjUxMyAxMi44MzMgOS4wMjIgNS4wNGEuOTk1Ljk5NSAwIDAgMCAuOTczLjAwMWw4Ljk3OC01YTEgMSAwIDAgMC0uMDAyLTEuNzQ5bC05LjAyMi01YTEgMSAwIDAgMC0uOTY4LS4wMDFsLTguOTc4IDQuOTZhMSAxIDAgMCAwLS4wMDMgMS43NDl6bTkuNDY0LTQuNjkgNi45NjQgMy44NTktNi45MTcgMy44NTMtNi45NjQtMy44OSA2LjkxNy0zLjgyMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjQ4NSAxNS4xMjYtLjk3MSAxLjc0OCA5IDVhMSAxIDAgMCAwIC45NzEgMGw5LTUtLjk3MS0xLjc0OEwxMiAxOS44NTZsLTguNTE1LTQuNzN6TTE2IDRoNnYyaC02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxheWVyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDg0IDExLjEyNS05LjAyMi01YTEgMSAwIDAgMC0uOTY4LS4wMDFsLTguOTc4IDQuOTZhMSAxIDAgMCAwLS4wMDMgMS43NDlsOS4wMjIgNS4wNGEuOTk1Ljk5NSAwIDAgMCAuOTczLjAwMWw4Ljk3OC01YTEgMSAwIDAgMC0uMDAyLTEuNzQ5em0tOS40NjEgNC43My02Ljk2NC0zLjg5IDYuOTE3LTMuODIyIDYuOTY0IDMuODU5LTYuOTE3IDMuODUzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYS45OTQuOTk0IDAgMCAwIC40ODUtLjEyNmw5LTUtLjk3MS0xLjc0OEwxMiAxOS44NTZsLTguNTE1LTQuNzMtLjk3MSAxLjc0OCA5IDVBMSAxIDAgMCAwIDEyIDIyem04LTIwaC0ydjJoLTJ2MmgydjJoMlY2aDJWNGgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMYXllciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNy45OTlhMSAxIDAgMCAwLS41MTYtLjg3NGwtOS4wMjItNWExLjAwMyAxLjAwMyAwIDAgMC0uOTY4IDBsLTguOTc4IDQuOTZhMSAxIDAgMCAwLS4wMDMgMS43NDhsOS4wMjIgNS4wNGEuOTk1Ljk5NSAwIDAgMCAuOTczLjAwMWw4Ljk3OC01QTEgMSAwIDAgMCAyMiA3Ljk5OXptLTkuOTc3IDMuODU1TDUuMDYgNy45NjVsNi45MTctMy44MjIgNi45NjQgMy44NTktNi45MTggMy44NTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNTE1IDExLjEyNiAxMiAxNS44NTZsLTguNTE1LTQuNzMtLjk3MSAxLjc0OCA5IDVhMSAxIDAgMCAwIC45NzEgMGw5LTUtLjk3LTEuNzQ4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjUxNSAxNS4xMjYgMTIgMTkuODU2bC04LjUxNS00LjczLS45NzEgMS43NDggOSA1YTEgMSAwIDAgMCAuOTcxIDBsOS01LS45Ny0xLjc0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMYXlvdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAyIC4wMDEgNEg1VjVoMTR6TTUgMTFoOHY4SDV2LTh6bTEwIDh2LThoNC4wMDFsLjAwMSA4SDE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxlZnRBcnJvd0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNzA3IDE3LjI5MyA4LjQxNCAxM0gxOHYtMkg4LjQxNGw0LjI5My00LjI5My0xLjQxNC0xLjQxNEw0LjU4NiAxMmw2LjcwNyA2LjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMZWZ0QXJyb3dDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5OSAxLjk5M0M2LjQ4NiAxLjk5NCAyIDYuNDggMS45OTkgMTEuOTk0YzAgNS41MTQgNC40ODYgMTAgMTAuMDAxIDEwIDUuNTE0LS4wMDEgMTAtNC40ODcgMTAtMTAgMC01LjUxNC00LjQ4Ni0xMC0xMC4wMDEtMTAuMDAxek0xMiAxOS45OTRjLTQuNDEyIDAtOC4wMDEtMy41ODktOC4wMDEtOCAuMDAxLTQuNDExIDMuNTktOCA4LTguMDAxQzE2LjQxMSAzLjk5NCAyMCA3LjU4MyAyMCAxMS45OTRjMCA0LjQxLTMuNTg5IDcuOTk5LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi4wMTIgNy45ODktNC4wMDUgNC4wMDUgNC4wMDUgNC4wMDR2LTMuMDA0aDMuOTk0di0yaC0zLjk5NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMZWZ0QXJyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjQ2NCAyLjExNGEuOTk4Ljk5OCAwIDAgMC0xLjAzMy4wNjNsLTEzIDlhMS4wMDMgMS4wMDMgMCAwIDAgMCAxLjY0NWwxMyA5QTEgMSAwIDAgMCAxOSAyMVYzYTEgMSAwIDAgMC0uNTM2LS44ODZ6TTE3IDE5LjA5MSA2Ljc1NyAxMiAxNyA0LjkwOXYxNC4xODJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTGVmdERvd25BcnJvd0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDA2IDIuMDA3QTkuOTMgOS45MyAwIDAgMCA0LjkzNSA0LjkzYy0zLjg5OCAzLjg5OC0zLjg5OCAxMC4yNDIgMCAxNC4xNDIgMS44ODUgMS44ODUgNC4zOTYgMi45MjMgNy4wNzEgMi45MjNzNS4xODctMS4wMzggNy4wNzEtMi45MjNjMy44OTgtMy44OTkgMy44OTgtMTAuMjQzIDAtMTQuMTQyYTkuOTMxIDkuOTMxIDAgMCAwLTcuMDcxLTIuOTIzem01LjY1NyAxNS42NWMtMS41MDcgMS41MDctMy41MTYgMi4zMzctNS42NTcgMi4zMzdzLTQuMTUtLjgzLTUuNjU3LTIuMzM3Yy0zLjExOC0zLjExOS0zLjExOC04LjE5NCAwLTExLjMxMyAxLjUwNy0xLjUwNyAzLjUxNy0yLjMzNyA1LjY1Ny0yLjMzN3M0LjE1LjgzIDUuNjU3IDIuMzM3YzMuMTE4IDMuMTE5IDMuMTE4IDguMTk0IDAgMTEuMzEzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjM0NiA4LjI0Ny0zLjIxNSAzLjIxNS0yLjEyNS0yLjEyNVYxNWg1LjY2M2wtMi4xMjQtMi4xMjQgMy4yMTUtMy4yMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTGVmdEluZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA3aDEwdjJINHptMC00aDE2djJINHptMCA4aDEwdjJINHptMCA0aDEwdjJINHptMCA0aDE2djJINHptMTYtM1Y4bC00IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTGVmdFRvcEFycm93Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OTMgMi4wMDdhOS45MjggOS45MjggMCAwIDAtNy4wNzEgMi45MjJjLTMuODk5IDMuODk5LTMuODk5IDEwLjI0MyAwIDE0LjE0M2E5LjkzMSA5LjkzMSAwIDAgMCA3LjA3MSAyLjkyMyA5LjkyOCA5LjkyOCAwIDAgMCA3LjA3MS0yLjkyM2MzLjg5OS0zLjg5OSAzLjg5OS0xMC4yNDMgMC0xNC4xNDNhOS45MjcgOS45MjcgMCAwIDAtNy4wNzEtMi45MjJ6bTUuNjU3IDE1LjY1YTcuOTQ1IDcuOTQ1IDAgMCAxLTUuNjU3IDIuMzM3Yy0yLjE0MSAwLTQuMTUtLjgzLTUuNjU3LTIuMzM3LTMuMTE5LTMuMTE5LTMuMTE5LTguMTk1IDAtMTEuMzE0YTcuOTQ2IDcuOTQ2IDAgMCAxIDUuNjU3LTIuMzM2YzIuMTQyIDAgNC4xNS44MjkgNS42NTcgMi4zMzYgMy4xMiAzLjExOSAzLjEyIDguMTk1IDAgMTEuMzE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjY1NyA5SDguOTkzdjUuNjYzbDIuMTI1LTIuMTI0IDMuMjE1IDMuMjE0IDEuNDE0LTEuNDE0LTMuMjE1LTMuMjE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgM2gydjE4SDd6TTQgM2gydjE4SDR6bTYgMGgydjE4aC0yem05LjA2MiAxNy43OTItNi4yMjMtMTYuODkgMS44NzctLjY5MiA2LjIyMyAxNi44OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMaWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4aC01LjYxMmwxLjEyMy0zLjM2N2MuMjAyLS42MDguMS0xLjI4Mi0uMjc1LTEuODAyUzE0LjI1MyAyIDEzLjYxMiAySDEyYy0uMjk3IDAtLjU3OC4xMzItLjc2OS4zNkw2LjUzMSA4SDRjLTEuMTAzIDAtMiAuODk3LTIgMnY5YzAgMS4xMDMuODk3IDIgMiAyaDEzLjMwN2EyLjAxIDIuMDEgMCAwIDAgMS44NzMtMS4yOThsMi43NTctNy4zNTFBMSAxIDAgMCAwIDIyIDEydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxMGgydjlINHYtOXptMTYgMS44MTlMMTcuMzA3IDE5SDhWOS4zNjJMMTIuNDY4IDRoMS4xNDZsLTEuNTYyIDQuNjgzQS45OTguOTk4IDAgMCAwIDEzIDEwaDd2MS44MTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTGluZUNoYXJ0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzSDN2MThoMTh2LTJINXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMi41ODYgOC43MDcgOC4yOTMgNy4yOTMgOS43MDcgMTMgMTUuNDE0bDMtMyA0LjI5MyA0LjI5MyAxLjQxNC0xLjQxNEwxNiA5LjU4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMaW5lQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM3YxN2ExIDEgMCAwIDAgMSAxaDE3di0ySDVWM0gzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjI5MyAxNC43MDdhLjk5OS45OTkgMCAwIDAgMS40MTQgMGw1LTUtMS40MTQtMS40MTRMMTYgMTIuNTg2bC0yLjI5My0yLjI5M2EuOTk5Ljk5OSAwIDAgMC0xLjQxNCAwbC01IDUgMS40MTQgMS40MTRMMTMgMTIuNDE0bDIuMjkzIDIuMjkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpbmtBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjIyIDE5Ljc3OGE0Ljk4MyA0Ljk4MyAwIDAgMCAzLjUzNSAxLjQ2MiA0Ljk4NiA0Ljk4NiAwIDAgMCAzLjUzNi0xLjQ2MmwyLjgyOC0yLjgyOS0xLjQxNC0xLjQxNC0yLjgyOCAyLjgyOWEzLjAwNyAzLjAwNyAwIDAgMS00LjI0MyAwIDMuMDA1IDMuMDA1IDAgMCAxIDAtNC4yNDNsMi44MjktMi44MjgtMS40MTQtMS40MTQtMi44MjkgMi44MjhhNS4wMDYgNS4wMDYgMCAwIDAgMCA3LjA3MXptMTUuNTU2LTguNDg1YTUuMDA4IDUuMDA4IDAgMCAwIDAtNy4wNzEgNS4wMDYgNS4wMDYgMCAwIDAtNy4wNzEgMEw5Ljg3OSA3LjA1MWwxLjQxNCAxLjQxNCAyLjgyOC0yLjgyOWEzLjAwNyAzLjAwNyAwIDAgMSA0LjI0MyAwIDMuMDA1IDMuMDA1IDAgMCAxIDAgNC4yNDNsLTIuODI5IDIuODI4IDEuNDE0IDEuNDE0IDIuODI5LTIuODI4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguNDY0IDE2Ljk1LTEuNDE1LTEuNDE0IDguNDg3LTguNDg2IDEuNDE0IDEuNDE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpbmtFeHRlcm5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgMyAzLjI5MyAzLjI5My03IDcgMS40MTQgMS40MTQgNy03TDIxIDExVjN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDdsLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0ydi01bC0yLTJ2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQ2NSAxMS4yOTNjMS4xMzMtMS4xMzMgMy4xMDktMS4xMzMgNC4yNDIgMGwuNzA3LjcwNyAxLjQxNC0xLjQxNC0uNzA3LS43MDdjLS45NDMtLjk0NC0yLjE5OS0xLjQ2NS0zLjUzNS0xLjQ2NXMtMi41OTIuNTIxLTMuNTM1IDEuNDY1TDQuOTI5IDEyYTUuMDA4IDUuMDA4IDAgMCAwIDAgNy4wNzEgNC45ODMgNC45ODMgMCAwIDAgMy41MzUgMS40NjJBNC45ODIgNC45ODIgMCAwIDAgMTIgMTkuMDcxbC43MDctLjcwNy0xLjQxNC0xLjQxNC0uNzA3LjcwN2EzLjAwNyAzLjAwNyAwIDAgMS00LjI0MyAwIDMuMDA1IDMuMDA1IDAgMCAxIDAtNC4yNDNsMi4xMjItMi4xMjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNC45MjktLjcwNy43MDcgMS40MTQgMS40MTQuNzA3LS43MDdhMy4wMDcgMy4wMDcgMCAwIDEgNC4yNDMgMCAzLjAwNSAzLjAwNSAwIDAgMSAwIDQuMjQzbC0yLjEyMiAyLjEyMWMtMS4xMzMgMS4xMzMtMy4xMDkgMS4xMzMtNC4yNDIgMEwxMC41ODYgMTJsLTEuNDE0IDEuNDE0LjcwNy43MDdjLjk0My45NDQgMi4xOTkgMS40NjUgMy41MzUgMS40NjVzMi41OTItLjUyMSAzLjUzNS0xLjQ2NUwxOS4wNzEgMTJhNS4wMDggNS4wMDggMCAwIDAgMC03LjA3MSA1LjAwNiA1LjAwNiAwIDAgMC03LjA3MSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMjFoMmM0LjQxMSAwIDgtNC4wMzggOC05aC0yYzAgMy44Ni0yLjY5MSA3LTYgN3YtNy4zNThsNi0xLjM4NVY4LjIwNGwtNiAxLjM4NVY3LjY0Mmw2LTEuMzg1VjQuMjA0bC02IDEuMzg1VjNIOXYzLjA1bC0zIC42OTN2Mi4wNTNsMy0uNjkydjEuOTQ3bC0zIC42OTJ2Mi4wNTNsMy0uNjkyVjIxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpc3RDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA3aDExdjJINHptMCA0aDExdjJINHptMCA0aDd2Mkg0em0xNS4yOTktMi43MDgtNC4zIDQuMjkxLTEuMjkyLTEuMjkxLTEuNDE0IDEuNDE1IDIuNzA2IDIuNzA0IDUuNzEyLTUuNzAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpc3RNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMDYzIDE1SDEzdjJoOXYtMnpNNCA3aDExdjJINHptMCA0aDExdjJINHptMCA0aDd2Mkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxpc3RPbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4yODIgMTIuMDY0Yy0uNDI4LjMyOC0uNzIuNjA5LS44NzUuODUxLS4xNTUuMjQtLjI0OS40OTgtLjI3OS43NjhoMi42Nzl2LS43NDhINS40MTNjLjA4MS0uMDgxLjE1Mi0uMTUxLjIxMi0uMjAxLjA2Mi0uMDUuMTgyLS4xNDIuMzYxLS4yNy4zMDMtLjIxOC41MTEtLjQyLjYyNi0uNjA0LjExNi0uMTg2LjE3My0uMzc1LjE3My0uNTc4YS44OTguODk4IDAgMCAwLS4xNTEtLjUxMi44OTIuODkyIDAgMCAwLS40MTItLjM0MWMtLjE3NC0uMDc2LS40MTktLjExMS0uNzMzLS4xMTEtLjMgMC0uNTM3LjAzOC0uNzA2LjExNGEuODg5Ljg4OSAwIDAgMC0uMzk2LjMzOGMtLjA5NC4xNDMtLjE1OS4zNDYtLjE5NC42MDRsLjg5NC4wNzZjLjAyNS0uMTg4LjA3NC0uMzE3LjE0Ny0uMzk0YS4zNzUuMzc1IDAgMCAxIC4yNzktLjEwOGMuMTEgMCAuMi4wMzUuMjcyLjEwOGEuMzQ0LjM0NCAwIDAgMSAuMTA4LjI1OC41NS41NSAwIDAgMS0uMTA4LjI5N2MtLjA3NC4xMDItLjI0MS4yNTQtLjUwMy40NTN6bS4wNTUgNi4zODZhLjM5OC4zOTggMCAwIDEtLjI4Mi0uMTA1Yy0uMDc0LS4wNy0uMTI4LS4xOTUtLjE2Mi0uMzc4TDQgMTguMDg1Yy4wNTkuMjA0LjE0Mi4zNzIuMjUxLjUwNi4xMDkuMTMzLjI0OC4yMzUuNDE3LjMwNi4xNjguMDY5LjM5OS4xMDMuNjkyLjEwMy4zIDAgLjU0MS0uMDQ3LjcyNS0uMTRhMSAxIDAgMCAwIC40MjQtLjQwM2MuMDk4LS4xNzUuMTQ2LS4zNTQuMTQ2LS41NDRhLjgyMy44MjMgMCAwIDAtLjA4OC0uMzkzLjcwOC43MDggMCAwIDAtLjI0OS0uMjYxIDEuMDE1IDEuMDE1IDAgMCAwLS4yODYtLjExLjk0My45NDMgMCAwIDAgLjM0NS0uMjk5LjY3My42NzMgMCAwIDAgLjExMy0uMzgzLjc0Ny43NDcgMCAwIDAtLjI4MS0uNTk2Yy0uMTg3LS4xNTktLjQ5LS4yMzgtLjkwOS0uMjM4LS4zNjUgMC0uNjQ4LjA3Mi0uODQ3LjIxOS0uMi4xNDMtLjMzNC4zNTMtLjQwNC42MjZsLjg0NC4xNTFjLjAyMy0uMTYyLjA2Ny0uMjc0LjEzMy0uMzM4cy4xNTEtLjA5OC4yNTctLjA5OGEuMzMuMzMgMCAwIDEgLjI0MS4wODljLjA1OS4wNi4wODcuMTM5LjA4Ny4yMzggMCAuMTA0LS4wMzguMTkzLS4xMTcuMjdzLS4xNzcuMTEyLS4yOTMuMTEyYS45MDcuOTA3IDAgMCAxLS4xMTYtLjAxMWwtLjA0NS42NDlhMS4xMyAxLjEzIDAgMCAxIC4yODktLjA1NmMuMTMyIDAgLjIzNy4wNDEuMzEzLjEyNi4wNzcuMDgyLjExNS4xOTkuMTE1LjM1MiAwIC4xNDYtLjA0LjI2Ni0uMTE5LjM1NGEuMzk0LjM5NCAwIDAgMS0uMzAxLjEzNHptLjk0OC0xMC4wODNWNWgtLjczOWExLjQ3IDEuNDcgMCAwIDEtLjM5NC41MjNjLS4xNjguMTQyLS40MDQuMjYyLS43MDguMzY1di43NTRhMi41OTUgMi41OTUgMCAwIDAgLjkzNy0uNDh2Mi4yMDZoLjkwNHpNOSA2aDExdjJIOXptMCA1aDExdjJIOXptMCA1aDExdjJIOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMaXN0UGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTV2LTNoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLS45Mzd6TTQgN2gxMXYySDR6bTAgNGgxMXYySDR6bTAgNGg4djJINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMaXN0VWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmgydjJINHptMCA1aDJ2Mkg0em0wIDVoMnYySDR6bTE2LThWNkg4LjAyM3YySDE4Ljh6TTggMTFoMTJ2Mkg4em0wIDVoMTJ2Mkg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvYWRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjNS40MjEgMCAxMC00LjU3OSAxMC0xMGgtMmMwIDQuMzM3LTMuNjYzIDgtOCA4cy04LTMuNjYzLTgtOGMwLTQuMzM2IDMuNjYzLTggOC04VjJDNi41NzkgMiAyIDYuNTggMiAxMmMwIDUuNDIxIDQuNTc5IDEwIDEwIDEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvYWRlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjIwXCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuMzQzXCIsXCJjeVwiOlwiMTcuNjU3XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNy42NTdcIixcImN5XCI6XCI2LjM0M1wiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNFwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyLjAwMVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMjBcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi4zNDNcIixcImN5XCI6XCI2LjM0NFwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTcuNjU3XCIsXCJjeVwiOlwiMTcuNjU4XCIsXCJyXCI6XCIyXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTG9hZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDExaDV2Mkgyem0xNSAwaDV2MmgtNXptLTYgNmgydjVoLTJ6bTAtMTVoMnY1aC0yek00LjIyMiA1LjYzNmwxLjQxNC0xLjQxNCAzLjUzNiAzLjUzNi0xLjQxNCAxLjQxNHptMTUuNTU2IDEyLjcyOC0xLjQxNCAxLjQxNC0zLjUzNi0zLjUzNiAxLjQxNC0xLjQxNHptLTEyLjAyLTMuNTM2IDEuNDE0IDEuNDE0LTMuNTM2IDMuNTM2LTEuNDE0LTEuNDE0em03LjA3LTcuMDcxIDMuNTM2LTMuNTM1IDEuNDE0IDEuNDE1LTMuNTM2IDMuNTM1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvY2F0aW9uUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNDIgMjEuODE1YTEuMDA0IDEuMDA0IDAgMCAwIDEuMTYgMEMxMi44ODQgMjEuNTk4IDIwLjAyOSAxNi40NCAyMCAxMGMwLTQuNDExLTMuNTg5LTgtOC04UzQgNS41ODkgNCA5Ljk5NmMtLjAyOSA2LjQ0NCA3LjExNiAxMS42MDIgNy40MiAxMS44MTl6TTEyIDRjMy4zMDkgMCA2IDIuNjkxIDYgNi4wMDQuMDIxIDQuNDM4LTQuMzg4IDguNDIzLTYgOS43MzEtMS42MTEtMS4zMDgtNi4wMjEtNS4yOTMtNi05LjczNSAwLTMuMzA5IDIuNjkxLTYgNi02elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0aDJ2LTNoM1Y5aC0zVjZoLTJ2M0g4djJoM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMb2NrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzkuMjQzIDIgNyA0LjI0MyA3IDd2M0g2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OGMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJ2LThjMC0xLjEwMy0uODk3LTItMi0yaC0xVjdjMC0yLjc1Ny0yLjI0My01LTUtNXptNiAxMCAuMDAyIDhINnYtOGgxMnptLTktMlY3YzAtMS42NTQgMS4zNDYtMyAzLTNzMyAxLjM0NiAzIDN2M0g5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvY2tPcGVuQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA4VjdjMC0yLjc1Ny0yLjI0My01LTUtNVM3IDQuMjQzIDcgN3YzSDZjLTEuMTAzIDAtMiAuODk3LTIgMnY4YzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMnYtOGMwLTEuMTAzLS44OTctMi0yLTJIOVY3YzAtMS42NTQgMS4zNDYtMyAzLTNzMyAxLjM0NiAzIDN2MWgyem0xIDQgLjAwMiA4SDZ2LThoMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTG9ja09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjMS42NTQgMCAzIDEuMzQ2IDMgM2gyYzAtMi43NTctMi4yNDMtNS01LTVTNyA0LjI0MyA3IDd2Mkg2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OWMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTljMC0xLjEwMy0uODk3LTItMi0ySDlWN2MwLTEuNjU0IDEuMzQ2LTMgMy0zem02LjAwMiAxNkgxM3YtMi4yNzhjLjU5NS0uMzQ3IDEtLjk4NSAxLTEuNzIyIDAtMS4xMDMtLjg5Ny0yLTItMnMtMiAuODk3LTIgMmMwIC43MzYuNDA1IDEuMzc1IDEgMS43MjJWMjBINnYtOWgxMmwuMDAyIDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM5LjI0MyAyIDcgNC4yNDMgNyA3djJINmMtMS4xMDMgMC0yIC44OTctMiAydjljMCAxLjEwMy44OTcgMiAyIDJoMTJjMS4xMDMgMCAyLS44OTcgMi0ydi05YzAtMS4xMDMtLjg5Ny0yLTItMmgtMVY3YzAtMi43NTctMi4yNDMtNS01LTV6TTkgN2MwLTEuNjU0IDEuMzQ2LTMgMy0zczMgMS4zNDYgMyAzdjJIOVY3em05LjAwMiAxM0gxM3YtMi4yNzhjLjU5NS0uMzQ3IDEtLjk4NSAxLTEuNzIyIDAtMS4xMDMtLjg5Ny0yLTItMnMtMiAuODk3LTIgMmMwIC43MzYuNDA1IDEuMzc1IDEgMS43MjJWMjBINnYtOWgxMmwuMDAyIDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTG9nSW5DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjk5OCAxNiA1LTQtNS00djNoLTl2Mmg5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjk5OSAyLjk5OWE4LjkzOCA4LjkzOCAwIDAgMC02LjM2NCAyLjYzN0w4LjA0OSA3LjA1YzEuMzIyLTEuMzIyIDMuMDgtMi4wNTEgNC45NS0yLjA1MXMzLjYyOC43MjkgNC45NSAyLjA1MVMyMCAxMC4xMyAyMCAxMnMtLjcyOSAzLjYyOC0yLjA1MSA0Ljk1LTMuMDggMi4wNTEtNC45NSAyLjA1MS0zLjYyOC0uNzI5LTQuOTUtMi4wNTFsLTEuNDE0IDEuNDE0YzEuNjk5IDEuNyAzLjk1OSAyLjYzNyA2LjM2NCAyLjYzN3M0LjY2NS0uOTM3IDYuMzY0LTIuNjM3QzIxLjA2MyAxNi42NjUgMjIgMTQuNDA1IDIyIDEycy0uOTM3LTQuNjY1LTIuNjM3LTYuMzY0YTguOTM4IDguOTM4IDAgMCAwLTYuMzY0LTIuNjM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvZ0luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyAxNiA1LTQtNS00djNINHYyaDl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM2gtOWMtMS4xMDMgMC0yIC44OTctMiAydjRoMlY1aDl2MTRoLTl2LTRIOXY0YzAgMS4xMDMuODk3IDIgMiAyaDljMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvZ091dENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiAxMiA1IDR2LTNoOXYtMkg3Vjh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMDAxIDIuOTk5YTguOTM4IDguOTM4IDAgMCAwLTYuMzY0IDIuNjM3TDguMDUxIDcuMDVjMS4zMjItMS4zMjIgMy4wOC0yLjA1MSA0Ljk1LTIuMDUxczMuNjI4LjcyOSA0Ljk1IDIuMDUxIDIuMDUxIDMuMDggMi4wNTEgNC45NS0uNzI5IDMuNjI4LTIuMDUxIDQuOTUtMy4wOCAyLjA1MS00Ljk1IDIuMDUxLTMuNjI4LS43MjktNC45NS0yLjA1MWwtMS40MTQgMS40MTRjMS42OTkgMS43IDMuOTU5IDIuNjM3IDYuMzY0IDIuNjM3czQuNjY1LS45MzcgNi4zNjQtMi42MzdjMS43LTEuNjk5IDIuNjM3LTMuOTU5IDIuNjM3LTYuMzY0cy0uOTM3LTQuNjY1LTIuNjM3LTYuMzY0YTguOTM4IDguOTM4IDAgMCAwLTYuMzY0LTIuNjM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaUxvZ091dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTN2LTJIN1Y4bC01IDQgNSA0di0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNoLTljLTEuMTAzIDAtMiAuODk3LTIgMnY0aDJWNWg5djE0aC05di00SDl2NGMwIDEuMTAzLjg5NyAyIDIgMmg5YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlMb3dWaXNpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDQuOTk4Yy0xLjgzNiAwLTMuMzU2LjM4OS00LjYxNy45NzFMMy43MDcgMi4yOTMgMi4yOTMgMy43MDdsMy4zMTUgMy4zMTZjLTIuNjEzIDEuOTUyLTMuNTQzIDQuNjE4LTMuNTU3IDQuNjZsLS4xMDUuMzE2LjEwNS4zMTZDMi4wNzMgMTIuMzgyIDQuMzY3IDE5IDEyIDE5YzEuODM1IDAgMy4zNTQtLjM4OSA0LjYxNS0uOTcxbDMuNjc4IDMuNjc4IDEuNDE0LTEuNDE0LTMuMzE3LTMuMzE3YzIuNjE0LTEuOTUyIDMuNTQ1LTQuNjE4IDMuNTU5LTQuNjZsLjEwNS0uMzE2LS4xMDUtLjMxNmMtLjAyMi0uMDY4LTIuMzE2LTYuNjg2LTkuOTQ5LTYuNjg2ek00LjA3NCAxMmMuMTAzLS4yMzYuMjc0LS41ODYuNTIxLS45ODlsNS44NjcgNS44NjdDNi4yNDkgMTYuMjMgNC41MjMgMTMuMDM1IDQuMDc0IDEyem05LjI0NyA0LjkwNy03LjQ4LTcuNDgxYTguMTM4IDguMTM4IDAgMCAxIDEuMTg4LS45ODJsOC4wNTUgOC4wNTRhOC44MzUgOC44MzUgMCAwIDEtMS43NjMuNDA5em0zLjY0OC0xLjM1Mi0xLjU0MS0xLjU0MWMuMzU0LS41OTYuNTcyLTEuMjguNTcyLTIuMDE1IDAtLjQ3NC0uMDk5LS45MjQtLjI1NS0xLjM0OUEuOTgzLjk4MyAwIDAgMSAxNSAxMWExIDEgMCAwIDEtMS0xYzAtLjQzOS4yODgtLjgwMi42ODItLjkzNkEzLjk3IDMuOTcgMCAwIDAgMTIgNy45OTljLS43MzUgMC0xLjQxOS4yMTgtMi4wMTUuNTcybC0xLjA3LTEuMDdBOS4yOTIgOS4yOTIgMCAwIDEgMTIgNi45OThjNS4zNTEgMCA3LjQyNSAzLjg0NyA3LjkyNiA1YTguNTczIDguNTczIDAgMCAxLTIuOTU3IDMuNTU3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1hZ25ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtM2MtMS4xMDMgMC0yIC44OTctMiAydjhjMCAxLjEwMy0uODk3IDItMiAycy0yLS44OTctMi0yVjVjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnY4YzAgNC45NjMgNC4wMzcgOSA5IDlzOS00LjAzNyA5LTlWNWMwLTEuMTAzLS44OTctMi0yLTJ6bS0zIDJoM3YzaC0zVjV6TTUgNWgzdjNINVY1em03IDE1Yy0zLjg1OSAwLTctMy4xNDEtNy03di0zaDN2M2MwIDIuMjA2IDEuNzk0IDQgNCA0czQtMS43OTQgNC00di0zaDN2M2MwIDMuODU5LTMuMTQxIDctNyA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1haWxTZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDZjLTEuMTAzIDAtMiAuODk3LTIgMnY1aDJWOGw2LjQgNC44YTEuMDAxIDEuMDAxIDAgMCAwIDEuMiAwTDIwIDh2OWgtOHYyaDhjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yem0tNyA2Ljc1TDYuNjY2IDZoMTIuNjY4TDEzIDEwLjc1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTJoN3YySDJ6bTIgM2g2djJINHptMyAzaDR2Mkg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1hbGVTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMVY0aC03bDIuNzkzIDIuNzkzLTQuMzIyIDQuMzIyQTUuOTYxIDUuOTYxIDAgMCAwIDggMTBjLTMuMzA5IDAtNiAyLjY5MS02IDZzMi42OTEgNiA2IDYgNi0yLjY5MSA2LTZjMC0xLjI5NC0uNDE2LTIuNDktMS4xMTUtMy40NzFsNC4zMjItNC4zMjJMMjAgMTF6TTggMjBjLTIuMjA2IDAtNC0xLjc5NC00LTRzMS43OTQtNCA0LTQgNCAxLjc5NCA0IDQtMS43OTQgNC00IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3SDlhMSAxIDAgMCAwLTEgMXY3aDJ2N2g0di03aDJWOGExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1hcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDQ3IDYuMTA1LTYtM2ExIDEgMCAwIDAtLjg5NSAwTDkgNS44ODIgMy40NDcgMy4xMDVBMSAxIDAgMCAwIDIgNHYxM2MwIC4zNzkuMjE0LjcyNS41NTMuODk1bDYgM2ExIDEgMCAwIDAgLjg5NSAwTDE1IDE4LjExOGw1LjU1MyAyLjc3NmEuOTkyLjk5MiAwIDAgMCAuOTcyLS4wNDNjLjI5NS0uMTgzLjQ3NS0uNTA0LjQ3NS0uODUxVjdjMC0uMzc5LS4yMTQtLjcyNS0uNTUzLS44OTV6TTEwIDcuNjE4bDQtMnYxMC43NjRsLTQgMlY3LjYxOHptLTYtMiA0IDJ2MTAuNzY0bC00LTJWNS42MTh6bTE2IDEyLjc2NC00LTJWNS42MThsNCAydjEwLjc2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNYXBQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE3IDEtMlY5Ljg1OGMxLjcyMS0uNDQ3IDMtMiAzLTMuODU4IDAtMi4yMDYtMS43OTQtNC00LTRTOCAzLjc5NCA4IDZjMCAxLjg1OCAxLjI3OSAzLjQxMSAzIDMuODU4VjE1bDEgMnpNMTAgNmMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyLS44OTcgMi0yIDItMi0uODk3LTItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi4yNjcgMTAuNTYzLS41MzMgMS45MjhDMTguMzI1IDEzLjIwNyAyMCAxNC41ODQgMjAgMTZjMCAxLjg5Mi0zLjI4NSA0LTggNHMtOC0yLjEwOC04LTRjMC0xLjQxNiAxLjY3NS0yLjc5MyA0LjI2Ny0zLjUxbC0uNTMzLTEuOTI4QzQuMTk3IDExLjU0IDIgMTMuNjIzIDIgMTZjMCAzLjM2NCA0LjM5MyA2IDEwIDZzMTAtMi42MzYgMTAtNmMwLTIuMzc3LTIuMTk3LTQuNDYtNS43MzMtNS40Mzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGMyLjIwNiAwIDQtMS43OTQgNC00cy0xLjc5NC00LTQtNC00IDEuNzk0LTQgNCAxLjc5NCA0IDQgNHptMC02YzEuMTAzIDAgMiAuODk3IDIgMnMtLjg5NyAyLTIgMi0yLS44OTctMi0yIC44OTctMiAyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNDIgMjEuODE0YS45OTguOTk4IDAgMCAwIDEuMTYgMEMxMi44ODQgMjEuNTk5IDIwLjAyOSAxNi40NCAyMCAxMGMwLTQuNDExLTMuNTg5LTgtOC04UzQgNS41ODkgNCA5Ljk5NWMtLjAyOSA2LjQ0NSA3LjExNiAxMS42MDQgNy40MiAxMS44MTl6TTEyIDRjMy4zMDkgMCA2IDIuNjkxIDYgNi4wMDUuMDIxIDQuNDM4LTQuMzg4IDguNDIzLTYgOS43My0xLjYxMS0xLjMwOC02LjAyMS01LjI5NC02LTkuNzM1IDAtMy4zMDkgMi42OTEtNiA2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNkg1QzMuMzQ2IDYgMiA3LjM0NiAyIDl2NWMwIDIuMjA2IDEuNzk0IDQgNCA0aDEuNjM3YzEuMTY2IDAgMi4yOC0uNTU3IDIuOTgxLTEuNDkxLjY2LS44NzkgMi4xMDQtLjg4IDIuNzY0LjAwMUEzLjc0NCAzLjc0NCAwIDAgMCAxNi4zNjMgMThIMThjMi4yMDYgMCA0LTEuNzk0IDQtNFY5YzAtMS42NTQtMS4zNDYtMy0zLTN6bTEgOGMwIDEuMTAzLS44OTcgMi0yIDJoLTEuNjM3Yy0uNTQgMC0xLjA1Ny0uMjU5LTEuMzgyLS42OS0uNzEtLjk0OC0xLjc5Ny0xLjQ5Mi0yLjk4MS0xLjQ5MnMtMi4yNzEuNTQ0LTIuOTgxIDEuNDkxQTEuNzQxIDEuNzQxIDAgMCAxIDcuNjM3IDE2SDZjLTEuMTAzIDAtMi0uODk3LTItMlY5YzAtLjU1MS40NDgtMSAxLTFoMTRjLjU1MiAwIDEgLjQ0OSAxIDF2NXpcIn19LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxMS41XCIsXCJyeFwiOlwiMi41XCIsXCJyeVwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImVsbGlwc2VcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjExLjVcIixcInJ4XCI6XCIyLjVcIixcInJ5XCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZWRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjMy44NTkgMCA3LTMuMTQxIDctN3MtMy4xNDEtNy03LTdjLTMuODYgMC03IDMuMTQxLTcgN3MzLjE0IDcgNyA3em0wLTEyYzIuNzU3IDAgNSAyLjI0MyA1IDVzLTIuMjQzIDUtNSA1LTUtMi4yNDMtNS01IDIuMjQzLTUgNS01em0tMS04SDd2NS41MThhOC45NTcgOC45NTcgMCAwIDEgNC0xLjQ1OVYyem02IDBoLTR2NC4wNTlhOC45NTcgOC45NTcgMCAwIDEgNCAxLjQ1OVYyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjAxOSAxNS44MTEtLjQ2OCAyLjcyNkwxMiAxNy4yNWwyLjQ0OSAxLjI4Ny0uNDY4LTIuNzI2IDEuOTgyLTEuOTMyLTIuNzM4LS4zOThMMTIgMTFsLTEuMjI1IDIuNDgxLTIuNzM4LjM5OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZWhBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMGg0djJoLTR6bS02LjAyNiA1SDE2djJINy45NzR6TTYgMTBoNHYySDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVoQmxhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNDkzXCIsXCJjeVwiOlwiMTAuNDkzXCIsXCJyXCI6XCIxLjQ5M1wifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1laCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS40OTNcIixcImN5XCI6XCIxMC40OTNcIixcInJcIjpcIjEuNDkzXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy45NzQgMTVIMTZ2Mkg3Ljk3NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZW1vcnlDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDR2MTZjMCAxLjEwMy44OTcgMiAyIDJoMTJjMS4xMDMgMCAyLS44OTcgMi0yVjhhLjk5Ny45OTcgMCAwIDAtLjI5My0uNzA3bC01LTVBLjk5Ni45OTYgMCAwIDAgMTQgMkg2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ6bTE0IDQuNDE0TDE4LjAwMSAyMEg2VjRoNy41ODZMMTggOC40MTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA2aDJ2NEg4em00IDBoMnY0aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lbnVBbHRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDExaDEydjJINHptMC01aDE2djJINHptMCAxMmg3LjIzNXYtMkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lbnVBbHRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2aDE2djJINHptNCA1aDEydjJIOHptNSA1aDd2MmgtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZW51IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZoMTZ2Mkg0em0wIDVoMTZ2Mkg0em0wIDVoMTZ2Mkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzSDVhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoOWEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOXYtOWEyIDIgMCAwIDAtMi0yaC0xdjhhMiAyIDAgMCAxLTIgMkg4djFhMiAyIDAgMCAwIDIgMmg5YTIgMiAwIDAgMCAyLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZUFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoM3YzLjc2N0wxMy4yNzcgMThIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0aC03LjI3N0w5IDE4LjIzM1YxNkg0VjRoMTZ2MTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRoMnYtM2gzVjloLTNWNmgtMnYzSDh2MmgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VBbHRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTZjMCAxLjEwMy44OTcgMiAyIDJoMy41ODZMMTIgMjEuNDE0IDE1LjQxNCAxOEgxOWMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjEyek01IDRoMTR2MTJoLTQuNDE0TDEyIDE4LjU4NiA5LjQxNCAxNkg1VjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRoMnYtM2gzVjloLTNWNmgtMnYzSDh2MmgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VBbHRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA0djEyYzAgMS4xMDMuODk3IDIgMiAyaDMuNTg2TDEyIDIxLjQxNCAxNS40MTQgMThIMTljMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnptMiAwaDE0djEyaC00LjQxNEwxMiAxOC41ODYgOS40MTQgMTZINVY0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjIwNyA3LjIwNy0xLjQxNC0xLjQxNEwxMSAxMC41ODYgOC43MDcgOC4yOTMgNy4yOTMgOS43MDcgMTEgMTMuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VBbHREZXRhaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMmMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDMuNTg2TDEyIDIxLjQxNCAxNS40MTQgMThIMTljMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0ySDV6bTE0IDE0aC00LjQxNEwxMiAxOC41ODYgOS40MTQgMTZINVY0aDE0djEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2gxMHYySDd6bTAgNGg3djJIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlQWx0RG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoMy41ODZMMTIgMjEuNDE0IDE1LjQxNCAxOEgxOWMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bTAgMTRoLTQuNDE0TDEyIDE4LjU4NiA5LjQxNCAxNkg1VjRoMTR2MTJ6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjJcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlQWx0RWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41ODYgMTggMTIgMjEuNDE0IDE1LjQxNCAxOEgxOWMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDMuNTg2ek01IDRoMTR2MTJoLTQuNDE0TDEyIDE4LjU4NiA5LjQxNCAxNkg1VjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuNDc5IDcuMjE5LTQuOTc3IDQuOTY5djEuNzk5aDEuOGw0Ljk3NS00Ljk2OXptMi4yMTktMi4yMiAxLjggMS44LTEuMzcgMS4zNy0xLjgtMS43OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZUFsdEVycm9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgzLjU4NkwxMiAyMS40MTQgMTUuNDE0IDE4SDE5YzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMkg1em0xNCAxNGgtNC40MTRMMTIgMTguNTg2IDkuNDE0IDE2SDVWNGgxNHYxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2aDJ2NmgtMnptMCA3aDJ2MmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlQWx0TWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNTg2IDE4IDEyIDIxLjQxNCAxNS40MTQgMThIMTljMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgzLjU4NnpNNSA0aDE0djEyaC00LjQxNEwxMiAxOC41ODYgOS40MTQgMTZINVY0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggOWg4djJIOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlQWx0WCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41ODYgMTggMTIgMjEuNDE0IDE1LjQxNCAxOEgxOWMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDMuNTg2ek01IDRoMTR2MTJoLTQuNDE0TDEyIDE4LjU4NiA5LjQxNCAxNkg1VjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS43MDcgMTMuNzA3IDEyIDExLjQxNGwyLjI5MyAyLjI5MyAxLjQxNC0xLjQxNEwxMy40MTQgMTBsMi4yOTMtMi4yOTMtMS40MTQtMS40MTRMMTIgOC41ODYgOS43MDcgNi4yOTMgOC4yOTMgNy43MDcgMTAuNTg2IDEwbC0yLjI5MyAyLjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgzLjU4NkwxMiAyMS40MTQgMTUuNDE0IDE4SDE5YzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNGgtNC40MTRMMTIgMTguNTg2IDkuNDE0IDE2SDVWNGgxNHYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDN2My43NjdMMTMuMjc3IDE4SDIwYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNGgtNy4yNzdMOSAxOC4yMzNWMTZINFY0aDE2djEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjIwNyA3LjIwNy0xLjQxNC0xLjQxNEwxMSAxMC41ODYgOC43MDcgOC4yOTMgNy4yOTMgOS43MDcgMTEgMTMuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VEZXRhaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDN2My43NjdMMTMuMjc3IDE4SDIwYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnptMCAxNGgtNy4yNzdMOSAxOC4yMzNWMTZINFY0aDE2djEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2gxMHYySDd6bTAgNGg3djJIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlRG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoM3YzLjc2NkwxMy4yNzcgMThIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0aC03LjI3N0w5IDE4LjIzNFYxNkg0VjRoMTZ2MTJ6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjJcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoM3YzLjc2N0wxMy4yNzcgMThIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0aC03LjI3N0w5IDE4LjIzM1YxNkg0VjRoMTZ2MTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuODAzIDkuMTg5LTEuMzk5LTEuMzk4LTMuODY5IDMuODY0djEuMzk5aDEuMzk5em0uMzI3LTMuMTIzIDEuMzk4IDEuMzk5LTEuMDY2IDEuMDY2LTEuMzk5LTEuMzk4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoM3YzLjc2N0wxMy4yNzcgMThIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0aC03LjI3N0w5IDE4LjIzM1YxNkg0VjRoMTZ2MTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNmgydjVoLTJ6bTAgNmgydjJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgzdjMuNzY3TDEzLjI3NyAxOEgyMGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bTAgMTRoLTcuMjc3TDkgMTguMjMzVjE2SDRWNGgxNnYxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDloOHYySDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZVJvdW5kZWRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDUuNTg5IDIgMTBjMCAyLjkwOCAxLjg5OCA1LjUxNSA1IDYuOTM0VjIybDUuMzQtNC4wMDVDMTcuNjk3IDE3Ljg1MiAyMiAxNC4zMiAyMiAxMGMwLTQuNDExLTQuNDg2LTgtMTAtOHptMCAxNGgtLjMzM0w5IDE4di0yLjQxN2wtLjY0MS0uMjQ3QzUuNjcgMTQuMzAxIDQgMTIuMjU2IDQgMTBjMC0zLjMwOSAzLjU4OS02IDgtNnM4IDIuNjkxIDggNi0zLjU4OSA2LTggNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA2aC0ydjNIOHYyaDN2M2gydi0zaDNWOWgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlUm91bmRlZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA1LjU4OSAyIDEwYzAgMi45MDggMS44OTggNS41MTUgNSA2LjkzNFYyMmw1LjMzOS00LjAwNUMxNy42OTcgMTcuODUyIDIyIDE0LjMyIDIyIDEwYzAtNC40MTEtNC40ODYtOC0xMC04em0wIDE0aC0uMzMzTDkgMTh2LTIuNDE3bC0uNjQxLS4yNDdDNS42NyAxNC4zMDEgNCAxMi4yNTYgNCAxMGMwLTMuMzA5IDMuNTg5LTYgOC02czggMi42OTEgOCA2LTMuNTg5IDYtOCA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDExLjU4NiA4LjcwNyA5LjI5M2wtMS40MTQgMS40MTRMMTEgMTQuNDE0bDYuMjA3LTYuMjA3LTEuNDE0LTEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VSb3VuZGVkRGV0YWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA1LjU4OSAyIDEwYzAgMi45MDggMS44OTggNS41MTUgNSA2LjkzNFYyMmw1LjM0LTQuMDA1QzE3LjY5NyAxNy44NTIgMjIgMTQuMzIgMjIgMTBjMC00LjQxMS00LjQ4Ni04LTEwLTh6bTAgMTRoLS4zMzNMOSAxOHYtMi40MTdsLS42NDEtLjI0N0M1LjY3IDE0LjMwMSA0IDEyLjI1NiA0IDEwYzAtMy4zMDkgMy41ODktNiA4LTZzOCAyLjY5MSA4IDYtMy41ODkgNi04IDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDEwdjJIN3ptMCA0aDd2Mkg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VSb3VuZGVkRG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNS41ODkgMiAxMGMwIDIuOTA4IDEuODk3IDUuNTE1IDUgNi45MzRWMjJsNS4zNC00LjAwNEMxNy42OTcgMTcuODUyIDIyIDE0LjMyIDIyIDEwYzAtNC40MTEtNC40ODYtOC0xMC04em0wIDE0aC0uMzMzTDkgMTh2LTIuNDE3bC0uNjQxLS4yNDdDNS42NzEgMTQuMzAxIDQgMTIuMjU2IDQgMTBjMC0zLjMwOSAzLjU4OS02IDgtNnM4IDIuNjkxIDggNi0zLjU4OSA2LTggNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlUm91bmRlZEVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDUuNTg5IDIgMTBjMCAyLjkwOCAxLjg5OCA1LjUxNSA1IDYuOTM0VjIybDUuMzQtNC4wMDVDMTcuNjk3IDE3Ljg1MiAyMiAxNC4zMiAyMiAxMGMwLTQuNDExLTQuNDg2LTgtMTAtOHptMCAxNGgtLjMzM0w5IDE4di0yLjQxN2wtLjY0MS0uMjQ3QzUuNjcgMTQuMzAxIDQgMTIuMjU2IDQgMTBjMC0zLjMwOSAzLjU4OS02IDgtNnM4IDIuNjkxIDggNi0zLjU4OSA2LTggNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUwMyAxMS41ODl2MS4zOThoMS4zOThsMy44Ny0zLjg2NC0xLjM5OS0xLjM5OHptNS45MjctMy4xMjUtMS4zOTgtMS4zOTggMS4wNjctMS4wNjcgMS4zOTggMS4zOTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZVJvdW5kZWRFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNS41ODkgMiAxMGMwIDIuOTA4IDEuODk4IDUuNTE1IDUgNi45MzRWMjJsNS4zNC00LjAwNUMxNy42OTcgMTcuODUyIDIyIDE0LjMyIDIyIDEwYzAtNC40MTEtNC40ODYtOC0xMC04em0wIDE0aC0uMzMzTDkgMTh2LTIuNDE3bC0uNjQxLS4yNDdDNS42NyAxNC4zMDEgNCAxMi4yNTYgNCAxMGMwLTMuMzA5IDMuNTg5LTYgOC02czggMi42OTEgOCA2LTMuNTg5IDYtOCA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZoMnY1aC0yem0wIDZoMnYyaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VSb3VuZGVkTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDUuNTg5IDIgMTBjMCAyLjkwOCAxLjg5OCA1LjUxNSA1IDYuOTM0VjIybDUuMzQtNC4wMDVDMTcuNjk3IDE3Ljg1MiAyMiAxNC4zMiAyMiAxMGMwLTQuNDExLTQuNDg2LTgtMTAtOHptMCAxNGgtLjMzM0w5IDE4di0yLjQxN2wtLjY0MS0uMjQ3QzUuNjcgMTQuMzAxIDQgMTIuMjU2IDQgMTBjMC0zLjMwOSAzLjU4OS02IDgtNnM4IDIuNjkxIDggNi0zLjU4OSA2LTggNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDloOHYySDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZVJvdW5kZWRYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA1LjU4OSAyIDEwYzAgMi45MDggMS44OTggNS41MTUgNSA2LjkzNFYyMmw1LjM0LTQuMDA1QzE3LjY5NyAxNy44NTIgMjIgMTQuMzIgMjIgMTBjMC00LjQxMS00LjQ4Ni04LTEwLTh6bTAgMTRoLS4zMzNMOSAxOHYtMi40MTdsLS42NDEtLjI0N0M1LjY3IDE0LjMwMSA0IDEyLjI1NiA0IDEwYzAtMy4zMDkgMy41ODktNiA4LTZzOCAyLjY5MSA4IDYtMy41ODkgNi04IDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMjkzIDYuMjkzIDEyIDguNTg2IDkuNzA3IDYuMjkzIDguMjkzIDcuNzA3IDEwLjU4NiAxMGwtMi4yOTMgMi4yOTMgMS40MTQgMS40MTRMMTIgMTEuNDE0bDIuMjkzIDIuMjkzIDEuNDE0LTEuNDE0TDEzLjQxNCAxMGwyLjI5My0yLjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlUm91bmRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNS41ODkgMiAxMGMwIDIuOTA4IDEuODk4IDUuNTE2IDUgNi45MzRWMjJsNS4zNC00LjAwNUMxNy42OTcgMTcuODUyIDIyIDE0LjMyIDIyIDEwYzAtNC40MTEtNC40ODYtOC0xMC04em0wIDE0aC0uMzMzTDkgMTh2LTIuNDE3bC0uNjQxLS4yNDdDNS42NyAxNC4zMDEgNCAxMi4yNTYgNCAxMGMwLTMuMzA5IDMuNTg5LTYgOC02czggMi42OTEgOCA2LTMuNTg5IDYtOCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VTcXVhcmVBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJIOEM0LjY5MSAyIDIgNC42OTEgMiA4djEzYTEgMSAwIDAgMCAxIDFoMTNjMy4zMDkgMCA2LTIuNjkxIDYtNlY4YzAtMy4zMDktMi42OTEtNi02LTZ6bTQgMTRjMCAyLjIwNi0xLjc5NCA0LTQgNEg0VjhjMC0yLjIwNiAxLjc5NC00IDQtNGg4YzIuMjA2IDAgNCAxLjc5NCA0IDR2OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZVNxdWFyZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAySDhDNC42OTEgMiAyIDQuNjkxIDIgOHYxM2ExIDEgMCAwIDAgMSAxaDEzYzMuMzA5IDAgNi0yLjY5MSA2LTZWOGMwLTMuMzA5LTIuNjkxLTYtNi02em00IDE0YzAgMi4yMDYtMS43OTQgNC00IDRINFY4YzAtMi4yMDYgMS43OTQtNCA0LTRoOGMyLjIwNiAwIDQgMS43OTQgNCA0djh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgMTMuNTg2LTIuMjkzLTIuMjkzLTEuNDE0IDEuNDE0TDExIDE2LjQxNGw2LjIwNy02LjIwNy0xLjQxNC0xLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlU3F1YXJlRGV0YWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAySDhDNC42OTEgMiAyIDQuNjkxIDIgOHYxM2ExIDEgMCAwIDAgMSAxaDEzYzMuMzA5IDAgNi0yLjY5MSA2LTZWOGMwLTMuMzA5LTIuNjkxLTYtNi02em00IDE0YzAgMi4yMDYtMS43OTQgNC00IDRINFY4YzAtMi4yMDYgMS43OTQtNCA0LTRoOGMyLjIwNiAwIDQgMS43OTQgNCA0djh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5aDEwdjJIN3ptMCA0aDd2Mkg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VTcXVhcmVEb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAySDhDNC42OTEgMiAyIDQuNjkxIDIgOHYxMmExIDEgMCAwIDAgMSAxaDEzYzMuMzA5IDAgNi0yLjY5MSA2LTZWOGMwLTMuMzA5LTIuNjkxLTYtNi02em00IDEzYzAgMi4yMDYtMS43OTQgNC00IDRINFY4YzAtMi4yMDYgMS43OTQtNCA0LTRoOGMyLjIwNiAwIDQgMS43OTQgNCA0djd6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5LjVcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjVcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlU3F1YXJlRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMkg4QzQuNjkxIDIgMiA0LjY5MSAyIDh2MTNhMSAxIDAgMCAwIDEgMWgxM2MzLjMwOSAwIDYtMi42OTEgNi02VjhjMC0zLjMwOS0yLjY5MS02LTYtNnptNCAxNGMwIDIuMjA2LTEuNzk0IDQtNCA0SDRWOGMwLTIuMjA2IDEuNzk0LTQgNC00aDhjMi4yMDYgMCA0IDEuNzk0IDQgNHY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTQuOTg3djEuOTk5aDEuOTk5bDUuNTI5LTUuNTIyLTEuOTk4LTEuOTk4em04LjQ3LTQuNDY1LTEuOTk4LTJMMTQuOTk1IDdsMiAxLjk5OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlU3F1YXJlRXJyb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJIOEM0LjY5MSAyIDIgNC42OTEgMiA4djEzYTEgMSAwIDAgMCAxIDFoMTNjMy4zMDkgMCA2LTIuNjkxIDYtNlY4YzAtMy4zMDktMi42OTEtNi02LTZ6bTQgMTRjMCAyLjIwNi0xLjc5NCA0LTQgNEg0VjhjMC0yLjIwNiAxLjc5NC00IDQtNGg4YzIuMjA2IDAgNCAxLjc5NCA0IDR2OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2aDJ2OGgtMnptMCAxMGgydjJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWVzc2FnZVNxdWFyZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAySDhDNC42OTEgMiAyIDQuNjkxIDIgOHYxM2ExIDEgMCAwIDAgMSAxaDEzYzMuMzA5IDAgNi0yLjY5MSA2LTZWOGMwLTMuMzA5LTIuNjkxLTYtNi02em00IDE0YzAgMi4yMDYtMS43OTQgNC00IDRINFY4YzAtMi4yMDYgMS43OTQtNCA0LTRoOGMyLjIwNiAwIDQgMS43OTQgNCA0djh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMWg4djJIOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlU3F1YXJlWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMkg4QzQuNjkxIDIgMiA0LjY5MSAyIDh2MTNhMSAxIDAgMCAwIDEgMWgxM2MzLjMwOSAwIDYtMi42OTEgNi02VjhjMC0zLjMwOS0yLjY5MS02LTYtNnptNCAxNGMwIDIuMjA2LTEuNzk0IDQtNCA0SDRWOGMwLTIuMjA2IDEuNzk0LTQgNC00aDhjMi4yMDYgMCA0IDEuNzk0IDQgNHY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjI5MiA3LjI5NSAxMiAxMC41ODcgOC43MDggNy4yOTUgNy4yOTQgOC43MDlsMy4yOTIgMy4yOTItMy4yOTIgMy4yOTIgMS40MTQgMS40MTRMMTIgMTMuNDE1bDMuMjkyIDMuMjkyIDEuNDE0LTEuNDE0LTMuMjkyLTMuMjkyIDMuMjkyLTMuMjkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1lc3NhZ2VTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJIOEM0LjY5MSAyIDIgNC42OTEgMiA4djEyYTEgMSAwIDAgMCAxIDFoMTNjMy4zMDkgMCA2LTIuNjkxIDYtNlY4YzAtMy4zMDktMi42OTEtNi02LTZ6bTQgMTNjMCAyLjIwNi0xLjc5NCA0LTQgNEg0VjhjMC0yLjIwNiAxLjc5NC00IDQtNGg4YzIuMjA2IDAgNCAxLjc5NCA0IDR2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoM3YzLjc2N0wxMy4yNzcgMThIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0aC03LjI3N0w5IDE4LjIzM1YxNkg0VjRoMTZ2MTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS43MDcgMTMuNzA3IDEyIDExLjQxNGwyLjI5MyAyLjI5MyAxLjQxNC0xLjQxNEwxMy40MTQgMTBsMi4yOTMtMi4yOTMtMS40MTQtMS40MTRMMTIgOC41ODYgOS43MDcgNi4yOTMgOC4yOTMgNy43MDcgMTAuNTg2IDEwbC0yLjI5MyAyLjI5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXNzYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgzdjMuNzY3TDEzLjI3NyAxOEgyMGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bTAgMTRoLTcuMjc3TDkgMTguMjMzVjE2SDRWNGgxNnYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNZXRlb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAyMmMyLjAwMyAwIDMuODg3LS43OCA1LjMxMy0yLjIwN2w2LjkwNC03LjA5NkExIDEgMCAwIDAgMjEgMTFoLTMuMzAxbDQuMTc1LTcuNTE0YTEuMDAxIDEuMDAxIDAgMCAwLTEuMzU5LTEuMzZsLTcuMTEgMy45NS41NzYtMi44NzlhMSAxIDAgMCAwLTEuNjI5LS45NTdMNC4xOTYgOS4xOTdjLTIuOTI0IDIuOTI0LTIuOTI0IDcuNjgyIDAgMTAuNjA2QTcuNDUyIDcuNDUyIDAgMCAwIDkuNSAyMnpNNS41NTIgMTAuNjY1bDUuOTAyLTUuMDMxLS4yNDggMS4yNC0uMTg2Ljkzdi4wMDFsLS40MjQgMi4xMTkgNy44My00LjM1LTMuMyA1Ljk0LS4wMDEuMDAxTDE0LjMwMSAxM2g0LjMzMWwtNS4yNDMgNS4zODlDMTIuMzUgMTkuNDI4IDEwLjk2OSAyMCA5LjUgMjBzLTIuODUxLS41NzItMy44OS0xLjYxMWMtMi4xNDMtMi4xNDQtMi4xNDMtNS42MzQtLjA1OC03LjcyNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMThhMy40OTIgMy40OTIgMCAwIDAgMS40ODQtNi42NTljLjAwNS4wNTMuMDE2LjEwNS4wMTYuMTU5YTEuNSAxLjUgMCAxIDEtMyAwYzAtLjA1NC4wMTEtLjEwNi4wMTYtLjE1OUEzLjQ5MiAzLjQ5MiAwIDAgMCA5LjUgMTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWljcm9jaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAySDhjLTEuMTAzIDAtMiAuODk3LTIgMnYxNmMwIDEuMTAzLjg5NyAyIDIgMmg4YzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnpNOCAyMFY0aDhsLjAwMSAxNkg4ek0zIDdoMlY1SDN2LjVIMnYxaDF6bTE4LTJoLTJ2Mmgydi0uNWgxdi0xaC0xek0zIDExaDJWOUgzdi41SDJ2MWgxem0xOC0yaC0ydjJoMnYtLjVoMXYtMWgtMXpNMyAxNWgydi0ySDN2LjVIMnYxaDF6bTE4LTJoLTJ2Mmgydi0uNWgxdi0xaC0xek0zIDE5aDJ2LTJIM3YuNUgydjFoMXptMTgtMmgtMnYyaDJ2LS41aDF2LTFoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWljcm9waG9uZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNzA3IDIwLjI5My0zLjM4OC0zLjM4OEE3Ljk0MiA3Ljk0MiAwIDAgMCAyMCAxMi4wMjFoLTJhNS45NSA1Ljk1IDAgMCAxLTEuMTA5IDMuNDU2bC0xLjQ1Mi0xLjQ1MmMuMzQ4LS41OTEuNTYxLTEuMjcuNTYxLTIuMDA0di02QzE2IDMuODA0IDE0LjIxNSAyIDEyLjAyMSAyYy0uMDcgMC0uMTQuMDA5LS4yMDkuMDI1QTQuMDA1IDQuMDA1IDAgMCAwIDggNi4wMjF2LjU2NUwzLjcwNyAyLjI5MyAyLjI5MyAzLjcwN2wxOCAxOCAxLjQxNC0xLjQxNHpNMTAgNi4wMjFjMC0xLjEwMy44OTctMiAyLTJhLjkxOC45MTggMCAwIDAgLjE2NC0uMDE1QzEzLjE4OCA0LjA4IDE0IDQuOTU2IDE0IDYuMDIxdjZjMCAuMTcyLS4wMjkuMzM1LS4wNzEuNDk0TDEwIDguNTg2VjYuMDIxem0tNCA2SDRjMCA0LjA3MiAzLjA2IDcuNDM2IDcgNy45MzF2Mi4wNjloMnYtMi4wN2E3Ljk5MyA3Ljk5MyAwIDAgMCAyLjIxOC0uNjExbC0xLjU1OC0xLjU1OGE1Ljk3OSA1Ljk3OSAwIDAgMS0xLjY2LjIzOWMtMy4zMDkgMC02LTIuNjkyLTYtNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjAxMSAxMi4xMzJhMy45OTMgMy45OTMgMCAwIDAgMy44NzcgMy44NzdsLTMuODc3LTMuODc3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1pY3JvcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEyVjZjMC0yLjIxNy0xLjc4NS00LjAyMS0zLjk3OS00LjAyMWEuOTMzLjkzMyAwIDAgMC0uMjA5LjAyNUE0LjAwNiA0LjAwNiAwIDAgMCA4IDZ2NmMwIDIuMjA2IDEuNzk0IDQgNCA0czQtMS43OTQgNC00em0tNiAwVjZjMC0xLjEwMy44OTctMiAyLTJhLjg5Ljg5IDAgMCAwIC4xNjMtLjAxNUMxMy4xODggNC4wNiAxNCA0LjkzNSAxNCA2djZjMCAxLjEwMy0uODk3IDItMiAycy0yLS44OTctMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTJINGMwIDQuMDcyIDMuMDYxIDcuNDM2IDcgNy45MzFWMjJoMnYtMi4wNjljMy45MzktLjQ5NSA3LTMuODU4IDctNy45MzFoLTJjMCAzLjMwOS0yLjY5MSA2LTYgNnMtNi0yLjY5MS02LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWludXNCYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnY5YzAgMS4xMDMuODk3IDIgMiAyaDN2M2MwIDEuMTAzLjg5NyAyIDIgMmg5YzEuMTAzIDAgMi0uODk3IDItMnYtOWMwLTEuMTAzLS44OTctMi0yLTJoLTNWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgNWg5bC0uMDAzIDlINVY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1pbnVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExaDEwdjJIN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWludXNGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNmgzdjNjMCAxLjEwMy44OTcgMiAyIDJoOWMxLjEwMyAwIDItLjg5NyAyLTJ2LTljMC0xLjEwMy0uODk3LTItMi0yaC0zVjVjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnY5YzAgMS4xMDMuODk3IDIgMiAyem0xMy45OTcgM0gxMHYtOWg5bC0uMDAzIDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTFoMTR2Mkg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1vYmlsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNzUgMmgtMTBjLTEuMTAzIDAtMiAuODk3LTIgMnYxNmMwIDEuMTAzLjg5NyAyIDIgMmgxMGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bS0xMCAxOFY0aDEwbC4wMDIgMTZINi43NXpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExLjc1XCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjFcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNb2JpbGVMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVINGMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY3YzAtMS4xMDMtLjg5Ny0yLTItMnpNNy4wMDEgN0gxOXYxMEg3LjAwMVY3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1vYmlsZVZpYnJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTM1IDIuODA4Yy0uNzU2LS43NTYtMi4wNzItLjc1Ni0yLjgyOCAwbC05Ljg5OSA5Ljg5OWEyLjAwMSAyLjAwMSAwIDAgMCAwIDIuODI4bDUuNjU3IDUuNjU3Yy4zNzguMzc4Ljg4LjU4NiAxLjQxNC41ODZzMS4wMzYtLjIwOCAxLjQxNC0uNTg2bDkuODk5LTkuODk5Yy4zNzgtLjM3OC41ODYtLjg4LjU4Ni0xLjQxNHMtLjIwOC0xLjAzNi0uNTg2LTEuNDE0bC01LjY1Ny01LjY1N3ptLTUuNjU2IDE2Ljk3djEtMWwtNS42NTctNS42NTcgOS44OTktOS44OTkgNS42NTcgNS42NTctOS44OTkgOS44OTl6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTVcIixcInJcIjpcIjFcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS43MDcgMjEuNzA3LTEuNDE0LTEuNDE0IDYtNiAxLjQxNCAxLjQxNXpNOC4yOTMgMi4yOTNsMS40MTQgMS40MTQtNiA2LTEuNDE0LTEuNDE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1vYmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMkg3Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTZjMCAxLjEwMy44OTcgMiAyIDJoMTBjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yek03IDE2Ljk5OVY1aDEwbC4wMDIgMTEuOTk5SDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTW9uZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRIM2ExIDEgMCAwIDAtMSAxdjE0YTEgMSAwIDAgMCAxIDFoMThhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTF6bS0xIDExYTMgMyAwIDAgMC0zIDNIN2EzIDMgMCAwIDAtMy0zVjlhMyAzIDAgMCAwIDMtM2gxMGEzIDMgMCAwIDAgMyAzdjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMtMi4yMDYgMC00IDEuNzk0LTQgNHMxLjc5NCA0IDQgNCA0LTEuNzk0IDQtNC0xLjc5NC00LTQtNHptMCA2Yy0xLjEwMyAwLTItLjg5Ny0yLTJzLjg5Ny0yIDItMiAyIC44OTcgMiAyLS44OTcgMi0yIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNzQyIDEzLjA0NWE4LjA4OCA4LjA4OCAwIDAgMS0yLjA3Ny4yNzFjLTIuMTM1IDAtNC4xNC0uODMtNS42NDYtMi4zMzZhOC4wMjUgOC4wMjUgMCAwIDEtMi4wNjQtNy43MjNBMSAxIDAgMCAwIDkuNzMgMi4wMzRhMTAuMDE0IDEwLjAxNCAwIDAgMC00LjQ4OSAyLjU4MmMtMy44OTggMy44OTgtMy44OTggMTAuMjQzIDAgMTQuMTQzYTkuOTM3IDkuOTM3IDAgMCAwIDcuMDcyIDIuOTMgOS45MyA5LjkzIDAgMCAwIDcuMDctMi45MjkgMTAuMDA3IDEwLjAwNyAwIDAgMCAyLjU4My00LjQ5MSAxLjAwMSAxLjAwMSAwIDAgMC0xLjIyNC0xLjIyNHptLTIuNzcyIDQuMzAxYTcuOTQ3IDcuOTQ3IDAgMCAxLTUuNjU2IDIuMzQzIDcuOTUzIDcuOTUzIDAgMCAxLTUuNjU4LTIuMzQ0Yy0zLjExOC0zLjExOS0zLjExOC04LjE5NSAwLTExLjMxNGE3LjkyMyA3LjkyMyAwIDAgMSAyLjA2LTEuNDgzIDEwLjAyNyAxMC4wMjcgMCAwIDAgMi44OSA3Ljg0OCA5Ljk3MiA5Ljk3MiAwIDAgMCA3Ljg0OCAyLjg5MSA4LjAzNiA4LjAzNiAwIDAgMS0xLjQ4NCAyLjA1OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNb3VzZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMmgtMkM3LjY5MSAyIDUgNC42OTEgNSA4djhjMCAzLjMwOSAyLjY5MSA2IDYgNmgyYzMuMzA5IDAgNi0yLjY5MSA2LTZWOGMwLTMuMzA5LTIuNjkxLTYtNi02em0tMiAydjZIN1Y4YzAtMi4yMDYgMS43OTQtNCA0LTR6bTYgMTJjMCAyLjIwNi0xLjc5NCA0LTQgNGgtMmMtMi4yMDYgMC00LTEuNzk0LTQtNHYtNGgxMHY0em0tNC02VjRjMi4yMDYgMCA0IDEuNzk0IDQgNHYyaC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU1vdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45NzUgMjJIMTJjMy44NTkgMCA3LTMuMTQgNy03VjljMC0zLjg0MS0zLjEyNy02Ljk3NC02Ljk4MS03aC0uMDZDOC4xMTkgMi4wMjIgNSA1LjE1NyA1IDl2NmMwIDMuODYgMy4xMjkgNyA2Ljk3NSA3ek03IDlhNS4wMDcgNS4wMDcgMCAwIDEgNC45ODUtNUMxNC43NSA0LjAwNiAxNyA2LjI0OSAxNyA5djZjMCAyLjc1Ny0yLjI0MyA1LTUgNWgtLjAyNUM5LjE4NiAyMCA3IDE3LjgwNCA3IDE1Vjl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNmgydjZoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTW92ZUhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExSDdWN2wtNSA1IDUgNXYtNGgxMHY0bDUtNS01LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTW92ZVZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03IDE3IDUgNSA1LTVoLTRWN2g0bC01LTUtNSA1aDR2MTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTFoLTVWNmgzbC00LTQtNCA0aDN2NUg2VjhsLTQgNCA0IDR2LTNoNXY1SDhsNCA0IDQtNGgtM3YtNWg1djNsNC00LTQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlNb3ZpZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnptLjAwMSA2Yy0uMDAxIDAtLjAwMSAwIDAgMGgtLjQ2NWwtMi42NjctNEgyMGwuMDAxIDR6TTkuNTM2IDkgNi44NjkgNWgyLjU5NmwyLjY2NyA0SDkuNTM2em01IDAtMi42NjctNGgyLjU5NmwyLjY2NyA0aC0yLjU5NnpNNCA1aC40NjVsMi42NjcgNEg0VjV6bTAgMTR2LThoMTZsLjAwMiA4SDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTggNS41LTMtNS41LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTW92aWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnptLjAwMSA2Yy0uMDAxIDAtLjAwMSAwIDAgMGgtLjQ2NmwtMi42NjctNEgyMGwuMDAxIDR6TTkuNTM1IDkgNi44NjggNWgyLjU5N2wyLjY2NyA0SDkuNTM1em01IDAtMi42NjctNGgyLjU5N2wyLjY2NyA0aC0yLjU5N3pNNCA1aC40NjVsMi42NjcgNEg0VjV6bTAgMTR2LThoMTZsLjAwMiA4SDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjY4NCA1LjgyMS05LTMuMjcyQTEuOTk4IDEuOTk4IDAgMCAwIDggNC40Mjh2Ni4xMjlBMy45NTMgMy45NTMgMCAwIDAgNiAxMGMtMi4yMDYgMC00IDEuNzk0LTQgNHMxLjc5NCA0IDQgNCA0LTEuNzk0IDQtNFY0LjQyOEwxOSA3Ljd2Ni44NTZBMy45NjIgMy45NjIgMCAwIDAgMTcgMTRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTRWNy43YzAtLjgzOC0uNTI5LTEuNTk0LTEuMzE2LTEuODc5ek02IDE2Yy0xLjEwMyAwLTItLjg5Ny0yLTJzLjg5Ny0yIDItMiAyIC44OTcgMiAyLS44OTcgMi0yIDJ6bTExIDRjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yIDIgLjg5NyAyIDItLjg5NyAyLTIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlOYXZpZ2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjAwMiA5LjYzYy0uMDIzLjQxMS4yMDcuNzk0LjU4MS45NjZsNy41MDQgMy40NDIgMy40NDIgNy41MDNjLjE2NC4zNTYuNTIuNTgzLjkwOS41ODNsLjA1Ny0uMDAyYTEgMSAwIDAgMCAuODk0LS42ODZsNS41OTUtMTcuMDMyYy4xMTctLjM1OC4wMjMtLjc1My0uMjQzLTEuMDJzLS42Ni0uMzU4LTEuMDItLjI0M0wyLjY4OCA4LjczNmExIDEgMCAwIDAtLjY4Ni44OTR6bTE2LjQ2NC0zLjk3MS00LjE4MiAxMi43My0yLjUzNC01LjUyMmEuOTk4Ljk5OCAwIDAgMC0uNDkyLS40OTJMNS43MzQgOS44NDFsMTIuNzMyLTQuMTgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU5ldHdvcmtDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2MtMS42NTQgMC0zIDEuMzQ2LTMgMyAwIC41MDIuMTM2Ljk2OC4zNTQgMS4zODVsLTEuMTE2IDEuMzAyQTMuOTc2IDMuOTc2IDAgMCAwIDEzIDhjLS43MzkgMC0xLjQyNS4yMTYtMi4wMi41NjZMOS41NjYgNy4xNTJBMy40NDkgMy40NDkgMCAwIDAgMTAgNS41QzEwIDMuNTcgOC40MyAyIDYuNSAyUzMgMy41NyAzIDUuNSA0LjU3IDkgNi41IDljLjYwMSAwIDEuMTU4LS4xNjYgMS42NTItLjQzNEw5LjU2NiA5Ljk4QTMuOTcyIDMuOTcyIDAgMCAwIDkgMTJjMCAuOTk3LjM4IDEuODk5Ljk4NSAyLjYwMWwtMS42OTIgMS42OTIuMDI1LjAyNUEyLjk2MiAyLjk2MiAwIDAgMCA3IDE2Yy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzIDMtMS4zNDYgMy0zYzAtLjQ3Ni0uMTIxLS45MTktLjMxOC0xLjMxOGwuMDI1LjAyNSAxLjk1NC0xLjk1NGMuNDIxLjE1Ljg2Ny4yNDcgMS4zMzkuMjQ3IDIuMjA2IDAgNC0xLjc5NCA0LTRhMy45NiAzLjk2IDAgMCAwLS40MzktMS43ODVsMS4yNTMtMS40NjJjLjM2NC4xNTguNzY0LjI0NyAxLjE4Ni4yNDcgMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6TTcgMjBhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyek01IDUuNUM1IDQuNjczIDUuNjczIDQgNi41IDRTOCA0LjY3MyA4IDUuNSA3LjMyNyA3IDYuNSA3IDUgNi4zMjcgNSA1LjV6bTggOC41Yy0xLjEwMyAwLTItLjg5Ny0yLTJzLjg5Ny0yIDItMiAyIC44OTcgMiAyLS44OTcgMi0yIDJ6bTYtN2ExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTmV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuODc1IDNINC4xMjVDMi45NTMgMyAyIDMuODk3IDIgNXYxNGMwIDEuMTAzLjk1MyAyIDIuMTI1IDJoMTUuNzVDMjEuMDQ3IDIxIDIyIDIwLjEwMyAyMiAxOVY1YzAtMS4xMDMtLjk1My0yLTIuMTI1LTJ6bTAgMTZINC4xMjVjLS4wNTcgMC0uMDk2LS4wMTYtLjExMy0uMDE2LS4wMDcgMC0uMDExLjAwMi0uMDEyLjAwOEwzLjk4OCA1LjA0NmMuMDA3LS4wMS4wNTItLjA0Ni4xMzctLjA0NmgxNS43NWMuMDc5LjAwMS4xMjIuMDI4LjEyNS4wMDhsLjAxMiAxMy45NDZjLS4wMDcuMDEtLjA1Mi4wNDYtLjEzNy4wNDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA3aDZ2Nkg2em03IDhINnYyaDEydi0yaC00em0xLTRoNHYyaC00em0wLTRoNHYyaC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU5vRW50cnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTBoMTB2NEg3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmg4YS45OTYuOTk2IDAgMCAwIC43MDctLjI5M2w3LTdhLjk5Ny45OTcgMCAwIDAgLjE5Ni0uMjkzYy4wMTQtLjAzLjAyMi0uMDYxLjAzMy0uMDkzYS45OTEuOTkxIDAgMCAwIC4wNTEtLjI1OWMuMDAyLS4wMjEuMDEzLS4wNDEuMDEzLS4wNjJWNWMwLTEuMTAzLS44OTctMi0yLTJ6TTUgNWgxNHY3aC02YTEgMSAwIDAgMC0xIDF2Nkg1VjV6bTkgMTIuNTg2VjE0aDMuNTg2TDE0IDE3LjU4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlOb3RlcGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0zVjJoLTJ2MmgtNFYySDh2Mkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yek01IDIwVjdoMTRWNmwuMDAyIDE0SDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5aDEwdjJIN3ptMCA0aDV2Mkg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaU5vdGlmaWNhdGlvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNzEgMjAuMjk2LTEuNzg2LTEuNzg2Yy4wNDUtLjE2My4wNzYtLjMzMi4wNzYtLjUxdi03aC0ydjUuNTg2TDcuNDE0IDZIMTNWNEg2Yy0uMTc4IDAtLjM0Ny4wMzEtLjUxLjA3NmwtMS43OC0xLjc4TDIuMjk2IDMuNzFsMTggMTggMS40MTQtMS40MTR6TTQgOC4xMjFWMThjMCAxLjEwMy44OTcgMiAyIDJoOS44NzlsLTItMkg2di03Ljg3OWwtMi0yelwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIzXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpTm90aWZpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiM1wifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE5SDVWNmg4YzAtLjcxMi4xNTMtMS4zODcuNDIyLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjEzYzAgMS4xMDMuODk3IDIgMiAyaDEzYzEuMTAzIDAgMi0uODk3IDItMnYtOC40MjJBNC45NjIgNC45NjIgMCAwIDEgMTggMTF2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOXYtOWMwLTEuMTAzLS44OTctMi0yLTJoLTNWNWMwLTEuMTAzLS44OTctMi0yLTJINWMtMS4xMDMgMC0yIC44OTctMiAydjljMCAxLjEwMy44OTcgMiAyIDJoM3YzYzAgMS4xMDMuODk3IDIgMiAyaDljMS4xMDMgMCAyLS44OTcgMi0yek01IDE0VjVoOXYzaC00Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NEg1em05LjAwMSAwSDEwdi00aDQuMDAxdjR6TTEwIDE2aDRjMS4xMDMgMCAyLS44OTcgMi0ydi00aDNsLjAwMSA5SDEwdi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVBhY2thZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDhhLjc2Ljc2IDAgMCAwIDAtLjIxdi0uMDhhLjc3Ljc3IDAgMCAwLS4wNy0uMTYuMzUuMzUgMCAwIDAtLjA1LS4wOGwtLjEtLjEzLS4wOC0uMDYtLjEyLS4wOS05LTVhMSAxIDAgMCAwLTEgMGwtOSA1LS4wOS4wNy0uMTEuMDhhLjQxLjQxIDAgMCAwLS4wNy4xMS4zOS4zOSAwIDAgMC0uMDguMS41OS41OSAwIDAgMC0uMDYuMTQuMy4zIDAgMCAwIDAgLjFBLjc2Ljc2IDAgMCAwIDIgOHY4YTEgMSAwIDAgMCAuNTIuODdsOSA1YS43NS43NSAwIDAgMCAuMTMuMDZoLjFhMS4wNiAxLjA2IDAgMCAwIC41IDBoLjFsLjE0LS4wNiA5LTVBMSAxIDAgMCAwIDIyIDE2Vjh6bS0xMCAzLjg3TDUuMDYgOGwyLjc2LTEuNTIgNi44MyAzLjl6bTAtNy43MkwxOC45NCA4IDE2LjcgOS4yNSA5Ljg3IDUuMzR6TTQgOS43bDcgMy45MnY1LjY4bC03LTMuODl6bTkgOS42di01LjY4bDMtMS42OFYxNWwyLTF2LTMuMThsMi0xLjExdjUuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQYWludFJvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJIN2MtMS4xMDMgMC0yIC44OTctMiAydjNjMCAxLjEwMy44OTcgMiAyIDJoMTFjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yek03IDdWNGgxMWwuMDAyIDNIN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxNXYtMmMwLTEuMTAzLS44OTctMi0yLTJINFY1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGMwIDEuMTAzLjg5NyAyIDIgMmg3djJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi01YTEgMSAwIDAgMC0xLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGFpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDYxIDIyYzEuNTIzIDAgMi44NC0uNTQzIDMuOTEtMS42MTMgMS4xMjMtMS4xMjMgMS43MDctMi44NTQgMS41NTEtNC40OTRsOC41NjQtOC41NjRhMy4xMjMgMy4xMjMgMCAwIDAtLjAwMi00LjQxNGMtMS4xNzgtMS4xOC0zLjIzNC0xLjE4LTQuNDEyIDBsLTguODg0IDguODg0Yy0xLjkxMy4xNjktMy44MDcgMS41MjEtMy44MDcgMy45MTkgMCAuMzAzLjAyMS41ODguMDQyLjg2LjA4IDEuMDMxLjEwOSAxLjQxOC0xLjQ3MSAyLjIwOGExLjAwMSAxLjAwMSAwIDAgMC0uMTIyIDEuNzE3QzIuNTIgMjAuNTYzIDQuNjIzIDIyIDcuMDYxIDIyYy0uMDAxIDAtLjAwMSAwIDAgMHpNMTguMDg2IDQuMzI4YTEuMTQ0IDEuMTQ0IDAgMCAxIDEuNTg2LjAwMiAxLjEyIDEuMTIgMCAwIDEgMCAxLjU4NEwxMiAxMy41ODYgMTAuNDE0IDEybDcuNjcyLTcuNjcyek02LjAxOCAxNi40MjNjLS4wMTgtLjIyNC0uMDM3LS40NTgtLjAzNy0uNzA2IDAtMS41NDUgMS40NDUtMS45NTMgMi4yMS0xLjk1My4zNTYgMCAuNjk5LjA3My45NjQuMjA2Ljk0NS40NzUgMS4yNiAxLjI5MyAxLjM1NyAxLjg5Ni4xNzcgMS4wOS0uMjE3IDIuMzY4LS45NTYgMy4xMDdDOC44NjUgMTkuNjY0IDguMDQ5IDIwIDcuMDYxIDIwSDcuMDZjLS43NSAwLTEuNDc5LS4xOTYtMi4wNzQtLjQyNyAxLjA4Mi0uOTczIDEuMTIxLTEuOTg5IDEuMDMyLTMuMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGFsZXR0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNCAyLjA5NmExMC4wOCAxMC4wOCAwIDAgMC04LjkzNyAzLjMzMUExMC4wNTQgMTAuMDU0IDAgMCAwIDIuMDk2IDEzLjRjLjUzIDMuODk0IDMuNDU4IDcuMjA3IDcuMjg1IDguMjQ2YTkuOTgyIDkuOTgyIDAgMCAwIDIuNjE4LjM1NGwuMTQyLS4wMDFhMy4wMDEgMy4wMDEgMCAwIDAgMi41MTYtMS40MjYgMi45ODkgMi45ODkgMCAwIDAgLjE1My0yLjg3OWwtLjE5OS0uNDE2YTEuOTE5IDEuOTE5IDAgMCAxIC4wOTQtMS45MTIgMi4wMDQgMi4wMDQgMCAwIDEgMi41NzYtLjc1NWwuNDEyLjE5N2MuNDEyLjE5OC44NS4yOTkgMS4zMDEuMjk5QTMuMDIyIDMuMDIyIDAgMCAwIDIyIDEyLjE0YTkuOTM1IDkuOTM1IDAgMCAwLS4zNTMtMi43NmMtMS4wNC0zLjgyNi00LjM1My02Ljc1NC04LjI0Ny03LjI4NHptNS4xNTggMTAuOTA5LS40MTItLjE5N2MtMS44MjgtLjg3OC00LjA3LS4xOTgtNS4xMzUgMS40OTQtLjczOCAxLjE3Ni0uODEzIDIuNTc2LS4yMDQgMy44NDJsLjE5OS40MTZhLjk4My45ODMgMCAwIDEtLjA1MS45NjEuOTkyLjk5MiAwIDAgMS0uODQ0LjQ3OWgtLjExMmE4LjA2MSA4LjA2MSAwIDAgMS0yLjA5NS0uMjgzYy0zLjA2My0uODMxLTUuNDAzLTMuNDc5LTUuODI2LTYuNTg2LS4zMjEtMi4zNTUuMzUyLTQuNjIzIDEuODkzLTYuMzg5YTguMDAyIDguMDAyIDAgMCAxIDcuMTYtMi42NjRjMy4xMDcuNDIzIDUuNzU1IDIuNzY0IDYuNTg2IDUuODI2LjE5OC43My4yOTMgMS40NzQuMjgyIDIuMjA3LS4wMTIuODA3LS44NDUgMS4xODMtMS40NDEuODk0elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxMC41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwLjVcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGFwZXJQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNTYzIDMuMzRhMS4wMDIgMS4wMDIgMCAwIDAtLjk4OS0uMDc5bC0xNyA4YTEgMSAwIDAgMCAuMDI2IDEuODIxTDggMTUuNDQ1djYuNzIybDUuODM2LTQuMTY4IDQuNzY0IDIuMDg0YTEgMSAwIDAgMCAxLjM5OS0uODVsMS0xNWExLjAwNSAxLjAwNSAwIDAgMC0uNDM2LS44OTN6bS0yLjQ2NiAxNC4zNC01LjI2OS0yLjMwNkwxNiA5LjE2N2wtNy42NDkgNC4yNS0yLjkzMi0xLjI4MyAxMy40NzEtNi4zNC0uNzkzIDExLjg4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQYXBlcmNsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjAwNCA1SDljLTEuODM4IDAtMy41ODYuNzM3LTQuOTI0IDIuMDc2QzIuNzM3IDguNDE1IDIgMTAuMTYzIDIgMTJjMCAxLjgzOC43MzcgMy41ODYgMi4wNzYgNC45MjRDNS40MTQgMTguMjYzIDcuMTYyIDE5IDkgMTloOHYtMkg5Yy0xLjMwMyAwLTIuNTUtLjUyOS0zLjUxLTEuNDlDNC41MjkgMTQuNTUgNCAxMy4zMDMgNCAxMmMwLTEuMzAyLjUyOS0yLjU0OSAxLjQ5LTMuNTFDNi40NSA3LjUyOSA3LjY5NyA3IDkgN2g4VjZsLjAwMSAxaC4wMDNjLjc5IDAgMS41MzkuMzE0IDIuMTA5Ljg4Ni41NzEuNTcxLjg4NiAxLjMyMi44ODcgMi4xMTZhMi45NjYgMi45NjYgMCAwIDEtLjg4NCAyLjExQTIuOTg4IDIuOTg4IDAgMCAxIDE3IDEzSDlhLjk5Ljk5IDAgMCAxLS42OTgtLjNBLjk5MS45OTEgMCAwIDEgOCAxMmMwLS4yNTIuMTEtLjUwNy4zMDEtLjY5OEEuOTg3Ljk4NyAwIDAgMSA5IDExaDhWOUg5Yy0uNzkgMC0xLjU0MS4zMTUtMi4xMTQuODg5QzYuMzE0IDEwLjQ2MSA2IDExLjIxMSA2IDEycy4zMTQgMS41NC44ODggMi4xMTRBMi45NzQgMi45NzQgMCAwIDAgOSAxNWg4LjAwMWE0Ljk3IDQuOTcgMCAwIDAgMy41MjgtMS40NzMgNC45NjcgNC45NjcgMCAwIDAtLjAwMS03LjA1NUE0Ljk1IDQuOTUgMCAwIDAgMTcuMDA0IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGFyYWdyYXBoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2aDJ2NGgyVjZoMnYxNGgyVjZoM1Y0SDljLTMuMzA5IDAtNiAyLjY5MS02IDZzMi42OTEgNiA2IDZ6TTkgNmgydjhIOWMtMi4yMDYgMC00LTEuNzk0LTQtNHMxLjc5NC00IDQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQYXN0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTFWNWMwLTEuMTAzLS44OTctMi0yLTJoLTNhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDFINGMtMS4xMDMgMC0yIC44OTctMiAydjEzYzAgMS4xMDMuODk3IDIgMiAyaDdjMCAxLjEwMy44OTcgMiAyIDJoN2MxLjEwMyAwIDItLjg5NyAyLTJ2LTdjMC0xLjEwMy0uODk3LTItMi0yem0tOSAydjVINFY1aDN2Mmg4VjVoM3Y2aC01Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ6bTIgN3YtN2g3bC4wMDEgN0gxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQYXVzZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDloMnY2aC0yek05IDloMnY2SDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggN2gzdjEwSDh6bTUgMGgzdjEwaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNDA0IDIuOTk4Yy0uNzU3LS43NTQtMi4wNzctLjc1MS0yLjgyOC4wMDVsLTEuNzg0IDEuNzkxTDExLjU4NiA3SDdhLjk5OC45OTggMCAwIDAtLjkzOS42NThsLTQgMTFjLS4xMzMuMzY1LS4wNDIuNzc0LjIzMiAxLjA0OWwyIDJhLjk5Ny45OTcgMCAwIDAgMS4wNDkuMjMybDExLTRBLjk5OC45OTggMCAwIDAgMTcgMTd2LTQuNTg2bDIuMjA3LTIuMjA3di0uMDAxaC4wMDFMMjEgOC40MDljLjM3OC0uMzc4LjU4Ni0uODgxLjU4NS0xLjQxNSAwLS41MzUtLjIwOS0xLjAzOC0uNTg4LTEuNDE1bC0yLjU5My0yLjU4MXptLTMuMTExIDguMjk1QS45OTYuOTk2IDAgMCAwIDE1IDEydjQuM2wtOS4yNDkgMy4zNjMgNC42NzEtNC42NzFjLjAyNi4wMDEuMDUyLjAwOC4wNzguMDA4QTEuNSAxLjUgMCAxIDAgOSAxMy41YzAgLjAyNi4wMDcuMDUyLjAwOC4wNzhsLTQuNjcxIDQuNjcxTDcuNyA5SDEyYy4yNjYgMCAuNTItLjEwNS43MDctLjI5M0wxNC41IDYuOTE0IDE3LjA4NiA5LjVsLTEuNzkzIDEuNzkzem0zLjIwNi0zLjIwOC0yLjU4Ni0yLjU4NiAxLjA3OS0xLjA4NCAyLjU5MyAyLjU4MS0xLjA4NiAxLjA4OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQZW5jaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjFhMSAxIDAgMCAwIC4yNCAwbDQtMWExIDEgMCAwIDAgLjQ3LS4yNkwyMSA3LjQxYTIgMiAwIDAgMCAwLTIuODJMMTkuNDIgM2EyIDIgMCAwIDAtMi44MyAwTDQuMyAxNS4yOWExLjA2IDEuMDYgMCAwIDAtLjI3LjQ3bC0xIDRBMSAxIDAgMCAwIDMuNzYgMjEgMSAxIDAgMCAwIDQgMjF6TTE4IDQuNDEgMTkuNTkgNiAxOCA3LjU5IDE2LjQyIDZ6TTUuOTEgMTYuNTEgMTUgNy40MSAxNi41OSA5bC05LjEgOS4xLTIuMTEuNTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGhvbmVDYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41NyAyMmEyIDIgMCAwIDAgMS40My0uNTlsMi43MS0yLjcxYTEgMSAwIDAgMCAwLTEuNDFsLTQtNGExIDEgMCAwIDAtMS40MSAwbC0xLjYgMS41OWE3LjU1IDcuNTUgMCAwIDEtMy0xLjU5IDcuNjIgNy42MiAwIDAgMS0xLjU5LTNsMS41OS0xLjZhMSAxIDAgMCAwIDAtMS40MWwtNC00YTEgMSAwIDAgMC0xLjQxIDBMMi41OSA2QTIgMiAwIDAgMCAyIDcuNDMgMTUuMjggMTUuMjggMCAwIDAgNi4zIDE3LjcgMTUuMjggMTUuMjggMCAwIDAgMTYuNTcgMjJ6TTYgNS40MSA4LjU5IDggNy4zIDkuMjlhMSAxIDAgMCAwLS4zLjkxIDEwLjEyIDEwLjEyIDAgMCAwIDIuMyA0LjUgMTAuMDggMTAuMDggMCAwIDAgNC41IDIuMyAxIDEgMCAwIDAgLjkxLS4yN0wxNiAxNS40MSAxOC41OSAxOGwtMiAyYTEzLjI4IDEzLjI4IDAgMCAxLTguODctMy43MUExMy4yOCAxMy4yOCAwIDAgMSA0IDcuNDF6TTIwIDExaDJhOC44MSA4LjgxIDAgMCAwLTktOXYyYTYuNzcgNi43NyAwIDAgMSA3IDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGMyLjEgMCAzIC45IDMgM2gyYzAtMy4yMi0xLjc4LTUtNS01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVBob25lSW5jb21pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjcxMiAxMy4yODhhLjk5OS45OTkgMCAwIDAtMS40MTQgMGwtMS41OTcgMS41OTZjLS44MjQtLjI0NS0yLjE2Ni0uNzcxLTIuOTktMS41OTYtLjg3NC0uODc0LTEuMzc0LTIuMjUzLTEuNTk0LTIuOTkybDEuNTk0LTEuNTk0YS45OTkuOTk5IDAgMCAwIDAtMS40MTRsLTQtNGExLjAzIDEuMDMgMCAwIDAtMS40MTQgMGwtMi43MDkgMi43MWMtLjM4Mi4zOC0uNTk3LjkwNC0uNTg4IDEuNDM3LjAyMiAxLjQyMy4zOTYgNi4zNjcgNC4yOTcgMTAuMjY4QzEwLjE5NSAyMS42IDE1LjE0MiAyMS45NzcgMTYuNTY2IDIyaC4wMjhjLjUyOCAwIDEuMDI3LS4yMDggMS40MDUtLjU4NmwyLjcxMi0yLjcxMmEuOTk5Ljk5OSAwIDAgMCAwLTEuNDE0bC0zLjk5OS00ek0xNi41ODUgMjBjLTEuMjQ4LS4wMjEtNS41MTgtLjM1Ni04Ljg3NC0zLjcxMkM0LjM0MyAxMi45MiA0LjAxOSA4LjYzNiA0IDcuNDE0bDIuMDA0LTIuMDA1TDguNTkgNy45OTUgNy4yOTcgOS4yODhjLS4yMzguMjM4LS4zNC41ODItLjI3MS45MTIuMDI0LjExNS42MTEgMi44NDIgMi4yNzEgNC41MDJzNC4zODcgMi4yNDcgNC41MDIgMi4yNzFhLjk5NC45OTQgMCAwIDAgLjkxMi0uMjcxbDEuMjkzLTEuMjkzIDIuNTg2IDIuNTg2TDE2LjU4NSAyMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43OTUgNi43OTEgMTMuMDA1IDR2Ni45OTVIMjBsLTIuNzkxLTIuNzkgNC41MDMtNC41MDMtMS40MTQtMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGhvbmVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA5IDEyLjVhOC45MiA4LjkyIDAgMCAxLTEtMi4ybDEuNTktMS41OWExIDEgMCAwIDAgMC0xLjQybC00LTRhMSAxIDAgMCAwLTEuNDEgMEwyLjU5IDZBMiAyIDAgMCAwIDIgNy40NCAxNS40NCAxNS40NCAwIDAgMCA1LjYyIDE3TDIuMyAyMC4yOWwxLjQxIDEuNDIgMTgtMTgtMS40MS0xLjQyek03IDE1LjU1YTEzLjM2IDEzLjM2IDAgMCAxLTMtOC4xM2wyLTJMOC41OSA4IDcuMyA5LjI5YTEgMSAwIDAgMC0uMjcuOTIgMTEgMTEgMCAwIDAgMS42MiAzLjczem05LjcxLTIuMjZhMSAxIDAgMCAwLTEuNDEgMGwtMS42IDEuNi0uMzQtLjEyLTEuNTYgMS41NWExMi4wNiAxMi4wNiAwIDAgMCAyIC42NiAxIDEgMCAwIDAgLjkxLS4yN2wxLjMtMS4zTDE4LjU5IDE4bC0yIDJBMTMuNjEgMTMuNjEgMCAwIDEgMTAgMTguMWwtMS40MyAxLjQ1YTE1LjYzIDE1LjYzIDAgMCAwIDggMi40NSAyIDIgMCAwIDAgMS40My0uNThsMi43MS0yLjcxYTEgMSAwIDAgMCAwLTEuNDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGhvbmVPdXRnb2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNzEyIDEzLjI4OGEuOTk5Ljk5OSAwIDAgMC0xLjQxNCAwbC0xLjU5NCAxLjU5NGMtLjczOS0uMjItMi4xMTgtLjcyLTIuOTkyLTEuNTk0cy0xLjM3NC0yLjI1My0xLjU5NC0yLjk5MmwxLjU5NC0xLjU5NGEuOTk5Ljk5OSAwIDAgMCAwLTEuNDE0bC00LTRhLjk5OS45OTkgMCAwIDAtMS40MTQgMEwyLjU4NiA2Yy0uMzguMzgtLjU5NC45MDItLjU4NiAxLjQzNS4wMjMgMS40MjQuNCA2LjM3IDQuMjk4IDEwLjI2OFMxNS4xNDIgMjEuOTc3IDE2LjU2NiAyMmguMDI4Yy41MjggMCAxLjAyNy0uMjA4IDEuNDA1LS41ODZsMi43MTItMi43MTJhLjk5OS45OTkgMCAwIDAgMC0xLjQxNGwtMy45OTktNHpNMTYuNTg1IDIwYy0xLjI0OC0uMDIxLTUuNTE4LS4zNTYtOC44NzMtMy43MTJDNC4zNDYgMTIuOTIyIDQuMDIgOC42MzcgNCA3LjQxNGwyLjAwNS0yLjAwNSAyLjU4NiAyLjU4Ni0xLjI5MyAxLjI5M2ExIDEgMCAwIDAtLjI3Mi45MTJjLjAyNC4xMTUuNjExIDIuODQyIDIuMjcxIDQuNTAyczQuMzg3IDIuMjQ3IDQuNTAyIDIuMjcxYS45OTMuOTkzIDAgMCAwIC45MTItLjI3MWwxLjI5My0xLjI5MyAyLjU4NiAyLjU4NkwxNi41ODUgMjB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuNzk1IDUuNzkxLTQuNDk3IDQuNDk3IDEuNDE0IDEuNDE0IDQuNDk3LTQuNDk3TDIxLjAwNSAxMFYyLjk5NUgxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNzA3IDEyLjI5M2EuOTk5Ljk5OSAwIDAgMC0xLjQxNCAwbC0xLjU5NCAxLjU5NGMtLjczOS0uMjItMi4xMTgtLjcyLTIuOTkyLTEuNTk0cy0xLjM3NC0yLjI1My0xLjU5NC0yLjk5MmwxLjU5NC0xLjU5NGEuOTk5Ljk5OSAwIDAgMCAwLTEuNDE0bC00LTRhLjk5OS45OTkgMCAwIDAtMS40MTQgMEwzLjU4MSA1LjAwNWMtLjM4LjM4LS41OTQuOTAyLS41ODYgMS40MzUuMDIzIDEuNDI0LjQgNi4zNyA0LjI5OCAxMC4yNjhzOC44NDQgNC4yNzQgMTAuMjY5IDQuMjk4aC4wMjhjLjUyOCAwIDEuMDI3LS4yMDggMS40MDUtLjU4NmwyLjcxMi0yLjcxMmEuOTk5Ljk5OSAwIDAgMCAwLTEuNDE0bC00LTQuMDAxem0tLjEyNyA2LjcxMmMtMS4yNDgtLjAyMS01LjUxOC0uMzU2LTguODczLTMuNzEyLTMuMzY2LTMuMzY2LTMuNjkyLTcuNjUxLTMuNzEyLTguODc0TDcgNC40MTQgOS41ODYgNyA4LjI5MyA4LjI5M2ExIDEgMCAwIDAtLjI3Mi45MTJjLjAyNC4xMTUuNjExIDIuODQyIDIuMjcxIDQuNTAyczQuMzg3IDIuMjQ3IDQuNTAyIDIuMjcxYS45OTEuOTkxIDAgMCAwIC45MTItLjI3MUwxNyAxNC40MTQgMTkuNTg2IDE3bC0yLjAwNiAyLjAwNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQaG90b0FsYnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wMjQgMTEuNTM2IDEwIDEwbC0yIDNoOWwtMy41LTV6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5LjUwM1wiLFwiY3lcIjpcIjcuNDk3XCIsXCJyXCI6XCIxLjUwM1wifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJINmMtMS4yMDYgMC0zIC43OTktMyAzdjE0YzAgMi4yMDEgMS43OTQgMyAzIDNoMTV2LTJINi4wMTJDNS41NSAxOS45ODggNSAxOS44MDYgNSAxOXMuNTUtLjk4OCAxLjAxMi0xSDIxVjRjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0SDVWNWMwLS44MDYuNTUtLjk4OCAxLTFoMTN2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGllQ2hhcnRBbHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTcuOTMxIDlIMTNWNC4wNjlBOC4wMDggOC4wMDggMCAwIDEgMTkuOTMxIDExek00IDEyYzAtNC4wNzIgMy4wNjEtNy40MzYgNy03LjkzMVYxMmEuOTk2Ljk5NiAwIDAgMCAuMTExLjQzOGMuMDE1LjAzLjAyMi4wNjMuMDQxLjA5M2w0LjIwMiA2LjcyM0E3Ljk0OSA3Ljk0OSAwIDAgMSAxMiAyMGMtNC40MTEgMC04LTMuNTg5LTgtOHptMTMuMDUyIDYuMTk2TDEzLjgwNSAxM2g2LjEyNmE3Ljk5MiA3Ljk5MiAwIDAgMS0yLjg3OSA1LjE5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQaWVDaGFydEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmE5LjkzNiA5LjkzNiAwIDAgMC03LjA3MSAyLjkyOUMzLjA0IDYuODE4IDIgOS4zMyAyIDEyczEuMDQgNS4xODIgMi45MjkgNy4wNzFDNi44MTggMjAuOTYgOS4zMyAyMiAxMiAyMnM1LjE4Mi0xLjA0IDcuMDcxLTIuOTI5QzIwLjk2IDE3LjE4MiAyMiAxNC42NyAyMiAxMnMtMS4wNC01LjE4Mi0yLjkyOS03LjA3MUE5LjkzNiA5LjkzNiAwIDAgMCAxMiAyem01LjY1NyAxNS42NTdDMTYuMTQ2IDE5LjE2OCAxNC4xMzcgMjAgMTIgMjBzLTQuMTQ2LS44MzItNS42NTctMi4zNDNDNC44MzIgMTYuMTQ2IDQgMTQuMTM3IDQgMTJzLjgzMi00LjE0NiAyLjM0My01LjY1N0E3LjkyNyA3LjkyNyAwIDAgMSAxMSA0LjA2OVYxMmExIDEgMCAwIDAgMSAxaDcuOTMxYTcuOTI3IDcuOTI3IDAgMCAxLTIuMjc0IDQuNjU3ek0xMyAxMVY0LjA2MmE3Ljk0NSA3Ljk0NSAwIDAgMSA0LjY1NyAyLjI4MUE3LjkzNCA3LjkzNCAwIDAgMSAxOS45MzggMTFIMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGllQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1LjE2NlYxMmg2LjgzNEE2LjgxNyA2LjgxNyAwIDAgMCAxMiA1LjE2NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDIyIDEtMnYtM2g1YTEgMSAwIDAgMCAxLTF2LTEuNTg2YzAtLjUyNi0uMjE0LTEuMDQyLS41ODYtMS40MTRMMTcgMTEuNTg2VjhhMSAxIDAgMCAwIDEtMVY0YzAtMS4xMDMtLjg5Ny0yLTItMkg4Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2M2ExIDEgMCAwIDAgMSAxdjMuNTg2TDUuNTg2IDEzQTIuMDEgMi4wMSAwIDAgMCA1IDE0LjQxNFYxNmExIDEgMCAwIDAgMSAxaDV2M2wxIDJ6TTggNGg4djJIOFY0ek03IDE0LjQxNGwxLjcwNy0xLjcwN0EuOTk2Ljk5NiAwIDAgMCA5IDEyVjhoNnY0YzAgLjI2Ni4xMDUuNTIuMjkzLjcwN0wxNyAxNC40MTRWMTVIN3YtLjU4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQbGFuZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNzYgMjAuMmEyLjczIDIuNzMgMCAwIDAgMi4xNS44NSA4Ljg2IDguODYgMCAwIDAgMy4zNy0uODYgOSA5IDAgMCAwIDEyLjI3LTEwLjljMS4zMS0yLjIzIDEuNzUtNC4yNi42Ny01LjQ4YTIuOTQgMi45NCAwIDAgMC0yLjU3LTFBNSA1IDAgMCAwIDE2LjEgNCA5IDkgMCAwIDAgMy41OCAxNS4xNGMtMS4wNiAxLjIxLTIuMDUgMy42OC0uODIgNS4wNnptMS41LTEuMzJjLS4yMi0uMjUgMC0xLjA3LjM3LTEuNzZhOS4yNiA5LjI2IDAgMCAwIDEuNTcgMS43NGMtMS4wMy4zLTEuNzEuMjgtMS45NC4wMnptMTQuNTEtNS4xN0E3IDcgMCAwIDEgMTUuNTggMTggNy4xMiA3LjEyIDAgMCAxIDEyIDE5YTYuNDQgNi40NCAwIDAgMS0xLjI0LS4xMyAzMC43MyAzMC43MyAwIDAgMCA0LjQyLTMuMjkgMzEuNSAzMS41IDAgMCAwIDMuOC00IDYuODggNi44OCAwIDAgMS0uMjEgMi4xM3ptLjA5LTguODlhLjk0Ljk0IDAgMCAxIC44Ny4zMmMuMjMuMjYuMTYuOTQtLjI2IDEuOTNhOS4yIDkuMiAwIDAgMC0xLjYxLTEuODYgMi40OCAyLjQ4IDAgMCAxIDEtLjM5ek01LjIyIDEwLjMxQTYuOTQgNi45NCAwIDAgMSA4LjQxIDYgNyA3IDAgMCAxIDEyIDVhNi45IDYuOSAwIDAgMSA2IDMuNDEgNS4xOSA1LjE5IDAgMCAxIC4zNS42NiAyNy40MyAyNy40MyAwIDAgMS00LjQ5IDVBMjcuMzUgMjcuMzUgMCAwIDEgOC4zNSAxOGE3IDcgMCAwIDEtMy4xMy03LjY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVBsYXlDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05IDE3IDgtNS04LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA2djEybDEwLTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGx1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA4aDJ2NWMwIDIuMjA2IDEuNzk0IDQgNCA0aDJ2NWgydi01aDJjMi4yMDYgMCA0LTEuNzk0IDQtNFY4aDJWNkgzdjJ6bTQgMGgxMHY1YzAgMS4xMDMtLjg5NyAyLTIgMkg5Yy0xLjEwMyAwLTItLjg5Ny0yLTJWOHptMC02aDJ2M0g3em04IDBoMnYzaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVBsdXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUGx1c01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDIuMDEzSDlWOUgydjZoN3Y2Ljk4N2g2VjE1aDdWOWgtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWgtNlY1aC0ydjZINXYyaDZ2Nmgydi02aDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUG9kY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMi4wMVwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDEgMjJoMmwuNS03aC0zbC41IDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmExMCAxMCAwIDAgMC0yLjQ1IDE5LjY4bC0uMTUtMi4xMmE4IDggMCAxIDEgNS4yMSAwbC0uMTUgMi4xMkExMCAxMCAwIDAgMCAxMiAyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjMyIDkuNjFhMy40NCAzLjQ0IDAgMCAxIC4zNy42OCAzLjgzIDMuODMgMCAwIDEgLjIzLjc1IDMuNTcgMy41NyAwIDAgMSAuMDkuOCAzLjY2IDMuNjYgMCAwIDEtLjA5LjgxIDMuODMgMy44MyAwIDAgMS0uMjMuNzUgMy40NCAzLjQ0IDAgMCAxLS4zNy42OCA0LjcgNC43IDAgMCAxLS4zNS40M2wtLjE5IDIuNjJhNS4zMyA1LjMzIDAgMCAwIC41OC0uMzFBNS44NiA1Ljg2IDAgMCAwIDE3IDE1LjJhNS41NyA1LjU3IDAgMCAwIC41NS0xIDUuODkgNS44OSAwIDAgMCAuMzUtMS4xMyA2LjA2IDYuMDYgMCAwIDAgLjEtMS4yMyA2LjIyIDYuMjIgMCAwIDAtLjEzLTEuMjFBNi4wOSA2LjA5IDAgMCAwIDE3IDguNDlhNi4yOSA2LjI5IDAgMCAwLS43My0uODkgNS42NyA1LjY3IDAgMCAwLS44OS0uNzMgNi4zIDYuMyAwIDAgMC0xLS41NkE2LjE3IDYuMTcgMCAwIDAgMTMuMjEgNmE2LjExIDYuMTEgMCAwIDAtMi40MSAwIDUuNTEgNS41MSAwIDAgMC0xLjEzLjM2IDUuNTcgNS41NyAwIDAgMC0xIC41NSA1LjY3IDUuNjcgMCAwIDAtLjg5LjczIDYuMjkgNi4yOSAwIDAgMC0uNzguODUgNi4wOSA2LjA5IDAgMCAwLS45IDIuMTQgNi4yMSA2LjIxIDAgMCAwLS4xIDEuMjEgNi4wNiA2LjA2IDAgMCAwIC4xMiAxLjIxIDUuODkgNS44OSAwIDAgMCAuMzUgMS4xMyA1LjU3IDUuNTcgMCAwIDAgLjU1IDEgNi4yNCA2LjI0IDAgMCAwIDEuNjIgMS42MiA1LjMzIDUuMzMgMCAwIDAgLjU4LjMxTDkgMTQuNTFhNC43IDQuNyAwIDAgMS0uMzUtLjQzIDMuNDQgMy40NCAwIDAgMS0uMzctLjY4IDMuODMgMy44MyAwIDAgMS0uMjMtLjc1IDMuNjUgMy42NSAwIDAgMS0uMDUtLjgxIDMuNTYgMy41NiAwIDAgMSAuMDgtLjggMy44MyAzLjgzIDAgMCAxIC4yMy0uNzUgMy40NCAzLjQ0IDAgMCAxIC4zNy0uNjggNCA0IDAgMCAxIC41LS42MSAzLjg3IDMuODcgMCAwIDEgLjU5LS40OCAzLjQ0IDMuNDQgMCAwIDEgLjY4LS4zNyAzLjg2IDMuODYgMCAwIDEgLjc1LS4yNCA0LjM2IDQuMzYgMCAwIDEgMS42MSAwIDMuODYgMy44NiAwIDAgMSAuNzUuMjQgMy41OCAzLjU4IDAgMCAxIDEuMjcuODUgMy40OSAzLjQ5IDAgMCAxIC40OS42MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQb2ludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45NzggMTMuMjFhMSAxIDAgMCAwLS4zOTYtMS4wMjRsLTE0LTEwYS45OTkuOTk5IDAgMCAwLTEuNTc1LjkzMWwyIDE3YTEgMSAwIDAgMCAxLjc2Ny41MTZsMy42MTItNC40MTYgMy4zNzcgNS40NiAxLjcwMS0xLjA1Mi0zLjM1Ny01LjQyOCA2LjA4OS0xLjIxOGEuOTk1Ljk5NSAwIDAgMCAuNzgyLS43Njl6bS04LjY3NC4zMWExIDEgMCAwIDAtLjU3OC4zNDdsLTMuMDA4IDMuNjc3TDcuMjU3IDUuMTI3bDEwLjI4MyA3LjM0NS01LjIzNiAxLjA0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQb2xsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExaDd2Mkg3em0wLTRoMTAuOTd2Mkg3em0wIDhoMTN2Mkg3ek00IDRoMnYxNkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVBvbHlnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjcwNyAyLjI5M0EuOTk2Ljk5NiAwIDAgMCAxNiAySDhhLjk5Ni45OTYgMCAwIDAtLjcwNy4yOTNsLTUgNUEuOTk2Ljk5NiAwIDAgMCAyIDh2OGMwIC4yNjYuMTA1LjUyLjI5My43MDdsNSA1QS45OTYuOTk2IDAgMCAwIDggMjJoOGMuMjY2IDAgLjUyLS4xMDUuNzA3LS4yOTNsNS01QS45OTYuOTk2IDAgMCAwIDIyIDE2VjhhLjk5Ni45OTYgMCAwIDAtLjI5My0uNzA3bC01LTV6TTIwIDE1LjU4NiAxNS41ODYgMjBIOC40MTRMNCAxNS41ODZWOC40MTRMOC40MTQgNGg3LjE3MkwyMCA4LjQxNHY3LjE3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNS41NTMgMTkuMTA1Ljc2NCAxLjg0M0M3LjQ5OCAyMC41NTUgOS40MjIgMjAgMTAgMjBjLjgzOCAwIDEuNDYyLjIwOCAyLjE4NC40NDguNzc1LjI1OSAxLjY1NC41NTIgMi44MTYuNTUyIDEuMTc3IDAgMy4wNzgtLjkyMSAzLjQ0Ny0xLjEwNWwtLjg5NS0xLjc4OWMtLjcyMS4zNi0yLjAzMS44OTQtMi41NTIuODk0LS44MzggMC0xLjQ2Mi0uMjA4LTIuMTg0LS40NDhDMTIuMDQxIDE4LjI5MyAxMS4xNjIgMTggMTAgMThjLS4yMjkgMC0uNTI2LjAzNy0uODU3LjA5OUM5LjcwMiAxNi45NSAxMCAxNS41NjEgMTAgMTRoM3YtMkg5LjYyNmMtLjA0Mi0uMTA3LS4wODQtLjIxNi0uMTI1LS4zMTdDOS4yNDMgMTEuMDUyIDkgMTAuNDU1IDkgOWMwLTEuMzY5LjUyMS0zIDMtMyAyLjIyNCAwIDMuMDIxIDIuMjI3IDMuMDUyIDIuMzE2bDEuODk2LS42MzNDMTYuODk4IDcuNTMzIDE1LjY3OSA0IDEyIDQgOC4zMTMgNCA3IDYuNTgzIDcgOWMwIDEuNDkxLjIzNCAyLjM1LjQ3OCAzSDV2MmgzYzAgMi40NjctLjg5MiA0LjMyOC0yLjQ0NyA1LjEwNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQb3dlck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjFjNC40MTEgMCA4LTMuNTg5IDgtOCAwLTMuMzUtMi4wNzItNi4yMjEtNS03LjQxMXYyLjIyM0E2IDYgMCAwIDEgMTggMTNjMCAzLjMwOS0yLjY5MSA2LTYgNnMtNi0yLjY5MS02LTZhNS45OTkgNS45OTkgMCAwIDEgMy01LjE4OFY1LjU4OUM2LjA3MiA2Ljc3OSA0IDkuNjUgNCAxM2MwIDQuNDExIDMuNTg5IDggOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDJoMnYxMGgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlQcmludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3aC0xVjJINnY1SDVjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2N2MwIDEuMTAzLjg5NyAyIDIgMmgydjNoMTJ2LTNoMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTdjMC0xLjY1NC0xLjM0Ni0zLTMtM3pNOCA0aDh2M0g4VjR6bTggMTZIOHYtNGg4djR6bTQtM2gtMnYtM0g2djNINHYtN2MwLS41NTEuNDQ5LTEgMS0xaDE0Yy41NTIgMCAxIC40NDkgMSAxdjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBoNHYyaC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVB1bHNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi45NyA0Ljc1N2EuOTk5Ljk5OSAwIDAgMC0xLjkxOC0uMDczbC0zLjE4NiA5LjU1NC0yLjk1Mi02LjY0NGExLjAwMiAxLjAwMiAwIDAgMC0xLjg0My4wMzRMNS4zMjMgMTJIMnYyaDMuMzIzYy44MjMgMCAxLjU1Mi0uNDk0IDEuODU2LTEuMjU3bC44NjktMi4xNzIgMy4wMzcgNi44MzVjLjE2Mi4zNjMuNTIxLjU5NC45MTUuNTk0bC4wNDgtLjAwMWEuOTk4Ljk5OCAwIDAgMCAuOS0uNjgzbDIuOTE0LTguNzQyLjk3OSAzLjkxMUExLjk5NSAxLjk5NSAwIDAgMCAxOC43ODEgMTRIMjJ2LTJoLTMuMjJsLTEuODEtNy4yNDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUHVyY2hhc2VUYWdBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjcwNyAyLjI5M0EuOTk3Ljk5NyAwIDAgMCAxMSAySDZhLjk5Ny45OTcgMCAwIDAtLjcwNy4yOTNsLTMgM0EuOTk2Ljk5NiAwIDAgMCAyIDZ2NWMwIC4yNjYuMTA1LjUyLjI5My43MDdsMTAgMTBhLjk5Ny45OTcgMCAwIDAgMS40MTQgMGw4LThhLjk5OS45OTkgMCAwIDAgMC0xLjQxNGwtMTAtMTB6TTEzIDE5LjU4NmwtOS05VjYuNDE0TDYuNDE0IDRoNC4xNzJsOSA5TDEzIDE5LjU4NnpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguMzUzXCIsXCJjeVwiOlwiOC4zNTNcIixcInJcIjpcIjEuNjQ3XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUHVyY2hhc2VUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjcwNyAzLjI5M0EuOTk2Ljk5NiAwIDAgMCAxMyAzSDRhMSAxIDAgMCAwLTEgMXY5YzAgLjI2Ni4xMDUuNTIuMjkzLjcwN2w4IDhhLjk5Ny45OTcgMCAwIDAgMS40MTQgMGw5LTlhLjk5OS45OTkgMCAwIDAgMC0xLjQxNGwtOC04ek0xMiAxOS41ODZsLTctN1Y1aDcuNTg2bDcgN0wxMiAxOS41ODZ6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjQ5NlwiLFwiY3lcIjpcIjguNDk1XCIsXCJyXCI6XCIxLjUwNVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVB5cmFtaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ0NSAyMS44MzJhMSAxIDAgMCAwIDEuMTEgMGw5LTZBLjk5OC45OTggMCAwIDAgMjEuOCAxNC40bC05LTEyYy0uMzc3LS41MDQtMS4yMjMtLjUwNC0xLjYgMGwtOSAxMmExIDEgMCAwIDAgLjI0NSAxLjQzMmw5IDZ6TTEzIDE5LjEzMVY2bDYuNTY1IDguNzU0TDEzIDE5LjEzMXpNMTEgNnYxMy4xMzFsLTYuNTY1LTQuMzc3TDExIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUXJTY2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRoNC4wMVYySDJ2NmgyVjR6bTAgMTJIMnY2aDYuMDF2LTJINHYtNHptMTYgNGgtNHYyaDZ2LTZoLTJ2NHpNMTYgNGg0djRoMlYyaC02djJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxMWg2VjVINXptMi00aDJ2Mkg3ek01IDE5aDZ2LTZINXptMi00aDJ2Mkg3ek0xOSA1aC02djZoNnptLTIgNGgtMlY3aDJ6bS0zLjk5IDRoMnYyaC0yem0yIDJoMnYyaC0yem0yIDJoMnYyaC0yem0wLTRoMnYyaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDExaDhWM0gzem0yLTZoNHY0SDV6TTMgMjFoOHYtOEgzem0yLTZoNHY0SDV6bTgtMTJ2OGg4VjN6bTYgNmgtNFY1aDR6bS01Ljk5IDRoMnYyaC0yem0yIDJoMnYyaC0yem0tMiAyaDJ2MmgtMnptNCAwaDJ2MmgtMnptMiAyaDJ2MmgtMnptLTQgMGgydjJoLTJ6bTItNmgydjJoLTJ6bTIgMmgydjJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUXVlc3Rpb25NYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzkuMjQzIDQgNyA2LjI0MyA3IDloMmMwLTEuNjU0IDEuMzQ2LTMgMy0zczMgMS4zNDYgMyAzYzAgMS4wNjktLjQ1NCAxLjQ2NS0xLjQ4MSAyLjI1NS0uMzgyLjI5NC0uODEzLjYyNi0xLjIyNiAxLjAzOEMxMC45ODEgMTMuNjA0IDEwLjk5NSAxNC44OTcgMTEgMTV2Mmgydi0yLjAwOWMwLS4wMjQuMDIzLS42MDEuNzA3LTEuMjg0LjMyLS4zMi42ODItLjU5OCAxLjAzMS0uODY3QzE1Ljc5OCAxMi4wMjQgMTcgMTEuMSAxNyA5YzAtMi43NTctMi4yNDMtNS01LTV6bS0xIDE0aDJ2MmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSYWRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjU3OSAyIDIgNi41OCAyIDEyczQuNTc5IDEwIDEwIDEwIDEwLTQuNTggMTAtMTBTMTcuNDIxIDIgMTIgMnptMCAxOGMtNC4zMzcgMC04LTMuNjY0LTgtOCAwLTMuOTk4IDMuMTE1LTcuNDE3IDctNy45MjdWNi4wOUM4LjE2NyA2LjU2OSA2IDkuMDMzIDYgMTJjMCAzLjMwOSAyLjY5MSA2IDYgNiAxLjU5NSAwIDMuMS0uNjI2IDQuMjM3LTEuNzYzbC0xLjQxNC0xLjQxNUEzLjk3IDMuOTcgMCAwIDEgMTIgMTZjLTIuMjA2IDAtNC0xLjc5NC00LTQgMC0xLjg1OCAxLjI3OS0zLjQxMSAzLTMuODU4djIuMTQ2Yy0uNTkuMzUzLTEgLjk5My0xIDEuNzEyIDAgMS4wODEuOTE5IDIgMiAyczItLjkxOSAyLTJjMC0uNzE5LS40MS0xLjM1OS0xLTEuNzEyVjQuMDczYzMuODg1LjUxIDcgMy45MjkgNyA3LjkyNyAwIDQuMzM2LTMuNjYzIDgtOCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJhZGlvQ2lyY2xlTWFya2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1Yy0zLjg1OSAwLTcgMy4xNDEtNyA3czMuMTQxIDcgNyA3IDctMy4xNDEgNy03LTMuMTQxLTctNy03em0wIDEyYy0yLjc1NyAwLTUtMi4yNDMtNS01czIuMjQzLTUgNS01IDUgMi4yNDMgNSA1LTIuMjQzIDUtNSA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDljLTEuNjI3IDAtMyAxLjM3My0zIDNzMS4zNzMgMyAzIDMgMy0xLjM3MyAzLTMtMS4zNzMtMy0zLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmFkaW9DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJjMCAzLjg1OSAzLjE0IDcgNyA3IDMuODU5IDAgNy0zLjE0MSA3LTdzLTMuMTQxLTctNy03Yy0zLjg2IDAtNyAzLjE0MS03IDd6bTEyIDBjMCAyLjc1Ny0yLjI0MyA1LTUgNXMtNS0yLjI0My01LTUgMi4yNDMtNSA1LTUgNSAyLjI0MyA1IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmFkaW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjI1IDUuMDI1LTcuODk4LTIuOTYyLS43MDMgMS44NzNMMTQuNDg0IDVINGMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY3YzAtMS4wMTgtLjc2Ny0xLjg1LTEuNzUtMS45NzV6TTQgMTl2LTdoMTZ2LTJINFY3aDE2bC4wMDEgMTJINHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIxNS41XCIsXCJyXCI6XCIyLjVcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE1aDQuOTk5djJINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSZWNlaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMWgtM1Y0YTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjE0YzAgMS42NTQgMS4zNDYgMyAzIDNoMTRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtNmExIDEgMCAwIDAtMS0xek01IDE5YTEgMSAwIDAgMS0xLTFWNWgxMnYxM2MwIC4zNTEuMDYxLjY4OC4xNzEgMUg1em0xNS0xYTEgMSAwIDAgMS0yIDB2LTVoMnY1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgN2g4djJINnptMCA0aDh2Mkg2em01IDRoM3YyaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJlY3RhbmdsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek00IDE5VjVoMTZsLjAwMSAxNEg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJlY3ljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjIyNCAxNS41NDMtLjgxMy0xLjQ2NC0xLjc0OC45NzIuODEyIDEuNDYxYy4wNDguMDg1LjA4Mi4xNzMuMTA0LjI2NGExLjAyNCAxLjAyNCAwIDAgMS0uMDE0LjUuOTg4Ljk4OCAwIDAgMS0uMTA0LjIzNSAxIDEgMCAwIDEtLjM0Ny4zNTIuOTc4Ljk3OCAwIDAgMS0uNTEzLjEzN0gxNHYtMmwtNCAzIDQgM3YtMmg0LjYwMWMuMjc4IDAgLjU1Mi0uMDM3LjgxMS0uMTA5YTIuOTQ4IDIuOTQ4IDAgMCAwIDEuMzE5LS43NzZjLjE3OC0uMTc5LjMzMi0uMzguNDU2LS41OTNhMi45OTIgMi45OTIgMCAwIDAgLjMzNi0yLjIxNSAzLjE2MyAzLjE2MyAwIDAgMC0uMjk5LS43NjR6TTUuODYyIDExLjAzOWwtMi4zMSA0LjYyYTMuMDYgMy4wNiAwIDAgMC0uMjYxLjc1NSAyLjk5NyAyLjk5NyAwIDAgMCAuODUxIDIuNzM1Yy4xNzguMTc0LjM3Ni4zMjYuNTk1LjQ1M0EzLjAyMiAzLjAyMiAwIDAgMCA2LjIzNiAyMEg4di0ySDYuMjM2YTEuMDE2IDEuMDE2IDAgMCAxLS41LS4xMy45NzQuOTc0IDAgMCAxLS4zNTMtLjM0OSAxIDEgMCAwIDEtLjE0OS0uNDY4LjkzMy45MzMgMCAwIDEgLjAxOC0uMjQ1Yy4wMTgtLjA4Ny4wNDgtLjE3My4wODktLjI1NmwyLjI1Ni00LjUxMiAxLjU5OS45MjNMOC41OTggOCA0IDkuOTY0bDEuODYyIDEuMDc1em0xMi43MzYgMS45MjVMMTkuMTk2IDhsLTEuNjM4Ljk0NS0yLjg0My01LjExN2EyLjk1IDIuOTUgMCAwIDAtMS45MTMtMS40NTkgMy4yMjcgMy4yMjcgMCAwIDAtLjc3Mi0uMDgzIDMuMDAzIDMuMDAzIDAgMCAwLTEuNDk4LjQzM0EyLjk2NyAyLjk2NyAwIDAgMCA5LjQxIDMuOTQ0bC0uNzMyIDEuNDY0IDEuNzg5Ljg5NS43MzItMS40NjVjLjA0NS0uMDkuMTAxLS4xNzEuMTY2LS4yNDJhLjkzMy45MzMgMCAwIDEgLjQ0My0uMjcgMS4wNTMgMS4wNTMgMCAwIDEgLjUzLS4wMTEuOTYzLjk2MyAwIDAgMSAuNjMuNDg1bDIuODU4IDUuMTQ2TDE0IDExbDQuNTk4IDEuOTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJlZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMThoM3YtMkg5Yy0xLjY1NCAwLTMtMS4zNDYtMy0zczEuMzQ2LTMgMy0zaDZ2M2w1LTQtNS00djNIOWMtMi43NTcgMC01IDIuMjQzLTUgNXMyLjI0MyA1IDUgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSZWZyZXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMUg3LjEwMWwuMDAxLS4wMDlhNC45NTYgNC45NTYgMCAwIDEgLjc1Mi0xLjc4NyA1LjA1NCA1LjA1NCAwIDAgMSAyLjItMS44MTFjLjMwMi0uMTI4LjYxNy0uMjI2LjkzOC0uMjkxYTUuMDc4IDUuMDc4IDAgMCAxIDIuMDE4IDAgNC45NzggNC45NzggMCAwIDEgMi41MjUgMS4zNjFsMS40MTYtMS40MTJhNy4wMzYgNy4wMzYgMCAwIDAtMi4yMjQtMS41MDEgNi45MjEgNi45MjEgMCAwIDAtMS4zMTUtLjQwOCA3LjA3OSA3LjA3OSAwIDAgMC0yLjgxOSAwIDYuOTQgNi45NCAwIDAgMC0xLjMxNi40MDkgNy4wNCA3LjA0IDAgMCAwLTMuMDggMi41MzQgNi45NzggNi45NzggMCAwIDAtMS4wNTQgMi41MDVjLS4wMjguMTM1LS4wNDMuMjczLS4wNjMuNDFIMmw0IDQgNC00em00IDJoMi44OTlsLS4wMDEuMDA4YTQuOTc2IDQuOTc2IDAgMCAxLTIuMTAzIDMuMTM4IDQuOTQzIDQuOTQzIDAgMCAxLTEuNzg3Ljc1MiA1LjA3MyA1LjA3MyAwIDAgMS0yLjAxNyAwIDQuOTU2IDQuOTU2IDAgMCAxLTEuNzg3LS43NTIgNS4wNzIgNS4wNzIgMCAwIDEtLjc0LS42MUw3LjA1IDE2Ljk1YTcuMDMyIDcuMDMyIDAgMCAwIDIuMjI1IDEuNWMuNDI0LjE4Ljg2Ny4zMTcgMS4zMTUuNDA4YTcuMDcgNy4wNyAwIDAgMCAyLjgxOCAwIDcuMDMxIDcuMDMxIDAgMCAwIDQuMzk1LTIuOTQ1IDYuOTc0IDYuOTc0IDAgMCAwIDEuMDUzLTIuNTAzYy4wMjctLjEzNS4wNDMtLjI3My4wNjMtLjQxSDIybC00LTQtNCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJlZ2lzdGVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjE0IDJhMTAgMTAgMCAxIDAgMTAgMTAgMTAgMTAgMCAwIDAtMTAtMTB6bTAgMThhOCA4IDAgMSAxIDgtOCA4IDggMCAwIDEtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjE0IDEwYTMgMyAwIDAgMC0zLTNoLTV2MTBoMnYtNGgxLjQ2bDIuNjcgNGgyLjRsLTIuNzUtNC4xMkEzIDMgMCAwIDAgMTYuMTQgMTB6bS0zIDFoLTNWOWgzYTEgMSAwIDAgMSAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmVuYW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4wMDUgNS45OTVoLTF2MmgxdjhoLTF2MmgxYzEuMTAzIDAgMi0uODk3IDItMnYtOGMwLTEuMTAyLS44OTgtMi0yLTJ6bS0xNCA0SDE1djRINi4wMDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMDA1IDE3Ljk5NVY0SDIwVjJoLTh2MmgzLjAwNXYxLjk5NWgtMTFjLTEuMTAzIDAtMiAuODk3LTIgMnY4YzAgMS4xMDMuODk3IDIgMiAyaDExVjIwSDEydjJoOHYtMmgtMi45OTV2LTIuMDA1em0tMTMtMnYtOGgxMXY4aC0xMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSZXBlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZoLTV2Mmg0djlINFY4aDV2M2w1LTQtNS00djNIM2ExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoMThhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmVwbHlBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4di04YTEgMSAwIDAgMC0xLTFoLTZWNmwtNSA0IDUgNHYtM2g1djdoMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEyLjQgNiAxMGwzLTIuNFY2bC01IDQgNSA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMWg2djdoMnYtOGExIDEgMCAwIDAtMS0xaC03VjZsLTUgNCA1IDR2LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmVwb3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3YTEgMSAwIDAgMC0xLTFoLTh2Mmg3djVoLTNsMy45NjkgNUwyMiAxM2gtM1Y3ek01IDE3YTEgMSAwIDAgMCAxIDFoOHYtMkg3di01aDNMNiA2bC00IDVoM3Y2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJlc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNmMxLjY3MSAwIDMtMS4zMzEgMy0zcy0xLjMyOS0zLTMtMy0zIDEuMzMxLTMgMyAxLjMyOSAzIDMgM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC44MTcgMTEuMTg2YTguOTQgOC45NCAwIDAgMC0xLjM1NS0zLjIxOSA5LjA1MyA5LjA1MyAwIDAgMC0yLjQzLTIuNDMgOC45NSA4Ljk1IDAgMCAwLTMuMjE5LTEuMzU1IDkuMDI4IDkuMDI4IDAgMCAwLTEuODM4LS4xOFYyTDggNWwzLjk3NSAzVjYuMDAyYy40ODQtLjAwMi45NjguMDQ0IDEuNDM1LjE0YTYuOTYxIDYuOTYxIDAgMCAxIDIuNTAyIDEuMDUzIDcuMDA1IDcuMDA1IDAgMCAxIDEuODkyIDEuODkyQTYuOTY3IDYuOTY3IDAgMCAxIDE5IDEzYTcuMDMyIDcuMDMyIDAgMCAxLS41NSAyLjcyNSA3LjExIDcuMTEgMCAwIDEtLjY0NCAxLjE4OCA3LjIgNy4yIDAgMCAxLS44NTggMS4wMzkgNy4wMjggNy4wMjggMCAwIDEtMy41MzYgMS45MDcgNy4xMyA3LjEzIDAgMCAxLTIuODIyIDAgNi45NjEgNi45NjEgMCAwIDEtMi41MDMtMS4wNTQgNy4wMDIgNy4wMDIgMCAwIDEtMS44OS0xLjg5QTYuOTk2IDYuOTk2IDAgMCAxIDUgMTNIM2E5LjAyIDkuMDIgMCAwIDAgMS41MzkgNS4wMzQgOS4wOTYgOS4wOTYgMCAwIDAgMi40MjggMi40MjhBOC45NSA4Ljk1IDAgMCAwIDEyIDIyYTkuMDkgOS4wOSAwIDAgMCAxLjgxNC0uMTgzIDkuMDE0IDkuMDE0IDAgMCAwIDMuMjE4LTEuMzU1IDguODg2IDguODg2IDAgMCAwIDEuMzMxLTEuMDk5IDkuMjI4IDkuMjI4IDAgMCAwIDEuMS0xLjMzMkE4Ljk1MiA4Ljk1MiAwIDAgMCAyMSAxM2E5LjA5IDkuMDkgMCAwIDAtLjE4My0xLjgxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSZXN0YXVyYW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGgtMlYzSDh2N0g2VjNINHY4YzAgMS42NTQgMS4zNDYgMyAzIDNoMXY3aDJ2LTdoMWMxLjY1NCAwIDMtMS4zNDYgMy0zVjNoLTJ2N3ptNy03aC0xYy0xLjE1OSAwLTIgMS4yNjItMiAzdjhoMnY3aDJWNGExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJldmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS44OSAxMC4xMDVhOC42OTYgOC42OTYgMCAwIDAtLjc4OS0xLjQ1NmwtMS42NTggMS4xMTlhNi42MDYgNi42MDYgMCAwIDEgLjk4NyAyLjM0NSA2LjY1OSA2LjY1OSAwIDAgMSAwIDIuNjQ4IDYuNDk1IDYuNDk1IDAgMCAxLS4zODQgMS4yMzEgNi40MDQgNi40MDQgMCAwIDEtLjYwMyAxLjExMiA2LjY1NCA2LjY1NCAwIDAgMS0xLjc3NiAxLjc3NSA2LjYwNiA2LjYwNiAwIDAgMS0yLjM0My45ODcgNi43MzQgNi43MzQgMCAwIDEtMi42NDYgMCA2LjU1IDYuNTUgMCAwIDEtMy4zMTctMS43ODggNi42MDUgNi42MDUgMCAwIDEtMS40MDgtMi4wODggNi42MTMgNi42MTMgMCAwIDEtLjM4Mi0xLjIzIDYuNjI3IDYuNjI3IDAgMCAxIC4zODItMy44NzdBNi41NTEgNi41NTEgMCAwIDEgNy4zNiA4Ljc5NyA2LjYyOCA2LjYyOCAwIDAgMSA5LjQ0NiA3LjM5Yy4zOTUtLjE2Ny44MS0uMjk2IDEuMjMtLjM4Mi4xMDctLjAyMi4yMTYtLjAzMi4zMjQtLjA0OVYxMGw1LTQtNS00djIuOTM4YTguODA1IDguODA1IDAgMCAwLS43MjUuMTExIDguNTEyIDguNTEyIDAgMCAwLTMuMDYzIDEuMjlBOC41NjYgOC41NjYgMCAwIDAgNC4xMSAxNi43N2E4LjUzNSA4LjUzNSAwIDAgMCAxLjgzNSAyLjcyNCA4LjYxNCA4LjYxNCAwIDAgMCAyLjcyMSAxLjgzMyA4LjU1IDguNTUgMCAwIDAgNS4wNjEuNDk5IDguNTc2IDguNTc2IDAgMCAwIDYuMTYyLTUuMDU2Yy4yMi0uNTIuMzg5LTEuMDYxLjUtMS42MDhhOC42NDMgOC42NDMgMCAwIDAgMC0zLjQ1IDguNjg0IDguNjg0IDAgMCAwLS40OTktMS42MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmV3aW5kQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTZWOGwtNSA0em02IDBWOGwtNSA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJld2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTJWN2wtNyA1IDcgNXptNy01LTcgNSA3IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmlnaHRBcnJvd0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuMjkzIDE3LjI5MyAxLjQxNCAxLjQxNEwxOS40MTQgMTJsLTYuNzA3LTYuNzA3LTEuNDE0IDEuNDE0TDE1LjU4NiAxMUg2djJoOS41ODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmlnaHRBcnJvd0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTk5IDEuOTkzYy01LjUxNC4wMDEtMTAgNC40ODctMTAgMTAuMDAxczQuNDg2IDEwIDEwLjAwMSAxMGM1LjUxMyAwIDkuOTk5LTQuNDg2IDEwLTEwIDAtNS41MTQtNC40ODYtMTAtMTAuMDAxLTEwLjAwMXpNMTIgMTkuOTk0Yy00LjQxMiAwLTguMDAxLTMuNTg5LTguMDAxLThzMy41ODktOCA4LTguMDAxQzE2LjQxMSAzLjk5NCAyMCA3LjU4MyAyMCAxMS45OTRjLS4wMDEgNC40MTEtMy41OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMC45OTRIOHYyaDRWMTZsNC4wMDUtNC4wMDVMMTIgNy45OTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUmlnaHRBcnJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41MzYgMjEuODg2YTEuMDA0IDEuMDA0IDAgMCAwIDEuMDMzLS4wNjRsMTMtOWExIDEgMCAwIDAgMC0xLjY0NGwtMTMtOUEuOTk4Ljk5OCAwIDAgMCA1IDN2MThhMSAxIDAgMCAwIC41MzYuODg2ek03IDQuOTA5IDE3LjI0MyAxMiA3IDE5LjA5MVY0LjkwOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSaWdodERvd25BcnJvd0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMi4wMDdhOS45MjggOS45MjggMCAwIDAtNy4wNzEgMi45MjJjLTMuODk5IDMuODk5LTMuODk5IDEwLjI0MyAwIDE0LjE0M0E5LjkzIDkuOTMgMCAwIDAgMTIgMjEuOTk1YTkuOTMgOS45MyAwIDAgMCA3LjA3MS0yLjkyM2MzLjg5OS0zLjg5OSAzLjg5OS0xMC4yNDMgMC0xNC4xNDNBOS45MjggOS45MjggMCAwIDAgMTIgMi4wMDd6bTUuNjU3IDE1LjY1QTcuOTQ2IDcuOTQ2IDAgMCAxIDEyIDE5Ljk5NGMtMi4xNDEgMC00LjE1LS44My01LjY1Ny0yLjMzNy0zLjExOS0zLjExOS0zLjExOS04LjE5NSAwLTExLjMxNEE3Ljk0NCA3Ljk0NCAwIDAgMSAxMiA0LjAwN2MyLjE0MSAwIDQuMTUuODI5IDUuNjU3IDIuMzM2IDMuMTE5IDMuMTE5IDMuMTE5IDguMTk1IDAgMTEuMzE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNjYxIDguMjQ3IDguMjQ3IDkuNjYxbDMuMjE0IDMuMjE0TDkuMzM2IDE1SDE1VjkuMzM3bC0yLjEyNSAyLjEyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSaWdodEluZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTVoMTB2MkgxMHptLTYgNGgxNnYySDR6bTYtOGgxMHYySDEwem0wLTRoMTB2MkgxMHpNNCAzaDE2djJINHptMCA1djhsNC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJpZ2h0VG9wQXJyb3dDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAwNiAyLjAwN2E5LjkyNyA5LjkyNyAwIDAgMC03LjA3MSAyLjkyMmMtMy44OTggMy44OTktMy44OTggMTAuMjQzIDAgMTQuMTQyIDEuODg1IDEuODg1IDQuMzk2IDIuOTIzIDcuMDcxIDIuOTIzczUuMTg3LTEuMDM4IDcuMDcxLTIuOTIzYzMuODk4LTMuODk4IDMuODk4LTEwLjI0MiAwLTE0LjE0MmE5LjkyOCA5LjkyOCAwIDAgMC03LjA3MS0yLjkyMnptNS42NTcgMTUuNjQ5Yy0xLjUwNyAxLjUwNy0zLjUxNyAyLjMzNy01LjY1NyAyLjMzN3MtNC4xNS0uODMtNS42NTctMi4zMzdjLTMuMTE4LTMuMTE5LTMuMTE4LTguMTk0IDAtMTEuMzEzIDEuNTA3LTEuNTA3IDMuNTE2LTIuMzM2IDUuNjU3LTIuMzM2czQuMTUuODI5IDUuNjU3IDIuMzM2YzMuMTE4IDMuMTE5IDMuMTE4IDguMTk0IDAgMTEuMzEzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjQ2NyAxMS4xMjUtMy4yMTQgMy4yMTQgMS40MTQgMS40MTQgMy4yMTQtMy4yMTQgMi4xMjUgMi4xMjRWOUg5LjM0M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlSb2NrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjkyIDIuMzhBMTUuNzIgMTUuNzIgMCAwIDAgMTcuNSAyYTguMjYgOC4yNiAwIDAgMC02IDIuMDZROS44OSA1LjY3IDguMzEgNy4yN2MtMS4yMS0uMTMtNC4wOC0uMi02IDEuNzRhMSAxIDAgMCAwIDAgMS40MWwxMS4zIDExLjMyYTEgMSAwIDAgMCAxLjQxIDBjMS45NS0yIDEuODktNC44MiAxLjc3LTZsMy4yMS0zLjJjMy4xOS0zLjE5IDEuNzQtOS4xOCAxLjY4LTkuNDNhMSAxIDAgMCAwLS43Ni0uNzN6bS0yLjM2IDguNzVMMTUgMTQuNjdhMSAxIDAgMCAwLS4yNy45IDYuODEgNi44MSAwIDAgMS0uNTQgMy45NEw0LjUyIDkuODJhNi42NyA2LjY3IDAgMCAxIDQtLjVBMSAxIDAgMCAwIDkuMzkgOXMxLjQtMS40NSAzLjUxLTMuNTZBNi42MSA2LjYxIDAgMCAxIDE3LjUgNGExNC41MSAxNC41MSAwIDAgMSAyLjMzLjJjLjI0IDEuNDMuNjIgNS4wNC0xLjI3IDYuOTN6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS43M1wiLFwiY3lcIjpcIjguM1wiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTZjLTIgMS0yIDUtMiA1YTcuODEgNy44MSAwIDAgMCA1LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUm90YXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi43NTggOC43NTggNS4zNDQgNy4zNDRhOC4wNDggOC4wNDggMCAwIDAtMS44NDEgMi44NTlsMS44NzMuNzAxYTYuMDQ4IDYuMDQ4IDAgMCAxIDEuMzgyLTIuMTQ2ek0xOSAxMi45OTlhNy45MzUgNy45MzUgMCAwIDAtMi4zNDQtNS42NTVBNy45MTcgNy45MTcgMCAwIDAgMTIgNS4wNjlWMkw3IDZsNSA0VjcuMDg5YTUuOTQ0IDUuOTQ0IDAgMCAxIDMuMjQyIDEuNjY5QTUuOTU2IDUuOTU2IDAgMCAxIDE3IDEzdi4wMDJjMCAuMzMtLjAzMy42NTUtLjA4Ni45NzctLjAwNy4wNDMtLjAxMS4wODgtLjAxOS4xMzFhNi4wNTMgNi4wNTMgMCAwIDEtMS4xMzggMi41MzZjLS4xNi4yMDktLjMzMS40MTItLjUxNi41OTdhNS45NTQgNS45NTQgMCAwIDEtLjcyOC42MTMgNS45MDYgNS45MDYgMCAwIDEtMi4yNzcgMS4wMTVjLS4xNDIuMDMtLjI4NS4wNS0uNDMuMDY5LS4wNjIuMDA5LS4xMjIuMDIxLS4xODQuMDI3YTYuMTA0IDYuMTA0IDAgMCAxLTEuODk4LS4xMDNMOS4zIDIwLjgxOWE4LjA4NyA4LjA4NyAwIDAgMCAyLjUzNC4xMzZjLjA2OS0uMDA3LjEzOC0uMDIxLjIwNy0uMDMuMjA1LS4wMjYuNDA5LS4wNTYuNjEtLjA5OGwuMDUzLS4wMDktLjAwMS0uMDA1YTcuODc3IDcuODc3IDAgMCAwIDIuMTM2LS43OTVsLjAwMS4wMDEuMDI4LS4wMTlhNy45MDYgNy45MDYgMCAwIDAgMS4wMS0uNjdjLjI3LS4yMDkuNTMyLS40My43NzctLjY3NS4yNDgtLjI0Ny40Ny0uNTEzLjY4MS0uNzg1LjAyMS0uMDI4LjA0OS0uMDUzLjA3LS4wODFsLS4wMDYtLjAwNGE3Ljg5OSA3Ljg5OSAwIDAgMCAxLjA5My0xLjk5N2wuMDA4LjAwM2MuMDI5LS4wNzguMDUtLjE1OC4wNzYtLjIzNy4wMzctLjExLjA3NS0uMjIxLjEwNy0uMzMzLjA0LS4xNC4wNzMtLjI4MS4xMDUtLjQyMy4wMjItLjA5OS4wNDgtLjE5NS4wNjYtLjI5NS4wMzItLjE3MS4wNTYtLjM0NC4wNzYtLjUxNi4wMS0uMDc2LjAyMy0uMTUuMDMtLjIyNy4wMjMtLjI0OS4wMzctLjUuMDM3LS43NTMuMDAyLS4wMDIuMDAyLS4wMDQuMDAyLS4wMDh6TTYuMTk3IDE2LjU5N2wtMS42IDEuMjAxYTguMDQ1IDguMDQ1IDAgMCAwIDIuNTY5IDIuMjI1bC45NjEtMS43NTRhNi4wMTggNi4wMTggMCAwIDEtMS45My0xLjY3MnpNNSAxM2MwLS4xNDUuMDA1LS4yODcuMDE1LS40MjlsLTEuOTk0LS4xNDNhNy45NzcgNy45NzcgMCAwIDAgLjQ4MyAzLjM3MmwxLjg3My0uNzAxQTUuOTc1IDUuOTc1IDAgMCAxIDUgMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUm90YXRlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjI0MiAxNy4yNDJhNi4wNCA2LjA0IDAgMCAxLTEuMzcgMS4wMjdsLjk2MSAxLjc1NGE4LjA2OCA4LjA2OCAwIDAgMCAyLjU2OS0yLjIyNWwtMS42LTEuMjAxYTUuOTM4IDUuOTM4IDAgMCAxLS41Ni42NDV6bTEuNzQzLTQuNjcxYTUuOTc1IDUuOTc1IDAgMCAxLS4zNjIgMi41MjhsMS44NzMuNzAxYTcuOTc3IDcuOTc3IDAgMCAwIC40ODMtMy4zNzFsLTEuOTk0LjE0MnptMS41MTItMi4zNjhhOC4wNDggOC4wNDggMCAwIDAtMS44NDEtMi44NTlsLTEuNDE0IDEuNDE0YTYuMDcxIDYuMDcxIDAgMCAxIDEuMzgyIDIuMTQ2bDEuODczLS43MDF6bS04LjEyOCA4Ljc2M2MtLjA0Ny0uMDA1LS4wOTQtLjAxNS0uMTQxLS4wMjFhNi43MDEgNi43MDEgMCAwIDEtLjQ2OC0uMDc1IDUuOTIzIDUuOTIzIDAgMCAxLTIuNDIxLTEuMTIyIDUuOTU0IDUuOTU0IDAgMCAxLS41ODMtLjUwNiA2LjEzOCA2LjEzOCAwIDAgMS0uNTE2LS41OTcgNS45MSA1LjkxIDAgMCAxLS44OTEtMS42MzQgNi4wODYgNi4wODYgMCAwIDEtLjI0Ny0uOTAyYy0uMDA4LS4wNDMtLjAxMi0uMDg4LS4wMTktLjEzMUE2LjMzMiA2LjMzMiAwIDAgMSA2IDEzLjAwMlYxM2MwLTEuNjAzLjYyNC0zLjEwOSAxLjc1OC00LjI0MkE1Ljk0NCA1Ljk0NCAwIDAgMSAxMSA3LjA4OVYxMGw1LTQtNS00djMuMDY5YTcuOTE3IDcuOTE3IDAgMCAwLTQuNjU2IDIuMjc1QTcuOTM2IDcuOTM2IDAgMCAwIDQgMTIuOTk5di4wMDljMCAuMjUzLjAxNC41MDQuMDM3Ljc1My4wMDcuMDc2LjAyMS4xNS4wMy4yMjcuMDIxLjE3Mi4wNDQuMzQ1LjA3Ni41MTYuMDE5LjEuMDQ0LjE5Ni4wNjYuMjk1LjAzMi4xNDIuMDY1LjI4My4xMDUuNDIzLjAzMi4xMTIuMDcuMjIzLjEwNy4zMzMuMDI2LjA3OS4wNDcuMTU5LjA3Ni4yMzdsLjAwOC0uMDAzQTcuOTQ4IDcuOTQ4IDAgMCAwIDUuNiAxNy43ODVsLS4wMDcuMDA1Yy4wMjEuMDI4LjA0OS4wNTMuMDcuMDgxLjIxMS4yNzIuNDMzLjUzOC42ODEuNzg1YTguMjM2IDguMjM2IDAgMCAwIC45NjYuODE2Yy4yNjUuMTkyLjUzNy4zNzIuODIxLjUyOWwuMDI4LjAxOS4wMDEtLjAwMWE3Ljg3NyA3Ljg3NyAwIDAgMCAyLjEzNi43OTVsLS4wMDEuMDA1LjA1My4wMDljLjIwMS4wNDIuNDA1LjA3MS42MS4wOTguMDY5LjAwOS4xMzguMDIzLjIwNy4wM2E4LjAzOCA4LjAzOCAwIDAgMCAyLjUzMi0uMTM3bC0uNDI0LTEuOTU1YTYuMTEgNi4xMSAwIDAgMS0xLjkwNC4xMDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpUnNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyMC4wMDFDMTkgMTEuNzI5IDEyLjI3MSA1IDQgNXYyYzcuMTY4IDAgMTMgNS44MzIgMTMgMTMuMDAxaDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjAuMDAxaDJDMTQgMTQuNDg2IDkuNTE0IDEwIDQgMTB2MmM0LjQxMSAwIDggMy41ODkgOCA4LjAwMXpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJ1YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDIxaDJ2LTNoNnYtMmgtNnYtMmg0LjVjMi43NTcgMCA1LTIuMjQzIDUtNXMtMi4yNDMtNS01LTVIOWExIDEgMCAwIDAtMSAxdjdINXYyaDN2Mkg1djJoM3Yzem0yLTE1aDQuNWMxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM0gxMFY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJ1bGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC44NzUgN0gzLjEyNUMxLjk1MyA3IDEgNy44OTcgMSA5djZjMCAxLjEwMy45NTMgMiAyLjEyNSAyaDE3Ljc1QzIyLjA0NyAxNyAyMyAxNi4xMDMgMjMgMTVWOWMwLTEuMTAzLS45NTMtMi0yLjEyNS0yem0wIDhIMy4xMjVjLS4wNTcgMC0uMDk2LS4wMTYtLjExMy0uMDE2LS4wMDcgMC0uMDExLjAwMi0uMDEyLjAwOGwtLjAxMi01Ljk0NmMuMDA3LS4wMS4wNTItLjA0Ni4xMzctLjA0Nkg1djNoMlY5aDJ2NGgyVjloMnYzaDJWOWgydjRoMlY5aDEuODc1Yy4wNzkuMDAxLjEyMi4wMjguMTI1LjAwOGwuMDEyIDUuOTQ2Yy0uMDA3LjAxLS4wNTIuMDQ2LS4xMzcuMDQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJ1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43NzcgMTAuOTY5YTIuMDA3IDIuMDA3IDAgMCAwIDIuMTQ4LjgzbDMuMzE2LS44MjktLjQ4My0xLjk0LTMuMzE2LjgyOS0xLjM3OS0yLjA2N2EyLjAxIDIuMDEgMCAwIDAtMS4yNzItLjg1NGwtMy44NDYtLjc3YTEuOTk4IDEuOTk4IDAgMCAwLTIuMTgxIDEuMDY3bC0xLjY1OCAzLjMxNiAxLjc4OS44OTUgMS42NTgtMy4zMTcgMS45NjcuMzk0TDcuNDM0IDE3SDN2Mmg0LjQzNGMuNjk4IDAgMS4zNTUtLjM3MiAxLjcxNS0uOTcxbDEuOTE4LTMuMTk2IDUuMTY5IDEuMDM0IDEuODE2IDUuNDQ5IDEuODk2LS42MzMtMS44MTUtNS40NDhhMi4wMDcgMi4wMDcgMCAwIDAtMS41MDYtMS4zM2wtMy4wMzktLjYwNyAxLjc3Mi0yLjk1NC40MTcuNjI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVJ1cGVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA2VjRINnYyaDMuNWMxLjMwMiAwIDIuNDAxLjgzOCAyLjgxNSAySDZ2Mmg2LjMxNUEyLjk5NCAyLjk5NCAwIDAgMSA5LjUgMTJINnYyLjQxNEwxMS41ODYgMjBoMi44MjhsLTYtNkg5LjVhNS4wMDcgNS4wMDcgMCAwIDAgNC44OTgtNEgxN1Y4aC0yLjYwMmE0LjkzMyA0LjkzMyAwIDAgMC0uOTI0LTJIMTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxMC41XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjQ5M1wiLFwiY3lcIjpcIjEwLjQ5M1wiLFwiclwiOlwiMS40OTNcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGMtMyAwLTQgMy00IDNoOHMtMS0zLTQtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTYXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIxaDE0YTIgMiAwIDAgMCAyLTJWOGExIDEgMCAwIDAtLjI5LS43MWwtNC00QTEgMSAwIDAgMCAxNiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyem0xMC0ySDl2LTVoNnpNMTMgN2gtMlY1aDJ6TTUgNWgydjRoOFY1aC41OUwxOSA4LjQxVjE5aC0ydi01YTIgMiAwIDAgMC0yLTJIOWEyIDIgMCAwIDAtMiAydjVINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTY2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDR2NWgyVjVoNFYzSDRhMSAxIDAgMCAwLTEgMXptMTggNVY0YTEgMSAwIDAgMC0xLTFoLTV2Mmg0djRoMnptLTIgMTBoLTR2Mmg1YTEgMSAwIDAgMCAxLTF2LTVoLTJ2NHpNOSAyMXYtMkg1di00SDN2NWExIDEgMCAwIDAgMSAxaDV6TTIgMTFoMjB2MkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNjcmVlbnNob3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE0aC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zek00IDE5aDN2LTJINXYtMkgzdjNhMSAxIDAgMCAwIDEgMXpNMTkgNGExIDEgMCAwIDAtMS0xaC0zdjJoMnYyaDJWNHpNNSA1aDJWM0g0YTEgMSAwIDAgMC0xIDF2M2gyVjV6TTMgOWgydjRIM3ptMTQgMGgydjNoLTJ6TTkgM2g0djJIOXptMCAxNGgzdjJIOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTZWFyY2hBbHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wMjMgMTYuOTc3YTM1LjEzIDM1LjEzIDAgMCAxLTEuMzY3LTEuMzg0Yy0uMzcyLS4zNzgtLjU5Ni0uNjUzLS41OTYtLjY1M2wtMi44LTEuMzM3QTYuOTYyIDYuOTYyIDAgMCAwIDE2IDljMC0zLjg1OS0zLjE0LTctNy03UzIgNS4xNDEgMiA5czMuMTQgNyA3IDdjMS43NjMgMCAzLjM3LS42NiA0LjYwMy0xLjczOWwxLjMzNyAyLjhzLjI3NS4yMjQuNjUzLjU5NmMuMzg3LjM2My44OTYuODU0IDEuMzg0IDEuMzY3bDEuMzU4IDEuMzkyLjYwNC42NDYgMi4xMjEtMi4xMjEtLjY0Ni0uNjA0Yy0uMzc5LS4zNzItLjg4NS0uODY2LTEuMzkxLTEuMzZ6TTkgMTRjLTIuNzU3IDAtNS0yLjI0My01LTVzMi4yNDMtNSA1LTUgNSAyLjI0MyA1IDUtMi4yNDMgNS01IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2VhcmNoQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxOGE3Ljk1MiA3Ljk1MiAwIDAgMCA0Ljg5Ny0xLjY4OGw0LjM5NiA0LjM5NiAxLjQxNC0xLjQxNC00LjM5Ni00LjM5NkE3Ljk1MiA3Ljk1MiAwIDAgMCAxOCAxMGMwLTQuNDExLTMuNTg5LTgtOC04cy04IDMuNTg5LTggOCAzLjU4OSA4IDggOHptMC0xNGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40MTIgOC41ODZjLjM3OS4zOC41ODguODgyLjU4OCAxLjQxNGgyYTMuOTc3IDMuOTc3IDAgMCAwLTEuMTc0LTIuODI4Yy0xLjUxNC0xLjUxMi00LjEzOS0xLjUxMi01LjY1MiAwbDEuNDEyIDEuNDE2Yy43Ni0uNzU4IDIuMDctLjc1NiAyLjgyNi0uMDAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMThhNy45NTIgNy45NTIgMCAwIDAgNC44OTctMS42ODhsNC4zOTYgNC4zOTYgMS40MTQtMS40MTQtNC4zOTYtNC4zOTZBNy45NTIgNy45NTIgMCAwIDAgMTggMTBjMC00LjQxMS0zLjU4OS04LTgtOHMtOCAzLjU4OS04IDggMy41ODkgOCA4IDh6bTAtMTRjMy4zMDkgMCA2IDIuNjkxIDYgNnMtMi42OTEgNi02IDYtNi0yLjY5MS02LTYgMi42OTEtNiA2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2VsZWN0TXVsdGlwbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIOGMtMS4xMDMgMC0yIC44OTctMiAydjEyYzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMlY0YzAtMS4xMDMtLjg5Ny0yLTItMnpNOCAxNlY0aDEybC4wMDIgMTJIOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDhIMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgxMnYtMkg0Vjh6bTguOTMzIDMuNTE5LTEuNzI2LTEuNzI2LTEuNDE0IDEuNDE0IDMuMjc0IDMuMjc0IDUuNzAyLTYuODQtMS41MzgtMS4yODJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2VsZWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MUg5VjRhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDF2Nkg0YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtMWg2djFhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtMVY5aDF6bS0zLTRoMnYyaC0yVjV6TTUgNWgydjJINVY1em0yIDE0SDV2LTJoMnYyem0xMiAwaC0ydi0yaDJ2MnptLTItNGgtMWExIDEgMCAwIDAtMSAxdjFIOXYtMWExIDEgMCAwIDAtMS0xSDdWOWgxYTEgMSAwIDAgMCAxLTFWN2g2djFhMSAxIDAgMCAwIDEgMWgxdjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDI2IDExLjA5NS0xNy04QS45OTkuOTk5IDAgMCAwIDMuMDMgNC4yNDJMNC45NjkgMTIgMy4wMyAxOS43NThhLjk5OC45OTggMCAwIDAgMS4zOTYgMS4xNDdsMTctOGExIDEgMCAwIDAgMC0xLjgxek01LjQ4MSAxOC4xOTdsLjgzOS0zLjM1N0wxMiAxMiA2LjMyIDkuMTZsLS44MzktMy4zNTdMMTguNjUxIDEybC0xMy4xNyA2LjE5N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMnpNNCA5VjVoMTZ2NHptMTYgNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMnpNNCAxOXYtNGgxNnY0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZoMnYyaC0yem0tMyAwaDJ2MmgtMnptMyAxMGgydjJoLTJ6bS0zIDBoMnYyaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNoYXBlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS40OTQgOS4wNWE4LjE0IDguMTQgMCAwIDAtNC41NDQtNC41NDRDMTQuNzEzIDMuMDg4IDEzLjQ4NSAyIDEyIDJTOS4yODcgMy4wODggOS4wNSA0LjUwNkE4LjEzNiA4LjEzNiAwIDAgMCA0LjUwNiA5LjA1QzMuMDg4IDkuMjg3IDIgMTAuNTE1IDIgMTJzMS4wODggMi43MTMgMi41MDYgMi45NWE4LjE0IDguMTQgMCAwIDAgNC41NDQgNC41NDRDOS4yODcgMjAuOTEyIDEwLjUxNSAyMiAxMiAyMnMyLjcxMy0xLjA4OCAyLjk1LTIuNTA2YTguMTQgOC4xNCAwIDAgMCA0LjU0NC00LjU0NEMyMC45MTIgMTQuNzEzIDIyIDEzLjQ4NSAyMiAxMnMtMS4wODgtMi43MTMtMi41MDYtMi45NXpNMTIgNGExIDEgMCAwIDEgMSAxYzAgLjA2LS4wMjMuMTEtLjAzNC4xNjdhMS4wMTUgMS4wMTUgMCAwIDEtLjA4My4yNzljLS4wMTQuMDI3LS4wMzQuMDQ5LS4wNTEuMDc1YTEuMDYyIDEuMDYyIDAgMCAxLS4xNi4yMDljLS4wNC4wMzctLjA5LjA2Mi0uMTM2LjA5Mi0uMDU0LjAzNi0uMTA0LjA3OC0uMTY1LjEwMy0uMTE1LjA0Ny0uMjM5LjA3NS0uMzcxLjA3NXMtLjI1Ni0uMDI4LS4zNzEtLjA3NWMtLjA2MS0uMDI0LS4xMTEtLjA2Ni0uMTY1LS4xMDMtLjA0Ni0uMDMtLjA5Ni0uMDU1LS4xMzYtLjA5MmExLjA2MiAxLjA2MiAwIDAgMS0uMTYtLjIwOWMtLjAxNy0uMDI2LS4wMzctLjA0OC0uMDUxLS4wNzVhMS4wMjYgMS4wMjYgMCAwIDEtLjA4My0uMjc5QzExLjAyMyA1LjExIDExIDUuMDYgMTEgNWExIDEgMCAwIDEgMS0xem0tNyA3Yy4wNiAwIC4xMS4wMjMuMTY3LjAzNC4wOTkuMDE3LjE5NC4wNDEuMjc5LjA4My4wMjcuMDE0LjA0OS4wMzQuMDc1LjA1MS4wNzUuMDQ3LjE0OS4wOTcuMjA5LjE2LjAzNy4wNC4wNjIuMDkuMDkyLjEzNi4wMzYuMDU0LjA3OC4xMDQuMTAzLjE2NS4wNDcuMTE1LjA3NS4yMzkuMDc1LjM3MXMtLjAyOC4yNTYtLjA3NS4zNzFjLS4wMjQuMDYxLS4wNjYuMTExLS4xMDMuMTY1LS4wMy4wNDYtLjA1NS4wOTYtLjA5Mi4xMzYtLjA2LjA2My0uMTM0LjExMy0uMjA5LjE2LS4wMjYuMDE3LS4wNDguMDM3LS4wNzUuMDUxYTEuMDI2IDEuMDI2IDAgMCAxLS4yNzkuMDgzQzUuMTEgMTIuOTc3IDUuMDYgMTMgNSAxM2ExIDEgMCAwIDEgMC0yem03IDlhMSAxIDAgMCAxLTEtMWMwLS4wNi4wMjMtLjExLjAzNC0uMTY3LjAxNy0uMDk5LjA0MS0uMTk0LjA4My0uMjc5LjAxNC0uMDI3LjAzNC0uMDQ5LjA1MS0uMDc1LjA0Ny0uMDc1LjA5Ny0uMTQ5LjE2LS4yMDkuMDQtLjAzNy4wOS0uMDYyLjEzNi0uMDkyLjA1NC0uMDM2LjEwNC0uMDc4LjE2NS0uMTAzLjExNS0uMDQ3LjIzOS0uMDc1LjM3MS0uMDc1cy4yNTYuMDI4LjM3MS4wNzVjLjA2MS4wMjQuMTExLjA2Ni4xNjUuMTAzLjA0Ni4wMy4wOTYuMDU1LjEzNi4wOTIuMDYzLjA2LjExMy4xMzQuMTYuMjA5LjAxNy4wMjYuMDM3LjA0OC4wNTEuMDc1LjA0Mi4wODUuMDY2LjE4MS4wODMuMjc5LjAxMS4wNTcuMDM0LjEwNy4wMzQuMTY3YTEgMSAwIDAgMS0xIDF6bTIuNTgzLTIuNTEyYy0uMDA2LS4wMTEtLjAxNy0uMDE5LS4wMjItLjAyOWEzLjAwNyAzLjAwNyAwIDAgMC0uOTk2LTEuMDA3Yy0uMDU0LS4wMzMtLjEwOS0uMDYtLjE2Ni0uMDlhMi45MDIgMi45MDIgMCAwIDAtLjQ4Ni0uMjA1Yy0uMDY0LS4wMjEtLjEyOC0uMDQ0LS4xOTQtLjA2MS0uMjMzLS4wNTctLjQ3MS0uMDk2LS43MTktLjA5NnMtLjQ4Ni4wMzktLjcxOC4wOTdjLS4wNjYuMDE3LS4xMy4wMzktLjE5NS4wNjFhMi45MjggMi45MjggMCAwIDAtLjQ4NS4yMDVjLS4wNTYuMDI5LS4xMTIuMDU3LS4xNjYuMDlhMy4wMDcgMy4wMDcgMCAwIDAtLjk5NiAxLjAwN2MtLjAwNi4wMTEtLjAxNy4wMTktLjAyMi4wMjlhNi4xNSA2LjE1IDAgMCAxLTIuOTA1LTIuOTA1Yy4wMTEtLjAwNi4wMTktLjAxNy4wMjktLjAyMmEzLjAwNyAzLjAwNyAwIDAgMCAxLjAwNy0uOTk2Yy4wMzMtLjA1NC4wNjEtLjExLjA5LS4xNjYuMDgzLS4xNTQuMTUtLjMxNi4yMDUtLjQ4NS4wMjEtLjA2NS4wNDQtLjEyOS4wNjEtLjE5NS4wNTYtLjIzNC4wOTUtLjQ3Mi4wOTUtLjcycy0uMDM5LS40ODYtLjA5Ny0uNzE4YTIuNTY4IDIuNTY4IDAgMCAwLS4wNjEtLjE5NCAyLjkwMiAyLjkwMiAwIDAgMC0uMjA1LS40ODZjLS4wMy0uMDU3LS4wNTctLjExMi0uMDktLjE2NkEzLjAwNyAzLjAwNyAwIDAgMCA2LjU0IDkuNDRjLS4wMS0uMDA2LS4wMTgtLjAxNy0uMDI4LS4wMjNhNi4xNSA2LjE1IDAgMCAxIDIuOTA1LTIuOTA1Yy4wMDYuMDEuMDE3LjAxOC4wMjIuMDI5LjI0OC40MTEuNTg4Ljc1NS45OTYgMS4wMDcuMDU0LjAzMy4xMS4wNjEuMTY2LjA5LjE1NS4wODMuMzE2LjE1LjQ4Ni4yMDUuMDY0LjAyMS4xMjguMDQ0LjE5NC4wNjEuMjMzLjA1Ny40Ny4wOTYuNzE5LjA5NmEyLjk0IDIuOTQgMCAwIDAgLjkxMi0uMTU4Yy4xNy0uMDU1LjMzMS0uMTIyLjQ4Ni0uMjA1LjA1Ni0uMDI5LjExMi0uMDU3LjE2Ni0uMDkuNDA4LS4yNTIuNzQ4LS41OTYuOTk2LTEuMDA3LjAwNi0uMDExLjAxNy0uMDE5LjAyMi0uMDI5YTYuMTUgNi4xNSAwIDAgMSAyLjkwNSAyLjkwNWMtLjAxMS4wMDYtLjAxOS4wMTctLjAyOS4wMjJhMy4wMDcgMy4wMDcgMCAwIDAtMS4wMDcuOTk2Yy0uMDMzLjA1NC0uMDYxLjExLS4wOS4xNjYtLjA4My4xNTUtLjE1LjMxNi0uMjA1LjQ4Ni0uMDIxLjA2NC0uMDQ0LjEyOC0uMDYxLjE5NEEzLjA3IDMuMDcgMCAwIDAgMTYgMTJhMi45NCAyLjk0IDAgMCAwIC4xNTguOTEyYy4wNTUuMTcuMTIyLjMzMS4yMDUuNDg2LjAyOS4wNTYuMDU3LjExMi4wOS4xNjYuMjUyLjQwOC41OTYuNzQ4IDEuMDA3Ljk5Ni4wMTEuMDA2LjAxOS4wMTcuMDI5LjAyMmE2LjE0NSA2LjE0NSAwIDAgMS0yLjkwNiAyLjkwNnpNMTkgMTNjLS4wNiAwLS4xMS0uMDIzLS4xNjctLjAzNGExLjAxNSAxLjAxNSAwIDAgMS0uMjc5LS4wODNjLS4wMjctLjAxNC0uMDQ5LS4wMzQtLjA3NS0uMDUxYTEuMDYyIDEuMDYyIDAgMCAxLS4yMDktLjE2Yy0uMDM3LS4wNC0uMDYyLS4wOS0uMDkyLS4xMzYtLjAzNi0uMDU0LS4wNzgtLjEwNC0uMTAzLS4xNjUtLjA0Ny0uMTE1LS4wNzUtLjIzOS0uMDc1LS4zNzFzLjAyOC0uMjU2LjA3NS0uMzcxYy4wMjQtLjA2MS4wNjYtLjExMS4xMDMtLjE2NS4wMy0uMDQ2LjA1NS0uMDk2LjA5Mi0uMTM2LjA2LS4wNjMuMTM0LS4xMTMuMjA5LS4xNi4wMjYtLjAxNy4wNDgtLjAzNy4wNzUtLjA1MS4wODUtLjA0Mi4xODEtLjA2Ni4yNzktLjA4My4wNTctLjAxMS4xMDctLjAzNC4xNjctLjAzNGExIDEgMCAwIDEgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNoYXBlUG9seWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTQuMTg1di0yLjM2OUEyLjk5NyAyLjk5NyAwIDAgMCAyMiA5YzAtMS42NTQtMS4zNDYtMy0zLTNhMi45OSAyLjk5IDAgMCAwLTIuMTE2Ljg3NkwxMi45NjkgNS4zMWMuMDEtLjEwMy4wMzEtLjIwNC4wMzEtLjMxIDAtMS42NTQtMS4zNDYtMy0zLTNTNyAzLjM0NiA3IDVjMCAuNzYyLjI5NSAxLjQ1MS43NjUgMS45ODFMNi4wOTEgOS4yMTJBMi45NzcgMi45NzcgMCAwIDAgNSA5Yy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzYy4xNTkgMCAuMzEzLS4wMjMuNDY1LS4wNDdMNy40IDE3LjUzMmMtLjI0OC40MzYtLjQuOTMyLS40IDEuNDY4IDAgMS42NTQgMS4zNDYgMyAzIDNhMi45OTQgMi45OTQgMCAwIDAgMi44NjMtMi4xNTNsMy45NjItLjc5MkEyLjk4NyAyLjk4NyAwIDAgMCAxOSAyMGMxLjY1NCAwIDMtMS4zNDYgMy0zYTIuOTk1IDIuOTk1IDAgMCAwLTItMi44MTV6TTE5IDhhMS4wMDEgMS4wMDEgMCAxIDEtMSAxYzAtLjU1MS40NDgtMSAxLTF6bS05LTRhMS4wMDEgMS4wMDEgMCAxIDEtMSAxYzAtLjU1MS40NDgtMSAxLTF6bS02IDhhMS4wMDEgMS4wMDEgMCAxIDEgMSAxYy0uNTUyIDAtMS0uNDQ5LTEtMXptNiA4YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnptMi43NjEtMi4xNzJBMy4wMDUgMy4wMDUgMCAwIDAgMTAgMTZjLS4zODYgMC0uNzUyLjA3OS0xLjA5MS4yMTNsLTEuNjc0LTIuMjMxQzcuNzA1IDEzLjQ1MSA4IDEyLjc2MiA4IDEyYzAtLjUzNi0uMTUyLTEuMDMyLS4zOTktMS40NjdsMS45MzUtMi41OGMuMTUyLjAyNC4zMDUuMDQ3LjQ2NC4wNDdhMi45OSAyLjk5IDAgMCAwIDIuMTE2LS44NzZsMy45MTUgMS41NjZjLS4wMS4xMDMtLjAzMS4yMDQtLjAzMS4zMSAwIDEuMzAyLjgzOSAyLjQwMSAyIDIuODE1djIuMzY5YTIuOTk2IDIuOTk2IDAgMCAwLTIgMi44MTVjMCAuMDYxLjAxNS4xMTcuMDE4LjE3N2wtMy4yNTcuNjUyek0xOSAxOGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2hhcGVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZjMC0xLjY1NC0xLjM0Ni0zLTMtM2EyLjk5MyAyLjk5MyAwIDAgMC0yLjgxNSAyaC02LjM3QTIuOTkzIDIuOTkzIDAgMCAwIDYgM0M0LjM0NiAzIDMgNC4zNDYgMyA2YzAgMS4zMDIuODM5IDIuNDAxIDIgMi44MTV2Ni4zNjlBMi45OTcgMi45OTcgMCAwIDAgMyAxOGMwIDEuNjU0IDEuMzQ2IDMgMyAzYTIuOTkzIDIuOTkzIDAgMCAwIDIuODE1LTJoNi4zNjlhMi45OTQgMi45OTQgMCAwIDAgMi44MTUgMmMxLjY1NCAwIDMtMS4zNDYgMy0zYTIuOTk3IDIuOTk3IDAgMCAwLTItMi44MTZWOC44MTZBMi45OTYgMi45OTYgMCAwIDAgMjEgNnptLTMtMWExLjAwMSAxLjAwMSAwIDEgMS0xIDFjMC0uNTUxLjQ0OC0xIDEtMXptLTIuODE1IDEyaC02LjM3QTIuOTkgMi45OSAwIDAgMCA3IDE1LjE4NFY4LjgxNkEyLjk5IDIuOTkgMCAwIDAgOC44MTUgN2g2LjM2OUEyLjk5IDIuOTkgMCAwIDAgMTcgOC44MTV2Ni4zNjlBMi45OSAyLjk5IDAgMCAwIDE1LjE4NSAxN3pNNiA1YTEuMDAxIDEuMDAxIDAgMSAxLTEgMWMwLS41NTEuNDQ4LTEgMS0xem0wIDE0YTEuMDAxIDEuMDAxIDAgMCAxIDAtMiAxLjAwMSAxLjAwMSAwIDAgMSAwIDJ6bTEyIDBhMS4wMDEgMS4wMDEgMCAwIDEgMC0yIDEuMDAxIDEuMDAxIDAgMCAxIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTaGFwZVRyaWFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNWMtLjE4MyAwLS4zNTguMDIyLS41MzIuMDU0TDguOTQ2IDYuNTMyQzguOTc4IDYuMzU5IDkgNi4xODIgOSA2YzAtMS42NTQtMS4zNDYtMy0zLTNTMyA0LjM0NiAzIDZjMCAxLjMwMi44MzkgMi40MDEgMiAyLjgxNXY2LjM2OUEyLjk5NyAyLjk5NyAwIDAgMCAzIDE4YzAgMS42NTQgMS4zNDYgMyAzIDNhMi45OTMgMi45OTMgMCAwIDAgMi44MTUtMmg2LjM2OWEyLjk5NCAyLjk5NCAwIDAgMCAyLjgxNSAyYzEuNjU0IDAgMy0xLjM0NiAzLTNTMTkuNjU0IDE1IDE4IDE1em0tMTEgLjE4NFY4LjgxNmMuMzI5LS4xMTguNjI5LS4yOTEuODk0LS41MDhsNy43OTkgNy43OTlhMi45NjEgMi45NjEgMCAwIDAtLjUwOC44OTRoLTYuMzdBMi45OSAyLjk5IDAgMCAwIDcgMTUuMTg0ek02IDVhMS4wMDEgMS4wMDEgMCAxIDEtMSAxYzAtLjU1MS40NDgtMSAxLTF6bTAgMTRhMS4wMDEgMS4wMDEgMCAwIDEgMC0yIDEuMDAxIDEuMDAxIDAgMCAxIDAgMnptMTIgMGExLjAwMSAxLjAwMSAwIDAgMSAwLTIgMS4wMDEgMS4wMDEgMCAwIDEgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNoYXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTVhMy41MSAzLjUxIDAgMCAwIDIuMzYtLjkzbDYuMjYgMy41OGEzLjA2IDMuMDYgMCAwIDAtLjEyLjg1IDMuNTMgMy41MyAwIDEgMCAxLjE0LTIuNTdsLTYuMjYtMy41OGEyLjc0IDIuNzQgMCAwIDAgLjEyLS43Nmw2LjE1LTMuNTJBMy40OSAzLjQ5IDAgMSAwIDE0IDUuNWEzLjM1IDMuMzUgMCAwIDAgLjEyLjg1TDguNDMgOS42QTMuNSAzLjUgMCAxIDAgNS41IDE1em0xMiAyYTEuNSAxLjUgMCAxIDEtMS41IDEuNSAxLjUgMS41IDAgMCAxIDEuNS0xLjV6bTAtMTNBMS41IDEuNSAwIDEgMSAxNiA1LjUgMS41IDEuNSAwIDAgMSAxNy41IDR6bS0xMiA2QTEuNSAxLjUgMCAxIDEgNCAxMS41IDEuNSAxLjUgMCAwIDEgNS41IDEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3LjA1VjRhMSAxIDAgMCAwLTEtMSAxIDEgMCAwIDAtLjcuMjlsLTcgN2ExIDEgMCAwIDAgMCAxLjQybDcgN0ExIDEgMCAwIDAgMTEgMTh2LTMuMWguODVhMTAuODkgMTAuODkgMCAwIDEgOC4zNiAzLjcyIDEgMSAwIDAgMCAxLjExLjM1QTEgMSAwIDAgMCAyMiAxOGMwLTkuMTItOC4wOC0xMC42OC0xMS0xMC45NXptLjg1IDUuODNhMTQuNzQgMTQuNzQgMCAwIDAtMiAuMTNBMSAxIDAgMCAwIDkgMTR2MS41OUw0LjQyIDExIDkgNi40MVY4YTEgMSAwIDAgMCAxIDFjLjkxIDAgOC4xMS4yIDkuNjcgNi40M2ExMy4wNyAxMy4wNyAwIDAgMC03LjgyLTIuNTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2hla2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4djhoMlY4YzAtMi4yMDYtMS43OTQtNC00LTRINXYxNmgyVjZoNGMxLjEwMyAwIDIgLjg5NyAyIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTZjMCAxLjEwMy0uODk3IDItMiAyaC00VjhIOXYxMmg2YzIuMjA2IDAgNC0xLjc5NCA0LTRWNGgtMnYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTaGllbGRBbHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS40MzggNS4wODlhMS4wMDIgMS4wMDIgMCAwIDAtLjk1OS4wMTVjLS42ODQuMzg5LTEuMzU1LjU3Ny0yLjA1My41NzctMi4wMzUgMC0zLjk1Mi0xLjYyOS01LjcyMi0zLjM5LS4zNzUtLjM3My0xLjA2My0uMzczLTEuNDM4IDBDOS41OTIgMy45NTkgNy41OTggNS42NjMgNS41MSA1LjY2M2MtLjY5IDAtMS4zNTEtLjE4NC0yLjAxOC0uNTYxLS4yOTgtLjE2Ni0uNjU4LS4xNzEtLjk2LS4wMTJzLS41MDEuNDYxLS41MjguODAxYy0uMDExLjEyOS0uOTQ0IDEyLjg3MiA5LjY4MyAxNi4wNDFhLjk5Ljk5IDAgMCAwIC4yODYuMDQySDEyYy4wOTcgMCAuMTkyLS4wMTQuMjg1LS4wNDEgMTAuNjU3LTMuMTcgOS42OTUtMTUuOTE2IDkuNjg0LTE2LjA0NGExIDEgMCAwIDAtLjUzMS0uOHptLTkuNDUyIDE0Ljg0MmMtNi45NzktMi4yNTUtNy45MzQtOS40MTItOC4wMTQtMTIuNDc3LjUwNS4xNCAxLjAxOS4yMDkgMS41MzcuMjA5IDIuNDkyIDAgNC42NS0xLjU2NyA2LjQ3Ni0zLjI4MyAxLjg5MyAxLjc4OCAzLjk4MyAzLjMwMSA2LjQ0MiAzLjMwMS41MyAwIDEuMDU3LS4wNzQgMS41NzUtLjIyLS4wNzQgMy4wNjUtMS4wMjEgMTAuMjE3LTguMDE2IDEyLjQ3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNoaWVsZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMzQyIDguNDQ3IDEuMTA1LS41NTNBLjk5OC45OTggMCAwIDAgMjEuOCA2LjRsLTMtNEExIDEgMCAwIDAgMTggMkg2YTEgMSAwIDAgMC0uOC40bC0zIDRhMSAxIDAgMCAwIC4zNTIgMS40OTRsMS4xMDUuNTUzLTEuMTMxIDIuMjYyQTUuMDUyIDUuMDUyIDAgMCAwIDIgMTIuOTQ0di41OTFhNi4wMjggNi4wMjggMCAwIDAgMy44OTQgNS42MThsMy40MzEgMS4yODZhNS40ODggNS40ODggMCAwIDEgMS45NjkgMS4yNjguOTk3Ljk5NyAwIDAgMCAxLjQxMyAwIDUuNDg2IDUuNDg2IDAgMCAxIDEuOTY5LTEuMjY3bDMuNDMyLTEuMjg3QTYuMDMgNi4wMyAwIDAgMCAyMiAxMy41MzV2LS41OTFjMC0uNzcxLS4xODMtMS41NDUtLjUyNy0yLjIzNmwtMS4xMzEtMi4yNjF6TTIwIDEzLjUzNWE0LjAxOSA0LjAxOSAwIDAgMS0yLjU5NiAzLjc0NWwtMy40MzEgMS4yODdhNy41IDcuNSAwIDAgMC0xLjk3NCAxLjEwMSA3LjUxNSA3LjUxNSAwIDAgMC0xLjk3NC0xLjEwMkw2LjU5NiAxNy4yOEE0LjAxOSA0LjAxOSAwIDAgMSA0IDEzLjUzNXYtLjU5MWMwLS40NjMuMTA5LS45MjguMzE2LTEuMzQybDEuMTMxLTIuMjYxYTIuMDAzIDIuMDAzIDAgMCAwLS44OTUtMi42ODRsLS4wMzMtLjAxNUw2LjUgNGgxMWwxLjk4MSAyLjY0Mi0uMDM0LjAxN2EyLjAwNCAyLjAwNCAwIDAgMC0uODk1IDIuNjg0bDEuMTMxIDIuMjZjLjIwOC40MTQuMzE3Ljg3OC4zMTcgMS4zNDF2LjU5MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTaGllbGRRdWFydGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45OTUgNi45YS45OTguOTk4IDAgMCAwLS41NDgtLjc5NWwtOC00YTEgMSAwIDAgMC0uODk1IDBsLTggNGExLjAwMiAxLjAwMiAwIDAgMC0uNTQ3Ljc5NWMtLjAxMS4xMDctLjk2MSAxMC43NjcgOC41ODkgMTUuMDE0YS45ODcuOTg3IDAgMCAwIC44MTIgMGM5LjU1LTQuMjQ3IDguNi0xNC45MDYgOC41ODktMTUuMDE0ek0xMiAxOS44OTdWMTJINS41MWExNS40NzMgMTUuNDczIDAgMCAxLS41NDQtNC4zNjVMMTIgNC4xMThWMTJoNi40NmMtLjc1OSAyLjc0LTIuNDk4IDUuOTc5LTYuNDYgNy44OTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2hpZWxkWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNDggNi4xMDUtOC00YTEgMSAwIDAgMC0uODk1IDBsLTggNGExLjAwMiAxLjAwMiAwIDAgMC0uNTQ3Ljc5NWMtLjAxMS4xMDctLjk2MSAxMC43NjcgOC41ODkgMTUuMDE0YS45OS45OSAwIDAgMCAuODEyIDBjOS41NS00LjI0NyA4LjYtMTQuOTA2IDguNTg5LTE1LjAxNGExLjAwMSAxLjAwMSAwIDAgMC0uNTQ4LS43OTV6bS04LjQ0NyAxMy43OTJDNS4yNjUgMTYuNjI1IDQuOTQ0IDkuNjQyIDQuOTk5IDcuNjM1bDcuMDM0LTMuNTE3IDcuMDI5IDMuNTE1Yy4wMzggMS45ODktLjMyOCA5LjAxOC03LjAyOSAxMi4yNjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMjkzIDguMjkzIDEyIDEwLjU4NiA5LjcwNyA4LjI5MyA4LjI5MyA5LjcwNyAxMC41ODYgMTJsLTIuMjkzIDIuMjkzIDEuNDE0IDEuNDE0TDEyIDEzLjQxNGwyLjI5MyAyLjI5MyAxLjQxNC0xLjQxNEwxMy40MTQgMTJsMi4yOTMtMi4yOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45OTUgNi45MDNhLjk5Ny45OTcgMCAwIDAtLjU0Ny0uNzk3bC03Ljk3My00YS45OTcuOTk3IDAgMCAwLS44OTUtLjAwMmwtOC4wMjcgNGMtLjI5Ny4xNS0uNTAyLjQzNy0uNTQ0Ljc2Ny0uMDEzLjA5Ny0xLjE0NSA5Ljc0MSA4LjU0MSAxNS4wMDhhLjk5NS45OTUgMCAwIDAgLjk2OS0uMDA5YzkuMzA3LTUuMjU5IDguNTE0LTE0LjU3MyA4LjQ3Ni0xNC45Njd6bS04Ljk3NyAxMi45NDRjLTYuODYtNC4wMS03LjE0LTEwLjM1Mi03LjA2My0xMi4yMDVsNy4wNzEtMy41MjMgNi45OTggMy41MTFjLjAwNSAxLjg3LS40ODEgOC4yNDMtNy4wMDYgMTIuMjE3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNob2NrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNDkzXCIsXCJjeVwiOlwiMTAuNDkzXCIsXCJyXCI6XCIxLjQ5M1wifX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTUuNVwiLFwicnhcIjpcIjNcIixcInJ5XCI6XCIyLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTaG9wcGluZ0JhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWOWExIDEgMCAwIDAtMS0xaC0zVjdjMC0yLjc1Ny0yLjI0My01LTUtNVM3IDQuMjQzIDcgN3YxSDRhMSAxIDAgMCAwLTEgMXYxMWMwIDEuMTAzLjg5NyAyIDIgMnpNOSA3YzAtMS42NTQgMS4zNDYtMyAzLTNzMyAxLjM0NiAzIDN2MUg5Vjd6bS00IDNoMnYyaDJ2LTJoNnYyaDJ2LTJoMmwuMDAyIDEwSDVWMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2hvd0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTJjLTEuMDk1IDAtMi0uOTA1LTItMiAwLS4zNTQuMTAzLS42ODMuMjY4LS45NzNDMTIuMTc4IDkuMDIgMTIuMDkyIDkgMTIgOWEzLjAyIDMuMDIgMCAwIDAtMyAzYzAgMS42NDIgMS4zNTggMyAzIDMgMS42NDEgMCAzLTEuMzU4IDMtMyAwLS4wOTItLjAyLS4xNzgtLjAyNy0uMjY4LS4yOS4xNjUtLjYxOS4yNjgtLjk3My4yNjh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNWMtNy42MzMgMC05LjkyNyA2LjYxNy05Ljk0OCA2LjY4NEwxLjk0NiAxMmwuMTA1LjMxNkMyLjA3MyAxMi4zODMgNC4zNjcgMTkgMTIgMTlzOS45MjctNi42MTcgOS45NDgtNi42ODRsLjEwNi0uMzE2LS4xMDUtLjMxNkMyMS45MjcgMTEuNjE3IDE5LjYzMyA1IDEyIDV6bTAgMTJjLTUuMzUxIDAtNy40MjQtMy44NDYtNy45MjYtNUM0LjU3OCAxMC44NDIgNi42NTIgNyAxMiA3YzUuMzUxIDAgNy40MjQgMy44NDYgNy45MjYgNS0uNTA0IDEuMTU4LTIuNTc4IDUtNy45MjYgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTaG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA5YTMuMDIgMy4wMiAwIDAgMC0zIDNjMCAxLjY0MiAxLjM1OCAzIDMgMyAxLjY0MSAwIDMtMS4zNTggMy0zIDAtMS42NDEtMS4zNTktMy0zLTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNWMtNy42MzMgMC05LjkyNyA2LjYxNy05Ljk0OCA2LjY4NEwxLjk0NiAxMmwuMTA1LjMxNkMyLjA3MyAxMi4zODMgNC4zNjcgMTkgMTIgMTlzOS45MjctNi42MTcgOS45NDgtNi42ODRsLjEwNi0uMzE2LS4xMDUtLjMxNkMyMS45MjcgMTEuNjE3IDE5LjYzMyA1IDEyIDV6bTAgMTJjLTUuMzUxIDAtNy40MjQtMy44NDYtNy45MjYtNUM0LjU3OCAxMC44NDIgNi42NTIgNyAxMiA3YzUuMzUxIDAgNy40MjQgMy44NDYgNy45MjYgNS0uNTA0IDEuMTU4LTIuNTc4IDUtNy45MjYgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTaHVmZmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxN2gtMS41NTlsLTkuNy0xMC42NzNBMSAxIDAgMCAwIDUuMDAxIDZIMnYyaDIuNTU5bDQuMDkgNC41LTQuMDkgNC41MDFIMnYyaDMuMDAxYTEgMSAwIDAgMCAuNzQtLjMyN0wxMCAxMy45ODdsNC4yNTkgNC42ODZhMSAxIDAgMCAwIC43NC4zMjdIMTd2M2w1LTQtNS00djN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDQxIDhIMTd2M2w1LTMuOTM4TDE3IDN2M2gtMi4wMDFhMSAxIDAgMCAwLS43NC4zMjdsLTMuMzY4IDMuNzA3IDEuNDggMS4zNDZMMTUuNDQxIDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2lkZWJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek00IDE5VjdoNnYxMkg0em04IDBWN2g4VjVsLjAwMiAxNEgxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEwaDJ2Mkg2em0wIDRoMnYySDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2l0ZW1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTMuMDFoLTdWMTBoMWMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJoLTRjLTEuMTAzIDAtMiAuODk3LTIgMnY0YzAgMS4xMDMuODk3IDIgMiAyaDF2My4wMUg0VjE4SDN2NGg0di00SDZ2LTIuOTloNVYxOGgtMXY0aDR2LTRoLTF2LTIuOTloNVYxOGgtMXY0aDR2LTRoLTF2LTQuOTl6TTEwIDhWNGg0bC4wMDIgNEgxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTa2lwTmV4dENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggMTYgNS00LTUtNHptNS00djRoMlY4aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNraXBOZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDd2MTBsNy01em05IDEwVjdoLTJ2MTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2tpcFByZXZpb3VzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTZWOGwtNSA0ek05IDh2OGgyVjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2tpcFByZXZpb3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA3LTcgNSA3IDV6bS03IDVWN0g3djEwaDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2xlZXB5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcImVsbGlwc2VcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxNS41XCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjIuNVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDdjLTIuOTA1IDAtMy45ODMgMi4zODYtNCAzLjk5bDIgLjAyMUM4LjAwMiAxMC44MDQgOC4wNzYgOSAxMCA5Vjd6bTQgMHYyYzEuODI2IDAgMS45OTIgMS41MzcgMiAyLjAwN0wxNyAxMWgxYzAtMS42MDgtMS4wNjUtNC00LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2xpZGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTQuNWMtMS41OCAwLTIuOTAzIDEuMDYtMy4zMzcgMi41SDJ2MmgyLjE2M2MuNDM0IDEuNDQgMS43NTcgMi41IDMuMzM3IDIuNXMyLjkwMy0xLjA2IDMuMzM3LTIuNUgyMnYtMkgxMC44MzdjLS40MzQtMS40NC0xLjc1Ny0yLjUtMy4zMzctMi41em0wIDVjLS44MjcgMC0xLjUtLjY3My0xLjUtMS41cy42NzMtMS41IDEuNS0xLjVTOSAxNy4xNzMgOSAxOHMtLjY3MyAxLjUtMS41IDEuNXptOS0xMWMtMS41OCAwLTIuOTAzIDEuMDYtMy4zMzcgMi41SDJ2MmgxMS4xNjNjLjQzNCAxLjQ0IDEuNzU3IDIuNSAzLjMzNyAyLjVzMi45MDMtMS4wNiAzLjMzNy0yLjVIMjJ2LTJoLTIuMTYzYy0uNDM0LTEuNDQtMS43NTctMi41LTMuMzM3LTIuNXptMCA1Yy0uODI3IDAtMS41LS42NzMtMS41LTEuNXMuNjczLTEuNSAxLjUtMS41IDEuNS42NzMgMS41IDEuNS0uNjczIDEuNS0xLjUgMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjgzNyA1QzEyLjQwMyAzLjU2IDExLjA4IDIuNSA5LjUgMi41UzYuNTk3IDMuNTYgNi4xNjMgNUgydjJoNC4xNjNDNi41OTcgOC40NCA3LjkyIDkuNSA5LjUgOS41czIuOTAzLTEuMDYgMy4zMzctMi41aDkuMjg4VjVoLTkuMjg4ek05LjUgNy41QzguNjczIDcuNSA4IDYuODI3IDggNnMuNjczLTEuNSAxLjUtMS41UzExIDUuMTczIDExIDZzLS42NzMgMS41LTEuNSAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU2xpZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1aDl2MmgtOXpNMiA3aDd2MmgyVjNIOXYySDJ6bTcgMTBoMTN2Mkg5em0xMC02aDN2MmgtM3ptLTIgNFY5LjAxMmgtMlYxMUgydjJoMTN2MnpNNyAyMXYtNkg1djJIMnYyaDN2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTbGlkZXNob3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDd2M0g4djJoOHYtMmgtM3YtM2g3YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxNVY1aDE2bC4wMDEgMTBINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMCAxMyA1LTMtNS0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuODI5IDE0LjgyOGE0LjA1NSA0LjA1NSAwIDAgMS0xLjI3Mi44NTggNC4wMDIgNC4wMDIgMCAwIDEtNC44NzUtMS40NWwtMS42NTggMS4xMTlhNi4wNjMgNi4wNjMgMCAwIDAgMS42MjEgMS42MiA1Ljk2MyA1Ljk2MyAwIDAgMCAyLjE0OC45MDMgNi4wNDIgNi4wNDIgMCAwIDAgMi40MTUgMCA1Ljk3MiA1Ljk3MiAwIDAgMCAyLjE0OC0uOTAzYy4zMTMtLjIxMi42MTItLjQ1OC44ODYtLjczMS4yNzItLjI3MS41Mi0uNTcxLjczNC0uODg5bC0xLjY1OC0xLjExOWE0LjAxNyA0LjAxNyAwIDAgMS0uNDg5LjU5MnpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNDkzXCIsXCJjeVwiOlwiMTAuNDkzXCIsXCJyXCI6XCIxLjQ5M1wifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNvcnRBWiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzA3IDE0LjcwN0ExIDEgMCAwIDAgMTkgMTNoLTd2Mmg0LjU4NmwtNC4yOTMgNC4yOTNBMSAxIDAgMCAwIDEzIDIxaDd2LTJoLTQuNTg2bDQuMjkzLTQuMjkzek03IDMuOTlINXYxMkgybDQgNCA0LTRIN3pNMTcgM2gtMmMtLjQxNyAwLS43OS4yNTktLjkzNy42NDlsLTIuNzUgNy4zMzNoMi4xMzdMMTQuMTkzIDloMy42MTNsLjc0MyAxLjk4MWgyLjEzN2wtMi43NS03LjMzM0ExIDEgMCAwIDAgMTcgM3ptLTIuMDU3IDQgLjc1LTJoLjYxM2wuNzUgMmgtMi4xMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU29ydEFsdDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjBoMlY4aDNMOCA0IDQgOGgzem0xMy00aC0zVjRoLTJ2MTJoLTNsNCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNvcnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDIwIDQtNEg3VjRINXYxMkgyem01LTEyaDl2MmgtOXptMCA0aDd2MmgtN3ptMC04aDExdjJIMTF6bTAgMTJoNXYyaC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNvcnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOWg5djJoLTl6bTAgNGg3djJoLTd6bTAtOGgxMXYySDExem0wIDEyaDV2MmgtNXptLTYgM2gyVjhoM0w2IDQgMiA4aDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU29ydFpBIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43MDcgMTQuNzA3QTEgMSAwIDAgMCAxOSAxM2gtN3YyaDQuNTg2bC00LjI5MyA0LjI5M0ExIDEgMCAwIDAgMTMgMjFoN3YtMmgtNC41ODZsNC4yOTMtNC4yOTN6TTYgMy45OWwtNCA0aDN2MTJoMnYtMTJoM3pNMTcgM2gtMmMtLjQxNyAwLS43OS4yNTktLjkzNy42NDlsLTIuNzUgNy4zMzNoMi4xMzdMMTQuMTkzIDloMy42MTNsLjc0MyAxLjk4MWgyLjEzN2wtMi43NS03LjMzM0ExIDEgMCAwIDAgMTcgM3ptLTIuMDU3IDQgLjc1LTJoLjYxM2wuNzUgMmgtMi4xMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU29ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkg0bDYgNlYySDh6bTYtMTF2MTdoMlY4aDRsLTYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTcGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjc4NyA5LjAyM2MtLjEyNS4wMjctMS44MDMuNDE4LTMuOTUzIDEuNzc0LS4zMjMtMS41NjctMS4yNzktNC41MDEtNC4xMDgtNy40ODVMMTIgMi41NDZsLS43MjYuNzY3QzguNDM1IDYuMzA4IDcuNDgzIDkuMjUgNy4xNjMgMTAuODI3IDUuMDA1IDkuNDQ4IDMuMzQgOS4wNTIgMy4yMTggOS4wMjRMMiA4Ljc1MlYxMGMwIDcuMjkgMy45MjUgMTIgMTAgMTIgNS45ODEgMCAxMC00LjgyMiAxMC0xMlY4Ljc1OGwtMS4yMTMuMjY1ek04Ljk5OSAxMi4wMzhjLjAwMi0uMDMzLjE1Mi0zLjEgMy4wMDEtNi41MzJDMTQuODE0IDguOTA2IDE0Ljk5OSAxMiAxNSAxMnYuMTI1YTE4LjkzMyAxOC45MzMgMCAwIDAtMy4wMSAzLjE1NCAxOS44NzcgMTkuODc3IDAgMCAwLTIuOTkxLTMuMTEzdi0uMTI4ek0xMiAyMGMtNS4zMTYgMC03LjU0OS00LjE5Ni03LjkzNy04LjU2NCAxLjY1NS43MTggNC42MTYgMi40MjYgNy4xMDcgNi4xMjNsLjg0MSAxLjI0OS44MjUtMS4yNmMyLjQyNi0zLjcwOCA1LjQyNS01LjQxMSA3LjA5Ni02LjEyMkMxOS41MzQgMTUuNjU0IDE3LjMwNCAyMCAxMiAyMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTcGFjZUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTNIN1Y5SDV2NmgxNFY5aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNwZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJ6bTAgMThINlY0aDEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE5YTQgNCAwIDEgMC00LTQgNCA0IDAgMCAwIDQgNHptMC02YTIgMiAwIDEgMS0yIDIgMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyLjAxXCIsXCJjeVwiOlwiN1wiLFwiclwiOlwiMlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVNwcmF5Q2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wMDIgMmgtNGExIDEgMCAwIDAtMSAxdjMuODEyYTUuOTk4IDUuOTk4IDAgMCAwLTMgNS4xODh2Ljk4OEwzIDEzbC4wMDIuMDcyVjIxYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMXYtOWE1Ljk5OSA1Ljk5OSAwIDAgMC0zLTUuMTg4VjNhMSAxIDAgMCAwLTEtMXptLTMgNFY0aDJ2MmgtMnptNS4wMDEgMTRoLTh2LTZoOHY2em0tOC4wMDEtOGMwLTIuMjA2IDEuNzk0LTQgNC00czQgMS43OTQgNCA0aC04em04LjAwMS05aDJ2MmgtMnpNMTYgM2gydjJoLTJ6bTAgM2gydjJoLTJ6bTMtM2gydjJoLTJ6bTAgM2gydjJoLTJ6bTAgM2gydjJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3ByZWFkc2hlZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVjMC0xLjEwMy0uODk3LTItMi0ySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJWNXpNNSAxOVY1aDE0bC4wMDIgMTRINXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoMS45OTh2Mkg3em00IDBoNnYyaC02em0tNCA0aDEuOTk4djJIN3ptNCAwaDZ2MmgtNnptLTQgNGgxLjk5OHYySDd6bTQgMGg2djJoLTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3F1YXJlUm91bmRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMkg3QzQuMjQzIDIgMiA0LjI0MyAyIDd2MTBjMCAyLjc1NyAyLjI0MyA1IDUgNWgxMGMyLjc1NyAwIDUtMi4yNDMgNS01VjdjMC0yLjc1Ny0yLjI0My01LTUtNXptMyAxNWMwIDEuNjU0LTEuMzQ2IDMtMyAzSDdjLTEuNjU0IDAtMy0xLjM0Ni0zLTNWN2MwLTEuNjU0IDEuMzQ2LTMgMy0zaDEwYzEuNjU0IDAgMyAxLjM0NiAzIDN2MTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xem0tMSAxNkg1VjVoMTR2MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi41MTYgMTQuMzIzLTEuNDkgNi40NTJhLjk5OC45OTggMCAwIDAgMS41MjkgMS4wNTdMMTIgMTguMjAybDUuNDQ1IDMuNjNhMS4wMDEgMS4wMDEgMCAwIDAgMS41MTctMS4xMDZsLTEuODI5LTYuNCA0LjUzNi00LjA4MmExIDEgMCAwIDAtLjU5LTEuNzRsLTUuNzAxLS40NTQtMi40NjctNS40NjFhLjk5OC45OTggMCAwIDAtMS44MjIgMEw4LjYyMiA4LjA1bC01LjcwMS40NTNhMSAxIDAgMCAwLS42MTkgMS43MTNsNC4yMTQgNC4xMDd6bTIuODUzLTQuMzI2YS45OTguOTk4IDAgMCAwIC44MzItLjU4NkwxMiA1LjQzbDEuNzk5IDMuOTgxYS45OTguOTk4IDAgMCAwIC44MzIuNTg2bDMuOTcyLjMxNS0zLjI3MSAyLjk0NGMtLjI4NC4yNTYtLjM5Ny42NS0uMjkzIDEuMDE4bDEuMjUzIDQuMzg1LTMuNzM2LTIuNDkxYS45OTUuOTk1IDAgMCAwLTEuMTA5IDBsLTMuOTA0IDIuNjAzIDEuMDUtNC41NDZhMSAxIDAgMCAwLS4yNzYtLjk0bC0zLjAzOC0yLjk2MiA0LjA5LS4zMjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy43NTggMTYuMjQzIDEuNDE0LTEuNDE1YTMuOTcgMy45NyAwIDAgMS0xLjE3My0yLjgzMWMwLTEuMDY4LjQxNy0yLjA3MSAxLjE3My0yLjgyNUw3Ljc1OCA3Ljc1NmE1Ljk1NyA1Ljk1NyAwIDAgMC0xLjc2IDQuMjRjMCAxLjYwNC42MjUgMy4xMTIgMS43NiA0LjI0N3ptOC40ODQgMEE1Ljk2IDUuOTYgMCAwIDAgMTggMTJhNS45NiA1Ljk2IDAgMCAwLTEuNzU4LTQuMjQzbC0xLjQxNCAxLjQxNEMxNS41ODQgOS45MjcgMTYgMTAuOTMyIDE2IDEycy0uNDE2IDIuMDczLTEuMTcyIDIuODI5bDEuNDE0IDEuNDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMzQ0IDE3LjY1N2E3Ljk1MyA3Ljk1MyAwIDAgMS0yLjM0NS01LjY1OWMwLTIuMTM3LjgzMy00LjE0NSAyLjM0NS01LjY1NEw0LjkzIDQuOTI5Yy0xLjg5IDEuODg2LTIuOTMxIDQuMzk3LTIuOTMxIDcuMDY5czEuMDQxIDUuMTgzIDIuOTMxIDcuMDczbDEuNDE0LTEuNDE0ek0xNy42NTcgNi4zNDNBNy45NDggNy45NDggMCAwIDEgMjAgMTJhNy45NDggNy45NDggMCAwIDEtMi4zNDMgNS42NTdsMS40MTQgMS40MTRBOS45MzIgOS45MzIgMCAwIDAgMjIgMTJhOS45MzQgOS45MzQgMCAwIDAtMi45MjktNy4wNzFsLTEuNDE0IDEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVN0YXRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMmEyIDIgMCAwIDAtLjcwMy4xMzNsLTIuMzk4LTEuOTYzYy4wNTktLjIxNC4xMDEtLjQzNi4xMDEtLjY3QzE3IDguMTE0IDE1Ljg4NiA3IDE0LjUgN1MxMiA4LjExNCAxMiA5LjVjMCAuMzk2LjEuNzY1LjI2MiAxLjA5N2wtMi45MDkgMy40MzhBMi4wNiAyLjA2IDAgMCAwIDkgMTRjLS4xNzkgMC0uMzQ4LjAzLS41MTIuMDc0bC0yLjU2My0yLjU2M0M1Ljk3IDExLjM0OCA2IDExLjE3OSA2IDExYzAtMS4xMDgtLjg5Mi0yLTItMnMtMiAuODkyLTIgMiAuODkyIDIgMiAyYy4xNzkgMCAuMzQ4LS4wMy41MTItLjA3NGwyLjU2MyAyLjU2M0ExLjkwNiAxLjkwNiAwIDAgMCA3IDE2YzAgMS4xMDguODkyIDIgMiAyczItLjg5MiAyLTJjMC0uMjM3LS4wNDgtLjQ2LS4xMjMtLjY3MWwyLjkxMy0zLjQ0MmMuMjI3LjA2Ni40NjIuMTEzLjcxLjExM2EyLjQ4IDIuNDggMCAwIDAgMS4xMzMtLjI4MWwyLjM5OSAxLjk2M0EyLjA3NyAyLjA3NyAwIDAgMCAxOCAxNGMwIDEuMTA4Ljg5MiAyIDIgMnMyLS44OTIgMi0yLS44OTItMi0yLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3RpY2tlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuNzk2IDkuOTgyQzIwLjg0OSA1LjM1NyAxNi43MjkgMiAxMiAyIDYuNDg2IDIgMiA2LjQ4NiAyIDEyYzAgNC43MjkgMy4zNTcgOC44NDkgNy45ODIgOS43OTZhLjk4OC45ODggMCAwIDAgLjkwOC0uMjcybDEwLjYzMy0xMC42MzNjLjIzOC0uMjM4LjM0LS41NzguMjczLS45MDl6TTExIDE4YTcuOTMgNy45MyAwIDAgMSAxLjM2NS00LjQ3MSA4LjE4IDguMTggMCAwIDEgLjk3OC0xLjE4NiA4LjIxMSA4LjIxMSAwIDAgMSAxLjE4NC0uOTc3IDguMTI4IDguMTI4IDAgMCAxIDEuMzYtLjczOGMuNDgxLS4yMDMuOTg2LS4zNiAxLjUwMS0uNDY2YTguMTEyIDguMTEyIDAgMCAxIDIuMTctLjEzNGwtOC41MjkgOC41MjljLS4wMTMtLjE4NS0uMDI5LS4zNy0uMDI5LS41NTd6bS03LTZjMC00LjQxMSAzLjU4OS04IDgtOCAyLjkwOSAwIDUuNTI4IDEuNTg5IDYuOTI5IDQuMDA1YTkuOTkgOS45OSAwIDAgMC0xLjk0My4xOThjLS42NDMuMTMyLTEuMjc0LjMyOC0xLjg3OS41ODNhMTAuMTUgMTAuMTUgMCAwIDAtMS42OTkuOTIzYy0uNTMzLjM2MS0xLjAzLjc3MS0xLjQ3OSAxLjIycy0uODU4Ljk0NS0xLjIyMSAxLjQ4Yy0uMzU5LjUzMy0uNjcgMS4xMDQtLjkyMiAxLjY5OEExMC4wMTMgMTAuMDEzIDAgMCAwIDkgMThjMCAuNDkxLjA0OC45NzkuMTE5IDEuNDYxQzYuMDg5IDE4LjI4OCA0IDE1LjMzNiA0IDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVN0b3BDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDloNnY2SDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDEwdjEwSDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3RvcHdhdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1Yy00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4IDgtMy41ODkgOC04LTMuNTg5LTgtOC04em0wIDE0Yy0zLjMwOSAwLTYtMi42OTEtNi02czIuNjkxLTYgNi02IDYgMi42OTEgNiA2LTIuNjkxIDYtNiA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDloMnY1aC0yek05IDJoNnYySDl6bTEwLjI5MyA1LjcwNy0yLTIgMS40MTQtMS40MTQgMiAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVN0b3JlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA1YzAtMS42NTQtMS4zNDYtMy0zLTNINUMzLjM0NiAyIDIgMy4zNDYgMiA1djIuODMxYzAgMS4wNTMuMzgyIDIuMDEgMSAyLjc0NlYxOWMwIDEuMTAzLjg5NyAyIDIgMmgxNGMxLjEwMyAwIDItLjg5NyAyLTJ2LTguNDI0Yy42MTgtLjczNSAxLTEuNjkyIDEtMi43NDZWNXptLTIgMHYyLjgzMWMwIDEuMTQtLjg0OSAyLjExMi0xLjg5MSAyLjE2N0wxOCAxMGMtMS4xMDMgMC0yLS44OTctMi0yVjRoM2MuNTUyIDAgMSAuNDQ5IDEgMXpNMTAgNGg0djRjMCAxLjEwMy0uODk3IDItMiAycy0yLS44OTctMi0yVjR6TTQgNWMwLS41NTEuNDQ4LTEgMS0xaDN2NGMwIDEuMTAzLS44OTcgMi0yIDJsLS4xMDktLjAwM0M0Ljg0OSA5Ljk0MyA0IDguOTcxIDQgNy44MzFWNXptNiAxNHYtM2g0djNoLTR6bTYgMHYtM2MwLTEuMTAzLS44OTctMi0yLTJoLTRjLTEuMTAzIDAtMiAuODk3LTIgMnYzSDV2LTcuMTMxYy4yNTQuMDY3LjUxNy4xMTEuNzg3LjEyNUEzLjk4OCAzLjk4OCAwIDAgMCA5IDEwLjY0M2MuNzMzLjgzMiAxLjgwNyAxLjM1NyAzIDEuMzU3czIuMjY3LS41MjUgMy0xLjM1N2EzLjk4OCAzLjk4OCAwIDAgMCAzLjIxMyAxLjM1MWMuMjcxLS4wMTQuNTMzLS4wNTguNzg3LS4xMjVWMTloLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjE0OCAyLjk3MUEyLjAwOCAyLjAwOCAwIDAgMCAxNy40MzQgMkg2LjU2NmMtLjY5OCAwLTEuMzU1LjM3Mi0xLjcxNC45NzFMMi4xNDMgNy40ODVBLjk5NS45OTUgMCAwIDAgMiA4YTMuOTcgMy45NyAwIDAgMCAxIDIuNjE4VjE5YzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMnYtOC4zODJBMy45NyAzLjk3IDAgMCAwIDIyIDhhLjk5NS45OTUgMCAwIDAtLjE0My0uNTE1bC0yLjcwOS00LjUxNHptLjgzNiA1LjI4QTIuMDAzIDIuMDAzIDAgMCAxIDE4IDEwYy0xLjEwMyAwLTItLjg5Ny0yLTIgMC0uMDY4LS4wMjUtLjEyOC0uMDM5LS4xOTJsLjAyLS4wMDRMMTUuMjIgNGgyLjIxNGwyLjU1IDQuMjUxek0xMC44MTkgNGgyLjM2MWwuODEzIDQuMDY1QzEzLjk1OCA5LjEzNyAxMy4wOCAxMCAxMiAxMHMtMS45NTgtLjg2My0xLjk5My0xLjkzNUwxMC44MTkgNHpNNi41NjYgNEg4Ljc4bC0uNzYgMy44MDQuMDIuMDA0QzguMDI1IDcuODcyIDggNy45MzIgOCA4YzAgMS4xMDMtLjg5NyAyLTIgMmEyLjAwMyAyLjAwMyAwIDAgMS0xLjk4NC0xLjc0OUw2LjU2NiA0ek0xMCAxOXYtM2g0djNoLTR6bTYgMHYtM2MwLTEuMTAzLS44OTctMi0yLTJoLTRjLTEuMTAzIDAtMiAuODk3LTIgMnYzSDV2LTcuMTQyYy4zMjEuMDgzLjY1Mi4xNDIgMSAuMTQyYTMuOTkgMy45OSAwIDAgMCAzLTEuMzU3Yy43MzMuODMyIDEuODA3IDEuMzU3IDMgMS4zNTdzMi4yNjctLjUyNSAzLTEuMzU3QTMuOTkgMy45OSAwIDAgMCAxOCAxMmMuMzQ4IDAgLjY3OS0uMDU5IDEtLjE0MlYxOWgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTdHJlZXRWaWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE4aDJ2LTVoMlY5YzAtMS4xMDMtLjg5Ny0yLTItMmgtNGMtMS4xMDMgMC0yIC44OTctMiAydjRoMnY1aDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguNDQ2IDExLjM4Ni0uODkzIDEuNzg5QzE5LjEwOCAxMy45NSAyMCAxNC45OCAyMCAxNmMwIDEuODkyLTMuMjg1IDQtOCA0cy04LTIuMTA4LTgtNGMwLTEuMDIuODkyLTIuMDUgMi40NDYtMi44MjVsLS44OTMtMS43ODlDMy4yOTUgMTIuNTEyIDIgMTQuMTkzIDIgMTZjMCAzLjM2NCA0LjM5MyA2IDEwIDZzMTAtMi42MzYgMTAtNmMwLTEuODA3LTEuMjk1LTMuNDg4LTMuNTU0LTQuNjE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVN0cmlrZXRocm91Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDExaC04Yy00IDAtNC0xLjgxNi00LTIuNUM4IDcuODgyIDggNiAxMiA2YzIuOCAwIDIuOTkgMS42NzggMyAyLjAxNEwxNiA4aDFjMC0xLjM4NC0xLjA0NS00LTUtNC01LjQxNiAwLTYgMy4xNDctNiA0LjUgMCAuNzI4LjE0OCAxLjY2Ny43MzYgMi41SDR2MmgxNnYtMnptLTggN2MtMy43OTMgMC0zLjk5LTEuODE1LTQtMkg2YzAgLjA0LjA2OSA0IDYgNCA1LjIyMSAwIDYtMi44MTkgNi00LjUgMC0uMTQ2LS4wMDktLjMxNy0uMDI4LS41aC0yLjAwNmMuMDMyLjIuMDM0LjM3Ni4wMzQuNSAwIC42ODQgMCAyLjUtNCAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3ViZGlyZWN0b3J5TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTNoLTZ2LTNsLTUgNCA1IDR2LTNoN2ExIDEgMCAwIDAgMS0xVjVoLTJ2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTdWJkaXJlY3RvcnlSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTNIOFY1SDZ2OWExIDEgMCAwIDAgMSAxaDd2M2w1LTQtNS00djN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljk5MyAxMmMwIDIuNzYxIDIuMjQ2IDUuMDA3IDUuMDA3IDUuMDA3czUuMDA3LTIuMjQ2IDUuMDA3LTUuMDA3UzE0Ljc2MSA2Ljk5MyAxMiA2Ljk5MyA2Ljk5MyA5LjIzOSA2Ljk5MyAxMnpNMTIgOC45OTNjMS42NTggMCAzLjAwNyAxLjM0OSAzLjAwNyAzLjAwN1MxMy42NTggMTUuMDA3IDEyIDE1LjAwNyA4Ljk5MyAxMy42NTggOC45OTMgMTIgMTAuMzQyIDguOTkzIDEyIDguOTkzek0xMC45OTggMTloMnYzaC0yem0wLTE3aDJ2M2gtMnptLTkgOWgzdjJoLTN6bTE3IDBoM3YyaC0zek00LjIxOSAxOC4zNjNsMi4xMi0yLjEyMiAxLjQxNSAxLjQxNC0yLjEyIDIuMTIyek0xNi4yNCA2LjM0NGwyLjEyMi0yLjEyMiAxLjQxNCAxLjQxNC0yLjEyMiAyLjEyMnpNNi4zNDIgNy43NTkgNC4yMiA1LjYzN2wxLjQxNS0xLjQxNCAyLjEyIDIuMTIyem0xMy40MzQgMTAuNjA1LTEuNDE0IDEuNDE0LTIuMTIyLTIuMTIyIDEuNDE0LTEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVN1cHBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJ2NC4xNDNDMiAxNy4xNjcgMi44OTcgMTggNCAxOGgxYTEgMSAwIDAgMCAxLTF2LTUuMTQzYTEgMSAwIDAgMC0xLTFoLS45MDhDNC42NDggNi45ODcgNy45NzggNCAxMiA0czcuMzUyIDIuOTg3IDcuOTA4IDYuODU3SDE5YTEgMSAwIDAgMC0xIDFWMThjMCAxLjEwMy0uODk3IDItMiAyaC0ydi0xaC00djNoNmMyLjIwNiAwIDQtMS43OTQgNC00IDEuMTAzIDAgMi0uODMzIDItMS44NTdWMTJjMC01LjUxNC00LjQ4Ni0xMC0xMC0xMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTd2ltIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5LjAwM1wiLFwiY3lcIjpcIjYuMDAyXCIsXCJyXCI6XCIyLjAwMlwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljg3NSAxMy4yMTljLS41NjcuNDUzLS45NzguNzgxLTEuODc4Ljc4MS0uODk5IDAtMS4yODgtLjMxMS0xLjg3Ni0uNzgxLS42OC0uNTQzLTEuNTI1LTEuMjE5LTMuMTI3LTEuMjE5LTEuNjAxIDAtMi40NDUuNjc2LTMuMTI0IDEuMjE5LS41ODguNDctLjk3NS43ODEtMS44NzUuNzgxLS44OTggMC0xLjI4Ni0uMzExLTEuODczLS43OEM0LjQ0MyAxMi42NzYgMy42IDEyIDIgMTJ2MmMuODk3IDAgMS4yODUuMzExIDEuODcyLjc4LjY3OS41NDQgMS41MjMgMS4yMiAzLjEyMyAxLjIyczIuNDQ2LS42NzYgMy4xMjUtMS4yMmMuNTg3LS40Ny45NzYtLjc4IDEuODc0LS43OC45IDAgMS4zMTEuMzI4IDEuODc4Ljc4MS42NzkuNTQzIDEuNTI0IDEuMjE5IDMuMTI1IDEuMjE5IDEuNjAyIDAgMi40NDctLjY3NiAzLjEyNy0xLjIxOS41ODgtLjQ3Ljk3Ny0uNzgxIDEuODc2LS43ODF2LTJjLTEuNjAxIDAtMi40NDYuNjc2LTMuMTI1IDEuMjE5ek0xNi45OTcgMTljLS44OTkgMC0xLjI4OC0uMzExLTEuODc2LS43ODEtLjY4LS41NDMtMS41MjUtMS4yMTktMy4xMjctMS4yMTktMS42MDEgMC0yLjQ0NS42NzYtMy4xMjQgMS4yMTktLjU4OC40Ny0uOTc1Ljc4MS0xLjg3NS43ODEtLjg5OCAwLTEuMjg2LS4zMTEtMS44NzMtLjc4QzQuNDQzIDE3LjY3NiAzLjYgMTcgMiAxN3YyYy44OTcgMCAxLjI4NS4zMTEgMS44NzIuNzguNjc5LjU0NCAxLjUyMyAxLjIyIDMuMTIzIDEuMjJzMi40NDYtLjY3NiAzLjEyNS0xLjIyYy41ODctLjQ3Ljk3Ni0uNzggMS44NzQtLjc4LjkgMCAxLjMxMS4zMjggMS44NzguNzgxLjY3OS41NDMgMS41MjQgMS4yMTkgMy4xMjUgMS4yMTkgMS42MDIgMCAyLjQ0Ny0uNjc2IDMuMTI3LTEuMjE5LjU4OC0uNDcuOTc3LS43ODEgMS44NzYtLjc4MXYtMmMtMS42MDEgMC0yLjQ0Ni42NzYtMy4xMjUgMS4yMTktLjU2Ny40NTMtLjk3OC43ODEtMS44NzguNzgxek0xMSA1LjQxOWwyLjEwNCAyLjEwNC0yLjA1NyAyLjU3Yy4yODYtLjA1Ni41OTYtLjA5My45NDctLjA5MyAxLjYwMiAwIDIuNDQ3LjY3NiAzLjEyNyAxLjIxOS41ODguNDcuOTc3Ljc4MSAxLjg3Ni43ODEuOSAwIDEuMzExLS4zMjggMS44NzgtLjc4MS4xMzItLjEwNS4yNzQtLjIxNy40MjMtLjMyNmwtMi4wOTYtMi4wOS4wMDUtLjAwNS01LjUtNS41YS45OTkuOTk5IDAgMCAwLTEuNDE0IDBsLTQgNCAxLjQxNCAxLjQxNEwxMSA1LjQxOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlTeW5jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA3LjEwMS4wMS4wMDFhNC45NzggNC45NzggMCAwIDEgMi41MjYgMS4zNjIgNS4wMDUgNS4wMDUgMCAwIDEgMS4zNjMgMi41MjggNS4wNjEgNS4wNjEgMCAwIDEtLjAwMSAyLjAxNiA0Ljk3NiA0Ljk3NiAwIDAgMS0xLjM2MyAyLjUyN2wxLjQxNCAxLjQxNGE3LjAxNCA3LjAxNCAwIDAgMCAxLjkwOC0zLjU0IDYuOTggNi45OCAwIDAgMCAwLTIuODE5IDYuOTU3IDYuOTU3IDAgMCAwLTEuOTA3LTMuNTM5IDYuOTcgNi45NyAwIDAgMC0yLjIyMy0xLjUgNi45MjEgNi45MjEgMCAwIDAtMS4zMTUtLjQwOGMtLjEzNy0uMDI4LS4yNzUtLjA0My0uNDEyLS4wNjNWMkw5IDZsNCA0VjcuMTAxem0tNy40NSA3LjYyM2MuMTc0LjQxMi4zOTIuODEyLjY0NiAxLjE5LjI0OS4zNy41MzcuNzE4Ljg1NCAxLjAzNGE3LjAzNiA3LjAzNiAwIDAgMCAyLjIyNCAxLjUwMWMuNDI1LjE4Ljg2OC4zMTcgMS4zMTUuNDA4LjE2Ny4wMzQuMzM4LjA1Ni41MDguMDc4djIuOTQ0bDQtNC00LTR2My4wM2MtLjAzNS0uMDA2LS4wNzItLjAwMy0uMTA3LS4wMTFhNC45NzggNC45NzggMCAwIDEtMi41MjYtMS4zNjIgNC45OTQgNC45OTQgMCAwIDEgLjAwMS03LjA3MUw3LjA1MSA3LjA1YTcuMDEgNy4wMSAwIDAgMC0xLjUgMi4yMjRBNi45NzQgNi45NzQgMCAwIDAgNSAxMmE2Ljk5NyA2Ljk5NyAwIDAgMCAuNTUgMi43MjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDJjLTEuMTAzIDAtMiAuODk3LTIgMnYxNmMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJINnptMCAxNVY1aDEybC4wMDIgMTJINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMWgxNS44OTNjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0ySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxNGMwIDEuMTAzLjg5NyAyIDIgMnptMC0ydi01aDR2NUg0ek0xNCA3djVoLTRWN2g0ek04IDd2NUg0VjdoNHptMiAxMnYtNWg0djVoLTR6bTYgMHYtNWgzLjg5NHY1SDE2em0zLjg5My03SDE2VjdoMy44OTN2NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUYWNob21ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzYuNDg2IDQgMiA4LjQ4NiAyIDE0YTkuODkgOS44OSAwIDAgMCAxLjA1MSA0LjQ0NWMuMTcuMzQuNTE2LjU1NS44OTUuNTU1aDE2LjEwN2MuMzc5IDAgLjcyNi0uMjE1Ljg5Ni0uNTU1QTkuODkgOS44OSAwIDAgMCAyMiAxNGMwLTUuNTE0LTQuNDg2LTEwLTEwLTEwem03LjQxIDEzSDQuNTlBNy44NzUgNy44NzUgMCAwIDEgNCAxNGMwLTQuNDExIDMuNTg5LTggOC04czggMy41ODkgOCA4YTcuODc1IDcuODc1IDAgMCAxLS41OSAzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjkzOSAxMi45MzlhMS41MyAxLjUzIDAgMCAwIDAgMi41NjEgMS41MyAxLjUzIDAgMCAwIDIuMTIxLS40NGwzLjk2Mi02LjAzOGEuMDM0LjAzNCAwIDAgMCAwLS4wMzUuMDMzLjAzMyAwIDAgMC0uMDQ1LS4wMWwtNi4wMzggMy45NjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVGFnQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44NjggNC41MDRBMSAxIDAgMCAwIDE3IDRIM2ExIDEgMCAwIDAtLjg2OCAxLjQ5Nkw1Ljg0OSAxMmwtMy43MTcgNi41MDRBMSAxIDAgMCAwIDMgMjBoMTRhMSAxIDAgMCAwIC44NjgtLjUwNGw0LTdhLjk5OC45OTggMCAwIDAgMC0uOTkybC00LTd6TTE2LjQyIDE4SDQuNzI0bDMuMTQ1LTUuNTA0YS45OTguOTk4IDAgMCAwIDAtLjk5Mkw0LjcyNCA2SDE2LjQybDMuNDI5IDYtMy40MjkgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRIOC41MTVhMiAyIDAgMCAwLTEuNjI3LjgzOGwtNC43MDEgNi41ODFhLjk5Ny45OTcgMCAwIDAgMCAxLjE2Mmw0LjcwMSA2LjU4MUEyIDIgMCAwIDAgOC41MTUgMjBIMjBjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yem0wIDE0SDguNTE1bC00LjI4Ni02IDQuMjg2LTZIMjB2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVGFyZ2V0TG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIzXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNC4wNjlWMmgtMnYyLjA2OUE4LjAwOCA4LjAwOCAwIDAgMCA0LjA2OSAxMUgydjJoMi4wNjlBOC4wMDcgOC4wMDcgMCAwIDAgMTEgMTkuOTMxVjIyaDJ2LTIuMDY5QTguMDA3IDguMDA3IDAgMCAwIDE5LjkzMSAxM0gyMnYtMmgtMi4wNjlBOC4wMDggOC4wMDggMCAwIDAgMTMgNC4wNjl6TTEyIDE4Yy0zLjMwOSAwLTYtMi42OTEtNi02czIuNjkxLTYgNi02IDYgMi42OTEgNiA2LTIuNjkxIDYtNiA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRhc2tYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIwYzAgMS4xMDMuODk3IDIgMiAyaDE0YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMmgtMmExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMUg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTV6TTUgNWgydjJoMTBWNWgydjE1SDVWNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4yOTIgMTAuMjk1IDEyIDEyLjU4N2wtMi4yOTItMi4yOTItMS40MTQgMS40MTQgMi4yOTIgMi4yOTItMi4yOTIgMi4yOTIgMS40MTQgMS40MTRMMTIgMTUuNDE1bDIuMjkyIDIuMjkyIDEuNDE0LTEuNDE0LTIuMjkyLTIuMjkyIDIuMjkyLTIuMjkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRhc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjJoMTRjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yaC0yYTEgMSAwIDAgMC0xLTFIOGExIDEgMCAwIDAtMSAxSDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxNWMwIDEuMTAzLjg5NyAyIDIgMnpNNSA1aDJ2MmgxMFY1aDJ2MTVINVY1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDEzLjU4Ni0xLjc5My0xLjc5My0xLjQxNCAxLjQxNEwxMSAxNi40MTRsNS4yMDctNS4yMDctMS40MTQtMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVGF4aSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNzcyIDEwLjE1Ni0xLjM2OC00LjEwNUEyLjk5NSAyLjk5NSAwIDAgMCAxNi41NTkgNEgxNFYyaC00djJINy40NDFhMi45OTUgMi45OTUgMCAwIDAtMi44NDUgMi4wNTFsLTEuMzY4IDQuMTA1QTIuMDAzIDIuMDAzIDAgMCAwIDIgMTJ2NWMwIC43NTMuNDIzIDEuNDAyIDEuMDM5IDEuNzQzLS4wMTMuMDY2LS4wMzkuMTI2LS4wMzkuMTk1VjIxYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0yaDEydjJhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTIuMDYyYzAtLjA2OS0uMDI2LS4xMy0uMDM5LS4xOTVBMS45OTMgMS45OTMgMCAwIDAgMjIgMTd2LTVjMC0uODI5LS41MDgtMS41NDEtMS4yMjgtMS44NDR6TTQgMTd2LTVoMTZsLjAwMiA1SDR6TTcuNDQxIDZoOS4xMTdjLjQzMSAwIC44MTMuMjc0Ljk0OS42ODRMMTguNjEzIDEwSDUuMzg3bDEuMTA1LTMuMzE2QTEgMSAwIDAgMSA3LjQ0MSA2elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNy41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVGVubmlzQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC45MjkgMTkuMDgxYzEuODk1IDEuODk1IDQuNDA1IDIuOTM4IDcuMDcxIDIuOTM4czUuMTc3LTEuMDQzIDcuMDcxLTIuOTM4YzMuODk5LTMuODk5IDMuODk5LTEwLjI0MyAwLTE0LjE0M0MxNy4xNzcgMy4wNDQgMTQuNjY1IDIgMTIgMlM2LjgyMyAzLjA0NCA0LjkyOSA0LjkzOGMtMy44OTkgMy44OTktMy44OTkgMTAuMjQ0IDAgMTQuMTQzem0xMi43MjgtMS40MTRhNy45NjkgNy45NjkgMCAwIDEtMy44MTMgMi4xMjljLS4wMDktMS42MDIuNTg2LTMuMTQ2IDEuNjkxLTQuMjUxIDEuMTYzLTEuMTYzIDIuNzMyLTEuODI4IDQuMjc3LTEuODUxYTcuOTQ1IDcuOTQ1IDAgMCAxLTIuMTU1IDMuOTczem0yLjMyNS01Ljk2NWMtMi4xMjQtLjAyMS00LjI4NC44NTMtNS44NjEgMi40MjktMS41MzIgMS41MzItMi4zMjcgMy42OC0yLjI2MyA1Ljg4MWE3Ljk0NiA3Ljk0NiAwIDAgMS01LjUxNi0yLjM0NSA3Ljk3IDcuOTcgMCAwIDEtMi4zMzItNS41MTJjLjA3Ny4wMDIuMTU0LjAxNC4yMzEuMDE0IDIuMTE1IDAgNC4xNi0uODA0IDUuNjM3LTIuMjggMS41OC0xLjU4IDIuNDU3LTMuNzM5IDIuNDMtNS44NzNhNy45NDggNy45NDggMCAwIDEgNS4zNDkgMi4zMzcgNy45NiA3Ljk2IDAgMCAxIDIuMzI1IDUuMzQ5ek02LjM0MyA2LjM1M2E3Ljk2OCA3Ljk2OCAwIDAgMSAzLjk3My0yLjE2OWMtLjAxOCAxLjU1NS0uNjg1IDMuMTI0LTEuODUxIDQuMjkxLTEuMTA0IDEuMTAzLTIuNjQyIDEuNjk2LTQuMjM4IDEuNjkxYTcuOTI5IDcuOTI5IDAgMCAxIDIuMTE2LTMuODEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRlcm1pbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGg2djJoLTZ6TTYuMjkzIDkuNzA3IDguNTg2IDEybC0yLjI5MyAyLjI5MyAxLjQxNCAxLjQxNEwxMS40MTQgMTIgNy43MDcgOC4yOTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTJjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjZjMC0xLjEwMy0uODk3LTItMi0yek00IDE4VjZoMTZsLjAwMiAxMkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRlc3RUdWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy4yOTMgMi43MDcuODE4LjgxOEwzLjMxOCAxNC4zMThDMi40NjggMTUuMTY4IDIgMTYuMjk4IDIgMTcuNXMuNDY4IDIuMzMyIDEuMzE4IDMuMTgzQzQuMTY5IDIxLjUzMiA1LjI5OSAyMiA2LjUgMjJzMi4zMzEtLjQ2OCAzLjE4Mi0xLjMxOEwyMC40NzUgOS44ODlsLjgxOC44MTggMS40MTQtMS40MTQtOC04LTEuNDE0IDEuNDE0em0zLjE4MiA4LjM1NC0yLjQwMy0yLjQwNC0xLjQxNCAxLjQxNCAyLjQwMyAyLjQwNC0xLjQxNCAxLjQxNS0uOTktLjk5LTEuNDE0IDEuNDE0Ljk5Ljk5LTEuNDE1IDEuNDE1LTIuNDAzLTIuNDA0TDcgMTUuNzI4bDIuNDAzIDIuNDA0LTEuMTM2IDEuMTM2Yy0uOTQ1Ljk0NC0yLjU5Ljk0NC0zLjUzNSAwQzQuMjYgMTguNzk1IDQgMTguMTY4IDQgMTcuNXMuMjYtMS4yOTUuNzMyLTEuNzY4TDE1LjUyNSA0LjkzOWwzLjUzNSAzLjUzNS0yLjU4NSAyLjU4N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhoMlY2aDMuMjUyTDcuNjggMThINXYyaDh2LTJoLTIuMjUyTDEzLjMyIDZIMTd2MmgyVjRINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUaW1lRml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2NS40MTRsMy4yOTMgMy4yOTMgMS40MTQtMS40MTRMMTMgMTEuNTg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptMCAxOGMtNC40MTEgMC04LTMuNTg5LTgtOHMzLjU4OS04IDgtOCA4IDMuNTg5IDggOC0zLjU4OSA4LTggOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aC0ydjZoNnYtMmgtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUaW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMTQ1IDguMjcgMS41NjMtMS41NjMtMS40MTQtMS40MTRMMTguNTg2IDdjLTEuMDUtLjYzLTIuMjc0LTEtMy41ODYtMS0zLjg1OSAwLTcgMy4xNC03IDdzMy4xNDEgNyA3IDcgNy0zLjE0IDctN2E2Ljk2NiA2Ljk2NiAwIDAgMC0xLjg1NS00Ljczek0xNSAxOGMtMi43NTcgMC01LTIuMjQzLTUtNXMyLjI0My01IDUtNSA1IDIuMjQzIDUgNS0yLjI0MyA1LTUgNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMGgydjRoLTJ6bS0xLTdoNHYyaC00ek0zIDhoNHYySDN6bTAgOGg0djJIM3ptLTEtNGgzLjk5djJIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUaXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTRjLTMgMC00IDMtNCAzaDhzLTEtMy00LTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjU1NSA4LjgzMi0xLjEwOS0xLjY2NC0zIDJhMS4wMDEgMS4wMDEgMCAwIDAgLjEwOCAxLjcyN2w0IDIgLjg5NS0xLjc4OS0yLjQ1OS0xLjIyOSAxLjU2NS0xLjA0NXptLTYuNTU3IDEuMjNhMSAxIDAgMCAwLS40NDMtLjg5NGwtMy0yLTEuMTEgMS42NjQgMS41NjYgMS4wNDQtMi40NTkgMS4yMjkuODk1IDEuNzg5IDQtMmEuOTk4Ljk5OCAwIDAgMCAuNTUxLS44MzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVG9nZ2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5Yy0xLjYyOCAwLTMgMS4zNzItMyAzczEuMzcyIDMgMyAzIDMtMS4zNzIgMy0zLTEuMzcyLTMtMy0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDZIOGMtMy4zIDAtNS45ODkgMi42ODktNiA2di4wMTZBNi4wMSA2LjAxIDAgMCAwIDggMThoOGE2LjAxIDYuMDEgMCAwIDAgNi01Ljk5NFYxMmMtLjAwOS0zLjMwOS0yLjY5OS02LTYtNnptMCAxMEg4YTQuMDA2IDQuMDA2IDAgMCAxLTQtMy45OUM0LjAwNCA5Ljc5OSA1Ljc5OCA4IDggOGg4YzIuMjAyIDAgMy45OTYgMS43OTkgNCA0LjAwNkE0LjAwNyA0LjAwNyAwIDAgMSAxNiAxNnptNC0zLjk4NC40NDMtLjAwNC41NTcuMDA0aC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRvZ2dsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5Yy0xLjYyOCAwLTMgMS4zNzItMyAzczEuMzcyIDMgMyAzIDMtMS4zNzIgMy0zLTEuMzcyLTMtMy0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDZIOGMtMy4yOTYgMC01Ljk4MiAyLjY4Mi02IDUuOTg2di4wNDJBNi4wMSA2LjAxIDAgMCAwIDggMThoOGMzLjMwOSAwIDYtMi42OTEgNi02cy0yLjY5MS02LTYtNnptMCAxMEg4YTQuMDA2IDQuMDA2IDAgMCAxLTQtMy45OUM0LjAwNCA5Ljc5OSA1Ljc5OCA4IDggOGg4YzIuMjA2IDAgNCAxLjc5NCA0IDRzLTEuNzk0IDQtNCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptLTEgOUg0LjA2OWE3Ljk2NSA3Ljk2NSAwIDAgMSAuNTItMkgxMXYyem0wIDRINC41ODlhNy45NjUgNy45NjUgMCAwIDEtLjUyLTJIMTF2MnptMC0xMC45MzFWN0g1Ljc2NUE3Ljk5NiA3Ljk5NiAwIDAgMSAxMSA0LjA2OXpNNS43NjUgMTdIMTF2Mi45MzFBNy45OTYgNy45OTYgMCAwIDEgNS43NjUgMTd6TTEzIDE5LjkzMVY0LjA2OWMzLjkzOS40OTUgNyAzLjg1OCA3IDcuOTMxcy0zLjA2MSA3LjQzNi03IDcuOTMxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRyYWZmaWNDb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45NDMgMi42NjdBMSAxIDAgMCAwIDEzIDJoLTJhMSAxIDAgMCAwLS45NDMuNjY3TDQuMjkyIDE5SDJ2MmgyMHYtMmgtMi4yOTJMMTMuOTQzIDIuNjY3ek0xNS40NyAxM0g4LjUzbDEuMDYtM2g0LjgybDEuMDYgM3ptLTMuNzYzLTloLjU4NmwxLjQxMiA0aC0zLjQxbDEuNDEyLTR6TTcuODI1IDE1aDguMzVsMS40MTIgNEg2LjQxM2wxLjQxMi00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljg3IDMuMzRBMy41NSAzLjU1IDAgMCAwIDE2LjM4IDJINy42MmEzLjQ3IDMuNDcgMCAwIDAtMi41IDEuMzVBNC4zMiA0LjMyIDAgMCAwIDQgNnYxMmExIDEgMCAwIDAgMSAxaDJsLTIgM2gyLjMyTDggMjFoOGwuNjggMUgxOWwtMi0zaDJhMSAxIDAgMCAwIDEtMVY2YTQuMTUgNC4xNSAwIDAgMC0xLjEzLTIuNjZ6TTcuNjIgNGg4LjcyYTEuNzcgMS43NyAwIDAgMSAxIC42NiAzLjI1IDMuMjUgMCAwIDEgLjI1LjM0SDYuMzlhMi4zIDIuMyAwIDAgMSAuMjUtLjM1QTEuNjUgMS42NSAwIDAgMSA3LjYyIDR6TTYgOFY3aDEydjNINnptMTIgOUg2di01aDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRyYW5zZmVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45MjQgMTAuMzgzYTEgMSAwIDAgMC0uMjE3LTEuMDlsLTUtNS0xLjQxNCAxLjQxNEwxNi41ODYgOUg0djJoMTVhMSAxIDAgMCAwIC45MjQtLjYxN3pNNC4wNzYgMTMuNjE3YTEgMSAwIDAgMCAuMjE3IDEuMDlsNSA1IDEuNDE0LTEuNDE0TDcuNDE0IDE1SDIwdi0ySDVhLjk5OS45OTkgMCAwIDAtLjkyNC42MTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVHJhbnNmZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDEyIDUtNC01LTR2Mi45OTlIMnYyaDEzem03IDNIOXYtM2wtNSA0IDUgNHYtM2gxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUcmFzaEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMkg5Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MkgzdjJoMnYxMmMwIDEuMTAzLjg5NyAyIDIgMmgxMGMxLjEwMyAwIDItLjg5NyAyLTJWOGgyVjZoLTRWNGMwLTEuMTAzLS44OTctMi0yLTJ6TTkgNGg2djJIOVY0em04IDE2SDdWOGgxMHYxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWOGgyVjZoLTRWNGEyIDIgMCAwIDAtMi0ySDlhMiAyIDAgMCAwLTIgMnYySDN2Mmgyek05IDRoNnYySDl6TTggOGg5djEySDdWOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEwaDJ2OEg5em00IDBoMnY4aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRyZW5kaW5nRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgOS41ODYtNCA0LTYuMjkzLTYuMjkzLTEuNDE0IDEuNDE0TDEwIDE2LjQxNGw0LTQgNC4yOTMgNC4yOTNMMTYgMTloNnYtNmwtMi4yOTMgMi4yOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVHJlbmRpbmdVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTAuNDE0IDQgNCA1LjcwNy01LjcwN0wyMiAxMVY1aC02bDIuMjkzIDIuMjkzTDE0IDExLjU4NmwtNC00LTcuNzA3IDcuNzA3IDEuNDE0IDEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVRyaW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTZoM3YzYzAgMS4xMDMuODk3IDIgMiAyaDljMS4xMDMgMCAyLS44OTcgMi0ydi05YzAtMS4xMDMtLjg5Ny0yLTItMmgtM1Y1YzAtMS4xMDMtLjg5Ny0yLTItMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2OWMwIDEuMTAzLjg5NyAyIDIgMnptMTQtNi0uMDAzIDlIMTB2LTNoNGMxLjEwMyAwIDItLjg5NyAyLTJ2LTRoM3pNNSAxMGg1VjVoNGwtLjAwMyA5SDV2LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVHJpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuODQ0IDIwSDYuNUM1LjEyMSAyMCA0IDE4Ljg3OSA0IDE3LjVTNS4xMjEgMTUgNi41IDE1aDdjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTUuNDMgOCAxMy41IDhIOC42MzlhOS44MTIgOS44MTIgMCAwIDEtMS4zNTQgMkgxMy41Yy44MjcgMCAxLjUuNjczIDEuNSAxLjVzLS42NzMgMS41LTEuNSAxLjVoLTdDNC4wMTkgMTMgMiAxNS4wMTkgMiAxNy41UzQuMDE5IDIyIDYuNSAyMmg5LjU5M2ExMC40MTUgMTAuNDE1IDAgMCAxLTEuMjQ5LTJ6TTUgMkMzLjM0NiAyIDIgMy4zNDYgMiA1YzAgMy4xODggMyA1IDMgNXMzLTEuODEzIDMtNWMwLTEuNjU0LTEuMzQ2LTMtMy0zem0wIDQuNWExLjUgMS41IDAgMSAxIC4wMDEtMy4wMDFBMS41IDEuNSAwIDAgMSA1IDYuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNGMtMS42NTQgMC0zIDEuMzQ2LTMgMyAwIDMuMTg4IDMgNSAzIDVzMy0xLjgxMyAzLTVjMC0xLjY1NC0xLjM0Ni0zLTMtM3ptMCA0LjVhMS41IDEuNSAwIDEgMSAuMDAxLTMuMDAxQTEuNSAxLjUgMCAwIDEgMTkgMTguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUcm9waHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRoLTNWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxSDNhMSAxIDAgMCAwLTEgMXYzYzAgNC4zMSAxLjc5OSA2LjkxIDQuODE5IDcuMDEyQTYuMDAxIDYuMDAxIDAgMCAwIDExIDE3LjkxVjIwSDl2Mmg2di0yaC0ydi0yLjA5YTYuMDEgNi4wMSAwIDAgMCA0LjE4MS0yLjg5OEMyMC4yMDEgMTQuOTEgMjIgMTIuMzEgMjIgOFY1YTEgMSAwIDAgMC0xLTF6TTQgOFY2aDJ2Ni44M0M0LjIxNiAxMi4wNzggNCA5LjI5OSA0IDh6bTggOGMtMi4yMDYgMC00LTEuNzk0LTQtNFY0aDh2OGMwIDIuMjA2LTEuNzk0IDQtNCA0em02LTMuMTdWNmgydjJjMCAxLjI5OS0uMjE2IDQuMDc4LTIgNC44M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtNS41ODZsMi4yOTMtMi4yOTMtMS40MTQtMS40MTRMMTIgNS41ODYgOC43MDcgMi4yOTMgNy4yOTMgMy43MDcgOS41ODYgNkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTFjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjhjMC0xLjEwMy0uODk3LTItMi0yek00IDE5VjhoMTZsLjAwMiAxMUg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVVuZGVybGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxOGgxNHYySDV6TTYgNHY2YzAgMy4zMDkgMi42OTEgNiA2IDZzNi0yLjY5MSA2LTZWNGgtMnY2YzAgMi4yMDYtMS43OTQgNC00IDRzLTQtMS43OTQtNC00VjRINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVbmRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEwaDZjMS42NTQgMCAzIDEuMzQ2IDMgM3MtMS4zNDYgMy0zIDNoLTN2MmgzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01SDlWNUw0IDlsNSA0di0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVVuaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNmExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNmgxVjhhMiAyIDAgMCAxIDItMmg4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyem0zIDNhMiAyIDAgMCAwIDIgMmg5YTIgMiAwIDAgMCAyLTJ2LTlhMiAyIDAgMCAwLTItMmgtMXY4YTIgMiAwIDAgMS0yIDJIOHYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVVubGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuOTQ5IDE0LjEyMSAxOS4wNzEgMTJhNS4wMDggNS4wMDggMCAwIDAgMC03LjA3MSA1LjAwNiA1LjAwNiAwIDAgMC03LjA3MSAwbC0uNzA3LjcwNyAxLjQxNCAxLjQxNC43MDctLjcwN2EzLjAwNyAzLjAwNyAwIDAgMSA0LjI0MyAwIDMuMDA1IDMuMDA1IDAgMCAxIDAgNC4yNDNsLTIuMTIyIDIuMTIxYTIuNzIzIDIuNzIzIDAgMCAxLS44NDQuNTdMMTMuNDE0IDEybDEuNDE0LTEuNDE0LS43MDctLjcwN2E0Ljk2NSA0Ljk2NSAwIDAgMC0zLjUzNS0xLjQ2NWMtLjIzNSAwLS40NjQuMDMyLS42OTEuMDY2TDMuNzA3IDIuMjkzIDIuMjkzIDMuNzA3bDE4IDE4IDEuNDE0LTEuNDE0LTUuNTM2LTUuNTM2Yy4yNzctLjE4NC41MzgtLjM5Ni43NzgtLjYzNnptLTYuMzYzIDMuNTM2YTMuMDA3IDMuMDA3IDAgMCAxLTQuMjQzIDAgMy4wMDUgMy4wMDUgMCAwIDEgMC00LjI0M2wxLjQ3Ni0xLjQ3NS0xLjQxNC0xLjQxNEw0LjkyOSAxMmE1LjAwOCA1LjAwOCAwIDAgMCAwIDcuMDcxIDQuOTgzIDQuOTgzIDAgMCAwIDMuNTM1IDEuNDYyQTQuOTgyIDQuOTgyIDAgMCAwIDEyIDE5LjA3MWwuNzA3LS43MDctMS40MTQtMS40MTQtLjcwNy43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVXBBcnJvd0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOC40MTRWMThoMlY4LjQxNGw0LjI5MyA0LjI5MyAxLjQxNC0xLjQxNEwxMiA0LjU4NmwtNi43MDcgNi43MDcgMS40MTQgMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVXBBcnJvd0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDAxIDEuOTkzQzYuNDg2IDEuOTk0IDIgNi40OCAyIDExLjk5NGMuMDAxIDUuNTE0IDQuNDg3IDEwIDEwIDEwIDUuNTE1IDAgMTAuMDAxLTQuNDg2IDEwLjAwMS0xMHMtNC40ODYtMTAtMTAtMTAuMDAxek0xMiAxOS45OTRjLTQuNDEgMC03Ljk5OS0zLjU4OS04LTggMC00LjQxMSAzLjU4OS04IDguMDAxLTguMDAxIDQuNDExLjAwMSA4IDMuNTkgOCA4LjAwMXMtMy41ODkgOC04LjAwMSA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyLjAwMSA4LjAwMS00LjAwNSA0LjAwNWgzLjAwNVYxNmgydi0zLjk5NGgzLjAwNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVcEFycm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE5aDE4YTEuMDAyIDEuMDAyIDAgMCAwIC44MjMtMS41NjlsLTktMTNjLS4zNzMtLjUzOS0xLjI3MS0uNTM5LTEuNjQ1IDBsLTkgMTNBLjk5OS45OTkgMCAwIDAgMyAxOXptOS0xMi4yNDNMMTkuMDkyIDE3SDQuOTA4TDEyIDYuNzU3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMlY5aDNsLTQtNS00IDVoM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOEg0di03SDJ2N2MwIDEuMTAzLjg5NyAyIDIgMmgxNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTdoLTJ2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVcHNpZGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDg2IDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDJ6bTAgMThjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuODI5IDkuMTcyYy4xODEuMTgxLjM0Ni4zOC40ODguNTkybDEuNjU4LTEuMTE5YTYuMDYzIDYuMDYzIDAgMCAwLTEuNjIxLTEuNjIgNS45NjMgNS45NjMgMCAwIDAtMi4xNDgtLjkwMyA1Ljk4NSA1Ljk4NSAwIDAgMC01LjQ0OCAxLjYzNCA1Ljk5MyA1Ljk5MyAwIDAgMC0uNzMzLjg4OWwxLjY1NyAxLjExOWE0LjAxNyA0LjAxNyAwIDAgMSAyLjUxLTEuNjgzIDMuOTg5IDMuOTg5IDAgMCAxIDMuNjM3IDEuMDkxelwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjEzLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41MDdcIixcImN5XCI6XCIxMy41MDdcIixcInJcIjpcIjEuNDkzXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVXB2b3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi43ODEgMi4zNzVjLS4zODEtLjQ3NS0xLjE4MS0uNDc1LTEuNTYyIDBsLTggMTBBMS4wMDEgMS4wMDEgMCAwIDAgNCAxNGg0djdhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTdoNGExLjAwMSAxLjAwMSAwIDAgMCAuNzgxLTEuNjI1bC04LTEwek0xNSAxMmgtMXY4aC00di04SDYuMDgxTDEyIDQuNjAxIDE3LjkxOSAxMkgxNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVc2IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEwaDF2MmgtNFY2aDJsLTMtNC0zIDRoMnY4SDd2LTIuMjc3Yy41OTYtLjM0NyAxLS45ODUgMS0xLjcyM2EyIDIgMCAwIDAtNCAwYzAgLjczOC40MDQgMS4zNzYgMSAxLjcyM1YxNGMwIDEuMTAzLjg5NyAyIDIgMmg0djIuMjc3QTEuOTkgMS45OSAwIDAgMCAxMCAyMGEyIDIgMCAwIDAgNCAwYzAtLjczOC0uNDA0LTEuMzc2LTEtMS43MjNWMTRoNGMxLjEwMyAwIDItLjg5NyAyLTJ2LTJoMVY2aC00djR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVXNlckNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4yOSA4LjI5IDE2IDEyLjU4bC0xLjMtMS4yOS0xLjQxIDEuNDIgMi43IDIuNyA1LjcyLTUuN3pNNCA4YTMuOTEgMy45MSAwIDAgMCA0IDQgMy45MSAzLjkxIDAgMCAwIDQtNCAzLjkxIDMuOTEgMCAwIDAtNC00IDMuOTEgMy45MSAwIDAgMC00IDR6bTYgMGExLjkxIDEuOTEgMCAwIDEtMiAyIDEuOTEgMS45MSAwIDAgMS0yLTIgMS45MSAxLjkxIDAgMCAxIDItMiAxLjkxIDEuOTEgMCAwIDEgMiAyek00IDE4YTMgMyAwIDAgMSAzLTNoMmEzIDMgMCAwIDEgMyAzdjFoMnYtMWE1IDUgMCAwIDAtNS01SDdhNSA1IDAgMCAwLTUgNXYxaDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVXNlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkExMC4xMyAxMC4xMyAwIDAgMCAyIDEyYTEwIDEwIDAgMCAwIDQgNy45MlYyMGguMWE5LjcgOS43IDAgMCAwIDExLjggMGguMXYtLjA4QTEwIDEwIDAgMCAwIDIyIDEyIDEwLjEzIDEwLjEzIDAgMCAwIDEyIDJ6TTguMDcgMTguOTNBMyAzIDAgMCAxIDExIDE2LjU3aDJhMyAzIDAgMCAxIDIuOTMgMi4zNiA3Ljc1IDcuNzUgMCAwIDEtNy44NiAwem05LjU0LTEuMjlBNSA1IDAgMCAwIDEzIDE0LjU3aC0yYTUgNSAwIDAgMC00LjYxIDMuMDdBOCA4IDAgMCAxIDQgMTJhOC4xIDguMSAwIDAgMSA4LTggOC4xIDguMSAwIDAgMSA4IDggOCA4IDAgMCAxLTIuMzkgNS42NHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YTMuOTEgMy45MSAwIDAgMC00IDQgMy45MSAzLjkxIDAgMCAwIDQgNCAzLjkxIDMuOTEgMCAwIDAgNC00IDMuOTEgMy45MSAwIDAgMC00LTR6bTAgNmExLjkxIDEuOTEgMCAwIDEtMi0yIDEuOTEgMS45MSAwIDAgMSAyLTIgMS45MSAxLjkxIDAgMCAxIDIgMiAxLjkxIDEuOTEgMCAwIDEtMiAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVVzZXJNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTFoOHYyaC04ek04IDRhMy45MSAzLjkxIDAgMCAwLTQgNCAzLjkxIDMuOTEgMCAwIDAgNCA0IDMuOTEgMy45MSAwIDAgMCA0LTQgMy45MSAzLjkxIDAgMCAwLTQtNHptMCA2YTEuOTEgMS45MSAwIDAgMS0yLTIgMS45MSAxLjkxIDAgMCAxIDItMiAxLjkxIDEuOTEgMCAwIDEgMiAyIDEuOTEgMS45MSAwIDAgMS0yIDJ6bS00IDhhMyAzIDAgMCAxIDMtM2gyYTMgMyAwIDAgMSAzIDN2MWgydi0xYTUgNSAwIDAgMC01LTVIN2E1IDUgMCAwIDAtNSA1djFoMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVc2VyUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMxLjE1MSAwIDItLjg0OCAyLTJzLS44NDktMi0yLTJjLTEuMTUgMC0yIC44NDgtMiAycy44NSAyIDIgMnptMCAxYy0yLjIwOSAwLTQgMS42MTItNCAzLjZ2LjM4Nmg4VjE0LjZjMC0xLjk4OC0xLjc5MS0zLjYtNC0zLjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTNjMCAxLjEwMy44OTcgMiAyIDJoNGwzIDMgMy0zaDRjMS4xMDMgMCAyLS44OTcgMi0yVjRjMC0xLjEwMy0uODk3LTItMi0yem0tNSAxNS0yIDItMi0ySDVWNGgxNGwuMDAyIDEzSDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVVzZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4aC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zek00IDhhMy45MSAzLjkxIDAgMCAwIDQgNCAzLjkxIDMuOTEgMCAwIDAgNC00IDMuOTEgMy45MSAwIDAgMC00LTQgMy45MSAzLjkxIDAgMCAwLTQgNHptNiAwYTEuOTEgMS45MSAwIDAgMS0yIDIgMS45MSAxLjkxIDAgMCAxLTItMiAxLjkxIDEuOTEgMCAwIDEgMi0yIDEuOTEgMS45MSAwIDAgMSAyIDJ6TTQgMThhMyAzIDAgMCAxIDMtM2gyYTMgMyAwIDAgMSAzIDN2MWgydi0xYTUgNSAwIDAgMC01LTVIN2E1IDUgMCAwIDAtNSA1djFoMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVc2VyVm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTJjMi4yOCAwIDQtMS43MiA0LTRzLTEuNzItNC00LTQtNCAxLjcyLTQgNCAxLjcyIDQgNCA0em0wLTZjMS4xNzggMCAyIC44MjIgMiAycy0uODIyIDItMiAyLTItLjgyMi0yLTIgLjgyMi0yIDItMnptMSA3SDdjLTIuNzU3IDAtNSAyLjI0My01IDV2MWgydi0xYzAtMS42NTQgMS4zNDYtMyAzLTNoMmMxLjY1NCAwIDMgMS4zNDYgMyAzdjFoMnYtMWMwLTIuNzU3LTIuMjQzLTUtNS01em05LjM2NC0xMC4zNjRMMTYuOTUgNC4wNUMxOC4yNzEgNS4zNzMgMTkgNy4xMzEgMTkgOXMtLjcyOSAzLjYyNy0yLjA1IDQuOTVsMS40MTQgMS40MTRDMjAuMDY0IDEzLjY2MyAyMSAxMS40MDMgMjEgOXMtLjkzNi00LjY2My0yLjYzNi02LjM2NHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41MzUgNS40NjQgMTQuMTIxIDYuODhDMTQuNjg4IDcuNDQ1IDE1IDguMTk4IDE1IDlzLS4zMTIgMS41NTUtLjg3OSAyLjEybDEuNDE0IDEuNDE2QzE2LjQ3OSAxMS41OTIgMTcgMTAuMzM3IDE3IDlzLS41MjEtMi41OTItMS40NjUtMy41MzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVXNlclggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjcxIDE1LjcxIDIuMjktMi4zIDIuMjkgMi4zIDEuNDItMS40Mi0yLjMtMi4yOSAyLjMtMi4yOS0xLjQyLTEuNDItMi4yOSAyLjMtMi4yOS0yLjMtMS40MiAxLjQyTDE2LjU4IDEybC0yLjI5IDIuMjl6TTEyIDhhMy45MSAzLjkxIDAgMCAwLTQtNCAzLjkxIDMuOTEgMCAwIDAtNCA0IDMuOTEgMy45MSAwIDAgMCA0IDQgMy45MSAzLjkxIDAgMCAwIDQtNHpNNiA4YTEuOTEgMS45MSAwIDAgMSAyLTIgMS45MSAxLjkxIDAgMCAxIDIgMiAxLjkxIDEuOTEgMCAwIDEtMiAyIDEuOTEgMS45MSAwIDAgMS0yLTJ6TTQgMThhMyAzIDAgMCAxIDMtM2gyYTMgMyAwIDAgMSAzIDN2MWgydi0xYTUgNSAwIDAgMC01LTVIN2E1IDUgMCAwIDAtNSA1djFoMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYTUgNSAwIDEgMCA1IDUgNSA1IDAgMCAwLTUtNXptMCA4YTMgMyAwIDEgMSAzLTMgMyAzIDAgMCAxLTMgM3ptOSAxMXYtMWE3IDcgMCAwIDAtNy03aC00YTcgNyAwIDAgMC03IDd2MWgydi0xYTUgNSAwIDAgMSA1LTVoNGE1IDUgMCAwIDEgNSA1djF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVmVjdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4yNzcgOGMuMzQ3LjU5Ni45ODUgMSAxLjcyMyAxYTIgMiAwIDAgMCAwLTRjLS43MzggMC0xLjM3Ni40MDQtMS43MjMgMUgxNlY0YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjJINS43MjNDNS4zNzYgNS40MDQgNC43MzggNSA0IDVhMiAyIDAgMCAwIDAgNGMuNzM4IDAgMS4zNzYtLjQwNCAxLjcyMy0xSDh2LjM2OUM1LjEzMyA5Ljg0IDQuMzE4IDEyLjUzNCA0LjA5MSAxNEgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uODc3Yy4xOTctLjk1OS43MTgtMi40MDYgMi4wODUtMy40MThBLjk4NC45ODQgMCAwIDAgOSAxMWg2YS45OC45OCAwIDAgMCAuNzkyLS40MTljMS4zNzMgMS4wMTMgMS44OTUgMi40NTggMi4wODkgMy40MTlIMTdhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLTEuMDkyYy0uMjI3LTEuNDY2LTEuMDQyLTQuMTYxLTMuOTA4LTUuNjMyVjhoMi4yNzd6TTYgMThINHYtMmgydjJ6bTE0IDBoLTJ2LTJoMnYyem0tNi05aC00VjVoNHY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVZlcnRpY2FsQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1VjJoLTJ2M0g4bDQgNCA0LTR6bTAgMTd2LTNoM2wtNC00LTQgNGgzdjN6TTMgMTFoM3YySDN6bTUgMGgzdjJIOHptNSAwaDN2MmgtM3ptNSAwaDN2MmgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlWaWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMS45NSAzLjU2NC43MDguNzA3LTkuMTkzIDkuMTkzQzIuNTIxIDE0LjQwOCAyIDE1LjY2NCAyIDE3cy41MjEgMi41OTIgMS40NjUgMy41MzVDNC40MDggMjEuNDc5IDUuNjY0IDIyIDcgMjJzMi41OTItLjUyMSAzLjUzNS0xLjQ2NWw5LjE5My05LjE5My43MDcuNzA4IDEuNDE0LTEuNDE0LTguNDg1LTguNDg2LTEuNDE0IDEuNDE0ek05LjEyMSAxOS4xMjFjLTEuMTMzIDEuMTMzLTMuMTA5IDEuMTMzLTQuMjQyIDBDNC4zMTMgMTguNTU1IDQgMTcuODAyIDQgMTdzLjMxMy0xLjU1NS44NzktMi4xMjFMNS43NTggMTRoOC40ODRsLTUuMTIxIDUuMTIxek0xNi4yNDIgMTJINy43NThsNi4zMTQtNi4zMTQgNC4yNDIgNC4yNDJMMTYuMjQyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVZpZGVvT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA3YzAtMS4xMDMtLjg5Ny0yLTItMkg2LjQxNEwzLjcwNyAyLjI5MyAyLjI5MyAzLjcwN2wxOCAxOCAxLjQxNC0xLjQxNEwxOCAxNi41ODZ2LTIuOTE5TDIyIDE3VjdsLTQgMy4zMzNWN3ptLTIgNy41ODZMOC40MTQgN0gxNnY3LjU4NnpNNCAxOWgxMC44NzlsLTItMkg0VjguMTIxTDIuMTQ1IDYuMjY1QTEuOTc3IDEuOTc3IDAgMCAwIDIgN3YxMGMwIDEuMTAzLjg5NyAyIDIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlWaWRlb1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDhIOXYzSDZ2MmgzdjNoMnYtM2gzdi0yaC0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDdjMC0xLjEwMy0uODk3LTItMi0ySDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMGMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJ2LTMuMzMzTDIyIDE3VjdsLTQgMy4zMzNWN3ptLTEuOTk5IDEwSDRWN2gxMnY1bC4wMDEgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlWaWRlb1JlY29yZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOWMwLTEuMTAzLS44OTctMi0yLTJoLTEuNDM0bC0yLjQxOC00LjAyOUEyLjAwOCAyLjAwOCAwIDAgMCAxMC40MzQgMkg1djJoNS40MzRsMS44IDNINGMtMS4xMDMgMC0yIC44OTctMiAydjljMCAxLjEwMy44OTcgMiAyIDJoMTJjMS4xMDMgMCAyLS44OTcgMi0ydi0zbDQgMnYtN2wtNCAyVjl6bS0xLjk5OCA5SDRWOWgxMmwuMDAxIDRIMTZ2MWwuMDAxLjAwMS4wMDEgMy45OTl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNGg2djJINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggN2MwLTEuMTAzLS44OTctMi0yLTJINGMtMS4xMDMgMC0yIC44OTctMiAydjEwYzAgMS4xMDMuODk3IDIgMiAyaDEyYzEuMTAzIDAgMi0uODk3IDItMnYtMy4zMzNMMjIgMTdWN2wtNCAzLjMzM1Y3em0tMS45OTggMTBINFY3aDEybC4wMDEgNC45OTlMMTYgMTJsLjAwMS4wMDEuMDAxIDQuOTk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVZvaWNlbWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSA4YTQuNTA1IDQuNTA1IDAgMCAwLTQuNSA0LjVjMCAuOTI1LjI4MSAxLjc4NC43NjIgMi41aC0zLjUyM2MuNDgtLjcxNi43NjEtMS41NzUuNzYxLTIuNUMxMSAxMC4wMTkgOC45ODEgOCA2LjUgOFMyIDEwLjAxOSAyIDEyLjUgNC4wMTkgMTcgNi41IDE3Yy4xNzEgMCAuMzM0LS4wMzIuNS0uMDUxVjE3aDExdi0uMDUxYzIuMjQ0LS4yNTIgNC0yLjEzOSA0LTQuNDQ5IDAtMi40ODEtMi4wMTktNC41LTQuNS00LjV6TTQgMTIuNUM0IDExLjEyMSA1LjEyMSAxMCA2LjUgMTBTOSAxMS4xMjEgOSAxMi41IDcuODc5IDE1IDYuNSAxNSA0IDEzLjg3OSA0IDEyLjV6TTE3LjUgMTVjLTEuMzc5IDAtMi41LTEuMTIxLTIuNS0yLjVzMS4xMjEtMi41IDIuNS0yLjUgMi41IDEuMTIxIDIuNSAyLjUtMS4xMjEgMi41LTIuNSAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpVm9sdW1lRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMjFjMy41MjctMS41NDcgNS45OTktNC45MDkgNS45OTktOVMxOS41MjcgNC41NDcgMTYgM3YyYzIuMzg3IDEuMzg2IDMuOTk5IDQuMDQ3IDMuOTk5IDdTMTguMzg3IDE3LjYxNCAxNiAxOXYyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDd2MTBjMS4yMjUtMS4xIDItMy4yMjkgMi01cy0uNzc1LTMuOS0yLTV6TTQgMTdoMi42OTdsNS43NDggMy44MzJhMS4wMDQgMS4wMDQgMCAwIDAgMS4wMjcuMDVBMSAxIDAgMCAwIDE0IDIwVjRhMSAxIDAgMCAwLTEuNTU0LS44MzJMNi42OTcgN0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NmMwIDEuMTAzLjg5NyAyIDIgMnptMC04aDNjLjAzMyAwIC4wNjEtLjAxNi4wOTMtLjAxOWExLjAyNyAxLjAyNyAwIDAgMCAuMzgtLjExNmMuMDI2LS4wMTUuMDU3LS4wMTcuMDgyLS4wMzNMMTIgNS44Njh2MTIuMjY0bC00LjQ0NS0yLjk2NGMtLjAyNS0uMDE3LS4wNTYtLjAyLS4wODItLjAzM2EuOTg2Ljk4NiAwIDAgMC0uMzgyLS4xMTZDNy4wNTkgMTUuMDE2IDcuMDMyIDE1IDcgMTVINFY5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVZvbHVtZUxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxN2gyLjY5N2w1Ljc0OCAzLjgzMmExLjAwNCAxLjAwNCAwIDAgMCAxLjAyNy4wNUExIDEgMCAwIDAgMTQgMjBWNGExIDEgMCAwIDAtMS41NTQtLjgzMkw2LjY5NyA3SDRjLTEuMTAzIDAtMiAuODk3LTIgMnY2YzAgMS4xMDMuODk3IDIgMiAyem0wLThoM2MuMDMzIDAgLjA2MS0uMDE2LjA5My0uMDE5YTEuMDI3IDEuMDI3IDAgMCAwIC4zNzktLjExNmMuMDI2LS4wMTQuMDU3LS4wMTcuMDgyLS4wMzNMMTIgNS44Njh2MTIuMjY0bC00LjQ0NS0yLjk2NGMtLjAyNS0uMDE4LS4wNTYtLjAyLS4wODItLjAzM2EuOTc3Ljk3NyAwIDAgMC0uMzgyLS4xMTZDNy4wNTkgMTUuMDE2IDcuMDMyIDE1IDcgMTVINFY5em0xMi0ydjEwYzEuMjI1LTEuMSAyLTMuMjI5IDItNXMtLjc3NS0zLjktMi01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVZvbHVtZU11dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjcwNyAyMC4yOTMtMi4wMjMtMi4wMjNBOS41NjYgOS41NjYgMCAwIDAgMjEuOTk5IDEyYzAtNC4wOTEtMi40NzItNy40NTMtNS45OTktOXYyYzIuMzg3IDEuMzg2IDMuOTk5IDQuMDQ3IDMuOTk5IDdhOC4xMTMgOC4xMTMgMCAwIDEtMS42NzIgNC45MTNsLTEuMjg1LTEuMjg1QzE3LjY0NCAxNC41MzYgMTggMTMuMTkgMTggMTJjMC0xLjc3MS0uNzc1LTMuOS0yLTV2Ny41ODZsLTItMlY0YTEgMSAwIDAgMC0xLjU1NC0uODMyTDcuNzI3IDYuMzEzbC00LjAyLTQuMDItMS40MTQgMS40MTQgMTggMTggMS40MTQtMS40MTR6TTEyIDUuODY4djQuNzE4TDkuMTY5IDcuNzU1IDEyIDUuODY4ek00IDE3aDIuNjk3bDUuNzQ4IDMuODMyYTEuMDA0IDEuMDA0IDAgMCAwIDEuMDI3LjA1QTEgMSAwIDAgMCAxNCAyMHYtMS44NzlsLTItMnYyLjAxMWwtNC40NDUtMi45NjRjLS4wMjUtLjAxNy0uMDU2LS4wMi0uMDgyLS4wMzNhLjk4Ni45ODYgMCAwIDAtLjM4Mi0uMTE2QzcuMDU5IDE1LjAxNiA3LjAzMiAxNSA3IDE1SDRWOWguODc5TDMuMTAyIDcuMjIzQTEuOTk1IDEuOTk1IDAgMCAwIDIgOXY2YzAgMS4xMDMuODk3IDIgMiAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVZvbHVtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxN2gyLjY5N2w1Ljc0OCAzLjgzMmExLjAwNCAxLjAwNCAwIDAgMCAxLjAyNy4wNUExIDEgMCAwIDAgMTQgMjBWNGExIDEgMCAwIDAtMS41NTQtLjgzMkw2LjY5NyA3SDRjLTEuMTAzIDAtMiAuODk3LTIgMnY2YzAgMS4xMDMuODk3IDIgMiAyem0wLThoM2MuMDMzIDAgLjA2MS0uMDE2LjA5My0uMDE5YTEuMDI3IDEuMDI3IDAgMCAwIC4zNzktLjExNmMuMDI2LS4wMTQuMDU3LS4wMTcuMDgyLS4wMzNMMTIgNS44Njh2MTIuMjY0bC00LjQ0NS0yLjk2NGMtLjAyNS0uMDE4LS4wNTYtLjAyLS4wODItLjAzM2EuOTc3Ljk3NyAwIDAgMC0uMzgyLS4xMTZDNy4wNTkgMTUuMDE2IDcuMDMyIDE1IDcgMTVINFY5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVdhbGsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTc4IDEyLjI3Yy4yNDUuMzY4LjYxMS42NDcgMS4wMzEuNzg3bDIuNjc1Ljg5Mi42MzMtMS44OTYtMi42NzUtLjg5Mi0xLjY2My0yLjQ5NWEyLjAxNiAyLjAxNiAwIDAgMC0uNzY5LS42NzlsLTEuNDM0LS43MTdhMS45ODkgMS45ODkgMCAwIDAtMS4zNzgtLjE0OWwtMy4xOTMuNzk3YTIuMDAyIDIuMDAyIDAgMCAwLTEuMzA2IDEuMDQ2bC0xLjc5NCAzLjU4OSAxLjc4OS44OTUgMS43OTQtMy41ODkgMi4yMjMtLjU1Ni0xLjgwNCA4LjM0Ni0zLjY3NCAyLjUyNyAxLjEzMyAxLjY0OCAzLjY3NS0yLjUyOGMuNDIxLS4yOS43MTMtLjcyNS44Mi0xLjIyNWwuNTE3LTIuMzg4IDIuNTE3IDEuODg4LjkyNSA0LjYyNSAxLjk2MS0uMzkzLS45MjUtNC42MjdhMiAyIDAgMCAwLS43NjItMS4yMDZsLTIuMTcxLTEuNjI4LjY0Ny0zLjg4NSAxLjIwOCAxLjgxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXYWxsZXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINUMzLjM0NiAzIDIgNC4zNDYgMiA2djEyYzAgMS42NTQgMS4zNDYgMyAzIDNoMTVjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yek01IDE5Yy0uNTUyIDAtMS0uNDQ5LTEtMVY2YzAtLjU1MS40NDgtMSAxLTFoMTV2M2gtNmMtMS4xMDMgMC0yIC44OTctMiAydjRjMCAxLjEwMy44OTcgMiAyIDJoNi4wMDF2M0g1em0xNS05djRoLTZ2LTRoNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEyaDJ2NGgtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3VjVjMC0xLjEwMy0uODk3LTItMi0ySDVDMy4zNDYgMyAyIDQuMzQ2IDIgNnYxMmMwIDIuMjAxIDEuNzk0IDMgMyAzaDE1YzEuMTAzIDAgMi0uODk3IDItMlY5YzAtMS4xMDMtLjg5Ny0yLTItMnpNNSA1aDEzdjJINWExLjAwMSAxLjAwMSAwIDAgMSAwLTJ6bTE1IDE0SDUuMDEyQzQuNTUgMTguOTg4IDQgMTguODA1IDQgMThWOC44MTVjLjMxNC4xMTMuNjQ3LjE4NSAxIC4xODVoMTV2MTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOTk2IDljMS40MTMgMCAyLjE2LS43NDcgMi43MDUtMS4yOTMuNDktLjQ5LjczMS0uNzA3IDEuMjkyLS43MDdzLjgwMi4yMTcgMS4yOTIuNzA3QzExLjgzIDguMjUzIDEyLjU3NyA5IDEzLjk5MSA5YzEuNDE1IDAgMi4xNjMtLjc0NyAyLjcxLTEuMjkzLjQ5MS0uNDkuNzMyLS43MDcgMS4yOTUtLjcwN3MuODA0LjIxNyAxLjI5NS43MDdDMTkuODM3IDguMjUzIDIwLjU4NSA5IDIyIDlWN2MtLjU2MyAwLS44MDQtLjIxNy0xLjI5NS0uNzA3QzIwLjE1OSA1Ljc0NyAxOS40MTEgNSAxNy45OTYgNXMtMi4xNjIuNzQ3LTIuNzA5IDEuMjkyYy0uNDkxLjQ5MS0uNzMxLjcwOC0xLjI5Ni43MDgtLjU2MiAwLS44MDItLjIxNy0xLjI5Mi0uNzA3QzEyLjE1NCA1Ljc0NyAxMS40MDcgNSA5Ljk5MyA1cy0yLjE2MS43NDctMi43MDYgMS4yOTNjLS40OS40OS0uNzMuNzA3LTEuMjkxLjcwN3MtLjgwMS0uMjE3LTEuMjkxLS43MDdDNC4xNiA1Ljc0NyAzLjQxMyA1IDIgNXYyYy41NjEgMCAuODAxLjIxNyAxLjI5MS43MDdDMy44MzYgOC4yNTMgNC41ODMgOSA1Ljk5NiA5em0wIDVjMS40MTMgMCAyLjE2LS43NDcgMi43MDUtMS4yOTMuNDktLjQ5LjczMS0uNzA3IDEuMjkyLS43MDdzLjgwMi4yMTcgMS4yOTIuNzA3Yy41NDUuNTQ2IDEuMjkyIDEuMjkzIDIuNzA2IDEuMjkzIDEuNDE1IDAgMi4xNjMtLjc0NyAyLjcxLTEuMjkzLjQ5MS0uNDkuNzMyLS43MDcgMS4yOTUtLjcwN3MuODA0LjIxNyAxLjI5NS43MDdDMTkuODM3IDEzLjI1MyAyMC41ODUgMTQgMjIgMTR2LTJjLS41NjMgMC0uODA0LS4yMTctMS4yOTUtLjcwNy0uNTQ2LS41NDYtMS4yOTQtMS4yOTMtMi43MDktMS4yOTNzLTIuMTYyLjc0Ny0yLjcwOSAxLjI5MmMtLjQ5MS40OTEtLjczMS43MDgtMS4yOTYuNzA4LS41NjIgMC0uODAyLS4yMTctMS4yOTItLjcwN0MxMi4xNTQgMTAuNzQ3IDExLjQwNyAxMCA5Ljk5MyAxMHMtMi4xNjEuNzQ3LTIuNzA2IDEuMjkzYy0uNDkuNDktLjczLjcwNy0xLjI5MS43MDdzLS44MDEtLjIxNy0xLjI5MS0uNzA3QzQuMTYgMTAuNzQ3IDMuNDEzIDEwIDIgMTB2MmMuNTYxIDAgLjgwMS4yMTcgMS4yOTEuNzA3QzMuODM2IDEzLjI1MyA0LjU4MyAxNCA1Ljk5NiAxNHptMCA1YzEuNDEzIDAgMi4xNi0uNzQ3IDIuNzA1LTEuMjkzLjQ5LS40OS43MzEtLjcwNyAxLjI5Mi0uNzA3cy44MDIuMjE3IDEuMjkyLjcwN2MuNTQ1LjU0NiAxLjI5MiAxLjI5MyAyLjcwNiAxLjI5MyAxLjQxNSAwIDIuMTYzLS43NDcgMi43MS0xLjI5My40OTEtLjQ5LjczMi0uNzA3IDEuMjk1LS43MDdzLjgwNC4yMTcgMS4yOTUuNzA3QzE5LjgzNyAxOC4yNTMgMjAuNTg1IDE5IDIyIDE5di0yYy0uNTYzIDAtLjgwNC0uMjE3LTEuMjk1LS43MDctLjU0Ni0uNTQ2LTEuMjk0LTEuMjkzLTIuNzA5LTEuMjkzcy0yLjE2Mi43NDctMi43MDkgMS4yOTJjLS40OTEuNDkxLS43MzEuNzA4LTEuMjk2LjcwOC0uNTYyIDAtLjgwMi0uMjE3LTEuMjkyLS43MDdDMTIuMTU0IDE1Ljc0NyAxMS40MDcgMTUgOS45OTMgMTVzLTIuMTYxLjc0Ny0yLjcwNiAxLjI5M2MtLjQ5LjQ5LS43My43MDctMS4yOTEuNzA3cy0uODAxLS4yMTctMS4yOTEtLjcwN0M0LjE2IDE1Ljc0NyAzLjQxMyAxNSAyIDE1djJjLjU2MSAwIC44MDEuMjE3IDEuMjkxLjcwN0MzLjgzNiAxOC4yNTMgNC41ODMgMTkgNS45OTYgMTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2ViY2FtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00Ljk2MyAwLTkgNC4wMzgtOSA5IDAgMy4zMjggMS44MiA2LjIzMiA0LjUxMyA3Ljc5bC0yLjA2NyAxLjM3OEExIDEgMCAwIDAgNiAyMmgxMmExIDEgMCAwIDAgLjU1NS0xLjgzMmwtMi4wNjctMS4zNzhDMTkuMTggMTcuMjMyIDIxIDE0LjMyOCAyMSAxMWMwLTQuOTYyLTQuMDM3LTktOS05em0wIDE2Yy0zLjg1OSAwLTctMy4xNDEtNy03IDAtMy44NiAzLjE0MS03IDctN3M3IDMuMTQgNyA3YzAgMy44NTktMy4xNDEgNy03IDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMtMi43NTcgMC01IDIuMjQzLTUgNXMyLjI0MyA1IDUgNSA1LTIuMjQzIDUtNS0yLjI0My01LTUtNXptMCA4Yy0xLjY1NCAwLTMtMS4zNDYtMy0zczEuMzQ2LTMgMy0zIDMgMS4zNDYgMyAzLTEuMzQ2IDMtMyAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVdpZmkwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjJcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXaWZpMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjcxIDE0LjMwN0MxNi4xODQgMTIuODE5IDE0LjE3IDEyIDEyIDEycy00LjE4NC44MTktNS42NzEgMi4zMDdsMS40MTQgMS40MTRjMS4xMS0xLjExIDIuNjIxLTEuNzIyIDQuMjU3LTEuNzIyIDEuNjM2LjAwMSAzLjE0Ny42MTIgNC4yNTcgMS43MjJsMS40MTQtMS40MTR6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIyXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2lmaTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjY3MSAxNC4zMDdDMTYuMTg0IDEyLjgxOSAxNC4xNyAxMiAxMiAxMnMtNC4xODQuODE5LTUuNjcxIDIuMzA3bDEuNDE0IDEuNDE0YzEuMTEtMS4xMSAyLjYyMS0xLjcyMiA0LjI1Ny0xLjcyMiAxLjYzNi4wMDEgMy4xNDcuNjEyIDQuMjU3IDEuNzIybDEuNDE0LTEuNDE0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjQzNyAxMS4yOTJjLTQuNTcyLTQuNTczLTEyLjMwMS00LjU3My0xNi44NzMgMGwxLjQxNCAxLjQxNGMzLjgwNy0zLjgwNyAxMC4yMzgtMy44MDcgMTQuMDQ1IDBsMS40MTQtMS40MTR6XCJ9fSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIyXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2lmaU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMS4yOTMgOC4zOTUgMS40MTQgMS40MTRjLjUwNC0uNTA0IDEuMDUyLS45NSAxLjYyMi0xLjM1OUwyLjkgNy4wMjFjLS41Ni40MjItMS4xMDQuODctMS42MDcgMS4zNzR6TTYuNDc0IDUuMDYgMy43MDcgMi4yOTMgMi4yOTMgMy43MDdsMTggMTggMS40MTQtMS40MTQtNS4wMTItNS4wMTIuOTc2LS45NzVhNy44NiA3Ljg2IDAgMCAwLTQuMDk5LTIuMTQ4TDExLjI5NCA5Ljg4YzIuNzg5LS4xOTEgNS42NDkuNzQ4IDcuNzI5IDIuODI3bDEuNDE0LTEuNDE0Yy0yLjg5OC0yLjg5OS03LjA2MS0zLjkzNi0xMC44ODgtMy4xNThMOC4wMjQgNi42MUExMy4zNjYgMTMuMzY2IDAgMCAxIDEyIDZjMy41MzcgMCA2LjgzNyAxLjM1MyA5LjI5MyAzLjgwOWwxLjQxNC0xLjQxNEMxOS44NzQgNS41NjEgMTYuMDcxIDQgMTIgNGExNS4xOTggMTUuMTk4IDAgMCAwLTUuNTI2IDEuMDZ6bS0yLjkxMSA2LjIzMyAxLjQxNCAxLjQxNGE5LjU2MyA5LjU2MyAwIDAgMSAyLjA1OC0xLjU1MUw1LjU3NiA5LjY5N2MtLjcxNy40NTEtMS4zOTUuOTc5LTIuMDEzIDEuNTk2em0yLjc2NiAzLjAxNCAxLjQxNCAxLjQxNGMuNjkyLS42OTIgMS41MzUtMS4xNTEgMi40MjktMS40MjhsLTEuNTU3LTEuNTU3YTcuNzYgNy43NiAwIDAgMC0yLjI4NiAxLjU3MXptNy42NiAzLjgwMy0yLjEtMi4xYTEuOTk2IDEuOTk2IDAgMSAwIDIuMSAyLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMzLjUzNyAwIDYuODM3IDEuMzUzIDkuMjkzIDMuODA5bDEuNDE0LTEuNDE0QzE5Ljg3NCA1LjU2MSAxNi4wNzEgNCAxMiA0Yy00LjA3MS4wMDEtNy44NzQgMS41NjEtMTAuNzA3IDQuMzk1bDEuNDE0IDEuNDE0QzUuMTYzIDcuMzUzIDguNDYzIDYgMTIgNnptNS42NzEgOC4zMDdjLTMuMDc0LTMuMDc0LTguMjY4LTMuMDc0LTExLjM0MiAwbDEuNDE0IDEuNDE0YzIuMzA3LTIuMzA3IDYuMjA3LTIuMzA3IDguNTE0IDBsMS40MTQtMS40MTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNDM3IDExLjI5M2MtNC41NzItNC41NzQtMTIuMzAxLTQuNTc0LTE2Ljg3MyAwbDEuNDE0IDEuNDE0YzMuODA3LTMuODA3IDEwLjIzOC0zLjgwNyAxNC4wNDUgMGwxLjQxNC0xLjQxNHpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjJcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1LjVDMTMgMy41NyAxMS40MyAyIDkuNSAyIDcuNDY2IDIgNi4yNSAzLjUyNSA2LjI1IDVoMmMwLS40MTUuMzg4LTEgMS4yNS0xIC44MjcgMCAxLjUuNjczIDEuNSAxLjVTMTAuMzI3IDcgOS41IDdIMnYyaDcuNUMxMS40MyA5IDEzIDcuNDMgMTMgNS41em0yLjUgOS41SDh2Mmg3LjVjLjgyNyAwIDEuNS42NzMgMS41IDEuNXMtLjY3MyAxLjUtMS41IDEuNWMtLjg2MiAwLTEuMjUtLjU4NS0xLjI1LTFoLTJjMCAxLjQ3NSAxLjIxNiAzIDMuMjUgMyAxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxNy40MyAxNSAxNS41IDE1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDVjLTIuMjA2IDAtNCAxLjc5NC00IDRoMmMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyLS44OTcgMi0yIDJIMnYyaDE2YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00ek0yIDE1aDR2MkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVdpbmRvd0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJoMTZjMS4xMDMgMCAyLS44OTcgMi0yVjVjMC0xLjEwMy0uODk3LTItMi0yem0wIDIgLjAwMSA0SDRWNWgxNnpNNCAxOXYtOGgxNi4wMDFsLjAwMSA4SDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNmgydjJoLTJ6bTMgMGgydjJoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2luZG93Q2xvc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDE2YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMnpNNCAxOVY3aDE2bC4wMDEgMTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS43MDcgMTAuNzA3LTEuNDE0LTEuNDE0TDEyIDExLjU4NiA5LjcwNyA5LjI5M2wtMS40MTQgMS40MTRMMTAuNTg2IDEzbC0yLjI5MyAyLjI5MyAxLjQxNCAxLjQxNEwxMiAxNC40MTRsMi4yOTMgMi4yOTMgMS40MTQtMS40MTRMMTMuNDE0IDEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVdpbmRvd09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xMDMgMC0yIC44OTctMiAydjE0YzAgMS4xMDMuODk3IDIgMiAyaDV2LTJINFY3aDE2djEyaC01djJoNWMxLjEwMyAwIDItLjg5NyAyLTJWNWMwLTEuMTAzLS44OTctMi0yLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMjF2LTVoM2wtNC01LTQgNWgzdjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2luZG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIxaDE2YzEuMTAzIDAgMi0uODk3IDItMlY1YzAtMS4xMDMtLjg5Ny0yLTItMkg0Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MTRjMCAxLjEwMy44OTcgMiAyIDJ6bTAtMlY3aDE2bC4wMDEgMTJINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXaW5kb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3SDRjLTEuMTAzIDAtMiAuODk3LTIgMnYxMGMwIDEuMTAzLjg5NyAyIDIgMmgxMmMxLjEwMyAwIDItLjg5NyAyLTJWOWMwLTEuMTAzLS44OTctMi0yLTJ6TTQgMTl2LThoMTJWOWwuMDAyIDEwSDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNWMwLTEuMTAzLS44OTctMi0yLTJIN2MtMS4xMDMgMC0yIC44OTctMiAyaDEzLjAwMWMxLjEwMSAwIDEuOTk2Ljg5NSAxLjk5OSAxLjk5NEwyMC4wMDIgMTVIMjB2MmMxLjEwMyAwIDItLjg5NyAyLTJWOC4wMDdMMjIuMDAxIDhWNkwyMiA1Ljk5VjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2luZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzEzIDEyLjEyM2MuMjY0LS45NTIuMzEyLTIuMDMuMTQzLTMuMjA2bC0uODY2LTYuMDU5QTEgMSAwIDAgMCAxOCAySDZhMSAxIDAgMCAwLS45OS44NThsLS44NjUgNi4wNThjLS4xNjkgMS4xNzctLjEyMSAyLjI1NS4xNDIgMy4yMDYuODY0IDMuMTM0IDMuNTUxIDUuMzkyIDYuNzEzIDUuNzk0VjIwSDl2Mmg2di0yaC0ydi0yLjA4NGMzLjE2Mi0uNDAyIDUuODQ5LTIuNjYgNi43MTMtNS43OTN6TTE3LjEzMyA0bC41NyA0SDYuMjk2bC41NzEtNGgxMC4yNjZ6TTYuMjE1IDExLjU5Yy0uMTMyLS40NzQtLjE4MS0xLjAwOS0uMTU5LTEuNTloMTEuODg5Yy4wMjEuNTgxLS4wMjggMS4xMTYtLjE1OSAxLjU5MUE2LjAyMSA2LjAyMSAwIDAgMSAxMiAxNmE2LjAxOSA2LjAxOSAwIDAgMS01Ljc4NS00LjQxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVdpbmtTbWlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyem0wIDE4Yy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjgyOCAxNC44MjhhMy45ODggMy45ODggMCAwIDEtMi4wMiAxLjA5IDQuMTA4IDQuMTA4IDAgMCAxLTEuNjE2IDAgNC4xMDMgNC4xMDMgMCAwIDEtLjc0OS0uMjMyIDQuMTYxIDQuMTYxIDAgMCAxLS42NzktLjM2OCA0LjExNSA0LjExNSAwIDAgMS0xLjA4Mi0xLjA4MmwtMS42NTggMS4xMTdjLjIxNS4zMTkuNDYyLjYxOS43MzMuODg5YTUuOTkxIDUuOTkxIDAgMCAwIDguNDg1LjAwMmMuMjcyLS4yNzEuNTItLjU3MS43MzQtLjg5MWwtMS42NTgtMS4xMTdjLS4xNDMuMjExLS4zMDcuNDEtLjQ5LjU5MnpcIn19LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTBjLTIgMC0yLjUgMi0yLjUgMmg1cy0uNTAxLTItMi41LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV2lua1Rvbmd1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA5Yy0yIDAtMi41IDItMi41IDJoNXMtLjUwMS0yLTIuNS0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40ODYgMiAyIDYuNDg2IDIgMTJzNC40ODYgMTAgMTAgMTAgMTAtNC40ODYgMTAtMTBTMTcuNTE0IDIgMTIgMnptLTIgMTZ2LTNoNHYzYzAgMS4xMDMtLjg5NyAyLTIgMnMtMi0uODk3LTItMnptNS44NTYgMS4wMDVjLjA4NS0uMzIzLjE0NC0uNjU2LjE0NC0xLjAwNXYtMS40OTlDMTcuNTg5IDE1LjAyOCAxOCAxMyAxOCAxM0g2cy40MTIgMi4wMjggMiAzLjUwMVYxOGMwIC4zNDkuMDU5LjY4Mi4xNDQgMS4wMDVBOC4wMDUgOC4wMDUgMCAwIDEgNCAxMmMwLTQuNDExIDMuNTg5LTggOC04czggMy41ODkgOCA4YTguMDA1IDguMDA1IDAgMCAxLTQuMTQ0IDcuMDA1elwifX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjc1OCA1SDE5LjY4bC0uODQ0IDNoLTQuODkzbC0uODk5LTNoLTIuMDg4bC0uODk5IDNINS4xNjRMNC4zMiA1SDIuMjQybC44NDQgM0gydjJoMS42NDhsLjU2MyAySDJ2MmgyLjc3M2wxLjY4OCA2aDIuMDgzbDEuOC02aDMuMzEzbDEuOCA2aDIuMDgzbDEuNjg4LTZIMjJ2LTJoLTIuMjExbC41NjMtMkgyMlY4aC0xLjA4NmwuODQ0LTN6TTUuNzI3IDEwaDMuNzI5bC0uNiAySDYuMjg5bC0uNTYyLTJ6bTEuODA0IDYuNDE3TDYuODUyIDE0aDEuNDA0bC0uNzI1IDIuNDE3ek0xMC45NDQgMTJsLjYtMmguOTEybC42IDJoLTIuMTEyem01LjUyNSA0LjQxN0wxNS43NDQgMTRoMS40MDRsLS42NzkgMi40MTd6TTE3LjcxMSAxMmgtMi41NjdsLS42LTJoMy43MjlsLS41NjIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlXb3JsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4NiAyIDIgNi40ODYgMiAxMnM0LjQ4NiAxMCAxMCAxMCAxMC00LjQ4NiAxMC0xMFMxNy41MTQgMiAxMiAyek00IDEyYzAtLjg5OS4xNTYtMS43NjIuNDMxLTIuNTY5TDYgMTFsMiAydjJsMiAyIDEgMXYxLjkzMUM3LjA2MSAxOS40MzYgNCAxNi4wNzIgNCAxMnptMTQuMzMgNC44NzNDMTcuNjc3IDE2LjM0NyAxNi42ODcgMTYgMTYgMTZ2LTFhMiAyIDAgMCAwLTItMmgtNHYtM2EyIDIgMCAwIDAgMi0yVjdoMWEyIDIgMCAwIDAgMi0ydi0uNDExQzE3LjkyOCA1Ljc3OCAyMCA4LjY1IDIwIDEyYTcuOTQ3IDcuOTQ3IDAgMCAxLTEuNjcgNC44NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpV3JlbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjEyMiAyMWMuMzc4LjM3OC44OC41ODYgMS40MTQuNTg2UzcuNTcyIDIxLjM3OCA3Ljk1IDIxbDQuMzM2LTQuMzM2YTcuNDk1IDcuNDk1IDAgMCAwIDIuMjE3LjMzMyA3LjQ0NiA3LjQ0NiAwIDAgMCA1LjMwMi0yLjE5NSA3LjQ4NCA3LjQ4NCAwIDAgMCAxLjYzMi04LjE1OGwtLjU3LTEuMzg4LTQuMjQ0IDQuMjQzLTIuMTIxLTIuMTIyIDQuMjQzLTQuMjQzLTEuMzg5LS41NzFBNy40NzggNy40NzggMCAwIDAgMTQuNDk5IDJjLTIuMDAzIDAtMy44ODYuNzgtNS4zMDEgMi4xOTZhNy40NzkgNy40NzkgMCAwIDAtMS44NjIgNy41MThMMyAxNi4wNWEyLjAwMSAyLjAwMSAwIDAgMCAwIDIuODI4TDUuMTIyIDIxem00LjU0OC04Ljc5MS0uMjU0LS42MTZhNS40ODYgNS40ODYgMCAwIDEgMS4xOTYtNS45ODMgNS40NiA1LjQ2IDAgMCAxIDQuNDEzLTEuNTg1bC0zLjM1MyAzLjM1MyA0Ljk0OSA0Ljk1IDMuMzU1LTMuMzU1YTUuNDkgNS40OSAwIDAgMS0xLjU4NyA0LjQxNmMtMS41NSAxLjU1LTMuOTY0IDIuMDI3LTUuOTg0IDEuMTk2bC0uNjE1LS4yNTUtNS4yNTQgNS4yNTZoLjAwMWwtLjAwMSAxdi0xbC0yLjEyMi0yLjEyMiA1LjI1Ni01LjI1NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlYQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjE3MiAxNi4yNDIgMTIgMTMuNDE0bDIuODI4IDIuODI4IDEuNDE0LTEuNDE0TDEzLjQxNCAxMmwyLjgyOC0yLjgyOC0xLjQxNC0xLjQxNEwxMiAxMC41ODYgOS4xNzIgNy43NTggNy43NTggOS4xNzIgMTAuNTg2IDEybC0yLjgyOCAyLjgyOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwUzE3LjUxNCAyIDEyIDIgMiA2LjQ4NiAyIDEyczQuNDg2IDEwIDEwIDEwem0wLTE4YzQuNDExIDAgOCAzLjU4OSA4IDhzLTMuNTg5IDgtOCA4LTgtMy41ODktOC04IDMuNTg5LTggOC04elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCaVggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjE5MiA2LjM0NC00LjI0MyA0LjI0Mi00LjI0Mi00LjI0Mi0xLjQxNCAxLjQxNEwxMC41MzUgMTJsLTQuMjQyIDQuMjQyIDEuNDE0IDEuNDE0IDQuMjQyLTQuMjQyIDQuMjQzIDQuMjQyIDEuNDE0LTEuNDE0TDEzLjM2NCAxMmw0LjI0Mi00LjI0MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlZZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjIgMy40IDEyIDEwLjMzMyA2LjggMy40IDUuMiA0LjYgMTAgMTFIN3YyaDR2Mkg3djJoNHY0aDJ2LTRoNHYtMmgtNHYtMmg0di0yaC0zbDQuOC02LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJpWm9vbUluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2SDl2M0g2djJoM3YzaDJ2LTNoM1Y5aC0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDJjLTQuNDExIDAtOCAzLjU4OS04IDhzMy41ODkgOCA4IDhhNy45NTIgNy45NTIgMCAwIDAgNC44OTctMS42ODhsNC4zOTYgNC4zOTYgMS40MTQtMS40MTQtNC4zOTYtNC4zOTZBNy45NTIgNy45NTIgMCAwIDAgMTggMTBjMC00LjQxMS0zLjU4OS04LTgtOHptMCAxNGMtMy4zMDkgMC02LTIuNjkxLTYtNnMyLjY5MS02IDYtNiA2IDIuNjkxIDYgNi0yLjY5MSA2LTYgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQmlab29tT3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDloOHYySDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMThhNy45NTIgNy45NTIgMCAwIDAgNC44OTctMS42ODhsNC4zOTYgNC4zOTYgMS40MTQtMS40MTQtNC4zOTYtNC4zOTZBNy45NTIgNy45NTIgMCAwIDAgMTggMTBjMC00LjQxMS0zLjU4OS04LTgtOHMtOCAzLjU4OS04IDggMy41ODkgOCA4IDh6bTAtMTRjMy4zMDkgMCA2IDIuNjkxIDYgNnMtMi42OTEgNi02IDYtNi0yLjY5MS02LTYgMi42OTEtNiA2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuIiwiaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5cclxuLyoqIEhvb2sgZm9yIGRldGVybWluaW5nIHRoZSBjdXN0b20gcHJvcGVydGllcyB0byBhZGQgdG8gYW4gQXBwIEluc2lnaHRzIHRyYWNrICovXHJcbmV4cG9ydCBjb25zdCB1c2VBcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvbnRhY3RJZDogdXNlck1ldGFkYXRhLmNvbnRhY3RJZCxcclxuICAgICAgICBhY2NvdW50SWQ6IHVzZXJNZXRhZGF0YS5hY2NvdW50SWQsXHJcbiAgICAgICAgcGVybWlzc2lvbkxldmVsOiB1c2VyTWV0YWRhdGEuYmFzZVBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IEJhc2VQZXJtaXNzaW9uTGV2ZWxbdXNlck1ldGFkYXRhLmJhc2VQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsOiB1c2VyTWV0YWRhdGEucG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IHVzZXJNZXRhZGF0YS5wb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsOiB1c2VyTWV0YWRhdGEucG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IHVzZXJNZXRhZGF0YS5wb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbDogdXNlck1ldGFkYXRhLnBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgID8gdXNlck1ldGFkYXRhLnBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsOiB1c2VyTWV0YWRhdGEucG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IHVzZXJNZXRhZGF0YS5wb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsOiB1c2VyTWV0YWRhdGEucG9ydGFsSW52b2ljZVBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgICAgICA/IHVzZXJNZXRhZGF0YS5wb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgIH07XHJcbn07XHJcbiIsImltcG9ydCB7IEZlZWRiYWNrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vVHlwZXMvRmVlZGJhY2tDYXRlZ29yeVwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXMgfSBmcm9tIFwiLi91c2VBcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXNcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgRXJyb3JJbmZvIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG4vKiogSG9vayBmb3IgYWRkaW5nIEFwcCBJbnNpZ2h0cyB0cmFja2luZyAqL1xyXG5leHBvcnQgY29uc3QgdXNlQXBwSW5zaWdodHMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBhcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXMgPSB1c2VBcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXMoKTtcclxuICAgIGNvbnN0IGFwcEluc2lnaHRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5hcHBJbnNpZ2h0cyk7XHJcblxyXG4gICAgLy8gSWYgdGhlIEFwcCBJbnNpZ2h0cyBjb3VsZCBub3QgYmUgaW5pdGlhbGlzZWRcclxuICAgIGlmICghYXBwSW5zaWdodHMpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcHBJbnNpZ2h0czogbnVsbCxcclxuICAgICAgICAgICAgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhOiBudWxsLFxyXG4gICAgICAgICAgICB0cmFja1JlbmRlckV4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE6IG51bGwsXHJcbiAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhOiBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFja3MgYW4gZXJyb3IsIHdpdGggb3VyIG1ldGFkYXRhIGF0dGFjaGVkIGFzIGN1c3RvbSBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yIHRvIHRyYWNrLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIGFwcEluc2lnaHRzPy50cmFja0V4Y2VwdGlvbihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoZXJyb3I/LnRvU3RyaW5nKCkgfHwgXCJVbmtub3duIGVycm9yXCIpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGVycm9yVHlwZTogXCJFcnJvclwiLCAuLi5hcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXMgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFja3MgYW55IGV2ZW50IChhbnl0aGluZyBvZiBpbnRlcmVzdCksIHdpdGggb3VyIG1ldGFkYXRhIGF0dGFjaGVkIGFzIGN1c3RvbSBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIG5hbWUgVW5pcXVlIG5hbWUgb2YgdGhlIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YShldmVudDogQXBwSW5zaWdodHNFdmVudCkge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihldmVudCk7XHJcbiAgICAgICAgYXBwSW5zaWdodHM/LnRyYWNrRXZlbnQoeyBuYW1lOiBldmVudC50eXBlIH0sIHsgZXZlbnQsIC4uLmFwcEluc2lnaHRzQ3VzdG9tUHJvcGVydGllcyB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyYWNrcyBhIHJlbmRlciBlcnJvciwgd2l0aCBvdXIgbWV0YWRhdGEgYXR0YWNoZWQgYXMgY3VzdG9tIHByb3BlcnRpZXMuXHJcbiAgICAgKiBAcGFyYW0gZXJyb3IgRXJyb3IgdG8gdHJhY2suXHJcbiAgICAgKiBAcGFyYW0gZXJyb3JJbmZvIFJlYWN0IGVycm9yIGluZm8uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRyYWNrUmVuZGVyRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YShlcnJvcjogRXJyb3IsIGVycm9ySW5mbzogRXJyb3JJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcblxyXG4gICAgICAgIGFwcEluc2lnaHRzPy50cmFja0V4Y2VwdGlvbihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uOiBlcnJvcixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBlcnJvclR5cGU6IFwiUmVuZGVyRXJyb3JcIiwgLi4uYXBwSW5zaWdodHNDdXN0b21Qcm9wZXJ0aWVzLCByZWFjdENvbXBvbmVudFN0YWNrOiBlcnJvckluZm8uY29tcG9uZW50U3RhY2sgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBhcHBJbnNpZ2h0cyxcclxuICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEsXHJcbiAgICAgICAgdHJhY2tSZW5kZXJFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhLFxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhLFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKiBNb2RlbCBvZiBldmVudHMgdG8gbG9nIHRvIEFwcCBJbnNpZ2h0cyAqL1xyXG5leHBvcnQgdHlwZSBBcHBJbnNpZ2h0c0V2ZW50ID1cclxuICAgIHwgeyB0eXBlOiBcIlRlcm1zIGFuZCBDb25kaXRpb25zIC0gUHJvbXB0ZWRcIiB9XHJcbiAgICB8IHsgdHlwZTogXCJUZXJtcyBhbmQgQ29uZGl0aW9ucyAtIEFjY2VwdGVkXCIgfVxyXG4gICAgfCB7IHR5cGU6IFwiRmVlZGJhY2sgUGFuZSAtIE9wZW5lZFwiIH1cclxuICAgIHwgeyB0eXBlOiBcIkZlZWRiYWNrIFBhbmUgLSBGZWVkYmFjayBjcmVhdGlvbiBzdWJtaXR0ZWRcIjsgZmVlZGJhY2tDYXRlZ29yeTogRmVlZGJhY2tDYXRlZ29yeSB9XHJcbiAgICB8IHsgdHlwZTogXCJGZWVkYmFjayBQYW5lIC0gRmVlZGJhY2sgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIjsgZmVlZGJhY2tDYXRlZ29yeTogRmVlZGJhY2tDYXRlZ29yeSB9XHJcbiAgICB8IHsgdHlwZTogXCJIb21lIC0gQ3VzdG9tZXIgQXNzZXQgdGlsZSBjbGlja2VkXCI7IHRpbGVOYW1lOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiTmF2aWdhdGlvbiBQYW5lbCAtIEN1c3RvbWVyIEFzc2V0IHRpbGUgY2xpY2tlZFwiOyB0aWxlTmFtZTogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkNyZWF0ZSBDYXNlIC0gQ2FzZSBjcmVhdGlvbiBzdWJtaXR0ZWRcIiB9XHJcbiAgICB8IHsgdHlwZTogXCJDcmVhdGUgQ2FzZSAtIENhc2UgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIjsgaW5jaWRlbnRJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgQ2FzZSAtIENhc2UgdXBkYXRlIHN1Ym1pdHRlZFwiOyBpbmNpZGVudElkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBDYXNlIC0gQ2FzZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseVwiOyBpbmNpZGVudElkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBDYXNlIC0gUG9ydGFsIENvbW1lbnQgc3VibWl0dGVkXCI7IGluY2lkZW50SWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IENhc2UgLSBQb3J0YWwgQ29tbWVudCBjcmVhdGVkIHN1Y2Nlc3NmdWxseVwiOyBpbmNpZGVudElkOiBzdHJpbmc7IGFjdGl2aXR5SWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IENhc2UgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIjsgYnV0dG9uTmFtZTogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgQ2FzZSAtIENhbGwtdG8tQWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIjsgYnV0dG9uTmFtZTogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkNyZWF0ZSBDb250YWN0IC0gQ29udGFjdCBjcmVhdGlvbiBzdWJtaXR0ZWRcIiB9XHJcbiAgICB8IHsgdHlwZTogXCJDcmVhdGUgQ29udGFjdCAtIENvbnRhY3QgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIjsgY29udGFjdElkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ29udGFjdCB1cGRhdGUgc3VibWl0dGVkXCI7IGNvbnRhY3RJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgQ29udGFjdCAtIENvbnRhY3QgdXBkYXRlZCBzdWNjZXNzZnVsbHlcIjsgY29udGFjdElkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ2FsbC10by1BY3Rpb24gc3VibWl0dGVkXCI7IGJ1dHRvbk5hbWU6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IENvbnRhY3QgLSBDYWxsLXRvLUFjdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XCI7IGJ1dHRvbk5hbWU6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IE9yZGVyIC0gT3JkZXIgdXBkYXRlIHN1Ym1pdHRlZFwiOyBvcmRlcklkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBPcmRlciAtIE9yZGVyIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5XCI7IG9yZGVySWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IE5ldHdvcmsgT3JkZXIgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIjsgYnV0dG9uTmFtZTogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgTmV0d29yayBPcmRlciAtIENhbGwtdG8tQWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIjsgYnV0dG9uTmFtZTogc3RyaW5nIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJFZGl0IE5ldHdvcmsgT3JkZXIgLSBOZXR3b3JrIE9yZGVyIFN0YWdlIGNsaWNrZWRcIjtcclxuICAgICAgICAgIG5ldHdvcmtPcmRlcklkOiBzdHJpbmc7XHJcbiAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZUlkOiBzdHJpbmc7XHJcbiAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZVR5cGU6IHN0cmluZztcclxuICAgICAgICAgIG5ldHdvcmtPcmRlclN0YWdlU3RhdHVzOiBzdHJpbmc7XHJcbiAgICAgIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgTmV0d29yayBPcmRlciAtIFBvcnRhbCBDb21tZW50IHN1Ym1pdHRlZFwiOyBuZXR3b3JrT3JkZXJJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgTmV0d29yayBPcmRlciAtIFBvcnRhbCBDb21tZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCI7IG5ldHdvcmtPcmRlcklkOiBzdHJpbmc7IGFjdGl2aXR5SWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IE5ldHdvcmsgT3JkZXIgLSBOZXR3b3JrIE9yZGVyIHVwZGF0ZSBzdWJtaXR0ZWRcIjsgbmV0d29ya09yZGVySWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IE5ldHdvcmsgT3JkZXIgLSBOZXR3b3JrIE9yZGVyIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5XCI7IG5ldHdvcmtPcmRlcklkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBQcm9qZWN0IC0gVGFiIGNoYW5nZVwiOyB0YWJOYW1lOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBQcm9qZWN0IC0gUG9ydGFsIENvbW1lbnQgc3VibWl0dGVkXCI7IHByb2plY3RJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgUHJvamVjdCAtIFBvcnRhbCBDb21tZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCI7IHByb2plY3RJZDogc3RyaW5nOyBhY3Rpdml0eUlkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiRWRpdCBQcm9qZWN0IExvZyAtIFBvcnRhbCBDb21tZW50IHN1Ym1pdHRlZFwiOyBwcm9qZWN0TG9nSWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IFByb2plY3QgTG9nIC0gUG9ydGFsIENvbW1lbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIjsgcHJvamVjdExvZ0lkOiBzdHJpbmc7IGFjdGl2aXR5SWQ6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJFZGl0IFByb2plY3QgLSBQcm9qZWN0IFRhc2sgdXBkYXRlIHN1Ym1pdHRlZFwiOyBwcm9qZWN0SWQ6IHN0cmluZzsgcHJvamVjdFRhc2tJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgUHJvamVjdCAtIFByb2plY3QgVGFzayB1cGRhdGVkIHN1Y2Nlc3NmdWxseVwiOyBwcm9qZWN0SWQ6IHN0cmluZzsgcHJvamVjdFRhc2tJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgUHJvamVjdCAtIFByb2plY3QgVGFzayBjb21wbGV0aW9uIHN1Ym1pdHRlZFwiOyBwcm9qZWN0SWQ6IHN0cmluZzsgcHJvamVjdFRhc2tJZDogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIkVkaXQgUHJvamVjdCAtIFByb2plY3QgVGFzayBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XCI7IHByb2plY3RJZDogc3RyaW5nOyBwcm9qZWN0VGFza0lkOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiTWFuYWdlbWVudCBQYW5lbCAtIEFkdmFuY2VkIEZpbHRlciBQYW5lbCBvcGVuZWRcIiB9XHJcbiAgICB8IHsgdHlwZTogXCJNYW5hZ2VtZW50IFBhbmVsIC0gU2VhcmNoIHN1Ym1pdHRlZFwiOyBzZWFyY2hUZXJtOiBzdHJpbmcgfVxyXG4gICAgfCB7IHR5cGU6IFwiTWFuYWdlbWVudCBQYW5lbCAtIEZpbHRlciBUaWxlIGNsaWNrZWRcIjsgdGlsZU5hbWU6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJBY2Nlc3MgRGVuaWVkXCIgfVxyXG4gICAgfCB7IHR5cGU6IFwiVGVhY2hpbmcgQnViYmxlIC0gQ29tcGxldGVkXCI7IHRlYWNoaW5nQnViYmxlTmFtZTogc3RyaW5nIH1cclxuICAgIHwgeyB0eXBlOiBcIlRlYWNoaW5nIEJ1YmJsZSAtIERpc21pc3NlZFwiOyB0ZWFjaGluZ0J1YmJsZU5hbWU6IHN0cmluZyB9XHJcbiAgICB8IHsgdHlwZTogXCJGaWx0ZXIgTWVudSAtIEFwcGxpZWRcIjsgdGFibGVOYW1lOiBzdHJpbmc7IGNvbHVtbk5hbWU6IHN0cmluZzsgb3BlcmF0b3I6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xyXG4iLCJleHBvcnQgdHlwZSBJbmZvQ2FyZERlc2NyaXB0aW9uID0ge1xyXG4gICAgcHJpbWFyeVRleHQ6IHN0cmluZztcclxuICAgIHNlY29uZGFyeVRleHQ6IHN0cmluZztcclxuICAgIGFkZGl0aW9uYWxGaWVsZHM6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcclxuICAgIGljb246IFJlYWN0LlJlYWN0Tm9kZTtcclxufTtcclxuXHJcbi8qKiBDb21wb25lbnQgb2YgYSAnY2FyZCcgc2hvd2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uICovXHJcbmV4cG9ydCBjb25zdCBJbmZvQ2FyZDogUmVhY3QuRkM8eyBpbmZvOiBJbmZvQ2FyZERlc2NyaXB0aW9uIH0+ID0gKHByb3BzKSA9PiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImluZm8tY2FyZFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmZvLWNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmZvLWNhcmQtaWNvblwiPntwcm9wcy5pbmZvLmljb259PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5mby1jYXJkLWhlYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmZvLWNhcmQtcHJpbWFyeS10ZXh0XCI+e3Byb3BzLmluZm8ucHJpbWFyeVRleHR9PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImluZm8tY2FyZC1zZWNvbmRhcnktdGV4dFwiPntwcm9wcy5pbmZvLnNlY29uZGFyeVRleHR9PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImluZm8tY2FyZC1hZGRpdGlvbmFsLWZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAge3Byb3BzLmluZm8uYWRkaXRpb25hbEZpZWxkcy5tYXAoKGFmKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPHAga2V5PXthZi5uYW1lfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57YWYubmFtZX08L3N0cm9uZz46IDxzcGFuPnthZi52YWx1ZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgRXJyb3JJbmZvLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCaUVycm9yIH0gZnJvbSBcInJlYWN0LWljb25zL2JpXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IEluZm9DYXJkIH0gZnJvbSBcIi4vSW5mb0NhcmRcIjtcclxuXHJcbi8qKiBSZWFjdCBwcm9wZXJ0aWVzIG9mIHRoZSA8RXJyb3JCb3VuZGFyeT4gY29tcG9uZW50ICovXHJcbnR5cGUgRXJyb3JCb3VuZGFyeVByb3BzID0ge1xyXG4gICAgLyoqIENoaWxkcmVuIG9mIHRoZSBjb21wb25lbnQuICovXHJcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIHwgUmVhY3QuUmVhY3ROb2RlW107XHJcblxyXG4gICAgLyoqIERlZmluZXMgdGhlIHJlbmRlciB0byBwZXJmb3JtIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgcmVuZGVyaW5nIGNoaWxkcmVuIGNvbXBvbmVudHMgKi9cclxuICAgIGN1c3RvbUVycm9yRmFsbGJhY2tSZW5kZXI/OiAobGF0ZXN0RXJyb3I6IHsgZXJyb3I6IEVycm9yOyBlcnJvckluZm86IFJlYWN0LkVycm9ySW5mbyB9KSA9PiBSZWFjdC5SZWFjdE5vZGU7XHJcbn07XHJcblxyXG4vKiogUmVhY3QgRXJyb3IgQm91bmRhcnkgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWJvdW5kYXJpZXMuaHRtbCAqL1xyXG5leHBvcnQgY29uc3QgRXJyb3JCb3VuZGFyeTogUmVhY3QuRkM8RXJyb3JCb3VuZGFyeVByb3BzPiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgYXBwSW5zaWdodHMgPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPEVycm9yQm91bmRhcnlJbm5lclxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIG9uRXJyb3I9eyhlcnJvciwgZXJyb3JJbmZvKSA9PiBhcHBJbnNpZ2h0cy50cmFja1JlbmRlckV4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvciwgZXJyb3JJbmZvKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICA8L0Vycm9yQm91bmRhcnlJbm5lcj5cclxuICAgICk7XHJcbn07XHJcblxyXG4vKiogUmVhY3QgcHJvcHMgb2YgdGhlIDxFcnJvckJvdW5kYXJ5SW5uZXI+IGNvbXBvbmVudCAqL1xyXG50eXBlIEVycm9yQm91bmRhcnlJbm5lclByb3BzID0gRXJyb3JCb3VuZGFyeVByb3BzICYgeyBvbkVycm9yOiAoZXJyb3I6IEVycm9yLCBlcnJvckluZm86IEVycm9ySW5mbykgPT4gdm9pZCB9O1xyXG5cclxuLyoqIFJlYWN0IHN0YXRlIG9mIHRoZSA8RXJyb3JCb3VuZGFyeUlubmVyPiBjb21wb25lbnQgKi9cclxudHlwZSBFcnJvckJvdW5kYXJ5SW5uZXJTdGF0ZSA9IHtcclxuICAgIC8qKiBMYXRlc3QgZXJyb3IgdG8gb2NjdXIgKi9cclxuICAgIGxhdGVzdEVycm9yPzogeyBlcnJvcjogRXJyb3I7IGVycm9ySW5mbzogUmVhY3QuRXJyb3JJbmZvIH07XHJcbn07XHJcblxyXG4vKiogSW5uZXIgY29tcG9uZW50IG9mIGEgUmVhY3QgRXJyb3IgQm91bmRhcnkgKHVzaW5nIGNsYXNzIGJhc2VkIGNvbXBvbmVudCkgKi9cclxuY2xhc3MgRXJyb3JCb3VuZGFyeUlubmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PEVycm9yQm91bmRhcnlJbm5lclByb3BzLCBFcnJvckJvdW5kYXJ5SW5uZXJTdGF0ZT4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsc2VzIGEgbmV3IGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIHByb3BzIFByb3BlcnRpZXMgb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJvcHM6IEVycm9yQm91bmRhcnlJbm5lclByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBsYXRlc3RFcnJvcjogdW5kZWZpbmVkLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBwdWJsaWMgY29tcG9uZW50RGlkQ2F0Y2goZXJyb3I6IEVycm9yLCBlcnJvckluZm86IFJlYWN0LkVycm9ySW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsYXRlc3RFcnJvcjogeyBlcnJvciwgZXJyb3JJbmZvIH0gfSk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkVycm9yKGVycm9yLCBlcnJvckluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgICAgIC8vIElmIGFuIGVycm9yIGhhcyBvY2N1cnJlZFxyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxhdGVzdEVycm9yKSB7XHJcbiAgICAgICAgICAgIC8vIElmIGEgY3VzdG9tIHJlbmRlciBmb3IgYW4gZXJyb3IgZmFsbGJhY2sgaXMgZGVmaW5lZFxyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5jdXN0b21FcnJvckZhbGxiYWNrUmVuZGVyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jdXN0b21FcnJvckZhbGxiYWNrUmVuZGVyPy4odGhpcy5zdGF0ZS5sYXRlc3RFcnJvcik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0RXJyb3JGYWxsYmFja1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5sYXRlc3RFcnJvci5lcnJvcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JJbmZvPXt0aGlzLnN0YXRlLmxhdGVzdEVycm9yLmVycm9ySW5mb31cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRWxzZTsgcmVuZGVyIHRoZSBjaGlsZHJlbiBhcyBub3JtYWxcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgIH1cclxufVxyXG5cclxuLyoqIENvbXBvbmVudCBkaXNwbGF5aW5nIGEgdHlwaWNhbCBlcnJvciBtZXNzYWdlICAqL1xyXG5leHBvcnQgY29uc3QgRGVmYXVsdEVycm9yRmFsbGJhY2s6IFJlYWN0LkZDPHsgZXJyb3I/OiBFcnJvcjsgZXJyb3JJbmZvPzogRXJyb3JJbmZvIH0+ID0gKHByb3BzKSA9PiB7XHJcbiAgICBjb25zdCBbaXNIb3ZlcmVkLCBzZXRJc0hvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZXJyb3ItZmFsbGJhY2tcIlxyXG4gICAgICAgICAgICBvbk1vdXNlT3Zlcj17KCkgPT4gc2V0SXNIb3ZlcmVkKHRydWUpfVxyXG4gICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldElzSG92ZXJlZChmYWxzZSl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8QmlFcnJvciAvPiBFcnJvciBvY2N1cnJlZFxyXG4gICAgICAgICAgICB7aXNIb3ZlcmVkICYmIChcclxuICAgICAgICAgICAgICAgIDxJbmZvQ2FyZFxyXG4gICAgICAgICAgICAgICAgICAgIGluZm89e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogPEJpRXJyb3IgLz4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBcIkVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IHByb3BzLmVycm9yPy5uYW1lIHx8IFwiRXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbEZpZWxkczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTWVzc2FnZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwcm9wcy5lcnJvcj8ubWVzc2FnZSB8fCBcIm51bGxcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTdGFja1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwcm9wcy5lcnJvcj8uc3RhY2sgfHwgXCJudWxsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ29tcG9uZW50IFN0YWNrXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHByb3BzLmVycm9ySW5mbz8uY29tcG9uZW50U3RhY2sgfHwgXCJudWxsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ2F1c2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcHJvcHMuZXJyb3I/LmNhdXNlPy50b1N0cmluZygpIHx8IFwibnVsbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICApO1xyXG59O1xyXG4iLCJjb25zdCBwb3NpdGlvbk1hcCA9IFsnVG9wJywgJ1JpZ2h0JywgJ0JvdHRvbScsICdMZWZ0J107XG5mdW5jdGlvbiBnZW5lcmF0ZVN0eWxlcyhwcm9wZXJ0eSwgc3VmZml4LCAuLi52YWx1ZXMpIHtcbiAgY29uc3QgW2ZpcnN0VmFsdWUsIHNlY29uZFZhbHVlID0gZmlyc3RWYWx1ZSwgdGhpcmRWYWx1ZSA9IGZpcnN0VmFsdWUsIGZvdXJ0aFZhbHVlID0gc2Vjb25kVmFsdWVdID0gdmFsdWVzO1xuICBjb25zdCB2YWx1ZXNXaXRoRGVmYXVsdHMgPSBbZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIHRoaXJkVmFsdWUsIGZvdXJ0aFZhbHVlXTtcbiAgY29uc3Qgc3R5bGVzID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzV2l0aERlZmF1bHRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHZhbHVlc1dpdGhEZWZhdWx0c1tpXSB8fCB2YWx1ZXNXaXRoRGVmYXVsdHNbaV0gPT09IDApIHtcbiAgICAgIGNvbnN0IG5ld0tleSA9IHByb3BlcnR5ICsgcG9zaXRpb25NYXBbaV0gKyBzdWZmaXg7XG4gICAgICBzdHlsZXNbbmV3S2V5XSA9IHZhbHVlc1dpdGhEZWZhdWx0c1tpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0eWxlcztcbn1cblxuZXhwb3J0IHsgZ2VuZXJhdGVTdHlsZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdlbmVyYXRlU3R5bGVzLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGdlbmVyYXRlU3R5bGVzIH0gZnJvbSAnLi9nZW5lcmF0ZVN0eWxlcy5lc20uanMnO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIENTUyBzcGVjIGNvbmZvcm1hbnQgZXhwYW5zaW9uIGZvciBcImJvcmRlcldpZHRoXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogICBib3JkZXJXaWR0aCgnMTBweCcpXG4gKiAgIGJvcmRlcldpZHRoKCcxMHB4JywgJzVweCcpXG4gKiAgIGJvcmRlcldpZHRoKCcycHgnLCAnNHB4JywgJzhweCcpXG4gKiAgIGJvcmRlcldpZHRoKCcxcHgnLCAwLCAnM3B4JywgJzRweCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9ib3JkZXItd2lkdGhcbiAqL1xuZnVuY3Rpb24gYm9yZGVyV2lkdGgoLi4udmFsdWVzKSB7XG4gIHJldHVybiBnZW5lcmF0ZVN0eWxlcygnYm9yZGVyJywgJ1dpZHRoJywgLi4udmFsdWVzKTtcbn1cblxuZXhwb3J0IHsgYm9yZGVyV2lkdGggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvcmRlcldpZHRoLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGdlbmVyYXRlU3R5bGVzIH0gZnJvbSAnLi9nZW5lcmF0ZVN0eWxlcy5lc20uanMnO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIENTUyBzcGVjIGNvbmZvcm1hbnQgZXhwYW5zaW9uIGZvciBcImJvcmRlclN0eWxlXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogIGJvcmRlclN0eWxlKCdzb2xpZCcpXG4gKiAgYm9yZGVyU3R5bGUoJ3NvbGlkJywgJ2Rhc2hlZCcpXG4gKiAgYm9yZGVyU3R5bGUoJ3NvbGlkJywgJ2Rhc2hlZCcsICdkb3R0ZWQnKVxuICogIGJvcmRlclN0eWxlKCdzb2xpZCcsICdkYXNoZWQnLCAnZG90dGVkJywgJ2RvdWJsZScpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9ib3JkZXItc3R5bGVcbiAqL1xuZnVuY3Rpb24gYm9yZGVyU3R5bGUoLi4udmFsdWVzKSB7XG4gIHJldHVybiBnZW5lcmF0ZVN0eWxlcygnYm9yZGVyJywgJ1N0eWxlJywgLi4udmFsdWVzKTtcbn1cblxuZXhwb3J0IHsgYm9yZGVyU3R5bGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvcmRlclN0eWxlLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGdlbmVyYXRlU3R5bGVzIH0gZnJvbSAnLi9nZW5lcmF0ZVN0eWxlcy5lc20uanMnO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIENTUyBzcGVjIGNvbmZvcm1hbnQgZXhwYW5zaW9uIGZvciBcImJvcmRlckNvbG9yXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogIGJvcmRlckNvbG9yKCdyZWQnKVxuICogIGJvcmRlckNvbG9yKCdyZWQnLCAnYmx1ZScpXG4gKiAgYm9yZGVyQ29sb3IoJ3JlZCcsICdibHVlJywgJ2dyZWVuJylcbiAqICBib3JkZXJDb2xvcigncmVkJywgJ2JsdWUnLCAnZ3JlZW4nLCAneWVsbG93JylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2JvcmRlci1jb2xvclxuICovXG5mdW5jdGlvbiBib3JkZXJDb2xvciguLi52YWx1ZXMpIHtcbiAgcmV0dXJuIGdlbmVyYXRlU3R5bGVzKCdib3JkZXInLCAnQ29sb3InLCAuLi52YWx1ZXMpO1xufVxuXG5leHBvcnQgeyBib3JkZXJDb2xvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9yZGVyQ29sb3IuZXNtLmpzLm1hcFxuIiwiY29uc3QgTElORV9TVFlMRVMgPSBbJ25vbmUnLCAnaGlkZGVuJywgJ2RvdHRlZCcsICdkYXNoZWQnLCAnc29saWQnLCAnZG91YmxlJywgJ2dyb292ZScsICdyaWRnZScsICdpbnNldCcsICdvdXRzZXQnXTtcbmZ1bmN0aW9uIGlzQm9yZGVyU3R5bGUodmFsdWUpIHtcbiAgcmV0dXJuIExJTkVfU1RZTEVTLmluY2x1ZGVzKHZhbHVlKTtcbn1cblxuZXhwb3J0IHsgaXNCb3JkZXJTdHlsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgYm9yZGVyV2lkdGggfSBmcm9tICcuL2JvcmRlcldpZHRoLmVzbS5qcyc7XG5pbXBvcnQgeyBib3JkZXJTdHlsZSB9IGZyb20gJy4vYm9yZGVyU3R5bGUuZXNtLmpzJztcbmltcG9ydCB7IGJvcmRlckNvbG9yIH0gZnJvbSAnLi9ib3JkZXJDb2xvci5lc20uanMnO1xuaW1wb3J0IHsgaXNCb3JkZXJTdHlsZSB9IGZyb20gJy4vdXRpbHMuZXNtLmpzJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBleHBhbnNpb24gZm9yIFwiYm9yZGVyXCIgdG8gYWxsIHNpZGVzIG9mIGFuIGVsZW1lbnQsIGl0J3Mgc2ltcGxpZmllZCAtIGNoZWNrIHVzYWdlIGV4YW1wbGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgYm9yZGVyKCcycHgnKVxuICogIGJvcmRlcignc29saWQnKVxuICogIGJvcmRlcignMnB4JywgJ3NvbGlkJylcbiAqICBib3JkZXIoJ3NvbGlkJywgJzJweCcpXG4gKiAgYm9yZGVyKCcycHgnLCAnc29saWQnLCAncmVkJylcbiAqICBib3JkZXIoJ3NvbGlkJywgJzJweCcsICdyZWQnKVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvYm9yZGVyXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgYm9yZGVyOiAnMnB4IHNvbGlkIHJlZCcgfWAgaW5zdGVhZCBhcyBHcmlmZmVsIHN1cHBvcnRzIENTUyBzaG9ydGhhbmRzIG5vd1xuICovXG5mdW5jdGlvbiBib3JkZXIoLi4udmFsdWVzKSB7XG4gIGlmIChpc0JvcmRlclN0eWxlKHZhbHVlc1swXSkpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgYm9yZGVyU3R5bGUodmFsdWVzWzBdKSwgdmFsdWVzWzFdICYmIGJvcmRlcldpZHRoKHZhbHVlc1sxXSksIHZhbHVlc1syXSAmJiBib3JkZXJDb2xvcih2YWx1ZXNbMl0pKTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgYm9yZGVyV2lkdGgodmFsdWVzWzBdKSwgdmFsdWVzWzFdICYmIGJvcmRlclN0eWxlKHZhbHVlc1sxXSksIHZhbHVlc1syXSAmJiBib3JkZXJDb2xvcih2YWx1ZXNbMl0pKTtcbn1cblxuZXhwb3J0IHsgYm9yZGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib3JkZXIuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgaXNCb3JkZXJTdHlsZSB9IGZyb20gJy4vdXRpbHMuZXNtLmpzJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBleHBhbnNpb24gZm9yIFwiYm9yZGVyLWxlZnRcIiwgaXQncyBzaW1wbGlmaWVkIC0gY2hlY2sgdXNhZ2UgZXhhbXBsZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqICBib3JkZXJMZWZ0KCcycHgnKVxuICogIGJvcmRlckxlZnQoJ3NvbGlkJylcbiAqICBib3JkZXJMZWZ0KCcycHgnLCAnc29saWQnKVxuICogIGJvcmRlckxlZnQoJ3NvbGlkJywgJzJweCcpXG4gKiAgYm9yZGVyTGVmdCgnMnB4JywgJ3NvbGlkJywgJ3JlZCcpXG4gKiAgYm9yZGVyTGVmdCgnc29saWQnLCAnMnB4JywgJ3JlZCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9ib3JkZXItbGVmdFxuICpcbiAqIEBkZXByZWNhdGVkIEp1c3QgdXNlIGB7IGJvcmRlckxlZnQ6ICcycHggc29saWQgcmVkJyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGJvcmRlckxlZnQoLi4udmFsdWVzKSB7XG4gIGlmIChpc0JvcmRlclN0eWxlKHZhbHVlc1swXSkpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgICBib3JkZXJMZWZ0U3R5bGU6IHZhbHVlc1swXVxuICAgIH0sIHZhbHVlc1sxXSAmJiB7XG4gICAgICBib3JkZXJMZWZ0V2lkdGg6IHZhbHVlc1sxXVxuICAgIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgICBib3JkZXJMZWZ0Q29sb3I6IHZhbHVlc1syXVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHtcbiAgICBib3JkZXJMZWZ0V2lkdGg6IHZhbHVlc1swXVxuICB9LCB2YWx1ZXNbMV0gJiYge1xuICAgIGJvcmRlckxlZnRTdHlsZTogdmFsdWVzWzFdXG4gIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgYm9yZGVyTGVmdENvbG9yOiB2YWx1ZXNbMl1cbiAgfSk7XG59XG5cbmV4cG9ydCB7IGJvcmRlckxlZnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvcmRlckxlZnQuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgaXNCb3JkZXJTdHlsZSB9IGZyb20gJy4vdXRpbHMuZXNtLmpzJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBleHBhbnNpb24gZm9yIFwiYm9yZGVyLUJvdHRvbVwiLCBpdCdzIHNpbXBsaWZpZWQgLSBjaGVjayB1c2FnZSBleGFtcGxlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogIGJvcmRlckJvdHRvbSgnMnB4JylcbiAqICBib3JkZXJCb3R0b20oJ3NvbGlkJylcbiAqICBib3JkZXJCb3R0b20oJzJweCcsICdzb2xpZCcpXG4gKiAgYm9yZGVyQm90dG9tKCdzb2xpZCcsICcycHgnKVxuICogIGJvcmRlckJvdHRvbSgnMnB4JywgJ3NvbGlkJywgJ3JlZCcpXG4gKiAgYm9yZGVyQm90dG9tKCdzb2xpZCcsICcycHgnLCAncmVkJylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2JvcmRlci1ib3R0b21cbiAqXG4gKiBAZGVwcmVjYXRlZCBKdXN0IHVzZSBgeyBib3JkZXJCb3R0b206ICcycHggc29saWQgcmVkJyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGJvcmRlckJvdHRvbSguLi52YWx1ZXMpIHtcbiAgaWYgKGlzQm9yZGVyU3R5bGUodmFsdWVzWzBdKSkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGJvcmRlckJvdHRvbVN0eWxlOiB2YWx1ZXNbMF1cbiAgICB9LCB2YWx1ZXNbMV0gJiYge1xuICAgICAgYm9yZGVyQm90dG9tV2lkdGg6IHZhbHVlc1sxXVxuICAgIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgICBib3JkZXJCb3R0b21Db2xvcjogdmFsdWVzWzJdXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgIGJvcmRlckJvdHRvbVdpZHRoOiB2YWx1ZXNbMF1cbiAgfSwgdmFsdWVzWzFdICYmIHtcbiAgICBib3JkZXJCb3R0b21TdHlsZTogdmFsdWVzWzFdXG4gIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgYm9yZGVyQm90dG9tQ29sb3I6IHZhbHVlc1syXVxuICB9KTtcbn1cblxuZXhwb3J0IHsgYm9yZGVyQm90dG9tIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib3JkZXJCb3R0b20uZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgaXNCb3JkZXJTdHlsZSB9IGZyb20gJy4vdXRpbHMuZXNtLmpzJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBleHBhbnNpb24gZm9yIFwiYm9yZGVyLXJpZ2h0XCIsIGl0J3Mgc2ltcGxpZmllZCAtIGNoZWNrIHVzYWdlIGV4YW1wbGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgYm9yZGVyUmlnaHQoJzJweCcpXG4gKiAgYm9yZGVyUmlnaHQoJ3NvbGlkJylcbiAqICBib3JkZXJSaWdodCgnMnB4JywgJ3NvbGlkJylcbiAqICBib3JkZXJSaWdodCgnc29saWQnLCAnMnB4JylcbiAqICBib3JkZXJSaWdodCgnMnB4JywgJ3NvbGlkJywgJ3JlZCcpXG4gKiAgYm9yZGVyUmlnaHQoJ3NvbGlkJywgJzJweCcsICdyZWQnKVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvYm9yZGVyLXJpZ2h0XG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgYm9yZGVyUmlnaHQ6ICcycHggc29saWQgcmVkJyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGJvcmRlclJpZ2h0KC4uLnZhbHVlcykge1xuICBpZiAoaXNCb3JkZXJTdHlsZSh2YWx1ZXNbMF0pKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgICAgYm9yZGVyUmlnaHRTdHlsZTogdmFsdWVzWzBdXG4gICAgfSwgdmFsdWVzWzFdICYmIHtcbiAgICAgIGJvcmRlclJpZ2h0V2lkdGg6IHZhbHVlc1sxXVxuICAgIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgICBib3JkZXJSaWdodENvbG9yOiB2YWx1ZXNbMl1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgYm9yZGVyUmlnaHRXaWR0aDogdmFsdWVzWzBdXG4gIH0sIHZhbHVlc1sxXSAmJiB7XG4gICAgYm9yZGVyUmlnaHRTdHlsZTogdmFsdWVzWzFdXG4gIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgYm9yZGVyUmlnaHRDb2xvcjogdmFsdWVzWzJdXG4gIH0pO1xufVxuXG5leHBvcnQgeyBib3JkZXJSaWdodCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9yZGVyUmlnaHQuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgaXNCb3JkZXJTdHlsZSB9IGZyb20gJy4vdXRpbHMuZXNtLmpzJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBleHBhbnNpb24gZm9yIFwiYm9yZGVyLVRvcFwiLCBpdCdzIHNpbXBsaWZpZWQgLSBjaGVjayB1c2FnZSBleGFtcGxlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogIGJvcmRlclRvcCgnMnB4JylcbiAqICBib3JkZXJUb3AoJ3NvbGlkJylcbiAqICBib3JkZXJUb3AoJzJweCcsICdzb2xpZCcpXG4gKiAgYm9yZGVyVG9wKCdzb2xpZCcsICcycHgnKVxuICogIGJvcmRlclRvcCgnMnB4JywgJ3NvbGlkJywgJ3JlZCcpXG4gKiAgYm9yZGVyVG9wKCdzb2xpZCcsICcycHgnLCAncmVkJylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2JvcmRlci10b3BcbiAqXG4gKiBAZGVwcmVjYXRlZCBKdXN0IHVzZSBgeyBib3JkZXJUb3A6ICcycHggc29saWQgcmVkJyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGJvcmRlclRvcCguLi52YWx1ZXMpIHtcbiAgaWYgKGlzQm9yZGVyU3R5bGUodmFsdWVzWzBdKSkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGJvcmRlclRvcFN0eWxlOiB2YWx1ZXNbMF1cbiAgICB9LCB2YWx1ZXNbMV0gJiYge1xuICAgICAgYm9yZGVyVG9wV2lkdGg6IHZhbHVlc1sxXVxuICAgIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgICBib3JkZXJUb3BDb2xvcjogdmFsdWVzWzJdXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgIGJvcmRlclRvcFdpZHRoOiB2YWx1ZXNbMF1cbiAgfSwgdmFsdWVzWzFdICYmIHtcbiAgICBib3JkZXJUb3BTdHlsZTogdmFsdWVzWzFdXG4gIH0sIHZhbHVlc1syXSAmJiB7XG4gICAgYm9yZGVyVG9wQ29sb3I6IHZhbHVlc1syXVxuICB9KTtcbn1cblxuZXhwb3J0IHsgYm9yZGVyVG9wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib3JkZXJUb3AuZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBDU1Mgc3BlYyBjb25mb3JtYW50IGV4cGFuc2lvbiBmb3IgXCJib3JkZXJSYWRpdXNcIi4gXCIvXCIgaXMgbm90IHN1cHBvcnRlZCwgcGxlYXNlIHVzZSBDU1NcbiAqIGxvbmdoYW5kcyBkaXJlY3RseS5cbiAqXG4gKiBAZXhhbXBsZVxuICogICBib3JkZXJSYWRpdXMoJzEwcHgnKVxuICogICBib3JkZXJSYWRpdXMoJzEwcHgnLCAnNSUnKVxuICogICBib3JkZXJSYWRpdXMoJzJweCcsICc0cHgnLCAnOHB4JylcbiAqICAgYm9yZGVyUmFkaXVzKCcxcHgnLCAwLCAnM3B4JywgJzRweCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9ib3JkZXItcmFkaXVzXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgYm9yZGVyUmFkaXVzOiAnMTBweCA1JSA4cHggNHB4JyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGJvcmRlclJhZGl1cyh2YWx1ZTEsIHZhbHVlMiA9IHZhbHVlMSwgdmFsdWUzID0gdmFsdWUxLCB2YWx1ZTQgPSB2YWx1ZTIpIHtcbiAgcmV0dXJuIHtcbiAgICBib3JkZXJCb3R0b21SaWdodFJhZGl1czogdmFsdWUzLFxuICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IHZhbHVlNCxcbiAgICBib3JkZXJUb3BSaWdodFJhZGl1czogdmFsdWUyLFxuICAgIGJvcmRlclRvcExlZnRSYWRpdXM6IHZhbHVlMVxuICB9O1xufVxuXG5leHBvcnQgeyBib3JkZXJSYWRpdXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvcmRlclJhZGl1cy5lc20uanMubWFwXG4iLCJjb25zdCBpc1VuaXQgPSB2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIC8oXFxkKyhcXHcrfCUpKS8udGVzdCh2YWx1ZSk7XG5jb25zdCBpc1VuaXRsZXNzID0gdmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiAhTnVtYmVyLmlzTmFOKHZhbHVlKTtcbmNvbnN0IGlzSW5pdGlhbCA9IHZhbHVlID0+IHZhbHVlID09PSAnaW5pdGlhbCc7XG5jb25zdCBpc0F1dG8gPSB2YWx1ZSA9PiB2YWx1ZSA9PT0gJ2F1dG8nO1xuY29uc3QgaXNOb25lID0gdmFsdWUgPT4gdmFsdWUgPT09ICdub25lJztcbmNvbnN0IHdpZHRoUmVzZXJ2ZWRLZXlzID0gWydjb250ZW50JywgJ2ZpdC1jb250ZW50JywgJ21heC1jb250ZW50JywgJ21pbi1jb250ZW50J107XG5jb25zdCBpc1dpZHRoID0gdmFsdWUgPT4gd2lkdGhSZXNlcnZlZEtleXMuc29tZShrZXkgPT4gdmFsdWUgPT09IGtleSkgfHwgaXNVbml0KHZhbHVlKTtcbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgQ1NTIHNwZWMgY29uZm9ybWFudCBleHBhbnNpb24gZm9yIFwiZmxleFwiLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGZsZXgoJ2F1dG8nKVxuICogICBmbGV4KDEsICcyLjVyZW0nKVxuICogICBmbGV4KDAsIDAsICdhdXRvJylcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mbGV4XG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgZmxleDogJzEgMSAwJyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGZsZXgoLi4udmFsdWVzKSB7XG4gIGNvbnN0IGlzT25lVmFsdWVTeW50YXggPSB2YWx1ZXMubGVuZ3RoID09PSAxO1xuICBjb25zdCBpc1R3b1ZhbHVlU3ludGF4ID0gdmFsdWVzLmxlbmd0aCA9PT0gMjtcbiAgY29uc3QgaXNUaHJlZVZhbHVlU3ludGF4ID0gdmFsdWVzLmxlbmd0aCA9PT0gMztcbiAgaWYgKGlzT25lVmFsdWVTeW50YXgpIHtcbiAgICBjb25zdCBbZmlyc3RWYWx1ZV0gPSB2YWx1ZXM7XG4gICAgaWYgKGlzSW5pdGlhbChmaXJzdFZhbHVlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmxleEdyb3c6IDAsXG4gICAgICAgIGZsZXhTaHJpbms6IDEsXG4gICAgICAgIGZsZXhCYXNpczogJ2F1dG8nXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoaXNBdXRvKGZpcnN0VmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgZmxleFNocmluazogMSxcbiAgICAgICAgZmxleEJhc2lzOiAnYXV0bydcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChpc05vbmUoZmlyc3RWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZsZXhHcm93OiAwLFxuICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICBmbGV4QmFzaXM6ICdhdXRvJ1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGlzVW5pdGxlc3MoZmlyc3RWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZsZXhHcm93OiBmaXJzdFZhbHVlLFxuICAgICAgICBmbGV4U2hyaW5rOiAxLFxuICAgICAgICBmbGV4QmFzaXM6IDBcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChpc1dpZHRoKGZpcnN0VmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgZmxleFNocmluazogMSxcbiAgICAgICAgZmxleEJhc2lzOiBmaXJzdFZhbHVlXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoaXNUd29WYWx1ZVN5bnRheCkge1xuICAgIGNvbnN0IFtmaXJzdFZhbHVlLCBzZWNvbmRWYWx1ZV0gPSB2YWx1ZXM7XG4gICAgaWYgKGlzVW5pdGxlc3Moc2Vjb25kVmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGV4R3JvdzogZmlyc3RWYWx1ZSxcbiAgICAgICAgZmxleFNocmluazogc2Vjb25kVmFsdWUsXG4gICAgICAgIGZsZXhCYXNpczogMFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGlzV2lkdGgoc2Vjb25kVmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGV4R3JvdzogZmlyc3RWYWx1ZSxcbiAgICAgICAgZmxleFNocmluazogMSxcbiAgICAgICAgZmxleEJhc2lzOiBzZWNvbmRWYWx1ZVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzVGhyZWVWYWx1ZVN5bnRheCkge1xuICAgIGNvbnN0IFtmaXJzdFZhbHVlLCBzZWNvbmRWYWx1ZSwgdGhpcmRWYWx1ZV0gPSB2YWx1ZXM7XG4gICAgaWYgKGlzVW5pdGxlc3MoZmlyc3RWYWx1ZSkgJiYgaXNVbml0bGVzcyhzZWNvbmRWYWx1ZSkgJiYgKGlzQXV0byh0aGlyZFZhbHVlKSB8fCBpc1dpZHRoKHRoaXJkVmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmxleEdyb3c6IGZpcnN0VmFsdWUsXG4gICAgICAgIGZsZXhTaHJpbms6IHNlY29uZFZhbHVlLFxuICAgICAgICBmbGV4QmFzaXM6IHRoaXJkVmFsdWVcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGBUaGUgdmFsdWUgcGFzc2VkIHRvIHNob3J0aGFuZHMuZmxleCBkaWQgbm90IG1hdGNoIGFueSBmbGV4IHByb3BlcnR5IHNwZWNzLiBUaGUgQ1NTIHN0eWxlcyB3ZXJlIG5vdCBnZW5lcmF0ZWQuIFBsZWFzZSwgY2hlY2sgdGhlIGZsZXggZG9jdW1lbnRhdGlvbi5gKTtcbiAgfVxuICByZXR1cm4ge307XG59XG5cbmV4cG9ydCB7IGZsZXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZsZXguZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBDU1Mgc3BlYyBjb25mb3JtYW50IGV4cGFuc2lvbiBmb3IgXCJnYXBcIlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGdhcCgnMTBweCcpXG4gKiAgIGdhcCgnMTBweCcsICc1cHgnKVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvZ2FwXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgZ2FwOiAnMTBweCA1cHgnIH1gIGluc3RlYWQgYXMgR3JpZmZlbCBzdXBwb3J0cyBDU1Mgc2hvcnRoYW5kcyBub3dcbiAqL1xuZnVuY3Rpb24gZ2FwKGNvbHVtbkdhcCwgcm93R2FwID0gY29sdW1uR2FwKSB7XG4gIHJldHVybiB7XG4gICAgY29sdW1uR2FwLFxuICAgIHJvd0dhcFxuICB9O1xufVxuXG5leHBvcnQgeyBnYXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdhcC5lc20uanMubWFwXG4iLCJjb25zdCBjc3NWYXJSZWdFeCA9IC92YXJcXCguKlxcKS9naTtcbmZ1bmN0aW9uIGlzVmFsaWRHcmlkQXJlYUlucHV0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhY3NzVmFyUmVnRXgudGVzdCh2YWx1ZSk7XG59XG4vLyBBIGN1c3RvbS1pZGVudCBjYW4gYmUgYW4gYWxwaGEtbnVtZXJpYyBzdHJpbmcgaW5jbHVkaW5nIGRhc2ggKC0pLCB1bmRlcnNjb3JlLCBlc2NhcGVkIChcXCkgY2hhcmFjdGVycywgYW5kIGVzY2FwZWQgdW5pY29kZVxuY29uc3QgY3VzdG9tSWRlbnRSZWdFeCA9IC9eW2EtekEtWjAtOVxcLV9cXFxcIztdKyQvO1xuY29uc3Qgbm9uQ3VzdG9tSWRlbnRSZWdFeCA9IC9eLW1vei1pbml0aWFsJHxeYXV0byR8XmluaXRpYWwkfF5pbmhlcml0JHxecmV2ZXJ0JHxedW5zZXQkfF5zcGFuIFxcZCskfF5cXGQuKi87XG4vLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2N1c3RvbS1pZGVudFxuZnVuY3Rpb24gaXNDdXN0b21JZGVudCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIGN1c3RvbUlkZW50UmVnRXgudGVzdCh2YWx1ZSkgJiYgIW5vbkN1c3RvbUlkZW50UmVnRXgudGVzdCh2YWx1ZSk7XG59XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIENTUyBzcGVjIGNvbmZvcm1hbnQgZXhwYW5zaW9uIGZvciBcImdyaWQtYXJlYVwiXG4gKlxuICogQGV4YW1wbGVcbiAqICAgZ3JpZEFyZWEoJ2F1dG8nKVxuICogICBncmlkQXJlYSgnZmlyc3QnLCAnc2Vjb25kJylcbiAqICAgZ3JpZEFyZWEoMiwgNCwgNClcbiAqICAgZ3JpZEFyZWEoMiwgNCwgMSwgMylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2dyaWQtYXJlYVxuICpcbiAqIEBkZXByZWNhdGVkIEp1c3QgdXNlIGB7IGdyaWRBcmVhOiAnMiAvIDQgLyAxIC8gMycgfWAgaW5zdGVhZCBhcyBHcmlmZmVsIHN1cHBvcnRzIENTUyBzaG9ydGhhbmRzIG5vd1xuICovXG5mdW5jdGlvbiBncmlkQXJlYSguLi52YWx1ZXMpIHtcbiAgLy8gaWYgYW55IHZhbHVlIGlzIG5vdCB2YWxpZCwgdGhlbiBkbyBub3QgYXBwbHkgdGhlIENTUy5cbiAgaWYgKHZhbHVlcy5zb21lKHZhbHVlID0+ICFpc1ZhbGlkR3JpZEFyZWFJbnB1dCh2YWx1ZSkpKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKGBUaGUgdmFsdWUgcGFzc2VkIHRvIHNob3J0aGFuZHMuZ3JpZEFyZWEoKSBkaWQgbm90IG1hdGNoIGFueSBncmlkQXJlYSBwcm9wZXJ0eSBzcGVjcy4gVGhlIENTUyBzdHlsZXMgd2VyZSBub3QgZ2VuZXJhdGVkLiBQbGVhc2UsIGNoZWNrIHRoZSBncmlkQXJlYSBkb2N1bWVudGF0aW9uLmAsIFsnVGhlIHZhbHVlIHBhc3NlZCB0byBzaG9ydGhhbmRzLmdyaWRBcmVhKCkgZGlkIG5vdCBtYXRjaCBhbnkgZ3JpZEFyZWEgcHJvcGVydHkgc3BlY3MuICcsICdUaGUgQ1NTIHN0eWxlcyB3ZXJlIG5vdCBnZW5lcmF0ZWQuXFxuJywgJ1BsZWFzZSwgY2hlY2sgdGhlIGBncmlkLWFyZWFgIGRvY3VtZW50YXRpb246XFxuJywgJy0gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQ1NTL2dyaWQtYXJlYScsICctIGh0dHBzOi8vZ3JpZmZlbC5qcy5vcmcvcmVhY3QvYXBpL3Nob3J0aGFuZHMjc2hvcnRoYW5kc2dyaWRhcmVhJ10uam9pbignJykpO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3QgZ3JpZFJvd1N0YXJ0ID0gdmFsdWVzWzBdICE9PSB1bmRlZmluZWQgPyB2YWx1ZXNbMF0gOiAnYXV0byc7XG4gIC8vIFdoZW4gZ3JpZC1jb2x1bW4tc3RhcnQgaXMgb21pdHRlZCwgaWYgZ3JpZC1yb3ctc3RhcnQgaXMgYSA8Y3VzdG9tLWlkZW50PixcbiAgLy8gYWxsIGZvdXIgbG9uZ2hhbmRzIGFyZSBzZXQgdG8gdGhhdCB2YWx1ZS5cbiAgLy8gT3RoZXJ3aXNlLCBpdCBpcyBzZXQgdG8gYXV0by5cbiAgY29uc3QgZ3JpZENvbHVtblN0YXJ0ID0gdmFsdWVzWzFdICE9PSB1bmRlZmluZWQgPyB2YWx1ZXNbMV0gOiBpc0N1c3RvbUlkZW50KGdyaWRSb3dTdGFydCkgPyBncmlkUm93U3RhcnQgOiAnYXV0byc7XG4gIC8vIFdoZW4gZ3JpZC1yb3ctZW5kIGlzIG9taXR0ZWQsXG4gIC8vIGlmIGdyaWQtcm93LXN0YXJ0IGlzIGEgPGN1c3RvbS1pZGVudD4sIGdyaWQtcm93LWVuZCBpcyBzZXQgdG8gdGhhdCA8Y3VzdG9tLWlkZW50PjtcbiAgLy8gb3RoZXJ3aXNlLCBpdCBpcyBzZXQgdG8gYXV0by5cbiAgY29uc3QgZ3JpZFJvd0VuZCA9IHZhbHVlc1syXSAhPT0gdW5kZWZpbmVkID8gdmFsdWVzWzJdIDogaXNDdXN0b21JZGVudChncmlkUm93U3RhcnQpID8gZ3JpZFJvd1N0YXJ0IDogJ2F1dG8nO1xuICAvLyBXaGVuIGdyaWQtY29sdW1uLWVuZCBpcyBvbWl0dGVkLFxuICAvLyBpZiBncmlkLWNvbHVtbi1zdGFydCBpcyBhIDxjdXN0b20taWRlbnQ+LCBncmlkLWNvbHVtbi1lbmQgaXMgc2V0IHRvIHRoYXQgPGN1c3RvbS1pZGVudD47XG4gIC8vIG90aGVyd2lzZSwgaXQgaXMgc2V0IHRvIGF1dG8uXG4gIGNvbnN0IGdyaWRDb2x1bW5FbmQgPSB2YWx1ZXNbM10gIT09IHVuZGVmaW5lZCA/IHZhbHVlc1szXSA6IGlzQ3VzdG9tSWRlbnQoZ3JpZENvbHVtblN0YXJ0KSA/IGdyaWRDb2x1bW5TdGFydCA6ICdhdXRvJztcbiAgcmV0dXJuIHtcbiAgICBncmlkUm93U3RhcnQsXG4gICAgZ3JpZENvbHVtblN0YXJ0LFxuICAgIGdyaWRSb3dFbmQsXG4gICAgZ3JpZENvbHVtbkVuZFxuICB9O1xufVxuXG5leHBvcnQgeyBncmlkQXJlYSwgaXNDdXN0b21JZGVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z3JpZEFyZWEuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgZ2VuZXJhdGVTdHlsZXMgfSBmcm9tICcuL2dlbmVyYXRlU3R5bGVzLmVzbS5qcyc7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgQ1NTIHNwZWMgY29uZm9ybWFudCBleHBhbnNpb24gZm9yIFwibWFyZ2luXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogICBtYXJnaW4oJzEwcHgnKVxuICogICBtYXJnaW4oJzEwcHgnLCAnNXB4JylcbiAqICAgbWFyZ2luKCcycHgnLCAnNHB4JywgJzhweCcpXG4gKiAgIG1hcmdpbignMXB4JywgMCwgJzNweCcsICc0cHgnKVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvbWFyZ2luXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgbWFyZ2luOiAnMTBweCA1cHggOHB4IDRweCcgfWAgaW5zdGVhZCBhcyBHcmlmZmVsIHN1cHBvcnRzIENTUyBzaG9ydGhhbmRzIG5vd1xuICovXG5mdW5jdGlvbiBtYXJnaW4oLi4udmFsdWVzKSB7XG4gIHJldHVybiBnZW5lcmF0ZVN0eWxlcygnbWFyZ2luJywgJycsIC4uLnZhbHVlcyk7XG59XG5cbmV4cG9ydCB7IG1hcmdpbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFyZ2luLmVzbS5qcy5tYXBcbiIsIi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgQ1NTIHNwZWMgY29uZm9ybWFudCBleHBhbnNpb24gZm9yIFwibWFyZ2luLWJsb2NrXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogICBtYXJnaW5CbG9jaygnMTBweCcpXG4gKiAgIG1hcmdpbkJsb2NrKCcxMHB4JywgJzVweCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9tYXJnaW4tYmxvY2tcbiAqXG4gKiBAZGVwcmVjYXRlZCBKdXN0IHVzZSBgeyBtYXJnaW5CbG9jazogJzEwcHgnIH1gIGluc3RlYWQgYXMgR3JpZmZlbCBzdXBwb3J0cyBDU1Mgc2hvcnRoYW5kcyBub3dcbiAqL1xuZnVuY3Rpb24gbWFyZ2luQmxvY2soc3RhcnQsIGVuZCA9IHN0YXJ0KSB7XG4gIHJldHVybiB7XG4gICAgbWFyZ2luQmxvY2tTdGFydDogc3RhcnQsXG4gICAgbWFyZ2luQmxvY2tFbmQ6IGVuZFxuICB9O1xufVxuXG5leHBvcnQgeyBtYXJnaW5CbG9jayB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFyZ2luQmxvY2suZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBDU1Mgc3BlYyBjb25mb3JtYW50IGV4cGFuc2lvbiBmb3IgXCJtYXJnaW4taW5saW5lXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogICBtYXJnaW5JbmxpbmUoJzEwcHgnKVxuICogICBtYXJnaW5JbmxpbmUoJzEwcHgnLCAnNXB4JylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL21hcmdpbi1pbmxpbmVcbiAqXG4gKiBAZGVwcmVjYXRlZCBKdXN0IHVzZSBgeyBtYXJnaW5JbmxpbmU6ICcxMHB4JyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIG1hcmdpbklubGluZShzdGFydCwgZW5kID0gc3RhcnQpIHtcbiAgcmV0dXJuIHtcbiAgICBtYXJnaW5JbmxpbmVTdGFydDogc3RhcnQsXG4gICAgbWFyZ2luSW5saW5lRW5kOiBlbmRcbiAgfTtcbn1cblxuZXhwb3J0IHsgbWFyZ2luSW5saW5lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYXJnaW5JbmxpbmUuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgZ2VuZXJhdGVTdHlsZXMgfSBmcm9tICcuL2dlbmVyYXRlU3R5bGVzLmVzbS5qcyc7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgQ1NTIHNwZWMgY29uZm9ybWFudCBleHBhbnNpb24gZm9yIFwicGFkZGluZ1wiXG4gKlxuICogQGV4YW1wbGVcbiAqICAgcGFkZGluZygnMTBweCcpXG4gKiAgIHBhZGRpbmcoJzEwcHgnLCAnNXB4JylcbiAqICAgcGFkZGluZygnMnB4JywgJzRweCcsICc4cHgnKVxuICogICBwYWRkaW5nKCcxcHgnLCAwLCAnM3B4JywgJzRweCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wYWRkaW5nXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgcGFkZGluZzogJzEwcHggNXB4IDhweCA0cHgnIH1gIGluc3RlYWQgYXMgR3JpZmZlbCBzdXBwb3J0cyBDU1Mgc2hvcnRoYW5kcyBub3dcbiAqL1xuZnVuY3Rpb24gcGFkZGluZyguLi52YWx1ZXMpIHtcbiAgcmV0dXJuIGdlbmVyYXRlU3R5bGVzKCdwYWRkaW5nJywgJycsIC4uLnZhbHVlcyk7XG59XG5cbmV4cG9ydCB7IHBhZGRpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZGRpbmcuZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBDU1Mgc3BlYyBjb25mb3JtYW50IGV4cGFuc2lvbiBmb3IgXCJwYWRkaW5nLWJsb2NrXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogICBwYWRkaW5nQmxvY2soJzEwcHgnKVxuICogICBwYWRkaW5nQmxvY2soJzEwcHgnLCAnNXB4JylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmctYmxvY2tcbiAqXG4gKiBAZGVwcmVjYXRlZCBKdXN0IHVzZSBgeyBwYWRkaW5nQmxvY2s6ICcxMHB4JyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIHBhZGRpbmdCbG9jayhzdGFydCwgZW5kID0gc3RhcnQpIHtcbiAgcmV0dXJuIHtcbiAgICBwYWRkaW5nQmxvY2tTdGFydDogc3RhcnQsXG4gICAgcGFkZGluZ0Jsb2NrRW5kOiBlbmRcbiAgfTtcbn1cblxuZXhwb3J0IHsgcGFkZGluZ0Jsb2NrIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWRkaW5nQmxvY2suZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBDU1Mgc3BlYyBjb25mb3JtYW50IGV4cGFuc2lvbiBmb3IgXCJwYWRkaW5nLWlubGluZVwiXG4gKlxuICogQGV4YW1wbGVcbiAqICAgcGFkZGluZ0lubGluZSgnMTBweCcpXG4gKiAgIHBhZGRpbmdJbmxpbmUoJzEwcHgnLCAnNXB4JylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmctaW5saW5lXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgcGFkZGluZ0lubGluZTogJzEwcHgnIH1gIGluc3RlYWQgYXMgR3JpZmZlbCBzdXBwb3J0cyBDU1Mgc2hvcnRoYW5kcyBub3dcbiAqL1xuZnVuY3Rpb24gcGFkZGluZ0lubGluZShzdGFydCwgZW5kID0gc3RhcnQpIHtcbiAgcmV0dXJuIHtcbiAgICBwYWRkaW5nSW5saW5lU3RhcnQ6IHN0YXJ0LFxuICAgIHBhZGRpbmdJbmxpbmVFbmQ6IGVuZFxuICB9O1xufVxuXG5leHBvcnQgeyBwYWRkaW5nSW5saW5lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWRkaW5nSW5saW5lLmVzbS5qcy5tYXBcbiIsIi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgQ1NTIHNwZWMgY29uZm9ybWFudCBleHBhbnNpb24gZm9yIFwib3ZlcmZsb3dcIlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIG92ZXJmbG93KCdoaWRkZW4nKVxuICogICBvdmVyZmxvdygnaGlkZGVuJywgJ3Njcm9sbCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9vdmVyZmxvd1xuICpcbiAqIEBkZXByZWNhdGVkIEp1c3QgdXNlIGB7IG92ZXJmbG93OiAnaGlkZGVuIHNjcm9sbCcgfWAgaW5zdGVhZCBhcyBHcmlmZmVsIHN1cHBvcnRzIENTUyBzaG9ydGhhbmRzIG5vd1xuICovXG5mdW5jdGlvbiBvdmVyZmxvdyhvdmVyZmxvd1gsIG92ZXJmbG93WSA9IG92ZXJmbG93WCkge1xuICByZXR1cm4ge1xuICAgIG92ZXJmbG93WCxcbiAgICBvdmVyZmxvd1lcbiAgfTtcbn1cblxuZXhwb3J0IHsgb3ZlcmZsb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW92ZXJmbG93LmVzbS5qcy5tYXBcbiIsIi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgQ1NTIHNwZWMgY29uZm9ybWFudCBleHBhbnNpb24gZm9yIFwiaW5zZXRcIlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGluc2V0KCcxMHB4JylcbiAqICAgaW5zZXQoJzEwcHgnLCAnNXB4JylcbiAqICAgaW5zZXQoJzJweCcsICc0cHgnLCAnOHB4JylcbiAqICAgaW5zZXQoJzFweCcsIDAsICczcHgnLCAnNHB4JylcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2luc2V0XG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgaW5zZXQ6ICcxMHB4IDVweCA4cHggNHB4JyB9YCBpbnN0ZWFkIGFzIEdyaWZmZWwgc3VwcG9ydHMgQ1NTIHNob3J0aGFuZHMgbm93XG4gKi9cbmZ1bmN0aW9uIGluc2V0KC4uLnZhbHVlcykge1xuICBjb25zdCBbZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUgPSBmaXJzdFZhbHVlLCB0aGlyZFZhbHVlID0gZmlyc3RWYWx1ZSwgZm91cnRoVmFsdWUgPSBzZWNvbmRWYWx1ZV0gPSB2YWx1ZXM7XG4gIHJldHVybiB7XG4gICAgdG9wOiBmaXJzdFZhbHVlLFxuICAgIHJpZ2h0OiBzZWNvbmRWYWx1ZSxcbiAgICBib3R0b206IHRoaXJkVmFsdWUsXG4gICAgbGVmdDogZm91cnRoVmFsdWVcbiAgfTtcbn1cblxuZXhwb3J0IHsgaW5zZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluc2V0LmVzbS5qcy5tYXBcbiIsIi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgZXhwYW5zaW9uIGZvciBcIm91dGxpbmVcIiwgaXQncyBzaW1wbGlmaWVkIC0gY2hlY2sgdXNhZ2UgZXhhbXBsZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqICBvdXRsaW5lKCcycHgnKVxuICogIG91dGxpbmUoJzJweCcsICdzb2xpZCcpXG4gKiAgb3V0bGluZSgnMnB4JywgJ3NvbGlkJywgJ3JlZCcpXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9vdXRsaW5lXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgb3V0bGluZTogJzJweCBzb2xpZCByZWQnIH1gIGluc3RlYWQgYXMgR3JpZmZlbCBzdXBwb3J0cyBDU1Mgc2hvcnRoYW5kcyBub3dcbiAqL1xuZnVuY3Rpb24gb3V0bGluZShvdXRsaW5lV2lkdGgsIG91dGxpbmVTdHlsZSwgb3V0bGluZUNvbG9yKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHtcbiAgICBvdXRsaW5lV2lkdGhcbiAgfSwgb3V0bGluZVN0eWxlICYmIHtcbiAgICBvdXRsaW5lU3R5bGVcbiAgfSwgb3V0bGluZUNvbG9yICYmIHtcbiAgICBvdXRsaW5lQ29sb3JcbiAgfSk7XG59XG5cbmV4cG9ydCB7IG91dGxpbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW91dGxpbmUuZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyBleHBhbnNpb24gZm9yIFwidHJhbnNpdGlvblwiLCBpdCdzIHNpbXBsaWZpZWQgLSBjaGVjayB1c2FnZSBleGFtcGxlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogIHRyYW5zaXRpb24oJ2luaGVyaXQnKVxuICogIHRyYW5zaXRpb24oJ21hcmdpbi1yaWdodCcsICc0cycpXG4gKiAgdHJhbnNpdGlvbignbWFyZ2luLXJpZ2h0JywgJzRzJywgJzFzJylcbiAqICB0cmFuc2l0aW9uKCdtYXJnaW4tcmlnaHQnLCAnNHMnLCAnMXMnLCAnZWFzZS1pbicpXG4gKiAgdHJhbnNpdGlvbihbXG4gKiAgICBbJ21hcmdpbi1yaWdodCcsICc0cycsICcxcycsICdlYXNlLWluJ10sXG4gKiAgICBbJ21hcmdpbi1yaWdodCcsICc0cycsICcxcycsICdlYXNlLWluJ10sXG4gKiBdKVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdHJhbnNpdGlvblxuICpcbiAqIEBkZXByZWNhdGVkIEp1c3QgdXNlIGB7IHRyYW5zaXRpb246ICdtYXJnaW4tcmlnaHQgNHMgMXMgZWFzZS1pbicgfWAgaW5zdGVhZCBhcyBHcmlmZmVsIHN1cHBvcnRzIENTUyBzaG9ydGhhbmRzIG5vd1xuICovXG5mdW5jdGlvbiB0cmFuc2l0aW9uKC4uLnZhbHVlcykge1xuICBpZiAoaXNUcmFuc2l0aW9uR2xvYmFsSW5wdXRzKHZhbHVlcykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNpdGlvbkRlbGF5OiB2YWx1ZXNbMF0sXG4gICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHZhbHVlc1swXSxcbiAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogdmFsdWVzWzBdLFxuICAgICAgdHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOiB2YWx1ZXNbMF1cbiAgICB9O1xuICB9XG4gIGNvbnN0IHRyYW5zaXRpb25JbnB1dHMgPSBub3JtYWxpemVUcmFuc2l0aW9uSW5wdXRzKHZhbHVlcyk7XG4gIHJldHVybiB0cmFuc2l0aW9uSW5wdXRzLnJlZHVjZSgoYWNjLCBbcHJvcGVydHksIGR1cmF0aW9uID0gJzBzJywgZGVsYXkgPSAnMHMnLCB0aW1pbmdGdW5jdGlvbiA9ICdlYXNlJ10sIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICBhY2MudHJhbnNpdGlvblByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICBhY2MudHJhbnNpdGlvbkR1cmF0aW9uID0gZHVyYXRpb247XG4gICAgICBhY2MudHJhbnNpdGlvbkRlbGF5ID0gZGVsYXk7XG4gICAgICBhY2MudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjYy50cmFuc2l0aW9uUHJvcGVydHkgKz0gYCwgJHtwcm9wZXJ0eX1gO1xuICAgICAgYWNjLnRyYW5zaXRpb25EdXJhdGlvbiArPSBgLCAke2R1cmF0aW9ufWA7XG4gICAgICBhY2MudHJhbnNpdGlvbkRlbGF5ICs9IGAsICR7ZGVsYXl9YDtcbiAgICAgIGFjYy50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gKz0gYCwgJHt0aW1pbmdGdW5jdGlvbn1gO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5jb25zdCB0cmFuc2l0aW9uR2xvYmFsSW5wdXRzID0gWyctbW96LWluaXRpYWwnLCAnaW5oZXJpdCcsICdpbml0aWFsJywgJ3JldmVydCcsICd1bnNldCddO1xuZnVuY3Rpb24gaXNUcmFuc2l0aW9uR2xvYmFsSW5wdXRzKHZhbHVlcykge1xuICByZXR1cm4gdmFsdWVzLmxlbmd0aCA9PT0gMSAmJiB0cmFuc2l0aW9uR2xvYmFsSW5wdXRzLmluY2x1ZGVzKHZhbHVlc1swXSk7XG59XG5mdW5jdGlvbiBub3JtYWxpemVUcmFuc2l0aW9uSW5wdXRzKHRyYW5zaXRpb25JbnB1dHMpIHtcbiAgaWYgKHRyYW5zaXRpb25JbnB1dHMubGVuZ3RoID09PSAxICYmIEFycmF5LmlzQXJyYXkodHJhbnNpdGlvbklucHV0c1swXSkpIHtcbiAgICByZXR1cm4gdHJhbnNpdGlvbklucHV0c1swXTtcbiAgfVxuICByZXR1cm4gW3RyYW5zaXRpb25JbnB1dHNdO1xufVxuXG5leHBvcnQgeyB0cmFuc2l0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFuc2l0aW9uLmVzbS5qcy5tYXBcbiIsIi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgZXhwYW5zaW9uIGZvciBcInRleHREZWNvcmF0aW9uXCIgdG8gYWxsIHNpZGVzIG9mIGFuIGVsZW1lbnQsIGl0J3Mgc2ltcGxpZmllZCAtIGNoZWNrIHVzYWdlIGV4YW1wbGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgdGV4dERlY29yYXRpb24oJ25vbmUnKVxuICogIHRleHREZWNvcmF0aW9uKCdkb3R0ZWQnKVxuICogIHRleHREZWNvcmF0aW9uKCd1bmRlcmxpbmUnLCAnZG90dGVkJylcbiAqICB0ZXh0RGVjb3JhdGlvbigndW5kZXJsaW5lJywgJ2RvdHRlZCcsICdyZWQnKVxuICogIHRleHREZWNvcmF0aW9uKCd1bmRlcmxpbmUnLCAnZG90dGVkJywgJ3JlZCcsICcycHgnKVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdGV4dC1kZWNvcmF0aW9uXG4gKlxuICogQGRlcHJlY2F0ZWQgSnVzdCB1c2UgYHsgdGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUgZG90dGVkIHJlZCAycHgnIH1gIGluc3RlYWQgYXMgR3JpZmZlbCBzdXBwb3J0cyBDU1Mgc2hvcnRoYW5kcyBub3dcbiAqL1xuZnVuY3Rpb24gdGV4dERlY29yYXRpb24odmFsdWUsIC4uLnZhbHVlcykge1xuICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBpc1RleHREZWNvcmF0aW9uU3R5bGVJbnB1dCh2YWx1ZSkgPyB7XG4gICAgICB0ZXh0RGVjb3JhdGlvblN0eWxlOiB2YWx1ZVxuICAgIH0gOiB7XG4gICAgICB0ZXh0RGVjb3JhdGlvbkxpbmU6IHZhbHVlXG4gICAgfTtcbiAgfVxuICBjb25zdCBbdGV4dERlY29yYXRpb25TdHlsZSwgdGV4dERlY29yYXRpb25Db2xvciwgdGV4dERlY29yYXRpb25UaGlja25lc3NdID0gdmFsdWVzO1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgdGV4dERlY29yYXRpb25MaW5lOiB2YWx1ZVxuICB9LCB0ZXh0RGVjb3JhdGlvblN0eWxlICYmIHtcbiAgICB0ZXh0RGVjb3JhdGlvblN0eWxlXG4gIH0sIHRleHREZWNvcmF0aW9uQ29sb3IgJiYge1xuICAgIHRleHREZWNvcmF0aW9uQ29sb3JcbiAgfSwgdGV4dERlY29yYXRpb25UaGlja25lc3MgJiYge1xuICAgIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzXG4gIH0pO1xufVxuY29uc3QgdGV4dERlY29yYXRpb25TdHlsZUlucHV0cyA9IFsnZGFzaGVkJywgJ2RvdHRlZCcsICdkb3VibGUnLCAnc29saWQnLCAnd2F2eSddO1xuZnVuY3Rpb24gaXNUZXh0RGVjb3JhdGlvblN0eWxlSW5wdXQodmFsdWUpIHtcbiAgcmV0dXJuIHRleHREZWNvcmF0aW9uU3R5bGVJbnB1dHMuaW5jbHVkZXModmFsdWUpO1xufVxuXG5leHBvcnQgeyB0ZXh0RGVjb3JhdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGV4dERlY29yYXRpb24uZXNtLmpzLm1hcFxuIiwiLy8gLS0tLVxuLy8gSGVhZHMgdXAhXG4vLyBUaGVzZSBjb25zdGFudHMgYXJlIGdsb2JhbCBhbmQgd2lsbCBiZSBzaGFyZWQgYmV0d2VlbiBHcmlmZmVsIGluc3RhbmNlcy5cbi8vIEFueSBjaGFuZ2UgaW4gdGhlbSBzaG91bGQgaGFwcGVuIG9ubHkgaW4gYSBNQUpPUiB2ZXJzaW9uLiBJZiBpdCBoYXBwZW5zLFxuLy8gcGxlYXNlIGNoYW5nZSBcIl9fTkFNRVNQQUNFX1BSRUZJWF9fXCIgdG8gaW5jbHVkZSBhIHZlcnNpb24uXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3QgX19HTE9CQUxfXyA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93O1xuY29uc3QgX19OQU1FU1BBQ0VfUFJFRklYX18gPSAnQGdyaWZmZWwvJztcbmZ1bmN0aW9uIGdldEdsb2JhbFZhcihuYW1lLCBkZWZhdWx0VmFsdWUpIHtcbiAgaWYgKCFfX0dMT0JBTF9fW1N5bWJvbC5mb3IoX19OQU1FU1BBQ0VfUFJFRklYX18gKyBuYW1lKV0pIHtcbiAgICBfX0dMT0JBTF9fW1N5bWJvbC5mb3IoX19OQU1FU1BBQ0VfUFJFRklYX18gKyBuYW1lKV0gPSBkZWZhdWx0VmFsdWU7XG4gIH1cbiAgcmV0dXJuIF9fR0xPQkFMX19bU3ltYm9sLmZvcihfX05BTUVTUEFDRV9QUkVGSVhfXyArIG5hbWUpXTtcbn1cbi8qKiBAaW50ZXJuYWwgKi9cbmNvbnN0IERFQlVHX1JFU0VUX0NMQVNTRVMgPSAvKiNfX1BVUkVfXyovZ2V0R2xvYmFsVmFyKCdERUJVR19SRVNFVF9DTEFTU0VTJywge30pO1xuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgREVGSU5JVElPTl9MT09LVVBfVEFCTEUgPSAvKiNfX1BVUkVfXyovZ2V0R2xvYmFsVmFyKCdERUZJTklUSU9OX0xPT0tVUF9UQUJMRScsIHt9KTtcbi8vIC0tLS1cbi8qKiBAaW50ZXJuYWwgKi9cbmNvbnN0IERBVEFfQlVDS0VUX0FUVFIgPSAnZGF0YS1tYWtlLXN0eWxlcy1idWNrZXQnO1xuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgREFUQV9QUklPUklUWV9BVFRSID0gJ2RhdGEtcHJpb3JpdHknO1xuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgSEFTSF9QUkVGSVggPSAnZic7XG4vKiogQGludGVybmFsICovXG5jb25zdCBSRVNFVF9IQVNIX1BSRUZJWCA9ICdyJztcbi8qKiBAaW50ZXJuYWwgKi9cbmNvbnN0IFNFUVVFTkNFX0hBU0hfTEVOR1RIID0gNztcbi8qKiBAaW50ZXJuYWwgKi9cbmNvbnN0IFNFUVVFTkNFX1BSRUZJWCA9ICdfX18nO1xuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgREVCVUdfU0VRVUVOQ0VfU0VQQVJBVE9SID0gJ18nO1xuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgU0VRVUVOQ0VfU0laRSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgPyBTRVFVRU5DRV9QUkVGSVgubGVuZ3RoICsgU0VRVUVOQ0VfSEFTSF9MRU5HVEggOiBTRVFVRU5DRV9QUkVGSVgubGVuZ3RoICsgU0VRVUVOQ0VfSEFTSF9MRU5HVEggKyBERUJVR19TRVFVRU5DRV9TRVBBUkFUT1IubGVuZ3RoICsgU0VRVUVOQ0VfSEFTSF9MRU5HVEg7XG4vLyBpbmRleGVzIGZvciB2YWx1ZXMgaW4gTG9va3VwSXRlbSB0dXBsZVxuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgTE9PS1VQX0RFRklOSVRJT05TX0lOREVYID0gMDtcbi8qKiBAaW50ZXJuYWwgKi9cbmNvbnN0IExPT0tVUF9ESVJfSU5ERVggPSAxO1xuLy8gVGhpcyBjb2xsZWN0aW9uIGlzIGEgbWFwIHNpbXBseSBmb3IgZmFzdGVyIGFjY2VzcyB3aGVuIGNoZWNraW5nIGlmIGEgQ1NTIHByb3BlcnR5IGlzIHVuc3VwcG9ydGVkXG4vKiogQGludGVybmFsICovXG5jb25zdCBVTlNVUFBPUlRFRF9DU1NfUFJPUEVSVElFUyA9IHtcbiAgYWxsOiAxLFxuICBib3JkZXJDb2xvcjogMSxcbiAgYm9yZGVyU3R5bGU6IDEsXG4gIGJvcmRlcldpZHRoOiAxLFxuICBib3JkZXJCbG9jazogMSxcbiAgYm9yZGVyQmxvY2tFbmQ6IDEsXG4gIGJvcmRlckJsb2NrU3RhcnQ6IDEsXG4gIGJvcmRlcklubGluZTogMSxcbiAgYm9yZGVySW5saW5lRW5kOiAxLFxuICBib3JkZXJJbmxpbmVTdGFydDogMVxufTtcbi8qKlxuICogUmVtb3ZlcyBhIENTUyBwcm9wZXJ0eSBmcm9tIHRoZSBzdHlsZSBvYmplY3QuXG4gKlxuICogQGxpbmsgaHR0cHM6Ly9ncmlmZmVsLmpzLm9yZy9yZWFjdC9hcGkvbWFrZS1zdHlsZXNcbiAqXG4gKiBEbyBub3QgdXNlIHRoZSB2YWx1ZSBkaXJlY3RseSwgdXNlIGBSRVNFVGAgY29uc3RhbnQgaW5zdGVhZC5cbiAqL1xuY29uc3QgUkVTRVQgPSAnRE9fTk9UX1VTRV9ESVJFQ1RMWTogQGdyaWZmZWwvcmVzZXQtdmFsdWUnO1xuXG5leHBvcnQgeyBEQVRBX0JVQ0tFVF9BVFRSLCBEQVRBX1BSSU9SSVRZX0FUVFIsIERFQlVHX1JFU0VUX0NMQVNTRVMsIERFQlVHX1NFUVVFTkNFX1NFUEFSQVRPUiwgREVGSU5JVElPTl9MT09LVVBfVEFCTEUsIEhBU0hfUFJFRklYLCBMT09LVVBfREVGSU5JVElPTlNfSU5ERVgsIExPT0tVUF9ESVJfSU5ERVgsIFJFU0VULCBSRVNFVF9IQVNIX1BSRUZJWCwgU0VRVUVOQ0VfSEFTSF9MRU5HVEgsIFNFUVVFTkNFX1BSRUZJWCwgU0VRVUVOQ0VfU0laRSwgVU5TVVBQT1JURURfQ1NTX1BST1BFUlRJRVMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5lc20uanMubWFwXG4iLCIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2dhcnljb3VydC9tdXJtdXJoYXNoLWpzXG4vLyBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYWFwcGxlYnkvc21oYXNoZXIvYmxvYi82MWEwNTMwZjI4Mjc3ZjJlODUwYmZjMzk2MDBjZTYxZDAyYjUxOGRlL3NyYy9NdXJtdXJIYXNoMi5jcHAjTDM3LUw4NlxuZnVuY3Rpb24gbXVybXVyMihzdHIpIHtcbiAgLy8gJ20nIGFuZCAncicgYXJlIG1peGluZyBjb25zdGFudHMgZ2VuZXJhdGVkIG9mZmxpbmUuXG4gIC8vIFRoZXkncmUgbm90IHJlYWxseSAnbWFnaWMnLCB0aGV5IGp1c3QgaGFwcGVuIHRvIHdvcmsgd2VsbC5cbiAgLy8gY29uc3QgbSA9IDB4NWJkMWU5OTU7XG4gIC8vIGNvbnN0IHIgPSAyNDtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGFzaFxuICB2YXIgaCA9IDA7IC8vIE1peCA0IGJ5dGVzIGF0IGEgdGltZSBpbnRvIHRoZSBoYXNoXG5cbiAgdmFyIGssXG4gICAgICBpID0gMCxcbiAgICAgIGxlbiA9IHN0ci5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbiA+PSA0OyArK2ksIGxlbiAtPSA0KSB7XG4gICAgayA9IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZiB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgOCB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgMTYgfCAoc3RyLmNoYXJDb2RlQXQoKytpKSAmIDB4ZmYpIDw8IDI0O1xuICAgIGsgPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpO1xuICAgIGsgXj1cbiAgICAvKiBrID4+PiByOiAqL1xuICAgIGsgPj4+IDI0O1xuICAgIGggPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpIF5cbiAgICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBIYW5kbGUgdGhlIGxhc3QgZmV3IGJ5dGVzIG9mIHRoZSBpbnB1dCBhcnJheVxuXG5cbiAgc3dpdGNoIChsZW4pIHtcbiAgICBjYXNlIDM6XG4gICAgICBoIF49IChzdHIuY2hhckNvZGVBdChpICsgMikgJiAweGZmKSA8PCAxNjtcblxuICAgIGNhc2UgMjpcbiAgICAgIGggXj0gKHN0ci5jaGFyQ29kZUF0KGkgKyAxKSAmIDB4ZmYpIDw8IDg7XG5cbiAgICBjYXNlIDE6XG4gICAgICBoIF49IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZjtcbiAgICAgIGggPVxuICAgICAgLyogTWF0aC5pbXVsKGgsIG0pOiAqL1xuICAgICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBEbyBhIGZldyBmaW5hbCBtaXhlcyBvZiB0aGUgaGFzaCB0byBlbnN1cmUgdGhlIGxhc3QgZmV3XG4gIC8vIGJ5dGVzIGFyZSB3ZWxsLWluY29ycG9yYXRlZC5cblxuXG4gIGggXj0gaCA+Pj4gMTM7XG4gIGggPVxuICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gIChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKGggPj4+IDE2KSAqIDB4ZTk5NSA8PCAxNik7XG4gIHJldHVybiAoKGggXiBoID4+PiAxNSkgPj4+IDApLnRvU3RyaW5nKDM2KTtcbn1cblxuZXhwb3J0IHsgbXVybXVyMiBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgaGFzaFN0cmluZyBmcm9tICdAZW1vdGlvbi9oYXNoJztcbmltcG9ydCB7IFNFUVVFTkNFX1BSRUZJWCwgREVCVUdfU0VRVUVOQ0VfU0VQQVJBVE9SLCBTRVFVRU5DRV9IQVNIX0xFTkdUSCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy5lc20uanMnO1xuXG5mdW5jdGlvbiBwYWRFbmRIYXNoKHZhbHVlKSB7XG4gIGNvbnN0IGhhc2hMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gIGlmIChoYXNoTGVuZ3RoID09PSBTRVFVRU5DRV9IQVNIX0xFTkdUSCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBmb3IgKGxldCBpID0gaGFzaExlbmd0aDsgaSA8IFNFUVVFTkNFX0hBU0hfTEVOR1RIOyBpKyspIHtcbiAgICB2YWx1ZSArPSAnMCc7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gaGFzaFNlcXVlbmNlKGNsYXNzZXMsIGRpciwgc2VxdWVuY2VJZHMgPSBbXSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIHJldHVybiBTRVFVRU5DRV9QUkVGSVggKyBwYWRFbmRIYXNoKGhhc2hTdHJpbmcoY2xhc3NlcyArIGRpcikpO1xuICB9XG4gIHJldHVybiBTRVFVRU5DRV9QUkVGSVggKyBwYWRFbmRIYXNoKGhhc2hTdHJpbmcoY2xhc3NlcyArIGRpcikpICsgREVCVUdfU0VRVUVOQ0VfU0VQQVJBVE9SICsgcGFkRW5kSGFzaChoYXNoU3RyaW5nKHNlcXVlbmNlSWRzLmpvaW4oJycpKSk7XG59XG5cbmV4cG9ydCB7IGhhc2hTZXF1ZW5jZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFzaFNlcXVlbmNlLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IERFRklOSVRJT05fTE9PS1VQX1RBQkxFIH0gZnJvbSAnLi4vY29uc3RhbnRzLmVzbS5qcyc7XG5pbXBvcnQgeyBoYXNoU2VxdWVuY2UgfSBmcm9tICcuL3V0aWxzL2hhc2hTZXF1ZW5jZS5lc20uanMnO1xuXG4vKipcbiAqIFJlZHVjZXMgYSBjbGFzc25hbWUgbWFwIGZvciBzbG90IHRvIGEgY2xhc3NuYW1lIHN0cmluZy4gVXNlcyBjbGFzc25hbWVzIGFjY29yZGluZyB0byB0ZXh0IGRpcmVjdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gcmVkdWNlVG9DbGFzc05hbWUoY2xhc3NNYXAsIGRpcikge1xuICAvLyAtIGBjbGFzc1N0cmluZ2AgaXMgYSBzdHJpbmcgb2YgY2xhc3NuYW1lcyBzZXBhcmF0ZWQgYnkgYSBzcGFjZSwgdXNlZCB0byBvdXRwdXQgY2xhc3Nlc1xuICAvLyAtIGBoYXNoU3RyaW5nYCBpcyBhIHN0cmluZyBvZiBjbGFzc25hbWVzIHNlcGFyYXRlZCBieSBhIHNwYWNlLCB1c2VkIHRvIGdlbmVyYXRlIGEgaGFzaFxuICAvL1xuICAvLyBgaGFzaFN0cmluZ2AgaXMgbmVlZGVkIHRvIGhhbmRsZSBgbnVsbGAgdmFsdWVzIGluIGEgY2xhc3MgbWFwIGFzIHRoZXkgZG9uJ3QgcHJvZHVjZSBhbnkgY2xhc3Nlcy5cbiAgbGV0IGNsYXNzU3RyaW5nID0gJyc7XG4gIGxldCBoYXNoU3RyaW5nID0gJyc7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eUhhc2ggaW4gY2xhc3NNYXApIHtcbiAgICBjb25zdCBjbGFzc05hbWVNYXBwaW5nID0gY2xhc3NNYXBbcHJvcGVydHlIYXNoXTtcbiAgICBpZiAoY2xhc3NOYW1lTWFwcGluZyA9PT0gMCkge1xuICAgICAgaGFzaFN0cmluZyArPSBwcm9wZXJ0eUhhc2ggKyAnICc7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaGFzUlRMQ2xhc3NOYW1lID0gQXJyYXkuaXNBcnJheShjbGFzc05hbWVNYXBwaW5nKTtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBkaXIgPT09ICdydGwnID8gKGhhc1JUTENsYXNzTmFtZSA/IGNsYXNzTmFtZU1hcHBpbmdbMV0gOiBjbGFzc05hbWVNYXBwaW5nKSArICcgJyA6IChoYXNSVExDbGFzc05hbWUgPyBjbGFzc05hbWVNYXBwaW5nWzBdIDogY2xhc3NOYW1lTWFwcGluZykgKyAnICc7XG4gICAgY2xhc3NTdHJpbmcgKz0gY2xhc3NOYW1lO1xuICAgIGhhc2hTdHJpbmcgKz0gY2xhc3NOYW1lO1xuICB9XG4gIHJldHVybiBbY2xhc3NTdHJpbmcuc2xpY2UoMCwgLTEpLCBoYXNoU3RyaW5nLnNsaWNlKDAsIC0xKV07XG59XG4vKipcbiAqIFJlZHVjZXMgY2xhc3NuYW1lIG1hcHMgZm9yIHNsb3RzIHRvIGNsYXNzbmFtZSBzdHJpbmdzLiBSZWdpc3RlcnMgdGhlbSBpbiBhIGRlZmluaXRpb24gY2FjaGUgdG8gYmUgdXNlZCBieVxuICogYG1lcmdlQ2xhc3NlcygpYC5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gcmVkdWNlVG9DbGFzc05hbWVGb3JTbG90cyhjbGFzc2VzTWFwQnlTbG90LCBkaXIpIHtcbiAgY29uc3QgY2xhc3NOYW1lc0ZvclNsb3RzID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cbiAgZm9yIChjb25zdCBzbG90TmFtZSBpbiBjbGFzc2VzTWFwQnlTbG90KSB7XG4gICAgY29uc3QgW3Nsb3RDbGFzc2VzLCBzbG90Q2xhc3Nlc0hhc2hdID0gcmVkdWNlVG9DbGFzc05hbWUoY2xhc3Nlc01hcEJ5U2xvdFtzbG90TmFtZV0sIGRpcik7XG4gICAgLy8gSGFuZGxlcyBhIGNhc2Ugd2hlbiB0aGVyZSBhcmUgbm8gY2xhc3NlcyBpbiBhIHNldCBpLmUuIFwibWFrZVN0eWxlcyh7IHJvb3Q6IHt9IH0pXCJcbiAgICBpZiAoc2xvdENsYXNzZXNIYXNoID09PSAnJykge1xuICAgICAgY2xhc3NOYW1lc0ZvclNsb3RzW3Nsb3ROYW1lXSA9ICcnO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHNlcXVlbmNlSGFzaCA9IGhhc2hTZXF1ZW5jZShzbG90Q2xhc3Nlc0hhc2gsIGRpcik7XG4gICAgY29uc3QgcmVzdWx0U2xvdENsYXNzZXMgPSBzZXF1ZW5jZUhhc2ggKyAoc2xvdENsYXNzZXMgPT09ICcnID8gJycgOiAnICcgKyBzbG90Q2xhc3Nlcyk7XG4gICAgREVGSU5JVElPTl9MT09LVVBfVEFCTEVbc2VxdWVuY2VIYXNoXSA9IFtjbGFzc2VzTWFwQnlTbG90W3Nsb3ROYW1lXSwgZGlyXTtcbiAgICBjbGFzc05hbWVzRm9yU2xvdHNbc2xvdE5hbWVdID0gcmVzdWx0U2xvdENsYXNzZXM7XG4gIH1cbiAgcmV0dXJuIGNsYXNzTmFtZXNGb3JTbG90cztcbn1cblxuZXhwb3J0IHsgcmVkdWNlVG9DbGFzc05hbWUsIHJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgU0VRVUVOQ0VfUFJFRklYLCBSRVNFVF9IQVNIX1BSRUZJWCwgREVCVUdfUkVTRVRfQ0xBU1NFUywgU0VRVUVOQ0VfU0laRSwgREVGSU5JVElPTl9MT09LVVBfVEFCTEUsIExPT0tVUF9ERUZJTklUSU9OU19JTkRFWCwgTE9PS1VQX0RJUl9JTkRFWCB9IGZyb20gJy4vY29uc3RhbnRzLmVzbS5qcyc7XG5pbXBvcnQgeyBoYXNoU2VxdWVuY2UgfSBmcm9tICcuL3J1bnRpbWUvdXRpbHMvaGFzaFNlcXVlbmNlLmVzbS5qcyc7XG5pbXBvcnQgeyByZWR1Y2VUb0NsYXNzTmFtZSB9IGZyb20gJy4vcnVudGltZS9yZWR1Y2VUb0NsYXNzTmFtZUZvclNsb3RzLmVzbS5qcyc7XG5cbi8vIENvbnRhaW5zIGEgbWFwcGluZyBvZiBwcmV2aW91c2x5IHJlc29sdmVkIHNlcXVlbmNlcyBvZiBhdG9taWMgY2xhc3NuYW1lc1xuY29uc3QgbWVyZ2VDbGFzc2VzQ2FjaGVkUmVzdWx0cyA9IHt9O1xuZnVuY3Rpb24gbWVyZ2VDbGFzc2VzKCkge1xuICAvLyBhcmd1bWVudHMgYXJlIHBhcnNlZCBtYW51YWxseSB0byBhdm9pZCBkb3VibGUgbG9vcHMgYXMgVFMgJiBCYWJlbCB0cmFuc2Zvcm1zIHJlc3QgdmlhIGFuIGFkZGl0aW9uYWwgbG9vcFxuICAvLyBAc2VlIGh0dHBzOi8vYmFiZWxqcy5pby9kb2NzL2VuL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tcGFyYW1ldGVyc1xuICAvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItcmVzdC1wYXJhbXMgKi9cbiAgbGV0IGRpciA9IG51bGw7XG4gIGxldCByZXN1bHRDbGFzc05hbWUgPSAnJztcbiAgLy8gSXMgdXNlZCBhcyBhIGNhY2hlIGtleSB0byBhdm9pZCBvYmplY3QgbWVyZ2luZ1xuICBsZXQgc2VxdWVuY2VNYXRjaCA9ICcnO1xuICBjb25zdCBzZXF1ZW5jZXNJZHMgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gIGxldCBjb250YWluc1Jlc2V0Q2xhc3NOYW1lID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gYXJndW1lbnRzW2ldO1xuICAgIGlmICh0eXBlb2YgY2xhc3NOYW1lID09PSAnc3RyaW5nJyAmJiBjbGFzc05hbWUgIT09ICcnKSB7XG4gICAgICAvLyBBbGwgY2xhc3NlcyBnZW5lcmF0ZWQgYnkgYG1ha2VTdHlsZXMoKWAgYXJlIHByZWZpeGVkIGJ5IGEgc2VxdWVuY2UgaGFzaCwgdGhpcyBhbGxvd3MgdG8gaWRlbnRpZnkgY2xhc3Mgc2V0c1xuICAgICAgLy8gd2l0aG91dCBwYXJzaW5nIGVhY2ggY2xhc3NOYW1lIGluIGEgc3RyaW5nXG4gICAgICBjb25zdCBzZXF1ZW5jZUluZGV4ID0gY2xhc3NOYW1lLmluZGV4T2YoU0VRVUVOQ0VfUFJFRklYKTtcbiAgICAgIGlmIChzZXF1ZW5jZUluZGV4ID09PSAtMSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNsYXNzTmFtZS5zcGxpdCgnICcpLmZvckVhY2goZW50cnkgPT4ge1xuICAgICAgICAgICAgaWYgKGVudHJ5LnN0YXJ0c1dpdGgoUkVTRVRfSEFTSF9QUkVGSVgpICYmIERFQlVHX1JFU0VUX0NMQVNTRVNbZW50cnldKSB7XG4gICAgICAgICAgICAgIGlmIChjb250YWluc1Jlc2V0Q2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdtZXJnZUNsYXNzZXMoKTogYSBwYXNzZWQgc3RyaW5nIGNvbnRhaW5zIG11bHRpcGxlIGNsYXNzZXMgcHJvZHVjZWQgYnkgbWFrZVJlc2V0U3R5bGVzICgnICsgYCR7Y2xhc3NOYW1lfSAmICR7cmVzdWx0Q2xhc3NOYW1lfSwgdGhpcyB3aWxsIGxlYWQgdG8gbm9uLWRldGVybWluaXN0aWMgYmVoYXZpb3IuIExlYXJuIG1vcmU6YCArICdodHRwczovL2dyaWZmZWwuanMub3JnL3JlYWN0L2FwaS9tYWtlLXJlc2V0LXN0eWxlcyNsaW1pdGF0aW9ucycgKyAnXFxuJyArIGBTb3VyY2Ugc3RyaW5nOiAke2NsYXNzTmFtZX1gKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250YWluc1Jlc2V0Q2xhc3NOYW1lID0gZW50cnk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRDbGFzc05hbWUgKz0gY2xhc3NOYW1lICsgJyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2VxdWVuY2VJZCA9IGNsYXNzTmFtZS5zdWJzdHIoc2VxdWVuY2VJbmRleCwgU0VRVUVOQ0VfU0laRSk7XG4gICAgICAgIC8vIEhhbmRsZXMgYSBjYXNlIHdpdGggbWl4ZWQgY2xhc3NuYW1lcywgaS5lLiBcInVpLWJ1dHRvbiBBVE9NSUNfQ0xBU1NFU1wiXG4gICAgICAgIGlmIChzZXF1ZW5jZUluZGV4ID4gMCkge1xuICAgICAgICAgIHJlc3VsdENsYXNzTmFtZSArPSBjbGFzc05hbWUuc2xpY2UoMCwgc2VxdWVuY2VJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgc2VxdWVuY2VNYXRjaCArPSBzZXF1ZW5jZUlkO1xuICAgICAgICBzZXF1ZW5jZXNJZHNbaV0gPSBzZXF1ZW5jZUlkO1xuICAgICAgfVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKGNsYXNzTmFtZS5pbmRleE9mKFNFUVVFTkNFX1BSRUZJWCwgc2VxdWVuY2VJbmRleCArIDEpICE9PSAtMSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS5lcnJvcignbWVyZ2VDbGFzc2VzKCk6IGEgcGFzc2VkIHN0cmluZyBjb250YWlucyBtdWx0aXBsZSBpZGVudGlmaWVycyBvZiBhdG9taWMgY2xhc3NlcyAoY2xhc3NlcyB0aGF0IHN0YXJ0ICcgKyBgd2l0aCBcIiR7U0VRVUVOQ0VfUFJFRklYfVwiKSwgaXQncyBwb3NzaWJsZSB0aGF0IHBhc3NlZCBjbGFzc2VzIHdlcmUgY29uY2F0ZW5hdGVkIGluIGEgd3Jvbmcgd2F5LiBgICsgYFNvdXJjZSBzdHJpbmc6ICR7Y2xhc3NOYW1lfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIC5zbGljZSgpIHRoZXJlIGFsbG93cyB0byBhdm9pZCB0cmFpbGluZyBzcGFjZSBmb3Igbm9uLWF0b21pYyBjbGFzc2VzXG4gIC8vIFwidWktYnV0dG9uIHVpLWZsZXggXCIgPT4gXCJ1aS1idXR0b24gdWktZmxleFwiXG4gIGlmIChzZXF1ZW5jZU1hdGNoID09PSAnJykge1xuICAgIHJldHVybiByZXN1bHRDbGFzc05hbWUuc2xpY2UoMCwgLTEpO1xuICB9XG4gIC8vIEl0J3Mgc2FmZSB0byByZXVzZSByZXN1bHRzIHRvIGF2b2lkIGNvbnRpbnVvdXMgbWVyZ2luZyBhcyByZXN1bHRzIGFyZSBzdGFibGVcbiAgLy8gXCJfX3NlcTEgLi4uIF9fc2VxMiAuLi5cIiA9PiBcIl9fc2VxMTIgLi4uXCJcbiAgY29uc3QgbWVyZ2VDbGFzc2VzUmVzdWx0ID0gbWVyZ2VDbGFzc2VzQ2FjaGVkUmVzdWx0c1tzZXF1ZW5jZU1hdGNoXTtcbiAgaWYgKG1lcmdlQ2xhc3Nlc1Jlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3VsdENsYXNzTmFtZSArIG1lcmdlQ2xhc3Nlc1Jlc3VsdDtcbiAgfVxuICBjb25zdCBzZXF1ZW5jZU1hcHBpbmdzID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qgc2VxdWVuY2VJZCA9IHNlcXVlbmNlc0lkc1tpXTtcbiAgICBpZiAoc2VxdWVuY2VJZCkge1xuICAgICAgY29uc3Qgc2VxdWVuY2VNYXBwaW5nID0gREVGSU5JVElPTl9MT09LVVBfVEFCTEVbc2VxdWVuY2VJZF07XG4gICAgICBpZiAoc2VxdWVuY2VNYXBwaW5nKSB7XG4gICAgICAgIHNlcXVlbmNlTWFwcGluZ3MucHVzaChzZXF1ZW5jZU1hcHBpbmdbTE9PS1VQX0RFRklOSVRJT05TX0lOREVYXSk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgaWYgKGRpciAhPT0gbnVsbCAmJiBkaXIgIT09IHNlcXVlbmNlTWFwcGluZ1tMT09LVVBfRElSX0lOREVYXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYG1lcmdlQ2xhc3NlcygpOiBhIHBhc3NlZCBzdHJpbmcgY29udGFpbnMgYW4gaWRlbnRpZmllciAoJHtzZXF1ZW5jZUlkfSkgdGhhdCBoYXMgZGlmZmVyZW50IGRpcmVjdGlvbiBgICsgYChkaXI9XCIke3NlcXVlbmNlTWFwcGluZ1sxXSA/ICdydGwnIDogJ2x0cid9XCIpIHNldHRpbmcgdGhhbiBvdGhlciBjbGFzc2VzLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuIGAgKyBgU291cmNlIHN0cmluZzogJHthcmd1bWVudHNbaV19YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRpciA9IHNlcXVlbmNlTWFwcGluZ1tMT09LVVBfRElSX0lOREVYXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBtZXJnZUNsYXNzZXMoKTogYSBwYXNzZWQgc3RyaW5nIGNvbnRhaW5zIGFuIGlkZW50aWZpZXIgKCR7c2VxdWVuY2VJZH0pIHRoYXQgZG9lcyBub3QgbWF0Y2ggYW55IGVudHJ5IGAgKyBgaW4gY2FjaGUuIFNvdXJjZSBzdHJpbmc6ICR7YXJndW1lbnRzW2ldfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItc3ByZWFkXG4gIGNvbnN0IHJlc3VsdENsYXNzZXNNYXAgPSBPYmplY3QuYXNzaWduLmFwcGx5KE9iamVjdCxcbiAgLy8gLmFzc2lnbigpIG11dGF0ZXMgdGhlIGZpcnN0IG9iamVjdCwgd2UgY2FuJ3QgbXV0YXRlIG1hcHBpbmdzIGFzIGl0IHdpbGwgcHJvZHVjZSBpbnZhbGlkIHJlc3VsdHMgbGF0ZXJcbiAgW3t9XS5jb25jYXQoc2VxdWVuY2VNYXBwaW5ncykpO1xuICBjb25zdCBbYXRvbWljQ2xhc3NlcywgY2xhc3Nlc01hcEhhc2hdID0gcmVkdWNlVG9DbGFzc05hbWUocmVzdWx0Q2xhc3Nlc01hcCwgZGlyKTtcbiAgLy8gRWFjaCBtZXJnZSBvZiBjbGFzc2VzIGdlbmVyYXRlcyBhIG5ldyBzZXF1ZW5jZSBvZiBhdG9taWMgY2xhc3NlcyB0aGF0IG5lZWRzIHRvIGJlIHJlZ2lzdGVyZWRcbiAgY29uc3QgbmV3U2VxdWVuY2VIYXNoID0gaGFzaFNlcXVlbmNlKGNsYXNzZXNNYXBIYXNoLCBkaXIsIHNlcXVlbmNlc0lkcyk7XG4gIGNvbnN0IG5ld0NsYXNzTmFtZSA9IG5ld1NlcXVlbmNlSGFzaCArICcgJyArIGF0b21pY0NsYXNzZXM7XG4gIG1lcmdlQ2xhc3Nlc0NhY2hlZFJlc3VsdHNbc2VxdWVuY2VNYXRjaF0gPSBuZXdDbGFzc05hbWU7XG4gIERFRklOSVRJT05fTE9PS1VQX1RBQkxFW25ld1NlcXVlbmNlSGFzaF0gPSBbcmVzdWx0Q2xhc3Nlc01hcCwgZGlyXTtcbiAgcmV0dXJuIHJlc3VsdENsYXNzTmFtZSArIG5ld0NsYXNzTmFtZTtcbn1cblxuZXhwb3J0IHsgbWVyZ2VDbGFzc2VzLCBtZXJnZUNsYXNzZXNDYWNoZWRSZXN1bHRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXJnZUNsYXNzZXMuZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAcGFyYW0gZW50cnkgLSBDU1MgYnVja2V0IGVudHJ5IHRoYXQgY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbiBhcnJheVxuICogQHJldHVybnMgQW4gYXJyYXkgd2hlcmUgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIENTUyBydWxlXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNTU0J1Y2tldEVudHJ5KGVudHJ5KSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShlbnRyeSkpIHtcbiAgICByZXR1cm4gW2VudHJ5XTtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBlbnRyeS5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDU1MgQnVja2V0IGNvbnRhaW5zIGFuIGVudHJ5IHdpdGggZ3JlYXRlciB0aGFuIDIgaXRlbXMsIHBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2dyaWZmZWwvaXNzdWVzJyk7XG4gIH1cbiAgcmV0dXJuIGVudHJ5O1xufVxuXG5leHBvcnQgeyBub3JtYWxpemVDU1NCdWNrZXRFbnRyeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplQ1NTQnVja2V0RW50cnkuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgREFUQV9QUklPUklUWV9BVFRSLCBEQVRBX0JVQ0tFVF9BVFRSIH0gZnJvbSAnLi4vY29uc3RhbnRzLmVzbS5qcyc7XG5cbmZ1bmN0aW9uIGNyZWF0ZUlzb21vcnBoaWNTdHlsZVNoZWV0KHN0eWxlRWxlbWVudCwgYnVja2V0TmFtZSwgcHJpb3JpdHksIGVsZW1lbnRBdHRyaWJ1dGVzKSB7XG4gIC8vIG5vIENTU1N0eWxlU2hlZXQgaW4gU1NSLCBqdXN0IGFwcGVuZCBydWxlcyBoZXJlIGZvciBzZXJ2ZXIgcmVuZGVyXG4gIGNvbnN0IF9fY3NzUnVsZXNGb3JTU1IgPSBbXTtcbiAgZWxlbWVudEF0dHJpYnV0ZXNbREFUQV9CVUNLRVRfQVRUUl0gPSBidWNrZXROYW1lO1xuICBlbGVtZW50QXR0cmlidXRlc1tEQVRBX1BSSU9SSVRZX0FUVFJdID0gU3RyaW5nKHByaW9yaXR5KTtcbiAgaWYgKHN0eWxlRWxlbWVudCkge1xuICAgIGZvciAoY29uc3QgYXR0ck5hbWUgaW4gZWxlbWVudEF0dHJpYnV0ZXMpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0ck5hbWUsIGVsZW1lbnRBdHRyaWJ1dGVzW2F0dHJOYW1lXSk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIGluc2VydFJ1bGUocnVsZSkge1xuICAgIGlmIChzdHlsZUVsZW1lbnQgPT09IG51bGwgfHwgc3R5bGVFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZUVsZW1lbnQuc2hlZXQpIHtcbiAgICAgIHJldHVybiBzdHlsZUVsZW1lbnQuc2hlZXQuaW5zZXJ0UnVsZShydWxlLCBzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXMubGVuZ3RoKTtcbiAgICB9XG4gICAgcmV0dXJuIF9fY3NzUnVsZXNGb3JTU1IucHVzaChydWxlKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGVsZW1lbnRBdHRyaWJ1dGVzLFxuICAgIGluc2VydFJ1bGUsXG4gICAgZWxlbWVudDogc3R5bGVFbGVtZW50LFxuICAgIGJ1Y2tldE5hbWUsXG4gICAgY3NzUnVsZXMoKSB7XG4gICAgICBpZiAoc3R5bGVFbGVtZW50ID09PSBudWxsIHx8IHN0eWxlRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVFbGVtZW50LnNoZWV0KSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHN0eWxlRWxlbWVudC5zaGVldC5jc3NSdWxlcykubWFwKGNzc1J1bGUgPT4gY3NzUnVsZS5jc3NUZXh0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBfX2Nzc1J1bGVzRm9yU1NSO1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUlzb21vcnBoaWNTdHlsZVNoZWV0RnJvbUVsZW1lbnQoZWxlbWVudCkge1xuICBjb25zdCBlbGVtZW50QXR0cmlidXRlcyA9IEFycmF5LmZyb20oZWxlbWVudC5hdHRyaWJ1dGVzKS5yZWR1Y2UoKGFjYywgYXR0cikgPT4ge1xuICAgIGFjY1thdHRyLm5hbWVdID0gYXR0ci52YWx1ZTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIGNvbnN0IHN0eWxlc2hlZXQgPSBjcmVhdGVJc29tb3JwaGljU3R5bGVTaGVldChlbGVtZW50LCBlbGVtZW50QXR0cmlidXRlc1tEQVRBX0JVQ0tFVF9BVFRSXSwgTnVtYmVyKGVsZW1lbnRBdHRyaWJ1dGVzW0RBVEFfUFJJT1JJVFlfQVRUUl0pLCBlbGVtZW50QXR0cmlidXRlcyk7XG4gIHJldHVybiBzdHlsZXNoZWV0O1xufVxuXG5leHBvcnQgeyBjcmVhdGVJc29tb3JwaGljU3R5bGVTaGVldCwgY3JlYXRlSXNvbW9ycGhpY1N0eWxlU2hlZXRGcm9tRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlSXNvbW9ycGhpY1N0eWxlU2hlZXQuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgREFUQV9CVUNLRVRfQVRUUiwgREFUQV9QUklPUklUWV9BVFRSIH0gZnJvbSAnLi4vY29uc3RhbnRzLmVzbS5qcyc7XG5pbXBvcnQgeyBjcmVhdGVJc29tb3JwaGljU3R5bGVTaGVldCB9IGZyb20gJy4vY3JlYXRlSXNvbW9ycGhpY1N0eWxlU2hlZXQuZXNtLmpzJztcblxuLyoqXG4gKiBPcmRlcmVkIHN0eWxlIGJ1Y2tldHMgdXNpbmcgdGhlaXIgc2hvcnQgcHNldWRvIG5hbWUuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IHN0eWxlQnVja2V0T3JkZXJpbmcgPSBbXG4vLyByZXNldCBzdHlsZXNcbidyJyxcbi8vIGNhdGNoLWFsbFxuJ2QnLFxuLy8gbGlua1xuJ2wnLFxuLy8gdmlzaXRlZFxuJ3YnLFxuLy8gZm9jdXMtd2l0aGluXG4ndycsXG4vLyBmb2N1c1xuJ2YnLFxuLy8gZm9jdXMtdmlzaWJsZVxuJ2knLFxuLy8gaG92ZXJcbidoJyxcbi8vIGFjdGl2ZVxuJ2EnLFxuLy8gYXQgcnVsZXMgZm9yIHJlc2V0IHN0eWxlc1xuJ3MnLFxuLy8ga2V5ZnJhbWVzXG4naycsXG4vLyBhdC1ydWxlc1xuJ3QnLFxuLy8gQG1lZGlhIHJ1bGVzXG4nbScsXG4vLyBAY29udGFpbmVyIHJ1bGVzXG4nYyddO1xuLy8gYXZvaWQgcmVwZWF0ZWRseSBjYWxsaW5nIGBpbmRleE9mYCB0byBkZXRlcm1pbmUgb3JkZXIgZHVyaW5nIG5ldyBpbnNlcnRpb25zXG5jb25zdCBzdHlsZUJ1Y2tldE9yZGVyaW5nTWFwID0gLyojX19QVVJFX18qL3N0eWxlQnVja2V0T3JkZXJpbmcucmVkdWNlKChhY2MsIGN1ciwgaikgPT4ge1xuICBhY2NbY3VyXSA9IGo7XG4gIHJldHVybiBhY2M7XG59LCB7fSk7XG5mdW5jdGlvbiBnZXRTdHlsZVNoZWV0S2V5KGJ1Y2tldE5hbWUsIG1lZGlhLCBwcmlvcml0eSkge1xuICByZXR1cm4gKGJ1Y2tldE5hbWUgPT09ICdtJyA/IGJ1Y2tldE5hbWUgKyBtZWRpYSA6IGJ1Y2tldE5hbWUpICsgcHJpb3JpdHk7XG59XG5mdW5jdGlvbiBnZXRTdHlsZVNoZWV0S2V5RnJvbUVsZW1lbnQoc3R5bGVFbCkge1xuICB2YXIgX2E7XG4gIGNvbnN0IGJ1Y2tldE5hbWUgPSBzdHlsZUVsLmdldEF0dHJpYnV0ZShEQVRBX0JVQ0tFVF9BVFRSKTtcbiAgY29uc3QgcHJpb3JpdHkgPSAoX2EgPSBzdHlsZUVsLmdldEF0dHJpYnV0ZShEQVRBX1BSSU9SSVRZX0FUVFIpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnMCc7XG4gIHJldHVybiBnZXRTdHlsZVNoZWV0S2V5KGJ1Y2tldE5hbWUsIHN0eWxlRWwubWVkaWEsIHByaW9yaXR5KTtcbn1cbi8qKlxuICogTGF6aWx5IGFkZHMgYSBgPHN0eWxlPmAgYnVja2V0IHRvIHRoZSBgPGhlYWQ+YC4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBzdHlsZSBidWNrZXRzIGFyZSBvcmRlcmVkLlxuICovXG5mdW5jdGlvbiBnZXRTdHlsZVNoZWV0Rm9yQnVja2V0KGJ1Y2tldE5hbWUsIHRhcmdldERvY3VtZW50LCBpbnNlcnRpb25Qb2ludCwgcmVuZGVyZXIsIG1ldGFkYXRhID0ge30pIHtcbiAgdmFyIF9hLCBfYjtcbiAgY29uc3QgaXNNZWRpYUJ1Y2tldCA9IGJ1Y2tldE5hbWUgPT09ICdtJztcbiAgY29uc3QgbWVkaWEgPSAoX2EgPSBtZXRhZGF0YVsnbSddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnMCc7XG4gIGNvbnN0IHByaW9yaXR5ID0gKF9iID0gbWV0YWRhdGFbJ3AnXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgY29uc3Qgc3R5bGVzaGVldEtleSA9IGdldFN0eWxlU2hlZXRLZXkoYnVja2V0TmFtZSwgbWVkaWEsIHByaW9yaXR5KTtcbiAgaWYgKCFyZW5kZXJlci5zdHlsZXNoZWV0c1tzdHlsZXNoZWV0S2V5XSkge1xuICAgIGNvbnN0IHRhZyA9IHRhcmdldERvY3VtZW50ICYmIHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3Qgc3R5bGVzaGVldCA9IGNyZWF0ZUlzb21vcnBoaWNTdHlsZVNoZWV0KHRhZywgYnVja2V0TmFtZSwgcHJpb3JpdHksIE9iamVjdC5hc3NpZ24oe30sIHJlbmRlcmVyLnN0eWxlRWxlbWVudEF0dHJpYnV0ZXMsIGlzTWVkaWFCdWNrZXQgJiYge1xuICAgICAgbWVkaWFcbiAgICB9KSk7XG4gICAgcmVuZGVyZXIuc3R5bGVzaGVldHNbc3R5bGVzaGVldEtleV0gPSBzdHlsZXNoZWV0O1xuICAgIGlmICh0YXJnZXREb2N1bWVudCAmJiB0YWcpIHtcbiAgICAgIHRhcmdldERvY3VtZW50LmhlYWQuaW5zZXJ0QmVmb3JlKHRhZywgZmluZEluc2VydGlvblBvaW50KHRhcmdldERvY3VtZW50LCBpbnNlcnRpb25Qb2ludCwgYnVja2V0TmFtZSwgcmVuZGVyZXIsIG1ldGFkYXRhKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZW5kZXJlci5zdHlsZXNoZWV0c1tzdHlsZXNoZWV0S2V5XTtcbn1cbmZ1bmN0aW9uIGlzU2FtZUluc2VydGlvbktleShlbGVtZW50LCBidWNrZXROYW1lLCBtZXRhZGF0YSkge1xuICB2YXIgX2EsIF9iO1xuICBjb25zdCB0YXJnZXRLZXkgPSBidWNrZXROYW1lICsgKChfYSA9IG1ldGFkYXRhWydtJ10pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKTtcbiAgY29uc3QgZWxlbWVudEtleSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKERBVEFfQlVDS0VUX0FUVFIpICsgKChfYiA9IGVsZW1lbnQubWVkaWEpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcnKTtcbiAgcmV0dXJuIHRhcmdldEtleSA9PT0gZWxlbWVudEtleTtcbn1cbi8qKlxuICogRmluZHMgYW4gZWxlbWVudCBiZWZvcmUgd2hpY2ggdGhlIG5ldyBidWNrZXQgc3R5bGUgZWxlbWVudCBzaG91bGQgYmUgaW5zZXJ0ZWQgZm9sbG93aW5nIHRoZSBidWNrZXQgc29ydCBvcmRlci5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0RG9jdW1lbnQgLSBBIGRvY3VtZW50XG4gKiBAcGFyYW0gaW5zZXJ0aW9uUG9pbnQgLSBBbiBlbGVtZW50IHRoYXQgd2lsbCBiZSB1c2VkIGFzIGFuIGluaXRpYWwgaW5zZXJ0aW9uIHBvaW50XG4gKiBAcGFyYW0gdGFyZ2V0QnVja2V0IC0gVGhlIGJ1Y2tldCB0aGF0IHNob3VsZCBiZSBpbnNlcnRlZCB0byBET01cbiAqIEBwYXJhbSByZW5kZXJlciAtIEdyaWZmZWwgcmVuZGVyZXJcbiAqIEBwYXJhbSBtZXRhZGF0YSAtIG1ldGFkYXRhIGZvciBDU1MgcnVsZVxuICogQHJldHVybnMgLSBTbWFsbGVzdCBzdHlsZSBlbGVtZW50IHdpdGggZ3JlYXRlciBzb3J0IG9yZGVyIHRoYW4gdGhlIGN1cnJlbnQgYnVja2V0XG4gKi9cbmZ1bmN0aW9uIGZpbmRJbnNlcnRpb25Qb2ludCh0YXJnZXREb2N1bWVudCwgaW5zZXJ0aW9uUG9pbnQsIHRhcmdldEJ1Y2tldCwgcmVuZGVyZXIsIG1ldGFkYXRhID0ge30pIHtcbiAgdmFyIF9hLCBfYjtcbiAgY29uc3QgdGFyZ2V0T3JkZXIgPSBzdHlsZUJ1Y2tldE9yZGVyaW5nTWFwW3RhcmdldEJ1Y2tldF07XG4gIGNvbnN0IG1lZGlhID0gKF9hID0gbWV0YWRhdGFbJ20nXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gIGNvbnN0IHByaW9yaXR5ID0gKF9iID0gbWV0YWRhdGFbJ3AnXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgLy8gU2ltaWxhciB0byBqYXZhc2NyaXB0IHNvcnQgY29tcGFyYXRvcnMgd2hlcmVcbiAgLy8gYSBwb3NpdGl2ZSB2YWx1ZSBpcyBpbmNyZWFzaW5nIHNvcnQgb3JkZXJcbiAgLy8gYSBuZWdhdGl2ZSB2YWx1ZSBpcyBkZWNyZWFzaW5nIHNvcnQgb3JkZXJcbiAgbGV0IGNvbXBhcmVyID0gZWwgPT4gdGFyZ2V0T3JkZXIgLSBzdHlsZUJ1Y2tldE9yZGVyaW5nTWFwW2VsLmdldEF0dHJpYnV0ZShEQVRBX0JVQ0tFVF9BVFRSKV07XG4gIGxldCBzdHlsZUVsZW1lbnRzID0gdGFyZ2V0RG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yQWxsKGBbJHtEQVRBX0JVQ0tFVF9BVFRSfV1gKTtcbiAgaWYgKHRhcmdldEJ1Y2tldCA9PT0gJ20nKSB7XG4gICAgY29uc3QgbWVkaWFFbGVtZW50cyA9IHRhcmdldERvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvckFsbChgWyR7REFUQV9CVUNLRVRfQVRUUn09XCIke3RhcmdldEJ1Y2tldH1cIl1gKTtcbiAgICAvLyBvbmx5IHJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHNlYXJjaCBhbmQgY2hhbmdlIGNvbXBhcmVyXG4gICAgLy8gaWYgdGhlcmUgYXJlIG90aGVyIG1lZGlhIGJ1Y2tldHMgYWxyZWFkeSBvbiB0aGUgcGFnZVxuICAgIGlmIChtZWRpYUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgc3R5bGVFbGVtZW50cyA9IG1lZGlhRWxlbWVudHM7XG4gICAgICBjb21wYXJlciA9IGVsID0+IHJlbmRlcmVyLmNvbXBhcmVNZWRpYVF1ZXJpZXMobWVkaWEsIGVsLm1lZGlhKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY29tcGFyZXJXaXRoUHJpb3JpdHkgPSBlbCA9PiB7XG4gICAgaWYgKGlzU2FtZUluc2VydGlvbktleShlbCwgdGFyZ2V0QnVja2V0LCBtZXRhZGF0YSkpIHtcbiAgICAgIHJldHVybiBwcmlvcml0eSAtIE51bWJlcihlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcHJpb3JpdHknKSk7XG4gICAgfVxuICAgIHJldHVybiBjb21wYXJlcihlbCk7XG4gIH07XG4gIGNvbnN0IGxlbmd0aCA9IHN0eWxlRWxlbWVudHMubGVuZ3RoO1xuICBsZXQgaW5kZXggPSBsZW5ndGggLSAxO1xuICB3aGlsZSAoaW5kZXggPj0gMCkge1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IHN0eWxlRWxlbWVudHMuaXRlbShpbmRleCk7XG4gICAgaWYgKGNvbXBhcmVyV2l0aFByaW9yaXR5KHN0eWxlRWxlbWVudCkgPiAwKSB7XG4gICAgICByZXR1cm4gc3R5bGVFbGVtZW50Lm5leHRTaWJsaW5nO1xuICAgIH1cbiAgICBpbmRleC0tO1xuICB9XG4gIGlmIChsZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHN0eWxlRWxlbWVudHMuaXRlbSgwKTtcbiAgfVxuICByZXR1cm4gaW5zZXJ0aW9uUG9pbnQgPyBpbnNlcnRpb25Qb2ludC5uZXh0U2libGluZyA6IG51bGw7XG59XG5cbmV4cG9ydCB7IGdldFN0eWxlU2hlZXRGb3JCdWNrZXQsIGdldFN0eWxlU2hlZXRLZXksIGdldFN0eWxlU2hlZXRLZXlGcm9tRWxlbWVudCwgc3R5bGVCdWNrZXRPcmRlcmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0U3R5bGVTaGVldEZvckJ1Y2tldC5lc20uanMubWFwXG4iLCIvKipcbiAqIFN1ZmZpeGVzIHRvIGJlIGlnbm9yZWQgaW4gY2FzZSBvZiBlcnJvclxuICovXG5jb25zdCBpZ25vcmVTdWZmaXhlcyA9IC8qI19fUFVSRV9fKi9bJy1tb3otcGxhY2Vob2xkZXInLCAnLW1vei1mb2N1cy1pbm5lcicsICctbW96LWZvY3VzcmluZycsICctbXMtaW5wdXQtcGxhY2Vob2xkZXInLCAnLW1vei1yZWFkLXdyaXRlJywgJy1tb3otcmVhZC1vbmx5J10uam9pbignfCcpO1xuY29uc3QgaWdub3JlU3VmZml4ZXNSZWdleCA9IC8qI19fUFVSRV9fKi9uZXcgUmVnRXhwKGA6KCR7aWdub3JlU3VmZml4ZXN9KWApO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBDYWxscyBgc2hlZXQuaW5zZXJ0UnVsZWAgYW5kIGNhdGNoZXMgZXJyb3JzIHJlbGF0ZWQgdG8gYnJvd3NlciBwcmVmaXhlcy5cbiAqL1xuZnVuY3Rpb24gc2FmZUluc2VydFJ1bGUoc2hlZXQsIHJ1bGVDU1MpIHtcbiAgdHJ5IHtcbiAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGVDU1MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gV2UndmUgZGlzYWJsZWQgdGhlc2Ugd2FybmluZ3MgZHVlIHRvIGZhbHNlLXBvc2l0aXZlIGVycm9ycyB3aXRoIGJyb3dzZXIgcHJlZml4ZXNcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhaWdub3JlU3VmZml4ZXNSZWdleC50ZXN0KHJ1bGVDU1MpKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcihgVGhlcmUgd2FzIGEgcHJvYmxlbSBpbnNlcnRpbmcgdGhlIGZvbGxvd2luZyBydWxlOiBcIiR7cnVsZUNTU31cImAsIGUpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgeyBzYWZlSW5zZXJ0UnVsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2FmZUluc2VydFJ1bGUuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgaW5qZWN0RGV2VG9vbHMgfSBmcm9tICcuLi9kZXZ0b29scy9pbmplY3REZXZUb29scy5lc20uanMnO1xuaW1wb3J0IHsgaXNEZXZUb29sc0VuYWJsZWQgfSBmcm9tICcuLi9kZXZ0b29scy9pc0RldlRvb2xzRW5hYmxlZC5lc20uanMnO1xuaW1wb3J0IHsgZGVidWdEYXRhIH0gZnJvbSAnLi4vZGV2dG9vbHMvc3RvcmUuZXNtLmpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUNTU0J1Y2tldEVudHJ5IH0gZnJvbSAnLi4vcnVudGltZS91dGlscy9ub3JtYWxpemVDU1NCdWNrZXRFbnRyeS5lc20uanMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVTaGVldEZvckJ1Y2tldCB9IGZyb20gJy4vZ2V0U3R5bGVTaGVldEZvckJ1Y2tldC5lc20uanMnO1xuaW1wb3J0IHsgc2FmZUluc2VydFJ1bGUgfSBmcm9tICcuL3NhZmVJbnNlcnRSdWxlLmVzbS5qcyc7XG5cbmxldCBsYXN0SW5kZXggPSAwO1xuLyoqIEBpbnRlcm5hbCAqL1xuY29uc3QgZGVmYXVsdENvbXBhcmVNZWRpYVF1ZXJpZXMgPSAoYSwgYikgPT4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDA7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2VzIG9mIGEgcmVuZGVyZXIuXG4gKlxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiBjcmVhdGVET01SZW5kZXJlcih0YXJnZXREb2N1bWVudCA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBkb2N1bWVudCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBjbGFzc05hbWVIYXNoU2FsdCxcbiAgICB1bnN0YWJsZV9maWx0ZXJDU1NSdWxlLFxuICAgIGluc2VydGlvblBvaW50LFxuICAgIHN0eWxlRWxlbWVudEF0dHJpYnV0ZXMsXG4gICAgY29tcGFyZU1lZGlhUXVlcmllcyA9IGRlZmF1bHRDb21wYXJlTWVkaWFRdWVyaWVzXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCByZW5kZXJlciA9IHtcbiAgICBjbGFzc05hbWVIYXNoU2FsdCxcbiAgICBpbnNlcnRpb25DYWNoZToge30sXG4gICAgc3R5bGVzaGVldHM6IHt9LFxuICAgIHN0eWxlRWxlbWVudEF0dHJpYnV0ZXM6IE9iamVjdC5mcmVlemUoc3R5bGVFbGVtZW50QXR0cmlidXRlcyksXG4gICAgY29tcGFyZU1lZGlhUXVlcmllcyxcbiAgICBpZDogYGQke2xhc3RJbmRleCsrfWAsXG4gICAgaW5zZXJ0Q1NTUnVsZXMoY3NzUnVsZXMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cbiAgICAgIGZvciAoY29uc3Qgc3R5bGVCdWNrZXROYW1lIGluIGNzc1J1bGVzKSB7XG4gICAgICAgIGNvbnN0IGNzc1J1bGVzRm9yQnVja2V0ID0gY3NzUnVsZXNbc3R5bGVCdWNrZXROYW1lXTtcbiAgICAgICAgLy8gVGhpcyBpcyBhIGhvdCBwYXRoIGluIHJlbmRlcmluZyBzdHlsZXM6IFwiLmxlbmd0aFwiIGlzIGNhY2hlZCBpbiBcImxcIiB2YXIgdG8gYXZvaWQgYWNjZXNzZXMgdGhlIHByb3BlcnR5XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gY3NzUnVsZXNGb3JCdWNrZXQubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgW3J1bGVDU1MsIG1ldGFkYXRhXSA9IG5vcm1hbGl6ZUNTU0J1Y2tldEVudHJ5KGNzc1J1bGVzRm9yQnVja2V0W2ldKTtcbiAgICAgICAgICBjb25zdCBzaGVldCA9IGdldFN0eWxlU2hlZXRGb3JCdWNrZXQoc3R5bGVCdWNrZXROYW1lLCB0YXJnZXREb2N1bWVudCwgaW5zZXJ0aW9uUG9pbnQgfHwgbnVsbCwgcmVuZGVyZXIsIG1ldGFkYXRhKTtcbiAgICAgICAgICBpZiAocmVuZGVyZXIuaW5zZXJ0aW9uQ2FjaGVbcnVsZUNTU10pIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZW5kZXJlci5pbnNlcnRpb25DYWNoZVtydWxlQ1NTXSA9IHN0eWxlQnVja2V0TmFtZTtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBpc0RldlRvb2xzRW5hYmxlZCkge1xuICAgICAgICAgICAgZGVidWdEYXRhLmFkZENTU1J1bGUocnVsZUNTUyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1bnN0YWJsZV9maWx0ZXJDU1NSdWxlKSB7XG4gICAgICAgICAgICBpZiAodW5zdGFibGVfZmlsdGVyQ1NTUnVsZShydWxlQ1NTKSkge1xuICAgICAgICAgICAgICBzYWZlSW5zZXJ0UnVsZShzaGVldCwgcnVsZUNTUyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNhZmVJbnNlcnRSdWxlKHNoZWV0LCBydWxlQ1NTKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGlmICh0YXJnZXREb2N1bWVudCAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGV2VG9vbHNFbmFibGVkKSB7XG4gICAgaW5qZWN0RGV2VG9vbHModGFyZ2V0RG9jdW1lbnQpO1xuICB9XG4gIHJldHVybiByZW5kZXJlcjtcbn1cblxuZXhwb3J0IHsgY3JlYXRlRE9NUmVuZGVyZXIsIGRlZmF1bHRDb21wYXJlTWVkaWFRdWVyaWVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGVET01SZW5kZXJlci5lc20uanMubWFwXG4iLCIvKipcbiAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgaW5zZXJ0aW9uIGZhY3RvcnkuIEluc2VydHMgc3R5bGVzIG9ubHkgb25jZSBwZXIgcmVuZGVyZXIgYW5kIHBlcmZvcm1zXG4gKiBpbnNlcnRpb24gaW1tZWRpYXRlbHkgYWZ0ZXIgc3R5bGVzIGNvbXB1dGF0aW9uLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBpbnNlcnRpb25GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBpbnNlcnRpb25DYWNoZSA9IHt9O1xuICByZXR1cm4gZnVuY3Rpb24gaW5zZXJ0U3R5bGVzKHJlbmRlcmVyLCBjc3NSdWxlcykge1xuICAgIGlmIChpbnNlcnRpb25DYWNoZVtyZW5kZXJlci5pZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVuZGVyZXIuaW5zZXJ0Q1NTUnVsZXMoY3NzUnVsZXMpO1xuICAgICAgaW5zZXJ0aW9uQ2FjaGVbcmVuZGVyZXIuaWRdID0gdHJ1ZTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgeyBpbnNlcnRpb25GYWN0b3J5IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnNlcnRpb25GYWN0b3J5LmVzbS5qcy5tYXBcbiIsIi8qKlxuICogVGFrZXMgYW4gYXJyYXkgb2YgW2tleVZhbHVlMSwga2V5VmFsdWUyXSBwYWlycyBhbmQgY3JlYXRlcyBhbiBvYmplY3Qgb2Yge2tleVZhbHVlMToga2V5VmFsdWUyLCBrZXlWYWx1ZTI6IGtleVZhbHVlMX1cbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IHRoZSBhcnJheSBvZiBwYWlyc1xuICogQHJldHVybiB7T2JqZWN0fSB0aGUge2tleSwgdmFsdWV9IHBhaXIgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGFycmF5VG9PYmplY3QoYXJyYXkpIHtcbiAgcmV0dXJuIGFycmF5LnJlZHVjZShmdW5jdGlvbiAob2JqLCBfcmVmKSB7XG4gICAgdmFyIHByb3AxID0gX3JlZlswXSxcbiAgICAgIHByb3AyID0gX3JlZlsxXTtcbiAgICBvYmpbcHJvcDFdID0gcHJvcDI7XG4gICAgb2JqW3Byb3AyXSA9IHByb3AxO1xuICAgIHJldHVybiBvYmo7XG4gIH0sIHt9KTtcbn1cbmZ1bmN0aW9uIGlzQm9vbGVhbih2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdib29sZWFuJztcbn1cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnZnVuY3Rpb24nO1xufVxuZnVuY3Rpb24gaXNOdW1iZXIodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnbnVtYmVyJztcbn1cbmZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKHZhbCkge1xuICByZXR1cm4gdmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgPT09ICd1bmRlZmluZWQnO1xufVxuZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XG4gIHJldHVybiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCc7XG59XG5mdW5jdGlvbiBpc1N0cmluZyh2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnO1xufVxuZnVuY3Rpb24gaW5jbHVkZXMoaW5jbHVzaXZlLCBpbmNsdXNlZSkge1xuICByZXR1cm4gaW5jbHVzaXZlLmluZGV4T2YoaW5jbHVzZWUpICE9PSAtMTtcbn1cblxuLyoqXG4gKiBGbGlwIHRoZSBzaWduIG9mIGEgQ1NTIHZhbHVlLCBwb3NzaWJseSB3aXRoIGEgdW5pdC5cbiAqXG4gKiBXZSBjYW4ndCBqdXN0IG5lZ2F0ZSB0aGUgdmFsdWUgd2l0aCB1bmFyeSBtaW51cyBkdWUgdG8gdGhlIHVuaXRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgLSB0aGUgb3JpZ2luYWwgdmFsdWUgKGZvciBleGFtcGxlIDc3JSlcbiAqIEByZXR1cm4ge1N0cmluZ30gdGhlIHJlc3VsdCAoZm9yIGV4YW1wbGUgLTc3JSlcbiAqL1xuZnVuY3Rpb24gZmxpcFNpZ24odmFsdWUpIHtcbiAgaWYgKHBhcnNlRmxvYXQodmFsdWUpID09PSAwKSB7XG4gICAgLy8gRG9uJ3QgbWFuZ2xlIHplcm9lc1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodmFsdWVbMF0gPT09ICctJykge1xuICAgIHJldHVybiB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuICByZXR1cm4gXCItXCIgKyB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGZsaXBUcmFuc2Zvcm1TaWduKG1hdGNoLCBwcmVmaXgsIG9mZnNldCwgc3VmZml4KSB7XG4gIHJldHVybiBwcmVmaXggKyBmbGlwU2lnbihvZmZzZXQpICsgc3VmZml4O1xufVxuXG4vKipcbiAqIFRha2VzIGEgcGVyY2VudGFnZSBmb3IgYmFja2dyb3VuZCBwb3NpdGlvbiBhbmQgaW52ZXJ0cyBpdC5cbiAqIFRoaXMgd2FzIGNvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBDU1NKYW51czpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jc3NqYW51cy9jc3NqYW51cy9ibG9iLzQyNDVmODM0MzY1ZjZjZmIwMjM5MTkxYTE1MTQzMmZiODVhYmFiMjMvc3JjL2Nzc2phbnVzLmpzI0wxNTItTDE3NVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlIC0gdGhlIG9yaWdpbmFsIHZhbHVlIChmb3IgZXhhbXBsZSA3NyUpXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHRoZSByZXN1bHQgKGZvciBleGFtcGxlIDIzJSlcbiAqL1xuZnVuY3Rpb24gY2FsY3VsYXRlTmV3QmFja2dyb3VuZFBvc2l0aW9uKHZhbHVlKSB7XG4gIHZhciBpZHggPSB2YWx1ZS5pbmRleE9mKCcuJyk7XG4gIGlmIChpZHggPT09IC0xKSB7XG4gICAgdmFsdWUgPSAxMDAgLSBwYXJzZUZsb2F0KHZhbHVlKSArIFwiJVwiO1xuICB9IGVsc2Uge1xuICAgIC8vIFR3byBvZmYsIG9uZSBmb3IgdGhlIFwiJVwiIGF0IHRoZSBlbmQsIG9uZSBmb3IgdGhlIGRvdCBpdHNlbGZcbiAgICB2YXIgbGVuID0gdmFsdWUubGVuZ3RoIC0gaWR4IC0gMjtcbiAgICB2YWx1ZSA9IDEwMCAtIHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIHZhbHVlID0gdmFsdWUudG9GaXhlZChsZW4pICsgXCIlXCI7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFRoaXMgdGFrZXMgYSBsaXN0IG9mIENTUyB2YWx1ZXMgYW5kIGNvbnZlcnRzIGl0IHRvIGFuIGFycmF5XG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgLSBzb21ldGhpbmcgbGlrZSBgMXB4YCwgYDFweCAyZW1gLCBvciBgM3B0IHJnYigxNTAsIDIzMCwgNTUwKSA0MHB4IGNhbGMoMTAwJSAtIDVweClgXG4gKiBAcmV0dXJuIHtBcnJheX0gdGhlIHNwbGl0IHZhbHVlcyAoZm9yIGV4YW1wbGU6IGBbJzNwdCcsICdyZ2IoMTUwLCAyMzAsIDU1MCknLCAnNDBweCcsICdjYWxjKDEwMCUgLSA1cHgpJ11gKVxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZXNBc0xpc3QodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyArL2csICcgJykgLy8gcmVtb3ZlIGFsbCBleHRyYW5lb3VzIHNwYWNlc1xuICAuc3BsaXQoJyAnKS5tYXAoZnVuY3Rpb24gKGkpIHtcbiAgICByZXR1cm4gaS50cmltKCk7XG4gIH0pIC8vIGdldCByaWQgb2YgZXh0cmEgc3BhY2UgYmVmb3JlL2FmdGVyIGVhY2ggaXRlbVxuICAuZmlsdGVyKEJvb2xlYW4pIC8vIGdldCByaWQgb2YgZW1wdHkgc3RyaW5nc1xuICAvLyBqb2luIGl0ZW1zIHdoaWNoIGFyZSB3aXRoaW4gcGFyZW50aGVzZVxuICAvLyBsdWNraWx5IGBjYWxjICgxMDAlIC0gNXB4KWAgaXMgaW52YWxpZCBzeW50YXggYW5kIGl0IG11c3QgYmUgYGNhbGMoMTAwJSAtIDVweClgLCBvdGhlcndpc2UgdGhpcyB3b3VsZCBiZSBldmVuIG1vcmUgY29tcGxleFxuICAucmVkdWNlKGZ1bmN0aW9uIChfcmVmMiwgaXRlbSkge1xuICAgIHZhciBsaXN0ID0gX3JlZjIubGlzdCxcbiAgICAgIHN0YXRlID0gX3JlZjIuc3RhdGU7XG4gICAgdmFyIG9wZW5QYXJhbnNDb3VudCA9IChpdGVtLm1hdGNoKC9cXCgvZykgfHwgW10pLmxlbmd0aDtcbiAgICB2YXIgY2xvc2VkUGFyYW5zQ291bnQgPSAoaXRlbS5tYXRjaCgvXFwpL2cpIHx8IFtdKS5sZW5ndGg7XG4gICAgaWYgKHN0YXRlLnBhcmVuc0RlcHRoID4gMCkge1xuICAgICAgbGlzdFtsaXN0Lmxlbmd0aCAtIDFdID0gbGlzdFtsaXN0Lmxlbmd0aCAtIDFdICsgXCIgXCIgKyBpdGVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICAgIHN0YXRlLnBhcmVuc0RlcHRoICs9IG9wZW5QYXJhbnNDb3VudCAtIGNsb3NlZFBhcmFuc0NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICBsaXN0OiBsaXN0LFxuICAgICAgc3RhdGU6IHN0YXRlXG4gICAgfTtcbiAgfSwge1xuICAgIGxpc3Q6IFtdLFxuICAgIHN0YXRlOiB7XG4gICAgICBwYXJlbnNEZXB0aDogMFxuICAgIH1cbiAgfSkubGlzdDtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGludGVuZGVkIGZvciBwcm9wZXJ0aWVzIHRoYXQgYXJlIGB0b3AgcmlnaHQgYm90dG9tIGxlZnRgIGFuZCB3aWxsIHN3aXRjaCB0aGVtIHRvIGB0b3AgbGVmdCBib3R0b20gcmlnaHRgXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgLSBgMXB4IDJweCAzcHggNHB4YCBmb3IgZXhhbXBsZSwgYnV0IGFsc28gaGFuZGxlcyBjYXNlcyB3aGVyZSB0aGVyZSBhcmUgdG9vIGZldy90b28gbWFueSBhbmRcbiAqIHNpbXBseSByZXR1cm5zIHRoZSB2YWx1ZSBpbiB0aG9zZSBjYXNlcyAod2hpY2ggaXMgdGhlIGNvcnJlY3QgYmVoYXZpb3IpXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHRoZSByZXN1bHQgLSBgMXB4IDRweCAzcHggMnB4YCBmb3IgZXhhbXBsZS5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlUXVhcnRldFZhbHVlcyh2YWx1ZSkge1xuICB2YXIgc3BsaXRWYWx1ZXMgPSBnZXRWYWx1ZXNBc0xpc3QodmFsdWUpO1xuICBpZiAoc3BsaXRWYWx1ZXMubGVuZ3RoIDw9IDMgfHwgc3BsaXRWYWx1ZXMubGVuZ3RoID4gNCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgdG9wID0gc3BsaXRWYWx1ZXNbMF0sXG4gICAgcmlnaHQgPSBzcGxpdFZhbHVlc1sxXSxcbiAgICBib3R0b20gPSBzcGxpdFZhbHVlc1syXSxcbiAgICBsZWZ0ID0gc3BsaXRWYWx1ZXNbM107XG4gIHJldHVybiBbdG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0XS5qb2luKCcgJyk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcnxPYmplY3R9IHZhbHVlIGNzcyBwcm9wZXJ0eSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyBJZiB0aGUgY3NzIHByb3BlcnR5IHZhbHVlIGNhbihzaG91bGQ/KSBoYXZlIGFuIFJUTCBlcXVpdmFsZW50XG4gKi9cbmZ1bmN0aW9uIGNhbkNvbnZlcnRWYWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gIWlzQm9vbGVhbih2YWx1ZSkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBTcGxpdHMgYSBzaGFkb3cgc3R5bGUgaW50byBpdHMgc2VwYXJhdGUgc2hhZG93cyB1c2luZyB0aGUgY29tbWEgZGVsaW1pdGVyLCBidXQgY3JlYXRpbmcgYW4gZXhjZXB0aW9uXG4gKiBmb3IgY29tbWEgc2VwYXJhdGVkIHZhbHVlcyBpbiBwYXJlbnRoZXNlcyBvZnRlbiB1c2VkIGZvciByZ2JhIGNvbG91cnMuXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtBcnJheX0gYXJyYXkgb2YgYWxsIGJveCBzaGFkb3cgdmFsdWVzIGluIHRoZSBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gc3BsaXRTaGFkb3codmFsdWUpIHtcbiAgdmFyIHNoYWRvd3MgPSBbXTtcbiAgdmFyIHN0YXJ0ID0gMDtcbiAgdmFyIGVuZCA9IDA7XG4gIHZhciByZ2JhID0gZmFsc2U7XG4gIHdoaWxlIChlbmQgPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICBpZiAoIXJnYmEgJiYgdmFsdWVbZW5kXSA9PT0gJywnKSB7XG4gICAgICBzaGFkb3dzLnB1c2godmFsdWUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpLnRyaW0oKSk7XG4gICAgICBlbmQrKztcbiAgICAgIHN0YXJ0ID0gZW5kO1xuICAgIH0gZWxzZSBpZiAodmFsdWVbZW5kXSA9PT0gXCIoXCIpIHtcbiAgICAgIHJnYmEgPSB0cnVlO1xuICAgICAgZW5kKys7XG4gICAgfSBlbHNlIGlmICh2YWx1ZVtlbmRdID09PSAnKScpIHtcbiAgICAgIHJnYmEgPSBmYWxzZTtcbiAgICAgIGVuZCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmQrKztcbiAgICB9XG4gIH1cblxuICAvLyBwdXNoIHRoZSBsYXN0IHNoYWRvdyB2YWx1ZSBpZiB0aGVyZSBpcyBvbmVcbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgaWYgKHN0YXJ0ICE9IGVuZCkge1xuICAgIHNoYWRvd3MucHVzaCh2YWx1ZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCArIDEpKTtcbiAgfVxuICByZXR1cm4gc2hhZG93cztcbn1cblxuLy8gc29tZSB2YWx1ZXMgcmVxdWlyZSBhIGxpdHRsZSBmdWRnaW5nLCB0aGF0IGZ1ZGdpbmcgZ29lcyBoZXJlLlxudmFyIHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzID0ge1xuICBwYWRkaW5nOiBmdW5jdGlvbiBwYWRkaW5nKF9yZWYpIHtcbiAgICB2YXIgdmFsdWUgPSBfcmVmLnZhbHVlO1xuICAgIGlmIChpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZVF1YXJ0ZXRWYWx1ZXModmFsdWUpO1xuICB9LFxuICB0ZXh0U2hhZG93OiBmdW5jdGlvbiB0ZXh0U2hhZG93KF9yZWYyKSB7XG4gICAgdmFyIHZhbHVlID0gX3JlZjIudmFsdWU7XG4gICAgdmFyIGZsaXBwZWRTaGFkb3dzID0gc3BsaXRTaGFkb3codmFsdWUpLm1hcChmdW5jdGlvbiAoc2hhZG93KSB7XG4gICAgICAvLyBpbnRlbnRpb25hbGx5IGxlYXZpbmcgb2ZmIHRoZSBgZ2AgZmxhZyBoZXJlIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGNoYW5nZSB0aGUgZmlyc3QgbnVtYmVyICh3aGljaCBpcyB0aGUgb2Zmc2V0LXgpXG4gICAgICByZXR1cm4gc2hhZG93LnJlcGxhY2UoLyhefFxccykoLSopKFsufFxcZF0rKS8sIGZ1bmN0aW9uIChtYXRjaCwgd2hpdGVTcGFjZSwgbmVnYXRpdmUsIG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyID09PSAnMCcpIHtcbiAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRvdWJsZU5lZ2F0aXZlID0gbmVnYXRpdmUgPT09ICcnID8gJy0nIDogJyc7XG4gICAgICAgIHJldHVybiBcIlwiICsgd2hpdGVTcGFjZSArIGRvdWJsZU5lZ2F0aXZlICsgbnVtYmVyO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZsaXBwZWRTaGFkb3dzLmpvaW4oJywnKTtcbiAgfSxcbiAgYm9yZGVyQ29sb3I6IGZ1bmN0aW9uIGJvcmRlckNvbG9yKF9yZWYzKSB7XG4gICAgdmFyIHZhbHVlID0gX3JlZjMudmFsdWU7XG4gICAgcmV0dXJuIGhhbmRsZVF1YXJ0ZXRWYWx1ZXModmFsdWUpO1xuICB9LFxuICBib3JkZXJSYWRpdXM6IGZ1bmN0aW9uIGJvcmRlclJhZGl1cyhfcmVmNCkge1xuICAgIHZhciB2YWx1ZSA9IF9yZWY0LnZhbHVlO1xuICAgIGlmIChpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKGluY2x1ZGVzKHZhbHVlLCAnLycpKSB7XG4gICAgICB2YXIgX3ZhbHVlJHNwbGl0ID0gdmFsdWUuc3BsaXQoJy8nKSxcbiAgICAgICAgcmFkaXVzMSA9IF92YWx1ZSRzcGxpdFswXSxcbiAgICAgICAgcmFkaXVzMiA9IF92YWx1ZSRzcGxpdFsxXTtcbiAgICAgIHZhciBjb252ZXJ0ZWRSYWRpdXMxID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYm9yZGVyUmFkaXVzKHtcbiAgICAgICAgdmFsdWU6IHJhZGl1czEudHJpbSgpXG4gICAgICB9KTtcbiAgICAgIHZhciBjb252ZXJ0ZWRSYWRpdXMyID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYm9yZGVyUmFkaXVzKHtcbiAgICAgICAgdmFsdWU6IHJhZGl1czIudHJpbSgpXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb252ZXJ0ZWRSYWRpdXMxICsgXCIgLyBcIiArIGNvbnZlcnRlZFJhZGl1czI7XG4gICAgfVxuICAgIHZhciBzcGxpdFZhbHVlcyA9IGdldFZhbHVlc0FzTGlzdCh2YWx1ZSk7XG4gICAgc3dpdGNoIChzcGxpdFZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybiBzcGxpdFZhbHVlcy5yZXZlcnNlKCkuam9pbignICcpO1xuICAgICAgICB9XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgdG9wTGVmdCA9IHNwbGl0VmFsdWVzWzBdLFxuICAgICAgICAgICAgdG9wUmlnaHQgPSBzcGxpdFZhbHVlc1sxXSxcbiAgICAgICAgICAgIGJvdHRvbVJpZ2h0ID0gc3BsaXRWYWx1ZXNbMl0sXG4gICAgICAgICAgICBib3R0b21MZWZ0ID0gc3BsaXRWYWx1ZXNbM107XG4gICAgICAgICAgcmV0dXJuIFt0b3BSaWdodCwgdG9wTGVmdCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHRdLmpvaW4oJyAnKTtcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgfSxcbiAgYmFja2dyb3VuZDogZnVuY3Rpb24gYmFja2dyb3VuZChfcmVmNSkge1xuICAgIHZhciB2YWx1ZSA9IF9yZWY1LnZhbHVlLFxuICAgICAgdmFsdWVzVG9Db252ZXJ0ID0gX3JlZjUudmFsdWVzVG9Db252ZXJ0LFxuICAgICAgaXNSdGwgPSBfcmVmNS5pc1J0bCxcbiAgICAgIGJnSW1nRGlyZWN0aW9uUmVnZXggPSBfcmVmNS5iZ0ltZ0RpcmVjdGlvblJlZ2V4LFxuICAgICAgYmdQb3NEaXJlY3Rpb25SZWdleCA9IF9yZWY1LmJnUG9zRGlyZWN0aW9uUmVnZXg7XG4gICAgaWYgKGlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vIFllYWgsIHRoaXMgaXMgaW4gbmVlZCBvZiBhIHJlZmFjdG9yIPCfmYMuLi5cbiAgICAvLyBidXQgdGhpcyBwcm9wZXJ0eSBpcyBhIHRvdWdoIGNvb2tpZSDwn42qXG4gICAgLy8gZ2V0IHRoZSBiYWNrZ3JvdW5kUG9zaXRpb24gb3V0IG9mIHRoZSBzdHJpbmcgYnkgcmVtb3ZpbmcgZXZlcnl0aGluZyB0aGF0IGNvdWxkbid0IGJlIHRoZSBiYWNrZ3JvdW5kUG9zaXRpb24gdmFsdWVcbiAgICB2YXIgYmFja2dyb3VuZFBvc2l0aW9uVmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8odXJsXFwoLio/XFwpKXwocmdiYT9cXCguKj9cXCkpfChoc2xcXCguKj9cXCkpfCgjW2EtZkEtRjAtOV0rKXwoKF58ICkoXFxEKSsoIHwkKSkvZywgJycpLnRyaW0oKTtcbiAgICAvLyByZXBsYWNlIHRoYXQgYmFja2dyb3VuZFBvc2l0aW9uIHZhbHVlIHdpdGggdGhlIGNvbnZlcnRlZCB2ZXJzaW9uXG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGJhY2tncm91bmRQb3NpdGlvblZhbHVlLCBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5iYWNrZ3JvdW5kUG9zaXRpb24oe1xuICAgICAgdmFsdWU6IGJhY2tncm91bmRQb3NpdGlvblZhbHVlLFxuICAgICAgdmFsdWVzVG9Db252ZXJ0OiB2YWx1ZXNUb0NvbnZlcnQsXG4gICAgICBpc1J0bDogaXNSdGwsXG4gICAgICBiZ1Bvc0RpcmVjdGlvblJlZ2V4OiBiZ1Bvc0RpcmVjdGlvblJlZ2V4XG4gICAgfSkpO1xuICAgIC8vIGRvIHRoZSBiYWNrZ3JvdW5kSW1hZ2UgdmFsdWUgcmVwbGFjaW5nIG9uIHRoZSB3aG9sZSB2YWx1ZSAoYmVjYXVzZSB3aHkgbm90PylcbiAgICByZXR1cm4gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYmFja2dyb3VuZEltYWdlKHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHZhbHVlc1RvQ29udmVydDogdmFsdWVzVG9Db252ZXJ0LFxuICAgICAgYmdJbWdEaXJlY3Rpb25SZWdleDogYmdJbWdEaXJlY3Rpb25SZWdleFxuICAgIH0pO1xuICB9LFxuICBiYWNrZ3JvdW5kSW1hZ2U6IGZ1bmN0aW9uIGJhY2tncm91bmRJbWFnZShfcmVmNikge1xuICAgIHZhciB2YWx1ZSA9IF9yZWY2LnZhbHVlLFxuICAgICAgdmFsdWVzVG9Db252ZXJ0ID0gX3JlZjYudmFsdWVzVG9Db252ZXJ0LFxuICAgICAgYmdJbWdEaXJlY3Rpb25SZWdleCA9IF9yZWY2LmJnSW1nRGlyZWN0aW9uUmVnZXg7XG4gICAgaWYgKCFpbmNsdWRlcyh2YWx1ZSwgJ3VybCgnKSAmJiAhaW5jbHVkZXModmFsdWUsICdsaW5lYXItZ3JhZGllbnQoJykpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoYmdJbWdEaXJlY3Rpb25SZWdleCwgZnVuY3Rpb24gKG1hdGNoLCBnMSwgZ3JvdXAyKSB7XG4gICAgICByZXR1cm4gbWF0Y2gucmVwbGFjZShncm91cDIsIHZhbHVlc1RvQ29udmVydFtncm91cDJdKTtcbiAgICB9KTtcbiAgfSxcbiAgYmFja2dyb3VuZFBvc2l0aW9uOiBmdW5jdGlvbiBiYWNrZ3JvdW5kUG9zaXRpb24oX3JlZjcpIHtcbiAgICB2YXIgdmFsdWUgPSBfcmVmNy52YWx1ZSxcbiAgICAgIHZhbHVlc1RvQ29udmVydCA9IF9yZWY3LnZhbHVlc1RvQ29udmVydCxcbiAgICAgIGlzUnRsID0gX3JlZjcuaXNSdGwsXG4gICAgICBiZ1Bvc0RpcmVjdGlvblJlZ2V4ID0gX3JlZjcuYmdQb3NEaXJlY3Rpb25SZWdleDtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAvLyBpbnRlbnRpb25hbGx5IG9ubHkgZ3JhYmJpbmcgdGhlIGZpcnN0IGluc3RhbmNlIG9mIHRoaXMgYmVjYXVzZSB0aGF0IHJlcHJlc2VudHMgYGxlZnRgXG4gICAgLnJlcGxhY2UoaXNSdGwgPyAvXigoLXxcXGR8XFwuKSslKS8gOiBudWxsLCBmdW5jdGlvbiAobWF0Y2gsIGdyb3VwKSB7XG4gICAgICByZXR1cm4gY2FsY3VsYXRlTmV3QmFja2dyb3VuZFBvc2l0aW9uKGdyb3VwKTtcbiAgICB9KS5yZXBsYWNlKGJnUG9zRGlyZWN0aW9uUmVnZXgsIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgcmV0dXJuIHZhbHVlc1RvQ29udmVydFttYXRjaF07XG4gICAgfSk7XG4gIH0sXG4gIGJhY2tncm91bmRQb3NpdGlvblg6IGZ1bmN0aW9uIGJhY2tncm91bmRQb3NpdGlvblgoX3JlZjgpIHtcbiAgICB2YXIgdmFsdWUgPSBfcmVmOC52YWx1ZSxcbiAgICAgIHZhbHVlc1RvQ29udmVydCA9IF9yZWY4LnZhbHVlc1RvQ29udmVydCxcbiAgICAgIGlzUnRsID0gX3JlZjguaXNSdGwsXG4gICAgICBiZ1Bvc0RpcmVjdGlvblJlZ2V4ID0gX3JlZjguYmdQb3NEaXJlY3Rpb25SZWdleDtcbiAgICBpZiAoaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5iYWNrZ3JvdW5kUG9zaXRpb24oe1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdmFsdWVzVG9Db252ZXJ0OiB2YWx1ZXNUb0NvbnZlcnQsXG4gICAgICBpc1J0bDogaXNSdGwsXG4gICAgICBiZ1Bvc0RpcmVjdGlvblJlZ2V4OiBiZ1Bvc0RpcmVjdGlvblJlZ2V4XG4gICAgfSk7XG4gIH0sXG4gIHRyYW5zaXRpb246IGZ1bmN0aW9uIHRyYW5zaXRpb24oX3JlZjkpIHtcbiAgICB2YXIgdmFsdWUgPSBfcmVmOS52YWx1ZSxcbiAgICAgIHByb3BlcnRpZXNUb0NvbnZlcnQgPSBfcmVmOS5wcm9wZXJ0aWVzVG9Db252ZXJ0O1xuICAgIHJldHVybiB2YWx1ZS5zcGxpdCgvLFxccyovZykubWFwKGZ1bmN0aW9uICh0cmFuc2l0aW9uKSB7XG4gICAgICB2YXIgdmFsdWVzID0gdHJhbnNpdGlvbi5zcGxpdCgnICcpO1xuXG4gICAgICAvLyBQcm9wZXJ0eSBpcyBhbHdheXMgZGVmaW5lZCBmaXJzdFxuICAgICAgdmFsdWVzWzBdID0gcHJvcGVydGllc1RvQ29udmVydFt2YWx1ZXNbMF1dIHx8IHZhbHVlc1swXTtcbiAgICAgIHJldHVybiB2YWx1ZXMuam9pbignICcpO1xuICAgIH0pLmpvaW4oJywgJyk7XG4gIH0sXG4gIHRyYW5zaXRpb25Qcm9wZXJ0eTogZnVuY3Rpb24gdHJhbnNpdGlvblByb3BlcnR5KF9yZWYxMCkge1xuICAgIHZhciB2YWx1ZSA9IF9yZWYxMC52YWx1ZSxcbiAgICAgIHByb3BlcnRpZXNUb0NvbnZlcnQgPSBfcmVmMTAucHJvcGVydGllc1RvQ29udmVydDtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoLyxcXHMqL2cpLm1hcChmdW5jdGlvbiAocHJvcCkge1xuICAgICAgcmV0dXJuIHByb3BlcnRpZXNUb0NvbnZlcnRbcHJvcF0gfHwgcHJvcDtcbiAgICB9KS5qb2luKCcsICcpO1xuICB9LFxuICB0cmFuc2Zvcm06IGZ1bmN0aW9uIHRyYW5zZm9ybShfcmVmMTEpIHtcbiAgICB2YXIgdmFsdWUgPSBfcmVmMTEudmFsdWU7XG4gICAgLy8gVGhpcyB3YXMgY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIENTU0phbnVzOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jc3NqYW51cy9jc3NqYW51cy9ibG9iLzRhNDBmMDAxYjFiYTM1NTY3MTEyZDhiOGUxZDlkOTVlZGE0MjM0YzMvc3JjL2Nzc2phbnVzLmpzI0wxNTItTDE1M1xuICAgIHZhciBub25Bc2NpaVBhdHRlcm4gPSBcIlteXFxcXHUwMDIwLVxcXFx1MDA3ZV1cIjtcbiAgICB2YXIgZXNjYXBlUGF0dGVybiA9IFwiKD86XCIgKyAnKD86KD86XFxcXFswLTlhLWZdezEsNn0pKD86XFxcXHJcXFxcbnxcXFxccyk/KScgKyBcInxcXFxcXFxcXFteXFxcXHJcXFxcblxcXFxmMC05YS1mXSlcIjtcbiAgICB2YXIgc2lnbmVkUXVhbnRQYXR0ZXJuID0gXCIoKD86LT9cIiArICgnKD86WzAtOV0qXFxcXC5bMC05XSt8WzAtOV0rKScgKyBcIig/OlxcXFxzKlwiICsgJyg/OmVtfGV4fHB4fGNtfG1tfGlufHB0fHBjfGRlZ3xyYWR8Z3JhZHxtc3xzfGh6fGtoenwlKScgKyBcInxcIiArIChcIi0/XCIgKyAoXCIoPzpbX2Etel18XCIgKyBub25Bc2NpaVBhdHRlcm4gKyBcInxcIiArIGVzY2FwZVBhdHRlcm4gKyBcIilcIikgKyAoXCIoPzpbX2EtejAtOS1dfFwiICsgbm9uQXNjaWlQYXR0ZXJuICsgXCJ8XCIgKyBlc2NhcGVQYXR0ZXJuICsgXCIpXCIpICsgXCIqXCIpICsgXCIpP1wiKSArIFwiKXwoPzppbmhlcml0fGF1dG8pKVwiO1xuICAgIHZhciB0cmFuc2xhdGVYUmVnRXhwID0gbmV3IFJlZ0V4cChcIih0cmFuc2xhdGVYXFxcXHMqXFxcXChcXFxccyopXCIgKyBzaWduZWRRdWFudFBhdHRlcm4gKyBcIihcXFxccypcXFxcKSlcIiwgJ2dpJyk7XG4gICAgdmFyIHRyYW5zbGF0ZVJlZ0V4cCA9IG5ldyBSZWdFeHAoXCIodHJhbnNsYXRlXFxcXHMqXFxcXChcXFxccyopXCIgKyBzaWduZWRRdWFudFBhdHRlcm4gKyBcIigoPzpcXFxccyosXFxcXHMqXCIgKyBzaWduZWRRdWFudFBhdHRlcm4gKyBcIil7MCwxfVxcXFxzKlxcXFwpKVwiLCAnZ2knKTtcbiAgICB2YXIgdHJhbnNsYXRlM2RSZWdFeHAgPSBuZXcgUmVnRXhwKFwiKHRyYW5zbGF0ZTNkXFxcXHMqXFxcXChcXFxccyopXCIgKyBzaWduZWRRdWFudFBhdHRlcm4gKyBcIigoPzpcXFxccyosXFxcXHMqXCIgKyBzaWduZWRRdWFudFBhdHRlcm4gKyBcIil7MCwyfVxcXFxzKlxcXFwpKVwiLCAnZ2knKTtcbiAgICB2YXIgcm90YXRlUmVnRXhwID0gbmV3IFJlZ0V4cChcIihyb3RhdGVbWlldP1xcXFxzKlxcXFwoXFxcXHMqKVwiICsgc2lnbmVkUXVhbnRQYXR0ZXJuICsgXCIoXFxcXHMqXFxcXCkpXCIsICdnaScpO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRyYW5zbGF0ZVhSZWdFeHAsIGZsaXBUcmFuc2Zvcm1TaWduKS5yZXBsYWNlKHRyYW5zbGF0ZVJlZ0V4cCwgZmxpcFRyYW5zZm9ybVNpZ24pLnJlcGxhY2UodHJhbnNsYXRlM2RSZWdFeHAsIGZsaXBUcmFuc2Zvcm1TaWduKS5yZXBsYWNlKHJvdGF0ZVJlZ0V4cCwgZmxpcFRyYW5zZm9ybVNpZ24pO1xuICB9XG59O1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMub2JqZWN0UG9zaXRpb24gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5iYWNrZ3JvdW5kUG9zaXRpb247XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5tYXJnaW4gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5wYWRkaW5nO1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYm9yZGVyV2lkdGggPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5wYWRkaW5nO1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYm94U2hhZG93ID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMudGV4dFNoYWRvdztcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLndlYmtpdEJveFNoYWRvdyA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJveFNoYWRvdztcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLm1vekJveFNoYWRvdyA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJveFNoYWRvdztcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLldlYmtpdEJveFNoYWRvdyA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJveFNoYWRvdztcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLk1vekJveFNoYWRvdyA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJveFNoYWRvdztcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJvcmRlclN0eWxlID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYm9yZGVyQ29sb3I7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy53ZWJraXRUcmFuc2Zvcm0gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm07XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5tb3pUcmFuc2Zvcm0gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm07XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5XZWJraXRUcmFuc2Zvcm0gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm07XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5Nb3pUcmFuc2Zvcm0gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm07XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm1PcmlnaW4gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5iYWNrZ3JvdW5kUG9zaXRpb247XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy53ZWJraXRUcmFuc2Zvcm1PcmlnaW4gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm1PcmlnaW47XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5tb3pUcmFuc2Zvcm1PcmlnaW4gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm1PcmlnaW47XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5XZWJraXRUcmFuc2Zvcm1PcmlnaW4gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm1PcmlnaW47XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5Nb3pUcmFuc2Zvcm1PcmlnaW4gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2Zvcm1PcmlnaW47XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy53ZWJraXRUcmFuc2l0aW9uID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMudHJhbnNpdGlvbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLm1velRyYW5zaXRpb24gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2l0aW9uO1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuV2Via2l0VHJhbnNpdGlvbiA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb247XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVycy5Nb3pUcmFuc2l0aW9uID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMudHJhbnNpdGlvbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLm1velRyYW5zaXRpb25Qcm9wZXJ0eSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLldlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLk1velRyYW5zaXRpb25Qcm9wZXJ0eSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcblxuLy8ga2ViYWItY2FzZSB2ZXJzaW9uc1xuXG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1sndGV4dC1zaGFkb3cnXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRleHRTaGFkb3c7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snYm9yZGVyLWNvbG9yJ10gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5ib3JkZXJDb2xvcjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWydib3JkZXItcmFkaXVzJ10gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5ib3JkZXJSYWRpdXM7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snYmFja2dyb3VuZC1pbWFnZSddID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYmFja2dyb3VuZEltYWdlO1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnNbJ2JhY2tncm91bmQtcG9zaXRpb24nXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJhY2tncm91bmRQb3NpdGlvbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWydiYWNrZ3JvdW5kLXBvc2l0aW9uLXgnXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLmJhY2tncm91bmRQb3NpdGlvblg7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snb2JqZWN0LXBvc2l0aW9uJ10gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy5vYmplY3RQb3NpdGlvbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWydib3JkZXItd2lkdGgnXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnBhZGRpbmc7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snYm94LXNoYWRvdyddID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMudGV4dFNoYWRvdztcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctd2Via2l0LWJveC1zaGFkb3cnXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRleHRTaGFkb3c7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snLW1vei1ib3gtc2hhZG93J10gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50ZXh0U2hhZG93O1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnNbJ2JvcmRlci1zdHlsZSddID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMuYm9yZGVyQ29sb3I7XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snLXdlYmtpdC10cmFuc2Zvcm0nXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zZm9ybTtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctbW96LXRyYW5zZm9ybSddID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnMudHJhbnNmb3JtO1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnNbJ3RyYW5zZm9ybS1vcmlnaW4nXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zZm9ybU9yaWdpbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4nXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zZm9ybU9yaWdpbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctbW96LXRyYW5zZm9ybS1vcmlnaW4nXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zZm9ybU9yaWdpbjtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctd2Via2l0LXRyYW5zaXRpb24nXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb247XG5wcm9wZXJ0eVZhbHVlQ29udmVydGVyc1snLW1vei10cmFuc2l0aW9uJ10gPSBwcm9wZXJ0eVZhbHVlQ29udmVydGVycy50cmFuc2l0aW9uO1xucHJvcGVydHlWYWx1ZUNvbnZlcnRlcnNbJ3RyYW5zaXRpb24tcHJvcGVydHknXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHknXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcbnByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzWyctbW96LXRyYW5zaXRpb24tcHJvcGVydHknXSA9IHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzLnRyYW5zaXRpb25Qcm9wZXJ0eTtcblxuLy8gdGhpcyB3aWxsIGJlIGFuIG9iamVjdCBvZiBwcm9wZXJ0aWVzIHRoYXQgbWFwIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgcnRsIHByb3BlcnR5ICh0aGVpciBkb3BwZWxnYW5nZXIpXG52YXIgcHJvcGVydGllc1RvQ29udmVydCA9IGFycmF5VG9PYmplY3QoW1sncGFkZGluZ0xlZnQnLCAncGFkZGluZ1JpZ2h0J10sIFsnbWFyZ2luTGVmdCcsICdtYXJnaW5SaWdodCddLCBbJ2xlZnQnLCAncmlnaHQnXSwgWydib3JkZXJMZWZ0JywgJ2JvcmRlclJpZ2h0J10sIFsnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlclJpZ2h0Q29sb3InXSwgWydib3JkZXJMZWZ0U3R5bGUnLCAnYm9yZGVyUmlnaHRTdHlsZSddLCBbJ2JvcmRlckxlZnRXaWR0aCcsICdib3JkZXJSaWdodFdpZHRoJ10sIFsnYm9yZGVyVG9wTGVmdFJhZGl1cycsICdib3JkZXJUb3BSaWdodFJhZGl1cyddLCBbJ2JvcmRlckJvdHRvbUxlZnRSYWRpdXMnLCAnYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMnXSxcbi8vIGtlYmFiLWNhc2UgdmVyc2lvbnNcblsncGFkZGluZy1sZWZ0JywgJ3BhZGRpbmctcmlnaHQnXSwgWydtYXJnaW4tbGVmdCcsICdtYXJnaW4tcmlnaHQnXSwgWydib3JkZXItbGVmdCcsICdib3JkZXItcmlnaHQnXSwgWydib3JkZXItbGVmdC1jb2xvcicsICdib3JkZXItcmlnaHQtY29sb3InXSwgWydib3JkZXItbGVmdC1zdHlsZScsICdib3JkZXItcmlnaHQtc3R5bGUnXSwgWydib3JkZXItbGVmdC13aWR0aCcsICdib3JkZXItcmlnaHQtd2lkdGgnXSwgWydib3JkZXItdG9wLWxlZnQtcmFkaXVzJywgJ2JvcmRlci10b3AtcmlnaHQtcmFkaXVzJ10sIFsnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyddXSk7XG52YXIgcHJvcHNUb0lnbm9yZSA9IFsnY29udGVudCddO1xuXG4vLyB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0aWVzVG9Db252ZXJ0IGV4Y2VwdCBmb3IgdmFsdWVzXG52YXIgdmFsdWVzVG9Db252ZXJ0ID0gYXJyYXlUb09iamVjdChbWydsdHInLCAncnRsJ10sIFsnbGVmdCcsICdyaWdodCddLCBbJ3ctcmVzaXplJywgJ2UtcmVzaXplJ10sIFsnc3ctcmVzaXplJywgJ3NlLXJlc2l6ZSddLCBbJ253LXJlc2l6ZScsICduZS1yZXNpemUnXV0pO1xuXG4vLyBTb3JyeSBmb3IgdGhlIHJlZ2V4IPCfmJ4sIGJ1dCBiYXNpY2FsbHkgdGhpc2lzIHVzZWQgdG8gcmVwbGFjZSBfZXZlcnlfIGluc3RhbmNlIG9mXG4vLyBgbHRyYCwgYHJ0bGAsIGByaWdodGAsIGFuZCBgbGVmdGAgaW4gYGJhY2tncm91bmRpbWFnZWAgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBvcHBvc2l0ZS5cbi8vIEEgc2l0dWF0aW9uIHdlJ3JlIGFjY2VwdGluZyBoZXJlOlxuLy8gdXJsKCcvbGVmdC9yaWdodC9ydGwvbHRyLnBuZycpIHdpbGwgYmUgY2hhbmdlZCB0byB1cmwoJy9yaWdodC9sZWZ0L2x0ci9ydGwucG5nJylcbi8vIERlZmluaXRlIHRyYWRlLW9mZnMgaGVyZSwgYnV0IEkgdGhpbmsgaXQncyBhIGdvb2QgY2FsbC5cbnZhciBiZ0ltZ0RpcmVjdGlvblJlZ2V4ID0gbmV3IFJlZ0V4cCgnKF58XFxcXFd8XykoKGx0cil8KHJ0bCl8KGxlZnQpfChyaWdodCkpKFxcXFxXfF98JCknLCAnZycpO1xudmFyIGJnUG9zRGlyZWN0aW9uUmVnZXggPSBuZXcgUmVnRXhwKCcobGVmdCl8KHJpZ2h0KScpO1xuXG4vKipcbiAqIGNvbnZlcnRzIHByb3BlcnRpZXMgYW5kIHZhbHVlcyBpbiB0aGUgQ1NTIGluIEpTIG9iamVjdCB0byB0aGVpciBjb3JyZXNwb25kaW5nIFJUTCB2YWx1ZXNcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgdGhlIENTUyBpbiBKUyBvYmplY3RcbiAqIEByZXR1cm4ge09iamVjdH0gdGhlIFJUTCBjb252ZXJ0ZWQgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnQob2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpLnJlZHVjZShmdW5jdGlvbiAobmV3T2JqLCBvcmlnaW5hbEtleSkge1xuICAgIHZhciBvcmlnaW5hbFZhbHVlID0gb2JqZWN0W29yaWdpbmFsS2V5XTtcbiAgICBpZiAoaXNTdHJpbmcob3JpZ2luYWxWYWx1ZSkpIHtcbiAgICAgIC8vIHlvdSdyZSB3ZWxjb21lIHRvIGxhdGVyIGNvZGUg8J+YulxuICAgICAgb3JpZ2luYWxWYWx1ZSA9IG9yaWdpbmFsVmFsdWUudHJpbSgpO1xuICAgIH1cblxuICAgIC8vIFNvbWUgcHJvcGVydGllcyBzaG91bGQgbmV2ZXIgYmUgdHJhbnNmb3JtZWRcbiAgICBpZiAoaW5jbHVkZXMocHJvcHNUb0lnbm9yZSwgb3JpZ2luYWxLZXkpKSB7XG4gICAgICBuZXdPYmpbb3JpZ2luYWxLZXldID0gb3JpZ2luYWxWYWx1ZTtcbiAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxuICAgIHZhciBfY29udmVydFByb3BlcnR5ID0gY29udmVydFByb3BlcnR5KG9yaWdpbmFsS2V5LCBvcmlnaW5hbFZhbHVlKSxcbiAgICAgIGtleSA9IF9jb252ZXJ0UHJvcGVydHkua2V5LFxuICAgICAgdmFsdWUgPSBfY29udmVydFByb3BlcnR5LnZhbHVlO1xuICAgIG5ld09ialtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIG5ld09iajtcbiAgfSwgQXJyYXkuaXNBcnJheShvYmplY3QpID8gW10gOiB7fSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBwcm9wZXJ0eSBhbmQgaXRzIHZhbHVlIHRvIHRoZSBjb3JyZXNwb25kaW5nIFJUTCBrZXkgYW5kIHZhbHVlXG4gKiBAcGFyYW0ge1N0cmluZ30gb3JpZ2luYWxLZXkgdGhlIG9yaWdpbmFsIHByb3BlcnR5IGtleVxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfE9iamVjdH0gb3JpZ2luYWxWYWx1ZSB0aGUgb3JpZ2luYWwgY3NzIHByb3BlcnR5IHZhbHVlXG4gKiBAcmV0dXJuIHtPYmplY3R9IHRoZSBuZXcge2tleSwgdmFsdWV9IHBhaXJcbiAqL1xuZnVuY3Rpb24gY29udmVydFByb3BlcnR5KG9yaWdpbmFsS2V5LCBvcmlnaW5hbFZhbHVlKSB7XG4gIHZhciBpc05vRmxpcCA9IC9cXC9cXCpcXHM/QG5vZmxpcFxccz9cXCpcXC8vLnRlc3Qob3JpZ2luYWxWYWx1ZSk7XG4gIHZhciBrZXkgPSBpc05vRmxpcCA/IG9yaWdpbmFsS2V5IDogZ2V0UHJvcGVydHlEb3BwZWxnYW5nZXIob3JpZ2luYWxLZXkpO1xuICB2YXIgdmFsdWUgPSBpc05vRmxpcCA/IG9yaWdpbmFsVmFsdWUgOiBnZXRWYWx1ZURvcHBlbGdhbmdlcihrZXksIG9yaWdpbmFsVmFsdWUpO1xuICByZXR1cm4ge1xuICAgIGtleToga2V5LFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufVxuXG4vKipcbiAqIFRoaXMgZ2V0cyB0aGUgUlRMIHZlcnNpb24gb2YgdGhlIGdpdmVuIHByb3BlcnR5IGlmIGl0IGhhcyBhIGNvcnJlc3BvbmRpbmcgUlRMIHByb3BlcnR5XG4gKiBAcGFyYW0ge1N0cmluZ30gcHJvcGVydHkgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5XG4gKiBAcmV0dXJuIHtTdHJpbmd9IHRoZSBuYW1lIG9mIHRoZSBSVEwgcHJvcGVydHlcbiAqL1xuZnVuY3Rpb24gZ2V0UHJvcGVydHlEb3BwZWxnYW5nZXIocHJvcGVydHkpIHtcbiAgcmV0dXJuIHByb3BlcnRpZXNUb0NvbnZlcnRbcHJvcGVydHldIHx8IHByb3BlcnR5O1xufVxuXG4vKipcbiAqIFRoaXMgY29udmVydHMgdGhlIGdpdmVuIHZhbHVlIHRvIHRoZSBSVEwgdmVyc2lvbiBvZiB0aGF0IHZhbHVlIGJhc2VkIG9uIHRoZSBrZXlcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdGhpcyBpcyB0aGUga2V5IChub3RlOiB0aGlzIHNob3VsZCBiZSB0aGUgUlRMIHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsS2V5KVxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfE9iamVjdH0gb3JpZ2luYWxWYWx1ZSB0aGUgb3JpZ2luYWwgY3NzIHByb3BlcnR5IHZhbHVlLiBJZiBpdCdzIGFuIG9iamVjdCwgdGhlbiB3ZSdsbCBjb252ZXJ0IHRoYXQgYXMgd2VsbFxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcnxPYmplY3R9IHRoZSBjb252ZXJ0ZWQgdmFsdWVcbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWVEb3BwZWxnYW5nZXIoa2V5LCBvcmlnaW5hbFZhbHVlKSB7XG4gIGlmICghY2FuQ29udmVydFZhbHVlKG9yaWdpbmFsVmFsdWUpKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsVmFsdWU7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KG9yaWdpbmFsVmFsdWUpKSB7XG4gICAgcmV0dXJuIGNvbnZlcnQob3JpZ2luYWxWYWx1ZSk7IC8vIHJlY3Vyc2lvbiDwn4yAXG4gIH1cblxuICB2YXIgaXNOdW0gPSBpc051bWJlcihvcmlnaW5hbFZhbHVlKTtcbiAgdmFyIGlzRnVuYyA9IGlzRnVuY3Rpb24ob3JpZ2luYWxWYWx1ZSk7XG4gIHZhciBpbXBvcnRhbnRsZXNzVmFsdWUgPSBpc051bSB8fCBpc0Z1bmMgPyBvcmlnaW5hbFZhbHVlIDogb3JpZ2luYWxWYWx1ZS5yZXBsYWNlKC8gIWltcG9ydGFudC4qPyQvLCAnJyk7XG4gIHZhciBpc0ltcG9ydGFudCA9ICFpc051bSAmJiBpbXBvcnRhbnRsZXNzVmFsdWUubGVuZ3RoICE9PSBvcmlnaW5hbFZhbHVlLmxlbmd0aDtcbiAgdmFyIHZhbHVlQ29udmVydGVyID0gcHJvcGVydHlWYWx1ZUNvbnZlcnRlcnNba2V5XTtcbiAgdmFyIG5ld1ZhbHVlO1xuICBpZiAodmFsdWVDb252ZXJ0ZXIpIHtcbiAgICBuZXdWYWx1ZSA9IHZhbHVlQ29udmVydGVyKHtcbiAgICAgIHZhbHVlOiBpbXBvcnRhbnRsZXNzVmFsdWUsXG4gICAgICB2YWx1ZXNUb0NvbnZlcnQ6IHZhbHVlc1RvQ29udmVydCxcbiAgICAgIHByb3BlcnRpZXNUb0NvbnZlcnQ6IHByb3BlcnRpZXNUb0NvbnZlcnQsXG4gICAgICBpc1J0bDogdHJ1ZSxcbiAgICAgIGJnSW1nRGlyZWN0aW9uUmVnZXg6IGJnSW1nRGlyZWN0aW9uUmVnZXgsXG4gICAgICBiZ1Bvc0RpcmVjdGlvblJlZ2V4OiBiZ1Bvc0RpcmVjdGlvblJlZ2V4XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgbmV3VmFsdWUgPSB2YWx1ZXNUb0NvbnZlcnRbaW1wb3J0YW50bGVzc1ZhbHVlXSB8fCBpbXBvcnRhbnRsZXNzVmFsdWU7XG4gIH1cbiAgaWYgKGlzSW1wb3J0YW50KSB7XG4gICAgcmV0dXJuIG5ld1ZhbHVlICsgXCIgIWltcG9ydGFudFwiO1xuICB9XG4gIHJldHVybiBuZXdWYWx1ZTtcbn1cblxuZXhwb3J0IHsgcHJvcGVydGllc1RvQ29udmVydCBhcyBhLCBwcm9wc1RvSWdub3JlIGFzIGIsIGNvbnZlcnQgYXMgYywgY29udmVydFByb3BlcnR5IGFzIGQsIGdldFZhbHVlRG9wcGVsZ2FuZ2VyIGFzIGUsIGFycmF5VG9PYmplY3QgYXMgZiwgZ2V0UHJvcGVydHlEb3BwZWxnYW5nZXIgYXMgZywgY2FsY3VsYXRlTmV3QmFja2dyb3VuZFBvc2l0aW9uIGFzIGgsIGNhbkNvbnZlcnRWYWx1ZSBhcyBpLCBmbGlwVHJhbnNmb3JtU2lnbiBhcyBqLCBmbGlwU2lnbiBhcyBrLCBoYW5kbGVRdWFydGV0VmFsdWVzIGFzIGwsIGluY2x1ZGVzIGFzIG0sIGlzQm9vbGVhbiBhcyBuLCBpc0Z1bmN0aW9uIGFzIG8sIHByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzIGFzIHAsIGlzTnVtYmVyIGFzIHEsIGlzTnVsbE9yVW5kZWZpbmVkIGFzIHIsIGlzT2JqZWN0IGFzIHMsIGlzU3RyaW5nIGFzIHQsIGdldFZhbHVlc0FzTGlzdCBhcyB1LCB2YWx1ZXNUb0NvbnZlcnQgYXMgdiwgc3BsaXRTaGFkb3cgYXMgdyB9O1xuIiwiY29uc3QgdXBwZXJjYXNlUGF0dGVybiA9IC9bQS1aXS9nO1xuY29uc3QgbXNQYXR0ZXJuID0gL15tcy0vO1xuY29uc3QgY2FjaGUgPSB7fTtcbmZ1bmN0aW9uIHRvSHlwaGVuTG93ZXIobWF0Y2gpIHtcbiAgcmV0dXJuICctJyArIG1hdGNoLnRvTG93ZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBoeXBoZW5hdGVQcm9wZXJ0eShuYW1lKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2FjaGUsIG5hbWUpKSB7XG4gICAgcmV0dXJuIGNhY2hlW25hbWVdO1xuICB9XG4gIGlmIChuYW1lLnN1YnN0cigwLCAyKSA9PT0gJy0tJykge1xuICAgIHJldHVybiBuYW1lO1xuICB9XG4gIGNvbnN0IGhOYW1lID0gbmFtZS5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sIHRvSHlwaGVuTG93ZXIpO1xuICByZXR1cm4gY2FjaGVbbmFtZV0gPSBtc1BhdHRlcm4udGVzdChoTmFtZSkgPyAnLScgKyBoTmFtZSA6IGhOYW1lO1xufVxuXG5leHBvcnQgeyBoeXBoZW5hdGVQcm9wZXJ0eSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aHlwaGVuYXRlUHJvcGVydHkuZXNtLmpzLm1hcFxuIiwiZnVuY3Rpb24gbm9ybWFsaXplTmVzdGVkUHJvcGVydHkobmVzdGVkUHJvcGVydHkpIHtcbiAgaWYgKG5lc3RlZFByb3BlcnR5LmNoYXJBdCgwKSA9PT0gJyYnKSB7XG4gICAgcmV0dXJuIG5lc3RlZFByb3BlcnR5LnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBuZXN0ZWRQcm9wZXJ0eTtcbn1cblxuZXhwb3J0IHsgbm9ybWFsaXplTmVzdGVkUHJvcGVydHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vcm1hbGl6ZU5lc3RlZFByb3BlcnR5LmVzbS5qcy5tYXBcbiIsImV4cG9ydCB2YXIgTVMgPSAnLW1zLSdcbmV4cG9ydCB2YXIgTU9aID0gJy1tb3otJ1xuZXhwb3J0IHZhciBXRUJLSVQgPSAnLXdlYmtpdC0nXG5cbmV4cG9ydCB2YXIgQ09NTUVOVCA9ICdjb21tJ1xuZXhwb3J0IHZhciBSVUxFU0VUID0gJ3J1bGUnXG5leHBvcnQgdmFyIERFQ0xBUkFUSU9OID0gJ2RlY2wnXG5cbmV4cG9ydCB2YXIgUEFHRSA9ICdAcGFnZSdcbmV4cG9ydCB2YXIgTUVESUEgPSAnQG1lZGlhJ1xuZXhwb3J0IHZhciBJTVBPUlQgPSAnQGltcG9ydCdcbmV4cG9ydCB2YXIgQ0hBUlNFVCA9ICdAY2hhcnNldCdcbmV4cG9ydCB2YXIgVklFV1BPUlQgPSAnQHZpZXdwb3J0J1xuZXhwb3J0IHZhciBTVVBQT1JUUyA9ICdAc3VwcG9ydHMnXG5leHBvcnQgdmFyIERPQ1VNRU5UID0gJ0Bkb2N1bWVudCdcbmV4cG9ydCB2YXIgTkFNRVNQQUNFID0gJ0BuYW1lc3BhY2UnXG5leHBvcnQgdmFyIEtFWUZSQU1FUyA9ICdAa2V5ZnJhbWVzJ1xuZXhwb3J0IHZhciBGT05UX0ZBQ0UgPSAnQGZvbnQtZmFjZSdcbmV4cG9ydCB2YXIgQ09VTlRFUl9TVFlMRSA9ICdAY291bnRlci1zdHlsZSdcbmV4cG9ydCB2YXIgRk9OVF9GRUFUVVJFX1ZBTFVFUyA9ICdAZm9udC1mZWF0dXJlLXZhbHVlcydcbmV4cG9ydCB2YXIgTEFZRVIgPSAnQGxheWVyJ1xuZXhwb3J0IHZhciBTQ09QRSA9ICdAc2NvcGUnXG4iLCIvKipcbiAqIEBwYXJhbSB7bnVtYmVyfVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgdmFyIGFicyA9IE1hdGguYWJzXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCB2YXIgZnJvbSA9IFN0cmluZy5mcm9tQ2hhckNvZGVcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH1cbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IHZhciBhc3NpZ24gPSBPYmplY3QuYXNzaWduXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNoICh2YWx1ZSwgbGVuZ3RoKSB7XG5cdHJldHVybiBjaGFyYXQodmFsdWUsIDApIF4gNDUgPyAoKCgoKCgobGVuZ3RoIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAwKSkgPDwgMikgXiBjaGFyYXQodmFsdWUsIDEpKSA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMikpIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAzKSA6IDBcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW0gKHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS50cmltKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7UmVnRXhwfSBwYXR0ZXJuXG4gKiBAcmV0dXJuIHtzdHJpbmc/fVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2ggKHZhbHVlLCBwYXR0ZXJuKSB7XG5cdHJldHVybiAodmFsdWUgPSBwYXR0ZXJuLmV4ZWModmFsdWUpKSA/IHZhbHVlWzBdIDogdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7KHN0cmluZ3xSZWdFeHApfSBwYXR0ZXJuXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVwbGFjZW1lbnRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2UgKHZhbHVlLCBwYXR0ZXJuLCByZXBsYWNlbWVudCkge1xuXHRyZXR1cm4gdmFsdWUucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlbWVudClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hcbiAqIEBwYXJhbSB7bnVtYmVyfSBwb3NpdGlvblxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhvZiAodmFsdWUsIHNlYXJjaCwgcG9zaXRpb24pIHtcblx0cmV0dXJuIHZhbHVlLmluZGV4T2Yoc2VhcmNoLCBwb3NpdGlvbilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhcmF0ICh2YWx1ZSwgaW5kZXgpIHtcblx0cmV0dXJuIHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpIHwgMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdHIgKHZhbHVlLCBiZWdpbiwgZW5kKSB7XG5cdHJldHVybiB2YWx1ZS5zbGljZShiZWdpbiwgZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RybGVuICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUubGVuZ3RoXG59XG5cbi8qKlxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpemVvZiAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLmxlbmd0aFxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHBhcmFtIHthbnlbXX0gYXJyYXlcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZCAodmFsdWUsIGFycmF5KSB7XG5cdHJldHVybiBhcnJheS5wdXNoKHZhbHVlKSwgdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcnJheVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUgKGFycmF5LCBjYWxsYmFjaykge1xuXHRyZXR1cm4gYXJyYXkubWFwKGNhbGxiYWNrKS5qb2luKCcnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nW119IGFycmF5XG4gKiBAcGFyYW0ge1JlZ0V4cH0gcGF0dGVyblxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXIgKGFycmF5LCBwYXR0ZXJuKSB7XG5cdHJldHVybiBhcnJheS5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiAhbWF0Y2godmFsdWUsIHBhdHRlcm4pIH0pXG59XG4iLCJpbXBvcnQge2Zyb20sIHRyaW0sIGNoYXJhdCwgc3RybGVuLCBzdWJzdHIsIGFwcGVuZCwgYXNzaWdufSBmcm9tICcuL1V0aWxpdHkuanMnXG5cbmV4cG9ydCB2YXIgbGluZSA9IDFcbmV4cG9ydCB2YXIgY29sdW1uID0gMVxuZXhwb3J0IHZhciBsZW5ndGggPSAwXG5leHBvcnQgdmFyIHBvc2l0aW9uID0gMFxuZXhwb3J0IHZhciBjaGFyYWN0ZXIgPSAwXG5leHBvcnQgdmFyIGNoYXJhY3RlcnMgPSAnJ1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3QgfCBudWxsfSByb290XG4gKiBAcGFyYW0ge29iamVjdCB8IG51bGx9IHBhcmVudFxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nW10gfCBzdHJpbmd9IHByb3BzXG4gKiBAcGFyYW0ge29iamVjdFtdIHwgc3RyaW5nfSBjaGlsZHJlblxuICogQHBhcmFtIHtvYmplY3RbXX0gc2libGluZ3NcbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vZGUgKHZhbHVlLCByb290LCBwYXJlbnQsIHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoLCBzaWJsaW5ncykge1xuXHRyZXR1cm4ge3ZhbHVlOiB2YWx1ZSwgcm9vdDogcm9vdCwgcGFyZW50OiBwYXJlbnQsIHR5cGU6IHR5cGUsIHByb3BzOiBwcm9wcywgY2hpbGRyZW46IGNoaWxkcmVuLCBsaW5lOiBsaW5lLCBjb2x1bW46IGNvbHVtbiwgbGVuZ3RoOiBsZW5ndGgsIHJldHVybjogJycsIHNpYmxpbmdzOiBzaWJsaW5nc31cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5IChyb290LCBwcm9wcykge1xuXHRyZXR1cm4gYXNzaWduKG5vZGUoJycsIG51bGwsIG51bGwsICcnLCBudWxsLCBudWxsLCAwLCByb290LnNpYmxpbmdzKSwgcm9vdCwge2xlbmd0aDogLXJvb3QubGVuZ3RofSwgcHJvcHMpXG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpZnQgKHJvb3QpIHtcblx0d2hpbGUgKHJvb3Qucm9vdClcblx0XHRyb290ID0gY29weShyb290LnJvb3QsIHtjaGlsZHJlbjogW3Jvb3RdfSlcblxuXHRhcHBlbmQocm9vdCwgcm9vdC5zaWJsaW5ncylcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGFyICgpIHtcblx0cmV0dXJuIGNoYXJhY3RlclxufVxuXG4vKipcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXYgKCkge1xuXHRjaGFyYWN0ZXIgPSBwb3NpdGlvbiA+IDAgPyBjaGFyYXQoY2hhcmFjdGVycywgLS1wb3NpdGlvbikgOiAwXG5cblx0aWYgKGNvbHVtbi0tLCBjaGFyYWN0ZXIgPT09IDEwKVxuXHRcdGNvbHVtbiA9IDEsIGxpbmUtLVxuXG5cdHJldHVybiBjaGFyYWN0ZXJcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXh0ICgpIHtcblx0Y2hhcmFjdGVyID0gcG9zaXRpb24gPCBsZW5ndGggPyBjaGFyYXQoY2hhcmFjdGVycywgcG9zaXRpb24rKykgOiAwXG5cblx0aWYgKGNvbHVtbisrLCBjaGFyYWN0ZXIgPT09IDEwKVxuXHRcdGNvbHVtbiA9IDEsIGxpbmUrK1xuXG5cdHJldHVybiBjaGFyYWN0ZXJcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZWVrICgpIHtcblx0cmV0dXJuIGNoYXJhdChjaGFyYWN0ZXJzLCBwb3NpdGlvbilcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXJldCAoKSB7XG5cdHJldHVybiBwb3NpdGlvblxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBiZWdpblxuICogQHBhcmFtIHtudW1iZXJ9IGVuZFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2xpY2UgKGJlZ2luLCBlbmQpIHtcblx0cmV0dXJuIHN1YnN0cihjaGFyYWN0ZXJzLCBiZWdpbiwgZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbiAodHlwZSkge1xuXHRzd2l0Y2ggKHR5cGUpIHtcblx0XHQvLyBcXDAgXFx0IFxcbiBcXHIgXFxzIHdoaXRlc3BhY2UgdG9rZW5cblx0XHRjYXNlIDA6IGNhc2UgOTogY2FzZSAxMDogY2FzZSAxMzogY2FzZSAzMjpcblx0XHRcdHJldHVybiA1XG5cdFx0Ly8gISArICwgLyA+IEAgfiBpc29sYXRlIHRva2VuXG5cdFx0Y2FzZSAzMzogY2FzZSA0MzogY2FzZSA0NDogY2FzZSA0NzogY2FzZSA2MjogY2FzZSA2NDogY2FzZSAxMjY6XG5cdFx0Ly8gOyB7IH0gYnJlYWtwb2ludCB0b2tlblxuXHRcdGNhc2UgNTk6IGNhc2UgMTIzOiBjYXNlIDEyNTpcblx0XHRcdHJldHVybiA0XG5cdFx0Ly8gOiBhY2NvbXBhbmllZCB0b2tlblxuXHRcdGNhc2UgNTg6XG5cdFx0XHRyZXR1cm4gM1xuXHRcdC8vIFwiICcgKCBbIG9wZW5pbmcgZGVsaW1pdCB0b2tlblxuXHRcdGNhc2UgMzQ6IGNhc2UgMzk6IGNhc2UgNDA6IGNhc2UgOTE6XG5cdFx0XHRyZXR1cm4gMlxuXHRcdC8vICkgXSBjbG9zaW5nIGRlbGltaXQgdG9rZW5cblx0XHRjYXNlIDQxOiBjYXNlIDkzOlxuXHRcdFx0cmV0dXJuIDFcblx0fVxuXG5cdHJldHVybiAwXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHthbnlbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFsbG9jICh2YWx1ZSkge1xuXHRyZXR1cm4gbGluZSA9IGNvbHVtbiA9IDEsIGxlbmd0aCA9IHN0cmxlbihjaGFyYWN0ZXJzID0gdmFsdWUpLCBwb3NpdGlvbiA9IDAsIFtdXG59XG5cbi8qKlxuICogQHBhcmFtIHthbnl9IHZhbHVlXG4gKiBAcmV0dXJuIHthbnl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWFsbG9jICh2YWx1ZSkge1xuXHRyZXR1cm4gY2hhcmFjdGVycyA9ICcnLCB2YWx1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWxpbWl0ICh0eXBlKSB7XG5cdHJldHVybiB0cmltKHNsaWNlKHBvc2l0aW9uIC0gMSwgZGVsaW1pdGVyKHR5cGUgPT09IDkxID8gdHlwZSArIDIgOiB0eXBlID09PSA0MCA/IHR5cGUgKyAxIDogdHlwZSkpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbml6ZSAodmFsdWUpIHtcblx0cmV0dXJuIGRlYWxsb2ModG9rZW5pemVyKGFsbG9jKHZhbHVlKSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdoaXRlc3BhY2UgKHR5cGUpIHtcblx0d2hpbGUgKGNoYXJhY3RlciA9IHBlZWsoKSlcblx0XHRpZiAoY2hhcmFjdGVyIDwgMzMpXG5cdFx0XHRuZXh0KClcblx0XHRlbHNlXG5cdFx0XHRicmVha1xuXG5cdHJldHVybiB0b2tlbih0eXBlKSA+IDIgfHwgdG9rZW4oY2hhcmFjdGVyKSA+IDMgPyAnJyA6ICcgJ1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nW119IGNoaWxkcmVuXG4gKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRva2VuaXplciAoY2hpbGRyZW4pIHtcblx0d2hpbGUgKG5leHQoKSlcblx0XHRzd2l0Y2ggKHRva2VuKGNoYXJhY3RlcikpIHtcblx0XHRcdGNhc2UgMDogYXBwZW5kKGlkZW50aWZpZXIocG9zaXRpb24gLSAxKSwgY2hpbGRyZW4pXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlIDI6IGFwcGVuZChkZWxpbWl0KGNoYXJhY3RlciksIGNoaWxkcmVuKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0ZGVmYXVsdDogYXBwZW5kKGZyb20oY2hhcmFjdGVyKSwgY2hpbGRyZW4pXG5cdFx0fVxuXG5cdHJldHVybiBjaGlsZHJlblxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtudW1iZXJ9IGNvdW50XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGluZyAoaW5kZXgsIGNvdW50KSB7XG5cdHdoaWxlICgtLWNvdW50ICYmIG5leHQoKSlcblx0XHQvLyBub3QgMC05IEEtRiBhLWZcblx0XHRpZiAoY2hhcmFjdGVyIDwgNDggfHwgY2hhcmFjdGVyID4gMTAyIHx8IChjaGFyYWN0ZXIgPiA1NyAmJiBjaGFyYWN0ZXIgPCA2NSkgfHwgKGNoYXJhY3RlciA+IDcwICYmIGNoYXJhY3RlciA8IDk3KSlcblx0XHRcdGJyZWFrXG5cblx0cmV0dXJuIHNsaWNlKGluZGV4LCBjYXJldCgpICsgKGNvdW50IDwgNiAmJiBwZWVrKCkgPT0gMzIgJiYgbmV4dCgpID09IDMyKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsaW1pdGVyICh0eXBlKSB7XG5cdHdoaWxlIChuZXh0KCkpXG5cdFx0c3dpdGNoIChjaGFyYWN0ZXIpIHtcblx0XHRcdC8vIF0gKSBcIiAnXG5cdFx0XHRjYXNlIHR5cGU6XG5cdFx0XHRcdHJldHVybiBwb3NpdGlvblxuXHRcdFx0Ly8gXCIgJ1xuXHRcdFx0Y2FzZSAzNDogY2FzZSAzOTpcblx0XHRcdFx0aWYgKHR5cGUgIT09IDM0ICYmIHR5cGUgIT09IDM5KVxuXHRcdFx0XHRcdGRlbGltaXRlcihjaGFyYWN0ZXIpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyAoXG5cdFx0XHRjYXNlIDQwOlxuXHRcdFx0XHRpZiAodHlwZSA9PT0gNDEpXG5cdFx0XHRcdFx0ZGVsaW1pdGVyKHR5cGUpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyBcXFxuXHRcdFx0Y2FzZSA5Mjpcblx0XHRcdFx0bmV4dCgpXG5cdFx0XHRcdGJyZWFrXG5cdFx0fVxuXG5cdHJldHVybiBwb3NpdGlvblxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1lbnRlciAodHlwZSwgaW5kZXgpIHtcblx0d2hpbGUgKG5leHQoKSlcblx0XHQvLyAvL1xuXHRcdGlmICh0eXBlICsgY2hhcmFjdGVyID09PSA0NyArIDEwKVxuXHRcdFx0YnJlYWtcblx0XHQvLyAvKlxuXHRcdGVsc2UgaWYgKHR5cGUgKyBjaGFyYWN0ZXIgPT09IDQyICsgNDIgJiYgcGVlaygpID09PSA0Nylcblx0XHRcdGJyZWFrXG5cblx0cmV0dXJuICcvKicgKyBzbGljZShpbmRleCwgcG9zaXRpb24gLSAxKSArICcqJyArIGZyb20odHlwZSA9PT0gNDcgPyB0eXBlIDogbmV4dCgpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZmllciAoaW5kZXgpIHtcblx0d2hpbGUgKCF0b2tlbihwZWVrKCkpKVxuXHRcdG5leHQoKVxuXG5cdHJldHVybiBzbGljZShpbmRleCwgcG9zaXRpb24pXG59XG4iLCJpbXBvcnQge0NPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge2FicywgY2hhcmF0LCB0cmltLCBmcm9tLCBzaXplb2YsIHN0cmxlbiwgc3Vic3RyLCBhcHBlbmQsIHJlcGxhY2UsIGluZGV4b2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcbmltcG9ydCB7bm9kZSwgY2hhciwgcHJldiwgbmV4dCwgcGVlaywgY2FyZXQsIGFsbG9jLCBkZWFsbG9jLCBkZWxpbWl0LCB3aGl0ZXNwYWNlLCBlc2NhcGluZywgaWRlbnRpZmllciwgY29tbWVudGVyfSBmcm9tICcuL1Rva2VuaXplci5qcydcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge29iamVjdFtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZSAodmFsdWUpIHtcblx0cmV0dXJuIGRlYWxsb2MocGFyc2UoJycsIG51bGwsIG51bGwsIG51bGwsIFsnJ10sIHZhbHVlID0gYWxsb2ModmFsdWUpLCAwLCBbMF0sIHZhbHVlKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzZXRzXG4gKiBAcGFyYW0ge251bWJlcltdfSBwc2V1ZG9cbiAqIEBwYXJhbSB7bnVtYmVyW119IHBvaW50c1xuICogQHBhcmFtIHtzdHJpbmdbXX0gZGVjbGFyYXRpb25zXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSAodmFsdWUsIHJvb3QsIHBhcmVudCwgcnVsZSwgcnVsZXMsIHJ1bGVzZXRzLCBwc2V1ZG8sIHBvaW50cywgZGVjbGFyYXRpb25zKSB7XG5cdHZhciBpbmRleCA9IDBcblx0dmFyIG9mZnNldCA9IDBcblx0dmFyIGxlbmd0aCA9IHBzZXVkb1xuXHR2YXIgYXRydWxlID0gMFxuXHR2YXIgcHJvcGVydHkgPSAwXG5cdHZhciBwcmV2aW91cyA9IDBcblx0dmFyIHZhcmlhYmxlID0gMVxuXHR2YXIgc2Nhbm5pbmcgPSAxXG5cdHZhciBhbXBlcnNhbmQgPSAxXG5cdHZhciBjaGFyYWN0ZXIgPSAwXG5cdHZhciB0eXBlID0gJydcblx0dmFyIHByb3BzID0gcnVsZXNcblx0dmFyIGNoaWxkcmVuID0gcnVsZXNldHNcblx0dmFyIHJlZmVyZW5jZSA9IHJ1bGVcblx0dmFyIGNoYXJhY3RlcnMgPSB0eXBlXG5cblx0d2hpbGUgKHNjYW5uaW5nKVxuXHRcdHN3aXRjaCAocHJldmlvdXMgPSBjaGFyYWN0ZXIsIGNoYXJhY3RlciA9IG5leHQoKSkge1xuXHRcdFx0Ly8gKFxuXHRcdFx0Y2FzZSA0MDpcblx0XHRcdFx0aWYgKHByZXZpb3VzICE9IDEwOCAmJiBjaGFyYXQoY2hhcmFjdGVycywgbGVuZ3RoIC0gMSkgPT0gNTgpIHtcblx0XHRcdFx0XHRpZiAoaW5kZXhvZihjaGFyYWN0ZXJzICs9IHJlcGxhY2UoZGVsaW1pdChjaGFyYWN0ZXIpLCAnJicsICcmXFxmJyksICcmXFxmJywgYWJzKGluZGV4ID8gcG9pbnRzW2luZGV4IC0gMV0gOiAwKSkgIT0gLTEpXG5cdFx0XHRcdFx0XHRhbXBlcnNhbmQgPSAtMVxuXHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdH1cblx0XHRcdC8vIFwiICcgW1xuXHRcdFx0Y2FzZSAzNDogY2FzZSAzOTogY2FzZSA5MTpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSBkZWxpbWl0KGNoYXJhY3Rlcilcblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIFxcdCBcXG4gXFxyIFxcc1xuXHRcdFx0Y2FzZSA5OiBjYXNlIDEwOiBjYXNlIDEzOiBjYXNlIDMyOlxuXHRcdFx0XHRjaGFyYWN0ZXJzICs9IHdoaXRlc3BhY2UocHJldmlvdXMpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyBcXFxuXHRcdFx0Y2FzZSA5Mjpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSBlc2NhcGluZyhjYXJldCgpIC0gMSwgNylcblx0XHRcdFx0Y29udGludWVcblx0XHRcdC8vIC9cblx0XHRcdGNhc2UgNDc6XG5cdFx0XHRcdHN3aXRjaCAocGVlaygpKSB7XG5cdFx0XHRcdFx0Y2FzZSA0MjogY2FzZSA0Nzpcblx0XHRcdFx0XHRcdGFwcGVuZChjb21tZW50KGNvbW1lbnRlcihuZXh0KCksIGNhcmV0KCkpLCByb290LCBwYXJlbnQsIGRlY2xhcmF0aW9ucyksIGRlY2xhcmF0aW9ucylcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGNoYXJhY3RlcnMgKz0gJy8nXG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIHtcblx0XHRcdGNhc2UgMTIzICogdmFyaWFibGU6XG5cdFx0XHRcdHBvaW50c1tpbmRleCsrXSA9IHN0cmxlbihjaGFyYWN0ZXJzKSAqIGFtcGVyc2FuZFxuXHRcdFx0Ly8gfSA7IFxcMFxuXHRcdFx0Y2FzZSAxMjUgKiB2YXJpYWJsZTogY2FzZSA1OTogY2FzZSAwOlxuXHRcdFx0XHRzd2l0Y2ggKGNoYXJhY3Rlcikge1xuXHRcdFx0XHRcdC8vIFxcMCB9XG5cdFx0XHRcdFx0Y2FzZSAwOiBjYXNlIDEyNTogc2Nhbm5pbmcgPSAwXG5cdFx0XHRcdFx0Ly8gO1xuXHRcdFx0XHRcdGNhc2UgNTkgKyBvZmZzZXQ6IGlmIChhbXBlcnNhbmQgPT0gLTEpIGNoYXJhY3RlcnMgPSByZXBsYWNlKGNoYXJhY3RlcnMsIC9cXGYvZywgJycpXG5cdFx0XHRcdFx0XHRpZiAocHJvcGVydHkgPiAwICYmIChzdHJsZW4oY2hhcmFjdGVycykgLSBsZW5ndGgpKVxuXHRcdFx0XHRcdFx0XHRhcHBlbmQocHJvcGVydHkgPiAzMiA/IGRlY2xhcmF0aW9uKGNoYXJhY3RlcnMgKyAnOycsIHJ1bGUsIHBhcmVudCwgbGVuZ3RoIC0gMSwgZGVjbGFyYXRpb25zKSA6IGRlY2xhcmF0aW9uKHJlcGxhY2UoY2hhcmFjdGVycywgJyAnLCAnJykgKyAnOycsIHJ1bGUsIHBhcmVudCwgbGVuZ3RoIC0gMiwgZGVjbGFyYXRpb25zKSwgZGVjbGFyYXRpb25zKVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyBAIDtcblx0XHRcdFx0XHRjYXNlIDU5OiBjaGFyYWN0ZXJzICs9ICc7J1xuXHRcdFx0XHRcdC8vIHsgcnVsZS9hdC1ydWxlXG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGFwcGVuZChyZWZlcmVuY2UgPSBydWxlc2V0KGNoYXJhY3RlcnMsIHJvb3QsIHBhcmVudCwgaW5kZXgsIG9mZnNldCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcHJvcHMgPSBbXSwgY2hpbGRyZW4gPSBbXSwgbGVuZ3RoLCBydWxlc2V0cyksIHJ1bGVzZXRzKVxuXG5cdFx0XHRcdFx0XHRpZiAoY2hhcmFjdGVyID09PSAxMjMpXG5cdFx0XHRcdFx0XHRcdGlmIChvZmZzZXQgPT09IDApXG5cdFx0XHRcdFx0XHRcdFx0cGFyc2UoY2hhcmFjdGVycywgcm9vdCwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHByb3BzLCBydWxlc2V0cywgbGVuZ3RoLCBwb2ludHMsIGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0c3dpdGNoIChhdHJ1bGUgPT09IDk5ICYmIGNoYXJhdChjaGFyYWN0ZXJzLCAzKSA9PT0gMTEwID8gMTAwIDogYXRydWxlKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBkIGwgbSBzXG5cdFx0XHRcdFx0XHRcdFx0XHRjYXNlIDEwMDogY2FzZSAxMDg6IGNhc2UgMTA5OiBjYXNlIDExNTpcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2UodmFsdWUsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCBydWxlICYmIGFwcGVuZChydWxlc2V0KHZhbHVlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgMCwgMCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcnVsZXMsIHByb3BzID0gW10sIGxlbmd0aCwgY2hpbGRyZW4pLCBjaGlsZHJlbiksIHJ1bGVzLCBjaGlsZHJlbiwgbGVuZ3RoLCBwb2ludHMsIHJ1bGUgPyBwcm9wcyA6IGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2UoY2hhcmFjdGVycywgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgWycnXSwgY2hpbGRyZW4sIDAsIHBvaW50cywgY2hpbGRyZW4pXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW5kZXggPSBvZmZzZXQgPSBwcm9wZXJ0eSA9IDAsIHZhcmlhYmxlID0gYW1wZXJzYW5kID0gMSwgdHlwZSA9IGNoYXJhY3RlcnMgPSAnJywgbGVuZ3RoID0gcHNldWRvXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyA6XG5cdFx0XHRjYXNlIDU4OlxuXHRcdFx0XHRsZW5ndGggPSAxICsgc3RybGVuKGNoYXJhY3RlcnMpLCBwcm9wZXJ0eSA9IHByZXZpb3VzXG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRpZiAodmFyaWFibGUgPCAxKVxuXHRcdFx0XHRcdGlmIChjaGFyYWN0ZXIgPT0gMTIzKVxuXHRcdFx0XHRcdFx0LS12YXJpYWJsZVxuXHRcdFx0XHRcdGVsc2UgaWYgKGNoYXJhY3RlciA9PSAxMjUgJiYgdmFyaWFibGUrKyA9PSAwICYmIHByZXYoKSA9PSAxMjUpXG5cdFx0XHRcdFx0XHRjb250aW51ZVxuXG5cdFx0XHRcdHN3aXRjaCAoY2hhcmFjdGVycyArPSBmcm9tKGNoYXJhY3RlciksIGNoYXJhY3RlciAqIHZhcmlhYmxlKSB7XG5cdFx0XHRcdFx0Ly8gJlxuXHRcdFx0XHRcdGNhc2UgMzg6XG5cdFx0XHRcdFx0XHRhbXBlcnNhbmQgPSBvZmZzZXQgPiAwID8gMSA6IChjaGFyYWN0ZXJzICs9ICdcXGYnLCAtMSlcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gLFxuXHRcdFx0XHRcdGNhc2UgNDQ6XG5cdFx0XHRcdFx0XHRwb2ludHNbaW5kZXgrK10gPSAoc3RybGVuKGNoYXJhY3RlcnMpIC0gMSkgKiBhbXBlcnNhbmQsIGFtcGVyc2FuZCA9IDFcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gQFxuXHRcdFx0XHRcdGNhc2UgNjQ6XG5cdFx0XHRcdFx0XHQvLyAtXG5cdFx0XHRcdFx0XHRpZiAocGVlaygpID09PSA0NSlcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVycyArPSBkZWxpbWl0KG5leHQoKSlcblxuXHRcdFx0XHRcdFx0YXRydWxlID0gcGVlaygpLCBvZmZzZXQgPSBsZW5ndGggPSBzdHJsZW4odHlwZSA9IGNoYXJhY3RlcnMgKz0gaWRlbnRpZmllcihjYXJldCgpKSksIGNoYXJhY3RlcisrXG5cdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdC8vIC1cblx0XHRcdFx0XHRjYXNlIDQ1OlxuXHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzID09PSA0NSAmJiBzdHJsZW4oY2hhcmFjdGVycykgPT0gMilcblx0XHRcdFx0XHRcdFx0dmFyaWFibGUgPSAwXG5cdFx0XHRcdH1cblx0XHR9XG5cblx0cmV0dXJuIHJ1bGVzZXRzXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcnVsZXNcbiAqIEBwYXJhbSB7bnVtYmVyW119IHBvaW50c1xuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBjaGlsZHJlblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHBhcmFtIHtvYmplY3RbXX0gc2libGluZ3NcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzZXQgKHZhbHVlLCByb290LCBwYXJlbnQsIGluZGV4LCBvZmZzZXQsIHJ1bGVzLCBwb2ludHMsIHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoLCBzaWJsaW5ncykge1xuXHR2YXIgcG9zdCA9IG9mZnNldCAtIDFcblx0dmFyIHJ1bGUgPSBvZmZzZXQgPT09IDAgPyBydWxlcyA6IFsnJ11cblx0dmFyIHNpemUgPSBzaXplb2YocnVsZSlcblxuXHRmb3IgKHZhciBpID0gMCwgaiA9IDAsIGsgPSAwOyBpIDwgaW5kZXg7ICsraSlcblx0XHRmb3IgKHZhciB4ID0gMCwgeSA9IHN1YnN0cih2YWx1ZSwgcG9zdCArIDEsIHBvc3QgPSBhYnMoaiA9IHBvaW50c1tpXSkpLCB6ID0gdmFsdWU7IHggPCBzaXplOyArK3gpXG5cdFx0XHRpZiAoeiA9IHRyaW0oaiA+IDAgPyBydWxlW3hdICsgJyAnICsgeSA6IHJlcGxhY2UoeSwgLyZcXGYvZywgcnVsZVt4XSkpKVxuXHRcdFx0XHRwcm9wc1trKytdID0gelxuXG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIG9mZnNldCA9PT0gMCA/IFJVTEVTRVQgOiB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCwgc2libGluZ3MpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7b2JqZWN0W119IHNpYmxpbmdzXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50ICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBzaWJsaW5ncykge1xuXHRyZXR1cm4gbm9kZSh2YWx1ZSwgcm9vdCwgcGFyZW50LCBDT01NRU5ULCBmcm9tKGNoYXIoKSksIHN1YnN0cih2YWx1ZSwgMiwgLTIpLCAwLCBzaWJsaW5ncylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHBhcmFtIHtvYmplY3RbXX0gc2libGluZ3NcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBsZW5ndGgsIHNpYmxpbmdzKSB7XG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIERFQ0xBUkFUSU9OLCBzdWJzdHIodmFsdWUsIDAsIGxlbmd0aCksIHN1YnN0cih2YWx1ZSwgbGVuZ3RoICsgMSwgLTEpLCBsZW5ndGgsIHNpYmxpbmdzKVxufVxuIiwiaW1wb3J0IHtJTVBPUlQsIExBWUVSLCBDT01NRU5ULCBSVUxFU0VULCBERUNMQVJBVElPTiwgS0VZRlJBTUVTfSBmcm9tICcuL0VudW0uanMnXG5pbXBvcnQge3N0cmxlbn0gZnJvbSAnLi9VdGlsaXR5LmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplIChjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0dmFyIG91dHB1dCA9ICcnXG5cblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcblx0XHRvdXRwdXQgKz0gY2FsbGJhY2soY2hpbGRyZW5baV0sIGksIGNoaWxkcmVuLCBjYWxsYmFjaykgfHwgJydcblxuXHRyZXR1cm4gb3V0cHV0XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtvYmplY3RbXX0gY2hpbGRyZW5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkgKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0c3dpdGNoIChlbGVtZW50LnR5cGUpIHtcblx0XHRjYXNlIExBWUVSOiBpZiAoZWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpIGJyZWFrXG5cdFx0Y2FzZSBJTVBPUlQ6IGNhc2UgREVDTEFSQVRJT046IHJldHVybiBlbGVtZW50LnJldHVybiA9IGVsZW1lbnQucmV0dXJuIHx8IGVsZW1lbnQudmFsdWVcblx0XHRjYXNlIENPTU1FTlQ6IHJldHVybiAnJ1xuXHRcdGNhc2UgS0VZRlJBTUVTOiByZXR1cm4gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnZhbHVlICsgJ3snICsgc2VyaWFsaXplKGVsZW1lbnQuY2hpbGRyZW4sIGNhbGxiYWNrKSArICd9J1xuXHRcdGNhc2UgUlVMRVNFVDogaWYgKCFzdHJsZW4oZWxlbWVudC52YWx1ZSA9IGVsZW1lbnQucHJvcHMuam9pbignLCcpKSkgcmV0dXJuICcnXG5cdH1cblxuXHRyZXR1cm4gc3RybGVuKGNoaWxkcmVuID0gc2VyaWFsaXplKGVsZW1lbnQuY2hpbGRyZW4sIGNhbGxiYWNrKSkgPyBlbGVtZW50LnJldHVybiA9IGVsZW1lbnQudmFsdWUgKyAneycgKyBjaGlsZHJlbiArICd9JyA6ICcnXG59XG4iLCJpbXBvcnQge01TLCBNT1osIFdFQktJVCwgUlVMRVNFVCwgS0VZRlJBTUVTLCBERUNMQVJBVElPTn0gZnJvbSAnLi9FbnVtLmpzJ1xuaW1wb3J0IHttYXRjaCwgY2hhcmF0LCBzdWJzdHIsIHN0cmxlbiwgc2l6ZW9mLCByZXBsYWNlLCBjb21iaW5lLCBmaWx0ZXIsIGFzc2lnbn0gZnJvbSAnLi9VdGlsaXR5LmpzJ1xuaW1wb3J0IHtjb3B5LCBsaWZ0LCB0b2tlbml6ZX0gZnJvbSAnLi9Ub2tlbml6ZXIuanMnXG5pbXBvcnQge3NlcmlhbGl6ZX0gZnJvbSAnLi9TZXJpYWxpemVyLmpzJ1xuaW1wb3J0IHtwcmVmaXh9IGZyb20gJy4vUHJlZml4ZXIuanMnXG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbltdfSBjb2xsZWN0aW9uXG4gKiBAcmV0dXJuIHtmdW5jdGlvbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1pZGRsZXdhcmUgKGNvbGxlY3Rpb24pIHtcblx0dmFyIGxlbmd0aCA9IHNpemVvZihjb2xsZWN0aW9uKVxuXG5cdHJldHVybiBmdW5jdGlvbiAoZWxlbWVudCwgaW5kZXgsIGNoaWxkcmVuLCBjYWxsYmFjaykge1xuXHRcdHZhciBvdXRwdXQgPSAnJ1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKylcblx0XHRcdG91dHB1dCArPSBjb2xsZWN0aW9uW2ldKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHx8ICcnXG5cblx0XHRyZXR1cm4gb3V0cHV0XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydWxlc2hlZXQgKGNhbGxiYWNrKSB7XG5cdHJldHVybiBmdW5jdGlvbiAoZWxlbWVudCkge1xuXHRcdGlmICghZWxlbWVudC5yb290KVxuXHRcdFx0aWYgKGVsZW1lbnQgPSBlbGVtZW50LnJldHVybilcblx0XHRcdFx0Y2FsbGJhY2soZWxlbWVudClcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4ZXIgKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0aWYgKGVsZW1lbnQubGVuZ3RoID4gLTEpXG5cdFx0aWYgKCFlbGVtZW50LnJldHVybilcblx0XHRcdHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG5cdFx0XHRcdGNhc2UgREVDTEFSQVRJT046IGVsZW1lbnQucmV0dXJuID0gcHJlZml4KGVsZW1lbnQudmFsdWUsIGVsZW1lbnQubGVuZ3RoLCBjaGlsZHJlbilcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0Y2FzZSBLRVlGUkFNRVM6XG5cdFx0XHRcdFx0cmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7dmFsdWU6IHJlcGxhY2UoZWxlbWVudC52YWx1ZSwgJ0AnLCAnQCcgKyBXRUJLSVQpfSldLCBjYWxsYmFjaylcblx0XHRcdFx0Y2FzZSBSVUxFU0VUOlxuXHRcdFx0XHRcdGlmIChlbGVtZW50Lmxlbmd0aClcblx0XHRcdFx0XHRcdHJldHVybiBjb21iaW5lKGNoaWxkcmVuID0gZWxlbWVudC5wcm9wcywgZnVuY3Rpb24gKHZhbHVlKSB7XG5cdFx0XHRcdFx0XHRcdHN3aXRjaCAobWF0Y2godmFsdWUsIGNhbGxiYWNrID0gLyg6OnBsYWNcXHcrfDpyZWFkLVxcdyspLykpIHtcblx0XHRcdFx0XHRcdFx0XHQvLyA6cmVhZC0ob25seXx3cml0ZSlcblx0XHRcdFx0XHRcdFx0XHRjYXNlICc6cmVhZC1vbmx5JzogY2FzZSAnOnJlYWQtd3JpdGUnOlxuXHRcdFx0XHRcdFx0XHRcdFx0bGlmdChjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHJlYWQtXFx3KykvLCAnOicgKyBNT1ogKyAnJDEnKV19KSlcblx0XHRcdFx0XHRcdFx0XHRcdGxpZnQoY29weShlbGVtZW50LCB7cHJvcHM6IFt2YWx1ZV19KSlcblx0XHRcdFx0XHRcdFx0XHRcdGFzc2lnbihlbGVtZW50LCB7cHJvcHM6IGZpbHRlcihjaGlsZHJlbiwgY2FsbGJhY2spfSlcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0Ly8gOnBsYWNlaG9sZGVyXG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSAnOjpwbGFjZWhvbGRlcic6XG5cdFx0XHRcdFx0XHRcdFx0XHRsaWZ0KGNvcHkoZWxlbWVudCwge3Byb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgJzonICsgV0VCS0lUICsgJ2lucHV0LSQxJyldfSkpXG5cdFx0XHRcdFx0XHRcdFx0XHRsaWZ0KGNvcHkoZWxlbWVudCwge3Byb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgJzonICsgTU9aICsgJyQxJyldfSkpXG5cdFx0XHRcdFx0XHRcdFx0XHRsaWZ0KGNvcHkoZWxlbWVudCwge3Byb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgTVMgKyAnaW5wdXQtJDEnKV19KSlcblx0XHRcdFx0XHRcdFx0XHRcdGxpZnQoY29weShlbGVtZW50LCB7cHJvcHM6IFt2YWx1ZV19KSlcblx0XHRcdFx0XHRcdFx0XHRcdGFzc2lnbihlbGVtZW50LCB7cHJvcHM6IGZpbHRlcihjaGlsZHJlbiwgY2FsbGJhY2spfSlcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gJydcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtvYmplY3RbXX0gY2hpbGRyZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVzcGFjZSAoZWxlbWVudCkge1xuXHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdGNhc2UgUlVMRVNFVDpcblx0XHRcdGVsZW1lbnQucHJvcHMgPSBlbGVtZW50LnByb3BzLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuIGNvbWJpbmUodG9rZW5pemUodmFsdWUpLCBmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBjaGlsZHJlbikge1xuXHRcdFx0XHRcdHN3aXRjaCAoY2hhcmF0KHZhbHVlLCAwKSkge1xuXHRcdFx0XHRcdFx0Ly8gXFxmXG5cdFx0XHRcdFx0XHRjYXNlIDEyOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gc3Vic3RyKHZhbHVlLCAxLCBzdHJsZW4odmFsdWUpKVxuXHRcdFx0XHRcdFx0Ly8gXFwwICggKyA+IH5cblx0XHRcdFx0XHRcdGNhc2UgMDogY2FzZSA0MDogY2FzZSA0MzogY2FzZSA2MjogY2FzZSAxMjY6XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZVxuXHRcdFx0XHRcdFx0Ly8gOlxuXHRcdFx0XHRcdFx0Y2FzZSA1ODpcblx0XHRcdFx0XHRcdFx0aWYgKGNoaWxkcmVuWysraW5kZXhdID09PSAnZ2xvYmFsJylcblx0XHRcdFx0XHRcdFx0XHRjaGlsZHJlbltpbmRleF0gPSAnJywgY2hpbGRyZW5bKytpbmRleF0gPSAnXFxmJyArIHN1YnN0cihjaGlsZHJlbltpbmRleF0sIGluZGV4ID0gMSwgLTEpXG5cdFx0XHRcdFx0XHQvLyBcXHNcblx0XHRcdFx0XHRcdGNhc2UgMzI6XG5cdFx0XHRcdFx0XHRcdHJldHVybiBpbmRleCA9PT0gMSA/ICcnIDogdmFsdWVcblx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdHN3aXRjaCAoaW5kZXgpIHtcblx0XHRcdFx0XHRcdFx0XHRjYXNlIDA6IGVsZW1lbnQgPSB2YWx1ZVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNpemVvZihjaGlsZHJlbikgPiAxID8gJycgOiB2YWx1ZVxuXHRcdFx0XHRcdFx0XHRcdGNhc2UgaW5kZXggPSBzaXplb2YoY2hpbGRyZW4pIC0gMTogY2FzZSAyOlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGluZGV4ID09PSAyID8gdmFsdWUgKyBlbGVtZW50ICsgZWxlbWVudCA6IHZhbHVlICsgZWxlbWVudFxuXHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0pXG5cdH1cbn1cbiIsImltcG9ydCB7IFJVTEVTRVQsIHRva2VuaXplIH0gZnJvbSAnc3R5bGlzJztcblxuY29uc3QgZ2xvYmFsUGx1Z2luID0gZWxlbWVudCA9PiB7XG4gIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG4gICAgY2FzZSBSVUxFU0VUOlxuICAgICAgaWYgKHR5cGVvZiBlbGVtZW50LnByb3BzID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJlbGVtZW50LnByb3BzXCIgaGFzIHR5cGUgXCJzdHJpbmdcIiAoJHtKU09OLnN0cmluZ2lmeShlbGVtZW50LnByb3BzLCBudWxsLCAyKX0pLCBpdCdzIG5vdCBleHBlY3RlZC4gUGxlYXNlIHJlcG9ydCBhIGJ1ZyBpZiBpdCBoYXBwZW5zLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVsZW1lbnQucHJvcHMgPSBlbGVtZW50LnByb3BzLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIC8vIEF2b2lkcyBjYWxsaW5nIHRva2VuaXplKCkgb24gZXZlcnkgc3RyaW5nXG4gICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKCc6Z2xvYmFsKCcpID09PSAtMSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW5pemUodmFsdWUpLnJlZHVjZSgoYWNjLCB2YWx1ZSwgaW5kZXgsIGNoaWxkcmVuKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHZhbHVlID09PSAnOicgJiYgY2hpbGRyZW5baW5kZXggKyAxXSA9PT0gJ2dsb2JhbCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID1cbiAgICAgICAgICAgIC8vIEFuIGlubmVyIHBhcnQgb2YgXCI6Z2xvYmFsKClcIlxuICAgICAgICAgICAgY2hpbGRyZW5baW5kZXggKyAyXS5zbGljZSgxLCAtMSkgK1xuICAgICAgICAgICAgLy8gQSBzZXBhcmF0b3IgYmV0d2VlbiBzZWxlY3RvcnMgaS5lLiBcImJvZHkgLmNsYXNzXCJcbiAgICAgICAgICAgICcgJztcbiAgICAgICAgICAgIGFjYy51bnNoaWZ0KHNlbGVjdG9yKTtcbiAgICAgICAgICAgIGNoaWxkcmVuW2luZGV4ICsgMV0gPSAnJztcbiAgICAgICAgICAgIGNoaWxkcmVuW2luZGV4ICsgMl0gPSAnJztcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjYy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSkuam9pbignJyk7XG4gICAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IHsgZ2xvYmFsUGx1Z2luIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nbG9iYWxQbHVnaW4uZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgUlVMRVNFVCwgY29tYmluZSwgbWF0Y2gsIHNlcmlhbGl6ZSwgY29weSwgcmVwbGFjZSwgV0VCS0lULCBNT1osIERFQ0xBUkFUSU9OLCBoYXNoLCBzdHJsZW4sIGNoYXJhdCwgaW5kZXhvZiB9IGZyb20gJ3N0eWxpcyc7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLWZhbGx0aHJvdWdoICovXG5mdW5jdGlvbiBwcmVmaXgodmFsdWUsIGxlbmd0aCwgY2hpbGRyZW4pIHtcbiAgc3dpdGNoIChoYXNoKHZhbHVlLCBsZW5ndGgpKSB7XG4gICAgLy8gY29sb3ItYWRqdXN0XG4gICAgY2FzZSA1MTAzOlxuICAgICAgcmV0dXJuIFdFQktJVCArICdwcmludC0nICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBiYWNrZmFjZS12aXNpYmlsaXR5LCBjb2x1bW4sIGJveC1kZWNvcmF0aW9uLWJyZWFrXG4gICAgY2FzZSAzMTkxOlxuICAgIGNhc2UgNjY0NTpcbiAgICBjYXNlIDMwMDU6XG4gICAgLy8gbWFzaywgbWFzay1pbWFnZSwgbWFzay0obW9kZXxjbGlwfHNpemUpLCBtYXNrLShyZXBlYXR8b3JpZ2luKSwgbWFzay1wb3NpdGlvbiwgbWFzay1jb21wb3NpdGVcbiAgICBjYXNlIDYzOTE6XG4gICAgY2FzZSA1ODc5OlxuICAgIGNhc2UgNTYyMzpcbiAgICBjYXNlIDYxMzU6XG4gICAgY2FzZSA0NTk5OlxuICAgIGNhc2UgNDg1NTpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGJhY2tkcm9wLWZpbHRlciwgYmFja2dyb3VuZC1jbGlwOiB0ZXh0XG4gICAgY2FzZSA0MjE1OlxuICAgICAgLy8gQWRkaXRpb25hbCBjaGVjayBvbiBcImJhY2tkcm9wLShmKWlsdGVyXCIgdG8gcHJldmVudCBjb25mbGljdCB3aXRoIFwiYmFja2dyb3VuZC1jbGlwXCJcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90aHlzdWx0YW4vc3R5bGlzL2lzc3Vlcy8yOTJcbiAgICAgIGlmIChjaGFyYXQodmFsdWUsIDkpID09PSAxMDIpIHtcbiAgICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgdmFsdWU7XG4gICAgICB9XG4gICAgICAvLyBiYWNrZ3JvdW5kLWNsaXA6IHRleHRcbiAgICAgIGlmIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDEpID09PSAxMTYpIHtcbiAgICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgdmFsdWU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAvLyB0YWItc2l6ZVxuICAgIGNhc2UgNDc4OTpcbiAgICAgIHJldHVybiBNT1ogKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGFwcGVhcmFuY2UsIHVzZXItc2VsZWN0LCBoeXBoZW5zXG4gICAgY2FzZSA1MzQ5OlxuICAgIGNhc2UgNDI0NjpcbiAgICBjYXNlIDY5Njg6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNT1ogKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGN1cnNvclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZmFsbCB0aHJvdWdoIGlzIGludGVudGlvbmFsIGhlcmVcbiAgICBjYXNlIDYxODc6XG4gICAgICBpZiAoIW1hdGNoKHZhbHVlLCAvZ3JhYi8pKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKHJlcGxhY2UocmVwbGFjZSh2YWx1ZSwgLyh6b29tLXxncmFiKS8sIFdFQktJVCArICckMScpLCAvKGltYWdlLXNldCkvLCBXRUJLSVQgKyAnJDEnKSwgdmFsdWUsICcnKSArIHZhbHVlO1xuICAgICAgfVxuICAgIC8vIGJhY2tncm91bmQsIGJhY2tncm91bmQtaW1hZ2VcbiAgICBjYXNlIDU0OTU6XG4gICAgY2FzZSAzOTU5OlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uY2F0XG4gICAgICByZXR1cm4gcmVwbGFjZSh2YWx1ZSwgLyhpbWFnZS1zZXRcXChbXl0qKS8sIFdFQktJVCArICckMScgKyAnJGAkMScpO1xuICAgIC8vIChtYXJnaW58cGFkZGluZyktaW5saW5lLShzdGFydHxlbmQpXG4gICAgY2FzZSA0MDk1OlxuICAgIGNhc2UgMzU4MzpcbiAgICBjYXNlIDQwNjg6XG4gICAgY2FzZSAyNTMyOlxuICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLispLWlubGluZSguKykvLCBXRUJLSVQgKyAnJDEkMicpICsgdmFsdWU7XG4gICAgLy8gKG1pbnxtYXgpPyh3aWR0aHxoZWlnaHR8aW5saW5lLXNpemV8YmxvY2stc2l6ZSlcbiAgICBjYXNlIDgxMTY6XG4gICAgY2FzZSA3MDU5OlxuICAgIGNhc2UgNTc1MzpcbiAgICBjYXNlIDU1MzU6XG4gICAgY2FzZSA1NDQ1OlxuICAgIGNhc2UgNTcwMTpcbiAgICBjYXNlIDQ5MzM6XG4gICAgY2FzZSA0Njc3OlxuICAgIGNhc2UgNTUzMzpcbiAgICBjYXNlIDU3ODk6XG4gICAgY2FzZSA1MDIxOlxuICAgIGNhc2UgNDc2NTpcbiAgICAgIC8vIHN0cmV0Y2ggZmlsbC1hdmFpbGFibGVcbiAgICAgIGlmIChzdHJsZW4odmFsdWUpIC0gMSAtIGxlbmd0aCA+IDYpIHN3aXRjaCAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAxKSkge1xuICAgICAgICAvLyAoZilpbGwtYXZhaWxhYmxlXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZmFsbCB0aHJvdWdoIGlzIGludGVudGlvbmFsIGhlcmVcbiAgICAgICAgY2FzZSAxMDI6XG4gICAgICAgICAgaWYgKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgMykgPT09IDEwOCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLis6KSguKyktKFteXSspLyxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNvbmNhdCwgZXFlcWVxXG4gICAgICAgICAgICAnJDEnICsgV0VCS0lUICsgJyQyLSQzJyArICckMScgKyBNT1ogKyAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAzKSA9PSAxMDggPyAnJDMnIDogJyQyLSQzJykpICsgdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAvLyAocyl0cmV0Y2hcbiAgICAgICAgY2FzZSAxMTU6XG4gICAgICAgICAgcmV0dXJuIH5pbmRleG9mKHZhbHVlLCAnc3RyZXRjaCcpID8gcHJlZml4KHJlcGxhY2UodmFsdWUsICdzdHJldGNoJywgJ2ZpbGwtYXZhaWxhYmxlJyksIGxlbmd0aCkgKyB2YWx1ZSA6IHZhbHVlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqL1xuZnVuY3Rpb24gcHJlZml4ZXJQbHVnaW4oZWxlbWVudCwgaW5kZXgsIGNoaWxkcmVuLCBjYWxsYmFjaykge1xuICBpZiAoZWxlbWVudC5sZW5ndGggPiAtMSkgaWYgKCFlbGVtZW50LnJldHVybikgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICBjYXNlIERFQ0xBUkFUSU9OOlxuICAgICAgZWxlbWVudC5yZXR1cm4gPSBwcmVmaXgoZWxlbWVudC52YWx1ZSwgZWxlbWVudC5sZW5ndGgpO1xuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgUlVMRVNFVDpcbiAgICAgIGlmIChlbGVtZW50Lmxlbmd0aClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBjb21iaW5lKGVsZW1lbnQucHJvcHMsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIHN3aXRjaCAobWF0Y2godmFsdWUsIC8oOjpwbGFjXFx3K3w6cmVhZC1cXHcrKS8pKSB7XG4gICAgICAgICAgICAvLyA6cmVhZC0ob25seXx3cml0ZSlcbiAgICAgICAgICAgIGNhc2UgJzpyZWFkLW9ubHknOlxuICAgICAgICAgICAgY2FzZSAnOnJlYWQtd3JpdGUnOlxuICAgICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplKFxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgW2NvcHkoZWxlbWVudCwge1xuICAgICAgICAgICAgICAgIHByb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocmVhZC1cXHcrKS8sICc6JyArIE1PWiArICckMScpXVxuICAgICAgICAgICAgICB9KV0sIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIC8vIDpwbGFjZWhvbGRlclxuICAgICAgICAgICAgY2FzZSAnOjpwbGFjZWhvbGRlcic6XG4gICAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemUoW1xuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgY29weShlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCAnOicgKyBXRUJLSVQgKyAnaW5wdXQtJDEnKV1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgICBwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHBsYWNcXHcrKS8sICc6JyArIE1PWiArICckMScpXVxuICAgICAgICAgICAgICB9KV0sIGNhbGxiYWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9KTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgeyBwcmVmaXgsIHByZWZpeGVyUGx1Z2luIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmVmaXhlclBsdWdpbi5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBMQVlFUiwgU1VQUE9SVFMsIE1FRElBIH0gZnJvbSAnc3R5bGlzJztcblxuZnVuY3Rpb24gaXNBdFJ1bGVFbGVtZW50KGVsZW1lbnQpIHtcbiAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICBjYXNlICdAY29udGFpbmVyJzpcbiAgICBjYXNlIE1FRElBOlxuICAgIGNhc2UgU1VQUE9SVFM6XG4gICAgY2FzZSBMQVlFUjpcbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHsgaXNBdFJ1bGVFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc0F0UnVsZUVsZW1lbnQuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgaXNBdFJ1bGVFbGVtZW50IH0gZnJvbSAnLi9pc0F0UnVsZUVsZW1lbnQuZXNtLmpzJztcblxuY29uc3Qgc29ydENsYXNzZXNJbkF0UnVsZXNQbHVnaW4gPSBlbGVtZW50ID0+IHtcbiAgaWYgKGlzQXRSdWxlRWxlbWVudChlbGVtZW50KSAmJiBBcnJheS5pc0FycmF5KGVsZW1lbnQuY2hpbGRyZW4pKSB7XG4gICAgZWxlbWVudC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiBhLnByb3BzWzBdID4gYi5wcm9wc1swXSA/IDEgOiAtMSk7XG4gIH1cbn07XG5cbmV4cG9ydCB7IHNvcnRDbGFzc2VzSW5BdFJ1bGVzUGx1Z2luIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zb3J0Q2xhc3Nlc0luQXRSdWxlc1BsdWdpbi5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBzZXJpYWxpemUsIGNvbXBpbGUsIG1pZGRsZXdhcmUsIHN0cmluZ2lmeSwgcnVsZXNoZWV0IH0gZnJvbSAnc3R5bGlzJztcbmltcG9ydCB7IGdsb2JhbFBsdWdpbiB9IGZyb20gJy4vc3R5bGlzL2dsb2JhbFBsdWdpbi5lc20uanMnO1xuaW1wb3J0IHsgcHJlZml4ZXJQbHVnaW4gfSBmcm9tICcuL3N0eWxpcy9wcmVmaXhlclBsdWdpbi5lc20uanMnO1xuaW1wb3J0IHsgc29ydENsYXNzZXNJbkF0UnVsZXNQbHVnaW4gfSBmcm9tICcuL3N0eWxpcy9zb3J0Q2xhc3Nlc0luQXRSdWxlc1BsdWdpbi5lc20uanMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5mdW5jdGlvbiBub29wKCkge31cbmZ1bmN0aW9uIGNvbXBpbGVDU1NSdWxlcyhjc3NSdWxlcywgc29ydENsYXNzZXNJbkF0UnVsZXMpIHtcbiAgY29uc3QgcnVsZXMgPSBbXTtcbiAgc2VyaWFsaXplKGNvbXBpbGUoY3NzUnVsZXMpLCBtaWRkbGV3YXJlKFtnbG9iYWxQbHVnaW4sIHNvcnRDbGFzc2VzSW5BdFJ1bGVzID8gc29ydENsYXNzZXNJbkF0UnVsZXNQbHVnaW4gOiBub29wLCBwcmVmaXhlclBsdWdpbiwgc3RyaW5naWZ5LFxuICAvLyDwn5KhIHdlIGFyZSB1c2luZyBgLmluc2VydFJ1bGUoKWAgQVBJIGZvciBET00gb3BlcmF0aW9ucywgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydFxuICAvLyBpbnNlcnRpb24gb2YgbXVsdGlwbGUgQ1NTIHJ1bGVzIGluIGEgc2luZ2xlIGNhbGwuIGBydWxlc2hlZXRgIHBsdWdpbiBleHRyYWN0c1xuICAvLyBpbmRpdmlkdWFsIHJ1bGVzIHRvIGJlIHVzZWQgd2l0aCB0aGlzIEFQSVxuICBydWxlc2hlZXQocnVsZSA9PiBydWxlcy5wdXNoKHJ1bGUpKV0pKTtcbiAgcmV0dXJuIHJ1bGVzO1xufVxuXG5leHBvcnQgeyBjb21waWxlQ1NTUnVsZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBpbGVDU1NSdWxlcy5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBoeXBoZW5hdGVQcm9wZXJ0eSB9IGZyb20gJy4vdXRpbHMvaHlwaGVuYXRlUHJvcGVydHkuZXNtLmpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZU5lc3RlZFByb3BlcnR5IH0gZnJvbSAnLi91dGlscy9ub3JtYWxpemVOZXN0ZWRQcm9wZXJ0eS5lc20uanMnO1xuaW1wb3J0IHsgY29tcGlsZUNTU1J1bGVzIH0gZnJvbSAnLi9jb21waWxlQ1NTUnVsZXMuZXNtLmpzJztcblxuY29uc3QgUFNFVURPX1NFTEVDVE9SX1JFR0VYID0gLywoICpbXiAmXSkvZztcbi8qKlxuICogTm9ybWFsaXplcyBwc2V1ZG8gc2VsZWN0b3JzIHRvIGFsd2F5cyBjb250YWluICYsIHJlcXVpcmVzIHRvIHdvcmsgcHJvcGVybHkgd2l0aCBjb21tYS1zZXBhcmF0ZWQgc2VsZWN0b3JzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIFwiOmhvdmVyXCIgPT4gXCImOmhvdmVyXCJcbiAqICAgXCIgOmhvdmVyXCIgPT4gXCImIDpob3ZlclwiXG4gKiAgIFwiOmhvdmVyLDpmb2N1c1wiID0+IFwiJjpob3ZlciwmOmZvY3VzXCJcbiAqICAgXCIgOmhvdmVyLCA6Zm9jdXNcIiA9PiBcIiYgOmhvdmVyLCYgOmZvY3VzXCJcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUHNldWRvU2VsZWN0b3IocHNldWRvU2VsZWN0b3IpIHtcbiAgcmV0dXJuICcmJyArIG5vcm1hbGl6ZU5lc3RlZFByb3BlcnR5KFxuICAvLyBSZWdleCB0aGVyZSByZXBsYWNlcyBhIGNvbW1hLCBzcGFjZXMgYW5kIGFuIGFtcGVyc2FuZCBpZiBpdCdzIHByZXNlbnQgd2l0aCBjb21tYSBhbmQgYW4gYW1wZXJzYW5kLlxuICAvLyBUaGlzIGFsbG93cyB0byBub3JtYWxpemUgaW5wdXQsIHNlZSBleGFtcGxlcyBpbiBKU0RvYy5cbiAgcHNldWRvU2VsZWN0b3IucmVwbGFjZShQU0VVRE9fU0VMRUNUT1JfUkVHRVgsICcsJiQxJykpO1xufVxuZnVuY3Rpb24gY3JlYXRlQ1NTUnVsZShjbGFzc05hbWVTZWxlY3RvciwgY3NzRGVjbGFyYXRpb24sIHBzZXVkb3MpIHtcbiAgbGV0IGNzc1J1bGUgPSBjc3NEZWNsYXJhdGlvbjtcbiAgaWYgKHBzZXVkb3MubGVuZ3RoID4gMCkge1xuICAgIGNzc1J1bGUgPSBwc2V1ZG9zLnJlZHVjZVJpZ2h0KChhY2MsIHNlbGVjdG9yKSA9PiB7XG4gICAgICByZXR1cm4gYCR7bm9ybWFsaXplUHNldWRvU2VsZWN0b3Ioc2VsZWN0b3IpfSB7ICR7YWNjfSB9YDtcbiAgICB9LCBjc3NEZWNsYXJhdGlvbik7XG4gIH1cbiAgcmV0dXJuIGAke2NsYXNzTmFtZVNlbGVjdG9yfXske2Nzc1J1bGV9fWA7XG59XG5mdW5jdGlvbiBjb21waWxlQXRvbWljQ1NTUnVsZShvcHRpb25zLCBhdFJ1bGVzKSB7XG4gIGNvbnN0IHtcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0b3JzLFxuICAgIHByb3BlcnR5LFxuICAgIHJ0bENsYXNzTmFtZSxcbiAgICBydGxQcm9wZXJ0eSxcbiAgICBydGxWYWx1ZSxcbiAgICB2YWx1ZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3Qge1xuICAgIGNvbnRhaW5lcixcbiAgICBsYXllcixcbiAgICBtZWRpYSxcbiAgICBzdXBwb3J0c1xuICB9ID0gYXRSdWxlcztcbiAgY29uc3QgY2xhc3NOYW1lU2VsZWN0b3IgPSBgLiR7Y2xhc3NOYW1lfWA7XG4gIGNvbnN0IGNzc0RlY2xhcmF0aW9uID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBgJHt2YWx1ZS5tYXAodiA9PiBgJHtoeXBoZW5hdGVQcm9wZXJ0eShwcm9wZXJ0eSl9OiAke3Z9YCkuam9pbignOycpfTtgIDogYCR7aHlwaGVuYXRlUHJvcGVydHkocHJvcGVydHkpfTogJHt2YWx1ZX07YDtcbiAgbGV0IGNzc1J1bGUgPSBjcmVhdGVDU1NSdWxlKGNsYXNzTmFtZVNlbGVjdG9yLCBjc3NEZWNsYXJhdGlvbiwgc2VsZWN0b3JzKTtcbiAgaWYgKHJ0bFByb3BlcnR5ICYmIHJ0bENsYXNzTmFtZSkge1xuICAgIGNvbnN0IHJ0bENsYXNzTmFtZVNlbGVjdG9yID0gYC4ke3J0bENsYXNzTmFtZX1gO1xuICAgIGNvbnN0IHJ0bENTU0RlY2xhcmF0aW9uID0gQXJyYXkuaXNBcnJheShydGxWYWx1ZSkgPyBgJHtydGxWYWx1ZS5tYXAodiA9PiBgJHtoeXBoZW5hdGVQcm9wZXJ0eShydGxQcm9wZXJ0eSl9OiAke3Z9YCkuam9pbignOycpfTtgIDogYCR7aHlwaGVuYXRlUHJvcGVydHkocnRsUHJvcGVydHkpfTogJHtydGxWYWx1ZX07YDtcbiAgICBjc3NSdWxlICs9IGNyZWF0ZUNTU1J1bGUocnRsQ2xhc3NOYW1lU2VsZWN0b3IsIHJ0bENTU0RlY2xhcmF0aW9uLCBzZWxlY3RvcnMpO1xuICB9XG4gIGlmIChtZWRpYSkge1xuICAgIGNzc1J1bGUgPSBgQG1lZGlhICR7bWVkaWF9IHsgJHtjc3NSdWxlfSB9YDtcbiAgfVxuICBpZiAobGF5ZXIpIHtcbiAgICBjc3NSdWxlID0gYEBsYXllciAke2xheWVyfSB7ICR7Y3NzUnVsZX0gfWA7XG4gIH1cbiAgaWYgKHN1cHBvcnRzKSB7XG4gICAgY3NzUnVsZSA9IGBAc3VwcG9ydHMgJHtzdXBwb3J0c30geyAke2Nzc1J1bGV9IH1gO1xuICB9XG4gIGlmIChjb250YWluZXIpIHtcbiAgICBjc3NSdWxlID0gYEBjb250YWluZXIgJHtjb250YWluZXJ9IHsgJHtjc3NSdWxlfSB9YDtcbiAgfVxuICByZXR1cm4gY29tcGlsZUNTU1J1bGVzKGNzc1J1bGUsIHRydWUpO1xufVxuXG5leHBvcnQgeyBjb21waWxlQXRvbWljQ1NTUnVsZSwgbm9ybWFsaXplUHNldWRvU2VsZWN0b3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBpbGVBdG9taWNDU1NSdWxlLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGh5cGhlbmF0ZVByb3BlcnR5IH0gZnJvbSAnLi9oeXBoZW5hdGVQcm9wZXJ0eS5lc20uanMnO1xuXG5mdW5jdGlvbiBjc3NpZnlPYmplY3Qoc3R5bGUpIHtcbiAgbGV0IGNzcyA9ICcnO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ3VhcmQtZm9yLWluXG4gIGZvciAoY29uc3QgcHJvcGVydHkgaW4gc3R5bGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHN0eWxlW3Byb3BlcnR5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICBjc3MgKz0gaHlwaGVuYXRlUHJvcGVydHkocHJvcGVydHkpICsgJzonICsgdmFsdWUgKyAnOyc7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IGFyclZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICAgIGNzcyArPSBoeXBoZW5hdGVQcm9wZXJ0eShwcm9wZXJ0eSkgKyAnOicgKyBhcnJWYWx1ZSArICc7JztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNzcztcbn1cblxuZXhwb3J0IHsgY3NzaWZ5T2JqZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jc3NpZnlPYmplY3QuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgc2VyaWFsaXplLCBjb21waWxlLCBtaWRkbGV3YXJlLCBzdHJpbmdpZnksIHJ1bGVzaGVldCB9IGZyb20gJ3N0eWxpcyc7XG5pbXBvcnQgeyBwcmVmaXhlclBsdWdpbiB9IGZyb20gJy4vc3R5bGlzL3ByZWZpeGVyUGx1Z2luLmVzbS5qcyc7XG5pbXBvcnQgeyBjc3NpZnlPYmplY3QgfSBmcm9tICcuL3V0aWxzL2Nzc2lmeU9iamVjdC5lc20uanMnO1xuXG5mdW5jdGlvbiBjb21waWxlS2V5ZnJhbWVSdWxlKGtleWZyYW1lT2JqZWN0KSB7XG4gIGxldCBjc3MgPSAnJztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxuICBmb3IgKGNvbnN0IHBlcmNlbnRhZ2UgaW4ga2V5ZnJhbWVPYmplY3QpIHtcbiAgICBjc3MgKz0gYCR7cGVyY2VudGFnZX17JHtjc3NpZnlPYmplY3Qoa2V5ZnJhbWVPYmplY3RbcGVyY2VudGFnZV0pfX1gO1xuICB9XG4gIHJldHVybiBjc3M7XG59XG4vKipcbiAqIENyZWF0ZXMgQ1NTIHJ1bGVzIGZvciBpbnNlcnRpb24gZnJvbSBwYXNzZWQgQ1NTLlxuICovXG5mdW5jdGlvbiBjb21waWxlS2V5ZnJhbWVzQ1NTKGtleWZyYW1lTmFtZSwga2V5ZnJhbWVDU1MpIHtcbiAgY29uc3QgY3NzUnVsZSA9IGBAa2V5ZnJhbWVzICR7a2V5ZnJhbWVOYW1lfSB7JHtrZXlmcmFtZUNTU319YDtcbiAgY29uc3QgcnVsZXMgPSBbXTtcbiAgc2VyaWFsaXplKGNvbXBpbGUoY3NzUnVsZSksIG1pZGRsZXdhcmUoW3N0cmluZ2lmeSwgcHJlZml4ZXJQbHVnaW4sXG4gIC8vIPCfkqEgd2UgYXJlIHVzaW5nIGAuaW5zZXJ0UnVsZSgpYCBBUEkgZm9yIERPTSBvcGVyYXRpb25zLCB3aGljaCBkb2VzIG5vdCBzdXBwb3J0XG4gIC8vIGluc2VydGlvbiBvZiBtdWx0aXBsZSBDU1MgcnVsZXMgaW4gYSBzaW5nbGUgY2FsbC4gYHJ1bGVzaGVldGAgcGx1Z2luIGV4dHJhY3RzXG4gIC8vIGluZGl2aWR1YWwgcnVsZXMgdG8gYmUgdXNlZCB3aXRoIHRoaXMgQVBJXG4gIHJ1bGVzaGVldChydWxlID0+IHJ1bGVzLnB1c2gocnVsZSkpXSkpO1xuICByZXR1cm4gcnVsZXM7XG59XG5cbmV4cG9ydCB7IGNvbXBpbGVLZXlmcmFtZVJ1bGUsIGNvbXBpbGVLZXlmcmFtZXNDU1MgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBpbGVLZXlmcmFtZUNTUy5lc20uanMubWFwXG4iLCJjb25zdCBzaG9ydGhhbmRzID0ge1xuICBhbmltYXRpb246IFstMSwgWydhbmltYXRpb25EZWxheScsICdhbmltYXRpb25EaXJlY3Rpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYW5pbWF0aW9uRmlsbE1vZGUnLCAnYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQnLCAnYW5pbWF0aW9uTmFtZScsICdhbmltYXRpb25QbGF5U3RhdGUnLCAnYW5pbWF0aW9uVGltZWxpbmUnLCAnYW5pbWF0aW9uVGltaW5nRnVuY3Rpb24nXV0sXG4gIGFuaW1hdGlvblJhbmdlOiBbLTEsIFsnYW5pbWF0aW9uUmFuZ2VFbmQnLCAnYW5pbWF0aW9uUmFuZ2VTdGFydCddXSxcbiAgYmFja2dyb3VuZDogWy0yLCBbJ2JhY2tncm91bmRBdHRhY2htZW50JywgJ2JhY2tncm91bmRDbGlwJywgJ2JhY2tncm91bmRDb2xvcicsICdiYWNrZ3JvdW5kSW1hZ2UnLCAnYmFja2dyb3VuZE9yaWdpbicsICdiYWNrZ3JvdW5kUG9zaXRpb24nLCAnYmFja2dyb3VuZFBvc2l0aW9uWCcsICdiYWNrZ3JvdW5kUG9zaXRpb25ZJywgJ2JhY2tncm91bmRSZXBlYXQnLCAnYmFja2dyb3VuZFNpemUnXV0sXG4gIGJhY2tncm91bmRQb3NpdGlvbjogWy0xLCBbJ2JhY2tncm91bmRQb3NpdGlvblgnLCAnYmFja2dyb3VuZFBvc2l0aW9uWSddXSxcbiAgYm9yZGVyOiBbLTIsIFsnYm9yZGVyQm90dG9tJywgJ2JvcmRlckJvdHRvbUNvbG9yJywgJ2JvcmRlckJvdHRvbVN0eWxlJywgJ2JvcmRlckJvdHRvbVdpZHRoJywgJ2JvcmRlckxlZnQnLCAnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlckxlZnRTdHlsZScsICdib3JkZXJMZWZ0V2lkdGgnLCAnYm9yZGVyUmlnaHQnLCAnYm9yZGVyUmlnaHRDb2xvcicsICdib3JkZXJSaWdodFN0eWxlJywgJ2JvcmRlclJpZ2h0V2lkdGgnLCAnYm9yZGVyVG9wJywgJ2JvcmRlclRvcENvbG9yJywgJ2JvcmRlclRvcFN0eWxlJywgJ2JvcmRlclRvcFdpZHRoJ11dLFxuICBib3JkZXJCb3R0b206IFstMSwgWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJCb3R0b21XaWR0aCddXSxcbiAgYm9yZGVySW1hZ2U6IFstMSwgWydib3JkZXJJbWFnZU91dHNldCcsICdib3JkZXJJbWFnZVJlcGVhdCcsICdib3JkZXJJbWFnZVNsaWNlJywgJ2JvcmRlckltYWdlU291cmNlJywgJ2JvcmRlckltYWdlV2lkdGgnXV0sXG4gIGJvcmRlckxlZnQ6IFstMSwgWydib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyTGVmdFN0eWxlJywgJ2JvcmRlckxlZnRXaWR0aCddXSxcbiAgYm9yZGVyUmFkaXVzOiBbLTEsIFsnYm9yZGVyQm90dG9tTGVmdFJhZGl1cycsICdib3JkZXJCb3R0b21SaWdodFJhZGl1cycsICdib3JkZXJUb3BMZWZ0UmFkaXVzJywgJ2JvcmRlclRvcFJpZ2h0UmFkaXVzJ11dLFxuICBib3JkZXJSaWdodDogWy0xLCBbJ2JvcmRlclJpZ2h0Q29sb3InLCAnYm9yZGVyUmlnaHRTdHlsZScsICdib3JkZXJSaWdodFdpZHRoJ11dLFxuICBib3JkZXJUb3A6IFstMSwgWydib3JkZXJUb3BDb2xvcicsICdib3JkZXJUb3BTdHlsZScsICdib3JkZXJUb3BXaWR0aCddXSxcbiAgY2FyZXQ6IFstMSwgWydjYXJldENvbG9yJywgJ2NhcmV0U2hhcGUnXV0sXG4gIGNvbHVtblJ1bGU6IFstMSwgWydjb2x1bW5SdWxlQ29sb3InLCAnY29sdW1uUnVsZVN0eWxlJywgJ2NvbHVtblJ1bGVXaWR0aCddXSxcbiAgY29sdW1uczogWy0xLCBbJ2NvbHVtbkNvdW50JywgJ2NvbHVtbldpZHRoJ11dLFxuICBjb250YWluSW50cmluc2ljU2l6ZTogWy0xLCBbJ2NvbnRhaW5JbnRyaW5zaWNIZWlnaHQnLCAnY29udGFpbkludHJpbnNpY1dpZHRoJ11dLFxuICBjb250YWluZXI6IFstMSwgWydjb250YWluZXJOYW1lJywgJ2NvbnRhaW5lclR5cGUnXV0sXG4gIGZsZXg6IFstMSwgWydmbGV4QmFzaXMnLCAnZmxleEdyb3cnLCAnZmxleFNocmluayddXSxcbiAgZmxleEZsb3c6IFstMSwgWydmbGV4RGlyZWN0aW9uJywgJ2ZsZXhXcmFwJ11dLFxuICBmb250OiBbLTEsIFsnZm9udEZhbWlseScsICdmb250U2l6ZScsICdmb250U3RyZXRjaCcsICdmb250U3R5bGUnLCAnZm9udFZhcmlhbnQnLCAnZm9udFdlaWdodCcsICdsaW5lSGVpZ2h0J11dLFxuICBnYXA6IFstMSwgWydjb2x1bW5HYXAnLCAncm93R2FwJ11dLFxuICBncmlkOiBbLTEsIFsnY29sdW1uR2FwJywgJ2dyaWRBdXRvQ29sdW1ucycsICdncmlkQXV0b0Zsb3cnLCAnZ3JpZEF1dG9Sb3dzJywgJ2dyaWRDb2x1bW5HYXAnLCAnZ3JpZFJvd0dhcCcsICdncmlkVGVtcGxhdGVBcmVhcycsICdncmlkVGVtcGxhdGVDb2x1bW5zJywgJ2dyaWRUZW1wbGF0ZVJvd3MnLCAncm93R2FwJ11dLFxuICBncmlkQXJlYTogWy0xLCBbJ2dyaWRDb2x1bW5FbmQnLCAnZ3JpZENvbHVtblN0YXJ0JywgJ2dyaWRSb3dFbmQnLCAnZ3JpZFJvd1N0YXJ0J11dLFxuICBncmlkQ29sdW1uOiBbLTEsIFsnZ3JpZENvbHVtbkVuZCcsICdncmlkQ29sdW1uU3RhcnQnXV0sXG4gIGdyaWRSb3c6IFstMSwgWydncmlkUm93RW5kJywgJ2dyaWRSb3dTdGFydCddXSxcbiAgZ3JpZFRlbXBsYXRlOiBbLTEsIFsnZ3JpZFRlbXBsYXRlQXJlYXMnLCAnZ3JpZFRlbXBsYXRlQ29sdW1ucycsICdncmlkVGVtcGxhdGVSb3dzJ11dLFxuICBpbnNldDogWy0xLCBbJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ3RvcCddXSxcbiAgaW5zZXRCbG9jazogWy0xLCBbJ2luc2V0QmxvY2tFbmQnLCAnaW5zZXRCbG9ja1N0YXJ0J11dLFxuICBpbnNldElubGluZTogWy0xLCBbJ2luc2V0SW5saW5lRW5kJywgJ2luc2V0SW5saW5lU3RhcnQnXV0sXG4gIGxpc3RTdHlsZTogWy0xLCBbJ2xpc3RTdHlsZUltYWdlJywgJ2xpc3RTdHlsZVBvc2l0aW9uJywgJ2xpc3RTdHlsZVR5cGUnXV0sXG4gIG1hcmdpbjogWy0xLCBbJ21hcmdpbkJvdHRvbScsICdtYXJnaW5MZWZ0JywgJ21hcmdpblJpZ2h0JywgJ21hcmdpblRvcCddXSxcbiAgbWFyZ2luQmxvY2s6IFstMSwgWydtYXJnaW5CbG9ja0VuZCcsICdtYXJnaW5CbG9ja1N0YXJ0J11dLFxuICBtYXJnaW5JbmxpbmU6IFstMSwgWydtYXJnaW5JbmxpbmVFbmQnLCAnbWFyZ2luSW5saW5lU3RhcnQnXV0sXG4gIG1hc2s6IFstMSwgWydtYXNrQ2xpcCcsICdtYXNrQ29tcG9zaXRlJywgJ21hc2tJbWFnZScsICdtYXNrTW9kZScsICdtYXNrT3JpZ2luJywgJ21hc2tQb3NpdGlvbicsICdtYXNrUmVwZWF0JywgJ21hc2tTaXplJ11dLFxuICBtYXNrQm9yZGVyOiBbLTEsIFsnbWFza0JvcmRlck1vZGUnLCAnbWFza0JvcmRlck91dHNldCcsICdtYXNrQm9yZGVyUmVwZWF0JywgJ21hc2tCb3JkZXJTbGljZScsICdtYXNrQm9yZGVyU291cmNlJywgJ21hc2tCb3JkZXJXaWR0aCddXSxcbiAgb2Zmc2V0OiBbLTEsIFsnb2Zmc2V0QW5jaG9yJywgJ29mZnNldERpc3RhbmNlJywgJ29mZnNldFBhdGgnLCAnb2Zmc2V0UG9zaXRpb24nLCAnb2Zmc2V0Um90YXRlJ11dLFxuICBvdXRsaW5lOiBbLTEsIFsnb3V0bGluZUNvbG9yJywgJ291dGxpbmVTdHlsZScsICdvdXRsaW5lV2lkdGgnXV0sXG4gIG92ZXJmbG93OiBbLTEsIFsnb3ZlcmZsb3dYJywgJ292ZXJmbG93WSddXSxcbiAgb3ZlcnNjcm9sbEJlaGF2aW9yOiBbLTEsIFsnb3ZlcnNjcm9sbEJlaGF2aW9yWCcsICdvdmVyc2Nyb2xsQmVoYXZpb3JZJ11dLFxuICBwYWRkaW5nOiBbLTEsIFsncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nTGVmdCcsICdwYWRkaW5nUmlnaHQnLCAncGFkZGluZ1RvcCddXSxcbiAgcGFkZGluZ0Jsb2NrOiBbLTEsIFsncGFkZGluZ0Jsb2NrRW5kJywgJ3BhZGRpbmdCbG9ja1N0YXJ0J11dLFxuICBwYWRkaW5nSW5saW5lOiBbLTEsIFsncGFkZGluZ0lubGluZUVuZCcsICdwYWRkaW5nSW5saW5lU3RhcnQnXV0sXG4gIHBsYWNlQ29udGVudDogWy0xLCBbJ2FsaWduQ29udGVudCcsICdqdXN0aWZ5Q29udGVudCddXSxcbiAgcGxhY2VJdGVtczogWy0xLCBbJ2FsaWduSXRlbXMnLCAnanVzdGlmeUl0ZW1zJ11dLFxuICBwbGFjZVNlbGY6IFstMSwgWydhbGlnblNlbGYnLCAnanVzdGlmeVNlbGYnXV0sXG4gIHNjcm9sbE1hcmdpbjogWy0xLCBbJ3Njcm9sbE1hcmdpbkJvdHRvbScsICdzY3JvbGxNYXJnaW5MZWZ0JywgJ3Njcm9sbE1hcmdpblJpZ2h0JywgJ3Njcm9sbE1hcmdpblRvcCddXSxcbiAgc2Nyb2xsTWFyZ2luQmxvY2s6IFstMSwgWydzY3JvbGxNYXJnaW5CbG9ja0VuZCcsICdzY3JvbGxNYXJnaW5CbG9ja1N0YXJ0J11dLFxuICBzY3JvbGxNYXJnaW5JbmxpbmU6IFstMSwgWydzY3JvbGxNYXJnaW5JbmxpbmVFbmQnLCAnc2Nyb2xsTWFyZ2luSW5saW5lU3RhcnQnXV0sXG4gIHNjcm9sbFBhZGRpbmc6IFstMSwgWydzY3JvbGxQYWRkaW5nQm90dG9tJywgJ3Njcm9sbFBhZGRpbmdMZWZ0JywgJ3Njcm9sbFBhZGRpbmdSaWdodCcsICdzY3JvbGxQYWRkaW5nVG9wJ11dLFxuICBzY3JvbGxQYWRkaW5nQmxvY2s6IFstMSwgWydzY3JvbGxQYWRkaW5nQmxvY2tFbmQnLCAnc2Nyb2xsUGFkZGluZ0Jsb2NrU3RhcnQnXV0sXG4gIHNjcm9sbFBhZGRpbmdJbmxpbmU6IFstMSwgWydzY3JvbGxQYWRkaW5nSW5saW5lRW5kJywgJ3Njcm9sbFBhZGRpbmdJbmxpbmVTdGFydCddXSxcbiAgc2Nyb2xsVGltZWxpbmU6IFstMSwgWydzY3JvbGxUaW1lbGluZUF4aXMnLCAnc2Nyb2xsVGltZWxpbmVOYW1lJ11dLFxuICB0ZXh0RGVjb3JhdGlvbjogWy0xLCBbJ3RleHREZWNvcmF0aW9uQ29sb3InLCAndGV4dERlY29yYXRpb25MaW5lJywgJ3RleHREZWNvcmF0aW9uU3R5bGUnLCAndGV4dERlY29yYXRpb25UaGlja25lc3MnXV0sXG4gIHRleHRFbXBoYXNpczogWy0xLCBbJ3RleHRFbXBoYXNpc0NvbG9yJywgJ3RleHRFbXBoYXNpc1N0eWxlJ11dLFxuICB0cmFuc2l0aW9uOiBbLTEsIFsndHJhbnNpdGlvbkJlaGF2aW9yJywgJ3RyYW5zaXRpb25EZWxheScsICd0cmFuc2l0aW9uRHVyYXRpb24nLCAndHJhbnNpdGlvblByb3BlcnR5JywgJ3RyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiddXSxcbiAgdmlld1RpbWVsaW5lOiBbLTEsIFsndmlld1RpbWVsaW5lQXhpcycsICd2aWV3VGltZWxpbmVOYW1lJ11dXG59O1xuXG5leHBvcnQgeyBzaG9ydGhhbmRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaG9ydGhhbmRzLmVzbS5qcy5tYXBcbiIsImZ1bmN0aW9uIGdlbmVyYXRlQ29tYmluZWRRdWVyeShjdXJyZW50TWVkaWFRdWVyeSwgbmVzdGVkTWVkaWFRdWVyeSkge1xuICBpZiAoY3VycmVudE1lZGlhUXVlcnkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG5lc3RlZE1lZGlhUXVlcnk7XG4gIH1cbiAgcmV0dXJuIGAke2N1cnJlbnRNZWRpYVF1ZXJ5fSBhbmQgJHtuZXN0ZWRNZWRpYVF1ZXJ5fWA7XG59XG5cbmV4cG9ydCB7IGdlbmVyYXRlQ29tYmluZWRRdWVyeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2VuZXJhdGVDb21iaW5lZE1lZGlhUXVlcnkuZXNtLmpzLm1hcFxuIiwiZnVuY3Rpb24gaXNNZWRpYVF1ZXJ5U2VsZWN0b3IocHJvcGVydHkpIHtcbiAgcmV0dXJuIHByb3BlcnR5LnN1YnN0cigwLCA2KSA9PT0gJ0BtZWRpYSc7XG59XG5cbmV4cG9ydCB7IGlzTWVkaWFRdWVyeVNlbGVjdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc01lZGlhUXVlcnlTZWxlY3Rvci5lc20uanMubWFwXG4iLCJmdW5jdGlvbiBpc0xheWVyU2VsZWN0b3IocHJvcGVydHkpIHtcbiAgcmV0dXJuIHByb3BlcnR5LnN1YnN0cigwLCA2KSA9PT0gJ0BsYXllcic7XG59XG5cbmV4cG9ydCB7IGlzTGF5ZXJTZWxlY3RvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNMYXllclNlbGVjdG9yLmVzbS5qcy5tYXBcbiIsImNvbnN0IHJlZ2V4ID0gL14oOnxcXFt8PnwmKS87XG5mdW5jdGlvbiBpc05lc3RlZFNlbGVjdG9yKHByb3BlcnR5KSB7XG4gIHJldHVybiByZWdleC50ZXN0KHByb3BlcnR5KTtcbn1cblxuZXhwb3J0IHsgaXNOZXN0ZWRTZWxlY3RvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNOZXN0ZWRTZWxlY3Rvci5lc20uanMubWFwXG4iLCJmdW5jdGlvbiBpc1N1cHBvcnRRdWVyeVNlbGVjdG9yKHByb3BlcnR5KSB7XG4gIHJldHVybiBwcm9wZXJ0eS5zdWJzdHIoMCwgOSkgPT09ICdAc3VwcG9ydHMnO1xufVxuXG5leHBvcnQgeyBpc1N1cHBvcnRRdWVyeVNlbGVjdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc1N1cHBvcnRRdWVyeVNlbGVjdG9yLmVzbS5qcy5tYXBcbiIsImZ1bmN0aW9uIGlzQ29udGFpbmVyUXVlcnlTZWxlY3Rvcihwcm9wZXJ0eSkge1xuICByZXR1cm4gcHJvcGVydHkuc3Vic3RyaW5nKDAsIDEwKSA9PT0gJ0Bjb250YWluZXInO1xufVxuXG5leHBvcnQgeyBpc0NvbnRhaW5lclF1ZXJ5U2VsZWN0b3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzQ29udGFpbmVyUXVlcnlTZWxlY3Rvci5lc20uanMubWFwXG4iLCIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XG4gIHJldHVybiB2YWwgIT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiBBcnJheS5pc0FycmF5KHZhbCkgPT09IGZhbHNlO1xufVxuXG5leHBvcnQgeyBpc09iamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNPYmplY3QuZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBNYXBzIHRoZSBsb25nIHBzZXVkbyBuYW1lIHRvIHRoZSBzaG9ydCBwc2V1ZG8gbmFtZS4gUHNldWRvcyB0aGF0IG1hdGNoIGhlcmUgd2lsbCBiZSBvcmRlcmVkLCBldmVyeXRoaW5nIGVsc2Ugd2lsbFxuICogbWFrZSB0aGVpciB3YXkgdG8gZGVmYXVsdCBzdHlsZSBidWNrZXQuIFdlIHJlZHVjZSB0aGUgcHNldWRvIG5hbWUgdG8gc2F2ZSBidW5kbGVzaXplLlxuICogVGhhbmtmdWxseSB0aGVyZSBhcmVuJ3QgYW55IG92ZXJsYXBzLCBzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tY2xhc3Nlcy5cbiAqL1xuY29uc3QgcHNldWRvc01hcCA9IHtcbiAgLy8gOmZvY3VzLXdpdGhpblxuICAndXMtdyc6ICd3JyxcbiAgLy8gOmZvY3VzLXZpc2libGVcbiAgJ3VzLXYnOiAnaScsXG4gIC8vIDpsaW5rXG4gIG5rOiAnbCcsXG4gIC8vIDp2aXNpdGVkXG4gIHNpOiAndicsXG4gIC8vIDpmb2N1c1xuICBjdTogJ2YnLFxuICAvLyA6aG92ZXJcbiAgdmU6ICdoJyxcbiAgLy8gOmFjdGl2ZVxuICB0aTogJ2EnXG59O1xuLyoqXG4gKiBHZXRzIHRoZSBidWNrZXQgZGVwZW5kaW5nIG9uIHRoZSBwc2V1ZG8uXG4gKlxuICogSW5wdXQ6XG4gKlxuICogYGBgXG4gKiBcIjpob3ZlclwiXG4gKiBcIjpmb2N1czpob3ZlclwiXG4gKiBgYGBcbiAqXG4gKiBPdXRwdXQ6XG4gKlxuICogYGBgXG4gKiBcImhcIlxuICogXCJmXCJcbiAqIGBgYFxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBnZXRTdHlsZUJ1Y2tldE5hbWUoc2VsZWN0b3JzLCBhdFJ1bGVzKSB7XG4gIGlmIChhdFJ1bGVzLm1lZGlhKSB7XG4gICAgcmV0dXJuICdtJztcbiAgfVxuICAvLyBXZSBhcmUgZ3JvdXBpbmcgYWxsIHRoZSBhdC1ydWxlcyBsaWtlIEBzdXBwb3J0cyBldGMuIHVuZGVyIGB0YCBidWNrZXQuXG4gIGlmIChhdFJ1bGVzLmxheWVyIHx8IGF0UnVsZXMuc3VwcG9ydHMpIHtcbiAgICByZXR1cm4gJ3QnO1xuICB9XG4gIGlmIChhdFJ1bGVzLmNvbnRhaW5lcikge1xuICAgIHJldHVybiAnYyc7XG4gIH1cbiAgaWYgKHNlbGVjdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBzZXVkbyA9IHNlbGVjdG9yc1swXS50cmltKCk7XG4gICAgaWYgKG5vcm1hbGl6ZWRQc2V1ZG8uY2hhckNvZGVBdCgwKSA9PT0gNTggLyogXCI6XCIgKi8pIHtcbiAgICAgIC8vIFdlIHNlbmQgdGhyb3VnaCBhIHN1YnNldCBvZiB0aGUgc3RyaW5nIGluc3RlYWQgb2YgdGhlIGZ1bGwgcHNldWRvIG5hbWUuXG4gICAgICAvLyBGb3IgZXhhbXBsZTpcbiAgICAgIC8vIC0gYFwiZm9jdXMtdmlzaWJsZVwiYCBuYW1lIHdvdWxkIGluc3RlYWQgb2YgYFwidXMtdlwiYC5cbiAgICAgIC8vIC0gYFwiZm9jdXNcImAgbmFtZSB3b3VsZCBpbnN0ZWFkIG9mIGBcInVzXCJgLlxuICAgICAgLy8gUmV0dXJuIGEgbWFwcGVkIHBzZXVkbyBlbHNlIGRlZmF1bHQgYnVja2V0LlxuICAgICAgcmV0dXJuIHBzZXVkb3NNYXBbbm9ybWFsaXplZFBzZXVkby5zbGljZSg0LCA4KV0gLyogYWxsb3dzIHRvIGF2b2lkIGNvbGxpc2lvbnMgYmV0d2VlbiBcImZvY3VzLXZpc2libGVcIiAmIFwiZm9jdXNcIiAqLyB8fCBwc2V1ZG9zTWFwW25vcm1hbGl6ZWRQc2V1ZG8uc2xpY2UoMywgNSldIHx8ICdkJztcbiAgICB9XG4gIH1cbiAgLy8gUmV0dXJuIGRlZmF1bHQgYnVja2V0XG4gIHJldHVybiAnZCc7XG59XG5cbmV4cG9ydCB7IGdldFN0eWxlQnVja2V0TmFtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0U3R5bGVCdWNrZXROYW1lLmVzbS5qcy5tYXBcbiIsImltcG9ydCBoYXNoU3RyaW5nIGZyb20gJ0BlbW90aW9uL2hhc2gnO1xuXG5mdW5jdGlvbiBhZGRBdFJ1bGVQcmVmaXgoYXRSdWxlLCBwcmVmaXgpIHtcbiAgcmV0dXJuIGF0UnVsZSA/IHByZWZpeCArIGF0UnVsZSA6IGF0UnVsZTtcbn1cbmZ1bmN0aW9uIGF0UnVsZXNUb1N0cmluZyhhdFJ1bGVzKSB7XG4gIHJldHVybiBhZGRBdFJ1bGVQcmVmaXgoYXRSdWxlcy5jb250YWluZXIsICdjJykgKyBhZGRBdFJ1bGVQcmVmaXgoYXRSdWxlcy5tZWRpYSwgJ20nKSArIGFkZEF0UnVsZVByZWZpeChhdFJ1bGVzLmxheWVyLCAnbCcpICsgYWRkQXRSdWxlUHJlZml4KGF0UnVsZXMuc3VwcG9ydHMsICdzJyk7XG59XG5mdW5jdGlvbiBoYXNoUHJvcGVydHlLZXkoc2VsZWN0b3IsIHByb3BlcnR5LCBhdFJ1bGVzKSB7XG4gIC8vIHVuaXEga2V5IGJhc2VkIG9uIHByb3BlcnR5ICYgc2VsZWN0b3IsIHVzZWQgZm9yIG1lcmdpbmcgbGF0ZXJcbiAgY29uc3QgY29tcHV0ZWRLZXkgPSBzZWxlY3RvciArIGF0UnVsZXNUb1N0cmluZyhhdFJ1bGVzKSArIHByb3BlcnR5O1xuICAvLyBcImtleVwiIGNhbiBiZSByZWFsbHkgbG9uZyBhcyBpdCBpbmNsdWRlcyBzZWxlY3RvcnMsIHdlIHVzZSBoYXNoZXMgdG8gcmVkdWNlIHNpemVzIG9mIGtleXNcbiAgLy8gXCIuZm9vIDpob3ZlclwiID0+IFwiYWJjZFwiXG4gIGNvbnN0IGhhc2hlZEtleSA9IGhhc2hTdHJpbmcoY29tcHV0ZWRLZXkpO1xuICAvLyBBcyB0aGVzZSBoYXNoZXMgYXJlIHVzZWQgYXMgb2JqZWN0IGtleXMgaW4gYnVpbGQgb3V0cHV0IHdlIHNob3VsZCBhdm9pZCBoYXZpbmcgbnVtYmVycyBhcyBhIGZpcnN0IGNoYXJhY3RlciB0b1xuICAvLyBhdm9pZCBoYXZpbmcgcXVvdGVzOlxuICAvLyB7XG4gIC8vICAgXCIxYWJjXCI6IHt9LCAvLyB3ZSBkb24ndCB3YW50IHRoaXNcbiAgLy8gICBBYWJjOiB7fSwgLy8gbm8gcXVvdGVzXG4gIC8vIH1cbiAgY29uc3QgZmlyc3RDaGFyQ29kZSA9IGhhc2hlZEtleS5jaGFyQ29kZUF0KDApO1xuICBjb25zdCBzdGFydHNXaXRoTnVtYmVyID0gZmlyc3RDaGFyQ29kZSA+PSA0OCAmJiBmaXJzdENoYXJDb2RlIDw9IDU3O1xuICBpZiAoc3RhcnRzV2l0aE51bWJlcikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGZpcnN0Q2hhckNvZGUgKyAxNykgKyBoYXNoZWRLZXkuc2xpY2UoMSk7XG4gIH1cbiAgcmV0dXJuIGhhc2hlZEtleTtcbn1cblxuZXhwb3J0IHsgYXRSdWxlc1RvU3RyaW5nLCBoYXNoUHJvcGVydHlLZXkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhc2hQcm9wZXJ0eUtleS5lc20uanMubWFwXG4iLCJpbXBvcnQgaGFzaFN0cmluZyBmcm9tICdAZW1vdGlvbi9oYXNoJztcbmltcG9ydCB7IEhBU0hfUFJFRklYIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzLmVzbS5qcyc7XG5pbXBvcnQgeyBhdFJ1bGVzVG9TdHJpbmcgfSBmcm9tICcuL2hhc2hQcm9wZXJ0eUtleS5lc20uanMnO1xuXG5mdW5jdGlvbiBoYXNoQ2xhc3NOYW1lKHtcbiAgcHJvcGVydHksXG4gIHNlbGVjdG9yLFxuICBzYWx0LFxuICB2YWx1ZVxufSwgYXRSdWxlcykge1xuICByZXR1cm4gSEFTSF9QUkVGSVggKyBoYXNoU3RyaW5nKHNhbHQgKyBzZWxlY3RvciArIGF0UnVsZXNUb1N0cmluZyhhdFJ1bGVzKSArIHByb3BlcnR5ICtcbiAgLy8gVHJpbW1pbmcgb2YgdmFsdWUgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgY29uc2lzdGVudCBoYXNoZXNcbiAgdmFsdWUudHJpbSgpKTtcbn1cblxuZXhwb3J0IHsgaGFzaENsYXNzTmFtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFzaENsYXNzTmFtZS5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBSRVNFVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy5lc20uanMnO1xuXG5mdW5jdGlvbiBpc1Jlc2V0VmFsdWUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBSRVNFVDtcbn1cblxuZXhwb3J0IHsgaXNSZXNldFZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc1Jlc2V0VmFsdWUuZXNtLmpzLm1hcFxuIiwiLyoqXG4gKiBUcmltcyBzZWxlY3RvcnMgdG8gZ2VuZXJhdGUgY29uc2lzdGVudCBoYXNoZXMuXG4gKi9cbmZ1bmN0aW9uIHRyaW1TZWxlY3RvcihzZWxlY3Rvcikge1xuICByZXR1cm4gc2VsZWN0b3IucmVwbGFjZSgvPlxccysvZywgJz4nKTtcbn1cblxuZXhwb3J0IHsgdHJpbVNlbGVjdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmltU2VsZWN0b3IuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IGhhc2hTdHJpbmcgZnJvbSAnQGVtb3Rpb24vaGFzaCc7XG5pbXBvcnQgeyBjb252ZXJ0UHJvcGVydHksIGNvbnZlcnQgfSBmcm9tICdydGwtY3NzLWpzL2NvcmUnO1xuaW1wb3J0IHsgVU5TVVBQT1JURURfQ1NTX1BST1BFUlRJRVMsIFJFU0VULCBIQVNIX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cy5lc20uanMnO1xuaW1wb3J0IHsgY29tcGlsZUF0b21pY0NTU1J1bGUgfSBmcm9tICcuL2NvbXBpbGVBdG9taWNDU1NSdWxlLmVzbS5qcyc7XG5pbXBvcnQgeyBjb21waWxlS2V5ZnJhbWVSdWxlLCBjb21waWxlS2V5ZnJhbWVzQ1NTIH0gZnJvbSAnLi9jb21waWxlS2V5ZnJhbWVDU1MuZXNtLmpzJztcbmltcG9ydCB7IHNob3J0aGFuZHMgfSBmcm9tICcuL3Nob3J0aGFuZHMuZXNtLmpzJztcbmltcG9ydCB7IGdlbmVyYXRlQ29tYmluZWRRdWVyeSB9IGZyb20gJy4vdXRpbHMvZ2VuZXJhdGVDb21iaW5lZE1lZGlhUXVlcnkuZXNtLmpzJztcbmltcG9ydCB7IGlzTWVkaWFRdWVyeVNlbGVjdG9yIH0gZnJvbSAnLi91dGlscy9pc01lZGlhUXVlcnlTZWxlY3Rvci5lc20uanMnO1xuaW1wb3J0IHsgaXNMYXllclNlbGVjdG9yIH0gZnJvbSAnLi91dGlscy9pc0xheWVyU2VsZWN0b3IuZXNtLmpzJztcbmltcG9ydCB7IGlzTmVzdGVkU2VsZWN0b3IgfSBmcm9tICcuL3V0aWxzL2lzTmVzdGVkU2VsZWN0b3IuZXNtLmpzJztcbmltcG9ydCB7IGlzU3VwcG9ydFF1ZXJ5U2VsZWN0b3IgfSBmcm9tICcuL3V0aWxzL2lzU3VwcG9ydFF1ZXJ5U2VsZWN0b3IuZXNtLmpzJztcbmltcG9ydCB7IGlzQ29udGFpbmVyUXVlcnlTZWxlY3RvciB9IGZyb20gJy4vdXRpbHMvaXNDb250YWluZXJRdWVyeVNlbGVjdG9yLmVzbS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemVOZXN0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vdXRpbHMvbm9ybWFsaXplTmVzdGVkUHJvcGVydHkuZXNtLmpzJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi91dGlscy9pc09iamVjdC5lc20uanMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVCdWNrZXROYW1lIH0gZnJvbSAnLi9nZXRTdHlsZUJ1Y2tldE5hbWUuZXNtLmpzJztcbmltcG9ydCB7IGhhc2hDbGFzc05hbWUgfSBmcm9tICcuL3V0aWxzL2hhc2hDbGFzc05hbWUuZXNtLmpzJztcbmltcG9ydCB7IGhhc2hQcm9wZXJ0eUtleSB9IGZyb20gJy4vdXRpbHMvaGFzaFByb3BlcnR5S2V5LmVzbS5qcyc7XG5pbXBvcnQgeyBpc1Jlc2V0VmFsdWUgfSBmcm9tICcuL3V0aWxzL2lzUmVzZXRWYWx1ZS5lc20uanMnO1xuaW1wb3J0IHsgdHJpbVNlbGVjdG9yIH0gZnJvbSAnLi91dGlscy90cmltU2VsZWN0b3IuZXNtLmpzJztcbmltcG9ydCB7IHdhcm5BYm91dFVucmVzb2x2ZWRSdWxlIH0gZnJvbSAnLi93YXJuaW5ncy93YXJuQWJvdXRVbnJlc29sdmVkUnVsZS5lc20uanMnO1xuaW1wb3J0IHsgd2FybkFib3V0VW5zdXBwb3J0ZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi93YXJuaW5ncy93YXJuQWJvdXRVbnN1cHBvcnRlZFByb3BlcnRpZXMuZXNtLmpzJztcblxuZnVuY3Rpb24gZ2V0U2hvcnRoYW5kRGVmaW5pdGlvbihwcm9wZXJ0eSkge1xuICByZXR1cm4gc2hvcnRoYW5kc1twcm9wZXJ0eV07XG59XG5mdW5jdGlvbiBjb21wdXRlUHJvcGVydHlQcmlvcml0eShzaG9ydGhhbmQpIHtcbiAgdmFyIF9hO1xuICByZXR1cm4gKF9hID0gc2hvcnRoYW5kID09PSBudWxsIHx8IHNob3J0aGFuZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2hvcnRoYW5kWzBdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xufVxuZnVuY3Rpb24gcHVzaFRvQ2xhc3Nlc01hcChjbGFzc2VzTWFwLCBwcm9wZXJ0eUtleSwgbHRyQ2xhc3NuYW1lLCBydGxDbGFzc25hbWUpIHtcbiAgY2xhc3Nlc01hcFtwcm9wZXJ0eUtleV0gPSBydGxDbGFzc25hbWUgPyBbbHRyQ2xhc3NuYW1lLCBydGxDbGFzc25hbWVdIDogbHRyQ2xhc3NuYW1lO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVja2V0RW50cnkoY3NzUnVsZSwgbWV0YWRhdGEpIHtcbiAgaWYgKG1ldGFkYXRhLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gW2Nzc1J1bGUsIE9iamVjdC5mcm9tRW50cmllcyhtZXRhZGF0YSldO1xuICB9XG4gIHJldHVybiBjc3NSdWxlO1xufVxuZnVuY3Rpb24gcHVzaFRvQ1NTUnVsZXMoY3NzUnVsZXNCeUJ1Y2tldCwgc3R5bGVCdWNrZXROYW1lLCBsdHJDU1MsIHJ0bENTUywgbWVkaWEsIHByaW9yaXR5KSB7XG4gIHZhciBfYTtcbiAgY29uc3QgbWV0YWRhdGEgPSBbXTtcbiAgaWYgKHByaW9yaXR5ICE9PSAwKSB7XG4gICAgbWV0YWRhdGEucHVzaChbJ3AnLCBwcmlvcml0eV0pO1xuICB9XG4gIGlmIChzdHlsZUJ1Y2tldE5hbWUgPT09ICdtJyAmJiBtZWRpYSkge1xuICAgIG1ldGFkYXRhLnB1c2goWydtJywgbWVkaWFdKTtcbiAgfVxuICAoX2EgPSBjc3NSdWxlc0J5QnVja2V0W3N0eWxlQnVja2V0TmFtZV0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNzc1J1bGVzQnlCdWNrZXRbc3R5bGVCdWNrZXROYW1lXSA9IFtdO1xuICBpZiAobHRyQ1NTKSB7XG4gICAgY3NzUnVsZXNCeUJ1Y2tldFtzdHlsZUJ1Y2tldE5hbWVdLnB1c2goY3JlYXRlQnVja2V0RW50cnkobHRyQ1NTLCBtZXRhZGF0YSkpO1xuICB9XG4gIGlmIChydGxDU1MpIHtcbiAgICBjc3NSdWxlc0J5QnVja2V0W3N0eWxlQnVja2V0TmFtZV0ucHVzaChjcmVhdGVCdWNrZXRFbnRyeShydGxDU1MsIG1ldGFkYXRhKSk7XG4gIH1cbn1cbi8qKlxuICogVHJhbnNmb3JtcyBpbnB1dCBzdHlsZXMgdG8gY2xhc3NlcyBtYXBzICYgQ1NTIHJ1bGVzLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiByZXNvbHZlU3R5bGVSdWxlcyhzdHlsZXMsIGNsYXNzTmFtZUhhc2hTYWx0ID0gJycsIHNlbGVjdG9ycyA9IFtdLCBhdFJ1bGVzID0ge1xuICBjb250YWluZXI6ICcnLFxuICBsYXllcjogJycsXG4gIG1lZGlhOiAnJyxcbiAgc3VwcG9ydHM6ICcnXG59LCBjc3NDbGFzc2VzTWFwID0ge30sIGNzc1J1bGVzQnlCdWNrZXQgPSB7fSwgcnRsVmFsdWUpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHN0eWxlcykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICBpZiAoVU5TVVBQT1JURURfQ1NTX1BST1BFUlRJRVMuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICB3YXJuQWJvdXRVbnN1cHBvcnRlZFByb3BlcnRpZXMocHJvcGVydHksIHN0eWxlc1twcm9wZXJ0eV0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gc3R5bGVzW3Byb3BlcnR5XTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNSZXNldFZhbHVlKHZhbHVlKSkge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0cmltU2VsZWN0b3Ioc2VsZWN0b3JzLmpvaW4oJycpKTtcbiAgICAgIC8vIHVuaXEga2V5IGJhc2VkIG9uIGEgaGFzaCBvZiBwcm9wZXJ0eSAmIHNlbGVjdG9yLCB1c2VkIGZvciBtZXJnaW5nIGxhdGVyXG4gICAgICBjb25zdCBrZXkgPSBoYXNoUHJvcGVydHlLZXkoc2VsZWN0b3IsIHByb3BlcnR5LCBhdFJ1bGVzKTtcbiAgICAgIHB1c2hUb0NsYXNzZXNNYXAoY3NzQ2xhc3Nlc01hcCwga2V5LCAwLCB1bmRlZmluZWQpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHNlbGVjdG9yID0gdHJpbVNlbGVjdG9yKHNlbGVjdG9ycy5qb2luKCcnKSk7XG4gICAgICBjb25zdCBzaG9ydGhhbmQgPSBnZXRTaG9ydGhhbmREZWZpbml0aW9uKHByb3BlcnR5KTtcbiAgICAgIGlmIChzaG9ydGhhbmQpIHtcbiAgICAgICAgY29uc3Qgc2hvcnRoYW5kUHJvcGVydGllcyA9IHNob3J0aGFuZFsxXTtcbiAgICAgICAgY29uc3Qgc2hvcnRoYW5kUmVzZXRTdHlsZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoc2hvcnRoYW5kUHJvcGVydGllcy5tYXAocHJvcGVydHkgPT4gW3Byb3BlcnR5LCBSRVNFVF0pKTtcbiAgICAgICAgcmVzb2x2ZVN0eWxlUnVsZXMoc2hvcnRoYW5kUmVzZXRTdHlsZXMsIGNsYXNzTmFtZUhhc2hTYWx0LCBzZWxlY3RvcnMsIGF0UnVsZXMsIGNzc0NsYXNzZXNNYXAsIGNzc1J1bGVzQnlCdWNrZXQpO1xuICAgICAgfVxuICAgICAgLy8gdW5pcSBrZXkgYmFzZWQgb24gYSBoYXNoIG9mIHByb3BlcnR5ICYgc2VsZWN0b3IsIHVzZWQgZm9yIG1lcmdpbmcgbGF0ZXJcbiAgICAgIGNvbnN0IGtleSA9IGhhc2hQcm9wZXJ0eUtleShzZWxlY3RvciwgcHJvcGVydHksIGF0UnVsZXMpO1xuICAgICAgY29uc3QgY2xhc3NOYW1lID0gaGFzaENsYXNzTmFtZSh7XG4gICAgICAgIHZhbHVlOiB2YWx1ZS50b1N0cmluZygpLFxuICAgICAgICBzYWx0OiBjbGFzc05hbWVIYXNoU2FsdCxcbiAgICAgICAgc2VsZWN0b3IsXG4gICAgICAgIHByb3BlcnR5XG4gICAgICB9LCBhdFJ1bGVzKTtcbiAgICAgIGNvbnN0IHJ0bERlZmluaXRpb24gPSBydGxWYWx1ZSAmJiB7XG4gICAgICAgIGtleTogcHJvcGVydHksXG4gICAgICAgIHZhbHVlOiBydGxWYWx1ZVxuICAgICAgfSB8fCBjb252ZXJ0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTtcbiAgICAgIGNvbnN0IGZsaXBwZWRJblJ0bCA9IHJ0bERlZmluaXRpb24ua2V5ICE9PSBwcm9wZXJ0eSB8fCBydGxEZWZpbml0aW9uLnZhbHVlICE9PSB2YWx1ZTtcbiAgICAgIGNvbnN0IHJ0bENsYXNzTmFtZSA9IGZsaXBwZWRJblJ0bCA/IGhhc2hDbGFzc05hbWUoe1xuICAgICAgICB2YWx1ZTogcnRsRGVmaW5pdGlvbi52YWx1ZS50b1N0cmluZygpLFxuICAgICAgICBwcm9wZXJ0eTogcnRsRGVmaW5pdGlvbi5rZXksXG4gICAgICAgIHNhbHQ6IGNsYXNzTmFtZUhhc2hTYWx0LFxuICAgICAgICBzZWxlY3RvclxuICAgICAgfSwgYXRSdWxlcykgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBydGxDb21waWxlT3B0aW9ucyA9IGZsaXBwZWRJblJ0bCA/IHtcbiAgICAgICAgcnRsQ2xhc3NOYW1lLFxuICAgICAgICBydGxQcm9wZXJ0eTogcnRsRGVmaW5pdGlvbi5rZXksXG4gICAgICAgIHJ0bFZhbHVlOiBydGxEZWZpbml0aW9uLnZhbHVlXG4gICAgICB9IDogdW5kZWZpbmVkO1xuICAgICAgY29uc3Qgc3R5bGVCdWNrZXROYW1lID0gZ2V0U3R5bGVCdWNrZXROYW1lKHNlbGVjdG9ycywgYXRSdWxlcyk7XG4gICAgICBjb25zdCBbbHRyQ1NTLCBydGxDU1NdID0gY29tcGlsZUF0b21pY0NTU1J1bGUoT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgc2VsZWN0b3JzLFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgdmFsdWVcbiAgICAgIH0sIHJ0bENvbXBpbGVPcHRpb25zKSwgYXRSdWxlcyk7XG4gICAgICBwdXNoVG9DbGFzc2VzTWFwKGNzc0NsYXNzZXNNYXAsIGtleSwgY2xhc3NOYW1lLCBydGxDbGFzc05hbWUpO1xuICAgICAgcHVzaFRvQ1NTUnVsZXMoY3NzUnVsZXNCeUJ1Y2tldCwgc3R5bGVCdWNrZXROYW1lLCBsdHJDU1MsIHJ0bENTUywgYXRSdWxlcy5tZWRpYSwgY29tcHV0ZVByb3BlcnR5UHJpb3JpdHkoc2hvcnRoYW5kKSk7XG4gICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PT0gJ2FuaW1hdGlvbk5hbWUnKSB7XG4gICAgICBjb25zdCBhbmltYXRpb25OYW1lVmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgIGNvbnN0IGFuaW1hdGlvbk5hbWVzID0gW107XG4gICAgICBjb25zdCBydGxBbmltYXRpb25OYW1lcyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBrZXlmcmFtZU9iamVjdCBvZiBhbmltYXRpb25OYW1lVmFsdWUpIHtcbiAgICAgICAgY29uc3Qga2V5ZnJhbWVDU1MgPSBjb21waWxlS2V5ZnJhbWVSdWxlKGtleWZyYW1lT2JqZWN0KTtcbiAgICAgICAgY29uc3QgcnRsS2V5ZnJhbWVDU1MgPSBjb21waWxlS2V5ZnJhbWVSdWxlKGNvbnZlcnQoa2V5ZnJhbWVPYmplY3QpKTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uTmFtZSA9IEhBU0hfUFJFRklYICsgaGFzaFN0cmluZyhrZXlmcmFtZUNTUyk7XG4gICAgICAgIGxldCBydGxBbmltYXRpb25OYW1lO1xuICAgICAgICBjb25zdCBrZXlmcmFtZVJ1bGVzID0gY29tcGlsZUtleWZyYW1lc0NTUyhhbmltYXRpb25OYW1lLCBrZXlmcmFtZUNTUyk7XG4gICAgICAgIGxldCBydGxLZXlmcmFtZVJ1bGVzID0gW107XG4gICAgICAgIGlmIChrZXlmcmFtZUNTUyA9PT0gcnRsS2V5ZnJhbWVDU1MpIHtcbiAgICAgICAgICAvLyBJZiBDU1MgZm9yIExUUiAmIFJUTCBhcmUgc2FtZSB3ZSB3aWxsIHJlLXVzZSBhbmltYXRpb25OYW1lIGZyb20gTFRSIHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9mIHJ1bGVzIGluIG91dHB1dFxuICAgICAgICAgIHJ0bEFuaW1hdGlvbk5hbWUgPSBhbmltYXRpb25OYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJ0bEFuaW1hdGlvbk5hbWUgPSBIQVNIX1BSRUZJWCArIGhhc2hTdHJpbmcocnRsS2V5ZnJhbWVDU1MpO1xuICAgICAgICAgIHJ0bEtleWZyYW1lUnVsZXMgPSBjb21waWxlS2V5ZnJhbWVzQ1NTKHJ0bEFuaW1hdGlvbk5hbWUsIHJ0bEtleWZyYW1lQ1NTKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleWZyYW1lUnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwdXNoVG9DU1NSdWxlcyhjc3NSdWxlc0J5QnVja2V0LFxuICAgICAgICAgIC8vIGtleWZyYW1lcyBzdHlsZXMgc2hvdWxkIGJlIGluc2VydGVkIGludG8gb3duIGJ1Y2tldFxuICAgICAgICAgICdrJywga2V5ZnJhbWVSdWxlc1tpXSwgcnRsS2V5ZnJhbWVSdWxlc1tpXSwgYXRSdWxlcy5tZWRpYSxcbiAgICAgICAgICAvLyBrZXlmcmFtZXMgYWx3YXlzIGhhdmUgZGVmYXVsdCBwcmlvcml0eVxuICAgICAgICAgIDApO1xuICAgICAgICB9XG4gICAgICAgIGFuaW1hdGlvbk5hbWVzLnB1c2goYW5pbWF0aW9uTmFtZSk7XG4gICAgICAgIHJ0bEFuaW1hdGlvbk5hbWVzLnB1c2gocnRsQW5pbWF0aW9uTmFtZSk7XG4gICAgICB9XG4gICAgICByZXNvbHZlU3R5bGVSdWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbk5hbWU6IGFuaW1hdGlvbk5hbWVzLmpvaW4oJywgJylcbiAgICAgIH0sIGNsYXNzTmFtZUhhc2hTYWx0LCBzZWxlY3RvcnMsIGF0UnVsZXMsIGNzc0NsYXNzZXNNYXAsIGNzc1J1bGVzQnlCdWNrZXQsIHJ0bEFuaW1hdGlvbk5hbWVzLmpvaW4oJywgJykpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIC8vIG5vdCBhbmltYXRpb25OYW1lIHByb3BlcnR5IGJ1dCBhcnJheSBpbiB0aGUgdmFsdWUgPT4gZmFsbGJhY2sgdmFsdWVzXG4gICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBtYWtlU3R5bGVzKCk6IEFuIGVtcHR5IGFycmF5IHdhcyBwYXNzZWQgYXMgaW5wdXQgdG8gXCIke3Byb3BlcnR5fVwiLCB0aGUgcHJvcGVydHkgd2lsbCBiZSBvbWl0dGVkIGluIHRoZSBzdHlsZXMuYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RvciA9IHRyaW1TZWxlY3RvcihzZWxlY3RvcnMuam9pbignJykpO1xuICAgICAgY29uc3Qgc2hvcnRoYW5kID0gZ2V0U2hvcnRoYW5kRGVmaW5pdGlvbihwcm9wZXJ0eSk7XG4gICAgICBpZiAoc2hvcnRoYW5kKSB7XG4gICAgICAgIGNvbnN0IHNob3J0aGFuZFByb3BlcnRpZXMgPSBzaG9ydGhhbmRbMV07XG4gICAgICAgIGNvbnN0IHNob3J0aGFuZFJlc2V0U3R5bGVzID0gT2JqZWN0LmZyb21FbnRyaWVzKHNob3J0aGFuZFByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+IFtwcm9wZXJ0eSwgUkVTRVRdKSk7XG4gICAgICAgIHJlc29sdmVTdHlsZVJ1bGVzKHNob3J0aGFuZFJlc2V0U3R5bGVzLCBjbGFzc05hbWVIYXNoU2FsdCwgc2VsZWN0b3JzLCBhdFJ1bGVzLCBjc3NDbGFzc2VzTWFwLCBjc3NSdWxlc0J5QnVja2V0KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGtleSA9IGhhc2hQcm9wZXJ0eUtleShzZWxlY3RvciwgcHJvcGVydHksIGF0UnVsZXMpO1xuICAgICAgY29uc3QgY2xhc3NOYW1lID0gaGFzaENsYXNzTmFtZSh7XG4gICAgICAgIHZhbHVlOiB2YWx1ZS5tYXAodiA9PiAodiAhPT0gbnVsbCAmJiB2ICE9PSB2b2lkIDAgPyB2IDogJycpLnRvU3RyaW5nKCkpLmpvaW4oJzsnKSxcbiAgICAgICAgc2FsdDogY2xhc3NOYW1lSGFzaFNhbHQsXG4gICAgICAgIHNlbGVjdG9yLFxuICAgICAgICBwcm9wZXJ0eVxuICAgICAgfSwgYXRSdWxlcyk7XG4gICAgICBjb25zdCBydGxEZWZpbml0aW9ucyA9IHZhbHVlLm1hcCh2ID0+IGNvbnZlcnRQcm9wZXJ0eShwcm9wZXJ0eSwgdikpO1xuICAgICAgY29uc3QgcnRsUHJvcGVydHlDb25zaXN0ZW50ID0gIXJ0bERlZmluaXRpb25zLnNvbWUodiA9PiB2LmtleSAhPT0gcnRsRGVmaW5pdGlvbnNbMF0ua2V5KTtcbiAgICAgIGlmICghcnRsUHJvcGVydHlDb25zaXN0ZW50KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignbWFrZVN0eWxlcygpOiBtaXhpbmcgQ1NTIGZhbGxiYWNrIHZhbHVlcyB3aGljaCByZXN1bHQgaW4gbXVsdGlwbGUgQ1NTIHByb3BlcnRpZXMgaW4gUlRMIGlzIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBmbGlwcGVkSW5SdGwgPSBydGxEZWZpbml0aW9uc1swXS5rZXkgIT09IHByb3BlcnR5IHx8IHJ0bERlZmluaXRpb25zLnNvbWUoKHYsIGkpID0+IHYudmFsdWUgIT09IHZhbHVlW2ldKTtcbiAgICAgIGNvbnN0IHJ0bENsYXNzTmFtZSA9IGZsaXBwZWRJblJ0bCA/IGhhc2hDbGFzc05hbWUoe1xuICAgICAgICB2YWx1ZTogcnRsRGVmaW5pdGlvbnMubWFwKHYgPT4ge1xuICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICByZXR1cm4gKChfYSA9IHYgPT09IG51bGwgfHwgdiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdi52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLnRvU3RyaW5nKCk7XG4gICAgICAgIH0pLmpvaW4oJzsnKSxcbiAgICAgICAgc2FsdDogY2xhc3NOYW1lSGFzaFNhbHQsXG4gICAgICAgIHByb3BlcnR5OiBydGxEZWZpbml0aW9uc1swXS5rZXksXG4gICAgICAgIHNlbGVjdG9yXG4gICAgICB9LCBhdFJ1bGVzKSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJ0bENvbXBpbGVPcHRpb25zID0gZmxpcHBlZEluUnRsID8ge1xuICAgICAgICBydGxDbGFzc05hbWUsXG4gICAgICAgIHJ0bFByb3BlcnR5OiBydGxEZWZpbml0aW9uc1swXS5rZXksXG4gICAgICAgIHJ0bFZhbHVlOiBydGxEZWZpbml0aW9ucy5tYXAoZCA9PiBkLnZhbHVlKVxuICAgICAgfSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHN0eWxlQnVja2V0TmFtZSA9IGdldFN0eWxlQnVja2V0TmFtZShzZWxlY3RvcnMsIGF0UnVsZXMpO1xuICAgICAgY29uc3QgW2x0ckNTUywgcnRsQ1NTXSA9IGNvbXBpbGVBdG9taWNDU1NSdWxlKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHNlbGVjdG9ycyxcbiAgICAgICAgcHJvcGVydHksXG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfSwgcnRsQ29tcGlsZU9wdGlvbnMpLCBhdFJ1bGVzKTtcbiAgICAgIHB1c2hUb0NsYXNzZXNNYXAoY3NzQ2xhc3Nlc01hcCwga2V5LCBjbGFzc05hbWUsIHJ0bENsYXNzTmFtZSk7XG4gICAgICBwdXNoVG9DU1NSdWxlcyhjc3NSdWxlc0J5QnVja2V0LCBzdHlsZUJ1Y2tldE5hbWUsIGx0ckNTUywgcnRsQ1NTLCBhdFJ1bGVzLm1lZGlhLCBjb21wdXRlUHJvcGVydHlQcmlvcml0eShzaG9ydGhhbmQpKTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgaWYgKGlzTmVzdGVkU2VsZWN0b3IocHJvcGVydHkpKSB7XG4gICAgICAgIHJlc29sdmVTdHlsZVJ1bGVzKHZhbHVlLCBjbGFzc05hbWVIYXNoU2FsdCwgc2VsZWN0b3JzLmNvbmNhdChub3JtYWxpemVOZXN0ZWRQcm9wZXJ0eShwcm9wZXJ0eSkpLCBhdFJ1bGVzLCBjc3NDbGFzc2VzTWFwLCBjc3NSdWxlc0J5QnVja2V0KTtcbiAgICAgIH0gZWxzZSBpZiAoaXNNZWRpYVF1ZXJ5U2VsZWN0b3IocHJvcGVydHkpKSB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkTWVkaWFRdWVyeSA9IGdlbmVyYXRlQ29tYmluZWRRdWVyeShhdFJ1bGVzLm1lZGlhLCBwcm9wZXJ0eS5zbGljZSg2KS50cmltKCkpO1xuICAgICAgICByZXNvbHZlU3R5bGVSdWxlcyh2YWx1ZSwgY2xhc3NOYW1lSGFzaFNhbHQsIHNlbGVjdG9ycywgT2JqZWN0LmFzc2lnbih7fSwgYXRSdWxlcywge1xuICAgICAgICAgIG1lZGlhOiBjb21iaW5lZE1lZGlhUXVlcnlcbiAgICAgICAgfSksIGNzc0NsYXNzZXNNYXAsIGNzc1J1bGVzQnlCdWNrZXQpO1xuICAgICAgfSBlbHNlIGlmIChpc0xheWVyU2VsZWN0b3IocHJvcGVydHkpKSB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkTGF5ZXJRdWVyeSA9IChhdFJ1bGVzLmxheWVyID8gYCR7YXRSdWxlcy5sYXllcn0uYCA6ICcnKSArIHByb3BlcnR5LnNsaWNlKDYpLnRyaW0oKTtcbiAgICAgICAgcmVzb2x2ZVN0eWxlUnVsZXModmFsdWUsIGNsYXNzTmFtZUhhc2hTYWx0LCBzZWxlY3RvcnMsIE9iamVjdC5hc3NpZ24oe30sIGF0UnVsZXMsIHtcbiAgICAgICAgICBsYXllcjogY29tYmluZWRMYXllclF1ZXJ5XG4gICAgICAgIH0pLCBjc3NDbGFzc2VzTWFwLCBjc3NSdWxlc0J5QnVja2V0KTtcbiAgICAgIH0gZWxzZSBpZiAoaXNTdXBwb3J0UXVlcnlTZWxlY3Rvcihwcm9wZXJ0eSkpIHtcbiAgICAgICAgY29uc3QgY29tYmluZWRTdXBwb3J0UXVlcnkgPSBnZW5lcmF0ZUNvbWJpbmVkUXVlcnkoYXRSdWxlcy5zdXBwb3J0cywgcHJvcGVydHkuc2xpY2UoOSkudHJpbSgpKTtcbiAgICAgICAgcmVzb2x2ZVN0eWxlUnVsZXModmFsdWUsIGNsYXNzTmFtZUhhc2hTYWx0LCBzZWxlY3RvcnMsIE9iamVjdC5hc3NpZ24oe30sIGF0UnVsZXMsIHtcbiAgICAgICAgICBzdXBwb3J0czogY29tYmluZWRTdXBwb3J0UXVlcnlcbiAgICAgICAgfSksIGNzc0NsYXNzZXNNYXAsIGNzc1J1bGVzQnlCdWNrZXQpO1xuICAgICAgfSBlbHNlIGlmIChpc0NvbnRhaW5lclF1ZXJ5U2VsZWN0b3IocHJvcGVydHkpKSB7XG4gICAgICAgIC8vIFRPRE8gaW1wbGVtZW50IG5lc3RlZCBjb250YWluZXIgcXVlcmllcyBpZiBuZWVkZWRcbiAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIHRhcmdldCBtdWx0aXBsZSBjb250YWluZXJzIGlzIHRvIG5lc3QgY29udGFpbmVyIHF1ZXJpZXNcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0Bjb250YWluZXIjbmVzdGVkX2NvbnRhaW5lcl9xdWVyaWVzXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclF1ZXJ5ID0gcHJvcGVydHkuc2xpY2UoMTApLnRyaW0oKTtcbiAgICAgICAgcmVzb2x2ZVN0eWxlUnVsZXModmFsdWUsIGNsYXNzTmFtZUhhc2hTYWx0LCBzZWxlY3RvcnMsIE9iamVjdC5hc3NpZ24oe30sIGF0UnVsZXMsIHtcbiAgICAgICAgICBjb250YWluZXI6IGNvbnRhaW5lclF1ZXJ5XG4gICAgICAgIH0pLCBjc3NDbGFzc2VzTWFwLCBjc3NSdWxlc0J5QnVja2V0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5BYm91dFVucmVzb2x2ZWRSdWxlKHByb3BlcnR5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBbY3NzQ2xhc3Nlc01hcCwgY3NzUnVsZXNCeUJ1Y2tldF07XG59XG5cbmV4cG9ydCB7IHJlc29sdmVTdHlsZVJ1bGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlU3R5bGVSdWxlcy5lc20uanMubWFwXG4iLCJpbXBvcnQgeyByZXNvbHZlU3R5bGVSdWxlcyB9IGZyb20gJy4vcnVudGltZS9yZXNvbHZlU3R5bGVSdWxlcy5lc20uanMnO1xuXG4vKipcbiAqIENhbGxzIHJlc29sdmVTdHlsZVJ1bGVzKCkgZm9yIGVhY2ggc2xvdCwgaXMgYWxzbyB1c2VkIGJ5IGJ1aWxkIHRpbWUgdHJhbnNmb3JtLlxuICpcbiAqIEBwYXJhbSBzdHlsZXNCeVNsb3RzIC0gQW4gb2JqZWN0IHdpdGggbWFrZVN0eWxlcyBydWxlcyB3aGVyZSBhIGtleSBpcyBhIHNsb3QgbmFtZVxuICogQHBhcmFtIGNsYXNzTmFtZUhhc2hTYWx0IC0gQSBzYWx0IGZvciBjbGFzc2VzIGhhc2hcbiAqXG4gKiBAcmV0dXJuIC0gQSB0dXBsZSB3aXRoIGFuIG9iamVjdCBjbGFzc25hbWVzIG1hcHBpbmcgd2hlcmUgYSBrZXkgaXMgYSBzbG90IG5hbWUgYW5kIGFuIGFycmF5IHdpdGggQ1NTIHJ1bGVzXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTdHlsZVJ1bGVzRm9yU2xvdHMoc3R5bGVzQnlTbG90cywgY2xhc3NOYW1lSGFzaFNhbHQgPSAnJykge1xuICBjb25zdCBjbGFzc2VzTWFwQnlTbG90ID0ge307XG4gIGNvbnN0IGNzc1J1bGVzID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cbiAgZm9yIChjb25zdCBzbG90TmFtZSBpbiBzdHlsZXNCeVNsb3RzKSB7XG4gICAgY29uc3Qgc2xvdFN0eWxlcyA9IHN0eWxlc0J5U2xvdHNbc2xvdE5hbWVdO1xuICAgIGNvbnN0IFtjc3NDbGFzc01hcCwgY3NzUnVsZXNCeUJ1Y2tldF0gPSByZXNvbHZlU3R5bGVSdWxlcyhzbG90U3R5bGVzLCBjbGFzc05hbWVIYXNoU2FsdCk7XG4gICAgY2xhc3Nlc01hcEJ5U2xvdFtzbG90TmFtZV0gPSBjc3NDbGFzc01hcDtcbiAgICBPYmplY3Qua2V5cyhjc3NSdWxlc0J5QnVja2V0KS5mb3JFYWNoKHN0eWxlQnVja2V0TmFtZSA9PiB7XG4gICAgICBjc3NSdWxlc1tzdHlsZUJ1Y2tldE5hbWVdID0gKGNzc1J1bGVzW3N0eWxlQnVja2V0TmFtZV0gfHwgW10pLmNvbmNhdChjc3NSdWxlc0J5QnVja2V0W3N0eWxlQnVja2V0TmFtZV0pO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBbY2xhc3Nlc01hcEJ5U2xvdCwgY3NzUnVsZXNdO1xufVxuXG5leHBvcnQgeyByZXNvbHZlU3R5bGVSdWxlc0ZvclNsb3RzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlU3R5bGVSdWxlc0ZvclNsb3RzLmVzbS5qcy5tYXBcbiIsImltcG9ydCAnLi9jb25zdGFudHMuZXNtLmpzJztcbmltcG9ydCB7IGRlYnVnRGF0YSB9IGZyb20gJy4vZGV2dG9vbHMvc3RvcmUuZXNtLmpzJztcbmltcG9ydCB7IGlzRGV2VG9vbHNFbmFibGVkIH0gZnJvbSAnLi9kZXZ0b29scy9pc0RldlRvb2xzRW5hYmxlZC5lc20uanMnO1xuaW1wb3J0IHsgZ2V0U291cmNlVVJMZnJvbUVycm9yIH0gZnJvbSAnLi9kZXZ0b29scy9nZXRTb3VyY2VVUkxmcm9tRXJyb3IuZXNtLmpzJztcbmltcG9ydCB7IGluc2VydGlvbkZhY3RvcnkgfSBmcm9tICcuL2luc2VydGlvbkZhY3RvcnkuZXNtLmpzJztcbmltcG9ydCB7IHJlc29sdmVTdHlsZVJ1bGVzRm9yU2xvdHMgfSBmcm9tICcuL3Jlc29sdmVTdHlsZVJ1bGVzRm9yU2xvdHMuZXNtLmpzJztcbmltcG9ydCB7IHJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMgfSBmcm9tICcuL3J1bnRpbWUvcmVkdWNlVG9DbGFzc05hbWVGb3JTbG90cy5lc20uanMnO1xuXG5mdW5jdGlvbiBtYWtlU3R5bGVzKHN0eWxlc0J5U2xvdHMsIGZhY3RvcnkgPSBpbnNlcnRpb25GYWN0b3J5KSB7XG4gIGNvbnN0IGluc2VydFN0eWxlcyA9IGZhY3RvcnkoKTtcbiAgbGV0IGNsYXNzZXNNYXBCeVNsb3QgPSBudWxsO1xuICBsZXQgY3NzUnVsZXMgPSBudWxsO1xuICBsZXQgbHRyQ2xhc3NOYW1lc0ZvclNsb3RzID0gbnVsbDtcbiAgbGV0IHJ0bENsYXNzTmFtZXNGb3JTbG90cyA9IG51bGw7XG4gIGxldCBzb3VyY2VVUkw7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGV2VG9vbHNFbmFibGVkKSB7XG4gICAgc291cmNlVVJMID0gZ2V0U291cmNlVVJMZnJvbUVycm9yKCk7XG4gIH1cbiAgbGV0IGNsYXNzTmFtZUhhc2hTYWx0O1xuICBmdW5jdGlvbiBjb21wdXRlQ2xhc3NlcyhvcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGlyLFxuICAgICAgcmVuZGVyZXJcbiAgICB9ID0gb3B0aW9ucztcbiAgICBpZiAoY2xhc3Nlc01hcEJ5U2xvdCA9PT0gbnVsbCkge1xuICAgICAgW2NsYXNzZXNNYXBCeVNsb3QsIGNzc1J1bGVzXSA9IHJlc29sdmVTdHlsZVJ1bGVzRm9yU2xvdHMoc3R5bGVzQnlTbG90cywgcmVuZGVyZXIuY2xhc3NOYW1lSGFzaFNhbHQpO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKHJlbmRlcmVyLmNsYXNzTmFtZUhhc2hTYWx0KSB7XG4gICAgICAgICAgaWYgKGNsYXNzTmFtZUhhc2hTYWx0ICE9PSByZW5kZXJlci5jbGFzc05hbWVIYXNoU2FsdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihbJ0BncmlmZmVsL2NvcmU6JywgJ1xcblxcbicsICdBIHByb3ZpZGVkIHJlbmRlcmVyIGhhcyBkaWZmZXJlbnQgXCJjbGFzc05hbWVIYXNoU2FsdFwiLicsICdUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIFdJTEwgY2F1c2UgaXNzdWVzIHdpdGggY2xhc3NuYW1lcyBnZW5lcmF0aW9uLicsICdFbnN1cmUgdGhhdCBhbGwgcmVuZGVyZXJzIGNyZWF0ZWQgd2l0aCBcImNyZWF0ZURPTVJlbmRlcmVyKClcIiBoYXZlIHRoZSBzYW1lIFwiY2xhc3NOYW1lSGFzaFNhbHRcIi4nXS5qb2luKCcgJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjbGFzc05hbWVIYXNoU2FsdCA9IHJlbmRlcmVyLmNsYXNzTmFtZUhhc2hTYWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlzTFRSID0gZGlyID09PSAnbHRyJztcbiAgICBpZiAoaXNMVFIpIHtcbiAgICAgIGlmIChsdHJDbGFzc05hbWVzRm9yU2xvdHMgPT09IG51bGwpIHtcbiAgICAgICAgbHRyQ2xhc3NOYW1lc0ZvclNsb3RzID0gcmVkdWNlVG9DbGFzc05hbWVGb3JTbG90cyhjbGFzc2VzTWFwQnlTbG90LCBkaXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocnRsQ2xhc3NOYW1lc0ZvclNsb3RzID09PSBudWxsKSB7XG4gICAgICAgIHJ0bENsYXNzTmFtZXNGb3JTbG90cyA9IHJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMoY2xhc3Nlc01hcEJ5U2xvdCwgZGlyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0U3R5bGVzKHJlbmRlcmVyLCBjc3NSdWxlcyk7XG4gICAgY29uc3QgY2xhc3NOYW1lc0ZvclNsb3RzID0gaXNMVFIgPyBsdHJDbGFzc05hbWVzRm9yU2xvdHMgOiBydGxDbGFzc05hbWVzRm9yU2xvdHM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNEZXZUb29sc0VuYWJsZWQpIHtcbiAgICAgIGRlYnVnRGF0YS5hZGRTZXF1ZW5jZURldGFpbHMoY2xhc3NOYW1lc0ZvclNsb3RzLCBzb3VyY2VVUkwpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NOYW1lc0ZvclNsb3RzO1xuICB9XG4gIHJldHVybiBjb21wdXRlQ2xhc3Nlcztcbn1cblxuZXhwb3J0IHsgbWFrZVN0eWxlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFrZVN0eWxlcy5lc20uanMubWFwXG4iLCJpbXBvcnQgJy4vY29uc3RhbnRzLmVzbS5qcyc7XG5pbXBvcnQgeyBkZWJ1Z0RhdGEgfSBmcm9tICcuL2RldnRvb2xzL3N0b3JlLmVzbS5qcyc7XG5pbXBvcnQgeyBpc0RldlRvb2xzRW5hYmxlZCB9IGZyb20gJy4vZGV2dG9vbHMvaXNEZXZUb29sc0VuYWJsZWQuZXNtLmpzJztcbmltcG9ydCB7IGdldFNvdXJjZVVSTGZyb21FcnJvciB9IGZyb20gJy4vZGV2dG9vbHMvZ2V0U291cmNlVVJMZnJvbUVycm9yLmVzbS5qcyc7XG5pbXBvcnQgeyBpbnNlcnRpb25GYWN0b3J5IH0gZnJvbSAnLi9pbnNlcnRpb25GYWN0b3J5LmVzbS5qcyc7XG5pbXBvcnQgeyByZWR1Y2VUb0NsYXNzTmFtZUZvclNsb3RzIH0gZnJvbSAnLi9ydW50aW1lL3JlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMuZXNtLmpzJztcblxuLyoqXG4gKiBBIHZlcnNpb24gb2YgbWFrZVN0eWxlcygpIHRoYXQgYWNjZXB0cyBidWlsZCBvdXRwdXQgYXMgYW4gaW5wdXQgYW5kIHNraXBzIGFsbCBydW50aW1lIHRyYW5zZm9ybXMuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmZ1bmN0aW9uIF9fc3R5bGVzKGNsYXNzZXNNYXBCeVNsb3QsIGNzc1J1bGVzLCBmYWN0b3J5ID0gaW5zZXJ0aW9uRmFjdG9yeSkge1xuICBjb25zdCBpbnNlcnRTdHlsZXMgPSBmYWN0b3J5KCk7XG4gIGxldCBsdHJDbGFzc05hbWVzRm9yU2xvdHMgPSBudWxsO1xuICBsZXQgcnRsQ2xhc3NOYW1lc0ZvclNsb3RzID0gbnVsbDtcbiAgbGV0IHNvdXJjZVVSTDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNEZXZUb29sc0VuYWJsZWQpIHtcbiAgICBzb3VyY2VVUkwgPSBnZXRTb3VyY2VVUkxmcm9tRXJyb3IoKTtcbiAgfVxuICBmdW5jdGlvbiBjb21wdXRlQ2xhc3NlcyhvcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGlyLFxuICAgICAgcmVuZGVyZXJcbiAgICB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBpc0xUUiA9IGRpciA9PT0gJ2x0cic7XG4gICAgaWYgKGlzTFRSKSB7XG4gICAgICBpZiAobHRyQ2xhc3NOYW1lc0ZvclNsb3RzID09PSBudWxsKSB7XG4gICAgICAgIGx0ckNsYXNzTmFtZXNGb3JTbG90cyA9IHJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMoY2xhc3Nlc01hcEJ5U2xvdCwgZGlyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJ0bENsYXNzTmFtZXNGb3JTbG90cyA9PT0gbnVsbCkge1xuICAgICAgICBydGxDbGFzc05hbWVzRm9yU2xvdHMgPSByZWR1Y2VUb0NsYXNzTmFtZUZvclNsb3RzKGNsYXNzZXNNYXBCeVNsb3QsIGRpcik7XG4gICAgICB9XG4gICAgfVxuICAgIGluc2VydFN0eWxlcyhyZW5kZXJlciwgY3NzUnVsZXMpO1xuICAgIGNvbnN0IGNsYXNzTmFtZXNGb3JTbG90cyA9IGlzTFRSID8gbHRyQ2xhc3NOYW1lc0ZvclNsb3RzIDogcnRsQ2xhc3NOYW1lc0ZvclNsb3RzO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGV2VG9vbHNFbmFibGVkKSB7XG4gICAgICBkZWJ1Z0RhdGEuYWRkU2VxdWVuY2VEZXRhaWxzKGNsYXNzTmFtZXNGb3JTbG90cywgc291cmNlVVJMKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTmFtZXNGb3JTbG90cztcbiAgfVxuICByZXR1cm4gY29tcHV0ZUNsYXNzZXM7XG59XG5cbmV4cG9ydCB7IF9fc3R5bGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX3N0eWxlcy5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBERUJVR19SRVNFVF9DTEFTU0VTIH0gZnJvbSAnLi9jb25zdGFudHMuZXNtLmpzJztcbmltcG9ydCB7IGluc2VydGlvbkZhY3RvcnkgfSBmcm9tICcuL2luc2VydGlvbkZhY3RvcnkuZXNtLmpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gX19yZXNldFN0eWxlcyhsdHJDbGFzc05hbWUsIHJ0bENsYXNzTmFtZSwgY3NzUnVsZXMsIGZhY3RvcnkgPSBpbnNlcnRpb25GYWN0b3J5KSB7XG4gIGNvbnN0IGluc2VydFN0eWxlcyA9IGZhY3RvcnkoKTtcbiAgZnVuY3Rpb24gY29tcHV0ZUNsYXNzTmFtZShvcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGlyLFxuICAgICAgcmVuZGVyZXJcbiAgICB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjbGFzc05hbWUgPSBkaXIgPT09ICdsdHInID8gbHRyQ2xhc3NOYW1lIDogcnRsQ2xhc3NOYW1lIHx8IGx0ckNsYXNzTmFtZTtcbiAgICBpbnNlcnRTdHlsZXMocmVuZGVyZXIsIEFycmF5LmlzQXJyYXkoY3NzUnVsZXMpID8ge1xuICAgICAgcjogY3NzUnVsZXNcbiAgICB9IDogY3NzUnVsZXMpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBERUJVR19SRVNFVF9DTEFTU0VTW2NsYXNzTmFtZV0gPSAxO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NOYW1lO1xuICB9XG4gIHJldHVybiBjb21wdXRlQ2xhc3NOYW1lO1xufVxuXG5leHBvcnQgeyBfX3Jlc2V0U3R5bGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX3Jlc2V0U3R5bGVzLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGJvcmRlciB9IGZyb20gJy4vc2hvcnRoYW5kcy9ib3JkZXIuZXNtLmpzJztcbmltcG9ydCB7IGJvcmRlckxlZnQgfSBmcm9tICcuL3Nob3J0aGFuZHMvYm9yZGVyTGVmdC5lc20uanMnO1xuaW1wb3J0IHsgYm9yZGVyQm90dG9tIH0gZnJvbSAnLi9zaG9ydGhhbmRzL2JvcmRlckJvdHRvbS5lc20uanMnO1xuaW1wb3J0IHsgYm9yZGVyUmlnaHQgfSBmcm9tICcuL3Nob3J0aGFuZHMvYm9yZGVyUmlnaHQuZXNtLmpzJztcbmltcG9ydCB7IGJvcmRlclRvcCB9IGZyb20gJy4vc2hvcnRoYW5kcy9ib3JkZXJUb3AuZXNtLmpzJztcbmltcG9ydCB7IGJvcmRlckNvbG9yIH0gZnJvbSAnLi9zaG9ydGhhbmRzL2JvcmRlckNvbG9yLmVzbS5qcyc7XG5pbXBvcnQgeyBib3JkZXJTdHlsZSB9IGZyb20gJy4vc2hvcnRoYW5kcy9ib3JkZXJTdHlsZS5lc20uanMnO1xuaW1wb3J0IHsgYm9yZGVyUmFkaXVzIH0gZnJvbSAnLi9zaG9ydGhhbmRzL2JvcmRlclJhZGl1cy5lc20uanMnO1xuaW1wb3J0IHsgYm9yZGVyV2lkdGggfSBmcm9tICcuL3Nob3J0aGFuZHMvYm9yZGVyV2lkdGguZXNtLmpzJztcbmltcG9ydCB7IGZsZXggfSBmcm9tICcuL3Nob3J0aGFuZHMvZmxleC5lc20uanMnO1xuaW1wb3J0IHsgZ2FwIH0gZnJvbSAnLi9zaG9ydGhhbmRzL2dhcC5lc20uanMnO1xuaW1wb3J0IHsgZ3JpZEFyZWEgfSBmcm9tICcuL3Nob3J0aGFuZHMvZ3JpZEFyZWEuZXNtLmpzJztcbmltcG9ydCB7IG1hcmdpbiB9IGZyb20gJy4vc2hvcnRoYW5kcy9tYXJnaW4uZXNtLmpzJztcbmltcG9ydCB7IG1hcmdpbkJsb2NrIH0gZnJvbSAnLi9zaG9ydGhhbmRzL21hcmdpbkJsb2NrLmVzbS5qcyc7XG5pbXBvcnQgeyBtYXJnaW5JbmxpbmUgfSBmcm9tICcuL3Nob3J0aGFuZHMvbWFyZ2luSW5saW5lLmVzbS5qcyc7XG5pbXBvcnQgeyBwYWRkaW5nIH0gZnJvbSAnLi9zaG9ydGhhbmRzL3BhZGRpbmcuZXNtLmpzJztcbmltcG9ydCB7IHBhZGRpbmdCbG9jayB9IGZyb20gJy4vc2hvcnRoYW5kcy9wYWRkaW5nQmxvY2suZXNtLmpzJztcbmltcG9ydCB7IHBhZGRpbmdJbmxpbmUgfSBmcm9tICcuL3Nob3J0aGFuZHMvcGFkZGluZ0lubGluZS5lc20uanMnO1xuaW1wb3J0IHsgb3ZlcmZsb3cgfSBmcm9tICcuL3Nob3J0aGFuZHMvb3ZlcmZsb3cuZXNtLmpzJztcbmltcG9ydCB7IGluc2V0IH0gZnJvbSAnLi9zaG9ydGhhbmRzL2luc2V0LmVzbS5qcyc7XG5pbXBvcnQgeyBvdXRsaW5lIH0gZnJvbSAnLi9zaG9ydGhhbmRzL291dGxpbmUuZXNtLmpzJztcbmltcG9ydCB7IHRyYW5zaXRpb24gfSBmcm9tICcuL3Nob3J0aGFuZHMvdHJhbnNpdGlvbi5lc20uanMnO1xuaW1wb3J0IHsgdGV4dERlY29yYXRpb24gfSBmcm9tICcuL3Nob3J0aGFuZHMvdGV4dERlY29yYXRpb24uZXNtLmpzJztcbmV4cG9ydCB7IGNyZWF0ZURPTVJlbmRlcmVyLCBkZWZhdWx0Q29tcGFyZU1lZGlhUXVlcmllcyB9IGZyb20gJy4vcmVuZGVyZXIvY3JlYXRlRE9NUmVuZGVyZXIuZXNtLmpzJztcbmV4cG9ydCB7IHJlaHlkcmF0ZVJlbmRlcmVyQ2FjaGUgfSBmcm9tICcuL3JlbmRlcmVyL3JlaHlkcmF0ZVJlbmRlcmVyQ2FjaGUuZXNtLmpzJztcbmV4cG9ydCB7IHNhZmVJbnNlcnRSdWxlIH0gZnJvbSAnLi9yZW5kZXJlci9zYWZlSW5zZXJ0UnVsZS5lc20uanMnO1xuZXhwb3J0IHsgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnLi9tZXJnZUNsYXNzZXMuZXNtLmpzJztcbmV4cG9ydCB7IG1ha2VTdHlsZXMgfSBmcm9tICcuL21ha2VTdHlsZXMuZXNtLmpzJztcbmV4cG9ydCB7IG1ha2VTdGF0aWNTdHlsZXMgfSBmcm9tICcuL21ha2VTdGF0aWNTdHlsZXMuZXNtLmpzJztcbmV4cG9ydCB7IG1ha2VSZXNldFN0eWxlcyB9IGZyb20gJy4vbWFrZVJlc2V0U3R5bGVzLmVzbS5qcyc7XG5leHBvcnQgeyByZXNvbHZlU3R5bGVSdWxlc0ZvclNsb3RzIH0gZnJvbSAnLi9yZXNvbHZlU3R5bGVSdWxlc0ZvclNsb3RzLmVzbS5qcyc7XG5leHBvcnQgeyBfX2NzcyB9IGZyb20gJy4vX19jc3MuZXNtLmpzJztcbmV4cG9ydCB7IF9fc3R5bGVzIH0gZnJvbSAnLi9fX3N0eWxlcy5lc20uanMnO1xuZXhwb3J0IHsgX19yZXNldENTUyB9IGZyb20gJy4vX19yZXNldENTUy5lc20uanMnO1xuZXhwb3J0IHsgX19yZXNldFN0eWxlcyB9IGZyb20gJy4vX19yZXNldFN0eWxlcy5lc20uanMnO1xuZXhwb3J0IHsgbm9ybWFsaXplQ1NTQnVja2V0RW50cnkgfSBmcm9tICcuL3J1bnRpbWUvdXRpbHMvbm9ybWFsaXplQ1NTQnVja2V0RW50cnkuZXNtLmpzJztcbmV4cG9ydCB7IGdldFN0eWxlU2hlZXRLZXksIHN0eWxlQnVja2V0T3JkZXJpbmcgfSBmcm9tICcuL3JlbmRlcmVyL2dldFN0eWxlU2hlZXRGb3JCdWNrZXQuZXNtLmpzJztcbmV4cG9ydCB7IGdldFN0eWxlQnVja2V0TmFtZSB9IGZyb20gJy4vcnVudGltZS9nZXRTdHlsZUJ1Y2tldE5hbWUuZXNtLmpzJztcbmV4cG9ydCB7IHJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMgfSBmcm9tICcuL3J1bnRpbWUvcmVkdWNlVG9DbGFzc05hbWVGb3JTbG90cy5lc20uanMnO1xuZXhwb3J0IHsgcmVzb2x2ZVN0eWxlUnVsZXMgfSBmcm9tICcuL3J1bnRpbWUvcmVzb2x2ZVN0eWxlUnVsZXMuZXNtLmpzJztcbmV4cG9ydCB7IHJlc29sdmVSZXNldFN0eWxlUnVsZXMgfSBmcm9tICcuL3J1bnRpbWUvcmVzb2x2ZVJlc2V0U3R5bGVSdWxlcy5lc20uanMnO1xuZXhwb3J0IHsgREFUQV9CVUNLRVRfQVRUUiwgREFUQV9QUklPUklUWV9BVFRSLCBERUJVR19SRVNFVF9DTEFTU0VTLCBERUJVR19TRVFVRU5DRV9TRVBBUkFUT1IsIERFRklOSVRJT05fTE9PS1VQX1RBQkxFLCBIQVNIX1BSRUZJWCwgTE9PS1VQX0RFRklOSVRJT05TX0lOREVYLCBMT09LVVBfRElSX0lOREVYLCBSRVNFVCwgUkVTRVRfSEFTSF9QUkVGSVgsIFNFUVVFTkNFX0hBU0hfTEVOR1RILCBTRVFVRU5DRV9QUkVGSVgsIFNFUVVFTkNFX1NJWkUsIFVOU1VQUE9SVEVEX0NTU19QUk9QRVJUSUVTIH0gZnJvbSAnLi9jb25zdGFudHMuZXNtLmpzJztcblxuLy8gVGhpcyBzaG91bGQgYmUganVzdCBcImV4cG9ydCAqIGFzIHNob3J0aGFuZHMgZnJvbSBcIlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2OTRcbmNvbnN0IHNob3J0aGFuZHMgPSB7XG4gIGJvcmRlcixcbiAgYm9yZGVyTGVmdCxcbiAgYm9yZGVyQm90dG9tLFxuICBib3JkZXJSaWdodCxcbiAgYm9yZGVyVG9wLFxuICBib3JkZXJDb2xvcixcbiAgYm9yZGVyU3R5bGUsXG4gIGJvcmRlclJhZGl1cyxcbiAgYm9yZGVyV2lkdGgsXG4gIGZsZXgsXG4gIGdhcCxcbiAgZ3JpZEFyZWEsXG4gIG1hcmdpbixcbiAgbWFyZ2luQmxvY2ssXG4gIG1hcmdpbklubGluZSxcbiAgcGFkZGluZyxcbiAgcGFkZGluZ0Jsb2NrLFxuICBwYWRkaW5nSW5saW5lLFxuICBvdmVyZmxvdyxcbiAgaW5zZXQsXG4gIG91dGxpbmUsXG4gIHRyYW5zaXRpb24sXG4gIHRleHREZWNvcmF0aW9uXG59O1xuXG5leHBvcnQgeyBzaG9ydGhhbmRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5lc20uanMubWFwXG4iLCIvKipcbiAqIFZlcmlmaWVzIGlmIGFuIGFwcGxpY2F0aW9uIGNhbiB1c2UgRE9NLlxuICovXG5mdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAhISh3aW5kb3cuZG9jdW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xufVxuXG5leHBvcnQgeyBjYW5Vc2VET00gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhblVzZURPTS5lc20uanMubWFwXG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IHVzZUluc2VydGlvbkVmZmVjdCA9XG4vLyBAdHMtZXhwZWN0LWVycm9yIEhhY2sgdG8gbWFrZSBzdXJlIHRoYXQgYHVzZUluc2VydGlvbkVmZmVjdGAgd2lsbCBub3QgY2F1c2UgYnVuZGxpbmcgaXNzdWVzIGluIG9sZGVyIFJlYWN0IHZlcnNpb25zXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jb25jYXRcblJlYWN0Wyd1c2VJbnNlcnRpb24nICsgJ0VmZmVjdCddID8gUmVhY3RbJ3VzZUluc2VydGlvbicgKyAnRWZmZWN0J10gOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCB7IHVzZUluc2VydGlvbkVmZmVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlSW5zZXJ0aW9uRWZmZWN0LmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGNhblVzZURPTSB9IGZyb20gJy4vdXRpbHMvY2FuVXNlRE9NLmVzbS5qcyc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3QgfSBmcm9tICcuL3VzZUluc2VydGlvbkVmZmVjdC5lc20uanMnO1xuXG5jb25zdCBpbnNlcnRpb25GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBpbnNlcnRpb25DYWNoZSA9IHt9O1xuICByZXR1cm4gZnVuY3Rpb24gaW5zZXJ0KHJlbmRlcmVyLCBjc3NSdWxlcykge1xuICAgIC8vIEV2ZW4gaWYgYHVzZUluc2VydGlvbkVmZmVjdGAgaXMgYXZhaWxhYmxlLCB3ZSBjYW4gdXNlIGl0IG9uIGEgY2xpZW50IG9ubHkgYXMgaXQgd2lsbCBub3QgYmUgZXhlY3V0ZWQgaW4gU1NSXG4gICAgaWYgKHVzZUluc2VydGlvbkVmZmVjdCAmJiBjYW5Vc2VET00oKSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICB1c2VJbnNlcnRpb25FZmZlY3QoKCkgPT4ge1xuICAgICAgICByZW5kZXJlci5pbnNlcnRDU1NSdWxlcyhjc3NSdWxlcyk7XG4gICAgICB9LCBbcmVuZGVyZXIsIGNzc1J1bGVzXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbnNlcnRpb25DYWNoZVtyZW5kZXJlci5pZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVuZGVyZXIuaW5zZXJ0Q1NTUnVsZXMoY3NzUnVsZXMpO1xuICAgICAgaW5zZXJ0aW9uQ2FjaGVbcmVuZGVyZXIuaWRdID0gdHJ1ZTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgeyBpbnNlcnRpb25GYWN0b3J5IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnNlcnRpb25GYWN0b3J5LmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IHJlaHlkcmF0ZVJlbmRlcmVyQ2FjaGUsIGNyZWF0ZURPTVJlbmRlcmVyIH0gZnJvbSAnQGdyaWZmZWwvY29yZSc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuL3V0aWxzL2NhblVzZURPTS5lc20uanMnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFJlbmRlcmVyQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KCAvKiNfX1BVUkVfXyovY3JlYXRlRE9NUmVuZGVyZXIoKSk7XG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuY29uc3QgUmVuZGVyZXJQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICByZW5kZXJlcixcbiAgdGFyZ2V0RG9jdW1lbnRcbn0pID0+IHtcbiAgaWYgKGNhblVzZURPTSgpKSB7XG4gICAgLy8gVGhpcyBpZiBzdGF0ZW1lbnQgdGVjaG5pY2FsbHkgYnJlYWtzIHRoZSBydWxlcyBvZiBob29rcywgYnV0IGlzIHNhZmUgYmVjYXVzZSB0aGUgY29uZGl0aW9uIG5ldmVyIGNoYW5nZXMgYWZ0ZXJcbiAgICAvLyBtb3VudGluZy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgIC8vIFwicmVoeWRyYXRlQ2FjaGUoKVwiIGNhbid0IGJlIGNhbGxlZCBpbiBlZmZlY3RzIGFzIGl0IG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgYW55IGNvbXBvbmVudCB3aWxsIGJlIHJlbmRlcmVkIHRvXG4gICAgICAvLyBhdm9pZCBkb3VibGUgaW5zZXJ0aW9uIG9mIGNsYXNzZXNcbiAgICAgIHJlaHlkcmF0ZVJlbmRlcmVyQ2FjaGUocmVuZGVyZXIsIHRhcmdldERvY3VtZW50KTtcbiAgICB9LCBbcmVuZGVyZXIsIHRhcmdldERvY3VtZW50XSk7XG4gIH1cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlbmRlcmVyQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiByZW5kZXJlclxuICB9LCBjaGlsZHJlbik7XG59O1xuLyoqXG4gKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGN1cnJlbnQgbWFrZVN0eWxlcygpIHJlbmRlcmVyLlxuICpcbiAqIEBwcml2YXRlIEV4cG9ydGVkIGFzIFwidXNlUmVuZGVyZXJfdW5zdGFibGVcIiB1c2UgaXQgb24gb3duIHJpc2suIENhbiBiZSBjaGFuZ2VkIG9yIHJlbW92ZWQgd2l0aG91dCBhIG5vdGljZS5cbiAqL1xuZnVuY3Rpb24gdXNlUmVuZGVyZXIoKSB7XG4gIHJldHVybiBSZWFjdC51c2VDb250ZXh0KFJlbmRlcmVyQ29udGV4dCk7XG59XG5cbmV4cG9ydCB7IFJlbmRlcmVyUHJvdmlkZXIsIHVzZVJlbmRlcmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZW5kZXJlckNvbnRleHQuZXNtLmpzLm1hcFxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFRleHREaXJlY3Rpb25Db250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQoJ2x0cicpO1xuLyoqXG4gKiBAcHVibGljXG4gKi9cbmNvbnN0IFRleHREaXJlY3Rpb25Qcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBkaXJcbn0pID0+IHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRleHREaXJlY3Rpb25Db250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGRpclxuICB9LCBjaGlsZHJlbik7XG59O1xuLyoqXG4gKiBSZXR1cm5zIGN1cnJlbnQgZGlyZWN0aW9uYWxpdHkgb2YgdGhlIGVsZW1lbnQncyB0ZXh0LlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHVzZVRleHREaXJlY3Rpb24oKSB7XG4gIHJldHVybiBSZWFjdC51c2VDb250ZXh0KFRleHREaXJlY3Rpb25Db250ZXh0KTtcbn1cblxuZXhwb3J0IHsgVGV4dERpcmVjdGlvblByb3ZpZGVyLCB1c2VUZXh0RGlyZWN0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZXh0RGlyZWN0aW9uQ29udGV4dC5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBtYWtlU3R5bGVzIGFzIG1ha2VTdHlsZXMkMSB9IGZyb20gJ0BncmlmZmVsL2NvcmUnO1xuaW1wb3J0IHsgaW5zZXJ0aW9uRmFjdG9yeSB9IGZyb20gJy4vaW5zZXJ0aW9uRmFjdG9yeS5lc20uanMnO1xuaW1wb3J0IHsgdXNlUmVuZGVyZXIgfSBmcm9tICcuL1JlbmRlcmVyQ29udGV4dC5lc20uanMnO1xuaW1wb3J0IHsgdXNlVGV4dERpcmVjdGlvbiB9IGZyb20gJy4vVGV4dERpcmVjdGlvbkNvbnRleHQuZXNtLmpzJztcbmltcG9ydCB7IGlzSW5zaWRlQ29tcG9uZW50IH0gZnJvbSAnLi91dGlscy9pc0luc2lkZUNvbXBvbmVudC5lc20uanMnO1xuXG5mdW5jdGlvbiBtYWtlU3R5bGVzKHN0eWxlc0J5U2xvdHMpIHtcbiAgY29uc3QgZ2V0U3R5bGVzID0gbWFrZVN0eWxlcyQxKHN0eWxlc0J5U2xvdHMsIGluc2VydGlvbkZhY3RvcnkpO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChpc0luc2lkZUNvbXBvbmVudCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoW1wibWFrZVN0eWxlcygpOiB0aGlzIGZ1bmN0aW9uIGNhbm5vdCBiZSBjYWxsZWQgaW4gY29tcG9uZW50J3Mgc2NvcGUuXCIsICdBbGwgbWFrZVN0eWxlcygpIGNhbGxzIHNob3VsZCBiZSB0b3AgbGV2ZWwgaS5lLiBpbiBhIHJvb3Qgc2NvcGUgb2YgYSBmaWxlLiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmdW5jdGlvbiB1c2VDbGFzc2VzKCkge1xuICAgIGNvbnN0IGRpciA9IHVzZVRleHREaXJlY3Rpb24oKTtcbiAgICBjb25zdCByZW5kZXJlciA9IHVzZVJlbmRlcmVyKCk7XG4gICAgcmV0dXJuIGdldFN0eWxlcyh7XG4gICAgICBkaXIsXG4gICAgICByZW5kZXJlclxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgeyBtYWtlU3R5bGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWtlU3R5bGVzLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IF9fc3R5bGVzIGFzIF9fc3R5bGVzJDEgfSBmcm9tICdAZ3JpZmZlbC9jb3JlJztcbmltcG9ydCB7IGluc2VydGlvbkZhY3RvcnkgfSBmcm9tICcuL2luc2VydGlvbkZhY3RvcnkuZXNtLmpzJztcbmltcG9ydCB7IHVzZVJlbmRlcmVyIH0gZnJvbSAnLi9SZW5kZXJlckNvbnRleHQuZXNtLmpzJztcbmltcG9ydCB7IHVzZVRleHREaXJlY3Rpb24gfSBmcm9tICcuL1RleHREaXJlY3Rpb25Db250ZXh0LmVzbS5qcyc7XG5cbi8qKlxuICogQSB2ZXJzaW9uIG9mIG1ha2VTdHlsZXMoKSB0aGF0IGFjY2VwdHMgYnVpbGQgb3V0cHV0IGFzIGFuIGlucHV0IGFuZCBza2lwcyBhbGwgcnVudGltZSB0cmFuc2Zvcm1zLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5mdW5jdGlvbiBfX3N0eWxlcyhjbGFzc2VzTWFwQnlTbG90LCBjc3NSdWxlcykge1xuICBjb25zdCBnZXRTdHlsZXMgPSBfX3N0eWxlcyQxKGNsYXNzZXNNYXBCeVNsb3QsIGNzc1J1bGVzLCBpbnNlcnRpb25GYWN0b3J5KTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVzZUNsYXNzZXMoKSB7XG4gICAgY29uc3QgZGlyID0gdXNlVGV4dERpcmVjdGlvbigpO1xuICAgIGNvbnN0IHJlbmRlcmVyID0gdXNlUmVuZGVyZXIoKTtcbiAgICByZXR1cm4gZ2V0U3R5bGVzKHtcbiAgICAgIGRpcixcbiAgICAgIHJlbmRlcmVyXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCB7IF9fc3R5bGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX3N0eWxlcy5lc20uanMubWFwXG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzIGFzIF9fcmVzZXRTdHlsZXMkMSB9IGZyb20gJ0BncmlmZmVsL2NvcmUnO1xuaW1wb3J0IHsgaW5zZXJ0aW9uRmFjdG9yeSB9IGZyb20gJy4vaW5zZXJ0aW9uRmFjdG9yeS5lc20uanMnO1xuaW1wb3J0IHsgdXNlUmVuZGVyZXIgfSBmcm9tICcuL1JlbmRlcmVyQ29udGV4dC5lc20uanMnO1xuaW1wb3J0IHsgdXNlVGV4dERpcmVjdGlvbiB9IGZyb20gJy4vVGV4dERpcmVjdGlvbkNvbnRleHQuZXNtLmpzJztcblxuLyoqXG4gKiBBIHZlcnNpb24gb2YgbWFrZVJlc2V0U3R5bGVzKCkgdGhhdCBhY2NlcHRzIGJ1aWxkIG91dHB1dCBhcyBhbiBpbnB1dCBhbmQgc2tpcHMgYWxsIHJ1bnRpbWUgdHJhbnNmb3Jtcy5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZnVuY3Rpb24gX19yZXNldFN0eWxlcyhsdHJDbGFzc05hbWUsIHJ0bENsYXNzTmFtZSwgY3NzUnVsZXMpIHtcbiAgY29uc3QgZ2V0U3R5bGVzID0gX19yZXNldFN0eWxlcyQxKGx0ckNsYXNzTmFtZSwgcnRsQ2xhc3NOYW1lLCBjc3NSdWxlcywgaW5zZXJ0aW9uRmFjdG9yeSk7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VDbGFzc2VzKCkge1xuICAgIGNvbnN0IGRpciA9IHVzZVRleHREaXJlY3Rpb24oKTtcbiAgICBjb25zdCByZW5kZXJlciA9IHVzZVJlbmRlcmVyKCk7XG4gICAgcmV0dXJuIGdldFN0eWxlcyh7XG4gICAgICBkaXIsXG4gICAgICByZW5kZXJlclxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgeyBfX3Jlc2V0U3R5bGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX3Jlc2V0U3R5bGVzLmVzbS5qcy5tYXBcbiIsIi8qKlxuICogQ3JlYXRlcyBhIENTUyBydWxlIGZyb20gYSB0aGVtZSBvYmplY3QuXG4gKlxuICogVXNlZnVsIGZvciBzY2VuYXJpb3Mgd2hlbiB5b3Ugd2FudCB0byBhcHBseSB0aGVtaW5nIHN0YXRpY2FsbHkgdG8gYSB0b3AgbGV2ZWwgZWxlbWVudHMgbGlrZSBgYm9keWAuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNTU1J1bGVGcm9tVGhlbWUoc2VsZWN0b3IsIHRoZW1lKSB7XG4gICAgaWYgKHRoZW1lKSB7XG4gICAgICAgIGNvbnN0IGNzc1ZhcnNBc1N0cmluZyA9IE9iamVjdC5rZXlzKHRoZW1lKS5yZWR1Y2UoKGNzc1ZhclJ1bGUsIGNzc1Zhcik9PntcbiAgICAgICAgICAgIHJldHVybiBgJHtjc3NWYXJSdWxlfS0tJHtjc3NWYXJ9OiAke3RoZW1lW2Nzc1Zhcl19OyBgO1xuICAgICAgICB9LCAnJyk7XG4gICAgICAgIHJldHVybiBgJHtzZWxlY3Rvcn0geyAke2Nzc1ZhcnNBc1N0cmluZ30gfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHtzZWxlY3Rvcn0ge31gO1xufVxuIiwiLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIHJlZmVyZW5jZSBmb3IgdGhlIHJlbmRlciBmdW5jdGlvblxuICovIGV4cG9ydCBjb25zdCBTTE9UX1JFTkRFUl9GVU5DVElPTl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdmdWkuc2xvdFJlbmRlckZ1bmN0aW9uJyk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogSW50ZXJuYWwgcmVmZXJlbmNlIGZvciB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gKi8gZXhwb3J0IGNvbnN0IFNMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ2Z1aS5zbG90RWxlbWVudFR5cGUnKTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTCwgU0xPVF9SRU5ERVJfRlVOQ1RJT05fU1lNQk9MIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLyoqXG4gKiBDcmVhdGVzIGEgc2xvdCBmcm9tIGEgc2xvdCBzaG9ydGhhbmQgb3IgcHJvcGVydGllcyAoYHByb3BzLlNMT1RfTkFNRWAgb3IgYHByb3BzYCBpdHNlbGYpXG4gKiBAcGFyYW0gdmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIHNsb3QsIGl0IGNhbiBiZSBhIHNsb3Qgc2hvcnRoYW5kLCBhIHNsb3QgY29tcG9uZW50IG9yIGEgc2xvdCBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gb3B0aW9ucyAtIHZhbHVlcyB5b3UgY2FuIHBhc3MgdG8gYWx0ZXIgdGhlIHNpZ25hdHVyZSBvZiBhIHNsb3QsIHRob3NlIHZhbHVlcyBhcmU6XG4gKlxuICogKiBgZWxlbWVudFR5cGVgIC0gdGhlIGJhc2UgZWxlbWVudCB0eXBlIG9mIGEgc2xvdCwgZGVmYXVsdHMgdG8gYCdkaXYnYFxuICogKiBgZGVmYXVsdFByb3BzYCAtIHNpbWlsYXIgdG8gYSBSZWFjdCBjb21wb25lbnQgZGVjbGFyYXRpb24sIHlvdSBjYW4gcHJvdmlkZSBhIHNsb3QgZGVmYXVsdCBwcm9wZXJ0aWVzIHRvIGJlIG1lcmdlZCB3aXRoIHRoZSBzaG9ydGhhbmQvcHJvcGVydGllcyBwcm92aWRlZC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gYWx3YXlzKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBkZWZhdWx0UHJvcHMsIGVsZW1lbnRUeXBlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHByb3BzID0gcmVzb2x2ZVNob3J0aGFuZCh2YWx1ZSk7XG4gICAgLyoqXG4gICAqIENhc3RpbmcgaXMgcmVxdWlyZWQgaGVyZSBhcyBTbG90Q29tcG9uZW50VHlwZSBpcyBhIGZ1bmN0aW9uLCBub3QgYW4gb2JqZWN0LlxuICAgKiBBbHRob3VnaCBTbG90Q29tcG9uZW50VHlwZSBoYXMgYSBmdW5jdGlvbiBzaWduYXR1cmUsIGl0IGlzIHN0aWxsIGp1c3QgYW4gb2JqZWN0LlxuICAgKiBUaGlzIGlzIHJlcXVpcmVkIHRvIG1ha2UgYSBzbG90IGNhbGxhYmxlIChKU1ggY29tcGF0aWJsZSksIHRoaXMgaXMgdGhlIGV4YWN0IHNhbWUgYXBwcm9hY2hcbiAgICogdGhhdCBpcyB1c2VkIG9uIGBAdHlwZXMvcmVhY3RgIGNvbXBvbmVudHNcbiAgICovIGNvbnN0IHByb3BzV2l0aE1ldGFkYXRhID0ge1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBbU0xPVF9FTEVNRU5UX1RZUEVfU1lNQk9MXTogZWxlbWVudFR5cGVcbiAgICB9O1xuICAgIGlmIChwcm9wcyAmJiB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcHJvcHNXaXRoTWV0YWRhdGFbU0xPVF9SRU5ERVJfRlVOQ1RJT05fU1lNQk9MXSA9IHByb3BzLmNoaWxkcmVuO1xuICAgICAgICBwcm9wc1dpdGhNZXRhZGF0YS5jaGlsZHJlbiA9IGRlZmF1bHRQcm9wcyA9PT0gbnVsbCB8fCBkZWZhdWx0UHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlZmF1bHRQcm9wcy5jaGlsZHJlbjtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzV2l0aE1ldGFkYXRhO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgc2xvdCBmcm9tIGEgc2xvdCBzaG9ydGhhbmQgb3IgcHJvcGVydGllcyAoYHByb3BzLlNMT1RfTkFNRWAgb3IgYHByb3BzYCBpdHNlbGYpXG4gKiBAcGFyYW0gdmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIHNsb3QsIGl0IGNhbiBiZSBhIHNsb3Qgc2hvcnRoYW5kLCBhIHNsb3QgY29tcG9uZW50IG9yIGEgc2xvdCBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gb3B0aW9ucyAtIHZhbHVlcyB5b3UgY2FuIHBhc3MgdG8gYWx0ZXIgdGhlIHNpZ25hdHVyZSBvZiBhIHNsb3QsIHRob3NlIHZhbHVlcyBhcmU6XG4gKlxuICogKiBgZWxlbWVudFR5cGVgIC0gdGhlIGJhc2UgZWxlbWVudCB0eXBlIG9mIGEgc2xvdCwgZGVmYXVsdHMgdG8gYCdkaXYnYFxuICogKiBgZGVmYXVsdFByb3BzYCAtIHNpbWlsYXIgdG8gYSBSZWFjdCBjb21wb25lbnQgZGVjbGFyYXRpb24sIHlvdSBjYW4gcHJvdmlkZSBhIHNsb3QgZGVmYXVsdCBwcm9wZXJ0aWVzIHRvIGJlIG1lcmdlZCB3aXRoIHRoZSBzaG9ydGhhbmQvcHJvcGVydGllcyBwcm92aWRlZFxuICogKiBgcmVuZGVyQnlEZWZhdWx0YCAtIGEgYm9vbGVhbiB0aGF0IGluZGljYXRlcyBpZiBhIHNsb3Qgd2lsbCBiZSByZW5kZXJlZCBldmVuIGlmIGl0J3MgYmFzZSB2YWx1ZSBpcyBgdW5kZWZpbmVkYC5cbiAqIEJ5IGRlZmF1bHQgaWYgYHByb3BzLlNMT1RfTkFNRWAgaXMgYHVuZGVmaW5lZGAgdGhlbiBgc3RhdGUuU0xPVF9OQU1FYCBiZWNvbWVzIGB1bmRlZmluZWRgXG4gKiBhbmQgbm90aGluZyB3aWxsIGJlIHJlbmRlcmVkLCBidXQgaWYgYHJlbmRlckJ5RGVmYXVsdCA9IHRydWVgIHRoZW4gYHN0YXRlLlNMT1RfTkFNRWAgYmVjb21lcyBhbiBvYmplY3RcbiAqIHdpdGggdGhlIHZhbHVlcyBwcm92aWRlZCBieSBgb3B0aW9ucy5kZWZhdWx0UHJvcHNgIChvciBge31gKS4gVGhpcyBpcyB1c2VmdWwgZm9yIGNhc2VzIHN1Y2ggYXMgcHJvdmlkaW5nIGEgZGVmYXVsdCBjb250ZW50XG4gKiBpbiBjYXNlIG5vIHNob3J0aGFuZCBpcyBwcm92aWRlZCwgbGlrZSB0aGUgY2FzZSBvZiB0aGUgYGV4cGFuZEljb25gIHNsb3QgZm9yIHRoZSBgQWNjb3JkaW9uSGVhZGVyYFxuICovIGV4cG9ydCBmdW5jdGlvbiBvcHRpb25hbCh2YWx1ZSwgb3B0aW9ucykge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICFvcHRpb25zLnJlbmRlckJ5RGVmYXVsdCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gYWx3YXlzKHZhbHVlLCBvcHRpb25zKTtcbn1cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgYSBzbG90IHNob3J0aGFuZCBvciBwcm9wZXJ0aWVzIHRvIGEgc2xvdCBwcm9wZXJ0aWVzIG9iamVjdFxuICogVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgZnVuY3Rpb24gYW5kIGBzbG90YCBpcyB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIHRoZSBtZXRhZGF0YSByZXF1aXJlZCBmb3IgYSBzbG90IHRvIGJlIGNvbnNpZGVyZWQgYSBwcm9wZXJseSByZW5kZXJhYmxlIHNsb3QsIGl0IG9ubHkgY29udmVydHMgdGhlIHZhbHVlIHRvIGEgc2xvdCBwcm9wZXJ0aWVzIG9iamVjdFxuICogQHBhcmFtIHZhbHVlIC0gdGhlIHZhbHVlIG9mIHRoZSBzbG90LCBpdCBjYW4gYmUgYSBzbG90IHNob3J0aGFuZCBvciBhIHNsb3QgcHJvcGVydGllcyBvYmplY3RcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNob3J0aGFuZCh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBSZWFjdC5pc1ZhbGlkRWxlbWVudCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiB2YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIFRPRE86IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBhIGxpbmsgdG8gc2xvdCBkb2N1bWVudGF0aW9uIGluIHRoaXMgZXJyb3IgbWVzc2FnZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzIFtzbG90LiR7cmVzb2x2ZVNob3J0aGFuZC5uYW1lfV06XG5BIHNsb3QgZ290IGFuIGludmFsaWQgdmFsdWUgXCIke3ZhbHVlfVwiICgke3R5cGVvZiB2YWx1ZX0pLlxuQSB2YWxpZCB2YWx1ZSBmb3IgYSBzbG90IGlzIGEgc2xvdCBzaG9ydGhhbmQgb3Igc2xvdCBwcm9wZXJ0aWVzIG9iamVjdC5cblNsb3Qgc2hvcnRoYW5kcyBjYW4gYmUgc3RyaW5ncywgbnVtYmVycywgYXJyYXlzIG9yIEpTWCBlbGVtZW50c2ApO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG4iLCJpbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogR3VhcmQgbWV0aG9kIHRoYXQgdmFsaWRhdGVzIGlmIGEgc2hvcnRoYW5kIGlzIGEgc2xvdFxuICogY2FuIGJlIHVzZWQgdG8gZXh0ZW5kcyBwcm9wZXJ0aWVzIHByb3ZpZGVkIGJ5IGEgc2xvdFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIGNvbnN0IGJhY2tkcm9wU2xvdCA9IHJlc29sdmVTaG9ydGhhbmQoYmFja2Ryb3AsIHtcbiAqICBkZWZhdWx0UHJvcHM6IHtcbiAqICAgIG9uQ2xpY2s6IHVzZUV2ZW50Q2FsbGJhY2soZXZlbnQgPT4ge1xuICogICAgIGlmIChpc1Jlc29sdmVkU2hvcnRoYW5kKGJhY2tkcm9wKSkge1xuICogICAgICAgIGJhY2tkcm9wLm9uQ2xpY2s/LihldmVudClcbiAqICAgICAgfVxuICogICAgICAvLyBkbyBzb21ldGhpbmcgYWZ0ZXIgcGFzc2luZyBjbGljayBkb3duIHRoZSBsaW5lXG4gKiAgICB9KSxcbiAqICB9LFxuICogfSlcbiAqIGBgYFxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogY29uc3QgaGFuZGxlQmFja0Ryb3BDbGljayA9IChldmVudCkgPT4ge1xuICogIC8vIGRvIHlvdXIgdGhpbmdcbiAqIH1cbiAqIGNvbnN0IGJhY2tkcm9wU2xvdCA9IHJlc29sdmVTaG9ydGhhbmQoYmFja2Ryb3AsIHtcbiAqICBkZWZhdWx0UHJvcHM6IHtcbiAqICAgIG9uQ2xpY2s6IHVzZUV2ZW50Q2FsbGJhY2soXG4gKiAgICAgIG1lcmdlQ2FsbGJhY2tzKGlzUmVzb2x2ZWRTaG9ydGhhbmQoYmFja2Ryb3ApID8gYmFja2Ryb3Aub25DbGljayA6IHVuZGVmaW5lZCwgaGFuZGxlQmFja2Ryb3BDbGljaylcbiAqICAgIClcbiAqIH0pXG4gKiBgYGBcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNSZXNvbHZlZFNob3J0aGFuZChzaG9ydGhhbmQpIHtcbiAgICByZXR1cm4gc2hvcnRoYW5kICE9PSBudWxsICYmIHR5cGVvZiBzaG9ydGhhbmQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHNob3J0aGFuZCkgJiYgIWlzVmFsaWRFbGVtZW50KHNob3J0aGFuZCk7XG59XG4iLCJpbXBvcnQgeyBTTE9UX0VMRU1FTlRfVFlQRV9TWU1CT0wgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKipcbiAqIEd1YXJkIG1ldGhvZCB0byBlbnN1cmUgYSBnaXZlbiBlbGVtZW50IGlzIGEgc2xvdC5cbiAqIFRoaXMgaXMgbWFpbmx5IHVzZWQgaW50ZXJuYWxseSB0byBlbnN1cmUgYSBzbG90IGlzIGJlaW5nIHVzZWQgYXMgYSBjb21wb25lbnQuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzU2xvdChlbGVtZW50KSB7XG4gICAgcmV0dXJuIEJvb2xlYW4oZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50Lmhhc093blByb3BlcnR5KFNMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTCkpO1xufVxuIiwiY29uc3QgdG9PYmplY3RNYXAgPSAoLi4uaXRlbXMpPT57XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKXtcbiAgICAgICAgY29uc3Qga2V5cyA9IEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtIDogT2JqZWN0LmtleXMoaXRlbSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpe1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuLyoqXG4gKiBBbiBhcnJheSBvZiBldmVudHMgdGhhdCBhcmUgYWxsb3dlZCBvbiBldmVyeSBodG1sIGVsZW1lbnQgdHlwZS5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGJhc2VFbGVtZW50RXZlbnRzID0gdG9PYmplY3RNYXAoW1xuICAgICdvbkF1eENsaWNrJyxcbiAgICAnb25BbmltYXRpb25FbmQnLFxuICAgICdvbkFuaW1hdGlvblN0YXJ0JyxcbiAgICAnb25Db3B5JyxcbiAgICAnb25DdXQnLFxuICAgICdvblBhc3RlJyxcbiAgICAnb25Db21wb3NpdGlvbkVuZCcsXG4gICAgJ29uQ29tcG9zaXRpb25TdGFydCcsXG4gICAgJ29uQ29tcG9zaXRpb25VcGRhdGUnLFxuICAgICdvbkZvY3VzJyxcbiAgICAnb25Gb2N1c0NhcHR1cmUnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkJsdXJDYXB0dXJlJyxcbiAgICAnb25DaGFuZ2UnLFxuICAgICdvbklucHV0JyxcbiAgICAnb25TdWJtaXQnLFxuICAgICdvbkxvYWQnLFxuICAgICdvbkVycm9yJyxcbiAgICAnb25LZXlEb3duJyxcbiAgICAnb25LZXlEb3duQ2FwdHVyZScsXG4gICAgJ29uS2V5UHJlc3MnLFxuICAgICdvbktleVVwJyxcbiAgICAnb25BYm9ydCcsXG4gICAgJ29uQ2FuUGxheScsXG4gICAgJ29uQ2FuUGxheVRocm91Z2gnLFxuICAgICdvbkR1cmF0aW9uQ2hhbmdlJyxcbiAgICAnb25FbXB0aWVkJyxcbiAgICAnb25FbmNyeXB0ZWQnLFxuICAgICdvbkVuZGVkJyxcbiAgICAnb25Mb2FkZWREYXRhJyxcbiAgICAnb25Mb2FkZWRNZXRhZGF0YScsXG4gICAgJ29uTG9hZFN0YXJ0JyxcbiAgICAnb25QYXVzZScsXG4gICAgJ29uUGxheScsXG4gICAgJ29uUGxheWluZycsXG4gICAgJ29uUHJvZ3Jlc3MnLFxuICAgICdvblJhdGVDaGFuZ2UnLFxuICAgICdvblNlZWtlZCcsXG4gICAgJ29uU2Vla2luZycsXG4gICAgJ29uU3RhbGxlZCcsXG4gICAgJ29uU3VzcGVuZCcsXG4gICAgJ29uVGltZVVwZGF0ZScsXG4gICAgJ29uVm9sdW1lQ2hhbmdlJyxcbiAgICAnb25XYWl0aW5nJyxcbiAgICAnb25DbGljaycsXG4gICAgJ29uQ2xpY2tDYXB0dXJlJyxcbiAgICAnb25Db250ZXh0TWVudScsXG4gICAgJ29uRG91YmxlQ2xpY2snLFxuICAgICdvbkRyYWcnLFxuICAgICdvbkRyYWdFbmQnLFxuICAgICdvbkRyYWdFbnRlcicsXG4gICAgJ29uRHJhZ0V4aXQnLFxuICAgICdvbkRyYWdMZWF2ZScsXG4gICAgJ29uRHJhZ092ZXInLFxuICAgICdvbkRyYWdTdGFydCcsXG4gICAgJ29uRHJvcCcsXG4gICAgJ29uTW91c2VEb3duJyxcbiAgICAnb25Nb3VzZURvd25DYXB0dXJlJyxcbiAgICAnb25Nb3VzZUVudGVyJyxcbiAgICAnb25Nb3VzZUxlYXZlJyxcbiAgICAnb25Nb3VzZU1vdmUnLFxuICAgICdvbk1vdXNlT3V0JyxcbiAgICAnb25Nb3VzZU92ZXInLFxuICAgICdvbk1vdXNlVXAnLFxuICAgICdvbk1vdXNlVXBDYXB0dXJlJyxcbiAgICAnb25TZWxlY3QnLFxuICAgICdvblRvdWNoQ2FuY2VsJyxcbiAgICAnb25Ub3VjaEVuZCcsXG4gICAgJ29uVG91Y2hNb3ZlJyxcbiAgICAnb25Ub3VjaFN0YXJ0JyxcbiAgICAnb25TY3JvbGwnLFxuICAgICdvbldoZWVsJyxcbiAgICAnb25Qb2ludGVyQ2FuY2VsJyxcbiAgICAnb25Qb2ludGVyRG93bicsXG4gICAgJ29uUG9pbnRlckVudGVyJyxcbiAgICAnb25Qb2ludGVyTGVhdmUnLFxuICAgICdvblBvaW50ZXJNb3ZlJyxcbiAgICAnb25Qb2ludGVyT3V0JyxcbiAgICAnb25Qb2ludGVyT3ZlcicsXG4gICAgJ29uUG9pbnRlclVwJyxcbiAgICAnb25Hb3RQb2ludGVyQ2FwdHVyZScsXG4gICAgJ29uTG9zdFBvaW50ZXJDYXB0dXJlJ1xuXSk7XG4vKipcbiAqIEFuIGFycmF5IG9mIGVsZW1lbnQgYXR0cmlidXRlcyB3aGljaCBhcmUgYWxsb3dlZCBvbiBldmVyeSBodG1sIGVsZW1lbnQgdHlwZS5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGJhc2VFbGVtZW50UHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKFtcbiAgICAnYWNjZXNzS2V5JyxcbiAgICAnY2hpbGRyZW4nLFxuICAgICdjbGFzc05hbWUnLFxuICAgICdjb250ZW50RWRpdGFibGUnLFxuICAgICdkaXInLFxuICAgICdkcmFnZ2FibGUnLFxuICAgICdoaWRkZW4nLFxuICAgICdodG1sRm9yJyxcbiAgICAnaWQnLFxuICAgICdsYW5nJyxcbiAgICAncmVmJyxcbiAgICAncm9sZScsXG4gICAgJ3N0eWxlJyxcbiAgICAndGFiSW5kZXgnLFxuICAgICd0aXRsZScsXG4gICAgJ3RyYW5zbGF0ZScsXG4gICAgJ3NwZWxsQ2hlY2snLFxuICAgICduYW1lJ1xuXSk7XG4vKipcbiAqIEFuIGFycmF5IG9mIG1pY3JvZGF0YSBhdHRyaWJ1dGVzIHRoYXQgYXJlIGFsbG93ZWQgb24gZXZlcnkgaHRtbCBlbGVtZW50IHR5cGUuXG4gKlxuICogQHB1YmxpY1xuICovIGV4cG9ydCBjb25zdCBtaWNyb2RhdGFQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoW1xuICAgICdpdGVtSUQnLFxuICAgICdpdGVtUHJvcCcsXG4gICAgJ2l0ZW1SZWYnLFxuICAgICdpdGVtU2NvcGUnLFxuICAgICdpdGVtVHlwZSdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBIVE1MIGVsZW1lbnQgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgaHRtbEVsZW1lbnRQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoYmFzZUVsZW1lbnRQcm9wZXJ0aWVzLCBiYXNlRWxlbWVudEV2ZW50cywgbWljcm9kYXRhUHJvcGVydGllcyk7XG4vKipcbiAqIEFuIGFycmF5IG9mIExBQkVMIHRhZyBwcm9wZXJ0aWVzIGFuZCBldmVudHMuXG4gKlxuICogQHB1YmxpY1xuICovIGV4cG9ydCBjb25zdCBsYWJlbFByb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnZm9ybSdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBBVURJTyB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGF1ZGlvUHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGh0bWxFbGVtZW50UHJvcGVydGllcywgW1xuICAgICdoZWlnaHQnLFxuICAgICdsb29wJyxcbiAgICAnbXV0ZWQnLFxuICAgICdwcmVsb2FkJyxcbiAgICAnc3JjJyxcbiAgICAnd2lkdGgnXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgVklERU8gdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IHZpZGVvUHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGF1ZGlvUHJvcGVydGllcywgW1xuICAgICdwb3N0ZXInXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgT0wgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IG9sUHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGh0bWxFbGVtZW50UHJvcGVydGllcywgW1xuICAgICdzdGFydCdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBMSSB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgbGlQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBbXG4gICAgJ3ZhbHVlJ1xuXSk7XG4vKipcbiAqIEFuIGFycmF5IG9mIEEgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGFuY2hvclByb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnZG93bmxvYWQnLFxuICAgICdocmVmJyxcbiAgICAnaHJlZkxhbmcnLFxuICAgICdtZWRpYScsXG4gICAgJ3JlbCcsXG4gICAgJ3RhcmdldCcsXG4gICAgJ3R5cGUnXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgVElNRSB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgdGltZVByb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnZGF0ZVRpbWUnXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgQlVUVE9OIHRhZyBwcm9wZXJ0aWVzIGFuZCBldmVudHMuXG4gKlxuICogQHB1YmxpY1xuICovIGV4cG9ydCBjb25zdCBidXR0b25Qcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBbXG4gICAgJ2F1dG9Gb2N1cycsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZm9ybScsXG4gICAgJ2Zvcm1BY3Rpb24nLFxuICAgICdmb3JtRW5jVHlwZScsXG4gICAgJ2Zvcm1NZXRob2QnLFxuICAgICdmb3JtTm9WYWxpZGF0ZScsXG4gICAgJ2Zvcm1UYXJnZXQnLFxuICAgICd0eXBlJyxcbiAgICAndmFsdWUnXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgSU5QVVQgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGlucHV0UHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGJ1dHRvblByb3BlcnRpZXMsIFtcbiAgICAnYWNjZXB0JyxcbiAgICAnYWx0JyxcbiAgICAnYXV0b0NhcGl0YWxpemUnLFxuICAgICdhdXRvQ29tcGxldGUnLFxuICAgICdjaGVja2VkJyxcbiAgICAnZGlybmFtZScsXG4gICAgJ2Zvcm0nLFxuICAgICdoZWlnaHQnLFxuICAgICdpbnB1dE1vZGUnLFxuICAgICdsaXN0JyxcbiAgICAnbWF4JyxcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAnbWluJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICdwYXR0ZXJuJyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdyZWFkT25seScsXG4gICAgJ3JlcXVpcmVkJyxcbiAgICAnc3JjJyxcbiAgICAnc3RlcCcsXG4gICAgJ3NpemUnLFxuICAgICd0eXBlJyxcbiAgICAndmFsdWUnLFxuICAgICd3aWR0aCdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBURVhUQVJFQSB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgdGV4dEFyZWFQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoYnV0dG9uUHJvcGVydGllcywgW1xuICAgICdhdXRvQ2FwaXRhbGl6ZScsXG4gICAgJ2NvbHMnLFxuICAgICdkaXJuYW1lJyxcbiAgICAnZm9ybScsXG4gICAgJ21heExlbmd0aCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAncmVhZE9ubHknLFxuICAgICdyZXF1aXJlZCcsXG4gICAgJ3Jvd3MnLFxuICAgICd3cmFwJ1xuXSk7XG4vKipcbiAqIEFuIGFycmF5IG9mIFNFTEVDVCB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3Qgc2VsZWN0UHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGJ1dHRvblByb3BlcnRpZXMsIFtcbiAgICAnZm9ybScsXG4gICAgJ211bHRpcGxlJyxcbiAgICAncmVxdWlyZWQnXG5dKTtcbmV4cG9ydCBjb25zdCBvcHRpb25Qcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBbXG4gICAgJ3NlbGVjdGVkJyxcbiAgICAndmFsdWUnXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgVEFCTEUgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IHRhYmxlUHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGh0bWxFbGVtZW50UHJvcGVydGllcywgW1xuICAgICdjZWxsUGFkZGluZycsXG4gICAgJ2NlbGxTcGFjaW5nJ1xuXSk7XG4vKipcbiAqIEFuIGFycmF5IG9mIFRSIHRhZyBwcm9wZXJ0aWVzIGFuZCBldmVudHMuXG4gKlxuICogQHB1YmxpY1xuICovIGV4cG9ydCBjb25zdCB0clByb3BlcnRpZXMgPSBodG1sRWxlbWVudFByb3BlcnRpZXM7XG4vKipcbiAqIEFuIGFycmF5IG9mIFRIIHRhZyBwcm9wZXJ0aWVzIGFuZCBldmVudHMuXG4gKlxuICogQHB1YmxpY1xuICovIGV4cG9ydCBjb25zdCB0aFByb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnY29sU3BhbicsXG4gICAgJ3Jvd1NwYW4nLFxuICAgICdzY29wZSdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBURCB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgdGRQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBbXG4gICAgJ2NvbFNwYW4nLFxuICAgICdoZWFkZXJzJyxcbiAgICAncm93U3BhbicsXG4gICAgJ3Njb3BlJ1xuXSk7XG5leHBvcnQgY29uc3QgY29sR3JvdXBQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBbXG4gICAgJ3NwYW4nXG5dKTtcbmV4cG9ydCBjb25zdCBjb2xQcm9wZXJ0aWVzID0gdG9PYmplY3RNYXAoaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBbXG4gICAgJ3NwYW4nXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgRklFTERTRVQgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGZpZWxkc2V0UHJvcGVydGllcyA9IHRvT2JqZWN0TWFwKGh0bWxFbGVtZW50UHJvcGVydGllcywgW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Zvcm0nXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgRk9STSB0YWcgcHJvcGVydGllcyBhbmQgZXZlbnRzLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgZm9ybVByb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnYWNjZXB0Q2hhcnNldCcsXG4gICAgJ2FjdGlvbicsXG4gICAgJ2VuY1R5cGUnLFxuICAgICdlbmNUeXBlJyxcbiAgICAnbWV0aG9kJyxcbiAgICAnbm9WYWxpZGF0ZScsXG4gICAgJ3RhcmdldCdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBJRlJBTUUgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGlmcmFtZVByb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnYWxsb3cnLFxuICAgICdhbGxvd0Z1bGxTY3JlZW4nLFxuICAgICdhbGxvd1BheW1lbnRSZXF1ZXN0JyxcbiAgICAnYWxsb3dUcmFuc3BhcmVuY3knLFxuICAgICdjc3AnLFxuICAgICdoZWlnaHQnLFxuICAgICdpbXBvcnRhbmNlJyxcbiAgICAncmVmZXJyZXJQb2xpY3knLFxuICAgICdzYW5kYm94JyxcbiAgICAnc3JjJyxcbiAgICAnc3JjRG9jJyxcbiAgICAnd2lkdGgnXG5dKTtcbi8qKlxuICogQW4gYXJyYXkgb2YgSU1BR0UgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGltZ1Byb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnYWx0JyxcbiAgICAnY3Jvc3NPcmlnaW4nLFxuICAgICdoZWlnaHQnLFxuICAgICdzcmMnLFxuICAgICdzcmNTZXQnLFxuICAgICd1c2VNYXAnLFxuICAgICd3aWR0aCdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBESUFMT0cgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGRpYWxvZ1Byb3BlcnRpZXMgPSB0b09iamVjdE1hcChodG1sRWxlbWVudFByb3BlcnRpZXMsIFtcbiAgICAnb3BlbicsXG4gICAgJ29uQ2FuY2VsJyxcbiAgICAnb25DbG9zZSdcbl0pO1xuLyoqXG4gKiBBbiBhcnJheSBvZiBESVYgdGFnIHByb3BlcnRpZXMgYW5kIGV2ZW50cy5cbiAqXG4gKiBAcHVibGljXG4gKi8gZXhwb3J0IGNvbnN0IGRpdlByb3BlcnRpZXMgPSBodG1sRWxlbWVudFByb3BlcnRpZXM7XG4vKipcbiAqIEdldHMgbmF0aXZlIHN1cHBvcnRlZCBwcm9wcyBmb3IgYW4gaHRtbCBlbGVtZW50IHByb3ZpZGVkIHRoZSBhbGxvd2FuY2Ugc2V0LiBVc2Ugb25lIG9mIHRoZSBwcm9wZXJ0eVxuICogc2V0cyBkZWZpbmVkIChkaXZQcm9wZXJ0aWVzLCBidXR0b25Qcm9wZXJ0ZXMsIGV0YykgdG8gZmlsdGVyIG91dCBzdXBwb3J0ZWQgcHJvcGVydGllcyBmcm9tIGEgZ2l2ZW5cbiAqIHByb3BzIHNldC4gTm90ZSB0aGF0IGFsbCBkYXRhLSBhbmQgYXJpYS0gcHJlZml4ZWQgYXR0cmlidXRlcyB3aWxsIGJlIGFsbG93ZWQuXG4gKiBOT1RFOiBnZXROYXRpdmVQcm9wcyBzaG91bGQgYWx3YXlzIGJlIGFwcGxpZWQgZmlyc3Qgd2hlbiBhZGRpbmcgcHJvcHMgdG8gYSByZWFjdCBjb21wb25lbnQuIFRoZVxuICogbm9uLW5hdGl2ZSBwcm9wcyBzaG91bGQgYmUgYXBwbGllZCBzZWNvbmQuIFRoaXMgd2lsbCBwcmV2ZW50IGdldE5hdGl2ZVByb3BzIGZyb20gb3ZlcnJpZGluZyB5b3VyIGN1c3RvbSBwcm9wcy5cbiAqIEZvciBleGFtcGxlLCBpZiBwcm9wcyBwYXNzZWQgdG8gZ2V0TmF0aXZlUHJvcHMgaGFzIGFuIG9uQ2xpY2sgZnVuY3Rpb24gYW5kIGdldE5hdGl2ZVByb3BzIGlzIGFkZGVkIHRvXG4gKiB0aGUgY29tcG9uZW50IGFmdGVyIGFuIG9uQ2xpY2sgZnVuY3Rpb24gaXMgYWRkZWQsIHRoZW4gdGhlIGdldE5hdGl2ZVByb3BzIG9uQ2xpY2sgd2lsbCBvdmVycmlkZSBpdC5cbiAqXG4gKiBAcHVibGljXG4gKiBAcGFyYW0gcHJvcHMgLSBUaGUgdW5maWx0ZXJlZCBpbnB1dCBwcm9wc1xuICogQHBhcmFtIGFsbG93ZWRQcm9wTmFtZXMgLSBUaGUgYXJyYXkgb3IgcmVjb3JkIG9mIGFsbG93ZWQgcHJvcCBuYW1lcy5cbiAqIEBwYXJhbSBleGNsdWRlZFByb3BOYW1lc1xuICogQHJldHVybnMgVGhlIGZpbHRlcmVkIHByb3BzXG4gKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBnZXROYXRpdmVQcm9wcygvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxucHJvcHMsIGFsbG93ZWRQcm9wTmFtZXMsIGV4Y2x1ZGVkUHJvcE5hbWVzKSB7XG4gICAgLy8gSXQnZCBiZSBncmVhdCB0byBwcm9wZXJseSB0eXBlIHRoaXMgd2hpbGUgYWxsb3dpbmcgJ2FyaWEtYCBhbmQgJ2RhdGEtJyBhdHRyaWJ1dGVzIGxpa2UgVHlwZVNjcmlwdCBkb2VzIGZvclxuICAgIC8vIEpTWCBhdHRyaWJ1dGVzLCBidXQgdGhhdCBhYmlsaXR5IGlzIGhhcmRjb2RlZCBpbnRvIHRoZSBUUyBjb21waWxlciB3aXRoIG5vIGFuYWxvZyBpbiBUeXBlU2NyaXB0IHR5cGluZ3MuXG4gICAgLy8gVGhlbiB3ZSdkIGJlIGFibGUgdG8gZW5mb3JjZSBwcm9wcyBleHRlbmRzIG5hdGl2ZSBwcm9wcyAoaW5jbHVkaW5nIGFyaWEtIGFuZCBkYXRhLSBhdHRyaWJ1dGVzKSwgYW5kIHRoZW5cbiAgICAvLyByZXR1cm4gbmF0aXZlIHByb3BzLlxuICAgIC8vIFdlIHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgb25jZSB0aGlzIFBSIGlzIG1lcmdlZDogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L3B1bGwvMjY3OTdcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShhbGxvd2VkUHJvcE5hbWVzKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cyl7XG4gICAgICAgIGNvbnN0IGlzTmF0aXZlUHJvcCA9ICFpc0FycmF5ICYmIGFsbG93ZWRQcm9wTmFtZXNba2V5XSB8fCBpc0FycmF5ICYmIGFsbG93ZWRQcm9wTmFtZXMuaW5kZXhPZihrZXkpID49IDAgfHwga2V5LmluZGV4T2YoJ2RhdGEtJykgPT09IDAgfHwga2V5LmluZGV4T2YoJ2FyaWEtJykgPT09IDA7XG4gICAgICAgIGlmIChpc05hdGl2ZVByb3AgJiYgKCFleGNsdWRlZFByb3BOYW1lcyB8fCAoZXhjbHVkZWRQcm9wTmFtZXMgPT09IG51bGwgfHwgZXhjbHVkZWRQcm9wTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4Y2x1ZGVkUHJvcE5hbWVzLmluZGV4T2Yoa2V5KSkgPT09IC0xKSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gcHJvcHNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbGFiZWxQcm9wZXJ0aWVzLCBhdWRpb1Byb3BlcnRpZXMsIHZpZGVvUHJvcGVydGllcywgb2xQcm9wZXJ0aWVzLCBsaVByb3BlcnRpZXMsIGFuY2hvclByb3BlcnRpZXMsIGJ1dHRvblByb3BlcnRpZXMsIGlucHV0UHJvcGVydGllcywgdGV4dEFyZWFQcm9wZXJ0aWVzLCBzZWxlY3RQcm9wZXJ0aWVzLCBvcHRpb25Qcm9wZXJ0aWVzLCB0YWJsZVByb3BlcnRpZXMsIHRyUHJvcGVydGllcywgdGhQcm9wZXJ0aWVzLCB0ZFByb3BlcnRpZXMsIGNvbEdyb3VwUHJvcGVydGllcywgY29sUHJvcGVydGllcywgZmllbGRzZXRQcm9wZXJ0aWVzLCBmb3JtUHJvcGVydGllcywgaWZyYW1lUHJvcGVydGllcywgaW1nUHJvcGVydGllcywgaHRtbEVsZW1lbnRQcm9wZXJ0aWVzLCBnZXROYXRpdmVQcm9wcywgdGltZVByb3BlcnRpZXMsIGRpYWxvZ1Byb3BlcnRpZXMgfSBmcm9tICcuL3Byb3BlcnRpZXMnO1xuY29uc3QgbmF0aXZlRWxlbWVudE1hcCA9IHtcbiAgICBsYWJlbDogbGFiZWxQcm9wZXJ0aWVzLFxuICAgIGF1ZGlvOiBhdWRpb1Byb3BlcnRpZXMsXG4gICAgdmlkZW86IHZpZGVvUHJvcGVydGllcyxcbiAgICBvbDogb2xQcm9wZXJ0aWVzLFxuICAgIGxpOiBsaVByb3BlcnRpZXMsXG4gICAgYTogYW5jaG9yUHJvcGVydGllcyxcbiAgICBidXR0b246IGJ1dHRvblByb3BlcnRpZXMsXG4gICAgaW5wdXQ6IGlucHV0UHJvcGVydGllcyxcbiAgICB0ZXh0YXJlYTogdGV4dEFyZWFQcm9wZXJ0aWVzLFxuICAgIHNlbGVjdDogc2VsZWN0UHJvcGVydGllcyxcbiAgICBvcHRpb246IG9wdGlvblByb3BlcnRpZXMsXG4gICAgdGFibGU6IHRhYmxlUHJvcGVydGllcyxcbiAgICB0cjogdHJQcm9wZXJ0aWVzLFxuICAgIHRoOiB0aFByb3BlcnRpZXMsXG4gICAgdGQ6IHRkUHJvcGVydGllcyxcbiAgICBjb2xHcm91cDogY29sR3JvdXBQcm9wZXJ0aWVzLFxuICAgIGNvbDogY29sUHJvcGVydGllcyxcbiAgICBmaWVsZHNldDogZmllbGRzZXRQcm9wZXJ0aWVzLFxuICAgIGZvcm06IGZvcm1Qcm9wZXJ0aWVzLFxuICAgIGlmcmFtZTogaWZyYW1lUHJvcGVydGllcyxcbiAgICBpbWc6IGltZ1Byb3BlcnRpZXMsXG4gICAgdGltZTogdGltZVByb3BlcnRpZXMsXG4gICAgZGlhbG9nOiBkaWFsb2dQcm9wZXJ0aWVzXG59O1xuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50IHRhZ25hbWUgYW5kIHVzZXIgcHJvcHMsIGZpbHRlcnMgdGhlIHByb3BzIHRvIG9ubHkgYWxsb3dlZCBwcm9wcyBmb3IgdGhlIGdpdmVuXG4gKiBlbGVtZW50IHR5cGUuXG4gKiBAcGFyYW0gdGFnTmFtZSAtIFRhZyBuYW1lIChlLmcuIFwiZGl2XCIpXG4gKiBAcGFyYW0gcHJvcHMgLSBQcm9wcyBvYmplY3RcbiAqIEBwYXJhbSBleGNsdWRlZFByb3BOYW1lcyAtIExpc3Qgb2YgcHJvcHMgdG8gZGlzYWxsb3dcbiAqXG4gKiBAZGVwcmVjYXRlZCB1c2UgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzIGluc3RlYWQsIGl0IGlzIGEgdHlwZS1zYWZlIHZlcnNpb24gb2YgdGhpcyBtZXRob2RcbiAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGdldE5hdGl2ZUVsZW1lbnRQcm9wcyh0YWdOYW1lLCBwcm9wcywgZXhjbHVkZWRQcm9wTmFtZXMpIHtcbiAgICBjb25zdCBhbGxvd2VkUHJvcE5hbWVzID0gdGFnTmFtZSAmJiBuYXRpdmVFbGVtZW50TWFwW3RhZ05hbWVdIHx8IGh0bWxFbGVtZW50UHJvcGVydGllcztcbiAgICBhbGxvd2VkUHJvcE5hbWVzLmFzID0gMTtcbiAgICByZXR1cm4gZ2V0TmF0aXZlUHJvcHMocHJvcHMsIGFsbG93ZWRQcm9wTmFtZXMsIGV4Y2x1ZGVkUHJvcE5hbWVzKTtcbn1cbi8qKlxuICogU3BsaXRzIHRoZSBuYXRpdmUgcHJvcHMgaW50byBvbmVzIHRoYXQgZ28gdG8gdGhlIGByb290YCBzbG90LCBhbmQgb25lcyB0aGF0IGdvIHRvIHRoZSBwcmltYXJ5IHNsb3QuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciB1c2Ugd2l0aCBjb21wb25lbnRzIHRoYXQgaGF2ZSBhIHByaW1hcnkgc2xvdCBvdGhlciB0aGFuIGByb290YC5cbiAqIE1vc3QgY29tcG9uZW50cyBzaG91bGQgdXNlIHtAbGluayBnZXROYXRpdmVFbGVtZW50UHJvcHN9IGZvciB0aGVpciByb290IHNsb3QgaWYgaXQgaXMgdGhlIHByaW1hcnkgc2xvdC5cbiAqXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgbmF0aXZlIHByb3BzIGZvciB0aGUgYHJvb3RgIGFuZCBwcmltYXJ5IHNsb3RzLlxuICovIGV4cG9ydCBjb25zdCBnZXRQYXJ0aXRpb25lZE5hdGl2ZVByb3BzID0gKHsgcHJpbWFyeVNsb3RUYWdOYW1lLCBwcm9wcywgZXhjbHVkZWRQcm9wTmFtZXMgfSk9PntcbiAgICByZXR1cm4ge1xuICAgICAgICByb290OiB7XG4gICAgICAgICAgICBzdHlsZTogcHJvcHMuc3R5bGUsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZVxuICAgICAgICB9LFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbiAgICAgICAgcHJpbWFyeTogZ2V0TmF0aXZlRWxlbWVudFByb3BzKHByaW1hcnlTbG90VGFnTmFtZSwgcHJvcHMsIFtcbiAgICAgICAgICAgIC4uLmV4Y2x1ZGVkUHJvcE5hbWVzIHx8IFtdLFxuICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICdjbGFzc05hbWUnXG4gICAgICAgIF0pXG4gICAgfTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXROYXRpdmVFbGVtZW50UHJvcHMgfSBmcm9tICcuLi91dGlscy9nZXROYXRpdmVFbGVtZW50UHJvcHMnO1xuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50IHRhZ25hbWUgYW5kIHVzZXIgcHJvcHMsIGZpbHRlcnMgdGhlIHByb3BzIHRvIG9ubHkgYWxsb3dlZCBwcm9wcyBmb3IgdGhlIGdpdmVuXG4gKiBlbGVtZW50IHR5cGUuXG4gKlxuICogRXF1aXZhbGVudCB0byB7QGxpbmsgZ2V0TmF0aXZlRWxlbWVudFByb3BzfSwgYnV0IG1vcmUgdHlwZS1zYWZlLlxuICovIGV4cG9ydCBjb25zdCBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMgPSAoLyoqIFRoZSBzbG90J3MgZGVmYXVsdCBlbGVtZW50IHR5cGUgKGUuZy4gJ2RpdicpICovIHRhZ05hbWUsIC8qKiBUaGUgY29tcG9uZW50J3MgcHJvcHMgb2JqZWN0ICovIHByb3BzLCAvKiogTGlzdCBvZiBuYXRpdmUgcHJvcHMgdG8gZXhjbHVkZSBmcm9tIHRoZSByZXR1cm5lZCB2YWx1ZSAqLyBleGNsdWRlZFByb3BOYW1lcyk9PntcbiAgICB2YXIgX3Byb3BzX2FzO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvblxuICAgIHJldHVybiBnZXROYXRpdmVFbGVtZW50UHJvcHMoKF9wcm9wc19hcyA9IHByb3BzLmFzKSAhPT0gbnVsbCAmJiBfcHJvcHNfYXMgIT09IHZvaWQgMCA/IF9wcm9wc19hcyA6IHRhZ05hbWUsIHByb3BzLCBleGNsdWRlZFByb3BOYW1lcyk7XG59O1xuIiwiLyoqXG4gKiBUaW55IGhlbHBlciB0byBkbyB0aGUgbWluaW1hbCBhbW91bnQgb2Ygd29yayBpbiBkdXBsaWNhdGluZyBhbiBvYmplY3QgYnV0IG9taXR0aW5nIHNvbWVcbiAqIHByb3BzLiBUaGlzIGVuZHMgdXAgZmFzdGVyIHRoYW4gdXNpbmcgb2JqZWN0IC4uLnJlc3Qgb3IgcmVkdWNlIHRvIGZpbHRlci5cbiAqXG4gKiBUaGlzIGJlaGF2ZXMgdmVyeSBtdWNoIGxpa2UgZmlsdGVyZWRBc3NpZ24sIGJ1dCBkb2VzIG5vdCBtZXJnZSBtYW55IG9iamVjdHMgdG9nZXRoZXIsXG4gKiB1c2VzIGFuIGV4Y2x1c2lvbiBvYmplY3QgbWFwLCBhbmQgYXZvaWRzIHNwcmVhZHMgYWxsIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlLlxuICpcbiAqIFNlZSBwZXJmIHRlc3QgZm9yIGJhY2tncm91bmQ6XG4gKiBodHRwczovL2pzcGVyZi5jb20vb21pdC12cy1yZXN0LXZzLXJlZHVjZS8xXG4gKlxuICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgdG8gY2xvbmVcbiAqIEBwYXJhbSBleGNsdXNpb25zIC0gVGhlIGFycmF5IG9mIGtleXMgdG8gZXhjbHVkZVxuICovIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgZnVuY3Rpb24gb21pdChvYmosIGV4Y2x1c2lvbnMpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvcihjb25zdCBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGV4Y2x1c2lvbnMuaW5kZXhPZihrZXkpID09PSAtMSAmJiBvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEhlbHBlciB0byBtYW5hZ2UgYSBicm93c2VyIHRpbWVyLlxuICogRW5zdXJlcyB0aGF0IHRoZSB0aW1lciBpc24ndCBzZXQgbXVsdGlwbGUgdGltZXMgYXQgb25jZSxcbiAqIGFuZCBpcyBjbGVhbmVkIHVwIHdoZW4gdGhlIGNvbXBvbmVudCBpcyB1bmxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gc2V0VGltZXIgLSBUaGUgdGltZXIgc2V0dGVyIGZ1bmN0aW9uXG4gKiBAcGFyYW0gY2FuY2VsVGltZXIgLSBUaGUgdGltZXIgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyBBIHBhaXIgb2YgW3NldFRpbWVyLCBjYW5jZWxUaW1lcl0gdGhhdCBhcmUgc3RhYmxlIGJldHdlZW4gcmVuZGVycy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW3NldFRpbWVyLCBjYW5jZWxUaW1lcl0gPSB1c2VCcm93c2VyVGltZXIoc2V0VGltZW91dCwgY2FuY2VsVGltZW91dCk7XG4gKlxuICogc2V0VGltZXIoKCkgPT4gY29uc29sZS5sb2coJ0hlbGxvIHdvcmxkIScpLCAxMDAwKTtcbiAqIGNhbmNlbFRpbWVyKCk7XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUJyb3dzZXJUaW1lcihzZXRUaW1lciwgY2FuY2VsVGltZXIpIHtcbiAgICBjb25zdCBpZCA9IFJlYWN0LnVzZVJlZih1bmRlZmluZWQpO1xuICAgIGNvbnN0IHNldCA9IFJlYWN0LnVzZUNhbGxiYWNrKChmbiwgZGVsYXkpPT57XG4gICAgICAgIGlmIChpZC5jdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNhbmNlbFRpbWVyKGlkLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlkLmN1cnJlbnQgPSBzZXRUaW1lcihmbiwgZGVsYXkpO1xuICAgICAgICByZXR1cm4gaWQuY3VycmVudDtcbiAgICB9LCBbXG4gICAgICAgIGNhbmNlbFRpbWVyLFxuICAgICAgICBzZXRUaW1lclxuICAgIF0pO1xuICAgIGNvbnN0IGNhbmNlbCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGlmIChpZC5jdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNhbmNlbFRpbWVyKGlkLmN1cnJlbnQpO1xuICAgICAgICAgICAgaWQuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2FuY2VsVGltZXJcbiAgICBdKTtcbiAgICAvLyBDbGVhbiB1cCB0aGUgdGltZW91dCB3aGVuIHRoZSBjb21wb25lbnQgaXMgdW5sb2FkZWRcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PmNhbmNlbCwgW1xuICAgICAgICBjYW5jZWxcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBzZXQsXG4gICAgICAgIGNhbmNlbFxuICAgIF07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBUaGVtZUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBUaGVtZVByb3ZpZGVyID0gVGhlbWVDb250ZXh0LlByb3ZpZGVyO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFVzZWQgdG8gcHJvdmlkZSBhIENTUyBjbGFzcyB0aGF0IGFwcGxpZXMgdGhlbWUgY3NzIHZhcmlhYmxlc1xuICpcbiAqIFVzZWZ1bCBmb3IgZWxlbWVudHMgaW4gdGhlIFJlYWN0IHRyZWUgKGNhbiByZWFkIGNvbnRleHQpIGJ1dCBub3QgaW4gdGhlIERPTSBUcmVlLiBFLmcuIFBvcnRhbHNcbiAqLyBjb25zdCBUaGVtZUNsYXNzTmFtZUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5jb25zdCB0aGVtZUNsYXNzTmFtZUNvbnRleHREZWZhdWx0VmF1ZSA9ICcnO1xuZXhwb3J0IGNvbnN0IFRoZW1lQ2xhc3NOYW1lUHJvdmlkZXIgPSBUaGVtZUNsYXNzTmFtZUNvbnRleHQuUHJvdmlkZXI7XG4vKipcbiAqIEByZXR1cm5zIENTUyBjbGFzcyB0aGF0IGFwcGxpZXMgY3NzIHZhcmlhYmxlc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VUaGVtZUNsYXNzTmFtZSgpIHtcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDbGFzc05hbWVDb250ZXh0KSkgIT09IG51bGwgJiYgX1JlYWN0X3VzZUNvbnRleHQgIT09IHZvaWQgMCA/IF9SZWFjdF91c2VDb250ZXh0IDogdGhlbWVDbGFzc05hbWVDb250ZXh0RGVmYXVsdFZhdWU7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogQ29udGV4dCBzaGFyZWQgYnkgYWxsIG9mIHRoZSB0b29sdGlwcyBpbiB0aGUgYXBwXG4gKi8gY29uc3QgVG9vbHRpcFZpc2liaWxpdHlDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgdG9vbHRpcFZpc2liaWxpdHlDb250ZXh0RGVmYXVsdFZhbHVlID0ge307XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBUb29sdGlwVmlzaWJpbGl0eVByb3ZpZGVyID0gVG9vbHRpcFZpc2liaWxpdHlDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRvb2x0aXBWaXNpYmlsaXR5KCkge1xuICAgIHZhciBfUmVhY3RfdXNlQ29udGV4dDtcbiAgICByZXR1cm4gKF9SZWFjdF91c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUb29sdGlwVmlzaWJpbGl0eUNvbnRleHQpKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dCAhPT0gdm9pZCAwID8gX1JlYWN0X3VzZUNvbnRleHQgOiB0b29sdGlwVmlzaWJpbGl0eUNvbnRleHREZWZhdWx0VmFsdWU7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGNvbnN0IFByb3ZpZGVyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbmNvbnN0IHByb3ZpZGVyQ29udGV4dERlZmF1bHRWYWx1ZSA9IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgdGFyZ2V0RG9jdW1lbnQ6IHR5cGVvZiBkb2N1bWVudCA9PT0gJ29iamVjdCcgPyBkb2N1bWVudCA6IHVuZGVmaW5lZCxcbiAgICBkaXI6ICdsdHInXG59O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgUHJvdmlkZXIgPSBQcm92aWRlckNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgZnVuY3Rpb24gdXNlRmx1ZW50KCkge1xuICAgIHZhciBfUmVhY3RfdXNlQ29udGV4dDtcbiAgICByZXR1cm4gKF9SZWFjdF91c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChQcm92aWRlckNvbnRleHQpKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dCAhPT0gdm9pZCAwID8gX1JlYWN0X3VzZUNvbnRleHQgOiBwcm92aWRlckNvbnRleHREZWZhdWx0VmFsdWU7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBPdmVycmlkZXNDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgT3ZlcnJpZGVzUHJvdmlkZXIgPSBPdmVycmlkZXNDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU92ZXJyaWRlcygpIHtcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoT3ZlcnJpZGVzQ29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IHt9O1xufVxuIiwiLyogZXNsaW50LWRpc2FibGUgKi8gaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgQ3VzdG9tU3R5bGVIb29rc0NvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5jb25zdCBub29wID0gKCk9Pnt9O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgQ3VzdG9tU3R5bGVIb29rc1Byb3ZpZGVyID0gQ3VzdG9tU3R5bGVIb29rc0NvbnRleHQuUHJvdmlkZXI7XG4vKipcbiAqIEdldHMgYSBjdXN0b20gc3R5bGUgaG9va1xuICogQHBhcmFtIGhvb2sgLSBPbmUgb2YgdGhlIGhvb2sgcHJvcGVydGllcyBpbiBDdXN0b21TdHlsZUhvb2tzQ29udGV4dFZhbHVlXG4gKiBAcmV0dXJucyBUaGUgY29ycmVzcG9uZGluZyBob29rIHdoZW4gZGVmaW5lZCwgb3RoZXJ3aXNlIGEgbm8tb3AgZnVuY3Rpb24uXG4gKi8gZXhwb3J0IGNvbnN0IHVzZUN1c3RvbVN0eWxlSG9vayA9IChob29rKT0+e1xuICAgIHZhciBfUmVhY3RfdXNlQ29udGV4dDtcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHRfaG9vaztcbiAgICByZXR1cm4gKF9SZWFjdF91c2VDb250ZXh0X2hvb2sgPSAoX1JlYWN0X3VzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KEN1c3RvbVN0eWxlSG9va3NDb250ZXh0KSkgPT09IG51bGwgfHwgX1JlYWN0X3VzZUNvbnRleHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9SZWFjdF91c2VDb250ZXh0W2hvb2tdKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dF9ob29rICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dF9ob29rIDogbm9vcDtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFByb3ZpZGVzIGEgbW91bnQgbm9kZSBmb3IgcG9ydGFscyB0byByZW5kZXIgaW50by5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqLyBjb25zdCBQb3J0YWxNb3VudE5vZGVDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgUG9ydGFsTW91bnROb2RlUHJvdmlkZXIgPSBQb3J0YWxNb3VudE5vZGVDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVBvcnRhbE1vdW50Tm9kZSgpIHtcbiAgICByZXR1cm4gUmVhY3QudXNlQ29udGV4dChQb3J0YWxNb3VudE5vZGVDb250ZXh0KTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogQGludGVybmFsXG4gKi8gY29uc3QgQW5ub3VuY2VDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IEFubm91bmNlUHJvdmlkZXIgPSBBbm5vdW5jZUNvbnRleHQuUHJvdmlkZXI7XG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGFubm91bmNlIG1lc3NhZ2VzIHRvIHNjcmVlbiByZWFkZXJzLlxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VBbm5vdW5jZSgpIHtcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQW5ub3VuY2VDb250ZXh0KSkgIT09IG51bGwgJiYgX1JlYWN0X3VzZUNvbnRleHQgIT09IHZvaWQgMCA/IF9SZWFjdF91c2VDb250ZXh0IDoge1xuICAgICAgICBhbm5vdW5jZTogKCk9PnVuZGVmaW5lZFxuICAgIH07XG59XG4iLCJpbXBvcnQgeyB1c2VCcm93c2VyVGltZXIgfSBmcm9tICcuL3VzZUJyb3dzZXJUaW1lcic7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5jb25zdCBzZXRBbmltYXRpb25GcmFtZU5vb3AgPSAoY2FsbGJhY2spPT57XG4gICAgY2FsbGJhY2soMCk7XG4gICAgcmV0dXJuIDA7XG59O1xuY29uc3QgY2FuY2VsQW5pbWF0aW9uRnJhbWVOb29wID0gKGhhbmRsZSk9PmhhbmRsZTtcbi8qKlxuICogQGludGVybmFsXG4gKiBIZWxwZXIgdG8gbWFuYWdlIGEgYnJvd3NlciByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXG4gKiBFbnN1cmVzIHRoYXQgdGhlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBpc24ndCBzZXQgbXVsdGlwbGUgdGltZXMgYXQgb25jZSBhbmQgaXMgY2xlYW5lZCB1cFxuICogd2hlbiB0aGUgY29tcG9uZW50IGlzIHVubG9hZGVkLlxuICpcbiAqIEByZXR1cm5zIEEgcGFpciBvZiBbcmVxdWVzdEFuaW1hdGlvbkZyYW1lLCBjYW5jZWxBbmltYXRpb25GcmFtZV0gdGhhdCBhcmUgc3RhYmxlIGJldHdlZW4gcmVuZGVycy5cbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlQW5pbWF0aW9uRnJhbWUoKSB7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIGNvbnN0IHNldEFuaW1hdGlvbkZyYW1lID0gd2luID8gd2luLnJlcXVlc3RBbmltYXRpb25GcmFtZSA6IHNldEFuaW1hdGlvbkZyYW1lTm9vcDtcbiAgICBjb25zdCBjbGVhckFuaW1hdGlvbkZyYW1lID0gd2luID8gd2luLmNhbmNlbEFuaW1hdGlvbkZyYW1lIDogY2FuY2VsQW5pbWF0aW9uRnJhbWVOb29wO1xuICAgIHJldHVybiB1c2VCcm93c2VyVGltZXIoc2V0QW5pbWF0aW9uRnJhbWUsIGNsZWFyQW5pbWF0aW9uRnJhbWUpO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZnVuY3Rpb24gaXNGYWN0b3J5RGlzcGF0Y2gobmV3U3RhdGUpIHtcbiAgICByZXR1cm4gdHlwZW9mIG5ld1N0YXRlID09PSAnZnVuY3Rpb24nO1xufVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBBIFtgdXNlU3RhdGVgXShodHRwczovL3JlYWN0anMub3JnL2RvY3MvaG9va3MtcmVmZXJlbmNlLmh0bWwjdXNlc3RhdGUpLWxpa2UgaG9va1xuICogdG8gbWFuYWdlIGEgdmFsdWUgdGhhdCBjb3VsZCBiZSBlaXRoZXIgYGNvbnRyb2xsZWRgIG9yIGB1bmNvbnRyb2xsZWRgLFxuICogc3VjaCBhcyBhIGNoZWNrZWQgc3RhdGUgb3IgdGV4dCBpbnB1dCBzdHJpbmcuXG4gKlxuICogQHNlZSBodHRwczovL3JlYWN0LmRldi9sZWFybi9zaGFyaW5nLXN0YXRlLWJldHdlZW4tY29tcG9uZW50cyNjb250cm9sbGVkLWFuZC11bmNvbnRyb2xsZWQtY29tcG9uZW50cyBmb3IgbW9yZSBkZXRhaWxzIG9uIGBjb250cm9sbGVkYC9gdW5jb250cm9sbGVkYFxuICpcbiAqIEByZXR1cm5zIGFuIGFycmF5IG9mIHRoZSBjdXJyZW50IHZhbHVlIGFuZCBhbiB1cGRhdGVyIChkaXNwYXRjaGVyKSBmdW5jdGlvbi5cbiAqIFRoZSB1cGRhdGVyIGZ1bmN0aW9uIGlzIHJlZmVyZW50aWFsbHkgc3RhYmxlICh3b24ndCBjaGFuZ2UgZHVyaW5nIHRoZSBjb21wb25lbnQncyBsaWZlY3ljbGUpLlxuICogSXQgY2FuIHRha2UgZWl0aGVyIGEgbmV3IHZhbHVlLCBvciBhIGZ1bmN0aW9uIHdoaWNoIGlzIHBhc3NlZCB0aGUgcHJldmlvdXMgdmFsdWUgYW5kIHJldHVybnMgdGhlIG5ldyB2YWx1ZS5cbiAqXG4gKiDinZfvuI/inZfvuI8gQ2FsbHMgdG8gdGhlIGRpc3BhdGNoZXIgd2lsbCBvbmx5IG1vZGlmeSB0aGUgc3RhdGUgaWYgdGhlIHN0YXRlIGlzIGB1bmNvbnRyb2xsZWRgLlxuICogTWVhbmluZyB0aGF0IGlmIGEgc3RhdGUgaXMgYGNvbnRyb2xsZWRgLCBjYWxscyB0byB0aGUgZGlzcGF0Y2hlciBkbyBub3QgbW9kaWZ5IHRoZSBzdGF0ZS5cbiAqXG4gKi8gZXhwb3J0IGNvbnN0IHVzZUNvbnRyb2xsYWJsZVN0YXRlID0gKG9wdGlvbnMpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAob3B0aW9ucy5zdGF0ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuZGVmYXVsdFN0YXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzIFt1c2VDb250cm9sbGFibGVTdGF0ZV06XG5BIGNvbXBvbmVudCBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhlIHN0YXRlIG9yIHRoZSBkZWZhdWx0U3RhdGUsIGJ1dCBub3QgYm90aCkuXG5EZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGlzIHByb3BzLlxuTW9yZSBpbmZvOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzXG4ke25ldyBFcnJvcigpLnN0YWNrfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IFtpbnRlcm5hbFN0YXRlLCBzZXRJbnRlcm5hbFN0YXRlXSA9IFJlYWN0LnVzZVN0YXRlKCgpPT57XG4gICAgICAgIGlmIChvcHRpb25zLmRlZmF1bHRTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbml0aWFsU3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzSW5pdGlhbGl6ZXIob3B0aW9ucy5kZWZhdWx0U3RhdGUpID8gb3B0aW9ucy5kZWZhdWx0U3RhdGUoKSA6IG9wdGlvbnMuZGVmYXVsdFN0YXRlO1xuICAgIH0pO1xuICAgIC8vIEhlYWRzIHVwIVxuICAgIC8vIFRoaXMgcGFydCBpcyBzcGVjaWZpYyBmb3IgY29udHJvbGxlZCBtb2RlIGFuZCBtb2NrcyBiZWhhdmlvciBvZiBSZWFjdCBkaXNwYXRjaGVyIGZ1bmN0aW9uLlxuICAgIGNvbnN0IHN0YXRlVmFsdWVSZWYgPSBSZWFjdC51c2VSZWYob3B0aW9ucy5zdGF0ZSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIHN0YXRlVmFsdWVSZWYuY3VycmVudCA9IG9wdGlvbnMuc3RhdGU7XG4gICAgfSwgW1xuICAgICAgICBvcHRpb25zLnN0YXRlXG4gICAgXSk7XG4gICAgY29uc3Qgc2V0Q29udHJvbGxlZFN0YXRlID0gUmVhY3QudXNlQ2FsbGJhY2soKG5ld1N0YXRlKT0+e1xuICAgICAgICBpZiAoaXNGYWN0b3J5RGlzcGF0Y2gobmV3U3RhdGUpKSB7XG4gICAgICAgICAgICBuZXdTdGF0ZShzdGF0ZVZhbHVlUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIHJldHVybiB1c2VJc0NvbnRyb2xsZWQob3B0aW9ucy5zdGF0ZSkgPyBbXG4gICAgICAgIG9wdGlvbnMuc3RhdGUsXG4gICAgICAgIHNldENvbnRyb2xsZWRTdGF0ZVxuICAgIF0gOiBbXG4gICAgICAgIGludGVybmFsU3RhdGUsXG4gICAgICAgIHNldEludGVybmFsU3RhdGVcbiAgICBdO1xufTtcbmZ1bmN0aW9uIGlzSW5pdGlhbGl6ZXIodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufVxuLyoqXG4gKiBIZWxwZXIgaG9vayB0byBoYW5kbGUgcHJldmlvdXMgY29tcGFyaXNvbiBvZiBjb250cm9sbGVkL3VuY29udHJvbGxlZFxuICogUHJpbnRzIGFuIGVycm9yIHdoZW4gaXNDb250cm9sbGVkIHZhbHVlIHN3aXRjaGVzIGJldHdlZW4gc3Vic2VxdWVudCByZW5kZXJzXG4gKiBAcmV0dXJucyAtIHdoZXRoZXIgdGhlIHZhbHVlIGlzIGNvbnRyb2xsZWRcbiAqLyBjb25zdCB1c2VJc0NvbnRyb2xsZWQgPSAoY29udHJvbGxlZFZhbHVlKT0+e1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgW2lzQ29udHJvbGxlZF0gPSBSZWFjdC51c2VTdGF0ZSgoKT0+Y29udHJvbGxlZFZhbHVlICE9PSB1bmRlZmluZWQpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdGhlc2Ugd2FybmluZ3MgaW4gcHJvZHVjdGlvbiBldmVuIHRob3VnaCBpdCBpcyBhZ2FpbnN0IG5hdGl2ZSBiZWhhdmlvdXJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAgICAgaWYgKGlzQ29udHJvbGxlZCAhPT0gKGNvbnRyb2xsZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFdhcm5pbmcgPSBpc0NvbnRyb2xsZWQgPyAnYSBjb250cm9sbGVkIHZhbHVlIHRvIGJlIHVuY29udHJvbGxlZCcgOiAnYW4gdW5jb250cm9sbGVkIHZhbHVlIHRvIGJlIGNvbnRyb2xsZWQnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuZGVmaW5lZFdhcm5pbmcgPSBpc0NvbnRyb2xsZWQgPyAnZGVmaW5lZCB0byBhbiB1bmRlZmluZWQnIDogJ3VuZGVmaW5lZCB0byBhIGRlZmluZWQnO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyBbdXNlQ29udHJvbGxhYmxlU3RhdGVdOlxuQSBjb21wb25lbnQgaXMgY2hhbmdpbmcgJHtjb250cm9sV2FybmluZ30uIFRoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSAke3VuZGVmaW5lZFdhcm5pbmd9IHZhbHVlLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi5cbkRlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuXG5Nb3JlIGluZm86IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHNcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtcbiAgICAgICAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgICAgICAgIGNvbnRyb2xsZWRWYWx1ZVxuICAgICAgICBdKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQ29udHJvbGxlZDtcbn07XG4iLCIvKipcbiAqIFZlcmlmaWVzIGlmIGFuIGFwcGxpY2F0aW9uIGNhbiB1c2UgRE9NLlxuICovIGV4cG9ydCBmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gICAgcmV0dXJuKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvbiwgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgISEod2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuL2NhblVzZURPTSc7XG4vKipcbiAqIERlZmF1bHQgY29udGV4dCB2YWx1ZSB0byB1c2UgaW4gY2FzZSB0aGVyZSBpcyBubyBTU1JQcm92aWRlci4gVGhpcyBpcyBmaW5lIGZvciBjbGllbnQtb25seSBhcHBzLlxuICpcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBkZWZhdWx0U1NSQ29udGV4dFZhbHVlID0ge1xuICAgIGN1cnJlbnQ6IDBcbn07XG5leHBvcnQgY29uc3QgU1NSQ29udGV4dCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlU1NSQ29udGV4dCgpIHtcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoU1NSQ29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IGRlZmF1bHRTU1JDb250ZXh0VmFsdWU7XG59XG4vKipcbiAqIFdoZW4gdXNpbmcgU1NSIHdpdGggRmx1ZW50IFVJLCBhcHBsaWNhdGlvbnMgbXVzdCBiZSB3cmFwcGVkIGluIGFuIFNTUlByb3ZpZGVyLiBUaGlzIGVuc3VyZXMgdGhhdCBhdXRvIGdlbmVyYXRlZCBpZHNcbiAqIGFyZSBjb25zaXN0ZW50IGJldHdlZW4gdGhlIGNsaWVudCBhbmQgc2VydmVyLlxuICpcbiAqIEBwdWJsaWNcbiAqLyBleHBvcnQgY29uc3QgU1NSUHJvdmlkZXIgPSAocHJvcHMpPT57XG4gICAgY29uc3QgW3ZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKCgpPT4oe1xuICAgICAgICAgICAgY3VycmVudDogMFxuICAgICAgICB9KSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChTU1JDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH0sIHByb3BzLmNoaWxkcmVuKTtcbn07XG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBiZWluZyBzZXJ2ZXIgc2lkZSByZW5kZXJlZCBvciBoeWRyYXRlZCBvbiB0aGUgY2xpZW50LiBDYW4gYmUgdXNlZCB0byBkZWxheVxuICogYnJvd3Nlci1zcGVjaWZpYyByZW5kZXJpbmcgdW50aWwgYWZ0ZXIgaHlkcmF0aW9uLiBNYXkgY2F1c2UgcmUtcmVuZGVycyBvbiBhIGNsaWVudCB3aGVuIGlzIHVzZWQgd2l0aGluIFNTUlByb3ZpZGVyLlxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VJc1NTUigpIHtcbiAgICBjb25zdCBpc0luU1NSQ29udGV4dCA9IHVzZVNTUkNvbnRleHQoKSAhPT0gZGVmYXVsdFNTUkNvbnRleHRWYWx1ZTtcbiAgICBjb25zdCBbaXNTU1IsIHNldElzU1NSXSA9IFJlYWN0LnVzZVN0YXRlKGlzSW5TU1JDb250ZXh0KTtcbiAgICAvLyBJZiB3ZSBhcmUgcmVuZGVyaW5nIGluIGEgbm9uLURPTSBlbnZpcm9ubWVudCwgYW5kIHRoZXJlJ3Mgbm8gU1NSUHJvdmlkZXIsIHByb3ZpZGUgYSB3YXJuaW5nIHRvIGhpbnQgdG8gdGhlXG4gICAgLy8gZGV2ZWxvcGVyIHRvIGFkZCBvbmUuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKCFpc0luU1NSQ29udGV4dCAmJiAhY2FuVXNlRE9NKCkpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50cyBbJHt1c2VJc1NTUi5uYW1lfV06XG5XaGVuIHNlcnZlciByZW5kZXJpbmcsIHlvdSBtdXN0IHdyYXAgeW91ciBhcHBsaWNhdGlvbiBpbiBhbiA8U1NSUHJvdmlkZXI+IHRvIGVuc3VyZSBjb25zaXN0ZW50IGlkcyBhcmUgZ2VuZXJhdGVkIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgc2VydmVyLlxuXG5cbkNoZWNrIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9ha2EubXMvZmx1ZW50dWktc3NyLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElmIG9uIHRoZSBjbGllbnQsIGFuZCB0aGUgY29tcG9uZW50IHdhcyBpbml0aWFsbHkgc2VydmVyIHJlbmRlcmVkLCB0aGVuIHNjaGVkdWxlIGEgbGF5b3V0IGVmZmVjdCB0byB1cGRhdGUgdGhlXG4gICAgLy8gY29tcG9uZW50IGFmdGVyIGh5ZHJhdGlvbi5cbiAgICBpZiAoY2FuVXNlRE9NKCkgJiYgaXNJblNTUkNvbnRleHQpIHtcbiAgICAgICAgLy8gVGhpcyBpZiBzdGF0ZW1lbnQgdGVjaG5pY2FsbHkgYnJlYWtzIHRoZSBydWxlcyBvZiBob29rcywgYnV0IGlzIHNhZmUgYmVjYXVzZSB0aGUgY29uZGl0aW9uIG5ldmVyIGNoYW5nZXMgYWZ0ZXJcbiAgICAgICAgLy8gbW91bnRpbmcuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgICAgIHNldElzU1NSKGZhbHNlKTtcbiAgICAgICAgfSwgW10pO1xuICAgIH1cbiAgICByZXR1cm4gaXNTU1I7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi9zc3IvaW5kZXgnO1xuLyoqXG4gKiBSZWFjdCBjdXJyZW50bHkgdGhyb3dzIGEgd2FybmluZyB3aGVuIHVzaW5nIHVzZUxheW91dEVmZmVjdCBvbiB0aGUgc2VydmVyLiBUbyBnZXQgYXJvdW5kIGl0LCB3ZSBjYW4gY29uZGl0aW9uYWxseVxuICogdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIgKG5vLW9wKSBhbmQgdXNlTGF5b3V0RWZmZWN0IGluIHRoZSBicm93c2VyLiBXZSBvY2Nhc2lvbmFsbHkgbmVlZCB1c2VMYXlvdXRFZmZlY3QgdG9cbiAqIGVuc3VyZSB3ZSBkb24ndCBnZXQgYSByZW5kZXIgZmxhc2ggZm9yIGNlcnRhaW4gb3BlcmF0aW9ucywgYnV0IHdlIG1heSBhbHNvIG5lZWQgYWZmZWN0ZWQgY29tcG9uZW50cyB0byByZW5kZXIgb25cbiAqIHRoZSBzZXJ2ZXIuXG4gKlxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVhY3QtcmVkdXgvYmxvYi9tYXN0ZXIvc3JjL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QuanNcbiAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1wcm9wZXJ0aWVzXG5leHBvcnQgY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IGNhblVzZURPTSgpID8gUmVhY3QudXNlTGF5b3V0RWZmZWN0IDogUmVhY3QudXNlRWZmZWN0O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJy4vdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2hvb2tzLWZhcS5odG1sI2hvdy10by1yZWFkLWFuLW9mdGVuLWNoYW5naW5nLXZhbHVlLWZyb20tdXNlY2FsbGJhY2tcbiAqXG4gKiBNb2RpZmllZCBgdXNlQ2FsbGJhY2tgIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiBkZXBlbmRlbmNpZXMgY2hhbmdlIHRvbyBmcmVxdWVudGx5LiBDYW4gb2NjdXIgd2hlblxuICogZS5nLiB1c2VyIHByb3BzIGFyZSBkZXBlbmRlbmNpZXMgd2hpY2ggY291bGQgY2hhbmdlIG9uIGV2ZXJ5IHJlbmRlclxuICogZS5nLiB2b2xhdGlsZSB2YWx1ZXMgKGkuZS4gdXNlU3RhdGUvdXNlRGlzcGF0Y2gpIGFyZSBkZXBlbmRlbmNpZXMgd2hpY2ggY291bGQgY2hhbmdlIGZyZXF1ZW50bHlcbiAqXG4gKiBUaGlzIHNob3VsZCBub3QgYmUgdXNlZCBvZnRlbiwgYnV0IGNhbiBiZSBhIHVzZWZ1bCByZS1yZW5kZXIgb3B0aW1pemF0aW9uIHNpbmNlIHRoZSBjYWxsYmFjayBpcyBhIHJlZiBhbmRcbiAqIHdpbGwgbm90IGJlIGludmFsaWRhdGVkIGJldHdlZW4gcmUtcmVuZGVyc1xuICpcbiAqIEBwYXJhbSBmbiAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgdXNlZFxuICovIGV4cG9ydCBjb25zdCB1c2VFdmVudENhbGxiYWNrID0gKGZuKT0+e1xuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gUmVhY3QudXNlUmVmKCgpPT57XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNhbGwgYW4gZXZlbnQgaGFuZGxlciB3aGlsZSByZW5kZXJpbmcnKTtcbiAgICB9KTtcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgIGNhbGxiYWNrUmVmLmN1cnJlbnQgPSBmbjtcbiAgICB9LCBbXG4gICAgICAgIGZuXG4gICAgXSk7XG4gICAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKCguLi5hcmdzKT0+e1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IGNhbGxiYWNrUmVmLmN1cnJlbnQ7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayguLi5hcmdzKTtcbiAgICB9LCBbXG4gICAgICAgIGNhbGxiYWNrUmVmXG4gICAgXSk7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIENoZWNrcyBpZiBjb21wb25lbnRzIHdhcyBtb3VudGVkIHRoZSBmaXJzdCB0aW1lLlxuICogU2luY2UgY29uY3VycmVudCBtb2RlIHdpbGwgYmUgcmVsZWFzZWQgaW4gdGhlIGZ1dHVyZSB0aGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkXG4gKiBDdXJyZW50bHkgKFJlYWN0IDE3KSB3aWxsIGFsd2F5cyByZW5kZXIgdGhlIGluaXRpYWwgbW91bnQgb25jZVxuICogaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL2hldXJpc3RpYy1icm9vay1zNHcwcT9maWxlPS9zcmMvQXBwLmpzeFxuICogaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL2hvbHktZ3Jhc3MtOG5pZXU/ZmlsZT0vc3JjL0FwcC5qc3hcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgaXNGaXJzdE1vdW50ID0gdXNlRmlyc3RNb3VudCgpO1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VGaXJzdE1vdW50KCkge1xuICAgIGNvbnN0IGlzRmlyc3QgPSBSZWFjdC51c2VSZWYodHJ1ZSk7XG4gICAgaWYgKGlzRmlyc3QuY3VycmVudCkge1xuICAgICAgICBpc0ZpcnN0LmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBpc0ZpcnN0LmN1cnJlbnQ7XG59XG4iLCJpbXBvcnQgeyB1c2VSZWR1Y2VyIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEZvcmNlcyBhIHJlLXJlbmRlciwgc2ltaWxhciB0byBgZm9yY2VVcGRhdGVgIGluIGNsYXNzIGNvbXBvbmVudHMuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcmNlVXBkYXRlKCkge1xuICAgIHJldHVybiB1c2VSZWR1Y2VyKCh4KT0+eCArIDEsIDApWzFdO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdFNTUkNvbnRleHRWYWx1ZSwgdXNlU1NSQ29udGV4dCB9IGZyb20gJy4uL3Nzci9pbmRleCc7XG5jb25zdCBJZFByZWZpeENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG4vKipcbiAqIEFsbG93cyB0byBkZWZpbmUgYSBwcmVmaXggdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFsbCBJRHMgZ2VuZXJhdGVkIGJ5IHVzZUlkKCkgaG9vay4gSXQncyB1c2VmdWwgdG8gYXZvaWQgY29sbGlzaW9uc1xuICogYmV0d2VlbiBkaWZmZXJlbnQgYnVuZGxlcy5cbiAqLyBleHBvcnQgY29uc3QgSWRQcmVmaXhQcm92aWRlciA9IElkUHJlZml4Q29udGV4dC5Qcm92aWRlcjtcbmZ1bmN0aW9uIHVzZUlkUHJlZml4KCkge1xuICAgIHJldHVybiBSZWFjdC51c2VDb250ZXh0KElkUHJlZml4Q29udGV4dCkgfHwgJyc7XG59XG4vKipcbiAqIFJlc2V0cyBnZW5lcmF0ZWQgSURzLCBzaG91bGQgYmUgdXNlZCBvbmx5IGluIHRlc3RzLlxuICovIGV4cG9ydCBmdW5jdGlvbiByZXNldElkc0ZvclRlc3RzKCkge1xuICAgIGRlZmF1bHRTU1JDb250ZXh0VmFsdWUuY3VycmVudCA9IDA7XG59XG4vKipcbiAqIEhvb2sgdG8gZ2VuZXJhdGUgYSB1bmlxdWUgSUQuXG4gKlxuICogQHBhcmFtIHByZWZpeCAtIE9wdGlvbmFsIHByZWZpeCBmb3IgdGhlIElELiBEZWZhdWx0cyB0byAnZnVpLScuXG4gKiBAcGFyYW0gcHJvdmlkZWRJZCAtIE9wdGlvbmFsIGlkIHByb3ZpZGVkIGJ5IGEgcGFyZW50IGNvbXBvbmVudC4gRGVmYXVsdHMgdG8gdGhlIHByb3ZpZGVkIHZhbHVlIGlmIHByZXNlbnQsXG4gKiAgd2l0aG91dCBjb25kaXRpb25pbmcgdGhlIGhvb2sgY2FsbFxuICogQHJldHVybnMgVGhlIElEXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUlkKHByZWZpeCA9ICdmdWktJywgcHJvdmlkZWRJZCkge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlU1NSQ29udGV4dCgpO1xuICAgIGNvbnN0IGlkUHJlZml4ID0gdXNlSWRQcmVmaXgoKTtcbiAgICAvLyBDaGVja2luZyBpZiB1c2VJZCBpcyBhdmFpbGFibGUgb24gUmVhY3QsIGlmIGl0IGlzLCB3ZSB1c2UgaXQgdG8gZ2VuZXJhdGUgdGhlIGlkLiBTdHJpbmcgY29uY2F0ZW5hdGlvbiBpcyB1c2VkIHRvXG4gICAgLy8gcHJldmVudCBidW5kbGVycyBmcm9tIGNvbXBsYWluaW5nIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgUmVhY3QuXG4gICAgY29uc3QgX3VzZUlkID0gUmVhY3RbJ3VzZScgKyAnSWQnXTtcbiAgICBpZiAoX3VzZUlkKSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZElkID0gX3VzZUlkKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCBlc2NhcGVkSWQgPSBSZWFjdC51c2VNZW1vKCgpPT5nZW5lcmF0ZWRJZC5yZXBsYWNlKC86L2csICcnKSwgW1xuICAgICAgICAgICAgZ2VuZXJhdGVkSWRcbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiBwcm92aWRlZElkIHx8IGAke2lkUHJlZml4fSR7cHJlZml4fSR7ZXNjYXBlZElkfWA7XG4gICAgfVxuICAgIC8vIEhvb2tzIGFwcGVhciB0byBiZSBydW5uaW5nIGNvbmRpdGlvbmFsbHksIGJ1dCB0aGV5IHdpbGwgYWx3YXlzIHJ1biBpbiB0aGUgc2FtZSBvcmRlciBzaW5jZSBpdCdzIGJhc2VkIG9uXG4gICAgLy8gdGhlIHZlcnNpb24gb2YgUmVhY3QgYmVpbmcgdXNlZC4gVGhpcyBpcyBzYWZlIHRvIGlnbm9yZS5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICByZXR1cm4gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBpZiAocHJvdmlkZWRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVkSWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2lkUHJlZml4fSR7cHJlZml4fSR7Kytjb250ZXh0VmFsdWUuY3VycmVudH1gO1xuICAgIH0sIFtcbiAgICAgICAgaWRQcmVmaXgsXG4gICAgICAgIHByZWZpeCxcbiAgICAgICAgcHJvdmlkZWRJZCxcbiAgICAgICAgY29udGV4dFZhbHVlXG4gICAgXSk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFJlYWN0IGhvb2sgdG8gbWVyZ2UgbXVsdGlwbGUgUmVhY3QgcmVmcyAoZWl0aGVyIE11dGFibGVSZWZPYmplY3RzIG9yIHJlZiBjYWxsYmFja3MpIGludG8gYSBzaW5nbGUgcmVmIGNhbGxiYWNrIHRoYXRcbiAqIHVwZGF0ZXMgYWxsIHByb3ZpZGVkIHJlZnNcbiAqIEBwYXJhbSByZWZzIC0gUmVmcyB0byBjb2xsZWN0aXZlbHkgdXBkYXRlIHdpdGggb25lIHJlZiB2YWx1ZS5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gd2l0aCBhbiBhdHRhY2hlZCBcImN1cnJlbnRcIiBwcm9wLCBzbyB0aGF0IGl0IGNhbiBiZSB0cmVhdGVkIGxpa2UgYSBSZWZPYmplY3QuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlZFJlZnMoLi4ucmVmcykge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgbWVyZ2VkQ2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjaygodmFsdWUpPT57XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgXCJjdXJyZW50XCIgcHJvcCBoYW5naW5nIG9uIHRoZSBmdW5jdGlvbi5cbiAgICAgICAgbWVyZ2VkQ2FsbGJhY2suY3VycmVudCA9IHZhbHVlO1xuICAgICAgICBmb3IgKGNvbnN0IHJlZiBvZiByZWZzKXtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmVmKHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgLy8gd29yayBhcm91bmQgdGhlIGltbXV0YWJpbGl0eSBvZiB0aGUgUmVhY3QuUmVmIHR5cGVcbiAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAtLSBhbHJlYWR5IGV4aGF1c3RpdmVcbiAgICBbXG4gICAgICAgIC4uLnJlZnNcbiAgICBdKTtcbiAgICByZXR1cm4gbWVyZ2VkQ2FsbGJhY2s7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnLi91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmNvbnN0IERFRkFVTFRfQ09OVEFJTlMgPSAocGFyZW50LCBjaGlsZCk9PiEhKHBhcmVudCA9PT0gbnVsbCB8fCBwYXJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudC5jb250YWlucyhjaGlsZCkpO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFV0aWxpdHkgdG8gcGVyZm9ybSBjaGVja3Mgd2hlcmUgYSBjbGljay90b3VjaCBldmVudCB3YXMgbWFkZSBvdXRzaWRlIGEgY29tcG9uZW50XG4gKi8gZXhwb3J0IGNvbnN0IHVzZU9uQ2xpY2tPdXRzaWRlID0gKG9wdGlvbnMpPT57XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIGNvbnN0IHsgcmVmcywgY2FsbGJhY2ssIGVsZW1lbnQsIGRpc2FibGVkLCBkaXNhYmxlZEZvY3VzT25JZnJhbWUsIGNvbnRhaW5zID0gREVGQVVMVF9DT05UQUlOUyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB0aW1lb3V0SWQgPSBSZWFjdC51c2VSZWYodW5kZWZpbmVkKTtcbiAgICB1c2VJRnJhbWVGb2N1cyh7XG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZEZvY3VzT25JZnJhbWUgfHwgZGlzYWJsZWQsXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICByZWZzLFxuICAgICAgICBjb250YWluc1xuICAgIH0pO1xuICAgIGNvbnN0IGlzTW91c2VEb3duSW5zaWRlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBsaXN0ZW5lciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2KT0+e1xuICAgICAgICBpZiAoaXNNb3VzZURvd25JbnNpZGVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgaXNNb3VzZURvd25JbnNpZGVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2LmNvbXBvc2VkUGF0aCgpWzBdO1xuICAgICAgICBjb25zdCBpc091dHNpZGUgPSByZWZzLmV2ZXJ5KChyZWYpPT4hY29udGFpbnMocmVmLmN1cnJlbnQgfHwgbnVsbCwgdGFyZ2V0KSk7XG4gICAgICAgIGlmIChpc091dHNpZGUgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhldik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldik9PntcbiAgICAgICAgLy8gU2VsZWN0aW5nIHRleHQgZnJvbSBpbnNpZGUgdG8gb3V0c2lkZSB3aWxsIHJpZ2dlciBjbGljayBldmVudC5cbiAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGNsaWNrIGV2ZW50IHRhcmdldCBpcyBvdXRzaWRlIGJ1dCBtb3VzZSBkb3duIGV2ZW50IHRhcmdldCBpcyBpbnNpZGUuXG4gICAgICAgIC8vIEFuZCB0aGlzIGNsaWNrIGV2ZW50IHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGluc2lkZSBjbGljay5cbiAgICAgICAgaXNNb3VzZURvd25JbnNpZGVSZWYuY3VycmVudCA9IHJlZnMuc29tZSgocmVmKT0+Y29udGFpbnMocmVmLmN1cnJlbnQgfHwgbnVsbCwgZXYudGFyZ2V0KSk7XG4gICAgfSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIFN0b3JlIHRoZSBjdXJyZW50IGV2ZW50IHRvIGF2b2lkIHRyaWdnZXJpbmcgaGFuZGxlcnMgaW1tZWRpYXRlbHlcbiAgICAgICAgLy8gTm90ZSB0aGlzIGRlcGVuZHMgb24gYSBkZXByZWNhdGVkIGJ1dCBleHRyZW1lbHkgd2VsbCBzdXBwb3J0ZWQgcXVpcmsgb2YgdGhlIHdlYiBwbGF0Zm9ybVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzIwMDc0XG4gICAgICAgIGxldCBjdXJyZW50RXZlbnQgPSBnZXRXaW5kb3dFdmVudCh3aW4pO1xuICAgICAgICBjb25zdCBjb25kaXRpb25hbEhhbmRsZXIgPSAoZXZlbnQpPT57XG4gICAgICAgICAgICAvLyBTa2lwIGlmIHRoaXMgZXZlbnQgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSBydW5uaW5nIHdoZW4gd2UgYWRkZWQgdGhlIGhhbmRsZXJzXG4gICAgICAgICAgICBpZiAoZXZlbnQgPT09IGN1cnJlbnRFdmVudCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRFdmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXN0ZW5lcihldmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHVzZSBjYXB0dXJlIHBoYXNlIGJlY2F1c2UgUmVhY3QgY2FuIHVwZGF0ZSBET00gYmVmb3JlIHRoZSBldmVudCBidWJibGVzIHRvIHRoZSBkb2N1bWVudFxuICAgICAgICBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjb25kaXRpb25hbEhhbmRsZXIsIHRydWUpO1xuICAgICAgICBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGNvbmRpdGlvbmFsSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGNvbmRpdGlvbmFsSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVNb3VzZURvd24sIHRydWUpO1xuICAgICAgICAvLyBHYXJiYWdlIGNvbGxlY3QgdGhpcyBldmVudCBhZnRlciBpdCdzIG5vIGxvbmdlciB1c2VmdWwgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXG4gICAgICAgIHRpbWVvdXRJZC5jdXJyZW50ID0gd2luID09PSBudWxsIHx8IHdpbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luLnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIGN1cnJlbnRFdmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgMSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY29uZGl0aW9uYWxIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgY29uZGl0aW9uYWxIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGNvbmRpdGlvbmFsSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAgICAgICBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlTW91c2VEb3duLCB0cnVlKTtcbiAgICAgICAgICAgIHdpbiA9PT0gbnVsbCB8fCB3aW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbi5jbGVhclRpbWVvdXQodGltZW91dElkLmN1cnJlbnQpO1xuICAgICAgICAgICAgY3VycmVudEV2ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgbGlzdGVuZXIsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBoYW5kbGVNb3VzZURvd24sXG4gICAgICAgIHdpblxuICAgIF0pO1xufTtcbmNvbnN0IGdldFdpbmRvd0V2ZW50ID0gKHRhcmdldCk9PntcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgIHZhciBfdGFyZ2V0X293bmVyRG9jdW1lbnRfZGVmYXVsdFZpZXcsIF90YXJnZXRfb3duZXJEb2N1bWVudDtcbiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQud2luZG93ID09PSAnb2JqZWN0JyAmJiB0YXJnZXQud2luZG93ID09PSB0YXJnZXQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvblxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5ldmVudDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX3RhcmdldF9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3X2V2ZW50O1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbiAgICAgICAgcmV0dXJuIChfdGFyZ2V0X293bmVyRG9jdW1lbnRfZGVmYXVsdFZpZXdfZXZlbnQgPSAoX3RhcmdldF9vd25lckRvY3VtZW50ID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQpID09PSBudWxsIHx8IF90YXJnZXRfb3duZXJEb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF90YXJnZXRfb3duZXJEb2N1bWVudF9kZWZhdWx0VmlldyA9IF90YXJnZXRfb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgPT09IG51bGwgfHwgX3RhcmdldF9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGFyZ2V0X293bmVyRG9jdW1lbnRfZGVmYXVsdFZpZXcuZXZlbnQpICE9PSBudWxsICYmIF90YXJnZXRfb3duZXJEb2N1bWVudF9kZWZhdWx0Vmlld19ldmVudCAhPT0gdm9pZCAwID8gX3RhcmdldF9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3X2V2ZW50IDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbmNvbnN0IEZVSV9GUkFNRV9FVkVOVCA9ICdmdWlmcmFtZWZvY3VzJztcbi8qKlxuICogU2luY2UgY2xpY2sgZXZlbnRzIGRvIG5vdCBwcm9wYWdhdGUgcGFzdCBpZnJhbWVzLCB3ZSB1c2UgZm9jdXMgdG8gZGV0ZWN0IGlmIGFcbiAqIGNsaWNrIGhhcyBoYXBwZW5lZCBpbnNpZGUgYW4gaWZyYW1lLCBzaW5jZSB0aGUgb25seSB3YXlzIG9mIGZvY3VzaW5nIGluc2lkZSBhblxuICogaWZyYW1lIGFyZTpcbiAqICAgLSBjbGlja2luZyBpbnNpZGVcbiAqICAgLSB0YWJiaW5nIGluc2lkZVxuICpcbiAqIFBvbGxzIHRoZSB2YWx1ZSBvZiBgZG9jdW1lbnQuYWN0aXZlRWxlbWVudGAuIElmIGl0IGlzIGFuIGlmcmFtZSwgdGhlbiBkaXNwYXRjaFxuICogYSBjdXN0b20gRE9NIGV2ZW50LiBXaGVuIHRoZSBjdXN0b20gZXZlbnQgaXMgcmVjZWl2ZWQgY2FsbCB0aGUgcHJvdmlkZWQgY2FsbGJhY2tcbiAqLyBjb25zdCB1c2VJRnJhbWVGb2N1cyA9IChvcHRpb25zKT0+e1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIGVsZW1lbnQ6IHRhcmdldERvY3VtZW50LCBjYWxsYmFjaywgY29udGFpbnMgPSBERUZBVUxUX0NPTlRBSU5TLCBwb2xsRHVyYXRpb24gPSAxMDAwLCByZWZzIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHRpbWVvdXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgICBjb25zdCBsaXN0ZW5lciA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpPT57XG4gICAgICAgIGNvbnN0IGlzT3V0c2lkZSA9IHJlZnMuZXZlcnkoKHJlZik9PiFjb250YWlucyhyZWYuY3VycmVudCB8fCBudWxsLCBlLnRhcmdldCkpO1xuICAgICAgICBpZiAoaXNPdXRzaWRlICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgY2FsbGJhY2soZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBBZGRzIGxpc3RlbmVyIHRvIHRoZSBjdXN0b20gaWZyYW1lIGZvY3VzIGV2ZW50XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKEZVSV9GUkFNRV9FVkVOVCwgbGlzdGVuZXIsIHRydWUpO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKEZVSV9GUkFNRV9FVkVOVCwgbGlzdGVuZXIsIHRydWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBsaXN0ZW5lclxuICAgIF0pO1xuICAgIC8vIFN0YXJ0cyBwb2xsaW5nIGZvciB0aGUgYWN0aXZlIGVsZW1lbnRcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgdmFyIF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldztcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGltZW91dFJlZi5jdXJyZW50ID0gdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXcgPSB0YXJnZXREb2N1bWVudC5kZWZhdWx0VmlldykgPT09IG51bGwgfHwgX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXcuc2V0SW50ZXJ2YWwoKCk9PntcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmICgoYWN0aXZlRWxlbWVudCA9PT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVFbGVtZW50LnRhZ05hbWUpID09PSAnSUZSQU1FJyB8fCAoYWN0aXZlRWxlbWVudCA9PT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVFbGVtZW50LnRhZ05hbWUpID09PSAnV0VCVklFVycpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChGVUlfRlJBTUVfRVZFTlQsIHtcbiAgICAgICAgICAgICAgICAgICAgYnViYmxlczogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHBvbGxEdXJhdGlvbik7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgdmFyIF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldztcbiAgICAgICAgICAgIHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3ID0gdGFyZ2V0RG9jdW1lbnQuZGVmYXVsdFZpZXcpID09PSBudWxsIHx8IF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3LmNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBwb2xsRHVyYXRpb25cbiAgICBdKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnLi91c2VFdmVudENhbGxiYWNrJztcbi8qKlxuICogQGludGVybmFsXG4gKiBVdGlsaXR5IHRvIHBlcmZvcm0gY2hlY2tzIHdoZXJlIGEgY2xpY2svdG91Y2ggZXZlbnQgd2FzIG1hZGUgb3V0c2lkZSBhIGNvbXBvbmVudFxuICovIGV4cG9ydCBjb25zdCB1c2VPblNjcm9sbE91dHNpZGUgPSAob3B0aW9ucyk9PntcbiAgICBjb25zdCB7IHJlZnMsIGNhbGxiYWNrLCBlbGVtZW50LCBkaXNhYmxlZCwgY29udGFpbnM6IGNvbnRhaW5zUHJvcCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBsaXN0ZW5lciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2KT0+e1xuICAgICAgICBjb25zdCBjb250YWlucyA9IGNvbnRhaW5zUHJvcCB8fCAoKHBhcmVudCwgY2hpbGQpPT4hIShwYXJlbnQgPT09IG51bGwgfHwgcGFyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJlbnQuY29udGFpbnMoY2hpbGQpKSk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2LmNvbXBvc2VkUGF0aCgpWzBdO1xuICAgICAgICBjb25zdCBpc091dHNpZGUgPSByZWZzLmV2ZXJ5KChyZWYpPT4hY29udGFpbnMocmVmLmN1cnJlbnQgfHwgbnVsbCwgdGFyZ2V0KSk7XG4gICAgICAgIGlmIChpc091dHNpZGUgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhldik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgbGlzdGVuZXIpO1xuICAgICAgICBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgbGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIGxpc3RlbmVyKTtcbiAgICAgICAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBsaXN0ZW5lcik7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBsaXN0ZW5lcixcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgZGlzYWJsZWRcbiAgICBdKTtcbn07XG4iLCJpbXBvcnQgeyB1c2VCcm93c2VyVGltZXIgfSBmcm9tICcuL3VzZUJyb3dzZXJUaW1lcic7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5jb25zdCBzZXRUaW1lb3V0Tm9vcCA9IChfY2FsbGJhY2spPT4tMTtcbmNvbnN0IGNsZWFyVGltZW91dE5vb3AgPSAoX2hhbmRsZSk9PnVuZGVmaW5lZDtcbi8qKlxuICogQGludGVybmFsXG4gKiBIZWxwZXIgdG8gbWFuYWdlIGEgYnJvd3NlciB0aW1lb3V0LlxuICogRW5zdXJlcyB0aGF0IHRoZSB0aW1lb3V0IGlzbid0IHNldCBtdWx0aXBsZSB0aW1lcyBhdCBvbmNlIGFuZCBpcyBjbGVhbmVkIHVwXG4gKiB3aGVuIHRoZSBjb21wb25lbnQgaXMgdW5sb2FkZWQuXG4gKlxuICogQHJldHVybnMgQSBwYWlyIG9mIFtzZXRUaW1lb3V0LCBjbGVhclRpbWVvdXRdIHRoYXQgYXJlIHN0YWJsZSBiZXR3ZWVuIHJlbmRlcnMuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVRpbWVvdXQoKSB7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIGNvbnN0IHNldFRpbWVyRm4gPSB3aW4gPyB3aW4uc2V0VGltZW91dCA6IHNldFRpbWVvdXROb29wO1xuICAgIGNvbnN0IGNsZWFyVGltZXJGbiA9IHdpbiA/IHdpbi5jbGVhclRpbWVvdXQgOiBjbGVhclRpbWVvdXROb29wO1xuICAgIHJldHVybiB1c2VCcm93c2VyVGltZXIoc2V0VGltZXJGbiwgY2xlYXJUaW1lckZuKTtcbn1cbiIsIi8qKlxuICogQGludGVybmFsXG4gKiBGaW5kcyBhbmQgc3dhcHMgYSBwcm92aWRlZCBrZXkgZm9yIGl0J3MgcmlnaHQgdG8gbGVmdCBmb3JtYXQuXG4gKi8gZXhwb3J0IGNvbnN0IGdldFJUTFNhZmVLZXkgPSAoa2V5LCBkaXIpPT57XG4gICAgaWYgKGRpciA9PT0gJ3J0bCcpIHtcbiAgICAgICAgc3dpdGNoKGtleSl7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdBcnJvd1JpZ2h0JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnQXJyb3dMZWZ0JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbn07XG4iLCIvKipcbiAqIEBpbnRlcm5hbFxuICogQ29tYmluZSB0d28gZXZlbnQgY2FsbGJhY2tzIGludG8gYSBzaW5nbGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBjYWxscyBlYWNoIG9uZSBpbiBvcmRlci5cbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogYGBgdHNcbiAqIHN0YXRlLnNsb3Qub25DaGFuZ2UgPSBtZXJnZUNhbGxiYWNrcyhzdGF0ZS5zbG90Lm9uQ2hhbmdlLCBldiA9PiB7XG4gKiAgIC8vIEhhbmRsZSBvbkNoYW5nZVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBUaGUgcHJpbWFyeSB1c2UgaXMgdG8gYXZvaWQgdGhlIG5lZWQgdG8gY2FwdHVyZSBhbiBleGlzdGluZyBjYWxsYmFjayAoYHN0YXRlLnNsb3Qub25DaGFuZ2VgIGluIHRoZSBleGFtcGxlKSB0byBhXG4gKiBsb2NhbCB2YXJpYWJsZSBiZWZvcmUgcmVwbGFjaW5nIHdpdGggYSBuZXcgbGlzdGVuZXIgdGhhdCBjYWxscyB0aGUgZXhpc3Rpbmcgb25lLiBUaGlzIGhlbHBzIGF2b2lkIGJ1Z3MgbGlrZTpcbiAqICogSW5maW5pdGUgcmVjdXJzaW9uIGJ5IGNhbGxpbmcgdGhlIHJlLWFzc2lnbmVkIHN0YXRlLnNsb3Qub25DaGFuZ2UgaWYgaXQncyBub3QgY2FwdHVyZWQgdG8gYSBsb2NhbCB2YXJpYWJsZS5cbiAqICogTWlzc2luZyBhIGNhbGwgdG8gdGhlIG9yaWdpbmFsIG9uQ2hhbmdlIGR1ZSB0byBhbiBlYXJseSByZXR1cm4gb3Igb3RoZXIgY29uZGl0aW9uYWwuXG4gKlxuICogSWYgeW91IG5lZWQgYSBjYWxsYmFjayB0aGF0IGlzIHN0YWJsZSBiZXR3ZWVuIHJlbmRlcnMsIHdyYXAgdGhlIHJlc3VsdCBpbiB7QGxpbmsgdXNlRXZlbnRDYWxsYmFja30uXG4gKlxuICogQHBhcmFtIGNhbGxiYWNrMSAtIFRoZSBmaXJzdCBjYWxsYmFjayB0byBiZSBjYWxsZWQsIG9yIHVuZGVmaW5lZFxuICogQHBhcmFtIGNhbGxiYWNrMiAtIFRoZSBzZWNvbmQgY2FsbGJhY2sgdG8gYmUgY2FsbGVkLCBvciB1bmRlZmluZWRcbiAqXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdGhhdCBjYWxscyB0aGUgcHJvdmlkZWQgZnVuY3Rpb25zIGluIG9yZGVyXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ2FsbGJhY2tzKGNhbGxiYWNrMSwgY2FsbGJhY2syKSB7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICBjYWxsYmFjazEgPT09IG51bGwgfHwgY2FsbGJhY2sxID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYWxsYmFjazEoLi4uYXJncyk7XG4gICAgICAgIGNhbGxiYWNrMiA9PT0gbnVsbCB8fCBjYWxsYmFjazIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbGxiYWNrMiguLi5hcmdzKTtcbiAgICB9O1xufVxuIiwiLyoqXG4gKiBWZXJpZmllcyBpZiBhIGdpdmVuIG5vZGUgaXMgYW4gSFRNTEVsZW1lbnQsXG4gKiB0aGlzIG1ldGhvZCB3b3JrcyBzZWFtbGVzc2x5IHdpdGggZnJhbWVzIGFuZCBlbGVtZW50cyBmcm9tIGRpZmZlcmVudCBkb2N1bWVudHNcbiAqXG4gKiBUaGlzIGlzIHByZWZlcnJlZCBvdmVyIHNpbXBseSB1c2luZyBgaW5zdGFuY2VvZmAuXG4gKiBTaW5jZSBgaW5zdGFuY2VvZmAgbWlnaHQgYmUgcHJvYmxlbWF0aWMgd2hpbGUgb3BlcmF0aW5nIHdpdGggW211bHRpcGxlIHJlYWxtc10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL2luc3RhbmNlb2YjaW5zdGFuY2VvZl9hbmRfbXVsdGlwbGVfcmVhbG1zKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaXNIVE1MRWxlbWVudChldmVudC50YXJnZXQpICYmIGV2ZW50LnRhcmdldC5mb2N1cygpXG4gKiBpc0hUTUxFbGVtZW50KGV2ZW50LnRhcmdldCwge2NvbnN0cnVjdG9yTmFtZTogJ0hUTUxJbnB1dEVsZW1lbnQnfSkgJiYgZXZlbnQudGFyZ2V0LnZhbHVlIC8vIHNvbWUgdmFsdWVcbiAqIGBgYFxuICpcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNIVE1MRWxlbWVudChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgdmFyIF90eXBlZEVsZW1lbnRfb3duZXJEb2N1bWVudDtcbiAgICBjb25zdCB0eXBlZEVsZW1lbnQgPSBlbGVtZW50O1xuICAgIHZhciBfb3B0aW9uc19jb25zdHJ1Y3Rvck5hbWU7XG4gICAgcmV0dXJuIEJvb2xlYW4oKHR5cGVkRWxlbWVudCA9PT0gbnVsbCB8fCB0eXBlZEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfdHlwZWRFbGVtZW50X293bmVyRG9jdW1lbnQgPSB0eXBlZEVsZW1lbnQub3duZXJEb2N1bWVudCkgPT09IG51bGwgfHwgX3R5cGVkRWxlbWVudF9vd25lckRvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHlwZWRFbGVtZW50X293bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpICYmIHR5cGVkRWxlbWVudCBpbnN0YW5jZW9mIHR5cGVkRWxlbWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Wyhfb3B0aW9uc19jb25zdHJ1Y3Rvck5hbWUgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuY29uc3RydWN0b3JOYW1lKSAhPT0gbnVsbCAmJiBfb3B0aW9uc19jb25zdHJ1Y3Rvck5hbWUgIT09IHZvaWQgMCA/IF9vcHRpb25zX2NvbnN0cnVjdG9yTmFtZSA6ICdIVE1MRWxlbWVudCddKTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogQGludGVybmFsXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBlbGVtZW50IGlzIGEgRmx1ZW50VUkgdHJpZ2dlciAoZS5nLiBgTWVudVRyaWdnZXJgIG9yIGBUb29sdGlwYCkuXG4gKiBTZWUgdGhlIHtAbGluayBGbHVlbnRUcmlnZ2VyQ29tcG9uZW50fSB0eXBlIGZvciBtb3JlIGluZm8uXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzRmx1ZW50VHJpZ2dlcihlbGVtZW50KSB7XG4gICAgcmV0dXJuIEJvb2xlYW4oZWxlbWVudC50eXBlLmlzRmx1ZW50VHJpZ2dlckNvbXBvbmVudCk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0ZsdWVudFRyaWdnZXIgfSBmcm9tICcuL2lzRmx1ZW50VHJpZ2dlcic7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogcmVzb2x2ZSB0aGUgdHJpZ2dlciBwcm9wcyB0byB0aGUgY2hpbGRyZW4sIGVpdGhlciBieSBjYWxsaW5nIHRoZSByZW5kZXIgZnVuY3Rpb24sIG9yIGNsb25pbmcgd2l0aCB0aGUgbmV3IHByb3BzLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhcHBseVRyaWdnZXJQcm9wc1RvQ2hpbGRyZW4oY2hpbGRyZW4sIHRyaWdnZXJDaGlsZFByb3BzKSB7XG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4odHJpZ2dlckNoaWxkUHJvcHMpO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIGNsb25lVHJpZ2dlclRyZWUoY2hpbGRyZW4sIHRyaWdnZXJDaGlsZFByb3BzKTtcbiAgICB9XG4gICAgLy8gQ29tcG9uZW50cyBpbiBSZWFjdCBzaG91bGQgcmV0dXJuIGVpdGhlciBKU1ggZWxlbWVudHMgb3IgXCJudWxsXCIsIG90aGVyd2lzZSBSZWFjdCB3aWxsIHRocm93OlxuICAgIC8vICAgTm90aGluZyB3YXMgcmV0dXJuZWQgZnJvbSByZW5kZXIuXG4gICAgLy8gICBUaGlzIHVzdWFsbHkgbWVhbnMgYSByZXR1cm4gc3RhdGVtZW50IGlzIG1pc3NpbmcuIE9yLCB0byByZW5kZXIgbm90aGluZywgcmV0dXJuIG51bGwuXG4gICAgcmV0dXJuIGNoaWxkcmVuIHx8IG51bGw7XG59XG4vKipcbiAqIENsb25lcyBhIFJlYWN0IGVsZW1lbnQgdHJlZSwgYW5kIGFwcGxpZXMgdGhlIGdpdmVuIHByb3BzIHRvIHRoZSBmaXJzdCBncmFuZGNoaWxkIHRoYXQgaXMgbm90XG4gKiBhIEZsdWVudFRyaWdnZXJDb21wb25lbnQgb3IgUmVhY3QgRnJhZ21lbnQgKHRoZSBzYW1lIGVsZW1lbnQgcmV0dXJuZWQgYnkge0BsaW5rIGdldFRyaWdnZXJDaGlsZH0pLlxuICovIGZ1bmN0aW9uIGNsb25lVHJpZ2dlclRyZWUoY2hpbGQsIHRyaWdnZXJQcm9wcykge1xuICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpIHx8IGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQSB0cmlnZ2VyIGVsZW1lbnQgbXVzdCBiZSBhIHNpbmdsZSBlbGVtZW50IGZvciB0aGlzIGNvbXBvbmVudC4gJyArIFwiUGxlYXNlIGVuc3VyZSB0aGF0IHlvdSdyZSBub3QgdXNpbmcgUmVhY3QgRnJhZ21lbnRzLlwiKTtcbiAgICB9XG4gICAgaWYgKGlzRmx1ZW50VHJpZ2dlcihjaGlsZCkpIHtcbiAgICAgICAgY29uc3QgZ3JhbmRjaGlsZCA9IGNsb25lVHJpZ2dlclRyZWUoY2hpbGQucHJvcHMuY2hpbGRyZW4sIHRyaWdnZXJQcm9wcyk7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHVuZGVmaW5lZCwgZ3JhbmRjaGlsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgdHJpZ2dlclByb3BzKTtcbiAgICB9XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0ZsdWVudFRyaWdnZXIgfSBmcm9tICcuL2lzRmx1ZW50VHJpZ2dlcic7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogR2V0cyB0aGUgdHJpZ2dlciBlbGVtZW50IG9mIGEgRmx1ZW50VHJpZ2dlckNvbXBvbmVudCAoc3VjaCBhcyBUb29sdGlwIG9yIE1lbnVUcmlnZ2VyKS5cbiAqXG4gKiBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgaW1tZWRpYXRlIGNoaWxkIGlzIGl0c2VsZiBhIEZsdWVudFRyaWdnZXJDb21wb25lbnQgYW5kL29yIFJlYWN0IEZyYWdtZW50LFxuICogaXQgcmV0dXJucyB0aGUgZmlyc3QgZGVzY2VuZGFudCB0aGF0IGlzIF9ub3RfIGEgRmx1ZW50VHJpZ2dlckNvbXBvbmVudCBvciBGcmFnbWVudC5cbiAqIFRoaXMgYWxsb3dzIG11bHRpcGxlIHRyaWdnZXJzIHRvIGJlIHN0YWNrZWQsIGFuZCBzdGlsbCBhcHBseSB0aGVpciBwcm9wcyB0byB0aGUgYWN0dWFsIHRyaWdnZXIgZWxlbWVudC5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyByZXR1cm5zIGA8ZGl2IGlkPVwiY2hpbGRcIiAvPmA6XG4gKiBgYGBqc3hcbiAqIGdldFRyaWdnZXJDaGlsZChcbiAqICAgPFRvb2x0aXA+XG4gKiAgICAgPE1lbnVUcmlnZ2VyPlxuICogICAgICAgPGRpdiBpZD1cImNoaWxkXCIgLz5cbiAqICAgICA8L01lbnVUcmlnZ2VyPlxuICogICA8L1Rvb2x0aXA+XG4gKiApO1xuICogYGBgXG4gKlxuICogSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGltbWVkaWF0ZSBjaGlsZCBpcyBub3QgYSB2YWxpZCBlbGVtZW50LFxuICogbnVsbCBpcyByZXR1cm5lZFxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRUcmlnZ2VyQ2hpbGQoY2hpbGRyZW4pIHtcbiAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGlzRmx1ZW50VHJpZ2dlcihjaGlsZHJlbikgPyBnZXRUcmlnZ2VyQ2hpbGQoLy8gRklYTUU6IFRoaXMgY2FzdGluZyBzaG91bGQgYmUgdW5uZWNlc3NhcnkgYXMgaXNGbHVlbnRUcmlnZ2VyIGlzIGEgZ3VhcmQgdHlwZSBtZXRob2QsXG4gICAgLy8gYnV0IGZvciBzb21lIHJlYXNvbiBpdCdzIGZhaWxpbmcgb24gYnVpbGRcbiAgICBjaGlsZHJlbi5wcm9wcy5jaGlsZHJlbikgOiBjaGlsZHJlbjtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIGV2ZW50IGlzIGEgdG91Y2ggZXZlbnQuIFVzZWZ1bCB3aGVuIHNoYXJpbmcgbG9naWMgYmV0d2VlbiB0b3VjaCBhbmQgbW91c2UgaW50ZXJhY3Rpb25zLlxuICovIGV4cG9ydCBmdW5jdGlvbiBpc1RvdWNoRXZlbnQoZXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQudHlwZS5zdGFydHNXaXRoKCd0b3VjaCcpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgZXZlbnQgaXMgYSBtb3VzZSBldmVudC4gVXNlZnVsIHdoZW4gc2hhcmluZyBsb2dpYyBiZXR3ZWVuIHRvdWNoIGFuZCBtb3VzZSBpbnRlcmFjdGlvbnMuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzTW91c2VFdmVudChldmVudCkge1xuICAgIHJldHVybiBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ21vdXNlJykgfHwgW1xuICAgICAgICAnY2xpY2snLFxuICAgICAgICAnY29udGV4dG1lbnUnLFxuICAgICAgICAnZGJsY2xpY2snXG4gICAgXS5pbmRleE9mKGV2ZW50LnR5cGUpID4gLTE7XG59XG4vKipcbiAqIFJldHVybnMgYW4gb2JqZWN0IHdpdGggY2xpZW50WCwgY2xpZW50WSBmb3IgVG91Y2hPck1vdXNlRXZlbnQuXG4gKiBSZXR1cm5zIHplcm9zIGluIGNhc2UgdGhlIGV2ZW50IGlzIG5vdCBhIG1vdXNlIG9yIGEgdG91Y2ggZXZlbnQuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50Q2xpZW50Q29vcmRzKGV2ZW50KSB7XG4gICAgaWYgKGlzTW91c2VFdmVudChldmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNsaWVudFg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICBjbGllbnRZOiBldmVudC5jbGllbnRZXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjbGllbnRYOiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICBjbGllbnRZOiBldmVudC50b3VjaGVzWzBdLmNsaWVudFlcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzXTogVW5hYmxlIHRvIGdldCBjbGllbnRYLiBVbmtub3duIGV2ZW50IHR5cGUuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNsaWVudFg6IDAsXG4gICAgICAgICAgICBjbGllbnRZOiAwXG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBDcmVhdGVzIGEgc2V0IGZyb20gYSBnaXZlbiBpdGVyYWJsZSwgaW4gY2FzZSB0aGUgaXRlcmFibGUgaXMgYSBzZXQgaXRzZWxmLCByZXR1cm5zIHRoZSBnaXZlbiBzZXQgaW5zdGVhZC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlU2V0RnJvbUl0ZXJhYmxlKGl0ZXJhYmxlKSB7XG4gICAgcmV0dXJuIGl0ZXJhYmxlIGluc3RhbmNlb2YgU2V0ID8gaXRlcmFibGUgOiBuZXcgU2V0KGl0ZXJhYmxlKTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnLi4vaG9va3MvdXNlQ29udHJvbGxhYmxlU3RhdGUnO1xuaW1wb3J0IHsgY3JlYXRlU2V0RnJvbUl0ZXJhYmxlIH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlU2V0RnJvbUl0ZXJhYmxlJztcbmZ1bmN0aW9uIHVzZVNlbGVjdGlvblN0YXRlKHBhcmFtcykge1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBpbml0aWFsU3RhdGU6IG5ldyBTZXQoKSxcbiAgICAgICAgZGVmYXVsdFN0YXRlOiBSZWFjdC51c2VNZW1vKCgpPT5wYXJhbXMuZGVmYXVsdFNlbGVjdGVkSXRlbXMgJiYgY3JlYXRlU2V0RnJvbUl0ZXJhYmxlKHBhcmFtcy5kZWZhdWx0U2VsZWN0ZWRJdGVtcyksIFtcbiAgICAgICAgICAgIHBhcmFtcy5kZWZhdWx0U2VsZWN0ZWRJdGVtc1xuICAgICAgICBdKSxcbiAgICAgICAgc3RhdGU6IFJlYWN0LnVzZU1lbW8oKCk9PnBhcmFtcy5zZWxlY3RlZEl0ZW1zICYmIGNyZWF0ZVNldEZyb21JdGVyYWJsZShwYXJhbXMuc2VsZWN0ZWRJdGVtcyksIFtcbiAgICAgICAgICAgIHBhcmFtcy5zZWxlY3RlZEl0ZW1zXG4gICAgICAgIF0pXG4gICAgfSk7XG4gICAgY29uc3QgY2hhbmdlU2VsZWN0aW9uID0gKGV2ZW50LCBuZXh0U2VsZWN0ZWRJdGVtcyk9PntcbiAgICAgICAgdmFyIF9wYXJhbXNfb25TZWxlY3Rpb25DaGFuZ2U7XG4gICAgICAgIChfcGFyYW1zX29uU2VsZWN0aW9uQ2hhbmdlID0gcGFyYW1zLm9uU2VsZWN0aW9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfcGFyYW1zX29uU2VsZWN0aW9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcGFyYW1zX29uU2VsZWN0aW9uQ2hhbmdlLmNhbGwocGFyYW1zLCBldmVudCwge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtczogbmV4dFNlbGVjdGVkSXRlbXNcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFNlbGVjdGVkKG5leHRTZWxlY3RlZEl0ZW1zKTtcbiAgICB9O1xuICAgIHJldHVybiBbXG4gICAgICAgIHNlbGVjdGVkLFxuICAgICAgICBjaGFuZ2VTZWxlY3Rpb25cbiAgICBdO1xufVxuZnVuY3Rpb24gdXNlU2luZ2xlU2VsZWN0aW9uKHBhcmFtcykge1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgY2hhbmdlU2VsZWN0aW9uXSA9IHVzZVNlbGVjdGlvblN0YXRlKHBhcmFtcyk7XG4gICAgY29uc3QgbWV0aG9kcyA9IHtcbiAgICAgICAgZGVzZWxlY3RJdGVtOiAoZXZlbnQpPT5jaGFuZ2VTZWxlY3Rpb24oZXZlbnQsIG5ldyBTZXQoKSksXG4gICAgICAgIHNlbGVjdEl0ZW06IChldmVudCwgaXRlbUlkKT0+Y2hhbmdlU2VsZWN0aW9uKGV2ZW50LCBuZXcgU2V0KFtcbiAgICAgICAgICAgICAgICBpdGVtSWRcbiAgICAgICAgICAgIF0pKSxcbiAgICAgICAgdG9nZ2xlQWxsSXRlbXM6ICgpPT57XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW3JlYWN0LXV0aWxpdGllc106IGB0b2dnbGVBbGxJdGVtc2Agc2hvdWxkIG5vdCBiZSB1c2VkIGluIHNpbmdsZSBzZWxlY3Rpb24gbW9kZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0b2dnbGVJdGVtOiAoZXZlbnQsIGl0ZW1JZCk9PmNoYW5nZVNlbGVjdGlvbihldmVudCwgbmV3IFNldChbXG4gICAgICAgICAgICAgICAgaXRlbUlkXG4gICAgICAgICAgICBdKSksXG4gICAgICAgIGNsZWFySXRlbXM6IChldmVudCk9PmNoYW5nZVNlbGVjdGlvbihldmVudCwgbmV3IFNldCgpKSxcbiAgICAgICAgaXNTZWxlY3RlZDogKGl0ZW1JZCk9PntcbiAgICAgICAgICAgIHZhciBfc2VsZWN0ZWRfaGFzO1xuICAgICAgICAgICAgcmV0dXJuIChfc2VsZWN0ZWRfaGFzID0gc2VsZWN0ZWQuaGFzKGl0ZW1JZCkpICE9PSBudWxsICYmIF9zZWxlY3RlZF9oYXMgIT09IHZvaWQgMCA/IF9zZWxlY3RlZF9oYXMgOiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFtcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIG1ldGhvZHNcbiAgICBdO1xufVxuZnVuY3Rpb24gdXNlTXVsdGlwbGVTZWxlY3Rpb24ocGFyYW1zKSB7XG4gICAgY29uc3QgW3NlbGVjdGVkLCBjaGFuZ2VTZWxlY3Rpb25dID0gdXNlU2VsZWN0aW9uU3RhdGUocGFyYW1zKTtcbiAgICBjb25zdCBtZXRob2RzID0ge1xuICAgICAgICB0b2dnbGVJdGVtOiAoZXZlbnQsIGl0ZW1JZCk9PntcbiAgICAgICAgICAgIGNvbnN0IG5leHRTZWxlY3RlZEl0ZW1zID0gbmV3IFNldChzZWxlY3RlZCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQuaGFzKGl0ZW1JZCkpIHtcbiAgICAgICAgICAgICAgICBuZXh0U2VsZWN0ZWRJdGVtcy5kZWxldGUoaXRlbUlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFNlbGVjdGVkSXRlbXMuYWRkKGl0ZW1JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaGFuZ2VTZWxlY3Rpb24oZXZlbnQsIG5leHRTZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0SXRlbTogKGV2ZW50LCBpdGVtSWQpPT57XG4gICAgICAgICAgICBjb25zdCBuZXh0U2VsZWN0ZWRJdGVtcyA9IG5ldyBTZXQoc2VsZWN0ZWQpO1xuICAgICAgICAgICAgbmV4dFNlbGVjdGVkSXRlbXMuYWRkKGl0ZW1JZCk7XG4gICAgICAgICAgICBjaGFuZ2VTZWxlY3Rpb24oZXZlbnQsIG5leHRTZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVzZWxlY3RJdGVtOiAoZXZlbnQsIGl0ZW1JZCk9PntcbiAgICAgICAgICAgIGNvbnN0IG5leHRTZWxlY3RlZEl0ZW1zID0gbmV3IFNldChzZWxlY3RlZCk7XG4gICAgICAgICAgICBuZXh0U2VsZWN0ZWRJdGVtcy5kZWxldGUoaXRlbUlkKTtcbiAgICAgICAgICAgIGNoYW5nZVNlbGVjdGlvbihldmVudCwgbmV4dFNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9LFxuICAgICAgICBjbGVhckl0ZW1zOiAoZXZlbnQpPT57XG4gICAgICAgICAgICBjaGFuZ2VTZWxlY3Rpb24oZXZlbnQsIG5ldyBTZXQoKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGlzU2VsZWN0ZWQ6IChpdGVtSWQpPT5zZWxlY3RlZC5oYXMoaXRlbUlkKSxcbiAgICAgICAgdG9nZ2xlQWxsSXRlbXM6IChldmVudCwgaXRlbUlkcyk9PntcbiAgICAgICAgICAgIGNvbnN0IGFsbEl0ZW1zU2VsZWN0ZWQgPSBpdGVtSWRzLmV2ZXJ5KChpdGVtSWQpPT5zZWxlY3RlZC5oYXMoaXRlbUlkKSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2VsZWN0ZWRJdGVtcyA9IG5ldyBTZXQoc2VsZWN0ZWQpO1xuICAgICAgICAgICAgaWYgKGFsbEl0ZW1zU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBuZXh0U2VsZWN0ZWRJdGVtcy5jbGVhcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtSWRzLmZvckVhY2goKGl0ZW1JZCk9Pm5leHRTZWxlY3RlZEl0ZW1zLmFkZChpdGVtSWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoYW5nZVNlbGVjdGlvbihldmVudCwgbmV4dFNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gW1xuICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgbWV0aG9kc1xuICAgIF07XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0aW9uKHBhcmFtcykge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgaWYgKHBhcmFtcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlzZWxlY3QnKSB7XG4gICAgICAgIC8vIHNlbGVjdGlvbk1vZGUgaXMgYSBzdGF0aWMgdmFsdWUsIHNvIHdlIGNhbiBzYWZlbHkgaWdub3JlIHJ1bGVzLW9mLWhvb2tzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICByZXR1cm4gdXNlTXVsdGlwbGVTZWxlY3Rpb24ocGFyYW1zKTtcbiAgICB9XG4gICAgLy8gc2VsZWN0aW9uTW9kZSBpcyBhIHN0YXRpYyB2YWx1ZSwgc28gd2UgY2FuIHNhZmVseSBpZ25vcmUgcnVsZXMtb2YtaG9va3NcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICByZXR1cm4gdXNlU2luZ2xlU2VsZWN0aW9uKHBhcmFtcyk7XG59XG4iLCIvKipcbiAqIERldGVybWluZXMgd2hldGhlciBvciBub3QgYW4gZWxlbWVudCBoYXMgdGhlIHZpcnR1YWwgaGllcmFyY2h5IGV4dGVuc2lvbi5cbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBmdW5jdGlvbiBpc1ZpcnR1YWxFbGVtZW50KGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudCAmJiAhIWVsZW1lbnQuX3ZpcnR1YWw7XG59XG4iLCJpbXBvcnQgeyBpc1ZpcnR1YWxFbGVtZW50IH0gZnJvbSAnLi9pc1ZpcnR1YWxFbGVtZW50Jztcbi8qKlxuICogR2V0cyB0aGUgdmlydHVhbCBwYXJlbnQgZ2l2ZW4gdGhlIGNoaWxkIGVsZW1lbnQsIGlmIGl0IGV4aXN0cy5cbiAqIEBpbnRlcm5hbFxuICovIGZ1bmN0aW9uIGdldFZpcnR1YWxQYXJlbnQoY2hpbGQpIHtcbiAgICByZXR1cm4gaXNWaXJ0dWFsRWxlbWVudChjaGlsZCkgPyBjaGlsZC5fdmlydHVhbC5wYXJlbnQgfHwgbnVsbCA6IG51bGw7XG59XG4vKipcbiAqIEdldHMgdGhlIGVsZW1lbnQgd2hpY2ggaXMgdGhlIHBhcmVudCBvZiBhIGdpdmVuIGVsZW1lbnQuXG4gKiBUaGlzIG1ldGhvZCBwcmVmZXJzIHRoZSB2aXJ0dWFsIHBhcmVudCBvdmVyIHJlYWwgRE9NIHBhcmVudCB3aGVuIHByZXNlbnQuXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0UGFyZW50KGNoaWxkLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIWNoaWxkKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2tpcFZpcnR1YWwpIHtcbiAgICAgICAgY29uc3QgdmlydHVhbFBhcmVudCA9IGdldFZpcnR1YWxQYXJlbnQoY2hpbGQpO1xuICAgICAgICBpZiAodmlydHVhbFBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHZpcnR1YWxQYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGFyZW50ID0gY2hpbGQucGFyZW50Tm9kZTtcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiBwYXJlbnQuaG9zdDtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudDtcbn1cbiIsImltcG9ydCB7IGdldFBhcmVudCB9IGZyb20gJy4vZ2V0UGFyZW50Jztcbi8qKlxuICogU2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIGBlbGVtZW50LmNvbnRhaW5zYCBET00gQVBJIGZvciB1c2Ugd2l0aG91dCBvZiBvcmRlciBET00gZWxlbWVudHMgdGhhdFxuICogY2hlY2tzIHRoZSB2aXJ0dWFsIHBhcmVudCBoaWVyYXJjaHkuIElmIGEgdmlydHVhbCBwYXJlbnRzIGV4aXN0cywgaXQgaXMgY2hvc2VuIG92ZXIgdGhlIGFjdHVhbCBwYXJlbnRcbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGNhbiBmaW5kIHRoZSBwYXJlbnQgaW4gaXRzIHZpcnR1YWwgaGllcmFyY2h5XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRDb250YWlucyhwYXJlbnQsIGNoaWxkKSB7XG4gICAgaWYgKCFwYXJlbnQgfHwgIWNoaWxkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHBhcmVudCA9PT0gY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVHJhY2tzIHJlZmVyZW5jZXMgb2Ygbm9kZXMgdGhhdCBoYXZlIGJlZW4gdmlzaXRlZCB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzXG4gICAgICAgIGNvbnN0IHNldCA9IG5ldyBXZWFrU2V0KCk7XG4gICAgICAgIHdoaWxlKGNoaWxkKXtcbiAgICAgICAgICAgIGNvbnN0IG5leHRQYXJlbnQgPSBnZXRQYXJlbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICBza2lwVmlydHVhbDogc2V0LmhhcyhjaGlsZClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0LmFkZChjaGlsZCk7XG4gICAgICAgICAgICBpZiAobmV4dFBhcmVudCA9PT0gcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaGlsZCA9IG5leHRQYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIiwiLyoqXG4gKiBTZXRzIHRoZSB2aXJ0dWFsIHBhcmVudCBvZiBhbiBlbGVtZW50LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIGNoaWxkIC0gVGhlbWUgZWxlbWVudCB0byBzZXQgdGhlIHZpcnR1YWwgcGFyZW50XG4gKiBAcGFyYW0gcGFyZW50IC0gVGhlIHZpcnR1YWwgcGFyZW50LCB1c2UgYHVuZGVmaW5lZGAgdG8gcmVtb3ZlIGEgdmlydHVhbCBwYXJlbnQgcmVsYXRpb25zaGlwXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHNldFZpcnR1YWxQYXJlbnQoY2hpbGQsIHBhcmVudCkge1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2aXJ0dWFsQ2hpbGQgPSBjaGlsZDtcbiAgICBpZiAoIXZpcnR1YWxDaGlsZC5fdmlydHVhbCkge1xuICAgICAgICB2aXJ0dWFsQ2hpbGQuX3ZpcnR1YWwgPSB7fTtcbiAgICB9XG4gICAgdmlydHVhbENoaWxkLl92aXJ0dWFsLnBhcmVudCA9IHBhcmVudDtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLy8gVE9ETzpcbi8vIHRoaXMgaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZ2V0U2xvdHNOZXh0XG4vLyBpdCBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIGdldFNsb3RzTmV4dCBpcyBvYnNvbGV0ZVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbXBhdFNsb3RDb21wb25lbnQodHlwZSwgcHJvcHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgW1NMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTF06IHR5cGVcbiAgICB9O1xufVxuIiwiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYj02MDEwMyxjPTYwMTA2LGQ9NjAxMDcsZT02MDEwOCxmPTYwMTE0LGc9NjAxMDksaD02MDExMCxrPTYwMTEyLGw9NjAxMTMsbT02MDEyMCxuPTYwMTE1LHA9NjAxMTYscT02MDEyMSxyPTYwMTIyLHU9NjAxMTcsdj02MDEyOSx3PTYwMTMxO1xuaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIHg9U3ltYm9sLmZvcjtiPXgoXCJyZWFjdC5lbGVtZW50XCIpO2M9eChcInJlYWN0LnBvcnRhbFwiKTtkPXgoXCJyZWFjdC5mcmFnbWVudFwiKTtlPXgoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTtmPXgoXCJyZWFjdC5wcm9maWxlclwiKTtnPXgoXCJyZWFjdC5wcm92aWRlclwiKTtoPXgoXCJyZWFjdC5jb250ZXh0XCIpO2s9eChcInJlYWN0LmZvcndhcmRfcmVmXCIpO2w9eChcInJlYWN0LnN1c3BlbnNlXCIpO209eChcInJlYWN0LnN1c3BlbnNlX2xpc3RcIik7bj14KFwicmVhY3QubWVtb1wiKTtwPXgoXCJyZWFjdC5sYXp5XCIpO3E9eChcInJlYWN0LmJsb2NrXCIpO3I9eChcInJlYWN0LnNlcnZlci5ibG9ja1wiKTt1PXgoXCJyZWFjdC5mdW5kYW1lbnRhbFwiKTt2PXgoXCJyZWFjdC5kZWJ1Z190cmFjZV9tb2RlXCIpO3c9eChcInJlYWN0LmxlZ2FjeV9oaWRkZW5cIil9XG5mdW5jdGlvbiB5KGEpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpe3ZhciB0PWEuJCR0eXBlb2Y7c3dpdGNoKHQpe2Nhc2UgYjpzd2l0Y2goYT1hLnR5cGUsYSl7Y2FzZSBkOmNhc2UgZjpjYXNlIGU6Y2FzZSBsOmNhc2UgbTpyZXR1cm4gYTtkZWZhdWx0OnN3aXRjaChhPWEmJmEuJCR0eXBlb2YsYSl7Y2FzZSBoOmNhc2UgazpjYXNlIHA6Y2FzZSBuOmNhc2UgZzpyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB0fX1jYXNlIGM6cmV0dXJuIHR9fX12YXIgej1nLEE9YixCPWssQz1kLEQ9cCxFPW4sRj1jLEc9ZixIPWUsST1sO2V4cG9ydHMuQ29udGV4dENvbnN1bWVyPWg7ZXhwb3J0cy5Db250ZXh0UHJvdmlkZXI9ejtleHBvcnRzLkVsZW1lbnQ9QTtleHBvcnRzLkZvcndhcmRSZWY9QjtleHBvcnRzLkZyYWdtZW50PUM7ZXhwb3J0cy5MYXp5PUQ7ZXhwb3J0cy5NZW1vPUU7ZXhwb3J0cy5Qb3J0YWw9RjtleHBvcnRzLlByb2ZpbGVyPUc7ZXhwb3J0cy5TdHJpY3RNb2RlPUg7XG5leHBvcnRzLlN1c3BlbnNlPUk7ZXhwb3J0cy5pc0FzeW5jTW9kZT1mdW5jdGlvbigpe3JldHVybiExfTtleHBvcnRzLmlzQ29uY3VycmVudE1vZGU9ZnVuY3Rpb24oKXtyZXR1cm4hMX07ZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lcj1mdW5jdGlvbihhKXtyZXR1cm4geShhKT09PWh9O2V4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSk9PT1nfTtleHBvcnRzLmlzRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09Yn07ZXhwb3J0cy5pc0ZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSk9PT1rfTtleHBvcnRzLmlzRnJhZ21lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSk9PT1kfTtleHBvcnRzLmlzTGF6eT1mdW5jdGlvbihhKXtyZXR1cm4geShhKT09PXB9O2V4cG9ydHMuaXNNZW1vPWZ1bmN0aW9uKGEpe3JldHVybiB5KGEpPT09bn07XG5leHBvcnRzLmlzUG9ydGFsPWZ1bmN0aW9uKGEpe3JldHVybiB5KGEpPT09Y307ZXhwb3J0cy5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGEpe3JldHVybiB5KGEpPT09Zn07ZXhwb3J0cy5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSk9PT1lfTtleHBvcnRzLmlzU3VzcGVuc2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSk9PT1sfTtleHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZT1mdW5jdGlvbihhKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGF8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhfHxhPT09ZHx8YT09PWZ8fGE9PT12fHxhPT09ZXx8YT09PWx8fGE9PT1tfHxhPT09d3x8XCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmKGEuJCR0eXBlb2Y9PT1wfHxhLiQkdHlwZW9mPT09bnx8YS4kJHR5cGVvZj09PWd8fGEuJCR0eXBlb2Y9PT1ofHxhLiQkdHlwZW9mPT09a3x8YS4kJHR5cGVvZj09PXV8fGEuJCR0eXBlb2Y9PT1xfHxhWzBdPT09cik/ITA6ITF9O1xuZXhwb3J0cy50eXBlT2Y9eTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiaW1wb3J0IHsgaXNTbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb21wYXRTbG90Q29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlQ29tcGF0U2xvdENvbXBvbmVudCc7XG5pbXBvcnQgeyB3YXJuSWZFbGVtZW50VHlwZUlzSW52YWxpZCB9IGZyb20gJy4uL3V0aWxzL3dhcm5JZkVsZW1lbnRUeXBlSXNJbnZhbGlkJztcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKU1gocnVudGltZSwgc2xvdFJ1bnRpbWUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24ganN4KHR5cGUsIG92ZXJyaWRlUHJvcHMsIGtleSwgc291cmNlLCBzZWxmKSB7XG4gICAgICAgIC8vIFRPRE86XG4gICAgICAgIC8vIHRoaXMgaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZ2V0U2xvdHNOZXh0XG4gICAgICAgIC8vIGl0IHNob3VsZCBiZSByZW1vdmVkIG9uY2UgZ2V0U2xvdHNOZXh0IGlzIG9ic29sZXRlXG4gICAgICAgIGlmIChpc1Nsb3Qob3ZlcnJpZGVQcm9wcykpIHtcbiAgICAgICAgICAgIHJldHVybiBzbG90UnVudGltZShjcmVhdGVDb21wYXRTbG90Q29tcG9uZW50KHR5cGUsIG92ZXJyaWRlUHJvcHMpLCBudWxsLCBrZXksIHNvdXJjZSwgc2VsZik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzU2xvdCh0eXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNsb3RSdW50aW1lKHR5cGUsIG92ZXJyaWRlUHJvcHMsIGtleSwgc291cmNlLCBzZWxmKTtcbiAgICAgICAgfVxuICAgICAgICB3YXJuSWZFbGVtZW50VHlwZUlzSW52YWxpZCh0eXBlKTtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWUodHlwZSwgb3ZlcnJpZGVQcm9wcywga2V5LCBzb3VyY2UsIHNlbGYpO1xuICAgIH07XG59XG4iLCJpbXBvcnQgeyBTTE9UX0VMRU1FTlRfVFlQRV9TWU1CT0wsIFNMT1RfUkVOREVSX0ZVTkNUSU9OX1NZTUJPTCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0TWV0YWRhdGFGcm9tU2xvdENvbXBvbmVudCh0eXBlKSB7XG4gICAgY29uc3QgeyBhcywgW1NMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTF06IGJhc2VFbGVtZW50VHlwZSwgW1NMT1RfUkVOREVSX0ZVTkNUSU9OX1NZTUJPTF06IHJlbmRlckZ1bmN0aW9uLCAuLi5wcm9wc1dpdGhvdXRNZXRhZGF0YSB9ID0gdHlwZTtcbiAgICBjb25zdCBwcm9wcyA9IHByb3BzV2l0aG91dE1ldGFkYXRhO1xuICAgIGNvbnN0IGVsZW1lbnRUeXBlID0gdHlwZW9mIGJhc2VFbGVtZW50VHlwZSA9PT0gJ3N0cmluZycgPyBhcyAhPT0gbnVsbCAmJiBhcyAhPT0gdm9pZCAwID8gYXMgOiBiYXNlRWxlbWVudFR5cGUgOiBiYXNlRWxlbWVudFR5cGU7XG4gICAgaWYgKHR5cGVvZiBlbGVtZW50VHlwZSAhPT0gJ3N0cmluZycgJiYgYXMpIHtcbiAgICAgICAgcHJvcHMuYXMgPSBhcztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZWxlbWVudFR5cGUsXG4gICAgICAgIHByb3BzLFxuICAgICAgICByZW5kZXJGdW5jdGlvblxuICAgIH07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdFJ1bnRpbWUgZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuZXhwb3J0IGNvbnN0IFJ1bnRpbWUgPSBSZWFjdFJ1bnRpbWU7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRNZXRhZGF0YUZyb21TbG90Q29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbHMvZ2V0TWV0YWRhdGFGcm9tU2xvdENvbXBvbmVudCc7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSAnLi4vdXRpbHMvUnVudGltZSc7XG5leHBvcnQgY29uc3QganN4U2xvdCA9ICh0eXBlLCBvdmVycmlkZVByb3BzLCBrZXkpPT57XG4gICAgY29uc3QgeyBlbGVtZW50VHlwZSwgcmVuZGVyRnVuY3Rpb24sIHByb3BzOiBzbG90UHJvcHMgfSA9IGdldE1ldGFkYXRhRnJvbVNsb3RDb21wb25lbnQodHlwZSk7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIC4uLnNsb3RQcm9wcyxcbiAgICAgICAgLi4ub3ZlcnJpZGVQcm9wc1xuICAgIH07XG4gICAgaWYgKHJlbmRlckZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBSdW50aW1lLmpzeChSZWFjdC5GcmFnbWVudCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IHJlbmRlckZ1bmN0aW9uKGVsZW1lbnRUeXBlLCBwcm9wcylcbiAgICAgICAgfSwga2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIFJ1bnRpbWUuanN4KGVsZW1lbnRUeXBlLCBwcm9wcywga2V5KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRNZXRhZGF0YUZyb21TbG90Q29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbHMvZ2V0TWV0YWRhdGFGcm9tU2xvdENvbXBvbmVudCc7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSAnLi4vdXRpbHMvUnVudGltZSc7XG5leHBvcnQgY29uc3QganN4c1Nsb3QgPSAodHlwZSwgb3ZlcnJpZGVQcm9wcywga2V5KT0+e1xuICAgIGNvbnN0IHsgZWxlbWVudFR5cGUsIHJlbmRlckZ1bmN0aW9uLCBwcm9wczogc2xvdFByb3BzIH0gPSBnZXRNZXRhZGF0YUZyb21TbG90Q29tcG9uZW50KHR5cGUpO1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAuLi5zbG90UHJvcHMsXG4gICAgICAgIC4uLm92ZXJyaWRlUHJvcHNcbiAgICB9O1xuICAgIGlmIChyZW5kZXJGdW5jdGlvbikge1xuICAgICAgICAvKipcbiAgICAgKiBJbiBzdGF0aWMgcnVudGltZSB0aGVuIGNoaWxkcmVuIGlzIGFuIGFycmF5IGFuZCB0aGlzIGFycmF5IHdvbid0IGJlIGtleWVkLlxuICAgICAqIFdlIHNob3VsZCB3cmFwIGNoaWxkcmVuIGJ5IGEgc3RhdGljIGZyYWdtZW50XG4gICAgICogYXMgdGhlcmUncyBubyB3YXkgdG8ga25vdyBpZiByZW5kZXJGdW5jdGlvbiB3aWxsIHJlbmRlciBzdGF0aWNhbGx5IG9yIGR5bmFtaWNhbGx5XG4gICAgICovIHJldHVybiBSdW50aW1lLmpzeChSZWFjdC5GcmFnbWVudCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IHJlbmRlckZ1bmN0aW9uKGVsZW1lbnRUeXBlLCB7XG4gICAgICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFJ1bnRpbWUuanN4cyhSZWFjdC5GcmFnbWVudCwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB9LCB1bmRlZmluZWQpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LCBrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gUnVudGltZS5qc3hzKGVsZW1lbnRUeXBlLCBwcm9wcywga2V5KTtcbn07XG4iLCJpbXBvcnQgeyBjcmVhdGVKU1ggfSBmcm9tICcuL2pzeC9jcmVhdGVKU1gnO1xuaW1wb3J0IHsganN4U2xvdCB9IGZyb20gJy4vanN4L2pzeFNsb3QnO1xuaW1wb3J0IHsganN4c1Nsb3QgfSBmcm9tICcuL2pzeC9qc3hzU2xvdCc7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSAnLi91dGlscy9SdW50aW1lJztcbmV4cG9ydCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuZXhwb3J0IGNvbnN0IGpzeCA9IGNyZWF0ZUpTWChSdW50aW1lLmpzeCwganN4U2xvdCk7XG5leHBvcnQgY29uc3QganN4cyA9IGNyZWF0ZUpTWChSdW50aW1lLmpzeHMsIGpzeHNTbG90KTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IEljb25EaXJlY3Rpb25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgSWNvbkRpcmVjdGlvbkNvbnRleHREZWZhdWx0VmFsdWUgPSB7fTtcbmV4cG9ydCBjb25zdCBJY29uRGlyZWN0aW9uQ29udGV4dFByb3ZpZGVyID0gSWNvbkRpcmVjdGlvbkNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlSWNvbkNvbnRleHQgPSAoKSA9PiBSZWFjdC51c2VDb250ZXh0KEljb25EaXJlY3Rpb25Db250ZXh0KSA/IFJlYWN0LnVzZUNvbnRleHQoSWNvbkRpcmVjdGlvbkNvbnRleHQpIDogSWNvbkRpcmVjdGlvbkNvbnRleHREZWZhdWx0VmFsdWU7IiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNhblVzZURPTSwgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IFRleHREaXJlY3Rpb25Qcm92aWRlciB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IE92ZXJyaWRlc1Byb3ZpZGVyX3Vuc3RhYmxlIGFzIE92ZXJyaWRlc1Byb3ZpZGVyLCBQcm92aWRlcl91bnN0YWJsZSBhcyBQcm92aWRlciwgVG9vbHRpcFZpc2liaWxpdHlQcm92aWRlcl91bnN0YWJsZSBhcyBUb29sdGlwVmlzaWJpbGl0eVByb3ZpZGVyLCBUaGVtZVByb3ZpZGVyX3Vuc3RhYmxlIGFzIFRoZW1lUHJvdmlkZXIsIFRoZW1lQ2xhc3NOYW1lUHJvdmlkZXJfdW5zdGFibGUgYXMgVGhlbWVDbGFzc05hbWVQcm92aWRlciwgQ3VzdG9tU3R5bGVIb29rc1Byb3ZpZGVyX3Vuc3RhYmxlIGFzIEN1c3RvbVN0eWxlSG9va3NQcm92aWRlciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgSWNvbkRpcmVjdGlvbkNvbnRleHRQcm92aWRlciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1pY29ucy9saWIvcHJvdmlkZXJzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgRmx1ZW50UHJvdmlkZXJcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyRmx1ZW50UHJvdmlkZXJfdW5zdGFibGUgPSAoc3RhdGUsIGNvbnRleHRWYWx1ZXMpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIC8vIFR5cGVzY3JpcHQgKHZzY29kZSkgaW5jb3JyZWN0bHkgcmVmZXJlbmNlcyB0aGUgRmx1ZW50UHJvdmlkZXJQcm9wcy5jdXN0b21TdHlsZUhvb2tzX3Vuc3RhYmxlXG4gICAgLy8gaW5zdGVhZCBvZiBGbHVlbnRQcm92aWRlckNvbnRleHRWYWx1ZXMuY3VzdG9tU3R5bGVIb29rc191bnN0YWJsZSBhbmQgdGhpbmtzIGl0IGlzXG4gICAgLy8gUGFydGlhbDxDdXN0b21TdHlsZUhvb2tzQ29udGV4dFZhbHVlPiwgc28gaXQgbmVlZHMgdG8gYmUgY2FzdCB0byBSZXF1aXJlZDxDdXN0b21TdHlsZUhvb2tzQ29udGV4dFZhbHVlPlxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbnRleHRWYWx1ZXMucHJvdmlkZXIsXG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goVGhlbWVQcm92aWRlciwge1xuICAgICAgICAgICAgdmFsdWU6IGNvbnRleHRWYWx1ZXMudGhlbWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFRoZW1lQ2xhc3NOYW1lUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy50aGVtZUNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KEN1c3RvbVN0eWxlSG9va3NQcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy5jdXN0b21TdHlsZUhvb2tzX3Vuc3RhYmxlLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFRvb2x0aXBWaXNpYmlsaXR5UHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLnRvb2x0aXAsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFRleHREaXJlY3Rpb25Qcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcjogY29udGV4dFZhbHVlcy50ZXh0RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goSWNvbkRpcmVjdGlvbkNvbnRleHRQcm92aWRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy5pY29uRGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KE92ZXJyaWRlc1Byb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy5vdmVycmlkZXNfdW5zdGFibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuVXNlRE9NKCkgPyBudWxsIDogLyojX19QVVJFX18qLyBfanN4KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNpbmcgZGFuZ2Vyb3VzIEhUTUwgYmVjYXVzZSByZWFjdCBjYW4gZXNjYXBlIGNoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGNhbiBsZWFkIHRvIGludmFsaWQgQ1NTLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRhbmdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2h0bWw6IHN0YXRlLnNlcnZlclN0eWxlUHJvcHMuY3NzUnVsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLnNlcnZlclN0eWxlUHJvcHMuYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUucm9vdC5jaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfSk7XG59O1xuIiwiLy8gc3JjL1dlYWtSZWZJbnN0YW5jZS50c1xudmFyIF9jYW5Vc2VXZWFrUmVmID0gdHlwZW9mIFdlYWtSZWYgIT09IFwidW5kZWZpbmVkXCI7XG52YXIgV2Vha1JlZkluc3RhbmNlID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihpbnN0YW5jZSkge1xuICAgIGlmIChfY2FuVXNlV2Vha1JlZiAmJiB0eXBlb2YgaW5zdGFuY2UgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRoaXMuX3dlYWtSZWYgPSBuZXcgV2Vha1JlZihpbnN0YW5jZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9XZWFrUmVmL2RlcmVmfVxuICAgKi9cbiAgZGVyZWYoKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBsZXQgaW5zdGFuY2U7XG4gICAgaWYgKHRoaXMuX3dlYWtSZWYpIHtcbiAgICAgIGluc3RhbmNlID0gKF9hID0gdGhpcy5fd2Vha1JlZikgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmRlcmVmKCk7XG4gICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl93ZWFrUmVmO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IHRoaXMuX2luc3RhbmNlO1xuICAgICAgaWYgKChfYiA9IGluc3RhbmNlID09IG51bGwgPyB2b2lkIDAgOiBpbnN0YW5jZS5pc0Rpc3Bvc2VkKSA9PSBudWxsID8gdm9pZCAwIDogX2IuY2FsbChpbnN0YW5jZSkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2luc3RhbmNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbn07XG5cbi8vIHNyYy9Gb2N1c0V2ZW50LnRzXG52YXIgS0VZQk9SR19GT0NVU0lOID0gXCJrZXlib3JnOmZvY3VzaW5cIjtcbnZhciBLRVlCT1JHX0ZPQ1VTT1VUID0gXCJrZXlib3JnOmZvY3Vzb3V0XCI7XG5mdW5jdGlvbiBjYW5PdmVycmlkZU5hdGl2ZUZvY3VzKHdpbikge1xuICBjb25zdCBIVE1MRWxlbWVudCA9IHdpbi5IVE1MRWxlbWVudDtcbiAgY29uc3Qgb3JpZ0ZvY3VzID0gSFRNTEVsZW1lbnQucHJvdG90eXBlLmZvY3VzO1xuICBsZXQgaXNDdXN0b21Gb2N1c0NhbGxlZCA9IGZhbHNlO1xuICBIVE1MRWxlbWVudC5wcm90b3R5cGUuZm9jdXMgPSBmdW5jdGlvbiBmb2N1cygpIHtcbiAgICBpc0N1c3RvbUZvY3VzQ2FsbGVkID0gdHJ1ZTtcbiAgfTtcbiAgY29uc3QgYnRuID0gd2luLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG4gIGJ0bi5mb2N1cygpO1xuICBIVE1MRWxlbWVudC5wcm90b3R5cGUuZm9jdXMgPSBvcmlnRm9jdXM7XG4gIHJldHVybiBpc0N1c3RvbUZvY3VzQ2FsbGVkO1xufVxudmFyIF9jYW5PdmVycmlkZU5hdGl2ZUZvY3VzID0gZmFsc2U7XG5mdW5jdGlvbiBuYXRpdmVGb2N1cyhlbGVtZW50KSB7XG4gIGNvbnN0IGZvY3VzID0gZWxlbWVudC5mb2N1cztcbiAgaWYgKGZvY3VzLl9fa2V5Ym9yZ05hdGl2ZUZvY3VzKSB7XG4gICAgZm9jdXMuX19rZXlib3JnTmF0aXZlRm9jdXMuY2FsbChlbGVtZW50KTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHNldHVwRm9jdXNFdmVudCh3aW4pIHtcbiAgY29uc3Qga3dpbiA9IHdpbjtcbiAgaWYgKCFfY2FuT3ZlcnJpZGVOYXRpdmVGb2N1cykge1xuICAgIF9jYW5PdmVycmlkZU5hdGl2ZUZvY3VzID0gY2FuT3ZlcnJpZGVOYXRpdmVGb2N1cyhrd2luKTtcbiAgfVxuICBjb25zdCBvcmlnRm9jdXMgPSBrd2luLkhUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cztcbiAgaWYgKG9yaWdGb2N1cy5fX2tleWJvcmdOYXRpdmVGb2N1cykge1xuICAgIHJldHVybjtcbiAgfVxuICBrd2luLkhUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cyA9IGZvY3VzO1xuICBjb25zdCBzaGFkb3dUYXJnZXRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgY29uc3QgZm9jdXNPdXRIYW5kbGVyID0gKGUpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldDtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChLRVlCT1JHX0ZPQ1VTT1VULCB7XG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIC8vIEFsbG93cyB0aGUgZXZlbnQgdG8gYnViYmxlIHBhc3QgYW4gb3BlbiBzaGFkb3cgcm9vdFxuICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogZVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfTtcbiAgY29uc3QgZm9jdXNJbkhhbmRsZXIgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0O1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBub2RlID0gZS5jb21wb3NlZFBhdGgoKVswXTtcbiAgICBjb25zdCBjdXJyZW50U2hhZG93cyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpIHtcbiAgICAgICAgY3VycmVudFNoYWRvd3MuYWRkKG5vZGUpO1xuICAgICAgICBub2RlID0gbm9kZS5ob3N0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBzaGFkb3dSb290V2Vha1JlZiBvZiBzaGFkb3dUYXJnZXRzKSB7XG4gICAgICBjb25zdCBzaGFkb3dSb290ID0gc2hhZG93Um9vdFdlYWtSZWYuZGVyZWYoKTtcbiAgICAgIGlmICghc2hhZG93Um9vdCB8fCAhY3VycmVudFNoYWRvd3MuaGFzKHNoYWRvd1Jvb3QpKSB7XG4gICAgICAgIHNoYWRvd1RhcmdldHMuZGVsZXRlKHNoYWRvd1Jvb3RXZWFrUmVmKTtcbiAgICAgICAgaWYgKHNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsIGZvY3VzSW5IYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBmb2N1c091dEhhbmRsZXIsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIG9uRm9jdXNJbih0YXJnZXQsIGUucmVsYXRlZFRhcmdldCB8fCB2b2lkIDApO1xuICB9O1xuICBjb25zdCBvbkZvY3VzSW4gPSAodGFyZ2V0LCByZWxhdGVkVGFyZ2V0LCBvcmlnaW5hbEV2ZW50KSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSB0YXJnZXQuc2hhZG93Um9vdDtcbiAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgZm9yIChjb25zdCBzaGFkb3dSb290V2Vha1JlZiBvZiBzaGFkb3dUYXJnZXRzKSB7XG4gICAgICAgIGlmIChzaGFkb3dSb290V2Vha1JlZi5kZXJlZigpID09PSBzaGFkb3dSb290KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsIGZvY3VzSW5IYW5kbGVyLCB0cnVlKTtcbiAgICAgIHNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGZvY3VzT3V0SGFuZGxlciwgdHJ1ZSk7XG4gICAgICBzaGFkb3dUYXJnZXRzLmFkZChuZXcgV2Vha1JlZkluc3RhbmNlKHNoYWRvd1Jvb3QpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGV0YWlscyA9IHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQsXG4gICAgICBvcmlnaW5hbEV2ZW50XG4gICAgfTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChLRVlCT1JHX0ZPQ1VTSU4sIHtcbiAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgLy8gQWxsb3dzIHRoZSBldmVudCB0byBidWJibGUgcGFzdCBhbiBvcGVuIHNoYWRvdyByb290XG4gICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgIGRldGFpbDogZGV0YWlsc1xuICAgIH0pO1xuICAgIGV2ZW50LmRldGFpbHMgPSBkZXRhaWxzO1xuICAgIGlmIChfY2FuT3ZlcnJpZGVOYXRpdmVGb2N1cyB8fCBkYXRhLmxhc3RGb2N1c2VkUHJvZ3JhbW1hdGljYWxseSkge1xuICAgICAgZGV0YWlscy5pc0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5ID0gdGFyZ2V0ID09PSAoKF9hID0gZGF0YS5sYXN0Rm9jdXNlZFByb2dyYW1tYXRpY2FsbHkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5kZXJlZigpKTtcbiAgICAgIGRhdGEubGFzdEZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5ID0gdm9pZCAwO1xuICAgIH1cbiAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH07XG4gIGNvbnN0IGRhdGEgPSBrd2luLl9fa2V5Ym9yZ0RhdGEgPSB7XG4gICAgZm9jdXNJbkhhbmRsZXIsXG4gICAgZm9jdXNPdXRIYW5kbGVyLFxuICAgIHNoYWRvd1RhcmdldHNcbiAgfTtcbiAga3dpbi5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgIFwiZm9jdXNpblwiLFxuICAgIGt3aW4uX19rZXlib3JnRGF0YS5mb2N1c0luSGFuZGxlcixcbiAgICB0cnVlXG4gICk7XG4gIGt3aW4uZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICBcImZvY3Vzb3V0XCIsXG4gICAga3dpbi5fX2tleWJvcmdEYXRhLmZvY3VzT3V0SGFuZGxlcixcbiAgICB0cnVlXG4gICk7XG4gIGZ1bmN0aW9uIGZvY3VzKCkge1xuICAgIGNvbnN0IGtleWJvcmdOYXRpdmVGb2N1c0V2ZW50ID0ga3dpbi5fX2tleWJvcmdEYXRhO1xuICAgIGlmIChrZXlib3JnTmF0aXZlRm9jdXNFdmVudCkge1xuICAgICAga2V5Ym9yZ05hdGl2ZUZvY3VzRXZlbnQubGFzdEZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5ID0gbmV3IFdlYWtSZWZJbnN0YW5jZShcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9yaWdGb2N1cy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG4gIGxldCBhY3RpdmVFbGVtZW50ID0ga3dpbi5kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICB3aGlsZSAoYWN0aXZlRWxlbWVudCAmJiBhY3RpdmVFbGVtZW50LnNoYWRvd1Jvb3QpIHtcbiAgICBvbkZvY3VzSW4oYWN0aXZlRWxlbWVudCk7XG4gICAgYWN0aXZlRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O1xuICB9XG4gIGZvY3VzLl9fa2V5Ym9yZ05hdGl2ZUZvY3VzID0gb3JpZ0ZvY3VzO1xufVxuZnVuY3Rpb24gZGlzcG9zZUZvY3VzRXZlbnQod2luKSB7XG4gIGNvbnN0IGt3aW4gPSB3aW47XG4gIGNvbnN0IHByb3RvID0ga3dpbi5IVE1MRWxlbWVudC5wcm90b3R5cGU7XG4gIGNvbnN0IG9yaWdGb2N1cyA9IHByb3RvLmZvY3VzLl9fa2V5Ym9yZ05hdGl2ZUZvY3VzO1xuICBjb25zdCBrZXlib3JnTmF0aXZlRm9jdXNFdmVudCA9IGt3aW4uX19rZXlib3JnRGF0YTtcbiAgaWYgKGtleWJvcmdOYXRpdmVGb2N1c0V2ZW50KSB7XG4gICAga3dpbi5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgXCJmb2N1c2luXCIsXG4gICAgICBrZXlib3JnTmF0aXZlRm9jdXNFdmVudC5mb2N1c0luSGFuZGxlcixcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGt3aW4uZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgIFwiZm9jdXNvdXRcIixcbiAgICAgIGtleWJvcmdOYXRpdmVGb2N1c0V2ZW50LmZvY3VzT3V0SGFuZGxlcixcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGZvciAoY29uc3Qgc2hhZG93Um9vdFdlYWtSZWYgb2Yga2V5Ym9yZ05hdGl2ZUZvY3VzRXZlbnQuc2hhZG93VGFyZ2V0cykge1xuICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IHNoYWRvd1Jvb3RXZWFrUmVmLmRlcmVmKCk7XG4gICAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgXCJmb2N1c2luXCIsXG4gICAgICAgICAga2V5Ym9yZ05hdGl2ZUZvY3VzRXZlbnQuZm9jdXNJbkhhbmRsZXIsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgXCJmb2N1c291dFwiLFxuICAgICAgICAgIGtleWJvcmdOYXRpdmVGb2N1c0V2ZW50LmZvY3VzT3V0SGFuZGxlcixcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGtleWJvcmdOYXRpdmVGb2N1c0V2ZW50LnNoYWRvd1RhcmdldHMuY2xlYXIoKTtcbiAgICBkZWxldGUga3dpbi5fX2tleWJvcmdEYXRhO1xuICB9XG4gIGlmIChvcmlnRm9jdXMpIHtcbiAgICBwcm90by5mb2N1cyA9IG9yaWdGb2N1cztcbiAgfVxufVxuZnVuY3Rpb24gZ2V0TGFzdEZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5KHdpbikge1xuICB2YXIgX2E7XG4gIGNvbnN0IGtleWJvcmdOYXRpdmVGb2N1c0V2ZW50ID0gd2luLl9fa2V5Ym9yZ0RhdGE7XG4gIHJldHVybiBrZXlib3JnTmF0aXZlRm9jdXNFdmVudCA/ICgoX2EgPSBrZXlib3JnTmF0aXZlRm9jdXNFdmVudC5sYXN0Rm9jdXNlZFByb2dyYW1tYXRpY2FsbHkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5kZXJlZigpKSB8fCBudWxsIDogdm9pZCAwO1xufVxuXG4vLyBzcmMvS2V5Ym9yZy50c1xudmFyIF9kaXNtaXNzVGltZW91dCA9IDUwMDtcbnZhciBfbGFzdElkID0gMDtcbnZhciBLZXlib3JnQ29yZSA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3Iod2luLCBwcm9wcykge1xuICAgIHRoaXMuX2lzTmF2aWdhdGluZ1dpdGhLZXlib2FyZF9ET19OT1RfVVNFID0gZmFsc2U7XG4gICAgdGhpcy5fb25Gb2N1c0luID0gKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLl9pc01vdXNlT3JUb3VjaFVzZWRUaW1lcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZGV0YWlscyA9IGUuZGV0YWlsO1xuICAgICAgaWYgKCFkZXRhaWxzLnJlbGF0ZWRUYXJnZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGRldGFpbHMuaXNGb2N1c2VkUHJvZ3JhbW1hdGljYWxseSB8fCBkZXRhaWxzLmlzRm9jdXNlZFByb2dyYW1tYXRpY2FsbHkgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCA9IHRydWU7XG4gICAgfTtcbiAgICB0aGlzLl9vbk1vdXNlRG93biA9IChlKSA9PiB7XG4gICAgICBpZiAoZS5idXR0b25zID09PSAwIHx8IGUuY2xpZW50WCA9PT0gMCAmJiBlLmNsaWVudFkgPT09IDAgJiYgZS5zY3JlZW5YID09PSAwICYmIGUuc2NyZWVuWSA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9vbk1vdXNlT3JUb3VjaCgpO1xuICAgIH07XG4gICAgdGhpcy5fb25Nb3VzZU9yVG91Y2ggPSAoKSA9PiB7XG4gICAgICBjb25zdCB3aW4gPSB0aGlzLl93aW47XG4gICAgICBpZiAod2luKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc01vdXNlT3JUb3VjaFVzZWRUaW1lcikge1xuICAgICAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5faXNNb3VzZU9yVG91Y2hVc2VkVGltZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzTW91c2VPclRvdWNoVXNlZFRpbWVyID0gd2luLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pc01vdXNlT3JUb3VjaFVzZWRUaW1lcjtcbiAgICAgICAgfSwgMWUzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkID0gZmFsc2U7XG4gICAgfTtcbiAgICB0aGlzLl9vbktleURvd24gPSAoZSkgPT4ge1xuICAgICAgY29uc3QgaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkID0gdGhpcy5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQ7XG4gICAgICBpZiAoaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGREaXNtaXNzS2V5Ym9hcmROYXZpZ2F0aW9uKGUpKSB7XG4gICAgICAgICAgdGhpcy5fc2NoZWR1bGVEaXNtaXNzKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyS2V5Ym9hcmROYXZpZ2F0aW9uKGUpKSB7XG4gICAgICAgICAgdGhpcy5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmlkID0gXCJjXCIgKyArK19sYXN0SWQ7XG4gICAgdGhpcy5fd2luID0gd2luO1xuICAgIGNvbnN0IGRvYyA9IHdpbi5kb2N1bWVudDtcbiAgICBpZiAocHJvcHMpIHtcbiAgICAgIGNvbnN0IHRyaWdnZXJLZXlzID0gcHJvcHMudHJpZ2dlcktleXM7XG4gICAgICBjb25zdCBkaXNtaXNzS2V5cyA9IHByb3BzLmRpc21pc3NLZXlzO1xuICAgICAgaWYgKHRyaWdnZXJLZXlzID09IG51bGwgPyB2b2lkIDAgOiB0cmlnZ2VyS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcktleXMgPSBuZXcgU2V0KHRyaWdnZXJLZXlzKTtcbiAgICAgIH1cbiAgICAgIGlmIChkaXNtaXNzS2V5cyA9PSBudWxsID8gdm9pZCAwIDogZGlzbWlzc0tleXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2Rpc21pc3NLZXlzID0gbmV3IFNldChkaXNtaXNzS2V5cyk7XG4gICAgICB9XG4gICAgfVxuICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwgdGhpcy5fb25Gb2N1c0luLCB0cnVlKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLl9vbk1vdXNlRG93biwgdHJ1ZSk7XG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuX29uS2V5RG93biwgdHJ1ZSk7XG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIHRoaXMuX29uTW91c2VPclRvdWNoLCB0cnVlKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIHRoaXMuX29uTW91c2VPclRvdWNoLCB0cnVlKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoY2FuY2VsXCIsIHRoaXMuX29uTW91c2VPclRvdWNoLCB0cnVlKTtcbiAgICBzZXR1cEZvY3VzRXZlbnQod2luKTtcbiAgfVxuICBnZXQgaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKCkge1xuICAgIHJldHVybiB0aGlzLl9pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmRfRE9fTk9UX1VTRTtcbiAgfVxuICBzZXQgaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKHZhbCkge1xuICAgIGlmICh0aGlzLl9pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmRfRE9fTk9UX1VTRSAhPT0gdmFsKSB7XG4gICAgICB0aGlzLl9pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmRfRE9fTk9UX1VTRSA9IHZhbDtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICB9XG4gIGRpc3Bvc2UoKSB7XG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luO1xuICAgIGlmICh3aW4pIHtcbiAgICAgIGlmICh0aGlzLl9pc01vdXNlT3JUb3VjaFVzZWRUaW1lcikge1xuICAgICAgICB3aW4uY2xlYXJUaW1lb3V0KHRoaXMuX2lzTW91c2VPclRvdWNoVXNlZFRpbWVyKTtcbiAgICAgICAgdGhpcy5faXNNb3VzZU9yVG91Y2hVc2VkVGltZXIgPSB2b2lkIDA7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fZGlzbWlzc1RpbWVyKSB7XG4gICAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5fZGlzbWlzc1RpbWVyKTtcbiAgICAgICAgdGhpcy5fZGlzbWlzc1RpbWVyID0gdm9pZCAwO1xuICAgICAgfVxuICAgICAgZGlzcG9zZUZvY3VzRXZlbnQod2luKTtcbiAgICAgIGNvbnN0IGRvYyA9IHdpbi5kb2N1bWVudDtcbiAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwgdGhpcy5fb25Gb2N1c0luLCB0cnVlKTtcbiAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuX29uTW91c2VEb3duLCB0cnVlKTtcbiAgICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9vbktleURvd24sIHRydWUpO1xuICAgICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIHRoaXMuX29uTW91c2VPclRvdWNoLCB0cnVlKTtcbiAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgdGhpcy5fb25Nb3VzZU9yVG91Y2gsIHRydWUpO1xuICAgICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGNhbmNlbFwiLCB0aGlzLl9vbk1vdXNlT3JUb3VjaCwgdHJ1ZSk7XG4gICAgICBkZWxldGUgdGhpcy5fd2luO1xuICAgIH1cbiAgfVxuICBpc0Rpc3Bvc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMuX3dpbjtcbiAgfVxuICAvKipcbiAgICogVXBkYXRlcyBhbGwga2V5Ym9yZyBpbnN0YW5jZXMgd2l0aCB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbiBzdGF0ZVxuICAgKi9cbiAgdXBkYXRlKCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3Qga2V5Ym9yZ3MgPSAoX2IgPSAoX2EgPSB0aGlzLl93aW4pID09IG51bGwgPyB2b2lkIDAgOiBfYS5fX2tleWJvcmcpID09IG51bGwgPyB2b2lkIDAgOiBfYi5yZWZzO1xuICAgIGlmIChrZXlib3Jncykge1xuICAgICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhrZXlib3JncykpIHtcbiAgICAgICAgS2V5Ym9yZy51cGRhdGUoa2V5Ym9yZ3NbaWRdLCB0aGlzLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBrZXlib2FyZCBldmVudCBzaG91bGQgdHJpZ2dlciBrZXlib2FyZCBuYXZpZ2F0aW9uIG1vZGVcbiAgICovXG4gIF9zaG91bGRUcmlnZ2VyS2V5Ym9hcmROYXZpZ2F0aW9uKGUpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKGUua2V5ID09PSBcIlRhYlwiKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IChfYSA9IHRoaXMuX3dpbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaXNUcmlnZ2VyS2V5ID0gIXRoaXMuX3RyaWdnZXJLZXlzIHx8IHRoaXMuX3RyaWdnZXJLZXlzLmhhcyhlLmtleUNvZGUpO1xuICAgIGNvbnN0IGlzRWRpdGFibGUgPSBhY3RpdmVFbGVtZW50ICYmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT09IFwiSU5QVVRcIiB8fCBhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT09IFwiVEVYVEFSRUFcIiB8fCBhY3RpdmVFbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKTtcbiAgICByZXR1cm4gaXNUcmlnZ2VyS2V5ICYmICFpc0VkaXRhYmxlO1xuICB9XG4gIC8qKlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBrZXlib2FyZCBldmVudCBzaG91bGQgZGlzbWlzcyBrZXlib2FyZCBuYXZpZ2F0aW9uIG1vZGVcbiAgICovXG4gIF9zaG91bGREaXNtaXNzS2V5Ym9hcmROYXZpZ2F0aW9uKGUpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IHRoaXMuX2Rpc21pc3NLZXlzKSA9PSBudWxsID8gdm9pZCAwIDogX2EuaGFzKGUua2V5Q29kZSk7XG4gIH1cbiAgX3NjaGVkdWxlRGlzbWlzcygpIHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLl93aW47XG4gICAgaWYgKHdpbikge1xuICAgICAgaWYgKHRoaXMuX2Rpc21pc3NUaW1lcikge1xuICAgICAgICB3aW4uY2xlYXJUaW1lb3V0KHRoaXMuX2Rpc21pc3NUaW1lcik7XG4gICAgICAgIHRoaXMuX2Rpc21pc3NUaW1lciA9IHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdhcyA9IHdpbi5kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgdGhpcy5fZGlzbWlzc1RpbWVyID0gd2luLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9kaXNtaXNzVGltZXIgPSB2b2lkIDA7XG4gICAgICAgIGNvbnN0IGN1ciA9IHdpbi5kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICBpZiAod2FzICYmIGN1ciAmJiB3YXMgPT09IGN1cikge1xuICAgICAgICAgIHRoaXMuaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sIF9kaXNtaXNzVGltZW91dCk7XG4gICAgfVxuICB9XG59O1xudmFyIEtleWJvcmcgPSBjbGFzcyBfS2V5Ym9yZyB7XG4gIGNvbnN0cnVjdG9yKHdpbiwgcHJvcHMpIHtcbiAgICB0aGlzLl9jYiA9IFtdO1xuICAgIHRoaXMuX2lkID0gXCJrXCIgKyArK19sYXN0SWQ7XG4gICAgdGhpcy5fd2luID0gd2luO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB3aW4uX19rZXlib3JnO1xuICAgIGlmIChjdXJyZW50KSB7XG4gICAgICB0aGlzLl9jb3JlID0gY3VycmVudC5jb3JlO1xuICAgICAgY3VycmVudC5yZWZzW3RoaXMuX2lkXSA9IHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvcmUgPSBuZXcgS2V5Ym9yZ0NvcmUod2luLCBwcm9wcyk7XG4gICAgICB3aW4uX19rZXlib3JnID0ge1xuICAgICAgICBjb3JlOiB0aGlzLl9jb3JlLFxuICAgICAgICByZWZzOiB7IFt0aGlzLl9pZF06IHRoaXMgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgc3RhdGljIGNyZWF0ZSh3aW4sIHByb3BzKSB7XG4gICAgcmV0dXJuIG5ldyBfS2V5Ym9yZyh3aW4sIHByb3BzKTtcbiAgfVxuICBzdGF0aWMgZGlzcG9zZShpbnN0YW5jZSkge1xuICAgIGluc3RhbmNlLmRpc3Bvc2UoKTtcbiAgfVxuICAvKipcbiAgICogVXBkYXRlcyBhbGwgc3Vic2NyaWJlZCBjYWxsYmFja3Mgd2l0aCB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbiBzdGF0ZVxuICAgKi9cbiAgc3RhdGljIHVwZGF0ZShpbnN0YW5jZSwgaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKSB7XG4gICAgaW5zdGFuY2UuX2NiLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpKTtcbiAgfVxuICBkaXNwb3NlKCkge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBjdXJyZW50ID0gKF9hID0gdGhpcy5fd2luKSA9PSBudWxsID8gdm9pZCAwIDogX2EuX19rZXlib3JnO1xuICAgIGlmIChjdXJyZW50ID09IG51bGwgPyB2b2lkIDAgOiBjdXJyZW50LnJlZnNbdGhpcy5faWRdKSB7XG4gICAgICBkZWxldGUgY3VycmVudC5yZWZzW3RoaXMuX2lkXTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhjdXJyZW50LnJlZnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjdXJyZW50LmNvcmUuZGlzcG9zZSgpO1xuICAgICAgICBkZWxldGUgdGhpcy5fd2luLl9fa2V5Ym9yZztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYEtleWJvcmcgaW5zdGFuY2UgJHt0aGlzLl9pZH0gaXMgYmVpbmcgZGlzcG9zZWQgaW5jb3JyZWN0bHkuYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fY2IgPSBbXTtcbiAgICBkZWxldGUgdGhpcy5fY29yZTtcbiAgICBkZWxldGUgdGhpcy5fd2luO1xuICB9XG4gIC8qKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcgd2l0aCBrZXlib2FyZFxuICAgKi9cbiAgaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKCkge1xuICAgIHZhciBfYTtcbiAgICByZXR1cm4gISEoKF9hID0gdGhpcy5fY29yZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk7XG4gIH1cbiAgLyoqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIENhbGxlZCB3aGVuIHRoZSBrZXlib2FyZCBuYXZpZ2F0aW9uIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHN1YnNjcmliZShjYWxsYmFjaykge1xuICAgIHRoaXMuX2NiLnB1c2goY2FsbGJhY2spO1xuICB9XG4gIC8qKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBSZWdpc3RlcmVkIHdpdGggc3Vic2NyaWJlXG4gICAqL1xuICB1bnN1YnNjcmliZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2IuaW5kZXhPZihjYWxsYmFjayk7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuX2NiLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBNYW51YWxseSBzZXQgdGhlIGtleWJvYXJkIG5hdmlndGlvbiBzdGF0ZVxuICAgKi9cbiAgc2V0VmFsKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCkge1xuICAgIGlmICh0aGlzLl9jb3JlKSB7XG4gICAgICB0aGlzLl9jb3JlLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCA9IGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZDtcbiAgICB9XG4gIH1cbn07XG5mdW5jdGlvbiBjcmVhdGVLZXlib3JnKHdpbiwgcHJvcHMpIHtcbiAgcmV0dXJuIEtleWJvcmcuY3JlYXRlKHdpbiwgcHJvcHMpO1xufVxuZnVuY3Rpb24gZGlzcG9zZUtleWJvcmcoaW5zdGFuY2UpIHtcbiAgS2V5Ym9yZy5kaXNwb3NlKGluc3RhbmNlKTtcbn1cblxuLy8gc3JjL2luZGV4LnRzXG52YXIgdmVyc2lvbiA9IFwiMi42LjBcIjtcbmV4cG9ydCB7XG4gIEtFWUJPUkdfRk9DVVNJTixcbiAgS0VZQk9SR19GT0NVU09VVCxcbiAgY3JlYXRlS2V5Ym9yZyxcbiAgZGlzcG9zZUtleWJvcmcsXG4gIGdldExhc3RGb2N1c2VkUHJvZ3JhbW1hdGljYWxseSxcbiAgbmF0aXZlRm9jdXMsXG4gIHZlcnNpb25cbn07XG4vKiFcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJpbXBvcnQgeyBuYXRpdmVGb2N1cywgS0VZQk9SR19GT0NVU0lOLCBLRVlCT1JHX0ZPQ1VTT1VULCBjcmVhdGVLZXlib3JnLCBkaXNwb3NlS2V5Ym9yZyB9IGZyb20gJ2tleWJvcmcnO1xuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5jb25zdCBUQUJTVEVSX0FUVFJJQlVURV9OQU1FID0gXCJkYXRhLXRhYnN0ZXJcIjtcbmNvbnN0IFRBQlNURVJfRFVNTVlfSU5QVVRfQVRUUklCVVRFX05BTUUgPSBcImRhdGEtdGFic3Rlci1kdW1teVwiO1xuY29uc3QgRk9DVVNBQkxFX1NFTEVDVE9SID0gLyojX19QVVJFX18qL1tcImFbaHJlZl1cIiwgXCJidXR0b246bm90KFtkaXNhYmxlZF0pXCIsIFwiaW5wdXQ6bm90KFtkaXNhYmxlZF0pXCIsIFwic2VsZWN0Om5vdChbZGlzYWJsZWRdKVwiLCBcInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKVwiLCBcIipbdGFiaW5kZXhdXCIsIFwiKltjb250ZW50ZWRpdGFibGVdXCIsIFwiZGV0YWlscyA+IHN1bW1hcnlcIiwgXCJhdWRpb1tjb250cm9sc11cIiwgXCJ2aWRlb1tjb250cm9sc11cIl0uam9pbihcIiwgXCIpO1xuY29uc3QgQXN5bmNGb2N1c1NvdXJjZXMgPSB7XG4gIEVzY2FwZUdyb3VwcGVyOiAxLFxuICBSZXN0b3JlcjogMixcbiAgRGVsb3NlcjogM1xufTtcbmNvbnN0IE9ic2VydmVkRWxlbWVudEFjY2Vzc2liaWxpdGllcyA9IHtcbiAgQW55OiAwLFxuICBBY2Nlc3NpYmxlOiAxLFxuICBGb2N1c2FibGU6IDJcbn07XG5jb25zdCBSZXN0b3JlRm9jdXNPcmRlcnMgPSB7XG4gIEhpc3Rvcnk6IDAsXG4gIERlbG9zZXJEZWZhdWx0OiAxLFxuICBSb290RGVmYXVsdDogMixcbiAgRGVsb3NlckZpcnN0OiAzLFxuICBSb290Rmlyc3Q6IDRcbn07XG5jb25zdCBEZWxvc2VyU3RyYXRlZ2llcyA9IHtcbiAgLyoqXHJcbiAgICogSWYgdGhlIGZvY3VzIGlzIGxvc3QsIHRoZSBmb2N1cyB3aWxsIGJlIHJlc3RvcmVkIGF1dG9tYXRpY2FsbHkgdXNpbmcgYWxsIGF2YWlsYWJsZSBmb2N1cyBoaXN0b3J5LlxyXG4gICAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgc3RyYXRlZ3kuXHJcbiAgICovXG4gIEF1dG86IDAsXG5cbiAgLyoqXHJcbiAgICogSWYgdGhlIGZvY3VzIGlzIGxvc3QgZnJvbSB0aGlzIERlbG9zZXIgaW5zdGFuY2UsIHRoZSBmb2N1cyB3aWxsIG5vdCBiZSByZXN0b3JlZCBhdXRvbWF0aWNhbGx5LlxyXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBtaWdodCBsaXN0ZW4gdG8gdGhlIGV2ZW50IGFuZCByZXN0b3JlIHRoZSBmb2N1cyBtYW51YWxseS5cclxuICAgKiBCdXQgaWYgaXQgaXMgbG9zdCBmcm9tIGFub3RoZXIgRGVsb3NlciBpbnN0YW5jZSwgdGhlIGhpc3Rvcnkgb2YgdGhpcyBEZWxvc2VyIGNvdWxkIGJlIHVzZWQgZmluZGluZ1xyXG4gICAqIHRoZSBlbGVtZW50IHRvIGZvY3VzLlxyXG4gICAqL1xuICBNYW51YWw6IDFcbn07XG5jb25zdCBWaXNpYmlsaXRpZXMgPSB7XG4gIEludmlzaWJsZTogMCxcbiAgUGFydGlhbGx5VmlzaWJsZTogMSxcbiAgVmlzaWJsZTogMlxufTtcbmNvbnN0IFJlc3RvcmVyVHlwZXMgPSB7XG4gIFNvdXJjZTogMCxcbiAgVGFyZ2V0OiAxXG59O1xuY29uc3QgTW92ZXJEaXJlY3Rpb25zID0ge1xuICBCb3RoOiAwLFxuICBWZXJ0aWNhbDogMSxcbiAgSG9yaXpvbnRhbDogMixcbiAgR3JpZDogMyxcbiAgR3JpZExpbmVhcjogNCAvLyBUd28tZGltZW50aW9uYWwgbW92ZW1lbnQgZGVwZW5kaW5nIG9uIHRoZSB2aXN1YWwgcGxhY2VtZW50LiBBbGxvd3MgbGluZWFyIG1vdmVtZW50LlxuXG59O1xuY29uc3QgTW92ZXJLZXlzID0ge1xuICBBcnJvd1VwOiAxLFxuICBBcnJvd0Rvd246IDIsXG4gIEFycm93TGVmdDogMyxcbiAgQXJyb3dSaWdodDogNCxcbiAgUGFnZVVwOiA1LFxuICBQYWdlRG93bjogNixcbiAgSG9tZTogNyxcbiAgRW5kOiA4XG59O1xuY29uc3QgR3JvdXBwZXJUYWJiYWJpbGl0aWVzID0ge1xuICBVbmxpbWl0ZWQ6IDAsXG4gIExpbWl0ZWQ6IDEsXG4gIExpbWl0ZWRUcmFwRm9jdXM6IDIgLy8gVGhlIGZvY3VzIGlzIGxpbWl0ZWQgYXMgYWJvdmUsIHBsdXMgdHJhcHBlZCB3aGVuIGluc2lkZS5cblxufTtcbmNvbnN0IEdyb3VwcGVyTW92ZUZvY3VzQWN0aW9ucyA9IHtcbiAgRW50ZXI6IDEsXG4gIEVzY2FwZTogMlxufTtcbmNvbnN0IFN5c0R1bW15SW5wdXRzUG9zaXRpb25zID0ge1xuICBBdXRvOiAwLFxuICBJbnNpZGU6IDEsXG4gIE91dHNpZGU6IDIgLy8gVGFic3RlciB3aWxsIGFsd2F5cyBwbGFjZSBkdW1teSBpbnB1dHMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmVyLlxuXG59O1xuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5mdW5jdGlvbiBnZXRUYWJzdGVyT25FbGVtZW50KHRhYnN0ZXIsIGVsZW1lbnQpIHtcbiAgdmFyIF9hO1xuXG4gIHJldHVybiAoX2EgPSB0YWJzdGVyLnN0b3JhZ2VFbnRyeShlbGVtZW50KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRhYnN0ZXI7XG59XG5mdW5jdGlvbiB1cGRhdGVUYWJzdGVyQnlBdHRyaWJ1dGUodGFic3RlciwgZWxlbWVudCwgZGlzcG9zZSkge1xuICB2YXIgX2EsIF9iO1xuXG4gIGNvbnN0IG5ld0F0dHJWYWx1ZSA9IGRpc3Bvc2UgfHwgdGFic3Rlci5fbm9vcCA/IHVuZGVmaW5lZCA6IGVsZW1lbnQuZ2V0QXR0cmlidXRlKFRBQlNURVJfQVRUUklCVVRFX05BTUUpO1xuICBsZXQgZW50cnkgPSB0YWJzdGVyLnN0b3JhZ2VFbnRyeShlbGVtZW50KTtcbiAgbGV0IG5ld0F0dHI7XG5cbiAgaWYgKG5ld0F0dHJWYWx1ZSkge1xuICAgIGlmIChuZXdBdHRyVmFsdWUgIT09ICgoX2EgPSBlbnRyeSA9PT0gbnVsbCB8fCBlbnRyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZW50cnkuYXR0cikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN0cmluZykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gSlNPTi5wYXJzZShuZXdBdHRyVmFsdWUpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZhbHVlIGlzIG5vdCBhIEpTT04gb2JqZWN0LCBnb3QgJyR7bmV3QXR0clZhbHVlfScuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXdBdHRyID0ge1xuICAgICAgICAgIHN0cmluZzogbmV3QXR0clZhbHVlLFxuICAgICAgICAgIG9iamVjdDogbmV3VmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgZGF0YS10YWJzdGVyIGF0dHJpYnV0ZSBlcnJvcjogJHtlfWAsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFlbnRyeSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgZW50cnkgPSB0YWJzdGVyLnN0b3JhZ2VFbnRyeShlbGVtZW50LCB0cnVlKTtcbiAgfVxuXG4gIGlmICghZW50cnkudGFic3Rlcikge1xuICAgIGVudHJ5LnRhYnN0ZXIgPSB7fTtcbiAgfVxuXG4gIGNvbnN0IHRhYnN0ZXJPbkVsZW1lbnQgPSBlbnRyeS50YWJzdGVyIHx8IHt9O1xuICBjb25zdCBvbGRUYWJzdGVyUHJvcHMgPSAoKF9iID0gZW50cnkuYXR0cikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9iamVjdCkgfHwge307XG4gIGNvbnN0IG5ld1RhYnN0ZXJQcm9wcyA9IChuZXdBdHRyID09PSBudWxsIHx8IG5ld0F0dHIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5ld0F0dHIub2JqZWN0KSB8fCB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvbGRUYWJzdGVyUHJvcHMpKSB7XG4gICAgaWYgKCFuZXdUYWJzdGVyUHJvcHNba2V5XSkge1xuICAgICAgaWYgKGtleSA9PT0gXCJyb290XCIpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRhYnN0ZXJPbkVsZW1lbnRba2V5XTtcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIHRhYnN0ZXIucm9vdC5vblJvb3Qocm9vdCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSBcImRlbG9zZXJcIjpcbiAgICAgICAgY2FzZSBcInJvb3RcIjpcbiAgICAgICAgY2FzZSBcImdyb3VwcGVyXCI6XG4gICAgICAgIGNhc2UgXCJtb2RhbGl6ZXJcIjpcbiAgICAgICAgY2FzZSBcInJlc3RvcmVyXCI6XG4gICAgICAgIGNhc2UgXCJtb3ZlclwiOlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgICAgIGNvbnN0IHBhcnQgPSB0YWJzdGVyT25FbGVtZW50W2tleV07XG5cbiAgICAgICAgICBpZiAocGFydCkge1xuICAgICAgICAgICAgcGFydC5kaXNwb3NlKCk7XG4gICAgICAgICAgICBkZWxldGUgdGFic3Rlck9uRWxlbWVudFtrZXldO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgXCJvYnNlcnZlZFwiOlxuICAgICAgICAgIGRlbGV0ZSB0YWJzdGVyT25FbGVtZW50W2tleV07XG5cbiAgICAgICAgICBpZiAodGFic3Rlci5vYnNlcnZlZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRhYnN0ZXIub2JzZXJ2ZWRFbGVtZW50Lm9uT2JzZXJ2ZWRFbGVtZW50VXBkYXRlKGVsZW1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgXCJmb2N1c2FibGVcIjpcbiAgICAgICAgY2FzZSBcIm91dGxpbmVcIjpcbiAgICAgICAgY2FzZSBcInVuY29udHJvbGxlZFwiOlxuICAgICAgICBjYXNlIFwic3lzXCI6XG4gICAgICAgICAgZGVsZXRlIHRhYnN0ZXJPbkVsZW1lbnRba2V5XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhuZXdUYWJzdGVyUHJvcHMpKSB7XG4gICAgY29uc3Qgc3lzID0gbmV3VGFic3RlclByb3BzLnN5cztcblxuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlIFwiZGVsb3NlclwiOlxuICAgICAgICBpZiAodGFic3Rlck9uRWxlbWVudC5kZWxvc2VyKSB7XG4gICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5kZWxvc2VyLnNldFByb3BzKG5ld1RhYnN0ZXJQcm9wcy5kZWxvc2VyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGFic3Rlci5kZWxvc2VyKSB7XG4gICAgICAgICAgICB0YWJzdGVyT25FbGVtZW50LmRlbG9zZXIgPSB0YWJzdGVyLmRlbG9zZXIuY3JlYXRlRGVsb3NlcihlbGVtZW50LCBuZXdUYWJzdGVyUHJvcHMuZGVsb3Nlcik7XG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkRlbG9zZXIgQVBJIHVzZWQgYmVmb3JlIGluaXRpYWxpemF0aW9uLCBwbGVhc2UgY2FsbCBgZ2V0RGVsb3NlcigpYFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInJvb3RcIjpcbiAgICAgICAgaWYgKHRhYnN0ZXJPbkVsZW1lbnQucm9vdCkge1xuICAgICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQucm9vdC5zZXRQcm9wcyhuZXdUYWJzdGVyUHJvcHMucm9vdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5yb290ID0gdGFic3Rlci5yb290LmNyZWF0ZVJvb3QoZWxlbWVudCwgbmV3VGFic3RlclByb3BzLnJvb3QsIHN5cyk7XG4gICAgICAgIH1cblxuICAgICAgICB0YWJzdGVyLnJvb3Qub25Sb290KHRhYnN0ZXJPbkVsZW1lbnQucm9vdCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwibW9kYWxpemVyXCI6XG4gICAgICAgIGlmICh0YWJzdGVyT25FbGVtZW50Lm1vZGFsaXplcikge1xuICAgICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQubW9kYWxpemVyLnNldFByb3BzKG5ld1RhYnN0ZXJQcm9wcy5tb2RhbGl6ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0YWJzdGVyLm1vZGFsaXplcikge1xuICAgICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5tb2RhbGl6ZXIgPSB0YWJzdGVyLm1vZGFsaXplci5jcmVhdGVNb2RhbGl6ZXIoZWxlbWVudCwgbmV3VGFic3RlclByb3BzLm1vZGFsaXplciwgc3lzKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiTW9kYWxpemVyIEFQSSB1c2VkIGJlZm9yZSBpbml0aWFsaXphdGlvbiwgcGxlYXNlIGNhbGwgYGdldE1vZGFsaXplcigpYFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInJlc3RvcmVyXCI6XG4gICAgICAgIGlmICh0YWJzdGVyT25FbGVtZW50LnJlc3RvcmVyKSB7XG4gICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5yZXN0b3Jlci5zZXRQcm9wcyhuZXdUYWJzdGVyUHJvcHMucmVzdG9yZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0YWJzdGVyLnJlc3RvcmVyKSB7XG4gICAgICAgICAgICBpZiAobmV3VGFic3RlclByb3BzLnJlc3RvcmVyKSB7XG4gICAgICAgICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQucmVzdG9yZXIgPSB0YWJzdGVyLnJlc3RvcmVyLmNyZWF0ZVJlc3RvcmVyKGVsZW1lbnQsIG5ld1RhYnN0ZXJQcm9wcy5yZXN0b3Jlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlJlc3RvcmVyIEFQSSB1c2VkIGJlZm9yZSBpbml0aWFsaXphdGlvbiwgcGxlYXNlIGNhbGwgYGdldFJlc3RvcmVyKClgXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiZm9jdXNhYmxlXCI6XG4gICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQuZm9jdXNhYmxlID0gbmV3VGFic3RlclByb3BzLmZvY3VzYWJsZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJncm91cHBlclwiOlxuICAgICAgICBpZiAodGFic3Rlck9uRWxlbWVudC5ncm91cHBlcikge1xuICAgICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQuZ3JvdXBwZXIuc2V0UHJvcHMobmV3VGFic3RlclByb3BzLmdyb3VwcGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGFic3Rlci5ncm91cHBlcikge1xuICAgICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5ncm91cHBlciA9IHRhYnN0ZXIuZ3JvdXBwZXIuY3JlYXRlR3JvdXBwZXIoZWxlbWVudCwgbmV3VGFic3RlclByb3BzLmdyb3VwcGVyLCBzeXMpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJHcm91cHBlciBBUEkgdXNlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24sIHBsZWFzZSBjYWxsIGBnZXRHcm91cHBlcigpYFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIm1vdmVyXCI6XG4gICAgICAgIGlmICh0YWJzdGVyT25FbGVtZW50Lm1vdmVyKSB7XG4gICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5tb3Zlci5zZXRQcm9wcyhuZXdUYWJzdGVyUHJvcHMubW92ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0YWJzdGVyLm1vdmVyKSB7XG4gICAgICAgICAgICB0YWJzdGVyT25FbGVtZW50Lm1vdmVyID0gdGFic3Rlci5tb3Zlci5jcmVhdGVNb3ZlcihlbGVtZW50LCBuZXdUYWJzdGVyUHJvcHMubW92ZXIsIHN5cyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIk1vdmVyIEFQSSB1c2VkIGJlZm9yZSBpbml0aWFsaXphdGlvbiwgcGxlYXNlIGNhbGwgYGdldE1vdmVyKClgXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwib2JzZXJ2ZWRcIjpcbiAgICAgICAgaWYgKHRhYnN0ZXIub2JzZXJ2ZWRFbGVtZW50KSB7XG4gICAgICAgICAgdGFic3Rlck9uRWxlbWVudC5vYnNlcnZlZCA9IG5ld1RhYnN0ZXJQcm9wcy5vYnNlcnZlZDtcbiAgICAgICAgICB0YWJzdGVyLm9ic2VydmVkRWxlbWVudC5vbk9ic2VydmVkRWxlbWVudFVwZGF0ZShlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJPYnNlcnZlZEVsZW1lbnQgQVBJIHVzZWQgYmVmb3JlIGluaXRpYWxpemF0aW9uLCBwbGVhc2UgY2FsbCBgZ2V0T2JzZXJ2ZWRFbGVtZW50KClgXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJ1bmNvbnRyb2xsZWRcIjpcbiAgICAgICAgdGFic3Rlck9uRWxlbWVudC51bmNvbnRyb2xsZWQgPSBuZXdUYWJzdGVyUHJvcHMudW5jb250cm9sbGVkO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIm91dGxpbmVcIjpcbiAgICAgICAgaWYgKHRhYnN0ZXIub3V0bGluZSkge1xuICAgICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQub3V0bGluZSA9IG5ld1RhYnN0ZXJQcm9wcy5vdXRsaW5lO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIk91dGxpbmUgQVBJIHVzZWQgYmVmb3JlIGluaXRpYWxpemF0aW9uLCBwbGVhc2UgY2FsbCBgZ2V0T3V0bGluZSgpYFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwic3lzXCI6XG4gICAgICAgIHRhYnN0ZXJPbkVsZW1lbnQuc3lzID0gbmV3VGFic3RlclByb3BzLnN5cztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVua25vd24ga2V5ICcke2tleX0nIGluIGRhdGEtdGFic3RlciBhdHRyaWJ1dGUgdmFsdWUuYCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG5ld0F0dHIpIHtcbiAgICBlbnRyeS5hdHRyID0gbmV3QXR0cjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoT2JqZWN0LmtleXModGFic3Rlck9uRWxlbWVudCkubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZW50cnkudGFic3RlcjtcbiAgICAgIGRlbGV0ZSBlbnRyeS5hdHRyO1xuICAgIH1cblxuICAgIHRhYnN0ZXIuc3RvcmFnZUVudHJ5KGVsZW1lbnQsIGZhbHNlKTtcbiAgfVxufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5cbi8qKlxyXG4gKiBFdmVudHMgc2VudCBieSBUYWJzdGVyLlxyXG4gKi9cbmNvbnN0IFRhYnN0ZXJGb2N1c0luRXZlbnROYW1lID0gXCJ0YWJzdGVyOmZvY3VzaW5cIjtcbmNvbnN0IFRhYnN0ZXJGb2N1c091dEV2ZW50TmFtZSA9IFwidGFic3Rlcjpmb2N1c291dFwiOyAvLyBFdmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gVGFic3RlciB3YW50cyB0byBtb3ZlIGZvY3VzIGFzIHRoZSByZXN1bHQgb2Zcbi8vIGhhbmRsaW5nIGtleWJvYXJkIGV2ZW50LiBUaGlzIGFsbG93cyB0byBwcmV2ZW50RGVmYXVsdCgpIGlmIHlvdSB3YW50IHRvIGhhdmVcbi8vIHNvbWUgY3VzdG9tIGxvZ2ljLlxuXG5jb25zdCBUYWJzdGVyTW92ZUZvY3VzRXZlbnROYW1lID0gXCJ0YWJzdGVyOm1vdmVmb2N1c1wiO1xuLyoqXHJcbiAqIEV2ZW50cyBzZW50IGJ5IERlbG9zZXIuXHJcbiAqL1xuXG5jb25zdCBEZWxvc2VyRm9jdXNMb3N0RXZlbnROYW1lID0gXCJ0YWJzdGVyOmRlbG9zZXI6Zm9jdXMtbG9zdFwiO1xuLyoqXHJcbiAqIEV2ZW50cyB0byBiZSBzZW50IHRvIERlbG9zZXIgYnkgdGhlIGFwcGxpY2F0aW9uLlxyXG4gKi9cblxuY29uc3QgRGVsb3NlclJlc3RvcmVGb2N1c0V2ZW50TmFtZSA9IFwidGFic3RlcjpkZWxvc2VyOnJlc3RvcmUtZm9jdXNcIjtcbi8qKlxyXG4gKiBFdmVudHMgc2VudCBieSBNb2RhbGl6ZXIuXHJcbiAqL1xuXG5jb25zdCBNb2RhbGl6ZXJBY3RpdmVFdmVudE5hbWUgPSBcInRhYnN0ZXI6bW9kYWxpemVyOmFjdGl2ZVwiO1xuY29uc3QgTW9kYWxpemVySW5hY3RpdmVFdmVudE5hbWUgPSBcInRhYnN0ZXI6bW9kYWxpemVyOmluYWN0aXZlXCI7XG5jb25zdCBNb2RhbGl6ZXJGb2N1c0luRXZlbnROYW1lID0gXCJ0YWJzdGVyOm1vZGFsaXplcjpmb2N1c2luXCI7XG5jb25zdCBNb2RhbGl6ZXJGb2N1c091dEV2ZW50TmFtZSA9IFwidGFic3Rlcjptb2RhbGl6ZXI6Zm9jdXNvdXRcIjtcbi8qKlxyXG4gKiBFdmVudHMgc2VudCBieSBNb3Zlci5cclxuICovXG5cbmNvbnN0IE1vdmVyU3RhdGVFdmVudE5hbWUgPSBcInRhYnN0ZXI6bW92ZXI6c3RhdGVcIjtcbi8qKlxyXG4gKiBFdmVudHMgdG8gYmUgc2VudCB0byBNb3ZlciBieSB0aGUgYXBwbGljYXRpb24uXHJcbiAqL1xuLy8gRXZlbnQgdGhhdCBjYW4gYmUgZGlzcGF0Y2hlZCBieSB0aGUgYXBwbGljYXRpb24gdG8gcHJvZ3JhbW1hdGljYWxseSBtb3ZlXG4vLyBmb2N1cyBpbnNpZGUgTW92ZXIuXG5cbmNvbnN0IE1vdmVyTW92ZUZvY3VzRXZlbnROYW1lID0gXCJ0YWJzdGVyOm1vdmVyOm1vdmVmb2N1c1wiOyAvLyBFdmVudCB0aGF0IGNhbiBiZSBkaXNwYXRjaGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0byBmb3JnZXQgb3IgbW9kaWZ5XG4vLyBtZW1vcml6ZWQgZWxlbWVudCBpbiBNb3ZlciB3aXRoIG1lbW9yaXplQ3VycmVudCBwcm9wZXJ0eS5cblxuY29uc3QgTW92ZXJNZW1vcml6ZWRFbGVtZW50RXZlbnROYW1lID0gXCJ0YWJzdGVyOm1vdmVyOm1lbW9yaXplZC1lbGVtZW50XCI7XG4vKipcclxuICogRXZlbnRzIHNlbnQgYnkgR3JvdXBwZXIuXHJcbiAqL1xuXG4vKipcclxuICogRXZlbnRzIHRvIGJlIHNlbnQgdG8gR3JvdXBwZXIgYnkgdGhlIGFwcGxpY2F0aW9uLlxyXG4gKi9cbi8vIEV2ZW50IHRoYXQgY2FuIGJlIGRpc3BhdGNoZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHRvIHByb2dyYW1tYXRpY2FsbHkgZW50ZXJcbi8vIG9yIGVzY2FwZSBHcm91cHBlci5cblxuY29uc3QgR3JvdXBwZXJNb3ZlRm9jdXNFdmVudE5hbWUgPSBcInRhYnN0ZXI6Z3JvdXBwZXI6bW92ZWZvY3VzXCI7XG4vKipcclxuICogRXZlbnRzIHNlbnQgYnkgUmVzdG9yZXIuXHJcbiAqL1xuXG5jb25zdCBSZXN0b3JlclJlc3RvcmVGb2N1c0V2ZW50TmFtZSA9IFwidGFic3RlcjpyZXN0b3JlcjpyZXN0b3JlLWZvY3VzXCI7XG4vKipcclxuICogRXZlbnRzIHNlbnQgYnkgUm9vdC5cclxuICovXG5cbmNvbnN0IFJvb3RGb2N1c0V2ZW50TmFtZSA9IFwidGFic3Rlcjpyb290OmZvY3VzXCI7XG5jb25zdCBSb290Qmx1ckV2ZW50TmFtZSA9IFwidGFic3Rlcjpyb290OmJsdXJcIjsgLy8gTm9kZS5qcyBlbnZpcm9ubWVudHMgZG8gbm90IGhhdmUgQ3VzdG9tRXZlbnQgYW5kIGl0IGlzIG5lZWRlZCBmb3IgdGhlIGV2ZW50cyB0byBiZVxuLy8gZXZhbHVhdGVkLiBJdCBkb2Vzbid0IG1hdHRlciBpZiBpdCB3b3JrcyBvciBub3QgaW4gTm9kZS5qcyBlbnZpcm9ubWVudC5cbi8vIFNvLCB3ZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgaXQgZG9lc24ndCB0aHJvdyB1bmRlZmluZWQgcmVmZXJlbmNlLlxuXG5jb25zdCBDdXN0b21FdmVudF8gPSB0eXBlb2YgQ3VzdG9tRXZlbnQgIT09IFwidW5kZWZpbmVkXCIgPyBDdXN0b21FdmVudCA6IGZ1bmN0aW9uICgpIHtcbiAgLyogbm8tb3AgKi9cbn07XG5jbGFzcyBUYWJzdGVyQ3VzdG9tRXZlbnQgZXh0ZW5kcyBDdXN0b21FdmVudF8ge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBkZXRhaWwpIHtcbiAgICBzdXBlcih0eXBlLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgZGV0YWlsXG4gICAgfSk7XG4gICAgdGhpcy5kZXRhaWxzID0gZGV0YWlsO1xuICB9XG5cbn1cbmNsYXNzIFRhYnN0ZXJGb2N1c0luRXZlbnQgZXh0ZW5kcyBUYWJzdGVyQ3VzdG9tRXZlbnQge1xuICBjb25zdHJ1Y3RvcihkZXRhaWwpIHtcbiAgICBzdXBlcihUYWJzdGVyRm9jdXNJbkV2ZW50TmFtZSwgZGV0YWlsKTtcbiAgfVxuXG59XG5jbGFzcyBUYWJzdGVyRm9jdXNPdXRFdmVudCBleHRlbmRzIFRhYnN0ZXJDdXN0b21FdmVudCB7XG4gIGNvbnN0cnVjdG9yKGRldGFpbCkge1xuICAgIHN1cGVyKFRhYnN0ZXJGb2N1c091dEV2ZW50TmFtZSwgZGV0YWlsKTtcbiAgfVxuXG59XG5jbGFzcyBUYWJzdGVyTW92ZUZvY3VzRXZlbnQgZXh0ZW5kcyBUYWJzdGVyQ3VzdG9tRXZlbnQge1xuICBjb25zdHJ1Y3RvcihkZXRhaWwpIHtcbiAgICBzdXBlcihUYWJzdGVyTW92ZUZvY3VzRXZlbnROYW1lLCBkZXRhaWwpO1xuICB9XG5cbn1cbmNsYXNzIE1vdmVyU3RhdGVFdmVudCBleHRlbmRzIFRhYnN0ZXJDdXN0b21FdmVudCB7XG4gIGNvbnN0cnVjdG9yKGRldGFpbCkge1xuICAgIHN1cGVyKE1vdmVyU3RhdGVFdmVudE5hbWUsIGRldGFpbCk7XG4gIH1cblxufVxuY2xhc3MgTW92ZXJNb3ZlRm9jdXNFdmVudCBleHRlbmRzIFRhYnN0ZXJDdXN0b21FdmVudCB7XG4gIGNvbnN0cnVjdG9yKGRldGFpbCkge1xuICAgIHN1cGVyKE1vdmVyTW92ZUZvY3VzRXZlbnROYW1lLCBkZXRhaWwpO1xuICB9XG5cbn1cbmNsYXNzIE1vdmVyTWVtb3JpemVkRWxlbWVudEV2ZW50IGV4dGVuZHMgVGFic3RlckN1c3RvbUV2ZW50IHtcbiAgY29uc3RydWN0b3IoZGV0YWlsKSB7XG4gICAgc3VwZXIoTW92ZXJNZW1vcml6ZWRFbGVtZW50RXZlbnROYW1lLCBkZXRhaWwpO1xuICB9XG5cbn1cbmNsYXNzIEdyb3VwcGVyTW92ZUZvY3VzRXZlbnQgZXh0ZW5kcyBUYWJzdGVyQ3VzdG9tRXZlbnQge1xuICBjb25zdHJ1Y3RvcihkZXRhaWwpIHtcbiAgICBzdXBlcihHcm91cHBlck1vdmVGb2N1c0V2ZW50TmFtZSwgZGV0YWlsKTtcbiAgfVxuXG59XG5jbGFzcyBNb2RhbGl6ZXJBY3RpdmVFdmVudCBleHRlbmRzIFRhYnN0ZXJDdXN0b21FdmVudCB7XG4gIGNvbnN0cnVjdG9yKGRldGFpbCkge1xuICAgIHN1cGVyKE1vZGFsaXplckFjdGl2ZUV2ZW50TmFtZSwgZGV0YWlsKTtcbiAgfVxuXG59XG5jbGFzcyBNb2RhbGl6ZXJJbmFjdGl2ZUV2ZW50IGV4dGVuZHMgVGFic3RlckN1c3RvbUV2ZW50IHtcbiAgY29uc3RydWN0b3IoZGV0YWlsKSB7XG4gICAgc3VwZXIoTW9kYWxpemVySW5hY3RpdmVFdmVudE5hbWUsIGRldGFpbCk7XG4gIH1cblxufVxuY2xhc3MgRGVsb3NlckZvY3VzTG9zdEV2ZW50IGV4dGVuZHMgVGFic3RlckN1c3RvbUV2ZW50IHtcbiAgY29uc3RydWN0b3IoZGV0YWlsKSB7XG4gICAgc3VwZXIoRGVsb3NlckZvY3VzTG9zdEV2ZW50TmFtZSwgZGV0YWlsKTtcbiAgfVxuXG59XG5jbGFzcyBEZWxvc2VyUmVzdG9yZUZvY3VzRXZlbnQgZXh0ZW5kcyBUYWJzdGVyQ3VzdG9tRXZlbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihEZWxvc2VyUmVzdG9yZUZvY3VzRXZlbnROYW1lKTtcbiAgfVxuXG59XG5jbGFzcyBSZXN0b3JlclJlc3RvcmVGb2N1c0V2ZW50IGV4dGVuZHMgVGFic3RlckN1c3RvbUV2ZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUmVzdG9yZXJSZXN0b3JlRm9jdXNFdmVudE5hbWUpO1xuICB9XG5cbn1cbmNsYXNzIFJvb3RGb2N1c0V2ZW50IGV4dGVuZHMgVGFic3RlckN1c3RvbUV2ZW50IHtcbiAgY29uc3RydWN0b3IoZGV0YWlsKSB7XG4gICAgc3VwZXIoUm9vdEZvY3VzRXZlbnROYW1lLCBkZXRhaWwpO1xuICB9XG5cbn1cbmNsYXNzIFJvb3RCbHVyRXZlbnQgZXh0ZW5kcyBUYWJzdGVyQ3VzdG9tRXZlbnQge1xuICBjb25zdHJ1Y3RvcihkZXRhaWwpIHtcbiAgICBzdXBlcihSb290Qmx1ckV2ZW50TmFtZSwgZGV0YWlsKTtcbiAgfVxuXG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNvbnN0IF9jcmVhdGVNdXRhdGlvbk9ic2VydmVyID0gY2FsbGJhY2sgPT4gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuXG5jb25zdCBfY3JlYXRlVHJlZVdhbGtlciA9IChkb2MsIHJvb3QsIHdoYXRUb1Nob3csIGZpbHRlcikgPT4gZG9jLmNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgZmlsdGVyKTtcblxuY29uc3QgX2dldFBhcmVudE5vZGUgPSBub2RlID0+IG5vZGUgPyBub2RlLnBhcmVudE5vZGUgOiBudWxsO1xuXG5jb25zdCBfZ2V0UGFyZW50RWxlbWVudCA9IGVsZW1lbnQgPT4gZWxlbWVudCA/IGVsZW1lbnQucGFyZW50RWxlbWVudCA6IG51bGw7XG5cbmNvbnN0IF9ub2RlQ29udGFpbnMgPSAocGFyZW50LCBjaGlsZCkgPT4gISEoY2hpbGQgJiYgKHBhcmVudCA9PT0gbnVsbCB8fCBwYXJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudC5jb250YWlucyhjaGlsZCkpKTtcblxuY29uc3QgX2dldEFjdGl2ZUVsZW1lbnQgPSBkb2MgPT4gZG9jLmFjdGl2ZUVsZW1lbnQ7XG5cbmNvbnN0IF9xdWVyeVNlbGVjdG9yID0gKGVsZW1lbnQsIHNlbGVjdG9yKSA9PiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuXG5jb25zdCBfcXVlcnlTZWxlY3RvckFsbCA9IChlbGVtZW50LCBzZWxlY3RvcikgPT4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSwgMCk7XG5cbmNvbnN0IF9nZXRFbGVtZW50QnlJZCA9IChkb2MsIGlkKSA9PiBkb2MuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuXG5jb25zdCBfZ2V0Rmlyc3RDaGlsZCA9IG5vZGUgPT4gKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZS5maXJzdENoaWxkKSB8fCBudWxsO1xuXG5jb25zdCBfZ2V0TGFzdENoaWxkID0gbm9kZSA9PiAobm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub2RlLmxhc3RDaGlsZCkgfHwgbnVsbDtcblxuY29uc3QgX2dldE5leHRTaWJsaW5nID0gbm9kZSA9PiAobm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub2RlLm5leHRTaWJsaW5nKSB8fCBudWxsO1xuXG5jb25zdCBfZ2V0UHJldmlvdXNTaWJsaW5nID0gbm9kZSA9PiAobm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub2RlLnByZXZpb3VzU2libGluZykgfHwgbnVsbDtcblxuY29uc3QgX2dldEZpcnN0RWxlbWVudENoaWxkID0gZWxlbWVudCA9PiAoZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LmZpcnN0RWxlbWVudENoaWxkKSB8fCBudWxsO1xuXG5jb25zdCBfZ2V0TGFzdEVsZW1lbnRDaGlsZCA9IGVsZW1lbnQgPT4gKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5sYXN0RWxlbWVudENoaWxkKSB8fCBudWxsO1xuXG5jb25zdCBfZ2V0TmV4dEVsZW1lbnRTaWJsaW5nID0gZWxlbWVudCA9PiAoZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50Lm5leHRFbGVtZW50U2libGluZykgfHwgbnVsbDtcblxuY29uc3QgX2dldFByZXZpb3VzRWxlbWVudFNpYmxpbmcgPSBlbGVtZW50ID0+IChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZykgfHwgbnVsbDtcblxuY29uc3QgX2FwcGVuZENoaWxkID0gKHBhcmVudCwgY2hpbGQpID0+IHBhcmVudC5hcHBlbmRDaGlsZChjaGlsZCk7XG5cbmNvbnN0IF9pbnNlcnRCZWZvcmUgPSAocGFyZW50LCBjaGlsZCwgcmVmZXJlbmNlQ2hpbGQpID0+IHBhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIHJlZmVyZW5jZUNoaWxkKTtcblxuY29uc3QgX2dldFNlbGVjdGlvbiA9IHJlZiA9PiB7XG4gIHZhciBfYTtcblxuICByZXR1cm4gKChfYSA9IHJlZi5vd25lckRvY3VtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0U2VsZWN0aW9uKCkpIHx8IG51bGw7XG59O1xuXG5jb25zdCBfZ2V0RWxlbWVudHNCeU5hbWUgPSAocmVmZXJlbmNlRWxlbWVudCwgbmFtZSkgPT4gcmVmZXJlbmNlRWxlbWVudC5vd25lckRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKG5hbWUpO1xuXG5jb25zdCBkb20gPSB7XG4gIGNyZWF0ZU11dGF0aW9uT2JzZXJ2ZXI6IF9jcmVhdGVNdXRhdGlvbk9ic2VydmVyLFxuICBjcmVhdGVUcmVlV2Fsa2VyOiBfY3JlYXRlVHJlZVdhbGtlcixcbiAgZ2V0UGFyZW50Tm9kZTogX2dldFBhcmVudE5vZGUsXG4gIGdldFBhcmVudEVsZW1lbnQ6IF9nZXRQYXJlbnRFbGVtZW50LFxuICBub2RlQ29udGFpbnM6IF9ub2RlQ29udGFpbnMsXG4gIGdldEFjdGl2ZUVsZW1lbnQ6IF9nZXRBY3RpdmVFbGVtZW50LFxuICBxdWVyeVNlbGVjdG9yOiBfcXVlcnlTZWxlY3RvcixcbiAgcXVlcnlTZWxlY3RvckFsbDogX3F1ZXJ5U2VsZWN0b3JBbGwsXG4gIGdldEVsZW1lbnRCeUlkOiBfZ2V0RWxlbWVudEJ5SWQsXG4gIGdldEZpcnN0Q2hpbGQ6IF9nZXRGaXJzdENoaWxkLFxuICBnZXRMYXN0Q2hpbGQ6IF9nZXRMYXN0Q2hpbGQsXG4gIGdldE5leHRTaWJsaW5nOiBfZ2V0TmV4dFNpYmxpbmcsXG4gIGdldFByZXZpb3VzU2libGluZzogX2dldFByZXZpb3VzU2libGluZyxcbiAgZ2V0Rmlyc3RFbGVtZW50Q2hpbGQ6IF9nZXRGaXJzdEVsZW1lbnRDaGlsZCxcbiAgZ2V0TGFzdEVsZW1lbnRDaGlsZDogX2dldExhc3RFbGVtZW50Q2hpbGQsXG4gIGdldE5leHRFbGVtZW50U2libGluZzogX2dldE5leHRFbGVtZW50U2libGluZyxcbiAgZ2V0UHJldmlvdXNFbGVtZW50U2libGluZzogX2dldFByZXZpb3VzRWxlbWVudFNpYmxpbmcsXG4gIGFwcGVuZENoaWxkOiBfYXBwZW5kQ2hpbGQsXG4gIGluc2VydEJlZm9yZTogX2luc2VydEJlZm9yZSxcbiAgZ2V0U2VsZWN0aW9uOiBfZ2V0U2VsZWN0aW9uLFxuICBnZXRFbGVtZW50c0J5TmFtZTogX2dldEVsZW1lbnRzQnlOYW1lXG59O1xuZnVuY3Rpb24gc2V0RE9NQVBJKGRvbWFwaSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkb21hcGkpKSB7XG4gICAgZG9tW2tleV0gPSBkb21hcGlba2V5XTtcbiAgfVxufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5cbmxldCBfaXNCcm9rZW5JRTExO1xuXG5jb25zdCBfRE9NUmVjdCA9IHR5cGVvZiBET01SZWN0ICE9PSBcInVuZGVmaW5lZFwiID8gRE9NUmVjdCA6IGNsYXNzIHtcbiAgY29uc3RydWN0b3IoeCwgeSwgd2lkdGgsIGhlaWdodCkge1xuICAgIHRoaXMubGVmdCA9IHggfHwgMDtcbiAgICB0aGlzLnRvcCA9IHkgfHwgMDtcbiAgICB0aGlzLnJpZ2h0ID0gKHggfHwgMCkgKyAod2lkdGggfHwgMCk7XG4gICAgdGhpcy5ib3R0b20gPSAoeSB8fCAwKSArIChoZWlnaHQgfHwgMCk7XG4gIH1cblxufTtcblxubGV0IF91aWRDb3VudGVyID0gMDtcblxudHJ5IHtcbiAgLy8gSUUxMSBvbmx5IGFjY2VwdHMgYGZpbHRlcmAgYXJndW1lbnQgYXMgYSBmdW5jdGlvbiAobm90IG9iamVjdCB3aXRoIHRoZSBgYWNjZXB0Tm9kZWBcbiAgLy8gcHJvcGVydHkgYXMgdGhlIGRvY3MgZGVmaW5lKS4gQWxzbyBgZW50aXR5UmVmZXJlbmNlRXhwYW5zaW9uYCBhcmd1bWVudCBpcyBub3RcbiAgLy8gb3B0aW9uYWwuIEFuZCBpdCB0aHJvd3MgZXhjZXB0aW9uIHdoZW4gdGhlIGFib3ZlIGFyZ3VtZW50cyBhcmVuJ3QgdGhlcmUuXG4gIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UKTtcbiAgX2lzQnJva2VuSUUxMSA9IGZhbHNlO1xufSBjYXRjaCAoZSkge1xuICBfaXNCcm9rZW5JRTExID0gdHJ1ZTtcbn1cblxuY29uc3QgX3VwZGF0ZUR1bW15SW5wdXRzVGltZW91dCA9IDEwMDtcbmZ1bmN0aW9uIGdldEluc3RhbmNlQ29udGV4dChnZXRXaW5kb3cpIHtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KCk7XG4gIGxldCBjdHggPSB3aW4uX190YWJzdGVySW5zdGFuY2VDb250ZXh0O1xuXG4gIGlmICghY3R4KSB7XG4gICAgY3R4ID0ge1xuICAgICAgZWxlbWVudEJ5VUlkOiB7fSxcbiAgICAgIGJhc2ljczoge1xuICAgICAgICBQcm9taXNlOiB3aW4uUHJvbWlzZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIFdlYWtSZWY6IHdpbi5XZWFrUmVmIHx8IHVuZGVmaW5lZFxuICAgICAgfSxcbiAgICAgIGNvbnRhaW5lckJvdW5kaW5nUmVjdENhY2hlOiB7fSxcbiAgICAgIGxhc3RDb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZUlkOiAwLFxuICAgICAgZmFrZVdlYWtSZWZzOiBbXSxcbiAgICAgIGZha2VXZWFrUmVmc1N0YXJ0ZWQ6IGZhbHNlXG4gICAgfTtcbiAgICB3aW4uX190YWJzdGVySW5zdGFuY2VDb250ZXh0ID0gY3R4O1xuICB9XG5cbiAgcmV0dXJuIGN0eDtcbn1cbmZ1bmN0aW9uIGRpc3Bvc2VJbnN0YW5jZUNvbnRleHQod2luKSB7XG4gIGNvbnN0IGN0eCA9IHdpbi5fX3RhYnN0ZXJJbnN0YW5jZUNvbnRleHQ7XG5cbiAgaWYgKGN0eCkge1xuICAgIGN0eC5lbGVtZW50QnlVSWQgPSB7fTtcbiAgICBkZWxldGUgY3R4LldlYWtSZWY7XG4gICAgY3R4LmNvbnRhaW5lckJvdW5kaW5nUmVjdENhY2hlID0ge307XG5cbiAgICBpZiAoY3R4LmNvbnRhaW5lckJvdW5kaW5nUmVjdENhY2hlVGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQoY3R4LmNvbnRhaW5lckJvdW5kaW5nUmVjdENhY2hlVGltZXIpO1xuICAgIH1cblxuICAgIGlmIChjdHguZmFrZVdlYWtSZWZzVGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQoY3R4LmZha2VXZWFrUmVmc1RpbWVyKTtcbiAgICB9XG5cbiAgICBjdHguZmFrZVdlYWtSZWZzID0gW107XG4gICAgZGVsZXRlIHdpbi5fX3RhYnN0ZXJJbnN0YW5jZUNvbnRleHQ7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVdlYWtNYXAod2luKSB7XG4gIGNvbnN0IGN0eCA9IHdpbi5fX3RhYnN0ZXJJbnN0YW5jZUNvbnRleHQ7XG4gIHJldHVybiBuZXcgKChjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHguYmFzaWNzLldlYWtNYXApIHx8IFdlYWtNYXApKCk7XG59XG5mdW5jdGlvbiBoYXNTdWJGb2N1c2FibGUoZWxlbWVudCkge1xuICByZXR1cm4gISFlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoRk9DVVNBQkxFX1NFTEVDVE9SKTtcbn1cblxuY2xhc3MgRmFrZVdlYWtSZWYge1xuICBjb25zdHJ1Y3Rvcih0YXJnZXQpIHtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gIH1cblxuICBkZXJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICB9XG5cbiAgc3RhdGljIGNsZWFudXAoZndyLCBmb3JjZVJlbW92ZSkge1xuICAgIGlmICghZndyLl90YXJnZXQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChmb3JjZVJlbW92ZSB8fCAhZG9jdW1lbnRDb250YWlucyhmd3IuX3RhcmdldC5vd25lckRvY3VtZW50LCBmd3IuX3RhcmdldCkpIHtcbiAgICAgIGRlbGV0ZSBmd3IuX3RhcmdldDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG5cbmNsYXNzIFdlYWtIVE1MRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGdldFdpbmRvdywgZWxlbWVudCwgZGF0YSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBnZXRJbnN0YW5jZUNvbnRleHQoZ2V0V2luZG93KTtcbiAgICBsZXQgcmVmO1xuXG4gICAgaWYgKGNvbnRleHQuV2Vha1JlZikge1xuICAgICAgcmVmID0gbmV3IGNvbnRleHQuV2Vha1JlZihlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVmID0gbmV3IEZha2VXZWFrUmVmKGVsZW1lbnQpO1xuICAgICAgY29udGV4dC5mYWtlV2Vha1JlZnMucHVzaChyZWYpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlZiA9IHJlZjtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCgpIHtcbiAgICBjb25zdCByZWYgPSB0aGlzLl9yZWY7XG4gICAgbGV0IGVsZW1lbnQ7XG5cbiAgICBpZiAocmVmKSB7XG4gICAgICBlbGVtZW50ID0gcmVmLmRlcmVmKCk7XG5cbiAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICBkZWxldGUgdGhpcy5fcmVmO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG5cbiAgZ2V0RGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG59XG5mdW5jdGlvbiBjbGVhbnVwRmFrZVdlYWtSZWZzKGdldFdpbmRvdywgZm9yY2VSZW1vdmUpIHtcbiAgY29uc3QgY29udGV4dCA9IGdldEluc3RhbmNlQ29udGV4dChnZXRXaW5kb3cpO1xuICBjb250ZXh0LmZha2VXZWFrUmVmcyA9IGNvbnRleHQuZmFrZVdlYWtSZWZzLmZpbHRlcihlID0+ICFGYWtlV2Vha1JlZi5jbGVhbnVwKGUsIGZvcmNlUmVtb3ZlKSk7XG59XG5mdW5jdGlvbiBzdGFydEZha2VXZWFrUmVmc0NsZWFudXAoZ2V0V2luZG93KSB7XG4gIGNvbnN0IGNvbnRleHQgPSBnZXRJbnN0YW5jZUNvbnRleHQoZ2V0V2luZG93KTtcblxuICBpZiAoIWNvbnRleHQuZmFrZVdlYWtSZWZzU3RhcnRlZCkge1xuICAgIGNvbnRleHQuZmFrZVdlYWtSZWZzU3RhcnRlZCA9IHRydWU7XG4gICAgY29udGV4dC5XZWFrUmVmID0gZ2V0V2Vha1JlZihjb250ZXh0KTtcbiAgfVxuXG4gIGlmICghY29udGV4dC5mYWtlV2Vha1JlZnNUaW1lcikge1xuICAgIGNvbnRleHQuZmFrZVdlYWtSZWZzVGltZXIgPSBnZXRXaW5kb3coKS5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnRleHQuZmFrZVdlYWtSZWZzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICBjbGVhbnVwRmFrZVdlYWtSZWZzKGdldFdpbmRvdyk7XG4gICAgICBzdGFydEZha2VXZWFrUmVmc0NsZWFudXAoZ2V0V2luZG93KTtcbiAgICB9LCAyICogNjAgKiAxMDAwKTsgLy8gMiBtaW51dGVzLlxuICB9XG59XG5mdW5jdGlvbiBzdG9wRmFrZVdlYWtSZWZzQ2xlYW51cEFuZENsZWFyU3RvcmFnZShnZXRXaW5kb3cpIHtcbiAgY29uc3QgY29udGV4dCA9IGdldEluc3RhbmNlQ29udGV4dChnZXRXaW5kb3cpO1xuICBjb250ZXh0LmZha2VXZWFrUmVmc1N0YXJ0ZWQgPSBmYWxzZTtcblxuICBpZiAoY29udGV4dC5mYWtlV2Vha1JlZnNUaW1lcikge1xuICAgIGdldFdpbmRvdygpLmNsZWFyVGltZW91dChjb250ZXh0LmZha2VXZWFrUmVmc1RpbWVyKTtcbiAgICBjb250ZXh0LmZha2VXZWFrUmVmc1RpbWVyID0gdW5kZWZpbmVkO1xuICAgIGNvbnRleHQuZmFrZVdlYWtSZWZzID0gW107XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUcmVlV2Fsa2VyKGRvYywgcm9vdCwgYWNjZXB0Tm9kZSkge1xuICAvLyBJRTExIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIHdoZW4gdGhlIFRyZWVXYWxrZXIgcm9vdCBpcyBub3QgYW4gRWxlbWVudC5cbiAgaWYgKHJvb3Qubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSAvLyBUeXBlU2NyaXB0IGlzbid0IGF3YXJlIG9mIElFMTEgYmVoYXZpbmcgYmFkbHkuXG5cblxuICBjb25zdCBmaWx0ZXIgPSBfaXNCcm9rZW5JRTExID8gYWNjZXB0Tm9kZSA6IHtcbiAgICBhY2NlcHROb2RlXG4gIH07XG4gIHJldHVybiBkb20uY3JlYXRlVHJlZVdhbGtlcihkb2MsIHJvb3QsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBmaWx0ZXIsIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZTogV2Ugc3RpbGwgZG9uJ3Qgd2FudCB0byBjb21wbGV0ZWx5IGJyZWFrIElFMTEsIHNvLCBlbnRpdHlSZWZlcmVuY2VFeHBhbnNpb24gYXJndW1lbnQgaXMgbm90IG9wdGlvbmFsLlxuICBmYWxzZVxuICAvKiBMYXN0IGFyZ3VtZW50IGlzIG5vdCBvcHRpb25hbCBmb3IgSUUxMSEgKi9cbiAgKTtcbn1cbmZ1bmN0aW9uIGdldEJvdW5kaW5nUmVjdChnZXRXaW5kb3csIGVsZW1lbnQpIHtcbiAgbGV0IGNhY2hlSWQgPSBlbGVtZW50Ll9fdGFic3RlckNhY2hlSWQ7XG4gIGNvbnN0IGNvbnRleHQgPSBnZXRJbnN0YW5jZUNvbnRleHQoZ2V0V2luZG93KTtcbiAgY29uc3QgY2FjaGVkID0gY2FjaGVJZCA/IGNvbnRleHQuY29udGFpbmVyQm91bmRpbmdSZWN0Q2FjaGVbY2FjaGVJZF0gOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGNhY2hlZCkge1xuICAgIHJldHVybiBjYWNoZWQucmVjdDtcbiAgfVxuXG4gIGNvbnN0IHNjcm9sbGluZ0VsZW1lbnQgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQgJiYgZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICBpZiAoIXNjcm9sbGluZ0VsZW1lbnQpIHtcbiAgICByZXR1cm4gbmV3IF9ET01SZWN0KCk7XG4gIH0gLy8gQSBib3VuZGluZyByZWN0IG9mIHRoZSB0b3AtbGV2ZWwgZWxlbWVudCBjb250YWlucyB0aGUgd2hvbGUgcGFnZSByZWdhcmRsZXNzIG9mIHRoZVxuICAvLyBzY3JvbGxiYXIuIFNvLCB3ZSBpbXByb3Zpc2UgYSBsaXR0bGUgYW5kIGxpbWl0aW5nIHRoZSBmaW5hbCByZXN1bHQuLi5cblxuXG4gIGxldCBsZWZ0ID0gMDtcbiAgbGV0IHRvcCA9IDA7XG4gIGxldCByaWdodCA9IHNjcm9sbGluZ0VsZW1lbnQuY2xpZW50V2lkdGg7XG4gIGxldCBib3R0b20gPSBzY3JvbGxpbmdFbGVtZW50LmNsaWVudEhlaWdodDtcblxuICBpZiAoZWxlbWVudCAhPT0gc2Nyb2xsaW5nRWxlbWVudCkge1xuICAgIGNvbnN0IHIgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGxlZnQgPSBNYXRoLm1heChsZWZ0LCByLmxlZnQpO1xuICAgIHRvcCA9IE1hdGgubWF4KHRvcCwgci50b3ApO1xuICAgIHJpZ2h0ID0gTWF0aC5taW4ocmlnaHQsIHIucmlnaHQpO1xuICAgIGJvdHRvbSA9IE1hdGgubWluKGJvdHRvbSwgci5ib3R0b20pO1xuICB9XG5cbiAgY29uc3QgcmVjdCA9IG5ldyBfRE9NUmVjdChsZWZ0IDwgcmlnaHQgPyBsZWZ0IDogLTEsIHRvcCA8IGJvdHRvbSA/IHRvcCA6IC0xLCBsZWZ0IDwgcmlnaHQgPyByaWdodCAtIGxlZnQgOiAwLCB0b3AgPCBib3R0b20gPyBib3R0b20gLSB0b3AgOiAwKTtcblxuICBpZiAoIWNhY2hlSWQpIHtcbiAgICBjYWNoZUlkID0gXCJyLVwiICsgKytjb250ZXh0Lmxhc3RDb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZUlkO1xuICAgIGVsZW1lbnQuX190YWJzdGVyQ2FjaGVJZCA9IGNhY2hlSWQ7XG4gIH1cblxuICBjb250ZXh0LmNvbnRhaW5lckJvdW5kaW5nUmVjdENhY2hlW2NhY2hlSWRdID0ge1xuICAgIHJlY3QsXG4gICAgZWxlbWVudFxuICB9O1xuXG4gIGlmICghY29udGV4dC5jb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZVRpbWVyKSB7XG4gICAgY29udGV4dC5jb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29udGV4dC5jb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZVRpbWVyID0gdW5kZWZpbmVkO1xuXG4gICAgICBmb3IgKGNvbnN0IGNJZCBvZiBPYmplY3Qua2V5cyhjb250ZXh0LmNvbnRhaW5lckJvdW5kaW5nUmVjdENhY2hlKSkge1xuICAgICAgICBkZWxldGUgY29udGV4dC5jb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZVtjSWRdLmVsZW1lbnQuX190YWJzdGVyQ2FjaGVJZDtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5jb250YWluZXJCb3VuZGluZ1JlY3RDYWNoZSA9IHt9O1xuICAgIH0sIDUwKTtcbiAgfVxuXG4gIHJldHVybiByZWN0O1xufVxuZnVuY3Rpb24gaXNFbGVtZW50VmVydGljYWxseVZpc2libGVJbkNvbnRhaW5lcihnZXRXaW5kb3csIGVsZW1lbnQsIHRvbGVyYW5jZSkge1xuICBjb25zdCBjb250YWluZXIgPSBnZXRTY3JvbGxhYmxlQ29udGFpbmVyKGVsZW1lbnQpO1xuXG4gIGlmICghY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGdldEJvdW5kaW5nUmVjdChnZXRXaW5kb3csIGNvbnRhaW5lcik7XG4gIGNvbnN0IGVsZW1lbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgaW50ZXJzZWN0aW9uVG9sZXJhbmNlID0gZWxlbWVudFJlY3QuaGVpZ2h0ICogKDEgLSB0b2xlcmFuY2UpO1xuICBjb25zdCB0b3BJbnRlcnNlY3Rpb24gPSBNYXRoLm1heCgwLCBjb250YWluZXJSZWN0LnRvcCAtIGVsZW1lbnRSZWN0LnRvcCk7XG4gIGNvbnN0IGJvdHRvbUludGVyc2VjdGlvbiA9IE1hdGgubWF4KDAsIGVsZW1lbnRSZWN0LmJvdHRvbSAtIGNvbnRhaW5lclJlY3QuYm90dG9tKTtcbiAgY29uc3QgdG90YWxJbnRlcnNlY3Rpb24gPSB0b3BJbnRlcnNlY3Rpb24gKyBib3R0b21JbnRlcnNlY3Rpb247XG4gIHJldHVybiB0b3RhbEludGVyc2VjdGlvbiA9PT0gMCB8fCB0b3RhbEludGVyc2VjdGlvbiA8PSBpbnRlcnNlY3Rpb25Ub2xlcmFuY2U7XG59XG5mdW5jdGlvbiBzY3JvbGxJbnRvVmlldyhnZXRXaW5kb3csIGVsZW1lbnQsIGFsaWduVG9Ub3ApIHtcbiAgLy8gQnVpbHQtaW4gRE9NJ3Mgc2Nyb2xsSW50b1ZpZXcoKSBpcyBjb29sLCBidXQgd2hlbiB3ZSBoYXZlIG5lc3RlZCBjb250YWluZXJzLFxuICAvLyBpdCBzY3JvbGxzIGFsbCBvZiB0aGVtLCBub3QganVzdCB0aGUgZGVlcGVzdCBvbmUuIFNvLCB0cnlpbmcgdG8gd29yayBpdCBhcm91bmQuXG4gIGNvbnN0IGNvbnRhaW5lciA9IGdldFNjcm9sbGFibGVDb250YWluZXIoZWxlbWVudCk7XG5cbiAgaWYgKGNvbnRhaW5lcikge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBnZXRCb3VuZGluZ1JlY3QoZ2V0V2luZG93LCBjb250YWluZXIpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChhbGlnblRvVG9wKSB7XG4gICAgICBjb250YWluZXIuc2Nyb2xsVG9wICs9IGVsZW1lbnRSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuc2Nyb2xsVG9wICs9IGVsZW1lbnRSZWN0LmJvdHRvbSAtIGNvbnRhaW5lclJlY3QuYm90dG9tO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZ2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50KSB7XG4gIGNvbnN0IGRvYyA9IGVsZW1lbnQub3duZXJEb2N1bWVudDtcblxuICBpZiAoZG9jKSB7XG4gICAgZm9yIChsZXQgZWwgPSBkb20uZ2V0UGFyZW50RWxlbWVudChlbGVtZW50KTsgZWw7IGVsID0gZG9tLmdldFBhcmVudEVsZW1lbnQoZWwpKSB7XG4gICAgICBpZiAoZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aCB8fCBlbC5zY3JvbGxIZWlnaHQgPiBlbC5jbGllbnRIZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBtYWtlRm9jdXNJZ25vcmVkKGVsZW1lbnQpIHtcbiAgZWxlbWVudC5fX3Nob3VsZElnbm9yZUZvY3VzID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHNob3VsZElnbm9yZUZvY3VzKGVsZW1lbnQpIHtcbiAgcmV0dXJuICEhZWxlbWVudC5fX3Nob3VsZElnbm9yZUZvY3VzO1xufVxuZnVuY3Rpb24gZ2V0VUlkKHduZCkge1xuICBjb25zdCBybmQgPSBuZXcgVWludDMyQXJyYXkoNCk7XG5cbiAgaWYgKHduZC5jcnlwdG8gJiYgd25kLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHtcbiAgICB3bmQuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhybmQpO1xuICB9IGVsc2UgaWYgKHduZC5tc0NyeXB0byAmJiB3bmQubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKSB7XG4gICAgd25kLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhybmQpO1xuICB9IGVsc2Uge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm5kLmxlbmd0aDsgaSsrKSB7XG4gICAgICBybmRbaV0gPSAweGZmZmZmZmZmICogTWF0aC5yYW5kb20oKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBzcm5kID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBybmQubGVuZ3RoOyBpKyspIHtcbiAgICBzcm5kLnB1c2gocm5kW2ldLnRvU3RyaW5nKDM2KSk7XG4gIH1cblxuICBzcm5kLnB1c2goXCJ8XCIpO1xuICBzcm5kLnB1c2goKCsrX3VpZENvdW50ZXIpLnRvU3RyaW5nKDM2KSk7XG4gIHNybmQucHVzaChcInxcIik7XG4gIHNybmQucHVzaChEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSk7XG4gIHJldHVybiBzcm5kLmpvaW4oXCJcIik7XG59XG5mdW5jdGlvbiBnZXRFbGVtZW50VUlkKGdldFdpbmRvdywgZWxlbWVudCkge1xuICBjb25zdCBjb250ZXh0ID0gZ2V0SW5zdGFuY2VDb250ZXh0KGdldFdpbmRvdyk7XG4gIGxldCB1aWQgPSBlbGVtZW50Ll9fdGFic3RlckVsZW1lbnRVSUQ7XG5cbiAgaWYgKCF1aWQpIHtcbiAgICB1aWQgPSBlbGVtZW50Ll9fdGFic3RlckVsZW1lbnRVSUQgPSBnZXRVSWQoZ2V0V2luZG93KCkpO1xuICB9XG5cbiAgaWYgKCFjb250ZXh0LmVsZW1lbnRCeVVJZFt1aWRdICYmIGRvY3VtZW50Q29udGFpbnMoZWxlbWVudC5vd25lckRvY3VtZW50LCBlbGVtZW50KSkge1xuICAgIGNvbnRleHQuZWxlbWVudEJ5VUlkW3VpZF0gPSBuZXcgV2Vha0hUTUxFbGVtZW50KGdldFdpbmRvdywgZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gdWlkO1xufVxuZnVuY3Rpb24gZ2V0V2luZG93VUlkKHdpbikge1xuICBsZXQgdWlkID0gd2luLl9fdGFic3RlckNyb3NzT3JpZ2luV2luZG93VUlEO1xuXG4gIGlmICghdWlkKSB7XG4gICAgdWlkID0gd2luLl9fdGFic3RlckNyb3NzT3JpZ2luV2luZG93VUlEID0gZ2V0VUlkKHdpbik7XG4gIH1cblxuICByZXR1cm4gdWlkO1xufVxuZnVuY3Rpb24gY2xlYXJFbGVtZW50Q2FjaGUoZ2V0V2luZG93LCBwYXJlbnQpIHtcbiAgY29uc3QgY29udGV4dCA9IGdldEluc3RhbmNlQ29udGV4dChnZXRXaW5kb3cpO1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbnRleHQuZWxlbWVudEJ5VUlkKSkge1xuICAgIGNvbnN0IHdlbCA9IGNvbnRleHQuZWxlbWVudEJ5VUlkW2tleV07XG4gICAgY29uc3QgZWwgPSB3ZWwgJiYgd2VsLmdldCgpO1xuXG4gICAgaWYgKGVsICYmIHBhcmVudCkge1xuICAgICAgaWYgKCFkb20ubm9kZUNvbnRhaW5zKHBhcmVudCwgZWwpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRlbGV0ZSBjb250ZXh0LmVsZW1lbnRCeVVJZFtrZXldO1xuICB9XG59IC8vIElFMTEgZG9lc24ndCBoYXZlIGRvY3VtZW50LmNvbnRhaW5zKCkuLi5cblxuZnVuY3Rpb24gZG9jdW1lbnRDb250YWlucyhkb2MsIGVsZW1lbnQpIHtcbiAgcmV0dXJuIGRvbS5ub2RlQ29udGFpbnMoZG9jID09PSBudWxsIHx8IGRvYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZG9jLmJvZHksIGVsZW1lbnQpO1xufVxuZnVuY3Rpb24gbWF0Y2hlc1NlbGVjdG9yKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBlbGVtZW50Lm1hdGNoZXMgfHwgZWxlbWVudC5tYXRjaGVzU2VsZWN0b3IgfHwgZWxlbWVudC5tc01hdGNoZXNTZWxlY3RvciB8fCBlbGVtZW50LndlYmtpdE1hdGNoZXNTZWxlY3RvcjtcbiAgcmV0dXJuIG1hdGNoZXMgJiYgbWF0Y2hlcy5jYWxsKGVsZW1lbnQsIHNlbGVjdG9yKTtcbn1cbmZ1bmN0aW9uIGdldFByb21pc2UoZ2V0V2luZG93KSB7XG4gIGNvbnN0IGNvbnRleHQgPSBnZXRJbnN0YW5jZUNvbnRleHQoZ2V0V2luZG93KTtcblxuICBpZiAoY29udGV4dC5iYXNpY3MuUHJvbWlzZSkge1xuICAgIHJldHVybiBjb250ZXh0LmJhc2ljcy5Qcm9taXNlO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFwiTm8gUHJvbWlzZSBkZWZpbmVkLlwiKTtcbn1cbmZ1bmN0aW9uIGdldFdlYWtSZWYoY29udGV4dCkge1xuICByZXR1cm4gY29udGV4dC5iYXNpY3MuV2Vha1JlZjtcbn1cbmxldCBfbGFzdFRhYnN0ZXJQYXJ0SWQgPSAwO1xuY2xhc3MgVGFic3RlclBhcnQge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCBlbGVtZW50LCBwcm9wcykge1xuICAgIGNvbnN0IGdldFdpbmRvdyA9IHRhYnN0ZXIuZ2V0V2luZG93O1xuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX2VsZW1lbnQgPSBuZXcgV2Vha0hUTUxFbGVtZW50KGdldFdpbmRvdywgZWxlbWVudCk7XG4gICAgdGhpcy5fcHJvcHMgPSB7IC4uLnByb3BzXG4gICAgfTtcbiAgICB0aGlzLmlkID0gXCJpXCIgKyArK19sYXN0VGFic3RlclBhcnRJZDtcbiAgfVxuXG4gIGdldEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuZ2V0KCk7XG4gIH1cblxuICBnZXRQcm9wcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJvcHM7XG4gIH1cblxuICBzZXRQcm9wcyhwcm9wcykge1xuICAgIHRoaXMuX3Byb3BzID0geyAuLi5wcm9wc1xuICAgIH07XG4gIH1cblxufVxuLyoqXHJcbiAqIER1bW15IEhUTUwgZWxlbWVudHMgdGhhdCBhcmUgdXNlZCBhcyBmb2N1cyBzZW50aW5lbHMgZm9yIHRoZSBET00gZW5jbG9zZWQgd2l0aGluIHRoZW1cclxuICovXG5cbmNsYXNzIER1bW15SW5wdXQge1xuICBjb25zdHJ1Y3RvcihnZXRXaW5kb3csIGlzT3V0c2lkZSwgcHJvcHMsIGVsZW1lbnQsIGZpeGVkVGFyZ2V0KSB7XG4gICAgdmFyIF9hO1xuXG4gICAgdGhpcy5fZm9jdXNJbiA9IGUgPT4ge1xuICAgICAgaWYgKHRoaXMuX2ZpeGVkVGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuX2ZpeGVkVGFyZ2V0LmdldCgpO1xuXG4gICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICBuYXRpdmVGb2N1cyh0YXJnZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQ7XG5cbiAgICAgIGlmICh0aGlzLm9uRm9jdXNJbiAmJiBpbnB1dCkge1xuICAgICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZS5yZWxhdGVkVGFyZ2V0O1xuICAgICAgICB0aGlzLm9uRm9jdXNJbih0aGlzLCB0aGlzLl9pc0JhY2t3YXJkKHRydWUsIGlucHV0LCByZWxhdGVkVGFyZ2V0KSwgcmVsYXRlZFRhcmdldCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX2ZvY3VzT3V0ID0gZSA9PiB7XG4gICAgICBpZiAodGhpcy5fZml4ZWRUYXJnZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVzZURlZmF1bHRBY3Rpb24gPSBmYWxzZTtcbiAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dDtcblxuICAgICAgaWYgKHRoaXMub25Gb2N1c091dCAmJiBpbnB1dCkge1xuICAgICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZS5yZWxhdGVkVGFyZ2V0O1xuICAgICAgICB0aGlzLm9uRm9jdXNPdXQodGhpcywgdGhpcy5faXNCYWNrd2FyZChmYWxzZSwgaW5wdXQsIHJlbGF0ZWRUYXJnZXQpLCByZWxhdGVkVGFyZ2V0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgd2luID0gZ2V0V2luZG93KCk7XG4gICAgY29uc3QgaW5wdXQgPSB3aW4uZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlcIik7XG4gICAgaW5wdXQudGFiSW5kZXggPSAwO1xuICAgIGlucHV0LnNldEF0dHJpYnV0ZShcInJvbGVcIiwgXCJub25lXCIpO1xuICAgIGlucHV0LnNldEF0dHJpYnV0ZShUQUJTVEVSX0RVTU1ZX0lOUFVUX0FUVFJJQlVURV9OQU1FLCBcIlwiKTtcbiAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCBcInRydWVcIik7XG4gICAgY29uc3Qgc3R5bGUgPSBpbnB1dC5zdHlsZTtcbiAgICBzdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcbiAgICBzdHlsZS53aWR0aCA9IHN0eWxlLmhlaWdodCA9IFwiMXB4XCI7XG4gICAgc3R5bGUub3BhY2l0eSA9IFwiMC4wMDFcIjtcbiAgICBzdHlsZS56SW5kZXggPSBcIi0xXCI7XG4gICAgc3R5bGUuc2V0UHJvcGVydHkoXCJjb250ZW50LXZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIik7XG4gICAgbWFrZUZvY3VzSWdub3JlZChpbnB1dCk7XG4gICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgIHRoaXMuaXNGaXJzdCA9IHByb3BzLmlzRmlyc3Q7XG4gICAgdGhpcy5pc091dHNpZGUgPSBpc091dHNpZGU7XG4gICAgdGhpcy5faXNQaGFudG9tID0gKF9hID0gcHJvcHMuaXNQaGFudG9tKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZTtcbiAgICB0aGlzLl9maXhlZFRhcmdldCA9IGZpeGVkVGFyZ2V0O1xuICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsIHRoaXMuX2ZvY3VzSW4pO1xuICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCB0aGlzLl9mb2N1c091dCk7XG4gICAgaW5wdXQuX190YWJzdGVyRHVtbXlDb250YWluZXIgPSBlbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuX2lzUGhhbnRvbSkge1xuICAgICAgdGhpcy5fZGlzcG9zZVRpbWVyID0gd2luLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBkZWxldGUgdGhpcy5fZGlzcG9zZVRpbWVyO1xuICAgICAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgICAgIH0sIDApO1xuXG4gICAgICB0aGlzLl9jbGVhckRpc3Bvc2VUaW1lb3V0ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fZGlzcG9zZVRpbWVyKSB7XG4gICAgICAgICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9kaXNwb3NlVGltZXIpO1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kaXNwb3NlVGltZXI7XG4gICAgICAgIH1cblxuICAgICAgICBkZWxldGUgdGhpcy5fY2xlYXJEaXNwb3NlVGltZW91dDtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBpZiAodGhpcy5fY2xlYXJEaXNwb3NlVGltZW91dCkge1xuICAgICAgdGhpcy5fY2xlYXJEaXNwb3NlVGltZW91dCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dDtcblxuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkZWxldGUgdGhpcy5fZml4ZWRUYXJnZXQ7XG4gICAgZGVsZXRlIHRoaXMub25Gb2N1c0luO1xuICAgIGRlbGV0ZSB0aGlzLm9uRm9jdXNPdXQ7XG4gICAgZGVsZXRlIHRoaXMuaW5wdXQ7XG4gICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIiwgdGhpcy5fZm9jdXNJbik7XG4gICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIHRoaXMuX2ZvY3VzT3V0KTtcbiAgICBkZWxldGUgaW5wdXQuX190YWJzdGVyRHVtbXlDb250YWluZXI7XG4gICAgKF9hID0gZG9tLmdldFBhcmVudE5vZGUoaW5wdXQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVtb3ZlQ2hpbGQoaW5wdXQpO1xuICB9XG5cbiAgc2V0VG9wTGVmdCh0b3AsIGxlZnQpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCBzdHlsZSA9IChfYSA9IHRoaXMuaW5wdXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdHlsZTtcblxuICAgIGlmIChzdHlsZSkge1xuICAgICAgc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgICAgIHN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YDtcbiAgICB9XG4gIH1cblxuICBfaXNCYWNrd2FyZChpc0luLCBjdXJyZW50LCBwcmV2aW91cykge1xuICAgIHJldHVybiBpc0luICYmICFwcmV2aW91cyA/ICF0aGlzLmlzRmlyc3QgOiAhIShwcmV2aW91cyAmJiBjdXJyZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHByZXZpb3VzKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HKTtcbiAgfVxuXG59XG5jb25zdCBEdW1teUlucHV0TWFuYWdlclByaW9yaXRpZXMgPSB7XG4gIFJvb3Q6IDEsXG4gIE1vZGFsaXplcjogMixcbiAgTW92ZXI6IDMsXG4gIEdyb3VwcGVyOiA0XG59O1xuY2xhc3MgRHVtbXlJbnB1dE1hbmFnZXIge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCBlbGVtZW50LCBwcmlvcml0eSwgc3lzLCBvdXRzaWRlQnlEZWZhdWx0LCBjYWxsRm9yRGVmYXVsdEFjdGlvbikge1xuICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50O1xuICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IER1bW15SW5wdXRNYW5hZ2VyQ29yZSh0YWJzdGVyLCBlbGVtZW50LCB0aGlzLCBwcmlvcml0eSwgc3lzLCBvdXRzaWRlQnlEZWZhdWx0LCBjYWxsRm9yRGVmYXVsdEFjdGlvbik7XG4gIH1cblxuICBfc2V0SGFuZGxlcnMob25Gb2N1c0luLCBvbkZvY3VzT3V0KSB7XG4gICAgdGhpcy5fb25Gb2N1c0luID0gb25Gb2N1c0luO1xuICAgIHRoaXMuX29uRm9jdXNPdXQgPSBvbkZvY3VzT3V0O1xuICB9XG5cbiAgbW92ZU91dChiYWNrd2FyZHMpIHtcbiAgICB2YXIgX2E7XG5cbiAgICAoX2EgPSB0aGlzLl9pbnN0YW5jZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1vdmVPdXQoYmFja3dhcmRzKTtcbiAgfVxuXG4gIG1vdmVPdXRXaXRoRGVmYXVsdEFjdGlvbihiYWNrd2FyZHMsIHJlbGF0ZWRFdmVudCkge1xuICAgIHZhciBfYTtcblxuICAgIChfYSA9IHRoaXMuX2luc3RhbmNlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubW92ZU91dFdpdGhEZWZhdWx0QWN0aW9uKGJhY2t3YXJkcywgcmVsYXRlZEV2ZW50KTtcbiAgfVxuXG4gIGdldEhhbmRsZXIoaXNJbikge1xuICAgIHJldHVybiBpc0luID8gdGhpcy5fb25Gb2N1c0luIDogdGhpcy5fb25Gb2N1c091dDtcbiAgfVxuXG4gIHNldFRhYmJhYmxlKHRhYmJhYmxlKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgKF9hID0gdGhpcy5faW5zdGFuY2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZXRUYWJiYWJsZSh0aGlzLCB0YWJiYWJsZSk7XG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGlmICh0aGlzLl9pbnN0YW5jZSkge1xuICAgICAgdGhpcy5faW5zdGFuY2UuZGlzcG9zZSh0aGlzKTtcblxuICAgICAgZGVsZXRlIHRoaXMuX2luc3RhbmNlO1xuICAgIH1cblxuICAgIGRlbGV0ZSB0aGlzLl9vbkZvY3VzSW47XG4gICAgZGVsZXRlIHRoaXMuX29uRm9jdXNPdXQ7XG4gIH1cblxuICBzdGF0aWMgbW92ZVdpdGhQaGFudG9tRHVtbXkodGFic3RlciwgZWxlbWVudCwgLy8gVGhlIHRhcmdldCBlbGVtZW50IHRvIG1vdmUgdG8gb3Igb3V0IG9mLlxuICBtb3ZlT3V0T2ZFbGVtZW50LCAvLyBXaGV0aGVyIHRvIG1vdmUgb3V0IG9mIHRoZSBlbGVtZW50IG9yIGludG8gaXQuXG4gIGlzQmFja3dhcmQsIC8vIEFyZSB3ZSB0YWJiaW5nIG9mIHNoaWZ0LXRhYmJpbmc/XG4gIHJlbGF0ZWRFdmVudCAvLyBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIG1vdmUuXG4gICkge1xuICAgIC8vIFBoYW50b20gZHVtbXkgaXMgYSBoYWNrIHRvIHVzZSBicm93c2VyJ3MgZGVmYXVsdCBhY3Rpb24gdG8gbW92ZVxuICAgIC8vIGZvY3VzIGZyb20gYSBzcGVjaWZpYyBwb2ludCBpbiB0aGUgYXBwbGljYXRpb24gdG8gdGhlIG5leHQvcHJldmlvdXNcbiAgICAvLyBlbGVtZW50LiBEZWZhdWx0IGFjdGlvbiBpcyBuZWVkZWQgYmVjYXVzZSBuZXh0IGZvY3VzYWJsZSBlbGVtZW50XG4gICAgLy8gaXMgbm90IGFsd2F5cyBhdmFpbGFibGUgdG8gZm9jdXMgZGlyZWN0bHkgKGZvciBleGFtcGxlLCBuZXh0IGZvY3VzYWJsZVxuICAgIC8vIGlzIGluc2lkZSBpc29sYXRlZCBpZnJhbWUpIG9yIGZvciB1bmNvbnRyb2xsZWQgYXJlYXMgd2Ugd2FudCB0byBtYWtlXG4gICAgLy8gc3VyZSB0aGF0IHNvbWV0aGluZyB0aGF0IGNvbnRyb2xzIGl0IHRha2VzIGNhcmUgb2YgdGhlIGZvY3VzaW5nLlxuICAgIC8vIEl0IHdvcmtzIGluIGEgd2F5IHRoYXQgZHVyaW5nIHRoZSBUYWIga2V5IGhhbmRsaW5nLCB3ZSBjcmVhdGUgYSBkdW1teVxuICAgIC8vIGlucHV0IGVsZW1lbnQsIHBsYWNlIGl0IHRvIHRoZSBzcGVjaWZpYyBwbGFjZSBpbiB0aGUgRE9NIGFuZCBmb2N1cyBpdCxcbiAgICAvLyB0aGVuIHRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgVGFiIHByZXNzIHdpbGwgbW92ZSBmb2N1cyBmcm9tIG91ciBkdW1teVxuICAgIC8vIGlucHV0LiBBbmQgd2UgcmVtb3ZlIGl0IGZyb20gdGhlIERPTSByaWdodCBhZnRlciB0aGF0LlxuICAgIGNvbnN0IGR1bW15ID0gbmV3IER1bW15SW5wdXQodGFic3Rlci5nZXRXaW5kb3csIHRydWUsIHtcbiAgICAgIGlzUGhhbnRvbTogdHJ1ZSxcbiAgICAgIGlzRmlyc3Q6IHRydWVcbiAgICB9KTtcbiAgICBjb25zdCBpbnB1dCA9IGR1bW15LmlucHV0O1xuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBsZXQgcGFyZW50O1xuICAgICAgbGV0IGluc2VydEJlZm9yZTsgLy8gTGV0J3Mgc2F5IHdlIGhhdmUgYSBmb2xsb3dpbmcgRE9NIHN0cnVjdHVyZTpcbiAgICAgIC8vIDxkaXY+XG4gICAgICAvLyAgIDxidXR0b24+QnV0dG9uMTwvYnV0dG9uPlxuICAgICAgLy8gICA8ZGl2IGlkPVwidW5jb250cm9sbGVkXCIgZGF0YS10YWJzdGVyPXt1bmNvbnRyb2xsZWQ6IHt9fT5cbiAgICAgIC8vICAgICA8YnV0dG9uPkJ1dHRvbjI8L2J1dHRvbj5cbiAgICAgIC8vICAgICA8YnV0dG9uPkJ1dHRvbjM8L2J1dHRvbj5cbiAgICAgIC8vICAgPC9kaXY+XG4gICAgICAvLyAgIDxidXR0b24+QnV0dG9uNDwvYnV0dG9uPlxuICAgICAgLy8gPC9kaXY+XG4gICAgICAvL1xuICAgICAgLy8gV2UgcGFzcyB0aGUgXCJ1bmNvbnRyb2xsZWRcIiBkaXYgYXMgdGhlIGVsZW1lbnQgdG8gbW92ZSB0byBvciBvdXQgb2YuXG4gICAgICAvL1xuICAgICAgLy8gV2hlbiB3ZSBwYXNzIG1vdmVPdXRPZkVsZW1lbnQ9dHJ1ZSBhbmQgaXNCYWNrd2FyZD1mYWxzZSxcbiAgICAgIC8vIHRoZSBwaGFudG9tIGR1bW15IGlucHV0IHdpbGwgYmUgaW5zZXJ0ZWQgYmVmb3JlIEJ1dHRvbjQuXG4gICAgICAvL1xuICAgICAgLy8gV2hlbiB3ZSBwYXNzIG1vdmVPdXRPZkVsZW1lbnQ9dHJ1ZSBhbmQgaXNCYWNrd2FyZD10cnVlLCB0aGVyZSBhcmVcbiAgICAgIC8vIHR3byBjYXNlcy4gSWYgdGhlIHVuY29udHJvbGxlZCBlbGVtZW50IGlzIGZvY3VzYWJsZSAoaGFzIHRhYmluZGV4PTApLFxuICAgICAgLy8gdGhlIHBoYW50b20gZHVtbXkgaW5wdXQgd2lsbCBiZSBpbnNlcnRlZCBhZnRlciBCdXR0b24xLiBJZiB0aGVcbiAgICAgIC8vIHVuY29udHJvbGxlZCBlbGVtZW50IGlzIG5vdCBmb2N1c2FibGUsIHRoZSBwaGFudG9tIGR1bW15IGlucHV0IHdpbGwgYmVcbiAgICAgIC8vIGluc2VydGVkIGJlZm9yZSBCdXR0b24yLlxuICAgICAgLy9cbiAgICAgIC8vIFdoZW4gd2UgcGFzcyBtb3ZlT3V0T2ZFbGVtZW50PWZhbHNlIGFuZCBpc0JhY2t3YXJkPWZhbHNlLCB0aGVcbiAgICAgIC8vIHBoYW50b20gZHVtbXkgaW5wdXQgd2lsbCBiZSBpbnNlcnRlZCBhZnRlciBCdXR0b24xLlxuICAgICAgLy9cbiAgICAgIC8vIFdoZW4gd2UgcGFzcyBtb3ZlT3V0T2ZFbGVtZW50PWZhbHNlIGFuZCBpc0JhY2t3YXJkPXRydWUsIHRoZSBwaGFudG9tXG4gICAgICAvLyBkdW1teSBpbnB1dCB3aWxsIGJlIGluc2VydGVkIGJlZm9yZSBCdXR0b240LlxuICAgICAgLy9cbiAgICAgIC8vIEFuZCB3ZSBoYXZlIGEgY29ybmVyIGNhc2UgZm9yIDxib2R5PiBhbmQgd2UgbWFrZSBzdXJlIHRoYXQgdGhlIGluc2VydGVkXG4gICAgICAvLyBkdW1teSBpcyBpbnNlcnRlZCBwcm9wZXJseSB3aGVuIHRoZXJlIGFyZSBleGlzdGluZyBwZXJtYW5lbnQgZHVtbWllcy5cblxuICAgICAgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gXCJCT0RZXCIpIHtcbiAgICAgICAgLy8gV2UgY2Fubm90IGluc2VydCBlbGVtZW50cyBvdXRzaWRlIG9mIEJPRFkuXG4gICAgICAgIHBhcmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIGluc2VydEJlZm9yZSA9IG1vdmVPdXRPZkVsZW1lbnQgJiYgaXNCYWNrd2FyZCB8fCAhbW92ZU91dE9mRWxlbWVudCAmJiAhaXNCYWNrd2FyZCA/IGRvbS5nZXRGaXJzdEVsZW1lbnRDaGlsZChlbGVtZW50KSA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobW92ZU91dE9mRWxlbWVudCAmJiAoIWlzQmFja3dhcmQgfHwgaXNCYWNrd2FyZCAmJiAhdGFic3Rlci5mb2N1c2FibGUuaXNGb2N1c2FibGUoZWxlbWVudCwgZmFsc2UsIHRydWUsIHRydWUpKSkge1xuICAgICAgICAgIHBhcmVudCA9IGVsZW1lbnQ7XG4gICAgICAgICAgaW5zZXJ0QmVmb3JlID0gaXNCYWNrd2FyZCA/IGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQgOiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmVudCA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICAgIGluc2VydEJlZm9yZSA9IG1vdmVPdXRPZkVsZW1lbnQgJiYgaXNCYWNrd2FyZCB8fCAhbW92ZU91dE9mRWxlbWVudCAmJiAhaXNCYWNrd2FyZCA/IGVsZW1lbnQgOiBkb20uZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBvdGVudGlhbER1bW15O1xuICAgICAgICBsZXQgZHVtbXlGb3I7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSBzYWZldHkgcGlsbG93IGZvciB0aGUgY2FzZXMgd2hlbiBzb21lb25lLCBjb21iaW5lc1xuICAgICAgICAgIC8vIGdyb3VwcGVyIHdpdGggdW5jb250cm9sbGVkIG9uIHRoZSBzYW1lIG5vZGUuIFdoaWNoIGlzIHRlY2huaWNhbGx5XG4gICAgICAgICAgLy8gbm90IGNvcnJlY3QsIGJ1dCBtb3ZpbmcgaW50byB0aGUgY29udGFpbmVyIGVsZW1lbnQgdmlhIGl0cyBkdW1teVxuICAgICAgICAgIC8vIGlucHV0IHdvdWxkIHByb2R1Y2UgYSBjb3JyZWN0IGJlaGF2aW91ciBpbiB1bmNvbnRyb2xsZWQgbW9kZS5cbiAgICAgICAgICBwb3RlbnRpYWxEdW1teSA9IG1vdmVPdXRPZkVsZW1lbnQgJiYgaXNCYWNrd2FyZCB8fCAhbW92ZU91dE9mRWxlbWVudCAmJiAhaXNCYWNrd2FyZCA/IGRvbS5nZXRQcmV2aW91c0VsZW1lbnRTaWJsaW5nKGluc2VydEJlZm9yZSkgOiBpbnNlcnRCZWZvcmU7XG4gICAgICAgICAgZHVtbXlGb3IgPSBnZXREdW1teUlucHV0Q29udGFpbmVyKHBvdGVudGlhbER1bW15KTtcblxuICAgICAgICAgIGlmIChkdW1teUZvciA9PT0gZWxlbWVudCkge1xuICAgICAgICAgICAgaW5zZXJ0QmVmb3JlID0gbW92ZU91dE9mRWxlbWVudCAmJiBpc0JhY2t3YXJkIHx8ICFtb3ZlT3V0T2ZFbGVtZW50ICYmICFpc0JhY2t3YXJkID8gcG90ZW50aWFsRHVtbXkgOiBkb20uZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKHBvdGVudGlhbER1bW15KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZHVtbXlGb3IgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSB3aGlsZSAoZHVtbXlGb3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50ID09PSBudWxsIHx8IHBhcmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50LmRpc3BhdGNoRXZlbnQobmV3IFRhYnN0ZXJNb3ZlRm9jdXNFdmVudCh7XG4gICAgICAgIGJ5OiBcInJvb3RcIixcbiAgICAgICAgb3duZXI6IHBhcmVudCxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgICAgcmVsYXRlZEV2ZW50XG4gICAgICB9KSkpIHtcbiAgICAgICAgZG9tLmluc2VydEJlZm9yZShwYXJlbnQsIGlucHV0LCBpbnNlcnRCZWZvcmUpO1xuICAgICAgICBuYXRpdmVGb2N1cyhpbnB1dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGFkZFBoYW50b21EdW1teVdpdGhUYXJnZXQodGFic3Rlciwgc291cmNlRWxlbWVudCwgaXNCYWNrd2FyZCwgdGFyZ2V0RWxlbWVudCkge1xuICAgIGNvbnN0IGR1bW15ID0gbmV3IER1bW15SW5wdXQodGFic3Rlci5nZXRXaW5kb3csIHRydWUsIHtcbiAgICAgIGlzUGhhbnRvbTogdHJ1ZSxcbiAgICAgIGlzRmlyc3Q6IHRydWVcbiAgICB9LCB1bmRlZmluZWQsIG5ldyBXZWFrSFRNTEVsZW1lbnQodGFic3Rlci5nZXRXaW5kb3csIHRhcmdldEVsZW1lbnQpKTtcbiAgICBjb25zdCBpbnB1dCA9IGR1bW15LmlucHV0O1xuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBsZXQgZHVtbXlQYXJlbnQ7XG4gICAgICBsZXQgaW5zZXJ0QmVmb3JlO1xuXG4gICAgICBpZiAoaGFzU3ViRm9jdXNhYmxlKHNvdXJjZUVsZW1lbnQpICYmICFpc0JhY2t3YXJkKSB7XG4gICAgICAgIGR1bW15UGFyZW50ID0gc291cmNlRWxlbWVudDtcbiAgICAgICAgaW5zZXJ0QmVmb3JlID0gZG9tLmdldEZpcnN0RWxlbWVudENoaWxkKHNvdXJjZUVsZW1lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHVtbXlQYXJlbnQgPSBkb20uZ2V0UGFyZW50RWxlbWVudChzb3VyY2VFbGVtZW50KTtcbiAgICAgICAgaW5zZXJ0QmVmb3JlID0gaXNCYWNrd2FyZCA/IHNvdXJjZUVsZW1lbnQgOiBkb20uZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKHNvdXJjZUVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZHVtbXlQYXJlbnQpIHtcbiAgICAgICAgZG9tLmluc2VydEJlZm9yZShkdW1teVBhcmVudCwgaW5wdXQsIGluc2VydEJlZm9yZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuZnVuY3Rpb24gc2V0RHVtbXlJbnB1dERlYnVnVmFsdWUoZHVtbXksIHdyYXBwZXJzKSB7XG4gIHZhciBfYTtcblxuICBjb25zdCB3aGF0ID0ge1xuICAgIDE6IFwiUm9vdFwiLFxuICAgIDI6IFwiTW9kYWxpemVyXCIsXG4gICAgMzogXCJNb3ZlclwiLFxuICAgIDQ6IFwiR3JvdXBwZXJcIlxuICB9O1xuICAoX2EgPSBkdW1teS5pbnB1dCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldEF0dHJpYnV0ZShUQUJTVEVSX0RVTU1ZX0lOUFVUX0FUVFJJQlVURV9OQU1FLCBbYGlzRmlyc3Q9JHtkdW1teS5pc0ZpcnN0fWAsIGBpc091dHNpZGU9JHtkdW1teS5pc091dHNpZGV9YCwgLi4ud3JhcHBlcnMubWFwKHcgPT4gYCgke3doYXRbdy5wcmlvcml0eV19LCB0YWJiYWJsZT0ke3cudGFiYmFibGV9KWApXS5qb2luKFwiLCBcIikpO1xufVxuXG5jbGFzcyBEdW1teUlucHV0T2JzZXJ2ZXIge1xuICBjb25zdHJ1Y3Rvcih3aW4pIHtcbiAgICB0aGlzLl91cGRhdGVRdWV1ZSA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLl9sYXN0VXBkYXRlUXVldWVUaW1lID0gMDtcbiAgICB0aGlzLl9jaGFuZ2VkUGFyZW50cyA9IG5ldyBXZWFrU2V0KCk7XG4gICAgdGhpcy5fZHVtbXlFbGVtZW50cyA9IFtdO1xuICAgIHRoaXMuX2R1bW15Q2FsbGJhY2tzID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHRoaXMuX2RvbUNoYW5nZWQgPSBwYXJlbnQgPT4ge1xuICAgICAgdmFyIF9hO1xuXG4gICAgICBpZiAodGhpcy5fY2hhbmdlZFBhcmVudHMuaGFzKHBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9jaGFuZ2VkUGFyZW50cy5hZGQocGFyZW50KTtcblxuICAgICAgaWYgKHRoaXMuX3VwZGF0ZUR1bW15SW5wdXRzVGltZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl91cGRhdGVEdW1teUlucHV0c1RpbWVyID0gKF9hID0gdGhpcy5fd2luKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzKS5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZUR1bW15SW5wdXRzVGltZXI7XG5cbiAgICAgICAgZm9yIChjb25zdCByZWYgb2YgdGhpcy5fZHVtbXlFbGVtZW50cykge1xuICAgICAgICAgIGNvbnN0IGR1bW15RWxlbWVudCA9IHJlZi5nZXQoKTtcblxuICAgICAgICAgIGlmIChkdW1teUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gdGhpcy5fZHVtbXlDYWxsYmFja3MuZ2V0KGR1bW15RWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICBjb25zdCBkdW1teVBhcmVudCA9IGRvbS5nZXRQYXJlbnROb2RlKGR1bW15RWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgaWYgKCFkdW1teVBhcmVudCB8fCB0aGlzLl9jaGFuZ2VkUGFyZW50cy5oYXMoZHVtbXlQYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZWRQYXJlbnRzID0gbmV3IFdlYWtTZXQoKTtcbiAgICAgIH0sIF91cGRhdGVEdW1teUlucHV0c1RpbWVvdXQpO1xuICAgIH07XG5cbiAgICB0aGlzLl93aW4gPSB3aW47XG4gIH1cblxuICBhZGQoZHVtbXksIGNhbGxiYWNrKSB7XG4gICAgaWYgKCF0aGlzLl9kdW1teUNhbGxiYWNrcy5oYXMoZHVtbXkpICYmIHRoaXMuX3dpbikge1xuICAgICAgdGhpcy5fZHVtbXlFbGVtZW50cy5wdXNoKG5ldyBXZWFrSFRNTEVsZW1lbnQodGhpcy5fd2luLCBkdW1teSkpO1xuXG4gICAgICB0aGlzLl9kdW1teUNhbGxiYWNrcy5zZXQoZHVtbXksIGNhbGxiYWNrKTtcblxuICAgICAgdGhpcy5kb21DaGFuZ2VkID0gdGhpcy5fZG9tQ2hhbmdlZDtcbiAgICB9XG4gIH1cblxuICByZW1vdmUoZHVtbXkpIHtcbiAgICB0aGlzLl9kdW1teUVsZW1lbnRzID0gdGhpcy5fZHVtbXlFbGVtZW50cy5maWx0ZXIocmVmID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSByZWYuZ2V0KCk7XG4gICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50ICE9PSBkdW1teTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2R1bW15Q2FsbGJhY2tzLmRlbGV0ZShkdW1teSk7XG5cbiAgICBpZiAodGhpcy5fZHVtbXlFbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmRvbUNoYW5nZWQ7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCB3aW4gPSAoX2EgPSB0aGlzLl93aW4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMpO1xuXG4gICAgaWYgKHRoaXMuX3VwZGF0ZVRpbWVyKSB7XG4gICAgICB3aW4gPT09IG51bGwgfHwgd2luID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW4uY2xlYXJUaW1lb3V0KHRoaXMuX3VwZGF0ZVRpbWVyKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVUaW1lcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdXBkYXRlRHVtbXlJbnB1dHNUaW1lcikge1xuICAgICAgd2luID09PSBudWxsIHx8IHdpbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luLmNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVEdW1teUlucHV0c1RpbWVyKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVEdW1teUlucHV0c1RpbWVyO1xuICAgIH1cblxuICAgIHRoaXMuX2NoYW5nZWRQYXJlbnRzID0gbmV3IFdlYWtTZXQoKTtcbiAgICB0aGlzLl9kdW1teUNhbGxiYWNrcyA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdGhpcy5fZHVtbXlFbGVtZW50cyA9IFtdO1xuXG4gICAgdGhpcy5fdXBkYXRlUXVldWUuY2xlYXIoKTtcblxuICAgIGRlbGV0ZSB0aGlzLmRvbUNoYW5nZWQ7XG4gICAgZGVsZXRlIHRoaXMuX3dpbjtcbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9ucyhjb21wdXRlKSB7XG4gICAgaWYgKCF0aGlzLl93aW4pIHtcbiAgICAgIC8vIEFzIHRoaXMgaXMgYSBwdWJsaWMgbWV0aG9kLCB3ZSBtYWtlIHN1cmUgdGhhdCBpdCBoYXMgbm8gZWZmZWN0IHdoZW5cbiAgICAgIC8vIGNhbGxlZCBhZnRlciBkaXNwb3NlKCkuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlUXVldWUuYWRkKGNvbXB1dGUpO1xuXG4gICAgdGhpcy5fbGFzdFVwZGF0ZVF1ZXVlVGltZSA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9zY2hlZHVsZWRVcGRhdGVQb3NpdGlvbnMoKTtcbiAgfVxuXG4gIF9zY2hlZHVsZWRVcGRhdGVQb3NpdGlvbnMoKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgaWYgKHRoaXMuX3VwZGF0ZVRpbWVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlVGltZXIgPSAoX2EgPSB0aGlzLl93aW4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMpLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZVRpbWVyOyAvLyB1cGRhdGVQb3NpdGlvbnMoKSBtaWdodCBiZSBjYWxsZWQgcXVpdGUgYSBsb3QgZHVyaW5nIHRoZSBzY3JvbGxpbmcuXG4gICAgICAvLyBTbywgaW5zdGVhZCBvZiBjbGVhcmluZyB0aGUgdGltZW91dCBhbmQgc2NoZWR1bGluZyBhIG5ldyBvbmUsIHdlXG4gICAgICAvLyBjaGVjayBpZiBlbm91Z2ggdGltZSBoYXMgcGFzc2VkIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZVBvc2l0aW9ucygpIGNhbGxcbiAgICAgIC8vIGFuZCBvbmx5IHNjaGVkdWxlIGEgbmV3IG9uZSBpZiBub3QuXG4gICAgICAvLyBBdCBtYXhpbXVtLCB3ZSB3aWxsIHVwZGF0ZSBkdW1teSBpbnB1dHMgcG9zaXRpb25zXG4gICAgICAvLyBfdXBkYXRlRHVtbXlJbnB1dHNUaW1lb3V0ICogMiBhZnRlciB0aGUgbGFzdCB1cGRhdGVQb3NpdGlvbnMoKSBjYWxsLlxuXG4gICAgICBpZiAodGhpcy5fbGFzdFVwZGF0ZVF1ZXVlVGltZSArIF91cGRhdGVEdW1teUlucHV0c1RpbWVvdXQgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICAvLyBBIGNhY2hlIGZvciBjdXJyZW50IGJ1bGsgb2YgdXBkYXRlcyB0byByZWR1Y2UgZ2V0Q29tcHV0ZWRTdHlsZSgpIGNhbGxzLlxuICAgICAgICBjb25zdCBzY3JvbGxUb3BMZWZ0Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IHNldFRvcExlZnRDYWxsYmFja3MgPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbXB1dGUgb2YgdGhpcy5fdXBkYXRlUXVldWUpIHtcbiAgICAgICAgICBzZXRUb3BMZWZ0Q2FsbGJhY2tzLnB1c2goY29tcHV0ZShzY3JvbGxUb3BMZWZ0Q2FjaGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3VwZGF0ZVF1ZXVlLmNsZWFyKCk7IC8vIFdlJ3JlIHNwbGl0dGluZyB0aGUgY29tcHV0YXRpb24gb2Ygb2Zmc2V0cyBhbmQgc2V0dGluZyB0aGVtIHRvIGF2b2lkIGV4dHJhXG4gICAgICAgIC8vIHJlZmxvd3MuXG5cblxuICAgICAgICBmb3IgKGNvbnN0IHNldFRvcExlZnQgb2Ygc2V0VG9wTGVmdENhbGxiYWNrcykge1xuICAgICAgICAgIHNldFRvcExlZnQoKTtcbiAgICAgICAgfSAvLyBFeHBsaWNpdGx5IGNsZWFyIHRvIG5vdCBob2xkIHJlZmVyZW5jZXMgdGlsbCB0aGUgbmV4dCBnYXJiYWdlIGNvbGxlY3Rpb24uXG5cblxuICAgICAgICBzY3JvbGxUb3BMZWZ0Q2FjaGUuY2xlYXIoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3NjaGVkdWxlZFVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgfVxuICAgIH0sIF91cGRhdGVEdW1teUlucHV0c1RpbWVvdXQpO1xuICB9XG5cbn1cbi8qKlxyXG4gKiBQYXJlbnQgY2xhc3MgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIGJlaGF2aW91ciBvZiBkdW1teSBpbnB1dHMgKGZvY3VzIHNlbnRpbmVscylcclxuICovXG5cbmNsYXNzIER1bW15SW5wdXRNYW5hZ2VyQ29yZSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGVsZW1lbnQsIG1hbmFnZXIsIHByaW9yaXR5LCBzeXMsIG91dHNpZGVCeURlZmF1bHQsIGNhbGxGb3JEZWZhdWx0QWN0aW9uKSB7XG4gICAgdGhpcy5fd3JhcHBlcnMgPSBbXTtcbiAgICB0aGlzLl9pc091dHNpZGUgPSBmYWxzZTtcbiAgICB0aGlzLl90cmFuc2Zvcm1FbGVtZW50cyA9IG5ldyBTZXQoKTtcblxuICAgIHRoaXMuX29uRm9jdXNJbiA9IChkdW1teUlucHV0LCBpc0JhY2t3YXJkLCByZWxhdGVkVGFyZ2V0KSA9PiB7XG4gICAgICB0aGlzLl9vbkZvY3VzKHRydWUsIGR1bW15SW5wdXQsIGlzQmFja3dhcmQsIHJlbGF0ZWRUYXJnZXQpO1xuICAgIH07XG5cbiAgICB0aGlzLl9vbkZvY3VzT3V0ID0gKGR1bW15SW5wdXQsIGlzQmFja3dhcmQsIHJlbGF0ZWRUYXJnZXQpID0+IHtcbiAgICAgIHRoaXMuX29uRm9jdXMoZmFsc2UsIGR1bW15SW5wdXQsIGlzQmFja3dhcmQsIHJlbGF0ZWRUYXJnZXQpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdmVPdXQgPSBiYWNrd2FyZHMgPT4ge1xuICAgICAgdmFyIF9hO1xuXG4gICAgICBjb25zdCBmaXJzdCA9IHRoaXMuX2ZpcnN0RHVtbXk7XG4gICAgICBjb25zdCBsYXN0ID0gdGhpcy5fbGFzdER1bW15O1xuXG4gICAgICBpZiAoZmlyc3QgJiYgbGFzdCkge1xuICAgICAgICAvLyBGb3IgdGhlIHNha2Ugb2YgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLCB0aGUgZHVtbXkgaW5wdXRcbiAgICAgICAgLy8gcG9zaXRpb24gaW4gdGhlIERPTSB1cGRhdGVzIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIERPTSBjaGFuZ2UuXG4gICAgICAgIC8vIENhbGxpbmcgX2Vuc3VyZVBvc2l0aW9uKCkgdG8gbWFrZSBzdXJlIHRoZSBwb3NpdGlvbiBpcyBjb3JyZWN0LlxuICAgICAgICB0aGlzLl9lbnN1cmVQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSBmaXJzdC5pbnB1dDtcbiAgICAgICAgY29uc3QgbGFzdElucHV0ID0gbGFzdC5pbnB1dDtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IChfYSA9IHRoaXMuX2VsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKTtcblxuICAgICAgICBpZiAoZmlyc3RJbnB1dCAmJiBsYXN0SW5wdXQgJiYgZWxlbWVudCkge1xuICAgICAgICAgIGxldCB0b0ZvY3VzO1xuXG4gICAgICAgICAgaWYgKGJhY2t3YXJkcykge1xuICAgICAgICAgICAgZmlyc3RJbnB1dC50YWJJbmRleCA9IDA7XG4gICAgICAgICAgICB0b0ZvY3VzID0gZmlyc3RJbnB1dDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFzdElucHV0LnRhYkluZGV4ID0gMDtcbiAgICAgICAgICAgIHRvRm9jdXMgPSBsYXN0SW5wdXQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzKHRvRm9jdXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLyoqXHJcbiAgICAgKiBQcmVwYXJlcyB0byBtb3ZlIGZvY3VzIG91dCBvZiB0aGUgZ2l2ZW4gZWxlbWVudCBieSBmb2N1c2luZ1xyXG4gICAgICogb25lIG9mIHRoZSBkdW1teSBpbnB1dHMgYW5kIHNldHRpbmcgdGhlIGB1c2VEZWZhdWx0QWN0aW9uYCBmbGFnXHJcbiAgICAgKiBAcGFyYW0gYmFja3dhcmRzIGZvY3VzIG1vdmluZyB0byBhbiBlbGVtZW50IGJlaGluZCB0aGUgZ2l2ZW4gZWxlbWVudFxyXG4gICAgICovXG5cblxuICAgIHRoaXMubW92ZU91dFdpdGhEZWZhdWx0QWN0aW9uID0gKGJhY2t3YXJkcywgcmVsYXRlZEV2ZW50KSA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5fZmlyc3REdW1teTtcbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLl9sYXN0RHVtbXk7XG5cbiAgICAgIGlmIChmaXJzdCAmJiBsYXN0KSB7XG4gICAgICAgIC8vIEZvciB0aGUgc2FrZSBvZiBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24sIHRoZSBkdW1teSBpbnB1dFxuICAgICAgICAvLyBwb3NpdGlvbiBpbiB0aGUgRE9NIHVwZGF0ZXMgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgRE9NIGNoYW5nZS5cbiAgICAgICAgLy8gQ2FsbGluZyBfZW5zdXJlUG9zaXRpb24oKSB0byBtYWtlIHN1cmUgdGhlIHBvc2l0aW9uIGlzIGNvcnJlY3QuXG4gICAgICAgIHRoaXMuX2Vuc3VyZVBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgZmlyc3RJbnB1dCA9IGZpcnN0LmlucHV0O1xuICAgICAgICBjb25zdCBsYXN0SW5wdXQgPSBsYXN0LmlucHV0O1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gKF9hID0gdGhpcy5fZWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldCgpO1xuXG4gICAgICAgIGlmIChmaXJzdElucHV0ICYmIGxhc3RJbnB1dCAmJiBlbGVtZW50KSB7XG4gICAgICAgICAgbGV0IHRvRm9jdXM7XG5cbiAgICAgICAgICBpZiAoYmFja3dhcmRzKSB7XG4gICAgICAgICAgICBpZiAoIWZpcnN0LmlzT3V0c2lkZSAmJiB0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5pc0ZvY3VzYWJsZShlbGVtZW50LCB0cnVlLCB0cnVlLCB0cnVlKSkge1xuICAgICAgICAgICAgICB0b0ZvY3VzID0gZWxlbWVudDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpcnN0LnVzZURlZmF1bHRBY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICBmaXJzdElucHV0LnRhYkluZGV4ID0gMDtcbiAgICAgICAgICAgICAgdG9Gb2N1cyA9IGZpcnN0SW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3QudXNlRGVmYXVsdEFjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBsYXN0SW5wdXQudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgdG9Gb2N1cyA9IGxhc3RJbnB1dDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodG9Gb2N1cyAmJiBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IFRhYnN0ZXJNb3ZlRm9jdXNFdmVudCh7XG4gICAgICAgICAgICBieTogXCJyb290XCIsXG4gICAgICAgICAgICBvd25lcjogZWxlbWVudCxcbiAgICAgICAgICAgIG5leHQ6IG51bGwsXG4gICAgICAgICAgICByZWxhdGVkRXZlbnRcbiAgICAgICAgICB9KSkpIHtcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzKHRvRm9jdXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLnNldFRhYmJhYmxlID0gKG1hbmFnZXIsIHRhYmJhYmxlKSA9PiB7XG4gICAgICB2YXIgX2EsIF9iO1xuXG4gICAgICBmb3IgKGNvbnN0IHcgb2YgdGhpcy5fd3JhcHBlcnMpIHtcbiAgICAgICAgaWYgKHcubWFuYWdlciA9PT0gbWFuYWdlcikge1xuICAgICAgICAgIHcudGFiYmFibGUgPSB0YWJiYWJsZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fZ2V0Q3VycmVudCgpO1xuXG4gICAgICBpZiAod3JhcHBlcikge1xuICAgICAgICBjb25zdCB0YWJJbmRleCA9IHdyYXBwZXIudGFiYmFibGUgPyAwIDogLTE7XG4gICAgICAgIGxldCBpbnB1dCA9IChfYSA9IHRoaXMuX2ZpcnN0RHVtbXkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbnB1dDtcblxuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICBpbnB1dC50YWJJbmRleCA9IHRhYkluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQgPSAoX2IgPSB0aGlzLl9sYXN0RHVtbXkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pbnB1dDtcblxuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICBpbnB1dC50YWJJbmRleCA9IHRhYkluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICB0aGlzLl9maXJzdER1bW15ICYmIHNldER1bW15SW5wdXREZWJ1Z1ZhbHVlKHRoaXMuX2ZpcnN0RHVtbXksIHRoaXMuX3dyYXBwZXJzKTtcbiAgICAgICAgdGhpcy5fbGFzdER1bW15ICYmIHNldER1bW15SW5wdXREZWJ1Z1ZhbHVlKHRoaXMuX2xhc3REdW1teSwgdGhpcy5fd3JhcHBlcnMpO1xuICAgICAgfVxuICAgIH07XG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIGR1bW15IGlucHV0cyBhcyB0aGUgZmlyc3QgYW5kIGxhc3QgY2hpbGQgb2YgdGhlIGdpdmVuIGVsZW1lbnRcclxuICAgICAqIENhbGxlZCBlYWNoIHRpbWUgdGhlIGNoaWxkcmVuIHVuZGVyIHRoZSBlbGVtZW50IGlzIG11dGF0ZWRcclxuICAgICAqL1xuXG5cbiAgICB0aGlzLl9hZGREdW1teUlucHV0cyA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9hZGRUaW1lcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2FkZFRpbWVyID0gdGhpcy5fZ2V0V2luZG93KCkuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9hZGRUaW1lcjtcblxuICAgICAgICB0aGlzLl9lbnN1cmVQb3NpdGlvbigpO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgIHRoaXMuX2ZpcnN0RHVtbXkgJiYgc2V0RHVtbXlJbnB1dERlYnVnVmFsdWUodGhpcy5fZmlyc3REdW1teSwgdGhpcy5fd3JhcHBlcnMpO1xuICAgICAgICAgIHRoaXMuX2xhc3REdW1teSAmJiBzZXREdW1teUlucHV0RGVidWdWYWx1ZSh0aGlzLl9sYXN0RHVtbXksIHRoaXMuX3dyYXBwZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FkZFRyYW5zZm9ybU9mZnNldHMoKTtcbiAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICB0aGlzLl9hZGRUcmFuc2Zvcm1PZmZzZXRzID0gKCkgPT4ge1xuICAgICAgdGhpcy5fdGFic3Rlci5fZHVtbXlPYnNlcnZlci51cGRhdGVQb3NpdGlvbnModGhpcy5fY29tcHV0ZVRyYW5zZm9ybU9mZnNldHMpO1xuICAgIH07XG5cbiAgICB0aGlzLl9jb21wdXRlVHJhbnNmb3JtT2Zmc2V0cyA9IHNjcm9sbFRvcExlZnRDYWNoZSA9PiB7XG4gICAgICB2YXIgX2EsIF9iO1xuXG4gICAgICBjb25zdCBmcm9tID0gKChfYSA9IHRoaXMuX2ZpcnN0RHVtbXkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbnB1dCkgfHwgKChfYiA9IHRoaXMuX2xhc3REdW1teSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlucHV0KTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybUVsZW1lbnRzID0gdGhpcy5fdHJhbnNmb3JtRWxlbWVudHM7XG4gICAgICBjb25zdCBuZXdUcmFuc2Zvcm1FbGVtZW50cyA9IG5ldyBTZXQoKTtcbiAgICAgIGxldCBzY3JvbGxUb3AgPSAwO1xuICAgICAgbGV0IHNjcm9sbExlZnQgPSAwO1xuXG4gICAgICBjb25zdCB3aW4gPSB0aGlzLl9nZXRXaW5kb3coKTtcblxuICAgICAgZm9yIChsZXQgZWxlbWVudCA9IGZyb207IGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREU7IGVsZW1lbnQgPSBkb20uZ2V0UGFyZW50RWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICBsZXQgc2Nyb2xsVG9wTGVmdCA9IHNjcm9sbFRvcExlZnRDYWNoZS5nZXQoZWxlbWVudCk7IC8vIGdldENvbXB1dGVkU3R5bGUoKSBhbmQgZWxlbWVudC5zY3JvbGxMZWZ0L1RvcCgpIGNhdXNlIHN0eWxlIHJlY2FsY3VsYXRpb24sXG4gICAgICAgIC8vIHNvIHdlIGNhY2hlIHRoZSByZXN1bHQgYWNyb3NzIGFsbCBlbGVtZW50cyBpbiB0aGUgY3VycmVudCBidWxrLlxuXG4gICAgICAgIGlmIChzY3JvbGxUb3BMZWZ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSB3aW4uZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS50cmFuc2Zvcm07XG5cbiAgICAgICAgICBpZiAodHJhbnNmb3JtICYmIHRyYW5zZm9ybSAhPT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgIHNjcm9sbFRvcExlZnQgPSB7XG4gICAgICAgICAgICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3AsXG4gICAgICAgICAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzY3JvbGxUb3BMZWZ0Q2FjaGUuc2V0KGVsZW1lbnQsIHNjcm9sbFRvcExlZnQgfHwgbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2Nyb2xsVG9wTGVmdCkge1xuICAgICAgICAgIG5ld1RyYW5zZm9ybUVsZW1lbnRzLmFkZChlbGVtZW50KTtcblxuICAgICAgICAgIGlmICghdHJhbnNmb3JtRWxlbWVudHMuaGFzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5fYWRkVHJhbnNmb3JtT2Zmc2V0cyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2Nyb2xsVG9wICs9IHNjcm9sbFRvcExlZnQuc2Nyb2xsVG9wO1xuICAgICAgICAgIHNjcm9sbExlZnQgKz0gc2Nyb2xsVG9wTGVmdC5zY3JvbGxMZWZ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZWwgb2YgdHJhbnNmb3JtRWxlbWVudHMpIHtcbiAgICAgICAgaWYgKCFuZXdUcmFuc2Zvcm1FbGVtZW50cy5oYXMoZWwpKSB7XG4gICAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLl9hZGRUcmFuc2Zvcm1PZmZzZXRzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl90cmFuc2Zvcm1FbGVtZW50cyA9IG5ld1RyYW5zZm9ybUVsZW1lbnRzO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcblxuICAgICAgICAoX2EgPSB0aGlzLl9maXJzdER1bW15KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0VG9wTGVmdChzY3JvbGxUb3AsIHNjcm9sbExlZnQpO1xuICAgICAgICAoX2IgPSB0aGlzLl9sYXN0RHVtbXkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zZXRUb3BMZWZ0KHNjcm9sbFRvcCwgc2Nyb2xsTGVmdCk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBlbCA9IGVsZW1lbnQuZ2V0KCk7XG5cbiAgICBpZiAoIWVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBlbGVtZW50XCIpO1xuICAgIH1cblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX2dldFdpbmRvdyA9IHRhYnN0ZXIuZ2V0V2luZG93O1xuICAgIHRoaXMuX2NhbGxGb3JEZWZhdWx0QWN0aW9uID0gY2FsbEZvckRlZmF1bHRBY3Rpb247XG4gICAgY29uc3QgaW5zdGFuY2UgPSBlbC5fX3RhYnN0ZXJEdW1teTtcblxuICAgIChpbnN0YW5jZSB8fCB0aGlzKS5fd3JhcHBlcnMucHVzaCh7XG4gICAgICBtYW5hZ2VyLFxuICAgICAgcHJpb3JpdHksXG4gICAgICB0YWJiYWJsZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdGhpcy5fZmlyc3REdW1teSAmJiBzZXREdW1teUlucHV0RGVidWdWYWx1ZSh0aGlzLl9maXJzdER1bW15LCBpbnN0YW5jZS5fd3JhcHBlcnMpO1xuICAgICAgICB0aGlzLl9sYXN0RHVtbXkgJiYgc2V0RHVtbXlJbnB1dERlYnVnVmFsdWUodGhpcy5fbGFzdER1bW15LCBpbnN0YW5jZS5fd3JhcHBlcnMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgZWwuX190YWJzdGVyRHVtbXkgPSB0aGlzOyAvLyBTb21lIGVsZW1lbnRzIGFsbG93IG9ubHkgc3BlY2lmaWMgdHlwZXMgb2YgZGlyZWN0IGRlc2NlbmRhbnRzIGFuZCB3ZSBuZWVkIHRvXG4gICAgLy8gcHV0IG91ciBkdW1teSBpbnB1dHMgaW5zaWRlIG9yIG91dHNpZGUgb2YgdGhlIGVsZW1lbnQgYWNjb3JkaW5nbHkuXG5cbiAgICBjb25zdCBmb3JjZWREdW1teVBvc2l0aW9uID0gc3lzID09PSBudWxsIHx8IHN5cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3lzLmR1bW15SW5wdXRzUG9zaXRpb247XG4gICAgY29uc3QgdGFnTmFtZSA9IGVsLnRhZ05hbWU7XG4gICAgdGhpcy5faXNPdXRzaWRlID0gIWZvcmNlZER1bW15UG9zaXRpb24gPyAob3V0c2lkZUJ5RGVmYXVsdCB8fCB0YWdOYW1lID09PSBcIlVMXCIgfHwgdGFnTmFtZSA9PT0gXCJPTFwiIHx8IHRhZ05hbWUgPT09IFwiVEFCTEVcIikgJiYgISh0YWdOYW1lID09PSBcIkxJXCIgfHwgdGFnTmFtZSA9PT0gXCJURFwiIHx8IHRhZ05hbWUgPT09IFwiVEhcIikgOiBmb3JjZWREdW1teVBvc2l0aW9uID09PSBTeXNEdW1teUlucHV0c1Bvc2l0aW9ucy5PdXRzaWRlO1xuICAgIHRoaXMuX2ZpcnN0RHVtbXkgPSBuZXcgRHVtbXlJbnB1dCh0aGlzLl9nZXRXaW5kb3csIHRoaXMuX2lzT3V0c2lkZSwge1xuICAgICAgaXNGaXJzdDogdHJ1ZVxuICAgIH0sIGVsZW1lbnQpO1xuICAgIHRoaXMuX2xhc3REdW1teSA9IG5ldyBEdW1teUlucHV0KHRoaXMuX2dldFdpbmRvdywgdGhpcy5faXNPdXRzaWRlLCB7XG4gICAgICBpc0ZpcnN0OiBmYWxzZVxuICAgIH0sIGVsZW1lbnQpOyAvLyBXZSB3aWxsIGJlIGNoZWNraW5nIGR1bW15IGlucHV0IHBhcmVudHMgdG8gc2VlIGlmIHRoZWlyIGNoaWxkIGxpc3QgaGF2ZSBjaGFuZ2VkLlxuICAgIC8vIFNvLCBpdCBpcyBlbm91Z2ggdG8gaGF2ZSBqdXN0IG9uZSBvZiB0aGUgaW5wdXRzIG9ic2VydmVkLCBiZWNhdXNlXG4gICAgLy8gYm90aCBkdW1teSBpbnB1dHMgYWx3YXlzIGhhdmUgdGhlIHNhbWUgcGFyZW50LlxuXG4gICAgY29uc3QgZHVtbXlFbGVtZW50ID0gdGhpcy5fZmlyc3REdW1teS5pbnB1dDtcbiAgICBkdW1teUVsZW1lbnQgJiYgdGFic3Rlci5fZHVtbXlPYnNlcnZlci5hZGQoZHVtbXlFbGVtZW50LCB0aGlzLl9hZGREdW1teUlucHV0cyk7XG4gICAgdGhpcy5fZmlyc3REdW1teS5vbkZvY3VzSW4gPSB0aGlzLl9vbkZvY3VzSW47XG4gICAgdGhpcy5fZmlyc3REdW1teS5vbkZvY3VzT3V0ID0gdGhpcy5fb25Gb2N1c091dDtcbiAgICB0aGlzLl9sYXN0RHVtbXkub25Gb2N1c0luID0gdGhpcy5fb25Gb2N1c0luO1xuICAgIHRoaXMuX2xhc3REdW1teS5vbkZvY3VzT3V0ID0gdGhpcy5fb25Gb2N1c091dDtcbiAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudDtcblxuICAgIHRoaXMuX2FkZER1bW15SW5wdXRzKCk7XG4gIH1cblxuICBkaXNwb3NlKG1hbmFnZXIsIGZvcmNlKSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuXG4gICAgY29uc3Qgd3JhcHBlcnMgPSB0aGlzLl93cmFwcGVycyA9IHRoaXMuX3dyYXBwZXJzLmZpbHRlcih3ID0+IHcubWFuYWdlciAhPT0gbWFuYWdlciAmJiAhZm9yY2UpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICB0aGlzLl9maXJzdER1bW15ICYmIHNldER1bW15SW5wdXREZWJ1Z1ZhbHVlKHRoaXMuX2ZpcnN0RHVtbXksIHdyYXBwZXJzKTtcbiAgICAgIHRoaXMuX2xhc3REdW1teSAmJiBzZXREdW1teUlucHV0RGVidWdWYWx1ZSh0aGlzLl9sYXN0RHVtbXksIHdyYXBwZXJzKTtcbiAgICB9XG5cbiAgICBpZiAod3JhcHBlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgKChfYSA9IHRoaXMuX2VsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKSkuX190YWJzdGVyRHVtbXk7XG5cbiAgICAgIGZvciAoY29uc3QgZWwgb2YgdGhpcy5fdHJhbnNmb3JtRWxlbWVudHMpIHtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLl9hZGRUcmFuc2Zvcm1PZmZzZXRzKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdHJhbnNmb3JtRWxlbWVudHMuY2xlYXIoKTtcblxuICAgICAgY29uc3Qgd2luID0gdGhpcy5fZ2V0V2luZG93KCk7XG5cbiAgICAgIGlmICh0aGlzLl9hZGRUaW1lcikge1xuICAgICAgICB3aW4uY2xlYXJUaW1lb3V0KHRoaXMuX2FkZFRpbWVyKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2FkZFRpbWVyO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkdW1teUVsZW1lbnQgPSAoX2IgPSB0aGlzLl9maXJzdER1bW15KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5wdXQ7XG4gICAgICBkdW1teUVsZW1lbnQgJiYgdGhpcy5fdGFic3Rlci5fZHVtbXlPYnNlcnZlci5yZW1vdmUoZHVtbXlFbGVtZW50KTtcbiAgICAgIChfYyA9IHRoaXMuX2ZpcnN0RHVtbXkpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5kaXNwb3NlKCk7XG4gICAgICAoX2QgPSB0aGlzLl9sYXN0RHVtbXkpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgX29uRm9jdXMoaXNJbiwgZHVtbXlJbnB1dCwgaXNCYWNrd2FyZCwgcmVsYXRlZFRhcmdldCkge1xuICAgIHZhciBfYTtcblxuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLl9nZXRDdXJyZW50KCk7XG5cbiAgICBpZiAod3JhcHBlciAmJiAoIWR1bW15SW5wdXQudXNlRGVmYXVsdEFjdGlvbiB8fCB0aGlzLl9jYWxsRm9yRGVmYXVsdEFjdGlvbikpIHtcbiAgICAgIChfYSA9IHdyYXBwZXIubWFuYWdlci5nZXRIYW5kbGVyKGlzSW4pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EoZHVtbXlJbnB1dCwgaXNCYWNrd2FyZCwgcmVsYXRlZFRhcmdldCk7XG4gICAgfVxuICB9XG5cbiAgX2dldEN1cnJlbnQoKSB7XG4gICAgdGhpcy5fd3JhcHBlcnMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEudGFiYmFibGUgIT09IGIudGFiYmFibGUpIHtcbiAgICAgICAgcmV0dXJuIGEudGFiYmFibGUgPyAtMSA6IDE7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhLnByaW9yaXR5IC0gYi5wcmlvcml0eTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl93cmFwcGVyc1swXTtcbiAgfVxuXG4gIF9lbnN1cmVQb3NpdGlvbigpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcblxuICAgIGNvbnN0IGVsZW1lbnQgPSAoX2EgPSB0aGlzLl9lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KCk7XG4gICAgY29uc3QgZmlyc3REdW1teUlucHV0ID0gKF9iID0gdGhpcy5fZmlyc3REdW1teSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlucHV0O1xuICAgIGNvbnN0IGxhc3REdW1teUlucHV0ID0gKF9jID0gdGhpcy5fbGFzdER1bW15KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuaW5wdXQ7XG5cbiAgICBpZiAoIWVsZW1lbnQgfHwgIWZpcnN0RHVtbXlJbnB1dCB8fCAhbGFzdER1bW15SW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNPdXRzaWRlKSB7XG4gICAgICBjb25zdCBlbGVtZW50UGFyZW50ID0gZG9tLmdldFBhcmVudE5vZGUoZWxlbWVudCk7XG5cbiAgICAgIGlmIChlbGVtZW50UGFyZW50KSB7XG4gICAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gZG9tLmdldE5leHRTaWJsaW5nKGVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChuZXh0U2libGluZyAhPT0gbGFzdER1bW15SW5wdXQpIHtcbiAgICAgICAgICBkb20uaW5zZXJ0QmVmb3JlKGVsZW1lbnRQYXJlbnQsIGxhc3REdW1teUlucHV0LCBuZXh0U2libGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZG9tLmdldFByZXZpb3VzRWxlbWVudFNpYmxpbmcoZWxlbWVudCkgIT09IGZpcnN0RHVtbXlJbnB1dCkge1xuICAgICAgICAgIGRvbS5pbnNlcnRCZWZvcmUoZWxlbWVudFBhcmVudCwgZmlyc3REdW1teUlucHV0LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZG9tLmdldExhc3RFbGVtZW50Q2hpbGQoZWxlbWVudCkgIT09IGxhc3REdW1teUlucHV0KSB7XG4gICAgICAgIGRvbS5hcHBlbmRDaGlsZChlbGVtZW50LCBsYXN0RHVtbXlJbnB1dCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0RWxlbWVudENoaWxkID0gZG9tLmdldEZpcnN0RWxlbWVudENoaWxkKGVsZW1lbnQpO1xuXG4gICAgICBpZiAoZmlyc3RFbGVtZW50Q2hpbGQgJiYgZmlyc3RFbGVtZW50Q2hpbGQgIT09IGZpcnN0RHVtbXlJbnB1dCAmJiBmaXJzdEVsZW1lbnRDaGlsZC5wYXJlbnROb2RlKSB7XG4gICAgICAgIGRvbS5pbnNlcnRCZWZvcmUoZmlyc3RFbGVtZW50Q2hpbGQucGFyZW50Tm9kZSwgZmlyc3REdW1teUlucHV0LCBmaXJzdEVsZW1lbnRDaGlsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuZnVuY3Rpb24gZ2V0TGFzdENoaWxkJDIoY29udGFpbmVyKSB7XG4gIGxldCBsYXN0Q2hpbGQgPSBudWxsO1xuXG4gIGZvciAobGV0IGkgPSBkb20uZ2V0TGFzdEVsZW1lbnRDaGlsZChjb250YWluZXIpOyBpOyBpID0gZG9tLmdldExhc3RFbGVtZW50Q2hpbGQoaSkpIHtcbiAgICBsYXN0Q2hpbGQgPSBpO1xuICB9XG5cbiAgcmV0dXJuIGxhc3RDaGlsZCB8fCB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBnZXRBZGphY2VudEVsZW1lbnQoZnJvbSwgcHJldikge1xuICBsZXQgY3VyID0gZnJvbTtcbiAgbGV0IGFkamFjZW50ID0gbnVsbDtcblxuICB3aGlsZSAoY3VyICYmICFhZGphY2VudCkge1xuICAgIGFkamFjZW50ID0gcHJldiA/IGRvbS5nZXRQcmV2aW91c0VsZW1lbnRTaWJsaW5nKGN1cikgOiBkb20uZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKGN1cik7XG4gICAgY3VyID0gZG9tLmdldFBhcmVudEVsZW1lbnQoY3VyKTtcbiAgfVxuXG4gIHJldHVybiBhZGphY2VudCB8fCB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBhdWdtZW50QXR0cmlidXRlKHRhYnN0ZXIsIGVsZW1lbnQsIG5hbWUsIHZhbHVlIC8vIFJlc3RvcmUgb3JpZ2luYWwgdmFsdWUgd2hlbiB1bmRlZmluZWQuXG4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgY29uc3QgZW50cnkgPSB0YWJzdGVyLnN0b3JhZ2VFbnRyeShlbGVtZW50LCB0cnVlKTtcbiAgbGV0IHJldCA9IGZhbHNlO1xuXG4gIGlmICghZW50cnkuYXVnKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgZW50cnkuYXVnID0ge307XG4gIH1cblxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChuYW1lIGluIGVudHJ5LmF1Zykge1xuICAgICAgY29uc3Qgb3JpZ1ZhbCA9IGVudHJ5LmF1Z1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBlbnRyeS5hdWdbbmFtZV07XG5cbiAgICAgIGlmIChvcmlnVmFsID09PSBudWxsKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgb3JpZ1ZhbCk7XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHRydWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBvcmlnVmFsdWU7XG5cbiAgICBpZiAoIShuYW1lIGluIGVudHJ5LmF1ZykpIHtcbiAgICAgIG9yaWdWYWx1ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChvcmlnVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBvcmlnVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICBlbnRyeS5hdWdbbmFtZV0gPSBvcmlnVmFsdWU7XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBPYmplY3Qua2V5cyhlbnRyeS5hdWcpLmxlbmd0aCA9PT0gMCkge1xuICAgIGRlbGV0ZSBlbnRyeS5hdWc7XG4gICAgdGFic3Rlci5zdG9yYWdlRW50cnkoZWxlbWVudCwgZmFsc2UpO1xuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cbmZ1bmN0aW9uIGlzRGlzcGxheU5vbmUoZWxlbWVudCkge1xuICB2YXIgX2EsIF9iO1xuXG4gIGNvbnN0IGVsZW1lbnREb2N1bWVudCA9IGVsZW1lbnQub3duZXJEb2N1bWVudDtcbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IChfYSA9IGVsZW1lbnREb2N1bWVudC5kZWZhdWx0VmlldykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7IC8vIG9mZnNldFBhcmVudCBpcyBudWxsIGZvciBlbGVtZW50cyB3aXRoIGRpc3BsYXk6bm9uZSwgZGlzcGxheTpmaXhlZCBhbmQgZm9yIDxib2R5Pi5cblxuICBpZiAoZWxlbWVudC5vZmZzZXRQYXJlbnQgPT09IG51bGwgJiYgZWxlbWVudERvY3VtZW50LmJvZHkgIT09IGVsZW1lbnQgJiYgKGNvbXB1dGVkU3R5bGUgPT09IG51bGwgfHwgY29tcHV0ZWRTdHlsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcHV0ZWRTdHlsZS5wb3NpdGlvbikgIT09IFwiZml4ZWRcIikge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIEZvciBvdXIgcHVycG9zZXMgb2YgbG9va2luZyBmb3IgZm9jdXNhYmxlIGVsZW1lbnRzLCB2aXNpYmlsaXR5OmhpZGRlbiBoYXMgdGhlIHNhbWVcbiAgLy8gZWZmZWN0IGFzIGRpc3BsYXk6bm9uZS5cblxuXG4gIGlmICgoY29tcHV0ZWRTdHlsZSA9PT0gbnVsbCB8fCBjb21wdXRlZFN0eWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFN0eWxlLnZpc2liaWxpdHkpID09PSBcImhpZGRlblwiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gaWYgYW4gZWxlbWVudCBoYXMgZGlzcGxheTogZml4ZWQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgYWxzbyBoaWRkZW4gd2l0aCBDU1MsXG4gIC8vIG9yIHdpdGhpbiBhIHBhcmVudCBoaWRkZW4gd2l0aCBDU1NcblxuXG4gIGlmICgoY29tcHV0ZWRTdHlsZSA9PT0gbnVsbCB8fCBjb21wdXRlZFN0eWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uKSA9PT0gXCJmaXhlZFwiKSB7XG4gICAgaWYgKGNvbXB1dGVkU3R5bGUuZGlzcGxheSA9PT0gXCJub25lXCIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICgoKF9iID0gZWxlbWVudC5wYXJlbnRFbGVtZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iub2Zmc2V0UGFyZW50KSA9PT0gbnVsbCAmJiBlbGVtZW50RG9jdW1lbnQuYm9keSAhPT0gZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc1JhZGlvKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZSA9PT0gXCJJTlBVVFwiICYmICEhZWxlbWVudC5uYW1lICYmIGVsZW1lbnQudHlwZSA9PT0gXCJyYWRpb1wiO1xufVxuZnVuY3Rpb24gZ2V0UmFkaW9CdXR0b25Hcm91cChlbGVtZW50KSB7XG4gIGlmICghaXNSYWRpbyhlbGVtZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBlbGVtZW50Lm5hbWU7XG4gIGxldCByYWRpb0J1dHRvbnMgPSBBcnJheS5mcm9tKGRvbS5nZXRFbGVtZW50c0J5TmFtZShlbGVtZW50LCBuYW1lKSk7XG4gIGxldCBjaGVja2VkO1xuICByYWRpb0J1dHRvbnMgPSByYWRpb0J1dHRvbnMuZmlsdGVyKGVsID0+IHtcbiAgICBpZiAoaXNSYWRpbyhlbCkpIHtcbiAgICAgIGlmIChlbC5jaGVja2VkKSB7XG4gICAgICAgIGNoZWNrZWQgPSBlbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIGJ1dHRvbnM6IG5ldyBTZXQocmFkaW9CdXR0b25zKSxcbiAgICBjaGVja2VkXG4gIH07XG59XG4vKipcclxuICogSWYgdGhlIHBhc3NlZCBlbGVtZW50IGlzIFRhYnN0ZXIgZHVtbXkgaW5wdXQsIHJldHVybnMgdGhlIGNvbnRhaW5lciBlbGVtZW50IHRoaXMgZHVtbXkgaW5wdXQgYmVsb25ncyB0by5cclxuICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCB0byBjaGVjayBmb3IgYmVpbmcgZHVtbXkgaW5wdXQuXHJcbiAqIEByZXR1cm5zIER1bW15IGlucHV0IGNvbnRhaW5lciBlbGVtZW50IChpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgYSBkdW1teSBpbnB1dCkgb3IgbnVsbC5cclxuICovXG5cbmZ1bmN0aW9uIGdldER1bW15SW5wdXRDb250YWluZXIoZWxlbWVudCkge1xuICB2YXIgX2E7XG5cbiAgcmV0dXJuICgoX2EgPSBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQuX190YWJzdGVyRHVtbXlDb250YWluZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKSkgfHwgbnVsbDtcbn1cblxuLyohXHJcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbiAqL1xuZnVuY3Rpb24gZ2V0VGFic3RlckF0dHJpYnV0ZShwcm9wcywgcGxhaW4pIHtcbiAgY29uc3QgYXR0ciA9IEpTT04uc3RyaW5naWZ5KHByb3BzKTtcblxuICBpZiAocGxhaW4gPT09IHRydWUpIHtcbiAgICByZXR1cm4gYXR0cjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgW1RBQlNURVJfQVRUUklCVVRFX05BTUVdOiBhdHRyXG4gIH07XG59XG4vKipcclxuICogVXBkYXRlcyBUYWJzdGVyIHByb3BzIG9iamVjdCB3aXRoIG5ldyBwcm9wcy5cclxuICogQHBhcmFtIGVsZW1lbnQgYW4gZWxlbWVudCB0byBzZXQgZGF0YS10YWJzdGVyIGF0dHJpYnV0ZSBvbi5cclxuICogQHBhcmFtIHByb3BzIGN1cnJlbnQgVGFic3RlciBwcm9wcyB0byB1cGRhdGUuXHJcbiAqIEBwYXJhbSBuZXdQcm9wcyBuZXcgVGFic3RlciBwcm9wcyB0byBhZGQuXHJcbiAqICBXaGVuIHRoZSB2YWx1ZSBvZiBhIHByb3BlcnR5IGluIG5ld1Byb3BzIGlzIHVuZGVmaW5lZCwgdGhlIHByb3BlcnR5XHJcbiAqICB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgYXR0cmlidXRlLlxyXG4gKi9cblxuZnVuY3Rpb24gbWVyZ2VUYWJzdGVyUHJvcHMocHJvcHMsIG5ld1Byb3BzKSB7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5ld1Byb3BzKSkge1xuICAgIGNvbnN0IHZhbHVlID0gbmV3UHJvcHNba2V5XTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIHByb3BzW2tleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHByb3BzW2tleV07XG4gICAgfVxuICB9XG59XG4vKipcclxuICogU2V0cyBvciB1cGRhdGVzIFRhYnN0ZXIgYXR0cmlidXRlIG9mIHRoZSBlbGVtZW50LlxyXG4gKiBAcGFyYW0gZWxlbWVudCBhbiBlbGVtZW50IHRvIHNldCBkYXRhLXRhYnN0ZXIgYXR0cmlidXRlIG9uLlxyXG4gKiBAcGFyYW0gbmV3UHJvcHMgbmV3IFRhYnN0ZXIgcHJvcHMgdG8gc2V0LlxyXG4gKiBAcGFyYW0gdXBkYXRlIGlmIHRydWUsIG5ld1Byb3BzIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGV4aXN0aW5nIHByb3BzLlxyXG4gKiAgV2hlbiB0cnVlIGFuZCB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSBpbiBuZXdQcm9wcyBpcyB1bmRlZmluZWQsIHRoZSBwcm9wZXJ0eVxyXG4gKiAgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIGF0dHJpYnV0ZS5cclxuICovXG5cbmZ1bmN0aW9uIHNldFRhYnN0ZXJBdHRyaWJ1dGUoZWxlbWVudCwgbmV3UHJvcHMsIHVwZGF0ZSkge1xuICBsZXQgcHJvcHM7XG5cbiAgaWYgKHVwZGF0ZSkge1xuICAgIGNvbnN0IGF0dHIgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShUQUJTVEVSX0FUVFJJQlVURV9OQU1FKTtcblxuICAgIGlmIChhdHRyKSB7XG4gICAgICB0cnkge1xuICAgICAgICBwcm9wcyA9IEpTT04ucGFyc2UoYXR0cik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGRhdGEtdGFic3RlciBhdHRyaWJ1dGUgZXJyb3I6ICR7ZX1gLCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG5cbiAgbWVyZ2VUYWJzdGVyUHJvcHMocHJvcHMsIG5ld1Byb3BzKTtcblxuICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShUQUJTVEVSX0FUVFJJQlVURV9OQU1FLCBnZXRUYWJzdGVyQXR0cmlidXRlKHByb3BzLCB0cnVlKSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoVEFCU1RFUl9BVFRSSUJVVEVfTkFNRSk7XG4gIH1cbn1cblxuLyohXHJcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbiAqL1xuXG5mdW5jdGlvbiBfc2V0SW5mb3JtYXRpdmVTdHlsZSQzKHdlYWtFbGVtZW50LCByZW1vdmUsIGlkKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB3ZWFrRWxlbWVudC5nZXQoKTtcblxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBpZiAocmVtb3ZlKSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRhYnN0ZXItcm9vdFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLXRhYnN0ZXItcm9vdFwiLCBpZCArIFwiLFwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgUm9vdER1bW15TWFuYWdlciBleHRlbmRzIER1bW15SW5wdXRNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IodGFic3RlciwgZWxlbWVudCwgc2V0Rm9jdXNlZCwgc3lzKSB7XG4gICAgc3VwZXIodGFic3RlciwgZWxlbWVudCwgRHVtbXlJbnB1dE1hbmFnZXJQcmlvcml0aWVzLlJvb3QsIHN5cywgdW5kZWZpbmVkLCB0cnVlKTtcblxuICAgIHRoaXMuX29uRHVtbXlJbnB1dEZvY3VzID0gZHVtbXlJbnB1dCA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGlmIChkdW1teUlucHV0LnVzZURlZmF1bHRBY3Rpb24pIHtcbiAgICAgICAgLy8gV2hlbiB3ZSd2ZSByZWFjaGVkIHRoZSBsYXN0IGZvY3VzYWJsZSBlbGVtZW50LCB3ZSB3YW50IHRvIGxldCB0aGUgYnJvd3NlclxuICAgICAgICAvLyB0byBtb3ZlIHRoZSBmb2N1cyBvdXRzaWRlIG9mIHRoZSBwYWdlLiBJbiBvcmRlciB0byBkbyB0aGF0IHdlJ3JlIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gY2FsbGluZyBmb2N1cygpIG9mIHRoZSBkdW1teSBpbnB1dCBmcm9tIHRoZSBUYWIga2V5IGhhbmRsZXIgYW5kIGFsbG93aW5nXG4gICAgICAgIC8vIHRoZSBkZWZhdWx0IGFjdGlvbiB0byBtb3ZlIHRoZSBmb2N1cyBvdXQuXG4gICAgICAgIHRoaXMuX3NldEZvY3VzZWQoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIG9ubHkgd2F5IGEgZHVtbXkgaW5wdXQgZ2V0cyBmb2N1c2VkIGlzIGR1cmluZyB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgICAgdGhpcy5fdGFic3Rlci5rZXlib2FyZE5hdmlnYXRpb24uc2V0TmF2aWdhdGluZ1dpdGhLZXlib2FyZCh0cnVlKTtcblxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudC5nZXQoKTtcblxuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgIHRoaXMuX3NldEZvY3VzZWQodHJ1ZSk7XG5cbiAgICAgICAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5nZXRGaXJzdE9yTGFzdFRhYmJhYmxlKGR1bW15SW5wdXQuaXNGaXJzdCwge1xuICAgICAgICAgICAgY29udGFpbmVyOiBlbGVtZW50LFxuICAgICAgICAgICAgaWdub3JlQWNjZXNzaWJpbGl0eTogdHJ1ZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzKHRvRm9jdXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIChfYSA9IGR1bW15SW5wdXQuaW5wdXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ibHVyKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3NldEhhbmRsZXJzKHRoaXMuX29uRHVtbXlJbnB1dEZvY3VzKTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX3NldEZvY3VzZWQgPSBzZXRGb2N1c2VkO1xuICB9XG5cbn1cblxuY2xhc3MgUm9vdCBleHRlbmRzIFRhYnN0ZXJQYXJ0IHtcbiAgY29uc3RydWN0b3IodGFic3RlciwgZWxlbWVudCwgb25EaXNwb3NlLCBwcm9wcywgc3lzKSB7XG4gICAgc3VwZXIodGFic3RlciwgZWxlbWVudCwgcHJvcHMpO1xuICAgIHRoaXMuX2lzRm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fc2V0Rm9jdXNlZCA9IGhhc0ZvY3VzZWQgPT4ge1xuICAgICAgdmFyIF9hO1xuXG4gICAgICBpZiAodGhpcy5fc2V0Rm9jdXNlZFRpbWVyKSB7XG4gICAgICAgIHRoaXMuX3RhYnN0ZXIuZ2V0V2luZG93KCkuY2xlYXJUaW1lb3V0KHRoaXMuX3NldEZvY3VzZWRUaW1lcik7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX3NldEZvY3VzZWRUaW1lcjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzRm9jdXNlZCA9PT0gaGFzRm9jdXNlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmdldCgpO1xuXG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBpZiAoaGFzRm9jdXNlZCkge1xuICAgICAgICAgIHRoaXMuX2lzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgKF9hID0gdGhpcy5fZHVtbXlNYW5hZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0VGFiYmFibGUoZmFsc2UpO1xuICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgUm9vdEZvY3VzRXZlbnQoe1xuICAgICAgICAgICAgZWxlbWVudFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9zZXRGb2N1c2VkVGltZXIgPSB0aGlzLl90YWJzdGVyLmdldFdpbmRvdygpLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fc2V0Rm9jdXNlZFRpbWVyO1xuICAgICAgICAgICAgdGhpcy5faXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICAoX2EgPSB0aGlzLl9kdW1teU1hbmFnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZXRUYWJiYWJsZSh0cnVlKTtcbiAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgUm9vdEJsdXJFdmVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnRcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9vbkZvY3VzSW4gPSBldmVudCA9PiB7XG4gICAgICBjb25zdCBnZXRQYXJlbnQgPSB0aGlzLl90YWJzdGVyLmdldFBhcmVudDtcblxuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmdldCgpO1xuXG4gICAgICBsZXQgY3VyRWxlbWVudCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChjdXJFbGVtZW50ID09PSByb290RWxlbWVudCkge1xuICAgICAgICAgIHRoaXMuX3NldEZvY3VzZWQodHJ1ZSk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjdXJFbGVtZW50ID0gY3VyRWxlbWVudCAmJiBnZXRQYXJlbnQoY3VyRWxlbWVudCk7XG4gICAgICB9IHdoaWxlIChjdXJFbGVtZW50KTtcbiAgICB9O1xuXG4gICAgdGhpcy5fb25Gb2N1c091dCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX3NldEZvY3VzZWQoZmFsc2UpO1xuICAgIH07XG5cbiAgICB0aGlzLl9vbkRpc3Bvc2UgPSBvbkRpc3Bvc2U7XG4gICAgY29uc3Qgd2luID0gdGFic3Rlci5nZXRXaW5kb3c7XG4gICAgdGhpcy51aWQgPSBnZXRFbGVtZW50VUlkKHdpbiwgZWxlbWVudCk7XG4gICAgdGhpcy5fc3lzID0gc3lzO1xuXG4gICAgaWYgKHRhYnN0ZXIuY29udHJvbFRhYiB8fCB0YWJzdGVyLnJvb3REdW1teUlucHV0cykge1xuICAgICAgdGhpcy5hZGREdW1teUlucHV0cygpO1xuICAgIH1cblxuICAgIGNvbnN0IHcgPSB3aW4oKTtcbiAgICBjb25zdCBkb2MgPSB3LmRvY3VtZW50O1xuICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwgdGhpcy5fb25Gb2N1c0luKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihLRVlCT1JHX0ZPQ1VTT1VULCB0aGlzLl9vbkZvY3VzT3V0KTtcblxuICAgIHRoaXMuX2FkZCgpO1xuICB9XG5cbiAgYWRkRHVtbXlJbnB1dHMoKSB7XG4gICAgaWYgKCF0aGlzLl9kdW1teU1hbmFnZXIpIHtcbiAgICAgIHRoaXMuX2R1bW15TWFuYWdlciA9IG5ldyBSb290RHVtbXlNYW5hZ2VyKHRoaXMuX3RhYnN0ZXIsIHRoaXMuX2VsZW1lbnQsIHRoaXMuX3NldEZvY3VzZWQsIHRoaXMuX3N5cyk7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICB0aGlzLl9vbkRpc3Bvc2UodGhpcyk7XG5cbiAgICBjb25zdCB3aW4gPSB0aGlzLl90YWJzdGVyLmdldFdpbmRvdygpO1xuXG4gICAgY29uc3QgZG9jID0gd2luLmRvY3VtZW50O1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwgdGhpcy5fb25Gb2N1c0luKTtcbiAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihLRVlCT1JHX0ZPQ1VTT1VULCB0aGlzLl9vbkZvY3VzT3V0KTtcblxuICAgIGlmICh0aGlzLl9zZXRGb2N1c2VkVGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5fc2V0Rm9jdXNlZFRpbWVyKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9zZXRGb2N1c2VkVGltZXI7XG4gICAgfVxuXG4gICAgKF9hID0gdGhpcy5fZHVtbXlNYW5hZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcG9zZSgpO1xuXG4gICAgdGhpcy5fcmVtb3ZlKCk7XG4gIH1cblxuICBtb3ZlT3V0V2l0aERlZmF1bHRBY3Rpb24oaXNCYWNrd2FyZCwgcmVsYXRlZEV2ZW50KSB7XG4gICAgY29uc3QgZHVtbXlNYW5hZ2VyID0gdGhpcy5fZHVtbXlNYW5hZ2VyO1xuXG4gICAgaWYgKGR1bW15TWFuYWdlcikge1xuICAgICAgZHVtbXlNYW5hZ2VyLm1vdmVPdXRXaXRoRGVmYXVsdEFjdGlvbihpc0JhY2t3YXJkLCByZWxhdGVkRXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMuZ2V0RWxlbWVudCgpO1xuXG4gICAgICBpZiAoZWwpIHtcbiAgICAgICAgUm9vdER1bW15TWFuYWdlci5tb3ZlV2l0aFBoYW50b21EdW1teSh0aGlzLl90YWJzdGVyLCBlbCwgdHJ1ZSwgaXNCYWNrd2FyZCwgcmVsYXRlZEV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfYWRkKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgX3NldEluZm9ybWF0aXZlU3R5bGUkMyh0aGlzLl9lbGVtZW50LCBmYWxzZSwgdGhpcy51aWQpO1xuICAgIH1cbiAgfVxuXG4gIF9yZW1vdmUoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBfc2V0SW5mb3JtYXRpdmVTdHlsZSQzKHRoaXMuX2VsZW1lbnQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblxuY2xhc3MgUm9vdEFQSSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGF1dG9Sb290KSB7XG4gICAgdGhpcy5fYXV0b1Jvb3RXYWl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5fcm9vdHMgPSB7fTtcbiAgICB0aGlzLl9mb3JjZUR1bW15ID0gZmFsc2U7XG4gICAgdGhpcy5yb290QnlJZCA9IHt9O1xuXG4gICAgdGhpcy5fYXV0b1Jvb3RDcmVhdGUgPSAoKSA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGNvbnN0IGRvYyA9IHRoaXMuX3dpbigpLmRvY3VtZW50O1xuXG4gICAgICBjb25zdCBib2R5ID0gZG9jLmJvZHk7XG5cbiAgICAgIGlmIChib2R5KSB7XG4gICAgICAgIHRoaXMuX2F1dG9Sb290VW53YWl0KGRvYyk7XG5cbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLl9hdXRvUm9vdDtcblxuICAgICAgICBpZiAocHJvcHMpIHtcbiAgICAgICAgICBzZXRUYWJzdGVyQXR0cmlidXRlKGJvZHksIHtcbiAgICAgICAgICAgIHJvb3Q6IHByb3BzXG4gICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgdXBkYXRlVGFic3RlckJ5QXR0cmlidXRlKHRoaXMuX3RhYnN0ZXIsIGJvZHkpO1xuICAgICAgICAgIHJldHVybiAoX2EgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRoaXMuX3RhYnN0ZXIsIGJvZHkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eucm9vdDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghdGhpcy5fYXV0b1Jvb3RXYWl0aW5nKSB7XG4gICAgICAgIHRoaXMuX2F1dG9Sb290V2FpdGluZyA9IHRydWU7XG4gICAgICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKFwicmVhZHlzdGF0ZWNoYW5nZVwiLCB0aGlzLl9hdXRvUm9vdENyZWF0ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfTtcblxuICAgIHRoaXMuX29uUm9vdERpc3Bvc2UgPSByb290ID0+IHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9yb290c1tyb290LmlkXTtcbiAgICB9O1xuXG4gICAgdGhpcy5fdGFic3RlciA9IHRhYnN0ZXI7XG4gICAgdGhpcy5fd2luID0gdGFic3Rlci5nZXRXaW5kb3c7XG4gICAgdGhpcy5fYXV0b1Jvb3QgPSBhdXRvUm9vdDtcbiAgICB0YWJzdGVyLnF1ZXVlSW5pdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fYXV0b1Jvb3QpIHtcbiAgICAgICAgdGhpcy5fYXV0b1Jvb3RDcmVhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIF9hdXRvUm9vdFVud2FpdChkb2MpIHtcbiAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlYWR5c3RhdGVjaGFuZ2VcIiwgdGhpcy5fYXV0b1Jvb3RDcmVhdGUpO1xuICAgIHRoaXMuX2F1dG9Sb290V2FpdGluZyA9IGZhbHNlO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLl93aW4oKTtcblxuICAgIHRoaXMuX2F1dG9Sb290VW53YWl0KHdpbi5kb2N1bWVudCk7XG5cbiAgICBkZWxldGUgdGhpcy5fYXV0b1Jvb3Q7XG4gICAgT2JqZWN0LmtleXModGhpcy5fcm9vdHMpLmZvckVhY2gocm9vdElkID0+IHtcbiAgICAgIGlmICh0aGlzLl9yb290c1tyb290SWRdKSB7XG4gICAgICAgIHRoaXMuX3Jvb3RzW3Jvb3RJZF0uZGlzcG9zZSgpO1xuXG4gICAgICAgIGRlbGV0ZSB0aGlzLl9yb290c1tyb290SWRdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucm9vdEJ5SWQgPSB7fTtcbiAgfVxuXG4gIGNyZWF0ZVJvb3QoZWxlbWVudCwgcHJvcHMsIHN5cykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JykgO1xuXG4gICAgY29uc3QgbmV3Um9vdCA9IG5ldyBSb290KHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQsIHRoaXMuX29uUm9vdERpc3Bvc2UsIHByb3BzLCBzeXMpO1xuICAgIHRoaXMuX3Jvb3RzW25ld1Jvb3QuaWRdID0gbmV3Um9vdDtcblxuICAgIGlmICh0aGlzLl9mb3JjZUR1bW15KSB7XG4gICAgICBuZXdSb290LmFkZER1bW15SW5wdXRzKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld1Jvb3Q7XG4gIH1cblxuICBhZGREdW1teUlucHV0cygpIHtcbiAgICB0aGlzLl9mb3JjZUR1bW15ID0gdHJ1ZTtcbiAgICBjb25zdCByb290cyA9IHRoaXMuX3Jvb3RzO1xuXG4gICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhyb290cykpIHtcbiAgICAgIHJvb3RzW2lkXS5hZGREdW1teUlucHV0cygpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRSb290QnlVSWQoZ2V0V2luZG93LCBpZCkge1xuICAgIGNvbnN0IHRhYnN0ZXIgPSBnZXRXaW5kb3coKS5fX3RhYnN0ZXJJbnN0YW5jZTtcblxuICAgIHJldHVybiB0YWJzdGVyICYmIHRhYnN0ZXIucm9vdC5yb290QnlJZFtpZF07XG4gIH1cbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgdGFic3RlciBjb250ZXh0IGZvciBhbiBlbGVtZW50IHdhbGtpbmcgdXAgaXRzIGFuY2VzdG9yc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHRhYnN0ZXIgVGFic3RlciBpbnN0YW5jZVxyXG4gICAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRoZSB0YWJzdGVyIGNvbnRleHQgc2hvdWxkIHJlcHJlc2VudFxyXG4gICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGUgZWxlbWVudCBpcyBub3QgYSBjaGlsZCBvZiBhIHRhYnN0ZXIgcm9vdCwgb3RoZXJ3aXNlIGFsbCBhcHBsaWNhYmxlIHRhYnN0ZXIgYmVoYXZpb3VycyBhbmQgY29uZmlndXJhdGlvbnNcclxuICAgKi9cblxuXG4gIHN0YXRpYyBnZXRUYWJzdGVyQ29udGV4dCh0YWJzdGVyLCBlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcblxuICAgIGlmICghZWxlbWVudC5vd25lckRvY3VtZW50KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIGNoZWNrUnRsLFxuICAgICAgcmVmZXJlbmNlRWxlbWVudFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGdldFBhcmVudCA9IHRhYnN0ZXIuZ2V0UGFyZW50OyAvLyBOb3JtYWxseSwgdGhlIGluaXRpYWxpemF0aW9uIHN0YXJ0cyBvbiB0aGUgbmV4dCB0aWNrIGFmdGVyIHRoZSB0YWJzdGVyXG4gICAgLy8gaW5zdGFuY2UgY3JlYXRpb24uIEhvd2V2ZXIsIGlmIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXNpbmcgaXQgYmVmb3JlXG4gICAgLy8gdGhlIG5leHQgdGljaywgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUuXG5cbiAgICB0YWJzdGVyLmRyYWluSW5pdFF1ZXVlKCk7XG4gICAgbGV0IHJvb3Q7XG4gICAgbGV0IG1vZGFsaXplcjtcbiAgICBsZXQgZ3JvdXBwZXI7XG4gICAgbGV0IG1vdmVyO1xuICAgIGxldCBleGNsdWRlZEZyb21Nb3ZlciA9IGZhbHNlO1xuICAgIGxldCBncm91cHBlckJlZm9yZU1vdmVyO1xuICAgIGxldCBtb2RhbGl6ZXJJbkdyb3VwcGVyO1xuICAgIGxldCBkaXJSaWdodFRvTGVmdDtcbiAgICBsZXQgdW5jb250cm9sbGVkO1xuICAgIGxldCBjdXJFbGVtZW50ID0gcmVmZXJlbmNlRWxlbWVudCB8fCBlbGVtZW50O1xuICAgIGNvbnN0IGlnbm9yZUtleWRvd24gPSB7fTtcblxuICAgIHdoaWxlIChjdXJFbGVtZW50ICYmICghcm9vdCB8fCBjaGVja1J0bCkpIHtcbiAgICAgIGNvbnN0IHRhYnN0ZXJPbkVsZW1lbnQgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRhYnN0ZXIsIGN1ckVsZW1lbnQpO1xuXG4gICAgICBpZiAoY2hlY2tSdGwgJiYgZGlyUmlnaHRUb0xlZnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBkaXIgPSBjdXJFbGVtZW50LmRpcjtcblxuICAgICAgICBpZiAoZGlyKSB7XG4gICAgICAgICAgZGlyUmlnaHRUb0xlZnQgPSBkaXIudG9Mb3dlckNhc2UoKSA9PT0gXCJydGxcIjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXRhYnN0ZXJPbkVsZW1lbnQpIHtcbiAgICAgICAgY3VyRWxlbWVudCA9IGdldFBhcmVudChjdXJFbGVtZW50KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBjdXJFbGVtZW50LnRhZ05hbWU7XG5cbiAgICAgIGlmICh0YWJzdGVyT25FbGVtZW50LnVuY29udHJvbGxlZCB8fCB0YWdOYW1lID09PSBcIklGUkFNRVwiIHx8IHRhZ05hbWUgPT09IFwiV0VCVklFV1wiKSB7XG4gICAgICAgIHVuY29udHJvbGxlZCA9IGN1ckVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICghbW92ZXIgJiYgKChfYSA9IHRhYnN0ZXJPbkVsZW1lbnQuZm9jdXNhYmxlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZXhjbHVkZUZyb21Nb3ZlcikgJiYgIWdyb3VwcGVyKSB7XG4gICAgICAgIGV4Y2x1ZGVkRnJvbU1vdmVyID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VyTW9kYWxpemVyID0gdGFic3Rlck9uRWxlbWVudC5tb2RhbGl6ZXI7XG4gICAgICBjb25zdCBjdXJHcm91cHBlciA9IHRhYnN0ZXJPbkVsZW1lbnQuZ3JvdXBwZXI7XG4gICAgICBjb25zdCBjdXJNb3ZlciA9IHRhYnN0ZXJPbkVsZW1lbnQubW92ZXI7XG5cbiAgICAgIGlmICghbW9kYWxpemVyICYmIGN1ck1vZGFsaXplcikge1xuICAgICAgICBtb2RhbGl6ZXIgPSBjdXJNb2RhbGl6ZXI7XG4gICAgICB9XG5cbiAgICAgIGlmICghZ3JvdXBwZXIgJiYgY3VyR3JvdXBwZXIgJiYgKCFtb2RhbGl6ZXIgfHwgY3VyTW9kYWxpemVyKSkge1xuICAgICAgICBpZiAobW9kYWxpemVyKSB7XG4gICAgICAgICAgLy8gTW9kYWxpemVyIGRvbWluYXRlcyB0aGUgZ3JvdXBwZXIgd2hlbiB0aGV5IGFyZSBvbiB0aGUgc2FtZSBub2RlIGFuZCB0aGUgZ3JvdXBwZXIgaXMgYWN0aXZlLlxuICAgICAgICAgIGlmICghY3VyR3JvdXBwZXIuaXNBY3RpdmUoKSAmJiBjdXJHcm91cHBlci5nZXRQcm9wcygpLnRhYmJhYmlsaXR5ICYmIG1vZGFsaXplci51c2VySWQgIT09ICgoX2IgPSB0YWJzdGVyLm1vZGFsaXplcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFjdGl2ZUlkKSkge1xuICAgICAgICAgICAgbW9kYWxpemVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZ3JvdXBwZXIgPSBjdXJHcm91cHBlcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtb2RhbGl6ZXJJbkdyb3VwcGVyID0gY3VyR3JvdXBwZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBwZXIgPSBjdXJHcm91cHBlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIW1vdmVyICYmIGN1ck1vdmVyICYmICghbW9kYWxpemVyIHx8IGN1ck1vZGFsaXplcikgJiYgKCFjdXJHcm91cHBlciB8fCBjdXJFbGVtZW50ICE9PSBlbGVtZW50KSAmJiBjdXJFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpIC8vIE1vdmVyIG1ha2VzIHNlbnNlIG9ubHkgZm9yIHJlYWxseSBpbnNpZGUgZWxlbWVudHMsIG5vdCBmb3IgdmlydXRhbCBvdXQgb2YgdGhlIERPTSBvcmRlciBjaGlsZHJlbi5cbiAgICAgICkge1xuICAgICAgICBtb3ZlciA9IGN1ck1vdmVyO1xuICAgICAgICBncm91cHBlckJlZm9yZU1vdmVyID0gISFncm91cHBlciAmJiBncm91cHBlciAhPT0gY3VyR3JvdXBwZXI7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YWJzdGVyT25FbGVtZW50LnJvb3QpIHtcbiAgICAgICAgcm9vdCA9IHRhYnN0ZXJPbkVsZW1lbnQucm9vdDtcbiAgICAgIH1cblxuICAgICAgaWYgKChfYyA9IHRhYnN0ZXJPbkVsZW1lbnQuZm9jdXNhYmxlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuaWdub3JlS2V5ZG93bikge1xuICAgICAgICBPYmplY3QuYXNzaWduKGlnbm9yZUtleWRvd24sIHRhYnN0ZXJPbkVsZW1lbnQuZm9jdXNhYmxlLmlnbm9yZUtleWRvd24pO1xuICAgICAgfVxuXG4gICAgICBjdXJFbGVtZW50ID0gZ2V0UGFyZW50KGN1ckVsZW1lbnQpO1xuICAgIH0gLy8gTm8gcm9vdCBlbGVtZW50IGNvdWxkIGJlIGZvdW5kLCB0cnkgdG8gZ2V0IGFuIGF1dG8gcm9vdFxuXG5cbiAgICBpZiAoIXJvb3QpIHtcbiAgICAgIGNvbnN0IHJvb3RBUEkgPSB0YWJzdGVyLnJvb3Q7XG4gICAgICBjb25zdCBhdXRvUm9vdCA9IHJvb3RBUEkuX2F1dG9Sb290O1xuXG4gICAgICBpZiAoYXV0b1Jvb3QpIHtcbiAgICAgICAgaWYgKChfZCA9IGVsZW1lbnQub3duZXJEb2N1bWVudCkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmJvZHkpIHtcbiAgICAgICAgICByb290ID0gcm9vdEFQSS5fYXV0b1Jvb3RDcmVhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChncm91cHBlciAmJiAhbW92ZXIpIHtcbiAgICAgIGdyb3VwcGVyQmVmb3JlTW92ZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiAhcm9vdCkge1xuICAgICAgaWYgKG1vZGFsaXplciB8fCBncm91cHBlciB8fCBtb3Zlcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiVGFic3RlciBSb290IGlzIHJlcXVpcmVkIGZvciBNb3ZlciwgR3JvdXBwZXIgYW5kIE1vZGFsaXplciB0byB3b3JrLlwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRJZ25vcmVLZXlkb3duID0gZXZlbnQgPT4gISFpZ25vcmVLZXlkb3duW2V2ZW50LmtleV07XG5cbiAgICByZXR1cm4gcm9vdCA/IHtcbiAgICAgIHJvb3QsXG4gICAgICBtb2RhbGl6ZXIsXG4gICAgICBncm91cHBlcixcbiAgICAgIG1vdmVyLFxuICAgICAgZ3JvdXBwZXJCZWZvcmVNb3ZlcixcbiAgICAgIG1vZGFsaXplckluR3JvdXBwZXIsXG4gICAgICBydGw6IGNoZWNrUnRsID8gISFkaXJSaWdodFRvTGVmdCA6IHVuZGVmaW5lZCxcbiAgICAgIHVuY29udHJvbGxlZCxcbiAgICAgIGV4Y2x1ZGVkRnJvbU1vdmVyLFxuICAgICAgaWdub3JlS2V5ZG93bjogc2hvdWxkSWdub3JlS2V5ZG93blxuICAgIH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0Um9vdCh0YWJzdGVyLCBlbGVtZW50KSB7XG4gICAgdmFyIF9hO1xuXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gdGFic3Rlci5nZXRQYXJlbnQ7XG5cbiAgICBmb3IgKGxldCBlbCA9IGVsZW1lbnQ7IGVsOyBlbCA9IGdldFBhcmVudChlbCkpIHtcbiAgICAgIGNvbnN0IHJvb3QgPSAoX2EgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRhYnN0ZXIsIGVsKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJvb3Q7XG5cbiAgICAgIGlmIChyb290KSB7XG4gICAgICAgIHJldHVybiByb290O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBvblJvb3Qocm9vdCwgcmVtb3ZlZCkge1xuICAgIGlmIChyZW1vdmVkKSB7XG4gICAgICBkZWxldGUgdGhpcy5yb290QnlJZFtyb290LnVpZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm9vdEJ5SWRbcm9vdC51aWRdID0gcm9vdDtcbiAgICB9XG4gIH1cblxufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5jb25zdCBfY29udGFpbmVySGlzdG9yeUxlbmd0aCA9IDEwO1xuY2xhc3MgRGVsb3Nlckl0ZW1CYXNlIHt9XG5jbGFzcyBEZWxvc2VySXRlbSBleHRlbmRzIERlbG9zZXJJdGVtQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGRlbG9zZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudWlkID0gZGVsb3Nlci51aWQ7XG4gICAgdGhpcy5fdGFic3RlciA9IHRhYnN0ZXI7XG4gICAgdGhpcy5fZGVsb3NlciA9IGRlbG9zZXI7XG4gIH1cblxuICBiZWxvbmdzVG8oZGVsb3Nlcikge1xuICAgIHJldHVybiBkZWxvc2VyID09PSB0aGlzLl9kZWxvc2VyO1xuICB9XG5cbiAgdW5zaGlmdChlbGVtZW50KSB7XG4gICAgdGhpcy5fZGVsb3Nlci51bnNoaWZ0KGVsZW1lbnQpO1xuICB9XG5cbiAgYXN5bmMgZm9jdXNBdmFpbGFibGUoKSB7XG4gICAgY29uc3QgYXZhaWxhYmxlID0gdGhpcy5fZGVsb3Nlci5maW5kQXZhaWxhYmxlKCk7XG5cbiAgICBjb25zdCBkZWxvc2VyRWxlbWVudCA9IHRoaXMuX2RlbG9zZXIuZ2V0RWxlbWVudCgpO1xuXG4gICAgaWYgKGF2YWlsYWJsZSAmJiBkZWxvc2VyRWxlbWVudCkge1xuICAgICAgaWYgKCFkZWxvc2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBUYWJzdGVyTW92ZUZvY3VzRXZlbnQoe1xuICAgICAgICBieTogXCJkZWxvc2VyXCIsXG4gICAgICAgIG93bmVyOiBkZWxvc2VyRWxlbWVudCxcbiAgICAgICAgbmV4dDogYXZhaWxhYmxlXG4gICAgICB9KSkpIHtcbiAgICAgICAgLy8gRGVmYXVsdCBhY3Rpb24gaXMgcHJldmVudGVkLCBkb24ndCBsb29rIGZ1cnRoZXIuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5mb2N1cyhhdmFpbGFibGUpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHJlc2V0Rm9jdXMoKSB7XG4gICAgY29uc3QgZ2V0V2luZG93ID0gdGhpcy5fdGFic3Rlci5nZXRXaW5kb3c7XG4gICAgcmV0dXJuIGdldFByb21pc2UoZ2V0V2luZG93KS5yZXNvbHZlKHRoaXMuX2RlbG9zZXIucmVzZXRGb2N1cygpKTtcbiAgfVxuXG59XG5jbGFzcyBEZWxvc2VySGlzdG9yeUJ5Um9vdEJhc2Uge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCByb290VUlkKSB7XG4gICAgdGhpcy5faGlzdG9yeSA9IFtdO1xuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMucm9vdFVJZCA9IHJvb3RVSWQ7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpc3RvcnkubGVuZ3RoO1xuICB9XG5cbiAgcmVtb3ZlRGVsb3NlcihkZWxvc2VyKSB7XG4gICAgdGhpcy5faGlzdG9yeSA9IHRoaXMuX2hpc3RvcnkuZmlsdGVyKGMgPT4gIWMuYmVsb25nc1RvKGRlbG9zZXIpKTtcbiAgfVxuXG4gIGhhc0RlbG9zZXIoZGVsb3Nlcikge1xuICAgIHJldHVybiB0aGlzLl9oaXN0b3J5LnNvbWUoZCA9PiBkLmJlbG9uZ3NUbyhkZWxvc2VyKSk7XG4gIH1cblxufVxuXG5jbGFzcyBEZWxvc2VySGlzdG9yeUJ5Um9vdCBleHRlbmRzIERlbG9zZXJIaXN0b3J5QnlSb290QmFzZSB7XG4gIHVuc2hpZnRUb0RlbG9zZXIoZGVsb3NlciwgZWxlbWVudCkge1xuICAgIGxldCBpdGVtO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9oaXN0b3J5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5faGlzdG9yeVtpXS5iZWxvbmdzVG8oZGVsb3NlcikpIHtcbiAgICAgICAgaXRlbSA9IHRoaXMuX2hpc3RvcnlbaV07XG5cbiAgICAgICAgdGhpcy5faGlzdG9yeS5zcGxpY2UoaSwgMSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICBpdGVtID0gbmV3IERlbG9zZXJJdGVtKHRoaXMuX3RhYnN0ZXIsIGRlbG9zZXIpO1xuICAgIH1cblxuICAgIGl0ZW0udW5zaGlmdChlbGVtZW50KTtcblxuICAgIHRoaXMuX2hpc3RvcnkudW5zaGlmdChpdGVtKTtcblxuICAgIHRoaXMuX2hpc3Rvcnkuc3BsaWNlKF9jb250YWluZXJIaXN0b3J5TGVuZ3RoLCB0aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIF9jb250YWluZXJIaXN0b3J5TGVuZ3RoKTtcbiAgfVxuXG4gIGFzeW5jIGZvY3VzQXZhaWxhYmxlKGZyb20pIHtcbiAgICBsZXQgc2tpcCA9ICEhZnJvbTtcblxuICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLl9oaXN0b3J5KSB7XG4gICAgICBpZiAoZnJvbSAmJiBpLmJlbG9uZ3NUbyhmcm9tKSkge1xuICAgICAgICBza2lwID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2tpcCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpLmZvY3VzQXZhaWxhYmxlKCk7IC8vIFJlc3VsdCBpcyBudWxsIHdoZW4gdGhlIGRlZmF1bHQgYWN0aW9uIGlzIHByZXZlbnRlZCBieSB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgLy8gYW5kIHdlIGRvbid0IG5lZWQgdG8gbG9vayBmdXJ0aGVyLlxuXG4gICAgICAgIGlmIChyZXN1bHQgfHwgcmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIHJlc2V0Rm9jdXMoZnJvbSkge1xuICAgIGxldCBza2lwID0gISFmcm9tO1xuICAgIGNvbnN0IHJlc2V0UXVldWUgPSB7fTtcblxuICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLl9oaXN0b3J5KSB7XG4gICAgICBpZiAoZnJvbSAmJiBpLmJlbG9uZ3NUbyhmcm9tKSkge1xuICAgICAgICBza2lwID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2tpcCAmJiAhcmVzZXRRdWV1ZVtpLnVpZF0pIHtcbiAgICAgICAgcmVzZXRRdWV1ZVtpLnVpZF0gPSBpO1xuICAgICAgfVxuICAgIH0gLy8gTm90aGluZyBpcyBmb3VuZCwgYXQgbGVhc3QgdHJ5IHRvIHJlc2V0LlxuXG5cbiAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKHJlc2V0UXVldWUpKSB7XG4gICAgICBpZiAoYXdhaXQgcmVzZXRRdWV1ZVtpZF0ucmVzZXRGb2N1cygpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG5cbmNsYXNzIERlbG9zZXJIaXN0b3J5IHtcbiAgY29uc3RydWN0b3IodGFic3Rlcikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgdGhpcy5faGlzdG9yeSA9IFtdO1xuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLl9oaXN0b3J5ID0gW107XG4gIH1cblxuICBwcm9jZXNzKGVsZW1lbnQpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCBjdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHJvb3RVSWQgPSBjdHggJiYgY3R4LnJvb3QudWlkO1xuICAgIGNvbnN0IGRlbG9zZXIgPSBEZWxvc2VyQVBJLmdldERlbG9zZXIodGhpcy5fdGFic3RlciwgZWxlbWVudCk7XG5cbiAgICBpZiAoIXJvb3RVSWQgfHwgIWRlbG9zZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgaGlzdG9yeUJ5Um9vdCA9IHRoaXMubWFrZShyb290VUlkLCAoKSA9PiBuZXcgRGVsb3Nlckhpc3RvcnlCeVJvb3QodGhpcy5fdGFic3Rlciwgcm9vdFVJZCkpO1xuXG4gICAgaWYgKCFjdHggfHwgIWN0eC5tb2RhbGl6ZXIgfHwgKChfYSA9IGN0eC5tb2RhbGl6ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pc0FjdGl2ZSgpKSkge1xuICAgICAgaGlzdG9yeUJ5Um9vdC51bnNoaWZ0VG9EZWxvc2VyKGRlbG9zZXIsIGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxvc2VyO1xuICB9XG5cbiAgbWFrZShyb290VUlkLCBjcmVhdGVJbnN0YW5jZSkge1xuICAgIGxldCBoaXN0b3J5QnlSb290O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9oaXN0b3J5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBoYnIgPSB0aGlzLl9oaXN0b3J5W2ldO1xuXG4gICAgICBpZiAoaGJyLnJvb3RVSWQgPT09IHJvb3RVSWQpIHtcbiAgICAgICAgaGlzdG9yeUJ5Um9vdCA9IGhicjtcblxuICAgICAgICB0aGlzLl9oaXN0b3J5LnNwbGljZShpLCAxKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWhpc3RvcnlCeVJvb3QpIHtcbiAgICAgIGhpc3RvcnlCeVJvb3QgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2hpc3RvcnkudW5zaGlmdChoaXN0b3J5QnlSb290KTtcblxuICAgIHRoaXMuX2hpc3Rvcnkuc3BsaWNlKF9jb250YWluZXJIaXN0b3J5TGVuZ3RoLCB0aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIF9jb250YWluZXJIaXN0b3J5TGVuZ3RoKTtcblxuICAgIHJldHVybiBoaXN0b3J5QnlSb290O1xuICB9XG5cbiAgcmVtb3ZlRGVsb3NlcihkZWxvc2VyKSB7XG4gICAgdGhpcy5faGlzdG9yeS5mb3JFYWNoKGkgPT4ge1xuICAgICAgaS5yZW1vdmVEZWxvc2VyKGRlbG9zZXIpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5faGlzdG9yeSA9IHRoaXMuX2hpc3RvcnkuZmlsdGVyKGkgPT4gaS5nZXRMZW5ndGgoKSA+IDApO1xuICB9XG5cbiAgYXN5bmMgZm9jdXNBdmFpbGFibGUoZnJvbSkge1xuICAgIGxldCBza2lwID0gISFmcm9tO1xuXG4gICAgZm9yIChjb25zdCBoIG9mIHRoaXMuX2hpc3RvcnkpIHtcbiAgICAgIGlmIChmcm9tICYmIGguaGFzRGVsb3Nlcihmcm9tKSkge1xuICAgICAgICBza2lwID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2tpcCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBoLmZvY3VzQXZhaWxhYmxlKGZyb20pOyAvLyBSZXN1bHQgaXMgbnVsbCB3aGVuIHRoZSBkZWZhdWx0IGFjdGlvbiBpcyBwcmV2ZW50ZWQgYnkgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgIC8vIGFuZCB3ZSBkb24ndCBuZWVkIHRvIGxvb2sgZnVydGhlci5cblxuICAgICAgICBpZiAocmVzdWx0IHx8IHJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBhc3luYyByZXNldEZvY3VzKGZyb20pIHtcbiAgICBsZXQgc2tpcCA9ICEhZnJvbTtcblxuICAgIGZvciAoY29uc3QgaCBvZiB0aGlzLl9oaXN0b3J5KSB7XG4gICAgICBpZiAoZnJvbSAmJiBoLmhhc0RlbG9zZXIoZnJvbSkpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXNraXAgJiYgKGF3YWl0IGgucmVzZXRGb2N1cyhmcm9tKSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gX3NldEluZm9ybWF0aXZlU3R5bGUkMih3ZWFrRWxlbWVudCwgcmVtb3ZlLCBpc0FjdGl2ZSwgc25hcHNob3RJbmRleCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gd2Vha0VsZW1lbnQuZ2V0KCk7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgaWYgKHJlbW92ZSkge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10YWJzdGVyLWRlbG9zZXJcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiLS10YWJzdGVyLWRlbG9zZXJcIiwgKGlzQWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIikgKyBcIixcIiArIChcInNuYXBzaG90LVwiICsgc25hcHNob3RJbmRleCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEVsZW1lbnRTZWxlY3RvcihlbGVtZW50LCB3aXRoQ2xhc3MsIHdpdGhJbmRleCkge1xuICBjb25zdCBzZWxlY3RvciA9IFtdO1xuICBjb25zdCBlc2NhcGVSZWdFeHAgPSAvKDp8XFwufFxcW3xcXF18LHw9fEApL2c7XG4gIGNvbnN0IGVzY2FwZVJlcGxhY2VWYWx1ZSA9IFwiXFxcXCQxXCI7XG4gIGNvbnN0IGVsZW1lbnRJZCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIik7XG5cbiAgaWYgKGVsZW1lbnRJZCkge1xuICAgIHNlbGVjdG9yLnB1c2goXCIjXCIgKyBlbGVtZW50SWQucmVwbGFjZShlc2NhcGVSZWdFeHAsIGVzY2FwZVJlcGxhY2VWYWx1ZSkpO1xuICB9XG5cbiAgaWYgKHdpdGhDbGFzcyAhPT0gZmFsc2UgJiYgZWxlbWVudC5jbGFzc05hbWUpIHtcbiAgICBlbGVtZW50LmNsYXNzTmFtZS5zcGxpdChcIiBcIikuZm9yRWFjaChjbHMgPT4ge1xuICAgICAgY2xzID0gY2xzLnRyaW0oKTtcblxuICAgICAgaWYgKGNscykge1xuICAgICAgICBzZWxlY3Rvci5wdXNoKFwiLlwiICsgY2xzLnJlcGxhY2UoZXNjYXBlUmVnRXhwLCBlc2NhcGVSZXBsYWNlVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGxldCBpbmRleCA9IDA7XG4gIGxldCBlbDtcblxuICBpZiAod2l0aEluZGV4ICE9PSBmYWxzZSAmJiBzZWxlY3Rvci5sZW5ndGggPT09IDApIHtcbiAgICBlbCA9IGVsZW1lbnQ7XG5cbiAgICB3aGlsZSAoZWwpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgICBlbCA9IGVsLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfVxuXG4gICAgc2VsZWN0b3IudW5zaGlmdChcIjpudGgtY2hpbGQoXCIgKyBpbmRleCArIFwiKVwiKTtcbiAgfVxuXG4gIHNlbGVjdG9yLnVuc2hpZnQoZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICByZXR1cm4gc2VsZWN0b3Iuam9pbihcIlwiKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRTZWxlY3RvcihlbGVtZW50KSB7XG4gIGlmICghZG9jdW1lbnRDb250YWlucyhlbGVtZW50Lm93bmVyRG9jdW1lbnQsIGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdG9yID0gW2J1aWxkRWxlbWVudFNlbGVjdG9yKGVsZW1lbnQpXTtcbiAgbGV0IG5vZGUgPSBkb20uZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICB3aGlsZSAobm9kZSAmJiBub2RlLm5vZGVUeXBlICE9PSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpIHtcbiAgICAvLyBTdG9wIGF0IHRoZSBzaGFkb3cgcm9vdCBhcyBjcm9zcyBzaGFkb3cgc2VsZWN0b3JzIHdvbid0IHdvcmsuXG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICBjb25zdCBpc0JvZHkgPSBub2RlLnRhZ05hbWUgPT09IFwiQk9EWVwiO1xuICAgICAgc2VsZWN0b3IudW5zaGlmdChidWlsZEVsZW1lbnRTZWxlY3Rvcihub2RlLCBmYWxzZSwgIWlzQm9keSkpO1xuXG4gICAgICBpZiAoaXNCb2R5KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5vZGUgPSBkb20uZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Rvci5qb2luKFwiIFwiKTtcbn1cblxuY2xhc3MgRGVsb3NlciBleHRlbmRzIFRhYnN0ZXJQYXJ0IHtcbiAgY29uc3RydWN0b3IodGFic3RlciwgZWxlbWVudCwgb25EaXNwb3NlLCBwcm9wcykge1xuICAgIHN1cGVyKHRhYnN0ZXIsIGVsZW1lbnQsIHByb3BzKTtcbiAgICB0aGlzLl9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2hpc3RvcnkgPSBbW11dO1xuICAgIHRoaXMuX3NuYXBzaG90SW5kZXggPSAwO1xuXG4gICAgdGhpcy5pc0FjdGl2ZSA9ICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9pc0FjdGl2ZTtcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRTbmFwc2hvdCA9IGluZGV4ID0+IHtcbiAgICAgIHRoaXMuX3NuYXBzaG90SW5kZXggPSBpbmRleDtcblxuICAgICAgaWYgKHRoaXMuX2hpc3RvcnkubGVuZ3RoID4gaW5kZXggKyAxKSB7XG4gICAgICAgIHRoaXMuX2hpc3Rvcnkuc3BsaWNlKGluZGV4ICsgMSwgdGhpcy5faGlzdG9yeS5sZW5ndGggLSBpbmRleCAtIDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX2hpc3RvcnlbaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuX2hpc3RvcnlbaW5kZXhdID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBfc2V0SW5mb3JtYXRpdmVTdHlsZSQyKHRoaXMuX2VsZW1lbnQsIGZhbHNlLCB0aGlzLl9pc0FjdGl2ZSwgdGhpcy5fc25hcHNob3RJbmRleCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuZm9jdXNGaXJzdCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLl9lbGVtZW50LmdldCgpO1xuXG4gICAgICByZXR1cm4gISFlICYmIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZm9jdXNGaXJzdCh7XG4gICAgICAgIGNvbnRhaW5lcjogZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHRoaXMuZm9jdXNEZWZhdWx0ID0gKCkgPT4ge1xuICAgICAgY29uc3QgZSA9IHRoaXMuX2VsZW1lbnQuZ2V0KCk7XG5cbiAgICAgIHJldHVybiAhIWUgJiYgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5mb2N1c0RlZmF1bHQoZSk7XG4gICAgfTtcblxuICAgIHRoaXMucmVzZXRGb2N1cyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLl9lbGVtZW50LmdldCgpO1xuXG4gICAgICByZXR1cm4gISFlICYmIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQucmVzZXRGb2N1cyhlKTtcbiAgICB9O1xuXG4gICAgdGhpcy5jbGVhckhpc3RvcnkgPSBwcmVzZXJ2ZUV4aXN0aW5nID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50LmdldCgpO1xuXG4gICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5faGlzdG9yeVt0aGlzLl9zbmFwc2hvdEluZGV4XSA9IFtdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2hpc3RvcnlbdGhpcy5fc25hcHNob3RJbmRleF0gPSB0aGlzLl9oaXN0b3J5W3RoaXMuX3NuYXBzaG90SW5kZXhdLmZpbHRlcih3ZSA9PiB7XG4gICAgICAgIGNvbnN0IGUgPSB3ZS5nZXQoKTtcbiAgICAgICAgcmV0dXJuIGUgJiYgcHJlc2VydmVFeGlzdGluZyA/IGRvbS5ub2RlQ29udGFpbnMoZWxlbWVudCwgZSkgOiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLnVpZCA9IGdldEVsZW1lbnRVSWQodGFic3Rlci5nZXRXaW5kb3csIGVsZW1lbnQpO1xuICAgIHRoaXMuc3RyYXRlZ3kgPSBwcm9wcy5zdHJhdGVneSB8fCBEZWxvc2VyU3RyYXRlZ2llcy5BdXRvO1xuICAgIHRoaXMuX29uRGlzcG9zZSA9IG9uRGlzcG9zZTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgX3NldEluZm9ybWF0aXZlU3R5bGUkMih0aGlzLl9lbGVtZW50LCBmYWxzZSwgdGhpcy5faXNBY3RpdmUsIHRoaXMuX3NuYXBzaG90SW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5fcmVtb3ZlKCk7XG5cbiAgICB0aGlzLl9vbkRpc3Bvc2UodGhpcyk7XG5cbiAgICB0aGlzLl9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX3NuYXBzaG90SW5kZXggPSAwO1xuICAgIHRoaXMuX3Byb3BzID0ge307XG4gICAgdGhpcy5faGlzdG9yeSA9IFtdO1xuICB9XG5cbiAgc2V0QWN0aXZlKGFjdGl2ZSkge1xuICAgIHRoaXMuX2lzQWN0aXZlID0gYWN0aXZlO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBfc2V0SW5mb3JtYXRpdmVTdHlsZSQyKHRoaXMuX2VsZW1lbnQsIGZhbHNlLCB0aGlzLl9pc0FjdGl2ZSwgdGhpcy5fc25hcHNob3RJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWN0aW9ucygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9jdXNEZWZhdWx0OiB0aGlzLmZvY3VzRGVmYXVsdCxcbiAgICAgIGZvY3VzRmlyc3Q6IHRoaXMuZm9jdXNGaXJzdCxcbiAgICAgIHJlc2V0Rm9jdXM6IHRoaXMucmVzZXRGb2N1cyxcbiAgICAgIGNsZWFySGlzdG9yeTogdGhpcy5jbGVhckhpc3RvcnksXG4gICAgICBzZXRTbmFwc2hvdDogdGhpcy5zZXRTbmFwc2hvdCxcbiAgICAgIGlzQWN0aXZlOiB0aGlzLmlzQWN0aXZlXG4gICAgfTtcbiAgfVxuXG4gIHVuc2hpZnQoZWxlbWVudCkge1xuICAgIGxldCBjdXIgPSB0aGlzLl9oaXN0b3J5W3RoaXMuX3NuYXBzaG90SW5kZXhdO1xuICAgIGN1ciA9IHRoaXMuX2hpc3RvcnlbdGhpcy5fc25hcHNob3RJbmRleF0gPSBjdXIuZmlsdGVyKHdlID0+IHtcbiAgICAgIGNvbnN0IGUgPSB3ZS5nZXQoKTtcbiAgICAgIHJldHVybiBlICYmIGUgIT09IGVsZW1lbnQ7XG4gICAgfSk7XG4gICAgY3VyLnVuc2hpZnQobmV3IFdlYWtIVE1MRWxlbWVudCh0aGlzLl90YWJzdGVyLmdldFdpbmRvdywgZWxlbWVudCwgYnVpbGRTZWxlY3RvcihlbGVtZW50KSkpO1xuXG4gICAgd2hpbGUgKGN1ci5sZW5ndGggPiBfY29udGFpbmVySGlzdG9yeUxlbmd0aCkge1xuICAgICAgY3VyLnBvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGZpbmRBdmFpbGFibGUoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuZ2V0KCk7XG5cbiAgICBpZiAoIWVsZW1lbnQgfHwgIXRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmlzVmlzaWJsZShlbGVtZW50KSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IHJlc3RvcmVGb2N1c09yZGVyID0gdGhpcy5fcHJvcHMucmVzdG9yZUZvY3VzT3JkZXI7XG4gICAgbGV0IGF2YWlsYWJsZSA9IG51bGw7XG4gICAgY29uc3QgY3R4ID0gUm9vdEFQSS5nZXRUYWJzdGVyQ29udGV4dCh0aGlzLl90YWJzdGVyLCBlbGVtZW50KTtcblxuICAgIGlmICghY3R4KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByb290ID0gY3R4LnJvb3Q7XG4gICAgY29uc3Qgcm9vdEVsZW1lbnQgPSByb290LmdldEVsZW1lbnQoKTtcblxuICAgIGlmICghcm9vdEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChyZXN0b3JlRm9jdXNPcmRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN0b3JlRm9jdXNPcmRlciA9IHJvb3QuZ2V0UHJvcHMoKS5yZXN0b3JlRm9jdXNPcmRlcjtcbiAgICB9XG5cbiAgICBpZiAocmVzdG9yZUZvY3VzT3JkZXIgPT09IFJlc3RvcmVGb2N1c09yZGVycy5Sb290RGVmYXVsdCkge1xuICAgICAgYXZhaWxhYmxlID0gdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuZmluZERlZmF1bHQoe1xuICAgICAgICBjb250YWluZXI6IHJvb3RFbGVtZW50XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIWF2YWlsYWJsZSAmJiByZXN0b3JlRm9jdXNPcmRlciA9PT0gUmVzdG9yZUZvY3VzT3JkZXJzLlJvb3RGaXJzdCkge1xuICAgICAgYXZhaWxhYmxlID0gdGhpcy5fZmluZEZpcnN0KHJvb3RFbGVtZW50KTtcbiAgICB9XG5cbiAgICBpZiAoYXZhaWxhYmxlKSB7XG4gICAgICByZXR1cm4gYXZhaWxhYmxlO1xuICAgIH1cblxuICAgIGNvbnN0IGF2YWlsYWJsZUluSGlzdG9yeSA9IHRoaXMuX2ZpbmRJbkhpc3RvcnkoKTtcblxuICAgIGlmIChhdmFpbGFibGVJbkhpc3RvcnkgJiYgcmVzdG9yZUZvY3VzT3JkZXIgPT09IFJlc3RvcmVGb2N1c09yZGVycy5IaXN0b3J5KSB7XG4gICAgICByZXR1cm4gYXZhaWxhYmxlSW5IaXN0b3J5O1xuICAgIH1cblxuICAgIGNvbnN0IGF2YWlsYWJsZURlZmF1bHQgPSB0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5maW5kRGVmYXVsdCh7XG4gICAgICBjb250YWluZXI6IGVsZW1lbnRcbiAgICB9KTtcblxuICAgIGlmIChhdmFpbGFibGVEZWZhdWx0ICYmIHJlc3RvcmVGb2N1c09yZGVyID09PSBSZXN0b3JlRm9jdXNPcmRlcnMuRGVsb3NlckRlZmF1bHQpIHtcbiAgICAgIHJldHVybiBhdmFpbGFibGVEZWZhdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IGF2YWlsYWJsZUZpcnN0ID0gdGhpcy5fZmluZEZpcnN0KGVsZW1lbnQpO1xuXG4gICAgaWYgKGF2YWlsYWJsZUZpcnN0ICYmIHJlc3RvcmVGb2N1c09yZGVyID09PSBSZXN0b3JlRm9jdXNPcmRlcnMuRGVsb3NlckZpcnN0KSB7XG4gICAgICByZXR1cm4gYXZhaWxhYmxlRmlyc3Q7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF2YWlsYWJsZURlZmF1bHQgfHwgYXZhaWxhYmxlSW5IaXN0b3J5IHx8IGF2YWlsYWJsZUZpcnN0IHx8IG51bGw7XG4gIH1cblxuICBjdXN0b21Gb2N1c0xvc3RIYW5kbGVyKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBEZWxvc2VyRm9jdXNMb3N0RXZlbnQodGhpcy5nZXRBY3Rpb25zKCkpKTtcbiAgfVxuXG4gIF9maW5kSW5IaXN0b3J5KCkge1xuICAgIGNvbnN0IGN1ciA9IHRoaXMuX2hpc3RvcnlbdGhpcy5fc25hcHNob3RJbmRleF0uc2xpY2UoMCk7XG5cbiAgICB0aGlzLmNsZWFySGlzdG9yeSh0cnVlKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY3VyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB3ZSA9IGN1cltpXTtcbiAgICAgIGNvbnN0IGUgPSB3ZS5nZXQoKTtcblxuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuZ2V0KCk7XG5cbiAgICAgIGlmIChlICYmIGVsZW1lbnQgJiYgZG9tLm5vZGVDb250YWlucyhlbGVtZW50LCBlKSkge1xuICAgICAgICBpZiAodGhpcy5fdGFic3Rlci5mb2N1c2FibGUuaXNGb2N1c2FibGUoZSkpIHtcbiAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghdGhpcy5fcHJvcHMubm9TZWxlY3RvckNoZWNrKSB7XG4gICAgICAgIC8vIEVsZW1lbnQgaXMgbm90IGluIHRoZSBET00sIHRyeSB0byBsb2NhdGUgdGhlIG5vZGUgYnkgaXQnc1xuICAgICAgICAvLyBzZWxlY3Rvci4gVGhpcyBtaWdodCByZXR1cm4gbm90IGV4YWN0bHkgdGhlIHJpZ2h0IG5vZGUsXG4gICAgICAgIC8vIGJ1dCBpdCB3b3VsZCBiZSBlYXNpbHkgZml4YWJsZSBieSBoYXZpbmcgbW9yZSBkZXRhaWxlZCBzZWxlY3RvcnMuXG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gd2UuZ2V0RGF0YSgpO1xuXG4gICAgICAgIGlmIChzZWxlY3RvciAmJiBlbGVtZW50KSB7XG4gICAgICAgICAgbGV0IGVscztcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBlbHMgPSBkb20ucXVlcnlTZWxlY3RvckFsbChlbGVtZW50Lm93bmVyRG9jdW1lbnQsIHNlbGVjdG9yKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCB1bmxlc3MgdGhlcmUgaXMgc29tZSBidWcgaW4gYnVpbGRFbGVtZW50U2VsZWN0b3IoKS5cbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHF1ZXJ5U2VsZWN0b3JBbGwoJyR7c2VsZWN0b3J9JylgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVsID0gZWxzW2ldO1xuXG4gICAgICAgICAgICBpZiAoZWwgJiYgdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuaXNGb2N1c2FibGUoZWwpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIF9maW5kRmlyc3QoZWxlbWVudCkge1xuICAgIGlmICh0aGlzLl90YWJzdGVyLmtleWJvYXJkTmF2aWdhdGlvbi5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSkge1xuICAgICAgY29uc3QgZmlyc3QgPSB0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5maW5kRmlyc3Qoe1xuICAgICAgICBjb250YWluZXI6IGVsZW1lbnQsXG4gICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICByZXR1cm4gZmlyc3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfcmVtb3ZlKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgX3NldEluZm9ybWF0aXZlU3R5bGUkMih0aGlzLl9lbGVtZW50LCB0cnVlKTtcbiAgICB9XG4gIH1cblxufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cbmNsYXNzIERlbG9zZXJBUEkge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCBwcm9wcykge1xuICAgIC8qKlxyXG4gICAgICogVHJhY2tzIGlmIGZvY3VzIGlzIGluc2lkZSBhIGRlbG9zZXJcclxuICAgICAqL1xuICAgIHRoaXMuX2luRGVsb3NlciA9IGZhbHNlO1xuICAgIHRoaXMuX2lzUmVzdG9yaW5nRm9jdXMgPSBmYWxzZTtcbiAgICB0aGlzLl9pc1BhdXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fb25SZXN0b3JlRm9jdXMgPSBldmVudCA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdO1xuXG4gICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IChfYSA9IERlbG9zZXJBUEkuZ2V0RGVsb3Nlcih0aGlzLl90YWJzdGVyLCB0YXJnZXQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmluZEF2YWlsYWJsZSgpO1xuXG4gICAgICAgIGlmIChhdmFpbGFibGUpIHtcbiAgICAgICAgICB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LmZvY3VzKGF2YWlsYWJsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25Gb2N1cyA9IGUgPT4ge1xuICAgICAgaWYgKHRoaXMuX3Jlc3RvcmVGb2N1c1RpbWVyKSB7XG4gICAgICAgIHRoaXMuX3dpbigpLmNsZWFyVGltZW91dCh0aGlzLl9yZXN0b3JlRm9jdXNUaW1lcik7XG5cbiAgICAgICAgdGhpcy5fcmVzdG9yZUZvY3VzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmICghZSkge1xuICAgICAgICB0aGlzLl9zY2hlZHVsZVJlc3RvcmVGb2N1cygpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVsb3NlciA9IHRoaXMuX2hpc3RvcnkucHJvY2VzcyhlKTtcblxuICAgICAgaWYgKGRlbG9zZXIpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGUoZGVsb3Nlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9kZWFjdGl2YXRlKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX29uRGVsb3NlckRpc3Bvc2UgPSBkZWxvc2VyID0+IHtcbiAgICAgIHRoaXMuX2hpc3RvcnkucmVtb3ZlRGVsb3NlcihkZWxvc2VyKTtcblxuICAgICAgaWYgKGRlbG9zZXIuaXNBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLl9zY2hlZHVsZVJlc3RvcmVGb2N1cygpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl90YWJzdGVyID0gdGFic3RlcjtcbiAgICB0aGlzLl93aW4gPSB0YWJzdGVyLmdldFdpbmRvdztcbiAgICB0aGlzLl9oaXN0b3J5ID0gbmV3IERlbG9zZXJIaXN0b3J5KHRhYnN0ZXIpO1xuICAgIHRhYnN0ZXIucXVldWVJbml0KCgpID0+IHtcbiAgICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuc3Vic2NyaWJlKHRoaXMuX29uRm9jdXMpO1xuXG4gICAgICBjb25zdCBkb2MgPSB0aGlzLl93aW4oKS5kb2N1bWVudDtcblxuICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoRGVsb3NlclJlc3RvcmVGb2N1c0V2ZW50TmFtZSwgdGhpcy5fb25SZXN0b3JlRm9jdXMpO1xuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGRvbS5nZXRBY3RpdmVFbGVtZW50KGRvYyk7XG5cbiAgICAgIGlmIChhY3RpdmVFbGVtZW50ICYmIGFjdGl2ZUVsZW1lbnQgIT09IGRvYy5ib2R5KSB7XG4gICAgICAgIC8vIEFkZGluZyBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50IHRvIHRoZSBkZWxvc2VyIGhpc3RvcnkuXG4gICAgICAgIHRoaXMuX29uRm9jdXMoYWN0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgYXV0b0RlbG9zZXIgPSBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuYXV0b0RlbG9zZXI7XG5cbiAgICBpZiAoYXV0b0RlbG9zZXIpIHtcbiAgICAgIHRoaXMuX2F1dG9EZWxvc2VyID0gYXV0b0RlbG9zZXI7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLl93aW4oKTtcblxuICAgIGlmICh0aGlzLl9yZXN0b3JlRm9jdXNUaW1lcikge1xuICAgICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9yZXN0b3JlRm9jdXNUaW1lcik7XG4gICAgICB0aGlzLl9yZXN0b3JlRm9jdXNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYXV0b0RlbG9zZXJJbnN0YW5jZSkge1xuICAgICAgdGhpcy5fYXV0b0RlbG9zZXJJbnN0YW5jZS5kaXNwb3NlKCk7XG5cbiAgICAgIGRlbGV0ZSB0aGlzLl9hdXRvRGVsb3Nlckluc3RhbmNlO1xuICAgICAgZGVsZXRlIHRoaXMuX2F1dG9EZWxvc2VyO1xuICAgIH1cblxuICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQudW5zdWJzY3JpYmUodGhpcy5fb25Gb2N1cyk7XG5cbiAgICB3aW4uZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihEZWxvc2VyUmVzdG9yZUZvY3VzRXZlbnROYW1lLCB0aGlzLl9vblJlc3RvcmVGb2N1cyk7XG5cbiAgICB0aGlzLl9oaXN0b3J5LmRpc3Bvc2UoKTtcblxuICAgIGRlbGV0ZSB0aGlzLl9jdXJEZWxvc2VyO1xuICB9XG5cbiAgY3JlYXRlRGVsb3NlcihlbGVtZW50LCBwcm9wcykge1xuICAgIHZhciBfYTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JykgO1xuXG4gICAgY29uc3QgZGVsb3NlciA9IG5ldyBEZWxvc2VyKHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQsIHRoaXMuX29uRGVsb3NlckRpc3Bvc2UsIHByb3BzKTtcblxuICAgIGlmIChkb20ubm9kZUNvbnRhaW5zKGVsZW1lbnQsIChfYSA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZ2V0Rm9jdXNlZEVsZW1lbnQoKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCkpIHtcbiAgICAgIHRoaXMuX2FjdGl2YXRlKGRlbG9zZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxvc2VyO1xuICB9XG5cbiAgZ2V0QWN0aW9ucyhlbGVtZW50KSB7XG4gICAgZm9yIChsZXQgZSA9IGVsZW1lbnQ7IGU7IGUgPSBkb20uZ2V0UGFyZW50RWxlbWVudChlKSkge1xuICAgICAgY29uc3QgdGFic3Rlck9uRWxlbWVudCA9IGdldFRhYnN0ZXJPbkVsZW1lbnQodGhpcy5fdGFic3RlciwgZSk7XG5cbiAgICAgIGlmICh0YWJzdGVyT25FbGVtZW50ICYmIHRhYnN0ZXJPbkVsZW1lbnQuZGVsb3Nlcikge1xuICAgICAgICByZXR1cm4gdGFic3Rlck9uRWxlbWVudC5kZWxvc2VyLmdldEFjdGlvbnMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcGF1c2UoKSB7XG4gICAgdGhpcy5faXNQYXVzZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuX3Jlc3RvcmVGb2N1c1RpbWVyKSB7XG4gICAgICB0aGlzLl93aW4oKS5jbGVhclRpbWVvdXQodGhpcy5fcmVzdG9yZUZvY3VzVGltZXIpO1xuXG4gICAgICB0aGlzLl9yZXN0b3JlRm9jdXNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICByZXN1bWUocmVzdG9yZSkge1xuICAgIHRoaXMuX2lzUGF1c2VkID0gZmFsc2U7XG5cbiAgICBpZiAocmVzdG9yZSkge1xuICAgICAgdGhpcy5fc2NoZWR1bGVSZXN0b3JlRm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgLyoqXHJcbiAgICogQWN0aXZhdGVzIGFuZCBzZXRzIHRoZSBjdXJyZW50IGRlbG9zZXJcclxuICAgKi9cblxuXG4gIF9hY3RpdmF0ZShkZWxvc2VyKSB7XG4gICAgY29uc3QgY3VyRGVsb3NlciA9IHRoaXMuX2N1ckRlbG9zZXI7XG5cbiAgICBpZiAoY3VyRGVsb3NlciAhPT0gZGVsb3Nlcikge1xuICAgICAgdGhpcy5faW5EZWxvc2VyID0gdHJ1ZTtcbiAgICAgIGN1ckRlbG9zZXIgPT09IG51bGwgfHwgY3VyRGVsb3NlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VyRGVsb3Nlci5zZXRBY3RpdmUoZmFsc2UpO1xuICAgICAgZGVsb3Nlci5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgICB0aGlzLl9jdXJEZWxvc2VyID0gZGVsb3NlcjtcbiAgICB9XG4gIH1cbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gZm9jdXMgc2hvdWxkIG5vIGxvbmdlciBiZSBpbiBhIGRlbG9zZXJcclxuICAgKi9cblxuXG4gIF9kZWFjdGl2YXRlKCkge1xuICAgIHZhciBfYTtcblxuICAgIHRoaXMuX2luRGVsb3NlciA9IGZhbHNlO1xuICAgIChfYSA9IHRoaXMuX2N1ckRlbG9zZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIHRoaXMuX2N1ckRlbG9zZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBfc2NoZWR1bGVSZXN0b3JlRm9jdXMoZm9yY2UpIHtcbiAgICBpZiAodGhpcy5faXNQYXVzZWQgfHwgdGhpcy5faXNSZXN0b3JpbmdGb2N1cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3RvcmVGb2N1cyA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuX3Jlc3RvcmVGb2N1c1RpbWVyID0gdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBsYXN0Rm9jdXNlZCA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZ2V0TGFzdEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICAgIGlmICghZm9yY2UgJiYgKHRoaXMuX2lzUmVzdG9yaW5nRm9jdXMgfHwgIXRoaXMuX2luRGVsb3NlciB8fCBsYXN0Rm9jdXNlZCAmJiAhaXNEaXNwbGF5Tm9uZShsYXN0Rm9jdXNlZCkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VyRGVsb3NlciA9IHRoaXMuX2N1ckRlbG9zZXI7XG4gICAgICBsZXQgaXNNYW51YWwgPSBmYWxzZTtcblxuICAgICAgaWYgKGN1ckRlbG9zZXIpIHtcbiAgICAgICAgaWYgKGxhc3RGb2N1c2VkICYmIGN1ckRlbG9zZXIuY3VzdG9tRm9jdXNMb3N0SGFuZGxlcihsYXN0Rm9jdXNlZCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VyRGVsb3Nlci5zdHJhdGVneSA9PT0gRGVsb3NlclN0cmF0ZWdpZXMuTWFudWFsKSB7XG4gICAgICAgICAgaXNNYW51YWwgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGN1ckRlbG9zZXJFbGVtZW50ID0gY3VyRGVsb3Nlci5nZXRFbGVtZW50KCk7XG4gICAgICAgICAgY29uc3QgZWwgPSBjdXJEZWxvc2VyLmZpbmRBdmFpbGFibGUoKTtcblxuICAgICAgICAgIGlmIChlbCAmJiAoIShjdXJEZWxvc2VyRWxlbWVudCA9PT0gbnVsbCB8fCBjdXJEZWxvc2VyRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VyRGVsb3NlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgVGFic3Rlck1vdmVGb2N1c0V2ZW50KHtcbiAgICAgICAgICAgIGJ5OiBcImRlbG9zZXJcIixcbiAgICAgICAgICAgIG93bmVyOiBjdXJEZWxvc2VyRWxlbWVudCxcbiAgICAgICAgICAgIG5leHQ6IGVsXG4gICAgICAgICAgfSkpKSB8fCB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LmZvY3VzKGVsKSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuXG4gICAgICBpZiAoaXNNYW51YWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pc1Jlc3RvcmluZ0ZvY3VzID0gdHJ1ZTsgLy8gZm9jdXNBdmFpbGFibGUgcmV0dXJucyBudWxsIHdoZW4gdGhlIGRlZmF1bHQgYWN0aW9uIGlzIHByZXZlbnRlZCBieSB0aGUgYXBwbGljYXRpb24sIGZhbHNlXG4gICAgICAvLyB3aGVuIG5vdGhpbmcgd2FzIGZvY3VzZWQgYW5kIHRydWUgd2hlbiBzb21ldGhpbmcgd2FzIGZvY3VzZWQuXG5cbiAgICAgIGlmICgoYXdhaXQgdGhpcy5faGlzdG9yeS5mb2N1c0F2YWlsYWJsZShudWxsKSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2hpc3RvcnkucmVzZXRGb2N1cyhudWxsKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faXNSZXN0b3JpbmdGb2N1cyA9IGZhbHNlO1xuICAgIH07XG5cbiAgICBpZiAoZm9yY2UpIHtcbiAgICAgIHJlc3RvcmVGb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZXN0b3JlRm9jdXNUaW1lciA9IHRoaXMuX3dpbigpLnNldFRpbWVvdXQocmVzdG9yZUZvY3VzLCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXREZWxvc2VyKHRhYnN0ZXIsIGVsZW1lbnQpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBsZXQgcm9vdDtcblxuICAgIGZvciAobGV0IGUgPSBlbGVtZW50OyBlOyBlID0gZG9tLmdldFBhcmVudEVsZW1lbnQoZSkpIHtcbiAgICAgIGNvbnN0IHRhYnN0ZXJPbkVsZW1lbnQgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRhYnN0ZXIsIGUpO1xuXG4gICAgICBpZiAodGFic3Rlck9uRWxlbWVudCkge1xuICAgICAgICBpZiAoIXJvb3QpIHtcbiAgICAgICAgICByb290ID0gdGFic3Rlck9uRWxlbWVudC5yb290O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsb3NlciA9IHRhYnN0ZXJPbkVsZW1lbnQuZGVsb3NlcjtcblxuICAgICAgICBpZiAoZGVsb3Nlcikge1xuICAgICAgICAgIHJldHVybiBkZWxvc2VyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGVsb3NlckFQSSA9IHRhYnN0ZXIuZGVsb3NlciAmJiB0YWJzdGVyLmRlbG9zZXI7XG5cbiAgICBpZiAoZGVsb3NlckFQSSkge1xuICAgICAgaWYgKGRlbG9zZXJBUEkuX2F1dG9EZWxvc2VySW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGRlbG9zZXJBUEkuX2F1dG9EZWxvc2VySW5zdGFuY2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGF1dG9EZWxvc2VyUHJvcHMgPSBkZWxvc2VyQVBJLl9hdXRvRGVsb3NlcjtcblxuICAgICAgaWYgKHJvb3QgJiYgIWRlbG9zZXJBUEkuX2F1dG9EZWxvc2VySW5zdGFuY2UgJiYgYXV0b0RlbG9zZXJQcm9wcykge1xuICAgICAgICBjb25zdCBib2R5ID0gKF9hID0gZWxlbWVudC5vd25lckRvY3VtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYm9keTtcblxuICAgICAgICBpZiAoYm9keSkge1xuICAgICAgICAgIGRlbG9zZXJBUEkuX2F1dG9EZWxvc2VySW5zdGFuY2UgPSBuZXcgRGVsb3Nlcih0YWJzdGVyLCBib2R5LCB0YWJzdGVyLmRlbG9zZXIuX29uRGVsb3NlckRpc3Bvc2UsIGF1dG9EZWxvc2VyUHJvcHMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWxvc2VyQVBJLl9hdXRvRGVsb3Nlckluc3RhbmNlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0SGlzdG9yeShpbnN0YW5jZSkge1xuICAgIHJldHVybiBpbnN0YW5jZS5faGlzdG9yeTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JjZVJlc3RvcmVGb2N1cyhpbnN0YW5jZSkge1xuICAgIGluc3RhbmNlLl9zY2hlZHVsZVJlc3RvcmVGb2N1cyh0cnVlKTtcbiAgfVxuXG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNsYXNzIFN1YnNjcmliYWJsZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2NhbGxiYWNrcyA9IFtdO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSBbXTtcbiAgICBkZWxldGUgdGhpcy5fdmFsO1xuICB9XG5cbiAgc3Vic2NyaWJlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzO1xuICAgIGNvbnN0IGluZGV4ID0gY2FsbGJhY2tzLmluZGV4T2YoY2FsbGJhY2spO1xuXG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZUZpcnN0KGNhbGxiYWNrKSB7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzO1xuICAgIGNvbnN0IGluZGV4ID0gY2FsbGJhY2tzLmluZGV4T2YoY2FsbGJhY2spO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIGNhbGxiYWNrcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGNhbGxiYWNrcy51bnNoaWZ0KGNhbGxiYWNrKTtcbiAgfVxuXG4gIHVuc3Vic2NyaWJlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9jYWxsYmFja3MuaW5kZXhPZihjYWxsYmFjayk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5fY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFsKHZhbCwgZGV0YWlsKSB7XG4gICAgaWYgKHRoaXMuX3ZhbCA9PT0gdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsID0gdmFsO1xuXG4gICAgdGhpcy5fY2FsbENhbGxiYWNrcyh2YWwsIGRldGFpbCk7XG4gIH1cblxuICBnZXRWYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbDtcbiAgfVxuXG4gIHRyaWdnZXIodmFsLCBkZXRhaWwpIHtcbiAgICB0aGlzLl9jYWxsQ2FsbGJhY2tzKHZhbCwgZGV0YWlsKTtcbiAgfVxuXG4gIF9jYWxsQ2FsbGJhY2tzKHZhbCwgZGV0YWlsKSB7XG4gICAgdGhpcy5fY2FsbGJhY2tzLmZvckVhY2goY2FsbGJhY2sgPT4gY2FsbGJhY2sodmFsLCBkZXRhaWwpKTtcbiAgfVxuXG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNvbnN0IF90cmFuc2FjdGlvblRpbWVvdXQgPSAxNTAwO1xuY29uc3QgX3BpbmdUaW1lb3V0ID0gMzAwMDtcbmNvbnN0IF90YXJnZXRJZFVwID0gXCJ1cFwiO1xuY29uc3QgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzID0ge1xuICBCb290c3RyYXA6IDEsXG4gIEZvY3VzRWxlbWVudDogMixcbiAgU3RhdGU6IDMsXG4gIEdldEVsZW1lbnQ6IDQsXG4gIFJlc3RvcmVGb2N1c0luRGVsb3NlcjogNSxcbiAgUGluZzogNlxufTtcblxuY2xhc3MgQ3Jvc3NPcmlnaW5EZWxvc2VySXRlbSBleHRlbmRzIERlbG9zZXJJdGVtQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGRlbG9zZXIsIHRyYXNhY3Rpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9kZWxvc2VyID0gZGVsb3NlcjtcbiAgICB0aGlzLl90cmFuc2FjdGlvbnMgPSB0cmFzYWN0aW9ucztcbiAgfVxuXG4gIGJlbG9uZ3NUbyhkZWxvc2VyKSB7XG4gICAgcmV0dXJuIGRlbG9zZXIuZGVsb3NlclVJZCA9PT0gdGhpcy5fZGVsb3Nlci5kZWxvc2VyVUlkO1xuICB9XG5cbiAgYXN5bmMgZm9jdXNBdmFpbGFibGUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5fZGVsb3NlcixcbiAgICAgIHJlc2V0OiBmYWxzZVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9ucy5iZWdpblRyYW5zYWN0aW9uKFJlc3RvcmVGb2N1c0luRGVsb3NlclRyYW5zYWN0aW9uLCBkYXRhKS50aGVuKHZhbHVlID0+ICEhdmFsdWUpO1xuICB9XG5cbiAgYXN5bmMgcmVzZXRGb2N1cygpIHtcbiAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLl9kZWxvc2VyLFxuICAgICAgcmVzZXQ6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbnMuYmVnaW5UcmFuc2FjdGlvbihSZXN0b3JlRm9jdXNJbkRlbG9zZXJUcmFuc2FjdGlvbiwgZGF0YSkudGhlbih2YWx1ZSA9PiAhIXZhbHVlKTtcbiAgfVxuXG59XG5cbmNsYXNzIENyb3NzT3JpZ2luRGVsb3Nlckhpc3RvcnlCeVJvb3QgZXh0ZW5kcyBEZWxvc2VySGlzdG9yeUJ5Um9vdEJhc2Uge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCByb290VUlkLCB0cmFuc2FjdGlvbnMpIHtcbiAgICBzdXBlcih0YWJzdGVyLCByb290VUlkKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnM7XG4gIH1cblxuICB1bnNoaWZ0KGRlbG9zZXIpIHtcbiAgICBsZXQgaXRlbTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5faGlzdG9yeS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuX2hpc3RvcnlbaV0uYmVsb25nc1RvKGRlbG9zZXIpKSB7XG4gICAgICAgIGl0ZW0gPSB0aGlzLl9oaXN0b3J5W2ldO1xuXG4gICAgICAgIHRoaXMuX2hpc3Rvcnkuc3BsaWNlKGksIDEpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXRlbSkge1xuICAgICAgaXRlbSA9IG5ldyBDcm9zc09yaWdpbkRlbG9zZXJJdGVtKHRoaXMuX3RhYnN0ZXIsIGRlbG9zZXIsIHRoaXMuX3RyYW5zYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5faGlzdG9yeS51bnNoaWZ0KGl0ZW0pO1xuXG4gICAgdGhpcy5faGlzdG9yeS5zcGxpY2UoMTAsIHRoaXMuX2hpc3RvcnkubGVuZ3RoIC0gMTApO1xuICB9XG5cbiAgYXN5bmMgZm9jdXNBdmFpbGFibGUoKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuX2hpc3RvcnkpIHtcbiAgICAgIGlmIChhd2FpdCBpLmZvY3VzQXZhaWxhYmxlKCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcmVzZXRGb2N1cygpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5faGlzdG9yeSkge1xuICAgICAgaWYgKGF3YWl0IGkucmVzZXRGb2N1cygpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG5cbmNsYXNzIENyb3NzT3JpZ2luVHJhbnNhY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCBnZXRPd25lciwga25vd25UYXJnZXRzLCB2YWx1ZSwgdGltZW91dCwgc2VudFRvLCB0YXJnZXRJZCwgc2VuZFVwKSB7XG4gICAgdGhpcy5faW5Qcm9ncmVzcyA9IHt9O1xuICAgIHRoaXMuX2lzRG9uZSA9IGZhbHNlO1xuICAgIHRoaXMuX2lzU2VsZlJlc3BvbmRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9zZW50Q291bnQgPSAwO1xuICAgIHRoaXMudGFic3RlciA9IHRhYnN0ZXI7XG4gICAgdGhpcy5vd25lciA9IGdldE93bmVyO1xuICAgIHRoaXMub3duZXJJZCA9IGdldFdpbmRvd1VJZChnZXRPd25lcigpKTtcbiAgICB0aGlzLmlkID0gZ2V0VUlkKGdldE93bmVyKCkpO1xuICAgIHRoaXMuYmVnaW5EYXRhID0gdmFsdWU7XG4gICAgdGhpcy5fa25vd25UYXJnZXRzID0ga25vd25UYXJnZXRzO1xuICAgIHRoaXMuX3NlbnRUbyA9IHNlbnRUbyB8fCB7XG4gICAgICBbdGhpcy5vd25lcklkXTogdHJ1ZVxuICAgIH07XG4gICAgdGhpcy50YXJnZXRJZCA9IHRhcmdldElkO1xuICAgIHRoaXMuc2VuZFVwID0gc2VuZFVwO1xuICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XG4gICAgdGhpcy5fcHJvbWlzZSA9IG5ldyAoZ2V0UHJvbWlzZShnZXRPd25lcikpKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgICAgdGhpcy5fcmVqZWN0ID0gcmVqZWN0O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VGFyZ2V0cyhrbm93blRhcmdldHMpIHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXRJZCA9PT0gX3RhcmdldElkVXAgPyB0aGlzLnNlbmRVcCA/IHtcbiAgICAgIFtfdGFyZ2V0SWRVcF06IHtcbiAgICAgICAgc2VuZDogdGhpcy5zZW5kVXBcbiAgICAgIH1cbiAgICB9IDogbnVsbCA6IHRoaXMudGFyZ2V0SWQgPyBrbm93blRhcmdldHNbdGhpcy50YXJnZXRJZF0gPyB7XG4gICAgICBbdGhpcy50YXJnZXRJZF06IHtcbiAgICAgICAgc2VuZDoga25vd25UYXJnZXRzW3RoaXMudGFyZ2V0SWRdLnNlbmRcbiAgICAgIH1cbiAgICB9IDogbnVsbCA6IE9iamVjdC5rZXlzKGtub3duVGFyZ2V0cykubGVuZ3RoID09PSAwICYmIHRoaXMuc2VuZFVwID8ge1xuICAgICAgW190YXJnZXRJZFVwXToge1xuICAgICAgICBzZW5kOiB0aGlzLnNlbmRVcFxuICAgICAgfVxuICAgIH0gOiBPYmplY3Qua2V5cyhrbm93blRhcmdldHMpLmxlbmd0aCA+IDAgPyBrbm93blRhcmdldHMgOiBudWxsO1xuICB9XG5cbiAgYmVnaW4oc2VsZlJlc3BvbnNlKSB7XG4gICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMuZ2V0VGFyZ2V0cyh0aGlzLl9rbm93blRhcmdldHMpO1xuICAgIGNvbnN0IHNlbnRUbyA9IHsgLi4udGhpcy5fc2VudFRvXG4gICAgfTtcblxuICAgIGlmICh0YXJnZXRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKHRhcmdldHMpKSB7XG4gICAgICAgIHNlbnRUb1tpZF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICB0cmFuc2FjdGlvbjogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGlzUmVzcG9uc2U6IGZhbHNlLFxuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgb3duZXI6IHRoaXMub3duZXJJZCxcbiAgICAgIHNlbnR0bzogc2VudFRvLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgYmVnaW5EYXRhOiB0aGlzLmJlZ2luRGF0YVxuICAgIH07XG5cbiAgICBpZiAodGhpcy50YXJnZXRJZCkge1xuICAgICAgZGF0YS50YXJnZXQgPSB0aGlzLnRhcmdldElkO1xuICAgIH1cblxuICAgIGlmIChzZWxmUmVzcG9uc2UpIHtcbiAgICAgIHRoaXMuX2lzU2VsZlJlc3BvbmRpbmcgPSB0cnVlO1xuICAgICAgc2VsZlJlc3BvbnNlKGRhdGEpLnRoZW4odmFsdWUgPT4ge1xuICAgICAgICB0aGlzLl9pc1NlbGZSZXNwb25kaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuZW5kRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5lbmREYXRhID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZW5kRGF0YSB8fCB0aGlzLl9zZW50Q291bnQgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmVuZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0cykge1xuICAgICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyh0YXJnZXRzKSkge1xuICAgICAgICBpZiAoIShpZCBpbiB0aGlzLl9zZW50VG8pKSB7XG4gICAgICAgICAgdGhpcy5fc2VuZCh0YXJnZXRzW2lkXS5zZW5kLCBpZCwgZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc2VudENvdW50ID09PSAwICYmICF0aGlzLl9pc1NlbGZSZXNwb25kaW5nKSB7XG4gICAgICB0aGlzLmVuZCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wcm9taXNlO1xuICB9XG5cbiAgX3NlbmQoc2VuZCwgdGFyZ2V0SWQsIGRhdGEpIHtcbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzc1t0YXJnZXRJZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5faW5Qcm9ncmVzc1t0YXJnZXRJZF0gPSB0cnVlO1xuICAgICAgdGhpcy5fc2VudENvdW50Kys7XG4gICAgICBzZW5kKGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGVuZChlcnJvcikge1xuICAgIGlmICh0aGlzLl9pc0RvbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pc0RvbmUgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuZW5kRGF0YSA9PT0gdW5kZWZpbmVkICYmIGVycm9yKSB7XG4gICAgICBpZiAodGhpcy5fcmVqZWN0KSB7XG4gICAgICAgIHRoaXMuX3JlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLl9yZXNvbHZlKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlKHRoaXMuZW5kRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgb25SZXNwb25zZShkYXRhKSB7XG4gICAgY29uc3QgZW5kRGF0YSA9IGRhdGEuZW5kRGF0YTtcblxuICAgIGlmIChlbmREYXRhICE9PSB1bmRlZmluZWQgJiYgIXRoaXMuZW5kRGF0YSkge1xuICAgICAgdGhpcy5lbmREYXRhID0gZW5kRGF0YTtcbiAgICB9XG5cbiAgICBjb25zdCBpblByb2dyZXNzSWQgPSBkYXRhLnRhcmdldCA9PT0gX3RhcmdldElkVXAgPyBfdGFyZ2V0SWRVcCA6IGRhdGEub3duZXI7XG5cbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzc1tpblByb2dyZXNzSWRdKSB7XG4gICAgICB0aGlzLl9pblByb2dyZXNzW2luUHJvZ3Jlc3NJZF0gPSBmYWxzZTtcbiAgICAgIHRoaXMuX3NlbnRDb3VudC0tO1xuXG4gICAgICBpZiAodGhpcy5lbmREYXRhIHx8IHRoaXMuX3NlbnRDb3VudCA9PT0gMCAmJiAhdGhpcy5faXNTZWxmUmVzcG9uZGluZykge1xuICAgICAgICB0aGlzLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbmNsYXNzIEJvb3RzdHJhcFRyYW5zYWN0aW9uIGV4dGVuZHMgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy50eXBlID0gQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzLkJvb3RzdHJhcDtcbiAgfVxuXG4gIHN0YXRpYyBzaG91bGRGb3J3YXJkKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBtYWtlUmVzcG9uc2UodGFic3Rlcikge1xuICAgIHJldHVybiB7XG4gICAgICBpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQ6IHRhYnN0ZXIua2V5Ym9hcmROYXZpZ2F0aW9uLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCgpXG4gICAgfTtcbiAgfVxuXG59XG5cbmNsYXNzIEZvY3VzRWxlbWVudFRyYW5zYWN0aW9uIGV4dGVuZHMgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy50eXBlID0gQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzLkZvY3VzRWxlbWVudDtcbiAgfVxuXG4gIHN0YXRpYyBzaG91bGRTZWxmUmVzcG9uZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBzaG91bGRGb3J3YXJkKHRhYnN0ZXIsIGRhdGEsIGdldE93bmVyKSB7XG4gICAgY29uc3QgZWwgPSBHZXRFbGVtZW50VHJhbnNhY3Rpb24uZmluZEVsZW1lbnQodGFic3RlciwgZ2V0T3duZXIsIGRhdGEuYmVnaW5EYXRhKTtcbiAgICByZXR1cm4gIWVsIHx8ICF0YWJzdGVyLmZvY3VzYWJsZS5pc0ZvY3VzYWJsZShlbCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgbWFrZVJlc3BvbnNlKHRhYnN0ZXIsIGRhdGEsIGdldE93bmVyLCBvd25lcklkLCB0cmFuc2FjdGlvbnMsIGZvcndhcmRSZXN1bHQpIHtcbiAgICBjb25zdCBlbCA9IEdldEVsZW1lbnRUcmFuc2FjdGlvbi5maW5kRWxlbWVudCh0YWJzdGVyLCBnZXRPd25lciwgZGF0YS5iZWdpbkRhdGEpO1xuICAgIHJldHVybiAhIWVsICYmIHRhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZm9jdXMoZWwsIHRydWUpIHx8ICEhKGF3YWl0IGZvcndhcmRSZXN1bHQpO1xuICB9XG5cbn1cblxuY29uc3QgQ3Jvc3NPcmlnaW5TdGF0ZXMgPSB7XG4gIEZvY3VzZWQ6IDEsXG4gIEJsdXJyZWQ6IDIsXG4gIE9ic2VydmVkOiAzLFxuICBEZWFkV2luZG93OiA0LFxuICBLZXlib2FyZE5hdmlnYXRpb246IDUsXG4gIE91dGxpbmU6IDZcbn07XG5cbmNsYXNzIFN0YXRlVHJhbnNhY3Rpb24gZXh0ZW5kcyBDcm9zc09yaWdpblRyYW5zYWN0aW9uIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICB0aGlzLnR5cGUgPSBDcm9zc09yaWdpblRyYW5zYWN0aW9uVHlwZXMuU3RhdGU7XG4gIH1cblxuICBzdGF0aWMgc2hvdWxkU2VsZlJlc3BvbmQodGFic3RlciwgZGF0YSkge1xuICAgIHJldHVybiBkYXRhLnN0YXRlICE9PSBDcm9zc09yaWdpblN0YXRlcy5EZWFkV2luZG93ICYmIGRhdGEuc3RhdGUgIT09IENyb3NzT3JpZ2luU3RhdGVzLktleWJvYXJkTmF2aWdhdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBtYWtlUmVzcG9uc2UodGFic3RlciwgZGF0YSwgZ2V0T3duZXIsIG93bmVySWQsIHRyYW5zYWN0aW9ucywgZm9yd2FyZFJlc3VsdCwgaXNTZWxmUmVzcG9uc2UpIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBkYXRhLnRpbWVzdGFtcDtcbiAgICBjb25zdCBiZWdpbkRhdGEgPSBkYXRhLmJlZ2luRGF0YTtcblxuICAgIGlmICh0aW1lc3RhbXAgJiYgYmVnaW5EYXRhKSB7XG4gICAgICBzd2l0Y2ggKGJlZ2luRGF0YS5zdGF0ZSkge1xuICAgICAgICBjYXNlIENyb3NzT3JpZ2luU3RhdGVzLkZvY3VzZWQ6XG4gICAgICAgICAgcmV0dXJuIFN0YXRlVHJhbnNhY3Rpb24uX21ha2VGb2N1c2VkUmVzcG9uc2UodGFic3RlciwgdGltZXN0YW1wLCBiZWdpbkRhdGEsIHRyYW5zYWN0aW9ucywgaXNTZWxmUmVzcG9uc2UpO1xuXG4gICAgICAgIGNhc2UgQ3Jvc3NPcmlnaW5TdGF0ZXMuQmx1cnJlZDpcbiAgICAgICAgICByZXR1cm4gU3RhdGVUcmFuc2FjdGlvbi5fbWFrZUJsdXJyZWRSZXNwb25zZSh0YWJzdGVyLCB0aW1lc3RhbXAsIGJlZ2luRGF0YSwgdHJhbnNhY3Rpb25zLmN0eCk7XG5cbiAgICAgICAgY2FzZSBDcm9zc09yaWdpblN0YXRlcy5PYnNlcnZlZDpcbiAgICAgICAgICByZXR1cm4gU3RhdGVUcmFuc2FjdGlvbi5fbWFrZU9ic2VydmVkUmVzcG9uc2UodGFic3RlciwgYmVnaW5EYXRhKTtcblxuICAgICAgICBjYXNlIENyb3NzT3JpZ2luU3RhdGVzLkRlYWRXaW5kb3c6XG4gICAgICAgICAgcmV0dXJuIFN0YXRlVHJhbnNhY3Rpb24uX21ha2VEZWFkV2luZG93UmVzcG9uc2UodGFic3RlciwgYmVnaW5EYXRhLCB0cmFuc2FjdGlvbnMsIGZvcndhcmRSZXN1bHQpO1xuXG4gICAgICAgIGNhc2UgQ3Jvc3NPcmlnaW5TdGF0ZXMuS2V5Ym9hcmROYXZpZ2F0aW9uOlxuICAgICAgICAgIHJldHVybiBTdGF0ZVRyYW5zYWN0aW9uLl9tYWtlS2V5Ym9hcmROYXZpZ2F0aW9uUmVzcG9uc2UodGFic3RlciwgdHJhbnNhY3Rpb25zLmN0eCwgYmVnaW5EYXRhLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk7XG5cbiAgICAgICAgY2FzZSBDcm9zc09yaWdpblN0YXRlcy5PdXRsaW5lOlxuICAgICAgICAgIHJldHVybiBTdGF0ZVRyYW5zYWN0aW9uLl9tYWtlT3V0bGluZVJlc3BvbnNlKHRhYnN0ZXIsIHRyYW5zYWN0aW9ucy5jdHgsIGJlZ2luRGF0YS5vdXRsaW5lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVFbGVtZW50KHRhYnN0ZXIsIGJlZ2luRGF0YSkge1xuICAgIHJldHVybiBiZWdpbkRhdGEudWlkID8gbmV3IENyb3NzT3JpZ2luRWxlbWVudCh0YWJzdGVyLCBiZWdpbkRhdGEudWlkLCBiZWdpbkRhdGEub3duZXJVSWQsIGJlZ2luRGF0YS5pZCwgYmVnaW5EYXRhLnJvb3RVSWQsIGJlZ2luRGF0YS5vYnNlcnZlZE5hbWUsIGJlZ2luRGF0YS5vYnNlcnZlZERldGFpbHMpIDogbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBfbWFrZUZvY3VzZWRSZXNwb25zZSh0YWJzdGVyLCB0aW1lc3RhbXAsIGJlZ2luRGF0YSwgdHJhbnNhY3Rpb25zLCBpc1NlbGZSZXNwb25zZSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBTdGF0ZVRyYW5zYWN0aW9uLmNyZWF0ZUVsZW1lbnQodGFic3RlciwgYmVnaW5EYXRhKTtcblxuICAgIGlmIChiZWdpbkRhdGEgJiYgYmVnaW5EYXRhLm93bmVyVUlkICYmIGVsZW1lbnQpIHtcbiAgICAgIHRyYW5zYWN0aW9ucy5jdHguZm9jdXNPd25lciA9IGJlZ2luRGF0YS5vd25lclVJZDtcbiAgICAgIHRyYW5zYWN0aW9ucy5jdHguZm9jdXNPd25lclRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcblxuICAgICAgaWYgKCFpc1NlbGZSZXNwb25zZSAmJiBiZWdpbkRhdGEucm9vdFVJZCAmJiBiZWdpbkRhdGEuZGVsb3NlclVJZCkge1xuICAgICAgICBjb25zdCBkZWxvc2VyQVBJID0gdGFic3Rlci5kZWxvc2VyO1xuXG4gICAgICAgIGlmIChkZWxvc2VyQVBJKSB7XG4gICAgICAgICAgY29uc3QgaGlzdG9yeSA9IERlbG9zZXJBUEkuZ2V0SGlzdG9yeShkZWxvc2VyQVBJKTtcbiAgICAgICAgICBjb25zdCBkZWxvc2VyID0ge1xuICAgICAgICAgICAgb3duZXJVSWQ6IGJlZ2luRGF0YS5vd25lclVJZCxcbiAgICAgICAgICAgIGRlbG9zZXJVSWQ6IGJlZ2luRGF0YS5kZWxvc2VyVUlkLFxuICAgICAgICAgICAgcm9vdFVJZDogYmVnaW5EYXRhLnJvb3RVSWRcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGhpc3RvcnlJdGVtID0gaGlzdG9yeS5tYWtlKGJlZ2luRGF0YS5yb290VUlkLCAoKSA9PiBuZXcgQ3Jvc3NPcmlnaW5EZWxvc2VySGlzdG9yeUJ5Um9vdCh0YWJzdGVyLCBkZWxvc2VyLnJvb3RVSWQsIHRyYW5zYWN0aW9ucykpO1xuICAgICAgICAgIGhpc3RvcnlJdGVtLnVuc2hpZnQoZGVsb3Nlcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQ3Jvc3NPcmlnaW5Gb2N1c2VkRWxlbWVudFN0YXRlLnNldFZhbCggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIHRhYnN0ZXIuY3Jvc3NPcmlnaW4uZm9jdXNlZEVsZW1lbnQsIGVsZW1lbnQsIHtcbiAgICAgICAgaXNGb2N1c2VkUHJvZ3JhbW1hdGljYWxseTogYmVnaW5EYXRhLmlzRm9jdXNlZFByb2dyYW1tYXRpY2FsbHlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIF9tYWtlQmx1cnJlZFJlc3BvbnNlKHRhYnN0ZXIsIHRpbWVzdGFtcCwgYmVnaW5EYXRhLCBjb250ZXh0KSB7XG4gICAgaWYgKGJlZ2luRGF0YSAmJiAoYmVnaW5EYXRhLm93bmVyVUlkID09PSBjb250ZXh0LmZvY3VzT3duZXIgfHwgYmVnaW5EYXRhLmZvcmNlKSAmJiAoIWNvbnRleHQuZm9jdXNPd25lclRpbWVzdGFtcCB8fCBjb250ZXh0LmZvY3VzT3duZXJUaW1lc3RhbXAgPCB0aW1lc3RhbXApKSB7XG4gICAgICBDcm9zc09yaWdpbkZvY3VzZWRFbGVtZW50U3RhdGUuc2V0VmFsKCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgdGFic3Rlci5jcm9zc09yaWdpbi5mb2N1c2VkRWxlbWVudCwgdW5kZWZpbmVkLCB7fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgX21ha2VPYnNlcnZlZFJlc3BvbnNlKHRhYnN0ZXIsIGJlZ2luRGF0YSkge1xuICAgIGNvbnN0IG5hbWUgPSBiZWdpbkRhdGEub2JzZXJ2ZWROYW1lO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBTdGF0ZVRyYW5zYWN0aW9uLmNyZWF0ZUVsZW1lbnQodGFic3RlciwgYmVnaW5EYXRhKTtcblxuICAgIGlmIChuYW1lICYmIGVsZW1lbnQpIHtcbiAgICAgIENyb3NzT3JpZ2luT2JzZXJ2ZWRFbGVtZW50U3RhdGUudHJpZ2dlciggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIHRhYnN0ZXIuY3Jvc3NPcmlnaW4ub2JzZXJ2ZWRFbGVtZW50LCBlbGVtZW50LCB7XG4gICAgICAgIG5hbWVzOiBbbmFtZV0sXG4gICAgICAgIGRldGFpbHM6IGJlZ2luRGF0YS5vYnNlcnZlZERldGFpbHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIF9tYWtlRGVhZFdpbmRvd1Jlc3BvbnNlKHRhYnN0ZXIsIGJlZ2luRGF0YSwgdHJhbnNhY3Rpb25zLCBmb3J3YXJkUmVzdWx0KSB7XG4gICAgY29uc3QgZGVhZFVJZCA9IGJlZ2luRGF0YSAmJiBiZWdpbkRhdGEub3duZXJVSWQ7XG5cbiAgICBpZiAoZGVhZFVJZCkge1xuICAgICAgdHJhbnNhY3Rpb25zLnJlbW92ZVRhcmdldChkZWFkVUlkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9yd2FyZFJlc3VsdC50aGVuKCgpID0+IHtcbiAgICAgIGlmIChkZWFkVUlkID09PSB0cmFuc2FjdGlvbnMuY3R4LmZvY3VzT3duZXIpIHtcbiAgICAgICAgY29uc3QgZGVsb3NlckFQSSA9IHRhYnN0ZXIuZGVsb3NlcjtcblxuICAgICAgICBpZiAoZGVsb3NlckFQSSkge1xuICAgICAgICAgIERlbG9zZXJBUEkuZm9yY2VSZXN0b3JlRm9jdXMoZGVsb3NlckFQSSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgX21ha2VLZXlib2FyZE5hdmlnYXRpb25SZXNwb25zZSh0YWJzdGVyLCBjb250ZXh0LCBpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpIHtcbiAgICBpZiAoaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkICE9PSB1bmRlZmluZWQgJiYgdGFic3Rlci5rZXlib2FyZE5hdmlnYXRpb24uaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKCkgIT09IGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCkge1xuICAgICAgY29udGV4dC5pZ25vcmVLZXlib2FyZE5hdmlnYXRpb25TdGF0ZVVwZGF0ZSA9IHRydWU7XG4gICAgICB0YWJzdGVyLmtleWJvYXJkTmF2aWdhdGlvbi5zZXROYXZpZ2F0aW5nV2l0aEtleWJvYXJkKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk7XG4gICAgICBjb250ZXh0Lmlnbm9yZUtleWJvYXJkTmF2aWdhdGlvblN0YXRlVXBkYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgX21ha2VPdXRsaW5lUmVzcG9uc2UodGFic3RlciwgY29udGV4dCwgcHJvcHMpIHtcbiAgICBpZiAoY29udGV4dC5vcmlnT3V0bGluZVNldHVwKSB7XG4gICAgICBjb250ZXh0Lm9yaWdPdXRsaW5lU2V0dXAuY2FsbCggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIHRhYnN0ZXIub3V0bGluZSwgcHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbn1cblxuY2xhc3MgR2V0RWxlbWVudFRyYW5zYWN0aW9uIGV4dGVuZHMgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy50eXBlID0gQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzLkdldEVsZW1lbnQ7XG4gIH1cblxuICBzdGF0aWMgc2hvdWxkU2VsZlJlc3BvbmQoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgZmluZEVsZW1lbnQodGFic3RlciwgZ2V0T3duZXIsIGRhdGEpIHtcbiAgICBsZXQgZWxlbWVudDtcblxuICAgIGlmIChkYXRhICYmICghZGF0YS5vd25lcklkIHx8IGRhdGEub3duZXJJZCA9PT0gZ2V0V2luZG93VUlkKGdldE93bmVyKCkpKSkge1xuICAgICAgaWYgKGRhdGEuaWQpIHtcbiAgICAgICAgZWxlbWVudCA9IGRvbS5nZXRFbGVtZW50QnlJZChnZXRPd25lcigpLmRvY3VtZW50LCBkYXRhLmlkKTtcblxuICAgICAgICBpZiAoZWxlbWVudCAmJiBkYXRhLnJvb3RJZCkge1xuICAgICAgICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgZWxlbWVudCk7XG5cbiAgICAgICAgICBpZiAoIWN0eCB8fCBjdHgucm9vdC51aWQgIT09IGRhdGEucm9vdElkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGF0YS51aWQpIHtcbiAgICAgICAgY29uc3QgcmVmID0gZ2V0SW5zdGFuY2VDb250ZXh0KGdldE93bmVyKS5lbGVtZW50QnlVSWRbZGF0YS51aWRdO1xuICAgICAgICBlbGVtZW50ID0gcmVmICYmIHJlZi5nZXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS5vYnNlcnZlZE5hbWUpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgZWxlbWVudCA9IHRhYnN0ZXIub2JzZXJ2ZWRFbGVtZW50LmdldEVsZW1lbnQoZGF0YS5vYnNlcnZlZE5hbWUsIGRhdGEuYWNjZXNzaWJpbGl0eSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1lbnQgfHwgbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRFbGVtZW50RGF0YSh0YWJzdGVyLCBlbGVtZW50LCBnZXRPd25lciwgY29udGV4dCwgb3duZXJVSWQpIHtcbiAgICBjb25zdCBkZWxvc2VyID0gRGVsb3NlckFQSS5nZXREZWxvc2VyKHRhYnN0ZXIsIGVsZW1lbnQpO1xuICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgZWxlbWVudCk7XG4gICAgY29uc3QgdGFic3Rlck9uRWxlbWVudCA9IGdldFRhYnN0ZXJPbkVsZW1lbnQodGFic3RlciwgZWxlbWVudCk7XG4gICAgY29uc3Qgb2JzZXJ2ZWQgPSB0YWJzdGVyT25FbGVtZW50ICYmIHRhYnN0ZXJPbkVsZW1lbnQub2JzZXJ2ZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVpZDogZ2V0RWxlbWVudFVJZChnZXRPd25lciwgZWxlbWVudCksXG4gICAgICBvd25lclVJZCxcbiAgICAgIGlkOiBlbGVtZW50LmlkIHx8IHVuZGVmaW5lZCxcbiAgICAgIHJvb3RVSWQ6IGN0eCA/IGN0eC5yb290LnVpZCA6IHVuZGVmaW5lZCxcbiAgICAgIGRlbG9zZXJVSWQ6IGRlbG9zZXIgPyBnZXREZWxvc2VyVUlEKGdldE93bmVyLCBjb250ZXh0LCBkZWxvc2VyKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9ic2VydmVkTmFtZTogb2JzZXJ2ZWQgJiYgb2JzZXJ2ZWQubmFtZXMgJiYgb2JzZXJ2ZWQubmFtZXNbMF0sXG4gICAgICBvYnNlcnZlZERldGFpbHM6IG9ic2VydmVkICYmIG9ic2VydmVkLmRldGFpbHNcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIG1ha2VSZXNwb25zZSh0YWJzdGVyLCBkYXRhLCBnZXRPd25lciwgb3duZXJVSWQsIHRyYW5zYWN0aW9ucywgZm9yd2FyZFJlc3VsdCkge1xuICAgIGNvbnN0IGJlZ2luRGF0YSA9IGRhdGEuYmVnaW5EYXRhO1xuICAgIGxldCBlbGVtZW50O1xuICAgIGxldCBkYXRhT3V0O1xuXG4gICAgaWYgKGJlZ2luRGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBlbGVtZW50ID0gdGFic3Rlci5mb2N1c2VkRWxlbWVudC5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgIH0gZWxzZSBpZiAoYmVnaW5EYXRhKSB7XG4gICAgICBlbGVtZW50ID0gR2V0RWxlbWVudFRyYW5zYWN0aW9uLmZpbmRFbGVtZW50KHRhYnN0ZXIsIGdldE93bmVyLCBiZWdpbkRhdGEpIHx8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnQgJiYgYmVnaW5EYXRhKSB7XG4gICAgICBjb25zdCBuYW1lID0gYmVnaW5EYXRhLm9ic2VydmVkTmFtZTtcbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBkYXRhLnRpbWVvdXQ7XG4gICAgICBjb25zdCBhY2Nlc3NpYmlsaXR5ID0gYmVnaW5EYXRhLmFjY2Vzc2liaWxpdHk7XG5cbiAgICAgIGlmIChuYW1lICYmIHRpbWVvdXQpIHtcbiAgICAgICAgY29uc3QgZSA9IGF3YWl0IG5ldyAoZ2V0UHJvbWlzZShnZXRPd25lcikpKHJlc29sdmUgPT4ge1xuICAgICAgICAgIGxldCBpc1dhaXRFbGVtZW50UmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgICBsZXQgaXNGb3J3YXJkUmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgICBsZXQgaXNSZXNvbHZlZCA9IGZhbHNlOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXG4gICAgICAgICAgdGFic3Rlci5vYnNlcnZlZEVsZW1lbnQud2FpdEVsZW1lbnQobmFtZSwgdGltZW91dCwgYWNjZXNzaWJpbGl0eSkucmVzdWx0LnRoZW4odmFsdWUgPT4ge1xuICAgICAgICAgICAgaXNXYWl0RWxlbWVudFJlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKCFpc1Jlc29sdmVkICYmICh2YWx1ZSB8fCBpc0ZvcndhcmRSZXNvbHZlZCkpIHtcbiAgICAgICAgICAgICAgaXNSZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHZhbHVlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGZvcndhcmRSZXN1bHQudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpc0ZvcndhcmRSZXNvbHZlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmICghaXNSZXNvbHZlZCAmJiAodmFsdWUgfHwgaXNXYWl0RWxlbWVudFJlc29sdmVkKSkge1xuICAgICAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHZhbHVlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZS5lbGVtZW50KSB7XG4gICAgICAgICAgZWxlbWVudCA9IGUuZWxlbWVudDtcbiAgICAgICAgfSBlbHNlIGlmIChlLmNyb3NzT3JpZ2luKSB7XG4gICAgICAgICAgZGF0YU91dCA9IGUuY3Jvc3NPcmlnaW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudCA/IEdldEVsZW1lbnRUcmFuc2FjdGlvbi5nZXRFbGVtZW50RGF0YSh0YWJzdGVyLCBlbGVtZW50LCBnZXRPd25lciwgdHJhbnNhY3Rpb25zLmN0eCwgb3duZXJVSWQpIDogZGF0YU91dDtcbiAgfVxuXG59XG5cbmNsYXNzIFJlc3RvcmVGb2N1c0luRGVsb3NlclRyYW5zYWN0aW9uIGV4dGVuZHMgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy50eXBlID0gQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzLlJlc3RvcmVGb2N1c0luRGVsb3NlcjtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBtYWtlUmVzcG9uc2UodGFic3RlciwgZGF0YSwgZ2V0T3duZXIsIG93bmVySWQsIHRyYW5zYWN0aW9ucywgZm9yd2FyZFJlc3VsdCkge1xuICAgIGNvbnN0IGZvcndhcmRSZXQgPSBhd2FpdCBmb3J3YXJkUmVzdWx0O1xuICAgIGNvbnN0IGJlZ2luID0gIWZvcndhcmRSZXQgJiYgZGF0YS5iZWdpbkRhdGE7XG4gICAgY29uc3QgdWlkID0gYmVnaW4gJiYgYmVnaW4uZGVsb3NlclVJZDtcbiAgICBjb25zdCBkZWxvc2VyID0gdWlkICYmIHRyYW5zYWN0aW9ucy5jdHguZGVsb3NlckJ5VUlkW3VpZF07XG4gICAgY29uc3QgZGVsb3NlckFQSSA9IHRhYnN0ZXIuZGVsb3NlcjtcblxuICAgIGlmIChiZWdpbiAmJiBkZWxvc2VyICYmIGRlbG9zZXJBUEkpIHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBEZWxvc2VyQVBJLmdldEhpc3RvcnkoZGVsb3NlckFQSSk7XG4gICAgICByZXR1cm4gYmVnaW4ucmVzZXQgPyBoaXN0b3J5LnJlc2V0Rm9jdXMoZGVsb3NlcikgOiBoaXN0b3J5LmZvY3VzQXZhaWxhYmxlKGRlbG9zZXIpO1xuICAgIH1cblxuICAgIHJldHVybiAhIWZvcndhcmRSZXQ7XG4gIH1cblxufVxuXG5jbGFzcyBQaW5nVHJhbnNhY3Rpb24gZXh0ZW5kcyBDcm9zc09yaWdpblRyYW5zYWN0aW9uIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICB0aGlzLnR5cGUgPSBDcm9zc09yaWdpblRyYW5zYWN0aW9uVHlwZXMuUGluZztcbiAgfVxuXG4gIHN0YXRpYyBzaG91bGRGb3J3YXJkKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBtYWtlUmVzcG9uc2UoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxufVxuXG5jbGFzcyBDcm9zc09yaWdpblRyYW5zYWN0aW9ucyB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGdldE93bmVyLCBjb250ZXh0KSB7XG4gICAgdGhpcy5fa25vd25UYXJnZXRzID0ge307XG4gICAgdGhpcy5fdHJhbnNhY3Rpb25zID0ge307XG4gICAgdGhpcy5faXNEZWZhdWx0U2VuZFVwID0gZmFsc2U7XG4gICAgdGhpcy5pc1NldFVwID0gZmFsc2U7XG5cbiAgICB0aGlzLl9vbk1lc3NhZ2UgPSBlID0+IHtcbiAgICAgIGlmIChlLmRhdGEub3duZXIgPT09IHRoaXMuX293bmVyVUlkIHx8ICF0aGlzLl90YWJzdGVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblxuXG4gICAgICBjb25zdCBkYXRhID0gZS5kYXRhO1xuICAgICAgbGV0IHRyYW5zYWN0aW9uSWQ7XG5cbiAgICAgIGlmICghZGF0YSB8fCAhKHRyYW5zYWN0aW9uSWQgPSBkYXRhLnRyYW5zYWN0aW9uKSB8fCAhZGF0YS50eXBlIHx8ICFkYXRhLnRpbWVzdGFtcCB8fCAhZGF0YS5vd25lciB8fCAhZGF0YS5zZW50dG8pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQga25vd25UYXJnZXQgPSB0aGlzLl9rbm93blRhcmdldHNbZGF0YS5vd25lcl07XG5cbiAgICAgIGlmICgha25vd25UYXJnZXQgJiYgZS5zZW5kICYmIGRhdGEub3duZXIgIT09IHRoaXMuX293bmVyVUlkKSB7XG4gICAgICAgIGtub3duVGFyZ2V0ID0gdGhpcy5fa25vd25UYXJnZXRzW2RhdGEub3duZXJdID0ge1xuICAgICAgICAgIHNlbmQ6IGUuc2VuZFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoa25vd25UYXJnZXQpIHtcbiAgICAgICAga25vd25UYXJnZXQubGFzdCA9IERhdGUubm93KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLmlzUmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgdCA9IHRoaXMuX3RyYW5zYWN0aW9uc1t0cmFuc2FjdGlvbklkXTtcblxuICAgICAgICBpZiAodCAmJiB0LnRyYW5zYWN0aW9uICYmIHQudHJhbnNhY3Rpb24udHlwZSA9PT0gZGF0YS50eXBlKSB7XG4gICAgICAgICAgdC50cmFuc2FjdGlvbi5vblJlc3BvbnNlKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBUcmFuc2FjdGlvbiA9IHRoaXMuX2dldFRyYW5zYWN0aW9uQ2xhc3MoZGF0YS50eXBlKTtcblxuICAgICAgICBjb25zdCBmb3J3YXJkUmVzdWx0ID0gdGhpcy5mb3J3YXJkVHJhbnNhY3Rpb24oZGF0YSk7XG5cbiAgICAgICAgaWYgKFRyYW5zYWN0aW9uICYmIGUuc2VuZCkge1xuICAgICAgICAgIFRyYW5zYWN0aW9uLm1ha2VSZXNwb25zZSh0aGlzLl90YWJzdGVyLCBkYXRhLCB0aGlzLl9vd25lciwgdGhpcy5fb3duZXJVSWQsIHRoaXMsIGZvcndhcmRSZXN1bHQsIGZhbHNlKS50aGVuKHIgPT4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICB0cmFuc2FjdGlvbjogZGF0YS50cmFuc2FjdGlvbixcbiAgICAgICAgICAgICAgdHlwZTogZGF0YS50eXBlLFxuICAgICAgICAgICAgICBpc1Jlc3BvbnNlOiB0cnVlLFxuICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICAgIG93bmVyOiB0aGlzLl9vd25lclVJZCxcbiAgICAgICAgICAgICAgdGltZW91dDogZGF0YS50aW1lb3V0LFxuICAgICAgICAgICAgICBzZW50dG86IHt9LFxuICAgICAgICAgICAgICB0YXJnZXQ6IGRhdGEudGFyZ2V0ID09PSBfdGFyZ2V0SWRVcCA/IF90YXJnZXRJZFVwIDogZGF0YS5vd25lcixcbiAgICAgICAgICAgICAgZW5kRGF0YTogclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGUuc2VuZChyZXNwb25zZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25QYWdlSGlkZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2RlYWQoKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fb25Ccm93c2VyTWVzc2FnZSA9IGUgPT4ge1xuICAgICAgaWYgKGUuc291cmNlID09PSB0aGlzLl9vd25lcigpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblxuXG4gICAgICBjb25zdCBzZW5kID0gZGF0YSA9PiB7XG4gICAgICAgIGlmIChlLnNvdXJjZSAmJiBlLnNvdXJjZS5wb3N0TWVzc2FnZSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgICAgICAgZS5zb3VyY2UucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoZGF0YSksIFwiKlwiKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fb25NZXNzYWdlKHtcbiAgICAgICAgICBkYXRhOiBKU09OLnBhcnNlKGUuZGF0YSksXG4gICAgICAgICAgc2VuZFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLyogSWdub3JlICovXG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX293bmVyID0gZ2V0T3duZXI7XG4gICAgdGhpcy5fb3duZXJVSWQgPSBnZXRXaW5kb3dVSWQoZ2V0T3duZXIoKSk7XG4gICAgdGhpcy5jdHggPSBjb250ZXh0O1xuICB9XG5cbiAgc2V0dXAoc2VuZFVwKSB7XG4gICAgaWYgKHRoaXMuaXNTZXRVcCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDcm9zc09yaWdpbiBpcyBhbHJlYWR5IHNldCB1cC5cIik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNTZXRVcCA9IHRydWU7XG4gICAgICB0aGlzLnNldFNlbmRVcChzZW5kVXApO1xuXG4gICAgICB0aGlzLl9vd25lcigpLmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCB0aGlzLl9vblBhZ2VIaWRlKTtcblxuICAgICAgdGhpcy5fcGluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9vbk1lc3NhZ2U7XG4gIH1cblxuICBzZXRTZW5kVXAoc2VuZFVwKSB7XG4gICAgaWYgKCF0aGlzLmlzU2V0VXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNyb3NzT3JpZ2luIGlzIG5vdCBzZXQgdXAuXCIpO1xuICAgIH1cblxuICAgIHRoaXMuc2VuZFVwID0gc2VuZFVwIHx8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IG93bmVyID0gdGhpcy5fb3duZXIoKTtcblxuICAgIGlmIChzZW5kVXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCF0aGlzLl9pc0RlZmF1bHRTZW5kVXApIHtcbiAgICAgICAgaWYgKG93bmVyLmRvY3VtZW50KSB7XG4gICAgICAgICAgdGhpcy5faXNEZWZhdWx0U2VuZFVwID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChvd25lci5wYXJlbnQgJiYgb3duZXIucGFyZW50ICE9PSBvd25lciAmJiBvd25lci5wYXJlbnQucG9zdE1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZFVwID0gKCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICBvd25lci5wYXJlbnQucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoZGF0YSksIFwiKlwiKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb3duZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5fb25Ccm93c2VyTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRGVmYXVsdFNlbmRVcCkge1xuICAgICAgb3duZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5fb25Ccm93c2VyTWVzc2FnZSk7XG4gICAgICB0aGlzLl9pc0RlZmF1bHRTZW5kVXAgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fb25NZXNzYWdlO1xuICB9XG5cbiAgYXN5bmMgZGlzcG9zZSgpIHtcbiAgICBjb25zdCBvd25lciA9IHRoaXMuX293bmVyKCk7XG5cbiAgICBpZiAodGhpcy5fcGluZ1RpbWVyKSB7XG4gICAgICBvd25lci5jbGVhclRpbWVvdXQodGhpcy5fcGluZ1RpbWVyKTtcbiAgICAgIHRoaXMuX3BpbmdUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBvd25lci5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLl9vbkJyb3dzZXJNZXNzYWdlKTtcbiAgICBvd25lci5yZW1vdmVFdmVudExpc3RlbmVyKFwicGFnZWhpZGVcIiwgdGhpcy5fb25QYWdlSGlkZSk7XG4gICAgYXdhaXQgdGhpcy5fZGVhZCgpO1xuICAgIGRlbGV0ZSB0aGlzLl9kZWFkUHJvbWlzZTtcblxuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXModGhpcy5fdHJhbnNhY3Rpb25zKSkge1xuICAgICAgY29uc3QgdCA9IHRoaXMuX3RyYW5zYWN0aW9uc1tpZF07XG5cbiAgICAgIGlmICh0LnRpbWVyKSB7XG4gICAgICAgIG93bmVyLmNsZWFyVGltZW91dCh0LnRpbWVyKTtcbiAgICAgICAgZGVsZXRlIHQudGltZXI7XG4gICAgICB9XG5cbiAgICAgIHQudHJhbnNhY3Rpb24uZW5kKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fa25vd25UYXJnZXRzID0ge307XG4gICAgZGVsZXRlIHRoaXMuc2VuZFVwO1xuICB9XG5cbiAgYmVnaW5UcmFuc2FjdGlvbihUcmFuc2FjdGlvbiwgdmFsdWUsIHRpbWVvdXQsIHNlbnRUbywgdGFyZ2V0SWQsIHdpdGhSZWplY3QpIHtcbiAgICBpZiAoIXRoaXMuX293bmVyKSB7XG4gICAgICByZXR1cm4gZ2V0UHJvbWlzZSh0aGlzLl9vd25lcikucmVqZWN0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fdGFic3RlciwgdGhpcy5fb3duZXIsIHRoaXMuX2tub3duVGFyZ2V0cywgdmFsdWUsIHRpbWVvdXQsIHNlbnRUbywgdGFyZ2V0SWQsIHRoaXMuc2VuZFVwKTtcbiAgICBsZXQgc2VsZlJlc3BvbnNlO1xuXG4gICAgaWYgKFRyYW5zYWN0aW9uLnNob3VsZFNlbGZSZXNwb25kICYmIFRyYW5zYWN0aW9uLnNob3VsZFNlbGZSZXNwb25kKHRoaXMuX3RhYnN0ZXIsIHZhbHVlLCB0aGlzLl9vd25lciwgdGhpcy5fb3duZXJVSWQpKSB7XG4gICAgICBzZWxmUmVzcG9uc2UgPSBkYXRhID0+IHtcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uLm1ha2VSZXNwb25zZSh0aGlzLl90YWJzdGVyLCBkYXRhLCB0aGlzLl9vd25lciwgdGhpcy5fb3duZXJVSWQsIHRoaXMsIGdldFByb21pc2UodGhpcy5fb3duZXIpLnJlc29sdmUodW5kZWZpbmVkKSwgdHJ1ZSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9iZWdpblRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCB0aW1lb3V0LCBzZWxmUmVzcG9uc2UsIHdpdGhSZWplY3QpO1xuICB9XG5cbiAgcmVtb3ZlVGFyZ2V0KHVpZCkge1xuICAgIGRlbGV0ZSB0aGlzLl9rbm93blRhcmdldHNbdWlkXTtcbiAgfVxuXG4gIF9iZWdpblRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCB0aW1lb3V0LCBzZWxmUmVzcG9uc2UsIHdpdGhSZWplY3QpIHtcbiAgICBjb25zdCBvd25lciA9IHRoaXMuX293bmVyKCk7XG5cbiAgICBjb25zdCB3cmFwcGVyID0ge1xuICAgICAgdHJhbnNhY3Rpb24sXG4gICAgICB0aW1lcjogb3duZXIuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB3cmFwcGVyLnRpbWVyO1xuICAgICAgICB0cmFuc2FjdGlvbi5lbmQoXCJDcm9zcyBvcmlnaW4gdHJhbnNhY3Rpb24gdGltZWQgb3V0LlwiKTtcbiAgICAgIH0sIF90cmFuc2FjdGlvblRpbWVvdXQgKyAodGltZW91dCB8fCAwKSlcbiAgICB9O1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uc1t0cmFuc2FjdGlvbi5pZF0gPSB3cmFwcGVyO1xuICAgIGNvbnN0IHJldCA9IHRyYW5zYWN0aW9uLmJlZ2luKHNlbGZSZXNwb25zZSk7XG4gICAgcmV0LmNhdGNoKCgpID0+IHtcbiAgICAgIC8qKi9cbiAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgIGlmICh3cmFwcGVyLnRpbWVyKSB7XG4gICAgICAgIG93bmVyLmNsZWFyVGltZW91dCh3cmFwcGVyLnRpbWVyKTtcbiAgICAgIH1cblxuICAgICAgZGVsZXRlIHRoaXMuX3RyYW5zYWN0aW9uc1t0cmFuc2FjdGlvbi5pZF07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJldC50aGVuKHZhbHVlID0+IHZhbHVlLCB3aXRoUmVqZWN0ID8gdW5kZWZpbmVkIDogKCkgPT4gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIGZvcndhcmRUcmFuc2FjdGlvbiggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgZGF0YSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICApIHtcbiAgICBjb25zdCBvd25lciA9IHRoaXMuX293bmVyO1xuICAgIGxldCB0YXJnZXRJZCA9IGRhdGEudGFyZ2V0O1xuXG4gICAgaWYgKHRhcmdldElkID09PSB0aGlzLl9vd25lclVJZCkge1xuICAgICAgcmV0dXJuIGdldFByb21pc2Uob3duZXIpLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBUcmFuc2FjdGlvbiA9IHRoaXMuX2dldFRyYW5zYWN0aW9uQ2xhc3MoZGF0YS50eXBlKTtcblxuICAgIGlmIChUcmFuc2FjdGlvbikge1xuICAgICAgaWYgKFRyYW5zYWN0aW9uLnNob3VsZEZvcndhcmQgPT09IHVuZGVmaW5lZCB8fCBUcmFuc2FjdGlvbi5zaG91bGRGb3J3YXJkKHRoaXMuX3RhYnN0ZXIsIGRhdGEsIG93bmVyLCB0aGlzLl9vd25lclVJZCkpIHtcbiAgICAgICAgY29uc3Qgc2VudFRvID0gZGF0YS5zZW50dG87XG5cbiAgICAgICAgaWYgKHRhcmdldElkID09PSBfdGFyZ2V0SWRVcCkge1xuICAgICAgICAgIHRhcmdldElkID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHNlbnRUb1t0aGlzLl9vd25lclVJZF0gPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIHNlbnRUb1tfdGFyZ2V0SWRVcF07XG4gICAgICAgIHJldHVybiB0aGlzLl9iZWdpblRyYW5zYWN0aW9uKG5ldyBUcmFuc2FjdGlvbih0aGlzLl90YWJzdGVyLCBvd25lciwgdGhpcy5fa25vd25UYXJnZXRzLCBkYXRhLmJlZ2luRGF0YSwgZGF0YS50aW1lb3V0LCBzZW50VG8sIHRhcmdldElkLCB0aGlzLnNlbmRVcCksIGRhdGEudGltZW91dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZ2V0UHJvbWlzZShvd25lcikucmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBnZXRQcm9taXNlKG93bmVyKS5yZWplY3QoYFVua25vd24gdHJhbnNhY3Rpb24gdHlwZSAke2RhdGEudHlwZX1gKTtcbiAgfVxuXG4gIF9nZXRUcmFuc2FjdGlvbkNsYXNzKHR5cGUgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIENyb3NzT3JpZ2luVHJhbnNhY3Rpb25UeXBlcy5Cb290c3RyYXA6XG4gICAgICAgIHJldHVybiBCb290c3RyYXBUcmFuc2FjdGlvbjtcblxuICAgICAgY2FzZSBDcm9zc09yaWdpblRyYW5zYWN0aW9uVHlwZXMuRm9jdXNFbGVtZW50OlxuICAgICAgICByZXR1cm4gRm9jdXNFbGVtZW50VHJhbnNhY3Rpb247XG5cbiAgICAgIGNhc2UgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzLlN0YXRlOlxuICAgICAgICByZXR1cm4gU3RhdGVUcmFuc2FjdGlvbjtcblxuICAgICAgY2FzZSBDcm9zc09yaWdpblRyYW5zYWN0aW9uVHlwZXMuR2V0RWxlbWVudDpcbiAgICAgICAgcmV0dXJuIEdldEVsZW1lbnRUcmFuc2FjdGlvbjtcblxuICAgICAgY2FzZSBDcm9zc09yaWdpblRyYW5zYWN0aW9uVHlwZXMuUmVzdG9yZUZvY3VzSW5EZWxvc2VyOlxuICAgICAgICByZXR1cm4gUmVzdG9yZUZvY3VzSW5EZWxvc2VyVHJhbnNhY3Rpb247XG5cbiAgICAgIGNhc2UgQ3Jvc3NPcmlnaW5UcmFuc2FjdGlvblR5cGVzLlBpbmc6XG4gICAgICAgIHJldHVybiBQaW5nVHJhbnNhY3Rpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIF9kZWFkKCkge1xuICAgIGlmICghdGhpcy5fZGVhZFByb21pc2UgJiYgdGhpcy5jdHguZm9jdXNPd25lciA9PT0gdGhpcy5fb3duZXJVSWQpIHtcbiAgICAgIHRoaXMuX2RlYWRQcm9taXNlID0gdGhpcy5iZWdpblRyYW5zYWN0aW9uKFN0YXRlVHJhbnNhY3Rpb24sIHtcbiAgICAgICAgb3duZXJVSWQ6IHRoaXMuX293bmVyVUlkLFxuICAgICAgICBzdGF0ZTogQ3Jvc3NPcmlnaW5TdGF0ZXMuRGVhZFdpbmRvd1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RlYWRQcm9taXNlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9kZWFkUHJvbWlzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBfcGluZygpIHtcbiAgICBpZiAodGhpcy5fcGluZ1RpbWVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGRlYWRXaW5kb3dzO1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgdGFyZ2V0cyA9IE9iamVjdC5rZXlzKHRoaXMuX2tub3duVGFyZ2V0cykuZmlsdGVyKHVpZCA9PiBub3cgLSAodGhpcy5fa25vd25UYXJnZXRzW3VpZF0ubGFzdCB8fCAwKSA+IF9waW5nVGltZW91dCk7XG5cbiAgICBpZiAodGhpcy5zZW5kVXApIHtcbiAgICAgIHRhcmdldHMucHVzaChfdGFyZ2V0SWRVcCk7XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldHMubGVuZ3RoKSB7XG4gICAgICBhd2FpdCBnZXRQcm9taXNlKHRoaXMuX293bmVyKS5hbGwodGFyZ2V0cy5tYXAodWlkID0+IHRoaXMuYmVnaW5UcmFuc2FjdGlvbihQaW5nVHJhbnNhY3Rpb24sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVpZCwgdHJ1ZSkudGhlbigoKSA9PiB0cnVlLCAoKSA9PiB7XG4gICAgICAgIGlmICh1aWQgIT09IF90YXJnZXRJZFVwKSB7XG4gICAgICAgICAgaWYgKCFkZWFkV2luZG93cykge1xuICAgICAgICAgICAgZGVhZFdpbmRvd3MgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWFkV2luZG93c1t1aWRdID0gdHJ1ZTtcbiAgICAgICAgICBkZWxldGUgdGhpcy5fa25vd25UYXJnZXRzW3VpZF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KSkpO1xuICAgIH1cblxuICAgIGlmIChkZWFkV2luZG93cykge1xuICAgICAgY29uc3QgZm9jdXNlZCA9IGF3YWl0IHRoaXMuYmVnaW5UcmFuc2FjdGlvbihHZXRFbGVtZW50VHJhbnNhY3Rpb24sIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmICghZm9jdXNlZCAmJiB0aGlzLmN0eC5mb2N1c093bmVyICYmIHRoaXMuY3R4LmZvY3VzT3duZXIgaW4gZGVhZFdpbmRvd3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5iZWdpblRyYW5zYWN0aW9uKFN0YXRlVHJhbnNhY3Rpb24sIHtcbiAgICAgICAgICBvd25lclVJZDogdGhpcy5fb3duZXJVSWQsXG4gICAgICAgICAgc3RhdGU6IENyb3NzT3JpZ2luU3RhdGVzLkJsdXJyZWQsXG4gICAgICAgICAgZm9yY2U6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGRlbG9zZXJBUEkgPSB0aGlzLl90YWJzdGVyLmRlbG9zZXI7XG5cbiAgICAgICAgaWYgKGRlbG9zZXJBUEkpIHtcbiAgICAgICAgICBEZWxvc2VyQVBJLmZvcmNlUmVzdG9yZUZvY3VzKGRlbG9zZXJBUEkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fcGluZ1RpbWVyID0gdGhpcy5fb3duZXIoKS5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3BpbmdUaW1lciA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy5fcGluZygpO1xuICAgIH0sIF9waW5nVGltZW91dCk7XG4gIH1cblxufVxuXG5jbGFzcyBDcm9zc09yaWdpbkVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCB1aWQsIG93bmVySWQsIGlkLCByb290SWQsIG9ic2VydmVkTmFtZSwgb2JzZXJ2ZWREZXRhaWxzKSB7XG4gICAgdGhpcy5fdGFic3RlciA9IHRhYnN0ZXI7XG4gICAgdGhpcy51aWQgPSB1aWQ7XG4gICAgdGhpcy5vd25lcklkID0gb3duZXJJZDtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5yb290SWQgPSByb290SWQ7XG4gICAgdGhpcy5vYnNlcnZlZE5hbWUgPSBvYnNlcnZlZE5hbWU7XG4gICAgdGhpcy5vYnNlcnZlZERldGFpbHMgPSBvYnNlcnZlZERldGFpbHM7XG4gIH1cblxuICBmb2N1cyhub0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5RmxhZywgbm9BY2Nlc3NpYmxlQ2hlY2spIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHJldHVybiB0aGlzLl90YWJzdGVyLmNyb3NzT3JpZ2luLmZvY3VzZWRFbGVtZW50LmZvY3VzKHRoaXMsIG5vRm9jdXNlZFByb2dyYW1tYXRpY2FsbHlGbGFnLCBub0FjY2Vzc2libGVDaGVjayk7XG4gIH1cblxufVxuY2xhc3MgQ3Jvc3NPcmlnaW5Gb2N1c2VkRWxlbWVudFN0YXRlIGV4dGVuZHMgU3Vic2NyaWJhYmxlIHtcbiAgY29uc3RydWN0b3IodHJhbnNhY3Rpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnM7XG4gIH1cblxuICBhc3luYyBmb2N1cyhlbGVtZW50LCBub0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5RmxhZywgbm9BY2Nlc3NpYmxlQ2hlY2spIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXMoe1xuICAgICAgdWlkOiBlbGVtZW50LnVpZCxcbiAgICAgIGlkOiBlbGVtZW50LmlkLFxuICAgICAgcm9vdElkOiBlbGVtZW50LnJvb3RJZCxcbiAgICAgIG93bmVySWQ6IGVsZW1lbnQub3duZXJJZCxcbiAgICAgIG9ic2VydmVkTmFtZTogZWxlbWVudC5vYnNlcnZlZE5hbWVcbiAgICB9LCBub0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5RmxhZywgbm9BY2Nlc3NpYmxlQ2hlY2spO1xuICB9XG5cbiAgYXN5bmMgZm9jdXNCeUlkKGVsZW1lbnRJZCwgcm9vdElkLCBub0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5RmxhZywgbm9BY2Nlc3NpYmxlQ2hlY2spIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXMoe1xuICAgICAgaWQ6IGVsZW1lbnRJZCxcbiAgICAgIHJvb3RJZFxuICAgIH0sIG5vRm9jdXNlZFByb2dyYW1tYXRpY2FsbHlGbGFnLCBub0FjY2Vzc2libGVDaGVjayk7XG4gIH1cblxuICBhc3luYyBmb2N1c0J5T2JzZXJ2ZWROYW1lKG9ic2VydmVkTmFtZSwgdGltZW91dCwgcm9vdElkLCBub0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5RmxhZywgbm9BY2Nlc3NpYmxlQ2hlY2spIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXMoe1xuICAgICAgb2JzZXJ2ZWROYW1lLFxuICAgICAgcm9vdElkXG4gICAgfSwgbm9Gb2N1c2VkUHJvZ3JhbW1hdGljYWxseUZsYWcsIG5vQWNjZXNzaWJsZUNoZWNrLCB0aW1lb3V0KTtcbiAgfVxuXG4gIGFzeW5jIF9mb2N1cyhlbGVtZW50RGF0YSwgbm9Gb2N1c2VkUHJvZ3JhbW1hdGljYWxseUZsYWcsIG5vQWNjZXNzaWJsZUNoZWNrLCB0aW1lb3V0KSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9ucy5iZWdpblRyYW5zYWN0aW9uKEZvY3VzRWxlbWVudFRyYW5zYWN0aW9uLCB7IC4uLmVsZW1lbnREYXRhLFxuICAgICAgbm9Gb2N1c2VkUHJvZ3JhbW1hdGljYWxseUZsYWcsXG4gICAgICBub0FjY2Vzc2libGVDaGVja1xuICAgIH0sIHRpbWVvdXQpLnRoZW4odmFsdWUgPT4gISF2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgc2V0VmFsKGluc3RhbmNlLCB2YWwsIGRldGFpbCkge1xuICAgIGluc3RhbmNlLnNldFZhbCh2YWwsIGRldGFpbCk7XG4gIH1cblxufVxuY2xhc3MgQ3Jvc3NPcmlnaW5PYnNlcnZlZEVsZW1lbnRTdGF0ZSBleHRlbmRzIFN1YnNjcmliYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIHRyYW5zYWN0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbGFzdFJlcXVlc3RGb2N1c0lkID0gMDtcbiAgICB0aGlzLl90YWJzdGVyID0gdGFic3RlcjtcbiAgICB0aGlzLl90cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnM7XG4gIH1cblxuICBhc3luYyBnZXRFbGVtZW50KG9ic2VydmVkTmFtZSwgYWNjZXNzaWJpbGl0eSkge1xuICAgIHJldHVybiB0aGlzLndhaXRFbGVtZW50KG9ic2VydmVkTmFtZSwgMCwgYWNjZXNzaWJpbGl0eSk7XG4gIH1cblxuICBhc3luYyB3YWl0RWxlbWVudChvYnNlcnZlZE5hbWUsIHRpbWVvdXQsIGFjY2Vzc2liaWxpdHkpIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25zLmJlZ2luVHJhbnNhY3Rpb24oR2V0RWxlbWVudFRyYW5zYWN0aW9uLCB7XG4gICAgICBvYnNlcnZlZE5hbWUsXG4gICAgICBhY2Nlc3NpYmlsaXR5XG4gICAgfSwgdGltZW91dCkudGhlbih2YWx1ZSA9PiB2YWx1ZSA/IFN0YXRlVHJhbnNhY3Rpb24uY3JlYXRlRWxlbWVudCh0aGlzLl90YWJzdGVyLCB2YWx1ZSkgOiBudWxsKTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVlc3RGb2N1cyhvYnNlcnZlZE5hbWUsIHRpbWVvdXQpIHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSArK3RoaXMuX2xhc3RSZXF1ZXN0Rm9jdXNJZDtcbiAgICByZXR1cm4gdGhpcy53YWl0RWxlbWVudChvYnNlcnZlZE5hbWUsIHRpbWVvdXQsIE9ic2VydmVkRWxlbWVudEFjY2Vzc2liaWxpdGllcy5Gb2N1c2FibGUpLnRoZW4oZWxlbWVudCA9PiB0aGlzLl9sYXN0UmVxdWVzdEZvY3VzSWQgPT09IHJlcXVlc3RJZCAmJiBlbGVtZW50ID8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICB0aGlzLl90YWJzdGVyLmNyb3NzT3JpZ2luLmZvY3VzZWRFbGVtZW50LmZvY3VzKGVsZW1lbnQsIHRydWUpIDogZmFsc2UpO1xuICB9XG5cbiAgc3RhdGljIHRyaWdnZXIoaW5zdGFuY2UsIGVsZW1lbnQsIGRldGFpbHMpIHtcbiAgICBpbnN0YW5jZS50cmlnZ2VyKGVsZW1lbnQsIGRldGFpbHMpO1xuICB9XG5cbn1cbmNsYXNzIENyb3NzT3JpZ2luQVBJIHtcbiAgY29uc3RydWN0b3IodGFic3Rlcikge1xuICAgIHRoaXMuX2luaXQgPSAoKSA9PiB7XG4gICAgICBjb25zdCB0YWJzdGVyID0gdGhpcy5fdGFic3RlcjtcbiAgICAgIHRhYnN0ZXIua2V5Ym9hcmROYXZpZ2F0aW9uLnN1YnNjcmliZSh0aGlzLl9vbktleWJvYXJkTmF2aWdhdGlvblN0YXRlQ2hhbmdlZCk7XG4gICAgICB0YWJzdGVyLmZvY3VzZWRFbGVtZW50LnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cblxuICAgICAgdGFic3Rlci5vYnNlcnZlZEVsZW1lbnQuc3Vic2NyaWJlKHRoaXMuX29uT2JzZXJ2ZWQpO1xuXG4gICAgICBpZiAoIXRoaXMuX2N0eC5vcmlnT3V0bGluZVNldHVwKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRoaXMuX2N0eC5vcmlnT3V0bGluZVNldHVwID0gdGFic3Rlci5vdXRsaW5lLnNldHVwOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXG4gICAgICAgIHRhYnN0ZXIub3V0bGluZS5zZXR1cCA9IHRoaXMuX291dGxpbmVTZXR1cDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25zLmJlZ2luVHJhbnNhY3Rpb24oQm9vdHN0cmFwVHJhbnNhY3Rpb24sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIF90YXJnZXRJZFVwKS50aGVuKGRhdGEgPT4ge1xuICAgICAgICBpZiAoZGF0YSAmJiB0aGlzLl90YWJzdGVyLmtleWJvYXJkTmF2aWdhdGlvbi5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSAhPT0gZGF0YS5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpIHtcbiAgICAgICAgICB0aGlzLl9jdHguaWdub3JlS2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVVcGRhdGUgPSB0cnVlO1xuXG4gICAgICAgICAgdGhpcy5fdGFic3Rlci5rZXlib2FyZE5hdmlnYXRpb24uc2V0TmF2aWdhdGluZ1dpdGhLZXlib2FyZChkYXRhLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk7XG5cbiAgICAgICAgICB0aGlzLl9jdHguaWdub3JlS2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHRoaXMuX29uS2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkID0gdmFsdWUgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9jdHguaWdub3JlS2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVVcGRhdGUpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25zLmJlZ2luVHJhbnNhY3Rpb24oU3RhdGVUcmFuc2FjdGlvbiwge1xuICAgICAgICAgIHN0YXRlOiBDcm9zc09yaWdpblN0YXRlcy5LZXlib2FyZE5hdmlnYXRpb24sXG4gICAgICAgICAgb3duZXJVSWQ6IGdldFdpbmRvd1VJZCh0aGlzLl93aW4oKSksXG4gICAgICAgICAgaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25Gb2N1cyA9IGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICAgIGNvbnN0IG93bmVyVUlkID0gZ2V0V2luZG93VUlkKHdpbik7XG5cbiAgICAgIGlmICh0aGlzLl9ibHVyVGltZXIpIHtcbiAgICAgICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9ibHVyVGltZXIpO1xuICAgICAgICB0aGlzLl9ibHVyVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9ucy5iZWdpblRyYW5zYWN0aW9uKFN0YXRlVHJhbnNhY3Rpb24sIHsgLi4uR2V0RWxlbWVudFRyYW5zYWN0aW9uLmdldEVsZW1lbnREYXRhKHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQsIHRoaXMuX3dpbiwgdGhpcy5fY3R4LCBvd25lclVJZCksXG4gICAgICAgICAgc3RhdGU6IENyb3NzT3JpZ2luU3RhdGVzLkZvY3VzZWRcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9ibHVyVGltZXIgPSB3aW4uc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fYmx1clRpbWVyID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgaWYgKHRoaXMuX2N0eC5mb2N1c093bmVyICYmIHRoaXMuX2N0eC5mb2N1c093bmVyID09PSBvd25lclVJZCkge1xuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25zLmJlZ2luVHJhbnNhY3Rpb24oR2V0RWxlbWVudFRyYW5zYWN0aW9uLCB1bmRlZmluZWQpLnRoZW4odmFsdWUgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXZhbHVlICYmIHRoaXMuX2N0eC5mb2N1c093bmVyID09PSBvd25lclVJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9ucy5iZWdpblRyYW5zYWN0aW9uKFN0YXRlVHJhbnNhY3Rpb24sIHtcbiAgICAgICAgICAgICAgICAgIG93bmVyVUlkLFxuICAgICAgICAgICAgICAgICAgc3RhdGU6IENyb3NzT3JpZ2luU3RhdGVzLkJsdXJyZWQsXG4gICAgICAgICAgICAgICAgICBmb3JjZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25PYnNlcnZlZCA9IChlbGVtZW50LCBkZXRhaWxzKSA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGNvbnN0IGQgPSBHZXRFbGVtZW50VHJhbnNhY3Rpb24uZ2V0RWxlbWVudERhdGEodGhpcy5fdGFic3RlciwgZWxlbWVudCwgdGhpcy5fd2luLCB0aGlzLl9jdHgsIGdldFdpbmRvd1VJZCh0aGlzLl93aW4oKSkpO1xuICAgICAgZC5zdGF0ZSA9IENyb3NzT3JpZ2luU3RhdGVzLk9ic2VydmVkO1xuICAgICAgZC5vYnNlcnZlZE5hbWUgPSAoX2EgPSBkZXRhaWxzLm5hbWVzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF07XG4gICAgICBkLm9ic2VydmVkRGV0YWlscyA9IGRldGFpbHMuZGV0YWlscztcblxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25zLmJlZ2luVHJhbnNhY3Rpb24oU3RhdGVUcmFuc2FjdGlvbiwgZCk7XG4gICAgfTtcblxuICAgIHRoaXMuX291dGxpbmVTZXR1cCA9IHByb3BzID0+IHtcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9ucy5iZWdpblRyYW5zYWN0aW9uKFN0YXRlVHJhbnNhY3Rpb24sIHtcbiAgICAgICAgc3RhdGU6IENyb3NzT3JpZ2luU3RhdGVzLk91dGxpbmUsXG4gICAgICAgIG93bmVyVUlkOiBnZXRXaW5kb3dVSWQodGhpcy5fd2luKCkpLFxuICAgICAgICBvdXRsaW5lOiBwcm9wc1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX3dpbiA9IHRhYnN0ZXIuZ2V0V2luZG93O1xuICAgIHRoaXMuX2N0eCA9IHtcbiAgICAgIGlnbm9yZUtleWJvYXJkTmF2aWdhdGlvblN0YXRlVXBkYXRlOiBmYWxzZSxcbiAgICAgIGRlbG9zZXJCeVVJZDoge31cbiAgICB9O1xuICAgIHRoaXMuX3RyYW5zYWN0aW9ucyA9IG5ldyBDcm9zc09yaWdpblRyYW5zYWN0aW9ucyh0YWJzdGVyLCB0aGlzLl93aW4sIHRoaXMuX2N0eCk7XG4gICAgdGhpcy5mb2N1c2VkRWxlbWVudCA9IG5ldyBDcm9zc09yaWdpbkZvY3VzZWRFbGVtZW50U3RhdGUodGhpcy5fdHJhbnNhY3Rpb25zKTtcbiAgICB0aGlzLm9ic2VydmVkRWxlbWVudCA9IG5ldyBDcm9zc09yaWdpbk9ic2VydmVkRWxlbWVudFN0YXRlKHRhYnN0ZXIsIHRoaXMuX3RyYW5zYWN0aW9ucyk7XG4gIH1cblxuICBzZXR1cChzZW5kVXApIHtcbiAgICBpZiAodGhpcy5pc1NldFVwKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbnMuc2V0U2VuZFVwKHNlbmRVcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RhYnN0ZXIucXVldWVJbml0KHRoaXMuX2luaXQpO1xuXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25zLnNldHVwKHNlbmRVcCk7XG4gICAgfVxuICB9XG5cbiAgaXNTZXRVcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25zLmlzU2V0VXA7XG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIHZhciBfYTtcblxuICAgIGNvbnN0IHRhYnN0ZXIgPSB0aGlzLl90YWJzdGVyO1xuICAgIHRhYnN0ZXIua2V5Ym9hcmROYXZpZ2F0aW9uLnVuc3Vic2NyaWJlKHRoaXMuX29uS2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKTtcbiAgICB0YWJzdGVyLmZvY3VzZWRFbGVtZW50LnVuc3Vic2NyaWJlKHRoaXMuX29uRm9jdXMpO1xuICAgIChfYSA9IHRhYnN0ZXIub2JzZXJ2ZWRFbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudW5zdWJzY3JpYmUodGhpcy5fb25PYnNlcnZlZCk7XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbnMuZGlzcG9zZSgpO1xuXG4gICAgdGhpcy5mb2N1c2VkRWxlbWVudC5kaXNwb3NlKCk7XG4gICAgdGhpcy5vYnNlcnZlZEVsZW1lbnQuZGlzcG9zZSgpO1xuICAgIHRoaXMuX2N0eC5kZWxvc2VyQnlVSWQgPSB7fTtcbiAgfVxuXG59XG5cbmZ1bmN0aW9uIGdldERlbG9zZXJVSUQoZ2V0V2luZG93LCBjb250ZXh0LCBkZWxvc2VyKSB7XG4gIGNvbnN0IGRlbG9zZXJFbGVtZW50ID0gZGVsb3Nlci5nZXRFbGVtZW50KCk7XG5cbiAgaWYgKGRlbG9zZXJFbGVtZW50KSB7XG4gICAgY29uc3QgdWlkID0gZ2V0RWxlbWVudFVJZChnZXRXaW5kb3csIGRlbG9zZXJFbGVtZW50KTtcblxuICAgIGlmICghY29udGV4dC5kZWxvc2VyQnlVSWRbdWlkXSkge1xuICAgICAgY29udGV4dC5kZWxvc2VyQnlVSWRbdWlkXSA9IGRlbG9zZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVpZDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNsYXNzIEZvY3VzYWJsZUFQSSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIpIHtcbiAgICB0aGlzLl90YWJzdGVyID0gdGFic3RlcjtcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgLyoqL1xuICB9XG5cbiAgZ2V0UHJvcHMoZWxlbWVudCkge1xuICAgIGNvbnN0IHRhYnN0ZXJPbkVsZW1lbnQgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQpO1xuICAgIHJldHVybiB0YWJzdGVyT25FbGVtZW50ICYmIHRhYnN0ZXJPbkVsZW1lbnQuZm9jdXNhYmxlIHx8IHt9O1xuICB9XG5cbiAgaXNGb2N1c2FibGUoZWwsIGluY2x1ZGVQcm9ncmFtbWF0aWNhbGx5Rm9jdXNhYmxlLCBub1Zpc2libGVDaGVjaywgbm9BY2Nlc3NpYmxlQ2hlY2spIHtcbiAgICBpZiAobWF0Y2hlc1NlbGVjdG9yKGVsLCBGT0NVU0FCTEVfU0VMRUNUT1IpICYmIChpbmNsdWRlUHJvZ3JhbW1hdGljYWxseUZvY3VzYWJsZSB8fCBlbC50YWJJbmRleCAhPT0gLTEpKSB7XG4gICAgICByZXR1cm4gKG5vVmlzaWJsZUNoZWNrIHx8IHRoaXMuaXNWaXNpYmxlKGVsKSkgJiYgKG5vQWNjZXNzaWJsZUNoZWNrIHx8IHRoaXMuaXNBY2Nlc3NpYmxlKGVsKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNWaXNpYmxlKGVsKSB7XG4gICAgaWYgKCFlbC5vd25lckRvY3VtZW50IHx8IGVsLm5vZGVUeXBlICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChpc0Rpc3BsYXlOb25lKGVsKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBlbC5vd25lckRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAocmVjdC53aWR0aCA9PT0gMCAmJiByZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgLy8gVGhpcyBtaWdodCBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiBvdXIgPGJvZHk+IGlzIGluIGhpZGRlbiA8aWZyYW1lPi5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzQWNjZXNzaWJsZShlbCkge1xuICAgIHZhciBfYTtcblxuICAgIGZvciAobGV0IGUgPSBlbDsgZTsgZSA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KGUpKSB7XG4gICAgICBjb25zdCB0YWJzdGVyT25FbGVtZW50ID0gZ2V0VGFic3Rlck9uRWxlbWVudCh0aGlzLl90YWJzdGVyLCBlKTtcblxuICAgICAgaWYgKHRoaXMuX2lzSGlkZGVuKGUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWdub3JlRGlzYWJsZWQgPSAoX2EgPSB0YWJzdGVyT25FbGVtZW50ID09PSBudWxsIHx8IHRhYnN0ZXJPbkVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhYnN0ZXJPbkVsZW1lbnQuZm9jdXNhYmxlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWdub3JlQXJpYURpc2FibGVkO1xuXG4gICAgICBpZiAoIWlnbm9yZURpc2FibGVkICYmIHRoaXMuX2lzRGlzYWJsZWQoZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgX2lzRGlzYWJsZWQoZWwpIHtcbiAgICByZXR1cm4gZWwuaGFzQXR0cmlidXRlKFwiZGlzYWJsZWRcIik7XG4gIH1cblxuICBfaXNIaWRkZW4oZWwpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCBhdHRyVmFsID0gZWwuZ2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIik7XG5cbiAgICBpZiAoYXR0clZhbCAmJiBhdHRyVmFsLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiKSB7XG4gICAgICBpZiAoISgoX2EgPSB0aGlzLl90YWJzdGVyLm1vZGFsaXplcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmlzQXVnbWVudGVkKGVsKSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZmluZEZpcnN0KG9wdGlvbnMsIG91dCkge1xuICAgIHJldHVybiB0aGlzLmZpbmRFbGVtZW50KHsgLi4ub3B0aW9uc1xuICAgIH0sIG91dCk7XG4gIH1cblxuICBmaW5kTGFzdChvcHRpb25zLCBvdXQpIHtcbiAgICByZXR1cm4gdGhpcy5maW5kRWxlbWVudCh7XG4gICAgICBpc0JhY2t3YXJkOiB0cnVlLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0sIG91dCk7XG4gIH1cblxuICBmaW5kTmV4dChvcHRpb25zLCBvdXQpIHtcbiAgICByZXR1cm4gdGhpcy5maW5kRWxlbWVudCh7IC4uLm9wdGlvbnNcbiAgICB9LCBvdXQpO1xuICB9XG5cbiAgZmluZFByZXYob3B0aW9ucywgb3V0KSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEVsZW1lbnQoeyAuLi5vcHRpb25zLFxuICAgICAgaXNCYWNrd2FyZDogdHJ1ZVxuICAgIH0sIG91dCk7XG4gIH1cblxuICBmaW5kRGVmYXVsdChvcHRpb25zLCBvdXQpIHtcbiAgICByZXR1cm4gdGhpcy5maW5kRWxlbWVudCh7IC4uLm9wdGlvbnMsXG4gICAgICBhY2NlcHRDb25kaXRpb246IGVsID0+IHRoaXMuaXNGb2N1c2FibGUoZWwsIG9wdGlvbnMuaW5jbHVkZVByb2dyYW1tYXRpY2FsbHlGb2N1c2FibGUpICYmICEhdGhpcy5nZXRQcm9wcyhlbCkuaXNEZWZhdWx0XG4gICAgfSwgb3V0KSB8fCBudWxsO1xuICB9XG5cbiAgZmluZEFsbChvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbmRFbGVtZW50cyh0cnVlLCBvcHRpb25zKSB8fCBbXTtcbiAgfVxuXG4gIGZpbmRFbGVtZW50KG9wdGlvbnMsIG91dCkge1xuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5fZmluZEVsZW1lbnRzKGZhbHNlLCBvcHRpb25zLCBvdXQpO1xuXG4gICAgcmV0dXJuIGZvdW5kID8gZm91bmRbMF0gOiBmb3VuZDtcbiAgfVxuXG4gIF9maW5kRWxlbWVudHMoaXNGaW5kQWxsLCBvcHRpb25zLCBvdXQpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcblxuICAgIGNvbnN0IHtcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGN1cnJlbnRFbGVtZW50ID0gbnVsbCxcbiAgICAgIGluY2x1ZGVQcm9ncmFtbWF0aWNhbGx5Rm9jdXNhYmxlLFxuICAgICAgdXNlQWN0aXZlTW9kYWxpemVyLFxuICAgICAgaWdub3JlQWNjZXNzaWJpbGl0eSxcbiAgICAgIG1vZGFsaXplcklkLFxuICAgICAgaXNCYWNrd2FyZCxcbiAgICAgIG9uRWxlbWVudFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgaWYgKCFvdXQpIHtcbiAgICAgIG91dCA9IHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzID0gW107XG4gICAgbGV0IHtcbiAgICAgIGFjY2VwdENvbmRpdGlvblxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGhhc0N1c3RvbUNvbmRpdGlvbiA9ICEhYWNjZXB0Q29uZGl0aW9uO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghYWNjZXB0Q29uZGl0aW9uKSB7XG4gICAgICBhY2NlcHRDb25kaXRpb24gPSBlbCA9PiB0aGlzLmlzRm9jdXNhYmxlKGVsLCBpbmNsdWRlUHJvZ3JhbW1hdGljYWxseUZvY3VzYWJsZSwgZmFsc2UsIGlnbm9yZUFjY2Vzc2liaWxpdHkpO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdEVsZW1lbnRTdGF0ZSA9IHtcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIG1vZGFsaXplclVzZXJJZDogbW9kYWxpemVySWQgPT09IHVuZGVmaW5lZCAmJiB1c2VBY3RpdmVNb2RhbGl6ZXIgPyAoX2EgPSB0aGlzLl90YWJzdGVyLm1vZGFsaXplcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjdGl2ZUlkIDogbW9kYWxpemVySWQgfHwgKChfYyA9IChfYiA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGhpcy5fdGFic3RlciwgY29udGFpbmVyKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm1vZGFsaXplcikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnVzZXJJZCksXG4gICAgICBmcm9tOiBjdXJyZW50RWxlbWVudCB8fCBjb250YWluZXIsXG4gICAgICBpc0JhY2t3YXJkLFxuICAgICAgaXNGaW5kQWxsLFxuICAgICAgYWNjZXB0Q29uZGl0aW9uLFxuICAgICAgaGFzQ3VzdG9tQ29uZGl0aW9uLFxuICAgICAgaW5jbHVkZVByb2dyYW1tYXRpY2FsbHlGb2N1c2FibGUsXG4gICAgICBpZ25vcmVBY2Nlc3NpYmlsaXR5LFxuICAgICAgY2FjaGVkR3JvdXBwZXJzOiB7fSxcbiAgICAgIGNhY2hlZFJhZGlvR3JvdXBzOiB7fVxuICAgIH07XG4gICAgY29uc3Qgd2Fsa2VyID0gY3JlYXRlRWxlbWVudFRyZWVXYWxrZXIoY29udGFpbmVyLm93bmVyRG9jdW1lbnQsIGNvbnRhaW5lciwgbm9kZSA9PiB0aGlzLl9hY2NlcHRFbGVtZW50KG5vZGUsIGFjY2VwdEVsZW1lbnRTdGF0ZSkpO1xuXG4gICAgaWYgKCF3YWxrZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXBhcmVGb3JOZXh0RWxlbWVudCA9IHNob3VsZENvbnRpbnVlSWZOb3RGb3VuZCA9PiB7XG4gICAgICB2YXIgX2EsIF9iO1xuXG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSAoX2EgPSBhY2NlcHRFbGVtZW50U3RhdGUuZm91bmRFbGVtZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBhY2NlcHRFbGVtZW50U3RhdGUuZm91bmRCYWNrd2FyZDtcblxuICAgICAgaWYgKGZvdW5kRWxlbWVudCkge1xuICAgICAgICBlbGVtZW50cy5wdXNoKGZvdW5kRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0ZpbmRBbGwpIHtcbiAgICAgICAgaWYgKGZvdW5kRWxlbWVudCkge1xuICAgICAgICAgIGFjY2VwdEVsZW1lbnRTdGF0ZS5mb3VuZCA9IGZhbHNlO1xuICAgICAgICAgIGRlbGV0ZSBhY2NlcHRFbGVtZW50U3RhdGUuZm91bmRFbGVtZW50O1xuICAgICAgICAgIGRlbGV0ZSBhY2NlcHRFbGVtZW50U3RhdGUuZm91bmRCYWNrd2FyZDtcbiAgICAgICAgICBkZWxldGUgYWNjZXB0RWxlbWVudFN0YXRlLmZyb21DdHg7XG4gICAgICAgICAgYWNjZXB0RWxlbWVudFN0YXRlLmZyb20gPSBmb3VuZEVsZW1lbnQ7XG5cbiAgICAgICAgICBpZiAob25FbGVtZW50ICYmICFvbkVsZW1lbnQoZm91bmRFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhIShmb3VuZEVsZW1lbnQgfHwgc2hvdWxkQ29udGludWVJZk5vdEZvdW5kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChmb3VuZEVsZW1lbnQgJiYgb3V0KSB7XG4gICAgICAgICAgb3V0LnVuY29udHJvbGxlZCA9IChfYiA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGhpcy5fdGFic3RlciwgZm91bmRFbGVtZW50KSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnVuY29udHJvbGxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhIShzaG91bGRDb250aW51ZUlmTm90Rm91bmQgJiYgIWZvdW5kRWxlbWVudCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghY3VycmVudEVsZW1lbnQpIHtcbiAgICAgIG91dC5vdXRPZkRPTU9yZGVyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudEVsZW1lbnQgJiYgZG9tLm5vZGVDb250YWlucyhjb250YWluZXIsIGN1cnJlbnRFbGVtZW50KSkge1xuICAgICAgd2Fsa2VyLmN1cnJlbnROb2RlID0gY3VycmVudEVsZW1lbnQ7XG4gICAgfSBlbHNlIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgICBjb25zdCBsYXN0Q2hpbGQgPSBnZXRMYXN0Q2hpbGQkMihjb250YWluZXIpO1xuXG4gICAgICBpZiAoIWxhc3RDaGlsZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2VwdEVsZW1lbnQobGFzdENoaWxkLCBhY2NlcHRFbGVtZW50U3RhdGUpID09PSBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgJiYgIXByZXBhcmVGb3JOZXh0RWxlbWVudCh0cnVlKSkge1xuICAgICAgICBpZiAoYWNjZXB0RWxlbWVudFN0YXRlLnNraXBwZWRGb2N1c2FibGUpIHtcbiAgICAgICAgICBvdXQub3V0T2ZET01PcmRlciA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgICB9XG5cbiAgICAgIHdhbGtlci5jdXJyZW50Tm9kZSA9IGxhc3RDaGlsZDtcbiAgICB9XG5cbiAgICBkbyB7XG4gICAgICBpZiAoaXNCYWNrd2FyZCkge1xuICAgICAgICB3YWxrZXIucHJldmlvdXNOb2RlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3YWxrZXIubmV4dE5vZGUoKTtcbiAgICAgIH1cbiAgICB9IHdoaWxlIChwcmVwYXJlRm9yTmV4dEVsZW1lbnQoKSk7XG5cbiAgICBpZiAoYWNjZXB0RWxlbWVudFN0YXRlLnNraXBwZWRGb2N1c2FibGUpIHtcbiAgICAgIG91dC5vdXRPZkRPTU9yZGVyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xuICB9XG5cbiAgX2FjY2VwdEVsZW1lbnQoZWxlbWVudCwgc3RhdGUpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcblxuICAgIGlmIChzdGF0ZS5mb3VuZCkge1xuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZEJhY2t3YXJkID0gc3RhdGUuZm91bmRCYWNrd2FyZDtcblxuICAgIGlmIChmb3VuZEJhY2t3YXJkICYmIChlbGVtZW50ID09PSBmb3VuZEJhY2t3YXJkIHx8ICFkb20ubm9kZUNvbnRhaW5zKGZvdW5kQmFja3dhcmQsIGVsZW1lbnQpKSkge1xuICAgICAgc3RhdGUuZm91bmQgPSB0cnVlO1xuICAgICAgc3RhdGUuZm91bmRFbGVtZW50ID0gZm91bmRCYWNrd2FyZDtcbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gc3RhdGUuY29udGFpbmVyO1xuXG4gICAgaWYgKGVsZW1lbnQgPT09IGNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgfVxuXG4gICAgaWYgKCFkb20ubm9kZUNvbnRhaW5zKGNvbnRhaW5lciwgZWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgfVxuXG4gICAgaWYgKGdldER1bW15SW5wdXRDb250YWluZXIoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgfVxuXG4gICAgaWYgKGRvbS5ub2RlQ29udGFpbnMoc3RhdGUucmVqZWN0RWxlbWVudHNGcm9tLCBlbGVtZW50KSkge1xuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVDtcbiAgICB9XG5cbiAgICBjb25zdCBjdHggPSBzdGF0ZS5jdXJyZW50Q3R4ID0gUm9vdEFQSS5nZXRUYWJzdGVyQ29udGV4dCh0aGlzLl90YWJzdGVyLCBlbGVtZW50KTsgLy8gVGFic3RlciBpcyBvcHQgaW4sIGlmIGl0IGlzIG5vdCBtYW5hZ2VkLCBkb24ndCB0cnkgYW5kIGdldCBkbyBhbnl0aGluZyBzcGVjaWFsXG5cbiAgICBpZiAoIWN0eCkge1xuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZElnbm9yZUZvY3VzKGVsZW1lbnQpKSB7XG4gICAgICBpZiAodGhpcy5pc0ZvY3VzYWJsZShlbGVtZW50LCB1bmRlZmluZWQsIHRydWUsIHRydWUpKSB7XG4gICAgICAgIHN0YXRlLnNraXBwZWRGb2N1c2FibGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICB9IC8vIFdlIGFzc3VtZSBpZnJhbWVzIGFyZSBmb2N1c2FibGUgYmVjYXVzZSBuYXRpdmUgdGFiIGJlaGF2aW91ciB3b3VsZCB0YWIgaW5zaWRlLlxuICAgIC8vIEJ1dCB3ZSBkbyBpdCBvbmx5IGR1cmluZyB0aGUgc3RhbmRhcmQgc2VhcmNoIHdoZW4gdGhlcmUgaXMgbm8gY3VzdG9tIGFjY2VwdFxuICAgIC8vIGVsZW1lbnQgY29uZGl0aW9uLlxuXG5cbiAgICBpZiAoIXN0YXRlLmhhc0N1c3RvbUNvbmRpdGlvbiAmJiAoZWxlbWVudC50YWdOYW1lID09PSBcIklGUkFNRVwiIHx8IGVsZW1lbnQudGFnTmFtZSA9PT0gXCJXRUJWSUVXXCIpKSB7XG4gICAgICBpZiAoKChfYSA9IGN0eC5tb2RhbGl6ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS51c2VySWQpID09PSAoKF9iID0gdGhpcy5fdGFic3Rlci5tb2RhbGl6ZXIpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5hY3RpdmVJZCkpIHtcbiAgICAgICAgc3RhdGUuZm91bmQgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5yZWplY3RFbGVtZW50c0Zyb20gPSBzdGF0ZS5mb3VuZEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlLmlnbm9yZUFjY2Vzc2liaWxpdHkgJiYgIXRoaXMuaXNBY2Nlc3NpYmxlKGVsZW1lbnQpKSB7XG4gICAgICBpZiAodGhpcy5pc0ZvY3VzYWJsZShlbGVtZW50LCBmYWxzZSwgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgICAgc3RhdGUuc2tpcHBlZEZvY3VzYWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDtcbiAgICBsZXQgZnJvbUN0eCA9IHN0YXRlLmZyb21DdHg7XG5cbiAgICBpZiAoIWZyb21DdHgpIHtcbiAgICAgIGZyb21DdHggPSBzdGF0ZS5mcm9tQ3R4ID0gUm9vdEFQSS5nZXRUYWJzdGVyQ29udGV4dCh0aGlzLl90YWJzdGVyLCBzdGF0ZS5mcm9tKTtcbiAgICB9XG5cbiAgICBjb25zdCBmcm9tTW92ZXIgPSBmcm9tQ3R4ID09PSBudWxsIHx8IGZyb21DdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZyb21DdHgubW92ZXI7XG4gICAgbGV0IGdyb3VwcGVyID0gY3R4Lmdyb3VwcGVyO1xuICAgIGxldCBtb3ZlciA9IGN0eC5tb3ZlcjtcbiAgICByZXN1bHQgPSAoX2MgPSB0aGlzLl90YWJzdGVyLm1vZGFsaXplcikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmFjY2VwdEVsZW1lbnQoZWxlbWVudCwgc3RhdGUpO1xuXG4gICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZS5za2lwcGVkRm9jdXNhYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYgKGdyb3VwcGVyIHx8IG1vdmVyIHx8IGZyb21Nb3ZlcikpIHtcbiAgICAgIGNvbnN0IGdyb3VwcGVyRWxlbWVudCA9IGdyb3VwcGVyID09PSBudWxsIHx8IGdyb3VwcGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBncm91cHBlci5nZXRFbGVtZW50KCk7XG4gICAgICBjb25zdCBmcm9tTW92ZXJFbGVtZW50ID0gZnJvbU1vdmVyID09PSBudWxsIHx8IGZyb21Nb3ZlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZnJvbU1vdmVyLmdldEVsZW1lbnQoKTtcbiAgICAgIGxldCBtb3ZlckVsZW1lbnQgPSBtb3ZlciA9PT0gbnVsbCB8fCBtb3ZlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW92ZXIuZ2V0RWxlbWVudCgpO1xuXG4gICAgICBpZiAobW92ZXJFbGVtZW50ICYmIGRvbS5ub2RlQ29udGFpbnMoZnJvbU1vdmVyRWxlbWVudCwgbW92ZXJFbGVtZW50KSAmJiBkb20ubm9kZUNvbnRhaW5zKGNvbnRhaW5lciwgZnJvbU1vdmVyRWxlbWVudCkgJiYgKCFncm91cHBlckVsZW1lbnQgfHwgIW1vdmVyIHx8IGRvbS5ub2RlQ29udGFpbnMoZnJvbU1vdmVyRWxlbWVudCwgZ3JvdXBwZXJFbGVtZW50KSkpIHtcbiAgICAgICAgbW92ZXIgPSBmcm9tTW92ZXI7XG4gICAgICAgIG1vdmVyRWxlbWVudCA9IGZyb21Nb3ZlckVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChncm91cHBlckVsZW1lbnQgJiYgKGdyb3VwcGVyRWxlbWVudCA9PT0gY29udGFpbmVyIHx8ICFkb20ubm9kZUNvbnRhaW5zKGNvbnRhaW5lciwgZ3JvdXBwZXJFbGVtZW50KSkpIHtcbiAgICAgICAgZ3JvdXBwZXIgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb3ZlckVsZW1lbnQgJiYgIWRvbS5ub2RlQ29udGFpbnMoY29udGFpbmVyLCBtb3ZlckVsZW1lbnQpKSB7XG4gICAgICAgIG1vdmVyID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoZ3JvdXBwZXIgJiYgbW92ZXIpIHtcbiAgICAgICAgaWYgKG1vdmVyRWxlbWVudCAmJiBncm91cHBlckVsZW1lbnQgJiYgIWRvbS5ub2RlQ29udGFpbnMoZ3JvdXBwZXJFbGVtZW50LCBtb3ZlckVsZW1lbnQpKSB7XG4gICAgICAgICAgbW92ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBwZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGdyb3VwcGVyKSB7XG4gICAgICAgIHJlc3VsdCA9IGdyb3VwcGVyLmFjY2VwdEVsZW1lbnQoZWxlbWVudCwgc3RhdGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAobW92ZXIpIHtcbiAgICAgICAgcmVzdWx0ID0gbW92ZXIuYWNjZXB0RWxlbWVudChlbGVtZW50LCBzdGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQgPSBzdGF0ZS5hY2NlcHRDb25kaXRpb24oZWxlbWVudCkgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuXG4gICAgICBpZiAocmVzdWx0ID09PSBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQICYmIHRoaXMuaXNGb2N1c2FibGUoZWxlbWVudCwgZmFsc2UsIHRydWUsIHRydWUpKSB7XG4gICAgICAgIHN0YXRlLnNraXBwZWRGb2N1c2FibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXN1bHQgPT09IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCAmJiAhc3RhdGUuZm91bmQpIHtcbiAgICAgIGlmICghc3RhdGUuaXNGaW5kQWxsICYmIGlzUmFkaW8oZWxlbWVudCkgJiYgIWVsZW1lbnQuY2hlY2tlZCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIG1pbWljIHRoZSBicm93c2VyJ3MgYmVoYXZpb3VyIHRvIHNraXAgdW5jaGVja2VkIHJhZGlvIGJ1dHRvbnMuXG4gICAgICAgIGNvbnN0IHJhZGlvR3JvdXBOYW1lID0gZWxlbWVudC5uYW1lO1xuICAgICAgICBsZXQgcmFkaW9Hcm91cCA9IHN0YXRlLmNhY2hlZFJhZGlvR3JvdXBzW3JhZGlvR3JvdXBOYW1lXTtcblxuICAgICAgICBpZiAoIXJhZGlvR3JvdXApIHtcbiAgICAgICAgICByYWRpb0dyb3VwID0gZ2V0UmFkaW9CdXR0b25Hcm91cChlbGVtZW50KTtcblxuICAgICAgICAgIGlmIChyYWRpb0dyb3VwKSB7XG4gICAgICAgICAgICBzdGF0ZS5jYWNoZWRSYWRpb0dyb3Vwc1tyYWRpb0dyb3VwTmFtZV0gPSByYWRpb0dyb3VwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgocmFkaW9Hcm91cCA9PT0gbnVsbCB8fCByYWRpb0dyb3VwID09PSB2b2lkIDAgPyB2b2lkIDAgOiByYWRpb0dyb3VwLmNoZWNrZWQpICYmIHJhZGlvR3JvdXAuY2hlY2tlZCAhPT0gZWxlbWVudCkge1xuICAgICAgICAgIC8vIEN1cnJlbnRseSBmb3VuZCBlbGVtZW50IGlzIGEgcmFkaW8gYnV0dG9uIGluIGEgZ3JvdXAgdGhhdCBoYXMgYW5vdGhlciByYWRpbyBidXR0b24gY2hlY2tlZC5cbiAgICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUuaXNCYWNrd2FyZCkge1xuICAgICAgICAvLyBXaGVuIFRyZWVXYWxrZXIgZ29lcyBiYWNrd2FyZHMsIGl0IHZpc2l0cyB0aGUgY29udGFpbmVyIGZpcnN0LFxuICAgICAgICAvLyB0aGVuIGl0IGdvZXMgaW5zaWRlLiBTbywgaWYgdGhlIGNvbnRhaW5lciBpcyBhY2NlcHRlZCwgd2UgcmVtZW1iZXIgaXQsXG4gICAgICAgIC8vIGJ1dCBhbGxvd2luZyB0aGUgVHJlZVdhbGtlciB0byBjaGVjayBpbnNpZGUuXG4gICAgICAgIHN0YXRlLmZvdW5kQmFja3dhcmQgPSBlbGVtZW50O1xuICAgICAgICByZXN1bHQgPSBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUuZm91bmQgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5mb3VuZEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5jb25zdCBLZXlzID0ge1xuICBUYWI6IFwiVGFiXCIsXG4gIEVudGVyOiBcIkVudGVyXCIsXG4gIEVzY2FwZTogXCJFc2NhcGVcIixcbiAgU3BhY2U6IFwiIFwiLFxuICBQYWdlVXA6IFwiUGFnZVVwXCIsXG4gIFBhZ2VEb3duOiBcIlBhZ2VEb3duXCIsXG4gIEVuZDogXCJFbmRcIixcbiAgSG9tZTogXCJIb21lXCIsXG4gIEFycm93TGVmdDogXCJBcnJvd0xlZnRcIixcbiAgQXJyb3dVcDogXCJBcnJvd1VwXCIsXG4gIEFycm93UmlnaHQ6IFwiQXJyb3dSaWdodFwiLFxuICBBcnJvd0Rvd246IFwiQXJyb3dEb3duXCJcbn07XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cblxuZnVuY3Rpb24gZ2V0VW5jb250cm9sbGVkQ29tcGxldGVseUNvbnRhaW5lcih0YWJzdGVyLCBlbGVtZW50KSB7XG4gIHZhciBfYTtcblxuICBjb25zdCBnZXRQYXJlbnQgPSB0YWJzdGVyLmdldFBhcmVudDtcbiAgbGV0IGVsID0gZWxlbWVudDtcblxuICBkbyB7XG4gICAgY29uc3QgdW5jb250cm9sbGVkT25FbGVtZW50ID0gKF9hID0gZ2V0VGFic3Rlck9uRWxlbWVudCh0YWJzdGVyLCBlbCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS51bmNvbnRyb2xsZWQ7XG5cbiAgICBpZiAodW5jb250cm9sbGVkT25FbGVtZW50ICYmIHRhYnN0ZXIudW5jb250cm9sbGVkLmlzVW5jb250cm9sbGVkQ29tcGxldGVseShlbCwgISF1bmNvbnRyb2xsZWRPbkVsZW1lbnQuY29tcGxldGVseSkpIHtcbiAgICAgIHJldHVybiBlbDtcbiAgICB9XG5cbiAgICBlbCA9IGdldFBhcmVudChlbCk7XG4gIH0gd2hpbGUgKGVsKTtcblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5jb25zdCBBc3luY0ZvY3VzSW50ZW50UHJpb3JpdHlCeVNvdXJjZSA9IHtcbiAgW0FzeW5jRm9jdXNTb3VyY2VzLlJlc3RvcmVyXTogMCxcbiAgW0FzeW5jRm9jdXNTb3VyY2VzLkRlbG9zZXJdOiAxLFxuICBbQXN5bmNGb2N1c1NvdXJjZXMuRXNjYXBlR3JvdXBwZXJdOiAyXG59O1xuY2xhc3MgRm9jdXNlZEVsZW1lbnRTdGF0ZSBleHRlbmRzIFN1YnNjcmliYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGdldFdpbmRvdykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9pbml0ID0gKCkgPT4ge1xuICAgICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICAgIGNvbnN0IGRvYyA9IHdpbi5kb2N1bWVudDsgLy8gQWRkIHRoZXNlIGV2ZW50IGxpc3RlbmVycyBhcyBjYXB0dXJlIC0gd2Ugd2FudCBUYWJzdGVyIHRvIHJ1biBiZWZvcmUgdXNlciBldmVudCBoYW5kbGVyc1xuXG4gICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihLRVlCT1JHX0ZPQ1VTSU4sIHRoaXMuX29uRm9jdXNJbiwgdHJ1ZSk7XG4gICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihLRVlCT1JHX0ZPQ1VTT1VULCB0aGlzLl9vbkZvY3VzT3V0LCB0cnVlKTtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9vbktleURvd24sIHRydWUpO1xuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGRvbS5nZXRBY3RpdmVFbGVtZW50KGRvYyk7XG5cbiAgICAgIGlmIChhY3RpdmVFbGVtZW50ICYmIGFjdGl2ZUVsZW1lbnQgIT09IGRvYy5ib2R5KSB7XG4gICAgICAgIHRoaXMuX3NldEZvY3VzZWRFbGVtZW50KGFjdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZWQpO1xuICAgIH07XG5cbiAgICB0aGlzLl9vbkZvY3VzSW4gPSBlID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGUuY29tcG9zZWRQYXRoKClbMF07XG5cbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNlZEVsZW1lbnQodGFyZ2V0LCBlLmRldGFpbC5yZWxhdGVkVGFyZ2V0LCBlLmRldGFpbC5pc0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25Gb2N1c091dCA9IGUgPT4ge1xuICAgICAgdmFyIF9hO1xuXG4gICAgICB0aGlzLl9zZXRGb2N1c2VkRWxlbWVudCh1bmRlZmluZWQsIChfYSA9IGUuZGV0YWlsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub3JpZ2luYWxFdmVudC5yZWxhdGVkVGFyZ2V0KTtcbiAgICB9OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cblxuICAgIHRoaXMuX3ZhbGlkYXRlRm9jdXNlZEVsZW1lbnQgPSBlbGVtZW50ID0+IHsvLyBUT0RPOiBNYWtlIHN1cmUgdGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUgYW5kIHdyaXRlIHRlc3RzLlxuICAgIH07XG5cbiAgICB0aGlzLl9vbktleURvd24gPSBldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ICE9PSBLZXlzLlRhYiB8fCBldmVudC5jdHJsS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLmdldFZhbCgpO1xuXG4gICAgICBpZiAoIWN1cnJlbnRFbGVtZW50IHx8ICFjdXJyZW50RWxlbWVudC5vd25lckRvY3VtZW50IHx8IGN1cnJlbnRFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0YWJzdGVyID0gdGhpcy5fdGFic3RlcjtcbiAgICAgIGNvbnN0IGNvbnRyb2xUYWIgPSB0YWJzdGVyLmNvbnRyb2xUYWI7XG4gICAgICBjb25zdCBjdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRhYnN0ZXIsIGN1cnJlbnRFbGVtZW50KTtcblxuICAgICAgaWYgKCFjdHggfHwgY3R4Lmlnbm9yZUtleWRvd24oZXZlbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNCYWNrd2FyZCA9IGV2ZW50LnNoaWZ0S2V5O1xuICAgICAgY29uc3QgbmV4dCA9IEZvY3VzZWRFbGVtZW50U3RhdGUuZmluZE5leHRUYWJiYWJsZSh0YWJzdGVyLCBjdHgsIHVuZGVmaW5lZCwgY3VycmVudEVsZW1lbnQsIHVuZGVmaW5lZCwgaXNCYWNrd2FyZCwgdHJ1ZSk7XG4gICAgICBjb25zdCByb290RWxlbWVudCA9IGN0eC5yb290LmdldEVsZW1lbnQoKTtcblxuICAgICAgaWYgKCFyb290RWxlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5leHRFbGVtZW50ID0gbmV4dCA9PT0gbnVsbCB8fCBuZXh0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0LmVsZW1lbnQ7XG4gICAgICBjb25zdCB1bmNvbnRyb2xsZWRDb21wbGV0ZWx5Q29udGFpbmVyID0gZ2V0VW5jb250cm9sbGVkQ29tcGxldGVseUNvbnRhaW5lcih0YWJzdGVyLCBjdXJyZW50RWxlbWVudCk7XG5cbiAgICAgIGlmIChuZXh0RWxlbWVudCkge1xuICAgICAgICBjb25zdCBuZXh0VW5jb250cm9sbGVkID0gbmV4dC51bmNvbnRyb2xsZWQ7XG5cbiAgICAgICAgaWYgKGN0eC51bmNvbnRyb2xsZWQgfHwgZG9tLm5vZGVDb250YWlucyhuZXh0VW5jb250cm9sbGVkLCBjdXJyZW50RWxlbWVudCkpIHtcbiAgICAgICAgICBpZiAoIW5leHQub3V0T2ZET01PcmRlciAmJiBuZXh0VW5jb250cm9sbGVkID09PSBjdHgudW5jb250cm9sbGVkIHx8IHVuY29udHJvbGxlZENvbXBsZXRlbHlDb250YWluZXIgJiYgIWRvbS5ub2RlQ29udGFpbnModW5jb250cm9sbGVkQ29tcGxldGVseUNvbnRhaW5lciwgbmV4dEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvLCBldmVyeXRoaW5nIHdpbGwgYmUgZG9uZSBieSB0aGUgYnJvd3NlciBvciBzb21ldGhpbmdcbiAgICAgICAgICAgIC8vIHRoYXQgY29udHJvbHMgdGhlIHVuY29udHJvbGxlZCBhcmVhLlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gLy8gV2UgYXJlIGluIHVuY29udHJvbGxlZCBhcmVhLiBXZSBhbGxvdyB3aGF0ZXZlciBjb250cm9scyBpdCB0byBtb3ZlXG4gICAgICAgICAgLy8gZm9jdXMsIGJ1dCB3ZSBhZGQgYSBwaGFudG9tIGR1bW15IHRvIG1ha2Ugc3VyZSB0aGUgZm9jdXMgaXMgbW92ZWRcbiAgICAgICAgICAvLyB0byB0aGUgY29ycmVjdCBwbGFjZSBpZiB0aGUgdW5jb250cm9sbGVkIGFyZWEgYWxsb3dzIGRlZmF1bHQgYWN0aW9uLlxuICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0aGF0IGluIHRoZSBjb250cm9sbGVkIG1vZGUsIGJlY2F1c2UgaW4gdW5jb250cm9sbGVkXG4gICAgICAgICAgLy8gbW9kZSB3ZSBoYXZlIGR1bW15IGlucHV0cyBhcm91bmQgZXZlcnl0aGluZyB0aGF0IHJlZGlyZWN0cyBmb2N1cy5cblxuXG4gICAgICAgICAgRHVtbXlJbnB1dE1hbmFnZXIuYWRkUGhhbnRvbUR1bW15V2l0aFRhcmdldCh0YWJzdGVyLCBjdXJyZW50RWxlbWVudCwgaXNCYWNrd2FyZCwgbmV4dEVsZW1lbnQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0VW5jb250cm9sbGVkIHx8IG5leHRFbGVtZW50LnRhZ05hbWUgPT09IFwiSUZSQU1FXCIpIHtcbiAgICAgICAgICAvLyBGb3IgaWZyYW1lcyBhbmQgdW5jb250cm9sbGVkIGFyZWFzIHdlIGFsd2F5cyB3YW50IHRvIHVzZSBkZWZhdWx0IGFjdGlvbiB0b1xuICAgICAgICAgIC8vIG1vdmUgZm9jdXMgaW50by5cbiAgICAgICAgICBpZiAocm9vdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgVGFic3Rlck1vdmVGb2N1c0V2ZW50KHtcbiAgICAgICAgICAgIGJ5OiBcInJvb3RcIixcbiAgICAgICAgICAgIG93bmVyOiByb290RWxlbWVudCxcbiAgICAgICAgICAgIG5leHQ6IG5leHRFbGVtZW50LFxuICAgICAgICAgICAgcmVsYXRlZEV2ZW50OiBldmVudFxuICAgICAgICAgIH0pKSkge1xuICAgICAgICAgICAgRHVtbXlJbnB1dE1hbmFnZXIubW92ZVdpdGhQaGFudG9tRHVtbXkodGhpcy5fdGFic3RlciwgbmV4dFVuY29udHJvbGxlZCAhPT0gbnVsbCAmJiBuZXh0VW5jb250cm9sbGVkICE9PSB2b2lkIDAgPyBuZXh0VW5jb250cm9sbGVkIDogbmV4dEVsZW1lbnQsIGZhbHNlLCBpc0JhY2t3YXJkLCBldmVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRyb2xUYWIgfHwgKG5leHQgPT09IG51bGwgfHwgbmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dC5vdXRPZkRPTU9yZGVyKSkge1xuICAgICAgICAgIGlmIChyb290RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBUYWJzdGVyTW92ZUZvY3VzRXZlbnQoe1xuICAgICAgICAgICAgYnk6IFwicm9vdFwiLFxuICAgICAgICAgICAgb3duZXI6IHJvb3RFbGVtZW50LFxuICAgICAgICAgICAgbmV4dDogbmV4dEVsZW1lbnQsXG4gICAgICAgICAgICByZWxhdGVkRXZlbnQ6IGV2ZW50XG4gICAgICAgICAgfSkpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBuYXRpdmVGb2N1cyhuZXh0RWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXVuY29udHJvbGxlZENvbXBsZXRlbHlDb250YWluZXIgJiYgcm9vdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgVGFic3Rlck1vdmVGb2N1c0V2ZW50KHtcbiAgICAgICAgICBieTogXCJyb290XCIsXG4gICAgICAgICAgb3duZXI6IHJvb3RFbGVtZW50LFxuICAgICAgICAgIG5leHQ6IG51bGwsXG4gICAgICAgICAgcmVsYXRlZEV2ZW50OiBldmVudFxuICAgICAgICB9KSkpIHtcbiAgICAgICAgICBjdHgucm9vdC5tb3ZlT3V0V2l0aERlZmF1bHRBY3Rpb24oaXNCYWNrd2FyZCwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX29uQ2hhbmdlZCA9IChlbGVtZW50LCBkZXRhaWwpID0+IHtcbiAgICAgIHZhciBfYSwgX2I7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgVGFic3RlckZvY3VzSW5FdmVudChkZXRhaWwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhc3QgPSAoX2EgPSB0aGlzLl9sYXN0VmFsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KCk7XG5cbiAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICBjb25zdCBkID0geyAuLi5kZXRhaWxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGxhc3RDdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRoaXMuX3RhYnN0ZXIsIGxhc3QpO1xuICAgICAgICAgIGNvbnN0IG1vZGFsaXplcklkID0gKF9iID0gbGFzdEN0eCA9PT0gbnVsbCB8fCBsYXN0Q3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsYXN0Q3R4Lm1vZGFsaXplcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnVzZXJJZDtcblxuICAgICAgICAgIGlmIChtb2RhbGl6ZXJJZCkge1xuICAgICAgICAgICAgZC5tb2RhbGl6ZXJJZCA9IG1vZGFsaXplcklkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxhc3QuZGlzcGF0Y2hFdmVudChuZXcgVGFic3RlckZvY3VzT3V0RXZlbnQoZCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX3dpbiA9IGdldFdpbmRvdztcbiAgICB0YWJzdGVyLnF1ZXVlSW5pdCh0aGlzLl9pbml0KTtcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgc3VwZXIuZGlzcG9zZSgpO1xuXG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICBjb25zdCBkb2MgPSB3aW4uZG9jdW1lbnQ7XG4gICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoS0VZQk9SR19GT0NVU0lOLCB0aGlzLl9vbkZvY3VzSW4sIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNPVVQsIHRoaXMuX29uRm9jdXNPdXQsIHRydWUpO1xuICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9vbktleURvd24sIHRydWUpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VkKTtcbiAgICBjb25zdCBhc3luY0ZvY3VzID0gdGhpcy5fYXN5bmNGb2N1cztcblxuICAgIGlmIChhc3luY0ZvY3VzKSB7XG4gICAgICB3aW4uY2xlYXJUaW1lb3V0KGFzeW5jRm9jdXMudGltZW91dCk7XG4gICAgICBkZWxldGUgdGhpcy5fYXN5bmNGb2N1cztcbiAgICB9XG5cbiAgICBkZWxldGUgRm9jdXNlZEVsZW1lbnRTdGF0ZS5fbGFzdFJlc2V0RWxlbWVudDtcbiAgICBkZWxldGUgdGhpcy5fbmV4dFZhbDtcbiAgICBkZWxldGUgdGhpcy5fbGFzdFZhbDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JnZXRNZW1vcml6ZWQoaW5zdGFuY2UsIHBhcmVudCkge1xuICAgIHZhciBfYSwgX2I7XG5cbiAgICBsZXQgd2VsID0gRm9jdXNlZEVsZW1lbnRTdGF0ZS5fbGFzdFJlc2V0RWxlbWVudDtcbiAgICBsZXQgZWwgPSB3ZWwgJiYgd2VsLmdldCgpO1xuXG4gICAgaWYgKGVsICYmIGRvbS5ub2RlQ29udGFpbnMocGFyZW50LCBlbCkpIHtcbiAgICAgIGRlbGV0ZSBGb2N1c2VkRWxlbWVudFN0YXRlLl9sYXN0UmVzZXRFbGVtZW50O1xuICAgIH1cblxuICAgIGVsID0gKF9iID0gKF9hID0gaW5zdGFuY2UuX25leHRWYWwpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZ2V0KCk7XG5cbiAgICBpZiAoZWwgJiYgZG9tLm5vZGVDb250YWlucyhwYXJlbnQsIGVsKSkge1xuICAgICAgZGVsZXRlIGluc3RhbmNlLl9uZXh0VmFsO1xuICAgIH1cblxuICAgIHdlbCA9IGluc3RhbmNlLl9sYXN0VmFsO1xuICAgIGVsID0gd2VsICYmIHdlbC5nZXQoKTtcblxuICAgIGlmIChlbCAmJiBkb20ubm9kZUNvbnRhaW5zKHBhcmVudCwgZWwpKSB7XG4gICAgICBkZWxldGUgaW5zdGFuY2UuX2xhc3RWYWw7XG4gICAgfVxuICB9XG5cbiAgZ2V0Rm9jdXNlZEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsKCk7XG4gIH1cblxuICBnZXRMYXN0Rm9jdXNlZEVsZW1lbnQoKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgbGV0IGVsID0gKF9hID0gdGhpcy5fbGFzdFZhbCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldCgpO1xuXG4gICAgaWYgKCFlbCB8fCBlbCAmJiAhZG9jdW1lbnRDb250YWlucyhlbC5vd25lckRvY3VtZW50LCBlbCkpIHtcbiAgICAgIHRoaXMuX2xhc3RWYWwgPSBlbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZWw7XG4gIH1cblxuICBmb2N1cyhlbGVtZW50LCBub0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5RmxhZywgbm9BY2Nlc3NpYmxlQ2hlY2spIHtcbiAgICBpZiAoIXRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsZW1lbnQsIG5vRm9jdXNlZFByb2dyYW1tYXRpY2FsbHlGbGFnLCBmYWxzZSwgbm9BY2Nlc3NpYmxlQ2hlY2spKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZWxlbWVudC5mb2N1cygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZm9jdXNEZWZhdWx0KGNvbnRhaW5lcikge1xuICAgIGNvbnN0IGVsID0gdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuZmluZERlZmF1bHQoe1xuICAgICAgY29udGFpbmVyXG4gICAgfSk7XG5cbiAgICBpZiAoZWwpIHtcbiAgICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZm9jdXMoZWwpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRGaXJzdE9yTGFzdFRhYmJhYmxlKGlzRmlyc3QsIHByb3BzKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgY29uc3Qge1xuICAgICAgY29udGFpbmVyLFxuICAgICAgaWdub3JlQWNjZXNzaWJpbGl0eVxuICAgIH0gPSBwcm9wcztcbiAgICBsZXQgdG9Gb2N1cztcblxuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGhpcy5fdGFic3RlciwgY29udGFpbmVyKTtcblxuICAgICAgaWYgKGN0eCkge1xuICAgICAgICB0b0ZvY3VzID0gKF9hID0gRm9jdXNlZEVsZW1lbnRTdGF0ZS5maW5kTmV4dFRhYmJhYmxlKHRoaXMuX3RhYnN0ZXIsIGN0eCwgY29udGFpbmVyLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgIWlzRmlyc3QsIGlnbm9yZUFjY2Vzc2liaWxpdHkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZWxlbWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9Gb2N1cyAmJiAhZG9tLm5vZGVDb250YWlucyhjb250YWluZXIsIHRvRm9jdXMpKSB7XG4gICAgICB0b0ZvY3VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0b0ZvY3VzIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIF9mb2N1c0ZpcnN0T3JMYXN0KGlzRmlyc3QsIHByb3BzKSB7XG4gICAgY29uc3QgdG9Gb2N1cyA9IHRoaXMuZ2V0Rmlyc3RPckxhc3RUYWJiYWJsZShpc0ZpcnN0LCBwcm9wcyk7XG5cbiAgICBpZiAodG9Gb2N1cykge1xuICAgICAgdGhpcy5mb2N1cyh0b0ZvY3VzLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb2N1c0ZpcnN0KHByb3BzKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzRmlyc3RPckxhc3QodHJ1ZSwgcHJvcHMpO1xuICB9XG5cbiAgZm9jdXNMYXN0KHByb3BzKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzRmlyc3RPckxhc3QoZmFsc2UsIHByb3BzKTtcbiAgfVxuXG4gIHJlc2V0Rm9jdXMoY29udGFpbmVyKSB7XG4gICAgaWYgKCF0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5pc1Zpc2libGUoY29udGFpbmVyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuaXNGb2N1c2FibGUoY29udGFpbmVyLCB0cnVlLCB0cnVlLCB0cnVlKSkge1xuICAgICAgY29uc3QgcHJldlRhYkluZGV4ID0gY29udGFpbmVyLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpO1xuICAgICAgY29uc3QgcHJldkFyaWFIaWRkZW4gPSBjb250YWluZXIuZ2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIik7XG4gICAgICBjb250YWluZXIudGFiSW5kZXggPSAtMTtcbiAgICAgIGNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCBcInRydWVcIik7XG4gICAgICBGb2N1c2VkRWxlbWVudFN0YXRlLl9sYXN0UmVzZXRFbGVtZW50ID0gbmV3IFdlYWtIVE1MRWxlbWVudCh0aGlzLl93aW4sIGNvbnRhaW5lcik7XG4gICAgICB0aGlzLmZvY3VzKGNvbnRhaW5lciwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICAgIHRoaXMuX3NldE9yUmVtb3ZlQXR0cmlidXRlKGNvbnRhaW5lciwgXCJ0YWJpbmRleFwiLCBwcmV2VGFiSW5kZXgpO1xuXG4gICAgICB0aGlzLl9zZXRPclJlbW92ZUF0dHJpYnV0ZShjb250YWluZXIsIFwiYXJpYS1oaWRkZW5cIiwgcHJldkFyaWFIaWRkZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzKGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXF1ZXN0QXN5bmNGb2N1cyhzb3VyY2UsIGNhbGxiYWNrLCBkZWxheSkge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMuX3RhYnN0ZXIuZ2V0V2luZG93KCk7XG5cbiAgICBjb25zdCBjdXJyZW50QXN5bmNGb2N1cyA9IHRoaXMuX2FzeW5jRm9jdXM7XG5cbiAgICBpZiAoY3VycmVudEFzeW5jRm9jdXMpIHtcbiAgICAgIGlmIChBc3luY0ZvY3VzSW50ZW50UHJpb3JpdHlCeVNvdXJjZVtzb3VyY2VdID4gQXN5bmNGb2N1c0ludGVudFByaW9yaXR5QnlTb3VyY2VbY3VycmVudEFzeW5jRm9jdXMuc291cmNlXSkge1xuICAgICAgICAvLyBQcmV2aW91c2x5IHJlZ2lzdGVyZWQgaW50ZW50IGhhcyBoaWdoZXIgcHJpb3JpdHkuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gTmV3IGludGVudCBoYXMgaGlnaGVyIHByaW9yaXR5LlxuXG5cbiAgICAgIHdpbi5jbGVhclRpbWVvdXQoY3VycmVudEFzeW5jRm9jdXMudGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5fYXN5bmNGb2N1cyA9IHtcbiAgICAgIHNvdXJjZSxcbiAgICAgIGNhbGxiYWNrLFxuICAgICAgdGltZW91dDogd2luLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9hc3luY0ZvY3VzID0gdW5kZWZpbmVkO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSwgZGVsYXkpXG4gICAgfTtcbiAgfVxuXG4gIGNhbmNlbEFzeW5jRm9jdXMoc291cmNlKSB7XG4gICAgY29uc3QgYXN5bmNGb2N1cyA9IHRoaXMuX2FzeW5jRm9jdXM7XG5cbiAgICBpZiAoKGFzeW5jRm9jdXMgPT09IG51bGwgfHwgYXN5bmNGb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXN5bmNGb2N1cy5zb3VyY2UpID09PSBzb3VyY2UpIHtcbiAgICAgIHRoaXMuX3RhYnN0ZXIuZ2V0V2luZG93KCkuY2xlYXJUaW1lb3V0KGFzeW5jRm9jdXMudGltZW91dCk7XG5cbiAgICAgIHRoaXMuX2FzeW5jRm9jdXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgX3NldE9yUmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIF9zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCByZWxhdGVkVGFyZ2V0LCBpc0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5KSB7XG4gICAgdmFyIF9hLCBfYjtcblxuICAgIGlmICh0aGlzLl90YWJzdGVyLl9ub29wKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGV0YWlsID0ge1xuICAgICAgcmVsYXRlZFRhcmdldFxuICAgIH07XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgY29uc3QgbGFzdFJlc2V0RWxlbWVudCA9IChfYSA9IEZvY3VzZWRFbGVtZW50U3RhdGUuX2xhc3RSZXNldEVsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKTtcbiAgICAgIEZvY3VzZWRFbGVtZW50U3RhdGUuX2xhc3RSZXNldEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChsYXN0UmVzZXRFbGVtZW50ID09PSBlbGVtZW50IHx8IHNob3VsZElnbm9yZUZvY3VzKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGV0YWlsLmlzRm9jdXNlZFByb2dyYW1tYXRpY2FsbHkgPSBpc0ZvY3VzZWRQcm9ncmFtbWF0aWNhbGx5O1xuICAgICAgY29uc3QgY3R4ID0gUm9vdEFQSS5nZXRUYWJzdGVyQ29udGV4dCh0aGlzLl90YWJzdGVyLCBlbGVtZW50KTtcbiAgICAgIGNvbnN0IG1vZGFsaXplcklkID0gKF9iID0gY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lm1vZGFsaXplcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnVzZXJJZDtcblxuICAgICAgaWYgKG1vZGFsaXplcklkKSB7XG4gICAgICAgIGRldGFpbC5tb2RhbGl6ZXJJZCA9IG1vZGFsaXplcklkO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5leHRWYWwgPSB0aGlzLl9uZXh0VmFsID0ge1xuICAgICAgZWxlbWVudDogZWxlbWVudCA/IG5ldyBXZWFrSFRNTEVsZW1lbnQodGhpcy5fd2luLCBlbGVtZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIGRldGFpbFxuICAgIH07XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50ICE9PSB0aGlzLl92YWwpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlRm9jdXNlZEVsZW1lbnQoZWxlbWVudCk7XG4gICAgfSAvLyBfdmFsaWRhdGVGb2N1c2VkRWxlbWVudCgpIG1pZ2h0IGNhdXNlIHRoZSByZWZvY3VzIHdoaWNoIHdpbGwgdHJpZ2dlclxuICAgIC8vIGFub3RoZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLiBNYWtpbmcgc3VyZSB0aGF0IHRoZSB2YWx1ZSBpcyBjb3JyZWN0LlxuXG5cbiAgICBpZiAodGhpcy5fbmV4dFZhbCA9PT0gbmV4dFZhbCkge1xuICAgICAgdGhpcy5zZXRWYWwoZWxlbWVudCwgZGV0YWlsKTtcbiAgICB9XG5cbiAgICB0aGlzLl9uZXh0VmFsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgc2V0VmFsKHZhbCwgZGV0YWlsKSB7XG4gICAgc3VwZXIuc2V0VmFsKHZhbCwgZGV0YWlsKTtcblxuICAgIGlmICh2YWwpIHtcbiAgICAgIHRoaXMuX2xhc3RWYWwgPSBuZXcgV2Vha0hUTUxFbGVtZW50KHRoaXMuX3dpbiwgdmFsKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmluZE5leHRUYWJiYWJsZSh0YWJzdGVyLCBjdHgsIGNvbnRhaW5lciwgY3VycmVudEVsZW1lbnQsIHJlZmVyZW5jZUVsZW1lbnQsIGlzQmFja3dhcmQsIGlnbm9yZUFjY2Vzc2liaWxpdHkpIHtcbiAgICBjb25zdCBhY3R1YWxDb250YWluZXIgPSBjb250YWluZXIgfHwgY3R4LnJvb3QuZ2V0RWxlbWVudCgpO1xuXG4gICAgaWYgKCFhY3R1YWxDb250YWluZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBuZXh0ID0gbnVsbDtcbiAgICBjb25zdCBpc1RhYmJpbmdUaW1lciA9IEZvY3VzZWRFbGVtZW50U3RhdGUuX2lzVGFiYmluZ1RpbWVyO1xuICAgIGNvbnN0IHdpbiA9IHRhYnN0ZXIuZ2V0V2luZG93KCk7XG5cbiAgICBpZiAoaXNUYWJiaW5nVGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQoaXNUYWJiaW5nVGltZXIpO1xuICAgIH1cblxuICAgIEZvY3VzZWRFbGVtZW50U3RhdGUuaXNUYWJiaW5nID0gdHJ1ZTtcbiAgICBGb2N1c2VkRWxlbWVudFN0YXRlLl9pc1RhYmJpbmdUaW1lciA9IHdpbi5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRlbGV0ZSBGb2N1c2VkRWxlbWVudFN0YXRlLl9pc1RhYmJpbmdUaW1lcjtcbiAgICAgIEZvY3VzZWRFbGVtZW50U3RhdGUuaXNUYWJiaW5nID0gZmFsc2U7XG4gICAgfSwgMCk7XG4gICAgY29uc3QgbW9kYWxpemVyID0gY3R4Lm1vZGFsaXplcjtcbiAgICBjb25zdCBncm91cHBlciA9IGN0eC5ncm91cHBlcjtcbiAgICBjb25zdCBtb3ZlciA9IGN0eC5tb3ZlcjtcblxuICAgIGNvbnN0IGNhbGxGaW5kTmV4dCA9IHdoYXQgPT4ge1xuICAgICAgbmV4dCA9IHdoYXQuZmluZE5leHRUYWJiYWJsZShjdXJyZW50RWxlbWVudCwgcmVmZXJlbmNlRWxlbWVudCwgaXNCYWNrd2FyZCwgaWdub3JlQWNjZXNzaWJpbGl0eSk7XG5cbiAgICAgIGlmIChjdXJyZW50RWxlbWVudCAmJiAhKG5leHQgPT09IG51bGwgfHwgbmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dC5lbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gd2hhdCAhPT0gbW9kYWxpemVyICYmIGRvbS5nZXRQYXJlbnRFbGVtZW50KHdoYXQuZ2V0RWxlbWVudCgpKTtcblxuICAgICAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgICAgIGNvbnN0IHBhcmVudEN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgY3VycmVudEVsZW1lbnQsIHtcbiAgICAgICAgICAgIHJlZmVyZW5jZUVsZW1lbnQ6IHBhcmVudEVsZW1lbnRcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY29wZUVsZW1lbnQgPSB3aGF0LmdldEVsZW1lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0N1cnJlbnQgPSBpc0JhY2t3YXJkID8gY3VycmVudFNjb3BlRWxlbWVudCA6IGN1cnJlbnRTY29wZUVsZW1lbnQgJiYgZ2V0TGFzdENoaWxkJDIoY3VycmVudFNjb3BlRWxlbWVudCkgfHwgY3VycmVudFNjb3BlRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKG5ld0N1cnJlbnQpIHtcbiAgICAgICAgICAgICAgbmV4dCA9IEZvY3VzZWRFbGVtZW50U3RhdGUuZmluZE5leHRUYWJiYWJsZSh0YWJzdGVyLCBwYXJlbnRDdHgsIGNvbnRhaW5lciwgbmV3Q3VycmVudCwgcGFyZW50RWxlbWVudCwgaXNCYWNrd2FyZCwgaWdub3JlQWNjZXNzaWJpbGl0eSk7XG5cbiAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICBuZXh0Lm91dE9mRE9NT3JkZXIgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChncm91cHBlciAmJiBtb3Zlcikge1xuICAgICAgY2FsbEZpbmROZXh0KGN0eC5ncm91cHBlckJlZm9yZU1vdmVyID8gZ3JvdXBwZXIgOiBtb3Zlcik7XG4gICAgfSBlbHNlIGlmIChncm91cHBlcikge1xuICAgICAgY2FsbEZpbmROZXh0KGdyb3VwcGVyKTtcbiAgICB9IGVsc2UgaWYgKG1vdmVyKSB7XG4gICAgICBjYWxsRmluZE5leHQobW92ZXIpO1xuICAgIH0gZWxzZSBpZiAobW9kYWxpemVyKSB7XG4gICAgICBjYWxsRmluZE5leHQobW9kYWxpemVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmluZFByb3BzID0ge1xuICAgICAgICBjb250YWluZXI6IGFjdHVhbENvbnRhaW5lcixcbiAgICAgICAgY3VycmVudEVsZW1lbnQsXG4gICAgICAgIHJlZmVyZW5jZUVsZW1lbnQsXG4gICAgICAgIGlnbm9yZUFjY2Vzc2liaWxpdHksXG4gICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZpbmRQcm9wc091dCA9IHt9O1xuICAgICAgY29uc3QgbmV4dEVsZW1lbnQgPSB0YWJzdGVyLmZvY3VzYWJsZVtpc0JhY2t3YXJkID8gXCJmaW5kUHJldlwiIDogXCJmaW5kTmV4dFwiXShmaW5kUHJvcHMsIGZpbmRQcm9wc091dCk7XG4gICAgICBuZXh0ID0ge1xuICAgICAgICBlbGVtZW50OiBuZXh0RWxlbWVudCxcbiAgICAgICAgb3V0T2ZET01PcmRlcjogZmluZFByb3BzT3V0Lm91dE9mRE9NT3JkZXIsXG4gICAgICAgIHVuY29udHJvbGxlZDogZmluZFByb3BzT3V0LnVuY29udHJvbGxlZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dDtcbiAgfVxuXG59XG5Gb2N1c2VkRWxlbWVudFN0YXRlLmlzVGFiYmluZyA9IGZhbHNlO1xuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5cbmNsYXNzIEdyb3VwcGVyRHVtbXlNYW5hZ2VyIGV4dGVuZHMgRHVtbXlJbnB1dE1hbmFnZXIge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50LCBncm91cHBlciwgdGFic3Rlciwgc3lzKSB7XG4gICAgc3VwZXIodGFic3RlciwgZWxlbWVudCwgRHVtbXlJbnB1dE1hbmFnZXJQcmlvcml0aWVzLkdyb3VwcGVyLCBzeXMsIHRydWUpO1xuXG4gICAgdGhpcy5fc2V0SGFuZGxlcnMoKGR1bW15SW5wdXQsIGlzQmFja3dhcmQsIHJlbGF0ZWRUYXJnZXQpID0+IHtcbiAgICAgIHZhciBfYSwgX2I7XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQuZ2V0KCk7XG4gICAgICBjb25zdCBpbnB1dCA9IGR1bW15SW5wdXQuaW5wdXQ7XG5cbiAgICAgIGlmIChjb250YWluZXIgJiYgaW5wdXQpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gUm9vdEFQSS5nZXRUYWJzdGVyQ29udGV4dCh0YWJzdGVyLCBpbnB1dCk7XG5cbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgIGxldCBuZXh0O1xuICAgICAgICAgIG5leHQgPSAoX2EgPSBncm91cHBlci5maW5kTmV4dFRhYmJhYmxlKHJlbGF0ZWRUYXJnZXQgfHwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGlzQmFja3dhcmQsIHRydWUpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZWxlbWVudDtcblxuICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgbmV4dCA9IChfYiA9IEZvY3VzZWRFbGVtZW50U3RhdGUuZmluZE5leHRUYWJiYWJsZSh0YWJzdGVyLCBjdHgsIHVuZGVmaW5lZCwgZHVtbXlJbnB1dC5pc091dHNpZGUgPyBpbnB1dCA6IGdldEFkamFjZW50RWxlbWVudChjb250YWluZXIsICFpc0JhY2t3YXJkKSwgdW5kZWZpbmVkLCBpc0JhY2t3YXJkLCB0cnVlKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmVsZW1lbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzKG5leHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1cblxuY2xhc3MgR3JvdXBwZXIgZXh0ZW5kcyBUYWJzdGVyUGFydCB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGVsZW1lbnQsIG9uRGlzcG9zZSwgcHJvcHMsIHN5cykge1xuICAgIHN1cGVyKHRhYnN0ZXIsIGVsZW1lbnQsIHByb3BzKTtcbiAgICB0aGlzLl9zaG91bGRUYWJJbnNpZGUgPSBmYWxzZTtcbiAgICB0aGlzLm1ha2VUYWJiYWJsZShmYWxzZSk7XG4gICAgdGhpcy5fb25EaXNwb3NlID0gb25EaXNwb3NlO1xuXG4gICAgaWYgKCF0YWJzdGVyLmNvbnRyb2xUYWIpIHtcbiAgICAgIHRoaXMuZHVtbXlNYW5hZ2VyID0gbmV3IEdyb3VwcGVyRHVtbXlNYW5hZ2VyKHRoaXMuX2VsZW1lbnQsIHRoaXMsIHRhYnN0ZXIsIHN5cyk7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICB0aGlzLl9vbkRpc3Bvc2UodGhpcyk7XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudC5nZXQoKTtcblxuICAgIChfYSA9IHRoaXMuZHVtbXlNYW5hZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcG9zZSgpO1xuICAgIGRlbGV0ZSB0aGlzLmR1bW15TWFuYWdlcjtcblxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgX3NldEluZm9ybWF0aXZlU3R5bGUkMSh0aGlzLl9lbGVtZW50LCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkZWxldGUgdGhpcy5fZmlyc3Q7XG4gIH1cblxuICBmaW5kTmV4dFRhYmJhYmxlKGN1cnJlbnRFbGVtZW50LCByZWZlcmVuY2VFbGVtZW50LCBpc0JhY2t3YXJkLCBpZ25vcmVBY2Nlc3NpYmlsaXR5KSB7XG4gICAgY29uc3QgZ3JvdXBwZXJFbGVtZW50ID0gdGhpcy5nZXRFbGVtZW50KCk7XG5cbiAgICBpZiAoIWdyb3VwcGVyRWxlbWVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudElzRHVtbXkgPSBnZXREdW1teUlucHV0Q29udGFpbmVyKGN1cnJlbnRFbGVtZW50KSA9PT0gZ3JvdXBwZXJFbGVtZW50O1xuXG4gICAgaWYgKCF0aGlzLl9zaG91bGRUYWJJbnNpZGUgJiYgY3VycmVudEVsZW1lbnQgJiYgZG9tLm5vZGVDb250YWlucyhncm91cHBlckVsZW1lbnQsIGN1cnJlbnRFbGVtZW50KSAmJiAhY3VycmVudElzRHVtbXkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgb3V0T2ZET01PcmRlcjogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBncm91cHBlckZpcnN0Rm9jdXNhYmxlID0gdGhpcy5nZXRGaXJzdCh0cnVlKTtcblxuICAgIGlmICghY3VycmVudEVsZW1lbnQgfHwgIWRvbS5ub2RlQ29udGFpbnMoZ3JvdXBwZXJFbGVtZW50LCBjdXJyZW50RWxlbWVudCkgfHwgY3VycmVudElzRHVtbXkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnQ6IGdyb3VwcGVyRmlyc3RGb2N1c2FibGUsXG4gICAgICAgIG91dE9mRE9NT3JkZXI6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdGFic3RlciA9IHRoaXMuX3RhYnN0ZXI7XG4gICAgbGV0IG5leHQgPSBudWxsO1xuICAgIGxldCBvdXRPZkRPTU9yZGVyID0gZmFsc2U7XG4gICAgbGV0IHVuY29udHJvbGxlZDtcblxuICAgIGlmICh0aGlzLl9zaG91bGRUYWJJbnNpZGUgJiYgZ3JvdXBwZXJGaXJzdEZvY3VzYWJsZSkge1xuICAgICAgY29uc3QgZmluZFByb3BzID0ge1xuICAgICAgICBjb250YWluZXI6IGdyb3VwcGVyRWxlbWVudCxcbiAgICAgICAgY3VycmVudEVsZW1lbnQsXG4gICAgICAgIHJlZmVyZW5jZUVsZW1lbnQsXG4gICAgICAgIGlnbm9yZUFjY2Vzc2liaWxpdHksXG4gICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGZpbmRQcm9wc091dCA9IHt9O1xuICAgICAgbmV4dCA9IHRhYnN0ZXIuZm9jdXNhYmxlW2lzQmFja3dhcmQgPyBcImZpbmRQcmV2XCIgOiBcImZpbmROZXh0XCJdKGZpbmRQcm9wcywgZmluZFByb3BzT3V0KTtcbiAgICAgIG91dE9mRE9NT3JkZXIgPSAhIWZpbmRQcm9wc091dC5vdXRPZkRPTU9yZGVyO1xuXG4gICAgICBpZiAoIW5leHQgJiYgdGhpcy5fcHJvcHMudGFiYmFiaWxpdHkgPT09IEdyb3VwcGVyVGFiYmFiaWxpdGllcy5MaW1pdGVkVHJhcEZvY3VzKSB7XG4gICAgICAgIG5leHQgPSB0YWJzdGVyLmZvY3VzYWJsZVtpc0JhY2t3YXJkID8gXCJmaW5kTGFzdFwiIDogXCJmaW5kRmlyc3RcIl0oe1xuICAgICAgICAgIGNvbnRhaW5lcjogZ3JvdXBwZXJFbGVtZW50LFxuICAgICAgICAgIGlnbm9yZUFjY2Vzc2liaWxpdHksXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICAgIH0sIGZpbmRQcm9wc091dCk7XG4gICAgICAgIG91dE9mRE9NT3JkZXIgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB1bmNvbnRyb2xsZWQgPSBmaW5kUHJvcHNPdXQudW5jb250cm9sbGVkO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50OiBuZXh0LFxuICAgICAgdW5jb250cm9sbGVkLFxuICAgICAgb3V0T2ZET01PcmRlclxuICAgIH07XG4gIH1cblxuICBtYWtlVGFiYmFibGUoaXNUYWJiYWJsZSkge1xuICAgIHRoaXMuX3Nob3VsZFRhYkluc2lkZSA9IGlzVGFiYmFibGUgfHwgIXRoaXMuX3Byb3BzLnRhYmJhYmlsaXR5O1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBfc2V0SW5mb3JtYXRpdmVTdHlsZSQxKHRoaXMuX2VsZW1lbnQsICF0aGlzLl9zaG91bGRUYWJJbnNpZGUpO1xuICAgIH1cbiAgfVxuXG4gIGlzQWN0aXZlKG5vSWZGaXJzdElzRm9jdXNlZCkge1xuICAgIHZhciBfYTtcblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnQoKSB8fCBudWxsO1xuICAgIGxldCBpc1BhcmVudEFjdGl2ZSA9IHRydWU7XG5cbiAgICBmb3IgKGxldCBlID0gZG9tLmdldFBhcmVudEVsZW1lbnQoZWxlbWVudCk7IGU7IGUgPSBkb20uZ2V0UGFyZW50RWxlbWVudChlKSkge1xuICAgICAgY29uc3QgZyA9IChfYSA9IGdldFRhYnN0ZXJPbkVsZW1lbnQodGhpcy5fdGFic3RlciwgZSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ncm91cHBlcjtcblxuICAgICAgaWYgKGcpIHtcbiAgICAgICAgaWYgKCFnLl9zaG91bGRUYWJJbnNpZGUpIHtcbiAgICAgICAgICBpc1BhcmVudEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHJldCA9IGlzUGFyZW50QWN0aXZlID8gdGhpcy5fcHJvcHMudGFiYmFiaWxpdHkgPyB0aGlzLl9zaG91bGRUYWJJbnNpZGUgOiBmYWxzZSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZXQgJiYgbm9JZkZpcnN0SXNGb2N1c2VkKSB7XG4gICAgICBjb25zdCBmb2N1c2VkID0gdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5nZXRGb2N1c2VkRWxlbWVudCgpO1xuXG4gICAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgICByZXQgPSBmb2N1c2VkICE9PSB0aGlzLmdldEZpcnN0KHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBnZXRGaXJzdChvckNvbnRhaW5lcikge1xuICAgIHZhciBfYTtcblxuICAgIGNvbnN0IGdyb3VwcGVyRWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudCgpO1xuICAgIGxldCBmaXJzdDtcblxuICAgIGlmIChncm91cHBlckVsZW1lbnQpIHtcbiAgICAgIGlmIChvckNvbnRhaW5lciAmJiB0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5pc0ZvY3VzYWJsZShncm91cHBlckVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBncm91cHBlckVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIGZpcnN0ID0gKF9hID0gdGhpcy5fZmlyc3QpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKTtcblxuICAgICAgaWYgKCFmaXJzdCkge1xuICAgICAgICBmaXJzdCA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmZpbmRGaXJzdCh7XG4gICAgICAgICAgY29udGFpbmVyOiBncm91cHBlckVsZW1lbnQsXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICAgIH0pIHx8IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgICB0aGlzLnNldEZpcnN0KGZpcnN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaXJzdDtcbiAgfVxuXG4gIHNldEZpcnN0KGVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdGhpcy5fZmlyc3QgPSBuZXcgV2Vha0hUTUxFbGVtZW50KHRoaXMuX3RhYnN0ZXIuZ2V0V2luZG93LCBlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMuX2ZpcnN0O1xuICAgIH1cbiAgfVxuXG4gIGFjY2VwdEVsZW1lbnQoZWxlbWVudCwgc3RhdGUpIHtcbiAgICBjb25zdCBjYWNoZWRHcm91cHBlcnMgPSBzdGF0ZS5jYWNoZWRHcm91cHBlcnM7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KHRoaXMuZ2V0RWxlbWVudCgpKTtcbiAgICBjb25zdCBwYXJlbnRDdHggPSBwYXJlbnRFbGVtZW50ICYmIFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGhpcy5fdGFic3RlciwgcGFyZW50RWxlbWVudCk7XG4gICAgY29uc3QgcGFyZW50Q3R4R3JvdXBwZXIgPSBwYXJlbnRDdHggPT09IG51bGwgfHwgcGFyZW50Q3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJlbnRDdHguZ3JvdXBwZXI7XG4gICAgY29uc3QgcGFyZW50R3JvdXBwZXIgPSAocGFyZW50Q3R4ID09PSBudWxsIHx8IHBhcmVudEN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50Q3R4Lmdyb3VwcGVyQmVmb3JlTW92ZXIpID8gcGFyZW50Q3R4R3JvdXBwZXIgOiB1bmRlZmluZWQ7XG4gICAgbGV0IHBhcmVudEdyb3VwcGVyRWxlbWVudDtcblxuICAgIGNvbnN0IGdldElzQWN0aXZlID0gZ3JvdXBwZXIgPT4ge1xuICAgICAgbGV0IGNhY2hlZCA9IGNhY2hlZEdyb3VwcGVyc1tncm91cHBlci5pZF07XG4gICAgICBsZXQgaXNBY3RpdmU7XG5cbiAgICAgIGlmIChjYWNoZWQpIHtcbiAgICAgICAgaXNBY3RpdmUgPSBjYWNoZWQuaXNBY3RpdmU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc0FjdGl2ZSA9IHRoaXMuaXNBY3RpdmUodHJ1ZSk7XG4gICAgICAgIGNhY2hlZCA9IGNhY2hlZEdyb3VwcGVyc1tncm91cHBlci5pZF0gPSB7XG4gICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlzQWN0aXZlO1xuICAgIH07XG5cbiAgICBpZiAocGFyZW50R3JvdXBwZXIpIHtcbiAgICAgIHBhcmVudEdyb3VwcGVyRWxlbWVudCA9IHBhcmVudEdyb3VwcGVyLmdldEVsZW1lbnQoKTtcblxuICAgICAgaWYgKCFnZXRJc0FjdGl2ZShwYXJlbnRHcm91cHBlcikgJiYgcGFyZW50R3JvdXBwZXJFbGVtZW50ICYmIHN0YXRlLmNvbnRhaW5lciAhPT0gcGFyZW50R3JvdXBwZXJFbGVtZW50ICYmIGRvbS5ub2RlQ29udGFpbnMoc3RhdGUuY29udGFpbmVyLCBwYXJlbnRHcm91cHBlckVsZW1lbnQpKSB7XG4gICAgICAgIC8vIERvIG5vdCBmYWxsIGludG8gYSBjaGlsZCBncm91cHBlciBvZiBpbmFjdGl2ZSBwYXJlbnQgZ3JvdXBwZXIgaWYgaXQncyBpbiB0aGUgc2NvcGUgb2YgdGhlIHNlYXJjaC5cbiAgICAgICAgc3RhdGUuc2tpcHBlZEZvY3VzYWJsZSA9IHRydWU7XG4gICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNBY3RpdmUgPSBnZXRJc0FjdGl2ZSh0aGlzKTtcbiAgICBjb25zdCBncm91cHBlckVsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnQoKTtcblxuICAgIGlmIChncm91cHBlckVsZW1lbnQpIHtcbiAgICAgIGlmIChpc0FjdGl2ZSAhPT0gdHJ1ZSkge1xuICAgICAgICBpZiAoZ3JvdXBwZXJFbGVtZW50ID09PSBlbGVtZW50ICYmIHBhcmVudEN0eEdyb3VwcGVyKSB7XG4gICAgICAgICAgaWYgKCFwYXJlbnRHcm91cHBlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHBhcmVudEdyb3VwcGVyRWxlbWVudCA9IHBhcmVudEN0eEdyb3VwcGVyLmdldEVsZW1lbnQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyZW50R3JvdXBwZXJFbGVtZW50ICYmICFnZXRJc0FjdGl2ZShwYXJlbnRDdHhHcm91cHBlcikgJiYgZG9tLm5vZGVDb250YWlucyhzdGF0ZS5jb250YWluZXIsIHBhcmVudEdyb3VwcGVyRWxlbWVudCkgJiYgcGFyZW50R3JvdXBwZXJFbGVtZW50ICE9PSBzdGF0ZS5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHN0YXRlLnNraXBwZWRGb2N1c2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBwZXJFbGVtZW50ICE9PSBlbGVtZW50ICYmIGRvbS5ub2RlQ29udGFpbnMoZ3JvdXBwZXJFbGVtZW50LCBlbGVtZW50KSkge1xuICAgICAgICAgIHN0YXRlLnNraXBwZWRGb2N1c2FibGUgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWNoZWQgPSBjYWNoZWRHcm91cHBlcnNbdGhpcy5pZF07XG4gICAgICAgIGxldCBmaXJzdDtcblxuICAgICAgICBpZiAoXCJmaXJzdFwiIGluIGNhY2hlZCkge1xuICAgICAgICAgIGZpcnN0ID0gY2FjaGVkLmZpcnN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpcnN0ID0gY2FjaGVkLmZpcnN0ID0gdGhpcy5nZXRGaXJzdCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaXJzdCAmJiBzdGF0ZS5hY2NlcHRDb25kaXRpb24oZmlyc3QpKSB7XG4gICAgICAgICAgc3RhdGUucmVqZWN0RWxlbWVudHNGcm9tID0gZ3JvdXBwZXJFbGVtZW50O1xuICAgICAgICAgIHN0YXRlLnNraXBwZWRGb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKGZpcnN0ICE9PSBzdGF0ZS5mcm9tKSB7XG4gICAgICAgICAgICBzdGF0ZS5mb3VuZCA9IHRydWU7XG4gICAgICAgICAgICBzdGF0ZS5mb3VuZEVsZW1lbnQgPSBmaXJzdDtcbiAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblxuY2xhc3MgR3JvdXBwZXJBUEkge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCBnZXRXaW5kb3cpIHtcbiAgICB0aGlzLl9jdXJyZW50ID0ge307XG4gICAgdGhpcy5fZ3JvdXBwZXJzID0ge307XG5cbiAgICB0aGlzLl9pbml0ID0gKCkgPT4ge1xuICAgICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7IC8vIE1ha2luZyBzdXJlIGdyb3VwcGVyJ3Mgb25Gb2N1cyBpcyBjYWxsZWQgYmVmb3JlIG1vZGFsaXplcidzIG9uRm9jdXMuXG5cblxuICAgICAgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5zdWJzY3JpYmVGaXJzdCh0aGlzLl9vbkZvY3VzKTtcblxuICAgICAgY29uc3QgZG9jID0gd2luLmRvY3VtZW50O1xuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGRvbS5nZXRBY3RpdmVFbGVtZW50KGRvYyk7XG5cbiAgICAgIGlmIChhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX29uRm9jdXMoYWN0aXZlRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuX29uTW91c2VEb3duLCB0cnVlKTtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9vbktleURvd24sIHRydWUpO1xuICAgICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoR3JvdXBwZXJNb3ZlRm9jdXNFdmVudE5hbWUsIHRoaXMuX29uTW92ZUZvY3VzKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fb25Hcm91cHBlckRpc3Bvc2UgPSBncm91cHBlciA9PiB7XG4gICAgICBkZWxldGUgdGhpcy5fZ3JvdXBwZXJzW2dyb3VwcGVyLmlkXTtcbiAgICB9O1xuXG4gICAgdGhpcy5fb25Gb2N1cyA9IGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudChlbGVtZW50LCB0cnVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25Nb3VzZURvd24gPSBlID0+IHtcbiAgICAgIGlmIChlLnRhcmdldCkge1xuICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50KGUudGFyZ2V0LCB0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25LZXlEb3duID0gZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gS2V5cy5FbnRlciAmJiBldmVudC5rZXkgIT09IEtleXMuRXNjYXBlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gR2l2ZSBhIGNoYW5jZSB0byBvdGhlciBsaXN0ZW5lcnMgdG8gaGFuZGxlIHRoZSBldmVudC5cblxuXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LmdldEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlS2V5UHJlc3MoZWxlbWVudCwgZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9vbk1vdmVGb2N1cyA9IGUgPT4ge1xuICAgICAgdmFyIF9hO1xuXG4gICAgICBjb25zdCBlbGVtZW50ID0gZS5jb21wb3NlZFBhdGgoKVswXTtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IChfYSA9IGUuZGV0YWlsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWN0aW9uO1xuXG4gICAgICBpZiAoZWxlbWVudCAmJiBhY3Rpb24gIT09IHVuZGVmaW5lZCAmJiAhZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIGlmIChhY3Rpb24gPT09IEdyb3VwcGVyTW92ZUZvY3VzQWN0aW9ucy5FbnRlcikge1xuICAgICAgICAgIHRoaXMuX2VudGVyR3JvdXBwZXIoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZXNjYXBlR3JvdXBwZXIoZWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl90YWJzdGVyID0gdGFic3RlcjtcbiAgICB0aGlzLl93aW4gPSBnZXRXaW5kb3c7XG4gICAgdGFic3Rlci5xdWV1ZUluaXQodGhpcy5faW5pdCk7XG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMuX3dpbigpO1xuXG4gICAgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5jYW5jZWxBc3luY0ZvY3VzKEFzeW5jRm9jdXNTb3VyY2VzLkVzY2FwZUdyb3VwcGVyKTtcblxuICAgIHRoaXMuX2N1cnJlbnQgPSB7fTtcblxuICAgIGlmICh0aGlzLl91cGRhdGVUaW1lcikge1xuICAgICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVUaW1lcik7XG4gICAgICBkZWxldGUgdGhpcy5fdXBkYXRlVGltZXI7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC51bnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzKTtcblxuICAgIHdpbi5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuX29uTW91c2VEb3duLCB0cnVlKTtcbiAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5fb25LZXlEb3duLCB0cnVlKTtcbiAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihHcm91cHBlck1vdmVGb2N1c0V2ZW50TmFtZSwgdGhpcy5fb25Nb3ZlRm9jdXMpO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuX2dyb3VwcGVycykuZm9yRWFjaChncm91cHBlcklkID0+IHtcbiAgICAgIGlmICh0aGlzLl9ncm91cHBlcnNbZ3JvdXBwZXJJZF0pIHtcbiAgICAgICAgdGhpcy5fZ3JvdXBwZXJzW2dyb3VwcGVySWRdLmRpc3Bvc2UoKTtcblxuICAgICAgICBkZWxldGUgdGhpcy5fZ3JvdXBwZXJzW2dyb3VwcGVySWRdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlR3JvdXBwZXIoZWxlbWVudCwgcHJvcHMsIHN5cykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JykgO1xuXG4gICAgY29uc3QgbmV3R3JvdXBwZXIgPSBuZXcgR3JvdXBwZXIodGhpcy5fdGFic3RlciwgZWxlbWVudCwgdGhpcy5fb25Hcm91cHBlckRpc3Bvc2UsIHByb3BzLCBzeXMpO1xuICAgIHRoaXMuX2dyb3VwcGVyc1tuZXdHcm91cHBlci5pZF0gPSBuZXdHcm91cHBlcjtcblxuICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5nZXRGb2N1c2VkRWxlbWVudCgpOyAvLyBOZXdseSBjcmVhdGVkIGdyb3VwcGVyIGNvbnRhaW5zIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQsIHVwZGF0ZSB0aGUgc3RhdGUgb24gdGhlIG5leHQgdGljayAodG9cbiAgICAvLyBtYWtlIHN1cmUgYWxsIGdyb3VwcGVycyBhcmUgcHJvY2Vzc2VkKS5cblxuXG4gICAgaWYgKGZvY3VzZWRFbGVtZW50ICYmIGRvbS5ub2RlQ29udGFpbnMoZWxlbWVudCwgZm9jdXNlZEVsZW1lbnQpICYmICF0aGlzLl91cGRhdGVUaW1lcikge1xuICAgICAgdGhpcy5fdXBkYXRlVGltZXIgPSB0aGlzLl93aW4oKS5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZVRpbWVyOyAvLyBNYWtpbmcgc3VyZSB0aGUgZm9jdXNlZCBlbGVtZW50IGhhc24ndCBjaGFuZ2VkLlxuXG4gICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCA9PT0gdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5nZXRGb2N1c2VkRWxlbWVudCgpKSB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudChmb2N1c2VkRWxlbWVudCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdHcm91cHBlcjtcbiAgfVxuXG4gIGZvcmdldEN1cnJlbnRHcm91cHBlcnMoKSB7XG4gICAgdGhpcy5fY3VycmVudCA9IHt9O1xuICB9XG5cbiAgX3VwZGF0ZUN1cnJlbnQoZWxlbWVudCwgaW5jbHVkZVRhcmdldCwgY2hlY2tUYXJnZXQpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBpZiAodGhpcy5fdXBkYXRlVGltZXIpIHtcbiAgICAgIHRoaXMuX3dpbigpLmNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVUaW1lcik7XG5cbiAgICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVUaW1lcjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdJZHMgPSB7fTtcbiAgICBsZXQgaXNUYXJnZXQgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgZWwgPSBlbGVtZW50OyBlbDsgZWwgPSBkb20uZ2V0UGFyZW50RWxlbWVudChlbCkpIHtcbiAgICAgIGNvbnN0IGdyb3VwcGVyID0gKF9hID0gZ2V0VGFic3Rlck9uRWxlbWVudCh0aGlzLl90YWJzdGVyLCBlbCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ncm91cHBlcjtcblxuICAgICAgaWYgKGdyb3VwcGVyKSB7XG4gICAgICAgIG5ld0lkc1tncm91cHBlci5pZF0gPSB0cnVlO1xuXG4gICAgICAgIGlmIChpc1RhcmdldCAmJiBjaGVja1RhcmdldCAmJiBlbCAhPT0gZWxlbWVudCkge1xuICAgICAgICAgIGlzVGFyZ2V0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5jbHVkZVRhcmdldCB8fCAhaXNUYXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50W2dyb3VwcGVyLmlkXSA9IGdyb3VwcGVyO1xuICAgICAgICAgIGNvbnN0IGlzVGFiYmFibGUgPSBncm91cHBlci5pc0FjdGl2ZSgpIHx8IGVsZW1lbnQgIT09IGVsICYmICghZ3JvdXBwZXIuZ2V0UHJvcHMoKS5kZWxlZ2F0ZWQgfHwgZ3JvdXBwZXIuZ2V0Rmlyc3QoZmFsc2UpICE9PSBlbGVtZW50KTtcbiAgICAgICAgICBncm91cHBlci5tYWtlVGFiYmFibGUoaXNUYWJiYWJsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpc1RhcmdldCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXModGhpcy5fY3VycmVudCkpIHtcbiAgICAgIGNvbnN0IGdyb3VwcGVyID0gdGhpcy5fY3VycmVudFtpZF07XG5cbiAgICAgIGlmICghKGdyb3VwcGVyLmlkIGluIG5ld0lkcykpIHtcbiAgICAgICAgZ3JvdXBwZXIubWFrZVRhYmJhYmxlKGZhbHNlKTtcbiAgICAgICAgZ3JvdXBwZXIuc2V0Rmlyc3QodW5kZWZpbmVkKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2N1cnJlbnRbaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9lbnRlckdyb3VwcGVyKGVsZW1lbnQsIHJlbGF0ZWRFdmVudCkge1xuICAgIGNvbnN0IHRhYnN0ZXIgPSB0aGlzLl90YWJzdGVyO1xuICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgZWxlbWVudCk7XG4gICAgY29uc3QgZ3JvdXBwZXIgPSAoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lmdyb3VwcGVyKSB8fCAoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lm1vZGFsaXplckluR3JvdXBwZXIpO1xuICAgIGNvbnN0IGdyb3VwcGVyRWxlbWVudCA9IGdyb3VwcGVyID09PSBudWxsIHx8IGdyb3VwcGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBncm91cHBlci5nZXRFbGVtZW50KCk7XG5cbiAgICBpZiAoZ3JvdXBwZXIgJiYgZ3JvdXBwZXJFbGVtZW50ICYmIChlbGVtZW50ID09PSBncm91cHBlckVsZW1lbnQgfHwgZ3JvdXBwZXIuZ2V0UHJvcHMoKS5kZWxlZ2F0ZWQgJiYgZWxlbWVudCA9PT0gZ3JvdXBwZXIuZ2V0Rmlyc3QoZmFsc2UpKSkge1xuICAgICAgY29uc3QgbmV4dCA9IHRhYnN0ZXIuZm9jdXNhYmxlLmZpbmROZXh0KHtcbiAgICAgICAgY29udGFpbmVyOiBncm91cHBlckVsZW1lbnQsXG4gICAgICAgIGN1cnJlbnRFbGVtZW50OiBlbGVtZW50LFxuICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobmV4dCAmJiAoIXJlbGF0ZWRFdmVudCB8fCByZWxhdGVkRXZlbnQgJiYgZ3JvdXBwZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IFRhYnN0ZXJNb3ZlRm9jdXNFdmVudCh7XG4gICAgICAgIGJ5OiBcImdyb3VwcGVyXCIsXG4gICAgICAgIG93bmVyOiBncm91cHBlckVsZW1lbnQsXG4gICAgICAgIG5leHQsXG4gICAgICAgIHJlbGF0ZWRFdmVudFxuICAgICAgfSkpKSkge1xuICAgICAgICBpZiAocmVsYXRlZEV2ZW50KSB7XG4gICAgICAgICAgLy8gV2hlbiB0aGUgYXBwbGljYXRpb24gaGFzbid0IHByZXZlbnRlZCBkZWZhdWx0LFxuICAgICAgICAgIC8vIHdlIGNvbnNpZGVyIHRoZSBldmVudCBjb21wbGV0ZWx5IGhhbmRsZWQsIGhlbmNlIHdlXG4gICAgICAgICAgLy8gcHJldmVudCB0aGUgaW5pdGlhbCBldmVudCdzIGRlZmF1bHQgYWN0aW9uIGFuZCBzdG9wXG4gICAgICAgICAgLy8gcHJvcGFnYXRpb24uXG4gICAgICAgICAgcmVsYXRlZEV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcmVsYXRlZEV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIF9lc2NhcGVHcm91cHBlcihlbGVtZW50LCByZWxhdGVkRXZlbnQsIGZyb21Nb2RhbGl6ZXIpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCB0YWJzdGVyID0gdGhpcy5fdGFic3RlcjtcbiAgICBjb25zdCBjdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRhYnN0ZXIsIGVsZW1lbnQpO1xuICAgIGNvbnN0IG1vZGFsaXplckluR3JvdXBwZXIgPSBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgubW9kYWxpemVySW5Hcm91cHBlcjtcbiAgICBsZXQgZ3JvdXBwZXIgPSAoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lmdyb3VwcGVyKSB8fCBtb2RhbGl6ZXJJbkdyb3VwcGVyO1xuICAgIGNvbnN0IGdyb3VwcGVyRWxlbWVudCA9IGdyb3VwcGVyID09PSBudWxsIHx8IGdyb3VwcGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBncm91cHBlci5nZXRFbGVtZW50KCk7XG5cbiAgICBpZiAoZ3JvdXBwZXIgJiYgZ3JvdXBwZXJFbGVtZW50ICYmIGRvbS5ub2RlQ29udGFpbnMoZ3JvdXBwZXJFbGVtZW50LCBlbGVtZW50KSkge1xuICAgICAgbGV0IG5leHQ7XG5cbiAgICAgIGlmIChlbGVtZW50ICE9PSBncm91cHBlckVsZW1lbnQgfHwgZnJvbU1vZGFsaXplcikge1xuICAgICAgICBuZXh0ID0gZ3JvdXBwZXIuZ2V0Rmlyc3QodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gZG9tLmdldFBhcmVudEVsZW1lbnQoZ3JvdXBwZXJFbGVtZW50KTtcbiAgICAgICAgY29uc3QgcGFyZW50Q3R4ID0gcGFyZW50RWxlbWVudCA/IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgcGFyZW50RWxlbWVudCkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGdyb3VwcGVyID0gcGFyZW50Q3R4ID09PSBudWxsIHx8IHBhcmVudEN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50Q3R4Lmdyb3VwcGVyO1xuICAgICAgICBuZXh0ID0gZ3JvdXBwZXIgPT09IG51bGwgfHwgZ3JvdXBwZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGdyb3VwcGVyLmdldEZpcnN0KHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmV4dCAmJiAoIXJlbGF0ZWRFdmVudCB8fCByZWxhdGVkRXZlbnQgJiYgZ3JvdXBwZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IFRhYnN0ZXJNb3ZlRm9jdXNFdmVudCh7XG4gICAgICAgIGJ5OiBcImdyb3VwcGVyXCIsXG4gICAgICAgIG93bmVyOiBncm91cHBlckVsZW1lbnQsXG4gICAgICAgIG5leHQsXG4gICAgICAgIHJlbGF0ZWRFdmVudFxuICAgICAgfSkpKSkge1xuICAgICAgICBpZiAoZ3JvdXBwZXIpIHtcbiAgICAgICAgICBncm91cHBlci5tYWtlVGFiYmFibGUoZmFsc2UpO1xuXG4gICAgICAgICAgaWYgKG1vZGFsaXplckluR3JvdXBwZXIpIHtcbiAgICAgICAgICAgIChfYSA9IHRhYnN0ZXIubW9kYWxpemVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0QWN0aXZlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIFRoaXMgcGFydCBoYXBwZW5zIGFzeW5jaHJvbm91c2x5IGluc2lkZSBzZXRUaW1lb3V0LFxuICAgICAgICAvLyBzbyBubyBuZWVkIHRvIHByZXZlbnQgZGVmYXVsdCBvciBzdG9wIHByb3BhZ2F0aW9uLlxuXG5cbiAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIG1vdmVGb2N1cyhlbGVtZW50LCBhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uID09PSBHcm91cHBlck1vdmVGb2N1c0FjdGlvbnMuRW50ZXIgPyB0aGlzLl9lbnRlckdyb3VwcGVyKGVsZW1lbnQpIDogdGhpcy5fZXNjYXBlR3JvdXBwZXIoZWxlbWVudCk7XG4gIH1cblxuICBoYW5kbGVLZXlQcmVzcyhlbGVtZW50LCBldmVudCwgZnJvbU1vZGFsaXplcikge1xuICAgIGNvbnN0IHRhYnN0ZXIgPSB0aGlzLl90YWJzdGVyO1xuICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgZWxlbWVudCk7XG5cbiAgICBpZiAoY3R4ICYmICgoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lmdyb3VwcGVyKSB8fCAoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lm1vZGFsaXplckluR3JvdXBwZXIpKSkge1xuICAgICAgdGFic3Rlci5mb2N1c2VkRWxlbWVudC5jYW5jZWxBc3luY0ZvY3VzKEFzeW5jRm9jdXNTb3VyY2VzLkVzY2FwZUdyb3VwcGVyKTtcblxuICAgICAgaWYgKGN0eC5pZ25vcmVLZXlkb3duKGV2ZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5rZXkgPT09IEtleXMuRW50ZXIpIHtcbiAgICAgICAgdGhpcy5fZW50ZXJHcm91cHBlcihlbGVtZW50LCBldmVudCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS2V5cy5Fc2NhcGUpIHtcbiAgICAgICAgLy8gV2Ugd2lsbCBoYW5kbGUgRXNjIGFzeW5jaHJvbm91c2x5LCBpZiBzb21ldGhpbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbGxcbiAgICAgICAgLy8gbW92ZSBmb2N1cyBkdXJpbmcgdGhlIGtleXByZXNzIGhhbmRsaW5nLCB3ZSB3aWxsIG5vdCBpbnRlcmZlcmUuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gdGFic3Rlci5mb2N1c2VkRWxlbWVudC5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICB0YWJzdGVyLmZvY3VzZWRFbGVtZW50LnJlcXVlc3RBc3luY0ZvY3VzKEFzeW5jRm9jdXNTb3VyY2VzLkVzY2FwZUdyb3VwcGVyLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ICE9PSB0YWJzdGVyLmZvY3VzZWRFbGVtZW50LmdldEZvY3VzZWRFbGVtZW50KCkgJiYgKCAvLyBBIHBhcnQgb2YgTW9kYWxpemVyIHRoYXQgaGFzIGNhbGxlZCB0aGlzIGhhbmRsZXIgdG8gZXNjYXBlIHRoZSBhY3RpdmUgZ3JvdXBwZXJcbiAgICAgICAgICAvLyBtaWdodCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIERPTSwgaWYgdGhlIGZvY3VzIGlzIG9uIGJvZHksIHdlIHN0aWxsIHdhbnQgdG8gaGFuZGxlIEVzYy5cbiAgICAgICAgICBmcm9tTW9kYWxpemVyICYmICFmb2N1c2VkRWxlbWVudCB8fCAhZnJvbU1vZGFsaXplcikpIHtcbiAgICAgICAgICAgIC8vIFNvbWV0aGluZyBlbHNlIGluIHRoZSBhcHBsaWNhdGlvbiBoYXMgbW92ZWQgZm9jdXMsIHdlIHdpbGwgbm90IGhhbmRsZSBFc2MuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fZXNjYXBlR3JvdXBwZXIoZWxlbWVudCwgZXZlbnQsIGZyb21Nb2RhbGl6ZXIpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5mdW5jdGlvbiBfc2V0SW5mb3JtYXRpdmVTdHlsZSQxKHdlYWtFbGVtZW50LCByZW1vdmUpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHdlYWtFbGVtZW50LmdldCgpO1xuXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGlmIChyZW1vdmUpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdGFic3Rlci1ncm91cHBlclwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLXRhYnN0ZXItZ3JvdXBwZXJcIiwgXCJ1bmxpbWl0ZWRcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNsYXNzIEtleWJvYXJkTmF2aWdhdGlvblN0YXRlIGV4dGVuZHMgU3Vic2NyaWJhYmxlIHtcbiAgY29uc3RydWN0b3IoZ2V0V2luZG93KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX29uQ2hhbmdlID0gaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkID0+IHtcbiAgICAgIHRoaXMuc2V0VmFsKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCwgdW5kZWZpbmVkKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fa2V5Ym9yZyA9IGNyZWF0ZUtleWJvcmcoZ2V0V2luZG93KCkpO1xuXG4gICAgdGhpcy5fa2V5Ym9yZy5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2UpO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICBzdXBlci5kaXNwb3NlKCk7XG5cbiAgICBpZiAodGhpcy5fa2V5Ym9yZykge1xuICAgICAgdGhpcy5fa2V5Ym9yZy51bnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZSk7XG5cbiAgICAgIGRpc3Bvc2VLZXlib3JnKHRoaXMuX2tleWJvcmcpO1xuICAgICAgZGVsZXRlIHRoaXMuX2tleWJvcmc7XG4gICAgfVxuICB9XG5cbiAgc2V0TmF2aWdhdGluZ1dpdGhLZXlib2FyZChpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpIHtcbiAgICB2YXIgX2E7XG5cbiAgICAoX2EgPSB0aGlzLl9rZXlib3JnKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0VmFsKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk7XG4gIH1cblxuICBpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgcmV0dXJuICEhKChfYSA9IHRoaXMuX2tleWJvcmcpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSk7XG4gIH1cblxufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5sZXQgX3dhc0ZvY3VzZWRDb3VudGVyID0gMDtcbmNvbnN0IF9hcmlhSGlkZGVuID0gXCJhcmlhLWhpZGRlblwiO1xuXG5mdW5jdGlvbiBfc2V0SW5mb3JtYXRpdmVTdHlsZSh3ZWFrRWxlbWVudCwgcmVtb3ZlLCBpbnRlcm5hbElkLCB1c2VySWQsIGlzQWN0aXZlLCB3YXNGb2N1c2VkKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB3ZWFrRWxlbWVudC5nZXQoKTtcblxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBpZiAocmVtb3ZlKSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRhYnN0ZXItbW9kYWxpemVyXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdGFic3Rlci1tb2RhbGl6ZXJcIiwgaW50ZXJuYWxJZCArIFwiLFwiICsgdXNlcklkICsgXCIsXCIgKyAoaXNBY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiKSArIFwiLFwiICsgXCIsXCIgKyAod2FzRm9jdXNlZCA/IGBmb2N1c2VkKCR7d2FzRm9jdXNlZH0pYCA6IFwibm90LWZvY3VzZWRcIikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXHJcbiAqIE1hbmFnZXMgdGhlIGR1bW15IGlucHV0cyBmb3IgdGhlIE1vZGFsaXplci5cclxuICovXG5cblxuY2xhc3MgTW9kYWxpemVyRHVtbXlNYW5hZ2VyIGV4dGVuZHMgRHVtbXlJbnB1dE1hbmFnZXIge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50LCB0YWJzdGVyLCBzeXMpIHtcbiAgICBzdXBlcih0YWJzdGVyLCBlbGVtZW50LCBEdW1teUlucHV0TWFuYWdlclByaW9yaXRpZXMuTW9kYWxpemVyLCBzeXMpO1xuXG4gICAgdGhpcy5fc2V0SGFuZGxlcnMoKGR1bW15SW5wdXQsIGlzQmFja3dhcmQpID0+IHtcbiAgICAgIHZhciBfYSwgX2I7XG5cbiAgICAgIGNvbnN0IGVsID0gZWxlbWVudC5nZXQoKTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsICYmICgoX2EgPSBSb290QVBJLmdldFJvb3QodGFic3RlciwgZWwpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudCgpKTtcbiAgICAgIGNvbnN0IGlucHV0ID0gZHVtbXlJbnB1dC5pbnB1dDtcbiAgICAgIGxldCB0b0ZvY3VzO1xuXG4gICAgICBpZiAoY29udGFpbmVyICYmIGlucHV0KSB7XG4gICAgICAgIGNvbnN0IGR1bW15Q29udGFpbmVyID0gZ2V0RHVtbXlJbnB1dENvbnRhaW5lcihpbnB1dCk7XG4gICAgICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgZHVtbXlDb250YWluZXIgfHwgaW5wdXQpO1xuXG4gICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICB0b0ZvY3VzID0gKF9iID0gRm9jdXNlZEVsZW1lbnRTdGF0ZS5maW5kTmV4dFRhYmJhYmxlKHRhYnN0ZXIsIGN0eCwgY29udGFpbmVyLCBpbnB1dCwgdW5kZWZpbmVkLCBpc0JhY2t3YXJkLCB0cnVlKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9Gb2N1cykge1xuICAgICAgICAgIG5hdGl2ZUZvY3VzKHRvRm9jdXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuXG5jbGFzcyBNb2RhbGl6ZXIgZXh0ZW5kcyBUYWJzdGVyUGFydCB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGVsZW1lbnQsIG9uRGlzcG9zZSwgcHJvcHMsIHN5cywgYWN0aXZlRWxlbWVudHMpIHtcbiAgICBzdXBlcih0YWJzdGVyLCBlbGVtZW50LCBwcm9wcyk7XG4gICAgdGhpcy5fd2FzRm9jdXNlZCA9IDA7XG4gICAgdGhpcy51c2VySWQgPSBwcm9wcy5pZDtcbiAgICB0aGlzLl9vbkRpc3Bvc2UgPSBvbkRpc3Bvc2U7XG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudHMgPSBhY3RpdmVFbGVtZW50cztcblxuICAgIGlmICghdGFic3Rlci5jb250cm9sVGFiKSB7XG4gICAgICB0aGlzLmR1bW15TWFuYWdlciA9IG5ldyBNb2RhbGl6ZXJEdW1teU1hbmFnZXIodGhpcy5fZWxlbWVudCwgdGFic3Rlciwgc3lzKTtcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIF9zZXRJbmZvcm1hdGl2ZVN0eWxlKHRoaXMuX2VsZW1lbnQsIGZhbHNlLCB0aGlzLmlkLCB0aGlzLnVzZXJJZCwgdGhpcy5faXNBY3RpdmUsIHRoaXMuX3dhc0ZvY3VzZWQpO1xuICAgIH1cbiAgfVxuXG4gIG1ha2VBY3RpdmUoaXNBY3RpdmUpIHtcbiAgICBpZiAodGhpcy5faXNBY3RpdmUgIT09IGlzQWN0aXZlKSB7XG4gICAgICB0aGlzLl9pc0FjdGl2ZSA9IGlzQWN0aXZlO1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudCgpO1xuXG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50cyA9IHRoaXMuX2FjdGl2ZUVsZW1lbnRzO1xuICAgICAgICBjb25zdCBpbmRleCA9IGFjdGl2ZUVsZW1lbnRzLm1hcChlID0+IGUuZ2V0KCkpLmluZGV4T2YoZWxlbWVudCk7XG5cbiAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgYWN0aXZlRWxlbWVudHMucHVzaChuZXcgV2Vha0hUTUxFbGVtZW50KHRoaXMuX3RhYnN0ZXIuZ2V0V2luZG93LCBlbGVtZW50KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBhY3RpdmVFbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgX3NldEluZm9ybWF0aXZlU3R5bGUodGhpcy5fZWxlbWVudCwgZmFsc2UsIHRoaXMuaWQsIHRoaXMudXNlcklkLCB0aGlzLl9pc0FjdGl2ZSwgdGhpcy5fd2FzRm9jdXNlZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2Rpc3BhdGNoRXZlbnQoaXNBY3RpdmUpO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzZWQobm9JbmNyZW1lbnQpIHtcbiAgICBpZiAoIW5vSW5jcmVtZW50KSB7XG4gICAgICB0aGlzLl93YXNGb2N1c2VkID0gKytfd2FzRm9jdXNlZENvdW50ZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3dhc0ZvY3VzZWQ7XG4gIH1cblxuICBzZXRQcm9wcyhwcm9wcykge1xuICAgIGlmIChwcm9wcy5pZCkge1xuICAgICAgdGhpcy51c2VySWQgPSBwcm9wcy5pZDtcbiAgICB9XG5cbiAgICB0aGlzLl9wcm9wcyA9IHsgLi4ucHJvcHNcbiAgICB9O1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICB0aGlzLm1ha2VBY3RpdmUoZmFsc2UpO1xuXG4gICAgdGhpcy5fb25EaXNwb3NlKHRoaXMpO1xuXG4gICAgKF9hID0gdGhpcy5kdW1teU1hbmFnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwb3NlKCk7XG4gICAgZGVsZXRlIHRoaXMuZHVtbXlNYW5hZ2VyO1xuICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnRzID0gW107XG5cbiAgICB0aGlzLl9yZW1vdmUoKTtcbiAgfVxuXG4gIGlzQWN0aXZlKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2lzQWN0aXZlO1xuICB9XG5cbiAgY29udGFpbnMoZWxlbWVudCkge1xuICAgIHJldHVybiBkb20ubm9kZUNvbnRhaW5zKHRoaXMuZ2V0RWxlbWVudCgpLCBlbGVtZW50KTtcbiAgfVxuXG4gIGZpbmROZXh0VGFiYmFibGUoY3VycmVudEVsZW1lbnQsIHJlZmVyZW5jZUVsZW1lbnQsIGlzQmFja3dhcmQsIGlnbm9yZUFjY2Vzc2liaWxpdHkpIHtcbiAgICB2YXIgX2EsIF9iO1xuXG4gICAgY29uc3QgbW9kYWxpemVyRWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudCgpO1xuXG4gICAgaWYgKCFtb2RhbGl6ZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB0YWJzdGVyID0gdGhpcy5fdGFic3RlcjtcbiAgICBsZXQgbmV4dCA9IG51bGw7XG4gICAgbGV0IG91dE9mRE9NT3JkZXIgPSBmYWxzZTtcbiAgICBsZXQgdW5jb250cm9sbGVkO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGN1cnJlbnRFbGVtZW50ICYmICgoX2EgPSBSb290QVBJLmdldFJvb3QodGFic3RlciwgY3VycmVudEVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudCgpKTtcblxuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnN0IGZpbmRQcm9wcyA9IHtcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICBjdXJyZW50RWxlbWVudCxcbiAgICAgICAgcmVmZXJlbmNlRWxlbWVudCxcbiAgICAgICAgaWdub3JlQWNjZXNzaWJpbGl0eSxcbiAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICB9O1xuICAgICAgY29uc3QgZmluZFByb3BzT3V0ID0ge307XG4gICAgICBuZXh0ID0gdGFic3Rlci5mb2N1c2FibGVbaXNCYWNrd2FyZCA/IFwiZmluZFByZXZcIiA6IFwiZmluZE5leHRcIl0oZmluZFByb3BzLCBmaW5kUHJvcHNPdXQpO1xuXG4gICAgICBpZiAoIW5leHQgJiYgdGhpcy5fcHJvcHMuaXNUcmFwcGVkICYmICgoX2IgPSB0YWJzdGVyLm1vZGFsaXplcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFjdGl2ZUlkKSkge1xuICAgICAgICBuZXh0ID0gdGFic3Rlci5mb2N1c2FibGVbaXNCYWNrd2FyZCA/IFwiZmluZExhc3RcIiA6IFwiZmluZEZpcnN0XCJdKHtcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgaWdub3JlQWNjZXNzaWJpbGl0eSxcbiAgICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWVcbiAgICAgICAgfSwgZmluZFByb3BzT3V0KTtcbiAgICAgICAgb3V0T2ZET01PcmRlciA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRPZkRPTU9yZGVyID0gISFmaW5kUHJvcHNPdXQub3V0T2ZET01PcmRlcjtcbiAgICAgIH1cblxuICAgICAgdW5jb250cm9sbGVkID0gZmluZFByb3BzT3V0LnVuY29udHJvbGxlZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxlbWVudDogbmV4dCxcbiAgICAgIHVuY29udHJvbGxlZCxcbiAgICAgIG91dE9mRE9NT3JkZXJcbiAgICB9O1xuICB9XG5cbiAgX2Rpc3BhdGNoRXZlbnQoaXNBY3RpdmUsIGFsbEVsZW1lbnRzKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudCgpO1xuICAgIGxldCBkZWZhdWx0UHJldmVudGVkID0gZmFsc2U7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgY29uc3QgZWxlbWVudHMgPSBhbGxFbGVtZW50cyA/IHRoaXMuX2FjdGl2ZUVsZW1lbnRzLm1hcChlID0+IGUuZ2V0KCkpIDogW2VsZW1lbnRdO1xuXG4gICAgICBmb3IgKGNvbnN0IGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICAgIGlmIChlbCkge1xuICAgICAgICAgIGNvbnN0IGV2ZW50RGV0YWlsID0ge1xuICAgICAgICAgICAgaWQ6IHRoaXMudXNlcklkLFxuICAgICAgICAgICAgZWxlbWVudFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBpc0FjdGl2ZSA/IG5ldyBNb2RhbGl6ZXJBY3RpdmVFdmVudChldmVudERldGFpbCkgOiBuZXcgTW9kYWxpemVySW5hY3RpdmVFdmVudChldmVudERldGFpbCk7XG4gICAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChldmVudCk7XG5cbiAgICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgZGVmYXVsdFByZXZlbnRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRQcmV2ZW50ZWQ7XG4gIH1cblxuICBfcmVtb3ZlKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgX3NldEluZm9ybWF0aXZlU3R5bGUodGhpcy5fZWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXG5jbGFzcyBNb2RhbGl6ZXJBUEkge1xuICBjb25zdHJ1Y3Rvcih0YWJzdGVyLCAvLyBAZGVwcmVjYXRlZCB1c2UgYWNjZXNzaWJsZUNoZWNrLlxuICBhbHdheXNBY2Nlc3NpYmxlU2VsZWN0b3IsIGFjY2Vzc2libGVDaGVjaykge1xuICAgIHRoaXMuX29uTW9kYWxpemVyRGlzcG9zZSA9IG1vZGFsaXplciA9PiB7XG4gICAgICBjb25zdCBpZCA9IG1vZGFsaXplci5pZDtcbiAgICAgIGNvbnN0IHVzZXJJZCA9IG1vZGFsaXplci51c2VySWQ7XG4gICAgICBjb25zdCBwYXJ0ID0gdGhpcy5fcGFydHNbdXNlcklkXTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9tb2RhbGl6ZXJzW2lkXTtcblxuICAgICAgaWYgKHBhcnQpIHtcbiAgICAgICAgZGVsZXRlIHBhcnRbaWRdO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXJ0KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5fcGFydHNbdXNlcklkXTtcblxuICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUlkID09PSB1c2VySWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX29uS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gS2V5cy5Fc2NhcGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0YWJzdGVyID0gdGhpcy5fdGFic3RlcjtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0YWJzdGVyLmZvY3VzZWRFbGVtZW50LmdldEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGFic3RlciwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1vZGFsaXplciA9IGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC5tb2RhbGl6ZXI7XG5cbiAgICAgICAgaWYgKGN0eCAmJiAhY3R4Lmdyb3VwcGVyICYmIChtb2RhbGl6ZXIgPT09IG51bGwgfHwgbW9kYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbGl6ZXIuaXNBY3RpdmUoKSkgJiYgIWN0eC5pZ25vcmVLZXlkb3duKGV2ZW50KSkge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZUlkID0gbW9kYWxpemVyLnVzZXJJZDtcblxuICAgICAgICAgIGlmIChhY3RpdmVJZCkge1xuICAgICAgICAgICAgY29uc3QgcGFydCA9IHRoaXMuX3BhcnRzW2FjdGl2ZUlkXTtcblxuICAgICAgICAgICAgaWYgKHBhcnQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZm9jdXNlZFNpbmNlID0gT2JqZWN0LmtleXMocGFydCkubWFwKGlkID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtID0gcGFydFtpZF07XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSBtLmdldEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBwZXI7XG5cbiAgICAgICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgIGdyb3VwcGVyID0gKF9hID0gZ2V0VGFic3Rlck9uRWxlbWVudCh0aGlzLl90YWJzdGVyLCBlbCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ncm91cHBlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbSAmJiBlbCAmJiBncm91cHBlciA/IHtcbiAgICAgICAgICAgICAgICAgIGVsLFxuICAgICAgICAgICAgICAgICAgZm9jdXNlZFNpbmNlOiBtLmZvY3VzZWQodHJ1ZSlcbiAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgZm9jdXNlZFNpbmNlOiAwXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSkuZmlsdGVyKGYgPT4gZi5mb2N1c2VkU2luY2UgPiAwKS5zb3J0KChhLCBiKSA9PiBhLmZvY3VzZWRTaW5jZSA+IGIuZm9jdXNlZFNpbmNlID8gLTEgOiBhLmZvY3VzZWRTaW5jZSA8IGIuZm9jdXNlZFNpbmNlID8gMSA6IDApO1xuXG4gICAgICAgICAgICAgIGlmIChmb2N1c2VkU2luY2UubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBwZXJFbGVtZW50ID0gZm9jdXNlZFNpbmNlWzBdLmVsO1xuXG4gICAgICAgICAgICAgICAgaWYgKGdyb3VwcGVyRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgKF9hID0gdGFic3Rlci5ncm91cHBlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhhbmRsZUtleVByZXNzKGdyb3VwcGVyRWxlbWVudCwgZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpYmVzIHRvIHRoZSBmb2N1cyBzdGF0ZSBhbmQgaGFuZGxlcyBtb2RhbGl6ZXIgcmVsYXRlZCBmb2N1cyBldmVudHNcclxuICAgICAqIEBwYXJhbSBmb2N1c2VkRWxlbWVudCAtIEVsZW1lbnQgdGhhdCBpcyBmb2N1c2VkXHJcbiAgICAgKiBAcGFyYW0gZGV0YWlsIC0gQWRkaXRpb25hbCBkYXRhIGFib3V0IHRoZSBmb2N1cyBldmVudFxyXG4gICAgICovXG5cblxuICAgIHRoaXMuX29uRm9jdXMgPSAoZm9jdXNlZEVsZW1lbnQsIGRldGFpbCkgPT4ge1xuICAgICAgdmFyIF9hLCBfYjtcblxuICAgICAgY29uc3QgY3R4ID0gZm9jdXNlZEVsZW1lbnQgJiYgUm9vdEFQSS5nZXRUYWJzdGVyQ29udGV4dCh0aGlzLl90YWJzdGVyLCBmb2N1c2VkRWxlbWVudCk7IC8vIE1vZGFsaXplciBiZWhhdmlvdXIgaXMgb3B0IGluLCBvbmx5IGFwcGx5IHRvIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIHRhYnN0ZXIgY29udGV4dFxuXG4gICAgICBpZiAoIWN0eCB8fCAhZm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhdWdtZW50ZWRNYXAgPSB0aGlzLl9hdWdNYXA7XG5cbiAgICAgIGZvciAobGV0IGUgPSBmb2N1c2VkRWxlbWVudDsgZTsgZSA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KGUpKSB7XG4gICAgICAgIC8vIElmIHRoZSBuZXdseSBmb2N1c2VkIGVsZW1lbnQgaXMgaW5zaWRlIHNvbWUgb2YgdGhlIGhpZGRlbiBjb250YWluZXJzLFxuICAgICAgICAvLyByZW1vdmUgYXJpYS1oaWRkZW4gZnJvbSB0aG9zZSBzeW5jaHJvbm91c2x5IGZvciB0aGUgc2NyZWVuIHJlYWRlcnNcbiAgICAgICAgLy8gdG8gYmUgYWJsZSB0byByZWFkIHRoZSBlbGVtZW50LiBUaGUgcmVzdCBvZiBhcmlhLWhpZGRlbnMsIHdpbGwgYmUgcmVtb3ZlZFxuICAgICAgICAvLyBhY3luY2hyb25vdXNseSBmb3IgdGhlIHNha2Ugb2YgcGVyZm9ybWFuY2UuXG4gICAgICAgIGlmIChhdWdtZW50ZWRNYXAuaGFzKGUpKSB7XG4gICAgICAgICAgYXVnbWVudGVkTWFwLmRlbGV0ZShlKTtcbiAgICAgICAgICBhdWdtZW50QXR0cmlidXRlKHRoaXMuX3RhYnN0ZXIsIGUsIF9hcmlhSGlkZGVuKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtb2RhbGl6ZXIgPSBjdHgubW9kYWxpemVyOyAvLyBBbiBpbmFjdGl2ZSBncm91cHBlciB3aXRoIHRoZSBtb2RhbGl6ZXIgb24gdGhlIHNhbWUgbm9kZSB3aWxsIG5vdCBnaXZlIHRoZSBtb2RhbGl6ZXJcbiAgICAgIC8vIGluIHRoZSBjb250ZXh0LCB5ZXQgd2Ugc3RpbGwgd2FudCB0byB0cmFjayB0aGF0IHRoZSBtb2RhbGl6ZXIncyBjb250YWluZXIgd2FzIGZvY3VzZWQuXG5cbiAgICAgIChfYiA9IG1vZGFsaXplciB8fCAoKF9hID0gZ2V0VGFic3Rlck9uRWxlbWVudCh0aGlzLl90YWJzdGVyLCBmb2N1c2VkRWxlbWVudCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tb2RhbGl6ZXIpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXNlZCgpO1xuXG4gICAgICBpZiAoKG1vZGFsaXplciA9PT0gbnVsbCB8fCBtb2RhbGl6ZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsaXplci51c2VySWQpID09PSB0aGlzLmFjdGl2ZUlkKSB7XG4gICAgICAgIHRoaXMuY3VycmVudElzT3RoZXJzQWNjZXNzaWJsZSA9IG1vZGFsaXplciA9PT0gbnVsbCB8fCBtb2RhbGl6ZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsaXplci5nZXRQcm9wcygpLmlzT3RoZXJzQWNjZXNzaWJsZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyBEZXZlbG9wZXJzIGNhbGxpbmcgYGVsZW1lbnQuZm9jdXMoKWAgc2hvdWxkIGNoYW5nZS9kZWFjdGl2YXRlIGFjdGl2ZSBtb2RhbGl6ZXJcblxuXG4gICAgICBpZiAoZGV0YWlsLmlzRm9jdXNlZFByb2dyYW1tYXRpY2FsbHkgfHwgdGhpcy5jdXJyZW50SXNPdGhlcnNBY2Nlc3NpYmxlIHx8IChtb2RhbGl6ZXIgPT09IG51bGwgfHwgbW9kYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbGl6ZXIuZ2V0UHJvcHMoKS5pc0Fsd2F5c0FjY2Vzc2libGUpKSB7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlKG1vZGFsaXplcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb2N1c2VkIG91dHNpZGUgb2YgdGhlIGFjdGl2ZSBtb2RhbGl6ZXIsIHRyeSBwdWxsIGZvY3VzIGJhY2sgdG8gY3VycmVudCBtb2RhbGl6ZXJcbiAgICAgICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICAgICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9yZXN0b3JlTW9kYWxpemVyRm9jdXNUaW1lcik7IC8vIFRPRE8gc29tZSByZW5kZXJpbmcgZnJhbWV3b3JrcyAoaS5lLiBSZWFjdCkgbWlnaHQgYXN5bmMgcmVyZW5kZXIgdGhlIERPTSBzbyB3ZSBuZWVkIHRvIHdhaXQgZm9yIGEgZHVyYXRpb25cbiAgICAgICAgLy8gRmlndXJlIG91dCBhIGJldHRlciB3YXkgb2YgZG9pbmcgdGhpcyByYXRoZXIgdGhhbiBhIDEwMG1zIHRpbWVvdXRcblxuICAgICAgICB0aGlzLl9yZXN0b3JlTW9kYWxpemVyRm9jdXNUaW1lciA9IHdpbi5zZXRUaW1lb3V0KCgpID0+IHRoaXMuX3Jlc3RvcmVNb2RhbGl6ZXJGb2N1cyhmb2N1c2VkRWxlbWVudCksIDEwMCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX3dpbiA9IHRhYnN0ZXIuZ2V0V2luZG93O1xuICAgIHRoaXMuX21vZGFsaXplcnMgPSB7fTtcbiAgICB0aGlzLl9wYXJ0cyA9IHt9O1xuICAgIHRoaXMuX2F1Z01hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdGhpcy5fYXVnID0gW107XG4gICAgdGhpcy5fYWx3YXlzQWNjZXNzaWJsZVNlbGVjdG9yID0gYWx3YXlzQWNjZXNzaWJsZVNlbGVjdG9yO1xuICAgIHRoaXMuX2FjY2Vzc2libGVDaGVjayA9IGFjY2Vzc2libGVDaGVjaztcbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRzID0gW107XG5cbiAgICBpZiAoIXRhYnN0ZXIuY29udHJvbFRhYikge1xuICAgICAgdGFic3Rlci5yb290LmFkZER1bW15SW5wdXRzKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5fb25LZXlEb3duLCB0cnVlKTtcbiAgICB0YWJzdGVyLnF1ZXVlSW5pdCgoKSA9PiB7XG4gICAgICB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5fb25LZXlEb3duLCB0cnVlKTsgLy8gRGlzcG9zZSBhbGwgbW9kYWxpemVycyBtYW5hZ2VkIGJ5IHRoZSBBUElcblxuICAgIE9iamVjdC5rZXlzKHRoaXMuX21vZGFsaXplcnMpLmZvckVhY2gobW9kYWxpemVySWQgPT4ge1xuICAgICAgaWYgKHRoaXMuX21vZGFsaXplcnNbbW9kYWxpemVySWRdKSB7XG4gICAgICAgIHRoaXMuX21vZGFsaXplcnNbbW9kYWxpemVySWRdLmRpc3Bvc2UoKTtcblxuICAgICAgICBkZWxldGUgdGhpcy5fbW9kYWxpemVyc1ttb2RhbGl6ZXJJZF07XG4gICAgICB9XG4gICAgfSk7XG4gICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9yZXN0b3JlTW9kYWxpemVyRm9jdXNUaW1lcik7XG4gICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9oaWRkZW5VcGRhdGVUaW1lcik7XG4gICAgdGhpcy5fcGFydHMgPSB7fTtcbiAgICBkZWxldGUgdGhpcy5hY3RpdmVJZDtcbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRzID0gW107XG4gICAgdGhpcy5fYXVnTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICB0aGlzLl9hdWcgPSBbXTtcblxuICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQudW5zdWJzY3JpYmUodGhpcy5fb25Gb2N1cyk7XG4gIH1cblxuICBjcmVhdGVNb2RhbGl6ZXIoZWxlbWVudCwgcHJvcHMsIHN5cykge1xuICAgIHZhciBfYTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JykgO1xuXG4gICAgY29uc3QgbW9kYWxpemVyID0gbmV3IE1vZGFsaXplcih0aGlzLl90YWJzdGVyLCBlbGVtZW50LCB0aGlzLl9vbk1vZGFsaXplckRpc3Bvc2UsIHByb3BzLCBzeXMsIHRoaXMuYWN0aXZlRWxlbWVudHMpO1xuICAgIGNvbnN0IGlkID0gbW9kYWxpemVyLmlkO1xuICAgIGNvbnN0IHVzZXJJZCA9IHByb3BzLmlkO1xuICAgIHRoaXMuX21vZGFsaXplcnNbaWRdID0gbW9kYWxpemVyO1xuICAgIGxldCBwYXJ0ID0gdGhpcy5fcGFydHNbdXNlcklkXTtcblxuICAgIGlmICghcGFydCkge1xuICAgICAgcGFydCA9IHRoaXMuX3BhcnRzW3VzZXJJZF0gPSB7fTtcbiAgICB9XG5cbiAgICBwYXJ0W2lkXSA9IG1vZGFsaXplcjsgLy8gQWRkaW5nIGEgbW9kYWxpemVyIHdoaWNoIGlzIGFscmVhZHkgZm9jdXNlZCwgYWN0aXZhdGUgaXRcblxuICAgIGlmIChkb20ubm9kZUNvbnRhaW5zKGVsZW1lbnQsIChfYSA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZ2V0Rm9jdXNlZEVsZW1lbnQoKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCkpIHtcbiAgICAgIGlmICh1c2VySWQgIT09IHRoaXMuYWN0aXZlSWQpIHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmUobW9kYWxpemVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1vZGFsaXplci5tYWtlQWN0aXZlKHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2RhbGl6ZXI7XG4gIH1cblxuICBpc0F1Z21lbnRlZChlbGVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1Z01hcC5oYXMoZWxlbWVudCk7XG4gIH1cblxuICBoaWRkZW5VcGRhdGUoKSB7XG4gICAgaWYgKHRoaXMuX2hpZGRlblVwZGF0ZVRpbWVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faGlkZGVuVXBkYXRlVGltZXIgPSB0aGlzLl93aW4oKS5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9oaWRkZW5VcGRhdGVUaW1lcjtcblxuICAgICAgdGhpcy5faGlkZGVuVXBkYXRlKCk7XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIHNldEFjdGl2ZShtb2RhbGl6ZXIpIHtcbiAgICBjb25zdCB1c2VySWQgPSBtb2RhbGl6ZXIgPT09IG51bGwgfHwgbW9kYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbGl6ZXIudXNlcklkO1xuICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5hY3RpdmVJZDtcblxuICAgIGlmIChhY3RpdmVJZCA9PT0gdXNlcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVJZCA9IHVzZXJJZDtcblxuICAgIGlmIChhY3RpdmVJZCkge1xuICAgICAgY29uc3QgcGFydCA9IHRoaXMuX3BhcnRzW2FjdGl2ZUlkXTtcblxuICAgICAgaWYgKHBhcnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhwYXJ0KSkge1xuICAgICAgICAgIHBhcnRbaWRdLm1ha2VBY3RpdmUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVzZXJJZCkge1xuICAgICAgY29uc3QgcGFydCA9IHRoaXMuX3BhcnRzW3VzZXJJZF07XG5cbiAgICAgIGlmIChwYXJ0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMocGFydCkpIHtcbiAgICAgICAgICBwYXJ0W2lkXS5tYWtlQWN0aXZlKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50SXNPdGhlcnNBY2Nlc3NpYmxlID0gbW9kYWxpemVyID09PSBudWxsIHx8IG1vZGFsaXplciA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW9kYWxpemVyLmdldFByb3BzKCkuaXNPdGhlcnNBY2Nlc3NpYmxlO1xuICAgIHRoaXMuaGlkZGVuVXBkYXRlKCk7XG4gIH1cblxuICBmb2N1cyhlbGVtZW50RnJvbU1vZGFsaXplciwgbm9Gb2N1c0ZpcnN0LCBub0ZvY3VzRGVmYXVsdCkge1xuICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGhpcy5fdGFic3RlciwgZWxlbWVudEZyb21Nb2RhbGl6ZXIpO1xuICAgIGNvbnN0IG1vZGFsaXplciA9IGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC5tb2RhbGl6ZXI7XG5cbiAgICBpZiAobW9kYWxpemVyKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZShtb2RhbGl6ZXIpO1xuICAgICAgY29uc3QgcHJvcHMgPSBtb2RhbGl6ZXIuZ2V0UHJvcHMoKTtcbiAgICAgIGNvbnN0IG1vZGFsaXplclJvb3QgPSBtb2RhbGl6ZXIuZ2V0RWxlbWVudCgpO1xuXG4gICAgICBpZiAobW9kYWxpemVyUm9vdCkge1xuICAgICAgICBpZiAobm9Gb2N1c0ZpcnN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBub0ZvY3VzRmlyc3QgPSBwcm9wcy5pc05vRm9jdXNGaXJzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbm9Gb2N1c0ZpcnN0ICYmIHRoaXMuX3RhYnN0ZXIua2V5Ym9hcmROYXZpZ2F0aW9uLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCgpICYmIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZm9jdXNGaXJzdCh7XG4gICAgICAgICAgY29udGFpbmVyOiBtb2RhbGl6ZXJSb290XG4gICAgICAgIH0pKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9Gb2N1c0RlZmF1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG5vRm9jdXNEZWZhdWx0ID0gcHJvcHMuaXNOb0ZvY3VzRGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbm9Gb2N1c0RlZmF1bHQgJiYgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC5mb2N1c0RlZmF1bHQobW9kYWxpemVyUm9vdCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQucmVzZXRGb2N1cyhtb2RhbGl6ZXJSb290KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRWxlbWVudCBpcyBub3QgaW4gTW9kYWxpemVyLlwiLCBlbGVtZW50RnJvbU1vZGFsaXplcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYWNjZXB0RWxlbWVudChlbGVtZW50LCBzdGF0ZSkge1xuICAgIHZhciBfYTtcblxuICAgIGNvbnN0IG1vZGFsaXplclVzZXJJZCA9IHN0YXRlLm1vZGFsaXplclVzZXJJZDtcbiAgICBjb25zdCBjdXJyZW50TW9kYWxpemVyID0gKF9hID0gc3RhdGUuY3VycmVudEN0eCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1vZGFsaXplcjtcblxuICAgIGlmIChtb2RhbGl6ZXJVc2VySWQpIHtcbiAgICAgIGZvciAoY29uc3QgZSBvZiB0aGlzLmFjdGl2ZUVsZW1lbnRzKSB7XG4gICAgICAgIGNvbnN0IGVsID0gZS5nZXQoKTtcblxuICAgICAgICBpZiAoZWwgJiYgKGRvbS5ub2RlQ29udGFpbnMoZWxlbWVudCwgZWwpIHx8IGVsID09PSBlbGVtZW50KSkge1xuICAgICAgICAgIC8vIFdlIGhhdmUgYSBwYXJ0IG9mIGN1cnJlbnRseSBhY3RpdmUgbW9kYWxpemVyIHNvbWV3aGVyZSBkZWVwZXIgaW4gdGhlIERPTSxcbiAgICAgICAgICAvLyBza2lwcGluZyBhbGwgb3RoZXIgY2hlY2tzLlxuICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmV0ID0gbW9kYWxpemVyVXNlcklkID09PSAoY3VycmVudE1vZGFsaXplciA9PT0gbnVsbCB8fCBjdXJyZW50TW9kYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdXJyZW50TW9kYWxpemVyLnVzZXJJZCkgfHwgIW1vZGFsaXplclVzZXJJZCAmJiAoY3VycmVudE1vZGFsaXplciA9PT0gbnVsbCB8fCBjdXJyZW50TW9kYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdXJyZW50TW9kYWxpemVyLmdldFByb3BzKCkuaXNBbHdheXNBY2Nlc3NpYmxlKSA/IHVuZGVmaW5lZCA6IE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG5cbiAgICBpZiAocmV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0YXRlLnNraXBwZWRGb2N1c2FibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBfaGlkZGVuVXBkYXRlKCkge1xuICAgIHZhciBfYTtcblxuICAgIGNvbnN0IHRhYnN0ZXIgPSB0aGlzLl90YWJzdGVyO1xuICAgIGNvbnN0IGJvZHkgPSB0YWJzdGVyLmdldFdpbmRvdygpLmRvY3VtZW50LmJvZHk7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmFjdGl2ZUlkO1xuICAgIGNvbnN0IHBhcnRzID0gdGhpcy5fcGFydHM7XG4gICAgY29uc3QgdmlzaWJsZUVsZW1lbnRzID0gW107XG4gICAgY29uc3QgaGlkZGVuRWxlbWVudHMgPSBbXTtcbiAgICBjb25zdCBhbHdheXNBY2Nlc3NpYmxlU2VsZWN0b3IgPSB0aGlzLl9hbHdheXNBY2Nlc3NpYmxlU2VsZWN0b3I7XG4gICAgY29uc3QgYWx3YXlzQWNjZXNzaWJsZUVsZW1lbnRzID0gYWx3YXlzQWNjZXNzaWJsZVNlbGVjdG9yID8gQXJyYXkuZnJvbShkb20ucXVlcnlTZWxlY3RvckFsbChib2R5LCBhbHdheXNBY2Nlc3NpYmxlU2VsZWN0b3IpKSA6IFtdO1xuICAgIGNvbnN0IGFjdGl2ZU1vZGFsaXplckVsZW1lbnRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHVzZXJJZCBvZiBPYmplY3Qua2V5cyhwYXJ0cykpIHtcbiAgICAgIGNvbnN0IG1vZGFsaXplclBhcnRzID0gcGFydHNbdXNlcklkXTtcblxuICAgICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhtb2RhbGl6ZXJQYXJ0cykpIHtcbiAgICAgICAgY29uc3QgbW9kYWxpemVyID0gbW9kYWxpemVyUGFydHNbaWRdO1xuICAgICAgICBjb25zdCBlbCA9IG1vZGFsaXplci5nZXRFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IHByb3BzID0gbW9kYWxpemVyLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IGlzQWx3YXlzQWNjZXNzaWJsZSA9IHByb3BzLmlzQWx3YXlzQWNjZXNzaWJsZTtcblxuICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICBpZiAodXNlcklkID09PSBhY3RpdmVJZCkge1xuICAgICAgICAgICAgYWN0aXZlTW9kYWxpemVyRWxlbWVudHMucHVzaChlbCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50SXNPdGhlcnNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICAgIHZpc2libGVFbGVtZW50cy5wdXNoKGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGlzQWx3YXlzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgYWx3YXlzQWNjZXNzaWJsZUVsZW1lbnRzLnB1c2goZWwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoaWRkZW5FbGVtZW50cy5wdXNoKGVsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhdWdtZW50ZWRNYXAgPSB0aGlzLl9hdWdNYXA7XG4gICAgY29uc3QgYWxsVmlzaWJsZUVsZW1lbnRzID0gdmlzaWJsZUVsZW1lbnRzLmxlbmd0aCA+IDAgPyBbLi4udmlzaWJsZUVsZW1lbnRzLCAuLi5hbHdheXNBY2Nlc3NpYmxlRWxlbWVudHNdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5ld0F1Z21lbnRlZCA9IFtdO1xuICAgIGNvbnN0IG5ld0F1Z21lbnRlZE1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBjb25zdCB0b2dnbGUgPSAoZWxlbWVudCwgaGlkZSkgPT4ge1xuICAgICAgdmFyIF9hO1xuXG4gICAgICBjb25zdCB0YWdOYW1lID0gZWxlbWVudC50YWdOYW1lO1xuXG4gICAgICBpZiAodGFnTmFtZSA9PT0gXCJTQ1JJUFRcIiB8fCB0YWdOYW1lID09PSBcIlNUWUxFXCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQgaXNBdWdtZW50ZWQgPSBmYWxzZTtcblxuICAgICAgaWYgKGF1Z21lbnRlZE1hcC5oYXMoZWxlbWVudCkpIHtcbiAgICAgICAgaWYgKGhpZGUpIHtcbiAgICAgICAgICBpc0F1Z21lbnRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXVnbWVudGVkTWFwLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgICBhdWdtZW50QXR0cmlidXRlKHRhYnN0ZXIsIGVsZW1lbnQsIF9hcmlhSGlkZGVuKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChoaWRlICYmICEoKF9hID0gdGhpcy5fYWNjZXNzaWJsZUNoZWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzLCBlbGVtZW50LCBhY3RpdmVNb2RhbGl6ZXJFbGVtZW50cykpICYmIGF1Z21lbnRBdHRyaWJ1dGUodGFic3RlciwgZWxlbWVudCwgX2FyaWFIaWRkZW4sIFwidHJ1ZVwiKSkge1xuICAgICAgICBhdWdtZW50ZWRNYXAuc2V0KGVsZW1lbnQsIHRydWUpO1xuICAgICAgICBpc0F1Z21lbnRlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0F1Z21lbnRlZCkge1xuICAgICAgICBuZXdBdWdtZW50ZWQucHVzaChuZXcgV2Vha0hUTUxFbGVtZW50KHRhYnN0ZXIuZ2V0V2luZG93LCBlbGVtZW50KSk7XG4gICAgICAgIG5ld0F1Z21lbnRlZE1hcC5zZXQoZWxlbWVudCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHdhbGsgPSBlbGVtZW50ID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgZm9yIChsZXQgZWwgPSBkb20uZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoZWxlbWVudCk7IGVsOyBlbCA9IGRvbS5nZXROZXh0RWxlbWVudFNpYmxpbmcoZWwpKSB7XG4gICAgICAgIGxldCBza2lwID0gZmFsc2U7XG4gICAgICAgIGxldCBjb250YWluc01vZGFsaXplciA9IGZhbHNlO1xuICAgICAgICBsZXQgY29udGFpbmVkQnlNb2RhbGl6ZXIgPSBmYWxzZTtcblxuICAgICAgICBpZiAoYWxsVmlzaWJsZUVsZW1lbnRzKSB7XG4gICAgICAgICAgY29uc3QgZWxQYXJlbnQgPSB0YWJzdGVyLmdldFBhcmVudChlbCk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGMgb2YgYWxsVmlzaWJsZUVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoZWwgPT09IGMpIHtcbiAgICAgICAgICAgICAgc2tpcCA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZG9tLm5vZGVDb250YWlucyhlbCwgYykpIHtcbiAgICAgICAgICAgICAgY29udGFpbnNNb2RhbGl6ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9tLm5vZGVDb250YWlucyhjLCBlbFBhcmVudCkpIHtcbiAgICAgICAgICAgICAgLy8gdGFic3Rlci5nZXRQYXJlbnQoKSBjb3VsZCBiZSBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24gdG9cbiAgICAgICAgICAgICAgLy8gaGFuZGxlLCBmb3IgZXhhbXBsZSwgdmlydHVhbCBwYXJlbnRzLiBNYWtpbmcgc3VyZSwgd2UgYXJlXG4gICAgICAgICAgICAgIC8vIG5vdCBzZXR0aW5nIGFyaWEtaGlkZGVuIG9uIGVsZW1lbnRzIHdoaWNoIGFyZSB2aXJ0dWFsbHlcbiAgICAgICAgICAgICAgLy8gaW5zaWRlIG1vZGFsaXplci5cbiAgICAgICAgICAgICAgY29udGFpbmVkQnlNb2RhbGl6ZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjb250YWluc01vZGFsaXplciB8fCAoKF9hID0gZWwuX190YWJzdGVyRWxlbWVudEZsYWdzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9EaXJlY3RBcmlhSGlkZGVuKSkge1xuICAgICAgICAgICAgd2FsayhlbCk7XG4gICAgICAgICAgfSBlbHNlIGlmICghc2tpcCAmJiAhY29udGFpbmVkQnlNb2RhbGl6ZXIpIHtcbiAgICAgICAgICAgIHRvZ2dsZShlbCwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRvZ2dsZShlbCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghYWxsVmlzaWJsZUVsZW1lbnRzKSB7XG4gICAgICBhbHdheXNBY2Nlc3NpYmxlRWxlbWVudHMuZm9yRWFjaChlID0+IHRvZ2dsZShlLCBmYWxzZSkpO1xuICAgIH1cblxuICAgIGhpZGRlbkVsZW1lbnRzLmZvckVhY2goZSA9PiB0b2dnbGUoZSwgdHJ1ZSkpO1xuXG4gICAgaWYgKGJvZHkpIHtcbiAgICAgIHdhbGsoYm9keSk7XG4gICAgfVxuXG4gICAgKF9hID0gdGhpcy5fYXVnKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubWFwKGUgPT4gZS5nZXQoKSkuZm9yRWFjaChlID0+IHtcbiAgICAgIGlmIChlICYmICFuZXdBdWdtZW50ZWRNYXAuZ2V0KGUpKSB7XG4gICAgICAgIHRvZ2dsZShlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fYXVnID0gbmV3QXVnbWVudGVkO1xuICAgIHRoaXMuX2F1Z01hcCA9IG5ld0F1Z21lbnRlZE1hcDtcbiAgfVxuICAvKipcclxuICAgKiBDYWxsZWQgd2hlbiBhbiBlbGVtZW50IGlzIGZvY3VzZWQgb3V0c2lkZSBvZiBhbiBhY3RpdmUgbW9kYWxpemVyLlxyXG4gICAqIEF0dGVtcHRzIHRvIHB1bGwgZm9jdXMgYmFjayBpbnRvIHRoZSBhY3RpdmUgbW9kYWxpemVyXHJcbiAgICogQHBhcmFtIG91dHNpZGVFbGVtZW50IC0gQW4gZWxlbWVudCBiZWluZyBmb2N1c2VkIG91dHNpZGUgb2YgdGhlIG1vZGFsaXplclxyXG4gICAqL1xuXG5cbiAgX3Jlc3RvcmVNb2RhbGl6ZXJGb2N1cyhvdXRzaWRlRWxlbWVudCkge1xuICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSBvdXRzaWRlRWxlbWVudCA9PT0gbnVsbCB8fCBvdXRzaWRlRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3V0c2lkZUVsZW1lbnQub3duZXJEb2N1bWVudDtcblxuICAgIGlmICghb3V0c2lkZUVsZW1lbnQgfHwgIW93bmVyRG9jdW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRoaXMuX3RhYnN0ZXIsIG91dHNpZGVFbGVtZW50KTtcbiAgICBjb25zdCBtb2RhbGl6ZXIgPSBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgubW9kYWxpemVyO1xuICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5hY3RpdmVJZDtcblxuICAgIGlmICghbW9kYWxpemVyICYmICFhY3RpdmVJZCB8fCBtb2RhbGl6ZXIgJiYgYWN0aXZlSWQgPT09IG1vZGFsaXplci51c2VySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgucm9vdC5nZXRFbGVtZW50KCk7XG5cbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBsZXQgdG9Gb2N1cyA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmZpbmRGaXJzdCh7XG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRvRm9jdXMpIHtcbiAgICAgICAgaWYgKG91dHNpZGVFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRvRm9jdXMpICYgZG9jdW1lbnQuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HKSB7XG4gICAgICAgICAgdG9Gb2N1cyA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmZpbmRMYXN0KHtcbiAgICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCF0b0ZvY3VzKSB7XG4gICAgICAgICAgICAvLyBUaGlzIG9ubHkgbWlnaHQgbWVhbiB0aGF0IGZpbmRGaXJzdC9maW5kTGFzdCBhcmUgYnVnZ3kgYW5kIGluY29uc2lzdGVudC5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNvbWV0aGluZyB3ZW50IHdyb25nLlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LmZvY3VzKHRvRm9jdXMpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IC8vIEN1cnJlbnQgTW9kYWxpemVyIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGZvY3VzYWJsZSBlbGVtZW50cy5cbiAgICAvLyBCbHVycmluZyB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCB3aGljaCBpcyBvdXRzaWRlIG9mIHRoZSBjdXJyZW50IE1vZGFsaXplci5cblxuXG4gICAgb3V0c2lkZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbn1cblxuLyohXHJcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbiAqL1xuXG5jb25zdCBfaW5wdXRTZWxlY3RvciA9IC8qI19fUFVSRV9fKi9bXCJpbnB1dFwiLCBcInRleHRhcmVhXCIsIFwiKltjb250ZW50ZWRpdGFibGVdXCJdLmpvaW4oXCIsIFwiKTtcblxuY2xhc3MgTW92ZXJEdW1teU1hbmFnZXIgZXh0ZW5kcyBEdW1teUlucHV0TWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIHRhYnN0ZXIsIGdldE1lbW9yaXplZCwgc3lzKSB7XG4gICAgc3VwZXIodGFic3RlciwgZWxlbWVudCwgRHVtbXlJbnB1dE1hbmFnZXJQcmlvcml0aWVzLk1vdmVyLCBzeXMpO1xuXG4gICAgdGhpcy5fb25Gb2N1c0R1bW15SW5wdXQgPSBkdW1teUlucHV0ID0+IHtcbiAgICAgIHZhciBfYSwgX2I7XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnQuZ2V0KCk7XG5cbiAgICAgIGNvbnN0IGlucHV0ID0gZHVtbXlJbnB1dC5pbnB1dDtcblxuICAgICAgaWYgKGNvbnRhaW5lciAmJiBpbnB1dCkge1xuICAgICAgICBjb25zdCBjdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRoaXMuX3RhYnN0ZXIsIGNvbnRhaW5lcik7XG4gICAgICAgIGxldCB0b0ZvY3VzO1xuXG4gICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICB0b0ZvY3VzID0gKF9hID0gRm9jdXNlZEVsZW1lbnRTdGF0ZS5maW5kTmV4dFRhYmJhYmxlKHRoaXMuX3RhYnN0ZXIsIGN0eCwgdW5kZWZpbmVkLCBpbnB1dCwgdW5kZWZpbmVkLCAhZHVtbXlJbnB1dC5pc0ZpcnN0LCB0cnVlKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZW1vcml6ZWQgPSAoX2IgPSB0aGlzLl9nZXRNZW1vcml6ZWQoKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldCgpO1xuXG4gICAgICAgIGlmIChtZW1vcml6ZWQgJiYgdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuaXNGb2N1c2FibGUobWVtb3JpemVkKSkge1xuICAgICAgICAgIHRvRm9jdXMgPSBtZW1vcml6ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9Gb2N1cykge1xuICAgICAgICAgIG5hdGl2ZUZvY3VzKHRvRm9jdXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX2dldE1lbW9yaXplZCA9IGdldE1lbW9yaXplZDtcblxuICAgIHRoaXMuX3NldEhhbmRsZXJzKHRoaXMuX29uRm9jdXNEdW1teUlucHV0KTtcbiAgfVxuXG59IC8vIFR5cGVTY3JpcHQgZW51bXMgcHJvZHVjZSBkZXByZXNzaW5nIEphdmFTY3JpcHQgY29kZSwgc28sIHdlJ3JlIGp1c3QgdXNpbmdcbi8vIGEgZmV3IG9sZCBzdHlsZSBjb25zdGFudHMgaGVyZS5cblxuXG5jb25zdCBfbW92ZXJVcGRhdGVBZGQgPSAxO1xuY29uc3QgX21vdmVyVXBkYXRlQXR0ciA9IDI7XG5jb25zdCBfbW92ZXJVcGRhdGVSZW1vdmUgPSAzO1xuY2xhc3MgTW92ZXIgZXh0ZW5kcyBUYWJzdGVyUGFydCB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGVsZW1lbnQsIG9uRGlzcG9zZSwgcHJvcHMsIHN5cykge1xuICAgIHZhciBfYTtcblxuICAgIHN1cGVyKHRhYnN0ZXIsIGVsZW1lbnQsIHByb3BzKTtcbiAgICB0aGlzLl92aXNpYmxlID0ge307XG5cbiAgICB0aGlzLl9vbkludGVyc2VjdGlvbiA9IGVudHJpZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgIGNvbnN0IGVsID0gZW50cnkudGFyZ2V0O1xuICAgICAgICBjb25zdCBpZCA9IGdldEVsZW1lbnRVSWQodGhpcy5fd2luLCBlbCk7XG4gICAgICAgIGxldCBuZXdWaXNpYmlsaXR5O1xuICAgICAgICBsZXQgZnVsbHlWaXNpYmxlID0gdGhpcy5fZnVsbHlWaXNpYmxlO1xuXG4gICAgICAgIGlmIChlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+PSAwLjI1KSB7XG4gICAgICAgICAgbmV3VmlzaWJpbGl0eSA9IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID49IDAuNzUgPyBWaXNpYmlsaXRpZXMuVmlzaWJsZSA6IFZpc2liaWxpdGllcy5QYXJ0aWFsbHlWaXNpYmxlO1xuXG4gICAgICAgICAgaWYgKG5ld1Zpc2liaWxpdHkgPT09IFZpc2liaWxpdGllcy5WaXNpYmxlKSB7XG4gICAgICAgICAgICBmdWxseVZpc2libGUgPSBpZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3VmlzaWJpbGl0eSA9IFZpc2liaWxpdGllcy5JbnZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fdmlzaWJsZVtpZF0gIT09IG5ld1Zpc2liaWxpdHkpIHtcbiAgICAgICAgICBpZiAobmV3VmlzaWJpbGl0eSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fdmlzaWJsZVtpZF07XG5cbiAgICAgICAgICAgIGlmIChmdWxseVZpc2libGUgPT09IGlkKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mdWxseVZpc2libGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVbaWRdID0gbmV3VmlzaWJpbGl0eTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bGx5VmlzaWJsZSA9IGZ1bGx5VmlzaWJsZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoZWwpO1xuXG4gICAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBNb3ZlclN0YXRlRXZlbnQoc3RhdGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fd2luID0gdGFic3Rlci5nZXRXaW5kb3c7XG4gICAgdGhpcy52aXNpYmlsaXR5VG9sZXJhbmNlID0gKF9hID0gcHJvcHMudmlzaWJpbGl0eVRvbGVyYW5jZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMC44O1xuXG4gICAgaWYgKHRoaXMuX3Byb3BzLnRyYWNrU3RhdGUgfHwgdGhpcy5fcHJvcHMudmlzaWJpbGl0eUF3YXJlKSB7XG4gICAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLl9vbkludGVyc2VjdGlvbiwge1xuICAgICAgICB0aHJlc2hvbGQ6IFswLCAwLjI1LCAwLjUsIDAuNzUsIDFdXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fb2JzZXJ2ZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fb25EaXNwb3NlID0gb25EaXNwb3NlO1xuXG4gICAgY29uc3QgZ2V0TWVtb3JpemVkID0gKCkgPT4gcHJvcHMubWVtb3JpemVDdXJyZW50ID8gdGhpcy5fY3VycmVudCA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghdGFic3Rlci5jb250cm9sVGFiKSB7XG4gICAgICB0aGlzLmR1bW15TWFuYWdlciA9IG5ldyBNb3ZlckR1bW15TWFuYWdlcih0aGlzLl9lbGVtZW50LCB0YWJzdGVyLCBnZXRNZW1vcml6ZWQsIHN5cyk7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICB0aGlzLl9vbkRpc3Bvc2UodGhpcyk7XG5cbiAgICBpZiAodGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICAgICAgZGVsZXRlIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyO1xuICAgIH1cblxuICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50O1xuICAgIGRlbGV0ZSB0aGlzLl9mdWxseVZpc2libGU7XG4gICAgZGVsZXRlIHRoaXMuX2FsbEVsZW1lbnRzO1xuICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVRdWV1ZTtcblxuICAgIGlmICh0aGlzLl91bm9ic2VydmUpIHtcbiAgICAgIHRoaXMuX3Vub2JzZXJ2ZSgpO1xuXG4gICAgICBkZWxldGUgdGhpcy5fdW5vYnNlcnZlO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbiA9IHRoaXMuX3dpbigpO1xuXG4gICAgaWYgKHRoaXMuX3NldEN1cnJlbnRUaW1lcikge1xuICAgICAgd2luLmNsZWFyVGltZW91dCh0aGlzLl9zZXRDdXJyZW50VGltZXIpO1xuICAgICAgZGVsZXRlIHRoaXMuX3NldEN1cnJlbnRUaW1lcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdXBkYXRlVGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlVGltZXIpO1xuICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZVRpbWVyO1xuICAgIH1cblxuICAgIChfYSA9IHRoaXMuZHVtbXlNYW5hZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcG9zZSgpO1xuICAgIGRlbGV0ZSB0aGlzLmR1bW15TWFuYWdlcjtcbiAgfVxuXG4gIHNldEN1cnJlbnQoZWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB0aGlzLl9jdXJyZW50ID0gbmV3IFdlYWtIVE1MRWxlbWVudCh0aGlzLl93aW4sIGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICgodGhpcy5fcHJvcHMudHJhY2tTdGF0ZSB8fCB0aGlzLl9wcm9wcy52aXNpYmlsaXR5QXdhcmUpICYmICF0aGlzLl9zZXRDdXJyZW50VGltZXIpIHtcbiAgICAgIHRoaXMuX3NldEN1cnJlbnRUaW1lciA9IHRoaXMuX3dpbigpLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX3NldEN1cnJlbnRUaW1lcjtcbiAgICAgICAgY29uc3QgY2hhbmdlZCA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50ICE9PSB0aGlzLl9wcmV2Q3VycmVudCkge1xuICAgICAgICAgIGNoYW5nZWQucHVzaCh0aGlzLl9jdXJyZW50KTtcbiAgICAgICAgICBjaGFuZ2VkLnB1c2godGhpcy5fcHJldkN1cnJlbnQpO1xuICAgICAgICAgIHRoaXMuX3ByZXZDdXJyZW50ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgd2VhayBvZiBjaGFuZ2VkKSB7XG4gICAgICAgICAgY29uc3QgZWwgPSB3ZWFrID09PSBudWxsIHx8IHdlYWsgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdlYWsuZ2V0KCk7XG5cbiAgICAgICAgICBpZiAoZWwgJiYgKChfYSA9IHRoaXMuX2FsbEVsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KGVsKSkgPT09IHRoaXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5fcHJvcHM7XG5cbiAgICAgICAgICAgIGlmIChlbCAmJiAocHJvcHMudmlzaWJpbGl0eUF3YXJlICE9PSB1bmRlZmluZWQgfHwgcHJvcHMudHJhY2tTdGF0ZSkpIHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKGVsKTtcblxuICAgICAgICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBNb3ZlclN0YXRlRXZlbnQoc3RhdGUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VycmVudCgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICByZXR1cm4gKChfYSA9IHRoaXMuX2N1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKSkgfHwgbnVsbDtcbiAgfVxuXG4gIGZpbmROZXh0VGFiYmFibGUoY3VycmVudEVsZW1lbnQsIHJlZmVyZW5jZUVsZW1lbnQsIGlzQmFja3dhcmQsIGlnbm9yZUFjY2Vzc2liaWxpdHkpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldEVsZW1lbnQoKTtcbiAgICBjb25zdCBjdXJyZW50SXNEdW1teSA9IGNvbnRhaW5lciAmJiBnZXREdW1teUlucHV0Q29udGFpbmVyKGN1cnJlbnRFbGVtZW50KSA9PT0gY29udGFpbmVyO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBuZXh0ID0gbnVsbDtcbiAgICBsZXQgb3V0T2ZET01PcmRlciA9IGZhbHNlO1xuICAgIGxldCB1bmNvbnRyb2xsZWQ7XG5cbiAgICBpZiAodGhpcy5fcHJvcHMudGFiYmFibGUgfHwgY3VycmVudElzRHVtbXkgfHwgY3VycmVudEVsZW1lbnQgJiYgIWRvbS5ub2RlQ29udGFpbnMoY29udGFpbmVyLCBjdXJyZW50RWxlbWVudCkpIHtcbiAgICAgIGNvbnN0IGZpbmRQcm9wcyA9IHtcbiAgICAgICAgY3VycmVudEVsZW1lbnQsXG4gICAgICAgIHJlZmVyZW5jZUVsZW1lbnQsXG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgaWdub3JlQWNjZXNzaWJpbGl0eSxcbiAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICB9O1xuICAgICAgY29uc3QgZmluZFByb3BzT3V0ID0ge307XG4gICAgICBuZXh0ID0gdGhpcy5fdGFic3Rlci5mb2N1c2FibGVbaXNCYWNrd2FyZCA/IFwiZmluZFByZXZcIiA6IFwiZmluZE5leHRcIl0oZmluZFByb3BzLCBmaW5kUHJvcHNPdXQpO1xuICAgICAgb3V0T2ZET01PcmRlciA9ICEhZmluZFByb3BzT3V0Lm91dE9mRE9NT3JkZXI7XG4gICAgICB1bmNvbnRyb2xsZWQgPSBmaW5kUHJvcHNPdXQudW5jb250cm9sbGVkO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50OiBuZXh0LFxuICAgICAgdW5jb250cm9sbGVkLFxuICAgICAgb3V0T2ZET01PcmRlclxuICAgIH07XG4gIH1cblxuICBhY2NlcHRFbGVtZW50KGVsZW1lbnQsIHN0YXRlKSB7XG4gICAgdmFyIF9hLCBfYjtcblxuICAgIGlmICghRm9jdXNlZEVsZW1lbnRTdGF0ZS5pc1RhYmJpbmcpIHtcbiAgICAgIHJldHVybiAoKF9hID0gc3RhdGUuY3VycmVudEN0eCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV4Y2x1ZGVkRnJvbU1vdmVyKSA/IE5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBtZW1vcml6ZUN1cnJlbnQsXG4gICAgICB2aXNpYmlsaXR5QXdhcmUsXG4gICAgICBoYXNEZWZhdWx0ID0gdHJ1ZVxuICAgIH0gPSB0aGlzLl9wcm9wcztcbiAgICBjb25zdCBtb3ZlckVsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnQoKTtcblxuICAgIGlmIChtb3ZlckVsZW1lbnQgJiYgKG1lbW9yaXplQ3VycmVudCB8fCB2aXNpYmlsaXR5QXdhcmUgfHwgaGFzRGVmYXVsdCkgJiYgKCFkb20ubm9kZUNvbnRhaW5zKG1vdmVyRWxlbWVudCwgc3RhdGUuZnJvbSkgfHwgZ2V0RHVtbXlJbnB1dENvbnRhaW5lcihzdGF0ZS5mcm9tKSA9PT0gbW92ZXJFbGVtZW50KSkge1xuICAgICAgbGV0IGZvdW5kO1xuXG4gICAgICBpZiAobWVtb3JpemVDdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSAoX2IgPSB0aGlzLl9jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZ2V0KCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgc3RhdGUuYWNjZXB0Q29uZGl0aW9uKGN1cnJlbnQpKSB7XG4gICAgICAgICAgZm91bmQgPSBjdXJyZW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZm91bmQgJiYgaGFzRGVmYXVsdCkge1xuICAgICAgICBmb3VuZCA9IHRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmZpbmREZWZhdWx0KHtcbiAgICAgICAgICBjb250YWluZXI6IG1vdmVyRWxlbWVudCxcbiAgICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZm91bmQgJiYgdmlzaWJpbGl0eUF3YXJlKSB7XG4gICAgICAgIGZvdW5kID0gdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuZmluZEVsZW1lbnQoe1xuICAgICAgICAgIGNvbnRhaW5lcjogbW92ZXJFbGVtZW50LFxuICAgICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZSxcbiAgICAgICAgICBpc0JhY2t3YXJkOiBzdGF0ZS5pc0JhY2t3YXJkLFxuICAgICAgICAgIGFjY2VwdENvbmRpdGlvbjogZWwgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuXG4gICAgICAgICAgICBjb25zdCBpZCA9IGdldEVsZW1lbnRVSWQodGhpcy5fd2luLCBlbCk7XG4gICAgICAgICAgICBjb25zdCB2aXNpYmlsaXR5ID0gdGhpcy5fdmlzaWJsZVtpZF07XG4gICAgICAgICAgICByZXR1cm4gbW92ZXJFbGVtZW50ICE9PSBlbCAmJiAhISgoX2EgPSB0aGlzLl9hbGxFbGVtZW50cykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldChlbCkpICYmIHN0YXRlLmFjY2VwdENvbmRpdGlvbihlbCkgJiYgKHZpc2liaWxpdHkgPT09IFZpc2liaWxpdGllcy5WaXNpYmxlIHx8IHZpc2liaWxpdHkgPT09IFZpc2liaWxpdGllcy5QYXJ0aWFsbHlWaXNpYmxlICYmICh2aXNpYmlsaXR5QXdhcmUgPT09IFZpc2liaWxpdGllcy5QYXJ0aWFsbHlWaXNpYmxlIHx8ICF0aGlzLl9mdWxseVZpc2libGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgc3RhdGUuZm91bmQgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5mb3VuZEVsZW1lbnQgPSBmb3VuZDtcbiAgICAgICAgc3RhdGUucmVqZWN0RWxlbWVudHNGcm9tID0gbW92ZXJFbGVtZW50O1xuICAgICAgICBzdGF0ZS5za2lwcGVkRm9jdXNhYmxlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgX29ic2VydmVTdGF0ZSgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRFbGVtZW50KCk7XG5cbiAgICBpZiAodGhpcy5fdW5vYnNlcnZlIHx8ICFlbGVtZW50IHx8IHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICBjb25zdCBhbGxFbGVtZW50cyA9IHRoaXMuX2FsbEVsZW1lbnRzID0gbmV3IFdlYWtNYXAoKTtcbiAgICBjb25zdCB0YWJzdGVyRm9jdXNhYmxlID0gdGhpcy5fdGFic3Rlci5mb2N1c2FibGU7XG4gICAgbGV0IHVwZGF0ZVF1ZXVlID0gdGhpcy5fdXBkYXRlUXVldWUgPSBbXTtcbiAgICBjb25zdCBvYnNlcnZlciA9IGRvbS5jcmVhdGVNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBtdXRhdGlvbi50YXJnZXQ7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBtdXRhdGlvbi5yZW1vdmVkTm9kZXM7XG4gICAgICAgIGNvbnN0IGFkZGVkID0gbXV0YXRpb24uYWRkZWROb2RlcztcblxuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gXCJhdHRyaWJ1dGVzXCIpIHtcbiAgICAgICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gXCJ0YWJpbmRleFwiKSB7XG4gICAgICAgICAgICB1cGRhdGVRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgZWxlbWVudDogdGFyZ2V0LFxuICAgICAgICAgICAgICB0eXBlOiBfbW92ZXJVcGRhdGVBdHRyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZW1vdmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB1cGRhdGVRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgZWxlbWVudDogcmVtb3ZlZFtpXSxcbiAgICAgICAgICAgICAgdHlwZTogX21vdmVyVXBkYXRlUmVtb3ZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB1cGRhdGVRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgZWxlbWVudDogYWRkZWRbaV0sXG4gICAgICAgICAgICAgIHR5cGU6IF9tb3ZlclVwZGF0ZUFkZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3RVcGRhdGUoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHNldEVsZW1lbnQgPSAoZWxlbWVudCwgcmVtb3ZlKSA9PiB7XG4gICAgICB2YXIgX2EsIF9iO1xuXG4gICAgICBjb25zdCBjdXJyZW50ID0gYWxsRWxlbWVudHMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoY3VycmVudCAmJiByZW1vdmUpIHtcbiAgICAgICAgKF9hID0gdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIGFsbEVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjdXJyZW50ICYmICFyZW1vdmUpIHtcbiAgICAgICAgYWxsRWxlbWVudHMuc2V0KGVsZW1lbnQsIHRoaXMpO1xuICAgICAgICAoX2IgPSB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9ic2VydmUoZWxlbWVudCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IGlzRm9jdXNhYmxlID0gdGFic3RlckZvY3VzYWJsZS5pc0ZvY3VzYWJsZShlbGVtZW50KTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBhbGxFbGVtZW50cy5nZXQoZWxlbWVudCk7XG5cbiAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgIGlmICghaXNGb2N1c2FibGUpIHtcbiAgICAgICAgICBzZXRFbGVtZW50KGVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNGb2N1c2FibGUpIHtcbiAgICAgICAgICBzZXRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGFkZE5ld0VsZW1lbnRzID0gZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1vdmVyXG4gICAgICB9ID0gZ2V0TW92ZXJHcm91cHBlcihlbGVtZW50KTtcblxuICAgICAgaWYgKG1vdmVyICYmIG1vdmVyICE9PSB0aGlzKSB7XG4gICAgICAgIGlmIChtb3Zlci5nZXRFbGVtZW50KCkgPT09IGVsZW1lbnQgJiYgdGFic3RlckZvY3VzYWJsZS5pc0ZvY3VzYWJsZShlbGVtZW50KSkge1xuICAgICAgICAgIHNldEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdhbGtlciA9IGNyZWF0ZUVsZW1lbnRUcmVlV2Fsa2VyKHdpbi5kb2N1bWVudCwgZWxlbWVudCwgbm9kZSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBtb3ZlcixcbiAgICAgICAgICBncm91cHBlclxuICAgICAgICB9ID0gZ2V0TW92ZXJHcm91cHBlcihub2RlKTtcblxuICAgICAgICBpZiAobW92ZXIgJiYgbW92ZXIgIT09IHRoaXMpIHtcbiAgICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfUkVKRUNUO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ3JvdXBwZXJGaXJzdEZvY3VzYWJsZSA9IGdyb3VwcGVyID09PSBudWxsIHx8IGdyb3VwcGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBncm91cHBlci5nZXRGaXJzdCh0cnVlKTtcblxuICAgICAgICBpZiAoZ3JvdXBwZXIgJiYgZ3JvdXBwZXIuZ2V0RWxlbWVudCgpICE9PSBub2RlICYmIGdyb3VwcGVyRmlyc3RGb2N1c2FibGUgJiYgZ3JvdXBwZXJGaXJzdEZvY3VzYWJsZSAhPT0gbm9kZSkge1xuICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFic3RlckZvY3VzYWJsZS5pc0ZvY3VzYWJsZShub2RlKSkge1xuICAgICAgICAgIHNldEVsZW1lbnQobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAod2Fsa2VyKSB7XG4gICAgICAgIHdhbGtlci5jdXJyZW50Tm9kZSA9IGVsZW1lbnQ7XG5cbiAgICAgICAgd2hpbGUgKHdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgICAgLyogSXRlcmF0aW5nIGZvciB0aGUgc2FrZSBvZiBjYWxsaW5nIHByb2Nlc3NOb2RlKCkgY2FsbGJhY2suICovXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlV2FsayA9IGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IGFsbEVsZW1lbnRzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgc2V0RWxlbWVudChlbGVtZW50LCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgZWwgPSBkb20uZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoZWxlbWVudCk7IGVsOyBlbCA9IGRvbS5nZXROZXh0RWxlbWVudFNpYmxpbmcoZWwpKSB7XG4gICAgICAgIHJlbW92ZVdhbGsoZWwpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZXF1ZXN0VXBkYXRlID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl91cGRhdGVUaW1lciAmJiB1cGRhdGVRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlVGltZXIgPSB3aW4uc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZVRpbWVyO1xuXG4gICAgICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH0gb2YgdXBkYXRlUXVldWUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIF9tb3ZlclVwZGF0ZUF0dHI6XG4gICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICBjYXNlIF9tb3ZlclVwZGF0ZUFkZDpcbiAgICAgICAgICAgICAgICBhZGROZXdFbGVtZW50cyhlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICBjYXNlIF9tb3ZlclVwZGF0ZVJlbW92ZTpcbiAgICAgICAgICAgICAgICByZW1vdmVXYWxrKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVF1ZXVlID0gdGhpcy5fdXBkYXRlUXVldWUgPSBbXTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGdldE1vdmVyR3JvdXBwZXIgPSBlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IHJldCA9IHt9O1xuXG4gICAgICBmb3IgKGxldCBlbCA9IGVsZW1lbnQ7IGVsOyBlbCA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KGVsKSkge1xuICAgICAgICBjb25zdCB0b2UgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRoaXMuX3RhYnN0ZXIsIGVsKTtcblxuICAgICAgICBpZiAodG9lKSB7XG4gICAgICAgICAgaWYgKHRvZS5ncm91cHBlciAmJiAhcmV0Lmdyb3VwcGVyKSB7XG4gICAgICAgICAgICByZXQuZ3JvdXBwZXIgPSB0b2UuZ3JvdXBwZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRvZS5tb3Zlcikge1xuICAgICAgICAgICAgcmV0Lm1vdmVyID0gdG9lLm1vdmVyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfTtcblxuICAgIHVwZGF0ZVF1ZXVlLnB1c2goe1xuICAgICAgZWxlbWVudCxcbiAgICAgIHR5cGU6IF9tb3ZlclVwZGF0ZUFkZFxuICAgIH0pO1xuICAgIHJlcXVlc3RVcGRhdGUoKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbXCJ0YWJpbmRleFwiXVxuICAgIH0pO1xuXG4gICAgdGhpcy5fdW5vYnNlcnZlID0gKCkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH07XG4gIH1cblxuICBnZXRTdGF0ZShlbGVtZW50KSB7XG4gICAgY29uc3QgaWQgPSBnZXRFbGVtZW50VUlkKHRoaXMuX3dpbiwgZWxlbWVudCk7XG5cbiAgICBpZiAoaWQgaW4gdGhpcy5fdmlzaWJsZSkge1xuICAgICAgY29uc3QgdmlzaWJpbGl0eSA9IHRoaXMuX3Zpc2libGVbaWRdIHx8IFZpc2liaWxpdGllcy5JbnZpc2libGU7XG4gICAgICBjb25zdCBpc0N1cnJlbnQgPSB0aGlzLl9jdXJyZW50ID8gdGhpcy5fY3VycmVudC5nZXQoKSA9PT0gZWxlbWVudCA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlzQ3VycmVudCxcbiAgICAgICAgdmlzaWJpbGl0eVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuLyoqXHJcbiAqIENhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlbiB0d28gcmVjdGFuZ2xlcy5cclxuICpcclxuICogQHBhcmFtIGF4MSBmaXJzdCByZWN0YW5nbGUgbGVmdFxyXG4gKiBAcGFyYW0gYXkxIGZpcnN0IHJlY3RhbmdsZSB0b3BcclxuICogQHBhcmFtIGF4MiBmaXJzdCByZWN0YW5nbGUgcmlnaHRcclxuICogQHBhcmFtIGF5MiBmaXJzdCByZWN0YW5nbGUgYm90dG9tXHJcbiAqIEBwYXJhbSBieDEgc2Vjb25kIHJlY3RhbmdsZSBsZWZ0XHJcbiAqIEBwYXJhbSBieTEgc2Vjb25kIHJlY3RhbmdsZSB0b3BcclxuICogQHBhcmFtIGJ4MiBzZWNvbmQgcmVjdGFuZ2xlIHJpZ2h0XHJcbiAqIEBwYXJhbSBieTIgc2Vjb25kIHJlY3RhbmdsZSBib3R0b21cclxuICogQHJldHVybnMgbnVtYmVyLCBzaG9ydGVzdCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSByZWN0YW5nbGVzLlxyXG4gKi9cblxuXG5mdW5jdGlvbiBnZXREaXN0YW5jZShheDEsIGF5MSwgYXgyLCBheTIsIGJ4MSwgYnkxLCBieDIsIGJ5Mikge1xuICBjb25zdCB4RGlzdGFuY2UgPSBheDIgPCBieDEgPyBieDEgLSBheDIgOiBieDIgPCBheDEgPyBheDEgLSBieDIgOiAwO1xuICBjb25zdCB5RGlzdGFuY2UgPSBheTIgPCBieTEgPyBieTEgLSBheTIgOiBieTIgPCBheTEgPyBheTEgLSBieTIgOiAwO1xuICByZXR1cm4geERpc3RhbmNlID09PSAwID8geURpc3RhbmNlIDogeURpc3RhbmNlID09PSAwID8geERpc3RhbmNlIDogTWF0aC5zcXJ0KHhEaXN0YW5jZSAqIHhEaXN0YW5jZSArIHlEaXN0YW5jZSAqIHlEaXN0YW5jZSk7XG59XG5cbmNsYXNzIE1vdmVyQVBJIHtcbiAgY29uc3RydWN0b3IodGFic3RlciwgZ2V0V2luZG93KSB7XG4gICAgdGhpcy5faW5pdCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHdpbiA9IHRoaXMuX3dpbigpO1xuXG4gICAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5fb25LZXlEb3duLCB0cnVlKTtcbiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKE1vdmVyTW92ZUZvY3VzRXZlbnROYW1lLCB0aGlzLl9vbk1vdmVGb2N1cyk7XG4gICAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcihNb3Zlck1lbW9yaXplZEVsZW1lbnRFdmVudE5hbWUsIHRoaXMuX29uTWVtb3JpemVkRWxlbWVudCk7XG5cbiAgICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuc3Vic2NyaWJlKHRoaXMuX29uRm9jdXMpO1xuICAgIH07XG5cbiAgICB0aGlzLl9vbk1vdmVyRGlzcG9zZSA9IG1vdmVyID0+IHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9tb3ZlcnNbbW92ZXIuaWRdO1xuICAgIH07XG5cbiAgICB0aGlzLl9vbkZvY3VzID0gZWxlbWVudCA9PiB7XG4gICAgICB2YXIgX2E7IC8vIFdoZW4gc29tZXRoaW5nIGluIHRoZSBhcHAgZ2V0cyBmb2N1c2VkLCB3ZSBhcmUgbWFraW5nIHN1cmUgdGhhdFxuICAgICAgLy8gdGhlIHJlbGV2YW50IGNvbnRleHQgTW92ZXIgaXMgYXdhcmUgb2YgaXQuXG4gICAgICAvLyBMb29raW5nIGZvciB0aGUgcmVsZXZhbnQgY29udGV4dCBNb3ZlciBmcm9tIHRoZSBjdXJyZW50bHlcbiAgICAgIC8vIGZvY3VzZWQgZWxlbWVudCBwYXJlbnQsIG5vdCBmcm9tIHRoZSBlbGVtZW50IGl0c2VsZiwgYmVjYXVzZSB0aGVcbiAgICAgIC8vIE1vdmVyIGVsZW1lbnQgaXRzZWxmIGNhbm5vdCBiZSBpdHMgb3duIGN1cnJlbnQgKGJ1dCBtaWdodCBiZVxuICAgICAgLy8gY3VycmVudCBmb3IgaXRzIHBhcmVudCBNb3ZlcikuXG5cblxuICAgICAgbGV0IGN1cnJlbnRGb2N1c2FibGVFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgIGxldCBkZWVwZXN0Rm9jdXNhYmxlRWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICAgIGZvciAobGV0IGVsID0gZG9tLmdldFBhcmVudEVsZW1lbnQoZWxlbWVudCk7IGVsOyBlbCA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KGVsKSkge1xuICAgICAgICAvLyBXZSBnbyB0aHJvdWdoIGFsbCBNb3ZlcnMgdXAgZnJvbSB0aGUgZm9jdXNlZCBlbGVtZW50IGFuZFxuICAgICAgICAvLyBzZXQgdGhlaXIgY3VycmVudCBlbGVtZW50IHRvIHRoZSBkZWVwZXN0IGZvY3VzYWJsZSBvZiB0aGF0XG4gICAgICAgIC8vIE1vdmVyLlxuICAgICAgICBjb25zdCBtb3ZlciA9IChfYSA9IGdldFRhYnN0ZXJPbkVsZW1lbnQodGhpcy5fdGFic3RlciwgZWwpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubW92ZXI7XG5cbiAgICAgICAgaWYgKG1vdmVyKSB7XG4gICAgICAgICAgbW92ZXIuc2V0Q3VycmVudChkZWVwZXN0Rm9jdXNhYmxlRWxlbWVudCk7XG4gICAgICAgICAgY3VycmVudEZvY3VzYWJsZUVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWN1cnJlbnRGb2N1c2FibGVFbGVtZW50ICYmIHRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsKSkge1xuICAgICAgICAgIGN1cnJlbnRGb2N1c2FibGVFbGVtZW50ID0gZGVlcGVzdEZvY3VzYWJsZUVsZW1lbnQgPSBlbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9vbktleURvd24gPSBhc3luYyBldmVudCA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGlmICh0aGlzLl9pZ25vcmVkSW5wdXRUaW1lcikge1xuICAgICAgICB0aGlzLl93aW4oKS5jbGVhclRpbWVvdXQodGhpcy5faWdub3JlZElucHV0VGltZXIpO1xuXG4gICAgICAgIGRlbGV0ZSB0aGlzLl9pZ25vcmVkSW5wdXRUaW1lcjtcbiAgICAgIH1cblxuICAgICAgKF9hID0gdGhpcy5faWdub3JlZElucHV0UmVzb2x2ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwodGhpcywgZmFsc2UpOyAvLyBHaXZlIGEgY2hhbmNlIHRvIG90aGVyIGxpc3RlbmVycyB0byBoYW5kbGUgdGhlIGV2ZW50IChmb3IgZXhhbXBsZSxcbiAgICAgIC8vIHRvIHNjcm9sbCBpbnN0ZWFkIG9mIG1vdmluZyBmb2N1cykuXG5cbiAgICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgICAgbGV0IG1vdmVyS2V5O1xuXG4gICAgICBpZiAoa2V5ID09PSBLZXlzLkFycm93RG93bikge1xuICAgICAgICBtb3ZlcktleSA9IE1vdmVyS2V5cy5BcnJvd0Rvd247XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1JpZ2h0KSB7XG4gICAgICAgIG1vdmVyS2V5ID0gTW92ZXJLZXlzLkFycm93UmlnaHQ7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd1VwKSB7XG4gICAgICAgIG1vdmVyS2V5ID0gTW92ZXJLZXlzLkFycm93VXA7XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5BcnJvd0xlZnQpIHtcbiAgICAgICAgbW92ZXJLZXkgPSBNb3ZlcktleXMuQXJyb3dMZWZ0O1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09IEtleXMuUGFnZURvd24pIHtcbiAgICAgICAgbW92ZXJLZXkgPSBNb3ZlcktleXMuUGFnZURvd247XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gS2V5cy5QYWdlVXApIHtcbiAgICAgICAgbW92ZXJLZXkgPSBNb3ZlcktleXMuUGFnZVVwO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09IEtleXMuSG9tZSkge1xuICAgICAgICBtb3ZlcktleSA9IE1vdmVyS2V5cy5Ib21lO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09IEtleXMuRW5kKSB7XG4gICAgICAgIG1vdmVyS2V5ID0gTW92ZXJLZXlzLkVuZDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtb3ZlcktleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LmdldEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICAgIGlmICghZm9jdXNlZCB8fCAoYXdhaXQgdGhpcy5faXNJZ25vcmVkSW5wdXQoZm9jdXNlZCwga2V5KSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9tb3ZlRm9jdXMoZm9jdXNlZCwgbW92ZXJLZXksIGV2ZW50KTtcbiAgICB9O1xuXG4gICAgdGhpcy5fb25Nb3ZlRm9jdXMgPSBlID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgY29uc3QgZWxlbWVudCA9IGUuY29tcG9zZWRQYXRoKClbMF07XG4gICAgICBjb25zdCBrZXkgPSAoX2EgPSBlLmRldGFpbCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmtleTtcblxuICAgICAgaWYgKGVsZW1lbnQgJiYga2V5ICE9PSB1bmRlZmluZWQgJiYgIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICB0aGlzLl9tb3ZlRm9jdXMoZWxlbWVudCwga2V5KTtcblxuICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9vbk1lbW9yaXplZEVsZW1lbnQgPSBlID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgY29uc3QgdGFyZ2V0ID0gZS5jb21wb3NlZFBhdGgoKVswXTtcbiAgICAgIGxldCBtZW1vcml6ZWRFbGVtZW50ID0gKF9hID0gZS5kZXRhaWwpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tZW1vcml6ZWRFbGVtZW50O1xuXG4gICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IFJvb3RBUEkuZ2V0VGFic3RlckNvbnRleHQodGhpcy5fdGFic3RlciwgdGFyZ2V0KTtcbiAgICAgICAgY29uc3QgbW92ZXIgPSBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgubW92ZXI7XG5cbiAgICAgICAgaWYgKG1vdmVyKSB7XG4gICAgICAgICAgaWYgKG1lbW9yaXplZEVsZW1lbnQgJiYgIWRvbS5ub2RlQ29udGFpbnMobW92ZXIuZ2V0RWxlbWVudCgpLCBtZW1vcml6ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgbWVtb3JpemVkRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtb3Zlci5zZXRDdXJyZW50KG1lbW9yaXplZEVsZW1lbnQpO1xuICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fdGFic3RlciA9IHRhYnN0ZXI7XG4gICAgdGhpcy5fd2luID0gZ2V0V2luZG93O1xuICAgIHRoaXMuX21vdmVycyA9IHt9O1xuICAgIHRhYnN0ZXIucXVldWVJbml0KHRoaXMuX2luaXQpO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCB3aW4gPSB0aGlzLl93aW4oKTtcblxuICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQudW5zdWJzY3JpYmUodGhpcy5fb25Gb2N1cyk7XG5cbiAgICAoX2EgPSB0aGlzLl9pZ25vcmVkSW5wdXRSZXNvbHZlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5faWdub3JlZElucHV0VGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5faWdub3JlZElucHV0VGltZXIpO1xuICAgICAgZGVsZXRlIHRoaXMuX2lnbm9yZWRJbnB1dFRpbWVyO1xuICAgIH1cblxuICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9vbktleURvd24sIHRydWUpO1xuICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKE1vdmVyTW92ZUZvY3VzRXZlbnROYW1lLCB0aGlzLl9vbk1vdmVGb2N1cyk7XG4gICAgd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoTW92ZXJNZW1vcml6ZWRFbGVtZW50RXZlbnROYW1lLCB0aGlzLl9vbk1lbW9yaXplZEVsZW1lbnQpO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuX21vdmVycykuZm9yRWFjaChtb3ZlcklkID0+IHtcbiAgICAgIGlmICh0aGlzLl9tb3ZlcnNbbW92ZXJJZF0pIHtcbiAgICAgICAgdGhpcy5fbW92ZXJzW21vdmVySWRdLmRpc3Bvc2UoKTtcblxuICAgICAgICBkZWxldGUgdGhpcy5fbW92ZXJzW21vdmVySWRdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlTW92ZXIoZWxlbWVudCwgcHJvcHMsIHN5cykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JykgO1xuXG4gICAgY29uc3QgbmV3TW92ZXIgPSBuZXcgTW92ZXIodGhpcy5fdGFic3RlciwgZWxlbWVudCwgdGhpcy5fb25Nb3ZlckRpc3Bvc2UsIHByb3BzLCBzeXMpO1xuICAgIHRoaXMuX21vdmVyc1tuZXdNb3Zlci5pZF0gPSBuZXdNb3ZlcjtcbiAgICByZXR1cm4gbmV3TW92ZXI7XG4gIH1cblxuICBtb3ZlRm9jdXMoZnJvbUVsZW1lbnQsIGtleSkge1xuICAgIHJldHVybiB0aGlzLl9tb3ZlRm9jdXMoZnJvbUVsZW1lbnQsIGtleSk7XG4gIH1cblxuICBfbW92ZUZvY3VzKGZyb21FbGVtZW50LCBrZXksIHJlbGF0ZWRFdmVudCkge1xuICAgIHZhciBfYSwgX2I7XG5cbiAgICBjb25zdCB0YWJzdGVyID0gdGhpcy5fdGFic3RlcjtcbiAgICBjb25zdCBjdHggPSBSb290QVBJLmdldFRhYnN0ZXJDb250ZXh0KHRhYnN0ZXIsIGZyb21FbGVtZW50LCB7XG4gICAgICBjaGVja1J0bDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgaWYgKCFjdHggfHwgIWN0eC5tb3ZlciB8fCBjdHguZXhjbHVkZWRGcm9tTW92ZXIgfHwgcmVsYXRlZEV2ZW50ICYmIGN0eC5pZ25vcmVLZXlkb3duKHJlbGF0ZWRFdmVudCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG1vdmVyID0gY3R4Lm1vdmVyO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IG1vdmVyLmdldEVsZW1lbnQoKTtcblxuICAgIGlmIChjdHguZ3JvdXBwZXJCZWZvcmVNb3Zlcikge1xuICAgICAgY29uc3QgZ3JvdXBwZXIgPSBjdHguZ3JvdXBwZXI7XG5cbiAgICAgIGlmIChncm91cHBlciAmJiAhZ3JvdXBwZXIuaXNBY3RpdmUodHJ1ZSkpIHtcbiAgICAgICAgLy8gRm9yIHRoZSBjYXNlcyB3aGVuIHdlIGhhdmUgTW92ZXIvQWN0aXZlIEdyb3VwcGVyL0luYWN0aXZlIEdyb3VwcGVyLCB3ZSBuZWVkIHRvIGNoZWNrXG4gICAgICAgIC8vIHRoZSBncm91cHBlcnMgYmV0d2VlbiB0aGUgY3VycmVudCBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBtb3Zlci5cbiAgICAgICAgZm9yIChsZXQgZWwgPSBkb20uZ2V0UGFyZW50RWxlbWVudChncm91cHBlci5nZXRFbGVtZW50KCkpOyBlbCAmJiBlbCAhPT0gY29udGFpbmVyOyBlbCA9IGRvbS5nZXRQYXJlbnRFbGVtZW50KGVsKSkge1xuICAgICAgICAgIGlmICgoX2IgPSAoX2EgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRhYnN0ZXIsIGVsKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdyb3VwcGVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaXNBY3RpdmUodHJ1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZvY3VzYWJsZSA9IHRhYnN0ZXIuZm9jdXNhYmxlO1xuICAgIGNvbnN0IG1vdmVyUHJvcHMgPSBtb3Zlci5nZXRQcm9wcygpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IG1vdmVyUHJvcHMuZGlyZWN0aW9uIHx8IE1vdmVyRGlyZWN0aW9ucy5Cb3RoO1xuICAgIGNvbnN0IGlzQm90aCA9IGRpcmVjdGlvbiA9PT0gTW92ZXJEaXJlY3Rpb25zLkJvdGg7XG4gICAgY29uc3QgaXNWZXJ0aWNhbCA9IGlzQm90aCB8fCBkaXJlY3Rpb24gPT09IE1vdmVyRGlyZWN0aW9ucy5WZXJ0aWNhbDtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0JvdGggfHwgZGlyZWN0aW9uID09PSBNb3ZlckRpcmVjdGlvbnMuSG9yaXpvbnRhbDtcbiAgICBjb25zdCBpc0dyaWRMaW5lYXIgPSBkaXJlY3Rpb24gPT09IE1vdmVyRGlyZWN0aW9ucy5HcmlkTGluZWFyO1xuICAgIGNvbnN0IGlzR3JpZCA9IGlzR3JpZExpbmVhciB8fCBkaXJlY3Rpb24gPT09IE1vdmVyRGlyZWN0aW9ucy5HcmlkO1xuICAgIGNvbnN0IGlzQ3ljbGljID0gbW92ZXJQcm9wcy5jeWNsaWM7XG4gICAgbGV0IG5leHQ7XG4gICAgbGV0IHNjcm9sbEludG9WaWV3QXJnO1xuICAgIGxldCBmb2N1c2VkRWxlbWVudFJlY3Q7XG4gICAgbGV0IGZvY3VzZWRFbGVtZW50WDEgPSAwO1xuICAgIGxldCBmb2N1c2VkRWxlbWVudFgyID0gMDtcblxuICAgIGlmIChpc0dyaWQpIHtcbiAgICAgIGZvY3VzZWRFbGVtZW50UmVjdCA9IGZyb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZm9jdXNlZEVsZW1lbnRYMSA9IE1hdGguY2VpbChmb2N1c2VkRWxlbWVudFJlY3QubGVmdCk7XG4gICAgICBmb2N1c2VkRWxlbWVudFgyID0gTWF0aC5mbG9vcihmb2N1c2VkRWxlbWVudFJlY3QucmlnaHQpO1xuICAgIH1cblxuICAgIGlmIChjdHgucnRsKSB7XG4gICAgICBpZiAoa2V5ID09PSBNb3ZlcktleXMuQXJyb3dSaWdodCkge1xuICAgICAgICBrZXkgPSBNb3ZlcktleXMuQXJyb3dMZWZ0O1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09IE1vdmVyS2V5cy5BcnJvd0xlZnQpIHtcbiAgICAgICAga2V5ID0gTW92ZXJLZXlzLkFycm93UmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gTW92ZXJLZXlzLkFycm93RG93biAmJiBpc1ZlcnRpY2FsIHx8IGtleSA9PT0gTW92ZXJLZXlzLkFycm93UmlnaHQgJiYgKGlzSG9yaXpvbnRhbCB8fCBpc0dyaWQpKSB7XG4gICAgICBuZXh0ID0gZm9jdXNhYmxlLmZpbmROZXh0KHtcbiAgICAgICAgY3VycmVudEVsZW1lbnQ6IGZyb21FbGVtZW50LFxuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChuZXh0ICYmIGlzR3JpZCkge1xuICAgICAgICBjb25zdCBuZXh0RWxlbWVudFgxID0gTWF0aC5jZWlsKG5leHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCk7XG5cbiAgICAgICAgaWYgKCFpc0dyaWRMaW5lYXIgJiYgZm9jdXNlZEVsZW1lbnRYMiA+IG5leHRFbGVtZW50WDEpIHtcbiAgICAgICAgICBuZXh0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFuZXh0ICYmIGlzQ3ljbGljKSB7XG4gICAgICAgIG5leHQgPSBmb2N1c2FibGUuZmluZEZpcnN0KHtcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSBNb3ZlcktleXMuQXJyb3dVcCAmJiBpc1ZlcnRpY2FsIHx8IGtleSA9PT0gTW92ZXJLZXlzLkFycm93TGVmdCAmJiAoaXNIb3Jpem9udGFsIHx8IGlzR3JpZCkpIHtcbiAgICAgIG5leHQgPSBmb2N1c2FibGUuZmluZFByZXYoe1xuICAgICAgICBjdXJyZW50RWxlbWVudDogZnJvbUVsZW1lbnQsXG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgaWYgKG5leHQgJiYgaXNHcmlkKSB7XG4gICAgICAgIGNvbnN0IG5leHRFbGVtZW50WDIgPSBNYXRoLmZsb29yKG5leHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpO1xuXG4gICAgICAgIGlmICghaXNHcmlkTGluZWFyICYmIG5leHRFbGVtZW50WDIgPiBmb2N1c2VkRWxlbWVudFgxKSB7XG4gICAgICAgICAgbmV4dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghbmV4dCAmJiBpc0N5Y2xpYykge1xuICAgICAgICBuZXh0ID0gZm9jdXNhYmxlLmZpbmRMYXN0KHtcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSBNb3ZlcktleXMuSG9tZSkge1xuICAgICAgaWYgKGlzR3JpZCkge1xuICAgICAgICBmb2N1c2FibGUuZmluZEVsZW1lbnQoe1xuICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICBjdXJyZW50RWxlbWVudDogZnJvbUVsZW1lbnQsXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlLFxuICAgICAgICAgIGlzQmFja3dhcmQ6IHRydWUsXG4gICAgICAgICAgYWNjZXB0Q29uZGl0aW9uOiBlbCA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG5cbiAgICAgICAgICAgIGlmICghZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5leHRFbGVtZW50WDEgPSBNYXRoLmNlaWwoKF9hID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCk7XG5cbiAgICAgICAgICAgIGlmIChlbCAhPT0gZnJvbUVsZW1lbnQgJiYgZm9jdXNlZEVsZW1lbnRYMSA8PSBuZXh0RWxlbWVudFgxKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZXh0ID0gZWw7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQgPSBmb2N1c2FibGUuZmluZEZpcnN0KHtcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSBNb3ZlcktleXMuRW5kKSB7XG4gICAgICBpZiAoaXNHcmlkKSB7XG4gICAgICAgIGZvY3VzYWJsZS5maW5kRWxlbWVudCh7XG4gICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgIGN1cnJlbnRFbGVtZW50OiBmcm9tRWxlbWVudCxcbiAgICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWUsXG4gICAgICAgICAgYWNjZXB0Q29uZGl0aW9uOiBlbCA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG5cbiAgICAgICAgICAgIGlmICghZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5leHRFbGVtZW50WDEgPSBNYXRoLmNlaWwoKF9hID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCk7XG5cbiAgICAgICAgICAgIGlmIChlbCAhPT0gZnJvbUVsZW1lbnQgJiYgZm9jdXNlZEVsZW1lbnRYMSA+PSBuZXh0RWxlbWVudFgxKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZXh0ID0gZWw7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQgPSBmb2N1c2FibGUuZmluZExhc3Qoe1xuICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChrZXkgPT09IE1vdmVyS2V5cy5QYWdlVXApIHtcbiAgICAgIGZvY3VzYWJsZS5maW5kRWxlbWVudCh7XG4gICAgICAgIGN1cnJlbnRFbGVtZW50OiBmcm9tRWxlbWVudCxcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWUsXG4gICAgICAgIGlzQmFja3dhcmQ6IHRydWUsXG4gICAgICAgIGFjY2VwdENvbmRpdGlvbjogZWwgPT4ge1xuICAgICAgICAgIGlmICghZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc0VsZW1lbnRWZXJ0aWNhbGx5VmlzaWJsZUluQ29udGFpbmVyKHRoaXMuX3dpbiwgZWwsIG1vdmVyLnZpc2liaWxpdHlUb2xlcmFuY2UpKSB7XG4gICAgICAgICAgICBuZXh0ID0gZWw7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pOyAvLyB3aWxsIGJlIG9uIHRoZSBmaXJzdCBjb2x1bW4gbW92ZSBmb3J3YXJkIGFuZCBwcmVzZXJ2ZSBwcmV2aW91cyBjb2x1bW5cblxuICAgICAgaWYgKGlzR3JpZCAmJiBuZXh0KSB7XG4gICAgICAgIGNvbnN0IGZpcnN0Q29sdW1uWDEgPSBNYXRoLmNlaWwobmV4dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KTtcbiAgICAgICAgZm9jdXNhYmxlLmZpbmRFbGVtZW50KHtcbiAgICAgICAgICBjdXJyZW50RWxlbWVudDogbmV4dCxcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgdXNlQWN0aXZlTW9kYWxpemVyOiB0cnVlLFxuICAgICAgICAgIGFjY2VwdENvbmRpdGlvbjogZWwgPT4ge1xuICAgICAgICAgICAgaWYgKCFmb2N1c2FibGUuaXNGb2N1c2FibGUoZWwpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbmV4dEVsZW1lbnRYMSA9IE1hdGguY2VpbChlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KTtcblxuICAgICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50WDEgPCBuZXh0RWxlbWVudFgxIHx8IGZpcnN0Q29sdW1uWDEgPj0gbmV4dEVsZW1lbnRYMSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV4dCA9IGVsO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHNjcm9sbEludG9WaWV3QXJnID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09IE1vdmVyS2V5cy5QYWdlRG93bikge1xuICAgICAgZm9jdXNhYmxlLmZpbmRFbGVtZW50KHtcbiAgICAgICAgY3VycmVudEVsZW1lbnQ6IGZyb21FbGVtZW50LFxuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIHVzZUFjdGl2ZU1vZGFsaXplcjogdHJ1ZSxcbiAgICAgICAgYWNjZXB0Q29uZGl0aW9uOiBlbCA9PiB7XG4gICAgICAgICAgaWYgKCFmb2N1c2FibGUuaXNGb2N1c2FibGUoZWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzRWxlbWVudFZlcnRpY2FsbHlWaXNpYmxlSW5Db250YWluZXIodGhpcy5fd2luLCBlbCwgbW92ZXIudmlzaWJpbGl0eVRvbGVyYW5jZSkpIHtcbiAgICAgICAgICAgIG5leHQgPSBlbDtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7IC8vIHdpbGwgYmUgb24gdGhlIGxhc3QgY29sdW1uIG1vdmUgYmFja3dhcmRzIGFuZCBwcmVzZXJ2ZSBwcmV2aW91cyBjb2x1bW5cblxuICAgICAgaWYgKGlzR3JpZCAmJiBuZXh0KSB7XG4gICAgICAgIGNvbnN0IGxhc3RDb2x1bW5YMSA9IE1hdGguY2VpbChuZXh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpO1xuICAgICAgICBmb2N1c2FibGUuZmluZEVsZW1lbnQoe1xuICAgICAgICAgIGN1cnJlbnRFbGVtZW50OiBuZXh0LFxuICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICB1c2VBY3RpdmVNb2RhbGl6ZXI6IHRydWUsXG4gICAgICAgICAgaXNCYWNrd2FyZDogdHJ1ZSxcbiAgICAgICAgICBhY2NlcHRDb25kaXRpb246IGVsID0+IHtcbiAgICAgICAgICAgIGlmICghZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5leHRFbGVtZW50WDEgPSBNYXRoLmNlaWwoZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCk7XG5cbiAgICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudFgxID4gbmV4dEVsZW1lbnRYMSB8fCBsYXN0Q29sdW1uWDEgPD0gbmV4dEVsZW1lbnRYMSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV4dCA9IGVsO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHNjcm9sbEludG9WaWV3QXJnID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGlzR3JpZCkge1xuICAgICAgY29uc3QgaXNCYWNrd2FyZCA9IGtleSA9PT0gTW92ZXJLZXlzLkFycm93VXA7XG4gICAgICBjb25zdCBheDEgPSBmb2N1c2VkRWxlbWVudFgxOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXG4gICAgICBjb25zdCBheTEgPSBNYXRoLmNlaWwoZm9jdXNlZEVsZW1lbnRSZWN0LnRvcCk7XG4gICAgICBjb25zdCBheDIgPSBmb2N1c2VkRWxlbWVudFgyOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXG4gICAgICBjb25zdCBheTIgPSBNYXRoLmZsb29yKGZvY3VzZWRFbGVtZW50UmVjdC5ib3R0b20pO1xuICAgICAgbGV0IHRhcmdldEVsZW1lbnQ7XG4gICAgICBsZXQgbGFzdERpc3RhbmNlO1xuICAgICAgbGV0IGxhc3RJbnRlcnNlY3Rpb24gPSAwO1xuICAgICAgZm9jdXNhYmxlLmZpbmRBbGwoe1xuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIGN1cnJlbnRFbGVtZW50OiBmcm9tRWxlbWVudCxcbiAgICAgICAgaXNCYWNrd2FyZCxcbiAgICAgICAgb25FbGVtZW50OiBlbCA9PiB7XG4gICAgICAgICAgLy8gRmluZCBlbGVtZW50IHdoaWNoIGhhcyBtYXhpbWFsIGludGVyc2VjdGlvbiB3aXRoIHRoZSBmb2N1c2VkIGVsZW1lbnQgaG9yaXpvbnRhbGx5LFxuICAgICAgICAgIC8vIG9yIHRoZSBjbG9zZXN0IG9uZS5cbiAgICAgICAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgY29uc3QgYngxID0gTWF0aC5jZWlsKHJlY3QubGVmdCk7XG4gICAgICAgICAgY29uc3QgYnkxID0gTWF0aC5jZWlsKHJlY3QudG9wKTtcbiAgICAgICAgICBjb25zdCBieDIgPSBNYXRoLmZsb29yKHJlY3QucmlnaHQpO1xuICAgICAgICAgIGNvbnN0IGJ5MiA9IE1hdGguZmxvb3IocmVjdC5ib3R0b20pO1xuXG4gICAgICAgICAgaWYgKGlzQmFja3dhcmQgJiYgYXkxIDwgYnkyIHx8ICFpc0JhY2t3YXJkICYmIGF5MiA+IGJ5MSkge1xuICAgICAgICAgICAgLy8gT25seSBjb25zaWRlciBlbGVtZW50cyB3aGljaCBhcmUgYmVsb3cvYWJvdmUgY3VycmV0bHkgZm9jdXNlZC5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHhJbnRlcnNlY3Rpb25XaWR0aCA9IE1hdGguY2VpbChNYXRoLm1pbihheDIsIGJ4MikpIC0gTWF0aC5mbG9vcihNYXRoLm1heChheDEsIGJ4MSkpO1xuICAgICAgICAgIGNvbnN0IG1pbldpZHRoID0gTWF0aC5jZWlsKE1hdGgubWluKGF4MiAtIGF4MSwgYngyIC0gYngxKSk7XG5cbiAgICAgICAgICBpZiAoeEludGVyc2VjdGlvbldpZHRoID4gMCAmJiBtaW5XaWR0aCA+PSB4SW50ZXJzZWN0aW9uV2lkdGgpIHtcbiAgICAgICAgICAgIC8vIEVsZW1lbnQgaW50ZXJzZWN0cyB3aXRoIHRoZSBmb2N1c2VkIGVsZW1lbnQgb24gWCBheGlzLlxuICAgICAgICAgICAgY29uc3QgaW50ZXJzZWN0aW9uID0geEludGVyc2VjdGlvbldpZHRoIC8gbWluV2lkdGg7XG5cbiAgICAgICAgICAgIGlmIChpbnRlcnNlY3Rpb24gPiBsYXN0SW50ZXJzZWN0aW9uKSB7XG4gICAgICAgICAgICAgIHRhcmdldEVsZW1lbnQgPSBlbDtcbiAgICAgICAgICAgICAgbGFzdEludGVyc2VjdGlvbiA9IGludGVyc2VjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGxhc3RJbnRlcnNlY3Rpb24gPT09IDApIHtcbiAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBoYXZlIGludGVyc2VjdGlvbiwgdHJ5IGp1c3QgdGhlIGNsb3Nlc3Qgb25lLlxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXREaXN0YW5jZShheDEsIGF5MSwgYXgyLCBheTIsIGJ4MSwgYnkxLCBieDIsIGJ5Mik7XG5cbiAgICAgICAgICAgIGlmIChsYXN0RGlzdGFuY2UgPT09IHVuZGVmaW5lZCB8fCBkaXN0YW5jZSA8IGxhc3REaXN0YW5jZSkge1xuICAgICAgICAgICAgICBsYXN0RGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudCA9IGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAobGFzdEludGVyc2VjdGlvbiA+IDApIHtcbiAgICAgICAgICAgIC8vIEVsZW1lbnQgZG9lc24ndCBpbnRlcnNlY3QsIGJ1dCB3ZSBoYWQgaW50ZXJzZWN0aW9uIGFscmVhZHksIHN0b3Agc2VhcmNoLlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG5leHQgPSB0YXJnZXRFbGVtZW50O1xuICAgIH1cblxuICAgIGlmIChuZXh0ICYmICghcmVsYXRlZEV2ZW50IHx8IHJlbGF0ZWRFdmVudCAmJiBjb250YWluZXIuZGlzcGF0Y2hFdmVudChuZXcgVGFic3Rlck1vdmVGb2N1c0V2ZW50KHtcbiAgICAgIGJ5OiBcIm1vdmVyXCIsXG4gICAgICBvd25lcjogY29udGFpbmVyLFxuICAgICAgbmV4dCxcbiAgICAgIHJlbGF0ZWRFdmVudFxuICAgIH0pKSkpIHtcbiAgICAgIGlmIChzY3JvbGxJbnRvVmlld0FyZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX3dpbiwgbmV4dCwgc2Nyb2xsSW50b1ZpZXdBcmcpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVsYXRlZEV2ZW50KSB7XG4gICAgICAgIHJlbGF0ZWRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZWxhdGVkRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG5cbiAgICAgIG5hdGl2ZUZvY3VzKG5leHQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBfaXNJZ25vcmVkSW5wdXQoZWxlbWVudCwga2V5KSB7XG4gICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiKSA9PT0gXCJ0cnVlXCIgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIikpIHtcbiAgICAgIC8vIEl0IGlzIGxpa2VseSBhIGNvbWJvYm94IHdpdGggZXhwYW5kZWQgb3B0aW9ucyBhbmQgYXJyb3cga2V5cyBhcmVcbiAgICAgIC8vIGNvbnRyb2xsZWQgYnkgaXQuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2hlc1NlbGVjdG9yKGVsZW1lbnQsIF9pbnB1dFNlbGVjdG9yKSkge1xuICAgICAgbGV0IHNlbGVjdGlvblN0YXJ0ID0gMDtcbiAgICAgIGxldCBzZWxlY3Rpb25FbmQgPSAwO1xuICAgICAgbGV0IHRleHRMZW5ndGggPSAwO1xuICAgICAgbGV0IGFzeW5jUmV0O1xuXG4gICAgICBpZiAoZWxlbWVudC50YWdOYW1lID09PSBcIklOUFVUXCIgfHwgZWxlbWVudC50YWdOYW1lID09PSBcIlRFWFRBUkVBXCIpIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IGVsZW1lbnQudHlwZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LnZhbHVlO1xuICAgICAgICB0ZXh0TGVuZ3RoID0gKHZhbHVlIHx8IFwiXCIpLmxlbmd0aDtcblxuICAgICAgICBpZiAodHlwZSA9PT0gXCJlbWFpbFwiIHx8IHR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAvLyBGb3IgdGhlc2UgdHlwZXMgQ2hyb21pdW0gZG9lc24ndCBwcm92aWRlIHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQuXG4gICAgICAgICAgLy8gSGVuY2UgdGhlIHVnbHkgd29ya2Fyb3VuZCB0byBmaW5kIGlmIHRoZSBjYXJldCBwb3NpdGlvbiBpcyBjaGFuZ2VkIHdpdGhcbiAgICAgICAgICAvLyB0aGUga2V5cHJlc3MuXG4gICAgICAgICAgLy8gVE9ETzogSGF2ZSBhIGxvb2sgYXQgcmFuZ2UsIHdlZWssIHRpbWUsIHRpbWUsIGRhdGUsIGRhdGV0aW1lLWxvY2FsLlxuICAgICAgICAgIGlmICh0ZXh0TGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSBkb20uZ2V0U2VsZWN0aW9uKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxMZW5ndGggPSBzZWxlY3Rpb24udG9TdHJpbmcoKS5sZW5ndGg7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQmFja3dhcmQgPSBrZXkgPT09IEtleXMuQXJyb3dMZWZ0IHx8IGtleSA9PT0gS2V5cy5BcnJvd1VwO1xuICAgICAgICAgICAgICBzZWxlY3Rpb24ubW9kaWZ5KFwiZXh0ZW5kXCIsIGlzQmFja3dhcmQgPyBcImJhY2t3YXJkXCIgOiBcImZvcndhcmRcIiwgXCJjaGFyYWN0ZXJcIik7XG5cbiAgICAgICAgICAgICAgaWYgKGluaXRpYWxMZW5ndGggIT09IHNlbGVjdGlvbi50b1N0cmluZygpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBjYXJldCBpcyBtb3ZlZCwgc28sIHdlJ3JlIG5vdCBvbiB0aGUgZWRnZSBvZiB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzZWxlY3Rpb24uXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vZGlmeShcImV4dGVuZFwiLCBpc0JhY2t3YXJkID8gXCJmb3J3YXJkXCIgOiBcImJhY2t3YXJkXCIsIFwiY2hhcmFjdGVyXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRleHRMZW5ndGggPSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHNlbFN0YXJ0ID0gZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcblxuICAgICAgICAgIGlmIChzZWxTdGFydCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gRG8gbm90IGlnbm9yZSBub3QgdGV4dCBlZGl0YWJsZSBpbnB1dHMgbGlrZSBjaGVja2JveGVzIGFuZCByYWRpb3MgKGJ1dCBpZ25vcmUgaGlkZGVuKS5cbiAgICAgICAgICAgIHJldHVybiB0eXBlID09PSBcImhpZGRlblwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsU3RhcnQgfHwgMDtcbiAgICAgICAgICBzZWxlY3Rpb25FbmQgPSBlbGVtZW50LnNlbGVjdGlvbkVuZCB8fCAwO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuY29udGVudEVkaXRhYmxlID09PSBcInRydWVcIikge1xuICAgICAgICBhc3luY1JldCA9IG5ldyAoZ2V0UHJvbWlzZSh0aGlzLl93aW4pKShyZXNvbHZlID0+IHtcbiAgICAgICAgICB0aGlzLl9pZ25vcmVkSW5wdXRSZXNvbHZlID0gdmFsdWUgPT4ge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2lnbm9yZWRJbnB1dFJlc29sdmU7XG4gICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5faWdub3JlZElucHV0VGltZXIpIHtcbiAgICAgICAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5faWdub3JlZElucHV0VGltZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGFuY2hvck5vZGU6IHByZXZBbmNob3JOb2RlLFxuICAgICAgICAgICAgZm9jdXNOb2RlOiBwcmV2Rm9jdXNOb2RlLFxuICAgICAgICAgICAgYW5jaG9yT2Zmc2V0OiBwcmV2QW5jaG9yT2Zmc2V0LFxuICAgICAgICAgICAgZm9jdXNPZmZzZXQ6IHByZXZGb2N1c09mZnNldFxuICAgICAgICAgIH0gPSBkb20uZ2V0U2VsZWN0aW9uKGVsZW1lbnQpIHx8IHt9OyAvLyBHZXQgc2VsZWN0aW9uIGdpdmVzIGluY29ycmVjdCB2YWx1ZSBpZiB3ZSBjYWxsIGl0IHN5bmNyb25vdXNseSBvbktleURvd24uXG5cbiAgICAgICAgICB0aGlzLl9pZ25vcmVkSW5wdXRUaW1lciA9IHdpbi5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xuXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5faWdub3JlZElucHV0VGltZXI7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIGFuY2hvck5vZGUsXG4gICAgICAgICAgICAgIGZvY3VzTm9kZSxcbiAgICAgICAgICAgICAgYW5jaG9yT2Zmc2V0LFxuICAgICAgICAgICAgICBmb2N1c09mZnNldFxuICAgICAgICAgICAgfSA9IGRvbS5nZXRTZWxlY3Rpb24oZWxlbWVudCkgfHwge307XG5cbiAgICAgICAgICAgIGlmIChhbmNob3JOb2RlICE9PSBwcmV2QW5jaG9yTm9kZSB8fCBmb2N1c05vZGUgIT09IHByZXZGb2N1c05vZGUgfHwgYW5jaG9yT2Zmc2V0ICE9PSBwcmV2QW5jaG9yT2Zmc2V0IHx8IGZvY3VzT2Zmc2V0ICE9PSBwcmV2Rm9jdXNPZmZzZXQpIHtcbiAgICAgICAgICAgICAgKF9hID0gdGhpcy5faWdub3JlZElucHV0UmVzb2x2ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwodGhpcywgZmFsc2UpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gYW5jaG9yT2Zmc2V0IHx8IDA7XG4gICAgICAgICAgICBzZWxlY3Rpb25FbmQgPSBmb2N1c09mZnNldCB8fCAwO1xuICAgICAgICAgICAgdGV4dExlbmd0aCA9ICgoX2IgPSBlbGVtZW50LnRleHRDb250ZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSB8fCAwO1xuXG4gICAgICAgICAgICBpZiAoYW5jaG9yTm9kZSAmJiBmb2N1c05vZGUpIHtcbiAgICAgICAgICAgICAgaWYgKGRvbS5ub2RlQ29udGFpbnMoZWxlbWVudCwgYW5jaG9yTm9kZSkgJiYgZG9tLm5vZGVDb250YWlucyhlbGVtZW50LCBmb2N1c05vZGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFuY2hvck5vZGUgIT09IGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBhbmNob3JGb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCBhZGRPZmZzZXRzID0gbm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlID09PSBhbmNob3JOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUgPT09IGZvY3VzTm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZVRleHQgPSBub2RlLnRleHRDb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlVGV4dCAmJiAhZG9tLmdldEZpcnN0Q2hpbGQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW4gPSBub2RlVGV4dC5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYW5jaG9yRm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb2N1c05vZGUgIT09IGFuY2hvck5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uRW5kICs9IGxlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgKz0gbGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uRW5kICs9IGxlbjtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGUgPSBkb20uZ2V0Rmlyc3RDaGlsZChub2RlKTsgZSAmJiAhc3RvcDsgZSA9IGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdG9wID0gYWRkT2Zmc2V0cyhlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdG9wO1xuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgYWRkT2Zmc2V0cyhlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKF9jID0gdGhpcy5faWdub3JlZElucHV0UmVzb2x2ZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoYXN5bmNSZXQgJiYgIShhd2FpdCBhc3luY1JldCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3Rpb25TdGFydCAhPT0gc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPiAwICYmIChrZXkgPT09IEtleXMuQXJyb3dMZWZ0IHx8IGtleSA9PT0gS2V5cy5BcnJvd1VwIHx8IGtleSA9PT0gS2V5cy5Ib21lKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0IDwgdGV4dExlbmd0aCAmJiAoa2V5ID09PSBLZXlzLkFycm93UmlnaHQgfHwga2V5ID09PSBLZXlzLkFycm93RG93biB8fCBrZXkgPT09IEtleXMuRW5kKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5mdW5jdGlvbiBvYnNlcnZlTXV0YXRpb25zKGRvYywgdGFic3RlciwgdXBkYXRlVGFic3RlckJ5QXR0cmlidXRlLCBzeW5jU3RhdGUpIHtcbiAgaWYgKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8qIE5vb3AgKi9cbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZ2V0V2luZG93ID0gdGFic3Rlci5nZXRXaW5kb3c7XG4gIGxldCBlbGVtZW50QnlVSWQ7XG5cbiAgY29uc3Qgb25NdXRhdGlvbiA9IG11dGF0aW9ucyA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcblxuICAgIGNvbnN0IHJlbW92ZWROb2RlcyA9IG5ldyBTZXQoKTtcblxuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBtdXRhdGlvbi50YXJnZXQ7XG4gICAgICBjb25zdCByZW1vdmVkID0gbXV0YXRpb24ucmVtb3ZlZE5vZGVzO1xuICAgICAgY29uc3QgYWRkZWQgPSBtdXRhdGlvbi5hZGRlZE5vZGVzO1xuXG4gICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gXCJhdHRyaWJ1dGVzXCIpIHtcbiAgICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09IFRBQlNURVJfQVRUUklCVVRFX05BTUUpIHtcbiAgICAgICAgICAvLyByZW1vdmVkTm9kZXMgaGVscHMgdG8gbWFrZSBzdXJlIHdlIGFyZSBub3QgcmVjcmVhdGluZyB0aGluZ3NcbiAgICAgICAgICAvLyBmb3IgdGhlIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCBpZiB3ZSBkbyByZW1vdmVDaGlsZCgpIGFuZCBzZXRBdHRyaWJ1dGUoKSBvbiB0aGVcbiAgICAgICAgICAvLyByZW1vdmVkIGNoaWxkIGluIHRoZSBzYW1lIHRpY2ssIGJvdGggdGhlIGNoaWxkIHJlbW92YWwgYW5kIHRoZSBhdHRyaWJ1dGVcbiAgICAgICAgICAvLyBjaGFuZ2Ugd2lsbCBiZSBwcmVzZW50IGluIHRoZSBtdXRhdGlvbiByZWNvcmRzLiBBbmQgdGhlIGF0dHJpYnV0ZSBjaGFuZ2VcbiAgICAgICAgICAvLyB3aWxsIGZvbGxvdyB0aGUgY2hpbGQgcmVtb3ZhbC5cbiAgICAgICAgICAvLyBTbywgd2UgcmVtZW1iZXIgdGhlIHJlbW92ZWQgbm9kZXMgYW5kIGlnbm9yZSBhdHRyaWJ1dGUgY2hhbmdlcyBmb3IgdGhlbS5cbiAgICAgICAgICBpZiAoIXJlbW92ZWROb2Rlcy5oYXModGFyZ2V0KSkge1xuICAgICAgICAgICAgdXBkYXRlVGFic3RlckJ5QXR0cmlidXRlKHRhYnN0ZXIsIHRhcmdldCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbW92ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCByZW1vdmVkTm9kZSA9IHJlbW92ZWRbaV07XG4gICAgICAgICAgcmVtb3ZlZE5vZGVzLmFkZChyZW1vdmVkTm9kZSk7XG4gICAgICAgICAgdXBkYXRlVGFic3RlckVsZW1lbnRzKHJlbW92ZWROb2RlLCB0cnVlKTtcbiAgICAgICAgICAoX2IgPSAoX2EgPSB0YWJzdGVyLl9kdW1teU9ic2VydmVyKS5kb21DaGFuZ2VkKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgdGFyZ2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB1cGRhdGVUYWJzdGVyRWxlbWVudHMoYWRkZWRbaV0pO1xuICAgICAgICAgIChfZCA9IChfYyA9IHRhYnN0ZXIuX2R1bW15T2JzZXJ2ZXIpLmRvbUNoYW5nZWQpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5jYWxsKF9jLCB0YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlZE5vZGVzLmNsZWFyKCk7XG4gICAgKF9lID0gdGFic3Rlci5tb2RhbGl6ZXIpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5oaWRkZW5VcGRhdGUoKTtcbiAgfTtcblxuICBmdW5jdGlvbiB1cGRhdGVUYWJzdGVyRWxlbWVudHMobm9kZSwgcmVtb3ZlZCkge1xuICAgIGlmICghZWxlbWVudEJ5VUlkKSB7XG4gICAgICBlbGVtZW50QnlVSWQgPSBnZXRJbnN0YW5jZUNvbnRleHQoZ2V0V2luZG93KS5lbGVtZW50QnlVSWQ7XG4gICAgfVxuXG4gICAgcHJvY2Vzc05vZGUobm9kZSwgcmVtb3ZlZCk7XG4gICAgY29uc3Qgd2Fsa2VyID0gY3JlYXRlRWxlbWVudFRyZWVXYWxrZXIoZG9jLCBub2RlLCBlbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiBwcm9jZXNzTm9kZShlbGVtZW50LCByZW1vdmVkKTtcbiAgICB9KTtcblxuICAgIGlmICh3YWxrZXIpIHtcbiAgICAgIHdoaWxlICh3YWxrZXIubmV4dE5vZGUoKSkge1xuICAgICAgICAvKiBJdGVyYXRpbmcgZm9yIHRoZSBzYWtlIG9mIGNhbGxpbmcgcHJvY2Vzc05vZGUoKSBjYWxsYmFjay4gKi9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwcm9jZXNzTm9kZShlbGVtZW50LCByZW1vdmVkKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgaWYgKCFlbGVtZW50LmdldEF0dHJpYnV0ZSkge1xuICAgICAgLy8gSXQgbWlnaHQgYWN0dWFsbHkgYmUgYSB0ZXh0IG5vZGUuXG4gICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICB9XG5cbiAgICBjb25zdCB1aWQgPSBlbGVtZW50Ll9fdGFic3RlckVsZW1lbnRVSUQ7XG5cbiAgICBpZiAodWlkICYmIGVsZW1lbnRCeVVJZCkge1xuICAgICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgICAgZGVsZXRlIGVsZW1lbnRCeVVJZFt1aWRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKF9hID0gZWxlbWVudEJ5VUlkW3VpZF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGVsZW1lbnRCeVVJZFt1aWRdID0gbmV3IFdlYWtIVE1MRWxlbWVudChnZXRXaW5kb3csIGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChnZXRUYWJzdGVyT25FbGVtZW50KHRhYnN0ZXIsIGVsZW1lbnQpIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKFRBQlNURVJfQVRUUklCVVRFX05BTUUpKSB7XG4gICAgICB1cGRhdGVUYWJzdGVyQnlBdHRyaWJ1dGUodGFic3RlciwgZWxlbWVudCwgcmVtb3ZlZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gIH1cblxuICBjb25zdCBvYnNlcnZlciA9IGRvbS5jcmVhdGVNdXRhdGlvbk9ic2VydmVyKG9uTXV0YXRpb24pO1xuXG4gIGlmIChzeW5jU3RhdGUpIHtcbiAgICB1cGRhdGVUYWJzdGVyRWxlbWVudHMoZ2V0V2luZG93KCkuZG9jdW1lbnQuYm9keSk7XG4gIH1cblxuICBvYnNlcnZlci5vYnNlcnZlKGRvYywge1xuICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgYXR0cmlidXRlRmlsdGVyOiBbVEFCU1RFUl9BVFRSSUJVVEVfTkFNRV1cbiAgfSk7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9O1xufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5jb25zdCBfY29uZGl0aW9uQ2hlY2tUaW1lb3V0ID0gMTAwO1xuY2xhc3MgT2JzZXJ2ZWRFbGVtZW50QVBJIGV4dGVuZHMgU3Vic2NyaWJhYmxlIHtcbiAgY29uc3RydWN0b3IodGFic3Rlcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fd2FpdGluZyA9IHt9O1xuICAgIHRoaXMuX2xhc3RSZXF1ZXN0Rm9jdXNJZCA9IDA7XG4gICAgdGhpcy5fb2JzZXJ2ZWRCeUlkID0ge307XG4gICAgdGhpcy5fb2JzZXJ2ZWRCeU5hbWUgPSB7fTtcbiAgICB0aGlzLl9jdXJyZW50UmVxdWVzdFRpbWVzdGFtcCA9IDA7XG5cbiAgICB0aGlzLl9vbkZvY3VzID0gZSA9PiB7XG4gICAgICBpZiAoZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fY3VycmVudFJlcXVlc3Q7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICBjb25zdCBkZWx0YSA9IERhdGUubm93KCkgLSB0aGlzLl9jdXJyZW50UmVxdWVzdFRpbWVzdGFtcDtcblxuICAgICAgICAgIGNvbnN0IHNldHRsZVRpbWUgPSAzMDA7XG5cbiAgICAgICAgICBpZiAoZGVsdGEgPj0gc2V0dGxlVGltZSkge1xuICAgICAgICAgICAgLy8gR2l2aW5nIHNvbWUgdGltZSBmb3IgdGhlIGZvY3VzIHRvIHNldHRsZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgY2FuY2VsbGluZyB0aGUgY3VycmVudCByZXF1ZXN0IG9uIGZvY3VzIGNoYW5nZS5cbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UmVxdWVzdDtcbiAgICAgICAgICAgIGN1cnJlbnQuY2FuY2VsKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub25PYnNlcnZlZEVsZW1lbnRVcGRhdGUgPSBlbGVtZW50ID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgY29uc3Qgb2JzZXJ2ZWQgPSAoX2EgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2JzZXJ2ZWQ7XG4gICAgICBjb25zdCB1aWQgPSBnZXRFbGVtZW50VUlkKHRoaXMuX3dpbiwgZWxlbWVudCk7XG4gICAgICBsZXQgaW5mbyA9IHRoaXMuX29ic2VydmVkQnlJZFt1aWRdO1xuXG4gICAgICBpZiAob2JzZXJ2ZWQgJiYgZG9jdW1lbnRDb250YWlucyhlbGVtZW50Lm93bmVyRG9jdW1lbnQsIGVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghaW5mbykge1xuICAgICAgICAgIGluZm8gPSB0aGlzLl9vYnNlcnZlZEJ5SWRbdWlkXSA9IHtcbiAgICAgICAgICAgIGVsZW1lbnQ6IG5ldyBXZWFrSFRNTEVsZW1lbnQodGhpcy5fd2luLCBlbGVtZW50KVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBvYnNlcnZlZC5uYW1lcy5zb3J0KCk7XG4gICAgICAgIGNvbnN0IG9ic2VydmVkTmFtZXMgPSBvYnNlcnZlZC5uYW1lcztcbiAgICAgICAgY29uc3QgcHJldk5hbWVzID0gaW5mby5wcmV2TmFtZXM7IC8vIHByZXZOYW1lcyBhcmUgYWxyZWFkeSBzb3J0ZWRcblxuICAgICAgICBpZiAodGhpcy5faXNPYnNlcnZlZE5hbWVzVXBkYXRlZChvYnNlcnZlZE5hbWVzLCBwcmV2TmFtZXMpKSB7XG4gICAgICAgICAgaWYgKHByZXZOYW1lcykge1xuICAgICAgICAgICAgcHJldk5hbWVzLmZvckVhY2gocHJldk5hbWUgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBvYm4gPSB0aGlzLl9vYnNlcnZlZEJ5TmFtZVtwcmV2TmFtZV07XG5cbiAgICAgICAgICAgICAgaWYgKG9ibiAmJiBvYm5bdWlkXSkge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvYm4pLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBvYm5bdWlkXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX29ic2VydmVkQnlOYW1lW3ByZXZOYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGluZm8ucHJldk5hbWVzID0gb2JzZXJ2ZWROYW1lcztcbiAgICAgICAgfVxuXG4gICAgICAgIG9ic2VydmVkTmFtZXMuZm9yRWFjaChvYnNlcnZlZE5hbWUgPT4ge1xuICAgICAgICAgIGxldCBvYm4gPSB0aGlzLl9vYnNlcnZlZEJ5TmFtZVtvYnNlcnZlZE5hbWVdO1xuXG4gICAgICAgICAgaWYgKCFvYm4pIHtcbiAgICAgICAgICAgIG9ibiA9IHRoaXMuX29ic2VydmVkQnlOYW1lW29ic2VydmVkTmFtZV0gPSB7fTtcbiAgICAgICAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG5cblxuICAgICAgICAgIG9iblt1aWRdID0gaW5mbztcblxuICAgICAgICAgIHRoaXMuX3dhaXRDb25kaXRpb25hbChvYnNlcnZlZE5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoaW5mbykge1xuICAgICAgICBjb25zdCBwcmV2TmFtZXMgPSBpbmZvLnByZXZOYW1lcztcblxuICAgICAgICBpZiAocHJldk5hbWVzKSB7XG4gICAgICAgICAgcHJldk5hbWVzLmZvckVhY2gocHJldk5hbWUgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JuID0gdGhpcy5fb2JzZXJ2ZWRCeU5hbWVbcHJldk5hbWVdO1xuXG4gICAgICAgICAgICBpZiAob2JuICYmIG9iblt1aWRdKSB7XG4gICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvYm4pLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgb2JuW3VpZF07XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX29ic2VydmVkQnlOYW1lW3ByZXZOYW1lXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX29ic2VydmVkQnlJZFt1aWRdO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl90YWJzdGVyID0gdGFic3RlcjtcbiAgICB0aGlzLl93aW4gPSB0YWJzdGVyLmdldFdpbmRvdztcbiAgICB0YWJzdGVyLnF1ZXVlSW5pdCgoKSA9PiB7XG4gICAgICB0aGlzLl90YWJzdGVyLmZvY3VzZWRFbGVtZW50LnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC51bnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuX3dhaXRpbmcpKSB7XG4gICAgICB0aGlzLl9yZWplY3RXYWl0aW5nKGtleSk7XG4gICAgfVxuXG4gICAgdGhpcy5fb2JzZXJ2ZWRCeUlkID0ge307XG4gICAgdGhpcy5fb2JzZXJ2ZWRCeU5hbWUgPSB7fTtcbiAgfVxuXG4gIF9yZWplY3RXYWl0aW5nKGtleSwgc2hvdWxkUmVzb2x2ZSkge1xuICAgIGNvbnN0IHcgPSB0aGlzLl93YWl0aW5nW2tleV07XG5cbiAgICBpZiAodykge1xuICAgICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICAgIGlmICh3LnRpbWVyKSB7XG4gICAgICAgIHdpbi5jbGVhclRpbWVvdXQody50aW1lcik7XG4gICAgICB9XG5cbiAgICAgIGlmICh3LmNvbmRpdGlvblRpbWVyKSB7XG4gICAgICAgIHdpbi5jbGVhclRpbWVvdXQody5jb25kaXRpb25UaW1lcik7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2hvdWxkUmVzb2x2ZSAmJiB3LnJlamVjdCkge1xuICAgICAgICB3LnJlamVjdCgpO1xuICAgICAgfSBlbHNlIGlmIChzaG91bGRSZXNvbHZlICYmIHcucmVzb2x2ZSkge1xuICAgICAgICB3LnJlc29sdmUobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSB0aGlzLl93YWl0aW5nW2tleV07XG4gICAgfVxuICB9XG5cbiAgX2lzT2JzZXJ2ZWROYW1lc1VwZGF0ZWQoY3VyLCBwcmV2KSB7XG4gICAgaWYgKCFwcmV2IHx8IGN1ci5sZW5ndGggIT09IHByZXYubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1ci5sZW5ndGg7ICsraSkge1xuICAgICAgaWYgKGN1cltpXSAhPT0gcHJldltpXSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXHJcbiAgICogUmV0dXJucyBleGlzdGluZyBlbGVtZW50IGJ5IG9ic2VydmVkIG5hbWVcclxuICAgKlxyXG4gICAqIEBwYXJhbSBvYnNlcnZlZE5hbWUgQW4gb2JzZXJ2ZWQgbmFtZVxyXG4gICAqIEBwYXJhbSBhY2Nlc3NpYmlsaXR5IE9wdGlvbmFsbHksIHJldHVybiBvbmx5IGlmIHRoZSBlbGVtZW50IGlzIGFjY2Vzc2libGUgb3IgZm9jdXNhYmxlXHJcbiAgICogQHJldHVybnMgSFRNTEVsZW1lbnQgfCBudWxsXHJcbiAgICovXG5cblxuICBnZXRFbGVtZW50KG9ic2VydmVkTmFtZSwgYWNjZXNzaWJpbGl0eSkge1xuICAgIGNvbnN0IG8gPSB0aGlzLl9vYnNlcnZlZEJ5TmFtZVtvYnNlcnZlZE5hbWVdO1xuXG4gICAgaWYgKG8pIHtcbiAgICAgIGZvciAoY29uc3QgdWlkIG9mIE9iamVjdC5rZXlzKG8pKSB7XG4gICAgICAgIGxldCBlbCA9IG9bdWlkXS5lbGVtZW50LmdldCgpIHx8IG51bGw7XG5cbiAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHkgPT09IE9ic2VydmVkRWxlbWVudEFjY2Vzc2liaWxpdGllcy5BY2Nlc3NpYmxlICYmICF0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5pc0FjY2Vzc2libGUoZWwpIHx8IGFjY2Vzc2liaWxpdHkgPT09IE9ic2VydmVkRWxlbWVudEFjY2Vzc2liaWxpdGllcy5Gb2N1c2FibGUgJiYgIXRoaXMuX3RhYnN0ZXIuZm9jdXNhYmxlLmlzRm9jdXNhYmxlKGVsLCB0cnVlKSkge1xuICAgICAgICAgICAgZWwgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgb1t1aWRdO1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLl9vYnNlcnZlZEJ5SWRbdWlkXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcclxuICAgKiBXYWl0cyBmb3IgdGhlIGVsZW1lbnQgdG8gYXBwZWFyIGluIHRoZSBET00gYW5kIHJldHVybnMgaXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gb2JzZXJ2ZWROYW1lIEFuIG9ic2VydmVkIG5hbWVcclxuICAgKiBAcGFyYW0gdGltZW91dCBXYWl0IG5vIGxvbmdlciB0aGFuIHRoaXMgdGltZW91dFxyXG4gICAqIEBwYXJhbSBhY2Nlc3NpYmlsaXR5IE9wdGlvbmFsbHksIHdhaXQgZm9yIHRoZSBlbGVtZW50IHRvIGFsc28gYmVjb21lIGFjY2Vzc2libGUgb3IgZm9jdXNhYmxlIGJlZm9yZSByZXR1cm5pbmcgaXRcclxuICAgKiBAcmV0dXJucyBQcm9taXNlPEhUTUxFbGVtZW50IHwgbnVsbD5cclxuICAgKi9cblxuXG4gIHdhaXRFbGVtZW50KG9ic2VydmVkTmFtZSwgdGltZW91dCwgYWNjZXNzaWJpbGl0eSkge1xuICAgIGNvbnN0IGVsID0gdGhpcy5nZXRFbGVtZW50KG9ic2VydmVkTmFtZSwgYWNjZXNzaWJpbGl0eSk7XG5cbiAgICBpZiAoZWwpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDogZ2V0UHJvbWlzZSh0aGlzLl93aW4pLnJlc29sdmUoZWwpLFxuICAgICAgICBjYW5jZWw6ICgpID0+IHtcbiAgICAgICAgICAvKiovXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHByZWZpeDtcblxuICAgIGlmIChhY2Nlc3NpYmlsaXR5ID09PSBPYnNlcnZlZEVsZW1lbnRBY2Nlc3NpYmlsaXRpZXMuQWNjZXNzaWJsZSkge1xuICAgICAgcHJlZml4ID0gXCJhXCI7XG4gICAgfSBlbHNlIGlmIChhY2Nlc3NpYmlsaXR5ID09PSBPYnNlcnZlZEVsZW1lbnRBY2Nlc3NpYmlsaXRpZXMuRm9jdXNhYmxlKSB7XG4gICAgICBwcmVmaXggPSBcImZcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlZml4ID0gXCJfXCI7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gcHJlZml4ICsgb2JzZXJ2ZWROYW1lO1xuICAgIGxldCB3ID0gdGhpcy5fd2FpdGluZ1trZXldO1xuXG4gICAgaWYgKHcgJiYgdy5yZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gdy5yZXF1ZXN0O1xuICAgIH1cblxuICAgIHcgPSB0aGlzLl93YWl0aW5nW2tleV0gPSB7XG4gICAgICB0aW1lcjogdGhpcy5fd2luKCkuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh3LmNvbmRpdGlvblRpbWVyKSB7XG4gICAgICAgICAgdGhpcy5fd2luKCkuY2xlYXJUaW1lb3V0KHcuY29uZGl0aW9uVGltZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX3dhaXRpbmdba2V5XTtcblxuICAgICAgICBpZiAody5yZXNvbHZlKSB7XG4gICAgICAgICAgdy5yZXNvbHZlKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9LCB0aW1lb3V0KVxuICAgIH07XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyAoZ2V0UHJvbWlzZSh0aGlzLl93aW4pKSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB3LnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgdy5yZWplY3QgPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdy5yZXF1ZXN0ID0ge1xuICAgICAgcmVzdWx0OiBwcm9taXNlLFxuICAgICAgY2FuY2VsOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlamVjdFdhaXRpbmcoa2V5LCB0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKGFjY2Vzc2liaWxpdHkgJiYgdGhpcy5nZXRFbGVtZW50KG9ic2VydmVkTmFtZSkpIHtcbiAgICAgIC8vIElmIHRoZSBvYnNlcnZlZCBlbGVtZW50IGlzIGFscmVhZCBpbiBET00sIGJ1dCBub3QgYWNjZXNzaWJsZSB5ZXQsXG4gICAgICAvLyB3ZSBuZWVkIHRvIHJ1biB0aGUgd2FpdCBsb2dpYy5cbiAgICAgIHRoaXMuX3dhaXRDb25kaXRpb25hbChvYnNlcnZlZE5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB3LnJlcXVlc3Q7XG4gIH1cblxuICByZXF1ZXN0Rm9jdXMob2JzZXJ2ZWROYW1lLCB0aW1lb3V0KSB7XG4gICAgY29uc3QgcmVxdWVzdElkID0gKyt0aGlzLl9sYXN0UmVxdWVzdEZvY3VzSWQ7XG4gICAgY29uc3QgY3VycmVudFJlcXVlc3RGb2N1cyA9IHRoaXMuX2N1cnJlbnRSZXF1ZXN0O1xuXG4gICAgaWYgKGN1cnJlbnRSZXF1ZXN0Rm9jdXMpIHtcbiAgICAgIGN1cnJlbnRSZXF1ZXN0Rm9jdXMuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMud2FpdEVsZW1lbnQob2JzZXJ2ZWROYW1lLCB0aW1lb3V0LCBPYnNlcnZlZEVsZW1lbnRBY2Nlc3NpYmlsaXRpZXMuRm9jdXNhYmxlKTtcbiAgICB0aGlzLl9jdXJyZW50UmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgdGhpcy5fY3VycmVudFJlcXVlc3RUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIHJlcXVlc3QucmVzdWx0LmZpbmFsbHkoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2N1cnJlbnRSZXF1ZXN0ID09PSByZXF1ZXN0KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UmVxdWVzdDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzdWx0OiByZXF1ZXN0LnJlc3VsdC50aGVuKGVsZW1lbnQgPT4gdGhpcy5fbGFzdFJlcXVlc3RGb2N1c0lkID09PSByZXF1ZXN0SWQgJiYgZWxlbWVudCA/IHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZm9jdXMoZWxlbWVudCwgdHJ1ZSkgOiBmYWxzZSksXG4gICAgICBjYW5jZWw6ICgpID0+IHtcbiAgICAgICAgcmVxdWVzdC5jYW5jZWwoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgX3dhaXRDb25kaXRpb25hbChvYnNlcnZlZE5hbWUpIHtcbiAgICBjb25zdCB3YWl0aW5nRWxlbWVudEtleSA9IFwiX1wiICsgb2JzZXJ2ZWROYW1lO1xuICAgIGNvbnN0IHdhaXRpbmdBY2Nlc3NpYmxlRWxlbWVudEtleSA9IFwiYVwiICsgb2JzZXJ2ZWROYW1lO1xuICAgIGNvbnN0IHdhaXRpbmdGb2N1c2FibGVFbGVtZW50S2V5ID0gXCJmXCIgKyBvYnNlcnZlZE5hbWU7XG4gICAgY29uc3Qgd2FpdGluZ0VsZW1lbnQgPSB0aGlzLl93YWl0aW5nW3dhaXRpbmdFbGVtZW50S2V5XTtcbiAgICBjb25zdCB3YWl0aW5nQWNjZXNzaWJsZUVsZW1lbnQgPSB0aGlzLl93YWl0aW5nW3dhaXRpbmdBY2Nlc3NpYmxlRWxlbWVudEtleV07XG4gICAgY29uc3Qgd2FpdGluZ0ZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLl93YWl0aW5nW3dhaXRpbmdGb2N1c2FibGVFbGVtZW50S2V5XTtcblxuICAgIGNvbnN0IHdpbiA9IHRoaXMuX3dpbigpO1xuXG4gICAgY29uc3QgcmVzb2x2ZSA9IChlbGVtZW50LCBrZXksIHdhaXRpbmcsIGFjY2Vzc2liaWxpdHkpID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgY29uc3Qgb2JzZXJ2ZWQgPSAoX2EgPSBnZXRUYWJzdGVyT25FbGVtZW50KHRoaXMuX3RhYnN0ZXIsIGVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2JzZXJ2ZWQ7XG5cbiAgICAgIGlmICghb2JzZXJ2ZWQgfHwgIW9ic2VydmVkLm5hbWVzLmluY2x1ZGVzKG9ic2VydmVkTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAod2FpdGluZy50aW1lcikge1xuICAgICAgICB3aW4uY2xlYXJUaW1lb3V0KHdhaXRpbmcudGltZXIpO1xuICAgICAgfVxuXG4gICAgICBkZWxldGUgdGhpcy5fd2FpdGluZ1trZXldO1xuXG4gICAgICBpZiAod2FpdGluZy5yZXNvbHZlKSB7XG4gICAgICAgIHdhaXRpbmcucmVzb2x2ZShlbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy50cmlnZ2VyKGVsZW1lbnQsIHtcbiAgICAgICAgbmFtZXM6IFtvYnNlcnZlZE5hbWVdLFxuICAgICAgICBkZXRhaWxzOiBvYnNlcnZlZC5kZXRhaWxzLFxuICAgICAgICBhY2Nlc3NpYmlsaXR5XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaWYgKHdhaXRpbmdFbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRFbGVtZW50KG9ic2VydmVkTmFtZSk7XG5cbiAgICAgIGlmIChlbGVtZW50ICYmIGRvY3VtZW50Q29udGFpbnMoZWxlbWVudC5vd25lckRvY3VtZW50LCBlbGVtZW50KSkge1xuICAgICAgICByZXNvbHZlKGVsZW1lbnQsIHdhaXRpbmdFbGVtZW50S2V5LCB3YWl0aW5nRWxlbWVudCwgT2JzZXJ2ZWRFbGVtZW50QWNjZXNzaWJpbGl0aWVzLkFueSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdhaXRpbmdBY2Nlc3NpYmxlRWxlbWVudCAmJiAhd2FpdGluZ0FjY2Vzc2libGVFbGVtZW50LmNvbmRpdGlvblRpbWVyKSB7XG4gICAgICBjb25zdCByZXNvbHZlQWNjZXNzaWJsZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudChvYnNlcnZlZE5hbWUpO1xuXG4gICAgICAgIGlmIChlbGVtZW50ICYmIGRvY3VtZW50Q29udGFpbnMoZWxlbWVudC5vd25lckRvY3VtZW50LCBlbGVtZW50KSAmJiB0aGlzLl90YWJzdGVyLmZvY3VzYWJsZS5pc0FjY2Vzc2libGUoZWxlbWVudCkpIHtcbiAgICAgICAgICByZXNvbHZlKGVsZW1lbnQsIHdhaXRpbmdBY2Nlc3NpYmxlRWxlbWVudEtleSwgd2FpdGluZ0FjY2Vzc2libGVFbGVtZW50LCBPYnNlcnZlZEVsZW1lbnRBY2Nlc3NpYmlsaXRpZXMuQWNjZXNzaWJsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2FpdGluZ0FjY2Vzc2libGVFbGVtZW50LmNvbmRpdGlvblRpbWVyID0gd2luLnNldFRpbWVvdXQocmVzb2x2ZUFjY2Vzc2libGUsIF9jb25kaXRpb25DaGVja1RpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXNvbHZlQWNjZXNzaWJsZSgpO1xuICAgIH1cblxuICAgIGlmICh3YWl0aW5nRm9jdXNhYmxlRWxlbWVudCAmJiAhd2FpdGluZ0ZvY3VzYWJsZUVsZW1lbnQuY29uZGl0aW9uVGltZXIpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVGb2N1c2FibGUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnQob2JzZXJ2ZWROYW1lKTtcblxuICAgICAgICBpZiAoZWxlbWVudCAmJiBkb2N1bWVudENvbnRhaW5zKGVsZW1lbnQub3duZXJEb2N1bWVudCwgZWxlbWVudCkgJiYgdGhpcy5fdGFic3Rlci5mb2N1c2FibGUuaXNGb2N1c2FibGUoZWxlbWVudCwgdHJ1ZSkpIHtcbiAgICAgICAgICByZXNvbHZlKGVsZW1lbnQsIHdhaXRpbmdGb2N1c2FibGVFbGVtZW50S2V5LCB3YWl0aW5nRm9jdXNhYmxlRWxlbWVudCwgT2JzZXJ2ZWRFbGVtZW50QWNjZXNzaWJpbGl0aWVzLkZvY3VzYWJsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2FpdGluZ0ZvY3VzYWJsZUVsZW1lbnQuY29uZGl0aW9uVGltZXIgPSB3aW4uc2V0VGltZW91dChyZXNvbHZlRm9jdXNhYmxlLCBfY29uZGl0aW9uQ2hlY2tUaW1lb3V0KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmVzb2x2ZUZvY3VzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgYXJlYUNsYXNzOiBcInRhYnN0ZXItZm9jdXMtb3V0bGluZS1hcmVhXCIsXG4gIG91dGxpbmVDbGFzczogXCJ0YWJzdGVyLWZvY3VzLW91dGxpbmVcIixcbiAgb3V0bGluZUNvbG9yOiBcIiNmZjQ1MDBcIixcbiAgb3V0bGluZVdpZHRoOiAyLFxuICB6SW5kZXg6IDIxNDc0ODM2NDdcbn07XG5sZXQgX3Byb3BzID0gZGVmYXVsdFByb3BzO1xuXG5jbGFzcyBPdXRsaW5lUG9zaXRpb24ge1xuICBjb25zdHJ1Y3RvcihsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pIHtcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgIHRoaXMudG9wID0gdG9wO1xuICAgIHRoaXMucmlnaHQgPSByaWdodDtcbiAgICB0aGlzLmJvdHRvbSA9IGJvdHRvbTtcbiAgfVxuXG4gIGVxdWFsc1RvKG90aGVyKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdCA9PT0gb3RoZXIubGVmdCAmJiB0aGlzLnRvcCA9PT0gb3RoZXIudG9wICYmIHRoaXMucmlnaHQgPT09IG90aGVyLnJpZ2h0ICYmIHRoaXMuYm90dG9tID09PSBvdGhlci5ib3R0b207XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IE91dGxpbmVQb3NpdGlvbih0aGlzLmxlZnQsIHRoaXMudG9wLCB0aGlzLnJpZ2h0LCB0aGlzLmJvdHRvbSk7XG4gIH1cblxufVxuXG5jbGFzcyBPdXRsaW5lQVBJIHtcbiAgY29uc3RydWN0b3IodGFic3Rlcikge1xuICAgIHRoaXMuX2lzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuX2FsbE91dGxpbmVFbGVtZW50cyA9IFtdO1xuXG4gICAgdGhpcy5faW5pdCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX3RhYnN0ZXIua2V5Ym9hcmROYXZpZ2F0aW9uLnN1YnNjcmliZSh0aGlzLl9vbktleWJvYXJkTmF2aWdhdGlvblN0YXRlQ2hhbmdlZCk7XG5cbiAgICAgIHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuc3Vic2NyaWJlKHRoaXMuX29uRm9jdXMpO1xuXG4gICAgICBjb25zdCB3aW4gPSB0aGlzLl93aW4oKTtcblxuICAgICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5fb25TY3JvbGwsIHRydWUpOyAvLyBDYXB0dXJlIVxuXG4gICAgICBpZiAodGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZSkge1xuICAgICAgICB3aW4uZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lLCB0aGlzLl9vbkZ1bGxTY3JlZW5DaGFuZ2VkKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25GdWxsU2NyZWVuQ2hhbmdlZCA9IGUgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9mdWxsU2NyZWVuRWxlbWVudE5hbWUgfHwgIWUudGFyZ2V0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQuYm9keSB8fCBlLnRhcmdldDtcblxuICAgICAgY29uc3Qgb3V0bGluZUVsZW1lbnRzID0gdGhpcy5fZ2V0RE9NKHRhcmdldCk7XG5cbiAgICAgIGlmICh0YXJnZXQub3duZXJEb2N1bWVudCAmJiBvdXRsaW5lRWxlbWVudHMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgZnNFbGVtZW50ID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnRbdGhpcy5fZnVsbFNjcmVlbkVsZW1lbnROYW1lXTtcblxuICAgICAgICBpZiAoZnNFbGVtZW50KSB7XG4gICAgICAgICAgZnNFbGVtZW50LmFwcGVuZENoaWxkKG91dGxpbmVFbGVtZW50cy5jb250YWluZXIpO1xuICAgICAgICAgIHRoaXMuX2Z1bGxTY3JlZW5FbGVtZW50ID0gZnNFbGVtZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldC5vd25lckRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0bGluZUVsZW1lbnRzLmNvbnRhaW5lcik7XG4gICAgICAgICAgdGhpcy5fZnVsbFNjcmVlbkVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25LZXlib2FyZE5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLl9vbkZvY3VzKHRoaXMuX3RhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuZ2V0Rm9jdXNlZEVsZW1lbnQoKSk7XG4gICAgfTtcblxuICAgIHRoaXMuX29uRm9jdXMgPSBlID0+IHtcbiAgICAgIGlmICghdGhpcy5fdXBkYXRlRWxlbWVudChlKSAmJiB0aGlzLl9pc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy5fc2V0VmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX29uU2Nyb2xsID0gZSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX291dGxpbmVkRWxlbWVudCB8fCAhT3V0bGluZUFQSS5faXNQYXJlbnRDaGlsZChlLnRhcmdldCwgdGhpcy5fb3V0bGluZWRFbGVtZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2N1clBvcyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy5fc2V0T3V0bGluZVBvc2l0aW9uKCk7XG4gICAgfTtcblxuICAgIHRoaXMuX3RhYnN0ZXIgPSB0YWJzdGVyO1xuICAgIHRoaXMuX3dpbiA9IHRhYnN0ZXIuZ2V0V2luZG93O1xuICAgIHRhYnN0ZXIucXVldWVJbml0KHRoaXMuX2luaXQpO1xuXG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKFwib25mdWxsc2NyZWVuY2hhbmdlXCIgaW4gZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZSA9IFwiZnVsbHNjcmVlbmNoYW5nZVwiO1xuICAgICAgICB0aGlzLl9mdWxsU2NyZWVuRWxlbWVudE5hbWUgPSBcImZ1bGxzY3JlZW5FbGVtZW50XCI7XG4gICAgICB9IGVsc2UgaWYgKFwib253ZWJraXRmdWxsc2NyZWVuY2hhbmdlXCIgaW4gZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZSA9IFwid2Via2l0ZnVsbHNjcmVlbmNoYW5nZVwiO1xuICAgICAgICB0aGlzLl9mdWxsU2NyZWVuRWxlbWVudE5hbWUgPSBcIndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50XCI7XG4gICAgICB9IGVsc2UgaWYgKFwib25tb3pmdWxsc2NyZWVuY2hhbmdlXCIgaW4gZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZSA9IFwibW96ZnVsbHNjcmVlbmNoYW5nZVwiO1xuICAgICAgICB0aGlzLl9mdWxsU2NyZWVuRWxlbWVudE5hbWUgPSBcIm1vekZ1bGxTY3JlZW5FbGVtZW50XCI7XG4gICAgICB9IGVsc2UgaWYgKFwib25tc2Z1bGxzY3JlZW5jaGFuZ2VcIiBpbiBkb2N1bWVudCkge1xuICAgICAgICB0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lID0gXCJtc2Z1bGxzY3JlZW5jaGFuZ2VcIjtcbiAgICAgICAgdGhpcy5fZnVsbFNjcmVlbkVsZW1lbnROYW1lID0gXCJtc0Z1bGxzY3JlZW5FbGVtZW50XCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0dXAocHJvcHMpIHtcbiAgICBfcHJvcHMgPSB7IC4uLl9wcm9wcyxcbiAgICAgIC4uLnByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHdpbiA9IHRoaXMuX3dpbigpO1xuXG4gICAgaWYgKCF3aW4uX190YWJzdGVyT3V0bGluZSkge1xuICAgICAgd2luLl9fdGFic3Rlck91dGxpbmUgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAoIXdpbi5fX3RhYnN0ZXJPdXRsaW5lLnN0eWxlKSB7XG4gICAgICB3aW4uX190YWJzdGVyT3V0bGluZS5zdHlsZSA9IGFwcGVuZFN0eWxlcyh3aW4uZG9jdW1lbnQsIF9wcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcyB8fCAhcHJvcHMuYXJlYUNsYXNzKSB7XG4gICAgICB3aW4uZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKGRlZmF1bHRQcm9wcy5hcmVhQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW4uZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGRlZmF1bHRQcm9wcy5hcmVhQ2xhc3MpO1xuICAgIH1cbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luKCk7XG5cbiAgICBpZiAodGhpcy5fdXBkYXRlVGltZXIpIHtcbiAgICAgIHdpbi5jbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlVGltZXIpO1xuICAgICAgdGhpcy5fdXBkYXRlVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFic3Rlci5rZXlib2FyZE5hdmlnYXRpb24udW5zdWJzY3JpYmUodGhpcy5fb25LZXlib2FyZE5hdmlnYXRpb25TdGF0ZUNoYW5nZWQpO1xuXG4gICAgdGhpcy5fdGFic3Rlci5mb2N1c2VkRWxlbWVudC51bnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzKTtcblxuICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuX29uU2Nyb2xsLCB0cnVlKTtcblxuICAgIGlmICh0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lKSB7XG4gICAgICB3aW4uZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lLCB0aGlzLl9vbkZ1bGxTY3JlZW5DaGFuZ2VkKTtcbiAgICB9XG5cbiAgICB0aGlzLl9hbGxPdXRsaW5lRWxlbWVudHMuZm9yRWFjaChvdXRsaW5lRWxlbWVudHMgPT4gdGhpcy5fcmVtb3ZlRE9NKG91dGxpbmVFbGVtZW50cy5jb250YWluZXIpKTtcblxuICAgIHRoaXMuX2FsbE91dGxpbmVFbGVtZW50cyA9IFtdO1xuICAgIGRlbGV0ZSB0aGlzLl9vdXRsaW5lZEVsZW1lbnQ7XG4gICAgZGVsZXRlIHRoaXMuX2N1clBvcztcbiAgICBkZWxldGUgdGhpcy5fY3VyT3V0bGluZUVsZW1lbnRzO1xuICAgIGRlbGV0ZSB0aGlzLl9mdWxsU2NyZWVuRWxlbWVudDtcbiAgfVxuXG4gIF9zaG91bGRTaG93Q3VzdG9tT3V0bGluZShlbGVtZW50KSB7XG4gICAgY29uc3QgdGFic3Rlck9uRWxlbWVudCA9IGdldFRhYnN0ZXJPbkVsZW1lbnQodGhpcy5fdGFic3RlciwgZWxlbWVudCk7XG5cbiAgICBpZiAodGFic3Rlck9uRWxlbWVudCAmJiB0YWJzdGVyT25FbGVtZW50Lm91dGxpbmUgJiYgdGFic3Rlck9uRWxlbWVudC5vdXRsaW5lLmlzSWdub3JlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBlbGVtZW50OyBpOyBpID0gaS5wYXJlbnRFbGVtZW50KSB7XG4gICAgICBpZiAoaS5jbGFzc0xpc3QgJiYgaS5jbGFzc0xpc3QuY29udGFpbnMoX3Byb3BzLmFyZWFDbGFzcykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgX3VwZGF0ZUVsZW1lbnQoZSkge1xuICAgIHRoaXMuX291dGxpbmVkRWxlbWVudCA9IHVuZGVmaW5lZDtcblxuICAgIGlmICh0aGlzLl91cGRhdGVUaW1lcikge1xuICAgICAgdGhpcy5fd2luKCkuY2xlYXJUaW1lb3V0KHRoaXMuX3VwZGF0ZVRpbWVyKTtcblxuICAgICAgdGhpcy5fdXBkYXRlVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5fY3VyUG9zID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKCF0aGlzLl90YWJzdGVyLmtleWJvYXJkTmF2aWdhdGlvbi5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChlKSB7XG4gICAgICAvLyBUT0RPOiBJdCdzIGhhcmQgKGFuZCBub3QgbmVjZXNzYXJ5KSB0byBjb21lIHVwIHdpdGggZXZlcnkgcG9zc2libGVcbiAgICAgIC8vIGNvbmRpdGlvbiB3aGVuIHRoZXJlIHNob3VsZCBiZSBubyBvdXRsaW5lLCBpdCdzIGJldHRlciB0byBhZGQgYW5cbiAgICAgIC8vIEFQSSB0byBjdXN0b21pemUgdGhlIGlnbm9yZXMuXG4gICAgICBpZiAoZS50YWdOYW1lID09PSBcIklOUFVUXCIpIHtcbiAgICAgICAgY29uc3QgaW5wdXRUeXBlID0gZS50eXBlO1xuICAgICAgICBjb25zdCBvdXRsaW5lZElucHV0VHlwZXMgPSB7XG4gICAgICAgICAgYnV0dG9uOiB0cnVlLFxuICAgICAgICAgIGNoZWNrYm94OiB0cnVlLFxuICAgICAgICAgIGZpbGU6IHRydWUsXG4gICAgICAgICAgaW1hZ2U6IHRydWUsXG4gICAgICAgICAgcmFkaW86IHRydWUsXG4gICAgICAgICAgcmFuZ2U6IHRydWUsXG4gICAgICAgICAgcmVzZXQ6IHRydWUsXG4gICAgICAgICAgc3VibWl0OiB0cnVlXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCEoaW5wdXRUeXBlIGluIG91dGxpbmVkSW5wdXRUeXBlcykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZS50YWdOYW1lID09PSBcIlRFWFRBUkVBXCIgfHwgZS5jb250ZW50RWRpdGFibGUgPT09IFwidHJ1ZVwiIHx8IGUudGFnTmFtZSA9PT0gXCJJRlJBTUVcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fc2hvdWxkU2hvd0N1c3RvbU91dGxpbmUoZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fdGFic3Rlci5rZXlib2FyZE5hdmlnYXRpb24uaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKCkpIHtcbiAgICAgICAgdGhpcy5fb3V0bGluZWRFbGVtZW50ID0gZTtcblxuICAgICAgICB0aGlzLl91cGRhdGVPdXRsaW5lKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIF91cGRhdGVPdXRsaW5lKCkge1xuICAgIHRoaXMuX3NldE91dGxpbmVQb3NpdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuX3VwZGF0ZVRpbWVyKSB7XG4gICAgICB0aGlzLl93aW4oKS5jbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlVGltZXIpO1xuXG4gICAgICB0aGlzLl91cGRhdGVUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX291dGxpbmVkRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZVRpbWVyID0gdGhpcy5fd2luKCkuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl91cGRhdGVUaW1lciA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy5fdXBkYXRlT3V0bGluZSgpO1xuICAgIH0sIDMwKTtcbiAgfVxuXG4gIF9zZXRWaXNpYmlsaXR5KHZpc2libGUpIHtcbiAgICB0aGlzLl9pc1Zpc2libGUgPSB2aXNpYmxlO1xuXG4gICAgaWYgKHRoaXMuX2N1ck91dGxpbmVFbGVtZW50cykge1xuICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgdGhpcy5fY3VyT3V0bGluZUVsZW1lbnRzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGAke19wcm9wcy5vdXRsaW5lQ2xhc3N9X3Zpc2libGVgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2N1ck91dGxpbmVFbGVtZW50cy5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShgJHtfcHJvcHMub3V0bGluZUNsYXNzfV92aXNpYmxlYCk7XG5cbiAgICAgICAgdGhpcy5fY3VyUG9zID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zZXRPdXRsaW5lUG9zaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLl9vdXRsaW5lZEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgYm91bmRpbmdSZWN0ID0gZ2V0Qm91bmRpbmdSZWN0KHRoaXMuX3dpbiwgdGhpcy5fb3V0bGluZWRFbGVtZW50KTtcbiAgICBjb25zdCBwb3NpdGlvbiA9IG5ldyBPdXRsaW5lUG9zaXRpb24oYm91bmRpbmdSZWN0LmxlZnQsIGJvdW5kaW5nUmVjdC50b3AsIGJvdW5kaW5nUmVjdC5yaWdodCwgYm91bmRpbmdSZWN0LmJvdHRvbSk7XG5cbiAgICBpZiAodGhpcy5fY3VyUG9zICYmIHBvc2l0aW9uLmVxdWFsc1RvKHRoaXMuX2N1clBvcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRsaW5lRWxlbWVudHMgPSB0aGlzLl9nZXRET00odGhpcy5fb3V0bGluZWRFbGVtZW50KTtcblxuICAgIGNvbnN0IHdpbiA9IHRoaXMuX291dGxpbmVkRWxlbWVudC5vd25lckRvY3VtZW50ICYmIHRoaXMuX291dGxpbmVkRWxlbWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xuXG4gICAgaWYgKCFvdXRsaW5lRWxlbWVudHMgfHwgIXdpbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jdXJPdXRsaW5lRWxlbWVudHMgIT09IG91dGxpbmVFbGVtZW50cykge1xuICAgICAgdGhpcy5fc2V0VmlzaWJpbGl0eShmYWxzZSk7XG5cbiAgICAgIHRoaXMuX2N1ck91dGxpbmVFbGVtZW50cyA9IG91dGxpbmVFbGVtZW50cztcbiAgICB9XG5cbiAgICB0aGlzLl9jdXJQb3MgPSBwb3NpdGlvbjtcbiAgICBjb25zdCBwID0gcG9zaXRpb24uY2xvbmUoKTtcbiAgICBsZXQgaGFzQWJzb2x1dGVQb3NpdGlvbmVkUGFyZW50ID0gZmFsc2U7XG4gICAgbGV0IGhhc0ZpeGVkUG9zaXRpb25lZFBhcmVudCA9IGZhbHNlO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IG91dGxpbmVFbGVtZW50cy5jb250YWluZXI7XG4gICAgY29uc3Qgc2Nyb2xsaW5nRWxlbWVudCA9IGNvbnRhaW5lciAmJiBjb250YWluZXIub3duZXJEb2N1bWVudCAmJiBjb250YWluZXIub3duZXJEb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50O1xuXG4gICAgaWYgKCFzY3JvbGxpbmdFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgcGFyZW50ID0gdGhpcy5fb3V0bGluZWRFbGVtZW50LnBhcmVudEVsZW1lbnQ7IHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFOyBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgLy8gVGhlIGVsZW1lbnQgbWlnaHQgYmUgcGFydGlhbGx5IHZpc2libGUgd2l0aGluIGl0cyBzY3JvbGxhYmxlIHBhcmVudCxcbiAgICAgIC8vIHJlZHVjZSB0aGUgYm91bmRpbmcgcmVjdCBpZiB0aGlzIGlzIHRoZSBjYXNlLlxuICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy5fZnVsbFNjcmVlbkVsZW1lbnQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGJvdW5kaW5nUmVjdCA9IGdldEJvdW5kaW5nUmVjdCh0aGlzLl93aW4sIHBhcmVudCk7XG4gICAgICBjb25zdCB3aW4gPSBwYXJlbnQub3duZXJEb2N1bWVudCAmJiBwYXJlbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcblxuICAgICAgaWYgKCF3aW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luLmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gY29tcHV0ZWRTdHlsZS5wb3NpdGlvbjtcblxuICAgICAgaWYgKHBvc2l0aW9uID09PSBcImFic29sdXRlXCIpIHtcbiAgICAgICAgaGFzQWJzb2x1dGVQb3NpdGlvbmVkUGFyZW50ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAocG9zaXRpb24gPT09IFwiZml4ZWRcIiB8fCBwb3NpdGlvbiA9PT0gXCJzdGlja3lcIikge1xuICAgICAgICBoYXNGaXhlZFBvc2l0aW9uZWRQYXJlbnQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29tcHV0ZWRTdHlsZS5vdmVyZmxvdyA9PT0gXCJ2aXNpYmxlXCIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaGFzQWJzb2x1dGVQb3NpdGlvbmVkUGFyZW50ICYmICFoYXNGaXhlZFBvc2l0aW9uZWRQYXJlbnQgfHwgY29tcHV0ZWRTdHlsZS5vdmVyZmxvdyA9PT0gXCJoaWRkZW5cIikge1xuICAgICAgICBpZiAoYm91bmRpbmdSZWN0LmxlZnQgPiBwLmxlZnQpIHtcbiAgICAgICAgICBwLmxlZnQgPSBib3VuZGluZ1JlY3QubGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChib3VuZGluZ1JlY3QudG9wID4gcC50b3ApIHtcbiAgICAgICAgICBwLnRvcCA9IGJvdW5kaW5nUmVjdC50b3A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYm91bmRpbmdSZWN0LnJpZ2h0IDwgcC5yaWdodCkge1xuICAgICAgICAgIHAucmlnaHQgPSBib3VuZGluZ1JlY3QucmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYm91bmRpbmdSZWN0LmJvdHRvbSA8IHAuYm90dG9tKSB7XG4gICAgICAgICAgcC5ib3R0b20gPSBib3VuZGluZ1JlY3QuYm90dG9tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWxsUmVjdCA9IGdldEJvdW5kaW5nUmVjdCh0aGlzLl93aW4sIHNjcm9sbGluZ0VsZW1lbnQpO1xuICAgIGNvbnN0IGFsbFdpZHRoID0gYWxsUmVjdC5sZWZ0ICsgYWxsUmVjdC5yaWdodDtcbiAgICBjb25zdCBhbGxIZWlnaHQgPSBhbGxSZWN0LnRvcCArIGFsbFJlY3QuYm90dG9tO1xuICAgIGNvbnN0IG93ID0gX3Byb3BzLm91dGxpbmVXaWR0aDtcbiAgICBwLmxlZnQgPSBwLmxlZnQgPiBvdyA/IHAubGVmdCAtIG93IDogMDtcbiAgICBwLnRvcCA9IHAudG9wID4gb3cgPyBwLnRvcCAtIG93IDogMDtcbiAgICBwLnJpZ2h0ID0gcC5yaWdodCA8IGFsbFdpZHRoIC0gb3cgPyBwLnJpZ2h0ICsgb3cgOiBhbGxXaWR0aDtcbiAgICBwLmJvdHRvbSA9IHAuYm90dG9tIDwgYWxsSGVpZ2h0IC0gb3cgPyBwLmJvdHRvbSArIG93IDogYWxsSGVpZ2h0O1xuICAgIGNvbnN0IHdpZHRoID0gcC5yaWdodCAtIHAubGVmdDtcbiAgICBjb25zdCBoZWlnaHQgPSBwLmJvdHRvbSAtIHAudG9wO1xuXG4gICAgaWYgKHdpZHRoID4gb3cgKiAyICYmIGhlaWdodCA+IG93ICogMikge1xuICAgICAgY29uc3QgbGVmdEJvcmRlck5vZGUgPSBvdXRsaW5lRWxlbWVudHMubGVmdDtcbiAgICAgIGNvbnN0IHRvcEJvcmRlck5vZGUgPSBvdXRsaW5lRWxlbWVudHMudG9wO1xuICAgICAgY29uc3QgcmlnaHRCb3JkZXJOb2RlID0gb3V0bGluZUVsZW1lbnRzLnJpZ2h0O1xuICAgICAgY29uc3QgYm90dG9tQm9yZGVyTm9kZSA9IG91dGxpbmVFbGVtZW50cy5ib3R0b207XG4gICAgICBjb25zdCBzeCA9IHRoaXMuX2Z1bGxTY3JlZW5FbGVtZW50IHx8IGhhc0ZpeGVkUG9zaXRpb25lZFBhcmVudCA/IDAgOiB3aW4ucGFnZVhPZmZzZXQ7XG4gICAgICBjb25zdCBzeSA9IHRoaXMuX2Z1bGxTY3JlZW5FbGVtZW50IHx8IGhhc0ZpeGVkUG9zaXRpb25lZFBhcmVudCA/IDAgOiB3aW4ucGFnZVlPZmZzZXQ7XG4gICAgICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSBoYXNGaXhlZFBvc2l0aW9uZWRQYXJlbnQgPyBcImZpeGVkXCIgOiBcImFic29sdXRlXCI7XG4gICAgICBjb250YWluZXIuc3R5bGUuYmFja2dyb3VuZCA9IF9wcm9wcy5vdXRsaW5lQ29sb3I7XG4gICAgICBsZWZ0Qm9yZGVyTm9kZS5zdHlsZS53aWR0aCA9IHJpZ2h0Qm9yZGVyTm9kZS5zdHlsZS53aWR0aCA9IHRvcEJvcmRlck5vZGUuc3R5bGUuaGVpZ2h0ID0gYm90dG9tQm9yZGVyTm9kZS5zdHlsZS5oZWlnaHQgPSBfcHJvcHMub3V0bGluZVdpZHRoICsgXCJweFwiO1xuICAgICAgbGVmdEJvcmRlck5vZGUuc3R5bGUubGVmdCA9IHRvcEJvcmRlck5vZGUuc3R5bGUubGVmdCA9IGJvdHRvbUJvcmRlck5vZGUuc3R5bGUubGVmdCA9IHAubGVmdCArIHN4ICsgXCJweFwiO1xuICAgICAgcmlnaHRCb3JkZXJOb2RlLnN0eWxlLmxlZnQgPSBwLmxlZnQgKyBzeCArIHdpZHRoIC0gb3cgKyBcInB4XCI7XG4gICAgICBsZWZ0Qm9yZGVyTm9kZS5zdHlsZS50b3AgPSByaWdodEJvcmRlck5vZGUuc3R5bGUudG9wID0gdG9wQm9yZGVyTm9kZS5zdHlsZS50b3AgPSBwLnRvcCArIHN5ICsgXCJweFwiO1xuICAgICAgYm90dG9tQm9yZGVyTm9kZS5zdHlsZS50b3AgPSBwLnRvcCArIHN5ICsgaGVpZ2h0IC0gb3cgKyBcInB4XCI7XG4gICAgICBsZWZ0Qm9yZGVyTm9kZS5zdHlsZS5oZWlnaHQgPSByaWdodEJvcmRlck5vZGUuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgXCJweFwiO1xuICAgICAgdG9wQm9yZGVyTm9kZS5zdHlsZS53aWR0aCA9IGJvdHRvbUJvcmRlck5vZGUuc3R5bGUud2lkdGggPSB3aWR0aCArIFwicHhcIjtcblxuICAgICAgdGhpcy5fc2V0VmlzaWJpbGl0eSh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0VmlzaWJpbGl0eShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgX2dldERPTShjb250ZXh0RWxlbWVudCkge1xuICAgIGNvbnN0IGRvYyA9IGNvbnRleHRFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgY29uc3Qgd2luID0gZG9jICYmIGRvYy5kZWZhdWx0VmlldztcblxuICAgIGlmICghZG9jIHx8ICF3aW4gfHwgIXdpbi5fX3RhYnN0ZXJPdXRsaW5lKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghd2luLl9fdGFic3Rlck91dGxpbmUuc3R5bGUpIHtcbiAgICAgIHdpbi5fX3RhYnN0ZXJPdXRsaW5lLnN0eWxlID0gYXBwZW5kU3R5bGVzKGRvYywgX3Byb3BzKTtcbiAgICB9XG5cbiAgICBpZiAoIXdpbi5fX3RhYnN0ZXJPdXRsaW5lLmVsZW1lbnRzKSB7XG4gICAgICBjb25zdCBvdXRsaW5lRWxlbWVudHMgPSB7XG4gICAgICAgIGNvbnRhaW5lcjogZG9jLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksXG4gICAgICAgIGxlZnQ6IGRvYy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLFxuICAgICAgICB0b3A6IGRvYy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLFxuICAgICAgICByaWdodDogZG9jLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksXG4gICAgICAgIGJvdHRvbTogZG9jLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIilcbiAgICAgIH07XG4gICAgICBvdXRsaW5lRWxlbWVudHMuY29udGFpbmVyLmNsYXNzTmFtZSA9IF9wcm9wcy5vdXRsaW5lQ2xhc3M7XG4gICAgICBvdXRsaW5lRWxlbWVudHMubGVmdC5jbGFzc05hbWUgPSBgJHtfcHJvcHMub3V0bGluZUNsYXNzfV9fbGVmdGA7XG4gICAgICBvdXRsaW5lRWxlbWVudHMudG9wLmNsYXNzTmFtZSA9IGAke19wcm9wcy5vdXRsaW5lQ2xhc3N9X190b3BgO1xuICAgICAgb3V0bGluZUVsZW1lbnRzLnJpZ2h0LmNsYXNzTmFtZSA9IGAke19wcm9wcy5vdXRsaW5lQ2xhc3N9X19yaWdodGA7XG4gICAgICBvdXRsaW5lRWxlbWVudHMuYm90dG9tLmNsYXNzTmFtZSA9IGAke19wcm9wcy5vdXRsaW5lQ2xhc3N9X19ib3R0b21gO1xuICAgICAgb3V0bGluZUVsZW1lbnRzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChvdXRsaW5lRWxlbWVudHMubGVmdCk7XG4gICAgICBvdXRsaW5lRWxlbWVudHMuY29udGFpbmVyLmFwcGVuZENoaWxkKG91dGxpbmVFbGVtZW50cy50b3ApO1xuICAgICAgb3V0bGluZUVsZW1lbnRzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChvdXRsaW5lRWxlbWVudHMucmlnaHQpO1xuICAgICAgb3V0bGluZUVsZW1lbnRzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChvdXRsaW5lRWxlbWVudHMuYm90dG9tKTtcbiAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKG91dGxpbmVFbGVtZW50cy5jb250YWluZXIpO1xuICAgICAgd2luLl9fdGFic3Rlck91dGxpbmUuZWxlbWVudHMgPSBvdXRsaW5lRWxlbWVudHM7IC8vIFRPRE86IE1ha2UgYSBnYXJiYWdlIGNvbGxlY3RvciB0byByZW1vdmUgdGhlIHJlZmVyZW5jZXNcbiAgICAgIC8vIHRvIHRoZSBvdXRsaW5lcyB3aGljaCBhcmUgbm93aGVyZSBpbiB0aGUgRE9NIGFueW1vcmUuXG5cbiAgICAgIHRoaXMuX2FsbE91dGxpbmVFbGVtZW50cy5wdXNoKG91dGxpbmVFbGVtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdpbi5fX3RhYnN0ZXJPdXRsaW5lLmVsZW1lbnRzO1xuICB9XG5cbiAgX3JlbW92ZURPTShjb250ZXh0RWxlbWVudCkge1xuICAgIGNvbnN0IHdpbiA9IGNvbnRleHRFbGVtZW50Lm93bmVyRG9jdW1lbnQgJiYgY29udGV4dEVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICBjb25zdCBvdXRsaW5lID0gd2luICYmIHdpbi5fX3RhYnN0ZXJPdXRsaW5lO1xuXG4gICAgaWYgKCFvdXRsaW5lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG91dGxpbmUuc3R5bGUgJiYgb3V0bGluZS5zdHlsZS5wYXJlbnROb2RlKSB7XG4gICAgICBvdXRsaW5lLnN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob3V0bGluZS5zdHlsZSk7XG4gICAgICBkZWxldGUgb3V0bGluZS5zdHlsZTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRsaW5lRWxlbWVudHMgPSBvdXRsaW5lICYmIG91dGxpbmUuZWxlbWVudHM7XG5cbiAgICBpZiAob3V0bGluZUVsZW1lbnRzKSB7XG4gICAgICBpZiAob3V0bGluZUVsZW1lbnRzLmNvbnRhaW5lci5wYXJlbnROb2RlKSB7XG4gICAgICAgIG91dGxpbmVFbGVtZW50cy5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvdXRsaW5lRWxlbWVudHMuY29udGFpbmVyKTtcbiAgICAgIH1cblxuICAgICAgZGVsZXRlIG91dGxpbmUuZWxlbWVudHM7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIF9pc1BhcmVudENoaWxkKHBhcmVudCwgY2hpbGQpIHtcbiAgICByZXR1cm4gY2hpbGQgPT09IHBhcmVudCB8fCAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICEhKHBhcmVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjaGlsZCkgJiBkb2N1bWVudC5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gYXBwZW5kU3R5bGVzKGRvY3VtZW50LCBwcm9wcykge1xuICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgc3R5bGUudHlwZSA9IFwidGV4dC9jc3NcIjtcbiAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZ2V0T3V0bGluZVN0eWxlcyhwcm9wcykpKTtcbiAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gZ2V0T3V0bGluZVN0eWxlcyhwcm9wcykge1xuICByZXR1cm4gYFxuLiR7cHJvcHMuYXJlYUNsYXNzfSAqLCAuJHtwcm9wcy5hcmVhQ2xhc3N9ICo6Zm9jdXMge1xub3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uJHtwcm9wcy5vdXRsaW5lQ2xhc3N9IHtcbmRpc3BsYXk6IG5vbmU7XG5wb3NpdGlvbjogYWJzb2x1dGU7XG53aWR0aDogMDtcbmhlaWdodDogMDtcbmxlZnQ6IDA7XG50b3A6IDA7XG56LWluZGV4OiAke3Byb3BzLnpJbmRleH07XG59XG5cbi4ke3Byb3BzLm91dGxpbmVDbGFzc30uJHtwcm9wcy5vdXRsaW5lQ2xhc3N9X3Zpc2libGUge1xuZGlzcGxheTogYmxvY2s7XG59XG5cbi4ke3Byb3BzLm91dGxpbmVDbGFzc31fX2xlZnQsXG4uJHtwcm9wcy5vdXRsaW5lQ2xhc3N9X190b3AsXG4uJHtwcm9wcy5vdXRsaW5lQ2xhc3N9X19yaWdodCxcbi4ke3Byb3BzLm91dGxpbmVDbGFzc31fX2JvdHRvbSB7XG5wb3NpdGlvbjogYWJzb2x1dGU7XG5iYWNrZ3JvdW5kOiBpbmhlcml0O1xufWA7XG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cblxuLyoqXHJcbiAqIEFsbG93cyBkZWZhdWx0IG9yIHVzZXIgZm9jdXMgYmVoYXZpb3VyIG9uIHRoZSBET00gc3VidHJlZVxyXG4gKiBpLmUuIFRhYnN0ZXIgd2lsbCBub3QgY29udHJvbCBmb2N1cyBldmVudHMgd2l0aGluIGFuIHVuY29udHJvbGxlZCBhcmVhXHJcbiAqL1xuY2xhc3MgVW5jb250cm9sbGVkQVBJIHtcbiAgY29uc3RydWN0b3IoaXNVbmNvbnRyb2xsZWRDb21wbGV0ZWx5KSB7XG4gICAgdGhpcy5faXNVbmNvbnRyb2xsZWRDb21wbGV0ZWx5ID0gaXNVbmNvbnRyb2xsZWRDb21wbGV0ZWx5O1xuICB9XG5cbiAgaXNVbmNvbnRyb2xsZWRDb21wbGV0ZWx5KGVsZW1lbnQsIGNvbXBsZXRlbHkpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCBpc1VuY29udHJvbGxlZENvbXBsZXRlbHkgPSAoX2EgPSB0aGlzLl9pc1VuY29udHJvbGxlZENvbXBsZXRlbHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMsIGVsZW1lbnQsIGNvbXBsZXRlbHkpOyAvLyBJZiBpc1VuY29udHJvbGxlZENvbXBsZXRlbHkgY2FsbGJhY2sgaXMgbm90IGRlZmluZWQgb3IgcmV0dXJucyB1bmRlZmluZWQsIHRoZW4gdGhlIGRlZmF1bHRcbiAgICAvLyBiZWhhdmlvdXIgaXMgdG8gcmV0dXJuIHRoZSB1bmNvbnRyb2xsZWQuY29tcGxldGVseSB2YWx1ZSBmcm9tIHRoZSBlbGVtZW50LlxuXG4gICAgcmV0dXJuIGlzVW5jb250cm9sbGVkQ29tcGxldGVseSA9PT0gdW5kZWZpbmVkID8gY29tcGxldGVseSA6IGlzVW5jb250cm9sbGVkQ29tcGxldGVseTtcbiAgfVxuXG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbmNvbnN0IEhJU09UUllfREVQVEggPSAxMDtcblxuY2xhc3MgUmVzdG9yZXIgZXh0ZW5kcyBUYWJzdGVyUGFydCB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIsIGVsZW1lbnQsIHByb3BzKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgc3VwZXIodGFic3RlciwgZWxlbWVudCwgcHJvcHMpO1xuICAgIHRoaXMuX2hhc0ZvY3VzID0gZmFsc2U7XG5cbiAgICB0aGlzLl9vbkZvY3VzT3V0ID0gZSA9PiB7XG4gICAgICB2YXIgX2E7XG5cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSAoX2EgPSB0aGlzLl9lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KCk7XG5cbiAgICAgIGlmIChlbGVtZW50ICYmIGUucmVsYXRlZFRhcmdldCA9PT0gbnVsbCkge1xuICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IFJlc3RvcmVyUmVzdG9yZUZvY3VzRXZlbnQoKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50ICYmICFkb20ubm9kZUNvbnRhaW5zKGVsZW1lbnQsIGUucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgdGhpcy5faGFzRm9jdXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fb25Gb2N1c0luID0gKCkgPT4ge1xuICAgICAgdGhpcy5faGFzRm9jdXMgPSB0cnVlO1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5fcHJvcHMudHlwZSA9PT0gUmVzdG9yZXJUeXBlcy5Tb3VyY2UpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSAoX2EgPSB0aGlzLl9lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KCk7XG4gICAgICBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIHRoaXMuX29uRm9jdXNPdXQpO1xuICAgICAgZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsIHRoaXMuX29uRm9jdXNJbik7IC8vIHNldCBoYXNGb2N1cyB3aGVuIHRoZSBpbnN0YW5jZSBpcyBjcmVhdGVkLCBpbiBjYXNlIGZvY3VzIGhhcyBhbHJlYWR5IG1vdmVkIHdpdGhpbiBpdFxuXG4gICAgICB0aGlzLl9oYXNGb2N1cyA9IGRvbS5ub2RlQ29udGFpbnMoZWxlbWVudCwgZWxlbWVudCAmJiBkb20uZ2V0QWN0aXZlRWxlbWVudChlbGVtZW50Lm93bmVyRG9jdW1lbnQpKTtcbiAgICB9XG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIHZhciBfYTtcblxuICAgIGlmICh0aGlzLl9wcm9wcy50eXBlID09PSBSZXN0b3JlclR5cGVzLlNvdXJjZSkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IChfYSA9IHRoaXMuX2VsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQoKTtcbiAgICAgIGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgdGhpcy5fb25Gb2N1c091dCk7XG4gICAgICBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIiwgdGhpcy5fb25Gb2N1c0luKTtcblxuICAgICAgaWYgKHRoaXMuX2hhc0ZvY3VzKSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IHRoaXMuX3RhYnN0ZXIuZ2V0V2luZG93KCkuZG9jdW1lbnQ7XG5cbiAgICAgICAgZG9jLmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgUmVzdG9yZXJSZXN0b3JlRm9jdXNFdmVudCgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5jbGFzcyBSZXN0b3JlckFQSSB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIpIHtcbiAgICB0aGlzLl9oaXN0b3J5ID0gW107XG5cbiAgICB0aGlzLl9vblJlc3RvcmVGb2N1cyA9IGUgPT4ge1xuICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRTdGF0ZS5jYW5jZWxBc3luY0ZvY3VzKEFzeW5jRm9jdXNTb3VyY2VzLlJlc3RvcmVyKTsgLy8gU2hhZG93RE9NIHdpbGwgaGF2ZSBzaGFkb3dSb290IGFzIGUudGFyZ2V0LlxuXG5cbiAgICAgIGNvbnN0IHRhcmdldCA9IGUuY29tcG9zZWRQYXRoKClbMF07XG5cbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRTdGF0ZS5yZXF1ZXN0QXN5bmNGb2N1cyhBc3luY0ZvY3VzU291cmNlcy5SZXN0b3JlciwgKCkgPT4gdGhpcy5fcmVzdG9yZUZvY3VzKHRhcmdldCksIDApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9vbkZvY3VzSW4gPSBlbGVtZW50ID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFic3RlckF0dHJpYnV0ZSA9IGdldFRhYnN0ZXJPbkVsZW1lbnQodGhpcy5fdGFic3RlciwgZWxlbWVudCk7XG5cbiAgICAgIGlmICgoKF9hID0gdGFic3RlckF0dHJpYnV0ZSA9PT0gbnVsbCB8fCB0YWJzdGVyQXR0cmlidXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YWJzdGVyQXR0cmlidXRlLnJlc3RvcmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0UHJvcHMoKS50eXBlKSAhPT0gUmVzdG9yZXJUeXBlcy5UYXJnZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9hZGRUb0hpc3RvcnkoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIHRoaXMuX3Jlc3RvcmVGb2N1cyA9IHNvdXJjZSA9PiB7XG4gICAgICB2YXIgX2E7IC8vIGRvbid0IHJlc3RvcmUgZm9jdXMgaWYgZm9jdXMgaXNuJ3QgbG9zdCB0byBib2R5XG5cblxuICAgICAgY29uc3QgZG9jID0gdGhpcy5fZ2V0V2luZG93KCkuZG9jdW1lbnQ7XG5cbiAgICAgIGlmIChkb20uZ2V0QWN0aXZlRWxlbWVudChkb2MpICE9PSBkb2MuYm9keSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICggLy8gY2xpY2tpbmcgb24gYW55IGVtcHR5IHNwYWNlIGZvY3VzZXMgYm9keSAtIHRoaXMgaXMgY2FuIGJlIGEgZmFsc2UgcG9zaXRpdmVcbiAgICAgICF0aGlzLl9rZXlib2FyZE5hdlN0YXRlLmlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCgpICYmIC8vIFNvdXJjZSBubyBsb25nZXIgZXhpc3RzIG9uIERPTSAtIGFsd2F5cyByZXN0b3JlIGZvY3VzXG4gICAgICBkb20ubm9kZUNvbnRhaW5zKGRvYy5ib2R5LCBzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHdlYWtFbGVtZW50ID0gdGhpcy5faGlzdG9yeS5wb3AoKTtcblxuICAgICAgd2hpbGUgKHdlYWtFbGVtZW50ICYmICFkb20ubm9kZUNvbnRhaW5zKGRvYy5ib2R5LCBkb20uZ2V0UGFyZW50RWxlbWVudCh3ZWFrRWxlbWVudC5nZXQoKSkpKSB7XG4gICAgICAgIHdlYWtFbGVtZW50ID0gdGhpcy5faGlzdG9yeS5wb3AoKTtcbiAgICAgIH1cblxuICAgICAgKF9hID0gd2Vha0VsZW1lbnQgPT09IG51bGwgfHwgd2Vha0VsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdlYWtFbGVtZW50LmdldCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fdGFic3RlciA9IHRhYnN0ZXI7XG4gICAgdGhpcy5fZ2V0V2luZG93ID0gdGFic3Rlci5nZXRXaW5kb3c7XG5cbiAgICB0aGlzLl9nZXRXaW5kb3coKS5hZGRFdmVudExpc3RlbmVyKFJlc3RvcmVyUmVzdG9yZUZvY3VzRXZlbnROYW1lLCB0aGlzLl9vblJlc3RvcmVGb2N1cyk7XG5cbiAgICB0aGlzLl9rZXlib2FyZE5hdlN0YXRlID0gdGFic3Rlci5rZXlib2FyZE5hdmlnYXRpb247XG4gICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRTdGF0ZSA9IHRhYnN0ZXIuZm9jdXNlZEVsZW1lbnQ7XG5cbiAgICB0aGlzLl9mb2N1c2VkRWxlbWVudFN0YXRlLnN1YnNjcmliZSh0aGlzLl9vbkZvY3VzSW4pO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLl9nZXRXaW5kb3coKTtcblxuICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50U3RhdGUudW5zdWJzY3JpYmUodGhpcy5fb25Gb2N1c0luKTtcblxuICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50U3RhdGUuY2FuY2VsQXN5bmNGb2N1cyhBc3luY0ZvY3VzU291cmNlcy5SZXN0b3Jlcik7XG5cbiAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihSZXN0b3JlclJlc3RvcmVGb2N1c0V2ZW50TmFtZSwgdGhpcy5fb25SZXN0b3JlRm9jdXMpO1xuICB9XG5cbiAgX2FkZFRvSGlzdG9yeShlbGVtZW50KSB7XG4gICAgdmFyIF9hOyAvLyBEb24ndCBkdXBsaWNhdGUgdGhlIHRvcCBvZiBoaXN0b3J5XG5cblxuICAgIGlmICgoKF9hID0gdGhpcy5faGlzdG9yeVt0aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIDFdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KCkpID09PSBlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hpc3RvcnkubGVuZ3RoID4gSElTT1RSWV9ERVBUSCkge1xuICAgICAgdGhpcy5faGlzdG9yeS5zaGlmdCgpO1xuICAgIH1cblxuICAgIHRoaXMuX2hpc3RvcnkucHVzaChuZXcgV2Vha0hUTUxFbGVtZW50KHRoaXMuX2dldFdpbmRvdywgZWxlbWVudCkpO1xuICB9XG5cbiAgY3JlYXRlUmVzdG9yZXIoZWxlbWVudCwgcHJvcHMpIHtcbiAgICBjb25zdCByZXN0b3JlciA9IG5ldyBSZXN0b3Jlcih0aGlzLl90YWJzdGVyLCBlbGVtZW50LCBwcm9wcyk7IC8vIEZvY3VzIG1pZ2h0IGFscmVhZHkgYmUgb24gYSByZXN0b3JlciB0YXJnZXQgd2hlbiBpdCBnZXRzIGNyZWF0ZWQgc28gdGhlIGZvY3VzaW4gd2lsbCBub3QgZG8gYW55dGhpbmdcblxuICAgIGlmIChwcm9wcy50eXBlID09PSBSZXN0b3JlclR5cGVzLlRhcmdldCAmJiBkb20uZ2V0QWN0aXZlRWxlbWVudChlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09PSBlbGVtZW50KSB7XG4gICAgICB0aGlzLl9hZGRUb0hpc3RvcnkoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3RvcmVyO1xuICB9XG5cbn1cblxuLyohXHJcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbiAqL1xuZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudChkb2MpIHtcbiAgdmFyIF9hO1xuXG4gIGxldCBhY3RpdmVFbGVtZW50ID0gZG9jLmFjdGl2ZUVsZW1lbnQ7XG5cbiAgd2hpbGUgKChfYSA9IGFjdGl2ZUVsZW1lbnQgPT09IG51bGwgfHwgYWN0aXZlRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlRWxlbWVudC5zaGFkb3dSb290KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWN0aXZlRWxlbWVudCkge1xuICAgIGFjdGl2ZUVsZW1lbnQgPSBhY3RpdmVFbGVtZW50LnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBhY3RpdmVFbGVtZW50O1xufVxuZnVuY3Rpb24gbm9kZUNvbnRhaW5zKG5vZGUsIG90aGVyTm9kZSkge1xuICB2YXIgX2EsIF9iO1xuXG4gIGlmICghbm9kZSB8fCAhb3RoZXJOb2RlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IGN1cnJlbnROb2RlID0gb3RoZXJOb2RlO1xuXG4gIHdoaWxlIChjdXJyZW50Tm9kZSkge1xuICAgIGlmIChjdXJyZW50Tm9kZSA9PT0gbm9kZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjdXJyZW50Tm9kZS5hc3NpZ25lZEVsZW1lbnRzICE9PSBcImZ1bmN0aW9uXCIgJiYgKChfYSA9IGN1cnJlbnROb2RlLmFzc2lnbmVkU2xvdCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnBhcmVudE5vZGUpKSB7XG4gICAgICAvLyBFbGVtZW50IGlzIHNsb3R0ZWRcbiAgICAgIGN1cnJlbnROb2RlID0gKF9iID0gY3VycmVudE5vZGUuYXNzaWduZWRTbG90KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucGFyZW50Tm9kZTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlLm5vZGVUeXBlID09PSBkb2N1bWVudC5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICAvLyBFbGVtZW50IGlzIGluIHNoYWRvdyByb290XG4gICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLmhvc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFICYmIG5vZGUuaG9zdCkge1xuICAgIHJldHVybiBub2RlLmhvc3Q7XG4gIH1cblxuICByZXR1cm4gbm9kZS5wYXJlbnROb2RlO1xufVxuZnVuY3Rpb24gZ2V0UGFyZW50RWxlbWVudChlbGVtZW50KSB7XG4gIGZvciAobGV0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpOyBwYXJlbnROb2RlOyBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSkge1xuICAgIGlmIChwYXJlbnROb2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBnZXRGaXJzdENoaWxkKG5vZGUpIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAobm9kZS5zaGFkb3dSb290KSB7XG4gICAgY29uc3QgY2hpbGQgPSBnZXRGaXJzdENoaWxkKG5vZGUuc2hhZG93Um9vdCk7XG5cbiAgICBpZiAoY2hpbGQpIHtcbiAgICAgIHJldHVybiBjaGlsZDtcbiAgICB9IC8vIElmIHRoZSBhdHRhY2hlZCBzaGFkb3dSb290IGhhcyBubyBjaGlsZHJlbiwganVzdCB0cnkgb3JkaW5hcnkgY2hpbGRyZW4sXG4gICAgLy8gdGhhdCBtaWdodCBjb21lIGFmdGVyLlxuXG4gIH1cblxuICByZXR1cm4gbm9kZS5maXJzdENoaWxkO1xufVxuZnVuY3Rpb24gZ2V0TGFzdENoaWxkJDEobm9kZSkge1xuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICghbm9kZS5sYXN0Q2hpbGQgJiYgbm9kZS5zaGFkb3dSb290KSB7XG4gICAgcmV0dXJuIGdldExhc3RDaGlsZCQxKG5vZGUuc2hhZG93Um9vdCk7XG4gIH1cblxuICByZXR1cm4gbm9kZS5sYXN0Q2hpbGQ7XG59XG5mdW5jdGlvbiBnZXROZXh0U2libGluZyhub2RlKSB7XG4gIHJldHVybiAobm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub2RlLm5leHRTaWJsaW5nKSB8fCBudWxsO1xufVxuZnVuY3Rpb24gZ2V0UHJldmlvdXNTaWJsaW5nKG5vZGUpIHtcbiAgdmFyIF9hO1xuXG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IHNpYmxpbmcgPSBub2RlLnByZXZpb3VzU2libGluZztcblxuICBpZiAoIXNpYmxpbmcgJiYgKChfYSA9IG5vZGUucGFyZW50RWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNoYWRvd1Jvb3QpKSB7XG4gICAgc2libGluZyA9IGdldExhc3RDaGlsZCQxKG5vZGUucGFyZW50RWxlbWVudC5zaGFkb3dSb290KTtcbiAgfVxuXG4gIHJldHVybiBzaWJsaW5nO1xufVxuZnVuY3Rpb24gZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoZWxlbWVudCkge1xuICBsZXQgY2hpbGQgPSBnZXRGaXJzdENoaWxkKGVsZW1lbnQpO1xuXG4gIHdoaWxlIChjaGlsZCAmJiBjaGlsZC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICBjaGlsZCA9IGdldE5leHRTaWJsaW5nKGNoaWxkKTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZDtcbn1cbmZ1bmN0aW9uIGdldExhc3RFbGVtZW50Q2hpbGQoZWxlbWVudCkge1xuICBsZXQgY2hpbGQgPSBnZXRMYXN0Q2hpbGQkMShlbGVtZW50KTtcblxuICB3aGlsZSAoY2hpbGQgJiYgY2hpbGQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgY2hpbGQgPSBnZXRQcmV2aW91c1NpYmxpbmcoY2hpbGQpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKGVsZW1lbnQpIHtcbiAgbGV0IHNpYmxpbmcgPSBnZXROZXh0U2libGluZyhlbGVtZW50KTtcblxuICB3aGlsZSAoc2libGluZyAmJiBzaWJsaW5nLm5vZGVUeXBlICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgIHNpYmxpbmcgPSBnZXROZXh0U2libGluZyhzaWJsaW5nKTtcbiAgfVxuXG4gIHJldHVybiBzaWJsaW5nO1xufVxuZnVuY3Rpb24gZ2V0UHJldmlvdXNFbGVtZW50U2libGluZyhlbGVtZW50KSB7XG4gIGxldCBzaWJsaW5nID0gZ2V0UHJldmlvdXNTaWJsaW5nKGVsZW1lbnQpO1xuXG4gIHdoaWxlIChzaWJsaW5nICYmIHNpYmxpbmcubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgc2libGluZyA9IGdldFByZXZpb3VzU2libGluZyhzaWJsaW5nKTtcbiAgfVxuXG4gIHJldHVybiBzaWJsaW5nO1xufVxuZnVuY3Rpb24gYXBwZW5kQ2hpbGQocGFyZW50LCBjaGlsZCkge1xuICBjb25zdCBzaGFkb3dSb290ID0gcGFyZW50LnNoYWRvd1Jvb3Q7XG4gIHJldHVybiBzaGFkb3dSb290ID8gc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCkgOiBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xufVxuZnVuY3Rpb24gaW5zZXJ0QmVmb3JlKHBhcmVudCwgY2hpbGQsIHJlZmVyZW5jZUNoaWxkKSB7XG4gIGNvbnN0IHNoYWRvd1Jvb3QgPSBwYXJlbnQuc2hhZG93Um9vdDtcbiAgcmV0dXJuIHNoYWRvd1Jvb3QgPyBzaGFkb3dSb290Lmluc2VydEJlZm9yZShjaGlsZCwgcmVmZXJlbmNlQ2hpbGQpIDogcGFyZW50Lmluc2VydEJlZm9yZShjaGlsZCwgcmVmZXJlbmNlQ2hpbGQpO1xufVxuZnVuY3Rpb24gZ2V0U2VsZWN0aW9uKHJlZikge1xuICB2YXIgX2E7XG5cbiAgY29uc3Qgd2luID0gKF9hID0gcmVmLm93bmVyRG9jdW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWZhdWx0VmlldztcblxuICBpZiAoIXdpbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZm9yIChsZXQgZWwgPSByZWY7IGVsOyBlbCA9IGVsLnBhcmVudE5vZGUpIHtcbiAgICBpZiAoZWwubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSkge1xuICAgICAgY29uc3QgdG1wID0gZWw7IC8vIFNoYWRvd1Jvb3QuZ2V0U2VsZWN0aW9uKCkgZXhpc3RzIG9ubHkgaW4gQ2hyb21lLlxuXG4gICAgICBpZiAodG1wLmdldFNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gdG1wLmdldFNlbGVjdGlvbigpIHx8IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3aW4uZ2V0U2VsZWN0aW9uKCkgfHwgbnVsbDtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRzQnlOYW1lKHJlZmVyZW5jZUVsZW1lbnQsIG5hbWUpIHtcbiAgZm9yIChsZXQgZWwgPSByZWZlcmVuY2VFbGVtZW50OyBlbDsgZWwgPSBlbC5wYXJlbnROb2RlKSB7XG4gICAgaWYgKGVsLm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpIHtcbiAgICAgIC8vIFNoYWRvdyByb290IGRvZXNuJ3QgaGF2ZSBnZXRFbGVtZW50c0J5TmFtZSgpLi4uXG4gICAgICByZXR1cm4gZWwucXVlcnlTZWxlY3RvckFsbChgW25hbWU9JHtuYW1lfV1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVmZXJlbmNlRWxlbWVudC5vd25lckRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKG5hbWUpO1xufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5cbmZ1bmN0aW9uIGdldExhc3RDaGlsZChjb250YWluZXIpIHtcbiAgbGV0IGxhc3RDaGlsZCA9IG51bGw7XG5cbiAgZm9yIChsZXQgaSA9IGdldExhc3RFbGVtZW50Q2hpbGQoY29udGFpbmVyKTsgaTsgaSA9IGdldExhc3RFbGVtZW50Q2hpbGQoaSkpIHtcbiAgICBsYXN0Q2hpbGQgPSBpO1xuICB9XG5cbiAgcmV0dXJuIGxhc3RDaGlsZCB8fCB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFNoYWRvd1RyZWVXYWxrZXIge1xuICBjb25zdHJ1Y3Rvcihkb2MsIHJvb3QsIHdoYXRUb1Nob3csIGZpbHRlcikge1xuICAgIHRoaXMuX3dhbGtlclN0YWNrID0gW107XG4gICAgdGhpcy5fY3VycmVudFNldEZvciA9IG5ldyBTZXQoKTtcblxuICAgIHRoaXMuX2FjY2VwdE5vZGUgPSBub2RlID0+IHtcbiAgICAgIHZhciBfYTtcblxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBub2RlLnNoYWRvd1Jvb3Q7XG5cbiAgICAgICAgaWYgKHNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICBjb25zdCB3YWxrZXIgPSB0aGlzLl9kb2MuY3JlYXRlVHJlZVdhbGtlcihzaGFkb3dSb290LCB0aGlzLndoYXRUb1Nob3csIHtcbiAgICAgICAgICAgIGFjY2VwdE5vZGU6IHRoaXMuX2FjY2VwdE5vZGVcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuX3dhbGtlclN0YWNrLnVuc2hpZnQod2Fsa2VyKTtcblxuICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIobm9kZSk7XG4gICAgICAgICAgfSBlbHNlIGlmICgoX2EgPSB0aGlzLmZpbHRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2VwdE5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlci5hY2NlcHROb2RlKG5vZGUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH07XG5cbiAgICB0aGlzLl9kb2MgPSBkb2M7XG4gICAgdGhpcy5yb290ID0gcm9vdDtcbiAgICB0aGlzLmZpbHRlciA9IGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHZvaWQgMCA/IGZpbHRlciA6IG51bGw7XG4gICAgdGhpcy53aGF0VG9TaG93ID0gd2hhdFRvU2hvdyAhPT0gbnVsbCAmJiB3aGF0VG9TaG93ICE9PSB2b2lkIDAgPyB3aGF0VG9TaG93IDogTm9kZUZpbHRlci5TSE9XX0FMTDtcbiAgICB0aGlzLl9jdXJyZW50Tm9kZSA9IHJvb3Q7XG5cbiAgICB0aGlzLl93YWxrZXJTdGFjay51bnNoaWZ0KGRvYy5jcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIHRoaXMuX2FjY2VwdE5vZGUpKTtcblxuICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSByb290LnNoYWRvd1Jvb3Q7XG5cbiAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgY29uc3Qgd2Fsa2VyID0gdGhpcy5fZG9jLmNyZWF0ZVRyZWVXYWxrZXIoc2hhZG93Um9vdCwgdGhpcy53aGF0VG9TaG93LCB7XG4gICAgICAgIGFjY2VwdE5vZGU6IHRoaXMuX2FjY2VwdE5vZGVcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl93YWxrZXJTdGFjay51bnNoaWZ0KHdhbGtlcik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1cnJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50Tm9kZTtcbiAgfVxuXG4gIHNldCBjdXJyZW50Tm9kZShub2RlKSB7XG4gICAgaWYgKCFub2RlQ29udGFpbnModGhpcy5yb290LCBub2RlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNldCBjdXJyZW50Tm9kZSB0byBhIG5vZGUgdGhhdCBpcyBub3QgY29udGFpbmVkIGJ5IHRoZSByb290IG5vZGUuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHdhbGtlcnMgPSBbXTtcbiAgICBsZXQgY3VyTm9kZSA9IG5vZGU7XG4gICAgbGV0IGN1cnJlbnRXYWxrZXJDdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgdGhpcy5fY3VycmVudE5vZGUgPSBub2RlO1xuXG4gICAgd2hpbGUgKGN1ck5vZGUgJiYgY3VyTm9kZSAhPT0gdGhpcy5yb290KSB7XG4gICAgICBpZiAoY3VyTm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBjdXJOb2RlO1xuXG4gICAgICAgIGNvbnN0IHdhbGtlciA9IHRoaXMuX2RvYy5jcmVhdGVUcmVlV2Fsa2VyKHNoYWRvd1Jvb3QsIHRoaXMud2hhdFRvU2hvdywge1xuICAgICAgICAgIGFjY2VwdE5vZGU6IHRoaXMuX2FjY2VwdE5vZGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgd2Fsa2Vycy5wdXNoKHdhbGtlcik7XG4gICAgICAgIHdhbGtlci5jdXJyZW50Tm9kZSA9IGN1cnJlbnRXYWxrZXJDdXJyZW50Tm9kZTtcblxuICAgICAgICB0aGlzLl9jdXJyZW50U2V0Rm9yLmFkZCh3YWxrZXIpO1xuXG4gICAgICAgIGN1ck5vZGUgPSBjdXJyZW50V2Fsa2VyQ3VycmVudE5vZGUgPSBzaGFkb3dSb290Lmhvc3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJOb2RlID0gY3VyTm9kZS5wYXJlbnROb2RlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHdhbGtlciA9IHRoaXMuX2RvYy5jcmVhdGVUcmVlV2Fsa2VyKHRoaXMucm9vdCwgdGhpcy53aGF0VG9TaG93LCB7XG4gICAgICBhY2NlcHROb2RlOiB0aGlzLl9hY2NlcHROb2RlXG4gICAgfSk7XG5cbiAgICB3YWxrZXJzLnB1c2god2Fsa2VyKTtcbiAgICB3YWxrZXIuY3VycmVudE5vZGUgPSBjdXJyZW50V2Fsa2VyQ3VycmVudE5vZGU7XG5cbiAgICB0aGlzLl9jdXJyZW50U2V0Rm9yLmFkZCh3YWxrZXIpO1xuXG4gICAgdGhpcy5fd2Fsa2VyU3RhY2sgPSB3YWxrZXJzO1xuICB9XG5cbiAgZmlyc3RDaGlsZCgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGFzdENoaWxkKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBuZXh0Tm9kZSgpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBjb25zdCBuZXh0Tm9kZSA9IHRoaXMuX3dhbGtlclN0YWNrWzBdLm5leHROb2RlKCk7XG5cbiAgICBpZiAobmV4dE5vZGUpIHtcbiAgICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBuZXh0Tm9kZS5zaGFkb3dSb290O1xuXG4gICAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgICBsZXQgbm9kZVJlc3VsdDtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBub2RlUmVzdWx0ID0gdGhpcy5maWx0ZXIobmV4dE5vZGUpO1xuICAgICAgICB9IGVsc2UgaWYgKChfYSA9IHRoaXMuZmlsdGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWNjZXB0Tm9kZSkge1xuICAgICAgICAgIG5vZGVSZXN1bHQgPSB0aGlzLmZpbHRlci5hY2NlcHROb2RlKG5leHROb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlUmVzdWx0ID09PSBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dE5vZGU7XG4gICAgICAgIH0gLy8gX2FjY2VwdE5vZGUgc2hvdWxkIGhhdmUgYWRkZWQgbmV3IHdhbGtlciBmb3IgdGhpcyBzaGFkb3csXG4gICAgICAgIC8vIGdvIGluIHJlY3Vyc2l2ZWx5LlxuXG5cbiAgICAgICAgcmV0dXJuIHRoaXMubmV4dE5vZGUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5leHROb2RlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fd2Fsa2VyU3RhY2subGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLl93YWxrZXJTdGFjay5zaGlmdCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5leHROb2RlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmV2aW91c05vZGUoKSB7XG4gICAgdmFyIF9hLCBfYjtcblxuICAgIGNvbnN0IGN1cnJlbnRXYWxrZXIgPSB0aGlzLl93YWxrZXJTdGFja1swXTtcblxuICAgIGlmIChjdXJyZW50V2Fsa2VyLmN1cnJlbnROb2RlID09PSBjdXJyZW50V2Fsa2VyLnJvb3QpIHtcbiAgICAgIGlmICh0aGlzLl9jdXJyZW50U2V0Rm9yLmhhcyhjdXJyZW50V2Fsa2VyKSkge1xuICAgICAgICB0aGlzLl9jdXJyZW50U2V0Rm9yLmRlbGV0ZShjdXJyZW50V2Fsa2VyKTtcblxuICAgICAgICBpZiAodGhpcy5fd2Fsa2VyU3RhY2subGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRoaXMuX3dhbGtlclN0YWNrLnNoaWZ0KCk7XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c05vZGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXN0Q2hpbGQgPSBnZXRMYXN0Q2hpbGQoY3VycmVudFdhbGtlci5yb290KTtcblxuICAgICAgaWYgKGxhc3RDaGlsZCkge1xuICAgICAgICBjdXJyZW50V2Fsa2VyLmN1cnJlbnROb2RlID0gbGFzdENoaWxkO1xuICAgICAgICBsZXQgbm9kZVJlc3VsdDtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBub2RlUmVzdWx0ID0gdGhpcy5maWx0ZXIobGFzdENoaWxkKTtcbiAgICAgICAgfSBlbHNlIGlmICgoX2EgPSB0aGlzLmZpbHRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFjY2VwdE5vZGUpIHtcbiAgICAgICAgICBub2RlUmVzdWx0ID0gdGhpcy5maWx0ZXIuYWNjZXB0Tm9kZShsYXN0Q2hpbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGVSZXN1bHQgPT09IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCkge1xuICAgICAgICAgIHJldHVybiBsYXN0Q2hpbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c05vZGUgPSBjdXJyZW50V2Fsa2VyLnByZXZpb3VzTm9kZSgpO1xuXG4gICAgaWYgKHByZXZpb3VzTm9kZSkge1xuICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IHByZXZpb3VzTm9kZS5zaGFkb3dSb290O1xuXG4gICAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgICBsZXQgbm9kZVJlc3VsdDtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBub2RlUmVzdWx0ID0gdGhpcy5maWx0ZXIocHJldmlvdXNOb2RlKTtcbiAgICAgICAgfSBlbHNlIGlmICgoX2IgPSB0aGlzLmZpbHRlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFjY2VwdE5vZGUpIHtcbiAgICAgICAgICBub2RlUmVzdWx0ID0gdGhpcy5maWx0ZXIuYWNjZXB0Tm9kZShwcmV2aW91c05vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGVSZXN1bHQgPT09IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCkge1xuICAgICAgICAgIHJldHVybiBwcmV2aW91c05vZGU7XG4gICAgICAgIH0gLy8gX2FjY2VwdE5vZGUgc2hvdWxkIGhhdmUgYWRkZWQgbmV3IHdhbGtlciBmb3IgdGhpcyBzaGFkb3csXG4gICAgICAgIC8vIGdvIGluIHJlY3Vyc2l2ZWx5LlxuXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNOb2RlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmV2aW91c05vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl93YWxrZXJTdGFjay5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRoaXMuX3dhbGtlclN0YWNrLnNoaWZ0KCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNOb2RlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZXh0U2libGluZygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJldmlvdXNTaWJsaW5nKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwYXJlbnROb2RlKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxufVxuZnVuY3Rpb24gY3JlYXRlU2hhZG93VHJlZVdhbGtlcihkb2MsIHJvb3QsIHdoYXRUb1Nob3csIGZpbHRlcikge1xuICByZXR1cm4gbmV3IFNoYWRvd1RyZWVXYWxrZXIoZG9jLCByb290LCB3aGF0VG9TaG93LCBmaWx0ZXIpO1xufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5jbGFzcyBTaGFkb3dNdXRhdGlvbk9ic2VydmVyIHtcbiAgc3RhdGljIF9vdmVycmlkZUF0dGFjaFNoYWRvdyh3aW4pIHtcbiAgICBjb25zdCBvcmlnQXR0YWNoU2hhZG93ID0gd2luLkVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdztcblxuICAgIGlmIChvcmlnQXR0YWNoU2hhZG93Ll9fb3JpZ0F0dGFjaFNoYWRvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICBjb25zdCBzaGFkb3dSb290ID0gb3JpZ0F0dGFjaFNoYWRvdy5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gICAgICBmb3IgKGNvbnN0IHNoYWRvd09ic2VydmVyIG9mIFNoYWRvd011dGF0aW9uT2JzZXJ2ZXIuX3NoYWRvd09ic2VydmVycykge1xuICAgICAgICBzaGFkb3dPYnNlcnZlci5fYWRkU3ViT2JzZXJ2ZXIoc2hhZG93Um9vdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzaGFkb3dSb290O1xuICAgIH07XG5cbiAgICBFbGVtZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3cuX19vcmlnQXR0YWNoU2hhZG93ID0gb3JpZ0F0dGFjaFNoYWRvdztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5faXNPYnNlcnZpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuX2NhbGxiYWNrV3JhcHBlciA9IChtdXRhdGlvbnMsIG9ic2VydmVyKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gXCJjaGlsZExpc3RcIikge1xuICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBtdXRhdGlvbi5yZW1vdmVkTm9kZXM7XG4gICAgICAgICAgY29uc3QgYWRkZWQgPSBtdXRhdGlvbi5hZGRlZE5vZGVzO1xuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZW1vdmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLl93YWxrU2hhZG93cyhyZW1vdmVkW2ldLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLl93YWxrU2hhZG93cyhhZGRlZFtpXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2NhbGxiYWNrKG11dGF0aW9ucywgb2JzZXJ2ZXIpO1xuICAgIH07XG5cbiAgICB0aGlzLl9jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHRoaXMuX29ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5fY2FsbGJhY2tXcmFwcGVyKTtcbiAgICB0aGlzLl9zdWJPYnNlcnZlcnMgPSBuZXcgTWFwKCk7XG4gIH1cblxuICBfYWRkU3ViT2JzZXJ2ZXIoc2hhZG93Um9vdCkge1xuICAgIGlmICghdGhpcy5fb3B0aW9ucyB8fCAhdGhpcy5fY2FsbGJhY2sgfHwgdGhpcy5fc3ViT2JzZXJ2ZXJzLmhhcyhzaGFkb3dSb290KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9vcHRpb25zLnN1YnRyZWUgJiYgbm9kZUNvbnRhaW5zKHRoaXMuX3Jvb3QsIHNoYWRvd1Jvb3QpKSB7XG4gICAgICBjb25zdCBzdWJPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMuX2NhbGxiYWNrV3JhcHBlcik7XG5cbiAgICAgIHRoaXMuX3N1Yk9ic2VydmVycy5zZXQoc2hhZG93Um9vdCwgc3ViT2JzZXJ2ZXIpO1xuXG4gICAgICBpZiAodGhpcy5faXNPYnNlcnZpbmcpIHtcbiAgICAgICAgc3ViT2JzZXJ2ZXIub2JzZXJ2ZShzaGFkb3dSb290LCB0aGlzLl9vcHRpb25zKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fd2Fsa1NoYWRvd3Moc2hhZG93Um9vdCk7XG4gICAgfVxuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICB0aGlzLl9pc09ic2VydmluZyA9IGZhbHNlO1xuICAgIGRlbGV0ZSB0aGlzLl9vcHRpb25zO1xuXG4gICAgU2hhZG93TXV0YXRpb25PYnNlcnZlci5fc2hhZG93T2JzZXJ2ZXJzLmRlbGV0ZSh0aGlzKTtcblxuICAgIGZvciAoY29uc3Qgc3ViT2JzZXJ2ZXIgb2YgdGhpcy5fc3ViT2JzZXJ2ZXJzLnZhbHVlcygpKSB7XG4gICAgICBzdWJPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3ViT2JzZXJ2ZXJzLmNsZWFyKCk7XG5cbiAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBvYnNlcnZlKHRhcmdldCwgb3B0aW9ucykge1xuICAgIGNvbnN0IGRvYyA9IHRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFID8gdGFyZ2V0IDogdGFyZ2V0Lm93bmVyRG9jdW1lbnQ7XG4gICAgY29uc3Qgd2luID0gZG9jID09PSBudWxsIHx8IGRvYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZG9jLmRlZmF1bHRWaWV3O1xuXG4gICAgaWYgKCFkb2MgfHwgIXdpbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIFNoYWRvd011dGF0aW9uT2JzZXJ2ZXIuX292ZXJyaWRlQXR0YWNoU2hhZG93KHdpbik7XG5cbiAgICBTaGFkb3dNdXRhdGlvbk9ic2VydmVyLl9zaGFkb3dPYnNlcnZlcnMuYWRkKHRoaXMpO1xuXG4gICAgdGhpcy5fcm9vdCA9IHRhcmdldDtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLl9pc09ic2VydmluZyA9IHRydWU7XG5cbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRhcmdldCwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLl93YWxrU2hhZG93cyh0YXJnZXQpO1xuICB9XG5cbiAgX3dhbGtTaGFkb3dzKHRhcmdldCwgcmVtb3ZlKSB7XG4gICAgY29uc3QgZG9jID0gdGFyZ2V0Lm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUgPyB0YXJnZXQgOiB0YXJnZXQub3duZXJEb2N1bWVudDtcblxuICAgIGlmICghZG9jKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldCA9PT0gZG9jKSB7XG4gICAgICB0YXJnZXQgPSBkb2MuYm9keTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IHRhcmdldC5zaGFkb3dSb290O1xuXG4gICAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgICB0aGlzLl9hZGRTdWJPYnNlcnZlcihzaGFkb3dSb290KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgd2Fsa2VyID0gZG9jLmNyZWF0ZVRyZWVXYWxrZXIodGFyZ2V0LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwge1xuICAgICAgYWNjZXB0Tm9kZTogbm9kZSA9PiB7XG4gICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICAgIGlmIChyZW1vdmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1Yk9ic2VydmVyID0gdGhpcy5fc3ViT2JzZXJ2ZXJzLmdldChub2RlKTtcblxuICAgICAgICAgICAgaWYgKHN1Yk9ic2VydmVyKSB7XG4gICAgICAgICAgICAgIHN1Yk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICAgICAgICAgICAgICB0aGlzLl9zdWJPYnNlcnZlcnMuZGVsZXRlKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gbm9kZS5zaGFkb3dSb290O1xuXG4gICAgICAgICAgICBpZiAoc2hhZG93Um9vdCkge1xuICAgICAgICAgICAgICB0aGlzLl9hZGRTdWJPYnNlcnZlcihzaGFkb3dSb290KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB3YWxrZXIubmV4dE5vZGUoKTtcbiAgfVxuXG4gIHRha2VSZWNvcmRzKCkge1xuICAgIGNvbnN0IHJlY29yZHMgPSB0aGlzLl9vYnNlcnZlci50YWtlUmVjb3JkcygpO1xuXG4gICAgZm9yIChjb25zdCBzdWJPYnNlcnZlciBvZiB0aGlzLl9zdWJPYnNlcnZlcnMudmFsdWVzKCkpIHtcbiAgICAgIHJlY29yZHMucHVzaCguLi5zdWJPYnNlcnZlci50YWtlUmVjb3JkcygpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVjb3JkcztcbiAgfVxuXG59XG5TaGFkb3dNdXRhdGlvbk9ic2VydmVyLl9zaGFkb3dPYnNlcnZlcnMgPSAvKiNfX1BVUkVfXyovbmV3IFNldCgpO1xuZnVuY3Rpb24gY3JlYXRlU2hhZG93TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykge1xuICByZXR1cm4gbmV3IFNoYWRvd011dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xufVxuXG4vKiFcclxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuICovXG5mdW5jdGlvbiBzaGFkb3dRdWVyeVNlbGVjdG9yKG5vZGUsIHNlbGVjdG9yLCBhbGwpIHtcbiAgLy8gVE9ETzogVGhpcyBpcyBwcm9iYWJseSBzbG93LiBPcHRpbWl6ZSB0byB1c2UgZWFjaCBzaGFkb3dSb290J3MgcXVlcnlTZWxlY3Rvci9xdWVyeVNlbGVjdG9yQWxsXG4gIC8vICAgICAgIGluc3RlYWQgb2Ygd2Fsa2luZyB0aGUgdHJlZS5cbiAgY29uc3QgZWxlbWVudHMgPSBbXTtcbiAgd2Fsayhub2RlLCBzZWxlY3Rvcik7XG4gIHJldHVybiBlbGVtZW50cztcblxuICBmdW5jdGlvbiB3YWxrKGZyb20sIHNlbGVjdG9yKSB7XG4gICAgbGV0IGVsID0gbnVsbDtcbiAgICBjb25zdCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZyb20sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCB7XG4gICAgICBhY2NlcHROb2RlOiBuID0+IHtcbiAgICAgICAgaWYgKG4ubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgaWYgKG4ubWF0Y2hlcyhzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIGVsID0gbjtcbiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goZWwpO1xuICAgICAgICAgICAgcmV0dXJuIGFsbCA/IE5vZGVGaWx0ZXIuRklMVEVSX1NLSVAgOiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IG4uc2hhZG93Um9vdDtcblxuICAgICAgICAgIGlmIChzaGFkb3dSb290KSB7XG4gICAgICAgICAgICB3YWxrKHNoYWRvd1Jvb3QsIHNlbGVjdG9yKTtcbiAgICAgICAgICAgIHJldHVybiAhYWxsICYmIGVsZW1lbnRzLmxlbmd0aCA/IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCA6IE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICB9XG4gICAgfSk7XG4gICAgd2Fsa2VyLm5leHROb2RlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcXVlcnlTZWxlY3RvckFsbChub2RlLCBzZWxlY3Rvcikge1xuICByZXR1cm4gc2hhZG93UXVlcnlTZWxlY3Rvcihub2RlLCBzZWxlY3RvciwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBxdWVyeVNlbGVjdG9yKG5vZGUsIHNlbGVjdG9yKSB7XG4gIHJldHVybiBzaGFkb3dRdWVyeVNlbGVjdG9yKG5vZGUsIHNlbGVjdG9yLCBmYWxzZSlbMF0gfHwgbnVsbDtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRCeUlkKGRvYywgaWQpIHtcbiAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3IoZG9jLCBcIiNcIiArIGlkKTtcbn1cblxuLyohXHJcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbiAqL1xuXG52YXIgc2hhZG93RE9NQVBJID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICBjcmVhdGVUcmVlV2Fsa2VyOiBjcmVhdGVTaGFkb3dUcmVlV2Fsa2VyLFxuICAgIGNyZWF0ZU11dGF0aW9uT2JzZXJ2ZXI6IGNyZWF0ZVNoYWRvd011dGF0aW9uT2JzZXJ2ZXIsXG4gICAgYXBwZW5kQ2hpbGQ6IGFwcGVuZENoaWxkLFxuICAgIGdldEFjdGl2ZUVsZW1lbnQ6IGdldEFjdGl2ZUVsZW1lbnQsXG4gICAgZ2V0Rmlyc3RDaGlsZDogZ2V0Rmlyc3RDaGlsZCxcbiAgICBnZXRGaXJzdEVsZW1lbnRDaGlsZDogZ2V0Rmlyc3RFbGVtZW50Q2hpbGQsXG4gICAgZ2V0TGFzdENoaWxkOiBnZXRMYXN0Q2hpbGQkMSxcbiAgICBnZXRMYXN0RWxlbWVudENoaWxkOiBnZXRMYXN0RWxlbWVudENoaWxkLFxuICAgIGdldE5leHRFbGVtZW50U2libGluZzogZ2V0TmV4dEVsZW1lbnRTaWJsaW5nLFxuICAgIGdldE5leHRTaWJsaW5nOiBnZXROZXh0U2libGluZyxcbiAgICBnZXRQYXJlbnRFbGVtZW50OiBnZXRQYXJlbnRFbGVtZW50LFxuICAgIGdldFBhcmVudE5vZGU6IGdldFBhcmVudE5vZGUsXG4gICAgZ2V0UHJldmlvdXNFbGVtZW50U2libGluZzogZ2V0UHJldmlvdXNFbGVtZW50U2libGluZyxcbiAgICBnZXRQcmV2aW91c1NpYmxpbmc6IGdldFByZXZpb3VzU2libGluZyxcbiAgICBnZXRTZWxlY3Rpb246IGdldFNlbGVjdGlvbixcbiAgICBnZXRFbGVtZW50c0J5TmFtZTogZ2V0RWxlbWVudHNCeU5hbWUsXG4gICAgaW5zZXJ0QmVmb3JlOiBpbnNlcnRCZWZvcmUsXG4gICAgbm9kZUNvbnRhaW5zOiBub2RlQ29udGFpbnMsXG4gICAgZ2V0RWxlbWVudEJ5SWQ6IGdldEVsZW1lbnRCeUlkLFxuICAgIHF1ZXJ5U2VsZWN0b3I6IHF1ZXJ5U2VsZWN0b3IsXG4gICAgcXVlcnlTZWxlY3RvckFsbDogcXVlcnlTZWxlY3RvckFsbFxufSk7XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cblxuY2xhc3MgVGFic3RlciB7XG4gIGNvbnN0cnVjdG9yKHRhYnN0ZXIpIHtcbiAgICB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbiA9IHRhYnN0ZXIua2V5Ym9hcmROYXZpZ2F0aW9uO1xuICAgIHRoaXMuZm9jdXNlZEVsZW1lbnQgPSB0YWJzdGVyLmZvY3VzZWRFbGVtZW50O1xuICAgIHRoaXMuZm9jdXNhYmxlID0gdGFic3Rlci5mb2N1c2FibGU7XG4gICAgdGhpcy5yb290ID0gdGFic3Rlci5yb290O1xuICAgIHRoaXMudW5jb250cm9sbGVkID0gdGFic3Rlci51bmNvbnRyb2xsZWQ7XG4gICAgdGhpcy5jb3JlID0gdGFic3RlcjtcbiAgfVxuXG59XG4vKipcclxuICogRXh0ZW5kcyBXaW5kb3cgdG8gaW5jbHVkZSBhbiBpbnRlcm5hbCBUYWJzdGVyIGluc3RhbmNlLlxyXG4gKi9cblxuXG5jbGFzcyBUYWJzdGVyQ29yZSB7XG4gIGNvbnN0cnVjdG9yKHdpbiwgcHJvcHMpIHtcbiAgICB2YXIgX2EsIF9iO1xuXG4gICAgdGhpcy5fZm9yZ2V0TWVtb3JpemVkRWxlbWVudHMgPSBbXTtcbiAgICB0aGlzLl93cmFwcGVycyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLl9pbml0UXVldWUgPSBbXTtcbiAgICB0aGlzLl92ZXJzaW9uID0gXCI4LjAuMVwiO1xuICAgIHRoaXMuX25vb3AgPSBmYWxzZTtcblxuICAgIHRoaXMuZ2V0V2luZG93ID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl93aW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVXNpbmcgZGlzcG9zZWQgVGFic3Rlci5cIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl93aW47XG4gICAgfTtcblxuICAgIHRoaXMuX3N0b3JhZ2UgPSBjcmVhdGVXZWFrTWFwKHdpbik7XG4gICAgdGhpcy5fd2luID0gd2luO1xuICAgIGNvbnN0IGdldFdpbmRvdyA9IHRoaXMuZ2V0V2luZG93O1xuXG4gICAgaWYgKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5ET01BUEkpIHtcbiAgICAgIHNldERPTUFQSSh7IC4uLnByb3BzLkRPTUFQSVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXlib2FyZE5hdmlnYXRpb24gPSBuZXcgS2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGUoZ2V0V2luZG93KTtcbiAgICB0aGlzLmZvY3VzZWRFbGVtZW50ID0gbmV3IEZvY3VzZWRFbGVtZW50U3RhdGUodGhpcywgZ2V0V2luZG93KTtcbiAgICB0aGlzLmZvY3VzYWJsZSA9IG5ldyBGb2N1c2FibGVBUEkodGhpcyk7XG4gICAgdGhpcy5yb290ID0gbmV3IFJvb3RBUEkodGhpcywgcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLmF1dG9Sb290KTtcbiAgICB0aGlzLnVuY29udHJvbGxlZCA9IG5ldyBVbmNvbnRyb2xsZWRBUEkoIC8vIFRPRE86IFJlbW92ZSBjaGVja1VuY29udHJvbGxlZFRyYXBwaW5nRm9jdXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbi5cbiAgICAocHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLmNoZWNrVW5jb250cm9sbGVkQ29tcGxldGVseSkgfHwgKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5jaGVja1VuY29udHJvbGxlZFRyYXBwaW5nRm9jdXMpKTtcbiAgICB0aGlzLmNvbnRyb2xUYWIgPSAoX2EgPSBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY29udHJvbFRhYikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdHJ1ZTtcbiAgICB0aGlzLnJvb3REdW1teUlucHV0cyA9ICEhKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5yb290RHVtbXlJbnB1dHMpO1xuICAgIHRoaXMuX2R1bW15T2JzZXJ2ZXIgPSBuZXcgRHVtbXlJbnB1dE9ic2VydmVyKGdldFdpbmRvdyk7XG4gICAgdGhpcy5nZXRQYXJlbnQgPSAoX2IgPSBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuZ2V0UGFyZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkb20uZ2V0UGFyZW50Tm9kZTtcbiAgICB0aGlzLmludGVybmFsID0ge1xuICAgICAgc3RvcE9ic2VydmVyOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl91bm9ic2VydmUpIHtcbiAgICAgICAgICB0aGlzLl91bm9ic2VydmUoKTtcblxuICAgICAgICAgIGRlbGV0ZSB0aGlzLl91bm9ic2VydmU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXN1bWVPYnNlcnZlcjogc3luY1N0YXRlID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl91bm9ic2VydmUpIHtcbiAgICAgICAgICBjb25zdCBkb2MgPSBnZXRXaW5kb3coKS5kb2N1bWVudDtcbiAgICAgICAgICB0aGlzLl91bm9ic2VydmUgPSBvYnNlcnZlTXV0YXRpb25zKGRvYywgdGhpcywgdXBkYXRlVGFic3RlckJ5QXR0cmlidXRlLCBzeW5jU3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBzdGFydEZha2VXZWFrUmVmc0NsZWFudXAoZ2V0V2luZG93KTsgLy8gR2l2ZXMgYSB0aWNrIHRvIHRoZSBob3N0IGFwcCB0byBpbml0aWFsaXplIG90aGVyIHRhYnN0ZXJcbiAgICAvLyBBUElzIGJlZm9yZSB0YWJzdGVyIHN0YXJ0cyBvYnNlcnZpbmcgYXR0cmlidXRlcy5cblxuICAgIHRoaXMucXVldWVJbml0KCgpID0+IHtcbiAgICAgIHRoaXMuaW50ZXJuYWwucmVzdW1lT2JzZXJ2ZXIodHJ1ZSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXHJcbiAgICogTWVyZ2VzIGV4dGVybmFsIHByb3BzIHdpdGggdGhlIGN1cnJlbnQgcHJvcHMuIE5vdCBhbGxcclxuICAgKiBwcm9wcyBjYW4vc2hvdWxkIGJlIG1lcmdlYWJsZSwgc28gbGV0J3MgYWRkIG1vcmUgYXMgd2UgbW92ZSBvbi5cclxuICAgKiBAcGFyYW0gcHJvcHMgVGFic3RlciBwcm9wc1xyXG4gICAqL1xuXG5cbiAgX21lcmdlUHJvcHMocHJvcHMpIHtcbiAgICB2YXIgX2E7XG5cbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXRQYXJlbnQgPSAoX2EgPSBwcm9wcy5nZXRQYXJlbnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuZ2V0UGFyZW50O1xuICB9XG5cbiAgY3JlYXRlVGFic3Rlcihub1JlZkNvdW50LCBwcm9wcykge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBuZXcgVGFic3Rlcih0aGlzKTtcblxuICAgIGlmICghbm9SZWZDb3VudCkge1xuICAgICAgdGhpcy5fd3JhcHBlcnMuYWRkKHdyYXBwZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX21lcmdlUHJvcHMocHJvcHMpO1xuXG4gICAgcmV0dXJuIHdyYXBwZXI7XG4gIH1cblxuICBkaXNwb3NlVGFic3Rlcih3cmFwcGVyLCBhbGxJbnN0YW5jZXMpIHtcbiAgICBpZiAoYWxsSW5zdGFuY2VzKSB7XG4gICAgICB0aGlzLl93cmFwcGVycy5jbGVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl93cmFwcGVycy5kZWxldGUod3JhcHBlcik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3dyYXBwZXJzLnNpemUgPT09IDApIHtcbiAgICAgIHRoaXMuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaDtcblxuICAgIHRoaXMuaW50ZXJuYWwuc3RvcE9ic2VydmVyKCk7XG4gICAgY29uc3Qgd2luID0gdGhpcy5fd2luO1xuICAgIHdpbiA9PT0gbnVsbCB8fCB3aW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbi5jbGVhclRpbWVvdXQodGhpcy5faW5pdFRpbWVyKTtcbiAgICBkZWxldGUgdGhpcy5faW5pdFRpbWVyO1xuICAgIHRoaXMuX2luaXRRdWV1ZSA9IFtdO1xuICAgIHRoaXMuX2ZvcmdldE1lbW9yaXplZEVsZW1lbnRzID0gW107XG5cbiAgICBpZiAod2luICYmIHRoaXMuX2ZvcmdldE1lbW9yaXplZFRpbWVyKSB7XG4gICAgICB3aW4uY2xlYXJUaW1lb3V0KHRoaXMuX2ZvcmdldE1lbW9yaXplZFRpbWVyKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9mb3JnZXRNZW1vcml6ZWRUaW1lcjtcbiAgICB9XG5cbiAgICAoX2EgPSB0aGlzLm91dGxpbmUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwb3NlKCk7XG4gICAgKF9iID0gdGhpcy5jcm9zc09yaWdpbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmRpc3Bvc2UoKTtcbiAgICAoX2MgPSB0aGlzLmRlbG9zZXIpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5kaXNwb3NlKCk7XG4gICAgKF9kID0gdGhpcy5ncm91cHBlcikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmRpc3Bvc2UoKTtcbiAgICAoX2UgPSB0aGlzLm1vdmVyKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuZGlzcG9zZSgpO1xuICAgIChfZiA9IHRoaXMubW9kYWxpemVyKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuZGlzcG9zZSgpO1xuICAgIChfZyA9IHRoaXMub2JzZXJ2ZWRFbGVtZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cuZGlzcG9zZSgpO1xuICAgIChfaCA9IHRoaXMucmVzdG9yZXIpID09PSBudWxsIHx8IF9oID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaC5kaXNwb3NlKCk7XG4gICAgdGhpcy5rZXlib2FyZE5hdmlnYXRpb24uZGlzcG9zZSgpO1xuICAgIHRoaXMuZm9jdXNhYmxlLmRpc3Bvc2UoKTtcbiAgICB0aGlzLmZvY3VzZWRFbGVtZW50LmRpc3Bvc2UoKTtcbiAgICB0aGlzLnJvb3QuZGlzcG9zZSgpO1xuXG4gICAgdGhpcy5fZHVtbXlPYnNlcnZlci5kaXNwb3NlKCk7XG5cbiAgICBzdG9wRmFrZVdlYWtSZWZzQ2xlYW51cEFuZENsZWFyU3RvcmFnZSh0aGlzLmdldFdpbmRvdyk7XG4gICAgY2xlYXJFbGVtZW50Q2FjaGUodGhpcy5nZXRXaW5kb3cpO1xuICAgIHRoaXMuX3N0b3JhZ2UgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgdGhpcy5fd3JhcHBlcnMuY2xlYXIoKTtcblxuICAgIGlmICh3aW4pIHtcbiAgICAgIGRpc3Bvc2VJbnN0YW5jZUNvbnRleHQod2luKTtcbiAgICAgIGRlbGV0ZSB3aW4uX190YWJzdGVySW5zdGFuY2U7XG4gICAgICBkZWxldGUgdGhpcy5fd2luO1xuICAgIH1cbiAgfVxuXG4gIHN0b3JhZ2VFbnRyeShlbGVtZW50LCBhZGRyZW1vdmUpIHtcbiAgICBjb25zdCBzdG9yYWdlID0gdGhpcy5fc3RvcmFnZTtcbiAgICBsZXQgZW50cnkgPSBzdG9yYWdlLmdldChlbGVtZW50KTtcblxuICAgIGlmIChlbnRyeSkge1xuICAgICAgaWYgKGFkZHJlbW92ZSA9PT0gZmFsc2UgJiYgT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzdG9yYWdlLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFkZHJlbW92ZSA9PT0gdHJ1ZSkge1xuICAgICAgZW50cnkgPSB7fTtcbiAgICAgIHN0b3JhZ2Uuc2V0KGVsZW1lbnQsIGVudHJ5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnk7XG4gIH1cblxuICBmb3JjZUNsZWFudXAoKSB7XG4gICAgaWYgKCF0aGlzLl93aW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9mb3JnZXRNZW1vcml6ZWRFbGVtZW50cy5wdXNoKHRoaXMuX3dpbi5kb2N1bWVudC5ib2R5KTtcblxuICAgIGlmICh0aGlzLl9mb3JnZXRNZW1vcml6ZWRUaW1lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2ZvcmdldE1lbW9yaXplZFRpbWVyID0gdGhpcy5fd2luLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZGVsZXRlIHRoaXMuX2ZvcmdldE1lbW9yaXplZFRpbWVyO1xuXG4gICAgICBmb3IgKGxldCBlbCA9IHRoaXMuX2ZvcmdldE1lbW9yaXplZEVsZW1lbnRzLnNoaWZ0KCk7IGVsOyBlbCA9IHRoaXMuX2ZvcmdldE1lbW9yaXplZEVsZW1lbnRzLnNoaWZ0KCkpIHtcbiAgICAgICAgY2xlYXJFbGVtZW50Q2FjaGUodGhpcy5nZXRXaW5kb3csIGVsKTtcbiAgICAgICAgRm9jdXNlZEVsZW1lbnRTdGF0ZS5mb3JnZXRNZW1vcml6ZWQodGhpcy5mb2N1c2VkRWxlbWVudCwgZWwpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICAgIGNsZWFudXBGYWtlV2Vha1JlZnModGhpcy5nZXRXaW5kb3csIHRydWUpO1xuICB9XG5cbiAgcXVldWVJbml0KGNhbGxiYWNrKSB7XG4gICAgdmFyIF9hO1xuXG4gICAgaWYgKCF0aGlzLl93aW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0UXVldWUucHVzaChjYWxsYmFjayk7XG5cbiAgICBpZiAoIXRoaXMuX2luaXRUaW1lcikge1xuICAgICAgdGhpcy5faW5pdFRpbWVyID0gKF9hID0gdGhpcy5fd2luKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9pbml0VGltZXI7XG4gICAgICAgIHRoaXMuZHJhaW5Jbml0UXVldWUoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIGRyYWluSW5pdFF1ZXVlKCkge1xuICAgIGlmICghdGhpcy5fd2luKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVldWUgPSB0aGlzLl9pbml0UXVldWU7IC8vIFJlc2V0dGluZyB0aGUgcXVldWUgYmVmb3JlIGNhbGxpbmcgdGhlIGNhbGxiYWNrcyB0byBhdm9pZCByZWN1cnNpb24uXG5cbiAgICB0aGlzLl9pbml0UXVldWUgPSBbXTtcbiAgICBxdWV1ZS5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKCkpO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gZm9yY2VDbGVhbnVwKHRhYnN0ZXIpIHtcbiAgLy8gVGhlIG9ubHkgbGVnaXQgY2FzZSBmb3IgY2FsbGluZyB0aGlzIG1ldGhvZCBpcyB3aGVuIHlvdSd2ZSBjb21wbGV0ZWx5IHJlbW92ZWRcbiAgLy8gdGhlIGFwcGxpY2F0aW9uIERPTSBhbmQgbm90IGdvaW5nIHRvIGFkZCB0aGUgbmV3IG9uZSBmb3IgYSB3aGlsZS5cbiAgY29uc3QgdGFic3RlckNvcmUgPSB0YWJzdGVyLmNvcmU7XG4gIHRhYnN0ZXJDb3JlLmZvcmNlQ2xlYW51cCgpO1xufVxuLyoqXHJcbiAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgVGFic3RlciwgcmV0dXJucyB0aGUgY3VycmVudCB3aW5kb3cgaW5zdGFuY2UgaWYgaXQgYWxyZWFkeSBleGlzdHMuXHJcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVUYWJzdGVyKHdpbiwgcHJvcHMpIHtcbiAgbGV0IHRhYnN0ZXIgPSBnZXRDdXJyZW50VGFic3Rlcih3aW4pO1xuXG4gIGlmICh0YWJzdGVyKSB7XG4gICAgcmV0dXJuIHRhYnN0ZXIuY3JlYXRlVGFic3RlcihmYWxzZSwgcHJvcHMpO1xuICB9XG5cbiAgdGFic3RlciA9IG5ldyBUYWJzdGVyQ29yZSh3aW4sIHByb3BzKTtcbiAgd2luLl9fdGFic3Rlckluc3RhbmNlID0gdGFic3RlcjtcbiAgcmV0dXJuIHRhYnN0ZXIuY3JlYXRlVGFic3RlcigpO1xufVxuLyoqXHJcbiAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVGFic3RlciBpZiBpdCB3YXMgY3JlYXRlZCBiZWZvcmUgb3IgbnVsbC5cclxuICovXG5cbmZ1bmN0aW9uIGdldFRhYnN0ZXIod2luKSB7XG4gIGNvbnN0IHRhYnN0ZXIgPSBnZXRDdXJyZW50VGFic3Rlcih3aW4pO1xuICByZXR1cm4gdGFic3RlciA/IHRhYnN0ZXIuY3JlYXRlVGFic3Rlcih0cnVlKSA6IG51bGw7XG59XG5mdW5jdGlvbiBnZXRTaGFkb3dET01BUEkoKSB7XG4gIHJldHVybiBzaGFkb3dET01BUEk7XG59XG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBncm91cHBlciBpbnN0YW5jZSBvciByZXR1cm5zIGFuIGV4aXN0aW5nIG9uZVxyXG4gKiBAcGFyYW0gdGFic3RlciBUYWJzdGVyIGluc3RhbmNlXHJcbiAqL1xuXG5mdW5jdGlvbiBnZXRHcm91cHBlcih0YWJzdGVyKSB7XG4gIGNvbnN0IHRhYnN0ZXJDb3JlID0gdGFic3Rlci5jb3JlO1xuXG4gIGlmICghdGFic3RlckNvcmUuZ3JvdXBwZXIpIHtcbiAgICB0YWJzdGVyQ29yZS5ncm91cHBlciA9IG5ldyBHcm91cHBlckFQSSh0YWJzdGVyQ29yZSwgdGFic3RlckNvcmUuZ2V0V2luZG93KTtcbiAgfVxuXG4gIHJldHVybiB0YWJzdGVyQ29yZS5ncm91cHBlcjtcbn1cbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IG1vdmVyIGluc3RhbmNlIG9yIHJldHVybnMgYW4gZXhpc3Rpbmcgb25lXHJcbiAqIEBwYXJhbSB0YWJzdGVyIFRhYnN0ZXIgaW5zdGFuY2VcclxuICovXG5cbmZ1bmN0aW9uIGdldE1vdmVyKHRhYnN0ZXIpIHtcbiAgY29uc3QgdGFic3RlckNvcmUgPSB0YWJzdGVyLmNvcmU7XG5cbiAgaWYgKCF0YWJzdGVyQ29yZS5tb3Zlcikge1xuICAgIHRhYnN0ZXJDb3JlLm1vdmVyID0gbmV3IE1vdmVyQVBJKHRhYnN0ZXJDb3JlLCB0YWJzdGVyQ29yZS5nZXRXaW5kb3cpO1xuICB9XG5cbiAgcmV0dXJuIHRhYnN0ZXJDb3JlLm1vdmVyO1xufVxuZnVuY3Rpb24gZ2V0T3V0bGluZSh0YWJzdGVyKSB7XG4gIGNvbnN0IHRhYnN0ZXJDb3JlID0gdGFic3Rlci5jb3JlO1xuXG4gIGlmICghdGFic3RlckNvcmUub3V0bGluZSkge1xuICAgIHRhYnN0ZXJDb3JlLm91dGxpbmUgPSBuZXcgT3V0bGluZUFQSSh0YWJzdGVyQ29yZSk7XG4gIH1cblxuICByZXR1cm4gdGFic3RlckNvcmUub3V0bGluZTtcbn1cbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IG5ldyBkZWxvc2VyIGluc3RhbmNlIG9yIHJldHVybnMgYW4gZXhpc3Rpbmcgb25lXHJcbiAqIEBwYXJhbSB0YWJzdGVyIFRhYnN0ZXIgaW5zdGFuY2VcclxuICogQHBhcmFtIHByb3BzIERlbG9zZXIgcHJvcHNcclxuICovXG5cbmZ1bmN0aW9uIGdldERlbG9zZXIodGFic3RlciwgcHJvcHMpIHtcbiAgY29uc3QgdGFic3RlckNvcmUgPSB0YWJzdGVyLmNvcmU7XG5cbiAgaWYgKCF0YWJzdGVyQ29yZS5kZWxvc2VyKSB7XG4gICAgdGFic3RlckNvcmUuZGVsb3NlciA9IG5ldyBEZWxvc2VyQVBJKHRhYnN0ZXJDb3JlLCBwcm9wcyk7XG4gIH1cblxuICByZXR1cm4gdGFic3RlckNvcmUuZGVsb3Nlcjtcbn1cbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IG1vZGFsaXplciBpbnN0YW5jZSBvciByZXR1cm5zIGFuIGV4aXN0aW5nIG9uZVxyXG4gKiBAcGFyYW0gdGFic3RlciBUYWJzdGVyIGluc3RhbmNlXHJcbiAqIEBwYXJhbSBhbHdheXNBY2Nlc3NpYmxlU2VsZWN0b3IgV2hlbiBNb2RhbGl6ZXIgaXMgYWN0aXZlLCB3ZSBwdXRcclxuICogYXJpYS1oaWRkZW4gdG8gZXZlcnl0aGluZyBlbHNlIHRvIGhpZGUgaXQgZnJvbSBzY3JlZW4gcmVhZGVycy4gVGhpcyBDU1NcclxuICogc2VsZWN0b3IgYWxsb3dzIHRvIGV4Y2x1ZGUgc29tZSBlbGVtZW50cyBmcm9tIHRoaXMgYmVoYXZpb3VyLiBGb3IgZXhhbXBsZSxcclxuICogdGhpcyBjb3VsZCBiZSB1c2VkIHRvIGV4Y2x1ZGUgYXJpYS1saXZlIHJlZ2lvbiB3aXRoIHRoZSBhcHBsaWNhdGlvbi13aWRlXHJcbiAqIHN0YXR1cyBhbm5vdW5jZW1lbnRzLlxyXG4gKiBAcGFyYW0gYWNjZXNzaWJsZUNoZWNrIEFuIG9wdGlvbmFsIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlblxyXG4gKiBhY3RpdmUgTW9kYWxpemVyIHdhbnRzIHRvIGhpZGUgYW4gZWxlbWVudCB0aGF0IGRvZXNuJ3QgYmVsb25nIHRvIGl0IGZyb21cclxuICogdGhlIHNjcmVlbiByZWFkZXJzIGJ5IHNldHRpbmcgYXJpYS1oaWRkZW4uIFNpbWlsYXIgdG8gYWx3YXlzQWNjZXNzaWJsZVNlbGVjdG9yXHJcbiAqIGJ1dCBhbGxvd3MgdG8gYWRkcmVzcyB0aGUgZWxlbWVudHMgcHJvZ3JhbW1hdGljYWxseSByYXRoZXIgdGhhbiB3aXRoIGEgc2VsZWN0b3IuXHJcbiAqIElmIHRoZSBjYWxsYmFjayByZXR1cm5zIHRydWUsIHRoZSBlbGVtZW50IHdpbGwgbm90IHJlY2VpdmUgYXJpYS1oaWRkZW4uXHJcbiAqL1xuXG5mdW5jdGlvbiBnZXRNb2RhbGl6ZXIodGFic3RlciwgLy8gQGRlcHJlY2F0ZWQgdXNlIGFjY2Vzc2libGVDaGVjay5cbmFsd2F5c0FjY2Vzc2libGVTZWxlY3RvciwgYWNjZXNzaWJsZUNoZWNrKSB7XG4gIGNvbnN0IHRhYnN0ZXJDb3JlID0gdGFic3Rlci5jb3JlO1xuXG4gIGlmICghdGFic3RlckNvcmUubW9kYWxpemVyKSB7XG4gICAgdGFic3RlckNvcmUubW9kYWxpemVyID0gbmV3IE1vZGFsaXplckFQSSh0YWJzdGVyQ29yZSwgYWx3YXlzQWNjZXNzaWJsZVNlbGVjdG9yLCBhY2Nlc3NpYmxlQ2hlY2spO1xuICB9XG5cbiAgcmV0dXJuIHRhYnN0ZXJDb3JlLm1vZGFsaXplcjtcbn1cbmZ1bmN0aW9uIGdldE9ic2VydmVkRWxlbWVudCh0YWJzdGVyKSB7XG4gIGNvbnN0IHRhYnN0ZXJDb3JlID0gdGFic3Rlci5jb3JlO1xuXG4gIGlmICghdGFic3RlckNvcmUub2JzZXJ2ZWRFbGVtZW50KSB7XG4gICAgdGFic3RlckNvcmUub2JzZXJ2ZWRFbGVtZW50ID0gbmV3IE9ic2VydmVkRWxlbWVudEFQSSh0YWJzdGVyQ29yZSk7XG4gIH1cblxuICByZXR1cm4gdGFic3RlckNvcmUub2JzZXJ2ZWRFbGVtZW50O1xufVxuZnVuY3Rpb24gZ2V0Q3Jvc3NPcmlnaW4odGFic3Rlcikge1xuICBjb25zdCB0YWJzdGVyQ29yZSA9IHRhYnN0ZXIuY29yZTtcblxuICBpZiAoIXRhYnN0ZXJDb3JlLmNyb3NzT3JpZ2luKSB7XG4gICAgZ2V0RGVsb3Nlcih0YWJzdGVyKTtcbiAgICBnZXRNb2RhbGl6ZXIodGFic3Rlcik7XG4gICAgZ2V0TW92ZXIodGFic3Rlcik7XG4gICAgZ2V0R3JvdXBwZXIodGFic3Rlcik7XG4gICAgZ2V0T3V0bGluZSh0YWJzdGVyKTtcbiAgICBnZXRPYnNlcnZlZEVsZW1lbnQodGFic3Rlcik7XG4gICAgdGFic3RlckNvcmUuY3Jvc3NPcmlnaW4gPSBuZXcgQ3Jvc3NPcmlnaW5BUEkodGFic3RlckNvcmUpO1xuICB9XG5cbiAgcmV0dXJuIHRhYnN0ZXJDb3JlLmNyb3NzT3JpZ2luO1xufVxuZnVuY3Rpb24gZ2V0SW50ZXJuYWwodGFic3Rlcikge1xuICBjb25zdCB0YWJzdGVyQ29yZSA9IHRhYnN0ZXIuY29yZTtcbiAgcmV0dXJuIHRhYnN0ZXJDb3JlLmludGVybmFsO1xufVxuZnVuY3Rpb24gZ2V0UmVzdG9yZXIodGFic3Rlcikge1xuICBjb25zdCB0YWJzdGVyQ29yZSA9IHRhYnN0ZXIuY29yZTtcblxuICBpZiAoIXRhYnN0ZXJDb3JlLnJlc3RvcmVyKSB7XG4gICAgdGFic3RlckNvcmUucmVzdG9yZXIgPSBuZXcgUmVzdG9yZXJBUEkodGFic3RlckNvcmUpO1xuICB9XG5cbiAgcmV0dXJuIHRhYnN0ZXJDb3JlLnJlc3RvcmVyO1xufVxuZnVuY3Rpb24gZGlzcG9zZVRhYnN0ZXIodGFic3RlciwgYWxsSW5zdGFuY2VzKSB7XG4gIHRhYnN0ZXIuY29yZS5kaXNwb3NlVGFic3Rlcih0YWJzdGVyLCBhbGxJbnN0YW5jZXMpO1xufVxuLyoqXHJcbiAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVGFic3RlciBpZiBpdCBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgd2luZG93IC5cclxuICogQHBhcmFtIHdpbiB3aW5kb3cgaW5zdGFuY2UgdGhhdCBjb3VsZCBjb250YWluIGFuIFRhYnN0ZXIgaW5zdGFuY2UuXHJcbiAqL1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50VGFic3Rlcih3aW4pIHtcbiAgcmV0dXJuIHdpbi5fX3RhYnN0ZXJJbnN0YW5jZTtcbn1cbi8qKlxyXG4gKiBBbGxvd3MgdG8gbWFrZSBUYWJzdGVyIG5vbiBvcGVyYXRpb25hbC4gSW50ZW5kZWQgZm9yIHBlcmZvcm1hbmNlIGRlYnVnZ2luZyAoYW5kIG90aGVyXHJcbiAqIGtpbmRzIG9mIGRlYnVnZ2luZyksIHlvdSBjYW4gc3dpdGNoIFRhYnN0ZXIgb2ZmIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGFwcGxpY2F0aW9uIGNvZGVcclxuICogdGhhdCBjb25zdW1lcyBpdC5cclxuICogQHBhcmFtIHRhYnN0ZXIgYSByZWZlcmVuY2UgY3JlYXRlZCBieSBjcmVhdGVUYWJzdGVyKCkuXHJcbiAqIEBwYXJhbSBub29wIHRydWUgaWYgeW91IHdhbnQgdG8gbWFrZSBUYWJzdGVyIG5vb3AsIGZhbHNlIGlmIHlvdSB3YW50IHRvIHR1cm4gaXQgYmFjay5cclxuICovXG5cbmZ1bmN0aW9uIG1ha2VOb09wKHRhYnN0ZXIsIG5vb3ApIHtcbiAgY29uc3QgY29yZSA9IHRhYnN0ZXIuY29yZTtcblxuICBpZiAoY29yZS5fbm9vcCAhPT0gbm9vcCkge1xuICAgIGNvcmUuX25vb3AgPSBub29wO1xuXG4gICAgY29uc3QgcHJvY2Vzc05vZGUgPSBlbGVtZW50ID0+IHtcbiAgICAgIGlmICghZWxlbWVudC5nZXRBdHRyaWJ1dGUpIHtcbiAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICB9XG5cbiAgICAgIGlmIChnZXRUYWJzdGVyT25FbGVtZW50KGNvcmUsIGVsZW1lbnQpIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKFRBQlNURVJfQVRUUklCVVRFX05BTUUpKSB7XG4gICAgICAgIHVwZGF0ZVRhYnN0ZXJCeUF0dHJpYnV0ZShjb3JlLCBlbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgfTtcblxuICAgIGNvbnN0IGRvYyA9IGNvcmUuZ2V0V2luZG93KCkuZG9jdW1lbnQ7XG4gICAgY29uc3QgYm9keSA9IGRvYy5ib2R5O1xuICAgIHByb2Nlc3NOb2RlKGJvZHkpO1xuICAgIGNvbnN0IHdhbGtlciA9IGNyZWF0ZUVsZW1lbnRUcmVlV2Fsa2VyKGRvYywgYm9keSwgcHJvY2Vzc05vZGUpO1xuXG4gICAgaWYgKHdhbGtlcikge1xuICAgICAgd2hpbGUgKHdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIC8qIEl0ZXJhdGluZyBmb3IgdGhlIHNha2Ugb2YgY2FsbGluZyBwcm9jZXNzTm9kZSgpIGNhbGxiYWNrLiAqL1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gaXNOb09wKHRhYnN0ZXIpIHtcbiAgcmV0dXJuIHRhYnN0ZXIuX25vb3A7XG59XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cblxudmFyIFR5cGVzID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICAgIF9fcHJvdG9fXzogbnVsbFxufSk7XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cblxudmFyIEV2ZW50c1R5cGVzID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICAgIF9fcHJvdG9fXzogbnVsbFxufSk7XG5cbi8qIVxyXG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxyXG4gKi9cbi8qKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLCB1c2UgbmF0aXZlIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgR3JvdXBwZXJNb3ZlRm9jdXNFdmVudCguLi4pKS4gKi9cblxuZnVuY3Rpb24gZGlzcGF0Y2hHcm91cHBlck1vdmVGb2N1c0V2ZW50KHRhcmdldCwgYWN0aW9uKSB7XG4gIHJldHVybiB0YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgR3JvdXBwZXJNb3ZlRm9jdXNFdmVudCh7XG4gICAgYWN0aW9uXG4gIH0pKTtcbn1cbi8qKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLCB1c2UgbmF0aXZlIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW92ZXJNb3ZlRm9jdXNFdmVudCguLi4pKS4gKi9cblxuZnVuY3Rpb24gZGlzcGF0Y2hNb3Zlck1vdmVGb2N1c0V2ZW50KHRhcmdldCwga2V5KSB7XG4gIHJldHVybiB0YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgTW92ZXJNb3ZlRm9jdXNFdmVudCh7XG4gICAga2V5XG4gIH0pKTtcbn1cbi8qKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLCB1c2UgbmF0aXZlIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW92ZXJNZW1vcml6ZWRFbGVtZW50RXZlbnQoLi4uKSkuICovXG5cbmZ1bmN0aW9uIGRpc3BhdGNoTW92ZXJNZW1vcml6ZWRFbGVtZW50RXZlbnQodGFyZ2V0LCBtZW1vcml6ZWRFbGVtZW50KSB7XG4gIHJldHVybiB0YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgTW92ZXJNZW1vcml6ZWRFbGVtZW50RXZlbnQoe1xuICAgIG1lbW9yaXplZEVsZW1lbnRcbiAgfSkpO1xufVxuXG5leHBvcnQgeyBBc3luY0ZvY3VzU291cmNlcywgRGVsb3NlckZvY3VzTG9zdEV2ZW50LCBEZWxvc2VyRm9jdXNMb3N0RXZlbnROYW1lLCBEZWxvc2VyUmVzdG9yZUZvY3VzRXZlbnQsIERlbG9zZXJSZXN0b3JlRm9jdXNFdmVudE5hbWUsIERlbG9zZXJTdHJhdGVnaWVzLCBFdmVudHNUeXBlcywgRk9DVVNBQkxFX1NFTEVDVE9SLCBHcm91cHBlck1vdmVGb2N1c0FjdGlvbnMsIEdyb3VwcGVyTW92ZUZvY3VzRXZlbnQsIEdyb3VwcGVyTW92ZUZvY3VzRXZlbnROYW1lLCBHcm91cHBlclRhYmJhYmlsaXRpZXMsIE1vZGFsaXplckFjdGl2ZUV2ZW50LCBNb2RhbGl6ZXJBY3RpdmVFdmVudE5hbWUsIE1vZGFsaXplckZvY3VzSW5FdmVudE5hbWUsIE1vZGFsaXplckZvY3VzT3V0RXZlbnROYW1lLCBNb2RhbGl6ZXJJbmFjdGl2ZUV2ZW50LCBNb2RhbGl6ZXJJbmFjdGl2ZUV2ZW50TmFtZSwgTW92ZXJEaXJlY3Rpb25zLCBNb3ZlcktleXMsIE1vdmVyTWVtb3JpemVkRWxlbWVudEV2ZW50LCBNb3Zlck1lbW9yaXplZEVsZW1lbnRFdmVudE5hbWUsIE1vdmVyTW92ZUZvY3VzRXZlbnQsIE1vdmVyTW92ZUZvY3VzRXZlbnROYW1lLCBNb3ZlclN0YXRlRXZlbnQsIE1vdmVyU3RhdGVFdmVudE5hbWUsIE9ic2VydmVkRWxlbWVudEFjY2Vzc2liaWxpdGllcywgUmVzdG9yZUZvY3VzT3JkZXJzLCBSZXN0b3JlclJlc3RvcmVGb2N1c0V2ZW50LCBSZXN0b3JlclJlc3RvcmVGb2N1c0V2ZW50TmFtZSwgUmVzdG9yZXJUeXBlcywgUm9vdEJsdXJFdmVudCwgUm9vdEJsdXJFdmVudE5hbWUsIFJvb3RGb2N1c0V2ZW50LCBSb290Rm9jdXNFdmVudE5hbWUsIFN5c0R1bW15SW5wdXRzUG9zaXRpb25zLCBUQUJTVEVSX0FUVFJJQlVURV9OQU1FLCBUQUJTVEVSX0RVTU1ZX0lOUFVUX0FUVFJJQlVURV9OQU1FLCBUYWJzdGVyQ3VzdG9tRXZlbnQsIFRhYnN0ZXJGb2N1c0luRXZlbnQsIFRhYnN0ZXJGb2N1c0luRXZlbnROYW1lLCBUYWJzdGVyRm9jdXNPdXRFdmVudCwgVGFic3RlckZvY3VzT3V0RXZlbnROYW1lLCBUYWJzdGVyTW92ZUZvY3VzRXZlbnQsIFRhYnN0ZXJNb3ZlRm9jdXNFdmVudE5hbWUsIFR5cGVzLCBWaXNpYmlsaXRpZXMsIGNyZWF0ZVRhYnN0ZXIsIGRpc3BhdGNoR3JvdXBwZXJNb3ZlRm9jdXNFdmVudCwgZGlzcGF0Y2hNb3Zlck1lbW9yaXplZEVsZW1lbnRFdmVudCwgZGlzcGF0Y2hNb3Zlck1vdmVGb2N1c0V2ZW50LCBkaXNwb3NlVGFic3RlciwgZm9yY2VDbGVhbnVwLCBnZXRDcm9zc09yaWdpbiwgZ2V0RGVsb3NlciwgZ2V0RHVtbXlJbnB1dENvbnRhaW5lciwgZ2V0R3JvdXBwZXIsIGdldEludGVybmFsLCBnZXRNb2RhbGl6ZXIsIGdldE1vdmVyLCBnZXRPYnNlcnZlZEVsZW1lbnQsIGdldE91dGxpbmUsIGdldFJlc3RvcmVyLCBnZXRTaGFkb3dET01BUEksIGdldFRhYnN0ZXIsIGdldFRhYnN0ZXJBdHRyaWJ1dGUsIGlzTm9PcCwgbWFrZU5vT3AsIG1lcmdlVGFic3RlclByb3BzLCBzZXRUYWJzdGVyQXR0cmlidXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10YWJzdGVyLmVzbS5qcy5tYXBcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IGNyZWF0ZVRhYnN0ZXIsIGRpc3Bvc2VUYWJzdGVyIH0gZnJvbSAndGFic3Rlcic7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LCBnZXRQYXJlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogVHJpZXMgdG8gZ2V0IGEgdGFic3RlciBpbnN0YW5jZSBvbiB0aGUgY3VycmVudCB3aW5kb3cgb3IgY3JlYXRlcyBhIG5ldyBvbmVcbiAqIFNpbmNlIFRhYnN0ZXIgaXMgc2luZ2xlIGluc3RhbmNlIG9ubHksIGZlZWwgZnJlZSB0byBjYWxsIHRoaXMgaG9vayB0byBlbnN1cmUgVGFic3RlciBleGlzdHMgaWYgbmVjZXNzYXJ5XG4gKlxuICogQGludGVybmFsXG4gKiBAcmV0dXJucyBUYWJzdGVyIGNvcmUgaW5zdGFuY2VcbiAqLyBleHBvcnQgY29uc3QgdXNlVGFic3RlciA9ICgpPT57XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3QgZGVmYXVsdFZpZXcgPSAodGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3KSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hhZG93RE9NQVBJID0gZGVmYXVsdFZpZXcgPT09IG51bGwgfHwgZGVmYXVsdFZpZXcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlZmF1bHRWaWV3Ll9fdGFic3RlclNoYWRvd0RPTUFQSTtcbiAgICBjb25zdCB0YWJzdGVyID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBpZiAoIWRlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlYXRlVGFic3RlcihkZWZhdWx0Vmlldywge1xuICAgICAgICAgICAgYXV0b1Jvb3Q6IHt9LFxuICAgICAgICAgICAgY29udHJvbFRhYjogZmFsc2UsXG4gICAgICAgICAgICBnZXRQYXJlbnQsXG4gICAgICAgICAgICBjaGVja1VuY29udHJvbGxlZFRyYXBwaW5nRm9jdXM6IChlbGVtZW50KT0+e1xuICAgICAgICAgICAgICAgIHZhciBfZWxlbWVudF9maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gISEoKF9lbGVtZW50X2ZpcnN0RWxlbWVudENoaWxkID0gZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCkgPT09IG51bGwgfHwgX2VsZW1lbnRfZmlyc3RFbGVtZW50Q2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lbGVtZW50X2ZpcnN0RWxlbWVudENoaWxkLmhhc0F0dHJpYnV0ZSgnZGF0YS1pcy1mb2N1cy10cmFwLXpvbmUtYnVtcGVyJykpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIERPTUFQSTogc2hhZG93RE9NQVBJXG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgZGVmYXVsdFZpZXcsXG4gICAgICAgIHNoYWRvd0RPTUFQSVxuICAgIF0pO1xuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBpZiAodGFic3Rlcikge1xuICAgICAgICAgICAgICAgIGRpc3Bvc2VUYWJzdGVyKHRhYnN0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgdGFic3RlclxuICAgIF0pO1xuICAgIHJldHVybiB0YWJzdGVyO1xufTtcbiIsImltcG9ydCB7IGdldFRhYnN0ZXJBdHRyaWJ1dGUsIFRBQlNURVJfQVRUUklCVVRFX05BTUUgfSBmcm9tICd0YWJzdGVyJztcbmltcG9ydCB7IHVzZVRhYnN0ZXIgfSBmcm9tICcuL3VzZVRhYnN0ZXInO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEhvb2sgdGhhdCByZXR1cm5zIHRhYnN0ZXIgYXR0cmlidXRlcyB3aGlsZSBlbnN1cmluZyB0YWJzdGVyIGV4aXN0c1xuICovIGV4cG9ydCBjb25zdCB1c2VUYWJzdGVyQXR0cmlidXRlcyA9IChwcm9wcyk9PntcbiAgICAvLyBBIHRhYnN0ZXIgaW5zdGFuY2UgaXMgbm90IG5lY2Vzc2FyeSB0byBnZW5lcmF0ZSB0YWJzdGVyIGF0dHJpYnV0ZXNcbiAgICAvLyBidXQgY2FsbGluZyB0aGUgaG9vayB3aWxsIGVuc3VyZSB0aGF0IGEgdGFic3RlciBpbnN0YW5jZSBleGlzdHMgaW50ZXJuYWxseSBhbmQgYXZvaWRzIGNvbnN1bWVycyBkb2luZyB0aGUgc2FtZVxuICAgIHVzZVRhYnN0ZXIoKTtcbiAgICBjb25zdCBzdHJBdHRyID0gZ2V0VGFic3RlckF0dHJpYnV0ZShwcm9wcywgdHJ1ZSk7XG4gICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICBbVEFCU1RFUl9BVFRSSUJVVEVfTkFNRV06IHN0ckF0dHJcbiAgICAgICAgfSksIFtcbiAgICAgICAgc3RyQXR0clxuICAgIF0pO1xufTtcbiIsImltcG9ydCB7IGdldE1vdmVyLCBNb3ZlckRpcmVjdGlvbnMgfSBmcm9tICd0YWJzdGVyJztcbmltcG9ydCB7IHVzZVRhYnN0ZXJBdHRyaWJ1dGVzIH0gZnJvbSAnLi91c2VUYWJzdGVyQXR0cmlidXRlcyc7XG5pbXBvcnQgeyB1c2VUYWJzdGVyIH0gZnJvbSAnLi91c2VUYWJzdGVyJztcbi8qKlxuICogQSBob29rIHRoYXQgcmV0dXJucyB0aGUgbmVjZXNzYXJ5IHRhYnN0ZXIgYXR0cmlidXRlcyB0byBzdXBwb3J0IGFycm93IGtleSBuYXZpZ2F0aW9uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gY29uZmlndXJlIGtleWJvYXJkIG5hdmlnYXRpb25cbiAqLyBleHBvcnQgY29uc3QgdXNlQXJyb3dOYXZpZ2F0aW9uR3JvdXAgPSAob3B0aW9ucyA9IHt9KT0+e1xuICAgIGNvbnN0IHsgY2lyY3VsYXIsIGF4aXMsIG1lbW9yaXplQ3VycmVudCA9IHRydWUsIHRhYmJhYmxlLCBpZ25vcmVEZWZhdWx0S2V5ZG93biwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIHVuc3RhYmxlX2hhc0RlZmF1bHQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgdGFic3RlciA9IHVzZVRhYnN0ZXIoKTtcbiAgICBpZiAodGFic3Rlcikge1xuICAgICAgICBnZXRNb3Zlcih0YWJzdGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHVzZVRhYnN0ZXJBdHRyaWJ1dGVzKHtcbiAgICAgICAgbW92ZXI6IHtcbiAgICAgICAgICAgIGN5Y2xpYzogISFjaXJjdWxhcixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogYXhpc1RvTW92ZXJEaXJlY3Rpb24oYXhpcyAhPT0gbnVsbCAmJiBheGlzICE9PSB2b2lkIDAgPyBheGlzIDogJ3ZlcnRpY2FsJyksXG4gICAgICAgICAgICBtZW1vcml6ZUN1cnJlbnQsXG4gICAgICAgICAgICB0YWJiYWJsZSxcbiAgICAgICAgICAgIGhhc0RlZmF1bHQ6IHVuc3RhYmxlX2hhc0RlZmF1bHRcbiAgICAgICAgfSxcbiAgICAgICAgLi4uaWdub3JlRGVmYXVsdEtleWRvd24gJiYge1xuICAgICAgICAgICAgZm9jdXNhYmxlOiB7XG4gICAgICAgICAgICAgICAgaWdub3JlS2V5ZG93bjogaWdub3JlRGVmYXVsdEtleWRvd25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmZ1bmN0aW9uIGF4aXNUb01vdmVyRGlyZWN0aW9uKGF4aXMpIHtcbiAgICBzd2l0Y2goYXhpcyl7XG4gICAgICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgICAgICAgcmV0dXJuIE1vdmVyRGlyZWN0aW9ucy5Ib3Jpem9udGFsO1xuICAgICAgICBjYXNlICdncmlkJzpcbiAgICAgICAgICAgIHJldHVybiBNb3ZlckRpcmVjdGlvbnMuR3JpZDtcbiAgICAgICAgY2FzZSAnZ3JpZC1saW5lYXInOlxuICAgICAgICAgICAgcmV0dXJuIE1vdmVyRGlyZWN0aW9ucy5HcmlkTGluZWFyO1xuICAgICAgICBjYXNlICdib3RoJzpcbiAgICAgICAgICAgIHJldHVybiBNb3ZlckRpcmVjdGlvbnMuQm90aDtcbiAgICAgICAgY2FzZSAndmVydGljYWwnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIE1vdmVyRGlyZWN0aW9ucy5WZXJ0aWNhbDtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBnZXRHcm91cHBlciwgR3JvdXBwZXJUYWJiYWJpbGl0aWVzIH0gZnJvbSAndGFic3Rlcic7XG5pbXBvcnQgeyB1c2VUYWJzdGVyQXR0cmlidXRlcyB9IGZyb20gJy4vdXNlVGFic3RlckF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgdXNlVGFic3RlciB9IGZyb20gJy4vdXNlVGFic3Rlcic7XG4vKipcbiAqIEEgaG9vayB0aGF0IHJldHVybnMgdGhlIG5lY2Vzc2FyeSB0YWJzdGVyIGF0dHJpYnV0ZXMgdG8gc3VwcG9ydCBncm91cHBpbmcuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gY29uZmlndXJlIGtleWJvYXJkIG5hdmlnYXRpb25cbiAqLyBleHBvcnQgY29uc3QgdXNlRm9jdXNhYmxlR3JvdXAgPSAob3B0aW9ucyk9PntcbiAgICBjb25zdCB0YWJzdGVyID0gdXNlVGFic3RlcigpO1xuICAgIGlmICh0YWJzdGVyKSB7XG4gICAgICAgIGdldEdyb3VwcGVyKHRhYnN0ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gdXNlVGFic3RlckF0dHJpYnV0ZXMoe1xuICAgICAgICBncm91cHBlcjoge1xuICAgICAgICAgICAgdGFiYmFiaWxpdHk6IGdldFRhYmJhYmlsaXR5KG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy50YWJCZWhhdmlvcilcbiAgICAgICAgfSxcbiAgICAgICAgZm9jdXNhYmxlOiB7XG4gICAgICAgICAgICBpZ25vcmVLZXlkb3duOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaWdub3JlRGVmYXVsdEtleWRvd25cbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IGdldFRhYmJhYmlsaXR5ID0gKHRhYkJlaGF2aW9yKT0+e1xuICAgIHN3aXRjaCh0YWJCZWhhdmlvcil7XG4gICAgICAgIGNhc2UgJ3VubGltaXRlZCc6XG4gICAgICAgICAgICByZXR1cm4gR3JvdXBwZXJUYWJiYWJpbGl0aWVzLlVubGltaXRlZDtcbiAgICAgICAgY2FzZSAnbGltaXRlZCc6XG4gICAgICAgICAgICByZXR1cm4gR3JvdXBwZXJUYWJiYWJpbGl0aWVzLkxpbWl0ZWQ7XG4gICAgICAgIGNhc2UgJ2xpbWl0ZWQtdHJhcC1mb2N1cyc6XG4gICAgICAgICAgICByZXR1cm4gR3JvdXBwZXJUYWJiYWJpbGl0aWVzLkxpbWl0ZWRUcmFwRm9jdXM7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyB1c2VUYWJzdGVyIH0gZnJvbSAnLi91c2VUYWJzdGVyJztcbi8qKlxuICogUmV0dXJucyBhIHNldCBvZiBoZWxwZXIgZnVuY3Rpb25zIHRoYXQgd2lsbCB0cmF2ZXJzZSBmb2N1c2FibGUgZWxlbWVudHMgaW4gdGhlIGNvbnRleHQgb2YgYSByb290IERPTSBlbGVtZW50XG4gKi8gZXhwb3J0IGNvbnN0IHVzZUZvY3VzRmluZGVycyA9ICgpPT57XG4gICAgY29uc3QgdGFic3RlciA9IHVzZVRhYnN0ZXIoKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICAvLyBOYXJyb3cgcHJvcHMgZm9yIG5vdyBhbmQgbGV0IG5lZWQgZGljdGF0ZSBhZGRpdGlvbmFsIHByb3BzIGluIHRoZSBmdXR1cmVcbiAgICBjb25zdCBmaW5kQWxsRm9jdXNhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbnRhaW5lciwgYWNjZXB0Q29uZGl0aW9uKT0+KHRhYnN0ZXIgPT09IG51bGwgfHwgdGFic3RlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFic3Rlci5mb2N1c2FibGUuZmluZEFsbCh7XG4gICAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgICBhY2NlcHRDb25kaXRpb25cbiAgICAgICAgfSkpIHx8IFtdLCBbXG4gICAgICAgIHRhYnN0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBmaW5kRmlyc3RGb2N1c2FibGUgPSBSZWFjdC51c2VDYWxsYmFjaygoY29udGFpbmVyKT0+dGFic3RlciA9PT0gbnVsbCB8fCB0YWJzdGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YWJzdGVyLmZvY3VzYWJsZS5maW5kRmlyc3Qoe1xuICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgIH0pLCBbXG4gICAgICAgIHRhYnN0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBmaW5kTGFzdEZvY3VzYWJsZSA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIpPT50YWJzdGVyID09PSBudWxsIHx8IHRhYnN0ZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhYnN0ZXIuZm9jdXNhYmxlLmZpbmRMYXN0KHtcbiAgICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICB9KSwgW1xuICAgICAgICB0YWJzdGVyXG4gICAgXSk7XG4gICAgY29uc3QgZmluZE5leHRGb2N1c2FibGUgPSBSZWFjdC51c2VDYWxsYmFjaygoY3VycmVudEVsZW1lbnQsIG9wdGlvbnMgPSB7fSk9PntcbiAgICAgICAgaWYgKCF0YWJzdGVyIHx8ICF0YXJnZXREb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjb250YWluZXIgPSB0YXJnZXREb2N1bWVudC5ib2R5IH0gPSBvcHRpb25zO1xuICAgICAgICByZXR1cm4gdGFic3Rlci5mb2N1c2FibGUuZmluZE5leHQoe1xuICAgICAgICAgICAgY3VycmVudEVsZW1lbnQsXG4gICAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICB0YWJzdGVyLFxuICAgICAgICB0YXJnZXREb2N1bWVudFxuICAgIF0pO1xuICAgIGNvbnN0IGZpbmRQcmV2Rm9jdXNhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soKGN1cnJlbnRFbGVtZW50LCBvcHRpb25zID0ge30pPT57XG4gICAgICAgIGlmICghdGFic3RlciB8fCAhdGFyZ2V0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY29udGFpbmVyID0gdGFyZ2V0RG9jdW1lbnQuYm9keSB9ID0gb3B0aW9ucztcbiAgICAgICAgcmV0dXJuIHRhYnN0ZXIuZm9jdXNhYmxlLmZpbmRQcmV2KHtcbiAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LFxuICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgdGFic3RlcixcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaW5kQWxsRm9jdXNhYmxlLFxuICAgICAgICBmaW5kRmlyc3RGb2N1c2FibGUsXG4gICAgICAgIGZpbmRMYXN0Rm9jdXNhYmxlLFxuICAgICAgICBmaW5kTmV4dEZvY3VzYWJsZSxcbiAgICAgICAgZmluZFByZXZGb2N1c2FibGVcbiAgICB9O1xufTtcbiIsImV4cG9ydCBjb25zdCBLRVlCT0FSRF9OQVZfQVRUUklCVVRFID0gJ2RhdGEta2V5Ym9hcmQtbmF2JztcbmV4cG9ydCBjb25zdCBLRVlCT0FSRF9OQVZfU0VMRUNUT1IgPSBgOmdsb2JhbChbJHtLRVlCT0FSRF9OQVZfQVRUUklCVVRFfV0pYDtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IEZPQ1VTX1ZJU0lCTEVfQVRUUiA9ICdkYXRhLWZ1aS1mb2N1cy12aXNpYmxlJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IEZPQ1VTX1dJVEhJTl9BVFRSID0gJ2RhdGEtZnVpLWZvY3VzLXdpdGhpbic7XG5leHBvcnQgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgc3R5bGU6IHt9LFxuICAgIHNlbGVjdG9yOiAnZm9jdXMnLFxuICAgIGN1c3RvbWl6ZVNlbGVjdG9yOiAoc2VsZWN0b3IpPT5zZWxlY3RvclxufTtcbiIsImltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IEtFWUJPUkdfRk9DVVNJTiwgY3JlYXRlS2V5Ym9yZywgZGlzcG9zZUtleWJvcmcgfSBmcm9tICdrZXlib3JnJztcbmltcG9ydCB7IEZPQ1VTX1ZJU0lCTEVfQVRUUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gc2NvcGUgLSBBcHBsaWVzIHRoZSBwb255ZmlsbCB0byBhbGwgRE9NIGNoaWxkcmVuXG4gKiBAcGFyYW0gdGFyZ2V0V2luZG93IC0gd2luZG93XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGFwcGx5Rm9jdXNWaXNpYmxlUG9seWZpbGwoc2NvcGUsIHRhcmdldFdpbmRvdykge1xuICAgIGlmIChhbHJlYWR5SW5TY29wZShzY29wZSkpIHtcbiAgICAgICAgLy8gRm9jdXMgdmlzaWJsZSBwb2x5ZmlsbCBhbHJlYWR5IGFwcGxpZWQgYXQgdGhpcyBzY29wZVxuICAgICAgICByZXR1cm4gKCk9PnVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGN1cnJlbnQ6IHVuZGVmaW5lZFxuICAgIH07XG4gICAgY29uc3Qga2V5Ym9yZyA9IGNyZWF0ZUtleWJvcmcodGFyZ2V0V2luZG93KTtcbiAgICBmdW5jdGlvbiByZWdpc3RlckVsZW1lbnRJZk5hdmlnYXRpbmcoZWwpIHtcbiAgICAgICAgaWYgKGtleWJvcmcuaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKCkgJiYgaXNIVE1MRWxlbWVudChlbCkpIHtcbiAgICAgICAgICAgIHN0YXRlLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZShGT0NVU19WSVNJQkxFX0FUVFIsICcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwb3NlQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIGlmIChzdGF0ZS5jdXJyZW50KSB7XG4gICAgICAgICAgICBzdGF0ZS5jdXJyZW50LnJlbW92ZUF0dHJpYnV0ZShGT0NVU19WSVNJQkxFX0FUVFIpO1xuICAgICAgICAgICAgc3RhdGUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXaGVuIG5hdmlnYXRpb24gbW9kZSBjaGFuZ2VzIHJlbW92ZSB0aGUgZm9jdXMtdmlzaWJsZSBzZWxlY3RvclxuICAgIGtleWJvcmcuc3Vic2NyaWJlKChpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpPT57XG4gICAgICAgIGlmICghaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKSB7XG4gICAgICAgICAgICBkaXNwb3NlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIEtleWJvcmcncyBmb2N1c2luIGV2ZW50IGlzIGRlbGVnYXRlZCBzbyBpdCdzIG9ubHkgcmVnaXN0ZXJlZCBvbmNlIG9uIHRoZSB3aW5kb3dcbiAgICAvLyBhbmQgY29udGFpbnMgbWV0YWRhdGEgYWJvdXQgdGhlIGZvY3VzIGV2ZW50XG4gICAgY29uc3Qga2V5Ym9yZ0xpc3RlbmVyID0gKGUpPT57XG4gICAgICAgIGRpc3Bvc2VDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBlLmNvbXBvc2VkUGF0aCgpWzBdO1xuICAgICAgICByZWdpc3RlckVsZW1lbnRJZk5hdmlnYXRpbmcodGFyZ2V0KTtcbiAgICB9O1xuICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBzY29wZSwgdGhlIGZvY3VzIHZpc2libGUgY2xhc3MgaXMgcmVtb3ZlZFxuICAgIGNvbnN0IGJsdXJMaXN0ZW5lciA9IChlKT0+e1xuICAgICAgICBpZiAoIWUucmVsYXRlZFRhcmdldCB8fCBpc0hUTUxFbGVtZW50KGUucmVsYXRlZFRhcmdldCkgJiYgIXNjb3BlLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIGRpc3Bvc2VDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBzY29wZS5hZGRFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwga2V5Ym9yZ0xpc3RlbmVyKTtcbiAgICBzY29wZS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGJsdXJMaXN0ZW5lcik7XG4gICAgc2NvcGUuZm9jdXNWaXNpYmxlID0gdHJ1ZTtcbiAgICBpZiAoc2NvcGUuY29udGFpbnModGFyZ2V0V2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHJlZ2lzdGVyRWxlbWVudElmTmF2aWdhdGluZyh0YXJnZXRXaW5kb3cuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XG4gICAgfVxuICAgIC8vIFJldHVybiBkaXNwb3NlclxuICAgIHJldHVybiAoKT0+e1xuICAgICAgICBkaXNwb3NlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgc2NvcGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihLRVlCT1JHX0ZPQ1VTSU4sIGtleWJvcmdMaXN0ZW5lcik7XG4gICAgICAgIHNjb3BlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgYmx1ckxpc3RlbmVyKTtcbiAgICAgICAgZGVsZXRlIHNjb3BlLmZvY3VzVmlzaWJsZTtcbiAgICAgICAgZGlzcG9zZUtleWJvcmcoa2V5Ym9yZyk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGFscmVhZHlJblNjb3BlKGVsKSB7XG4gICAgaWYgKCFlbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChlbC5mb2N1c1Zpc2libGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBhbHJlYWR5SW5TY29wZShlbCA9PT0gbnVsbCB8fCBlbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWwucGFyZW50RWxlbWVudCk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyBhcHBseUZvY3VzVmlzaWJsZVBvbHlmaWxsIH0gZnJvbSAnLi4vZm9jdXMvZm9jdXNWaXNpYmxlUG9seWZpbGwnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvY3VzVmlzaWJsZShvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBzY29wZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICB2YXIgX29wdGlvbnNfdGFyZ2V0RG9jdW1lbnQ7XG4gICAgY29uc3QgdGFyZ2V0RG9jdW1lbnQgPSAoX29wdGlvbnNfdGFyZ2V0RG9jdW1lbnQgPSBvcHRpb25zLnRhcmdldERvY3VtZW50KSAhPT0gbnVsbCAmJiBfb3B0aW9uc190YXJnZXREb2N1bWVudCAhPT0gdm9pZCAwID8gX29wdGlvbnNfdGFyZ2V0RG9jdW1lbnQgOiBjb250ZXh0VmFsdWUudGFyZ2V0RG9jdW1lbnQ7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmICgodGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3KSAmJiBzY29wZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHlGb2N1c1Zpc2libGVQb2x5ZmlsbChzY29wZVJlZi5jdXJyZW50LCB0YXJnZXREb2N1bWVudC5kZWZhdWx0Vmlldyk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHNjb3BlUmVmLFxuICAgICAgICB0YXJnZXREb2N1bWVudFxuICAgIF0pO1xuICAgIHJldHVybiBzY29wZVJlZjtcbn1cbiIsImltcG9ydCB7IEtFWUJPUkdfRk9DVVNJTiwgY3JlYXRlS2V5Ym9yZywgZGlzcG9zZUtleWJvcmcgfSBmcm9tICdrZXlib3JnJztcbmltcG9ydCB7IEZPQ1VTX1dJVEhJTl9BVFRSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLyoqXG4gKiBBIHBvbnlmaWxsIHRoYXQgYWxsb3dzIGA6Zm9jdXMtd2l0aGluYCB0byBzdXBwb3J0IHZpc2liaWxpdHkgYmFzZWQgb24ga2V5Ym9hcmQvbW91c2UgbmF2aWdhdGlvblxuICogbGlrZSBgOmZvY3VzLXZpc2libGVgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZvY3VzLXZpc2libGUvaXNzdWVzLzE1MVxuICogQHJldHVybnMgcmVmIHRvIHRoZSBlbGVtZW50IHRoYXQgdXNlcyBgOmZvY3VzLXdpdGhpbmAgc3R5bGVzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGFwcGx5Rm9jdXNXaXRoaW5Qb2x5ZmlsbChlbGVtZW50LCB3aW4pIHtcbiAgICBjb25zdCBrZXlib3JnID0gY3JlYXRlS2V5Ym9yZyh3aW4pO1xuICAgIC8vIFdoZW4gbmF2aWdhdGlvbiBtb2RlIGNoYW5nZXMgdG8gbW91c2UsIHJlbW92ZSB0aGUgZm9jdXMtd2l0aGluIHNlbGVjdG9yXG4gICAga2V5Ym9yZy5zdWJzY3JpYmUoKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCk9PntcbiAgICAgICAgaWYgKCFpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpIHtcbiAgICAgICAgICAgIHJlbW92ZUZvY3VzV2l0aGluQ2xhc3MoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBLZXlib3JnJ3MgZm9jdXNpbiBldmVudCBpcyBkZWxlZ2F0ZWQgc28gaXQncyBvbmx5IHJlZ2lzdGVyZWQgb25jZSBvbiB0aGUgd2luZG93XG4gICAgLy8gYW5kIGNvbnRhaW5zIG1ldGFkYXRhIGFib3V0IHRoZSBmb2N1cyBldmVudFxuICAgIGNvbnN0IGtleWJvcmdMaXN0ZW5lciA9IChlKT0+e1xuICAgICAgICBpZiAoa2V5Ym9yZy5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSAmJiBpc0hUTUxFbGVtZW50KGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgLy8gR3JpZmZlbCBjYW4ndCBjcmVhdGUgY2hhaW5lZCBnbG9iYWwgc3R5bGVzIHNvIHVzZSB0aGUgcGFyZW50IGVsZW1lbnQgZm9yIG5vd1xuICAgICAgICAgICAgYXBwbHlGb2N1c1dpdGhpbkNsYXNzKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBNYWtlIHN1cmUgdGhhdCB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgc2NvcGUsIHRoZSBmb2N1cyB3aXRoaW4gY2xhc3MgaXMgcmVtb3ZlZFxuICAgIGNvbnN0IGJsdXJMaXN0ZW5lciA9IChlKT0+e1xuICAgICAgICBpZiAoIWUucmVsYXRlZFRhcmdldCB8fCBpc0hUTUxFbGVtZW50KGUucmVsYXRlZFRhcmdldCkgJiYgIWVsZW1lbnQuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgICAgcmVtb3ZlRm9jdXNXaXRoaW5DbGFzcyhlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwga2V5Ym9yZ0xpc3RlbmVyKTtcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgYmx1ckxpc3RlbmVyKTtcbiAgICAvLyBSZXR1cm4gZGlzcG9zZXJcbiAgICByZXR1cm4gKCk9PntcbiAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKEtFWUJPUkdfRk9DVVNJTiwga2V5Ym9yZ0xpc3RlbmVyKTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGJsdXJMaXN0ZW5lcik7XG4gICAgICAgIGRpc3Bvc2VLZXlib3JnKGtleWJvcmcpO1xuICAgIH07XG59XG5mdW5jdGlvbiBhcHBseUZvY3VzV2l0aGluQ2xhc3MoZWwpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoRk9DVVNfV0lUSElOX0FUVFIsICcnKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUZvY3VzV2l0aGluQ2xhc3MoZWwpIHtcbiAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoRk9DVVNfV0lUSElOX0FUVFIpO1xufVxuZnVuY3Rpb24gaXNIVE1MRWxlbWVudCh0YXJnZXQpIHtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBCb29sZWFuKHRhcmdldCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0JyAmJiAnY2xhc3NMaXN0JyBpbiB0YXJnZXQgJiYgJ2NvbnRhaW5zJyBpbiB0YXJnZXQpO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgYXBwbHlGb2N1c1dpdGhpblBvbHlmaWxsIH0gZnJvbSAnLi4vZm9jdXMvZm9jdXNXaXRoaW5Qb2x5ZmlsbCc7XG4vKipcbiAqIEEgcG9ueWZpbGwgdGhhdCBhbGxvd3MgYDpmb2N1cy13aXRoaW5gIHRvIHN1cHBvcnQgdmlzaWJpbGl0eSBiYXNlZCBvbiBrZXlib2FyZC9tb3VzZSBuYXZpZ2F0aW9uXG4gKiBsaWtlIGA6Zm9jdXMtdmlzaWJsZWAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZm9jdXMtdmlzaWJsZS9pc3N1ZXMvMTUxXG4gKiBAcmV0dXJucyByZWYgdG8gdGhlIGVsZW1lbnQgdGhhdCB1c2VzIGA6Zm9jdXMtd2l0aGluYCBzdHlsZXNcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlRm9jdXNXaXRoaW4oKSB7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3QgZWxlbWVudFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCh0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQuZGVmYXVsdFZpZXcpICYmIGVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5Rm9jdXNXaXRoaW5Qb2x5ZmlsbChlbGVtZW50UmVmLmN1cnJlbnQsIHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgZWxlbWVudFJlZixcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICByZXR1cm4gZWxlbWVudFJlZjtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUtleWJvcmcsIGRpc3Bvc2VLZXlib3JnIH0gZnJvbSAna2V5Ym9yZyc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogSW5zdGFudGlhdGVzIFtrZXlib3JnXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2tleWJvcmcpXG4gKiBAcmV0dXJucyAtIGtleWJvcmcgaW5zdGFuY2VcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlS2V5Ym9yZ1JlZigpIHtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBrZXlib3JnUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAodGFyZ2V0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleWJvcmcgPSBjcmVhdGVLZXlib3JnKHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3KTtcbiAgICAgICAgICAgIGtleWJvcmdSZWYuY3VycmVudCA9IGtleWJvcmc7XG4gICAgICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgICAgICBkaXNwb3NlS2V5Ym9yZyhrZXlib3JnKTtcbiAgICAgICAgICAgICAgICBrZXlib3JnUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICByZXR1cm4ga2V5Ym9yZ1JlZjtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZUtleWJvcmdSZWYgfSBmcm9tICcuL3VzZUtleWJvcmdSZWYnO1xuLyoqXG4gKiBJbnN0YW50aWF0ZXMgW2tleWJvcmddKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQva2V5Ym9yZykgYW5kIHN1YnNjcmliZXMgdG8gY2hhbmdlc1xuICogaW4gdGhlIGtleWJvYXJkIG5hdmlnYXRpb24gbW9kZS5cbiAqXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBjYWxsZWQgZXZlcnkgdGltZSB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbiBzdGF0ZSBjaGFuZ2VzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZU9uS2V5Ym9hcmROYXZpZ2F0aW9uQ2hhbmdlKGNhbGxiYWNrKSB7XG4gICAgY29uc3Qga2V5Ym9yZ1JlZiA9IHVzZUtleWJvcmdSZWYoKTtcbiAgICBjb25zdCBldmVudENhbGxiYWNrID0gdXNlRXZlbnRDYWxsYmFjayhjYWxsYmFjayk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IGtleWJvcmcgPSBrZXlib3JnUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmIChrZXlib3JnKSB7XG4gICAgICAgICAgICBjb25zdCBjYiA9IChuZXh0KT0+e1xuICAgICAgICAgICAgICAgIGV2ZW50Q2FsbGJhY2sobmV4dCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAga2V5Ym9yZy5zdWJzY3JpYmUoY2IpO1xuICAgICAgICAgICAgY2Ioa2V5Ym9yZy5pc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQoKSk7XG4gICAgICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgICAgICBrZXlib3JnLnVuc3Vic2NyaWJlKGNiKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGtleWJvcmdSZWYsXG4gICAgICAgIGV2ZW50Q2FsbGJhY2tcbiAgICBdKTtcbn1cbiIsImltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VUYWJzdGVyQXR0cmlidXRlcyB9IGZyb20gJy4vdXNlVGFic3RlckF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgZ2V0TW9kYWxpemVyLCBnZXRSZXN0b3JlciwgUmVzdG9yZXJUeXBlcyB9IGZyb20gJ3RhYnN0ZXInO1xuaW1wb3J0IHsgdXNlVGFic3RlciB9IGZyb20gJy4vdXNlVGFic3Rlcic7XG4vKipcbiAqIEFwcGxpZXMgbW9kYWwgZGlhbG9nIGJlaGF2aW91ciB0aHJvdWdoIERPTSBhdHRyaWJ1dGVzXG4gKiBNb2RhbCBlbGVtZW50IHdpbGwgZm9jdXMgdHJhcCBhbmQgaGlkZSBvdGhlciBjb250ZW50IG9uIHRoZSBwYWdlXG4gKiBUaGUgdHJpZ2dlciBlbGVtZW50IHdpbGwgYmUgZm9jdXNlZCBpZiBmb2N1cyBpcyBsb3N0IGFmdGVyIHRoZSBtb2RhbCBlbGVtZW50IGlzIHJlbW92ZWRcbiAqXG4gKiBAcmV0dXJucyBET00gYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgbW9kYWwgZWxlbWVudCBhbmQgaXRzIHRyaWdnZXJcbiAqLyBleHBvcnQgY29uc3QgdXNlTW9kYWxBdHRyaWJ1dGVzID0gKG9wdGlvbnMgPSB7fSk9PntcbiAgICBjb25zdCB7IHRyYXBGb2N1cywgYWx3YXlzRm9jdXNhYmxlLCBsZWdhY3lUcmFwRm9jdXMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgdGFic3RlciA9IHVzZVRhYnN0ZXIoKTtcbiAgICAvLyBJbml0aWFsaXplcyB0aGUgbW9kYWxpemVyIGFuZCByZXN0b3JlciBBUElzXG4gICAgaWYgKHRhYnN0ZXIpIHtcbiAgICAgICAgZ2V0TW9kYWxpemVyKHRhYnN0ZXIpO1xuICAgICAgICBnZXRSZXN0b3Jlcih0YWJzdGVyKTtcbiAgICB9XG4gICAgY29uc3QgaWQgPSB1c2VJZCgnbW9kYWwtJywgb3B0aW9ucy5pZCk7XG4gICAgY29uc3QgbW9kYWxBdHRyaWJ1dGVzID0gdXNlVGFic3RlckF0dHJpYnV0ZXMoe1xuICAgICAgICByZXN0b3Jlcjoge1xuICAgICAgICAgICAgdHlwZTogUmVzdG9yZXJUeXBlcy5Tb3VyY2VcbiAgICAgICAgfSxcbiAgICAgICAgLi4udHJhcEZvY3VzICYmIHtcbiAgICAgICAgICAgIG1vZGFsaXplcjoge1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGlzT3RoZXJzQWNjZXNzaWJsZTogIXRyYXBGb2N1cyxcbiAgICAgICAgICAgICAgICBpc0Fsd2F5c0FjY2Vzc2libGU6IGFsd2F5c0ZvY3VzYWJsZSxcbiAgICAgICAgICAgICAgICBpc1RyYXBwZWQ6IGxlZ2FjeVRyYXBGb2N1cyAmJiB0cmFwRm9jdXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHRyaWdnZXJBdHRyaWJ1dGVzID0gdXNlVGFic3RlckF0dHJpYnV0ZXMoe1xuICAgICAgICByZXN0b3Jlcjoge1xuICAgICAgICAgICAgdHlwZTogUmVzdG9yZXJUeXBlcy5UYXJnZXRcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIG1vZGFsQXR0cmlidXRlcyxcbiAgICAgICAgdHJpZ2dlckF0dHJpYnV0ZXNcbiAgICB9O1xufTtcbiIsImltcG9ydCB7IGdldFJlc3RvcmVyLCBnZXRUYWJzdGVyQXR0cmlidXRlLCBSZXN0b3JlclR5cGVzIH0gZnJvbSAndGFic3Rlcic7XG5pbXBvcnQgeyB1c2VUYWJzdGVyIH0gZnJvbSAnLi91c2VUYWJzdGVyJztcbi8qKlxuICogRm9jdXMgd2lsbCBiZSByZXN0b3JlZCB0byB0aGUgbW9zdCByZWNlbnQgdGFyZ2V0IGVsZW1lbnQgd2hlbiBpdCBpcyBsb3N0IGZyb20gYSBzb3VyY2VcbiAqIEByZXR1cm5zIEF0dHJpYnV0ZSB0byBhcHBseSB0byB0aGUgdGFyZ2V0IGVsZW1lbnQgd2hlcmUgZm9jdXMgaXMgcmVzdG9yZWRcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlUmVzdG9yZUZvY3VzVGFyZ2V0KCkge1xuICAgIGNvbnN0IHRhYnN0ZXIgPSB1c2VUYWJzdGVyKCk7XG4gICAgLy8gSW5pdGlhbGl6ZXMgdGhlIHJlc3RvcmVyIEFQSVxuICAgIGlmICh0YWJzdGVyKSB7XG4gICAgICAgIGdldFJlc3RvcmVyKHRhYnN0ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0VGFic3RlckF0dHJpYnV0ZSh7XG4gICAgICAgIHJlc3RvcmVyOiB7XG4gICAgICAgICAgICB0eXBlOiBSZXN0b3JlclR5cGVzLlRhcmdldFxuICAgICAgICB9XG4gICAgfSk7XG59XG4vKipcbiAqIEZvY3VzIHdpbGwgYmUgcmVzdG9yZWQgdG8gdGhlIG1vc3QgcmVjZW50IHRhcmdldCBlbGVtZW50IHdoZW4gaXQgaXMgbG9zdCBmcm9tIGEgc291cmNlXG4gKiBAcmV0dXJucyBBdHRyaWJ1dGUgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQgdGhhdCBtaWdodCBsb3NlIGZvY3VzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVJlc3RvcmVGb2N1c1NvdXJjZSgpIHtcbiAgICBjb25zdCB0YWJzdGVyID0gdXNlVGFic3RlcigpO1xuICAgIC8vIEluaXRpYWxpemVzIHRoZSByZXN0b3JlciBBUElcbiAgICBpZiAodGFic3Rlcikge1xuICAgICAgICBnZXRSZXN0b3Jlcih0YWJzdGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldFRhYnN0ZXJBdHRyaWJ1dGUoe1xuICAgICAgICByZXN0b3Jlcjoge1xuICAgICAgICAgICAgdHlwZTogUmVzdG9yZXJUeXBlcy5Tb3VyY2VcbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlS2V5Ym9yZ1JlZiB9IGZyb20gJy4vdXNlS2V5Ym9yZ1JlZic7XG4vKipcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlU2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCkge1xuICAgIGNvbnN0IGtleWJvcmdSZWYgPSB1c2VLZXlib3JnUmVmKCk7XG4gICAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKChpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpPT57XG4gICAgICAgIHZhciBfa2V5Ym9yZ1JlZl9jdXJyZW50O1xuICAgICAgICAoX2tleWJvcmdSZWZfY3VycmVudCA9IGtleWJvcmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2tleWJvcmdSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2tleWJvcmdSZWZfY3VycmVudC5zZXRWYWwoaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkKTtcbiAgICB9LCBbXG4gICAgICAgIGtleWJvcmdSZWZcbiAgICBdKTtcbn1cbiIsImltcG9ydCB7IHVzZVRhYnN0ZXIgfSBmcm9tICcuL3VzZVRhYnN0ZXInO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBTdWJzY3JpYmVzIHRvIHRoZSB0YWJzdGVyIGZvY3VzZWQgZWxlbWVudC4gQ2FsbHMgdGhlIGNhbGxiYWNrIHdoZW4gdGhlIGZvY3VzZWQgZWxlbWVudCBjaGFuZ2VzLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gc3Vic2NyaWJlIHRvIHRoZSBmb2N1c2VkIGVsZW1lbnQuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUZvY3VzZWRFbGVtZW50Q2hhbmdlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgdGFic3RlciA9IHVzZVRhYnN0ZXIoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHRhYnN0ZXIpIHtcbiAgICAgICAgICAgIHRhYnN0ZXIuZm9jdXNlZEVsZW1lbnQuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJldHVybiAoKT0+dGFic3Rlci5mb2N1c2VkRWxlbWVudC51bnN1YnNjcmliZShjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHRhYnN0ZXIsXG4gICAgICAgIGNhbGxiYWNrXG4gICAgXSk7XG59XG4iLCIvKiAhISEgRE8gTk9UIEVESVQgISEhICovIC8qIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIHRva2VuIHBpcGVsaW5lICovIGV4cG9ydCBjb25zdCBncmV5ID0ge1xuICAgICcyJzogJyMwNTA1MDUnLFxuICAgICc0JzogJyMwYTBhMGEnLFxuICAgICc2JzogJyMwZjBmMGYnLFxuICAgICc4JzogJyMxNDE0MTQnLFxuICAgICcxMCc6ICcjMWExYTFhJyxcbiAgICAnMTInOiAnIzFmMWYxZicsXG4gICAgJzE0JzogJyMyNDI0MjQnLFxuICAgICcxNic6ICcjMjkyOTI5JyxcbiAgICAnMTgnOiAnIzJlMmUyZScsXG4gICAgJzIwJzogJyMzMzMzMzMnLFxuICAgICcyMic6ICcjMzgzODM4JyxcbiAgICAnMjQnOiAnIzNkM2QzZCcsXG4gICAgJzI2JzogJyM0MjQyNDInLFxuICAgICcyOCc6ICcjNDc0NzQ3JyxcbiAgICAnMzAnOiAnIzRkNGQ0ZCcsXG4gICAgJzMyJzogJyM1MjUyNTInLFxuICAgICczNCc6ICcjNTc1NzU3JyxcbiAgICAnMzYnOiAnIzVjNWM1YycsXG4gICAgJzM4JzogJyM2MTYxNjEnLFxuICAgICc0MCc6ICcjNjY2NjY2JyxcbiAgICAnNDInOiAnIzZiNmI2YicsXG4gICAgJzQ0JzogJyM3MDcwNzAnLFxuICAgICc0Nic6ICcjNzU3NTc1JyxcbiAgICAnNDgnOiAnIzdhN2E3YScsXG4gICAgJzUwJzogJyM4MDgwODAnLFxuICAgICc1Mic6ICcjODU4NTg1JyxcbiAgICAnNTQnOiAnIzhhOGE4YScsXG4gICAgJzU2JzogJyM4ZjhmOGYnLFxuICAgICc1OCc6ICcjOTQ5NDk0JyxcbiAgICAnNjAnOiAnIzk5OTk5OScsXG4gICAgJzYyJzogJyM5ZTllOWUnLFxuICAgICc2NCc6ICcjYTNhM2EzJyxcbiAgICAnNjYnOiAnI2E4YThhOCcsXG4gICAgJzY4JzogJyNhZGFkYWQnLFxuICAgICc3MCc6ICcjYjNiM2IzJyxcbiAgICAnNzInOiAnI2I4YjhiOCcsXG4gICAgJzc0JzogJyNiZGJkYmQnLFxuICAgICc3Nic6ICcjYzJjMmMyJyxcbiAgICAnNzgnOiAnI2M3YzdjNycsXG4gICAgJzgwJzogJyNjY2NjY2MnLFxuICAgICc4Mic6ICcjZDFkMWQxJyxcbiAgICAnODQnOiAnI2Q2ZDZkNicsXG4gICAgJzg2JzogJyNkYmRiZGInLFxuICAgICc4OCc6ICcjZTBlMGUwJyxcbiAgICAnOTAnOiAnI2U2ZTZlNicsXG4gICAgJzkyJzogJyNlYmViZWInLFxuICAgICc5NCc6ICcjZjBmMGYwJyxcbiAgICAnOTYnOiAnI2Y1ZjVmNScsXG4gICAgJzk4JzogJyNmYWZhZmEnXG59O1xuZXhwb3J0IGNvbnN0IHdoaXRlQWxwaGEgPSB7XG4gICAgJzUnOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KScsXG4gICAgJzEwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKScsXG4gICAgJzIwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKScsXG4gICAgJzMwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKScsXG4gICAgJzQwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC40KScsXG4gICAgJzUwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KScsXG4gICAgJzYwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC42KScsXG4gICAgJzcwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC43KScsXG4gICAgJzgwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC44KScsXG4gICAgJzkwJzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSdcbn07XG5leHBvcnQgY29uc3QgYmxhY2tBbHBoYSA9IHtcbiAgICAnNSc6ICdyZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAnMTAnOiAncmdiYSgwLCAwLCAwLCAwLjEpJyxcbiAgICAnMjAnOiAncmdiYSgwLCAwLCAwLCAwLjIpJyxcbiAgICAnMzAnOiAncmdiYSgwLCAwLCAwLCAwLjMpJyxcbiAgICAnNDAnOiAncmdiYSgwLCAwLCAwLCAwLjQpJyxcbiAgICAnNTAnOiAncmdiYSgwLCAwLCAwLCAwLjUpJyxcbiAgICAnNjAnOiAncmdiYSgwLCAwLCAwLCAwLjYpJyxcbiAgICAnNzAnOiAncmdiYSgwLCAwLCAwLCAwLjcpJyxcbiAgICAnODAnOiAncmdiYSgwLCAwLCAwLCAwLjgpJyxcbiAgICAnOTAnOiAncmdiYSgwLCAwLCAwLCAwLjkpJ1xufTtcbmV4cG9ydCBjb25zdCBncmV5MTBBbHBoYSA9IHtcbiAgICAnNSc6ICdyZ2JhKDI2LCAyNiwgMjYsIDAuMDUpJyxcbiAgICAnMTAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjEpJyxcbiAgICAnMjAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjIpJyxcbiAgICAnMzAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjMpJyxcbiAgICAnNDAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjQpJyxcbiAgICAnNTAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjUpJyxcbiAgICAnNjAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjYpJyxcbiAgICAnNzAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjcpJyxcbiAgICAnODAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjgpJyxcbiAgICAnOTAnOiAncmdiYSgyNiwgMjYsIDI2LCAwLjkpJ1xufTtcbmV4cG9ydCBjb25zdCBncmV5MTJBbHBoYSA9IHtcbiAgICAnNSc6ICdyZ2JhKDMxLCAzMSwgMzEsIDAuMDUpJyxcbiAgICAnMTAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjEpJyxcbiAgICAnMjAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjIpJyxcbiAgICAnMzAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjMpJyxcbiAgICAnNDAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjQpJyxcbiAgICAnNTAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjUpJyxcbiAgICAnNjAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjYpJyxcbiAgICAnNzAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjcpJyxcbiAgICAnODAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjgpJyxcbiAgICAnOTAnOiAncmdiYSgzMSwgMzEsIDMxLCAwLjkpJ1xufTtcbmV4cG9ydCBjb25zdCBncmV5MTRBbHBoYSA9IHtcbiAgICAnNSc6ICdyZ2JhKDM2LCAzNiwgMzYsIDAuMDUpJyxcbiAgICAnMTAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjEpJyxcbiAgICAnMjAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjIpJyxcbiAgICAnMzAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjMpJyxcbiAgICAnNDAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjQpJyxcbiAgICAnNTAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjUpJyxcbiAgICAnNjAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjYpJyxcbiAgICAnNzAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjcpJyxcbiAgICAnODAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjgpJyxcbiAgICAnOTAnOiAncmdiYSgzNiwgMzYsIDM2LCAwLjkpJ1xufTtcbmV4cG9ydCBjb25zdCB3aGl0ZSA9ICcjZmZmZmZmJztcbmV4cG9ydCBjb25zdCBibGFjayA9ICcjMDAwMDAwJztcbmV4cG9ydCBjb25zdCBoY0h5cGVybGluayA9ICcjZmZmZjAwJztcbmV4cG9ydCBjb25zdCBoY0hpZ2hsaWdodCA9ICcjMWFlYmZmJztcbmV4cG9ydCBjb25zdCBoY0Rpc2FibGVkID0gJyMzZmYyM2YnO1xuZXhwb3J0IGNvbnN0IGhjQ2FudmFzID0gJyMwMDAwMDAnO1xuZXhwb3J0IGNvbnN0IGhjQ2FudmFzVGV4dCA9ICcjZmZmZmZmJztcbmV4cG9ydCBjb25zdCBoY0hpZ2hsaWdodFRleHQgPSAnIzAwMDAwMCc7XG5leHBvcnQgY29uc3QgaGNCdXR0b25UZXh0ID0gJyMwMDAwMDAnO1xuZXhwb3J0IGNvbnN0IGhjQnV0dG9uRmFjZSA9ICcjZmZmZmZmJztcbmV4cG9ydCBjb25zdCBkYXJrUmVkID0ge1xuICAgIHNoYWRlNTA6ICcjMTMwMjA0JyxcbiAgICBzaGFkZTQwOiAnIzIzMDMwOCcsXG4gICAgc2hhZGUzMDogJyM0MjA2MTAnLFxuICAgIHNoYWRlMjA6ICcjNTkwODE1JyxcbiAgICBzaGFkZTEwOiAnIzY5MGExOScsXG4gICAgcHJpbWFyeTogJyM3NTBiMWMnLFxuICAgIHRpbnQxMDogJyM4NjFiMmMnLFxuICAgIHRpbnQyMDogJyM5NjJmM2YnLFxuICAgIHRpbnQzMDogJyNhYzRmNWUnLFxuICAgIHRpbnQ0MDogJyNkNjljYTUnLFxuICAgIHRpbnQ1MDogJyNlOWM3Y2QnLFxuICAgIHRpbnQ2MDogJyNmOWYwZjInXG59O1xuZXhwb3J0IGNvbnN0IGJ1cmd1bmR5ID0ge1xuICAgIHNoYWRlNTA6ICcjMWEwNjA3JyxcbiAgICBzaGFkZTQwOiAnIzMxMGIwZCcsXG4gICAgc2hhZGUzMDogJyM1YzE1MTknLFxuICAgIHNoYWRlMjA6ICcjN2QxZDIxJyxcbiAgICBzaGFkZTEwOiAnIzk0MjIyOCcsXG4gICAgcHJpbWFyeTogJyNhNDI2MmMnLFxuICAgIHRpbnQxMDogJyNhZjM5M2UnLFxuICAgIHRpbnQyMDogJyNiYTRkNTInLFxuICAgIHRpbnQzMDogJyNjODZjNzAnLFxuICAgIHRpbnQ0MDogJyNlNGFmYjInLFxuICAgIHRpbnQ1MDogJyNmMGQzZDQnLFxuICAgIHRpbnQ2MDogJyNmYmY0ZjQnXG59O1xuZXhwb3J0IGNvbnN0IGNyYW5iZXJyeSA9IHtcbiAgICBzaGFkZTUwOiAnIzIwMDIwNScsXG4gICAgc2hhZGU0MDogJyMzYjA1MDknLFxuICAgIHNoYWRlMzA6ICcjNmUwODExJyxcbiAgICBzaGFkZTIwOiAnIzk2MGIxOCcsXG4gICAgc2hhZGUxMDogJyNiMTBlMWMnLFxuICAgIHByaW1hcnk6ICcjYzUwZjFmJyxcbiAgICB0aW50MTA6ICcjY2MyNjM1JyxcbiAgICB0aW50MjA6ICcjZDMzZjRjJyxcbiAgICB0aW50MzA6ICcjZGM2MjZkJyxcbiAgICB0aW50NDA6ICcjZWVhY2IyJyxcbiAgICB0aW50NTA6ICcjZjZkMWQ1JyxcbiAgICB0aW50NjA6ICcjZmRmM2Y0J1xufTtcbmV4cG9ydCBjb25zdCByZWQgPSB7XG4gICAgc2hhZGU1MDogJyMyMTA4MDknLFxuICAgIHNoYWRlNDA6ICcjM2YxMDExJyxcbiAgICBzaGFkZTMwOiAnIzc1MWQxZicsXG4gICAgc2hhZGUyMDogJyM5ZjI4MmInLFxuICAgIHNoYWRlMTA6ICcjYmMyZjMyJyxcbiAgICBwcmltYXJ5OiAnI2QxMzQzOCcsXG4gICAgdGludDEwOiAnI2Q3NDk0YycsXG4gICAgdGludDIwOiAnI2RjNWU2MicsXG4gICAgdGludDMwOiAnI2UzN2Q4MCcsXG4gICAgdGludDQwOiAnI2YxYmJiYycsXG4gICAgdGludDUwOiAnI2Y4ZGFkYicsXG4gICAgdGludDYwOiAnI2ZkZjZmNidcbn07XG5leHBvcnQgY29uc3QgZGFya09yYW5nZSA9IHtcbiAgICBzaGFkZTUwOiAnIzIzMDkwMCcsXG4gICAgc2hhZGU0MDogJyM0MTEyMDAnLFxuICAgIHNoYWRlMzA6ICcjN2EyMTAxJyxcbiAgICBzaGFkZTIwOiAnI2E2MmQwMScsXG4gICAgc2hhZGUxMDogJyNjNDM1MDEnLFxuICAgIHByaW1hcnk6ICcjZGEzYjAxJyxcbiAgICB0aW50MTA6ICcjZGU1MDFjJyxcbiAgICB0aW50MjA6ICcjZTM2NTM3JyxcbiAgICB0aW50MzA6ICcjZTk4MzVlJyxcbiAgICB0aW50NDA6ICcjZjRiZmFiJyxcbiAgICB0aW50NTA6ICcjZjlkY2QxJyxcbiAgICB0aW50NjA6ICcjZmRmNmYzJ1xufTtcbmV4cG9ydCBjb25zdCBicm9uemUgPSB7XG4gICAgc2hhZGU1MDogJyMxYjBhMDEnLFxuICAgIHNoYWRlNDA6ICcjMzIxMzAzJyxcbiAgICBzaGFkZTMwOiAnIzVlMjQwNScsXG4gICAgc2hhZGUyMDogJyM3ZjMxMDcnLFxuICAgIHNoYWRlMTA6ICcjOTYzYTA4JyxcbiAgICBwcmltYXJ5OiAnI2E3NDEwOScsXG4gICAgdGludDEwOiAnI2IyNTIxZScsXG4gICAgdGludDIwOiAnI2JjNjUzNScsXG4gICAgdGludDMwOiAnI2NhODA1NycsXG4gICAgdGludDQwOiAnI2U1YmJhNCcsXG4gICAgdGludDUwOiAnI2YxZDljYycsXG4gICAgdGludDYwOiAnI2ZiZjVmMidcbn07XG5leHBvcnQgY29uc3QgcHVtcGtpbiA9IHtcbiAgICBzaGFkZTUwOiAnIzIwMGQwMycsXG4gICAgc2hhZGU0MDogJyMzZDE4MDUnLFxuICAgIHNoYWRlMzA6ICcjNzEyZDA5JyxcbiAgICBzaGFkZTIwOiAnIzlhM2QwYycsXG4gICAgc2hhZGUxMDogJyNiNjQ4MGUnLFxuICAgIHByaW1hcnk6ICcjY2E1MDEwJyxcbiAgICB0aW50MTA6ICcjZDA2MjI4JyxcbiAgICB0aW50MjA6ICcjZDc3NDQwJyxcbiAgICB0aW50MzA6ICcjZGY4ZTY0JyxcbiAgICB0aW50NDA6ICcjZWZjNGFkJyxcbiAgICB0aW50NTA6ICcjZjdkZmQyJyxcbiAgICB0aW50NjA6ICcjZmRmN2Y0J1xufTtcbmV4cG9ydCBjb25zdCBvcmFuZ2UgPSB7XG4gICAgc2hhZGU1MDogJyMyNzEwMDInLFxuICAgIHNoYWRlNDA6ICcjNGExZTA0JyxcbiAgICBzaGFkZTMwOiAnIzhhMzcwNycsXG4gICAgc2hhZGUyMDogJyNiYzRiMDknLFxuICAgIHNoYWRlMTA6ICcjZGU1OTBiJyxcbiAgICBwcmltYXJ5OiAnI2Y3NjMwYycsXG4gICAgdGludDEwOiAnI2Y4NzUyOCcsXG4gICAgdGludDIwOiAnI2Y5ODg0NScsXG4gICAgdGludDMwOiAnI2ZhYTA2YicsXG4gICAgdGludDQwOiAnI2ZkY2ZiNCcsXG4gICAgdGludDUwOiAnI2ZlZTVkNycsXG4gICAgdGludDYwOiAnI2ZmZjlmNSdcbn07XG5leHBvcnQgY29uc3QgcGVhY2ggPSB7XG4gICAgc2hhZGU1MDogJyMyOTE2MDAnLFxuICAgIHNoYWRlNDA6ICcjNGQyYTAwJyxcbiAgICBzaGFkZTMwOiAnIzhmNGUwMCcsXG4gICAgc2hhZGUyMDogJyNjMjZhMDAnLFxuICAgIHNoYWRlMTA6ICcjZTY3ZTAwJyxcbiAgICBwcmltYXJ5OiAnI2ZmOGMwMCcsXG4gICAgdGludDEwOiAnI2ZmOWExZicsXG4gICAgdGludDIwOiAnI2ZmYTgzZCcsXG4gICAgdGludDMwOiAnI2ZmYmE2NicsXG4gICAgdGludDQwOiAnI2ZmZGRiMycsXG4gICAgdGludDUwOiAnI2ZmZWRkNicsXG4gICAgdGludDYwOiAnI2ZmZmFmNSdcbn07XG5leHBvcnQgY29uc3QgbWFyaWdvbGQgPSB7XG4gICAgc2hhZGU1MDogJyMyNTFhMDAnLFxuICAgIHNoYWRlNDA6ICcjNDYzMTAwJyxcbiAgICBzaGFkZTMwOiAnIzgzNWIwMCcsXG4gICAgc2hhZGUyMDogJyNiMjdjMDAnLFxuICAgIHNoYWRlMTA6ICcjZDM5MzAwJyxcbiAgICBwcmltYXJ5OiAnI2VhYTMwMCcsXG4gICAgdGludDEwOiAnI2VkYWQxYycsXG4gICAgdGludDIwOiAnI2VmYjgzOScsXG4gICAgdGludDMwOiAnI2YyYzY2MScsXG4gICAgdGludDQwOiAnI2Y5ZTJhZScsXG4gICAgdGludDUwOiAnI2ZjZWZkMycsXG4gICAgdGludDYwOiAnI2ZlZmJmNCdcbn07XG5leHBvcnQgY29uc3QgeWVsbG93ID0ge1xuICAgIHNoYWRlNTA6ICcjMjgyNDAwJyxcbiAgICBzaGFkZTQwOiAnIzRjNDQwMCcsXG4gICAgc2hhZGUzMDogJyM4MTc0MDAnLFxuICAgIHNoYWRlMjA6ICcjYzBhZDAwJyxcbiAgICBzaGFkZTEwOiAnI2U0Y2MwMCcsXG4gICAgcHJpbWFyeTogJyNmZGUzMDAnLFxuICAgIHRpbnQxMDogJyNmZGU2MWUnLFxuICAgIHRpbnQyMDogJyNmZGVhM2QnLFxuICAgIHRpbnQzMDogJyNmZWVlNjYnLFxuICAgIHRpbnQ0MDogJyNmZWY3YjInLFxuICAgIHRpbnQ1MDogJyNmZmZhZDYnLFxuICAgIHRpbnQ2MDogJyNmZmZlZjUnXG59O1xuZXhwb3J0IGNvbnN0IGdvbGQgPSB7XG4gICAgc2hhZGU1MDogJyMxZjE5MDAnLFxuICAgIHNoYWRlNDA6ICcjM2EyZjAwJyxcbiAgICBzaGFkZTMwOiAnIzZjNTcwMCcsXG4gICAgc2hhZGUyMDogJyM5Mzc3MDAnLFxuICAgIHNoYWRlMTA6ICcjYWU4YzAwJyxcbiAgICBwcmltYXJ5OiAnI2MxOWMwMCcsXG4gICAgdGludDEwOiAnI2M4YTcxOCcsXG4gICAgdGludDIwOiAnI2QwYjIzMicsXG4gICAgdGludDMwOiAnI2RhYzE1NycsXG4gICAgdGludDQwOiAnI2VjZGZhNScsXG4gICAgdGludDUwOiAnI2Y1ZWVjZScsXG4gICAgdGludDYwOiAnI2ZkZmJmMidcbn07XG5leHBvcnQgY29uc3QgYnJhc3MgPSB7XG4gICAgc2hhZGU1MDogJyMxODEyMDInLFxuICAgIHNoYWRlNDA6ICcjMmUyMTAzJyxcbiAgICBzaGFkZTMwOiAnIzU1M2UwNicsXG4gICAgc2hhZGUyMDogJyM3NDU0MDgnLFxuICAgIHNoYWRlMTA6ICcjODk2NDBhJyxcbiAgICBwcmltYXJ5OiAnIzk4NmYwYicsXG4gICAgdGludDEwOiAnI2E0N2QxZScsXG4gICAgdGludDIwOiAnI2IxOGMzNCcsXG4gICAgdGludDMwOiAnI2MxYTI1NicsXG4gICAgdGludDQwOiAnI2UwY2VhMicsXG4gICAgdGludDUwOiAnI2VmZTRjYicsXG4gICAgdGludDYwOiAnI2ZiZjhmMidcbn07XG5leHBvcnQgY29uc3QgYnJvd24gPSB7XG4gICAgc2hhZGU1MDogJyMxNzBlMDcnLFxuICAgIHNoYWRlNDA6ICcjMmIxYTBlJyxcbiAgICBzaGFkZTMwOiAnIzUwMzAxYScsXG4gICAgc2hhZGUyMDogJyM2YzQxMjMnLFxuICAgIHNoYWRlMTA6ICcjODA0ZDI5JyxcbiAgICBwcmltYXJ5OiAnIzhlNTYyZScsXG4gICAgdGludDEwOiAnIzljNjYzZicsXG4gICAgdGludDIwOiAnI2E5NzY1MicsXG4gICAgdGludDMwOiAnI2JiOGY2ZicsXG4gICAgdGludDQwOiAnI2RkYzNiMCcsXG4gICAgdGludDUwOiAnI2VkZGVkMycsXG4gICAgdGludDYwOiAnI2ZhZjdmNCdcbn07XG5leHBvcnQgY29uc3QgZGFya0Jyb3duID0ge1xuICAgIHNoYWRlNTA6ICcjMGMwNzA0JyxcbiAgICBzaGFkZTQwOiAnIzE3MGMwOCcsXG4gICAgc2hhZGUzMDogJyMyYjE3MTAnLFxuICAgIHNoYWRlMjA6ICcjM2ExZjE1JyxcbiAgICBzaGFkZTEwOiAnIzQ1MjUxOScsXG4gICAgcHJpbWFyeTogJyM0ZDI5MWMnLFxuICAgIHRpbnQxMDogJyM2MjNhMmInLFxuICAgIHRpbnQyMDogJyM3ODRkM2UnLFxuICAgIHRpbnQzMDogJyM5NDZiNWMnLFxuICAgIHRpbnQ0MDogJyNjYWFkYTMnLFxuICAgIHRpbnQ1MDogJyNlM2QyY2InLFxuICAgIHRpbnQ2MDogJyNmOGYzZjInXG59O1xuZXhwb3J0IGNvbnN0IGxpbWUgPSB7XG4gICAgc2hhZGU1MDogJyMxMjFiMDYnLFxuICAgIHNoYWRlNDA6ICcjMjMzMzBiJyxcbiAgICBzaGFkZTMwOiAnIzQwNWYxNCcsXG4gICAgc2hhZGUyMDogJyM1NzgxMWInLFxuICAgIHNoYWRlMTA6ICcjNjg5OTIwJyxcbiAgICBwcmltYXJ5OiAnIzczYWEyNCcsXG4gICAgdGludDEwOiAnIzgxYjQzNycsXG4gICAgdGludDIwOiAnIzkwYmU0YycsXG4gICAgdGludDMwOiAnI2E0Y2M2YycsXG4gICAgdGludDQwOiAnI2NmZTVhZicsXG4gICAgdGludDUwOiAnI2U1ZjFkMycsXG4gICAgdGludDYwOiAnI2Y4ZmNmNCdcbn07XG5leHBvcnQgY29uc3QgZm9yZXN0ID0ge1xuICAgIHNoYWRlNTA6ICcjMGMxNTAxJyxcbiAgICBzaGFkZTQwOiAnIzE2MjcwMicsXG4gICAgc2hhZGUzMDogJyMyOTQ5MDMnLFxuICAgIHNoYWRlMjA6ICcjMzc2MzA0JyxcbiAgICBzaGFkZTEwOiAnIzQyNzUwNScsXG4gICAgcHJpbWFyeTogJyM0OTgyMDUnLFxuICAgIHRpbnQxMDogJyM1OTkxMTYnLFxuICAgIHRpbnQyMDogJyM2YmEwMmInLFxuICAgIHRpbnQzMDogJyM4NWI0NGMnLFxuICAgIHRpbnQ0MDogJyNiZGQ5OWInLFxuICAgIHRpbnQ1MDogJyNkYmViYzcnLFxuICAgIHRpbnQ2MDogJyNmNmZhZjAnXG59O1xuZXhwb3J0IGNvbnN0IHNlYWZvYW0gPSB7XG4gICAgc2hhZGU1MDogJyMwMDIxMTEnLFxuICAgIHNoYWRlNDA6ICcjMDAzZDIwJyxcbiAgICBzaGFkZTMwOiAnIzAwNzIzYicsXG4gICAgc2hhZGUyMDogJyMwMDliNTEnLFxuICAgIHNoYWRlMTA6ICcjMDBiODVmJyxcbiAgICBwcmltYXJ5OiAnIzAwY2M2YScsXG4gICAgdGludDEwOiAnIzE5ZDI3OScsXG4gICAgdGludDIwOiAnIzM0ZDg4OScsXG4gICAgdGludDMwOiAnIzVhZTBhMCcsXG4gICAgdGludDQwOiAnI2E4ZjBjZCcsXG4gICAgdGludDUwOiAnI2NmZjdlNCcsXG4gICAgdGludDYwOiAnI2YzZmRmOCdcbn07XG5leHBvcnQgY29uc3QgbGlnaHRHcmVlbiA9IHtcbiAgICBzaGFkZTUwOiAnIzAzMWEwMicsXG4gICAgc2hhZGU0MDogJyMwNjMwMDQnLFxuICAgIHNoYWRlMzA6ICcjMGI1YTA4JyxcbiAgICBzaGFkZTIwOiAnIzBlN2EwYicsXG4gICAgc2hhZGUxMDogJyMxMTkxMGQnLFxuICAgIHByaW1hcnk6ICcjMTNhMTBlJyxcbiAgICB0aW50MTA6ICcjMjdhYzIyJyxcbiAgICB0aW50MjA6ICcjM2RiODM4JyxcbiAgICB0aW50MzA6ICcjNWVjNzVhJyxcbiAgICB0aW50NDA6ICcjYTdlM2E1JyxcbiAgICB0aW50NTA6ICcjY2VmMGNkJyxcbiAgICB0aW50NjA6ICcjZjJmYmYyJ1xufTtcbmV4cG9ydCBjb25zdCBncmVlbiA9IHtcbiAgICBzaGFkZTUwOiAnIzAzMTQwMycsXG4gICAgc2hhZGU0MDogJyMwNTI1MDUnLFxuICAgIHNoYWRlMzA6ICcjMDk0NTA5JyxcbiAgICBzaGFkZTIwOiAnIzBjNWUwYycsXG4gICAgc2hhZGUxMDogJyMwZTcwMGUnLFxuICAgIHByaW1hcnk6ICcjMTA3YzEwJyxcbiAgICB0aW50MTA6ICcjMjE4YzIxJyxcbiAgICB0aW50MjA6ICcjMzU5YjM1JyxcbiAgICB0aW50MzA6ICcjNTRiMDU0JyxcbiAgICB0aW50NDA6ICcjOWZkODlmJyxcbiAgICB0aW50NTA6ICcjYzllYWM5JyxcbiAgICB0aW50NjA6ICcjZjFmYWYxJ1xufTtcbmV4cG9ydCBjb25zdCBkYXJrR3JlZW4gPSB7XG4gICAgc2hhZGU1MDogJyMwMjExMDInLFxuICAgIHNoYWRlNDA6ICcjMDMyMDAzJyxcbiAgICBzaGFkZTMwOiAnIzA2M2IwNicsXG4gICAgc2hhZGUyMDogJyMwODUxMDgnLFxuICAgIHNoYWRlMTA6ICcjMGE1ZjBhJyxcbiAgICBwcmltYXJ5OiAnIzBiNmEwYicsXG4gICAgdGludDEwOiAnIzFhN2MxYScsXG4gICAgdGludDIwOiAnIzJkOGUyZCcsXG4gICAgdGludDMwOiAnIzRkYTY0ZCcsXG4gICAgdGludDQwOiAnIzlhZDI5YScsXG4gICAgdGludDUwOiAnI2M2ZTdjNicsXG4gICAgdGludDYwOiAnI2YwZjlmMCdcbn07XG5leHBvcnQgY29uc3QgbGlnaHRUZWFsID0ge1xuICAgIHNoYWRlNTA6ICcjMDAxZDFmJyxcbiAgICBzaGFkZTQwOiAnIzAwMzczYScsXG4gICAgc2hhZGUzMDogJyMwMDY2NmQnLFxuICAgIHNoYWRlMjA6ICcjMDA4Yjk0JyxcbiAgICBzaGFkZTEwOiAnIzAwYTVhZicsXG4gICAgcHJpbWFyeTogJyMwMGI3YzMnLFxuICAgIHRpbnQxMDogJyMxOGJmY2EnLFxuICAgIHRpbnQyMDogJyMzMmM4ZDEnLFxuICAgIHRpbnQzMDogJyM1OGQzZGInLFxuICAgIHRpbnQ0MDogJyNhNmU5ZWQnLFxuICAgIHRpbnQ1MDogJyNjZWYzZjUnLFxuICAgIHRpbnQ2MDogJyNmMmZjZmQnXG59O1xuZXhwb3J0IGNvbnN0IHRlYWwgPSB7XG4gICAgc2hhZGU1MDogJyMwMDE1MTYnLFxuICAgIHNoYWRlNDA6ICcjMDEyNzI4JyxcbiAgICBzaGFkZTMwOiAnIzAyNDk0YycsXG4gICAgc2hhZGUyMDogJyMwMjY0NjcnLFxuICAgIHNoYWRlMTA6ICcjMDM3Njc5JyxcbiAgICBwcmltYXJ5OiAnIzAzODM4NycsXG4gICAgdGludDEwOiAnIzE1OTE5NScsXG4gICAgdGludDIwOiAnIzJhYTBhNCcsXG4gICAgdGludDMwOiAnIzRjYjRiNycsXG4gICAgdGludDQwOiAnIzliZDlkYicsXG4gICAgdGludDUwOiAnI2M3ZWJlYycsXG4gICAgdGludDYwOiAnI2YwZmFmYSdcbn07XG5leHBvcnQgY29uc3QgZGFya1RlYWwgPSB7XG4gICAgc2hhZGU1MDogJyMwMDEwMTAnLFxuICAgIHNoYWRlNDA6ICcjMDAxZjFmJyxcbiAgICBzaGFkZTMwOiAnIzAwMzkzOScsXG4gICAgc2hhZGUyMDogJyMwMDRlNGUnLFxuICAgIHNoYWRlMTA6ICcjMDA1YzVjJyxcbiAgICBwcmltYXJ5OiAnIzAwNjY2NicsXG4gICAgdGludDEwOiAnIzBlNzg3OCcsXG4gICAgdGludDIwOiAnIzIxOGI4YicsXG4gICAgdGludDMwOiAnIzQxYTNhMycsXG4gICAgdGludDQwOiAnIzkyZDFkMScsXG4gICAgdGludDUwOiAnI2MyZTdlNycsXG4gICAgdGludDYwOiAnI2VmZjlmOSdcbn07XG5leHBvcnQgY29uc3QgY3lhbiA9IHtcbiAgICBzaGFkZTUwOiAnIzAwMTgxZScsXG4gICAgc2hhZGU0MDogJyMwMDJlMzgnLFxuICAgIHNoYWRlMzA6ICcjMDA1NjY5JyxcbiAgICBzaGFkZTIwOiAnIzAwNzQ4ZicsXG4gICAgc2hhZGUxMDogJyMwMDhhYTknLFxuICAgIHByaW1hcnk6ICcjMDA5OWJjJyxcbiAgICB0aW50MTA6ICcjMThhNGM0JyxcbiAgICB0aW50MjA6ICcjMzFhZmNjJyxcbiAgICB0aW50MzA6ICcjNTZiZmQ3JyxcbiAgICB0aW50NDA6ICcjYTRkZWViJyxcbiAgICB0aW50NTA6ICcjY2RlZGY0JyxcbiAgICB0aW50NjA6ICcjZjJmYWZjJ1xufTtcbmV4cG9ydCBjb25zdCBzdGVlbCA9IHtcbiAgICBzaGFkZTUwOiAnIzAwMGYxMicsXG4gICAgc2hhZGU0MDogJyMwMDFiMjInLFxuICAgIHNoYWRlMzA6ICcjMDAzMzNmJyxcbiAgICBzaGFkZTIwOiAnIzAwNDU1NScsXG4gICAgc2hhZGUxMDogJyMwMDUyNjUnLFxuICAgIHByaW1hcnk6ICcjMDA1YjcwJyxcbiAgICB0aW50MTA6ICcjMGY2YzgxJyxcbiAgICB0aW50MjA6ICcjMjM3ZDkyJyxcbiAgICB0aW50MzA6ICcjNDQ5NmE5JyxcbiAgICB0aW50NDA6ICcjOTRjOGQ0JyxcbiAgICB0aW50NTA6ICcjYzNlMWU4JyxcbiAgICB0aW50NjA6ICcjZWZmN2Y5J1xufTtcbmV4cG9ydCBjb25zdCBsaWdodEJsdWUgPSB7XG4gICAgc2hhZGU1MDogJyMwOTE4MjMnLFxuICAgIHNoYWRlNDA6ICcjMTEyZDQyJyxcbiAgICBzaGFkZTMwOiAnIzIwNTQ3YycsXG4gICAgc2hhZGUyMDogJyMyYzcyYTgnLFxuICAgIHNoYWRlMTA6ICcjMzQ4N2M3JyxcbiAgICBwcmltYXJ5OiAnIzNhOTZkZCcsXG4gICAgdGludDEwOiAnIzRmYTFlMScsXG4gICAgdGludDIwOiAnIzY1YWRlNScsXG4gICAgdGludDMwOiAnIzgzYmRlYicsXG4gICAgdGludDQwOiAnI2JmZGRmNScsXG4gICAgdGludDUwOiAnI2RjZWRmYScsXG4gICAgdGludDYwOiAnI2Y2ZmFmZSdcbn07XG5leHBvcnQgY29uc3QgYmx1ZSA9IHtcbiAgICBzaGFkZTUwOiAnIzAwMTMyMicsXG4gICAgc2hhZGU0MDogJyMwMDI0NDAnLFxuICAgIHNoYWRlMzA6ICcjMDA0Mzc3JyxcbiAgICBzaGFkZTIwOiAnIzAwNWJhMScsXG4gICAgc2hhZGUxMDogJyMwMDZjYmYnLFxuICAgIHByaW1hcnk6ICcjMDA3OGQ0JyxcbiAgICB0aW50MTA6ICcjMWE4NmQ5JyxcbiAgICB0aW50MjA6ICcjMzU5NWRlJyxcbiAgICB0aW50MzA6ICcjNWNhYWU1JyxcbiAgICB0aW50NDA6ICcjYTlkM2YyJyxcbiAgICB0aW50NTA6ICcjZDBlN2Y4JyxcbiAgICB0aW50NjA6ICcjZjNmOWZkJ1xufTtcbmV4cG9ydCBjb25zdCByb3lhbEJsdWUgPSB7XG4gICAgc2hhZGU1MDogJyMwMDBjMTYnLFxuICAgIHNoYWRlNDA6ICcjMDAxNzJhJyxcbiAgICBzaGFkZTMwOiAnIzAwMmM0ZScsXG4gICAgc2hhZGUyMDogJyMwMDNiNmEnLFxuICAgIHNoYWRlMTA6ICcjMDA0NjdlJyxcbiAgICBwcmltYXJ5OiAnIzAwNGU4YycsXG4gICAgdGludDEwOiAnIzEyNWU5YScsXG4gICAgdGludDIwOiAnIzI4NmZhOCcsXG4gICAgdGludDMwOiAnIzRhODliYScsXG4gICAgdGludDQwOiAnIzlhYmZkYycsXG4gICAgdGludDUwOiAnI2M3ZGNlZCcsXG4gICAgdGludDYwOiAnI2YwZjZmYSdcbn07XG5leHBvcnQgY29uc3QgZGFya0JsdWUgPSB7XG4gICAgc2hhZGU1MDogJyMwMDA5MTAnLFxuICAgIHNoYWRlNDA6ICcjMDAxMTFmJyxcbiAgICBzaGFkZTMwOiAnIzAwMjAzOScsXG4gICAgc2hhZGUyMDogJyMwMDJiNGUnLFxuICAgIHNoYWRlMTA6ICcjMDAzMzVjJyxcbiAgICBwcmltYXJ5OiAnIzAwMzk2NicsXG4gICAgdGludDEwOiAnIzBlNGE3OCcsXG4gICAgdGludDIwOiAnIzIxNWM4YicsXG4gICAgdGludDMwOiAnIzQxNzhhMycsXG4gICAgdGludDQwOiAnIzkyYjVkMScsXG4gICAgdGludDUwOiAnI2MyZDZlNycsXG4gICAgdGludDYwOiAnI2VmZjRmOSdcbn07XG5leHBvcnQgY29uc3QgY29ybmZsb3dlciA9IHtcbiAgICBzaGFkZTUwOiAnIzBkMTEyNicsXG4gICAgc2hhZGU0MDogJyMxODIwNDcnLFxuICAgIHNoYWRlMzA6ICcjMmMzYzg1JyxcbiAgICBzaGFkZTIwOiAnIzNjNTFiNCcsXG4gICAgc2hhZGUxMDogJyM0NzYwZDUnLFxuICAgIHByaW1hcnk6ICcjNGY2YmVkJyxcbiAgICB0aW50MTA6ICcjNjM3Y2VmJyxcbiAgICB0aW50MjA6ICcjNzc4ZGYxJyxcbiAgICB0aW50MzA6ICcjOTNhNGY0JyxcbiAgICB0aW50NDA6ICcjYzhkMWZhJyxcbiAgICB0aW50NTA6ICcjZTFlNmZjJyxcbiAgICB0aW50NjA6ICcjZjdmOWZlJ1xufTtcbmV4cG9ydCBjb25zdCBuYXZ5ID0ge1xuICAgIHNoYWRlNTA6ICcjMDAwNjFkJyxcbiAgICBzaGFkZTQwOiAnIzAwMGMzNicsXG4gICAgc2hhZGUzMDogJyMwMDE2NjUnLFxuICAgIHNoYWRlMjA6ICcjMDAxZTg5JyxcbiAgICBzaGFkZTEwOiAnIzAwMjNhMicsXG4gICAgcHJpbWFyeTogJyMwMDI3YjQnLFxuICAgIHRpbnQxMDogJyMxNzNiYmQnLFxuICAgIHRpbnQyMDogJyMzMDUwYzYnLFxuICAgIHRpbnQzMDogJyM1NDZmZDInLFxuICAgIHRpbnQ0MDogJyNhM2IyZTgnLFxuICAgIHRpbnQ1MDogJyNjY2Q1ZjMnLFxuICAgIHRpbnQ2MDogJyNmMmY0ZmMnXG59O1xuZXhwb3J0IGNvbnN0IGxhdmVuZGVyID0ge1xuICAgIHNoYWRlNTA6ICcjMTIwZjI1JyxcbiAgICBzaGFkZTQwOiAnIzIyMWQ0NicsXG4gICAgc2hhZGUzMDogJyMzZjM2ODInLFxuICAgIHNoYWRlMjA6ICcjNTY0OWIwJyxcbiAgICBzaGFkZTEwOiAnIzY2NTZkMScsXG4gICAgcHJpbWFyeTogJyM3MTYwZTgnLFxuICAgIHRpbnQxMDogJyM4MTcyZWInLFxuICAgIHRpbnQyMDogJyM5MTg0ZWUnLFxuICAgIHRpbnQzMDogJyNhNzljZjEnLFxuICAgIHRpbnQ0MDogJyNkMmNjZjgnLFxuICAgIHRpbnQ1MDogJyNlN2U0ZmInLFxuICAgIHRpbnQ2MDogJyNmOWY4ZmUnXG59O1xuZXhwb3J0IGNvbnN0IHB1cnBsZSA9IHtcbiAgICBzaGFkZTUwOiAnIzBmMDcxNycsXG4gICAgc2hhZGU0MDogJyMxYzBlMmInLFxuICAgIHNoYWRlMzA6ICcjMzQxYTUxJyxcbiAgICBzaGFkZTIwOiAnIzQ2MjM2ZScsXG4gICAgc2hhZGUxMDogJyM1MzI5ODInLFxuICAgIHByaW1hcnk6ICcjNWMyZTkxJyxcbiAgICB0aW50MTA6ICcjNmIzZjllJyxcbiAgICB0aW50MjA6ICcjN2M1MmFiJyxcbiAgICB0aW50MzA6ICcjOTQ3MGJkJyxcbiAgICB0aW50NDA6ICcjYzZiMWRlJyxcbiAgICB0aW50NTA6ICcjZTBkM2VkJyxcbiAgICB0aW50NjA6ICcjZjdmNGZiJ1xufTtcbmV4cG9ydCBjb25zdCBkYXJrUHVycGxlID0ge1xuICAgIHNoYWRlNTA6ICcjMGEwNDExJyxcbiAgICBzaGFkZTQwOiAnIzEzMDgyMCcsXG4gICAgc2hhZGUzMDogJyMyNDBmM2MnLFxuICAgIHNoYWRlMjA6ICcjMzExNTUyJyxcbiAgICBzaGFkZTEwOiAnIzNhMTg2MScsXG4gICAgcHJpbWFyeTogJyM0MDFiNmMnLFxuICAgIHRpbnQxMDogJyM1MTJiN2UnLFxuICAgIHRpbnQyMDogJyM2MzNlOGYnLFxuICAgIHRpbnQzMDogJyM3ZTVjYTcnLFxuICAgIHRpbnQ0MDogJyNiOWEzZDMnLFxuICAgIHRpbnQ1MDogJyNkOGNjZTcnLFxuICAgIHRpbnQ2MDogJyNmNWYyZjknXG59O1xuZXhwb3J0IGNvbnN0IG9yY2hpZCA9IHtcbiAgICBzaGFkZTUwOiAnIzE2MTAxZCcsXG4gICAgc2hhZGU0MDogJyMyODFlMzcnLFxuICAgIHNoYWRlMzA6ICcjNGMzODY3JyxcbiAgICBzaGFkZTIwOiAnIzY3NGM4YycsXG4gICAgc2hhZGUxMDogJyM3OTVhYTYnLFxuICAgIHByaW1hcnk6ICcjODc2NGI4JyxcbiAgICB0aW50MTA6ICcjOTM3M2MwJyxcbiAgICB0aW50MjA6ICcjYTA4M2M5JyxcbiAgICB0aW50MzA6ICcjYjI5YWQ0JyxcbiAgICB0aW50NDA6ICcjZDdjYWVhJyxcbiAgICB0aW50NTA6ICcjZTllMmY0JyxcbiAgICB0aW50NjA6ICcjZjlmOGZjJ1xufTtcbmV4cG9ydCBjb25zdCBncmFwZSA9IHtcbiAgICBzaGFkZTUwOiAnIzE2MDQxOCcsXG4gICAgc2hhZGU0MDogJyMyOTA3MmUnLFxuICAgIHNoYWRlMzA6ICcjNGMwZDU1JyxcbiAgICBzaGFkZTIwOiAnIzY3MTE3NCcsXG4gICAgc2hhZGUxMDogJyM3YTE1ODknLFxuICAgIHByaW1hcnk6ICcjODgxNzk4JyxcbiAgICB0aW50MTA6ICcjOTUyYWE0JyxcbiAgICB0aW50MjA6ICcjYTMzZmIxJyxcbiAgICB0aW50MzA6ICcjYjU1ZmMxJyxcbiAgICB0aW50NDA6ICcjZDlhN2UwJyxcbiAgICB0aW50NTA6ICcjZWFjZWVmJyxcbiAgICB0aW50NjA6ICcjZmFmMmZiJ1xufTtcbmV4cG9ydCBjb25zdCBiZXJyeSA9IHtcbiAgICBzaGFkZTUwOiAnIzFmMDkxZCcsXG4gICAgc2hhZGU0MDogJyMzYTExMzYnLFxuICAgIHNoYWRlMzA6ICcjNmQyMDY0JyxcbiAgICBzaGFkZTIwOiAnIzkzMmI4OCcsXG4gICAgc2hhZGUxMDogJyNhZjMzYTEnLFxuICAgIHByaW1hcnk6ICcjYzIzOWIzJyxcbiAgICB0aW50MTA6ICcjYzk0Y2JjJyxcbiAgICB0aW50MjA6ICcjZDE2MWM0JyxcbiAgICB0aW50MzA6ICcjZGE3ZWQwJyxcbiAgICB0aW50NDA6ICcjZWRiYmU3JyxcbiAgICB0aW50NTA6ICcjZjVkYWYyJyxcbiAgICB0aW50NjA6ICcjZmRmNWZjJ1xufTtcbmV4cG9ydCBjb25zdCBsaWxhYyA9IHtcbiAgICBzaGFkZTUwOiAnIzFjMGIxZicsXG4gICAgc2hhZGU0MDogJyMzNTE1M2EnLFxuICAgIHNoYWRlMzA6ICcjNjMyNzZkJyxcbiAgICBzaGFkZTIwOiAnIzg2MzU5MycsXG4gICAgc2hhZGUxMDogJyM5ZjNmYWYnLFxuICAgIHByaW1hcnk6ICcjYjE0NmMyJyxcbiAgICB0aW50MTA6ICcjYmE1OGM5JyxcbiAgICB0aW50MjA6ICcjYzM2YmQxJyxcbiAgICB0aW50MzA6ICcjY2Y4N2RhJyxcbiAgICB0aW50NDA6ICcjZTZiZmVkJyxcbiAgICB0aW50NTA6ICcjZjJkY2Y1JyxcbiAgICB0aW50NjA6ICcjZmNmNmZkJ1xufTtcbmV4cG9ydCBjb25zdCBwaW5rID0ge1xuICAgIHNoYWRlNTA6ICcjMjQwOTFiJyxcbiAgICBzaGFkZTQwOiAnIzQ0MTIzMicsXG4gICAgc2hhZGUzMDogJyM4MDIxNWQnLFxuICAgIHNoYWRlMjA6ICcjYWQyZDdlJyxcbiAgICBzaGFkZTEwOiAnI2NkMzU5NScsXG4gICAgcHJpbWFyeTogJyNlNDNiYTYnLFxuICAgIHRpbnQxMDogJyNlNzUwYjAnLFxuICAgIHRpbnQyMDogJyNlYTY2YmEnLFxuICAgIHRpbnQzMDogJyNlZjg1YzgnLFxuICAgIHRpbnQ0MDogJyNmN2MwZTMnLFxuICAgIHRpbnQ1MDogJyNmYmRkZjAnLFxuICAgIHRpbnQ2MDogJyNmZWY2ZmInXG59O1xuZXhwb3J0IGNvbnN0IGhvdFBpbmsgPSB7XG4gICAgc2hhZGU1MDogJyMyNDAwMTYnLFxuICAgIHNoYWRlNDA6ICcjNDQwMDJhJyxcbiAgICBzaGFkZTMwOiAnIzdmMDA0ZScsXG4gICAgc2hhZGUyMDogJyNhZDAwNmEnLFxuICAgIHNoYWRlMTA6ICcjY2MwMDdlJyxcbiAgICBwcmltYXJ5OiAnI2UzMDA4YycsXG4gICAgdGludDEwOiAnI2U2MWM5OScsXG4gICAgdGludDIwOiAnI2VhMzhhNicsXG4gICAgdGludDMwOiAnI2VlNWZiNycsXG4gICAgdGludDQwOiAnI2Y3YWRkYScsXG4gICAgdGludDUwOiAnI2ZiZDJlYicsXG4gICAgdGludDYwOiAnI2ZlZjRmYSdcbn07XG5leHBvcnQgY29uc3QgbWFnZW50YSA9IHtcbiAgICBzaGFkZTUwOiAnIzFmMDAxMycsXG4gICAgc2hhZGU0MDogJyMzOTAwMjQnLFxuICAgIHNoYWRlMzA6ICcjNmIwMDQzJyxcbiAgICBzaGFkZTIwOiAnIzkxMDA1YScsXG4gICAgc2hhZGUxMDogJyNhYzAwNmInLFxuICAgIHByaW1hcnk6ICcjYmYwMDc3JyxcbiAgICB0aW50MTA6ICcjYzcxODg1JyxcbiAgICB0aW50MjA6ICcjY2UzMjkzJyxcbiAgICB0aW50MzA6ICcjZDk1N2E4JyxcbiAgICB0aW50NDA6ICcjZWNhNWQxJyxcbiAgICB0aW50NTA6ICcjZjVjZWU2JyxcbiAgICB0aW50NjA6ICcjZmNmMmY5J1xufTtcbmV4cG9ydCBjb25zdCBwbHVtID0ge1xuICAgIHNoYWRlNTA6ICcjMTMwMDBjJyxcbiAgICBzaGFkZTQwOiAnIzI0MDAxNycsXG4gICAgc2hhZGUzMDogJyM0MzAwMmInLFxuICAgIHNoYWRlMjA6ICcjNWEwMDNiJyxcbiAgICBzaGFkZTEwOiAnIzZiMDA0NScsXG4gICAgcHJpbWFyeTogJyM3NzAwNGQnLFxuICAgIHRpbnQxMDogJyM4NzEwNWQnLFxuICAgIHRpbnQyMDogJyM5ODI0NmYnLFxuICAgIHRpbnQzMDogJyNhZDQ1ODknLFxuICAgIHRpbnQ0MDogJyNkNjk2YzAnLFxuICAgIHRpbnQ1MDogJyNlOWM0ZGMnLFxuICAgIHRpbnQ2MDogJyNmYWYwZjYnXG59O1xuZXhwb3J0IGNvbnN0IGJlaWdlID0ge1xuICAgIHNoYWRlNTA6ICcjMTQxMzEzJyxcbiAgICBzaGFkZTQwOiAnIzI1MjMyMycsXG4gICAgc2hhZGUzMDogJyM0NDQyNDEnLFxuICAgIHNoYWRlMjA6ICcjNWQ1OTU4JyxcbiAgICBzaGFkZTEwOiAnIzZlNjk2OCcsXG4gICAgcHJpbWFyeTogJyM3YTc1NzQnLFxuICAgIHRpbnQxMDogJyM4YTg1ODQnLFxuICAgIHRpbnQyMDogJyM5YTk1OTQnLFxuICAgIHRpbnQzMDogJyNhZmFiYWEnLFxuICAgIHRpbnQ0MDogJyNkN2Q0ZDQnLFxuICAgIHRpbnQ1MDogJyNlYWU4ZTgnLFxuICAgIHRpbnQ2MDogJyNmYWY5ZjknXG59O1xuZXhwb3J0IGNvbnN0IG1pbmsgPSB7XG4gICAgc2hhZGU1MDogJyMwZjBlMGUnLFxuICAgIHNoYWRlNDA6ICcjMWMxYjFhJyxcbiAgICBzaGFkZTMwOiAnIzM0MzIzMScsXG4gICAgc2hhZGUyMDogJyM0NzQ0NDMnLFxuICAgIHNoYWRlMTA6ICcjNTQ1MTRmJyxcbiAgICBwcmltYXJ5OiAnIzVkNWE1OCcsXG4gICAgdGludDEwOiAnIzcwNmQ2YicsXG4gICAgdGludDIwOiAnIzg0ODE3ZScsXG4gICAgdGludDMwOiAnIzllOWI5OScsXG4gICAgdGludDQwOiAnI2NlY2NjYicsXG4gICAgdGludDUwOiAnI2U1ZTRlMycsXG4gICAgdGludDYwOiAnI2Y4ZjhmOCdcbn07XG5leHBvcnQgY29uc3Qgc2lsdmVyID0ge1xuICAgIHNoYWRlNTA6ICcjMTUxODE4JyxcbiAgICBzaGFkZTQwOiAnIzI4MmQyZScsXG4gICAgc2hhZGUzMDogJyM0YTUzNTYnLFxuICAgIHNoYWRlMjA6ICcjNjU3MTc0JyxcbiAgICBzaGFkZTEwOiAnIzc4ODY4YScsXG4gICAgcHJpbWFyeTogJyM4NTk1OTknLFxuICAgIHRpbnQxMDogJyM5MmExYTUnLFxuICAgIHRpbnQyMDogJyNhMGFlYjEnLFxuICAgIHRpbnQzMDogJyNiM2JmYzInLFxuICAgIHRpbnQ0MDogJyNkOGRmZTAnLFxuICAgIHRpbnQ1MDogJyNlYWVlZWYnLFxuICAgIHRpbnQ2MDogJyNmYWZiZmInXG59O1xuZXhwb3J0IGNvbnN0IHBsYXRpbnVtID0ge1xuICAgIHNoYWRlNTA6ICcjMTExMzE0JyxcbiAgICBzaGFkZTQwOiAnIzFmMjQyNicsXG4gICAgc2hhZGUzMDogJyMzYjQ0NDcnLFxuICAgIHNoYWRlMjA6ICcjNTA1YzYwJyxcbiAgICBzaGFkZTEwOiAnIzVmNmQ3MScsXG4gICAgcHJpbWFyeTogJyM2OTc5N2UnLFxuICAgIHRpbnQxMDogJyM3OTg5OGQnLFxuICAgIHRpbnQyMDogJyM4OTk4OWQnLFxuICAgIHRpbnQzMDogJyNhMGFkYjInLFxuICAgIHRpbnQ0MDogJyNjZGQ2ZDgnLFxuICAgIHRpbnQ1MDogJyNlNGU5ZWEnLFxuICAgIHRpbnQ2MDogJyNmOGY5ZmEnXG59O1xuZXhwb3J0IGNvbnN0IGFuY2hvciA9IHtcbiAgICBzaGFkZTUwOiAnIzA5MGEwYicsXG4gICAgc2hhZGU0MDogJyMxMTEzMTUnLFxuICAgIHNoYWRlMzA6ICcjMjAyNDI3JyxcbiAgICBzaGFkZTIwOiAnIzJiMzEzNScsXG4gICAgc2hhZGUxMDogJyMzMzNhM2YnLFxuICAgIHByaW1hcnk6ICcjMzk0MTQ2JyxcbiAgICB0aW50MTA6ICcjNGQ1NjVjJyxcbiAgICB0aW50MjA6ICcjNjI2YzcyJyxcbiAgICB0aW50MzA6ICcjODA4YTkwJyxcbiAgICB0aW50NDA6ICcjYmNjM2M3JyxcbiAgICB0aW50NTA6ICcjZGJkZmUxJyxcbiAgICB0aW50NjA6ICcjZjZmN2Y4J1xufTtcbmV4cG9ydCBjb25zdCBjaGFyY29hbCA9IHtcbiAgICBzaGFkZTUwOiAnIzA5MDkwOScsXG4gICAgc2hhZGU0MDogJyMxMTExMTEnLFxuICAgIHNoYWRlMzA6ICcjMjAyMDIwJyxcbiAgICBzaGFkZTIwOiAnIzJiMmIyYicsXG4gICAgc2hhZGUxMDogJyMzMzMzMzMnLFxuICAgIHByaW1hcnk6ICcjMzkzOTM5JyxcbiAgICB0aW50MTA6ICcjNTE1MTUxJyxcbiAgICB0aW50MjA6ICcjNjg2ODY4JyxcbiAgICB0aW50MzA6ICcjODg4ODg4JyxcbiAgICB0aW50NDA6ICcjYzRjNGM0JyxcbiAgICB0aW50NTA6ICcjZGZkZmRmJyxcbiAgICB0aW50NjA6ICcjZjdmN2Y3J1xufTtcbiIsImltcG9ydCB7IHJlZCwgZ3JlZW4sIGRhcmtPcmFuZ2UsIHllbGxvdywgYmVycnksIGxpZ2h0R3JlZW4sIG1hcmlnb2xkLCBkYXJrUmVkLCBjcmFuYmVycnksIHB1bXBraW4sIHBlYWNoLCBnb2xkLCBicmFzcywgYnJvd24sIGZvcmVzdCwgc2VhZm9hbSwgZGFya0dyZWVuLCBsaWdodFRlYWwsIHRlYWwsIHN0ZWVsLCBibHVlLCByb3lhbEJsdWUsIGNvcm5mbG93ZXIsIG5hdnksIGxhdmVuZGVyLCBwdXJwbGUsIGdyYXBlLCBsaWxhYywgcGluaywgbWFnZW50YSwgcGx1bSwgYmVpZ2UsIG1pbmssIHBsYXRpbnVtLCBhbmNob3IsIG9yYW5nZSB9IGZyb20gJy4vY29sb3JzJztcbmV4cG9ydCBjb25zdCBzdGF0dXNTaGFyZWRDb2xvcnMgPSB7XG4gICAgcmVkLFxuICAgIGdyZWVuLFxuICAgIGRhcmtPcmFuZ2UsXG4gICAgeWVsbG93LFxuICAgIGJlcnJ5LFxuICAgIGxpZ2h0R3JlZW4sXG4gICAgbWFyaWdvbGRcbn07XG5leHBvcnQgY29uc3QgcGVyc29uYVNoYXJlZENvbG9ycyA9IHtcbiAgICBkYXJrUmVkLFxuICAgIGNyYW5iZXJyeSxcbiAgICBwdW1wa2luLFxuICAgIHBlYWNoLFxuICAgIGdvbGQsXG4gICAgYnJhc3MsXG4gICAgYnJvd24sXG4gICAgZm9yZXN0LFxuICAgIHNlYWZvYW0sXG4gICAgZGFya0dyZWVuLFxuICAgIGxpZ2h0VGVhbCxcbiAgICB0ZWFsLFxuICAgIHN0ZWVsLFxuICAgIGJsdWUsXG4gICAgcm95YWxCbHVlLFxuICAgIGNvcm5mbG93ZXIsXG4gICAgbmF2eSxcbiAgICBsYXZlbmRlcixcbiAgICBwdXJwbGUsXG4gICAgZ3JhcGUsXG4gICAgbGlsYWMsXG4gICAgcGluayxcbiAgICBtYWdlbnRhLFxuICAgIHBsdW0sXG4gICAgYmVpZ2UsXG4gICAgbWluayxcbiAgICBwbGF0aW51bSxcbiAgICBhbmNob3Jcbn07XG5leHBvcnQgY29uc3QgbWFwcGVkU3RhdHVzQ29sb3JzID0ge1xuICAgIGNyYW5iZXJyeSxcbiAgICBncmVlbixcbiAgICBvcmFuZ2Vcbn07XG4iLCIvKiBOYW1lcyBvZiBjb2xvcnMgdXNlZCBpbiBzaGFyZWQgY29sb3IgcGFsZXR0ZSBhbGlhcyB0b2tlbnMgZm9yIHN0YXR1cy4gKi8gZXhwb3J0IGNvbnN0IHN0YXR1c1NoYXJlZENvbG9yTmFtZXMgPSBbXG4gICAgJ3JlZCcsXG4gICAgJ2dyZWVuJyxcbiAgICAnZGFya09yYW5nZScsXG4gICAgJ3llbGxvdycsXG4gICAgJ2JlcnJ5JyxcbiAgICAnbGlnaHRHcmVlbicsXG4gICAgJ21hcmlnb2xkJ1xuXTtcbi8qIE5hbWVzIG9mIGNvbG9ycyB1c2VkIGluIHNoYXJlZCBjb2xvciBwYWxldHRlIGFsaWFzIHRva2VucyBmb3IgcGVyc29uYS4gKi8gZXhwb3J0IGNvbnN0IHBlcnNvbmFTaGFyZWRDb2xvck5hbWVzID0gW1xuICAgICdkYXJrUmVkJyxcbiAgICAnY3JhbmJlcnJ5JyxcbiAgICAncHVtcGtpbicsXG4gICAgJ3BlYWNoJyxcbiAgICAnZ29sZCcsXG4gICAgJ2JyYXNzJyxcbiAgICAnYnJvd24nLFxuICAgICdmb3Jlc3QnLFxuICAgICdzZWFmb2FtJyxcbiAgICAnZGFya0dyZWVuJyxcbiAgICAnbGlnaHRUZWFsJyxcbiAgICAndGVhbCcsXG4gICAgJ3N0ZWVsJyxcbiAgICAnYmx1ZScsXG4gICAgJ3JveWFsQmx1ZScsXG4gICAgJ2Nvcm5mbG93ZXInLFxuICAgICduYXZ5JyxcbiAgICAnbGF2ZW5kZXInLFxuICAgICdwdXJwbGUnLFxuICAgICdncmFwZScsXG4gICAgJ2xpbGFjJyxcbiAgICAncGluaycsXG4gICAgJ21hZ2VudGEnLFxuICAgICdwbHVtJyxcbiAgICAnYmVpZ2UnLFxuICAgICdtaW5rJyxcbiAgICAncGxhdGludW0nLFxuICAgICdhbmNob3InXG5dO1xuLyogTGlzdCBvZiBnbG9iYWwgY29sb3JzIHdoaWNoIHNlbWFudGljIGFsaWFzIHN0YXR1cyB0b2tlbnMgbWFwIHRvICovIGV4cG9ydCBjb25zdCBtYXBwZWRTdGF0dXNDb2xvck5hbWVzID0gW1xuICAgICdjcmFuYmVycnknLFxuICAgICdncmVlbicsXG4gICAgJ29yYW5nZSdcbl07XG4vKiBOYW1lcyBvZiBjb2xvcnMgbm90IHVzZWQgaW4gYWxpYXMgdG9rZW5zIGJ1dCBwcm9kdWNlZCBieSB0b2tlbiBwaXBlbGluZSBhcyBnbG9iYWwgY29sb3IgdG9rZW5zLiAqLyBleHBvcnQgY29uc3QgdW51c2VkU2hhcmVkQ29sb3JOYW1lcyA9IFtcbiAgICAnYnVyZ3VuZHknLFxuICAgICdicm9uemUnLFxuICAgICdvcmFuZ2UnLFxuICAgICdkYXJrQnJvd24nLFxuICAgICdsaW1lJyxcbiAgICAnZGFya1RlYWwnLFxuICAgICdjeWFuJyxcbiAgICAnbGlnaHRCbHVlJyxcbiAgICAnZGFya0JsdWUnLFxuICAgICdkYXJrUHVycGxlJyxcbiAgICAnb3JjaGlkJyxcbiAgICAnaG90UGluaycsXG4gICAgJ3NpbHZlcicsXG4gICAgJ2NoYXJjb2FsJ1xuXTtcbiIsImV4cG9ydCBjb25zdCBzdGF0dXNDb2xvck1hcHBpbmcgPSB7XG4gICAgc3VjY2VzczogJ2dyZWVuJyxcbiAgICB3YXJuaW5nOiAnb3JhbmdlJyxcbiAgICBkYW5nZXI6ICdjcmFuYmVycnknXG59O1xuIiwiaW1wb3J0IHsgc3RhdHVzU2hhcmVkQ29sb3JzLCBwZXJzb25hU2hhcmVkQ29sb3JzLCBtYXBwZWRTdGF0dXNDb2xvcnMgfSBmcm9tICcuLi9nbG9iYWwvY29sb3JQYWxldHRlJztcbmltcG9ydCB7IHN0YXR1c1NoYXJlZENvbG9yTmFtZXMsIHBlcnNvbmFTaGFyZWRDb2xvck5hbWVzIH0gZnJvbSAnLi4vc2hhcmVkQ29sb3JOYW1lcyc7XG5pbXBvcnQgeyBzdGF0dXNDb2xvck1hcHBpbmcgfSBmcm9tICcuLi9zdGF0dXNDb2xvck1hcHBpbmcnO1xuY29uc3Qgc3RhdHVzQ29sb3JQYWxldHRlVG9rZW5zID0gc3RhdHVzU2hhcmVkQ29sb3JOYW1lcy5yZWR1Y2UoKGFjYywgc2hhcmVkQ29sb3IpPT57XG4gICAgY29uc3QgY29sb3IgPSBzaGFyZWRDb2xvci5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgc2hhcmVkQ29sb3Iuc2xpY2UoMSk7XG4gICAgY29uc3Qgc2hhcmVkQ29sb3JUb2tlbnMgPSB7XG4gICAgICAgIFtgY29sb3JQYWxldHRlJHtjb2xvcn1CYWNrZ3JvdW5kMWBdOiBzdGF0dXNTaGFyZWRDb2xvcnNbc2hhcmVkQ29sb3JdLnRpbnQ2MCxcbiAgICAgICAgW2Bjb2xvclBhbGV0dGUke2NvbG9yfUJhY2tncm91bmQyYF06IHN0YXR1c1NoYXJlZENvbG9yc1tzaGFyZWRDb2xvcl0udGludDQwLFxuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9QmFja2dyb3VuZDNgXTogc3RhdHVzU2hhcmVkQ29sb3JzW3NoYXJlZENvbG9yXS5wcmltYXJ5LFxuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9Rm9yZWdyb3VuZDFgXTogc3RhdHVzU2hhcmVkQ29sb3JzW3NoYXJlZENvbG9yXS5zaGFkZTEwLFxuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9Rm9yZWdyb3VuZDJgXTogc3RhdHVzU2hhcmVkQ29sb3JzW3NoYXJlZENvbG9yXS5zaGFkZTMwLFxuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9Rm9yZWdyb3VuZDNgXTogc3RhdHVzU2hhcmVkQ29sb3JzW3NoYXJlZENvbG9yXS5wcmltYXJ5LFxuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9Qm9yZGVyQWN0aXZlYF06IHN0YXR1c1NoYXJlZENvbG9yc1tzaGFyZWRDb2xvcl0ucHJpbWFyeSxcbiAgICAgICAgW2Bjb2xvclBhbGV0dGUke2NvbG9yfUJvcmRlcjFgXTogc3RhdHVzU2hhcmVkQ29sb3JzW3NoYXJlZENvbG9yXS50aW50NDAsXG4gICAgICAgIFtgY29sb3JQYWxldHRlJHtjb2xvcn1Cb3JkZXIyYF06IHN0YXR1c1NoYXJlZENvbG9yc1tzaGFyZWRDb2xvcl0ucHJpbWFyeVxuICAgIH07XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjLCBzaGFyZWRDb2xvclRva2Vucyk7XG59LCB7fSk7XG4vLyBvbmUtb2ZmIHBhdGNoIGZvciB5ZWxsb3dcbnN0YXR1c0NvbG9yUGFsZXR0ZVRva2Vucy5jb2xvclBhbGV0dGVZZWxsb3dGb3JlZ3JvdW5kMSA9IHN0YXR1c1NoYXJlZENvbG9ycy55ZWxsb3cuc2hhZGUzMDtcbnN0YXR1c0NvbG9yUGFsZXR0ZVRva2Vucy5jb2xvclBhbGV0dGVSZWRGb3JlZ3JvdW5kSW52ZXJ0ZWQgPSBzdGF0dXNTaGFyZWRDb2xvcnMucmVkLnRpbnQyMDtcbnN0YXR1c0NvbG9yUGFsZXR0ZVRva2Vucy5jb2xvclBhbGV0dGVHcmVlbkZvcmVncm91bmRJbnZlcnRlZCA9IHN0YXR1c1NoYXJlZENvbG9ycy5ncmVlbi50aW50MjA7XG5zdGF0dXNDb2xvclBhbGV0dGVUb2tlbnMuY29sb3JQYWxldHRlWWVsbG93Rm9yZWdyb3VuZEludmVydGVkID0gc3RhdHVzU2hhcmVkQ29sb3JzLnllbGxvdy50aW50NDA7XG5jb25zdCBwZXJzb25hQ29sb3JQYWxldHRlVG9rZW5zID0gcGVyc29uYVNoYXJlZENvbG9yTmFtZXMucmVkdWNlKChhY2MsIHNoYXJlZENvbG9yKT0+e1xuICAgIGNvbnN0IGNvbG9yID0gc2hhcmVkQ29sb3Iuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHNoYXJlZENvbG9yLnNsaWNlKDEpO1xuICAgIGNvbnN0IHNoYXJlZENvbG9yVG9rZW5zID0ge1xuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9QmFja2dyb3VuZDJgXTogcGVyc29uYVNoYXJlZENvbG9yc1tzaGFyZWRDb2xvcl0udGludDQwLFxuICAgICAgICBbYGNvbG9yUGFsZXR0ZSR7Y29sb3J9Rm9yZWdyb3VuZDJgXTogcGVyc29uYVNoYXJlZENvbG9yc1tzaGFyZWRDb2xvcl0uc2hhZGUzMCxcbiAgICAgICAgW2Bjb2xvclBhbGV0dGUke2NvbG9yfUJvcmRlckFjdGl2ZWBdOiBwZXJzb25hU2hhcmVkQ29sb3JzW3NoYXJlZENvbG9yXS5wcmltYXJ5XG4gICAgfTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY2MsIHNoYXJlZENvbG9yVG9rZW5zKTtcbn0sIHt9KTtcbmV4cG9ydCBjb25zdCBjb2xvclBhbGV0dGVUb2tlbnMgPSB7XG4gICAgLi4uc3RhdHVzQ29sb3JQYWxldHRlVG9rZW5zLFxuICAgIC4uLnBlcnNvbmFDb2xvclBhbGV0dGVUb2tlbnNcbn07XG5leHBvcnQgY29uc3QgY29sb3JTdGF0dXNUb2tlbnMgPSBPYmplY3QuZW50cmllcyhzdGF0dXNDb2xvck1hcHBpbmcpLnJlZHVjZSgoYWNjLCBbc3RhdHVzQ29sb3IsIHNoYXJlZENvbG9yXSk9PntcbiAgICBjb25zdCBjb2xvciA9IHN0YXR1c0NvbG9yLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdGF0dXNDb2xvci5zbGljZSgxKTtcbiAgICAvLyBUT0RPOiBkb3VibGUgY2hlY2sgdGhlIG1hcHBpbmcgd2l0aCBkZXNpZ25cbiAgICBjb25zdCBzdGF0dXNDb2xvclRva2VucyA9IHtcbiAgICAgICAgW2Bjb2xvclN0YXR1cyR7Y29sb3J9QmFja2dyb3VuZDFgXTogbWFwcGVkU3RhdHVzQ29sb3JzW3NoYXJlZENvbG9yXS50aW50NjAsXG4gICAgICAgIFtgY29sb3JTdGF0dXMke2NvbG9yfUJhY2tncm91bmQyYF06IG1hcHBlZFN0YXR1c0NvbG9yc1tzaGFyZWRDb2xvcl0udGludDQwLFxuICAgICAgICBbYGNvbG9yU3RhdHVzJHtjb2xvcn1CYWNrZ3JvdW5kM2BdOiBtYXBwZWRTdGF0dXNDb2xvcnNbc2hhcmVkQ29sb3JdLnByaW1hcnksXG4gICAgICAgIFtgY29sb3JTdGF0dXMke2NvbG9yfUZvcmVncm91bmQxYF06IG1hcHBlZFN0YXR1c0NvbG9yc1tzaGFyZWRDb2xvcl0uc2hhZGUxMCxcbiAgICAgICAgW2Bjb2xvclN0YXR1cyR7Y29sb3J9Rm9yZWdyb3VuZDJgXTogbWFwcGVkU3RhdHVzQ29sb3JzW3NoYXJlZENvbG9yXS5zaGFkZTMwLFxuICAgICAgICBbYGNvbG9yU3RhdHVzJHtjb2xvcn1Gb3JlZ3JvdW5kM2BdOiBtYXBwZWRTdGF0dXNDb2xvcnNbc2hhcmVkQ29sb3JdLnByaW1hcnksXG4gICAgICAgIFtgY29sb3JTdGF0dXMke2NvbG9yfUZvcmVncm91bmRJbnZlcnRlZGBdOiBtYXBwZWRTdGF0dXNDb2xvcnNbc2hhcmVkQ29sb3JdLnRpbnQzMCxcbiAgICAgICAgW2Bjb2xvclN0YXR1cyR7Y29sb3J9Qm9yZGVyQWN0aXZlYF06IG1hcHBlZFN0YXR1c0NvbG9yc1tzaGFyZWRDb2xvcl0ucHJpbWFyeSxcbiAgICAgICAgW2Bjb2xvclN0YXR1cyR7Y29sb3J9Qm9yZGVyMWBdOiBtYXBwZWRTdGF0dXNDb2xvcnNbc2hhcmVkQ29sb3JdLnRpbnQ0MCxcbiAgICAgICAgW2Bjb2xvclN0YXR1cyR7Y29sb3J9Qm9yZGVyMmBdOiBtYXBwZWRTdGF0dXNDb2xvcnNbc2hhcmVkQ29sb3JdLnByaW1hcnlcbiAgICB9O1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGFjYywgc3RhdHVzQ29sb3JUb2tlbnMpO1xufSwge30pO1xuLy8gb25lLW9mZiBvdmVycmlkZXMgZm9yIGNvbG9yU3RhdHVzIHRva2Vuc1xuY29sb3JTdGF0dXNUb2tlbnMuY29sb3JTdGF0dXNEYW5nZXJCYWNrZ3JvdW5kM0hvdmVyID0gbWFwcGVkU3RhdHVzQ29sb3JzW3N0YXR1c0NvbG9yTWFwcGluZy5kYW5nZXJdLnNoYWRlMTA7XG5jb2xvclN0YXR1c1Rva2Vucy5jb2xvclN0YXR1c0RhbmdlckJhY2tncm91bmQzUHJlc3NlZCA9IG1hcHBlZFN0YXR1c0NvbG9yc1tzdGF0dXNDb2xvck1hcHBpbmcuZGFuZ2VyXS5zaGFkZTIwO1xuY29sb3JTdGF0dXNUb2tlbnMuY29sb3JTdGF0dXNXYXJuaW5nRm9yZWdyb3VuZDEgPSBtYXBwZWRTdGF0dXNDb2xvcnNbc3RhdHVzQ29sb3JNYXBwaW5nLndhcm5pbmddLnNoYWRlMjA7XG5jb2xvclN0YXR1c1Rva2Vucy5jb2xvclN0YXR1c1dhcm5pbmdGb3JlZ3JvdW5kMyA9IG1hcHBlZFN0YXR1c0NvbG9yc1tzdGF0dXNDb2xvck1hcHBpbmcud2FybmluZ10uc2hhZGUyMDtcbmNvbG9yU3RhdHVzVG9rZW5zLmNvbG9yU3RhdHVzV2FybmluZ0JvcmRlcjIgPSBtYXBwZWRTdGF0dXNDb2xvcnNbc3RhdHVzQ29sb3JNYXBwaW5nLndhcm5pbmddLnNoYWRlMjA7XG4iLCIvKiAhISEgRE8gTk9UIEVESVQgISEhICovIC8qIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIHRva2VuIHBpcGVsaW5lICovIGltcG9ydCB7IGJsYWNrLCBibGFja0FscGhhLCBncmV5LCB3aGl0ZSwgd2hpdGVBbHBoYSB9IGZyb20gJy4uL2dsb2JhbC9jb2xvcnMnO1xuZXhwb3J0IGNvbnN0IGdlbmVyYXRlQ29sb3JUb2tlbnMgPSAoYnJhbmQpPT4oe1xuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMTogZ3JleVsxNF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXI6IGdyZXlbMTRdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVByZXNzZWQ6IGdyZXlbMTRdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVNlbGVjdGVkOiBncmV5WzE0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDI6IGdyZXlbMjZdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkhvdmVyOiBncmV5WzE0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJQcmVzc2VkOiBncmV5WzE0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJTZWxlY3RlZDogZ3JleVsxNF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRIb3ZlcjogYnJhbmRbODBdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkJyYW5kUHJlc3NlZDogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkJyYW5kU2VsZWN0ZWQ6IGJyYW5kWzgwXSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDM6IGdyZXlbMzhdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kM0hvdmVyOiBncmV5WzI2XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNQcmVzc2VkOiBncmV5WzI2XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNTZWxlY3RlZDogZ3JleVsyNl0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQzQnJhbmRIb3ZlcjogYnJhbmRbODBdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kM0JyYW5kUHJlc3NlZDogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kM0JyYW5kU2VsZWN0ZWQ6IGJyYW5kWzgwXSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDQ6IGdyZXlbNDRdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQ6IGdyZXlbNzRdLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWREaXNhYmxlZDogd2hpdGVBbHBoYVs0MF0sXG4gICAgICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kTGluazogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZExpbmtIb3ZlcjogYnJhbmRbNjBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZExpbmtQcmVzc2VkOiBicmFuZFs0MF0sXG4gICAgICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kTGlua1NlbGVjdGVkOiBicmFuZFs3MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGluazogZ3JleVsyNl0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGlua0hvdmVyOiBncmV5WzE0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJMaW5rUHJlc3NlZDogZ3JleVsxNF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGlua1NlbGVjdGVkOiBncmV5WzE0XSxcbiAgICAgICAgY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDE6IGJyYW5kWzgwXSxcbiAgICAgICAgY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFIb3ZlcjogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMVByZXNzZWQ6IGJyYW5kWzYwXSxcbiAgICAgICAgY29sb3JCcmFuZEZvcmVncm91bmQxOiBicmFuZFs4MF0sXG4gICAgICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kMjogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZDJIb3ZlcjogYnJhbmRbNjBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZDJQcmVzc2VkOiBicmFuZFszMF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQxU3RhdGljOiBncmV5WzE0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZFN0YXRpY0ludmVydGVkOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkSG92ZXI6IHdoaXRlLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkU2VsZWN0ZWQ6IHdoaXRlLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWQyOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQ6IHdoaXRlLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRMaW5rOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkTGlua0hvdmVyOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkTGlua1ByZXNzZWQ6IHdoaXRlLFxuICAgICAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRMaW5rU2VsZWN0ZWQ6IHdoaXRlLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZEludmVydGVkOiBicmFuZFsxMDBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZEludmVydGVkSG92ZXI6IGJyYW5kWzExMF0sXG4gICAgICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkOiBicmFuZFsxMDBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHQ6IGJyYW5kWzgwXSxcbiAgICAgICAgY29sb3JCcmFuZEZvcmVncm91bmRPbkxpZ2h0SG92ZXI6IGJyYW5kWzcwXSxcbiAgICAgICAgY29sb3JCcmFuZEZvcmVncm91bmRPbkxpZ2h0UHJlc3NlZDogYnJhbmRbNTBdLFxuICAgICAgICBjb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHRTZWxlY3RlZDogYnJhbmRbNjBdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMTogd2hpdGUsXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQxSG92ZXI6IGdyZXlbOTZdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMVByZXNzZWQ6IGdyZXlbODhdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMVNlbGVjdGVkOiBncmV5WzkyXSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDI6IGdyZXlbOThdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMkhvdmVyOiBncmV5Wzk0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDJQcmVzc2VkOiBncmV5Wzg2XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDJTZWxlY3RlZDogZ3JleVs5MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQzOiBncmV5Wzk2XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDNIb3ZlcjogZ3JleVs5Ml0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQzUHJlc3NlZDogZ3JleVs4NF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQzU2VsZWN0ZWQ6IGdyZXlbODhdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNDogZ3JleVs5NF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQ0SG92ZXI6IGdyZXlbOThdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNFByZXNzZWQ6IGdyZXlbOTZdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNFNlbGVjdGVkOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDU6IGdyZXlbOTJdLFxuICAgICAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNUhvdmVyOiBncmV5Wzk2XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDVQcmVzc2VkOiBncmV5Wzk0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDVTZWxlY3RlZDogZ3JleVs5OF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQ2OiBncmV5WzkwXSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZEludmVydGVkOiBncmV5WzE2XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZFN0YXRpYzogZ3JleVsyMF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmRBbHBoYTogd2hpdGVBbHBoYVs1MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmRBbHBoYTI6IHdoaXRlQWxwaGFbODBdLFxuICAgICAgICBjb2xvclN1YnRsZUJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGNvbG9yU3VidGxlQmFja2dyb3VuZEhvdmVyOiBncmV5Wzk2XSxcbiAgICAgICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kUHJlc3NlZDogZ3JleVs4OF0sXG4gICAgICAgIGNvbG9yU3VidGxlQmFja2dyb3VuZFNlbGVjdGVkOiBncmV5WzkyXSxcbiAgICAgICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kTGlnaHRBbHBoYUhvdmVyOiB3aGl0ZUFscGhhWzcwXSxcbiAgICAgICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kTGlnaHRBbHBoYVByZXNzZWQ6IHdoaXRlQWxwaGFbNTBdLFxuICAgICAgICBjb2xvclN1YnRsZUJhY2tncm91bmRMaWdodEFscGhhU2VsZWN0ZWQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGNvbG9yU3VidGxlQmFja2dyb3VuZEludmVydGVkOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBjb2xvclN1YnRsZUJhY2tncm91bmRJbnZlcnRlZEhvdmVyOiBibGFja0FscGhhWzEwXSxcbiAgICAgICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkOiBibGFja0FscGhhWzMwXSxcbiAgICAgICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kSW52ZXJ0ZWRTZWxlY3RlZDogYmxhY2tBbHBoYVsyMF0sXG4gICAgICAgIGNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBjb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZEhvdmVyOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBjb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZFByZXNzZWQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kU2VsZWN0ZWQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmREaXNhYmxlZDogZ3JleVs5NF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmRJbnZlcnRlZERpc2FibGVkOiB3aGl0ZUFscGhhWzEwXSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3RlbmNpbDE6IGdyZXlbOTBdLFxuICAgICAgICBjb2xvck5ldXRyYWxTdGVuY2lsMjogZ3JleVs5OF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0ZW5jaWwxQWxwaGE6IGJsYWNrQWxwaGFbMTBdLFxuICAgICAgICBjb2xvck5ldXRyYWxTdGVuY2lsMkFscGhhOiBibGFja0FscGhhWzVdLFxuICAgICAgICBjb2xvckJhY2tncm91bmRPdmVybGF5OiBibGFja0FscGhhWzQwXSxcbiAgICAgICAgY29sb3JTY3JvbGxiYXJPdmVybGF5OiBibGFja0FscGhhWzUwXSxcbiAgICAgICAgY29sb3JCcmFuZEJhY2tncm91bmQ6IGJyYW5kWzgwXSxcbiAgICAgICAgY29sb3JCcmFuZEJhY2tncm91bmRIb3ZlcjogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZFByZXNzZWQ6IGJyYW5kWzQwXSxcbiAgICAgICAgY29sb3JCcmFuZEJhY2tncm91bmRTZWxlY3RlZDogYnJhbmRbNjBdLFxuICAgICAgICBjb2xvckNvbXBvdW5kQnJhbmRCYWNrZ3JvdW5kOiBicmFuZFs4MF0sXG4gICAgICAgIGNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmRIb3ZlcjogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvckNvbXBvdW5kQnJhbmRCYWNrZ3JvdW5kUHJlc3NlZDogYnJhbmRbNjBdLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZFN0YXRpYzogYnJhbmRbODBdLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZDI6IGJyYW5kWzE2MF0sXG4gICAgICAgIGNvbG9yQnJhbmRCYWNrZ3JvdW5kMkhvdmVyOiBicmFuZFsxNTBdLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZDJQcmVzc2VkOiBicmFuZFsxMzBdLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZDNTdGF0aWM6IGJyYW5kWzYwXSxcbiAgICAgICAgY29sb3JCcmFuZEJhY2tncm91bmQ0U3RhdGljOiBicmFuZFs0MF0sXG4gICAgICAgIGNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWQ6IHdoaXRlLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkSG92ZXI6IGJyYW5kWzE2MF0sXG4gICAgICAgIGNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkOiBicmFuZFsxNDBdLFxuICAgICAgICBjb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkU2VsZWN0ZWQ6IGJyYW5kWzE1MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbENhcmRCYWNrZ3JvdW5kOiBncmV5Wzk4XSxcbiAgICAgICAgY29sb3JOZXV0cmFsQ2FyZEJhY2tncm91bmRIb3Zlcjogd2hpdGUsXG4gICAgICAgIGNvbG9yTmV1dHJhbENhcmRCYWNrZ3JvdW5kUHJlc3NlZDogZ3JleVs5Nl0sXG4gICAgICAgIGNvbG9yTmV1dHJhbENhcmRCYWNrZ3JvdW5kU2VsZWN0ZWQ6IGdyZXlbOTJdLFxuICAgICAgICBjb2xvck5ldXRyYWxDYXJkQmFja2dyb3VuZERpc2FibGVkOiBncmV5Wzk0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZTogZ3JleVszOF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVIb3ZlcjogZ3JleVszNF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVQcmVzc2VkOiBncmV5WzMwXSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZVNlbGVjdGVkOiBicmFuZFs4MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZTE6IGdyZXlbODJdLFxuICAgICAgICBjb2xvck5ldXRyYWxTdHJva2UxSG92ZXI6IGdyZXlbNzhdLFxuICAgICAgICBjb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZDogZ3JleVs3MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZTFTZWxlY3RlZDogZ3JleVs3NF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZTI6IGdyZXlbODhdLFxuICAgICAgICBjb2xvck5ldXRyYWxTdHJva2UzOiBncmV5Wzk0XSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlU3VidGxlOiBncmV5Wzg4XSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlT25CcmFuZDogd2hpdGUsXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyOiB3aGl0ZSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlT25CcmFuZDJIb3Zlcjogd2hpdGUsXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyUHJlc3NlZDogd2hpdGUsXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyU2VsZWN0ZWQ6IHdoaXRlLFxuICAgICAgICBjb2xvckJyYW5kU3Ryb2tlMTogYnJhbmRbODBdLFxuICAgICAgICBjb2xvckJyYW5kU3Ryb2tlMjogYnJhbmRbMTQwXSxcbiAgICAgICAgY29sb3JCcmFuZFN0cm9rZTJIb3ZlcjogYnJhbmRbMTIwXSxcbiAgICAgICAgY29sb3JCcmFuZFN0cm9rZTJQcmVzc2VkOiBicmFuZFs4MF0sXG4gICAgICAgIGNvbG9yQnJhbmRTdHJva2UyQ29udHJhc3Q6IGJyYW5kWzE0MF0sXG4gICAgICAgIGNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZTogYnJhbmRbODBdLFxuICAgICAgICBjb2xvckNvbXBvdW5kQnJhbmRTdHJva2VIb3ZlcjogYnJhbmRbNzBdLFxuICAgICAgICBjb2xvckNvbXBvdW5kQnJhbmRTdHJva2VQcmVzc2VkOiBicmFuZFs2MF0sXG4gICAgICAgIGNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkOiBncmV5Wzg4XSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlSW52ZXJ0ZWREaXNhYmxlZDogd2hpdGVBbHBoYVs0MF0sXG4gICAgICAgIGNvbG9yVHJhbnNwYXJlbnRTdHJva2U6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGNvbG9yVHJhbnNwYXJlbnRTdHJva2VJbnRlcmFjdGl2ZTogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgY29sb3JUcmFuc3BhcmVudFN0cm9rZURpc2FibGVkOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBjb2xvck5ldXRyYWxTdHJva2VBbHBoYTogYmxhY2tBbHBoYVs1XSxcbiAgICAgICAgY29sb3JOZXV0cmFsU3Ryb2tlQWxwaGEyOiB3aGl0ZUFscGhhWzIwXSxcbiAgICAgICAgY29sb3JTdHJva2VGb2N1czE6IHdoaXRlLFxuICAgICAgICBjb2xvclN0cm9rZUZvY3VzMjogYmxhY2ssXG4gICAgICAgIGNvbG9yTmV1dHJhbFNoYWRvd0FtYmllbnQ6ICdyZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgY29sb3JOZXV0cmFsU2hhZG93S2V5OiAncmdiYSgwLDAsMCwwLjE0KScsXG4gICAgICAgIGNvbG9yTmV1dHJhbFNoYWRvd0FtYmllbnRMaWdodGVyOiAncmdiYSgwLDAsMCwwLjA2KScsXG4gICAgICAgIGNvbG9yTmV1dHJhbFNoYWRvd0tleUxpZ2h0ZXI6ICdyZ2JhKDAsMCwwLDAuMDcpJyxcbiAgICAgICAgY29sb3JOZXV0cmFsU2hhZG93QW1iaWVudERhcmtlcjogJ3JnYmEoMCwwLDAsMC4yMCknLFxuICAgICAgICBjb2xvck5ldXRyYWxTaGFkb3dLZXlEYXJrZXI6ICdyZ2JhKDAsMCwwLDAuMjQpJyxcbiAgICAgICAgY29sb3JCcmFuZFNoYWRvd0FtYmllbnQ6ICdyZ2JhKDAsMCwwLDAuMzApJyxcbiAgICAgICAgY29sb3JCcmFuZFNoYWRvd0tleTogJ3JnYmEoMCwwLDAsMC4yNSknXG4gICAgfSk7XG4iLCJleHBvcnQgY29uc3QgYm9yZGVyUmFkaXVzID0ge1xuICAgIGJvcmRlclJhZGl1c05vbmU6ICcwJyxcbiAgICBib3JkZXJSYWRpdXNTbWFsbDogJzJweCcsXG4gICAgYm9yZGVyUmFkaXVzTWVkaXVtOiAnNHB4JyxcbiAgICBib3JkZXJSYWRpdXNMYXJnZTogJzZweCcsXG4gICAgYm9yZGVyUmFkaXVzWExhcmdlOiAnOHB4JyxcbiAgICBib3JkZXJSYWRpdXNDaXJjdWxhcjogJzEwMDAwcHgnXG59O1xuIiwiZXhwb3J0IGNvbnN0IGN1cnZlcyA9IHtcbiAgICBjdXJ2ZUFjY2VsZXJhdGVNYXg6ICdjdWJpYy1iZXppZXIoMC45LDAuMSwxLDAuMiknLFxuICAgIGN1cnZlQWNjZWxlcmF0ZU1pZDogJ2N1YmljLWJlemllcigxLDAsMSwxKScsXG4gICAgY3VydmVBY2NlbGVyYXRlTWluOiAnY3ViaWMtYmV6aWVyKDAuOCwwLDAuNzgsMSknLFxuICAgIGN1cnZlRGVjZWxlcmF0ZU1heDogJ2N1YmljLWJlemllcigwLjEsMC45LDAuMiwxKScsXG4gICAgY3VydmVEZWNlbGVyYXRlTWlkOiAnY3ViaWMtYmV6aWVyKDAsMCwwLDEpJyxcbiAgICBjdXJ2ZURlY2VsZXJhdGVNaW46ICdjdWJpYy1iZXppZXIoMC4zMywwLDAuMSwxKScsXG4gICAgY3VydmVFYXN5RWFzZU1heDogJ2N1YmljLWJlemllcigwLjgsMCwwLjIsMSknLFxuICAgIGN1cnZlRWFzeUVhc2U6ICdjdWJpYy1iZXppZXIoMC4zMywwLDAuNjcsMSknLFxuICAgIGN1cnZlTGluZWFyOiAnY3ViaWMtYmV6aWVyKDAsMCwxLDEpJ1xufTtcbiIsImV4cG9ydCBjb25zdCBkdXJhdGlvbnMgPSB7XG4gICAgZHVyYXRpb25VbHRyYUZhc3Q6ICc1MG1zJyxcbiAgICBkdXJhdGlvbkZhc3RlcjogJzEwMG1zJyxcbiAgICBkdXJhdGlvbkZhc3Q6ICcxNTBtcycsXG4gICAgZHVyYXRpb25Ob3JtYWw6ICcyMDBtcycsXG4gICAgZHVyYXRpb25HZW50bGU6ICcyNTBtcycsXG4gICAgZHVyYXRpb25TbG93OiAnMzAwbXMnLFxuICAgIGR1cmF0aW9uU2xvd2VyOiAnNDAwbXMnLFxuICAgIGR1cmF0aW9uVWx0cmFTbG93OiAnNTAwbXMnXG59O1xuIiwiZXhwb3J0IGNvbnN0IGZvbnRTaXplcyA9IHtcbiAgICBmb250U2l6ZUJhc2UxMDA6ICcxMHB4JyxcbiAgICBmb250U2l6ZUJhc2UyMDA6ICcxMnB4JyxcbiAgICBmb250U2l6ZUJhc2UzMDA6ICcxNHB4JyxcbiAgICBmb250U2l6ZUJhc2U0MDA6ICcxNnB4JyxcbiAgICBmb250U2l6ZUJhc2U1MDA6ICcyMHB4JyxcbiAgICBmb250U2l6ZUJhc2U2MDA6ICcyNHB4JyxcbiAgICBmb250U2l6ZUhlcm83MDA6ICcyOHB4JyxcbiAgICBmb250U2l6ZUhlcm84MDA6ICczMnB4JyxcbiAgICBmb250U2l6ZUhlcm85MDA6ICc0MHB4JyxcbiAgICBmb250U2l6ZUhlcm8xMDAwOiAnNjhweCdcbn07XG5leHBvcnQgY29uc3QgbGluZUhlaWdodHMgPSB7XG4gICAgbGluZUhlaWdodEJhc2UxMDA6ICcxNHB4JyxcbiAgICBsaW5lSGVpZ2h0QmFzZTIwMDogJzE2cHgnLFxuICAgIGxpbmVIZWlnaHRCYXNlMzAwOiAnMjBweCcsXG4gICAgbGluZUhlaWdodEJhc2U0MDA6ICcyMnB4JyxcbiAgICBsaW5lSGVpZ2h0QmFzZTUwMDogJzI4cHgnLFxuICAgIGxpbmVIZWlnaHRCYXNlNjAwOiAnMzJweCcsXG4gICAgbGluZUhlaWdodEhlcm83MDA6ICczNnB4JyxcbiAgICBsaW5lSGVpZ2h0SGVybzgwMDogJzQwcHgnLFxuICAgIGxpbmVIZWlnaHRIZXJvOTAwOiAnNTJweCcsXG4gICAgbGluZUhlaWdodEhlcm8xMDAwOiAnOTJweCdcbn07XG5leHBvcnQgY29uc3QgZm9udFdlaWdodHMgPSB7XG4gICAgZm9udFdlaWdodFJlZ3VsYXI6IDQwMCxcbiAgICBmb250V2VpZ2h0TWVkaXVtOiA1MDAsXG4gICAgZm9udFdlaWdodFNlbWlib2xkOiA2MDAsXG4gICAgZm9udFdlaWdodEJvbGQ6IDcwMFxufTtcbmV4cG9ydCBjb25zdCBmb250RmFtaWxpZXMgPSB7XG4gICAgZm9udEZhbWlseUJhc2U6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAZmx1ZW50dWkvbWF4LWxlblxuICAgIFwiJ1NlZ29lIFVJJywgJ1NlZ29lIFVJIFdlYiAoV2VzdCBFdXJvcGVhbiknLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZlwiLFxuICAgIGZvbnRGYW1pbHlNb25vc3BhY2U6IFwiQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZVwiLFxuICAgIGZvbnRGYW1pbHlOdW1lcmljOiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGZsdWVudHVpL21heC1sZW5cbiAgICBcIkJhaG5zY2hyaWZ0LCAnU2Vnb2UgVUknLCAnU2Vnb2UgVUkgV2ViIChXZXN0IEV1cm9wZWFuKScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmXCJcbn07XG4iLCIvLyBJbnRlbnRpb25hbGx5IG5vdCBleHBvcnRlZCEgVXNlIGhvcml6b250YWxTcGFjaW5ncyBhbmQgdmVydGljYWxTcGFjaW5ncyBpbnN0ZWFkLlxuY29uc3Qgc3BhY2luZ3MgPSB7XG4gICAgbm9uZTogJzAnLFxuICAgIHh4czogJzJweCcsXG4gICAgeHM6ICc0cHgnLFxuICAgIHNOdWRnZTogJzZweCcsXG4gICAgczogJzhweCcsXG4gICAgbU51ZGdlOiAnMTBweCcsXG4gICAgbTogJzEycHgnLFxuICAgIGw6ICcxNnB4JyxcbiAgICB4bDogJzIwcHgnLFxuICAgIHh4bDogJzI0cHgnLFxuICAgIHh4eGw6ICczMnB4J1xufTtcbmV4cG9ydCBjb25zdCBob3Jpem9udGFsU3BhY2luZ3MgPSB7XG4gICAgc3BhY2luZ0hvcml6b250YWxOb25lOiBzcGFjaW5ncy5ub25lLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsWFhTOiBzcGFjaW5ncy54eHMsXG4gICAgc3BhY2luZ0hvcml6b250YWxYUzogc3BhY2luZ3MueHMsXG4gICAgc3BhY2luZ0hvcml6b250YWxTTnVkZ2U6IHNwYWNpbmdzLnNOdWRnZSxcbiAgICBzcGFjaW5nSG9yaXpvbnRhbFM6IHNwYWNpbmdzLnMsXG4gICAgc3BhY2luZ0hvcml6b250YWxNTnVkZ2U6IHNwYWNpbmdzLm1OdWRnZSxcbiAgICBzcGFjaW5nSG9yaXpvbnRhbE06IHNwYWNpbmdzLm0sXG4gICAgc3BhY2luZ0hvcml6b250YWxMOiBzcGFjaW5ncy5sLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsWEw6IHNwYWNpbmdzLnhsLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsWFhMOiBzcGFjaW5ncy54eGwsXG4gICAgc3BhY2luZ0hvcml6b250YWxYWFhMOiBzcGFjaW5ncy54eHhsXG59O1xuZXhwb3J0IGNvbnN0IHZlcnRpY2FsU3BhY2luZ3MgPSB7XG4gICAgc3BhY2luZ1ZlcnRpY2FsTm9uZTogc3BhY2luZ3Mubm9uZSxcbiAgICBzcGFjaW5nVmVydGljYWxYWFM6IHNwYWNpbmdzLnh4cyxcbiAgICBzcGFjaW5nVmVydGljYWxYUzogc3BhY2luZ3MueHMsXG4gICAgc3BhY2luZ1ZlcnRpY2FsU051ZGdlOiBzcGFjaW5ncy5zTnVkZ2UsXG4gICAgc3BhY2luZ1ZlcnRpY2FsUzogc3BhY2luZ3MucyxcbiAgICBzcGFjaW5nVmVydGljYWxNTnVkZ2U6IHNwYWNpbmdzLm1OdWRnZSxcbiAgICBzcGFjaW5nVmVydGljYWxNOiBzcGFjaW5ncy5tLFxuICAgIHNwYWNpbmdWZXJ0aWNhbEw6IHNwYWNpbmdzLmwsXG4gICAgc3BhY2luZ1ZlcnRpY2FsWEw6IHNwYWNpbmdzLnhsLFxuICAgIHNwYWNpbmdWZXJ0aWNhbFhYTDogc3BhY2luZ3MueHhsLFxuICAgIHNwYWNpbmdWZXJ0aWNhbFhYWEw6IHNwYWNpbmdzLnh4eGxcbn07XG4iLCJleHBvcnQgY29uc3Qgc3Ryb2tlV2lkdGhzID0ge1xuICAgIHN0cm9rZVdpZHRoVGhpbjogJzFweCcsXG4gICAgc3Ryb2tlV2lkdGhUaGljazogJzJweCcsXG4gICAgc3Ryb2tlV2lkdGhUaGlja2VyOiAnM3B4JyxcbiAgICBzdHJva2VXaWR0aFRoaWNrZXN0OiAnNHB4J1xufTtcbiIsImV4cG9ydCBjb25zdCB0b2tlbnMgPSB7XG4gICAgLy8gQ29sb3IgdG9rZW5zXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDE6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMUhvdmVyKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFTZWxlY3RlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxU2VsZWN0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJIb3ZlcjogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQySG92ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMlByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMlByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMlNlbGVjdGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRIb3ZlcjogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRIb3ZlciknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJCcmFuZFByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkJyYW5kU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkJyYW5kU2VsZWN0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMzogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNIb3ZlcjogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzSG92ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kM1ByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kM1ByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kM1NlbGVjdGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQzQnJhbmRIb3ZlcjogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzQnJhbmRIb3ZlciknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQzQnJhbmRQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNCcmFuZFByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kM0JyYW5kU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kM0JyYW5kU2VsZWN0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kNDogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQ0KScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKScsXG4gICAgY29sb3JCcmFuZEZvcmVncm91bmRMaW5rOiAndmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmRMaW5rKScsXG4gICAgY29sb3JCcmFuZEZvcmVncm91bmRMaW5rSG92ZXI6ICd2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZExpbmtIb3ZlciknLFxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kTGlua1ByZXNzZWQ6ICd2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZExpbmtQcmVzc2VkKScsXG4gICAgY29sb3JCcmFuZEZvcmVncm91bmRMaW5rU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZExpbmtTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGluazogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGluayknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGlua0hvdmVyOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJMaW5rSG92ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkxpbmtQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJMaW5rUHJlc3NlZCknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQyTGlua1NlbGVjdGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJMaW5rU2VsZWN0ZWQpJyxcbiAgICBjb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMTogJ3ZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxKScsXG4gICAgY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFIb3ZlcjogJ3ZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxSG92ZXIpJyxcbiAgICBjb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMVByZXNzZWQ6ICd2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMVByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZDogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkSG92ZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRIb3ZlciknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZFByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZDI6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWQyKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZFN0YXRpY0ludmVydGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZFN0YXRpY0ludmVydGVkKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkTGluazogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZExpbmspJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRMaW5rSG92ZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRMaW5rSG92ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWRMaW5rUHJlc3NlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZExpbmtQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkTGlua1NlbGVjdGVkOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkTGlua1NlbGVjdGVkKScsXG4gICAgY29sb3JOZXV0cmFsRm9yZWdyb3VuZEludmVydGVkRGlzYWJsZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWREaXNhYmxlZCknLFxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kMTogJ3ZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMiknLFxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kMkhvdmVyOiAndmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmQySG92ZXIpJyxcbiAgICBjb2xvckJyYW5kRm9yZWdyb3VuZDJQcmVzc2VkOiAndmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmQyUHJlc3NlZCknLFxuICAgIGNvbG9yTmV1dHJhbEZvcmVncm91bmQxU3RhdGljOiAndmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFTdGF0aWMpJyxcbiAgICBjb2xvckJyYW5kRm9yZWdyb3VuZEludmVydGVkOiAndmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmRJbnZlcnRlZCknLFxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kSW52ZXJ0ZWRIb3ZlcjogJ3ZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kSW52ZXJ0ZWRIb3ZlciknLFxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkOiAndmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmRJbnZlcnRlZFByZXNzZWQpJyxcbiAgICBjb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHQ6ICd2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHQpJyxcbiAgICBjb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHRIb3ZlcjogJ3ZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodEhvdmVyKScsXG4gICAgY29sb3JCcmFuZEZvcmVncm91bmRPbkxpZ2h0UHJlc3NlZDogJ3ZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodFByZXNzZWQpJyxcbiAgICBjb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHRTZWxlY3RlZDogJ3ZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodFNlbGVjdGVkKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDE6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQxSG92ZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMUhvdmVyKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDFQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDFTZWxlY3RlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxU2VsZWN0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQyKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDJIb3ZlcjogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQySG92ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMlByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMlByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kMlNlbGVjdGVkOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDJTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQzOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDMpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kM0hvdmVyOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDNIb3ZlciknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQzUHJlc3NlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQzUHJlc3NlZCknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQzU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kM1NlbGVjdGVkKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDQ6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNCknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQ0SG92ZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNEhvdmVyKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDRQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDRQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDRTZWxlY3RlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ0U2VsZWN0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNTogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ1KScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZDVIb3ZlcjogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQ1SG92ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNVByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNVByZXNzZWQpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kNVNlbGVjdGVkOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDVTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmQ2OiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDYpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kSW52ZXJ0ZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kSW52ZXJ0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxCYWNrZ3JvdW5kU3RhdGljOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZFN0YXRpYyknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmRBbHBoYTogJ3ZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmRBbHBoYSknLFxuICAgIGNvbG9yTmV1dHJhbEJhY2tncm91bmRBbHBoYTI6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kQWxwaGEyKScsXG4gICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kOiAndmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kKScsXG4gICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kSG92ZXI6ICd2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRIb3ZlciknLFxuICAgIGNvbG9yU3VidGxlQmFja2dyb3VuZFByZXNzZWQ6ICd2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRQcmVzc2VkKScsXG4gICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRTZWxlY3RlZCknLFxuICAgIGNvbG9yU3VidGxlQmFja2dyb3VuZExpZ2h0QWxwaGFIb3ZlcjogJ3ZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZExpZ2h0QWxwaGFIb3ZlciknLFxuICAgIGNvbG9yU3VidGxlQmFja2dyb3VuZExpZ2h0QWxwaGFQcmVzc2VkOiAndmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kTGlnaHRBbHBoYVByZXNzZWQpJyxcbiAgICBjb2xvclN1YnRsZUJhY2tncm91bmRMaWdodEFscGhhU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRMaWdodEFscGhhU2VsZWN0ZWQpJyxcbiAgICBjb2xvclN1YnRsZUJhY2tncm91bmRJbnZlcnRlZDogJ3ZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEludmVydGVkKScsXG4gICAgY29sb3JTdWJ0bGVCYWNrZ3JvdW5kSW52ZXJ0ZWRIb3ZlcjogJ3ZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEludmVydGVkSG92ZXIpJyxcbiAgICBjb2xvclN1YnRsZUJhY2tncm91bmRJbnZlcnRlZFByZXNzZWQ6ICd2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRJbnZlcnRlZFByZXNzZWQpJyxcbiAgICBjb2xvclN1YnRsZUJhY2tncm91bmRJbnZlcnRlZFNlbGVjdGVkOiAndmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kSW52ZXJ0ZWRTZWxlY3RlZCknLFxuICAgIGNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOiAndmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpJyxcbiAgICBjb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZEhvdmVyOiAndmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmRIb3ZlciknLFxuICAgIGNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kUHJlc3NlZDogJ3ZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kUHJlc3NlZCknLFxuICAgIGNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZFNlbGVjdGVkKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZERpc2FibGVkOiAndmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZERpc2FibGVkKScsXG4gICAgY29sb3JOZXV0cmFsQmFja2dyb3VuZEludmVydGVkRGlzYWJsZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kSW52ZXJ0ZWREaXNhYmxlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0ZW5jaWwxOiAndmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDEpJyxcbiAgICBjb2xvck5ldXRyYWxTdGVuY2lsMjogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwyKScsXG4gICAgY29sb3JOZXV0cmFsU3RlbmNpbDFBbHBoYTogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwxQWxwaGEpJyxcbiAgICBjb2xvck5ldXRyYWxTdGVuY2lsMkFscGhhOiAndmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDJBbHBoYSknLFxuICAgIGNvbG9yQmFja2dyb3VuZE92ZXJsYXk6ICd2YXIoLS1jb2xvckJhY2tncm91bmRPdmVybGF5KScsXG4gICAgY29sb3JTY3JvbGxiYXJPdmVybGF5OiAndmFyKC0tY29sb3JTY3JvbGxiYXJPdmVybGF5KScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmQ6ICd2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZCknLFxuICAgIGNvbG9yQnJhbmRCYWNrZ3JvdW5kSG92ZXI6ICd2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZEhvdmVyKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmRQcmVzc2VkOiAndmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRQcmVzc2VkKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmRTZWxlY3RlZDogJ3ZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kU2VsZWN0ZWQpJyxcbiAgICBjb2xvckNvbXBvdW5kQnJhbmRCYWNrZ3JvdW5kOiAndmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZCknLFxuICAgIGNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmRIb3ZlcjogJ3ZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmRIb3ZlciknLFxuICAgIGNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmRQcmVzc2VkOiAndmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZFByZXNzZWQpJyxcbiAgICBjb2xvckJyYW5kQmFja2dyb3VuZFN0YXRpYzogJ3ZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kU3RhdGljKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmQyOiAndmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQyKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmQySG92ZXI6ICd2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZDJIb3ZlciknLFxuICAgIGNvbG9yQnJhbmRCYWNrZ3JvdW5kMlByZXNzZWQ6ICd2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZDJQcmVzc2VkKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmQzU3RhdGljOiAndmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQzU3RhdGljKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmQ0U3RhdGljOiAndmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQ0U3RhdGljKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZDogJ3ZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWQpJyxcbiAgICBjb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkSG92ZXI6ICd2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkSG92ZXIpJyxcbiAgICBjb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkUHJlc3NlZDogJ3ZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKScsXG4gICAgY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZFNlbGVjdGVkOiAndmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZFNlbGVjdGVkKScsXG4gICAgY29sb3JOZXV0cmFsQ2FyZEJhY2tncm91bmQ6ICd2YXIoLS1jb2xvck5ldXRyYWxDYXJkQmFja2dyb3VuZCknLFxuICAgIGNvbG9yTmV1dHJhbENhcmRCYWNrZ3JvdW5kSG92ZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxDYXJkQmFja2dyb3VuZEhvdmVyKScsXG4gICAgY29sb3JOZXV0cmFsQ2FyZEJhY2tncm91bmRQcmVzc2VkOiAndmFyKC0tY29sb3JOZXV0cmFsQ2FyZEJhY2tncm91bmRQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsQ2FyZEJhY2tncm91bmRTZWxlY3RlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbENhcmRCYWNrZ3JvdW5kU2VsZWN0ZWQpJyxcbiAgICBjb2xvck5ldXRyYWxDYXJkQmFja2dyb3VuZERpc2FibGVkOiAndmFyKC0tY29sb3JOZXV0cmFsQ2FyZEJhY2tncm91bmREaXNhYmxlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGU6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZUhvdmVyOiAndmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZUhvdmVyKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZVByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlUHJlc3NlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVTZWxlY3RlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZTE6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyOiAndmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZTFTZWxlY3RlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFTZWxlY3RlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZTI6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UyKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlMzogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTMpJyxcbiAgICBjb2xvck5ldXRyYWxTdHJva2VTdWJ0bGU6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VTdWJ0bGUpJyxcbiAgICBjb2xvck5ldXRyYWxTdHJva2VPbkJyYW5kOiAndmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlT25CcmFuZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyOiAndmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlT25CcmFuZDIpJyxcbiAgICBjb2xvck5ldXRyYWxTdHJva2VPbkJyYW5kMkhvdmVyOiAndmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlT25CcmFuZDJIb3ZlciknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyUHJlc3NlZDogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyUHJlc3NlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyU2VsZWN0ZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VPbkJyYW5kMlNlbGVjdGVkKScsXG4gICAgY29sb3JCcmFuZFN0cm9rZTE6ICd2YXIoLS1jb2xvckJyYW5kU3Ryb2tlMSknLFxuICAgIGNvbG9yQnJhbmRTdHJva2UyOiAndmFyKC0tY29sb3JCcmFuZFN0cm9rZTIpJyxcbiAgICBjb2xvckJyYW5kU3Ryb2tlMkhvdmVyOiAndmFyKC0tY29sb3JCcmFuZFN0cm9rZTJIb3ZlciknLFxuICAgIGNvbG9yQnJhbmRTdHJva2UyUHJlc3NlZDogJ3ZhcigtLWNvbG9yQnJhbmRTdHJva2UyUHJlc3NlZCknLFxuICAgIGNvbG9yQnJhbmRTdHJva2UyQ29udHJhc3Q6ICd2YXIoLS1jb2xvckJyYW5kU3Ryb2tlMkNvbnRyYXN0KScsXG4gICAgY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlOiAndmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlKScsXG4gICAgY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlSG92ZXI6ICd2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2VIb3ZlciknLFxuICAgIGNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZVByZXNzZWQ6ICd2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2VQcmVzc2VkKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlRGlzYWJsZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCknLFxuICAgIGNvbG9yTmV1dHJhbFN0cm9rZUludmVydGVkRGlzYWJsZWQ6ICd2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VJbnZlcnRlZERpc2FibGVkKScsXG4gICAgY29sb3JUcmFuc3BhcmVudFN0cm9rZTogJ3ZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpJyxcbiAgICBjb2xvclRyYW5zcGFyZW50U3Ryb2tlSW50ZXJhY3RpdmU6ICd2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlSW50ZXJhY3RpdmUpJyxcbiAgICBjb2xvclRyYW5zcGFyZW50U3Ryb2tlRGlzYWJsZWQ6ICd2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlRGlzYWJsZWQpJyxcbiAgICBjb2xvck5ldXRyYWxTdHJva2VBbHBoYTogJ3ZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFscGhhKScsXG4gICAgY29sb3JOZXV0cmFsU3Ryb2tlQWxwaGEyOiAndmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWxwaGEyKScsXG4gICAgY29sb3JTdHJva2VGb2N1czE6ICd2YXIoLS1jb2xvclN0cm9rZUZvY3VzMSknLFxuICAgIGNvbG9yU3Ryb2tlRm9jdXMyOiAndmFyKC0tY29sb3JTdHJva2VGb2N1czIpJyxcbiAgICBjb2xvck5ldXRyYWxTaGFkb3dBbWJpZW50OiAndmFyKC0tY29sb3JOZXV0cmFsU2hhZG93QW1iaWVudCknLFxuICAgIGNvbG9yTmV1dHJhbFNoYWRvd0tleTogJ3ZhcigtLWNvbG9yTmV1dHJhbFNoYWRvd0tleSknLFxuICAgIGNvbG9yTmV1dHJhbFNoYWRvd0FtYmllbnRMaWdodGVyOiAndmFyKC0tY29sb3JOZXV0cmFsU2hhZG93QW1iaWVudExpZ2h0ZXIpJyxcbiAgICBjb2xvck5ldXRyYWxTaGFkb3dLZXlMaWdodGVyOiAndmFyKC0tY29sb3JOZXV0cmFsU2hhZG93S2V5TGlnaHRlciknLFxuICAgIGNvbG9yTmV1dHJhbFNoYWRvd0FtYmllbnREYXJrZXI6ICd2YXIoLS1jb2xvck5ldXRyYWxTaGFkb3dBbWJpZW50RGFya2VyKScsXG4gICAgY29sb3JOZXV0cmFsU2hhZG93S2V5RGFya2VyOiAndmFyKC0tY29sb3JOZXV0cmFsU2hhZG93S2V5RGFya2VyKScsXG4gICAgY29sb3JCcmFuZFNoYWRvd0FtYmllbnQ6ICd2YXIoLS1jb2xvckJyYW5kU2hhZG93QW1iaWVudCknLFxuICAgIGNvbG9yQnJhbmRTaGFkb3dLZXk6ICd2YXIoLS1jb2xvckJyYW5kU2hhZG93S2V5KScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSB0b2tlbnNcbiAgICAvLyBDb2xvciBwYWxldHRlIHJlZCB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVSZWRCYWNrZ3JvdW5kMTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVJlZEJhY2tncm91bmQxKScsXG4gICAgY29sb3JQYWxldHRlUmVkQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVSZWRCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZVJlZEJhY2tncm91bmQzOiAndmFyKC0tY29sb3JQYWxldHRlUmVkQmFja2dyb3VuZDMpJyxcbiAgICBjb2xvclBhbGV0dGVSZWRCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVSZWRCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVSZWRCb3JkZXIxOiAndmFyKC0tY29sb3JQYWxldHRlUmVkQm9yZGVyMSknLFxuICAgIGNvbG9yUGFsZXR0ZVJlZEJvcmRlcjI6ICd2YXIoLS1jb2xvclBhbGV0dGVSZWRCb3JkZXIyKScsXG4gICAgY29sb3JQYWxldHRlUmVkRm9yZWdyb3VuZDE6ICd2YXIoLS1jb2xvclBhbGV0dGVSZWRGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yUGFsZXR0ZVJlZEZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlUmVkRm9yZWdyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVSZWRGb3JlZ3JvdW5kMzogJ3ZhcigtLWNvbG9yUGFsZXR0ZVJlZEZvcmVncm91bmQzKScsXG4gICAgY29sb3JQYWxldHRlUmVkRm9yZWdyb3VuZEludmVydGVkOiAndmFyKC0tY29sb3JQYWxldHRlUmVkRm9yZWdyb3VuZEludmVydGVkKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBncmVlbiB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVHcmVlbkJhY2tncm91bmQxOiAndmFyKC0tY29sb3JQYWxldHRlR3JlZW5CYWNrZ3JvdW5kMSknLFxuICAgIGNvbG9yUGFsZXR0ZUdyZWVuQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVHcmVlbkJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlR3JlZW5CYWNrZ3JvdW5kMzogJ3ZhcigtLWNvbG9yUGFsZXR0ZUdyZWVuQmFja2dyb3VuZDMpJyxcbiAgICBjb2xvclBhbGV0dGVHcmVlbkJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUdyZWVuQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlR3JlZW5Cb3JkZXIxOiAndmFyKC0tY29sb3JQYWxldHRlR3JlZW5Cb3JkZXIxKScsXG4gICAgY29sb3JQYWxldHRlR3JlZW5Cb3JkZXIyOiAndmFyKC0tY29sb3JQYWxldHRlR3JlZW5Cb3JkZXIyKScsXG4gICAgY29sb3JQYWxldHRlR3JlZW5Gb3JlZ3JvdW5kMTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUdyZWVuRm9yZWdyb3VuZDEpJyxcbiAgICBjb2xvclBhbGV0dGVHcmVlbkZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlR3JlZW5Gb3JlZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZUdyZWVuRm9yZWdyb3VuZDM6ICd2YXIoLS1jb2xvclBhbGV0dGVHcmVlbkZvcmVncm91bmQzKScsXG4gICAgY29sb3JQYWxldHRlR3JlZW5Gb3JlZ3JvdW5kSW52ZXJ0ZWQ6ICd2YXIoLS1jb2xvclBhbGV0dGVHcmVlbkZvcmVncm91bmRJbnZlcnRlZCknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgZGFyayBvcmFuZ2UgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlRGFya09yYW5nZUJhY2tncm91bmQxOiAndmFyKC0tY29sb3JQYWxldHRlRGFya09yYW5nZUJhY2tncm91bmQxKScsXG4gICAgY29sb3JQYWxldHRlRGFya09yYW5nZUJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlRGFya09yYW5nZUJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlRGFya09yYW5nZUJhY2tncm91bmQzOiAndmFyKC0tY29sb3JQYWxldHRlRGFya09yYW5nZUJhY2tncm91bmQzKScsXG4gICAgY29sb3JQYWxldHRlRGFya09yYW5nZUJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVEYXJrT3JhbmdlQm9yZGVyMTogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VCb3JkZXIxKScsXG4gICAgY29sb3JQYWxldHRlRGFya09yYW5nZUJvcmRlcjI6ICd2YXIoLS1jb2xvclBhbGV0dGVEYXJrT3JhbmdlQm9yZGVyMiknLFxuICAgIGNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VGb3JlZ3JvdW5kMTogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VGb3JlZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VGb3JlZ3JvdW5kMzogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtPcmFuZ2VGb3JlZ3JvdW5kMyknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgeWVsbG93IHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZVllbGxvd0JhY2tncm91bmQxOiAndmFyKC0tY29sb3JQYWxldHRlWWVsbG93QmFja2dyb3VuZDEpJyxcbiAgICBjb2xvclBhbGV0dGVZZWxsb3dCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVllbGxvd0JhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlWWVsbG93QmFja2dyb3VuZDM6ICd2YXIoLS1jb2xvclBhbGV0dGVZZWxsb3dCYWNrZ3JvdW5kMyknLFxuICAgIGNvbG9yUGFsZXR0ZVllbGxvd0JvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVllbGxvd0JvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZVllbGxvd0JvcmRlcjE6ICd2YXIoLS1jb2xvclBhbGV0dGVZZWxsb3dCb3JkZXIxKScsXG4gICAgY29sb3JQYWxldHRlWWVsbG93Qm9yZGVyMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVllbGxvd0JvcmRlcjIpJyxcbiAgICBjb2xvclBhbGV0dGVZZWxsb3dGb3JlZ3JvdW5kMTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVllbGxvd0ZvcmVncm91bmQxKScsXG4gICAgY29sb3JQYWxldHRlWWVsbG93Rm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVZZWxsb3dGb3JlZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZVllbGxvd0ZvcmVncm91bmQzOiAndmFyKC0tY29sb3JQYWxldHRlWWVsbG93Rm9yZWdyb3VuZDMpJyxcbiAgICBjb2xvclBhbGV0dGVZZWxsb3dGb3JlZ3JvdW5kSW52ZXJ0ZWQ6ICd2YXIoLS1jb2xvclBhbGV0dGVZZWxsb3dGb3JlZ3JvdW5kSW52ZXJ0ZWQpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGJlcnJ5IHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUJlcnJ5QmFja2dyb3VuZDE6ICd2YXIoLS1jb2xvclBhbGV0dGVCZXJyeUJhY2tncm91bmQxKScsXG4gICAgY29sb3JQYWxldHRlQmVycnlCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUJlcnJ5QmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVCZXJyeUJhY2tncm91bmQzOiAndmFyKC0tY29sb3JQYWxldHRlQmVycnlCYWNrZ3JvdW5kMyknLFxuICAgIGNvbG9yUGFsZXR0ZUJlcnJ5Qm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlQmVycnlCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVCZXJyeUJvcmRlcjE6ICd2YXIoLS1jb2xvclBhbGV0dGVCZXJyeUJvcmRlcjEpJyxcbiAgICBjb2xvclBhbGV0dGVCZXJyeUJvcmRlcjI6ICd2YXIoLS1jb2xvclBhbGV0dGVCZXJyeUJvcmRlcjIpJyxcbiAgICBjb2xvclBhbGV0dGVCZXJyeUZvcmVncm91bmQxOiAndmFyKC0tY29sb3JQYWxldHRlQmVycnlGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yUGFsZXR0ZUJlcnJ5Rm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVCZXJyeUZvcmVncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlQmVycnlGb3JlZ3JvdW5kMzogJ3ZhcigtLWNvbG9yUGFsZXR0ZUJlcnJ5Rm9yZWdyb3VuZDMpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIG1hcmlnb2xkIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZU1hcmlnb2xkQmFja2dyb3VuZDE6ICd2YXIoLS1jb2xvclBhbGV0dGVNYXJpZ29sZEJhY2tncm91bmQxKScsXG4gICAgY29sb3JQYWxldHRlTWFyaWdvbGRCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZU1hcmlnb2xkQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVNYXJpZ29sZEJhY2tncm91bmQzOiAndmFyKC0tY29sb3JQYWxldHRlTWFyaWdvbGRCYWNrZ3JvdW5kMyknLFxuICAgIGNvbG9yUGFsZXR0ZU1hcmlnb2xkQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlTWFyaWdvbGRCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVNYXJpZ29sZEJvcmRlcjE6ICd2YXIoLS1jb2xvclBhbGV0dGVNYXJpZ29sZEJvcmRlcjEpJyxcbiAgICBjb2xvclBhbGV0dGVNYXJpZ29sZEJvcmRlcjI6ICd2YXIoLS1jb2xvclBhbGV0dGVNYXJpZ29sZEJvcmRlcjIpJyxcbiAgICBjb2xvclBhbGV0dGVNYXJpZ29sZEZvcmVncm91bmQxOiAndmFyKC0tY29sb3JQYWxldHRlTWFyaWdvbGRGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yUGFsZXR0ZU1hcmlnb2xkRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVNYXJpZ29sZEZvcmVncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlTWFyaWdvbGRGb3JlZ3JvdW5kMzogJ3ZhcigtLWNvbG9yUGFsZXR0ZU1hcmlnb2xkRm9yZWdyb3VuZDMpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGxpZ2h0IGdyZWVuIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5CYWNrZ3JvdW5kMTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5CYWNrZ3JvdW5kMSknLFxuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5CYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5CYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5CYWNrZ3JvdW5kMzogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5CYWNrZ3JvdW5kMyknLFxuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5Cb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWdodEdyZWVuQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlTGlnaHRHcmVlbkJvcmRlcjE6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWdodEdyZWVuQm9yZGVyMSknLFxuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0R3JlZW5Cb3JkZXIyOiAndmFyKC0tY29sb3JQYWxldHRlTGlnaHRHcmVlbkJvcmRlcjIpJyxcbiAgICBjb2xvclBhbGV0dGVMaWdodEdyZWVuRm9yZWdyb3VuZDE6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWdodEdyZWVuRm9yZWdyb3VuZDEpJyxcbiAgICBjb2xvclBhbGV0dGVMaWdodEdyZWVuRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWdodEdyZWVuRm9yZWdyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVMaWdodEdyZWVuRm9yZWdyb3VuZDM6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWdodEdyZWVuRm9yZWdyb3VuZDMpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGFuY2hvciB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVBbmNob3JCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUFuY2hvckJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlQW5jaG9yQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlQW5jaG9yQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlQW5jaG9yRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVBbmNob3JGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgYmVpZ2UgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlQmVpZ2VCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUJlaWdlQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVCZWlnZUJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUJlaWdlQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlQmVpZ2VGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUJlaWdlRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGJsdWUgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlQmx1ZUJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlQmx1ZUJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlQmx1ZUJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUJsdWVCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVCbHVlRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVCbHVlRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGJyYXNzIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUJyYXNzQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVCcmFzc0JhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlQnJhc3NCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVCcmFzc0JvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZUJyYXNzRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVCcmFzc0ZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBicm93biB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVCcm93bkJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlQnJvd25CYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZUJyb3duQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlQnJvd25Cb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVCcm93bkZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlQnJvd25Gb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgY29ybmZsb3dlciB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVDb3JuZmxvd2VyQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVDb3JuZmxvd2VyQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVDb3JuZmxvd2VyQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlQ29ybmZsb3dlckJvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZUNvcm5mbG93ZXJGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUNvcm5mbG93ZXJGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgY3JhbmJlcnJ5IHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUNyYW5iZXJyeUJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlQ3JhbmJlcnJ5QmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVDcmFuYmVycnlCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVDcmFuYmVycnlCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVDcmFuYmVycnlGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUNyYW5iZXJyeUZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBkYXJrIGdyZWVuIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZURhcmtHcmVlbkJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlRGFya0dyZWVuQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVEYXJrR3JlZW5Cb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVEYXJrR3JlZW5Cb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVEYXJrR3JlZW5Gb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtHcmVlbkZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBkYXJrIHJlZCB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVEYXJrUmVkQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVEYXJrUmVkQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVEYXJrUmVkQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlRGFya1JlZEJvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZURhcmtSZWRGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZURhcmtSZWRGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgZm9yZXN0IHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUZvcmVzdEJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlRm9yZXN0QmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVGb3Jlc3RCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVGb3Jlc3RCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVGb3Jlc3RGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUZvcmVzdEZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBnb2xkIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUdvbGRCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUdvbGRCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZUdvbGRCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVHb2xkQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlR29sZEZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlR29sZEZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBncmFwZSB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVHcmFwZUJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlR3JhcGVCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZUdyYXBlQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlR3JhcGVCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVHcmFwZUZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlR3JhcGVGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgbGF2ZW5kZXIgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlTGF2ZW5kZXJCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxhdmVuZGVyQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVMYXZlbmRlckJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxhdmVuZGVyQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlTGF2ZW5kZXJGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxhdmVuZGVyRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGxpZ2h0IHRlYWwgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlTGlnaHRUZWFsQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWdodFRlYWxCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0VGVhbEJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZUxpZ2h0VGVhbEJvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZUxpZ2h0VGVhbEZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlTGlnaHRUZWFsRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIGxpbGFjIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZUxpbGFjQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWxhY0JhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlTGlsYWNCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWxhY0JvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZUxpbGFjRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVMaWxhY0ZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBtYWdlbnRhIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZU1hZ2VudGFCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZU1hZ2VudGFCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZU1hZ2VudGFCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVNYWdlbnRhQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlTWFnZW50YUZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlTWFnZW50YUZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBtaW5rIHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZU1pbmtCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZU1pbmtCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZU1pbmtCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVNaW5rQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlTWlua0ZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlTWlua0ZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBuYXZ5IHRva2Vuc1xuICAgIGNvbG9yUGFsZXR0ZU5hdnlCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZU5hdnlCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZU5hdnlCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclBhbGV0dGVOYXZ5Qm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlTmF2eUZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlTmF2eUZvcmVncm91bmQyKScsXG4gICAgLy8gQ29sb3IgcGFsZXR0ZSBwZWFjaCB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVQZWFjaEJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlUGVhY2hCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yUGFsZXR0ZVBlYWNoQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlUGVhY2hCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVQZWFjaEZvcmVncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlUGVhY2hGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgcGluayB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVQaW5rQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVQaW5rQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVQaW5rQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlUGlua0JvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZVBpbmtGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVBpbmtGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgcGxhdGludW0gdG9rZW5zXG4gICAgY29sb3JQYWxldHRlUGxhdGludW1CYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVBsYXRpbnVtQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVQbGF0aW51bUJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVBsYXRpbnVtQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlUGxhdGludW1Gb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVBsYXRpbnVtRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIHBsdW0gdG9rZW5zXG4gICAgY29sb3JQYWxldHRlUGx1bUJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlUGx1bUJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlUGx1bUJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVBsdW1Cb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVQbHVtRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVQbHVtRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIHB1bXBraW4gdG9rZW5zXG4gICAgY29sb3JQYWxldHRlUHVtcGtpbkJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlUHVtcGtpbkJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlUHVtcGtpbkJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVB1bXBraW5Cb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVQdW1wa2luRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVQdW1wa2luRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIHB1cnBsZSB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVQdXJwbGVCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVB1cnBsZUJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlUHVycGxlQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlUHVycGxlQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlUHVycGxlRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVQdXJwbGVGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgcm95YWwgYmx1ZSB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVSb3lhbEJsdWVCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVJveWFsQmx1ZUJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlUm95YWxCbHVlQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlUm95YWxCbHVlQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlUm95YWxCbHVlRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVSb3lhbEJsdWVGb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgc2VhZm9hbSB0b2tlbnNcbiAgICBjb2xvclBhbGV0dGVTZWFmb2FtQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVTZWFmb2FtQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVTZWFmb2FtQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JQYWxldHRlU2VhZm9hbUJvcmRlckFjdGl2ZSknLFxuICAgIGNvbG9yUGFsZXR0ZVNlYWZvYW1Gb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVNlYWZvYW1Gb3JlZ3JvdW5kMiknLFxuICAgIC8vIENvbG9yIHBhbGV0dGUgc3RlZWwgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlU3RlZWxCYWNrZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVN0ZWVsQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclBhbGV0dGVTdGVlbEJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVN0ZWVsQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JQYWxldHRlU3RlZWxGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yUGFsZXR0ZVN0ZWVsRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBwYWxldHRlIHRlYWwgdG9rZW5zXG4gICAgY29sb3JQYWxldHRlVGVhbEJhY2tncm91bmQyOiAndmFyKC0tY29sb3JQYWxldHRlVGVhbEJhY2tncm91bmQyKScsXG4gICAgY29sb3JQYWxldHRlVGVhbEJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yUGFsZXR0ZVRlYWxCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclBhbGV0dGVUZWFsRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclBhbGV0dGVUZWFsRm9yZWdyb3VuZDIpJyxcbiAgICAvLyBDb2xvciBzdGF0dXMgc3VjY2VzcyB0b2tlbnNcbiAgICBjb2xvclN0YXR1c1N1Y2Nlc3NCYWNrZ3JvdW5kMTogJ3ZhcigtLWNvbG9yU3RhdHVzU3VjY2Vzc0JhY2tncm91bmQxKScsXG4gICAgY29sb3JTdGF0dXNTdWNjZXNzQmFja2dyb3VuZDI6ICd2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yU3RhdHVzU3VjY2Vzc0JhY2tncm91bmQzOiAndmFyKC0tY29sb3JTdGF0dXNTdWNjZXNzQmFja2dyb3VuZDMpJyxcbiAgICBjb2xvclN0YXR1c1N1Y2Nlc3NGb3JlZ3JvdW5kMTogJ3ZhcigtLWNvbG9yU3RhdHVzU3VjY2Vzc0ZvcmVncm91bmQxKScsXG4gICAgY29sb3JTdGF0dXNTdWNjZXNzRm9yZWdyb3VuZDI6ICd2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NGb3JlZ3JvdW5kMiknLFxuICAgIGNvbG9yU3RhdHVzU3VjY2Vzc0ZvcmVncm91bmQzOiAndmFyKC0tY29sb3JTdGF0dXNTdWNjZXNzRm9yZWdyb3VuZDMpJyxcbiAgICBjb2xvclN0YXR1c1N1Y2Nlc3NGb3JlZ3JvdW5kSW52ZXJ0ZWQ6ICd2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NGb3JlZ3JvdW5kSW52ZXJ0ZWQpJyxcbiAgICBjb2xvclN0YXR1c1N1Y2Nlc3NCb3JkZXJBY3RpdmU6ICd2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NCb3JkZXJBY3RpdmUpJyxcbiAgICBjb2xvclN0YXR1c1N1Y2Nlc3NCb3JkZXIxOiAndmFyKC0tY29sb3JTdGF0dXNTdWNjZXNzQm9yZGVyMSknLFxuICAgIGNvbG9yU3RhdHVzU3VjY2Vzc0JvcmRlcjI6ICd2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NCb3JkZXIyKScsXG4gICAgLy8gQ29sb3Igc3RhdHVzIHdhcm5pbmcgdG9rZW5zXG4gICAgY29sb3JTdGF0dXNXYXJuaW5nQmFja2dyb3VuZDE6ICd2YXIoLS1jb2xvclN0YXR1c1dhcm5pbmdCYWNrZ3JvdW5kMSknLFxuICAgIGNvbG9yU3RhdHVzV2FybmluZ0JhY2tncm91bmQyOiAndmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nQmFja2dyb3VuZDIpJyxcbiAgICBjb2xvclN0YXR1c1dhcm5pbmdCYWNrZ3JvdW5kMzogJ3ZhcigtLWNvbG9yU3RhdHVzV2FybmluZ0JhY2tncm91bmQzKScsXG4gICAgY29sb3JTdGF0dXNXYXJuaW5nRm9yZWdyb3VuZDE6ICd2YXIoLS1jb2xvclN0YXR1c1dhcm5pbmdGb3JlZ3JvdW5kMSknLFxuICAgIGNvbG9yU3RhdHVzV2FybmluZ0ZvcmVncm91bmQyOiAndmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nRm9yZWdyb3VuZDIpJyxcbiAgICBjb2xvclN0YXR1c1dhcm5pbmdGb3JlZ3JvdW5kMzogJ3ZhcigtLWNvbG9yU3RhdHVzV2FybmluZ0ZvcmVncm91bmQzKScsXG4gICAgY29sb3JTdGF0dXNXYXJuaW5nRm9yZWdyb3VuZEludmVydGVkOiAndmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nRm9yZWdyb3VuZEludmVydGVkKScsXG4gICAgY29sb3JTdGF0dXNXYXJuaW5nQm9yZGVyQWN0aXZlOiAndmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JTdGF0dXNXYXJuaW5nQm9yZGVyMTogJ3ZhcigtLWNvbG9yU3RhdHVzV2FybmluZ0JvcmRlcjEpJyxcbiAgICBjb2xvclN0YXR1c1dhcm5pbmdCb3JkZXIyOiAndmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nQm9yZGVyMiknLFxuICAgIC8vIENvbG9yIHN0YXR1cyBkYW5nZXIgdG9rZW5zXG4gICAgY29sb3JTdGF0dXNEYW5nZXJCYWNrZ3JvdW5kMTogJ3ZhcigtLWNvbG9yU3RhdHVzRGFuZ2VyQmFja2dyb3VuZDEpJyxcbiAgICBjb2xvclN0YXR1c0RhbmdlckJhY2tncm91bmQyOiAndmFyKC0tY29sb3JTdGF0dXNEYW5nZXJCYWNrZ3JvdW5kMiknLFxuICAgIGNvbG9yU3RhdHVzRGFuZ2VyQmFja2dyb3VuZDM6ICd2YXIoLS1jb2xvclN0YXR1c0RhbmdlckJhY2tncm91bmQzKScsXG4gICAgY29sb3JTdGF0dXNEYW5nZXJCYWNrZ3JvdW5kM0hvdmVyOiAndmFyKC0tY29sb3JTdGF0dXNEYW5nZXJCYWNrZ3JvdW5kM0hvdmVyKScsXG4gICAgY29sb3JTdGF0dXNEYW5nZXJCYWNrZ3JvdW5kM1ByZXNzZWQ6ICd2YXIoLS1jb2xvclN0YXR1c0RhbmdlckJhY2tncm91bmQzUHJlc3NlZCknLFxuICAgIGNvbG9yU3RhdHVzRGFuZ2VyRm9yZWdyb3VuZDE6ICd2YXIoLS1jb2xvclN0YXR1c0RhbmdlckZvcmVncm91bmQxKScsXG4gICAgY29sb3JTdGF0dXNEYW5nZXJGb3JlZ3JvdW5kMjogJ3ZhcigtLWNvbG9yU3RhdHVzRGFuZ2VyRm9yZWdyb3VuZDIpJyxcbiAgICBjb2xvclN0YXR1c0RhbmdlckZvcmVncm91bmQzOiAndmFyKC0tY29sb3JTdGF0dXNEYW5nZXJGb3JlZ3JvdW5kMyknLFxuICAgIGNvbG9yU3RhdHVzRGFuZ2VyRm9yZWdyb3VuZEludmVydGVkOiAndmFyKC0tY29sb3JTdGF0dXNEYW5nZXJGb3JlZ3JvdW5kSW52ZXJ0ZWQpJyxcbiAgICBjb2xvclN0YXR1c0RhbmdlckJvcmRlckFjdGl2ZTogJ3ZhcigtLWNvbG9yU3RhdHVzRGFuZ2VyQm9yZGVyQWN0aXZlKScsXG4gICAgY29sb3JTdGF0dXNEYW5nZXJCb3JkZXIxOiAndmFyKC0tY29sb3JTdGF0dXNEYW5nZXJCb3JkZXIxKScsXG4gICAgY29sb3JTdGF0dXNEYW5nZXJCb3JkZXIyOiAndmFyKC0tY29sb3JTdGF0dXNEYW5nZXJCb3JkZXIyKScsXG4gICAgLy8gQm9yZGVyIHJhZGl1cyB0b2tlbnNcbiAgICBib3JkZXJSYWRpdXNOb25lOiAndmFyKC0tYm9yZGVyUmFkaXVzTm9uZSknLFxuICAgIGJvcmRlclJhZGl1c1NtYWxsOiAndmFyKC0tYm9yZGVyUmFkaXVzU21hbGwpJyxcbiAgICBib3JkZXJSYWRpdXNNZWRpdW06ICd2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pJyxcbiAgICBib3JkZXJSYWRpdXNMYXJnZTogJ3ZhcigtLWJvcmRlclJhZGl1c0xhcmdlKScsXG4gICAgYm9yZGVyUmFkaXVzWExhcmdlOiAndmFyKC0tYm9yZGVyUmFkaXVzWExhcmdlKScsXG4gICAgYm9yZGVyUmFkaXVzQ2lyY3VsYXI6ICd2YXIoLS1ib3JkZXJSYWRpdXNDaXJjdWxhciknLFxuICAgIC8vIEZvbnQgZmFtaWx5IHRva2Vuc1xuICAgIGZvbnRGYW1pbHlCYXNlOiAndmFyKC0tZm9udEZhbWlseUJhc2UpJyxcbiAgICBmb250RmFtaWx5TW9ub3NwYWNlOiAndmFyKC0tZm9udEZhbWlseU1vbm9zcGFjZSknLFxuICAgIGZvbnRGYW1pbHlOdW1lcmljOiAndmFyKC0tZm9udEZhbWlseU51bWVyaWMpJyxcbiAgICAvLyBGb250IHNpemUgdG9rZW5zXG4gICAgZm9udFNpemVCYXNlMTAwOiAndmFyKC0tZm9udFNpemVCYXNlMTAwKScsXG4gICAgZm9udFNpemVCYXNlMjAwOiAndmFyKC0tZm9udFNpemVCYXNlMjAwKScsXG4gICAgZm9udFNpemVCYXNlMzAwOiAndmFyKC0tZm9udFNpemVCYXNlMzAwKScsXG4gICAgZm9udFNpemVCYXNlNDAwOiAndmFyKC0tZm9udFNpemVCYXNlNDAwKScsXG4gICAgZm9udFNpemVCYXNlNTAwOiAndmFyKC0tZm9udFNpemVCYXNlNTAwKScsXG4gICAgZm9udFNpemVCYXNlNjAwOiAndmFyKC0tZm9udFNpemVCYXNlNjAwKScsXG4gICAgZm9udFNpemVIZXJvNzAwOiAndmFyKC0tZm9udFNpemVIZXJvNzAwKScsXG4gICAgZm9udFNpemVIZXJvODAwOiAndmFyKC0tZm9udFNpemVIZXJvODAwKScsXG4gICAgZm9udFNpemVIZXJvOTAwOiAndmFyKC0tZm9udFNpemVIZXJvOTAwKScsXG4gICAgZm9udFNpemVIZXJvMTAwMDogJ3ZhcigtLWZvbnRTaXplSGVybzEwMDApJyxcbiAgICAvLyBGb250IHdlaWdodCB0b2tlbnNcbiAgICBmb250V2VpZ2h0UmVndWxhcjogJ3ZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKScsXG4gICAgZm9udFdlaWdodE1lZGl1bTogJ3ZhcigtLWZvbnRXZWlnaHRNZWRpdW0pJyxcbiAgICBmb250V2VpZ2h0U2VtaWJvbGQ6ICd2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpJyxcbiAgICBmb250V2VpZ2h0Qm9sZDogJ3ZhcigtLWZvbnRXZWlnaHRCb2xkKScsXG4gICAgLy8gTGluZSBoZWlnaHQgdG9rZW5zXG4gICAgbGluZUhlaWdodEJhc2UxMDA6ICd2YXIoLS1saW5lSGVpZ2h0QmFzZTEwMCknLFxuICAgIGxpbmVIZWlnaHRCYXNlMjAwOiAndmFyKC0tbGluZUhlaWdodEJhc2UyMDApJyxcbiAgICBsaW5lSGVpZ2h0QmFzZTMwMDogJ3ZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKScsXG4gICAgbGluZUhlaWdodEJhc2U0MDA6ICd2YXIoLS1saW5lSGVpZ2h0QmFzZTQwMCknLFxuICAgIGxpbmVIZWlnaHRCYXNlNTAwOiAndmFyKC0tbGluZUhlaWdodEJhc2U1MDApJyxcbiAgICBsaW5lSGVpZ2h0QmFzZTYwMDogJ3ZhcigtLWxpbmVIZWlnaHRCYXNlNjAwKScsXG4gICAgbGluZUhlaWdodEhlcm83MDA6ICd2YXIoLS1saW5lSGVpZ2h0SGVybzcwMCknLFxuICAgIGxpbmVIZWlnaHRIZXJvODAwOiAndmFyKC0tbGluZUhlaWdodEhlcm84MDApJyxcbiAgICBsaW5lSGVpZ2h0SGVybzkwMDogJ3ZhcigtLWxpbmVIZWlnaHRIZXJvOTAwKScsXG4gICAgbGluZUhlaWdodEhlcm8xMDAwOiAndmFyKC0tbGluZUhlaWdodEhlcm8xMDAwKScsXG4gICAgLy8gU2hhZG93IHRva2Vuc1xuICAgIHNoYWRvdzI6ICd2YXIoLS1zaGFkb3cyKScsXG4gICAgc2hhZG93NDogJ3ZhcigtLXNoYWRvdzQpJyxcbiAgICBzaGFkb3c4OiAndmFyKC0tc2hhZG93OCknLFxuICAgIHNoYWRvdzE2OiAndmFyKC0tc2hhZG93MTYpJyxcbiAgICBzaGFkb3cyODogJ3ZhcigtLXNoYWRvdzI4KScsXG4gICAgc2hhZG93NjQ6ICd2YXIoLS1zaGFkb3c2NCknLFxuICAgIC8vIFNoYWRvdyBicmFuZCB0b2tlbnNcbiAgICBzaGFkb3cyQnJhbmQ6ICd2YXIoLS1zaGFkb3cyQnJhbmQpJyxcbiAgICBzaGFkb3c0QnJhbmQ6ICd2YXIoLS1zaGFkb3c0QnJhbmQpJyxcbiAgICBzaGFkb3c4QnJhbmQ6ICd2YXIoLS1zaGFkb3c4QnJhbmQpJyxcbiAgICBzaGFkb3cxNkJyYW5kOiAndmFyKC0tc2hhZG93MTZCcmFuZCknLFxuICAgIHNoYWRvdzI4QnJhbmQ6ICd2YXIoLS1zaGFkb3cyOEJyYW5kKScsXG4gICAgc2hhZG93NjRCcmFuZDogJ3ZhcigtLXNoYWRvdzY0QnJhbmQpJyxcbiAgICAvLyBTdHJva2Ugd2lkdGggdG9rZW5zXG4gICAgc3Ryb2tlV2lkdGhUaGluOiAndmFyKC0tc3Ryb2tlV2lkdGhUaGluKScsXG4gICAgc3Ryb2tlV2lkdGhUaGljazogJ3ZhcigtLXN0cm9rZVdpZHRoVGhpY2spJyxcbiAgICBzdHJva2VXaWR0aFRoaWNrZXI6ICd2YXIoLS1zdHJva2VXaWR0aFRoaWNrZXIpJyxcbiAgICBzdHJva2VXaWR0aFRoaWNrZXN0OiAndmFyKC0tc3Ryb2tlV2lkdGhUaGlja2VzdCknLFxuICAgIC8vIFNwYWNpbmdzXG4gICAgc3BhY2luZ0hvcml6b250YWxOb25lOiAndmFyKC0tc3BhY2luZ0hvcml6b250YWxOb25lKScsXG4gICAgc3BhY2luZ0hvcml6b250YWxYWFM6ICd2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYUyknLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsWFM6ICd2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKScsXG4gICAgc3BhY2luZ0hvcml6b250YWxTTnVkZ2U6ICd2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSknLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsUzogJ3ZhcigtLXNwYWNpbmdIb3Jpem9udGFsUyknLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsTU51ZGdlOiAndmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpJyxcbiAgICBzcGFjaW5nSG9yaXpvbnRhbE06ICd2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pJyxcbiAgICBzcGFjaW5nSG9yaXpvbnRhbEw6ICd2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbEwpJyxcbiAgICBzcGFjaW5nSG9yaXpvbnRhbFhMOiAndmFyKC0tc3BhY2luZ0hvcml6b250YWxYTCknLFxuICAgIHNwYWNpbmdIb3Jpem9udGFsWFhMOiAndmFyKC0tc3BhY2luZ0hvcml6b250YWxYWEwpJyxcbiAgICBzcGFjaW5nSG9yaXpvbnRhbFhYWEw6ICd2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYWEwpJyxcbiAgICBzcGFjaW5nVmVydGljYWxOb25lOiAndmFyKC0tc3BhY2luZ1ZlcnRpY2FsTm9uZSknLFxuICAgIHNwYWNpbmdWZXJ0aWNhbFhYUzogJ3ZhcigtLXNwYWNpbmdWZXJ0aWNhbFhYUyknLFxuICAgIHNwYWNpbmdWZXJ0aWNhbFhTOiAndmFyKC0tc3BhY2luZ1ZlcnRpY2FsWFMpJyxcbiAgICBzcGFjaW5nVmVydGljYWxTTnVkZ2U6ICd2YXIoLS1zcGFjaW5nVmVydGljYWxTTnVkZ2UpJyxcbiAgICBzcGFjaW5nVmVydGljYWxTOiAndmFyKC0tc3BhY2luZ1ZlcnRpY2FsUyknLFxuICAgIHNwYWNpbmdWZXJ0aWNhbE1OdWRnZTogJ3ZhcigtLXNwYWNpbmdWZXJ0aWNhbE1OdWRnZSknLFxuICAgIHNwYWNpbmdWZXJ0aWNhbE06ICd2YXIoLS1zcGFjaW5nVmVydGljYWxNKScsXG4gICAgc3BhY2luZ1ZlcnRpY2FsTDogJ3ZhcigtLXNwYWNpbmdWZXJ0aWNhbEwpJyxcbiAgICBzcGFjaW5nVmVydGljYWxYTDogJ3ZhcigtLXNwYWNpbmdWZXJ0aWNhbFhMKScsXG4gICAgc3BhY2luZ1ZlcnRpY2FsWFhMOiAndmFyKC0tc3BhY2luZ1ZlcnRpY2FsWFhMKScsXG4gICAgc3BhY2luZ1ZlcnRpY2FsWFhYTDogJ3ZhcigtLXNwYWNpbmdWZXJ0aWNhbFhYWEwpJyxcbiAgICAvLyBEdXJhdGlvbnNcbiAgICBkdXJhdGlvblVsdHJhRmFzdDogJ3ZhcigtLWR1cmF0aW9uVWx0cmFGYXN0KScsXG4gICAgZHVyYXRpb25GYXN0ZXI6ICd2YXIoLS1kdXJhdGlvbkZhc3RlciknLFxuICAgIGR1cmF0aW9uRmFzdDogJ3ZhcigtLWR1cmF0aW9uRmFzdCknLFxuICAgIGR1cmF0aW9uTm9ybWFsOiAndmFyKC0tZHVyYXRpb25Ob3JtYWwpJyxcbiAgICBkdXJhdGlvbkdlbnRsZTogJ3ZhcigtLWR1cmF0aW9uR2VudGxlKScsXG4gICAgZHVyYXRpb25TbG93OiAndmFyKC0tZHVyYXRpb25TbG93KScsXG4gICAgZHVyYXRpb25TbG93ZXI6ICd2YXIoLS1kdXJhdGlvblNsb3dlciknLFxuICAgIGR1cmF0aW9uVWx0cmFTbG93OiAndmFyKC0tZHVyYXRpb25VbHRyYVNsb3cpJyxcbiAgICAvLyBDdXJ2ZXNcbiAgICBjdXJ2ZUFjY2VsZXJhdGVNYXg6ICd2YXIoLS1jdXJ2ZUFjY2VsZXJhdGVNYXgpJyxcbiAgICBjdXJ2ZUFjY2VsZXJhdGVNaWQ6ICd2YXIoLS1jdXJ2ZUFjY2VsZXJhdGVNaWQpJyxcbiAgICBjdXJ2ZUFjY2VsZXJhdGVNaW46ICd2YXIoLS1jdXJ2ZUFjY2VsZXJhdGVNaW4pJyxcbiAgICBjdXJ2ZURlY2VsZXJhdGVNYXg6ICd2YXIoLS1jdXJ2ZURlY2VsZXJhdGVNYXgpJyxcbiAgICBjdXJ2ZURlY2VsZXJhdGVNaWQ6ICd2YXIoLS1jdXJ2ZURlY2VsZXJhdGVNaWQpJyxcbiAgICBjdXJ2ZURlY2VsZXJhdGVNaW46ICd2YXIoLS1jdXJ2ZURlY2VsZXJhdGVNaW4pJyxcbiAgICBjdXJ2ZUVhc3lFYXNlTWF4OiAndmFyKC0tY3VydmVFYXN5RWFzZU1heCknLFxuICAgIGN1cnZlRWFzeUVhc2U6ICd2YXIoLS1jdXJ2ZUVhc3lFYXNlKScsXG4gICAgY3VydmVMaW5lYXI6ICd2YXIoLS1jdXJ2ZUxpbmVhciknXG59O1xuIiwiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNoYWRvd1Rva2VucyhhbWJpZW50Q29sb3IsIGtleUNvbG9yLCB0b2tlblN1ZmZpeCA9ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgW2BzaGFkb3cyJHt0b2tlblN1ZmZpeH1gXTogYDAgMCAycHggJHthbWJpZW50Q29sb3J9LCAwIDFweCAycHggJHtrZXlDb2xvcn1gLFxuICAgICAgICBbYHNoYWRvdzQke3Rva2VuU3VmZml4fWBdOiBgMCAwIDJweCAke2FtYmllbnRDb2xvcn0sIDAgMnB4IDRweCAke2tleUNvbG9yfWAsXG4gICAgICAgIFtgc2hhZG93OCR7dG9rZW5TdWZmaXh9YF06IGAwIDAgMnB4ICR7YW1iaWVudENvbG9yfSwgMCA0cHggOHB4ICR7a2V5Q29sb3J9YCxcbiAgICAgICAgW2BzaGFkb3cxNiR7dG9rZW5TdWZmaXh9YF06IGAwIDAgMnB4ICR7YW1iaWVudENvbG9yfSwgMCA4cHggMTZweCAke2tleUNvbG9yfWAsXG4gICAgICAgIFtgc2hhZG93Mjgke3Rva2VuU3VmZml4fWBdOiBgMCAwIDhweCAke2FtYmllbnRDb2xvcn0sIDAgMTRweCAyOHB4ICR7a2V5Q29sb3J9YCxcbiAgICAgICAgW2BzaGFkb3c2NCR7dG9rZW5TdWZmaXh9YF06IGAwIDAgOHB4ICR7YW1iaWVudENvbG9yfSwgMCAzMnB4IDY0cHggJHtrZXlDb2xvcn1gXG4gICAgfTtcbn1cbiIsImltcG9ydCB7IGNvbG9yUGFsZXR0ZVRva2VucywgY29sb3JTdGF0dXNUb2tlbnMgfSBmcm9tICcuLi9hbGlhcy9saWdodENvbG9yUGFsZXR0ZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUNvbG9yVG9rZW5zIH0gZnJvbSAnLi4vYWxpYXMvbGlnaHRDb2xvcic7XG5pbXBvcnQgeyBib3JkZXJSYWRpdXMsIGZvbnRTaXplcywgbGluZUhlaWdodHMsIGZvbnRGYW1pbGllcywgc3Ryb2tlV2lkdGhzLCBmb250V2VpZ2h0cyB9IGZyb20gJy4uL2dsb2JhbC9pbmRleCc7XG5pbXBvcnQgeyBjcmVhdGVTaGFkb3dUb2tlbnMgfSBmcm9tICcuL3NoYWRvd3MnO1xuaW1wb3J0IHsgZHVyYXRpb25zIH0gZnJvbSAnLi4vZ2xvYmFsL2R1cmF0aW9ucyc7XG5pbXBvcnQgeyBjdXJ2ZXMgfSBmcm9tICcuLi9nbG9iYWwvY3VydmVzJztcbmltcG9ydCB7IGhvcml6b250YWxTcGFjaW5ncywgdmVydGljYWxTcGFjaW5ncyB9IGZyb20gJy4uL2dsb2JhbC9zcGFjaW5ncyc7XG5leHBvcnQgY29uc3QgY3JlYXRlTGlnaHRUaGVtZSA9IChicmFuZCk9PntcbiAgICBjb25zdCBjb2xvclRva2VucyA9IGdlbmVyYXRlQ29sb3JUb2tlbnMoYnJhbmQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmJvcmRlclJhZGl1cyxcbiAgICAgICAgLi4uZm9udFNpemVzLFxuICAgICAgICAuLi5saW5lSGVpZ2h0cyxcbiAgICAgICAgLi4uZm9udEZhbWlsaWVzLFxuICAgICAgICAuLi5mb250V2VpZ2h0cyxcbiAgICAgICAgLi4uc3Ryb2tlV2lkdGhzLFxuICAgICAgICAuLi5ob3Jpem9udGFsU3BhY2luZ3MsXG4gICAgICAgIC4uLnZlcnRpY2FsU3BhY2luZ3MsXG4gICAgICAgIC4uLmR1cmF0aW9ucyxcbiAgICAgICAgLi4uY3VydmVzLFxuICAgICAgICAuLi5jb2xvclRva2VucyxcbiAgICAgICAgLi4uY29sb3JQYWxldHRlVG9rZW5zLFxuICAgICAgICAuLi5jb2xvclN0YXR1c1Rva2VucyxcbiAgICAgICAgLi4uY3JlYXRlU2hhZG93VG9rZW5zKGNvbG9yVG9rZW5zLmNvbG9yTmV1dHJhbFNoYWRvd0FtYmllbnQsIGNvbG9yVG9rZW5zLmNvbG9yTmV1dHJhbFNoYWRvd0tleSksXG4gICAgICAgIC4uLmNyZWF0ZVNoYWRvd1Rva2Vucyhjb2xvclRva2Vucy5jb2xvckJyYW5kU2hhZG93QW1iaWVudCwgY29sb3JUb2tlbnMuY29sb3JCcmFuZFNoYWRvd0tleSwgJ0JyYW5kJylcbiAgICB9O1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9jb3JlJztcbmltcG9ydCB7IHVzZVJlbmRlcmVyX3Vuc3RhYmxlIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zLCB0eXBvZ3JhcGh5U3R5bGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCBmbHVlbnRQcm92aWRlckNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktRmx1ZW50UHJvdmlkZXInXG59O1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgRGUzcHpxOiBcImZ4dWd3NHJcIixcbiAgICBmc293NmY6IFtcImYxbzcwMGF2XCIsIFwiZmVzM3RjelwiXSxcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZraGo1MDhcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCZzk2Z3dwOiBcImYxaTNpdW1pXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjE5bjBlNXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiLCBcIi5meHVndzRye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpO31cIiwgXCIuZjFvNzAwYXZ7dGV4dC1hbGlnbjpsZWZ0O31cIiwgXCIuZmVzM3Rjent0ZXh0LWFsaWduOnJpZ2h0O31cIiwgXCIuZms2Zm91Y3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5QmFzZSk7fVwiLCBcIi5ma2hqNTA4e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO31cIiwgXCIuZmlnc29rNntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7fVwiLCBcIi5mMWkzaXVtaXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7fVwiXVxufSk7XG4vKiogQXBwbGllcyBzdHlsZSBjbGFzc25hbWVzIHRvIHNsb3RzICovXG5leHBvcnQgY29uc3QgdXNlRmx1ZW50UHJvdmlkZXJTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3QgcmVuZGVyZXIgPSB1c2VSZW5kZXJlcl91bnN0YWJsZSgpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoe1xuICAgIGRpcjogc3RhdGUuZGlyLFxuICAgIHJlbmRlcmVyXG4gIH0pO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhmbHVlbnRQcm92aWRlckNsYXNzTmFtZXMucm9vdCwgc3RhdGUudGhlbWVDbGFzc05hbWUsIHN0eWxlcy5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VGbHVlbnRQcm92aWRlclN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0IHsgdXNlSWQsIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNTU1J1bGVGcm9tVGhlbWUgfSBmcm9tICcuL2NyZWF0ZUNTU1J1bGVGcm9tVGhlbWUnO1xuaW1wb3J0IHsgZmx1ZW50UHJvdmlkZXJDbGFzc05hbWVzIH0gZnJvbSAnLi91c2VGbHVlbnRQcm92aWRlclN0eWxlcy5zdHlsZXMnO1xuLy8gU3RyaW5nIGNvbmNhdGVuYXRpb24gaXMgdXNlZCB0byBwcmV2ZW50IGJ1bmRsZXJzIHRvIGNvbXBsYWluIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgUmVhY3RcbmNvbnN0IHVzZUluc2VydGlvbkVmZmVjdCA9IFJlYWN0Wyd1c2VJbnNlcnRpb24nICsgJ0VmZmVjdCddID8gUmVhY3RbJ3VzZUluc2VydGlvbicgKyAnRWZmZWN0J10gOiB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0O1xuY29uc3QgY3JlYXRlU3R5bGVUYWcgPSAodGFyZ2V0LCBlbGVtZW50QXR0cmlidXRlcyk9PntcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCB0YWcgPSB0YXJnZXQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBPYmplY3Qua2V5cyhlbGVtZW50QXR0cmlidXRlcykuZm9yRWFjaCgoYXR0ck5hbWUpPT57XG4gICAgICAgIHRhZy5zZXRBdHRyaWJ1dGUoYXR0ck5hbWUsIGVsZW1lbnRBdHRyaWJ1dGVzW2F0dHJOYW1lXSk7XG4gICAgfSk7XG4gICAgdGFyZ2V0LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICByZXR1cm4gdGFnO1xufTtcbmNvbnN0IGluc2VydFNoZWV0ID0gKHRhZywgcnVsZSk9PntcbiAgICBjb25zdCBzaGVldCA9IHRhZy5zaGVldDtcbiAgICBpZiAoc2hlZXQpIHtcbiAgICAgICAgaWYgKHNoZWV0LmNzc1J1bGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoMCk7XG4gICAgICAgIH1cbiAgICAgICAgc2hlZXQuaW5zZXJ0UnVsZShydWxlLCAwKTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5lcnJvcignRmx1ZW50UHJvdmlkZXI6IE5vIHNoZWV0IGF2YWlsYWJsZSBvbiBzdHlsZVRhZywgc3R5bGVzIHdpbGwgbm90IGJlIGluc2VydGVkIGludG8gRE9NLicpO1xuICAgIH1cbn07XG4vKipcbiAqIFdyaXRlcyBhIHRoZW1lIGFzIGNzcyB2YXJpYWJsZXMgaW4gYSBzdHlsZSB0YWcgb24gdGhlIHByb3ZpZGVkIHRhcmdldERvY3VtZW50IGFzIGEgcnVsZSBhcHBsaWVkIHRvIGEgQ1NTIGNsYXNzXG4gKiBAaW50ZXJuYWxcbiAqIEByZXR1cm5zIENTUyBjbGFzcyB0byBhcHBseSB0aGUgcnVsZVxuICovIGV4cG9ydCBjb25zdCB1c2VGbHVlbnRQcm92aWRlclRoZW1lU3R5bGVUYWcgPSAob3B0aW9ucyk9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IHsgdGFyZ2V0RG9jdW1lbnQsIHRoZW1lLCByZW5kZXJlckF0dHJpYnV0ZXMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3Qgc3R5bGVUYWcgPSBSZWFjdC51c2VSZWYoKTtcbiAgICBjb25zdCBzdHlsZVRhZ0lkID0gdXNlSWQoZmx1ZW50UHJvdmlkZXJDbGFzc05hbWVzLnJvb3QpO1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudEF0dHJpYnV0ZXMgPSByZW5kZXJlckF0dHJpYnV0ZXM7XG4gICAgY29uc3QgcnVsZSA9IFJlYWN0LnVzZU1lbW8oKCk9PmNyZWF0ZUNTU1J1bGVGcm9tVGhlbWUoYC4ke3N0eWxlVGFnSWR9YCwgdGhlbWUpLCBbXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBzdHlsZVRhZ0lkXG4gICAgXSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgIFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgICAgIC8vIEhlYWRzIHVwIVxuICAgICAgICAgICAgLy8gLnVzZU1lbW8oKSBpcyB1c2VkIGJlY2F1c2UgaXQgaXMgY2FsbGVkIGR1cmluZyByZW5kZXIgYW5kIERPTSBmb3IgX2N1cnJlbnRfIGNvbXBvbmVudCBpcyBub3QgbW91bnRlZCB5ZXQuIEFsc28sXG4gICAgICAgICAgICAvLyB0aGlzIGFsbG93cyB0byBkbyBjaGVja3Mgd2l0aCBzdHJpY3QgbW9kZSBlbmFibGVkIGFzIC51c2VFZmZlY3QoKSB3aWxsIGJlIGNhbGxlZCB3aXRoIGluY3JlbWVudGVkIElEcyBiZWNhdXNlXG4gICAgICAgICAgICAvLyBvZiBkb3VibGUgcmVuZGVyLlxuICAgICAgICAgICAgaWYgKHRhcmdldERvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXJTZWxlY3RvciA9IGAuJHtmbHVlbnRQcm92aWRlckNsYXNzTmFtZXMucm9vdH0uJHtzdHlsZVRhZ0lkfWA7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXJFbGVtZW50cyA9IHRhcmdldERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocHJvdmlkZXJTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgLy8gSW4gU1NSLCB3ZSB3aWxsIGhhdmUgRE9NIHVwZnJvbnQuIFRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcyB0aGUgY2hlY2sgb24gbmVzdGVkIHN0eWxlIHRhZyBpcyBwZXJmb3JtZWRcbiAgICAgICAgICAgICAgICBjb25zdCBpc1NTUiA9IHRhcmdldERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCR7cHJvdmlkZXJTZWxlY3Rvcn0gPiBzdHlsZVtpZD1cIiR7c3R5bGVUYWdJZH1cIl1gKSAhPT0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50c0NvdW50ID0gaXNTU1IgPyAxIDogMDtcbiAgICAgICAgICAgICAgICBpZiAocHJvdmlkZXJFbGVtZW50cy5sZW5ndGggPiBlbGVtZW50c0NvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoW1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0BmbHVlbnR1aS9yZWFjdC1wcm92aWRlcjogVGhlcmUgYXJlIGNvbmZsaWN0aW5nIGlkcyBpbiB5b3VyIERPTS4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdGhhdCB5b3UgY29uZmlndXJlZCB5b3VyIGFwcGxpY2F0aW9uIHByb3Blcmx5LicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnXFxuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdcXG4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbmZpZ3VyYXRpb24gZ3VpZGU6IGh0dHBzOi8vYWthLm1zL2ZsdWVudHVpLWNvbmZsaWN0aW5nLWlkcydcbiAgICAgICAgICAgICAgICAgICAgXS5qb2luKCcgJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgICB9LCBbXSk7XG4gICAgfVxuICAgIHVzZUhhbmRsZVNTUlN0eWxlRWxlbWVudHModGFyZ2V0RG9jdW1lbnQsIHN0eWxlVGFnSWQpO1xuICAgIHVzZUluc2VydGlvbkVmZmVjdCgoKT0+e1xuICAgICAgICAvLyBUaGUgc3R5bGUgZWxlbWVudCBjb3VsZCBhbHJlYWR5IGhhdmUgYmVlbiBjcmVhdGVkIGR1cmluZyBTU1IgLSBubyBuZWVkIHRvIHJlY3JlYXRlIGl0XG4gICAgICAgIGNvbnN0IHNzclN0eWxlRWxlbWVudCA9IHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHlsZVRhZ0lkKTtcbiAgICAgICAgaWYgKHNzclN0eWxlRWxlbWVudCkge1xuICAgICAgICAgICAgc3R5bGVUYWcuY3VycmVudCA9IHNzclN0eWxlRWxlbWVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlVGFnLmN1cnJlbnQgPSBjcmVhdGVTdHlsZVRhZyh0YXJnZXREb2N1bWVudCwge1xuICAgICAgICAgICAgICAgIC4uLnN0eWxlRWxlbWVudEF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaWQ6IHN0eWxlVGFnSWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHN0eWxlVGFnLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpbnNlcnRTaGVldChzdHlsZVRhZy5jdXJyZW50LCBydWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIHZhciBfc3R5bGVUYWdfY3VycmVudDtcbiAgICAgICAgICAgIChfc3R5bGVUYWdfY3VycmVudCA9IHN0eWxlVGFnLmN1cnJlbnQpID09PSBudWxsIHx8IF9zdHlsZVRhZ19jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc3R5bGVUYWdfY3VycmVudC5yZW1vdmUoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHN0eWxlVGFnSWQsXG4gICAgICAgIHRhcmdldERvY3VtZW50LFxuICAgICAgICBydWxlLFxuICAgICAgICBzdHlsZUVsZW1lbnRBdHRyaWJ1dGVzXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3R5bGVUYWdJZCxcbiAgICAgICAgcnVsZVxuICAgIH07XG59O1xuZnVuY3Rpb24gdXNlSGFuZGxlU1NSU3R5bGVFbGVtZW50cyh0YXJnZXREb2N1bWVudCwgc3R5bGVUYWdJZCkge1xuICAgIC8vIFVzaW5nIGEgc3RhdGUgZmFjdG9yeSBzbyB0aGF0IHRoaXMgbG9naWMgb25seSBydW5zIG9uY2UgcGVyIHJlbmRlclxuICAgIC8vIEVhY2ggRmx1ZW50UHJvdmlkZXIgY2FuIGNyZWF0ZSBpdHMgb3duIHN0eWxlIGVsZW1lbnQgZHVyaW5nIFNTUiBhcyBhIHNsb3RcbiAgICAvLyBNb3ZlcyBhbGwgdGhlbWUgc3R5bGUgZWxlbWVudHMgdG8gZG9jdW1lbnQgaGVhZCBkdXJpbmcgcmVuZGVyIHRvIGF2b2lkIGh5ZHJhdGlvbiBlcnJvcnMuXG4gICAgLy8gU2hvdWxkIGJlIHN0cmljdCBtb2RlIHNhZmUgc2luY2UgdGhlIGxvZ2ljIGlzIGlkZW1wb3RlbnQuXG4gICAgUmVhY3QudXNlU3RhdGUoKCk9PntcbiAgICAgICAgaWYgKCF0YXJnZXREb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRoZW1lU3R5bGVFbGVtZW50ID0gdGFyZ2V0RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3R5bGVUYWdJZCk7XG4gICAgICAgIGlmICh0aGVtZVN0eWxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQuaGVhZC5hcHBlbmQodGhlbWVTdHlsZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iLCJpbXBvcnQgeyB1c2VSZW5kZXJlcl91bnN0YWJsZSB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHVzZUZvY3VzVmlzaWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IFRoZW1lQ29udGV4dF91bnN0YWJsZSBhcyBUaGVtZUNvbnRleHQsIHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQsIHVzZU92ZXJyaWRlc191bnN0YWJsZSBhcyB1c2VPdmVycmlkZXMsIEN1c3RvbVN0eWxlSG9va3NDb250ZXh0X3Vuc3RhYmxlIGFzIEN1c3RvbVN0eWxlSG9va3NDb250ZXh0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHVzZU1lcmdlZFJlZnMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZsdWVudFByb3ZpZGVyVGhlbWVTdHlsZVRhZyB9IGZyb20gJy4vdXNlRmx1ZW50UHJvdmlkZXJUaGVtZVN0eWxlVGFnJztcbi8vIE1lb21pemluZyBlbXB0eSBvYmplY3RzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHJlcmVuZGVycy5cbmNvbnN0IERFRkFVTFRfU1RZTEVfSE9PS1MgPSB7fTtcbmNvbnN0IERFRkFVTFRfUkVOREVSRVJfQVRUUklCVVRFUyA9IHt9O1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBGbHVlbnRQcm92aWRlci5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VGbHVlbnRQcm92aWRlclN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyRmx1ZW50UHJvdmlkZXJfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIEZsdWVudFByb3ZpZGVyXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgRmx1ZW50UHJvdmlkZXJcbiAqLyBleHBvcnQgY29uc3QgdXNlRmx1ZW50UHJvdmlkZXJfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IHBhcmVudENvbnRleHQgPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBwYXJlbnRUaGVtZSA9IHVzZVRoZW1lKCk7XG4gICAgY29uc3QgcGFyZW50T3ZlcnJpZGVzID0gdXNlT3ZlcnJpZGVzKCk7XG4gICAgY29uc3QgcGFyZW50Q3VzdG9tU3R5bGVIb29rcyA9IFJlYWN0LnVzZUNvbnRleHQoQ3VzdG9tU3R5bGVIb29rc0NvbnRleHQpIHx8IERFRkFVTFRfU1RZTEVfSE9PS1M7XG4gICAgLyoqXG4gICAqIFRPRE86IGFkZCBtZXJnZSBmdW5jdGlvbnMgdG8gXCJkaXJcIiBtZXJnZSxcbiAgICogbmVzdGluZyBwcm92aWRlcnMgd2l0aCB0aGUgc2FtZSBcImRpclwiIHNob3VsZCBub3QgYWRkIGFkZGl0aW9uYWwgYXR0cmlidXRlcyB0byBET01cbiAgICogc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvYmxvYi8wZGM3NGExOWYzYWE1YTA1ODIyNGMyMDUwNTAxNmZiZGI4NGRiMTcyL3BhY2thZ2VzL2ZsdWVudHVpL3JlYWN0LW5vcnRoc3Rhci9zcmMvdXRpbHMvbWVyZ2VQcm92aWRlckNvbnRleHRzLnRzI0w4OS1MOTNcbiAgICovIGNvbnN0IHsgYXBwbHlTdHlsZXNUb1BvcnRhbHMgPSB0cnVlLCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY3VzdG9tU3R5bGVIb29rc191bnN0YWJsZSwgZGlyID0gcGFyZW50Q29udGV4dC5kaXIsIHRhcmdldERvY3VtZW50ID0gcGFyZW50Q29udGV4dC50YXJnZXREb2N1bWVudCwgdGhlbWUsIG92ZXJyaWRlc191bnN0YWJsZTogb3ZlcnJpZGVzID0ge30gfSA9IHByb3BzO1xuICAgIGNvbnN0IG1lcmdlZFRoZW1lID0gc2hhbGxvd01lcmdlKHBhcmVudFRoZW1lLCB0aGVtZSk7XG4gICAgY29uc3QgbWVyZ2VkT3ZlcnJpZGVzID0gc2hhbGxvd01lcmdlKHBhcmVudE92ZXJyaWRlcywgb3ZlcnJpZGVzKTtcbiAgICBjb25zdCBtZXJnZWRDdXN0b21TdHlsZUhvb2tzID0gc2hhbGxvd01lcmdlKHBhcmVudEN1c3RvbVN0eWxlSG9va3MsIGN1c3RvbVN0eWxlSG9va3NfdW5zdGFibGUpO1xuICAgIGNvbnN0IHJlbmRlcmVyID0gdXNlUmVuZGVyZXJfdW5zdGFibGUoKTtcbiAgICB2YXIgX3JlbmRlcmVyX3N0eWxlRWxlbWVudEF0dHJpYnV0ZXM7XG4gICAgY29uc3QgeyBzdHlsZVRhZ0lkLCBydWxlIH0gPSB1c2VGbHVlbnRQcm92aWRlclRoZW1lU3R5bGVUYWcoe1xuICAgICAgICB0aGVtZTogbWVyZ2VkVGhlbWUsXG4gICAgICAgIHRhcmdldERvY3VtZW50LFxuICAgICAgICByZW5kZXJlckF0dHJpYnV0ZXM6IChfcmVuZGVyZXJfc3R5bGVFbGVtZW50QXR0cmlidXRlcyA9IHJlbmRlcmVyLnN0eWxlRWxlbWVudEF0dHJpYnV0ZXMpICE9PSBudWxsICYmIF9yZW5kZXJlcl9zdHlsZUVsZW1lbnRBdHRyaWJ1dGVzICE9PSB2b2lkIDAgPyBfcmVuZGVyZXJfc3R5bGVFbGVtZW50QXR0cmlidXRlcyA6IERFRkFVTFRfUkVOREVSRVJfQVRUUklCVVRFU1xuICAgIH0pO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgICAgIGlmIChtZXJnZWRUaGVtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oW1xuICAgICAgICAgICAgICAgICAgICAnQGZsdWVudHVpL3JlYWN0LXByb3ZpZGVyOiBGbHVlbnRQcm92aWRlciBkb2VzIG5vdCBoYXZlIHlvdXIgXCJ0aGVtZVwiIGRlZmluZWQuJyxcbiAgICAgICAgICAgICAgICAgICAgXCJNYWtlIHN1cmUgdGhhdCB5b3VyIHRvcC1sZXZlbCBGbHVlbnRQcm92aWRlciBoYXMgc2V0IGEgYHRoZW1lYCBwcm9wIG9yIHlvdSdyZSBzZXR0aW5nIHRoZSB0aGVtZSBpbiB5b3VyIGNoaWxkIEZsdWVudFByb3ZpZGVyLlwiXG4gICAgICAgICAgICAgICAgXS5qb2luKCcgJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBwbHlTdHlsZXNUb1BvcnRhbHMsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAgICAgY3VzdG9tU3R5bGVIb29rc191bnN0YWJsZTogbWVyZ2VkQ3VzdG9tU3R5bGVIb29rcyxcbiAgICAgICAgZGlyLFxuICAgICAgICB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgdGhlbWU6IG1lcmdlZFRoZW1lLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgICAgIG92ZXJyaWRlc191bnN0YWJsZTogbWVyZ2VkT3ZlcnJpZGVzLFxuICAgICAgICB0aGVtZUNsYXNzTmFtZTogc3R5bGVUYWdJZCxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIHVzZUZvY3VzVmlzaWJsZSh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBzZXJ2ZXJTdHlsZVByb3BzOiB7XG4gICAgICAgICAgICBjc3NSdWxlOiBydWxlLFxuICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgIC4uLnJlbmRlcmVyLnN0eWxlRWxlbWVudEF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgaWQ6IHN0eWxlVGFnSWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59O1xuZnVuY3Rpb24gc2hhbGxvd01lcmdlKGEsIGIpIHtcbiAgICAvLyBNZXJnZSBpbXBhY3RzIHBlcmY6IHdlIHNob3VsZCBsaWtlIHRvIGF2b2lkIGl0IGlmIGl0J3MgcG9zc2libGVcbiAgICBpZiAoYSAmJiBiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgLi4uYlxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoYSkge1xuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG4gICAgcmV0dXJuIGI7XG59XG5mdW5jdGlvbiB1c2VUaGVtZSgpIHtcbiAgICByZXR1cm4gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUZsdWVudFByb3ZpZGVyQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSkge1xuICAgIGNvbnN0IHsgYXBwbHlTdHlsZXNUb1BvcnRhbHMsIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBjdXN0b21TdHlsZUhvb2tzX3Vuc3RhYmxlLCBkaXIsIHJvb3QsIHRhcmdldERvY3VtZW50LCB0aGVtZSwgdGhlbWVDbGFzc05hbWUsIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBvdmVycmlkZXNfdW5zdGFibGUgfSA9IHN0YXRlO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gUmVhY3QudXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgIHRhcmdldERvY3VtZW50XG4gICAgICAgIH0pLCBbXG4gICAgICAgIGRpcixcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICAvLyBcIlRvb2x0aXBcIiBjb21wb25lbnQgbXV0YXRlcyBhbiBvYmplY3QgaW4gdGhpcyBjb250ZXh0LCBpbnN0YW5jZSBzaG91bGQgYmUgc3RhYmxlXG4gICAgY29uc3QgW3Rvb2x0aXBdID0gUmVhY3QudXNlU3RhdGUoKCk9Pih7fSkpO1xuICAgIGNvbnN0IGljb25EaXJlY3Rpb24gPSBSZWFjdC51c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgdGV4dERpcmVjdGlvbjogZGlyXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGRpclxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAgICAgY3VzdG9tU3R5bGVIb29rc191bnN0YWJsZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICBvdmVycmlkZXNfdW5zdGFibGUsXG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICB0ZXh0RGlyZWN0aW9uOiBkaXIsXG4gICAgICAgIGljb25EaXJlY3Rpb24sXG4gICAgICAgIHRvb2x0aXAsXG4gICAgICAgIHRoZW1lLFxuICAgICAgICB0aGVtZUNsYXNzTmFtZTogYXBwbHlTdHlsZXNUb1BvcnRhbHMgPyByb290LmNsYXNzTmFtZSA6IHRoZW1lQ2xhc3NOYW1lXG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlckZsdWVudFByb3ZpZGVyX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJGbHVlbnRQcm92aWRlcic7XG5pbXBvcnQgeyB1c2VGbHVlbnRQcm92aWRlcl91bnN0YWJsZSB9IGZyb20gJy4vdXNlRmx1ZW50UHJvdmlkZXInO1xuaW1wb3J0IHsgdXNlRmx1ZW50UHJvdmlkZXJTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZUZsdWVudFByb3ZpZGVyU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VGbHVlbnRQcm92aWRlckNvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZUZsdWVudFByb3ZpZGVyQ29udGV4dFZhbHVlcyc7XG5leHBvcnQgY29uc3QgRmx1ZW50UHJvdmlkZXIgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VGbHVlbnRQcm92aWRlcl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VGbHVlbnRQcm92aWRlclN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgY29uc3QgY29udGV4dFZhbHVlcyA9IHVzZUZsdWVudFByb3ZpZGVyQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlckZsdWVudFByb3ZpZGVyX3Vuc3RhYmxlKHN0YXRlLCBjb250ZXh0VmFsdWVzKTtcbn0pO1xuRmx1ZW50UHJvdmlkZXIuZGlzcGxheU5hbWUgPSAnRmx1ZW50UHJvdmlkZXInO1xuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0JztmdW5jdGlvbiBmKGEsYil7dmFyIGM9YS5sZW5ndGg7YS5wdXNoKGIpO2E6Zm9yKDswPGM7KXt2YXIgZD1jLTE+Pj4xLGU9YVtkXTtpZigwPGcoZSxiKSlhW2RdPWIsYVtjXT1lLGM9ZDtlbHNlIGJyZWFrIGF9fWZ1bmN0aW9uIGgoYSl7cmV0dXJuIDA9PT1hLmxlbmd0aD9udWxsOmFbMF19ZnVuY3Rpb24gayhhKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGI9YVswXSxjPWEucG9wKCk7aWYoYyE9PWIpe2FbMF09YzthOmZvcih2YXIgZD0wLGU9YS5sZW5ndGgsdz1lPj4+MTtkPHc7KXt2YXIgbT0yKihkKzEpLTEsQz1hW21dLG49bSsxLHg9YVtuXTtpZigwPmcoQyxjKSluPGUmJjA+Zyh4LEMpPyhhW2RdPXgsYVtuXT1jLGQ9bik6KGFbZF09QyxhW21dPWMsZD1tKTtlbHNlIGlmKG48ZSYmMD5nKHgsYykpYVtkXT14LGFbbl09YyxkPW47ZWxzZSBicmVhayBhfX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGcoYSxiKXt2YXIgYz1hLnNvcnRJbmRleC1iLnNvcnRJbmRleDtyZXR1cm4gMCE9PWM/YzphLmlkLWIuaWR9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdyl7dmFyIGw9cGVyZm9ybWFuY2U7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gbC5ub3coKX19ZWxzZXt2YXIgcD1EYXRlLHE9cC5ub3coKTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBwLm5vdygpLXF9fXZhciByPVtdLHQ9W10sdT0xLHY9bnVsbCx5PTMsej0hMSxBPSExLEI9ITEsRD1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwsRT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLEY9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7XG5cInVuZGVmaW5lZFwiIT09dHlwZW9mIG5hdmlnYXRvciYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcmJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTtmdW5jdGlvbiBHKGEpe2Zvcih2YXIgYj1oKHQpO251bGwhPT1iOyl7aWYobnVsbD09PWIuY2FsbGJhY2spayh0KTtlbHNlIGlmKGIuc3RhcnRUaW1lPD1hKWsodCksYi5zb3J0SW5kZXg9Yi5leHBpcmF0aW9uVGltZSxmKHIsYik7ZWxzZSBicmVhaztiPWgodCl9fWZ1bmN0aW9uIEgoYSl7Qj0hMTtHKGEpO2lmKCFBKWlmKG51bGwhPT1oKHIpKUE9ITAsSShKKTtlbHNle3ZhciBiPWgodCk7bnVsbCE9PWImJksoSCxiLnN0YXJ0VGltZS1hKX19XG5mdW5jdGlvbiBKKGEsYil7QT0hMTtCJiYoQj0hMSxFKEwpLEw9LTEpO3o9ITA7dmFyIGM9eTt0cnl7RyhiKTtmb3Iodj1oKHIpO251bGwhPT12JiYoISh2LmV4cGlyYXRpb25UaW1lPmIpfHxhJiYhTSgpKTspe3ZhciBkPXYuY2FsbGJhY2s7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3YuY2FsbGJhY2s9bnVsbDt5PXYucHJpb3JpdHlMZXZlbDt2YXIgZT1kKHYuZXhwaXJhdGlvblRpbWU8PWIpO2I9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgZT92LmNhbGxiYWNrPWU6dj09PWgocikmJmsocik7RyhiKX1lbHNlIGsocik7dj1oKHIpfWlmKG51bGwhPT12KXZhciB3PSEwO2Vsc2V7dmFyIG09aCh0KTtudWxsIT09bSYmSyhILG0uc3RhcnRUaW1lLWIpO3c9ITF9cmV0dXJuIHd9ZmluYWxseXt2PW51bGwseT1jLHo9ITF9fXZhciBOPSExLE89bnVsbCxMPS0xLFA9NSxRPS0xO1xuZnVuY3Rpb24gTSgpe3JldHVybiBleHBvcnRzLnVuc3RhYmxlX25vdygpLVE8UD8hMTohMH1mdW5jdGlvbiBSKCl7aWYobnVsbCE9PU8pe3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7UT1hO3ZhciBiPSEwO3RyeXtiPU8oITAsYSl9ZmluYWxseXtiP1MoKTooTj0hMSxPPW51bGwpfX1lbHNlIE49ITF9dmFyIFM7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIEYpUz1mdW5jdGlvbigpe0YoUil9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIFQ9bmV3IE1lc3NhZ2VDaGFubmVsLFU9VC5wb3J0MjtULnBvcnQxLm9ubWVzc2FnZT1SO1M9ZnVuY3Rpb24oKXtVLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIFM9ZnVuY3Rpb24oKXtEKFIsMCl9O2Z1bmN0aW9uIEkoYSl7Tz1hO058fChOPSEwLFMoKSl9ZnVuY3Rpb24gSyhhLGIpe0w9RChmdW5jdGlvbigpe2EoZXhwb3J0cy51bnN0YWJsZV9ub3coKSl9LGIpfVxuZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NTtleHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTE7ZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eT00O2V4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MztleHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe2EuY2FsbGJhY2s9bnVsbH07ZXhwb3J0cy51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe0F8fHp8fChBPSEwLEkoSikpfTtcbmV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oYSl7MD5hfHwxMjU8YT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOlA9MDxhP01hdGguZmxvb3IoMUUzL2EpOjV9O2V4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4geX07ZXhwb3J0cy51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZT1mdW5jdGlvbigpe3JldHVybiBoKHIpfTtleHBvcnRzLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKHkpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBiPTM7YnJlYWs7ZGVmYXVsdDpiPXl9dmFyIGM9eTt5PWI7dHJ5e3JldHVybiBhKCl9ZmluYWxseXt5PWN9fTtleHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fTtcbmV4cG9ydHMudW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPXk7eT1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7eT1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yz8oYz1jLmRlbGF5LGM9XCJudW1iZXJcIj09PXR5cGVvZiBjJiYwPGM/ZCtjOmQpOmM9ZDtzd2l0Y2goYSl7Y2FzZSAxOnZhciBlPS0xO2JyZWFrO2Nhc2UgMjplPTI1MDticmVhaztjYXNlIDU6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDplPTFFNDticmVhaztkZWZhdWx0OmU9NUUzfWU9YytlO2E9e2lkOnUrKyxjYWxsYmFjazpiLHByaW9yaXR5TGV2ZWw6YSxzdGFydFRpbWU6YyxleHBpcmF0aW9uVGltZTplLHNvcnRJbmRleDotMX07Yz5kPyhhLnNvcnRJbmRleD1jLGYodCxhKSxudWxsPT09aChyKSYmYT09PWgodCkmJihCPyhFKEwpLEw9LTEpOkI9ITAsSyhILGMtZCkpKTooYS5zb3J0SW5kZXg9ZSxmKHIsYSksQXx8enx8KEE9ITAsSShKKSkpO3JldHVybiBhfTtcbmV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9TTtleHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj15O3JldHVybiBmdW5jdGlvbigpe3ZhciBjPXk7eT1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXt5PWN9fX07XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdW5zdGFibGVfTm9ybWFsUHJpb3JpdHkgYXMgTm9ybWFsUHJpb3JpdHksIHVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSBhcyBydW5XaXRoUHJpb3JpdHkgfSBmcm9tICdzY2hlZHVsZXInO1xuY29uc3QgY3JlYXRlUHJvdmlkZXIgPSAoT3JpZ2luYWwpPT57XG4gICAgY29uc3QgUHJvdmlkZXIgPSAocHJvcHMpPT57XG4gICAgICAgIC8vIEhvbGRzIGFuIGFjdHVhbCBcInByb3BzLnZhbHVlXCJcbiAgICAgICAgY29uc3QgdmFsdWVSZWYgPSBSZWFjdC51c2VSZWYocHJvcHMudmFsdWUpO1xuICAgICAgICAvLyBVc2VkIHRvIHN5bmMgY29udGV4dCB1cGRhdGVzIGFuZCBhdm9pZCBzdGFsZSB2YWx1ZXMsIGNhbiBiZSBjb25zaWRlcmVkIGFzIHJlbmRlci9lZmZlY3QgY291bnRlciBvZiBQcm92aWRlci5cbiAgICAgICAgY29uc3QgdmVyc2lvblJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICAgICAgLy8gQSBzdGFibGUgb2JqZWN0LCBpcyB1c2VkIHRvIGF2b2lkIGNvbnRleHQgdXBkYXRlcyB2aWEgbXV0YXRpb24gb2YgaXRzIHZhbHVlcy5cbiAgICAgICAgY29uc3QgY29udGV4dFZhbHVlID0gUmVhY3QudXNlUmVmKCk7XG4gICAgICAgIGlmICghY29udGV4dFZhbHVlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnRleHRWYWx1ZS5jdXJyZW50ID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVJlZixcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uUmVmLFxuICAgICAgICAgICAgICAgIGxpc3RlbmVyczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICAgICAgdmFsdWVSZWYuY3VycmVudCA9IHByb3BzLnZhbHVlO1xuICAgICAgICAgICAgdmVyc2lvblJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgICAgICBydW5XaXRoUHJpb3JpdHkoTm9ybWFsUHJpb3JpdHksICgpPT57XG4gICAgICAgICAgICAgICAgY29udGV4dFZhbHVlLmN1cnJlbnQubGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKT0+e1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihbXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uUmVmLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBbXG4gICAgICAgICAgICBwcm9wcy52YWx1ZVxuICAgICAgICBdKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoT3JpZ2luYWwsIHtcbiAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWUuY3VycmVudFxuICAgICAgICB9LCBwcm9wcy5jaGlsZHJlbik7XG4gICAgfTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqLyBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBQcm92aWRlci5kaXNwbGF5TmFtZSA9ICdDb250ZXh0U2VsZWN0b3IuUHJvdmlkZXInO1xuICAgIH1cbiAgICByZXR1cm4gUHJvdmlkZXI7XG59O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dCA9IChkZWZhdWx0VmFsdWUpPT57XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBmbHVlbnR1aS9uby1jb250ZXh0LWRlZmF1bHQtdmFsdWVcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZWZhdWx0VmFsdWVcbiAgICAgICAgfSxcbiAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgY3VycmVudDogLTFcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdGVuZXJzOiBbXVxuICAgIH0pO1xuICAgIGNvbnRleHQuUHJvdmlkZXIgPSBjcmVhdGVQcm92aWRlcihjb250ZXh0LlByb3ZpZGVyKTtcbiAgICAvLyBXZSBkb24ndCBzdXBwb3J0IENvbnN1bWVyIEFQSVxuICAgIGRlbGV0ZSBjb250ZXh0LkNvbnN1bWVyO1xuICAgIHJldHVybiBjb250ZXh0O1xufTtcbiIsImltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogQGludGVybmFsXG4gKiBUaGlzIGhvb2sgcmV0dXJucyBjb250ZXh0IHNlbGVjdGVkIHZhbHVlIGJ5IHNlbGVjdG9yLlxuICogSXQgd2lsbCBvbmx5IGFjY2VwdCBjb250ZXh0IGNyZWF0ZWQgYnkgYGNyZWF0ZUNvbnRleHRgLlxuICogSXQgd2lsbCB0cmlnZ2VyIHJlLXJlbmRlciBpZiBvbmx5IHRoZSBzZWxlY3RlZCB2YWx1ZSBpcyByZWZlcmVudGlhbGx5IGNoYW5nZWQuXG4gKi8gZXhwb3J0IGNvbnN0IHVzZUNvbnRleHRTZWxlY3RvciA9IChjb250ZXh0LCBzZWxlY3Rvcik9PntcbiAgICBjb25zdCBjb250ZXh0VmFsdWUgPSBSZWFjdC51c2VDb250ZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IHsgdmFsdWU6IHsgY3VycmVudDogdmFsdWUgfSwgdmVyc2lvbjogeyBjdXJyZW50OiB2ZXJzaW9uIH0sIGxpc3RlbmVycyB9ID0gY29udGV4dFZhbHVlO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0b3IodmFsdWUpO1xuICAgIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlU3RhdGUoW1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgc2VsZWN0ZWRcbiAgICBdKTtcbiAgICBjb25zdCBkaXNwYXRjaCA9IChwYXlsb2FkKT0+e1xuICAgICAgICBzZXRTdGF0ZSgocHJldlN0YXRlKT0+e1xuICAgICAgICAgICAgaWYgKCFwYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgLy8gZWFybHkgYmFpbCBvdXQgd2hlbiBpcyBkaXNwYXRjaGVkIGR1cmluZyByZW5kZXJcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBheWxvYWRbMF0gPD0gdmVyc2lvbikge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QuaXMocHJldlN0YXRlWzFdLCBzZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZTdGF0ZTsgLy8gYmFpbCBvdXRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5pcyhwcmV2U3RhdGVbMF0sIHBheWxvYWRbMV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2U3RhdGU7IC8vIGRvIG5vdCB1cGRhdGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFNlbGVjdGVkID0gc2VsZWN0b3IocGF5bG9hZFsxXSk7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5pcyhwcmV2U3RhdGVbMV0sIG5leHRTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZTdGF0ZTsgLy8gZG8gbm90IHVwZGF0ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkWzFdLFxuICAgICAgICAgICAgICAgICAgICBuZXh0U2VsZWN0ZWRcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gaWdub3JlZCAoc3RhbGUgcHJvcHMgb3Igc29tZSBvdGhlciByZWFzb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBleHBsaWNpdGx5IHNwcmVhZCB0byBlbmZvcmNlIHR5cGluZ1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBwcmV2U3RhdGVbMF0sXG4gICAgICAgICAgICAgICAgcHJldlN0YXRlWzFdXG4gICAgICAgICAgICBdOyAvLyBzY2hlZHVsZSB1cGRhdGVcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBpZiAoIU9iamVjdC5pcyhzdGF0ZVsxXSwgc2VsZWN0ZWQpKSB7XG4gICAgICAgIC8vIHNjaGVkdWxlIHJlLXJlbmRlclxuICAgICAgICAvLyB0aGlzIGlzIHNhZmUgYmVjYXVzZSBpdCdzIHNlbGYgY29udGFpbmVkXG4gICAgICAgIGRpc3BhdGNoKHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIGNvbnN0IHN0YWJsZURpc3BhdGNoID0gdXNlRXZlbnRDYWxsYmFjayhkaXNwYXRjaCk7XG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBsaXN0ZW5lcnMucHVzaChzdGFibGVEaXNwYXRjaCk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihzdGFibGVEaXNwYXRjaCk7XG4gICAgICAgICAgICBsaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHN0YWJsZURpc3BhdGNoLFxuICAgICAgICBsaXN0ZW5lcnNcbiAgICBdKTtcbiAgICByZXR1cm4gc3RhdGVbMV07XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFV0aWxpdHkgaG9vayBmb3IgY29udGV4dHMgY3JlYXRlZCBieSByZWFjdC1jb250ZXh0LXNlbGVjdG9yIHRvIGRldGVybWluZSBpZiBhIHBhcmVudCBjb250ZXh0IGV4aXN0c1xuICogV0FSTklORzogVGhpcyBob29rIHdpbGwgbm90IHdvcmsgZm9yIG5hdGl2ZSBSZWFjdCBjb250ZXh0c1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IC0gY29udGV4dCBjcmVhdGVkIGJ5IHJlYWN0LWNvbnRleHQtc2VsZWN0b3JcbiAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIGhvb2sgaXMgd3JhcHBlZCBieSBhIHBhcmVudCBjb250ZXh0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUhhc1BhcmVudENvbnRleHQoY29udGV4dCkge1xuICAgIGNvbnN0IGNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZUNvbnRleHQoY29udGV4dCk7XG4gICAgaWYgKGNvbnRleHRWYWx1ZS52ZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0VmFsdWUudmVyc2lvbi5jdXJyZW50ICE9PSAtMTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIiwiZXhwb3J0IGNvbnN0IEFsdCA9ICdBbHQnO1xuZXhwb3J0IGNvbnN0IEFsdEdyYXBoID0gJ0FsdEdyYXBoJztcbmV4cG9ydCBjb25zdCBDYXBzTG9jayA9ICdDYXBzTG9jayc7XG5leHBvcnQgY29uc3QgQ29udHJvbCA9ICdDb250cm9sJztcbmV4cG9ydCBjb25zdCBGbiA9ICdGbic7XG5leHBvcnQgY29uc3QgRm5Mb2NrID0gJ0ZuTG9jayc7XG5leHBvcnQgY29uc3QgTWV0YSA9ICdNZXRhJztcbmV4cG9ydCBjb25zdCBOdW1Mb2NrID0gJ051bUxvY2snO1xuZXhwb3J0IGNvbnN0IFNjcm9sbExvY2sgPSAnU2Nyb2xsTG9jayc7XG5leHBvcnQgY29uc3QgU2hpZnQgPSAnU2hpZnQnO1xuZXhwb3J0IGNvbnN0IFN5bWJvbCA9ICdTeW1ib2wnO1xuZXhwb3J0IGNvbnN0IFN5bWJvbExvY2sgPSAnU3ltYm9sTG9jayc7XG5leHBvcnQgY29uc3QgSHlwZXIgPSAnSHlwZXInO1xuZXhwb3J0IGNvbnN0IFN1cGVyID0gJ1N1cGVyJztcbmV4cG9ydCBjb25zdCBFbnRlciA9ICdFbnRlcic7XG5leHBvcnQgY29uc3QgU3BhY2UgPSAnICc7XG5leHBvcnQgY29uc3QgVGFiID0gJ1RhYic7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duID0gJ0Fycm93RG93bic7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0ID0gJ0Fycm93TGVmdCc7XG5leHBvcnQgY29uc3QgQXJyb3dSaWdodCA9ICdBcnJvd1JpZ2h0JztcbmV4cG9ydCBjb25zdCBBcnJvd1VwID0gJ0Fycm93VXAnO1xuZXhwb3J0IGNvbnN0IEVuZCA9ICdFbmQnO1xuZXhwb3J0IGNvbnN0IEhvbWUgPSAnSG9tZSc7XG5leHBvcnQgY29uc3QgUGFnZURvd24gPSAnUGFnZURvd24nO1xuZXhwb3J0IGNvbnN0IFBhZ2VVcCA9ICdQYWdlVXAnO1xuZXhwb3J0IGNvbnN0IEJhY2tzcGFjZSA9ICdCYWNrc3BhY2UnO1xuZXhwb3J0IGNvbnN0IENsZWFyID0gJ0NsZWFyJztcbmV4cG9ydCBjb25zdCBDb3B5ID0gJ0NvcHknO1xuZXhwb3J0IGNvbnN0IENyU2VsID0gJ0NyU2VsJztcbmV4cG9ydCBjb25zdCBDdXQgPSAnQ3V0JztcbmV4cG9ydCBjb25zdCBEZWxldGUgPSAnRGVsZXRlJztcbmV4cG9ydCBjb25zdCBFcmFzZUVvZiA9ICdFcmFzZUVvZic7XG5leHBvcnQgY29uc3QgRXhTZWwgPSAnRXhTZWwnO1xuZXhwb3J0IGNvbnN0IEluc2VydCA9ICdJbnNlcnQnO1xuZXhwb3J0IGNvbnN0IFBhc3RlID0gJ1Bhc3RlJztcbmV4cG9ydCBjb25zdCBSZWRvID0gJ1JlZG8nO1xuZXhwb3J0IGNvbnN0IFVuZG8gPSAnVW5kbyc7XG5leHBvcnQgY29uc3QgQWNjZXB0ID0gJ0FjY2VwdCc7XG5leHBvcnQgY29uc3QgQWdhaW4gPSAnQWdhaW4nO1xuZXhwb3J0IGNvbnN0IEF0dG4gPSAnQXR0bic7XG5leHBvcnQgY29uc3QgQ2FuY2VsID0gJ0NhbmNlbCc7XG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnUgPSAnQ29udGV4dE1lbnUnO1xuZXhwb3J0IGNvbnN0IEVzY2FwZSA9ICdFc2NhcGUnO1xuZXhwb3J0IGNvbnN0IEV4ZWN1dGUgPSAnRXhlY3V0ZSc7XG5leHBvcnQgY29uc3QgRmluZCA9ICdGaW5kJztcbmV4cG9ydCBjb25zdCBIZWxwID0gJ0hlbHAnO1xuZXhwb3J0IGNvbnN0IFBhdXNlID0gJ1BhdXNlJztcbmV4cG9ydCBjb25zdCBQbGF5ID0gJ1BsYXknO1xuZXhwb3J0IGNvbnN0IFByb3BzID0gJ1Byb3BzJztcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAnU2VsZWN0JztcbmV4cG9ydCBjb25zdCBab29tSW4gPSAnWm9vbUluJztcbmV4cG9ydCBjb25zdCBab29tT3V0ID0gJ1pvb21PdXQnO1xuZXhwb3J0IGNvbnN0IEJyaWdodG5lc3NEb3duID0gJ0JyaWdodG5lc3NEb3duJztcbmV4cG9ydCBjb25zdCBCcmlnaHRuZXNzVXAgPSAnQnJpZ2h0bmVzc1VwJztcbmV4cG9ydCBjb25zdCBFamVjdCA9ICdFamVjdCc7XG5leHBvcnQgY29uc3QgTG9nT2ZmID0gJ0xvZ09mZic7XG5leHBvcnQgY29uc3QgUG93ZXIgPSAnUG93ZXInO1xuZXhwb3J0IGNvbnN0IFBvd2VyT2ZmID0gJ1Bvd2VyT2ZmJztcbmV4cG9ydCBjb25zdCBQcmludFNjcmVlbiA9ICdQcmludFNjcmVlbic7XG5leHBvcnQgY29uc3QgSGliZXJuYXRlID0gJ0hpYmVybmF0ZSc7XG5leHBvcnQgY29uc3QgU3RhbmRieSA9ICdTdGFuZGJ5JztcbmV4cG9ydCBjb25zdCBXYWtlVXAgPSAnV2FrZVVwJztcbmV4cG9ydCBjb25zdCBBbGxDYW5kaWRhdGVzID0gJ0FsbENhbmRpZGF0ZXMnO1xuZXhwb3J0IGNvbnN0IEFscGhhbnVtZXJpYyA9ICdBbHBoYW51bWVyaWMnO1xuZXhwb3J0IGNvbnN0IENvZGVJbnB1dCA9ICdDb2RlSW5wdXQnO1xuZXhwb3J0IGNvbnN0IENvbXBvc2UgPSAnQ29tcG9zZSc7XG5leHBvcnQgY29uc3QgQ29udmVydCA9ICdDb252ZXJ0JztcbmV4cG9ydCBjb25zdCBEZWFkID0gJ0RlYWQnO1xuZXhwb3J0IGNvbnN0IEZpbmFsTW9kZSA9ICdGaW5hbE1vZGUnO1xuZXhwb3J0IGNvbnN0IEdyb3VwRmlyc3QgPSAnR3JvdXBGaXJzdCc7XG5leHBvcnQgY29uc3QgR3JvdXBMYXN0ID0gJ0dyb3VwTGFzdCc7XG5leHBvcnQgY29uc3QgR3JvdXBOZXh0ID0gJ0dyb3VwTmV4dCc7XG5leHBvcnQgY29uc3QgR3JvdXBQcmV2aW91cyA9ICdHcm91cFByZXZpb3VzJztcbmV4cG9ydCBjb25zdCBNb2RlQ2hhbmdlID0gJ01vZGVDaGFuZ2UnO1xuZXhwb3J0IGNvbnN0IE5leHRDYW5kaWRhdGUgPSAnTmV4dENhbmRpZGF0ZSc7XG5leHBvcnQgY29uc3QgTm9uQ29udmVydCA9ICdOb25Db252ZXJ0JztcbmV4cG9ydCBjb25zdCBQcmV2aW91c0NhbmRpZGF0ZSA9ICdQcmV2aW91c0NhbmRpZGF0ZSc7XG5leHBvcnQgY29uc3QgUHJvY2VzcyA9ICdQcm9jZXNzJztcbmV4cG9ydCBjb25zdCBTaW5nbGVDYW5kaWRhdGUgPSAnU2luZ2xlQ2FuZGlkYXRlJztcbmV4cG9ydCBjb25zdCBIYW5ndWxNb2RlID0gJ0hhbmd1bE1vZGUnO1xuZXhwb3J0IGNvbnN0IEhhbmphTW9kZSA9ICdIYW5qYU1vZGUnO1xuZXhwb3J0IGNvbnN0IEp1bmphTW9kZSA9ICdKdW5qYU1vZGUnO1xuZXhwb3J0IGNvbnN0IEVpc3UgPSAnRWlzdSc7XG5leHBvcnQgY29uc3QgSGFua2FrdSA9ICdIYW5rYWt1JztcbmV4cG9ydCBjb25zdCBIaXJhZ2FuYSA9ICdIaXJhZ2FuYSc7XG5leHBvcnQgY29uc3QgSGlyYWdhbmFLYXRha2FuYSA9ICdIaXJhZ2FuYUthdGFrYW5hJztcbmV4cG9ydCBjb25zdCBLYW5hTW9kZSA9ICdLYW5hTW9kZSc7XG5leHBvcnQgY29uc3QgS2FuamlNb2RlID0gJ0thbmppTW9kZSc7XG5leHBvcnQgY29uc3QgS2F0YWthbmEgPSAnS2F0YWthbmEnO1xuZXhwb3J0IGNvbnN0IFJvbWFqaSA9ICdSb21hamknO1xuZXhwb3J0IGNvbnN0IFplbmtha3UgPSAnWmVua2FrdSc7XG5leHBvcnQgY29uc3QgWmVua2FrdUhhbmtha3UgPSAnWmVua2FrdUhhbmtha3UnO1xuZXhwb3J0IGNvbnN0IEYxID0gJ0YxJztcbmV4cG9ydCBjb25zdCBGMiA9ICdGMic7XG5leHBvcnQgY29uc3QgRjMgPSAnRjMnO1xuZXhwb3J0IGNvbnN0IEY0ID0gJ0Y0JztcbmV4cG9ydCBjb25zdCBGNSA9ICdGNSc7XG5leHBvcnQgY29uc3QgRjYgPSAnRjYnO1xuZXhwb3J0IGNvbnN0IEY3ID0gJ0Y3JztcbmV4cG9ydCBjb25zdCBGOCA9ICdGOCc7XG5leHBvcnQgY29uc3QgRjkgPSAnRjknO1xuZXhwb3J0IGNvbnN0IEYxMCA9ICdGMTAnO1xuZXhwb3J0IGNvbnN0IEYxMSA9ICdGMTEnO1xuZXhwb3J0IGNvbnN0IEYxMiA9ICdGMTInO1xuZXhwb3J0IGNvbnN0IFNvZnQxID0gJ1NvZnQxJztcbmV4cG9ydCBjb25zdCBTb2Z0MiA9ICdTb2Z0Mic7XG5leHBvcnQgY29uc3QgU29mdDMgPSAnU29mdDMnO1xuZXhwb3J0IGNvbnN0IFNvZnQ0ID0gJ1NvZnQ0JztcbmV4cG9ydCBjb25zdCBDaGFubmVsRG93biA9ICdDaGFubmVsRG93bic7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFVwID0gJ0NoYW5uZWxVcCc7XG5leHBvcnQgY29uc3QgQ2xvc2UgPSAnQ2xvc2UnO1xuZXhwb3J0IGNvbnN0IE1haWxGb3J3YXJkID0gJ01haWxGb3J3YXJkJztcbmV4cG9ydCBjb25zdCBNYWlsUmVwbHkgPSAnTWFpbFJlcGx5JztcbmV4cG9ydCBjb25zdCBNYWlsU2VuZCA9ICdNYWlsU2VuZCc7XG5leHBvcnQgY29uc3QgTWVkaWFDbG9zZSA9ICdNZWRpYUNsb3NlJztcbmV4cG9ydCBjb25zdCBNZWRpYUZhc3RGb3J3YXJkID0gJ01lZGlhRmFzdEZvcndhcmQnO1xuZXhwb3J0IGNvbnN0IE1lZGlhUGF1c2UgPSAnTWVkaWFQYXVzZSc7XG5leHBvcnQgY29uc3QgTWVkaWFQbGF5ID0gJ01lZGlhUGxheSc7XG5leHBvcnQgY29uc3QgTWVkaWFQbGF5UGF1c2UgPSAnTWVkaWFQbGF5UGF1c2UnO1xuZXhwb3J0IGNvbnN0IE1lZGlhUmVjb3JkID0gJ01lZGlhUmVjb3JkJztcbmV4cG9ydCBjb25zdCBNZWRpYVJld2luZCA9ICdNZWRpYVJld2luZCc7XG5leHBvcnQgY29uc3QgTWVkaWFTdG9wID0gJ01lZGlhU3RvcCc7XG5leHBvcnQgY29uc3QgTWVkaWFUcmFja05leHQgPSAnTWVkaWFUcmFja05leHQnO1xuZXhwb3J0IGNvbnN0IE1lZGlhVHJhY2tQcmV2aW91cyA9ICdNZWRpYVRyYWNrUHJldmlvdXMnO1xuZXhwb3J0IGNvbnN0IE5ldyA9ICdOZXcnO1xuZXhwb3J0IGNvbnN0IE9wZW4gPSAnT3Blbic7XG5leHBvcnQgY29uc3QgUHJpbnQgPSAnUHJpbnQnO1xuZXhwb3J0IGNvbnN0IFNhdmUgPSAnU2F2ZSc7XG5leHBvcnQgY29uc3QgU3BlbGxDaGVjayA9ICdTcGVsbENoZWNrJztcbmV4cG9ydCBjb25zdCBLZXkxMSA9ICdLZXkxMSc7XG5leHBvcnQgY29uc3QgS2V5MTIgPSAnS2V5MTInO1xuZXhwb3J0IGNvbnN0IEF1ZGlvQmFsYW5jZUxlZnQgPSAnQXVkaW9CYWxhbmNlTGVmdCc7XG5leHBvcnQgY29uc3QgQXVkaW9CYWxhbmNlUmlnaHQgPSAnQXVkaW9CYWxhbmNlUmlnaHQnO1xuZXhwb3J0IGNvbnN0IEF1ZGlvQmFzc0Jvb3N0RG93biA9ICdBdWRpb0Jhc3NCb29zdERvd24nO1xuZXhwb3J0IGNvbnN0IEF1ZGlvQmFzc0Jvb3N0VG9nZ2xlID0gJ0F1ZGlvQmFzc0Jvb3N0VG9nZ2xlJztcbmV4cG9ydCBjb25zdCBBdWRpb0Jhc3NCb29zdFVwID0gJ0F1ZGlvQmFzc0Jvb3N0VXAnO1xuZXhwb3J0IGNvbnN0IEF1ZGlvRmFkZXJGcm9udCA9ICdBdWRpb0ZhZGVyRnJvbnQnO1xuZXhwb3J0IGNvbnN0IEF1ZGlvRmFkZXJSZWFyID0gJ0F1ZGlvRmFkZXJSZWFyJztcbmV4cG9ydCBjb25zdCBBdWRpb1N1cnJvdW5kTW9kZU5leHQgPSAnQXVkaW9TdXJyb3VuZE1vZGVOZXh0JztcbmV4cG9ydCBjb25zdCBBdWRpb1RyZWJsZURvd24gPSAnQXVkaW9UcmVibGVEb3duJztcbmV4cG9ydCBjb25zdCBBdWRpb1RyZWJsZVVwID0gJ0F1ZGlvVHJlYmxlVXAnO1xuZXhwb3J0IGNvbnN0IEF1ZGlvVm9sdW1lRG93biA9ICdBdWRpb1ZvbHVtZURvd24nO1xuZXhwb3J0IGNvbnN0IEF1ZGlvVm9sdW1lVXAgPSAnQXVkaW9Wb2x1bWVVcCc7XG5leHBvcnQgY29uc3QgQXVkaW9Wb2x1bWVNdXRlID0gJ0F1ZGlvVm9sdW1lTXV0ZSc7XG5leHBvcnQgY29uc3QgTWljcm9waG9uZVRvZ2dsZSA9ICdNaWNyb3Bob25lVG9nZ2xlJztcbmV4cG9ydCBjb25zdCBNaWNyb3Bob25lVm9sdW1lRG93biA9ICdNaWNyb3Bob25lVm9sdW1lRG93bic7XG5leHBvcnQgY29uc3QgTWljcm9waG9uZVZvbHVtZVVwID0gJ01pY3JvcGhvbmVWb2x1bWVVcCc7XG5leHBvcnQgY29uc3QgTWljcm9waG9uZVZvbHVtZU11dGUgPSAnTWljcm9waG9uZVZvbHVtZU11dGUnO1xuZXhwb3J0IGNvbnN0IFNwZWVjaENvcnJlY3Rpb25MaXN0ID0gJ1NwZWVjaENvcnJlY3Rpb25MaXN0JztcbmV4cG9ydCBjb25zdCBTcGVlY2hJbnB1dFRvZ2dsZSA9ICdTcGVlY2hJbnB1dFRvZ2dsZSc7XG5leHBvcnQgY29uc3QgTGF1bmNoQXBwbGljYXRpb24xID0gJ0xhdW5jaEFwcGxpY2F0aW9uMSc7XG5leHBvcnQgY29uc3QgTGF1bmNoQXBwbGljYXRpb24yID0gJ0xhdW5jaEFwcGxpY2F0aW9uMic7XG5leHBvcnQgY29uc3QgTGF1bmNoQ2FsZW5kYXIgPSAnTGF1bmNoQ2FsZW5kYXInO1xuZXhwb3J0IGNvbnN0IExhdW5jaENvbnRhY3RzID0gJ0xhdW5jaENvbnRhY3RzJztcbmV4cG9ydCBjb25zdCBMYXVuY2hNYWlsID0gJ0xhdW5jaE1haWwnO1xuZXhwb3J0IGNvbnN0IExhdW5jaE1lZGlhUGxheWVyID0gJ0xhdW5jaE1lZGlhUGxheWVyJztcbmV4cG9ydCBjb25zdCBMYXVuY2hNdXNpY1BsYXllciA9ICdMYXVuY2hNdXNpY1BsYXllcic7XG5leHBvcnQgY29uc3QgTGF1bmNoUGhvbmUgPSAnTGF1bmNoUGhvbmUnO1xuZXhwb3J0IGNvbnN0IExhdW5jaFNjcmVlblNhdmVyID0gJ0xhdW5jaFNjcmVlblNhdmVyJztcbmV4cG9ydCBjb25zdCBMYXVuY2hTcHJlYWRzaGVldCA9ICdMYXVuY2hTcHJlYWRzaGVldCc7XG5leHBvcnQgY29uc3QgTGF1bmNoV2ViQnJvd3NlciA9ICdMYXVuY2hXZWJCcm93c2VyJztcbmV4cG9ydCBjb25zdCBMYXVuY2hXZWJDYW0gPSAnTGF1bmNoV2ViQ2FtJztcbmV4cG9ydCBjb25zdCBMYXVuY2hXb3JkUHJvY2Vzc29yID0gJ0xhdW5jaFdvcmRQcm9jZXNzb3InO1xuZXhwb3J0IGNvbnN0IEJyb3dzZXJCYWNrID0gJ0Jyb3dzZXJCYWNrJztcbmV4cG9ydCBjb25zdCBCcm93c2VyRmF2b3JpdGVzID0gJ0Jyb3dzZXJGYXZvcml0ZXMnO1xuZXhwb3J0IGNvbnN0IEJyb3dzZXJGb3J3YXJkID0gJ0Jyb3dzZXJGb3J3YXJkJztcbmV4cG9ydCBjb25zdCBCcm93c2VySG9tZSA9ICdCcm93c2VySG9tZSc7XG5leHBvcnQgY29uc3QgQnJvd3NlclJlZnJlc2ggPSAnQnJvd3NlclJlZnJlc2gnO1xuZXhwb3J0IGNvbnN0IEJyb3dzZXJTZWFyY2ggPSAnQnJvd3NlclNlYXJjaCc7XG5leHBvcnQgY29uc3QgQnJvd3NlclN0b3AgPSAnQnJvd3NlclN0b3AnO1xuZXhwb3J0IGNvbnN0IEFwcFN3aXRjaCA9ICdBcHBTd2l0Y2gnO1xuZXhwb3J0IGNvbnN0IENhbGwgPSAnQ2FsbCc7XG5leHBvcnQgY29uc3QgQ2FtZXJhID0gJ0NhbWVyYSc7XG5leHBvcnQgY29uc3QgQ2FtZXJhRm9jdXMgPSAnQ2FtZXJhRm9jdXMnO1xuZXhwb3J0IGNvbnN0IEVuZENhbGwgPSAnRW5kQ2FsbCc7XG5leHBvcnQgY29uc3QgR29CYWNrID0gJ0dvQmFjayc7XG5leHBvcnQgY29uc3QgR29Ib21lID0gJ0dvSG9tZSc7XG5leHBvcnQgY29uc3QgSGVhZHNldEhvb2sgPSAnSGVhZHNldEhvb2snO1xuZXhwb3J0IGNvbnN0IExhc3ROdW1iZXJSZWRpYWwgPSAnTGFzdE51bWJlclJlZGlhbCc7XG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uID0gJ05vdGlmaWNhdGlvbic7XG5leHBvcnQgY29uc3QgTWFubmVyTW9kZSA9ICdNYW5uZXJNb2RlJztcbmV4cG9ydCBjb25zdCBWb2ljZURpYWwgPSAnVm9pY2VEaWFsJztcbmV4cG9ydCBjb25zdCBUViA9ICdUVic7XG5leHBvcnQgY29uc3QgVFYzRE1vZGUgPSAnVFYzRE1vZGUnO1xuZXhwb3J0IGNvbnN0IFRWQW50ZW5uYUNhYmxlID0gJ1RWQW50ZW5uYUNhYmxlJztcbmV4cG9ydCBjb25zdCBUVkF1ZGlvRGVzY3JpcHRpb24gPSAnVFZBdWRpb0Rlc2NyaXB0aW9uJztcbmV4cG9ydCBjb25zdCBUVkF1ZGlvRGVzY3JpcHRpb25NaXhEb3duID0gJ1RWQXVkaW9EZXNjcmlwdGlvbk1peERvd24nO1xuZXhwb3J0IGNvbnN0IFRWQXVkaW9EZXNjcmlwdGlvbk1peFVwID0gJ1RWQXVkaW9EZXNjcmlwdGlvbk1peFVwJztcbmV4cG9ydCBjb25zdCBUVkNvbnRlbnRzTWVudSA9ICdUVkNvbnRlbnRzTWVudSc7XG5leHBvcnQgY29uc3QgVFZEYXRhU2VydmljZSA9ICdUVkRhdGFTZXJ2aWNlJztcbmV4cG9ydCBjb25zdCBUVklucHV0ID0gJ1RWSW5wdXQnO1xuZXhwb3J0IGNvbnN0IFRWSW5wdXRDb21wb25lbnQxID0gJ1RWSW5wdXRDb21wb25lbnQxJztcbmV4cG9ydCBjb25zdCBUVklucHV0Q29tcG9uZW50MiA9ICdUVklucHV0Q29tcG9uZW50Mic7XG5leHBvcnQgY29uc3QgVFZJbnB1dENvbXBvc2l0ZTEgPSAnVFZJbnB1dENvbXBvc2l0ZTEnO1xuZXhwb3J0IGNvbnN0IFRWSW5wdXRDb21wb3NpdGUyID0gJ1RWSW5wdXRDb21wb3NpdGUyJztcbmV4cG9ydCBjb25zdCBUVklucHV0SERNSTEgPSAnVFZJbnB1dEhETUkxJztcbmV4cG9ydCBjb25zdCBUVklucHV0SERNSTIgPSAnVFZJbnB1dEhETUkyJztcbmV4cG9ydCBjb25zdCBUVklucHV0SERNSTMgPSAnVFZJbnB1dEhETUkzJztcbmV4cG9ydCBjb25zdCBUVklucHV0SERNSTQgPSAnVFZJbnB1dEhETUk0JztcbmV4cG9ydCBjb25zdCBUVklucHV0VkdBMSA9ICdUVklucHV0VkdBMSc7XG5leHBvcnQgY29uc3QgVFZNZWRpYUNvbnRleHQgPSAnVFZNZWRpYUNvbnRleHQnO1xuZXhwb3J0IGNvbnN0IFRWTmV0d29yayA9ICdUVk5ldHdvcmsnO1xuZXhwb3J0IGNvbnN0IFRWTnVtYmVyRW50cnkgPSAnVFZOdW1iZXJFbnRyeSc7XG5leHBvcnQgY29uc3QgVFZQb3dlciA9ICdUVlBvd2VyJztcbmV4cG9ydCBjb25zdCBUVlJhZGlvU2VydmljZSA9ICdUVlJhZGlvU2VydmljZSc7XG5leHBvcnQgY29uc3QgVFZTYXRlbGxpdGUgPSAnVFZTYXRlbGxpdGUnO1xuZXhwb3J0IGNvbnN0IFRWU2F0ZWxsaXRlQlMgPSAnVFZTYXRlbGxpdGVCUyc7XG5leHBvcnQgY29uc3QgVFZTYXRlbGxpdGVDUyA9ICdUVlNhdGVsbGl0ZUNTJztcbmV4cG9ydCBjb25zdCBUVlNhdGVsbGl0ZVRvZ2dsZSA9ICdUVlNhdGVsbGl0ZVRvZ2dsZSc7XG5leHBvcnQgY29uc3QgVFZUZXJyZXN0cmlhbEFuYWxvZyA9ICdUVlRlcnJlc3RyaWFsQW5hbG9nJztcbmV4cG9ydCBjb25zdCBUVlRlcnJlc3RyaWFsRGlnaXRhbCA9ICdUVlRlcnJlc3RyaWFsRGlnaXRhbCc7XG5leHBvcnQgY29uc3QgVFZUaW1lciA9ICdUVlRpbWVyJztcbmV4cG9ydCBjb25zdCBBVlJJbnB1dCA9ICdBVlJJbnB1dCc7XG5leHBvcnQgY29uc3QgQVZSUG93ZXIgPSAnQVZSUG93ZXInO1xuZXhwb3J0IGNvbnN0IENvbG9yRjBSZWQgPSAnQ29sb3JGMFJlZCc7XG5leHBvcnQgY29uc3QgQ29sb3JGMUdyZWVuID0gJ0NvbG9yRjFHcmVlbic7XG5leHBvcnQgY29uc3QgQ29sb3JGMlllbGxvdyA9ICdDb2xvckYyWWVsbG93JztcbmV4cG9ydCBjb25zdCBDb2xvckYzQmx1ZSA9ICdDb2xvckYzQmx1ZSc7XG5leHBvcnQgY29uc3QgQ29sb3JGNEdyZXkgPSAnQ29sb3JGNEdyZXknO1xuZXhwb3J0IGNvbnN0IENvbG9yRjVCcm93biA9ICdDb2xvckY1QnJvd24nO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb25Ub2dnbGUgPSAnQ2xvc2VkQ2FwdGlvblRvZ2dsZSc7XG5leHBvcnQgY29uc3QgRGltbWVyID0gJ0RpbW1lcic7XG5leHBvcnQgY29uc3QgRGlzcGxheVN3YXAgPSAnRGlzcGxheVN3YXAnO1xuZXhwb3J0IGNvbnN0IERWUiA9ICdEVlInO1xuZXhwb3J0IGNvbnN0IEV4aXQgPSAnRXhpdCc7XG5leHBvcnQgY29uc3QgRmF2b3JpdGVDbGVhcjAgPSAnRmF2b3JpdGVDbGVhcjAnO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlQ2xlYXIxID0gJ0Zhdm9yaXRlQ2xlYXIxJztcbmV4cG9ydCBjb25zdCBGYXZvcml0ZUNsZWFyMiA9ICdGYXZvcml0ZUNsZWFyMic7XG5leHBvcnQgY29uc3QgRmF2b3JpdGVDbGVhcjMgPSAnRmF2b3JpdGVDbGVhcjMnO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlUmVjYWxsMCA9ICdGYXZvcml0ZVJlY2FsbDAnO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlUmVjYWxsMSA9ICdGYXZvcml0ZVJlY2FsbDEnO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlUmVjYWxsMiA9ICdGYXZvcml0ZVJlY2FsbDInO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlUmVjYWxsMyA9ICdGYXZvcml0ZVJlY2FsbDMnO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlU3RvcmUwID0gJ0Zhdm9yaXRlU3RvcmUwJztcbmV4cG9ydCBjb25zdCBGYXZvcml0ZVN0b3JlMSA9ICdGYXZvcml0ZVN0b3JlMSc7XG5leHBvcnQgY29uc3QgRmF2b3JpdGVTdG9yZTIgPSAnRmF2b3JpdGVTdG9yZTInO1xuZXhwb3J0IGNvbnN0IEZhdm9yaXRlU3RvcmUzID0gJ0Zhdm9yaXRlU3RvcmUzJztcbmV4cG9ydCBjb25zdCBHdWlkZSA9ICdHdWlkZSc7XG5leHBvcnQgY29uc3QgR3VpZGVOZXh0RGF5ID0gJ0d1aWRlTmV4dERheSc7XG5leHBvcnQgY29uc3QgR3VpZGVQcmV2aW91c0RheSA9ICdHdWlkZVByZXZpb3VzRGF5JztcbmV4cG9ydCBjb25zdCBJbmZvID0gJ0luZm8nO1xuZXhwb3J0IGNvbnN0IEluc3RhbnRSZXBsYXkgPSAnSW5zdGFudFJlcGxheSc7XG5leHBvcnQgY29uc3QgTGluayA9ICdMaW5rJztcbmV4cG9ydCBjb25zdCBMaXN0UHJvZ3JhbSA9ICdMaXN0UHJvZ3JhbSc7XG5leHBvcnQgY29uc3QgTGl2ZUNvbnRlbnQgPSAnTGl2ZUNvbnRlbnQnO1xuZXhwb3J0IGNvbnN0IExvY2sgPSAnTG9jayc7XG5leHBvcnQgY29uc3QgTWVkaWFBcHBzID0gJ01lZGlhQXBwcyc7XG5leHBvcnQgY29uc3QgTWVkaWFBdWRpb1RyYWNrID0gJ01lZGlhQXVkaW9UcmFjayc7XG5leHBvcnQgY29uc3QgTWVkaWFMYXN0ID0gJ01lZGlhTGFzdCc7XG5leHBvcnQgY29uc3QgTWVkaWFTa2lwQmFja3dhcmQgPSAnTWVkaWFTa2lwQmFja3dhcmQnO1xuZXhwb3J0IGNvbnN0IE1lZGlhU2tpcEZvcndhcmQgPSAnTWVkaWFTa2lwRm9yd2FyZCc7XG5leHBvcnQgY29uc3QgTWVkaWFTdGVwQmFja3dhcmQgPSAnTWVkaWFTdGVwQmFja3dhcmQnO1xuZXhwb3J0IGNvbnN0IE1lZGlhU3RlcEZvcndhcmQgPSAnTWVkaWFTdGVwRm9yd2FyZCc7XG5leHBvcnQgY29uc3QgTWVkaWFUb3BNZW51ID0gJ01lZGlhVG9wTWVudSc7XG5leHBvcnQgY29uc3QgTmF2aWdhdGVJbiA9ICdOYXZpZ2F0ZUluJztcbmV4cG9ydCBjb25zdCBOYXZpZ2F0ZU5leHQgPSAnTmF2aWdhdGVOZXh0JztcbmV4cG9ydCBjb25zdCBOYXZpZ2F0ZU91dCA9ICdOYXZpZ2F0ZU91dCc7XG5leHBvcnQgY29uc3QgTmF2aWdhdGVQcmV2aW91cyA9ICdOYXZpZ2F0ZVByZXZpb3VzJztcbmV4cG9ydCBjb25zdCBOZXh0RmF2b3JpdGVDaGFubmVsID0gJ05leHRGYXZvcml0ZUNoYW5uZWwnO1xuZXhwb3J0IGNvbnN0IE5leHRVc2VyUHJvZmlsZSA9ICdOZXh0VXNlclByb2ZpbGUnO1xuZXhwb3J0IGNvbnN0IE9uRGVtYW5kID0gJ09uRGVtYW5kJztcbmV4cG9ydCBjb25zdCBQYWlyaW5nID0gJ1BhaXJpbmcnO1xuZXhwb3J0IGNvbnN0IFBpblBEb3duID0gJ1BpblBEb3duJztcbmV4cG9ydCBjb25zdCBQaW5QTW92ZSA9ICdQaW5QTW92ZSc7XG5leHBvcnQgY29uc3QgUGluUFRvZ2dsZSA9ICdQaW5QVG9nZ2xlJztcbmV4cG9ydCBjb25zdCBQaW5QVXAgPSAnUGluUFVwJztcbmV4cG9ydCBjb25zdCBQbGF5U3BlZWREb3duID0gJ1BsYXlTcGVlZERvd24nO1xuZXhwb3J0IGNvbnN0IFBsYXlTcGVlZFJlc2V0ID0gJ1BsYXlTcGVlZFJlc2V0JztcbmV4cG9ydCBjb25zdCBQbGF5U3BlZWRVcCA9ICdQbGF5U3BlZWRVcCc7XG5leHBvcnQgY29uc3QgUmFuZG9tVG9nZ2xlID0gJ1JhbmRvbVRvZ2dsZSc7XG5leHBvcnQgY29uc3QgUmNMb3dCYXR0ZXJ5ID0gJ1JjTG93QmF0dGVyeSc7XG5leHBvcnQgY29uc3QgUmVjb3JkU3BlZWROZXh0ID0gJ1JlY29yZFNwZWVkTmV4dCc7XG5leHBvcnQgY29uc3QgUmZCeXBhc3MgPSAnUmZCeXBhc3MnO1xuZXhwb3J0IGNvbnN0IFNjYW5DaGFubmVsc1RvZ2dsZSA9ICdTY2FuQ2hhbm5lbHNUb2dnbGUnO1xuZXhwb3J0IGNvbnN0IFNjcmVlbk1vZGVOZXh0ID0gJ1NjcmVlbk1vZGVOZXh0JztcbmV4cG9ydCBjb25zdCBTZXR0aW5ncyA9ICdTZXR0aW5ncyc7XG5leHBvcnQgY29uc3QgU3BsaXRTY3JlZW5Ub2dnbGUgPSAnU3BsaXRTY3JlZW5Ub2dnbGUnO1xuZXhwb3J0IGNvbnN0IFNUQklucHV0ID0gJ1NUQklucHV0JztcbmV4cG9ydCBjb25zdCBTVEJQb3dlciA9ICdTVEJQb3dlcic7XG5leHBvcnQgY29uc3QgU3VidGl0bGUgPSAnU3VidGl0bGUnO1xuZXhwb3J0IGNvbnN0IFRlbGV0ZXh0ID0gJ1RlbGV0ZXh0JztcbmV4cG9ydCBjb25zdCBWaWRlb01vZGVOZXh0ID0gJ1ZpZGVvTW9kZU5leHQnO1xuZXhwb3J0IGNvbnN0IFdpbmsgPSAnV2luayc7XG5leHBvcnQgY29uc3QgWm9vbVRvZ2dsZSA9ICdab29tVG9nZ2xlJztcbmV4cG9ydCBjb25zdCBNZWRpYU5leHRUcmFjayA9ICdNZWRpYU5leHRUcmFjayc7XG5leHBvcnQgY29uc3QgTWVkaWFQcmV2aW91c1RyYWNrID0gJ01lZGlhUHJldmlvdXNUcmFjayc7XG5leHBvcnQgY29uc3QgVW5pZGVudGlmaWVkID0gJ1VuaWRlbnRpZmllZCc7XG4iLCJpbXBvcnQgeyBFbnRlciwgU3BhY2UgfSBmcm9tICdAZmx1ZW50dWkva2V5Ym9hcmQta2V5cyc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICpcbiAqIEJ1dHRvbiBrZXlib2FyZCBoYW5kbGluZywgcm9sZSwgZGlzYWJsZWQgYW5kIHRhYkluZGV4IGltcGxlbWVudGF0aW9uIHRoYXQgZW5zdXJlcyBBUklBIHNwZWNcbiAqIGZvciBtdWx0aXBsZSBzY2VuYXJpb3Mgb2Ygbm9uIG5hdGl2ZSBidXR0b24gZWxlbWVudHMuIEVuc3VyaW5nIDFzdCBydWxlIG9mIEFSSUEgZm9yIGNhc2VzXG4gKiB3aGVyZSBubyBhdHRyaWJ1dGUgYWRkaXRpb24gaXMgcmVxdWlyZWQuXG4gKlxuICogQHBhcmFtIHR5cGUgLSB0aGUgcHJvcGVyIHNjZW5hcmlvIHRvIGJlIGludGVycHJldGVkIGJ5IHRoZSBob29rLlxuICogIDEuIGBidXR0b25gIC0gTWluaW1hbCBpbnRlcmZlcmVuY2UgZnJvbSB0aGUgaG9vaywgYXMgc2VtYW50aWMgYnV0dG9uIGFscmVhZHkgc3VwcG9ydHMgbW9zdCBvZiB0aGUgc3RhdGVzXG4gKiAgMi4gYGFgIG9yIGBkaXZgIC0gUHJvcGVyIGtleWJvYXJkL21vdXNlIGhhbmRsaW5nIHBsdXMgb3RoZXIgc3VwcG9ydCB0byBlbnN1cmUgQVJJQSBiZWhhdmlvclxuICogQHBhcmFtIHByb3BzIC0gdGhlIHByb3BzIHRvIGJlIHBhc3NlZCBkb3duIHRoZSBsaW5lIHRvIHRoZSBkZXNpcmVkIGVsZW1lbnQuXG4gKiBUaGlzIGhvb2sgd2lsbCBlbmNhcHN1bGF0ZSBwcm9wZXIgcHJvcGVydGllcywgc3VjaCBhcyBgb25DbGlja2AsIGBvbktleURvd25gLCBgb25LZXlVcGAsIGV0YywuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgYnV0dG9uUHJvcHMgPSB1c2VBUklBQnV0dG9uUHJvcHMoJ2EnLCB7XG4gKiAgIGhyZWY6ICcuL3NvbWUtcm91dGUnXG4gKiAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCd0aGlzIHNob3VsZCBydW4gYm90aCBvbiBjbGljayBhbmQgU3BhY2UgYW5kIEVudGVyJylcbiAqIH0pXG4gKlxuICogLy8gLi4uXG4gKlxuICogcmV0dXJuIChcbiAqICA8YSB7Li4uYnV0dG9uUHJvcHN9PlRoaXMgYW5jaG9yIHdpbGwgYmVoYXZlIGFzIGEgcHJvcGVyIGJ1dHRvbjwvYT5cbiAqIClcbiAqIGBgYFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VBUklBQnV0dG9uUHJvcHModHlwZSwgcHJvcHMpIHtcbiAgICBjb25zdCB7IGRpc2FibGVkLCBkaXNhYmxlZEZvY3VzYWJsZSA9IGZhbHNlLCBbJ2FyaWEtZGlzYWJsZWQnXTogYXJpYURpc2FibGVkLCBvbkNsaWNrLCBvbktleURvd24sIG9uS2V5VXAsIC4uLnJlc3QgfSA9IHByb3BzICE9PSBudWxsICYmIHByb3BzICE9PSB2b2lkIDAgPyBwcm9wcyA6IHt9O1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRBUklBRGlzYWJsZWQgPSB0eXBlb2YgYXJpYURpc2FibGVkID09PSAnc3RyaW5nJyA/IGFyaWFEaXNhYmxlZCA9PT0gJ3RydWUnIDogYXJpYURpc2FibGVkO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCBkaXNhYmxlZEZvY3VzYWJsZSB8fCBub3JtYWxpemVkQVJJQURpc2FibGVkO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXYpPT57XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbkNsaWNrID09PSBudWxsIHx8IG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xpY2soZXYpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2KT0+e1xuICAgICAgICBvbktleURvd24gPT09IG51bGwgfHwgb25LZXlEb3duID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbktleURvd24oZXYpO1xuICAgICAgICBpZiAoZXYuaXNEZWZhdWx0UHJldmVudGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXkgPSBldi5rZXk7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkICYmIChrZXkgPT09IEVudGVyIHx8IGtleSA9PT0gU3BhY2UpKSB7XG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gU3BhY2UpIHtcbiAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBFbnRlcikge1xuICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUtleVVwID0gdXNlRXZlbnRDYWxsYmFjaygoZXYpPT57XG4gICAgICAgIG9uS2V5VXAgPT09IG51bGwgfHwgb25LZXlVcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25LZXlVcChldik7XG4gICAgICAgIGlmIChldi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IGV2LmtleTtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQgJiYgKGtleSA9PT0gRW50ZXIgfHwga2V5ID09PSBTcGFjZSkpIHtcbiAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSBTcGFjZSkge1xuICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIElmIGEgPGJ1dHRvbj4gdGFnIGlzIHRvIGJlIHJlbmRlcmVkIHdlIGp1c3QgbmVlZCB0byBzZXQgZGlzYWJsZWQgYW5kIGFyaWEtZGlzYWJsZWQgY29ycmVjdGx5XG4gICAgaWYgKHR5cGUgPT09ICdidXR0b24nIHx8IHR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCAmJiAhZGlzYWJsZWRGb2N1c2FibGUsXG4gICAgICAgICAgICAnYXJpYS1kaXNhYmxlZCc6IGRpc2FibGVkRm9jdXNhYmxlID8gdHJ1ZSA6IG5vcm1hbGl6ZWRBUklBRGlzYWJsZWQsXG4gICAgICAgICAgICAvLyBvbmNsaWNrIHNob3VsZCBzdGlsbCB1c2UgaW50ZXJuYWwgaGFuZGxlciB0byBlbnN1cmUgcHJldmVudGlvbiBpZiBkaXNhYmxlZFxuICAgICAgICAgICAgLy8gaWYgZGlzYWJsZWRGb2N1c2FibGUgdGhlbiB0aGVyZSdzIG5vIHJlcXVpcmVtZW50IGZvciBoYW5kbGVycyBhcyB0aG9zZSBldmVudHMgc2hvdWxkIG5vdCBiZSBwcm9wYWdhdGVkXG4gICAgICAgICAgICBvbkNsaWNrOiBkaXNhYmxlZEZvY3VzYWJsZSA/IHVuZGVmaW5lZCA6IGhhbmRsZUNsaWNrLFxuICAgICAgICAgICAgb25LZXlVcDogZGlzYWJsZWRGb2N1c2FibGUgPyB1bmRlZmluZWQgOiBvbktleVVwLFxuICAgICAgICAgICAgb25LZXlEb3duOiBkaXNhYmxlZEZvY3VzYWJsZSA/IHVuZGVmaW5lZCA6IG9uS2V5RG93blxuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdFByb3BzID0ge1xuICAgICAgICAgICAgcm9sZTogJ2J1dHRvbicsXG4gICAgICAgICAgICB0YWJJbmRleDogZGlzYWJsZWQgJiYgIWRpc2FibGVkRm9jdXNhYmxlID8gdW5kZWZpbmVkIDogMCxcbiAgICAgICAgICAgIC4uLnJlc3QsXG4gICAgICAgICAgICAvLyBJZiBpdCdzIG5vdCBhIDxidXR0b24+IHRoYW4gbGlzdGVuZXJzIGFyZSByZXF1aXJlZCBldmVuIHdpdGggZGlzYWJsZWRGb2N1c2FibGVcbiAgICAgICAgICAgIC8vIFNpbmNlIHlvdSBjYW5ub3QgYXNzdXJlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAvLyBFLmc6IDxhPiB3aWxsIHJlZGlyZWN0IG9uIGNsaWNrXG4gICAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAgICAgICAgIG9uS2V5VXA6IGhhbmRsZUtleVVwLFxuICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxuICAgICAgICAgICAgJ2FyaWEtZGlzYWJsZWQnOiBkaXNhYmxlZCB8fCBkaXNhYmxlZEZvY3VzYWJsZSB8fCBub3JtYWxpemVkQVJJQURpc2FibGVkXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0eXBlID09PSAnYScgJiYgaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmVzdWx0UHJvcHMuaHJlZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0UHJvcHM7XG4gICAgfVxufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3Qgbm9vcCA9ICgpPT51bmRlZmluZWQ7XG5jb25zdCBhY3RpdmVEZXNjZW5kYW50Q29udGV4dERlZmF1bHRWYWx1ZSA9IHtcbiAgICBjb250cm9sbGVyOiB7XG4gICAgICAgIGFjdGl2ZTogbm9vcCxcbiAgICAgICAgYmx1cjogbm9vcCxcbiAgICAgICAgZmluZDogbm9vcCxcbiAgICAgICAgZmlyc3Q6IG5vb3AsXG4gICAgICAgIGZvY3VzOiBub29wLFxuICAgICAgICBmb2N1c0xhc3RBY3RpdmU6IG5vb3AsXG4gICAgICAgIHNjcm9sbEFjdGl2ZUludG9WaWV3OiBub29wLFxuICAgICAgICBsYXN0OiBub29wLFxuICAgICAgICBuZXh0OiBub29wLFxuICAgICAgICBwcmV2OiBub29wLFxuICAgICAgICBzaG93QXR0cmlidXRlczogbm9vcCxcbiAgICAgICAgaGlkZUF0dHJpYnV0ZXM6IG5vb3AsXG4gICAgICAgIHNob3dGb2N1c1Zpc2libGVBdHRyaWJ1dGVzOiBub29wLFxuICAgICAgICBoaWRlRm9jdXNWaXNpYmxlQXR0cmlidXRlczogbm9vcFxuICAgIH1cbn07XG5jb25zdCBBY3RpdmVEZXNjZW5kYW50Q29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCBBY3RpdmVEZXNjZW5kYW50Q29udGV4dFByb3ZpZGVyID0gQWN0aXZlRGVzY2VuZGFudENvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlQWN0aXZlRGVzY2VuZGFudENvbnRleHQgPSAoKT0+e1xuICAgIHZhciBfUmVhY3RfdXNlQ29udGV4dDtcbiAgICByZXR1cm4gKF9SZWFjdF91c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChBY3RpdmVEZXNjZW5kYW50Q29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IGFjdGl2ZURlc2NlbmRhbnRDb250ZXh0RGVmYXVsdFZhbHVlO1xufTtcbmV4cG9ydCBjb25zdCB1c2VIYXNQYXJlbnRBY3RpdmVEZXNjZW5kYW50Q29udGV4dCA9ICgpPT4hIVJlYWN0LnVzZUNvbnRleHQoQWN0aXZlRGVzY2VuZGFudENvbnRleHQpO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU9wdGlvbldhbGtlcihvcHRpb25zKSB7XG4gICAgY29uc3QgeyBtYXRjaE9wdGlvbiB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCB0cmVlV2Fsa2VyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGxpc3Rib3hSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3B0aW9uRmlsdGVyID0gUmVhY3QudXNlQ2FsbGJhY2soKG5vZGUpPT57XG4gICAgICAgIGlmIChpc0hUTUxFbGVtZW50KG5vZGUpICYmIG1hdGNoT3B0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH0sIFtcbiAgICAgICAgbWF0Y2hPcHRpb25cbiAgICBdKTtcbiAgICBjb25zdCBzZXRMaXN0Ym94ID0gUmVhY3QudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAoZWwgJiYgdGFyZ2V0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIGxpc3Rib3hSZWYuY3VycmVudCA9IGVsO1xuICAgICAgICAgICAgdHJlZVdhbGtlclJlZi5jdXJyZW50ID0gdGFyZ2V0RG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlbCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG9wdGlvbkZpbHRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0Ym94UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgb3B0aW9uRmlsdGVyXG4gICAgXSk7XG4gICAgY29uc3Qgb3B0aW9uV2Fsa2VyID0gUmVhY3QudXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIGZpcnN0OiAoKT0+e1xuICAgICAgICAgICAgICAgIGlmICghdHJlZVdhbGtlclJlZi5jdXJyZW50IHx8ICFsaXN0Ym94UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyZWVXYWxrZXJSZWYuY3VycmVudC5jdXJyZW50Tm9kZSA9IGxpc3Rib3hSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJlZVdhbGtlclJlZi5jdXJyZW50LmZpcnN0Q2hpbGQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0OiAoKT0+e1xuICAgICAgICAgICAgICAgIGlmICghdHJlZVdhbGtlclJlZi5jdXJyZW50IHx8ICFsaXN0Ym94UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyZWVXYWxrZXJSZWYuY3VycmVudC5jdXJyZW50Tm9kZSA9IGxpc3Rib3hSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJlZVdhbGtlclJlZi5jdXJyZW50Lmxhc3RDaGlsZCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHQ6ICgpPT57XG4gICAgICAgICAgICAgICAgaWYgKCF0cmVlV2Fsa2VyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQubmV4dE5vZGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmV2OiAoKT0+e1xuICAgICAgICAgICAgICAgIGlmICghdHJlZVdhbGtlclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJlZVdhbGtlclJlZi5jdXJyZW50LnByZXZpb3VzTm9kZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpbmQ6IChwcmVkaWNhdGUsIHN0YXJ0RnJvbSk9PntcbiAgICAgICAgICAgICAgICBpZiAoIXRyZWVXYWxrZXJSZWYuY3VycmVudCB8fCAhbGlzdGJveFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0RnJvbSA/IHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdGFydEZyb20pIDogbnVsbDtcbiAgICAgICAgICAgICAgICB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQuY3VycmVudE5vZGUgPSBzdGFydCAhPT0gbnVsbCAmJiBzdGFydCAhPT0gdm9pZCAwID8gc3RhcnQgOiBsaXN0Ym94UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgbGV0IGN1ciA9IHRyZWVXYWxrZXJSZWYuY3VycmVudC5jdXJyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB3aGlsZShjdXIgJiYgIXByZWRpY2F0ZShjdXIuaWQpKXtcbiAgICAgICAgICAgICAgICAgICAgY3VyID0gdHJlZVdhbGtlclJlZi5jdXJyZW50Lm5leHROb2RlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjdXI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0Q3VycmVudDogKGVsKT0+e1xuICAgICAgICAgICAgICAgIGlmICghdHJlZVdhbGtlclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJlZVdhbGtlclJlZi5jdXJyZW50LmN1cnJlbnROb2RlID0gZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBbXG4gICAgICAgIHRhcmdldERvY3VtZW50XG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3B0aW9uV2Fsa2VyLFxuICAgICAgICBsaXN0Ym94Q2FsbGJhY2tSZWY6IHNldExpc3Rib3hcbiAgICB9O1xufVxuIiwiLyoqXG4gKiBBcHBsaWVkIHRvIHRoZSBlbGVtZW50IHRoYXQgaXMgYWN0aXZlIGRlc2NlbmRhbnRcbiAqLyBleHBvcnQgY29uc3QgQUNUSVZFREVTQ0VOREFOVF9BVFRSSUJVVEUgPSAnZGF0YS1hY3RpdmVkZXNjZW5kYW50Jztcbi8qKlxuICogQXBwbGllZCB0byB0aGUgYWN0aXZlIGRlc2NlbmRhbnQgd2hlbiB0aGUgdXNlciBpcyBuYXZpZ2F0aW5nIHdpdGgga2V5Ym9hcmRcbiAqLyBleHBvcnQgY29uc3QgQUNUSVZFREVTQ0VOREFOVF9GT0NVU1ZJU0lCTEVfQVRUUklCVVRFID0gJ2RhdGEtYWN0aXZlZGVzY2VuZGFudC1mb2N1c3Zpc2libGUnO1xuIiwiZXhwb3J0IGNvbnN0IHNjcm9sbEludG9WaWV3ID0gKHRhcmdldCk9PntcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNjcm9sbFBhcmVudCA9IGZpbmRTY3JvbGxhYmxlUGFyZW50KHRhcmdldC5wYXJlbnRFbGVtZW50KTtcbiAgICBpZiAoIXNjcm9sbFBhcmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgb2Zmc2V0SGVpZ2h0IH0gPSB0YXJnZXQ7XG4gICAgY29uc3Qgb2Zmc2V0VG9wID0gZ2V0VG90YWxPZmZzZXRUb3AodGFyZ2V0LCBzY3JvbGxQYXJlbnQpO1xuICAgIGNvbnN0IHsgc2Nyb2xsTWFyZ2luVG9wLCBzY3JvbGxNYXJnaW5Cb3R0b20gfSA9IGdldFNjcm9sbE1hcmdpbnModGFyZ2V0KTtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogcGFyZW50T2Zmc2V0SGVpZ2h0LCBzY3JvbGxUb3AgfSA9IHNjcm9sbFBhcmVudDtcbiAgICBjb25zdCBpc0Fib3ZlID0gb2Zmc2V0VG9wIC0gc2Nyb2xsTWFyZ2luVG9wIDwgc2Nyb2xsVG9wO1xuICAgIGNvbnN0IGlzQmVsb3cgPSBvZmZzZXRUb3AgKyBvZmZzZXRIZWlnaHQgKyBzY3JvbGxNYXJnaW5Cb3R0b20gPiBzY3JvbGxUb3AgKyBwYXJlbnRPZmZzZXRIZWlnaHQ7XG4gICAgY29uc3QgYnVmZmVyID0gMjtcbiAgICBpZiAoaXNBYm92ZSkge1xuICAgICAgICBzY3JvbGxQYXJlbnQuc2Nyb2xsVG8oMCwgb2Zmc2V0VG9wIC0gc2Nyb2xsTWFyZ2luVG9wIC0gYnVmZmVyKTtcbiAgICB9IGVsc2UgaWYgKGlzQmVsb3cpIHtcbiAgICAgICAgc2Nyb2xsUGFyZW50LnNjcm9sbFRvKDAsIG9mZnNldFRvcCArIG9mZnNldEhlaWdodCArIHNjcm9sbE1hcmdpbkJvdHRvbSAtIHBhcmVudE9mZnNldEhlaWdodCArIGJ1ZmZlcik7XG4gICAgfVxufTtcbmNvbnN0IGZpbmRTY3JvbGxhYmxlUGFyZW50ID0gKGVsZW1lbnQpPT57XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5zY3JvbGxIZWlnaHQgPiBlbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG4gICAgcmV0dXJuIGZpbmRTY3JvbGxhYmxlUGFyZW50KGVsZW1lbnQucGFyZW50RWxlbWVudCk7XG59O1xuY29uc3QgZ2V0VG90YWxPZmZzZXRUb3AgPSAoZWxlbWVudCwgc2Nyb2xsUGFyZW50KT0+e1xuICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50ID09PSBzY3JvbGxQYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LmNvbnRhaW5zKHNjcm9sbFBhcmVudCkpIHtcbiAgICAgICAgLy8gc3VidHJhY3QgdGhlIHNjcm9sbCBwYXJlbnQncyBvZmZzZXQgdG9wIGZyb20gdGhlIHJ1bm5pbmcgdG90YWwgaWYgdGhlIG9mZnNldFBhcmVudCBpcyBhYm92ZSBpdFxuICAgICAgICByZXR1cm4gc2Nyb2xsUGFyZW50Lm9mZnNldFRvcCAqIC0xO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudC5vZmZzZXRUb3AgKyBnZXRUb3RhbE9mZnNldFRvcChlbGVtZW50Lm9mZnNldFBhcmVudCwgc2Nyb2xsUGFyZW50KTtcbn07XG5jb25zdCBnZXRTY3JvbGxNYXJnaW5zID0gKGVsZW1lbnQpPT57XG4gICAgdmFyIF9lbGVtZW50X293bmVyRG9jdW1lbnQ7XG4gICAgY29uc3Qgd2luID0gKF9lbGVtZW50X293bmVyRG9jdW1lbnQgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09PSBudWxsIHx8IF9lbGVtZW50X293bmVyRG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lbGVtZW50X293bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgaWYgKCF3aW4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjcm9sbE1hcmdpblRvcDogMCxcbiAgICAgICAgICAgIHNjcm9sbE1hcmdpbkJvdHRvbTogMFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBjb21wdXRlZFN0eWxlcyA9IHdpbi5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIHZhciBfZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGU7XG4gICAgY29uc3Qgc2Nyb2xsTWFyZ2luVG9wID0gKF9nZXRJbnRWYWx1ZU9mQ29tcHV0ZWRTdHlsZSA9IGdldEludFZhbHVlT2ZDb21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGVzLnNjcm9sbE1hcmdpblRvcCkpICE9PSBudWxsICYmIF9nZXRJbnRWYWx1ZU9mQ29tcHV0ZWRTdHlsZSAhPT0gdm9pZCAwID8gX2dldEludFZhbHVlT2ZDb21wdXRlZFN0eWxlIDogZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGUoY29tcHV0ZWRTdHlsZXMuc2Nyb2xsTWFyZ2luQmxvY2tTdGFydCk7XG4gICAgdmFyIF9nZXRJbnRWYWx1ZU9mQ29tcHV0ZWRTdHlsZTE7XG4gICAgY29uc3Qgc2Nyb2xsTWFyZ2luQm90dG9tID0gKF9nZXRJbnRWYWx1ZU9mQ29tcHV0ZWRTdHlsZTEgPSBnZXRJbnRWYWx1ZU9mQ29tcHV0ZWRTdHlsZShjb21wdXRlZFN0eWxlcy5zY3JvbGxNYXJnaW5Cb3R0b20pKSAhPT0gbnVsbCAmJiBfZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGUxICE9PSB2b2lkIDAgPyBfZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGUxIDogZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGUoY29tcHV0ZWRTdHlsZXMuc2Nyb2xsTWFyZ2luQmxvY2tFbmQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjcm9sbE1hcmdpblRvcCxcbiAgICAgICAgc2Nyb2xsTWFyZ2luQm90dG9tXG4gICAgfTtcbn07XG5jb25zdCBnZXRJbnRWYWx1ZU9mQ29tcHV0ZWRTdHlsZSA9IChjb21wdXRlZFN0eWxlKT0+e1xuICAgIHJldHVybiBjb21wdXRlZFN0eWxlID8gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZSwgMTApIDogMDtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrLCB1c2VNZXJnZWRSZWZzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VPbktleWJvYXJkTmF2aWdhdGlvbkNoYW5nZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHVzZU9wdGlvbldhbGtlciB9IGZyb20gJy4vdXNlT3B0aW9uV2Fsa2VyJztcbmltcG9ydCB7IEFDVElWRURFU0NFTkRBTlRfQVRUUklCVVRFLCBBQ1RJVkVERVNDRU5EQU5UX0ZPQ1VTVklTSUJMRV9BVFRSSUJVVEUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzY3JvbGxJbnRvVmlldyB9IGZyb20gJy4vc2Nyb2xsSW50b1ZpZXcnO1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VFdmVudCA9IChkZXRhaWwpPT5uZXcgQ3VzdG9tRXZlbnQoJ2FjdGl2ZWRlc2NlbmRhbnRjaGFuZ2UnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgZGV0YWlsXG4gICAgfSk7XG5leHBvcnQgZnVuY3Rpb24gdXNlQWN0aXZlRGVzY2VuZGFudChvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpbXBlcmF0aXZlUmVmLCBtYXRjaE9wdGlvbjogbWF0Y2hPcHRpb25VbnN0YWJsZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBmb2N1c1Zpc2libGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHNob3VsZFNob3dGb2N1c1Zpc2libGVBdHRyUmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICAgIGNvbnN0IGFjdGl2ZUlkUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGxhc3RBY3RpdmVJZFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBhY3RpdmVQYXJlbnRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgYXR0cmlidXRlVmlzaWJpbGl0eVJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcbiAgICBjb25zdCByZW1vdmVBdHRyaWJ1dGUgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICB2YXIgX2FjdGl2ZVBhcmVudFJlZl9jdXJyZW50O1xuICAgICAgICAoX2FjdGl2ZVBhcmVudFJlZl9jdXJyZW50ID0gYWN0aXZlUGFyZW50UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hY3RpdmVQYXJlbnRSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FjdGl2ZVBhcmVudFJlZl9jdXJyZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50Jyk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IHNldEF0dHJpYnV0ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKChpZCk9PntcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBhY3RpdmVJZFJlZi5jdXJyZW50ID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF0dHJpYnV0ZVZpc2liaWxpdHlSZWYuY3VycmVudCAmJiBhY3RpdmVJZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICB2YXIgX2FjdGl2ZVBhcmVudFJlZl9jdXJyZW50O1xuICAgICAgICAgICAgKF9hY3RpdmVQYXJlbnRSZWZfY3VycmVudCA9IGFjdGl2ZVBhcmVudFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYWN0aXZlUGFyZW50UmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hY3RpdmVQYXJlbnRSZWZfY3VycmVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIGFjdGl2ZUlkUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIHVzZU9uS2V5Ym9hcmROYXZpZ2F0aW9uQ2hhbmdlKChpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpPT57XG4gICAgICAgIGZvY3VzVmlzaWJsZVJlZi5jdXJyZW50ID0gaXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkO1xuICAgICAgICBjb25zdCBhY3RpdmUgPSBnZXRBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgIGlmICghYWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCAmJiBzaG91bGRTaG93Rm9jdXNWaXNpYmxlQXR0clJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBhY3RpdmUuc2V0QXR0cmlidXRlKEFDVElWRURFU0NFTkRBTlRfRk9DVVNWSVNJQkxFX0FUVFJJQlVURSwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWN0aXZlLnJlbW92ZUF0dHJpYnV0ZShBQ1RJVkVERVNDRU5EQU5UX0ZPQ1VTVklTSUJMRV9BVFRSSUJVVEUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgbWF0Y2hPcHRpb24gPSB1c2VFdmVudENhbGxiYWNrKG1hdGNoT3B0aW9uVW5zdGFibGUpO1xuICAgIGNvbnN0IGxpc3Rib3hSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgeyBvcHRpb25XYWxrZXIsIGxpc3Rib3hDYWxsYmFja1JlZiB9ID0gdXNlT3B0aW9uV2Fsa2VyKHtcbiAgICAgICAgbWF0Y2hPcHRpb25cbiAgICB9KTtcbiAgICBjb25zdCBnZXRBY3RpdmVEZXNjZW5kYW50ID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgdmFyIF9saXN0Ym94UmVmX2N1cnJlbnQ7XG4gICAgICAgIHJldHVybiAoX2xpc3Rib3hSZWZfY3VycmVudCA9IGxpc3Rib3hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2xpc3Rib3hSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2xpc3Rib3hSZWZfY3VycmVudC5xdWVyeVNlbGVjdG9yKGAjJHthY3RpdmVJZFJlZi5jdXJyZW50fWApO1xuICAgIH0sIFtcbiAgICAgICAgbGlzdGJveFJlZlxuICAgIF0pO1xuICAgIGNvbnN0IHNldFNob3VsZFNob3dGb2N1c1Zpc2libGVBdHRyaWJ1dGUgPSBSZWFjdC51c2VDYWxsYmFjaygoc2hvdWxkU2hvdyk9PntcbiAgICAgICAgc2hvdWxkU2hvd0ZvY3VzVmlzaWJsZUF0dHJSZWYuY3VycmVudCA9IHNob3VsZFNob3c7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9IGdldEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkU2hvdyAmJiBmb2N1c1Zpc2libGVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgYWN0aXZlLnNldEF0dHJpYnV0ZShBQ1RJVkVERVNDRU5EQU5UX0ZPQ1VTVklTSUJMRV9BVFRSSUJVVEUsICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjdGl2ZS5yZW1vdmVBdHRyaWJ1dGUoQUNUSVZFREVTQ0VOREFOVF9GT0NVU1ZJU0lCTEVfQVRUUklCVVRFKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgZ2V0QWN0aXZlRGVzY2VuZGFudFxuICAgIF0pO1xuICAgIGNvbnN0IGJsdXJBY3RpdmVEZXNjZW5kYW50ID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgY29uc3QgYWN0aXZlID0gZ2V0QWN0aXZlRGVzY2VuZGFudCgpO1xuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICBhY3RpdmUucmVtb3ZlQXR0cmlidXRlKEFDVElWRURFU0NFTkRBTlRfQVRUUklCVVRFKTtcbiAgICAgICAgICAgIGFjdGl2ZS5yZW1vdmVBdHRyaWJ1dGUoQUNUSVZFREVTQ0VOREFOVF9GT0NVU1ZJU0lCTEVfQVRUUklCVVRFKTtcbiAgICAgICAgfVxuICAgICAgICByZW1vdmVBdHRyaWJ1dGUoKTtcbiAgICAgICAgbGFzdEFjdGl2ZUlkUmVmLmN1cnJlbnQgPSBhY3RpdmVJZFJlZi5jdXJyZW50O1xuICAgICAgICBhY3RpdmVJZFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgdmFyIF9hY3RpdmVfaWQ7XG4gICAgICAgIHJldHVybiAoX2FjdGl2ZV9pZCA9IGFjdGl2ZSA9PT0gbnVsbCB8fCBhY3RpdmUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZS5pZCkgIT09IG51bGwgJiYgX2FjdGl2ZV9pZCAhPT0gdm9pZCAwID8gX2FjdGl2ZV9pZCA6IG51bGw7XG4gICAgfSwgW1xuICAgICAgICBnZXRBY3RpdmVEZXNjZW5kYW50LFxuICAgICAgICByZW1vdmVBdHRyaWJ1dGVcbiAgICBdKTtcbiAgICBjb25zdCBmb2N1c0FjdGl2ZURlc2NlbmRhbnQgPSBSZWFjdC51c2VDYWxsYmFjaygobmV4dEFjdGl2ZSk9PntcbiAgICAgICAgaWYgKCFuZXh0QWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJldmlvdXNBY3RpdmVJZCA9IGJsdXJBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgIHNjcm9sbEludG9WaWV3KG5leHRBY3RpdmUpO1xuICAgICAgICBzZXRBdHRyaWJ1dGUobmV4dEFjdGl2ZS5pZCk7XG4gICAgICAgIG5leHRBY3RpdmUuc2V0QXR0cmlidXRlKEFDVElWRURFU0NFTkRBTlRfQVRUUklCVVRFLCAnJyk7XG4gICAgICAgIGlmIChmb2N1c1Zpc2libGVSZWYuY3VycmVudCAmJiBzaG91bGRTaG93Rm9jdXNWaXNpYmxlQXR0clJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBuZXh0QWN0aXZlLnNldEF0dHJpYnV0ZShBQ1RJVkVERVNDRU5EQU5UX0ZPQ1VTVklTSUJMRV9BVFRSSUJVVEUsICcnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBldmVudCA9IGNyZWF0ZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VFdmVudCh7XG4gICAgICAgICAgICBpZDogbmV4dEFjdGl2ZS5pZCxcbiAgICAgICAgICAgIHByZXZpb3VzSWQ6IHByZXZpb3VzQWN0aXZlSWRcbiAgICAgICAgfSk7XG4gICAgICAgIG5leHRBY3RpdmUuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgfSwgW1xuICAgICAgICBibHVyQWN0aXZlRGVzY2VuZGFudCxcbiAgICAgICAgc2V0QXR0cmlidXRlXG4gICAgXSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IFJlYWN0LnVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICBmaXJzdDogKHsgcGFzc2l2ZSB9ID0ge30pPT57XG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3QgPSBvcHRpb25XYWxrZXIuZmlyc3QoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhc3NpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNBY3RpdmVEZXNjZW5kYW50KGZpcnN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0ID09PSBudWxsIHx8IGZpcnN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdC5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0OiAoeyBwYXNzaXZlIH0gPSB7fSk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gb3B0aW9uV2Fsa2VyLmxhc3QoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhc3NpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNBY3RpdmVEZXNjZW5kYW50KGxhc3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdCA9PT0gbnVsbCB8fCBsYXN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsYXN0LmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHQ6ICh7IHBhc3NpdmUgfSA9IHt9KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGdldEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9wdGlvbldhbGtlci5zZXRDdXJyZW50KGFjdGl2ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IG9wdGlvbldhbGtlci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXNzaXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzQWN0aXZlRGVzY2VuZGFudChuZXh0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQgPT09IG51bGwgfHwgbmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dC5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmV2OiAoeyBwYXNzaXZlIH0gPSB7fSk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBnZXRBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25XYWxrZXIuc2V0Q3VycmVudChhY3RpdmUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSBvcHRpb25XYWxrZXIucHJldigpO1xuICAgICAgICAgICAgICAgIGlmICghcGFzc2l2ZSkge1xuICAgICAgICAgICAgICAgICAgICBmb2N1c0FjdGl2ZURlc2NlbmRhbnQobmV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0ID09PSBudWxsIHx8IG5leHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5leHQuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmx1cjogKCk9PntcbiAgICAgICAgICAgICAgICBibHVyQWN0aXZlRGVzY2VuZGFudCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjdGl2ZTogKCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX2dldEFjdGl2ZURlc2NlbmRhbnQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfZ2V0QWN0aXZlRGVzY2VuZGFudCA9IGdldEFjdGl2ZURlc2NlbmRhbnQoKSkgPT09IG51bGwgfHwgX2dldEFjdGl2ZURlc2NlbmRhbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nZXRBY3RpdmVEZXNjZW5kYW50LmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvY3VzOiAoaWQpPT57XG4gICAgICAgICAgICAgICAgaWYgKCFsaXN0Ym94UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBsaXN0Ym94UmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgIyR7aWR9YCk7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBmb2N1c0FjdGl2ZURlc2NlbmRhbnQodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9jdXNMYXN0QWN0aXZlOiAoKT0+e1xuICAgICAgICAgICAgICAgIGlmICghbGlzdGJveFJlZi5jdXJyZW50IHx8ICFsYXN0QWN0aXZlSWRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGxpc3Rib3hSZWYuY3VycmVudC5xdWVyeVNlbGVjdG9yKGAjJHtsYXN0QWN0aXZlSWRSZWYuY3VycmVudH1gKTtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzQWN0aXZlRGVzY2VuZGFudCh0YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmluZCAocHJlZGljYXRlLCB7IHBhc3NpdmUsIHN0YXJ0RnJvbSB9ID0ge30pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25XYWxrZXIuZmluZChwcmVkaWNhdGUsIHN0YXJ0RnJvbSk7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXNzaXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzQWN0aXZlRGVzY2VuZGFudCh0YXJnZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNjcm9sbEFjdGl2ZUludG9WaWV3OiAoKT0+e1xuICAgICAgICAgICAgICAgIGlmICghbGlzdGJveFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gZ2V0QWN0aXZlRGVzY2VuZGFudCgpO1xuICAgICAgICAgICAgICAgIGlmICghYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXcoYWN0aXZlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaG93QXR0cmlidXRlcyAoKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlVmlzaWJpbGl0eVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRBdHRyaWJ1dGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoaWRlQXR0cmlidXRlcyAoKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlVmlzaWJpbGl0eVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQXR0cmlidXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2hvd0ZvY3VzVmlzaWJsZUF0dHJpYnV0ZXMgKCkge1xuICAgICAgICAgICAgICAgIHNldFNob3VsZFNob3dGb2N1c1Zpc2libGVBdHRyaWJ1dGUodHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGlkZUZvY3VzVmlzaWJsZUF0dHJpYnV0ZXMgKCkge1xuICAgICAgICAgICAgICAgIHNldFNob3VsZFNob3dGb2N1c1Zpc2libGVBdHRyaWJ1dGUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgW1xuICAgICAgICBvcHRpb25XYWxrZXIsXG4gICAgICAgIGxpc3Rib3hSZWYsXG4gICAgICAgIHNldEF0dHJpYnV0ZSxcbiAgICAgICAgcmVtb3ZlQXR0cmlidXRlLFxuICAgICAgICBmb2N1c0FjdGl2ZURlc2NlbmRhbnQsXG4gICAgICAgIGJsdXJBY3RpdmVEZXNjZW5kYW50LFxuICAgICAgICBnZXRBY3RpdmVEZXNjZW5kYW50LFxuICAgICAgICBzZXRTaG91bGRTaG93Rm9jdXNWaXNpYmxlQXR0cmlidXRlXG4gICAgXSk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShpbXBlcmF0aXZlUmVmLCAoKT0+Y29udHJvbGxlcik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGlzdGJveFJlZjogdXNlTWVyZ2VkUmVmcyhsaXN0Ym94UmVmLCBsaXN0Ym94Q2FsbGJhY2tSZWYpLFxuICAgICAgICBhY3RpdmVQYXJlbnRSZWYsXG4gICAgICAgIGNvbnRyb2xsZXJcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgdXNlSWNvbkNvbnRleHQgfSBmcm9tIFwiLi4vY29udGV4dHNcIjtcbmltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tIFwiQGdyaWZmZWwvcmVhY3RcIjtcbmNvbnN0IHVzZVJvb3RTdHlsZXMgPSBfX3N0eWxlcyh7XG4gIFwicm9vdFwiOiB7XG4gICAgXCJtYzlsNXhcIjogXCJmMXc3Z3BkdlwiLFxuICAgIFwiQmc5Nmd3cFwiOiBcImZlejEwaW5cIixcbiAgICBcInljYmZzbVwiOiBcImZnNGw3bTBcIlxuICB9LFxuICBcInJ0bFwiOiB7XG4gICAgXCJCejEwYWlwXCI6IFwiZjEzcm9kN3JcIlxuICB9XG59LCB7XG4gIFwiZFwiOiBbXCIuZjF3N2dwZHZ7ZGlzcGxheTppbmxpbmU7fVwiLCBcIi5mZXoxMGlue2xpbmUtaGVpZ2h0OjA7fVwiLCBcIi5mMTNyb2Q3cnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoLTEpOy1tb3otdHJhbnNmb3JtOnNjYWxlWCgtMSk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoLTEpO3RyYW5zZm9ybTpzY2FsZVgoLTEpO31cIl0sXG4gIFwidFwiOiBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZnNGw3bTB7Zm9yY2VkLWNvbG9yLWFkanVzdDphdXRvO319XCJdXG59KTtcbmV4cG9ydCBjb25zdCB1c2VJY29uU3RhdGUgPSAocHJvcHMsIG9wdGlvbnMpID0+IHtcbiAgY29uc3Qge1xuICAgIHRpdGxlLFxuICAgIHByaW1hcnlGaWxsID0gXCJjdXJyZW50Q29sb3JcIixcbiAgICAuLi5yZXN0XG4gIH0gPSBwcm9wcztcbiAgY29uc3Qgc3RhdGUgPSB7XG4gICAgLi4ucmVzdCxcbiAgICB0aXRsZTogdW5kZWZpbmVkLFxuICAgIGZpbGw6IHByaW1hcnlGaWxsXG4gIH07XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVJvb3RTdHlsZXMoKTtcbiAgY29uc3QgaWNvbkNvbnRleHQgPSB1c2VJY29uQ29udGV4dCgpO1xuICBzdGF0ZS5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoc3R5bGVzLnJvb3QsIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmxpcEluUnRsKSAmJiAoaWNvbkNvbnRleHQgPT09IG51bGwgfHwgaWNvbkNvbnRleHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGljb25Db250ZXh0LnRleHREaXJlY3Rpb24pID09PSAncnRsJyAmJiBzdHlsZXMucnRsLCBzdGF0ZS5jbGFzc05hbWUpO1xuICBpZiAodGl0bGUpIHtcbiAgICBzdGF0ZVsnYXJpYS1sYWJlbCddID0gdGl0bGU7XG4gIH1cbiAgaWYgKCFzdGF0ZVsnYXJpYS1sYWJlbCddICYmICFzdGF0ZVsnYXJpYS1sYWJlbGxlZGJ5J10pIHtcbiAgICBzdGF0ZVsnYXJpYS1oaWRkZW4nXSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgc3RhdGVbJ3JvbGUnXSA9ICdpbWcnO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VJY29uU3RhdGUgfSBmcm9tIFwiLi91c2VJY29uU3RhdGVcIjtcbmV4cG9ydCBjb25zdCBjcmVhdGVGbHVlbnRJY29uID0gKGRpc3BsYXlOYW1lLCB3aWR0aCwgcGF0aHMsIG9wdGlvbnMpID0+IHtcbiAgY29uc3Qgdmlld0JveFdpZHRoID0gd2lkdGggPT09IFwiMWVtXCIgPyBcIjIwXCIgOiB3aWR0aDtcbiAgY29uc3QgSWNvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgIC4uLnVzZUljb25TdGF0ZShwcm9wcywge1xuICAgICAgICBmbGlwSW5SdGw6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5mbGlwSW5SdGxcbiAgICAgIH0pLFxuICAgICAgcmVmLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQ6IHdpZHRoLFxuICAgICAgdmlld0JveDogYDAgMCAke3ZpZXdCb3hXaWR0aH0gJHt2aWV3Qm94V2lkdGh9YCxcbiAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB9O1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIHN0YXRlLCAuLi5wYXRocy5tYXAoZCA9PiBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgICBkLFxuICAgICAgZmlsbDogc3RhdGUuZmlsbFxuICAgIH0pKSk7XG4gIH0pO1xuICBJY29uLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7XG4gIHJldHVybiBJY29uO1xufTsiLCJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgY3JlYXRlRmx1ZW50SWNvbiB9IGZyb20gXCIuLi91dGlscy9jcmVhdGVGbHVlbnRJY29uXCI7XG5leHBvcnQgY29uc3QgQWNjZXNzVGltZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NUaW1lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wk02Ljk5IDguNkEuNS41IDAgMCAxIDYgOC40Yy4wMi0uMDcuMDMtLjE0LjA3LS4yNGEyIDIgMCAwIDEgLjI1LS40NmMuMjYtLjM1LjcxLS43IDEuNDItLjdBMS43IDEuNyAwIDAgMSA5LjUgOC43NWMwIC4zNS0uMDcuNjUtLjIuOWExLjggMS44IDAgMCAxLS41MS42Yy0uMTYuMTEtLjMzLjIyLS40OC4zbC0uMDYuMDRjLS4xNy4xLS4zLjE5LS40Mi4yOS0uNC4zNC0uNjYuNy0uNzcgMS4xMkg5YS41LjUgMCAwIDEgMCAxSDYuNWEuNS41IDAgMCAxLS41LS41YzAtMS4wMS40Ny0xLjc3IDEuMTctMi4zOC4yLS4xNi40LS4yOS41Ny0uNGwuMDYtLjAzLjM4LS4yNGEuOC44IDAgMCAwIC4yMy0uMjZjLjA1LS4xLjA5LS4yMy4wOS0uNDRhLjguOCAwIDAgMC0uMTktLjUzLjcuNyAwIDAgMC0uNTYtLjIyLjcuNyAwIDAgMC0uNjEuMyAxIDEgMCAwIDAtLjE1LjNaTTExIDdjLjI4IDAgLjUuMjIuNS41VjEwSDEzVjcuNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwVjExaC0yYS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc1RpbWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc1RpbWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuOTkgOC42QS41LjUgMCAwIDEgNiA4LjRhMS4yOSAxLjI5IDAgMCAxIC4wNy0uMjQgMiAyIDAgMCAxIC4yNS0uNDZjLjI2LS4zNS43MS0uNyAxLjQyLS43QTEuNyAxLjcgMCAwIDEgOS41IDguNzVjMCAuMzUtLjA3LjY1LS4yLjlhMS44IDEuOCAwIDAgMS0uNTEuNmMtLjE2LjExLS4zMy4yMi0uNDguM2wtLjA2LjA0Yy0uMTcuMS0uMy4xOS0uNDIuMjktLjQuMzQtLjY2LjctLjc3IDEuMTJIOWEuNS41IDAgMCAxIDAgMUg2LjVhLjUuNSAwIDAgMS0uNS0uNWMwLTEuMDEuNDctMS43NyAxLjE3LTIuMzguMi0uMTYuNC0uMjkuNTctLjRsLjA2LS4wMy4zOC0uMjRhLjguOCAwIDAgMCAuMjMtLjI2Yy4wNS0uMS4wOS0uMjMuMDktLjQ0YS44LjggMCAwIDAtLjE5LS41My43LjcgMCAwIDAtLjU2LS4yMi43LjcgMCAwIDAtLjYxLjMgMSAxIDAgMCAwLS4xNS4zWk0xMSA3Yy4yOCAwIC41LjIyLjUuNVYxMEgxM1Y3LjVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLTEgMFYxMWgtMmEuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVabS0xLTVhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTUuNDcgNC4xNWMtLjg4LS40LTEuOTIgMC0yLjMyLjg4LS40Ljg4IDAgMS45Mi44OCAyLjMxTDYuNyA4LjUzYy4xOC4wOC4zLjI2LjMuNDZ2MS44NmEuNS41IDAgMCAxLS4wNC4xOWwtMS44NCA0LjU1YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsMS40LTMuNDZjLjA4LS4yMS4zOC0uMjEuNDYgMGwxLjQgMy40NmExLjc1IDEuNzUgMCAwIDAgMy4yNC0xLjMybC0xLjgzLTQuNTRhLjUuNSAwIDAgMS0uMDQtLjE5VjljMC0uMi4xMi0uMzguMy0uNDZsMi42Ny0xLjE5Yy44OC0uNCAxLjI4LTEuNDMuODgtMi4zMWExLjc2IDEuNzYgMCAwIDAtMi4zMi0uODhsLTEuMjguNTdjLS4yNC4xLS40Mi4zLS41Mi41MmEzIDMgMCAwIDEtNS40NiAwYy0uMS0uMjEtLjI4LS40MS0uNTItLjUybC0xLjI4LS41N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSA0LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQzIDMuMDhsLTIuMS0uOTNjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw3IDguNjZ2Mi4yOWwtMS44OCA0LjY0YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsMS41NS0zLjg1LjAzLS4wNEwxMCAxM2guMDRsLjAzLjA1IDEuNTYgMy44NGExLjc1IDEuNzUgMCAwIDAgMy4yNC0xLjNMMTMgMTAuOTV2LTIuM2wyLjk3LTEuMzJjLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMi4xLjkzQTIuNTEgMi41MSAwIDAgMCAxMCAyWk00LjA3IDUuNDRhLjc2Ljc2IDAgMCAxIDEtLjM4bDMuOTEgMS43NWEyLjUgMi41IDAgMCAwIDIuMDQgMGwzLjkxLTEuNzVjLjM4LS4xNy44MyAwIDEgLjM4LjE4LjM4IDAgLjgyLS4zNy45OUwxMi42IDcuNzVhMSAxIDAgMCAwLS41OS45MXYyLjNhMSAxIDAgMCAwIC4wNy4zN2wxLjg3IDQuNjRhLjc1Ljc1IDAgMCAxLTEuMzkuNTZMMTEgMTIuNjhjLS4zNi0uOS0xLjY0LS45LTIgMGwtMS41NiAzLjg1YS43NS43NSAwIDEgMS0xLjM5LS41NmwxLjg4LTQuNjVhMSAxIDAgMCAwIC4wNy0uMzdWOC42NmExIDEgMCAwIDAtLjYtLjkxTDQuNDUgNi40M2EuNzQuNzQgMCAwIDEtLjM3LS45OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eUNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpNNS40NyA0LjE1Yy0uODgtLjQtMS45MiAwLTIuMzIuODgtLjQuODggMCAxLjkyLjg4IDIuMzFMNi43IDguNTNjLjE4LjA4LjMuMjYuMy40NnYxLjg2YS41LjUgMCAwIDEtLjA0LjE5bC0xLjg0IDQuNTVhMS43NSAxLjc1IDAgMCAwIDMuMjUgMS4zMmwuMDgtLjIyQTUuNDggNS40OCAwIDAgMSAxMyA5LjAyVjljMC0uMi4xMi0uMzguMy0uNDZsMi42Ny0xLjE5Yy44OC0uNCAxLjI4LTEuNDMuODgtMi4zMWExLjc2IDEuNzYgMCAwIDAtMi4zMi0uODhsLTEuMjguNTdjLS4yNC4xLS40Mi4zLS41Mi41MmEzIDMgMCAwIDEtNS40NiAwYy0uMS0uMjEtLjI4LS40MS0uNTItLjUybC0xLjI4LS41N1pNMTggMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5Q2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgNC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xMCAyYTIuNSAyLjUgMCAwIDAtMi40MyAzLjA4bC0yLjEtLjkzYy0uODgtLjQtMS45MiAwLTIuMzIuODgtLjQuODggMCAxLjkyLjg4IDIuMzFMNyA4LjY2djIuMjlsLTEuODggNC42NGExLjc1IDEuNzUgMCAwIDAgMy4yNSAxLjMybC4wOC0uMjJhNS40NiA1LjQ2IDAgMCAxLS40Mi0xLjYybC0uNTkgMS40NmEuNzUuNzUgMCAxIDEtMS4zOS0uNTZsMS44OC00LjY1YTEgMSAwIDAgMCAuMDctLjM3VjguNjZhMSAxIDAgMCAwLS42LS45MUw0LjQ1IDYuNDNhLjc0Ljc0IDAgMCAxLS4zNy0uOTkuNzYuNzYgMCAwIDEgMS0uMzhsMy45MSAxLjc1YTIuNSAyLjUgMCAwIDAgMi4wNCAwbDMuOTEtMS43NWMuMzgtLjE3LjgzIDAgMSAuMzguMTguMzggMCAuODItLjM3Ljk5TDEyLjYgNy43NWExIDEgMCAwIDAtLjU5Ljkxdi41NWMuMzItLjEuNjYtLjE2IDEtLjE5di0uMzZsMi45Ny0xLjMyYy44OC0uNCAxLjI4LTEuNDMuODgtMi4zMWExLjc2IDEuNzYgMCAwIDAtMi4zMi0uODhsLTIuMS45M0EyLjUxIDIuNTEgMCAwIDAgMTAgMlptOCAxMi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlFcnJvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5RXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTUuNDcgNC4xNWMtLjg4LS40LTEuOTIgMC0yLjMyLjg4LS40Ljg4IDAgMS45Mi44OCAyLjMxTDYuNyA4LjUzYy4xOC4wOC4zLjI2LjMuNDZ2MS44NmEuNS41IDAgMCAxLS4wNC4xOWwtMS44NCA0LjU1YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsLjA4LS4yMkE1LjQ4IDUuNDggMCAwIDEgMTMgOS4wMlY5YzAtLjIuMTItLjM4LjMtLjQ2bDIuNjctMS4xOWMuODgtLjQgMS4yOC0xLjQzLjg4LTIuMzFhMS43NiAxLjc2IDAgMCAwLTIuMzItLjg4bC0xLjI4LjU3Yy0uMjQuMS0uNDIuMy0uNTIuNTJhMyAzIDAgMCAxLTUuNDYgMGMtLjEtLjIxLS4yOC0uNDEtLjUyLS41MmwtMS4yOC0uNTdaTTE4IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTEzLjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eUVycm9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5RXJyb3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSA0LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQzIDMuMDhsLTIuMS0uOTNjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw3IDguNjZ2Mi4yOWwtMS44OCA0LjY0YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsLjA4LS4yMmE1LjQ2IDUuNDYgMCAwIDEtLjQyLTEuNjJsLS41OSAxLjQ2YS43NS43NSAwIDEgMS0xLjM5LS41NmwxLjg4LTQuNjVhMSAxIDAgMCAwIC4wNy0uMzdWOC42NmExIDEgMCAwIDAtLjYtLjkxTDQuNDUgNi40M2EuNzQuNzQgMCAwIDEtLjM3LS45OS43Ni43NiAwIDAgMSAxLS4zOGwzLjkxIDEuNzVhMi41IDIuNSAwIDAgMCAyLjA0IDBsMy45MS0xLjc1Yy4zOC0uMTcuODMgMCAxIC4zOC4xOC4zOCAwIC44Mi0uMzcuOTlMMTIuNiA3Ljc1YTEgMSAwIDAgMC0uNTkuOTF2LjU1Yy4zMi0uMS42Ni0uMTYgMS0uMTl2LS4zNmwyLjk3LTEuMzJjLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMi4xLjkzQTIuNSAyLjUgMCAwIDAgMTAgMlptOCAxMi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMy41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlNb3JlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlNb3JlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0Ljg3IDE1LjZjLjA1LjExLjA4LjIzLjEuMzVhMi4yNCAyLjI0IDAgMCAwLTEuOTctMS4yYy0uNzcgMC0xLjQzLjQtMS44NCAxbC0uOTMtMi4zYS4yNS4yNSAwIDAgMC0uNDcgMGwtLjU0IDEuMzNjLS4wNyAwLS4xNC0uMDMtLjIyLS4wM2EyLjI1IDIuMjUgMCAwIDAtMi4wMiAzLjIzIDEuNzMgMS43MyAwIDAgMS0xLjg2LTIuMzlsMS44NC00LjU1YS41LjUgMCAwIDAgLjA0LS4xOVY5YS41LjUgMCAwIDAtLjMtLjQ2TDQuMDMgNy4zNGExLjc0IDEuNzQgMCAwIDEtLjg4LTIuMzEgMS43NiAxLjc2IDAgMCAxIDIuMzItLjg4bDEuMjcuNTdjLjI1LjEuNDMuMy41Mi41MmEzIDMgMCAwIDAgNS40NyAwYy4xLS4yMS4yNy0uNDEuNTItLjUybDEuMjctLjU3Yy44OS0uNCAxLjkyIDAgMi4zMi44OC40Ljg4IDAgMS45Mi0uODggMi4zMUwxMy4zIDguNTNhLjUuNSAwIDAgMC0uMy40NnYxLjg3YzAgLjA3LjAyLjEzLjA0LjE5bDEuODQgNC41NFpNMTAgNmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabS0xIDkuNzVhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVptNCAwYTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjVabTQgMGExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eU1vcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlNb3JlUmVndWxhcicsIFwiMWVtXCIsIFtcIm05IDEyLjY4LS45MiAyLjI3Yy4yOC0uMTMuNi0uMi45Mi0uMi4wOCAwIC4xNS4wMy4yMy4wM2wuNy0xLjcyYzAtLjAzLjAxLS4wNC4wMi0uMDRMMTAgMTNoLjA0bC4wMy4wNSAxLjEgMi43Yy4yLS4zLjQ2LS41NS43OC0uNzNMMTEgMTIuNjhjLS4zNy0uOS0xLjY0LS45LTIgMFptNy44NC03LjY1YTEuNzYgMS43NiAwIDAgMC0yLjMxLS44OGwtMi4xLjk0QTIuNTEgMi41MSAwIDAgMCAxMCAxLjk5YTIuNSAyLjUgMCAwIDAtMi40MyAzLjFsLTIuMS0uOTRjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw3IDguNjZ2Mi4yOUw1LjEyIDE1LjZhMS43NSAxLjc1IDAgMCAwIDEuODYgMi4zOGMtLjE0LS4zLS4yMy0uNjMtLjIzLS45OC0uMSAwLS4yLS4wMi0uMjktLjA1YS43NS43NSAwIDAgMS0uNDEtLjk4bDEuODgtNC42NGExIDEgMCAwIDAgLjA3LS4zOFY4LjY2YTEgMSAwIDAgMC0uNi0uOTFMNC40NSA2LjQzYS43NC43NCAwIDAgMS0uMzctLjk4Ljc2Ljc2IDAgMCAxIDEtLjM4TDguOTggNi44YTIuNSAyLjUgMCAwIDAgMi4wNCAwbDMuOTItMS43NGMuMzgtLjE3LjgyIDAgMSAuMzguMTcuMzcgMCAuODEtLjM4Ljk4TDEyLjYgNy43NWExIDEgMCAwIDAtLjU5LjkxdjIuM2ExIDEgMCAwIDAgLjA3LjM4bDEuNDEgMy40OGMuNjUuMTUgMS4xOS41NiAxLjUgMS4xM2ExLjggMS44IDAgMCAwLS4xLS4zNUwxMyAxMC45NnYtMi4zbDIuOTctMS4zMmMuODgtLjQgMS4yOC0xLjQzLjg4LTIuM1pNMTAgNmExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1ptLjI1IDExYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTEzIDE4LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTQgMGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eVF1ZXN0aW9uTWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5UXVlc3Rpb25NYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wk01LjQ3IDQuMTVjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw2LjcgOC41M2MuMTguMDguMy4yNi4zLjQ2djEuODZhLjUuNSAwIDAgMS0uMDQuMTlsLTEuODQgNC41NWExLjc1IDEuNzUgMCAwIDAgMy4yNSAxLjMybC4wOC0uMjJBNS40OCA1LjQ4IDAgMCAxIDEzIDkuMDJWOWMwLS4yLjEyLS4zOC4zLS40NmwyLjY3LTEuMTljLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMS4yOC41N2MtLjI0LjEtLjQyLjMtLjUyLjUyYTMgMyAwIDAgMS01LjQ2IDBjLS4xLS4yMS0uMjgtLjQxLS41Mi0uNTJsLTEuMjgtLjU3Wk0xOCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eVF1ZXN0aW9uTWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eVF1ZXN0aW9uTWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDQuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTAgMmEyLjUgMi41IDAgMCAwLTIuNDMgMy4wOGwtMi4xLS45M2MtLjg4LS40LTEuOTIgMC0yLjMyLjg4LS40Ljg4IDAgMS45Mi44OCAyLjMxTDcgOC42NnYyLjI5bC0xLjg4IDQuNjRhMS43NSAxLjc1IDAgMCAwIDMuMjUgMS4zMmwuMDgtLjIyYTUuNDYgNS40NiAwIDAgMS0uNDItMS42MmwtLjU5IDEuNDZhLjc1Ljc1IDAgMSAxLTEuMzktLjU2bDEuODgtNC42NWExIDEgMCAwIDAgLjA3LS4zN1Y4LjY2YTEgMSAwIDAgMC0uNi0uOTFMNC40NSA2LjQzYS43NC43NCAwIDAgMS0uMzctLjk5Ljc2Ljc2IDAgMCAxIDEtLjM4bDMuOTEgMS43NWEyLjUgMi41IDAgMCAwIDIuMDQgMGwzLjkxLTEuNzVjLjM4LS4xNy44MyAwIDEgLjM4LjE4LjM4IDAgLjgyLS4zNy45OUwxMi42IDcuNzVhMSAxIDAgMCAwLS41OS45MXYuNTVjLjMyLS4xLjY2LS4xNiAxLS4xOXYtLjM2bDIuOTctMS4zMmMuODgtLjQgMS4yOC0xLjQzLjg4LTIuMzFhMS43NiAxLjc2IDAgMCAwLTIuMzItLjg4bC0yLjEuOTNBMi41IDIuNSAwIDAgMCAxMCAyWm04IDEyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LjUgMS44OGEuNjIuNjIgMCAxIDAgMCAxLjI1LjYyLjYyIDAgMCAwIDAtMS4yNVptMC00Ljg4Yy0xLjA1IDAtMS44Ni44Mi0xLjg1IDEuOTZhLjUuNSAwIDEgMCAxLS4wMWMwLS41OC4zNi0uOTUuODUtLjk1LjQ3IDAgLjg1LjQuODUuOTUgMCAuMi0uMDcuMzItLjM2LjU1bC0uMjcuMjFjLS41MS40LS43Mi43Mi0uNzIgMS4yOWEuNS41IDAgMCAwIDEgLjA5di0uMTZjLjAyLS4xNC4xLS4yNS4zNS0uNDRsLjI4LS4yMmMuNS0uNC43Mi0uNzMuNzItMS4zMiAwLTEuMS0uODItMS45NS0xLjg1LTEuOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWOUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNUg5djYuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjEwLjVoNi4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTAuNVYyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDIuNWEuNS41IDAgMCAwLTEgMFY5SDIuNWEuNS41IDAgMCAwIDAgMUg5djYuNWEuNS41IDAgMCAwIDEgMFYxMGg2LjVhLjUuNSAwIDAgMCAwLTFIMTBWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkQ2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZENpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFpNNiAxMGMwIC4yOC4yMi41LjUuNWgzdjNhLjUuNSAwIDAgMCAxIDB2LTNoM2EuNS41IDAgMCAwIDAtMWgtM3YtM2EuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZENpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkQ2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDEwYzAtLjI4LjIyLS41LjUtLjVoM3YtM2EuNS41IDAgMCAxIDEgMHYzaDNhLjUuNSAwIDAgMSAwIDFoLTN2M2EuNS41IDAgMCAxLTEgMHYtM2gtM0EuNS41IDAgMCAxIDYgMTBabTQgOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMC0xYTcgNyAwIDEgMSAwLTE0IDcgNyAwIDAgMSAwIDE0WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm03LjUuNWEuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMSAwIDEgMHYtM2gzYS41LjUgMCAxIDAgMC0xaC0zdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTYuNS41YS41LjUgMCAwIDAtMSAwdjNoLTNhLjUuNSAwIDAgMCAwIDFoM3YzYS41LjUgMCAxIDAgMSAwdi0zaDNhLjUuNSAwIDEgMCAwLTFoLTN2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTcXVhcmVNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiA1LjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y2YTQgNCAwIDAgMS00IDRIN2EyIDIgMCAwIDEtMS43My0xSDEzYTMgMyAwIDAgMCAzLTNWNS4yN1pNMTUgNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjVabS0zIDRhLjUuNSAwIDAgMS0uNS41aC0ydjJhLjUuNSAwIDAgMS0xIDB2LTJoLTJhLjUuNSAwIDEgMSAwLTFoMnYtMmEuNS41IDAgMSAxIDEgMHYyaDJjLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZU11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiA1LjI3VjEzYTMgMyAwIDAgMS0zIDNINS4yN2MuMzQuNi45OSAxIDEuNzMgMWg2YTQgNCAwIDAgMCA0LTRWN2EyIDIgMCAwIDAtMS0xLjczWk0xMS41IDkuNWEuNS41IDAgMCAwIDAtMWgtMnYtMmEuNS41IDAgMSAwLTEgMHYyaC0yYS41LjUgMCAwIDAgMCAxaDJ2MmEuNS41IDAgMCAwIDEgMHYtMmgyWk0xMyAzYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoOFptMSAyYTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFN1YnRyYWN0Q2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFN1YnRyYWN0Q2lyY2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgMTJhLjUuNSAwIDEgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZabTAtMWE2Ljk3IDYuOTcgMCAwIDEtNC41OC0xLjdsOS44Ny05Ljg4QTcgNyAwIDAgMSAxMCAxN1pNNS41IDdjMC0uMjguMjItLjUuNS0uNWgxdi0xYS41LjUgMCAwIDEgMSAwdjFoMWEuNS41IDAgMSAxIDAgMUg4djFhLjUuNSAwIDAgMS0xIDB2LTFINmEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3VidHJhY3RDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFN1YnRyYWN0Q2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAxMi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0tMy03YS41LjUgMCAwIDAtMSAwdjFINmEuNS41IDAgMSAwIDAgMWgxdjFhLjUuNSAwIDAgMCAxIDB2LTFoMWEuNS41IDAgMSAwIDAtMUg4di0xWk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMC0xYTYuOTcgNi45NyAwIDAgMS00LjU4LTEuN2w5Ljg3LTkuODhBNyA3IDAgMCAxIDEwIDE3Wm0tNS4zLTIuNDJhNyA3IDAgMCAxIDkuODctOS44N2wtOS44NiA5Ljg3WlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyYy42IDAgMS4xNi4zNiAxLjQuOTJsMi4zNyA1LjQgMy4yMy0uMmExLjg4IDEuODggMCAwIDEgMiAxLjc2VjEwYzAgMS4wNC0uODQgMS44OC0xLjg4IDEuODhIMTZsLTMuMjMtLjItMi4zNyA1LjRjLS4yNC41Ni0uOC45Mi0xLjQuOTJhLjg4Ljg4IDAgMCAxLS44OC0uODh2LS4wNmwuNy01LjYzLTIuNDYtLjE2LTEuMTQgMi4yOGEuOC44IDAgMCAxLS43Mi40NS41LjUgMCAwIDEtLjUtLjV2LTIuMzhsLTEuMDYtLjA2YTEgMSAwIDAgMS0uOTQtMXYtLjEyYTEgMSAwIDAgMSAuOTQtMUw0IDguODhWNi41YzAtLjI4LjIyLS41LjUtLjUuMyAwIC41OS4xNy43Mi40NWwxLjE0IDIuMjggMi40Ni0uMTZMOC4xMiAzQS44OC44OCAwIDAgMSA5IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNzggOC4yOSA4LjEgMi44MWExLjE2IDEuMTYgMCAwIDEgMS0xLjNoLjA4bC4xNy0uMDFjLjYgMCAxLjEzLjM1IDEuMzcuOWwyLjUxIDUuNzQgMi43NS0uMDljMS4wMy0uMDMgMS45LjczIDIgMS43NGwuMDIuMTVWMTBjMCAxLjA4LS44NyAxLjk1LTEuOTYgMS45NWwtMi44LS4xLTIuNTIgNS43NWMtLjI0LjU1LS43OC45LTEuMzcuOWgtLjFhMS4xNiAxLjE2IDAgMCAxLTEuMTUtMS4zbC42OC01LjUtMi4xNC0uMDYtLjk2IDEuNjdjLS4yNC40My0uNy42OS0xLjE4LjY5YTEgMSAwIDAgMS0xLTF2LTEuNDdoLS4xNmExLjUzIDEuNTMgMCAwIDEgMC0zLjA1bC4xNi0uMDFWN2ExIDEgMCAwIDEgMS0xYy40OSAwIC45NC4yNiAxLjE4LjY5bC45NiAxLjY3IDIuMTQtLjA3Wm0uNTctNS43OWgtLjEyYS4xNi4xNiAwIDAgMC0uMTQuMThsLjgyIDYuNTctMy44NC4xMy0xLjI2LTIuMkEuMzYuMzYgMCAwIDAgNC41IDd2Mi40M2wtLjk4LjA0YS41My41MyAwIDAgMCAwIDEuMDZsLjk4LjA0VjEzaC4wOGMuMS0uMDMuMTgtLjEuMjMtLjE4bDEuMjYtMi4yIDMuODQuMTMtLjgyIDYuNTljMCAuMDkuMDcuMTYuMTYuMTZoLjFhLjUuNSAwIDAgMCAuNDUtLjNsMi43OS02LjM2IDMuNDYuMTFjLjUyIDAgLjk1LS40Mi45NS0uOTV2LS4wM2EuOTUuOTUgMCAwIDAtLjk4LS45MmwtMy40My4xMUw5LjggMi44YS41LjUgMCAwIDAtLjQ1LS4zWlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmVMYW5kaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lTGFuZGluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMS44OCA2LTEuMDMtMi4xNUMxMC4xNiAyLjQxIDggMi45MSA4IDQuNXYuNzRsMi43Ny43NmgxLjExWm0tMS4xMSAxYTEgMSAwIDAgMS0uMjctLjA0TDYgNS43NFY0LjJjMC0xLjIyLTEuNjEtMS42Ni0yLjIzLS42TDIuMjQgNi4xOWMtLjU3Ljk2LS4xIDIuMi45NiAyLjU1bDMuNDIgMS4xMi0xLjY4IDEuNTJjLTEuMTcgMS4wOC0uMDggMyAxLjQ1IDIuNTVsNi42LTEuOTkgMy4wNCAxQTEuNSAxLjUgMCAwIDAgMTggMTEuNVYxMWE0IDQgMCAwIDAtNC00aC0zLjIzWk0yIDE3LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lTGFuZGluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVMYW5kaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMi4zNiA3LTEuNS0zLjE1QzEwLjE1IDIuNDEgOCAyLjkxIDggNC41djEuNzhsLTItLjU0VjQuMmMwLTEuMjItMS42MS0xLjY2LTIuMjMtLjZMMi4yNCA2LjE5Yy0uNTcuOTYtLjEgMi4yLjk2IDIuNTVsMy40MiAxLjEyLTEuNjggMS41MmMtMS4xNyAxLjA4LS4wOCAzIDEuNDUgMi41NWw2LjYtMS45OSAzLjA0IDFBMS41IDEuNSAwIDAgMCAxOCAxMS41VjExYTQgNCAwIDAgMC00LTRoLTEuNjRabS0xLjEgMGgtLjVhMSAxIDAgMCAxLS4yNi0uMDRMOSA2LjU2VjQuNWMwLS41My43Mi0uNy45NS0uMjFMMTEuMjUgN1pNMiAxNy41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTExLjU5LTYuNDFhMiAyIDAgMCAwLTEuMTgtLjAxTDYuMSAxMi45N2MtLjUxLjE1LS44Ny0uNDktLjQ4LS44NWwxLjY3LTEuNTNhMSAxIDAgMCAwLS4zNi0xLjY4TDMuNTIgNy43OWEuNzUuNzUgMCAwIDEtLjQyLTEuMUw0LjYzIDQuMWMuMS0uMTcuMzctLjEuMzcuMXYxLjkyYzAgLjIyLjE1LjQyLjM3LjQ4bDQuODcgMS4zM2EyIDIgMCAwIDAgLjUzLjA3SDE0YTMgMyAwIDAgMSAzIDN2LjUxYS41LjUgMCAwIDEtLjY2LjQ4bC0yLjM5LS43OS0uMzYtLjExWlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmVUYWtlT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lVGFrZU9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMS42OCA1LjE2LS4zOC4zM2MtLjIzLjIxLS40OC4zOC0uNzQuNDZMNC43NiA3LjlsLS42LTEuMjNhMS4xOSAxLjE5IDAgMCAwLS4yNC0uMzRjLS42Mi0uNi0xLjc0LS4yNy0xLjkuNjJMMiA3LjE2djIuOTljMCAxLjIgMS4xOCAyLjA0IDIuMzIgMS42NWwzLjAyLTEuMDQtLjMgMS40NmMtLjMgMS41NiAxLjcgMi40NyAyLjY2IDEuMjFsMy4xLTQgNC4xOC0xLjM1Yy44NC0uMjcgMS4zMy0xLjI4Ljc0LTIuMS0uNTItLjctMS40My0xLjY4LTIuNjctMS45MmEyLjk4IDIuOTggMCAwIDAtLjg4LS4wNCA0LjkgNC45IDAgMCAwLTIuNSAxLjE0Wm0tMi41Ny4yMkw1LjM4IDYuNjJsLS4wNC0uMDVhMS42IDEuNiAwIDAgMSAyLjE3LTIuMjlsMS42IDEuMVpNMi41IDE3YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lVGFrZU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVUYWtlT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDRjLTEuNDEtLjAxLTIuNjMuOTYtMy4yIDEuNDktLjIzLjIxLS40OC4zOC0uNzQuNDZsLS40MS4xNEw3LjUgNC4yOGExLjYgMS42IDAgMCAwLTIuMTcgMi4zbC43Ljg4LTEuMjguNDMtLjYtMS4yM0MzLjY1IDUuNTcgMiA1Ljk1IDIgNy4xNnYyLjk5YzAgMS4yIDEuMTggMi4wNCAyLjMyIDEuNjVsMy4wMi0xLjA0LS4zIDEuNDZjLS4zIDEuNTYgMS43IDIuNDcgMi42NiAxLjIxbDMuMS00IDQuMTgtMS4zNWMuODQtLjI3IDEuMzMtMS4yOC43NC0yLjEtLjYtLjgtMS43LTEuOTctMy4yMi0xLjk4Wk03LjA0IDcuMTNsLS45LTEuMTdhLjYuNiAwIDAgMSAuOC0uODZMOC45NiA2LjVsLTEuOTIuNjRabTQuOTQtLjkxYy41NS0uNTEgMS41MS0xLjIzIDIuNTItMS4yMiAxIDAgMS44NS44IDIuNDEgMS41OC4wNy4xLjA4LjIuMDQuMy0uMDQuMS0uMTMuMi0uMjguMjVsLTQuMzIgMS40YS41LjUgMCAwIDAtLjI1LjE2bC0zLjE5IDQuMTNjLS4zMi40Mi0uOTkuMTItLjg4LS40bC4yOS0xLjQ3YTEgMSAwIDAgMC0xLjMtMS4xNGwtMy4wMyAxLjA0Yy0uNDguMTctLjk5LS4xOS0uOTktLjdWNy4xNmMwLS4wNS4wMi0uMDguMDMtLjFhLjE1LjE1IDAgMCAxIC4wOC0uMDRsLjEuMDEuMDYuMDcuNzggMS42MmMuMS4yMi4zNy4zMy42LjI1bDYuMjMtMi4wN2MuNDMtLjE0LjgtLjQgMS4xLS42OFpNMi41IDE3YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsYnVtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsYnVtRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNmMwLTEuMS45LTIgMi0ydjEyYTIgMiAwIDAgMS0yLTJWNlptNyAyLjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtNGEuNS41IDAgMCAxLS41LS41di0xWk01IDE2VjRoMTFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINVptNC41LTlDOC42NyA3IDggNy42NyA4IDguNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGJ1bVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxidW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggOC41QzggNy42NyA4LjY3IDcgOS41IDdoNGMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDggOS41di0xWk05LjUgOGEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtNFpNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTQgOWgxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg2djEwWk01IDVINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxVjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQWxidW1BZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxidW1BZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2My4yNkE1LjQ5IDUuNDkgMCAwIDEgNCA4LjJWNFptMTIgMTJoLTUuNmE1LjQ4IDUuNDggMCAwIDAgMC01aDMuMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00QzguNjcgNyA4IDcuNjcgOCA4LjV2LjFhNS40OCA1LjQ4IDAgMCAwLTMtLjU4VjRoMTFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJabS0yLjUtNkg5Ljc0QTUuNTMgNS41MyAwIDAgMCA5IDkuMjZWOC41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVaTTEwIDEzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTNIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjE0aDEuNWEuNS41IDAgMCAwIDAtMUg2di0xLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQWxidW1BZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsYnVtQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNS42Yy4xNi0uMzIuMy0uNjUuNC0xSDE2YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDZ2My4wMmE1LjU3IDUuNTcgMCAwIDAtMSAwVjVINGExIDEgMCAwIDAtMSAxdjIuNmMtLjM2LjE4LS43LjQtMSAuNjZWNlptMTEuNSA1aC0zLjFhNS41IDUuNSAwIDAgMC0uNjYtMWgzLjc2YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwLS41LjV2Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZ2LS4xQzggNy42NyA4LjY3IDcgOS41IDdoNGMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNVpNMTAgMTMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxM0gzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTRoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGVydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi40NSAxNmEyLjUgMi41IDAgMCAxLTQuOSAwaDQuOVpNMTAgMmE1LjkyIDUuOTIgMCAwIDEgNS45OCA1LjM2bC4wMi4yMlYxMS40bC45NSAyLjYuMDMuMDguMDEuMDl2LjA4YzAgLjMyLS4xOS42LS41MS43MWwtLjEyLjAzLS4xMS4wMUgzLjc1YS43NS43NSAwIDAgMS0uNzQtLjc2di0uMTJsLjA0LS4xMkw0IDExLjRWNy41N0E1LjkgNS45IDAgMCAxIDEwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhNS45MiA1LjkyIDAgMCAxIDUuOTggNS4zNmwuMDIuMjJWMTEuNGwuOTIgMi4yMmExIDEgMCAwIDEgLjA2LjE3bC4wMS4wOC4wMS4xM2ExIDEgMCAwIDEtLjc1Ljk3bC0uMTEuMDJMMTYgMTVoLTMuNXYuMTdhMi41IDIuNSAwIDAgMS01IDBWMTVINGExIDEgMCAwIDEtLjI2LS4wM2wtLjEzLS4wNGExIDEgMCAwIDEtLjYtMS4wNWwuMDItLjEzLjA1LS4xM0w0IDExLjRWNy41N0E1LjkgNS45IDAgMCAxIDEwIDJabTEuNSAxM2gtM3YuMTVhMS41IDEuNSAwIDAgMCAxLjM2IDEuMzRsLjE0LjAxYy43OCAwIDEuNDItLjYgMS41LTEuMzZWMTVaTTEwIDNhNC45IDQuOSAwIDAgMC00Ljk4IDQuMzhMNSA3LjZWMTEuNWwtLjA0LjJMNCAxNGgxMmwtLjk2LTIuMy0uMDQtLjJWNy42MUE0LjkgNC45IDAgMCAwIDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydEJhZGdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0QmFkZ2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNDUgMTZhMi41IDIuNSAwIDAgMS00LjkgMGg0LjlaTTEwIDJjMS4wOSAwIDIuMTEuMjggMyAuNzdhMyAzIDAgMCAwIDMgNS4wNnYzLjU4bC45NSAyLjU5LjAzLjA4LjAxLjA5di4wOGMwIC4zMi0uMTkuNi0uNTEuNzFsLS4xMi4wMy0uMTEuMDFIMy43NWEuNzUuNzUgMCAwIDEtLjc0LS43NnYtLjEybC4wNC0uMTJMNCAxMS40VjcuNTdBNS45IDUuOSAwIDAgMSAxMCAyWm01IDVhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRCYWRnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRCYWRnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMxLjA5IDAgMi4xMS4yOCAzIC43Ny0uMjYuMjMtLjQ3LjUtLjY0LjhBNS4xNiA1LjE2IDAgMCAwIDEwIDNhNC45IDQuOSAwIDAgMC00Ljk4IDQuMzhMNSA3LjZWMTEuNWwtLjA0LjJMNCAxNGgxMmwtLjk2LTIuMy0uMDQtLjJWOGEzIDMgMCAwIDAgMS0uMTd2My41N2wuOTIgMi4yMmExIDEgMCAwIDEgLjA2LjE3bC4wMS4wOC4wMS4xM2ExIDEgMCAwIDEtLjc1Ljk3bC0uMTEuMDJMMTYgMTVoLTMuNXYuMTdhMi41IDIuNSAwIDAgMS01IDBWMTVINGExIDEgMCAwIDEtLjI2LS4wM2wtLjEzLS4wNGExIDEgMCAwIDEtLjYtMS4wNWwuMDItLjEzLjA1LS4xM0w0IDExLjRWNy41N0E1LjkgNS45IDAgMCAxIDEwIDJabTEuNSAxM2gtM3YuMTVhMS41IDEuNSAwIDAgMCAxLjM2IDEuMzRsLjE0LjAxYy43OCAwIDEuNDItLjYgMS41LTEuMzZWMTVabTEuNy0xMC44OUEyIDIgMCAwIDEgMTUgM2EyIDIgMCAxIDEtMS44IDEuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDcuNTdjLjA0LS44Mi4yNC0xLjU5LjU4LTIuMjhMMi4xNSAyLjg1YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43TDE0LjMgMTVIMy43NWEuNzUuNzUgMCAwIDEtLjc0LS43NnYtLjEybC4wNC0uMTJMNCAxMS40VjcuNTdabTEzIDYuNjhjMCAuMTgtLjA2LjM0LS4xNi40Nkw1Ljc5IDMuNjZBNi4xIDYuMSAwIDAgMSA5Ljk5IDJhNS45MiA1LjkyIDAgMCAxIDYgNS4zNnYuMjJsLjAxLjIydjMuNmwuOTUgMi42LjAzLjA4LjAxLjA5di4wOFpNMTIuNDUgMTZhMi41IDIuNSAwIDAgMS00LjkgMGg0LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNy41N2MuMDQtLjgyLjI0LTEuNTkuNTgtMi4yOEwyLjE1IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTQuMyAxNWgtMS44di4xN2EyLjUgMi41IDAgMCAxLTUgMFYxNUg0YTEgMSAwIDAgMS0uMjYtLjAzbC0uMTMtLjA0YTEgMSAwIDAgMS0uNi0xLjA1bC4wMi0uMTMuMDUtLjEzTDQgMTEuNFY3LjU3Wk0xMy4zIDE0IDUuMzQgNi4wNWE0LjYgNC42IDAgMCAwLS4zMiAxLjMzTDUgNy42VjExLjVsLS4wNC4yTDQgMTRoOS4zWm0tMS44IDFoLTN2LjE0YTEuNSAxLjUgMCAwIDAgMS4zNiAxLjM0bC4xNC4wMWMuNzggMCAxLjQyLS42IDEuNS0xLjM2VjE1Wm0zLjU0LTMuMzIuODcgMi4xLjg2Ljg1Yy4xNS0uMTcuMjMtLjQuMjMtLjY0di0uMTNsLS4wMi0uMDhhMSAxIDAgMCAwLS4wNi0uMTdMMTYgMTEuNFY3LjU4bC0uMDItLjIyQTUuOTIgNS45MiAwIDAgMCAxMCAyYTYuMSA2LjEgMCAwIDAtNC4yMSAxLjY2bC43LjcxQTUuMSA1LjEgMCAwIDEgMTAgM2E0LjkgNC45IDAgMCAxIDUgNC42bC4wMS4yMXYzLjY5bC4wNC4yWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRPbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEuOCAyLjFhLjUuNSAwIDEgMC0uNi44bDIgMS41YS41LjUgMCAxIDAgLjYtLjhsLTItMS41Wk0xIDdhLjUuNSAwIDAgMCAwIDFoMS41YS41LjUgMCAwIDAgMC0xSDFabTExLjQ1IDlhMi41IDIuNSAwIDAgMS00LjkgMGg0LjlaTTEwIDJhNS45MiA1LjkyIDAgMCAxIDUuOTggNS4zNWwuMDIuMjNWMTEuNGwuOTUgMi42LjAzLjA4LjAxLjA5di4wOGMwIC4zMi0uMTkuNi0uNTEuNzFsLS4xMi4wMy0uMTEuMDFIMy43NWEuNzUuNzUgMCAwIDEtLjc0LS43NnYtLjEybC4wNC0uMTMuOTUtMi41OFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlptOC45LjJhLjUuNSAwIDAgMC0uNy0uMWwtMiAxLjVhLjUuNSAwIDAgMCAuNi44bDItMS41YS41LjUgMCAwIDAgLjEtLjdabS42IDUuM0EuNS41IDAgMCAwIDE5IDdoLTEuNWEuNS41IDAgMCAwIDAgMUgxOWEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRPblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMS44IDIuMWEuNS41IDAgMSAwLS42LjhsMiAxLjVhLjUuNSAwIDEgMCAuNi0uOGwtMi0xLjVaTTEgN2EuNS41IDAgMCAwIDAgMWgxLjVhLjUuNSAwIDAgMCAwLTFIMVptOS01YTUuOTIgNS45MiAwIDAgMSA1Ljk4IDUuMzVsLjAyLjIzVjExLjRsLjkyIDIuMjJhMSAxIDAgMCAxIC4wNi4xN2wuMDEuMDguMDEuMTNhMSAxIDAgMCAxLS43NS45N2wtLjExLjAyTDE2IDE1aC0zLjV2LjE2YTIuNSAyLjUgMCAwIDEtNSAwVjE1SDRhMSAxIDAgMCAxLS4yNi0uMDNsLS4xMy0uMDRhMSAxIDAgMCAxLS42LTEuMDVsLjAyLS4xMy4wNS0uMTNMNCAxMS40VjcuNTdBNS45IDUuOSAwIDAgMSAxMCAyWm0xLjUgMTNoLTN2LjE0YTEuNSAxLjUgMCAwIDAgMS4zNiAxLjM1bC4xNC4wMWMuNzggMCAxLjQyLS42IDEuNS0xLjM2VjE1Wk0xMCAzYTQuOSA0LjkgMCAwIDAtNC45OCA0LjM4TDUgNy42VjExLjVsLS4wNC4yTDQgMTRoMTJsLS45Ni0yLjMtLjA0LS4yVjcuNjFBNC45IDQuOSAwIDAgMCAxMCAzWm04LjktLjhhLjUuNSAwIDAgMC0uNy0uMWwtMiAxLjVhLjUuNSAwIDAgMCAuNi44bDItMS41YS41LjUgMCAwIDAgLjEtLjdabS42IDUuM0EuNS41IDAgMCAwIDE5IDdoLTEuNWEuNS41IDAgMCAwIDAgMUgxOWEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRTbm9vemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMuODkgMCAxLjc0LjE5IDIuNS41MkExLjUgMS41IDAgMCAwIDE0IDRoLjYzbC0xLjMgMS44M0ExLjQ3IDEuNDcgMCAwIDAgMTIgNUg5LjQ1bC0uMTguMDJoLS4wNGExLjUgMS41IDAgMCAwLS4zMyAyLjg2bC0uNTguNjktLjEuMTMtLjAxLjA0QTEuNSAxLjUgMCAwIDAgOS41IDExaDIuNTRsLjE4LS4wMmguMDVhMS41IDEuNSAwIDAgMCAxLjA5LTIuMTJjLjE5LjA5LjQuMTQuNjQuMTRoMnYyLjRsLjk1IDIuNi4wMy4wOC4wMS4wOXYuMDhjMCAuMzItLjE5LjYtLjUxLjcxbC0uMTIuMDMtLjExLjAxSDMuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNzZ2LS4xMmwuMDQtLjEyTDQgMTEuNFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlptMi40NSAxNGEyLjUgMi41IDAgMCAxLTQuOSAwaDQuOVpNMTQgMmgzLjVjLjM3IDAgLjYuNC40NS43MWwtLjA0LjA4TDE0Ljk2IDdoMi41NGEuNS41IDAgMCAxIC4wOSAxaC0zLjZhLjUuNSAwIDAgMS0uNDQtLjcxbC4wNC0uMDhMMTYuNTQgM0gxNGEuNS41IDAgMCAxLS4xLTFoLjFaTTkuNSA2SDEyYy40IDAgLjYyLjQzLjQzLjc1bC0uMDUuMDdMMTAuNTcgOUgxMmEuNS41IDAgMCAxIC4wOSAxaC0yLjZhLjUuNSAwIDAgMS0uNDItLjc1bC4wNC0uMDdMMTAuOTMgN0g5LjVhLjUuNSAwIDAgMS0uMS0xaC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRTbm9vemVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0U25vb3plUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDExLjVWOC4wNWE1IDUgMCAwIDEgNi4zNi00Ljg3LjUuNSAwIDEgMCAuMjctLjk2QTYgNiAwIDAgMCA0IDh2My40bC0uOTIgMi4yMkExIDEgMCAwIDAgNCAxNWgzLjVhMi41IDIuNSAwIDAgMCA1IDBIMTZhMSAxIDAgMCAwIC45Mi0xLjM4TDE2IDExLjRWMTBhLjUuNSAwIDAgMC0xIDB2MS41YzAgLjA3LjAxLjEzLjA0LjJMMTYgMTRINGwuOTYtMi4zYS41LjUgMCAwIDAgLjA0LS4yWk04LjUgMTVoM2ExLjUgMS41IDAgMCAxLTMgMFpNMTQgMmgzLjVjLjM4IDAgLjYuNC40NS43MWwtLjA0LjA4TDE0Ljk2IDdoMi41NGEuNS41IDAgMCAxIC4wOSAxSDE0YS41LjUgMCAwIDEtLjQ1LS43MWwuMDQtLjA4TDE2LjU0IDNIMTRhLjUuNSAwIDAgMS0uMDktMUgxNFpNOS41IDZIMTJjLjQgMCAuNjIuNDMuNDMuNzVsLS4wNC4wN0wxMC41NyA5SDEyYS41LjUgMCAwIDEgLjEgMUg5LjVhLjUuNSAwIDAgMS0uNDMtLjc1bC4wNS0uMDdMMTAuOTMgN0g5LjVhLjUuNSAwIDAgMS0uMDktMWguMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0VXJnZW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0VXJnZW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNDcgMTIuMjVhNS4xNiA1LjE2IDAgMCAxIDkuNDItNC4ybDEuMjIgMi43NSAxLjY3IDEuNjJjLjM4LjM3LjI3IDEtLjIyIDEuMjJsLTkuNzMgNC4zM2EuNzUuNzUgMCAwIDEtMS4wNS0uNjVMMy42OCAxNWwtMS4yMS0yLjc1Wm02LjM2IDUuMDlhMS40OSAxLjQ5IDAgMCAwIDIuNjgtMS4ybC0yLjY4IDEuMlptMy4yNi0xMi42MWEuNS41IDAgMCAxIC42OS0uMTQgNi4xNyA2LjE3IDAgMCAxIDIuOTEgNC45MS41LjUgMCAxIDEtMSAwYzAtLjEzIDAtLjI2LS4wMi0uMzlhNS4xNyA1LjE3IDAgMCAwLTIuNDUtMy42OS41LjUgMCAwIDEtLjEzLS43Wm0uNDktMi40OWEuNS41IDAgMCAxIC42OC0uMTZjMi40NiAxLjUgNC41OCAzLjggNC43NCA3LjlhLjUuNSAwIDAgMS0xIC4wNGMtLjE0LTMuNjgtMi01LjctNC4yNi03LjA5YS41LjUgMCAwIDEtLjE2LS42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0VXJnZW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydFVyZ2VudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuMjYgMi4wOGEuNS41IDAgMSAwLS41Mi44NUMxNSA0LjMxIDE2Ljg2IDYuMzQgMTcgMTAuMDJhLjUuNSAwIDAgMCAxLS4wNGMtLjE2LTQuMS0yLjI4LTYuNC00Ljc0LTcuOVpNMTIuMSA0LjczYS41LjUgMCAwIDEgLjY5LS4xNCA2LjE3IDYuMTcgMCAwIDEgMi45MSA0LjkxLjUuNSAwIDAgMS0xIDBjMC0uMTMgMC0uMjYtLjAyLS4zOWE1LjE3IDUuMTcgMCAwIDAtMi40NS0zLjY5LjUuNSAwIDAgMS0uMTMtLjdabS03LjAxLjdhNS4xNiA1LjE2IDAgMCAwLTIuNjEgNi44MkwzLjY5IDE1bC4wOSAyLjMyYy4wMi41My41Ny44NyAxLjA1LjY1bDkuNzMtNC4zM2MuNDktLjIxLjYtLjg1LjIyLTEuMjJMMTMuMSAxMC44IDExLjkgOC4wNWE1LjE2IDUuMTYgMCAwIDAtNi44MS0yLjYxWm0tMS43IDYuNDFhNC4xNiA0LjE2IDAgMCAxIDcuNi0zLjM4bDEuMyAyLjkyIDEuNTQgMS41LTkuMDYgNC4wMy0uMDgtMi4xNC0xLjMtMi45M1ptNy4zIDYuMDRjLS42OC4zLTEuNDYuMDUtMS44NS0uNTRsMi42OC0xLjJjLjE5LjctLjE2IDEuNDQtLjgzIDEuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkJvdHRvbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkJvdHRvbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjUgMTdhLjUuNSAwIDAgMSAwLTFoMTVhLjUuNSAwIDAgMSAwIDFoLTE1Wk00IDEzYzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OFptNyAwYzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkJvdHRvbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Cb3R0b21SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMTYuNWMwIC4yOC4yMi41LjUuNWgxNWEuNS41IDAgMCAwIDAtMWgtMTVhLjUuNSAwIDAgMC0uNS41Wm05LTMuNWMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTFhMiAyIDAgMCAwLTIgMnY1Wm0yIDFhMSAxIDAgMCAxLTEtMVY4YTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMWgtMVptLTcgMWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZabS0xLTJhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXY4WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQ2VudGVySG9yaXpvbnRhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA5LjVhLjUuNSAwIDAgMS0uNS41SDE2djJhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0ySDl2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNEgyLjVhLjUuNSAwIDAgMSAwLTFINFY1YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjRoMlY3YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjJoMS41Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA5LjVhLjUuNSAwIDAgMS0uNS41SDE2djJhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0ySDl2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNEgyLjVhLjUuNSAwIDAgMSAwLTFINFY1YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjRoMlY3YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjJoMS41Yy4yOCAwIC41LjIyLjUuNVpNNSAxNGExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjlabTctMmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFoLTFhMSAxIDAgMCAwLTEgMXY1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJWZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlclZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMThhLjUuNSAwIDAgMS0uNS0uNVYxNkg4YTIgMiAwIDAgMS0yLTJ2LTFjMC0xLjEuOS0yIDItMmgyVjlINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0VjIuNWEuNS41IDAgMCAxIDEgMFY0aDRhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJoLTR2MmgyYTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAyaC0ydjEuNWEuNS41IDAgMCAxLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlclZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDE4YS41LjUgMCAwIDEtLjUtLjVWMTZIOGEyIDIgMCAwIDEtMi0ydi0xYzAtMS4xLjktMiAyLTJoMlY5SDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNFYyLjVhLjUuNSAwIDAgMSAxIDBWNGg0YTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAyaC00djJoMmEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMmgtMnYxLjVhLjUuNSAwIDAgMS0uNS41Wk02IDVhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoOWExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg2Wm0yIDdhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMC0xLTFIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduRW5kSG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkVuZEhvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgMTcuNWEuNS41IDAgMCAwIDEgMHYtMTVhLjUuNSAwIDAgMC0xIDB2MTVaXCIsIFwiTTEwIDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduRW5kSG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25FbmRIb3Jpem9udGFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi41IDE4YS41LjUgMCAwIDEtLjUtLjV2LTE1YS41LjUgMCAwIDEgMSAwdjE1YS41LjUgMCAwIDEtLjUuNVpcIiwgXCJNMTAgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0yWk05IDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduRW5kVmVydGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25FbmRWZXJ0aWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDEwYzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTJaXCIsIFwiTTIgMTYuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25FbmRWZXJ0aWNhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25FbmRWZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA4YTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0ySDZabS0xIDJhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMlpcIiwgXCJNMiAxNi41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAyYS41LjUgMCAwIDAtLjUuNXYxNWEuNS41IDAgMCAwIDEgMHYtMTVhLjUuNSAwIDAgMC0uNS0uNVpNNyAxMWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMkg3Wk01IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAyYS41LjUgMCAwIDAtLjUuNXYxNWEuNS41IDAgMCAwIDEgMHYtMTVhLjUuNSAwIDAgMC0uNS0uNVpNNyAxMWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMkg3Wm0tMSAyYTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTF2LTFaTTUgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNSAyYy4yOCAwIC41LjIyLjUuNXYxNWEuNS41IDAgMCAxLTEgMHYtMTVjMC0uMjguMjItLjUuNS0uNVpNMTMgMTFhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0ydi0xYzAtMS4xLjktMiAyLTJoNVptMi01YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTEzIDExYTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMnYtMWMwLTEuMS45LTIgMi0yaDVabTEgMmExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0xWm0xLTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY2Wm0tMi0xYTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VBcm91bmRIb3Jpem9udGFsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRIb3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNGEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZabTAgN2EyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUFyb3VuZEhvcml6b250YWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRIb3Jpem9udGFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDRhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2Wk01IDZhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY2Wm0xIDVhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJINlptLTEgMmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi0xWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUFyb3VuZFZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRWZXJ0aWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjUgMTZjLjgzIDAgMS41LS42NyAxLjUtMS41di05QzkgNC42NyA4LjMzIDQgNy41IDRoLTJDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDJabTcgMGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlQXJvdW5kVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRWZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA0aDFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlpNNSA2djhhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMVptOC0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTFabS0xIDJhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VCZXR3ZWVuSG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlQmV0d2Vlbkhvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINlptMCAxM2EyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUJldHdlZW5Ib3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlQmV0d2Vlbkhvcml6b250YWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWM2EyIDIgMCAwIDAtMi0ySDZaTTUgM2ExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjNabTEgMTFhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJINlptLTEgMmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi0xWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUJldHdlZW5WZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlQmV0d2VlblZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDNaXCIsIFwiTTE2IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VCZXR3ZWVuVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VCZXR3ZWVuVmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDNaTTIgNmExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjZaXCIsIFwiTTE2IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtMVptLTEgMmExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVY2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUV2ZW5seUhvcml6b250YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TcGFjZUV2ZW5seUhvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAxNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkgzYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFaXCIsIFwiTTEwIDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDlhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMVpcIiwgXCJNMTYgMTZhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTFhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VFdmVubHlIb3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlRXZlbmx5SG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxNmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDNabS0xLTJhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXY4Wm03IDJhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg5Wm0tMS0yYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2OFptNyAyYTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTFabS0xLTJhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDAgMC0xIDF2OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VFdmVubHlWZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlRXZlbmx5VmVydGljYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINlpcIiwgXCJNNiAxM2EyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMkg2WlwiLCBcIk02IDdhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUV2ZW5seVZlcnRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlRXZlbmx5VmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgM2MwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjNabTItMWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDZaXCIsIFwiTTQgMTVjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMVptMi0xYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDAtMS0xSDZaXCIsIFwiTTYgN2EyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDZaTTUgOWExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjlaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlRml0VmVydGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TcGFjZUZpdFZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjQuNWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINlpcIiwgXCJNNiAxMC41YTIgMiAwIDAgMC0yIDJWMTdjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTQuNWEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlRml0VmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VGaXRWZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2NC41YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMkg2Wk01IDNhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NC41YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjNaXCIsIFwiTTYgMTAuNWEyIDIgMCAwIDAtMiAyVjE3YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi00LjVhMiAyIDAgMCAwLTItMkg2Wm0tMSAyYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxVjE3YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0YXJ0SG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0YXJ0SG9yaXpvbnRhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk04IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg4WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TdGFydEhvcml6b250YWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RhcnRIb3Jpem9udGFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgMThhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41WlwiLCBcIk04IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg4Wk03IDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMVY2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TdGFydFZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RhcnRWZXJ0aWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjUgM2EuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCIsIFwiTTYgNmEyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0YXJ0VmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RhcnRWZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAzLjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpcIiwgXCJNNiA2YTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJINlpNNSA4YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyYWlnaHRlbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0cmFpZ2h0ZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS4zNSA0LjUyQTMgMyAwIDAgMCAzLjA3IDguMWwuMS40aDEzbC0uNy0zLjE1YTMgMyAwIDAgMC0zLjU3LTIuMjhMNS4zNSA0LjUyWm0tLjgyIDEwLjEzLS43LTMuMTVoMTMuMDFsLjEuNGEzIDMgMCAwIDEtMi4yOSAzLjU4TDguMSAxNi45M2EzIDMgMCAwIDEtMy41Ny0yLjI4Wk0xIDEwYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDEgMTBabTUgMGMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSA2IDEwWm01LjUtLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlptNC41LjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmFpZ2h0ZW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RyYWlnaHRlblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy4wNyA4LjFhMyAzIDAgMCAxIDIuMjgtMy41OGw2LjU1LTEuNDVhMyAzIDAgMCAxIDMuNTggMi4yOGwuNyAzLjE1aC0xLjAzbC0uNjUtMi45M2EyIDIgMCAwIDAtMi4zOC0xLjUyTDUuNTcgNS41YTIgMiAwIDAgMC0xLjUyIDIuMzhsLjEzLjYySDMuMTZsLS4wOS0uNFptMTIuNzUgMy40aDEuMDJsLjA5LjRhMyAzIDAgMCAxLTIuMjggMy41OEw4LjEgMTYuOTNhMyAzIDAgMCAxLTMuNTgtMi4yOGwtLjctMy4xNWgxLjAzbC42NSAyLjkzYTIgMiAwIDAgMCAyLjM5IDEuNTJsNi41NC0xLjQ1YTIgMiAwIDAgMCAxLjUyLTIuMzhsLS4xMy0uNjJaTTEgMTBjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yQS41LjUgMCAwIDEgMSAxMFptNSAwYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDYgMTBabTUuNS0uNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWm00LjUuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyZXRjaEhvcml6b250YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJldGNoSG9yaXpvbnRhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk0xNiAxNy41YS41LjUgMCAwIDAgMSAwdi0xNWEuNS41IDAgMCAwLTEgMHYxNVpcIiwgXCJNMTMgMTZhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoNlpcIiwgXCJNMTUgN2EyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmV0Y2hIb3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0cmV0Y2hIb3Jpem9udGFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk0xNiAxNy41YS41LjUgMCAwIDAgMSAwdi0xNWEuNS41IDAgMCAwLTEgMHYxNVpcIiwgXCJNMTMgMTZhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoNlptMS0yYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjFaXCIsIFwiTTE1IDdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxWm0tMiAxYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyZXRjaFZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RyZXRjaFZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNSAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNNCAxM2MwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjZaXCIsIFwiTTEzIDE1YTIgMiAwIDAgMS0yLTJWN2MwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmV0Y2hWZXJ0aWNhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJldGNoVmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNNCAxM2MwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjZabTIgMWExIDEgMCAwIDEtMS0xVjdhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxSDZaXCIsIFwiTTEzIDE1aDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTFhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJabS0xLTJWN2ExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMy41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVaTTExIDdjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJWN1pNNiA1YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduVG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblRvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAzLjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpNMTEgN2MwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMlY3Wm0yLTFhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xVjdhMSAxIDAgMCAwLTEtMWgtMVpNNiA1YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINlpNNSA3YTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbENhdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxDYXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC45NyAxOEgxM3YtMS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMWEuNS41IDAgMCAxIDAtMWgxYTMuNSAzLjUgMCAwIDEgMy41IDMuNVYxOGguMjVjLjQ3IDAgLjktLjIgMS4yMS0uNWguMDR2LS4wNGMuMjktLjMuNDctLjcyLjQ3LTEuMTh2LTcuNmEyLjEyIDIuMTIgMCAwIDAgMS43LTMuMjRsLS41LS44MWMtLjM4LS42My0xLjA2LTEtMS44LTFoLTEuNDN2LS42NGEuOTkuOTkgMCAwIDAtLjk5LS45OSAyLjQ1IDIuNDUgMCAwIDAtMi40NCAyLjQ1VjcuOWE0LjI4IDQuMjggMCAwIDAtMi45NSAxLjU4IDYuNjkgNi42OSAwIDAgMC0xLjA0IDEuOGMtLjIzLjQ2LS4zOS45Ni0uNDcgMS40OWwtLjAxLjA2QTE3LjA0IDE3LjA0IDAgMCAwIDUuNjMgMTdoLS42NmExLjk3IDEuOTcgMCAwIDEtMS40NC0zLjMybC45Mi0uOThhMy41OSAzLjU5IDAgMCAwLS4wOS00Ljk5bC0uOS0uOWEuNS41IDAgMSAwLS43LjdsLjkuOWEyLjU5IDIuNTkgMCAwIDEgLjA2IDMuNmwtLjkyIDFBMi45NyAyLjk3IDAgMCAwIDQuOTcgMThaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxDYXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC45NyAxOGg5LjI4Yy45NSAwIDEuNzItLjc3IDEuNzItMS43MnYtNy42YTIuMTIgMi4xMiAwIDAgMCAxLjctMy4yNGwtLjUtLjgxYy0uMzgtLjYzLTEuMDYtMS0xLjgtMWgtMS40M3YtLjY0YS45OS45OSAwIDAgMC0uOTktLjk5IDIuNDUgMi40NSAwIDAgMC0yLjQ0IDIuNDVWNy45YTQuMjggNC4yOCAwIDAgMC0yLjk1IDEuNTggOC4xMSA4LjExIDAgMCAwLTEuNTIgMy4zNUExNy4wNCAxNy4wNCAwIDAgMCA1LjYzIDE3aC0uNjZhMS45NyAxLjk3IDAgMCAxLTEuNDQtMy4zMmwuOTItLjk4YTMuNTkgMy41OSAwIDAgMC0uMDktNC45OWwtLjktLjlhLjUuNSAwIDEgMC0uNy43bC45LjlhMi41OSAyLjU5IDAgMCAxIC4wNiAzLjZsLS45MiAxQTIuOTcgMi45NyAwIDAgMCA0Ljk3IDE4Wm03Ljk3LTE1djEuMTJjMCAuMjguMjIuNS41LjVoMS45M2MuNCAwIC43NS4yLjk2LjUzbC41LjgxYy40Ni43NS0uMDggMS43Mi0uOTUgMS43MmgtLjQxYS41LjUgMCAwIDAtLjUuNXY4LjFjMCAuNC0uMzIuNzItLjcyLjcyaC0uNzJ2LS43MmEyLjkzIDIuOTMgMCAwIDAtMi45My0yLjkzSDkuNmEuNS41IDAgMCAwIDAgMWgxLjAxYzEuMDcgMCAxLjkzLjg3IDEuOTMgMS45M1YxN2gtNS45QTE4IDE4IDAgMCAxIDcgMTMuMDVjLjI2LTEuMS42Ny0yLjE2IDEuMzItMi45M0EzLjMyIDMuMzIgMCAwIDEgMTEgOC44OGEuNS41IDAgMCAwIC41LS41VjQuNDVjMC0uOC42NC0xLjQ0IDEuNDMtMS40NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbERvZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxEb2dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIgMmMtLjMzIDAtLjgxLjEtMS4yMy40LS40NC4zMS0uNzcuODQtLjc3IDEuNnYxLjI1YzAgLjEzLjA0LjM0LjE2LjUuMDkuMTIuMjUuMjUuNTkuMjUuMzQgMCAuNS0uMTMuNi0uMjZhLjkuOSAwIDAgMCAuMTUtLjQ5LjUuNSAwIDEgMSAxIDBjMCAuMy0uMDguNzEtLjM1IDEuMDgtLjI4LjM5LS43NC42Ny0xLjQuNjctLjMyIDAtLjYtLjA2LS44Mi0uMThhNi41IDYuNSAwIDAgMS0xLjc4IDMuODMgNy40NyA3LjQ3IDAgMCAwLTEuODkgMy40OEE5LjMzIDkuMzMgMCAwIDAgNiAxNS45NXYuMDhhMS4zNCAxLjM0IDAgMCAxLS4xMy41LjgyLjgyIDAgMCAxLS4yOC4zMmMtLjEyLjA4LS4zLjE1LS41OS4xNWEyIDIgMCAwIDEtMS4yLTMuNi41LjUgMCAxIDAtLjYtLjhBMyAzIDAgMCAwIDUgMThoOHYtLjVjMC0uNC0uMTktMS4wNS0uNzMtMS4zMy0uMTktLjEtLjQ0LS4xNy0uNzctLjE3aC0xYS41LjUgMCAwIDEgMC0xaDFjLjE4IDAgLjM0LjAxLjUuMDRWMTIuNWEuNS41IDAgMCAxIDEgMHYyLjk1Yy43OS41NyAxIDEuNTIgMSAyLjA1di41aDIuNWEuNS41IDAgMCAwIC41LS41YzAtLjg3LS4zLTEuNTItLjgtMS45NS0uMzYtLjI5LS43OC0uNDUtMS4yLS41MVY3aC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY0LjI4YTEgMSAwIDAgMC0uNDktLjg1bC0xLjc4LTEuMDdBMi41IDIuNSAwIDAgMCAxMy40NSAySDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsRG9nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxEb2dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjc3IDIuNGMuNDItLjMuOS0uNCAxLjIzLS40aDEuNDVjLjQ1IDAgLjkuMTIgMS4yOC4zNmwxLjc4IDEuMDdjLjMuMTguNDkuNS40OS44NVY1LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1djguMDRjLjQyLjA2Ljg0LjIyIDEuMi41MS41LjQzLjggMS4wOC44IDEuOTVhLjUuNSAwIDAgMS0uNS41SDVhMyAzIDAgMCAxLTEuOC01LjQuNS41IDAgMCAxIC42LjhBMiAyIDAgMCAwIDUgMTdjLjI5IDAgLjQ3LS4wNy41OS0uMTUuMTItLjA4LjIxLS4yLjI4LS4zMkExLjM0IDEuMzQgMCAwIDAgNiAxNnYtLjA1YTQuNjkgNC42OSAwIDAgMSAuMDMtLjVjLjA0LS4zMy4xLS44LjIzLTEuMzIuMjctMS4wNS44LTIuNCAxLjg5LTMuNDhDOS45OSA4LjggMTAgNi4zMyAxMCA1LjVWNGMwLS43Ni4zMy0xLjI5Ljc3LTEuNlptLjE1IDQuNWE3LjUxIDcuNTEgMCAwIDEtMi4wNyA0LjQ1IDYuNDcgNi40NyAwIDAgMC0xLjYxIDMuMDIgOC4zMyA4LjMzIDAgMCAwLS4yNCAxLjZ2LjA2YTEuNzggMS43OCAwIDAgMS0uMDMuMjkgMi4zNCAyLjM0IDAgMCAxLS4yMi42OGg2LjE3Yy0uMS0uMzItLjMtLjY1LS42NS0uODMtLjE5LS4xLS40NC0uMTctLjc3LS4xN2gtMWEuNS41IDAgMCAxIDAtMWgxYy4xOCAwIC4zNC4wMS41LjA0VjEyLjVhLjUuNSAwIDAgMSAxIDB2Mi45NWMuNTguNDIuODUgMS4wNC45NSAxLjU1aDJhMS4yIDEuMiAwIDAgMC0uNC0uNjhBMS42NCAxLjY0IDAgMCAwIDE0LjUgMTZhLjUuNSAwIDAgMS0uNS0uNXYtOWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMCAuNS0uNVY0LjI4bC0xLjc4LTEuMDdhMS41IDEuNSAwIDAgMC0uNzctLjIxSDEyYy0uMTcgMC0uNDQuMDYtLjY1LjItLjE4LjE0LS4zNS4zNi0uMzUuOHYxLjVjMCAuMDkuMDMuMjMuMS4zMy4wNi4wOC4xNi4xNy40LjE3LjI0IDAgLjM0LS4wOS40LS4xNy4wNy0uMS4xLS4yNC4xLS4zM2EuNS41IDAgMCAxIDEgMGMwIC4yNS0uMDcuNi0uMy45Mi0uMjQuMzMtLjY0LjU4LTEuMi41OC0uMjIgMC0uNC0uMDQtLjU4LS4xWk03IDE2aC0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxSYWJiaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTIuNjggNC4zOCA0LjIzIDQuMjNhMi43OCAyLjc4IDAgMCAxLTIuNiA0LjY3di4xNmMwIC44Ni0uNyAxLjU2LTEuNTcgMS41NkgxMXYtMS4yNWMwLS41NC0uMjgtLjk4LS42Ny0xLjI4LS4zOC0uMy0uOS0uNDctMS40My0uNDdINy41YS41LjUgMCAxIDAgMCAxaDEuNGMuMzMgMCAuNjIuMS44Mi4yNi4yLjE1LjI4LjMzLjI4LjQ5VjE1SDUuNTZDNC43IDE1IDQgMTQuMyA0IDEzLjQ0di0yLjIxQTIuMTIgMi4xMiAwIDEgMSA2LjA1IDguM0M2LjUgOC4xMSA3IDggNy41MiA4aDMuMjhjLjQ3IDAgLjkyLjEgMS4zMy4yNmwuMDgtLjEzYy4xMS0uMTkuMjMtLjQuMzgtLjU1bC0xLjU1LTEuNTZhMS4xNiAxLjE2IDAgMSAxIDEuNjQtMS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsUmFiYml0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41MSAxNS4wMWgyLjEyYy45MSAwIDEuNjgtLjU3IDEuOTktMS4zNy44OC4wNyAxLjc5LS4yMyAyLjQ2LS45YTMuMTUgMy4xNSAwIDAgMCAwLTQuNDVsLTQuMjItNC4yMmMtLjU5LS41OS0xLjU1LS41OS0yLjE0IDAtLjYuNi0uNiAxLjU2IDAgMi4xNWwxLjM0IDEuMzNjLS4xMi4xNi0uMjIuMzMtLjMuNWEzLjU1IDMuNTUgMCAwIDAtLjU0LS4wNUg3LjU0Yy0uMzMgMC0uNjUuMDUtLjk1LjEzQTIuNSAyLjUgMCAxIDAgNCAxMS45NXYuOTNjMCAxLjE4Ljk1IDIuMTMgMi4xMiAyLjEzaDQuMzlabTEuNjQtMTAuMjNMMTYuMzggOWEyLjE1IDIuMTUgMCAwIDEtMiAzLjZsLS41Ni0uMTMtLjA2LjU2Yy0uMDcuNTYtLjU0Ljk5LTEuMTIuOTloLTEuNjJ2LS4xQzExIDEyLjc4IDkuOTkgMTIgOC44OSAxMkg3LjVhLjUuNSAwIDAgMCAwIDFoMS4zOWMuNjkgMCAxLjEyLjQ2IDEuMTIuOTF2LjFINi4xMmMtLjYyIDAtMS4xMi0uNS0xLjEyLTEuMTN2LTEuMzNBMi41NSAyLjU1IDAgMCAxIDcuNTQgOWgzLjY4Yy4yMyAwIC40Ni4wMy42OC4xbC40Mi4xMS4xOC0uNGMuMS0uMjYuMjYtLjU3LjQ3LS43OWwuNS0uNDgtMi4wNC0yLjAyYS41Mi41MiAwIDAgMSAwLS43NGMuMi0uMi41Mi0uMi43MiAwWm0tNi41IDMuNzdhMy41NSAzLjU1IDAgMCAwLTEuNiAyLjM4IDEuNSAxLjUgMCAxIDEgMS42LTIuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxSYWJiaXRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsUmFiYml0T2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNy4zIDguMDFjLS40NC4wMi0uODYuMTMtMS4yNS4zQTIuMTIgMi4xMiAwIDEgMCA0IDExLjIydjIuMjFDNCAxNC4zIDQuNyAxNSA1LjU2IDE1SDEwdi0xLjI1YzAtLjE2LS4wOC0uMzQtLjI4LS40OS0uMi0uMTUtLjQ5LS4yNi0uODItLjI2SDcuNWEuNS41IDAgMCAxIDAtMWgxLjRjLjU0IDAgMS4wNS4xNyAxLjQzLjQ3LjM5LjMuNjcuNzQuNjcgMS4yOFYxNWgxLjc0Yy40MyAwIC44Mi0uMTggMS4xLS40NWwzLjMgMy4zYS41LjUgMCAwIDAgLjcxLS43bC0xNS0xNVptMTQuMDYgMTAuMzljLS40Mi40Mi0uOTQuNjctMS40OC43N2wtNS4zLTUuM2guNjdjLjQ3IDAgLjkyLjA5IDEuMzMuMjVsLjA4LS4xM2MuMTEtLjE5LjIzLS40LjM4LS41NWwtMS41NS0xLjU2YTEuMTYgMS4xNiAwIDEgMSAxLjY0LTEuNjRsNC4yMyA0LjIzYTIuNzggMi43OCAwIDAgMSAwIDMuOTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxSYWJiaXRPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w3LjMgOC4wMWMtLjI0LjAyLS40OC4wNi0uNy4xMkEyLjUgMi41IDAgMSAwIDQgMTEuOTV2LjkzYzAgMS4xOC45NSAyLjEzIDIuMTIgMi4xM2g2LjUxYy40NyAwIC45LS4xNSAxLjI2LS40MWwzLjI2IDMuMjVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTEwLjMyIDExLjczYy0uMTYuMDgtLjM0LjEzLS41NC4xM2gtMS42MnYtLjFDMTEgMTIuNzggOS45OSAxMiA4Ljg5IDEySDcuNWEuNS41IDAgMCAwIDAgMWgxLjM5Yy42OSAwIDEuMTIuNDYgMS4xMi45MXYuMUg2LjEyYy0uNjIgMC0xLjEyLS41LTEuMTItMS4xM3YtMS4zM0EyLjU1IDIuNTUgMCAwIDEgNy41NCA5aC43NWw0Ljg4IDQuODhaTTUuNjYgOC41NGEzLjU1IDMuNTUgMCAwIDAtMS42IDIuMzggMS41IDEuNSAwIDEgMSAxLjYtMi4zOFptMTAuNzEgMy40OGMtLjQ0LjQ0LTEuMDIuNjUtMS42LjYybC45LjlhMy4xNSAzLjE1IDAgMCAwIDEuNDEtNS4yNmwtNC4yMi00LjIyYy0uNTktLjU5LTEuNTUtLjU5LTIuMTQgMC0uNi42LS42IDEuNTYgMCAyLjE1bDEuMzQgMS4zM2MtLjEyLjE2LS4yMi4zMy0uMy41YTMuNTUgMy41NSAwIDAgMC0uNTQtLjA1aC0xLjFsMSAxaC4xYy4yMyAwIC40Ni4wMy42OC4xbC40Mi4xMS4xOC0uNGMuMS0uMjYuMjYtLjU3LjQ3LS43OWwuNS0uNDgtMi4wNC0yLjAyYS41Mi41MiAwIDAgMSAwLS43NGMuMi0uMi41Mi0uMi43MiAwTDE2LjM4IDljLjg0Ljg0Ljg0IDIuMiAwIDMuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxUdXJ0bGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsVHVydGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMSA0Yy0xLjQ3IDAtMi41LjU1LTMuMjEgMS4zOGE3LjUgNy41IDAgMCAwLTEuMzYgMi43N0w0LjI3IDlIMi41YS41LjUgMCAwIDAtLjUuNWMwIDEuMDguNSAyLjEgMS4zIDIuNjNsLS40NCAxLjA3YTEuMzEgMS4zMSAwIDAgMCAxLjIgMS44MWgxLjQ3Yy41IDAgLjk3LS4zIDEuMTktLjc1bC40Ny0xYzEuMzEuMTggMi42NC4xOCAzLjk1IDBsLjQ4IDFjLjIxLjQ2LjY3Ljc1IDEuMTguNzVoMS40NWExLjMxIDEuMzEgMCAwIDAgMS4yMS0xLjhsLS41LTEuMjFoMS43Yy42OCAwIDEuMzQtLjUyIDEuMzQtMS4yNlYxMGMwLTEuMTQtLjk5LTItMi4xMi0ySDEzLjhhNi45IDYuOSAwIDAgMC0xLjQtMi42M0E0LjI4IDQuMjggMCAwIDAgOS4xIDRabTUuNTcgNy0uNTctMmgxLjc4Yy42NiAwIDEuMTIuNDkgMS4xMiAxdi43NGMwIC4wOS0uMTEuMjYtLjMzLjI2aC0yWm0tMi41IDIuMDhjLjY1LS4xNCAxLjMtLjMyIDEuOTMtLjU1bC40NCAxLjA1YS4zMS4zMSAwIDAgMS0uMjkuNDNIMTIuOGEuMzEuMzEgMCAwIDEtLjI4LS4xOGwtLjM1LS43NVptLTcuOTUtLjU1Yy42NC4yMyAxLjI5LjQxIDEuOTUuNTVsLS4zNi43NWEuMzEuMzEgMCAwIDEtLjI4LjE4SDQuMDdhLjMuMyAwIDAgMS0uMjktLjQzbC40NC0xLjA1Wk0zLjk3IDEwbC0uMzQgMS4xMmMtLjI3LS4yNi0uNS0uNjUtLjU4LTEuMTJoLjkyWlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsVHVydGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxUdXJ0bGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMSA0Yy0xLjQ3IDAtMi41LjU1LTMuMjEgMS4zOGE3LjUgNy41IDAgMCAwLTEuMzYgMi43N0w0LjI3IDlIMi41YS41LjUgMCAwIDAtLjUuNWMwIDEuMDguNSAyLjEgMS4zIDIuNjNsLS40NCAxLjA3YTEuMzEgMS4zMSAwIDAgMCAxLjIgMS44MWgxLjQ3Yy41IDAgLjk3LS4zIDEuMTktLjc1bC40Ny0xYzEuMzEuMTggMi42NC4xOCAzLjk1IDBsLjQ4IDFjLjIxLjQ2LjY3Ljc1IDEuMTguNzVoMS40NWExLjMxIDEuMzEgMCAwIDAgMS4yMS0xLjhsLS41LTEuMjFoMS43Yy42OCAwIDEuMzQtLjUyIDEuMzQtMS4yNlYxMGMwLTEuMTQtLjk5LTItMi4xMi0ySDEzLjhhNi45IDYuOSAwIDAgMC0xLjQtMi42M0E0LjI4IDQuMjggMCAwIDAgOS4xIDRabTUuNTcgNy0uNTctMmgxLjc4Yy42NiAwIDEuMTIuNDkgMS4xMiAxdi43NGMwIC4wOS0uMTEuMjYtLjMzLjI2aC0yWm0tLjU3IDEuNTMuNDQgMS4wNWEuMzEuMzEgMCAwIDEtLjI5LjQzSDEyLjhhLjMxLjMxIDAgMCAxLS4yOC0uMThsLS4zNS0uNzVjLjY1LS4xNCAxLjMtLjMyIDEuOTMtLjU1Wm0tNy45My41NS0uMzYuNzVhLjMxLjMxIDAgMCAxLS4yOC4xOEg0LjA3YS4zMS4zMSAwIDAgMS0uMjktLjQzbC40NC0xLjA1Yy42NC4yMyAxLjI5LjQxIDEuOTUuNTVabS0yLjU0LTEuOTZjLS4yNy0uMjYtLjUtLjY1LS41OC0xLjEyaC45MmwtLjM0IDEuMTJaTTUuNSA4LjQ0Yy4yNy0uOTEuNi0xLjc3IDEuMTUtMi40QTMuMDMgMy4wMyAwIDAgMSA5LjEgNWMxLjIgMCAyIC40MyAyLjU2IDEuMDUuNTkuNjMuOTYgMS41IDEuMjMgMi4zOWwuOSAzLjEzYy0zIDEuMS02LjI1IDEuMS05LjI1IDBsLjk1LTMuMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBGb2xkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjZabTAgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi0yWm02LTZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFWNlptMCA2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xdi0yWk0yIDVhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjEwYTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjVabTMtMmEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY2Wm0zIDBINnYyaDJWNlptLTMgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi0yWm0zIDBINnYyaDJ2LTJabTQtN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yWm0wIDFoMnYyaC0yVjZabS0xIDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTF2LTJabTMgMGgtMnYyaDJ2LTJaTTUgMmEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y1YTMgMyAwIDAgMC0zLTNINVpNMyA1YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwR2VuZXJpY0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBHZW5lcmljRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA3aDEydjcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjVWN1ptMiAxYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMC0xLTFINlptMCAxaDJ2NUg2VjlabTQuNSAxYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTEwIDguNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEdlbmVyaWNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcEdlbmVyaWNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTE2IDdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWN1pNNSA5YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOVptMyAwSDZ2NWgyVjlabTIgMS41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0uNS0yLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFJlY2VudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBSZWNlbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDdaTTIgNmMwLTEuMS45LTIgMi0ydjEyYTIgMiAwIDAgMS0yLTJWNlptMTQgMTBWNGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFJlY2VudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwUmVjZW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJoMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMi0ySDdabTggM2gxYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC0xVjVaTTUgMTVINGExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgxdjEwWk02IDRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFRpdGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcFRpdGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgM2EzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDdaTTQuNSAxN2EuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBUaXRsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwVGl0bGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNmEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNIN2EzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDdaTTQgMTcuNWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHJvdmFsc0FwcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljc4LjcyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZMOS45NCAzSDkuNWE3LjUgNy41IDAgMSAwIDcuNSA3LjUuNzUuNzUgMCAwIDAtMS41IDAgNiA2IDAgMSAxLTYuMDYtNmwtLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi4yNS0yLjI1Yy4zLS4zLjMtLjc3IDAtMS4wNkw5Ljc4LjcyWm0zLjc0IDYuMjRjLjMuMjkuMy43Ni4wMiAxLjA2bC0zLjg1IDRhLjc1Ljc1IDAgMCAxLTEuMDggMGwtMS42NS0xLjcxYS43NS43NSAwIDEgMSAxLjA4LTEuMDRsMS4xMSAxLjE1IDMuMzEtMy40NGMuMjktLjMuNzYtLjMgMS4wNi0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHByb3ZhbHNBcHBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHJvdmFsc0FwcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS44NSAxLjE1YS41LjUgMCAxIDAtLjcuN0wxMC4yOSAzSDkuNWE3LjUgNy41IDAgMSAwIDcuNSA3LjUuNS41IDAgMCAwLTEgMEE2LjUgNi41IDAgMSAxIDkuNSA0aC44TDkuMTQgNS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWm0zLjUgNS45OWMuMi4yLjIuNS4wMS43bC0zLjg1IDRhLjUuNSAwIDAgMS0uNzIgMGwtMS42NS0xLjdhLjUuNSAwIDAgMSAuNzItLjdsMS4yOSAxLjM0IDMuNDktMy42M2MuMi0uMi41LS4yLjctLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxN0ExLjUgMS41IDAgMCAxIDMgMTUuNjVWNC41YzAtLjc4LjYtMS40MiAxLjM2LTEuNUg5Yy43OCAwIDEuNDIuNiAxLjUgMS4zNnYuNGwyLjE5LTIuMjdhMS41IDEuNSAwIDAgMSAyLS4xNGwuMTIuMSAyLjc2IDIuNzJjLjU1LjU1LjYgMS40Mi4xMSAyLjAybC0uMS4xMS0yLjMxIDIuMmguMjNjLjc4IDAgMS40Mi42IDEuNSAxLjM2djQuNjRjMCAuNzgtLjYgMS40Mi0xLjM2IDEuNUg0LjVabTUtNi41SDR2NWMwIC4yMi4xNC40LjMzLjQ3bC4wOC4wMi4wOS4wMWg1di01LjVabTYgMGgtNVYxNmg1YS41LjUgMCAwIDAgLjUtLjRWMTFhLjUuNSAwIDAgMC0uNDEtLjVoLS4wOVptLTUtMi43OVY5LjVoMS43OUwxMC41IDcuNzFaTTkgNC4wMUg0LjVhLjUuNSAwIDAgMC0uNS40djUuMWg1LjV2LTVhLjUuNSAwIDAgMC0uMzMtLjQ4bC0uMDgtLjAySDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjY1VjQuNWMwLS43OC42LTEuNDIgMS4zNi0xLjVIOWMuNzggMCAxLjQyLjYgMS41IDEuMzZ2LjRsMi4xOS0yLjI3YTEuNSAxLjUgMCAwIDEgMi0uMTRsLjEyLjEgMi43NiAyLjcyYy41NS41NS42IDEuNDIuMTEgMi4wMmwtLjEuMTEtMi4zMSAyLjJoLjIzYy43OCAwIDEuNDIuNiAxLjUgMS4zNnY0LjY0YzAgLjc4LS42IDEuNDItMS4zNiAxLjVINC41Wm01LTYuNUg0djVjMCAuMjIuMTQuNC4zMy40N2wuMDguMDIuMDkuMDFoNXYtNS41Wm02IDBoLTVWMTZoNWEuNS41IDAgMCAwIC41LS40VjExYS41LjUgMCAwIDAtLjQxLS41aC0uMDlabS01LTIuNzlWOS41aDEuNzlMMTAuNSA3LjcxWk05IDQuMDFINC41YS41LjUgMCAwIDAtLjUuNHY1LjFoNS41di01YS41LjUgMCAwIDAtLjMzLS40OGwtLjA4LS4wMkg5Wm01LjEyLS44NGEuNS41IDAgMCAwLS42NC0uMDVsLS4wNy4wNi0yLjYyIDIuNzFhLjUuNSAwIDAgMC0uMDUuNjNsLjA2LjA3IDIuNjEgMi42MmMuMTcuMTcuNDMuMi42Mi4wN2wuMDgtLjA2IDIuNzYtMi42M2EuNS41IDAgMCAwIC4wNS0uNjRsLS4wNS0uMDYtMi43NS0yLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0FkZEluRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNBZGRJbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNSAyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuNWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjV2MS41YS43NS43NSAwIDAgMS0xLjUgMHYtMS41aC0xLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNXYtMS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTQuNzUgM0MzLjc4IDMgMyAzLjc4IDMgNC43NXYxMC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEwLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00LjVDMTcgOS43OCAxNi4yMiA5IDE1LjI1IDloLTRhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTRDMTEgMy43OCAxMC4yMiAzIDkuMjUgM2gtNC41Wk00LjUgNC43NWMwLS4xNC4xMS0uMjUuMjUtLjI1aDQuNWMuMTQgMCAuMjUuMTEuMjUuMjV2NGMwIC4wOCAwIC4xNy4wMi4yNUg0LjVWNC43NVptNSA1Ljc1djVINC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYxMC41aDVabTEuNSA1di01LjAybC4yNS4wMmg0Yy4xNCAwIC4yNS4xMS4yNS4yNXY0LjVjMCAuMTQtLjExLjI1LS4yNS4yNUgxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNBZGRJblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc0FkZEluUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSAzYS41LjUgMCAwIDAtMSAwdjJoLTJhLjUuNSAwIDAgMCAwIDFoMnYyYS41LjUgMCAwIDAgMSAwVjZoMmEuNS41IDAgMCAwIDAtMWgtMlYzWk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTExQzMgMy42NyAzLjY3IDMgNC41IDNIOWMuODMgMCAxLjUuNjcgMS41IDEuNXY1aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFabTYtNi41VjE2aDVhLjUuNSAwIDAgMCAuNS0uNVYxMWEuNS41IDAgMCAwLS41LS41aC01Wm0tMSA1LjV2LTUuNUg0djVhLjUuNSAwIDAgMCAuNS41aDVabTAtMTEuNUEuNS41IDAgMCAwIDkgNEg0LjVhLjUuNSAwIDAgMC0uNS41djVoNS41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc0xpc3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCA0LjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabTAgNmMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVptMCA2YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41Wm0tNi0xYzAtLjgzLjY3LTEuNSAxLjUtMS41aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTFabTAtNkMyIDguNjcgMi42NyA4IDMuNSA4aDFDNS4zMyA4IDYgOC42NyA2IDkuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMUExLjUgMS41IDAgMCAxIDIgMTAuNXYtMVptMC02QzIgMi42NyAyLjY3IDIgMy41IDJoMUM1LjMzIDIgNiAyLjY3IDYgMy41djFDNiA1LjMzIDUuMzMgNiA0LjUgNmgtMUExLjUgMS41IDAgMCAxIDIgNC41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNMaXN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAyaDFDNS4zMyAyIDYgMi42NyA2IDMuNXYxQzYgNS4zMyA1LjMzIDYgNC41IDZoLTFBMS41IDEuNSAwIDAgMSAyIDQuNXYtMVpNMy41IDNhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFaTTIgOS41QzIgOC42NyAyLjY3IDggMy41IDhoMUM1LjMzIDggNiA4LjY3IDYgOS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xQTEuNSAxLjUgMCAwIDEgMiAxMC41di0xWk0zLjUgOWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMVpNMiAxNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTFabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMVpNOCA0LjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabTAgNmMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVptMCA2YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3REZXRhaWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc0xpc3REZXRhaWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXYyQzIgOC4zMyAyLjY3IDkgMy41IDloMkM2LjMzIDkgNyA4LjMzIDcgNy41di0yQzcgNC42NyA2LjMzIDQgNS41IDRoLTJabTYgMWEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptLTYgNGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJabTYgMWEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNMaXN0RGV0YWlsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzTGlzdERldGFpbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXYyQzIgOC4zMyAyLjY3IDkgMy41IDloMkM2LjMzIDkgNyA4LjMzIDcgNy41di0yQzcgNC42NyA2LjMzIDQgNS41IDRoLTJaTTMgNS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMlpNOS41IDVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabS02IDRjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWk0zIDEyLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0yWm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc1NldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjUgMTdoLTUuMWMuMTYtLjMyLjMtLjY1LjQtMWg0LjdhLjUuNSAwIDAgMCAuNS0uNDFWMTFhLjUuNSAwIDAgMC0uNDEtLjVIMTAuNXYxLjdhNS41MSA1LjUxIDAgMCAwLTEtMS40N3YtLjIzaC0uMjJjLS40NC0uNC0uOTQtLjc1LTEuNDktMUg5LjV2LTVhLjUuNSAwIDAgMC0uMzMtLjQ3bC0uMDgtLjAyTDkgNEg0LjVhLjUuNSAwIDAgMC0uNS40MVY5LjJjLS4zNS4xLS42OC4yNC0xIC40VjQuNWMwLS43OC42LTEuNDIgMS4zNi0xLjVIOWMuNzggMCAxLjQyLjYgMS41IDEuMzZ2LjM5bDIuMTktMi4yNmExLjUgMS41IDAgMCAxIDItLjE0bC4xMi4xIDIuNzYgMi43MmMuNTUuNTUuNiAxLjQyLjExIDIuMDFsLS4xLjEyLTIuMzEgMi4yaC4yM2MuNzggMCAxLjQyLjYgMS41IDEuMzZ2NC42NGMwIC43OC0uNiAxLjQyLTEuMzYgMS41aC0uMTRabS01LTkuM3YxLjhoMS43OUwxMC41IDcuN1ptLTcuNDMgMy43NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDcuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDMgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgOCAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wk01LjUgMTUuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNSAxN2gtNS4xYy4xNi0uMzIuMy0uNjUuNC0xaDQuN2EuNS41IDAgMCAwIC41LS40MVYxMWEuNS41IDAgMCAwLS40MS0uNUgxMC41djEuN2E1LjUxIDUuNTEgMCAwIDAtMS0xLjQ3di0uMjNoLS4yMmMtLjQ0LS40LS45NC0uNzUtMS40OS0xSDkuNXYtNWEuNS41IDAgMCAwLS4zMy0uNDdsLS4wOC0uMDJMOSA0SDQuNWEuNS41IDAgMCAwLS41LjQxVjkuMmMtLjM1LjEtLjY4LjI0LTEgLjRWNC41YzAtLjc4LjYtMS40MiAxLjM2LTEuNUg5Yy43OCAwIDEuNDIuNiAxLjUgMS4zNnYuMzlsMi4xOS0yLjI2YTEuNSAxLjUgMCAwIDEgMi0uMTRsLjEyLjEgMi43NiAyLjcyYy41NS41NS42IDEuNDIuMTEgMi4wMWwtLjEuMTItMi4zMSAyLjJoLjIzYy43OCAwIDEuNDIuNiAxLjUgMS4zNnY0LjY0YzAgLjc4LS42IDEuNDItMS4zNiAxLjVoLS4xNFptLTUtOS4zdjEuOGgxLjc5TDEwLjUgNy43Wm0zLjYyLTQuNTNhLjUuNSAwIDAgMC0uNjQtLjA1bC0uMDcuMDYtMi42MiAyLjcxYS41LjUgMCAwIDAtLjA1LjYzbC4wNi4wNyAyLjYyIDIuNjJjLjE2LjE3LjQyLjIuNjEuMDdsLjA4LS4wNiAyLjc2LTIuNjNhLjUuNSAwIDAgMCAuMDYtLjY0bC0uMDYtLjA3LTIuNzUtMi43Wk0zLjA3IDExLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMyAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSA4IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVaTTUuNSAxNS41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNTaGllbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc1NoaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDE3SDguNDJjLjE2LS4zLjMtLjY0LjM5LTFoLjY5di01LjVINi45OGE0Ljc2IDQuNzYgMCAwIDEtMS4zNS0xSDkuNXYtNWEuNS41IDAgMCAwLS4zMy0uNDdsLS4wOC0uMDJMOSA0SDQuNWEuNS41IDAgMCAwLS41LjQxdjQuNjdjLS4yMi4wOC0uNDMuMi0uNi4zOWE1LjcgNS43IDAgMCAxLS40LjM4VjQuNWMwLS43OC42LTEuNDIgMS4zNi0xLjVIOWMuNzggMCAxLjQyLjYgMS41IDEuMzZ2LjM5bDIuMTktMi4yNmExLjUgMS41IDAgMCAxIDItLjE0bC4xMi4xIDIuNzYgMi43MmMuNTUuNTUuNiAxLjQyLjExIDIuMDFsLS4xLjEyLTIuMzEgMi4yaC4yM2MuNzggMCAxLjQyLjYgMS41IDEuMzZ2NC42NGMwIC43OC0uNiAxLjQyLTEuMzYgMS41aC0uMTRabTAtNi41aC01VjE2aDVhLjUuNSAwIDAgMCAuNS0uNDFWMTFhLjUuNSAwIDAgMC0uNDEtLjVoLS4wOVptLTUtMi44djEuOGgxLjc5TDEwLjUgNy43Wm0tNS42MiAyLjQ2Yy41LjUzIDEuNDggMS4zOCAyLjY4IDEuNTVhLjUuNSAwIDAgMSAuNDQuNDh2Mi4zM2MwIDMuMTItMi43OCA0LjI1LTMuMzkgNC40NmEuMzQuMzQgMCAwIDEtLjIyIDBjLS42LS4yLTMuMzktMS4zNC0zLjM5LTQuNDZ2LTIuMzNjMC0uMjQuMi0uNDQuNDQtLjQ4YTQuOTUgNC45NSAwIDAgMCAyLjY4LTEuNTVjLjItLjIxLjU2LS4yMS43NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc1NoaWVsZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc1NoaWVsZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNSAxN0g4LjQyYy4xNi0uMy4zLS42NC4zOS0xaC42OXYtNS41SDYuOThhNC43NiA0Ljc2IDAgMCAxLTEuMzUtMUg5LjV2LTVhLjUuNSAwIDAgMC0uMzMtLjQ3bC0uMDgtLjAyTDkgNEg0LjVhLjUuNSAwIDAgMC0uNS40MXY0LjY3Yy0uMjIuMDgtLjQzLjItLjYuMzlhNS43IDUuNyAwIDAgMS0uNC4zOFY0LjVjMC0uNzguNi0xLjQyIDEuMzYtMS41SDljLjc4IDAgMS40Mi42IDEuNSAxLjM2di4zOWwyLjE5LTIuMjZhMS41IDEuNSAwIDAgMSAyLS4xNGwuMTIuMSAyLjc2IDIuNzJjLjU1LjU1LjYgMS40Mi4xMSAyLjAxbC0uMS4xMi0yLjMxIDIuMmguMjNjLjc4IDAgMS40Mi42IDEuNSAxLjM2djQuNjRjMCAuNzgtLjYgMS40Mi0xLjM2IDEuNWgtLjE0Wm0wLTYuNWgtNVYxNmg1YS41LjUgMCAwIDAgLjUtLjQxVjExYS41LjUgMCAwIDAtLjQxLS41aC0uMDlabS01LTIuOHYxLjhoMS43OUwxMC41IDcuN1ptMy42Mi00LjUzYS41LjUgMCAwIDAtLjY0LS4wNWwtLjA3LjA2LTIuNjIgMi43MWEuNS41IDAgMCAwLS4wNS42M2wuMDYuMDcgMi42MSAyLjYyYy4xNy4xNy40My4yLjYyLjA3bC4wOC0uMDYgMi43Ni0yLjYzYS41LjUgMCAwIDAgLjA1LS42NGwtLjA1LS4wNy0yLjc1LTIuN1ptLTkuMjQgNi45OWMuNS41MyAxLjQ4IDEuMzggMi42OCAxLjU1YS41LjUgMCAwIDEgLjQ0LjQ4djIuMzNjMCAzLjEyLTIuNzggNC4yNS0zLjM5IDQuNDZhLjM0LjM0IDAgMCAxLS4yMiAwYy0uNi0uMi0zLjM5LTEuMzQtMy4zOS00LjQ2di0yLjMzYzAtLjI0LjItLjQ0LjQ0LS40OGE0Ljk1IDQuOTUgMCAwIDAgMi42OC0xLjU1Yy4yLS4yMS41Ni0uMjEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuMjVDMiAzLjU2IDIuNTYgMyAzLjI1IDNoMTMuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxLjVDMTggNi40NCAxNy40NCA3IDE2Ljc1IDdIMy4yNUMyLjU2IDcgMiA2LjQ0IDIgNS43NXYtMS41Wk0zIDhoMTR2NmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y4Wm01LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDEwYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTIgNC43NUMyIDMuNzggMi43OCAzIDMuNzUgM2gxMi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEuNWMwIC43LS40IDEuMy0xIDEuNThWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNy44M2MtLjYtLjI4LTEtLjg4LTEtMS41OHYtMS41Wk0zLjc1IDRhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41YS43NS43NSAwIDAgMC0uNzUtLjc1SDMuNzVaTTQgOHY2YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjhINFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVBcnJvd0JhY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuMjVDMiAzLjU2IDIuNTYgMyAzLjI1IDNoMTMuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxLjVDMTggNi40NCAxNy40NCA3IDE2Ljc1IDdIMy4yNUMyLjU2IDcgMiA2LjQ0IDIgNS43NXYtMS41Wk0zIDhoMTR2MS42YTUuNDggNS40OCAwIDAgMC01LjY2LjRIOC41YS41LjUgMCAwIDAgMCAxaDEuNzZhNS40OCA1LjQ4IDAgMCAwLS42NiA2SDZhMyAzIDAgMCAxLTMtM1Y4Wm0xMS41IDExYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZUFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDEwYS41LjUgMCAwIDAgMCAxaDEuNzZjLjMxLS4zOC42Ny0uNzIgMS4wOC0xSDguNVpNNiAxNmgzLjJjLjEuMzUuMjQuNjguNCAxSDZhMyAzIDAgMCAxLTMtM1Y3LjgzYy0uNi0uMjgtMS0uODgtMS0xLjU4di0xLjVDMiAzLjc4IDIuNzggMyAzLjc1IDNoMTIuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjVjMCAuNy0uNCAxLjMtMSAxLjU4VjkuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY4SDR2NmMwIDEuMS45IDIgMiAyWk0zLjc1IDRhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41YS43NS43NSAwIDAgMC0uNzUtLjc1SDMuNzVaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAyQzIuNjcgMiAyIDIuNjcgMiAzLjV2MUMyIDUuMzMgMi42NyA2IDMuNSA2aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk0xNSA3SDN2NS41QTMuNSAzLjUgMCAwIDAgNi41IDE2aDVhMy41IDMuNSAwIDAgMCAzLjUtMy41VjdaTTcgOC41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk04LjUgMThjLS45NSAwLTEuODItLjM4LTIuNDUtMWg2LjQ1YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY3LjA5Yy41OC4yIDEgLjc2IDEgMS40MXY1YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZU11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgOGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0tNC02QzIuNjcgMiAyIDIuNjcgMiAzLjV2MmMwIC42Ni40MiAxLjIxIDEgMS40MkEuNS41IDAgMCAwIDMgN3Y1LjVBMy41IDMuNSAwIDAgMCA2LjUgMTZoNWEzLjUgMy41IDAgMCAwIDMuNS0zLjVWN2EuNS41IDAgMCAwIDAtLjA4Yy41OC0uMiAxLS43NiAxLTEuNDJ2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpNNCAxMi41VjdoMTB2NS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNUEyLjUgMi41IDAgMCAxIDQgMTIuNVptLTEtOWMwLS4yOC4yMi0uNS41LS41aDExYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNXYtMlpNOC41IDE4Yy0uOTUgMC0xLjgyLS4zOC0yLjQ1LTFoNi40NWEzLjUgMy41IDAgMCAwIDMuNS0zLjVWNy4wOWMuNTguMiAxIC43NiAxIDEuNDF2NWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZVNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC4yNUMyIDMuNTYgMi41NiAzIDMuMjUgM2gxMy41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djEuNUMxOCA2LjQ0IDE3LjQ0IDcgMTYuNzUgN0gzLjI1QzIuNTYgNyAyIDYuNDQgMiA1Ljc1di0xLjVaTTMgOGgxNHYxLjZhNS40OCA1LjQ4IDAgMCAwLTUuNjYuNEg4LjVhLjUuNSAwIDAgMCAwIDFoMS43NmE1LjQ4IDUuNDggMCAwIDAtLjY2IDZINmEzIDMgMCAwIDEtMy0zVjhabTkuMDcgMy40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDJsLjM1LjA4QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZVNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDQuNzVDMiAzLjc4IDIuNzggMyAzLjc1IDNoMTIuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjVjMCAuNy0uNCAxLjMtMSAxLjU4VjkuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY4SDR2NmMwIDEuMS45IDIgMiAyaDMuMmMuMS4zNS4yNC42OC40IDFINmEzIDMgMCAwIDEtMy0zVjcuODNjLS42LS4yOC0xLS44OC0xLTEuNTh2LTEuNVpNMy43NSA0YS43NS43NSAwIDAgMC0uNzUuNzV2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTEuNWEuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjc1Wm00Ljc1IDZoMi44NGMtLjQuMjgtLjc3LjYyLTEuMDggMUg4LjVhLjUuNSAwIDAgMSAwLTFabTMuNTcgMS40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDJsLjM1LjA4QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdENvbnRlbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0Q29udGVudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjM1IDMuNjVjLjIuMi4yLjUgMCAuN0w0LjcxIDVINy41YS41LjUgMCAwIDEgMCAxSDQuN2wuNjUuNjVhLjUuNSAwIDEgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41Yy4yLS4yLjUtLjIuNyAwWk01LjUgOUEyLjUgMi41IDAgMCAwIDMgMTEuNXYzQTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0zQTIuNSAyLjUgMCAwIDAgMTQuNSA5aC05Wm0uNSAzLjVoOGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEgMC0xWm04LjY1LTguMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN2wuNjQtLjY1SDEyLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0uNjUtLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0Q29udGVudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0Q29udGVudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS4zNSAzLjY1Yy4yLjIuMi41IDAgLjdMNC43MSA1SDcuNWEuNS41IDAgMCAxIDAgMUg0LjdsLjY1LjY1YS41LjUgMCAxIDEtLjcuN2wtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdsMS41LTEuNWMuMi0uMi41LS4yLjcgMFpNNS41IDlBMi41IDIuNSAwIDAgMCAzIDExLjV2M0EyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM0EyLjUgMi41IDAgMCAwIDE0LjUgOWgtOVpNNCAxMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTNabTIgMWEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xSDZabTguNjUtOC4xNWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVjLjIuMi4yLjUgMCAuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43LS43bC42NC0uNjVIMTIuNWEuNS41IDAgMCAxIDAtMWgyLjhsLS42NS0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXREb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdERvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTUuNzEgMTQuNzctLjcuNzNWMi43NWEuNzUuNzUgMCAxIDAtMS41IDB2MTIuNzZsLS43Mi0uNzRhLjc1Ljc1IDAgMCAwLTEuMDggMS4wNGwxLjgyIDEuODhhMSAxIDAgMCAwIDEuNDQgMGwxLjgyLTEuODhhLjc1Ljc1IDAgMCAwLTEuMDgtMS4wNFpNNSAxN2EyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg2LjI1YS43NS43NSAwIDAgMSAwIDEuNUg1YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWg0LjI1YS43NS43NSAwIDAgMSAwIDEuNUg1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0RG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuMTQgMTUuMiAxNSAxNi4zNlYyLjVhLjUuNSAwIDEgMC0xIDB2MTMuODdsLTEuMTQtMS4xOGEuNS41IDAgMSAwLS43Mi43bDEuODIgMS44OGMuMy4zLjc5LjMgMS4wOCAwbDEuODItMS44OGEuNS41IDAgMSAwLS43Mi0uN1pNNSAxN2EyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg2LjVhLjUuNSAwIDAgMSAwIDFINWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoNC41YS41LjUgMCAxIDEgMCAxSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRIZWlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wibTE1IDQuNS43MS43M0EuNzUuNzUgMCAwIDAgMTYuOCA0LjJsLTEuODItMS44OGExIDEgMCAwIDAtMS40NCAwbC0xLjgyIDEuODhhLjc1Ljc1IDAgMCAwIDEuMDggMS4wNGwuNzEtLjc0djIuNzZhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNVpNMyA1YzAtMS4xLjktMiAyLTJoNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINWEuNS41IDAgMCAwLS41LjV2MTBjMCAuMjguMjIuNS41LjVoNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINWEyIDIgMCAwIDEtMi0yVjVabTEyLjcxIDkuNzctLjcuNzN2LTIuNzVhLjc1Ljc1IDAgMSAwLTEuNSAwdjIuNzZsLS43Mi0uNzRhLjc1Ljc1IDAgMCAwLTEuMDggMS4wNGwxLjgyIDEuODhhMSAxIDAgMCAwIDEuNDQgMGwxLjgyLTEuODhhLjc1Ljc1IDAgMCAwLTEuMDgtMS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdEhlaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIm0xNSAzLjYzIDEuMTQgMS4xOGEuNS41IDAgMSAwIC43Mi0uN2wtMS44Mi0xLjg4YS43NS43NSAwIDAgMC0xLjA4IDBMMTIuMTQgNC4xYS41LjUgMCAxIDAgLjcyLjdMMTQgMy42M1Y3LjVhLjUuNSAwIDAgMCAxIDBWMy42M1pNMyA1YzAtMS4xLjktMiAyLTJoNC41YS41LjUgMCAwIDEgMCAxSDVhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDQuNWEuNS41IDAgMCAxIDAgMUg1YTIgMiAwIDAgMS0yLTJWNVptMTMuMTQgMTAuMkwxNSAxNi4zNlYxMi41YS41LjUgMCAxIDAtMSAwdjMuODdsLTEuMTQtMS4xOGEuNS41IDAgMSAwLS43Mi43bDEuODIgMS44OGMuMy4zLjc5LjMgMS4wOCAwbDEuODItMS44OGEuNS41IDAgMSAwLS43Mi0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdEhlaWdodERvdHRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRIZWlnaHREb3R0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTUuNzEgNS4yMy0xLjQ2LTEuNTEtMS40NiAxLjUxYS43NS43NSAwIDAgMS0xLjA4LTEuMDRsMS44Mi0xLjg4YTEgMSAwIDAgMSAxLjQ0IDBsMS44MiAxLjg4YS43NS43NSAwIDAgMS0xLjA4IDEuMDRabTAgOS41NC0xLjQ2IDEuNTEtMS40Ni0xLjUxYS43NS43NSAwIDAgMC0xLjA4IDEuMDRsMS44MiAxLjg4YTEgMSAwIDAgMCAxLjQ0IDBsMS44Mi0xLjg4YS43NS43NSAwIDAgMC0xLjA4LTEuMDRaTTE0LjI1IDEyYy40MiAwIC43NS4zNC43NS43NXYuNWEuNzUuNzUgMCAxIDEtMS41IDB2LS41YzAtLjQxLjM0LS43NS43NS0uNzVabS43NS0xLjc1YS43NS43NSAwIDEgMS0xLjUgMHYtLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41Wk0xNC4yNSA4Yy40MiAwIC43NS0uMzQuNzUtLjc1di0uNWEuNzUuNzUgMCAxIDAtMS41IDB2LjVjMCAuNDEuMzQuNzUuNzUuNzVaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNC4yNWEuNzUuNzUgMCAwIDAgMC0xLjVINWEuNS41IDAgMCAxLS41LS41VjVjMC0uMjguMjItLjUuNS0uNWg0LjI1YS43NS43NSAwIDAgMCAwLTEuNUg1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0RG90dGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRIZWlnaHREb3R0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjE0IDQuOCAxNC41IDMuMTJsLTEuNjQgMS43YS41LjUgMCAwIDEtLjcyLS43bDEuODItMS44OGMuMy0uMy43OS0uMyAxLjA4IDBsMS44MiAxLjg4YS41LjUgMCAxIDEtLjcyLjdaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNC41YS41LjUgMCAwIDAgMC0xSDVhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoNC41YS41LjUgMCAwIDAgMC0xSDVabTkuNSAyYy4yOCAwIC41LjIyLjUuNVY3YS41LjUgMCAxIDEtMSAwVjUuNWMwLS4yOC4yMy0uNS41LS41Wm0uNSA4YS41LjUgMCAxIDAtMSAwdjEuNWEuNS41IDAgMCAwIDEgMFYxM1ptLS41LTRjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDEgMS0xIDB2LTFjMC0uMjguMjMtLjUuNS0uNVptMS42NCA2LjItMS42NCAxLjY5LTEuNjQtMS43YS41LjUgMCAxIDAtLjcyLjdsMS44MiAxLjg4Yy4zLjMuNzkuMyAxLjA4IDBsMS44Mi0xLjg4YS41LjUgMCAxIDAtLjcyLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0SW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0SW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTQuNzggNy43OCAyLTJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtLjcyLjcyVjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNjlsLS43Mi0uNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwyIDJjLjMuMy43Ny4zIDEuMDYgMFpNMyA1YzAtMS4xLjktMiAyLTJoNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINWEuNS41IDAgMCAwLS41LjV2MTBjMCAuMjguMjIuNS41LjVoNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINWEyIDIgMCAwIDEtMi0yVjVabTEzLjc4IDkuMjItMi0yYS43NS43NSAwIDAgMC0xLjA2IDBsLTIgMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bC43Mi0uNzJ2Mi42OWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNjlsLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRIZWlnaHRJblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0SW5SZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0Ljg1IDcuODUgMi0yYS41LjUgMCAwIDAtLjctLjdMMTUgNi4yOVYyLjVhLjUuNSAwIDAgMC0xIDB2My44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBaTTMgNWMwLTEuMS45LTIgMi0yaDQuNWEuNS41IDAgMCAxIDAgMUg1YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg0LjVhLjUuNSAwIDAgMSAwIDFINWEyIDIgMCAwIDEtMi0yVjVabTEzLjg1IDkuMTUtMi0yYS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYzLjc5YS41LjUgMCAwIDAgMSAwdi0zLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNS43MSA1LjIzLS43LS43M3YxMi43NWEuNzUuNzUgMCAxIDEtMS41IDBWNC40OWwtLjcyLjc0YS43NS43NSAwIDAgMS0xLjA4LTEuMDRsMS44Mi0xLjg4YTEgMSAwIDAgMSAxLjQ0IDBsMS44MiAxLjg4YS43NS43NSAwIDAgMS0xLjA4IDEuMDRaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNi4yNWEuNzUuNzUgMCAwIDAgMC0xLjVINWEuNS41IDAgMCAxLS41LS41VjVjMC0uMjguMjItLjUuNS0uNWg0LjI1YS43NS43NSAwIDAgMCAwLTEuNUg1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdFVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi4xNCA0LjggMTUgMy42NFYxNy41YS41LjUgMCAxIDEtMSAwVjMuNjNMMTIuODYgNC44YS41LjUgMCAwIDEtLjcyLS43bDEuODItMS44OGMuMy0uMy43OS0uMyAxLjA4IDBsMS44MiAxLjg4YS41LjUgMCAxIDEtLjcyLjdaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNi41YS41LjUgMCAwIDAgMC0xSDVhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoNC41YS41LjUgMCAwIDAgMC0xSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRXaWR0aEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRXaWR0aEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNS41IDE1LS43My43MWEuNzUuNzUgMCAxIDAgMS4wNCAxLjA4bDEuODktMS44MmExIDEgMCAwIDAgMC0xLjQ0bC0xLjg5LTEuODJhLjc1Ljc1IDAgMCAwLTEuMDQgMS4wOGwuNzQuNzFoLTIuNzZhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNzVaTTE1IDNhMiAyIDAgMCAxIDIgMnY0LjI1YS43NS43NSAwIDAgMS0xLjUgMFY1YS41LjUgMCAwIDAtLjUtLjVINWEuNS41IDAgMCAwLS41LjV2NC4yNWEuNzUuNzUgMCAwIDEtMS41IDBWNWMwLTEuMS45LTIgMi0yaDEwWk01LjIzIDE1LjcxbC0uNzMtLjdoMi43NWEuNzUuNzUgMCAxIDAgMC0xLjVINC41bC43My0uNzJhLjc1Ljc1IDAgMCAwLTEuMDQtMS4wOGwtMS44OCAxLjgyYTEgMSAwIDAgMCAwIDEuNDRsMS44OCAxLjgyYS43NS43NSAwIDAgMCAxLjA0LTEuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRXaWR0aFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0V2lkdGhSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE2LjM3IDE1LTEuMTggMS4xNGEuNS41IDAgMSAwIC43LjcybDEuODgtMS44MmMuMy0uMy4zLS43OCAwLTEuMDhsLTEuODgtMS44MmEuNS41IDAgMSAwLS43LjcyTDE2LjM4IDE0SDEyLjVhLjUuNSAwIDEgMCAwIDFoMy44N1pNMTUgM2EyIDIgMCAwIDEgMiAydjQuNWEuNS41IDAgMCAxLTEgMFY1YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjQuNWEuNS41IDAgMCAxLTEgMFY1YzAtMS4xLjktMiAyLTJoMTBaTTQuODEgMTYuMTQgMy42MyAxNUg3LjVhLjUuNSAwIDEgMCAwLTFIMy42M2wxLjE4LTEuMTRhLjUuNSAwIDAgMC0uNy0uNzJsLTEuODggMS44MmMtLjMuMy0uMy43OSAwIDEuMDhsMS44OSAxLjgyYS41LjUgMCAxIDAgLjY5LS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoRG90dGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdFdpZHRoRG90dGVkRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0Ljc3IDE1LjcxIDEuNTEtMS40Ni0xLjUxLTEuNDZhLjc1Ljc1IDAgMSAxIDEuMDQtMS4wOGwxLjg5IDEuODJhMSAxIDAgMCAxIDAgMS40NGwtMS44OSAxLjgyYS43NS43NSAwIDAgMS0xLjA0LTEuMDhabS05LjU0IDAtMS41LTEuNDYgMS41LTEuNDZhLjc1Ljc1IDAgMCAwLTEuMDQtMS4wOGwtMS44OCAxLjgyYTEgMSAwIDAgMCAwIDEuNDRsMS44OCAxLjgyYS43NS43NSAwIDAgMCAxLjA0LTEuMDhaTTggMTQuMjVjMCAuNDItLjMzLjc1LS43NS43NWgtLjVhLjc1Ljc1IDAgMSAxIDAtMS41aC41Yy40MiAwIC43NS4zNC43NS43NVptMS43NS43NWEuNzUuNzUgMCAxIDEgMC0xLjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNVptMi4yNS0uNzVjMCAuNDIuMzQuNzUuNzUuNzVoLjVhLjc1Ljc1IDAgMSAwIDAtMS41aC0uNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk0xNyA1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjQuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjVjMC0uMjguMjItLjUuNS0uNWgxMGMuMjggMCAuNS4yMi41LjV2NC4yNWEuNzUuNzUgMCAxIDAgMS41IDBWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoRG90dGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRXaWR0aERvdHRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTUuMiAxNi4xNCAxLjctMS42NC0xLjctMS42NGEuNS41IDAgMCAxIC42OS0uNzJsMS44OCAxLjgyYy4zLjMuMy43OSAwIDEuMDhsLTEuODggMS44MmEuNS41IDAgMSAxLS43LS43MlpNMTcgNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY0LjVhLjUuNSAwIDAgMCAxIDBWNWExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NC41YS41LjUgMCAxIDAgMSAwVjVabS0yIDkuNWEuNS41IDAgMCAxLS41LjVIMTNhLjUuNSAwIDEgMSAwLTFoMS41Yy4yOCAwIC41LjIzLjUuNVpNNyAxNWEuNS41IDAgMSAwIDAtMUg1LjVhLjUuNSAwIDAgMCAwIDFIN1ptNC0uNWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDEgMSAwLTFoMWMuMjggMCAuNS4yMy41LjVabS02LjE5IDEuNjQtMS43LTEuNjQgMS43LTEuNjRhLjUuNSAwIDAgMC0uNy0uNzJsLTEuODggMS44MmMtLjMuMy0uMy43OSAwIDEuMDhsMS44OSAxLjgyYS41LjUgMCAxIDAgLjY5LS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmV0d2VlbkRvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCZXR3ZWVuRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDEuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41QzMuNSAzLjIyIDQuMjggNCA1LjI1IDRoOUMxNS4yMiA0IDE2IDMuMjIgMTYgMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTlBLjI1LjI1IDAgMCAxIDUgMi4yNXYtLjVaTTkuNzUgNWMuNDEgMCAuNzUuMzQuNzUuNzV2Ni42OWwyLjk3LTIuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNC4yNSA0LjI1Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNC4yNS00LjI1YS43NS43NSAwIDEgMSAxLjA2LTEuMDZMOSAxMi40NFY1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTMuNSAxNy43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg5Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTlhLjI1LjI1IDAgMCAwLS4yNS4yNXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCZXR3ZWVuRG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCZXR3ZWVuRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAyYS41LjUgMCAwIDAtMSAwdi41QzMgMy4zMyAzLjY3IDQgNC41IDRoMTBjLjgzIDAgMS41LS42NyAxLjUtMS41VjJhLjUuNSAwIDAgMC0xIDB2LjVhLjUuNSAwIDAgMS0uNS41aC0xMGEuNS41IDAgMCAxLS41LS41VjJabTUuNSAzYy4yOCAwIC41LjIyLjUuNXY3LjhsMy42NS0zLjY1YS41LjUgMCAwIDEgLjcuN2wtNC41IDQuNWEuNS41IDAgMCAxLS43IDBsLTQuNS00LjVhLjUuNSAwIDAgMSAuNy0uN0w5IDEzLjI5VjUuNWMwLS4yOC4yMi0uNS41LS41Wk0zIDE3LjVjMC0uODMuNjctMS41IDEuNS0xLjVoMTBjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVhLjUuNSAwIDAgMS0xIDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTEwYS41LjUgMCAwIDAtLjUuNXYuNWEuNS41IDAgMCAxLTEgMHYtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JldHdlZW5VcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JldHdlZW5VcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDE4LjI1YS43NS43NSAwIDAgMS0xLjUgMHYtLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoOWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC05YS4yNS4yNSAwIDAgMC0uMjUuMjV2LjVaTTkuNzUgMTVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNy41NmwyLjk3IDIuOTdhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtNC4yNS00LjI1YS43NS43NSAwIDAgMC0xLjA2IDBMNC45NyA5LjQ3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZMOSA3LjU2djYuNjljMCAuNDEuMzQuNzUuNzUuNzVaTTMuNSAyLjI1QzMuNSAzLjIyIDQuMjggNCA1LjI1IDRoOUMxNS4yMiA0IDE2IDMuMjIgMTYgMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTlBLjI1LjI1IDAgMCAxIDUgMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCZXR3ZWVuVXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmV0d2VlblVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDE4YS41LjUgMCAwIDEtMSAwdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWEuNS41IDAgMCAxLTEgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMTBhLjUuNSAwIDAgMC0uNS41di41Wm01LjUtM2EuNS41IDAgMCAwIC41LS41VjYuN2wzLjY1IDMuNjVhLjUuNSAwIDAgMCAuNy0uN2wtNC41LTQuNWEuNS41IDAgMCAwLS43IDBsLTQuNSA0LjVhLjUuNSAwIDAgMCAuNy43TDkgNi43MXY3Ljc5YzAgLjI4LjIyLjUuNS41Wk0zIDIuNUMzIDMuMzMgMy42NyA0IDQuNSA0aDEwYy44MyAwIDEuNS0uNjcgMS41LTEuNVYyYS41LjUgMCAwIDAtMSAwdi41YS41LjUgMCAwIDEtLjUuNWgtMTBhLjUuNSAwIDAgMS0uNS0uNVYyYS41LjUgMCAwIDAtMSAwdi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljc4IDUuNzJjLjMuMy4zLjc3IDAgMS4wNkw1LjU2IDloOC44OGwtMi4yMi0yLjIyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMy41IDMuNWMuMy4zLjMuNzcgMCAxLjA2bC0zLjUgMy41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMi4yMi0yLjIySDUuNTZsMi4yMiAyLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTMuNS0zLjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmwzLjUtMy41Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjM1IDUuNjVjLjIuMi4yLjUgMCAuN0w0LjcxIDloMTAuNThsLTIuNjQtMi42NWEuNS41IDAgMCAxIC43LS43bDMuNSAzLjVjLjIuMi4yLjUgMCAuN2wtMy41IDMuNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDEwSDQuNzFsMi42NCAyLjY1YS41LjUgMCAwIDEtLjcuN2wtMy41LTMuNWEuNS41IDAgMCAxIDAtLjdsMy41LTMuNWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbFVwRG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxVcERvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43OCA3Ljc4YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMy41LTMuNWMuMy0uMy43Ny0uMyAxLjA2IDBsMy41IDMuNWEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2TDEwLjUgNS41NnY4Ljg4bDIuMjItMi4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0zLjUgMy41Yy0uMy4zLS43Ny4zLTEuMDYgMGwtMy41LTMuNWEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2TDkgMTQuNDRWNS41Nkw2Ljc4IDcuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JpZGlyZWN0aW9uYWxVcERvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbFVwRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4zNSA3LjM1YS41LjUgMCAxIDEtLjctLjdsMy41LTMuNWMuMi0uMi41LS4yLjcgMGwzLjUgMy41YS41LjUgMCAwIDEtLjcuN0wxMCA0LjcxdjEwLjU4bDIuNjUtMi42NGEuNS41IDAgMCAxIC43LjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNyAwbC0zLjUtMy41YS41LjUgMCAwIDEgLjctLjdMOSAxNS4yOVY0LjcxTDYuMzUgNy4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Qm91bmNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Qm91bmNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNmEuNzUuNzUgMCAwIDAtLjc1Ljc1djYuNWEuNzUuNzUgMCAwIDAgMS41IDBWOC41Nmw2LjQ3IDYuNDdjLjMuMy43Ny4zIDEuMDYgMGw2Ljc1LTYuNzVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNi4yMiA2LjIyTDQuNTYgNy41aDQuNjlhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JvdW5jZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCb3VuY2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA2YS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAwIDAgMSAwVjcuN2w3LjE1IDcuMTVjLjIuMi41LjIuNyAwbDctN2EuNS41IDAgMCAwLS43LS43bC02LjY1IDYuNjRMMy43IDdoNS44YS41LjUgMCAwIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFptLTQuNjUuODVhLjUuNSAwIDAgMC0uNy0uN2wtMi4xNSAyLjE0VjYuNWEuNS41IDAgMCAwLTEgMHY1LjhsLTIuMTUtMi4xNWEuNS41IDAgMCAwLS43LjdsMyAzYy4yLjIuNS4yLjcgMGwzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTMuMzUgMTAuODUtMyAzYS41LjUgMCAwIDEtLjcgMGwtMy0zYS41LjUgMCAwIDEgLjctLjdsMi4xNSAyLjE0VjYuNWEuNS41IDAgMCAxIDEgMHY1LjhsMi4xNS0yLjE1YS41LjUgMCAwIDEgLjcuN1pNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZabTctOGE3IDcgMCAxIDEtMTQgMCA3IDcgMCAwIDEgMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bkRvdWJsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25Eb3VibGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4zNSAxMy44NSA5IDEyLjIxYS41LjUgMCAxIDAtLjctLjcxbC0uOC44VjYuNWEuNS41IDAgMCAwLTEgMHY1LjhsLS44LS44YS41LjUgMCAxIDAtLjcuN2wxLjY1IDEuNjVjLjIuMi41LjIuNyAwWk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFptLTQuNjUgMy44NUwxNSAxMi4yMWEuNS41IDAgMSAwLS43LS43MWwtLjguOFY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0uOC0uOGEuNS41IDAgMSAwLS43LjdsMS42NSAxLjY1Yy4yLjIuNS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bkRvdWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duRG91YmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIm05IDEyLjItMS42NSAxLjY1YS41LjUgMCAwIDEtLjcgMEw1IDEyLjIxYS41LjUgMCAxIDEgLjctLjcxbC44LjhWNi41YS41LjUgMCAwIDEgMSAwdjUuOGwuOC0uOGEuNS41IDAgMSAxIC43LjdabTEgNS44YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm03LThhNyA3IDAgMSAxLTE0IDAgNyA3IDAgMCAxIDE0IDBabS0zLjY1IDMuODVMMTUgMTIuMjFhLjUuNSAwIDEgMC0uNy0uNzFsLS44LjhWNi41YS41LjUgMCAwIDAtMSAwdjUuOGwtLjgtLjhhLjUuNSAwIDEgMC0uNy43bDEuNjUgMS42NWMuMi4yLjUuMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25SaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0yLjg1IDEwLjg2YS41LjUgMCAwIDEtLjM1LjE0aC01YS41LjUgMCAwIDEgMC0xaDMuOEw3LjE0IDcuODVhLjUuNSAwIDEgMSAuNy0uN0wxMiAxMS4yOVY3LjVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLS4xNC4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25SaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuODUgMTIuODZhLjUuNSAwIDAgMS0uMzUuMTRoLTVhLjUuNSAwIDAgMSAwLTFoMy44TDcuMTQgNy44NWEuNS41IDAgMSAxIC43LS43TDEyIDExLjI5VjcuNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtLjE0LjM1Wk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptNy04YTcgNyAwIDEgMS0xNCAwIDcgNyAwIDAgMSAxNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duU3BsaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duU3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabS05LjIgMi40MWEuNS41IDAgMSAwLS43MS0uN2wtLjU5LjU4VjloNXYzLjNsLS41OS0uNmEuNS41IDAgMCAwLS43LjcxbDEuNDQgMS40NGMuMi4yLjUuMi43IDBsMS40NC0xLjQ0YS41LjUgMCAwIDAtLjctLjdsLS41OS41OFY4LjVBLjUuNSAwIDAgMCAxMyA4aC0yLjVWNS41YS41LjUgMCAwIDAtMSAwVjhIN2EuNS41IDAgMCAwLS41LjV2My44bC0uNTktLjZhLjUuNSAwIDAgMC0uNy43MWwxLjQ0IDEuNDRjLjIuMi41LjIuNyAwbDEuNDQtMS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blNwbGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25TcGxpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtOC44IDEyLjQxLTEuNDUgMS40NGEuNS41IDAgMCAxLS43IDBMNS4yIDEyLjQxYS41LjUgMCAwIDEgLjctLjdsLjU5LjU4VjguNWMwLS4yOC4yMi0uNS41LS41aDIuNVY1LjVhLjUuNSAwIDAgMSAxIDBWOEgxM2MuMjggMCAuNS4yMi41LjV2My44bC41OS0uNmEuNS41IDAgMCAxIC43LjcxbC0xLjQ0IDEuNDRhLjUuNSAwIDAgMS0uNyAwbC0xLjQ0LTEuNDRhLjUuNSAwIDAgMSAuNy0uN2wuNTkuNThWOWgtNXYzLjNsLjU5LS42YS41LjUgMCAxIDEgLjcuNzFaTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm03LThhNyA3IDAgMSAxLTE0IDAgNyA3IDAgMCAxIDE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25VcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25VcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptLTEtNS44LTEuNjUgMS42NWEuNS41IDAgMCAxLS43IDBMNSAxMi4yMWEuNS41IDAgMSAxIC43LS43MWwuOC44VjYuNWEuNS41IDAgMCAxIDEgMHY1LjhsLjgtLjhhLjUuNSAwIDEgMSAuNy43Wm02LTQuNGEuNS41IDAgMCAxLS43LjdsLS44LS44djUuOGEuNS41IDAgMCAxLTEgMFY3LjdsLS44LjhhLjUuNSAwIDEgMS0uNy0uN2wxLjY1LTEuNjVjLjItLjIuNS0uMi43IDBMMTUgNy43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25VcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4zNSAxMy44NSA5IDEyLjIxYS41LjUgMCAxIDAtLjctLjcxbC0uOC44VjYuNWEuNS41IDAgMCAwLTEgMHY1LjhsLS44LS44YS41LjUgMCAxIDAtLjcuN2wxLjY1IDEuNjVjLjIuMi41LjIuNyAwWk0xNSA3LjhsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43IDBMMTEgNy43OWEuNS41IDAgMSAwIC43LjcxbC44LS44djUuOGEuNS41IDAgMSAwIDEgMFY3LjdsLjguOGEuNS41IDAgMSAwIC43LS43Wk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFptLTggN2E3IDcgMCAxIDAgMC0xNCA3IDcgMCAwIDAgMCAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMThhOCA4IDAgMSAxIDAtMTYgOCA4IDAgMCAxIDAgMTZabS0uODUtNC42NWEuNS41IDAgMCAwIC43LS43TDcuNzEgMTAuNWg1Ljc5YS41LjUgMCAwIDAgMC0xSDcuN2wyLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMyAzYS41LjUgMCAwIDAgMCAuN2wzIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZUxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtOS4xNSAxMy4zNS0zLTNhLjUuNSAwIDAgMSAwLS43bDMtM2EuNS41IDAgMSAxIC43LjdMNy43MSA5LjVoNS43OWEuNS41IDAgMCAxIDAgMUg3LjdsMi4xNSAyLjE1YS41LjUgMCAwIDEtLjcuN1pNMiAxMGE4IDggMCAxIDAgMTYgMCA4IDggMCAwIDAtMTYgMFptOCA3YTcgNyAwIDEgMSAwLTE0IDcgNyAwIDAgMSAwIDE0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm0uODUtNC42NWEuNS41IDAgMCAxLS43LS43bDIuMTQtMi4xNUg2LjVhLjUuNSAwIDAgMSAwLTFoNS44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMSAuNy0uN2wzIDNjLjIuMi4yLjUgMCAuN2wtMyAzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAuODUgMTMuMzUgMy0zYS41LjUgMCAwIDAgMC0uN2wtMy0zYS41LjUgMCAwIDAtLjcuN2wyLjE0IDIuMTVINi41YS41LjUgMCAwIDAgMCAxaDUuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN1pNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabS04IDdhNyA3IDAgMSAwIDAtMTQgNyA3IDAgMCAwIDAgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNC42NS0uODVhLjUuNSAwIDEgMCAuNy43TDkuNSA3LjcxdjUuNzlhLjUuNSAwIDAgMCAxIDBWNy43bDIuMTUgMi4xNWEuNS41IDAgMCAwIC43LS43bC0zLTNhLjUuNSAwIDAgMC0uNyAwbC0zIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwUmVndWxhcicsIFwiMWVtXCIsIFtcIm02LjY1IDkuMTUgMy0zYy4yLS4yLjUtLjIuNyAwbDMgM2EuNS41IDAgMCAxLS43LjdMMTAuNSA3LjcxdjUuNzlhLjUuNSAwIDAgMS0xIDBWNy43TDcuMzUgOS44NmEuNS41IDAgMCAxLS43LS43Wk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVVcExlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZaTTcuMTUgNy4xNEEuNS41IDAgMCAxIDcuNSA3aDVhLjUuNSAwIDAgMSAwIDFIOC43bDQuMTUgNC4xNWEuNS41IDAgMCAxLS43LjdMOCA4LjcxdjMuNzlhLjUuNSAwIDAgMS0xIDB2LTVhLjUuNSAwIDAgMSAuMTQtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXBMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjE1IDcuMTRBLjUuNSAwIDAgMSA3LjUgN2g1YS41LjUgMCAwIDEgMCAxSDguN2w0LjE1IDQuMTVhLjUuNSAwIDAgMS0uNy43TDggOC43MXYzLjc5YS41LjUgMCAwIDEtMSAwdi01YS41LjUgMCAwIDEgLjE0LS4zNVpNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlptLTcgOGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMThhOCA4IDAgMSAxIDAtMTYgOCA4IDAgMCAxIDAgMTZabTIuODUtMTAuODZBLjUuNSAwIDAgMCAxMi41IDdoLTVhLjUuNSAwIDAgMCAwIDFoMy44bC00LjE1IDQuMTVhLjUuNSAwIDAgMCAuNy43TDEyIDguNzF2My43OWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLS4xNC0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXBSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuODUgNy4xNEEuNS41IDAgMCAwIDEyLjUgN2gtNWEuNS41IDAgMCAwIDAgMWgzLjhsLTQuMTUgNC4xNWEuNS41IDAgMCAwIC43LjdMMTIgOC43MXYzLjc5YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtLjE0LS4zNVpNMTAgMmE4IDggMCAxIDEgMCAxNiA4IDggMCAwIDEgMC0xNlptNyA4YTcgNyAwIDEgMC0xNCAwIDcgNyAwIDAgMCAxNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAxMGE2IDYgMCAwIDEgOS45Ny00LjVoLTEuMjJhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTNhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMTZhNy41IDcuNSAwIDEgMCAyLjUgNS4zMS43NS43NSAwIDAgMC0xLjUuMDZWMTBhNiA2IDAgMCAxLTEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgMTBhNiA2IDAgMCAxIDEwLjQ3LTRIMTIuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0xIDB2MS42YTcgNyAwIDEgMCAxLjk4IDQuMzYuNS41IDAgMSAwLTEgLjA4TDE2IDEwYTYgNiAwIDAgMS0xMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2VEYXNoZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VEYXNoZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuNDYgMi42NGMuMzIuMDcuNTQuMzUuNTQuNjggMCAuNS0uNS44NS0uOTkuNzdhNi4wNCA2LjA0IDAgMCAwLTIuMDIgMGMtLjUuMDgtLjk5LS4yNy0uOTktLjc3IDAtLjMzLjIyLS42MS41NC0uNjhhNy41NCA3LjU0IDAgMCAxIDIuOTIgMFptLS40NSAxMy4yN2MuNS0uMDguOTkuMjcuOTkuNzcgMCAuMzMtLjIyLjYxLS41NC42OGE3LjU0IDcuNTQgMCAwIDEtMi45MiAwIC42OC42OCAwIDAgMS0uNTQtLjY4YzAtLjUuNS0uODUuOTktLjc3YTYuMDQgNi4wNCAwIDAgMCAyLjAyIDBabTEuOTktLjI1YzAgLjU3LjU5Ljk1IDEuMDcuNjRhNy41NCA3LjU0IDAgMCAwIDIuMjMtMi4yM2MuMzEtLjQ4LS4wNy0xLjA3LS42NC0xLjA3YS44Ni44NiAwIDAgMC0uNy4zOSA2LjAzIDYuMDMgMCAwIDEtMS41NyAxLjU2Ljg2Ljg2IDAgMCAwLS4zOS43Wm0wLTExLjMyYzAgLjI5LjE1LjU1LjM5LjcuMi4xNS40LjMuNTguNDZoLTEuMjJhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTNhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMTZjLS4yOS0uMjYtLjYtLjUtLjkzLS43LS40OC0uMzItMS4wNy4wNi0xLjA3LjYzWk01LjkzIDMuN0M2LjQgMy40IDcgMy43NyA3IDQuMzRjMCAuMjktLjE1LjU1LS4zOS43QzYgNS40OCA1LjQ3IDYgNS4wNSA2LjYyYS44Ni44NiAwIDAgMS0uNy4zOWMtLjU4IDAtLjk2LS41OS0uNjUtMS4wN0E3LjU0IDcuNTQgMCAwIDEgNS45MyAzLjdaTTIuNjQgOC41NGE3LjU0IDcuNTQgMCAwIDAgMCAyLjkyYy4wNy4zMi4zNS41NC42OC41NC41IDAgLjg1LS41Ljc3LS45OWE2LjA0IDYuMDQgMCAwIDEgMC0yLjAyYy4wOC0uNS0uMjctLjk5LS43Ny0uOTlhLjY4LjY4IDAgMCAwLS42OC41NFptMy4yOSA3Ljc2Yy40OC4zMSAxLjA3LS4wNyAxLjA3LS42NGEuODYuODYgMCAwIDAtLjM5LS43IDYuMDMgNi4wMyAwIDAgMS0xLjU2LTEuNTcuODYuODYgMCAwIDAtLjctLjM5Yy0uNTggMC0uOTYuNTktLjY1IDEuMDdhNy41NCA3LjU0IDAgMCAwIDIuMjMgMi4yM1ptMTEuNTMtNS41NWMuMDQtLjQxLS4zLS43NS0uNzEtLjc1cy0uNzUuMzQtLjguNzVjMCAuMDktLjAyLjE3LS4wNC4yNi0uMDguNS4yNy45OS43Ny45OS4zMyAwIC42MS0uMjIuNjgtLjU0LjA0LS4yMy4wOC0uNDcuMS0uNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZURhc2hlc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VEYXNoZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjY1IDMuMmMuMi4wNS4zNS4yNC4zNS40NSAwIC4zNC0uMzMuNTctLjY2LjVhNi4wMiA2LjAyIDAgMCAwLTIuNjggMGMtLjMzLjA3LS42Ni0uMTYtLjY2LS41IDAtLjIxLjE0LS40LjM1LS40NWE3LjAyIDcuMDIgMCAwIDEgMy4zIDBabS0uMzEgMTIuNjVjLjMzLS4wNy42Ni4xNi42Ni41IDAgLjIxLS4xNC40LS4zNS40NWE3LjAyIDcuMDIgMCAwIDEtMy4zIDAgLjQ3LjQ3IDAgMCAxLS4zNS0uNDVjMC0uMzQuMzMtLjU3LjY2LS41YTYuMDIgNi4wMiAwIDAgMCAyLjY4IDBaTTEzIDE1LjVjMCAuMzguNC42My43Mi40M2E3LjA0IDcuMDQgMCAwIDAgMi4yLTIuMmMuMjEtLjMzLS4wNC0uNzMtLjQyLS43My0uMTkgMC0uMzYuMS0uNDYuMjZhNi4wMyA2LjAzIDAgMCAxLTEuNzggMS43OC41NS41NSAwIDAgMC0uMjYuNDZabTAtMTFjMCAuMTkuMS4zNi4yNi40Ni40NS4zLjg2LjY0IDEuMjEgMS4wNEgxMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLTEgMHYxLjZhNy4wMyA3LjAzIDAgMCAwLTEuMjgtMS4wM2MtLjMyLS4yLS43Mi4wNS0uNzIuNDNabS02LjcyLS40M2MuMzItLjIuNzIuMDUuNzIuNDMgMCAuMTktLjEuMzYtLjI2LjQ2YTYuMDMgNi4wMyAwIDAgMC0xLjc4IDEuNzguNTUuNTUgMCAwIDEtLjQ2LjI2Yy0uMzggMC0uNjMtLjQtLjQzLS43MmE3LjA0IDcuMDQgMCAwIDEgMi4yLTIuMlpNMy4yIDguMzVhNy4wMiA3LjAyIDAgMCAwIDAgMy4zYy4wNS4yLjI0LjM1LjQ1LjM1LjM0IDAgLjU3LS4zMy41LS42NmE2LjAyIDYuMDIgMCAwIDEgMC0yLjY4Yy4wNy0uMzMtLjE2LS42Ni0uNS0uNjYtLjIxIDAtLjQuMTQtLjQ1LjM1Wm0zLjA4IDcuNThjLjMyLjIuNzItLjA1LjcyLS40MyAwLS4xOS0uMS0uMzYtLjI2LS40NmE2LjAzIDYuMDMgMCAwIDEtMS43OC0xLjc4LjU1LjU1IDAgMCAwLS40Ni0uMjZjLS4zOCAwLS42My40LS40My43MmE3LjA0IDcuMDQgMCAwIDAgMi4yIDIuMlptMTAuNy01LjQzYS40Ny40NyAwIDAgMC0uNDgtLjVjLS4yOCAwLS41LjIyLS41Mi41YTYgNiAwIDAgMS0uMTMuODRjLS4wNy4zMy4xNi42Ni41LjY2LjIxIDAgLjQtLjE0LjQ1LS4zNS4xLS4zNy4xNS0uNzYuMTgtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q29sbGFwc2VBbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb2xsYXBzZUFsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDQuNzVabTggM2MwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTYuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTMuNzItLjUzYS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkw1IDkuNTZ2NS42OWEuNzUuNzUgMCAwIDAgMS41IDBWOS41NmwxLjIyIDEuMjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi41LTIuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvbGxhcHNlQWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvbGxhcHNlQWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDQuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0zLjE1IDIuNjVjLjItLjIuNS0uMi43IDBsMi41IDIuNWEuNS41IDAgMCAxLS43LjdMNiA4LjcxdjYuNzlhLjUuNSAwIDAgMS0xIDBWOC43bC0xLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy0uN2wyLjUtMi41Wk0xNy41IDhoLTdhLjUuNSAwIDAgMSAwLTFoN2EuNS41IDAgMCAxIDAgMVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDEwYTYgNiAwIDAgMC05Ljk3LTQuNWgxLjIyYS43NS43NSAwIDAgMSAwIDEuNWgtM2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtM2EuNzUuNzUgMCAwIDEgMS41IDB2MS4xNmE3LjUgNy41IDAgMSAxLTIuNSA1LjMxLjc1Ljc1IDAgMSAxIDEuNS4wNlYxMGE2IDYgMCAwIDAgMTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q291bnRlcmNsb2Nrd2lzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiAxMEE2IDYgMCAwIDAgNS41MyA2SDcuNWEuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAwIDEgMSAwdjEuNmE3IDcgMCAxIDEtMS45OCA0LjM2LjUuNSAwIDAgMSAxIC4wOEw0IDEwYTYgNiAwIDAgMCAxMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlRGFzaGVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q291bnRlcmNsb2Nrd2lzZURhc2hlc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUzIDIuNjRhLjY4LjY4IDAgMCAwLS41My42OGMwIC41LjUuODUuOTkuNzdhNi4wNCA2LjA0IDAgMCAxIDIuMDIgMGMuNS4wOC45OS0uMjcuOTktLjc3YS42OC42OCAwIDAgMC0uNTQtLjY4IDcuNTQgNy41NCAwIDAgMC0yLjkzIDBaTTkgMTUuOTFjLS41LS4wOC0uOTkuMjctLjk5Ljc3IDAgLjMzLjIyLjYxLjUzLjY4YTcuNTQgNy41NCAwIDAgMCAyLjkzIDAgLjY4LjY4IDAgMCAwIC41NC0uNjhjMC0uNS0uNS0uODUtLjk5LS43N2E2LjA0IDYuMDQgMCAwIDEtMi4wMiAwWk03IDE1LjY2YzAgLjU3LS41OS45NS0xLjA3LjY0YTcuNTQgNy41NCAwIDAgMS0yLjIzLTIuMjNjLS4zMS0uNDguMDctMS4wNy42NC0xLjA3LjI5IDAgLjU1LjE1LjcuMzkuNDMuNjEuOTYgMS4xNCAxLjU3IDEuNTYuMjQuMTYuMzkuNDIuMzkuN1pNNyA0LjM0YzAgLjI5LS4xNS41NS0uMzkuNy0uMi4xNS0uNC4zLS41OC40NmgxLjIyYS43NS43NSAwIDAgMSAwIDEuNWgtM2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtM2EuNzUuNzUgMCAwIDEgMS41IDB2MS4xNmMuMjktLjI2LjYtLjUuOTMtLjcuNDgtLjMyIDEuMDcuMDYgMS4wNy42M1ptNy4wNy0uNjRjLS40OC0uMzEtMS4wNy4wNy0xLjA3LjY0IDAgLjI5LjE1LjU1LjM5LjcuNjEuNDMgMS4xNC45NiAxLjU2IDEuNTcuMTYuMjQuNDIuMzkuNy4zOS41OCAwIC45Ni0uNTkuNjUtMS4wN2E3LjU0IDcuNTQgMCAwIDAtMi4yMy0yLjIzWm0zLjI5IDQuODRhNy41NCA3LjU0IDAgMCAxIDAgMi45Mi42OC42OCAwIDAgMS0uNjguNTRjLS41IDAtLjg1LS41LS43Ny0uOTlhNi4wNCA2LjA0IDAgMCAwIDAtMi4wMmMtLjA4LS41LjI3LS45OS43Ny0uOTkuMzIgMCAuNjEuMjIuNjguNTRabS0zLjI5IDcuNzZjLS40OC4zMS0xLjA3LS4wNy0xLjA3LS42NCAwLS4yOS4xNS0uNTUuMzktLjdhNi4wNCA2LjA0IDAgMCAwIDEuNTYtMS41Ny44Ni44NiAwIDAgMSAuNy0uMzljLjU4IDAgLjk2LjU5LjY1IDEuMDdhNy41NCA3LjU0IDAgMCAxLTIuMjMgMi4yM1pNMi41NCAxMC43NWMtLjA0LS40MS4zLS43NS43MS0uNzVzLjc0LjM0LjguNzVjMCAuMDkuMDIuMTcuMDMuMjYuMDkuNS0uMjYuOTktLjc2Ljk5YS42OC42OCAwIDAgMS0uNjgtLjU0IDcuNSA3LjUgMCAwIDEtLjEtLjcxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlRGFzaGVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2VEYXNoZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguMzUgMy4yYS40Ny40NyAwIDAgMC0uMzUuNDVjMCAuMzQuMzMuNTcuNjYuNWE2LjAyIDYuMDIgMCAwIDEgMi42OCAwYy4zMy4wNy42Ni0uMTYuNjYtLjUgMC0uMjEtLjE0LS40LS4zNS0uNDVhNy4wMiA3LjAyIDAgMCAwLTMuMyAwWm0uMzEgMTIuNjVjLS4zMy0uMDctLjY2LjE2LS42Ni41IDAgLjIxLjE0LjQuMzUuNDVhNy4wMiA3LjAyIDAgMCAwIDMuMyAwYy4yLS4wNS4zNS0uMjQuMzUtLjQ1IDAtLjM0LS4zMy0uNTctLjY2LS41YTYuMDIgNi4wMiAwIDAgMS0yLjY4IDBaTTcgMTUuNWMwIC4zOC0uNC42My0uNzMuNDNhNy4wNCA3LjA0IDAgMCAxLTIuMi0yLjJjLS4yLS4zMy4wNS0uNzMuNDMtLjczLjE5IDAgLjM2LjEuNDYuMjZhNi4wMyA2LjAzIDAgMCAwIDEuNzggMS43OGMuMTYuMS4yNi4yNy4yNi40NlptMC0xMWMwIC4xOS0uMS4zNi0uMjYuNDYtLjQ1LjMtLjg2LjY0LTEuMjEgMS4wNEg3LjVhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMSAxIDEgMHYxLjZjLjM4LS4zOS44MS0uNzQgMS4yNy0xLjAzLjMzLS4yLjczLjA1LjczLjQzWm02LjcyLS40M2MtLjMyLS4yLS43Mi4wNS0uNzIuNDMgMCAuMTkuMS4zNi4yNi40NmE2LjAzIDYuMDMgMCAwIDEgMS43OCAxLjc4Yy4xLjE2LjI3LjI2LjQ2LjI2LjM4IDAgLjYzLS40LjQzLS43MmE3LjA0IDcuMDQgMCAwIDAtMi4yLTIuMlptMy4wOCA0LjI4YTcuMDIgNy4wMiAwIDAgMSAwIDMuMy40Ny40NyAwIDAgMS0uNDUuMzVjLS4zNCAwLS41OC0uMzMtLjUtLjY2YTYuMDIgNi4wMiAwIDAgMCAwLTIuNjhjLS4wOC0uMzMuMTYtLjY2LjUtLjY2LjIxIDAgLjQuMTQuNDUuMzVabS0zLjA4IDcuNThjLS4zMi4yLS43Mi0uMDUtLjcyLS40MyAwLS4xOS4xLS4zNi4yNi0uNDZhNi4wMyA2LjAzIDAgMCAwIDEuNzgtMS43OGMuMS0uMTYuMjctLjI2LjQ2LS4yNi4zOCAwIC42My40LjQzLjcyYTcuMDQgNy4wNCAwIDAgMS0yLjIgMi4yWk0zLjAyIDEwLjVjLS4wMi0uMjguMi0uNS40OC0uNS4yOCAwIC41LjIyLjUyLjVhNiA2IDAgMCAwIC4xMy44NGMuMDcuMzMtLjE2LjY2LS41LjY2YS40Ny40NyAwIDAgMS0uNDYtLjM1IDcgNyAwIDAgMS0uMTctMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVEb3duTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlRG93bkxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMzkgMy4xNGEuNzUuNzUgMCAxIDAtLjc4LTEuMjggNy4yIDcuMiAwIDAgMC0yLjk4IDMuMTNBMTEuNiAxMS42IDAgMCAwIDguNzUgMTB2NS40NGwtMi43Mi0yLjcyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsNCA0Yy4zLjMuNzcuMyAxLjA2IDBsNC00YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTIuNzIgMi43MlYxMGMwLTEuOTUuMjUtMy4zMi43NC00LjM3YTUuNzEgNS43MSAwIDAgMSAyLjQtMi40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVEb3duTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZURvd25MZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy4yNiAyLjkzYS41LjUgMCAwIDAtLjUyLS44NkE2Ljk1IDYuOTUgMCAwIDAgOS44NiA1LjFDOS4yNiA2LjM4IDkgNy45NiA5IDEwdjYuM2wtMy4xNS0zLjE1YS41LjUgMCAxIDAtLjcuN2w0IDRjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwLS43LS43TDEwIDE2LjI5VjEwYzAtMS45Ni4yNS0zLjM4Ljc2LTQuNDdhNS45NiA1Ljk2IDAgMCAxIDIuNS0yLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93blJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVEb3duUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi42MSAzLjE0YS43NS43NSAwIDEgMSAuNzgtMS4yOCA3LjIgNy4yIDAgMCAxIDIuOTggMy4xM2MuNjMgMS4zMy44OCAyLjk2Ljg4IDUuMDF2NS40NGwyLjcyLTIuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNCA0Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNC00YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi43MiAyLjcyVjEwYzAtMS45NS0uMjUtMy4zMi0uNzQtNC4zN2E1LjcxIDUuNzEgMCAwIDAtMi40LTIuNDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93blJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlRG93blJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02Ljc0IDIuOTNhLjUuNSAwIDEgMSAuNTItLjg2IDYuOTUgNi45NSAwIDAgMSAyLjg4IDMuMDNjLjYgMS4yOC44NiAyLjg2Ljg2IDQuOXY2LjNsMy4xNS0zLjE1YS41LjUgMCAwIDEgLjcuN2wtNCA0YS41LjUgMCAwIDEtLjcgMGwtNC00YS41LjUgMCAxIDEgLjctLjdMMTAgMTYuMjlWMTBjMC0xLjk2LS4yNS0zLjM4LS43Ni00LjQ3YTUuOTYgNS45NiAwIDAgMC0yLjUtMi42WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDdXJ2ZVVwTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlVXBMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMDMgNy4wM2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDQtNGMuMy0uMy43Ny0uMyAxLjA2IDBsNCA0YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTIuNzItMi43MnY1LjQ0YzAgMS45NS4yNSAzLjMyLjc0IDQuMzdhNS43MSA1LjcxIDAgMCAwIDIuNCAyLjQ5Ljc1Ljc1IDAgMSAxLS43OCAxLjI4IDcuMiA3LjIgMCAwIDEtMi45OC0zLjEzIDExLjYgMTEuNiAwIDAgMS0uODgtNS4wMVY0LjMxTDYuMDMgNy4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVVcExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVVcExlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuODUgNi44NWEuNS41IDAgMSAxLS43LS43bDQtNGMuMi0uMi41LS4yLjcgMGw0IDRhLjUuNSAwIDAgMS0uNy43TDEwIDMuNzFWMTBjMCAxLjk2LjI1IDMuMzguNzYgNC40N2E1Ljk2IDUuOTYgMCAwIDAgMi41IDIuNi41LjUgMCAwIDEtLjUyLjg2IDYuOTUgNi45NSAwIDAgMS0yLjg4LTMuMDNDOS4yNiAxMy42MiA5IDEyLjA0IDkgMTBWMy43TDUuODUgNi44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVVcFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVVcFJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjk3IDcuMDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtNC00YS43NS43NSAwIDAgMC0xLjA2IDBsLTQgNGEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDIuNzItMi43MnY1LjQ0YzAgMS45NS0uMjUgMy4zMi0uNzQgNC4zN2E1LjcxIDUuNzEgMCAwIDEtMi40IDIuNDkuNzUuNzUgMCAxIDAgLjc4IDEuMjggNy4yIDcuMiAwIDAgMCAyLjk4LTMuMTNjLjYzLTEuMzMuODgtMi45Ni44OC01LjAxVjQuMzFsMi43MiAyLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDdXJ2ZVVwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVVcFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC4xNSA2Ljg1YS41LjUgMCAwIDAgLjctLjdsLTQtNGEuNS41IDAgMCAwLS43IDBsLTQgNGEuNS41IDAgMSAwIC43LjdMMTAgMy43MVYxMGMwIDEuOTYtLjI1IDMuMzgtLjc2IDQuNDdhNS45NiA1Ljk2IDAgMCAxLTIuNSAyLjYuNS41IDAgMCAwIC41Mi44NiA2Ljk1IDYuOTUgMCAwIDAgMi44OC0zLjAzYy42LTEuMjguODYtMi44Ni44Ni00LjlWMy43bDMuMTUgMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuOCAxMS4yN2EuNzUuNzUgMCAwIDAtMS4xLTEuMDRsLTQuOTUgNS4yNFYyLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxMi43M2wtNC45Ni01LjI1YS43NS43NSAwIDAgMC0xLjA5IDEuMDRsNi4wNyA2LjQxYTEgMSAwIDAgMCAxLjQ1IDBsNi4wNy02LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2Ljg3IDEwLjg0YS41LjUgMCAxIDAtLjc0LS42OGwtNS42MyA2LjE3VjIuNWEuNS41IDAgMCAwLTEgMHYxMy44M2wtNS42My02LjE3YS41LjUgMCAwIDAtLjc0LjY4bDYuMzEgNi45MWEuNzUuNzUgMCAwIDAgMS4xMSAwbDYuMzItNi45MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkV4Y2xhbWF0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bkV4Y2xhbWF0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNWEzIDMgMCAwIDEgNiAwYzAgMi4yNS0uNzkgNS4yMS0xLjIyIDYuNjlDNy41NCAxMi40OSA2LjggMTMgNiAxM3MtMS41NC0uNTItMS43OC0xLjMxQzMuOCAxMC4yIDMgNy4yMyAzIDVabTEgMTFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWk0xNSAyLjVhLjUuNSAwIDAgMC0xIDB2MTMuOGwtMi4xNS0yLjE1YS41LjUgMCAwIDAtLjcuN2wzIDNjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43TDE1IDE2LjI5VjIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkV4Y2xhbWF0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25FeGNsYW1hdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YTIgMiAwIDEgMSA0IDBjMCAyLjA5LS43NSA0LjkzLTEuMTggNi40LS4xLjM2LS40My42LS44Mi42YS44NC44NCAwIDAgMS0uODItLjZDNC43NSA5LjkxIDQgNy4wNyA0IDVabTItM2EzIDMgMCAwIDAtMyAzYzAgMi4yMy43OSA1LjIgMS4yMiA2LjY5QzQuNDYgMTIuNDggNS4yIDEzIDYgMTNzMS41NC0uNTIgMS43OC0xLjMxQzguMiAxMC4yIDkgNy4yNSA5IDVhMyAzIDAgMCAwLTMtM1pNNSAxNmExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabTktMTEuNWEuNS41IDAgMCAwLTEgMHYxMy44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy43bDMgM2MuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdMMTUgMTYuMjlWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDE2LjI1YzAgLjQxLS4zNC43NS0uNzUuNzVoLTcuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDEgMSAxLjUgMHY1LjY5TDE1LjcyIDMuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkw1LjU2IDE1LjVoNS43Yy40IDAgLjc0LjM0Ljc0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSAxNmEuNS41IDAgMCAxIDAgMWgtOGEuNS41IDAgMCAxLS41LS41di04YS41LjUgMCAwIDEgMSAwdjYuOEwxNi4xNSAzLjE0YS41LjUgMCAxIDEgLjcuN0w0LjcxIDE2aDYuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuMjQgMTYuNWEuNzUuNzUgMCAwIDEgLjEgMS41SDQuNzZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxMC42Wk0xMCAyYy4zOCAwIC43LjI4Ljc1LjY1VjEyLjk1bDIuOTctMi45OGMuMjctLjI2LjY4LS4yOS45OC0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtNC4yNCA0LjI1LS4wNy4wNy0uMS4wNS0uMDMuMDMtLjEuMDMtLjExLjAzLS4wNy4wMUgxMGwtLjE1LS4wMS0uMDgtLjAzYS43My43MyAwIDAgMS0uMjYtLjE0bC00LjI5LTQuMjlBLjc1Ljc1IDAgMCAxIDYuMiA5LjlsLjA4LjA3IDIuOTcgMi45N1YyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDE3YS41LjUgMCAwIDEgLjA5IDFINC41YS41LjUgMCAwIDEtLjA5LTFIMTUuNVpNMTAgMmEuNS41IDAgMCAxIC41LjQxVjE0LjNsMy42NC0zLjY1YS41LjUgMCAwIDEgLjY0LS4wNmwuMDcuMDZjLjE3LjE3LjIuNDQuMDYuNjNsLS4wNi4wNy00LjUgNC41YS41LjUgMCAwIDEtLjI1LjE0TDEwIDE2YS41LjUgMCAwIDEtLjQtLjJsLTQuNDYtNC40NWEuNS41IDAgMCAxIC42NC0uNzZsLjA3LjA2IDMuNjUgMy42NFYyLjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIm05LjI1IDkuOTYtNy4xLTcuMWEuNS41IDAgMSAxIC43LS43MWwxNSAxNWEuNS41IDAgMCAxLS43LjdsLTQuNi00LjU5LTIuMDEgMi4wMi0uMDcuMDYtLjEuMDYtLjAzLjAyLS4xLjA0LS4xMS4wMy0uMDcuMDFIMTBsLS4xNS0uMDEtLjA4LS4wM2EuNzMuNzMgMCAwIDEtLjI2LS4xNGwtNC4yOS00LjI5QS43NS43NSAwIDAgMSA2LjIgOS45bC4wOC4wNyAyLjk3IDIuOTdWOS45NlptMi4yNCAyLjI0LS43NC0uNzR2MS40OGwuNzQtLjc0Wm0yLjQ4LS4zNS0xLjA2LTEuMDYuOC0uODJjLjI3LS4yNi43LS4yOS45OS0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtLjgxLjgyWk05LjI1IDcuMTNsMS41IDEuNVYyLjY1YS43NS43NSAwIDAgMC0xLjUuMXY0LjM4Wm02IDkuMzdhLjc1Ljc1IDAgMCAxIC4xIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTAuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMOS41IDEwLjJ2NC4wOWwtMy42NS0zLjY0LS4wNy0uMDZhLjUuNSAwIDAgMC0uNjQuNzZsNC40NiA0LjQ2Yy4xLjExLjI0LjE5LjQuMTlsLjEtLjAxYS41LjUgMCAwIDAgLjI2LS4xNGwyLjM5LTIuNCA0LjQgNC40YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm05LjIgMTAuNi0xLjU1IDEuNTRWMTEuMmwxLjU0IDEuNTVabTIuMTEtLjctLjctLjcyLjY4LS42OGEuNS41IDAgMCAxIC42NC0uMDZsLjA3LjA2Yy4xNy4xNy4yLjQ0LjA2LjYzbC0uMDYuMDctLjY5LjdaTTkuNSA3LjM3bDEgMVYyLjRhLjUuNSAwIDAgMC0xIC4xdjQuODdabTYgOS42MmEuNS41IDAgMCAxIC4wOSAxSDQuNWEuNS41IDAgMCAxLS4wOS0xSDE1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0VqZWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RWplY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMiA0LjZjLS42LS44LTEuOC0uOC0yLjQgMGwtNC41IDZBMS41IDEuNSAwIDAgMCA1LjUgMTNoOWExLjUgMS41IDAgMCAwIDEuMi0yLjRsLTQuNS02Wk00IDE1YS41LjUgMCAwIDAgMCAxaDEyYS41LjUgMCAwIDAgMC0xSDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0VqZWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VqZWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjYgNS4yYS41LjUgMCAwIDEgLjggMGw0LjUgNmEuNS41IDAgMCAxLS40LjhoLTlhLjUuNSAwIDAgMS0uNC0uOGw0LjUtNlptMS42LS42Yy0uNi0uOC0xLjgtLjgtMi40IDBsLTQuNSA2QTEuNSAxLjUgMCAwIDAgNS41IDEzaDlhMS41IDEuNSAwIDAgMCAxLjItMi40bC00LjUtNlpNNCAxNWEuNS41IDAgMCAwIDAgMWgxMmEuNS41IDAgMCAwIDAtMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNzUgMTcuNWEuNzUuNzUgMCAwIDEgMC0xLjVIMTRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINy43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTRBMy41IDMuNSAwIDAgMSAxNy41IDZ2OGEzLjUgMy41IDAgMCAxLTMuNSAzLjVINy43NVptMC0xMS4zYS43NS43NSAwIDAgMSAxLjA1LjA0bDMgMy4yNWMuMjcuMjkuMjcuNzMgMCAxLjAybC0zIDMuMjVhLjc1Ljc1IDAgMSAxLTEuMS0xLjAybDEuODQtMS45OUgxLjc1YS43NS43NSAwIDAgMSAwLTEuNWg3Ljc5bC0xLjg0LTJhLjc1Ljc1IDAgMCAxIC4wNC0xLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFbnRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDE3YS41LjUgMCAwIDEgMC0xSDE0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDcuNWEuNS41IDAgMCAxIDAtMUgxNGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g3LjVabS4xNS0xMC44NWMuMi0uMi41LS4yLjcgMGwzLjUgMy41Yy4yLjIuMi41IDAgLjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNy0uN2wyLjY0LTIuNjVIMS41YS41LjUgMCAwIDEgMC0xaDguOEw3LjY0IDYuODVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlckxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFbnRlckxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtNC42NCAxMi41IDIuODcgMi43YS43NS43NSAwIDAgMS0xLjAyIDEuMWwtNC4yNS00YS43NS43NSAwIDAgMSAwLTEuMWw0LjI1LTRBLjc1Ljc1IDAgMSAxIDcuNSA4LjNMNC42NCAxMWgxMC4xMWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTQuNWEuNzUuNzUgMCAwIDEgMS41IDB2NC41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINC42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RW50ZXJMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMy43NiAxMiAzLjMzIDMuMTRhLjUuNSAwIDAgMS0uNjguNzJsLTQuMjUtNGEuNS41IDAgMCAxIDAtLjcybDQuMjUtNGEuNS41IDAgMSAxIC42OC43MkwzLjc2IDExSDE1YTIgMiAwIDAgMCAyLTJWNC41YS41LjUgMCAwIDEgMSAwVjlhMyAzIDAgMCAxLTMgM0gzLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlclVwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXJVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjggMi4yNGEuNzUuNzUgMCAwIDAtMS4xIDBsLTQgNC4yNUEuNzUuNzUgMCAxIDAgNC44IDcuNWwyLjctMi44N3YxMC4xMWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjQuNjVsMi43IDIuODZhLjc1Ljc1IDAgMSAwIDEuMS0xLjAybC00LTQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0VudGVyVXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXJVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC44NiAyLjE2YS41LjUgMCAwIDAtLjcyIDBsLTQgNC4yNWEuNS41IDAgMCAwIC43Mi42OEw4IDMuNzZWMTVhMyAzIDAgMCAwIDMgM2g0LjVhLjUuNSAwIDAgMCAwLTFIMTFhMiAyIDAgMCAxLTItMlYzLjc2bDMuMTQgMy4zM2EuNS41IDAgMCAwIC43Mi0uNjhsLTQtNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4aXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNzUgMTcuNWEuNzUuNzUgMCAwIDAgMC0xLjVINi41YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDYuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDYuNUEzLjUgMy41IDAgMCAwIDMgNnY4YTMuNSAzLjUgMCAwIDAgMy41IDMuNWg2LjI1Wm0xLTExLjNhLjc1Ljc1IDAgMCAxIDEuMDUuMDRsMyAzLjI1Yy4yNy4yOS4yNy43MyAwIDEuMDJsLTMgMy4yNWEuNzUuNzUgMCAxIDEtMS4xLTEuMDJsMS44NC0xLjk5SDcuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDcuNzlsLTEuODQtMmEuNzUuNzUgMCAwIDEgLjA0LTEuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4aXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuNSAxN2EuNS41IDAgMCAwIDAtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDYuNWEuNS41IDAgMCAwIDAtMUg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDYuNVptMS4xNS0xMC44NWMuMi0uMi41LS4yLjcgMGwzLjUgMy41Yy4yLjIuMi41IDAgLjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNy0uN2wyLjY0LTIuNjVINy41YS41LjUgMCAwIDEgMC0xaDguOGwtMi42NS0yLjY1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwYW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNzUgM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djMuNWEuNzUuNzUgMCAwIDAgMS41IDBWNS41NmwyLjIyIDIuMjJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw1LjU2IDQuNWgxLjY5YS43NS43NSAwIDAgMCAwLTEuNWgtMy41Wm0wIDE0YS43NS43NSAwIDAgMS0uNzUtLjc1di0zLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNjlsMi4yMi0yLjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZMNS41NiAxNS41aDEuNjlhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVaTTE3IDMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS42OWwtMi4yMiAyLjIyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi4yMi0yLjIydjEuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zLjVaTTE2LjI1IDE3Yy40MSAwIC43NS0uMzQuNzUtLjc1di0zLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuNjlsLTIuMjItMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIuMjIgMi4yMmgtMS42OWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBhbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgM2EuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAwIDEgMFY0LjdsMy4xNSAzLjE1YS41LjUgMCAxIDAgLjctLjdMNC43MSA0SDcuNWEuNS41IDAgMCAwIDAtMWgtNFptMCAxNGEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgMSAwdjIuOGwzLjE1LTMuMTVhLjUuNSAwIDAgMSAuNy43TDQuNzEgMTZINy41YS41LjUgMCAwIDEgMCAxaC00Wk0xNyAzLjVhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWgyLjhsLTMuMTUgMy4xNWEuNS41IDAgMCAwIC43LjdMMTYgNC43MVY3LjVhLjUuNSAwIDAgMCAxIDB2LTRaTTE2LjUgMTdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLTEgMHYyLjhsLTMuMTUtMy4xNWEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTZIMTIuNWEuNS41IDAgMCAwIDAgMWg0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBhbmRBbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBhbmRBbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA0Ljc1Wm04IDNjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS0xLjIyIDUuNTMtMi41IDIuNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw1IDEzLjQ0VjcuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjUuNjlsMS4yMi0xLjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cGFuZEFsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBhbmRBbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTMuMTUgMTEuMzVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0w2IDE0LjI5VjcuNWEuNS41IDAgMCAwLTEgMHY2LjhsLTEuNjUtMS42NWEuNS41IDAgMCAwLS43LjdsMi41IDIuNVpNMTcuNSA4aC03YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDMuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1djExYS43NS43NSAwIDAgMS0xLjUgMHYtMTFjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNSAxMGMwLS40MS4zNC0uNzUuNzUtLjc1aDEwLjE5bC0yLjcyLTIuNzJhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmw0IDRhLjc3Ljc3IDAgMCAxIC4xNS4yMi43NS43NSAwIDAgMS0uMTUuODRsLTQgNGEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDIuNzItMi43Mkg1Ljc1QS43NS43NSAwIDAgMSA1IDEwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDRjLjI4IDAgLjUuMjIuNS41djExYS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wk01IDEwYzAtLjI4LjIyLS41LjUtLjVoMTAuOGwtMy4xNS0zLjE1YS41LjUgMCAwIDEgLjctLjdsNCA0YS41LjUgMCAwIDEgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjctLjdsMy4xNC0zLjE1SDUuNUEuNS41IDAgMCAxIDUgMTBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRMdHJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NSAzLjc1Yy40MSAwIC43NS4zNC43NS43NXYxMWEuNzUuNzUgMCAwIDEtMS41IDB2LTExYzAtLjQxLjM0LS43NS43NS0uNzVaTTUgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC4xOWwtMi43Mi0yLjcyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsNCA0YS43Ny43NyAwIDAgMSAuMTUuMjIuNzUuNzUgMCAwIDEtLjE1Ljg0bC00IDRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwyLjcyLTIuNzJINS43NUEuNzUuNzUgMCAwIDEgNSAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0THRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydEx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDRjLjI4IDAgLjUuMjIuNS41djExYS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wk01IDEwYzAtLjI4LjIyLS41LjUtLjVoMTAuOGwtMy4xNS0zLjE1YS41LjUgMCAwIDEgLjctLjdsNCA0YS41LjUgMCAwIDEgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjctLjdsMy4xNC0zLjE1SDUuNUEuNS41IDAgMCAxIDUgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFJ0bEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy4yNSAzLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTFhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xMWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNMTUgMTBhLjc1Ljc1IDAgMCAwLS43NS0uNzVINC4wNmwyLjcyLTIuNzJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNCA0YS43Ni43NiAwIDAgMC0uMjIuNTMuNzUuNzUgMCAwIDAgLjIyLjUzbDQgNGEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjcyLTIuNzJoMTAuMTljLjQxIDAgLjc1LS4zNC43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjUgNGEuNS41IDAgMCAwLS41LjV2MTFhLjUuNSAwIDAgMCAxIDB2LTExYS41LjUgMCAwIDAtLjUtLjVaTTE1IDEwYS41LjUgMCAwIDAtLjUtLjVIMy43bDMuMTUtMy4xNWEuNS41IDAgMCAwLS43LS43bC00IDRhLjUuNSAwIDAgMCAwIC43bDQgNGEuNS41IDAgMCAwIC43LS43TDMuNzEgMTAuNUgxNC41YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydFVwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwb3J0VXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNTMgMS43MmEuNzUuNzUgMCAwIDAtMS4wNiAwbC00IDRhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwyLjcyLTIuNzJ2MTAuMTlhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuMDZsMi43MiAyLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTQtNFpNNC41IDE2LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDExYS43NS43NSAwIDAgMCAwLTEuNWgtMTFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS42NSAyLjE1Yy4yLS4yLjUtLjIuNyAwbDQgNGEuNS41IDAgMCAxLS43LjdMMTAuNSAzLjcxVjE0LjVhLjUuNSAwIDAgMS0xIDBWMy43TDYuMzUgNi44NmEuNS41IDAgMSAxLS43LS43bDQtNFpNNCAxNy41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS44IDYuNzJjLjI4LjMuMjguNzctLjAxIDEuMDZMNC41NyA5aDMuNjhhLjc1Ljc1IDAgMCAxIDAgMS41SDQuNTZsMS4yMiAxLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLjUxLTIuNWMuMy0uMy43Ny0uMyAxLjA2IDBabTguNDIgMGMuMy0uMy43Ny0uMyAxLjA2IDBsMi41IDIuNWMuMy4zLjMuNzcgMCAxLjA2bC0yLjUgMi41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMS4yMi0xLjIyaC0zLjY5YS43NS43NSAwIDAgMSAwLTEuNWgzLjY5bC0xLjIyLTEuMjJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rml0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS4zNSA2LjY1Yy4yLjIuMi41IDAgLjdMMy43MSA5SDguNWEuNS41IDAgMCAxIDAgMUgzLjdsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN2wtMi41LTIuNWEuNS41IDAgMCAxIDAtLjdsMi41LTIuNWMuMi0uMi41LS4yLjcgMFptOS4zIDBjLjItLjIuNS0uMi43IDBsMi41IDIuNWMuMi4yLjIuNSAwIC43bC0yLjUgMi41YS41LjUgMCAwIDEtLjctLjdMMTYuMjkgMTBIMTEuNWEuNS41IDAgMCAxIDAtMWg0LjhsLTEuNjUtMS42NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdEluRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0SW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS4yMSA3Ljc4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi41IDIuNWEuNzUuNzUgMCAwIDEgLjAxIDEuMDZsLTIuNSAyLjVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjIyLTEuMjJIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMy42OEw1LjIxIDcuNzhabTkuNTggMGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjUgMi41YS43NS43NSAwIDAgMC0uMDEgMS4wNmwyLjUgMi41YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTEuMjItMS4yMmgzLjY5YS43NS43NSAwIDAgMCAwLTEuNWgtMy42OGwxLjIyLTEuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdEluUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZpdEluUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjY1IDcuMzVhLjUuNSAwIDEgMSAuNy0uN2wyLjUgMi41Yy4yLjIuMi41IDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN0w3LjI5IDEwSDIuNWEuNS41IDAgMCAxIDAtMWg0LjhMNS42NCA3LjM1Wm04LjcgMGEuNS41IDAgMCAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMMTIuNzEgMTBoNC43OWEuNS41IDAgMCAwIDAtMWgtNC44bDEuNjUtMS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd0RpYWdvbmFsVXBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNSA0YS41LjUgMCAwIDAgMCAxaDMuOGwtNi41NiA2LjU1YTMgMyAwIDEgMCAuNy43TDE1IDUuNzJWOS41YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtLjUtLjVoLTVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93RGlhZ29uYWxVcFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgNGEuNS41IDAgMCAwIDAgMWgzLjhsLTYuNTYgNi41NWEzIDMgMCAxIDAgLjcuN0wxNSA1LjcyVjkuNWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLS41LS41aC01Wk00IDE0YTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dVcFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd1VwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMzEgMy4xNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1SDEyQTIuNSAyLjUgMCAwIDAgOS41IDl2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLS4wNGEzIDMgMCAxIDAgMCAxSDhhMi41IDIuNSAwIDAgMCAyLjUtMi41VjljMC0uODMuNjctMS41IDEuNS0xLjVoNC4yNWwtMi42NCAyLjY1YS41LjUgMCAxIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dVcFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dVcFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC4zMSAzLjE1YS41LjUgMCAwIDAtLjcuN2wyLjY0IDIuNjVIMTJBMi41IDIuNSAwIDAgMCA5LjUgOXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtLjA0YTMgMyAwIDEgMCAwIDFIOGEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOWMwLS44My42Ny0xLjUgMS41LTEuNWg0LjI1bC0yLjY0IDIuNjVhLjUuNSAwIDEgMCAuNy43bDMuNS0zLjVhLjUuNSAwIDAgMCAwLS43bC0zLjUtMy41Wk03IDEzYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dVcFJpZ2h0UmVjdGFuZ2xlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93VXBSaWdodFJlY3RhbmdsZU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDEyLjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di00Wm04IDJhLjUuNSAwIDAgMC0xIDBWMTdhMSAxIDAgMCAxLTEgMWgtMy41YS41LjUgMCAwIDAgMCAxSDE3YTIgMiAwIDAgMCAyLTJ2LTIuNVpNMTQuMzEgMy4xNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1SDEyQTIuNSAyLjUgMCAwIDAgOS41IDl2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLS4wNGEzIDMgMCAxIDAgMCAxSDhhMi41IDIuNSAwIDAgMCAyLjUtMi41VjljMC0uODMuNjctMS41IDEuNS0xLjVoNC4yNWwtMi42NCAyLjY1YS41LjUgMCAxIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dVcFJpZ2h0UmVjdGFuZ2xlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd1VwUmlnaHRSZWN0YW5nbGVNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgMTIuNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTRabTggMmEuNS41IDAgMCAwLTEgMFYxN2ExIDEgMCAwIDEtMSAxaC0zLjVhLjUuNSAwIDAgMCAwIDFIMTdhMiAyIDAgMCAwIDItMnYtMi41Wk0xNC4zMSAzLjE1YS41LjUgMCAwIDAtLjcuN2wyLjY0IDIuNjVIMTJBMi41IDIuNSAwIDAgMCA5LjUgOXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtLjA0YTMgMyAwIDEgMCAwIDFIOGEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOWMwLS44My42Ny0xLjUgMS41LTEuNWg0LjI1bC0yLjY0IDIuNjVhLjUuNSAwIDEgMCAuNy43bDMuNS0zLjVhLjUuNSAwIDAgMCAwLS43bC0zLjUtMy41Wk03IDEzYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZvcndhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkRmlsbGVkJywgXCIxZW1cIiwgW1wibTE1LjY5IDkuNS0yLjk2IDIuOTZhLjc1Ljc1IDAgMCAwIC45NyAxLjE0bC4wOS0uMDggNC4yNC00LjI0YS43NS43NSAwIDAgMCAuMDctLjk4bC0uMDctLjA4LTQuMjQtNC4yNGEuNzUuNzUgMCAwIDAtMS4xNC45N2wuMDguMDlMMTUuNjkgOEgxMGE3Ljc1IDcuNzUgMCAwIDAtNy43NSA3LjV2LjI1YS43NS43NSAwIDAgMCAxLjUgMEE2LjI1IDYuMjUgMCAwIDEgOS43NyA5LjVIMTUuN1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTYuMyA5LTMuNCAzLjM5YS41LjUgMCAwIDAgLjY0Ljc2bC4wNy0uMDUgNC4yNC00LjI1YS41LjUgMCAwIDAgLjA2LS42M2wtLjA2LS4wNy00LjI0LTQuMjVhLjUuNSAwIDAgMC0uNzYuNjRsLjA1LjA3TDE2LjMgOEgxMGE3LjUgNy41IDAgMCAwLTcuNSA3LjI2di4yNGEuNS41IDAgMCAwIDEgMEE2LjUgNi41IDAgMCAxIDkuNzcgOWg2LjUzWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZERvd25MaWdodG5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkRG93bkxpZ2h0bmluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy40MyA0Ljc1IDE1LjcgN2gtMy45NWMtMi44LS4xLTQuNDktMS42Mi00LjQ5LTMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdi4yMUM1Ljg3IDYuNDIgOC4zNSA4LjUgMTIgOC41aDMuNjlsLTIuMjYgMi4yNi0uMDcuMDhhLjc1Ljc1IDAgMCAwIDEuMTQuOThsMy41My0zLjU0YS43NS43NSAwIDAgMCAuMDktLjFsLjAzLS4wNi4wNS0uMS4wMy0uMS4wMi0uMVY3LjY4bC0uMDEtLjA2LS4wMi0uMDctLjAzLS4wOS0uMDUtLjEtLjA0LS4wNS0uMDctLjA4LTMuNTMtMy41NC0uMDktLjA3YS43NS43NSAwIDAgMC0uOTggMS4xNFpNMi41IDE2aDEuNzVsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2SDQuNTlhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93bkxpZ2h0bmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkRG93bkxpZ2h0bmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNjEgNC4zMiAxNi4zIDdoLTQuNTVDOC44IDYuOSA3IDUuMjcgNyAzYS41LjUgMCAwIDAtMSAwdi4yQzYuMTIgNi4wMyA4LjQ4IDggMTIgOGg0LjNsLTIuNjkgMi42OC0uMDYuMDdhLjUuNSAwIDAgMCAuNzcuNjRsMy41NS0zLjU1LjA1LS4wNy4wNC0uMDguMDItLjA2LjAyLS4wOXYtLjA2LjAyYS41LjUgMCAwIDAtLjAxLS4xdi0uMDNsLS4wMy0uMDYtLjAzLS4wNi0uMDUtLjA3LTMuNTYtMy41Ny0uMDctLjA2YS41LjUgMCAwIDAtLjY0Ljc3Wk0yLjUxIDE2aDEuNzRsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2SDQuNTlhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93blBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmREb3duUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjQzIDQuNzQgMTUuNyA3aC0zLjk1Yy0yLjgtLjEtNC40OS0xLjYyLTQuNDktMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2LjIxQzUuODcgNi40MiA4LjM1IDguNSAxMiA4LjVoMy42OWwtMi4yNiAyLjI2LS4wNy4wOGEuNzUuNzUgMCAwIDAgMS4xMy45OGwzLjU0LTMuNTRhLjc1Ljc1IDAgMCAwIC4wOS0uMWwuMDMtLjA2LjA1LS4xLjAzLS4xLjAyLS4xVjcuNjhsLS4wMS0uMDYtLjAyLS4wNy0uMDMtLjA5LS4wNS0uMS0uMDQtLjA1LS4wNy0uMDgtMy41NC0zLjU0LS4wOC0uMDdhLjc1Ljc1IDAgMCAwLS45OCAxLjEzWk03LjUgMTFhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk05IDE1LjVDOSAxNi43NCA4IDE4IDUuNSAxOFMyIDE2Ljc1IDIgMTUuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZERvd25QZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rm9yd2FyZERvd25QZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjYxIDQuMzIgMTYuMyA3aC00LjU1QzguOCA2LjkgNyA1LjI3IDcgM2EuNS41IDAgMCAwLTEgMHYuMkM2LjExIDYuMDMgOC40OCA4IDEyIDhoNC4zbC0yLjY5IDIuNjgtLjA2LjA3YS41LjUgMCAwIDAgLjc3LjY0bDMuNTUtMy41NS4wNS0uMDcuMDQtLjA4LjAyLS4wNi4wMi0uMDl2LS4wNi4wMmEuNS41IDAgMCAwLS4wMS0uMXYtLjAzbC0uMDMtLjA2LS4wMy0uMDYtLjA1LS4wNy0zLjU2LTMuNTctLjA3LS4wNmEuNS41IDAgMCAwLS42NC43N1pNNy41IDExYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpNOSAxNS41QzkgMTYuNzQgOCAxOCA1LjUgMThTMiAxNi43NSAyIDE1LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tEb3duTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjVjMS41OSAwIDIuNy42MiAzLjUzIDEuNTlDMTUuNiA2LjU0IDE2IDcuNzkgMTYgOWMwIDEuMjItLjMgMi40Ni0xLjEyIDMuNDFBNC42MiA0LjYyIDAgMCAxIDExLjI1IDE0SDYuNTZsMi4yMiAyLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTMuNS0zLjVhLjc1Ljc1IDAgMCAxIC4wMi0xLjA4bDMuNS0zLjI1YS43NS43NSAwIDAgMSAxLjAyIDEuMWwtMi4xIDEuOTVoNC41OWMxLjE2IDAgMS44Ni0uNDQgMi40LTEuMDcuNTUtLjY0Ljg1LTEuNTIuODUtMi40MyAwLS45LS4zLTEuNzktLjg1LTIuNDNhMi45MiAyLjkyIDAgMCAwLTIuNC0xLjA3aC00LjVBLjc1Ljc1IDAgMCAxIDYgNC43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93bkxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YzAtLjI4LjIyLS41LjUtLjVIMTFjMS42NCAwIDIuOS42MiAzLjc1IDEuNTdDMTUuNTkgNi41MiAxNiA3Ljc3IDE2IDlzLS40MSAyLjQ4LTEuMjUgMy40M0E0Ljg1IDQuODUgMCAwIDEgMTEgMTRINS43bDIuNjUgMi42NWEuNS41IDAgMCAxLS43LjdsLTMuNS0zLjVhLjUuNSAwIDAgMSAwLS43bDMuNS0zLjVhLjUuNSAwIDEgMSAuNy43TDUuNzEgMTNIMTFjMS4zNiAwIDIuMzUtLjUgMy0xLjI0LjY2LS43NCAxLTEuNzQgMS0yLjc2IDAtMS4wMi0uMzQtMi4wMi0xLTIuNzZBMy44NiAzLjg2IDAgMCAwIDExIDVINi41YS41LjUgMCAwIDEtLjUtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93blJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va0Rvd25SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDE0Yy4wNiAwLS4wNiAwIDAgMGg0LjY1bC0yLjI3IDIuMjdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwzLjM1LTMuMzVhLjc1Ljc1IDAgMCAwIC4yMS0uNjQuNzUuNzUgMCAwIDAtLjIxLS40NWwtMy4yNS0zLjI0YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMS44IDEuNzlIOWEzLjUgMy41IDAgMSAxIDAtN2g0LjI1YS43NS43NSAwIDAgMCAwLTEuNUg5YTUgNSAwIDAgMCAwIDEwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va0Rvd25SaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93blJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDlhNSA1IDAgMCAxIDUtNWg0LjVhLjUuNSAwIDAgMSAwIDFIOWE0IDQgMCAxIDAgMCA4aDUuM2wtMi43LTIuN2EuNS41IDAgMSAxIC43LS43bDMuNTQgMy41M2EuNS41IDAgMCAxIC4xMy41LjUuNSAwIDAgMS0uMTQuMjVMMTIuMyAxNy40YS41LjUgMCAwIDEtLjcxLS43bDIuNy0yLjcxSDlhNSA1IDAgMCAxLTUtNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tVcExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rVXBMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMTUuMjVjMCAuNDEuMzQuNzUuNzUuNzVoNC41YTQuNCA0LjQgMCAwIDAgMy41My0xLjU5QTUuMjQgNS4yNCAwIDAgMCAxNiAxMWMwLTEuMjItLjMtMi40Ni0xLjEyLTMuNDFBNC42MiA0LjYyIDAgMCAwIDExLjI1IDZINi41NmwyLjIyLTIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMy41IDMuNWEuNzUuNzUgMCAwIDAgLjAyIDEuMDhsMy41IDMuMjVhLjc1Ljc1IDAgMCAwIDEuMDItMS4xTDYuNjYgNy41aDQuNTljMS4xNiAwIDEuODYuNDQgMi40IDEuMDcuNTUuNjQuODUgMS41Mi44NSAyLjQzIDAgLjktLjMgMS43OS0uODUgMi40M2EyLjkyIDIuOTIgMCAwIDEtMi40IDEuMDdoLTQuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rVXBMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDE1LjVjMCAuMjguMjIuNS41LjVIMTFjMS42NCAwIDIuOS0uNjIgMy43NS0xLjU3QTUuMTYgNS4xNiAwIDAgMCAxNiAxMWMwLTEuMjMtLjQxLTIuNDgtMS4yNS0zLjQzQTQuODUgNC44NSAwIDAgMCAxMSA2SDUuN2wyLjY1LTIuNjVhLjUuNSAwIDEgMC0uNy0uN2wtMy41IDMuNWEuNS41IDAgMCAwIDAgLjdsMy41IDMuNWEuNS41IDAgMCAwIC43LS43TDUuNzEgN0gxMWMxLjM2IDAgMi4zNS41IDMgMS4yNC42Ni43NCAxIDEuNzQgMSAyLjc2IDAgMS4wMi0uMzQgMi4wMi0xIDIuNzZBMy44NiAzLjg2IDAgMCAxIDExIDE1SDYuNWEuNS41IDAgMCAwLS41LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcFJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNmMuMDYgMC0uMDYgMCAwIDBoNC42NWwtMi4yNy0yLjI3YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMy4zNSAzLjM1Yy4xNy4xOC4yNC40Mi4yMS42NGEuNzUuNzUgMCAwIDEtLjIxLjQ1bC0zLjI1IDMuMjRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjgtMS43OUg5YTMuNSAzLjUgMCAxIDAgMCA3aDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDlBNSA1IDAgMCAxIDkgNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tVcFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDExYTUgNSAwIDAgMCA1IDVoNC41YS41LjUgMCAwIDAgMC0xSDlhNCA0IDAgMCAxIDAtOGg1LjNsLTIuNyAyLjdhLjUuNSAwIDEgMCAuNy43bDMuNTQtMy41M2EuNS41IDAgMCAwIC4xMy0uNS41LjUgMCAwIDAtLjE0LS4yNUwxMi4zIDIuNmEuNS41IDAgMSAwLS43MS43TDE0LjI5IDZIOWE1IDUgMCAwIDAtNSA1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SW1wb3J0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SW1wb3J0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjI1IDMuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1djExYS43NS43NSAwIDAgMS0xLjUgMHYtMTFjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMiAxMGMwLS40MS4zNC0uNzUuNzUtLjc1aDEwLjE5bC0yLjcyLTIuNzJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmw0IDRhLjc3Ljc3IDAgMCAxIC4xNS4yMi43NS43NSAwIDAgMS0uMTUuODRsLTQgNGEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDIuNzItMi43MkgyLjc1QS43NS43NSAwIDAgMSAyIDEwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SW1wb3J0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ltcG9ydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuNSA0Yy4yOCAwIC41LjIyLjUuNXYxMWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVpNMiAxMGMwLS4yOC4yMi0uNS41LS41aDEwLjhsLTMuMTUtMy4xNWEuNS41IDAgMCAxIC43LS43bDQgNEEuNS41IDAgMCAxIDE1IDEwYS41LjUgMCAwIDEtLjE1LjM1bC00IDRhLjUuNSAwIDAgMS0uNy0uN2wzLjE0LTMuMTVIMi41QS41LjUgMCAwIDEgMiAxMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0pvaW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dKb2luRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyYy4yOCAwIC41LjIyLjUuNUM1IDYuMTIgNy44OCA5IDExLjUgOWguOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43TDEyLjI5IDEwaC0uNzlBNi40NiA2LjQ2IDAgMCAwIDUgMTYuNWEuNS41IDAgMCAxLTEgMCA3LjQ1IDcuNDUgMCAwIDEgNC43OC03QTcuNDUgNy40NSAwIDAgMSA0IDIuNWMwLS4yOC4yMi0uNS41LS41Wm01LjUzIDkuMkE1LjQzIDUuNDMgMCAwIDAgNyAxMy4zdi43YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg5YTIgMiAwIDAgMC0yIDJ2LjdhNS40MyA1LjQzIDAgMCAwIDMuMDMgMi4xIDEuNSAxLjUgMCAwIDEgMi41My0xLjM2bDIgMmExLjUgMS41IDAgMCAxIDAgMi4xMmwtMiAyYTEuNSAxLjUgMCAwIDEtMi41My0xLjM3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dKb2luUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0pvaW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMi41YS41LjUgMCAwIDAtMSAwIDcuNDUgNy40NSAwIDAgMCA0Ljc4IDcgNy40NSA3LjQ1IDAgMCAwLTQuNzggNyAuNS41IDAgMCAwIDEgMGMwLTMuNjIgMi44OC02LjUgNi41LTYuNWguOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNy43TDEyLjI5IDloLS43OUE2LjQ2IDYuNDYgMCAwIDEgNSAyLjVaTTguNSA0YS41LjUgMCAwIDAgMCAxSDE1Yy41MiAwIDEgLjQ4IDEgMXY3YzAgLjUyLS40OCAxLTEgMUg4LjVhLjUuNSAwIDAgMCAwIDFIMTVjMS4wOCAwIDItLjkyIDItMlY2YzAtMS4wOC0uOTItMi0yLTJIOC41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjczIDE2LjhhLjc1Ljc1IDAgMCAwIDEuMDMtMS4xbC01LjI0LTQuOTVoMTIuNzNhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNTJsNS4yNC00Ljk2QS43NS43NSAwIDEgMCA4LjczIDMuMkwyLjMxIDkuMjdhMSAxIDAgMCAwIDAgMS40Nmw2LjQyIDYuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xNiAxNi44N2EuNS41IDAgMSAwIC42Ny0uNzRMMy42NyAxMC41SDE3LjVhLjUuNSAwIDAgMCAwLTFIMy42N2w2LjE2LTUuNjNhLjUuNSAwIDAgMC0uNjctLjc0TDIuMjQgOS40NGEuNzUuNzUgMCAwIDAgMCAxLjExbDYuOTIgNi4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiAzYTEgMSAwIDAgMSAxIDF2NS4yNWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuN0w1LjU2IDE1LjVoMy42OWEuNzUuNzUgMCAwIDEgMCAxLjVINGExIDEgMCAwIDEtMS0xdi01LjI1YS43NS43NSAwIDAgMSAxLjUgMHYzLjY5bDkuOTQtOS45NGgtMy42OWEuNzUuNzUgMCAwIDEgMC0xLjVIMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDNoNi4wNGwuMDkuMDIuMDYuMDIuMDguMDQuMDUuMDQuMDYuMDYuMDMuMDQuMDQuMDcuMDMuMDguMDIuMDhWOS41YS41LjUgMCAwIDEtMSAuMDlWNC43TDQuNyAxNmg0LjhhLjUuNSAwIDAgMSAuNS40MXYuMDlhLjUuNSAwIDAgMS0uNDEuNUgzLjQxbC0uMS0uMDQtLjA4LS4wNC0uMDUtLjA0LS4wNi0uMDYtLjAzLS4wNC0uMDQtLjA3LS4wMy0uMDh2LS4wMkEuNS41IDAgMCAxIDMgMTYuNXYuMDctNi4wN2EuNS41IDAgMCAxIDEtLjA5djQuODlMMTUuMyA0aC00LjhhLjUuNSAwIDAgMS0uNS0uNDFWMy41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplVmVydGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZVZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNTggMS4zM2EuNi42IDAgMCAxIC44NCAwbDIuMTMgMi4xM2EuNi42IDAgMCAxLS44NS44NGwtMS4xLTEuMXY0LjNhLjYuNiAwIDEgMS0xLjIgMFYzLjJMOC4zIDQuM2EuNi42IDAgMCAxLS44NS0uODRsMi4xMy0yLjEzWk0zLjkgMTBjMC0uMzMuMjctLjYuNi0uNmgxMWEuNi42IDAgMSAxIDAgMS4yaC0xMWEuNi42IDAgMCAxLS42LS42Wm02LjcgNi44di00LjNhLjYuNiAwIDAgMC0xLjIgMHY0LjNsLTEuMS0xLjFhLjYuNiAwIDAgMC0uODUuODVsMi4xMyAyLjEyYS42LjYgMCAwIDAgLjg0IDBsMi4xMy0yLjEyYS42LjYgMCAxIDAtLjg1LS44NWwtMS4xIDEuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemVWZXJ0aWNhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZVZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjY1IDEuNGMuMi0uMi41LS4yLjcgMGwyLjEyIDIuMTNhLjUuNSAwIDAgMS0uNy43TDEwLjUgMi45NlY3LjVhLjUuNSAwIDAgMS0xIDBWMi45Nkw4LjIzIDQuMjNhLjUuNSAwIDEgMS0uNy0uN0w5LjY1IDEuNFpNNCAxMGMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMUEuNS41IDAgMCAxIDQgMTBabTYuNSA3LjA0VjEyLjVhLjUuNSAwIDAgMC0xIDB2NC41NGwtMS4yNy0xLjI3YS41LjUgMCAxIDAtLjcuN2wyLjEyIDIuMTNjLjIuMi41LjIuNyAwbDIuMTItMi4xMmEuNS41IDAgMCAwLS43LS43MWwtMS4yNyAxLjI3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01pbmltaXplRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNzUgMTFoNC41Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTIuNzlsLTQuNDcgNC40N2EuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOCA0LjQ3LTQuNDdIMy43NWEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xYzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFoNC41LTQuNVptMTQuMjgtOS4wM2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4TDEzLjA2IDhoMy4xOWMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxaC01YS43NS43NSAwIDAgMS0uNzQtLjY1bC0uMDEtLjF2LTVhLjc1Ljc1IDAgMCAxIDEuNS0uMXYzLjI5bDQuOTctNC45N2MuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01pbmltaXplUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01pbmltaXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgMTFoNWEuNS41IDAgMCAxIC41LjQxdjUuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMi43bC01LjE1IDUuMTVhLjUuNSAwIDAgMS0uNzYtLjYzbC4wNi0uMDdMNy4yOSAxMkgzLjVhLjUuNSAwIDAgMS0uNS0uNDF2LS4wOWEuNS41IDAgMCAxIC40MS0uNUg4LjVoLTVabTE0LjM1LTguODVjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN0wxMi43MSA4aDMuNzlhLjUuNSAwIDAgMSAuNS40MXYuMDlhLjUuNSAwIDAgMS0uNDEuNWgtNS4xOGwtLjEtLjA0LS4wOC0uMDQtLjA1LS4wNC0uMDMtLjAzLS4wNC0uMDQtLjA0LS4wNi0uMDMtLjA2LS4wMi0uMDZWOC42YS41LjUgMCAwIDEtLjAyLS4xdi4wN1YzLjVhLjUuNSAwIDAgMSAxLS4wOVY3LjNsNS4xNS01LjE1Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZVZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemVWZXJ0aWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljc1IDEuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi42OWwuNzItLjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIgMmMtLjMuMy0uNzcuMy0xLjA2IDBsLTItMmEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bC43Mi43MlYyLjI1YzAtLjQxLjM0LS43NS43NS0uNzVaTTMuNSA5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTFhLjc1Ljc1IDAgMCAxIDAgMS41aC0xMWEuNzUuNzUgMCAwIDEtLjc1LS43NVptOC43OCA0LjQ3LTItMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwuNzItLjcydjIuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjY5bC43Mi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZVZlcnRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01pbmltaXplVmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNSAxYy4yOCAwIC41LjIyLjUuNXYzLjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAxIDEgLjctLjdMOSA1LjI5VjEuNWMwLS4yOC4yMi0uNS41LS41Wm0tNiA4LjVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMUg0YS41LjUgMCAwIDEtLjUtLjVabTYuNSA0LjJ2My44YS41LjUgMCAwIDEtMSAwdi0zLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDEwIDEzLjcxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNb3ZlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TW92ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41MyAyLjIyYS43NS43NSAwIDAgMC0xLjA2IDBMNy4yMiA0LjQ3YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsLjk3LS45N3YyLjY5YS43NS43NSAwIDAgMCAxLjUgMFY0LjU2bC45Ny45N2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjI1LTIuMjVaTTIuMjIgOS40N2MtLjMuMy0uMy43NyAwIDEuMDZsMi4yNSAyLjI1YS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLS45Ny0uOTdoMi42OWEuNzUuNzUgMCAwIDAgMC0xLjVINC41NmwuOTctLjk3YS43NS43NSAwIDAgMC0xLjA2LTEuMDZMMi4yMiA5LjQ3Wm04LjMxIDguMzEgMi4yNS0yLjI1YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLS45Ny45N3YtMi42OWEuNzUuNzUgMCAwIDAtMS41IDB2Mi42OWwtLjk3LS45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuMjUgMi4yNWMuMy4zLjc3LjMgMS4wNiAwWm01LTEwLjU2IDIuMjUgMi4yNWMuMy4zLjMuNzcgMCAxLjA2bC0yLjI1IDIuMjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuOTctLjk3aC0yLjY5YS43NS43NSAwIDAgMSAwLTEuNWgyLjY5bC0uOTctLjk3YS43NS43NSAwIDAgMSAxLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01vdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TW92ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMzUgMi4xNWEuNS41IDAgMCAwLS43IDBsLTIuNSAyLjVhLjUuNSAwIDEgMCAuNy43TDkuNSAzLjcxVjcuNWEuNS41IDAgMCAwIDEgMFYzLjdsMS42NSAxLjY1YS41LjUgMCAwIDAgLjctLjdsLTIuNS0yLjVabS04LjIgNy41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMMy43MSAxMC41SDcuNWEuNS41IDAgMCAwIDAtMUgzLjdsMS42NS0xLjY1YS41LjUgMCAxIDAtLjctLjdsLTIuNSAyLjVaTTEwIDE4YS41LjUgMCAwIDEtLjM1LS4xNWwtMi41LTIuNWEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NFYxMi41YS41LjUgMCAwIDEgMSAwdjMuOGwxLjY1LTEuNjVhLjUuNSAwIDAgMSAuNy43bC0yLjUgMi41QS41LjUgMCAwIDEgMTAgMThabTcuODUtNy42NWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNy43bDEuNjQgMS42NUgxMi41YS41LjUgMCAwIDAgMCAxaDMuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNb3ZlSW53YXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TW92ZUlud2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy4wMyAzLjcyYy4zLjMuMy43NyAwIDEuMDZsLTIuNSAyLjVjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLjUtMi41YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMS4yMiAxLjIyVjEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuMTlsMS4yMi0xLjIyYy4zLS4zLjc3LS4zIDEuMDYgMFpNMy43MiA2Ljk3Yy4zLS4zLjc3LS4zIDEuMDYgMGwyLjUgMi41Yy4zLjMuMy43NyAwIDEuMDZsLTIuNSAyLjVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjIyLTEuMjJIMS43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMy4xOUwzLjcyIDguMDNhLjc1Ljc1IDAgMCAxIDAtMS4wNlptMTEuNSAwYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTEuMjIgMS4yMmgzLjE5YS43NS43NSAwIDAgMSAwIDEuNWgtMy4xOWwxLjIyIDEuMjJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi41LTIuNWEuNzUuNzUgMCAwIDEgMC0xLjA2bDIuNS0yLjVabS0yLjE5IDkuMzFjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwxLjIyLTEuMjJ2My4xOWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuMTlsMS4yMiAxLjIyYy4zLjMuNzcuMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01vdmVJbndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TW92ZUlud2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4xNSAxNi4zNWMuMi4yLjUuMi43IDBsMS42NS0xLjY0djMuNzlhLjUuNSAwIDAgMCAxIDB2LTMuOGwxLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43IDBsLTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43Wm05LjItOC41YS41LjUgMCAwIDAtLjctLjdsLTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43bDIuNSAyLjVhLjUuNSAwIDAgMCAuNy0uN2wtMS42NC0xLjY1aDMuNzlhLjUuNSAwIDAgMCAwLTFoLTMuOGwxLjY1LTEuNjVabS0xMi43IDBhLjUuNSAwIDEgMSAuNy0uN2wyLjUgMi41Yy4yLjIuMi41IDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN2wxLjY0LTEuNjVIMS41YS41LjUgMCAwIDEgMC0xaDMuOEwzLjY0IDcuODVabTQuMi00LjJhLjUuNSAwIDEgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0wxMC41IDUuMjlWMS41YS41LjUgMCAwIDAtMSAwdjMuOEw3Ljg1IDMuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd05leHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dOZXh0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjc1IDQuNzVjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2OWEuNzUuNzUgMCAwIDEtMS41LjFWNS41YzAtLjQxLjM0LS43NS43NS0uNzVabS04LjI4LjIyYS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyA0LjUgNC41Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtNC41IDQuNWEuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOEw5LjQ0IDEwIDUuNDcgNi4wM2EuNzUuNzUgMCAwIDEgMC0xLjA2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93TmV4dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dOZXh0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVhLjUuNSAwIDAgMSAuNS40MXY5LjA5YS41LjUgMCAwIDEtMSAuMDlWNS41YzAtLjI4LjIyLS41LjUtLjVabS03Ljg1LjE1YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDYgNC41IDQuNWMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3LTQuNSA0LjVhLjUuNSAwIDAgMS0uNzYtLjYzbC4wNi0uMDdMOS43OSAxMCA1LjY1IDUuODVhLjUuNSAwIDAgMSAwLS43WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZURvd25MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZURvd25MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNjcgMTcuOTlBMS41IDEuNSAwIDAgMSAyIDE2LjMzbDEuMDgtOS43YTEuNSAxLjUgMCAwIDEgMi41NS0uOUw2LjcgNi44bDQuMzYtNC4zNmExLjUgMS41IDAgMCAxIDIuMTIgMGw0LjM3IDQuMzdhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTQuMzYgNC4zNiAxLjA2IDEuMDdhMS41IDEuNSAwIDAgMS0uOSAyLjU1TDMuNjcgMThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVEb3duTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lRG93bkxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMTYuNDRhLjUuNSAwIDAgMCAuNTYuNTZsOS43LTEuMDhhLjUuNSAwIDAgMCAuMy0uODVsLTEuNDItMS40MmEuNS41IDAgMCAxIDAtLjcxbDQuNzEtNC43MmEuNS41IDAgMCAwIDAtLjdsLTQuMzctNC4zN2EuNS41IDAgMCAwLS43IDBMNy4wNiA3Ljg2YS41LjUgMCAwIDEtLjcgMEw0LjkyIDYuNDRhLjUuNSAwIDAgMC0uODUuM0wzIDE2LjQ0Wk0zLjY3IDE4QTEuNSAxLjUgMCAwIDEgMiAxNi4zM2wxLjA4LTkuN2ExLjUgMS41IDAgMCAxIDIuNTUtLjlMNi43IDYuOGw0LjM2LTQuMzZhMS41IDEuNSAwIDAgMSAyLjEyIDBsNC4zNyA0LjM3YTEuNSAxLjUgMCAwIDEgMCAyLjEybC00LjM2IDQuMzYgMS4wNiAxLjA3YTEuNSAxLjUgMCAwIDEtLjkgMi41NUwzLjY3IDE4WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lVXBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd091dGxpbmVVcFJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjMzIDJjLjk2LS4xIDEuNzcuNzEgMS42NiAxLjY3bC0xLjA4IDkuN2ExLjUgMS41IDAgMCAxLTIuNTUuOUwxMy4zIDEzLjJsLTQuMzYgNC4zNmExLjUgMS41IDAgMCAxLTIuMTIgMGwtNC4zNy00LjM3YTEuNSAxLjUgMCAwIDEgMC0yLjEyTDYuOCA2LjcgNS43NCA1LjY0YTEuNSAxLjUgMCAwIDEgLjg5LTIuNTVMMTYuMzMgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZVVwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZVVwUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDMuNTZhLjUuNSAwIDAgMC0uNTYtLjU2bC05LjcgMS4wOGEuNS41IDAgMCAwLS4zLjg1bDEuNDIgMS40MmEuNS41IDAgMCAxIDAgLjcxbC00LjcxIDQuNzJhLjUuNSAwIDAgMCAwIC43bDQuMzcgNC4zN2MuMi4yLjUuMi43IDBsNC43Mi00LjcxYy4yLS4yLjUxLS4yLjcgMGwxLjQzIDEuNDJjLjMuMy44LjEyLjg1LS4zTDE3IDMuNTZaTTE2LjMzIDJjLjk2LS4xIDEuNzcuNyAxLjY2IDEuNjZsLTEuMDggOS43YTEuNSAxLjUgMCAwIDEtMi41NS45TDEzLjMgMTMuMmwtNC4zNiA0LjM2YTEuNSAxLjUgMCAwIDEtMi4xMiAwbC00LjM3LTQuMzdhMS41IDEuNSAwIDAgMSAwLTIuMTJMNi44IDYuNyA1Ljc0IDUuNjRhMS41IDEuNSAwIDAgMSAuODktMi41NUwxNi4zMyAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dQYXJhZ3JhcGhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQYXJhZ3JhcGhGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMjUgMmMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAxNS4yNSA4aC0zLjhsMS4zNiAxLjVhLjc1Ljc1IDAgMCAxLTEuMTIgMUw5LjIgNy43NWEuNzUuNzUgMCAwIDEgMC0xTDExLjcgNGEuNzUuNzUgMCAwIDEgMS4xMiAxbC0xLjM2IDEuNWgzLjhjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNOC4zIDkuNWEuNzUuNzUgMCAxIDAtMS4xIDFMOC41NSAxMmgtNS44YS43NS43NSAwIDAgMCAwIDEuNWg1LjhMNy4yIDE1YS43NS43NSAwIDAgMCAxLjEgMWwyLjUtMi43NWEuNzUuNzUgMCAwIDAgMC0xTDguMyA5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1BhcmFncmFwaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQYXJhZ3JhcGhSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjE1IDEwLjg1YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgOGg0Ljc5QTIuNSAyLjUgMCAwIDAgMTggNS41di0zczAtLjUtLjUtLjUtLjUuNS0uNS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00LjhsMi4xNS0yLjE1YS41LjUgMCAwIDAtLjctLjdsLTMgM2EuNS41IDAgMCAwIDAgLjdsMyAzWm0tNC4zLTEuN2EuNS41IDAgMSAwLS43LjdMOS4yOSAxMkgyLjVzLS41IDAtLjUuNS41LjUuNS41aDYuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN2wzLTNhLjUuNSAwIDAgMCAwLS43bC0zLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1ByZXZpb3VzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UHJldmlvdXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA0Ljc1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjlhLjc1Ljc1IDAgMCAwIDEuNS4xVjUuNUEuNzUuNzUgMCAwIDAgNiA0Ljc1Wm04LjI4LjIyYS43NS43NSAwIDAgMC0uOTgtLjA3bC0uMDguMDctNC41IDQuNWEuNzUuNzUgMCAwIDAtLjA3Ljk4bC4wNy4wOCA0LjUgNC41YS43NS43NSAwIDAgMCAxLjEzLS45OGwtLjA3LS4wOEwxMC4zMSAxMGwzLjk3LTMuOTdjLjMtLjMuMy0uNzcgMC0xLjA2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UHJldmlvdXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UHJldmlvdXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNWEuNS41IDAgMCAwLS41LjQxdjkuMDlhLjUuNSAwIDAgMCAxIC4wOVY1LjVBLjUuNSAwIDAgMCA2IDVabTcuODUuMTVhLjUuNSAwIDAgMC0uNjMtLjA2bC0uMDcuMDYtNC41IDQuNWEuNS41IDAgMCAwLS4wNi42M2wuMDYuMDcgNC41IDQuNWEuNS41IDAgMCAwIC43Ni0uNjNsLS4wNi0uMDdMOS43MSAxMGw0LjE0LTQuMTVhLjUuNSAwIDAgMCAwLS43WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVkb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlZG9GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMTQgNi41aC0yLjM5YS43NS43NSAwIDEgMCAwIDEuNWg0LjRjLjQ3IDAgLjg1LS4zOC44NS0uODV2LTQuNGEuNzUuNzUgMCAwIDAtMS41IDBWNS43bC0zLjA2LTIuNjZhNS4yNSA1LjI1IDAgMCAwLTYuODggNy45Mmw4LjE3IDcuMWEuNzUuNzUgMCAxIDAgLjk4LTEuMTNsLTguMTctNy4xYTMuNzUgMy43NSAwIDEgMSA0LjkyLTUuNjZsMi42OCAyLjMzWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVkb1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZWRvUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSAyLjVhLjUuNSAwIDAgMSAxIDB2NC45YS42LjYgMCAwIDEtLjYuNmgtNC45YS41LjUgMCAwIDEgMC0xaDMuNmwtMy40OC0zLjAyYTQgNCAwIDEgMC01LjI0IDYuMDRsOC4xNyA3LjFhLjUuNSAwIDEgMS0uNjYuNzZsLTguMTctNy4xYTUgNSAwIDEgMSA2LjU2LTcuNTVMMTUgNi40NlYyLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXQxRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0MUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43NSA2LjAxYy4xOCAwIC4zNS4wNi40OC4xN2E0Ljk4IDQuOTggMCAwIDEgMS43NCA0LjRjLS40Ni0uMjMtLjk1LS40LTEuNDctLjQ5VjEwYTMuNSAzLjUgMCAwIDAtMS4yNi0yLjY5Ljc1Ljc1IDAgMCAxIC41LTEuM1ptLTUuMzggNy40OWMtLjE4LjQ3LS4zLjk4LS4zNSAxLjVIOC41NmwxLjIyIDEuMjJjLjI3LjI3LjMuNjguMDguOThsLS4wOC4wOGEuNzUuNzUgMCAwIDEtLjk3LjA3bC0uMDktLjA3LTIuNS0yLjVhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOCAyLjUtMi41YS43NS43NSAwIDAgMSAxLjE0Ljk4bC0uMDguMDgtMS4yMiAxLjIyaDEuODFabS0uMTUtMTAuNzhhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDIuNSAyLjUuMDguMDhjLjE5LjI2LjIuNjIgMCAuODlsLS4wOC4wOS0yLjUgMi41LS4wOC4wN2MtLjI2LjItLjYyLjItLjg4LjAxbC0uMS0uMDgtLjA3LS4wOGEuNzUuNzUgMCAwIDEgMC0uODlsLjA3LS4wOSAxLjIyLTEuMjJIN2EzLjUgMy41IDAgMCAwLTMuNSAzLjN2LjJjMCAxLjA4LjUgMi4wNSAxLjI2IDIuNy4xNS4xMy4yNC4zMi4yNC41NGEuNzUuNzUgMCAwIDEtMS4yNS41NkE1IDUgMCAwIDEgNi43OCA1aDQuNjZsLTEuMjItMS4yMi0uMDctLjA4YS43NS43NSAwIDAgMSAuMDctLjk4Wk0yMCAxNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy45NS0yLjY2YS42Mi42MiAwIDAgMC0uNjguMjNjLS4yMS4zLS41OC43My0xLjEuOThhLjUuNSAwIDEgMCAuNDUuOWMuMy0uMTUuNTYtLjM0Ljc4LS41M3YzLjA4YS41LjUgMCAwIDAgMSAwdi00LjA4YS42MS42MSAwIDAgMC0uNDUtLjU4WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXQxUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdDFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgNi42N2EuNS41IDAgMCAxIC4zLjFsLjA4LjA3LjAxLjAyYTQuOTggNC45OCAwIDAgMSAxLjA4IDMuNzJjLS4zMS0uMTUtLjY0LS4yOC0uOTgtLjM3YTQgNCAwIDAgMC0uODgtMi43My41LjUgMCAwIDEgLjM5LS44MVpNMTAuMiAxNGMtLjA4LjMyLS4xNS42Ni0uMTggMUg2LjdsMS42NSAxLjY1Yy4xOC4xNy4yLjQ0LjA2LjYzbC0uMDYuMDdhLjUuNSAwIDAgMS0uNjMuMDZsLS4wNy0uMDYtMi41LTIuNWEuNS41IDAgMCAxLS4wNi0uNjNsLjA2LS4wNyAyLjUtMi41YS41LjUgMCAwIDEgLjc2LjYzbC0uMDYuMDdMNi43MiAxNGguMTRMNyAxNGgzLjJabTEuNDUtMTEuMzVhLjUuNSAwIDAgMSAuNjMtLjA2bC4wNy4wNiAyLjUgMi41LjA2LjA3YS41LjUgMCAwIDEgMCAuNTZsLS4wNi4wNy0yLjUgMi41LS4wNy4wNmEuNS41IDAgMCAxLS41NiAwbC0uMDctLjA2LS4wNi0uMDdhLjUuNSAwIDAgMSAwLS41NmwuMDYtLjA3TDEzLjI4IDZoLS4xNEwxMyA2SDdhNCA0IDAgMCAwLTMuMSA2LjUyYy4wNi4wOS4xLjIuMS4zMWEuNS41IDAgMCAxLS45LjNBNC45OSA0Ljk5IDAgMCAxIDYuNzcgNWg2LjUybC0xLjY1LTEuNjUtLjA2LS4wN2EuNS41IDAgMCAxIC4wNi0uNjNaTTIwIDE1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjk1LTIuNjZhLjYyLjYyIDAgMCAwLS42OC4yM2MtLjIxLjMtLjU4LjczLTEuMS45OGEuNS41IDAgMSAwIC40NS45Yy4zLS4xNS41Ni0uMzQuNzgtLjUzdjMuMDhhLjUuNSAwIDAgMCAxIDB2LTQuMDhhLjYxLjYxIDAgMCAwLS40NS0uNThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdEFsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdEFsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43NSA2LjAxYy4xOCAwIC4zNC4wNi40Ny4xN2E1IDUgMCAwIDEtMyA4LjgySDguNTZsMS4yMiAxLjIyYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjUtMi41YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDggMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4xMy45OGwtLjA3LjA4LTEuMjIgMS4yMkgxM2EzLjUgMy41IDAgMCAwIDMuNS0zLjNWMTBhMy41IDMuNSAwIDAgMC0xLjI2LTIuNjkuNzUuNzUgMCAwIDEgLjUtMS4zWm0tNS41My0zLjI5YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyAyLjUgMi41LjA3LjA4Yy4yLjI2LjIuNjIuMDEuODlsLS4wOC4wOS0yLjUgMi41LS4wOC4wN2MtLjI2LjItLjYyLjItLjg5LjAxbC0uMDktLjA4LS4wNy0uMDhhLjc1Ljc1IDAgMCAxLS4wMS0uODlsLjA4LS4wOSAxLjIyLTEuMjJIN2EzLjUgMy41IDAgMCAwLTMuNSAzLjN2LjJjMCAxLjA4LjQ5IDIuMDUgMS4yNiAyLjcuMTUuMTMuMjQuMzIuMjQuNTRhLjc1Ljc1IDAgMCAxLTEuMjUuNTZBNSA1IDAgMCAxIDYuNzggNWg0LjY2bC0xLjIyLTEuMjItLjA3LS4wOGEuNzUuNzUgMCAwIDEgLjA3LS45OFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdEFsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXRBbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgNi42N2EuNS41IDAgMCAxIC4zLjFsLjA4LjA3LjAxLjAyQTUgNSAwIDAgMSAxMy4yMiAxNUwxMyAxNUg2LjdsMS42NSAxLjY1Yy4xOC4xNy4yLjQ0LjA2LjYzbC0uMDYuMDdhLjUuNSAwIDAgMS0uNjMuMDZsLS4wNy0uMDYtMi41LTIuNWEuNS41IDAgMCAxLS4wNi0uNjNsLjA2LS4wNyAyLjUtMi41YS41LjUgMCAwIDEgLjc2LjYzbC0uMDYuMDdMNi43MiAxNGguMTRMNyAxNGg2YTQgNCAwIDAgMCAzLjExLTYuNTIuNS41IDAgMCAxIC4zOS0uODFabS00Ljg1LTQuMDJhLjUuNSAwIDAgMSAuNjMtLjA2bC4wNy4wNiAyLjUgMi41LjA2LjA3YS41LjUgMCAwIDEgMCAuNTZsLS4wNi4wNy0yLjUgMi41LS4wNy4wNmEuNS41IDAgMCAxLS41NiAwbC0uMDctLjA2LS4wNi0uMDdhLjUuNSAwIDAgMSAwLS41NmwuMDYtLjA3TDEzLjI4IDZoLS4xNEwxMyA2SDdhNCA0IDAgMCAwLTMuMSA2LjUyYy4wNi4wOS4xLjIuMS4zMWEuNS41IDAgMCAxLS45LjNBNC45OSA0Ljk5IDAgMCAxIDYuNzcgNWg2LjUybC0xLjY1LTEuNjUtLjA2LS4wN2EuNS41IDAgMCAxIC4wNi0uNjNaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXRBbGxPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXRBbGxPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi4yMiAyLjIyYS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyAxNC41IDE0LjUuMDcuMDhhLjc1Ljc1IDAgMCAxLTEuMDUgMS4wNWwtLjA4LS4wNy0yLjg2LTIuODVjLS4xOC4wMy0uMzcuMDUtLjU3LjA2TDEzIDE1SDguNTZsMS4yMiAxLjIyYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjUtMi41YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDggMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4xMy45OGwtLjA3LjA4LTEuMjIgMS4yMmgzLjg4TDUuNjkgNi43NUEzLjUgMy41IDAgMCAwIDMuNSA5LjgxVjEwYzAgMS4wOC40OSAyLjA1IDEuMjYgMi43LjE1LjEzLjI0LjMyLjI0LjU0YS43NS43NSAwIDAgMS0xLjI1LjU2IDQuOTggNC45OCAwIDAgMSAuODItOC4xN0wyLjIyIDMuMjhsLS4wNy0uMDhhLjc1Ljc1IDAgMCAxIC4wNy0uOThabTEzLjUzIDMuNzljLjE4IDAgLjM0LjA2LjQ3LjE3YTQuOTggNC45OCAwIDAgMSAuMDMgNy42MmwtMS4wNi0xLjA3YTMuNSAzLjUgMCAwIDAgLjA1LTUuNDIuNzUuNzUgMCAwIDEgLjUtMS4zWm0tNS41My0zLjNhLjc1Ljc1IDAgMCAxIC45OC0uMDZsLjA4LjA3IDIuNSAyLjUuMDcuMDhjLjIuMjYuMi42Mi4wMS44OWwtLjA4LjA5LTIuNSAyLjUtLjAyLjAyLTEuMDYtMS4wNi4wMi0uMDIgMS4yMi0xLjIySDguOTVMNy40NSA1aDMuOTlsLTEuMjItMS4yMi0uMDctLjA4YS43NS43NSAwIDAgMSAuMDctLjk4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0QWxsT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdEFsbE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi4xNSAyLjE1YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDYgMTUgMTUgLjA2LjA3YS41LjUgMCAwIDEtLjcuN2wtLjA2LS4wNy0zLTIuOThhNSA1IDAgMCAxLS44NS4xMkwxMyAxNUg2LjdsMS42NSAxLjY1Yy4xOC4xNy4yLjQ0LjA2LjYzbC0uMDYuMDdhLjUuNSAwIDAgMS0uNjMuMDZsLS4wNy0uMDYtMi41LTIuNWEuNS41IDAgMCAxLS4wNi0uNjNsLjA2LS4wNyAyLjUtMi41YS41LjUgMCAwIDEgLjc2LjYzbC0uMDYuMDdMNi43MiAxNGguMTRMNyAxNGg2bC4yOC0uMDEtNy43Mi03LjcyYTQgNCAwIDAgMC0xLjY2IDYuMjVjLjA2LjA5LjEuMi4xLjMxYS41LjUgMCAwIDEtLjkuM0E0Ljk5IDQuOTkgMCAwIDEgNC44IDUuNUwyLjE1IDIuODVsLS4wNi0uMDdhLjUuNSAwIDAgMSAuMDYtLjYzWk0xNi41IDYuNjdhLjUuNSAwIDAgMSAuMy4xbC4wOC4wNy4wMS4wMmE0Ljk4IDQuOTggMCAwIDEtLjgzIDcuMWwtLjcxLS43MmE0IDQgMCAwIDAgLjc2LTUuNzYuNS41IDAgMCAxIC4zOS0uODFaTTEyLjI4IDIuNmwuMDcuMDYgMi41IDIuNWMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3LTIuNSAyLjVhLjUuNSAwIDAgMS0uNzYtLjYzbC4wNi0uMDdMMTMuMjggNmgtLjE0TDEzIDZIOC4xbC0xLTFoNi4ybC0xLjY1LTEuNjVhLjUuNSAwIDAgMS0uMDYtLjYzbC4wNi0uMDdhLjUuNSAwIDAgMSAuNjMtLjA2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljc4IDQuNzhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNC41IDQuNWMtLjMuMy0uMy43NyAwIDEuMDZsNC41IDQuNWEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDQuNTYgOS41aDYuMTlhNS43NSA1Ljc1IDAgMCAxIDUuNzUgNS43NS43NS43NSAwIDAgMCAxLjUgMGMwLTQtMy4yNS03LjI1LTcuMjUtNy4yNUg0LjU2bDMuMjItMy4yMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjM1IDMuNjVjLjIuMi4yLjUgMCAuN0wzLjcxIDhoNi43OWE3LjUgNy41IDAgMCAxIDcuNSA3LjUuNS41IDAgMCAxLTEgMEE2LjUgNi41IDAgMCAwIDEwLjUgOUgzLjdsMy42NSAzLjY1YS41LjUgMCAwIDEtLjcuN2wtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdsNC41LTQuNWMuMi0uMi41LS4yLjcgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHlBbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4yOCAzLjcyYy4zLjMuMy43NyAwIDEuMDZMMy4zMSA4Ljc1bDMuOTcgMy45N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC00LjUtNC41YS43NS43NSAwIDAgMSAwLTEuMDZsNC41LTQuNWMuMy0uMy43Ny0uMyAxLjA2IDBabTQgMGMuMy4zLjMuNzcgMCAxLjA2TDguMDYgOGgzLjE5YzQgMCA3LjI1IDMuMjUgNy4yNSA3LjI1YS43NS43NSAwIDAgMS0xLjUgMCA1Ljc1IDUuNzUgMCAwIDAtNS43NS01Ljc1SDguMDZsMy4yMiAzLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTQuNS00LjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LjUtNC41Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5QWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjM1IDMuNjVjLjIuMi4yLjUgMCAuN0wzLjIxIDguNWw0LjE0IDQuMTVhLjUuNSAwIDAgMS0uNy43bC00LjUtNC41YS41LjUgMCAwIDEgMC0uN2w0LjUtNC41Yy4yLS4yLjUtLjIuNyAwWm0zIDBjLjIuMi4yLjUgMCAuN0w2LjcxIDhoMy43OWE3LjUgNy41IDAgMCAxIDcuNSA3LjUuNS41IDAgMCAxLTEgMEE2LjUgNi41IDAgMCAwIDEwLjUgOUg2LjdsMy42NSAzLjY1YS41LjUgMCAwIDEtLjcuN2wtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdsNC41LTQuNWMuMi0uMi41LS4yLjcgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy4yNSA0Yy40MSAwIC43NS4zNC43NS43NSAwIDQtMy4yNSA3LjI1LTcuMjUgNy4yNUg0LjU2bDMuMjIgMy4yMmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC00LjUtNC41YS43NS43NSAwIDAgMSAwLTEuMDZsNC41LTQuNWEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2TDQuNTYgMTAuNWg2LjE5YTUuNzUgNS43NSAwIDAgMCA1Ljc1LTUuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseURvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjUgNGMuMjggMCAuNS4yMi41LjVhNy41IDcuNSAwIDAgMS03LjUgNy41SDMuN2wzLjY1IDMuNjVhLjUuNSAwIDAgMS0uNy43bC00LjUtNC41YS41LjUgMCAwIDEgMC0uN2w0LjUtNC41YS41LjUgMCAxIDEgLjcuN0wzLjcxIDExaDYuNzlBNi41IDYuNSAwIDAgMCAxNyA0LjVjMC0uMjguMjItLjUuNS0uNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1Jlc2V0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVzZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4wMyAyLjQ3Yy4zLjMuMy43NyAwIDEuMDZMNC44MSA0Ljc1SDExQTYuMjUgNi4yNSAwIDEgMSA0Ljc1IDExYS43NS43NSAwIDAgMSAxLjUgMEE0Ljc1IDQuNzUgMCAxIDAgMTEgNi4yNUg0LjgxbDEuMjIgMS4yMmEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMSAwLTEuMDZsMi41LTIuNWMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXNldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXNldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS44NSAyLjY1Yy4yLjIuMi41IDAgLjdMNC4yMSA1SDExYTYgNiAwIDEgMS02IDYgLjUuNSAwIDAgMSAxIDAgNSA1IDAgMSAwIDUtNUg0LjJsMS42NSAxLjY1YS41LjUgMCAxIDEtLjcuN2wtMi41LTIuNWEuNS41IDAgMCAxIDAtLjdsMi41LTIuNWMuMi0uMi41LS4yLjcgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMjcgMy4yYS43NS43NSAwIDAgMC0xLjA0IDEuMWw1LjI0IDQuOTVIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTIuNzNsLTUuMjUgNC45NmEuNzUuNzUgMCAxIDAgMS4wNCAxLjA5bDYuNDEtNi4wN2ExIDEgMCAwIDAgMC0xLjQ2bC02LjQxLTYuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC44NCAzLjEzYS41LjUgMCAwIDAtLjY4Ljc0bDYuMTcgNS42M0gyLjVhLjUuNSAwIDAgMCAwIDFoMTMuODNsLTYuMTcgNS42M2EuNS41IDAgMCAwIC42OC43NGw2LjkxLTYuMzJhLjc1Ljc1IDAgMCAwIDAtMS4xbC02LjkxLTYuMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JvdGF0ZUNsb2Nrd2lzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JvdGF0ZUNsb2Nrd2lzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAzLjVBNi41IDYuNSAwIDAgMCAzLjUgMTAgLjc1Ljc1IDAgMCAxIDIgMTBhOCA4IDAgMSAxIDEyLjY2IDYuNWgxLjA5YS43NS43NSAwIDAgMSAwIDEuNWgtM2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtM2EuNzUuNzUgMCAwIDEgMS41IDB2MS4yM0E2LjUgNi41IDAgMCAwIDEwIDMuNVptMi41IDYuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpNMTEgMTBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Um90YXRlQ2xvY2t3aXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JvdGF0ZUNsb2Nrd2lzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAxIDEgMTAgNi4zM1YxNC41YS41LjUgMCAwIDAtMSAwdjNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtMS42MkE4IDggMCAxIDAgMiAxMGEuNS41IDAgMCAwIDEgMFptNyAyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptMC0xYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JvdGF0ZUNvdW50ZXJjbG9ja3dpc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSb3RhdGVDb3VudGVyY2xvY2t3aXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDMuNWE2LjUgNi41IDAgMCAxIDYuNSA2LjUuNzUuNzUgMCAwIDAgMS41IDAgOCA4IDAgMSAwLTEyLjY2IDYuNUg0LjI1YS43NS43NSAwIDAgMCAwIDEuNWgzYy40MSAwIC43NS0uMzQuNzUtLjc1di0zYS43NS43NSAwIDAgMC0xLjUgMHYxLjIzQTYuNSA2LjUgMCAwIDEgMTAgMy41Wk03LjUgMTBhMi41IDIuNSAwIDEgMCA1IDAgMi41IDIuNSAwIDAgMC01IDBaTTkgMTBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Um90YXRlQ291bnRlcmNsb2Nrd2lzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSb3RhdGVDb3VudGVyY2xvY2t3aXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxMGE3IDcgMCAxIDAtMTAgNi4zM1YxNC41YS41LjUgMCAwIDEgMSAwdjNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEgMC0xaDEuNjJBOCA4IDAgMSAxIDE4IDEwYS41LjUgMCAwIDEtMSAwWm0tNyAyYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFptMC0xYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JvdXRpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSb3V0aW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjMxIDMuMTVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NUgxMkEyLjUgMi41IDAgMCAwIDkuNSA5djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0uMDRhMyAzIDAgMSAwIDAgMUg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5YzAtLjgzLjY3LTEuNSAxLjUtMS41aDQuMjVsLTIuNjQgMi42NWEuNS41IDAgMSAwIC43LjdsMy41LTMuNWEuNS41IDAgMCAwIDAtLjdsLTMuNS0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JvdXRpbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Um91dGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuMzEgMy4xNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1SDEyQTIuNSAyLjUgMCAwIDAgOS41IDl2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLS4wNGEzIDMgMCAxIDAgMCAxSDhhMi41IDIuNSAwIDAgMCAyLjUtMi41VjljMC0uODMuNjctMS41IDEuNS0xLjVoNC4yNWwtMi42NCAyLjY1YS41LjUgMCAxIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNVpNNyAxM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JvdXRpbmdSZWN0YW5nbGVNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JvdXRpbmdSZWN0YW5nbGVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSAxMi41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtNFptOCAyYS41LjUgMCAwIDAtMSAwVjE3YTEgMSAwIDAgMS0xIDFoLTMuNWEuNS41IDAgMCAwIDAgMUgxN2EyIDIgMCAwIDAgMi0ydi0yLjVaTTE0LjMxIDMuMTVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NUgxMkEyLjUgMi41IDAgMCAwIDkuNSA5djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0uMDRhMyAzIDAgMSAwIDAgMUg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5YzAtLjgzLjY3LTEuNSAxLjUtMS41aDQuMjVsLTIuNjQgMi42NWEuNS41IDAgMSAwIC43LjdsMy41LTMuNWEuNS41IDAgMCAwIDAtLjdsLTMuNS0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JvdXRpbmdSZWN0YW5nbGVNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSb3V0aW5nUmVjdGFuZ2xlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExIDEyLjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di00Wm04IDJhLjUuNSAwIDAgMC0xIDBWMTdhMSAxIDAgMCAxLTEgMWgtMy41YS41LjUgMCAwIDAgMCAxSDE3YTIgMiAwIDAgMCAyLTJ2LTIuNVpNMTQuMzEgMy4xNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1SDEyQTIuNSAyLjUgMCAwIDAgOS41IDl2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLS4wNGEzIDMgMCAxIDAgMCAxSDhhMi41IDIuNSAwIDAgMCAyLjUtMi41VjljMC0uODMuNjctMS41IDEuNS0xLjVoNC4yNWwtMi42NCAyLjY1YS41LjUgMCAxIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNVpNNyAxM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NodWZmbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTaHVmZmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1Ljc4IDMuNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuNzUuNzVjLTMuMDkuMjgtNC44OCAyLjItNi40NyAzLjlsLS4wNS4wNkM3LjIgMTEuMzggNS42NSAxMyAyLjc1IDEzYS43NS43NSAwIDAgMCAwIDEuNWMzLjU4IDAgNS41My0yLjA5IDcuMjUtMy45NGwuMDUtLjA1YzEuNTgtMS43IDIuOTgtMy4xNyA1LjM0LTMuNDZsLS42Ny42N2EuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDItMmMuMy0uMy4zLS43NyAwLTEuMDZsLTItMlpNMi43NSA1LjVjMi43OCAwIDQuNTggMS4yNiA2LjA1IDIuN2wtLjQ4LjUtLjEuMS0uNDUuNDlDNi40MiA3Ljk3IDQuOTkgNyAyLjc1IDdhLjc1Ljc1IDAgMSAxIDAtMS41Wm0xMi43MiA4Ljk3Yy0yLjM0LS4yMS0zLjk0LTEuMzctNS4yNy0yLjY2bC40OS0uNTEuMDktLjEuNDUtLjQ5YzEuMTcgMS4xNCAyLjQgMi4wMiA0LjE2IDIuMjRsLS42Ny0uNjdhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyIDJjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U2h1ZmZsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTaHVmZmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS44NSA0LjE1YS41LjUgMCAwIDAtLjcuN0wxNi4zIDZjLTMuMzMuMDctNS4yOSAxLjktNy4xIDMuNmwtLjA0LjAzQzcuMjggMTEuNCA1LjUzIDEzIDIuNSAxM2EuNS41IDAgMCAwIDAgMWMzLjQ1IDAgNS40NS0xLjg3IDcuMy0zLjZsLjA0LS4wM0MxMS42OCA4LjY1IDEzLjQgNy4wNyAxNi4zIDdsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWk0yLjUgNmMyLjgxIDAgNC42NiAxLjI0IDYuMjYgMi42NGwtLjI4LjI2LS40Ni40M0M2LjUyIDguMDMgNC45MiA3IDIuNSA3YS41LjUgMCAwIDEgMC0xWm0xMy44IDhjLTIuNy0uMDYtNC41LTEuMjgtNi4wNi0yLjY0bC4yOC0uMjYuNDYtLjQzYzEuNDYgMS4yNyAzIDIuMjcgNS4zMSAyLjMzbC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMMTYuMyAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U2h1ZmZsZU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NodWZmbGVPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wzIDNhNy45IDcuOSAwIDAgMC0yLjQtLjM1Ljc1Ljc1IDAgMCAwIDAgMS41YzIuMjQgMCAzLjY3Ljk3IDUuMDIgMi4yOWwuNC0uNDIuNy43QzcuMTQgMTEuNDQgNS42IDEzIDIuNzUgMTNhLjc1Ljc1IDAgMCAwIDAgMS41YzMuNTMgMCA1LjQ3LTIuMDMgNy4xOC0zLjg2bC43LjdjLS4xMy4xNi0uMjguMzEtLjQzLjQ3Ljg1LjgyIDEuOCAxLjYgMyAyLjFsMS40MyAxLjQyYS43NS43NSAwIDAgMCAxLjA0IDEuMDRsMS40OCAxLjQ4YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMi4xNiAxMC43NCAyLjA4IDIuMDguNjktLjY5Yy4zLS4zLjMtLjc3IDAtMS4wNmwtMi0yYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsLjY3LjY3YTYuMzIgNi4zMiAwIDAgMS0uMzgtLjA2Wm0tNC43NS00Ljc1IDEuMDYgMS4wNmE2LjkyIDYuOTIgMCAwIDEgNC4wNy0yLjE1bC0uNjcuNjdhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwyLTJjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuNzUuNzVjLTIuMy4yMS0zLjkgMS4zNC01LjIxIDIuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U2h1ZmZsZU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTaHVmZmxlT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDYuMDkgNi44QTguMTIgOC4xMiAwIDAgMCAyLjUgNmEuNS41IDAgMSAwIDAgMWMyLjQyIDAgNC4wMiAxLjAyIDUuNTIgMi4zM2wuMzEtLjMuNy43MkM3LjIgMTEuNDUgNS40OCAxMyAyLjUgMTNhLjUuNSAwIDAgMCAwIDFjMy40IDAgNS40LTEuODMgNy4yNS0zLjU1bC43LjcxLS4yLjJjLjUzLjQ3IDEuMS45MiAxLjcyIDEuMzJsNS4xOCA1LjE3YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMi4xMiAxMC43IDEuMTQgMS4xNGguMTlsLS4xLjEuNzEuNy45NC0uOTRhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE2LjI5IDEzYTcuNSA3LjUgMCAwIDEtMS4zMi0uMTVaTTEwLjUyIDguNGwuNzEuNzFjMS4zOS0xLjE2IDIuOS0yLjA1IDUuMDYtMi4xbC0xLjE0IDEuMTRhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTYuMyA2Yy0yLjU0LjA2LTQuMjggMS4xNC01Ljc4IDIuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U29ydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NvcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuODQgMTYuNzJhLjc2Ljc2IDAgMCAxLS41OS4yOC43My43MyAwIDAgMS0uNTMtLjIybC0zLTNhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wN2wxLjcyIDEuNzNWMy43NWEuNzUuNzUgMCAwIDEgMS41IDB2MTAuNjhsMS43Mi0xLjcxYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIuOTQgMi45NFpNNi4zNCAzLjI4QS43Ni43NiAwIDAgMCA1Ljc1IDNjLS4yIDAtLjM4LjA3LS41My4yMmwtMyAzQS43NS43NSAwIDAgMCAzLjI4IDcuM0w1IDUuNTZ2MTAuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTdsMS43MiAxLjcxYS43NS43NSAwIDEgMCAxLjA2LTEuMDZMNi4zNCAzLjI4WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTb3J0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NvcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuMzUgNy4zNSA1IDQuNzFWMTYuNWEuNS41IDAgMCAwIDEgMFY0LjdsMi42NSAyLjY1YS41LjUgMCAwIDAgLjctLjdsLTMuNDktMy41QS41LjUgMCAwIDAgNS41IDNhLjUuNSAwIDAgMC0uMzkuMThMMS42NSA2LjY1YS41LjUgMCAxIDAgLjcuN1ptMTUuMyA1LjNMMTUgMTUuMjlWMy41YS41LjUgMCAwIDAtMSAwdjExLjhsLTIuNjUtMi42NWEuNS41IDAgMCAwLS43LjdsMy40OSAzLjVhLjUuNSAwIDAgMCAuMzYuMTUuNS41IDAgMCAwIC4zOS0uMThsMy40Ni0zLjQ3YS41LjUgMCAxIDAtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NvcnREb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U29ydERvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS43NSAxN2MuMjMgMCAuNDUtLjEuNTktLjI4bDIuOTQtMi45NGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0xLjcyIDEuNzFWMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTAuN0w3LjI4IDEyLjdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwzIDMuMDFjLjE1LjE1LjM0LjIyLjUzLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTb3J0RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTb3J0RG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAgMTUuMjkgMi42NS0yLjY0YS41LjUgMCAwIDEgLjcuN0w5LjkgMTYuODJhLjUuNSAwIDAgMS0uNzQuMDNoLS4wMWwtMy41LTMuNWEuNS41IDAgMSAxIC43MS0uN0w5IDE1LjI5VjMuNWEuNS41IDAgMCAxIDEgMHYxMS43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U29ydERvd25MaW5lc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NvcnREb3duTGluZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTIuNTdsLTEuNDUtMS41OGEuNzUuNzUgMCAwIDAtMS4xIDEuMDJsMi43NSAzYS43NS43NSAwIDAgMCAxLjEgMGwyLjc1LTNhLjc1Ljc1IDAgMCAwLTEuMS0xLjAyTDE1IDE1LjMyVjIuNzVaTTIuNzUgMy41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaTTUgNy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNUEuNzUuNzUgMCAwIDEgNSA3LjI1Wk04Ljc1IDkuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTb3J0RG93bkxpbmVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NvcnREb3duTGluZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1IDIuNWEuNS41IDAgMCAwLTEgMHYxMy44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy43bDMgM2MuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdMMTUgMTYuMjlWMi41Wk0yLjUgNGEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wk01IDcuNWMwLS4yOC4yMi0uNS41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNVpNOC41IDEwYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NvcnRVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NvcnRVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljc1IDNjLjIzIDAgLjQ1LjEuNTkuMjhsMi45NCAyLjk0YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMMTAuNSA1LjU3djEwLjY4YS43NS43NSAwIDAgMS0xLjUgMFY1LjU1TDcuMjggNy4zYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMy0zLjAxQS43My43MyAwIDAgMSA5Ljc1IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NvcnRVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTb3J0VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNC43MSA2LjM1IDcuMzVhLjUuNSAwIDEgMS0uNy0uN0w5LjEgMy4xOGEuNS41IDAgMCAxIC43NC0uMDNoLjAxbDMuNSAzLjVhLjUuNSAwIDEgMS0uNzEuN0wxMCA0LjcxVjE2LjVhLjUuNSAwIDAgMS0xIDBWNC43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U29ydFVwTGluZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTb3J0VXBMaW5lc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNSAxNy4yNWEuNzUuNzUgMCAwIDEtMS41IDBWNC42OGwtMS40NSAxLjU4YS43NS43NSAwIDAgMS0xLjEtMS4wMmwyLjc1LTNhLjc1Ljc1IDAgMCAxIDEuMSAwbDIuNzUgM2EuNzUuNzUgMCAwIDEtMS4xIDEuMDJMMTUgNC42OHYxMi41N1pNMi43NSAxNi41YS43NS43NSAwIDAgMSAwLTEuNWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVaTTUgMTIuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVabTMuNzUtMi4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTb3J0VXBMaW5lc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTb3J0VXBMaW5lc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgMTcuNWEuNS41IDAgMCAxLTEgMFYzLjdsLTIuMTUgMi4xNWEuNS41IDAgMCAxLS43LS43bDMtM2MuMi0uMi41LS4yLjcgMGwzIDNhLjUuNSAwIDAgMS0uNy43TDE1IDMuNzFWMTcuNVpNMi41IDE2YS41LjUgMCAwIDEgMC0xaDlhLjUuNSAwIDAgMSAwIDFoLTlaTTUgMTIuNWMwIC4yOC4yMi41LjUuNWg2YS41LjUgMCAwIDAgMC0xaC02YS41LjUgMCAwIDAtLjUuNVpNOC41IDEwYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NwbGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgM2MuNDEgMCAuNzUuMzQuNzUuNzVWOGgyLjI0YTIgMiAwIDAgMSAyIDJ2NC40NGwxLjIzLTEuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi41IDIuNWMtLjMuMy0uNzcuMy0xLjA3IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDctMS4wNmwxLjIxIDEuMjJWMTBhLjUuNSAwIDAgMC0uNS0uNUg3YS41LjUgMCAwIDAtLjUuNXY0LjQ0bDEuMjMtMS4yMmEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0yLjUgMi41YS43NS43NSAwIDAgMS0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw1IDE0LjQ0VjEwYzAtMS4xLjktMiAyLTJoMi4yNVYzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NwbGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1NwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYy4yOCAwIC41LjIyLjUuNVY4SDEzYTIgMiAwIDAgMSAyIDJ2NS4zbDEuNjUtMS42NWEuNS41IDAgMCAxIC43LjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNyAwbC0yLjUtMi41YS41LjUgMCAwIDEgLjctLjdMMTQgMTUuMjlWMTBhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2NS4zbDEuNjUtMS42NWEuNS41IDAgMCAxIC43LjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNyAwbC0yLjUtMi41YS41LjUgMCAwIDEgLjctLjdMNSAxNS4yOVYxMGMwLTEuMS45LTIgMi0yaDIuNVYzLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3ByaW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3ByaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNWEzIDMgMCAxIDAgMCA2aDYuNDRsLS43Mi0uNzJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyIDJjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsLjcyLS43MkgxMGE0LjUgNC41IDAgMSAxIDQuMDMtMi41aC0xLjhhMyAzIDAgMCAwLTIuMjQtNVptLTcuMjUgNmgyLjY0Yy4zOC41OS44NyAxLjEgMS40NSAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1NwcmludFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTcHJpbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDZhMy41IDMuNSAwIDEgMCAwIDdoNy4zbC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMMTcuMjkgMTRIMTBhNC41IDQuNSAwIDEgMSAzLjc0LTJoLTEuMjlBMy40OSAzLjQ5IDAgMCAwIDEwIDZabS03LjUgN2gzLjI2Yy4zMS4zOC42Ny43MiAxLjA4IDFIMi41YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTcXVhcmVEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3F1YXJlRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDNhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVabTUuNSAzLjV2NS44bDIuNjUtMi42NWEuNS41IDAgMCAxIC43LjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNyAwbC0zLjUtMy41YS41LjUgMCAwIDEgLjctLjdsMi42NSAyLjY0VjYuNWEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3F1YXJlRG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTcXVhcmVEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDYuNWEuNS41IDAgMCAwLTEgMHY1LjhMNi44NSA5LjY0YS41LjUgMCAxIDAtLjcuN2wzLjUgMy41Yy4yLjIuNS4yLjcgMGwzLjUtMy41YS41LjUgMCAxIDAtLjctLjdsLTIuNjUgMi42NFY2LjVaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINVpNNCA1YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVY1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTcXVhcmVVcFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3F1YXJlVXBSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm05LjcgMS4wNGEuNS41IDAgMCAwLS4yLS4wNGgtNWEuNS41IDAgMCAwIDAgMWgzLjhsLTQuMTUgNC4xNWEuNS41IDAgMCAwIC43LjdMMTIgOC43MXYzLjc5YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtLjE0LS4zNS41LjUgMCAwIDAtLjE3LS4xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3F1YXJlVXBSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTcXVhcmVVcFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2Wm04LjcgMS4wNGEuNS41IDAgMCAxIC4zLjQ2djVhLjUuNSAwIDAgMS0xIDBWOC43bC00LjE1IDQuMTVhLjUuNSAwIDAgMS0uNy0uN0wxMS4yOSA4SDcuNWEuNS41IDAgMCAxIDAtMWg1YS41LjUgMCAwIDEgLjIuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1N0ZXBCYWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3RlcEJhY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy44NSAzLjE1Yy4yLjIuMi41IDAgLjdMNC43MSA3SDEwYTggOCAwIDAgMSA2Ljk0IDQuMDQuNS41IDAgMSAxLS44OC41QTcgNyAwIDAgMCAxMCA4SDQuN2wzLjE1IDMuMTVhLjUuNSAwIDAgMS0uNy43TDMuMTUgNy44N2EuNS41IDAgMCAxLS4wMS0uNzJsNC00Yy4xOS0uMi41LS4yLjcgMFpNMTIgMTVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTdGVwQmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwQmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy44NSAzLjE1Yy4yLjIuMi41IDAgLjdMNC43MSA3SDEwYTggOCAwIDAgMSA2Ljk0IDQuMDQuNS41IDAgMSAxLS44OC41QTcgNyAwIDAgMCAxMCA4SDQuN2wzLjE1IDMuMTVhLjUuNSAwIDAgMS0uNy43TDMuMTUgNy44N2EuNS41IDAgMCAxLS4wMS0uNzJsNC00Yy4xOS0uMi41LS4yLjcgMFpNOCAxNWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabTItMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1N0ZXBJbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N0ZXBJbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAxNmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaTTEwIDJjLjI4IDAgLjUuMjIuNS41djcuOGwzLjE1LTMuMTVhLjUuNSAwIDAgMSAuNy43bC00IDRhLjUuNSAwIDAgMS0uNyAwbC00LTRhLjUuNSAwIDEgMSAuNy0uN2wzLjE1IDMuMTRWMi41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1N0ZXBJblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwSW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDE1YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTIgMWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabTItMTRjLjI4IDAgLjUuMjIuNS41djcuOGwzLjE1LTMuMTVhLjUuNSAwIDAgMSAuNy43bC00IDRhLjUuNSAwIDAgMS0uNyAwbC00LTRhLjUuNSAwIDEgMSAuNy0uN2wzLjE1IDMuMTRWMi41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1N0ZXBJbkRpYWdvbmFsRG93bkxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwSW5EaWFnb25hbERvd25MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2Ljg1IDMuMTVjLjIuMi4yLjUgMCAuN0w5LjcxIDExaDQuNzlhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXYtNmEuNS41IDAgMCAxIDEgMHY0LjhsNy4xNS03LjE1Yy4yLS4yLjUtLjIuNyAwWk01IDE3YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3RlcEluRGlhZ29uYWxEb3duTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwSW5EaWFnb25hbERvd25MZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi44NSAzLjE1Yy4yLjIuMi41IDAgLjdMOS43MSAxMWg0Ljc5YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjV2LTZhLjUuNSAwIDAgMSAxIDB2NC44bDcuMTUtNy4xNWMuMi0uMi41LS4yLjcgMFpNNyAxNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0xIDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTdGVwSW5MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3RlcEluTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDEyYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFptMTQtMmEuNS41IDAgMCAxLS41LjVIOS43bDMuMTUgMy4xNWEuNS41IDAgMCAxLS43LjdsLTQtNGEuNS41IDAgMCAxIDAtLjdsNC00YS41LjUgMCAwIDEgLjcuN0w5LjcxIDkuNWg3Ljc5Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3RlcEluTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwSW5MZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDEwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpNNCA4YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptMTQgMmEuNS41IDAgMCAxLS41LjVIOS43bDMuMTUgMy4xNWEuNS41IDAgMCAxLS43LjdsLTQtNGEuNS41IDAgMCAxIDAtLjdsNC00YS41LjUgMCAwIDEgLjcuN0w5LjcxIDkuNWg3Ljc5Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3RlcEluUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwSW5SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiA4YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFpNMiAxMGMwLS4yOC4yMi0uNS41LS41aDcuOEw3LjE0IDYuMzVhLjUuNSAwIDEgMSAuNy0uN2w0IDRjLjIuMi4yLjUgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjctLjdsMy4xNC0zLjE1SDIuNUEuNS41IDAgMCAxIDIgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1N0ZXBJblJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N0ZXBJblJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSAxMGExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabTEgMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRaTTIgMTBjMC0uMjguMjItLjUuNS0uNWg3LjhMNy4xNCA2LjM1YS41LjUgMCAxIDEgLjctLjdsNCA0Yy4yLjIuMi41IDAgLjdsLTQgNGEuNS41IDAgMCAxLS43LS43bDMuMTQtMy4xNUgyLjVBLjUuNSAwIDAgMSAyIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dTdGVwT3V0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3RlcE91dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAxNmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0yLTRhLjUuNSAwIDAgMCAuNS0uNVYzLjdsMy4xNSAzLjE1YS41LjUgMCAwIDAgLjctLjdsLTQtNGEuNS41IDAgMCAwLS43IDBsLTQgNGEuNS41IDAgMSAwIC43LjdMOS41IDMuNzF2Ny43OWMwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3RlcE91dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwT3V0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxNWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabS0yIDFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0yLTRhLjUuNSAwIDAgMCAuNS0uNVYzLjdsMy4xNSAzLjE1YS41LjUgMCAwIDAgLjctLjdsLTQtNGEuNS41IDAgMCAwLS43IDBsLTQgNGEuNS41IDAgMSAwIC43LjdMOS41IDMuNzF2Ny43OWMwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3RlcE92ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTdGVwT3ZlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4xNSAzLjE1YS41LjUgMCAwIDAgMCAuN0wxNS4yOSA3SDEwYTggOCAwIDAgMC02Ljk0IDQuMDQuNS41IDAgMSAwIC44OC41QTcgNyAwIDAgMSAxMCA4aDUuM2wtMy4xNSAzLjE1YS41LjUgMCAxIDAgLjcuN2wzLjk5LTMuOThhLjUuNSAwIDAgMCAuMDEtLjcybC00LTRhLjUuNSAwIDAgMC0uNyAwWk04IDE1YTIgMiAwIDEgMCA0IDAgMiAyIDAgMCAwLTQgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1N0ZXBPdmVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N0ZXBPdmVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi4xNSAzLjE1YS41LjUgMCAwIDAgMCAuN0wxNS4yOSA3SDEwYTggOCAwIDAgMC02Ljk0IDQuMDQuNS41IDAgMSAwIC44OC41QTcgNyAwIDAgMSAxMCA4aDUuM2wtMy4xNSAzLjE1YS41LjUgMCAxIDAgLjcuN2wzLjk5LTMuOThhLjUuNSAwIDAgMCAuMDEtLjcybC00LTRhLjUuNSAwIDAgMC0uNyAwWk0xMiAxNWEyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDBabS0yLTFhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3dhcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N3YXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNzggMy4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDEzLjQ0IDZINC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoOC42OWwtMS43MiAxLjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMy0zYy4zLS4zLjMtLjc3IDAtMS4wNmwtMy0zWm0tNC41IDcuNTZhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMyAzYS43NS43NSAwIDAgMCAwIDEuMDZsMyAzYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMNi41NiAxNGg4LjY5YS43NS43NSAwIDAgMCAwLTEuNUg2LjU2bDEuNzItMS43MlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1N3YXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3dhcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuMTUgMy4xNWMuMi0uMi41LS4yLjcgMGwzIDNjLjIuMi4yLjUgMCAuN2wtMyAzYS41LjUgMCAwIDEtLjctLjdMMTQuMjkgN0g0LjVhLjUuNSAwIDAgMSAwLTFoOS44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMSAwLS43Wm0tNC4zIDdjLjIuMi4yLjUgMCAuN0w1LjcxIDEzaDkuNzlhLjUuNSAwIDAgMSAwIDFINS43bDIuMTUgMi4xNWEuNS41IDAgMCAxLS43LjdsLTMtM2EuNS41IDAgMCAxIDAtLjdsMy0zYy4yLS4yLjUtLjIuNyAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3luY0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS44OSAzLjc1YTYuMjUgNi4yNSAwIDAgMC0zLjYzIDExLjI2Ljc1Ljc1IDAgMCAxLS45IDEuMiA3Ljc1IDcuNzUgMCAwIDEgNC0xMy45M2wtLjYtLjU5QS43NS43NSAwIDAgMSA5LjgyLjYzbDIuMTIgMi4xMmMuMy4zLjMuNzcgMCAxLjA2TDkuODIgNS45M2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDkuOSAzLjc1Wm0uMjIgMTIuNWE2LjI1IDYuMjUgMCAwIDAgMy42My0xMS4yNi43NS43NSAwIDAgMSAuOS0xLjIgNy43NSA3Ljc1IDAgMCAxLTQgMTMuOTNsLjYuNTlhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi4xMi0yLjEyYS43NS43NSAwIDAgMSAwLTEuMDZsMi4xMi0yLjEzYS43NS43NSAwIDEgMSAxLjA2IDEuMDdsLTEuMTMgMS4xMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1N5bmNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNDEgMy42NGEuNS41IDAgMCAwIDAtLjcxTDkuMy44YS41LjUgMCAwIDAtLjcuN2wxIDFhNy41IDcuNSAwIDAgMC00LjA4IDEzLjUuNS41IDAgMCAwIC42LS44QTYuNSA2LjUgMCAwIDEgMTAuMTQgMy41TDguNTkgNS4wNGEuNS41IDAgMCAwIC43LjdsMi4xMi0yLjExWk04LjYgMTYuMzZhLjUuNSAwIDAgMCAwIC43MWwyLjEyIDIuMTJhLjUuNSAwIDAgMCAuNy0uN2wtMS0xYTcuNSA3LjUgMCAwIDAgNC4wNy0xMy41LjUuNSAwIDEgMC0uNTkuOEE2LjUgNi41IDAgMCAxIDkuODYgMTYuNWwxLjU1LTEuNTVhLjUuNSAwIDEgMC0uNy0uN2wtMi4xMiAyLjExWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93U3luY0NoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N5bmNDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuNDEgMy42NGEuNS41IDAgMCAwIDAtLjcxTDkuMy44YS41LjUgMCAwIDAtLjcuN2wxIDFhNy41IDcuNSAwIDAgMC00LjA4IDEzLjUuNS41IDAgMCAwIC42LS44QTYuNSA2LjUgMCAwIDEgMTEuNCAzLjY2bC4wMS0uMDJaTTguNiAxNi4zNmwuMDEtLjAxYy40MS4wOS44My4xNCAxLjI3LjE1aC0uMDEuMDdBNi41IDYuNSAwIDAgMCAxMy45IDQuOGEuNS41IDAgMSAxIC42LS44IDcuNSA3LjUgMCAwIDEtNC4wNyAxMy41bDEgLjk4YS41LjUgMCAxIDEtLjcxLjcxbC0yLjEyLTIuMTJhLjUuNSAwIDAgMSAwLS43Wk0xNSAxMGE1IDUgMCAxIDEtMTAgMCA1IDUgMCAwIDEgMTAgMFptLTIuNjUtMS44NWEuNS41IDAgMCAwLS43IDBMOSAxMC43OSA3Ljg1IDkuNjVhLjUuNSAwIDEgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dTeW5jQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N5bmNDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjQxIDMuNjRhLjUuNSAwIDAgMCAwLS43MUw5LjMuOGEuNS41IDAgMCAwLS43LjdsMSAxYTcuNSA3LjUgMCAwIDAtNC4wOCAxMy41LjUuNSAwIDAgMCAuNi0uOEE2LjUgNi41IDAgMCAxIDExLjQgMy42NmwuMDEtLjAyWk04LjYgMTYuMzZsLjAxLS4wMWMuNDEuMDkuODMuMTQgMS4yNy4xNWgtLjAxYTYuNDggNi40OCAwIDAgMCA0Ljc0LTEuOSA2LjUgNi41IDAgMCAwLS43LTkuOC41LjUgMCAxIDEgLjYtLjggNy41IDcuNSAwIDAgMS00LjA3IDEzLjVsLjk4Ljk4YS41LjUgMCAxIDEtLjcuNzFsLTIuMTItMi4xMmEuNS41IDAgMCAxIDAtLjdabTMuNzYtOC4yMWMuMi4yLjIuNSAwIC43bC0zIDNhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAwIDEgLjctLjdMOSAxMC43OWwyLjY1LTIuNjRjLjItLjIuNS0uMi43IDBaTTUgMTBhNSA1IDAgMSAxIDEwIDAgNSA1IDAgMCAxLTEwIDBabTUtNGE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dTeW5jQ2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3luY0NpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxOGE4IDggMCAxIDEgMC0xNiA4IDggMCAwIDEgMCAxNlptMy41LThhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYuN2EzLjUgMy41IDAgMCAwLTUuNi0uNTMuNS41IDAgMSAwIC43NC42NiAyLjUgMi41IDAgMCAxIDQuMTUuNjdoLS43OWEuNS41IDAgMSAwIDAgMWgyWm0tNy41LjV2MmEuNS41IDAgMCAwIDEgMHYtLjdhMy41IDMuNSAwIDAgMCA1LjYuNTMuNS41IDAgMCAwLS43NC0uNjZBMi41IDIuNSAwIDAgMSA3LjcxIDExaC43OWEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dTeW5jQ2lyY2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1N5bmNDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMSAxIDAgMTQgNyA3IDAgMCAxIDAtMTRabTggN2E4IDggMCAxIDAtMTYgMCA4IDggMCAwIDAgMTYgMFptLTgtMi41YzEuMDIgMCAxLjkuNjIgMi4zIDEuNWgtLjhhLjUuNSAwIDEgMCAwIDFoMmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtMSAwdi43YTMuNSAzLjUgMCAwIDAtNS42LS41My41LjUgMCAwIDAgLjc0LjY2QTIuNSAyLjUgMCAwIDEgMTAgNy41Wm0tMyA0LjN2LjdhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0uOGEyLjUgMi41IDAgMCAwIDQuMTYuNjcuNS41IDAgMCAxIC43NS42NkEzLjUgMy41IDAgMCAxIDcgMTEuOFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1N5bmNEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3luY0Rpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuNDEgMy42NGEuNS41IDAgMCAwIDAtLjcxTDkuMy44YS41LjUgMCAwIDAtLjcuN2wxIDFhNy41IDcuNSAwIDAgMC00LjA4IDEzLjUuNS41IDAgMCAwIC42LS44IDYuNSA2LjUgMCAwIDEgNS4yOC0xMS41NWwuMDItLjAyWk04LjYgMTYuMzZsLjAyLS4wMmE2LjQ4IDYuNDggMCAwIDAgNS45OS0xLjc0IDYuNSA2LjUgMCAwIDAtLjctOS44LjUuNSAwIDEgMSAuNi0uOCA3LjUgNy41IDAgMCAxLTQuMDcgMTMuNWwuOTguOThhLjUuNSAwIDEgMS0uNy43MWwtMi4xMi0yLjEyYS41LjUgMCAwIDEgMC0uN1pNMTUgMTBhNSA1IDAgMSAxLTEwIDAgNSA1IDAgMCAxIDEwIDBabS0zLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMCA5LjI5IDguODUgOC4xNWEuNS41IDAgMCAwLS43LjdMOS4yOSAxMGwtMS4xNCAxLjE1YS41LjUgMCAxIDAgLjcuN0wxMCAxMC43MWwxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMGwxLjE0LTEuMTVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dTeW5jRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dTeW5jRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNDEgMi45M2MuMi4yLjIuNTEgMCAuN2wtLjAxLjAyYTYuNDggNi40OCAwIDAgMC02IDEuNzUgNi41IDYuNSAwIDAgMCAuNyA5LjguNS41IDAgMSAxLS42LjhBNy41IDcuNSAwIDAgMSA5LjU5IDIuNWwtMS0uOTlhLjUuNSAwIDAgMSAuNzEtLjdsMi4xMiAyLjEyWm0tMi44IDEzLjQyLS4wMi4wMWEuNS41IDAgMCAwIDAgLjcxbDIuMTIgMi4xMmEuNS41IDAgMCAwIC43LS43bC0xLTFhNy41IDcuNSAwIDAgMCA0LjA3LTEzLjUuNS41IDAgMSAwLS41OS44IDYuNSA2LjUgMCAwIDEtNS4zIDExLjU1Wm0zLjI0LTguMmMuMi4yLjIuNSAwIC43TDEwLjcxIDEwbDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMMTAgMTAuNzFsLTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43TDkuMjkgMTAgOC4xNSA4Ljg1YS41LjUgMCAxIDEgLjctLjdMMTAgOS4yOWwxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaTTUgMTBhNSA1IDAgMSAxIDEwIDAgNSA1IDAgMCAxLTEwIDBabTUtNGE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dTeW5jT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3luY09mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljg5IDMuNzVhNi4yNCA2LjI0IDAgMCAwLTMuMTIuOUw1LjY4IDMuNTZhNy43MyA3LjczIDAgMCAxIDMuNjctMS4yOGwtLjU5LS41OUEuNzUuNzUgMCAwIDEgOS44Mi42M2wyLjEyIDIuMTJjLjMuMy4zLjc3IDAgMS4wNkw5LjgyIDUuOTNhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNkw5LjkgMy43NVpNNC4xOCA0Ljg4YTcuNzUgNy43NSAwIDAgMCAxLjE4IDExLjMzLjc1Ljc1IDAgMSAwIC45LTEuMiA2LjI1IDYuMjUgMCAwIDEtMS4wMi05LjA2bDguODEgOC44YTYuMjMgNi4yMyAwIDAgMS0zLjk0IDEuNWwxLjEzLTEuMTJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wN0w4LjA2IDE2LjJjLS4zLjI5LS4zLjc2IDAgMS4wNmwyLjEyIDIuMTJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtLjU5LS41OWE3LjcyIDcuNzIgMCAwIDAgNC40Ny0xLjlsMi4wMyAyLjAzYS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN2wyLjAzIDIuMDNabTExLjE3IDguMzUgMS4wOSAxLjA5YTcuNzUgNy43NSAwIDAgMC0xLjgtMTAuNTMuNzUuNzUgMCAwIDAtLjkgMS4yIDYuMjUgNi4yNSAwIDAgMSAxLjYgOC4yNFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1N5bmNPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93U3luY09mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNDEgMy42NGEuNS41IDAgMCAwIDAtLjcxTDkuMy44YS41LjUgMCAwIDAtLjcuN2wxIDFjLTEuMy4wNy0yLjYuNDgtMy43MyAxLjIzbC43My43M2E2LjQ5IDYuNDkgMCAwIDEgMy41NS0uOThMOC41OSA1LjA1YS41LjUgMCAwIDAgLjcuN2wyLjEyLTIuMTFaTTQuMzUgNS4wNmE3LjUgNy41IDAgMCAwIDEuMTYgMTAuOTUuNS41IDAgMCAwIC42LS44IDYuNSA2LjUgMCAwIDEtMS4wNC05LjQ0bDkuMTYgOS4xN2E2LjQ4IDYuNDggMCAwIDEtNC4zNyAxLjU2bDEuNTUtMS41NWEuNS41IDAgMSAwLS43LS43bC0yLjEyIDIuMTFhLjUuNSAwIDAgMCAwIC43MWwyLjEyIDIuMTJhLjUuNSAwIDAgMCAuNy0uN2wtMS0xYTcuNDcgNy40NyAwIDAgMCA0LjUzLTEuODVsMi4yIDIuMjFhLjUuNSAwIDAgMCAuNzEtLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN2wyLjIgMi4yMVpNMTUuMyA0LjdhNy41IDcuNSAwIDAgMSAuOTYgOS40NGwtLjczLS43M0E2LjUgNi41IDAgMCAwIDEzLjkgNC44YS41LjUgMCAxIDEgLjYtLjhjLjI5LjIxLjU2LjQ1LjgxLjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUcmVuZGluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1RyZW5kaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3Ljk0IDUuNDZhLjc1Ljc1IDAgMCAwLS43LS40NmgtNS40OWEuNzUuNzUgMCAwIDAgMCAxLjVoMy42OWwtNC45NCA0Ljk0LTEuOTctMS45N2EuNzUuNzUgMCAwIDAtMS4wNiAwbC01LjI1IDUuMjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkw4IDExLjA2bDEuOTcgMS45N2MuMy4zLjc3LjMgMS4wNiAwbDUuNDctNS40N3YzLjY5YS43NS43NSAwIDAgMCAxLjUgMHYtNS41YzAtLjEtLjAyLS4yLS4wNi0uMjlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUcmVuZGluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuOTYgNS4zYS41LjUgMCAwIDAtLjQ2LS4zaC02YS41LjUgMCAwIDAgMCAxaDQuOGwtNS44IDUuOC0yLjE1LTIuMTVhLjUuNSAwIDAgMC0uNyAwbC01LjUgNS41YS41LjUgMCAwIDAgLjcuN0w4IDEwLjcxbDIuMTUgMi4xNGMuMi4yLjUuMi43IDBMMTcgNi43MXY0Ljc5YS41LjUgMCAwIDAgMSAwdi02YS41LjUgMCAwIDAtLjA0LS4yWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ0NoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi43NSAzYS43NS43NSAwIDAgMSAuNzUuNzV2NC41YS43NS43NSAwIDAgMS0xLjUgMHYtMi44bC00LjUgNC4xYS43NS43NSAwIDAgMS0xLjAzLS4wMkw5IDguMDZsLTQuNzIgNC43MmEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDUuMjUtNS4yNWEuNzUuNzUgMCAwIDEgMS4wNiAwbDEuNSAxLjUgMy43OS0zLjQ3aC0yLjU3YS43NS43NSAwIDEgMSAwLTEuNWg0LjVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0xLjYyLTEuODNhLjUuNSAwIDAgMC0uNy0uMDVsLTMuMTUgMi43LTEuMTgtMS4xN2EuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMTguMTkuNDguMi42OC4wM2wzLjUtM2EuNS41IDAgMCAwIC4wNS0uN1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1RyZW5kaW5nQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1RyZW5kaW5nQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi41IDNjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0xIDBWNC43bC00LjY1IDQuNjVhLjUuNSAwIDAgMS0uNyAwTDkgNy43MWwtNS4xNSA1LjE0YS41LjUgMCAwIDEtLjctLjdsNS41LTUuNWEuNS41IDAgMCAxIC43IDBMMTEgOC4yOSAxNS4zIDRoLTIuOGEuNS41IDAgMCAxIDAtMWg0Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMS42Mi0xLjgzYS41LjUgMCAwIDAtLjctLjA1bC0zLjE1IDIuNy0xLjE4LTEuMTdhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjE4LjE5LjQ4LjIuNjguMDNsMy41LTNhLjUuNSAwIDAgMCAuMDUtLjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUcmVuZGluZ0Rvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuOTQgMTQuNTRhLjc1Ljc1IDAgMCAxLS43LjQ2aC01LjQ5YS43NS43NSAwIDAgMSAwLTEuNWgzLjY5TDEwLjUgOC41NmwtMS45NyAxLjk3Yy0uMy4zLS43Ny4zLTEuMDYgMEwyLjIyIDUuMjhhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNkw4IDguOTRsMS45Ny0xLjk3Yy4zLS4zLjc3LS4zIDEuMDYgMGw1LjQ3IDUuNDdWOC43NWEuNzUuNzUgMCAwIDEgMS41IDB2NS41YzAgLjEtLjAyLjItLjA2LjI5WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1RyZW5kaW5nRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuOTYgMTQuN2EuNS41IDAgMCAxLS40Ni4zaC02YS41LjUgMCAwIDEgMC0xaDQuOGwtNS44LTUuOC0yLjE1IDIuMTVhLjUuNSAwIDAgMS0uNyAwbC01LjUtNS41YS41LjUgMCAxIDEgLjctLjdMOCA5LjI5bDIuMTUtMi4xNGMuMi0uMi41LS4yLjcgMEwxNyAxMy4yOVY4LjVhLjUuNSAwIDAgMSAxIDB2NmEuNS41IDAgMCAxLS4wNC4yWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdMaW5lc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1RyZW5kaW5nTGluZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtLjY5bC00LjQ3IDQuNDdjLS4zLjMtLjc3LjMtMS4wNiAwTDguNSA2LjU2bC00LjIyIDQuMjJhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmw0Ljc1LTQuNzVjLjMtLjMuNzctLjMgMS4wNiAwbDIuNDcgMi40NyAzLjk0LTMuOTRoLS42OWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMy43NSAxNGMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41YzAtLjQxLjM0LS43NS43NS0uNzVabTQuNzUtMi4yNWEuNzUuNzUgMCAwIDAtMS41IDB2NS41YS43NS43NSAwIDAgMCAxLjUgMHYtNS41Wk0xMS43NSAxM2MuNDEgMCAuNzUuMzQuNzUuNzV2My41YS43NS43NSAwIDAgMS0xLjUgMHYtMy41YzAtLjQxLjM0LS43NS43NS0uNzVabTQuNzUtMy4yNWEuNzUuNzUgMCAwIDAtMS41IDB2Ny41YS43NS43NSAwIDAgMCAxLjUgMHYtNy41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdMaW5lc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ0xpbmVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDJhLjUuNSAwIDAgMCAwIDFoMS44bC00LjggNC44LTIuNjUtMi42NWEuNS41IDAgMCAwLS43IDBsLTUgNWEuNS41IDAgMCAwIC43LjdMOC41IDYuMjFsMi42NSAyLjY0Yy4yLjIuNS4yLjcgMEwxNyAzLjcxVjUuNWEuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLS41LS41aC0zWm0xIDdhLjUuNSAwIDAgMC0uNS41djhhLjUuNSAwIDAgMCAxIDB2LThhLjUuNSAwIDAgMC0uNS0uNVptLTggMmEuNS41IDAgMCAwLS41LjV2NmEuNS41IDAgMCAwIDEgMHYtNmEuNS41IDAgMCAwLS41LS41Wm0zLjUgMi41YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMS0xIDB2LTRabS04IDFhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAxLTEgMHYtM1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1RyZW5kaW5nU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ1NldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2Ljc1IDNhLjc1Ljc1IDAgMCAxIC43NS43NXY0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjUuNTZsLTQuMjIgNC4yMmMtLjMuMy0uNzcuMy0xLjA2IDBMOSA4LjA2bC00LjcyIDQuNzJhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmw1LjI1LTUuMjVjLjMtLjMuNzctLjMgMS4wNiAwbDEuNzIgMS43MiAzLjY5LTMuNjloLTIuNjlhLjc1Ljc1IDAgMCAxIDAtMS41aDQuNVptLTQuNjggOC40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ1NldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi41IDNjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0xIDBWNC43bC00LjY1IDQuNjVhLjUuNSAwIDAgMS0uNyAwTDkgNy43MWwtNS4xNSA1LjE0YS41LjUgMCAwIDEtLjctLjdsNS41LTUuNWEuNS41IDAgMCAxIC43IDBMMTEgOC4yOSAxNS4zIDRoLTIuOGEuNS41IDAgMCAxIDAtMWg0Wm0tNC40MyA4LjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUcmVuZGluZ1NwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ1NwYXJrbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtNS44OCAyLjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNEw1LjkgOC43MmEuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yIDIuMiAwIDAgMC0xLjQtMS40TDIuMjggNS45YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBaTTE2Ljc1IDZhLjc1Ljc1IDAgMCAxIC43NS43NXY0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNTZsLTQuMjIgNC4yMmMtLjMuMy0uNzcuMy0xLjA2IDBMOSAxMS4wNmwtNC43MiA0LjcyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNS4yNS01LjI1Yy4zLS4zLjc3LS4zIDEuMDYgMGwxLjcyIDEuNzIgMy42OS0zLjY5aC0yLjY5YS43NS43NSAwIDAgMSAwLTEuNWg0LjVabS0uNzMgOC45Ni43Ni4yNWguMDJhLjMuMyAwIDAgMSAuMTQuNDcuMy4zIDAgMCAxLS4xNC4xbC0uNzcuMjZhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41NyAxLjU3IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxLS4xNC0uNDYuMy4zIDAgMCAxIC4xNC0uMWwuNzctLjI2YTEuNTggMS41OCAwIDAgMCAuOTgtMWwuMjUtLjc2YS4zLjMgMCAwIDEgLjU3IDBsLjI1Ljc3YTEuNTggMS41OCAwIDAgMCAxIDFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUcmVuZGluZ1NwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHJlbmRpbmdTcGFya2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIm01Ljg4IDIuMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40TDUuOSA4LjcyYS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMMi4yOCA1LjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFpNMTcgNi41YS41LjUgMCAwIDAtLjUtLjVoLTRhLjUuNSAwIDAgMCAwIDFoMi44TDExIDExLjMgOS4zNSA5LjY0YS41LjUgMCAwIDAtLjcgMGwtNS41IDUuNWEuNS41IDAgMCAwIC43LjdMOSAxMC43MWwxLjY1IDEuNjRhLjUuNSAwIDAgMCAuNyAwTDE2IDcuNzF2Mi43OWEuNS41IDAgMCAwIDEgMHYtNFptLS45OCA4LjQ2Ljc2LjI1aC4wMmEuMy4zIDAgMCAxIC4xNC40Ny4zLjMgMCAwIDEtLjE0LjFsLS43Ny4yNmExLjU4IDEuNTggMCAwIDAtMSAxbC0uMjQuNzZhLjMuMyAwIDAgMS0uNTggMGwtLjI0LS43N2ExLjU3IDEuNTcgMCAwIDAtMS0xbC0uNzctLjI1YS4zLjMgMCAwIDEtLjE0LS40Ni4zLjMgMCAwIDEgLjE0LS4xbC43Ny0uMjZhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41OCAxLjU4IDAgMCAwIDEgMVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1RyZW5kaW5nVGV4dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1RyZW5kaW5nVGV4dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi43NSAzYS43NS43NSAwIDAgMSAuNzUuNzV2NC41YS43NS43NSAwIDAgMS0xLjUgMFY1LjU2bC00LjIyIDQuMjJjLS4zLjMtLjc3LjMtMS4wNiAwTDkgOC4wNmwtNC43MiA0LjcyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNS4yNS01LjI1Yy4zLS4zLjc3LS4zIDEuMDYgMGwxLjcyIDEuNzIgMy42OS0zLjY5aC0yLjY5YS43NS43NSAwIDAgMSAwLTEuNWg0LjVaTTEwIDEzYzAtMS4xLjktMiAyLTJoNWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi00Wm02LjUgM2gtNGEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xWm0tNC0zYS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFoLTRaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUcmVuZGluZ1RleHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHJlbmRpbmdUZXh0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAzLjVhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWgyLjhMMTEgOC4zIDkuMzUgNi42NGEuNS41IDAgMCAwLS43IDBsLTUuNSA1LjVhLjUuNSAwIDAgMCAuNy43TDkgNy43MWwxLjY1IDEuNjRhLjUuNSAwIDAgMCAuNyAwTDE2IDQuNzFWNy41YS41LjUgMCAwIDAgMSAwdi00Wk0xMCAxM2MwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtNFptNi41IDNoLTRhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMSAwIDAtMVptLTQtM2EuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xaC00WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdXcmVuY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUcmVuZGluZ1dyZW5jaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi43NSAzYS43NS43NSAwIDAgMSAuNzUuNzV2NC41YzAgLjI2LS4xNC41LS4zNC42M2ExLjM4IDEuMzggMCAwIDAtMS4xNS0uOUgxNlY1LjU2bC00LjIyIDQuMjJjLS4zLjMtLjc3LjMtMS4wNiAwTDkgOC4wNmwtNC43MiA0LjcyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNS4yNS01LjI1Yy4zLS4zLjc3LS4zIDEuMDYgMGwxLjcyIDEuNzIgMy42OS0zLjY5aC0yLjY5YS43NS43NSAwIDAgMSAwLTEuNWg0LjVabS0uNjUgNi43MWMuMjYtLjI2LjE2LS43LS4yLS43NGEzLjUgMy41IDAgMCAwLTMuNzEgNC42NmwtMi43MiAyLjdhMS41IDEuNSAwIDAgMCAyLjEzIDIuMTNsMi43LTIuNzFhMy41IDMuNSAwIDAgMCA0LjY2LTMuN2MtLjA0LS4zNy0uNDgtLjQ4LS43NC0uMjJsLS45Ny45N2ExLjUgMS41IDAgMSAxLTIuMTItMi4xMmwuOTctLjk3WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHJlbmRpbmdXcmVuY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHJlbmRpbmdXcmVuY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgM2MuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLTEgMFY0LjdsLTQuNjUgNC42NWEuNS41IDAgMCAxLS43IDBMOSA3LjcxbC01LjE1IDUuMTRhLjUuNSAwIDAgMS0uNy0uN2w1LjUtNS41YS41LjUgMCAwIDEgLjcgMEwxMSA4LjI5IDE1LjMgNGgtMi44YS41LjUgMCAwIDEgMC0xaDRabS0uNCA2LjcxYy4yNi0uMjYuMTYtLjctLjItLjc0YTMuNSAzLjUgMCAwIDAtMy43MSA0LjY2bC0yLjcyIDIuN2ExLjUgMS41IDAgMCAwIDIuMTMgMi4xM2wyLjctMi43MWEzLjUgMy41IDAgMCAwIDQuNjYtMy43Yy0uMDQtLjM3LS40OC0uNDgtLjc0LS4yMmwtLjk3Ljk3YTEuNSAxLjUgMCAxIDEtMi4xMi0yLjEybC45Ny0uOTdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuQmlkaXJlY3Rpb25hbERvd25SaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5CaWRpcmVjdGlvbmFsRG93blJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjc4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwxNS40NCA2SDlhMyAzIDAgMCAwLTMgM3Y2LjQ0bC0yLjcyLTIuNzJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw0IDRjLjMuMy43Ny4zIDEuMDYgMGw0LTRhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkw3LjUgMTUuNDRWOWMwLS44My42Ny0xLjUgMS41LTEuNWg2LjQ0bC0yLjcyIDIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmw0LTRjLjMtLjMuMy0uNzcgMC0xLjA2bC00LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5CaWRpcmVjdGlvbmFsRG93blJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5CaWRpcmVjdGlvbmFsRG93blJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy44NSAyLjE1YS41LjUgMCAwIDAtLjcuN0wxNi4yOSA2SDlhMyAzIDAgMCAwLTMgM3Y3LjNsLTMuMTUtMy4xNWEuNS41IDAgMCAwLS43LjdsNCA0Yy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMC0uNy0uN0w3IDE2LjI5VjljMC0xLjEuOS0yIDItMmg3LjNsLTMuMTUgMy4xNWEuNS41IDAgMCAwIC43LjdsNC00YS41LjUgMCAwIDAgMC0uN2wtNC00WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuRG93bkxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuRG93bkxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4yOCAxNi43OGMtLjMuMy0uNzcuMy0xLjA2IDBsLTQtNGEuNzUuNzUgMCAwIDEgMC0xLjA2bDQtNGEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2TDYuNTYgMTEuNUgxM2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWMy43NWEuNzUuNzUgMCAwIDEgMS41IDBWMTBhMyAzIDAgMCAxLTMgM0g2LjU2bDIuNzIgMi43MmMuMy4zLjMuNzcgMCAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuRG93bkxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVybkRvd25MZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljg1IDE2Ljg1YS41LjUgMCAwIDEtLjcgMGwtNC00YS41LjUgMCAwIDEgMC0uN2w0LTRhLjUuNSAwIDEgMSAuNy43TDUuNzEgMTJIMTJhMiAyIDAgMCAwIDItMlYzLjVhLjUuNSAwIDAgMSAxIDBWMTBhMyAzIDAgMCAxLTMgM0g1LjdsMy4xNSAzLjE1Yy4yLjIuMi41IDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5Eb3duUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuRG93blJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjcyIDE2Ljc4Yy4zLjMuNzcuMyAxLjA2IDBsNC00Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNC00YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi43MiAyLjcySDdBMS41IDEuNSAwIDAgMSA1LjUgMTBWMy43NWEuNzUuNzUgMCAwIDAtMS41IDBWMTBhMyAzIDAgMCAwIDMgM2g2LjQ0bC0yLjcyIDIuNzJjLS4zLjMtLjMuNzcgMCAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuRG93blJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5Eb3duUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjE1IDE2Ljg1Yy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43bC00LTRhLjUuNSAwIDAgMC0uNy43TDE0LjI5IDEySDhhMiAyIDAgMCAxLTItMlYzLjVhLjUuNSAwIDAgMC0xIDBWMTBhMyAzIDAgMCAwIDMgM2g2LjNsLTMuMTUgMy4xNWEuNS41IDAgMCAwIDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5Eb3duVXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuRG93blVwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjQ1IDMuNDdhLjc1Ljc1IDAgMCAwLTEuMDMtLjRsLTUgMi41YS43NS43NSAwIDEgMCAuNjcgMS4zNWwzLjI0LTEuNjJMMTAgMTUuMTIgNS40NCA0LjQ1YS43NS43NSAwIDAgMC0xLjM4LjZsNC44IDExLjE5Yy40MyAxIDEuODUgMSAyLjI5IDBsNC42LTEwLjQ2IDEuMyAzLjI1YS43NS43NSAwIDEgMCAxLjQtLjU2bC0yLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5Eb3duVXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVybkRvd25VcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNTcgM2EuNS41IDAgMCAxIC40LjMxbDIgNWEuNS41IDAgMSAxLS45My4zOEwxNS41IDQuODVsLTQuNTkgMTEuNTJhMSAxIDAgMCAxLTEuODUuMDNMNC4wNCA0LjdhLjUuNSAwIDAgMSAuOTItLjRMOS45OCAxNmw0LjU3LTExLjQ3LTMuODMgMS45MmEuNS41IDAgMSAxLS40NC0uOWw0Ljk4LTIuNDlhLjUuNSAwIDAgMSAuMy0uMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5MZWZ0RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5MZWZ0RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjIyIDEwLjcyYy0uMy4zLS4zLjc3IDAgMS4wNmw0IDRjLjMuMy43Ny4zIDEuMDYgMGw0LTRhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkw4LjUgMTMuNDRWN2MwLS44My42Ny0xLjUgMS41LTEuNWg2LjI1YS43NS43NSAwIDAgMCAwLTEuNUgxMGEzIDMgMCAwIDAtMyAzdjYuNDRsLTIuNzItMi43MmEuNzUuNzUgMCAwIDAtMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuTGVmdERvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVybkxlZnREb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjE1IDExLjE1YS41LjUgMCAwIDAgMCAuN2w0IDRjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwLS43LS43TDggMTQuMjlWOGMwLTEuMS45LTIgMi0yaDYuNWEuNS41IDAgMCAwIDAtMUgxMGEzIDMgMCAwIDAtMyAzdjYuM2wtMy4xNS0zLjE1YS41LjUgMCAwIDAtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHVybkxlZnRSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5MZWZ0UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuNTMgMTUuNDVhLjc1Ljc1IDAgMCAwIC40LTEuMDNsLTIuNS01YS43NS43NSAwIDEgMC0xLjM1LjY3bDEuNjIgMy4yNEwzLjg4IDlsMTAuNjctNC41N2EuNzUuNzUgMCAxIDAtLjYtMS4zOEwyLjc3IDcuODZhMS4yNSAxLjI1IDAgMCAwIDAgMi4yOWwxMC40NiA0LjYtMy4yNSAxLjNhLjc1Ljc1IDAgMSAwIC41NiAxLjRsNS0yWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuTGVmdFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5MZWZ0UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2IDE0LjU3YS41LjUgMCAwIDEtLjMxLjRsLTUgMmEuNS41IDAgMCAxLS4zOC0uOTNsMy44NC0xLjU0TDIuNjMgOS45MWExIDEgMCAwIDEtLjAzLTEuODVsMTEuNy01LjAyYS41LjUgMCAwIDEgLjQuOTJMMyA4Ljk4bDExLjQ3IDQuNTctMS45Mi0zLjgzYS41LjUgMCAwIDEgLjktLjQ0bDIuNDkgNC45OGMuMDUuMS4wNy4yLjA2LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5MZWZ0VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuTGVmdFVwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMjIgOS4yOGEuNzUuNzUgMCAwIDEgMC0xLjA2bDQtNGMuMy0uMy43Ny0uMyAxLjA2IDBsNCA0YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMOC41IDYuNTZWMTNjMCAuODMuNjcgMS41IDEuNSAxLjVoNi4yNWEuNzUuNzUgMCAwIDEgMCAxLjVIMTBhMyAzIDAgMCAxLTMtM1Y2LjU2TDQuMjggOS4yOGMtLjMuMy0uNzcuMy0xLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5MZWZ0VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVybkxlZnRVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy4xNSA4Ljg1YS41LjUgMCAwIDEgMC0uN2w0LTRjLjItLjIuNS0uMi43IDBsNCA0YS41LjUgMCAwIDEtLjcuN0w4IDUuNzFWMTJjMCAxLjEuOSAyIDIgMmg2LjVhLjUuNSAwIDAgMSAwIDFIMTBhMyAzIDAgMCAxLTMtM1Y1LjdMMy44NSA4Ljg2YS41LjUgMCAwIDEtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHVyblJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVyblJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjcyIDMuMjJjLjMtLjMuNzctLjMgMS4wNiAwbDQgNGMuMy4zLjMuNzcgMCAxLjA2bC00IDRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwyLjcyLTIuNzJIN2MtLjgzIDAtMS41LjY3LTEuNSAxLjV2Ni4yNWEuNzUuNzUgMCAwIDEtMS41IDBWMTBhMyAzIDAgMCAxIDMtM2g2LjQ0bC0yLjcyLTIuNzJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHVyblJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5SaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMTUgMy4xNWMuMi0uMi41LS4yLjcgMGw0IDRjLjIuMi4yLjUgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjctLjdMMTQuMjkgOEg4YTIgMiAwIDAgMC0yIDJ2Ni41YS41LjUgMCAwIDEtMSAwVjEwYTMgMyAwIDAgMSAzLTNoNi4zbC0zLjE1LTMuMTVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuUmlnaHREb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVyblJpZ2h0RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi43OCAxMC43MmMuMy4zLjMuNzcgMCAxLjA2bC00IDRjLS4zLjMtLjc3LjMtMS4wNiAwbC00LTRhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyLjcyIDIuNzJWN2MwLS44My0uNjctMS41LTEuNS0xLjVIMy43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTBhMyAzIDAgMCAxIDMgM3Y2LjQ0bDIuNzItMi43MmMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5SaWdodERvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVyblJpZ2h0RG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuODUgMTEuMTVjLjIuMi4yLjUgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjcgMGwtNC00YS41LjUgMCAwIDEgLjctLjdMMTIgMTQuMjlWOGEyIDIgMCAwIDAtMi0ySDMuNWEuNS41IDAgMCAxIDAtMUgxMGEzIDMgMCAwIDEgMyAzdjYuM2wzLjE1LTMuMTVjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1R1cm5SaWdodExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuUmlnaHRMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNDcgMTUuNDVhLjc1Ljc1IDAgMCAxLS40LTEuMDNsMi41LTVhLjc1Ljc1IDAgMSAxIDEuMzUuNjdMNi4zIDEzLjMzIDE2LjEyIDkgNS40NSA0LjQ0YS43NS43NSAwIDAgMSAuNi0xLjM4bDExLjE5IDQuOGMxIC40MyAxIDEuODUgMCAyLjI5bC0xMC40NiA0LjYgMy4yNSAxLjNhLjc1Ljc1IDAgMSAxLS41NiAxLjRsLTUtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHVyblJpZ2h0TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuUmlnaHRMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDE0LjU3YS41LjUgMCAwIDAgLjMxLjRsNSAyYS41LjUgMCAxIDAgLjM4LS45M0w1Ljg1IDE0LjVsMTEuNTItNC41OWExIDEgMCAwIDAgLjAzLTEuODVMNS43IDMuMDRhLjUuNSAwIDAgMC0uNC45MkwxNyA4Ljk4IDUuNTMgMTMuNTVsMS45Mi0zLjgzYS41LjUgMCAxIDAtLjktLjQ0bC0yLjQ5IDQuOThhLjUuNSAwIDAgMC0uMDYuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHVyblJpZ2h0VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuUmlnaHRVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi43OCA5LjI4Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNC00YS43NS43NSAwIDAgMC0xLjA2IDBsLTQgNGEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDIuNzItMi43MlYxM2MwIC44My0uNjcgMS41LTEuNSAxLjVIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVIMTBhMyAzIDAgMCAwIDMtM1Y2LjU2bDIuNzIgMi43MmMuMy4zLjc3LjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuUmlnaHRVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuUmlnaHRVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuODUgOC44NWEuNS41IDAgMCAwIDAtLjdsLTQtNGEuNS41IDAgMCAwLS43IDBsLTQgNGEuNS41IDAgMSAwIC43LjdMMTIgNS43MVYxMmEyIDIgMCAwIDEtMiAySDMuNWEuNS41IDAgMCAwIDAgMUgxMGEzIDMgMCAwIDAgMy0zVjUuN2wzLjE1IDMuMTVjLjIuMi41LjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuVXBEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVyblVwRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi40NSAxNi41M2EuNzUuNzUgMCAwIDEtMS4wMy40bC01LTIuNWEuNzUuNzUgMCAxIDEgLjY3LTEuMzVsMy4yNCAxLjYyTDEwIDQuODggNS40NCAxNS41NWEuNzUuNzUgMCAxIDEtMS4zOC0uNmw0LjgtMTEuMTljLjQzLTEgMS44NS0xIDIuMjkgMGw0LjYgMTAuNDYgMS4zLTMuMjVhLjc1Ljc1IDAgMCAxIDEuNC41NmwtMiA1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuVXBEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1R1cm5VcERvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjU3IDE3YS41LjUgMCAwIDAgLjQtLjMxbDItNWEuNS41IDAgMCAwLS45My0uMzhsLTEuNTQgMy44NC00LjU5LTExLjUyYTEgMSAwIDAgMC0xLjg1LS4wM0w0LjA0IDE1LjNhLjUuNSAwIDAgMCAuOTIuNEw5Ljk4IDRsNC41NyAxMS40Ny0zLjgzLTEuOTJhLjUuNSAwIDAgMC0uNDQuOWw0Ljk4IDIuNDljLjEuMDUuMi4wNy4zLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dUdXJuVXBMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VHVyblVwTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjI4IDMuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNCA0Yy0uMy4zLS4zLjc3IDAgMS4wNmw0IDRhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw2LjU2IDguNUgxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY2LjI1YS43NS43NSAwIDAgMCAxLjUgMFYxMGEzIDMgMCAwIDAtMy0zSDYuNTZsMi43Mi0yLjcyYy4zLS4zLjMtLjc3IDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VHVyblVwTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dUdXJuVXBMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljg1IDMuMTVhLjUuNSAwIDAgMC0uNyAwbC00IDRhLjUuNSAwIDAgMCAwIC43bDQgNGEuNS41IDAgMCAwIC43LS43TDUuNzEgOEgxMmEyIDIgMCAwIDEgMiAydjYuNWEuNS41IDAgMCAwIDEgMFYxMGEzIDMgMCAwIDAtMy0zSDUuN2wzLjE1LTMuMTVhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dVbmRvRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VW5kb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljg2IDYuNWgyLjM5YS43NS43NSAwIDAgMSAwIDEuNWgtNC40QS44NS44NSAwIDAgMSA0IDcuMTV2LTQuNGEuNzUuNzUgMCAwIDEgMS41IDBWNS43bDMuMDYtMi42NmE1LjI1IDUuMjUgMCAwIDEgNi44OSA3LjkybC04LjE3IDcuMWEuNzUuNzUgMCAxIDEtLjk5LTEuMTNsOC4xNy03LjFhMy43NSAzLjc1IDAgMSAwLTQuOTItNS42Nkw2Ljg2IDYuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1VuZG9SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VW5kb1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyLjVhLjUuNSAwIDAgMC0xIDB2NC45YzAgLjMzLjI3LjYuNi42aDQuOWEuNS41IDAgMCAwIDAtMUg1LjlsMy40OC0zLjAyYTQgNCAwIDAgMSA1LjI1IDYuMDRsLTguMTcgNy4xYS41LjUgMCAwIDAgLjY1Ljc2bDguMTctNy4xYTUgNSAwIDAgMC02LjU2LTcuNTVMNSA2LjQ2VjIuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yIDguNzNhLjc1Ljc1IDAgMSAwIDEuMSAxLjA0bDQuOTUtNS4yNHYxMi43MmEuNzUuNzUgMCAwIDAgMS41IDBWNC41Mmw0Ljk1IDUuMjVhLjc1Ljc1IDAgMSAwIDEuMS0xLjA0bC02LjA4LTYuNDFhMSAxIDAgMCAwLTEuNDUgMEwzLjIgOC43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuMTMgOS4xNmEuNS41IDAgMSAwIC43NC42OEw5LjUgMy42N1YxNy41YS41LjUgMCAxIDAgMSAwVjMuNjdsNS42MyA2LjE3YS41LjUgMCAwIDAgLjc0LS42OGwtNi4zMi02LjkyYS43NS43NSAwIDAgMC0xLjEgMEwzLjEzIDkuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1VwRXhjbGFtYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dVcEV4Y2xhbWF0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNWEzIDMgMCAwIDEgNiAwYzAgMi4yNS0uNzkgNS4yMS0xLjIyIDYuNjlDNy41NCAxMi40OSA2LjggMTMgNiAxM3MtMS41NC0uNTItMS43OC0xLjMxQzMuOCAxMC4yIDMgNy4yMyAzIDVabTEgMTFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWk0xNSAzLjd2MTMuOGEuNS41IDAgMCAxLTEgMFYzLjdsLTIuMTUgMi4xNWEuNS41IDAgMCAxLS43LS43bDMtM2MuMi0uMi41LS4yLjcgMGwzIDNhLjUuNSAwIDAgMS0uNy43TDE1IDMuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1VwRXhjbGFtYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VXBFeGNsYW1hdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YTIgMiAwIDEgMSA0IDBjMCAyLjA5LS43NSA0LjkzLTEuMTggNi40LS4xLjM2LS40My42LS44Mi42YS44NC44NCAwIDAgMS0uODItLjZDNC43NSA5LjkxIDQgNy4wNyA0IDVabTItM2EzIDMgMCAwIDAtMyAzYzAgMi4yMy43OSA1LjIgMS4yMiA2LjY5QzQuNDYgMTIuNDggNS4yIDEzIDYgMTNzMS41NC0uNTIgMS43OC0xLjMxQzguMiAxMC4yIDkgNy4yNSA5IDVhMyAzIDAgMCAwLTMtM1pNNSAxNmExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabTktMTAuM3YxMy44YS41LjUgMCAwIDEtMSAwVjMuN2wtMi4xNSAyLjE1YS41LjUgMCAwIDEtLjctLjdsMy0zYy4yLS4yLjUtLjIuNyAwbDMgM2EuNS41IDAgMCAxLS43LjdMMTUgMy43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VXBMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VXBMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djcuNWEuNzUuNzUgMCAwIDAgMS41IDBWNS41NmwxMS4yMiAxMS4yMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDUuNTYgNC41aDUuNjljLjQxIDAgLjc1LS4zNC43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1VwTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dVcExlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgNGEuNS41IDAgMCAwIDAtMWgtOGEuNS41IDAgMCAwLS41LjV2OGEuNS41IDAgMCAwIDEgMFY0LjdsMTIuMTUgMTIuMTVhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDRoNi43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VXBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1VwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNy41Yy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMSAxLTEuNSAwVjUuNTZMNC4yOCAxNi43OGEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDE0LjQ0IDQuNWgtNS43QS43NS43NSAwIDAgMSA4IDMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1VwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93VXBSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDRhLjUuNSAwIDEgMSAwLTFoOGMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLTEgMFY0LjdMMy44NSAxNi44NmEuNS41IDAgMCAxLS43LS43TDE1LjI5IDRIOC41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dVcGxvYWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dVcGxvYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJhLjc1Ljc1IDAgMCAwIDAgMS41SDE1QS43NS43NSAwIDAgMCAxNSAySDQuNVptNiAxNS4zNWEuNzUuNzUgMCAwIDEtMS41LS4xVjcuMDVsLTIuOTcgMi45OC0uMDguMDdhLjc1Ljc1IDAgMCAxLS45OC0xLjE0bDQuMjktNC4yOGEuNzMuNzMgMCAwIDEgLjI2LS4xNWwuMDgtLjAyLjE1LS4wMmguMDZsLjA3LjAxLjEyLjAzLjA5LjA0LjA0LjAyLjA5LjA2LjA3LjA2IDQuMjQgNC4yNi4wNy4wOGMuMjIuMy4yLjcxLS4wNy45OGwtLjA4LjA3Yy0uMy4yMi0uNzIuMi0uOTgtLjA3TDEwLjUgNy4wNVYxNy4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93VXBsb2FkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1VwbG9hZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgM2EuNS41IDAgMCAwIC4wOS0uOTlINGEuNS41IDAgMCAwLS4wOS45OEw0IDNoMTFaTTkuNSAxOGEuNS41IDAgMCAwIC41LS40MVY1LjdsMy42NCAzLjY1Yy4xNy4xOC40NC4yLjY0LjA2bC4wNy0uMDZhLjUuNSAwIDAgMCAuMDYtLjYzbC0uMDYtLjA3LTQuNS00LjVBLjUuNSAwIDAgMCA5LjYgNGgtLjFhLjUuNSAwIDAgMC0uNC4xOUw0LjY0IDguNjVhLjUuNSAwIDAgMCAuNjQuNzZsLjA3LS4wNkw5IDUuNzFWMTcuNWMwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93V3JhcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1dyYXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNzUgMy41YTMuMjUgMy4yNSAwIDAgMSAwIDYuNWgtNy41YTEuNzUgMS43NSAwIDEgMCAwIDMuNWg5LjE5bC0uMjItLjIyYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMS41IDEuNWMuMy4zLjMuNzcgMCAxLjA2bC0xLjUgMS41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsLjIyLS4yMkg2LjI1YTMuMjUgMy4yNSAwIDAgMSAwLTYuNWg3LjVhMS43NSAxLjc1IDAgMSAwIDAtMy41aC0xMGEuNzUuNzUgMCAwIDEgMC0xLjVoMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1dyYXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93V3JhcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgNGEzIDMgMCAxIDEgMCA2SDZhMiAyIDAgMSAwIDAgNGgxMC4zbC0uNjUtLjY1YS41LjUgMCAwIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjctLjdsLjY0LS42NUg2YTMgMyAwIDEgMSAwLTZoOGEyIDIgMCAxIDAgMC00SDMuNWEuNS41IDAgMCAxIDAtMUgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93V3JhcE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1dyYXBPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wuOTguOThBLjc1Ljc1IDAgMCAwIDMuNzUgNWguNTRsMy41IDMuNUg2LjI1YTMuMjUgMy4yNSAwIDEgMCAwIDYuNWg4LjA0bC43MS43YS43NS43NSAwIDAgMCAuOC44bDEuMzUgMS4zNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTIuOCAxMy41SDYuMjVhMS43NSAxLjc1IDAgMSAxIDAtMy41aDMuMDRsMy41IDMuNVpcIiwgXCJNMTMuNzUgOC41aC0zLjEzbDEuNSAxLjVoMS42M2EzLjI1IDMuMjUgMCAwIDAgMC02LjVINS42Mkw3LjEyIDVoNi42M2ExLjc1IDEuNzUgMCAxIDEgMCAzLjVaXCIsIFwibTE3LjM0IDE1LjIyLTIuMzMtMi4zM2EuNzUuNzUgMCAwIDEgMS4yNy0uNjdsMS41IDEuNWMuMy4zLjMuNzcgMCAxLjA2bC0uNDQuNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1dyYXBPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93V3JhcE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjE3IDEuMThBLjUuNSAwIDAgMCAzLjUgNWguOGw0IDRINmEzIDMgMCAxIDAgMCA2aDguM2wxLjM1IDEuMzUgMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTMuMyAxNEg2YTIgMiAwIDEgMSAwLTRoMy4zbDQgNFpcIiwgXCJNMTQgOWgtMi44OGwxIDFIMTRhMyAzIDAgMSAwIDAtNkg2LjEybDEgMUgxNGEyIDIgMCAxIDEgMCA0WlwiLCBcIk0xNy40MSAxNS4zIDE2LjEyIDE0aC4xN2wtLjY0LS42NWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVjLjIuMi4yLjUgMCAuN2wtLjQ0LjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dzQmlkaXJlY3Rpb25hbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd3NCaWRpcmVjdGlvbmFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNjggNS4wM2MuMi4wOC4zMi4yNi4zMi40N1Y4aDZWNS41YS41LjUgMCAwIDEgLjg3LS4zM2w0IDQuNWEuNS41IDAgMCAxIDAgLjY2bC00IDQuNWEuNS41IDAgMCAxLS44Ny0uMzNWMTJIN3YyLjVhLjUuNSAwIDAgMS0uODcuMzNsLTQtNC41YS41LjUgMCAwIDEgMC0uNjZsNC00LjVhLjUuNSAwIDAgMSAuNTUtLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dzQmlkaXJlY3Rpb25hbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dzQmlkaXJlY3Rpb25hbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi42OCA1LjAzYy4yLjA4LjMyLjI2LjMyLjQ3VjhoNlY1LjVhLjUuNSAwIDAgMSAuODctLjMzbDQgNC41YS41LjUgMCAwIDEgMCAuNjZsLTQgNC41YS41LjUgMCAwIDEtLjg3LS4zM1YxMkg3djIuNWEuNS41IDAgMCAxLS44Ny4zM2wtNC00LjVhLjUuNSAwIDAgMSAwLS42Nmw0LTQuNWEuNS41IDAgMCAxIC41NS0uMTRaTTMuMTcgMTAgNiAxMy4xOFYxMS41YzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2MS42OEwxNi44MyAxMCAxNCA2LjgyVjguNWEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNVY2LjgyTDMuMTcgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBBdHRhY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXR0YWNoRmlsbGVkJywgXCIxZW1cIiwgW1wibTUuMjggMTAuNiA1LjMtNS4zYTIuNzUgMi43NSAwIDEgMSAzLjkgMy45TDguMSAxNS41NWExLjI1IDEuMjUgMCAxIDEtMS43Ny0xLjc3TDEyIDguMTNhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNS42NiA1LjY2YTIuNzUgMi43NSAwIDAgMCAzLjg5IDMuODlsNi4zNi02LjM2YTQuMjUgNC4yNSAwIDAgMC02LTYuMDJsLTUuMzEgNS4zYS43NS43NSAwIDAgMCAxLjA2IDEuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBdHRhY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0F0dGFjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtNC44MyAxMC40OCA1LjY1LTUuNjVhMyAzIDAgMCAxIDQuMjUgNC4yNEw4IDE1LjhhMS41IDEuNSAwIDAgMS0yLjEyLTIuMTJsNi02LjAxYS41LjUgMCAxIDAtLjctLjcxbC02IDYuMDFhMi41IDIuNSAwIDAgMCAzLjUzIDMuNTRsNi43MS02LjcyYTQgNCAwIDEgMC01LjY1LTUuNjZMNC4xMiA5Ljc4YS41LjUgMCAwIDAgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEF0dGFjaEFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXR0YWNoQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIm01LjI4IDEwLjYgNS4zLTUuM0EyLjc1IDIuNzUgMCAwIDEgMTQuNjUgOWMuNTYuMDIgMS4xLjEyIDEuNi4yOWE0LjI1IDQuMjUgMCAwIDAtNi43My01LjA1bC01LjMgNS4zYS43NS43NSAwIDAgMCAxLjA2IDEuMDdabTIuODMgNC45Ni45LS45Yy4wMS42My4xMyAxLjIyLjM0IDEuNzhsLS4xOC4xOGEyLjc1IDIuNzUgMCAwIDEtMy44OS0zLjg5bDUuNjYtNS42NkEuNzUuNzUgMCAxIDEgMTIgOC4xM0w2LjM0IDEzLjhhMS4yNSAxLjI1IDAgMCAwIDEuNzcgMS43N1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEF0dGFjaEFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0F0dGFjaEFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wibTQuODMgMTAuNDggNS42NS01LjY1QTMgMyAwIDAgMSAxNC43OSA5Yy40LjAyLjc4LjA4IDEuMTQuMThhNCA0IDAgMCAwLTYuMTQtNS4wN0w0LjEyIDkuNzhhLjUuNSAwIDAgMCAuNy43Wk04IDE1Ljc4bDEtLjk5Yy4wMi40Mi4wOS44My4yIDEuMjFsLS41LjVhMi41IDIuNSAwIDEgMS0zLjUzLTMuNTRsNi4wMS02LjAxYS41LjUgMCAxIDEgLjcuN2wtNiA2LjAyQTEuNSAxLjUgMCAwIDAgOCAxNS43OVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDEgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDEgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDEgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEF0dGFjaFRleHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXR0YWNoVGV4dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDMuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YTMuNzUgMy43NSAwIDAgMSA3LjUtLjI1djEwLjI1YTIuMjUgMi4yNSAwIDAgMS00LjUgMFY1Ljc3YS43NS43NSAwIDAgMSAxLjUgMHY5Ljk4YS43NS43NSAwIDAgMCAxLjUgMHYtMTBDOSA0LjUxIDggMy41IDYuNzUgMy41Wk0xMiA4LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUtMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41Wk0xMiAxMS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLjc1IDIuMjVhLjc1Ljc1IDAgMCAwIDAgMS41aDJhLjc1Ljc1IDAgMCAwIDAtMS41aC0yWlwiXSk7XG5leHBvcnQgY29uc3QgQXR0YWNoVGV4dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXR0YWNoVGV4dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDRBMi41IDIuNSAwIDAgMCA0IDYuNVYxNGEuNS41IDAgMCAxLTEgMFY2LjVhMy41IDMuNSAwIDEgMSA3IDBWMTVhMiAyIDAgMCAxLTQgMFY2LjVhLjUuNSAwIDAgMSAxIDBWMTVhMSAxIDAgMSAwIDIgMFY2LjVBMi41IDIuNSAwIDAgMCA2LjUgNFpNMTIgNS41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptLS41IDMuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBdXRvRml0SGVpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0F1dG9GaXRIZWlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4yNSAyYS43NS43NSAwIDAgMCAwIDEuNWgxMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTExWm0wIDE0LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDExYS43NS43NSAwIDAgMCAwLTEuNWgtMTFabTYuMDMtMS43MiAyLTJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtLjcyLjcyVjcuNTZsLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTItMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw5IDcuNTZ2NC44OGwtLjcyLS43MmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIgMmMuMy4zLjc3LjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXV0b0ZpdEhlaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXV0b0ZpdEhlaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAyYS41LjUgMCAwIDAgMCAxaDExYS41LjUgMCAwIDAgMC0xSDRabTAgMTVhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFINFpNOS4xNSA1LjE1Yy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdMMTAgNi43MXY2LjU4bDEuMTUtMS4xNGEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43TDkgMTMuMjlWNi43MUw3Ljg1IDcuODVhLjUuNSAwIDEgMS0uNy0uN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBBdXRvRml0V2lkdGhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXV0b0ZpdFdpZHRoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDQuMjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjExYS43NS43NSAwIDAgMCAxLjUgMHYtMTFabS0xNC41IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjExYS43NS43NSAwIDAgMCAxLjUgMHYtMTFabTEuNzIgNi4wMyAyIDJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtLjcyLS43Mmg0Ljg4bC0uNzIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwyLTJjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuNzIuNzJINy41NmwuNzItLjcyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTIgMmMtLjMuMy0uMy43NyAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBdXRvRml0V2lkdGhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0F1dG9GaXRXaWR0aFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggNGEuNS41IDAgMCAwLTEgMHYxMWEuNS41IDAgMCAwIDEgMFY0Wk0zIDRhLjUuNSAwIDAgMC0xIDB2MTFhLjUuNSAwIDAgMCAxIDBWNFptMTEuODUgNS4xNWMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxMy4yOSAxMEg2LjcxbDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYS41LjUgMCAxIDEgLjcuN0w2LjcxIDloNi41OGwtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXV0b2NvcnJlY3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXV0b2NvcnJlY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi4xNyAxNC43NSA4LjAzIDQuMTZhMi4yNSAyLjI1IDAgMCAxIDMuOTQgMEwxNC4xIDhoMy4xNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuMjZhNC4yNSA0LjI1IDAgMSAxLTIuODktMS40OWwuMTUtLjAxaC4wM2wtMS44NC0zLjI1YS41LjUgMCAwIDAtLjg3IDBMMy40NyAxNS41bC0uMDYuMTJhLjc1Ljc1IDAgMSAxLTEuMzEtLjczbC4wNy0uMTNaTTkgMTIuMjVhMi43NSAyLjc1IDAgMSAwIDUuNSAwIDIuNzUgMi43NSAwIDAgMC01LjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEF1dG9jb3JyZWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBdXRvY29ycmVjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xNCA1LjQ4YTEgMSAwIDAgMSAxLjcyIDBMMTIuOTggOWgtLjQ4YTMuNzUgMy43NSAwIDEgMCAyLjMgMWgyLjdhLjUuNSAwIDAgMCAwLTFoLTMuMzVsLTIuNDQtNC4wM2EyIDIgMCAwIDAtMy40MiAwTDIuMDcgMTUuMjRhLjUuNSAwIDAgMCAuODYuNTJMOS4xNCA1LjQ4Wk0xMi4yNSAxMGEyLjc1IDIuNzUgMCAxIDEgMCA1LjUgMi43NSAyLjc1IDAgMCAxIDAtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXV0b3N1bUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBdXRvc3VtRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuODEgMy43YS43NS43NSAwIDAgMSAuNjktLjQ1aDExYS43NS43NSAwIDAgMSAwIDEuNUg2LjI2bDQuMTUgNC4zYy4yNi4yOC4yOC43Mi4wMyAxbC00LjM0IDUuMmg5LjRhLjc1Ljc1IDAgMCAxIDAgMS41aC0xMWEuNzUuNzUgMCAwIDEtLjU4LTEuMjNsNC45NC01LjktNC45LTUuMWEuNzUuNzUgMCAwIDEtLjE1LS44MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEF1dG9zdW1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0F1dG9zdW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuMDQgMy44YS41LjUgMCAwIDEgLjQ2LS4zaDExYS41LjUgMCAxIDEgMCAxSDUuNjdsNC41NiA0LjczYS41LjUgMCAwIDEgLjAyLjY3bC00LjY4IDUuNmg5LjkzYS41LjUgMCAxIDEgMCAxaC0xMWEuNS41IDAgMCAxLS4zOC0uODJMOS4yIDkuNiA0LjE0IDQuMzVhLjUuNSAwIDAgMS0uMS0uNTVaXCJdKTtcbmV4cG9ydCBjb25zdCBCYWNrcGFja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYWNrcGFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDguN2MwLS4zOS4zMS0uNy43LS43aDIuNmMuMzkgMCAuNy4zMS43LjdhLjMuMyAwIDAgMS0uMy4zSDguM2EuMy4zIDAgMCAxLS4zLS4zWk0xMCAyYTIuNSAyLjUgMCAwIDAtMi41IDIuNXYuMDRBNiA2IDAgMCAwIDQgMTB2MmgxMnYtMmE2IDYgMCAwIDAtMy41LTUuNDZWNC41QTIuNSAyLjUgMCAwIDAgMTAgMlptMCAyYy41IDAgMSAuMDYgMS40Ny4xOGExLjUgMS41IDAgMCAwLTIuOTQgMEM5IDQuMDYgOS41IDQgMTAgNFpNOC43IDdoMi42Yy45NCAwIDEuNy43NiAxLjcgMS43IDAgLjcyLS41OCAxLjMtMS4zIDEuM0g4LjNBMS4zIDEuMyAwIDAgMSA3IDguN0M3IDcuNzYgNy43NiA3IDguNyA3Wk03IDE0LjVWMTNINHYyYTMgMyAwIDAgMCAzIDNoNmEzIDMgMCAwIDAgMy0zdi0ySDh2MS41YS41LjUgMCAwIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQmFja3BhY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhY2twYWNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjcgN0M3Ljc2IDcgNyA3Ljc2IDcgOC43YzAgLjcyLjU4IDEuMyAxLjMgMS4zaDMuNGMuNzIgMCAxLjMtLjU4IDEuMy0xLjMgMC0uOTQtLjc2LTEuNy0xLjctMS43SDguN1pNOCA4LjdjMC0uMzkuMzEtLjcuNy0uN2gyLjZjLjM5IDAgLjcuMzEuNy43YS4zLjMgMCAwIDEtLjMuM0g4LjNhLjMuMyAwIDAgMS0uMy0uM1pNMTAgMmEyLjUgMi41IDAgMCAwLTIuNSAyLjV2LjA0QTYgNiAwIDAgMCA0IDEwdjVhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTN2LTVhNiA2IDAgMCAwLTMuNS01LjQ2VjQuNUEyLjUgMi41IDAgMCAwIDEwIDJabTUgMTBINXYtMmE1IDUgMCAwIDEgMTAgMHYyWm0tOCAyLjVhLjUuNSAwIDAgMCAxIDBWMTNoN3YyYTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0ydi0yaDJ2MS41Wk0xMCA0Yy0uNSAwLTEgLjA2LTEuNDcuMThhMS41IDEuNSAwIDAgMSAyLjk0IDBBNi4wMSA2LjAxIDAgMCAwIDEwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBCYWNrcGFja0FkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYWNrcGFja0FkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjUgNC41YTIuNSAyLjUgMCAwIDEgNSAwdi4wNGE2IDYgMCAwIDEgMy40NSA0LjY1IDUuNSA1LjUgMCAwIDAtMy4wNy4wNWMuMDgtLjE2LjEyLS4zNS4xMi0uNTQgMC0uOTQtLjc2LTEuNy0xLjctMS43SDguN0M3Ljc2IDcgNyA3Ljc2IDcgOC43YzAgLjcyLjU4IDEuMyAxLjMgMS4zaDMuMDRhNS41MyA1LjUzIDAgMCAwLTEuNzQgMkg0di0yYTYgNiAwIDAgMSAzLjUtNS40NlY0LjVabTMuOTctLjMyYTEuNSAxLjUgMCAwIDAtMi45NCAwIDYuMDEgNi4wMSAwIDAgMSAyLjk0IDBaTTkgMTQuNWMwLS41Mi4wNy0xLjAyLjItMS41SDh2MS41YS41LjUgMCAwIDEtMSAwVjEzSDR2MmEzIDMgMCAwIDAgMyAzaDMuMjZBNS40OCA1LjQ4IDAgMCAxIDkgMTQuNVpNOC43IDhhLjcuNyAwIDAgMC0uNy43YzAgLjE3LjEzLjMuMy4zaDMuNGEuMy4zIDAgMCAwIC4zLS4zLjcuNyAwIDAgMC0uNy0uN0g4LjdaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCYWNrcGFja0FkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmFja3BhY2tBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhMi41IDIuNSAwIDAgMC0yLjUgMi41di4wNEE2IDYgMCAwIDAgNCAxMHY1YTMgMyAwIDAgMCAzIDNoMy4yNmE1LjUgNS41IDAgMCAxLS42Ni0xSDdhMiAyIDAgMCAxLTItMnYtMmgydjEuNWEuNS41IDAgMCAwIDEgMFYxM2gxLjJjLjEtLjM1LjI0LS42OC40LTFINXYtMmE1IDUgMCAwIDEgOS45LS45OWMuMzYuMDMuNzEuMSAxLjA1LjE4YTYgNiAwIDAgMC0zLjQ1LTQuNjVWNC41QTIuNSAyLjUgMCAwIDAgMTAgMlptMCAyYy0uNSAwLTEgLjA2LTEuNDcuMThhMS41IDEuNSAwIDAgMSAyLjk0IDBBNi4wMSA2LjAxIDAgMCAwIDEwIDRabTEuMzQgNmMuNDYtLjMzLjk4LS41OSAxLjU0LS43Ni4wOC0uMTYuMTItLjM1LjEyLS41NCAwLS45NC0uNzYtMS43LTEuNy0xLjdIOC43QzcuNzYgNyA3IDcuNzYgNyA4LjdjMCAuNzIuNTggMS4zIDEuMyAxLjNoMy4wNFpNOCA4LjdjMC0uMzkuMzEtLjcuNy0uN2gyLjZjLjM5IDAgLjcuMzEuNy43YS4zLjMgMCAwIDEtLjMuM0g4LjNhLjMuMyAwIDAgMS0uMy0uM1ptMTEgNS44YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQmFja3NwYWNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhY2tzcGFjZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjI4IDRhMi41IDIuNSAwIDAgMC0xLjcuNjZMMi44IDguMTZhMi41IDIuNSAwIDAgMCAwIDMuNjhsMy43OSAzLjVhMi41IDIuNSAwIDAgMCAxLjcuNjZoNy4yMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDRIOC4yOFptLjg3IDMuMTVjLjItLjIuNS0uMi43IDBMMTIgOS4yOWwyLjE1LTIuMTRhLjUuNSAwIDAgMSAuNy43TDEyLjcxIDEwbDIuMTQgMi4xNWEuNS41IDAgMCAxLS43LjdMMTIgMTAuNzFsLTIuMTUgMi4xNGEuNS41IDAgMCAxLS43LS43TDExLjI5IDEwIDkuMTUgNy44NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBCYWNrc3BhY2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhY2tzcGFjZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xNSA3LjE1Yy4yLS4yLjUtLjIuNyAwTDEyIDkuMjlsMi4xNS0yLjE0YS41LjUgMCAwIDEgLjcuN0wxMi43MSAxMGwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEyIDEwLjcxbC0yLjE1IDIuMTRhLjUuNSAwIDAgMS0uNy0uN0wxMS4yOSAxMCA5LjE1IDcuODVhLjUuNSAwIDAgMSAwLS43Wk02LjU5IDQuNjZBMi41IDIuNSAwIDAgMSA4LjI5IDRoNy4yMUEyLjUgMi41IDAgMCAxIDE4IDYuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNUg4LjI4YTIuNSAyLjUgMCAwIDEtMS43LS42NmwtMy43OC0zLjVhMi41IDIuNSAwIDAgMSAwLTMuNjhsMy43OS0zLjVabTEuNy4zNGMtLjM4IDAtLjc1LjE0LTEuMDMuNEwzLjQ4IDguOWExLjUgMS41IDAgMCAwIDAgMi4ybDMuNzggMy41Yy4yOC4yNi42NS40IDEuMDIuNGg3LjIyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVIOC4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhZGdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhZGdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDFhMyAzIDAgMCAwIDEtLjE3VjE1YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg4LjE3QTMgMyAwIDAgMCAxNiA3WlwiXSk7XG5leHBvcnQgY29uc3QgQmFkZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhZGdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiA2YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptMSA5VjYuODNBMyAzIDAgMCAxIDE2IDd2OGExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoOGEzIDMgMCAwIDEgLjE3LTFINWEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhbGxvb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmFsbG9vbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDdhNSA1IDAgMCAxIDEwIDBjMCAxLjg3LS42NiAzLjYtMS42IDQuODZhNS4wNiA1LjA2IDAgMCAxLTIuOSAyLjFWMTRhMSAxIDAgMCAwIDEgMUgxNGEyIDIgMCAwIDEgMiAydi41YS41LjUgMCAwIDEtMSAwVjE3YTEgMSAwIDAgMC0xLTFoLTIuNWEyIDIgMCAwIDEtMi0ydi0uMDVhNS4wNiA1LjA2IDAgMCAxLTIuOS0yLjA5QzUuNjYgMTAuNiA1IDguODYgNSA3Wm01LjU3LTNhLjUuNSAwIDEgMC0uMTQgMWMuODEuMTEgMS40Ni43NiAxLjU3IDEuNTdhLjUuNSAwIDAgMCAxLS4xNEEyLjg2IDIuODYgMCAwIDAgMTAuNTYgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhbGxvb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhbGxvb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDQuNDNhLjUuNSAwIDAgMSAuNTctLjQzIDIuODYgMi44NiAwIDAgMSAyLjQyIDIuNDMuNS41IDAgMCAxLS45OS4xNEExLjg2IDEuODYgMCAwIDAgMTAuNDMgNWEuNS41IDAgMCAxLS40My0uNTdaTTUgN2E1IDUgMCAwIDEgMTAgMGMwIDEuODctLjY2IDMuNi0xLjYgNC44NmE1LjA2IDUuMDYgMCAwIDEtMi45IDIuMVYxNGExIDEgMCAwIDAgMSAxSDE0YTIgMiAwIDAgMSAyIDJ2LjVhLjUuNSAwIDAgMS0xIDBWMTdhMSAxIDAgMCAwLTEtMWgtMi41YTIgMiAwIDAgMS0yLTJ2LS4wNWE1LjA2IDUuMDYgMCAwIDEtMi45LTIuMDlDNS42NiAxMC42IDUgOC44NiA1IDdabTUtNGE0IDQgMCAwIDAtNCA0YzAgMS42NC41OSAzLjE2IDEuNCA0LjI3QzguMjQgMTIuNCA5LjIzIDEzIDEwIDEzczEuNzYtLjYgMi42LTEuNzNBNy4zMSA3LjMxIDAgMCAwIDE0IDdhNCA0IDAgMCAwLTQtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhcmNvZGVTY2FubmVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhcmNvZGVTY2FubmVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSAzaC43NWEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2Ljc1YS43NS43NSAwIDAgMS0xLjUgMHYtLjc1Wm0xMS43NS0yYzAtLjQxLjM0LS43NS43NS0uNzVoLjc1QTIuNzUgMi43NSAwIDAgMSAxOCA1Ljc1di43NWEuNzUuNzUgMCAwIDEtMS41IDB2LS43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTExIDljLjQxIDAgLjc1LjM0Ljc1Ljc1di43NWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWguNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzVBMi43NSAyLjc1IDAgMCAxIDIgMTQuMjV2LS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0xNC41IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1di43NUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTdoLS43NWEuNzUuNzUgMCAwIDEgMC0xLjVoLjc1Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTUuNSA2Yy40MSAwIC43NS4zNC43NS43NXY2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi02LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy43NS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wk0xMS41IDZjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTYuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLjc1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXJjb2RlU2Nhbm5lclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmFyY29kZVNjYW5uZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMWEuNS41IDAgMCAxIDAgMWgtMUMzLjY3IDQgMyA0LjY3IDMgNS41djFhLjUuNSAwIDAgMS0xIDB2LTFabTEyLTJjMC0uMjguMjItLjUuNS0uNWgxQTIuNSAyLjUgMCAwIDEgMTggNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xYS41LjUgMCAwIDEtLjUtLjVaTTIuNSAxM2MuMjggMCAuNS4yMi41LjV2MWMwIC44My42NyAxLjUgMS41IDEuNWgxYS41LjUgMCAwIDEgMCAxaC0xQTIuNSAyLjUgMCAwIDEgMiAxNC41di0xYzAtLjI4LjIyLS41LjUtLjVabTE1IDBjLjI4IDAgLjUuMjIuNS41djFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xYS41LjUgMCAwIDEgMC0xaDFjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjI4LjIyLS41LjUtLjVabS0xMi03Yy4yOCAwIC41LjIyLjUuNXY3YS41LjUgMCAwIDEtMSAwdi03YzAtLjI4LjIyLS41LjUtLjVabTMuNS41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTIuNS0uNWMuMjggMCAuNS4yMi41LjV2N2EuNS41IDAgMCAxLTEgMHYtN2MwLS4yOC4yMi0uNS41LS41Wm0zLjUuNWEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmF0dGVyeTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA3LjVBMi41IDIuNSAwIDAgMSA0LjUgNWg5QTIuNSAyLjUgMCAwIDEgMTYgNy41di44M2gxLjE3YS44My44MyAwIDAgMSAuODMuODR2MS42N2EuODMuODMgMCAwIDEtLjgzLjgzSDE2di44M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEyLjV2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmF0dGVyeTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjUgNUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01QTIuNSAyLjUgMCAwIDEgNC41IDVoOVptLjI1Ljk1SDQuNWMtLjY1IDAtMS40LjUtMS41IDEuMTN2NS42MmMwIC42NC41IDEuMTcgMS4xMiAxLjIzbC4xMy4wMWg5LjVjLjY1IDAgMS4xOC0uNSAxLjI0LTEuMTJsLjAxLS4xM1Y3LjJjMC0uNjQtLjUtMS4xNy0xLjEyLTEuMjRoLS4xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnkxMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5MTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC44MyA2Ljk1YS44NC44NCAwIDAgMC0uODMuODN2NC4zM2MwIC40Ni4zNy44NC44My44NGg4LjMzYy40NyAwIC44NC0uMzguODQtLjg0VjcuNzhhLjg0Ljg0IDAgMCAwLS44NC0uODNINC44M1pNMiA3LjVBMi41IDIuNSAwIDAgMSA0LjUgNWg5QTIuNSAyLjUgMCAwIDEgMTYgNy41di44M2gxLjE3YS44My44MyAwIDAgMSAuODMuODR2MS42N2EuODMuODMgMCAwIDEtLjgzLjgzSDE2di44M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEyLjV2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5MTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnkxMFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSA1QTIuNSAyLjUgMCAwIDEgMTYgNy41di44M2gxLjE3YS44My44MyAwIDAgMSAuODMuODR2MS42N2EuODMuODMgMCAwIDEtLjgzLjgzSDE2di44M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEyLjV2LTVBMi41IDIuNSAwIDAgMSA0LjUgNWg5Wm0uMjUuOTVINC41Yy0uNjUgMC0xLjQuNS0xLjUgMS4xM3Y1LjYyYzAgLjY0LjUgMS4xNyAxLjEyIDEuMjNsLjEzLjAxaDkuNWMuNjUgMCAxLjE4LS41IDEuMjQtMS4xMmwuMDEtLjEzVjcuMmMwLS42NC0uNS0xLjE3LTEuMTItMS4yNGgtLjEzWm0tOC45MiAxaDguMzNjLjQzIDAgLjc4LjMyLjgzLjczbC4wMS4xdjQuMzNjMCAuNDMtLjMyLjc4LS43My44M0g0LjgzYS44NC44NCAwIDAgMS0uODItLjcybC0uMDEtLjFWNy43N2MwLS40Mi4zMi0uNzcuNzMtLjgybC4xLS4wMWg4LjMzLTguMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5MUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5MUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS05IDEuOTVhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnkxUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5MVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSA1QTIuNSAyLjUgMCAwIDEgMTYgNy41di44M2gxLjE3YS44My44MyAwIDAgMSAuODMuODR2MS42N2EuODMuODMgMCAwIDEtLjgzLjgzSDE2di44M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEyLjV2LTVBMi41IDIuNSAwIDAgMSA0LjUgNWg5Wm0uMjUuOTVINC41Yy0uNjUgMC0xLjQuNS0xLjUgMS4xM3Y1LjYyYzAgLjY0LjUgMS4xNyAxLjEyIDEuMjNsLjEzLjAxaDkuNWMuNjUgMCAxLjE4LS41IDEuMjQtMS4xMmwuMDEtLjEzVjcuMmMwLS42NC0uNS0xLjE3LTEuMTItMS4yNGgtLjEzWm0tOS4yNSAxYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAxIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5MkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5MkZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjgzIDYuOTVhLjg0Ljg0IDAgMCAwLS44My44M3Y0LjMzYzAgLjQ2LjM3Ljg0LjgzLjg0aC4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzaC0uMzNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnkyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoLjMzYy40MyAwIC43OC4zMi44My43M2wuMDEuMXY0LjMzYzAgLjQzLS4zMi43OC0uNzMuODNINC44M2EuODQuODQgMCAwIDEtLjgyLS43MmwtLjAxLS4xVjcuNzdjMC0uNDIuMzItLjc3LjczLS44MmwuMS0uMDFoLjMzLS4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnkzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnkzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoMS4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnkzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoMS4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDEuMzMtMS4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnk0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoMi4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoMi4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDIuMzMtMi4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnk1RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk1RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoMy4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk1UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoMy4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDMuMzMtMy4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnk2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk2RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoNC4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk2UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoNC4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDQuMzMtNC4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnk3RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk3RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoNS4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk3UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoNS4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDUuMzMtNS4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnk4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk4RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoNi4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeThSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk4UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoNi4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDYuMzMtNi4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnk5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODMgNi45NWEuODQuODQgMCAwIDAtLjgzLjgzdjQuMzNjMCAuNDYuMzcuODQuODMuODRoNy4zM2MuNDcgMCAuODQtLjM4Ljg0LS44NFY3Ljc4YS44NC44NCAwIDAgMC0uODQtLjgzSDQuODNaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQmF0dGVyeTlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnk5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1aDlabS4yNS45NUg0LjVjLS42NSAwLTEuNC41LTEuNSAxLjEzdjUuNjJjMCAuNjQuNSAxLjE3IDEuMTIgMS4yM2wuMTMuMDFoOS41Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0aC0uMTNabS04LjkyIDFoNy4zM2MuNDMgMCAuNzguMzIuODMuNzNsLjAxLjF2NC4zM2MwIC40My0uMzIuNzgtLjczLjgzSDQuODNhLjg0Ljg0IDAgMCAxLS44Mi0uNzJsLS4wMS0uMVY3Ljc3YzAtLjQyLjMyLS43Ny43My0uODJsLjEtLjAxaDcuMzMtNy4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnlDaGFyZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmF0dGVyeUNoYXJnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjYzIDVoMy44N0EyLjUgMi41IDAgMCAxIDE2IDcuMzd2Ljk4aDEuMTdhLjgzLjgzIDAgMCAxIC44Mi43M2wuMDEuMXYxLjY3YS44My44MyAwIDAgMS0uNzIuODJIMTZ2Ljg0YTIuNSAyLjUgMCAwIDEtMi4zNSAyLjVINy4xMmEuNjMuNjMgMCAwIDEtLjYyLS41NHYtMy44NGMwLS4zMS4yMy0uNTcuNTQtLjYySDcuODVjLjYgMCAxLjA5LS40NiAxLjE0LTEuMDRsLjAxLS4xVjUuNjJjMC0uMzIuMjQtLjU4LjU0LS42MmgzLjk2LTMuODhaTTYuMjkgMy4zNGguMDljLjMxIDAgLjU3LjIzLjYyLjUzVjVoLjM4Yy4zNCAwIC42Mi4yOS42Mi42M3YxLjkxQzggOC4zNCA3LjM1IDkgNi41NCA5aC0uOTJ2NS4zOGMwIC4zMS0uMjMuNTctLjU0LjYxTDUgMTVhLjYzLjYzIDAgMCAxLS42Mi0uNTRWOWgtLjkyQzIuNjYgOSAyIDguMzUgMiA3LjU0di0xLjljMC0uMzUuMjgtLjYzLjYzLS42M0gzVjMuOTZjMC0uMzEuMjQtLjU3LjU0LS42MWwuMDgtLjAxYy4zMiAwIC41OC4yMy42Mi41NGwuMDEuMDh2MS4wNWgxLjVWMy45NWMwLS4zMi4yNC0uNTguNTQtLjYyaC4wOS0uMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5Q2hhcmdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5Q2hhcmdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiA3LjM1di45OGwxLjE3LjAyYS44My44MyAwIDAgMSAuODIuNzNsLjAxLjF2MS42N2EuODMuODMgMCAwIDEtLjcyLjgybC0uMTEuMDFIMTZ2LjgyYTIuNSAyLjUgMCAwIDEtMi4zNSAyLjVIN2MtLjMgMC0uNS0uMi0uNS0uNXMuMi0uNS41LS41aDYuNzZjLjY1IDAgMS4xOC0uNSAxLjI0LTEuMTNWNy4yNWMwLS42NS0uNDktMS4xOS0xLjEyLTEuMjVIOS41NEM5LjIgNiA5IDUuODUgOSA1LjVzLjIyLS41LjU0LS41aDMuOTZBMi41IDIuNSAwIDAgMSAxNiA3LjM1Wk02LjMgMy4zNGguMDhjLjMxIDAgLjU3LjIzLjYyLjUzVjVoLjM4Yy4zNCAwIC42Mi4yOS42Mi42M3YxLjkxQzggOC4zNCA3LjM1IDkgNi41NCA5SDMuNDZDMi42NiA5IDIgOC4zNSAyIDcuNTR2LTEuOWMwLS4zNS4yOC0uNjMuNjMtLjYzSDNWMy45NmMwLS4zMS4yNC0uNTcuNTQtLjYxbC4wOC0uMDFjLjMyIDAgLjU4LjIzLjYyLjU0bC4wMS4wOHYxLjA1aDEuNVYzLjk1YzAtLjMyLjI0LS41OC41NC0uNjJaTTUuNSA5djUuNWEuNS41IDAgMSAxLTEgMFY5aDFaTTcgNnYxLjVhLjUuNSAwIDAgMS0uNDEuNUgzLjVhLjUuNSAwIDAgMS0uNS0uNFY2aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5Q2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnlDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA3LjVBMi41IDIuNSAwIDAgMSA0LjUgNWg5QTIuNSAyLjUgMCAwIDEgMTYgNy41di44M2gxLjE3YS44My44MyAwIDAgMSAuODMuODR2MS42N2EuODMuODMgMCAwIDEtLjgzLjgzSDE2di44M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTIuN0E1LjUgNS41IDAgMCAwIDIgOS4yNlY3LjVabTggNmE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE0LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBCYXR0ZXJ5Q2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5Q2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDVBMi41IDIuNSAwIDAgMSAxNiA3LjV2LjgzaDEuMTdhLjgzLjgzIDAgMCAxIC44My44NHYxLjY3YS44My44MyAwIDAgMS0uODMuODNIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMi43Yy4wOS0uMzQuMTUtLjcuMTgtMS4wNmgyLjc3Yy42NSAwIDEuMTgtLjUgMS4yNC0xLjEybC4wMS0uMTNWNy4yYzAtLjY0LS41LTEuMTctMS4xMi0xLjI0SDQuNWMtLjY1IDAtMS40LjUtMS41IDEuMTNWOC42Yy0uMzYuMTgtLjcuNC0xIC42NlY3LjVBMi41IDIuNSAwIDAgMSA0LjUgNWg5Wk0xMCAxMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEw0LjUgMTQuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnlTYXZlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5U2F2ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJtOS41OSA1IDMuOTEuMDFBMi41IDIuNSAwIDAgMSAxNiA3LjM3di45OGgxLjE3YS44My44MyAwIDAgMSAuODIuNzNsLjAxLjF2MS42N2EuODMuODMgMCAwIDEtLjcyLjgybC0uMTEuMDFIMTZ2LjgzYTIuNSAyLjUgMCAwIDEtMi4zNSAyLjVoLS4xNUw2IDE1Yy0uMTggMC0uNS0uMTItLjUtLjVzLjMtLjUuNS0uNWguMDRDNy4zMiAxNCAxMCAxMy4wMSAxMCA5LjcyYzAtMS4wMi0uNDUtMi42OC0uOTYtMy45MmEuNTguNTggMCAwIDEgLjQ3LS44aC4wOFptLTIuNDItLjcxQzguMzggNi41MyA5IDguMzMgOSA5LjU2YzAgMS4yNC0uNTggMi4yOC0xLjE0IDIuNzdhLjkzLjkzIDAgMCAxLS4xNS4xbC0uMS4wNWEuMzUuMzUgMCAwIDEtLjQ2LS4xOC4zNi4zNiAwIDAgMS0uMDItLjJsLjAyLS4wOGMuNDctMS4xOS43LTIuMzYuNjgtMy41YS41OS41OSAwIDAgMC0uNTktLjU4LjU5LjU5IDAgMCAwLS41Ny41NnYuMDJjMCAuMjkgMCAuNTgtLjA0Ljg4bC0uMDUuMzctLjA0LjE5LS4wNS4yNi0uMDguMzItLjAzLjEyYy0uMTMuNDgtLjMxLjk2LS41MyAxLjQ0YTUuNTUgNS41NSAwIDAgMS0zLjA0IDIuODYuNTguNTggMCAwIDEtLjc3LS4zMi42LjYgMCAwIDEgLjMyLS43NyA0LjY5IDQuNjkgMCAwIDAgMS44LTEuMjhjLTEuMjktLjQtMi4wNC0xLjMtMi4xNC0yLjU2LS4xMi0xLjQyLjQxLTIuMzkgMS43Ni0zLjQ3bC42NS0uNS4yOS0uMjNhNi44OSA2Ljg5IDAgMCAwIDEuNDYtMS41NmMuMjMtLjM2Ljc4LS4zNy45OS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnlTYXZlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmF0dGVyeVNhdmVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDkuNTZjMC0xLjIzLS42Mi0zLjAzLTEuODMtNS4yNy0uMjEtLjM5LS43Ni0uMzgtMS0uMDItLjMyLjUxLS44IDEuMDMtMS40NSAxLjU2bC0uMjkuMjItLjY1LjUxQzIuNDMgNy42NCAxLjkgOC42MSAyLjAyIDEwLjAzYy4xIDEuMjUuODUgMi4xNSAyLjE1IDIuNTYtLjQ2LjU0LTEuMDYuOTYtMS44MSAxLjI4YS42LjYgMCAwIDAtLjMyLjc3Yy4xMy4zLjQ3LjQ0Ljc3LjMyYTUuNTUgNS41NSAwIDAgMCAzLjA0LTIuODZjLjIyLS40OC40LS45Ni41My0xLjQ0bC4wMy0uMTIuMDgtLjMyLjA1LS4yNi4wNC0uMTkuMDUtLjM3Yy4wMy0uMy4wNS0uNi4wNC0uODhWOC41Yy4wMS0uMy4yNi0uNTYuNTctLjU2LjMyIDAgLjU5LjI1LjYuNThhOS4wMiA5LjAyIDAgMCAxLS43IDMuNWwtLjAxLjA3Yy0uMDIuMDcgMCAuMTUuMDIuMjEuMDguMTguMy4yNi40Ny4xOGwuMDktLjA0LjE1LS4xMUEzLjgxIDMuODEgMCAwIDAgOSA5LjU2Wm03LTIuMkEyLjUgMi41IDAgMCAwIDEzLjUgNUg5LjUzYy0uMyAwLS41My4xNC0uNTMuNXMuMi41LjUzLjVoNC4zNGMuNjQuMDYgMS4xMy42IDEuMTMgMS4yNHY1LjYzYy0uMDYuNjMtLjYgMS4xMy0xLjI1IDEuMTNINmMtLjMgMC0uNS4yLS41LjVzLjIuNS41LjVoNy42NUEyLjUgMi41IDAgMCAwIDE2IDEyLjV2LS44MkgxNy4yOGEuODMuODMgMCAwIDAgLjcyLS44M1Y5LjA4YS44My44MyAwIDAgMC0uODQtLjczTDE2IDguMzN2LS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnlXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JhdHRlcnlXYXJuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNXYuODNoMS4xN2EuODMuODMgMCAwIDEgLjgzLjg0djEuNjdhLjgzLjgzIDAgMCAxLS44My44M0gxNnYuODNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yLjI2TDguMjkgOS4xYTIgMiAwIDAgMC0zLjU4IDBsLTIuMzQgNC43QTIuNDkgMi40OSAwIDAgMSAyIDEyLjV2LTVabTMuNiAyLjA1LTMuNSA3QTEgMSAwIDAgMCAzIDE4aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNNyAxMS41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBaTTYuNSAxN2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJhdHRlcnlXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCYXR0ZXJ5V2FybmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSA1QTIuNSAyLjUgMCAwIDEgMTYgNy41di44M2gxLjE3YS44My44MyAwIDAgMSAuODMuODR2MS42N2EuODMuODMgMCAwIDEtLjgzLjgzSDE2di44M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTIuMjZsLS41My0xLjA2aDMuMDRjLjY1IDAgMS4xOC0uNSAxLjI0LTEuMTJsLjAxLS4xM1Y3LjJjMC0uNjQtLjUtMS4xNy0xLjEyLTEuMjRINC41Yy0uNjUgMC0xLjQuNS0xLjUgMS4xM3Y1LjQ2bC0uNjMgMS4yNkEyLjQ5IDIuNDkgMCAwIDEgMiAxMi41di01QTIuNSAyLjUgMCAwIDEgNC41IDVoOVpNNS42IDkuNTVsLTMuNSA3QTEgMSAwIDAgMCAzIDE4aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNNyAxMS41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBaTTYuNSAxN2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJlYWNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjM5IDIuN2E1LjIxIDUuMjEgMCAwIDAtNy4xMyAxLjlsLS4yLjM1YS41LjUgMCAwIDAgLjE5LjY4bDMuODMgMi4yMS0yLjEgMy42OGE1Ljk0IDUuOTQgMCAwIDAtNS4zMiAyLjczaC4wNGExLjUgMS41IDAgMCAxIDEuNDkgMS4wM2MuMzUgMS4wNSAxLjU4Ljk4IDEuOS4wN2ExLjUgMS41IDAgMCAxIDIuODMgMGMuMzEuOSAxLjU0Ljk4IDEuOS0uMDdhMS41IDEuNSAwIDAgMSAxLjUxLTEuMDMgNi4zMiA2LjMyIDAgMCAwLTMuMzEtMi41MmwxLjkzLTMuMzkgMy40NyAyYS41LjUgMCAwIDAgLjY4LS4xOGwuMi0uMzRhNS4yMSA1LjIxIDAgMCAwLTEuOTEtNy4xMlpNNS4yNCAxNS42YS41LjUgMCAwIDAtLjk2LjAzYy0uMTcuNy0uNSAxLjA4LS44NiAxLjMtLjM4LjIzLS44Ny4zMi0xLjQyLjMyYS41LjUgMCAwIDAgMCAxYy42NCAwIDEuMzMtLjEgMS45NC0uNDcuMzQtLjIuNjQtLjUuODgtLjg3YTIuOTYgMi45NiAwIDAgMCA0LjY4LS4wMSAyLjk2IDIuOTYgMCAwIDAgNC43NC0uMDZjLjY0LjkgMS43IDEuNDEgMi43NiAxLjQxYS41LjUgMCAxIDAgMC0xYy0uOTggMC0xLjk2LS42NC0yLjI5LTEuNjVhLjUuNSAwIDAgMC0uOTUgMCAxLjk4IDEuOTggMCAwIDEtMy43OS4wNy41LjUgMCAwIDAtLjk0IDAgMS45OCAxLjk4IDAgMCAxLTMuOC0uMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBCZWFjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVhY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguMjYgNC42YTUuMjEgNS4yMSAwIDAgMSA5LjAzIDUuMjJsLS4yLjM0YS41LjUgMCAwIDEtLjY3LjE5bC0zLjQ3LTItMS45MyAzLjM4YzEuMzQuNCAyLjUgMS4zMyAzLjMxIDIuNTJoLS4wOWMtLjM0IDAtLjY2LjExLS45Mi4zMUE0LjkgNC45IDAgMCAwIDkuNSAxMi41YTQuOSA0LjkgMCAwIDAtMy44MiAyLjA2IDEuNSAxLjUgMCAwIDAtMS4wMS0uMyA1Ljk0IDUuOTQgMCAwIDEgNS4zMS0yLjc0bDIuMS0zLjY4LTMuODMtMi4yYS41LjUgMCAwIDEtLjE4LS43bC4yLS4zM1ptLjkyLjQyIDEuNy45OC4wMi0uMDJhOC4wOCA4LjA4IDAgMCAxIDMuMjctMi43NCA0LjIyIDQuMjIgMCAwIDAtNC45OSAxLjc4Wk0xNCA3LjhjLjQ3LS44Mi43LTEuNDYuNzctMi4wOWE1LjggNS44IDAgMCAwLS4wNi0xLjYyIDYuOTYgNi45NiAwIDAgMC0yLjk1IDIuNDFMMTQgNy44Wm0uODcuNSAxLjYxLjkzYTQuMjIgNC4yMiAwIDAgMC0uNzQtNS4wMmMuMDcuNTYuMDkgMS4xLjAyIDEuNjMtLjEuNzktLjM4IDEuNTYtLjg5IDIuNDZabS05LjYzIDcuM2EuNS41IDAgMCAwLS45Ni4wM2MtLjE3LjctLjUgMS4wOC0uODYgMS4zLS4zOC4yMy0uODcuMzItMS40Mi4zMmEuNS41IDAgMCAwIDAgMWMuNjQgMCAxLjMzLS4xIDEuOTQtLjQ3LjM0LS4yLjY0LS41Ljg4LS44N2EyLjk2IDIuOTYgMCAwIDAgNC42OC0uMDEgMi45NiAyLjk2IDAgMCAwIDQuNzQtLjA2Yy42NC45IDEuNyAxLjQxIDIuNzYgMS40MWEuNS41IDAgMSAwIDAtMWMtLjk4IDAtMS45Ni0uNjQtMi4yOS0xLjY1YS41LjUgMCAwIDAtLjk1IDAgMS45OCAxLjk4IDAgMCAxLTMuNzkuMDcuNS41IDAgMCAwLS45NCAwIDEuOTggMS45OCAwIDAgMS0zLjgtLjA4WlwiXSk7XG5leHBvcnQgY29uc3QgQmVha2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWtlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMy41YzAtLjI4LjIyLS41LjUtLjVoOGEuNS41IDAgMCAxIDAgMWgtMXY0LjY4YzAgLjU4LjE1IDEuMTUuNDIgMS42NmwuOSAxLjY2SDUuNjhsLjktMS42NWEzLjUgMy41IDAgMCAwIC40MS0xLjY2VjRINmEuNS41IDAgMCAxLS41LS41Wk01LjE1IDEzbC0uOTcgMS43OUExLjUgMS41IDAgMCAwIDUuNSAxN2g5YTEuNSAxLjUgMCAwIDAgMS4zMi0yLjIxTDE0Ljg1IDEzaC05LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBCZWFrZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWtlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgM2EuNS41IDAgMCAxIDAgMWgtMXY0LjY4YzAgLjU4LjE1IDEuMTUuNDIgMS42NmwyLjQgNC40NUExLjUgMS41IDAgMCAxIDE0LjUgMTdoLTlhMS41IDEuNSAwIDAgMS0xLjMyLTIuMjFsMi40LTQuNDRhMy41IDMuNSAwIDAgMCAuNDEtMS42NlY0SDZhLjUuNSAwIDAgMSAwLTFoOFpNOCA0djQuNjlhNC41IDQuNSAwIDAgMS0uNTQgMi4xM0w2LjgyIDEyaDYuMzZsLS42NC0xLjE4QTQuNSA0LjUgMCAwIDEgMTIgOC42OFY0SDhabTUuNzIgOUg2LjI4bC0xLjIyIDIuMjZhLjUuNSAwIDAgMCAuNDQuNzRoOWEuNS41IDAgMCAwIC40NC0uNzRMMTMuNzIgMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBCZWFrZXJBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVha2VyQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzLjVjMC0uMjguMjItLjUuNS0uNWg4YS41LjUgMCAwIDEgMCAxaC0xdjQuNjhjMCAuMTguMDIuMzUuMDQuNTJBNS41MSA1LjUxIDAgMCAwIDkuNiAxMkg1LjY4bC45LTEuNjVhMy41IDMuNSAwIDAgMCAuNDEtMS42NlY0SDZhLjUuNSAwIDAgMS0uNS0uNVptMy41IDExYzAtLjUyLjA3LTEuMDIuMi0xLjVINS4xNmwtLjk3IDEuNzlBMS41IDEuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMzgtLjc1LS42LTEuNi0uNi0yLjVabTEwIDBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCZWFrZXJBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWtlckFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgM2EuNS41IDAgMCAxIDAgMWgtMXY0LjY4YzAgLjE4LjAyLjM1LjA0LjUyLS4zMy4wOS0uNjUuMi0uOTUuMzVhNC41IDQuNSAwIDAgMS0uMDktLjg3VjRIOHY0LjY5YTQuNSA0LjUgMCAwIDEtLjU0IDIuMTNMNi44MiAxMkg5LjZjLS4xNi4zMi0uMy42NS0uNCAxSDYuMjlsLTEuMjIgMi4yNmEuNS41IDAgMCAwIC40NC43NGgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNWExLjUgMS41IDAgMCAxLTEuMzItMi4yMWwyLjQtNC40NGEzLjUgMy41IDAgMCAwIC40MS0xLjY2VjRINmEuNS41IDAgMCAxIDAtMWg4Wm01IDExLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCZWFrZXJEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWtlckRpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDMuNWMwLS4yOC4yMi0uNS41LS41aDhhLjUuNSAwIDAgMSAwIDFoLTF2NC42OGMwIC4xOC4wMi4zNS4wNC41MkE1LjUxIDUuNTEgMCAwIDAgOS42IDEySDUuNjhsLjktMS42NWEzLjUgMy41IDAgMCAwIC40MS0xLjY2VjRINmEuNS41IDAgMCAxLS41LS41Wm0zLjUgMTFjMC0uNTIuMDctMS4wMi4yLTEuNUg1LjE2bC0uOTcgMS43OUExLjUgMS41IDAgMCAwIDUuNSAxN2g0LjFjLS4zOC0uNzUtLjYtMS42LS42LTIuNVptMTAgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTMuOCAwIDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJlYWtlckRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWtlckRpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDNhLjUuNSAwIDAgMSAwIDFoLTF2NC42OGMwIC4xOC4wMi4zNS4wNC41Mi0uMzMuMDktLjY1LjItLjk1LjM1YTQuNSA0LjUgMCAwIDEtLjA5LS44N1Y0SDh2NC42OWE0LjUgNC41IDAgMCAxLS41NCAyLjEzTDYuODIgMTJIOS42Yy0uMTYuMzItLjMuNjUtLjQgMUg2LjI5bC0xLjIyIDIuMjZhLjUuNSAwIDAgMCAuNDQuNzRoMy43Yy4xLjM1LjI0LjY4LjQgMUg1LjVhMS41IDEuNSAwIDAgMS0xLjMyLTIuMjFsMi40LTQuNDRhMy41IDMuNSAwIDAgMCAuNDEtMS42NlY0SDZhLjUuNSAwIDAgMSAwLTFoOFptNSAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQmVha2VyRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCZWFrZXJFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzLjVjMC0uMjguMjItLjUuNS0uNWg4YS41LjUgMCAwIDEgMCAxaC0xdjQuNjhjMCAuNTguMTUgMS4xNS40MiAxLjY2bC40MS43Ny0uODkuODlINS42OGwuOS0xLjY1YTMuNSAzLjUgMCAwIDAgLjQxLTEuNjZWNEg2YS41LjUgMCAwIDEtLjUtLjVabTQuNzcgMTEuMTdMMTEuOTQgMTNoLTYuOGwtLjk2IDEuNzlBMS41IDEuNSAwIDAgMCA1LjUgMTdoMy43MmwuMjEtLjg0YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDlabS43MS43IDQuODMtNC44MmExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQmVha2VyRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVha2VyRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgM2EuNS41IDAgMCAxIDAgMWgtMXY0LjY4YzAgLjU4LjE1IDEuMTUuNDIgMS42NmwuNDEuNzctLjczLjc0LS41Ni0xLjAzQTQuNSA0LjUgMCAwIDEgMTIgOC42OFY0SDh2NC42OWE0LjUgNC41IDAgMCAxLS41NCAyLjEzTDYuODIgMTJoNi4xMmwtMSAxSDYuMjhsLTEuMjIgMi4yNmEuNS41IDAgMCAwIC40NC43NGgzLjk3bC0uMDQuMTYtLjIxLjg0SDUuNWExLjUgMS41IDAgMCAxLTEuMzItMi4yMWwyLjQtNC40NGEzLjUgMy41IDAgMCAwIC40MS0xLjY2VjRINmEuNS41IDAgMCAxIDAtMWg4Wm0tMy4wMiAxMi4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJlYWtlck9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCZWFrZXJPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w2Ljk5IDcuN3YuOTlhMy41IDMuNSAwIDAgMS0uNDEgMS42Nkw1LjY4IDEyaDUuNjFsMSAxSDUuMTVsLS45NyAxLjc5QTEuNSAxLjUgMCAwIDAgNS41IDE3aDljLjUgMCAuOTMtLjI0IDEuMi0uNmwxLjQ1IDEuNDVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTcgNC44NyAxNC4xMiAxMmguMmwtLjktMS42NkEzLjUgMy41IDAgMCAxIDEzIDguNjhWNGgxYS41LjUgMCAwIDAgMC0xSDZhLjUuNSAwIDAgMC0uNDkuNGwuNjEuNkg3di44N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJlYWtlck9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVha2VyT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDYuOTkgNy43di45OWEzLjUgMy41IDAgMCAxLS40MSAxLjY2bC0yLjQgNC40NEExLjUgMS41IDAgMCAwIDUuNSAxN2g5Yy41IDAgLjkzLS4yNCAxLjItLjZsMS40NSAxLjQ1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMi4xMiAxMy41MmEuNS41IDAgMCAxLS40Ny4zM2gtOWEuNS41IDAgMCAxLS40NC0uNzRMNi4yOCAxM2g2LjAxbDIuNjggMi42N1pNMTEuMjkgMTJINi44MmwuNjQtMS4xOGE0LjUgNC41IDAgMCAwIC41My0yLjEybDMuMyAzLjNaTTEyIDguNjhjMCAuNS4wOC45OC4yNCAxLjQ0bDIuMyAyLjMtMS4xMi0yLjA4QTMuNSAzLjUgMCAwIDEgMTMgOC42OFY0aDFhLjUuNSAwIDAgMCAwLTFINmEuNS41IDAgMCAwLS40OS40bC42MS42SDd2Ljg3bDEgMVY0SDEydjQuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBCZWFrZXJTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCZWFrZXJTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMy41YzAtLjI4LjIyLS41LjUtLjVoOGEuNS41IDAgMCAxIDAgMWgtMXY0LjY4YzAgLjE4LjAyLjM1LjA0LjUyQTUuNTEgNS41MSAwIDAgMCA5LjYgMTJINS42OGwuOS0xLjY1YTMuNSAzLjUgMCAwIDAgLjQxLTEuNjZWNEg2YS41LjUgMCAwIDEtLjUtLjVabTMuNSAxMWMwLS41Mi4wNy0xLjAyLjItMS41SDUuMTZsLS45NyAxLjc5QTEuNSAxLjUgMCAwIDAgNS41IDE3aDQuMWMtLjM4LS43NS0uNi0xLjYtLjYtMi41Wm0zLjA3LTMuMDZhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQmVha2VyU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlYWtlclNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCAzYS41LjUgMCAwIDEgMCAxaC0xdjQuNjhjMCAuMTguMDIuMzUuMDQuNTItLjMzLjA5LS42NS4yLS45NS4zNWE0LjUgNC41IDAgMCAxLS4wOS0uODdWNEg4djQuNjlhNC41IDQuNSAwIDAgMS0uNTQgMi4xM0w2LjgyIDEySDkuNmMtLjE2LjMyLS4zLjY1LS40IDFINi4yOWwtMS4yMiAyLjI2YS41LjUgMCAwIDAgLjQ0Ljc0aDMuN2MuMS4zNS4yNC42OC40IDFINS41YTEuNSAxLjUgMCAwIDEtMS4zMi0yLjIxbDIuNC00LjQ0YTMuNSAzLjUgMCAwIDAgLjQxLTEuNjZWNEg2YS41LjUgMCAwIDEgMC0xaDhabS0xLjkzIDguNDRhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQmVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDlhMi41IDIuNSAwIDAgMSAyLjUgMi4zNHY1LjE2YS41LjUgMCAwIDEtMSAuMDlWMTRIM3YyLjVhLjUuNSAwIDAgMS0xIC4wOVYxMS41QTIuNSAyLjUgMCAwIDEgNC4zNCA5SDE1LjVabS05LTZoN0EyLjUgMi41IDAgMCAxIDE2IDUuMzRWOGgtMnYtLjVhLjUuNSAwIDAgMC0uNDEtLjVIMTFhLjUuNSAwIDAgMC0uNS40MVY4aC0xdi0uNWEuNS41IDAgMCAwLS40MS0uNUg2LjVhLjUuNSAwIDAgMC0uNS40MVY4SDRWNS41QTIuNSAyLjUgMCAwIDEgNi4zNCAzaC4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDNBMi41IDIuNSAwIDAgMSAxNiA1LjM0djIuNzFhMi41IDIuNSAwIDAgMSAyIDIuMjh2Ni4xN2EuNS41IDAgMCAxLTEgLjA5VjE0SDN2Mi41YS41LjUgMCAwIDEtMSAuMDlWMTAuNWEyLjUgMi41IDAgMCAxIDItMi40NVY1LjVBMi41IDIuNSAwIDAgMSA2LjM0IDNoNy4xNlptMiA2aC0xMWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjEzaDE0di0yLjVjMC0uNzgtLjYtMS40Mi0xLjM2LTEuNWgtLjE0Wm0tMi01aC03Yy0uNzggMC0xLjQyLjYtMS41IDEuMzZWOGgxdi0uNWMwLS4yOC4yMi0uNS41LS41SDljLjI4IDAgLjUuMjIuNS41VjhoMXYtLjVjMC0uMjguMjItLjUuNS0uNWgyLjVjLjI4IDAgLjUuMjIuNS41VjhoMVY1LjVjMC0uNzgtLjYtMS40Mi0xLjM2LTEuNWgtLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQmVuY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVuY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA0YTIgMiAwIDAgMC0yIDJ2NGgxNFY2YTIgMiAwIDAgMC0yLTJINVptLTIuNSA3YTEuNSAxLjUgMCAwIDAgMCAzSDN2MS41YS41LjUgMCAwIDAgMSAwVjE0aDEydjEuNWEuNS41IDAgMCAwIDEgMFYxNGguNWExLjUgMS41IDAgMCAwIDAtM2gtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBCZW5jaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmVuY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAxIDEgMCA0djEuNWEuNS41IDAgMCAxLTEgMFYxNEg0djEuNWEuNS41IDAgMCAxLTEgMFYxNGEyIDIgMCAxIDEgMC00VjZabTE0IDdhMSAxIDAgMSAwIDAtMkgzYTEgMSAwIDEgMCAwIDJoMTRabS0xLTdhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDF2NGgxMlY2WlwiXSk7XG5leHBvcnQgY29uc3QgQmV6aWVyQ3VydmVTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmV6aWVyQ3VydmVTcXVhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAzYTIgMiAwIDAgMC0yIDJ2OGMxLjQgMCAyLjI2LS40IDIuODYtLjk2LjYyLS41Ny45OS0xLjM1IDEuMy0yLjJsLjI4LS44Ny4xMy0uNDFjLjE0LS40MS4yOS0uODMuNDctMS4xOXMuNDEtLjcuNzQtLjk2QzkuMSA2LjE0IDkuNTIgNiAxMCA2cy44OS4xNCAxLjIyLjRjLjMzLjI2LjU2LjYuNzQuOTcuMTguMzYuMzMuNzguNDcgMS4xOWwuMTMuNGMuMDkuMy4xOC41OC4yOS44Ny4zLjg2LjY3IDEuNjQgMS4yOSAyLjIxLjYuNTYgMS40Ny45NiAyLjg2Ljk2VjVhMiAyIDAgMCAwLTItMkg1Wm0xMiAxMWMtMS42IDAtMi43NC0uNDctMy41NC0xLjIzYTYuMzkgNi4zOSAwIDAgMS0xLjU2LTIuNmwtLjMtLjkyLS4xMi0uMzhhOCA4IDAgMCAwLS40MS0xLjA1Yy0uMTUtLjMtLjMtLjUtLjQ2LS42M0EuOTMuOTMgMCAwIDAgMTAgN2EuOTMuOTMgMCAwIDAtLjYuMmMtLjE3LjEyLS4zMi4zMi0uNDcuNjItLjE0LjMtLjI3LjY0LS40IDEuMDVsLS4xMy4zOC0uMy45MmMtLjMyLjktLjc2IDEuODYtMS41NiAyLjZBNC45NSA0Ljk1IDAgMCAxIDMgMTR2MWMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJ2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBCZXppZXJDdXJ2ZVNxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmV6aWVyQ3VydmVTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINVptMTEgOS45MmEzLjUgMy41IDAgMCAxLTEuODYtLjg4IDUuNDIgNS40MiAwIDAgMS0xLjMtMi4ybC0uMjgtLjg3LS4xMy0uNDFhOC45MSA4LjkxIDAgMCAwLS40Ny0xLjE5Yy0uMTgtLjM2LS40MS0uNy0uNzQtLjk2QzEwLjkgNi4xNCAxMC40OCA2IDEwIDZzLS44OS4xNC0xLjIyLjRjLS4zMy4yNi0uNTYuNi0uNzQuOTctLjE4LjM2LS4zMy43OC0uNDcgMS4xOWwtLjEzLjRjLS4wOS4zLS4xOC41OC0uMjkuODctLjMuODYtLjY3IDEuNjQtMS4yOSAyLjIxYTMuNSAzLjUgMCAwIDEtMS44Ni44OFY1YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY3LjkyWk00IDEzLjkzYTQuNTUgNC41NSAwIDAgMCAyLjU0LTEuMTZjLjgtLjc0IDEuMjQtMS43IDEuNTYtMi42bC4zLS45Mi4xMi0uMzhjLjE0LS40LjI3LS43Ni40MS0xLjA1LjE1LS4zLjMtLjUuNDYtLjYzLjE2LS4xMi4zNC0uMTkuNjEtLjE5LjI3IDAgLjQ1LjA3LjYuMi4xNy4xMi4zMi4zMi40Ny42MmE4IDggMCAwIDEgLjQgMS4wNWwuMTMuMzguMy45MmMuMzIuOS43NiAxLjg2IDEuNTYgMi42LjYzLjU5IDEuNDUgMSAyLjU0IDEuMTZWMTVhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF2LTEuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBCaW5GdWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JpbkZ1bGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNzUgMi45M2EuNS41IDAgMSAwLS41LS44NmwtMTIgN0EuNS41IDAgMCAwIDIgOS41djZBMi41IDIuNSAwIDAgMCA0LjUgMThoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di02YS41LjUgMCAwIDAtLjUtLjVIMTdWNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVWN0g5LjVDOC42NyA3IDggNy42NyA4IDguNVY5SDQuMzVsMTAuNC02LjA3Wk0xMiA4djFIOXYtLjVjMC0uMjguMjItLjUuNS0uNUgxMlptMSAxVjYuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41VjloLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBCaW5GdWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCaW5GdWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC45MyAyLjI1YS41LjUgMCAwIDEtLjE4LjY4TDQuMzUgOUg4di0uNUM4IDcuNjcgOC42NyA3IDkuNSA3SDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41VjloLjVjLjI4IDAgLjUuMjIuNS41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTUuNXYtNmMwLS4xOC4xLS4zNC4yNS0uNDNsMTItN2EuNS41IDAgMCAxIC42OC4xOFpNMTYuNSAxMEgzdjUuNWMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTBoLS41Wk0xMiA5VjhIOS41YS41LjUgMCAwIDAtLjUuNVY5aDNabTEgMGgzVjYuNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVY5WlwiXSk7XG5leHBvcnQgY29uc3QgQmluUmVjeWNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCaW5SZWN5Y2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzaDlhMSAxIDAgMCAxIDEgMWgtMTFhMSAxIDAgMCAxIDEtMVptLTIgMXYuNWEuNS41IDAgMCAwIDAgLjA2bDEuMzUgMTEuNjdBMiAyIDAgMCAwIDYuODQgMThoNi4zMmEyIDIgMCAwIDAgMS45OS0xLjc3TDE2LjUgNC41NmEuNS41IDAgMCAwIDAtLjA0VjRhMiAyIDAgMCAwLTItMmgtOWEyIDIgMCAwIDAtMiAyWm03LjggMy43NS40NS43OGEuNS41IDAgMSAxLS44Ny41bC0uNDUtLjc4YS41LjUgMCAwIDAtLjg2IDBsLS40NS43OGEuNS41IDAgMSAxLS44Ny0uNWwuNDUtLjc4Yy41OC0xIDIuMDItMSAyLjYgMFptLjg2IDMuNS0uMS0uMTlhLjUuNSAwIDAgMSAuODYtLjVsLjExLjE5YTEuNSAxLjUgMCAwIDEtMS4zIDIuMjVIMTFhLjUuNSAwIDAgMSAwLTFoLjczYS41LjUgMCAwIDAgLjQzLS43NVpNOSAxMmEuNS41IDAgMCAxIDAgMWgtLjczYTEuNSAxLjUgMCAwIDEtMS4zLTIuMjVsLjEtLjE5YS41LjUgMCAwIDEgLjg3LjVsLS4xLjE5YS41LjUgMCAwIDAgLjQzLjc1SDlaXCJdKTtcbmV4cG9ydCBjb25zdCBCaW5SZWN5Y2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCaW5SZWN5Y2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4zIDcuNzVjLS41OC0xLTIuMDItMS0yLjYgMGwtLjQ1Ljc4YS41LjUgMCAxIDAgLjg3LjVsLjQ1LS43OGEuNS41IDAgMCAxIC44NiAwbC40NS43OGEuNS41IDAgMCAwIC44Ny0uNWwtLjQ1LS43OFptLjg2IDMuNS0uMS0uMTlhLjUuNSAwIDAgMSAuODYtLjVsLjExLjE5YTEuNSAxLjUgMCAwIDEtMS4zIDIuMjVIMTFhLjUuNSAwIDAgMSAwLTFoLjczYS41LjUgMCAwIDAgLjQzLS43NVpNOSAxMmEuNS41IDAgMCAxIDAgMWgtLjczYTEuNSAxLjUgMCAwIDEtMS4zLTIuMjVsLjEtLjE5YS41LjUgMCAwIDEgLjg3LjVsLS4xLjE5YS41LjUgMCAwIDAgLjQzLjc1SDlabTYuOTEtOS40MUEyIDIgMCAwIDEgMTYuNSA0di41NmwtMS4zMyAxMS42N2EyIDIgMCAwIDEtMiAxLjc3SDYuODVhMiAyIDAgMCAxLTItMS43N0wzLjUgNC41NlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMS40MS41OVpNMTQuNSAzaC05YTEgMSAwIDAgMC0xIDFoMTFhMSAxIDAgMCAwLTEtMVptLS42NyAxMy43NWExIDEgMCAwIDAgLjMzLS42NEwxNS40NCA1SDQuNTZsMS4yOCAxMS4xMWExIDEgMCAwIDAgMSAuODloNi4zMmExIDEgMCAwIDAgLjY3LS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJpblJlY3ljbGVGdWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JpblJlY3ljbGVGdWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMi4yVjRoMi4zTDYuMzQgMi4wNmEuMi4yIDAgMCAwLS4zNS4xNVpNNSA0VjIuMmExLjIgMS4yIDAgMCAxIDIuMDYtLjg1TDkgMy4zVjIuNWMwLS44My42Ny0xLjUgMS41LTEuNWgzYy44MyAwIDEuNS42NyAxLjUgMS41VjRoMWEuNS41IDAgMCAxIC41LjU2bC0xLjM1IDExLjY3QTIgMiAwIDAgMSAxMy4xNiAxOEg2Ljg0YTIgMiAwIDAgMS0xLjk5LTEuNzdMMy41IDQuNTZBLjUuNSAwIDAgMSA0IDRoMVptOSAwVjIuNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVY0aDRabS0yLjcgMy43NWMtLjU4LTEtMi4wMi0xLTIuNiAwbC0uNDUuNzhhLjUuNSAwIDEgMCAuODcuNWwuNDUtLjc4YS41LjUgMCAwIDEgLjg2IDBsLjQ1Ljc4YS41LjUgMCAwIDAgLjg3LS41bC0uNDUtLjc4Wm0uODYgMy41YS41LjUgMCAwIDEtLjQzLjc1SDExYS41LjUgMCAwIDAgMCAxaC43M2ExLjUgMS41IDAgMCAwIDEuMy0yLjI1bC0uMS0uMTlhLjUuNSAwIDAgMC0uODcuNWwuMS4xOVpNOSAxMmgtLjczYS41LjUgMCAwIDEtLjQ0LS43NWwuMTEtLjE5YS41LjUgMCAwIDAtLjg2LS41bC0uMTEuMTlBMS41IDEuNSAwIDAgMCA4LjI3IDEzSDlhLjUuNSAwIDAgMCAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBCaW5SZWN5Y2xlRnVsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmluUmVjeWNsZUZ1bGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMiAyYy4wNiAwIC4xMS4wMi4xNS4wNkw4LjMgNEg2VjIuMmMwLS4xLjEtLjIuMi0uMlpNNSAyLjJWNEg0YS41LjUgMCAwIDAtLjUuNTZsMS4zNSAxMS42N0EyIDIgMCAwIDAgNi44NCAxOGg2LjMyYTIgMiAwIDAgMCAxLjk5LTEuNzdMMTYuNSA0LjU2QS41LjUgMCAwIDAgMTYgNGgtMVYyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zQzkuNjcgMSA5IDEuNjcgOSAyLjV2LjhMNy4wNiAxLjM0QTEuMiAxLjIgMCAwIDAgNSAyLjIxWk0xMCA0VjIuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41VjRoLTRaTTQuNTYgNWgxMC44OGwtMS4yOCAxMS4xMWExIDEgMCAwIDEtMSAuODlINi44NGExIDEgMCAwIDEtMS0uODlMNC41NiA1Wm02Ljc0IDIuNzVjLS41OC0xLTIuMDItMS0yLjYgMGwtLjQ1Ljc4YS41LjUgMCAwIDAgLjg3LjVsLjQ1LS43OGEuNS41IDAgMCAxIC44NiAwbC40NS43OGEuNS41IDAgMCAwIC44Ny0uNWwtLjQ1LS43OFptLjg2IDMuNS0uMS0uMTlhLjUuNSAwIDAgMSAuODYtLjVsLjExLjE5YTEuNSAxLjUgMCAwIDEtMS4zIDIuMjVIMTFhLjUuNSAwIDAgMSAwLTFoLjczYS41LjUgMCAwIDAgLjQzLS43NVpNOSAxMmEuNS41IDAgMCAxIDAgMWgtLjczYTEuNSAxLjUgMCAwIDEtMS4zLTIuMjVsLjEtLjE5YS41LjUgMCAwIDEgLjg3LjVsLS4xLjE5YS41LjUgMCAwIDAgLjQzLjc1SDlaXCJdKTtcbmV4cG9ydCBjb25zdCBCaW5kZXJUcmlhbmdsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCaW5kZXJUcmlhbmdsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMmgtLjVhLjUuNSAwIDAgMCAwIDFIM3YzaC0uNWEuNS41IDAgMCAwIDAgMUgzdjNoLS41YS41LjUgMCAwIDAgMCAxSDNjMCAxLjEuOSAyIDIgMmgxLjM1TDE0IDUuOVY0YTIgMiAwIDAgMC0yLTJINVptMS41IDRoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVptMTAuMTctMS43M2EuNzUuNzUgMCAwIDEgMS4zMy40OFYxNmEyIDIgMCAwIDEtMiAySDYuNzVhLjc1Ljc1IDAgMCAxLS41Ny0xLjIzbDEwLjUtMTIuNVpNMTUgMTQuMjV2LTIuNjRjMC0uMjMtLjI5LS4zNC0uNDQtLjE2bC0yLjY0IDMuMTRhLjI1LjI1IDAgMCAwIC4yLjQxaDIuMTNjLjQxIDAgLjc1LS4zMy43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBCaW5kZXJUcmlhbmdsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmluZGVyVHJpYW5nbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNGMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnYxLjlsLTEgMS4xOVY0YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxaC41YS41LjUgMCAwIDEgMCAxSDR2M2guNWEuNS41IDAgMCAxIDAgMUg0djNoLjVhLjUuNSAwIDAgMSAwIDFINGExIDEgMCAwIDAgMSAxaDIuMmwtLjg1IDFINWEyIDIgMCAwIDEtMi0yaC0uNWEuNS41IDAgMCAxIDAtMUgzVjloLS41YS41LjUgMCAwIDEgMC0xSDNWNWgtLjVhLjUuNSAwIDAgMSAwLTFIM1ptMTIgNy42MWMwLS4yMy0uMjktLjM0LS40NC0uMTZsLTIuNjQgMy4xNGEuMjUuMjUgMCAwIDAgLjIuNDFoMi4xM2MuNDEgMCAuNzUtLjMzLjc1LS43NXYtMi42NFptMy02Ljg2YS43NS43NSAwIDAgMC0xLjMzLS40OGwtMTAuNSAxMi41QS43NS43NSAwIDAgMCA2Ljc2IDE4SDE2YTIgMiAwIDAgMCAyLTJWNC43NVptLTEgLjY5VjE2YTEgMSAwIDAgMS0xIDFINy4yOWw5LjctMTEuNTZaTTYgNi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQmx1ZXRvb3RoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JsdWV0b290aEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjQ2IDIuMDZjLjI4LS4xMi42LS4wNS44Mi4xNmw0IDRhLjc1Ljc1IDAgMCAxLS4wNiAxLjExTDEwLjk0IDEwbDMuMjggMi42N2EuNzUuNzUgMCAwIDEgLjA2IDEuMTFsLTQgNEEuNzUuNzUgMCAwIDEgOSAxNy4yNXYtNS42N2wtMi43OCAyLjI1YS43NS43NSAwIDAgMS0uOTQtMS4xNkw4LjU2IDEwIDUuMjggNy4zM2EuNzUuNzUgMCAxIDEgLjk0LTEuMTZMOSA4LjQyVjIuNzVjMC0uMy4xOC0uNTguNDYtLjdabTEuMDQgOS41MnYzLjg2bDIuMTMtMi4xMy0yLjEzLTEuNzNabTAtMy4xNiAyLjEzLTEuNzMtMi4xMy0yLjEzdjMuODZaXCJdKTtcbmV4cG9ydCBjb25zdCBCbHVldG9vdGhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JsdWV0b290aFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zIDIuMDRhLjUuNSAwIDAgMSAuNTUuMWw0IDRhLjUuNSAwIDAgMS0uMDIuNzRMMTAuMjYgMTBsMy41NyAzLjEyYS41LjUgMCAwIDEgLjAyLjczbC00IDRBLjUuNSAwIDAgMSA5IDE3LjV2LTYuNGwtMy4xNyAyLjc4YS41LjUgMCAwIDEtLjY2LS43Nkw4Ljc0IDEwIDUuMTcgNi44OGEuNS41IDAgMCAxIC42Ni0uNzZMOSA4LjlWMi41YzAtLjIuMTItLjM4LjMtLjQ2Wm0uNyA5LjA2djUuMmwyLjc3LTIuNzhMMTAgMTEuMVptMC0yLjIgMi43Ny0yLjQyTDEwIDMuN1Y4LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBCbHVldG9vdGhDb25uZWN0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQmx1ZXRvb3RoQ29ubmVjdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjI4IDIuMjJBLjc1Ljc1IDAgMCAwIDkgMi43NXY1LjY3TDYuMjIgNi4xN2EuNzUuNzUgMCAxIDAtLjk0IDEuMTZMOC41NiAxMGwtMy4yOCAyLjY3YS43NS43NSAwIDAgMCAuOTQgMS4xNkw5IDExLjU4djUuNjdhLjc1Ljc1IDAgMCAwIDEuMjguNTNsNC00YS43NS43NSAwIDAgMC0uMDYtMS4xMUwxMC45NCAxMGwzLjI4LTIuNjdhLjc1Ljc1IDAgMCAwIC4wNi0xLjExbC00LTRabS4yMiAxMy4yMnYtMy44NmwyLjEzIDEuNzMtMi4xMyAyLjEzWm0yLjEzLTguNzVMMTAuNSA4LjQyVjQuNTZsMi4xMyAyLjEzWk00IDEwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMTMgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBCbHVldG9vdGhDb25uZWN0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JsdWV0b290aENvbm5lY3RlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zIDIuMDRhLjUuNSAwIDAgMSAuNTUuMWw0IDRhLjUuNSAwIDAgMS0uMDIuNzRMMTAuMjYgMTBsMy41NyAzLjEyYS41LjUgMCAwIDEgLjAyLjczbC00IDRBLjUuNSAwIDAgMSA5IDE3LjV2LTYuNGwtMy4xNyAyLjc4YS41LjUgMCAwIDEtLjY2LS43Nkw4Ljc0IDEwIDUuMTcgNi44OGEuNS41IDAgMCAxIC42Ni0uNzZMOSA4LjlWMi41YzAtLjIuMTItLjM4LjMtLjQ2Wm0uNyA5LjA2djUuMmwyLjc3LTIuNzhMMTAgMTEuMVptMC0yLjIgMi43Ny0yLjQyTDEwIDMuN1Y4LjlabTcgMS4xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNMyAxMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBCbHVldG9vdGhEaXNhYmxlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCbHVldG9vdGhEaXNhYmxlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy42OCAxNC4zOCAzLjQ3IDMuNDdhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43bDYuODEgNi44Mi0zLjY4IDNhLjc1Ljc1IDAgMCAwIC45NCAxLjE2TDkgMTEuNTh2NS42N2EuNzUuNzUgMCAwIDAgMS4yOC41M2wzLjQtMy40Wm0tMS4yMS0xLjIuMTUuMTQtMi4xMiAyLjEydi0zLjg2bDEuOTcgMS42Wm0xLjc1LTUuODVMMTEuNiA5LjQ3IDEwLjUzIDguNGwyLjEtMS43LTIuMTMtMi4xNHYzLjgyTDkgNi44OFYyLjc1YS43NS43NSAwIDAgMSAxLjI4LS41M2w0IDRhLjc1Ljc1IDAgMCAxLS4wNiAxLjExWlwiXSk7XG5leHBvcnQgY29uc3QgQmx1ZXRvb3RoRGlzYWJsZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JsdWV0b290aERpc2FibGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMy41IDE0LjIgMy42NSAzLjY1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w5IDkuNzF2LjA2bC0zLjgzIDMuMzVhLjUuNSAwIDAgMCAuNjYuNzZMOSAxMS4xdjYuNGEuNS41IDAgMCAwIC44NS4zNWwzLjY1LTMuNjRabS4zMy03LjMyLTIuNTggMi4yNS0uNy0uNyAyLjIyLTEuOTVMMTAgMy43djQuMTdsLTEtMVYyLjVhLjUuNSAwIDAgMSAuODUtLjM1bDQgNGEuNS41IDAgMCAxLS4wMi43M1pNMTAgMTEuMWwyLjc3IDIuNDJMMTAgMTYuM1YxMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQmx1ZXRvb3RoU2VhcmNoaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JsdWV0b290aFNlYXJjaGluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4yOCAyLjIyQS43NS43NSAwIDAgMCA5IDIuNzV2NS42N0w2LjIyIDYuMTdhLjc1Ljc1IDAgMSAwLS45NCAxLjE2TDguNTYgMTBsLTMuMjggMi42N2EuNzUuNzUgMCAwIDAgLjk0IDEuMTZMOSAxMS41OHY1LjY3YS43NS43NSAwIDAgMCAxLjI4LjUzbDQtNGEuNzUuNzUgMCAwIDAtLjA2LTEuMTFMMTAuOTQgMTBsMy4yOC0yLjY3YS43NS43NSAwIDAgMCAuMDYtMS4xMWwtNC00Wm0uMjIgMTMuMjJ2LTMuODZsMi4xMyAxLjczLTIuMTMgMi4xM1ptMi4xMy04Ljc1TDEwLjUgOC40MlY0LjU2bDIuMTMgMi4xM1ptNS42Mi0uMDFhLjc1Ljc1IDAgMCAwLTEuMzUuNjQgNi4yMiA2LjIyIDAgMCAxIDAgNS4zNi43NS43NSAwIDAgMCAxLjM1LjY0IDcuNzIgNy43MiAwIDAgMCAwLTYuNjRabS0zIDEuMTNjLjQtLjE0LjgyLjA3Ljk2LjQ2YTUuMjQgNS4yNCAwIDAgMSAwIDMuNDYuNzUuNzUgMCAwIDEtMS40Mi0uNSAzLjc0IDMuNzQgMCAwIDAgMC0yLjQ3Ljc1Ljc1IDAgMCAxIC40Ni0uOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBCbHVldG9vdGhTZWFyY2hpbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JsdWV0b290aFNlYXJjaGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS44NSAyLjE1QS41LjUgMCAwIDAgOSAyLjV2Ni40TDUuODMgNi4xMmEuNS41IDAgMSAwLS42Ni43Nkw4Ljc0IDEwbC0zLjU3IDMuMTJhLjUuNSAwIDAgMCAuNjYuNzZMOSAxMS4xdjYuNGEuNS41IDAgMCAwIC44NS4zNWw0LTRhLjUuNSAwIDAgMC0uMDItLjczTDEwLjI2IDEwbDMuNTctMy4xMmEuNS41IDAgMCAwIC4wMi0uNzNsLTQtNFpNMTAgMTYuMjlWMTEuMWwyLjc3IDIuNDJMMTAgMTYuM1ptMi43Ny05LjgxTDEwIDguOVYzLjdsMi43NyAyLjc4Wm00LjI2LjI1YS41LjUgMCAxIDAtLjg0LjU1IDUgNSAwIDAgMSAwIDUuNDUuNS41IDAgMCAwIC44NC41NCA2IDYgMCAwIDAgMC02LjU0Wm0tMi4yOSAxLjAzYS41LjUgMCAwIDEgLjY5LjE3IDQgNCAwIDAgMSAwIDQuMTMuNS41IDAgMSAxLS44Ni0uNTEgMyAzIDAgMCAwIDAtMy4xLjUuNSAwIDAgMSAuMTctLjY5WlwiXSk7XG5leHBvcnQgY29uc3QgQmx1ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCbHVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAwIDUuMyAxNEgxMHYtMWg2LjI1YTggOCAwIDAgMCAuNjgtMUgxMHYtMWg3LjQyYy4xMy0uMzIuMjQtLjY2LjMzLTFIMTB2LTFoNy45NGMuMDQtLjMzLjA2LS42Ni4wNi0xaC04VjloNy45NGMtLjA0LS4zNC0uMS0uNjctLjItMUgxMFY3aDcuNDJjLS4xNC0uMzUtLjMtLjY4LS40OS0xSDEwVjVoNi4yNWMtLjMtLjM2LS42MS0uNy0uOTYtMUgxMFYzaDMuODhBNy45NiA3Ljk2IDAgMCAwIDEwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBCbHVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCbHVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMCA1LjMgMTRIMTB2MWE3IDcgMCAxIDEgMC0xNGgzLjg4QTcuOTYgNy45NiAwIDAgMCAxMCAyWm0wIDJoNS4zYy4zNC4zLjY2LjY0Ljk1IDFIMTBWNFptNi45MyAySDEwdjFoNy40MmMtLjE0LS4zNS0uMy0uNjgtLjQ5LTFaTTEwIDhoNy43NWMuMDguMzMuMTUuNjYuMTkgMUgxMFY4Wm04IDJoLTh2MWg3Ljk0Yy4wNC0uMzMuMDYtLjY2LjA2LTFabS04IDJoNy43NWMtLjA5LjM0LS4yLjY4LS4zMyAxSDEwdi0xWm02LjkzIDJIMTB2MWg2LjI1YTggOCAwIDAgMCAuNjgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvYXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvYXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNSAzdjRIM1Y2YTMgMyAwIDAgMSAzLTNoMy41Wm0xIDB2OUgxN1Y2YTMgMyAwIDAgMC0zLTNoLTMuNVpNMTcgMTNoLTYuNXY0SDE0YTMgMyAwIDAgMCAzLTN2LTFabS03LjUgNFY4SDN2NmEzIDMgMCAwIDAgMyAzaDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvYXJkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2MS4wNkw5LjUgN1Y0SDZabTQuNSAwdjhIMTZWNmEyIDIgMCAwIDAtMi0yaC0zLjVabTUuNSA5aC01LjV2M0gxNGEyIDIgMCAwIDAgMi0ydi0xWm0tNi41IDNWOEw0IDguMDZWMTRjMCAxLjEuOSAyIDIgMmgzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb2FyZEdhbWVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvYXJkR2FtZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuOTUgNS41YTIuNiAyLjYgMCAwIDEgLjk4LjE4IDIuNSAyLjUgMCAxIDEtMi4yOSA0LjQybC40NSAxLjg2Yy4yLjc4LS40IDEuNTQtMS4yMSAxLjU0aC0uNzZjLS44MSAwLTEuNDEtLjc2LTEuMjItMS41NWwuNDUtMS44NWEyLjQ4IDIuNDggMCAwIDEtMS40MS40IDIgMiAwIDAgMC0uNy0xLjA3IDMuOTkgMy45OSAwIDAgMC0uNC0zLjY0IDIuNSAyLjUgMCAwIDEgMS4yLS4yOSAyLjUgMi41IDAgMCAxIDIuNDYtMyAyLjUgMi41IDAgMCAxIDIuNDUgM1pNNi41IDVhMyAzIDAgMCAwLTIuMjQgNUg0YTEgMSAwIDEgMCAwIDJoLjUyYTUuNzYgNS43NiAwIDAgMS0xLjkgMy4zYy0uMzUuMjgtLjYyLjczLS42MiAxLjI1IDAgLjguNjUgMS40NSAxLjQ1IDEuNDVoNi4xYy44IDAgMS40NS0uNjUgMS40NS0xLjQ1IDAtLjUyLS4yNy0uOTctLjYyLTEuMjZBNS43NiA1Ljc2IDAgMCAxIDguNDggMTJIOWExIDEgMCAxIDAgMC0yaC0uMjZBMyAzIDAgMCAwIDYuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQm9hcmRHYW1lc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9hcmRHYW1lc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSAzYTIgMiAwIDAgMC0xLjk2IDIuNC41LjUgMCAwIDEtLjU0LjYgMiAyIDAgMCAwLS45Mi4yMiA0IDQgMCAwIDAtLjU1LS44M2MuMy0uMTcuNjItLjI5Ljk3LS4zNVY1YTMgMyAwIDEgMSA2IDB2LjA0YTMgMyAwIDEgMS0xLjE0IDUuOWwuMjIuOWExLjc1IDEuNzUgMCAwIDEtMS43IDIuMTZoLS43NmExLjc1IDEuNzUgMCAwIDEtMS43LTIuMTZsLjQ1LTEuODZhLjUuNSAwIDEgMSAuOTcuMjRsLS40NSAxLjg1Yy0uMTIuNDcuMjQuOTMuNzMuOTNoLjc2Yy40OSAwIC44NC0uNDUuNzMtLjkzbC0uNDUtMS44NWEuNS41IDAgMCAxIC43Ni0uNTRBMiAyIDAgMSAwIDE1Ljk2IDZhLjUuNSAwIDAgMS0uNS0uNkEyIDIgMCAwIDAgMTMuNSAzWm0tOSA1YTIgMiAwIDEgMSAzLjYgMS4yLjUuNSAwIDAgMCAuNC44SDlhLjUuNSAwIDAgMSAwIDFINy45YS41LjUgMCAwIDAtLjUuNTYgNi44NiA2Ljg2IDAgMCAwIDIuMzQgNC41Yy4xNy4xNS4yNi4zMy4yNi40OSAwIC4yNS0uMi40NS0uNDUuNDVoLTYuMWEuNDUuNDUgMCAwIDEtLjQ1LS40NWMwLS4xNi4wOS0uMzQuMjYtLjQ5YTYuODYgNi44NiAwIDAgMCAyLjM0LTQuNS41LjUgMCAwIDAtLjUtLjU2SDRhLjUuNSAwIDAgMSAwLTFoLjVhLjUuNSAwIDAgMCAuNC0uOGMtLjI1LS4zMy0uNC0uNzUtLjQtMS4yWm0yLTNhMyAzIDAgMCAwLTIuODIgNC4wM0ExLjUgMS41IDAgMCAwIDQgMTJoLjUyYTUuNzYgNS43NiAwIDAgMS0xLjkgMy4zYy0uMzUuMjgtLjYyLjczLS42MiAxLjI1IDAgLjguNjUgMS40NSAxLjQ1IDEuNDVoNi4xYy44IDAgMS40NS0uNjUgMS40NS0xLjQ1IDAtLjUyLS4yNy0uOTctLjYyLTEuMjZBNS43NiA1Ljc2IDAgMCAxIDguNDggMTJIOWExLjUgMS41IDAgMCAwIC4zMi0yLjk3QTMgMyAwIDAgMCA2LjUgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvYXJkSGVhcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9hcmRIZWFydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjUgN1YzSDZhMyAzIDAgMCAwLTMgM3YxaDYuNVptMS4yNSA4LjQxIDMuNDMgMy40NmMuMTguMTcuNDYuMTcuNjQgMGwzLjQzLTMuNDZBMi42IDIuNiAwIDAgMCAxNyAxMS4wNmEyLjU1IDIuNTUgMCAwIDAtMi4zOC43bC0uMTIuMTItLjEyLS4xMmEyLjU1IDIuNTUgMCAwIDAtMy44NC4yNCAyLjYgMi42IDAgMCAwIC4yMSAzLjQxWk05LjUgMTd2LTEuNThhMy42IDMuNiAwIDAgMSAwLTMuNjdWOEgzdjZhMyAzIDAgMCAwIDMgM2gzLjVabTUtNi40M2EzLjU1IDMuNTUgMCAwIDEgMi41LS41M1Y2YTMgMyAwIDAgMC0zLTNoLTMuNXY3LjY2YTMuNTUgMy41NSAwIDAgMSA0LS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvYXJkSGVhcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvYXJkSGVhcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g0LjkybC0uODgtLjg5YTMuNTMgMy41MyAwIDAgMS0uMS0uMTFINmEyIDIgMCAwIDEtMi0yVjguMDZMOS41IDh2My43NWEzLjU5IDMuNTkgMCAwIDEgMS0xLjA5VjRIMTRhMiAyIDAgMCAxIDIgMnY0LjAzYy4zMy0uMDQuNjctLjA0IDEgLjAxVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmgzLjV2M0w0IDcuMDZWNlptMTMgNS4wNmEyLjYgMi42IDAgMCAxIDEuMjUgNC4zNWwtMy40MyAzLjQ2YS40NS40NSAwIDAgMS0uNjQgMGwtMy40My0zLjQ2YTIuNiAyLjYgMCAwIDEtLjIxLTMuNDEgMi41NSAyLjU1IDAgMCAxIDMuODQtLjI0bC4xMi4xMi4xMi0uMTJhMi41NSAyLjU1IDAgMCAxIDIuMzgtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBCb2FyZFNwbGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvYXJkU3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2M2g4VjNINlptNSA3SDN2NGEzIDMgMCAwIDAgMyAzaDV2LTdabTMgN2gtMnYtNGg1djFhMyAzIDAgMCAxLTMgM1ptMy01aC01VjhoNXY0Wm0wLTVoLTVWM2gyYTMgMyAwIDAgMSAzIDN2MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvYXJkU3BsaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvYXJkU3BsaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTEgNHY0YzAgMS4xLjkgMiAyIDJoNXYtNkg0Wm03LTFWNEg2YTIgMiAwIDAgMC0yIDJ2M2g3Wm0xIDdoMmEyIDIgMCAwIDAgMi0ydi0xaC00djNabTQtOVY2YTIgMiAwIDAgMC0yLTJoLTJ2M2g0Wm0wIDFoLTR2NGg0VjhaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg5LjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xaDEwYTEgMSAwIDAgMCAxLTFWNGEyIDIgMCAwIDAtMi0ySDZabS43NSAyLjVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNWExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjVabTEgMHYxaDZWNUg3Wk00IDR2MTJjMCAxLjEuOSAyIDIgMmg5LjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xaDEwYTEgMSAwIDAgMCAxLTFWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMlptMTAtMWExIDEgMCAwIDEgMSAxdjExSDVWNGExIDEgMCAwIDEgMS0xaDhaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjUuMkE1LjUgNS41IDAgMCAwIDkuMiAxNkg1YTEgMSAwIDAgMCAxIDFoMy42Yy4xOC4zNi40LjcuNjYgMUg2YTIgMiAwIDAgMS0yLTJWNFptMTAuNSAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxNGgxLjVhLjUuNSAwIDAgMSAwIDFIMTV2MS41YS41LjUgMCAwIDEtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTR2LTEuNWMwLS4yOC4yMi0uNS41LS41Wk02Ljc1IDRhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWMwIC40MS4zNC43NS43NS43NWg2LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCAzSDZhMSAxIDAgMCAwLTEgMXYxMWg0LjAyYy4wMy4zNC4xLjY4LjE5IDFINWExIDEgMCAwIDAgMSAxaDMuNmMuMTguMzYuNC43LjY2IDFINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NS4yYy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNGExIDEgMCAwIDAtMS0xWk02IDV2MWExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxWm0xIDBoNnYxSDdWNVptMTIgOS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0Fycm93Q2xvY2t3aXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tBcnJvd0Nsb2Nrd2lzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAyLjk4YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWguOGEzLjUgMy41IDAgMSAwIDEuNyAzIC41LjUgMCAwIDEgMSAwIDQuNSA0LjUgMCAxIDEtMi0zLjc0Vi45OGEuNS41IDAgMCAxIC41LS41Yy4yOCAwIC41LjIyLjUuNXYyWk05LjAyIDZBNS41IDUuNSAwIDAgMCAxNiAxMC43N1YxNWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAwIDEgMWg5LjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg0LjI0YTUuNSA1LjUgMCAwIDAtMS4yMiA0WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0Fycm93Q2xvY2t3aXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rQXJyb3dDbG9ja3dpc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjUgMy40OGEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtMSAwdi43NmE0LjUgNC41IDAgMSAwIDIgMy43NC41LjUgMCAwIDAtMSAwIDMuNSAzLjUgMCAxIDEtMS43LTNoLS44YS41LjUgMCAwIDAgMCAxaDJabS0xLjUgNy4zYy0uMzIuMDgtLjY2LjE1LTEgLjE4VjE1SDVWNGExIDEgMCAwIDEgMS0xaDMuNTljLjE4LS4zNi40LS43LjY1LTFINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xdi00LjIzWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0Nsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMCAxIDFoOS41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMlY0Wm02IDlhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4Wm0tLjUtNmMuMjggMCAuNS4yMi41LjVWOWgxYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tDbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0djEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTEwLTFhMSAxIDAgMCAxIDEgMXYxMUg1VjRhMSAxIDAgMCAxIDEtMWg4Wm0tNCAzYTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlpNNiA5YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptNC0xLjVhLjUuNSAwIDAgMC0xIDB2MmMwIC4yOC4yMi41LjUuNUgxMWEuNS41IDAgMCAwIDAtMWgtMVY3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQ29pbnNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0NvaW5zRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAwIDEgMWg5LjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0yVjRabTYgMWMtLjc2IDAtMS40Ny4xNi0yLjAyLjQ4QzcuNDMgNS44IDcgNi4zMSA3IDdjMCAuNjkuNDMgMS4yLjk4IDEuNTIuNTUuMzIgMS4yNi40OCAyLjAyLjQ4czEuNDctLjE2IDIuMDItLjQ4Yy41NS0uMzIuOTgtLjgzLjk4LTEuNTIgMC0uNjktLjQzLTEuMi0uOTgtMS41MkE0LjA4IDQuMDggMCAwIDAgMTAgNVpNNy4wMyA5LjAzYS43OS43OSAwIDAgMC0uMDMuMjJjMCAuMy4xOC41NS4zMy43MS4xNy4xOC40LjM2LjY1LjVhNC4xIDQuMSAwIDAgMCA0LjA0IDBjLjI2LS4xNC40OC0uMzIuNjUtLjUuMTUtLjE2LjMzLS40MS4zMy0uNzFhLjc5Ljc5IDAgMCAwLS4wMy0uMjJsLS40NS4zYTUuMSA1LjEgMCAwIDEtNS40OS0uM1ptMCAyYS43OS43OSAwIDAgMC0uMDMuMjJjMCAuMy4xOC41NS4zMy43MS4xNy4xOC40LjM2LjY1LjVhNC4xIDQuMSAwIDAgMCA0LjA0IDBjLjI2LS4xNC40OC0uMzIuNjUtLjUuMTUtLjE2LjMzLS40MS4zMy0uNzFhLjc5Ljc5IDAgMCAwLS4wMy0uMjJsLS40NS4zYTUuMSA1LjEgMCAwIDEtNS40OS0uM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tDb2luc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0NvaW5zUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDE2VjRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMCAxIDFoOS41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMlpNMTUgNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYxMWgxMFY0Wm0tOCA3LjI1YzAtLjA4LjAxLS4xNS4wMy0uMjJsLjQ1LjNhNS4xIDUuMSAwIDAgMCA1LjQ5LS4zYy4wMi4wNy4wMy4xNC4wMy4yMiAwIC4zLS4xOC41NS0uMzMuNzEtLjE3LjE4LS40LjM2LS42NS41YTQuMSA0LjEgMCAwIDEtNC4wNCAwIDIuOCAyLjggMCAwIDEtLjY1LS41IDEuMSAxLjEgMCAwIDEtLjMzLS43MVptLjAzLTIuMjJhLjc5Ljc5IDAgMCAwLS4wMy4yMmMwIC4zLjE4LjU1LjMzLjcxLjE3LjE4LjQuMzYuNjUuNWE0LjEgNC4xIDAgMCAwIDQuMDQgMGMuMjYtLjE0LjQ4LS4zMi42NS0uNS4xNS0uMTYuMzMtLjQxLjMzLS43MWEuNzkuNzkgMCAwIDAtLjAzLS4yMmwtLjQ1LjNhNS4xIDUuMSAwIDAgMS01LjQ5LS4zWk04IDdjMC0uMjEuMTMtLjQ1LjQ4LS42Ni4zNi0uMi45LS4zNCAxLjUyLS4zNC42MyAwIDEuMTYuMTQgMS41Mi4zNC4zNS4yMS40OC40NS40OC42NiAwIC4yMS0uMTMuNDUtLjQ4LjY2LS4zNi4yLS45LjM0LTEuNTIuMzRhMy4xIDMuMSAwIDAgMS0xLjUyLS4zNEM4LjEzIDcuNDUgOCA3LjIgOCA3Wm0yLTJjLS43NiAwLTEuNDcuMTYtMi4wMi40OEM3LjQzIDUuOCA3IDYuMzEgNyA3YzAgLjY5LjQzIDEuMi45OCAxLjUyLjU1LjMyIDEuMjYuNDggMi4wMi40OHMxLjQ3LS4xNiAyLjAyLS40OGMuNTUtLjMyLjk4LS44My45OC0xLjUyIDAtLjY5LS40My0xLjItLjk4LTEuNTJBNC4wOCA0LjA4IDAgMCAwIDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQ29tcGFzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rQ29tcGFzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMCAxIDFoOS41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMlY0Wm02IC41YS41LjUgMCAwIDAtLjUuNXYxLjA2YTIgMiAwIDAgMC0uNzQgMy41TDcuNTQgMTIuM2EuNS41IDAgMCAwIC45Mi40bDEuMjEtMi43M2EyLjAxIDIuMDEgMCAwIDAgLjY2IDBsMS4yMSAyLjczYS41LjUgMCAxIDAgLjkyLS40bC0xLjIyLTIuNzNhMiAyIDAgMCAwLS43NC0zLjVWNWEuNS41IDAgMCAwLS41LS41Wm0tLjUgMi42M2ExIDEgMCAxIDAgMSAxLjc0IDEgMSAwIDAgMC0xLTEuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQ29tcGFzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0NvbXBhc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgMTZWNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAwIDEgMWg5LjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0yWk0xNSA0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjExaDEwVjRabS01IC41Yy4yOCAwIC41LjIyLjUuNXYxLjA2YTIgMiAwIDAgMSAuNzQgMy41bDEuMjIgMi43NGEuNS41IDAgMCAxLS45Mi40bC0xLjIxLTIuNzNhMi4wMSAyLjAxIDAgMCAxLS42NiAwTDguNDYgMTIuN2EuNS41IDAgMSAxLS45Mi0uNGwxLjIyLTIuNzNhMiAyIDAgMCAxIC43NC0zLjVWNWMwLS4yOC4yMi0uNS41LS41Wm0tLjUgMi42M2ExIDEgMCAxIDAgMSAxLjc0IDEgMSAwIDAgMC0xLTEuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rQ29udGFjdHNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0NvbnRhY3RzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm00IDExYy0yLjE0IDAtMy0uOTQtMy0xLjg4QzcgMTAuNSA3LjU4IDEwIDguMjkgMTBoMy40MmMuNzEgMCAxLjI5LjUgMS4yOSAxLjEzIDAgLjkzLS44NiAxLjg3LTMgMS44N1ptMS41LTUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tDb250YWN0c1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0NvbnRhY3RzUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDR2MTJjMCAxLjEuOSAyIDIgMmg5LjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xaDEwYTEgMSAwIDAgMCAxLTFWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMlptMTAtMWExIDEgMCAwIDEgMSAxdjExSDVWNGExIDEgMCAwIDEgMS0xaDhabS00IDEwYzIuMTQgMCAzLS45NCAzLTEuODggMC0uNjItLjU4LTEuMTItMS4yOS0xLjEySDguM0M3LjU4IDEwIDcgMTAuNSA3IDExLjEzYzAgLjkzLjg2IDEuODcgMyAxLjg3Wm0xLjUtNS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0RhdGFiYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tEYXRhYmFzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NC4xM0E4Ljg4IDguODggMCAwIDAgMTQuNSA4Yy0xLjM4IDAtMi42OC4zLTMuNjcuODYtLjkuNS0xLjc0IDEuMzMtMS44MiAyLjQ2TDkgMTEuM1YxNkg1YTEgMSAwIDAgMCAxIDFoMy4wNWMuMDguMzcuMjQuNy40NSAxSDZhMiAyIDAgMCAxLTItMlY0Wm0yLjc1IDBhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWMwIC40MS4zNC43NS43NS43NWg2LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVaTTE3IDkuNDJBNy44NiA3Ljg2IDAgMCAwIDE0LjUgOWMtMi40OSAwLTQuNSAxLjEyLTQuNSAyLjVzMi4wMSAyLjUgNC41IDIuNSA0LjUtMS4xMiA0LjUtMi41YzAtLjg3LS44LTEuNjMtMi0yLjA4Wm0xLjE3IDQuNzJjLTEgLjU1LTIuMjkuODYtMy42Ny44NnMtMi42OC0uMy0zLjY3LS44NmMtLjI5LS4xNi0uNTgtLjM2LS44My0uNTl2Mi45NWMwIDEuMzggMi4wMSAyLjUgNC41IDIuNXM0LjUtMS4xMiA0LjUtMi41YTI5NTkuMDkgMjk1OS4wOSAwIDAgMSAwLTIuOTVjLS4yNS4yMy0uNTQuNDMtLjgzLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rRGF0YWJhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tEYXRhYmFzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA1YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNVptMSAwdjFoNlY1SDdaTTQgNHYxMmMwIDEuMS45IDIgMiAyaDMuNWMtLjIxLS4zLS4zNy0uNjMtLjQ1LTFINmExIDEgMCAwIDEtMS0xaDR2LTFINVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjQuMDFjLjM0LjAyLjY4LjA2IDEgLjEyVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTEzIDUuNDJBNy44NiA3Ljg2IDAgMCAwIDE0LjUgOWMtMi40OSAwLTQuNSAxLjEyLTQuNSAyLjVzMi4wMSAyLjUgNC41IDIuNSA0LjUtMS4xMiA0LjUtMi41YzAtLjg3LS44LTEuNjMtMi0yLjA4Wm0xLjE3IDQuNzJjLTEgLjU1LTIuMjkuODYtMy42Ny44NnMtMi42OC0uMy0zLjY3LS44NmMtLjI5LS4xNi0uNTgtLjM2LS44My0uNTl2Mi45NWMwIDEuMzggMi4wMSAyLjUgNC41IDIuNXM0LjUtMS4xMiA0LjUtMi41YTI5NTkuMDkgMjk1OS4wOSAwIDAgMSAwLTIuOTVjLS4yNS4yMy0uNTQuNDMtLjgzLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rRGVmYXVsdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rRGVmYXVsdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMCAxIDFoOS41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMlY0Wm0yLjc1IDBhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWMwIC40MS4zNC43NS43NS43NWg2LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NS4yQTUuNSA1LjUgMCAwIDAgOS4yIDE2SDVhMSAxIDAgMCAwIDEgMWgzLjZjLjE4LjM2LjQuNy42NiAxSDZhMiAyIDAgMCAxLTItMlY0Wm0yLjc1IDBhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWMwIC40MS4zNC43NS43NS43NWg2LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0Rpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDVhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY1Wm0xIDB2MWg2VjVIN1pNNCA0djEyYzAgMS4xLjkgMiAyIDJoNC4yNmE1LjUgNS41IDAgMCAxLS42Ni0xSDZhMSAxIDAgMCAxLTEtMWg0LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg1VjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NS4wMmMuMzQuMDMuNjguMSAxIC4xOVY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAyWm0xNSAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tFeGNsYW1hdGlvbk1hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0V4Y2xhbWF0aW9uTWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMCAxIDFoOS41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMlY0Wm02IDFhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMCAxIDB2LTRBLjUuNSAwIDAgMCAxMCA1Wm0uNzUgNy4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0V4Y2xhbWF0aW9uTWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0V4Y2xhbWF0aW9uTWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0djEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTEwLTFhMSAxIDAgMCAxIDEgMXYxMUg1VjRhMSAxIDAgMCAxIDEtMWg4Wm0tNCAyYy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtMSAwdi00YzAtLjI4LjIyLS41LjUtLjVabTAgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rR2xvYmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0dsb2JlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm00IDEwLjUtLjA0LS4wMmEuNjIuNjIgMCAwIDEtLjE1LS4xNCAyLjc2IDIuNzYgMCAwIDEtLjQtLjgyQTkuNCA5LjQgMCAwIDEgOS4wMSA5aDEuOThhOS40IDkuNCAwIDAgMS0uNCAyLjUyYy0uMTMuMzgtLjI3LjY1LS40LjgyYS42Mi42MiAwIDAgMS0uMTUuMTQuMTUuMTUgMCAwIDEtLjAzLjAySDEwWk0xMy45NyA5YTQgNCAwIDAgMS0yLjYgMy4yNmwuMTctLjQyYy4yNS0uNzYuNDEtMS43NS40NS0yLjg0aDEuOThabTAtMWgtMS45OGExMC40MyAxMC40MyAwIDAgMC0uNjEtMy4yNkE0IDQgMCAwIDEgMTMuOTcgOFptLTUuMzUgNC4yNkE0IDQgMCAwIDEgNi4wMyA5aDEuOThhMTAuNDMgMTAuNDMgMCAwIDAgLjYxIDMuMjZaTTYuMDMgOGE0IDQgMCAwIDEgMi42LTMuMjZsLS4xNy40MmMtLjI1Ljc2LS40MSAxLjc1LS40NSAyLjg0SDYuMDNaTTEwIDQuNWwuMDQuMDJjLjA0LjAyLjA5LjA2LjE1LjE0LjEzLjE3LjI3LjQ0LjQuODIuMjEuNjQuMzYgMS41Mi40IDIuNTJIOS4wMWMuMDQtMSAuMTktMS44OC40LTIuNTIuMTMtLjM4LjI3LS42NS40LS44MmEuNjIuNjIgMCAwIDEgLjE1LS4xNC4xNS4xNSAwIDAgMSAuMDMtLjAySDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0dsb2JlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rR2xvYmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgMTZWNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAwIDEgMWg5LjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0yWk0xNSA0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjExaDEwVjRaTTcuMDQgOGguOTdjLjA1LS43Ny4yLTEuNDkuNDItMi4wNkEzIDMgMCAwIDAgNy4wNCA4Wk02IDguNWE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTYuOTYtLjVhMyAzIDAgMCAwLTEuNC0yLjA2Yy4yMy41Ny4zOCAxLjI5LjQzIDIuMDZoLjk3Wm0tLjk3IDFjLS4wNS43Ny0uMiAxLjQ5LS40MiAyLjA2QTMgMyAwIDAgMCAxMi45NiA5aC0uOTdabS0xLTFhNS41NiA1LjU2IDAgMCAwLS4zOS0xLjc4IDEuODggMS44OCAwIDAgMC0uMzctLjU5Yy0uMTEtLjExLS4yLS4xMy0uMjMtLjEzLS4wNCAwLS4xMi4wMi0uMjMuMTMtLjEyLjEyLS4yNS4zMS0uMzcuNi0uMi40NS0uMzQgMS4wNi0uMzggMS43N2gxLjk2Wk05LjAxIDljLjA0LjcuMTggMS4zMi4zOCAxLjc4LjEyLjI4LjI1LjQ3LjM3LjU5LjExLjExLjIuMTMuMjMuMTMuMDQgMCAuMTItLjAyLjIzLS4xMy4xMi0uMTIuMjUtLjMxLjM3LS42LjItLjQ1LjM0LTEuMDYuMzgtMS43N0g5LjAyWm0tMSAwaC0uOThhMyAzIDAgMCAwIDEuNCAyLjA2QTYuNzUgNi43NSAwIDAgMSA4IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rSW5mb3JtYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va0luZm9ybWF0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm00Ljc1IDMuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS4yNSA2Ljc1YS41LjUgMCAwIDEtMSAwdi00YS41LjUgMCAwIDEgMSAwdjRaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rSW5mb3JtYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tJbmZvcm1hdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0djEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTEwLTFhMSAxIDAgMCAxIDEgMXYxMUg1VjRhMSAxIDAgMCAxIDEtMWg4Wm0tMy4yNSAyLjc1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS0uMjUgNi43NWEuNS41IDAgMCAxLTEgMHYtNGEuNS41IDAgMCAxIDEgMHY0WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va0xldHRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rTGV0dGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm00IDNjLjIgMCAuMzguMTIuNDYuM2wzIDdhLjUuNSAwIDAgMS0uOTIuNGwtLjczLTEuN0g4LjJsLS43MyAxLjdhLjUuNSAwIDAgMS0uOTItLjRsMy03QS41LjUgMCAwIDEgMTAgNVptLTEuMzggNWgyLjc2TDEwIDYuNzcgOC42MiAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tMZXR0ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tMZXR0ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNHYxMmMwIDEuMS45IDIgMiAyaDkuNWEuNS41IDAgMCAwIDAtMUg2YTEgMSAwIDAgMS0xLTFoMTBhMSAxIDAgMCAwIDEtMVY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAyWm0xMC0xYTEgMSAwIDAgMSAxIDF2MTFINVY0YTEgMSAwIDAgMSAxLTFoOFptLTQgMmMuMiAwIC4zOC4xMi40Ni4zbDMgN2EuNS41IDAgMCAxLS45Mi40bC0uNzMtMS43SDguMmwtLjczIDEuN2EuNS41IDAgMCAxLS45Mi0uNGwzLTdBLjUuNSAwIDAgMSAxMCA1Wm0tMS4zOCA1aDIuNzZMMTAgNi43NyA4LjYyIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va051bWJlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rTnVtYmVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNjEgOGguOThsLS4yIDFoLS45OGwuMi0xWk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkuNWEuNS41IDAgMSAwIDAtMUg2YTEgMSAwIDAgMS0xLTFoMTAuNWEuNS41IDAgMCAwIC41LS41VjRhMiAyIDAgMCAwLTItMkg2Wm01LjYgMy41MWEuNS41IDAgMCAxIC40LjU5bC0uMTkuOWguOTRhLjUuNSAwIDAgMSAwIDFoLTEuMTRsLS4yIDFoMS4xYS41LjUgMCAxIDEgMCAxaC0xLjNMMTEgMTEuMWEuNS41IDAgMCAxLS45OC0uMmwuMTgtLjloLS45OGwtLjIyIDEuMWEuNS41IDAgMSAxLS45OC0uMmwuMTgtLjloLS45NGEuNS41IDAgMCAxIDAtMUg4LjRsLjItMUg3LjVhLjUuNSAwIDAgMSAwLTFoMS4yOWwuMjItMS4xYS41LjUgMCAwIDEgLjk4LjJsLS4xOC45aC45OGwuMjItMS4xYS41LjUgMCAwIDEgLjU5LS4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tOdW1iZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tOdW1iZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgNy41YzAtLjI3LjIyLS41LjUtLjVoMS4yOWwuMjItMS4xYS41LjUgMCAwIDEgLjk4LjJsLS4xOC45aC45OGwuMjItMS4xYS41LjUgMCAwIDEgLjk4LjJsLS4xOC45aC45NGEuNS41IDAgMCAxIDAgMWgtMS4xNGwtLjIgMWgxLjFhLjUuNSAwIDEgMSAwIDFoLTEuM0wxMSAxMS4xYS41LjUgMCAwIDEtLjk4LS4ybC4xOC0uOWgtLjk4bC0uMjIgMS4xYS41LjUgMCAxIDEtLjk4LS4ybC4xOC0uOWgtLjk0YS41LjUgMCAwIDEgMC0xSDguNGwuMi0xSDcuNWEuNS41IDAgMCAxLS41LS41Wk0xMC40IDlsLjItMUg5LjZsLS4yIDFoLjk4Wk02IDJoOGEyIDIgMCAwIDEgMiAydjExLjVhLjUuNSAwIDAgMS0uNS41SDVhMSAxIDAgMCAwIDEgMWg5LjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMlpNNSAxNWgxMFY0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjExWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va09wZW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va09wZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMTYuMTRjLS41LjUzLTEuMjEuODYtMiAuODZIMy43NUMyLjc4IDE3IDIgMTYuMjIgMiAxNS4yNVY0Ljc1QzIgMy43OCAyLjc4IDMgMy43NSAzSDhjLjc5IDAgMS41LjMzIDIgLjg2LjUtLjUzIDEuMjEtLjg2IDItLjg2aDQuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MTAuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMTJjLS43OSAwLTEuNS0uMzMtMi0uODZaTTMuNSA0Ljc1djEwLjVjMCAuMTQuMTEuMjUuMjUuMjVIOGMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTguNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVIMy43NWEuMjUuMjUgMCAwIDAtLjI1LjI1Wm03LjI1IDkuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg0LjI1Yy4xNCAwIC4yNS0uMTEuMjUtLjI1VjQuNzVhLjI1LjI1IDAgMCAwLS4yNS0uMjVIMTJjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tPcGVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rT3BlblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMTZjLS40Ni42LTEuMTggMS0yIDFIMy41QTEuNSAxLjUgMCAwIDEgMiAxNS41di0xMUMyIDMuNjcgMi42NyAzIDMuNSAzSDhjLjgyIDAgMS41NC40IDIgMSAuNDYtLjYgMS4xOC0xIDItMWg0LjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTFjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEyYTIuNSAyLjUgMCAwIDEtMi0xWk0zIDQuNXYxMWMwIC4yOC4yMi41LjUuNUg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOUM5LjUgNC42NyA4LjgzIDQgOCA0SDMuNWEuNS41IDAgMCAwLS41LjVabTcuNSAxMGMwIC44My42NyAxLjUgMS41IDEuNWg0LjVhLjUuNSAwIDAgMCAuNS0uNXYtMTFhLjUuNSAwIDAgMC0uNS0uNUgxMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tPcGVuR2xvYmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va09wZW5HbG9iZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA0Ljc1djUuNWE1LjUgNS41IDAgMCAwLTEuNS0uODhWNC43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNUgxMmMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2NC43M2E1LjUgNS41IDAgMCAwLTEuNSAyLjM4VjUuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDMuNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxMC41YzAgLjE0LjExLjI1LjI1LjI1SDhjLjQyIDAgLjgtLjIgMS4wMi0uNTMuMDUuNTguMTkgMS4xMy40IDEuNjQtLjQyLjI1LS45LjM5LTEuNDIuMzlIMy43NUMyLjc4IDE3IDIgMTYuMjIgMiAxNS4yNVY0Ljc1QzIgMy43OCAyLjc4IDMgMy43NSAzSDhjLjc5IDAgMS41LjMzIDIgLjg2LjUtLjUzIDEuMjEtLjg2IDItLjg2aDQuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVaXCIsIFwiTTEzLjAxIDE0YTguOSA4LjkgMCAwIDEgLjU0LTIuODVjLjE3LS40Mi4zNS0uNzIuNTMtLjkxLjE5LS4yLjMzLS4yNC40Mi0uMjQuMSAwIC4yMy4wNS40Mi4yNC4xOC4xOS4zNi41LjUzLjkxLjMuNzMuNSAxLjcyLjU0IDIuODVoLTIuOThaXCIsIFwiTTEyLjYyIDEwLjc4Yy4wNy0uMTYuMTMtLjMxLjIxLS40NmE0LjUgNC41IDAgMCAwLTIuOCAzLjY4SDEyYy4wNS0xLjIzLjI3LTIuMzYuNjEtMy4yMlpcIiwgXCJNMTYuMzggMTAuNzhhNS4zNSA1LjM1IDAgMCAwLS4yLS40NmMxLjUuNiAyLjYgMiAyLjggMy42OGgtMS45OWE5LjkyIDkuOTIgMCAwIDAtLjYxLTMuMjJaXCIsIFwiTTE3IDE1aDEuOTdhNC41IDQuNSAwIDAgMS0yLjggMy42OEE5LjkyIDkuOTIgMCAwIDAgMTcgMTVaXCIsIFwiTTE0LjkyIDE4Ljc2Yy0uMTkuMi0uMzMuMjQtLjQyLjI0LS4xIDAtLjIzLS4wNS0uNDItLjI0LS4xOC0uMTktLjM2LS41LS41My0uOTFhOC45IDguOSAwIDAgMS0uNTQtMi44NWgyLjk4YTguOSA4LjkgMCAwIDEtLjU0IDIuODVjLS4xNy40Mi0uMzUuNzItLjUzLjkxWlwiLCBcIk0xMC4wMyAxNWE0LjUgNC41IDAgMCAwIDIuOCAzLjY4QTkuOTIgOS45MiAwIDAgMSAxMiAxNWgtMS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tPcGVuR2xvYmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tPcGVuR2xvYmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDQuNXY1Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZWNC41YS41LjUgMCAwIDAtLjUtLjVIMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41djUuMjNjLS40LjQzLS43NS45My0xIDEuNDhWNS41QzkuNSA0LjY3IDguODMgNCA4IDRIMy41YS41LjUgMCAwIDAtLjUuNXYxMWMwIC4yOC4yMi41LjUuNUg4Yy40MyAwIC44Mi0uMTggMS4xLS40OC4wNi4zNy4xNy43Mi4zIDEuMDUtLjQuMjctLjg4LjQzLTEuNC40M0gzLjVBMS41IDEuNSAwIDAgMSAyIDE1LjV2LTExQzIgMy42NyAyLjY3IDMgMy41IDNIOGMuODIgMCAxLjU0LjQgMiAxIC40Ni0uNiAxLjE4LTEgMi0xaDQuNWMuODMgMCAxLjUuNjcgMS41IDEuNVpcIiwgXCJNMTMuMDEgMTRhOC45IDguOSAwIDAgMSAuNTQtMi44NWMuMTctLjQyLjM1LS43Mi41My0uOTEuMTktLjIuMzMtLjI0LjQyLS4yNC4xIDAgLjIzLjA1LjQyLjI0LjE4LjE5LjM2LjUuNTMuOTEuMy43My41IDEuNzIuNTQgMi44NWgtMi45OFpcIiwgXCJtMTIuNjIgMTAuNzguMi0uNDZhNC41IDQuNSAwIDAgMC0yLjggMy42OGgxLjk5Yy4wNS0xLjIzLjI3LTIuMzYuNjEtMy4yMlpcIiwgXCJNMTYuMzggMTAuNzhhNS4yOSA1LjI5IDAgMCAwLS4yMS0uNDZjMS41MS42IDIuNjIgMiAyLjggMy42OEgxN2E5LjkyIDkuOTIgMCAwIDAtLjYxLTMuMjJaXCIsIFwiTTE2Ljk5IDE1aDEuOThhNC41IDQuNSAwIDAgMS0yLjggMy42OCA5LjkyIDkuOTIgMCAwIDAgLjgyLTMuNjhaXCIsIFwiTTE0LjkyIDE4Ljc2Yy0uMTkuMi0uMzMuMjQtLjQyLjI0LS4xIDAtLjIzLS4wNS0uNDItLjI0LS4xOC0uMTktLjM2LS41LS41My0uOTFhOC45IDguOSAwIDAgMS0uNTQtMi44NWgyLjk4YTguOSA4LjkgMCAwIDEtLjU0IDIuODVjLS4xNy40Mi0uMzUuNzItLjUzLjkxWlwiLCBcIk0xMC4wMyAxNWE0LjUgNC41IDAgMCAwIDIuOCAzLjY4QTkuOTIgOS45MiAwIDAgMSAxMiAxNWgtMS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tPcGVuTWljcm9waG9uZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rT3Blbk1pY3JvcGhvbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMTYuMTRjLS41LjUzLTEuMjEuODYtMiAuODZIMy43NUMyLjc4IDE3IDIgMTYuMjIgMiAxNS4yNVY0Ljc1QzIgMy43OCAyLjc4IDMgMy43NSAzSDhjLjc5IDAgMS41LjMzIDIgLjg2LjUtLjUzIDEuMjEtLjg2IDItLjg2aDQuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ni43NWEyLjUgMi41IDAgMCAwLTEuNS0yLjNWNC43NmEuMjUuMjUgMCAwIDAtLjI1LS4yNUgxMmMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2OC41YzAgLjMuMS41OC4yOC44LjA5LjcuMzQgMS4zNy43MiAxLjk0YTIuNzQgMi43NCAwIDAgMS0xLjc1LS44NVpNMy41IDQuNzV2MTAuNWMwIC4xNC4xMS4yNS4yNS4yNUg4Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtOC41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUgzLjc1YS4yNS4yNSAwIDAgMC0uMjUuMjVabTEzLjkzIDExLjM0Yy4zNS0uNDMuNTctLjk4LjU3LTEuNTlhLjUuNSAwIDAgMSAxIDAgMy41IDMuNSAwIDAgMS0zIDMuNDZ2LjU0YS41LjUgMCAwIDEtMSAwdi0uNTRhMy40OSAzLjQ5IDAgMCAxLTMtMy40Ni41LjUgMCAwIDEgMSAwIDIuNSAyLjUgMCAwIDAgMi41IDIuNSAyLjUgMi41IDAgMCAwIDEuOTMtLjlaTTE1LjUgMTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di0zYTEuNSAxLjUgMCAwIDEgMyAwdjNjMCAuODMtLjY3IDEuNS0xLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va09wZW5NaWNyb3Bob25lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rT3Blbk1pY3JvcGhvbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDE2Yy0uNDYuNi0xLjE4IDEtMiAxSDMuNUExLjUgMS41IDAgMCAxIDIgMTUuNXYtMTFDMiAzLjY3IDIuNjcgMyAzLjUgM0g4Yy44MiAwIDEuNTQuNCAyIDEgLjQ2LS42IDEuMTgtMSAyLTFoNC41Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMC0uODItLjQtMS41NC0xLTJ2LTVhLjUuNSAwIDAgMC0uNS0uNUgxMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OWMwIC41Mi4yNy45OS42OCAxLjI1LjEzLjQ1LjMyLjg2LjU3IDEuMjRBMi41IDIuNSAwIDAgMSAxMCAxNlpNMyA0LjV2MTFjMCAuMjguMjIuNS41LjVIOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTlDOS41IDQuNjcgOC44MyA0IDggNEgzLjVhLjUuNSAwIDAgMC0uNS41Wm0xNC40MyAxMS42Yy4zNS0uNDQuNTctMSAuNTctMS42YS41LjUgMCAwIDEgMSAwIDMuNSAzLjUgMCAwIDEtMyAzLjQ2di41NGEuNS41IDAgMCAxLTEgMHYtLjU0YTMuNDkgMy40OSAwIDAgMS0zLTMuNDYuNS41IDAgMCAxIDEgMCAyLjQ5IDIuNDkgMCAwIDAgMi41IDIuNSAyLjUgMi41IDAgMCAwIDEuOTMtLjlaTTE0IDExLjVhMS41IDEuNSAwIDAgMSAzIDB2M2ExLjUgMS41IDAgMCAxLTMgMHYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tQdWxzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rUHVsc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjExYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDAgMSAxaDkuNWEuNS41IDAgMCAxIDAgMUg2YTIgMiAwIDAgMS0yLTJWNFptNS40NiAyLjNhLjUuNSAwIDAgMC0uOS0uMDJMNy4xOCA5SDYuNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgLjQ1LS4yOGwxLjAzLTIuMDYgMi4wNiA0LjU1YS41LjUgMCAwIDAgLjg5LjA1TDEzLjI4IDEwaC4yMmEuNS41IDAgMCAwIDAtMUgxM2EuNS41IDAgMCAwLS40My4yNGwtMSAxLjY5LTIuMTEtNC42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tQdWxzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va1B1bHNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDE2VjRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMCAxIDFoOS41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMlpNMTUgNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYxMWgxMFY0Wk05LjQ2IDYuM2EuNS41IDAgMCAwLS45LS4wMkw3LjE4IDlINi41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNDUtLjI4bDEuMDMtMi4wNiAyLjA2IDQuNTVhLjUuNSAwIDAgMCAuODkuMDVMMTMuMjggMTBoLjIyYS41LjUgMCAwIDAgMC0xSDEzYS41LjUgMCAwIDAtLjQzLjI0bC0xIDEuNjktMi4xMS00LjY0WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1F1ZXN0aW9uTWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rUXVlc3Rpb25NYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm0yLjc2IDQuNGEuOS45IDAgMCAwLS4yNi42LjUuNSAwIDAgMS0xIDBjMC0uMzcuMTQtLjg3LjU0LTEuMjhDOC40NSA1LjI5IDkuMDkgNSAxMCA1Yy45MSAwIDEuNTUuMjkgMS45Ni43Mi40LjQxLjU0LjkxLjU0IDEuMjggMCAxLjA1LS43MyAxLjU1LTEuMjggMS44MmE4IDggMCAwIDEtLjM5LjE4aC0uMDFhNS43NSA1Ljc1IDAgMCAwLS4zMi4xNVYxMGEuNS41IDAgMCAxLTEgMFY5YzAtLjI1LjEzLS40My4yNC0uNTMuMTEtLjEuMjQtLjE4LjM1LS4yM2wuMzItLjE1LjAyLS4wMWE3IDcgMCAwIDAgLjM1LS4xNmMuNDUtLjIyLjcyLS40Ny43Mi0uOTJhLjkuOSAwIDAgMC0uMjYtLjZjLS4xOS0uMTktLjU1LS40LTEuMjQtLjRzLTEuMDUuMjEtMS4yNC40Wk0xMCAxM2EuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rUXVlc3Rpb25NYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rUXVlc3Rpb25NYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDR2MTJjMCAxLjEuOSAyIDIgMmg5LjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xaDEwYTEgMSAwIDAgMCAxLTFWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMlptMTAtMWExIDEgMCAwIDEgMSAxdjExSDVWNGExIDEgMCAwIDEgMS0xaDhaTTguNzYgNi40Yy4xOS0uMTkuNTUtLjQgMS4yNC0uNHMxLjA1LjIxIDEuMjQuNGMuMi4yMi4yNi40Ny4yNi42IDAgLjQ1LS4yNy43LS43Mi45MmE3IDcgMCAwIDEtLjM1LjE2bC0uMDIuMDEtLjMyLjE1Yy0uMS4wNS0uMjQuMTItLjM1LjIzQS43My43MyAwIDAgMCA5LjUgOXYxYS41LjUgMCAxIDAgMSAwdi0uODVsLjA0LS4wMi4yOC0uMTNoLjAxYTggOCAwIDAgMCAuNC0uMThjLjU0LS4yNyAxLjI3LS43NyAxLjI3LTEuODIgMC0uMzctLjE0LS44Ny0uNTQtMS4yOEMxMS41NSA1LjI5IDEwLjkxIDUgMTAgNWMtLjkxIDAtMS41NS4yOS0xLjk2LjcyLS40LjQxLS41NC45MS0uNTQgMS4yOGEuNS41IDAgMCAwIDEgMCAuOS45IDAgMCAxIC4yNi0uNlpNMTAgMTNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1F1ZXN0aW9uTWFya1J0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rUXVlc3Rpb25NYXJrUnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm01LjI0IDQuNGMtLjE5LS4xOS0uNTUtLjQtMS4yNC0uNHMtMS4wNS4yMS0xLjI0LjRhLjkuOSAwIDAgMC0uMjYuNmMwIC40NS4yNy43LjcyLjkybC4zNS4xNi4wMi4wMS4zMi4xNWMuMS4wNS4yNC4xMi4zNS4yMy4xMS4xLjI0LjI4LjI0LjUzdjFhLjUuNSAwIDEgMS0xIDB2LS44NWwtLjA0LS4wMkE1Ljc1IDUuNzUgMCAwIDAgOS4xOCA5aC0uMDFhNy45NyA3Ljk3IDAgMCAxLS40LS4xOEM4LjI0IDguNTUgNy41IDguMDUgNy41IDdjMC0uMzcuMTQtLjg3LjU0LTEuMjhDOC40NSA1LjI5IDkuMDkgNSAxMCA1Yy45MSAwIDEuNTUuMjkgMS45Ni43Mi40LjQxLjU0LjkxLjU0IDEuMjhhLjUuNSAwIDAgMS0xIDAgLjkuOSAwIDAgMC0uMjYtLjZaTTEwIDEzYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tRdWVzdGlvbk1hcmtSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tRdWVzdGlvbk1hcmtSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNHYxMmMwIDEuMS45IDIgMiAyaDkuNWEuNS41IDAgMCAwIDAtMUg2YTEgMSAwIDAgMS0xLTFoMTBhMSAxIDAgMCAwIDEtMVY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAyWm0xMC0xYTEgMSAwIDAgMSAxIDF2MTFINVY0YTEgMSAwIDAgMSAxLTFoOFptLTIuNzYgMy40Yy4yLjIyLjI2LjQ3LjI2LjZhLjUuNSAwIDAgMCAxIDBjMC0uMzctLjE0LS44Ny0uNTQtMS4yOEMxMS41NSA1LjI5IDEwLjkxIDUgMTAgNWMtLjkxIDAtMS41NS4yOS0xLjk2LjcyLS40LjQxLS41NC45MS0uNTQgMS4yOCAwIDEuMDUuNzMgMS41NSAxLjI4IDEuODJsLjM5LjE4aC4wMWE1Ljc1IDUuNzUgMCAwIDEgLjMyLjE1VjEwYS41LjUgMCAwIDAgMSAwVjlhLjczLjczIDAgMCAwLS4yNC0uNTNjLS4xMS0uMS0uMjQtLjE4LS4zNS0uMjNsLS4zMi0uMTUtLjAyLS4wMS0uMzUtLjE2QzguNzcgNy43IDguNSA3LjQ1IDguNSA3YS45LjkgMCAwIDEgLjI2LS42Yy4xOS0uMTkuNTUtLjQgMS4yNC0uNHMxLjA1LjIxIDEuMjQuNFpNMTAgMTNhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1NlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2Wm01LjU5IDcuODggMS4yNiAxLjI3YS41LjUgMCAwIDEtLjcuN2wtMS4yNy0xLjI2YTIuNSAyLjUgMCAxIDEgLjctLjdaTTggOC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1NlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va1NlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0djEyYzAgMS4xLjkgMiAyIDJoOS41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMWgxMGExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTEwLTFhMSAxIDAgMCAxIDEgMXYxMUg1VjRhMSAxIDAgMCAxIDEtMWg4Wm0tMi40MSA2Ljg4YTIuNSAyLjUgMCAxIDAtLjcuN2wxLjI2IDEuMjdhLjUuNSAwIDAgMCAuNy0uN0wxMS42IDkuODhaTTggOC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1N0YXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va1N0YXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjExYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDAgMSAxaDkuNWEuNS41IDAgMCAxIDAgMUg2YTIgMiAwIDAgMS0yLTJWNFptNi40NSAxLjI5YS41LjUgMCAwIDAtLjkgMGwtLjgzIDEuNzctMS45My4yM2EuNS41IDAgMCAwLS4yOC44N2wxLjQzIDEuMzMtLjM4IDEuOTFhLjUuNSAwIDAgMCAuNzMuNTNsMS43MS0uOTUgMS43Ljk1YS41LjUgMCAwIDAgLjc0LS41M2wtLjM4LTEuOTEgMS40My0xLjMzYS41LjUgMCAwIDAtLjI4LS44N2wtMS45My0uMjMtLjgzLTEuNzdabS0uOTQgMi40NEwxMCA2LjdsLjQ5IDEuMDRhLjUuNSAwIDAgMCAuMzkuMjlsMS4xNC4xNC0uODQuNzhhLjUuNSAwIDAgMC0uMTUuNDZsLjIyIDEuMTQtMS0uNTZhLjUuNSAwIDAgMC0uNSAwbC0xIC41Ni4yMi0xLjE0YS41LjUgMCAwIDAtLjE1LS40NmwtLjg0LS43OCAxLjE0LS4xNGEuNS41IDAgMCAwIC40LS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tTdGFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rU3RhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAxNlY0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjExYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDAgMSAxaDkuNWEuNS41IDAgMCAxIDAgMUg2YTIgMiAwIDAgMS0yLTJaTTE1IDRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MTFoMTBWNFptLTQuNTUgMS4yOWEuNS41IDAgMCAwLS45IDBsLS44MyAxLjc3LTEuOTMuMjNhLjUuNSAwIDAgMC0uMjguODdsMS40MyAxLjMzLS4zOCAxLjkxYS41LjUgMCAwIDAgLjczLjUzbDEuNzEtLjk1IDEuNy45NWEuNS41IDAgMCAwIC43NC0uNTNsLS4zOC0xLjkxIDEuNDMtMS4zM2EuNS41IDAgMCAwLS4yOC0uODdsLTEuOTMtLjIzLS44My0xLjc3Wm0tLjk0IDIuNDRMMTAgNi43bC40OSAxLjA0YS41LjUgMCAwIDAgLjM5LjI5bDEuMTQuMTQtLjg0Ljc4YS41LjUgMCAwIDAtLjE1LjQ2bC4yMiAxLjE0LTEtLjU2YS41LjUgMCAwIDAtLjUgMGwtMSAuNTYuMjItMS4xNGEuNS41IDAgMCAwLS4xNS0uNDZsLS44NC0uNzggMS4xNC0uMTRhLjUuNSAwIDAgMCAuNC0uMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rVGVtcGxhdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va1RlbXBsYXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxQTIuNSAyLjUgMCAwIDAgMiAzLjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxNUg4VjlINS41YS41LjUgMCAwIDEgMC0xaDIuNjdhMyAzIDAgMCAxIC42LTFINS41YS41LjUgMCAwIDEgMC0xSDE2VjMuNUEyLjUgMi41IDAgMCAwIDEzLjUgMWgtOVpNNSA0LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTE4IDlhMiAyIDAgMCAwLTItMmgtNWEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg2LjVhLjUuNSAwIDAgMCAwLTFIMTFhMSAxIDAgMCAxLTEtMWg3LjVhLjUuNSAwIDAgMCAuNS0uNVY5Wm0tOCA3VjlhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2N2gtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tUZW1wbGF0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va1RlbXBsYXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDMuNUEyLjUgMi41IDAgMCAxIDQuNSAxaDlBMi41IDIuNSAwIDAgMSAxNiAzLjVWNmgtMVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzMuNjcgMiAzIDIuNjcgMyAzLjV2OWMwIC44My42NyAxLjUgMS41IDEuNUg4djFINC41QTIuNSAyLjUgMCAwIDEgMiAxMi41di05Wk01LjUgNkgxMWEzIDMgMCAwIDAtMi4yNCAxSDUuNWEuNS41IDAgMCAxIDAtMVptMi42NyAySDUuNWEuNS41IDAgMCAwIDAgMUg4YTMgMyAwIDAgMSAuMTctMVpNNS41IDRhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNMTggOWEyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDYuNWEuNS41IDAgMCAwIDAtMUgxMWExIDEgMCAwIDEtMS0xaDcuNWEuNS41IDAgMCAwIC41LS41VjlabS04IDdWOWExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXY3aC03WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1RoZXRhRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tUaGV0YUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkuNWEuNS41IDAgMCAwIDAtMUg2YTEgMSAwIDAgMS0xLTFoMTBhMSAxIDAgMCAwIDEtMVY0YTIgMiAwIDAgMC0yLTJINlptMSA3YzAtMS4wNi4zLTIuMDQuODMtMi43N0EyLjcgMi43IDAgMCAxIDEwIDVjLjkgMCAxLjY2LjUgMi4xNyAxLjIzLjUyLjczLjgzIDEuNzEuODMgMi43N3MtLjMgMi4wNC0uODMgMi43N0EyLjcgMi43IDAgMCAxIDEwIDEzYy0uOSAwLTEuNjYtLjUtMi4xNy0xLjIzQTQuNzkgNC43OSAwIDAgMSA3IDlabTQuOTcuNWMtLjA3LjY3LS4zIDEuMjUtLjYgMS42OC0uNC41NC0uODguODItMS4zNy44Mi0uNDkgMC0uOTctLjI4LTEuMzYtLjgyYTMuNjIgMy42MiAwIDAgMS0uNjEtMS42OGgzLjk0Wm0wLTFhMy42MiAzLjYyIDAgMCAwLS42LTEuNjhDMTAuOTYgNi4yOCAxMC40OCA2IDEwIDZjLS40OSAwLS45Ny4yOC0xLjM2LjgyYTMuNjIgMy42MiAwIDAgMC0uNjEgMS42OGgzLjk0WlwiXSk7XG5leHBvcnQgY29uc3QgQm9va1RoZXRhUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rVGhldGFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNHYxMmMwIDEuMS45IDIgMiAyaDkuNWEuNS41IDAgMCAwIDAtMUg2YTEgMSAwIDAgMS0xLTFoMTBhMSAxIDAgMCAwIDEtMVY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAyWm0xMC0xYTEgMSAwIDAgMSAxIDF2MTFINVY0YTEgMSAwIDAgMSAxLTFoOFpNNyA5YzAtMS4wNi4zLTIuMDQuODMtMi43N0EyLjcgMi43IDAgMCAxIDEwIDVjLjkgMCAxLjY2LjUgMi4xNyAxLjIzLjUyLjczLjgzIDEuNzEuODMgMi43N3MtLjMgMi4wNC0uODMgMi43N0EyLjcgMi43IDAgMCAxIDEwIDEzYy0uOSAwLTEuNjYtLjUtMi4xNy0xLjIzQTQuNzkgNC43OSAwIDAgMSA3IDlabTQuOTcuNUg4LjAzYy4wNy42Ny4zIDEuMjUuNiAxLjY4LjQuNTQuODguODIgMS4zNy44Mi40OSAwIC45Ny0uMjggMS4zNi0uODIuMzEtLjQzLjU0LTEuMDEuNjEtMS42OFptMC0xYTMuNjIgMy42MiAwIDAgMC0uNi0xLjY4QzEwLjk2IDYuMjggMTAuNDggNiAxMCA2Yy0uNDkgMC0uOTcuMjgtMS4zNi44MmEzLjYyIDMuNjIgMCAwIDAtLjYxIDEuNjhoMy45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tUb29sYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2tUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDN2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjVWM2guNWMuODMgMCAxLjUuNjcgMS41IDEuNVY2aC0ydi0uNWEuNS41IDAgMCAwLTEgMFY2aC0zdi0uNWEuNS41IDAgMCAwLTEgMFY2aC0yVjQuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNVYzaDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wk0xNyA3aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDEwIDguNVY3aDJ2LjVhLjUuNSAwIDAgMCAxIDBWN2gzdi41YS41LjUgMCAwIDAgMSAwVjdabS01Ljk2LTQuOTYuMDEtLjA0SDZhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkuNWEuNS41IDAgMSAwIDAtMUg2YTEgMSAwIDAgMS0xLTFoMTAuNWEuNS41IDAgMCAwIC41LS41VjExaC00LjVBMi41IDIuNSAwIDAgMSA5IDguNXYtNGEyLjUgMi41IDAgMCAxIDIuMDQtMi40NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2tUb29sYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rVG9vbGJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgM3YtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNVYzaC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjZoLTJ2LS41YS41LjUgMCAwIDAtMSAwVjZoLTN2LS41YS41LjUgMCAwIDAtMSAwVjZoLTJWNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0zLjUtMWgtMmEuNS41IDAgMCAwLS41LjVWM2gzdi0uNWEuNS41IDAgMCAwLS41LS41Wk0xNyA3aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDEwIDguNVY3aDJ2LjVhLjUuNSAwIDAgMCAxIDBWN2gzdi41YS41LjUgMCAwIDAgMSAwVjdaTTYgMmg1LjA1di4wNEEyLjUgMi41IDAgMCAwIDkuNSAzSDZhMSAxIDAgMCAwLTEgMXYxMWgxMHYtNGgxdjQuNWEuNS41IDAgMCAxLS41LjVINWExIDEgMCAwIDAgMSAxaDkuNWEuNS41IDAgMCAxIDAgMUg2YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0LjVBMi41IDIuNSAwIDAgMSA2LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTYgNC41djEzYS41LjUgMCAwIDEtLjguNEwxMCAxNC4xMiA0LjggMTcuOWEuNS41IDAgMCAxLS44LS40di0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0LjVBMi41IDIuNSAwIDAgMSA2LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTYgNC41djEzYS41LjUgMCAwIDEtLjguNEwxMCAxNC4xMiA0LjggMTcuOWEuNS41IDAgMCAxLS44LS40di0xM1pNNi41IDNDNS42NyAzIDUgMy42NyA1IDQuNXYxMi4wMmw0LjctMy40MmEuNS41IDAgMCAxIC42IDBsNC43IDMuNDJWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2ttYXJrQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2ttYXJrQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptLS41IDcuNWE1LjUgNS41IDAgMCAwIDEuNS0uMnY2LjdhLjUuNSAwIDAgMS0uOC40TDEwIDE0LjEyIDQuOCAxNy45YS41LjUgMCAwIDEtLjgtLjR2LTEzQTIuNSAyLjUgMCAwIDEgNi41IDJoMy43NmE1LjUgNS41IDAgMCAwIDQuMjQgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2ttYXJrQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rbWFya0FkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0wIDEzLjAydi01LjU0Yy4zNC0uMDMuNjgtLjEgMS0uMTl2Ni43MWEuNS41IDAgMCAxLS44LjRMMTAgMTQuMTIgNC44IDE3LjlhLjUuNSAwIDAgMS0uOC0uNHYtMTNBMi41IDIuNSAwIDAgMSA2LjUgMmgzLjc2Yy0uMjYuMy0uNDguNjQtLjY2IDFINi41QzUuNjcgMyA1IDMuNjcgNSA0LjV2MTIuMDJsNC43LTMuNDJhLjUuNSAwIDAgMSAuNiAwbDQuNyAzLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQm9va21hcmtNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rbWFya011bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMjcgM0EyIDIgMCAwIDEgOCAyaDQuNUEzLjUgMy41IDAgMCAxIDE2IDUuNXYxMGEuNS41IDAgMCAxLS43OC40MmwtLjIyLS4xNVY1LjVBMi41IDIuNSAwIDAgMCAxMi41IDNINi4yN1pNNiA0YTIgMiAwIDAgMC0yIDJ2MTEuNWEuNS41IDAgMCAwIC43OC40Mkw5IDE1LjFsNC4yMiAyLjgyYS41LjUgMCAwIDAgLjc4LS40MlY2YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvb2ttYXJrTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvb2ttYXJrTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMjcgM0EyIDIgMCAwIDEgOCAyaDQuNUEzLjUgMy41IDAgMCAxIDE2IDUuNXYxMGEuNS41IDAgMCAxLS43OC40MmwtLjIyLS4xNVY1LjVBMi41IDIuNSAwIDAgMCAxMi41IDNINi4yN1pNNiA0YTIgMiAwIDAgMC0yIDJ2MTEuNWEuNS41IDAgMCAwIC43OC40Mkw5IDE1LjFsNC4yMiAyLjgyYS41LjUgMCAwIDAgLjc4LS40MlY2YTIgMiAwIDAgMC0yLTJINlpNNSA2YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEwLjU3bC0zLjcyLTIuNDlhLjUuNSAwIDAgMC0uNTYgMEw1IDE2LjU3VjZaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rbWFya09mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rbWFya09mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNiAxNi43IDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdMNCA0LjcxVjE3LjVhLjUuNSAwIDAgMCAuOC40bDUuMi0zLjc4IDUuMiAzLjc4YS41LjUgMCAwIDAgLjgtLjR2LS44Wm0wLTEyLjJ2OS4zOEw0LjggMi42OEEyLjUgMi41IDAgMCAxIDYuNSAyaDdBMi41IDIuNSAwIDAgMSAxNiA0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rbWFya09mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va21hcmtPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNC43IDIuMTUgMi44NmEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN0wxNiAxNi43MXYuNzlhLjUuNSAwIDAgMS0uOC40TDEwIDE0LjEyIDQuOCAxNy45YS41LjUgMCAwIDEtLjgtLjRWNC43Wm0xMSAxMUw1IDUuN3YxMC44Mmw0LjctMy40MmEuNS41IDAgMCAxIC42IDBsNC43IDMuNDJ2LS44MVptMC0xMS4ydjguMzhsMSAxVjQuNUEyLjUgMi41IDAgMCAwIDEzLjUgMmgtN2EyLjUgMi41IDAgMCAwLTEuNy42N2wuNy43MWExLjUgMS41IDAgMCAxIDEtLjM4aDdjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rbWFya1NlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb29rbWFya1NlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS42IDcuM2EzLjUgMy41IDAgMSAxIC43LS43bDIuNTUgMi41NWEuNS41IDAgMCAxLS43LjdMMTUuNiA3LjNabS40LTIuOGEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFptMCA0LjYydjguMzhhLjUuNSAwIDAgMS0uOC40TDEwIDE0LjEyIDQuOCAxNy45YS41LjUgMCAwIDEtLjgtLjR2LTEzQTIuNSAyLjUgMCAwIDEgNi41IDJoMy4yNmE0LjUgNC41IDAgMCAwIDUuNjggNi41NmwuNTYuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBCb29rbWFya1NlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9va21hcmtTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjYgNy4zYTMuNSAzLjUgMCAxIDEgLjctLjdsMi41NSAyLjU1YS41LjUgMCAwIDEtLjcuN0wxNS42IDcuM1ptLjQtMi44YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwWm0wIDQuNjJ2OC4zOGEuNS41IDAgMCAxLS44LjRMMTAgMTQuMTIgNC44IDE3LjlhLjUuNSAwIDAgMS0uOC0uNHYtMTNBMi41IDIuNSAwIDAgMSA2LjUgMmgzLjI2Yy0uMi4zLS4zOC42NC0uNSAxSDYuNUM1LjY3IDMgNSAzLjY3IDUgNC41djEyLjAybDQuNy0zLjQyYS41LjUgMCAwIDEgLjYgMGw0LjcgMy40MlY4Ljc0Yy4xNS0uMDUuMy0uMTEuNDQtLjE4bC41Ni41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlckFsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJBbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djNoNC43NVY0LjVoLTNabTQuNSAwdjQuNzVoNC43NXYtM2MwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTNabTQuNzUgNi4yNWgtNC43NXY0Ljc1aDNjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0zWk05LjI1IDE1LjV2LTQuNzVINC41djNjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoM1pNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDcuNUMxNS41NSAzIDE3IDQuNDYgMTcgNi4yNXY3LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNy41QTMuMjUgMy4yNSAwIDAgMSAzIDEzLjc1di03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJBbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlckFsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2My41aDUuNVY0SDZabTQuNSAwdjUuNUgxNlY2YTIgMiAwIDAgMC0yLTJoLTMuNVptNS41IDYuNWgtNS41VjE2SDE0YTIgMiAwIDAgMCAyLTJ2LTMuNVpNOS41IDE2di01LjVINFYxNGMwIDEuMS45IDIgMiAyaDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlckJvdHRvbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJCb3R0b21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41QS43NS43NSAwIDAgMSA4IDMuNzVabS43MSAxMS43NWEuNy43IDAgMCAxIC4wNCAwaDIuNWEuNy43IDAgMCAxIC4wNCAwSDE0YTEuNSAxLjUgMCAwIDAgMS40My0xLjAzdi0uMDFhLjc1Ljc1IDAgMCAxIDEuMzguNThBMyAzIDAgMCAxIDE0IDE3SDZhMyAzIDAgMCAxLTIuODEtMS45Ni43NS43NSAwIDEgMSAxLjQxLS40OWMuMjIuNTYuNzcuOTUgMS40Ljk1aDIuNzFaTTQuNjEgNS40NWExLjUgMS41IDAgMCAxIC45My0uODguNzUuNzUgMCAwIDAtLjU4LTEuMzggMyAzIDAgMCAwLTEuNzcgMS43Ny43NS43NSAwIDEgMCAxLjQxLjQ5Wm05Ljk0LS44NWExLjUgMS41IDAgMCAxIC44OC45NC43NS43NSAwIDAgMCAxLjM4LS41OCAzIDMgMCAwIDAtMS43Ny0xLjc3Ljc1Ljc1IDAgMSAwLS41IDEuNDFaTTMgMTEuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNVptMTMuMjUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJCb3R0b21SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlckJvdHRvbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNS41NCA0LjA1YTIgMiAwIDAgMC0xLjUgMS41NS41LjUgMCAwIDEtLjU5LjQuNS41IDAgMCAxLS4zOC0uNjYgMyAzIDAgMCAxIDIuMzQtMi4yOS41LjUgMCAwIDEgLjYuNC41LjUgMCAwIDEtLjQ3LjZaTTMuMDcgMTQuNjZhLjUuNSAwIDAgMSAuMzgtLjY2LjUuNSAwIDAgMSAuNi40NkEyIDIgMCAwIDAgNiAxNmg4YTIgMiAwIDAgMCAxLjk1LTEuNi41LjUgMCAwIDEgLjYtLjQuNS41IDAgMCAxIC4zOC42NkEzIDMgMCAwIDEgMTQgMTdINmEzIDMgMCAwIDEtMi45My0yLjM0Wk0xNC42IDMuMDZhMyAzIDAgMCAxIDIuMzYgMi4zNi41LjUgMCAwIDEtLjQuNTguNS41IDAgMCAxLS42LS40NiAyIDIgMCAwIDAtMS41NS0xLjUuNS41IDAgMCAxLS40LS41OS41LjUgMCAwIDEgLjYtLjRaTTE2LjUgMTJhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtLjUuNVpNMyAxMS41YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJCb3R0b21Eb3VibGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyQm90dG9tRG91YmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgOCAzLjc1Wm0tMi41NS44NWExLjUgMS41IDAgMCAwLS44OC45NC43NS43NSAwIDAgMS0xLjM4LS41OCAzIDMgMCAwIDEgMS43Ny0xLjc3Ljc1Ljc1IDAgMSAxIC41IDEuNDFabTkuOTUuODVhMS41IDEuNSAwIDAgMC0uOTQtLjg4Ljc1Ljc1IDAgMCAxIC41OC0xLjM4IDMgMyAwIDAgMSAxLjc4IDEuNzdoLS4wMWEuNzUuNzUgMCAxIDEtMS40MS40OVpNMy43NSAxMWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMS41YS43NS43NSAwIDAgMSAxLjUgMHYxLjVjMCAuNDEtLjM0Ljc1LS43NS43NVptMTEuNzUtLjc1YS43NS43NSAwIDAgMCAxLjUgMHYtMS41YS43NS43NSAwIDAgMC0xLjUgMHYxLjVabS0xMi41IDZjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0zLjc1IDEzYS43NS43NSAwIDAgMCAwIDEuNWgxMi41YS43NS43NSAwIDAgMCAwLTEuNUgzLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyQm90dG9tRG91YmxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJCb3R0b21Eb3VibGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQuMDUgNS41NGEyIDIgMCAwIDEgMS41NS0xLjUuNS41IDAgMCAwIC40LS41OS41LjUgMCAwIDAtLjY2LS4zOCAzIDMgMCAwIDAtMi4yOSAyLjM0LjUuNSAwIDAgMCAuNC42LjUuNSAwIDAgMCAuNi0uNDdaTTE0LjYgMy4wNWEzIDMgMCAwIDEgMi4zNiAyLjM2LjUuNSAwIDAgMS0uNC42LjUuNSAwIDAgMS0uNi0uNDcgMiAyIDAgMCAwLTEuNTUtMS41LjUuNSAwIDAgMS0uNC0uNTkuNS41IDAgMCAxIC42LS40Wk0xNi41IDEyYS41LjUgMCAwIDEtLjUtLjV2LTNhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAxLS41LjVaTTMgMTEuNWEuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLTEgMHYzWm0wIDVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptLjUtMi41YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlckJvdHRvbVRoaWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlckJvdHRvbVRoaWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgM2ExIDEgMCAwIDAgMCAyaDJhMSAxIDAgMSAwIDAtMkg5Wm0tNC42NC41YTEgMSAwIDEgMSAxLjE2IDEuNjIgMSAxIDAgMCAwLS40LjQgMSAxIDAgMCAxLTEuODQtLjMzIDEgMSAwIDAgMSAuMjItLjgzYy4yMi0uMzUuNTEtLjY0Ljg1LS44N1pNNiAxNWExIDEgMCAwIDEtLjg4LS41MiAxIDEgMCAwIDAtMS44NC4zMyAxIDEgMCAwIDAgLjIyLjgzQTMgMyAwIDAgMCA2IDE3aDhhMyAzIDAgMCAwIDIuNS0xLjM1IDEgMSAwIDEgMC0xLjYyLTEuMTdBMSAxIDAgMCAxIDE0IDE1SDZabTkuNjQtMTEuNWExIDEgMCAxIDAtMS4xNiAxLjYyYy4xNy4xLjMuMjMuNC40YTEgMSAwIDAgMCAxLjg0LS4zMyAxIDEgMCAwIDAtLjIyLS44MyAzLjAyIDMuMDIgMCAwIDAtLjg1LS44N1pNNCAxMmExIDEgMCAwIDEtMS0xVjlhMSAxIDAgMCAxIDIgMHYyYTEgMSAwIDAgMS0xIDFabTExLTFhMSAxIDAgMSAwIDIgMFY5YTEgMSAwIDEgMC0yIDB2MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlckJvdHRvbVRoaWNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJCb3R0b21UaGlja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41QS43NS43NSAwIDAgMSA4IDMuNzVabS43MSAxMS43NWEuNy43IDAgMCAxIC4wNCAwaDIuNWEuNy43IDAgMCAxIC4wNCAwSDE0YTEuNSAxLjUgMCAwIDAgMS40My0xLjAzdi0uMDFhLjc1Ljc1IDAgMCAxIDEuMzguNThBMyAzIDAgMCAxIDE0IDE3SDZhMyAzIDAgMCAxLTIuODEtMS45Ni43NS43NSAwIDEgMSAxLjQxLS40OWMuMjIuNTYuNzcuOTUgMS40Ljk1aDIuNzFaTTQuNjEgNS40NWExLjUgMS41IDAgMCAxIC45My0uODguNzUuNzUgMCAwIDAtLjU4LTEuMzggMyAzIDAgMCAwLTEuNzcgMS43Ny43NS43NSAwIDEgMCAxLjQxLjQ5Wm05Ljk0LS44NWExLjUgMS41IDAgMCAxIC44OC45NC43NS43NSAwIDAgMCAxLjM4LS41OCAzIDMgMCAwIDAtMS43Ny0xLjc3Ljc1Ljc1IDAgMSAwLS41IDEuNDFaTTMgMTEuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNVptMTMuMjUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJJbnNpZGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVySW5zaWRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgOCAzLjc1Wm0wIDEyLjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTQuNiA1LjQ1YTEuNSAxLjUgMCAwIDEgLjk0LS44OC43NS43NSAwIDAgMC0uNTgtMS4zOCAzIDMgMCAwIDAtMS43NyAxLjc3Ljc1Ljc1IDAgMSAwIDEuNDEuNDlabTkuOTUtLjg1YTEuNSAxLjUgMCAwIDEgLjg4Ljk0Ljc1Ljc1IDAgMCAwIDEuMzgtLjU4IDMgMyAwIDAgMC0xLjc3LTEuNzcuNzUuNzUgMCAxIDAtLjUgMS40MVpNMyAxMS4yNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41Wm0xMy4yNS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41YS43NS43NSAwIDAgMSAxLjUgMHYyLjVjMCAuNDEtLjM0Ljc1LS43NS43NVpNNC42IDE0LjU1YTEuNSAxLjUgMCAwIDAgLjk0Ljg4Ljc1Ljc1IDAgMCAxLS41OCAxLjM4IDMgMyAwIDAgMS0xLjc3LTEuNzcuNzUuNzUgMCAxIDEgMS40MS0uNDlabTkuOTUuODVhMS41IDEuNSAwIDAgMCAuODgtLjk0Ljc1Ljc1IDAgMCAxIDEuMzguNTggMyAzIDAgMCAxLTEuNzcgMS43Ny43NS43NSAwIDEgMS0uNS0xLjQxWm0tMy44LTkuMTVhLjc1Ljc1IDAgMCAwLTEuNSAwdjNoLTNhLjc1Ljc1IDAgMCAwIDAgMS41aDN2M2EuNzUuNzUgMCAwIDAgMS41IDB2LTNoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTN2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJJbnNpZGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlckluc2lkZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNC4wNSA1LjU0YTIgMiAwIDAgMSAxLjU1LTEuNS41LjUgMCAwIDAgLjQtLjU5LjUuNSAwIDAgMC0uNjYtLjM4IDMgMyAwIDAgMC0yLjI5IDIuMzQuNS41IDAgMCAwIC40LjYuNS41IDAgMCAwIC42LS40N1ptMCA4LjkyYTIgMiAwIDAgMCAxLjU1IDEuNS41LjUgMCAwIDEgLjQuNTkuNS41IDAgMCAxLS42Ni4zOCAzIDMgMCAwIDEtMi4yOS0yLjM0LjUuNSAwIDAgMSAuNC0uNi41LjUgMCAwIDEgLjYuNDdaTTE0LjY2IDMuMDdhLjUuNSAwIDAgMC0uNjYuMzguNS41IDAgMCAwIC40Ni42IDIgMiAwIDAgMSAxLjUgMS41NS41LjUgMCAwIDAgLjU5LjQuNS41IDAgMCAwIC4zOC0uNjYgMyAzIDAgMCAwLTIuMjctMi4yN1ptMS4yOSAxMS40YTIgMiAwIDAgMS0xLjU1IDEuNDguNS41IDAgMCAwLS40LjYuNS41IDAgMCAwIC42Ni4zOCAzIDMgMCAwIDAgMi4yOS0yLjM0LjUuNSAwIDAgMC0uNC0uNi41LjUgMCAwIDAtLjYuNDdaTTE2LjUgMTJhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtLjUuNVpNMyAxMS41YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNabTUgNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptMi41LTExYS41LjUgMCAwIDAtMSAwdjRoLTRhLjUuNSAwIDAgMCAwIDFoNHY0YS41LjUgMCAwIDAgMSAwdi00aDRhLjUuNSAwIDAgMCAwLTFoLTR2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlckxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuMjUgOGMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41YzAtLjQxLjM0LS43NS43NS0uNzVaTTMgMTEuMjdWMTRhMyAzIDAgMCAwIDEuOTYgMi44MS43NS43NSAwIDAgMCAuNTgtMS4zOEExLjUgMS41IDAgMCAxIDQuNSAxNFY2YTEuNSAxLjUgMCAwIDEgMS4wMy0xLjQzLjc1Ljc1IDAgMCAwLS41OC0xLjM4QTMgMyAwIDAgMCAzIDZ2NS4yN1pNMTQuNTUgNC42YTEuNSAxLjUgMCAwIDEgLjg4Ljk0Ljc1Ljc1IDAgMCAwIDEuMzgtLjU4IDMgMyAwIDAgMC0xLjc3LTEuNzcuNzUuNzUgMCAxIDAtLjQ5IDEuNDFabS44NSA5Ljk1YTEuNSAxLjUgMCAwIDEtLjk0Ljg4Ljc1Ljc1IDAgMCAwIC41OCAxLjM4IDMgMyAwIDAgMCAxLjc3LTEuNzcuNzUuNzUgMCAxIDAtMS40MS0uNVpNOC43NSAzYS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVaTTggMTYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA4LjVhLjUuNSAwIDAgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM1ptLTEuMDUtMi45NmEyIDIgMCAwIDAtMS41NS0xLjUuNS41IDAgMCAxLS40LS41OS41LjUgMCAwIDEgLjY2LS4zOCAzIDMgMCAwIDEgMi4yOSAyLjM0LjUuNSAwIDAgMS0uNC42LjUuNSAwIDAgMS0uNi0uNDdaTTUuMzQgMy4wN2EuNS41IDAgMCAxIC42Ni4zOC41LjUgMCAwIDEtLjQ2LjZBMiAyIDAgMCAwIDQgNnY4YTIgMiAwIDAgMCAxLjYgMS45NS41LjUgMCAwIDEgLjQuNi41LjUgMCAwIDEtLjY2LjM4QTMgMyAwIDAgMSAzIDE0VjZhMyAzIDAgMCAxIDIuMzQtMi45M1ptMTEuNiAxMS41MmEzIDMgMCAwIDEtMi4zNiAyLjM2LjUuNSAwIDAgMS0uNTgtLjQuNS41IDAgMCAxIC40Ni0uNiAyIDIgMCAwIDAgMS41LTEuNTUuNS41IDAgMCAxIC41OS0uNC41LjUgMCAwIDEgLjQuNlpNOCAxNi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyTGVmdFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlckxlZnRSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDZhMS41IDEuNSAwIDAgMC0xLjA0LTEuNDMuNzUuNzUgMCAwIDEgLjU4LTEuMzhBMyAzIDAgMCAxIDE3IDZ2OGEzIDMgMCAwIDEtMS45NiAyLjgyLjc1Ljc1IDAgMCAxLS41OC0xLjM5bC4wNy0uMDNjLjU3LS4yMS45Ny0uNzYuOTctMS40VjZaTTguNzUgM2EuNzUuNzUgMCAxIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wm0wIDEyLjVhLjc1Ljc1IDAgMSAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVpNNS40NSA0LjZBMS41IDEuNSAwIDAgMCA0LjUgNnY4YTEuNSAxLjUgMCAwIDAgMS4wMyAxLjQzaC4wMWEuNzUuNzUgMCAwIDEtLjU4IDEuMzhBMyAzIDAgMCAxIDMgMTQuMDJWNmEzIDMgMCAwIDEgMS45Ni0yLjgyLjc1Ljc1IDAgMSAxIC40OSAxLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyTGVmdFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJMZWZ0UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjY2IDMuMDdhLjUuNSAwIDAgMC0uNjYuMzguNS41IDAgMCAwIC40Ni42QTIgMiAwIDAgMSAxNiA2djhhMiAyIDAgMCAxLTEuNiAxLjk1LjUuNSAwIDAgMC0uNC42LjUuNSAwIDAgMCAuNjYuMzhBMyAzIDAgMCAwIDE3IDE0VjZhMyAzIDAgMCAwLTIuMzQtMi45M1ptLTkuMzIgMGEuNS41IDAgMCAxIC42Ni4zOC41LjUgMCAwIDEtLjQ2LjZBMiAyIDAgMCAwIDQgNnY4YTIgMiAwIDAgMCAxLjYgMS45NS41LjUgMCAwIDEgLjQuNi41LjUgMCAwIDEtLjY2LjM4QTMgMyAwIDAgMSAzIDE0VjZhMyAzIDAgMCAxIDIuMzQtMi45M1pNOCAxNi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyTm9uZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJOb25lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNzUgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wm0wIDEyLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVpNNS40NSA0LjZhMS41IDEuNSAwIDAgMC0uODguOTQuNzUuNzUgMCAwIDEtMS4zOC0uNTggMyAzIDAgMCAxIDEuNzctMS43Ny43NS43NSAwIDEgMSAuNSAxLjQxWm05Ljk1Ljg1YTEuNSAxLjUgMCAwIDAtLjk0LS44OC43NS43NSAwIDAgMSAuNTgtMS4zOCAzIDMgMCAwIDEgMS43OCAxLjc3aC0uMDFhLjc1Ljc1IDAgMSAxLTEuNDEuNDlaTTMuNzUgMTJhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVabTExLjc1LS43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41Wk01LjQ1IDE1LjRhMS41IDEuNSAwIDAgMS0uODgtLjk0Ljc1Ljc1IDAgMCAwLTEuMzguNTggMyAzIDAgMCAwIDEuNzcgMS43Ny43NS43NSAwIDEgMCAuNS0xLjQxWm05Ljk1LS44NWExLjUgMS41IDAgMCAxLS45NC44OC43NS43NSAwIDAgMCAuNTggMS4zOCAzIDMgMCAwIDAgMS43OC0xLjc3aC0uMDFhLjc1Ljc1IDAgMSAwLTEuNDEtLjQ5WlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyTm9uZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyTm9uZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabS0yLjQ2LjU1YTIgMiAwIDAgMC0xLjUgMS41NS41LjUgMCAwIDEtLjU5LjQuNS41IDAgMCAxLS4zOC0uNjYgMyAzIDAgMCAxIDIuMzQtMi4yOS41LjUgMCAwIDEgLjYuNC41LjUgMCAwIDEtLjQ3LjZabTAgMTEuOWEyIDIgMCAwIDEtMS41LTEuNTUuNS41IDAgMCAwLS41OS0uNC41LjUgMCAwIDAtLjM4LjY2IDMgMyAwIDAgMCAyLjM0IDIuMjkuNS41IDAgMCAwIC42LS40LjUuNSAwIDAgMC0uNDctLjZabTkuMDUtMTIuOWEzIDMgMCAwIDEgMi4zNiAyLjM2LjUuNSAwIDAgMS0uNC42LjUuNSAwIDAgMS0uNi0uNDcgMiAyIDAgMCAwLTEuNTUtMS41LjUuNSAwIDAgMS0uNC0uNTkuNS41IDAgMCAxIC42LS40Wm0tLjEzIDEyLjlhMiAyIDAgMCAwIDEuNS0xLjU1LjUuNSAwIDAgMSAuNTktLjQuNS41IDAgMCAxIC4zOC42NiAzIDMgMCAwIDEtMi4zNCAyLjI5LjUuNSAwIDAgMS0uNi0uNC41LjUgMCAwIDEgLjQ3LS42Wk0xNiAxMS41YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNaTTMuNSAxMmEuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAwIDEgMSAwdjNhLjUuNSAwIDAgMS0uNS41Wm01IDRhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlck91dHNpZGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyT3V0c2lkZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTEuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg2WlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyT3V0c2lkZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyT3V0c2lkZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlck91dHNpZGVUaGlja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJPdXRzaWRlVGhpY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0xYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvcmRlck91dHNpZGVUaGlja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyT3V0c2lkZVRoaWNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTEuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg2WlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy43NSAxMmEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41YS43NS43NSAwIDAgMSAxLjUgMHYyLjVjMCAuNDEtLjM0Ljc1LS43NS43NVpNMTcgOC43M1Y2YTMgMyAwIDAgMC0xLjk2LTIuODEuNzUuNzUgMCAxIDAtLjU4IDEuMzhsLjA3LjAzYy41Ny4yMS45Ny43Ni45NyAxLjR2OGExLjUgMS41IDAgMCAxLTEuMDQgMS40My43NS43NSAwIDAgMCAuNTggMS4zOEEzIDMgMCAwIDAgMTcgMTRWOC43M1pNNS40NSAxNS40YTEuNSAxLjUgMCAwIDEtLjg4LS45NC43NS43NSAwIDAgMC0xLjM4LjU4IDMgMyAwIDAgMCAxLjc3IDEuNzcuNzUuNzUgMCAxIDAgLjQ5LTEuNDFaTTQuNiA1LjQ1YTEuNSAxLjUgMCAwIDEgLjk0LS44OC43NS43NSAwIDAgMC0uNTgtMS4zOCAzIDMgMCAwIDAtMS43NyAxLjc3Ljc1Ljc1IDAgMSAwIDEuNDEuNVpNMTEuMjUgMTdhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNVpNMTIgMy43NWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMTEuNWEuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLTEgMHYzWm0xLjA1IDIuOTZhMiAyIDAgMCAwIDEuNTUgMS41LjUuNSAwIDAgMSAuNC41OS41LjUgMCAwIDEtLjY2LjM4IDMgMyAwIDAgMS0yLjI5LTIuMzQuNS41IDAgMCAxIC40LS42LjUuNSAwIDAgMSAuNi40N1ptMTAuNjEgMi40N2EuNS41IDAgMCAxLS42Ni0uMzguNS41IDAgMCAxIC40Ni0uNkEyIDIgMCAwIDAgMTYgMTRWNmEyIDIgMCAwIDAtMS42LTEuOTUuNS41IDAgMCAxLS40LS42LjUuNSAwIDAgMSAuNjYtLjM4QTMgMyAwIDAgMSAxNyA2djhhMyAzIDAgMCAxLTIuMzQgMi45M1pNMy4wNiA1LjRhMyAzIDAgMCAxIDIuMzYtMi4zNi41LjUgMCAwIDEgLjU4LjQuNS41IDAgMCAxLS40Ni42IDIgMiAwIDAgMC0xLjUgMS41NS41LjUgMCAwIDEtLjU5LjQuNS41IDAgMCAxLS40LS41OVpNMTIgMy41YS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxIDAtMWgzYy4yOCAwIC41LjIyLjUuNVpNMTEuNSAxN2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwIDAgMWgzWlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlclRvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAxNi4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzVaTTguNzMgM0g2YTMgMyAwIDAgMC0yLjgxIDEuOTYuNzUuNzUgMCAwIDAgMS4zOC41OGwuMDMtLjA3QTEuNSAxLjUgMCAwIDEgNiA0LjVoOGExLjUgMS41IDAgMCAxIDEuNDMgMS4wNC43NS43NSAwIDAgMCAxLjM4LS41OEEzIDMgMCAwIDAgMTQgM0g4LjczWm02LjY3IDExLjU1YTEuNSAxLjUgMCAwIDEtLjk0Ljg4Ljc1Ljc1IDAgMCAwIC41OCAxLjM4IDMgMyAwIDAgMCAxLjc3LTEuNzcuNzUuNzUgMCAxIDAtMS40MS0uNDlabS05Ljk1Ljg1YTEuNSAxLjUgMCAwIDEtLjg4LS45NC43NS43NSAwIDAgMC0xLjM4LjU4IDMgMyAwIDAgMCAxLjc3IDEuNzcuNzUuNzUgMCAxIDAgLjUtMS40MVpNMTcgOC43NWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wk0zLjc1IDhjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyVG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJUb3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgMTdhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMCAwIDFoM1ptMi45Ni0xLjA1YTIgMiAwIDAgMCAxLjUtMS41NS41LjUgMCAwIDEgLjU5LS40LjUuNSAwIDAgMSAuMzguNjYgMyAzIDAgMCAxLTIuMzQgMi4yOS41LjUgMCAwIDEtLjYtLjQuNS41IDAgMCAxIC40Ny0uNlptMi40Ny0xMC42MWEuNS41IDAgMSAxLS45OC4yQTIgMiAwIDAgMCAxNCA0SDZhMiAyIDAgMCAwLTEuOTUgMS42LjUuNSAwIDAgMS0uNi40LjUuNSAwIDAgMS0uMzgtLjY2QTMgMyAwIDAgMSA2IDNoOGEzIDMgMCAwIDEgMi45MyAyLjM0Wk01LjQgMTYuOTRhMyAzIDAgMCAxLTIuMzYtMi4zNi41LjUgMCAwIDEgLjQtLjU4LjUuNSAwIDAgMSAuNi40NiAyIDIgMCAwIDAgMS41NSAxLjUuNS41IDAgMCAxIC40LjU5LjUuNSAwIDAgMS0uNTkuNFpNMy41IDhjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVptMTMuNS41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJUb3BCb3R0b21GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyVG9wQm90dG9tRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNC41YTEuNSAxLjUgMCAwIDAtMS40MyAxLjA0Ljc1Ljc1IDAgMCAxLTEuMzgtLjU4QTMgMyAwIDAgMSA2IDNoOGEzIDMgMCAwIDEgMi44MSAxLjk2Ljc1Ljc1IDAgMCAxLTEuMzguNThBMS41IDEuNSAwIDAgMCAxNCA0LjVINlptLTMgNi43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41Wm0xMi41IDBhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNVptLTEwLjkgMy4zYy4yMi41Ni43Ny45NSAxLjQuOTVoOGExLjUgMS41IDAgMCAwIDEuNDMtMS4wM3YtLjAxYS43NS43NSAwIDAgMSAxLjM4LjU4QTMgMyAwIDAgMSAxNCAxN0g2YTMgMyAwIDAgMS0yLjgxLTEuOTYuNzUuNzUgMCAxIDEgMS40MS0uNDlaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJUb3BCb3R0b21SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvcmRlclRvcEJvdHRvbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy4wNyA1LjM0YS41LjUgMCAwIDAgLjM4LjY2LjUuNSAwIDAgMCAuNi0uNDZBMiAyIDAgMCAxIDYgNGg4YTIgMiAwIDAgMSAxLjk1IDEuNi41LjUgMCAwIDAgLjYuNC41LjUgMCAwIDAgLjM4LS42NkEzIDMgMCAwIDAgMTQgM0g2YTMgMyAwIDAgMC0yLjkzIDIuMzRabTAgOS4zMmEuNS41IDAgMCAxIC4zOC0uNjYuNS41IDAgMCAxIC42LjQ2QTIgMiAwIDAgMCA2IDE2aDhhMiAyIDAgMCAwIDEuOTUtMS42LjUuNSAwIDAgMSAuNi0uNC41LjUgMCAwIDEgLjM4LjY2QTMgMyAwIDAgMSAxNCAxN0g2YTMgMyAwIDAgMS0yLjkzLTIuMzRaTTE2LjUgMTJhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtLjUuNVpNMyAxMS41YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJUb3BCb3R0b21Eb3VibGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyVG9wQm90dG9tRG91YmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNC41YTEuNSAxLjUgMCAwIDAtMS40MyAxLjA0Ljc1Ljc1IDAgMCAxLTEuMzgtLjU4QTMgMyAwIDAgMSA2IDNoOGEzIDMgMCAwIDEgMi44MSAxLjk2Ljc1Ljc1IDAgMCAxLTEuMzguNThBMS41IDEuNSAwIDAgMCAxNCA0LjVINlpNMy43NSAxMWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMS41YS43NS43NSAwIDAgMSAxLjUgMHYxLjVjMCAuNDEtLjM0Ljc1LS43NS43NVptMTIuNSAwYS43NS43NSAwIDAgMS0uNzUtLjc1di0xLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm0tMTIuNSA0LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEyLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVaTTMgMTMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQm9yZGVyVG9wQm90dG9tRG91YmxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJUb3BCb3R0b21Eb3VibGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuMDUgNS40MUEzIDMgMCAwIDEgNiAzaDhhMyAzIDAgMCAxIDIuOTUgMi40MS41LjUgMCAwIDEtLjQuNi41LjUgMCAwIDEtLjYtLjQ3QTIgMiAwIDAgMCAxNCA0SDZhMiAyIDAgMCAwLTEuOTUgMS42LjUuNSAwIDAgMS0uNi40LjUuNSAwIDAgMS0uNC0uNTlaTTE2LjUgMTJhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtLjUuNVptLTEzIDRhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWk0zIDE0LjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptMC0zYS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJUb3BCb3R0b21UaGlja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3JkZXJUb3BCb3R0b21UaGlja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjEyIDUuNTJBMSAxIDAgMCAxIDYgNWg4YTEgMSAwIDAgMSAuODguNTIgMSAxIDAgMCAwIDEuODQtLjMzIDEgMSAwIDAgMC0uMjItLjgzQTMgMyAwIDAgMCAxNCAzSDZhMyAzIDAgMCAwLTIuNSAxLjM1IDEgMSAwIDEgMCAxLjYyIDEuMTdabTAgOC45NkExIDEgMCAwIDAgNiAxNWg4YTEgMSAwIDAgMCAuODgtLjUyIDEgMSAwIDAgMSAxLjg0LjMzIDEgMSAwIDAgMS0uMjIuODNBMyAzIDAgMCAxIDE0IDE3SDZhMyAzIDAgMCAxLTIuNS0xLjM1IDEgMSAwIDEgMSAxLjYyLTEuMTdaTTQgMTJhMSAxIDAgMCAxLTEtMVY5YTEgMSAwIDEgMSAyIDB2MmExIDEgMCAwIDEtMSAxWm0xMS0xYTEgMSAwIDAgMCAyIDBWOWExIDEgMCAxIDAtMiAwdjJaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3JkZXJUb3BCb3R0b21UaGlja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm9yZGVyVG9wQm90dG9tVGhpY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YTEuNSAxLjUgMCAwIDAtMS40MyAxLjA0Ljc1Ljc1IDAgMCAxLTEuMzgtLjU4QTMgMyAwIDAgMSA2IDNoOGEzIDMgMCAwIDEgMi44MSAxLjk2Ljc1Ljc1IDAgMCAxLTEuMzguNThBMS41IDEuNSAwIDAgMCAxNCA0LjVINlpNMy43NSAxMmEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41YS43NS43NSAwIDAgMSAxLjUgMHYyLjVjMCAuNDEtLjM0Ljc1LS43NS43NVpNMTQgMTUuNUg2YTEuNSAxLjUgMCAwIDEtMS40My0xLjA0Ljc1Ljc1IDAgMCAwLTEuMzguNThBMyAzIDAgMCAwIDYgMTdoOGEzIDMgMCAwIDAgMi44MS0xLjk2Ljc1Ljc1IDAgMCAwLTEuMzgtLjU4bC0uMDMuMDhhMS41IDEuNSAwIDAgMS0xLjQuOTZabTEuNS00LjI1YS43NS43NSAwIDAgMCAxLjUgMHYtMi41YS43NS43NSAwIDAgMC0xLjUgMHYyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm90RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjcgMTEuNWMuOTkgMCAxLjguODEgMS44IDEuODF2LjdhMy41MiAzLjUyIDAgMCAxLTEuMTMgMi41NWMtLjk1Ljg3LTIuNiAxLjQ0LTUuMzcgMS40NHMtNC40Mi0uNTctNS4zNy0xLjQ0QTMuNTIgMy41MiAwIDAgMSAzLjUgMTRIMy41di0uNjljMC0xIC44MS0xLjggMS44LTEuOGg5LjRaTTYuNSAzQzUuNjcgMyA1IDMuNjcgNSA0LjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTN2LS41YzAtLjMtLjIyLS41LS41LS41YS41LjUgMCAwIDAtLjUuNVYzaC0zWk03IDYuNWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTQgMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JvdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgNS41YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTUgMWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTMuNS00YS41LjUgMCAwIDAtMSAwVjNoLTNDNS42NyAzIDUgMy42NyA1IDQuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM3YtLjVaTTYuNSA0aDdjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTRjMC0uMjguMjItLjUuNS0uNVptMy43NSAxNGMyLjYyLS4wNCA0LjItLjYgNS4xMi0xLjQ0QTMuNTIgMy41MiAwIDAgMCAxNi41IDE0aC4wMXYtLjY5YzAtMS0uODEtMS44LTEuOC0xLjhoLTMuMnYtLjAxSDUuM2MtLjk5IDAtMS44LjgxLTEuOCAxLjgxdi43Yy4wNC43Ny4yNSAxLjc1IDEuMTMgMi41NS45My44NCAyLjUgMS40IDUuMTIgMS40NGguNVptLTQuOTQtNS41aDkuMzhjLjQ1IDAgLjgxLjM3LjgxLjgxdi40NGMwIC42OS0uMTMgMS40Ni0uOCAyLjA3QzE0IDE2LjQ1IDEyLjY2IDE3IDEwIDE3cy00LjAxLS41NS00LjctMS4xOGEyLjYzIDIuNjMgMCAwIDEtLjgtMi4wN3YtLjQ0YzAtLjQ0LjM2LS44LjgtLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3RBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm90QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgOWMuMTQgMCAuMjcgMCAuNC4wMi4wNy0uMTcuMS0uMzQuMS0uNTJ2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zdi0uNWMwLS4zLS4yMi0uNS0uNS0uNWEuNS41IDAgMCAwLS41LjVWM2gtM0M1LjY3IDMgNSAzLjY3IDUgNC41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNC44NGMuOS0uNjMgMS45OC0xIDMuMTYtMVpNNyA2LjVhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm00IDBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0tMiA4YzAtMS4xLjMzLTIuMTMuODktM0g1LjNjLTEgMC0xLjgxLjgxLTEuODEgMS44MXYuN2MuMDQuNzcuMjUgMS43NSAxLjEzIDIuNTUuOTUuODcgMi42IDEuNDQgNS4zNyAxLjQ0aC4yNkE1LjQ4IDUuNDggMCAwIDEgOSAxNC41Wm0xMCAwYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQm90QWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3RBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyIDUuNWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabS01IDFhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0zLjUtNGEuNS41IDAgMCAwLTEgMFYzaC0zQzUuNjcgMyA1IDMuNjcgNSA0LjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg0Ljg0YTUuNDcgNS40NyAwIDAgMSAzLjU3LS45OGMuMDYtLjE3LjA5LS4zNC4wOS0uNTJ2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zdi0uNVpNNi41IDRoN2MuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtNGMwLS4yOC4yMi0uNS41LS41Wm0yIDcuNWgxLjM5Yy0uMi4zMS0uMzguNjUtLjUyIDFINS4zMWEuOC44IDAgMCAwLS44MS44MXYuNDRjMCAuNjkuMTMgMS40Ni44IDIuMDcuNjUuNiAxLjkgMS4xMiA0LjMgMS4xOC4xOC4zNS40LjY5LjY2IDFoLS41MWMtMi42Mi0uMDQtNC4yLS42LTUuMTItMS40NEEzLjUyIDMuNTIgMCAwIDEgMy41IDE0SDMuNXYtLjY5YzAtMSAuODEtMS44IDEuOC0xLjhoMy4ydi0uMDFabTEwLjUgM2E0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvdFNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm90U3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC40OCA4Yy4xOCAwIC4zNS4wMy41Mi4xVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTN2LS41YzAtLjMtLjIyLS41LS41LS41YS41LjUgMCAwIDAtLjUuNVYzaC0zQzUuNjcgMyA1IDMuNjcgNSA0LjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2LjNsLjMzLTEuMDR2LS4wMUExLjQyIDEuNDIgMCAwIDEgMTQuNDkgOFpNNyA2LjVhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm00IDBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWk0xMCAxOGMxLjc0IDAgMy4wNC0uMjMgNC0uNjEuMDItLjE1LjA2LS4zLjEyLS40NGExLjQyIDEuNDIgMCAwIDEtLjk2LS45di0uMDFsLS4zNi0xLjA4LS4wMy0uMWExLjIgMS4yIDAgMCAwLS4yNi0uMzdsLS4wNi0uMDZhMS4yIDEuMiAwIDAgMC0uNC0uMjRsLTEuMDktLjM1aC0uMDFhMS40MiAxLjQyIDAgMCAxLS41NC0yLjM0SDUuM2MtMSAwLTEuODEuODEtMS44MSAxLjgxdi43Yy4wNC43Ny4yNSAxLjc1IDEuMTMgMi41NS45NS44NyAyLjYgMS40NCA1LjM3IDEuNDRabTUuMjMtNy42NS0uMzUtMS4wN2EuNDIuNDIgMCAwIDAtLjggMGwtLjM1IDEuMDdhMi4yIDIuMiAwIDAgMS0xLjM4IDEuNGwtMS4wNy4zNWEuNDIuNDIgMCAwIDAgMCAuOGwxLjA3LjM0YTIuMiAyLjIgMCAwIDEgMS40IDEuNGwuMzUgMS4wOGEuNDIuNDIgMCAwIDAgLjggMGwuMzUtMS4wN2EyLjIgMi4yIDAgMCAxIDEuNC0xLjRsMS4wNy0uMzVhLjQyLjQyIDAgMCAwIDAtLjhoLS4wMmwtMS4wOC0uMzVhMi4yIDIuMiAwIDAgMS0xLjQtMS40Wm0zLjc5IDYuNjEuNzYuMjVoLjAyYS4zLjMgMCAwIDEgLjE0LjQ3LjMuMyAwIDAgMS0uMTQuMWwtLjc3LjI2YTEuNTggMS41OCAwIDAgMC0xIDFsLS4yNC43NmEuMy4zIDAgMCAxLS41OCAwbC0uMjQtLjc3YTEuNTcgMS41NyAwIDAgMC0xLTFsLS43Ny0uMjVhLjMuMyAwIDAgMS0uMTQtLjQ2LjMuMyAwIDAgMSAuMTQtLjFsLjc3LS4yNmExLjU4IDEuNTggMCAwIDAgLjk4LTFsLjI1LS43NmEuMy4zIDAgMCAxIC41NyAwbC4yNS43N2ExLjU4IDEuNTggMCAwIDAgMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQm90U3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm90U3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgNS41YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTUgMWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTMuNS00YS41LjUgMCAwIDAtMSAwVjNoLTNDNS42NyAzIDUgMy42NyA1IDQuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuM2wuMzItMUg2LjVhLjUuNSAwIDAgMS0uNS0uNXYtNGMwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djMuNThhMS40MiAxLjQyIDAgMCAxIDEgLjAyVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTN2LS41Wm0tMiA5aDEuOWExLjQxIDEuNDEgMCAwIDAtLjQgMUg1LjNhLjguOCAwIDAgMC0uOC44MXYuNDRjMCAuNjkuMTMgMS40Ni44IDIuMDdDNiAxNi40NSA3LjM0IDE3IDEwIDE3YzEuNTUgMCAyLjY2LS4xOSAzLjQ0LS40N2ExLjQyIDEuNDIgMCAwIDAgLjY4LjQyYy0uMDYuMTQtLjEuMjktLjEyLjQ0LS45MS4zNi0yLjEzLjU5LTMuNzUuNlYxOGgtLjVjLTIuNjItLjA0LTQuMi0uNi01LjEyLTEuNDRBMy41MiAzLjUyIDAgMCAxIDMuNSAxNEgzLjV2LS42OWMwLTEgLjgxLTEuOCAxLjgtMS44aDMuMnYtLjAxWm02LjM4LTIuMjIuMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMiAyLjIyIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMC0uMTQuNDYuMy4zIDAgMCAwIC4xNC4xMWwuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJabS02LjE3LS41Mi4wNy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvd1RpZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3dUaWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy40NiA0LjYzYTIgMiAwIDAgMSAuNy42M0M4LjM4IDUuMSA4LjY4IDUgOSA1aDJjLjMxIDAgLjYuMS44NS4yNmEyIDIgMCAwIDEgLjctLjYzbDIuNS0xLjM2QTIgMiAwIDAgMSAxOCA1LjAzdjQuOTRhMiAyIDAgMCAxLTIuOTYgMS43NmwtMi41LTEuMzZhMiAyIDAgMCAxLS43LS42M0ExLjUgMS41IDAgMCAxIDExIDEwSDljLS4zMSAwLS42LS4xLS44NS0uMjZhMiAyIDAgMCAxLS43LjYzbC0yLjUgMS4zNkEyIDIgMCAwIDEgMiA5Ljk3VjUuMDNhMiAyIDAgMCAxIDIuOTYtMS43NmwyLjUgMS4zNlpNNS41IDcuNWMwIC4yOC4yMi41LjUuNWgyVjdINmEuNS41IDAgMCAwLS41LjVaTTE0IDdoLTJ2MWgyYS41LjUgMCAwIDAgMC0xWm0tNS43IDQuMDUtLjM2LjItMi40IDEuMy0uOTYgMi40QTEuNSAxLjUgMCAwIDAgNS45OCAxN0g3LjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjExaC0uNmwtLjEuMDVaTTExIDE1LjVWMTFoLjZsLjE4LjEuMjguMTQgMi40IDEuMy45NiAyLjRhMS41IDEuNSAwIDAgMS0xLjQgMi4wNkgxMi41YTEuNSAxLjUgMCAwIDEtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJvd1RpZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm93VGllUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAxMEg5djUuNWMwIC44My0uNjcgMS41LTEuNSAxLjVINS44OWExLjUgMS41IDAgMCAxLTEuNDMtMS45N2wxLjI0LTMuNy0uNzQuNEEyIDIgMCAwIDEgMiA5Ljk3VjUuMDNhMiAyIDAgMCAxIDIuOTYtMS43NmwyLjUgMS4zNmEyIDIgMCAwIDEgLjcuNjNDOC4zOCA1LjEgOC42OCA1IDkgNWgyYy4zMSAwIC42LjEuODUuMjZhMiAyIDAgMCAxIC43LS42M2wyLjUtMS4zNkEyIDIgMCAwIDEgMTggNS4wM3Y0Ljk0YTIgMiAwIDAgMS0yLjk2IDEuNzZsLS43NC0uNCAxLjI0IDMuN0ExLjUgMS41IDAgMCAxIDE0LjEgMTdIMTIuNWExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTBabTYtNC45N2ExIDEgMCAwIDAtMS40OC0uODhsLTIuNSAxLjM2YTEgMSAwIDAgMC0uNTIuODhWN2gyYS41LjUgMCAwIDEgMCAxaC0ydi42MWMwIC4zNy4yLjcuNTIuODhsMi41IDEuMzZBMSAxIDAgMCAwIDE3IDkuOTdWNS4wM1ptLTUgNC45djUuNTdjMCAuMjguMjIuNS41LjVoMS42MWEuNS41IDAgMCAwIC40OC0uNjZsLTEuNTYtNC42OC0uMDEtLjA0LS40OC0uMjVhMiAyIDAgMCAxLS41NC0uNDRabS01LjAzLjczLTEuNTYgNC42OGEuNS41IDAgMCAwIC40OC42Nkg3LjVhLjUuNSAwIDAgMCAuNS0uNVY5LjkzYTIgMiAwIDAgMS0uNTQuNDRsLS40OC4yNWEuNS41IDAgMCAxIDAgLjA0Wk0xMS41IDYuNUEuNS41IDAgMCAwIDExIDZIOWEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgLjUtLjV2LTJaTTcuNSA4aC0yYS41LjUgMCAwIDEgMC0xaDJ2LS42MWExIDEgMCAwIDAtLjUyLS44OGwtMi41LTEuMzZBMSAxIDAgMCAwIDMgNS4wM3Y0Ljk0YTEgMSAwIDAgMCAxLjQ4Ljg4bDIuNS0xLjM2YTEgMSAwIDAgMCAuNTItLjg4VjhaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3dsQ2hvcHN0aWNrc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3dsQ2hvcHN0aWNrc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjI0IDIuMDdhLjUuNSAwIDAgMSAuNjkuMTdMOS4wOSA5aDEuODJMNy4wNyAyLjc2YS41LjUgMCAwIDEgLjg2LS41MkwxMi4wOSA5aDUuNDFjLjI4IDAgLjUuMjIuNS41di41YzAgLjctLjA5IDEuMzYtLjI1IDJIMi4yNUE4LjAyIDguMDIgMCAwIDEgMiAxMHYtLjVjMC0uMjguMjItLjUuNS0uNWg1LjQxTDQuMDcgMi43NmEuNS41IDAgMCAxIC4xNy0uNjlaTTEwIDE4YTggOCAwIDAgMS03LjQyLTVoMTQuODRBOCA4IDAgMCAxIDEwIDE4WlwiXSk7XG5leHBvcnQgY29uc3QgQm93bENob3BzdGlja3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvd2xDaG9wc3RpY2tzUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjkzIDIuMjRhLjUuNSAwIDAgMC0uODYuNTJMNy45MSA5SDIuNWEuNS41IDAgMCAwLS41LjV2LjVhOCA4IDAgMCAwIDE2IDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTUuNDFMNy45MyAyLjI0YS41LjUgMCAwIDAtLjg2LjUyTDEwLjkxIDlIOS4xTDQuOTMgMi4yNFpNMy4yOSAxMkE3IDcgMCAwIDEgMyAxMGgxNGE3IDcgMCAwIDEtLjI5IDJIMy4yOVptLjM4IDFoMTIuNjZhNyA3IDAgMCAxLTEyLjY2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3dsU2FsYWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm93bFNhbGFkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuOTIgNC44M2EzLjUgMy41IDAgMCAxIDYuMjUuMTcgMy43NSAzLjc1IDAgMCAwLTMuMzkgMi4zMiA2LjE1IDYuMTUgMCAwIDAtMi44Ni0yLjQ5Wk0xNyA5YTMuNzYgMy43NiAwIDAgMC0yLjctMy44NUE0LjUgNC41IDAgMCAwIDYgNC40OCAxMC4wNyAxMC4wNyAwIDAgMCAzLjE0IDRhOS41IDkuNSAwIDAgMC0uNjcgMCAuNS41IDAgMCAwLS40Ny40NyA0Ljg0IDQuODQgMCAwIDAgMCAuNjdjLjAxLjQxLjA1Ljk4LjE3IDEuNjIuMTIuNjguMzMgMS40Ni42OCAyLjIzSDIuNWEuNS41IDAgMCAwLS41LjV2LjVjMCAuNy4wOSAxLjM2LjI1IDJoMTUuNWMuMTYtLjY0LjI1LTEuMy4yNS0ydi0uNWEuNS41IDAgMCAwLS41LS41SDE3Wk00IDlhNy44NyA3Ljg3IDAgMCAxLS44My0yLjRBMTAuNDcgMTAuNDcgMCAwIDEgMyA1YTkuNCA5LjQgMCAwIDEgMS41OS4xNmMxLjE4LjIyIDIuNTcuNjkgMy41NyAxLjdBNS44MyA1LjgzIDAgMCAxIDkuNDggOUg3LjdMNS44NSA3LjE1YS41LjUgMCAxIDAtLjcuN0w2LjI5IDlINFptNi41NCAwLS4wMi0uMDgtLjAxLS4xN2EyLjc1IDIuNzUgMCAxIDEgNS40OS4yNWgtNS40NlpNMTAgMThhOCA4IDAgMCAxLTcuNDItNWgxNC44NEE4IDggMCAwIDEgMTAgMThaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3dsU2FsYWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jvd2xTYWxhZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi45MiA0LjgzYTMuNSAzLjUgMCAwIDEgNi4yNS4xNyAzLjc1IDMuNzUgMCAwIDAtMy4zOSAyLjMyIDYuMTUgNi4xNSAwIDAgMC0yLjg2LTIuNDlaTTE3IDlhMy43NiAzLjc2IDAgMCAwLTIuNy0zLjg1QTQuNSA0LjUgMCAwIDAgNiA0LjQ4IDEwLjA3IDEwLjA3IDAgMCAwIDMuMTQgNGE5LjUgOS41IDAgMCAwLS42NyAwIC41LjUgMCAwIDAtLjQ3LjQ3IDQuODQgNC44NCAwIDAgMCAwIC42N2MuMDEuNDEuMDUuOTguMTcgMS42Mi4xMi42OC4zMyAxLjQ2LjY4IDIuMjNIMi41YS41LjUgMCAwIDAtLjUuNXYuNWE4IDggMCAxIDAgMTYgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNUgxN1pNNCA5YTcuODcgNy44NyAwIDAgMS0uODMtMi40QTEwLjQ3IDEwLjQ3IDAgMCAxIDMgNWE5LjQgOS40IDAgMCAxIDEuNTkuMTZjMS4xOC4yMiAyLjU3LjY5IDMuNTcgMS43QTUuODMgNS44MyAwIDAgMSA5LjQ4IDlINy43TDUuODUgNy4xNWEuNS41IDAgMSAwLS43LjdMNi4yOSA5SDRabTYuNTQgMC0uMDItLjA4LS4wMS0uMTdhMi43NSAyLjc1IDAgMSAxIDUuNDkuMjVoLTUuNDZaTTMgMTBoMTRhNyA3IDAgMCAxLS4yOSAySDMuMjlBNyA3IDAgMCAxIDMgMTBabTcgN2E3IDcgMCAwIDEtNi4zMy00aDEyLjY2QTcgNyAwIDAgMSAxMCAxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTAgNy45NiAzLjAzLTEuMjEtNy41LTMtMi41OSAxLjAzYTEuNSAxLjUgMCAwIDAtLjM2LjIxTDEwIDcuOTZabS03Ljk2LTIuMWMtLjAzLjEtLjA0LjItLjA0LjMydjcuNjRjMCAuNjIuMzcgMS4xNy45NCAxLjRsNS43NiAyLjNjLjI2LjEuNTMuMTcuOC4yMXYtOC45TDIuMDQgNS44NlptOC40NiAxMS44N2MuMjctLjA0LjU0LS4xLjgtLjIxbDUuNzYtMi4zYy41Ny0uMjMuOTQtLjc4Ljk0LTEuNFY2LjE4YzAtLjExLS4wMS0uMjItLjA0LS4zM0wxMC41IDguODR2OC45Wk0xNy40MiA1bC0zLjA0IDEuMjItNy41LTMgMS44Mi0uNzNhMy41IDMuNSAwIDAgMSAyLjYgMGw1Ljc2IDIuM2MuMTMuMDYuMjUuMTMuMzYuMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMyAyLjQ4YTMuNSAzLjUgMCAwIDAtMi42IDBsLTUuNzYgMi4zQTEuNSAxLjUgMCAwIDAgMiA2LjE4djcuNjRjMCAuNjIuMzcgMS4xNy45NCAxLjRsNS43NiAyLjNhMy41IDMuNSAwIDAgMCAyLjYgMGw1Ljc2LTIuM2MuNTctLjIzLjk0LS43OC45NC0xLjRWNi4xOGExLjUgMS41IDAgMCAwLS45NC0xLjRsLTUuNzYtMi4zWm0tMi4yMy45M2EyLjUgMi41IDAgMCAxIDEuODYgMGw1LjIyIDIuMDktMi4yNy45MS02LjE2LTIuNDYgMS4zNS0uNTRabS0yLjcgMS4wOCA2LjE2IDIuNDZMMTAgNy45NiAzLjg1IDUuNWwyLjUzLTEuMDFabTQuMTMgNC4zNSA2LjUtMi42djcuNThhLjUuNSAwIDAgMS0uMzEuNDdsLTUuNzYgMi4zYy0uMTQuMDYtLjI4LjEtLjQzLjEzVjguODRabS0xIDB2Ny44OGEyLjUgMi41IDAgMCAxLS40My0uMTNsLTUuNzYtMi4zYS41LjUgMCAwIDEtLjMxLS40N1Y2LjI0bDYuNSAyLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hBcnJvd0xlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94QXJyb3dMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjQyIDUgMTQuMzggNi4ybC03LjUtMyAxLjgyLS43M2EzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy4xMy4wNi4yNS4xMy4zNi4yMVpNMTAgNy45NWwzLjAzLTEuMjEtNy41LTMtMi41OSAxLjAzYTEuNSAxLjUgMCAwIDAtLjM2LjIxTDEwIDcuOTZaTTIgNi4xOGMwLS4xMS4wMS0uMjIuMDQtLjMzTDkuNSA4Ljg0djMuMzZhNS40OCA1LjQ4IDAgMCAwIDAgNC42di45M2EzLjUgMy41IDAgMCAxLS44LS4yMWwtNS43Ni0yLjNhMS41IDEuNSAwIDAgMS0uOTQtMS40VjYuMThabTE2IDB2NC4wOGE1LjQ4IDUuNDggMCAwIDAtNy41LjQ2VjguODRsNy40Ni0yLjk5Yy4wMy4xLjA0LjIyLjA0LjMzWm0xIDguMzJhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS02Ljg2LS4zNSAyLTJhLjUuNSAwIDEgMSAuNzEuN0wxMy43MSAxNGgyLjc5YS41LjUgMCAwIDEgMCAxaC0yLjhsMS4xNSAxLjE1YS41LjUgMCAxIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEtLjE1LS4zNS41LjUgMCAwIDEgLjE0LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveEFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94QXJyb3dMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4zIDIuNDhhMy41IDMuNSAwIDAgMC0yLjYgMGwtNS43NiAyLjNBMS41IDEuNSAwIDAgMCAyIDYuMTh2Ny42NGMwIC42Mi4zNyAxLjE3Ljk0IDEuNGw1Ljc2IDIuM2MuNDQuMTcuOS4yNiAxLjM4LjI1YTUuNSA1LjUgMCAwIDEtLjYyLTEuMDYgMi41IDIuNSAwIDAgMS0uMzktLjEybC01Ljc2LTIuM2EuNS41IDAgMCAxLS4zMS0uNDdWNi4yNGw2LjUgMi42djMuMzZjLjI1LS41NC42LTEuMDQgMS0xLjQ4VjguODRsNi41LTIuNlY5LjZjLjM2LjE4LjcuNCAxIC42NlY2LjE4YTEuNSAxLjUgMCAwIDAtLjk0LTEuNGwtNS43Ni0yLjNabS0yLjIzLjkzYTIuNSAyLjUgMCAwIDEgMS44NiAwbDUuMjIgMi4wOS0yLjI3LjkxLTYuMTYtMi40NiAxLjM1LS41NFptLTIuNyAxLjA4IDYuMTYgMi40NkwxMCA3Ljk2IDMuODUgNS41bDIuNTMtMS4wMVptMTIuNjMgMTBhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS02Ljg2LS4zNCAyLTJhLjUuNSAwIDEgMSAuNzEuN0wxMy43MSAxNGgyLjc5YS41LjUgMCAwIDEgMCAxaC0yLjhsMS4xNSAxLjE1YS41LjUgMCAxIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEtLjE1LS4zNS41LjUgMCAwIDEgLjE0LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveEFycm93VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94QXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy40MiA1IDE0LjM4IDYuMmwtNy41LTMgMS44Mi0uNzNhMy41IDMuNSAwIDAgMSAyLjYgMGw1Ljc2IDIuM2MuMTMuMDYuMjUuMTMuMzYuMjFaTTEwIDcuOTVsMy4wMy0xLjIxLTcuNS0zLTIuNTkgMS4wM2ExLjUgMS41IDAgMCAwLS4zNi4yMUwxMCA3Ljk2Wk0yIDYuMThjMC0uMTEuMDEtLjIyLjA0LS4zM0w5LjUgOC44NHYzLjM2YTUuNDggNS40OCAwIDAgMCAwIDQuNnYuOTNhMy41IDMuNSAwIDAgMS0uOC0uMjFsLTUuNzYtMi4zYTEuNSAxLjUgMCAwIDEtLjk0LTEuNFY2LjE4Wm0xNiAwdjQuMDhhNS40OCA1LjQ4IDAgMCAwLTcuNS40NlY4Ljg0bDcuNDYtMi45OWMuMDMuMS4wNC4yMi4wNC4zM1pNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLjM1LTYuODYgMiAyYS41LjUgMCAxIDEtLjcuNzFMMTUgMTMuNzF2Mi43OWEuNS41IDAgMCAxLTEgMHYtMi44bC0xLjE1IDEuMTVhLjUuNSAwIDEgMS0uNy0uN2wyLTJhLjUuNSAwIDAgMSAuMzUtLjE1LjUuNSAwIDAgMSAuMzUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hBcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hBcnJvd1VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4zIDIuNDhhMy41IDMuNSAwIDAgMC0yLjYgMGwtNS43NiAyLjNBMS41IDEuNSAwIDAgMCAyIDYuMTh2Ny42NGMwIC42Mi4zNyAxLjE3Ljk0IDEuNGw1Ljc2IDIuM2MuNDQuMTcuOS4yNiAxLjM4LjI1YTUuNSA1LjUgMCAwIDEtLjYyLTEuMDYgMi41IDIuNSAwIDAgMS0uMzktLjEybC01Ljc2LTIuM2EuNS41IDAgMCAxLS4zMS0uNDdWNi4yNGw2LjUgMi42djMuMzZjLjI1LS41NC42LTEuMDQgMS0xLjQ4VjguODRsNi41LTIuNlY5LjZjLjM2LjE4LjcuNCAxIC42NlY2LjE4YTEuNSAxLjUgMCAwIDAtLjk0LTEuNGwtNS43Ni0yLjNabS0yLjIzLjkzYTIuNSAyLjUgMCAwIDEgMS44NiAwbDUuMjIgMi4wOS0yLjI3LjkxLTYuMTYtMi40NiAxLjM1LS41NFptLTIuNyAxLjA4IDYuMTYgMi40NkwxMCA3Ljk2IDMuODUgNS41bDIuNTMtMS4wMVptOC4xMyAxNC41YTQuNSA0LjUgMCAxIDAgMC04Ljk5IDQuNSA0LjUgMCAwIDAgMCA5Wm0uMzUtNi44NSAyIDJhLjUuNSAwIDEgMS0uNy43MUwxNSAxMy43MXYyLjc5YS41LjUgMCAwIDEtMSAwdi0yLjhsLTEuMTUgMS4xNWEuNS41IDAgMSAxLS43LS43bDItMmEuNS41IDAgMCAxIC4zNS0uMTUuNS41IDAgMCAxIC4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveENoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNDIgNSAxNC4zOCA2LjJsLTcuNS0zIDEuODItLjczYTMuNSAzLjUgMCAwIDEgMi42IDBsNS43NiAyLjNjLjEzLjA2LjI1LjEzLjM2LjIxWk0xMCA3Ljk1bDMuMDMtMS4yMS03LjUtMy0yLjU5IDEuMDNhMS41IDEuNSAwIDAgMC0uMzYuMjFMMTAgNy45NlpNMiA2LjE4YzAtLjExLjAxLS4yMi4wNC0uMzNMOS41IDguODR2My4zNmE1LjQ4IDUuNDggMCAwIDAgMCA0LjZ2LjkzYTMuNSAzLjUgMCAwIDEtLjgtLjIxbC01Ljc2LTIuM2ExLjUgMS41IDAgMCAxLS45NC0xLjRWNi4xOFptMTYgMHY0LjA4YTUuNDggNS40OCAwIDAgMC03LjUuNDZWOC44NGw3LjQ2LTIuOTljLjAzLjEuMDQuMjIuMDQuMzNaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0xLTMuNyAyLjY1LTIuNjVhLjUuNSAwIDAgMSAuNy43bC0zIDNhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JveENoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMyAyLjQ4YTMuNSAzLjUgMCAwIDAtMi42IDBsLTUuNzYgMi4zQTEuNSAxLjUgMCAwIDAgMiA2LjE4djcuNjRjMCAuNjIuMzcgMS4xNy45NCAxLjRsNS43NiAyLjNjLjQ0LjE3LjkuMjYgMS4zOC4yNWE1LjUgNS41IDAgMCAxLS42Mi0xLjA2IDIuNSAyLjUgMCAwIDEtLjM5LS4xMmwtNS43Ni0yLjNhLjUuNSAwIDAgMS0uMzEtLjQ3VjYuMjRsNi41IDIuNnYzLjM2Yy4yNS0uNTQuNi0xLjA0IDEtMS40OFY4Ljg0bDYuNS0yLjZWOS42Yy4zNi4xOC43LjQgMSAuNjZWNi4xOGExLjUgMS41IDAgMCAwLS45NC0xLjRsLTUuNzYtMi4zWm0tMi4yMy45M2EyLjUgMi41IDAgMCAxIDEuODYgMGw1LjIyIDIuMDktMi4yNy45MS02LjE2LTIuNDYgMS4zNS0uNTRabS0yLjcgMS4wOCA2LjE2IDIuNDZMMTAgNy45NiAzLjg1IDUuNWwyLjUzLTEuMDFabTguMTMgMTQuNWE0LjUgNC41IDAgMSAwIDAtOC45OSA0LjUgNC41IDAgMCAwIDAgOVptLTEtMy43IDIuNjUtMi42NGEuNS41IDAgMCAxIC43LjdsLTMgM2EuNS41IDAgMCAxLS43IDBsLTEtMWEuNS41IDAgMCAxIC43LS43bC42NS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveERpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94RGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy40MiA1IDE0LjM4IDYuMmwtNy41LTMgMS44Mi0uNzNhMy41IDMuNSAwIDAgMSAyLjYgMGw1Ljc2IDIuM2MuMTMuMDYuMjUuMTMuMzYuMjFaTTEwIDcuOTVsMy4wMy0xLjIxLTcuNS0zLTIuNTkgMS4wM2ExLjUgMS41IDAgMCAwLS4zNi4yMUwxMCA3Ljk2Wm0tNy45Ni0yLjFjLS4wMy4xLS4wNC4yLS4wNC4zMnY3LjY0YzAgLjYyLjM3IDEuMTcuOTQgMS40bDUuNzYgMi4zYy4yNi4xLjUzLjE3LjguMjF2LS45NGE1LjQ4IDUuNDggMCAwIDEgMC00LjU4VjguODRMMi4wNCA1Ljg1Wk0xOCA2LjE3djQuMDhhNS40OCA1LjQ4IDAgMCAwLTcuNS40NlY4Ljg0bDcuNDYtMi45OWMuMDMuMS4wNC4yMi4wNC4zM1ptMSA4LjMyYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveERpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JveERpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjMgMi40OGEzLjUgMy41IDAgMCAwLTIuNiAwbC01Ljc2IDIuM0ExLjUgMS41IDAgMCAwIDIgNi4xOHY3LjY0YzAgLjYyLjM3IDEuMTcuOTQgMS40bDUuNzYgMi4zYy40NC4xNy45LjI2IDEuMzguMjVhNS41IDUuNSAwIDAgMS0uNjItMS4wNiAyLjUxIDIuNTEgMCAwIDEtLjM5LS4xMmwtNS43Ni0yLjNhLjUuNSAwIDAgMS0uMzEtLjQ3VjYuMjRsNi41IDIuNnYzLjM3Yy4yNS0uNTUuNi0xLjA1IDEtMS40OVY4Ljg0bDYuNS0yLjZWOS42Yy4zNi4xOC43LjQgMSAuNjZWNi4xOGExLjUgMS41IDAgMCAwLS45NC0xLjRsLTUuNzYtMi4zWm0tMi4yMy45M2EyLjUgMi41IDAgMCAxIDEuODYgMGw1LjIyIDIuMDktMi4yNy45MS02LjE2LTIuNDYgMS4zNS0uNTRabS0yLjcgMS4wOCA2LjE2IDIuNDZMMTAgNy45NiAzLjg1IDUuNWwyLjUzLTEuMDFaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQm94RWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjQyIDUgMTQuMzggNi4ybC03LjUtMyAxLjgyLS43M2EzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy4xMy4wNi4yNS4xMy4zNi4yMVpNMTAgNy45NWwzLjAzLTEuMjEtNy41LTMtMi41OSAxLjAzYTEuNSAxLjUgMCAwIDAtLjM2LjIxTDEwIDcuOTZabS03Ljk2LTIuMWMtLjAzLjEtLjA0LjItLjA0LjMydjcuNjRjMCAuNjIuMzcgMS4xNy45NCAxLjRsNS43NiAyLjMuMzYuMTIuMzctMS40OS4wNy0uMjNWOC44NEwyLjA0IDUuODVaTTE4IDYuMTd2Mi45NWEyLjg3IDIuODcgMCAwIDAtMi45LjcxbC00LjYgNC42di01LjZsNy40Ni0yLjk5Yy4wMy4xLjA0LjIyLjA0LjMzWm0tNy4wMiA5LjIgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4zIDIuNDhhMy41IDMuNSAwIDAgMC0yLjYgMGwtNS43NiAyLjNBMS41IDEuNSAwIDAgMCAyIDYuMTh2Ny42NGMwIC42Mi4zNyAxLjE3Ljk0IDEuNGw1Ljc2IDIuMy4zNi4xMi4yNC0uOTdhMi41MyAyLjUzIDAgMCAxLS4yMy0uMDhsLTUuNzYtMi4zYS41LjUgMCAwIDEtLjMxLS40N1Y2LjI0bDYuNSAyLjZ2Ny4wOGMuMTYtLjQ3LjQyLS45Ljc3LTEuMjVsLjIzLS4yM3YtNS42bDYuNS0yLjZWOWMuMzQtLjAxLjY4LjAzIDEgLjEzVjYuMThhMS41IDEuNSAwIDAgMC0uOTQtMS40bC01Ljc2LTIuM1ptLTIuMjMuOTNhMi41IDIuNSAwIDAgMSAxLjg2IDBsNS4yMiAyLjA5LTIuMjcuOTEtNi4xNi0yLjQ2IDEuMzUtLjU0Wm0tMi43IDEuMDggNi4xNiAyLjQ2TDEwIDcuOTYgMy44NSA1LjVsMi41My0xLjAxWm00LjYxIDEwLjg5IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQm94TXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94TXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNTggMi4zOGEzIDMgMCAwIDAtMi4xNiAwTDcuOTYgMy43QTEuNSAxLjUgMCAwIDAgNyA1LjF2MS4xYTQgNCAwIDAgMSAxLjk0LjIzbDMuNDYgMS4zNEEyLjUgMi41IDAgMCAxIDE0IDEwLjF2NC43OGMwIC4yLS4wMy40LS4wNy42bDMuMS0xLjJjLjU5LS4yMi45Ny0uNzguOTctMS40VjUuMWExLjUgMS41IDAgMCAwLS45Ni0xLjRsLTMuNDYtMS4zM1ptMS44NyAyLjE1YS41LjUgMCAxIDEgLjM1Ljk0bC0yLjc2IDEuMDZhMS41IDEuNSAwIDAgMS0xLjA4IDBMOS4yIDUuNDdhLjUuNSAwIDAgMSAuMzUtLjk0bDIuNzcgMS4wN2EuNS41IDAgMCAwIC4zNiAwbDIuNzctMS4wN1pNNi40MiA3LjM4YTMgMyAwIDAgMSAyLjE2IDBsMy40NiAxLjMzYy41OC4yMi45Ni43OC45NiAxLjR2NC43OGExLjUgMS41IDAgMCAxLS45NiAxLjRsLTMuNDYgMS4zM2EzIDMgMCAwIDEtMi4xNiAwbC0zLjQ2LTEuMzNhMS41IDEuNSAwIDAgMS0uOTYtMS40VjEwLjFjMC0uNjIuMzgtMS4xOC45Ni0xLjRsMy40Ni0xLjMzWm00LjY3IDIuOTFhLjUuNSAwIDAgMC0uNjQtLjI4TDcuNSAxMS4xNCA0LjU1IDEwYS41LjUgMCAxIDAtLjM1LjkzTDcgMTIuMDJ2Mi40OWEuNS41IDAgMCAwIDEgMFYxMmwyLjgtMS4wN2EuNS41IDAgMCAwIC4zLS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNTggMi4zOGEzIDMgMCAwIDAtMi4xNiAwTDcuOTYgMy43MUExLjUgMS41IDAgMCAwIDcgNS4xMXYxLjFhNCA0IDAgMCAxIDEgMHYtMS4xYzAtLjIuMTMtLjQuMzItLjQ3bDMuNDYtMS4zM2EyIDIgMCAwIDEgMS40NCAwbDMuNDYgMS4zM2MuMi4wOC4zMi4yNi4zMi40N3Y3Ljc4YzAgLjItLjEzLjQtLjMyLjQ3TDE0IDE0LjM5di41YzAgLjItLjAzLjQtLjA3LjZsMy4xLTEuMmMuNTktLjIyLjk3LS43OC45Ny0xLjRWNS4xMWExLjUgMS41IDAgMCAwLS45Ni0xLjRsLTMuNDYtMS4zM1ptMi41MSAyLjkyYS41LjUgMCAwIDAtLjY0LS4zbC0yLjc3IDEuMDdhLjUuNSAwIDAgMS0uMzYgMEw5LjU1IDUuMDFhLjUuNSAwIDEgMC0uMzUuOTNsMi43NiAxLjA3Yy4zNS4xMy43My4xMyAxLjA4IDBsMi43Ni0xLjA3YS41LjUgMCAwIDAgLjMtLjY0Wm0tNSA1YS41LjUgMCAwIDAtLjY0LS4zTDcuNSAxMS4xNWwtMi45NS0xLjEzYS41LjUgMCAwIDAtLjM1LjkzTDcgMTIuMDJ2Mi40OWEuNS41IDAgMSAwIDEgMHYtMi40OWwyLjgtMS4wOGEuNS41IDAgMCAwIC4zLS42NFpNOC41OCA3LjM4YTMgMyAwIDAgMC0yLjE2IDBMMi45NiA4LjcxYTEuNSAxLjUgMCAwIDAtLjk2IDEuNHY0Ljc4YzAgLjYyLjM4IDEuMTguOTYgMS40bDMuNDYgMS4zM2EzIDMgMCAwIDAgMi4xNiAwbDMuNDYtMS4zM2MuNTgtLjIyLjk2LS43OC45Ni0xLjR2LTQuNzhhMS41IDEuNSAwIDAgMC0uOTYtMS40TDguNTggNy4zOFptLTEuOC45M2EyIDIgMCAwIDEgMS40NCAwbDMuNDYgMS4zM2MuMi4wOC4zMi4yNi4zMi40N3Y0Ljc4YzAgLjItLjEzLjQtLjMyLjQ3bC0zLjQ2IDEuMzNhMiAyIDAgMCAxLTEuNDQgMGwtMy40Ni0xLjMzYS41LjUgMCAwIDEtLjMyLS40N3YtNC43OGMwLS4yLjEzLS40LjMyLS40N2wzLjQ2LTEuMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hNdWx0aXBsZUFycm93TGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hNdWx0aXBsZUFycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41OCAyLjM4YTMgMyAwIDAgMC0yLjE2IDBMNy45NiAzLjdBMS41IDEuNSAwIDAgMCA3IDUuMXYxLjFhNCA0IDAgMCAxIDEuOTQuMjNsMy40NiAxLjM0Yy42MS4yMyAxLjEuNyAxLjM2IDEuMjdhNS41NSA1LjU1IDAgMCAxIDQuMjQgMS4yVjUuMTJhMS41IDEuNSAwIDAgMC0uOTYtMS40bC0zLjQ2LTEuMzNabTEuODcgMi4xNWEuNS41IDAgMSAxIC4zNS45NGwtMi43NiAxLjA2YTEuNSAxLjUgMCAwIDEtMS4wOCAwTDkuMiA1LjQ3YS41LjUgMCAwIDEgLjM1LS45NGwyLjc3IDEuMDdhLjUuNSAwIDAgMCAuMzYgMGwyLjc3LTEuMDdabS0zLjQxIDQuMThjLjMuMTEuNTQuMzIuNzEuNTctLjYyLjIxLTEuMi41My0xLjcuOTNhLjUuNSAwIDAgMC0uNi0uMkw3LjUgMTEuMTQgNC41NSAxMGEuNS41IDAgMSAwLS4zNS45M0w3IDEyLjAydjIuNDlhLjUuNSAwIDAgMCAxIDBWMTJsMi4wOS0uOGE1LjQ4IDUuNDggMCAwIDAtLjM5IDUuOThsLTEuMTIuNDNhMyAzIDAgMCAxLTIuMTYgMGwtMy40Ni0xLjMzYTEuNSAxLjUgMCAwIDEtLjk2LTEuNFYxMC4xYzAtLjYyLjM4LTEuMTguOTYtMS40bDMuNDYtMS4zM2EzIDMgMCAwIDEgMi4xNiAwbDMuNDYgMS4zM1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMSAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hNdWx0aXBsZUFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94TXVsdGlwbGVBcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjU4IDIuMzhhMyAzIDAgMCAwLTIuMTYgMEw3Ljk2IDMuN0ExLjUgMS41IDAgMCAwIDcgNS4xdjEuMWE0IDQgMCAwIDEgMSAwVjUuMWMwLS4yLjEzLS40LjMyLS40N2wzLjQ2LTEuMzNhMiAyIDAgMCAxIDEuNDQgMGwzLjQ2IDEuMzNjLjIuMDguMzIuMjYuMzIuNDdWOS42Yy4zNi4xOC43LjQgMSAuNjZWNS4xYTEuNSAxLjUgMCAwIDAtLjk2LTEuNGwtMy40Ni0xLjMzWk0xMi4wNCA4LjdjLjMuMTEuNTQuMzIuNzEuNTctLjMzLjExLS42NS4yNi0uOTUuNDNhLjUuNSAwIDAgMC0uMTItLjA3TDguMjIgOC4zMWEyIDIgMCAwIDAtMS40NCAwTDMuMzIgOS42NGEuNS41IDAgMCAwLS4zMi40N3Y0Ljc4YzAgLjIuMTMuNC4zMi40N2wzLjQ2IDEuMzNhMiAyIDAgMCAwIDEuNDQgMGwxLjA3LS40MmMuMTEuMzIuMjUuNjMuNDEuOTJsLTEuMTIuNDNhMyAzIDAgMCAxLTIuMTYgMGwtMy40Ni0xLjMzYTEuNSAxLjUgMCAwIDEtLjk2LTEuNFYxMC4xYzAtLjYyLjM4LTEuMTguOTYtMS40bDMuNDYtMS4zM2EzIDMgMCAwIDEgMi4xNiAwbDMuNDYgMS4zM1ptLTEuNiAxLjNhLjUuNSAwIDAgMSAuNjEuMmMtLjM2LjMtLjY4LjYzLS45NiAxbC0yLjA5Ljh2Mi41YS41LjUgMCAwIDEtMSAwVjEybC0yLjgtMS4wN2EuNS41IDAgMSAxIC4zNS0uOTNsMi45NSAxLjEzTDEwLjQ1IDEwWm01LjY1LTQuNzJhLjUuNSAwIDAgMC0uNjQtLjI4bC0yLjc3IDEuMDZhLjUuNSAwIDAgMS0uMzYgMEw5LjU1IDUuMDFhLjUuNSAwIDAgMC0uMzUuOTNMMTEuOTYgN2MuMzUuMTQuNzMuMTQgMS4wOCAwbDIuNzYtMS4wNmEuNS41IDAgMCAwIC4zLS42NVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM0YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMSAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBCb3hNdWx0aXBsZUFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94TXVsdGlwbGVBcnJvd1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjU4IDIuMzhhMyAzIDAgMCAwLTIuMTYgMEw3Ljk2IDMuN0ExLjUgMS41IDAgMCAwIDcgNS4xdjEuMWE0IDQgMCAwIDEgMS45NC4yM2wzLjQ2IDEuMzRjLjYxLjIzIDEuMS43IDEuMzYgMS4yN2E1LjU1IDUuNTUgMCAwIDEgNC4yNCAxLjJWNS4xMmExLjUgMS41IDAgMCAwLS45Ni0xLjRsLTMuNDYtMS4zM1ptMS44NyAyLjE1YS41LjUgMCAxIDEgLjM1Ljk0bC0yLjc2IDEuMDZhMS41IDEuNSAwIDAgMS0xLjA4IDBMOS4yIDUuNDdhLjUuNSAwIDAgMSAuMzUtLjk0bDIuNzcgMS4wN2EuNS41IDAgMCAwIC4zNiAwbDIuNzctMS4wN1ptLTMuNDEgNC4xOGMuMy4xMS41NC4zMi43MS41Ny0uNjIuMjEtMS4yLjUzLTEuNy45M2EuNS41IDAgMCAwLS42LS4yTDcuNSAxMS4xNCA0LjU1IDEwYS41LjUgMCAxIDAtLjM1LjkzTDcgMTIuMDJ2Mi40OWEuNS41IDAgMCAwIDEgMFYxMmwyLjA5LS44YTUuNDggNS40OCAwIDAgMC0uMzkgNS45OGwtMS4xMi40M2EzIDMgMCAwIDEtMi4xNiAwbC0zLjQ2LTEuMzNhMS41IDEuNSAwIDAgMS0uOTYtMS40VjEwLjFjMC0uNjIuMzgtMS4xOC45Ni0xLjRsMy40Ni0xLjMzYTMgMyAwIDAgMSAyLjE2IDBsMy40NiAxLjMzWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgQm94TXVsdGlwbGVBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hNdWx0aXBsZUFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjU4IDIuMzhhMyAzIDAgMCAwLTIuMTYgMEw3Ljk2IDMuN0ExLjUgMS41IDAgMCAwIDcgNS4xdjEuMWE0IDQgMCAwIDEgMSAwVjUuMWMwLS4yLjEzLS40LjMyLS40N2wzLjQ2LTEuMzNhMiAyIDAgMCAxIDEuNDQgMGwzLjQ2IDEuMzNjLjIuMDguMzIuMjYuMzIuNDdWOS42Yy4zNi4xOC43LjQgMSAuNjZWNS4xYTEuNSAxLjUgMCAwIDAtLjk2LTEuNGwtMy40Ni0xLjMzWk0xMi4wNCA4LjdjLjMuMTEuNTQuMzIuNzEuNTctLjMzLjExLS42NS4yNi0uOTUuNDNhLjUuNSAwIDAgMC0uMTItLjA3TDguMjIgOC4zMWEyIDIgMCAwIDAtMS40NCAwTDMuMzIgOS42NGEuNS41IDAgMCAwLS4zMi40N3Y0Ljc4YzAgLjIuMTMuNC4zMi40N2wzLjQ2IDEuMzNhMiAyIDAgMCAwIDEuNDQgMGwxLjA3LS40MmMuMTEuMzIuMjUuNjMuNDEuOTJsLTEuMTIuNDNhMyAzIDAgMCAxLTIuMTYgMGwtMy40Ni0xLjMzYTEuNSAxLjUgMCAwIDEtLjk2LTEuNFYxMC4xYzAtLjYyLjM4LTEuMTguOTYtMS40bDMuNDYtMS4zM2EzIDMgMCAwIDEgMi4xNiAwbDMuNDYgMS4zM1ptLTEuNiAxLjNhLjUuNSAwIDAgMSAuNjEuMmMtLjM2LjMtLjY4LjYzLS45NiAxbC0yLjA5Ljh2Mi41YS41LjUgMCAwIDEtMSAwVjEybC0yLjgtMS4wN2EuNS41IDAgMSAxIC4zNS0uOTNsMi45NSAxLjEzTDEwLjQ1IDEwWm01LjY1LTQuNzJhLjUuNSAwIDAgMC0uNjQtLjI4bC0yLjc3IDEuMDZhLjUuNSAwIDAgMS0uMzYgMEw5LjU1IDUuMDFhLjUuNSAwIDAgMC0uMzUuOTNMMTEuOTYgN2MuMzUuMTQuNzMuMTQgMS4wOCAwbDIuNzYtMS4wNmEuNS41IDAgMCAwIC4zLS42NVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzZhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveE11bHRpcGxlQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JveE11bHRpcGxlQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjU4IDIuMzhhMyAzIDAgMCAwLTIuMTYgMEw3Ljk2IDMuN0ExLjUgMS41IDAgMCAwIDcgNS4xdjEuMWE0IDQgMCAwIDEgMS45NC4yM2wzLjQ2IDEuMzRjLjYxLjIzIDEuMS43IDEuMzYgMS4yN2E1LjU1IDUuNTUgMCAwIDEgNC4yNCAxLjJWNS4xMmExLjUgMS41IDAgMCAwLS45Ni0xLjRsLTMuNDYtMS4zM1ptMS44NyAyLjE1YS41LjUgMCAxIDEgLjM1Ljk0bC0yLjc2IDEuMDZhMS41IDEuNSAwIDAgMS0xLjA4IDBMOS4yIDUuNDdhLjUuNSAwIDAgMSAuMzUtLjk0bDIuNzcgMS4wN2EuNS41IDAgMCAwIC4zNiAwbDIuNzctMS4wN1ptLTMuNDEgNC4xOGMuMy4xMS41NC4zMi43MS41Ny0uNjIuMjEtMS4yLjUzLTEuNy45M2EuNS41IDAgMCAwLS42LS4yTDcuNSAxMS4xNCA0LjU1IDEwYS41LjUgMCAxIDAtLjM1LjkzTDcgMTIuMDJ2Mi40OWEuNS41IDAgMCAwIDEgMFYxMmwyLjA5LS44YTUuNDggNS40OCAwIDAgMC0uMzkgNS45OGwtMS4xMi40M2EzIDMgMCAwIDEtMi4xNiAwbC0zLjQ2LTEuMzNhMS41IDEuNSAwIDAgMS0uOTYtMS40VjEwLjFjMC0uNjIuMzgtMS4xOC45Ni0xLjRsMy40Ni0xLjMzYTMgMyAwIDAgMSAyLjE2IDBsMy40NiAxLjMzWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJveE11bHRpcGxlQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hNdWx0aXBsZUNoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNTggMi4zOGEzIDMgMCAwIDAtMi4xNiAwTDcuOTYgMy43QTEuNSAxLjUgMCAwIDAgNyA1LjF2MS4xYTQgNCAwIDAgMSAxIDBWNS4xYzAtLjIuMTMtLjQuMzItLjQ3bDMuNDYtMS4zM2EyIDIgMCAwIDEgMS40NCAwbDMuNDYgMS4zM2MuMi4wOC4zMi4yNi4zMi40N1Y5LjZjLjM2LjE4LjcuNCAxIC42NlY1LjFhMS41IDEuNSAwIDAgMC0uOTYtMS40bC0zLjQ2LTEuMzNaTTEyLjA0IDguN2MuMy4xMS41NC4zMi43MS41Ny0uMzMuMTEtLjY1LjI2LS45NS40M2EuNS41IDAgMCAwLS4xMi0uMDdMOC4yMiA4LjMxYTIgMiAwIDAgMC0xLjQ0IDBMMy4zMiA5LjY0YS41LjUgMCAwIDAtLjMyLjQ3djQuNzhjMCAuMi4xMy40LjMyLjQ3bDMuNDYgMS4zM2EyIDIgMCAwIDAgMS40NCAwbDEuMDctLjQyYy4xMS4zMi4yNS42My40MS45MmwtMS4xMi40M2EzIDMgMCAwIDEtMi4xNiAwbC0zLjQ2LTEuMzNhMS41IDEuNSAwIDAgMS0uOTYtMS40VjEwLjFjMC0uNjIuMzgtMS4xOC45Ni0xLjRsMy40Ni0xLjMzYTMgMyAwIDAgMSAyLjE2IDBsMy40NiAxLjMzWm0tMS42IDEuM2EuNS41IDAgMCAxIC42MS4yYy0uMzYuMy0uNjguNjMtLjk2IDFsLTIuMDkuOHYyLjVhLjUuNSAwIDAgMS0xIDBWMTJsLTIuOC0xLjA3YS41LjUgMCAxIDEgLjM1LS45M2wyLjk1IDEuMTNMMTAuNDUgMTBabTUuNjUtNC43MmEuNS41IDAgMCAwLS42NC0uMjhsLTIuNzcgMS4wNmEuNS41IDAgMCAxLS4zNiAwTDkuNTUgNS4wMWEuNS41IDAgMCAwLS4zNS45M0wxMS45NiA3Yy4zNS4xNC43My4xNCAxLjA4IDBsMi43Ni0xLjA2YS41LjUgMCAwIDAgLjMtLjY1Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg0YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJveE11bHRpcGxlU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JveE11bHRpcGxlU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjQyIDIuMzhhMyAzIDAgMCAxIDIuMTYgMGwzLjQ2IDEuMzNjLjU4LjIyLjk2Ljc4Ljk2IDEuNHY3Ljc4YzAgLjA3IDAgLjE1LS4wMi4yMkE0LjUgNC41IDAgMCAwIDEzLjc0IDlhMi41IDIuNSAwIDAgMC0xLjM0LTEuMjNMOC45NCA2LjQ0QTQgNCAwIDAgMCA3IDYuMjFWNS4xYzAtLjYyLjM4LTEuMTguOTYtMS40bDMuNDYtMS4zM1ptNC42NyAyLjQ0YS41LjUgMCAwIDAtLjY0LS4yOUwxMi42OCA1LjZhLjUuNSAwIDAgMS0uMzYgMEw5LjU1IDQuNTNhLjUuNSAwIDAgMC0uMzUuOTRsMi43NiAxLjA2Yy4zNS4xMy43My4xMyAxLjA4IDBsMi43Ni0xLjA2YS41LjUgMCAwIDAgLjMtLjY1Wk0xMi42IDkuMDlhMS41IDEuNSAwIDAgMC0uNTYtLjM4TDguNTggNy4zOGEzIDMgMCAwIDAtMi4xNiAwTDIuOTYgOC43QTEuNSAxLjUgMCAwIDAgMiAxMC4xdjQuNzhjMCAuNjIuMzggMS4xOC45NiAxLjRsMy40NiAxLjMzYTMgMyAwIDAgMCAyLjE2IDBsMS45NC0uNzVhNC40OSA0LjQ5IDAgMCAxLTEuMDItNS40M2wtMS41LjU4djIuNDlhLjUuNSAwIDAgMS0xIDBWMTJsLTIuOC0xLjA3YS41LjUgMCAxIDEgLjM1LS45M2wyLjk1IDEuMTNMMTAuNDUgMTBhLjUuNSAwIDAgMSAuMjUtLjAzYy41NC0uNDQgMS4yLS43NSAxLjktLjlabTMuNyA2LjVhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NmEuNS41IDAgMCAwIC43LS43TDE2LjMgMTUuNlptLS4zLTIuMWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveE11bHRpcGxlU2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hNdWx0aXBsZVNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNDIgMi4zOGEzIDMgMCAwIDEgMi4xNiAwbDMuNDYgMS4zM2MuNTguMjIuOTYuNzguOTYgMS40djcuNzhjMCAuMDcgMCAuMTUtLjAyLjIyYTQuNDggNC40OCAwIDAgMC0uOTgtMi40NFY1LjExYS41LjUgMCAwIDAtLjMyLS40N2wtMy40Ni0xLjMzYTIgMiAwIDAgMC0xLjQ0IDBMOC4zMiA0LjY0YS41LjUgMCAwIDAtLjMyLjQ3djEuMWE0IDQgMCAwIDAtMSAwVjUuMWMwLS42Mi4zOC0xLjE4Ljk2LTEuNGwzLjQ2LTEuMzNabTEuMTggNi43YTEuNSAxLjUgMCAwIDAtLjU2LS4zN0w4LjU4IDcuMzhhMyAzIDAgMCAwLTIuMTYgMEwyLjk2IDguN0ExLjUgMS41IDAgMCAwIDIgMTAuMXY0Ljc4YzAgLjYyLjM4IDEuMTguOTYgMS40bDMuNDYgMS4zM2EzIDMgMCAwIDAgMi4xNiAwbDEuOTQtLjc1Yy0uMjctLjIzLS41LS41LS43MS0uOGwtMS42LjYyYTIgMiAwIDAgMS0xLjQzIDBsLTMuNDYtMS4zM2EuNS41IDAgMCAxLS4zMi0uNDdWMTAuMWMwLS4yLjEzLS40LjMyLS40N2wzLjQ2LTEuMzNhMiAyIDAgMCAxIDEuNDQgMGwzLjE2IDEuMjJjLjM4LS4yLjc5LS4zNSAxLjIyLS40NFptLTEuOS45YS41LjUgMCAwIDAtLjI1LjAzTDcuNSAxMS4xNCA0LjU1IDEwYS41LjUgMCAxIDAtLjM1LjkzTDcgMTIuMDJ2Mi40OWEuNS41IDAgMCAwIDEgMFYxMmwxLjUtLjU3Yy4yOS0uNTcuNy0xLjA3IDEuMi0xLjQ2Wk0xNS40NSA1YS41LjUgMCAxIDEgLjM1LjkzTDEzLjA0IDdhMS41IDEuNSAwIDAgMS0xLjA4IDBMOS4yIDUuOTRBLjUuNSAwIDAgMSA5LjU1IDVsMi43NyAxLjA2YS41LjUgMCAwIDAgLjM2IDBsMi43Ny0xLjA2Wm0uODUgMTAuNTlhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMCAwIC43LS43TDE2LjMgMTUuNlptLS4zLTIuMWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJveFNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTAgNy45NiAzLjAzLTEuMjEtNy41LTMtMi41OSAxLjAzYTEuNSAxLjUgMCAwIDAtLjM2LjIxTDEwIDcuOTZabS03Ljk2LTIuMWMtLjAzLjEtLjA0LjItLjA0LjMydjMuMDhhNC41IDQuNSAwIDAgMSA1LjU2IDYuMThsMS45NCAxLjk0VjguODRMMi4wNCA1Ljg1Wm04LjQ2IDExLjg3Yy4yNy0uMDQuNTQtLjEuOC0uMjFsNS43Ni0yLjNjLjU3LS4yMy45NC0uNzguOTQtMS40VjYuMThjMC0uMTEtLjAxLS4yMi0uMDQtLjMzTDEwLjUgOC44NHY4LjlaTTE3LjQyIDVsLTMuMDQgMS4yMi03LjUtMyAxLjgyLS43M2EzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy4xMy4wNi4yNS4xMy4zNi4yMVpNMy41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w2LjMgMTUuNkEzLjUgMy41IDAgMSAwIDMuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQm94U2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNyAyLjQ4YTMuNSAzLjUgMCAwIDEgMi42IDBsNS43NiAyLjNjLjU3LjIzLjk0Ljc4Ljk0IDEuNHY3LjY0YTEuNSAxLjUgMCAwIDEtLjk0IDEuNGwtNS43NiAyLjNjLS40OC4xOS0uOTkuMjctMS41LjI0YTEuNSAxLjUgMCAwIDAtLjI0LS4zMmwtLjA2LS4wNlY4Ljg0TDMgNi4yNHYyLjc5Yy0uMzUuMDQtLjY4LjExLTEgLjIzVjYuMThjMC0uNjIuMzctMS4xNy45NC0xLjRsNS43Ni0yLjNabTIuMjMuOTNhMi41IDIuNSAwIDAgMC0xLjg2IDBsLTEuMzUuNTQgNi4xNiAyLjQ2IDIuMjctLjkxLTUuMjItMi4xWm0xLjYgMy41NEw2LjM4IDQuNDlsLTIuNTMgMUwxMCA3Ljk3bDIuNTMtMS4wMVpNMTcgNi4yNGwtNi41IDIuNnY3Ljg4Yy4xNS0uMDMuMjktLjA3LjQzLS4xM2w1Ljc2LTIuM2EuNS41IDAgMCAwIC4zMS0uNDdWNi4yNFpNMy41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w2LjMgMTUuNkEzLjUgMy41IDAgMSAwIDMuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQm94VG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCb3hUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjQyIDUgMTQuMzggNi4ybC03LjUtMyAxLjgyLS43M2EzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy4xMy4wNi4yNS4xMy4zNi4yMVpNMTAgNy45NWwzLjAzLTEuMjEtNy41LTMtMi41OSAxLjAzYTEuNSAxLjUgMCAwIDAtLjM2LjIxTDEwIDcuOTZabS03Ljk2LTIuMWMtLjAzLjEtLjA0LjItLjA0LjMydjcuNjRjMCAuNjIuMzcgMS4xNy45NCAxLjRsNS43NiAyLjMuMy4xVjEzLjVjMC0uNTYuMTktMS4wOC41LTEuNVY4Ljg0TDIuMDQgNS44NVpNMTggNi4xN3Y0Ljg3aC0uMDRBMi41IDIuNSAwIDAgMCAxNS41IDloLTJhMi41IDIuNSAwIDAgMC0yLjQ2IDIuMDRjLS4xOS4wNC0uMzcuMS0uNTQuMTdWOC44NGw3LjQ2LTIuOTljLjAzLjEuMDQuMjIuMDQuMzNaTTEyIDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMSAwIDEgMFYxNmgzdi41YS41LjUgMCAxIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQm94VG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQm94VG9vbGJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMyAyLjQ4YTMuNSAzLjUgMCAwIDAtMi42IDBsLTUuNzYgMi4zQTEuNSAxLjUgMCAwIDAgMiA2LjE4djcuNjRjMCAuNjIuMzcgMS4xNy45NCAxLjRsNS43NiAyLjMuMy4xdi0xLjA2TDMuMzEgMTQuM2EuNS41IDAgMCAxLS4zMS0uNDdWNi4yNGw2LjUgMi42VjEyYy4yNi0uMzQuNi0uNjIgMS0uOFY4Ljg1bDYuNS0yLjZWOS41Yy41LjM3Ljg0LjkxLjk2IDEuNTRsLjA0LjAxVjYuMThhMS41IDEuNSAwIDAgMC0uOTQtMS40bC01Ljc2LTIuM1ptLTIuMjMuOTNhMi41IDIuNSAwIDAgMSAxLjg2IDBsNS4yMiAyLjA5LTIuMjcuOTEtNi4xNi0yLjQ2IDEuMzUtLjU0Wm0tMi43IDEuMDggNi4xNiAyLjQ2TDEwIDcuOTYgMy44NSA1LjVsMi41My0xLjAxWm01LjYzIDcuNXYtLjVjMC0uODIuNjctMS40OSAxLjUtMS40OWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMy41LTFoLTJhLjUuNSAwIDAgMC0uNS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVaTTE3IDE2LjVWMTZoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxNmgydi41YS41LjUgMCAxIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDEgMCAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFjZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJhY2VzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSA1Ljc1QTIuNzUgMi43NSAwIDAgMSA2LjIzIDNhLjc1Ljc1IDAgMCAxIDAgMS41QzUuNTUgNC41IDUgNS4wNiA1IDUuNzVMNSA4LjM4YzAgLjYtLjIxIDEuMTctLjU4IDEuNjIuMzcuNDUuNTggMS4wMi41OCAxLjYydjIuNjNjMCAuNy41NiAxLjI1IDEuMjUgMS4yNWEuNzUuNzUgMCAxIDEgMCAxLjUgMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NXYtMi42M2MwLS40LS4yMi0uNzYtLjU3LS45NGEuNzUuNzUgMCAwIDEgMC0xLjM2Yy4zNS0uMTguNTctLjU0LjU3LS45NFY1Ljc1Wm0xMyAwQTIuNzUgMi43NSAwIDAgMCAxMy43NyAzYS43NS43NSAwIDAgMCAwIDEuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNUwxNSA4LjM4YzAgLjYuMjEgMS4xNy41OCAxLjYyYTIuNTYgMi41NiAwIDAgMC0uNTggMS42MnYyLjYzYzAgLjctLjU2IDEuMjUtMS4yNSAxLjI1YS43NS43NSAwIDEgMCAwIDEuNSAyLjc1IDIuNzUgMCAwIDAgMi43NS0yLjc1di0yLjYzYzAtLjQuMjItLjc2LjU3LS45NGEuNzUuNzUgMCAwIDAgMC0xLjM2IDEuMDYgMS4wNiAwIDAgMS0uNTctLjk0VjUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFjZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYWNlc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDNBMi41IDIuNSAwIDAgMCA0IDUuNXYyLjg4YzAgLjUtLjI4Ljk1LS43MiAxLjE3YS41LjUgMCAwIDAgMCAuOWMuNDQuMjIuNzIuNjguNzIgMS4xN3YyLjg4QTIuNSAyLjUgMCAwIDAgNi41IDE3YS41LjUgMCAwIDAgMC0xQTEuNSAxLjUgMCAwIDEgNSAxNC41di0yLjg4YzAtLjYyLS4yNC0xLjItLjY2LTEuNjIuNDItLjQyLjY2LTEgLjY2LTEuNjJWNS41QzUgNC42NyA1LjY3IDQgNi41IDRhLjUuNSAwIDAgMCAwLTFabTcgMEEyLjUgMi41IDAgMCAxIDE2IDUuNXYyLjg4YzAgLjUuMjguOTUuNzIgMS4xN2EuNS41IDAgMCAxIDAgLjkgMS4zIDEuMyAwIDAgMC0uNzIgMS4xN3YyLjg4YTIuNSAyLjUgMCAwIDEtMi41IDIuNS41LjUgMCAwIDEgMC0xYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMi44OGMwLS42Mi4yNC0xLjIuNjYtMS42MkEyLjMgMi4zIDAgMCAxIDE1IDguMzhWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyYWNlc1ZhcmlhYmxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYWNlc1ZhcmlhYmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNzUgMi41QTIuNzUgMi43NSAwIDAgMCAzIDUuMjV2My4xM2MwIC40LS4yMi43Ni0uNTcuOTRhLjc1Ljc1IDAgMCAwIDAgMS4zNmMuMzUuMTguNTcuNTQuNTcuOTR2My4xM2EyLjc1IDIuNzUgMCAwIDAgMi43NSAyLjc1Ljc1Ljc1IDAgMCAwIDAtMS41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTMuMTNjMC0uNi0uMjEtMS4xNy0uNTgtMS42Mi4zNy0uNDUuNTgtMS4wMi41OC0xLjYyVjUuMjVDNC41IDQuNTYgNS4wNiA0IDUuNzUgNGEuNzUuNzUgMCAwIDAgMC0xLjVabTguNSAwQTIuNzUgMi43NSAwIDAgMSAxNyA1LjI1djMuMTNjMCAuNC4yMi43Ni41Ny45NGEuNzUuNzUgMCAwIDEgMCAxLjM2Yy0uMzUuMTgtLjU3LjU0LS41Ny45NHYzLjEzYTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzUuNzUuNzUgMCAwIDEgMC0xLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0zLjEzYzAtLjYuMjEtMS4xNy41OC0xLjYyYTIuNTYgMi41NiAwIDAgMS0uNTgtMS42MlY1LjI1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTguMTEgNi4wNmEuNzUuNzUgMCAxIDAtMS4yMi44OEw5LjA4IDEwbC0yLjE5IDMuMDZhLjc1Ljc1IDAgMCAwIDEuMjIuODhMMTAgMTEuMjlsMS44OSAyLjY1YS43NS43NSAwIDAgMCAxLjIyLS44OEwxMC45MiAxMGwyLjE5LTMuMDZhLjc1Ljc1IDAgMCAwLTEuMjItLjg4TDEwIDguNzEgOC4xMSA2LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQnJhY2VzVmFyaWFibGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYWNlc1ZhcmlhYmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djIuODhjMCAuNS0uMjguOTUtLjcyIDEuMTdhLjUuNSAwIDAgMCAwIC45Yy40NC4yMi43Mi42OC43MiAxLjE3djIuODhBMi41IDIuNSAwIDAgMCA1LjUgMTdhLjUuNSAwIDAgMCAwLTFBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTIuODhjMC0uNjItLjI0LTEuMi0uNjYtMS42Mi40Mi0uNDIuNjYtMSAuNjYtMS42MlY1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGEuNS41IDAgMCAwIDAtMVptOSAwQTIuNSAyLjUgMCAwIDEgMTcgNS41djIuODhjMCAuNS4yOC45NS43MiAxLjE3YS41LjUgMCAwIDEgMCAuOSAxLjMgMS4zIDAgMCAwLS43MiAxLjE3djIuODhhMi41IDIuNSAwIDAgMS0yLjUgMi41LjUuNSAwIDAgMSAwLTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0yLjg4YzAtLjYyLjI0LTEuMi42Ni0xLjYyQTIuMyAyLjMgMCAwIDEgMTYgOC4zOFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41YS41LjUgMCAwIDEgMC0xWk03LjkgNi4yYS41LjUgMCAwIDAtLjguNkw5LjM4IDEwbC0yLjMgMy4yYS41LjUgMCAwIDAgLjgyLjZMMTAgMTAuODVsMi4xIDIuOTNhLjUuNSAwIDAgMCAuOC0uNThMMTAuNjIgMTBsMi4zLTMuMmEuNS41IDAgMSAwLS44Mi0uNkwxMCA5LjE1IDcuOSA2LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgQnJhaW5DaXJjdWl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYWluQ2lyY3VpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjEzIDIuOEEzLjkgMy45IDAgMCAxIDguNSAyYS45LjkgMCAwIDEgLjU0LjIxYy4xMy4xLjI0LjIyLjM1LjM1LjA3LjA5LjExLjIuMTEuMzJWNi41SDguNDFhMS41IDEuNSAwIDEgMCAwIDFIOS41djkuNDJhLjUuNSAwIDAgMS0uMTguMzhjLS40Ny4zOC0xLjA4LjctMS44Mi43LTEuMTkgMC0yLjA3LS42LTIuNjQtMS4zMWE0LjA2IDQuMDYgMCAwIDEtLjgyLTEuNzZjLS4zMy0uMDgtLjctLjI1LTEuMDUtLjU1QTMgMyAwIDAgMSAyIDEyYzAtLjU2LjA0LTEuMDYuMTItMS41aDMuMTNjLjY0IDAgMS4xNi40NyAxLjI0IDEuMDlhMS41IDEuNSAwIDEgMCAxIDBBMi4yNSAyLjI1IDAgMCAwIDUuMjUgOS41aC0yLjhhMS45IDEuOSAwIDAgMSAuODMtLjg1Yy0uMjktLjgzLS4yMS0xLjguMDYtMi41Ny4xOC0uNDkuNDUtLjk2Ljg0LTEuMjcuMjUtLjIuNTUtLjM0Ljg4LS4zNi4xNC0uNjguNTUtMS4yNSAxLjA3LTEuNjZabTQuMzcgMTEuN2guNzVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTEuODRhMS41IDEuNSAwIDEgMC0xIDB2MS44NGMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLS43NVYyLjg4YS41LjUgMCAwIDEgLjExLS4zMmMuMS0uMTMuMjItLjI1LjM1LS4zNUEuOS45IDAgMCAxIDExLjUgMmMuODUgMCAxLjcxLjI4IDIuMzcuOC41Mi40LjkzLjk3IDEuMDcgMS42NS4zMy4wMi42My4xNi44OC4zNi4zOS4zMS42Ni43OC44NCAxLjI3LjI3Ljc3LjM1IDEuNzQuMDYgMi41N2wuMjEuMTJjLjI4LjE5LjQ5LjQ1LjY0Ljc2LjMuNi40MyAxLjQ0LjQzIDIuNDdhMyAzIDAgMCAxLS45OSAyLjM4Yy0uMzQuMy0uNzIuNDctMS4wNS41NS0uMS41Ni0uMzggMS4yLS44MiAxLjc2QTMuMzQgMy4zNCAwIDAgMSAxMi41IDE4Yy0uNzQgMC0xLjM1LS4zMi0xLjgyLS43YS41LjUgMCAwIDEtLjE4LS4zOFYxNC41Wk03IDYuNWEuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVptMCA2YS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xWm02LTNhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFpbkNpcmN1aXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYWluQ2lyY3VpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4xMyAyLjhBMy45IDMuOSAwIDAgMSA4LjUgMmExLjc2IDEuNzYgMCAwIDEgMS41Ljc4QTEuNzYgMS43NiAwIDAgMSAxMS41IDJjLjg1IDAgMS43MS4yOCAyLjM3LjguNTIuNC45My45NyAxLjA3IDEuNjUuMzMuMDIuNjMuMTYuODguMzYuMzkuMzEuNjYuNzguODQgMS4yNy4yNy43Ny4zNSAxLjc0LjA2IDIuNTdsLjIxLjEyYy4yOC4xOS40OS40NS42NC43Ni4zLjYuNDMgMS40NC40MyAyLjQ3YTMgMyAwIDAgMS0uOTkgMi4zOGMtLjM0LjMtLjcyLjQ3LTEuMDUuNTUtLjEuNTYtLjM4IDEuMi0uODIgMS43NkEzLjM0IDMuMzQgMCAwIDEgMTIuNSAxOGMtLjk0IDAtMS42OS0uNTItMi4xNy0xLjAzYTQuMjUgNC4yNSAwIDAgMS0uMzMtLjM4Yy0uMS4xMi0uMi4yNS0uMzMuMzhBMy4wNiAzLjA2IDAgMCAxIDcuNSAxOGMtMS4xOSAwLTIuMDctLjYtMi42NC0xLjMxYTQuMDYgNC4wNiAwIDAgMS0uODItMS43NmMtLjMzLS4wOC0uNy0uMjUtMS4wNS0uNTVBMyAzIDAgMCAxIDIgMTJjMC0xLjAzLjEzLTEuODcuNDMtMi40N2ExLjkxIDEuOTEgMCAwIDEgLjg1LS44OGMtLjI5LS44My0uMjEtMS44LjA2LTIuNTcuMTgtLjQ5LjQ1LS45Ni44NC0xLjI3LjI1LS4yLjU1LS4zNC44OC0uMzYuMTQtLjY4LjU1LTEuMjUgMS4wNy0xLjY2Wk05LjUgNC41VjQuNWExLjc4IDEuNzggMCAwIDAtLjAyLS4yNCAyLjU4IDIuNTggMCAwIDAtLjE0LS41N2MtLjA3LS4yLS4xNy0uMzgtLjMtLjVBLjc2Ljc2IDAgMCAwIDguNSAzYy0uNjUgMC0xLjI5LjIyLTEuNzYuNThDNi4yOCAzLjk0IDYgNC40MyA2IDVhLjUuNSAwIDAgMS0uNjYuNDdjLS4xOS0uMDYtLjM1LS4wMi0uNTMuMTItLjIuMTYtLjM5LjQ1LS41My44My0uMjguNzgtLjI1IDEuNzMuMTQgMi4zQS41LjUgMCAwIDEgNC41IDloLjc1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1di4zNGExLjUgMS41IDAgMSAxLTEgMHYtLjM0YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUgzLjVhLjUuNSAwIDAgMS0uMTgtLjAzYy0uMi40LS4zMiAxLjA2LS4zMiAyLjAzIDAgLjg2LjMxIDEuMzQuNjQgMS42Mi4zNC4zLjczLjM4Ljg2LjM4LjI4IDAgLjUuMjIuNS41IDAgLjM3LjIgMS4wMS42NCAxLjU2LjQzLjU0IDEuMDUuOTQgMS44Ni45NC41NiAwIDEuMDYtLjMxIDEuNDUtLjcyYTMuMTIgMy4xMiAwIDAgMCAuNTUtLjgxVjcuNUg4LjQxYTEuNSAxLjUgMCAxIDEgMC0xSDkuNXYtMlptMSAxMHYuOTdsLjAxLjAzLjEuMmMuMS4xNy4yNS4zOC40NC41OC4zOS40LjkuNzIgMS40NS43Mi44MSAwIDEuNDMtLjQgMS44Ni0uOTQuNDQtLjU1LjY0LTEuMi42NC0xLjU2IDAtLjI4LjIyLS41LjUtLjUuMTMgMCAuNTItLjA4Ljg2LS4zOC4zMy0uMjguNjQtLjc2LjY0LTEuNjIgMC0uOTctLjEyLTEuNjMtLjMyLTIuMDMtLjEtLjE5LS4yLS4zLS4zLS4zN2EuNjYuNjYgMCAwIDAtLjM4LS4xLjUuNSAwIDAgMS0uNDItLjc4Yy4zOS0uNTcuNDItMS41Mi4xNC0yLjNhMS44OSAxLjg5IDAgMCAwLS41My0uODNjLS4xOC0uMTQtLjM0LS4xOC0uNTMtLjEyQS41LjUgMCAwIDEgMTQgNWMwLS41Ny0uMjgtMS4wNi0uNzQtMS40MkEyLjkxIDIuOTEgMCAwIDAgMTEuNSAzYS43Ni43NiAwIDAgMC0uNTQuMTljLS4xMy4xMS0uMjMuMjgtLjMuNDlhMi41OCAyLjU4IDAgMCAwLS4xNi44MXY5LjAxaC43NWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTEuODRhMS41IDEuNSAwIDEgMSAxIDB2MS44NGMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtLjc1Wk02LjUgN2EuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMFpNMTMgOS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0tNiAzYS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQnJhbmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1YTMgMyAwIDAgMS0yLjE1IDIuODhBNS43NiA1Ljc2IDAgMCAwIDEyIDkuOThhMyAzIDAgMSAxIC4xNyAxLjAxQTYuOCA2LjggMCAwIDEgNy41IDl2My4wNWEzIDMgMCAxIDEtMSAwVjcuOTZBMyAzIDAgMSAxIDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFuY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNWEzIDMgMCAwIDEtMi4xNSAyLjg4QTUuNzYgNS43NiAwIDAgMCAxMiA5Ljk4YTMgMyAwIDEgMSAuMTcgMS4wMUE2LjggNi44IDAgMCAxIDcuNSA5djMuMDVhMyAzIDAgMSAxLTEgMFY3Ljk2QTMgMyAwIDEgMSAxMCA1Wk03IDdhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0xMCAzYTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFpNNyAxN2EyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFuY2hDb21wYXJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaENvbXBhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMTUgNi44NWEuNS41IDAgMCAwIC43LS43TDEwLjcxIDVoMS43OUEyLjUgMi41IDAgMCAxIDE1IDcuNVYxMmEzIDMgMCAxIDAgMSAuMTdWNy41QTMuNSAzLjUgMCAwIDAgMTIuNSA0aC0xLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyWk01IDhhMyAzIDAgMSAwLTEtLjE3djQuNjdBMy41IDMuNSAwIDAgMCA3LjUgMTZoMS44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMOS4yOSAxNUg3LjVBMi41IDIuNSAwIDAgMSA1IDEyLjVWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyYW5jaENvbXBhcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaENvbXBhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjE1IDYuODVhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSA1aDEuNzlBMi41IDIuNSAwIDAgMSAxNSA3LjVWMTJhMyAzIDAgMSAwIDEgLjE3VjcuNUEzLjUgMy41IDAgMCAwIDEyLjUgNGgtMS44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMlpNMTcgMTVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk04IDVhMyAzIDAgMCAxLTMgM3Y0LjVBMi41IDIuNSAwIDAgMCA3LjUgMTVoMS44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMOS4yOSAxNkg3LjVBMy41IDMuNSAwIDAgMSA0IDEyLjVWNy44M0EzIDMgMCAxIDEgOCA1Wk03IDVhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQnJhbmNoRm9ya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmFuY2hGb3JrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNWEzIDMgMCAwIDEtMi41IDIuOTZWMTBIMTJjLjgzIDAgMS41LS42NyAxLjUtMS41di0uNTRhMyAzIDAgMSAxIDEgMHYuNTRBMi41IDIuNSAwIDAgMSAxMiAxMUg2LjV2MS4wNGEzIDMgMCAxIDEtMSAwVjcuOTZBMyAzIDAgMSAxIDkgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyYW5jaEZvcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaEZvcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNWEzIDMgMCAxIDAtMy41IDIuOTZ2NC4wOGEzIDMgMCAxIDAgMSAwVjExSDEyYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtLjU0YTMgMyAwIDEgMC0xIDB2LjU0YzAgLjgzLS42NyAxLjUtMS41IDEuNUg2LjVWNy45NkEzIDMgMCAwIDAgOSA1Wk02IDdhMiAyIDAgMSAxIDAtNCAyIDIgMCAwIDEgMCA0Wm0wIDEwYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFpNMTYgNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFuY2hGb3JrSGludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmFuY2hGb3JrSGludEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMyAzIDAgMCAwLS41IDUuOTZ2My43OWEuNS41IDAgMCAwIDEgMFYxMUgxMmEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LS41NGEzIDMgMCAxIDAtMSAwdi41NGMwIC44My0uNjcgMS41LTEuNSAxLjVINi41VjcuOTZBMyAzIDAgMCAwIDYgMlpNNC44NyAxMy40YS41LjUgMCAxIDAtLjU4LS44IDMuMDIgMy4wMiAwIDAgMC0xLjEyIDEuNTQuNS41IDAgMSAwIC45Ni4zIDEuOTkgMS45OSAwIDAgMSAuNzQtMS4wM1ptMi45LS44YS41LjUgMCAxIDAtLjU3LjggMi4wMiAyLjAyIDAgMCAxIC43NSAxLjA0LjUuNSAwIDEgMCAuOTUtLjMgMi45OSAyLjk5IDAgMCAwLTEuMTItMS41NVpNNC4zIDE2YS41LjUgMCAwIDAtLjg4LjUgMyAzIDAgMCAwIDEuMzggMS4yNy41LjUgMCAxIDAgLjQyLS45MSAyIDIgMCAwIDEtLjkyLS44NVptNC4zNy41YS41LjUgMCAwIDAtLjg3LS41IDIgMiAwIDAgMS0uOTguODguNS41IDAgMSAwIC4zOC45MiAzIDMgMCAwIDAgMS40Ny0xLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFuY2hGb3JrSGludFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJhbmNoRm9ya0hpbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEzIDMgMCAwIDAtLjUgNS45NnYzLjc5YS41LjUgMCAwIDAgMSAwVjExSDEyYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtLjU0YTMgMyAwIDEgMC0xIDB2LjU0YzAgLjgzLS42NyAxLjUtMS41IDEuNUg2LjVWNy45NkEzIDMgMCAwIDAgNiAyWm04IDVhMiAyIDAgMSAxIDAtNCAyIDIgMCAwIDEgMCA0Wk02IDdhMiAyIDAgMSAxIDAtNCAyIDIgMCAwIDEgMCA0Wm0tMS4xMyA2LjRhLjUuNSAwIDEgMC0uNTgtLjggMy4wMiAzLjAyIDAgMCAwLTEuMTIgMS41NC41LjUgMCAxIDAgLjk2LjMgMS45OSAxLjk5IDAgMCAxIC43NC0xLjAzWm0yLjktLjhhLjUuNSAwIDEgMC0uNTcuOCAyLjAyIDIuMDIgMCAwIDEgLjc1IDEuMDQuNS41IDAgMSAwIC45NS0uMyAyLjk5IDIuOTkgMCAwIDAtMS4xMi0xLjU1Wk00LjMgMTZhLjUuNSAwIDAgMC0uODguNSAzIDMgMCAwIDAgMS4zOCAxLjI3LjUuNSAwIDEgMCAuNDItLjkxIDIgMiAwIDAgMS0uOTItLjg1Wm00LjM3LjVhLjUuNSAwIDAgMC0uODctLjUgMiAyIDAgMCAxLS45OC44OC41LjUgMCAxIDAgLjM4LjkyIDMgMyAwIDAgMCAxLjQ3LTEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJyYW5jaEZvcmtMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaEZvcmtMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSA3Ljk2YTMgMyAwIDEgMC0xIDB2NC4wOGEzIDMgMCAxIDAgMSAwVjExSDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtLjU0YTMgMyAwIDEgMC0xIDB2LjU0YzAgLjgzLS42NyAxLjUtMS41IDEuNUg1LjVWNy45NlptNyA1LjA0YTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFuY2hGb3JrTGlua1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJhbmNoRm9ya0xpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMmEzIDMgMCAwIDEgLjUgNS45NlYxMEgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LS41NGEzIDMgMCAxIDEgMSAwdi41NEEyLjUgMi41IDAgMCAxIDExIDExSDUuNXYxLjA0YTMgMyAwIDEgMS0xIDBWNy45NkEzIDMgMCAwIDEgNSAyWk0zIDVhMiAyIDAgMSAwIDQgMCAyIDIgMCAwIDAtNCAwWm0wIDEwYTIgMiAwIDEgMCA0IDAgMiAyIDAgMCAwLTQgMFptMTAtOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabS0uNSA2YTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmFuY2hSZXF1ZXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyYW5jaFJlcXVlc3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCA1YTMgMyAwIDAgMS0yLjUgMi45NnY0LjA4YTMgMyAwIDEgMS0xIDBWNy45NkEzIDMgMCAxIDEgOCA1Wm0zLjg1IDEuODVhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMCAxIC43LjdMMTAuNzEgNGgxLjc5QTMuNSAzLjUgMCAwIDEgMTYgNy41djQuNjdhMyAzIDAgMSAxLTEtLjE3VjcuNUEyLjUgMi41IDAgMCAwIDEyLjUgNWgtMS44bDEuMTUgMS4xNWMuMi4yLjIuNSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgQnJhbmNoUmVxdWVzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJhbmNoUmVxdWVzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDcuOTZhMyAzIDAgMSAwLTEgMHY0LjA4YTMgMyAwIDEgMCAxIDBWNy45NlpNNSA3YTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFptMiA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptNC4xNS04LjE1YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgNWgxLjc5QTIuNSAyLjUgMCAwIDEgMTUgNy41VjEyYTMgMyAwIDEgMCAxIC4xN1Y3LjVBMy41IDMuNSAwIDAgMCAxMi41IDRoLTEuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJaTTE3IDE1YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyZWFrb3V0Um9vbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmVha291dFJvb21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM2gtMy4zNUEzLjk5IDMuOTkgMCAwIDAgMTIgMTR2LTJhNCA0IDAgMCAwLTQtNEg2Yy0xLjIgMC0yLjI3LjUyLTMgMS4zNVY2Wm0zIDNhMyAzIDAgMCAwLTMgM3YyYTMgMyAwIDAgMCAzIDNoMmEzIDMgMCAwIDAgMy0zdi0yYTMgMyAwIDAgMC0zLTNINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyZWFrb3V0Um9vbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJlYWtvdXRSb29tUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzaC0zLjM1Yy4zMi0uMjkuNi0uNjIuODEtMUgxNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2Mi41NGMtLjM4LjIxLS43MS40OS0xIC44MVY2Wm0zIDNhMyAzIDAgMCAwLTMgM3YyYTMgMyAwIDAgMCAzIDNoMmEzIDMgMCAwIDAgMy0zdi0yYTMgMyAwIDAgMC0zLTNINlptLTIgM2MwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0yWlwiXSk7XG5leHBvcnQgY29uc3QgQnJpZWZjYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyaWVmY2FzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDVWMy43NUM3IDIuNzggNy43OCAyIDguNzUgMmgyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWNWgxLjVBMi41IDIuNSAwIDAgMSAxNyA3LjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTF2LS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41di41SDQuNUExLjUgMS41IDAgMCAxIDMgOC41di0xQTIuNSAyLjUgMCAwIDEgNS41IDVIN1ptMSAwaDRWMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMC0uNzUuNzVWNVptLTUgNS41djNBMi41IDIuNSAwIDAgMCA1LjUgMTZoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNjLS40Mi4zMS0uOTQuNS0xLjUuNUgxMXYuNWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNVYxMUg0LjVjLS41NiAwLTEuMDgtLjE5LTEuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyaWVmY2FzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJpZWZjYXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDVWMy43NUM3IDIuNzggNy43OCAyIDguNzUgMmgyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWNWgxLjVBMi41IDIuNSAwIDAgMSAxNyA3LjV2NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDEzLjV2LTZBMi41IDIuNSAwIDAgMSA1LjUgNUg3Wm0xLTEuMjVWNWg0VjMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk01LjUgNkM0LjY3IDYgNCA2LjY3IDQgNy41djFjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYtLjVjMC0uMjguMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXYuNWgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVptOSA1SDExdi41YS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41VjExSDUuNWMtLjU2IDAtMS4wOC0uMTktMS41LS41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjLS40Mi4zMS0uOTQuNS0xLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyaWVmY2FzZU1lZGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJpZWZjYXNlTWVkaWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDVWMy43NUM3IDIuNzggNy43OCAyIDguNzUgMmgyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWNWgxLjVBMi41IDIuNSAwIDAgMSAxNyA3LjV2NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDEzLjV2LTZBMi41IDIuNSAwIDAgMSA1LjUgNUg3Wm0xIDBoNFYzLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwLS43NS43NVY1Wm0yLjUgM2EuNS41IDAgMCAwLTEgMHYyaC0yYS41LjUgMCAwIDAgMCAxaDJ2MmEuNS41IDAgMCAwIDEgMHYtMmgyYS41LjUgMCAwIDAgMC0xaC0yVjhaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmllZmNhc2VNZWRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmllZmNhc2VNZWRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljc1IDNoMi41Yy40MSAwIC43NS4zNC43NS43NVY1SDhWMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wk03IDMuNzVWNUg1LjVBMi41IDIuNSAwIDAgMCAzIDcuNXY2QTIuNSAyLjUgMCAwIDAgNS41IDE2aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di02QTIuNSAyLjUgMCAwIDAgMTQuNSA1SDEzVjMuNzVDMTMgMi43OCAxMi4yMiAyIDExLjI1IDJoLTIuNUM3Ljc4IDIgNyAyLjc4IDcgMy43NVpNMTQuNSA2Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxMy41di02QzQgNi42NyA0LjY3IDYgNS41IDZoOVpNMTAgNy41Yy4yOCAwIC41LjIyLjUuNXYyaDJhLjUuNSAwIDAgMSAwIDFoLTJ2MmEuNS41IDAgMCAxLTEgMHYtMmgtMmEuNS41IDAgMCAxIDAtMWgyVjhjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyaWVmY2FzZU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmllZmNhc2VPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDUuMkEyLjUgMi41IDAgMCAwIDMgNy41djFjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYtLjNsMS45NyAxLjk4YS41LjUgMCAwIDEtLjQ3LjMyaC0xYS41LjUgMCAwIDEtLjUtLjVWMTFINC41Yy0uNTYgMC0xLjA4LS4xOS0xLjUtLjV2M0EyLjUgMi41IDAgMCAwIDUuNSAxNmg5Yy4yNCAwIC40Ny0uMDMuNy0uMWwxLjk1IDEuOTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43TDQuNSA1LjIxWm04LjYyIDUuOCAzLjYyIDMuNjJjLjE3LS4zNC4yNi0uNzIuMjYtMS4xMnYtM2MtLjQyLjMxLS45NC41LTEuNS41aC0yLjM4Wk03IDQuODggMTIuMTIgMTBoMy4zOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFBMi41IDIuNSAwIDAgMCAxNC41IDVIMTNWMy43NUMxMyAyLjc4IDEyLjIyIDIgMTEuMjUgMmgtMi41QzcuNzggMiA3IDIuNzggNyAzLjc1djEuMTNaTTggNVYzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NVY1SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmllZmNhc2VPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyaWVmY2FzZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDUuMiAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTUuMiAxNS45Yy0uMjMuMDctLjQ2LjEtLjcuMWgtOUEyLjUgMi41IDAgMCAxIDMgMTMuNXYtNmMwLTEuMDMuNjItMS45IDEuNS0yLjNabTkuOCA5LjgtMy4zMy0zLjMyYS41LjUgMCAwIDEtLjQ3LjMyaC0xYS41LjUgMCAwIDEtLjUtLjVWMTFINS41Yy0uNTYgMC0xLjA4LS4xOS0xLjUtLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWg4LjhaTTkgOS43IDUuMyA2LjAyYy0uNzMuMS0xLjMuNzMtMS4zIDEuNDl2MWMwIC44My42NyAxLjUgMS41IDEuNUg5di0uM1ptNS41LjNoLTIuMzhsMSAxaDEuMzhjLjU2IDAgMS4wOC0uMTkgMS41LS41djNjMCAuMTItLjAxLjIzLS4wNC4zNGwuNzguNzhjLjE3LS4zNC4yNi0uNzIuMjYtMS4xMnYtNkEyLjUgMi41IDAgMCAwIDE0LjUgNUgxM1YzLjc1QzEzIDIuNzggMTIuMjIgMiAxMS4yNSAyaC0yLjVDNy43OCAyIDcgMi43OCA3IDMuNzV2MS4xM0w4LjEyIDZoNi4zOGMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNVpNOCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NVY1SDhWMy43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJyaWVmY2FzZVNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmllZmNhc2VTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAzLjc1VjVINS41QTIuNSAyLjUgMCAwIDAgMyA3LjV2Ljc2QTQuNSA0LjUgMCAwIDEgOC4yNCAxMEg5di0uNWMwLS4yOC4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41di41aDQuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFBMi41IDIuNSAwIDAgMCAxNC41IDVIMTNWMy43NUMxMyAyLjc4IDEyLjIyIDIgMTEuMjUgMmgtMi41QzcuNzggMiA3IDIuNzggNyAzLjc1Wk0xNC41IDE2aC00LjM4bC0xLjU2LTEuNTZBNC40OCA0LjQ4IDAgMCAwIDguOTcgMTJoMS41M2EuNS41IDAgMCAwIC41LS41VjExaDQuNWMuNTYgMCAxLjA4LS4xOSAxLjUtLjV2M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVaTTEyIDVIOFYzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NVY1Wk00LjUgMTZjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNC42QTMuNSAzLjUgMCAxIDAgNC41IDE2Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmllZmNhc2VTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyaWVmY2FzZVNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA1VjMuNzVDNyAyLjc4IDcuNzggMiA4Ljc1IDJoMi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjVoMS41QTIuNSAyLjUgMCAwIDEgMTcgNy41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC00LjM4bC0xLTFoNS4zOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjLS40Mi4zMS0uOTQuNS0xLjUuNUgxMXYuNWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNVYxMWgtLjI2Yy0uMTItLjM2LS4zLS43LS41LTFIOXYtLjVjMC0uMjguMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXYuNWgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDYgNCA2LjY3IDQgNy41di41M2MtLjM1LjA0LS42OC4xMS0xIC4yM1Y3LjVBMi41IDIuNSAwIDAgMSA1LjUgNUg3Wm0xLTEuMjVWNWg0VjMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk00LjUgMTZjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNC42QTMuNSAzLjUgMCAxIDAgNC41IDE2Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmlnaHRuZXNzSGlnaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmlnaHRuZXNzSGlnaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWk0xMCA2YTQgNCAwIDEgMSAwIDggNCA0IDAgMCAxIDAtOFptMyA0YTMgMyAwIDAgMC0zLTN2NmEzIDMgMCAwIDAgMy0zWm01IDBhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEgMC0xaDFjLjI4IDAgLjUuMjIuNS41Wm0tNy41IDYuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWk00IDEwYS41LjUgMCAwIDEtLjUuNUgyLjQ2YS41LjUgMCAwIDEgMC0xSDMuNWMuMjggMCAuNS4yMi41LjVabS44NS01Ljg1YS41LjUgMCAxIDAtLjcuN2wxIDFhLjUuNSAwIDEgMCAuNy0uN2wtMS0xWm0tLjcgMTEuN2MuMi4yLjUuMi43IDBsMS0xYS41LjUgMCAwIDAtLjctLjdsLTEgMWEuNS41IDAgMCAwIDAgLjdabTExLTExLjdhLjUuNSAwIDAgMSAuNy43bC0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFabS43IDExLjdhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wxIDFjLjIuMi4yLjUgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJyaWdodG5lc3NIaWdoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmlnaHRuZXNzSGlnaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0wIDEyYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFptMC0xYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlptNy41LTIuNWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAwIDAgMWgxWk0xMCAxNmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0tNi41LTUuNWEuNS41IDAgMCAwIDAtMUgyLjQ2YS41LjUgMCAwIDAgMCAxSDMuNVptLjY1LTYuMzVjLjItLjIuNS0uMi43IDBsMSAxYS41LjUgMCAxIDEtLjcuN2wtMS0xYS41LjUgMCAwIDEgMC0uN1ptLjcgMTEuN2EuNS41IDAgMCAxLS43LS43bDEtMWEuNS41IDAgMCAxIC43LjdsLTEgMVptMTEtMTEuN2EuNS41IDAgMCAwLS43IDBsLTEgMWEuNS41IDAgMCAwIC43LjdsMS0xYS41LjUgMCAwIDAgMC0uN1ptLS43IDExLjdhLjUuNSAwIDAgMCAuNy0uN2wtMS0xYS41LjUgMCAwIDAtLjcuN2wxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmlnaHRuZXNzTG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0JyaWdodG5lc3NMb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgM2MuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0wIDNhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0wIDdWN2EzIDMgMCAxIDEgMCA2Wm02LjUtMi41YS41LjUgMCAwIDAgMC0xaC0xYS41LjUgMCAwIDAgMCAxaDFaTTEwIDE1Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVabS01LjUtNC41YS41LjUgMCAwIDAgMC0xaC0xYS41LjUgMCAwIDAgMCAxaDFabS42NS01LjM1Yy4yLS4yLjUtLjIuNyAwbC41LjVhLjUuNSAwIDEgMS0uNy43bC0uNS0uNWEuNS41IDAgMCAxIDAtLjdabS43IDkuN2EuNS41IDAgMCAxLS43LS43bC41LS41YS41LjUgMCAwIDEgLjcuN2wtLjUuNVptOS05LjdhLjUuNSAwIDAgMC0uNyAwbC0uNS41YS41LjUgMCAwIDAgLjcuN2wuNS0uNWEuNS41IDAgMCAwIDAtLjdabS0uNyA5LjdhLjUuNSAwIDAgMCAuNy0uN2wtLjUtLjVhLjUuNSAwIDAgMC0uNy43bC41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCcmlnaHRuZXNzTG93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcmlnaHRuZXNzTG93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDMuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWk0xMCA2YTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTMgNGEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabTEwIDBhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEgMC0xaDFjLjI4IDAgLjUuMjIuNS41Wm0tNi41IDUuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWk01IDEwYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxIDAtMWgxYy4yOCAwIC41LjIyLjUuNVptLjg1LTQuODVhLjUuNSAwIDEgMC0uNy43bC41LjVhLjUuNSAwIDEgMCAuNy0uN2wtLjUtLjVabS0uNyA5LjdjLjIuMi41LjIuNyAwbC41LS41YS41LjUgMCAwIDAtLjctLjdsLS41LjVhLjUuNSAwIDAgMCAwIC43Wm05LTkuN2EuNS41IDAgMCAxIC43LjdsLS41LjVhLjUuNSAwIDAgMS0uNy0uN2wuNS0uNVptLjcgOS43YS41LjUgMCAwIDEtLjcgMGwtLjUtLjVhLjUuNSAwIDAgMSAuNy0uN2wuNS41Yy4yLjIuMi41IDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBCcm9hZEFjdGl2aXR5RmVlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCcm9hZEFjdGl2aXR5RmVlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgM0MyLjY3IDMgMiAzLjY3IDIgNC41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTNjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTNabTAgOWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTRabTkgMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBCcm9hZEFjdGl2aXR5RmVlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJvYWRBY3Rpdml0eUZlZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiA4LjV2LTRaTTMuNSA0YS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNWgtMTNaTTIgMTMuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgMiAxNS41di0yWm0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTRabTktMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTRabS0uNSAxLjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtNGEuNS41IDAgMCAxLS41LS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgQnJvb21GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnJvb21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuOTEgMi4xOGMuMi4yLjIuNTEgMCAuN0wxMy4zIDcuNWE1LjYgNS42IDAgMCAwLS43LS43bDQuNi00LjYyYy4yLS4yLjUxLS4yLjcxIDBabS01LjY2IDUuNjZhNC41IDQuNSAwIDAgMC02LjM2IDBsLS40Mi40MiA2LjM2IDYuMzYuNDItLjQyYTQuNSA0LjUgMCAwIDAgMC02LjM2Wm0tMTAuNSAyLjc1IDIuOS0xLjc0IDYuNSA2LjVhLjUuNSAwIDAgMCAuMS4wOEw5LjUgMTguMzVhLjUuNSAwIDAgMS0uNzguMWwtNy4wNy03LjA4YS41LjUgMCAwIDEgLjEtLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgQnJvb21SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Jyb29tUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy45MSAyLjE4Yy4yLjIuMi41MSAwIC43bC01LjMyIDUuMzNhNC41IDQuNSAwIDAgMS0uMzQgNmwtLjY2LjY2LTIuMDkgMy40OGEuNS41IDAgMCAxLS43OC4xbC03LjA3LTcuMDhhLjUuNSAwIDAgMSAuMS0uNzhMNS4yMiA4LjVsLjY2LS42NmE0LjUgNC41IDAgMCAxIDUuOTktLjM0bDUuMzItNS4zMmMuMi0uMi41MS0uMi43MSAwWk02LjI0IDguOWw0Ljk1IDQuOTUuMzYtLjM1QTMuNSAzLjUgMCAxIDAgNi42IDguNTVsLS4zNi4zNVptLS43OC42M0wyLjggMTEuMTJsNi4xNiA2LjE3IDEuNi0yLjY2LTUuMTEtNS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQnViYmxlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnViYmxlTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNC41YTMuNSAzLjUgMCAxIDEtNyAwIDMuNSAzLjUgMCAwIDEgNyAwWk05LjE3IDE1LjZhMy41IDMuNSAwIDEgMCAzLjc0LTQuNTggNiA2IDAgMCAxLTMuNzQgNC41N1pNMTIgMTBhNSA1IDAgMSAxLTEwIDAgNSA1IDAgMCAxIDEwIDBaTTcuMDMgNy41YS41LjUgMCAwIDAgLjMuNjQgMi41IDIuNSAwIDAgMSAxLjUzIDEuNTMuNS41IDAgMSAwIC45NC0uMzRBMy41IDMuNSAwIDAgMCA3LjY3IDcuMmEuNS41IDAgMCAwLS42NC4zWlwiXSk7XG5leHBvcnQgY29uc3QgQnViYmxlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1YmJsZU11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDJhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaTTEyIDQuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFpNMyAxMGE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTQtNWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgNyA1Wm01LjUgMTNhMy41IDMuNSAwIDAgMS0zLjMzLTIuNGMuMzItLjEzLjYzLS4yOC45MS0uNDVBMi41IDIuNSAwIDEgMCAxMi42NiAxMmMuMS0uMzEuMi0uNjQuMjUtLjk4QTMuNSAzLjUgMCAwIDEgMTIuNSAxOFpNNy42NyA3LjJhLjUuNSAwIDEgMC0uMzQuOTQgMi41IDIuNSAwIDAgMSAxLjUzIDEuNTMuNS41IDAgMSAwIC45NC0uMzRBMy41IDMuNSAwIDAgMCA3LjY3IDcuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1Z0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyLjVhLjUuNSAwIDAgMC0xIDBWM2MwIC40LjEyLjc3LjMyIDEuMDhBMyAzIDAgMCAwIDYgN2gtLjVBMS41IDEuNSAwIDAgMSA0IDUuNXYtMmEuNS41IDAgMCAwLTEgMHYyQTIuNSAyLjUgMCAwIDAgNS41IDhINnYxLjVIMi41YS41LjUgMCAwIDAgMCAxSDZWMTJoLS41QTIuNSAyLjUgMCAwIDAgMyAxNC41djJhLjUuNSAwIDAgMCAxIDB2LTJjMC0uODMuNjctMS41IDEuNS0xLjVINmE0IDQgMCAwIDAgOCAwaC41Yy44MyAwIDEuNS42NyAxLjUgMS41djJhLjUuNSAwIDAgMCAxIDB2LTJhMi41IDIuNSAwIDAgMC0yLjUtMi41SDE0di0xLjVoMy41YS41LjUgMCAwIDAgMC0xSDE0VjhoLjVBMi41IDIuNSAwIDAgMCAxNyA1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MmMwIC44My0uNjcgMS41LTEuNSAxLjVIMTRhMyAzIDAgMCAwLTIuMzItMi45MkEyIDIgMCAwIDAgMTIgM3YtLjVhLjUuNSAwIDAgMC0xIDBWM2ExIDEgMCAxIDEtMiAwdi0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1Z1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVnUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDIuNWEuNS41IDAgMCAwLTEgMFYzYzAgLjQuMTIuNzcuMzIgMS4wOEEzIDMgMCAwIDAgNiA3aC0uNUExLjUgMS41IDAgMCAxIDQgNS41di0yYS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA1LjUgOEg2djEuNUgyLjVhLjUuNSAwIDAgMCAwIDFINlYxMmgtLjVBMi41IDIuNSAwIDAgMCAzIDE0LjV2MmEuNS41IDAgMCAwIDEgMHYtMmMwLS44My42Ny0xLjUgMS41LTEuNUg2YTQgNCAwIDAgMCA4IDBoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmEuNS41IDAgMCAwIDEgMHYtMmEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTR2LTEuNWgzLjVhLjUuNSAwIDAgMCAwLTFIMTRWOGguNUEyLjUgMi41IDAgMCAwIDE3IDUuNXYtMmEuNS41IDAgMCAwLTEgMHYyYzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNGEzIDMgMCAwIDAtMi4zMi0yLjkyQTIgMiAwIDAgMCAxMiAzdi0uNWEuNS41IDAgMCAwLTEgMFYzYTEgMSAwIDEgMS0yIDB2LS41Wk0xMyA3djZhMyAzIDAgMSAxLTYgMFY3YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQnVnQXJyb3dDb3VudGVyY2xvY2t3aXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1Z0Fycm93Q291bnRlcmNsb2Nrd2lzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyAzLjVhLjUuNSAwIDAgMC0xIDB2MkExLjUgMS41IDAgMCAxIDE0LjUgN0gxNGEzIDMgMCAwIDAtMi4zMS0yLjkyQTIgMiAwIDAgMCAxMiAzdi0uNWEuNS41IDAgMCAwLTEgMFYzYTEgMSAwIDAgMS0yIDB2LS41YS41LjUgMCAxIDAtMSAwVjNjMCAuMzguMS43Ni4zMSAxLjA4QTMgMyAwIDAgMCA2IDdoLS41QTEuNSAxLjUgMCAwIDEgNCA1LjV2LTJhLjUuNSAwIDEgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDUuNSA4SDZ2MS41SDIuNWEuNS41IDAgMSAwIDAgMUg2VjEyaC0uNUEyLjUgMi41IDAgMCAwIDMgMTQuNXYyYS41LjUgMCAwIDAgMSAwdi0yQTEuNSAxLjUgMCAwIDEgNS41IDEzSDZhMy45OSAzLjk5IDAgMCAwIDMuNTkgMy45NkE1LjQ5IDUuNDkgMCAwIDEgMTQgOS4wMlY4aC41QTIuNSAyLjUgMCAwIDAgMTcgNS41di0yWk0xNC41IDEwYTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wm0wIDcuMjVhMi43NCAyLjc0IDAgMCAxLTIuMDUtLjkyLjUuNSAwIDEgMSAuNzUtLjY2IDEuNzUgMS43NSAwIDEgMCAuNC0yLjY3aC40YS41LjUgMCAwIDEgMCAxaC0xLjVhLjUuNSAwIDAgMS0uNS0uNjNWMTJhLjUuNSAwIDAgMSAxIDB2LjJhMi43NSAyLjc1IDAgMSAxIDEuNSA1LjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQnVnQXJyb3dDb3VudGVyY2xvY2t3aXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWdBcnJvd0NvdW50ZXJjbG9ja3dpc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDMuNWEuNS41IDAgMCAwLTEgMHYyQTEuNSAxLjUgMCAwIDEgMTQuNSA3SDE0YTMgMyAwIDAgMC0yLjMxLTIuOTJBMiAyIDAgMCAwIDEyIDN2LS41YS41LjUgMCAwIDAtMSAwVjNhMSAxIDAgMCAxLTIgMHYtLjVhLjUuNSAwIDEgMC0xIDBWM2MwIC4zOC4xLjc2LjMxIDEuMDhBMyAzIDAgMCAwIDYgN2gtLjVBMS41IDEuNSAwIDAgMSA0IDUuNXYtMmEuNS41IDAgMSAwLTEgMHYyQTIuNSAyLjUgMCAwIDAgNS41IDhINnYxLjVIMi41YS41LjUgMCAxIDAgMCAxSDZWMTJoLS41QTIuNSAyLjUgMCAwIDAgMyAxNC41djJhLjUuNSAwIDAgMCAxIDB2LTJBMS41IDEuNSAwIDAgMSA1LjUgMTNINmEzLjk5IDMuOTkgMCAwIDAgMy41OSAzLjk2IDUuNDYgNS40NiAwIDAgMS0uNDEtMS4wOUEyLjk5IDIuOTkgMCAwIDEgNyAxM1Y3YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIuMjFjLjMzLS4wOS42Ni0uMTUgMS0uMTlWOGguNUEyLjUgMi41IDAgMCAwIDE3IDUuNXYtMlpNMTQuNSAxMGE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOVptMCA3LjI1YTIuNzQgMi43NCAwIDAgMS0yLjA1LS45Mi41LjUgMCAxIDEgLjc1LS42NiAxLjc1IDEuNzUgMCAxIDAgLjQtMi42N2guNGEuNS41IDAgMCAxIDAgMWgtMS41YS41LjUgMCAwIDEtLjUtLjYzVjEyYS41LjUgMCAwIDEgMSAwdi4yYTIuNzUgMi43NSAwIDEgMSAxLjUgNS4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1Z1Byb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVnUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDEwYTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wk0xMSAxNC41YTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWMtLjQ2LS42LS43LTEuMzQtLjctMi4xWm0zLjUgMy41Yy0uNzYgMC0xLjUtLjI0LTIuMS0uN2w0LjktNC45YTMuNDggMy40OCAwIDAgMS0uMzMgNC41N0EzLjUgMy41IDAgMCAxIDE0LjUgMThaTTE3IDMuNWEuNS41IDAgMCAwLTEgMHYyQTEuNSAxLjUgMCAwIDEgMTQuNSA3SDE0YTMgMyAwIDAgMC0yLjMxLTIuOTJBMiAyIDAgMCAwIDEyIDN2LS41YS41LjUgMCAwIDAtMSAwVjNhMSAxIDAgMCAxLTIgMHYtLjVhLjUuNSAwIDEgMC0xIDBWM2MwIC4zOC4xLjc2LjMxIDEuMDhBMyAzIDAgMCAwIDYgN2gtLjVBMS41IDEuNSAwIDAgMSA0IDUuNXYtMmEuNS41IDAgMSAwLTEgMHYyQTIuNSAyLjUgMCAwIDAgNS41IDhINnYxLjVIMi41YS41LjUgMCAxIDAgMCAxSDZWMTJoLS41QTIuNSAyLjUgMCAwIDAgMyAxNC41djJhLjUuNSAwIDAgMCAxIDB2LTJBMS41IDEuNSAwIDAgMSA1LjUgMTNINmEzLjk5IDMuOTkgMCAwIDAgMy41OSAzLjk2IDUuNDYgNS40NiAwIDAgMSAuODUtNi4xN0E1LjUgNS41IDAgMCAxIDE0IDkuMDNWOGguNUEyLjUgMi41IDAgMCAwIDE3IDUuNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1Z1Byb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1Z1Byb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMTggMTUuODdjLjEuMzguMjMuNzQuNCAxLjA5QTMuOTkgMy45OSAwIDAgMSA2IDEzaC0uNUExLjUgMS41IDAgMCAwIDQgMTQuNXYyYS41LjUgMCAwIDEtMSAwdi0yQTIuNSAyLjUgMCAwIDEgNS41IDEySDZ2LTEuNUgyLjVhLjUuNSAwIDAgMSAwLTFINlY4aC0uNUEyLjUgMi41IDAgMCAxIDMgNS41di0yYS41LjUgMCAwIDEgMSAwdjJBMS41IDEuNSAwIDAgMCA1LjUgN0g2YTMgMyAwIDAgMSAyLjMxLTIuOTJBMiAyIDAgMCAxIDggM3YtLjVhLjUuNSAwIDAgMSAxIDBWM2ExIDEgMCAwIDAgMiAwdi0uNWEuNS41IDAgMCAxIDEgMFYzYTIgMiAwIDAgMS0uMzEgMS4wOEEzIDMgMCAwIDEgMTQgN2guNUExLjUgMS41IDAgMCAwIDE2IDUuNXYtMmEuNS41IDAgMCAxIDEgMHYyQTIuNSAyLjUgMCAwIDEgMTQuNSA4SDE0djEuMDNjLS4zNC4wMy0uNjcuMDktMSAuMThWN2EyIDIgMCAwIDAtMi0ySDlhMiAyIDAgMCAwLTIgMnY2YTIuOTkgMi45OSAwIDAgMCAyLjE4IDIuODdaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS03LjMgMi4xIDQuOS00LjlhMy40OCAzLjQ4IDAgMCAwLTQuNTcuMzMgMy41IDMuNSAwIDAgMC0uMzMgNC41N1ptNi4zLTIuMWMwLS43Ni0uMjQtMS41LS43LTIuMWwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDAgNC41Ny0uMzNBMy41IDMuNSAwIDAgMCAxOCAxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMmg2Yy44MyAwIDEuNS42NyAxLjUgMS41VjhoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41djhhLjUuNSAwIDAgMS0uNS41SDEzdi0zLjVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwLS41LjVWMThINC41YS41LjUgMCAwIDEtLjUtLjV2LTE0Wm0yLjc1IDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tLjc1IDMuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0zLjc1LTYuNzVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpNOS43NSA5LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0yLjI1Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTIgMTV2M2gtMS41di0zSDEyWm0tMi41IDBIOHYzaDEuNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi43NSA2LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDMuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0zLjc1LTYuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNOS43NSA5LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0yLjI1Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNC41IDE4YS41LjUgMCAwIDEtLjUtLjV2LTE0QzQgMi42NyA0LjY3IDIgNS41IDJoNmMuODMgMCAxLjUuNjcgMS41IDEuNVY4aDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNXY4YS41LjUgMCAwIDEtLjUuNWgtMTFaTTUgMy41VjE3aDJ2LTIuNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41VjE3aDJWOS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtNWEuNS41IDAgMCAwLS41LS41aC02YS41LjUgMCAwIDAtLjUuNVpNMTIgMTVoLTEuNXYySDEydi0yWm0tMi41IDBIOHYyaDEuNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nQmFua0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0JhbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4yMyAyLjE4YTEuMzMgMS4zMyAwIDAgMSAxLjU0IDBsNS44NSA0LjE1QS45Mi45MiAwIDAgMSAxNi4xIDhIMy45YS45Mi45MiAwIDAgMS0uNTItMS42N2w1Ljg1LTQuMTVabS43NyAzLjdhLjgzLjgzIDAgMSAwIDAtMS42Ny44My44MyAwIDAgMCAwIDEuNjZaTTQuNSA5djRoMlY5aC0yWk0zIDE2LjE3YzAtMS4yLjk3LTIuMTcgMi4xNy0yLjE3aDkuNjZjMS4yIDAgMi4xNy45NyAyLjE3IDIuMTd2LjMzYS41LjUgMCAwIDEtLjUuNWgtMTNhLjUuNSAwIDAgMS0uNS0uNXYtLjMzWk0xNS41IDl2NGgtMlY5aDJabS0zIDB2NGgtMlY5aDJabS0zIDB2NGgtMlY5aDJaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ0JhbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nQmFua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNS44N2EuODMuODMgMCAxIDAgMC0xLjY2LjgzLjgzIDAgMCAwIDAgMS42NlptNiA3LjQ3VjhoLjFhLjkyLjkyIDAgMCAwIC41Mi0xLjY3bC01Ljg1LTQuMTVhMS4zMyAxLjMzIDAgMCAwLTEuNTQgMEwzLjM4IDYuMzNBLjkyLjkyIDAgMCAwIDMuOSA4SDR2NS4zNGMtLjYuMzgtMSAxLjA2LTEgMS44M3YxLjMzYzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTEuMzNjMC0uNzctLjQtMS40NS0xLTEuODNaTTkuOCAzYS4zMy4zMyAwIDAgMSAuNCAwbDUuNjMgNEg0LjE3TDkuOCAzWk0xNSA4djVoLTJWOGgyWk01IDEzVjhoMnY1SDVabS4xNyAxaDkuNjZjLjY1IDAgMS4xNy41MiAxLjE3IDEuMTdWMTZINHYtLjgzYzAtLjY1LjUyLTEuMTcgMS4xNy0xLjE3Wm00LjMzLTFIOFY4aDEuNXY1Wm0xIDBWOEgxMnY1aC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ0JhbmtMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nQmFua0xpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4yMyAyLjE4YTEuMzMgMS4zMyAwIDAgMSAxLjU0IDBsNS44NSA0LjE1QS45Mi45MiAwIDAgMSAxNi4xIDhIMy45YS45Mi45MiAwIDAgMS0uNTItMS42N2w1Ljg1LTQuMTVabS43NyAzLjdhLjgzLjgzIDAgMSAwIDAtMS42Ny44My44MyAwIDAgMCAwIDEuNjZaTTQuNSA5djRoMlY5aC0yWk0zIDE2LjE3YzAtMS4yLjk3LTIuMTcgMi4xNy0yLjE3aDMuMTdhMy40OSAzLjQ5IDAgMCAwIDAgM0gzLjVhLjUuNSAwIDAgMS0uNS0uNXYtLjMzWk05LjA1IDEzYy4xNC0uMTQuMjktLjI2LjQ1LS4zN1Y5aC0ydjRoMS41NVptMi40NS0xaDFWOWgtMnYzLjE0Yy4zMi0uMDkuNjUtLjE0IDEtLjE0Wm0yIDBoMlY5aC0ydjNabS0yIDFhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDEgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTVhLjUuNSAwIDEgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTVabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nQmFua0xpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nQmFua0xpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDUuODdhLjgzLjgzIDAgMSAwIDAtMS42Ni44My44MyAwIDAgMCAwIDEuNjZaTTMuNSAxN2g0Ljg0YTMuNDggMy40OCAwIDAgMS0uMy0xSDR2LS44M2MwLS42NS41Mi0xLjE3IDEuMTctMS4xN2gzLjE3Yy4xNy0uMzguNDItLjcxLjcxLTFIOFY4aDEuNXY0LjYzYy4zLS4yMS42NC0uMzggMS0uNDlWOEgxMnY0aDFWOGgydjRoLjVjLjE3IDAgLjM0LjAxLjUuMDNWOGguMWEuOTIuOTIgMCAwIDAgLjUyLTEuNjdsLTUuODUtNC4xNWExLjMzIDEuMzMgMCAwIDAtMS41NCAwTDMuMzggNi4zM0EuOTIuOTIgMCAwIDAgMy45IDhINHY1LjM0Yy0uNi4zOC0xIDEuMDYtMSAxLjgzdjEuMzNjMCAuMjguMjIuNS41LjVaTTkuOCAzYS4zMy4zMyAwIDAgMSAuNCAwbDUuNjMgNEg0LjE3TDkuOCAzWk01IDEzVjhoMnY1SDVabTYuNSAwYTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAxIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMSAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAxIDAgMCAxaC41YTEuNSAxLjUgMCAxIDEgMCAzSDE1YS41LjUgMCAxIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE1Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ0JhbmtUb29sYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nQmFua1Rvb2xib3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC4yMyAyLjE4YTEuMzMgMS4zMyAwIDAgMSAxLjU0IDBsNS44NSA0LjE1QS45Mi45MiAwIDAgMSAxNS4xIDhIMi45YS45Mi45MiAwIDAgMS0uNTItMS42N2w1Ljg1LTQuMTVaTTkgNS44OEEuODMuODMgMCAxIDAgOSA0LjJhLjgzLjgzIDAgMCAwIDAgMS42NlpNMy41IDl2NGgyVjloLTJabS42NyA1QzIuOTcgMTQgMiAxNC45NyAyIDE2LjE3di4zM2MwIC4yOC4yMi41LjUuNUg5di0zSDQuMTdabTcuMzMtNFY5aC0ydjNjLjM3LS41LjkxLS44NCAxLjU0LS45Ni4wNy0uMzguMjMtLjc0LjQ2LTEuMDRabS0zIDNWOWgtMnY0aDJabTMuNS0xdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA0LjVoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxNmgydi41YS41LjUgMCAxIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDEgMCAxIDBWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ0JhbmtUb29sYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0JhbmtUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDUuODdhLjgzLjgzIDAgMSAwIDAtMS42Ni44My44MyAwIDAgMCAwIDEuNjZaTTIuNSAxN0g5di0xSDN2LS44M2MwLS42NS41Mi0xLjE3IDEuMTctMS4xN0g5di0uNWMwLS41Ni4xOS0xLjA4LjUtMS41VjhIMTF2My4wNWguMDRBMi41IDIuNSAwIDAgMSAxMiA5LjVWOGgydjFoMVY4aC4xYS45Mi45MiAwIDAgMCAuNTItMS42N0w5Ljc3IDIuMThhMS4zMyAxLjMzIDAgMCAwLTEuNTQgMEwyLjM4IDYuMzNBLjkyLjkyIDAgMCAwIDIuOSA4SDN2NS4zNGMtLjYuMzgtMSAxLjA2LTEgMS44M3YxLjMzYzAgLjI4LjIyLjUuNS41Wk04LjggM2EuMzMuMzMgMCAwIDEgLjQgMGw1LjYzIDRIMy4xN0w4LjggM1pNNCAxM1Y4aDJ2NUg0Wm00LjUgMEg3VjhoMS41djVabTMuNS0xdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMSAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDEgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA0LjVoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxNmgydi41YS41LjUgMCAxIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDEgMCAxIDBWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ0Rlc2t0b3BGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdEZXNrdG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMy4yNUMyIDIuNTYgMi41NiAyIDMuMjUgMmg1LjVDOS40NCAyIDEwIDIuNTYgMTAgMy4yNXYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMS41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjhoLTNjLS44MiAwLTEuNTcuMzMtMi4xLjg2QS43NS43NSAwIDEgMCA3LjE2IDEwIDMgMyAwIDAgMCA3IDExdjRIMy4yNUMyLjU2IDE1IDIgMTQuNDQgMiAxMy43NVYzLjI1Wk04LjI3IDEwQTIgMiAwIDAgMSAxMCA5aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTJ2MWgxLjVhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMSAwLTFIMTJ2LTFoLTJhMiAyIDAgMCAxLTItMnYtNGMwLS4zNi4xLS43LjI3LTFaTTEwIDEwYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDdhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC03Wk00IDQuNzVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptLjc1IDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk00IDkuMjVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFpNNy4yNSA1LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk02LjUgN0EuNzUuNzUgMCAxIDAgOCA3YS43NS43NSAwIDAgMC0xLjUgMFpNMTQgMTh2LTFoLTF2MWgxWlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdEZXNrdG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0Rlc2t0b3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMy4yNWMwLS4xNC4xMS0uMjUuMjUtLjI1aDUuNWMuMTQgMCAuMjUuMTEuMjUuMjV2Mi41QzkgNi40NCA5LjU2IDcgMTAuMjUgN2gxLjVjLjE0IDAgLjI1LjExLjI1LjI1VjhoMXYtLjc1QzEzIDYuNTYgMTIuNDQgNiAxMS43NSA2aC0xLjVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTIuNUMxMCAyLjU2IDkuNDQgMiA4Ljc1IDJoLTUuNUMyLjU2IDIgMiAyLjU2IDIgMy4yNXYxMC41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDd2LTFIMy4yNWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYzLjI1Wk03LjI1IDguNWMuMjcgMCAuNTEuMTUuNjQuMzZBMyAzIDAgMCAwIDcuMTcgMTBhLjc1Ljc1IDAgMCAxIC4wOC0xLjVabS0yLjUtM2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTUuNSA3QS43NS43NSAwIDEgMSA0IDdhLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk04IDQuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzYS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOCAxMWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTJ2MWgxLjVhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMSAwLTFIMTJ2LTFoLTJhMiAyIDAgMCAxLTItMnYtNFptMiA1aDdhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC03YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxWm00IDJ2LTFoLTF2MWgxWlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdGYWN0b3J5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nRmFjdG9yeUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjk0IDMuNGMuMDUtLjc5LjctMS40IDEuNS0xLjRoMS4xMmMuOCAwIDEuNDUuNjEgMS41IDEuNGwuODcgMTNhMS41IDEuNSAwIDAgMS0xLjUgMS42SDMuNTdhMS41IDEuNSAwIDAgMS0xLjUtMS42bC44Ny0xM1pNOC40NCAxOGMuMzQtLjQ2LjUzLTEuMDQuNDktMS42N0w4LjQgOC41MWwzLjc2LTMuMzhhLjUuNSAwIDAgMSAuODQuMzd2My4zOGw0LjE2LTMuNzVhLjUuNSAwIDAgMSAuODQuMzd2MTFjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguNDNaTTE2IDE3di00LjJhLjguOCAwIDAgMC0uOC0uOGgtMy40YS44LjggMCAwIDAtLjguOFYxN2g1WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdGYWN0b3J5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0ZhY3RvcnlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNDQgMmExLjUgMS41IDAgMCAwLTEuNSAxLjRsLS44NyAxM2ExLjUgMS41IDAgMCAwIDEuNSAxLjZoMi44NmExLjUgMS41IDAgMCAwIDEuNS0xLjZsLS44Ny0xM0ExLjUgMS41IDAgMCAwIDUuNTYgMkg0LjQ0Wm0tLjUgMS40N2EuNS41IDAgMCAxIC41LS40N2gxLjEyYy4yNyAwIC40OS4yLjUuNDdsLjg3IDEzYS41LjUgMCAwIDEtLjUuNTNIMy41N2EuNS41IDAgMCAxLS41LS41M2wuODctMTNaTTE2LjUgMThIOC40M2MuMjItLjMuMzgtLjYzLjQ1LTFIMTB2LTRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2NGguNWEuNS41IDAgMCAwIC41LS41VjYuNjJsLTQuMTcgMy43NUEuNS41IDAgMCAxIDEyIDEwVjYuNjJMOC40OSA5Ljc4IDguNCA4LjUxbDMuNzYtMy4zOGEuNS41IDAgMCAxIC44NC4zN3YzLjM4bDQuMTYtMy43NWEuNS41IDAgMCAxIC44NC4zN3YxMWMwIC44My0uNjcgMS41LTEuNSAxLjVaTTExIDE3aDR2LTRoLTR2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nR292ZXJubWVudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0dvdmVybm1lbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS41IDJhLjUuNSAwIDAgMC0uNS41djIuNkE1IDUgMCAwIDAgNSAxMHYxSDRhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMCAxIDFoNC41YS41LjUgMCAwIDAgLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYyYzAgLjI4LjIyLjUuNS41SDE3YTEgMSAwIDAgMCAxLTF2LTRhMiAyIDAgMCAwLTItMmgtMXYtMWE1IDUgMCAwIDAtNS01VjRoMi41YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtM1pNNiAxMy41djJhLjUuNSAwIDAgMS0xIDB2LTJhLjUuNSAwIDAgMSAxIDBabTguNS0uNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41Wk05IDkuNXYyYS41LjUgMCAwIDEtMSAwdi0yYS41LjUgMCAwIDEgMSAwWm0yLjUtLjVjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nR292ZXJubWVudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdHb3Zlcm5tZW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDIuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41SDEwdjFhNSA1IDAgMCAxIDUgNXYxaDFhMiAyIDAgMCAxIDIgMnY0YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xdi00YzAtMS4xLjktMiAyLTJoMXYtMWE1IDUgMCAwIDEgNC00LjlWMi41Wm03IDkuNWgtMS41YS41LjUgMCAwIDEtLjUtLjVWMTBhNCA0IDAgMCAwLTggMHYxLjVhLjUuNSAwIDAgMS0uNS41SDRhMSAxIDAgMCAwLTEgMXY0aDV2LTJhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2Mmg1di00YTEgMSAwIDAgMC0xLTFaTTYgMTMuNWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWm05IDBhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAwIDEgMHYtMlpNOC41IDlhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMy41LjVhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAwIDEgMHYtMlpNOSAxN2gydi0ySDl2MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nR292ZXJubWVudFNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0dvdmVybm1lbnRTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNUgxMHYxYTUgNSAwIDAgMSA1IDV2MWgxYTIgMiAwIDAgMSAyIDJ2NGExIDEgMCAwIDEtMSAxaC00LjVhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAwLS41LS41SDguNzRhNC41IDQuNSAwIDAgMC0uMDItMy4wNS41LjUgMCAwIDAgLjI4LS40NXYtMmEuNS41IDAgMSAwLTEgMHYxLjE3YTQuNSA0LjUgMCAwIDAtMi45LTEuNjNBNSA1IDAgMCAxIDkgNS4xVjIuNVptNiAxMWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAxIDAgMSAwdi0yWm0tMy00YS41LjUgMCAwIDAtMSAwdjJhLjUuNSAwIDEgMCAxIDB2LTJaTTQuNSAxN2MuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE1LjZBMy41IDMuNSAwIDEgMCA0LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nR292ZXJubWVudFNlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdHb3Zlcm5tZW50U2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDIuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41SDEwdjFhNSA1IDAgMCAxIDUgNXYxaDFhMiAyIDAgMCAxIDIgMnY0YTEgMSAwIDAgMS0xIDFoLTYuMDlhMS41IDEuNSAwIDAgMC0uMzUtLjU2bC0uNDQtLjQ0SDExdi0ySDguNzRjLjEyLS4zMi4yLS42NS4yMy0xSDExYTEgMSAwIDAgMSAxIDF2Mmg1di00YTEgMSAwIDAgMC0xLTFoLTEuNWEuNS41IDAgMCAxLS41LS41VjEwYTQgNCAwIDAgMC03Ljk0LS43MmMtLjMtLjEyLS42My0uMi0uOTctLjI0QTUgNSAwIDAgMSA5IDUuMVYyLjVabTAgOWEuNS41IDAgMCAxLS4yOC40NUE0LjUgNC41IDAgMCAwIDggMTAuNjdWOS41YS41LjUgMCAwIDEgMSAwdjJabTYgMmEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAxIDAgMSAwdi0yWm0tMy00YS41LjUgMCAwIDAtMSAwdjJhLjUuNSAwIDEgMCAxIDB2LTJaTTQuNSAxN2MuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE1LjZBMy41IDMuNSAwIDEgMCA0LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nSG9tZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0hvbWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yNSAyQzIuNTYgMiAyIDIuNTYgMiAzLjI1djEwLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVINy41di0xLjc0YzAtLjY4LjMtMS4zMy44Mi0xLjc4bDMuNDctMi45NmMuMzUtLjMuNzgtLjQ3IDEuMjEtLjUydi0uNzVDMTMgNi41NiAxMi40NCA2IDExLjc1IDZoLTEuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMi41QzEwIDIuNTYgOS40NCAyIDguNzUgMmgtNS41Wm0xLjUgMy41YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNNS41IDdBLjc1Ljc1IDAgMSAxIDQgN2EuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgM2EuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaTTggNC43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDNhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wk04IDkuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptNi4wNi4wM2MtLjQ3LS40LTEuMTUtLjQtMS42MiAwbC0zLjQ3IDIuOTZjLS4zLjI2LS40Ny42My0uNDcgMS4wMnY0LjYxQzguNSAxOC41IDkgMTkgOS42MyAxOWgxLjc0Yy42MyAwIDEuMTMtLjUgMS4xMy0xLjEzdi0xLjc1YzAtLjA2LjA2LS4xMi4xMy0uMTJoMS4yNGMuMDcgMCAuMTMuMDYuMTMuMTN2MS43NGMwIC42My41IDEuMTMgMS4xMyAxLjEzaDEuNzRjLjYzIDAgMS4xMy0uNSAxLjEzLTEuMTN2LTQuNjFjMC0uNC0uMTctLjc2LS40Ny0xLjAybC0zLjQ3LTIuOTZabS0uOTcuNzdjLjEtLjA4LjIzLS4wOC4zMiAwTDE2Ljg4IDEzYy4wOC4wNy4xMi4xNi4xMi4yNnY0LjYxYzAgLjA3LS4wNi4xMy0uMTMuMTNoLTEuNzVhLjEyLjEyIDAgMCAxLS4xMi0uMTN2LTEuNzVjMC0uNjItLjUtMS4xMi0xLjEzLTEuMTJoLTEuMjRjLS42MyAwLTEuMTMuNS0xLjEzIDEuMTN2MS43NGMwIC4wNy0uMDYuMTMtLjEzLjEzSDkuNjNhLjEyLjEyIDAgMCAxLS4xMy0uMTN2LTQuNjFjMC0uMS4wNC0uMi4xMi0uMjZsMy40Ny0yLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdIb21lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ0hvbWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuMjUgM2EuMjUuMjUgMCAwIDAtLjI1LjI1djEwLjVjMCAuMTQuMTEuMjUuMjUuMjVINy41djFIMy4yNUMyLjU2IDE1IDIgMTQuNDQgMiAxMy43NVYzLjI1QzIgMi41NiAyLjU2IDIgMy4yNSAyaDUuNUM5LjQ0IDIgMTAgMi41NiAxMCAzLjI1djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgxLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVWOGMtLjM1LjA0LS43LjE2LTEgLjM3VjcuMjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTEuNUM5LjU2IDcgOSA2LjQ0IDkgNS43NXYtMi41QS4yNS4yNSAwIDAgMCA4Ljc1IDNoLTUuNVptMTAuODEgNi4yOGMtLjQ3LS40LTEuMTUtLjQtMS42MiAwbC0zLjQ3IDIuOTZjLS4zLjI2LS40Ny42My0uNDcgMS4wMnY0LjYxQzguNSAxOC41IDkgMTkgOS42MyAxOWgxLjc0Yy42MyAwIDEuMTMtLjUgMS4xMy0xLjEzdi0xLjc1YzAtLjA2LjA2LS4xMi4xMy0uMTJoMS4yNGMuMDcgMCAuMTMuMDYuMTMuMTN2MS43NGMwIC42My41IDEuMTMgMS4xMyAxLjEzaDEuNzRjLjYzIDAgMS4xMy0uNSAxLjEzLTEuMTN2LTQuNjFjMC0uNC0uMTctLjc2LS40Ny0xLjAybC0zLjQ3LTIuOTZabS0uOTcuNzdjLjEtLjA4LjIzLS4wOC4zMiAwTDE2Ljg4IDEzYy4wOC4wNy4xMi4xNi4xMi4yNnY0LjYxYzAgLjA3LS4wNi4xMy0uMTMuMTNoLTEuNzVhLjEyLjEyIDAgMCAxLS4xMi0uMTN2LTEuNzVjMC0uNjItLjUtMS4xMi0xLjEzLTEuMTJoLTEuMjRjLS42MyAwLTEuMTMuNS0xLjEzIDEuMTN2MS43NGMwIC4wNy0uMDYuMTMtLjEzLjEzSDkuNjNhLjEyLjEyIDAgMCAxLS4xMy0uMTN2LTQuNjFjMC0uMS4wNC0uMi4xMi0uMjZsMy40Ny0yLjk1Wk01LjUgNC43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMS41YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTcuMjUgNS41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOCA3YS43NS43NSAwIDEgMS0xLjUgMEEuNzUuNzUgMCAwIDEgOCA3Wm0tLjc1IDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdMaWdodGhvdXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nTGlnaHRob3VzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjQ1IDIuMTdhMSAxIDAgMCAxIDEuMSAwbDMgMkExIDEgMCAwIDEgMTIgNnYyLjE2YTIgMiAwIDAgMSAxLjIgMS42MmwuOCA3LjFBMSAxIDAgMCAxIDEzIDE4SDVhMSAxIDAgMCAxLTEtMS4xMWwuOC03LjExQTIgMiAwIDAgMSA2IDguMTZWNmExIDEgMCAwIDEtLjU1LTEuODNsMy0yWk03IDZ2Mmg0VjZIN1ptNS4zMyA1LjA3LTYuODcgMS44MS0uMjIgMi4wMyA3LjMtMS45My0uMi0xLjlaTTE0LjUgN2gyYS41LjUgMCAxIDAgMC0xaC0yYS41LjUgMCAwIDAgMCAxWm0xLjM1LTMuODVjLjIuMi4yLjUgMCAuN2wtMSAxYS41LjUgMCAwIDEtLjctLjdsMS0xYy4yLS4yLjUtLjIuNyAwWm0wIDZhLjUuNSAwIDAgMS0uNy43bC0xLTFhLjUuNSAwIDEgMSAuNy0uN2wxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ0xpZ2h0aG91c2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nTGlnaHRob3VzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAuMzMgMi42OS0uNzctLjUyYTEgMSAwIDAgMC0xLjEgMGwtLjc4LjUtMi4xIDEuMjFBMS4xMyAxLjEzIDAgMCAwIDUgNC45MyAxIDEgMCAwIDAgNiA2djIuMTZhMiAyIDAgMCAwLTEuMiAxLjYybC0uOCA3LjFBMSAxIDAgMCAwIDUgMThoOGExIDEgMCAwIDAgMS0xLjExbC0uOC03LjExQTIgMiAwIDAgMCAxMiA4LjE2VjZhMSAxIDAgMCAwIDEtMS4wOXYtLjA0YzAtLjQtLjIyLS43OC0uNTctLjk5bC0yLjEtMS4yWk0xMSA4SDdWNmg0djJaTTYuMSA1YS4xMy4xMyAwIDAgMS0uMDUtLjAzTDguMiAzLjUzbC44LS40NS44LjQ2IDIuMTUgMS40M2EuMTMuMTMgMCAwIDEtLjA2LjAzSDYuMTFabS43NCA0aDQuMzJhMSAxIDAgMCAxIDEgLjg5bC4wMS4xOC0zLjU1Ljk1LTIuOTguNzguMi0xLjkxYTEgMSAwIDAgMSAxLS44OVptMi4wMyAyLjk5IDMuNDEtLjkuMjIgMS45LTMuODggMS4wMy0zLjMzLjg3LjIzLTIuMDEgMy4zNS0uOVptLTMuNyAzLjk4IDMuNy0uOTggMy43NC0uOTkuMzMgM0g1LjA2bC4xMS0xLjAzWk0xNi41IDdoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIDAgMVptLS42NS0zLjg1Yy4yLjIuMi41IDAgLjdsLTEgMWEuNS41IDAgMSAxLS43LS43bDEtMWEuNS41IDAgMCAxIC43IDBabTAgNmEuNS41IDAgMCAxLS43LjdsLTEtMWEuNS41IDAgMSAxIC43LS43bDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nTW9zcXVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nTW9zcXVlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMjUgNC43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0xNC4yNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS03LjMtMS40NmEuNS41IDAgMCAwLS40IDBsLS4wMi4wMS0uMDQuMDJhOS43NSA5Ljc1IDAgMCAwLS42OC4zNGMtLjQ0LjI0LTEuMDIuNTgtMS42IDEtLjU5LjQyLTEuMTkuOTQtMS42NSAxLjUzQTMuMzggMy4zOCAwIDAgMCA1IDljMCAuNzEuMTUgMS4zOS40MiAySDNWNi41YS41LjUgMCAwIDAtMSAwVjE3YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDEgMSA0IDB2MWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMVY2LjVhLjUuNSAwIDAgMC0xIDBWMTFoLTIuNDJjLjI3LS42MS40Mi0xLjI5LjQyLTIgMC0uNzctLjM1LTEuNDctLjgxLTIuMDZhOC4yNCA4LjI0IDAgMCAwLTEuNjUtMS41MyAxNC42MiAxNC42MiAwIDAgMC0yLjI4LTEuMzRsLS4wNC0uMDJoLS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nTW9zcXVlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ01vc3F1ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDUuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTE1Ljc1LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tOC4wNS0uN2EuNS41IDAgMCAwLS40IDBoLS4wMmwtLjA0LjAyYTkuNzUgOS43NSAwIDAgMC0uNjguMzRjLS40NC4yNC0xLjAyLjU4LTEuNiAxLS41OS40Mi0xLjE5Ljk0LTEuNjUgMS41M0EzLjM4IDMuMzggMCAwIDAgNSA5YzAgLjcxLjE1IDEuMzkuNDIgMkgzVjYuNWEuNS41IDAgMCAwLTEgMFYxN2ExIDEgMCAwIDAgMSAxaDE0YTEgMSAwIDAgMCAxLTFWNi41YS41LjUgMCAwIDAtMSAwVjExaC0yLjQyYy4yNy0uNjEuNDItMS4yOS40Mi0yIDAtLjc3LS4zNS0xLjQ3LS44MS0yLjA2YTguMjQgOC4yNCAwIDAgMC0xLjY1LTEuNTMgMTQuNjIgMTQuNjIgMCAwIDAtMi4yOC0xLjM0bC0uMDQtLjAyaC0uMDFaTTE3IDE3aC01di0yYTIgMiAwIDEgMC00IDB2Mkgzdi01aDE0djVabS03LTNhMSAxIDAgMCAxIDEgMXYySDl2LTJhMSAxIDAgMCAxIDEtMVptMy40LTYuNDRjLjM5LjQ5LjYuOTcuNiAxLjQ0IDAgLjczLS4yIDEuNDEtLjU0IDJINi41NEEzLjk4IDMuOTggMCAwIDEgNiA5YzAtLjQ3LjIxLS45NS42LTEuNDQuMzgtLjUuOS0uOTQgMS40NC0xLjM0QTEzLjYzIDEzLjYzIDAgMCAxIDEwIDUuMDVhMTMuNTUgMTMuNTUgMCAwIDEgMS45NiAxLjE3Yy41NC40IDEuMDYuODUgMS40NCAxLjM0WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ011bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjEzYTEgMSAwIDAgMCAxIDFoNy41YS41LjUgMCAwIDAgLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYyYzAgLjI4LjIyLjUuNS41SDE3YTEgMSAwIDAgMCAxLTFWN2EyIDIgMCAwIDAtMi0yaC00VjRhMiAyIDAgMCAwLTItMkg0Wm03IDNoLTFhMiAyIDAgMCAwLTIgMnYxMEgzVjRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MVpNNS4yNSA5LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk02IDUuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSA5Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNiAxMS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm01LjI1LTIuMjVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0yLjc1LTIuMjVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjFoNGEyIDIgMCAwIDEgMiAydjEwYTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjRabTEwIDEzaDJ2LTJoLTJ2MlptMyAwaDJWN2ExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2MTBoMnYtMmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyWk0xMSA0YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjEzaDVWN2MwLTEuMS45LTIgMi0yaDFWNFptMSA0Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS02Ljc1Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNiA1Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTUuMjUgNi43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTYgMTQuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0yLjI1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTUuNSA4Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1Blb3BsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ1Blb3BsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDMuNUM0IDIuNjcgNC42NyAyIDUuNSAyaDZjLjgzIDAgMS41LjY3IDEuNSAxLjVWOGgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MS4yM2MtLjE5LjEtLjM2LjIxLS41MS4zNWEyLjc1IDIuNzUgMCAxIDAtNC41NCAzQTIuNiAyLjYgMCAwIDAgOSAxNi42YzAgLjQ2LjA5Ljk1LjMgMS40SDQuNWEuNS41IDAgMCAxLS41LS41di0xNFptMy41IDIuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpNNi43NSA4YS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVptLjc1IDMuNzVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpNMTAuMjUgNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVaTTExIDguNzVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptMy43NSAzLjVhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFptMy41LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTYgMTYuNmMwIDEuMTgtLjggMi40LTMgMi40cy0zLTEuMjItMy0yLjRjMC0uODguNzItMS42IDEuNi0xLjZoMi44Yy44OCAwIDEuNi43MiAxLjYgMS42Wm0uNyAxLjRoLjA1YzEuNjUgMCAyLjI1LS45MSAyLjI1LTEuOCAwLS42Ni0uNTQtMS4yLTEuMi0xLjJoLTEuMzVjLjM0LjQ0LjU1IDEgLjU1IDEuNiAwIC40Ni0uMDkuOTUtLjMgMS40WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdQZW9wbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nUGVvcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02Ljc1IDkuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTMtM2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTQgMTcuNWMwIC4yOC4yMi41LjUuNWg0LjhhMy4zMiAzLjMyIDAgMCAxLS4yOC0xSDVWMy41YzAtLjI4LjIyLS41LjUtLjVoNmMuMjggMCAuNS4yMi41LjV2NWMwIC4yOC4yMi41LjUuNWgyYy4yOCAwIC41LjIyLjUuNXYuODZjLjIuMjEuMzcuNDYuNDkuNzIuMTUtLjE0LjMyLS4yNS41MS0uMzVWOS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxM1YzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTRabTIuNzUtNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzUtMy43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk02Ljc1IDYuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTggNS43NWExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWm0zLjUuNWExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xNiAxNi42YzAgMS4xOC0uOCAyLjQtMyAyLjRzLTMtMS4yMi0zLTIuNGMwLS44OC43Mi0xLjYgMS42LTEuNmgyLjhjLjg4IDAgMS42LjcyIDEuNiAxLjZabS43IDEuNGguMDVjMS42NSAwIDIuMjUtLjkxIDIuMjUtMS44IDAtLjY2LS41NC0xLjItMS4yLTEuMmgtMS4zNWMuMzQuNDQuNTUgMSAuNTUgMS42IDAgLjQ2LS4wOS45NS0uMyAxLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1JldGFpbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ1JldGFpbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDEwVjhoOHYySDZabTYgNHYtMWgydjFoLTJabTYtOS41YzAgLjY1LS40MiAxLjItMSAxLjQxVjE2LjVhLjUuNSAwIDAgMS0uNS41SDEwdi00LjVhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwLS41LjVWMTdIMy41YS41LjUgMCAwIDEtLjUtLjVWNS45MUExLjUgMS41IDAgMCAxIDMuNSAzaDEzYy44MyAwIDEuNS42NyAxLjUgMS41Wm0tMTUgMGMwIC4yOC4yMi41LjUuNWgxM2EuNS41IDAgMCAwIDAtMWgtMTNhLjUuNSAwIDAgMC0uNS41Wk01LjUgN2EuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtOVptNiA1YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0zWk02IDE3aDN2LTRINnY0WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdSZXRhaWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nUmV0YWlsUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgN2EuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtOVptLjUgM1Y4aDh2Mkg2Wm01LjUgMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtM1ptLjUgMnYtMWgydjFoLTJaTTIgNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMTNhMS41IDEuNSAwIDAgMSAuNSAyLjkxVjE2LjVhLjUuNSAwIDAgMS0uNS41aC0xM2EuNS41IDAgMCAxLS41LS41VjUuOTFjLS41OC0uMi0xLS43Ni0xLTEuNDFaTTMuNSA0YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pNNCA2djEwaDF2LTMuNWMwLS4yOC4yMi0uNS41LS41aDRjLjI4IDAgLjUuMjIuNS41VjE2aDZWNkg0Wm0yIDEwaDN2LTNINnYzWlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdSZXRhaWxNb25leUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ1JldGFpbE1vbmV5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMTBWOGg4djJINlptMTEtNC4wOUExLjUgMS41IDAgMCAwIDE2LjUgM2gtMTNBMS41IDEuNSAwIDAgMCAzIDUuOTFWMTYuNWMwIC4yOC4yMi41LjUuNUg1di00LjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yIDAgLjM4LjEyLjQ2LjMuMy0uMi42Ni0uMyAxLjA0LS4zaDZWNS45MVpNMy41IDRoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEgMC0xWk01IDcuNWMwLS4yOC4yMi0uNS41LS41aDljLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTNaTTkgMTN2NEg2di00aDNabTguNSAwYy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtM2MwLS44My42Ny0xLjUgMS41LTEuNWg2Wm0wIDVjMC0uMjguMjItLjUuNS0uNXYtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVoMVptLjUtMy41YS41LjUgMCAwIDEtLjUtLjVoLTFjMCAuODMuNjcgMS41IDEuNSAxLjV2LTFabS02LjUtLjVhLjUuNSAwIDAgMS0uNS41djFjLjgzIDAgMS41LS42NyAxLjUtMS41aC0xWm0tLjUgMy41Yy4yOCAwIC41LjIyLjUuNWgxYzAtLjgzLS42Ny0xLjUtMS41LTEuNXYxWm0zLjUtM2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nUmV0YWlsTW9uZXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nUmV0YWlsTW9uZXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMTNhMS41IDEuNSAwIDAgMSAuNSAyLjkxVjEyaC0xVjZINHYxMGgxdi0zLjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yIDAgLjM4LjEyLjQ2LjNBMiAyIDAgMCAwIDkgMTR2LTFINnYzaDN2MUgzLjVhLjUuNSAwIDAgMS0uNS0uNVY1LjkxYy0uNTgtLjItMS0uNzYtMS0xLjQxWk0zLjUgNGEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTIgM2EuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtOVptLjUgM1Y4aDh2Mkg2Wm0xMyA0LjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di0zYzAtLjgzLjY3LTEuNSAxLjUtMS41aDZjLjgzIDAgMS41LjY3IDEuNSAxLjVaTTE3LjUgMThjMC0uMjguMjItLjUuNS0uNXYtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVoMVptLjUtMy41YS41LjUgMCAwIDEtLjUtLjVoLTFjMCAuODMuNjcgMS41IDEuNSAxLjV2LTFabS02LjUtLjVhLjUuNSAwIDAgMS0uNS41djFjLjgzIDAgMS41LS42NyAxLjUtMS41aC0xWm0tLjUgMy41Yy4yOCAwIC41LjIyLjUuNWgxYzAtLjgzLS42Ny0xLjUtMS41LTEuNXYxWm0zLjUtM2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nUmV0YWlsTW9yZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ1JldGFpbE1vcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzLjNhMSAxIDAgMCAxIC43LS4zaDEwLjZhMSAxIDAgMCAxIC43LjNsMi42NCAyLjYzYy43Ni43Ny4yMiAyLjA3LS44NSAyLjA3SDIuMmExLjIxIDEuMjEgMCAwIDEtLjg1LTIuMDdMNCAzLjNaTTE3IDlIM3Y2YzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY5Wk03IDEzYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMyAwYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMyAwYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nUmV0YWlsTW9yZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdSZXRhaWxNb3JlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDEzYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNNCAzLjNhMSAxIDAgMCAxIC43LS4zaDEwLjZhMSAxIDAgMCAxIC43LjNsMi42NCAyLjYzYy43Ni43Ny4yMiAyLjA3LS44NSAyLjA3SDE3djdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGgtLjc5YTEuMjEgMS4yMSAwIDAgMS0uODUtMi4wN0w0IDMuM1pNMTYgMTVWOEg0djdhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xWm0xLjc5LThjLjE4IDAgLjI4LS4yMy4xNC0uMzZMMTUuMyA0SDQuNzFMMi4wNyA2LjY0QS4yMS4yMSAwIDAgMCAyLjIgN0gxNy44WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdSZXRhaWxTaGllbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdSZXRhaWxTaGllbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNC41YzAgLjY1LS40MiAxLjItMSAxLjQxdjMuMzZjLS4zNC0uMjQtLjYzLS41LS44NS0uNzNBMS42IDEuNiAwIDAgMCAxNSA4LjA2VjcuNWEuNS41IDAgMCAwLS41LS41aC05YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDQuNThhMS41IDEuNSAwIDAgMC0uMDguNVYxM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwLS41LjVWMTdIMy41YS41LjUgMCAwIDEtLjUtLjVWNS45MUExLjUgMS41IDAgMCAxIDMuNSAzaDEzYy44MyAwIDEuNS42NyAxLjUgMS41Wm0tMTUgMGMwIC4yOC4yMi41LjUuNWgxM2EuNS41IDAgMCAwIDAtMWgtMTNhLjUuNSAwIDAgMC0uNS41Wk0xNCA4di40bC0uMTUuMTRBNC43MSA0LjcxIDAgMCAxIDExLjIyIDEwSDZWOGg4Wm0tNSA1SDZ2NGgzdi00Wm05LjUtMi4wNGE1LjY5IDUuNjkgMCAwIDEtMy4wNi0xLjcyLjYyLjYyIDAgMCAwLS44OCAwIDUuNyA1LjcgMCAwIDEtMy4wNiAxLjcyYy0uMjcuMDQtLjUuMjYtLjUuNTRWMTRjMCAzLjQ3IDMuMTggNC43MyAzLjg3IDQuOTZhLjQuNCAwIDAgMCAuMjYgMGMuNjktLjIzIDMuODctMS41IDMuODctNC45NnYtMi41YzAtLjI4LS4yMy0uNS0uNS0uNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1JldGFpbFNoaWVsZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdSZXRhaWxTaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAzQTEuNSAxLjUgMCAwIDAgMyA1LjkxVjE2LjVjMCAuMjguMjIuNS41LjVIMTB2LTQuNWEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAtLjUuNVYxNkg0VjZoMTJ2Mi40bC4xNS4xNGMuMjIuMjMuNTEuNDkuODUuNzNWNS45QTEuNSAxLjUgMCAwIDAgMTYuNSAzaC0xM1pNMyA0LjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVpNOSAxNkg2di0zaDN2M1ptNi03Ljk0VjcuNWEuNS41IDAgMCAwLS41LS41aC05YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDQuNThhMS42IDEuNiAwIDAgMSAxLjE0LTFINlY4aDh2LjRjLjI5LS4yMi42NC0uMzQgMS0uMzRabTMuNSAyLjlhNS42OSA1LjY5IDAgMCAxLTMuMDYtMS43Mi42Mi42MiAwIDAgMC0uODggMCA1LjcgNS43IDAgMCAxLTMuMDYgMS43MmMtLjI3LjA0LS41LjI2LS41LjU0VjE0YzAgMy40NyAzLjE4IDQuNzMgMy44NyA0Ljk2YS40LjQgMCAwIDAgLjI2IDBjLjY5LS4yMyAzLjg3LTEuNSAzLjg3LTQuOTZ2LTIuNWMwLS4yOC0uMjMtLjUtLjUtLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdSZXRhaWxUb29sYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nUmV0YWlsVG9vbGJveEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjkxQTEuNSAxLjUgMCAwIDAgMTYuNSAzaC0xM0ExLjUgMS41IDAgMCAwIDMgNS45MVYxNi41YzAgLjI4LjIyLjUuNS41SDV2LTQuNWMwLS4yOC4yMi0uNS41LS41aDRjLjM3LS41LjkxLS44NCAxLjU0LS45NmwuMDEtLjA0SDUuNWEuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVoOWMuMjggMCAuNS4yMi41LjVWOWguNWMuNTYgMCAxLjA4LjE5IDEuNS41VjUuOTFaTTMuNSA0aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxIDAtMVpNOSAxM3Y0SDZ2LTRoM1ptNC41LTRoLjVWOEg2djJoNS41Yy40Ni0uNiAxLjE4LTEgMi0xWk0xMiAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nUmV0YWlsVG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdSZXRhaWxUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDEzYTEuNSAxLjUgMCAwIDEgLjUgMi45MVY5LjVjLS4zLS4yMi0uNjMtLjM4LTEtLjQ1VjZINHYxMGgxdi0zLjVjMC0uMjguMjItLjUuNS0uNWg0Yy0uMzEuNDItLjUuOTQtLjUgMS41VjEzSDZ2M2gzdjFIMy41YS41LjUgMCAwIDEtLjUtLjVWNS45MWMtLjU4LS4yLTEtLjc2LTEtMS40MVpNMy41IDRhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWk0xNSA3LjVWOWgtMVY4SDZ2Mmg1LjVjLS4yMi4zLS4zOC42My0uNDUgMUg1LjVhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41aDljLjI4IDAgLjUuMjIuNS41Wk0xMiAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nU2hvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdWlsZGluZ1Nob3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIgMTJoMnYyaC0ydi0yWk01IDJoMTBhLjUuNSAwIDAgMSAuMzguMThsMi41IDNjLjEyLjE0LjEyLjIxLjEyLjNWN2EzIDMgMCAwIDEtMSAyLjI0djguMjZhLjUuNSAwIDAgMS0uNS41SDEwdi02LjVhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwLS41LjVWMThIMy41YS41LjUgMCAwIDEtLjUtLjVWOS4yNEEzIDMgMCAwIDEgMiA3VjUuNWEuNS41IDAgMCAxIC4xMi0uMzJsMi41LTNBLjUuNSAwIDAgMSA1IDJaTTMgNnYxYTIgMiAwIDEgMCA0IDBWNkgzWm01IDB2MWEyIDIgMCAxIDAgNCAwVjZIOFptNSAwdjFhMiAyIDAgMSAwIDQgMFY2aC00Wk01LjIzIDMgMy41NyA1aDMuNTdsLjY3LTJINS4yM1ptNi41OCAyLS42Ny0ySDguODZsLS42NyAyaDMuNjJabTEuMDUgMGgzLjU3bC0xLjY2LTJoLTIuNThsLjY3IDJaTTExIDExLjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaTTkgMTh2LTZINnY2aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1Nob3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nU2hvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgMTEuNXYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVptMSAyLjV2LTJoMnYyaC0yWk01IDJhLjUuNSAwIDAgMC0uMzguMThsLTIuNSAzQS41LjUgMCAwIDAgMiA1LjVWN2EzIDMgMCAwIDAgMSAyLjI0djguMjZjMCAuMjguMjIuNS41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNVY5LjI0QTMgMyAwIDAgMCAxOCA3VjUuNDhjMC0uMDkgMC0uMTYtLjEyLS4zbC0yLjUtM0EuNS41IDAgMCAwIDE1IDJINVptMCA3YTIgMiAwIDAgMS0yLTJWNmg0djFhMiAyIDAgMCAxLTIgMlptNSAwYTIgMiAwIDAgMS0yLTJWNmg0djFhMiAyIDAgMCAxLTIgMlptNSAwYTIgMiAwIDAgMS0yLTJWNmg0djFhMiAyIDAgMCAxLTIgMlpNNSAxN0g0VjkuODNhMyAzIDAgMCAwIDMuNS0xLjE3IDMgMyAwIDAgMCA1IDBBMyAzIDAgMCAwIDE2IDkuODNWMTdoLTZ2LTUuNWEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAtLjUuNVYxN1pNNy4xNCA1SDMuNTdsMS42Ni0yaDIuNThsLS42NyAyWm00LjY3IDBIOC4xOWwuNjctMmgyLjI4bC42NyAyWm0xLjA1IDAtLjY3LTJoMi41OGwxLjY2IDJoLTMuNTdaTTYgMTd2LTVoM3Y1SDZaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1NreXNjcmFwZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdTa3lzY3JhcGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMi41YzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVWM0g3di0uNVpNNS40NiA0YS41LjUgMCAwIDAtLjQ2LjVWNWg2di0uNWEuNS41IDAgMCAwLS40Ni0uNUg1LjQ2Wm04LjI5IDExYS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjc1LTMuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNNSA2aDZ2LjAyYy42LjM0IDEgLjk5IDEgMS43M1Y4aC41YTQuNSA0LjUgMCAwIDEgNC41IDQuNXY0YS41LjUgMCAwIDEtLjUuNUg5di0yLjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjVWMTdINC41YS41LjUgMCAwIDEtLjUtLjVWNy43NWEyIDIgMCAwIDEgMS0xLjczVjZabTcgMTBoNHYtMy41QTMuNSAzLjUgMCAwIDAgMTIuNSA5SDEydjdaTTcuNSA4Ljc1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabTEuNzUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk03LjUgMTEuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptMS43NS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1NreXNjcmFwZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nU2t5c2NyYXBlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDguNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMS43NS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTcuNSAxMS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0xLjc1Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptNS4yNSAyLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUtMS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTcgMmEuNS41IDAgMCAwLS41LjVWNGgtLjk0YS41LjUgMCAwIDAtLjUuNXYxLjc0QTIgMiAwIDAgMCA0IDh2OC41YzAgLjI3LjIyLjUuNS41aDEyYS41LjUgMCAwIDAgLjUtLjV2LTRBNC41IDQuNSAwIDAgMCAxMi41IDhIMTJhMiAyIDAgMCAwLS45NC0xLjdWNC41YS41LjUgMCAwIDAtLjUtLjVIOS41VjIuNUEuNS41IDAgMCAwIDkgMkg3Wm0zIDRINi4wNlY1aDR2MUgxMFptMSAxMGgtMXYtMmExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYySDVWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXY4Wm0tNCAwdi0yaDJ2Mkg3Wm05IDBoLTRWOWguNWEzLjUgMy41IDAgMCAxIDMuNSAzLjVWMTZaTTguNSA0aC0xVjNoMXYxWlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdTd2FwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0J1aWxkaW5nU3dhcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDMuNUM0IDIuNjcgNC42NyAyIDUuNSAyaDZjLjgzIDAgMS41LjY3IDEuNSAxLjVWOGgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi41OWExLjUgMS41IDAgMCAwLS45MSAxLjkxSDEzLjlhMS41IDEuNSAwIDAgMC0yLjQ3LTEuNTZsLTIgMmExLjUgMS41IDAgMCAwIDAgMi4xMkwxMC44OCAxOEg0LjVhLjUuNSAwIDAgMS0uNS0uNXYtMTRabTIuNzUgM2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzUtNi43NWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk05Ljc1IDkuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabTIuMzUgMi4xYS41LjUgMCAwIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMMTEuNzEgMTZoNS41OGwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE3LjI5IDE1aC01LjU4bDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEJ1aWxkaW5nU3dhcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdTd2FwUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgNS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk02Ljc1IDkuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTkuNzUgNi41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjc1IDIuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjEzIDQuNSAxIDFINC41YS41LjUgMCAwIDEtLjUtLjV2LTE0QzQgMi42NyA0LjY3IDIgNS41IDJoNmMuODMgMCAxLjUuNjcgMS41IDEuNVY4aDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjU5YTEuNSAxLjUgMCAwIDAtMSAxLjRWOS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtNWEuNS41IDAgMCAwLS41LS41aC02YS41LjUgMCAwIDAtLjUuNVYxN2g0Ljg4Wm0yLjk3LTMuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMS43MSAxNmg1LjU4bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTcuMjkgMTVoLTUuNThsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQnVpbGRpbmdUb3duaG91c2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdUb3duaG91c2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi45NiAzLjNhMSAxIDAgMCAwLTEuNDIgMGwtMi4xIDIuMUExLjUgMS41IDAgMCAwIDMgNi40NHY5LjA1YzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2LTMuNWMwLS4yOC4yMi0uNS41LS41aDJWNi40NWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTIuMS0yLjFabTMuNTQgMy4xNVYxM2gyYy4yOCAwIC41LjIyLjUuNVYxN2gyLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjYuNDVjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjEtMi4xYTEgMSAwIDAgMC0xLjQyIDBsLTIuMSAyLjFhMS41IDEuNSAwIDAgMC0uNDQgMS4wNlptMCA3LjU1djNIMTJ2LTNoLTEuNVptLTEgM3YtM0g4djNoMS41Wk03IDcuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzLjc1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptOC4yNS0zLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBCdWlsZGluZ1Rvd25ob3VzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnVpbGRpbmdUb3duaG91c2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMSAzLjI0YTEgMSAwIDAgMSAxLjMgMEw5Ljk3IDUuNGwuMDMuMDMuMDMtLjAzIDIuNTctMi4xN2ExIDEgMCAwIDEgMS4zIDBsMi41NyAyLjE3Yy4zNC4yOC41My43LjUzIDEuMTV2OC45NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxNS41VjYuNTZjMC0uNDUuMi0uODcuNTMtMS4xNUw2LjEgMy4yNFpNMTAuNSAxM2gyYy4yOCAwIC41LjIyLjUuNVYxNmgyLjVhLjUuNSAwIDAgMCAuNS0uNVY2LjU2YS41LjUgMCAwIDAtLjE4LS4zOUwxMy4yNSA0bC0yLjU3IDIuMTdhLjUuNSAwIDAgMC0uMTguMzlWMTNabS0xIDBWNi41NmEuNS41IDAgMCAwLS4xOC0uMzlMNi43NSA0IDQuMTggNi4xN2EuNS41IDAgMCAwLS4xOC4zOXY4Ljk0YzAgLjI4LjIyLjUuNS41SDd2LTIuNWMwLS4yOC4yMi0uNS41LS41aDJaTTggMTZoMS41di0ySDh2MlptMi41LTJ2MkgxMnYtMmgtMS41Wk02Ljc1IDguNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTUuNzUtMi4yNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBCdXR0b25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQnV0dG9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgOGEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2M2EzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y4Wm03IDEuNWMwIC4yOC4yMi41LjUuNUgxNGEuNS41IDAgMCAwIDAtMUg5LjVhLjUuNSAwIDAgMC0uNS41Wm0tMSAwYTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQnV0dG9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdCdXR0b25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgOGEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2M2EzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y4Wm0zLTJhMiAyIDAgMCAwLTIgMnYzYzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJINVptNCAzLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptLTEgMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGN1bGF0b3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsY3VsYXRvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41IDJoLTdBMi41IDIuNSAwIDAgMCA0IDQuNXYxMUEyLjUgMi41IDAgMCAwIDYuNSAxOGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTFBMi41IDIuNSAwIDAgMCAxMy41IDJabS02IDJoNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDYgNi41di0xQzYgNC42NyA2LjY3IDQgNy41IDRabS41IDdhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0wIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm01LTJhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0xIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNC0yYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMSAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGN1bGF0b3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGN1bGF0b3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggMTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0wIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm01LTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNC0yYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMSAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNNy41IDRDNi42NyA0IDYgNC42NyA2IDUuNXYxQzYgNy4zMyA2LjY3IDggNy41IDhoNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wk03IDUuNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTFabTkgMTBhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgNCAxNS41di0xMUEyLjUgMi41IDAgMCAxIDYuNSAyaDdBMi41IDIuNSAwIDAgMSAxNiA0LjV2MTFabS0xLTExYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN0M1LjY3IDMgNSAzLjY3IDUgNC41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGN1bGF0b3JBcnJvd0Nsb2Nrd2lzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxjdWxhdG9yQXJyb3dDbG9ja3dpc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNSAyaC03QTIuNSAyLjUgMCAwIDAgNCA0LjV2MTFBMi41IDIuNSAwIDAgMCA2LjUgMThoMy43N2E1LjQ4IDUuNDggMCAwIDEtLjY0LTYuMDcgMSAxIDAgMSAxIDEuMTctMS41MkE1LjQ4IDUuNDggMCAwIDEgMTYgOS4xOVY0LjVBMi41IDIuNSAwIDAgMCAxMy41IDJabS02IDJoNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDYgNi41di0xQzYgNC42NyA2LjY3IDQgNy41IDRabS41IDdhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0wIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm05LjUtMS41MmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtMSAwdi43NmE0LjUgNC41IDAgMSAwIDIgMy43NC41LjUgMCAxIDAtMSAwIDMuNSAzLjUgMCAxIDEtMS43LTNoLS44YS41LjUgMCAxIDAgMCAxaDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxjdWxhdG9yQXJyb3dDbG9ja3dpc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGN1bGF0b3JBcnJvd0Nsb2Nrd2lzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAxMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTAgM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTIuNjMtMy4wN2MuMy0uNTguNy0xLjEgMS4xNy0xLjUyYTEgMSAwIDEgMC0xLjE3IDEuNTJaTTYuNSAxN2gzLjExYy4xOC4zNi40LjcuNjYgMUg2LjVBMi41IDIuNSAwIDAgMSA0IDE1LjV2LTExQTIuNSAyLjUgMCAwIDEgNi41IDJoN0EyLjUgMi41IDAgMCAxIDE2IDQuNXY0LjY5Yy0uMzItLjEtLjY2LS4xNi0xLS4xOVY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03QzUuNjcgMyA1IDMuNjcgNSA0LjV2MTFjMCAuODMuNjcgMS41IDEuNSAxLjVaTTYgNS41QzYgNC42NyA2LjY3IDQgNy41IDRoNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDYgNi41di0xWk03LjUgNWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtNVptMTAgNy40OGEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtMSAwdi43NmE0LjUgNC41IDAgMSAwIDIgMy43NC41LjUgMCAxIDAtMSAwIDMuNSAzLjUgMCAxIDEtMS43LTNoLS44YS41LjUgMCAxIDAgMCAxaDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxjdWxhdG9yTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsY3VsYXRvck11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAyQTIuNSAyLjUgMCAwIDAgMyA0LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxNmg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDEyLjUgMmgtN1pNNSA1YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNVptMCA1YTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptNC0xYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptMCAyLjc1YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlpNMTEgMTBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xIDEuNzVhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0tNiAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlpNNy41IDE4YTIuNSAyLjUgMCAwIDEtMi0xaDdhMy41IDMuNSAwIDAgMCAzLjUtMy41di05Yy42LjQ2IDEgMS4xOCAxIDJ2N2E0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxjdWxhdG9yTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGN1bGF0b3JNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINlptMCAxaDZ2Mkg2VjVabTIgNWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEgMS43NWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaTTExIDEwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptMSAxLjc1YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpNNSAxMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEgMS43NWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaTTUuNSAyQTIuNSAyLjUgMCAwIDAgMyA0LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxNmg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDEyLjUgMmgtN1pNNCA0LjVDNCAzLjY3IDQuNjcgMyA1LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNCAxMy41di05Wk03LjUgMThhMi41IDIuNSAwIDAgMS0yLTFoN2EzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTljLjYuNDYgMSAxLjE4IDEgMnY3YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjVWNmgxNHYtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTE3IDdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN1ptLTkgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDRhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm00LTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMSA0YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptNC00YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0yLTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0yLTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlaTTQgN2gxMnY3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41VjdabTEuNS0zaDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyM0RheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhcjNEYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptLTggM2EuNS41IDAgMCAwLS41LjQxdjcuMThhLjUuNSAwIDAgMCAxIDBWNi40MUEuNS41IDAgMCAwIDYuNSA2Wk0xMCA2YS41LjUgMCAwIDAtLjUuNDF2Ny4xOGEuNS41IDAgMCAwIDEgMFY2LjQxQS41LjUgMCAwIDAgMTAgNlptMy41IDBhLjUuNSAwIDAgMC0uNS40MXY3LjE4YS41LjUgMCAwIDAgMSAwVjYuNDFhLjUuNSAwIDAgMC0uNS0uNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhcjNEYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyM0RheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVabS04IDJhLjUuNSAwIDAgMSAuNS40MXY3LjA5YS41LjUgMCAwIDEtMSAuMDlWNi41YzAtLjI4LjIyLS41LjUtLjVaTTEwIDZhLjUuNSAwIDAgMSAuNS40MXY3LjA5YS41LjUgMCAwIDEtMSAuMDlWNi41YzAtLjI4LjIyLS41LjUtLjVabTMuNSAwYS41LjUgMCAwIDEgLjUuNDF2Ny4wOWEuNS41IDAgMCAxLTEgLjA5VjYuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBZ2VuZGFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJBZ2VuZGFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgMTQuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlabS0zLThhLjUuNSAwIDAgMC0uNDEtLjVINi40MWEuNS41IDAgMCAwIDAgMWg3LjE4YS41LjUgMCAwIDAgLjQxLS41Wm0wIDMuNWEuNS41IDAgMCAwLS40MS0uNUg2LjQxYS41LjUgMCAwIDAgMCAxaDcuMThBLjUuNSAwIDAgMCAxNCAxMFptMCAzLjVhLjUuNSAwIDAgMC0uNDEtLjVINi40MWEuNS41IDAgMCAwIDAgMWg3LjE4YS41LjUgMCAwIDAgLjQxLS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBZ2VuZGFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyQWdlbmRhUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxNC41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OVptLTEgMHYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41Wm0tMi04YS41LjUgMCAwIDEtLjQxLjVINi41YS41LjUgMCAwIDEtLjA5LTFoNy4wOWMuMjggMCAuNS4yMi41LjVabTAgMy41YS41LjUgMCAwIDEtLjQxLjVINi41YS41LjUgMCAwIDEtLjA5LTFoNy4wOWMuMjggMCAuNS4yMi41LjVabTAgMy41YS41LjUgMCAwIDEtLjQxLjVINi41YS41LjUgMCAwIDEtLjA5LTFoNy4wOWMuMjggMCAuNS4yMi41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckFycm93Q291bnRlcmNsb2Nrd2lzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckFycm93Q291bnRlcmNsb2Nrd2lzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkg2LjExQTEuNSAxLjUgMCAwIDAgNCA1Ljg3VjcuM2wuNjUtLjY0YS41LjUgMCAxIDEgLjcuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNy0uN2wuNjUuNjRWNS41Wk0xNyA3djcuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjVWOS45MmExLjUgMS41IDAgMCAwIDEuNTUtLjM2bDEuNS0xLjVjLjMtLjMuNDQtLjY4LjQ0LTEuMDZIMTdaTTcgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMSAyYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptNC0yYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTEgMmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabTQtMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckFycm93Q291bnRlcmNsb2Nrd2lzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJBcnJvd0NvdW50ZXJjbG9ja3dpc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAxN0EyLjUgMi41IDAgMCAxIDMgMTQuNXYtNGEuNS41IDAgMCAxIDEgMHY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjdINi41YzAtLjM2LS4xNC0uNzItLjQtMUgxNnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2MS44bC42NS0uNjVhLjUuNSAwIDEgMSAuNy43bC0xLjUgMS41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMSAxIC43LS43bC42NS42NFY1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05Wk04IDEwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQtNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBcnJvd0Rvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJBcnJvd0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDE0di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNMTcgN0gzdjcuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFBNS41IDUuNSAwIDAgMSAxNyA5LjZWN1ptMiA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1IDIuMzVhLjUuNSAwIDAgMCAuMzUuMTUuNS41IDAgMCAwIC4zNS0uMTVsMi0yYS41LjUgMCAwIDAtLjctLjdMMTUgMTUuMjlWMTIuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyQXJyb3dEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVY3aDEydjIuMmMuMzUuMS42OC4yNCAxIC40VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41VjZINHYtLjVabTE1IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1IDIuMzVhLjUuNSAwIDAgMCAuMzUuMTUuNS41IDAgMCAwIC4zNS0uMTVsMi0yYS41LjUgMCAwIDAtLjctLjdMMTUgMTUuMjlWMTIuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDE0di0uNVptMCA0LjFWN0gzdjcuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFBNS41IDUuNSAwIDAgMSAxNyA5LjZabTIgNC45YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVY3aDEydjIuMmMuMzUuMS42OC4yNCAxIC40VjUuNVpNNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY2SDR2LS41QzQgNC42NyA0LjY3IDQgNS41IDRaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckFzc2lzdGFudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckFzc2lzdGFudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3djIuNkE1LjUgNS41IDAgMCAwIDkuNiAxN0g1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNFptLTIuNS00QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIM3YtLjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0wIDE2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tMS4xLTcuMTdhLjUuNSAwIDAgMSAuNDgtLjMzaDEuMThhLjUuNSAwIDAgMSAuNDcuNjZsLS4yOC44NEgxNmEuNS41IDAgMCAxIC40Mi43N2wtMi4yNSAzLjVhLjUuNSAwIDAgMS0uOS0uNGwuNS0xLjg3SDEzYS41LjUgMCAwIDEtLjQ3LS42N2wuODgtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJBc3Npc3RhbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyQXNzaXN0YW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gxMnYyLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVaTTUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNS4xMi0zYS41LjUgMCAwIDAtLjQ3LjMzbC0uODggMi41QS41LjUgMCAwIDAgMTMgMTVoLjc4bC0uNTEgMS44N2EuNS41IDAgMCAwIC45LjRsMi4yNS0zLjVBLjUuNSAwIDAgMCAxNiAxM2gtLjc1bC4yOC0uODRhLjUuNSAwIDAgMC0uNDctLjY2aC0xLjE4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJDYW5jZWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJDYW5jZWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuNS43IDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyQ2FuY2VsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckNhbmNlbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41LjcgMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJDaGF0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyQ2hhdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41VjZoMTR2LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk0xNyA3SDN2Ny41QTIuNSAyLjUgMCAwIDAgNS41IDE3aDMuOTJsLjA3LS4yM0E1LjQ4IDUuNDggMCAwIDEgMTQuNSA5Yy45IDAgMS43NS4yMiAyLjUuNlY3Wm0tNyA3LjVjMCAuOC4yIDEuNTQuNTYgMi4xOGwtLjU0IDEuOGMtLjEuMy4yLjYuNTEuNWwxLjc5LS41NEE0LjUgNC41IDAgMSAwIDEwIDE0LjVabTIuNS0xLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMSAxIDAtMVptLS41IDIuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyQ2hhdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJDaGF0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMTZoMy43Yy4wOC4yNy4xOC41Mi4yOS43N2wtLjA3LjIzSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVabTAtMTJDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTUuMDYgMTIuNjgtLjU0IDEuOGMtLjEuMy4yLjYuNS41bDEuOC0uNTRhNC41IDQuNSAwIDEgMC0xLjc2LTEuNzVaTTEyLjUgMTZhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMSAxIDAgMWgtMlptMC0zaDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckNoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3djIuNkE1LjUgNS41IDAgMCAwIDkuNiAxN0g1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNFptLTIuNS00QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIM3YtLjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckNoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDE0di0uNVptMCA0LjFWN0gzdjcuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFBNS41IDUuNSAwIDAgMSAxNyA5LjZaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uNS02LjVhLjUuNSAwIDAgMSAxIDBWMTRoMWEuNS41IDAgMCAxIDAgMWgtMS41YS41LjUgMCAwIDEtLjUtLjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckNsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gxMnYyLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVaTTUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0Wm05IDE1YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjUtNi41YS41LjUgMCAwIDEgMSAwVjE0aDFhLjUuNSAwIDAgMSAwIDFoLTEuNWEuNS41IDAgMCAxLS41LS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJEYXRhQmFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRGF0YUJhckZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMTdIMTB2LTJhMiAyIDAgMCAxIDMtMS43M1YxMWEyIDIgMCAxIDEgNCAwVjdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdabTktMTRBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkgzdi0uNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabS41IDdhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDEgMCAyIDB2LTdhMSAxIDAgMCAwLTEtMVptLTMgNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMSAwIDIgMHYtM2ExIDEgMCAwIDAtMS0xWm01LTFhMSAxIDAgMSAxIDIgMHY1YTEgMSAwIDEgMS0yIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckRhdGFCYXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRGF0YUJhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMHYtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gxMnYyLjI3Yy42LjM0IDEgLjk5IDEgMS43M1Y1LjVaTTUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0Wm05LjUgNmExIDEgMCAwIDAtMSAxdjdhMSAxIDAgMSAwIDIgMHYtN2ExIDEgMCAwIDAtMS0xWm0tMyA0YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAxIDAgMiAwdi0zYTEgMSAwIDAgMC0xLTFabTUtMWExIDEgMCAxIDEgMiAwdjVhMSAxIDAgMSAxLTIgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRGF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckRhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3Y3LjVhMi41IDIuNSAwIDAgMS0yLjM0IDIuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjY2VjdoMTRabS01LjQ4IDEuMjNjLS41MyAwLS45Ni4xNS0xLjI3LjQzLS4zMS4yOC0uNDcuNjctLjQ3IDEuMTUgMCAuMjguMDcuNTMuMjEuNzUuMTUuMjEuMzQuMzkuNTguNTEtLjI5LjEzLS41MS4zMi0uNjcuNTYtLjE3LjI0LS4yNS41MS0uMjUuODIgMCAuNS4xNy45LjUxIDEuMTlhMiAyIDAgMCAwIDEuMzYuNDQgMiAyIDAgMCAwIDEuMzUtLjQ0Yy4zNC0uMy41MS0uNy41MS0xLjIgMC0uMy0uMDgtLjU2LS4yNC0uOGExLjYyIDEuNjIgMCAwIDAtLjY5LS41N2MuMjUtLjEyLjQ1LS4zLjU5LS41MS4xNC0uMjIuMjEtLjQ3LjIxLS43NSAwLS40OC0uMTUtLjg3LS40Ni0xLjE1YTEuODIgMS44MiAwIDAgMC0xLjI3LS40M1pNOC41IDguM2gtLjEzbC0yLjIxLjgydi44bDEuNC0uNDhWMTRoLjk0VjguM1ptMy4wMSAzLjE3Yy4yOCAwIC41LjA5LjY3LjI2LjE3LjE3LjI1LjQuMjUuNjggMCAuMy0uMDguNTItLjI0LjY4YS45LjkgMCAwIDEtLjY3LjI0LjkuOSAwIDAgMS0uNjctLjI1LjkxLjkxIDAgMCAxLS4yNS0uNjdjMC0uMjguMDktLjUuMjUtLjY4YS44OC44OCAwIDAgMSAuNjYtLjI2Wm0wLTIuNDZjLjI1IDAgLjQ0LjA4LjU4LjI0LjE1LjE2LjIyLjM2LjIyLjYgMCAuMjctLjA3LjQ4LS4yMS42M2EuNzUuNzUgMCAwIDEtLjU4LjIzLjc1Ljc1IDAgMCAxLS41OC0uMjMuODguODggMCAwIDEtLjItLjYyYzAtLjI3LjA2LS40Ny4yLS42M2EuNzQuNzQgMCAwIDEgLjU4LS4yMlptMi45OS02QTIuNSAyLjUgMCAwIDEgMTcgNS4zNFY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS4zNCAzaDkuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckRhdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRGF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS4zNHY5LjE2YTIuNSAyLjUgMCAwIDEtMi4zNCAyLjVINS41QTIuNSAyLjUgMCAwIDEgMyAxNC42NlY1LjVBMi41IDIuNSAwIDAgMSA1LjM0IDNoOS4xNlpNMTYgN0g0djcuNWMwIC43OC42IDEuNDIgMS4zNiAxLjVoOS4xNGMuNzggMCAxLjQyLS42IDEuNS0xLjM2VjdabS00LjQ4IDEuMjNjLjUzIDAgLjk1LjE1IDEuMjcuNDMuMy4yOC40Ni42Ny40NiAxLjE1IDAgLjI4LS4wNy41My0uMjEuNzUtLjE0LjIxLS4zNC4zOS0uNTkuNTEuMy4xNC41My4zMy42OS41Ny4xNi4yNC4yNC41LjI0LjggMCAuNS0uMTcuOS0uNSAxLjJhMiAyIDAgMCAxLTEuMzYuNDQgMiAyIDAgMCAxLTEuMzYtLjQ0IDEuNSAxLjUgMCAwIDEtLjUtMS4yYzAtLjMuMDctLjU3LjI0LS44MS4xNi0uMjQuMzgtLjQzLjY3LS41Ni0uMjQtLjEyLS40My0uMy0uNTgtLjUxYTEuMzMgMS4zMyAwIDAgMS0uMi0uNzVjMC0uNDguMTUtLjg3LjQ2LTEuMTUuMzEtLjI4Ljc0LS40MyAxLjI3LS40M1pNOC41IDguM1YxNGgtLjk1VjkuNDNsLTEuNC40OHYtLjhsMi4yMi0uODJoLjEzWm0zLjAxIDMuMTdjLS4yNyAwLS41LjA5LS42Ni4yNmEuOTQuOTQgMCAwIDAtLjI1LjY4YzAgLjI4LjA4LjUuMjUuNjdhLjkuOSAwIDAgMCAuNjcuMjUuOS45IDAgMCAwIC42Ny0uMjQuOTIuOTIgMCAwIDAgLjI0LS42OGMwLS4yOC0uMDgtLjUtLjI1LS42OGEuODkuODkgMCAwIDAtLjY3LS4yNlptMC0yLjQ2YS43NC43NCAwIDAgMC0uNTcuMjIuODguODggMCAwIDAtLjIuNjNjMCAuMjYuMDYuNDcuMi42Mi4xNS4xNS4zNC4yMy41OC4yMy4yNCAwIC40My0uMDguNTgtLjIzYS44OC44OCAwIDAgMCAuMi0uNjIuODguODggMCAwIDAtLjItLjYxLjc0Ljc0IDAgMCAwLS41OC0uMjRabTIuOTktNWgtOWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjZoMTJ2LS41YzAtLjc4LS42LTEuNDItMS4zNi0xLjVoLS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRGF5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabS0xLjc4IDZINy4yOGMtLjQ0IDAtLjYuMDUtLjc3LjEzYS45LjkgMCAwIDAtLjM4LjM4Yy0uMDcuMTQtLjEyLjI5LS4xMy42MnYyLjU5YzAgLjQ0LjA1LjYuMTMuNzcuMS4xNi4yMi4yOS4zOC4zOC4xNC4wNy4yOS4xMi42Mi4xM0gxMi43MmMuNDQgMCAuNi0uMDUuNzctLjEzYS45LjkgMCAwIDAgLjM4LS4zOGMuMDctLjE0LjEyLS4yOS4xMy0uNjJ2LTIuNTljMC0uNDQtLjA1LS42LS4xMy0uNzdhLjkuOSAwIDAgMC0uMzgtLjM4IDEuMjQgMS4yNCAwIDAgMC0uNjItLjEzaC0uMTVabS4yIDFoLjA3VjEzSDcuMDF2LTIuOThoNS45Wm0uNTgtNEg2LjQxYS41LjUgMCAwIDAgMCAxaDcuMThhLjUuNSAwIDAgMCAwLTFoLS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckRheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVabS0xLjc4IDVjLjQ0IDAgLjYuMDUuNzcuMTMuMTYuMS4yOS4yMi4zOC4zOC4wOC4xNi4xMy4zMy4xMy43N3YyLjQ0YzAgLjQ0LS4wNS42LS4xMy43N2EuOS45IDAgMCAxLS4zOC4zOGMtLjE2LjA4LS4zMy4xMy0uNzcuMTNINy4yOGMtLjQ0IDAtLjYtLjA1LS43Ny0uMTNhLjkuOSAwIDAgMS0uMzgtLjM4Yy0uMDgtLjE2LS4xMy0uMzMtLjEzLS43N3YtMi40NGMwLS40NC4wNS0uNi4xMy0uNzdhLjkuOSAwIDAgMSAuMzgtLjM4Yy4xNi0uMDguMzMtLjEzLjc3LS4xM2g1LjQ0Wm0uMiAxSDdWMTNoNS45OHYtMi45OGgtLjA4Wm0uNTgtNGEuNS41IDAgMCAxIC4wOSAxSDYuNWEuNS41IDAgMCAxLS4wOS0xaDcuMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDljLS43LjAzLTEuMzcuMzEtMS45Ljg0bC00LjgzIDQuODNjLS40LjQtLjcuOTItLjg0IDEuNDhsLS4yMS44NUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNHYyWk03IDExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTEgMmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabTQtMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabS0xIDJhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm00LTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41VjZoMTR2LS41Wm0tMS4yIDUuMDUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDMuNzJsLjIxLS44NS4wNC0uMTVINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41VjdoMTJ2Mi4yM2MuMzItLjE0LjY2LS4yMSAxLS4yM1Y1LjVaTTUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0Wm0xMC4zIDYuNTUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpNOCAxMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMSA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC00YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRW1wdHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJFbXB0eUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3djcuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNFptLTIuNS00QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIM3YtLjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJFbXB0eVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJFbXB0eVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTYgN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3Wm0tMS41LTNoLTlDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckVycm9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDE0di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNMTcgN0gzdjcuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFBNS41IDUuNSAwIDAgMSAxNyA5LjZWN1ptMiA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJFcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJFcnJvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gxMnYyLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY2SDR2LS41Wm0xNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyRXllRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRXllRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDd2NC41N2E1Ljc0IDUuNzQgMCAwIDAtNi40NyAxYy0uNDYuNDQtLjg0LjkzLTEuMSAxLjQxLS4yNS40Ny0uNDMgMS0uNDMgMS41MiAwIC40OC4xNiAxIC40MiAxLjVINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCA5Yy0yLjc2IDAtNC41IDIuMzItNC41IDMuNSAwIDEuMiAxLjc0IDMuNSA0LjUgMy41czQuNS0yLjMyIDQuNS0zLjVjMC0xLjItMS43NC0zLjUtNC41LTMuNVptMCA2YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1Wm0xLjUtMi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJFeWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyRXllUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2Ni4wN2E1Ljc0IDUuNzQgMCAwIDAtMS0uMzdWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzLjU1Yy4wNy4zMy4yLjY3LjM3IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0wIDhjLTIuNzYgMC00LjUgMi4zMi00LjUgMy41IDAgMS4yIDEuNzQgMy41IDQuNSAzLjVzNC41LTIuMzIgNC41LTMuNWMwLTEuMi0xLjc0LTMuNS00LjUtMy41Wm0wIDZhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVabTEuNS0yLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhckluZm9GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJJbmZvRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDd2Mi42QTUuNSA1LjUgMCAwIDAgOS42IDE3SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVY3aDE0Wm0tMi41LTRBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkgzdi0uNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabS0uNjMgOS41YS42Mi42MiAwIDEgMSAxLjI1IDAgLjYyLjYyIDAgMCAxLTEuMjQgMFptMS4xMyA0YS41LjUgMCAwIDEtMSAwdi0yYS41LjUgMCAwIDEgMSAwdjJabS01LTJhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBabTEgMGEzLjUgMy41IDAgMSAwIDcgMCAzLjUgMy41IDAgMCAwLTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFySW5mb1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJJbmZvUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0wIDFoLTlDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVabS0uNjMgOC41YS42Mi42MiAwIDEgMSAxLjI1IDAgLjYyLjYyIDAgMCAxLTEuMjQgMFptMS4xMyA0YS41LjUgMCAwIDEtMSAwdi0yYS41LjUgMCAwIDEgMSAwdjJabS01LTJhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBabTEgMGEzLjUgMy41IDAgMSAwIDcgMCAzLjUgMy41IDAgMCAwLTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckxvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjRhMyAzIDAgMCAwLTQuNSAyLjZ2LjA2QTIgMiAwIDAgMCAxMSAxNHYzSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVY3aDE0Wm0tMi41LTRBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkgzdi0uNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabS0xIDl2MUgxM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJMb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2My45Yy0uMy0uMTctLjY0LS4zLTEtLjM2VjdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTF2MUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0wIDFoLTlDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVabS0xIDh2MUgxM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTHRyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyTHRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjVWNmgxNHYtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTE3IDdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN1ptLTkgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDRhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm00LTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMSA0YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptNC00YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTHRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhckx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAxMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTItMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTItMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQtNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVpNNCA3aDEydjcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjVWN1ptMS41LTNoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY2SDR2LS41QzQgNC42NyA0LjY3IDQgNS41IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhck1haWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJNYWlsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjVWNWgxMnYtLjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdaTTE0IDZIMnY1LjVBMi41IDIuNSAwIDAgMCA0LjUgMTRINXYtM2EzIDMgMCAwIDEgMy0zaDZWNlptLTcuOTMgNC40OEEyIDIgMCAwIDEgOCA5aDhhMiAyIDAgMCAxIDEuOTMgMS40OEwxMiAxMy45NmwtNS45My0zLjQ4Wm02LjMxIDQuNDJMMTggMTEuNlYxNmEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMnYtNC40bDUuNjIgMy4zYy4yMy4xNC41My4xNC43NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJNYWlsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhck1haWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNVY4aC0xVjZIM3Y1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINXYxaC0uNUEyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1ptMTEgMGMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDMy42NyAzIDMgMy42NyAzIDQuNVY1aDEwdi0uNVpNOCA5YTIgMiAwIDAgMC0yIDJ2NWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtMi0ySDhabS0xIDJhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2LjAybC01IDIuOTQtNS0yLjk0VjExWm0wIDEuMTggNC42MiAyLjcyYy4yMy4xNC41My4xNC43NiAwTDE3IDEyLjE4VjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi0zLjgyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJNZW50aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyTWVudGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3djMuNDJBNC45OCA0Ljk4IDAgMCAwIDEwIDE1YzAgLjcxLjE1IDEuMzkuNDIgMkg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNFptLTIuNS00QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIM3YtLjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0uNSA5YTMgMyAwIDEgMCAxLjI4IDUuNzEuNS41IDAgMSAxIC40NC45QTQgNCAwIDEgMSAxOSAxNXYuNTFhMS41IDEuNSAwIDAgMS0yLjY1Ljk3QTIgMiAwIDAgMSAxMyAxNWEyIDIgMCAwIDEgMy4xNy0xLjYyLjUuNSAwIDAgMSAuODMuMzd2MS43NWEuNS41IDAgMSAwIDEgMFYxNWEzIDMgMCAwIDAtMy0zWm0tMSAzYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTWVudGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJNZW50aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC45MmE0Ljk2IDQuOTYgMCAwIDAtMS0uMzJWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWg0LjZjLjA3LjM1LjE4LjY4LjMyIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0uNSA4YTMgMyAwIDEgMCAxLjI4IDUuNzEuNS41IDAgMSAxIC40NC45QTQgNCAwIDEgMSAxOSAxNXYuNTFhMS41IDEuNSAwIDAgMS0yLjY1Ljk3QTIgMiAwIDAgMSAxMyAxNWEyIDIgMCAwIDEgMy4xNy0xLjYyLjUuNSAwIDAgMSAuODMuMzd2MS43NWEuNS41IDAgMSAwIDEgMFYxNWEzIDMgMCAwIDAtMy0zWm0tMSAzYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTW9udGhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJNb250aEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wk03IDExYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptMyAwYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpNNyA3YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptMyAwYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptMyAwYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTW9udGhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyTW9udGhSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41Wk03IDExYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptMyAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlpNNyA3YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptMyAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptMyAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiAxMy41VjZIMnY3LjVBMi41IDIuNSAwIDAgMCA0LjUgMTZoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVabTAtOUEyLjUgMi41IDAgMCAwIDEzLjUgMmgtOUEyLjUgMi41IDAgMCAwIDIgNC41VjVoMTR2LS41Wk01IDE3Yy40Ni42IDEuMTggMSAyIDFoNi41YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtN2MwLS44Mi0uNC0xLjU0LTEtMnY5YTMuNSAzLjUgMCAwIDEtMy41IDMuNUg1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgNC41QTIuNSAyLjUgMCAwIDAgMTMuNSAyaC05QTIuNSAyLjUgMCAwIDAgMiA0LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxNmg5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVpNMyA2aDEydjcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSAzIDEzLjVWNlptMS41LTNoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY1SDN2LS41QzMgMy42NyAzLjY3IDMgNC41IDNaTTUgMTdjLjQ2LjYgMS4xOCAxIDIgMWg2LjVhNC41IDQuNSAwIDAgMCA0LjUtNC41di03YzAtLjgyLS40LTEuNTQtMS0ydjlhMy41IDMuNSAwIDAgMS0zLjUgMy41SDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhck5vdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJOb3RlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDd2M2gtNS41QTIuNSAyLjUgMCAwIDAgOSAxMi41VjE3SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVY3aDE0Wm0tMi41LTRBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkgzdi0uNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlaTTEwIDEyLjVjMC0uODMuNjctMS41IDEuNS0xLjVoNmMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTVabTcgNGEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAuNS0uNVpNMTIuNSAxM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJOb3RlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhck5vdGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNVYxMGgtMVY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDl2MUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0wIDFoLTlDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVaTTEwIDEyLjVjMC0uODMuNjctMS41IDEuNS0xLjVoNmMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTVabTcgNGEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAuNS0uNVpNMTIuNSAxM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJQYXR0ZXJuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUGF0dGVybkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01Ljc1IDNoOC41QTIuNzUgMi43NSAwIDAgMSAxNyA1Ljc1djguNUEyLjc1IDIuNzUgMCAwIDEgMTQuMjUgMTdoLTguNUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNaTTQuNSA1Ljc1VjdoMTFWNS43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTguNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVaTTE0LjcgOGwtNCA0aDIuNmwyLjItMi4yVjhoLS44Wm0tMS40IDBoLTIuNmwtNCA0aDIuNmw0LTRabS04IDQgNC00SDYuN2wtMi4yIDIuMlYxMmguOFptLS44LTMuMi44LS44aC0uOHYuOFpNMTQuNyAxMmguOHYtLjhsLS44LjhaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclBhdHRlcm5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUGF0dGVyblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzWk00IDUuNVY3aDEyVjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNVpNMTQuNyA4bC00IDRoMi42TDE2IDkuM1Y4aC0xLjNabS0xLjQgMGgtMi42bC00IDRoMi42bDQtNFptLTggNCA0LTRINi43TDQgMTAuN1YxMmgxLjNaTTQgOS4zIDUuMyA4SDR2MS4zWk0xNC43IDEySDE2di0xLjNMMTQuNyAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDd2Mi40YTMgMyAwIDAgMC0zLjczIDQuNiAyLjUgMi41IDAgMCAwLTIuMjMgM0g1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNFptLTIuNS00QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIM3YtLjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0zIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djMuOWMtLjMtLjE3LS42NC0uMy0xLS4zNlY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDUuNTVhMi41MSAyLjUxIDAgMCAwLS4wMSAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptMyA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclBob25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUGhvbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YxLjA1YTIuNTEgMi41MSAwIDAgMC0uNS0uMDVoLTNhMi41IDIuNSAwIDAgMC0yLjUgMi41djZjMCAuMTcuMDIuMzQuMDUuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWN2gxNFptLTIuNS00QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIM3YtLjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0tLjc1IDZjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djUuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di01LjVDMTggOS43OCAxNy4yMiA5IDE2LjI1IDloLTIuNVptLjI1IDYuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyUGhvbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUGhvbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXYyLjU1YTIuNTEgMi41MSAwIDAgMC0uNS0uMDVIMTZWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNUgxMXYuNWMwIC4xNy4wMi4zNC4wNS41SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptLS43NSA1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY1LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNS41QzE4IDkuNzggMTcuMjIgOSAxNi4yNSA5aC0yLjVabS4yNSA2LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclBsYXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJQbGF5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDd2Mi42QTUuNSA1LjUgMCAwIDAgOS42IDE3SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVY3aDE0Wm0tMi41LTRBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkgzdi0uNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMTZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uNzQtNi41NWMuMSAwIC4xOC4wMy4yNi4wOGwyLjMgMS41MWMuMDcuMDUuMTIuMS4xNi4xOGEuNTQuNTQgMCAwIDEtLjAzLjU0LjQ2LjQ2IDAgMCAxLS4xMy4xM2wtMi4zIDEuNTdhLjU0LjU0IDAgMCAxLS4xMi4wNi40NS40NSAwIDAgMS0uMzItLjAyLjU3LjU3IDAgMCAxLS4xNi0uMS41LjUgMCAwIDEtLjE0LS4zNnYtMy4wOGEuNTEuNTEgMCAwIDEgLjMtLjQ2LjQ0LjQ0IDAgMCAxIC4xOC0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUGxheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0wIDE1YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjc0LTYuNTVjLjEgMCAuMTguMDMuMjYuMDhsMi4zIDEuNTFjLjA3LjA1LjEyLjEuMTYuMThhLjU0LjU0IDAgMCAxLS4wMy41NC40Ni40NiAwIDAgMS0uMTMuMTNsLTIuMyAxLjU3YS41NC41NCAwIDAgMS0uMTIuMDYuNDUuNDUgMCAwIDEtLjMyLS4wMi41Ny41NyAwIDAgMS0uMTYtLjEuNS41IDAgMCAxLS4xNC0uMzZ2LTMuMDhhLjUxLjUxIDAgMCAxIC4zLS40Ni40NC40NCAwIDAgMSAuMTgtLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJRdWVzdGlvbk1hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJRdWVzdGlvbk1hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjVWNmgxNHYtLjVabTAgNC4xVjdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xQTUuNSA1LjUgMCAwIDEgMTcgOS42Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjYyLTJhLjYyLjYyIDAgMSAxIDEuMjQgMCAuNjIuNjIgMCAwIDEtMS4yNCAwWm0tMS4yMy0zLjU0Yy0uMDEtMS4xNC44LTEuOTYgMS44NS0xLjk2IDEuMDMgMCAxLjg1Ljg1IDEuODUgMS45NSAwIC41OS0uMjEuOTEtLjcyIDEuMzJsLS4yOC4yMmMtLjI1LjE5LS4zMy4zLS4zNS40NHYuMTZhLjUuNSAwIDAgMS0xLS4wOWMwLS41Ny4yMS0uODguNzItMS4yOWwuMjctLjIxYy4zLS4yMy4zNi0uMzUuMzYtLjU1IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclF1ZXN0aW9uTWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJRdWVzdGlvbk1hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptMCAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS42Mi0yYS42Mi42MiAwIDEgMSAxLjI0IDAgLjYyLjYyIDAgMCAxLTEuMjQgMFptLTEuMjMtMy41NGMtLjAxLTEuMTQuOC0xLjk2IDEuODUtMS45NiAxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NSAwLS41NS0uMzgtLjk1LS44NS0uOTUtLjUgMC0uODYuMzctLjg1Ljk1YS41LjUgMCAxIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJSZWNvcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJSZWNvcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCA4YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03Wm0wIDhhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTIuNS00LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclJlY29yZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJSZWNvcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptMCA3YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03Wm0wIDhhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTIuNS00LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclJlcGx5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUmVwbHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptMCAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyUmVwbHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUmVwbHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptMCAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyUnRsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMyA3aDE0djcuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjVWN1ptOSAzYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptMSA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTQtNGExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabTEgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabS00LTRhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyUnRsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMyAxMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabS0xIDJhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0tMi0yYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTEgMmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabS0yLTJhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTE2IDdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWN1ptLTEuNS0zaC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgMTQuNVY3SDN2Mi40N2E0LjUgNC41IDAgMCAxIDYuMDYgNS45N0wxMC42MiAxN2gzLjg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVptMC05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjVWNmgxNHYtLjVaTTcuMSAxNi4zYTMuNSAzLjUgMCAxIDEgLjctLjdsMi41NSAyLjU1YS41LjUgMCAwIDEtLjcuN0w3LjEgMTYuM1ptLjQtMi44YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXYzLjc2Yy4zMi0uMTIuNjUtLjIgMS0uMjNWN2gxMnY3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuMTJsMSAxaDQuMzhhMi41IDIuNSAwIDAgMCAyLjUtMi41di05Wk01LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41VjZINHYtLjVDNCA0LjY3IDQuNjcgNCA1LjUgNFptMS4xIDEyLjNhMy41IDMuNSAwIDEgMSAuNy0uN2wyLjU1IDIuNTVhLjUuNSAwIDAgMS0uNy43TDYuNiAxNi4zWm0uNC0yLjhhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptLTIuNDMgOC40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDcuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNzMgNC43MyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptLTIuNDMgNy40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDcuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNzMgNC43MyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyU2hpZWxkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyU2hpZWxkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDd2MS42MWMtLjItLjA0LS40MS0uMS0uNjEtLjE4LS40Ni0uMi0uOTItLjUyLTEuMzgtMUExLjM5IDEuMzkgMCAwIDAgMTQgN0gxN1pNMyA3aDExYy0uMzYgMC0uNzMuMTQtMSAuNDNhMy41IDMuNSAwIDAgMS0yLjYgMS4yNGMtLjgxIDAtMS40LjY3LTEuNCAxLjQxdjIuOEE2LjQ5IDYuNDkgMCAwIDAgMTAuNTMgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdabTExLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTYgOS4zNWE0LjA2IDQuMDYgMCAwIDAgMS42LjMyYy4yIDAgLjM1LjE0LjQuMzN2Mi41OGMwIDIuNjktMS4zMSA0LjUxLTMuODcgNS40YS4zOS4zOSAwIDAgMS0uMjYgMEE2LjY2IDYuNjYgMCAwIDEgMTIgMTdjLS4zOS0uMy0uNzItLjYzLS45OS0xYTUuNSA1LjUgMCAwIDEtMS0zLjE1bC0uMDEtLjI3di0yLjVhLjQuNCAwIDAgMSAuNC0uNDEgNC41IDQuNSAwIDAgMCAzLjMyLTEuNTUuMzkuMzkgMCAwIDEgLjU2IDBjLjU0LjU3IDEuMTEuOTcgMS43MiAxLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyU2hpZWxkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNS4wM2E1LjgxIDUuODEgMCAwIDEtLjctMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gxMnYxLjIzYy4zMy4yLjY2LjMyIDEgLjM4VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptMCAxaDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0Wk0xNyA5LjYyYTQuMDYgNC4wNiAwIDAgMS0xLS4yNyA1LjE2IDUuMTYgMCAwIDEtMS43Mi0xLjIzLjM5LjM5IDAgMCAwLS41NiAwIDQuNSA0LjUgMCAwIDEtMy4zMiAxLjU1LjQuNCAwIDAgMC0uNC40MXYyLjc3QTUuNSA1LjUgMCAwIDAgMTEuMDEgMTZjLjI3LjM3LjYuNy45OSAxIC41Mi40IDEuMTUuNzMgMS44Ny45OC4wOS4wMy4xNy4wMy4yNiAwIDIuNTYtLjg5IDMuODctMi43MSAzLjg3LTUuNFYxMGEuNC40IDAgMCAwLS40LS4zM2MtLjIgMC0uNC0uMDItLjYtLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlptLTMuMDIgMy41NmMuMjEuMTUuNDcuMjMuNzQuMjMuMTcgMCAuMzQtLjAyLjUtLjA4djIuNThhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoOS4xNGwuMDEuMDVjLjEuMjUuMjUuNDguNTIuNy4xNC4xLjMuMTYuNDUuMmExLjMgMS4zIDAgMCAwIC43NyAxLjc5bC43Ny4yNWMuMDguMDMuMTYuMDguMjIuMTQuMDcuMDYuMS4xNC4xNC4yMmwuMjYuOGMuMS4yNS4yNi40Ni40OC42MlpNMTEuOCA2bC0uMDItLjA0YTEuMjcgMS4yNyAwIDAgMC0uMjktLjQ3IDEuMyAxLjMgMCAwIDAtLjQ3LS4zbC0xLjA2LS4zNEExLjQxIDEuNDEgMCAwIDEgOSAzLjVjMC0uMTguMDMtLjM0LjA5LS41SDUuNUEyLjUgMi41IDAgMCAwIDMgNS41VjZoOC44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEzLjg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNiAxMS45MWMuMTYuMDYuMzMuMDkuNS4wOS4xNyAwIC4zNC0uMDIuNS0uMDh2Mi41OGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2gzLjU5YTEuNDIgMS40MiAwIDAgMCAwIDFINS41QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmg3LjhsLjM0IDFINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTIuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyU3RhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclN0YXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjVWNmgxNHYtLjVabTAgNC4xVjdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xQTUuNSA1LjUgMCAwIDEgMTcgOS42Wm0yIDQuOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuMDItMi42NGEuNS41IDAgMCAwLS45NiAwbC0uNDcgMS41M0gxMmMtLjQ4IDAtLjY5LjY1LS4zLjk1bDEuMjYuOTQtLjQ4IDEuNTNjLS4xNS40OS4zOC44OS43Ny41OWwxLjI1LS45NSAxLjI1Ljk1Yy40LjMuOTItLjEuNzctLjU5bC0uNDgtMS41MyAxLjI1LS45NGMuNC0uMy4yLS45NS0uMy0uOTVoLTEuNTRsLS40Ny0xLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTdGFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclN0YXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVY3aDEydjIuMmMuMzUuMS42OC4yNCAxIC40VjUuNVpNNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY2SDR2LS41QzQgNC42NyA0LjY3IDQgNS41IDRaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LjAyLTIuNjRhLjUuNSAwIDAgMC0uOTYgMGwtLjQ3IDEuNTNIMTJjLS40OCAwLS42OS42NS0uMy45NWwxLjI2Ljk0LS40OCAxLjUzYy0uMTUuNDkuMzguODkuNzcuNTlsMS4yNS0uOTUgMS4yNS45NWMuNC4zLjkyLS4xLjc3LS41OWwtLjQ4LTEuNTMgMS4yNS0uOTRjLjQtLjMuMi0uOTUtLjMtLjk1aC0xLjU0bC0uNDctMS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyU3luY0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclN5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgN3YyLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjdoMTRabS0yLjUtNEEyLjUgMi41IDAgMCAxIDE3IDUuNVY2SDN2LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTAgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclN5bmNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJUZW1wbGF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclRlbXBsYXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gyLjA0YTMuNTMgMy41MyAwIDAgMS0uMDQtLjV2LTVjMC0uOTguNC0xLjg2IDEuMDUtMi41SDUuNWEuNS41IDAgMCAxIDAtMWgxMGMuMTcgMCAuMzQuMDEuNS4wNFY1YTMgMyAwIDAgMC0zLTNINVptMCAzLjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabTMgNUEyLjUgMi41IDAgMCAxIDEwLjUgOGg1YTIuNSAyLjUgMCAwIDEgMi41IDIuNXYuNUg4di0uNVptMCA1VjEyaDEwdjMuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSA4IDE1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclRlbXBsYXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclRlbXBsYXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDVhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2Mi4wNGEzLjUzIDMuNTMgMCAwIDAtLjUtLjA0SDE1VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDJ2LjVjMCAuMTcuMDEuMzQuMDQuNUg1YTMgMyAwIDAgMS0zLTNWNVptMy41IDJoNWMtLjk1IDAtMS44Mi4zOC0yLjQ1IDFINS41YS41LjUgMCAwIDEgMC0xWk01IDUuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVpNMTAuNSA4QTIuNSAyLjUgMCAwIDAgOCAxMC41djVhMi41IDIuNSAwIDAgMCAyLjUgMi41aDVhMi41IDIuNSAwIDAgMCAyLjUtMi41di01QTIuNSAyLjUgMCAwIDAgMTUuNSA4aC01Wk05IDEwLjVjMC0uODMuNjctMS41IDEuNS0xLjVoNWMuODMgMCAxLjUuNjcgMS41IDEuNXYuNUg5di0uNVptMCA1VjEyaDh2My41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDkgMTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyVG9kYXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJUb2RheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTcgNC41VjdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoM3YtMS43NWExLjUgMS41IDAgMCAxLS45OC0yLjY0aC4wMWwxLjUtMS4yNWExLjUgMS41IDAgMCAxIDEuOTQgMGwxLjUgMS4yNWExLjUgMS41IDAgMCAxLS45NyAyLjY0VjE3aDNhMi41IDIuNSAwIDAgMCAyLjUtMi41Wk0xMiA5YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptNS0zLjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDE0di0uNVptLTUuODIgOC42M2EuNS41IDAgMCAwIC42NC0uNzZsLTEuNS0xLjI1YS41LjUgMCAwIDAtLjY0IDBsLTEuNSAxLjI1YS41LjUgMCAxIDAgLjY0Ljc2bC42OC0uNTZ2My45M2EuNS41IDAgMSAwIDEgMHYtMy45M2wuNjguNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhclRvZGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclRvZGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTN2LTFoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWN0g0djcuNWMwIC44My42NyAxLjUgMS41IDEuNWgzdjFoLTNBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0wIDFoLTlDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVaTTExIDlhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0uODggNS4wN2EuNS41IDAgMCAxLS43LjA2bC0uNjgtLjU2djMuOTNhLjUuNSAwIDEgMS0xIDB2LTMuOTNsLS42OC41NmEuNS41IDAgMCAxLS42NC0uNzZsMS41LTEuMjVhLjUuNSAwIDAgMSAuNjQgMGwxLjUgMS4yNWMuMjEuMTcuMjQuNDkuMDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyVG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclRvb2xib3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDE0di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNMTcgN0gzdjcuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0g5di0zLjVhMi41IDIuNSAwIDAgMSAyLjA0LTIuNDZBMi41IDIuNSAwIDAgMSAxMy41IDloMmMuNTYgMCAxLjA4LjE5IDEuNS41VjdabS01IDV2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDQuNWgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyVG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDE2SDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVY3aDEydjIuMDVjLjM3LjA3LjcuMjMgMSAuNDV2LTRBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3SDl2LTFaTTUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjVWNkg0di0uNUM0IDQuNjcgNC42NyA0IDUuNSA0Wm02LjUgOHYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNC41aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJWaWRlb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhclZpZGVvRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNVY1SDJ2LS41Wk0yIDZoMTJ2Mkg4LjVBMy41IDMuNSAwIDAgMCA1IDExLjVWMTRoLS41QTIuNSAyLjUgMCAwIDEgMiAxMS41VjZabTQgNS41QTIuNSAyLjUgMCAwIDEgOC41IDloNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2LjEzbDIuMDQtMS40Yy44Mi0uNTggMS45Ni4wMSAxLjk2IDEuMDJ2NS41YzAgMS0xLjE0IDEuNi0xLjk2IDEuMDNMMTYgMTYuMzh2LjEyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNUEyLjUgMi41IDAgMCAxIDYgMTYuNXYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyVmlkZW9SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyVmlkZW9SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNEg1di0xaC0uNUExLjUgMS41IDAgMCAxIDMgMTEuNVY2aDEwdjJoMVY0LjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdabTcgMWMuODMgMCAxLjUuNjcgMS41IDEuNVY1SDN2LS41QzMgMy42NyAzLjY3IDMgNC41IDNoN1pNNiAxMS41QTIuNSAyLjUgMCAwIDEgOC41IDloNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2LjEzbDIuMDQtMS40Yy44Mi0uNTggMS45Ni4wMSAxLjk2IDEuMDJ2NS41YzAgMS0xLjE0IDEuNi0xLjk2IDEuMDNMMTYgMTYuMzh2LjEyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNUEyLjUgMi41IDAgMCAxIDYgMTYuNXYtNVptMTIuNi0uNDUtMi42IDEuOHYyLjNsMi42IDEuOGMuMTcuMTIuNCAwIC40LS4ydi01LjVjMC0uMi0uMjMtLjMyLS40LS4yWk04LjUgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJXZWVrTnVtYmVyc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhcldlZWtOdW1iZXJzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNyA2LjV2MWEuNS41IDAgMCAxLTEgMHYtMWEuNS41IDAgMCAxIDEgMFpNNi41IDljLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVptLjUgMy41djFhLjUuNSAwIDAgMS0xIDB2LTFhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxlbmRhcldlZWtOdW1iZXJzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxlbmRhcldlZWtOdW1iZXJzUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtOVptMyAxYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFaTTYuNSA5Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVabS41IDMuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJXZWVrU3RhcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJXZWVrU3RhcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVptLTggM2EuNS41IDAgMCAwLS41LjQxdjcuMThhLjUuNSAwIDAgMCAxIDBWNi40MUEuNS41IDAgMCAwIDYuNSA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJXZWVrU3RhcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGVuZGFyV2Vla1N0YXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0wIDFoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptLTggMmEuNS41IDAgMCAxIC41LjQxdjcuMDlhLjUuNSAwIDAgMS0xIC4wOVY2LjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyV29ya1dlZWtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJXb3JrV2Vla0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDlWN2g2djJIN1ptMTAtMy41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVpNNi41IDZoN2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsZW5kYXJXb3JrV2Vla1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsZW5kYXJXb3JrV2Vla1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDZhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTdaTTcgOVY3aDZ2Mkg3Wm0xMC0zLjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05Wk01LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41di05QzQgNC42NyA0LjY3IDQgNS41IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi45OSAyLjA3QTIgMiAwIDAgMSA5LjMgM2wuMDguMTUuNjYgMS40N2EyLjUgMi41IDAgMCAxLS40NCAyLjcybC0uMTMuMTMtMS4wNS45OGMtLjE5LjE3LS4wNC44Ni42NCAyLjA0LjYgMS4wNiAxLjEgMS41NiAxLjM1IDEuNThoLjFsMi4wNS0uNjRhMS41IDEuNSAwIDAgMSAxLjU2LjQ1bC4xLjExIDEuMzUgMS44OGEyIDIgMCAwIDEtLjEzIDIuNWwtLjEyLjEyLS41NC41MmEzLjUgMy41IDAgMCAxLTMuNzIuN2MtMS45My0uNzgtMy42OS0yLjU2LTUuMjktNS4zM1MzLjUyIDcuMiAzLjgyIDUuMTRhMy41IDMuNSAwIDAgMSAyLjI2LTIuOGwuMTktLjA2LjcyLS4yMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wibTYuOTkgMi4wNy0uNzIuMjFhMy41IDMuNSAwIDAgMC0yLjQ1IDIuODZjLS4zIDIuMDYuMzYgNC40OCAxLjk2IDcuMjUgMS42IDIuNzcgMy4zNiA0LjU1IDUuMyA1LjMzYTMuNSAzLjUgMCAwIDAgMy43LS43bC41NS0uNTJhMiAyIDAgMCAwIC4yNS0yLjYyTDE0LjIyIDEyYTEuNSAxLjUgMCAwIDAtMS42NS0uNTZsLTIuMDUuNjMtLjA2LjAxYy0uMjIuMDQtLjc0LS40NS0xLjQtMS41OC0uNjctMS4xOC0uODItMS44Ny0uNjMtMi4wNGwxLjA1LS45OGEyLjUgMi41IDAgMCAwIC41Ny0yLjg1bC0uNjYtMS40N2EyIDIgMCAwIDAtMi40LTEuMVptMS40OSAxLjUuNjYgMS40N2ExLjUgMS41IDAgMCAxLS4zNSAxLjcxbC0xLjA0Ljk4Yy0uNjcuNjMtLjQ1IDEuNzEuNDUgMy4yNy44NSAxLjQ3IDEuNjIgMi4xOSAyLjQ1IDIuMDZsLjEyLS4wMiAyLjA5LS42NGEuNS41IDAgMCAxIC41NS4xOWwxLjM2IDEuODhhMSAxIDAgMCAxLS4xMyAxLjNsLS41NC41MmEyLjUgMi41IDAgMCAxLTIuNjUuNWMtMS43LS42OC0zLjMtMi4zLTQuOC00LjktMS41LTIuNTktMi4xLTQuOC0xLjg0LTYuNjFhMi41IDIuNSAwIDAgMSAxLjc1LTIuMDRsLjcyLS4yMmExIDEgMCAwIDEgMS4yLjU1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNTUgMi40NGE0LjEgNC4xIDAgMCAxIDIuOTktLjMyYy41LjEyLjk0LjQ1IDEuMi45bC45IDEuNTdhMi41IDIuNSAwIDAgMS0uODQgMy4zNmwtLjc5LjVjLS4zMi4yLS40NC41Mi0uMzcuNzcuMjcuOS44NiAxLjkgMS41MiAyLjU4LjE5LjIuNTQuMjUuOS4wNWwuNDMtLjI2YTIuNSAyLjUgMCAwIDEgMy40NC45NGwuOCAxLjQ0Yy4yNy40Ny4zMSAxLjAzLjEyIDEuNTNhMy45IDMuOSAwIDAgMS0xLjk2IDIuMjJjLS45LjQxLTEuOTQuNC0yLjg4LS4yNC0xLjUtMS0zLjMtMi42OC00Ljk0LTUuNDhhMTMuMjcgMTMuMjcgMCAwIDEtMi4wMy03LjA2IDIuODcgMi44NyAwIDAgMSAxLjUxLTIuNVpNMTUgMi41YS41LjUgMCAwIDAtMSAwVjVoLTIuNWEuNS41IDAgMCAwIDAgMUgxNHYyLjVhLjUuNSAwIDAgMCAxIDBWNmgyLjVhLjUuNSAwIDAgMCAwLTFIMTVWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41NSAyLjQ0YTQuMSA0LjEgMCAwIDEgMi45OS0uMzJjLjUuMTIuOTQuNDUgMS4yLjlsLjk3IDEuN2EyLjUgMi41IDAgMCAxLS42NyAzLjI0bC0uNi40NWMtLjI4LjIyLS40LjUyLS4zNC43Ny4xOC44Mi41OSAxLjU3IDEuMTUgMi4xMy4xNy4xNi40Ny4yMi44LjFsLjY2LS4yNmEyLjUgMi41IDAgMCAxIDMuMDcgMS4xMWwuOTUgMS43Yy4yNy40OC4zMSAxLjA0LjEyIDEuNTRhMy45IDMuOSAwIDAgMS0xLjk2IDIuMjJjLS45LjQxLTEuOTQuNC0yLjg4LS4yNC0xLjUtMS0zLjMtMi42OC00Ljk0LTUuNDhhMTMuMjcgMTMuMjcgMCAwIDEtMi4wMy03LjA2IDIuODcgMi44NyAwIDAgMSAxLjUxLTIuNVptLjQ5Ljg3Yy0uNTkuMzMtLjk4Ljg5LTEgMS42Ni0uMDQgMS42MS4zMyAzLjg1IDEuOSA2LjUzYTE1LjMgMTUuMyAwIDAgMCA0LjYyIDUuMTUgMS45IDEuOSAwIDAgMCAxLjkxLjE2IDIuOTEgMi45MSAwIDAgMCAxLjQ1LTEuNjUuODQuODQgMCAwIDAtLjA2LS43bC0uOTUtMS43YTEuNSAxLjUgMCAwIDAtMS44NS0uNjhsLS42Ni4yNmMtLjU4LjIyLTEuMzMuMi0xLjg1LS4zMkE1LjMyIDUuMzIgMCAwIDEgNi4xMyA5LjRjLS4xNy0uNzIuMi0xLjQuNzEtMS43OGwuNi0uNDZjLjYtLjQ1Ljc4LTEuMjkuNC0xLjk0bC0uOTctMS43YS45My45MyAwIDAgMC0uNTgtLjQzIDMuMSAzLjEgMCAwIDAtMi4yNS4yMlpNMTUgMi41YS41LjUgMCAwIDAtMSAwVjVoLTIuNWEuNS41IDAgMCAwIDAgMUgxNHYyLjVhLjUuNSAwIDAgMCAxIDBWNmgyLjVhLjUuNSAwIDAgMCAwLTFIMTVWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbENoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNTQgMi4xMmE0LjEgNC4xIDAgMCAwLTIuOTkuMzIgMi44NyAyLjg3IDAgMCAwLTEuNSAyLjVjLS4wNiAxLjguMzYgNC4yMiAyLjAyIDcuMDZBMTYuMjggMTYuMjggMCAwIDAgOSAxNy40OGMuOTQuNjMgMS45OS42NSAyLjg4LjI0YTMuOSAzLjkgMCAwIDAgMS45Ni0yLjIyYy4yLS41LjE1LTEuMDYtLjEyLTEuNTNsLS44LTEuNDRhMi41IDIuNSAwIDAgMC0zLjQ0LS45NGwtLjQ0LjI2Yy0uMzUuMi0uNy4xNS0uOS0uMDVhNi44MyA2LjgzIDAgMCAxLTEuNS0yLjU4Yy0uMDgtLjI1LjA0LS41Ni4zNi0uNzdsLjgtLjVhMi41IDIuNSAwIDAgMCAuODItMy4zNmwtLjktMS41NmMtLjI1LS40Ni0uNjktLjc5LTEuMi0uOTFabTExLjMxLjAzYy4yLjIuMi41IDAgLjdsLTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjU0IDIuMTJhNC4xIDQuMSAwIDAgMC0yLjk5LjMyIDIuODcgMi44NyAwIDAgMC0xLjUgMi41Yy0uMDYgMS44LjM2IDQuMjIgMi4wMiA3LjA2QTE2LjI4IDE2LjI4IDAgMCAwIDkgMTcuNDhjLjk0LjYzIDEuOTkuNjUgMi44OC4yNGEzLjkgMy45IDAgMCAwIDEuOTYtMi4yMmMuMi0uNS4xNS0xLjA2LS4xMi0xLjUzbC0uOTUtMS43YTIuNSAyLjUgMCAwIDAtMy4wNy0xLjEybC0uNjcuMjVjLS4zMi4xMy0uNjIuMDctLjc5LS4xQTQuMzIgNC4zMiAwIDAgMSA3LjEgOS4xOWMtLjA2LS4yNS4wNi0uNTUuMzQtLjc3bC42LS40NWEyLjUgMi41IDAgMCAwIC42Ny0zLjI0bC0uOTctMS43Yy0uMjYtLjQ1LS43LS43OC0xLjItLjlabS0zLjUgMi44NWMuMDItLjc3LjQxLTEuMzMgMS0xLjY2YTMuMSAzLjEgMCAwIDEgMi4yNS0uMjJjLjI0LjA2LjQ1LjIyLjU4LjQzbC45NyAxLjdjLjM4LjY1LjIgMS40OS0uNCAxLjk0bC0uNi40NmMtLjUyLjM5LS44OCAxLjA2LS43MSAxLjc4LjIyLjk5LjcgMS45MiAxLjQyIDIuNjIuNTIuNTEgMS4yNy41NCAxLjg1LjMybC42Ni0uMjZhMS41IDEuNSAwIDAgMSAxLjg1LjY3bC45NSAxLjdjLjEyLjIyLjE0LjQ3LjA2LjdhMi45MSAyLjkxIDAgMCAxLTEuNDUgMS42NiAxLjkgMS45IDAgMCAxLTEuOS0uMTYgMTUuMyAxNS4zIDAgMCAxLTQuNjQtNS4xNSAxMi4yOCAxMi4yOCAwIDAgMS0xLjg5LTYuNTNabTE0LjgxLTIuODJjLjIuMi4yLjUgMCAuN2wtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxDb25uZWN0aW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxDb25uZWN0aW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNTUgMi40NGE0LjEgNC4xIDAgMCAxIDIuOTktLjMyYy41LjEyLjk0LjQ1IDEuMi45bC45IDEuNTdhMi41IDIuNSAwIDAgMS0uODQgMy4zNmwtLjc5LjVjLS4zMi4yLS40NC41Mi0uMzcuNzcuMjcuOS44NiAxLjkgMS41MiAyLjU4LjE5LjIuNTQuMjUuOS4wNWwuNDMtLjI2YTIuNSAyLjUgMCAwIDEgMy40NC45NGwuOCAxLjQ0Yy4yNy40Ny4zMSAxLjAzLjEyIDEuNTNhMy45IDMuOSAwIDAgMS0xLjk2IDIuMjJjLS45LjQxLTEuOTQuNC0yLjg4LS4yNC0xLjUtMS0zLjMtMi42OC00Ljk0LTUuNDhhMTMuMjcgMTMuMjcgMCAwIDEtMi4wMy03LjA2IDIuODcgMi44NyAwIDAgMSAxLjUxLTIuNVptOS4yLS4zOGEuNS41IDAgMSAwLS41Ljg4bC40LjIxYTguNSA4LjUgMCAwIDEgNC4zMiA2LjU4bC4wMy4zMmEuNS41IDAgMSAwIDEtLjFsLS4wMy0uMzJhOS41IDkuNSAwIDAgMC00Ljg0LTcuMzVsLS4zOS0uMjJabS0xLjE4IDIuNjhhLjUuNSAwIDAgMSAuNjktLjE3bC4xMi4wN2E2LjUgNi41IDAgMCAxIDMuMDcgNC41MWwuMDQuMjdhLjUuNSAwIDEgMS0uOTguMTZsLS4wNS0uMjdhNS41IDUuNSAwIDAgMC0yLjYtMy44bC0uMTItLjA4YS41LjUgMCAwIDEtLjE3LS42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxDb25uZWN0aW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsQ29ubmVjdGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41NCAyLjEyYTQuMSA0LjEgMCAwIDAtMi45OS4zMiAyLjg3IDIuODcgMCAwIDAtMS41IDIuNWMtLjA2IDEuOC4zNiA0LjIyIDIuMDIgNy4wNkExNi4yOCAxNi4yOCAwIDAgMCA5IDE3LjQ4Yy45NC42MyAxLjk5LjY1IDIuODguMjRhMy45IDMuOSAwIDAgMCAxLjk2LTIuMjJjLjItLjUuMTUtMS4wNi0uMTItMS41M2wtLjk1LTEuN2EyLjUgMi41IDAgMCAwLTMuMDctMS4xMmwtLjY3LjI1Yy0uMzIuMTMtLjYyLjA3LS43OS0uMUE0LjMyIDQuMzIgMCAwIDEgNy4xIDkuMTljLS4wNi0uMjUuMDYtLjU1LjM0LS43N2wuNi0uNDVhMi41IDIuNSAwIDAgMCAuNjctMy4yNGwtLjk3LTEuN2MtLjI2LS40NS0uNy0uNzgtMS4yLS45Wm0tMy41IDIuODVjLjAyLS43Ny40MS0xLjMzIDEtMS42NmEzLjEgMy4xIDAgMCAxIDIuMjUtLjIyYy4yNC4wNi40NS4yMi41OC40M2wuOTcgMS43Yy4zOC42NS4yIDEuNDktLjQgMS45NGwtLjYuNDZjLS41Mi4zOS0uODggMS4wNi0uNzEgMS43OC4yMi45OS43IDEuOTIgMS40MiAyLjYyLjUyLjUxIDEuMjcuNTQgMS44NS4zMmwuNjYtLjI2YTEuNSAxLjUgMCAwIDEgMS44NS42N2wuOTUgMS43Yy4xMi4yMi4xNC40Ny4wNi43YTIuOTEgMi45MSAwIDAgMS0xLjQ1IDEuNjYgMS45IDEuOSAwIDAgMS0xLjktLjE2IDE1LjMgMTUuMyAwIDAgMS00LjY0LTUuMTUgMTIuMjggMTIuMjggMCAwIDEtMS44OS02LjUzWm05LjctMi45YS41LjUgMCAxIDAtLjQ4Ljg3bC4zOC4yMWE4LjUgOC41IDAgMCAxIDQuMzMgNi41OGwuMDMuMzJhLjUuNSAwIDEgMCAxLS4xbC0uMDMtLjMyYTkuNSA5LjUgMCAwIDAtNC44NC03LjM1bC0uMzktLjIyWm0tMS4xNyAyLjY3YS41LjUgMCAwIDEgLjY5LS4xN2wuMTIuMDhhNi41IDYuNSAwIDAgMSAzLjA3IDQuNWwuMDQuMjdhLjUuNSAwIDEgMS0uOTguMTZsLS4wNS0uMjdhNS41IDUuNSAwIDAgMC0yLjYtMy44bC0uMTItLjA4YS41LjUgMCAwIDEtLjE3LS42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNTQgMi4xMmE0LjEgNC4xIDAgMCAwLTIuOTkuMzIgMi44NyAyLjg3IDAgMCAwLTEuNSAyLjVjLS4wNiAxLjguMzYgNC4yMiAyLjAyIDcuMDZBMTYuMjggMTYuMjggMCAwIDAgOSAxNy40OGMuOTQuNjMgMS45OS42NSAyLjg4LjI0YTMuOSAzLjkgMCAwIDAgMS45Ni0yLjIyYy4yLS41LjE1LTEuMDYtLjEyLTEuNTNsLS44LTEuNDRhMi41IDIuNSAwIDAgMC0zLjQ0LS45NGwtLjQ0LjI2Yy0uMzUuMi0uNy4xNS0uOS0uMDVhNi44MyA2LjgzIDAgMCAxLTEuNS0yLjU4Yy0uMDgtLjI1LjA0LS41Ni4zNi0uNzdsLjgtLjVhMi41IDIuNSAwIDAgMCAuODItMy4zNmwtLjktMS41NmMtLjI1LS40Ni0uNjktLjc5LTEuMi0uOTFabTExLjMxLjAzYy4yLjIuMi41IDAgLjdMMTUuMjEgNS41bDIuNjQgMi42NWEuNS41IDAgMCAxLS43LjdMMTQuNSA2LjIxbC0yLjY1IDIuNjRhLjUuNSAwIDAgMS0uNy0uN2wyLjY0LTIuNjUtMi42NC0yLjY1YS41LjUgMCAwIDEgLjctLjdsMi42NSAyLjY0IDIuNjUtMi42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41NCAyLjEyYTQuMSA0LjEgMCAwIDAtMi45OS4zMiAyLjg3IDIuODcgMCAwIDAtMS41IDIuNWMtLjA2IDEuOC4zNiA0LjIyIDIuMDIgNy4wNkExNi4yOCAxNi4yOCAwIDAgMCA5IDE3LjQ4Yy45NC42MyAxLjk5LjY1IDIuODguMjRhMy45IDMuOSAwIDAgMCAxLjk2LTIuMjJjLjItLjUuMTUtMS4wNi0uMTItMS41M2wtLjk1LTEuN2EyLjUgMi41IDAgMCAwLTMuMDctMS4xMmwtLjY3LjI1Yy0uMzIuMTMtLjYyLjA3LS43OS0uMUE0LjMyIDQuMzIgMCAwIDEgNy4xIDkuMTljLS4wNi0uMjUuMDYtLjU1LjM0LS43N2wuNi0uNDVhMi41IDIuNSAwIDAgMCAuNjctMy4yNGwtLjk3LTEuN2MtLjI2LS40NS0uNy0uNzgtMS4yLS45Wm0tMy41IDIuODVjLjAyLS43Ny40MS0xLjMzIDEtMS42NmEzLjEgMy4xIDAgMCAxIDIuMjUtLjIyYy4yNC4wNi40NS4yMi41OC40M2wuOTcgMS43Yy4zOC42NS4yIDEuNDktLjQgMS45NGwtLjYuNDZjLS41Mi4zOS0uODggMS4wNi0uNzEgMS43OC4yMi45OS43IDEuOTIgMS40MiAyLjYyLjUyLjUxIDEuMjcuNTQgMS44NS4zMmwuNjYtLjI2YTEuNSAxLjUgMCAwIDEgMS44NS42N2wuOTUgMS43Yy4xMi4yMi4xNC40Ny4wNi43YTIuOTEgMi45MSAwIDAgMS0xLjQ1IDEuNjYgMS45IDEuOSAwIDAgMS0xLjktLjE2IDE1LjMgMTUuMyAwIDAgMS00LjY0LTUuMTUgMTIuMjggMTIuMjggMCAwIDEtMS44OS02LjUzWm0xNC44MS0yLjgyYy4yLjIuMi41IDAgLjdMMTUuMjEgNS41bDIuNjQgMi42NWEuNS41IDAgMCAxLS43LjdMMTQuNSA2LjIxbC0yLjY1IDIuNjRhLjUuNSAwIDAgMS0uNy0uN2wyLjY0LTIuNjUtMi42NC0yLjY1YS41LjUgMCAwIDEgLjctLjdsMi42NSAyLjY0IDIuNjUtMi42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxFbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbEVuZEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNy45NiAxMC45NC0uMTYuODNjLS4xNS43OC0uODcgMS4zLTEuNyAxLjIybC0xLjYzLS4xNmMtLjcyLS4wNy0xLjI1LS41OS0xLjQ3LTEuMzMtLjMtMS0uNS0xLjc1LS41LTEuNzVhNi42MyA2LjYzIDAgMCAwLTUgMHMtLjIuNzUtLjUgMS43NWMtLjIuNjctLjUgMS4yNi0xLjIgMS4zM2wtMS42My4xNmMtLjgxLjA4LTEuNi0uNDMtMS44Mi0xLjJsLS4yNS0uODRjLS4yNS0uODItLjAzLTEuNy41OC0yLjI4QzQuMSA3LjMgNi42NyA2LjUxIDkuOTkgNi41YzMuMzMgMCA1LjYuNzggNy4xNiAyLjE2LjY2LjU4Ljk3IDEuNDYuOCAyLjI4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbEVuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbEVuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNmMzLjMzIDAgNS41OSAxLjI4IDcuMTUgMi42Ni42Ni41OC45NyAxLjQ2LjggMi4yOGwtLjE1LjgzYy0uMTUuNzgtLjg3IDEuMy0xLjcgMS4yMmwtMS42My0uMTZjLS43Mi0uMDctMS4yNS0uNTktMS40Ny0xLjMzLS4zLTEtLjUtMS43NS0uNS0xLjc1YTYuNjMgNi42MyAwIDAgMC01IDBzLS4yLjc1LS41IDEuNzVjLS4yLjY3LS41IDEuMjYtMS4yIDEuMzNsLTEuNjMuMTZjLS44MS4wOC0xLjYtLjQzLTEuODItMS4ybC0uMjUtLjg0Yy0uMjUtLjgyLS4wMy0xLjcuNTgtMi4yOEM0LjEgNy4zIDYuNjggNiAxMCA2Wm0zLjQ4IDMuNTMuMDIuMWE0Ni4xIDQ2LjEgMCAwIDAgLjQ2IDEuNThjLjEzLjQ1LjM5LjYuNi42MmwxLjY0LjE2Yy4zNS4wNC41Ny0uMTcuNjItLjRsLjE2LS44NGMuMDktLjQ2LS4wOC0uOTgtLjQ5LTEuMzRBOS4zNyA5LjM3IDAgMCAwIDEwIDdDNi45MyA3IDQuNiA4LjIgMy4zNyA5LjM5Yy0uMzMuMzItLjQ2LjgtLjMxIDEuMjhsLjI0LjgzYy4xLjMuNDMuNTMuNzcuNWwxLjYzLS4xNy4wNS0uMDEuMDUtLjA1Yy4wNy0uMDkuMTUtLjI2LjI0LS41NWExMTUuNjUgMTE1LjY1IDAgMCAwIC40Ni0xLjZsLjAzLS4xYy4xLS4zNy40NS0uNjIuNjItLjdhNy42MiA3LjYyIDAgMCAxIDUuNzMgMGMuMTUuMDcuNDguMjkuNTkuNjh2LjAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbEV4Y2xhbWF0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxFeGNsYW1hdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNy44IDcuNzcuMTYtLjgzYy4xNi0uODItLjE1LTEuNy0uOC0yLjI4LTEuNTctMS4zOC0zLjg0LTIuMTYtNy4xNy0yLjE2LTMuMzIgMC01Ljg5Ljc5LTcuMzEgMi4xNy0uNi41OS0uODMgMS40Ni0uNTggMi4yOGwuMjUuODNBMS43NCAxLjc0IDAgMCAwIDQuMTcgOWwxLjYzLS4xNmMuNy0uMDcgMS0uNjYgMS4yLTEuMzMuMy0xIC41LTEuNzUuNS0xLjc1YTYuNjMgNi42MyAwIDAgMSA1IDBzLjIuNzUuNSAxLjc1Yy4yMi43NC43NSAxLjI2IDEuNDcgMS4zM2wxLjYzLjE2Yy44My4wOCAxLjU1LS40NCAxLjctMS4yMlptLTMuMyA1LjczYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMCAxMWEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsRXhjbGFtYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxFeGNsYW1hdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMzLjMzIDAgNS41OSAxLjI4IDcuMTUgMi42Ni42Ni41OC45NyAxLjQ2LjggMi4yOGwtLjE1LjgzYy0uMTUuNzgtLjg3IDEuMy0xLjcgMS4yMmwtMS42My0uMTZjLS43Mi0uMDctMS4yNS0uNTktMS40Ny0xLjMzLS4zLTEtLjUtMS43NS0uNS0xLjc1YTYuNjMgNi42MyAwIDAgMC01IDBTNy4zIDYuNSA3IDcuNWMtLjIuNjctLjUgMS4yNi0xLjIgMS4zM2wtMS42My4xNmMtLjgxLjA4LTEuNi0uNDMtMS44Mi0xLjJsLS4yNS0uODRjLS4yNS0uODItLjAzLTEuNy41OC0yLjI4QzQuMSAzLjMgNi42OCAyIDEwIDJabTMuNDggMy41My4wMi4xYTQ2LjEgNDYuMSAwIDAgMCAuNDYgMS41OGMuMTMuNDUuMzkuNi42LjYyTDE2LjIgOGMuMzUuMDQuNTctLjE3LjYyLS40bC4xNi0uODRjLjA5LS40Ni0uMDgtLjk4LS40OS0xLjM0QTkuMzcgOS4zNyAwIDAgMCAxMCAzQzYuOTMgMyA0LjYgNC4yIDMuMzcgNS4zOWMtLjMzLjMyLS40Ni44LS4zMSAxLjI4bC4yNC44M2MuMS4zLjQzLjUzLjc3LjVsMS42My0uMTcuMDUtLjAxLjA1LS4wNWMuMDctLjA5LjE1LS4yNi4yNC0uNTVhMTE1LjYgMTE1LjYgMCAwIDAgLjQ2LTEuNmwuMDMtLjFjLjEtLjM3LjQ1LS42Mi42Mi0uN2E3LjYyIDcuNjIgMCAwIDEgNS43MyAwYy4xNS4wNy40OC4yOS41OS42OHYuMDNabTEuMDIgNy45N2E0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTAgMTFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbEZvcndhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbEZvcndhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtOS4yOSAyLjItLjg1LS4xNmEyLjUzIDIuNTMgMCAwIDAtMi4zMi44MUM0LjcgNC40MiA0IDYuODcgNCAxMC4yYzAgMy4zMi43MiA1LjcgMi4xMyA3LjEyLjYuNiAxLjUuODMgMi4zNC41OGwuODQtLjI1Yy44LS4yMyAxLjMzLTEgMS4yNC0xLjgybC0uMTctMS42M2ExLjUzIDEuNTMgMCAwIDAtMS4yNi0xLjM2bC0xLjgtLjMyYTYuMzYgNi4zNiAwIDAgMS0uMTYtNC45OGwxLjkzLS41Yy43LS4xOSAxLjIxLS44IDEuMjgtMS41bC4xNy0xLjY1YTEuNTQgMS41NCAwIDAgMC0xLjI1LTEuN1ptNS4wNiAzLjQ1YS41LjUgMCAwIDAtLjcuN0wxNi4yOSA5SDEwLjVhLjUuNSAwIDAgMCAwIDFoNS44bC0yLjY1IDIuNjVhLjUuNSAwIDAgMCAuNy43bDMuNS0zLjVhLjUuNSAwIDAgMCAwLS43bC0zLjUtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbEZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxGb3J3YXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIm04LjkzIDIuMDgtLjE4LS4wNGMtMS0uMTctMi4wMi4xOC0yLjcxLjk0QzQuNjcgNC41IDQgNi44NSA0IDEwYzAgMy4xNS42NyA1LjUgMi4wMyA3LjAxYTIuOTcgMi45NyAwIDAgMCAyLjkuOWwuNjUtLjE1YTIuMiAyLjIgMCAwIDAgMS42Ny0yLjM2TDExLjEgMTRhMi4yIDIuMiAwIDAgMC0xLjY5LTEuOTJsLTEuNC0uMzItLjAzLS4wMi0uMDQtLjA3YTEuNjMgMS42MyAwIDAgMS0uMS0uMjRjLS4wOS0uMzItLjE0LS44LS4xNC0xLjQzIDAtLjg1LjEtMS40Mi4yNS0xLjY4YS4yLjIgMCAwIDEgLjEzLS4wOWwxLjMzLS4zQTIuMiAyLjIgMCAwIDAgMTEuMTEgNmwuMTQtMS40YTIuMiAyLjIgMCAwIDAtMS42OC0yLjM3bC0uNjQtLjE1Wk01LjE5IDEwYzAtMi44OC41OS00Ljk1IDEuNzMtNi4yMS40LS40NSAxLS42NiAxLjYtLjU3bC4xMy4wMy42NS4xNWExIDEgMCAwIDEgLjc2IDEuMDhsLS4xNCAxLjRhMSAxIDAgMCAxLS43Ni44N2wtMS4zNC4zMWExLjQgMS40IDAgMCAwLS44OC42NGMtLjMuNDktLjQyIDEuMjUtLjQyIDIuMyAwIDEuNi4yOSAyLjU4IDEuMDggMi44OGwuMTEuMDMgMS40NS4zNGExIDEgMCAwIDEgLjc2Ljg3bC4xNCAxLjRhMSAxIDAgMCAxLS43NSAxLjA3bC0uNjUuMTZjLS42NC4xNS0xLjMtLjA1LTEuNzQtLjU0LTEuMTQtMS4yNy0xLjczLTMuMzMtMS43My02LjJabTkuMTYtNC4zNWEuNS41IDAgMCAwLS43LjdMMTYuMjkgOUgxMC41YS41LjUgMCAwIDAgMCAxaDUuOGwtMi42NSAyLjY1YS41LjUgMCAwIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxJbmJvdW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxJbmJvdW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNTQgMi4xMmE0LjEgNC4xIDAgMCAwLTIuOTkuMzIgMi44NyAyLjg3IDAgMCAwLTEuNSAyLjVjLS4wNiAxLjguMzYgNC4yMiAyLjAyIDcuMDZBMTYuMjggMTYuMjggMCAwIDAgOSAxNy40OGMuOTQuNjMgMS45OS42NSAyLjg4LjI0YTMuOSAzLjkgMCAwIDAgMS45Ni0yLjIyYy4yLS41LjE1LTEuMDYtLjEyLTEuNTNsLS44LTEuNDRhMi41IDIuNSAwIDAgMC0zLjQ0LS45NGwtLjQ0LjI2Yy0uMzUuMi0uNy4xNS0uOS0uMDVhNi44MyA2LjgzIDAgMCAxLTEuNS0yLjU4Yy0uMDgtLjI1LjA0LS41Ni4zNi0uNzdsLjgtLjVhMi41IDIuNSAwIDAgMCAuODItMy4zNmwtLjktMS41NmMtLjI1LS40Ni0uNjktLjc5LTEuMi0uOTFabTExLjMxLjAzYy4yLjIuMi41IDAgLjdMMTIuNzEgOGgzLjc5YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV2LTVhLjUuNSAwIDEgMSAxIDB2My44bDUuMTUtNS4xNWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxJbmJvdW5kUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsSW5ib3VuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41NCAyLjEyYTQuMSA0LjEgMCAwIDAtMi45OS4zMiAyLjg3IDIuODcgMCAwIDAtMS41IDIuNWMtLjA2IDEuOC4zNiA0LjIyIDIuMDIgNy4wNkExNi4yOCAxNi4yOCAwIDAgMCA5IDE3LjQ4Yy45NC42MyAxLjk5LjY1IDIuODguMjRhMy45IDMuOSAwIDAgMCAxLjk2LTIuMjJjLjItLjUuMTUtMS4wNi0uMTItMS41M2wtLjk1LTEuN2EyLjUgMi41IDAgMCAwLTMuMDctMS4xMmwtLjY3LjI1Yy0uMzIuMTMtLjYyLjA3LS43OS0uMUE0LjMyIDQuMzIgMCAwIDEgNy4xIDkuMTljLS4wNi0uMjUuMDYtLjU1LjM0LS43N2wuNi0uNDVhMi41IDIuNSAwIDAgMCAuNjctMy4yNGwtLjk3LTEuN2MtLjI2LS40NS0uNy0uNzgtMS4yLS45Wm0tMy41IDIuODVjLjAyLS43Ny40MS0xLjMzIDEtMS42NmEzLjEgMy4xIDAgMCAxIDIuMjUtLjIyYy4yNC4wNi40NS4yMi41OC40M2wuOTcgMS43Yy4zOC42NS4yIDEuNDktLjQgMS45NGwtLjYuNDZjLS41Mi4zOS0uODggMS4wNi0uNzEgMS43OC4yMi45OS43IDEuOTIgMS40MiAyLjYyLjUyLjUxIDEuMjcuNTQgMS44NS4zMmwuNjYtLjI2YTEuNSAxLjUgMCAwIDEgMS44NS42N2wuOTUgMS43Yy4xMi4yMi4xNC40Ny4wNi43YTIuOTEgMi45MSAwIDAgMS0xLjQ1IDEuNjYgMS45IDEuOSAwIDAgMS0xLjktLjE2IDE1LjMgMTUuMyAwIDAgMS00LjY0LTUuMTUgMTIuMjggMTIuMjggMCAwIDEtMS44OS02LjUzWm0xNC44MS0yLjEyYS41LjUgMCAxIDAtLjctLjdMMTIgNy4yOVYzLjVhLjUuNSAwIDAgMC0xIDB2NWMwIC4yOS4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC0zLjhsNS4xNS01LjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbE1pc3NlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsTWlzc2VkRmlsbGVkJywgXCIxZW1cIiwgW1wibTE3LjggNy43Ny4xNi0uODNjLjE2LS44Mi0uMTUtMS43LS44LTIuMjgtMS41Ny0xLjM4LTMuODQtMi4xNi03LjE3LTIuMTYtMy4zMiAwLTUuODkuNzktNy4zMSAyLjE3LS42LjU5LS44MyAxLjQ2LS41OCAyLjI4bC4yNS44M0ExLjc0IDEuNzQgMCAwIDAgNC4xNyA5bDEuNjMtLjE2Yy43LS4wNyAxLS42NiAxLjItMS4zMy4zLTEgLjUtMS43NS41LTEuNzVhNi42MyA2LjYzIDAgMCAxIDUgMHMuMi43NS41IDEuNzVjLjIyLjc0Ljc1IDEuMjYgMS40NyAxLjMzbDEuNjMuMTZjLjgzLjA4IDEuNTUtLjQ0IDEuNy0xLjIyWk05LjUgMTEuNWMuMjggMCAuNS4yMi41LjV2MS41aDFhLjUuNSAwIDEgMSAwIDFIOS41QS41LjUgMCAwIDEgOSAxNHYtMmMwLS4yOC4yMi0uNS41LS41Wm0tNCAyYTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWk0xMCAxMGEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxNaXNzZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxNaXNzZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjMy4zMyAwIDUuNTkgMS4yOCA3LjE1IDIuNjYuNjYuNTguOTcgMS40Ni44IDIuMjhsLS4xNS44M2MtLjE1Ljc4LS44NyAxLjMtMS43IDEuMjJsLTEuNjMtLjE2Yy0uNzItLjA3LTEuMjUtLjU5LTEuNDctMS4zMy0uMy0xLS41LTEuNzUtLjUtMS43NWE2LjYzIDYuNjMgMCAwIDAtNSAwUzcuMyA2LjUgNyA3LjVjLS4yLjY3LS41IDEuMjYtMS4yIDEuMzNsLTEuNjMuMTZjLS44MS4wOC0xLjYtLjQzLTEuODItMS4ybC0uMjUtLjg0Yy0uMjUtLjgyLS4wMy0xLjcuNTgtMi4yOEM0LjEgMy4zIDYuNjggMiAxMCAyWm0zLjQ4IDMuNTMuMDIuMWE0Ni4xIDQ2LjEgMCAwIDAgLjQ2IDEuNThjLjEzLjQ1LjM5LjYuNi42MkwxNi4yIDhjLjM1LjA0LjU3LS4xNy42Mi0uNGwuMTYtLjg0Yy4wOS0uNDYtLjA4LS45OC0uNDktMS4zNEE5LjM3IDkuMzcgMCAwIDAgMTAgM0M2LjkzIDMgNC42IDQuMiAzLjM3IDUuMzljLS4zMy4zMi0uNDYuOC0uMzEgMS4yOGwuMjQuODNjLjEuMy40My41My43Ny41bDEuNjMtLjE3LjA1LS4wMS4wNS0uMDVjLjA3LS4wOS4xNS0uMjYuMjQtLjU1YTExNS42IDExNS42IDAgMCAwIC40Ni0xLjZsLjAzLS4xYy4xLS4zNy40NS0uNjIuNjItLjdhNy42MiA3LjYyIDAgMCAxIDUuNzMgMGMuMTUuMDcuNDguMjkuNTkuNjh2LjAzWk0xMCAxMmEuNS41IDAgMCAwLTEgMHYyYzAgLjI4LjIyLjUuNS41SDExYS41LjUgMCAxIDAgMC0xaC0xVjEyWm0tNC41IDEuNWE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFpNMTAgMTBhMy41IDMuNSAwIDEgMCAwIDcgMy41IDMuNSAwIDAgMCAwLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsT3V0Ym91bmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbE91dGJvdW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNTQgMi4xMmE0LjEgNC4xIDAgMCAwLTIuOTkuMzIgMi44NyAyLjg3IDAgMCAwLTEuNSAyLjVjLS4wNiAxLjguMzYgNC4yMiAyLjAyIDcuMDZBMTYuMjggMTYuMjggMCAwIDAgOSAxNy40OGMuOTQuNjMgMS45OS42NSAyLjg4LjI0YTMuOSAzLjkgMCAwIDAgMS45Ni0yLjIyYy4yLS41LjE1LTEuMDYtLjEyLTEuNTNsLS44LTEuNDRhMi41IDIuNSAwIDAgMC0zLjQ0LS45NGwtLjQ0LjI2Yy0uMzUuMi0uNy4xNS0uOS0uMDVhNi44MyA2LjgzIDAgMCAxLTEuNS0yLjU4Yy0uMDgtLjI1LjA0LS41Ni4zNi0uNzdsLjgtLjVhMi41IDIuNSAwIDAgMCAuODItMy4zNmwtLjktMS41NmMtLjI1LS40Ni0uNjktLjc5LTEuMi0uOTFabTQuNiA2LjczYS41LjUgMCAwIDEgMC0uN0wxNi4zIDNIMTIuNWEuNS41IDAgMSAxIDAtMWg1Yy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwVjMuN2wtNS4xNSA1LjE1YS41LjUgMCAwIDEtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxPdXRib3VuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbE91dGJvdW5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjU0IDIuMTJhNC4xIDQuMSAwIDAgMC0yLjk5LjMyIDIuODcgMi44NyAwIDAgMC0xLjUgMi41Yy0uMDYgMS44LjM2IDQuMjIgMi4wMiA3LjA2QTE2LjI4IDE2LjI4IDAgMCAwIDkgMTcuNDhjLjk0LjYzIDEuOTkuNjUgMi44OC4yNGEzLjkgMy45IDAgMCAwIDEuOTYtMi4yMmMuMi0uNS4xNS0xLjA2LS4xMi0xLjUzbC0uOTUtMS43YTIuNSAyLjUgMCAwIDAtMy4wNy0xLjEybC0uNjcuMjVjLS4zMi4xMy0uNjIuMDctLjc5LS4xQTQuMzIgNC4zMiAwIDAgMSA3LjEgOS4xOWMtLjA2LS4yNS4wNi0uNTUuMzQtLjc3bC42LS40NWEyLjUgMi41IDAgMCAwIC42Ny0zLjI0bC0uOTctMS43Yy0uMjYtLjQ1LS43LS43OC0xLjItLjlabS0zLjUgMi44NWMuMDItLjc3LjQxLTEuMzMgMS0xLjY2YTMuMSAzLjEgMCAwIDEgMi4yNS0uMjJjLjI0LjA2LjQ1LjIyLjU4LjQzbC45NyAxLjdjLjM4LjY1LjIgMS40OS0uNCAxLjk0bC0uNi40NmMtLjUyLjM5LS44OCAxLjA2LS43MSAxLjc4LjIyLjk5LjcgMS45MiAxLjQyIDIuNjIuNTIuNTEgMS4yNy41NCAxLjg1LjMybC42Ni0uMjZhMS41IDEuNSAwIDAgMSAxLjg1LjY3bC45NSAxLjdjLjEyLjIyLjE0LjQ3LjA2LjdhMi45MSAyLjkxIDAgMCAxLTEuNDUgMS42NiAxLjkgMS45IDAgMCAxLTEuOS0uMTYgMTUuMyAxNS4zIDAgMCAxLTQuNjQtNS4xNSAxMi4yOCAxMi4yOCAwIDAgMS0xLjg5LTYuNTNabTguMSAzLjE4YS41LjUgMCAxIDAgLjcxLjdMMTcgMy43MVY3LjVhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMSAwIDAgMWgzLjhsLTUuMTUgNS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxQYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxQYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNTUgMi40NGE0LjEgNC4xIDAgMCAxIDIuOTktLjMyYy41LjEyLjk0LjQ1IDEuMi45bC45IDEuNTdhMi41IDIuNSAwIDAgMS0uODQgMy4zNmwtLjc5LjVjLS4zMi4yLS40NC41Mi0uMzcuNzcuMjcuOS44NiAxLjkgMS41MiAyLjU4LjE5LjIuNTQuMjUuOS4wNWwuNDMtLjI2YTIuNSAyLjUgMCAwIDEgMy40NC45NGwuOCAxLjQ0Yy4yNy40Ny4zMSAxLjAzLjEyIDEuNTNhMy45IDMuOSAwIDAgMS0xLjk2IDIuMjJjLS45LjQxLTEuOTQuNC0yLjg4LS4yNC0xLjUtMS0zLjMtMi42OC00Ljk0LTUuNDhhMTMuMjcgMTMuMjcgMCAwIDEtMi4wMy03LjA2IDIuODcgMi44NyAwIDAgMSAxLjUxLTIuNVpNMTIuNSAyYS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAxIDAgMSAwVjdoMS41YTIuNSAyLjUgMCAwIDAgMC01aC0yWm0yIDRIMTNWM2gxLjVhMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsUGFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbFBhcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNTQgMi4xMmE0LjEgNC4xIDAgMCAwLTIuOTkuMzIgMi44NyAyLjg3IDAgMCAwLTEuNSAyLjVjLS4wNiAxLjguMzYgNC4yMiAyLjAyIDcuMDZBMTYuMjggMTYuMjggMCAwIDAgOSAxNy40OGMuOTQuNjMgMS45OS42NSAyLjg4LjI0YTMuOSAzLjkgMCAwIDAgMS45Ni0yLjIyYy4yLS41LjE1LTEuMDYtLjEyLTEuNTNsLS45NS0xLjdhMi41IDIuNSAwIDAgMC0zLjA3LTEuMTJsLS42Ny4yNWMtLjMyLjEzLS42Mi4wNy0uNzktLjFBNC4zMiA0LjMyIDAgMCAxIDcuMSA5LjE5Yy0uMDYtLjI1LjA2LS41NS4zNC0uNzdsLjYtLjQ1YTIuNSAyLjUgMCAwIDAgLjY3LTMuMjRsLS45Ny0xLjdjLS4yNi0uNDUtLjctLjc4LTEuMi0uOVptLTMuNSAyLjg1Yy4wMi0uNzcuNDEtMS4zMyAxLTEuNjZhMy4xIDMuMSAwIDAgMSAyLjI1LS4yMmMuMjQuMDYuNDUuMjIuNTguNDNsLjk3IDEuN2MuMzguNjUuMiAxLjQ5LS40IDEuOTRsLS42LjQ2Yy0uNTIuMzktLjg4IDEuMDYtLjcxIDEuNzguMjIuOTkuNyAxLjkyIDEuNDIgMi42Mi41Mi41MSAxLjI3LjU0IDEuODUuMzJsLjY2LS4yNmExLjUgMS41IDAgMCAxIDEuODUuNjdsLjk1IDEuN2MuMTIuMjIuMTQuNDcuMDYuN2EyLjkxIDIuOTEgMCAwIDEtMS40NSAxLjY2IDEuOSAxLjkgMCAwIDEtMS45LS4xNiAxNS4zIDE1LjMgMCAwIDEtNC42NC01LjE1IDEyLjI4IDEyLjI4IDAgMCAxLTEuODktNi41M1pNMTIuNSAyYS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAxIDAgMSAwVjdoMS41YTIuNSAyLjUgMCAwIDAgMC01aC0yWm0yIDRIMTNWM2gxLjVhMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsUGF1c2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbFBhdXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNTUgMi40NGE0LjEgNC4xIDAgMCAxIDIuOTktLjMyYy41LjEyLjk0LjQ1IDEuMi45bC45IDEuNTdhMi41IDIuNSAwIDAgMS0uODQgMy4zNmwtLjc5LjVjLS4zMi4yLS40NC41Mi0uMzcuNzcuMjcuOS44NiAxLjkgMS41MiAyLjU4LjE5LjIuNTQuMjUuOS4wNWwuNDMtLjI2YTIuNSAyLjUgMCAwIDEgMy40NC45NGwuOCAxLjQ0Yy4yNy40Ny4zMSAxLjAzLjEyIDEuNTNhMy45IDMuOSAwIDAgMS0xLjk2IDIuMjJjLS45LjQxLTEuOTQuNC0yLjg4LS4yNC0xLjUtMS0zLjMtMi42OC00Ljk0LTUuNDhhMTMuMjcgMTMuMjcgMCAwIDEtMi4wMy03LjA2IDIuODcgMi44NyAwIDAgMSAxLjUxLTIuNVpNMTMgMi41YS41LjUgMCAwIDAtMSAwdjZhLjUuNSAwIDAgMCAxIDB2LTZabTMgMGEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwdi02WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbFBhdXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsUGF1c2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNTUgMi40NGE0LjEgNC4xIDAgMCAxIDIuOTktLjMyYy41LjEyLjk0LjQ1IDEuMi45bC45NyAxLjdhMi41IDIuNSAwIDAgMS0uNjcgMy4yNGwtLjYuNDVjLS4yOC4yMi0uNC41Mi0uMzQuNzcuMTguODIuNTkgMS41NyAxLjE1IDIuMTMuMTcuMTYuNDcuMjIuOC4xbC42Ni0uMjZhMi41IDIuNSAwIDAgMSAzLjA3IDEuMTFsLjk1IDEuN2MuMjcuNDguMzEgMS4wNC4xMiAxLjU0YTMuOSAzLjkgMCAwIDEtMS45NiAyLjIyYy0uOS40MS0xLjk0LjQtMi44OC0uMjQtMS41LTEtMy4zLTIuNjgtNC45NC01LjQ4YTEzLjI3IDEzLjI3IDAgMCAxLTIuMDMtNy4wNiAyLjg3IDIuODcgMCAwIDEgMS41MS0yLjVabS40OS44N2MtLjU5LjMzLS45OC44OS0xIDEuNjYtLjA0IDEuNjEuMzMgMy44NSAxLjkgNi41M2ExNS4zIDE1LjMgMCAwIDAgNC42MiA1LjE1IDEuOSAxLjkgMCAwIDAgMS45MS4xNiAyLjkxIDIuOTEgMCAwIDAgMS40NS0xLjY1Ljg0Ljg0IDAgMCAwLS4wNi0uN2wtLjk1LTEuN2ExLjUgMS41IDAgMCAwLTEuODUtLjY4bC0uNjYuMjZjLS41OC4yMi0xLjMzLjItMS44NS0uMzJBNS4zMiA1LjMyIDAgMCAxIDYuMTMgOS40Yy0uMTctLjcyLjItMS40LjcxLTEuNzhsLjYtLjQ2Yy42LS40NS43OC0xLjI5LjQtMS45NGwtLjk3LTEuN2EuOTMuOTMgMCAwIDAtLjU4LS40MyAzLjEgMy4xIDAgMCAwLTIuMjUuMjJaTTEzIDIuNWEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwdi02Wm0zIDBhLjUuNSAwIDAgMC0xIDB2NmEuNS41IDAgMCAwIDEgMHYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxQcm9oaWJpdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxQcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wibTE3Ljk2IDYuOTQtLjE2LjgzYy0uMTUuNzgtLjg3IDEuMy0xLjcgMS4yMmwtMS42My0uMTZjLS43Mi0uMDctMS4yNS0uNTktMS40Ny0xLjMzLS4zLTEtLjUtMS43NS0uNS0xLjc1YTYuNjMgNi42MyAwIDAgMC01IDBTNy4zIDYuNSA3IDcuNWMtLjIuNjctLjUgMS4yNi0xLjIgMS4zM2wtMS42My4xNmMtLjgxLjA4LTEuNi0uNDMtMS44Mi0xLjJsLS4yNS0uODRjLS4yNS0uODItLjAzLTEuNy41OC0yLjI4QzQuMSAzLjMgNi42NyAyLjUxIDkuOTkgMi41YzMuMzMgMCA1LjYuNzggNy4xNiAyLjE2LjY2LjU4Ljk3IDEuNDYuOCAyLjI4Wk02LjgyIDE2LjY4YTQuNSA0LjUgMCAxIDAgNi4zNi02LjM2IDQuNSA0LjUgMCAwIDAtNi4zNiA2LjM2Wm01LjY1LS43YTMuNSAzLjUgMCAwIDEtNC41Ny4zMmw0LjktNC45YTMuNSAzLjUgMCAwIDEtLjMzIDQuNTdabS0uMzctNS4yOC00LjkgNC45YTMuNSAzLjUgMCAwIDEgNC45LTQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTUgNC42NkExMC4zNyAxMC4zNyAwIDAgMCAxMCAyQzYuNjcgMiA0LjEgMy4yOSAyLjY4IDQuNjdjLS42LjU5LS44MyAxLjQ2LS41OCAyLjI4bC4yNS44M0ExLjc0IDEuNzQgMCAwIDAgNC4xNyA5bDEuNjMtLjE2Yy43LS4wNyAxLS42NiAxLjItMS4zMy4zLTEgLjUtMS43NS41LTEuNzVhNi42MyA2LjYzIDAgMCAxIDUgMHMuMi43NS41IDEuNzVjLjIyLjc0Ljc1IDEuMjYgMS40NyAxLjMzbDEuNjMuMTZjLjgzLjA4IDEuNTUtLjQ0IDEuNy0xLjIybC4xNi0uODNjLjE2LS44Mi0uMTUtMS43LS44LTIuMjhabS0zLjY1Ljk2LS4wMi0uMS0uMDEtLjAyYy0uMS0uNC0uNDQtLjYxLS42LS42OGE3LjYyIDcuNjIgMCAwIDAtNS43My0uMDFjLS4xNi4wOS0uNTEuMzQtLjYxLjdsLS4wMy4xYTkwLjk2IDkwLjk2IDAgMCAxLS40NiAxLjZjLS4wOS4zLS4xNy40Ny0uMjQuNTZhLjIuMiAwIDAgMS0uMDUuMDVsLS4wNS4wMUw0LjA3IDhhLjc0Ljc0IDAgMCAxLS43Ny0uNWwtLjI0LS44M2MtLjE1LS40OC0uMDItLjk2LjMxLTEuMjhBOS42MiA5LjYyIDAgMCAxIDEwIDNhOS4zNyA5LjM3IDAgMCAxIDYuNSAyLjRjLjQuMzcuNTcuODkuNDggMS4zNWwtLjE2LjgzYy0uMDUuMjQtLjI3LjQ1LS42Mi40MWwtMS42NC0uMTZjLS4yMS0uMDItLjQ3LS4xNy0uNi0uNjJhNTkuMDIgNTkuMDIgMCAwIDEtLjQ2LTEuNTlaTTYuODIgMTYuNjhhNC41IDQuNSAwIDEgMCA2LjM2LTYuMzYgNC41IDQuNSAwIDAgMC02LjM2IDYuMzZabTUuNjUtLjdhMy41IDMuNSAwIDAgMS00LjU3LjMybDQuOS00LjlhMy41IDMuNSAwIDAgMS0uMzMgNC41N1ptLS4zNy01LjI4LTQuOSA0LjlhMy41IDMuNSAwIDAgMSA0LjktNC45WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbFRyYW5zZmVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxUcmFuc2ZlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjU1IDIuNDRhNC4xIDQuMSAwIDAgMSAyLjk5LS4zMmMuNS4xMi45NC40NSAxLjIuOWwuOTcgMS43YTIuNSAyLjUgMCAwIDEtLjY3IDMuMjRsLS42LjQ1Yy0uMjguMjItLjQuNTItLjM0Ljc3LjE4LjgyLjU5IDEuNTcgMS4xNSAyLjEzLjE3LjE2LjQ3LjIyLjguMWwuNjYtLjI2YTIuNSAyLjUgMCAwIDEgMy4wNyAxLjExbC45NSAxLjdjLjI3LjQ4LjMxIDEuMDQuMTIgMS41NGEzLjkgMy45IDAgMCAxLTEuOTYgMi4yMmMtLjkuNDEtMS45NC40LTIuODgtLjI0LTEuNS0xLTMuMy0yLjY4LTQuOTQtNS40OGExMy4yNyAxMy4yNyAwIDAgMS0yLjAzLTcuMDYgMi44NyAyLjg3IDAgMCAxIDEuNTEtMi41Wk0xMiA4LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS41LS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk0xNCA2LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabTMgMWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDMuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN0wxNyAzLjcxVjcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxUcmFuc2ZlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbFRyYW5zZmVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjU0IDIuMTJhNC4xIDQuMSAwIDAgMC0yLjk5LjMyIDIuODcgMi44NyAwIDAgMC0xLjUgMi41Yy0uMDYgMS44LjM2IDQuMjIgMi4wMiA3LjA2QTE2LjI4IDE2LjI4IDAgMCAwIDkgMTcuNDhjLjk0LjYzIDEuOTkuNjUgMi44OC4yNGEzLjkgMy45IDAgMCAwIDEuOTYtMi4yMmMuMi0uNS4xNS0xLjA2LS4xMi0xLjUzbC0uOTUtMS43YTIuNSAyLjUgMCAwIDAtMy4wNy0xLjEybC0uNjcuMjVjLS4zMi4xMy0uNjIuMDctLjc5LS4xQTQuMzIgNC4zMiAwIDAgMSA3LjEgOS4xOWMtLjA2LS4yNS4wNi0uNTUuMzQtLjc3bC42LS40NWEyLjUgMi41IDAgMCAwIC42Ny0zLjI0bC0uOTctMS43Yy0uMjYtLjQ1LS43LS43OC0xLjItLjlabS0zLjUgMi44NWMuMDItLjc3LjQxLTEuMzMgMS0xLjY2YTMuMSAzLjEgMCAwIDEgMi4yNS0uMjJjLjI0LjA2LjQ1LjIyLjU4LjQzbC45NyAxLjdjLjM4LjY1LjIgMS40OS0uNCAxLjk0bC0uNi40NmMtLjUyLjM5LS44OCAxLjA2LS43MSAxLjc4LjIyLjk5LjcgMS45MiAxLjQyIDIuNjIuNTIuNTEgMS4yNy41NCAxLjg1LjMybC42Ni0uMjZhMS41IDEuNSAwIDAgMSAxLjg1LjY3bC45NSAxLjdjLjEyLjIyLjE0LjQ3LjA2LjdhMi45MSAyLjkxIDAgMCAxLTEuNDUgMS42NiAxLjkgMS45IDAgMCAxLTEuOS0uMTYgMTUuMyAxNS4zIDAgMCAxLTQuNjQtNS4xNSAxMi4yOCAxMi4yOCAwIDAgMS0xLjg5LTYuNTNaTTEyIDguNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptMS0xYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0xLTFhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTE3LjUgOGEuNS41IDAgMCAxLS41LS41VjMuN2wtMi4xNSAyLjE1YS41LjUgMCAxIDEtLjctLjdMMTYuMjkgM0gxMi41YS41LjUgMCAxIDEgMC0xaDVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbFdhcm5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbFdhcm5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTIuNiAxLjU1LTMuNSA3QTEgMSAwIDAgMCAxMCAxMGg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE0IDMuNXYzYS41LjUgMCAxIDEtMSAwdi0zYS41LjUgMCAxIDEgMSAwWk0xMy41IDlhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaTTYuNTQgMi4xMmE0LjEgNC4xIDAgMCAwLTIuOTkuMzIgMi44NyAyLjg3IDAgMCAwLTEuNSAyLjVjLS4wNiAxLjguMzYgNC4yMiAyLjAyIDcuMDZBMTYuMjggMTYuMjggMCAwIDAgOSAxNy40OGMuOTQuNjMgMS45OS42NSAyLjg4LjI0YTMuOSAzLjkgMCAwIDAgMS45Ni0yLjIyYy4yLS41LjE1LTEuMDYtLjEyLTEuNTNsLS45NS0xLjdhMi41IDIuNSAwIDAgMC0zLjA3LTEuMTJsLS42Ny4yNmMtLjMyLjEyLS42Mi4wNi0uNzktLjFBNC4zMiA0LjMyIDAgMCAxIDcuMSA5LjE5Yy0uMDYtLjI2LjA2LS41Ni4zNC0uNzhsLjYtLjQ1YTIuNSAyLjUgMCAwIDAgLjY3LTMuMjRsLS45Ny0xLjdjLS4yNi0uNDUtLjctLjc4LTEuMi0uOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsV2FybmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTIuNiAxLjU1LTMuNSA3QTEgMSAwIDAgMCAxMCAxMGg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE0IDMuNXYzYS41LjUgMCAxIDEtMSAwdi0zYS41LjUgMCAxIDEgMSAwWk0xMy41IDlhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaTTMuNTUgMi40NGE0LjEgNC4xIDAgMCAxIDIuOTktLjMyYy41LjEyLjk0LjQ1IDEuMi45bC45NyAxLjdhMi41IDIuNSAwIDAgMS0uNjcgMy4yNGwtLjYuNDVjLS4yOC4yMi0uNC41Mi0uMzQuNzguMTguOC41OSAxLjU2IDEuMTUgMi4xMi4xNy4xNi40Ny4yMi44LjFsLjY2LS4yNmEyLjUgMi41IDAgMCAxIDMuMDcgMS4xMWwuOTUgMS43Yy4yNy40OC4zMSAxLjA0LjEyIDEuNTRhMy45IDMuOSAwIDAgMS0xLjk2IDIuMjJjLS45LjQxLTEuOTQuNC0yLjg4LS4yNC0xLjUtMS0zLjMtMi42OC00Ljk0LTUuNDhhMTMuMjcgMTMuMjcgMCAwIDEtMi4wMy03LjA2IDIuODcgMi44NyAwIDAgMSAxLjUxLTIuNVptLjQ5Ljg4Yy0uNTkuMzItLjk4Ljg4LTEgMS42NS0uMDQgMS42MS4zMyAzLjg1IDEuOSA2LjUzYTE1LjMgMTUuMyAwIDAgMCA0LjYyIDUuMTUgMS45IDEuOSAwIDAgMCAxLjkxLjE2IDIuOTEgMi45MSAwIDAgMCAxLjQ1LTEuNjUuODQuODQgMCAwIDAtLjA2LS43bC0uOTUtMS43YTEuNSAxLjUgMCAwIDAtMS44NS0uNjhsLS42Ni4yNmMtLjU4LjIyLTEuMzMuMi0xLjg1LS4zMmE1LjMyIDUuMzIgMCAwIDEtMS40Mi0yLjYxYy0uMTctLjczLjItMS40LjcxLTEuOGwuNi0uNDVjLjYtLjQ1Ljc4LTEuMjkuNC0xLjk0bC0uOTctMS43YS45My45MyAwIDAgMC0uNTgtLjQzIDMuMSAzLjEgMCAwIDAtMi4yNS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxpZ3JhcGh5UGVuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbGxpZ3JhcGh5UGVuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMi41YS41LjUgMCAwIDAtMSAwdjJDNSA1LjMzIDUuNjcgNiA2LjUgNmguMkw1LjI0IDkuMDhhMi41IDIuNSAwIDAgMCAuMSAyLjMzbDMuNDcgNS45MWMuMTYuMjcuNC40OC42OS41OXYtNy4wNGExIDEgMCAxIDEgMSAwdjcuMDNjLjI4LS4xMS41Mi0uMzEuNjctLjU4bDMuNDctNS45YTIuNSAyLjUgMCAwIDAgLjEtMi4zNEwxMy4yOCA2aC4yMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxpZ3JhcGh5UGVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsaWdyYXBoeVBlblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyLjVhLjUuNSAwIDAgMC0xIDB2MkM1IDUuMzMgNS42NyA2IDYuNSA2aC4yMUw1LjI1IDkuMDhhMi41IDIuNSAwIDAgMCAuMSAyLjMzbDMuNDcgNS45MWExLjM3IDEuMzcgMCAwIDAgMi4zNiAwbDMuNDctNS45YTIuNSAyLjUgMCAwIDAgLjEtMi4zNEwxMy4yOSA2aC4yMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMlpNMTIuMTggNmwxLjY3IDMuNWMuMi40Ni4xOC45OC0uMDcgMS40bC0zLjI4IDUuNjF2LTUuNjRhMSAxIDAgMSAwLTEgMHY1LjY0bC0zLjI4LTUuNmExLjUgMS41IDAgMCAxLS4wNy0xLjRMNy44MiA2aDQuMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsaWdyYXBoeVBlbkNoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsaWdyYXBoeVBlbkNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDEzLjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiLCBcIm0xNC41IDExIC4zMy0uMDFhMi41IDIuNSAwIDAgMS0uMi40MmwtMy40NiA1LjkxYy0uMTUuMjctLjQuNDctLjY3LjU4di03LjAzYTEgMSAwIDAgMCAuNDYtMS4xNmMuOTUuOCAyLjE5IDEuMjkgMy41NCAxLjI5WlwiLCBcIk05IDUuNWMwIDEuMzUuNDkgMi41OSAxLjMgMy41NGExIDEgMCAwIDAtLjggMS44M3Y3LjA0YTEuMzcgMS4zNyAwIDAgMS0uNy0uNTlsLTMuNDYtNS45YTIuNSAyLjUgMCAwIDEtLjEtMi4zNEw2LjcgNmgtLjJBMS41IDEuNSAwIDAgMSA1IDQuNXYtMmEuNS41IDAgMCAxIDEgMHYyYzAgLjI4LjIyLjUuNS41aDIuNTJMOSA1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYWxsaWdyYXBoeVBlbkNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbGlncmFwaHlQZW5DaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTIuMzUtNS42NS0zIDNhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjQgMi42NS0yLjY0YS41LjUgMCAwIDEgLjcuN1pcIiwgXCJNMTQuODUgMTAuOTlhNS42NCA1LjY0IDAgMCAxLTEuMDktLjA0bC0zLjI2IDUuNTZ2LTUuNjRhMSAxIDAgMSAwLTEgMHY1LjY0bC0zLjI4LTUuNmExLjUgMS41IDAgMCAxLS4wNy0xLjRMNy44MiA2aDEuMmE1LjU3IDUuNTcgMCAwIDEgMC0xSDYuNWEuNS41IDAgMCAxLS41LS41di0yYS41LjUgMCAwIDAtMSAwdjJDNSA1LjMzIDUuNjcgNiA2LjUgNmguMjFMNS4yNSA5LjA4YTIuNSAyLjUgMCAwIDAgLjEgMi4zM2wzLjQ3IDUuOTFhMS4zNyAxLjM3IDAgMCAwIDIuMzYgMGwzLjQ3LTUuOWMuMDgtLjE0LjE0LS4yOC4yLS40M1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxpZ3JhcGh5UGVuRXJyb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbGlncmFwaHlQZW5FcnJvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgM2EuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjVabTAgMi44Ny4zNS0uMDFhMi41IDIuNSAwIDAgMS0uMi40MmwtMy40NyA1LjkxYy0uMTUuMjctLjQuNDgtLjY4LjU5di03LjA0YTEgMSAwIDAgMCAuNDYtMS4xNmMuOTUuOCAyLjE5IDEuMjkgMy41NCAxLjI5Wk05IDUuNWMwIDEuMzUuNDkgMi41OSAxLjMgMy41NGExIDEgMCAwIDAtLjggMS44M3Y3LjA0YTEuMzcgMS4zNyAwIDAgMS0uNjgtLjU5bC0zLjQ3LTUuOWEyLjUgMi41IDAgMCAxLS4xLTIuMzRsMS4yMy0yLjZBMS43NSAxLjc1IDAgMCAxIDUgNC43NXYtMmEuNzUuNzUgMCAwIDEgMS41IDB2MmMwIC4xNC4xMS4yNS4yNS4yNWgyLjI3TDkgNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbGlncmFwaHlQZW5FcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbGlncmFwaHlQZW5FcnJvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVpNMTQgMy41YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0xIDB2LTJabTEuMTMgNGEuNjIuNjIgMCAxIDEtMS4yNSAwIC42Mi42MiAwIDAgMSAxLjI0IDBabS0uMjggMy40OWE1LjY0IDUuNjQgMCAwIDEtMS4wOS0uMDRsLTMuMjYgNS41NnYtNS42NGExIDEgMCAxIDAtMSAwdjUuNjRsLTMuMjgtNS42YTEuNSAxLjUgMCAwIDEtLjA3LTEuNEw3LjgyIDZoMS4yYTUuNTcgNS41NyAwIDAgMSAwLTFINi41YS41LjUgMCAwIDEtLjUtLjV2LTJhLjUuNSAwIDAgMC0xIDB2MkM1IDUuMzMgNS42NyA2IDYuNSA2aC4yMUw1LjI1IDkuMDhhMi41IDIuNSAwIDAgMCAuMSAyLjMzbDMuNDcgNS45MWExLjM3IDEuMzcgMCAwIDAgMi4zNiAwbDMuNDctNS45Yy4wOC0uMTQuMTQtLjI4LjItLjQzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FsbGlncmFwaHlQZW5RdWVzdGlvbk1hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FsbGlncmFwaHlQZW5RdWVzdGlvbk1hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAxYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0uNjIgN2EuNjIuNjIgMCAxIDAtMS4yNCAwIC42Mi42MiAwIDAgMCAxLjI0IDBabTEuMjMtMy41NWMwLTEuMS0uODItMS45NS0xLjg1LTEuOTUtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzJaXCIsIFwibTE0LjUgMTEgLjMzLS4wMWEyLjUgMi41IDAgMCAxLS4yLjQybC0zLjQ2IDUuOTFjLS4xNS4yNy0uNC40Ny0uNjcuNTh2LTcuMDNhMSAxIDAgMCAwIC40Ni0xLjE2Yy45NS44IDIuMTkgMS4yOSAzLjU0IDEuMjlaXCIsIFwiTTkgNS41YzAgMS4zNS40OSAyLjU5IDEuMyAzLjU0YTEgMSAwIDAgMC0uOCAxLjgzdjcuMDRhMS4zNyAxLjM3IDAgMCAxLS43LS41OWwtMy40Ni01LjlhMi41IDIuNSAwIDAgMS0uMS0yLjM0TDYuNyA2aC0uMkExLjUgMS41IDAgMCAxIDUgNC41di0yYS41LjUgMCAwIDEgMSAwdjJjMCAuMjguMjIuNS41LjVoMi41Mkw5IDUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbGxpZ3JhcGh5UGVuUXVlc3Rpb25NYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYWxsaWdyYXBoeVBlblF1ZXN0aW9uTWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDAtOSAwIDQuNSA0LjUgMCAwIDAgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAxIDAgMS4yNS42Mi42MiAwIDAgMSAwLTEuMjVabTAtNC44OGMxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NSAwLS41NS0uMzgtLjk1LS44NS0uOTUtLjUgMC0uODYuMzctLjg1Ljk1YS41LjUgMCAxIDEtMSAwYy0uMDEtMS4xMy44LTEuOTUgMS44NS0xLjk1WlwiLCBcIk0xNC44NSAxMC45OWE1LjY0IDUuNjQgMCAwIDEtMS4wOS0uMDRsLTMuMjYgNS41NnYtNS42NGExIDEgMCAxIDAtMSAwdjUuNjRsLTMuMjgtNS42YTEuNSAxLjUgMCAwIDEtLjA3LTEuNEw3LjgyIDZoMS4yYTUuNTcgNS41NyAwIDAgMSAwLTFINi41YS41LjUgMCAwIDEtLjUtLjV2LTJhLjUuNSAwIDAgMC0xIDB2MkM1IDUuMzMgNS42NyA2IDYuNSA2aC4yMUw1LjI1IDkuMDhhMi41IDIuNSAwIDAgMCAuMSAyLjMzbDMuNDcgNS45MWExLjM3IDEuMzcgMCAwIDAgMi4zNiAwbDMuNDctNS45Yy4wOC0uMTQuMTQtLjI4LjItLjQzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FtZXJhRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbWVyYUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDEwYTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLS4yMi03LjE3Yy4yNi0uNTEuNzgtLjgzIDEuMzQtLjgzaDMuNzdjLjU3IDAgMS4wOS4zMiAxLjM0LjgzTDEzLjgxIDRoMS43QTIuNSAyLjUgMCAwIDEgMTggNi41djhhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA0aDEuNjhsLjYtMS4xN1pNMTAgNmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaXCJdKTtcbmV4cG9ydCBjb25zdCBDYW1lcmFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbWVyYVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS0zIDRhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0xLjEyLThhMS41IDEuNSAwIDAgMC0xLjM0LjgzTDYuMiA0SDQuNUEyLjUgMi41IDAgMCAwIDIgNi41djhBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di04QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xLjY5bC0uNTgtMS4xN0ExLjUgMS41IDAgMCAwIDExLjg5IDJIOC4xMlptLS40NCAxLjI4QS41LjUgMCAwIDEgOC4xMiAzaDMuNzdjLjE5IDAgLjM2LjEuNDUuMjhsLjcyIDEuNDRhLjUuNSAwIDAgMCAuNDUuMjhoMmMuODIgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42OCAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE0LjV2LThDMyA1LjY3IDMuNjcgNSA0LjUgNWgyYS41LjUgMCAwIDAgLjQ0LS4yOGwuNzMtMS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYUFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYW1lcmFBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43OCAyLjgzYy4yNi0uNTEuNzgtLjgzIDEuMzQtLjgzaDMuNzdjLjU3IDAgMS4wOS4zMiAxLjM0LjgzTDEzLjgxIDRoMS43QTIuNSAyLjUgMCAwIDEgMTggNi41djMuNzZhNS40OCA1LjQ4IDAgMCAwLTQuMTMtMS4yMyA0IDQgMCAxIDAtNC44NSA0Ljg1QTUuNTYgNS41NiAwIDAgMCA5LjYgMTdINC41QTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoMS43bC41OC0xLjE3Wk0xMCA3YTMgMyAwIDAgMSAyLjkgMi4yNCA1LjUxIDUuNTEgMCAwIDAtMy42NiAzLjY2QTMgMyAwIDAgMSAxMCA3Wm05IDcuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAxIDAgMCAxSDE0djEuNWEuNS41IDAgMSAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FtZXJhQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjEyIDJhMS41IDEuNSAwIDAgMC0xLjM0LjgzTDYuMiA0SDQuNUEyLjUgMi41IDAgMCAwIDIgNi41djhBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNXYtOEMzIDUuNjcgMy42OCA1IDQuNSA1aDJhLjUuNSAwIDAgMCAuNDUtLjI4bC43My0xLjQ0QS41LjUgMCAwIDEgOC4xMiAzaDMuNzdjLjE5IDAgLjM2LjEuNDUuMjhsLjcyIDEuNDRhLjUuNSAwIDAgMCAuNDUuMjhoMmMuODIgMCAxLjUuNjcgMS41IDEuNXYzLjFjLjM1LjE5LjY5LjQgMSAuNjZWNi41QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xLjdsLS41OC0xLjE3QTEuNSAxLjUgMCAwIDAgMTEuODkgMkg4LjEyWk0xMCA2YTQgNCAwIDAgMSAzLjg4IDMuMDNjLS4zMy4wNC0uNjYuMTEtLjk4LjJhMyAzIDAgMSAwLTMuNjYgMy42N2MtLjEuMzItLjE3LjY1LS4yLjk4QTQgNCAwIDAgMSAxMCA2Wm05IDguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAxIDAgMCAxSDE0djEuNWEuNS41IDAgMSAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYUFycm93VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FtZXJhQXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDEwYTMgMyAwIDAgMSA1LjktLjc2IDUuNTEgNS41MSAwIDAgMC0zLjY2IDMuNjZBMyAzIDAgMCAxIDcgMTBabTMtNGE0IDQgMCAwIDEgMy44OCAzLjAzQTUuNTYgNS41NiAwIDAgMSAxOCAxMC4yNlY2LjVBMi41IDIuNSAwIDAgMCAxNS41IDRoLTEuNjlsLS41OC0xLjE3QTEuNSAxLjUgMCAwIDAgMTEuODkgMkg4LjEyYTEuNSAxLjUgMCAwIDAtMS4zNC44M0w2LjIgNEg0LjVBMi41IDIuNSAwIDAgMCAyIDYuNXY4QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjQ4IDUuNDggMCAwIDEtLjU3LTMuMTJBNCA0IDAgMCAxIDEwIDZabTkgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NS0yLjM1LTIgMmEuNS41IDAgMCAwIC43LjdMMTQgMTMuNzF2Mi43OWEuNS41IDAgMCAwIDEgMHYtMi44bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJhLjUuNSAwIDAgMC0uMzUtLjE1LjUuNSAwIDAgMC0uMzUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDYW1lcmFBcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYW1lcmFBcnJvd1VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA2YTQgNCAwIDAgMC0uOTcgNy44OGMuMDQtLjMzLjExLS42Ni4yLS45OGEzIDMgMCAxIDEgMy42Ny0zLjY2Yy4zMi0uMS42NC0uMTcuOTgtLjJBNCA0IDAgMCAwIDEwIDZaTTQuNSAxNmg0LjdjLjEuMzUuMjQuNjguNCAxSDQuNUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA0aDEuN2wuNTgtMS4xN2MuMjYtLjUxLjc4LS44MyAxLjM0LS44M2gzLjc3Yy41NyAwIDEuMDguMzIgMS4zNC44M0wxMy44IDRoMS43QTIuNSAyLjUgMCAwIDEgMTggNi41djMuNzZhNS41IDUuNSAwIDAgMC0xLS42NlY2LjVjMC0uODMtLjY4LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEtLjQ1LS4yOGwtLjczLTEuNDRBLjUuNSAwIDAgMCAxMS45IDNIOC4xMmEuNS41IDAgMCAwLS40NC4yOGwtLjczIDEuNDRBLjUuNSAwIDAgMSA2LjUgNWgtMkMzLjY4IDUgMyA1LjY3IDMgNi41djhjMCAuODMuNjggMS41IDEuNSAxLjVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYURvbWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FtZXJhRG9tZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDEzYTEuNSAxLjUgMCAwIDEgMCAzaC0xM0ExLjUgMS41IDAgMCAxIDIgNC41Wk0xMCA5YTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlptLTIgM2EyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaTTMgN2gxNHY0YTcgNyAwIDEgMS0xNCAwVjdabTcgMWE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaXCJdKTtcbmV4cG9ydCBjb25zdCBDYW1lcmFEb21lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYW1lcmFEb21lUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDEyYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFptMi00YTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTMgNGEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBaTTIgNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC42NS0uNDIgMS4yLTEgMS40MVYxMWE3IDcgMCAxIDEtMTQgMFY2LjkxYy0uNTgtLjItMS0uNzYtMS0xLjQxdi0xWk00IDd2NGE2IDYgMCAxIDAgMTIgMFY3SDRabS0uNS0zYS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDYW1lcmFFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbWVyYUVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC4xMiAyYTEuNSAxLjUgMCAwIDAtMS4zNC44M0w2LjIgNEg0LjVBMi41IDIuNSAwIDAgMCAyIDYuNXY4QTIuNSAyLjUgMCAwIDAgNC41IDE3SDhsLjA2LS4zNS4zNy0xLjVjLjEyLS40Ni4zNC0uOS42NC0xLjI2YTQgNCAwIDEgMSA0LjgyLTQuODNsLjIxLS4yMkEyLjg3IDIuODcgMCAwIDEgMTggOC43VjYuNUEyLjUgMi41IDAgMCAwIDE1LjUgNGgtMS42OWwtLjU4LTEuMTZBMS41IDEuNSAwIDAgMCAxMS44OSAySDguMTJaTTEzIDkuOTRBMyAzIDAgMSAwIDkuOTQgMTNMMTMgOS45NFptMS44LS40LTQuODIgNC44NGEyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDYW1lcmFFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYW1lcmFFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02Ljc4IDIuODNjLjI2LS41MS43OC0uODMgMS4zNC0uODNoMy43N2MuNTcgMCAxLjA4LjMyIDEuMzQuODNMMTMuOCA0aDEuN0EyLjUgMi41IDAgMCAxIDE4IDYuNXYyLjJjLS4zLS4yNi0uNjUtLjQ1LTEtLjU2VjYuNWMwLS44My0uNjgtMS41LTEuNS0xLjVoLTJhLjUuNSAwIDAgMS0uNDUtLjI4bC0uNzMtMS40NEEuNS41IDAgMCAwIDExLjkgM0g4LjEyYS41LjUgMCAwIDAtLjQ0LjI4bC0uNzMgMS40NEEuNS41IDAgMCAxIDYuNSA1aC0yQzMuNjggNSAzIDUuNjcgMyA2LjV2OGMwIC44My42OCAxLjUgMS41IDEuNWgzLjcybC0uMTYuNjVMOCAxN0g0LjVBMi41IDIuNSAwIDAgMSAyIDE0LjV2LThBMi41IDIuNSAwIDAgMSA0LjUgNGgxLjdsLjU4LTEuMTdabTcuMSA2LjIzYTQgNCAwIDEgMC00LjggNC44M2MuMDUtLjA4LjEyLS4xNS4yLS4yMmwuNjYtLjY3QTMgMyAwIDEgMSAxMyA5Ljk0bC44OS0uODhabS45My40OS00LjgzIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FtZXJhT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbWVyYU9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgNC4yIDIuMTUgMi44NmEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtLjk1LS45NWMtLjIyLjA3LS40Ni4xLS43LjFoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04YzAtMS4wMi42Mi0xLjkgMS41LTIuM1ptOC45NSA4Ljk2LS43MS0uNzFhMyAzIDAgMCAxLTQuMTgtNC4xOGwtLjcyLS43MmE0IDQgMCAwIDAgNS42MSA1LjYxWk05LjIyIDcuMWwzLjY4IDMuNjhBMyAzIDAgMCAwIDkuMjIgNy4xWk0xNCAxMGMwIC41NS0uMTEgMS4wOC0uMzIgMS41Nmw0LjA2IDQuMDZjLjE3LS4zNC4yNi0uNzIuMjYtMS4xMnYtOEEyLjUgMi41IDAgMCAwIDE1LjUgNGgtMS42OWwtLjU4LTEuMTdBMS41IDEuNSAwIDAgMCAxMS44OSAySDguMTJhMS41IDEuNSAwIDAgMC0xLjM0LjgzTDYuMiA0aC0uMDdsMi4zMiAyLjMyQTMuOTkgMy45OSAwIDAgMSAxNCAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FtZXJhT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgNC4yIDIuMTUgMi44NmEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtLjk1LS45NWMtLjIyLjA3LS40Ni4xLS43LjFoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04YzAtMS4wMi42Mi0xLjkgMS41LTIuM1pNMTUuMyAxNmwtMi44NS0yLjg0YTQgNCAwIDAgMS01LjYxLTUuNjFMNC4zMSA1Yy0uNzQuMS0xLjMuNzMtMS4zIDEuNDl2OGMwIC44My42NyAxLjUgMS41IDEuNWgxMC43OFptLTMuNTYtMy41NUw3LjU1IDguMjZhMyAzIDAgMCAwIDQuMTggNC4xOFptLTMuMy02LjEzLjc4Ljc4YTMgMyAwIDAgMSAzLjY4IDMuNjhsLjc4Ljc4QTMuOTkgMy45OSAwIDAgMCAxMCA2Yy0uNTUgMC0xLjA4LjExLTEuNTYuMzJaTTE3IDE0LjVjMCAuMTIgMCAuMjMtLjAzLjM0bC43Ny43OGMuMTctLjM0LjI2LS43Mi4yNi0xLjEydi04QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xLjY5bC0uNTgtMS4xN0ExLjUgMS41IDAgMCAwIDExLjg5IDJIOC4xMmExLjUgMS41IDAgMCAwLTEuMzQuODNMNi4yIDRoLS4wN2wuNzkuNzlhLjUuNSAwIDAgMCAuMDQtLjA3bC43My0xLjQ0QS41LjUgMCAwIDEgOC4xMiAzaDMuNzdjLjE5IDAgLjM2LjEuNDUuMjhsLjcyIDEuNDRhLjUuNSAwIDAgMCAuNDUuMjhoMmMuODIgMCAxLjUuNjcgMS41IDEuNXY4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FtZXJhU3BhcmtsZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FtZXJhU3BhcmtsZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuMjMgMS4zNSAxNC44OC4yOGEuNDIuNDIgMCAwIDAtLjggMGwtLjM1IDEuMDdhMi4yIDIuMiAwIDAgMS0xLjM4IDEuNGwtMS4wNy4zNWEuNDIuNDIgMCAwIDAgMCAuOGwxLjA3LjM0YTIuMiAyLjIgMCAwIDEgMS40IDEuNGwuMzUgMS4wOGEuNDIuNDIgMCAwIDAgLjggMGwuMzUtMS4wN2EyLjIgMi4yIDAgMCAxIDEuNC0xLjRsMS4wNy0uMzVhLjQyLjQyIDAgMCAwIDAtLjhoLS4wMmwtMS4wOC0uMzVhMi4yIDIuMiAwIDAgMS0xLjQtMS40Wm0zLjc5IDYuNjEuNzYuMjVoLjAyYS4zLjMgMCAwIDEgMCAuNThsLS43Ny4yNWExLjU4IDEuNTggMCAwIDAtMSAxbC0uMjQuNzZhLjMuMyAwIDAgMS0uNTggMGwtLjI0LS43N2ExLjU4IDEuNTggMCAwIDAtMS0xbC0uNzctLjI1YS4zLjMgMCAwIDEgMC0uNTdsLjc3LS4yNWExLjU4IDEuNTggMCAwIDAgLjk4LTFsLjI1LS43NmEuMy4zIDAgMCAxIC41NyAwbC4yNS43N2ExLjU3IDEuNTcgMCAwIDAgMSAxWk0xMCA3YTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlptMS00Ljg1LjQtLjE1SDguMTNhMS41IDEuNSAwIDAgMC0xLjM0LjgzTDYuMiA0SDQuNUEyLjUgMi41IDAgMCAwIDIgNi41djhBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0yLjZhMS4yOSAxLjI5IDAgMCAxLTEuMjUtLjE0Yy0uMjMtLjE2LS40LS4zOS0uNDktLjY1bC0uMjQtLjc2YS41OS41OSAwIDAgMC0uMTQtLjIzLjc0Ljc0IDAgMCAwLS4yMi0uMTRsLS43OS0uMjVBMS4zMSAxLjMxIDAgMCAxIDE0IDguNWExLjMgMS4zIDAgMCAxIC4wNS0uNjNjLS4xNi0uMDQtLjMtLjExLS40NC0uMjEtLjIxLS4xNy0uMzctLjQtLjQ2LS42NmwtLjMzLTEuMTNhMS4xMiAxLjEyIDAgMCAwLS4yNi0uMzhsLS4wNi0uMDZhMSAxIDAgMCAwLS40LS4yM0wxMSA0Ljg0YTEuNDIgMS40MiAwIDAgMS0xLTEuMzRjMC0uMy4xLS41OC4yOS0uODIuMTctLjI1LjQyLS40NC43MS0uNTNaTTYgMTBhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FtZXJhU3BhcmtsZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhbWVyYVNwYXJrbGVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS4yMyAxLjM1IDE0Ljg4LjI4YS40Mi40MiAwIDAgMC0uOCAwbC0uMzUgMS4wN2EyLjIgMi4yIDAgMCAxLTEuMzggMS40bC0xLjA3LjM1YS40Mi40MiAwIDAgMCAwIC44bDEuMDcuMzRhMi4yIDIuMiAwIDAgMSAxLjQgMS40bC4zNSAxLjA4YS40Mi40MiAwIDAgMCAuOCAwbC4zNS0xLjA3YTIuMiAyLjIgMCAwIDEgMS40LTEuNGwxLjA3LS4zNWEuNDIuNDIgMCAwIDAgMC0uOGgtLjAybC0xLjA4LS4zNWEyLjIgMi4yIDAgMCAxLTEuNC0xLjRabTMuNzkgNi42MS43Ni4yNWguMDJhLjMuMyAwIDAgMSAwIC41OGwtLjc3LjI1YTEuNTggMS41OCAwIDAgMC0xIDFsLS4yNC43NmEuMy4zIDAgMCAxLS41OCAwbC0uMjQtLjc3YTEuNTggMS41OCAwIDAgMC0xLTFsLS43Ny0uMjVhLjMuMyAwIDAgMSAwLS41N2wuNzctLjI1YTEuNTggMS41OCAwIDAgMCAuOTgtMWwuMjUtLjc2YS4zLjMgMCAwIDEgLjU3IDBsLjI1Ljc3YTEuNTcgMS41NyAwIDAgMCAxIDFaTTguMTIgMmgzLjI5bC0uNDEuMTVjLS4yOS4xLS41NC4yOC0uNzEuNTMtLjA4LjEtLjE0LjItLjE4LjMySDguMTJhLjUuNSAwIDAgMC0uNDQuMjhsLS43MyAxLjQ0QS41LjUgMCAwIDEgNi41IDVoLTJDMy42OCA1IDMgNS42NyAzIDYuNXY4YzAgLjgzLjY4IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMi42YTEuMjkgMS4yOSAwIDAgMCAxIDB2Mi42YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LThBMi41IDIuNSAwIDAgMSA0LjUgNGgxLjdsLjU4LTEuMTdjLjI2LS41MS43OC0uODMgMS4zNC0uODNaTTEwIDZhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tMyA0YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYVN3aXRjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYW1lcmFTd2l0Y2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMTUgMi4xNWMuMi0uMi41LS4yLjcgMGwyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMMTUuMjkgNUg0YTEgMSAwIDAgMC0xIDF2Ni41YS41LjUgMCAwIDEtMSAwVjZjMC0xLjEuOS0yIDItMmgxMS4zbC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAwLS43Wk0xNyAxNGExIDEgMCAwIDEtMSAxSDQuN2wxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDE2SDE2YTIgMiAwIDAgMCAyLTJWNy41YS41LjUgMCAwIDAtMSAwVjE0Wm0tNC00YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhbWVyYVN3aXRjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FtZXJhU3dpdGNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC44NSAyLjE1YS41LjUgMCAwIDAtLjcuN0wxNS4yOSA0SDRhMiAyIDAgMCAwLTIgMnY2LjVhLjUuNSAwIDAgMCAxIDBWNmExIDEgMCAwIDEgMS0xaDExLjNsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWk0xNiAxNWExIDEgMCAwIDAgMS0xVjcuNWEuNS41IDAgMCAxIDEgMFYxNGEyIDIgMCAwIDEtMiAySDQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMCAxIC43LjdMNC43MSAxNUgxNlptLTMtNWEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabS0xIDBhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FyZFVpRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhcmRVaUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1pNOS41IDZoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMVptMyAyaC04YS41LjUgMCAwIDAgMCAxaDhhLjUuNSAwIDAgMCAwLTFaTTUgMTFhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMC0xLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhcmRVaVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZFVpUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xMVpNMyA2LjVDMyA1LjY3IDMuNjcgNSA0LjUgNWgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTdaTTQuNSA2YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabTAgMmEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0uNSAzYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDAtMS0xSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXJkVWlQb3J0cmFpdEZsaXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZFVpUG9ydHJhaXRGbGlwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJoN0EyLjUgMi41IDAgMCAxIDE2IDQuNVY4YTEuNSAxLjUgMCAwIDAtLjg1IDIuNzNBOS43NiA5Ljc2IDAgMCAxIDEwIDEyYy0yLjQgMC00LjA1LS42LTUuMTUtMS4yN0ExLjUgMS41IDAgMCAwIDQgOFY0LjVaTTEwIDE1YzIuNTQgMCA0LjUxLS41NiA2LTEuMzF2MS44MWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSA0IDE1LjV2LTEuODFjMS40OS43NSAzLjQ2IDEuMzEgNiAxLjMxWk03LjUgNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk03IDguNWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAtLjUuNVpNMS41IDlhLjUuNSAwIDAgMC0uNS41VjEyYS41LjUgMCAwIDAgMSAwdi0xYy4yNy4yOC42LjU5IDEgLjkgMS40IDEuMDYgMy42NCAyLjEgNyAyLjFzNS42LTEuMDQgNy0yLjFjLjQtLjMxLjczLS42MiAxLS45djFhLjUuNSAwIDAgMCAxIDBWOS41YS41LjUgMCAwIDAtLjUtLjVIMTZhLjUuNSAwIDAgMCAwIDFoMS41NWMtLjI3LjMyLS42NS43MS0xLjE3IDEuMS0xLjIyLjk0LTMuMjQgMS45LTYuMzggMS45LTMuMTQgMC01LjE2LS45Ni02LjM4LTEuOS0uNTItLjM5LS45LS43OC0xLjE3LTEuMUg0YS41LjUgMCAwIDAgMC0xSDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhcmRVaVBvcnRyYWl0RmxpcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZFVpUG9ydHJhaXRGbGlwUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgMkEyLjUgMi41IDAgMCAwIDQgNC41VjhjLjM4IDAgLjczLjE0IDEgLjM4VjQuNUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2My44OEExLjUgMS41IDAgMCAxIDE2IDhWNC41QTIuNSAyLjUgMCAwIDAgMTMuNSAyaC03Wk0xNiAxMy42OWMtLjMxLjE2LS42NS4zLTEgLjQ0djEuMzdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xLjM3YTExLjEgMTEuMSAwIDAgMS0xLS40NHYxLjgxQTIuNSAyLjUgMCAwIDAgNi41IDE4aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xLjgxWk03LjUgNmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk03IDkuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNMS41IDlhLjUuNSAwIDAgMC0uNS41VjEyYS41LjUgMCAwIDAgMSAwdi0xYy4yNy4yOC42LjU5IDEgLjkgMS40IDEuMDYgMy42NCAyLjEgNyAyLjFzNS42LTEuMDQgNy0yLjFjLjQtLjMxLjczLS42MiAxLS45djFhLjUuNSAwIDAgMCAxIDBWOS41YS41LjUgMCAwIDAtLjUtLjVIMTZhLjUuNSAwIDAgMCAwIDFoMS41NWMtLjI3LjMyLS42NS43MS0xLjE3IDEuMS0xLjIyLjk0LTMuMjQgMS45LTYuMzggMS45LTMuMTQgMC01LjE2LS45Ni02LjM4LTEuOS0uNTItLjM5LS45LS43OC0xLjE3LTEuMUg0YS41LjUgMCAwIDAgMC0xSDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhcmV0RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXJldERvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS44IDdhMSAxIDAgMCAwLS43OCAxLjYzbDMuODEgNC43MmMuNi43NCAxLjc0Ljc0IDIuMzQgMGwzLjgxLTQuNzJBMSAxIDAgMCAwIDE0LjIgN0g1LjhaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXJldERvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhcmV0RG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS4wMiA4LjYzQTEgMSAwIDAgMSA1LjggN2g4LjRhMSAxIDAgMCAxIC43OCAxLjYzbC0zLjgxIDQuNzJhMS41IDEuNSAwIDAgMS0yLjM0IDBMNS4wMiA4LjYzWk0xNC4yIDhINS44bDMuODEgNC43MmMuMi4yNS41OC4yNS43OCAwTDE0LjIgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhcmV0RG93blJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhcmV0RG93blJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1IDUuOTZhMSAxIDAgMCAwLTEuNy0uNzFsLTguMDUgOC4wNGExIDEgMCAwIDAgLjcgMS43MWg3LjU1Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY1Ljk2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FyZXREb3duUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhcmV0RG93blJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy4zIDUuMjVhMSAxIDAgMCAxIDEuNy43djcuNTVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDUuOTZhMSAxIDAgMCAxLS43MS0xLjdsOC4wNC04LjA1Wm0uNy43TDUuOTYgMTRoNy41NGEuNS41IDAgMCAwIC41LS41VjUuOTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXJldExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZXRMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDE0LjJhMSAxIDAgMCAxLTEuNjMuNzhsLTQuNzItMy44MWExLjUgMS41IDAgMCAxIDAtMi4zNGw0LjcyLTMuODFBMSAxIDAgMCAxIDEzIDUuOHY4LjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXJldExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhcmV0TGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMzcgMTQuOThBMSAxIDAgMCAwIDEzIDE0LjJWNS44YTEgMSAwIDAgMC0xLjYzLS43OEw2LjY1IDguODNhMS41IDEuNSAwIDAgMCAwIDIuMzRsNC43MiAzLjgxWk0xMiA1Ljh2OC40TDcuMjggMTAuNGEuNS41IDAgMCAxIDAtLjc4TDEyIDUuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhcmV0UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZXRSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDE0LjJhMSAxIDAgMCAwIDEuNjMuNzhsNC43Mi0zLjgxYTEuNSAxLjUgMCAwIDAgMC0yLjM0TDguNjMgNS4wMkExIDEgMCAwIDAgNyA1Ljh2OC40WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FyZXRSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZXRSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC42MyAxNC45OEExIDEgMCAwIDEgNyAxNC4yVjUuOGExIDEgMCAwIDEgMS42My0uNzhsNC43MiAzLjgxYy43NC42Ljc0IDEuNzQgMCAyLjM0bC00LjcyIDMuODFaTTggNS44djguNGw0LjcyLTMuODFhLjUuNSAwIDAgMCAwLS43OEw4IDUuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhcmV0VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZXRVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjggMTMuOWExIDEgMCAwIDEtLjc4LTEuNjJsMy44MS00LjcyYTEuNSAxLjUgMCAwIDEgMi4zNCAwbDMuODEgNC43MmExIDEgMCAwIDEtLjc4IDEuNjNINS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FyZXRVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FyZXRVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS4wMiAxMi4yOGExIDEgMCAwIDAgLjc4IDEuNjNoOC40YTEgMSAwIDAgMCAuNzgtMS42M2wtMy44MS00LjcyYTEuNSAxLjUgMCAwIDAtMi4zNCAwbC0zLjgxIDQuNzJabTkuMTguNjNINS44TDkuNiA4LjE5YS41LjUgMCAwIDEgLjc4IDBsMy44MSA0LjcyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2FydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgMy41YzAtLjI4LjIyLS41LjUtLjVoLjQ0Yy43MiAwIDEuMTQuNDcgMS4zOC45NC4xNy4zMi4yOS43Mi4zOSAxLjA2SDE2YTEgMSAwIDAgMSAuOTYgMS4yN2wtMS41IDUuMjhBMiAyIDAgMCAxIDEzLjU1IDEzSDguNDZhMiAyIDAgMCAxLTEuOTMtMS40N0w1LjkgOS4xN2wtLjAxLS4wMy0xLjAzLTMuNS0uMS0uMzNhNS4yIDUuMiAwIDAgMC0uMzItLjkxYy0uMTYtLjMxLS4zLS40LS41LS40SDMuNWEuNS41IDAgMCAxLS41LS41Wk04LjUgMTdhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTUgMGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMy41YzAtLjI4LjIyLS41LjUtLjVoLjQ0Yy43MiAwIDEuMTQuNDcgMS4zOC45NC4xNy4zMi4yOS43Mi4zOSAxLjA2SDE2YTEgMSAwIDAgMSAuOTYgMS4yN2wtMS41IDUuMjhBMiAyIDAgMCAxIDEzLjU1IDEzSDguNDZhMiAyIDAgMCAxLTEuOTMtMS40N0w1LjkgOS4xN2wtLjAxLS4wMy0xLjAzLTMuNS0uMS0uMzNhNS4yIDUuMiAwIDAgMC0uMzItLjkxYy0uMTYtLjMxLS4zLS40LS41LS40SDMuNWEuNS41IDAgMCAxLS41LS41Wm0zLjg0IDUuMzcuNjYgMi40YTEgMSAwIDAgMCAuOTYuNzNoNS4wOGExIDEgMCAwIDAgLjk2LS43M0wxNiA2SDZsLjg0IDIuODdaTTEwIDE1LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0xIDBhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabTYgMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTEgMGEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoMTNjLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTNaTTQgOGMwLS4yOC4yMi0uNS41LS41YTYgNiAwIDAgMSA2IDYgLjUuNSAwIDAgMS0xIDAgNSA1IDAgMCAwLTUtNUEuNS41IDAgMCAxIDQgOFptLjUgMkEzLjUgMy41IDAgMCAxIDggMTMuNWEuNS41IDAgMSAxLTEgMEEyLjUgMi41IDAgMCAwIDQuNSAxMWEuNS41IDAgMCAxIDAtMVptLjI1IDRhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA1LjVDMiA0LjY3IDIuNjcgNCAzLjUgNGgxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlaTTMuNSA1YS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtMTNabTIgOC4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk00IDEwLjVjMC0uMjguMjItLjUuNS0uNUEzLjUgMy41IDAgMCAxIDggMTMuNWEuNS41IDAgMSAxLTEgMEEyLjUgMi41IDAgMCAwIDQuNSAxMWEuNS41IDAgMCAxLS41LS41Wk00IDhjMC0uMjguMjItLjUuNS0uNWE2IDYgMCAwIDEgNiA2IC41LjUgMCAwIDEtMSAwIDUgNSAwIDAgMC01LTVBLjUuNSAwIDAgMSA0IDhaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXN0TXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2FzdE11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNWEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNoLTN2LTFhLjUuNSAwIDAgMC0xIDB2MmEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM3YtM2EzIDMgMCAwIDEgMy0zaDFhLjUuNSAwIDAgMCAwLTFINWE0IDQgMCAwIDAtMSAuMTNWNVptNC43NSA2YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOC41IDdhLjUuNSAwIDAgMCAwIDEgMi41IDIuNSAwIDAgMSAyLjUgMi41LjUuNSAwIDEgMCAxIDBBMy41IDMuNSAwIDAgMCA4LjUgN1ptMC0yLjVhLjUuNSAwIDEgMCAwIDEgNSA1IDAgMCAxIDUgNSAuNS41IDAgMCAwIDEgMCA2IDYgMCAwIDAtNi02WlwiXSk7XG5leHBvcnQgY29uc3QgQ2FzdE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXN0TXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNoLTR2MWEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM3YtM2EzIDMgMCAwIDEgMi0yLjgzVjVabTYgNy41YS41LjUgMCAwIDEgMSAwdi41aDRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjRoMWEuNS41IDAgMCAxIDAgMUg1YTIgMiAwIDAgMC0yIDJ2M2MwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtMi41Wm0tLjUtMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk04IDcuNWMwLS4yOC4yMi0uNS41LS41YTMuNSAzLjUgMCAwIDEgMy41IDMuNS41LjUgMCAxIDEtMSAwQTIuNSAyLjUgMCAwIDAgOC41IDhhLjUuNSAwIDAgMS0uNS0uNVpNOCA1YzAtLjI4LjIyLS41LjUtLjVhNiA2IDAgMCAxIDYgNiAuNS41IDAgMCAxLTEgMCA1IDUgMCAwIDAtNS01QS41LjUgMCAwIDEgOCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2F0Y2hVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXRjaFVwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNjcgNy4xNGMuMS0uMi4zOC0uMTguNDYuMDJsMi4zMyA2LjJhMS43NSAxLjc1IDAgMCAwIDMuMjMuMTRsMS4yMi0yLjZhLjI1LjI1IDAgMCAxIC4yMy0uMTVoMS4wNmExLjUgMS41IDAgMSAwIDAtMS41aC0xLjA2Yy0uNjggMC0xLjMuNC0xLjU5IDFsLTEuMjIgMi42Yy0uMS4yLS4zOC4yLS40Ni0uMDFsLTIuMzMtNi4yQTEuNzUgMS43NSAwIDAgMCA2LjMgNi41TDUuMSA5LjFhLjI1LjI1IDAgMCAxLS4yMi4xNEgzLjhhMS41IDEuNSAwIDEgMCAwIDEuNWgxLjA3Yy42NyAwIDEuMjktLjQgMS41OC0xbDEuMjItMi42WlwiXSk7XG5leHBvcnQgY29uc3QgQ2F0Y2hVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2F0Y2hVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy40NSA3LjI3YS41LjUgMCAwIDEgLjkxLjA0bDIuMzUgNS43NmExLjUgMS41IDAgMCAwIDIuNzMuMTFsMS4yMy0yLjRhLjUuNSAwIDAgMSAuNDQtLjI4aC45OGExLjUgMS41IDAgMSAwIDAtMWgtLjk4YTEuNSAxLjUgMCAwIDAtMS4zMy44MmwtMS4yMyAyLjRhLjUuNSAwIDAgMS0uOTEtLjAzTDkuMjkgNi45M2ExLjUgMS41IDAgMCAwLTIuNzMtLjExbC0xLjIzIDIuNGEuNS41IDAgMCAxLS40NC4yOEgzLjlhMS41IDEuNSAwIDEgMCAwIDFoLjk4YTEuNSAxLjUgMCAwIDAgMS4zMy0uODJsMS4yMy0yLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcjNHRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyM0dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4wMyAzYy0uMzIgMC0uNzQuMTQtMS4xNi42YS41LjUgMCAxIDEtLjc0LS42NkEyLjU3IDIuNTcgMCAwIDEgNC4wMyAyYy42NCAwIDEuMi4yOCAxLjU3LjdBMS41IDEuNSAwIDAgMSA1LjI4IDVjLjI3LjIuNDcuNDIuNi42OS4yNi41OS4wOCAxLjItLjI4IDEuNjEtLjM2LjQyLS45My43LTEuNTYuNy0uNjUgMC0xLjMzLS4yOS0xLjkxLS45NGEuNS41IDAgMCAxIC43NC0uNjZjLjQyLjQ2Ljg0LjYgMS4xNy42LjM0IDAgLjYzLS4xNS44LS4zNS4xNy0uMi4yLS40LjEyLS41NS0uMDctLjE3LS4zMy0uNDQtMS4wNy0uNjFhLjUuNSAwIDAgMSAwLS45OGMuNzQtLjE3IDEtLjQ0IDEuMDctLjYxLjA3LS4xNS4wNS0uMzUtLjEyLS41NS0uMTctLjItLjQ2LS4zNS0uOC0uMzVabS43MiAxMGMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjIuNWEuNzUuNzUgMCAwIDEtMS41LjExdi0yLjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjQuNWEuNzUuNzUgMCAwIDEtMS41LjExdi00LjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjYuNWEuNzUuNzUgMCAwIDEtMS41LjExVjkuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2OC41YS43NS43NSAwIDAgMS0xLjUuMTFWNy43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM3IDAgLjY4LjI3Ljc0LjYzbC4wMS4xLS4wMSAxMC41MmEuNzQuNzQgMCAwIDEtMS40OC4xMmwtLjAxLS4xLjAxLTEwLjUyYzAtLjQxLjMzLS43NS43NC0uNzVabS03LjUtMmguMjVzLjEzIDAgLjI4LjA2Yy4xNy4wNy4zNi4xOC40OC40MmEuNS41IDAgMCAwIC44OS0uNDZDMTAuNjIgMiA5LjUzIDIgOS41IDJoLS4yNUM4LjAxIDIgNyAzIDcgNC4yNXYxLjVhMi4yNSAyLjI1IDAgMCAwIDQuNSAwdi0uNWEuNS41IDAgMCAwLS41LS41SDkuNWEuNS41IDAgMSAwIDAgMWgxYTEuMjUgMS4yNSAwIDAgMS0yLjUgMHYtMS41QzggMy41NiA4LjU2IDMgOS4yNSAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXIzR1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXIzR1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC4wMyAzYy0uMzIgMC0uNzQuMTQtMS4xNi42YS41LjUgMCAxIDEtLjc0LS42NkEyLjU3IDIuNTcgMCAwIDEgNC4wMyAyYy42NCAwIDEuMi4yOCAxLjU3LjdBMS41IDEuNSAwIDAgMSA1LjI4IDVjLjI3LjIuNDcuNDIuNi42OS4yNi41OS4wOCAxLjItLjI4IDEuNjEtLjM2LjQyLS45My43LTEuNTYuNy0uNjUgMC0xLjMzLS4yOS0xLjkxLS45NGEuNS41IDAgMCAxIC43NC0uNjZjLjQyLjQ2Ljg0LjYgMS4xNy42LjM0IDAgLjYzLS4xNS44LS4zNS4xNy0uMi4yLS40LjEyLS41NS0uMDctLjE3LS4zMy0uNDQtMS4wNy0uNjFhLjUuNSAwIDAgMSAwLS45OGMuNzQtLjE3IDEtLjQ0IDEuMDctLjYxLjA3LS4xNS4wNS0uMzUtLjEyLS41NS0uMTctLjItLjQ2LS4zNS0uOC0uMzVaTTE2LjUgNWEuNS41IDAgMCAxIC41LjQxdjExLjFhLjUuNSAwIDAgMS0uOTkuMDhWNS41YzAtLjI4LjIyLS41LjUtLjVabS05IDZhLjUuNSAwIDAgMSAuNS40MXY1LjA5YS41LjUgMCAwIDEtLjk5LjA5VjExLjVjMC0uMjguMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjQxdjMuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMy41YzAtLjI4LjIyLS41LjUtLjVabTYtNGEuNS41IDAgMCAxIC41LjR2Ny4xYS41LjUgMCAwIDEtMSAuMDlWOS41YzAtLjI4LjIyLS41LjUtLjVabTMtMmEuNS41IDAgMCAxIC41LjQxdjkuMDlhLjUuNSAwIDAgMS0xIC4wOVY3LjVjMC0uMjcuMjItLjUuNS0uNVpNOS4yNSAzaC4yNXMuMTMgMCAuMjguMDZjLjE3LjA3LjM2LjE4LjQ4LjQyYS41LjUgMCAwIDAgLjg5LS40NkMxMC42MiAyIDkuNTMgMiA5LjUgMmgtLjI1QzguMDEgMiA3IDMgNyA0LjI1djEuNWEyLjI1IDIuMjUgMCAwIDAgNC41IDB2LS41YS41LjUgMCAwIDAtLjUtLjVIOS41YS41LjUgMCAxIDAgMCAxaDFhMS4yNSAxLjI1IDAgMCAxLTIuNSAwdi0xLjVDOCAzLjU2IDguNTYgMyA5LjI1IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcjRHRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyNEdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS41IDNoLS4yNUM4LjU2IDMgOCAzLjU2IDggNC4yNXYxLjVhMS4yNSAxLjI1IDAgMCAwIDIuNSAwaC0xYS41LjUgMCAxIDEgMC0xSDExYy4yOCAwIC41LjIyLjUuNXYuNWEyLjI1IDIuMjUgMCAxIDEtNC41IDB2LTEuNUM3IDMuMDEgOCAyIDkuMjUgMmguMjVjLjAzIDAgMS4xMiAwIDEuNjUgMS4wMmEuNS41IDAgMSAxLS44OS40Ni44Ni44NiAwIDAgMC0uNDgtLjQyQzkuNjMgMy4wMSA5LjUxIDMgOS41IDNaTTQuNzUgMTNjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYyLjVhLjc1Ljc1IDAgMCAxLTEuNS4xMXYtMi42MWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMXYtNC42MWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY2LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMVY5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjguNWEuNzUuNzUgMCAwIDEtMS41LjExVjcuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zNyAwIC42OC4yNy43NC42M2wuMDEuMS0uMDEgMTAuNTJhLjc0Ljc0IDAgMCAxLTEuNDguMTJsLS4wMS0uMS4wMS0xMC41MmMwLS40MS4zMy0uNzUuNzQtLjc1Wk00Ljk1IDIuN2EuNy43IDAgMCAwLTEuMjYtLjRMMS4xMyA1LjlBLjcuNyAwIDAgMCAxLjcgN2gyLjI2di41YS41LjUgMCAxIDAgMSAwVjdoLjU0YS41LjUgMCAwIDAgMC0xaC0uNTRWMi43Wm0tMSAuOTRWNkgyLjI5bDEuNjgtMi4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyNEdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyNEdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNSAzaC0uMjVDOC41NiAzIDggMy41NiA4IDQuMjV2MS41YTEuMjUgMS4yNSAwIDAgMCAyLjUgMGgtMWEuNS41IDAgMSAxIDAtMUgxMWMuMjggMCAuNS4yMi41LjV2LjVhMi4yNSAyLjI1IDAgMSAxLTQuNSAwdi0xLjVDNyAzLjAxIDggMiA5LjI1IDJoLjI1Yy4wMyAwIDEuMTIgMCAxLjY1IDEuMDJhLjUuNSAwIDEgMS0uODkuNDYuODYuODYgMCAwIDAtLjQ4LS40MkM5LjYzIDMuMDEgOS41MSAzIDkuNSAzWm03IDJhLjUuNSAwIDAgMSAuNS40MXYxMS4xYS41LjUgMCAwIDEtLjk5LjA4VjUuNWMwLS4yOC4yMi0uNS41LS41Wm0tOSA2YS41LjUgMCAwIDEgLjUuNDF2NS4wOWEuNS41IDAgMCAxLS45OS4wOVYxMS41YzAtLjI4LjIyLS41LjUtLjVabS0zIDJhLjUuNSAwIDAgMSAuNS40MXYzLjA5YS41LjUgMCAwIDEtMSAuMDlWMTMuNWMwLS4yOC4yMi0uNS41LS41Wm02LTRhLjUuNSAwIDAgMSAuNS40djcuMWEuNS41IDAgMCAxLTEgLjA5VjkuNWMwLS4yOC4yMi0uNS41LS41Wm0zLTJhLjUuNSAwIDAgMSAuNS40MXY5LjA5YS41LjUgMCAwIDEtMSAuMDlWNy41YzAtLjI3LjIyLS41LjUtLjVaTTQuOTYgMi43YS43LjcgMCAwIDAtMS4yNy0uNEwxLjEzIDUuOUEuNy43IDAgMCAwIDEuNyA3aDIuMjZ2LjVhLjUuNSAwIDEgMCAxIDBWN2guNTRhLjUuNSAwIDAgMCAwLTFoLS41NFYyLjdabS0xIC45NFY2SDIuMjhsMS42OC0yLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXI1R0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcjVHRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNSAzaC0uMjVDOC41NiAzIDggMy41NiA4IDQuMjV2MS41YTEuMjUgMS4yNSAwIDAgMCAyLjUgMGgtMWEuNS41IDAgMCAxIDAtMUgxMWMuMjggMCAuNS4yMi41LjV2LjVhMi4yNSAyLjI1IDAgMCAxLTQuNSAwdi0xLjVDNyAzLjAxIDggMiA5LjI1IDJoLjI1Yy4wMyAwIDEuMTIgMCAxLjY1IDEuMDJhLjUuNSAwIDEgMS0uODkuNDYuODYuODYgMCAwIDAtLjQ4LS40MkM5LjYzIDMuMDEgOS41MSAzIDkuNSAzWk00Ljc1IDEzYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMTF2LTIuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMTF2LTQuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Ni41YS43NS43NSAwIDAgMS0xLjUuMTFWOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY4LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMVY3Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzcgMCAuNjguMjcuNzQuNjNsLjAxLjEtLjAxIDEwLjUyYS43NC43NCAwIDAgMS0xLjQ4LjEybC0uMDEtLjEuMDEtMTAuNTJjMC0uNDEuMzMtLjc1Ljc0LS43NVptLTE0LTNhLjUuNSAwIDAgMC0uNS40NGwtLjI1IDJhLjUuNSAwIDAgMCAuNTQuNTZsLjE4LS4wMiAxLjM3LS4xMWMuNDktLjA0LjkxLjM1LjkxLjg0di4yMkM1IDYuNTIgNC41MiA3IDMuOTMgN2EuOTguOTggMCAwIDEtLjc1LS4zMiAxLjIzIDEuMjMgMCAwIDEtLjItLjNsLS4wMS0uMDJhLjUuNSAwIDAgMC0uOTQuMzZsLjAxLjAyYTEuNDQgMS40NCAwIDAgMCAuMS4yQTEuOTggMS45OCAwIDAgMCAzLjkzIDhDNS4wNyA4IDYgNy4wNyA2IDUuOTNWNS43YzAtMS4wOC0uOTItMS45My0yLTEuODRsLS45My4wOEwzLjIgM0g1LjVhLjUuNSAwIDAgMCAwLTFIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyNUdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyNUdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNSAzaC0uMjVDOC41NiAzIDggMy41NiA4IDQuMjV2MS41YTEuMjUgMS4yNSAwIDAgMCAyLjUgMGgtMWEuNS41IDAgMCAxIDAtMUgxMWMuMjggMCAuNS4yMi41LjV2LjVhMi4yNSAyLjI1IDAgMCAxLTQuNSAwdi0xLjVDNyAzLjAxIDggMiA5LjI1IDJoLjI1Yy4wMyAwIDEuMTIgMCAxLjY1IDEuMDJhLjUuNSAwIDEgMS0uODkuNDYuODYuODYgMCAwIDAtLjQ4LS40MkM5LjYzIDMuMDEgOS41MSAzIDkuNSAzWm03IDJhLjUuNSAwIDAgMSAuNS40MXYxMS4xYS41LjUgMCAwIDEtLjk5LjA4VjUuNWMwLS4yOC4yMi0uNS41LS41Wm0tOSA2YS41LjUgMCAwIDEgLjUuNDF2NS4wOWEuNS41IDAgMCAxLS45OS4wOVYxMS41YzAtLjI4LjIyLS41LjUtLjVabS0zIDJhLjUuNSAwIDAgMSAuNS40MXYzLjA5YS41LjUgMCAwIDEtMSAuMDlWMTMuNWMwLS4yOC4yMi0uNS41LS41Wm02LTRhLjUuNSAwIDAgMSAuNS40djcuMWEuNS41IDAgMCAxLTEgLjA5VjkuNWMwLS4yOC4yMi0uNS41LS41Wm0zLTJhLjUuNSAwIDAgMSAuNS40MXY5LjA5YS41LjUgMCAwIDEtMSAuMDlWNy41YzAtLjI3LjIyLS41LjUtLjVaTTIuNzUgMmEuNS41IDAgMCAwLS41LjQ0bC0uMjUgMmEuNS41IDAgMCAwIC41NC41NmwuMTgtLjAyIDEuMzctLjExYy40OS0uMDQuOTEuMzUuOTEuODR2LjIyQzUgNi41MiA0LjUyIDcgMy45MyA3YS45OC45OCAwIDAgMS0uNzUtLjMyIDEuMjMgMS4yMyAwIDAgMS0uMi0uM2wtLjAxLS4wMmEuNS41IDAgMCAwLS45NC4zNmwuMDEuMDJhMS40NCAxLjQ0IDAgMCAwIC4xLjJBMS45OCAxLjk4IDAgMCAwIDMuOTMgOEM1LjA3IDggNiA3LjA3IDYgNS45M1Y1LjdjMC0xLjA4LS45Mi0xLjkzLTItMS44NGwtLjkzLjA4TDMuMiAzSDUuNWEuNS41IDAgMCAwIDAtMUgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGExRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgMTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYyLjVhLjc1Ljc1IDAgMCAxLTEuNS4xMXYtMi42MWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMXYtNC42MWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY2LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMVY4Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjguNWEuNzUuNzUgMCAwIDEtMS41LjExVjYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zNyAwIC42OC4yNy43NC42M2wuMDEuMS0uMDEgMTAuNTJhLjc0Ljc0IDAgMCAxLTEuNDguMTJsLS4wMS0uMS4wMS0xMC41MmMwLS40MS4zMy0uNzUuNzQtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhMVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSA0YS41LjUgMCAwIDEgLjUuNDFWMTUuNWEuNS41IDAgMCAxLS45OS4wOVY0LjVjMC0uMjguMjItLjUuNS0uNVptLTkgNmEuNS41IDAgMCAxIC41LjR2NS4xYS41LjUgMCAwIDEtLjk5LjA5di01LjFjMC0uMjcuMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjR2My4xYS41LjUgMCAwIDEtMSAuMDl2LTMuMWMwLS4yNy4yMi0uNS41LS41Wm02LTRhLjUuNSAwIDAgMSAuNS40djcuMWEuNS41IDAgMCAxLTEgLjA5di03LjFjMC0uMjcuMjItLjUuNS0uNVptMy0yYS41LjUgMCAwIDEgLjUuNDF2OS4wOWEuNS41IDAgMCAxLTEgLjA5VjYuNWMwLS4yNy4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGEyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgMTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYyLjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi0yLjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMXYtNC42YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjR2Ni42MWEuNzUuNzUgMCAwIDEtMS40OC4xMWwtLjAxLS4xMXYtNi41YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjR2OC42MWEuNzUuNzUgMCAwIDEtMS40OC4xMWwtLjAxLS4xMXYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGEyUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgMTBhLjUuNSAwIDAgMSAuNS40MXY1LjA5YS41LjUgMCAwIDEtLjk5LjA5VjEwLjVjMC0uMjguMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjQxdjMuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMi41YzAtLjI4LjIyLS41LjUtLjVabTYtNGEuNS41IDAgMCAxIC41LjR2Ny4xYS41LjUgMCAwIDEtMSAuMDlWOC41YzAtLjI4LjIyLS41LjUtLjVabTMtMmEuNS41IDAgMCAxIC41LjQxdjkuMDlhLjUuNSAwIDAgMS0xIC4wOVY2LjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhM0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDEyYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMXYtMi42YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTQuNmMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY2LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMVY4Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGEzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGEzUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgMTBhLjUuNSAwIDAgMSAuNS40MXY1LjA5YS41LjUgMCAwIDEtLjk5LjA5VjEwLjVjMC0uMjguMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjQxdjMuMWEuNS41IDAgMCAxLTEgLjA4VjEyLjVjMC0uMjguMjItLjUuNS0uNVptNi00YS41LjUgMCAwIDEgLjUuNHY3LjFhLjUuNSAwIDAgMS0xIC4wOVY4LjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhNEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDEyYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMTF2LTIuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMTF2LTQuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAxMGEuNS41IDAgMCAxIC41LjQxdjUuMDlhLjUuNSAwIDAgMS0uOTkuMDlWMTAuNWMwLS4yOC4yMi0uNS41LS41Wm0tMyAyYS41LjUgMCAwIDEgLjUuNDF2My4wOWEuNS41IDAgMCAxLTEgLjA5VjEyLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhNUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDEyYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMTF2LTIuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAxMmEuNS41IDAgMCAxIC41LjQxdjMuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMi41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhck9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDEwIDEwLjcxdjQuNjVhLjc1Ljc1IDAgMCAwIDEuNS0uMTF2LTMuMDRsMS41IDEuNVYxNS4zNmEuNzUuNzUgMCAwIDAgMS41LS4xMXYtLjA0bDIuNjUgMi42NGEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTMgMTAuODhWNi43NWEuNzUuNzUgMCAwIDEgMS41LS4xMXY1Ljc0bC0xLjUtMS41Wm00LjQ4IDQuNDhMMTYgMTMuODhsLjAxLTkuMTNhLjc0Ljc0IDAgMCAxIDEuNDgtLjEybC4wMS4xLS4wMSAxMC41Mi0uMDEuMVpNNS40OSAxMi42NGEuNzUuNzUgMCAwIDAtMS40OS4xMXYyLjYxYS43NS43NSAwIDAgMCAxLjUtLjExdi0yLjYxWm0zLTJhLjc1Ljc1IDAgMCAwLTEuNDkuMTF2NC42MWEuNzUuNzUgMCAwIDAgMS41LS4xMXYtNC42MVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhck9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0wxMCAxMC43MXY0Ljg4YS41LjUgMCAwIDAgMS0uMDl2LTMuOGwyIDJWMTUuNmEuNS41IDAgMCAwIDEtLjA5di0uOGwzLjE1IDMuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEzIDEwLjg4VjYuNWEuNS41IDAgMCAxIDEtLjA5djUuNDdsLTEtMVptMyAzVjQuNWEuNS41IDAgMCAxIDEtLjA5VjE0Ljg4bC0xLTFabS04LTMuNDdhLjUuNSAwIDAgMC0xIC4wOXY1bC4wMS4wOWEuNS41IDAgMCAwIDEtLjA5di01TDggMTAuNDFabS0zIDJhLjUuNSAwIDAgMC0xIC4wOXYzLjA5YS41LjUgMCAwIDAgMS0uMDl2LTMuMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcldhcm5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJXYXJuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgMTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYyLjVhLjc1Ljc1IDAgMCAxLTEuNS4xMXYtMi42MWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMXYtNC42MWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYzLjc5bC0xLjQ3IDIuOTNhLjc1Ljc1IDAgMCAxLS4wMi0uMWwtLjAxLS4xMnYtNi41YzAtLjQxLjM0LS43NS43NS0uNzVaTTEzIDkuNjhjLjQtLjQ1Ljk1LS42OCAxLjUtLjY4VjYuNjRhLjc1Ljc1IDAgMCAwLTEuNS4xMXYyLjkzWm0zLjMuNDMgMS4xOSAyLjM5LjAxLTcuNzZ2LS4xMWEuNzQuNzQgMCAwIDAtMS40OS4xMnY0LjkzYy4xLjEyLjIuMjcuMjguNDNabS0yLjcuNDQtMy41IDdBMSAxIDAgMCAwIDExIDE5aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMTIuNXYzYS41LjUgMCAxIDEtMSAwdi0zYS41LjUgMCAwIDEgMSAwWm0tLjUgNS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcldhcm5pbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgNGEuNS41IDAgMCAxIC41LjQxdjcuMTJsLS43LTEuNDJjLS4wOS0uMTctLjE5LS4zMS0uMy0uNDRWNC41YzAtLjI4LjIzLS41LjUtLjVaTTEwIDE1LjUzbDEtMlY4LjRhLjUuNSAwIDAgMC0xIC4xdjcuMDNabTMtNS44NWMuMjctLjMyLjYyLS41MiAxLS42MlY2LjQxYS41LjUgMCAwIDAtMSAuMXYzLjE3Wk03LjUgMTBhLjUuNSAwIDAgMSAuNS40djUuMWEuNS41IDAgMCAxLS45OS4wOXYtNS4xYzAtLjI3LjIyLS41LjUtLjVabS0zIDJhLjUuNSAwIDAgMSAuNS40djMuMWEuNS41IDAgMCAxLTEgLjA5di0zLjFjMC0uMjcuMjItLjUuNS0uNVptOS4xLTEuNDUtMy41IDdBMSAxIDAgMCAwIDExIDE5aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMTIuNXYzYS41LjUgMCAwIDEtMSAwdi0zYS41LjUgMCAwIDEgMSAwWm0tLjUgNS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2VudGVySG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZW50ZXJIb3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAxOGEuNS41IDAgMCAxLS41LS41di0xNWEuNS41IDAgMCAxIDEgMHYxNWEuNS41IDAgMCAxLS41LjVaXCIsIFwiTTE2IDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk05IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VudGVySG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VudGVySG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDE4YS41LjUgMCAwIDEtLjUtLjV2LTE1YS41LjUgMCAwIDEgMSAwdjE1YS41LjUgMCAwIDEtLjUuNVpcIiwgXCJNMTYgMTcuNWEuNS41IDAgMCAwIDEgMHYtMTVhLjUuNSAwIDAgMC0xIDB2MTVaXCIsIFwiTTkgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDlaTTggNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDZW50ZXJWZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZW50ZXJWZXJ0aWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjUgM2EuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaTTIgMTYuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wk02IDdhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VudGVyVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbnRlclZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDMuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wk0yLjUgMTZhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wk02IDdhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMkg2Wk01IDlhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VydGlmaWNhdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VydGlmaWNhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzYTIgMiAwIDAgMC0yIDJ2My42N2E0LjUgNC41IDAgMSAxIDcgNS42NlYxNWg3YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDRabTEuNSA0YS41LjUgMCAwIDEgMC0xaDlhLjUuNSAwIDAgMSAwIDFoLTlabTUuNSAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSAxNWEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1ptLTIuNS4yNGE0LjQ4IDQuNDggMCAwIDAgNSAwVjE4YS41LjUgMCAwIDEtLjguNGwtMS40LTEuMDVhLjUuNSAwIDAgMC0uNiAwTDMuOCAxOC40QS41LjUgMCAwIDEgMyAxOHYtMi43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENlcnRpZmljYXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAzYTIgMiAwIDAgMC0yIDJ2My42N2MuMjktLjM1LjYyLS42NiAxLS45MVY1YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIOS4yNGwtLjI0LjMzVjE1aDdhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINFptMSAzLjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabS41IDguNWEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1ptLTIuNS4yNGE0LjQ4IDQuNDggMCAwIDAgNSAwVjE4YS41LjUgMCAwIDEtLjguNGwtMS40LTEuMDVhLjUuNSAwIDAgMC0uNiAwTDMuOCAxOC40QS41LjUgMCAwIDEgMyAxOHYtMi43NlpNMTAuNSAxMGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzYTIuNSAyLjUgMCAwIDAtMi4zIDEuNTJsLjMtLjAyQTIgMiAwIDEgMSAzIDguNDR2Ni4wNkEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNyA4LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWm0tNC01LjVhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDUuNWExIDEgMCAwIDAtMSAxIDEgMSAwIDEgMCAxLTFabTAtMWMtLjEgMC0uMiAwLS4zLjAyQTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNVY4LjQ0YTIgMiAwIDAgMCAxIDB2Ni4wNmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTljLS41MSAwLS45Ny4yNi0xLjI0LjY1YTIgMiAwIDAgMC0uNzYtLjE1Wm0zLjUgNGMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNhMi41IDIuNSAwIDAgMC0yLjMgMS41MmwuMy0uMDJBMiAyIDAgMSAxIDMgOC40NHY2LjA2QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWE1LjQ4IDUuNDggMCAwIDEgMC01SDcuNWEuNS41IDAgMCAxIDAtMWgyLjc2QTUuNDkgNS40OSAwIDAgMSAxNyA5LjZWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLTMuNS0zYTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptMTUuNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDQuNWMtLjEgMC0uMiAwLS4zLjAyQTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjUxIDAtLjk3LjI2LTEuMjQuNjVhMiAyIDAgMCAwLS43Ni0uMTVaTTkuMiAxNmMuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjguNDRhMiAyIDAgMCAwIDEgMHY2LjA2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN1ptLjQtNGMuMTgtLjM2LjQtLjcuNjYtMUg3LjVhLjUuNSAwIDAgMCAwIDFoMi4xWk0zLjUgNS41YTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptNCAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWxlcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNhMi41IDIuNSAwIDAgMC0yLjMgMS41MmwuMy0uMDJBMiAyIDAgMSAxIDMgOC40NHY2LjA2QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWE1LjQ4IDUuNDggMCAwIDEgMC01SDcuNWEuNS41IDAgMCAxIDAtMWgyLjc2QTUuNDkgNS40OSAwIDAgMSAxNyA5LjZWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLTMuNS0zYTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptMTUuNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNi41IDEzYTIgMiAwIDEgMC00IDB2MS44bC0uMzUuMzVhLjUuNSAwIDAgMCAuMzUuODVoNGEuNS41IDAgMCAwIC4zNS0uODVsLS4zNS0uMzZWMTNabS0zLjQxIDRhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFsZXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgNC41Yy0uMSAwLS4yIDAtLjMuMDJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Yy0uNTEgMC0uOTcuMjYtMS4yNC42NWEyIDIgMCAwIDAtLjc2LS4xNVpNOS4yIDE2Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOC40NGEyIDIgMCAwIDAgMSAwdjYuMDZjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Wm0uNC00Yy4xOC0uMzYuNC0uNy42Ni0xSDcuNWEuNS41IDAgMCAwIDAgMWgyLjFaTTMuNSA1LjVhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm00IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNi41IDEzYTIgMiAwIDEgMC00IDB2MS44bC0uMzUuMzVhLjUuNSAwIDAgMCAuMzUuODVoNGEuNS41IDAgMCAwIC4zNS0uODVsLS4zNS0uMzZWMTNabS0zLjQxIDRhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBcnJvd0xlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM2EyLjUgMi41IDAgMCAwLTIuMyAxLjUybC4zLS4wMkEyIDIgMCAxIDEgMyA4LjQ0djYuMDZBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYTUuNDggNS40OCAwIDAgMSAwLTVINy41YS41LjUgMCAwIDEgMC0xaDIuNzZBNS40OSA1LjQ5IDAgMCAxIDE3IDkuNlY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTcgOC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0tMy41LTNhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm0xNS41IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS02Ljg1LS4zNWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFycm93TGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDQuNWMtLjEgMC0uMiAwLS4zLjAyQTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjUxIDAtLjk3LjI2LTEuMjQuNjVhMiAyIDAgMCAwLS43Ni0uMTVaTTkuMiAxNmMuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjguNDRhMiAyIDAgMCAwIDEgMHY2LjA2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN1ptLjQtNGMuMTgtLjM2LjQtLjcuNjYtMUg3LjVhLjUuNSAwIDAgMCAwIDFoMi4xWk0zLjUgNS41YTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptNCAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM2EyLjUgMi41IDAgMCAwLTIuMyAxLjUybC4zLS4wMkEyIDIgMCAxIDEgMyA4LjQ0djYuMDZBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYTUuNDggNS40OCAwIDAgMSAwLTVINy41YS41LjUgMCAwIDEgMC0xaDIuNzZBNS40OSA1LjQ5IDAgMCAxIDE3IDkuNlY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTcgOC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0tMy41LTNhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm0xNS41IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbERpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgNC41Yy0uMSAwLS4yIDAtLjMuMDJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Yy0uNTEgMC0uOTcuMjYtMS4yNC42NWEyIDIgMCAwIDAtLjc2LS4xNVpNOS4yIDE2Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOC40NGEyIDIgMCAwIDAgMSAwdjYuMDZjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Wm0uNC00Yy4xOC0uMzYuNC0uNy42Ni0xSDcuNWEuNS41IDAgMCAwIDAgMWgyLjFaTTMuNSA1LjVhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm00IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxTaGFyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU2hhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g1QTIuNSAyLjUgMCAwIDEgMTMgNS41YS41LjUgMCAwIDEtMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUM0LjY3IDQgNCA0LjY3IDQgNS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoNC41MWEyLjI1IDIuMjUgMCAxIDEgLjEyIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxMC41di01Wk03LjUgMTRhLjUuNSAwIDAgMC0uNS41QTIuNSAyLjUgMCAwIDAgOS41IDE3aDVhMi41IDIuNSAwIDAgMCAyLjUtMi41di01QTIuNSAyLjUgMCAwIDAgMTQuNSA3SDkuODdBMi4yNSAyLjI1IDAgMSAwIDEwIDhoNC41MWMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDggMTQuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU2hhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoNUEyLjUgMi41IDAgMCAxIDEzIDUuNWEuNS41IDAgMCAxLTEgMGMwLS44My0uNjctMS41LTEuNS0xLjVoLTVDNC42NyA0IDQgNC42NyA0IDUuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNTFhMi4yNSAyLjI1IDAgMSAxIC4xMiAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTAuNXYtNVptOCA2Ljc1YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDBaTTcuNSAxNGEuNS41IDAgMCAwLS41LjVBMi41IDIuNSAwIDAgMCA5LjUgMTdoNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNC41IDdIOS44N0EyLjI1IDIuMjUgMCAxIDAgMTAgOGg0LjUxYy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgOCAxNC41YS41LjUgMCAwIDAtLjUtLjVabS4yNS03LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxTdWJ0cmFjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU3VidHJhY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yIDQuNTJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWE1LjQ4IDUuNDggMCAwIDAtNi43NCAxLjRINy41YS41LjUgMCAwIDAgMCAxaDIuMWE1LjQ4IDUuNDggMCAwIDAgMCA1SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVY4LjQ0YTIgMiAwIDEgMCAuMi0zLjkyWk03LjUgOGEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0zIDUuNjNhMSAxIDAgMSAxIDEgMS43MyAxIDEgMCAwIDEtMS0xLjczWk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0yLTRoLTRhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxTdWJ0cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFN1YnRyYWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjIgNC41MmEyLjAyIDIuMDIgMCAwIDEgMS4wNi4xM0M0LjUzIDQuMjUgNSA0IDUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2My43Yy4zNS4xLjY4LjI0IDEgLjRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05YTIuNSAyLjUgMCAwIDAtMi4zIDEuNTJaTTkuNiAxN2MtLjE2LS4zMi0uMy0uNjUtLjQtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWOC40NGEyIDIgMCAwIDEtMSAwdjYuMDZBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xWm0wLTVjLjE4LS4zNi40LS43LjY2LTFINy41YS41LjUgMCAwIDAgMCAxaDIuMVpNMyA1LjYzYTEgMSAwIDAgMSAxIDAgMSAxIDAgMSAxLTEgMFpNNyA4LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTItNGgtNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydE11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1IDExYzAtLjM2LjEtLjcuMjctMUgxMC41QTEuNSAxLjUgMCAwIDEgOSA4LjVWMi4wMmE3LjUgNy41IDAgMCAwIDAgMTQuOTZWMTVhMiAyIDAgMCAxIDMtMS43M1YxM2EyIDIgMCAwIDEgMy0xLjczVjExWm0tNS04Ljk4VjguNWMwIC4yOC4yMi41LjUuNWg2LjQ4QTcuNSA3LjUgMCAwIDAgMTAgMi4wMlpNMTYgMTFhMSAxIDAgMSAxIDIgMHY3YTEgMSAwIDEgMS0yIDB2LTdabS02IDRhMSAxIDAgMSAxIDIgMHYzYTEgMSAwIDEgMS0yIDB2LTNabTMtMmExIDEgMCAxIDEgMiAwdjVhMSAxIDAgMSAxLTIgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXJ0TXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXJ0TXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgOS41YTYuNSA2LjUgMCAwIDAgNiA2LjQ4djFBNy41IDcuNSAwIDEgMSAxNi45OCA5YTIgMiAwIDAgMC0xLjcxIDFIMTAuNUExLjUgMS41IDAgMCAxIDkgOC41VjMuMDJBNi41IDYuNSAwIDAgMCAzIDkuNVpNMTUuOTggOUE2LjUgNi41IDAgMCAwIDEwIDMuMDJWOC41YzAgLjI4LjIyLjUuNS41aDUuNDhabS4wMiAyYTEgMSAwIDEgMSAyIDB2N2ExIDEgMCAxIDEtMiAwdi03Wm0tNiA0YTEgMSAwIDEgMSAyIDB2M2ExIDEgMCAxIDEtMiAwdi0zWm0zLTJhMSAxIDAgMSAxIDIgMHY1YTEgMSAwIDEgMS0yIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFydFBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydFBlcnNvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMSAwLTEgMFYzSDQuNzVBMi43NSAyLjc1IDAgMCAwIDIgNS43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTVoMS44MmwtMS40OSAyLjIzYS41LjUgMCAwIDAgLjg0LjU1TDcuNzcgMTVIMTEuNWEyLjUgMi41IDAgMCAxIDEuNzctLjk5QTIuOTkgMi45OSAwIDAgMSAxNS41IDlhMyAzIDAgMCAxIDIuNSAxLjM0VjUuNzVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDNIMTAuNXYtLjVaTTUgNi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVptMC0yLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVptMTIgMy41YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFydFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhcnRQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjLjI4IDAgLjUuMjIuNS41VjNoNC43NUEyLjc1IDIuNzUgMCAwIDEgMTggNS43NXY0LjZjLS4yNi0uNC0uNi0uNzItMS0uOTVWNS43NWMwLS42NS0uMzUtMS4yMi0uODgtMS41MmwtLjAyLS4wMWExLjc0IDEuNzQgMCAwIDAtLjg1LS4yMkg0Ljc1QzMuNzggNCAzIDQuNzggMyA1Ljc1djYuNTVjLjAzLjk0LjggMS43IDEuNzUgMS43aDguNTFsLjAxLjAxYTIuNSAyLjUgMCAwIDAtMS43Ny45OUg3Ljc3bC0xLjg1IDIuNzhhLjUuNSAwIDEgMS0uODQtLjU1TDYuNTcgMTVINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMi4yNXYtNi41QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDNIOS41di0uNWMwLS4yOC4yMi0uNS41LS41Wk01IDYuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptLjUgNC41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTUgOWMwLS4yNy4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVBLjUuNSAwIDAgMSA1IDlabTEyLjUgM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTMuNjEgMTUuMTRsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabS41IDlINy40MWEuNS41IDAgMCAwIDAgMUgxMC41OWEuNS41IDAgMCAwIDAtMWgtLjA5Wm0yLTNINy40MWEuNS41IDAgMCAwIDAgMWg1LjE4YS41LjUgMCAwIDAgMC0xaC0uMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMS0zLjYxIDE1LjE0bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm0wIDFhNyA3IDAgMCAwLTYuMSAxMC40Mi41LjUgMCAwIDEgLjA2LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0QTcgNyAwIDEgMCAxMCAzWm0uNSA4YS41LjUgMCAwIDEgLjA5IDFINy41YS41LjUgMCAwIDEtLjA5LTFoMy4wOVptMi0zYS41LjUgMCAwIDEgLjA5IDFINy41YS41LjUgMCAwIDEtLjA5LTFoNS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMS0zLjYxIDE1LjE0bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wk02LjUgOS41YS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMCAwIDEgMHYtM2gzYS41LjUgMCAwIDAgMC0xaC0zdi0zYS41LjUgMCAwIDAtMSAwdjNoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgOS41YS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMCAwIDEgMHYtM2gzYS41LjUgMCAwIDAgMC0xaC0zdi0zYS41LjUgMCAwIDAtMSAwdjNoLTNaTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNkE4IDggMCAwIDAgMTggMTBaTTMgMTBhNyA3IDAgMSAxIDMuNTggNi4xbC0uMDktLjAzLS4xLS4wMmEuNS41IDAgMCAwLS4xOCAwbC0zLjAyLjc2Ljc1LTMuMDIuMDItLjFhLjUuNSAwIDAgMC0uMDctLjI3QTYuOTcgNi45NyAwIDAgMSAzIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93QmFja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMCAxIDggOC4yNUE1LjUgNS41IDAgMCAwIDEwLjI2IDE4YTcuOTMgNy45MyAwIDAgMS0zLjg3LS44NWwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFptNC41IDE3YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1IDUuNSA1LjUgMCAwIDAtMS4wMS0uNjYgNyA3IDAgMSAwLTEzLjEgMy44My41LjUgMCAwIDEgLjA3LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0Yy45Mi41MSAxLjk0LjgyIDMuMDEuODguMTkuMzYuNC43LjY2IDFhNy45MyA3LjkzIDAgMCAxLTMuODYtLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm00LjUgMTdhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrRG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAxMGE4IDggMCAxIDAtMTYgMHYuMzVsLjAzLjM4Yy4xIDEuMDEuMzggMS45OS44MyAyLjg5bC4wNi4xMi0uOSAzLjY0LS4wMi4wOHYuMDhjLjAzLjMuMzEuNTIuNjIuNDVsMy42NS0uOTEuMTIuMDZhNy45NyA3Ljk3IDAgMCAwIDMuODYuODZBNS41IDUuNSAwIDAgMSAxOCAxMC4yNkwxOCAxMFptLTMuNSAwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0tLjkgNi40LS45LS45aDEuNTVBMi43NSAyLjc1IDAgMCAwIDE3IDEyLjc1di0uMjVhLjUuNSAwIDAgMC0xIDB2LjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMS41NGwuOS0uOWEuNS41IDAgMCAwLS43MS0uN2wtMS43NiAxLjc1YS41LjUgMCAwIDAgMCAuN2wxLjc2IDEuNzVhLjUuNSAwIDAgMCAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2tEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1IDUuNSA1LjUgMCAwIDAtMS4wMS0uNjYgNyA3IDAgMSAwLTEzLjEgMy44My41LjUgMCAwIDEgLjA3LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0Yy45Mi41MSAxLjk0LjgyIDMuMDEuODguMTkuMzYuNC43LjY2IDFhNy45MyA3LjkzIDAgMCAxLTMuODYtLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm00LjUgOGE0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptLS45IDYuNC0uOS0uOWgxLjU1QTIuNzUgMi43NSAwIDAgMCAxNyAxMi43NXYtLjI1YS41LjUgMCAwIDAtMSAwdi4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTEuNTRsLjktLjlhLjUuNSAwIDAgMC0uNzEtLjdsLTEuNzYgMS43NWEuNS41IDAgMCAwIDAgLjdsMS43NiAxLjc1YS41LjUgMCAwIDAgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dEb3VibGVCYWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBcnJvd0RvdWJsZUJhY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1QTUuNSA1LjUgMCAwIDAgMTAuMjYgMThhNy45MyA3LjkzIDAgMCAxLTMuODctLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm05IDEyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS01LjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1Wm0xLjg2LjY1LjY0LS42NWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIMTd2LjVhLjUuNSAwIDAgMCAxIDBWMTVhMSAxIDAgMCAwLTEtMWgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93RG91YmxlQmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93RG91YmxlQmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1IDUuNSA1LjUgMCAwIDAtMS4wMS0uNjYgNyA3IDAgMSAwLTEzLjEgMy44My41LjUgMCAwIDEgLjA3LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0Yy45Mi41MSAxLjk0LjgyIDMuMDEuODguMTkuMzYuNC43LjY2IDFhNy45MyA3LjkzIDAgMCAxLTMuODYtLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm05IDEyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS01LjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1Wm0xLjg2LjY1LjY0LS42NWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIMTd2LjVhLjUuNSAwIDAgMCAxIDBWMTVhMSAxIDAgMCAwLTEtMWgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEJ1YmJsZXNRdWVzdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QnViYmxlc1F1ZXN0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAxYTYuNSA2LjUgMCAwIDAtNS42OCA5LjY3bC0uOCAyLjA4YTEgMSAwIDAgMCAxLjIxIDEuMzJsMi40OS0uN0E2LjUgNi41IDAgMSAwIDguNSAxWm0wIDMuOWMtLjM3LjA3LS43Ni4zLTEuMDcuODVhLjUuNSAwIDEgMS0uODctLjVBMi41NyAyLjU3IDAgMCAxIDguMyAzLjkyYy42NS0uMTMgMS4zLjA0IDEuOC4zNi40OC4zMi44Ny44NC44OCAxLjQ3LjAxLjY2LS4zOSAxLjI1LTEuMTIgMS42OC0uNS4zLS43LjUtLjc3LjYzLS4wNy4xMS0uMS4yMS0uMS40NGEuNS41IDAgMCAxLTEgMGMwLS4yNy4wMi0uNjEuMjUtLjk3LjItLjM0LjU2LS42NCAxLjExLS45Ni41NC0uMzIuNjMtLjYyLjYzLS44IDAtLjItLjE0LS40Ni0uNDQtLjY1LS4zLS4yLS42OC0uMy0xLjA1LS4yMlptLjI1IDYuNmEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVabS0yLjIxIDMuMjRhNi40OSA2LjQ5IDAgMCAwIDcuNyAxLjY0bDIuNDkuN2ExIDEgMCAwIDAgMS4yLTEuMzNsLS44LTIuMDhhNi40NyA2LjQ3IDAgMCAwLTEuMzctOC4wNGMuMTUuNTYuMjMgMS4xNS4yNCAxLjc2YTUuNDcgNS40NyAwIDAgMSAuMTYgNS45OGwtLjEzLjIuOTcgMi41NC0yLjg2LS44LS4xOC4wOUE1LjQ3IDUuNDcgMCAwIDEgOC4zIDE1YTcuNSA3LjUgMCAwIDEtMS43NS0uMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QnViYmxlc1F1ZXN0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QnViYmxlc1F1ZXN0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgNC45Yy0uMzcuMDctLjc2LjMtMS4wNy44NWEuNS41IDAgMSAxLS44Ny0uNUEyLjU3IDIuNTcgMCAwIDEgOC4zIDMuOTJjLjY1LS4xMyAxLjMuMDQgMS44LjM2LjQ4LjMyLjg3Ljg0Ljg4IDEuNDcuMDEuNjYtLjM5IDEuMjUtMS4xMiAxLjY4LS41LjMtLjcuNS0uNzcuNjMtLjA3LjExLS4xLjIxLS4xLjQ0YS41LjUgMCAwIDEtMSAwYzAtLjI3LjAyLS42MS4yNS0uOTcuMi0uMzQuNTYtLjY0IDEuMTEtLjk2LjU0LS4zMi42My0uNjIuNjMtLjggMC0uMi0uMTQtLjQ2LS40NC0uNjUtLjMtLjItLjY4LS4zLTEuMDUtLjIyWm0uMjUgNi42YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOC41IDFhNi41IDYuNSAwIDAgMC01LjY4IDkuNjdsLS44IDIuMDhhMSAxIDAgMCAwIDEuMjEgMS4zMmwyLjQ5LS43QTYuNSA2LjUgMCAxIDAgOC41IDFaTTMgNy41YTUuNSA1LjUgMCAxIDEgMyA0LjlsLS4xOC0uMDktMi44Ni44Ljk3LTIuNTMtLjEzLS4yMUE1LjQ3IDUuNDcgMCAwIDEgMyA3LjVabTguNDYgOS41YTYuNDkgNi40OSAwIDAgMS00LjkyLTIuMjYgNy41IDcuNSAwIDAgMCAxLjc1LjI2IDUuNDcgNS40NyAwIDAgMCA1LjY3LjRsLjE4LS4wOSAyLjg2LjgtLjk3LTIuNTMuMTMtLjIxQTUuNDcgNS40NyAwIDAgMCAxNiA3LjM5Yy0uMDEtLjYtLjEtMS4yLS4yNC0xLjc2YTYuNDggNi40OCAwIDAgMSAxLjM4IDguMDRsLjggMi4wOGExIDEgMCAwIDEtMS4yMSAxLjMybC0yLjQ5LS43Yy0uODQuNC0xLjc4LjYzLTIuNzguNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0Q3Vyc29yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRDdXJzb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAxYTYgNiAwIDAgMC01LjI3IDguODdsLS43MSAyLjVhLjUuNSAwIDAgMCAuNjQuNkw1IDEyLjJhNS45NyA1Ljk3IDAgMCAwIDQgLjczVjguNzVjMC0xLjUgMS43NC0yLjMgMi44OC0xLjM0bDEuOCAxLjUzQTYgNiAwIDAgMCA4IDFabTIgNy43NXY5YS43NS43NSAwIDAgMCAxLjM3LjQybDEuOTgtMi45NWEuNS41IDAgMCAxIC40Mi0uMjJoMy40OGMuNyAwIDEuMDItLjg3LjQ5LTEuMzJsLTYuNS01LjVhLjc1Ljc1IDAgMCAwLTEuMjQuNTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0Q3Vyc29yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0Q3Vyc29yUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDUgMTIuMmE1Ljk3IDUuOTcgMCAwIDAgNCAuNzNWMTEuOWE1LjAyIDUuMDIgMCAwIDEtMy42Ny0uNjcuNS41IDAgMCAwLS40My0uMDZsLTEuNjYuNTYuNTEtMS43OWEuNS41IDAgMCAwLS4wNS0uMzkgNSA1IDAgMSAxIDkuMTUtMS4zMmwuODMuN0E2IDYgMCAwIDAgOCAxWm0yIDcuNzV2OWEuNzUuNzUgMCAwIDAgMS4zNy40MmwxLjk4LTIuOTVhLjUuNSAwIDAgMSAuNDItLjIyaDMuNDhjLjcgMCAxLjAyLS44Ny40OS0xLjMybC02LjUtNS41YS43NS43NSAwIDAgMC0xLjI0LjU3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdERpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdERpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDB2LjM1bC4wMy4zOGMuMSAxLjAxLjM4IDEuOTkuODMgMi44OWwuMDYuMTItLjkgMy42NC0uMDIuMDh2LjA4Yy4wMy4zLjMxLjUyLjYyLjQ1bDMuNjUtLjkxLjEyLjA2QTggOCAwIDAgMCAxOCAxMFpNNy44NSA3LjE1IDEwIDkuMjlsMi4xNS0yLjE0YS41LjUgMCAwIDEgLjcuN0wxMC43MSAxMGwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEwIDEwLjcxbC0yLjE1IDIuMTRhLjUuNSAwIDAgMS0uNy0uN0w5LjI5IDEwIDcuMTUgNy44NWEuNS41IDAgMSAxIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdERpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXREaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk03Ljg1IDcuMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTIuMTQgMi4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMi4xNSAyLjE0YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgMTBsMi4xNC0yLjE1YS41LjUgMCAwIDAtLjctLjdMMTAgOS4yOSA3Ljg1IDcuMTVaTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNkE4IDggMCAwIDAgMTggMTBaTTMgMTBhNyA3IDAgMSAxIDMuNTggNi4xbC0uMDktLjAzLS4xLS4wMmEuNS41IDAgMCAwLS4xOCAwbC0zLjAyLjc2Ljc1LTMuMDIuMDItLjFhLjUuNSAwIDAgMC0uMDctLjI3QTYuOTcgNi45NyAwIDAgMSAzIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEVtcHR5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRFbXB0eUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAxMGE4IDggMCAxIDAtMTYgMHYuMzVsLjAzLjM4Yy4xIDEuMDEuMzggMS45OS44MyAyLjg5bC4wNi4xMi0uOSAzLjY0LS4wMi4wOHYuMDhjLjAzLjMuMzEuNTIuNjIuNDVsMy42NS0uOTEuMTIuMDZBOCA4IDAgMCAwIDE4IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEVtcHR5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RW1wdHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTMuNjEgMTUuMTRsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTAgMWE3IDcgMCAwIDAtNi4xIDEwLjQyLjUuNSAwIDAgMSAuMDYuMjhsLS4wMi4xLS43NSAzLjAxIDMuMDItLjc1YS41LjUgMCAwIDEgLjE5LS4wMWwuMDkuMDIuMDkuMDRBNyA3IDAgMSAwIDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0SGVscEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0SGVscEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSA0LjI2IDcuMDdMMi42MiAxOGEuNS41IDAgMCAxLS42LS42MWwuOS0zLjY0QTcuOTcgNy45NyAwIDAgMSAyIDEwWm03LjI1LTIuN2MuMTUtLjE3LjM5LS4zLjc1LS4zcy42LjEzLjc1LjNjLjE2LjIuMjUuNDQuMjUuNyAwIC4zMi0uMDcuNTItLjE3LjY5LS4xLjE3LS4yMy4zLS40Mi41bC0uMDIuMDNjLS4xOS4yLS40Mi40NC0uNi43OC0uMTguMzUtLjI5Ljc2LS4yOSAxLjNhLjUuNSAwIDEgMCAxIDBjMC0uNC4wOC0uNjQuMTgtLjg0LjEtLjIuMjQtLjM1LjQzLS41NWwuMDQtLjA0Yy4xNy0uMTguMzgtLjQuNTUtLjY4LjE4LS4zMi4zLS43LjMtMS4xOWExLjk1IDEuOTUgMCAwIDAtMi0yIDEuOTUgMS45NSAwIDAgMC0yIDIgLjUuNSAwIDAgMCAxIDBjMC0uMjYuMDktLjUuMjUtLjdabTEuNDUgNi4yMWEuNy43IDAgMSAwLTEuNCAwIC43LjcgMCAwIDAgMS40IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0SGVscFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEhlbHBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMjUgNy4zYy0uMTYuMi0uMjUuNDQtLjI1LjdhLjUuNSAwIDAgMS0xIDAgMS45NSAxLjk1IDAgMCAxIDItMiAxLjk1IDEuOTUgMCAwIDEgMiAyYzAgLjQ5LS4xMi44Ny0uMyAxLjE5LS4xNy4yOC0uMzguNS0uNTUuNjhsLS4wNC4wNGMtLjE5LjItLjMzLjM1LS40My41NS0uMS4yLS4xOC40NS0uMTguODNhLjUuNSAwIDEgMS0xIDAgMi43MSAyLjcxIDAgMCAxIC44OS0yLjA3bC4wMi0uMDJjLjE5LS4yLjMyLS4zNC40Mi0uNTEuMS0uMTcuMTctLjM3LjE3LS42OSAwLS4yNi0uMDktLjUtLjI1LS43QS45NS45NSAwIDAgMCAxMCA3Yy0uMzYgMC0uNi4xMy0uNzUuM1ptLjc1IDYuOTFhLjcuNyAwIDEgMCAwLTEuNC43LjcgMCAwIDAgMCAxLjRaTTIgMTBhOCA4IDAgMSAxIDQuMjYgNy4wN0wyLjYyIDE4YS41LjUgMCAwIDEtLjYtLjYxbC45LTMuNjRBNy45NyA3Ljk3IDAgMCAxIDIgMTBabTgtN2E3IDcgMCAwIDAtNi4xIDEwLjQyLjUuNSAwIDAgMSAuMDQuMzdsLS43NSAzLjAyIDMuMDItLjc1YS41LjUgMCAwIDEgLjM3LjA1QTcgNyAwIDEgMCAxMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdExvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdExvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDB2LjM1bC4wMy4zOGMuMSAxLjAxLjM4IDEuOTkuODMgMi44OWwuMDYuMTItLjkgMy42NC0uMDIuMDh2LjA4Yy4wMy4zLjMxLjUyLjYyLjQ1bDMuNjUtLjkxLjEyLjA2YTcuOTcgNy45NyAwIDAgMCA0LjYxLjhWMTRhMiAyIDAgMCAxIDEuNS0xLjk0VjEyYTMgMyAwIDAgMSA1LjUtMS42N1YxMFptLTQuNSAydjFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdExvY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNmE3Ljk3IDcuOTcgMCAwIDAgNC42MS44di0xLjAxYTcuMDYgNy4wNiAwIDAgMS00LjQyLS44MmwtLjA5LS4wNC0uMS0uMDJhLjUuNSAwIDAgMC0uMTggMGwtMy4wMi43Ni43NS0zLjAyLjAyLS4xYS41LjUgMCAwIDAtLjA3LS4yNyA3IDcgMCAxIDEgMTMuMDgtNC4wNGMuNDEuMjQuNzYuNTYgMS4wMi45NUwxOCAxMFptLTQuNSAydjFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TWFpbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TWFpbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDdhNiA2IDAgMSAxIDMgNS4ybC0yLjM0Ljc3YS41LjUgMCAwIDEtLjY0LS42bC43MS0yLjVBNS45OCA1Ljk4IDAgMCAxIDIgN1ptNC41LTEuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0yIDJoLTJhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMVpcIiwgXCJtMTIuMjggMTQuOTUtMi40LTEuMmMuNDMtLjEzLjg2LS4yOSAxLjI2LS41bDEuMzYuNyA0LjUtMi4yNlYxMWExIDEgMCAwIDAtMS0xaC0xLjY3Yy4xNS0uMzIuMjgtLjY1LjM4LTFIMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0ydi0yLjA3Yy4zMy4wNS42Ni4wNyAxIC4wN3YyYTEgMSAwIDAgMCAxIDFoN2ExIDEgMCAwIDAgMS0xdi0zLjJsLTQuMjggMi4xNWEuNS41IDAgMCAxLS40NCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE1haWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNYWlsUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDZjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zQS41LjUgMCAwIDEgNiA2Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNOCAxYTYgNiAwIDAgMC01LjI3IDguODdsLS43MSAyLjVhLjUuNSAwIDAgMCAuNjQuNkw1IDEyLjJBNiA2IDAgMSAwIDggMVpNMyA3YTUgNSAwIDEgMSAyLjMzIDQuMjMuNS41IDAgMCAwLS40My0uMDZsLTEuNjYuNTYuNTEtMS43OWEuNS41IDAgMCAwLS4wNS0uMzlBNC45NyA0Ljk3IDAgMCAxIDMgN1ptOS4yOCA3Ljk1LTIuNC0xLjJjLjQzLS4xMy44Ni0uMjkgMS4yNi0uNWwxLjM2LjcgNC41LTIuMjZWMTFhMSAxIDAgMCAwLTEtMWgtMS42N2MuMTUtLjMyLjI4LS42NS4zOC0xSDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDlhMiAyIDAgMCAxLTItMnYtMi4wN2MuMzMuMDUuNjYuMDcgMSAuMDd2MmExIDEgMCAwIDAgMSAxaDdhMSAxIDAgMCAwIDEtMXYtMy4ybC00LjI4IDIuMTVhLjUuNSAwIDAgMS0uNDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41NCAyYTYuNSA2LjUgMCAwIDAtNS42OCA5LjY3bC0uOCAyLjA4YTEgMSAwIDAgMCAxLjIxIDEuMzJsMi40OS0uN0E2LjUgNi41IDAgMSAwIDguNTQgMlpNNi41NyAxNS43NGE2LjQ5IDYuNDkgMCAwIDAgNy43MSAxLjY0bDIuNDkuN2ExIDEgMCAwIDAgMS4yLTEuMzNsLS44LTIuMDhhNi40NyA2LjQ3IDAgMCAwLTEuMzctOC4wNGMuMTUuNTYuMjMgMS4xNS4yNCAxLjc2YTUuNDcgNS40NyAwIDAgMSAuMTYgNS45OGwtLjEzLjIuOTcgMi41NC0yLjg2LS44LS4xOC4wOWE1LjQ3IDUuNDcgMCAwIDEtNS42Ny0uNCA3LjUgNy41IDAgMCAxLTEuNzYtLjI2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNTQgMmE2LjUgNi41IDAgMCAwLTUuNjggOS42N2wtLjggMi4wOGExIDEgMCAwIDAgMS4yMSAxLjMybDIuNDktLjdBNi41IDYuNSAwIDEgMCA4LjU0IDJabS01LjUgNi41YTUuNSA1LjUgMCAxIDEgMyA0LjlsLS4xOC0uMDktMi44Ni44Ljk3LTIuNTMtLjEzLS4yMWE1LjQ3IDUuNDcgMCAwIDEtLjgtMi44N1pNMTEuNSAxOGE2LjQ5IDYuNDkgMCAwIDEtNC45My0yLjI2IDcuNSA3LjUgMCAwIDAgMS43Ni4yNiA1LjQ3IDUuNDcgMCAwIDAgNS42Ny40bC4xOC0uMDkgMi44Ni44LS45Ny0yLjUzLjEzLS4yMWE1LjQ3IDUuNDcgMCAwIDAtLjE2LTUuOThjLS4wMS0uNi0uMS0xLjItLjI0LTEuNzZhNi40OCA2LjQ4IDAgMCAxIDEuMzggOC4wNGwuOCAyLjA4YTEgMSAwIDAgMS0xLjIxIDEuMzJsLTIuNDktLjdjLS44NC40LTEuNzkuNjMtMi43OC42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZUhlYXJ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNdWx0aXBsZUhlYXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuMDQgOC41YTYuNSA2LjUgMCAxIDEgMy43MiA1Ljg4bC0yLjQ5LjdhMSAxIDAgMCAxLTEuMi0xLjMzbC44LTIuMDhhNi40NyA2LjQ3IDAgMCAxLS44My0zLjE3Wm0zLjUxLTIuMDFhMS45IDEuOSAwIDAgMCAwIDIuNjhMOC4zIDExLjljLjEyLjEyLjMuMTIuNDIgMGwyLjczLTIuNzNhMS45IDEuOSAwIDAgMC0yLjctMi42OWwtLjI1LjI3LS4yNy0uMjdhMS45IDEuOSAwIDAgMC0yLjY4IDBaTTExLjUgMThhNi40OSA2LjQ5IDAgMCAxLTQuOTMtMi4yNiA3LjUgNy41IDAgMCAwIDEuNzYuMjYgNS40NyA1LjQ3IDAgMCAwIDUuNjcuNGwuMTgtLjA5IDIuODYuOC0uOTctMi41My4xMy0uMjFhNS40NyA1LjQ3IDAgMCAwLS4xNi01Ljk4Yy0uMDEtLjYtLjEtMS4yLS4yNC0xLjc2YTYuNDggNi40OCAwIDAgMSAxLjM4IDguMDRsLjggMi4wOGExIDEgMCAwIDEtMS4yMSAxLjMybC0yLjQ5LS43Yy0uODQuNC0xLjc5LjYzLTIuNzguNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGVIZWFydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlSGVhcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNTUgNi40OWExLjkgMS45IDAgMCAxIDIuNjggMGwuMjcuMjcuMjYtLjI2YTEuOSAxLjkgMCAwIDEgMi42OSAyLjY4bC0yLjczIDIuNzNhLjMuMyAwIDAgMS0uNDIgMEw1LjU2IDkuMTdhMS45IDEuOSAwIDAgMSAwLTIuNjhaTTIuMDQgOC41YTYuNSA2LjUgMCAxIDEgMy43MiA1Ljg4bC0yLjQ5LjdhMSAxIDAgMCAxLTEuMi0xLjMzbC44LTIuMDhhNi40NyA2LjQ3IDAgMCAxLS44My0zLjE3Wk04LjU0IDNhNS41IDUuNSAwIDAgMC00LjcgOC4zN2wuMTMuMkwzIDE0LjEybDIuODYtLjguMTguMDlBNS41IDUuNSAwIDEgMCA4LjU0IDNaTTYuNTcgMTUuNzRhNi40OSA2LjQ5IDAgMCAwIDcuNzEgMS42NGwyLjQ5LjdhMSAxIDAgMCAwIDEuMi0xLjMzbC0uOC0yLjA4YTYuNDcgNi40NyAwIDAgMC0xLjM3LTguMDRjLjE1LjU2LjIzIDEuMTUuMjQgMS43NmE1LjQ3IDUuNDcgMCAwIDEgLjE2IDUuOThsLS4xMy4yLjk3IDIuNTQtMi44Ni0uOC0uMTguMDlhNS40NyA1LjQ3IDAgMCAxLTUuNjctLjQgNy41IDcuNSAwIDAgMS0xLjc2LS4yNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDQuNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN0w0LjcxIDQgMTYgMTUuM2wxLjg1IDEuODVhLjUuNSAwIDAgMS0uNy43TDE1LjI5IDE2YTcuOTcgNy45NyAwIDAgMS04LjkgMS4xNGwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBjMC0yLjAzLjc2LTMuODggMi01LjNabTYuOTcgNi45OC0uNjgtLjY4SDcuNDFhLjUuNSAwIDAgMCAwIDFIMTAuNTlhLjUuNSAwIDAgMCAuMzgtLjMyWk04LjI5IDlsLS45Ny0uOTdhLjUuNSAwIDAgMCAuMDkuOTZMNy41IDloLjhaXCIsIFwiTTEyLjUgOWgtMS4zOGw1LjUgNS41QTggOCAwIDAgMCA1LjUgMy4zOUwxMC4xMSA4SDEyLjZhLjUuNSAwIDAgMSAwIDFoLS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNC43IDIuMTUgMi44NmEuNS41IDAgMSAxIC43LS43TDQuNzEgNGwuNy43IDkuODggOS44OC43LjcxIDEuODYgMS44NmEuNS41IDAgMCAxLS43LjdMMTUuMjkgMTZhNy45NyA3Ljk3IDAgMCAxLTguOSAxLjE0bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGMwLTIuMDMuNzYtMy44OCAyLTUuM1ptMTAuNTggMTAuNi0zLjYxLTMuNjJhLjUuNSAwIDAgMS0uMzguMzFsLS4wOS4wMWgtM2EuNS41IDAgMCAxLS4wOS0xSDEwLjNsLTItMmgtLjhhLjUuNSAwIDAgMS0uMTgtLjk3TDQuNzEgNS40MmE2Ljk3IDYuOTcgMCAwIDAtLjgyIDggLjUuNSAwIDAgMSAuMDcuMjhsLS4wMi4xLS43NSAzLjAxIDMuMDItLjc1YS41LjUgMCAwIDEgLjE5LS4wMWwuMDkuMDIuMDkuMDRhNi45NyA2Ljk3IDAgMCAwIDgtLjgyWlwiLCBcIm0xNi42MiAxNC41LS43Mi0uNzNBNyA3IDAgMCAwIDYuMjMgNC4xbC0uNzMtLjcyQTggOCAwIDAgMSAxNi42MSAxNC41WlwiLCBcIk0xMi41IDloLTEuMzhsLTEtMWgyLjM4YS41LjUgMCAwIDEgLjA5IDFoLS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1QTUuNSA1LjUgMCAwIDAgMTAuMjYgMThhNy45MyA3LjkzIDAgMCAxLTMuODctLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm0yLjA3IDkuNDRhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNzMgNC43MyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNzMgNC43MyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTcgNyAwIDAgMC02LjEgMTAuNDIuNS41IDAgMCAxIC4wNC4zN2wtLjc1IDMuMDIgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMzcuMDVjLjkuNSAxLjkyLjgyIDMuMDEuODguMTkuMzYuNC43LjY2IDFhNy45MyA3LjkzIDAgMCAxLTMuOTktLjkyTDIuNjIgMThhLjUuNSAwIDAgMS0uNi0uNjFsLjktMy42NEE4IDggMCAxIDEgMTggMTAuMjZjLS4zLS4yNi0uNjQtLjQ4LTEtLjY3QTcgNyAwIDAgMCAxMCAzWm0yLjA3IDguNDRhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNzQgNC43NCAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNzMgNC43MyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRTcGFya2xlRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEyYy0uMjcgMC0uNTItLjA4LS43NC0uMjNhMS40IDEuNCAwIDAgMS0uNDgtLjYybC0uMjYtLjhhLjUyLjUyIDAgMCAwLS4xNC0uMjIuNjQuNjQgMCAwIDAtLjIyLS4xNGwtLjc3LS4yNWMtLjI3LS4xLS40OS0uMjYtLjY1LS40OGExLjMgMS4zIDAgMCAxLS4xMi0xLjMgMS4zMiAxLjMyIDAgMCAxLS40NS0uMjIgMS41MSAxLjUxIDAgMCAxLS41Mi0uNjlsLS4zNi0xLjA5YTEuMjcgMS4yNyAwIDAgMC0uMjktLjQ3IDEuMyAxLjMgMCAwIDAtLjQ3LS4zbC0xLjA2LS4zNEExLjQxIDEuNDEgMCAwIDEgMTAgMy41YTEuNCAxLjQgMCAwIDEgLjk1LTEuMzVsLjIyLS4wN0E4IDggMCAwIDAgMiAxMHYuMzVsLjAzLjM4Yy4xIDEuMDEuMzggMS45OS44MyAyLjg5bC4wNi4xMi0uOSAzLjY0LS4wMi4wOHYuMDhjLjAzLjMuMzEuNTIuNjIuNDVsMy42NS0uOTEuMTIuMDZhOCA4IDAgMCAwIDExLjM3LTUuMTZsLS4yNi4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTE3LjUgMTJjLS4yNiAwLS41MS0uMDgtLjczLS4yMmE3IDcgMCAwIDEtMTAuMiA0LjMzbC0uMDgtLjA0LS4xLS4wMmEuNS41IDAgMCAwLS4xOCAwbC0zLjAyLjc2Ljc1LTMuMDIuMDItLjFhLjUuNSAwIDAgMC0uMDctLjI3QTcgNyAwIDAgMSAxMC4xIDNhMS40MiAxLjQyIDAgMCAxIC44Ni0uODVsLjIyLS4wN0E4IDggMCAwIDAgMiAxMHYuMzVsLjAzLjM4Yy4xIDEuMDEuMzggMS45OS44MyAyLjg5bC4wNi4xMi0uOSAzLjY0LS4wMi4wOHYuMDhjLjAzLjMuMzEuNTIuNjIuNDVsMy42NS0uOTEuMTIuMDZhOCA4IDAgMCAwIDExLjM3LTUuMTZsLS4yNi4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRWaWRlb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0VmlkZW9GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDB2LjM1bC4wMy4zOGMuMSAxLjAxLjM4IDEuOTkuODMgMi44OWwuMDYuMTItLjkgMy42NC0uMDIuMDh2LjA4Yy4wMy4zLjMxLjUyLjYyLjQ1bDMuNjUtLjkxLjEyLjA2QTggOCAwIDAgMCAxOCAxMFpNNiA4YTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWOFptNy4xNS0uMTVhLjUuNSAwIDAgMSAuODUuMzZ2My41OGEuNS41IDAgMCAxLS44NS4zNkwxMiAxMVY5bDEuMTUtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRWaWRlb1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFZpZGVvUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDhhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY4Wm02IDEgMS4xNS0xLjE1YS41LjUgMCAwIDEgLjg1LjM2djMuNThhLjUuNSAwIDAgMS0uODUuMzZMMTIgMTFWOVptLTItN2E4IDggMCAxIDEtMy42MSAxNS4xNGwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFptMCAxYTcgNyAwIDAgMC02LjEgMTAuNDIuNS41IDAgMCAxIC4wNi4yOGwtLjAyLjEtLjc1IDMuMDEgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMTktLjAxbC4wOS4wMi4wOS4wNEE3IDcgMCAxIDAgMTAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRXYXJuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTMuNjEgMTUuMTRsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTAgMy41YS41LjUgMCAwIDAtLjUuNXY1LjVhLjUuNSAwIDAgMCAxIDBWNmEuNS41IDAgMCAwLS41LS41Wm0wIDlhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFdhcm5pbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMS0zLjYxIDE1LjE0bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm0wIDFhNyA3IDAgMCAwLTYuMSAxMC40Mi41LjUgMCAwIDEgLjA2LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0QTcgNyAwIDEgMCAxMCAzWm0wIDIuNWMuMjggMCAuNS4yMi41LjV2NS41YS41LjUgMCAwIDEtMSAwVjZjMC0uMjguMjItLjUuNS0uNVptMCA5YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1Ljg4IDVINGEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjcuMTJsLTQuNDQgNC40NGExLjUgMS41IDAgMCAxLTIuMTItMi4xMkwxNS44OCA1Wk00IDguNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVIOWEuNS41IDAgMCAxIDAgMUg0LjVhLjUuNSAwIDAgMS0uNS0uNVptMTMuODUtNS42NWEuNS41IDAgMCAwLS43LS43bC01IDVhLjUuNSAwIDAgMCAuNy43bDUtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggNy4xMlYxM2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY3YzAtMS4xLjktMiAyLTJoMTEuODhsLTEgMUg0YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWOC4xMmwxLTFaTTQgOC41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUg5YS41LjUgMCAwIDEgMCAxSDQuNWEuNS41IDAgMCAxLS41LS41Wm0xMy44NS02LjM1Yy4yLjIuMi41IDAgLjdsLTYgNmEuNS41IDAgMCAxLS43LS43bDYtNmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94MUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveDFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhjLjc3IDAgMS40Ny0uMjkgMi0uNzZ2LS44M2ExLjUgMS41IDAgMCAxLTEuNC0yLjYxbDItMS41Yy4xMi0uMS4yNi0uMTYuNC0uMjFWNmEzIDMgMCAwIDAtMy0zSDZabTcuODUgNC44NS01IDVhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjY1IDEuNjQgNC42NS00LjY0YS41LjUgMCAwIDEgLjcuN1ptMy44NyA0LjJhLjUuNSAwIDAgMSAuMjguNDV2NWEuNS41IDAgMCAxLTEgMHYtNGwtMS4yLjlhLjUuNSAwIDAgMS0uNi0uOGwyLTEuNWEuNS41IDAgMCAxIC41Mi0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveDFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94MVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhjLjc3IDAgMS40Ny0uMjkgMi0uNzZ2LS44M2MtLjIyLjA4LS40NC4xLS42Ny4wOEEyIDIgMCAwIDEgMTQgMTZINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NS43NWwuNi0uNDVjLjEyLS4xLjI2LS4xNi40LS4yMVY2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMOC41IDExLjc5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01Wm0zLjg3IDQuMmEuNS41IDAgMCAxIC4yOC40NXY1YS41LjUgMCAwIDEtMSAwdi00bC0xLjIuOWEuNS41IDAgMCAxLS42LS44bDItMS41YS41LjUgMCAwIDEgLjUyLS4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94MkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveDJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDcuMDVjLjA2LS4zLjE4LS42My40LTEgLjIzLS40LjU3LS44IDEuMDQtMS4yM2ExLjUgMS41IDAgMCAxLTEuMTItMi40OEEzLjUxIDMuNTEgMCAwIDEgMTUuODIgMTFjLjQyLS4wMi44Mi4wNSAxLjE4LjE3VjZhMyAzIDAgMCAwLTMtM0g2Wm03Ljg1IDQuODUtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdaTTE1LjkzIDEzYy0uMy4wMi0uNjcuMTYtMS4wNS42YS41LjUgMCAxIDEtLjc2LS42NWMuNTQtLjYxIDEuMTUtLjkxIDEuNzYtLjk1LjYtLjAzIDEuMTQuMiAxLjUyLjU3LjM4LjM2LjYzLjg4LjU5IDEuNDMtLjA0LjU3LS4zOCAxLjEtLjk5IDEuNDUtMS4xLjY0LTEuNiAxLjItMS44MiAxLjU1aDIuMzJhLjUuNSAwIDEgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNDUgMS40MyAxLjQzIDAgMCAxIC4wMy0uMzRjLjA0LS4xOS4xMi0uNDIuMjgtLjdhNS44IDUuOCAwIDAgMSAyLjItMS45M2MuMzYtLjIxLjQ3LS40Ni40OC0uNjVhLjg0Ljg0IDAgMCAwLS4yOC0uNjRjLS4yLS4xOS0uNDgtLjMtLjc4LS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94MlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3gyUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNy4wNWMuMDYtLjMuMTgtLjYzLjQtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY1Yy4zNSAwIC42OS4wNiAxIC4xN1Y2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMOC41IDExLjc5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01Wk0xNS45MyAxM2MtLjMuMDItLjY3LjE2LTEuMDUuNmEuNS41IDAgMSAxLS43Ni0uNjVjLjU0LS42MSAxLjE1LS45MSAxLjc2LS45NS42LS4wMyAxLjE0LjIgMS41Mi41Ny4zOC4zNi42My44OC41OSAxLjQzLS4wNC41Ny0uMzggMS4xLS45OSAxLjQ1LTEuMS42NC0xLjYgMS4yLTEuODIgMS41NWgyLjMyYS41LjUgMCAxIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjQ1IDEuNDMgMS40MyAwIDAgMSAuMDMtLjM0Yy4wNC0uMTkuMTItLjQyLjI4LS43YTUuOCA1LjggMCAwIDEgMi4yLTEuOTNjLjM2LS4yMS40Ny0uNDYuNDgtLjY1YS44NC44NCAwIDAgMC0uMjgtLjY0Yy0uMi0uMTktLjQ4LS4zLS43OC0uMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveEFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hBcnJvd1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g0LjJBNS41IDUuNSAwIDAgMSAxNiA5LjJWNWEzIDMgMCAwIDAtMy0zSDVabTcuODUgNC44NS01IDVhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDEgMSAuNy0uN2wxLjY1IDEuNjQgNC42NS00LjY0YS41LjUgMCAwIDEgLjcuN1pNMTQuNSAxMGE0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptMi4zNSA0Ljg1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveEFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94QXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDQuMmMtLjA4LS4zMi0uMTUtLjY2LS4xOC0xSDVhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjQuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNWEzIDMgMCAwIDAtMy0zSDVabTcuODUgNC44NWEuNS41IDAgMCAwLS43LS43TDcuNSAxMC43OSA1Ljg1IDkuMTVhLjUuNSAwIDEgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01Wk0xNC41IDEwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94Q2hlY2tlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveENoZWNrZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1LTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveENoZWNrZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTkuODUgMS44NWEuNS41IDAgMCAwLS43LS43TDguNSAxMS43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDUtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94Q2hlY2tlZFN5bmNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hDaGVja2VkU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNC4yQTUuNSA1LjUgMCAwIDEgMTYgOS4yVjVhMyAzIDAgMCAwLTMtM0g1Wm03Ljg1IDQuODUtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAxIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pOyIsIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVGbHVlbnRJY29uIH0gZnJvbSBcIi4uL3V0aWxzL2NyZWF0ZUZsdWVudEljb25cIjtcbmV4cG9ydCBjb25zdCBDaGVja2JveENoZWNrZWRTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveENoZWNrZWRTeW5jUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNC4yYy0uMDgtLjMyLS4xNS0uNjYtLjE4LTFINWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NC4wMmMuMzQuMDMuNjguMSAxIC4xOVY1YTMgMyAwIDAgMC0zLTNINVptNy44NSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMNy41IDEwLjc5IDUuODUgOS4xNWEuNS41IDAgMSAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw1LTVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94SW5kZXRlcm1pbmF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveEluZGV0ZXJtaW5hdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNC41IDZjMC0uODMuNjctMS41IDEuNS0xLjVoOGMuODMgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNUg2QTEuNSAxLjUgMCAwIDEgNC41IDE0VjZaTTcgNmExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveEluZGV0ZXJtaW5hdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94SW5kZXRlcm1pbmF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlptMi41LTFDNS42NyA1IDUgNS42NyA1IDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94UGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94UGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g1LjA0YTIuNSAyLjUgMCAwIDEgMi4yMy0yLjk5QTIuOTkgMi45OSAwIDAgMSAxNS41IDljLjU1IDAgMS4wNi4xNSAxLjUuNFY2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1LTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRhLjUuNSAwIDAgMSAuNy43Wk0xNy41IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g1LjA0YTMuMyAzLjMgMCAwIDEgLjAxLTFINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2My4wNGMuMzYuMDYuNy4xOSAxIC4zNlY2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMOC41IDExLjc5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01Wk0xNy41IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveFVuY2hlY2tlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveFVuY2hlY2tlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTEuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hVbmNoZWNrZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94VW5jaGVja2VkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94V2FybmluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMy4yN2wzLjQ0LTYuOWEyIDIgMCAwIDEgMy41OCAwbC43MSAxLjQyVjZhMyAzIDAgMCAwLTMtM0g2Wm03Ljg1IDQuODUtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdabS0uMjUgMi43LTMuNSA3QTEgMSAwIDAgMCAxMSAxOWg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE1IDEyLjV2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMSAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94V2FybmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMy4yN2wuNS0xSDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjMuNjdjLjExLjEzLjIxLjI3LjMuNDRsLjcgMS40MVY2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMOC41IDExLjc5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01Wm0tLjI1IDIuNy0zLjUgN0ExIDEgMCAwIDAgMTEgMTloN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNSAxMi41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDMgMTMuOSAzLjU2IDEwYS43NS43NSAwIDAgMC0xLjEyIDFsNCA0LjVjLjI5LjMyLjc5LjM0IDEuMDkuMDNsMTAuNS0xMC41YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTkuOTQgOS45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjM3IDEwLjE3YS41LjUgMCAwIDAtLjc0LjY2bDQgNC41Yy4xOS4yMi41Mi4yMy43Mi4wMmwxMC41LTEwLjVhLjUuNSAwIDAgMC0uNy0uN0w3LjAyIDE0LjI3bC0zLjY1LTQuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDEgMCAxNiA4IDggMCAwIDEgMC0xNlptMy4zNiA1LjY1YS41LjUgMCAwIDAtLjY0LS4wNmwtLjA3LjA2TDkgMTEuMyA3LjM1IDkuNjVsLS4wNy0uMDZhLjUuNSAwIDAgMC0uNy43bC4wNy4wNyAyIDIgLjA3LjA2Yy4xNy4xMS40LjExLjU2IDBsLjA3LS4wNiA0LTQgLjA3LS4wOGEuNS41IDAgMCAwLS4wNi0uNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDEgMCAxNiA4IDggMCAwIDEgMC0xNlptMCAxYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0zLjM2IDQuNjVjLjE3LjE3LjIuNDQuMDYuNjNsLS4wNi4wNy00IDRhLjUuNSAwIDAgMS0uNjQuMDdsLS4wNy0uMDYtMi0yYS41LjUgMCAwIDEgLjYzLS43N2wuMDcuMDZMOSAxMS4zbDMuNjUtMy42NWMuMi0uMi41MS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGVTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlU3F1YXJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMTNBNiA2IDAgMSAwIDcgMWE2IDYgMCAwIDAgMCAxMlptMi44NS03LjE1LTMgM2EuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNy0uN0w2LjUgNy43OWwyLjY1LTIuNjRhLjUuNSAwIDEgMSAuNy43Wk04IDEzLjkzVjE2YTMgMyAwIDAgMCAzIDNoNWEzIDMgMCAwIDAgMy0zdi01YTMgMyAwIDAgMC0zLTNoLTIuMDdjLS4wNS4zNC0uMTIuNjgtLjIyIDFIMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMi4yOWMtLjMyLjEtLjY2LjE3LTEgLjIyWm04LjM1LTEuNThhLjUuNSAwIDAgMC0uNy0uN0wxMyAxNC4yOWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGVTcXVhcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVNxdWFyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgN0E1IDUgMCAxIDAgMiA3YTUgNSAwIDAgMCAxMCAwWm0xIDBBNiA2IDAgMSAxIDEgN2E2IDYgMCAwIDEgMTIgMFptLTUgOXYtMi4wN2MuMzQtLjA1LjY4LS4xMiAxLS4yMlYxNmMwIDEuMS45IDIgMiAyaDVhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtMi0yaC0yLjI5Yy4xLS4zMi4xNy0uNjYuMjItMUgxNmEzIDMgMCAwIDEgMyAzdjVhMyAzIDAgMCAxLTMgM2gtNWEzIDMgMCAwIDEtMy0zWk05Ljg1IDUuMTVjLjIuMi4yLjUgMCAuN2wtMyAzYS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMSAxIC43LS43TDYuNSA3Ljc5bDIuNjUtMi42NGMuMi0uMi41LS4yLjcgMFptMy41IDEwLjIgMy0zYS41LjUgMCAwIDAtLjctLjdMMTMgMTQuMjlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGVXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVdhcm5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgNy43NCAxMC4wMWwtLjQ1LS45YTIgMiAwIDAgMC0zLjU4IDBMMTAuMjcgMThIMTBhOCA4IDAgMSAxIDAtMTZabTMuMzYgNS42NWEuNS41IDAgMCAwLS42NC0uMDZsLS4wNy4wNkw5IDExLjMgNy4zNSA5LjY1bC0uMDctLjA2YS41LjUgMCAwIDAtLjcuN2wuMDcuMDcgMiAyIC4wNy4wNmMuMTcuMTEuNC4xMS41NiAwbC4wNy0uMDYgNC00IC4wNy0uMDhhLjUuNSAwIDAgMC0uMDYtLjYzWm0xLjI0IDMuOWExIDEgMCAwIDEgMS44IDBsMy41IDdBMSAxIDAgMCAxIDE5IDIwaC03YTEgMSAwIDAgMS0uOS0xLjQ1bDMuNS03Wk0xNiAxMy41YS41LjUgMCAxIDAtMSAwdjNhLjUuNSAwIDEgMCAxIDB2LTNabS0uNSA1LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGVXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDAgMSA3Ljc0IDEwLjAxbC0uNDUtLjljLS4wOS0uMTgtLjItLjM0LS4zMi0uNDdhNyA3IDAgMSAwLTYuMTggNi4zMkwxMC4yNyAxOEgxMGE4IDggMCAxIDEgMC0xNlptMy4zNiA1LjY1Yy4xNy4xNy4yLjQ0LjA2LjYzbC0uMDYuMDctNCA0YS41LjUgMCAwIDEtLjY0LjA3bC0uMDctLjA2LTItMmEuNS41IDAgMCAxIC42My0uNzdsLjA3LjA2TDkgMTEuM2wzLjY1LTMuNjVjLjItLjIuNTEtLjIuNyAwWm0xLjI0IDMuOWExIDEgMCAwIDEgMS44IDBsMy41IDdBMSAxIDAgMCAxIDE5IDIwaC03YTEgMSAwIDAgMS0uOS0xLjQ1bDMuNS03Wk0xNiAxMy41YS41LjUgMCAxIDAtMSAwdjNhLjUuNSAwIDEgMCAxIDB2LTNabS0uNSA1LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtMb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0xvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjMzQTMgMyAwIDAgMCAxMi41IDEydi4wNkEyIDIgMCAwIDAgMTEgMTR2My45NEE4IDggMCAxIDEgMTAgMlptMy4zNiA1LjY1YS41LjUgMCAwIDAtLjY0LS4wNmwtLjA3LjA2TDkgMTEuMyA3LjM1IDkuNjVsLS4wNy0uMDZhLjUuNSAwIDAgMC0uNy43bC4wNy4wNyAyIDIgLjA3LjA2Yy4xNy4xMS40LjExLjU2IDBsLjA3LS4wNiA0LTQgLjA3LS4wOGEuNS41IDAgMCAwLS4wNi0uNjNaTTE1LjUgMTBhMiAyIDAgMCAxIDIgMnYxaC41YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWguNXYtMWMwLTEuMS45LTIgMi0yWm0tLjY1IDYuMzdhLjc1Ljc1IDAgMSAwIDEuMy0uNzQuNzUuNzUgMCAwIDAtMS4zLjc0Wk0xNS41IDExYTEgMSAwIDAgMC0xIDF2MWgydi0xYTEgMSAwIDAgMC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtMb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtMb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDAgMSA4IDguMzMgMy4wMiAzLjAyIDAgMCAwLTEuMDMtLjk0QTcgNyAwIDEgMCAxMSAxNi45M3YxQTggOCAwIDEgMSAxMCAyWm02Ljk3IDguNjRBMiAyIDAgMCAxIDE3LjUgMTJ2MWguNWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoLjV2LTFhMiAyIDAgMCAxIDMuNDctMS4zNlpNMTQuNSAxM2gydi0xYTEgMSAwIDEgMC0yIDB2MVptLjM1IDMuMzdhLjc1Ljc1IDAgMSAwIDEuMy0uNzQuNzUuNzUgMCAwIDAtMS4zLjc0Wm0tMS41LTguNzJjLjE4LjE3LjIuNDQuMDcuNjNsLS4wNi4wNy00IDRhLjUuNSAwIDAgMS0uNjQuMDdsLS4wNy0uMDYtMi0yYS41LjUgMCAwIDEgLjYzLS43N2wuMDcuMDZMOSAxMS4zbDMuNjUtMy42NWMuMi0uMi41MS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtOb3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya05vdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4wMyAxMi45IDIuNTYgOWEuNzUuNzUgMCAxIDAtMS4xMiAxbDQgNC41Yy4yOS4zMi43OS4zNCAxLjA5LjAzbDEwLjUtMTAuNWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC05Ljk0IDkuOTRaTTExIDEzYzAtMS4xLjktMiAyLTJoNWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi00Wm02LjUgM2gtNGEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xWm0tNC0zYS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtOb3RlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtOb3RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xLjY3IDkuMTNhLjUuNSAwIDAgMSAuNy4wNGwzLjY1IDQuMUwxNi4xNSAzLjE1YS41LjUgMCAxIDEgLjcuN2wtMTAuNSAxMC41YS41LjUgMCAwIDEtLjcyLS4wMmwtNC00LjVhLjUuNSAwIDAgMSAuMDQtLjdaTTExIDEzYzAtMS4xLjktMiAyLTJoNWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi00Wm02LjUgM2gtNGEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xWm0tNC0zYS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrU3F1YXJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabTcuMzUgNS4zNS00IDRhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN0w5IDExLjI5bDMuNjUtMy42NGEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtTcXVhcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1NxdWFyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlptOS4zNSAyLjM1YS41LjUgMCAwIDAtLjctLjdMOSAxMS4yOSA3LjM1IDkuNjVhLjUuNSAwIDEgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrU3RhcmJ1cnN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1N0YXJidXJzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIm04LjQ2IDEuOS45OS4zOWMuMzUuMTQuNzUuMTQgMS4xIDBsLjk5LS40YzEuMjEtLjQ3IDIuNTguMSAzLjEgMS4zbC40Mi45N2MuMTYuMzUuNDMuNjIuNzguNzdsLjk4LjQzYzEuMi41MiAxLjc2IDEuODkgMS4yOCAzLjFsLS4zOS45OWExLjUgMS41IDAgMCAwIDAgMS4xbC40Ljk5YTIuNDIgMi40MiAwIDAgMS0xLjMgMy4xbC0uOTcuNDJhMS41IDEuNSAwIDAgMC0uNzguNzhsLS40Mi45OGEyLjQyIDIuNDIgMCAwIDEtMy4xIDEuMjhsLTEtLjM5YTEuNSAxLjUgMCAwIDAtMS4wOSAwbC0uOTkuNGEyLjQyIDIuNDIgMCAwIDEtMy4xLTEuM2wtLjQzLS45N2ExLjUgMS41IDAgMCAwLS43Ny0uNzhsLS45OC0uNDJhMi40MiAyLjQyIDAgMCAxLTEuMjgtMy4xbC4zOS0xYTEuNSAxLjUgMCAwIDAgMC0xLjA5bC0uNC0uOTlhMi40MiAyLjQyIDAgMCAxIDEuMy0zLjFsLjk3LS40M2MuMzUtLjE1LjYyLS40Mi43Ny0uNzdsLjQzLS45OGEyLjQyIDIuNDIgMCAwIDEgMy4xLTEuMjhabTQuMTcgNS43Ny0zLjY1IDQuMS0xLjYzLTEuNjJhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUzLjIuNzItLjAybDQtNC41YS41LjUgMCAwIDAtLjc0LS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1N0YXJidXJzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrU3RhcmJ1cnN0UmVndWxhcicsIFwiMWVtXCIsIFtcIm04LjQ2IDEuOS45OS4zOWMuMzUuMTQuNzUuMTQgMS4xIDBsLjk5LS40YzEuMjEtLjQ3IDIuNTguMSAzLjEgMS4zbC40Mi45N2MuMTYuMzUuNDMuNjIuNzguNzdsLjk4LjQzYzEuMi41MiAxLjc2IDEuODkgMS4yOCAzLjFsLS4zOS45OWExLjUgMS41IDAgMCAwIDAgMS4xbC40Ljk5YTIuNDIgMi40MiAwIDAgMS0xLjMgMy4xbC0uOTcuNDJhMS41IDEuNSAwIDAgMC0uNzguNzhsLS40Mi45OGEyLjQyIDIuNDIgMCAwIDEtMy4xIDEuMjhsLTEtLjM5YTEuNSAxLjUgMCAwIDAtMS4wOSAwbC0uOTkuNGEyLjQyIDIuNDIgMCAwIDEtMy4xLTEuM2wtLjQzLS45N2ExLjUgMS41IDAgMCAwLS43Ny0uNzhsLS45OC0uNDJhMi40MiAyLjQyIDAgMCAxLTEuMjgtMy4xbC4zOS0xYTEuNSAxLjUgMCAwIDAgMC0xLjA5bC0uNC0uOTlhMi40MiAyLjQyIDAgMCAxIDEuMy0zLjFsLjk3LS40M2MuMzUtLjE1LjYyLS40Mi43Ny0uNzdsLjQzLS45OGEyLjQyIDIuNDIgMCAwIDEgMy4xLTEuMjhabTMuNDQuOTMtLjk5LjM5YTIuNSAyLjUgMCAwIDEtMS44MyAwbC0uOTktLjRhMS40MiAxLjQyIDAgMCAwLTEuODEuNzZsLS40My45OGEyLjUgMi41IDAgMCAxLTEuMyAxLjNsLS45Ny40MmMtLjcuMy0xLjAzIDEuMS0uNzUgMS44MWwuMzkgMWEyLjUgMi41IDAgMCAxIDAgMS44MmwtLjQgMWMtLjI3LjcuMDYgMS41Ljc2IDEuODFsLjk4LjQzYTIuNSAyLjUgMCAwIDEgMS4zIDEuM2wuNDIuOTdjLjMuNyAxLjEgMS4wMyAxLjgxLjc1bDEtLjM5YTIuNSAyLjUgMCAwIDEgMS44MiAwbDEgLjRjLjcuMjcgMS41LS4wNiAxLjgxLS43NmwuNDMtLjk4YTIuNSAyLjUgMCAwIDEgMS4zLTEuM2wuOTctLjQyYy43LS4zIDEuMDMtMS4xLjc1LTEuODJsLS4zOS0uOTlhMi41IDIuNSAwIDAgMSAwLTEuODNsLjQtLjk5YTEuNDIgMS40MiAwIDAgMC0uNzYtMS44MWwtLjk4LS40M2EyLjUgMi41IDAgMCAxLTEuMy0xLjNsLS40Mi0uOTdjLS4zLS43LTEuMS0xLjAzLTEuODItLjc1Wm0tMi45MiA4Ljk0IDMuNjUtNC4xYS41LjUgMCAwIDEgLjguNTlsLS4wNi4wNy00IDQuNWEuNS41IDAgMCAxLS42NS4wOGwtLjA3LS4wNi0yLTJhLjUuNSAwIDAgMSAuNjMtLjc2bC4wNy4wNiAxLjYzIDEuNjIgMy42NS00LjEtMy42NSA0LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtVbmRlcmxpbmVDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrVW5kZXJsaW5lQ2lyY2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm0zLjg1LTExLjg1Yy4yLjIuMi41IDAgLjdsLTQgNGEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMSAxIC43LS43TDkuNSA5Ljc5bDMuNjUtMy42NGMuMi0uMi41LS4yLjcgMFpNNy41IDEzaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtVbmRlcmxpbmVDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1VuZGVybGluZUNpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMTdhNyA3IDAgMSAxIDAtMTQgNyA3IDAgMCAxIDAgMTRabTAgMWE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMy44NS0xMS44NWMuMi4yLjIuNSAwIC43bC00IDRhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDEgMSAuNy0uN0w5LjUgOS43OWwzLjY1LTMuNjRjLjItLjIuNS0uMi43IDBaTTcgMTMuNWMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMmEuNS41IDAgMCAwLS41LjV2Mi42YTMgMyAwIDAgMCAyLjIgMi44OSAxNi4wMyAxNi4wMyAwIDAgMS0xLjY3IDYuMDVjLjE4LjIxLjM2LjM3LjUuNDkuNTEuNDMuOTcgMS4xNC45NyAyLjAyIDAgLjU0LS4xOCAxLjA0LS40OCAxLjQ1SDE3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtLjNjMC0uMzUtLjEyLS42OC0uMy0uOTRBMTUuMDMgMTUuMDMgMCAwIDEgMTUuOCA4IDMgMyAwIDAgMCAxOCA1LjFWMi41YS41LjUgMCAwIDAtLjUtLjVoLS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1di43NWEuNS41IDAgMCAxLTEgMHYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0uNWEuNzUuNzUgMCAwIDAtLjc1Ljc1di43NWEuNS41IDAgMCAxLTEgMHYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0uNzVabS00IDNhMyAzIDAgMCAwLTIuMjQgNUg0YTEgMSAwIDEgMCAwIDJoLjUyYTUuNzYgNS43NiAwIDAgMS0xLjkgMy4zYy0uMzUuMjgtLjYyLjczLS42MiAxLjI1IDAgLjguNjUgMS40NSAxLjQ1IDEuNDVoNi4xYy44IDAgMS40NS0uNjUgMS40NS0xLjQ1IDAtLjUyLS4yNy0uOTctLjYyLTEuMjZBNS43NiA1Ljc2IDAgMCAxIDguNDggMTJIOWExIDEgMCAxIDAgMC0yaC0uMjZBMyAzIDAgMCAwIDYuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTEgMSAwIDAgMSAxLTFoLjVjLjM5IDAgLjc0LjE1IDEgLjM4YTEuNSAxLjUgMCAwIDEgMS0uMzhoMWMuMzggMCAuNzMuMTUgMSAuMzhhMS41IDEuNSAwIDAgMSAxLS4zOGguNWExIDEgMCAwIDEgMSAxdjIuNWEyLjUgMi41IDAgMCAxLTEuOTUgMi40NGMuMjggNC4wNCAxLjcgNi41OCAyLjE5IDcuMzUuMTYuMjUuMjYuNTUuMjYuODh2LjMzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNS40OGMuMjItLjMuMzctLjYzLjQ0LTFIMTdhLjUuNSAwIDAgMCAuNS0uNXYtLjMzYzAtLjExLS4wMy0uMjMtLjEtLjM0LS41OC0uOS0yLjE2LTMuNzgtMi4zOC04LjNhLjUuNSAwIDAgMSAuNS0uNTNBMS41IDEuNSAwIDAgMCAxNyA1LjVWM2gtLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMS0xIDB2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWEuNS41IDAgMCAwLS41LS41SDExdjIuNWMwIC44Mi42NiAxLjQ5IDEuNDggMS41YS41LjUgMCAwIDEgLjUuNTIgMTguMzIgMTguMzIgMCAwIDEtMS43NiA3LjIgMi44MiAyLjgyIDAgMCAwLS4yLS4yIDQuMiA0LjIgMCAwIDEtLjU1LS41NSAxNy4zOCAxNy4zOCAwIDAgMCAxLjQ4LTYuMDNBMi41IDIuNSAwIDAgMSAxMCA1LjVWM1pNNC41IDhhMiAyIDAgMSAxIDMuNiAxLjIuNS41IDAgMCAwIC40LjhIOWEuNS41IDAgMCAxIDAgMUg3LjlhLjUuNSAwIDAgMC0uNS41NiA2Ljg2IDYuODYgMCAwIDAgMi4zNCA0LjVjLjE3LjE1LjI2LjMzLjI2LjQ5IDAgLjI1LS4yLjQ1LS40NS40NWgtNi4xYS40NS40NSAwIDAgMS0uNDUtLjQ1YzAtLjE2LjA5LS4zNC4yNi0uNDlhNi44NiA2Ljg2IDAgMCAwIDIuMzQtNC41LjUuNSAwIDAgMC0uNS0uNTZINGEuNS41IDAgMCAxIDAtMWguNWEuNS41IDAgMCAwIC40LS44Yy0uMjUtLjMzLS40LS43NS0uNC0xLjJabTItM2EzIDMgMCAwIDAtMi44MiA0LjAzQTEuNSAxLjUgMCAwIDAgNCAxMmguNTJhNS43NiA1Ljc2IDAgMCAxLTEuOSAzLjNjLS4zNS4yOC0uNjIuNzMtLjYyIDEuMjUgMCAuOC42NSAxLjQ1IDEuNDUgMS40NWg2LjFjLjggMCAxLjQ1LS42NSAxLjQ1LTEuNDUgMC0uNTItLjI3LS45Ny0uNjItMS4yNkE1Ljc2IDUuNzYgMCAwIDEgOC40OCAxMkg5YTEuNSAxLjUgMCAwIDAgLjMyLTIuOTdBMyAzIDAgMCAwIDYuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNC44NS0xLjg1YS41LjUgMCAxIDAtLjcuN2wzLjUgMy41YS41LjUgMCAwIDAgLjcgMGwzLjUtMy41YS41LjUgMCAwIDAtLjctLjdMMTAgMTEuMjkgNi44NSA4LjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDEwYTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWm03LThhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaTTYuODUgOC4xNWEuNS41IDAgMSAwLS43LjdsMy41IDMuNWEuNS41IDAgMCAwIC43IDBsMy41LTMuNWEuNS41IDAgMCAwLS43LS43TDEwIDExLjI5IDYuODUgOC4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTEuODUgNC44NWEuNS41IDAgMCAwLS43LS43bC0zLjUgMy41YS41LjUgMCAwIDAgMCAuN2wzLjUgMy41YS41LjUgMCAwIDAgLjctLjdMOC43MSAxMGwzLjE0LTMuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMSAxIDAgMTQgNyA3IDAgMCAxIDAtMTRabTggN2E4IDggMCAxIDAtMTYgMCA4IDggMCAwIDAgMTYgMFptLTYuMTUtMy4xNWEuNS41IDAgMCAwLS43LS43bC0zLjUgMy41YS41LjUgMCAwIDAgMCAuN2wzLjUgMy41YS41LjUgMCAwIDAgLjctLjdMOC43MSAxMGwzLjE0LTMuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE4YTggOCAwIDEgMSAwLTE2IDggOCAwIDAgMSAwIDE2Wm0tMS44NS00Ljg1YS41LjUgMCAwIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNWEuNS41IDAgMSAwLS43LjdMMTEuMjkgMTBsLTMuMTQgMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxN2E3IDcgMCAxIDEgMC0xNCA3IDcgMCAwIDEgMCAxNFptLTgtN2E4IDggMCAxIDAgMTYgMCA4IDggMCAwIDAtMTYgMFptNi4xNSAzLjE1YS41LjUgMCAwIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNWEuNS41IDAgMSAwLS43LjdMMTEuMjkgMTBsLTMuMTQgMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlVXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDAgMTYgMCA4IDggMCAwIDAtMTYgMFptNC44NSAxLjg1YS41LjUgMCAwIDEtLjctLjdsMy41LTMuNWEuNS41IDAgMCAxIC43IDBsMy41IDMuNWEuNS41IDAgMCAxLS43LjdMMTAgOC43MWwtMy4xNSAzLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlVXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMTBhNyA3IDAgMSAwIDE0IDAgNyA3IDAgMCAwLTE0IDBabTcgOGE4IDggMCAxIDEgMC0xNiA4IDggMCAwIDEgMCAxNlptLTMuMTUtNi4xNWEuNS41IDAgMCAxLS43LS43bDMuNS0zLjVhLjUuNSAwIDAgMSAuNyAwbDMuNSAzLjVhLjUuNSAwIDAgMS0uNy43TDEwIDguNzFsLTMuMTUgMy4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3VibGVEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjggOC43M2MuMjguMy4yNy43OC0uMDMgMS4wNmwtNS4yNSA1YS43NS43NSAwIDAgMS0xLjA0IDBsLTUuMjUtNWEuNzUuNzUgMCAwIDEgMS4wNC0xLjA4TDEwIDEzLjJsNC43My00LjVhLjc1Ljc1IDAgMCAxIDEuMDYuMDJabTAtNGMuMjguMy4yNy43OC0uMDMgMS4wNmwtNS4yNSA1YS43NS43NSAwIDAgMS0xLjA0IDBsLTUuMjUtNWEuNzUuNzUgMCAwIDEgMS4wNC0xLjA4TDEwIDkuMmw0LjczLTQuNWEuNzUuNzUgMCAwIDEgMS4wNi4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuODUgOC42NWMuMi4yLjIuNSAwIC43bC01LjQ2IDUuNDlhLjU1LjU1IDAgMCAxLS43OCAwTDQuMTUgOS4zNWEuNS41IDAgMSAxIC43LS43TDEwIDEzLjhsNS4xNS01LjE2Yy4yLS4yLjUtLjIuNyAwWm0wLTRjLjIuMi4yLjUgMCAuN2wtNS40NiA1LjQ5YS41NS41NSAwIDAgMS0uNzggMEw0LjE1IDUuMzVhLjUuNSAwIDEgMSAuNy0uN0wxMCA5LjhsNS4xNS01LjE2Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZUxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMjcgMTUuOGEuNzUuNzUgMCAwIDEtMS4wNi0uMDNsLTUtNS4yNWEuNzUuNzUgMCAwIDEgMC0xLjA0bDUtNS4yNWEuNzUuNzUgMCAxIDEgMS4wOCAxLjA0TDYuOCAxMGw0LjUgNC43M2MuMjkuMy4yOC43OC0uMDIgMS4wNlptNCAwYS43NS43NSAwIDAgMS0xLjA2LS4wM2wtNS01LjI1YS43NS43NSAwIDAgMSAwLTEuMDRsNS01LjI1YS43NS43NSAwIDEgMSAxLjA5IDEuMDRMMTAuNzkgMTBsNC41IDQuNzNjLjMuMy4yOC43OC0uMDIgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMzUgMTUuODVhLjUuNSAwIDAgMS0uNyAwTDUuMTYgMTAuNGEuNTUuNTUgMCAwIDEgMC0uNzhsNS40OS01LjQ2YS41LjUgMCAxIDEgLjcuN0w2LjIgMTBsNS4xNiA1LjE1Yy4yLjIuMi41IDAgLjdabTQgMGEuNS41IDAgMCAxLS43IDBMOS4xNiAxMC40YS41NS41NSAwIDAgMSAwLS43OGw1LjQ5LTUuNDZhLjUuNSAwIDEgMSAuNy43TDEwLjIgMTBsNS4xNiA1LjE1Yy4yLjIuMi41IDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZVJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNzMgNC4yYS43NS43NSAwIDAgMSAxLjA2LjAzbDUgNS4yNWMuMjguMy4yOC43NSAwIDEuMDRsLTUgNS4yNWEuNzUuNzUgMCAxIDEtMS4wOC0xLjA0TDEzLjIgMTBsLTQuNS00LjczYS43NS43NSAwIDAgMSAuMDItMS4wNlptLTQgMGEuNzUuNzUgMCAwIDEgMS4wNi4wM2w1IDUuMjVjLjI4LjMuMjguNzUgMCAxLjA0bC01IDUuMjVhLjc1Ljc1IDAgMSAxLTEuMDgtMS4wNEw5LjIgMTBsLTQuNS00LjczYS43NS43NSAwIDAgMSAuMDItMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZVJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjY1IDQuMTVjLjItLjIuNS0uMi43IDBsNS40OSA1LjQ2Yy4yMS4yMi4yMS41NyAwIC43OGwtNS40OSA1LjQ2YS41LjUgMCAwIDEtLjctLjdMMTMuOCAxMCA4LjY1IDQuODVhLjUuNSAwIDAgMSAwLS43Wm0tNCAwYy4yLS4yLjUtLjIuNyAwbDUuNDkgNS40NmMuMjEuMjIuMjEuNTcgMCAuNzhsLTUuNDkgNS40NmEuNS41IDAgMCAxLS43LS43TDkuOCAxMCA0LjY1IDQuODVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZVVwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3VibGVVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjIgMTUuMjdhLjc1Ljc1IDAgMCAxIC4wMy0xLjA2bDUuMjUtNWEuNzUuNzUgMCAwIDEgMS4wNCAwbDUuMjUgNWEuNzUuNzUgMCAwIDEtMS4wNCAxLjA4TDEwIDEwLjhsLTQuNzMgNC41YS43NS43NSAwIDAgMS0xLjA2LS4wMlptMC01YS43NS43NSAwIDAgMSAuMDMtMS4wNmw1LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQgMGw1LjI1IDVhLjc1Ljc1IDAgMCAxLTEuMDQgMS4wOEwxMCA1LjhsLTQuNzMgNC41YS43NS43NSAwIDAgMS0xLjA2LS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZVVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjE1IDkuNjVhLjUuNSAwIDAgMCAuNy43TDEwIDUuMmw1LjE1IDUuMTZhLjUuNSAwIDEgMCAuNy0uN0wxMC40IDQuMTZhLjU1LjU1IDAgMCAwLS43OCAwTDQuMTUgOS42NVptMCA1YS41LjUgMCAwIDAgLjcuN0wxMCAxMC4ybDUuMTUgNS4xNmEuNS41IDAgMSAwIC43LS43TDEwLjQgOS4xNmEuNTUuNTUgMCAwIDAtLjc4IDBsLTUuNDYgNS40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjggNy43M2MuMjguMy4yNy43OC0uMDMgMS4wNmwtNS4yNSA1YS43NS43NSAwIDAgMS0xLjA0IDBsLTUuMjUtNWEuNzUuNzUgMCAwIDEgMS4wNC0xLjA4TDEwIDEyLjJsNC43My00LjVhLjc1Ljc1IDAgMCAxIDEuMDYuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1Ljg1IDcuNjVjLjIuMi4yLjUgMCAuN2wtNS40NiA1LjQ5YS41NS41NSAwIDAgMS0uNzggMEw0LjE1IDguMzVhLjUuNSAwIDEgMSAuNy0uN0wxMCAxMi44bDUuMTUtNS4xNmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duVXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd25VcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjI4IDIuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw0LjI1IDQuMjVjLjMuMy43Ny4zIDEuMDYgMGw0LjI1LTQuMjVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwxMCA2LjY5IDYuMjggMi45N1ptOC41IDEzLTQuMjUtNC4yNWEuNzUuNzUgMCAwIDAtMS4wNiAwbC00LjI1IDQuMjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxMCAxMy4zMWwzLjcyIDMuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duVXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3duVXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuODUgMy4xNWEuNS41IDAgMSAwLS43LjdsNC41IDQuNWMuMi4yLjUuMi43IDBsNC41LTQuNWEuNS41IDAgMCAwLS43LS43TDEwIDcuMjkgNS44NSAzLjE1Wm05IDEzLTQuNS00LjVhLjUuNSAwIDAgMC0uNyAwbC00LjUgNC41YS41LjUgMCAwIDAgLjcuN0wxMCAxMi43MWw0LjE1IDQuMTRhLjUuNSAwIDAgMCAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjI3IDE1LjhhLjc1Ljc1IDAgMCAxLTEuMDYtLjAzbC01LTUuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wNGw1LTUuMjVhLjc1Ljc1IDAgMSAxIDEuMDggMS4wNEw3LjggMTBsNC41IDQuNzNjLjI5LjMuMjguNzgtLjAyIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjM1IDE1Ljg1YS41LjUgMCAwIDEtLjcgMEw2LjE2IDEwLjRhLjU1LjU1IDAgMCAxIDAtLjc4bDUuNDktNS40NmEuNS41IDAgMSAxIC43LjdMNy4yIDEwbDUuMTYgNS4xNWMuMi4yLjIuNSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjczIDQuMmEuNzUuNzUgMCAwIDEgMS4wNi4wM2w1IDUuMjVjLjI4LjMuMjguNzUgMCAxLjA0bC01IDUuMjVhLjc1Ljc1IDAgMSAxLTEuMDgtMS4wNEwxMi4yIDEwbC00LjUtNC43M2EuNzUuNzUgMCAwIDEgLjAyLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy42NSA0LjE1Yy4yLS4yLjUtLjIuNyAwbDUuNDkgNS40NmMuMjEuMjIuMjEuNTcgMCAuNzhsLTUuNDkgNS40NmEuNS41IDAgMCAxLS43LS43TDEyLjggMTAgNy42NSA0Ljg1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4yIDEyLjI3YS43NS43NSAwIDAgMSAuMDMtMS4wNmw1LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQgMGw1LjI1IDVhLjc1Ljc1IDAgMCAxLTEuMDQgMS4wOEwxMCA3LjhsLTQuNzMgNC41YS43NS43NSAwIDAgMS0xLjA2LS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjE1IDEyLjM1YS41LjUgMCAwIDEgMC0uN0w5LjYgNi4xNmEuNTUuNTUgMCAwIDEgLjc4IDBsNS40NiA1LjQ5YS41LjUgMCAwIDEtLjcuN0wxMCA3LjJsLTUuMTUgNS4xNmEuNS41IDAgMCAxLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXBEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcERvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNTMgMi43MmEuNzUuNzUgMCAwIDAtMS4wNiAwTDUuMjIgNi45N2EuNzUuNzUgMCAwIDAgMS4wNiAxLjA2TDEwIDQuMzFsMy43MiAzLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTQuMjUtNC4yNVptNC4yNSAxMC4zMS00LjI1IDQuMjVjLS4zLjMtLjc3LjMtMS4wNiAwbC00LjI1LTQuMjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkwxMCAxNS42OWwzLjcyLTMuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcERvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcERvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjkxIDcuMjJhLjUuNSAwIDAgMS0uNzYuNjNMMTAgMy43MSA1Ljg1IDcuODVsLS4wNy4wNmEuNS41IDAgMCAxLS42My0uNzZsNC41LTQuNS4wNy0uMDZhLjUuNSAwIDAgMSAuNjMuMDZsNC41IDQuNS4wNi4wN1pNNS4xIDEyLjc4YS41LjUgMCAwIDEgLjc2LS42M0wxMCAxNi4yOWw0LjE1LTQuMTQuMDctLjA2YS41LjUgMCAwIDEgLjYzLjc2bC00LjUgNC41LS4wNy4wNmEuNS41IDAgMCAxLS42My0uMDZsLTQuNS00LjUtLjA2LS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMCAwLTEgMTUuOTRjLjAyLS4xLjAzLS4yLjA2LS4yOWwuMzctMS41YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDhsNC44My00LjgzYTIuODcgMi44NyAwIDAgMSAyLjg1LS43MkE4IDggMCAwIDAgMTAgMlptLjk4IDEzLjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2E3IDcgMCAwIDAtLjc3IDEzLjk2bC0uMTcuN2MtLjAzLjA5LS4wNC4xOC0uMDUuMjhhOCA4IDAgMSAxIDguOTQtOC44MmMtLjMzLS4xLS42OC0uMTQtMS4wMi0uMTFBNyA3IDAgMCAwIDEwIDNabS45OCAxMi4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUVyYXNlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVFcmFzZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC43MyAxNy4xN2EyLjUgMi41IDAgMCAxIDAtMy41M2w0LjktNC45YTIuNSAyLjUgMCAwIDEgMy41NCAwbC44LjhhOCA4IDAgMSAwLTguNDQgOC40NGwtLjgtLjhabTcuNzQtNy43MyAyLjEgMi4xYTEuNSAxLjUgMCAwIDEgMCAyLjEybC0zLjYgMy42LTQuMjItNC4yMiAzLjYtMy42YTEuNSAxLjUgMCAwIDEgMi4xMiAwWm0tMi4yMSA4LjUyLTQuMjItNC4yMS0uNi42YTEuNSAxLjUgMCAwIDAgMCAyLjEybDIuMSAyLjFhMS41IDEuNSAwIDAgMCAxLjEyLjQzaDQuMDlhLjUuNSAwIDAgMCAwLTFoLTIuNTNsLjA0LS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUVyYXNlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlRXJhc2VyUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjczIDE3LjE3Yy0uMS0uMS0uMi0uMjItLjI5LS4zNUE3IDcgMCAwIDEgMTAgM2E3IDcgMCAwIDEgNi44MiA1LjQ0Yy4xMy4wOS4yNC4xOC4zNS4zbC44LjhhOCA4IDAgMSAwLTguNDMgOC40NGwtLjgtLjhabS43LS43YTEuNSAxLjUgMCAwIDEgMC0yLjEzbDQuOS00LjlhMS41IDEuNSAwIDAgMSAyLjEzIDBsMi4xIDIuMWExLjUgMS41IDAgMCAxIDAgMi4xMkwxNC4yMiAxOGgyLjUzYS41LjUgMCAwIDEgMCAxaC00LjFhMS41IDEuNSAwIDAgMS0xLjEyLS40NGwtMi4xLTIuMVptNS42Mi02LjMyLTMuNiAzLjYgMi44IDIuOCAzLjYtMy42YS41LjUgMCAwIDAgMC0uNzFsLTIuMS0yLjFhLjUuNSAwIDAgMC0uNyAwWm0tMS41IDcuMS0yLjgtMi44LS42LjZhLjUuNSAwIDAgMCAwIC43MWwyLjEgMi4xYS41LjUgMCAwIDAgLjcgMGwuNi0uNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhhbGZGaWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhhbGZGaWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAxMGE2LjUgNi41IDAgMCAxIDEzIDBoLTEzWk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGFsZkZpbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhhbGZGaWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDEwYTcgNyAwIDAgMSAxNCAwSDNabTctOGE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpZ2hsaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaWdobGlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0LjdjLS4yNS4yOS0uNDguNTktLjY5LjlsMy4zIDMuM2EuNS41IDAgMSAxLS43MS43TDIuOCA2LjVjLS4xOC4zNy0uMzMuNzUtLjQ1IDEuMTVMNS42IDEwLjlhLjUuNSAwIDAgMS0uNy43TDIuMDkgOC44YTguMDYgOC4wNiAwIDAgMC0uMDggMS41bDMuMzQgMy4zNWEuNS41IDAgMCAxLS43LjdsLTIuNDEtMi40YTggOCAwIDEgMCA5LjctOS43MWwyLjQxIDIuNGEuNS41IDAgMCAxLS43LjcxTDEwLjMgMi4wMWE4LjE0IDguMTQgMCAwIDAtMS41LjA4bDIuOCAyLjhhLjUuNSAwIDAgMS0uNy43MUw3LjY1IDIuMzVjLS40LjEyLS43OC4yNy0xLjE0LjQ1bDMuMSAzLjFhLjUuNSAwIDEgMS0uNzEuN0w1LjYgMy4zMWMtLjMxLjIxLS42MS40NC0uOS43bDMuMTUgMy4xNGEuNS41IDAgMSAxLS43LjdMNCA0LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGlnaGxpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaWdobGlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNzEgM2E3LjEgNy4xIDAgMCAxIDEuNzMuMTVsMi4yIDIuMmEuNS41IDAgMCAwIC43Mi0uN2wtLjQ3LS40N2E3IDcgMCAxIDEtOS43MiA5LjdsLjQ4LjQ3YS41LjUgMCAxIDAgLjctLjdsLTIuMi0yLjIxQTcuMDMgNy4wMyAwIDAgMSAzIDkuN2wxLjg5IDEuOWEuNS41IDAgMSAwIC43LS43MUwzLjE4IDguNDZjLjEtLjQxLjIyLS44Mi4zOS0xLjJMNS45IDkuNmEuNS41IDAgMSAwIC43LS43TDQuMDUgNi4zM2MuMi0uMzIuNDItLjYzLjY3LS45MWwyLjQ0IDIuNDNhLjUuNSAwIDEgMCAuNy0uN0w1LjQzIDQuN2MuMjgtLjI1LjU5LS40Ny45MS0uNjdMOC45IDYuNmEuNS41IDAgMSAwIC43LS43TDcuMjcgMy41NWMuMzktLjE2Ljc5LS4yOSAxLjItLjM4TDEwLjkgNS42YS41LjUgMCAwIDAgLjctLjdMOS43MiAzWk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNyAyLjFhOC4xOCA4LjE4IDAgMCAxIDIuNiAwIC43NS43NSAwIDAgMS0uMjQgMS40OSA2LjY4IDYuNjggMCAwIDAtMi4xMiAwQS43NS43NSAwIDEgMSA4LjcgMi4xWk02LjM5IDMuNjhjLjI0LjM0LjE2LjgtLjE4IDEuMDUtLjU3LjQxLTEuMDguOTItMS41IDEuNWEuNzUuNzUgMCAwIDEtMS4yMS0uODhBOC4wNCA4LjA0IDAgMCAxIDUuMzQgMy41YS43NS43NSAwIDAgMSAxLjA1LjE3Wm03LjIyIDBhLjc1Ljc1IDAgMCAxIDEuMDUtLjE3IDguMDQgOC4wNCAwIDAgMSAxLjg0IDEuODQuNzUuNzUgMCAwIDEtMS4yMi44NyA2LjU0IDYuNTQgMCAwIDAtMS41LTEuNS43NS43NSAwIDAgMS0uMTctMS4wNFpNMi45NyA4LjA3Yy40LjA4LjY4LjQ2LjYyLjg3YTYuNjggNi42OCAwIDAgMCAwIDIuMTIuNzUuNzUgMCAwIDEtMS40OC4yNCA4LjE5IDguMTkgMCAwIDEgMC0yLjZjLjA2LS40MS40NS0uNjkuODYtLjYyWm0xNC4wNiAwYy40MS0uMDYuOC4yMi44Ni42My4xNC44NS4xNCAxLjc1IDAgMi42YS43NS43NSAwIDAgMS0xLjQ4LS4yNGMuMTItLjY5LjEyLTEuNDMgMC0yLjEyLS4wNi0uNC4yMS0uOC42Mi0uODZaTTMuNjcgMTMuNjJhLjc1Ljc1IDAgMCAxIDEuMDUuMThjLjQxLjU3LjkyIDEuMDggMS41IDEuNWEuNzUuNzUgMCAxIDEtLjg4IDEuMjEgOC4wNCA4LjA0IDAgMCAxLTEuODQtMS44NC43NS43NSAwIDAgMSAuMTctMS4wNVptMTIuNjYgMGMuMzQuMjUuNDEuNzEuMTcgMS4wNWE4LjA0IDguMDQgMCAwIDEtMS44NCAxLjg0Ljc1Ljc1IDAgMCAxLS44Ny0xLjIyIDYuNTQgNi41NCAwIDAgMCAxLjUtMS41Ljc1Ljc1IDAgMCAxIDEuMDQtLjE3Wm0tOC4yNSAzLjQyYy4wNy0uNC40NS0uNjguODYtLjYyLjY5LjEyIDEuNDMuMTIgMi4xMiAwYS43NS43NSAwIDAgMSAuMjQgMS40OGMtLjg1LjE0LTEuNzUuMTQtMi42IDBhLjc1Ljc1IDAgMCAxLS42Mi0uODZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjQ0IDIuMTVhOC4yIDguMiAwIDAgMSAzLjEyIDAgLjUuNSAwIDAgMS0uMi45OCA3LjIgNy4yIDAgMCAwLTIuNzMgMCAuNS41IDAgMCAxLS4yLS45OFptNS4zMSAxLjM0YS41LjUgMCAwIDEgLjctLjE0IDguMDQgOC4wNCAwIDAgMSAyLjIgMi4yLjUuNSAwIDEgMS0uODMuNTYgNy4wNCA3LjA0IDAgMCAwLTEuOTMtMS45My41LjUgMCAwIDEtLjE0LS43Wm0tNy41IDBhLjUuNSAwIDAgMS0uMTQuNjlBNy4wNCA3LjA0IDAgMCAwIDQuMTggNi4xYS41LjUgMCAwIDEtLjgzLS41NiA4LjA0IDguMDQgMCAwIDEgMi4yLTIuMi41LjUgMCAwIDEgLjcuMTRaTTIuNzQgOC4wNWEuNS41IDAgMCAxIC40LjU4IDcuMiA3LjIgMCAwIDAgMCAyLjc0LjUuNSAwIDAgMS0uOTkuMiA4LjIgOC4yIDAgMCAxIDAtMy4xMy41LjUgMCAwIDEgLjU5LS40Wm0xNC41MiAwYS41LjUgMCAwIDEgLjU5LjM5IDguMiA4LjIgMCAwIDEgMCAzLjEyLjUuNSAwIDEgMS0uOTgtLjIgNy4yIDcuMiAwIDAgMCAwLTIuNzMuNS41IDAgMCAxIC4zOS0uNThabS0xMy43OCA1LjdhLjUuNSAwIDAgMSAuNy4xNCA3LjA0IDcuMDQgMCAwIDAgMS45MyAxLjkzLjUuNSAwIDAgMS0uNTYuODMgOC4wNCA4LjA0IDAgMCAxLTIuMi0yLjIuNS41IDAgMCAxIC4xMy0uN1ptMTMuMDMgMGMuMjMuMTYuMy40Ny4xNC43YTguMDQgOC4wNCAwIDAgMS0yLjIgMi4yLjUuNSAwIDAgMS0uNTYtLjgzIDcuMDQgNy4wNCAwIDAgMCAxLjkzLTEuOTMuNS41IDAgMCAxIC43LS4xNFptLTguNDYgMy41MWEuNS41IDAgMCAxIC41OC0uNGMuODkuMTggMS44NS4xOCAyLjc0IDBhLjUuNSAwIDAgMSAuMTkuOTkgOC4yIDguMiAwIDAgMS0zLjEyIDAgLjUuNSAwIDAgMS0uNC0uNTlaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50SGFsZlZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhpbnRIYWxmVmVydGljYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE3Ljk2IDcuOTYgMCAwIDAtOCA4IDguMDggOC4wOCAwIDAgMCAxLjUgNC42NkE4LjA0IDguMDQgMCAwIDAgMTAgMThjLjQ0IDAgLjg4LS4wNCAxLjMtLjFhLjc1Ljc1IDAgMCAwLS4yNC0xLjQ5IDYuNSA2LjUgMCAxIDEgMC0xMi44My43NS43NSAwIDAgMCAuMjQtMS40N2MtLjQyLS4wNy0uODYtLjEtMS4zLS4xWm00LjY2IDEuNWEuNzUuNzUgMCAwIDAtLjg3IDEuMjJjLjU3LjQxIDEuMDguOTIgMS41IDEuNWEuNzUuNzUgMCAwIDAgMS4yMS0uODggOC4wNCA4LjA0IDAgMCAwLTEuODQtMS44NFptMy4yMyA1LjJhLjc1Ljc1IDAgMCAwLTEuNDguMjRjLjEyLjY5LjEyIDEuNDMgMCAyLjEyYS43NS43NSAwIDAgMCAxLjQ4LjI0Yy4xNC0uODUuMTQtMS43NSAwLTIuNlptLTEuMzkgNS45NmEuNzUuNzUgMCAwIDAtMS4yMi0uODcgNi41NCA2LjU0IDAgMCAxLTEuNSAxLjUuNzUuNzUgMCAxIDAgLjg4IDEuMjEgOC4wNCA4LjA0IDAgMCAwIDEuODQtMS44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpbnRIYWxmVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhpbnRIYWxmVmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNDQgMi4xNWE3Ljk1IDcuOTUgMCAwIDAtNi4zNCA2LjYgOC4wNiA4LjA2IDAgMCAwIDMuNDYgNy45IDguMDggOC4wOCAwIDAgMCA2IDEuMTkuNS41IDAgMCAwLS4yLS45NyA3IDcgMCAxIDEgMC0xMy43My41LjUgMCAwIDAgLjItLjk5IDguMDQgOC4wNCAwIDAgMC0zLjEyIDBabTYgMS4yYS41LjUgMCAwIDAtLjU1LjgzIDcuMDQgNy4wNCAwIDAgMSAxLjkzIDEuOTMuNS41IDAgMSAwIC44My0uNTYgOC4wNCA4LjA0IDAgMCAwLTIuMi0yLjJabTMuNCA1LjA5YS41LjUgMCAxIDAtLjk3LjIgNy4yIDcuMiAwIDAgMSAwIDIuNzMuNS41IDAgMSAwIC45OC4yIDguMiA4LjIgMCAwIDAgMC0zLjEzWm0tMS4xOSA2YS41LjUgMCAxIDAtLjgzLS41NSA3LjA0IDcuMDQgMCAwIDEtMS45MyAxLjkzLjUuNSAwIDEgMCAuNTUuODMgOC4wNCA4LjA0IDAgMCAwIDIuMjEtMi4yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSW1hZ2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNSA3aDIuNDhBNS41IDUuNSAwIDEgMCA3IDEyLjk4VjEwLjVBMy41IDMuNSAwIDAgMSAxMC41IDdabTAgMUEyLjUgMi41IDAgMCAwIDggMTAuNXY1YzAgLjUuMTUuOTguNDEgMS4zOGwzLjE4LTMuMTdhMiAyIDAgMCAxIDIuODIgMGwzLjE4IDMuMTdjLjI2LS40LjQxLS44Ny40MS0xLjM4di01QTIuNSAyLjUgMCAwIDAgMTUuNSA4aC01Wm01LjUgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS44OCA2LjU5TDEzLjcgMTQuNGExIDEgMCAwIDAtMS40MiAwTDkuMTIgMTcuNmMuNC4yNi44Ny40MSAxLjM4LjQxaDVjLjUgMCAuOTgtLjE1IDEuMzgtLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUltYWdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgM2E0LjUgNC41IDAgMCAwLS41IDguOTd2MUE1LjUgNS41IDAgMSAxIDEyLjk4IDdoLTFBNC41IDQuNSAwIDAgMCA3LjUgM1ptOC41IDhhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNS41LTNBMi41IDIuNSAwIDAgMCA4IDEwLjV2NWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNS41IDhoLTVaTTkgMTAuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuMjMtLjA1LjQ1LS4xNS42NWwtMi40NC0yLjQ0YTIgMiAwIDAgMC0yLjgyIDBsLTIuNDQgMi40NEExLjUgMS41IDAgMCAxIDkgMTUuNXYtNVptLjg1IDYuMzUgMi40NC0yLjQ0YTEgMSAwIDAgMSAxLjQyIDBsMi40NCAyLjQ0Yy0uMi4xLS40Mi4xNS0uNjUuMTVoLTVhMS41IDEuNSAwIDAgMS0uNjUtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTGluZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3Ljk4IDEwLjVIMi4wMmE4IDggMCAwIDAgMTUuOTYgMFptMC0xSDIuMDJhOCA4IDAgMCAxIDE1Ljk2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVMaW5lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjAyIDkuNWgxMy45NmE3IDcgMCAwIDAtMTMuOTYgMFpNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptMTQuOTguNUgzLjAyYTcgNyAwIDAgMCAxMy45NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTXVsdGlwbGVTdWJ0cmFjdENoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVNdWx0aXBsZVN1YnRyYWN0Q2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjkyIDZBNyA3IDAgMCAwIDYgMTIuOTIgNiA2IDAgMSAxIDEyLjkyIDZabS0zLjggMEg0LjVhLjUuNSAwIDAgMCAwIDFoMy4yYy40NC0uMzguOTItLjcyIDEuNDItMVpNMTkgMTNhNiA2IDAgMSAxLTEyIDAgNiA2IDAgMCAxIDEyIDBabS0zLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTXVsdGlwbGVTdWJ0cmFjdENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlTXVsdGlwbGVTdWJ0cmFjdENoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAyYTUgNSAwIDAgMSA0LjkyIDQuMDhjLjMyLS4wNS42Ni0uMDggMS0uMDhBNiA2IDAgMSAwIDYgMTIuOTJjMC0uMzQuMDMtLjY4LjA4LTFBNSA1IDAgMCAxIDcgMlpNNC41IDZhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMTEuMzUgNS44NWEuNS41IDAgMCAwLS43LS43bC0yLjY1IDIuNjQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNaTTEzIDE5YTYgNiAwIDEgMCAwLTEyIDYgNiAwIDAgMCAwIDEyWm0wLTFhNSA1IDAgMSAxIDAtMTAgNSA1IDAgMCAxIDAgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wibTE1LjMgMTYgMS44NSAxLjg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w0IDQuNzFBOCA4IDAgMCAwIDE1LjMgMTZabTIuNy02YzAgMS42Ny0uNTEgMy4yMS0xLjM4IDQuNUw1LjUgMy4zOEE4IDggMCAwIDEgMTggMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0LjcgMi4xNSAyLjg2YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43TDE1LjI5IDE2QTggOCAwIDAgMSA0IDQuN1ptMTAuNTggMTAuNkw0LjcxIDUuNDFhNyA3IDAgMCAwIDkuODcgOS44N1pNMTcgMTBjMCAxLjM5LS40IDIuNjktMS4xIDMuNzdsLjcyLjczQTggOCAwIDAgMCA1LjUgMy4zOWwuNzIuNzFBNyA3IDAgMCAxIDE3IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlU2hhZG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZVNoYWRvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiAxNS4zYy4yNS0uMjkuNDgtLjYuNjktLjlsLTMuMy0zLjNhLjUuNSAwIDAgMSAuNzEtLjdsMy4xIDMuMWMuMTgtLjM3LjMzLS43NS40NS0xLjE1TDE0LjQgOS4xYS41LjUgMCAwIDEgLjctLjdsMi44MSAyLjhhOC4wNiA4LjA2IDAgMCAwIC4wOC0xLjVsLTMuMzQtMy4zNWEuNS41IDAgMCAxIC43LS43bDIuNDEgMi40YTggOCAwIDEgMC05LjcgOS43MWwtMi40MS0yLjRhLjUuNSAwIDAgMSAuNy0uNzFsMy4zNSAzLjM0YTcuOTkgNy45OSAwIDAgMCAxLjUtLjA4bC0yLjgtMi44YS41LjUgMCAwIDEgLjctLjcxbDMuMjUgMy4yNWMuNC0uMTIuNzgtLjI3IDEuMTQtLjQ1bC0zLjEtMy4xYS41LjUgMCAwIDEgLjcxLS43bDMuMyAzLjI5Yy4zLS4yMS42MS0uNDQuOS0uN2wtMy4xNS0zLjE0YS41LjUgMCAwIDEgLjctLjdMMTYgMTUuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVTaGFkb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZVNoYWRvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMjkgMTdhNy4xIDcuMSAwIDAgMS0xLjczLS4xNWwtMi4yLTIuMmEuNS41IDAgMSAwLS43Mi43bC40Ny40N2E3IDcgMCAxIDEgOS43Mi05LjdsLS40OC0uNDdhLjUuNSAwIDAgMC0uNy43bDIuMiAyLjIxQTcuMDMgNy4wMyAwIDAgMSAxNyAxMC4zbC0xLjg5LTEuOWEuNS41IDAgMCAwLS43LjcxbDIuNDMgMi40NGMtLjEuNDEtLjIyLjgyLS4zOSAxLjJMMTQuMSAxMC40YS41LjUgMCAwIDAtLjcuN2wyLjU2IDIuNTdjLS4yLjMyLS40Mi42My0uNjcuOTFsLTIuNDQtMi40M2EuNS41IDAgMCAwLS43LjdsMi40MyAyLjQ0Yy0uMjguMjUtLjU5LjQ3LS45MS42N0wxMS4xIDEzLjRhLjUuNSAwIDAgMC0uNy43bDIuMzQgMi4zNWMtLjM5LjE2LS43OS4yOS0xLjIuMzhMOS4xIDE0LjRhLjUuNSAwIDEgMC0uNy43bDEuODkgMS45Wk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZVNtYWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZVNtYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDEwYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZVNtYWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVTbWFsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMTJhMiAyIDAgMSAxIDAtNCAyIDIgMCAwIDEgMCA0Wm0wIDFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2l0eUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXR5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDJjLjI4IDAgLjUuMjIuNS41VjRoMWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjU1YTIuNSAyLjUgMCAwIDAtMiAyLjQ1VjE4aC0yVjhhMiAyIDAgMCAwLTItMnYtLjVDOCA0LjY3IDguNjcgNCA5LjUgNGgxVjIuNWMwLS4yOC4yMi0uNS41LS41Wk04LjY0IDcuMjRjLS4yOC0uMi0uNDgtLjItLjY0LS4xNWEuNzcuNzcgMCAwIDAtLjE0LjA2TDQuNzMgOS4wM0ExLjUgMS41IDAgMCAwIDQgMTAuMzJ2Ni4xOGMwIC44My42NyAxLjUgMS41IDEuNUg5VjhhMSAxIDAgMCAwLS4zNi0uNzZaTTE1LjUgOWgtMWMtLjgzIDAtMS41LjY4LTEuNSAxLjVWMThoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXR5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXR5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYy4yOCAwIC41LjIyLjUuNVY0aDFjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgyLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxNi41di02LjE4YzAtLjUzLjI4LTEuMDIuNzMtMS4yOWwzLTEuOGMuMDktLjA1LjE4LS4xLjI3LS4xM1Y1LjVDNyA0LjY3IDcuNjcgNCA4LjUgNGgxVjIuNWMwLS4yOC4yMi0uNS41LS41Wk04IDcuMWMuNTYuMiAxIC43MyAxIDEuNDJWMTdoMnYtNi41YzAtLjY1LjQyLTEuMiAxLTEuNDFWNS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41djEuNlptNC41IDIuOWEuNS41IDAgMCAwLS41LjVWMTdoMy41YS41LjUgMCAwIDAgLjUtLjV2LTZhLjUuNSAwIDAgMC0uNS0uNWgtM1pNNy4yNCA4LjA5bC0zIDEuOGEuNS41IDAgMCAwLS4yNC40M3Y2LjE4YzAgLjI4LjIyLjUuNS41SDhWOC41MmEuNS41IDAgMCAwLS43Ni0uNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGFzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJoLTN2Ni41YS41LjUgMCAwIDEtLjguNEw4LjUgNy42MiA2LjggOC45YS41LjUgMCAwIDEtLjgtLjRWMlptNCAwSDd2NS41bDEuMi0uOWEuNS41IDAgMCAxIC42IDBsMS4yLjlWMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YTIgMiAwIDAgMSAxLTEuNzNWMTZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xaC0yVjJoMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTItMnY2LjVhLjUuNSAwIDAgMCAuOC40bDEuNy0xLjI4IDEuNyAxLjI4YS41LjUgMCAwIDAgLjgtLjRWMkg2Wm0xIDUuNVYzaDN2NC41bC0xLjItLjlhLjUuNSAwIDAgMC0uNiAwTDcgNy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xhc3NpZmljYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xhc3NpZmljYXRpb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNzMgMi43M2MtLjIzLjIzLS41MS42LS43OSAxLjAxYTM0LjQ3IDM0LjQ3IDAgMCAwLTEuNyAyLjcyTDkuNjUgNC44OGEzIDMgMCAwIDAtNC4yNCAwTDMuNSA2Ljc5YTEgMSAwIDAgMCAwIDEuNDFsLjMzLjM0LTEuNCAxLjRhMS41IDEuNSAwIDAgMCAwIDIuMTFsNS41MiA1LjUxYTEuNSAxLjUgMCAwIDAgMi4xMiAwbDEuNC0xLjQuMzIuMzRhMSAxIDAgMCAwIDEuNDIgMGwxLjktMS45MWEzIDMgMCAwIDAgMC00LjI1bC0xLjU3LTEuNThhNTkuMyA1OS4zIDAgMCAwIDIuNzItMS43Yy40LS4yOC43OC0uNTYgMS0uOGEyLjUgMi41IDAgMCAwLTMuNTMtMy41M1ptLTIuOTggMTIuNzMtMS4zOSAxLjRhLjUuNSAwIDAgMS0uNyAwbC01LjUxLTUuNTFhLjUuNSAwIDAgMSAwLS43MWwxLjQtMS40IDYuMiA2LjIyWm0yLjA2LTcuNDMtLjg0LS44NC4wNC0uMDdhNTguOTcgNTguOTcgMCAwIDEgMS43NS0yLjhjLjI4LS40MS41Mi0uNzIuNjgtLjg4YTEuNSAxLjUgMCAxIDEgMi4xMiAyLjEyYy0uMTYuMTYtLjQ3LjQtLjg3LjY4YTMzLjQgMzMuNCAwIDAgMS0yLjQ0IDEuNTRsLS4zNy4yLS4wNy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzaWZpY2F0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzc2lmaWNhdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuOTQgMy43NGMuMjgtLjQuNTYtLjc4LjgtMWEyLjUgMi41IDAgMSAxIDMuNTMgMy41M2MtLjIzLjIzLS42LjUxLTEuMDEuNzlhMzQuMzMgMzQuMzMgMCAwIDEtMi43MiAxLjdsMS41OCAxLjU4YTMgMyAwIDAgMSAwIDQuMjVsLTEuOTEgMS45YTEgMSAwIDAgMS0xLjQyIDBsLS4zMy0uMzItMS40IDEuMzlhMS41IDEuNSAwIDAgMS0yLjExIDBsLTUuNTEtNS41YTEuNSAxLjUgMCAwIDEgMC0yLjEzbDEuNC0xLjQtLjM0LS4zM2ExIDEgMCAwIDEgMC0xLjQxbDEuOTEtMS45MWEzIDMgMCAwIDEgNC4yNCAwbDEuNTkgMS41OGE3NS4xNSA3NS4xNSAwIDAgMSAxLjctMi43MlptLTguNCA1LjUtMS40IDEuNGEuNS41IDAgMCAwIDAgLjdsNS41MSA1LjUxYy4yLjIuNTEuMi43MSAwbDEuNC0xLjQtNi4yMi02LjJaTTEyLjg4IDhhNjIuOTUgNjIuOTUgMCAwIDAgMi44LTEuNzVjLjQxLS4yOC43Mi0uNTIuODgtLjY4YTEuNSAxLjUgMCAxIDAtMi4xMi0yLjEyYy0uMTYuMTYtLjQuNDctLjY4Ljg3YTMzLjM0IDMzLjM0IDAgMCAwLTEuNTQgMi40NGwtLjIuMzctLjA1LjA3Ljg0Ljg0LjA3LS4wNFptLTMuOTMtMi40YTIgMiAwIDAgMC0yLjgzIDBMNC4yIDcuNDlsOC4yOSA4LjMgMS45MS0xLjkxYTIgMiAwIDAgMCAwLTIuODNMOC45NSA1LjU5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xlYXJGb3JtYXR0aW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsZWFyRm9ybWF0dGluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjQ3IDNjLS4zOCAwLS43LjI4LS43NS42NWwtLjEzIDFhLjc1Ljc1IDAgMSAwIDEuNDkuMmwuMDQtLjM1SDcuOWwtMS41NyA5aC0uNThhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS40bDEuNTctOWgyLjY5bC0uMDIuMTZhLjc1Ljc1IDAgMSAwIDEuNDguMmwuMTQtMS4wMWEuNzUuNzUgMCAwIDAtLjc1LS44NWgtOC41Wk0yLjc1IDE1LjVhLjc1Ljc1IDAgMCAwIDAgMS41SDkuNmE1LjQ2IDUuNDYgMCAwIDEtLjUtMS41SDIuNzRabTE2LjI1LTFhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xlYXJGb3JtYXR0aW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGVhckZvcm1hdHRpbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuMjUgM2EuNS41IDAgMCAwLS41LjQybC0uMjQgMS41YS41LjUgMCAwIDAgLjk4LjE2TDQuNjcgNGgzLjU3bC0xLjczIDkuOTFhLjUuNSAwIDAgMC0uMDEuMDloLTFhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtMWwxLjc0LTkuOTFBLjUuNSAwIDAgMCA5LjI1IDRoMy40MWwtLjE1LjkyYS41LjUgMCAxIDAgLjk4LjE2bC4yNS0xLjVhLjUuNSAwIDAgMC0uNDktLjU4aC05Wk05LjYgMTdjLS4xNi0uMzItLjMtLjY1LS40LTFIMi41YS41LjUgMCAwIDAgMCAxaDcuMVptOS40LTIuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQzRGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDNEYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabS0xIDEwdi02YS41LjUgMCAwIDEgMSAwdjZhLjUuNSAwIDAgMS0xIDBabTUuNS41YS41LjUgMCAwIDEtLjUtLjV2LTZhLjUuNSAwIDAgMSAxIDB2NmEuNS41IDAgMCAxLS41LjVabS0zLS41di02YS41LjUgMCAwIDEgMSAwdjZhLjUuNSAwIDAgMS0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQzRGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQzRGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDE0LjVhLjUuNSAwIDAgMCAxIDB2LTZhLjUuNSAwIDAgMC0xIDB2NlptNS41LjVhLjUuNSAwIDAgMS0uNS0uNXYtNmEuNS41IDAgMCAxIDEgMHY2YS41LjUgMCAwIDEtLjUuNVptLTMtLjVhLjUuNSAwIDAgMCAxIDB2LTZhLjUuNSAwIDAgMC0xIDB2NlpNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA0aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYxMmEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djQuN2E1LjUgNS41IDAgMCAwLTUuNzQgOC44SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdjLS4zMi0uMDgtLjY2LS4xNS0xLS4xOFY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoNC4xYy4xOC4zNi40LjcuNjYgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJydXNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJydXNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43N2EyIDIgMCAwIDAtLjQxLjMybC0yLjQ3IDIuNDZhMy41IDMuNSAwIDAgMC0zLjgyIDIuMDJsLS4xNS4zMmMtLjAzLjA4LS4wNS4xMS0uMS4xOGEuNDEuNDEgMCAwIDEtLjE0LjE0Yy0uMTEuMDgtLjM1LjItLjg0LjM1YTEuNSAxLjUgMCAwIDAtLjc1IDIuMzdjLjE2LjIuMzQuNC41Mi41N0g1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOS4yIDcuM2ExIDEgMCAwIDEgMCAxLjRsLTIuODcgMi44OWMuMzUuOS4xNiAxLjk1LS41NiAyLjY4YTQuMTIgNC4xMiAwIDAgMS02LjE2LS40Ni41LjUgMCAwIDEgLjI1LS43OWMxLjA3LS4zMiAxLjM4LS42NSAxLjU1LS45My4wNy0uMTEuMTItLjIyLjE4LS4zNWwuMS0uMjNhMi41IDIuNSAwIDAgMSAzLjIyLTEuMzRsMi44OC0yLjg4YTEgMSAwIDAgMSAxLjQyIDBabS00LjE0IDQuMTRhMS41IDEuNSAwIDAgMC0yLjEyIDBjLS4xNi4xNi0uMjUuMzItLjM0LjVsLS4wNy4xNWEyLjc1IDIuNzUgMCAwIDEtMS42MyAxLjYyIDMuMSAzLjEgMCAwIDAgNC4xNi0uMTUgMS41IDEuNSAwIDAgMCAwLTIuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCcnVzaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnJ1c2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43N2EyIDIgMCAwIDAtLjQxLjMybC0uNTkuNThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDEuNTljLjA1LjE1LjEzLjMuMjMuNDMuMTYuMi4zNC40LjUyLjU3SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm05LjIgNy4zYTEgMSAwIDAgMSAwIDEuNGwtMi44NyAyLjg5Yy4zNS45LjE2IDEuOTUtLjU2IDIuNjhhNC4xMiA0LjEyIDAgMCAxLTYuMTYtLjQ2LjUuNSAwIDAgMSAuMjUtLjc5YzEuMDctLjMyIDEuMzgtLjY1IDEuNTUtLjkzLjA3LS4xMS4xMi0uMjIuMTgtLjM1bC4xLS4yM2EyLjUgMi41IDAgMCAxIDMuMjItMS4zNGwyLjg4LTIuODhhMSAxIDAgMCAxIDEuNDIgMFptLTQuMTQgNC4xNGExLjUgMS41IDAgMCAwLTIuMTIgMGMtLjE2LjE2LS4yNS4zMi0uMzQuNWwtLjA3LjE1YTIuNzUgMi43NSAwIDAgMS0xLjYzIDEuNjIgMy4xIDMuMSAwIDAgMCA0LjE2LS4xNSAxLjUgMS41IDAgMCAwIDAtMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJ1bGxldExpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnVsbGV0TGlzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjA5IDNINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM2MtLjY1IDAtMS4yLjQyLTEuNDEgMVpNOC41IDNoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMVpNOSA4LjVjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0tMS02YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTAgM2EuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDMuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJ1bGxldExpc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJ1bGxldExpc3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgOC41YzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptLTEtNmEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdEx0ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0THRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDkgM0g1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zYy0uNjUgMC0xLjIuNDItMS40MSAxWk04LjUgM2gzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWk05IDguNWMwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabS0xLTZhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMCAzYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCdWxsZXRMaXN0THRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0THRyUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDguNWMwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabS0xLTZhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMCAzYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0UnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAyaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Yy4yLS41OC43Ni0xIDEuNDEtMVpNOCAzLjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVabTQuNzUgNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTAgM2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTEyIDE0LjVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptLTEtNmEuNS41IDAgMCAwLS41LS41SDdhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgLjUtLjVabTAgM2EuNS41IDAgMCAwLS41LS41SDdhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgLjUtLjVabTAgM2EuNS41IDAgMCAwLS41LS41SDdhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCdWxsZXRMaXN0UnRsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0UnRsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi43NSA5LjI1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptMCAzYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNMTIgMTQuNWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWm0tMS02YS41LjUgMCAwIDAtLjUtLjVIN2EuNS41IDAgMCAwIDAgMWgzLjVhLjUuNSAwIDAgMCAuNS0uNVptMCAzYS41LjUgMCAwIDAtLjUtLjVIN2EuNS41IDAgMCAwIDAgMWgzLjVhLjUuNSAwIDAgMCAuNS0uNVptMCAzYS41LjUgMCAwIDAtLjUtLjVIN2EuNS41IDAgMCAwIDAgMWgzLjVhLjUuNSAwIDAgMCAuNS0uNVpNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA0aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYxMmEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdhNS41IDUuNSAwIDAgMC01Ljc0IDguOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZENoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdjLS4zMi0uMDgtLjY2LS4xNS0xLS4xOFY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoNC4xYy4xOC4zNi40LjcuNjYgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDbG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDkuNWEuNS41IDAgMCAwLTEgMFYxMWMwIC4yOC4yMi41LjUuNWgxLjVhLjUuNSAwIDAgMCAwLTFoLTF2LTFaTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTUuNSA4YTQgNCAwIDEgMC04IDAgNCA0IDAgMCAwIDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRDbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNSA5LjVhLjUuNSAwIDAgMC0xIDBWMTFjMCAuMjguMjIuNS41LjVoMS41YS41LjUgMCAwIDAgMC0xaC0xdi0xWk0xMCAxNWE0IDQgMCAxIDAgMC04IDQgNCAwIDAgMCAwIDhabTAtMWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZaTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ29kZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRDb2RlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NS44OGExLjUgMS41IDAgMCAwLTIuNDQuNzFsLS40IDEuNDFoLS43NGExLjUgMS41IDAgMCAwLTIuNTUtLjQ4bC0xLjUgMS43NWExLjUgMS41IDAgMCAwIDAgMS45NWwxLjUgMS43NWMuMjkuMzUuNy41MyAxLjEzLjUzSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0yLjg4IDEwLjMyYS41LjUgMCAxIDAtLjc2LS42NWwtMS41IDEuNzVhLjUuNSAwIDAgMCAwIC42NWwxLjUgMS43NWEuNS41IDAgMCAwIC43LjA2LjUuNSAwIDAgMCAuMDYtLjcxbC0xLjIyLTEuNDIgMS4yMi0xLjQzWm00LjEtMS42OGEuNS41IDAgMSAwLS45Ni0uMjhsLTIgN2EuNS41IDAgMSAwIC45Ny4yOGwyLTdabTEuMiA1LjI0YS41LjUgMCAwIDEtLjA2LS43MWwxLjIyLTEuNDItMS4yMi0xLjQzYS41LjUgMCAwIDEgLjc2LS42NWwxLjUgMS43NWEuNS41IDAgMCAxIDAgLjY1bC0xLjUgMS43NWEuNS41IDAgMCAxLS43LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ29kZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ29kZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY1Ljg4YTEuNSAxLjUgMCAwIDAtMS0uMzhWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDMuOTZsLjQuNDdjLjMuMzUuNzIuNTMgMS4xNC41M0g1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNi45OSA4LjY0YS41LjUgMCAxIDAtLjk3LS4yOGwtMiA3YS41LjUgMCAxIDAgLjk3LjI4bDItN1ptLTQuMTEgMS42OGEuNS41IDAgMSAwLS43Ni0uNjVsLTEuNSAxLjc1YS41LjUgMCAwIDAgMCAuNjVsMS41IDEuNzVhLjUuNSAwIDEgMCAuNzYtLjY1bC0xLjIyLTEuNDIgMS4yMi0xLjQzWm01LjMgMy41NmEuNS41IDAgMCAxLS4wNi0uNzFsMS4yMi0xLjQyLTEuMjItMS40M2EuNS41IDAgMCAxIC43Ni0uNjVsMS41IDEuNzVhLjUuNSAwIDAgMSAwIC42NWwtMS41IDEuNzVhLjUuNSAwIDAgMS0uNy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZERhdGFCYXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRGF0YUJhckZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNSA4LjV2Mi41YS41LjUgMCAwIDEtMSAwVjEyYS41LjUgMCAwIDEgMSAwWm0tMy0zYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVaTTggNy41djdhLjUuNSAwIDAgMS0xIDB2LTdhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmREYXRhQmFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXRhQmFyUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDRoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djEyYS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41Wm03LjUgOGEuNS41IDAgMCAwLTEgMHYyLjVhLjUuNSAwIDAgMCAxIDBWMTJabS0zLTNjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNOCA3LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZERheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAxMWg0djNIOHYtM1ptLS45MS04Yy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNyA3LjVjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIDAtMWgtNWEuNS41IDAgMCAwLS41LjVaTTcgMTF2M2ExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZERheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDcuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpNNyAxMWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi0zWm0xIDB2M2g0di0zSDhabS0uOTEtOGMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41SDhsLjA2LS4zNS4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OGw0LjgzLTQuODNjLjUzLS41MyAxLjIxLS44IDEuOS0uODRWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTEuOTggMTEuODggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNUg4bC4wNi0uMzUuMTYtLjY1SDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXY0LjczYy4zMi0uMTQuNjYtLjIxIDEtLjIzVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0xLjk4IDExLjg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRXJyb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdhNS41IDUuNSAwIDAgMC01Ljc0IDguOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRFcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRXJyb3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43Yy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkSGVhcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkSGVhcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNVY5Yy0uNy4wMy0xLjQuMjUtMiAuNjZhMy44NSAzLjg1IDAgMCAwLTQuODcgNS45MUwxMS41NSAxOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS4xNSAxNS42OGEuNS41IDAgMCAwIC43IDBsMy44Mi0zLjgxYTIuODUgMi44NSAwIDEgMC00LjAzLTQuMDRsLS4xNC4xNC0uMTMtLjE0YTIuODUgMi44NSAwIDEgMC00LjA0IDQuMDRsMy44MiAzLjgxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkSGVhcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEhlYXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjljLS4zNC4wMi0uNjcuMDctMSAuMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDUuMDVsMSAxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0xLjMzIDcuODNhMi44NSAyLjg1IDAgMCAxIDQuMDQgMGwuMTMuMTQuMTQtLjE0YTIuODUgMi44NSAwIDAgMSA0LjAzIDQuMDRsLTMuODEgMy44MWEuNS41IDAgMCAxLS43MSAwbC0zLjgyLTMuODFhMi44NSAyLjg1IDAgMCAxIDAtNC4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEltYWdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgtMy41QTMuNSAzLjUgMCAwIDAgOSAxMi41djRjMCAuNTQuMTIgMS4wNS4zNCAxLjVINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTEuNSA5LjVhMi41IDIuNSAwIDAgMSAyLjUtMi41aDRhMi41IDIuNSAwIDAgMSAyLjUgMi41djRjMCAuNS0uMTUuOTgtLjQxIDEuMzhsLTMuMDMtMy4wM2ExLjUgMS41IDAgMCAwLTIuMTIgMGwtMy4wMyAzLjAzYy0uMjYtLjQtLjQxLS44Ny0uNDEtMS4zOHYtNFptNyAuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptLTUuODggNS44NGMuNC4yNi44Ny40MSAxLjM4LjQxaDRjLjUgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwbC0zLjAzIDMuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRJbWFnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkSW1hZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgtMVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoMy41NGMuMDUuMzUuMTUuNjkuMyAxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0xLjUgOS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTMuMDMgMy4wM2MtLjI2LS40LS40MS0uODctLjQxLTEuMzh2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41IDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMGwtMy4wMyAzLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTGV0dGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZExldHRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgzLjU5YTEuNSAxLjUgMCAwIDEgLjA0LTEuMWwzLjUtOGExLjUgMS41IDAgMCAxIDIuNzQgMGwuNjMgMS40NFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWm0zIDFhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFoM1ptMi45NSA2LjNhLjUuNSAwIDAgMC0uOTEgMGwtMy41IDhhLjUuNSAwIDEgMCAuOTIuNGwxLjE4LTIuN2gzLjcybDEuMTggMi43YS41LjUgMCAwIDAgLjkyLS40bC0zLjUtOFptLjk3IDQuN2gtMi44NEwxNCAxMC43NSAxNS40MiAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExldHRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGV0dGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djUuODRsLS42My0xLjQ0YTEuNSAxLjUgMCAwIDAtLjM3LS41MVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoMy41OWExLjUgMS41IDAgMCAwIDAgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS45NSA2LjNhLjUuNSAwIDAgMC0uOTEgMGwtMy41IDhhLjUuNSAwIDAgMCAuOTIuNGwxLjE4LTIuN2gzLjcybDEuMTggMi43YS41LjUgMCAwIDAgLjkyLS40bC0zLjUtOFptLjk3IDQuN2gtMi44NUwxNCAxMC43NSAxNS40MiAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExpbmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjExaC0zLjVhNC41IDQuNSAwIDAgMC0zLjc0IDdINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE1LjVhMy41IDMuNSAwIDAgMC0zLjUtMy41aC0uMDlhLjUuNSAwIDAgMCAuMDkgMWguMTZhMi41IDIuNSAwIDAgMS0uMTYgNWwtLjEuMDFhLjUuNSAwIDAgMCAuMSAxVjE5aC4yYTMuNSAzLjUgMCAwIDAgMy4zLTMuNVptLTYtM2EuNS41IDAgMCAwLS41LS41aC0uMmEzLjUgMy41IDAgMCAwIC4yIDdoLjA5YS41LjUgMCAwIDAtLjA5LTFoLS4xNmEyLjUgMi41IDAgMCAxIC4xNi01aC4wOWEuNS41IDAgMCAwIC40MS0uNVptMi41IDIuNWgtMy4wOWEuNS41IDAgMCAwIC4wOSAxaDMuMDlhLjUuNSAwIDAgMC0uMDktMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZExpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjVWMTFoLTFWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDIuNzZjLjEyLjM2LjMuNy41IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE1LjVhMy41IDMuNSAwIDAgMC0zLjUtMy41aC0uMDlhLjUuNSAwIDAgMCAuMDkgMWguMTZhMi41IDIuNSAwIDAgMS0uMTYgNWwtLjEuMDFhLjUuNSAwIDAgMCAuMSAxVjE5aC4yYTMuNSAzLjUgMCAwIDAgMy4zLTMuNVptLTYtM2EuNS41IDAgMCAwLS41LS41aC0uMmEzLjUgMy41IDAgMCAwIC4yIDdoLjA5YS41LjUgMCAwIDAtLjA5LTFoLS4xNmEyLjUgMi41IDAgMCAxIC4xNi01aC4wOWEuNS41IDAgMCAwIC40MS0uNVptMi41IDIuNWgtMy4wOWEuNS41IDAgMCAwIC4wOSAxaDMuMDlhLjUuNSAwIDAgMC0uMDktMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1hdGhGb3JtdWxhRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE1hdGhGb3JtdWxhRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuNjVhMS41IDEuNSAwIDAgMSAxLjkyLTIuMDVMMTEuMiAxNGExLjUgMS41IDAgMCAxIC4yMi0yLjk4bC4wMi0uMzJhMi45MiAyLjkyIDAgMCAxIDQuMjMtMi4zOGMuMTIuMDYuMjMuMTMuMzIuMjFWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTQuNDUgNy4yOGExLjkyIDEuOTIgMCAwIDEgMi43OC0xLjU3LjUuNSAwIDAgMS0uNDUuOS45Mi45MiAwIDAgMC0xLjMzLjc0bC0uMDkgMS4xN2gxLjE0YS41LjUgMCAxIDEgMCAxaC0xLjIxbC0uMjQgMy4yYTEuOTIgMS45MiAwIDAgMS0yLjc4IDEuNTcuNS41IDAgMSAxIC40Ni0uOS45Mi45MiAwIDAgMCAxLjMyLS43NGwuMjQtMy4xM2gtLjc5YS41LjUgMCAwIDEgMC0xaC44NmwuMS0xLjI0Wm01LjQgNC4wN2EuNS41IDAgMCAwLS43LS43bC0xLjA2IDEuMDUtLjQ2LS43M2ExIDEgMCAwIDAtMS40Mi0uMjguNS41IDAgMCAwIC41OC44MWwuNTcuOTMtMS4yMSAxLjIyYS41LjUgMCAwIDAgLjcuN2wxLjA2LTEuMDUuNDUuNzRjLjMxLjUuOTguNjEgMS40NC4yNmEuNS41IDAgMCAwLS42LS44bC0uNTctLjkyIDEuMjItMS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1hdGhGb3JtdWxhUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNYXRoRm9ybXVsYVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMy42NWExLjUgMS41IDAgMCAxLS4xMS0xSDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYzLjU3Yy4yMy4wNS40Ni4xMy42OC4yNS4xMi4wNi4yMy4xMy4zMi4yMVY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNC40NSA3LjI4YTEuOTIgMS45MiAwIDAgMSAyLjc4LTEuNTcuNS41IDAgMCAxLS40NS45LjkyLjkyIDAgMCAwLTEuMzMuNzRsLS4wOSAxLjE3aDEuMTRhLjUuNSAwIDEgMSAwIDFoLTEuMjFsLS4yNCAzLjJhMS45MiAxLjkyIDAgMCAxLTIuNzggMS41Ny41LjUgMCAxIDEgLjQ2LS45LjkyLjkyIDAgMCAwIDEuMzItLjc0bC4yNC0zLjEzaC0uNzlhLjUuNSAwIDAgMSAwLTFoLjg2bC4xLTEuMjRabTUuNCA0LjA3YS41LjUgMCAwIDAtLjctLjdsLTEuMDYgMS4wNS0uNDYtLjczYTEgMSAwIDAgMC0xLjQyLS4yOC41LjUgMCAwIDAgLjU4LjgxbC41Ny45My0xLjIxIDEuMjJhLjUuNSAwIDAgMCAuNy43bDEuMDYtMS4wNS40NS43NGMuMzEuNS45OC42MSAxLjQ0LjI2YS41LjUgMCAwIDAtLjYtLjhsLS41Ny0uOTIgMS4yMi0xLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTW9udGhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9udGhGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTcgMTBhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0xIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm01LTJhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0tMiAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEtMmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb250aFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9udGhSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgMTBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm01LTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMiAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEtMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk01LjUgNGgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb3JlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE1vcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMC40OGMtLjQzLjIyLS43OC41Ni0xIC45OWEyLjI1IDIuMjUgMCAwIDAtNCAwQTIuMjUgMi4yNSAwIDAgMCA2Ljk4IDE4SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0xLjc1IDE0YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTEzIDE4LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTQgMGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTW9yZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9yZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMC40OGMtLjQzLjIyLS43OC41Ni0xIC45OVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoMS4yNWMwIC4zNi4wOC43LjIzIDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTEuNzUgMTRhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTMgMTguMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptNCAwYTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROb3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE5vdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNVYxMGgtNGEzIDMgMCAwIDAtMyAzdjRhMyAzIDAgMCAwIC4xNyAxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0zLjUgOGEyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtNVptMCA1LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTAtM2MwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE5vdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE5vdGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuODRhMy40OCAzLjQ4IDAgMCAxLS4zLTFINS41YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41VjEwaDFWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTQgNy41YTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDVhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC01Wm0wIDUuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMC0zYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMSAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTnVtYmVyMTIzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE51bWJlcjEyM0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgxLjU5YTEuNSAxLjUgMCAwIDEtLjA5LS41di0yYTEuNSAxLjUgMCAwIDEtLjczLTIuODFjLjI3LS4xNS41LS40Ni42Ni0uNzkuNDctLjk2IDEuNDYtLjkyIDEuNzYtLjg2YTEuNjQgMS42NCAwIDAgMSAxLjEyLjgxYy42LS41IDEuMjgtLjggMi4wMS0uODVhMy4wNSAzLjA1IDAgMCAxIDIuNiAxLjIyYy40Ny0uNSAxLS44NiAxLjU4LTEuMDVWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTcuODcgMTAuMWMuNDItLjQ2Ljg0LS42IDEuMTYtLjYuMzUgMCAuNjQuMTUuODEuMzUuMTcuMi4yLjQuMTIuNTUtLjA3LjE3LS4zMy40NC0xLjA3LjYxYS41LjUgMCAwIDAgMCAuOThjLjc0LjE3IDEgLjQ0IDEuMDcuNjEuMDcuMTYuMDUuMzUtLjEyLjU1LS4xNy4yLS40Ni4zNS0uOC4zNS0uMzMgMC0uNzUtLjE0LTEuMTctLjZhLjUuNSAwIDAgMC0uNzQuNjZjLjU4LjY1IDEuMjYuOTQgMS45Ljk0LjY0IDAgMS4yLS4yOCAxLjU3LS43YTEuNSAxLjUgMCAwIDAtLjMyLTIuM2MuMjctLjE5LjQ3LS40Mi42LS42OWExLjUgMS41IDAgMCAwLS4yOC0xLjYxYy0uMzYtLjQyLS45My0uNy0xLjU2LS43LS42NSAwLTEuMzMuMjktMS45MS45NGEuNS41IDAgMCAwIC43NC42N1ptLTMuOTQtLjZjLS4zLjAyLS42Ny4xNi0xLjA1LjZhLjUuNSAwIDEgMS0uNzYtLjY1Yy41NC0uNjEgMS4xNS0uOTEgMS43Ni0uOTUuNi0uMDMgMS4xNC4yIDEuNTIuNTcuMzguMzYuNjMuODguNTkgMS40My0uMDQuNTctLjM4IDEuMS0uOTkgMS40NS0xLjEuNjQtMS42IDEuMi0xLjgyIDEuNTVoMi4zMmEuNS41IDAgMSAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS40NXYtLjAyYS43OS43OSAwIDAgMSAwLS4xbC4wMy0uMjNjLjA0LS4xOC4xMi0uNDEuMjgtLjY5YTUuOCA1LjggMCAwIDEgMi4yLTEuOTNjLjM2LS4yMS40Ny0uNDYuNDgtLjY1YS44NC44NCAwIDAgMC0uMjgtLjY0Yy0uMi0uMTktLjQ4LS4zLS43OC0uMjlaTTkgMTIuNmMwLS4yLS4xLS4zNS0uMi0uNDRhLjY0LjY0IDAgMCAwLS4zLS4xNGMtLjEzLS4wMy0uNS0uMDMtLjY3LjMyLS4yLjQxLS41NC45My0xLjA3IDEuMjJhLjUuNSAwIDEgMCAuNDguODhjLjMtLjE3LjU1LS4zNy43Ni0uNnYzLjY2YS41LjUgMCAwIDAgMSAwdi00LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROdW1iZXIxMjNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE51bWJlcjEyM1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMS41OWExLjUgMS41IDAgMCAxLS4wOS0uNVYxN0g1LjVhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNWgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2Ny4yYTMuNiAzLjYgMCAwIDEgMS0uNTNWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTIgMTQuMDV2LS4wMmEuNzkuNzkgMCAwIDEgMC0uMWwuMDMtLjIzYy4wNC0uMTguMTItLjQxLjI4LS42OWE1LjggNS44IDAgMCAxIDIuMi0xLjkzYy4zNi0uMjEuNDctLjQ2LjQ4LS42NWEuODQuODQgMCAwIDAtLjI4LS42NGMtLjItLjE5LS40OC0uMy0uNzgtLjI5LS4zLjAyLS42Ny4xNi0xLjA1LjZhLjUuNSAwIDEgMS0uNzYtLjY1Yy41NC0uNjEgMS4xNS0uOTEgMS43Ni0uOTUuNi0uMDMgMS4xNC4yIDEuNTIuNTcuMzguMzYuNjMuODguNTkgMS40My0uMDQuNTctLjM4IDEuMS0uOTkgMS40NS0xLjEuNjQtMS42IDEuMi0xLjgyIDEuNTVoMi4zMmEuNS41IDAgMSAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS40NVptNS44Ny0zLjk1Yy40Mi0uNDYuODQtLjYgMS4xNi0uNi4zNSAwIC42NC4xNS44MS4zNS4xNy4yLjIuNC4xMi41NS0uMDcuMTctLjMzLjQ0LTEuMDcuNjFhLjUuNSAwIDAgMCAwIC45OGMuNzQuMTcgMSAuNDQgMS4wNy42MS4wNy4xNi4wNS4zNS0uMTIuNTUtLjE3LjItLjQ2LjM1LS44LjM1LS4zMyAwLS43NS0uMTQtMS4xNy0uNmEuNS41IDAgMCAwLS43NC42NmMuNTguNjUgMS4yNi45NCAxLjkuOTQuNjQgMCAxLjItLjI4IDEuNTctLjdhMS41IDEuNSAwIDAgMC0uMzItMi4zYy4yNy0uMTkuNDctLjQyLjYtLjY5YTEuNSAxLjUgMCAwIDAtLjI4LTEuNjFjLS4zNi0uNDItLjkzLS43LTEuNTYtLjctLjY1IDAtMS4zMy4yOS0xLjkxLjk0YS41LjUgMCAwIDAgLjc0LjY3Wk05IDEyLjZjMC0uMi0uMS0uMzUtLjItLjQ0YS42NC42NCAwIDAgMC0uMy0uMTRjLS4xMy0uMDMtLjUtLjAzLS42Ny4zMi0uMi40MS0uNTQuOTMtMS4wNyAxLjIyYS41LjUgMCAxIDAgLjQ4Ljg4Yy4zLS4xNy41NS0uMzcuNzYtLjZ2My42NmEuNS41IDAgMCAwIDEgMHYtNC45WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUGFzdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkUGFzdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDRoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMCAxIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zYy0uNjUgMC0xLjIuNDItMS40MSAxSDQuNUMzLjY3IDMgMyAzLjY3IDMgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVptMyAwYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFoLTNabTMgM0M5LjY3IDcgOSA3LjY3IDkgOC41djhjMCAuODMuNjcgMS41IDEuNSAxLjVoNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LThjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUGFzdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFBhc3RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgNGgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMyAzIDMuNjcgMyA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41Wm0zIDBhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMWgtM1ptMyAzQzkuNjcgNyA5IDcuNjcgOSA4LjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOGMwLS44My0uNjctMS41LTEuNS0xLjVoLTVaTTEwIDguNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LThaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQdWxzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRQdWxzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjEwaC0xLjU3bC0uNTktMS4xN2ExLjUgMS41IDAgMCAwLTIuNjggMGwtLjMzLjY1LS45LTIuOTJhMS41IDEuNSAwIDAgMC0yLjgtLjE3TDUuNTMgMTBINFY0LjVDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm01IDEwSDE2djMuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjVWMTNoMi41Yy42IDAgMS4xMy0uMzUgMS4zNy0uOWwuMzctLjgzLjgzIDIuNjdhMS41IDEuNSAwIDAgMCAyLjc3LjIzbC43NC0xLjQ4Yy4yNi4yLjU4LjMxLjkyLjMxWk04Ljk4IDYuODVhLjUuNSAwIDAgMC0uOTQtLjA1TDYuMTggMTFIMi41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAuNDYtLjNMOC40IDguNDJsMS42MSA1LjIzYS41LjUgMCAwIDAgLjkzLjA3bDEuNTUtMy4xLjU1IDEuMWEuNS41IDAgMCAwIC40NS4yOGg0YS41LjUgMCAwIDAgMC0xaC0zLjdsLS44NS0xLjcyYS41LjUgMCAwIDAtLjkgMGwtMS40NCAyLjg4LTEuNjMtNS4zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUHVsc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFB1bHNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjEwaC0xVjQuNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFINS41YS41LjUgMCAwIDAtLjUuNVYxMEg0VjQuNUM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE1IDEzaDF2My41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNVYxM2gxdjMuNWMwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjVWMTNaTTguOTggNi44NWEuNS41IDAgMCAwLS45NC0uMDVMNi4xOCAxMUgyLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIC40Ni0uM0w4LjQgOC40MmwxLjYxIDUuMjNhLjUuNSAwIDAgMCAuOTMuMDdsMS41NS0zLjEuNTUgMS4xYS41LjUgMCAwIDAgLjQ1LjI4aDRhLjUuNSAwIDAgMCAwLTFoLTMuN2wtLjg1LTEuNzJhLjUuNSAwIDAgMC0uOSAwbC0xLjQ0IDIuODgtMS42My01LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djMuNzZhNC41IDQuNSAwIDAgMSA1LjU2IDYuMThsMiAyYy40Mi40Mi41NCAxLjAzLjM1IDEuNTZoMi41OWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1ptMyAxYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xaDNaTTguMyAxNC42YTMuNSAzLjUgMCAxIDAtLjcuN2wyLjU1IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w4LjMgMTQuNlptLTIuOC40YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkU2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djMuNzZjLjMyLS4xMi42NS0uMiAxLS4yM1Y0LjVjMC0uMjguMjItLjUuNS0uNWgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC0yLjU5Yy4xMi4zMi4xMi42OCAwIDFoMi41OWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1ptMyAxYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xaDNaTTguMyAxNC42YTMuNSAzLjUgMCAxIDAtLjcuN2wyLjU1IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w4LjMgMTQuNlptLTIuOC40YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdhNS41IDUuNSAwIDAgMC01Ljc0IDguOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMy41NyA4LjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43Yy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTMuNTcgOC40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm00Ljg1IDYuMzUtMy41IDMuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAuNy0uN0w5IDEyLjI5bDMuMTUtMy4xNGEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi44NSA5Ljg1YS41LjUgMCAwIDAtLjctLjdMOSAxMi4yOWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLjUtMy41Wk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDRoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djEyYS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0FkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDMuNUMyLjY3IDMgMiAzLjY3IDIgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuNzZBNS41IDUuNSAwIDAgMSAxNCA5LjAyVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTYgMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm00Ljg1IDYuMzUtMy41IDMuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAuNy0uN0w3IDEyLjI5bDMuMTUtMy4xNGEuNS41IDAgMCAxIC43LjdaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUgzLjVDMi42NyAzIDIgMy42NyAyIDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg2Ljc2YTUuNSA1LjUgMCAwIDEtLjY2LTFIMy41YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djQuN2MuMzItLjA4LjY2LS4xNSAxLS4xOFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk02IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNC44NSA2LjM1YS41LjUgMCAwIDAtLjctLjdMNyAxMi4yOWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLjUtMy41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0xpc3RMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RMdHJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTEuMzUgNC4zNUw3LjYgOS42YS41LjUgMCAwIDEtLjY5LjAybC0uNzUtLjY5YS41LjUgMCAxIDEgLjY4LS43M2wuNC4zNiAxLjQtMS40MWEuNS41IDAgMSAxIC43MS43Wm0wIDQuM2MuMi4yLjIuNSAwIC43TDcuNiAxNC42YS41LjUgMCAwIDEtLjY5LjAybC0uNzUtLjY5YS41LjUgMCAwIDEgLjY4LS43M2wuNC4zNiAxLjQtMS40MWMuMi0uMi41Mi0uMi43MSAwWm0xLjY1LjZoMi41YS41LjUgMCAwIDEgMCAxSDExYS41LjUgMCAwIDEgMC0xWm0tLjUtNC41YzAtLjI4LjIyLS41LjUtLjVoMi41YS41LjUgMCAwIDEgMCAxSDExYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrTGlzdEx0clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RMdHJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMzUgNy44NWEuNS41IDAgMCAwLS43LS43bC0xLjQyIDEuNC0uNC0uMzVhLjUuNSAwIDAgMC0uNjcuNzNsLjc1LjY5Yy4yLjE4LjUuMTcuNy0uMDJsMS43NC0xLjc1Wm0wIDQuM2MuMi4yLjIuNSAwIC43TDcuNiAxNC42YS41LjUgMCAwIDEtLjY5LjAybC0uNzUtLjY5YS41LjUgMCAwIDEgLjY4LS43M2wuNC4zNiAxLjQtMS40MWMuMi0uMi41Mi0uMi43MSAwWm0xLjY1LjZhLjUuNSAwIDAgMCAwIDFoMi41YS41LjUgMCAwIDAgMC0xSDExWm0tLjUtNC41YzAtLjI4LjIyLS41LjUtLjVoMi41YS41LjUgMCAwIDEgMCAxSDExYS41LjUgMCAwIDEtLjUtLjVaTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk01LjUgNGgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrTGlzdFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrTGlzdFJ0bEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm01LjM1IDQuMTVhLjUuNSAwIDAgMC0uNyAwbC0xLjQyIDEuNC0uNC0uMzVhLjUuNSAwIDAgMC0uNjcuNzNsLjc1LjY5Yy4yLjE4LjUuMTcuNy0uMDJsMS43NC0xLjc1YS41LjUgMCAwIDAgMC0uN1ptMCA1LjdhLjUuNSAwIDAgMC0uNy0uN2wtMS40MiAxLjQtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAybDEuNzQtMS43NVpNNi41IDhhLjUuNSAwIDAgMCAwIDFIOWEuNS41IDAgMCAwIDAtMUg2LjVaTTYgMTMuNWMwIC4yOC4yMi41LjUuNUg5YS41LjUgMCAwIDAgMC0xSDYuNWEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrTGlzdFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjg1IDcuMTVjLjIuMi4yLjUgMCAuN0wxMi4xIDkuNmEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFptMCA1LjdhLjUuNSAwIDAgMC0uNy0uN2wtMS40MiAxLjQtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAybDEuNzQtMS43NVpNNi41IDhhLjUuNSAwIDAgMCAwIDFIOWEuNS41IDAgMCAwIDAtMUg2LjVaTTYgMTMuNWMwLS4yOC4yMi0uNS41LS41SDlhLjUuNSAwIDAgMSAwIDFINi41YS41LjUgMCAwIDEtLjUtLjVaTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjczYy0uMzMuMTQtLjYzLjM0LS45LjYxTDEwLjk0IDE0SDYuNWEuNS41IDAgMCAwIDAgMWgzLjQ5YTMuMiAzLjIgMCAwIDAtLjU2IDEuMTZsLS4zNyAxLjVjLS4wMy4xMS0uMDUuMjMtLjA2LjM0SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wm00LjkxLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVaTTEzLjUgOGgtN2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xWk0xMCAxMS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wm0uOTggMy44OCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHRFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0RWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA4LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk02IDE0LjVjMC0uMjguMjItLjUuNS0uNWg0LjQ0bC0uNjcuNjdjLS4xLjEtLjIuMjEtLjI4LjMzSDYuNWEuNS41IDAgMCAxLS41LS41Wk05LjIyIDE3SDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXY1LjQ0bC4xLS4xYy4yNy0uMjcuNTctLjQ3LjktLjZWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM2MtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNUg5bC4wNi0uMzUuMTYtLjY1Wk0xMiAzLjVhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEgMC0xaDNjLjI4IDAgLjUuMjIuNS41Wm0tMS4wMiAxMS44OCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHRMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWm0zIDFhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFoM1ptLTUgNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0wIDNoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMVpNNiAxNC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEx0clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDhhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAxMS41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMi0xMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWm0zIDFhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFoM1ptLTYgMWgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0UnRsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRSdGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVptNC45MS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wk0xMC41IDExYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTYgOC41YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wk04LjUgMTRhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHRSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgOC41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41WlwiLCBcIk0xMC41IDExYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCIsIFwiTTguNSAxNGEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiLCBcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wm00LjkxLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDEgMCAxNiA4IDggMCAwIDEgMC0xNlptLS41IDNhLjUuNSAwIDAgMC0uNS41djUuMDlhLjUuNSAwIDAgMCAuNS40MWgzLjA5YS41LjUgMCAwIDAtLjA5LTFIMTBWNS40MUEuNS41IDAgMCAwIDkuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabS0uNSAyYS41LjUgMCAwIDEgLjUuNDFWMTBoMi41YS41LjUgMCAwIDEgLjA5IDFIOS41YS41LjUgMCAwIDEtLjUtLjQxVjUuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tBbGFybUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0FsYXJtRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNzYgMy4zN0EzLjE2IDMuMTYgMCAwIDAgMiA1LjE5YzAgMS4wOC41MyAyLjAzIDEuMzUgMi42MWE3IDcgMCAwIDAgMS4zNiA2Ljc4bC0xLjU2IDEuNTdhLjUuNSAwIDAgMCAuNy43bDEuNTctMS41NmE2Ljk3IDYuOTcgMCAwIDAgOS4xNiAwbDEuNTcgMS41NmEuNS41IDAgMCAwIC43LS43bC0xLjU2LTEuNTdhNi45NyA2Ljk3IDAgMCAwIDEuMzUtNi44IDMuMTcgMy4xNyAwIDEgMC00LjQxLTQuNDIgNyA3IDAgMCAwLTQuNDcgMFpNNS4xNiAzYy42NiAwIDEuMjUuMyAxLjY1Ljc3YTcuMDMgNy4wMyAwIDAgMC0zLjA2IDMuMDdBMi4yIDIuMiAwIDAgMSA1LjE3IDNabTguMDIuNzZBMi4xNiAyLjE2IDAgMCAxIDE3IDUuMThjMCAuNjYtLjMgMS4yNS0uNzYgMS42NWE3LjAzIDcuMDMgMCAwIDAtMy4wNi0zLjA3Wk05LjUgNmMuMjggMCAuNS4yMi41LjVWMTBoMi41YS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjV2LTRjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQWxhcm1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQWxhcm1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDYuNWEuNS41IDAgMCAwLTEgMHY0YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDEgMCAwLTFIMTBWNi41Wk0zLjM1IDcuOEEzLjE5IDMuMTkgMCAwIDEgNS4xNyAyYzEuMDcgMCAyLjAyLjU0IDIuNiAxLjM3YTcgNyAwIDAgMSA0LjQ2IDBBMy4xNiAzLjE2IDAgMCAxIDE4IDUuMTZjMCAxLjA4LS41NCAyLjA0LTEuMzYgMi42MWE3IDcgMCAwIDEtMS4zNSA2LjhsMS41NiAxLjU3YS41LjUgMCAwIDEtLjcuN2wtMS41Ny0xLjU2YTYuOTcgNi45NyAwIDAgMS05LjE2IDBsLTEuNTcgMS41NmEuNS41IDAgMSAxLS43LS43bDEuNTYtMS41N0E2Ljk3IDYuOTcgMCAwIDEgMy4zNSA3LjhaTTMgNS4xOWMwIC42Ni4zIDEuMjUuNzUgMS42NWE3LjAzIDcuMDMgMCAwIDEgMy4wNi0zLjA3QzYuNDEgMy4zIDUuODIgMyA1LjE3IDMgMy45NyAzIDMgMy45OCAzIDUuMTlabTEzLjI0IDEuNjRhMi4xNyAyLjE3IDAgMSAwLTMuMDYtMy4wNyA3LjAzIDcuMDMgMCAwIDEgMy4wNiAzLjA3Wk00IDEwYTYgNiAwIDEgMCAxMiAwIDYgNiAwIDAgMC0xMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tBcnJvd0Rvd25sb2FkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQXJyb3dEb3dubG9hZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSAxYTggOCAwIDEgMS0uNTkgMTUuOTggNS41IDUuNSAwIDAgMC03LjM5LTcuMzlMMyA5YTggOCAwIDAgMSA4LThabS0uNSAzYS41LjUgMCAwIDAtLjUuNXY1LjA5YS41LjUgMCAwIDAgLjUuNDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xSDExVjQuNDFhLjUuNSAwIDAgMC0uNS0uNDFaTTEgMTQuNWE0LjUgNC41IDAgMCAxIDQtNC40N3YzLjc2bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwxLjUtMS41YS41LjUgMCAxIDAtLjctLjdsLS42NS42NHYtMy43NmE0LjUgNC41IDAgMSAxLTUgNC40N1ptNyAyYS41LjUgMCAwIDAtLjUtLjVoLTRhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tBcnJvd0Rvd25sb2FkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0Fycm93RG93bmxvYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExIDFhOCA4IDAgMSAxLS41OSAxNS45OGMuMTYtLjMxLjI5LS42NC4zOC0uOThIMTFhNyA3IDAgMSAwLTctNi44Yy0uMzQuMS0uNjcuMjMtLjk4LjM5TDMgOWE4IDggMCAwIDEgOC04Wm0tLjUgM2EuNS41IDAgMCAxIC41LjQxVjloMi41YS41LjUgMCAwIDEgLjA5IDFIMTAuNWEuNS41IDAgMCAxLS41LS40MVY0LjVjMC0uMjguMjItLjUuNS0uNVpNMSAxNC41YTQuNSA0LjUgMCAwIDEgNC00LjQ3djMuNzZsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDEgMC0uNy0uN2wtLjY1LjY0di0zLjc2YTQuNSA0LjUgMCAxIDEtNSA0LjQ3Wm03IDJhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0JpbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tCaWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDlhOCA4IDAgMSAwLTYgNy43NVYxM2EzIDMgMCAwIDEgMy0zaDIuOTRjLjA0LS4zMy4wNi0uNjYuMDYtMVpNOCA0LjVhLjUuNSAwIDAgMSAxLS4wOVY5aDIuNWEuNS41IDAgMCAxIC4wOSAxSDguNWEuNS41IDAgMCAxLS41LS40MVY0LjVaTTE4IDExaC00YTIgMiAwIDAgMC0yIDJ2NWMwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtMi0yWm0tLjUgN2gtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWm0wLTJoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVptMC0yaC0zYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0JpbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQmlsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgOWE4IDggMCAxIDAtNiA3Ljc1VjE1LjdBNyA3IDAgMSAxIDE1LjkzIDEwaDFjLjA1LS4zMy4wNy0uNjYuMDctMVpNOSA0LjQxYS41LjUgMCAwIDAtMSAuMDl2NS4wOWEuNS41IDAgMCAwIC41LjQxaDMuMDlhLjUuNSAwIDAgMC0uMDktMUg5VjQuNDFaTTE4IDExaC00YTIgMiAwIDAgMC0yIDJ2NWMwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtMi0yWm0tLjUgN2gtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWm0wLTJoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVptMC0yaC0zYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0Rpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDFhOCA4IDAgMSAxLS41OSAxNS45OCA1LjUgNS41IDAgMCAwLTcuMzktNy4zOUwzIDlhOCA4IDAgMCAxIDgtOFptLS41IDNhLjUuNSAwIDAgMC0uNS41djUuMDlhLjUuNSAwIDAgMCAuNS40MWgzLjA5YS41LjUgMCAwIDAtLjA5LTFIMTFWNC40MWEuNS41IDAgMCAwLS41LS40MVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDUuNSAxMy43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMNi4yMSAxNC41bDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAxYTggOCAwIDEgMS0uNTkgMTUuOThjLjE2LS4zMS4yOS0uNjQuMzgtLjk4SDExYTcgNyAwIDEgMC03LTYuOGMtLjM0LjEtLjY3LjIzLS45OC4zOUwzIDlhOCA4IDAgMCAxIDgtOFptLS41IDNhLjUuNSAwIDAgMSAuNS40MVY5aDIuNWEuNS41IDAgMCAxIC4wOSAxSDEwLjVhLjUuNSAwIDAgMS0uNS0uNDFWNC41YzAtLjI4LjIyLS41LjUtLjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0w1LjUgMTMuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDYuMjEgMTQuNWwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tMb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTEgMTUuOTRWMTRhMiAyIDAgMCAwLTEuNS0xLjk0VjEyQTMgMyAwIDAgMCAyIDEwLjMzVjEwYTggOCAwIDAgMSA4LThabS0uNSAzYS41LjUgMCAwIDAtLjUuNXY1LjA5YS41LjUgMCAwIDAgLjUuNDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xSDEwVjUuNDFBLjUuNSAwIDAgMCA5LjUgNVptLTcgN3YxSDJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrTG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDEtMSAxNS45NHYtMS4wMWE3IDcgMCAxIDAtNS45Ny03LjU0Yy0uNDEuMjMtLjc2LjU1LTEuMDIuOTRMMiAxMGE4IDggMCAwIDEgOC04Wm0tLjUgM2EuNS41IDAgMCAxIC41LjQxVjEwaDIuNWEuNS41IDAgMCAxIC4wOSAxSDkuNWEuNS41IDAgMCAxLS41LS40MVY1LjVjMC0uMjguMjItLjUuNS0uNVptLTcgN3YxSDJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja1BhdXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrUGF1c2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgMWE4IDggMCAxIDEtLjU5IDE1Ljk4IDUuNSA1LjUgMCAwIDAtNy4zOS03LjM5TDMgOWE4IDggMCAwIDEgOC04Wm0tLjUgM2EuNS41IDAgMCAwLS41LjV2NS4wOWEuNS41IDAgMCAwIC41LjQxaDMuMDlhLjUuNSAwIDAgMC0uMDktMUgxMVY0LjQxYS41LjUgMCAwIDAtLjUtLjQxWk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk00IDE3YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0xIDB2NGMwIC4yOC4yMi41LjUuNVptMyAwYS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0xIDB2NGMwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrUGF1c2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrUGF1c2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExIDFhOCA4IDAgMSAxLS41OSAxNS45OGMuMTYtLjMxLjI5LS42NC4zOC0uOThIMTFhNyA3IDAgMSAwLTctNi44Yy0uMzQuMS0uNjcuMjMtLjk4LjM5TDMgOWE4IDggMCAwIDEgOC04Wm0tLjUgM2EuNS41IDAgMCAxIC41LjQxVjloMi41YS41LjUgMCAwIDEgLjA5IDFIMTAuNWEuNS41IDAgMCAxLS41LS40MVY0LjVjMC0uMjguMjItLjUuNS0uNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNNCAxN2EuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVabTMgMGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja1Rvb2xib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDFhOCA4IDAgMSAxIDAgMTZ2LTMuNWEyLjUgMi41IDAgMCAwLTIuMDQtMi40NkEyLjUgMi41IDAgMCAwIDYuNSA5aC0yYy0uNTYgMC0xLjA3LjE4LTEuNDkuNDlBOCA4IDAgMCAxIDExIDFabS0uNSAzYS41LjUgMCAwIDAtLjUuNXY1LjA5YS41LjUgMCAwIDAgLjUuNDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xSDExVjQuNDFhLjUuNSAwIDAgMC0uNS0uNDFaTTMgMTJ2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVIOHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVINHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVIMXYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDNabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVaTTggMTZoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgMSAxNy41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrVG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAxYTggOCAwIDEgMSAwIDE2di0xYTcgNyAwIDEgMC03LTd2LjA1Yy0uMzYuMDctLjcuMjMtLjk5LjQ0QTggOCAwIDAgMSAxMSAxWm0tLjUgM2EuNS41IDAgMCAxIC41LjQxVjloMi41YS41LjUgMCAwIDEgLjA5IDFIMTAuNWEuNS41IDAgMCAxLS41LS40MVY0LjVjMC0uMjguMjItLjUuNS0uNVpNMyAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNUg4di0uNWEuNS41IDAgMCAwLTEgMHYuNUg0di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVIM1ptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVpNOCAxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSAxIDE3LjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNGEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjdhMyAzIDAgMCAwLTMtM0g1Wm0xLjQgMy4yNGMuODItLjQxIDEuOC0uMjQgMi40NS40YS41LjUgMCAwIDEtLjcuNzEgMS4xMiAxLjEyIDAgMCAwLTEuMy0uMjJDNi40NCA4LjM0IDYgOC45IDYgMTBzLjQ0IDEuNjYuODUgMS44N2MuNDMuMjEuOTUuMTMgMS4zLS4yMmEuNS41IDAgMSAxIC43LjdjLS42NS42NS0xLjYzLjgyLTIuNDUuNDFDNS41NiAxMi4zNCA1IDExLjM5IDUgMTBjMC0xLjM5LjU2LTIuMzQgMS40LTIuNzZabTcuOTUuNGEuNS41IDAgMCAxLS43LjcxIDEuMTIgMS4xMiAwIDAgMC0xLjMtLjIyYy0uNDEuMjEtLjg1Ljc2LS44NSAxLjg3cy40NCAxLjY2Ljg1IDEuODdjLjQzLjIxLjk1LjEzIDEuMy0uMjJhLjUuNSAwIDAgMSAuNy43Yy0uNjUuNjUtMS42My44Mi0yLjQ1LjQxLS44NC0uNDItMS40LTEuMzctMS40LTIuNzYgMC0xLjM5LjU2LTIuMzQgMS40LTIuNzYuODItLjQxIDEuOC0uMjQgMi40NS40WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi40IDcuMjRjLjgyLS40MSAxLjgtLjI0IDIuNDUuNGEuNS41IDAgMCAxLS43LjcxIDEuMTIgMS4xMiAwIDAgMC0xLjMtLjIyQzYuNDQgOC4zNCA2IDguOSA2IDEwcy40NCAxLjY2Ljg1IDEuODdjLjQzLjIxLjk1LjEzIDEuMy0uMjJhLjUuNSAwIDAgMSAuNy43Yy0uNjUuNjUtMS42My44Mi0yLjQ1LjQxQzUuNTYgMTIuMzQgNSAxMS4zOSA1IDEwYzAtMS4zOS41Ni0yLjM0IDEuNC0yLjc2Wm03Ljk1LjRhMi4xMiAyLjEyIDAgMCAwLTIuNDUtLjRjLS44NC40Mi0xLjQgMS4zNy0xLjQgMi43NiAwIDEuMzkuNTYgMi4zNCAxLjQgMi43Ni44Mi40MSAxLjguMjQgMi40NS0uNGEuNS41IDAgMCAwLS43LS43MWMtLjM1LjM1LS44Ny40My0xLjMuMjItLjQxLS4yMS0uODUtLjc2LS44NS0xLjg3cy40NC0xLjY2Ljg1LTEuODdjLjQzLS4yMS45NS0uMTMgMS4zLjIyYS41LjUgMCAwIDAgLjctLjdaTTIgN2EzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3Wm0zLTJhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb25PZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbk9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDEuNDggMS40OEEzIDMgMCAwIDAgMiA3djZhMyAzIDAgMCAwIDMgM2gxMGwuMjgtLjAxIDEuODcgMS44NmEuNS41IDAgMCAwIC43LS43bC0xLjQ4LTEuNDgtMy43LTMuNy0xLjA1LTEuMDVMMTAuNSA5LjggOC45NCA4LjIzIDcuNzcgNy4wNiA0LjcyIDQuMDEgMi44NSAyLjE1Wm00LjQ2IDUuODdjLS4xNiAwLS4zMS4wNC0uNDYuMTFDNi40NCA4LjM0IDYgOC45IDYgMTBzLjQ0IDEuNjYuODUgMS44N2MuNDMuMjEuOTUuMTMgMS4zLS4yMmEuNS41IDAgMSAxIC43LjdjLS42NS42NS0xLjYzLjgyLTIuNDUuNDFDNS41NiAxMi4zNCA1IDExLjM5IDUgMTBjMC0xLjM5LjU2LTIuMzQgMS40LTIuNzZsLjEtLjA0LjgxLjgyWm0zLjQyLjU5TDYuMTMgNEgxNWEzIDMgMCAwIDEgMyAzdjZjMCAuOC0uMzEgMS41Mi0uODIgMi4wNmwtNS42NC01LjY0Yy4xMy0uNzMuNDgtMS4xMi44LTEuMjkuNDQtLjIxLjk2LS4xMyAxLjMuMjJhLjUuNSAwIDAgMCAuNzEtLjcgMi4xMiAyLjEyIDAgMCAwLTIuNDUtLjQxYy0uNTIuMjYtLjkzLjcyLTEuMTcgMS4zN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb25PZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb25PZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS40OCAxLjQ4QTMgMyAwIDAgMCAyIDd2NmEzIDMgMCAwIDAgMyAzaDEwbC4yOC0uMDEgMS44NyAxLjg2YS41LjUgMCAwIDAgLjctLjdsLTEuNDgtMS40OC0uNzYtLjc3LTIuOTMtMi45My0xLjA2LTEuMDVMMTAuNSA5LjggOC45NCA4LjIzIDcuNzcgNy4wNiA0LjcyIDQuMDEgMi44NSAyLjE1Wk0xNC4zIDE1SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAxLjM5LTEuOWwyLjEgMi4xLS4wOS4wNEM1LjU2IDcuNjYgNSA4LjYxIDUgMTBjMCAxLjM5LjU2IDIuMzQgMS40IDIuNzYuODIuNDEgMS44LjI0IDIuNDUtLjRhLjUuNSAwIDEgMC0uNy0uNzFjLS4zNS4zNS0uODcuNDMtMS4zLjIyQzYuNDQgMTEuNjYgNiAxMS4xIDYgMTBzLjQ0LTEuNjYuODUtMS44N2MuMTUtLjA3LjMtLjEuNDYtLjExTDE0LjMgMTVabTIuOS4wNi0uNzItLjdBMiAyIDAgMCAwIDE3IDEzVjdhMiAyIDAgMCAwLTItMkg3LjEybC0xLTFIMTVhMyAzIDAgMCAxIDMgM3Y2YzAgLjgtLjMxIDEuNTItLjgyIDIuMDZabS01LjY1LTUuNjQtLjgxLS44MWMuMjQtLjY1LjY1LTEuMTEgMS4xNy0xLjM3LjgyLS40MSAxLjgtLjI0IDIuNDUuNGEuNS41IDAgMCAxLS43LjcxIDEuMTIgMS4xMiAwIDAgMC0xLjMtLjIyYy0uMzMuMTctLjY4LjU2LS44IDEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDRjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3QTMuMzMgMy4zMyAwIDAgMSAxOCAxMS42MiAzLjMzIDMuMzMgMCAwIDEgMTQuNzIgMTVINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiAxMS42MmEzLjMzIDMuMzMgMCAwIDEgMy4yOC0zLjM3aC4wN0M1LjYgNS45IDcuMTggNCAxMCA0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA0YzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN0EzLjMzIDMuMzMgMCAwIDEgMTggMTEuNjIgMy4zMyAzLjMzIDAgMCAxIDE0LjcyIDE1SDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTEuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgNS45IDcuMTggNCAxMCA0Wm0wIDFDNy44OSA1IDYuNTUgNi4zMiA2LjM1IDguMzVhMSAxIDAgMCAxLTEgLjloLS4wN0EyLjMzIDIuMzMgMCAwIDAgMyAxMS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxNGg5LjQ0QTIuMzMgMi4zMyAwIDAgMCAxNyAxMS42MmEyLjMzIDIuMzMgMCAwIDAtMi4yOC0yLjM3aC0uMDdhMSAxIDAgMCAxLTEtLjlDMTMuNDUgNi4zMiAxMi4xMSA1IDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2EzLjMzIDMuMzMgMCAwIDEgMy4yNyAzLjY2QTUuNzQgNS43NCAwIDAgMCA3Ljc3IDEzSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmEzLjMzIDMuMzMgMCAwIDEgMy4yOC0zLjM3aC4wN0M1LjYgMy45IDcuMTggMiAxMCAyWm0zLjUgMTZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTNoMS41YS41LjUgMCAwIDEgMCAxSDE0djEuNWEuNS41IDAgMCAxLTEgMFYxNGgtMS41YS41LjUgMCAwIDEgMC0xSDEzdi0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdhMy4zMyAzLjMzIDAgMCAxIDMuMjcgMy42NmMtLjMyLS40LS43LS43Ni0xLjEyLTEuMDdhMi4zIDIuMyAwIDAgMC0yLjE1LTEuNmgtLjA3YTEgMSAwIDAgMS0xLS45QzEzLjQ1IDQuMzMgMTIuMTEgMyAxMCAzUzYuNTUgNC4zMiA2LjM1IDYuMzVhMSAxIDAgMCAxLTEgLjloLS4wN0EyLjMzIDIuMzMgMCAwIDAgMyA5LjYyIDIuMzMgMi4zMyAwIDAgMCA1LjI4IDEyaDIuNjdjLS4wOS4zMi0uMTUuNjYtLjE4IDFINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYzAtMS44IDEuMzctMy4yNyAzLjEtMy4zN2guMjVDNS42IDMuOSA3LjE4IDIgMTAgMlptMy41IDE2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjEzaDEuNWEuNS41IDAgMCAxIDAgMUgxNHYxLjVhLjUuNSAwIDAgMS0xIDBWMTRoLTEuNWEuNS41IDAgMCAxIDAtMUgxM3YtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFyY2hpdmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcmNoaXZlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDRjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YzEuMjQgMCAyLjMyLjcgMi44OCAxLjc1SDExYTIgMiAwIDAgMC0xIDMuNzNWMTVINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiAxMS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiA1LjkgNy4xOCA0IDEwIDRabTAgOGExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMSAxIDAgMmgtN2ExIDEgMCAwIDEtMS0xWm04IDJoLTd2M2MwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtM1ptLTQuNSAxaDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFyY2hpdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJjaGl2ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNGMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdjMS4yNCAwIDIuMzIuNyAyLjg4IDEuNzVoLTEuMjFhMi4yNCAyLjI0IDAgMCAwLTEuNjctLjc1aC0uMDdhMSAxIDAgMCAxLTEtLjlDMTMuNDUgNi4zMiAxMi4xMSA1IDEwIDVTNi41NSA2LjMyIDYuMzUgOC4zNWExIDEgMCAwIDEtMSAuOWgtLjA3QTIuMzMgMi4zMyAwIDAgMCAzIDExLjYyIDIuMzMgMi4zMyAwIDAgMCA1LjI4IDE0SDEwdjFINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiAxMS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiA1LjkgNy4xOCA0IDEwIDRabTAgOGExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMSAxIDAgMmgtN2ExIDEgMCAwIDEtMS0xWm04IDJoLTd2M2MwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtM1ptLTQuNSAxaDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2EzLjMzIDMuMzMgMCAwIDEgMy4yNyAzLjY2QTUuNzQgNS43NCAwIDAgMCA3Ljc3IDEzSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmEzLjMzIDMuMzMgMCAwIDEgMy4yOC0zLjM3aC4wN0M1LjYgMy45IDcuMTggMiAxMCAyWm0zLjUgMTZhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabTEuNi00LjlMMTQgMTQuMnYtMi43YS41LjUgMCAwIDAtMSAwdjIuN2wtMS4xLTEuMWEuNTYuNTYgMCAxIDAtLjguOGwyIDJjLjIyLjIyLjU4LjIyLjggMGwyLTJhLjU2LjU2IDAgMSAwLS44LS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2EzLjMzIDMuMzMgMCAwIDEgMy4yNyAzLjY2Yy0uMzItLjQtLjctLjc2LTEuMTItMS4wN2EyLjMgMi4zIDAgMCAwLTIuMTUtMS42aC0uMDdhMSAxIDAgMCAxLTEtLjlDMTMuNDUgNC4zMyAxMi4xMSAzIDEwIDNTNi41NSA0LjMyIDYuMzUgNi4zNWExIDEgMCAwIDEtMSAuOWgtLjA3QTIuMzMgMi4zMyAwIDAgMCAzIDkuNjIgMi4zMyAyLjMzIDAgMCAwIDUuMjggMTJoMi42N2MtLjA5LjMyLS4xNS42Ni0uMTggMUg1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgMy45IDcuMTggMiAxMCAyWm0zLjUgMTZhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabTEuNi00LjlMMTQgMTQuMnYtMi43YS41LjUgMCAwIDAtMSAwdjIuN2wtMS4xLTEuMWEuNTYuNTYgMCAxIDAtLjguOGwyIDJjLjIyLjIyLjU4LjIyLjggMGwyLTJhLjU2LjU2IDAgMSAwLS44LS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC42NSA2LjI1QzE0LjQgMy45MiAxMi44MiAyIDEwIDIgNy4xOCAyIDUuNTkgMy45IDUuMzUgNi4yNWgtLjA3QTMuMzMgMy4zMyAwIDAgMCAyIDkuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTNoMi41YTUuNzUgNS43NSAwIDAgMSAxMC4yLTMuMWMuMDItLjA5LjAyLS4xOC4wMi0uMjhhMy4zMyAzLjMzIDAgMCAwLTMuMjgtMy4zN2gtLjA3Wk0xMy41IDlhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlabTIuMzUgNC44NS0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxNC4yOSAxNEgxMS41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNjUgNi4yNUMxNC40IDMuOTIgMTIuODIgMiAxMCAyIDcuMTggMiA1LjU5IDMuOSA1LjM1IDYuMjVINS4xQTMuMzQgMy4zNCAwIDAgMCAyIDkuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTNoMi41Yy4wMi0uMzQuMDgtLjY4LjE3LTFINS4yOEEyLjMzIDIuMzMgMCAwIDEgMyA5LjYyYTIuMzMgMi4zMyAwIDAgMSAyLjI4LTIuMzdoLjA3YTEgMSAwIDAgMCAxLS45QzYuNTUgNC4zMiA3Ljg5IDMgMTAgM2MyLjEgMCAzLjQ1IDEuMzIgMy42NSAzLjM1YTEgMSAwIDAgMCAxIC45aC4wN2MxIDAgMS44NC42NiAyLjE1IDEuNi40Mi4zLjguNjUgMS4xMiAxLjA2bC4wMS0uMjlhMy4zMyAzLjMzIDAgMCAwLTMuMjgtMy4zN2gtLjA3Wk0xMy41IDlhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlabTIuMzUgNC44NS0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxNC4yOSAxNEgxMS41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1VwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZBNS43NCA1Ljc0IDAgMCAwIDcuNzcgMTNINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYTMuMzMgMy4zMyAwIDAgMSAzLjI4LTMuMzdoLjA3QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSA3YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0xLjYgNC45YS41Ni41NiAwIDEgMCAuOC0uOGwtMi0yYS41Ni41NiAwIDAgMC0uOCAwbC0yIDJhLjU2LjU2IDAgMSAwIC44LjhsMS4xLTEuMXYyLjdhLjUuNSAwIDAgMCAxIDB2LTIuN2wxLjEgMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZjLS4zMi0uNC0uNy0uNzYtMS4xMi0xLjA3YTIuMyAyLjMgMCAwIDAtMi4xNS0xLjZoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMzIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMmgyLjY3Yy0uMDkuMzItLjE1LjY2LS4xOCAxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSA3YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0xLjYgNC45YS41Ni41NiAwIDEgMCAuOC0uOGwtMi0yYS41Ni41NiAwIDAgMC0uOCAwbC0yIDJhLjU2LjU2IDAgMSAwIC44LjhsMS4xLTEuMXYyLjdhLjUuNSAwIDAgMCAxIDB2LTIuN2wxLjEgMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRCZWFrZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRCZWFrZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNjIgOGMtLjMyLTIuMjEtMS45LTQtNC42Mi00LTIuODIgMC00LjQxIDEuOS00LjY1IDQuMjVoLS4wN0EzLjMzIDMuMzMgMCAwIDAgMiAxMS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxNWg2LjVsMS4xLTIuMTNhMSAxIDAgMCAwIC4xMi0uNDZ2LTEuNUExLjUgMS41IDAgMCAxIDEzLjUgOGgxLjEyWk0xNyAxMi40YTIgMiAwIDAgMCAuMjIuOTJsLjM1LjY4aC00LjE0bC4zNC0uNjdhMiAyIDAgMCAwIC4yMy0uOTJWMTBoLS41YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFIMTd2Mi40Wk0xMi45IDE1bC0uNzkgMS41NEExIDEgMCAwIDAgMTMgMThoNWExIDEgMCAwIDAgLjg4LTEuNDZsLS44LTEuNTRoLTUuMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEJlYWtlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRCZWFrZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjYyIDhjLS4zMi0yLjIxLTEuOS00LTQuNjItNC0yLjgyIDAtNC40MSAxLjktNC42NSA0LjI1SDUuMUEzLjM0IDMuMzQgMCAwIDAgMiAxMS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxNWg2LjVsLjUyLTFINS4yOEEyLjMzIDIuMzMgMCAwIDEgMyAxMS42MmEyLjMzIDIuMzMgMCAwIDEgMi4yOC0yLjM3aC4wN2ExIDEgMCAwIDAgMS0uOUM2LjU1IDYuMzIgNy44OSA1IDEwIDVjMS45OSAwIDMuMyAxLjE4IDMuNiAzaDEuMDJaTTE3IDEyLjRhMiAyIDAgMCAwIC4yMi45MmwuMzUuNjhoLTQuMTRsLjM0LS42N2EyIDIgMCAwIDAgLjIzLS45MlYxMGgtLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUgxN3YyLjRaTTEyLjkgMTVsLS43OSAxLjU0QTEgMSAwIDAgMCAxMyAxOGg1YTEgMSAwIDAgMCAuODgtMS40NmwtLjgtMS41NGgtNS4xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQmlkaXJlY3Rpb25hbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEJpZGlyZWN0aW9uYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdBMy4zMyAzLjMzIDAgMCAxIDE4IDkuNjIgMy4zMyAzLjMzIDAgMCAxIDE0LjcyIDEzSDExdi0yLjA5YTEuNSAxLjUgMCAwIDAgMS41Ni0yLjQ3bC0yLTJhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTIgMkExLjUgMS41IDAgMCAwIDggMTAuOVYxM0g1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgMy45IDcuMTggMiAxMCAyWm0xLjg1IDcuODVhLjUuNSAwIDAgMS0uNyAwTDEwIDguNzF2Ny41OGwxLjE1LTEuMTRhLjUuNSAwIDAgMSAuNy43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN0w5IDE2LjI5VjguNzFMNy44NSA5Ljg1YS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwbDIgMmMuMi4yLjIuNSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRCaWRpcmVjdGlvbmFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEJpZGlyZWN0aW9uYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3QTMuMzMgMy4zMyAwIDAgMSAxOCA5LjYyIDMuMzMgMy4zMyAwIDAgMSAxNC43MiAxM0gxMXYtMWgzLjcyQTIuMzMgMi4zMyAwIDAgMCAxNyA5LjYyYTIuMzMgMi4zMyAwIDAgMC0yLjI4LTIuMzdoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMyIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMkg4djFINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYzAtMS44IDEuMzctMy4yNyAzLjEtMy4zN2guMjVDNS42IDMuOSA3LjE4IDIgMTAgMlptMS44NSA3Ljg1YS41LjUgMCAwIDEtLjcgMEwxMCA4LjcxdjcuNThsMS4xNS0xLjE0YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdMOSAxNi4yOVY4LjcxTDcuODUgOS44NWEuNS41IDAgMCAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJjLjIuMi4yLjUgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZBNS43NCA1Ljc0IDAgMCAwIDcuNzcgMTNINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYTMuMzMgMy4zMyAwIDAgMSAzLjI4LTMuMzdoLjA3QzUuNiAzLjkgNy4xOCAyIDEwIDJabTggMTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZjLS4zMi0uNC0uNy0uNzYtMS4xMi0xLjA3YTIuMyAyLjMgMCAwIDAtMi4xNS0xLjZoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMzIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMmgyLjY3Yy0uMDkuMzItLjE1LjY2LS4xOCAxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiAzLjkgNy4xOCAyIDEwIDJabTggMTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuODUtMS44NS0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQ3ViZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEN1YmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNGMyLjczIDAgNC4zMiAxLjggNC42MiA0LjA0YTIgMiAwIDAgMC0uNTEuMTdsLTMgMS41QTIgMiAwIDAgMCAxMCAxMS41VjE1SDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTEuNjJhMy4zMyAzLjMzIDAgMCAxIDMuMjgtMy4zN2guMDdDNS42IDUuOSA3LjE4IDQgMTAgNFptOC40NSA2LjYtMy0xLjVhMSAxIDAgMCAwLS45IDBsLTMgMS41YTEgMSAwIDAgMC0uNTUuOXY0YTEgMSAwIDAgMCAuNTUuOWwzIDEuNWExIDEgMCAwIDAgLjkgMGwzLTEuNWExIDEgMCAwIDAgLjU1LS45di00YTEgMSAwIDAgMC0uNTUtLjlabS02LjQxIDEuMTNhLjUuNSAwIDAgMSAuNjYtLjI2bDIuMy45OSAyLjMtMWEuNS41IDAgMCAxIC40LjkzbC0yLjIuOTRWMTZhLjUuNSAwIDEgMS0xIDB2LTIuNjdsLTIuMi0uOTRhLjUuNSAwIDAgMS0uMjYtLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRDdWJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEN1YmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDRjMi43MyAwIDQuMzIgMS44IDQuNjIgNC4wNGEyIDIgMCAwIDAtLjUxLjE3bC0uNDUuMjJ2LS4wOEMxMy40NCA2LjMyIDEyLjEgNSAxMCA1IDcuODkgNSA2LjU1IDYuMzIgNi4zNSA4LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgMTEuNjIgMi4zMyAyLjMzIDAgMCAwIDUuMjggMTRIMTB2MUg1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDExLjYyYzAtMS44IDEuMzctMy4yNyAzLjEtMy4zN2guMjVDNS42IDUuOSA3LjE4IDQgMTAgNFptOC40NSA2LjYtMy0xLjVhMSAxIDAgMCAwLS45IDBsLTMgMS41YTEgMSAwIDAgMC0uNTUuOXY0YTEgMSAwIDAgMCAuNTUuOWwzIDEuNWExIDEgMCAwIDAgLjkgMGwzLTEuNWExIDEgMCAwIDAgLjU1LS45di00YTEgMSAwIDAgMC0uNTUtLjlabS02LjQxIDEuMTNhLjUuNSAwIDAgMSAuNjYtLjI2bDIuMy45OSAyLjMtMWEuNS41IDAgMCAxIC40LjkzbC0yLjIuOTRWMTZhLjUuNSAwIDEgMS0xIDB2LTIuNjdsLTIuMi0uOTRhLjUuNSAwIDAgMS0uMjYtLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWREYXRhYmFzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZERhdGFiYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDNjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMyAzLjMgMCAwIDEgMy4xOCAyLjU0Yy0uMTctLjEtLjM1LS4yLS41My0uMjdBNy40NyA3LjQ3IDAgMCAwIDE0LjUgOWMtMS4wNyAwLTIuMDguMTgtMi44Ny41Mi0uMzkuMTctLjc3LjQtMS4wNy43LS4zLjMtLjU2LjczLS41NiAxLjI4VjE0SDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTAuNjJhMy4zMyAzLjMzIDAgMCAxIDMuMjgtMy4zN2guMDdDNS42IDQuOSA3LjE4IDMgMTAgM1ptNy40NyAxMS4yOGMtLjguNDctMS44Ni43Mi0yLjk3LjcyLTEuMSAwLTIuMTYtLjI1LTIuOTctLjcyLS4xOC0uMS0uMzYtLjIyLS41My0uMzZWMTdjMCAxLjEgMS41NyAyIDMuNSAyczMuNS0uOSAzLjUtMnYtMy4wOGMtLjE3LjE0LS4zNS4yNi0uNTMuMzZaTTE0LjUgMTBjLTEuOTMgMC0zLjUuOS0zLjUgMnMxLjU3IDIgMy41IDIgMy41LS45IDMuNS0yLTEuNTctMi0zLjUtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkRGF0YWJhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkRGF0YWJhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMyAzLjMgMCAwIDEgMy4xOCAyLjU0IDUuNjQgNS42NCAwIDAgMC0xLjMyLS41NGMtLjQxLS42LTEuMS0xLTEuODYtMWgtLjA3YTEgMSAwIDAgMS0xLS45QzEzLjQ1IDUuMzIgMTIuMTEgNCAxMCA0UzYuNTUgNS4zMiA2LjM1IDcuMzVhMSAxIDAgMCAxLTEgLjloLS4wN0EyLjMzIDIuMzMgMCAwIDAgMyAxMC42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxM0gxMHYxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTAuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgNC45IDcuMTggMyAxMCAzWm03LjQ3IDExLjI4Yy0uOC40Ny0xLjg2LjcyLTIuOTcuNzItMS4xIDAtMi4xNi0uMjUtMi45Ny0uNzItLjE4LS4xLS4zNi0uMjItLjUzLS4zNlYxN2MwIDEuMSAxLjU3IDIgMy41IDJzMy41LS45IDMuNS0ydi0zLjA4Yy0uMTcuMTQtLjM1LjI2LS41My4zNlpNMTQuNSAxMGMtMS45MyAwLTMuNS45LTMuNSAyczEuNTcgMiAzLjUgMiAzLjUtLjkgMy41LTItMS41Ny0yLTMuNS0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWREZXNrdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkRGVza3RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA0YzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2MxLjI0IDAgMi4zMi43IDIuODggMS43NUgxMWEyIDIgMCAwIDAtMiAydjNINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiAxMS42MmEzLjMzIDMuMzMgMCAwIDEgMy4yOC0zLjM3aC4wN0M1LjYgNS45IDcuMTggNCAxMCA0Wm0wIDhhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC0ydjFoLjVhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFoLjV2LTFoLTJhMSAxIDAgMCAxLTEtMXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkRGVza3RvcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWREZXNrdG9wUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA0YzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2MxLjI0IDAgMi4zMi43IDIuODggMS43NWgtMS4yMWEyLjI0IDIuMjQgMCAwIDAtMS42Ny0uNzVoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA2LjMyIDEyLjExIDUgMTAgNVM2LjU1IDYuMzIgNi4zNSA4LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgMTEuNjIgMi4zMyAyLjMzIDAgMCAwIDUuMjggMTRIOXYxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTEuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgNS45IDcuMTggNCAxMCA0Wm0wIDhhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC0ydjFoLjVhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFoLjV2LTFoLTJhMSAxIDAgMCAxLTEtMXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZERpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdhMy4zMyAzLjMzIDAgMCAxIDMuMjcgMy42NkE1Ljc0IDUuNzQgMCAwIDAgNy43NyAxM0g1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJhMy4zMyAzLjMzIDAgMCAxIDMuMjgtMy4zN2guMDdDNS42IDMuOSA3LjE4IDIgMTAgMlptOCAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWREaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2EzLjMzIDMuMzMgMCAwIDEgMy4yNyAzLjY2Yy0uMzItLjQtLjctLjc2LTEuMTItMS4wN2EyLjMgMi4zIDAgMCAwLTIuMTUtMS42aC0uMDdhMSAxIDAgMCAxLTEtLjlDMTMuNDUgNC4zMyAxMi4xMSAzIDEwIDNTNi41NSA0LjMyIDYuMzUgNi4zNWExIDEgMCAwIDEtMSAuOWgtLjA3QTIuMzMgMi4zMyAwIDAgMCAzIDkuNjIgMi4zMyAyLjMzIDAgMCAwIDUuMjggMTJoMi42N2MtLjA5LjMyLS4xNS42Ni0uMTggMUg1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgMy45IDcuMTggMiAxMCAyWm04IDExLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjggMCAxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjY1IDguMjVDMTQuNCA1LjkyIDEyLjgyIDQgMTAgNCA3LjE4IDQgNS41OSA1LjkgNS4zNSA4LjI1aC0uMDdBMy4zMyAzLjMzIDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoMy4yYy4xNS0uNS40Mi0uOTYuOC0xLjMzbDQuODItNC44M2MuMjUtLjI1LjU0LS40NS44NS0uNTlIMTQuNjVabS4xNiAxLjMtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC42NSA4LjI1QzE0LjQgNS45MiAxMi44MiA0IDEwIDQgNy4xOCA0IDUuNTkgNS45IDUuMzUgOC4yNUg1LjFBMy4zNCAzLjM0IDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoMy4yYy4xLS4zNi4yOC0uNy41LTFoLTMuN0EyLjMzIDIuMzMgMCAwIDEgMyAxMS42MmEyLjMzIDIuMzMgMCAwIDEgMi4yOC0yLjM3aC4wN2ExIDEgMCAwIDAgMS0uOUM2LjU1IDYuMzIgNy44OSA1IDEwIDVjMi4xIDAgMy40NSAxLjMyIDMuNjUgMy4zNWExIDEgMCAwIDAgLjMyLjYzbC4xMy0uMTRjLjI1LS4yNS41NC0uNDUuODUtLjU5SDE0LjY1Wm0uMTYgMS4zLTQuODMgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEVycm9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNjUgNi4yNUMxNC40IDMuOTIgMTIuODIgMiAxMCAyIDcuMTggMiA1LjU5IDMuOSA1LjM1IDYuMjVoLS4wN0EzLjMzIDMuMzMgMCAwIDAgMiA5LjYyIDMuMzMgMy4zMyAwIDAgMCA1LjI4IDEzaDIuNWE1Ljc1IDUuNzUgMCAwIDEgMTAuMi0zLjFjLjAyLS4wOS4wMi0uMTguMDItLjI4YTMuMzMgMy4zMyAwIDAgMC0zLjI4LTMuMzdoLS4wN1pNMTggMTMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTMuNSAxMWEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEVycm9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC42NSA2LjI1QzE0LjQgMy45MiAxMi44MiAyIDEwIDIgNy4xOCAyIDUuNTkgMy45IDUuMzUgNi4yNUg1LjFBMy4zNCAzLjM0IDAgMCAwIDIgOS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxM2gyLjVjLjAyLS4zNC4wOC0uNjguMTctMUg1LjI4QTIuMzMgMi4zMyAwIDAgMSAzIDkuNjJhMi4zMyAyLjMzIDAgMCAxIDIuMjgtMi4zN2guMDdhMSAxIDAgMCAwIDEtLjlDNi41NSA0LjMyIDcuODkgMyAxMCAzYzIuMSAwIDMuNDUgMS4zMiAzLjY1IDMuMzVhMSAxIDAgMCAwIDEgLjloLjA3YzEgMCAxLjg0LjY2IDIuMTUgMS42LjQyLjMuOC42NSAxLjEyIDEuMDZsLjAxLS4yOWEzLjMzIDMuMzMgMCAwIDAtMy4yOC0zLjM3aC0uMDdaTTE4IDEzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTEzLjUgMTFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRGbG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkRmxvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN0EzLjMzIDMuMzMgMCAwIDEgMTggOS43NiAyLjk5IDIuOTkgMCAwIDAgMTMuMTcgMTFhMi41IDIuNSAwIDAgMC0yLjMyIDEuN2wtLjEuM0g1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJhMy4zMyAzLjMzIDAgMCAxIDMuMjgtMy4zN2guMDdDNS42IDMuOSA3LjE4IDIgMTAgMlptNiAxMmEyIDIgMCAxIDAtMi0yaC0uNzhhMS41IDEuNSAwIDAgMC0xLjQyIDEuMDNsLS41NSAxLjYzYS41LjUgMCAwIDEtLjQ3LjM0SDkuNzNhMiAyIDAgMSAwIC4yNyAxaC43OGExLjUgMS41IDAgMCAwIDEuNDItMS4wM2wuNTUtMS42M2EuNS41IDAgMCAxIC40Ny0uMzRoMS4wNWMuMzQuNi45OSAxIDEuNzMgMVptMC0xYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTcgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEZsb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkRmxvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdBMy4zMyAzLjMzIDAgMCAxIDE4IDkuNzZhMyAzIDAgMCAwLTEuMDQtLjYgMi4zIDIuMyAwIDAgMC0yLjI0LTEuOTFoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMyIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMmg1Ljk0YTIuNSAyLjUgMCAwIDAtLjM3LjdsLS4xLjNINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYzAtMS44IDEuMzctMy4yNyAzLjEtMy4zN2guMjVDNS42IDMuOSA3LjE4IDIgMTAgMlptNi45MyA4LjIzQTIuMDEgMi4wMSAwIDAgMSAxOCAxMmEyIDIgMCAwIDEtMy43MyAxaC0xLjA1YS41LjUgMCAwIDAtLjQ3LjM0bC0uNTUgMS42M0ExLjUgMS41IDAgMCAxIDEwLjc4IDE2SDEwYTIgMiAwIDEgMS0uMjctMWgxLjA1YS41LjUgMCAwIDAgLjQ3LS4zNGwuNTUtMS42M2ExLjk0IDEuOTQgMCAwIDEgLjEtLjIyYy4yNS0uNS43Ni0uODEgMS4zMi0uODFIMTRhMiAyIDAgMCAxIDIuOTMtMS43N1ptLS40NC45YTEgMSAwIDAgMC0xLjQ5Ljg2VjEyYTEgMSAwIDAgMCAyIC4wMVYxMmExIDEgMCAwIDAtLjUxLS44N1pNOSAxNmExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZExpbmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjY1IDguMjVDMTQuNCA1LjkyIDEyLjgyIDQgMTAgNCA3LjE4IDQgNS41OSA1LjkgNS4zNSA4LjI1aC0uMDdBMy4zMyAzLjMzIDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoMy43NmEzLjUgMy41IDAgMCAxIDMuNDYtNGg0Yy41MyAwIDEuMDQuMTIgMS40OS4zM2EzLjMyIDMuMzIgMCAwIDAtMy4yNy0zLjA4aC0uMDdaTTEyLjUgMTJhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS0zLjUgMmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZExpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjY1IDguMjVDMTQuNCA1LjkyIDEyLjgyIDQgMTAgNCA3LjE4IDQgNS41OSA1LjkgNS4zNSA4LjI1SDUuMUEzLjM0IDMuMzQgMCAwIDAgMiAxMS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxNWg0LjA2YTMuNDggMy40OCAwIDAgMS0uMy0xSDUuMjhBMi4zMyAyLjMzIDAgMCAxIDMgMTEuNjJhMi4zMyAyLjMzIDAgMCAxIDIuMjgtMi4zN2guMDdhMSAxIDAgMCAwIDEtLjlDNi41NSA2LjMyIDcuODkgNSAxMCA1YzIuMSAwIDMuNDUgMS4zMiAzLjY1IDMuMzVhMSAxIDAgMCAwIDEgLjloLjA3Yy42NSAwIDEuMjUuMjkgMS42Ny43NWguMTFjLjQyIDAgLjgzLjA3IDEuMi4yMWEzLjI4IDMuMjggMCAwIDAtMi45OC0xLjk2aC0uMDdaTTEyLjUgMTFhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS0zLjUgMmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wzLjY3IDMuNjdjLS4yNS41My0uNCAxLjExLS40NyAxLjczaC0uMDdBMy4zMyAzLjMzIDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoOS4wMWwyLjg2IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTE4IDExLjYyYTMuNCAzLjQgMCAwIDEtMS40NSAyLjhsLTkuNS05LjQ4QTQuNjYgNC42NiAwIDAgMSAxMCA0YzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN0EzLjMzIDMuMzMgMCAwIDEgMTggMTEuNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMy42NyAzLjY3Yy0uMjUuNTMtLjQgMS4xMS0uNDcgMS43M0g1LjFBMy4zNCAzLjM0IDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoOS4wMWwyLjg2IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEzLjMgMTRoLThBMi4zMyAyLjMzIDAgMCAxIDMgMTEuNjJhMi4zMyAyLjMzIDAgMCAxIDIuMjgtMi4zN2guMDdhMSAxIDAgMCAwIDEtLjljLjA0LS4zOC4xMS0uNzQuMjMtMS4wNkwxMy4yOSAxNFpNMTcgMTEuNjJjMCAuOS0uNDggMS42OC0xLjE4IDIuMDhsLjczLjczYTMuNCAzLjQgMCAwIDAgMS40NS0yLjggMy4zMyAzLjMzIDAgMCAwLTMuMjgtMy4zOGgtLjA3QzE0LjQgNS45MiAxMi44MiA0IDEwIDRjLTEuMiAwLTIuMi4zNS0yLjk0Ljk0bC43MS43MUEzLjc2IDMuNzYgMCAwIDEgMTAgNWMyLjEgMCAzLjQ1IDEuMzIgMy42NSAzLjM1YTEgMSAwIDAgMCAxIC45aC4wN0EyLjMzIDIuMzMgMCAwIDEgMTcgMTEuNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZFN3YXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRTd2FwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjY1IDguMjVDMTQuNCA1LjkyIDEyLjgyIDQgMTAgNCA3LjE4IDQgNS41OSA1LjkgNS4zNSA4LjI1SDUuMUEzLjM0IDMuMzQgMCAwIDAgMiAxMS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxNWgyLjhhMS41IDEuNSAwIDAgMSAuMzYtMS41NmwyLTJBMS41IDEuNSAwIDAgMSAxMi45IDEzaDEuMThhMS41IDEuNSAwIDAgMSAyLjQ3LTEuNTZsMS4yNyAxLjI3Yy4xLS4zNC4xNy0uNy4xNy0xLjA5YTMuMzMgMy4zMyAwIDAgMC0zLjI4LTMuMzdoLS4wN1ptLTIuOCA0LjZhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxNWg1LjU4bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTYuMjkgMTRoLTUuNThsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRTd2FwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZFN3YXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDRjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3QTMuMzMgMy4zMyAwIDAgMSAxOCAxMS42MmMwIC4zOC0uMDYuNzUtLjE3IDEuMDlsLS44NC0uODQuMDEtLjI1YTIuMzMgMi4zMyAwIDAgMC0yLjI4LTIuMzdoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA2LjMyIDEyLjExIDUgMTAgNVM2LjU1IDYuMzIgNi4zNSA4LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgMTEuNjIgMi4zMyAyLjMzIDAgMCAwIDUuMjggMTRoMi44YTEuNSAxLjUgMCAwIDAgMCAxaC0yLjhBMy4zMyAzLjMzIDAgMCAxIDIgMTEuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgNS45IDcuMTggNCAxMCA0Wm0xLjg1IDguODVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxNWg1LjU4bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTYuMjkgMTRoLTUuNThsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2EzLjMzIDMuMzMgMCAwIDEgMy4yNyAzLjY2QTUuNzQgNS43NCAwIDAgMCA3Ljc3IDEzSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmEzLjMzIDMuMzMgMCAwIDEgMy4yOC0zLjM3aC4wN0M1LjYgMy45IDcuMTggMiAxMCAyWk05IDEzLjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE0YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTFjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxNmEuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkU3luY1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRTeW5jUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2EzLjMzIDMuMzMgMCAwIDEgMy4yNyAzLjY2Yy0uMzItLjQtLjctLjc2LTEuMTItMS4wN2EyLjMgMi4zIDAgMCAwLTIuMTUtMS42aC0uMDdhMSAxIDAgMCAxLTEtLjlDMTMuNDUgNC4zMyAxMi4xMSAzIDEwIDNTNi41NSA0LjMyIDYuMzUgNi4zNWExIDEgMCAwIDEtMSAuOWgtLjA3QTIuMzMgMi4zMyAwIDAgMCAzIDkuNjIgMi4zMyAyLjMzIDAgMCAwIDUuMjggMTJoMi42N2MtLjA5LjMyLS4xNS42Ni0uMTggMUg1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgMy45IDcuMTggMiAxMCAyWk05IDEzLjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE0YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTFjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxNmEuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkV29yZHNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRXb3Jkc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC42NSA4LjI1QzE0LjQgNS45MiAxMi44MiA0IDEwIDQgNy4xOCA0IDUuNTkgNS45IDUuMzUgOC4yNUg1LjFBMy4zNCAzLjM0IDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoOS40NEEzLjMzIDMuMzMgMCAwIDAgMTggMTEuNjJhMy4zMyAzLjMzIDAgMCAwLTMuMjgtMy4zN2gtLjA3Wk04LjUgN2gzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWk00IDExLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTcuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRXb3Jkc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRXb3Jkc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDdhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNCAxMS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm03LjUtLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMy4xNS0yLjc1QzE0LjQgNS45MiAxMi44MiA0IDEwIDQgNy4xOCA0IDUuNTkgNS45IDUuMzUgOC4yNUg1LjFBMy4zNCAzLjM0IDAgMCAwIDIgMTEuNjIgMy4zMyAzLjMzIDAgMCAwIDUuMjggMTVoOS40NEEzLjMzIDMuMzMgMCAwIDAgMTggMTEuNjJhMy4zMyAzLjMzIDAgMCAwLTMuMjgtMy4zN2gtLjA3Wm0tOC4zLjFDNi41NSA2LjMyIDcuODkgNSAxMCA1YzIuMSAwIDMuNDUgMS4zMiAzLjY1IDMuMzVhMSAxIDAgMCAwIDEgLjloLjA3QTIuMzMgMi4zMyAwIDAgMSAxNyAxMS42MiAyLjMzIDIuMzMgMCAwIDEgMTQuNzIgMTRINS4yOEEyLjMzIDIuMzMgMCAwIDEgMyAxMS42MmEyLjMzIDIuMzMgMCAwIDEgMi4yOC0yLjM3aC4wN2ExIDEgMCAwIDAgMS0uOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3ZlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG92ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDJhMy41IDMuNSAwIDEgMCAwIDdoM2EuNS41IDAgMCAwIC41LS41di0zQTMuNSAzLjUgMCAwIDAgNS41IDJabTAgMTVhMy41IDMuNSAwIDEgMSAwLTdoM2MuMjggMCAuNS4yMi41LjV2M0EzLjUgMy41IDAgMCAxIDUuNSAxN1ptOC0xNWEzLjUgMy41IDAgMSAxIDAgN2gtM2EuNS41IDAgMCAxLS41LS41di0zQTMuNSAzLjUgMCAwIDEgMTMuNSAyWm0wIDE1YTMuNSAzLjUgMCAxIDAgMC03aC0zYS41LjUgMCAwIDAtLjUuNXYzYTMuNSAzLjUgMCAwIDAgMy41IDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3ZlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdmVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMmEzLjUgMy41IDAgMSAwIDAgN2gzYS41LjUgMCAwIDAgLjUtLjV2LTNBMy41IDMuNSAwIDAgMCA1LjUgMlpNMyA1LjVhMi41IDIuNSAwIDAgMSA1IDBWOEg1LjVBMi41IDIuNSAwIDAgMSAzIDUuNVpNNS41IDE3YTMuNSAzLjUgMCAxIDEgMC03aDNjLjI4IDAgLjUuMjIuNS41djNBMy41IDMuNSAwIDAgMSA1LjUgMTdaTTMgMTMuNWEyLjUgMi41IDAgMCAwIDUgMFYxMUg1LjVBMi41IDIuNSAwIDAgMCAzIDEzLjVabTE0LThhMy41IDMuNSAwIDEgMC03IDB2M2MwIC4yOC4yMi41LjUuNWgzQTMuNSAzLjUgMCAwIDAgMTcgNS41Wk0xMy41IDNhMi41IDIuNSAwIDAgMSAwIDVIMTFWNS41QTIuNSAyLjUgMCAwIDEgMTMuNSAzWm0wIDE0YTMuNSAzLjUgMCAxIDAgMC03aC0zYS41LjUgMCAwIDAtLjUuNXYzYTMuNSAzLjUgMCAwIDAgMy41IDMuNVptMi41LTMuNWEyLjUgMi41IDAgMCAxLTUgMFYxMWgyLjVhMi41IDIuNSAwIDAgMSAyLjUgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29kZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjk0IDQuMDVhLjc1Ljc1IDAgMCAwLTEuMzgtLjZsLTUuNSAxMi41YS43NS43NSAwIDEgMCAxLjM4LjZsNS41LTEyLjVabTEuMzUgOS44YS43NS43NSAwIDAgMS0uMTMtMS4wNkwxNi4zIDEwbC0yLjE0LTIuOGEuNzUuNzUgMCAwIDEgMS4xOC0uOWwyLjUgMy4yNGMuMjEuMjcuMjEuNjUgMCAuOTJsLTIuNSAzLjI1YS43NS43NSAwIDAgMS0xLjA1LjEzWm0tOC41OC03LjdjLjMzLjI2LjM5LjczLjEzIDEuMDZMMy43IDEwbDIuMTQgMi44YS43NS43NSAwIDEgMS0xLjE4LjlsLTIuNS0zLjI0YS43NS43NSAwIDAgMSAwLS45MmwyLjUtMy4yNWEuNzUuNzUgMCAwIDEgMS4wNS0uMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2RlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi45NyAzLjY4YS41LjUgMCAwIDAtLjk0LS4zNmwtNSAxM2EuNS41IDAgMSAwIC45NC4zNmw1LTEzWk01LjgzIDYuMTJjLjIuMTguMjMuNS4wNS43TDMuMTYgMTBsMi43MiAzLjE3YS41LjUgMCAwIDEtLjc2LjY2bC0zLTMuNWEuNS41IDAgMCAxIDAtLjY2bDMtMy41YS41LjUgMCAwIDEgLjctLjA1Wm04LjM0IDguMjZhLjUuNSAwIDAgMS0uMDUtLjdsMi43Mi0zLjE4LTIuNzItMy4xN2EuNS41IDAgMSAxIC43Ni0uNjZsMyAzLjVhLjUuNSAwIDAgMSAwIC42NmwtMyAzLjVhLjUuNSAwIDAgMS0uNy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvZGVCbG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlQmxvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptMi44NSA0Ljg1TDYuNzEgMTBsMi4xNCAyLjE1YS41LjUgMCAwIDEtLjcuN2wtMi41LTIuNWEuNS41IDAgMCAxIDAtLjdsMi41LTIuNWEuNS41IDAgMSAxIC43LjdabTMtLjcgMi41IDIuNWMuMi4yLjIuNSAwIC43bC0yLjUgMi41YS41LjUgMCAwIDEtLjctLjdMMTMuMjkgMTBsLTIuMTQtMi4xNWEuNS41IDAgMCAxIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ29kZUJsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlQmxvY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTQuODUgMS44NWEuNS41IDAgMSAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMNi43MSAxMGwyLjE0LTIuMTVabTMtLjdhLjUuNSAwIDAgMC0uNy43TDEzLjI5IDEwbC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29kZUNpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlQ2lyY2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTkuOTYtMy44YS41LjUgMCAxIDAtLjkyLS40bC0zLjUgOGEuNS41IDAgMSAwIC45Mi40bDMuNS04Wm0tNS4xIDEuNDVhLjUuNSAwIDAgMC0uNzEgMGwtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0w1LjIxIDEwbDEuNjQtMS42NWEuNS41IDAgMCAwIDAtLjdabTYuMjkuN0wxNC43OSAxMGwtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ29kZUNpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29kZUNpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuOTYgNi4yYS41LjUgMCAxIDAtLjkyLS40bC0zLjUgOGEuNS41IDAgMSAwIC45Mi40bDMuNS04Wm0tNS4xIDEuNDVjLjE5LjIuMTkuNSAwIC43TDUuMiAxMGwxLjY0IDEuNjVhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmMuMi0uMi41LS4yLjcgMFptNi4yOS43YS41LjUgMCAwIDEgLjctLjdsMiAyYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43TDE0Ljc5IDEwbC0xLjY0LTEuNjVaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2RlVGV4dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlVGV4dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDQuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTVabTMgM2EuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41Wk00IDExLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoOS41YS43NS43NSAwIDAgMSAwIDEuNWgtOS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0yLjc1IDEzLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDhhLjc1Ljc1IDAgMCAwIDAtMS41aC04Wm05Ljc1LTUuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzYS43NS43NSAwIDAgMSAwIDEuNWgtM2EuNzUuNzUgMCAwIDEtLjc1LS43NVpNMTAuNzUgNC41YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2RlVGV4dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29kZVRleHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA1YS41LjUgMCAwIDAgMCAxSDhhLjUuNSAwIDAgMCAwLTFIMi41Wm0zIDNhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNCAxMS41YzAtLjI4LjIyLS41LjUtLjVoMTBhLjUuNSAwIDAgMSAwIDFoLTEwYS41LjUgMCAwIDEtLjUtLjVaTTIuNSAxNGEuNS41IDAgMCAwIDAgMUgxMWEuNS41IDAgMCAwIDAtMUgyLjVabTEwLTUuNWMwLS4yOC4yMi0uNS41LS41aDMuNWEuNS41IDAgMCAxIDAgMUgxM2EuNS41IDAgMCAxLS41LS41Wm0tMi0zLjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENvZGVUZXh0RWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2RlVGV4dEVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NSA0LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDVhLjc1Ljc1IDAgMCAwIDAtMS41aC01Wm0zIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNVpNNCAxMS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWMuMDYgMCAuMTIgMCAuMTcuMDJMMTIuOTQgMTJINC43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNi4yNyAzLjQyLjk4LS45OGEuNzUuNzUgMCAwIDAtLjUtLjE5aC04YS43NS43NSAwIDAgMCAwIDEuNWg3LjI0Yy4wOC0uMTIuMTgtLjIzLjI4LS4zM1ptMi4yMy02LjQyYzAtLjQxLjM0LS43NS43NS0uNzVoM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTNhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTEwLjc1IDQuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41Wm0uMjMgMTAuODggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2RlVGV4dEVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvZGVUZXh0RWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDVhLjUuNSAwIDAgMCAwIDFIOGEuNS41IDAgMCAwIDAtMUgyLjVabTMgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk00IDExLjVjMC0uMjguMjItLjUuNS0uNWg5LjQ0bC0xIDFINC41YS41LjUgMCAwIDEtLjUtLjVabTYuMjcgMy4xNy42Ny0uNjdIMi41YS41LjUgMCAwIDAgMCAxaDcuNDljLjA4LS4xMi4xOC0uMjMuMjgtLjMzWk0xMi41IDguNWMwLS4yOC4yMi0uNS41LS41aDMuNWEuNS41IDAgMCAxIDAgMUgxM2EuNS41IDAgMCAxLS41LS41Wm0tMi0zLjVhLjUuNSAwIDAgMCAwIDFIMTdhLjUuNSAwIDAgMCAwLTFoLTYuNVptLjQ4IDEwLjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ29pblN0YWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvaW5TdGFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiA2YzAgMi4yLTIuNjkgNC02IDRTNCA4LjIgNCA2czIuNjktNCA2LTQgNiAxLjggNiA0Wm0tLjI1IDIuODVDMTQuNDkgMTAuMTUgMTIuMzggMTEgMTAgMTFzLTQuNDktLjg1LTUuNzUtMi4xNUM0LjA5IDkuMjIgNCA5LjYgNCAxMGMwIDIuMiAyLjY5IDQgNiA0czYtMS44IDYtNGMwLS40LS4wOS0uNzgtLjI1LTEuMTVabTAgNEMxNC40OSAxNC4xNSAxMi4zOCAxNSAxMCAxNXMtNC40OS0uODUtNS43NS0yLjE1QzQuMDkgMTMuMjIgNCAxMy42IDQgMTRjMCAyLjIgMi42OSA0IDYgNHM2LTEuOCA2LTRjMC0uNC0uMDktLjc4LS4yNS0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ29pblN0YWNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2luU3RhY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMzggMy45NUM1LjQ3IDQuNTMgNSA1LjI2IDUgNmMwIC43NC40NyAxLjQ3IDEuMzggMi4wNS45LjU4IDIuMTguOTUgMy42Mi45NXMyLjcyLS4zNyAzLjYyLS45NUMxNC41MyA3LjQ3IDE1IDYuNzQgMTUgNmMwLS43NC0uNDctMS40Ny0xLjM4LTIuMDVBNi44NCA2Ljg0IDAgMCAwIDEwIDNjLTEuNDQgMC0yLjcyLjM3LTMuNjIuOTVabS0uNTQtLjg1QTcuODQgNy44NCAwIDAgMSAxMCAyYzEuNiAwIDMuMDcuNDEgNC4xNiAxLjFDMTUuMjQgMy44IDE2IDQuOCAxNiA2cy0uNzYgMi4yLTEuODQgMi45QTcuODQgNy44NCAwIDAgMSAxMCAxMGMtMS42IDAtMy4wNy0uNDEtNC4xNi0xLjFDNC43NiA4LjIgNCA3LjIgNCA2cy43Ni0yLjIgMS44NC0yLjlabTkuOTEgNS43NWMtLjI0LjI1LS41MS40OC0uODEuNy4wNC4xNC4wNi4zLjA2LjQ1IDAgLjc0LS40NyAxLjQ3LTEuMzggMi4wNS0uOS41OC0yLjE4Ljk1LTMuNjIuOTVhNi44NCA2Ljg0IDAgMCAxLTMuNjItLjk1QzUuNDcgMTEuNDcgNSAxMC43NCA1IDEwYzAtLjE1LjAyLS4zLjA2LS40Ni0uMy0uMjEtLjU3LS40NC0uODEtLjdDNC4wOSA5LjIyIDQgOS42IDQgMTBjMCAxLjIuNzYgMi4yIDEuODQgMi45QzYuOTMgMTMuNTkgOC40IDE0IDEwIDE0czMuMDctLjQxIDQuMTYtMS4xQzE1LjI0IDEyLjIgMTYgMTEuMiAxNiAxMGMwLS40LS4wOS0uOC0uMjUtMS4xNVptMCA0Yy0uMjQuMjUtLjUxLjQ4LS44MS43LjA0LjE0LjA2LjMuMDYuNDUgMCAuNzQtLjQ3IDEuNDctMS4zOCAyLjA1LS45LjU4LTIuMTguOTUtMy42Mi45NWE2Ljg0IDYuODQgMCAwIDEtMy42Mi0uOTVDNS40NyAxNS40NyA1IDE0Ljc0IDUgMTRjMC0uMTUuMDItLjMuMDYtLjQ2LS4zLS4yMS0uNTctLjQ0LS44MS0uNy0uMTYuMzctLjI1Ljc1LS4yNSAxLjE2IDAgMS4yLjc2IDIuMiAxLjg0IDIuOUM2LjkzIDE3LjU5IDguNCAxOCAxMCAxOHMzLjA3LS40MSA0LjE2LTEuMUMxNS4yNCAxNi4yIDE2IDE1LjIgMTYgMTRjMC0uNC0uMDktLjgtLjI1LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2xsZWN0aW9uc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2xsZWN0aW9uc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDdBMi41IDIuNSAwIDAgMSAxOCA5LjMzdjYuMTdhMi41IDIuNSAwIDAgMS0yLjMzIDIuNUg5LjVBMi41IDIuNSAwIDAgMSA3IDE1LjY2VjkuNUEyLjUgMi41IDAgMCAxIDkuMzQgN2g2LjE2Wm0tMyAyYS41LjUgMCAwIDAtLjUuNFYxMkg5LjQxYS41LjUgMCAwIDAgMCAxSDEydjIuNTlhLjUuNSAwIDAgMCAxIDB2LTIuNmgyLjZhLjUuNSAwIDAgMCAwLS45OGwtLjEtLjAxSDEzVjkuNGEuNS41IDAgMCAwLS41LS40Wm0uMTYtNS4zLjA1LjE1TDEzLjMgNkg5YTMgMyAwIDAgMC0zIDIuODJWMTQuMzVhMi41IDIuNSAwIDAgMS0yLjMtMS42OWwtLjA2LS4xNy0xLjU1LTUuOGEyLjUgMi41IDAgMCAxIDEuNi0zbC4xNi0uMDUgNS44LTEuNTZhMi41IDIuNSAwIDAgMSAyLjk2IDEuNDZsLjA1LjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ29sbGVjdGlvbnNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbGxlY3Rpb25zUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDdBMi41IDIuNSAwIDAgMSAxOCA5LjMzdjYuMTdhMi41IDIuNSAwIDAgMS0yLjMzIDIuNUg5LjVBMi41IDIuNSAwIDAgMSA3IDE1LjY2VjkuNUEyLjUgMi41IDAgMCAxIDkuMzQgN2g2LjE2Wm0wIDFoLTZjLS43OCAwLTEuNDIuNi0xLjUgMS4zNXY2LjE1YzAgLjc4LjYgMS40MiAxLjM2IDEuNWg2LjE0Yy43OCAwIDEuNDItLjYgMS41LTEuMzZWOS41YzAtLjc4LS42LTEuNDItMS4zNS0xLjVoLS4xNVptLTMgMWEuNS41IDAgMCAxIC41LjRWMTJoMi41YS41LjUgMCAwIDEgLjEgMUgxM3YyLjVhLjUuNSAwIDAgMS0xIC4wOXYtMi42SDkuNWEuNS41IDAgMCAxLS4wOS0uOThsLjEtLjAxSDEyVjkuNWMwLS4yOC4yMi0uNS41LS41Wm0uMTYtNS4zLjA1LjE1TDEzLjMgNmgtMS4wNGwtLjUtMS44OWExLjUgMS41IDAgMCAwLTEuNy0xLjFsLS4xNC4wNEw0LjEgNC42YTEuNSAxLjUgMCAwIDAtMS4wOSAxLjdsLjAzLjE0IDEuNTUgNS44YTEuNSAxLjUgMCAwIDAgMS40IDEuMXYxYTIuNSAyLjUgMCAwIDEtMi4zLTEuNjhsLS4wNi0uMTctMS41NS01LjhhMi41IDIuNSAwIDAgMSAxLjYtM2wuMTYtLjA1IDUuOC0xLjU2YTIuNSAyLjUgMCAwIDEgMi45NiAxLjQ2bC4wNS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbGxlY3Rpb25zQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbGxlY3Rpb25zQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjUgN0EyLjUgMi41IDAgMCAxIDE4IDkuMzN2LjkzQTUuNSA1LjUgMCAwIDAgMTAuMjYgMThIOS41QTIuNSAyLjUgMCAwIDEgNyAxNS42NlY5LjVBMi41IDIuNSAwIDAgMSA5LjM0IDdoNi4xNlptLTIuODQtMy4zLjA1LjE1TDEzLjMgNkg5YTMgMyAwIDAgMC0zIDIuODJWMTQuMzVhMi41IDIuNSAwIDAgMS0yLjMtMS42OWwtLjA2LS4xNy0xLjU1LTUuOGEyLjUgMi41IDAgMCAxIDEuNi0zbC4xNi0uMDUgNS44LTEuNTZhMi41IDIuNSAwIDAgMSAyLjk2IDEuNDZsLjA1LjE1Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAxIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAxIDAgMSAwVjE1aDEuNWEuNS41IDAgMSAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29sbGVjdGlvbnNBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbGxlY3Rpb25zQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDdBMi41IDIuNSAwIDAgMSAxOCA5LjMzdi45M2E1LjUgNS41IDAgMCAwLTEtLjY2di0uMWMwLS43OC0uNi0xLjQyLTEuMzUtMS41SDkuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM1djYuMTVjMCAuNzguNiAxLjQyIDEuMzYgMS41SDkuNmMuMTguMzYuNC43LjY2IDFIOS41QTIuNSAyLjUgMCAwIDEgNyAxNS42NlY5LjVBMi41IDIuNSAwIDAgMSA5LjM0IDdoNi4xNlptLTIuODQtMy4zLjA1LjE1TDEzLjMgNmgtMS4wNGwtLjUtMS44OWExLjUgMS41IDAgMCAwLTEuNy0xLjFsLS4xNC4wNEw0LjEgNC42YTEuNSAxLjUgMCAwIDAtMS4wOSAxLjdsLjAzLjE0IDEuNTUgNS44YTEuNSAxLjUgMCAwIDAgMS40IDEuMXYxYTIuNSAyLjUgMCAwIDEtMi4zLTEuNjhsLS4wNi0uMTctMS41NS01LjhhMi41IDIuNSAwIDAgMSAxLjYtM2wuMTYtLjA1IDUuOC0xLjU2YTIuNSAyLjUgMCAwIDEgMi45NiAxLjQ2bC4wNS4xNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMSAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMSAwIDEgMFYxNWgxLjVhLjUuNSAwIDEgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbG9yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNzcgMy4xN2E3LjgyIDcuODIgMCAwIDEgNy45My0uMThjMy45NyAyLjA0IDUuNSA2LjE2IDQuMTggMTAuNDRhNy40NiA3LjQ2IDAgMCAxLTIuMzcgMy41OSA0LjMyIDQuMzIgMCAwIDEtNC4yLjggMy44NCAzLjg0IDAgMCAxLTIuMi0xLjY4Yy0uNDEtLjctLjUzLTEuNDctLjU4LTIuMTRsLS4wNC0uNTgtLjAyLS4zN2MtLjAyLS4zLS4wNS0uNTUtLjEtLjc2YTEuMTYgMS4xNiAwIDAgMC0uMi0uNDcuNzUuNzUgMCAwIDAtLjQtLjI0IDEuODYgMS44NiAwIDAgMC0xLjE1LS4wNGMtLjI1LjA4LS40NS4yLS42OS4zNWwtLjIuMTJjLS4zMS4xOC0uNzIuNC0xLjIzLjM3YTIuOTEgMi45MSAwIDAgMS0xLjY2LS43NyAyLjYzIDIuNjMgMCAwIDEtLjk0LTIuMTJjMC0uNzkuMjUtMS42My42Mi0yLjQzYTkuNiA5LjYgMCAwIDEgMy4yNS0zLjlabTMuOTggMy41OGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTE1LjUgOWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS0xIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMSAxYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2xvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS43NSA2LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0zIDFhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0yLjUgMS41YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTEzLjI1IDE0YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS40NS0xMWE3LjgyIDcuODIgMCAwIDAtNy45My4xNyA5LjYgOS42IDAgMCAwLTMuMjUgMy44OSA1LjkgNS45IDAgMCAwLS42MiAyLjQzYzAgLjguMjcgMS41Ny45NCAyLjEyLjYxLjUgMS4xNC43NCAxLjY2Ljc3LjUxLjAyLjkyLS4xOSAxLjIzLS4zN2wuMi0uMTJjLjI0LS4xNS40NC0uMjcuNjktLjM1LjI4LS4wOS42NC0uMTIgMS4xNi4wNC4xOS4wNi4zLjE0LjM4LjI0LjA5LjEuMTYuMjYuMi40Ny4wNi4yMS4wOS40Ni4xLjc2LjAyLjEuMDIuMjQuMDMuMzdsLjA0LjU4Yy4wNS42Ny4xNyAxLjQ0LjU3IDIuMTQuNDIuNyAxLjEgMS4zIDIuMiAxLjY4IDEuNi41NCAzLjA3LjEgNC4yMS0uOGE3LjQ2IDcuNDYgMCAwIDAgMi4zNy0zLjZDMTkuMiA5LjE2IDE3LjY4IDUuMDQgMTMuNyAzWk02LjMgNC4wMWE2LjgyIDYuODIgMCAwIDEgNi45NC0uMTRjMy41IDEuOCA0Ljg3IDUuNCAzLjY5IDkuMjVhNi40NiA2LjQ2IDAgMCAxLTIuMDQgMy4xIDMuMzMgMy4zMyAwIDAgMS0zLjI2LjY0Yy0uOS0uMy0xLjM4LS43Ni0xLjY2LTEuMjRhNCA0IDAgMCAxLS40NC0xLjdsLS4wNC0uNTQtLjAyLS40MWMtLjAzLS4zMS0uMDYtLjYzLS4xMy0uOTMtLjA3LS4zLS4yLS42LS40LS44Ni0uMjItLjI2LS41LS40Ni0uODctLjU3YTIuODUgMi44NSAwIDAgMC0xLjc1LS4wM2MtLjM4LjEyLS43LjMyLS45NS40N2wtLjE0LjA5Yy0uMjkuMTYtLjQ4LjI0LS42OC4yMy0uMjItLjAxLS41NS0uMTItMS4wOC0uNTUtLjM4LS4zMS0uNTctLjc2LS41Ny0xLjM0IDAtLjYuMTktMS4yOS41Mi0yLjAxQTguNjMgOC42MyAwIDAgMSA2LjMgNC4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yQmFja2dyb3VuZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2xvckJhY2tncm91bmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMiAxMC42NiAxLjA4IDEuMDhhMyAzIDAgMCAwIDQuMjQgMGwuNjgtLjY4Yy4wMyAxLjM0Ljk2IDIuOTQgMi43NSAyLjk0IDEuODIgMCAyLjc1LTEuNjUgMi43NS0zIDAtMS4wMS0uNTMtMS45Ni0uODYtMi40Ny0uMi0uMy0uMzgtLjU1LS41Mi0uNzJsLS4wMS0uMDItLjIyLS4yNi0uMDItLjAzYTEuNSAxLjUgMCAwIDAtLjg1LS40OCAzIDMgMCAwIDAtLjg3LTIuMzVMOS40OCA0aDYuMDJBMi41IDIuNSAwIDAgMSAxOCA2LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxMy41di0yLjg0Wk01IDEuNWEuNS41IDAgMCAxIDEgMHYxLjE3YTIgMiAwIDAgMSAxLjMyLjU5bDIuMTIgMi4xMmEyIDIgMCAwIDEgMCAyLjgzbC0yLjgzIDIuODNhMiAyIDAgMCAxLTIuODIgMEwxLjY2IDguOWEyIDIgMCAwIDEgMC0yLjgyTDQuNSAzLjI2QTIgMiAwIDAgMSA1IDIuODlWMS41Wm0wIDRWNC4xNkwyLjY2IDYuNWg2LjMyYTEgMSAwIDAgMC0uMjUtLjQxTDYuNjEgMy45NkExIDEgMCAwIDAgNiAzLjY4VjUuNWEuNS41IDAgMCAxLTEgMFptLTIuOTIgMmMwIC4yNi4xLjUxLjMuN2wyLjExIDIuMTNhMSAxIDAgMCAwIDEuNDIgMEw4LjczIDcuNUgyLjA4Wm04LjMuNjctLjIyLjI2Yy0uMTIuMTUtLjI5LjM4LS40Ni42NEM5LjQgOS41NyA5IDEwLjMgOSAxMWMwIDEgLjY3IDIgMS43NSAyczEuNzUtMSAxLjc1LTJjMC0uNy0uMzktMS40NC0uNy0xLjkzYTguMTMgOC4xMyAwIDAgMC0uNDYtLjY0bC0uMjItLjI2YS41LjUgMCAwIDAtLjc0IDBabS4xNyAxLjQ0Yy4wNi0uMTEuMTMtLjIxLjItLjNsLjIuM2MuMzEuNDcuNTUgMSAuNTUgMS4zOSAwIC4zLS4xLjU3LS4yNS43NWEuNjIuNjIgMCAwIDEtLjUuMjUuNjIuNjIgMCAwIDEtLjUtLjI1QTEuMjEgMS4yMSAwIDAgMSAxMCAxMWMwLS40LjI0LS45Mi41NS0xLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2xvckJhY2tncm91bmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbG9yQmFja2dyb3VuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAxMC42NnYyLjg0QTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNEg5LjQ4bC42Ny42N2MuMS4xLjIuMjIuMjguMzNoNS4wN2MuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEuODRsLTEtMVpNNSAxLjVhLjUuNSAwIDAgMSAxIDB2MS4xN2EyIDIgMCAwIDEgMS4zMi41OWwyLjEyIDIuMTJhMiAyIDAgMCAxIDAgMi44M2wtMi44MyAyLjgzYTIgMiAwIDAgMS0yLjgyIDBMMS42NiA4LjlhMiAyIDAgMCAxIDAtMi44Mkw0LjUgMy4yNkEyIDIgMCAwIDEgNSAyLjg5VjEuNVptMCA0VjQuMTZMMi42NiA2LjVoNi4zMmExIDEgMCAwIDAtLjI1LS40MUw2LjYxIDMuOTZBMSAxIDAgMCAwIDYgMy42OFY1LjVhLjUuNSAwIDAgMS0xIDBabS0yLjkyIDJjMCAuMjYuMS41MS4zLjdsMi4xMSAyLjEzYTEgMSAwIDAgMCAxLjQyIDBMOC43MyA3LjVIMi4wOFptOC4wOC45My4yMi0uMjZhLjUuNSAwIDAgMSAuNzQgMGwuMjIuMjZjLjEyLjE1LjI5LjM4LjQ2LjY0LjMxLjUuNyAxLjIzLjcgMS45MyAwIDEtLjY3IDItMS43NSAyUzkgMTIgOSAxMWMwLS43LjM5LTEuNDQuNy0xLjkzLjE3LS4yNi4zNC0uNDkuNDYtLjY0Wm0uNTkuODhjLS4wNy4wOS0uMTQuMTktLjIuMy0uMzEuNDctLjU1IDEtLjU1IDEuMzkgMCAuMy4xLjU3LjI1Ljc1LjEzLjE3LjMuMjUuNS4yNXMuMzctLjA4LjUtLjI1Yy4xNS0uMTguMjUtLjQ2LjI1LS43NSAwLS40LS4yNC0uOTItLjU1LTEuNGwtLjItLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2xvckJhY2tncm91bmRBY2NlbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbG9yQmFja2dyb3VuZEFjY2VudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMi43NSAxMS40MS4zMy4zM2EzIDMgMCAwIDAgNC4yNCAwbC42OC0uNjhjLjAzIDEuMzQuOTYgMi45NCAyLjc1IDIuOTQgMS44MiAwIDIuNzUtMS42NSAyLjc1LTMgMC0xLjAxLS41My0xLjk2LS44Ni0yLjQ3LS4yLS4zLS4zOC0uNTUtLjUyLS43MlY3LjhsLS4yNC0uMjloLS4wMWExLjUgMS41IDAgMCAwLS44NS0uNDkgMyAzIDAgMCAwLS44LTIuMjdoNS4yOGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY3YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMTFjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMi4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yRmlsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2xvckZpbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIgMTJjMCAxLjM1LjkzIDMgMi43NSAzIDEuNTUgMCAyLjQ2LTEuMiAyLjY5LTIuMzlBMiAyIDAgMCAxIDE4IDE0djJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTJjMC0xLjEuOS0yIDItMmguMzRsMS40NSAxLjQ1YTMgMyAwIDAgMCA0LjI0IDBMMTEuNDggMTJIMTJabTIuMzgtMi44My0uMjIuMjZjLS4xMi4xNS0uMjkuMzgtLjQ2LjY0LS4zMS41LS43IDEuMjMtLjcgMS45MyAwIDEgLjY3IDIgMS43NSAyczEuNzUtMSAxLjc1LTJjMC0uNy0uMzktMS40NC0uNy0xLjkzYTguMTMgOC4xMyAwIDAgMC0uNDYtLjY0bC0uMjEtLjI1LS4wMi0uMDJhLjQ3LjQ3IDAgMCAwLS4zNi0uMTYuNS41IDAgMCAwLS4zNy4xN1ptLjM3IDEuMTQuMi4zYy4zMS40Ny41NSAxIC41NSAxLjM5IDAgLjMtLjEuNTctLjI1Ljc1YS42Mi42MiAwIDAgMS0uNS4yNS42Mi42MiAwIDAgMS0uNS0uMjVBMS4yMSAxLjIxIDAgMCAxIDE0IDEyYzAtLjQuMjQtLjkyLjU1LTEuNGwuMi0uM1pNOC41IDFhLjUuNSAwIDAgMC0uNS41djEuNTZhMiAyIDAgMCAwLS44LjQ5TDMuNjYgNy4wOWEyIDIgMCAwIDAgMCAyLjgybDIuODMgMi44M2EyIDIgMCAwIDAgMi44MyAwbDMuNTQtMy41M2EyIDIgMCAwIDAgMC0yLjgzbC0yLjgzLTIuODNBMiAyIDAgMCAwIDkgM1YxLjVhLjUuNSAwIDAgMC0uNS0uNVpNOCA0LjE3VjUuNWEuNS41IDAgMCAwIDEgMFY0LjA0YTEgMSAwIDAgMSAuMzIuMjJsMi44MyAyLjgzYTEgMSAwIDAgMSAuMjUuNDFINC42NmwzLjI1LTMuMjQuMDktLjA4Wk00LjM3IDkuMjFhMSAxIDAgMCAxLS4zLS43MWg4LjA4bC0zLjU0IDMuNTRhMSAxIDAgMCAxLTEuNDEgMEw0LjM3IDkuMlptMTAtLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgQ29sb3JGaWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2xvckZpbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuMzQgMTJINGEyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0uNTYtMS4zOWMtLjA4LjQtLjIzLjgtLjQ3IDEuMTZBMSAxIDAgMCAxIDE3IDE0djJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAxIDEtMWgxLjM0bC0xLTFabTEwLjA0LTIuODMtLjIyLjI2Yy0uMTIuMTUtLjI5LjM4LS40Ni42NC0uMzEuNS0uNyAxLjIzLS43IDEuOTMgMCAxIC42NyAyIDEuNzUgMnMxLjc1LTEgMS43NS0yYzAtLjctLjM5LTEuNDQtLjctMS45M2E4LjEzIDguMTMgMCAwIDAtLjQ2LS42NGwtLjIxLS4yNS0uMDItLjAyYS40Ny40NyAwIDAgMC0uMzYtLjE2LjUuNSAwIDAgMC0uMzcuMTdabS4zNyAxLjE0LjIuM2MuMzEuNDcuNTUgMSAuNTUgMS4zOSAwIC4zLS4xLjU3LS4yNS43NWEuNjIuNjIgMCAwIDEtLjUuMjUuNjIuNjIgMCAwIDEtLjUtLjI1QTEuMjEgMS4yMSAwIDAgMSAxNCAxMmMwLS40LjI0LS45Mi41NS0xLjRsLjItLjNaTTguNSAxYS41LjUgMCAwIDAtLjUuNXYxLjU2YTIgMiAwIDAgMC0uOC40OUwzLjY2IDcuMDlhMiAyIDAgMCAwIDAgMi44MmwyLjgzIDIuODNhMiAyIDAgMCAwIDIuODMgMGwzLjU0LTMuNTNhMiAyIDAgMCAwIDAtMi44M2wtMi44My0yLjgzQTIgMiAwIDAgMCA5IDNWMS41YS41LjUgMCAwIDAtLjUtLjVaTTggNC4xN1Y1LjVhLjUuNSAwIDAgMCAxIDBWNC4wNGExIDEgMCAwIDEgLjMyLjIybDIuODMgMi44M2ExIDEgMCAwIDEgLjI1LjQxSDQuNjZsMy4yNS0zLjI0LjA5LS4wOFpNNC4zNyA5LjIxYTEgMSAwIDAgMS0uMy0uNzFoOC4wOGwtMy41NCAzLjU0YTEgMSAwIDAgMS0xLjQxIDBMNC4zNyA5LjJabTEwLS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yRmlsbEFjY2VudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sb3JGaWxsQWNjZW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljg0IDEyLjVINGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgxMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uMy0uMDktLjU3LS4yMy0uOGEyLjY3IDIuNjcgMCAwIDEtMi41MiAxLjhjLTEuNiAwLTIuNTEtMS4yNy0yLjctMi41aC0xLjA3bC0uOTUuOTVhMyAzIDAgMCAxLTQuMjQgMGwtLjk1LS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yTGluZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2xvckxpbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuMjQgMi41NGEyLjI2IDIuMjYgMCAwIDAtMy4wNy4xM0w2LjIxIDguNjZsLS4xMS4xMmExLjUgMS41IDAgMCAwLS4yOC41NmwtLjggMy4wOC0uMDEuMDhhLjUuNSAwIDAgMCAuNjIuNTNsMy4wOC0uNzYuMTYtLjA1Yy4yLS4wOC40LS4yLjU1LS4zNWw1Ljk2LTYgLjEyLS4xMmMuNzItLjg1LjcyLTIuMSAwLTIuOTVsLS4xMy0uMTQtLjEzLS4xMlpNNC4xIDEySDRhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0yaC01LjNsLS41Ny41N2EyLjUgMi41IDAgMCAxLS45Mi41OUg5LjJsLS4yMS4wNy0zLjExLjc3QTEuNSAxLjUgMCAwIDEgNCAxMi40di0uMDRsLjA0LS4xNi4wNS0uMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2xvckxpbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbG9yTGluZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC4xIDEySDRhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0yaC01LjNsLS41Ny41N2EyLjUgMi41IDAgMCAxLS41Ny40M0gxNmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAxIDEtMWguMDhBMS40OCAxLjQ4IDAgMCAxIDQgMTIuNHYtLjA0bC4wNC0uMTcuMDUtLjJabTguMDctOS4zOGEyLjI2IDIuMjYgMCAwIDEgMy4wNy0uMTNsLjEzLjEyLjEzLjE0Yy43Mi44NS43MiAyLjEgMCAyLjk1bC0uMTIuMTMtNS45NiA2YTEuNSAxLjUgMCAwIDEtLjU1LjM0bC0uMTYuMDUtMy4wOC43NmEuNS41IDAgMCAxLS42Mi0uNTNsLjAxLS4wOC44LTMuMDdjLjA1LS4yLjE1LS40LjI4LS41N2wuMS0uMTEgNS45Ny02Wm0yLjUuN2ExLjI2IDEuMjYgMCAwIDAtMS42OS0uMDlsLS4xLjEtNS45NyA2YS41LjUgMCAwIDAtLjEuMTRsLS4wMy4wOC0uNTggMi4yNiAyLjI3LS41NmEuNS41IDAgMCAwIC4xMi0uMDRsLjA1LS4wMy4wNy0uMDYgNS45Ni02Yy41LS40OS41LTEuMyAwLTEuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbG9yTGluZUFjY2VudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sb3JMaW5lQWNjZW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjEgMTNhMS41IDEuNSAwIDAgMCAxLjc3Ljk1bDMuMS0uNzYuMjItLjA3aC4wMmwuMjYtLjEySDE2YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtMmExIDEgMCAwIDEgMS0xaC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbHVtbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi41IDE3YS41LjUgMCAwIDAgMC0xSDE2YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaC41YS41LjUgMCAwIDAgMC0xSDE2YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmguNVpNNyA1YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjVaTTQgMTdhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJoLS41YS41LjUgMCAwIDAgMCAxSDRhMSAxIDAgMCAxIDEgMXYxMC4xYTEgMSAwIDAgMS0xIC45aC0uNWEuNS41IDAgMSAwIDAgMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2x1bW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgMTdhLjUuNSAwIDAgMCAwLTFIMTZhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoLjVhLjUuNSAwIDAgMCAwLTFIMTZhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaC41Wk03IDVjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNVptNSAxMFY1YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xWm0tOCAyYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yaC0uNWEuNS41IDAgMCAwIDAgMUg0YTEgMSAwIDAgMSAxIDF2MTAuMWExIDEgMCAwIDEtMSAuOWgtLjVhLjUuNSAwIDEgMCAwIDFINFpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbHVtbkFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2My43NUg1Ljc1YTEuNzUgMS43NSAwIDEgMCAwIDMuNUg3VjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRabTEzLTJhMiAyIDAgMCAwLTIgMnYxMWMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJoLTFaTTguOTcgNi45N2MuMy0uMy43Ny0uMyAxLjA2IDBsMiAyYy4zLjMuMy43NyAwIDEuMDZsLTIgMmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bC43Mi0uNzJINS41YS43NS43NSAwIDAgMSAwLTEuNWg0LjE5bC0uNzItLjcyYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2x1bW5BcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2x1bW5BcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDNoMWExIDEgMCAwIDEgMSAxdjRoMVY0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0ydi00SDZ2NGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFabTExLTFhMiAyIDAgMCAwLTIgMnYxMWMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJoLTFabTEgMWExIDEgMCAwIDEgMSAxdjExYTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMVpNOS4xNSA3LjE1Yy4yLS4yLjUtLjIuNyAwbDIgMmMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxMC4yOSAxMEg1LjVhLjUuNSAwIDAgMSAwLTFoNC44TDkuMTQgNy44NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2x1bW5Eb3VibGVDb21wYXJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbHVtbkRvdWJsZUNvbXBhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAzSDNhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJabTEgNEgydi0uOTZoNlY3Wm05LTRoLTRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJabTEgMTBoLTZ2LTNoNnYzWlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uRG91YmxlQ29tcGFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uRG91YmxlQ29tcGFyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAzSDNhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJaTTMgNGg0YTEgMSAwIDAgMSAxIDF2MUgyVjVhMSAxIDAgMCAxIDEtMVptNCAxMkgzYTEgMSAwIDAgMS0xLTFWN2g2djhhMSAxIDAgMCAxLTEgMVpNMTcgM2gtNGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMlptLTQgMWg0YTEgMSAwIDAgMSAxIDF2NWgtNlY1YTEgMSAwIDAgMSAxLTFabTQgMTJoLTRhMSAxIDAgMCAxLTEtMXYtMmg2djJhMSAxIDAgMCAxLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbHVtbkVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDMuNWMwLS4yOC4yMi0uNS41LS41SDRhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0uNWEuNS41IDAgMCAxIDAtMUg0YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xaC0uNWEuNS41IDAgMCAxLS41LS41Wk05IDNhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaC4yMmwuMjEtLjg0YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDlMMTMgMTEuOTRWNWEyIDIgMCAwIDAtMi0ySDlabTYgMnY0Ljk0bC0xIDFWNWMwLTEuMS45LTIgMi0yaC41YS41LjUgMCAwIDEgMCAxSDE2YTEgMSAwIDAgMC0xIDFabS00LjAyIDEwLjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAzLjVjMC0uMjguMjItLjUuNS0uNUg0YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtLjVhLjUuNSAwIDAgMSAwLTFINGExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMWgtLjVhLjUuNSAwIDAgMS0uNS0uNVpNOSA0YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWguNDdsLS4wNC4xNi0uMjEuODRIOWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2Ni45NGwtMSAxVjVhMSAxIDAgMCAwLTEtMUg5Wm02IDF2NC45NGwtMSAxVjVjMC0xLjEuOS0yIDItMmguNWEuNS41IDAgMCAxIDAgMUgxNmExIDEgMCAwIDAtMSAxWm0tNC4wMiAxMC4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbHVtblNpbmdsZUNvbXBhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uU2luZ2xlQ29tcGFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlpNNSA2aDEwdjFINVY2Wm0wIDVoMTB2M0g1di0zWlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uU2luZ2xlQ29tcGFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uU2luZ2xlQ29tcGFyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTItMWExIDEgMCAwIDAtMSAxdjJoMTBWNGExIDEgMCAwIDAtMS0xSDZabS0xIDhoMTBWN0g1djRabTAgM3YyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0ySDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb2x1bW5UcmlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uVHJpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgMTdhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIM1ptNiAwYTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDlabTYgMGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbHVtblRyaXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uVHJpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDE3YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDNabS0xLTJhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXYxMFptNyAyYTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDlabS0xLTJhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYxMFptNyAyYTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xWm0tMS0yYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMWgtMWExIDEgMCAwIDAtMSAxdjEwWlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uVHJpcGxlRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb2x1bW5UcmlwbGVFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEgMTVjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDNhMiAyIDAgMCAwLTIgMnYxMFptNiAwYzAgMS4xLjkgMiAyIDJoLjIybC4yMS0uODRhMy4yIDMuMiAwIDAgMSAuODQtMS40OUwxMiAxMi45NFY1YTIgMiAwIDAgMC0yLTJIOWEyIDIgMCAwIDAtMiAydjEwWm0xMS01Ljg3YTIuODcgMi44NyAwIDAgMC0yLjkuNzFsLTIuMSAyLjFWNWMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY0LjEzWm0tNy4wMiA2LjI1IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ29sdW1uVHJpcGxlRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29sdW1uVHJpcGxlRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMSAxNWMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJIM2EyIDIgMCAwIDAtMiAydjEwWm0yIDFhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFIM1ptNC0xYzAgMS4xLjkgMiAyIDJoLjIybC4yMS0uODQuMDQtLjE2SDlhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjguOTRsMS0xVjVhMiAyIDAgMCAwLTItMkg5YTIgMiAwIDAgMC0yIDJ2MTBabTExLTUuODdWNWEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2Ni45NGwxLTFWNWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXY0Yy4zNC0uMDEuNjguMDMgMSAuMTNabS03LjAyIDYuMjUgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21tYUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tYUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41IDcuNWEzLjUgMy41IDAgMSAwLTEuODggMy4xYy0uMjMuODctLjU2IDEuNi0uOTUgMi4xOC0uOCAxLjE2LTEuODMgMS43Mi0yLjkyIDEuNzJhLjc1Ljc1IDAgMCAwIDAgMS41YzEuNjcgMCAzLjE0LS44OCA0LjE2LTIuMzggMS0xLjQ5IDEuNTktMy41OCAxLjU5LTYuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21tYVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjUgNy41YTMuNSAzLjUgMCAxIDAtMS4yOCAyLjcgNy43OCA3Ljc4IDAgMCAxLTEuMjQgMi44OUE0LjI2IDQuMjYgMCAwIDEgNy41IDE1YS41LjUgMCAwIDAgMCAxYzEuNyAwIDMuMjItLjg0IDQuMy0yLjMyIDEuMDctMS40OCAxLjctMy42IDEuNy02LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgQ29tbWVudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM2gxMC44QzE2Ljg0IDMgMTggNC4xNSAxOCA1LjU3djYuN2EyLjU4IDIuNTggMCAwIDEtMi42IDIuNTdoLTQuNTlMNi44IDE3LjhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNDggMTMuODRoNC45MmMuOSAwIDEuNi0uNzEgMS42LTEuNTZWNS41N0MxNyA0LjcgMTYuMyA0IDE1LjQgNEg0LjZDMy43IDQgMyA0LjcxIDMgNS41N3Y2LjdjMCAuODYuNyAxLjU3IDEuNiAxLjU3aDEuNlYxN2w0LjI4LTMuMTZaTTYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM2gxMC44QzE2Ljg0IDMgMTggNC4xNSAxOCA1LjU3djYuN2EyLjU4IDIuNTggMCAwIDEtMi42IDIuNTdoLTQuNTlMNi44IDE3LjhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptLS41IDcuNWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2Mi41NGEyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDVhNS41IDUuNSAwIDAgMCA0LjkgOFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50QWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNWgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNVYzLjVabTIgOC43OFYxMC40Yy4zNi0uMTguNy0uNCAxLS42NnYyLjU0YTIuNTggMi41OCAwIDAgMS0yLjYgMi41NmgtNC41OUw2LjggMTcuOGExIDEgMCAwIDEtMS40LS4yLjk4Ljk4IDAgMCAxLS4yLS41OXYtMi4xN2gtLjZBMi41OCAyLjU4IDAgMCAxIDIgMTIuMjhWNS41N0EyLjU4IDIuNTggMCAwIDEgNC42IDNoNWMtLjE2LjMyLS4zLjY1LS40IDFINC42QzMuNyA0IDMgNC43MSAzIDUuNTd2Ni43YzAgLjg2LjcgMS41NyAxLjYgMS41N2gxLjZWMTdsNC4yOC0zLjE2aDQuOTJjLjkgMCAxLjYtLjcxIDEuNi0xLjU2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRBcnJvd0xlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudEFycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFpNMTAuNSA2YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMMTUuMjkgNkgxMC41Wm0zIDdjMS43NSAwIDMuMzMtLjY5IDQuNS0xLjgxdjEuMDlhMi41OCAyLjU4IDAgMCAxLTIuNiAyLjU2aC00LjU5TDYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM2gzLjQyYTYuNSA2LjUgMCAwIDAgNS40OCAxMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50QXJyb3dMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50QXJyb3dMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFpNMTAuNSA2YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMMTUuMjkgNkgxMC41Wm02LjUgNi4yOHYtLjNjLjM2LS4yMy43LS41IDEtLjc5djEuMDlhMi41OCAyLjU4IDAgMCAxLTIuNiAyLjU2aC00LjU5TDYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM2gzLjQyYy0uMi4zMi0uMzguNjUtLjUyIDFINC42QzMuNyA0IDMgNC43MSAzIDUuNTd2Ni43YzAgLjg2LjcgMS41NyAxLjYgMS41N2gxLjZWMTdsNC4yOC0zLjE2aDQuOTJjLjkgMCAxLjYtLjcxIDEuNi0xLjU2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRBcnJvd1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgNmgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2Mi41NGEyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDVhNS41IDUuNSAwIDAgMCA0LjkgOFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50QXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudEFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgNmgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpNMTcgMTIuMjhWMTAuNGMuMzYtLjE4LjctLjQgMS0uNjZ2Mi41NGEyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDVjLS4xNi4zMi0uMy42NS0uNCAxSDQuNkMzLjcgNCAzIDQuNzEgMyA1LjU3djYuN2MwIC44Ni43IDEuNTcgMS42IDEuNTdoMS42VjE3bDQuMjgtMy4xNmg0LjkyYy45IDAgMS42LS43MSAxLjYtMS41NlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50Q2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEwxMy41IDYuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2Mi41NGEyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDVhNS41IDUuNSAwIDAgMCA0LjkgOFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50Q2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50Q2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjg1LTEuODVMMTMuNSA2LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43Wm0uODUgOC42M1YxMC40Yy4zNi0uMTguNy0uNCAxLS42NnYyLjU0YTIuNTggMi41OCAwIDAgMS0yLjYgMi41NmgtNC41OUw2LjggMTcuOGExIDEgMCAwIDEtMS40LS4yLjk4Ljk4IDAgMCAxLS4yLS41OXYtMi4xN2gtLjZBMi41OCAyLjU4IDAgMCAxIDIgMTIuMjhWNS41N0EyLjU4IDIuNTggMCAwIDEgNC42IDNoNWMtLjE2LjMyLS4zLjY1LS40IDFINC42QzMuNyA0IDMgNC43MSAzIDUuNTd2Ni43YzAgLjg2LjcgMS41NyAxLjYgMS41N2gxLjZWMTdsNC4yOC0zLjE2aDQuOTJjLjkgMCAxLjYtLjcxIDEuNi0xLjU2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnREaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnREaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDE0LjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTUuMjEgNS41bDEuMTQtMS4xNVpNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2Mi41NGEyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDVhNS41IDUuNSAwIDAgMCA0LjkgOFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50RGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudERpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTMuOCAwIDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43TDE0LjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTUuMjEgNS41Wm0xLjggNi43OFYxMC40Yy4zNi0uMTguNy0uNCAxLS42NnYyLjU0YTIuNTggMi41OCAwIDAgMS0yLjYgMi41NmgtNC41OUw2LjggMTcuOGExIDEgMCAwIDEtMS40LS4yLjk4Ljk4IDAgMCAxLS4yLS41OXYtMi4xN2gtLjZBMi41OCAyLjU4IDAgMCAxIDIgMTIuMjhWNS41N0EyLjU4IDIuNTggMCAwIDEgNC42IDNoNWMtLjE2LjMyLS4zLjY1LS40IDFINC42QzMuNyA0IDMgNC43MSAzIDUuNTd2Ni43YzAgLjg2LjcgMS41NyAxLjYgMS41N2gxLjZWMTdsNC4yOC0zLjE2aDQuOTJjLjkgMCAxLjYtLjcxIDEuNi0xLjU2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNCAxNy42YTEgMSAwIDAgMCAxLjQuMkw4IDE2LjlsLjA1LS4yNS4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OGw0LjgzLTQuODNBMi44NyAyLjg3IDAgMCAxIDE4IDguN1Y1LjU3QTIuNTggMi41OCAwIDAgMCAxNS40IDNINC42QTIuNTggMi41OCAwIDAgMCAyIDUuNTd2Ni43YTIuNTggMi41OCAwIDAgMCAyLjYgMi41N2guNnYyLjE3YzAgLjIyLjA3LjQyLjIuNlptOS40LTguMDUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDcgMS4wN2wxLjUtLjM3Yy4zOS0uMS43NC0uMyAxLjAyLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAwLTIuNjQtMi42NFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50RWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudEVkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDguMTNWNS41N0MxNyA0LjcgMTYuMyA0IDE1LjQgNEg0LjZDMy43IDQgMyA0LjcxIDMgNS41N3Y2LjdjMCAuODYuNyAxLjU3IDEuNiAxLjU3aDEuNlYxN2wyLjE3LTEuNi0uMzEgMS4yNS0uMDUuMjYtMS4yMS45YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjZ2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDEwLjhDMTYuODQgMyAxOCA0LjE1IDE4IDUuNTd2My4xMmMtLjMtLjI2LS42NC0uNDQtMS0uNTZabS0yLjIgMS40Mi00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wNyAxLjA3bDEuNS0uMzdjLjM5LS4xLjc0LS4zIDEuMDItLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDAtMi42NC0yLjY0WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRFcnJvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50RXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDNhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1Wk0xOCA5LjczQTUuNSA1LjUgMCAwIDEgOS42IDNoLTVBMi41OCAyLjU4IDAgMCAwIDIgNS41N3Y2LjdhMi41OCAyLjU4IDAgMCAwIDIuNiAyLjU3aC42djIuMTdjMCAuMjIuMDcuNDIuMi42YTEgMSAwIDAgMCAxLjQuMmw0LjAxLTIuOTdoNC41OWMxLjQ0IDAgMi42LTEuMTUgMi42LTIuNTZWOS43NFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50RXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRFcnJvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDNhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1Wk0xNyAxMC40djEuODhjMCAuODUtLjcgMS41Ni0xLjYgMS41NmgtNC45Mkw2LjIxIDE3SDYuMnYtMy4xNkg0LjZjLS45IDAtMS42LS43MS0xLjYtMS41NlY1LjU3QzMgNC43IDMuNyA0IDQuNiA0aDQuNmMuMS0uMzUuMjQtLjY4LjQtMWgtNUEyLjU4IDIuNTggMCAwIDAgMiA1LjU3djYuN2EyLjU4IDIuNTggMCAwIDAgMi42IDIuNTdoLjZ2Mi4xN2MwIC4yMi4wNy40Mi4yLjZhMSAxIDAgMCAwIDEuNC4ybDQuMDEtMi45N2g0LjU5YzEuNDQgMCAyLjYtMS4xNSAyLjYtMi41NlY5Ljc0Yy0uMy4yNi0uNjQuNDgtMSAuNjZaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudExpZ2h0bmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50TGlnaHRuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjYxIDdjLjMzIDAgLjU2LjMuNDkuNjJsLS40NCAxLjc0Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0uNGEuNS41IDAgMCAxLS40OC0uNjZsLjU2LTEuNjhhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ4YS41LjUgMCAwIDAtLjQ2LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43aDEuMTFabS0uNjQgMWgtLjQ3YTEuNSAxLjUgMCAwIDEtMS4zOC0yLjA4TDExLjMzIDNINC42QTIuNTggMi41OCAwIDAgMCAyIDUuNTd2Ni43YTIuNTggMi41OCAwIDAgMCAyLjYgMi41N2guNnYyLjE3YzAgLjIyLjA3LjQyLjIuNmExIDEgMCAwIDAgMS40LjJsNC4wMS0yLjk3aDQuNTljMS40NCAwIDIuNi0xLjE1IDIuNi0yLjU2VjdsLTMuODMgMy41OGMtMS4xIDEuMDItMi44NC0uMDEtMi40OC0xLjQ2TDExLjk3IDhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudExpZ2h0bmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudExpZ2h0bmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuNjEgN2MuMzMgMCAuNTYuMy40OS42MmwtLjQ0IDEuNzRjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLS40YS41LjUgMCAwIDEtLjQ4LS42NmwuNTYtMS42OGEuNS41IDAgMCAwLS40Ny0uNjZoLTMuNDhhLjUuNSAwIDAgMC0uNDYuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdoMS4xMVptLTEuMjgtNC0uNDEgMUg0LjZDMy43IDQgMyA0LjcxIDMgNS41N3Y2LjdjMCAuODYuNyAxLjU3IDEuNiAxLjU3aDEuNlYxN2w0LjI4LTMuMTZoNC45MmMuOSAwIDEuNi0uNzEgMS42LTEuNTZWNy45NEwxOCA3djUuMjhhMi41OCAyLjU4IDAgMCAxLTIuNiAyLjU2aC00LjU5TDYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM2g2LjczWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjUgMmEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wk0xNiAyYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS0zIDBjMC0uNTQuMTItMS4wNS4zNC0xLjVINC42QTIuNTggMi41OCAwIDAgMCAyIDUuNTd2Ni43YTIuNTggMi41OCAwIDAgMCAyLjYgMi41N2guNnYyLjE3YzAgLjIyLjA3LjQyLjIuNmExIDEgMCAwIDAgMS40LjJsNC4wMS0yLjk3aDQuNTljMS40NCAwIDIuNi0xLjE1IDIuNi0yLjU2VjcuNjZjLS40NS4yMi0uOTYuMzQtMS41LjM0aC00QTMuNSAzLjUgMCAwIDEgOSA0LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudExpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRMaW5rUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi41IDJhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVpNMTYgMmEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm01IDcuNzhWNy45NmMuMzUtLjA1LjY5LS4xNSAxLS4zdjQuNjJhMi41OCAyLjU4IDAgMCAxLTIuNiAyLjU2aC00LjU5TDYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM2g0Ljc0Yy0uMTUuMzEtLjI1LjY1LS4zIDFINC42QzMuNyA0IDMgNC43MSAzIDUuNTd2Ni43YzAgLjg2LjcgMS41NyAxLjYgMS41N2gxLjZWMTdsNC4yOC0zLjE2aDQuOTJjLjkgMCAxLjYtLjcxIDEuNi0xLjU2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRNZW50aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRNZW50aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1IDJhMyAzIDAgMSAwIDEuMjggNS43MS41LjUgMCAwIDEgLjQ0LjlBNCA0IDAgMSAxIDE5IDV2LjUxYTEuNSAxLjUgMCAwIDEtMi42NS45N0EyIDIgMCAwIDEgMTMgNWEyIDIgMCAwIDEgMy4wNC0xLjcuNS41IDAgMCAxIC45Ni4ydjJhLjUuNSAwIDEgMCAxIDBWNWEzIDMgMCAwIDAtMy0zWm0tMSAzYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptMSA1YzEuMTMgMCAyLjE2LS4zNyAzLTF2My4yOGEyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzaDUuODJBNC45OCA0Ljk4IDAgMCAwIDE1IDEwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRNZW50aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50TWVudGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgMmEzIDMgMCAxIDAgMS4yOCA1LjcxLjUuNSAwIDAgMSAuNDQuOUE0IDQgMCAxIDEgMTkgNXYuNTFhMS41IDEuNSAwIDAgMS0yLjY1Ljk3QTIgMiAwIDAgMSAxMyA1YTIgMiAwIDAgMSAzLjA0LTEuNy41LjUgMCAwIDEgLjk2LjJ2MmEuNS41IDAgMSAwIDEgMFY1YTMgMyAwIDAgMC0zLTNabS0xIDNhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm00IDcuMjhWOWE1IDUgMCAwIDEtMSAuNTh2Mi43YzAgLjg1LS43IDEuNTYtMS42IDEuNTZoLTQuOTJMNi4yMSAxN0g2LjJ2LTMuMTZINC42Yy0uOSAwLTEuNi0uNzEtMS42LTEuNTZWNS41N0MzIDQuNyAzLjcgNCA0LjYgNGg1LjVjLjA3LS4zNS4xOC0uNjguMzItMUg0LjZBMi41OCAyLjU4IDAgMCAwIDIgNS41N3Y2LjdhMi41OCAyLjU4IDAgMCAwIDIuNiAyLjU3aC42djIuMTdjMCAuMjIuMDcuNDIuMi42YTEgMSAwIDAgMCAxLjQuMmw0LjAxLTIuOTdoNC41OWMxLjQ0IDAgMi42LTEuMTUgMi42LTIuNTZaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudE11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3LjVBMy41IDMuNSAwIDAgMCAxMy41IDRoLTljLjQ2LS42IDEuMTgtMSAyLTFoN0E0LjUgNC41IDAgMCAxIDE4IDcuNXY0YzAgLjgyLS40IDEuNTQtMSAydi02Wm0tMTUgMEEyLjUgMi41IDAgMCAxIDQuNSA1aDlBMi41IDIuNSAwIDAgMSAxNiA3LjV2NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVIOS4wNmwtMi40NyAxLjhBMSAxIDAgMCAxIDUgMTd2LTFoLS41QTIuNSAyLjUgMCAwIDEgMiAxMy41di02WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnRNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudE11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC4zOSA0LjExQTMuNSAzLjUgMCAwIDEgMTcgNy41djZjLjYtLjQ2IDEtMS4xOCAxLTJ2LTRBNC41IDQuNSAwIDAgMCAxMy41IDNoLTdjLS44MiAwLTEuNTQuNC0yIDFoOWEzLjU0IDMuNTQgMCAwIDEgLjg5LjExWk00LjUgNUEyLjUgMi41IDAgMCAwIDIgNy41djZBMi41IDIuNSAwIDAgMCA0LjUgMTZINXYxYTEgMSAwIDAgMCAxLjU5LjhMOS4wNiAxNmg0LjQ0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNkEyLjUgMi41IDAgMCAwIDEzLjUgNWgtOVpNMyA3LjVDMyA2LjY3IDMuNjcgNiA0LjUgNmg5Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguNzNMNiAxN3YtMkg0LjVBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTZaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudE11bHRpcGxlQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRNdWx0aXBsZUNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3LjVBMy41IDMuNSAwIDAgMCAxMy41IDRoLTljLjQ2LS42IDEuMTgtMSAyLTFoN0E0LjUgNC41IDAgMCAxIDE4IDcuNXYyLjc2Yy0uMy0uMjYtLjY0LS40OC0xLS42NlY3LjVaTTkuMDYgMTZoLjE1QTUuNSA1LjUgMCAwIDEgMTYgOS4yVjcuNUEyLjUgMi41IDAgMCAwIDEzLjUgNWgtOUEyLjUgMi41IDAgMCAwIDIgNy41djZBMi41IDIuNSAwIDAgMCA0LjUgMTZINXYxYTEgMSAwIDAgMCAxLjU5LjhMOS4wNiAxNlpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudE11bHRpcGxlQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50TXVsdGlwbGVDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjM5IDQuMTFBMy41IDMuNSAwIDAgMSAxNyA3LjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTQuNSA0LjUgMCAwIDAgMTMuNSAzaC03Yy0uODIgMC0xLjU0LjQtMiAxaDlhMy41NCAzLjU0IDAgMCAxIC44OS4xMVpNMTYgNy41djEuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjcuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDMy42NyA2IDMgNi42NyAzIDcuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41SDZ2MmwyLjczLTJoLjNjLjAyLjM0LjA5LjY4LjE4IDFoLS4xNWwtMi40NyAxLjhBMSAxIDAgMCAxIDUgMTd2LTFoLS41QTIuNSAyLjUgMCAwIDEgMiAxMy41di02QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNVptMyA3YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50TXVsdGlwbGVMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRNdWx0aXBsZUxpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNy41QTMuNSAzLjUgMCAwIDAgMTMuNSA0aC05Yy40Ni0uNiAxLjE4LTEgMi0xaDdBNC41IDQuNSAwIDAgMSAxOCA3LjV2My44NGEzLjQ3IDMuNDcgMCAwIDAtMS0uM1Y3LjVaTTkuMDYgMTZoLjI4YTMuNSAzLjUgMCAwIDEgMy4xNi01SDE2VjcuNUEyLjUgMi41IDAgMCAwIDEzLjUgNWgtOUEyLjUgMi41IDAgMCAwIDIgNy41djZBMi41IDIuNSAwIDAgMCA0LjUgMTZINXYxYTEgMSAwIDAgMCAxLjU5LjhMOS4wNiAxNlptMy40NC00YTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudE11bHRpcGxlTGlua1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudE11bHRpcGxlTGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuMzkgNC4xMUEzLjUgMy41IDAgMCAxIDE3IDcuNXYzLjU0Yy4zNS4wNS42OS4xNSAxIC4zVjcuNUE0LjUgNC41IDAgMCAwIDEzLjUgM2gtN2MtLjgyIDAtMS41NC40LTIgMWg5YTMuNTQgMy41NCAwIDAgMSAuODkuMTFaTTE2IDcuNVYxMWgtMVY3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzMuNjcgNiAzIDYuNjcgMyA3LjV2NmMwIC44My42NyAxLjUgMS41IDEuNUg2djJsMi43My0yaC4zYy4wNi4zNS4xNi42OS4zIDFoLS4yN2wtMi40NyAxLjhBMSAxIDAgMCAxIDUgMTd2LTFoLS41QTIuNSAyLjUgMCAwIDEgMiAxMy41di02QTIuNSAyLjUgMCAwIDEgNC41IDVoOUEyLjUgMi41IDAgMCAxIDE2IDcuNVpNMTIuNSAxMmEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnROb3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnROb3RlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTZabTEgNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xWk0xMiAzLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaTTQuNiAzSDl2NC41YTIuNSAyLjUgMCAwIDAgMi41IDIuNWg2Yy4xNyAwIC4zNC0uMDIuNS0uMDV2Mi4zM2EyLjU4IDIuNTggMCAwIDEtMi42IDIuNTZoLTQuNTlMNi44IDE3LjhhMSAxIDAgMCAxLTEuNC0uMi45OC45OCAwIDAgMS0uMi0uNTl2LTIuMTdoLS42QTIuNTggMi41OCAwIDAgMSAyIDEyLjI4VjUuNTdBMi41OCAyLjU4IDAgMCAxIDQuNiAzWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW1lbnROb3RlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tZW50Tm90ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSAxYy0uODMgMC0xLjUuNjctMS41IDEuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNlptMSA1aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFaTTEyIDMuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpNNC42IDNIOXYxSDQuNkMzLjcgNCAzIDQuNzEgMyA1LjU3djYuN2MwIC44Ni43IDEuNTcgMS42IDEuNTdoMS42VjE3bDQuMjgtMy4xNmg0LjkyYy45IDAgMS42LS43MSAxLjYtMS41NlYxMGguNWMuMTcgMCAuMzQtLjAyLjUtLjA1djIuMzNhMi41OCAyLjU4IDAgMCAxLTIuNiAyLjU2aC00LjU5TDYuOCAxNy44YTEgMSAwIDAgMS0xLjQtLjIuOTguOTggMCAwIDEtLjItLjU5di0yLjE3aC0uNkEyLjU4IDIuNTggMCAwIDEgMiAxMi4yOFY1LjU3QTIuNTggMi41OCAwIDAgMSA0LjYgM1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDb21tZW50T2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW1lbnRPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wuNzYuNzdDMi4zNSA0LjA5IDIgNC43OSAyIDUuNTd2Ni43YTIuNTggMi41OCAwIDAgMCAyLjYgMi41N2guNnYyLjE3YzAgLjIyLjA3LjQyLjIuNmExIDEgMCAwIDAgMS40LjJsNC4wMS0yLjk3aDMuMzNsMyAzLjAxYS41LjUgMCAwIDAgLjcxLS43bC0yLjMtMi4zMUwzLjgyIDMuMTJsLS45Ny0uOTdaTTE4IDEyLjI4YzAgLjk3LS41NSAxLjgxLTEuMzUgMi4yNUw1LjEyIDNIMTUuNEMxNi44NCAzIDE4IDQuMTUgMTggNS41N3Y2LjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ29tbWVudE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbWVudE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wuNzYuNzdDMi4zNSA0LjA5IDIgNC43OSAyIDUuNTd2Ni43YTIuNTggMi41OCAwIDAgMCAyLjYgMi41N2guNnYyLjE3YzAgLjIyLjA3LjQyLjIuNmExIDEgMCAwIDAgMS40LjJsNC4wMS0yLjk3aDMuMzNsMyAzLjAxYS41LjUgMCAwIDAgLjcxLS43bC0yLjMtMi4zMUwzLjgyIDMuMTJsLS45Ny0uOTdabTEwLjI5IDExLjdoLTIuNjZMNi4yMSAxN0g2LjJ2LTMuMTZINC42Yy0uOSAwLTEuNi0uNzEtMS42LTEuNTZWNS41N2MwLS41LjI0LS45NS42Mi0xLjI0bDkuNTIgOS41MVpNMTcgMTIuMjdjMCAuNjktLjQ2IDEuMjgtMS4xMSAxLjQ5bC43Ni43NkEyLjU2IDIuNTYgMCAwIDAgMTggMTIuMjhWNS41N0EyLjU4IDIuNTggMCAwIDAgMTUuNCAzSDUuMTJsMSAxaDkuMjhjLjkgMCAxLjYuNzEgMS42IDEuNTd2Ni43WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENvbW11bmljYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbXVuaWNhdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMTFhNi41IDYuNSAwIDEgMSAxMS4xIDQuNi43NS43NSAwIDEgMCAxLjA2IDEuMDUgOCA4IDAgMSAwLTExLjMzIDBBLjc1Ljc1IDAgMCAwIDUuNCAxNS42IDYuNDggNi40OCAwIDAgMSAzLjUgMTFabTMgMGEzLjUgMy41IDAgMSAxIDUuOTggMi40Ny43NS43NSAwIDEgMCAxLjA2IDEuMDZBNC45OSA0Ljk5IDAgMCAwIDEwIDZhNSA1IDAgMCAwLTMuNTQgOC41My43NS43NSAwIDAgMCAxLjA2LTEuMDZBMy40OSAzLjQ5IDAgMCAxIDYuNSAxMVpNMTAgOWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21tdW5pY2F0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21tdW5pY2F0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA0YTcgNyAwIDAgMC00Ljk1IDExLjk1LjUuNSAwIDAgMS0uNy43IDggOCAwIDEgMSAxMS4zMiAwIC41LjUgMCAwIDEtLjcyLS43QTcgNyAwIDAgMCAxMCA0Wm0wIDNhNCA0IDAgMCAwLTIuODMgNi44Mi41LjUgMCAxIDEtLjcxLjcxQTQuOTkgNC45OSAwIDAgMSAxMCA2YTUgNSAwIDAgMSAzLjU0IDguNTMuNS41IDAgMCAxLS43MS0uN0EzLjk5IDMuOTkgMCAwIDAgMTAgN1ptMCAyYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptLTEgMmExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21tdW5pY2F0aW9uUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW11bmljYXRpb25QZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNC41YTYuNSA2LjUgMCAwIDAtNC42IDExLjEuNzUuNzUgMCAxIDEtMS4wNiAxLjA1IDggOCAwIDEgMSAxMy42My02LjM1IDMgMyAwIDAgMC0xLjc2LTEuMjFBNi41IDYuNSAwIDAgMCAxMCA0LjVabTQuNjQgNC42M2E1IDUgMCAxIDAtOC4xOCA1LjQuNzUuNzUgMCAwIDAgMS4wNi0xLjA2IDMuNSAzLjUgMCAxIDEgNS44MS0zLjU0IDMgMyAwIDAgMSAxLjMtLjhaTTggMTFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm05LjUgMWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29tbXVuaWNhdGlvblBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbXVuaWNhdGlvblBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMWE3IDcgMCAwIDEgMTMuNzktMS43Yy40OC4yMi44OC41NyAxLjE4IDFhOCA4IDAgMSAwLTEzLjYzIDYuMzUuNS41IDAgMCAwIC43LS43QTYuOTggNi45OCAwIDAgMSAzIDExWm0xMS42NC0xLjg3YTUgNSAwIDEgMC04LjE4IDUuNC41LjUgMCAwIDAgLjctLjdBMy45OSAzLjk5IDAgMCAxIDEwIDdhNCA0IDAgMCAxIDMuNzQgMi41N2MuMjctLjIuNTctLjM1LjktLjQ0Wk04IDExYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFptMi0xYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptNy41IDJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbW11bmljYXRpb25TaGllbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tbXVuaWNhdGlvblNoaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMTBhNi41IDYuNSAwIDAgMSAxMi43NS0xLjhjLjEzLjA2LjI1LjE2LjM1LjI3LjM0LjM1LjgyLjc3IDEuMzggMS4wM2E4IDggMCAxIDAtMTMuNjQgNi4xNS43NS43NSAwIDAgMCAxLjA2LTEuMDZBNi40OCA2LjQ4IDAgMCAxIDMuNSAxMFpNMTAgNWE1IDUgMCAwIDEgNC42OCAzLjI0Yy0uMS4wNi0uMi4xNC0uMjguMjMtLjI1LjI2LS41OS41Ni0uOTguOGEzLjUgMy41IDAgMSAwLTUuOSAzLjIuNzUuNzUgMCAxIDEtMS4wNiAxLjA2QTQuOTkgNC45OSAwIDAgMSAxMCA1Wm0wIDNhMiAyIDAgMCAxIDEuOTkgMS44Yy0uNTQuMi0uOTkuNzEtLjk5IDEuNHYuNTNBMiAyIDAgMSAxIDEwIDhabTUuODggMS4xNmMuNS41MyAxLjQ4IDEuMzggMi42OCAxLjU1YS41LjUgMCAwIDEgLjQ0LjQ4djIuMzNjMCAzLjEyLTIuNzggNC4yNS0zLjM5IDQuNDZhLjM0LjM0IDAgMCAxLS4yMiAwYy0uNi0uMi0zLjM5LTEuMzQtMy4zOS00LjQ2di0yLjMzYzAtLjI0LjItLjQ0LjQ0LS40OGE0Ljk1IDQuOTUgMCAwIDAgMi42OC0xLjU1Yy4yLS4yMS41Ni0uMjEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbW11bmljYXRpb25TaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbW11bmljYXRpb25TaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMCAwLTQuOTUgMTEuOTUuNS41IDAgMCAxLS43LjdBOCA4IDAgMSAxIDE3Ljk4IDkuNWMtLjQyLS4xOC0uOC0uNDctMS4xLS43NEE3IDcgMCAwIDAgMTAgM1ptMSA4LjJjMC0uNjkuNDUtMS4yLjk5LTEuNGEyIDIgMCAxIDAtLjk5IDEuOTN2LS41NFptMy40LTIuNzNjLjA4LS4xLjE4LS4xNy4yOC0uMjNhNSA1IDAgMSAwLTguMjIgNS4zLjUuNSAwIDAgMCAuNy0uNzFBMy45OSAzLjk5IDAgMCAxIDEwIDZhNCA0IDAgMCAxIDMuODYgMi45NmMuMi0uMTYuMzktLjMzLjU0LS41Wk05IDEwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptNi44OC0uODRjLjUuNTMgMS40OCAxLjM4IDIuNjggMS41NWEuNS41IDAgMCAxIC40NC40OHYyLjMzYzAgMy4xMi0yLjc4IDQuMjUtMy4zOSA0LjQ2YS4zNC4zNCAwIDAgMS0uMjIgMGMtLjYtLjItMy4zOS0xLjM0LTMuMzktNC40NnYtMi4zM2MwLS4yNC4yLS40NC40NC0uNDhhNC45NSA0Ljk1IDAgMCAwIDIuNjgtMS41NWMuMi0uMjEuNTYtLjIxLjc2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21wYXNzTm9ydGh3ZXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbXBhc3NOb3J0aHdlc3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZabS41MS0xMC4xM2EzIDMgMCAwIDEgMS42NSAxLjZsMS42IDMuNzRjLjE0LjM1LS4yLjctLjU1LjU1bC0zLjczLTEuNmEzIDMgMCAwIDEtMS42LTEuNjVsLTEuNC0zLjQ4YS40Mi40MiAwIDAgMSAuNTQtLjU1bDMuNDkgMS40WlwiXSk7XG5leHBvcnQgY29uc3QgQ29tcGFzc05vcnRod2VzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29tcGFzc05vcnRod2VzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFptNy04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk02LjEgNy40MkExIDEgMCAwIDEgNy40MiA2LjFsMy4yNiAxLjQ4YTMuNSAzLjUgMCAwIDEgMS43NCAxLjc0bDEuNDggMy4yNmExIDEgMCAwIDEtMS4zMiAxLjMybC0zLjI2LTEuNDhhMy41IDMuNSAwIDAgMS0xLjc0LTEuNzRMNi4xIDcuNDJabTQuMTcgMS4wN0w3IDcuMDFsMS40OCAzLjI2Yy4yNS41NS43Ljk5IDEuMjQgMS4yNEwxMyAxMi45OWwtMS40OC0zLjI2Yy0uMjUtLjU1LS43LS45OS0xLjI0LTEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21wb3NlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbXBvc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNzggMy4yOGEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC03LjUgNy41TDkgMTFsMS4yOC0uMjIgNy41LTcuNVpNNS43NSAzQTIuNzUgMi43NSAwIDAgMCAzIDUuNzV2OC41QTIuNzUgMi43NSAwIDAgMCA1Ljc1IDE3aDguNUEyLjc1IDIuNzUgMCAwIDAgMTcgMTQuMjV2LTUuNWEuNzUuNzUgMCAwIDAtMS41IDB2NS41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtOC41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTguNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb21wb3NlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb21wb3NlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy44NSAyLjg1YS41LjUgMCAwIDAtLjctLjdsLTggOEw5IDExbC44NS0uMTUgOC04Wk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTZhLjUuNSAwIDAgMC0xIDB2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTlDNCA0LjY3IDQuNjcgNCA1LjUgNGg2YS41LjUgMCAwIDAgMC0xaC02WlwiXSk7XG5leHBvcnQgY29uc3QgQ29uZmVyZW5jZVJvb21GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29uZmVyZW5jZVJvb21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4xOSAyLjExYS41LjUgMCAwIDEgLjQxLS4xbDcgMS41Yy4yMy4wNS40LjI1LjQuNXYxMmEuNS41IDAgMCAxLS40LjQ4bC03IDEuNWEuNS41IDAgMCAxLS42LS40OXYtMTVjMC0uMTUuMDctLjMuMTktLjM5Wm0zLjMxIDcuOWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk04IDNIMy41YS41LjUgMCAwIDAtLjUuNVYxNi41YzAgLjI3LjIyLjUuNS41SDhWM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENvbmZlcmVuY2VSb29tUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb25mZXJlbmNlUm9vbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuNDkgMTBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNOS42IDIuMDFhLjUuNSAwIDAgMC0uNi41VjE3LjVhLjUuNSAwIDAgMCAuNi41bDctMS41MUEuNS41IDAgMCAwIDE3IDE2VjRhLjUuNSAwIDAgMC0uNC0uNDlsLTctMS41Wm0uNCAxNC44N1YzLjEybDYgMS4yOVYxNS42bC02IDEuMjhaTTggMTd2LTFINFY0aDRWM0gzLjVhLjUuNSAwIDAgMC0uNS41djEzYzAgLjI3LjIyLjUuNS41SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBDb25uZWN0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29ubmVjdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgNC41YzAgLjUxLS4xNS45OC0uNDEgMS4zOEw4LjYyIDcuOWEyLjQ5IDIuNDkgMCAwIDEgMi43NiAwbDIuMDMtMi4wM2EyLjUgMi41IDAgMSAxIC43LjdMMTIuMSA4LjYzYTIuNDkgMi40OSAwIDAgMSAwIDIuNzZsMi4wMyAyLjAzYTIuNSAyLjUgMCAxIDEtLjcuN2wtMi4wNC0yLjAyYTIuNDkgMi40OSAwIDAgMS0yLjc2IDBMNi42IDE0LjEyYTIuNSAyLjUgMCAxIDEtLjctLjdsMi4wMi0yLjA0YTIuNDkgMi40OSAwIDAgMSAwLTIuNzZMNS44OCA2LjZBMi41IDIuNSAwIDEgMSA3IDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbm5lY3RlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29ubmVjdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljg4IDYuNTlhMi41IDIuNSAwIDEgMSAuNy0uN0w4LjYzIDcuOWEyLjQ5IDIuNDkgMCAwIDEgMi43NiAwbDIuMDMtMi4wM2EyLjUgMi41IDAgMSAxIC43LjdMMTIuMSA4LjYzYTIuNDkgMi40OSAwIDAgMSAwIDIuNzZsMi4wMyAyLjAzYTIuNSAyLjUgMCAxIDEtLjcuN2wtMi4wNC0yLjAyYTIuNDkgMi40OSAwIDAgMS0yLjc2IDBMNi42IDE0LjEyYTIuNSAyLjUgMCAxIDEtLjctLjdsMi4wMi0yLjA0YTIuNDkgMi40OSAwIDAgMSAwLTIuNzZMNS44OCA2LjZaTTYgNC41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWm0xMSAwYTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWk00LjUgMTdhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTE3IDE1LjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBaTTExLjUgMTBhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDb25uZWN0b3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29ubmVjdG9yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAzYS41LjUgMCAwIDAtLjUuNXYyLjhMMi4xNSA4LjE0QS41LjUgMCAwIDAgMiA4LjV2NWMwIC4yOC4yMi41LjUuNUg0djIuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjIuNWEuNS41IDAgMCAwIDEgMFYxNGgxLjVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS4xNS0uMzVMNyA2LjI5VjMuNWEuNS41IDAgMCAwLS41LS41aC0yWm0xMSAxNGEuNS41IDAgMCAwIC41LS41di0yLjhsMS44NS0xLjg1YS41LjUgMCAwIDAgLjE1LS4zNXYtNWEuNS41IDAgMCAwLS41LS41SDE3VjMuNWEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAtLjUuNVY2aC0uNWEuNS41IDAgMCAwLS41LjV2NWMwIC4xMy4wNS4yNi4xNS4zNUwxMyAxMy43MXYyLjc5YzAgLjI4LjIyLjUuNS41aDJaTTEzIDZWNGgzdjJoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDb25uZWN0b3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nvbm5lY3RvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzLjVhLjUuNSAwIDAgMC0xIDB2Mi44TDIuMTUgOC4xNEEuNS41IDAgMCAwIDIgOC41djVjMCAuMjguMjIuNS41LjVINHYyLjVhLjUuNSAwIDAgMCAxIDBWMTRoMXYyLjVhLjUuNSAwIDAgMCAxIDBWMTRoMS41YS41LjUgMCAwIDAgLjUtLjV2LTVhLjUuNSAwIDAgMC0uMTUtLjM1TDcgNi4yOVYzLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4xMy4wNS4yNi4xNS4zNUw4IDguNzFWMTNIM1Y4LjdsMS44NS0xLjg1QS41LjUgMCAwIDAgNSA2LjV2LTNabTEwIDEzdi0zYS41LjUgMCAwIDEgLjE1LS4zNUwxNyAxMS4yOVY3aC01djQuM2wxLjg1IDEuODVjLjEuMDkuMTUuMjIuMTUuMzV2M2EuNS41IDAgMCAxLTEgMHYtMi44bC0xLjg1LTEuODVhLjUuNSAwIDAgMS0uMTUtLjM1di01YzAtLjI4LjIyLS41LjUtLjVoLjVWMy41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjVWNmguNWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS4xNS4zNUwxNiAxMy43MXYyLjc5YS41LjUgMCAwIDEtMSAwWk0xMyA2aDNWNGgtM3YyWlwiXSk7XG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGFjdENhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEzWm0zIDZhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNabS0xLjU1Ljc1aDMuMWMuNTMgMCAuOTUuNDIuOTUuOTUgMCAuODUtLjU4IDEuNTgtMS40IDEuNzlsLS4wNi4wMWE0LjMgNC4zIDAgMCAxLTIuMDggMGwtLjA2LS4wMWMtLjgyLS4yLTEuNC0uOTQtMS40LTEuOCAwLS41Mi40Mi0uOTQuOTUtLjk0Wk0xMSA4LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRhY3RDYXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDguNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTQgMy4yYzAtLjUzLjQyLS45NS45NS0uOTVoMy4xYy41MyAwIC45NS40Mi45NS45NSAwIC44NS0uNTggMS41OC0xLjQgMS43OWwtLjA2LjAxYTQuMyA0LjMgMCAwIDEtMi4wOCAwbC0uMDYtLjAxYy0uODItLjItMS40LS45NC0xLjQtMS44Wk0xMS41IDhhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMCAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTIgNS43NUMyIDQuNzggMi43OCA0IDMuNzUgNGgxMi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djguNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMy43NUMyLjc4IDE2IDIgMTUuMjIgMiAxNC4yNXYtOC41Wk0zLjc1IDVhLjc1Ljc1IDAgMCAwLS43NS43NXY4LjVjMCAuNDEuMzQuNzUuNzUuNzVoMTIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtOC41YS43NS43NSAwIDAgMC0uNzUtLjc1SDMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZEdyb3VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRhY3RDYXJkR3JvdXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFaTTEyIDguNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaTTQgMTAuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzYS43NS43NSAwIDAgMSAuNzUuNzV2LjgxYy0uMDIuMTYtLjEuNTgtLjUuOTItLjMzLjI5LS44Ni41Mi0xLjc1LjUyQzQgMTMgNCAxMS41IDQgMTEuNXYtLjc1Wk02LjI1IDlhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVptNC4yNS0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEuMDcgMy45OGEyLjI2IDIuMjYgMCAwIDAgLjA3LS40MVYxMC43NWMwLS4yNy0uMDYtLjUyLS4xNy0uNzVIMTBhMSAxIDAgMCAxIDEgMWMwIC44My0uNjcgMS41LTEuNSAxLjVoLS4yNmMuMS0uMi4xNi0uMzcuMi0uNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZEdyb3VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb250YWN0Q2FyZEdyb3VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiA4LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptLTgtLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoM2EuNzUuNzUgMCAwIDEgLjc1Ljc1di44MWMtLjAyLjE2LS4xLjU4LS41LjkyLS4zMy4yOS0uODYuNTItMS43NS41MkM0IDEzIDQgMTEuNSA0IDExLjV2LS43NVpNNi4yNSA5YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTQuMjUtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xLjA3IDMuOThjLS4wMy4xNS0uMS4zMy0uMi41MmguMjdjLjgzIDAgMS41LS42NyAxLjUtMS41YTEgMSAwIDAgMC0xLTFoLS42N2MuMTEuMjMuMTcuNDguMTcuNzVWMTEuNTdhMS44NCAxLjg0IDAgMCAxLS4wNy40Wk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xMVpNMyA2LjVDMyA1LjY3IDMuNjcgNSA0LjUgNWgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZExpbmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGFjdENhcmRMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS41QzIgNC42NyAyLjY3IDQgMy41IDRoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2NS44NGEzLjQ5IDMuNDkgMCAwIDAtMS41LS4zNGgtNGEzLjUgMy41IDAgMCAwLTMuMTYgNUgzLjVBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlabTMgM2ExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFptNCAzLjJhLjk1Ljk1IDAgMCAwLS45NS0uOTVoLTMuMWEuOTUuOTUgMCAwIDAtLjk1Ljk1YzAgLjg1LjU4IDEuNTggMS40IDEuNzlsLjA2LjAxYy42OC4xOCAxLjQuMTggMi4wOCAwbC4wNi0uMDFjLjgyLS4yIDEuNC0uOTQgMS40LTEuOFpNMTEuNSA4YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTEgNGEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTMuNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZExpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRhY3RDYXJkTGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDEwYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0tMS41NS43NWEuOTUuOTUgMCAwIDAtLjk1Ljk1YzAgLjg1LjU4IDEuNTggMS40IDEuNzlsLjA2LjAxYy42OC4xOCAxLjQuMTggMi4wOCAwbC4wNi0uMDFjLjgyLS4yIDEuNC0uOTQgMS40LTEuOGEuOTUuOTUgMCAwIDAtLjk1LS45NGgtMy4xWk0xMSA4LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTkuMDQgMTVIMy43NWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVoMTIuNWMuNDEgMCAuNzUuMzQuNzUuNzV2NS4yOWMuMzUuMDUuNjkuMTUgMSAuM1Y1Ljc1QzE4IDQuNzggMTcuMjIgNCAxNi4yNSA0SDMuNzVDMi43OCA0IDIgNC43OCAyIDUuNzV2OC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDUuNTlhMy40OCAzLjQ4IDAgMCAxLS4zLTFabTMuNDYtM2EyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRSaWJib25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGFjdENhcmRSaWJib25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdi0uMzVhMy45OCAzLjk4IDAgMCAxLS44Ny0zLjY1aC0uNjNhLjUuNSAwIDAgMSAwLTFoMS4wNEE0IDQgMCAwIDEgMTggOS41NFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xM1ptMyA2YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm0xLjU1Ljc1Yy41MyAwIC45NS40Mi45NS45NSAwIC44NS0uNTggMS41OC0xLjQgMS43OWwtLjA2LjAxYTQuMyA0LjMgMCAwIDEtMi4wOCAwbC0uMDYtLjAxYy0uODItLjItMS40LS45NC0xLjQtMS44IDAtLjUyLjQyLS45NC45NS0uOTRoMy4xWk0xMSA4LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTggNC41YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFptLTEgMy40NmEzLjk4IDMuOTggMCAwIDEtNCAwdjIuMjljMCAuMi4yMS4zMS4zOC4yMkwxNiAxOGwxLjYyLjk3Yy4xNy4xLjM4LS4wMy4zOC0uMjJ2LTIuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZFJpYmJvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGFjdENhcmRSaWJib25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggOC41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tNCAzLjJjMC0uNTMuNDItLjk1Ljk1LS45NWgzLjFjLjUzIDAgLjk1LjQyLjk1Ljk1IDAgLjg1LS41OCAxLjU4LTEuNCAxLjc5bC0uMDYuMDFhNC4zIDQuMyAwIDAgMS0yLjA4IDBsLS4wNi0uMDFjLS44Mi0uMi0xLjQtLjk0LTEuNC0xLjhaTTExLjUgOGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0wIDNhLjUuNSAwIDAgMCAwIDFoLjYzYy4wOS0uMzUuMjMtLjcuNC0xSDExLjVabS03Ljc1IDRoOC43OWMuMTMuMjMuMjguNDUuNDYuNjVWMTZIMy43NUMyLjc4IDE2IDIgMTUuMjIgMiAxNC4yNXYtOC41QzIgNC43OCAyLjc4IDQgMy43NSA0aDEyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2My43OWMtLjMtLjE4LS42NS0uMzItMS0uNDFWNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2OC41YzAgLjQxLjM0Ljc1Ljc1Ljc1Wk0xOSAxM2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabS0xIDMuNDZhMy45OCAzLjk4IDAgMCAxLTQgMHYyLjI5YzAgLjIuMjEuMzEuMzguMjJMMTYgMThsMS42Mi45N2MuMTcuMS4zOC0uMDMuMzgtLjIydi0yLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgQ29udGVudFNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRlbnRTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjUgNS4yNUEyLjc1IDIuNzUgMCAwIDEgNS4yNSAyLjVoOS41YTIuNzUgMi43NSAwIDAgMSAyLjc1IDIuNzV2NC42NGMtLjQ2LS4zLS45Ni0uNTMtMS41LS42OFY3SDR2Ny43NWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgzLjk2Yy4xNS41NC4zOCAxLjA0LjY4IDEuNUg1LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzV2LTkuNVpNOSAxNC41di02YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41djZjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41Wk02IDE0VjloMnY1SDZabTQtNS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMSAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0yLjA3IDIuOTRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ3LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250ZW50U2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRlbnRTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gxMnYyLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY2SDR2LS41Wm01IDN2NmEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtNmMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41Wk02IDl2NWgyVjlINlptNC0uNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMi4wNyAyLjk0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ29udGVudFZpZXdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGVudFZpZXdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgN0g2djJoOFY3Wm0tMiA1aDJ2MWgtMnYtMVpNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNSA3YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWN1ptNyA0aDJhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDEgMS0xWm0tNyAuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250ZW50Vmlld1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGVudFZpZXdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgN2ExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjdabTkgMEg2djJoOFY3Wm0tMiA0YTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDAtMS0xaC0yWm0wIDFoMnYxaC0ydi0xWm0tNy0uNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250ZW50Vmlld0dhbGxlcnlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udGVudFZpZXdHYWxsZXJ5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgN0g2djJoM1Y3Wk0zIDZhMyAzIDAgMCAxIDMtM2g2djE0SDZhMyAzIDAgMCAxLTMtM1Y2Wm0yIDF2MmExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxWm0uNSA0YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTUgMTMuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVptOCAzLjVoMWEzIDMgMCAwIDAgMy0zdi0xaC00djRabTQtNVY4aC00djRoNFptMC01VjZhMyAzIDAgMCAwLTMtM2gtMXY0aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250ZW50Vmlld0dhbGxlcnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRlbnRWaWV3R2FsbGVyeVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFINlptMCAxaDN2Mkg2VjdabS0xIDQuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTggMTBWNEg2YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDVabTMgMGEyIDIgMCAwIDAgMi0ydi0xaC00djNoMlptMi05VjZhMiAyIDAgMCAwLTItMmgtMnYzaDRabTAgNVY4aC00djRoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbnRlbnRWaWV3R2FsbGVyeUxpZ2h0bmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb250ZW50Vmlld0dhbGxlcnlMaWdodG5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSA3SDZ2MmgzVjdaTTMgNmEzIDMgMCAwIDEgMy0zaDZ2NC43OGwtLjA0LjA4TDkuNTQgMTNhLjUuNSAwIDAgMC0uMDQgMGgtNGEuNS41IDAgMCAwIDAgMWgzLjU4Yy0uMzQuOTYuMzcgMiAxLjQyIDJIMTJ2Ljg4bC0uMDMuMTJINmEzIDMgMCAwIDEtMy0zVjZabTE0IDFoLTRWM2gxYTMgMyAwIDAgMSAzIDN2MVpNNSA3djJhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMVptLjUgNGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm03LjgyLTNoNC44MmEuNS41IDAgMCAxIC40NC43NUwxNi43NSAxMmgxLjVjLjY0IDAgLjk4Ljc2LjU2IDEuMjRsLTQuODIgNS41MWMtLjUuNTgtMS40NS4wOS0xLjI2LS42NkwxMy41IDE1aC0zYS41LjUgMCAwIDEtLjQ2LS43MWwyLjgyLTZhLjUuNSAwIDAgMSAuNDYtLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgQ29udGVudFZpZXdHYWxsZXJ5TGlnaHRuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb250ZW50Vmlld0dhbGxlcnlMaWdodG5pbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgN2ExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjdabTQgMEg2djJoM1Y3Wm0tMy41IDRhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpNNSAxMy41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIC4wNCAwbC0uNC44Ni0uMDYuMTRINS41YS41LjUgMCAwIDEtLjUtLjVaTTYgMTZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNXY1LjlsLjk2LTIuMDQuMDQtLjA4VjRoMmEyIDIgMCAwIDEgMiAydjFoMVY2YTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g1Ljk3bC4yNS0xSDZabTcuMzItOGg0LjgyYS41LjUgMCAwIDEgLjQ0Ljc1TDE2Ljc1IDEyaDEuNWMuNjQgMCAuOTguNzYuNTYgMS4yNGwtNC44MiA1LjUxYy0uNS41OC0xLjQ1LjA5LTEuMjYtLjY2TDEzLjUgMTVoLTNhLjUuNSAwIDAgMS0uNDYtLjcxbDIuODItNmEuNS41IDAgMCAxIC40Ni0uMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250cmFjdERvd25MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRyYWN0RG93bkxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTIuNyA4IDQuMTUtNC4xNWEuNS41IDAgMCAwLS43LS43TDEyIDcuMjlWMy41YS41LjUgMCAwIDAtMSAwdjVjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIDAtMWgtMy44Wk02IDRhMiAyIDAgMCAwLTIgMnY0aDRhMiAyIDAgMCAxIDIgMnY0aDRhMiAyIDAgMCAwIDItMnYtMi41YS41LjUgMCAwIDEgMSAwVjE0YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZhMyAzIDAgMCAxIDMtM2gyLjVhLjUuNSAwIDAgMSAwIDFINlpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbnRyYWN0RG93bkxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRyYWN0RG93bkxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEyLjcgOCA0LjE1LTQuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMiA3LjI5VjMuNWEuNS41IDAgMCAwLTEgMHY1YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTMuOFpNNCA2YzAtMS4xLjktMiAyLTJoMi41YS41LjUgMCAwIDAgMC0xSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zdi0yLjVhLjUuNSAwIDAgMC0xIDBWMTRhMiAyIDAgMCAxLTIgMmgtNHYtNGEyIDIgMCAwIDAtMi0ySDRWNlptMCA1aDRhMSAxIDAgMCAxIDEgMXY0SDZhMiAyIDAgMCAxLTItMnYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENvbnRyYWN0VXBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb250cmFjdFVwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA0YTIgMiAwIDAgMC0yIDJ2Mi41YS41LjUgMCAwIDEtMSAwVjZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzaC0yLjVhLjUuNSAwIDAgMSAwLTFIMTRhMiAyIDAgMCAwIDItMnYtNGgtNGEyIDIgMCAwIDEtMi0yVjRINlptLTIuNSA4YS41LjUgMCAwIDEgMC0xaDVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTMuOGwtNC4xNSA0LjE1YS41LjUgMCAwIDEtLjctLjdMNy4yOSAxMkgzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250cmFjdFVwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvbnRyYWN0VXBSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA2YzAtMS4xLjktMiAyLTJoNHY0YzAgMS4xLjkgMiAyIDJoNHY0YTIgMiAwIDAgMS0yIDJoLTIuNWEuNS41IDAgMCAwIDAgMUgxNGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2Mi41YS41LjUgMCAwIDAgMSAwVjZabTggM2ExIDEgMCAwIDEtMS0xVjRoM2EyIDIgMCAwIDEgMiAydjNoLTRabS05IDIuNWMwIC4yOC4yMi41LjUuNWgzLjhsLTQuMTUgNC4xNWEuNS41IDAgMCAwIC43LjdMOCAxMi43MXYzLjc5YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29udHJvbEJ1dHRvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb250cm9sQnV0dG9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMSAxNS4yNSAxNkg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1di02LjVaTTYgN2EyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmguNWEuNS41IDAgMCAwIDAtMUg2YTEgMSAwIDAgMS0xLTFWOWExIDEgMCAwIDEgMS0xaC41YS41LjUgMCAwIDAgMC0xSDZabTMgLjVhLjUuNSAwIDAgMC0xIDBWOWgtLjVhLjUuNSAwIDAgMCAwIDFIOHYxLjc1YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aC4yNWEuNS41IDAgMCAwIDAtMWgtLjI1YS4yNS4yNSAwIDAgMS0uMjUtLjI1VjEwaC41YS41LjUgMCAwIDAgMC0xSDlWNy41Wm03IDBhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVptLTQgM2MwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMCAwLTFoLTFjLS44MyAwLTEuNS42Ny0xLjUgMS41djJhLjUuNSAwIDAgMCAxIDB2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb250cm9sQnV0dG9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb250cm9sQnV0dG9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDdhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xVjlhMSAxIDAgMCAxIDEtMWguNWEuNS41IDAgMCAwIDAtMUg2Wm0zIC41YS41LjUgMCAwIDAtMSAwVjloLS41YS41LjUgMCAwIDAgMCAxSDh2MS43NWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWguMjVhLjUuNSAwIDAgMCAwLTFoLS4yNWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYxMGguNWEuNS41IDAgMCAwIDAtMUg5VjcuNVptNyAwYS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVabS00IDNjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDAgMC0xaC0xYy0uODMgMC0xLjUuNjctMS41IDEuNXYyYS41LjUgMCAwIDAgMSAwdi0yWk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMTggMTMuMjV2LTYuNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNEg0Ljc1Wk0zIDYuNzVDMyA1Ljc4IDMuNzggNSA0Ljc1IDVoMTAuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY2LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDQuNzVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjV2LTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbnZlcnRSYW5nZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb252ZXJ0UmFuZ2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAyYTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINVptMTIuNSA1Yy4yOCAwIC41LjIyLjUuNXYyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMS44bDEuMTUgMS4xNWEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYS41LjUgMCAwIDEgLjcuN0wxMy43MSAxMWgxLjc5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS4yOC4yMi0uNS41LS41Wm0tNS42MiAzSDVhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xLjA5YTEuNSAxLjUgMCAwIDEtMS41Ni0uMzVsLTItMmExLjUgMS41IDAgMCAxIDAtMi4xMmwuNDQtLjQ0Wk02LjUgMTRjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxSDdhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENvbnZlcnRSYW5nZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29udmVydFJhbmdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg1Wk00IDRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVY0Wm0zIDkuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xSDdabTQuODgtMy41SDVhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xLjA5YTEuNSAxLjUgMCAwIDEtMSAwVjE2YTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoNi4wOWMuMDctLjIuMTktLjQuMzUtLjU2bC40NC0uNDRaTTE4IDcuNWEuNS41IDAgMCAwLTEgMHYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDEyaDEuNzlBMi41IDIuNSAwIDAgMCAxOCA5LjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb29raWVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nvb2tpZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAwIDEgOS44Ny03Ljc4LjUuNSAwIDAgMSAuMjQuODUgMiAyIDAgMCAwIC45NSAzLjM4Yy4yNi4wNi40NC4yOS40NC41NUEyIDIgMCAwIDAgMTcgOC4zMmEuNS41IDAgMCAxIC44Ny4yNEE4IDggMCAxIDEgMiAxMFptNS0yYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptMyAzYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMyAzYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLTYgMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb29raWVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb29raWVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDlhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00IDJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0zIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNiAwYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMy0xMmE4IDggMCAxIDAgNy44NyA2LjU2LjUuNSAwIDAgMC0uODctLjI0QTIgMiAwIDAgMSAxMy41IDdjMC0uMjYtLjE4LS41LS40NC0uNTVhMiAyIDAgMCAxLS45NS0zLjM4LjUuNSAwIDAgMC0uMjQtLjg1QTguMDIgOC4wMiAwIDAgMCAxMCAyWm0tNyA4YTcgNyAwIDAgMSA3Ljg3LTYuOTUgMi45OSAyLjk5IDAgMCAwIDEuNjUgNC4yOSAzIDMgMCAwIDAgNC40NyAyLjI2bC4wMS40YTcgNyAwIDEgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ29weUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb3B5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMlY0Wk00IDZhMiAyIDAgMCAxIDEtMS43M1YxNC41QTIuNSAyLjUgMCAwIDAgNy41IDE3aDYuMjNBMiAyIDAgMCAxIDEyIDE4SDcuNUEzLjUgMy41IDAgMCAxIDQgMTQuNVY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ29weVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29weVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhaTTcgNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMVY0Wk00IDZhMiAyIDAgMCAxIDEtMS43M1YxNC41QTIuNSAyLjUgMCAwIDAgNy41IDE3aDYuMjNBMiAyIDAgMCAxIDEyIDE4SDcuNUEzLjUgMy41IDAgMCAxIDQgMTQuNVY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ29weUFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb3B5QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY1LjJBNS41IDUuNSAwIDAgMCA5LjIgMTZIOGEyIDIgMCAwIDEtMi0yVjRabTQuMjYgMTRhNS41IDUuNSAwIDAgMS0uNjYtMUg3LjVBMi41IDIuNSAwIDAgMSA1IDE0LjVWNC4yN0EyIDIgMCAwIDAgNCA2djguNUEzLjUgMy41IDAgMCAwIDcuNSAxOGgyLjc2Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ29weUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ29weUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxLjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMkg4Wm0tLjUgMTVoMi4xYy4xOC4zNi40LjcuNjYgMUg3LjVBMy41IDMuNSAwIDAgMSA0IDE0LjVWNmEyIDIgMCAwIDEgMS0xLjczVjE0LjVBMi41IDIuNSAwIDAgMCA3LjUgMTdaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDb3B5QXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb3B5QXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NS4yQTUuNSA1LjUgMCAwIDAgOS4yIDE2SDhhMiAyIDAgMCAxLTItMlY0Wm00LjI2IDE0YTUuNSA1LjUgMCAwIDEtLjY2LTFINy41QTIuNSAyLjUgMCAwIDEgNSAxNC41VjQuMjdBMiAyIDAgMCAwIDQgNnY4LjVBMy41IDMuNSAwIDAgMCA3LjUgMThoMi43NlptNC4yNC04YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENvcHlBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb3B5QXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxLjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMkg4Wm0tLjUgMTVoMi4xYy4xOC4zNi40LjcuNjYgMUg3LjVBMy41IDMuNSAwIDAgMSA0IDE0LjVWNmEyIDIgMCAwIDEgMS0xLjczVjE0LjVBMi41IDIuNSAwIDAgMCA3LjUgMTdabTctN2E0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptMi4zNSA0Ljg1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb3B5U2VsZWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NvcHlTZWxlY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAzYTEgMSAwIDAgMC0xIDF2LjVhLjUuNSAwIDAgMS0xIDBWNGMwLTEuMS45LTIgMi0yaC41YS41LjUgMCAwIDEgMCAxSDhabS0xIDlhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAxIDAgMUg4YTIgMiAwIDAgMS0yLTJ2LS41YS41LjUgMCAwIDEgMSAwdi41Wm0wLTUuNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWk0xNiAzYTEgMSAwIDAgMSAxIDF2LjVhLjUuNSAwIDAgMCAxIDBWNGEyIDIgMCAwIDAtMi0yaC0uNWEuNS41IDAgMCAwIDAgMWguNVptMCAxMGExIDEgMCAwIDAgMS0xdi0uNWEuNS41IDAgMCAxIDEgMHYuNWEyIDIgMCAwIDEtMiAyaC0uNWEuNS41IDAgMCAxIDAtMWguNVptMS41LTdhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAxIDB2LTNhLjUuNSAwIDAgMC0uNS0uNVptLTctNGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk0xMCAxMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk00IDZoMXY2LjVBMi41IDIuNSAwIDAgMCA3LjUgMTVIMTR2MWEyIDIgMCAwIDEtMiAySDUuNUEzLjUgMy41IDAgMCAxIDIgMTQuNVY4YzAtMS4xLjktMiAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb3B5U2VsZWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb3B5U2VsZWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDNhMSAxIDAgMCAwLTEgMXYuNWEuNS41IDAgMCAxLTEgMFY0YzAtMS4xLjktMiAyLTJoLjVhLjUuNSAwIDAgMSAwIDFIOFptLTEgOWExIDEgMCAwIDAgMSAxaC41YS41LjUgMCAwIDEgMCAxSDhhMiAyIDAgMCAxLTItMnYtLjVhLjUuNSAwIDAgMSAxIDB2LjVabTAtNS41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNaTTE2IDNhMSAxIDAgMCAxIDEgMXYuNWEuNS41IDAgMCAwIDEgMFY0YTIgMiAwIDAgMC0yLTJoLS41YS41LjUgMCAwIDAgMCAxaC41Wm0wIDEwYTEgMSAwIDAgMCAxLTF2LS41YS41LjUgMCAwIDEgMSAwdi41YTIgMiAwIDAgMS0yIDJoLS41YS41LjUgMCAwIDEgMC0xaC41Wm0xLjUtN2EuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLS41LS41Wm0tNy00YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTEwIDEzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQgNmgxdjFINGExIDEgMCAwIDAtMSAxdjYuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMmExIDEgMCAwIDAgMS0xdi0xaDF2MWEyIDIgMCAwIDEtMiAySDUuNUEzLjUgMy41IDAgMCAxIDIgMTQuNVY4YzAtMS4xLjktMiAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb3VjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDb3VjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCA0SDZhMiAyIDAgMCAwLTIgMnYxYTMgMyAwIDAgMSAyLjgzIDJoNi4zNEEzIDMgMCAwIDEgMTYgN1Y2YTIgMiAwIDAgMC0yLTJabTIgNGEyIDIgMCAwIDAtMS45NCAxLjVjLS4wNy4yNy0uMjguNS0uNTYuNWgtN2MtLjI4IDAtLjUtLjIzLS41Ni0uNUEyIDIgMCAwIDAgMiAxMHYyYzAgMS4xLjkgMiAyIDJ2MS41YS41LjUgMCAwIDAgMSAwVjE0aDEwdjEuNWEuNS41IDAgMCAwIDEgMFYxNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDb3VjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ291Y2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNGEyIDIgMCAwIDAtMiAydjEuMDVBMi41IDIuNSAwIDAgMCAyIDkuNVYxMmMwIDEuMS45IDIgMiAydjEuNWEuNS41IDAgMCAwIDEgMFYxNGgxMHYxLjVhLjUuNSAwIDAgMCAxIDBWMTRhMiAyIDAgMCAwIDItMlY5LjVhMi41IDIuNSAwIDAgMC0yLTIuNDVWNmEyIDIgMCAwIDAtMi0ySDZabTkgMy4wNUEyLjUgMi41IDAgMCAwIDEzLjA1IDloLTYuMUEyLjUgMi41IDAgMCAwIDUgNy4wNVY2YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjEuMDVaTTE2IDEzSDRhMSAxIDAgMCAxLTEtMVY5LjVhMS41IDEuNSAwIDEgMSAzIDBjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41IDEuNSAxLjUgMCAwIDEgMyAwVjEyYTEgMSAwIDAgMS0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDcmVkaXRDYXJkQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3JlZGl0Q2FyZENsb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzVWOEgyVjYuNzVaTTkuMiAxNkg0Ljc2QTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1VjloMTIuNWE1LjUgNS41IDAgMCAwLTUuMyA3Wm05LjgtMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDEyYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDE2YS41LjUgMCAwIDAgMC0xaC0xdi0xLjVhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENyZWRpdENhcmRDbG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3JlZGl0Q2FyZENsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoNC40NmMtLjEtLjMyLS4xNi0uNjYtLjE5LTFINC43NUMzLjc4IDE1IDMgMTQuMjIgMyAxMy4yNVY5aDE1VjYuNzVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNMyA2Ljc1QzMgNS43OCAzLjc4IDUgNC43NSA1aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOEgzVjYuNzVabTE2IDcuNzVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ3JlZGl0Q2FyZFBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcmVkaXRDYXJkUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzVWOEgyVjYuNzVaTTIgOWgxMi41YTMgMyAwIDAgMC0yLjIzIDUuMDFjLTEuMS4xLTIgLjkyLTIuMjIgMS45OWgtNS4zQTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1VjlabTE0LjUgM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTEgMTcuNzUgMTEgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ3JlZGl0Q2FyZFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3JlZGl0Q2FyZFBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDUuM2MuMDctLjM3LjIzLS43LjQ1LTFINC43NUMzLjc4IDE1IDMgMTQuMjIgMyAxMy4yNVY5aDE1VjYuNzVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNMyA2Ljc1QzMgNS43OCAzLjc4IDUgNC43NSA1aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOEgzVjYuNzVaTTE2LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzExIDE3Ljc1IDExIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENyZWRpdENhcmRUb29sYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NyZWRpdENhcmRUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzVWOEgyVjYuNzVaTTEzLjUgOUgydjQuMjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZIOXYtMi41YTIuNSAyLjUgMCAwIDEgMi4wNC0yLjQ2QTIuNSAyLjUgMCAwIDEgMTMuNSA5Wk0xMiAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENyZWRpdENhcmRUb29sYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcmVkaXRDYXJkVG9vbGJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2SDl2LTFINC43NUMzLjc4IDE1IDMgMTQuMjIgMyAxMy4yNVY5aDE1VjYuNzVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNMyA2Ljc1QzMgNS43OCAzLjc4IDUgNC43NSA1aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOEgzVjYuNzVaTTEyIDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ3JvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcm9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWNC41SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41SDQuNXY2Ljc1YTIuNzUgMi43NSAwIDAgMCAyLjc1IDIuNzVIMTR2MS43NWEuNzUuNzUgMCAwIDAgMS41IDBWMTUuNWgxLjc1YS43NS43NSAwIDAgMCAwLTEuNWgtMTBDNi41NiAxNCA2IDEzLjQ0IDYgMTIuNzV2LTEwWm04IDQuNVYxM2gxLjVWNy4yNWEyLjc1IDIuNzUgMCAwIDAtMi43NS0yLjc1SDdWNmg1Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQ3JvcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3JvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyLjVhLjUuNSAwIDAgMC0xIDBWNUgyLjVhLjUuNSAwIDAgMCAwIDFINXY2LjVBMi41IDIuNSAwIDAgMCA3LjUgMTVIMTR2Mi41YS41LjUgMCAwIDAgMSAwVjE1aDIuNWEuNS41IDAgMCAwIDAtMWgtMTBBMS41IDEuNSAwIDAgMSA2IDEyLjV2LTEwWm04IDVWMTNoMVY3LjVBMi41IDIuNSAwIDAgMCAxMi41IDVIN3YxaDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENyb3BBcnJvd1JvdGF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcm9wQXJyb3dSb3RhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgM2E3IDcgMCAwIDAtNi4xMyAzLjYyLjc1Ljc1IDAgMSAxLTEuMzEtLjczQTguNSA4LjUgMCAwIDEgMTYuNSA0LjUyVjMuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjNjMCAuNDEtLjM0Ljc1LS43NS43NWgtM2EuNzUuNzUgMCAwIDEgMC0xLjVoMS4xMUE2Ljk4IDYuOTggMCAwIDAgMTAgM1pNMy41IDE2Ljc1di0xLjI3YTguNDggOC40OCAwIDAgMCAxMy45NC0xLjM3Ljc1Ljc1IDAgMSAwLTEuMy0uNzMgNyA3IDAgMCAxLTExLjUgMS4xMmgxLjExYS43NS43NSAwIDAgMCAwLTEuNWgtM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djNhLjc1Ljc1IDAgMCAwIDEuNSAwWk03IDdINS43NWEuNzUuNzUgMCAwIDAgMCAxLjVIN3YyLjI1QzcgMTEuOTkgOCAxMyA5LjI1IDEzaDIuMjV2MS4yNWEuNzUuNzUgMCAwIDAgMS41IDBWMTNoMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTVhLjc1Ljc1IDAgMCAwLTEuNSAwVjdabTQuNSAzLjVWOS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NUg5LjVWN2gxLjI1QzExLjk5IDcgMTMgOCAxMyA5LjI1djEuMjVoLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENyb3BBcnJvd1JvdGF0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3JvcEFycm93Um90YXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjggNi43M0E3IDcgMCAwIDEgMTUuNzUgNkgxNGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0xIDB2MS44NGE3Ljk5IDcuOTkgMCAwIDAtMTMuNTguOTMuNS41IDAgMSAwIC44OS40NlpNNiAxNEg0LjI1YTcgNyAwIDAgMCAxMS45NC0uNzMuNS41IDAgMCAxIC44OS40NiA4IDggMCAwIDEtMTMuNTguOTR2MS44M2EuNS41IDAgMCAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFabTEuNS05Yy4yOCAwIC41LjIyLjUuNVYxMWExIDEgMCAwIDAgMSAxaDUuNWEuNS41IDAgMCAxIDAgMUgxM3YxLjVhLjUuNSAwIDAgMS0xIDBWMTNIOWEyIDIgMCAwIDEtMi0yVjhINS41YS41LjUgMCAwIDEgMC0xSDdWNS41YzAtLjI4LjIyLS41LjUtLjVabTQuNSA2VjlhMSAxIDAgMCAwLTEtMUg5VjdoMmEyIDIgMCAwIDEgMiAydjJoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDcm9wSW50ZXJpbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcm9wSW50ZXJpbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDRoM2EyIDIgMCAwIDAgMS43NyAxLjk5bC40NyA0LjE2QTIgMiAwIDAgMCAxMSAxMkg2YTIgMiAwIDAgMC0xLjI0LTEuODVMNS4yMyA2QTIgMiAwIDAgMCA3IDRabTYuMjMgNi4wMS0uNDctNC4xNkEyIDIgMCAxIDAgMTAuMjYgM0g2Ljc0YTIgMiAwIDEgMC0yLjUgMi44NUwzLjc4IDEwQTIgMiAwIDEgMCA1LjczIDEzaDUuNTRhMiAyIDAgMSAwIDEuOTYtMi45OVptLjc0LTIuNEE0LjUgNC41IDAgMSAxIDkuNjUgMTVoLjg1YS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0uNzJBNS40OCA1LjQ4IDAgMCAwIDE4LjUgMTJhNS41IDUuNSAwIDAgMC00LjY1LTUuNDNsLjEyIDEuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDcm9wSW50ZXJpbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3JvcEludGVyaW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyIDVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMi0xSDdhMiAyIDAgMCAxLTEuNzcgMS45OWwtLjQ3IDQuMTZBMiAyIDAgMCAxIDYgMTJoNWEyIDIgMCAwIDEgMS4yNC0xLjg1TDExLjc3IDZBMiAyIDAgMCAxIDEwIDRabTEuMjcgOUg1LjczYTIgMiAwIDEgMS0xLjk2LTIuOTlsLjQ3LTQuMTZBMiAyIDAgMSAxIDYuNzQgM2gzLjUzYTIgMiAwIDEgMSAyLjUgMi44NWwuNDYgNC4xNkEyIDIgMCAxIDEgMTEuMjcgMTNaTTMgMTJhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0yLTlhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm03IDlhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0xLjk3LTQuNEE0LjUgNC41IDAgMSAxIDkuNjUgMTVoLjg1YS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0uNzJBNS40OCA1LjQ4IDAgMCAwIDE4LjUgMTJhNS41IDUuNSAwIDAgMC00LjY1LTUuNDNsLjEyIDEuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDcm9wSW50ZXJpbU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcm9wSW50ZXJpbU9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIm0zLjAyIDMuNzMtLjg3LS44OGEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtMS4yLTEuMkE1LjQ3IDUuNDcgMCAwIDEgOSAxNS43OHYuNzJhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0uODVhNC40OSA0LjQ5IDAgMCAwIDUuNTYuOTJsLTEuOTQtMS45NEwxMyAxNGEyIDIgMCAwIDEtMS43My0xSDUuNzNhMiAyIDAgMSAxLTEuOTYtMi45OWwuNDctNC4xNmEyIDIgMCAwIDEtMS4yMi0yLjEyWm04IDhMNS4yNyA1Ljk4aC0uMDRsLS40NyA0LjE3QTIgMiAwIDAgMSA2IDEyaDVjMC0uMSAwLS4xOC4wMi0uMjdabS43NS01Ljc0LjQ2IDQuMTIgMi42MyAyLjYzQTIgMiAwIDAgMCAxMy4yMyAxMGwtLjQ3LTQuMTZBMiAyIDAgMSAwIDEwLjI2IDNINi43NGEyIDIgMCAwIDAtMi40Ny0uODZsMi42IDIuNkEyIDIgMCAwIDAgNyA0aDNhMiAyIDAgMCAwIDEuNzcgMS45OVptNC45MiA4LjU4LjcyLjcyYTUuNSA1LjUgMCAwIDAtMy41Ni04LjcybC4xMiAxLjAzYTQuNSA0LjUgMCAwIDEgMi43MiA2Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ3JvcEludGVyaW1PZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nyb3BJbnRlcmltT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIm0zLjAyIDMuNzMtLjg3LS44OGEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtMS4yLTEuMkE1LjQ3IDUuNDcgMCAwIDEgOSAxNS43OHYuNzJhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0uODVhNC40OSA0LjQ5IDAgMCAwIDUuNTYuOTJsLTEuOTQtMS45NEwxMyAxNGEyIDIgMCAwIDEtMS43My0xSDUuNzNhMiAyIDAgMSAxLTEuOTYtMi45OWwuNDctNC4xNmEyIDIgMCAwIDEtMS4yMi0yLjEyWm04IDhMNS4yNyA1Ljk4YTIgMiAwIDAgMS0uMDQgMGwtLjQ3IDQuMTdBMiAyIDAgMCAxIDYgMTJoNWMwLS4xIDAtLjE4LjAyLS4yN1ptLjc1LTUuNzQuNDYgNC4xMiAyLjYzIDIuNjNBMiAyIDAgMCAwIDEzLjIzIDEwbC0uNDctNC4xNkEyIDIgMCAxIDAgMTAuMjYgM0g2Ljc0YTIgMiAwIDAgMC0yLjQ3LS44NmwuODcuODdhMSAxIDAgMCAxIC44Ni44NmwuODcuODdBMiAyIDAgMCAwIDcgNGgzYTIgMiAwIDAgMCAxLjc3IDEuOTlabTQuOTIgOC41OC43Mi43MmE1LjUgNS41IDAgMCAwLTMuNTYtOC43MmwuMTIgMS4wM2E0LjUgNC41IDAgMCAxIDIuNzIgNi45N1pNMTIgNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabS05IDdhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ3Jvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3Jvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC43NCA1LjMxIDYuNiA4LjA1YS41LjUgMCAwIDEtLjYyLjE0TDMuODYgNy4xMmExLjUgMS41IDAgMSAwLTEuNjcuODVMMy45IDE2Yy4xMi41OC42My45OSAxLjIyLjk5aDkuNzhjLjYgMCAxLjEtLjQxIDEuMjItMWwxLjctOC4wM2ExLjUgMS41IDAgMSAwLTEuNjctLjg1TDE0IDguMmEuNS41IDAgMCAxLS42Mi0uMTRMMTEuMjYgNS4zYTEuNSAxLjUgMCAxIDAtMi41MyAwWk0xMCAxNGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENyb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDcm93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSAxMi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWk04Ljc0IDUuMzEgNi42IDguMDVhLjUuNSAwIDAgMS0uNjIuMTRMMy44NiA3LjEyYTEuNSAxLjUgMCAxIDAtMS42Ny44NUwzLjkgMTZjLjEyLjU4LjYzLjk5IDEuMjIuOTloOS43OGMuNiAwIDEuMS0uNDEgMS4yMi0xbDEuNy04LjAzYTEuNSAxLjUgMCAxIDAtMS42Ny0uODVMMTQgOC4yYS41LjUgMCAwIDEtLjYyLS4xNEwxMS4yNiA1LjNhMS41IDEuNSAwIDEgMC0yLjUzIDBabTEuMjYgMCAyLjYgMy4zNWExLjUgMS41IDAgMCAwIDEuODYuNDJsMi4zNC0xLjE3LTEuNjYgNy45YS4yNS4yNSAwIDAgMS0uMjUuMTlINS4xMWEuMjUuMjUgMCAwIDEtLjI1LS4yTDMuMiA3LjkxbDIuMzQgMS4xN2ExLjUgMS41IDAgMCAwIDEuODYtLjQyTDEwIDUuMzFaXCJdKTtcbmV4cG9ydCBjb25zdCBDdWJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC43IDIuNDhhMy41IDMuNSAwIDAgMSAyLjYgMGw1Ljc2IDIuM2MuNTcuMjMuOTQuNzguOTQgMS40djcuNjRhMS41IDEuNSAwIDAgMS0uOTQgMS40bC01Ljc2IDIuM2EzLjUgMy41IDAgMCAxLTIuNiAwbC01Ljc2LTIuM2ExLjUgMS41IDAgMCAxLS45NC0xLjRWNi4xOGMwLS42Mi4zNy0xLjE3Ljk0LTEuNGw1Ljc2LTIuM1ptLTMgMy41NmEuNS41IDAgMSAwLS40LjkybDQuMiAxLjg2djQuNjhhLjUuNSAwIDAgMCAxIDBWOC44Mmw0LjItMS44NmEuNS41IDAgMSAwLS40LS45MkwxMCA3Ljk1bC00LjMtMS45WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS43IDYuMDRhLjUuNSAwIDEgMC0uNC45Mmw0LjIgMS44NnY0LjY4YS41LjUgMCAwIDAgMSAwVjguODJsNC4yLTEuODZhLjUuNSAwIDEgMC0uNC0uOTJMMTAgNy45NWwtNC4zLTEuOVptNS42LTMuNTZhMy41IDMuNSAwIDAgMC0yLjYgMGwtNS43NiAyLjNBMS41IDEuNSAwIDAgMCAyIDYuMTh2Ny42NGMwIC42Mi4zNyAxLjE3Ljk0IDEuNGw1Ljc2IDIuM2EzLjUgMy41IDAgMCAwIDIuNiAwbDUuNzYtMi4zYy41Ny0uMjMuOTQtLjc4Ljk0LTEuNFY2LjE4YTEuNSAxLjUgMCAwIDAtLjk0LTEuNGwtNS43Ni0yLjNabS0yLjIzLjkzYTIuNSAyLjUgMCAwIDEgMS44NiAwbDUuNzYgMi4zYS41LjUgMCAwIDEgLjMxLjQ3djcuNjRhLjUuNSAwIDAgMS0uMzEuNDdsLTUuNzYgMi4zYTIuNSAyLjUgMCAwIDEtMS44NiAwbC01Ljc2LTIuM2EuNS41IDAgMCAxLS4zMS0uNDdWNi4xOGMwLS4yLjEyLS40LjMxLS40N2w1Ljc2LTIuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEN1YmVBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjcgMi40OGEzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy41Ny4yMy45NC43OC45NCAxLjR2NC4wOGE1LjQ4IDUuNDggMCAwIDAtNy41LjQ2di0xLjlsNC4yLTEuODZhLjUuNSAwIDEgMC0uNC0uOTJMMTAgNy45NWwtNC4zLTEuOWEuNS41IDAgMSAwLS40LjlsNC4yIDEuODd2My4zOWE1LjQ4IDUuNDggMCAwIDAgLjU4IDUuNTYgMy41IDMuNSAwIDAgMS0xLjM4LS4yNWwtNS43Ni0yLjNhMS41IDEuNSAwIDAgMS0uOTQtMS40VjYuMThjMC0uNjIuMzctMS4xNy45NC0xLjRsNS43Ni0yLjNaTTE3IDE4LjI0YTQuNSA0LjUgMCAxIDEtNS03LjQ4IDQuNSA0LjUgMCAwIDEgNSA3LjQ4Wm0tMi4xNS02LjFhLjUuNSAwIDAgMC0uODUuMzZWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVhLjUuNSAwIDAgMC0uMTUtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4wNyAxNi41OWMuMTMuMDUuMjYuMS40LjEyLjE2LjM4LjM2LjczLjYgMS4wNmEzLjUgMy41IDAgMCAxLTEuMzctLjI1bC01Ljc2LTIuM2ExLjUgMS41IDAgMCAxLS45NC0xLjRWNi4xOGMwLS42Mi4zNy0xLjE3Ljk0LTEuNGw1Ljc2LTIuM2EzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy41Ny4yMy45NC43OC45NCAxLjR2NC4wOGE1LjUgNS41IDAgMCAwLTEtLjY2VjYuMThhLjUuNSAwIDAgMC0uMzEtLjQ3bC01Ljc2LTIuM2EyLjUgMi41IDAgMCAwLTEuODYgMEwzLjMxIDUuN2EuNS41IDAgMCAwLS4zMS40N3Y3LjY0YzAgLjIuMTIuNC4zMS40N2w1Ljc2IDIuM1pNNS43IDYuMDRhLjUuNSAwIDEgMC0uNC45Mmw0LjIgMS44NnYzLjM5YTUuNSA1LjUgMCAwIDEgMS0xLjQ5di0xLjlsNC4yLTEuODZhLjUuNSAwIDEgMC0uNC0uOTJMMTAgNy45NWwtNC4zLTEuOVpNMTcgMTguMjRhNC41IDQuNSAwIDEgMS01LTcuNDggNC41IDQuNSAwIDAgMSA1IDcuNDhabS0yLjE1LTYuMWEuNS41IDAgMCAwLS44NS4zNlYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNWEuNS41IDAgMCAwLS4xNS0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDdWJlQXJyb3dDdXJ2ZURvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZUFycm93Q3VydmVEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEgNS41YTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWm02LjQuOS0uOS44OVY1Ljc0QTIuNzUgMi43NSAwIDAgMCAzLjc1IDNIMy41YS41LjUgMCAxIDAgMCAxaC4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NFY3LjNsLS45LS45YS41LjUgMCAwIDAtLjcuN2wxLjc1IDEuNzZhLjUuNSAwIDAgMCAuNyAwTDguMTIgNy4xYS41LjUgMCAxIDAtLjcxLS43Wm0zLjYtLjljMCAuNzgtLjE2IDEuNTMtLjQ2IDIuMmwzLjc2LTEuNjZhLjUuNSAwIDAgMSAuNC45MWwtNC4yIDEuODd2NC42N2EuNS41IDAgMCAxLTEgMFY5LjI3YTUuNDkgNS40OSAwIDAgMS03LjUuNDZ2NC4wOGMwIC42MS4zNyAxLjE2Ljk0IDEuMzlsNS43NiAyLjNhMy41IDMuNSAwIDAgMCAyLjYgMGw1Ljc2LTIuM2MuNTctLjIzLjk0LS43OC45NC0xLjRWNi4xOGExLjUgMS41IDAgMCAwLS45NC0xLjM5bC01Ljc2LTIuM2EzLjUgMy41IDAgMCAwLTEuMzgtLjI1QTUuNDcgNS40NyAwIDAgMSAxMSA1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDdWJlQXJyb3dDdXJ2ZURvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVBcnJvd0N1cnZlRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMSA1LjVhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBabTYuNC44OS0uOS45VjUuNzRBMi43NSAyLjc1IDAgMCAwIDMuNzUgM0gzLjVhLjUuNSAwIDEgMCAwIDFoLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc0VjcuM2wtLjktLjlhLjUuNSAwIDAgMC0uNy43bDEuNzUgMS43NmEuNS41IDAgMCAwIC43IDBMOC4xMiA3LjFhLjUuNSAwIDEgMC0uNzEtLjcxWk0yIDkuNzNjLjMuMjYuNjQuNDggMSAuNjZ2My40MmMwIC4yLjEzLjM5LjMyLjQ2bDUuNzUgMi4zYy42LjI0IDEuMjYuMjQgMS44NiAwbDUuNzYtMi4zYS41LjUgMCAwIDAgLjMxLS40NlY2LjE3YS41LjUgMCAwIDAtLjMxLS40NmwtNS43Ni0yLjNhMi41IDIuNSAwIDAgMC0uNC0uMTIgNS41IDUuNSAwIDAgMC0uNi0xLjA2Yy40Ni0uMDEuOTMuMDcgMS4zNy4yNWw1Ljc2IDIuM2MuNTcuMjMuOTQuNzguOTQgMS40djcuNjNhMS41IDEuNSAwIDAgMS0uOTQgMS4zOWwtNS43NiAyLjNhMy41IDMuNSAwIDAgMS0yLjYgMGwtNS43Ni0yLjNBMS41IDEuNSAwIDAgMSAyIDEzLjhWOS43NFptOC41NC0yLjAyQTUuNSA1LjUgMCAwIDEgOS41IDkuMjd2NC4yMmEuNS41IDAgMCAwIDEgMFY4LjgybDQuMi0xLjg3YS41LjUgMCAxIDAtLjQtLjkxTDEwLjU0IDcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEN1YmVMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNyAyLjQ4YTMuNSAzLjUgMCAwIDEgMi42IDBsNS43NiAyLjNjLjU3LjIzLjk0Ljc4Ljk0IDEuNHY1Ljg1YTMuNTQgMy41NCAwIDAgMC0uNS0uMDNoLTRhMy41IDMuNSAwIDAgMC0yLjczIDUuNjhjLS42OS4xNi0xLjQxLjEtMi4wNy0uMTZsLTUuNzYtMi4zYTEuNSAxLjUgMCAwIDEtLjk0LTEuNFY2LjE4YzAtLjYyLjM3LTEuMTcuOTQtMS40bDUuNzYtMi4zWm0tMyAzLjU2YS41LjUgMCAxIDAtLjQuOTJsNC4yIDEuODZ2NC42OGEuNS41IDAgMCAwIDEgMFY4LjgybDQuMi0xLjg2YS41LjUgMCAxIDAtLjQtLjkyTDEwIDcuOTVsLTQuMy0xLjlaTTEzLjUgMTNhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDEgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTdhLjUuNSAwIDEgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1YmVMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdWJlTGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS4wNCA2LjNhLjUuNSAwIDAgMSAuNjYtLjI2TDEwIDcuOTVsNC4zLTEuOWEuNS41IDAgMSAxIC40LjlsLTQuMiAxLjg3djQuNjhhLjUuNSAwIDAgMS0xIDBWOC44Mkw1LjMgNi45NmEuNS41IDAgMCAxLS4yNi0uNjZaTTguNyAyLjQ4YTMuNSAzLjUgMCAwIDEgMi42IDBsNS43NiAyLjNjLjU3LjIzLjk0Ljc4Ljk0IDEuNHY1Ljg1YTMuNTQgMy41NCAwIDAgMC0uNS0uMDNIMTdWNi4xOGEuNS41IDAgMCAwLS4zMS0uNDdsLTUuNzYtMi4zYTIuNSAyLjUgMCAwIDAtMS44NiAwTDMuMzEgNS43YS41LjUgMCAwIDAtLjMxLjQ3djcuNjRjMCAuMi4xMi40LjMxLjQ3bDUuNzYgMi4zYy4zNy4xNS43Ny4yIDEuMTYuMTcuMTMuMzMuMzEuNjUuNTQuOTItLjY5LjE2LTEuNDEuMS0yLjA3LS4xNmwtNS43Ni0yLjNhMS41IDEuNSAwIDAgMS0uOTQtMS40VjYuMThjMC0uNjIuMzctMS4xNy45NC0xLjRsNS43Ni0yLjNaTTEzLjUgMTNhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDEgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTdhLjUuNSAwIDEgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTdabS0zLjUgMmEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjIgMi41MWE1IDUgMCAwIDEgMy42IDBsNC4yNCAxLjY0Yy41OC4yMi45Ni43Ny45NiAxLjR2LjE0YTIuNSAyLjUgMCAwIDAtLjYtLjM0bC00Ljk2LTEuOWE0IDQgMCAwIDAtMi44OCAwTDMuNiA1LjM1Yy0uMjIuMDktLjQyLjItLjYuMzR2LS4xNGMwLS42My4zOC0xLjE4Ljk2LTEuNEw4LjIxIDIuNVptMi44OCAxLjg3YTMgMyAwIDAgMC0yLjE2IDBsLTQuOTYgMS45QTEuNSAxLjUgMCAwIDAgMyA3LjY5djYuNjNjMCAuNjIuMzggMS4xOC45NiAxLjRsNC45NiAxLjkxYTMgMyAwIDAgMCAyLjE2IDBsNC45Ni0xLjljLjU4LS4yMy45Ni0uNzkuOTYtMS40VjcuNjhhMS41IDEuNSAwIDAgMC0uOTYtMS40bC00Ljk2LTEuOTFaTTYuMDQgOC4zYS41LjUgMCAwIDEgLjY2LS4yNkwxMCA5LjQ2bDMuMy0xLjQyYS41LjUgMCAwIDEgLjQuOTJsLTMuMiAxLjM3djMuMTdhLjUuNSAwIDEgMS0xIDB2LTMuMTdMNi4zIDguOTZhLjUuNSAwIDAgMS0uMjYtLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZU11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdWJlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguMiAyLjUxYTUgNSAwIDAgMSAzLjYgMGw0LjI0IDEuNjRjLjU4LjIyLjk2Ljc3Ljk2IDEuNHYuMTRhMi41IDIuNSAwIDAgMC0uNi0uMzRsLTQuOTYtMS45YTQgNCAwIDAgMC0yLjg4IDBMMy42IDUuMzRjLS4yMi4wOS0uNDIuMi0uNi4zNHYtLjE0YzAtLjYzLjM4LTEuMTguOTYtMS40TDguMjEgMi41Wm0tMi4xNiA1LjhhLjUuNSAwIDAgMSAuNjYtLjI3TDEwIDkuNDZsMy4zLTEuNDJhLjUuNSAwIDAgMSAuNC45MmwtMy4yIDEuMzd2My4xN2EuNS41IDAgMCAxLTEgMHYtMy4xN0w2LjMgOC45NmEuNS41IDAgMCAxLS4yNi0uNjZabTIuODgtMy45M2EzIDMgMCAwIDEgMi4xNiAwbDQuOTYgMS45Yy41OC4yMy45Ni43OS45NiAxLjR2Ni42M2ExLjUgMS41IDAgMCAxLS45NiAxLjRsLTQuOTYgMS45MWEzIDMgMCAwIDEtMi4xNiAwbC00Ljk2LTEuOWExLjUgMS41IDAgMCAxLS45Ni0xLjRWNy42OGMwLS42Mi4zOC0xLjE4Ljk2LTEuNGw0Ljk2LTEuOTFabTEuOC45M2EyIDIgMCAwIDAtMS40NCAwTDQuMzIgNy4yMmEuNS41IDAgMCAwLS4zMi40N3Y2LjYyYzAgLjIxLjEzLjQuMzIuNDdsNC45NiAxLjlhMiAyIDAgMCAwIDEuNDQgMGw0Ljk2LTEuOWEuNS41IDAgMCAwIC4zMi0uNDdWNy43YS41LjUgMCAwIDAtLjMyLS40N2wtNC45Ni0xLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDdWJlUXVpY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZVF1aWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjgxIDQuNjdhMS41IDEuNSAwIDAgMSAxLjM4IDBsMyAxLjU0Yy41LjI2LjgxLjc3LjgxIDEuMzN2My45MmExLjUgMS41IDAgMCAxLS44MSAxLjMzbC0zIDEuNTRhMS41IDEuNSAwIDAgMS0xLjM4IDBsLTMtMS41NEExLjUgMS41IDAgMCAxIDkgMTEuNDZWNy41NGMwLS41Ni4zMS0xLjA3LjgxLTEuMzNsMy0xLjU0Wm0tMS43NiAzLjFhLjUuNSAwIDAgMCAuMjMuNjhMMTMgOS4zdjIuMmEuNS41IDAgMCAwIDEgMFY5LjNsMS43Mi0uODZhLjUuNSAwIDEgMC0uNDQtLjlsLTEuNzguOS0xLjc4LS45YS41LjUgMCAwIDAtLjY3LjIzWk0zLjUgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0tMSAzYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTEgM2EuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZVF1aWNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdWJlUXVpY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjI3IDUuNTZhLjUuNSAwIDAgMSAuNDYgMGwzIDEuNTRhLjUuNSAwIDAgMSAuMjcuNDR2My45MmEuNS41IDAgMCAxLS4yNy40NGwtMyAxLjU0YS41LjUgMCAwIDEtLjQ2IDBsLTMtMS41NGEuNS41IDAgMCAxLS4yNy0uNDRWNy41NGMwLS4xOC4xLS4zNi4yNy0uNDRsMy0xLjU0Wm0uOTItLjlhMS41IDEuNSAwIDAgMC0xLjM4IDBsLTMgMS41NWMtLjUuMjYtLjgxLjc3LS44MSAxLjMzdjMuOTJjMCAuNTYuMzEgMS4wNy44MSAxLjMzbDMgMS41NGMuNDMuMjIuOTUuMjIgMS4zOCAwbDMtMS41NGMuNS0uMjUuODEtLjc3LjgxLTEuMzNWNy41NGExLjUgMS41IDAgMCAwLS44MS0xLjMzbC0zLTEuNTRaTTMgNi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0tMSAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0xIDNjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTguMDUtNC43MmEuNS41IDAgMCAxIC42Ny0uMjNsMS43OC45IDEuNzgtLjlhLjUuNSAwIDEgMSAuNDQuOUwxNCA5LjN2Mi4xOWEuNS41IDAgMSAxLTEgMFY5LjNsLTEuNzItLjg1YS41LjUgMCAwIDEtLjIzLS42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEN1YmVSb3RhdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZVJvdGF0ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUzIDIuNjNjLjkzLS40MyAyLS40MyAyLjk0IDBsNC42NiAyLjE1Yy41My4yNC44Ny43OC44NyAxLjM2VjhoLTFhMS41IDEuNSAwIDAgMC0uODEgMi43NkExMC41NCAxMC41NCAwIDAgMSA5Ljk5IDEyYy0yLjEgMC0zLjkyLS41LTUuMTgtMS4yNEExLjUgMS41IDAgMCAwIDQgOEgzVjYuMTRjMC0uNTguMzQtMS4xMi44Ny0xLjM2bDQuNjYtMi4xNVpNNi43IDYuNTRhLjUuNSAwIDAgMC0uNC45MmwzLjIgMS4zN3YxLjY3YS41LjUgMCAxIDAgMSAwVjguODNsMy4yLTEuMzdhLjUuNSAwIDEgMC0uNC0uOTJMMTAgNy45NiA2LjcgNi41NFptOC44IDIuOTZjMC0uMjguMjItLjUuNS0uNWgyLjVhLjUuNSAwIDAgMSAuNS41VjEyYS41LjUgMCAwIDEtMSAwdi0uOThhNi4yIDYuMiAwIDAgMS0xLjY0IDEuMzdBMTIuNCAxMi40IDAgMCAxIDEwIDE0YTEyLjQgMTIuNCAwIDAgMS02LjM2LTEuNjFBNi4yIDYuMiAwIDAgMSAyIDExLjAyVjEyYS41LjUgMCAwIDEtMSAwVjkuNWEuNS41IDAgMCAxIC41LS41SDRhLjUuNSAwIDAgMSAwIDFIMi40OGE0LjEyIDQuMTIgMCAwIDAgLjkyIDEgNi41NyA2LjU3IDAgMCAwIC43Ni41NGMuNC4yNS44Ny40NyAxLjM3LjY3IDEuMjcuNSAyLjguOCA0LjQ3LjhzMy4yLS4zIDQuNDctLjhhOC42NyA4LjY3IDAgMCAwIDIuMTMtMS4yIDUuMjQgNS4yNCAwIDAgMCAuOTItMUgxNmEuNS41IDAgMCAxLS41LS41Wk0xMCAxNWMtMi42NiAwLTUuMTYtLjY3LTctMS44M3YuN2MwIC41OC4zNCAxLjEuODcgMS4zNWw0LjY2IDIuMTVjLjkzLjQzIDIgLjQzIDIuOTQgMGw0LjY2LTIuMTVjLjUzLS4yNC44Ny0uNzcuODctMS4zNnYtLjY5QTEzLjMyIDEzLjMyIDAgMCAxIDEwIDE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZVJvdGF0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZVJvdGF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC45NSAzLjUzYTIuNSAyLjUgMCAwIDEgMi4xIDBMMTUuNyA1LjdhLjUuNSAwIDAgMSAuMjkuNDVWOGgxVjYuMTRhMS41IDEuNSAwIDAgMC0uODctMS4zNmwtNC42Ni0yLjE1YTMuNSAzLjUgMCAwIDAtMi45NCAwTDMuODcgNC43OEExLjUgMS41IDAgMCAwIDMgNi4xNFY4aDFWNi4xNGMwLS4yLjExLS4zNy4yOS0uNDVsNC42Ni0yLjE2Wk0zLjQgMTFhNi40NiA2LjQ2IDAgMCAwIC43Ni41NEExMS40IDExLjQgMCAwIDAgMTAgMTNhMTEuNCAxMS40IDAgMCAwIDYtMS41NiA2LjQ2IDYuNDYgMCAwIDAgMS0uOGMuMi0uMjEuMzgtLjQyLjUyLS42NEgxNmEuNS41IDAgMCAxIDAtMWgyLjVhLjUuNSAwIDAgMSAuNS41VjEyYS41LjUgMCAwIDEtMSAwdi0uOThhNi4yIDYuMiAwIDAgMS0xLjY0IDEuMzdsLS4zNi4yMWMtMS42Ljg3LTMuNyAxLjQtNiAxLjRhMTIuNjcgMTIuNjcgMCAwIDEtNi4zNi0xLjYxQTYuMiA2LjIgMCAwIDEgMiAxMS4wMlYxMmEuNS41IDAgMCAxLTEgMFY5LjVhLjUuNSAwIDAgMSAuNS0uNUg0YS41LjUgMCAwIDEgMCAxSDIuNDhhNC4xMiA0LjEyIDAgMCAwIC45MiAxWm0uNiAyLjcydi4xNGMwIC4yLjExLjM3LjI5LjQ1bDQuNjYgMi4xNmMuNjcuMyAxLjQzLjMgMi4xIDBsNC42Ni0yLjE2YS41LjUgMCAwIDAgLjI5LS40NXYtLjE0YTEwIDEwIDAgMCAwIDEtLjU1di43YTEuNSAxLjUgMCAwIDEtLjg3IDEuMzVsLTQuNjYgMi4xNWMtLjkzLjQzLTIgLjQzLTIuOTQgMGwtNC42Ni0yLjE1QTEuNSAxLjUgMCAwIDEgMyAxMy44NnYtLjY5Yy4zMS4yLjY1LjM5IDEgLjU1Wk02LjA0IDYuOGEuNS41IDAgMCAxIC42Ni0uMjZMMTAgNy45NmwzLjMtMS40MmEuNS41IDAgMCAxIC40LjkybC0zLjIgMS4zN1YxMWEuNS41IDAgMSAxLTEgMFY4LjgzTDYuMyA3LjQ2YS41LjUgMCAwIDEtLjI2LS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1YmVTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVTeW5jRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNyAyLjQ4YTMuNSAzLjUgMCAwIDEgMi42IDBsNS43NiAyLjNjLjU3LjIzLjk0Ljc4Ljk0IDEuNHY0LjA4YTUuNDggNS40OCAwIDAgMC03LjUuNDZ2LTEuOWw0LjItMS44NmEuNS41IDAgMSAwLS40LS45MkwxMCA3Ljk1bC00LjMtMS45YS41LjUgMCAxIDAtLjQuOWw0LjIgMS44N3YzLjM5YTUuNDggNS40OCAwIDAgMCAuNTggNS41NiAzLjUgMy41IDAgMCAxLTEuMzgtLjI1bC01Ljc2LTIuM2ExLjUgMS41IDAgMCAxLS45NC0xLjRWNi4xOGMwLS42Mi4zNy0xLjE3Ljk0LTEuNGw1Ljc2LTIuM1pNMTAgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDEgMSAwLTFoLjQ3YTIgMiAwIDAgMC0yLjM4LjM0LjUuNSAwIDEgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAxIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAxLjcyLjEgMiAyIDAgMCAwIC42Ni0uNDQuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDdWJlU3luY1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3ViZVN5bmNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNyA2LjA0YS41LjUgMCAxIDAtLjQuOTJsNC4yIDEuODZ2My4zOWE1LjUgNS41IDAgMCAxIDEtMS40OXYtMS45bDQuMi0xLjg2YS41LjUgMCAxIDAtLjQtLjkyTDEwIDcuOTVsLTQuMy0xLjlaTTkuMDcgMTYuNmMuMTMuMDUuMjYuMS40LjEyLjE2LjM4LjM2LjczLjYgMS4wNmEzLjUgMy41IDAgMCAxLTEuMzctLjI1bC01Ljc2LTIuM2ExLjUgMS41IDAgMCAxLS45NC0xLjRWNi4xOGMwLS42Mi4zNy0xLjE3Ljk0LTEuNGw1Ljc2LTIuM2EzLjUgMy41IDAgMCAxIDIuNiAwbDUuNzYgMi4zYy41Ny4yMy45NC43OC45NCAxLjR2NC4wOGE1LjUgNS41IDAgMCAwLTEtLjY2VjYuMThhLjUuNSAwIDAgMC0uMzEtLjQ3bC01Ljc2LTIuM2EyLjUgMi41IDAgMCAwLTEuODYgMEwzLjMxIDUuN2EuNS41IDAgMCAwLS4zMS40N3Y3LjY0YzAgLjIuMTIuNC4zMS40N2w1Ljc2IDIuM1ptLjkzLTIuMWE0LjUgNC41IDAgMSAwIDkgLjAxIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMy41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMSAxIDAtMWguNDdhMiAyIDAgMCAwLTIuMzguMzUuNS41IDAgMSAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41NGEzIDMgMCAwIDEtMi42Mi0uMThWMTdhLjUuNSAwIDEgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIDEuNzIuMSAyIDIgMCAwIDAgLjY2LS40NC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1YmVUcmVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVUcmVlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNTcgMi4wN2MuMjgtLjA5LjU4LS4wOS44NiAwbDIuODUuODVhMSAxIDAgMCAxIC43Mi45NXY0LjI2YTEgMSAwIDAgMS0uNzIuOTZsLTIuNzkuODNhLjUuNSAwIDAgMSAuMDEuMDh2MUgxMmEyIDIgMCAwIDEgMiAydi4wNWEyLjUgMi41IDAgMSAxLTEgMFYxM2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXYuMDVhMi41IDIuNSAwIDEgMS0xIDBWMTNjMC0xLjEuOS0yIDItMmgxLjV2LTFhLjUuNSAwIDAgMSAwLS4wOGwtMi43OC0uODNBMSAxIDAgMCAxIDYgOC4xM1YzLjg3YTEgMSAwIDAgMSAuNzItLjk1bDIuODUtLjg1Wm0tLjkxIDIuNDZhLjUuNSAwIDAgMC0uMzIuOTVsMS4xNi4zOFY3YS41LjUgMCAwIDAgMSAwVjUuODZsMS4xNi0uMzhhLjUuNSAwIDEgMC0uMzItLjk1TDEwIDQuOTdsLTEuMzQtLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgQ3ViZVRyZWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1YmVUcmVlUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjY2IDQuNTNhLjUuNSAwIDAgMC0uMzIuOTVsMS4xNi4zOFY3YS41LjUgMCAwIDAgMSAwVjUuODZsMS4xNi0uMzhhLjUuNSAwIDEgMC0uMzItLjk1TDEwIDQuOTdsLTEuMzQtLjQ0Wm0xLjc3LTIuNDZhMS41IDEuNSAwIDAgMC0uODYgMGwtMi44Ni44NWEuOTkuOTkgMCAwIDAtLjcxLjk1djQuMjZjMCAuNDQuMy44My43Mi45NmwyLjc5LjgzYS41LjUgMCAwIDAtLjAxLjA4djFIOGEyIDIgMCAwIDAtMiAydi4wNWEyLjUgMi41IDAgMSAwIDEgMFYxM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYuMDVhMi41IDIuNSAwIDEgMCAxIDBWMTNhMiAyIDAgMCAwLTItMmgtMS41di0xYS41LjUgMCAwIDAgMC0uMDhsMi43OC0uODNhMSAxIDAgMCAwIC43Mi0uOTZWMy44N2ExIDEgMCAwIDAtLjcyLS45NWwtMi44NS0uODVabS0uNTcuOTVhLjUuNSAwIDAgMSAuMjggMGwyLjg2Ljg1djQuMjZsLTIuODYuODVhLjUuNSAwIDAgMS0uMjggMEw3IDguMTNWMy44N2wyLjg2LS44NVpNNSAxNS41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWm04LjUtMS41YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQ3VycmVuY3lEb2xsYXJFdXJvRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1cnJlbmN5RG9sbGFyRXVyb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMmEuNzUuNzUgMCAwIDAtLjc1Ljc1di4zM0EzLjUgMy41IDAgMCAwIDIgNi41di4yOGMwIDEuNDcuODUgMi44IDIuMTcgMy40MmwuNTguMjd2NC44N2EyIDIgMCAwIDEtMS4yNS0xLjg2VjEyLjRhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMDhhMy41IDMuNSAwIDAgMCAyLjc1IDMuNDJ2LjM1YS43NS43NSAwIDAgMCAxLjUgMHYtLjM1QTMuNSAzLjUgMCAwIDAgOSAxMy40OHYtLjI3YzAtMS40Ni0uODQtMi44LTIuMTctMy40MmwtLjU4LS4yN1Y0LjY0QTIgMiAwIDAgMSA3LjUgNi41djEuMWEuNzUuNzUgMCAwIDAgMS41IDBWNi41YTMuNSAzLjUgMCAwIDAtMi43NS0zLjQydi0uMzNBLjc1Ljc1IDAgMCAwIDUuNSAyWm0tMiA0LjVhMiAyIDAgMCAxIDEuMjUtMS44NnY0LjE4QTIuMjggMi4yOCAwIDAgMSAzLjUgNi43OFY2LjVabTIuNzUgOC44NHYtNC4xNmEyLjI3IDIuMjcgMCAwIDEgMS4yNSAyLjAzdi4yN2EyIDIgMCAwIDEtMS4yNSAxLjg2Wk0xMi41IDEwYzAtLjM0LjAyLS42Ni4wNi0uOThoMS43YS43NS43NSAwIDAgMCAwLTEuNWgtMS4zOEE2LjEgNi4xIDAgMCAxIDEzLjYxIDZjLjY3LTEgMS41Mi0xLjUgMi4zNi0xLjUuMyAwIC42My4xLjg2LjI1YS43NS43NSAwIDAgMCAuODQtMS4yNCAzLjEgMy4xIDAgMCAwLTEuNy0uNTFjLTEuNDkgMC0yLjc1LjktMy42IDIuMTZhNy44IDcuOCAwIDAgMC0xLjA1IDIuMzZoLS41N2EuNzUuNzUgMCAwIDAgMCAxLjVoLjNhMTAuMDIgMTAuMDIgMCAwIDAtLjA1IDFoLS4yNWEuNzUuNzUgMCAxIDAgMCAxLjVoLjM3YTguMiA4LjIgMCAwIDAgMS4yNSAzLjMyYy44NSAxLjI2IDIuMTEgMi4xNiAzLjYgMi4xNi41NCAwIDEuMi0uMTQgMS43Mi0uNTJhLjc1Ljc1IDAgMSAwLS44Ny0xLjIyYy0uMjEuMTUtLjUzLjI0LS44NS4yNC0uODQgMC0xLjY5LS41LTIuMzYtMS41YTYuNiA2LjYgMCAwIDEtLjk3LTIuNDhoMS42MWEuNzUuNzUgMCAxIDAgMC0xLjVIMTIuNVYxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1cnJlbmN5RG9sbGFyRXVyb1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3VycmVuY3lEb2xsYXJFdXJvUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMmEuNS41IDAgMCAwLS41LjV2LjU0Yy0xLjcuMjQtMyAxLjctMyAzLjQ2di4xM2MwIDEuNDMuODQgMi43MyAyLjE0IDMuMzFsLjg2LjM4djUuNjJhMi41IDIuNSAwIDAgMS0yLTIuNDV2LS45OWEuNS41IDAgMSAwLTEgMHYuOTlhMy41IDMuNSAwIDAgMCAzIDMuNDZ2LjU1YS41LjUgMCAwIDAgMSAwdi0uNTVjMS43LS4yNCAzLTEuNyAzLTMuNDZ2LS4xMmMwLTEuNDMtLjg0LTIuNzItMi4xNC0zLjNMNiA5LjY2VjQuMDZBMi41IDIuNSAwIDAgMSA4IDYuNXYxYS41LjUgMCAwIDAgMSAwdi0xYTMuNSAzLjUgMCAwIDAtMy0zLjQ2VjIuNWEuNS41IDAgMCAwLS41LS41Wk0zIDYuNWMwLTEuMi44Ni0yLjIyIDItMi40NXY1LjE4bC0uNDUtLjJBMi42MyAyLjYzIDAgMCAxIDMgNi42M1Y2LjVabTMgOS40NHYtNS4xN2wuNDUuMkEyLjYyIDIuNjIgMCAwIDEgOCAxMy4zN3YuMTJhMi41IDIuNSAwIDAgMS0yIDIuNDVaTTEyIDEwYzAtLjM0LjAyLS42OC4wNi0xaDEuNDRhLjUuNSAwIDEgMCAwLTFoLTEuMjZjLjIxLS44OS41Ny0xLjY3IDEuMDEtMi4zLjc3LTEuMSAxLjc4LTEuNyAyLjg1LTEuNy4zOSAwIC44MS4xMSAxLjEyLjMxYS41LjUgMCAxIDAgLjU1LS44NEEzLjE1IDMuMTUgMCAwIDAgMTYuMSAzYy0xLjQ4IDAtMi43Ni44NS0zLjY2IDIuMTItLjU3LjgtMSAxLjc5LTEuMjMgMi44OGgtLjcxYS41LjUgMCAxIDAgMCAxaC41NWE5LjcgOS43IDAgMCAwLS4wNSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNTVjLjE2IDEuNS42NSAyLjg0IDEuMzkgMy44OEE0LjU1IDQuNTUgMCAwIDAgMTYuMSAxN2MuNTQgMCAxLjE3LS4xMyAxLjY4LS40OGEuNS41IDAgMCAwLS41Ni0uODJjLS4zLjItLjcyLjMtMS4xMi4zLTEuMDcgMC0yLjA4LS42LTIuODUtMS43YTcuMTkgNy4xOSAwIDAgMS0xLjItMy4zaDEuNDVhLjUuNSAwIDAgMCAwLTFIMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXJyZW5jeURvbGxhclJ1cGVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1cnJlbmN5RG9sbGFyUnVwZWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4yNSAyLjc1YS43NS43NSAwIDEgMC0xLjUgMHYuMzNBMy41IDMuNSAwIDAgMCAyIDYuNXYuMjhjMCAxLjQ3Ljg1IDIuOCAyLjE3IDMuNDJsLjU4LjI3djQuODdhMiAyIDAgMCAxLTEuMjUtMS44NlYxMi40YS43NS43NSAwIDAgMC0xLjUgMHYxLjA4YTMuNSAzLjUgMCAwIDAgMi43NSAzLjQydi4zNWEuNzUuNzUgMCAwIDAgMS41IDB2LS4zNUEzLjUgMy41IDAgMCAwIDkgMTMuNDh2LS4yN2MwLTEuNDYtLjg0LTIuOC0yLjE3LTMuNDJsLS41OC0uMjdWNC42NEEyIDIgMCAwIDEgNy41IDYuNXYxLjFhLjc1Ljc1IDAgMCAwIDEuNSAwVjYuNWEzLjUgMy41IDAgMCAwLTIuNzUtMy40MnYtLjMzWm0tMS41IDEuOXY0LjE3QTIuMjggMi4yOCAwIDAgMSAzLjUgNi43OFY2LjVhMiAyIDAgMCAxIDEuMjUtMS44NlptMS41IDYuNTNhMi4yNyAyLjI3IDAgMCAxIDEuMjUgMi4wM3YuMjdhMiAyIDAgMCAxLTEuMjUgMS44NnYtNC4xNlpNMTAuNzUgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMi43NWMuODggMCAxLjY1LjUgMi4wMiAxLjI1aC00Ljc3YS43NS43NSAwIDAgMCAwIDEuNWg0Ljk0QTIuMjUgMi4yNSAwIDAgMSAxMy41IDloLTIuNzVhLjc1Ljc1IDAgMCAwLS41NyAxLjI0bDYuNSA3LjVhLjc1Ljc1IDAgMSAwIDEuMTQtLjk4bC01LjQzLTYuMjZoMS4xMWMxLjkgMCAzLjQ3LTEuNDIgMy43Mi0zLjI1aC4wM2EuNzUuNzUgMCAwIDAgMC0xLjVoLS4xM2EzLjc0IDMuNzQgMCAwIDAtLjYyLTEuMjVoLjc1YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ3VycmVuY3lEb2xsYXJSdXBlZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3VycmVuY3lEb2xsYXJSdXBlZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDJjLjI4IDAgLjUuMjIuNS41di41NGMxLjcuMjQgMyAxLjcgMyAzLjQ2djFhLjUuNSAwIDAgMS0xIDB2LTFhMi41IDIuNSAwIDAgMC0yLTIuNDV2NS42M2wuODYuMzhBMy42MiAzLjYyIDAgMCAxIDkgMTMuMzZ2LjEzYTMuNSAzLjUgMCAwIDEtMyAzLjQ2di41NWEuNS41IDAgMCAxLTEgMHYtLjU1YTMuNSAzLjUgMCAwIDEtMy0zLjQ2di0uOTlhLjUuNSAwIDEgMSAxIDB2Ljk5YTIuNSAyLjUgMCAwIDAgMiAyLjQ1di01LjYybC0uODYtLjM4QTMuNjMgMy42MyAwIDAgMSAyIDYuNjNWNi41YTMuNSAzLjUgMCAwIDEgMy0zLjQ2VjIuNWMwLS4yOC4yMi0uNS41LS41Wk0zIDYuNXYuMTNjMCAxLjAzLjYgMS45NyAxLjU1IDIuNGwuNDUuMlY0LjA1QTIuNSAyLjUgMCAwIDAgMyA2LjVabTMgOS40NGEyLjUgMi41IDAgMCAwIDItMi40NXYtLjEyYzAtMS4wNC0uNi0xLjk3LTEuNTUtMi40bC0uNDUtLjJ2NS4xN1pNMTAgMy41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabTAtM2MwLS4yOC4yMi0uNS41LS41aDNhMy41IDMuNSAwIDEgMSAwIDdoLTEuOWw2LjI4IDcuMTdhLjUuNSAwIDAgMS0uNzYuNjZsLTctOEEuNS41IDAgMCAxIDEwLjUgOWgzYTIuNSAyLjUgMCAwIDAgMC01aC0zYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXJzb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3Vyc29yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNjQgMi4yOUExIDEgMCAwIDAgNSAzLjA2djE0YTEgMSAwIDAgMCAxLjc2LjY1bDMuNTItNC4wN2MuMjgtLjMzLjctLjUyIDEuMTMtLjUyaDUuNmExIDEgMCAwIDAgLjYzLTEuNzdsLTExLTkuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXJzb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1cnNvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzLjA2YTEgMSAwIDAgMSAxLjY0LS43N2wxMSA5LjA2YTEgMSAwIDAgMS0uNjMgMS43N2gtNS42Yy0uNDMgMC0uODUuMTktMS4xMy41Mkw2Ljc2IDE3LjdBMSAxIDAgMCAxIDUgMTcuMDZ2LTE0Wm0xMiA5LjA2TDYgMy4wNnYxNGwzLjUyLTQuMDhhMi41IDIuNSAwIDAgMSAxLjktLjg2SDE3WlwiXSk7XG5leHBvcnQgY29uc3QgQ3Vyc29yQ2xpY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3Vyc29yQ2xpY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy41IDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNVpNMy42MSAzLjYxYy4yLS4yLjUxLS4yLjcgMGwxLjQyIDEuNDJhLjUuNSAwIDEgMS0uNy43TDMuNiA0LjMyYS41LjUgMCAwIDEgMC0uN1ptNy43OCAwYy4yLjIuMi41MSAwIC43TDkuOTcgNS43NGEuNS41IDAgMSAxLS43LS43bDEuNDEtMS40MmMuMi0uMi41MS0uMi43IDBaTTIgNy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wm01LjUuNTN2OS4yNmMwIC40NS41NC42Ny44NS4zNmwyLjU2LTIuNTZhMiAyIDAgMCAxIDEuNDItLjU5aDMuMjNhLjUuNSAwIDAgMCAuMzEtLjlMOC4zMSA3LjY1YS41LjUgMCAwIDAtLjgxLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXJzb3JDbGlja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3Vyc29yQ2xpY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVaTTMuNjEgMy42MWMuMi0uMi41MS0uMi43IDBsMS40MiAxLjQyYS41LjUgMCAxIDEtLjcuN0wzLjYgNC4zMmEuNS41IDAgMCAxIDAtLjdabTcuNzggMGMuMi4yLjIuNTEgMCAuN0w5Ljk3IDUuNzRhLjUuNSAwIDEgMS0uNy0uN2wxLjQxLTEuNDJjLjItLjIuNTEtLjIuNyAwWk0yIDcuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNi42NC0uMkExIDEgMCAwIDAgNyA4LjA3djkuMWExIDEgMCAwIDAgMS43NS42NmwyLjAzLTIuMzJjLjI4LS4zMi43LS41MSAxLjEzLS41MWgzLjJhMSAxIDAgMCAwIC42NS0xLjc3TDguNjQgNy4zWk04IDE3LjE3di05LjFMMTUuMTIgMTRIMTEuOWMtLjcyIDAtMS40LjMxLTEuODguODVMOCAxNy4xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEN1cnNvckhvdmVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1cnNvckhvdmVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjdjMCAxLjEuOSAyIDIgMmg1di00LjVhMS41IDEuNSAwIDAgMSAyLjU2LTEuMDZsNSA1Yy4xMS4xMS4yLjI0LjI4LjM4QTIgMiAwIDAgMCAxOCAxM1Y2YTIgMiAwIDAgMC0yLTJINFptNi44NSA2LjE1YS41LjUgMCAwIDAtLjg1LjM1djdhLjUuNSAwIDAgMCAuOTEuMjlsMS41Ny0yLjI1IDIuOTQuNDVhLjUuNSAwIDAgMCAuNDMtLjg0bC01LTVaTTExIDE1Ljl2LTQuMmwzLjA3IDMuMDYtMS43NC0uMjZhLjUuNSAwIDAgMC0uNDkuMmwtLjg0IDEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1cnNvckhvdmVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdXJzb3JIb3ZlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0xLjE2IDEuODIgMS41IDEuNSAwIDAgMC0uMjgtLjM4bC0uNDUtLjQ1QTEgMSAwIDAgMCAxNyAxM1Y2YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjdhMSAxIDAgMCAwIDEgMWg1djFINGEyIDIgMCAwIDEtMi0yVjZabTguODUgNC4xNWEuNS41IDAgMCAwLS44NS4zNXY3YS41LjUgMCAwIDAgLjkxLjI5bDEuNTctMi4yNSAyLjk0LjQ1YS41LjUgMCAwIDAgLjQzLS44NGwtNS01Wk0xMSAxNS45di00LjJsMy4wNyAzLjA2LTEuNzQtLjI2YS41LjUgMCAwIDAtLjQ5LjJsLS44NCAxLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXJzb3JIb3Zlck9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdXJzb3JIb3Zlck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDMuMzkgNC4xQTIgMiAwIDAgMCAyIDZ2N2MwIDEuMS45IDIgMiAyaDV2LTQuNWMwLS4yMy4wNS0uNDUuMTUtLjY1bC44NS44NnY2Ljc5YS41LjUgMCAwIDAgLjkxLjI5bDEuNTctMi4yNSAyLjc4LjQzIDEuODkgMS44OGEuNS41IDAgMCAwIC43LS43bC04LTgtNy03Wm0xMS4yMiAxMi42Mi0xLjc0LS4yNmEuNS41IDAgMCAwLS40OS4ybC0uODQgMS4ydi00LjJsMy4wNyAzLjA2Wm0yLjg0LjAxQTIgMiAwIDAgMCAxOCAxM1Y2YTIgMiAwIDAgMC0yLTJINi4xMmwxMC43OSAxMC43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1cnNvckhvdmVyT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdXJzb3JIb3Zlck9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0wzLjM5IDQuMUEyIDIgMCAwIDAgMiA2djdjMCAxLjEuOSAyIDIgMmg1di0xSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoLjNsNS43IDUuN3Y2LjhhLjUuNSAwIDAgMCAuOTEuMjlsMS41Ny0yLjI1IDIuNzguNDMgMS44OSAxLjg4YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMS4yMiAxMi42Mi0xLjc0LS4yNmEuNS41IDAgMCAwLS40OS4ybC0uODQgMS4ydi00LjJsMy4wNyAzLjA2Wm0yLjg0LjAxQTIgMiAwIDAgMCAxOCAxM1Y2YTIgMiAwIDAgMC0yLTJINi4xMmwxIDFIMTZhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0uODkgMWwuOC43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEN1cnNvclByb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3Vyc29yUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVpNMTQuNSA5Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOUEzLjUgMy41IDAgMCAxIDE0LjUgOVptMCAyYTUuNSA1LjUgMCAwIDEtNS4zOC02LjY2TDYuNjQgMi4yOUExIDEgMCAwIDAgNSAzLjA2djE0YTEgMSAwIDAgMCAxLjc2LjY1bDMuNTItNC4wN2MuMjgtLjMzLjctLjUyIDEuMTMtLjUyaDUuNmExIDEgMCAwIDAgLjYzLTEuNzdsLS45Ny0uOGMtLjY2LjMtMS40LjQ1LTIuMTcuNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXJzb3JQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDdXJzb3JQcm9oaWJpdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVpNMTQuNSA5Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOUEzLjUgMy41IDAgMCAxIDE0LjUgOVptMi41IDMuMTItMS40Ny0xLjIyYy40LS4wNy43OC0uMTkgMS4xNC0uMzVsLjk3LjhhMSAxIDAgMCAxLS42MyAxLjc3aC01LjZjLS40MyAwLS44NS4yLTEuMTMuNTJsLTMuNTIgNC4wN0ExIDEgMCAwIDEgNSAxNy4wNnYtMTRhMSAxIDAgMCAxIDEuNjQtLjc3bDIuNDggMi4wNUM5LjA0IDQuNyA5IDUuMSA5IDUuNXYuMDNMNiAzLjA2djE0bDMuNTItNC4wN2EyLjUgMi41IDAgMCAxIDEuOS0uODdIMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ3V0RmlsbGVkJywgXCIxZW1cIiwgW1wibTE0Ljg4IDMuMTYtMy4xIDQuNzctLjktMS4zOCAyLjc0LTQuMmEuNzUuNzUgMCAwIDEgMS4yNi44Wm0tMi4zOCA4LjZhMy4yNCAzLjI0IDAgMCAxIDQuNSAyLjk5IDMuMjUgMy4yNSAwIDEgMS01LjcyLTIuMTFMMTAgMTAuNjZsLTEuMjggMS45OGEzLjI1IDMuMjUgMCAxIDEtMS4yMS0uODhsMS42LTIuNDctMy45OS02LjEzYS43NS43NSAwIDAgMSAxLjI2LS44Mmw2LjEyIDkuNDFabS4yIDEuNmExLjc1IDEuNzUgMCAxIDAgLjAxLS4wMmwtLjAyLjAyWk02LjI0IDEzYTEuNzUgMS43NSAwIDEgMCAwIDMuNSAxLjc1IDEuNzUgMCAwIDAgMC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDdXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0N1dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS45MiAyLjIzYS41LjUgMCAwIDAtLjg0LjU0TDkuNCA5LjQzbC0xLjkyIDIuOTZhMyAzIDAgMSAwIC43OC42NEwxMCAxMC4zNWwxLjc0IDIuNjhhMyAzIDAgMSAwIC43OC0uNjRMNS45MiAyLjIzWk0xNCAxN2EyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRaTTQgMTVhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm03LjItNi40OS0uNi0uOTIgMy40OC01LjM2YS41LjUgMCAwIDEgLjg0LjU0bC0zLjczIDUuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXJrVGhlbWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGFya1RoZW1lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDMuNWE2LjUgNi41IDAgMSAxIDAgMTN2LTEzWk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2WlwiXSk7XG5leHBvcnQgY29uc3QgRGFya1RoZW1lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXJrVGhlbWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMSAxIDAgMTRWM1ptMC0xYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YUFyZWFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUFyZWFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAyLjQ5YS41LjUgMCAwIDAtMSAuMDF2MTVjMCAuMjguMjIuNS41LjVoMTVhLjUuNSAwIDEgMCAwLTFIM1YyLjQ5Wk0xNiAxNlY1LjVhLjUuNSAwIDAgMC0uODEtLjM5TDEwLjQ1IDguOWwtMy4yLTEuODNhLjUuNSAwIDAgMC0uNDUtLjAzTDQgOC4zVjE2aDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YUFyZWFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFBcmVhUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDIuNWEuNS41IDAgMSAwLTEgMHYxNWMwIC4yOC4yMi41LjUuNWgxNWEuNS41IDAgMCAwIDAtMUgxNlY1LjVhLjUuNSAwIDAgMC0uODEtLjM5TDEwLjQ1IDguOWwtMy4yLTEuODNhLjUuNSAwIDAgMC0uNDUtLjAzTDMgOC43NFYyLjVabTAgNy4zMiAzLjk3LTEuNzYgMy4yOCAxLjg3Yy4xOC4xLjQuMDkuNTYtLjA0TDE1IDYuNTRWMTdIM1Y5LjgyWlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YUJhckhvcml6b250YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUJhckhvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAyYTIgMiAwIDEgMCAwIDRoNWEyIDIgMCAxIDAgMC00SDRabTAgNmEyIDIgMCAxIDAgMCA0aDhhMiAyIDAgMSAwIDAtNEg0Wm0wIDZhMiAyIDAgMSAwIDAgNGgxMmEyIDIgMCAxIDAgMC00SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFySG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUJhckhvcml6b250YWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDVhMiAyIDAgMSAxIDAgNEg0YTIgMiAwIDAgMS0yLTJabTItMWExIDEgMCAwIDAgMCAyaDVhMSAxIDAgMCAwIDAtMkg0Wm0tMiA3YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAxIDEgMCA0SDRhMiAyIDAgMCAxLTItMlptMi0xYTEgMSAwIDAgMCAwIDJoOGExIDEgMCAxIDAgMC0ySDRabS0yIDdjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAxIDEgMCA0SDRhMiAyIDAgMCAxLTItMlptMi0xYTEgMSAwIDEgMCAwIDJoMTJhMSAxIDAgMSAwIDAtMkg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YUJhclZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFCYXJWZXJ0aWNhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDNhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAxIDAgNCAwVjVhMiAyIDAgMCAwLTItMlptNSAzYTIgMiAwIDAgMC0yIDJ2N2EyIDIgMCAxIDAgNCAwVjhhMiAyIDAgMCAwLTItMlptNSAzYTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAxIDAgNCAwdi00YTIgMiAwIDAgMC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFyVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFCYXJWZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMSAwIDQgMFY1YTIgMiAwIDAgMC0yLTJaTTQgNWExIDEgMCAwIDEgMiAwdjEwYTEgMSAwIDEgMS0yIDBWNVptNCAzYTIgMiAwIDEgMSA0IDB2N2EyIDIgMCAxIDEtNCAwVjhabTItMWExIDEgMCAwIDAtMSAxdjdhMSAxIDAgMSAwIDIgMFY4YTEgMSAwIDAgMC0xLTFabTMgNGEyIDIgMCAxIDEgNCAwdjRhMiAyIDAgMSAxLTQgMHYtNFptMi0xYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAxIDAgMiAwdi00YTEgMSAwIDAgMC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFyVmVydGljYWxBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUJhclZlcnRpY2FsQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1IDNhMiAyIDAgMCAxIDIgMnY0LjZhNS40OCA1LjQ4IDAgMCAwLTQtLjRWNWMwLTEuMS45LTIgMi0yWk05IDE0LjVjMCAuODguMiAxLjcyLjU4IDIuNDZBMiAyIDAgMCAxIDggMTVWOGEyIDIgMCAxIDEgNCAwdjEuNmE1LjUgNS41IDAgMCAwLTMgNC45Wk03IDExYTIgMiAwIDEgMC00IDB2NGEyIDIgMCAxIDAgNCAwdi00Wm0xMiAzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFyVmVydGljYWxBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFCYXJWZXJ0aWNhbEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgM2EyIDIgMCAwIDEgMiAydjQuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1YTEgMSAwIDEgMC0yIDB2NC4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjVjMC0xLjEuOS0yIDItMlpNOS4wNyAxNS4zNmMuMDkuNTcuMjYgMS4xLjUgMS42QTIgMiAwIDAgMSA4IDE1VjhhMiAyIDAgMSAxIDQgMHYxLjZjLS4zNi4xOC0uNy40LTEgLjY2VjhhMSAxIDAgMSAwLTIgMHY3YTEgMSAwIDAgMCAuMDcuMzZaTTUgOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMSAxLTQgMHYtNGMwLTEuMS45LTIgMi0yWm0xIDJhMSAxIDAgMSAwLTIgMHY0YTEgMSAwIDEgMCAyIDB2LTRabTEzIDMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFCYXJWZXJ0aWNhbEFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhQmFyVmVydGljYWxBcnJvd0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgM2EyIDIgMCAwIDEgMiAydjQuNmE1LjQ4IDUuNDggMCAwIDAtNC0uNFY1YzAtMS4xLjktMiAyLTJaTTkgMTQuNWE1LjUgNS41IDAgMCAxIDMtNC45VjhhMiAyIDAgMSAwLTQgMHY3YTIgMiAwIDAgMCAxLjU4IDEuOTZBNS40OCA1LjQ4IDAgMCAxIDkgMTQuNVpNNSA5YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAxIDEtNCAwdi00YzAtMS4xLjktMiAyLTJabTE0IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUgMi4zNWEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNSAxNS4yOVYxMi41YS41LjUgMCAwIDAtMSAwdjIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFyVmVydGljYWxBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFCYXJWZXJ0aWNhbEFycm93RG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgM2EyIDIgMCAwIDEgMiAydjQuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1YTEgMSAwIDEgMC0yIDB2NC4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjVjMC0xLjEuOS0yIDItMlptLTMgNXYxLjZjLS4zNi4xOC0uNy40LTEgLjY2VjhhMSAxIDAgMSAwLTIgMHY3YTEgMSAwIDAgMCAuMDcuMzZjLjA5LjU3LjI2IDEuMS41IDEuNkEyIDIgMCAwIDEgOCAxNVY4YTIgMiAwIDEgMSA0IDBabS01IDNhMiAyIDAgMSAwLTQgMHY0YTIgMiAwIDEgMCA0IDB2LTRabS0yLTFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDEgMS0yIDB2LTRhMSAxIDAgMCAxIDEtMVptMTQgNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDE1IDE1LjI5VjEyLjVhLjUuNSAwIDAgMC0xIDB2Mi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFCYXJWZXJ0aWNhbEFzY2VuZGluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhQmFyVmVydGljYWxBc2NlbmRpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgM2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDEgMS00IDBWNWMwLTEuMS45LTIgMi0yWm0tNSAzYTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAxIDEtNCAwVjhjMC0xLjEuOS0yIDItMlpNNSA5YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAxIDEtNCAwdi00YzAtMS4xLjktMiAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFyVmVydGljYWxBc2NlbmRpbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFCYXJWZXJ0aWNhbEFzY2VuZGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgM2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDEgMS00IDBWNWMwLTEuMS45LTIgMi0yWm0xIDJhMSAxIDAgMSAwLTIgMHYxMGExIDEgMCAxIDAgMiAwVjVabS00IDNhMiAyIDAgMSAwLTQgMHY3YTIgMiAwIDEgMCA0IDBWOFptLTItMWExIDEgMCAwIDEgMSAxdjdhMSAxIDAgMSAxLTIgMFY4YTEgMSAwIDAgMSAxLTFabS0zIDRhMiAyIDAgMSAwLTQgMHY0YTIgMiAwIDEgMCA0IDB2LTRabS0yLTFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDEgMS0yIDB2LTRhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFCYXJWZXJ0aWNhbFN0YXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUJhclZlcnRpY2FsU3RhckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNSAzYTIgMiAwIDAgMSAyIDJ2NC42YTUuNDggNS40OCAwIDAgMC00LS40VjVjMC0xLjEuOS0yIDItMlpNOSAxNC41YzAgLjg4LjIgMS43Mi41OCAyLjQ2QTIgMiAwIDAgMSA4IDE1VjhhMiAyIDAgMSAxIDQgMHYxLjZhNS41IDUuNSAwIDAgMC0zIDQuOVpNNyAxMWEyIDIgMCAxIDAtNCAwdjRhMiAyIDAgMSAwIDQgMHYtNFptMTIgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC4wMi0yLjY0YS41LjUgMCAwIDAtLjk2IDBsLS40NyAxLjUzSDEyYy0uNDggMC0uNjkuNjUtLjMuOTVsMS4yNi45NC0uNDggMS41M2MtLjE1LjQ5LjM4Ljg5Ljc3LjU5bDEuMjUtLjk1IDEuMjUuOTVjLjQuMy45Mi0uMS43Ny0uNTlsLS40OC0xLjUzIDEuMjUtLjk0Yy40LS4zLjItLjk1LS4zLS45NWgtMS41NGwtLjQ3LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhQmFyVmVydGljYWxTdGFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhQmFyVmVydGljYWxTdGFyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSAzYTIgMiAwIDAgMSAyIDJ2NC42Yy0uMzItLjE2LS42NS0uMy0xLS40VjVhMSAxIDAgMSAwLTIgMHY0LjAyYy0uMzQuMDMtLjY4LjEtMSAuMTlWNWMwLTEuMS45LTIgMi0yWk05LjA3IDE1LjM2Yy4wOS41Ny4yNiAxLjEuNSAxLjZBMiAyIDAgMCAxIDggMTVWOGEyIDIgMCAxIDEgNCAwdjEuNmMtLjM2LjE4LS43LjQtMSAuNjZWOGExIDEgMCAxIDAtMiAwdjdhMSAxIDAgMCAwIC4wNy4zNlpNNSA5YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAxIDEtNCAwdi00YzAtMS4xLjktMiAyLTJabTEgMmExIDEgMCAxIDAtMiAwdjRhMSAxIDAgMSAwIDIgMHYtNFptMTMgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC4wMi0yLjY0YS41LjUgMCAwIDAtLjk2IDBsLS40NyAxLjUzSDEyYy0uNDggMC0uNjkuNjUtLjMuOTVsMS4yNi45NC0uNDggMS41M2MtLjE1LjQ5LjM4Ljg5Ljc3LjU5bDEuMjUtLjk1IDEuMjUuOTVjLjQuMy45Mi0uMS43Ny0uNTlsLS40OC0xLjUzIDEuMjUtLjk0Yy40LS4zLjItLjk1LS4zLS45NWgtMS41NGwtLjQ3LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhRnVubmVsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFGdW5uZWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMSAxIDAgNEg0YTIgMiAwIDAgMS0yLTJabTIgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMSAxIDAgNEg2YTIgMiAwIDAgMS0yLTJabTQgNGEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAwIDAtNEg4WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YUZ1bm5lbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUZ1bm5lbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMSAxIDAgNEg0YTIgMiAwIDAgMS0yLTJabTItMWExIDEgMCAwIDAgMCAyaDEyYTEgMSAwIDEgMCAwLTJINFptMCA3YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAxIDEgMCA0SDZhMiAyIDAgMCAxLTItMlptMi0xYTEgMSAwIDAgMCAwIDJoOGExIDEgMCAxIDAgMC0ySDZabTIgNWEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAwIDAtNEg4Wm0tMSAyYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAxIDEgMCAySDhhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFIaXN0b2dyYW1GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUhpc3RvZ3JhbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xQzguNjcgMyA4IDMuNjcgOCA0LjVWMTdoNFY0LjVaTTEzIDZ2MTFoMy41YS41LjUgMCAwIDAgLjUtLjVWOGEyIDIgMCAwIDAtMi0yaC0yWk01IDloMnY4SDMuNWEuNS41IDAgMCAxLS41LS41VjExYzAtMS4xLjktMiAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhSGlzdG9ncmFtUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhSGlzdG9ncmFtUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDV2MTFoNFY1YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxWk03IDlWNWMwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYxaDJhMiAyIDAgMCAxIDIgMnY4LjVhLjUuNSAwIDAgMS0uNS41aC0xM2EuNS41IDAgMCAxLS41LS41VjExYzAtMS4xLjktMiAyLTJoMlptMCA3di02SDVhMSAxIDAgMCAwLTEgMXY1aDNabTYgMGgzVjhhMSAxIDAgMCAwLTEtMWgtMnY5WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YUxpbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUxpbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNS41YTIuNSAyLjUgMCAwIDEtMy40NCAyLjMybC0xLjI5IDEuOTJBMi41IDIuNSAwIDAgMSAxMS41IDE0YTIuNSAyLjUgMCAwIDEtMi4wNS0xLjA4TDYuOTUgMTRBMi41MSAyLjUxIDAgMCAxIDQuNSAxN2EyLjUgMi41IDAgMSAxIDIuMDUtMy45Mkw5LjA1IDEyYTIuNTEgMi41MSAwIDAgMSAzLjQtMi44M2wxLjI4LTEuOTJBMi41IDIuNSAwIDAgMSAxNS41IDMgMi41IDIuNSAwIDAgMSAxOCA1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhTGluZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YUxpbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjUgNGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pNMTMgNS41YTIuNSAyLjUgMCAxIDEgMS41NiAyLjMybC0xLjI5IDEuOTJBMi41IDIuNSAwIDAgMSAxMS41IDE0YTIuNSAyLjUgMCAwIDEtMi4wNS0xLjA4TDYuOTUgMTRBMi41MSAyLjUxIDAgMCAxIDQuNSAxN2EyLjUgMi41IDAgMSAxIDIuMDUtMy45Mkw5LjA1IDEyQTIuNTEgMi41MSAwIDAgMSAxMS41IDljLjMzIDAgLjY1LjA3Ljk0LjE4bDEuMjktMS45MkEyLjUgMi41IDAgMCAxIDEzIDUuNVptLTMgNmExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFptLTcgM2ExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFQaWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVBpZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDQuMDdjLjU1LS4wOCAxIC4zOCAxIC45M3Y2aDZjLjU1IDAgMSAuNDUuOTMgMUE3IDcgMCAxIDEgOCA0LjA3Wk0xNy4wNiAxMGMuNSAwIC45My0uMzcuOTQtLjg2VjlhNyA3IDAgMCAwLTcuMTQtN2MtLjUuMDEtLjg2LjQ0LS44Ni45NFY5YTEgMSAwIDAgMCAxIDFoNi4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFQaWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFQaWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMTJhMSAxIDAgMCAxLTEtMVY1LjA4QTYgNiAwIDEgMCAxNC45MiAxMkg5Wk04IDQuMDdjLjU1LS4wOCAxIC4zOCAxIC45M3Y2aDZjLjU1IDAgMSAuNDUuOTMgMUE3IDcgMCAxIDEgOCA0LjA3Wk0xMSA5VjNhNiA2IDAgMCAxIDYgNmgtNlptNi4wNiAxYy41IDAgLjkzLS4zNy45NC0uODZWOWE3IDcgMCAwIDAtNy4xNC03Yy0uNS4wMS0uODYuNDQtLjg2Ljk0VjlhMSAxIDAgMCAwIDEgMWg2LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVNjYXR0ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVNjYXR0ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAyLjVhLjUuNSAwIDAgMC0xIDB2MTVjMCAuMjguMjIuNS41LjVoMTVhLjUuNSAwIDAgMCAwLTFIM1YyLjVaTTcuNSAxMGEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMTcgNS41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWk0xMi41IDE1YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVNjYXR0ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFTY2F0dGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDIuNWEuNS41IDAgMCAwLTEgMHYxNWMwIC4yOC4yMi41LjUuNWgxNWEuNS41IDAgMCAwIDAtMUgzVjIuNVptMyA1YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk03LjUgNWEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVptNy0xYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWk0xMiA1LjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBabS0xIDdhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBabTEuNS0yLjVhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhU3VuYnVyc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVN1bmJ1cnN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuOTQgMy4xM2EuNS41IDAgMCAxLS4yLjY4QTcuMDMgNy4wMyAwIDAgMCAzLjggNi43M2EuNS41IDAgMSAxLS44OS0uNDYgOC4wMyA4LjAzIDAgMCAxIDMuMzUtMy4zNS41LjUgMCAwIDEgLjY3LjIxWm02LjEyIDBhLjUuNSAwIDAgMSAuNjctLjIgOC4wMyA4LjAzIDAgMCAxIDMuMzUgMy4zNC41LjUgMCAwIDEtLjg5LjQ2IDcuMDMgNy4wMyAwIDAgMC0yLjkyLTIuOTIuNS41IDAgMCAxLS4yMS0uNjhabS05LjkzIDkuOTNhLjUuNSAwIDAgMSAuNjguMiA3LjAzIDcuMDMgMCAwIDAgMi45MiAyLjkzLjUuNSAwIDEgMS0uNDYuODkgOC4wMyA4LjAzIDAgMCAxLTMuMzUtMy4zNS41LjUgMCAwIDEgLjIxLS42N1ptMTMuNzQgMGEuNS41IDAgMCAxIC4yLjY3IDguMDMgOC4wMyAwIDAgMS0zLjM0IDMuMzUuNS41IDAgMCAxLS40Ni0uODkgNy4wMyA3LjAzIDAgMCAwIDIuOTItMi45Mi41LjUgMCAwIDEgLjY4LS4yMVpNMTAgNS41Yy0uMTUgMC0uMyAwLS40NS4wMmEuNS41IDAgMCAxLS4xLTFMMTAgNC41YTUuNSA1LjUgMCAwIDEgNS4yNSAzLjg1LjUuNSAwIDEgMS0uOTYuM0E0LjUgNC41IDAgMCAwIDEwIDUuNVptLTIuNi4yYS41LjUgMCAwIDEtLjEuNyA0LjUgNC41IDAgMCAwLTEuMiA1Ljg1LjUuNSAwIDEgMS0uODYuNUE1LjQ4IDUuNDggMCAwIDEgNi43IDUuNmEuNS41IDAgMCAxIC43LjFabTcuNTIgNS4zMmEuNS41IDAgMCAxIC4zMy42MyA1LjUgNS41IDAgMCAxLTggMy4xMS41LjUgMCAxIDEgLjUtLjg2IDQuNSA0LjUgMCAwIDAgNi41NC0yLjU1LjUuNSAwIDAgMSAuNjMtLjMzWk0xMCAxM2EzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhU3VuYnVyc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFTdW5idXJzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi45NCAzLjEzYS41LjUgMCAwIDEtLjIuNjhBNy4wMyA3LjAzIDAgMCAwIDMuOCA2LjczYS41LjUgMCAxIDEtLjg5LS40NiA4LjAzIDguMDMgMCAwIDEgMy4zNS0zLjM1LjUuNSAwIDAgMSAuNjcuMjFabTYuMTIgMGEuNS41IDAgMCAxIC42Ny0uMiA4LjAzIDguMDMgMCAwIDEgMy4zNSAzLjM0LjUuNSAwIDAgMS0uODkuNDYgNy4wMyA3LjAzIDAgMCAwLTIuOTItMi45Mi41LjUgMCAwIDEtLjIxLS42OFptLTkuOTMgOS45M2EuNS41IDAgMCAxIC42OC4yIDcuMDMgNy4wMyAwIDAgMCAyLjkyIDIuOTMuNS41IDAgMSAxLS40Ni44OSA4LjAzIDguMDMgMCAwIDEtMy4zNS0zLjM1LjUuNSAwIDAgMSAuMjEtLjY3Wm0xMy43NCAwYS41LjUgMCAwIDEgLjIuNjcgOC4wMyA4LjAzIDAgMCAxLTMuMzQgMy4zNS41LjUgMCAwIDEtLjQ2LS44OSA3LjAzIDcuMDMgMCAwIDAgMi45Mi0yLjkyLjUuNSAwIDAgMSAuNjgtLjIxWk0xMCA1LjVjLS4xNSAwLS4zIDAtLjQ1LjAyYS41LjUgMCAwIDEtLjEtMUwxMCA0LjVhNS41IDUuNSAwIDAgMSA1LjI1IDMuODUuNS41IDAgMSAxLS45Ni4zQTQuNSA0LjUgMCAwIDAgMTAgNS41Wm0tMi42LjJhLjUuNSAwIDAgMS0uMS43IDQuNSA0LjUgMCAwIDAtMS4yIDUuODUuNS41IDAgMSAxLS44Ni41QTUuNDggNS40OCAwIDAgMSA2LjcgNS42YS41LjUgMCAwIDEgLjcuMVptNy41MiA1LjMyYS41LjUgMCAwIDEgLjMzLjYzIDUuNSA1LjUgMCAwIDEtOCAzLjExLjUuNSAwIDEgMSAuNS0uODYgNC41IDQuNSAwIDAgMCA2LjU0LTIuNTUuNS41IDAgMCAxIC42My0uMzNaTTggMTBhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0yLTNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVRyZWVtYXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVRyZWVtYXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAzSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMVYzWm0xIDE0aDZhMyAzIDAgMCAwIDMtM3YtMUg4djRabTktNVY2YTMgMyAwIDAgMC0zLTNIOHY5aDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhVHJlZW1hcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVRyZWVtYXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabTEgMXYxMkg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDFabTEgMTJ2LTNoOHYxYTIgMiAwIDAgMS0yIDJIOFptOC00SDhWNGg2YTIgMiAwIDAgMSAyIDJ2NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFUcmVuZGluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhVHJlbmRpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEwLjVBMi43NSAyLjc1IDAgMCAwIDUuNzUgMTdoMTAuNWEuNzUuNzUgMCAwIDAgMC0xLjVINS43NWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjMuNzVaTTEyLjc1IDVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNjlMMTEgOS45NCA5LjUzIDguNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMi43NSAyLjc1YS43NS43NSAwIDEgMCAxLjA2IDEuMDZMOSAxMC4wNmwxLjQ3IDEuNDdhLjc1Ljc1IDAgMCAwIDEuMDYgMGwzLjk3LTMuOTd2MS42OWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVRyZW5kaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhVHJlbmRpbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgMy41YS41LjUgMCAwIDAtMSAwdjExQTIuNSAyLjUgMCAwIDAgNS41IDE3aDExYS41LjUgMCAwIDAgMC0xaC0xMUExLjUgMS41IDAgMCAxIDQgMTQuNXYtMTFaTTEyLjUgNWEuNS41IDAgMCAwIDAgMWgyLjhMMTEgMTAuMyA5LjM1IDguNjRhLjUuNSAwIDAgMC0uNyAwbC0zLjUgMy41YS41LjUgMCAwIDAgLjcuN0w5IDkuNzFsMS42NSAxLjY0YS41LjUgMCAwIDAgLjcgMEwxNiA2LjcxVjkuNWEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLS41LS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVVzYWdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFVc2FnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDNhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVabTUgN2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wk02IDguNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwdi01Wk0xMy41IDZjLjI4IDAgLjUuMjIuNS41djdhLjUuNSAwIDAgMS0xIDB2LTdjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFVc2FnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVVzYWdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxMGEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLS41LS41Wk02IDguNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwdi01Wk0xMy41IDZhLjUuNSAwIDAgMC0uNS41djdhLjUuNSAwIDAgMCAxIDB2LTdhLjUuNSAwIDAgMC0uNS0uNVpNMyA1YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1Wm0xIDB2MTBhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhVXNhZ2VFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFVc2FnZUVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg1LjQ4Yy4xNS0uNS40Mi0uOTYuOC0xLjMzbDEuODQtMS44NWEuNS41IDAgMCAxLS4xMi0uMzJ2LTdhLjUuNSAwIDAgMSAxIDB2Ni40NGwyLjEtMi4xYy4yNy0uMjcuNTctLjQ3LjktLjZWNGEyIDIgMCAwIDAtMi0ySDRabTUgN2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wk01IDcuNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwdi01Wm01Ljk4IDcuODggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODIgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDMuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhVXNhZ2VFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhVXNhZ2VFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDE1aDUuOTljLS4yMy4zLS40LjY0LS41MSAxSDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY1LjIzYy0uMzMuMTQtLjYzLjM0LS45LjYxbC0uMS4xVjRhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMVptOC05LjVhLjUuNSAwIDAgMSAxIDB2Ni40NGwtLjg4Ljg4YS41LjUgMCAwIDEtLjEyLS4zMnYtN1ptLTcgMmEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwdi01Wk05IDlhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAxIDB2LTNBLjUuNSAwIDAgMCA5IDlabTEuOTggNi4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMy41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFVc2FnZVNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFVc2FnZVNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjJhNS41IDUuNSAwIDAgMC0zIDBWNi41YS41LjUgMCAwIDAtMSAwdjMuMWE1LjUgNS41IDAgMCAwLTIuNSAyLjZ2LTEuN2EuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgLjUyLjUgNS41IDUuNSAwIDAgMCAuNTggM0g1YTMgMyAwIDAgMS0zLTNWNlptMy41IDJhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNVptNi41NyAzLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVVzYWdlU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFVc2FnZVNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNC42YTUuNSA1LjUgMCAwIDEtLjQtMUg1YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjAyYTUuNSA1LjUgMCAwIDEgMSAuMTlWNmEzIDMgMCAwIDAtMy0zSDVabTQuMDIgMTFhNS41IDUuNSAwIDAgMSAuNDgtMS44di0xLjdhLjUuNSAwIDAgMC0xIDB2M2EuNS41IDAgMCAwIC41Mi41Wm0zLjM4LTQuNTguNi0uMjFWNi41YS41LjUgMCAwIDAtMSAwdjMuMWMuMTMtLjA2LjI2LS4xMy40LS4xOFpNNS41IDhhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNVptNi41NyAzLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVVzYWdlVG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhVXNhZ2VUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNXYtMi41YzAtLjE3LjAyLS4zNC4wNS0uNUg5YS41LjUgMCAwIDEtLjUtLjV2LTNhLjUuNSAwIDAgMSAxIDBWMTJjLjM3LS41LjkxLS44NCAxLjU0LS45NkEyLjUgMi41IDAgMCAxIDEyIDkuNXYtNGEuNS41IDAgMCAxIDEgMHYzLjU1Yy4xNi0uMDMuMzMtLjA1LjUtLjA1aDJjLjE3IDAgLjM0LjAyLjUuMDVWNGEyIDIgMCAwIDAtMi0ySDRabTEgNS41YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDB2LTVabTcgNC41di0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA0LjVoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxNmgydi41YS41LjUgMCAwIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDAgMCAxIDBWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhVXNhZ2VUb29sYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhVXNhZ2VUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDlhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAuNTUuNWMuMDgtLjM3LjIzLS43MS40NS0xVjkuNUEuNS41IDAgMCAwIDkgOVptLTUgNmg1djFINGEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjUuMDVhMi41MSAyLjUxIDAgMCAwLS41LS4wNUgxNVY0YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFabTktOS41djMuNTVjLS4zNy4wNy0uNy4yMy0xIC40NXYtNGEuNS41IDAgMCAxIDEgMFptLTggMmEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwdi01Wm03IDQuNXYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNC41aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVdhdGVyZmFsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhV2F0ZXJmYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEgMy41YzAtLjI4LjIyLS41LjUtLjVIN2EyIDIgMCAwIDEgMiAydjQuNWg2YzEuMDQgMCAyIC43NCAyIDEuOFYxNmgxLjVhLjUuNSAwIDAgMSAwIDFIMTNjLTEuMDQgMC0yLS43NC0yLTEuOHYtNC43SDVhMiAyIDAgMCAxLTItMlY0SDEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YVdhdGVyZmFsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVdhdGVyZmFsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMSAzLjVjMC0uMjguMjItLjUuNS0uNUg3YTIgMiAwIDAgMSAyIDJ2NC41aDZjMS4wNCAwIDIgLjc0IDIgMS44VjE2aDEuNWEuNS41IDAgMCAxIDAgMUgxM2MtMS4wNCAwLTItLjc0LTItMS44di00LjdINWEyIDIgMCAwIDEtMi0yVjRIMS41YS41LjUgMCAwIDEtLjUtLjVaTTQgNHY0LjVhMSAxIDAgMCAwIDEgMWgzVjVhMSAxIDAgMCAwLTEtMUg0Wm0xMiAxMnYtNC43YzAtLjM4LS4zOC0uOC0xLS44aC0zdjQuN2MwIC4zOC4zOC44IDEgLjhoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFXaGlza2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFXaGlza2VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEuNS41IDAgMCAwIDAgMWgxdjFoLS41QzQuNjcgNCA0IDQuNjcgNCA1LjVWMTBoNVY1LjVDOSA0LjY3IDguMzMgNCA3LjUgNEg3VjNoMWEuNS41IDAgMCAwIDAtMUg1Wm03IDJhLjUuNSAwIDAgMCAwIDFoMXYxaC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWOWg1VjcuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTRWNWgxYS41LjUgMCAwIDAgMC0xaC0zWk00LjUgMTUuNWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDd2LTFoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjExSDR2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDZ2MUg1YS41LjUgMCAwIDAtLjUuNVpNMTIgMThhLjUuNSAwIDAgMSAwLTFoMXYtMWgtLjVhMS41IDEuNSAwIDAgMS0xLjUtMS41VjEwaDV2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNHYxaDFhLjUuNSAwIDAgMSAwIDFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhV2hpc2tlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YVdoaXNrZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMmEuNS41IDAgMCAwIDAgMWgxdjFoLS41QzQuNjcgNCA0IDQuNjcgNCA1LjV2N2MwIC44My42NyAxLjUgMS41IDEuNUg2djFINWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xSDd2LTFoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di03QzkgNC42NyA4LjMzIDQgNy41IDRIN1YzaDFhLjUuNSAwIDAgMCAwLTFINVptMCAxMC41VjExaDN2MS41YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41Wm0wLTdjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNVYxMEg1VjUuNVpNMTIgNGEuNS41IDAgMCAwIDAgMWgxdjFoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aC41djFoLTFhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtMXYtMWguNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE0VjVoMWEuNS41IDAgMCAwIDAtMWgtM1ptMyA1aC0zVjcuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41VjlabS0zIDFoM3Y0LjVhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjVWMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhYmFzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA4YzMuMzEgMCA2LTEuMzQgNi0zcy0yLjY5LTMtNi0zLTYgMS4zNC02IDMgMi42OSAzIDYgM1ptNC42OS4wMmMuNDctLjI0LjkzLS41NCAxLjMxLS45VjE1YzAgMS42Ni0yLjY5IDMtNiAzcy02LTEuMzQtNi0zVjcuMTJjLjM4LjM2Ljg0LjY2IDEuMzEuOUM2LjU2IDguNjQgOC4yMiA5IDEwIDljMS43OCAwIDMuNDQtLjM2IDQuNjktLjk4WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDVjMC0xIC44OC0xLjc2IDEuOS0yLjIyQzYuOTggMi4yOCA4LjQzIDIgMTAgMmMxLjU3IDAgMy4wMi4yOSA0LjEuNzhDMTUuMTIgMy4yNCAxNiAzLjk5IDE2IDV2MTBjMCAxLS44OCAxLjc2LTEuOSAyLjIyLTEuMDguNS0yLjUzLjc4LTQuMS43OC0xLjU3IDAtMy4wMi0uMjktNC4xLS43OEM0Ljg4IDE2Ljc2IDQgMTYuMDEgNCAxNVY1Wm0xIDBjMCAuMzcuMzYuODggMS4zMiAxLjMxLjkxLjQyIDIuMjIuNjkgMy42OC42OXMyLjc3LS4yNyAzLjY4LS42OUMxNC42NCA1Ljg4IDE1IDUuMzcgMTUgNWMwLS4zNy0uMzYtLjg4LTEuMzItMS4zMUE5LjE5IDkuMTkgMCAwIDAgMTAgM2MtMS40NiAwLTIuNzcuMjctMy42OC42OUM1LjM2IDQuMTIgNSA0LjYzIDUgNVptMTAgMS43Yy0uMjcuMi0uNTguMzgtLjkuNTItMS4wOC41LTIuNTMuNzgtNC4xLjc4LTEuNTcgMC0zLjAyLS4yOS00LjEtLjc4QTQuOTIgNC45MiAwIDAgMSA1IDYuN1YxNWMwIC4zNy4zNi44OCAxLjMyIDEuMzEuOTEuNDIgMi4yMi42OSAzLjY4LjY5czIuNzctLjI3IDMuNjgtLjY5Yy45Ni0uNDMgMS4zMi0uOTQgMS4zMi0xLjMxVjYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlQXJyb3dEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlQXJyb3dEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDhjMy4zMSAwIDYtMS4zNCA2LTNzLTIuNjktMy02LTMtNiAxLjM0LTYgMyAyLjY5IDMgNiAzWm00LjY5LjAyYy40Ny0uMjQuOTMtLjU0IDEuMzEtLjl2Mi4wOUE1LjUgNS41IDAgMCAwIDEwLjI2IDE4SDEwYy0zLjMxIDAtNi0xLjM0LTYtM1Y3LjEyYy4zOC4zNi44NC42NiAxLjMxLjlDNi41NiA4LjY0IDguMjIgOSAxMCA5YzEuNzggMCAzLjQ0LS4zNiA0LjY5LS45OFpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUgMi4zNWEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNSAxNS4yOVYxMi41YS41LjUgMCAwIDAtMSAwdjIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhYmFzZUFycm93RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VBcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEgLjg4LTEuNzYgMS45LTIuMjIgMS4zLS41NCAyLjctLjggNC4xLS43OCAxLjQtLjAzIDIuOC4yNCA0LjEuNzhDMTUuMTMgMy4yNCAxNiAzLjk5IDE2IDV2NC4yYy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNi43Yy0uMjguMi0uNTguMzgtLjkuNTItMS4zLjU0LTIuNy44LTQuMS43OC0xLjQuMDMtMi44LS4yNC00LjEtLjc4QTQuOTIgNC45MiAwIDAgMSA1IDYuN1YxNWMwIC4zNy4zNi44NyAxLjMyIDEuMzFBOS4yIDkuMiAwIDAgMCA5LjYgMTdjLjE4LjM2LjQuNy42NiAxSDEwYy0xLjQuMDMtMi44LS4yNC00LjEtLjc4QzQuODcgMTYuNzUgNCAxNi4wMSA0IDE1VjVabTEgMGMwIC4zNy4zNi44NyAxLjMyIDEuMzFBOS4yIDkuMiAwIDAgMCAxMCA3YTkuMiA5LjIgMCAwIDAgMy42OC0uNjlDMTQuNjQgNS44NyAxNSA1LjM3IDE1IDVjMC0uMzctLjM2LS44OC0xLjMyLTEuMzFBOS4yIDkuMiAwIDAgMCAxMCAzYTkuMiA5LjIgMCAwIDAtMy42OC42OUM1LjM2IDQuMTIgNSA0LjYzIDUgNVptMTQgOS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDE1IDE1LjI5VjEyLjVhLjUuNSAwIDAgMC0xIDB2Mi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZUFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgOGMzLjMxIDAgNi0xLjM0IDYtM3MtMi42OS0zLTYtMy02IDEuMzQtNiAzIDIuNjkgMyA2IDNabTQuNjkuMDJjLjQ3LS4yNC45My0uNTQgMS4zMS0uOXYyLjA5QTUuNSA1LjUgMCAwIDAgMTAuMjYgMThIMTBjLTMuMzEgMC02LTEuMzQtNi0zVjcuMTJjLjM4LjM2Ljg0LjY2IDEuMzEuOUM2LjU2IDguNjQgOC4yMiA5IDEwIDljMS43OCAwIDMuNDQtLjM2IDQuNjktLjk4Wk0xNC41IDEwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDVjMC0xIC44OC0xLjc2IDEuOS0yLjIyIDEuMy0uNTQgMi43LS44IDQuMS0uNzggMS40LS4wMyAyLjguMjQgNC4xLjc4QzE1LjEzIDMuMjQgMTYgMy45OSAxNiA1djQuMmMtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjYuN2MtLjI4LjItLjU4LjM4LS45LjUyLTEuMy41NC0yLjcuOC00LjEuNzgtMS40LjAzLTIuOC0uMjQtNC4xLS43OEE0LjkyIDQuOTIgMCAwIDEgNSA2LjdWMTVjMCAuMzcuMzYuODcgMS4zMiAxLjMxQTkuMiA5LjIgMCAwIDAgOS42IDE3Yy4xOC4zNi40LjcuNjYgMUgxMGMtMS40LjAzLTIuOC0uMjQtNC4xLS43OEM0Ljg3IDE2Ljc1IDQgMTYuMDEgNCAxNVY1Wm0xIDBjMCAuMzcuMzYuODcgMS4zMiAxLjMxQTkuMiA5LjIgMCAwIDAgMTAgN2E5LjIgOS4yIDAgMCAwIDMuNjgtLjY5QzE0LjY0IDUuODcgMTUgNS4zNyAxNSA1YzAtLjM3LS4zNi0uODgtMS4zMi0xLjMxQTkuMiA5LjIgMCAwIDAgMTAgM2E5LjIgOS4yIDAgMCAwLTMuNjguNjlDNS4zNiA0LjEyIDUgNC42MyA1IDVabTkuNSA1YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlQXJyb3dVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZUFycm93VXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgOGMzLjMxIDAgNi0xLjM0IDYtM3MtMi42OS0zLTYtMy02IDEuMzQtNiAzIDIuNjkgMyA2IDNabTQuNjkuMDJjLjQ3LS4yNC45My0uNTQgMS4zMS0uOXYyLjA5QTUuNSA1LjUgMCAwIDAgMTAuMjYgMThIMTBjLTMuMzEgMC02LTEuMzQtNi0zVjcuMTJjLjM4LjM2Ljg0LjY2IDEuMzEuOUM2LjU2IDguNjQgOC4yMiA5IDEwIDljMS43OCAwIDMuNDQtLjM2IDQuNjktLjk4Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWm00Ljg1LTIuMzVhLjUuNSAwIDAgMC0uMzUtLjE1LjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMCAwIC43LjdMMTQgMTMuNzF2Mi43OWEuNS41IDAgMCAwIDEgMHYtMi44bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhYmFzZUFycm93VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlQXJyb3dVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YzAtMSAuODgtMS43NiAxLjktMi4yMiAxLjMtLjU0IDIuNy0uOCA0LjEtLjc4IDEuNC0uMDMgMi44LjI0IDQuMS43OEMxNS4xMyAzLjI0IDE2IDMuOTkgMTYgNXY0LjJjLS4zMi0uMDgtLjY2LS4xNS0xLS4xOFY2LjdjLS4yOC4yLS41OC4zOC0uOS41Mi0xLjMuNTQtMi43LjgtNC4xLjc4LTEuNC4wMy0yLjgtLjI0LTQuMS0uNzhBNC45MiA0LjkyIDAgMCAxIDUgNi43VjE1YzAgLjM3LjM2Ljg3IDEuMzIgMS4zMUE5LjIgOS4yIDAgMCAwIDkuNiAxN2MuMTguMzYuNC43LjY2IDFIMTBjLTEuNC4wMy0yLjgtLjI0LTQuMS0uNzhDNC44NyAxNi43NSA0IDE2LjAxIDQgMTVWNVptMSAwYzAgLjM3LjM2Ljg3IDEuMzIgMS4zMUE5LjIgOS4yIDAgMCAwIDEwIDdhOS4yIDkuMiAwIDAgMCAzLjY4LS42OUMxNC42NCA1Ljg3IDE1IDUuMzcgMTUgNWMwLS4zNy0uMzYtLjg4LTEuMzItMS4zMUE5LjIgOS4yIDAgMCAwIDEwIDNhOS4yIDkuMiAwIDAgMC0zLjY4LjY5QzUuMzYgNC4xMiA1IDQuNjMgNSA1Wm01IDkuNWE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFptNC44NS0yLjM1YS41LjUgMCAwIDAtLjM1LS4xNS41LjUgMCAwIDAtLjM1LjE1bC0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDEzLjcxdjIuNzlhLjUuNSAwIDAgMCAxIDB2LTIuOGwxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VMaWdodG5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VMaWdodG5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgOGMzLjMxIDAgNi0xLjM0IDYtM3MtMi42OS0zLTYtMy02IDEuMzQtNiAzIDIuNjkgMyA2IDNabTQuNjkuMDJjLjQ3LS4yNC45My0uNTQgMS4zMS0uOVY5aC0xLjkyYy0uNiAwLTEuMTUuMzYtMS4zOC45MmwtMi4wOCA1QTEuNSAxLjUgMCAwIDAgMTIgMTdoLjQ3bC0uMi43OGMtLjcuMTQtMS40Ni4yMi0yLjI3LjIyLTMuMzEgMC02LTEuMzQtNi0zVjcuMTJjLjM4LjM2Ljg0LjY2IDEuMzEuOUM2LjU2IDguNjQgOC4yMiA5IDEwIDljMS43OCAwIDMuNDQtLjM2IDQuNjktLjk4Wk0xMy4xMSAxNmMuMzMgMCAuNTcuMy40OS42MmwtLjQ0IDEuNzRjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLS40YS41LjUgMCAwIDEtLjQ4LS42NmwuNTYtMS42OGEuNS41IDAgMCAwLS40Ny0uNjZoLTMuNDdhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdoMS4xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlTGlnaHRuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZUxpZ2h0bmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YzAtMSAuODgtMS43NiAxLjktMi4yMiAxLjMtLjU0IDIuNy0uOCA0LjEtLjc4IDEuNC0uMDMgMi44LjI0IDQuMS43OEMxNS4xMyAzLjI0IDE2IDMuOTkgMTYgNXY0aC0xVjYuN2MtLjI4LjItLjU4LjM4LS45LjUyLTEuMy41NC0yLjcuOC00LjEuNzgtMS40LjAzLTIuOC0uMjQtNC4xLS43OEE0LjkyIDQuOTIgMCAwIDEgNSA2LjdWMTVjMCAuMzcuMzYuODcgMS4zMiAxLjMxQTkuMiA5LjIgMCAwIDAgMTAgMTdjLjUuMDEgMS0uMDIgMS40OS0uMDkuMTUuMDYuMzMuMDkuNTEuMDloLjQ3bC0uMi43OWMtLjc0LjE1LTEuNS4yMi0yLjI3LjIxLTEuNC4wMy0yLjgtLjI0LTQuMS0uNzhDNC44NyAxNi43NSA0IDE2LjAxIDQgMTVWNVptMSAwYzAgLjM3LjM2Ljg3IDEuMzIgMS4zMUE5LjIgOS4yIDAgMCAwIDEwIDdhOS4yIDkuMiAwIDAgMCAzLjY4LS42OUMxNC42NCA1Ljg3IDE1IDUuMzcgMTUgNWMwLS4zNy0uMzYtLjg4LTEuMzItMS4zMUE5LjIgOS4yIDAgMCAwIDEwIDNhOS4yIDkuMiAwIDAgMC0zLjY4LjY5QzUuMzYgNC4xMiA1IDQuNjMgNSA1Wm04LjExIDExYy4zMyAwIC41Ny4zLjQ5LjYybC0uNDQgMS43NGMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtLjRhLjUuNSAwIDAgMS0uNDgtLjY2bC41Ni0xLjY4YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40N2EuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN2gxLjExWlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlTGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA4YzMuMzEgMCA2LTEuMzQgNi0zcy0yLjY5LTMtNi0zLTYgMS4zNC02IDMgMi42OSAzIDYgM1ptNC42OS4wMmMuNDctLjI0LjkzLS41NCAxLjMxLS45VjExaC0zLjVhMy41IDMuNSAwIDAgMC0uODggNi44OWMtLjUxLjA3LTEuMDYuMTEtMS42Mi4xMS0zLjMxIDAtNi0xLjM0LTYtM1Y3LjEyYy4zOC4zNi44NC42NiAxLjMxLjlDNi41NiA4LjY0IDguMjIgOSAxMCA5YzEuNzggMCAzLjQ0LS4zNiA0LjY5LS45OFpNMTIuNSAxMmEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZUxpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEgLjg4LTEuNzYgMS45LTIuMjJDNi45OCAyLjI4IDguNDMgMiAxMCAyYzEuNTcgMCAzLjAyLjI5IDQuMS43OEMxNS4xMiAzLjI0IDE2IDMuOTkgMTYgNXY2aC0xVjYuN2MtLjI3LjItLjU4LjM4LS45LjUyLTEuMDguNS0yLjUzLjc4LTQuMS43OC0xLjU3IDAtMy4wMi0uMjktNC4xLS43OEE0LjkyIDQuOTIgMCAwIDEgNSA2LjdWMTVjMCAuMzcuMzYuODggMS4zMiAxLjMxLjkxLjQyIDIuMjIuNjkgMy42OC42OWguMDVjLjQzLjQzLjk4Ljc0IDEuNTkuOS0uNTMuMDYtMS4wNy4xLTEuNjQuMS0xLjU3IDAtMy4wMi0uMjktNC4xLS43OEM0Ljg4IDE2Ljc2IDQgMTYuMDEgNCAxNVY1Wm0xIDBjMCAuMzcuMzYuODggMS4zMiAxLjMxLjkxLjQyIDIuMjIuNjkgMy42OC42OXMyLjc3LS4yNyAzLjY4LS42OUMxNC42NCA1Ljg4IDE1IDUuMzcgMTUgNWMwLS4zNy0uMzYtLjg4LTEuMzItMS4zMUE5LjE5IDkuMTkgMCAwIDAgMTAgM2MtMS40NiAwLTIuNzcuMjctMy42OC42OUM1LjM2IDQuMTIgNSA0LjYzIDUgNVptNy41IDdhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA0YzAgMS42Ni0yLjY5IDMtNiAzUzYgNS42NiA2IDRzMi42OS0zIDYtMyA2IDEuMzQgNiAzWm0wIDIuMTJjLS4zOC4zNi0uODQuNjYtMS4zMS45LTEuMjUuNjItMi45MS45OC00LjY5Ljk4LS42MiAwLTEuMjMtLjA0LTEuODEtLjEzLjkzLjUzIDEuNzIgMS4zNCAxLjggMi40NEgxMnY2LjE5YzAgLjE3LS4wMi4zNC0uMDUuNUgxMmMzLjMxIDAgNi0xLjM0IDYtM1Y2LjEyWm0tMTAuNjkuOS4wNS4wMkE5LjA4IDkuMDggMCAwIDAgNiA3LjAxdi0uODljLjM4LjM2Ljg0LjY2IDEuMzEuOVpNOSA4LjQyQTcuODYgNy44NiAwIDAgMCA2LjUgOEM0LjAxIDggMiA5LjEyIDIgMTAuNVM0LjAxIDEzIDYuNSAxM3M0LjUtMS4xMiA0LjUtMi41YzAtLjg3LS44LTEuNjMtMi0yLjA4Wm0xLjE3IDQuNzJjLTEgLjU1LTIuMjkuODYtMy42Ny44NnMtMi42OC0uMy0zLjY3LS44NmMtLjI5LS4xNi0uNTgtLjM2LS44My0uNTl2My45NUMyIDE3Ljg4IDQuMDEgMTkgNi41IDE5czQuNS0xLjEyIDQuNS0yLjV2LTMuOTVjLS4yNS4yMy0uNTQuNDMtLjgzLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhYmFzZU11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZU11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjkgMS43OEM2Ljg4IDIuMjQgNiAyLjk5IDYgNHYzLjAxYTkuMTYgOS4xNiAwIDAgMSAxIDBWNS43Yy4yNy4yLjU4LjM4LjkuNTIgMS4wOC41IDIuNTMuNzggNC4xLjc4IDEuNTcgMCAzLjAyLS4yOSA0LjEtLjc4LjMyLS4xNC42My0uMzIuOS0uNTJWMTRjMCAuMzctLjM2Ljg4LTEuMzIgMS4zMS0uOTEuNDItMi4yMi42OS0zLjY4LjY5di41YzAgLjE3LS4wMi4zNC0uMDUuNUgxMmMxLjU3IDAgMy4wMi0uMjkgNC4xLS43OCAxLjAyLS40NiAxLjktMS4yMSAxLjktMi4yMlY0YzAtMS0uODgtMS43Ni0xLjktMi4yMkExMC4xNyAxMC4xNyAwIDAgMCAxMiAxYy0xLjU3IDAtMy4wMi4yOS00LjEuNzhabS40MiAzLjUzQzcuMzYgNC44OCA3IDQuMzcgNyA0YzAtLjM3LjM2LS44OCAxLjMyLTEuMzFBOS4xOSA5LjE5IDAgMCAxIDEyIDJjMS40NiAwIDIuNzcuMjcgMy42OC42OS45Ni40MyAxLjMyLjk0IDEuMzIgMS4zMSAwIC4zNy0uMzYuODgtMS4zMiAxLjMxLS45MS40Mi0yLjIyLjY5LTMuNjguNjlhOS4xOSA5LjE5IDAgMCAxLTMuNjgtLjY5Wk03IDguMDFhNy42OCA3LjY4IDAgMCAxIDIgLjQxYzEuMi40NSAyIDEuMjEgMiAyLjA4IDAgMS4zOC0yLjAxIDIuNS00LjUgMi41UzIgMTEuODggMiAxMC41YzAtMS4yOSAxLjc1LTIuMzUgNC0yLjQ4YTguMTYgOC4xNiAwIDAgMSAxIDBabTMuOTMgOC45NEMxMC41NCAxOC4xMiA4LjcgMTkgNi41IDE5IDQuMDEgMTkgMiAxNy44OCAyIDE2LjV2LTMuOTVjLjI1LjIzLjU0LjQzLjgzLjYgMSAuNTQgMi4yOS44NSAzLjY3Ljg1czIuNjgtLjMgMy42Ny0uODZjLjI5LS4xNi41OC0uMzYuODMtLjU5djMuOTVjMCAuMTUtLjAzLjMtLjA3LjQ1WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgNWMwIDEuNjYtMi42OSAzLTYgM1M0IDYuNjYgNCA1czIuNjktMyA2LTMgNiAxLjM0IDYgM1ptLTEuMzEgMy4wMmMuMjgtLjE0LjU1LS4zLjgxLS40OSAwIC44MS0uNyAxLjQ0LTEuNDEgMS44MmEzIDMgMCAwIDAtLjgyIDQuNjZBMi41IDIuNSAwIDAgMCAxMSAxNi41YzAgLjQ5LjEuOTcuMzMgMS40My0uNDMuMDQtLjg3LjA3LTEuMzMuMDctMy4zMSAwLTYtMS4zNC02LTNWNy4xMmMuMzguMzYuODQuNjYgMS4zMS45QzYuNTYgOC42NCA4LjIyIDkgMTAgOWMxLjc4IDAgMy40NC0uMzYgNC42OS0uOThaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZVBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YzAtMSAuODgtMS43NiAxLjktMi4yMkM2Ljk4IDIuMjggOC40MyAyIDEwIDJjMS41NyAwIDMuMDIuMjkgNC4xLjc4QzE1LjEyIDMuMjQgMTYgMy45OSAxNiA1djQuMDRhMy4wMiAzLjAyIDAgMCAwLTEgMFY2LjdjLS4yNy4yLS41OC4zOC0uOS41Mi0xLjA4LjUtMi41My43OC00LjEuNzgtMS41NyAwLTMuMDItLjI5LTQuMS0uNzhBNC45MiA0LjkyIDAgMCAxIDUgNi43VjE1YzAgLjM3LjM2Ljg4IDEuMzIgMS4zMS45MS40MiAyLjIyLjY5IDMuNjguNjkuMzUgMCAuNy0uMDIgMS4wMy0uMDUuMDUuMzQuMTUuNjcuMy45OC0uNDMuMDUtLjg3LjA3LTEuMzMuMDctMS41NyAwLTMuMDItLjI5LTQuMS0uNzhDNC44OCAxNi43NiA0IDE2LjAxIDQgMTVWNVptMSAwYzAgLjM3LjM2Ljg4IDEuMzIgMS4zMS45MS40MiAyLjIyLjY5IDMuNjguNjlzMi43Ny0uMjcgMy42OC0uNjlDMTQuNjQgNS44OCAxNSA1LjM3IDE1IDVjMC0uMzctLjM2LS44OC0xLjMyLTEuMzFBOS4xOSA5LjE5IDAgMCAwIDEwIDNjLTEuNDYgMC0yLjc3LjI3LTMuNjguNjlDNS4zNiA0LjEyIDUgNC42MyA1IDVabTEyLjUgN2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VQbHVnQ29ubmVjdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlUGx1Z0Nvbm5lY3RlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA4YzMuMzEgMCA2LTEuMzQgNi0zcy0yLjY5LTMtNi0zLTYgMS4zNC02IDMgMi42OSAzIDYgM1ptNC42OS4wMmMuNDctLjI0LjkzLS41NCAxLjMxLS45djIuOTlhMi45NyAyLjk3IDAgMCAwLTEuODcuODZsLS42LjZhMS45OCAxLjk4IDAgMCAwLS41OCAxLjUyIDEuOTUgMS45NSAwIDAgMC0xLjUyLjU4bC0uNi42YTIuOTkgMi45OSAwIDAgMC0uNzcgMi45bC0uNzYuNzUtLjA1LjA2QzYuMyAxNy43OSA0IDE2LjUzIDQgMTVWNy4xMmMuMzguMzYuODQuNjYgMS4zMS45QzYuNTYgOC42NCA4LjIyIDkgMTAgOWMxLjc4IDAgMy40NC0uMzYgNC42OS0uOThabTQuNSAyLjgzYS41LjUgMCAxIDAtLjctLjdsLTEuMTkgMS4xOGEuNjQuNjQgMCAwIDAtLjAzLjA1IDIgMiAwIDAgMC0yLjQ0LjNsLS42LjZhLjk4Ljk4IDAgMCAwIDAgMS40bDEuNDUgMS40M2EuOTguOTggMCAwIDAgMS4zOCAwbC42LS42YTIgMiAwIDAgMCAuMy0yLjQ0LjM2LjM2IDAgMCAwIC4wNi0uMDNsMS4xOC0xLjE5Wm0tNS42NiAzLjUzYS45OC45OCAwIDAgMC0xLjM5IDBsLS42LjZhMiAyIDAgMCAwLS4zIDIuNDMuNDIuNDIgMCAwIDAtLjA1LjA0TDEwIDE4LjYzYS41LjUgMCAwIDAgLjcuN2wxLjE5LTEuMThhLjUuNSAwIDAgMCAuMDMtLjA1IDIgMiAwIDAgMCAyLjQ0LS4zbC42LS42YS45OC45OCAwIDAgMCAwLTEuMzlsLTEuNDQtMS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlUGx1Z0Nvbm5lY3RlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VQbHVnQ29ubmVjdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDVjMC0xIC44OC0xLjc2IDEuOS0yLjIyIDEuMy0uNTQgMi43LS44IDQuMS0uNzggMS40LS4wMyAyLjguMjQgNC4xLjc4QzE1LjEzIDMuMjQgMTYgMy45OSAxNiA1djUuMWEyLjk3IDIuOTcgMCAwIDAtMSAuMjdWNi43Yy0uMjguMi0uNTguMzgtLjkuNTItMS4zLjU0LTIuNy44LTQuMS43OC0xLjQuMDMtMi44LS4yNC00LjEtLjc4QTQuOTIgNC45MiAwIDAgMSA1IDYuN1YxNWMwIC4zNy4zNi44NyAxLjMyIDEuMzFBOS4yIDkuMiAwIDAgMCAxMCAxN2guMDJhMyAzIDAgMCAwIC4wNC4xNmwtLjc2Ljc3YTEuNSAxLjUgMCAwIDAtLjA2LjA2IDEwLjE4IDEwLjE4IDAgMCAxLTMuMzQtLjc3QzQuODcgMTYuNzUgNCAxNi4wMSA0IDE1VjVabTEgMGMwIC4zNy4zNi44NyAxLjMyIDEuMzFBOS4yIDkuMiAwIDAgMCAxMCA3YTkuMiA5LjIgMCAwIDAgMy42OC0uNjlDMTQuNjQgNS44NyAxNSA1LjM3IDE1IDVjMC0uMzctLjM2LS44OC0xLjMyLTEuMzFBOS4yIDkuMiAwIDAgMCAxMCAzYTkuMiA5LjIgMCAwIDAtMy42OC42OUM1LjM2IDQuMTIgNSA0LjYzIDUgNVptMTQuMiA1Ljg1YS41LjUgMCAxIDAtLjctLjdsLTEuMiAxLjE4YS42NC42NCAwIDAgMC0uMDMuMDUgMiAyIDAgMCAwLTIuNDQuM2wtLjYuNmEuOTguOTggMCAwIDAgMCAxLjRsMS40NSAxLjQzYS45OC45OCAwIDAgMCAxLjM4IDBsLjYtLjZhMiAyIDAgMCAwIC4zLTIuNDQuMzYuMzYgMCAwIDAgLjA2LS4wM2wxLjE4LTEuMTlabS01LjY3IDMuNTNhLjk4Ljk4IDAgMCAwLTEuMzkgMGwtLjYuNmEyIDIgMCAwIDAtLjMgMi40My40Mi40MiAwIDAgMC0uMDUuMDRMMTAgMTguNjNhLjUuNSAwIDAgMCAuNy43bDEuMTktMS4xOGEuNS41IDAgMCAwIC4wMy0uMDUgMiAyIDAgMCAwIDIuNDQtLjNsLjYtLjZhLjk4Ljk4IDAgMCAwIDAtMS4zOWwtMS40NC0xLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgOGMzLjMxIDAgNi0xLjM0IDYtM3MtMi42OS0zLTYtMy02IDEuMzQtNiAzIDIuNjkgMyA2IDNabTQuNjkuMDJjLjQ3LS4yNC45My0uNTQgMS4zMS0uOXYyLjY0YTQuNSA0LjUgMCAxIDAtMy44MyA4LjA0Yy0uNjguMTMtMS40LjItMi4xNy4yLTMuMzEgMC02LTEuMzQtNi0zVjcuMTJjLjM4LjM2Ljg0LjY2IDEuMzEuOUM2LjU2IDguNjQgOC4yMiA5IDEwIDljMS43OCAwIDMuNDQtLjM2IDQuNjktLjk4Wk0xMy41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0wxNi4zIDE1LjZhMy41IDMuNSAwIDEgMC0yLjggMS40Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhYmFzZVNlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEgLjg4LTEuNzYgMS45LTIuMjJDNi45OCAyLjI4IDguNDMgMiAxMCAyYzEuNTcgMCAzLjAyLjI5IDQuMS43OEMxNS4xMiAzLjI0IDE2IDMuOTkgMTYgNXY0Ljc2Yy0uMy0uMi0uNjQtLjM4LTEtLjVWNi43Yy0uMjcuMi0uNTguMzgtLjkuNTItMS4wOC41LTIuNTMuNzgtNC4xLjc4LTEuNTcgMC0zLjAyLS4yOS00LjEtLjc4QTQuOTIgNC45MiAwIDAgMSA1IDYuN1YxNWMwIC4zNy4zNi44OCAxLjMyIDEuMzFhOS4xOSA5LjE5IDAgMCAwIDQuMzMuNjdjLjQ1LjM3Ljk3LjY1IDEuNTMuODItLjY4LjEzLTEuNDEuMi0yLjE4LjItMS41NyAwLTMuMDItLjI5LTQuMS0uNzhDNC44OCAxNi43NiA0IDE2LjAxIDQgMTVWNVptMSAwYzAgLjM3LjM2Ljg4IDEuMzIgMS4zMS45MS40MiAyLjIyLjY5IDMuNjguNjlzMi43Ny0uMjcgMy42OC0uNjlDMTQuNjQgNS44OCAxNSA1LjM3IDE1IDVjMC0uMzctLjM2LS44OC0xLjMyLTEuMzFBOS4xOSA5LjE5IDAgMCAwIDEwIDNjLTEuNDYgMC0yLjc3LjI3LTMuNjguNjlDNS4zNiA0LjEyIDUgNC42MyA1IDVabTguNSAxMmMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMMTYuMyAxNS42YTMuNSAzLjUgMCAxIDAtMi44IDEuNFptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VTd2l0Y2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGF0YWJhc2VTd2l0Y2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuODUgMTguODVhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMCAxIC44MS4xNi41LjUgMCAwIDEtLjEuNTRMMTAuNyAxNmg1LjU4bC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuMTYtLjgxLjUuNSAwIDAgMSAuNTQuMWwyIDJhLjUuNSAwIDAgMSAwIC43MWwtMiAyYS41LjUgMCAwIDEtLjgxLS4xNi41LjUgMCAwIDEgLjEtLjU0TDE2LjMgMTdoLTUuNThsMS4xNCAxLjE1YS41LjUgMCAwIDEgMCAuN1pNMTAgOGMzLjMxIDAgNi0xLjM0IDYtM3MtMi42OS0zLTYtMy02IDEuMzQtNiAzIDIuNjkgMyA2IDNabS0xLjU2IDkuNTZhMS41IDEuNSAwIDAgMSAwLTIuMTJsMi0yYTEuNSAxLjUgMCAwIDEgMi4xMiAwIDEuNSAxLjUgMCAwIDEgLjM1IDEuNTZoMS4xOEExLjUgMS41IDAgMCAxIDE2IDEzLjFWNy4xMWE0LjkzIDQuOTMgMCAwIDEtMS4zMS45Yy0uMzMuMTYtLjY2LjMtMS4wMS40Mi0xLjE5LjM4LTIuNDMuNTctMy42OC41Ni0xLjI1LjAxLTIuNS0uMTgtMy42OC0uNTdhOC4xNSA4LjE1IDAgMCAxLTEuNy0uODEgNC45MyA0LjkzIDAgMCAxLS42Mi0uNVYxNWMwIDEuNDUgMi4wNyAyLjY2IDQuODEgMi45M2wtLjM3LS4zN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlU3dpdGNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZVN3aXRjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC40NCAxNy41NmMtLjItLjItLjMyLS40Ni0uMzgtLjczLS42LS4xLTEuMTgtLjI3LTEuNzQtLjUyQzUuMzYgMTUuODcgNSAxNS4zNyA1IDE1VjYuN2MuMjguMi41OC4zOC45LjUyIDEuMy41NCAyLjcuOCA0LjEuNzggMS40LjAzIDIuOC0uMjQgNC4xLS43OC4zMi0uMTQuNjItLjMxLjktLjUydjYuNGMuMzItLjEzLjY4LS4xMyAxIDBWNWMwLTEtLjg4LTEuNzYtMS45LTIuMjItMS4zLS41NC0yLjctLjgtNC4xLS43OC0xLjQtLjAzLTIuOC4yNC00LjEuNzhDNC44NyAzLjI0IDQgMy45OSA0IDV2MTBjMCAxIC44OCAxLjc1IDEuOSAyLjIyLjkzLjQgMS45MS42NCAyLjkyLjcybC0uMzgtLjM4Wk02LjMyIDMuN0E5LjIgOS4yIDAgMCAxIDEwIDNhOS4yIDkuMiAwIDAgMSAzLjY4LjY5QzE0LjY0IDQuMTIgMTUgNC42MyAxNSA1YzAgLjM3LS4zNi44Ny0xLjMyIDEuMzFBOS4yIDkuMiAwIDAgMSAxMCA3YTkuMiA5LjIgMCAwIDEtMy42OC0uNjlDNS4zNiA1Ljg3IDUgNS4zNyA1IDVjMC0uMzcuMzYtLjg4IDEuMzItMS4zMVptNS41MyAxNS4xNmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYS41LjUgMCAwIDEgLjcuN0wxMC43MSAxNmg1LjU4bC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAwIC43bC0yIDJhLjUuNSAwIDEgMS0uNy0uN0wxNi4yOSAxN2gtNS41OGwxLjE0IDEuMTVhLjUuNSAwIDAgMSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgRGF0YWJhc2VXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlV2FybmluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiA1YzAgMS42Ni0yLjY5IDMtNiAzUzQgNi42NiA0IDVzMi42OS0zIDYtMyA2IDEuMzQgNiAzWm0tMS4zMSAzLjAyLjMxLS4xN3YuMjFjLS41My4xNC0xIC40OC0xLjI5IDEuMDVsLTMuNSA3Yy0uMzEuNjQtLjI1IDEuMzQuMDYgMS44OUgxMGMtMy4zMSAwLTYtMS4zNC02LTNWNy4xMmMuMzguMzYuODQuNjYgMS4zMS45QzYuNTYgOC42NCA4LjIyIDkgMTAgOWMxLjc4IDAgMy40NC0uMzYgNC42OS0uOThabS0uMDkgMS41My0zLjUgN0ExIDEgMCAwIDAgMTIgMThoN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNiAxMS41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEYXRhYmFzZVdhcm5pbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlV2FybmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YzAtMSAuODgtMS43NiAxLjktMi4yMiAxLjMtLjU0IDIuNy0uOCA0LjEtLjc4IDEuNC0uMDMgMi44LjI0IDQuMS43OEMxNS4xMyAzLjI0IDE2IDMuOTkgMTYgNXYzLjA2YTIuMDUgMi4wNSAwIDAgMC0xIDBWNi43Yy0uMjguMi0uNTguMzgtLjkuNTItMS4zLjU0LTIuNy44LTQuMS43OC0xLjQuMDMtMi44LS4yNC00LjEtLjc4QTQuOTIgNC45MiAwIDAgMSA1IDYuN1YxNWMwIC4zNy4zNi44NyAxLjMyIDEuMzFBOS4yIDkuMiAwIDAgMCAxMCAxN2MwIC4zNi4xLjcuMjggMUgxMGMtMS40LjAzLTIuOC0uMjQtNC4xLS43OEM0Ljg3IDE2Ljc1IDQgMTYuMDEgNCAxNVY1Wm0xIDBjMCAuMzcuMzYuODcgMS4zMiAxLjMxQTkuMiA5LjIgMCAwIDAgMTAgN2E5LjIgOS4yIDAgMCAwIDMuNjgtLjY5QzE0LjY0IDUuODcgMTUgNS4zNyAxNSA1YzAtLjM3LS4zNi0uODgtMS4zMi0xLjMxQTkuMiA5LjIgMCAwIDAgMTAgM2E5LjIgOS4yIDAgMCAwLTMuNjguNjlDNS4zNiA0LjEyIDUgNC42MyA1IDVabTkuNiA0LjU1LTMuNSA3QTEgMSAwIDAgMCAxMiAxOGg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE2IDExLjV2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMSAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlV2luZG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RhdGFiYXNlV2luZG93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDhjMy4zMSAwIDYtMS4zNCA2LTNzLTIuNjktMy02LTMtNiAxLjM0LTYgMyAyLjY5IDMgNiAzWm00LjY5LjAyYy40Ny0uMjQuOTMtLjU0IDEuMzEtLjlWOWgtNC41QTIuNSAyLjUgMCAwIDAgOSAxMS41djZjMCAuMTYuMDEuMzEuMDQuNDZDNi4xOCAxNy43MyA0IDE2LjUgNCAxNVY3LjEyYy4zOC4zNi44NC42NiAxLjMxLjlDNi41NiA4LjY0IDguMjIgOSAxMCA5YzEuNzggMCAzLjQ0LS4zNiA0LjY5LS45OFpNMTAgMTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg2Yy44MyAwIDEuNS42NyAxLjUgMS41di41aC05di0uNVptMCAxLjVoOXY0LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERhdGFiYXNlV2luZG93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEYXRhYmFzZVdpbmRvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YzAtMSAuODgtMS43NiAxLjktMi4yMkM2Ljk4IDIuMjggOC40MyAyIDEwIDJjMS41NyAwIDMuMDIuMjkgNC4xLjc4QzE1LjEyIDMuMjQgMTYgMy45OSAxNiA1djRoLTFWNi43Yy0uMjcuMi0uNTguMzgtLjkuNTItMS4wOC41LTIuNTMuNzgtNC4xLjc4LTEuNTcgMC0zLjAyLS4yOS00LjEtLjc4QTQuOTIgNC45MiAwIDAgMSA1IDYuN1YxNWMwIC4zNy4zNi44OCAxLjMyIDEuMzEuNy4zMiAxLjYzLjU1IDIuNjguNjV2LjU0YzAgLjE2LjAxLjMxLjA0LjQ2YTkuNDcgOS40NyAwIDAgMS0zLjE0LS43NEM0Ljg4IDE2Ljc2IDQgMTYuMDEgNCAxNVY1Wm0xIDBjMCAuMzcuMzYuODggMS4zMiAxLjMxLjkxLjQyIDIuMjIuNjkgMy42OC42OXMyLjc3LS4yNyAzLjY4LS42OUMxNC42NCA1Ljg4IDE1IDUuMzcgMTUgNWMwLS4zNy0uMzYtLjg4LTEuMzItMS4zMUE5LjE5IDkuMTkgMCAwIDAgMTAgM2MtMS40NiAwLTIuNzcuMjctMy42OC42OUM1LjM2IDQuMTIgNSA0LjYzIDUgNVptNSA2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWgtOXYtLjVabTAgMS41aDl2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWNpbWFsQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlY2ltYWxBcnJvd0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDNBMi41IDIuNSAwIDAgMCA2IDUuNXY0YTIuNSAyLjUgMCAwIDAgNSAwdi00QTIuNSAyLjUgMCAwIDAgOC41IDNabS0xIDIuNWExIDEgMCAwIDEgMiAwdjRhMSAxIDAgMSAxLTIgMHYtNFpNMyAxMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEyLjUtOUEyLjUgMi41IDAgMCAwIDEzIDUuNXYzLjdjLjQ4LS4xMy45OC0uMiAxLjUtLjJWNS41YTEgMSAwIDEgMSAyIDB2My44N2MuNTEuMi45OC40OCAxLjQuODEuMDctLjIyLjEtLjQ0LjEtLjY4di00QTIuNSAyLjUgMCAwIDAgMTUuNSAzWm0tMSAxNmE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLTIuMzUtNC44NWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVjaW1hbEFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVjaW1hbEFycm93TGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDNBMi41IDIuNSAwIDAgMCA2IDUuNXY0YTIuNSAyLjUgMCAwIDAgNSAwdi00QTIuNSAyLjUgMCAwIDAgOC41IDNaTTcgNS41YTEuNSAxLjUgMCAxIDEgMyAwdjRhMS41IDEuNSAwIDAgMS0zIDB2LTRaTTMgMTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xMi41LTlBMi41IDIuNSAwIDAgMCAxMyA1LjV2My43Yy4zMi0uMDguNjYtLjE1IDEtLjE4VjUuNWExLjUgMS41IDAgMCAxIDMgMHY0LjFjLjMyLjE2LjYyLjM2LjkuNTguMDctLjIyLjEtLjQ0LjEtLjY4di00QTIuNSAyLjUgMCAwIDAgMTUuNSAzWm0tMSAxNmE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLTIuMzUtNC44NWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVjaW1hbEFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVjaW1hbEFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDNBMi41IDIuNSAwIDAgMCA2IDUuNXY0YTIuNSAyLjUgMCAwIDAgNSAwdi00QTIuNSAyLjUgMCAwIDAgOC41IDNabS0xIDIuNWExIDEgMCAwIDEgMiAwdjRhMSAxIDAgMSAxLTIgMHYtNFpNMyAxMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEyLjUtOUEyLjUgMi41IDAgMCAwIDEzIDUuNXYzLjdjLjQ4LS4xMy45OC0uMiAxLjUtLjJWNS41YTEgMSAwIDEgMSAyIDB2My44N2MuNTEuMi45OC40OCAxLjQuODEuMDctLjIyLjEtLjQ0LjEtLjY4di00QTIuNSAyLjUgMCAwIDAgMTUuNSAzWm0tMSA3YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlY2ltYWxBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZWNpbWFsQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDNBMi41IDIuNSAwIDAgMCA2IDUuNXY0YTIuNSAyLjUgMCAwIDAgNSAwdi00QTIuNSAyLjUgMCAwIDAgOC41IDNaTTcgNS41YTEuNSAxLjUgMCAxIDEgMyAwdjRhMS41IDEuNSAwIDAgMS0zIDB2LTRaTTMgMTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xMi41LTlBMi41IDIuNSAwIDAgMCAxMyA1LjV2My43Yy4zMi0uMDguNjYtLjE1IDEtLjE4VjUuNWExLjUgMS41IDAgMCAxIDMgMHY0LjFjLjMyLjE2LjYyLjM2LjkuNTguMDctLjIyLjEtLjQ0LjEtLjY4di00QTIuNSAyLjUgMCAwIDAgMTUuNSAzWm0tMSA3YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlbGV0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZWxldGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDRoM2ExLjUgMS41IDAgMCAwLTMgMFptLTEgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1bC0xLjIgMTAuMzRBMyAzIDAgMCAxIDEyLjI3IDE4SDcuNzNhMyAzIDAgMCAxLTIuOTgtMi42NkwzLjU1IDVIMi41YS41LjUgMCAwIDEgMC0xaDVaTTkgOGEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwVjhabTIuNS0uNWEuNS41IDAgMCAwLS41LjV2NmEuNS41IDAgMCAwIDEgMFY4YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWxldGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlbGV0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDRoM2ExLjUgMS41IDAgMCAwLTMgMFptLTEgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1bC0xLjIgMTAuMzRBMyAzIDAgMCAxIDEyLjI3IDE4SDcuNzNhMyAzIDAgMCAxLTIuOTgtMi42NkwzLjU1IDVIMi41YS41LjUgMCAwIDEgMC0xaDVaTTUuNzQgMTUuMjNBMiAyIDAgMCAwIDcuNzMgMTdoNC41NGEyIDIgMCAwIDAgMS45OS0xLjc3TDE1LjQ0IDVINC41NmwxLjE4IDEwLjIzWk04LjUgNy41Yy4yOCAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtMSAwVjhjMC0uMjguMjItLjUuNS0uNVpNMTIgOGEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwVjhaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWxldGVBcnJvd0JhY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVsZXRlQXJyb3dCYWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgNGExLjUgMS41IDAgMCAwLTMgMGgzWm0tNCAwYTIuNSAyLjUgMCAwIDEgNSAwaDVhLjUuNSAwIDAgMSAwIDFoLTEuMDVsLS40OSA0LjJhNS41IDUuNSAwIDAgMC01LjcgOC44SDcuNzNhMyAzIDAgMCAxLTIuOTgtMi42NkwzLjU1IDVIMi41YS41LjUgMCAwIDEgMC0xaDVabTcgMTVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWxldGVBcnJvd0JhY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlbGV0ZUFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA0YTEuNSAxLjUgMCAwIDAtMyAwaDNabS00IDBhMi41IDIuNSAwIDAgMSA1IDBoNWEuNS41IDAgMCAxIDAgMWgtMS4wNWwtLjQ5IDQuMmE1LjQ4IDUuNDggMCAwIDAtLjk4LS4xOEwxNS40NCA1SDQuNTZsMS4xOCAxMC4yM0EyIDIgMCAwIDAgNy43MyAxN0g5LjZjLjE4LjM2LjQuNy42NiAxSDcuNzNhMyAzIDAgMCAxLTIuOTgtMi42NkwzLjU1IDVIMi41YS41LjUgMCAwIDEgMC0xaDVabTcgMTVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWxldGVEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlbGV0ZURpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuNSA0YTEuNSAxLjUgMCAwIDAtMyAwaDNabS00IDBhMi41IDIuNSAwIDAgMSA1IDBoNWEuNS41IDAgMCAxIDAgMWgtMS4wNWwtLjQ5IDQuMmE1LjUgNS41IDAgMCAwLTUuNyA4LjhINy43M2EzIDMgMCAwIDEtMi45OC0yLjY2TDMuNTUgNUgyLjVhLjUuNSAwIDAgMSAwLTFoNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWxldGVEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZWxldGVEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS41IDRhMS41IDEuNSAwIDAgMC0zIDBoM1ptLTQgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1bC0uNDkgNC4yYTUuNDggNS40OCAwIDAgMC0uOTgtLjE4TDE1LjQ0IDVINC41NmwxLjE4IDEwLjIzQTIgMiAwIDAgMCA3LjczIDE3SDkuNmMuMTguMzYuNC43LjY2IDFINy43M2EzIDMgMCAwIDEtMi45OC0yLjY2TDMuNTUgNUgyLjVhLjUuNSAwIDAgMSAwLTFoNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZWxldGVMaW5lc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZWxldGVMaW5lc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMS41IDRhMS41IDEuNSAwIDAgMC0zIDBoM1ptLTQgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1bC0uODEgN0gxMS41YTEuNSAxLjUgMCAwIDAtMS4xMiAyLjUgMS41IDEuNSAwIDAgMCAwIDIgMS41IDEuNSAwIDAgMC0uMyAxLjVINy43NGEzIDMgMCAwIDEtMi45OC0yLjY2TDMuNTUgNUgyLjVhLjUuNSAwIDAgMSAwLTFoNVptNCA5YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlbGV0ZUxpbmVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZWxldGVMaW5lc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA0YTEuNSAxLjUgMCAwIDAtMyAwaDNabS00IDBhMi41IDIuNSAwIDAgMSA1IDBoNWEuNS41IDAgMCAxIDAgMWgtMS4wNWwtLjgxIDdoLTFsLjgtN0g0LjU2bDEuMTggMTAuMjNBMiAyIDAgMCAwIDcuNzMgMTdoMi4zNmExLjUgMS41IDAgMCAwIDAgMUg3LjczYTMgMyAwIDAgMS0yLjk4LTIuNjZMMy41NSA1SDIuNWEuNS41IDAgMCAxIDAtMWg1Wm00IDlhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02WlwiXSk7XG5leHBvcnQgY29uc3QgRGVsZXRlT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlbGV0ZU9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjMgNCAyLjE0IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLTItMkEzIDMgMCAwIDEgMTIuMjcgMThINy43M2EzIDMgMCAwIDEtMi45OC0yLjY2TDMuNTUgNUgyLjVhLjUuNSAwIDAgMSAwLTFoLjhabTguNyA4LjctMS0xVjE0YS41LjUgMCAwIDAgMSAwdi0xLjNabS0zLTMtMS0xVjE0YS41LjUgMCAwIDAgMSAwVjkuN1pNMTIgOHYxLjg4bDMuNDggMy40OC45Ny04LjM2aDEuMDVhLjUuNSAwIDAgMCAwLTFoLTVhMi41IDIuNSAwIDAgMC01IDBINi4xMkwxMSA4Ljg4VjhhLjUuNSAwIDAgMSAxIDBabS0uNS00aC0zYTEuNSAxLjUgMCAxIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGVsZXRlT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZWxldGVPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuMyA0IDIuMTQgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtMi0yQTMgMyAwIDAgMSAxMi4yNyAxOEg3LjczYTMgMyAwIDAgMS0yLjk4LTIuNjZMMy41NSA1SDIuNWEuNS41IDAgMCAxIDAtMWguOFptMTAuOTkgMTFMMTIgMTIuN1YxNGEuNS41IDAgMCAxLTEgMHYtMi4zbC0yLTJWMTRhLjUuNSAwIDAgMS0xIDBWOC43TDQuNiA1LjNsMS4xNCA5LjkzQTIgMiAwIDAgMCA3LjczIDE3aDQuNTRhMiAyIDAgMCAwIDEuOTktMS43N2wuMDMtLjI0Wk0xMSA4Ljg3bDEgMVY4YS41LjUgMCAwIDAtMSAwdi44OFpNMTUuNDQgNWwtLjg2IDcuNDYuOS45Ljk3LTguMzZoMS4wNWEuNS41IDAgMCAwIDAtMWgtNWEyLjUgMi41IDAgMCAwLTUgMEg2LjEybDEgMWg4LjMyWk0xMS41IDRoLTNhMS41IDEuNSAwIDEgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEZW50aXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlbnRpc3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC45NCAzLjkzYTMuNDYgMy40NiAwIDAgMC0yLjktLjc0Yy0uOTIuMTgtMS43My42OS0yLjI2IDEuMjdhNC4xIDQuMSAwIDAgMC0xLjI0IDIuN2MtLjAzLjYuMDYgMS40Ny41MyAyLjEzYTUgNSAwIDAgMSAxLjEyIDMuMTVjMCAuNjUuMTQgMS41My40NiAyLjM0LjMyLjguODcgMS42IDEuNzcgMS45NGguMDJsLjAzLjAxYy41Mi4xNCAxIC4xIDEuMzgtLjI1LjMyLS4zLjQ2LS43Ni41My0xLjE2LjA3LS4zOC4xLS44Mi4xNC0xLjI1bC4wMS0uMTVhMTIgMTIgMCAwIDEgLjE4LTEuNDRjLjI3LTEuMjcuNjUtMS41LjgzLTEuNTUuNDktLjEzLjc4LS4wNC45Ny4xLjI4LjIuNDkuNjEuNjQgMS4yMi4xNC42LjIgMS4yNy4yNSAxLjg4LjA3Ljg3LjI1IDEuNjUuNiAyLjE2LjE4LjI2LjQ0LjQ5Ljc5LjU2LjM1LjA4LjY5LS4wMy45OS0uMjIgMS4xLS43IDEuNzQtMi4xNyAxLjkxLTQuMS4wOC0uODguMTctMS4zLjMtMS42NC4xLS4yNS4yMi0uNDYuNDItLjhhMzkuMjMgMzkuMjMgMCAwIDAgLjM2LS42M2MuMjUtLjQzLjY1LTEuMjMuNy0yLjE2YTMuNDggMy40OCAwIDAgMC0xLjQ0LTIuOTYgNC40IDQuNCAwIDAgMC0zLjAxLTEuMTZjLS45LjA1LTEuNjIuNDYtMi4xMy45aC0uMDFsLS4wMS4wMmMtLjUuNDktLjczLjU4LS44OC41Ny0uMTcgMC0uNDUtLjE0LTEuMDEtLjdsLS4wMi0uMDItLjAyLS4wMlptNCAxLjY3Yy40OCAwIC45OC4xNSAxLjM4LjUuNC4zNS42NC44Ny43IDEuNTJhLjUuNSAwIDEgMS0xIC4xYy0uMDMtLjQ1LS4xOS0uNzItLjM3LS44OGExLjA2IDEuMDYgMCAwIDAtLjcxLS4yNC41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRGVudGlzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVudGlzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuOTQgNS42YS41LjUgMCAwIDAgMCAxYy4yOSAwIC41My4wOC43MS4yNC4xOC4xNi4zNC40My4zOC44N2EuNS41IDAgMSAwIDEtLjA5IDIuMjUgMi4yNSAwIDAgMC0uNzEtMS41MmMtLjQtLjM1LS45LS41LTEuMzgtLjVabS00LTEuNjdhMy40NiAzLjQ2IDAgMCAwLTIuOS0uNzRjLS45Mi4xOC0xLjczLjY5LTIuMjYgMS4yN2E0LjEgNC4xIDAgMCAwLTEuMjQgMi43Yy0uMDMuNi4wNiAxLjQ3LjUzIDIuMTNhNSA1IDAgMCAxIDEuMTIgMy4xNWMwIC42NS4xNCAxLjUzLjQ2IDIuMzQuMzIuOC44NyAxLjYgMS43NyAxLjk0aC4wMmwuMDMuMDFjLjUyLjE0IDEgLjEgMS4zOC0uMjUuMzItLjMuNDYtLjc2LjUzLTEuMTYuMDctLjM4LjEtLjgyLjE0LTEuMjVsLjAxLS4xNWExMiAxMiAwIDAgMSAuMTgtMS40NGMuMjctMS4yNy42NS0xLjUuODMtMS41NS40OS0uMTMuNzgtLjA0Ljk3LjEuMjguMi40OS42MS42NCAxLjIyLjE0LjYuMiAxLjI3LjI1IDEuODguMDcuODcuMjUgMS42NS42IDIuMTYuMTguMjYuNDQuNDkuNzkuNTYuMzUuMDguNjktLjAzLjk5LS4yMiAxLjEtLjcgMS43NC0yLjE3IDEuOTEtNC4xLjA4LS44OC4xNy0xLjMuMy0xLjY0LjEtLjI1LjIyLS40Ni40Mi0uOGEzOS4yMyAzOS4yMyAwIDAgMCAuMzYtLjYzYy4yNS0uNDMuNjUtMS4yMy43LTIuMTZhMy40OCAzLjQ4IDAgMCAwLTEuNDQtMi45NiA0LjQgNC40IDAgMCAwLTMuMDEtMS4xNmMtLjkuMDUtMS42Mi40Ni0yLjEzLjloLS4wMWwtLjAxLjAyYy0uNS40OS0uNzMuNTgtLjg4LjU3LS4xNyAwLS40NS0uMTQtMS4wMS0uN2wtLjAyLS4wMi0uMDItLjAyWm0tNC40MyAxLjJjLjQtLjQzIDEuMDMtLjgyIDEuNzItLjk2YTIuNDUgMi40NSAwIDAgMSAyLjA2LjUyYy41NC41NCAxLjA2Ljk2IDEuNjUuOTguNjIuMDMgMS4xMy0uMzcgMS42MS0uODQuNC0uMzQuOTEtLjYyIDEuNTItLjY1LjYxLS4wMyAxLjM5LjE3IDIuMzMuOTQuODkuNzIgMS4xIDEuNDggMS4wNiAyLjEzLS4wMy43LS4zMyAxLjMyLS41NiAxLjcybC0uMTIuMi0uMi4zNmMtLjIxLjM2LS40LjY2LS41MiAxLS4xOC40Ny0uMjggMS0uMzYgMS45LS4xNyAxLjgyLS43NSAyLjktMS40NiAzLjM2LS4xNi4xLS4yMy4wOS0uMjUuMDgtLjAxIDAtLjA4LS4wMi0uMTctLjE1LS4yLS4yOC0uMzYtLjg1LS40My0xLjY3di0uMDJjLS4wNS0uNi0uMS0xLjM0LS4yNy0yLjAxLS4xNi0uNjctLjQ0LTEuMzgtMS4wMi0xLjgtLjQ5LS4zNS0xLjEtLjQ0LTEuODItLjI2aC0uMDFjLS43My4yMi0xLjI0LjkyLTEuNTMgMi4zMi0uMTEuNTItLjE2IDEuMDctLjIgMS41NmwtLjAyLjE1Yy0uMDMuNDQtLjA2LjgyLS4xMiAxLjE0LS4wNy4zNy0uMTYuNTUtLjI0LjYyLS4wMy4wMy0uMTEuMS0uNDEuMDItLjUtLjItLjktLjctMS4xNy0xLjM3YTUuNyA1LjcgMCAwIDEtLjQtMS45NyA1Ljk4IDUuOTggMCAwIDAtMS4zLTMuNzIgMi42IDIuNiAwIDAgMS0uMzUtMS41MWMuMDQtLjg3LjQ1LTEuNDguOTgtMi4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2lnbklkZWFzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2lnbklkZWFzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNC41Yy0uNzUgMC0xLjQ0LjI0LTIuMDEuNjRhMy41OSAzLjU5IDAgMCAwLS40MS0xLjUyQTUgNSAwIDAgMSAxNCA4aDIuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNS41QzkuNzggMTcgOSAxNi4yMiA5IDE1LjI1VjEzYy0uNzIgMC0xLjQtLjE1LTIuMDItLjQyTDcgMTEuNVYxMC44N2MuNTYuNCAxLjI2LjYzIDIgLjYzVjkuNzVDOSA4Ljc4IDkuNzggOCAxMC43NSA4aDEuNzVBMy41IDMuNSAwIDAgMCA5IDQuNVptNC43NyA1YTUuMDEgNS4wMSAwIDAgMS0zLjI3IDMuMjd2Mi40OGMwIC4xNC4xMS4yNS4yNS4yNWg1LjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTUuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMi40OFptLTEuNiAwaC0xLjQyYS4yNS4yNSAwIDAgMC0uMjUuMjV2MS40MWEzLjUxIDMuNTEgMCAwIDAgMS42Ni0xLjY2Wk00LjU3IDIuMTNhLjUuNSAwIDAgMSAuMTIuNmwtLjAxLjA4YzAgLjA3LjAxLjE5LjE2LjM0bC4yLjE4LjE2LjE2Yy4xMy4xMi4yNy4yNy40LjQ1LjI1LjM4LjM5Ljg2LjM5IDEuNTYgMCAuODUtLjMyIDEuNTgtLjggMi4wM2wuMDUuMDdjLjI5LjM0LjQ1Ljc5LjU1IDEuMjMuMi44Ny4yIDEuOTIuMiAyLjY0di4wM2MwIDIuNzktLjM4IDQuMzctLjggNS4yNy0uMi40Ni0uNDMuNzUtLjYyLjkzYTEuNDggMS40OCAwIDAgMS0uNC4yNlM0LjA5IDE4IDQgMThjLS4wNyAwLS4xOS0uMDQtLjE5LS4wNGEuNzUuNzUgMCAwIDEtLjEzLS4wNmMtLjA3LS4wNS0uMTYtLjEtLjI2LS4yLS4yLS4xOC0uNDEtLjQ3LS42Mi0uOTMtLjQyLS45LS44LTIuNDgtLjgtNS4yN3YtLjAzYzAtLjcyIDAtMS43Ny4yLTIuNjRhMy4wMiAzLjAyIDAgMCAxIC42LTEuM0MyLjMzIDcuMDggMiA2LjM1IDIgNS41YTQuNzMgNC43MyAwIDAgMSAuNjktMi4xQTQuMDcgNC4wNyAwIDAgMSAzLjkzIDIuMWwuMDQtLjAzYS41LjUgMCAwIDEgLjYxLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgRGVzaWduSWRlYXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2lnbklkZWFzUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDRjLS43NiAwLTEuNDguMjEtMi4wOC41OGEzLjMgMy4zIDAgMCAwLS4zNC0uOTZBNSA1IDAgMCAxIDE0IDhoMi41Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgOSAxNS41VjEzYy0uNzIgMC0xLjQtLjE1LTIuMDItLjQyTDcgMTEuNXYtLjA0Yy41OS4zNSAxLjI3LjU0IDIgLjU0VjkuNWMwLS44My42Ny0xLjUgMS41LTEuNUgxM2E0IDQgMCAwIDAtNC00Wm00LjkgNWE1IDUgMCAwIDEtMy45IDMuOXYyLjZjMCAuMjguMjIuNS41LjVoNmEuNS41IDAgMCAwIC41LS41di02YS41LjUgMCAwIDAtLjUtLjVoLTIuNlptLTEuMDMgMEgxMC41YS41LjUgMCAwIDAtLjUuNXYyLjM3QTQgNCAwIDAgMCAxMi44NyA5Wk00LjU4IDIuMTNhLjUuNSAwIDAgMSAuMTIuNmwtLjAxLjA4YzAgLjA3LjAxLjE5LjE2LjM0bC4yLjE4LjE2LjE2Yy4xMy4xMi4yNy4yNy40LjQ1LjI1LjM4LjM5Ljg2LjM5IDEuNTYgMCAuODUtLjMyIDEuNTgtLjggMi4wM2wuMDUuMDdjLjI5LjM0LjQ1Ljc5LjU1IDEuMjMuMi44Ny4yIDEuOTIuMiAyLjY0di4wM2MwIDIuNzktLjM4IDQuMzctLjggNS4yNy0uMi40Ni0uNDMuNzUtLjYyLjkzYTEuNDggMS40OCAwIDAgMS0uNC4yNlM0LjA5IDE4IDQgMThjLS4wNyAwLS4xOS0uMDQtLjE5LS4wNGEuNzUuNzUgMCAwIDEtLjEzLS4wNmMtLjA3LS4wNS0uMTYtLjEtLjI2LS4yLS4yLS4xOC0uNDEtLjQ3LS42Mi0uOTMtLjQyLS45LS44LTIuNDgtLjgtNS4yN3YtLjAzYzAtLjcyIDAtMS43Ny4yLTIuNjRhMy4wMiAzLjAyIDAgMCAxIC42LTEuM0MyLjMzIDcuMDggMiA2LjM1IDIgNS41YTQuNzMgNC43MyAwIDAgMSAuNjktMi4xQTQuMDcgNC4wNyAwIDAgMSAzLjkzIDIuMWwuMDMtLjAyaC4wMWEuNS41IDAgMCAxIC42MS4wNFpNNCA3Yy4zOSAwIDEtLjQzIDEtMS41IDAtLjU1LS4xLS44Mi0uMjMtMS0uMDYtLjEtLjE0LS4yLS4yNS0uM2wtLjEyLS4xLS4yNS0uMjVhMS42NyAxLjY3IDAgMCAxLS4yOC0uMzYgMi41IDIuNSAwIDAgMC0uMzQuNDRBMy43MyAzLjczIDAgMCAwIDMgNS41QzMgNi41NyAzLjYyIDcgNCA3Wm0tLjQ4IDEuMjNjLS4xNC4xOC0uMjYuNDUtLjM1LjgyQzMgOS44IDMgMTAuNzUgMyAxMS41YzAgMi43MS4zNyA0LjEzLjcgNC44NS4xMS4yNC4yMi40LjMuNS4wOC0uMS4xOS0uMjYuMy0uNS4zMy0uNzIuNy0yLjE0LjctNC44NSAwLS43NiAwLTEuNy0uMTctMi40NS0uMS0uMzctLjItLjY0LS4zNS0uODJBLjU3LjU3IDAgMCAwIDQgOGEuNTcuNTcgMCAwIDAtLjQ4LjIzWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjFoMTV2OC41YS41LjUgMCAwIDAgMSAwVjZhMiAyIDAgMCAwLTItMkg0Wm02IDRIMnY2YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjhabS01LjUgMi41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjhoN3Y3LjVhLjUuNSAwIDAgMCAxIDBWNmEyIDIgMCAwIDAtMi0ySDRaTTMgOGg2djZhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWOFptMC0xVjZhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjFIM1ptMiAyLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg1WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAyQzIuNjcgMiAyIDIuNjcgMiAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTNaTTEyIDE1djJIOHYtMmg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2OWMwIDEuMS45IDIgMiAyaDN2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMUgxM3YtMmgzYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDRabTggMTN2Mkg4di0yaDRaTTMgNGExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2OWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQXJyb3dEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUgMi4zNWEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNSA2LjI5VjMuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnYzLjc2YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtMTBDMiAyLjY3IDIuNjcgMiAzLjUgMmg2Ljc2YTUuNSA1LjUgMCAwIDAgNC4yNCA5Wk0xMiAxNUg4djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BBcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUgMi4zNWEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNSA2LjI5VjMuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWk0xNyAxM3YtMi42Yy4zNi0uMTguNy0uNCAxLS42NlYxM2EyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg2LjI2Yy0uMjYuMy0uNDguNjQtLjY2IDFINGExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xWm0tNSAySDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNUEuNS41IDAgMCAwIDE3IDUuNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgNUgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di0xMEMyIDIuNjcgMi42NyAyIDMuNSAyaDYuNzZhNS41IDUuNSAwIDAgMCA0LjI0IDlaTTEyIDE3di0ySDh2Mmg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1QS41LjUgMCAwIDAgMTcgNS41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSA1SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpNMTcgMTN2LTIuNmMuMzYtLjE4LjctLjQgMS0uNjZWMTNhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNi4yNmMtLjI2LjMtLjQ4LjY0LS42NiAxSDRhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVptLTUgNHYtMkg4djJoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcENoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDEzLjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43Wk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnYzLjc2YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtMTBDMiAyLjY3IDIuNjcgMiAzLjUgMmg2Ljc2YTUuNSA1LjUgMCAwIDAgNC4yNCA5Wk0xMiAxNUg4djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuODUtMS44NUwxMy41IDYuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdaTTE3IDEzdi0yLjZjLjM2LS4xOC43LS40IDEtLjY2VjEzYTIgMiAwIDAgMS0yIDJoLTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkg0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDYuMjZjLS4yNi4zLS40OC42NC0uNjYgMUg0YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFabS01IDJIOHYyaDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQ3Vyc29yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BDdXJzb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNUg3djJINS41YS41LjUgMCAwIDAgMCAxSDExdi0xSDh2LTJoM3YtNC41YTEuNSAxLjUgMCAwIDEgMi41Ni0xLjA3bDQuNCA0LjM3Yy4wMy0uMS4wNC0uMi4wNC0uM3YtMTBjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xM1ptOS4zNiA4LjE0YS41LjUgMCAwIDAtLjg2LjM2djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQ3Vyc29yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQ3Vyc29yUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnY5YzAgMS4xLjkgMiAyIDJoM3YySDUuNWEuNS41IDAgMCAwIDAgMUgxMXYtMUg4di0yaDN2LTFINGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjguODRsLjg3Ljg3QTIgMiAwIDAgMCAxOCAxM1Y0YTIgMiAwIDAgMC0yLTJINFptOC44NiA4LjE1YS41LjUgMCAwIDAtLjg2LjM1djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMC45OCA2LjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWm0tLjctLjcxTDEzLjkzIDJIMy41QzIuNjcgMiAyIDIuNjcgMiAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNi4wNmwtMy42NyAzLjY3Yy0uNC40LS45Mi43LTEuNDguODRsLTEuNS4zN2ExLjg5IDEuODkgMCAwIDEtMi4zLTIuMjlsLjM4LTEuNWEzLjIgMy4yIDAgMCAxIC44NC0xLjQ4Wk0xMiAxNXYySDh2LTJoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAuOTggNi4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpNMTcgMTNWNy4wNmwxLTFWMTNhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoOS45NGwtMSAxSDRhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVptLTUgMkg4djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BGbG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BGbG93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0IDIuNWMwLS4xOC4wMy0uMzQuMDktLjVIMy41QzIuNjcgMiAyIDIuNjcgMiAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWN2gtMi41YTEuNSAxLjUgMCAwIDEtMS4xLS40N2wtLjI1Ljc2QTIuNSAyLjUgMCAwIDEgMTIgOXYuNTFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zQTEuNSAxLjUgMCAwIDEgNiA5LjV2LTNDNiA1LjY3IDYuNjcgNSA3LjUgNWgzYy40MyAwIC44Mi4xOCAxLjEuNDdsLjI1LS43NkEyLjUgMi41IDAgMCAxIDE0IDNWMi41Wk0xMiAxNXYySDh2LTJoNFptMy41LTEzYS41LjUgMCAwIDAtLjUuNVY0aC0uNzhhMS41IDEuNSAwIDAgMC0xLjQyIDEuMDNsLS41NSAxLjYzYS41LjUgMCAwIDEtLjQ3LjM0SDExdi0uNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNVY4aC43OGExLjUgMS41IDAgMCAwIDEuNDItMS4wM2wuNTUtMS42M2EuNS41IDAgMCAxIC40Ny0uMzRIMTV2LjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wRmxvd1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEZsb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjA5IDJINGEyIDIgMCAwIDAtMiAydjljMCAxLjEuOSAyIDIgMmgzdjJINS41YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFIMTN2LTJoM2EyIDIgMCAwIDAgMi0yVjdoLTF2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTB2LS41YzAtLjE4LjAzLS4zNC4wOS0uNVpNMTIgMTdIOHYtMmg0djJabTMtMTQuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjVWNWgtLjc4YS41LjUgMCAwIDAtLjQ3LjM0bC0uNTUgMS42M0ExLjUgMS41IDAgMCAxIDExLjc4IDhIMTF2MS41YS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjVWN2guNzhhLjUuNSAwIDAgMCAuNDctLjM0bC41NS0xLjYzQTEuNSAxLjUgMCAwIDEgMTQuMjIgNEgxNVYyLjVaTTEwIDdIOHYyaDJWN1ptNi0yaDJWM2gtMnYyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEtleWJvYXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BLZXlib2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjcuMWEyLjc1IDIuNzUgMCAwIDAtLjc1LS4xaC01LjVBMi43NSAyLjc1IDAgMCAwIDkgMTMuNzV2My41YzAgLjI2LjA0LjUxLjEuNzVINi41YS41LjUgMCAwIDEgMC0xSDh2LTJINGEyIDIgMCAwIDEtMi0yVjRabTkuNzUgOGMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2My41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDUuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTMuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTUuNVptLjI1IDUuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUtMy41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWm0xLjUgMS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0uNS0xLjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFabTEuNSAxLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS41LTEuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BLZXlib2FyZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEtleWJvYXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjcuMWMtLjI0LS4wNi0uNDktLjEtLjc1LS4xSDE3VjRhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDV2My4yNWMwIC4yNi4wNC41MS4xLjc1SDYuNWEuNS41IDAgMCAxIDAtMUg4di0ySDRhMiAyIDAgMCAxLTItMlY0Wm05Ljc1IDhoNS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djMuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTUuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0zLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVabS4yNSA1LjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabS41LTMuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMS41IDEuNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFptLjUtMS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0xLjUgMS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0uNS0xLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wTWFjRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2OWMwIDEuMS45IDIgMiAyaDR2MWExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xSDEzYTEgMSAwIDAgMS0xLTF2LTFoNGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0Wk0zIDEzdi0xaDE0djFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFabTUuNzMgNEEyIDIgMCAwIDAgOSAxNnYtMWgydjFjMCAuMzYuMS43LjI3IDFIOC43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BNYWNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAyaC00djFhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMUg3YTEgMSAwIDAgMCAxLTF2LTFINGEyIDIgMCAwIDEtMi0yVjRabTEgOHYxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMUgzWm0xNC0xVjRhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2N2gxNFptLTUuNzMgNmEyIDIgMCAwIDEtLjI3LTF2LTFIOXYxYTIgMiAwIDAgMS0uMjcgMWgyLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0LjMgMTUgMi44NSAyLjg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAwIDAtLjcuN2MtLjEuMi0uMTUuNDItLjE1LjY1djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMUgxM3YtMmgxLjNabTMuNy0xLjVjMCAuNjQtLjQgMS4yLS45NyAxLjRMNC4xMyAySDE2LjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTBaTTEyIDE1djJIOHYtMmg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMi4yOCAyLjk4LS4xMy0uMTNhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTQuMjkgMTVIMTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgLjI4LTEuMDJaTTEzLjI5IDE0IDMuMDMgMy43NEExIDEgMCAwIDAgMyA0djlhMSAxIDAgMCAwIDEgMWg5LjNaTTE3IDEzYTEgMSAwIDAgMS0uODkgMWwuOC43OEEyIDIgMCAwIDAgMTggMTNWNGEyIDIgMCAwIDAtMi0ySDQuMTJsMSAxSDE2YTEgMSAwIDAgMSAxIDF2OVptLTUgMkg4djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BQdWxzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0aC0yLjU3bC0xLjA5LTIuMTdhMS41IDEuNSAwIDAgMC0yLjY4IDBMMTAuMzIgOC41IDguOTMgNC4wNWExLjUgMS41IDAgMCAwLTIuODItLjFMNC40OSA4SDJWNFptMTIuNSA3SDE4djJhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMnYtMmgzLjVhMS41IDEuNSAwIDAgMCAxLjQtLjk0bC40My0xLjA5IDEuMjQgMy45OGExLjUgMS41IDAgMCAwIDIuNzcuMjJMMTMgOS44NWwuMTYuMzJjLjI1LjUuNzcuODMgMS4zNC44M1pNMTIgMTd2LTJIOHYyaDRaTTcuOTggNC4zNWEuNS41IDAgMCAwLS45NC0uMDRMNS4xNiA5SDIuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjQ3LS4zMWwxLjQ3LTMuNyAyLjA4IDYuNjZhLjUuNSAwIDAgMCAuOTMuMDdMMTMgNy42MmwxLjA1IDIuMWEuNS41IDAgMCAwIC40NS4yOGgzYS41LjUgMCAwIDAgMC0xaC0yLjdsLTEuMzUtMi43MmEuNS41IDAgMCAwLS45IDBsLTIuNDQgNC44OS0yLjEzLTYuODJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wUHVsc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BQdWxzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2NGgxVjRhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjRoMVY0YTIgMiAwIDAgMC0yLTJINFpNMiAxM3YtMmgxdjJhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0yaDF2MmEyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0yWm0xMCAySDh2Mmg0di0yWk03Ljk4IDQuMzVhLjUuNSAwIDAgMC0uOTQtLjA0TDUuMTYgOUgyLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC40Ni0uMzFsMS40OC0zLjcgMi4wOCA2LjY2YS41LjUgMCAwIDAgLjkzLjA3TDEzIDcuNjJsMS4wNSAyLjFhLjUuNSAwIDAgMCAuNDUuMjhoM2EuNS41IDAgMSAwIDAtMWgtMi43bC0xLjM1LTIuNzJhLjUuNSAwIDAgMC0uOSAwbC0yLjQ0IDQuODktMi4xMy02LjgyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNpZ25hbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU2lnbmFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDFjLS4xOCAwLS4zNiAwLS41NC4wMmEuNS41IDAgMSAwIC4wOCAxTDEyIDJhNiA2IDAgMCAxIDUuOTggNi40Ni41LjUgMCAxIDAgMSAuMDhMMTkgOGE3IDcgMCAwIDAtNy03Wm0wIDJjLS4xOSAwLS4zNy4wMS0uNTUuMDNhLjUuNSAwIDAgMCAuMSAxTDEyIDRhNCA0IDAgMCAxIDMuOTggNC40NS41LjUgMCAxIDAgLjk5LjFBNSA1IDAgMCAwIDEyIDNabTAgMmMtLjIgMC0uNC4wMi0uNi4wNmEuNS41IDAgMCAwIC4yLjk4QTIuMDEgMi4wMSAwIDAgMSAxNCA4YzAgLjE0LS4wMS4yNy0uMDQuNGEuNS41IDAgMCAwIC45OC4yQTMuMDEgMy4wMSAwIDAgMCAxMiA1Wm0tMS45Mi0zSDMuNUMyLjY3IDIgMiAyLjY3IDIgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mkg1LjVhLjUuNSAwIDEgMCAwIDFoOWEuNS41IDAgMCAwIDAtMUgxM3YtMmgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjkuOTJhMS41IDEuNSAwIDAgMS0uNTItLjMgMS41IDEuNSAwIDAgMS0yLjAyLS4wMSAxLjUgMS41IDAgMCAxLTIuMTMtLjExIDIgMiAwIDAgMS0yLjgyLTIuODIgMS41IDEuNSAwIDAgMS0uMTItMi4xNCAxLjUgMS41IDAgMCAxIDAtMi4wMiAxLjUgMS41IDAgMCAxLS4zMS0uNTJaTTEyIDE1djJIOHYtMmg0Wm0xLTdhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNpZ25hbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNpZ25hbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgMWMtLjE4IDAtLjM2IDAtLjU0LjAyYS41LjUgMCAxIDAgLjA4IDFMMTIgMmE2IDYgMCAwIDEgNS45OCA2LjQ2LjUuNSAwIDEgMCAxIC4wOEwxOSA4YTcgNyAwIDAgMC03LTdabTAgMmMtLjE5IDAtLjM3LjAxLS41NS4wM2EuNS41IDAgMCAwIC4xIDFMMTIgNGE0IDQgMCAwIDEgMy45OCA0LjQ1LjUuNSAwIDEgMCAuOTkuMUE1IDUgMCAwIDAgMTIgM1ptMCAyYy0uMiAwLS40LjAyLS42LjA2YS41LjUgMCAwIDAgLjIuOThBMi4wMSAyLjAxIDAgMCAxIDE0IDhjMCAuMTQtLjAxLjI3LS4wNC40YS41LjUgMCAwIDAgLjk4LjJBMy4wMSAzLjAxIDAgMCAwIDEyIDVabS0xLjkyLTNINGEyIDIgMCAwIDAtMiAydjljMCAxLjEuOSAyIDIgMmgzdjJINS41YS41LjUgMCAxIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFIMTN2LTJoM2EyIDIgMCAwIDAgMi0yVjkuOTJhMS41IDEuNSAwIDAgMS0uNTItLjNjLS4xNC4xMi0uMy4yMi0uNDguMjhWMTNhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDYuMWMuMDYtLjE4LjE2LS4zNC4yOS0uNDhhMS41IDEuNSAwIDAgMS0uMzEtLjUyWk0xMiAxNXYySDh2LTJoNFptMS03YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BTcGVha2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BTcGVha2VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjY1IDEuMmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAxIDEgLjgtLjZabS0zLjk2LS4xNmMuMTkuMDguMzEuMjYuMzEuNDZ2NmEuNS41IDAgMCAxLS44NS4zNUwxMS4yOSA2aC0uNzlhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41aC44bDEuODUtMS44NWEuNS41IDAgMCAxIC41NC0uMTFabTIuNTMgMS45M2MtLjEtLjMtLjItLjU1LS4yNy0uN2EuNS41IDAgMSAwLS45LjQ1IDQuNTkgNC41OSAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDQgNS41IDUuNSAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI4LTEuNTNabS4xMyA1LjczYTEuNSAxLjUgMCAwIDEtLjUzLS43NCAxLjUgMS41IDAgMCAxLS44Ny0uMDcgMS41IDEuNSAwIDAgMS0yLjUxLjY3TDEwLjg4IDdoLS4zOEExLjUgMS41IDAgMCAxIDkgNS41di0yYzAtLjgzLjY3LTEuNSAxLjUtMS41aC4zOEgzLjVDMi42NyAyIDIgMi42NyAyIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNUg3djJINS41YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFIMTN2LTJoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4LjhjLS41LjI5LTEuMTUuMjctMS42NS0uMVpNMTIgMTV2Mkg4di0yaDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3BlYWtlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNwZWFrZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjY1IDEuMmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAxIDEgLjgtLjZabS0zLjk2LS4xNmMuMTkuMDguMzEuMjYuMzEuNDZ2NmEuNS41IDAgMCAxLS44NS4zNUwxMS4yOSA2aC0uNzlhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41aC44bDEuODUtMS44NWEuNS41IDAgMCAxIC41NC0uMTFabTIuNTMgMS45M2MtLjEtLjMtLjItLjU1LS4yNy0uN2EuNS41IDAgMSAwLS45LjQ1IDQuNTkgNC41OSAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDQgNS41IDUuNSAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI4LTEuNTNaTTE3IDEzVjguOThjLjM0LjA2LjcgMCAxLS4xOFYxM2EyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg2Ljg4LS4zOGMtLjY1IDAtMS4yLjQyLTEuNDEgMUg0YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFabS01IDJIOHYyaDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3BlYWtlck9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU3BlYWtlck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy43IDEuMDRjLjE4LjA4LjMuMjYuMy40NnY2YS41LjUgMCAwIDEtLjg1LjM1TDExLjI5IDZoLS43OWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoLjhsMS44NS0xLjg1YS41LjUgMCAwIDEgLjU0LS4xMVptMy45NS4xNmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAxIDEgLjgtLjZabS0xLjQzIDEuNzdjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjU5IDQuNTkgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWm0uMTMgNS43M2ExLjUgMS41IDAgMCAxLS41My0uNzQgMS41IDEuNSAwIDAgMS0uODctLjA3IDEuNSAxLjUgMCAwIDEtMi41MS42N0wxMC44OCA3aC0uMzhBMS41IDEuNSAwIDAgMSA5IDUuNXYtMmMwLS44My42Ny0xLjUgMS41LTEuNWguMzgtNi43NmwxMi45IDEyLjljLjU4LS4yLjk4LS43Ni45OC0xLjRWOC44Yy0uNS4yOS0xLjE1LjI3LTEuNjUtLjFaTTIuMTUgMi44NWEuNS41IDAgMCAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN0wxNC4yOSAxNUgxM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtMTBjMC0uMjMuMDUtLjQ1LjE1LS42NVpNMTIgMTVIOHYyaDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3BlYWtlck9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNwZWFrZXJPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjcgMS4wNGMuMTguMDguMy4yNi4zLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgNmgtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm0zLjk1LjE2Yy4xMi4xNi4yOS40NS40NC44Ny4yNi42OC40MSAxLjUuNDEgMi40MyAwIC45NC0uMTUgMS43NS0uNCAyLjQzLS4xNi40Mi0uMzMuNy0uNDUuODdhLjUuNSAwIDAgMS0uODUtLjUybC4xMi0uMTlhNS45IDUuOSAwIDAgMCAuNTgtMi42IDUuOSA1LjkgMCAwIDAtLjU4LTIuNThsLS4wNy0uMTFhLjUuNSAwIDEgMSAuOC0uNlptLTEuNDMgMS43N2MtLjEtLjMtLjItLjU1LS4yNy0uN2EuNS41IDAgMSAwLS45LjQ1IDQuNTkgNC41OSAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDQgNS41IDUuNSAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI4LTEuNTNaTTE3IDEzVjguOThjLjM0LjA2LjcgMCAxLS4xOFYxM2EyIDIgMCAwIDEtMS4xIDEuNzhsLS43OS0uNzlBMSAxIDAgMCAwIDE3IDEzWm0tMy43IDFMMy4wMiAzLjc0QTEgMSAwIDAgMCAzIDR2OWExIDEgMCAwIDAgMSAxaDkuM1ptMSAxSDEzdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIC4yOC0xLjAybC0uMTMtLjEzYS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43TDE0LjI5IDE1Wk00LjExIDJsMSAxSDkuMWMuMi0uNTguNzYtMSAxLjQxLTFoLjM4LTYuNzZaTTEyIDE1SDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFN5bmNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFN5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNS41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45OCAxLjk4IDAgMCAwLTEuNzItLjEgMiAyIDAgMCAwLS42Ni40NC41LjUgMCAxIDEtLjcxLS43MUEzIDMgMCAwIDEgMTYgMy4xNVYzYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgMTMgNy44NVY4YS41LjUgMCAwIDEtMSAwVjYuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45OCAxLjk4IDAgMCAwIDEuNzIuMSAyIDIgMCAwIDAgLjY2LS40NC41LjUgMCAxIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2My43NmMwIC44My0uNjcgMS41LTEuNSAxLjVIMTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkgzLjVBMS41IDEuNSAwIDAgMSAyIDEzLjV2LTEwQzIgMi42NyAyLjY3IDIgMy41IDJoNi43NmE1LjUgNS41IDAgMCAwIDQuMjQgOVpNMTIgMTVIOHYyaDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3luY1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFN5bmNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDUuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTggMS45OCAwIDAgMC0xLjcyLS4xIDIgMiAwIDAgMC0uNjYuNDQuNS41IDAgMSAxLS43MS0uNzFBMyAzIDAgMCAxIDE2IDMuMTVWM2MwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDEzIDcuODVWOGEuNS41IDAgMCAxLTEgMFY2LjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTggMS45OCAwIDAgMCAxLjcyLjEgMiAyIDAgMCAwIC42Ni0uNDQuNS41IDAgMSAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaTTE3IDEzdi0yLjZjLjM2LS4xOC43LS40IDEtLjY2VjEzYTIgMiAwIDAgMS0yIDJoLTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkg0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDYuMjZjLS4yNi4zLS40OC42NC0uNjYgMUg0YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFabS01IDJIOHYyaDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wVG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wVG9vbGJveEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMkMyLjY3IDIgMiAyLjY3IDIgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoMy41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41VjE3SDh2LTJoMXYtMS41YTIuNSAyLjUgMCAwIDEgMi4wNC0yLjQ2QTIuNSAyLjUgMCAwIDEgMTMuNSA5aDJhMi41IDIuNSAwIDAgMSAyLjQ2IDIuMDRsLjA0LjAxVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEzWk0xMiAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BUb29sYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wVG9vbGJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2OWMwIDEuMS45IDIgMiAyaDN2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoMy41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41VjE3SDh2LTJoMXYtMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2NS41Yy41LjM3Ljg0LjkxLjk2IDEuNTRsLjA0LjAxVjRhMiAyIDAgMCAwLTItMkg0Wm04IDEwdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFRvd2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BUb3dlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDIuMDlhMS41IDEuNSAwIDAgMSAxLjQxLTJIN2EzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM2gzYTIgMiAwIDAgMC0yLTJINFptMyAzYTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDJ2Mkg3LjVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMUgxNHYtMmgyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDdabTYgMTJoLTN2LTJoM3YyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFRvd2VyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wVG93ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMi4wOWExLjUgMS41IDAgMCAxIDAtMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMWgxYTIgMiAwIDAgMC0yLTJINFptMSA1YzAtMS4xLjktMiAyLTJoOWEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMmgtMnYyaDEuNWEuNS41IDAgMCAxIDAgMWgtOGEuNS41IDAgMCAxIDAtMUg5di0ySDdhMiAyIDAgMCAxLTItMlY3Wm01IDEwaDN2LTJoLTN2MlptNi0zYTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDEyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpNOCAyLjVhLjUuNSAwIDAgMC0xIDBWNGgtLjVBMi41IDIuNSAwIDAgMCA0IDYuNVY3SDIuNWEuNS41IDAgMCAwIDAgMUg0djEuNUgyLjVhLjUuNSAwIDAgMCAwIDFINFYxMkgyLjVhLjUuNSAwIDAgMCAwIDFINHYuNUEyLjUgMi41IDAgMCAwIDYuNSAxNkg3djEuNWEuNS41IDAgMCAwIDEgMFYxNmgxLjV2MS41YS41LjUgMCAwIDAgMSAwVjE2SDEydjEuNWEuNS41IDAgMCAwIDEgMFYxNmguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoMS41YS41LjUgMCAwIDAgMC0xSDE2di0xLjVoMS41YS41LjUgMCAwIDAgMC0xSDE2VjhoMS41YS41LjUgMCAwIDAgMC0xSDE2di0uNUEyLjUgMi41IDAgMCAwIDEzLjUgNEgxM1YyLjVhLjUuNSAwIDAgMC0xIDBWNGgtMS41VjIuNWEuNS41IDAgMCAwLTEgMFY0SDhWMi41Wm01IDcuNWEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZlbG9wZXJCb2FyZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2ZWxvcGVyQm9hcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDdhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02Wm0tMiAzYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFptLS41LThjLjI4IDAgLjUuMjIuNS41VjRoMS41VjIuNWEuNS41IDAgMCAxIDEgMFY0SDEyVjIuNWEuNS41IDAgMCAxIDEgMFY0aC41QTIuNSAyLjUgMCAwIDEgMTYgNi41VjdoMS41YS41LjUgMCAwIDEgMCAxSDE2djEuNWgxLjVhLjUuNSAwIDAgMSAwIDFIMTZWMTJoMS41YS41LjUgMCAwIDEgMCAxSDE2di41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxM3YxLjVhLjUuNSAwIDAgMS0xIDBWMTZoLTEuNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTZIOHYxLjVhLjUuNSAwIDAgMS0xIDBWMTZoLS41QTIuNSAyLjUgMCAwIDEgNCAxMy41VjEzSDIuNWEuNS41IDAgMCAxIDAtMUg0di0xLjVIMi41YS41LjUgMCAwIDEgMC0xSDRWOEgyLjVhLjUuNSAwIDAgMSAwLTFINHYtLjVBMi41IDIuNSAwIDAgMSA2LjUgNEg3VjIuNWMwLS4yOC4yMi0uNS41LS41Wk0xNSA2LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03QzUuNjcgNSA1IDUuNjcgNSA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkTGlnaHRuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkTGlnaHRuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMi41YS41LjUgMCAwIDAtMSAwVjRoLS41QTIuNSAyLjUgMCAwIDAgNCA2LjVWN0gyLjVhLjUuNSAwIDAgMCAwIDFINHYxLjVIMi41YS41LjUgMCAwIDAgMCAxSDRWMTJIMi41YS41LjUgMCAwIDAgMCAxSDR2LjVBMi41IDIuNSAwIDAgMCA2LjUgMTZIN3YxLjVhLjUuNSAwIDAgMCAxIDBWMTZoMS41djEuNWEuNS41IDAgMCAwIDEgMFYxNkgxMnYxLjVhLjUuNSAwIDAgMCAxIDBWMTZoLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjEzaDEuNWEuNS41IDAgMCAwIDAtMUgxNnYtMS41aDEuNWEuNS41IDAgMCAwIDAtMUgxNlY4aDEuNWEuNS41IDAgMCAwIDAtMUgxNnYtLjVBMi41IDIuNSAwIDAgMCAxMy41IDRIMTNWMi41YS41LjUgMCAwIDAtMSAwVjRoLTEuNVYyLjVhLjUuNSAwIDAgMC0xIDBWNEg4VjIuNVptMi45OSA1LjA0TDEwLjU3IDloMS41M2MuMzQgMCAuNTIuNC4zLjY2bC0yLjY1IDMuMTljLS4zLjM1LS44Ni4wNS0uNzMtLjRMOS40NiAxMUg3LjlhLjQuNCAwIDAgMS0uMy0uNjZsMi42Ni0zLjE5Yy4zLS4zNC44NS0uMDUuNzMuMzlaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZlbG9wZXJCb2FyZExpZ2h0bmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2ZWxvcGVyQm9hcmRMaWdodG5pbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjk5IDcuNTQgMTAuNTcgOWgxLjUzYy4zNCAwIC41Mi40LjMuNjZsLTIuNjUgMy4xOWMtLjMuMzUtLjg2LjA1LS43My0uNEw5LjQ2IDExSDcuOWEuNC40IDAgMCAxLS4zLS42NmwyLjY2LTMuMTljLjMtLjM0Ljg1LS4wNS43My4zOVpNOCAyLjVhLjUuNSAwIDAgMC0xIDBWNGgtLjVBMi41IDIuNSAwIDAgMCA0IDYuNVY3SDIuNWEuNS41IDAgMCAwIDAgMUg0djEuNUgyLjVhLjUuNSAwIDAgMCAwIDFINFYxMkgyLjVhLjUuNSAwIDAgMCAwIDFINHYuNUEyLjUgMi41IDAgMCAwIDYuNSAxNkg3djEuNWEuNS41IDAgMCAwIDEgMFYxNmgxLjV2MS41YS41LjUgMCAwIDAgMSAwVjE2SDEydjEuNWEuNS41IDAgMCAwIDEgMFYxNmguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoMS41YS41LjUgMCAwIDAgMC0xSDE2di0xLjVoMS41YS41LjUgMCAwIDAgMC0xSDE2VjhoMS41YS41LjUgMCAwIDAgMC0xSDE2di0uNUEyLjUgMi41IDAgMCAwIDEzLjUgNEgxM1YyLjVhLjUuNSAwIDAgMC0xIDBWNGgtMS41VjIuNWEuNS41IDAgMCAwLTEgMFY0SDhWMi41Wk0xMy41IDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDEzLjV2LTdDNSA1LjY3IDUuNjcgNSA2LjUgNWg3WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmRMaWdodG5pbmdUb29sYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkTGlnaHRuaW5nVG9vbGJveEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDIuNWEuNS41IDAgMCAwLTEgMFY0aC0uNUEyLjUgMi41IDAgMCAwIDQgNi41VjdIMi41YS41LjUgMCAwIDAgMCAxSDR2MS41SDIuNWEuNS41IDAgMCAwIDAgMUg0VjEySDIuNWEuNS41IDAgMCAwIDAgMUg0di41QTIuNSAyLjUgMCAwIDAgNi41IDE2SDd2MS41YS41LjUgMCAwIDAgMSAwVjE2aDF2LTIuNWMwLS4yMy4wMy0uNDUuMDktLjY3YS40LjQgMCAwIDEtLjA3LS4zN0w5LjQ2IDExSDcuOWEuNC40IDAgMCAxLS4zLS42NmwyLjY2LTMuMTljLjMtLjM0Ljg1LS4wNS43My4zOUwxMC41NyA5aDEuNTNjLjE3IDAgLjMuMS4zNi4yMy4zMi0uMTUuNjctLjIzIDEuMDQtLjIzaDJjLjE3IDAgLjM0LjAyLjUuMDVWOGgxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LS41QTIuNSAyLjUgMCAwIDAgMTMuNSA0SDEzVjIuNWEuNS41IDAgMCAwLTEgMFY0aC0xLjVWMi41YS41LjUgMCAwIDAtMSAwVjRIOFYyLjVabTQgOS41di0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmRMaWdodG5pbmdUb29sYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZExpZ2h0bmluZ1Rvb2xib3hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAyYy4yOCAwIC41LjIyLjUuNVY0aDEuNVYyLjVhLjUuNSAwIDAgMSAxIDBWNEgxMlYyLjVhLjUuNSAwIDAgMSAxIDBWNGguNUEyLjUgMi41IDAgMCAxIDE2IDYuNVY3aDEuNWEuNS41IDAgMCAxIDAgMUgxNnYxLjA1YTIuNTEgMi41MSAwIDAgMC0uNS0uMDVIMTVWNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN0M1LjY3IDUgNSA1LjY3IDUgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYxSDh2MS41YS41LjUgMCAwIDEtMSAwVjE2aC0uNUEyLjUgMi41IDAgMCAxIDQgMTMuNVYxM0gyLjVhLjUuNSAwIDAgMSAwLTFINHYtMS41SDIuNWEuNS41IDAgMCAxIDAtMUg0VjhIMi41YS41LjUgMCAwIDEgMC0xSDR2LS41QTIuNSAyLjUgMCAwIDEgNi41IDRIN1YyLjVjMC0uMjguMjItLjUuNS0uNVptMy41NCA5LjA0YTIuNSAyLjUgMCAwIDEgMS40Mi0xLjgxLjQuNCAwIDAgMC0uMzYtLjIzaC0xLjUzbC40Mi0xLjQ2Yy4xMi0uNDQtLjQ0LS43My0uNzMtLjM5bC0yLjY3IDMuMmEuNC40IDAgMCAwIC4zLjY1aDEuNTdsLS40NCAxLjQ2YS40LjQgMCAwIDAgLjA3LjM3IDIuNSAyLjUgMCAwIDEgMS45NS0xLjc5Wk0xMiAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk04LjUgMWMuMjggMCAuNS4yMi41LjVWM2gxLjVWMS41YS41LjUgMCAwIDEgMSAwVjNIMTNWMS41YS41LjUgMCAwIDEgMSAwVjNoLjVBMi41IDIuNSAwIDAgMSAxNyA1LjVWNmgxLjVhLjUuNSAwIDAgMSAwIDFIMTd2MS41aDEuNWEuNS41IDAgMCAxIDAgMUgxN1YxMWgxLjVhLjUuNSAwIDAgMSAwIDFIMTd2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDE0djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41djEuNWEuNS41IDAgMCAxLTEgMFYxNUg4Ljc0YTQuNSA0LjUgMCAwIDAtNS42OC01Ljc2LjUuNSAwIDAgMSAuNDQtLjc0SDVWN0gzLjVhLjUuNSAwIDAgMSAwLTFINXYtLjVBMi41IDIuNSAwIDAgMSA3LjUgM0g4VjEuNWMwLS4yOC4yMi0uNS41LS41Wk0xMSAxMmEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabS02LjUgNWMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAwIDAgLjctLjdMNy4zIDE1LjZBMy41IDMuNSAwIDEgMCA0LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkU2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZFNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCA5YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptMy0yYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFpNOSAxLjVhLjUuNSAwIDAgMC0xIDBWM2gtLjVBMi41IDIuNSAwIDAgMCA1IDUuNVY2SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNUgzLjVhLjUuNSAwIDAgMC0uNDQuNzRBNC41IDQuNSAwIDAgMSA2IDkuMjZWNS41QzYgNC42NyA2LjY3IDQgNy41IDRoN2MuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4Ljk3Yy0uMDQuMzUtLjExLjY4LS4yMyAxaDEuNzZ2MS41YS41LjUgMCAwIDAgMSAwVjE1SDEzdjEuNWEuNS41IDAgMCAwIDEgMFYxNWguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTJoMS41YS41LjUgMCAwIDAgMC0xSDE3VjkuNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTdWN2gxLjVhLjUuNSAwIDAgMCAwLTFIMTd2LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDE0VjEuNWEuNS41IDAgMCAwLTEgMFYzaC0xLjVWMS41YS41LjUgMCAwIDAtMSAwVjNIOVYxLjVaTTQuNSAxN2MuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAwIDAgLjctLjdMNy4zIDE1LjZBMy41IDMuNSAwIDEgMCA0LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZUVxRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZUVxRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djE0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy43NSAzYy40MSAwIC43NS4zNC43NS43NXY4LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi04LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNyA1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi04LjVaTTE3LjI1IDhjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk0zLjUgOC43NWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlRXFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZUVxUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYy4yOCAwIC41LjIyLjUuNXYxNWEuNS41IDAgMCAxLTEgMHYtMTVjMC0uMjguMjItLjUuNS0uNVptMy41IDNjLjI4IDAgLjUuMjIuNS41djlhLjUuNSAwIDAgMS0xIDB2LTljMC0uMjguMjItLjUuNS0uNVpNNyA1LjVhLjUuNSAwIDAgMC0xIDB2OWEuNS41IDAgMCAwIDEgMHYtOVpNMTYuNSA4Yy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtMSAwdi0zYzAtLjI4LjIyLS41LjUtLjVaTTQgOC41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjY2IDQuOTVBMi41IDIuNSAwIDAgMSA2LjEgM2g3LjhjMS4xNyAwIDIuMTguOCAyLjQ0IDEuOTVsMS42IDdBMi41IDIuNSAwIDAgMSAxNS40OCAxNUg0LjVhMi41IDIuNSAwIDAgMS0yLjQzLTMuMDVsMS41OS03Wk01LjUgMTZhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMSAwIDAtMWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4xIDNhMi41IDIuNSAwIDAgMC0yLjQ0IDEuOTVsLTEuNiA3QTIuNSAyLjUgMCAwIDAgNC41IDE1aDExYTIuNSAyLjUgMCAwIDAgMi40My0zLjA1bC0xLjU5LTdBMi41IDIuNSAwIDAgMCAxMy45IDNINi4xWk00LjYzIDUuMTdBMS41IDEuNSAwIDAgMSA2LjEgNGg3LjhjLjcgMCAxLjMxLjQ4IDEuNDcgMS4xN2wxLjU5IDdBMS41IDEuNSAwIDAgMSAxNS40OSAxNEg0LjVhMS41IDEuNSAwIDAgMS0xLjQ2LTEuODNsMS42LTdaTTUuNSAxNmEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAxIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb21SZW1vdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb21SZW1vdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy42NiA0Ljk1QTIuNSAyLjUgMCAwIDEgNi4xIDNoNy44YzEuMTcgMCAyLjE4LjggMi40NCAxLjk1bDEuNiA3QTIuNSAyLjUgMCAwIDEgMTUuNDggMTVIOVY5LjVBMi41IDIuNSAwIDAgMCA2LjUgN2gtM2MtLjEgMC0uMjEgMC0uMzEuMDJsLjQ3LTIuMDdaTTkgMTYuNWMwIC4xNy0uMDIuMzQtLjA1LjVoNS41NWEuNS41IDAgMCAwIDAtMUg5di41Wk01IDEyYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNMiA5LjVDMiA4LjY3IDIuNjcgOCAzLjUgOGgzQzcuMzMgOCA4IDguNjcgOCA5LjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTNBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTdaTTMuNSA5YS41LjUgMCAwIDAtLjUuNXY3YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtN2EuNS41IDAgMCAwLS41LS41aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb21SZW1vdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZU1lZXRpbmdSb29tUmVtb3RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjY2IDQuOTVBMi41IDIuNSAwIDAgMSA2LjEgM2g3LjhjMS4xNyAwIDIuMTguOCAyLjQ0IDEuOTVsMS42IDdBMi41IDIuNSAwIDAgMSAxNS40OCAxNUg5di0xaDYuNWMuOTYgMCAxLjY3LS45IDEuNDYtMS44M2wtMS42LTdBMS41IDEuNSAwIDAgMCAxMy45IDRINi4xYy0uNyAwLTEuMzEuNDgtMS40NyAxLjE3TDQuMjIgN0gzLjVjLS4xIDAtLjIxIDAtLjMxLjAybC40Ny0yLjA3Wk04Ljk1IDE3aDUuNTVhLjUuNSAwIDAgMCAwLTFIOXYuNWMwIC4xNy0uMDIuMzQtLjA1LjVaTTUgMTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0yIDkuNUMyIDguNjcgMi42NyA4IDMuNSA4aDNDNy4zMyA4IDggOC42NyA4IDkuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDIgMTYuNXYtN1pNMy41IDlhLjUuNSAwIDAgMC0uNS41djdjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjUtLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFncmFtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWdyYW1GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAyYTMgMyAwIDAgMC0zIDN2OWEzIDMgMCAwIDAgMyAzaC44MmwuOS0xSDVhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjUuMDNjLjM2LjA2LjcuMiAxIC40VjVhMyAzIDAgMCAwLTMtM0g1Wm0uNSAzYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTUgOC41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wk02LjUgMTFhLjUuNSAwIDAgMC0uMzcuODNMOC45NCAxNWwtMi44MSAzLjE3YS41LjUgMCAwIDAgLjM3LjgzaDguMWMuMzggMCAuNzYtLjE1IDEuMDQtLjQybDMuMTMtMy4wNGMuMy0uMy4zLS43OCAwLTEuMDhsLTMuMTMtMy4wNGExLjUgMS41IDAgMCAwLTEuMDUtLjQySDYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWdyYW1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWdyYW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjlhMyAzIDAgMCAwIDMgM2guODJsLjktMUg1YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY1LjAzYy4zNi4wNi43LjIgMSAuNFY1YTMgMyAwIDAgMC0zLTNINVptMS41IDlhLjUuNSAwIDAgMC0uMzcuODNMOC45NCAxNWwtMi44MSAzLjE3YS41LjUgMCAwIDAgLjM3LjgzaDguMWMuMzggMCAuNzYtLjE1IDEuMDQtLjQybDMuMTMtMy4wNGMuMy0uMy4zLS43OCAwLTEuMDhsLTMuMTMtMy4wNGExLjUgMS41IDAgMCAwLTEuMDUtLjQySDYuNVptMy4zNCAzLjVMNy42IDEyaDYuOThhLjUuNSAwIDAgMSAuMzUuMTRMMTcuOSAxNWwtMi45NSAyLjg2YS41LjUgMCAwIDEtLjM1LjE0SDcuNjFsMi4yMy0yLjVhLjc1Ljc1IDAgMCAwIDAtMVpNNSA1LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTUuNSA4YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTAgNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk03LjI1IDEyYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTEwIDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMTEuMjUgOGExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xMCAxMy4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0xMS4yNSAxNmExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xNCA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTE1LjI1IDhhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTQgMTMuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWxwYWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMtN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zLTExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMSAzYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEgNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wzLjkgMy45SDZhMS4yNSAxLjI1IDAgMSAwIDEuMjUgMS4ybDIuOCAyLjhIMTBhMS4yNSAxLjI1IDAgMSAwIDEuMjUgMS4ybDUuOSA1LjlhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTE1LjI1IDEyYzAgLjMxLS4xMi42LS4zLjgybC0xLjc3LTEuNzZhMS4yNSAxLjI1IDAgMCAxIDIuMDcuOTRabS00LTRjMCAuMzEtLjEyLjYtLjMuODJMOS4xNyA3LjA2YTEuMjUgMS4yNSAwIDAgMSAyLjA3Ljk0Wm0tNC00YzAgLjMxLS4xMi42LS4zLjgyTDUuMTcgMy4wNkExLjI1IDEuMjUgMCAwIDEgNy4yNSA0Wm0wIDhhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTAgNS4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0xMS4yNSAxNmExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xNCA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTE1LjI1IDhhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWxwYWRPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsNC4yIDQuMjJBMSAxIDAgMCAwIDUgOGExIDEgMCAxIDAgMS45My0uMzZsMy40MyAzLjQzYTEgMSAwIDEgMCAuNTcuNTdsNi4yMiA2LjIxYS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xNSAxMmExIDEgMCAwIDEtLjIzLjY0bC0xLjQxLTEuNEExIDEgMCAwIDEgMTUgMTJabS00LTRhMSAxIDAgMCAxLS4yMy42NGwtMS40MS0xLjRBMSAxIDAgMCAxIDExIDhaTTcgNGExIDEgMCAwIDEtLjIzLjY0bC0xLjQxLTEuNEExIDEgMCAwIDEgNyA0Wm0wIDhhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zLTdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDExYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMy0xMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkUXVlc3Rpb25NYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRRdWVzdGlvbk1hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTAgNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm0wIDRhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptNC04YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTAgNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm0uNDEgMS41N2E1LjUgNS41IDAgMCAwLTEuMiAyLjE1IDEuMjUgMS4yNSAwIDAgMSAxLjItMi4xNVptNC4zMy0xLjgxYTEuMjUgMS4yNSAwIDEgMC0xLjMyLjEgNS41MyA1LjUzIDAgMCAxIDEuMzItLjFaTTE0IDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS42Mi0yYS42Mi42MiAwIDEgMSAxLjI0IDAgLjYyLjYyIDAgMCAxLTEuMjQgMFptLTEuMjMtMy41NGMtLjAxLTEuMTQuOC0xLjk2IDEuODUtMS45NiAxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NSAwLS41NS0uMzgtLjk1LS44NS0uOTUtLjUgMC0uODYuMzctLjg1Ljk1YS41LjUgMCAxIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZFF1ZXN0aW9uTWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZFF1ZXN0aW9uTWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC04YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCAyYTEgMSAwIDAgMSAuMjMuMDMgNS41IDUuNSAwIDAgMC0uOTMgMS42OEExIDEgMCAwIDEgMTAgMTFabTUtN2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTAgNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTQgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNTkgMTEuNDFhMiAyIDAgMCAxIDAtMi44Mmw2LTZhMiAyIDAgMCAxIDIuODMgMGw2IDZhMiAyIDAgMCAxIDAgMi44MmwtNiA2YTIgMiAwIDAgMS0yLjgzIDBsLTYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYW1vbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYW1vbmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNTkgMTEuNDFhMiAyIDAgMCAxIDAtMi44Mmw2LTZhMiAyIDAgMCAxIDIuODMgMGw2IDZhMiAyIDAgMCAxIDAgMi44MmwtNiA2YTIgMiAwIDAgMS0yLjgzIDBsLTYtNlptLjctMi4xMmExIDEgMCAwIDAgMCAxLjQybDYgNmExIDEgMCAwIDAgMS40MiAwbDYtNmExIDEgMCAwIDAgMC0xLjQybC02LTZhMSAxIDAgMCAwLTEuNDIgMGwtNiA2WlwiXSk7XG5leHBvcnQgY29uc3QgRGlyZWN0aW9uc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXJlY3Rpb25zRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjc3IDMuMDZhMi41IDIuNSAwIDAgMC0zLjU0IDBMMy4wNiA4LjIzYTIuNSAyLjUgMCAwIDAgMCAzLjU0bDUuMTcgNS4xN2EyLjUgMi41IDAgMCAwIDMuNTQgMGw1LjE3LTUuMTdhMi41IDIuNSAwIDAgMCAwLTMuNTRsLTUuMTctNS4xN1ptLTEuMTIgMy4wOWMuMi0uMi41LS4yLjcgMGwxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN2wuNjQtLjY1aC0uNzlDOS42NyA4LjUgOSA5LjE3IDkgMTB2Mi41YS41LjUgMCAwIDEtMSAwVjEwYTIuNSAyLjUgMCAwIDEgMi41LTIuNWguOGwtLjY1LS42NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXJlY3Rpb25zUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXJlY3Rpb25zUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDguNUM5LjY3IDguNSA5IDkuMTcgOSAxMHYyLjVhLjUuNSAwIDEgMS0xIDBWMTBhMi41IDIuNSAwIDAgMSAyLjUtMi41aC44bC0uNjUtLjY1YS41LjUgMCAwIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAxIDEtLjctLjdsLjY0LS42NWgtLjc5Wk04LjIzIDMuMDZhMi41IDIuNSAwIDAgMSAzLjU0IDBsNS4xNyA1LjE3YTIuNSAyLjUgMCAwIDEgMCAzLjU0bC01LjE3IDUuMTdhMi41IDIuNSAwIDAgMS0zLjU0IDBsLTUuMTctNS4xN2EyLjUgMi41IDAgMCAxIDAtMy41NGw1LjE3LTUuMTdabTIuODMuN2ExLjUgMS41IDAgMCAwLTIuMTIgMEwzLjc3IDguOTVhMS41IDEuNSAwIDAgMCAwIDIuMTJsNS4xNyA1LjE3YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDUuMTctNS4xN2ExLjUgMS41IDAgMCAwIDAtMi4xMmwtNS4xNy01LjE3WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzaHdhc2hlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNod2FzaGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjJoMTRWNmEzIDMgMCAwIDAtMy0zSDZabTggMTRINi45MWExLjUgMS41IDAgMCAwLS45MS0uOTF2LTEuNDNhMy41IDMuNSAwIDAgMCAyLTMuMTZ2LTJjMC0uMTctLjAzLS4zNC0uMDktLjVIMTd2NWEzIDMgMCAwIDEtMyAzWk02Ljc1IDYuMjVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wk0xMCA1LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTIuNSA5YS41LjUgMCAwIDAtLjUuNXYyYTIuNSAyLjUgMCAwIDAgMiAyLjQ1VjE3aC0uNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDV2LTMuMDVhMi41IDIuNSAwIDAgMCAyLTIuNDV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc2h3YXNoZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc2h3YXNoZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjJoMTN2NmEyIDIgMCAwIDEtMiAySDZ2LjA5Yy40My4xNS43Ni40OC45MS45MUgxNGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0xMCAzdjFINFY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAyWm0tOC41LS41YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuNSAwYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk0yLjUgOWEuNS41IDAgMCAwLS41LjV2MmEyLjUgMi41IDAgMCAwIDIgMi40NVYxN2gtLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg1di0zLjA1YTIuNSAyLjUgMCAwIDAgMi0yLjQ1di0yYS41LjUgMCAwIDAtLjUtLjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMy45IDQuMDUuMDctLjA4YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wN0wxMCA4Ljk0bDQuOTctNC45N2EuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDdjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOEwxMS4wNiAxMGw0Ljk3IDQuOTdjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3TDEwIDExLjA2bC00Ljk3IDQuOTdhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wN2EuNzUuNzUgMCAwIDEtLjA3LS45OGwuMDctLjA4TDguOTQgMTAgMy45NyA1LjAzYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDgtLjA3LjA4WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJtNC4wOSA0LjIyLjA2LS4wN2EuNS41IDAgMCAxIC42My0uMDZsLjA3LjA2TDEwIDkuMjlsNS4xNS01LjE0YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDZjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN0wxMC43MSAxMGw1LjE0IDUuMTVjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN2EuNS41IDAgMCAxLS42My4wNmwtLjA3LS4wNkwxMCAxMC43MWwtNS4xNSA1LjE0YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3TDkuMjkgMTAgNC4xNSA0Ljg1YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3LS4wNi4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc0NpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wk03LjggNy4xMWEuNS41IDAgMCAwLS42My4wNmwtLjA2LjA3YS41LjUgMCAwIDAgLjA2LjY0TDkuMyAxMGwtMi4xMiAyLjEyLS4wNi4wN2EuNS41IDAgMCAwIC4wNi42NGwuMDcuMDZjLjIuMTMuNDcuMTEuNjQtLjA2TDEwIDEwLjdsMi4xMiAyLjEyLjA3LjA2Yy4yLjEzLjQ2LjExLjY0LS4wNmwuMDYtLjA3YS41LjUgMCAwIDAtLjA2LS42NEwxMC43IDEwbDIuMTItMi4xMi4wNi0uMDdhLjUuNSAwIDAgMC0uMDYtLjY0bC0uMDctLjA2YS41LjUgMCAwIDAtLjY0LjA2TDEwIDkuMyA3Ljg4IDcuMTdsLS4wNy0uMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzQ2lyY2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRaTTcuOCA3LjExbC4wOC4wNkwxMCA5LjNsMi4xMi0yLjEyYS41LjUgMCAwIDEgLjY0LS4wNmwuMDcuMDZjLjE3LjE4LjIuNDQuMDYuNjRsLS4wNi4wN0wxMC43IDEwbDIuMTIgMi4xMmMuMTcuMTcuMi40NC4wNi42NGwtLjA2LjA3YS41LjUgMCAwIDEtLjY0LjA2bC0uMDctLjA2TDEwIDEwLjdsLTIuMTIgMi4xMmEuNS41IDAgMCAxLS42NC4wNmwtLjA3LS4wNmEuNS41IDAgMCAxLS4wNi0uNjRsLjA2LS4wN0w5LjMgMTAgNy4xNyA3Ljg4YS41LjUgMCAwIDEtLjA2LS42NGwuMDYtLjA3YS41LjUgMCAwIDEgLjY0LS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1NxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm00LjE1IDEuMTVhLjUuNSAwIDAgMCAwIC43TDkuMjkgMTBsLTIuMTQgMi4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMi4xNSAyLjE0YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgMTBsMi4xNC0yLjE1YS41LjUgMCAwIDAtLjctLjdMMTAgOS4yOSA3Ljg1IDcuMTVhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc1NxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1NxdWFyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4xNSA3LjE1Yy4yLS4yLjUtLjIuNyAwTDEwIDkuMjlsMi4xNS0yLjE0YS41LjUgMCAwIDEgLjcuN0wxMC43MSAxMGwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEwIDEwLjcxbC0yLjE1IDIuMTRhLjUuNSAwIDAgMS0uNy0uN0w5LjI5IDEwIDcuMTUgNy44NWEuNS41IDAgMCAxIDAtLjdaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzU3F1YXJlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1NxdWFyZU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoN0EyLjUgMi41IDAgMCAxIDE1IDUuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDMgMTIuNXYtN1ptMy4xNS42NWEuNS41IDAgMCAwIDAgLjdMOC4yOSA5bC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43TDkgOS43MWwyLjE1IDIuMTRhLjUuNSAwIDAgMCAuNy0uN0w5LjcxIDlsMi4xNC0yLjE1YS41LjUgMCAwIDAtLjctLjdMOSA4LjI5IDYuODUgNi4xNWEuNS41IDAgMCAwLS43IDBaTTUuNSAxNmMuNDYuNiAxLjE4IDEgMiAxaDVhNC41IDQuNSAwIDAgMCA0LjUtNC41di01YzAtLjgyLS40LTEuNTQtMS0ydjdhMy41IDMuNSAwIDAgMS0zLjUgMy41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc1NxdWFyZU11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzU3F1YXJlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoN0EyLjUgMi41IDAgMCAxIDE1IDUuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDMgMTIuNXYtN1pNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1ptMiAxM2EyLjUgMi41IDAgMCAxLTItMWg3YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtN2MuNi40NiAxIDEuMTggMSAydjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC01Wk02Ljg1IDYuMTVhLjUuNSAwIDEgMC0uNy43TDguMjkgOWwtMi4xNCAyLjE1YS41LjUgMCAwIDAgLjcuN0w5IDkuNzFsMi4xNSAyLjE0YS41LjUgMCAwIDAgLjctLjdMOS43MSA5bDIuMTQtMi4xNWEuNS41IDAgMCAwLS43LS43TDkgOC4yOSA2Ljg1IDYuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2ZXJzaXR5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNzQgMTYuNDVBMi45OSAyLjk5IDAgMCAxIDYgMTdhMyAzIDAgMCAxLTIuNDUtNC43NGw0LjE5IDQuMTlabTUuOS01LjM2LTIuMjMgMS4xNWEuNzUuNzUgMCAwIDAtLjQxLjY2djIuMmMwIC4yOC4xNi41My40MS42NmwyLjIzIDEuMTVjLjIzLjEyLjUuMTIuNzIgMGwyLjIzLTEuMTVhLjc1Ljc1IDAgMCAwIC40MS0uNjZ2LTIuMmEuNzUuNzUgMCAwIDAtLjQxLS42NmwtMi4yMy0xLjE1YS43OS43OSAwIDAgMC0uNzIgMFptLTUuMiA0LjY1QTIuOTkgMi45OSAwIDAgMCA5IDE0YTMgMyAwIDAgMC00Ljc0LTIuNDVsNC4xOSA0LjE5Wk0xMyAzYTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJoLTJabS04LjA5LjY3Yy40NS0uOSAxLjczLS45IDIuMTggMGwxLjc4IDMuNTRjLjQuODItLjE4IDEuNzktMS4xIDEuNzlINC4yM2MtLjkgMC0xLjUtLjk3LTEuMDktMS43OWwxLjc4LTMuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmVyc2l0eVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgNWMwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMlY1Wk00LjkxIDMuNjdjLjQ1LS45IDEuNzMtLjkgMi4xOCAwbDEuNzggMy41NGMuNC44Mi0uMTggMS43OS0xLjEgMS43OUg0LjIzYy0uOSAwLTEuNS0uOTctMS4wOS0xLjc5bDEuNzgtMy41NFptMS4yOC40NWEuMjEuMjEgMCAwIDAtLjM4IDBMNC4wMyA3LjY2Yy0uMDkuMTcuMDQuMzQuMi4zNGgzLjU1Yy4xNSAwIC4yOC0uMTcuMi0uMzRMNi4xOCA0LjEyWk05IDE0YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFptLTEgMGEyIDIgMCAwIDAtMy4wMi0xLjcybDIuNzQgMi43NEEyIDIgMCAwIDAgOCAxNFptLTIgMmEyIDIgMCAwIDAgMS4wMi0uMjhsLTIuNzQtMi43NEEyIDIgMCAwIDAgNiAxNlptNy42NC00LjkxYy4yMy0uMTIuNS0uMTIuNzIgMGwyLjIzIDEuMTVjLjI1LjEzLjQxLjM4LjQxLjY2djIuMmMwIC4yOC0uMTYuNTMtLjQxLjY2bC0yLjIzIDEuMTVhLjc5Ljc5IDAgMCAxLS43MiAwbC0yLjIzLTEuMTVhLjc1Ljc1IDAgMCAxLS40MS0uNjZ2LTIuMmMwLS4yOC4xNi0uNTMuNDEtLjY2bDIuMjMtMS4xNVpNMTIgMTMuMDZ2MS44OGwyIDEuMDMgMi0xLjAzdi0xLjg4bC0yLTEuMDMtMiAxLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgRGl2aWRlclNob3J0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmlkZXJTaG9ydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljc1IDNjLjQxIDAgLjc1LjM0Ljc1Ljc1djEyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmlkZXJTaG9ydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2aWRlclNob3J0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgM2MuMjggMCAuNS4yMi41LjV2MTNhLjUuNSAwIDAgMS0xIDB2LTEzYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyVGFsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZpZGVyVGFsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljc1IDFjLjQxIDAgLjc1LjM0Ljc1Ljc1djE2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjEuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmlkZXJUYWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZpZGVyVGFsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS41IDFjLjI4IDAgLjUuMjIuNS41djE3YS41LjUgMCAwIDEtMSAwdi0xN2MwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUzIDMuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMi41IDIuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDEuMjItMS4yMnY2LjY5YS43NS43NSAwIDAgMCAxLjUgMFY1LjU2bDEuMjIgMS4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjUtMi41Wk0zLjUgMTAuNWExIDEgMCAwIDEgMS0xaDIuNzVhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNUEyLjUgMi41IDAgMCAwIDIgMTAuNXYzQTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM0EyLjUgMi41IDAgMCAwIDE1LjUgOGgtMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMi43NWExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMWgtMTFhMSAxIDAgMCAxLTEtMXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjM1IDMuMTVhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDEgMCAuNy43TDkuNSA0LjcxdjcuNzlhLjUuNSAwIDAgMCAxIDBWNC43bDIuMTUgMi4xNWEuNS41IDAgMCAwIC43LS43bC0zLTNaTTMgMTAuNUMzIDkuNjcgMy42NyA5IDQuNSA5aDNhLjUuNSAwIDAgMCAwLTFoLTNBMi41IDIuNSAwIDAgMCAyIDEwLjV2M0EyLjUgMi41IDAgMCAwIDQuNSAxNmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNBMi41IDIuNSAwIDAgMCAxNS41IDhoLTNhLjUuNSAwIDAgMCAwIDFoM2MuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2NrUm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY2tSb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA0Yy0uODMgMC0xLjUuNjctMS41IDEuNXYyQzEuNSA4LjMzIDIuMTcgOSAzIDloMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJDNi41IDQuNjcgNS44MyA0IDUgNEgzWm0wIDZjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDNabTQuNS00LjVDNy41IDQuNjcgOC4xNyA0IDkgNGgyYy44MyAwIDEuNS42NyAxLjUgMS41djJjMCAuODMtLjY3IDEuNS0xLjUgMS41SDlhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWk05IDEwYy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5Wm00LjUtNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWk0xNSAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2NrUm93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2NrUm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDRjLS44MyAwLTEuNS42Ny0xLjUgMS41djJDMS41IDguMzMgMi4xNyA5IDMgOWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMkM2LjUgNC42NyA1LjgzIDQgNSA0SDNabS0uNSAxLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyQS41LjUgMCAwIDEgNSA4SDNhLjUuNSAwIDAgMS0uNS0uNXYtMlpNMyAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIM1ptLS41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNXYtMlptNS02QzcuNSA0LjY3IDguMTcgNCA5IDRoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNUg5YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMlpNOSA1YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtMkEuNS41IDAgMCAwIDExIDVIOVptMCA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5Wm0tLjUgMS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVIOWEuNS41IDAgMCAxLS41LS41di0yWm01LTZjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJaTTE1IDVhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di0yQS41LjUgMCAwIDAgMTcgNWgtMlptMCA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlptLS41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdG9yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSAzQzcuNjcgMyA3IDMuNjcgNyA0LjVWN0g0LjVDMy42NyA3IDMgNy42NyAzIDguNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzaDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEzVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3RvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDRhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDNjLjI4IDAgLjUuMjIuNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zWk03IDQuNUM3IDMuNjcgNy42NyAzIDguNSAzaDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWN2gyLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVIMTN2Mi41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDcgMTUuNVYxM0g0LjVBMS41IDEuNSAwIDAgMSAzIDExLjV2LTNDMyA3LjY3IDMuNjcgNyA0LjUgN0g3VjQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MTAwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50MTAwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djguMjZhMi45OSAyLjk5IDAgMCAxIDQuNS41OEEzIDMgMCAwIDEgMTQgMTR2MmMwIC43Ny0uMjkgMS40Ny0uNzYgMmgxLjI2Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wm0tOCA2LjFjMC0uMi0uMS0uMzUtLjItLjQ0YS42NC42NCAwIDAgMC0uMy0uMTRjLS4xMy0uMDMtLjUtLjAzLS42Ny4zMi0uMi40MS0uNTQuOTMtMS4wNyAxLjIyYS41LjUgMCAxIDAgLjQ4Ljg4Yy4zLS4xNy41NS0uMzcuNzYtLjZ2My42NmEuNS41IDAgMCAwIDEgMHYtNC45Wk00IDE0YTIgMiAwIDEgMSA0IDB2MmEyIDIgMCAxIDEtNCAwdi0yWm0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDB2LTJhMSAxIDAgMCAwLTEtMVptNS0xYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAxIDAgNCAwdi0yYTIgMiAwIDAgMC0yLTJabS0xIDJhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudDEwMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQxMDBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMmgtLjc2YTMgMyAwIDAgMCAuNTktMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY3LjE3YTMgMyAwIDAgMC0xIC42VjRabTcuNSAzaDMuM0wxMSAzLjJ2My4zYzAgLjI4LjIyLjUuNS41Wk02IDEyYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAxIDAgNCAwdi0yYTIgMiAwIDAgMC0yLTJabS0xIDJhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJabS0yLTEuNGMwLS4yLS4xLS4zNS0uMi0uNDRhLjY0LjY0IDAgMCAwLS4zLS4xNGMtLjEzLS4wMy0uNS0uMDMtLjY3LjMyLS4yLjQxLS41NC45My0xLjA3IDEuMjJhLjUuNSAwIDEgMCAuNDguODhjLjMtLjE3LjU1LS4zNy43Ni0uNnYzLjY2YS41LjUgMCAwIDAgMSAwdi00LjlaTTkgMTRhMiAyIDAgMSAxIDQgMHYyYTIgMiAwIDEgMS00IDB2LTJabTItMWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTNDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlpNNSA0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm05LjggM2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0Rvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTUuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLTIuMzUtNC4xNWEuNS41IDAgMCAxIC43LS43TDUgMTUuMjlWMTIuNWEuNS41IDAgMCAxIDEgMHYyLjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjM1LjE1LjUuNSAwIDAgMS0uMzUtLjE0bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTUuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLTIuMzUtNC4xNWEuNS41IDAgMCAxIC43LS43TDUgMTUuMjlWMTIuNWEuNS41IDAgMCAxIDEgMHYyLjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjM1LjE1LjUuNSAwIDAgMS0uMzUtLjE0bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93TGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxNUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS02Ljg1LS4zNWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDQuNzEgMTVINy41YS41LjUgMCAwIDAgMC0xSDQuN2wxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNS41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0uMzUtMi4xNWEuNS41IDAgMCAxLS43LS43TDYuMjkgMTVIMy41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk01LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS4zNS0yLjE1YS41LjUgMCAwIDEtLjctLjdMNi4yOSAxNUgzLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNWwtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd1VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNS41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0yLjM1LTQuODVhLjUuNSAwIDEgMS0uNy43TDYgMTMuNzF2Mi43OWEuNS41IDAgMCAxLTEgMHYtMi44bC0xLjE1IDEuMTVhLjUuNSAwIDEgMS0uNy0uN2wyLTJBLjUuNSAwIDAgMSA1LjUgMTJhLjUuNSAwIDAgMSAuMzUuMTRsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTUuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi4zNS00Ljg1YS41LjUgMCAxIDEtLjcuN0w2IDEzLjcxdjIuNzlhLjUuNSAwIDAgMS0xIDB2LTIuOGwtMS4xNSAxLjE1YS41LjUgMCAxIDEtLjctLjdsMi0yQS41LjUgMCAwIDEgNS41IDEyYS41LjUgMCAwIDEgLjM1LjE0bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAyQTIuNSAyLjUgMCAwIDAgNCA0LjV2MTFBMi41IDIuNSAwIDAgMCA2LjUgMThoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTExQTIuNSAyLjUgMCAwIDAgMTMuNSAyaC03Wk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xMVpNNi43NSA0YS43NS43NSAwIDAgMC0uNzUuNzV2MTAuNWMwIC40MS4zNC43NS43NS43NWg2LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNC43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCb3JkZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgMkEyLjUgMi41IDAgMCAwIDQgNC41djExQTIuNSAyLjUgMCAwIDAgNi41IDE4aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDEzLjUgMmgtN1pNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41djExYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTUuNXYtMTFaTTYuNzUgNGEuNzUuNzUgMCAwIDAtLjc1Ljc1djEwLjVjMCAuNDEuMzQuNzUuNzUuNzVoNi41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjQuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTYuNVpNNyAxNVY1aDZ2MTBIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyUHJpbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCb3JkZXJQcmludEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMkEyLjUgMi41IDAgMCAwIDQgNC41djExQTIuNSAyLjUgMCAwIDAgNi41IDE4SDExYTIgMiAwIDAgMS0xLjczLTFINi41QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xMUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWguNWMuMTcgMCAuMzQuMDIuNS4wNVY0LjVBMi41IDIuNSAwIDAgMCAxMy41IDJoLTdabTcgN2guNVY0Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMC41YzAgLjQxLjM0Ljc1Ljc1Ljc1SDl2LTIuNWEyLjUgMi41IDAgMCAxIDIuMDQtMi40NkEyLjUgMi41IDAgMCAxIDEzLjUgOVptMCAxYy0uODMgMC0xLjUuNjctMS41IDEuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE2YTEgMSAwIDAgMCAxIDFoMXYuNWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxN2gxYTEgMSAwIDAgMCAxLTF2LTIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlptMi41IDJoLTN2LS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVabS0yLjUgNGgyYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0xYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJvcmRlclByaW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJvcmRlclByaW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgMkEyLjUgMi41IDAgMCAwIDQgNC41djExQTIuNSAyLjUgMCAwIDAgNi41IDE4SDExYTIgMiAwIDAgMS0xLjczLTFINi41QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xMUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWguNWMuMTcgMCAuMzQuMDIuNS4wNVY0LjVBMi41IDIuNSAwIDAgMCAxMy41IDJoLTdaTTE0IDQuNzVWOWgtLjVjLS4xNyAwLS4zNC4wMi0uNS4wNVY1SDd2MTBoMnYxSDYuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWMuNDEgMCAuNzUuMzQuNzUuNzVaTTEzLjUgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41di41aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTZhMSAxIDAgMCAwIDEgMWgxdi41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41VjE3aDFhMSAxIDAgMCAwIDEtMXYtMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxN3YtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWm0yLjUgMmgtM3YtLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYuNVptLTIuNSA0aDJjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnJpZWZjYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnJpZWZjYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTMuNTVjLjAzLS4xNi4wNS0uMzMuMDUtLjV2LTRhMi41IDIuNSAwIDAgMC0yLjA0LTIuNDZBMi41IDIuNSAwIDAgMCA2LjUgOWgtMmMtLjE3IDAtLjM0LjAyLS41LjA1VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0zIDExLjV2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg4di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41Wm0xLjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVINHYtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnJpZWZjYXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJyaWVmY2FzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4wNWMuMTYtLjAzLjMzLS4wNS41LS4wNUg1VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTN2LjVjMCAuMTctLjAyLjM0LS4wNS41SDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTMgMTEuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41SDh2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVabTEuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYuNUg0di0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabS00IDRhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabTAgMmEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMCAyYS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0yLTRjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabTAgMmMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptMCAyYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0zLThWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDEwLjVhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabS41IDEuNWEuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVpNNiAxNC41YS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWk04LjUgMTBhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNOCAxMi41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlpNNSA0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm05LjggM2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RBcnJvd0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS43YTUuNSA1LjUgMCAwIDEgNC42Ni44aDQuODRhLjUuNSAwIDAgMSAwIDFIOS43NGMuMjYuMy40OC42NC42NiAxaDMuMWEuNS41IDAgMCAxIDAgMWgtMi43Yy4wOC4zMi4xNS42Ni4xOCAxaDIuNTJhLjUuNSAwIDAgMSAwIDFoLTIuNTJhNS40OCA1LjQ4IDAgMCAxLTEuMjQgM2g0Ljc2Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk01LjUgMTlhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS0yLjM1LTQuODVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDE1SDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0QXJyb3dMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDR2NS4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJIOS43NGMuMjYtLjMuNDgtLjY0LjY2LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDFabTguNSAxMWgtMi41MmE1LjU5IDUuNTkgMCAwIDAgMC0xaDIuNTJhLjUuNSAwIDAgMSAwIDFabTAtMmgtMi43Yy0uMS0uMzUtLjI0LS42OC0uNC0xaDMuMWEuNS41IDAgMCAxIDAgMVptMC0ySDkuNzRhNS41MyA1LjUzIDAgMCAwLTEuMDgtMWg0Ljg0YS41LjUgMCAwIDEgMCAxWm0xLjMtNEwxMSAzLjJ2My4zYzAgLjI4LjIyLjUuNS41aDMuM1pNNS41IDE5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00Ljg1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxNUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RDbG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljc2YTUuNDcgNS40NyAwIDAgMS0xLjI0LTNIOC41YS41LjUgMCAwIDEgMC0xaC41MmMuMDMtLjM0LjEtLjY4LjE5LTFIOC41YS41LjUgMCAwIDEgMC0xaDEuMWMuMTgtLjM2LjQtLjcuNjYtMUg4LjVhLjUuNSAwIDAgMSAwLTFoMi44NEE1LjQ3IDUuNDcgMCAwIDEgMTYgOS4yVjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptLTQgNGEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMCAyYS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0uNSAxLjVhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaXCIsIFwiTTExIDYuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiLCBcIk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0zYS41LjUgMCAwIDAtMSAwdjNjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUgxNXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0Q2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdENsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djEuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNy40YzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNOSAxNC41YzAtLjE3IDAtLjM0LjAyLS41SDguNWEuNS41IDAgMCAwIDAgMWguNTJhNS41NyA1LjU3IDAgMCAxLS4wMi0uNVptLjItMS41Yy4xLS4zNS4yNC0uNjguNC0xSDguNWEuNS41IDAgMCAwIDAgMWguN1ptMS4wNi0yYy4zMS0uMzguNjctLjcyIDEuMDgtMUg4LjVhLjUuNSAwIDAgMCAwIDFoMS43NlpNNi41IDEwYS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xWk02IDEyLjVhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabTAgMmEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMTMgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtM2EuNS41IDAgMCAwLTEgMHYzYzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFIMTV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEN1YmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0Q3ViZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1Ljc2bC4xLS4wNWEyIDIgMCAwIDEgMS44IDBsMi4xNSAxLjA4QS41LjUgMCAwIDEgOC41IDEwaDVhLjUuNSAwIDAgMSAwIDFIOS4zMmEyIDIgMCAwIDEgLjYyIDFoMy41NmEuNS41IDAgMCAxIDAgMUgxMHYxaDMuNWEuNS41IDAgMCAxIDAgMUgxMHYxLjVhMiAyIDAgMCAxLS42NyAxLjVoNS4xN2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVptLTIuNTUgNS4xLTMtMS41YTEgMSAwIDAgMC0uOSAwbC0zIDEuNWExIDEgMCAwIDAtLjU1Ljl2NGExIDEgMCAwIDAgLjU1LjlsMyAxLjVhMSAxIDAgMCAwIC45IDBsMy0xLjVhMSAxIDAgMCAwIC41NS0uOXYtNGExIDEgMCAwIDAtLjU1LS45Wm0tNi40MSAxLjEzYS41LjUgMCAwIDEgLjY2LS4yNmwyLjMuOTkgMi4zLTFhLjUuNSAwIDAgMSAuNC45M2wtMi4yLjk0VjE3YS41LjUgMCAxIDEtMSAwdi0yLjY3bC0yLjItLjk0YS41LjUgMCAwIDEtLjI2LS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEN1YmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEN1YmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAxMGEuNS41IDAgMCAwLS40NS4yOWwuODQuNDJhMiAyIDAgMCAxIC40My4yOWg0LjE4YS41LjUgMCAwIDAgMC0xaC01Wk01IDR2NWEyIDIgMCAwIDAtLjkuMjFsLS4xLjA1VjRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJIOS4zM2EyIDIgMCAwIDAgLjYtMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMVptOC41IDExSDEwdi0xaDMuNWEuNS41IDAgMCAxIDAgMVptMC0ySDEwdi0uNWEyIDIgMCAwIDAtLjA2LS41aDMuNTZhLjUuNSAwIDAgMSAwIDFabTEuMy02TDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVoMy4zWm0tNi4zNSA0LjYtMy0xLjVhMSAxIDAgMCAwLS45IDBsLTMgMS41YTEgMSAwIDAgMC0uNTUuOXY0YTEgMSAwIDAgMCAuNTUuOWwzIDEuNWExIDEgMCAwIDAgLjkgMGwzLTEuNWExIDEgMCAwIDAgLjU1LS45di00YTEgMSAwIDAgMC0uNTUtLjlabS02LjQxIDEuMTNhLjUuNSAwIDAgMSAuNjYtLjI2bDIuMy45OSAyLjMtMWEuNS41IDAgMCAxIC40LjkzbC0yLjIuOTRWMTdhLjUuNSAwIDEgMS0xIDB2LTIuNjdsLTIuMi0uOTRhLjUuNSAwIDAgMS0uMjYtLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0TXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0TXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxMWMwIC44My42NyAxLjUgMS41IDEuNUgxM2EyIDIgMCAwIDAgMi0yVjhoLTQuNUExLjUgMS41IDAgMCAxIDkgNi41Wm0tMyA0YS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0uNSAyLjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFabTItMmEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxaC00Wk04IDEyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTItNlYyLjI1TDE0Ljc1IDdIMTAuNWEuNS41IDAgMCAxLS41LS41Wk0xNyA5YTEgMSAwIDAgMC0xLTF2NmEzIDMgMCAwIDEtMyAzSDZhMSAxIDAgMCAwIDEgMWg2LjA2QTMuOTQgMy45NCAwIDAgMCAxNyAxNC4wNlY5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0TXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdE11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgMTBhLjUuNSAwIDEgMCAwIDEgLjUuNSAwIDAgMCAwLTFaTTYgMTIuNWEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMi0yYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpNNiAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDkuNTkgMkg2Wk01IDRhMSAxIDAgMCAxIDEtMWgzdjMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNHY2YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRabTUgMi41VjMuMkwxMy44IDdoLTMuM2EuNS41IDAgMCAxLS41LS41Wk0xNiA4YTEgMSAwIDAgMSAxIDF2NS4wNkEzLjk0IDMuOTQgMCAwIDEgMTMuMDYgMThIN2ExIDEgMCAwIDEtMS0xaDdhMyAzIDAgMCAwIDMtM1Y4WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0T2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDQuNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLTEuMTYtMS4xNkExLjUgMS41IDAgMCAxIDE0LjUgMThoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjVWNC43Wm05LjMgOS4zSDguNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjQ3LS4zMmwtLjY4LS42OFptLTEtMS0xLTFIOC41YS41LjUgMCAwIDAgMCAxaDMuOFptLTItMi0xLTFoLS44YS41LjUgMCAwIDAgMCAxaDEuOFptMy4yIDBoLS4zOEwxNiAxMy44OFY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWMkg1LjVjLS4zOCAwLS43My4xNC0xIC4zOEwxMi4xMiAxMGgxLjM4YS41LjUgMCAwIDEgMCAxWk02IDEwLjVhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBabTAgMmEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMFptMCAyYS41LjUgMCAxIDAgMSAwIC41LjUgMCAwIDAtMSAwWm01LThWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0T2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDQuNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLTEuMjUtMS4yNEEyIDIgMCAwIDEgMTQgMThINmEyIDIgMCAwIDEtMi0yVjQuN1ptMTEgMTEtMS4wMy0xLjAyYS41LjUgMCAwIDEtLjQ3LjMyaC01YS41LjUgMCAwIDEgMC0xaDQuOGwtMS0xSDguNWEuNS41IDAgMCAxIDAtMWgyLjhsLTEtMUg4LjVhLjUuNSAwIDAgMSAwLTFoLjhMNSA1LjdWMTZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTF2LS4zWk0xMi4xMiAxMGwxIDFoLjM4YS41LjUgMCAwIDAgMC0xaC0xLjM4Wk0xNSA4djQuODhsMSAxVjcuNGMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINmEyIDIgMCAwIDAtMS4zNS41M2wuNy43QTEgMSAwIDAgMSA2IDNoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTVabS05IDIuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMFptLjUgMS41YS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xWk02IDE0LjVhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBaTTE0LjggN2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q2F0Y2hVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENhdGNoVXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNVYxM2gxLjVhMS41IDEuNSAwIDAgMCAxLjM0LS44M2wuMDQtLjA3IDEuMjQgMi45OGExLjUgMS41IDAgMCAwIDIuNzIuMUwxMS45MyAxM2guNTdhMS41IDEuNSAwIDAgMCAwLTNIMTFhMS41IDEuNSAwIDAgMC0xLjM0LjgzbC0uMDQuMDctMS4yNC0yLjk4YTEuNSAxLjUgMCAwIDAtMi43Mi0uMUw0LjU3IDEwSDRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTcuNDYgOC4zMWEuNS41IDAgMCAwLS45LS4wM0w1LjE4IDExSDMuNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjQ1LS4yOGwxLTIuMDIgMi4wOSA1YS41LjUgMCAwIDAgLjkuMDJMMTEuMzIgMTJoMS4xOWEuNS41IDAgMCAwIDAtMUgxMWEuNS41IDAgMCAwLS40NS4yOGwtMSAyLjAyLTIuMDktNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q2F0Y2hVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDYXRjaFVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY0LjVhLjUuNSAwIDAgMCAxIDBWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF2LTNINHYzYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk03LjQ1IDguM2EuNS41IDAgMCAwLS45LS4wMkw1LjE4IDExSDMuNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjQ1LS4yOGwxLTIuMDIgMi4wOSA1YS41LjUgMCAwIDAgLjkuMDJMMTEuMzIgMTJoMS4xOWEuNS41IDAgMCAwIDAtMUgxMWEuNS41IDAgMCAwLS40NS4yOGwtMSAyLjAyLTIuMDktNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEw0LjUgMTUuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuNmMtLjE4LjM2LS40LjctLjY2IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE1LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENoZXZyb25Eb3VibGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDaGV2cm9uRG91YmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNS42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDAgMCAuNy0uN0wzLjIxIDE0LjVsMS4xNC0xLjE1Wm0yLjMtLjdhLjUuNSAwIDAgMCAwIC43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q2hldnJvbkRvdWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDaGV2cm9uRG91YmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNS42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDAgMCAuNy0uN0wzLjIxIDE0LjVsMS4xNC0xLjE1Wm0yLjMtLjdhLjUuNSAwIDAgMCAwIC43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q29weUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENvcHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgNi41VjJINy41QzYuNjcgMiA2IDIuNjcgNiAzLjV2MTFjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTEgNi41Wm0xIDBWMi4yNUwxNi43NSA3SDEyLjVhLjUuNSAwIDAgMS0uNS0uNVpNNCA1YTEgMSAwIDAgMSAxLTF2MTAuNUEyLjUgMi41IDAgMCAwIDcuNSAxN0gxNWExIDEgMCAwIDEtMSAxSDcuNTVBMy41NSAzLjU1IDAgMCAxIDQgMTQuNDVWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q29weVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDb3B5UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDRjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE0YTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0yVjRabTItMWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoN2ExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDExIDYuNVYzSDhabTQgLjJ2My4zYzAgLjI4LjIyLjUuNS41aDMuM0wxMiAzLjJaTTQgNWExIDEgMCAwIDEgMS0xdjEwYTMgMyAwIDAgMCAzIDNoN2ExIDEgMCAwIDEtMSAxSDcuOTRBMy45NCAzLjk0IDAgMCAxIDQgMTQuMDZWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q3NzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q3NzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djcuNjdhMyAzIDAgMCAxIDEuMzggMUEyLjUgMi41IDAgMCAxIDkuNSAxMmEyLjUgMi41IDAgMCAxIDQuNSAxLjVjMCAuNDQtLjIuODQtLjUgMS4xMi4zMi40Mi41Ljk1LjUgMS41di4zOGMwIC41Ni0uMTkgMS4wOC0uNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMyAxMmEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMSAwIDQgMCAuNS41IDAgMCAwLTEgMCAxIDEgMCAxIDEtMiAwdi0yYTEgMSAwIDEgMSAyIDAgLjUuNSAwIDAgMCAxIDAgMiAyIDAgMCAwLTItMlptOC41IDBjLS44MyAwLTEuNS42Ny0xLjUgMS41di4zOGMwIC41Ny4zMiAxLjA5LjgzIDEuMzRsLjkuNDVhLjUuNSAwIDAgMSAuMjcuNDV2LjM4YS41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwIDEuNSAxLjUgMCAwIDAgMyAwdi0uMzhhMS41IDEuNSAwIDAgMC0uODMtMS4zNGwtLjktLjQ1YS41LjUgMCAwIDEtLjI3LS40NXYtLjM4YS41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNNiAxMy41YTEuNSAxLjUgMCAwIDEgMyAwIC41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwdi4zOGMwIC4yLjEuMzYuMjguNDVsLjkuNDVjLjUuMjUuODIuNzcuODIgMS4zNHYuMzhhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4zOGEuNS41IDAgMCAwLS4yOC0uNDVsLS45LS40NUExLjUgMS41IDAgMCAxIDYgMTMuODh2LS4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q3NzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAyaC0uNWMuMjItLjMuMzgtLjYzLjQ1LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2Ny43NmEzIDMgMCAwIDAtMS0uNTlWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVaTTMgMTJhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDEgMCA0IDAgLjUuNSAwIDAgMC0xIDAgMSAxIDAgMSAxLTIgMHYtMmExIDEgMCAxIDEgMiAwIC41LjUgMCAwIDAgMSAwIDIgMiAwIDAgMC0yLTJabTguNSAwYy0uODMgMC0xLjUuNjctMS41IDEuNXYuMzhjMCAuNTcuMzIgMS4wOS44MyAxLjM0bC45LjQ1YS41LjUgMCAwIDEgLjI3LjQ1di4zOGEuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMCAxLjUgMS41IDAgMCAwIDMgMHYtLjM4YTEuNSAxLjUgMCAwIDAtLjgzLTEuMzRsLS45LS40NWEuNS41IDAgMCAxLS4yNy0uNDV2LS4zOGEuNS41IDAgMCAxIDEgMCAuNS41IDAgMCAwIDEgMGMwLS44My0uNjctMS41LTEuNS0xLjVaTTYgMTMuNWExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMHYuMzhjMCAuMi4xLjM2LjI4LjQ1bC45LjQ1Yy41LjI1LjgyLjc3LjgyIDEuMzR2LjM4YTEuNSAxLjUgMCAwIDEtMyAwIC41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwdi0uMzhhLjUuNSAwIDAgMC0uMjgtLjQ1bC0uOS0uNDVBMS41IDEuNSAwIDAgMSA2IDEzLjg4di0uMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEN1YmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDdWJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS4zM2EyIDIgMCAwIDAgLjY3LTEuNXYtNGEyIDIgMCAwIDAtMS4xLTEuNzlsLTMtMS41YTIgMiAwIDAgMC0xLjggMGwtLjEuMDVWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVabS01LjU1IDcuODYgMyAxLjVhMSAxIDAgMCAxIC41NS44OXY0YTEgMSAwIDAgMS0uNTUuOWwtMyAxLjVhMSAxIDAgMCAxLS45IDBsLTMtMS41YTEgMSAwIDAgMS0uNTUtLjl2LTRhMSAxIDAgMCAxIC41NS0uOWwzLTEuNWExIDEgMCAwIDEgLjkgMFpNMi43IDEyLjQ3YS41LjUgMCAwIDAtLjQuOTJsMi4yLjk0VjE3YS41LjUgMCAxIDAgMSAwdi0yLjY3bDIuMi0uOTRhLjUuNSAwIDAgMC0uNC0uOTJsLTIuMy45OS0yLjMtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q3ViZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDdWJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjI2bC4xLS4wNUEyIDIgMCAwIDEgNSA5VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFIOS45NGEyIDIgMCAwIDEtLjYxIDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1ptLTkuMzUgMy4xIDMgMS41YTEgMSAwIDAgMSAuNTUuOXY0YTEgMSAwIDAgMS0uNTUuOWwtMyAxLjVhMSAxIDAgMCAxLS45IDBsLTMtMS41YTEgMSAwIDAgMS0uNTUtLjl2LTRhMSAxIDAgMCAxIC41NS0uOWwzLTEuNWExIDEgMCAwIDEgLjkgMFpNMi43IDEyLjQ4YS41LjUgMCAwIDAtLjQuOTJsMi4yLjk0VjE3YS41LjUgMCAxIDAgMSAwdi0yLjY3bDIuMi0uOTRhLjUuNSAwIDAgMC0uNC0uOTJsLTIuMy45OS0yLjMtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0wIDUuNWMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wk03LjUgOGMuMjggMCAuNS4yMi41LjV2N2EuNS41IDAgMCAxLTEgMHYtN2MwLS4yOC4yMi0uNS41LS41Wm01IDJjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCA4LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptMiAzLjVjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVptMy0xLjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVpNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2Wm01LjUgNGgzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNVYxM2gzVjguNWEuNS41IDAgMCAxIDEgMHY0LjU0Yy41NS4wNyAxLjA2LjI4IDEuNS41OVYxMi41YS41LjUgMCAwIDEgMSAwdjIuMmEzLjQ4IDMuNDggMCAwIDEgLjE2IDMuM2gzLjg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTIuNSAzLjVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTMuNSAxNGEyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YUxpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggOC41YS41LjUgMCAwIDAtMSAwVjEzaC41Yy4xNyAwIC4zNC4wMS41LjA0VjguNVpNNSA0djlINFY0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAyaC0zLjM0Yy4xNS0uMzEuMjUtLjY1LjMtMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMVptNS41IDguNXYyLjJjLS4yNS0uNDMtLjYtLjgtMS0xLjA3VjEyLjVhLjUuNSAwIDAgMSAxIDBabTIuNS0yYS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaTTExLjUgN2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTggN2EyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEwdi00YTIgMiAwIDAgMC0xLjUtMS45NFYxMkEzIDMgMCAwIDAgNCA5LjRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVabTMgOC4yNWEuNS41IDAgMCAwLTEgMHY1YS41LjUgMCAwIDAgMSAwdi01Wk0xMSAxMmEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLS41LS41Wm0tNy41IDB2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhTG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMTdoNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1LjA0Yy0uMzYuMDYtLjcuMTktMSAuMzZWNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMmgtNHYtMVptNC44LTEwTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVoMy4zWk0zLjUgMTJ2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41Wm04LTUuMjVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVptLTIgMi41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGFiYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YWJhc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNGMuMy0uNDMuNS0uOTMuNS0xLjVWMTAuM2MtLjExLTEuNDItMS40LTIuMzYtMi42NS0yLjgzQTguODYgOC44NiAwIDAgMCA0IDcuMTJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTYuODggOC4xMmMuNC4wNy43OC4xNyAxLjEyLjMgMS4yLjQ1IDIgMS4yMSAyIDIuMDggMCAxLjM4LTIuMDEgMi41LTQuNSAyLjVTMSAxMS44OCAxIDEwLjUgMy4wMSA4IDUuNSA4Yy40OCAwIC45NC4wNCAxLjM4LjEyWk01LjUgMTRjMS4zOCAwIDIuNjgtLjMgMy42Ny0uODYuMy0uMTYuNTgtLjM2LjgzLS41OXYzLjk1YzAgMS4zOC0yLjAxIDIuNS00LjUgMi41UzEgMTcuODggMSAxNi41di0zLjk1Yy4yNS4yMy41NC40My44My42IDEgLjU0IDIuMjkuODUgMy42Ny44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YWJhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YWJhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjMuMTNjLjMyLS4wNi42Ni0uMSAxLS4xMlY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjA1Yy0uMDguMzctLjI0LjctLjQ1IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNNi44NyA4LjEyYy40LjA3Ljc4LjE3IDEuMTIuMyAxLjIuNDUgMiAxLjIxIDIgMi4wOCAwIDEuMzgtMi4wMSAyLjUtNC41IDIuNVMxIDExLjg4IDEgMTAuNSAzLjAxIDggNS41IDhjLjQ4IDAgLjk0LjA0IDEuMzguMTJaTTUuNSAxNGMxLjM4IDAgMi42OC0uMyAzLjY3LS44Ni4zLS4xNi41OC0uMzYuODMtLjU5djMuOTVjMCAxLjM4LTIuMDEgMi41LTQuNSAyLjVTMSAxNy44OCAxIDE2LjV2LTMuOTVjLjI1LjIzLjU0LjQzLjgzLjYgMSAuNTQgMi4yOS44NSAzLjY3Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMi4zMiAxNy42OGE0LjUgNC41IDAgMSAwIDYuMzYtNi4zNiA0LjUgNC41IDAgMCAwLTYuMzYgNi4zNlptMS40MS00Ljk1Yy4yLS4yLjUxLS4yLjcgMEw1LjUgMTMuOGwxLjA2LTEuMDZhLjUuNSAwIDEgMSAuNy43TDYuMjIgMTQuNWwxLjA2IDEuMDZhLjUuNSAwIDEgMS0uNzEuN0w1LjUgMTUuMjJsLTEuMDYgMS4wNmEuNS41IDAgMSAxLS43LS43MWwxLjA1LTEuMDYtMS4wNi0xLjA2YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk04LjY3IDE3LjY4YTQuNSA0LjUgMCAxIDAtNi4zNi02LjM2IDQuNSA0LjUgMCAwIDAgNi4zNiA2LjM2Wm0tNC45NS00Ljk1Yy4yLS4yLjUxLS4yLjcgMEw1LjUgMTMuOGwxLjA2LTEuMDZhLjUuNSAwIDEgMSAuNy43TDYuMjIgMTQuNWwxLjA2IDEuMDZhLjUuNSAwIDEgMS0uNzEuN0w1LjUgMTUuMjJsLTEuMDYgMS4wNmEuNS41IDAgMSAxLS43LS43MWwxLjA1LTEuMDYtMS4wNi0xLjA2YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoMi43MmExLjg2IDEuODYgMCAwIDEtLjE2LTEuMzVsLjM3LTEuNWEzLjIgMy4yIDAgMCAxIC44NC0xLjQ4bDQuODMtNC44M2MuNTMtLjUzIDEuMjEtLjggMS45LS44NGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVptNi40NSAzLjA1YTEuODcgMS44NyAwIDAgMC0yLjY0IDBsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYy43My0uNzMuNzMtMS45MSAwLTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA4SDE2di0uNTlhMS41IDEuNSAwIDAgMC0uMDYtLjRWN2ExLjUgMS41IDAgMCAwLS4zOC0uNjVsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMi4yMmwtLjAxLS4wM0ExLjg2IDEuODYgMCAwIDEgOCAxN0g2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41Wm0wLTFhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3aC0zLjNabTMuMyAyLjU1YTEuODcgMS44NyAwIDEgMSAyLjY1IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJsNC44My00LjgzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFbmRub3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RW5kbm90ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExdi02YTIgMiAwIDAgMC0yLTJINFYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMy41IDExYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDFhLjUuNSAwIDAgMSAwIDFoLTFBMS41IDEuNSAwIDAgMSAxIDE3LjV2LTVjMC0uODMuNjctMS41IDEuNS0xLjVoMVptNCA3YS41LjUgMCAwIDAgMCAxaDFjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMWEuNS41IDAgMCAwIDAgMWgxYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtMVpNNiAxNC41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDEgMCAxIDB2LTNabTAtMmEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RW5kbm90ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFbmRub3RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY2aDFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtM3YxaDNhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMy41IDExYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDFhLjUuNSAwIDAgMSAwIDFoLTFBMS41IDEuNSAwIDAgMSAxIDE3LjV2LTVjMC0uODMuNjctMS41IDEuNS0xLjVoMVptNCA3YS41LjUgMCAwIDAgMCAxaDFjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMWEuNS41IDAgMCAwIDAgMWgxYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtMVptLTItNGMuMjcgMCAuNS4yMi41LjV2M2EuNS41IDAgMSAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wm0wLTFhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVycm9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAxMmEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVycm9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk01LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZabTEuNSAzYS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xQzYgNC42NyA2LjY3IDQgNy41IDRoMWEuNS41IDAgMCAxIDAgMWgtMVptMCAxMGgxYS41LjUgMCAwIDEgMCAxaC0xQTEuNSAxLjUgMCAwIDEgNiAxNC41di0xYS41LjUgMCAwIDEgMSAwdjFjMCAuMjguMjIuNS41LjVaTTEzIDUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDEgMC0xaDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWEuNS41IDAgMCAxLTEgMHYtMVptLS41IDkuNWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDEgMSAwdjFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xYS41LjUgMCAwIDEgMC0xaDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wk01IDRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNFptMi41IDFhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMS0xIDB2LTFDNiA0LjY3IDYuNjcgNCA3LjUgNGgxYS41LjUgMCAwIDEgMCAxaC0xWm0wIDEwYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMC0xIDB2MWMwIC44My42NyAxLjUgMS41IDEuNWgxYS41LjUgMCAwIDAgMC0xaC0xWk0xMyA1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAxIDAtMWgxYy44MyAwIDEuNS42NyAxLjUgMS41djFhLjUuNSAwIDAgMS0xIDB2LTFabS0uNSA5LjVhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAxIDEgMHYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWEuNS41IDAgMCAxIDAtMWgxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGbG93Y2hhcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGbG93Y2hhcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0tNCAxYzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVIOHYxLjhMOS4yIDEzSDExdi0uNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjVWMTRIOS4ybC0xLjM1IDEuMzVhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN0w3IDExLjc5VjEwaC0uNWEuNS41IDAgMCAxLS41LS41di0yWm01LTFWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rmxvd2NoYXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZsb3djaGFydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA3LjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNUg4djEuOEw5LjIgMTNIMTF2LS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNVYxNEg5LjJsLTEuMzUgMS4zNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43TDcgMTEuNzlWMTBoLS41YS41LjUgMCAwIDEtLjUtLjV2LTJaTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZaTTUgNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNFptOS44IDNoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvbGRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvbGRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAyYTIgMiAwIDAgMSAyIDJ2N2gtLjg4TDkgNi44OEEzIDMgMCAwIDAgNi44OCA2SDVhMyAzIDAgMCAwLTEgLjE3VjRjMC0xLjEuOS0yIDItMmg2Wm0zIDlhMyAzIDAgMCAxIDEgLjE3VjZhMiAyIDAgMCAwLTEtMS43M1YxMVpNNSA3YTIgMiAwIDAgMC0yIDJ2Ni41QTIuNSAyLjUgMCAwIDAgNS41IDE4aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE0YTIgMiAwIDAgMC0yLTJoLTEuODhhMSAxIDAgMCAxLS43LS4zTDguMjggNy42QTIgMiAwIDAgMCA2Ljg4IDdINVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9sZGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvbGRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgMmEyIDIgMCAwIDEgMiAydjhoMVY0LjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y2LjI3Yy42LjM0IDEgLjk5IDEgMS43M3YxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNS41VjlhMiAyIDAgMCAxIDEtMS43M1Y0YzAtMS4xLjktMiAyLTJoNlpNNSA3aDEuODhhMiAyIDAgMCAxIDEuNDEuNTlsNC4xMiA0LjEyYTEgMSAwIDAgMCAuNTkuMjhWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzWk00IDl2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjE0YTEgMSAwIDAgMC0xLTFoLTEuODhhMiAyIDAgMCAxLTEuNDEtLjU5TDcuNTkgOC4zQTEgMSAwIDAgMCA2Ljg4IDhINWExIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb290ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGb290ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZabTEgMTJoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMSAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9vdGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvb3RlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZaTTUgNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm0yIDEwYTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvb3RlckRpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGb290ZXJEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTMuOCAwIDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43TDE0LjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTUuMjEgNS41Wm0tLjcgNS41YTUuNSA1LjUgMCAwIDAgMS41LS4yVjE2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg0LjI2YTUuNSA1LjUgMCAwIDAgNC4yNCA5Wk03IDE0YTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvb3RlckRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9vdGVyRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTQuNSA0Ljc5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNS4yMSA1LjVsMS4xNC0xLjE1Wk0xNSAxNnYtNS4wMmMuMzQtLjAzLjY4LS4xIDEtLjE5VjE2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg0LjI2Yy0uMjYuMy0uNDguNjQtLjY2IDFINmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xWm0tOC0yYTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMSAyaDZhMSAxIDAgMSAxIDAgMkg3YTEgMSAwIDAgMSAwLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wk01IDRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNFptMiAwYTEgMSAwIDAgMCAwIDJoNmExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckFycm93RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZBNS41IDUuNSAwIDAgMSAxNiA5LjJWNGEyIDIgMCAwIDAtMi0ySDZabTEgMmg2YTEgMSAwIDEgMSAwIDJIN2ExIDEgMCAwIDEgMC0yWm0xMiAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDE1IDE1LjI5VjEyLjVhLjUuNSAwIDAgMC0xIDB2Mi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyQXJyb3dEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckFycm93RG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0LjI2YTUuNSA1LjUgMCAwIDEtLjY2LTFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NS4wMmMuMzQuMDMuNjguMSAxIC4xOVY0YTIgMiAwIDAgMC0yLTJINlptMSAyYTEgMSAwIDAgMCAwIDJoNmExIDEgMCAxIDAgMC0ySDdabTEyIDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1IDIuMzVhLjUuNSAwIDAgMCAuMzUuMTUuNS41IDAgMCAwIC4zNS0uMTVsMi0yYS41LjUgMCAwIDAtLjctLjdMMTUgMTUuMjlWMTIuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXJEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZBNS41IDUuNSAwIDAgMSAxNiA5LjJWNGEyIDIgMCAwIDAtMi0ySDZabTEgMmg2YTEgMSAwIDEgMSAwIDJIN2ExIDEgMCAwIDEgMC0yWm0xMiAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMkg2Wm0xIDJhMSAxIDAgMCAwIDAgMmg2YTEgMSAwIDEgMCAwLTJIN1ptMTIgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckZvb3RlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckZvb3RlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMiAxYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAxIDAgMC0ySDdhMSAxIDAgMCAwLTEgMVptMCAxMGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMSAwIDAtMkg3YTEgMSAwIDAgMC0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckZvb3RlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJGb290ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNWExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMSAxIDAgMkg3YTEgMSAwIDAgMS0xLTFabTAgMTBhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDEgMSAwIDJIN2ExIDEgMCAwIDEtMS0xWk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptOCAxYTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYXJ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjVWOWMuNy4wMyAxLjQuMjUgMiAuNjZhMy44NSAzLjg1IDAgMCAxIDQuODggNS45MUw4LjQ1IDE4aDYuMDVjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptMSAwVjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVabS00Ljg2IDQuMzNhMi44NSAyLjg1IDAgMSAxIDQuMDMgNC4wNGwtMy44MiAzLjgxYS41LjUgMCAwIDEtLjcgMGwtMy44Mi0zLjgxYTIuODUgMi44NSAwIDEgMSA0LjAzLTQuMDRsLjE0LjE0LjE0LS4xNFptNC4wMyA0LjA0LS4zNi0uMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJIOC40NWwxLTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS4xN2MtLjMzLS4xLS42Ni0uMTUtMS0uMTdWNFptNy0uOHYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDExIDMuMlpNNS42NSAxOC42OWEuNS41IDAgMCAwIC43IDBsMy44Mi0zLjgxYTIuODUgMi44NSAwIDEgMC00LjAzLTQuMDRsLS4xNC4xNC0uMTMtLjE0YTIuODUgMi44NSAwIDEgMC00LjA0IDQuMDRsMy44MiAzLjgxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFydFB1bHNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnRQdWxzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguNDVsMi40My0yLjQzQTMuODUgMy44NSAwIDAgMCA2IDkuNjZjLS42LS40MS0xLjMtLjYzLTItLjY2VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wm0tLjgzIDguNThhMi44NSAyLjg1IDAgMCAwLTQuMDMgMGwtLjE0LjE0LS4xNC0uMTRBMi44NSAyLjg1IDAgMCAwIDEgMTNoMS43bC41NS0uODNhMS41IDEuNSAwIDAgMSAyLjU0LjA2bC4zNS41OS4xNi0uMjJhMS41IDEuNSAwIDAgMSAyLjI2LS4xNmwuNTYuNTZIMTFhMi44NCAyLjg0IDAgMCAwLS44My0yLjE3Wm0tNC41MiA3Ljg1TDIuOTcgMTZoMS41OGwuMTYuMjdhMS41IDEuNSAwIDAgMCAyLjQ5LjEzbC4zLS40aDEuNTNsLTIuNjggMi42OGEuNS41IDAgMCAxLS43IDBaTTQuNSAxMi41Yy4xNyAwIC4zMy4xLjQyLjI0bDEuMTIgMS44N0w3LjEgMTMuMmEuNS41IDAgMCAxIC43NS0uMDVsLjg2Ljg1SDEwYS41LjUgMCAwIDEgMCAxSDguNWEuNS41IDAgMCAxLS4zNS0uMTVsLS42LS41OUw2LjQgMTUuOGEuNS41IDAgMCAxLS44My0uMDRsLTEuMS0xLjgzLS41NS44NWEuNS41IDAgMCAxLS40Mi4yMkgyYS41LjUgMCAwIDEgMC0xaDEuMjNsLjg1LTEuMjhhLjUuNSAwIDAgMSAuNDMtLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFydFB1bHNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYXJ0UHVsc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjVjLjM0LjAyLjY3LjA3IDEgLjE3VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFIOS40NWwtMSAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS05LjY0IDQuNTRBMS44NSAxLjg1IDAgMCAwIDIgMTNIMWEyLjg0IDIuODQgMCAwIDEgNC44Ni0yLjE3bC4xMy4xNC4xNC0uMTRBMi44NSAyLjg1IDAgMCAxIDExIDEzaC0xYTEuODUgMS44NSAwIDAgMC0zLjE1LTEuNDZsLS41LjVhLjUuNSAwIDAgMS0uNyAwbC0uNS0uNVpNMi45NiAxNmgxLjQyTDYgMTcuNjIgNy42MiAxNmgxLjQybC0yLjY4IDIuNjhhLjUuNSAwIDAgMS0uNzEgMEwyLjk3IDE2Wm0xLjU0LTRjLjIgMCAuMzYuMS40NS4yOGwxLjE0IDIuMjdMNy4xIDEzLjJhLjUuNSAwIDAgMSAuNzYtLjA1bC44NS44NUgxMGEuNS41IDAgMCAxIDAgMUg4LjVhLjUuNSAwIDAgMS0uMzUtLjE1bC0uNi0uNTlMNi40IDE1LjhhLjUuNSAwIDAgMS0uODQtLjA4bC0xLjA2LTIuMS0uNTUgMS4xYS41LjUgMCAwIDEtLjQ1LjI4SDJhLjUuNSAwIDAgMSAwLTFoMS4ybC44Ni0xLjcyQS41LjUgMCAwIDEgNC41IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRJbWFnZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTMuODRjLjIyLS40NS4zNC0uOTYuMzQtMS41di00QTMuNSAzLjUgMCAwIDAgNy41IDlINFYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMSAxMi41QTIuNSAyLjUgMCAwIDEgMy41IDEwaDRhMi41IDIuNSAwIDAgMSAyLjUgMi41djRjMCAuNS0uMTUuOTgtLjQxIDEuMzhsLTMuMDMtMy4wM2ExLjUgMS41IDAgMCAwLTIuMTIgMEwxLjQgMTcuODhDMS4xNSAxNy40OCAxIDE3IDEgMTYuNXYtNFptNyAuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptLTUuODggNS44NGMuNC4yNi44Ny40MSAxLjM4LjQxaDRjLjUxIDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMEwyLjEyIDE4LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEltYWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEltYWdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1aDFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy4wNGMtLjA1LjM1LS4xNS42OS0uMyAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEgMTIuNUEyLjUgMi41IDAgMCAxIDMuNSAxMGg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBMMS40IDE3Ljg4QzEuMTUgMTcuNDggMSAxNyAxIDE2LjV2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41MSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBMMi4xMiAxOC42WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKYXZhRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SmF2YUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnYzLjAyYy0uNS4wOC0uOTIuNDEtMS4xMy44OGExLjUgMS41IDAgMCAwLTIuNzkuMWwtLjMzLjk2LS4zMy0uOTZhMS41IDEuNSAwIDAgMC0yLjgtLjEgMS41IDEuNSAwIDAgMC0yLjc5LjFMNSAxNC40VjEyLjVjMC0uNjUtLjQyLTEuMi0xLTEuNDFWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTExLjc1IDE4YS41LjUgMCAwIDAgLjQ3LS4zM2wxLjc1LTVhLjUuNSAwIDEgMC0uOTQtLjMzbC0xLjI4IDMuNjUtMS4yOC0zLjY1YS41LjUgMCAxIDAtLjk0LjMzbDEuNzUgNWMuMDcuMi4yNi4zMy40Ny4zM1ptNC45Ny01LjY2YS41LjUgMCAwIDAtLjk0IDBsLTEuNzUgNWEuNS41IDAgMSAwIC45NC4zM2wuMjMtLjY3aDIuMWwuMjMuNjdhLjUuNSAwIDEgMCAuOTQtLjM0bC0xLjc1LTVabS4yMyAzLjY2aC0xLjRsLjctMS45OS43IDEuOTlaTTMuNSAxMmMuMjggMCAuNS4yMi41LjV2NGExLjUgMS41IDAgMCAxLTMgMFYxNmEuNS41IDAgMSAxIDEgMHYuNWEuNS41IDAgMCAwIDEgMHYtNGMwLS4yOC4yMi0uNS41LS41Wm0zLjc1IDBjLjIxIDAgLjQuMTMuNDcuMzRsMS43NSA1YS41LjUgMCAxIDEtLjk0LjMzTDguMyAxN0g2LjJsLS4yMy42N2EuNS41IDAgMSAxLS45NC0uMzNsMS43NS01YS41LjUgMCAwIDEgLjQ3LS4zNFptMCAyLjAxTDYuNTUgMTZoMS40bC0uNy0xLjk5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKYXZhUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEphdmFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjcuMDljLjU4LjIgMSAuNzYgMSAxLjQxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXYzLjY3YTEuNSAxLjUgMCAwIDEgMS0uNjV2LTMuNmMwLS40LS4xNi0uNzktLjQ0LTEuMDdsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS0zLjA1IDExYS41LjUgMCAwIDAgLjQ3LS4zM2wxLjc1LTVhLjUuNSAwIDEgMC0uOTQtLjMzbC0xLjI4IDMuNjUtMS4yOC0zLjY1YS41LjUgMCAxIDAtLjk0LjMzbDEuNzUgNWMuMDcuMi4yNi4zMy40Ny4zM1ptNC45Ny01LjY2YS41LjUgMCAwIDAtLjk0IDBsLTEuNzUgNWEuNS41IDAgMSAwIC45NC4zM2wuMjMtLjY3aDIuMWwuMjMuNjdhLjUuNSAwIDEgMCAuOTQtLjM0bC0xLjc1LTVabS4yMyAzLjY2aC0xLjRsLjctMS45OS43IDEuOTlaTTMuNSAxMmMuMjggMCAuNS4yMi41LjV2NGExLjUgMS41IDAgMCAxLTMgMFYxNmEuNS41IDAgMSAxIDEgMHYuNWEuNS41IDAgMCAwIDEgMHYtNGMwLS4yOC4yMi0uNS41LS41Wm0zLjc1IDBjLjIxIDAgLjQuMTMuNDcuMzRsMS43NSA1YS41LjUgMCAxIDEtLjk0LjMzTDguMyAxN0g2LjJsLS4yMy42N2EuNS41IDAgMSAxLS45NC0uMzNsMS43NS01YS41LjUgMCAwIDEgLjQ3LS4zNFptMCAyLjAxTDYuNTUgMTZoMS40bC0uNy0xLjk5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKYXZhc2NyaXB0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SmF2YXNjcmlwdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY3LjU5Yy4zMi4xLjU5LjMzLjc3LjZBMi41IDIuNSAwIDAgMSA5IDEzLjVjMCAuNDQtLjIuODQtLjUgMS4xMi4zMi40Mi41Ljk1LjUgMS41di4zOGMwIC41Ni0uMTkgMS4wOC0uNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDEyYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDEtMSAwVjE2YS41LjUgMCAwIDAtMSAwdi41YTEuNSAxLjUgMCAwIDAgMyAwdi00YS41LjUgMCAwIDAtLjUtLjVaTTUgMTMuNWExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMHYuMzhjMCAuMi4xLjM2LjI4LjQ1bC45LjQ1Yy41LjI1LjgyLjc3LjgyIDEuMzR2LjM4YTEuNSAxLjUgMCAwIDEtMyAwIC41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwdi0uMzhhLjUuNSAwIDAgMC0uMjgtLjQ1bC0uOS0uNDVBMS41IDEuNSAwIDAgMSA1IDEzLjg4di0uMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEphdmFzY3JpcHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SmF2YXNjcmlwdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDguNWMuMjItLjMuMzgtLjYzLjQ1LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2Ny41bC0uMjMuMmExLjUgMS41IDAgMCAwLS43Ny0uNjFWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabS04IDVhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMS0xIDBWMTZhLjUuNSAwIDAgMC0xIDB2LjVhMS41IDEuNSAwIDAgMCAzIDB2LTRhLjUuNSAwIDAgMC0uNS0uNVpNNSAxMy41YTEuNSAxLjUgMCAwIDEgMyAwIC41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwdi4zOGMwIC4yLjEuMzYuMjguNDVsLjkuNDVjLjUuMjUuODIuNzcuODIgMS4zNHYuMzhhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4zOGEuNS41IDAgMCAwLS4yOC0uNDVsLS45LS40NUExLjUgMS41IDAgMCAxIDUgMTMuODh2LS4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50S2V5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50S2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djFoLS4wM2EzLjkxIDMuOTEgMCAwIDAtMy42NCAyLjM4IDMuNzIgMy43MiAwIDAgMC0uMyAxLjk4bC0yLjU5IDIuNThDOS4xNiAxNi4yMiA5IDE2LjYgOSAxN3YxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTNDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVptLS44NSAxNi42Yy4xLjEuMjEuMTUuMzUuMTVoMmMuMTEgMCAuMi0uMDMuMjctLjA3LjA3LS4wNC4xMi0uMS4xNS0uMTdhLjg2Ljg2IDAgMCAwIC4wNi0uMjRsLjAyLS4yNVYxOGwuNTYtLjAyYS40Ny40NyAwIDAgMCAuMy0uMTJjLjA3LS4wNy4xMS0uMTcuMTItLjNMMTQgMTdoLjVjLjEgMCAuMi0uMDIuMjctLjA3YS41LjUgMCAwIDAgLjE1LS4xNy42NS42NSAwIDAgMCAuMDctLjI0IDIuMzQgMi4zNCAwIDAgMCAuMDEtLjV2LS4yYy4xNy4wNy4zNS4xMS41Mi4xNGEyLjg3IDIuODcgMCAwIDAgMi42Mi0uODZBMy4xMSAzLjExIDAgMCAwIDE5IDEzYTIuOTQgMi45NCAwIDAgMC0uODgtMi4xMyAzIDMgMCAwIDAtNS4wMyAyLjg0bC0yLjk0IDIuOTRjLS4xLjEtLjE1LjIxLS4xNS4zNXYxLjVjMCAuMTQuMDUuMjUuMTUuMzVabTcuMTMtNy4xM2MuMTUuMTQuMjIuMzIuMjIuNTMgMCAuMi0uMDcuMzktLjIyLjUzYS43Mi43MiAwIDAgMS0uNTMuMjIuNzIuNzIgMCAwIDEtLjUzLS4yMi43Mi43MiAwIDAgMS0uMjItLjUzYzAtLjIuMDctLjM5LjIyLS41M2EuNzIuNzIgMCAwIDEgLjUzLS4yMmMuMiAwIC4zOS4wNy41My4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50S2V5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEtleVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgzdi0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2MS4xM2MuMzItLjA4LjY0LS4xMi45Ny0uMTNIMTZWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS00LjY1IDExLjg1Yy4xLjEuMjEuMTUuMzUuMTVoMmMuMTEgMCAuMi0uMDMuMjctLjA3LjA3LS4wNC4xMi0uMS4xNS0uMTdhLjg2Ljg2IDAgMCAwIC4wNi0uMjRsLjAyLS4yNVYxOGwuNTYtLjAyYS40Ny40NyAwIDAgMCAuMy0uMTJjLjA3LS4wNy4xMS0uMTcuMTItLjNMMTQgMTdjLjUgMCAuNjMuMDIuNzctLjA3YS41LjUgMCAwIDAgLjE1LS4xNy42NS42NSAwIDAgMCAuMDctLjI0Yy4wMy0uMjMuMDEtLjQ2LjAxLS43LjE3LjA3LjM1LjExLjUyLjE0YTIuODcgMi44NyAwIDAgMCAyLjYyLS44NkEzLjExIDMuMTEgMCAwIDAgMTkgMTNhMi45NCAyLjk0IDAgMCAwLS44OC0yLjEzIDMgMyAwIDAgMC01LjAzIDIuODRsLTIuOTQgMi45NGMtLjEuMS0uMTUuMjEtLjE1LjM1djEuNWMwIC4xNC4wNS4yNS4xNS4zNVptNy4zNS02LjZjMCAuNDEtLjM0Ljc1LS43NS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NWMwLS40MS4zNC0uNzUuNzUtLjc1cy43NS4zNC43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDEwaC00LjVBMS41IDEuNSAwIDAgMSAxMiA4LjVWNEgzLjVDMi42NyA0IDIgNC42NyAyIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEzYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMFptLS4yNS0xSDEzLjVhLjUuNSAwIDAgMS0uNS0uNVY0LjI1TDE3Ljc1IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE0Wm0tMiAxYTEgMSAwIDAgMCAxLTF2LTRoLTMuNUExLjUgMS41IDAgMCAxIDEyIDguNVY1SDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMTJabS0zLTkuOHYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDEzIDUuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlRGF0YUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZURhdGFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFaTTkgN2ExIDEgMCAwIDEgMiAwdjZhMSAxIDAgMSAxLTIgMFY3Wm01IDFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDEgMS0yIDBWOWExIDEgMCAwIDEgMS0xWm0tOSAzYTEgMSAwIDEgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVEYXRhUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZURhdGFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSA0QTIuNSAyLjUgMCAwIDAgMiA2LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDRoLTExWk0zIDYuNUMzIDUuNjcgMy42NyA1IDQuNSA1aDExYy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgMTMuNXYtN1pNNiAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVabS0uNSAxLjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptMy00YTEuNSAxLjUgMCAxIDEgMyAwdjVhMS41IDEuNSAwIDAgMS0zIDB2LTVaTTEwIDdhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDB2LTVBLjUuNSAwIDAgMCAxMCA3Wm00IDFjLS44MyAwLTEuNS42Ny0xLjUgMS41djNhMS41IDEuNSAwIDAgMCAzIDB2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0tLjUgMS41YS41LjUgMCAwIDEgMSAwdjNhLjUuNSAwIDAgMS0xIDB2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlU3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIgOC41VjRoLTJ2MTJoNmEyIDIgMCAwIDAgMi0ydi00aC00LjVBMS41IDEuNSAwIDAgMSAxMiA4LjVaTTkgMTZINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg1djEyWm00LTcuNVY0LjA2Yy4yNC4wNy40Ny4yLjY1LjM4bDMuOTEgMy45MWMuMTguMTguMzEuNC4zOC42NUgxMy41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZVNwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiAxNmEyIDIgMCAwIDAgMi0yVjkuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMi41OSA0SDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJabTEtMmExIDEgMCAwIDEtMSAxaC02VjVoMnYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTd2NFpNOSA1djEwSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoNVptNCAzLjVWNS4yTDE2LjggOWgtMy4zYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0SGludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZVNwbGl0SGludEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMSAxIDAgMCAxIDEtMWguNWEuNS41IDAgMCAwIDAtMUg0YTIgMiAwIDAgMC0yIDJ2LjVhLjUuNSAwIDAgMCAxIDBWNlptMSA5YTEgMSAwIDAgMS0xLTF2LS41YS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFINFpNMi41IDhjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVptNC00YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNi03VjRoLTEuNWEuNS41IDAgMCAwLS41LjV2MTFjMCAuMjguMjIuNS41LjVIMTZhMiAyIDAgMCAwIDItMnYtNGgtNC41QTEuNSAxLjUgMCAwIDEgMTIgOC41Wm0xIDBWNC4wNmMuMjQuMDcuNDcuMi42NS4zOGwzLjkxIDMuOTFjLjE4LjE4LjMxLjQuMzguNjVIMTMuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVTcGxpdEhpbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlU3BsaXRIaW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMSAxIDAgMCAxIDEtMWguNWEuNS41IDAgMCAwIDAtMUg0YTIgMiAwIDAgMC0yIDJ2LjVhLjUuNSAwIDAgMCAxIDBWNlptNi41LTJhLjUuNSAwIDAgMC0uNS41djExYzAgLjI4LjIyLjUuNS41SDE2YTIgMiAwIDAgMCAyLTJWOS40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEyLjU5IDRIOS41Wm0uNSAxMVY1aDJ2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE3djRhMSAxIDAgMCAxLTEgMWgtNlptMy41LTZhLjUuNSAwIDAgMS0uNS0uNVY1LjJMMTYuOCA5aC0zLjNaTTMgMTRhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAxIDAgMUg0YTIgMiAwIDAgMS0yLTJ2LS41YS41LjUgMCAwIDEgMSAwdi41Wm0wLTUuNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWm0zLTRjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaTTYuNSAxNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaWdodG5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaWdodG5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg2Ljg2bDMuMTgtMi45N2ExLjc1IDEuNzUgMCAwIDAtLjktM2wuMzQtMS4wNkExLjUgMS41IDAgMCAwIDguMDYgOUg0LjU5Yy0uMjEgMC0uNC4wNC0uNTkuMTJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTIuNSAxNmgxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM0YS41LjUgMCAwIDAtLjQ3LS42Nkg0LjU5YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaWdodG5pbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGlnaHRuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjEyYy4xOC0uMDguMzgtLjEyLjU5LS4xMkg1VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFINy45M2wtMS4wNyAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTIuNSAxNmgxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM0YS41LjUgMCAwIDAtLjQ3LS42Nkg0LjU5YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zLjg0YTMuNSAzLjUgMCAwIDAtMy4xNi01SDRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTMuNSAxNGEyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlua1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaW5rUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY5aDFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy4wNGMtLjA1LjM1LS4xNS42OS0uMyAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTMuNSAxNGEyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYtNGEyIDIgMCAwIDAtMS41LTEuOTRWMTJBMyAzIDAgMCAwIDQgOS40VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0zLjUgMTJ2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuNGMuMy0uMTcuNjQtLjMgMS0uMzZWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtNHYxaDRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMy41IDEydjFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TWFyZ2luc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE1hcmdpbnNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMnYtMy41YS41LjUgMCAwIDEgMSAwVjE4aDZ2LTMuNWEuNS41IDAgMCAxIDEgMFYxOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMnYzLjVhLjUuNSAwIDAgMS0xIDBWMkg3djMuNWEuNS41IDAgMCAxLTEgMFYyWm0uNSAxMWEuNS41IDAgMCAxLS41LS41di01YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0uNS41Wm03IDBhLjUuNSAwIDAgMS0uNS0uNXYtNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TWFyZ2luc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNYXJnaW5zUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgMTNhLjUuNSAwIDAgMS0uNS0uNXYtNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtLjUuNVptNyAwYS41LjUgMCAwIDEtLjUtLjV2LTVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLS41LjVaTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0zLTF2Mi41YS41LjUgMCAwIDEtMSAwVjNhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxdi0yLjVhLjUuNSAwIDAgMSAxIDBWMTdoNnYtMi41YS41LjUgMCAwIDEgMSAwVjE3YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xdjIuNWEuNS41IDAgMCAxLTEgMFYzSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE1lbnRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNZW50aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOC4zOWwtLjA0LS4xOEM5Ljk1IDE3LjYzIDExIDE2LjEgMTEgMTQuNWE1LjUgNS41IDAgMCAwLTctNS4zVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDAtMy4xNCA0LjI5bC4xOS0uMDYuMDYtLjAzYS41NC41NCAwIDAgMC0uNDMtLjk5bC0uMTQuMDUtLjIuMDZhMy40MyAzLjQzIDAgMSAxIDIuNTgtMy4zMmMwIC43NC0uNDUgMS4yNi0uOSAxLjI2LS4zNCAwLS41NC0uMzYtLjU0LTEuMjZ2LTEuODdhLjU0LjU0IDAgMCAwLTEtLjIgMS44IDEuOCAwIDAgMC0uOTgtLjI3Yy0xLjIyIDAtMS45OCAxLjEtMS45OCAyLjM0IDAgMS4yNS43NiAyLjM0IDEuOTggMi4zNC41NSAwIDEtLjIyIDEuMzQtLjU4LjI2LjM3LjY2LjU4IDEuMTguNTggMS4wOSAwIDEuOTgtMS4wNCAxLjk4LTIuMzRabS01LjQgMGMwLS43Mi4zOC0xLjI2LjktMS4yNnMuOS41NC45IDEuMjYtLjM4IDEuMjYtLjkgMS4yNi0uOS0uNTQtLjktMS4yNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TWVudGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNZW50aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtNGMtLjQzLjQ0LTEgLjc0LTEuNjUuODJsLjA0LjE4SDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTYuNjcgMTcuNzFhLjU0LjU0IDAgMCAxIC40My45OWwtLjA2LjAzLS4xOS4wNkE0LjUgNC41IDAgMSAxIDEwIDE0LjVjMCAxLjMtLjg5IDIuMzQtMS45OCAyLjM0LS41MiAwLS45Mi0uMi0xLjE4LS41OGExLjggMS44IDAgMCAxLTEuMzguNThBMS44MiAxLjgyIDAgMCAxIDQgMTYuMDdhMi42NiAyLjY2IDAgMCAxLS40OC0xLjU3YzAtLjYuMTctMS4xNS40OC0xLjU3YTEuODQgMS44NCAwIDAgMSAyLjQ3LS41LjU0LjU0IDAgMCAxIDEgLjJsLjAxLjA3djEuOGMwIC45LjIgMS4yNi41NCAxLjI2LjQ1IDAgLjktLjUyLjktMS4yNmEzLjQyIDMuNDIgMCAxIDAtMi41OSAzLjMybC4yLS4wNi4xNS0uMDVaTTUgMTMuNDRjLS4yNS4yMi0uNC42LS40IDEuMDYgMCAuNDYuMTUuODQuNCAxLjA2LjE0LjEzLjMxLjIuNS4yLjUyIDAgLjktLjU0LjktMS4yNnMtLjM4LTEuMjYtLjktMS4yNmEuNzQuNzQgMCAwIDAtLjUuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDhjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDkgNi41Wm0xIDBWMi4yNUwxNC43NSA3SDEwLjVhLjUuNSAwIDAgMS0uNS0uNVpNMTcgOWExIDEgMCAwIDAtMS0xdjZhMyAzIDAgMCAxLTMgM0g2YTEgMSAwIDAgMCAxIDFoNi4wNkEzLjk0IDMuOTQgMCAwIDAgMTcgMTQuMDZWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDMuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg3YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgOSA2LjVWM0g2Wm00IC4ydjMuM2MwIC4yOC4yMi41LjUuNWgzLjNMMTAgMy4yWk0xNyA5YTEgMSAwIDAgMC0xLTF2NmEzIDMgMCAwIDEtMyAzSDZhMSAxIDAgMCAwIDEgMWg2LjA2QTMuOTQgMy45NCAwIDAgMCAxNyAxNC4wNlY5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZVBlcmNlbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZVBlcmNlbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1LjY3YTMgMyAwIDAgMSAyIDIuNzFsMS40NC0xLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMiAyLjEyTDguMTIgMTRhMyAzIDAgMCAxIDIuNyAyaDIuNjhjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDkgNi41Wk01IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptLTEgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS0xLjE1IDUuODVhLjUuNSAwIDAgMS0uNy0uN2w2LTZhLjUuNSAwIDAgMSAuNy43bC02IDZabTEwLjIxLjE1aC0yLjIzYTMgMyAwIDAgMCAuMTctMWgyYTMgMyAwIDAgMCAzLTNWOGExIDEgMCAwIDEgMSAxdjUuMDZBMy45NCAzLjk0IDAgMCAxIDEzLjA2IDE4Wk04IDE1YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptLTEgMmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabTMtMTAuNVYyLjI1TDE0Ljc1IDdIMTAuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZVBlcmNlbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQZXJjZW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE0YTIgMiAwIDAgMS0yIDJoLTIuMTdhMyAzIDAgMCAwLS42LTFIMTNhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSA5IDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1Ljc2YTMgMyAwIDAgMC0xLS41OVY0Wm02LS44djMuM2MwIC4yOC4yMi41LjUuNWgzLjNMMTAgMy4yWk04IDE1YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptLTEgMmExIDEgMCAwIDAgMSAxIDEgMSAwIDEgMC0xLTFabTQgMGEzIDMgMCAwIDEtLjE3IDFoMi4yM0EzLjk0IDMuOTQgMCAwIDAgMTcgMTQuMDZWOWExIDEgMCAwIDAtMS0xdjZhMyAzIDAgMCAxLTMgM2gtMlptLTguMTUuODVhLjUuNSAwIDAgMS0uNy0uN2w2LTZhLjUuNSAwIDAgMSAuNy43bC02IDZaTTUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVQcm9oaWJpdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE3djYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTQuN0E1LjUgNS41IDAgMCAwIDYgOS4wMlYzLjVDNiAyLjY3IDYuNjcgMiA3LjUgMkgxMVpNNSA5LjAyVjRhMSAxIDAgMCAwLTEgMXY0LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThaTTEwLjQgMTdjLS4xOC4zNi0uNC43LS42NiAxSDE0YTEgMSAwIDAgMCAxLTFoLTQuNlpNMTIgMi4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMiAyLjI1Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTIuNCAyLjggNC45LTQuOWEzLjUgMy41IDAgMCAxLTQuOSA0LjlabS0uNy0uN2EzLjUgMy41IDAgMCAxIDQuOS00LjlsLTQuOSA0LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE11bHRpcGxlUHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZVByb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggMmEyIDIgMCAwIDAtMiAydjUuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNGExIDEgMCAwIDEgMS0xaDN2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djZhMSAxIDAgMCAxLTEgMWgtNC4wMmMtLjAzLjM0LS4xLjY4LS4xOSAxSDE1YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDExLjU5IDJIOFptNCA0LjVWMy4yTDE1LjggN2gtMy4zYS41LjUgMCAwIDEtLjUtLjVaTTUgOS4wMlY0YTEgMSAwIDAgMC0xIDF2NC4yYy4zMi0uMDguNjYtLjE1IDEtLjE4Wk05Ljc0IDE4Yy4yNi0uMy40OC0uNjQuNjYtMUgxNWExIDEgMCAwIDEtMSAxSDkuNzRaTTEgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMi40IDIuOCA0LjktNC45YTMuNSAzLjUgMCAwIDEtNC45IDQuOVptLS43LS43YTMuNSAzLjUgMCAwIDEgNC45LTQuOWwtNC45IDQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVTeW5jRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS43YTUuNSA1LjUgMCAwIDEgNi44IDYuOGgyLjdjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDkgNi41Wk0xMy4wNiAxOEg5Ljc0Yy4yNi0uMy40OC0uNjQuNjYtMUgxM2EzIDMgMCAwIDAgMy0zVjhhMSAxIDAgMCAxIDEgMXY1LjA2QTMuOTQgMy45NCAwIDAgMSAxMy4wNiAxOFpNMTAgNi41VjIuMjVMMTQuNzUgN0gxMC41YS41LjUgMCAwIDEtLjUtLjVabS05IDhhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTkgMS45OSAwIDAgMC0yLjM4LjM0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSA3IDEyLjE1VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgNCAxNi44NVYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVINWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE11bHRpcGxlU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNGEyIDIgMCAwIDEtMiAyaC0yLjJjLjA4LS4zMi4xNS0uNjYuMTgtMUgxM2ExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDkgNi41VjNINmExIDEgMCAwIDAtMSAxdjUuMDJjLS4zNC4wMy0uNjguMS0xIC4xOVY0Wm02LS44djMuM2MwIC4yOC4yMi41LjUuNWgzLjNMMTAgMy4yWm0uNCAxMy44Yy0uMTguMzYtLjQuNy0uNjYgMWgzLjMyQTMuOTQgMy45NCAwIDAgMCAxNyAxNC4wNlY5YTEgMSAwIDAgMC0xLTF2NmEzIDMgMCAwIDEtMyAzaC0yLjZaTTEgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxIDAtMWguNDdhMS45OSAxLjk5IDAgMCAwLTIuMzguMzQuNS41IDAgMCAxLS43MS0uNzFBMyAzIDAgMCAxIDcgMTIuMTVWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzQTMgMyAwIDAgMSA0IDE2Ljg1VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUg1YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45OSAxLjk5IDAgMCAwIDIuMzgtLjM0LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMS41IDRoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpNNyAxMy41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNS00aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJabTAgMWExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg2Wm03IDMuNWEuNS41IDAgMCAxLS40MS41SDcuNWEuNS41IDAgMCAxLS4wOS0xaDUuMDljLjI4IDAgLjUuMjIuNS41Wm0wIDMuNWEuNS41IDAgMCAxLS40MS41SDcuNWEuNS41IDAgMCAxLS4wOS0xaDUuMDljLjI4IDAgLjUuMjIuNS41Wm0wIDMuNWEuNS41IDAgMCAxLS40MS41SDcuNWEuNS41IDAgMCAxLS4wOS0xaDUuMDljLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NS4yYTUuNSA1LjUgMCAwIDAtNC42Ni44SDcuNWEuNS41IDAgMCAwIDAgMWgyLjc2YTUuNSA1LjUgMCAwIDAgMCA3SDZhMiAyIDAgMCAxLTItMlY0Wm04LjUgMmgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xWm0yIDEzYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0LjI2YTUuNSA1LjUgMCAwIDEtLjY2LTFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NS4wMmMuMzQuMDMuNjguMSAxIC4xOVY0YTIgMiAwIDAgMC0yLTJabS0xIDQuNWEuNS41IDAgMCAxLS40MS41SDcuNWEuNS41IDAgMCAxLS4wOS0xaDUuMDljLjI4IDAgLjUuMjIuNS41Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVabS03LTJoMy44NGMtLjQuMjgtLjc3LjYyLTEuMDggMUg3LjVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VDb2x1bW5zRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUNvbHVtbnNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTMuNSAxYS41LjUgMCAwIDAtLjUuNXY5YS41LjUgMCAwIDAgMSAwdi05YS41LjUgMCAwIDAtLjUtLjVabTUuNS41YS41LjUgMCAwIDAtMSAwdjlhLjUuNSAwIDAgMCAxIDB2LTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VDb2x1bW5zUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VDb2x1bW5zUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDZabTEuNSAyYy4yOCAwIC41LjIyLjUuNXY5YS41LjUgMCAwIDEtMSAwdi05YzAtLjI4LjIyLS41LjUtLjVabTUuNS41YS41LjUgMCAwIDAtMSAwdjlhLjUuNSAwIDAgMCAxIDB2LTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUxpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgzLjA1YTMuNDkgMy40OSAwIDAgMSAyLjQ1LTZoNGMuMTcgMCAuMzQuMDEuNS4wNFY0YTIgMiAwIDAgMC0yLTJINlptMS41IDRoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpNOSAxNS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWguNWEuNS41IDAgMCAxIDAgMWgtLjVhMS41IDEuNSAwIDAgMCAwIDNoLjVhLjUuNSAwIDAgMSAwIDFoLS41QTIuNSAyLjUgMCAwIDEgOSAxNS41Wm02LTIuNWEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNWEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNVptLTMuNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabS00LTVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZUxpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUxpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMy4wNWMtLjMtLjI5LS41NC0uNjMtLjcxLTFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2OGguNWMuMTcgMCAuMzQuMDEuNS4wNFY0YTIgMiAwIDAgMC0yLTJabS0xLjQxIDVhLjUuNSAwIDAgMC0uMDktMUg3LjQxYS41LjUgMCAwIDAgLjA5IDFoNS4wOVpNNy41IDEwYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabTQgM2EyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNWEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNVptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4wMSAzLjggNCA0djEwYzAgMS4xLjkgMiAyIDJoN2EyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0xLjk5IDEuOFpNMTIgNS41YS41LjUgMCAwIDEtLjQxLjVINy41YS41LjUgMCAwIDEtLjA5LTFoNC4wOWMuMjggMCAuNS4yMi41LjVaTTEyIDlhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVpNMTYgOGExIDEgMCAwIDEgMSAxdjUuMDZBMy45NCAzLjk0IDAgMCAxIDEzLjA2IDE4SDdhMSAxIDAgMCAxLTEtMWg3YTMgMyAwIDAgMCAzLTNWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZU11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgNS41YS41LjUgMCAwIDEtLjQxLjVINy41YS41LjUgMCAwIDEtLjA5LTFoNC4wOWMuMjggMCAuNS4yMi41LjVaTTEyIDlhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVpNNiAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZaTTUgMTRWMy44OUExIDEgMCAwIDEgNiAzaDdhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVptMTEtNmExIDEgMCAwIDEgMSAxdjUuMDZBMy45NCAzLjk0IDAgMCAxIDEzLjA2IDE4SDdhMSAxIDAgMCAxLTEtMWg3YTMgMyAwIDAgMCAzLTNWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZVNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNNiAyaDUuNDNsLS40OC4xNUExLjQzIDEuNDMgMCAwIDAgMTAgMy41YTEuNDEgMS40MSAwIDAgMCAuOTcgMS4zNWwxLjA2LjM1Yy4xNS4wNS4zLjEzLjQ3LjI5LjExLjExLjIuMjQuMy40N2wuMDUuMTlBLjUuNSAwIDAgMCAxMi41IDZoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS40M2wuMTUuNDhjLjEuMjUuMjUuNDguNTIuNy4xNC4xLjMuMTYuNDUuMmExLjMgMS4zIDAgMCAwIC43NyAxLjc5bC43Ny4yNWMuMDguMDMuMTYuMDguMjIuMTQuMDUuMDUuMS4xMS4xMi4xOFYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJabTEgMTEuNWMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVptNS41LTRoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZVNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZVNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMS40MyAySDZhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtNS43YS40OC40OCAwIDAgMC0uMTItLjE3LjY0LjY0IDAgMCAwLS4yMi0uMTRMMTUgOS43N1YxNmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNC4wOWExLjQyIDEuNDIgMCAwIDEgLjg2LS44NWwuNDgtLjE1Wm0xLjQyIDQuMTVBLjUuNSAwIDAgMCAxMi41IDZINy40MWEuNS41IDAgMCAwIC4wOSAxaDUuMDlhLjUuNSAwIDAgMCAuMjYtLjg1Wm0tLjI2IDQuMzRhLjUuNSAwIDAgMC0uMDktLjk5SDcuNDFhLjUuNSAwIDAgMCAuMDkgMWg1LjA5Wm0wIDMuNWEuNS41IDAgMCAwLS4wOS0uOTlINy40MWEuNS41IDAgMCAwIC4wOSAxaDUuMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCb3R0b21DZW50ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlQm90dG9tQ2VudGVyRmlsbGVkJywgXCIxZW1cIiwgW1wibTEwLjc1IDEzLjUtLjIyIDEuNUg5LjNsLjIyLTEuNWgxLjI0Wk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTIuNTcgMTQuNDQuMDctLjQ0SDcuNWEuNS41IDAgMCAxIDAtMWguNzhsLjIyLTEuNUg4YS41LjUgMCAwIDEgMC0xaC42NWwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaDEuMjRsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NGwtLjIyIDEuNUgxMmEuNS41IDAgMCAxIDAgMWgtLjZsLS4wOS41OWEuNS41IDAgMCAxLS45OS0uMTVsLjA3LS40NEg5LjE1bC0uMDkuNTlhLjUuNSAwIDAgMS0uOTktLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlQm90dG9tQ2VudGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21DZW50ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wibTguMDcgMTUuNDQuMDctLjQ0SDcuNWEuNS41IDAgMSAxIDAtMWguNzhsLjIyLTEuNUg4YS41LjUgMCAxIDEgMC0xaC42NWwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaDEuMjRsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NGwtLjIyIDEuNUgxMmEuNS41IDAgMCAxIDAgMWgtLjZsLS4wOS41OWEuNS41IDAgMSAxLS45OS0uMTVsLjA3LS40NEg5LjE1bC0uMDkuNTlhLjUuNSAwIDEgMS0uOTktLjE1Wm0yLjY4LTIuOTRIOS41MUw5LjMgMTRoMS4yNGwuMjItMS41Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCb3R0b21MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJvdHRvbUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtNy4yNSAxNC41LjIyLTEuNUg4LjdsLS4yMiAxLjVINy4yNVpNMTQuNSAxOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEzYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDlabS00LjU3LTYuNDQtLjA3LjQ0aC42NGEuNS41IDAgMCAxIDAgMWgtLjc4bC0uMjIgMS41aC41YS41LjUgMCAwIDEgMCAxaC0uNjVsLS4xNiAxLjA3YS41LjUgMCAwIDEtLjk5LS4xNGwuMTQtLjkzSDcuMWwtLjE2IDEuMDdhLjUuNSAwIDAgMS0uOTktLjE0bC4xNC0uOTNINS41YS41LjUgMCAwIDEgMC0xaC43NGwuMjItMS41SDZhLjUuNSAwIDAgMSAwLTFoLjZsLjA5LS41OWEuNS41IDAgMCAxIC45OS4xNUw3LjYgMTJoMS4yNGwuMDktLjU5YS41LjUgMCAwIDEgLjk5LjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlQm90dG9tTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlQm90dG9tTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuOTMgMTAuNTZhLjUuNSAwIDEgMC0xLS4xNWwtLjA4LjU5SDguNjFsLjA3LS40NGEuNS41IDAgMSAwLTEtLjE1TDcuNiAxMUg3YS41LjUgMCAxIDAgMCAxaC40NmwtLjIyIDEuNUg2LjVhLjUuNSAwIDEgMCAwIDFoLjU5bC0uMTQuOTNhLjUuNSAwIDEgMCAxIC4xNGwuMTUtMS4wN2gxLjI0bC0uMTQuOTNhLjUuNSAwIDAgMCAxIC4xNGwuMTUtMS4wN0gxMWEuNS41IDAgMCAwIDAtMWgtLjVsLjIyLTEuNWguNzhhLjUuNSAwIDAgMCAwLTFoLS42NGwuMDctLjQ0Wk04LjI1IDEzLjVsLjIyLTEuNUg5LjdsLS4yMiAxLjVIOC4yNVpNMTQgMThhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOFptMC0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCb3R0b21SaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMS4yNSAxNC41LjIyLTEuNWgxLjI0bC0uMjIgMS41aC0xLjI0Wk0xNC41IDE4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOVptLS41Ny02LjQ0LS4wNy40NGguNjRhLjUuNSAwIDEgMSAwIDFoLS43OGwtLjIyIDEuNWguNWEuNS41IDAgMSAxIDAgMWgtLjY1bC0uMTYgMS4wN2EuNS41IDAgMCAxLS45OS0uMTRsLjE0LS45M0gxMS4xbC0uMTYgMS4wN2EuNS41IDAgMCAxLS45OS0uMTRsLjE0LS45M0g5LjVhLjUuNSAwIDAgMSAwLTFoLjc0bC4yMi0xLjVIMTBhLjUuNSAwIDAgMSAwLTFoLjZsLjA5LS41OWEuNS41IDAgMSAxIC45OS4xNWwtLjA3LjQ0aDEuMjRsLjA5LS41OWEuNS41IDAgMSAxIC45OS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21SaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuOTMgMTAuNTZhLjUuNSAwIDEgMC0xLS4xNWwtLjA4LjU5aC0xLjI0bC4wNy0uNDRhLjUuNSAwIDEgMC0xLS4xNUw5LjYgMTFIOWEuNS41IDAgMCAwIDAgMWguNDZsLS4yMiAxLjVIOC41YS41LjUgMCAwIDAgMCAxaC41OWwtLjE0LjkzYS41LjUgMCAwIDAgMSAuMTRsLjE1LTEuMDdoMS4yNGwtLjE0LjkzYS41LjUgMCAwIDAgMSAuMTRsLjE1LTEuMDdIMTNhLjUuNSAwIDAgMCAwLTFoLS41bC4yMi0xLjVoLjc4YS41LjUgMCAwIDAgMC0xaC0uNjRsLjA3LS40NFptLTIuNjggMi45NC4yMi0xLjVoMS4yNGwtLjIyIDEuNWgtMS4yNFpNMTQgMThhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOFptMC0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCcmVha0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCcmVha0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiA2VjIuNWEuNS41IDAgMCAwLS41LS41aC0xMWEuNS41IDAgMCAwLS41LjVWNmMwIC44My42NyAxLjUgMS40OSAxLjVoOS4wMWMuODIgMCAxLjUtLjY3IDEuNS0xLjVaTTMgOS41YS41LjUgMCAwIDAgMCAxaDEuMmEuNS41IDAgMCAwIDAtMUgzWm0zLjIgMGEuNS41IDAgMCAwIDAgMWgxLjJhLjUuNSAwIDAgMCAwLTFINi4yWm0yLjcuNWMwLS4yOC4yMi0uNS41LS41aDEuMmEuNS41IDAgMCAxIDAgMUg5LjRhLjUuNSAwIDAgMS0uNS0uNVptMy43LS41YS41LjUgMCAwIDAgMCAxaDEuMmEuNS41IDAgMCAwIDAtMWgtMS4yWm0yLjcuNWMwLS4yOC4yMi0uNS41LS41SDE3YS41LjUgMCAwIDEgMCAxaC0xLjJhLjUuNSAwIDAgMS0uNS0uNVptLjcgNy41VjE0YzAtLjgzLS42OC0xLjUtMS41LTEuNUg1LjQ5QTEuNSAxLjUgMCAwIDAgNCAxNHYzLjVjMCAuMjguMjIuNS41LjVoMTFhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJyZWFrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCcmVha1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgMi41VjZjMCAuODMtLjY4IDEuNS0xLjUgMS41SDUuNDlBMS41IDEuNSAwIDAgMSA0IDZWMi41YS41LjUgMCAxIDEgMSAwVjZjMCAuMjguMjEuNS40OS41aDkuMDFBLjUuNSAwIDAgMCAxNSA2VjIuNWMwLS4yOC4yMy0uNS41LS41cy41LjIyLjUuNVptLTEzIDdhLjUuNSAwIDAgMCAwIDFoMS4yYS41LjUgMCAwIDAgMC0xSDNabTMuMiAwYS41LjUgMCAwIDAgMCAxaDEuMmEuNS41IDAgMCAwIDAtMUg2LjJabTIuNy41YzAtLjI4LjIyLS41LjUtLjVoMS4yYS41LjUgMCAwIDEgMCAxSDkuNGEuNS41IDAgMCAxLS41LS41Wm0zLjctLjVhLjUuNSAwIDAgMCAwIDFoMS4yYS41LjUgMCAwIDAgMC0xaC0xLjJabTIuNy41YzAtLjI4LjIyLS41LjUtLjVIMTdhLjUuNSAwIDAgMSAwIDFoLTEuMmEuNS41IDAgMCAxLS41LS41Wm0uNyA0djMuNWEuNS41IDAgMCAxLS41LjUuNS41IDAgMCAxLS41LS41VjE0YS41LjUgMCAwIDAtLjUtLjVINS40OWEuNS41IDAgMCAwLS41LjV2My41YS41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDEtLjQ5LS41VjE0YzAtLjgzLjY3LTEuNSAxLjQ5LTEuNWg5LjAxYy44MiAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlTnVtYmVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZU51bWJlckZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMC43NSA5LjUtLjIyIDEuNUg5LjNsLjIyLTEuNWgxLjI0Wk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTIuNTcgMTAuNDQuMDctLjQ0SDcuNWEuNS41IDAgMSAxIDAtMWguNzhsLjIyLTEuNUg4YS41LjUgMCAwIDEgMC0xaC42NWwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaDEuMjRsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NGwtLjIyIDEuNUgxMmEuNS41IDAgMCAxIDAgMWgtLjZsLS4wOS41OWEuNS41IDAgMSAxLS45OS0uMTVsLjA3LS40NEg5LjE1bC0uMDkuNTlhLjUuNSAwIDEgMS0uOTktLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlTnVtYmVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VOdW1iZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguMDcgMTIuNDRhLjUuNSAwIDEgMCAxIC4xNWwuMDgtLjU5aDEuMjRsLS4wNy40NGEuNS41IDAgMSAwIDEgLjE1bC4wOC0uNTloLjZhLjUuNSAwIDAgMCAwLTFoLS40NmwuMjItMS41aC43NGEuNS41IDAgMCAwIDAtMWgtLjU5bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEwxMC45IDguNUg5LjY2bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEw4LjY2IDguNUg4YS41LjUgMCAwIDAgMCAxaC41TDguMjggMTFINy41YS41LjUgMCAxIDAgMCAxaC42NGwtLjA3LjQ0Wm0yLjY4LTIuOTQtLjIyIDEuNUg5LjNsLjIyLTEuNWgxLjI0Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BDZW50ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlVG9wQ2VudGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjc1IDUuNSAxMC41MyA3SDkuM2wuMjItMS41aDEuMjRaTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEzYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVptMi41NyA2LjQ0TDguMTQgOEg3LjVhLjUuNSAwIDEgMSAwLTFoLjc4bC4yMi0xLjVIOGEuNS41IDAgMSAxIDAtMWguNjVsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2gxLjI0bC4xNi0xLjA3YS41LjUgMCAwIDEgLjk5LjE0bC0uMTQuOTNoLjU5YS41LjUgMCAwIDEgMCAxaC0uNzRMMTEuNTQgN0gxMmEuNS41IDAgMCAxIDAgMWgtLjZsLS4wOS41OWEuNS41IDAgMCAxLS45OS0uMTVMMTAuNCA4SDkuMTVsLS4wOS41OWEuNS41IDAgMCAxLS45OS0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BDZW50ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZVRvcENlbnRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC4wNyA5LjQ0YS41LjUgMCAxIDAgMSAuMTVMOS4xNCA5aDEuMjRsLS4wNy40NGEuNS41IDAgMSAwIDEgLjE1TDExLjQgOWguNmEuNS41IDAgMCAwIDAtMWgtLjQ2bC4yMi0xLjVoLjc0YS41LjUgMCAwIDAgMC0xaC0uNTlsLjE0LS45M2EuNS41IDAgMCAwLTEtLjE0TDEwLjkgNS41SDkuNjZsLjE0LS45M2EuNS41IDAgMCAwLTEtLjE0TDguNjYgNS41SDhhLjUuNSAwIDAgMCAwIDFoLjVMOC4yOCA4SDcuNWEuNS41IDAgMCAwIDAgMWguNjRsLS4wNy40NFptMi42OC0yLjk0TDEwLjUzIDhIOS4zbC4yMi0xLjVoMS4yNFpNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZabTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlVG9wTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNzUgNS41IDguNTMgN0g3LjNsLjIyLTEuNWgxLjI0Wk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabS41NyA2LjQ0TDYuMTQgOEg1LjVhLjUuNSAwIDAgMSAwLTFoLjc4bC4yMi0xLjVINmEuNS41IDAgMCAxIDAtMWguNjVsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M0g4LjlsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NEw5LjU0IDdIMTBhLjUuNSAwIDAgMSAwIDFoLS42bC0uMDkuNTlhLjUuNSAwIDEgMS0uOTktLjE1TDguNCA4SDcuMTVsLS4wOS41OWEuNS41IDAgMSAxLS45OS0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjA3IDkuNDRhLjUuNSAwIDAgMCAxIC4xNUw4LjE0IDloMS4yNGwtLjA3LjQ0YS41LjUgMCAwIDAgMSAuMTVMMTAuNCA5aC42YS41LjUgMCAwIDAgMC0xaC0uNDZsLjIyLTEuNWguNzRhLjUuNSAwIDAgMCAwLTFoLS41OWwuMTQtLjkzYS41LjUgMCAwIDAtMS0uMTRMOS45IDUuNUg4LjY2bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEw3LjY2IDUuNUg3YS41LjUgMCAwIDAgMCAxaC41TDcuMjggOEg2LjVhLjUuNSAwIDAgMCAwIDFoLjY0bC0uMDcuNDRaTTkuNzUgNi41IDkuNTMgOEg4LjNsLjIyLTEuNWgxLjI0Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi43NSA1LjUgMTIuNTMgN0gxMS4zbC4yMi0xLjVoMS4yNFpNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Wm00LjU3IDYuNDQuMDctLjQ0SDkuNWEuNS41IDAgMSAxIDAtMWguNzhsLjIyLTEuNUgxMGEuNS41IDAgMSAxIDAtMWguNjVsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2gxLjI0bC4xNi0xLjA3YS41LjUgMCAwIDEgLjk5LjE0bC0uMTQuOTNoLjU5YS41LjUgMCAwIDEgMCAxaC0uNzRMMTMuNTQgN0gxNGEuNS41IDAgMCAxIDAgMWgtLjZsLS4wOS41OWEuNS41IDAgMCAxLS45OS0uMTVMMTIuNCA4aC0xLjI0bC0uMDkuNTlhLjUuNSAwIDAgMS0uOTktLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlVG9wUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZVRvcFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjA3IDkuNDRhLjUuNSAwIDEgMCAxIC4xNWwuMDgtLjU5aDEuMjRsLS4wNy40NGEuNS41IDAgMSAwIDEgLjE1TDEyLjQgOWguNmEuNS41IDAgMCAwIDAtMWgtLjQ2bC4yMi0xLjVoLjc0YS41LjUgMCAwIDAgMC0xaC0uNTlsLjE0LS45M2EuNS41IDAgMCAwLTEtLjE0TDExLjkgNS41aC0xLjI0bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEw5LjY2IDUuNUg5YS41LjUgMCAwIDAgMCAxaC41TDkuMjggOEg4LjVhLjUuNSAwIDAgMCAwIDFoLjY0bC0uMDcuNDRabTIuNjgtMi45NEwxMS41MyA4SDEwLjNsLjIyLTEuNWgxLjI0Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBkZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBkZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMTFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LS4xN2guMzNhMS4xNyAxLjE3IDAgMCAwIDAtMi4zM0g2LjVabS44MyAxLjMzSDdWMTJoLjMzYS4xNy4xNyAwIDAgMSAwIC4zM1pNMTIgMTEuNWMwLS4yOC4yMy0uNS41LS41aDFhLjUuNSAwIDEgMSAwIDFIMTN2LjMzaC41YS41LjUgMCAxIDEgMCAxSDEzdi4xN2EuNS41IDAgMSAxLTEgMHYtMlpNOS41IDExYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aC41YTEuNSAxLjUgMCAwIDAgMC0zaC0uNVptLjUgMnYtMWEuNS41IDAgMCAxIDAgMVptMC02LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1LjU4Yy0uNTguMi0xIC43Ni0xIDEuNDJ2NGMwIC42NS40MiAxLjIgMSAxLjQxdi41OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtLjU5Yy41OC0uMiAxLS43NiAxLTEuNDF2LTRjMC0uNjYtLjQyLTEuMjEtMS0xLjQyVjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVpNNC41IDEwaDExYy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNXYtNGMwLS4yOC4yMy0uNS41LS41Wk0xMSA2LjVWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGRmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBkZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDExYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0uMTdoLjMzYTEuMTcgMS4xNyAwIDAgMCAwLTIuMzNINi41Wm0uODMgMS4zM0g3VjEyaC4zM2EuMTcuMTcgMCAwIDEgMCAuMzNaTTEyIDExLjVjMC0uMjguMjMtLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxSDEzdi4zM2guNWEuNS41IDAgMSAxIDAgMUgxM3YuMTdhLjUuNSAwIDAgMS0xIDB2LTJaTTkuNSAxMWEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNWguNWExLjUgMS41IDAgMCAwIDAtM2gtLjVabS41IDJ2LTFhLjUuNSAwIDAgMSAwIDFaTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZ2MS42N2MuNTguMiAxIC43NiAxIDEuNDJ2NGMwIC42NS0uNDIgMS4yLTEgMS40MVYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtLjA5Yy0uNTgtLjItMS0uNzYtMS0xLjQxdi00YzAtLjY2LjQyLTEuMjEgMS0xLjQyVjRabTExIDRoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1aDEwVjhaTTUgMTZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFINVptNi0xMi44djMuM2MwIC4yOC4yMi41LjUuNWgzLjNMMTEgMy4yWk00LjUgMTBhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjMuNS41LjVoMTFhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGVyY2VudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcmNlbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS42N2EzIDMgMCAwIDEgMiAyLjcxbDEuNDQtMS40NGExLjUgMS41IDAgMCAxIDIuMTIgMi4xMkw4LjEyIDE0YTMgMyAwIDAgMSAyLjcgNGgzLjY4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVaTTUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLTEuMTUgNS44NWEuNS41IDAgMCAxLS43LS43bDYtNmEuNS41IDAgMCAxIC43LjdsLTYgNlpNNiAxN2EyIDIgMCAwIDAgMiAyIDIgMiAwIDEgMC0yLTJabTIgMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTMtMTEuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQZXJjZW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcmNlbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMmgtMy4xN2EzIDMgMCAwIDAgLjE3LTFoM2ExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1Ljc2YTMgMyAwIDAgMC0xLS41OVY0Wm03LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVpNNSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0xIDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm02IDVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLS4xNS01Ljg1Yy4yLjIuMi41IDAgLjdsLTYgNmEuNS41IDAgMCAxLS43LS43bDYtNmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOC42M2MuMjUtLjQ3LjM3LS45OS4zNy0xLjUgMC0xLjMtMS0yLjM4LTIuMjctMi40OUEzIDMgMCAwIDAgNCA5LjA0VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk02LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk04IDE2LjVDOCAxNy43NSA3IDE5IDQuNSAxOVMxIDE3Ljc1IDEgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjA0YTMuMDIgMy4wMiAwIDAgMSAxIDBWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMUg4Ljk2Yy0uMDUuMzQtLjE2LjY4LS4zMyAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS04LjMgNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaTTggMTYuNUM4IDE3Ljc1IDcgMTkgNC41IDE5UzEgMTcuNzUgMSAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBpbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQaWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2di45MWEzLjYgMy42IDAgMCAwLTIuMDYgMS4wM2wtNCA0QTMuNjIgMy42MiAwIDAgMCA5LjIgMThINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xM0M0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wm03LjM1IDguNGEyLjYyIDIuNjIgMCAwIDAtMy43IDBsLTQgNGEyLjYyIDIuNjIgMCAwIDAgMy43IDMuN2w0LTRhMi42MiAyLjYyIDAgMCAwIDAtMy43Wm0tMyAuN2ExLjYyIDEuNjIgMCAxIDEgMi4zIDIuM0wxNiAxNS4yOSAxMy43IDEzbDEuNjUtMS42NVptLTEuNSA0LjNjLjIuMi4yLjUgMCAuN2wtMSAxYS41LjUgMCAwIDEtLjctLjdsMS0xYy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQaWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBpbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMy4yYTMuNjEgMy42MSAwIDAgMS0uMjktMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djEuMmMuMzItLjE0LjY2LS4yNCAxLS4yOXYtMS41YzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1ptMy41NSAzLjY1YTIuNjIgMi42MiAwIDAgMC0zLjcgMGwtNCA0YTIuNjIgMi42MiAwIDAgMCAzLjcgMy43bDQtNGEyLjYyIDIuNjIgMCAwIDAgMC0zLjdabS0zIC43YTEuNjIgMS42MiAwIDEgMSAyLjMgMi4zTDE2IDE1LjI5IDEzLjcgMTNsMS42NS0xLjY1Wm0tMi4yIDQuM2EuNS41IDAgMCAxIC43LjdsLTEgMWEuNS41IDAgMCAxLS43LS43bDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJpbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcmludEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDlhMiAyIDAgMCAwIDItMnYtMi41YTIuNSAyLjUgMCAwIDAtMi4wNC0yLjQ2QTIuNSAyLjUgMCAwIDAgNi41IDloLTJjLS4xNyAwLS4zNC4wMi0uNS4wNVYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNC41IDEwYy0uODMgMC0xLjUuNjctMS41IDEuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE2YTEgMSAwIDAgMCAxIDFoMXYuNWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxN2gxYTEgMSAwIDAgMCAxLTF2LTIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIOHYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWk03IDEySDR2LS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVabS0yLjUgNGgyYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0xYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFByaW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFByaW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjA1Yy4xNi0uMDMuMzMtLjA1LjUtLjA1SDVWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy4yN0EyIDIgMCAwIDEgOSAxOGg1YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTQuNSAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxNmExIDEgMCAwIDAgMSAxaDF2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTdoMWExIDEgMCAwIDAgMS0xdi0yLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDh2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlpNNyAxMkg0di0uNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41Wm0tMi41IDRoMmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQcm9oaWJpdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVptLTguNjggOS4wN2E0LjUgNC41IDAgMSAwIDYuMzYgNi4zNiA0LjUgNC41IDAgMCAwLTYuMzYtNi4zNlptNS42NSA1LjY1YTMuNSAzLjUgMCAwIDEtNC41Ny4zM2w0LjktNC45YTMuNSAzLjUgMCAwIDEtLjMzIDQuNTdaTTcuNiAxMS43bC00LjkgNC45YTMuNSAzLjUgMCAwIDEgNC45LTQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcm9oaWJpdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJIOS43NGMuMjYtLjMuNDgtLjY0LjY2LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjRabTctLjh2My4zYzAgLjI4LjIyLjUuNS41aDMuM0wxMSAzLjJaTTguNjggMTcuNjlhNC41IDQuNSAwIDEgMS02LjM2LTYuMzYgNC41IDQuNSAwIDAgMSA2LjM2IDYuMzZaTTMuNCAxNy4zYTMuNSAzLjUgMCAwIDAgNC45LTQuOWwtNC45IDQuOVptLS43LS43IDQuOS00LjlhMy41IDMuNSAwIDAgMC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWVzdGlvbk1hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWVzdGlvbk1hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjUgMS44OGEuNjIuNjIgMCAxIDEgMCAxLjI1LjYyLjYyIDAgMCAxIDAtMS4yNVptMC00Ljg4YzEuMDMgMCAxLjg1Ljg1IDEuODUgMS45NSAwIC41OS0uMjEuOTEtLjcyIDEuMzJsLS4yOC4yMmMtLjI1LjE5LS4zMy4zLS4zNS40NHYuMTZhLjUuNSAwIDAgMS0xLS4wOWMwLS41Ny4yMS0uODguNzItMS4yOWwuMjctLjIxYy4zLS4yMy4zNi0uMzUuMzYtLjU1IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBjLS4wMS0xLjEzLjgtMS45NSAxLjg1LTEuOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXN0aW9uTWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWVzdGlvbk1hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjUgMS44OGEuNjIuNjIgMCAxIDEgMCAxLjI1LjYyLjYyIDAgMCAxIDAtMS4yNVptMC00Ljg4YzEuMDMgMCAxLjg1Ljg1IDEuODUgMS45NSAwIC41OS0uMjEuOTEtLjcyIDEuMzJsLS4yOC4yMmMtLjI1LjE5LS4zMy4zLS4zNS40NHYuMTZhLjUuNSAwIDAgMS0xLS4wOWMwLS41Ny4yMS0uODguNzItMS4yOWwuMjctLjIxYy4zLS4yMy4zNi0uMzUuMzYtLjU1IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBjLS4wMS0xLjEzLjgtMS45NSAxLjg1LTEuOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2Ni41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtMTFDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFpNNi41IDVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNNiA3LjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVaTTYuNSA5YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTExIDIuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMi41IDEzYy4yOCAwIC41LjIyLjUuNXYxQTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDEgMSAwdjFhMy41IDMuNSAwIDAgMS0zLjUgMy41aC05QTMuNSAzLjUgMCAwIDEgMiAxNC41di0xYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXVlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk02IDcuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpNNi41IDlhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlptMy45OC03aC4wNGMuNDUuMDEuODguMiAxLjIuNTFsMy43NyAzLjc3QTEuNzUgMS43NSAwIDAgMSAxNiA3LjV2Ni43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTguNUM0Ljc4IDE2IDQgMTUuMjIgNCAxNC4yNVYzLjc1QzQgMi43OCA0Ljc4IDIgNS43NSAyaDQuNzNaTTUgMy43NXYxMC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDguNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g1Ljc1YS43NS43NSAwIDAgMC0uNzUuNzVabTYgMi43NWMwIC4yOC4yMi41LjUuNWgzLjNsLS4wMi0uMDEtMy43Ny0zLjc3LS4wMS0uMDFWNi41Wm0tOCA3YS41LjUgMCAwIDAtMSAwdjFBMy41IDMuNSAwIDAgMCA1LjUgMThoOWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTFhLjUuNSAwIDAgMC0xIDB2MWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXVlQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWVBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTFjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43QTUuNSA1LjUgMCAwIDEgMTYgOS4yVjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptLTQtMWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpNNi41IDdoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMVpNNiA5LjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaTTUuNSAxN2g0LjFjLjE4LjM2LjQuNy42NiAxSDUuNUEzLjUgMy41IDAgMCAxIDIgMTQuNXYtMWEuNS41IDAgMCAxIDEgMHYxQTIuNSAyLjUgMCAwIDAgNS41IDE3Wk0xMSA2LjVWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVptOCA4YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWV1ZUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWV1ZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNSAySDUuNzRDNC43OCAyIDQgMi43OCA0IDMuNzV2MTAuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgzLjQ2Yy0uMS0uMzItLjE2LS42Ni0uMTktMUg1Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1VjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NUgxMHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2MS4wMmMuMzQuMDMuNjguMSAxIC4xOVY3LjQ4Yy0uMDEtLjQ1LS4yLS44OC0uNTEtMS4ybC0zLjc3LTMuNzdBMS43NSAxLjc1IDAgMCAwIDEwLjUgMlptLjUgMS4yLjAxLjAyIDMuNzcgMy43Ny4wMS4wMUgxMS41YS41LjUgMCAwIDEtLjUtLjVWMy4yWk01LjUgMTdoNC4xYy4xOC4zNi40LjcuNjYgMUg1LjVBMy41IDMuNSAwIDAgMSAyIDE0LjV2LTFhLjUuNSAwIDAgMSAxIDB2MUEyLjUgMi41IDAgMCAwIDUuNSAxN1pNNiA1LjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaTTYuNSA3YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabTAgMmEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWV1ZU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMi4zOCAzLjc1IDEuMTEgMS4xMkwxNiA3LjM3di0uNjZjMC0uNDYtLjE4LS45LS41LTEuMjNsLTIuNC0yLjQ0QTMuNSAzLjUgMCAwIDAgMTAuNiAySDUuNzVDNC44MyAyIDQuMDcgMi43MiA0IDMuNjIgNC40OCAzLjIzIDUuMSAzIDUuNzUgM2g0Ljg1Yy42NyAwIDEuMzEuMjcgMS43OC43NVpNMi41IDEzYy4yOCAwIC41LjIyLjUuNXYxQTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDEgMSAwdjFhMy41IDMuNSAwIDAgMS0zLjUgMy41aC05QTMuNSAzLjUgMCAwIDEgMiAxNC41di0xYzAtLjI4LjIyLS41LjUtLjVaTTEwIDR2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djQuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTlDNCA0LjY3IDQuNjcgNCA1LjUgNEgxMFpNNiA3LjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVaTTYuNSA5YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTYgMTEuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNVptNS03LjI1VjguNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXVlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWVNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTIuMzggMy43NSAxLjExIDEuMTJMMTYgNy4zN3YtLjY2YzAtLjQ2LS4xOC0uOS0uNS0xLjIzbC0yLjQtMi40NEEzLjUgMy41IDAgMCAwIDEwLjYgMkg1Ljc1QzQuODMgMiA0LjA3IDIuNzIgNCAzLjYyIDQuNDggMy4yMyA1LjEgMyA1Ljc1IDNoNC44NWMuNjcgMCAxLjMxLjI3IDEuNzguNzVaTTIuNSAxM2MuMjggMCAuNS4yMi41LjV2MUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMWEuNS41IDAgMCAxIDEgMHYxYTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtOUEzLjUgMy41IDAgMCAxIDIgMTQuNXYtMWMwLS4yOC4yMi0uNS41LS41Wk02IDcuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpNNi41IDlhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNNiAxMS41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wm0xMC0ydi0uMDJjLS4wMS0uNDUtLjItLjg4LS41MS0xLjJsLTMuNzctMy43N0ExLjc1IDEuNzUgMCAwIDAgMTAuNSA0SDUuNzRDNC43OCA0IDQgNC43OCA0IDUuNzV2OC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDguNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWOS41MVpNNSA1Ljc2YzAtLjQxLjM0LS43NS43NS0uNzVIMTB2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djQuMjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1di04LjVabTYtLjU0LjAxLjAxIDMuNzcgMy43Ny4wMS4wMUgxMS41YS41LjUgMCAwIDEtLjUtLjVWNS4yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRSaWJib25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRSaWJib25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4di0yLjM1YTQgNCAwIDAgMC00LTYuNTJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTggMTNhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0tMSAzLjQ2YTMuOTggMy45OCAwIDAgMS00IDB2Mi4yOWMwIC4yLjIxLjMxLjM4LjIxTDUgMThsMS42Mi45NmMuMTcuMS4zOC0uMDIuMzgtLjIxdi0yLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRSaWJib25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UmliYm9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjEzQTQgNCAwIDAgMSA1IDlWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMUg4djFoNmEyIDIgMCAwIDAgMi0yVjcuNGMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTggMTNhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0tMSAzLjQ2YTMuOTggMy45OCAwIDAgMS00IDB2Mi4yOWMwIC4yLjIxLjMxLjM4LjIxTDUgMThsMS42Mi45NmMuMTcuMS4zOC0uMDIuMzgtLjIxdi0yLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTYXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2Fzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY4YTIuNSAyLjUgMCAwIDEgLjk4IDIuMjJsLjYtMS43MmExLjUgMS41IDAgMCAxIDIuODQgMEw5IDEzLjY3di0uMTdhMi41IDIuNSAwIDAgMSA0LjUtMS41IDIuNSAyLjUgMCAwIDEgMi41LS45NVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk0yLjUgMTNhLjUuNSAwIDAgMC0uNS41di4yNGMwIC4yNy4xNi41My40LjY1bC42NC4zMmMuNTkuMy45Ni45Ljk2IDEuNTV2LjI0YTEuNSAxLjUgMCAwIDEtMyAwIC41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwdi0uMjRhLjc0Ljc0IDAgMCAwLS40LS42NWwtLjY0LS4zMmMtLjU5LS4zLS45Ni0uOS0uOTYtMS41NXYtLjI0YTEuNSAxLjUgMCAwIDEgMyAwIC41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtLjUtLjVabTQuOTctLjY3YS41LjUgMCAwIDAtLjk0IDBsLTEuNzUgNWEuNS41IDAgMSAwIC45NC4zNGwuMjMtLjY3aDIuMWwuMjMuNjdhLjUuNSAwIDEgMCAuOTQtLjM0bC0xLjc1LTVaTTcuNyAxNkg2LjNsLjctMS45OS43IDEuOTlabTMuMy0yLjVhLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDAgMS41IDEuNSAwIDAgMC0zIDB2LjI0YzAgLjY1LjM3IDEuMjUuOTYgMS41NWwuNjMuMzJjLjI1LjEyLjQxLjM4LjQxLjY1di4yNGEuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMCAxLjUgMS41IDAgMCAwIDMgMHYtLjI0YzAtLjY1LS4zNy0xLjI1LS45Ni0xLjU1bC0uNjMtLjMyYS43NC43NCAwIDAgMS0uNDEtLjY1di0uMjRabTQuNS0uNWEuNS41IDAgMCAwLS41LjV2LjI0YzAgLjI3LjE2LjUzLjQuNjVsLjY0LjMyYy41OS4zLjk2LjkuOTYgMS41NXYuMjRhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4yNGEuNzQuNzQgMCAwIDAtLjQtLjY1bC0uNjQtLjMyYy0uNTktLjMtLjk2LS45LS45Ni0xLjU1di0uMjRhMS41IDEuNSAwIDAgMSAzIDAgLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2Fzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTYXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2djMuNjRhMi41MSAyLjUxIDAgMCAwLTEgMFY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2OS40YTIuNSAyLjUgMCAwIDAtMS0xLjlWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabS05IDZhLjUuNSAwIDAgMC0uNS41di4yNGMwIC4yNy4xNi41My40LjY1bC42NC4zMmMuNTkuMy45Ni45Ljk2IDEuNTV2LjI0YTEuNSAxLjUgMCAwIDEtMyAwIC41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwdi0uMjRhLjc0Ljc0IDAgMCAwLS40LS42NWwtLjY0LS4zMmMtLjU5LS4zLS45Ni0uOS0uOTYtMS41NXYtLjI0YTEuNSAxLjUgMCAwIDEgMyAwIC41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtLjUtLjVabTQuOTctLjY3YS41LjUgMCAwIDAtLjk0IDBsLTEuNzUgNWEuNS41IDAgMSAwIC45NC4zNGwuMjMtLjY3aDIuMWwuMjMuNjdhLjUuNSAwIDEgMCAuOTQtLjM0bC0xLjc1LTVaTTcuNyAxNkg2LjNsLjctMS45OS43IDEuOTlabTMuMy0yLjVhLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDAgMS41IDEuNSAwIDAgMC0zIDB2LjI0YzAgLjY1LjM3IDEuMjUuOTYgMS41NWwuNjMuMzJjLjI1LjEyLjQxLjM4LjQxLjY1di4yNGEuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMCAxLjUgMS41IDAgMCAwIDMgMHYtLjI0YzAtLjY1LS4zNy0xLjI1LS45Ni0xLjU1bC0uNjMtLjMyYS43NC43NCAwIDAgMS0uNDEtLjY1di0uMjRabTQuNS0uNWEuNS41IDAgMCAwLS41LjV2LjI0YzAgLjI3LjE2LjUzLjQuNjVsLjY0LjMyYy41OS4zLjk2LjkuOTYgMS41NXYuMjRhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4yNGEuNzQuNzQgMCAwIDAtLjQtLjY1bC0uNjQtLjMyYy0uNTktLjMtLjk2LS45LS45Ni0xLjU1di0uMjRhMS41IDEuNSAwIDAgMSAzIDAgLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2F2ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNhdmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMXYtNS41OWEyIDIgMCAwIDAtLjU5LTEuNDFMOSA5LjU5QTIgMiAwIDAgMCA3LjU5IDlINFYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMiAxMGgxdjIuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTIuNDFjLjEuMDUuMi4xMi4zLjJsMS40IDEuNDJhMSAxIDAgMCAxIC4zLjdWMThhMSAxIDAgMCAxLTEgMXYtNC41YS41LjUgMCAwIDAtLjUtLjVoLTZhLjUuNSAwIDAgMC0uNS41VjE5YTEgMSAwIDAgMS0xLTF2LTdhMSAxIDAgMCAxIDEtMVptNiA1djRIM3YtNGg1Wm0tNC01aDN2Mkg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTYXZlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNhdmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjVoMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zdjFoM2EyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk00IDEwaDN2Mkg0di0yWm0tMiAwaDF2Mi41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtMi40MWMuMS4wNS4yLjEyLjMuMmwxLjQgMS40MmExIDEgMCAwIDEgLjMuN1YxOGExIDEgMCAwIDEtMSAxdi00LjVhLjUuNSAwIDAgMC0uNS0uNWgtNmEuNS41IDAgMCAwLS41LjVWMTlhMSAxIDAgMCAxLTEtMXYtN2ExIDEgMCAwIDEgMS0xWm02IDV2NEgzdi00aDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1Ljc2YTQuNSA0LjUgMCAwIDEgNS41NiA2LjE4bDIgMmMuMTYuMTYuMjguMzYuMzUuNTZoMi41OWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w4LjMgMTUuNkEzLjUgMy41IDAgMSAwIDUuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJoLTIuMDlhMS41IDEuNSAwIDAgMC0uMzUtLjU2bC0uNDQtLjQ0SDE0YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxdjUuMDNjLS4zNS4wNC0uNjguMTEtMSAuMjNWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabS02IDEwYy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w4LjMgMTUuNkEzLjUgMy41IDAgMSAwIDUuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOC42NkE1LjUgNS41IDAgMCAwIDQgOC4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wm0tNy45NCA4LjJhMiAyIDAgMCAxLTEuNDMgMi40N2wtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAzIDE2LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDggMTAuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVpNNS41IDE0LjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NC4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFIOS43NGMtLjMxLjM4LS42Ny43Mi0xLjA4IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMy4wNSAxMC40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDMgMTYuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgOCAxMC4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wk01LjUgMTQuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMi40NGwtMS42NyAxLjY3Yy0uNC40LS45Mi43LTEuNDguODRsLTEuNS4zN2MtLjkuMjMtMS43NC0uMjItMi4xMy0uOTRINi41YS41LjUgMCAwIDEgMC0xSDlsLjA2LS4zNS4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OEwxMy45NCA4SDExLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTUuMzYuMTFhMi45IDIuOSAwIDAgMC0uMjYuMjNsLS4xNi4xNkgxMS41YS41LjUgMCAwIDEtLjUtLjVWMi4yNWw0LjM2IDQuMzZabS00LjM4IDUuNzcgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTaWduYXR1cmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTEuMDcuMDhjLS4xOS4xMS0uMzcuMjUtLjUzLjQxTDEzLjk0IDhIMTEuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtLjk0bDEtMVYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm03LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptNC4zLjU1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41LS4wMi4xSDYuNWEuNS41IDAgMCAwIDAgMUgxMWEuNS41IDAgMCAwIC4yMy0uMDZsMS4zNy0uMzRjLjM5LS4xLjc0LS4zIDEuMDItLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTcGxpdEhpbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNXYtNkM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk01IDEyYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTExIDBhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAwIDEgMHYtMVpNNSAxNS41YS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xdi0uNVptMTEgMGEuNS41IDAgMCAwLTEgMHYuNWExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNWEyIDIgMCAwIDAgMi0ydi0uNVpNOSAxN2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNwbGl0SGludFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTcGxpdEhpbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWOS41YS41LjUgMCAwIDEtMSAwVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1LjVhLjUuNSAwIDAgMS0xIDBWNFptNy0uOHYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDExIDMuMlptLTYuNSA4LjNjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVptMTEgMGMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wk00LjUgMTVjLjI4IDAgLjUuMjIuNS41di41YTEgMSAwIDAgMCAxIDFoLjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0ydi0uNWMwLS4yOC4yMi0uNS41LS41Wm0xMSAwYy4yOCAwIC41LjIyLjUuNXYuNWEyIDIgMCAwIDEtMiAyaC0uNWEuNS41IDAgMCAxIDAtMWguNWExIDEgMCAwIDAgMS0xdi0uNWMwLS4yOC4yMi0uNS41LS41Wm0tNyAyLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3BsaXRIaW50T2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U3BsaXRIaW50T2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNC43djQuOGMwIC4yOC4yMi41LjUuNWg0LjhsNS43IDUuN3YuM2ExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNWEyIDIgMCAwIDAgMS45LTEuMzlsMS4yNSAxLjI0YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w0IDQuNzFabTExIDguMTguNi42QS41LjUgMCAwIDAgMTYgMTN2LTFhLjUuNSAwIDAgMC0xIDB2Ljg4Wk00LjUgMi4zOCAxMi4xMiAxMGgzLjM4YS41LjUgMCAwIDAgLjUtLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjJINS41Yy0uMzggMC0uNzMuMTQtMSAuMzhabTYuNS0uMTNWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNSAxMmEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWm0wIDMuNWEuNS41IDAgMCAwLTEgMHYuNWMwIDEuMS45IDIgMiAyaC41YS41LjUgMCAwIDAgMC0xSDZhMSAxIDAgMCAxLTEtMXYtLjVabTYgMS41SDlhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3BsaXRIaW50T2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0Ljd2NC44YS41LjUgMCAwIDAgMSAwVjUuN2wxMCAxMHYuM2ExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNWEyIDIgMCAwIDAgMS45LTEuMzlsMS4yNSAxLjI0YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w0IDQuNzFabTExIDguMTguNi42QS41LjUgMCAwIDAgMTYgMTN2LTFhLjUuNSAwIDAgMC0xIDB2Ljg4Wk00LjY1IDIuNTNsLjcuN0ExIDEgMCAwIDEgNiAzaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djEuNWEuNS41IDAgMCAwIDEgMFY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2YTIgMiAwIDAgMC0xLjM1LjUzWk0xMSAzLjIgMTQuOCA3aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJaTTQuNSAxMS41Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVabTAgMy41Yy4yOCAwIC41LjIyLjUuNXYuNWExIDEgMCAwIDAgMSAxaC41YS41LjUgMCAwIDEgMCAxSDZhMiAyIDAgMCAxLTItMnYtLjVjMC0uMjguMjItLjUuNS0uNVpNOSAxOGEuNS41IDAgMCAxIDAtMWgyYS41LjUgMCAwIDEgMCAxSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFN5bmNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTeW5jRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTkgMS45OSAwIDAgMC0yLjM4LjM0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSA3IDEyLjE1VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgNCAxNi44NVYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVINWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3luY1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTeW5jUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTkgMS45OSAwIDAgMC0yLjM4LjM0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSA3IDEyLjE1VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgNCAxNi44NVYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVINWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDE1di0yaDR2MS41YS41LjUgMCAwIDEtLjUuNUg5Wm00LTQuNVYxMkg5di0yaDMuNWMuMjggMCAuNS4yMi41LjVaTTcgMTNoMXYyaC0uNWEuNS41IDAgMCAxLS41LS41VjEzWm0xLTF2LTJoLS41YS41LjUgMCAwIDAtLjUuNVYxMmgxWm0yLTUuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptLTQgNEM2IDkuNjcgNi42NyA5IDcuNSA5aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA2IDE0LjV2LTRabTUtNFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAxMC41QzYgOS42NyA2LjY3IDkgNy41IDloNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDYgMTQuNXYtNFpNOCAxNXYtMkg3djEuNWMwIC4yOC4yMi41LjUuNUg4Wm0xLTNoNHYtMS41YS41LjUgMCAwIDAtLjUtLjVIOXYyWm0wIDNoMy41YS41LjUgMCAwIDAgLjUtLjVWMTNIOXYyWm0tMS41LTVhLjUuNSAwIDAgMC0uNS41VjEyaDF2LTJoLS41Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wk01IDRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRabTkuOCAzaC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAxMC4yNkE1LjUyIDUuNTIgMCAwIDEgMTAuNCAxMkgxM3YtMS41YS41LjUgMCAwIDAtLjUtLjVIOXYuMjZaTTEzIDEzaC0yLjJhNS41IDUuNSAwIDAgMSAuMTggMmgxLjUyYS41LjUgMCAwIDAgLjUtLjVWMTNaTTUuNSA5Yy40NiAwIC45LjA2IDEuMzIuMTYuMi0uMS40NC0uMTYuNjgtLjE2aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuN2E1LjQ5IDUuNDkgMCAwIDEtMS4wNiAyaDQuNzZjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuN2MuNDgtLjEzLjk4LS4yIDEuNS0uMlpNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVabS0xIDhhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1QS41LjUgMCAwIDAgOCAxNC41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0w2LjI5IDE0SDMuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgOWMtLjI0IDAtLjQ3LjA2LS42OC4xNi44Mi4yIDEuNTYuNTggMi4xOCAxLjFWMTBoMy41Yy4yOCAwIC41LjIyLjUuNVYxMmgtMi42Yy4xNi4zMi4zLjY1LjQgMUgxM3YxLjVhLjUuNSAwIDAgMS0uNS41aC0xLjUyYy0uMDMuMzQtLjEuNjgtLjE5IDFoMS43MWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wk00IDkuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINmEyIDIgMCAwIDAtMiAydjUuMlpNMTQuOCA3aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNUEuNS41IDAgMCAwIDggMTQuNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMNi4yOSAxNEgzLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDEwLjI2QTUuNTIgNS41MiAwIDAgMSAxMC40IDEySDEzdi0xLjVhLjUuNSAwIDAgMC0uNS0uNUg5di4yNlpNMTMgMTNoLTIuMmE1LjUgNS41IDAgMCAxIC4xOCAyaDEuNTJhLjUuNSAwIDAgMCAuNS0uNVYxM1pNNS41IDljLjQ2IDAgLjkuMDYgMS4zMi4xNi4yLS4xLjQ0LS4xNi42OC0uMTZoNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS43YTUuNDkgNS40OSAwIDAgMS0xLjA2IDJoNC43NmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS43Yy40OC0uMTMuOTgtLjIgMS41LS4yWk0xMSA2LjVWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVptLTEgOGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE1LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgOWMtLjI0IDAtLjQ3LjA2LS42OC4xNi44Mi4yIDEuNTYuNTggMi4xOCAxLjFWMTBoMy41Yy4yOCAwIC41LjIyLjUuNVYxMmgtMi42Yy4xNi4zMi4zLjY1LjQgMUgxM3YxLjVhLjUuNSAwIDAgMS0uNS41aC0xLjUyYy0uMDMuMzQtLjEuNjgtLjE5IDFoMS43MWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wk00IDkuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINmEyIDIgMCAwIDAtMiAydjUuMlpNMTQuOCA3aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEw0LjUgMTUuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVDdWJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVDdWJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuODYgMTJBMiAyIDAgMCAwIDkgMTF2LTFoMy41Yy4yOCAwIC41LjIyLjUuNVYxMkg5Ljg2Wk0xMyAxM3YxLjVhLjUuNSAwIDAgMS0uNS41SDEwdi0yaDNaTTYuMjcgOS42NGwtLjM4LS4yYTIgMiAwIDAgMC0xLjc5IDBMNCA5LjV2LTZDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMHY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5LjMyYTIgMiAwIDAgMCAuNjgtMS41VjE2aDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Yy0uNSAwLS45Ni4yNS0xLjIzLjY0Wk0xMSAyLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEuMDMgMTYuNTF2LTMuNzdhMSAxIDAgMCAxIC41NS0uOWwzLTEuNWExIDEgMCAwIDEgLjkgMGwzIDEuNWExIDEgMCAwIDEgLjU1Ljl2My43N2ExIDEgMCAwIDEtLjU1LjlsLTMgMS41YTEgMSAwIDAgMS0uOSAwbC0zLTEuNWExIDEgMCAwIDEtLjU1LS45Wm0xLjA0LTMuNThhLjUuNSAwIDAgMCAuMjcuNjZsMi4yLjkydjIuNjJhLjUuNSAwIDEgMCAxIDBWMTQuNWwyLjE5LS45MmEuNS41IDAgMSAwLS40LS45M2wtMi4zLjk4LTIuMy0uOThhLjUuNSAwIDAgMC0uNjYuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQ3ViZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUN1YmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSA5Yy0uNSAwLS45Ni4yNS0xLjIzLjY0bC45My40NmEuNS41IDAgMCAxIC4zLS4xSDh2LjVsLjkuNDUuMS4wNXYtMWgzLjVjLjI4IDAgLjUuMjIuNS41VjEySDkuODZhMiAyIDAgMCAxIC4xNC43NFYxM2gzdjEuNWEuNS41IDAgMCAxLS41LjVIMTB2MWgyLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVptLTMuNC40NWEyIDIgMCAwIDEgLjktLjIxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFIOS45NGEyIDIgMCAwIDEtLjYyIDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTggMkg2YTIgMiAwIDAgMC0yIDJ2NS41bC4xLS4wNVpNMTQuOCA3aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xLjAyIDE2LjV2LTMuNzZhMSAxIDAgMCAxIC41NS0uOWwzLTEuNWExIDEgMCAwIDEgLjkgMGwzIDEuNWExIDEgMCAwIDEgLjU1Ljl2My43N2ExIDEgMCAwIDEtLjU1LjlsLTMgMS41YTEgMSAwIDAgMS0uOSAwbC0zLTEuNWExIDEgMCAwIDEtLjU1LS45Wm0xLjA0LTMuNTdhLjUuNSAwIDAgMCAuMjcuNjZsMi4yLjkydjIuNjJhLjUuNSAwIDEgMCAxIDBWMTQuNWwyLjE5LS45MmEuNS41IDAgMSAwLS40LS45M2wtMi4zLjk4LTIuMy0uOThhLjUuNSAwIDAgMC0uNjYuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAxNWgzLjVhLjUuNSAwIDAgMCAuNS0uNVYxM0g5djJabS4xMiAxIDEuNDQgMS40NGMuMTYuMTYuMjguMzYuMzUuNTZoMy41OWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS41M2E0LjU1IDQuNTUgMCAwIDEgMi40NC40QTEuNSAxLjUgMCAwIDEgNy41IDloNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5LjEyWk0xMyAxMnYtMS41YS41LjUgMCAwIDAtLjUtLjVIOXYyaDRabS0yLTkuNzVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNy4zIDE1LjZhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNS42Wk03IDEzLjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlU2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjQ0IDkuNDRBMS41IDEuNSAwIDAgMSA3LjUgOWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuMTJsLS41Ni0uNTZjLjI4LS41OS40NC0xLjI1LjQ0LTEuOTRWMTVoMy41YS41LjUgMCAwIDAgLjUtLjVWMTNIOXYuNWMwLTEuMDctLjM3LTIuMDYtMS0yLjgzVjEwaC0uNWEuNS41IDAgMCAwLS4xNS4wMiA0LjUgNC41IDAgMCAwLS45MS0uNThaTTEzIDEwLjVhLjUuNSAwIDAgMC0uNS0uNUg5djJoNHYtMS41Wk01IDkuMDNhNC41NSA0LjU1IDAgMCAwLTEgMFY0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAyaC0zLjA5YTEuNSAxLjUgMCAwIDAtLjM1LS41NmwtLjQ0LS40NEgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1LjAzWk0xMS41IDdoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabS00LjIgOC42YTMuNSAzLjUgMCAxIDAtLjcuN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTUuNlpNNyAxMy41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZVRydWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVUcnVja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIm03Ljg3IDExLjQzLjEzLjA1VjEwaC0uNWEuNS41IDAgMCAwLS40OC4zNWMuMzkuMjYuNy42NC44NSAxLjA4Wk0xMyAxM0g5LjMybC40Ny45M2EyIDIgMCAwIDEgLjIxLjlWMTVoMi41YS41LjUgMCAwIDAgLjUtLjVWMTNabS03LjE3LTMgLjI1LjAxQTEuNSAxLjUgMCAwIDEgNy41IDloNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYxYTIgMiAwIDAgMS0uMjcgMWg0Ljc3Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNVYxMGgxLjgzWm03LjE3LjVWMTJIOXYtMmgzLjVjLjI4IDAgLjUuMjIuNS41Wm0tMi00VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTIuMTcgMTFDMS41MiAxMSAxIDExLjUyIDEgMTIuMTd2NC42NmMwIC40OC4yOC44OC42OSAxLjA3YTEuMzMgMS4zMyAwIDAgMCAyLjYuMWguNzVhMS4zMyAxLjMzIDAgMCAwIDIuNTggMEg4YTEgMSAwIDAgMCAxLTF2LTIuMThhMSAxIDAgMCAwLS4xLS40NGwtLjc1LTEuNWExIDEgMCAwIDAtLjktLjU1SDd2LS4xNkM3IDExLjUyIDYuNDggMTEgNS44MyAxMUgyLjE3Wk03IDE0LjMzVjEzaC4yNWMuMTMgMCAuMjUuMDcuMy4xOGwuNTggMS4xNUg3Wm0tNC42NyAzLjM0YS42Ny42NyAwIDEgMSAxLjM0IDAgLjY3LjY3IDAgMCAxLTEuMzQgMFptNCAuNjZhLjY3LjY3IDAgMSAxIDAtMS4zMy42Ny42NyAwIDAgMSAwIDEuMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlVHJ1Y2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVUcnVja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDlhMS41IDEuNSAwIDAgMC0xLjQyIDEuMDFjLjM1LjA0LjY3LjE2Ljk0LjM0QS41LjUgMCAwIDEgNy41IDEwSDh2MS40OGEyIDIgMCAwIDEgMS4wNC45NmwuMjguNTZIMTN2MS41YS41LjUgMCAwIDEtLjUuNUgxMHYxaDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wm01LjUgM0g5di0yaDMuNWMuMjggMCAuNS4yMi41LjVWMTJabS05LTJoMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC00YTIgMiAwIDAgMS0uMjcgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZhMiAyIDAgMCAwLTIgMnY2Wm0xMC44LTNoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTIuMTYgMTFDMS41MiAxMSAxIDExLjUyIDEgMTIuMTd2NC42NmMwIC40OC4yOC44OC42OSAxLjA3YTEuMzMgMS4zMyAwIDAgMCAyLjYuMWguNzVhMS4zMyAxLjMzIDAgMCAwIDIuNTggMEg4YTEgMSAwIDAgMCAxLTF2LTIuMThhMSAxIDAgMCAwLS4xLS40NGwtLjc1LTEuNWExIDEgMCAwIDAtLjktLjU1SDd2LS4xNkM3IDExLjUyIDYuNDggMTEgNS44MyAxMUgyLjE3Wk03IDE0LjMzVjEzaC4yNWMuMTMgMCAuMjUuMDcuMy4xOGwuNTggMS4xNUg3Wm0tNC42NyAzLjM0YS42Ny42NyAwIDEgMSAxLjM0IDAgLjY3LjY3IDAgMCAxLTEuMzQgMFptNCAuNjZhLjY3LjY3IDAgMSAxIDAtMS4zMy42Ny42NyAwIDAgMSAwIDEuMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhcmdldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhcmdldEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguMzNhNC41IDQuNSAwIDAgMCAxLjQyLTIuMDIgMS41IDEuNSAwIDAgMCAwLTIuOTYgNC41MSA0LjUxIDAgMCAwLTIuNzctMi43NyAxLjUgMS41IDAgMCAwLTIuOTYgMEg0VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk02IDEwLjVhLjUuNSAwIDAgMC0xIDB2LjU0QTMuNSAzLjUgMCAwIDAgMi4wNCAxNEgxLjVhLjUuNSAwIDAgMCAwIDFoLjU0QTMuNSAzLjUgMCAwIDAgNSAxNy45NnYuNTRhLjUuNSAwIDAgMCAxIDB2LS41NEEzLjUgMy41IDAgMCAwIDguOTYgMTVoLjU0YS41LjUgMCAwIDAgMC0xaC0uNTRBMy41IDMuNSAwIDAgMCA2IDExLjA0di0uNTRabTIgNGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptLTEuNSAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFyZ2V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhcmdldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2Ni4yNmwuMDItLjAxYy4xLS41NC40Ny0uOTkuOTgtMS4xNlY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDkuMjRjLS4yNS4zOC0uNTYuNzEtLjkxIDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNNiAxMC41YS41LjUgMCAwIDAtMSAwdi41NEEzLjUgMy41IDAgMCAwIDIuMDQgMTRIMS41YS41LjUgMCAwIDAgMCAxaC41NEEzLjUgMy41IDAgMCAwIDUgMTcuOTZ2LjU0YS41LjUgMCAwIDAgMSAwdi0uNTRBMy41IDMuNSAwIDAgMCA4Ljk2IDE1aC41NGEuNS41IDAgMCAwIDAtMWgtLjU0QTMuNSAzLjUgMCAwIDAgNiAxMS4wNHYtLjU0Wm0yIDRhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabS0xLjUgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVpNNi41IDEwaDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFabTAgMmg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0wIDJoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVpNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDEwYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTAgMmEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wm0wIDJhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2Wm01LjUgNGgzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dENsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dENsb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuN2E1LjUgNS41IDAgMCAxIDQuNjYuOGg0Ljg0YS41LjUgMCAwIDEgMCAxSDkuNzRjLjI2LjMuNDguNjQuNjYgMWgzLjFhLjUuNSAwIDAgMSAwIDFoLTIuN2MuMDguMzIuMTUuNjYuMTggMWgyLjUyYS41LjUgMCAwIDEgMCAxaC0yLjUyYTUuNDggNS40OCAwIDAgMS0xLjI0IDNoNC43NmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wk01IDEyLjVhLjUuNSAwIDAgMSAxIDBWMTRoMWEuNS41IDAgMCAxIDAgMUg1LjVhLjUuNSAwIDAgMS0uNS0uNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dENsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRDbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS43NCAxMWE1LjUzIDUuNTMgMCAwIDAtMS4wOC0xaDQuODRhLjUuNSAwIDAgMSAwIDFIOS43NFptLjY2IDFjLjE2LjMyLjMuNjUuNCAxaDIuN2EuNS41IDAgMCAwIDAtMWgtMy4xWm0uNiAyLjVjMCAuMTcgMCAuMzQtLjAyLjVoMi41MmEuNS41IDAgMCAwIDAtMWgtMi41MmwuMDIuNVpNNSA0djUuMDJjLS4zNC4wMy0uNjguMS0xIC4xOVY0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDkuNzRjLjI2LS4zLjQ4LS42NC42Ni0xSDE0YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxWm02LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTYgMTJhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTUgMTIuNWEuNS41IDAgMCAxIDEgMFYxNGgxYS41LjUgMCAwIDEgMCAxSDUuNWEuNS41IDAgMCAxLS41LS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0RXh0cmFjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRFeHRyYWN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41VjExaDUuNWExLjUgMS41IDAgMCAxIDAgM0g0djIuNWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabS00IDNjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabTAgNmMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptNS05VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTIuNSAxMmEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0RXh0cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0RXh0cmFjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2N2gxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi0ySDR2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1ptLTguMyAzYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabS00IDJhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1ptNCAyYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dExpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjVWMTNoMi41YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAwIDFoLTZjLjk1IDAgMS44Mi4zOCAyLjQ1IDFoMy41NWEuNS41IDAgMCAxIDAgMWgtMi44NGEzLjQ5IDMuNDkgMCAwIDEgMCAzaDMuODRjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVpNNi41IDEwaDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFaTTExIDYuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk0zLjUgMTRhMi41IDIuNSAwIDAgMCAwIDVINGEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNINGEuNS41IDAgMCAwIDAtMWgtLjVaTTcgMTRhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIN2EuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUg3Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRMaW5rUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJoLTMuMzRjLjE1LS4zMS4yNS0uNjUuMy0xSDE0YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxdjlINFY0Wm03LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptMiA4aC0yLjg0YTMuNTEgMy41MSAwIDAgMC0uNzEtMWgzLjU1YS41LjUgMCAwIDEgMCAxWm0wLTJoLTdhLjUuNSAwIDAgMSAwLTFoN2EuNS41IDAgMCAxIDAgMVptLTctM2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wm0tMyA0YTIuNSAyLjUgMCAwIDAgMCA1SDRhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDRhLjUuNSAwIDAgMCAwLTFoLS41Wk03IDE0YS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDdhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIN1ptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0VG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuNTVjLjE2LS4wMy4zMy0uMDUuNS0uMDVoMmMuODIgMCAxLjU0LjQgMiAxaDVhLjUuNSAwIDAgMSAwIDFIOC45NXYuMDRhMi41IDIuNSAwIDAgMSAxLjU1Ljk2aDNhLjUuNSAwIDAgMSAwIDFoLTIuNTVjLjAzLjE2LjA1LjMzLjA1LjV2LjVoMi41YS41LjUgMCAwIDEgMCAxSDExdjIuNWMwIC4xNy0uMDIuMzQtLjA1LjVoMy41NWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMyAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNUg4di0uNWEuNS41IDAgMCAwLTEgMHYuNUg0di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVIM1ptNC0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNXYuNWgzdi0uNVpNOCAxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSAxIDE3LjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0VG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0VG9vbGJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC45NSAxMWMtLjA3LS4zNy0uMjMtLjctLjQ1LTFoNWEuNS41IDAgMCAxIDAgMUg4Ljk1Wm0xLjU1IDFjLjIyLjMuMzguNjMuNDUgMWgyLjU1YS41LjUgMCAwIDAgMC0xaC0zWm0zIDJIMTF2MWgyLjVhLjUuNSAwIDAgMCAwLTFaTTUgNHY1aC0uNWMtLjE3IDAtLjM0LjAyLS41LjA1VjRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJoLTMuMDVjLjAzLS4xNi4wNS0uMzMuMDUtLjVWMTdoM2ExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMVptNi41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVaTTMgMTJ2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVIOHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVINHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVIMXYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDNabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVaTTggMTZoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgMSAxNy41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRvb2xib3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxM3YtNWEyIDIgMCAwIDAtMi0yaC0xdi0xYTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMSAuMjdWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTQgMTJ2LTEuNUM0IDkuNjcgNC42NyA5IDUuNSA5aDJjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTJoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1SDl2LS41YS41LjUgMCAwIDAtMSAwdi41SDV2LS41YS41LjUgMCAwIDAtMSAwdi41SDF2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNUg0Wm0xLTEuNVYxMmgzdi0xLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVaTTkgMTZoM3YxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMSAxNy41VjE2aDN2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY0LjI3QTIgMiAwIDAgMSA1IDhWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMXYxaDFhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNNCAxMnYtMS41QzQgOS42NyA0LjY3IDkgNS41IDloMmMuODMgMCAxLjUuNjcgMS41IDEuNVYxMmgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVIOXYtLjVhLjUuNSAwIDAgMC0xIDB2LjVINXYtLjVhLjUuNSAwIDAgMC0xIDB2LjVIMXYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDRabTEtMS41VjEyaDN2LTEuNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVpNOSAxNmgzdjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSAxIDE3LjVWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRXaWR0aEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFdpZHRoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmg4YTIgMiAwIDAgMSAyIDJ2Mi4zNEExLjUgMS41IDAgMCAwIDE1LjAyIDhoLS41MmExLjUgMS41IDAgMCAwIDAgM2guNTJhMS41IDEuNSAwIDAgMCAuOTggMS42NlYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMy4zNEExLjUgMS41IDAgMCAwIDQuOTggMTFoLjUyYTEuNSAxLjUgMCAwIDAgMC0zaC0uNTJBMS41IDEuNSAwIDAgMCA0IDYuMzRWNGMwLTEuMS45LTIgMi0yWk0zLjg4IDcuNDJhLjUuNSAwIDAgMS0uMDUuN2wtMSAuODhINS41YS41LjUgMCAxIDEgMCAxSDIuODNsMSAuODdhLjUuNSAwIDAgMS0uNjYuNzZsLTItMS43NWEuNS41IDAgMCAxIDAtLjc2bDItMS43NWEuNS41IDAgMCAxIC43LjA1Wk0xNy4xNyAxMGwtMSAuODdhLjUuNSAwIDAgMCAuNjYuNzZsMi0xLjc1YS41LjUgMCAwIDAgMC0uNzZsLTItMS43NWEuNS41IDAgMCAwLS42Ni43NmwxIC44N0gxNC41YS41LjUgMCAwIDAgMCAxaDIuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFdpZHRoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFdpZHRoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjg4IDcuNDJhLjUuNSAwIDAgMS0uMDUuN2wtMSAuODhINS41YS41LjUgMCAwIDEgMCAxSDIuODNsMSAuODhhLjUuNSAwIDEgMS0uNjYuNzVsLTItMS43NWEuNS41IDAgMCAxIDAtLjc1bDItMS43NWEuNS41IDAgMCAxIC43LjA0Wk0xNy4xNyAxMGwtMSAuODhhLjUuNSAwIDAgMCAuNjYuNzVsMi0xLjc1YS41LjUgMCAwIDAgMC0uNzVsLTItMS43NWEuNS41IDAgMCAwLS42Ni43NWwxIC44N0gxNC41YS41LjUgMCAwIDAgMCAxaDIuNjdaTTUgNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYzLjVoLjAyQTEuNSAxLjUgMCAwIDEgMTYgNi4zNFY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjIuMzRhMS41IDEuNSAwIDAgMSAuOTggMS4xNkg1VjRabS0uMzcgOC4yNGMuMTktLjIyLjMtLjQ4LjM1LS43NEg1VjE2YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi00LjVoLjAyYTEuNSAxLjUgMCAwIDAgLjk4IDEuMTZWMTZhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTMuMzRjLjI0LS4wOC40NS0uMjIuNjMtLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRZbWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRZbWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2OC41NWwuMjUtLjM4YTEuNSAxLjUgMCAwIDEgMi4yNS0uMjkgMS41IDEuNSAwIDAgMSAyLjM0LjQ1TDEwIDE0LjE1bDEuMTYtMi4zMmExLjUgMS41IDAgMCAxIDIuMzQtLjQ1IDEuNSAxLjUgMCAwIDEgMi41IDEuMDlWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDE4YS41LjUgMCAwIDAgLjUtLjV2LTEuODVsMS45Mi0yLjg3YS41LjUgMCAwIDAtLjg0LS41NkwzLjUgMTQuNmwtMS41OC0yLjM4YS41LjUgMCAwIDAtLjg0LjU2TDMgMTUuNjV2MS44NWMwIC4yOC4yMi41LjUuNVptNC40NS01LjcyYS41LjUgMCAwIDAtLjk1LjIydjVhLjUuNSAwIDEgMCAxIDB2LTIuODhsMS41NSAzLjFhLjUuNSAwIDAgMCAuOSAwbDEuNTUtMy4xdjIuODhhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uOTUtLjIyTDEwIDE2LjM4bC0yLjA1LTQuMVptNy4wNS4yMmEuNS41IDAgMCAwLTEgMHY1YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDEgMCAwLTFIMTV2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50WW1sUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFltbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNnY1LjA4YzAtLjY1LS40Mi0xLjItMS0xLjRWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxdjcuMDljLS4zLjEtLjU2LjMtLjc1LjU4bC0uMjUuMzhWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabS04IDExYS41LjUgMCAwIDAgLjUtLjV2LTEuODVsMS45Mi0yLjg3YS41LjUgMCAwIDAtLjg0LS41NkwzLjUgMTQuNmwtMS41OC0yLjM4YS41LjUgMCAwIDAtLjg0LjU2TDMgMTUuNjV2MS44NWMwIC4yOC4yMi41LjUuNVptNC40NS01LjcyYS41LjUgMCAwIDAtLjk1LjIydjVhLjUuNSAwIDEgMCAxIDB2LTIuODhsMS41NSAzLjFhLjUuNSAwIDAgMCAuOSAwbDEuNTUtMy4xdjIuODhhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uOTUtLjIyTDEwIDE2LjM4bC0yLjA1LTQuMVptNy4wNS4yMmEuNS41IDAgMCAwLTEgMHY1YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDEgMCAwLTFIMTV2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vckZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgNGMwLS44My42Ny0xLjUgMS41LTEuNWg4LjE1QTEuNSAxLjUgMCAwIDEgMTUuNSA0djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNUg2QTEuNSAxLjUgMCAwIDEgNC41IDE2VjRaTTcgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9vclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAxMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0yIDEzaDhhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JBcnJvd0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAyLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuODlhNS41IDUuNSAwIDAgMSA1LjYxLTguNFY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg2Wk04IDEwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMTEgNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxNWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd0xlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JBcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNC4yNmE1LjUgNS41IDAgMCAxLS42Ni0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjUuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNGEyIDIgMCAwIDAtMi0ySDZabTIgOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTExIDQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDIuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMy44OWE1LjUgNS41IDAgMCAxIDUuNjEtOC40VjRjMC0uODMtLjY3LTEuNS0xLjUtMS41SDZaTTggMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm02LjUgOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLjM1LTIuMTVhLjUuNSAwIDAgMS0uNy0uN0wxNS4yOSAxNUgxMi41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0LjI2YTUuNSA1LjUgMCAwIDEtLjY2LTFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NS4wMmMuMzQuMDMuNjguMSAxIC4xOVY0YTIgMiAwIDAgMC0yLTJINlptMiA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNi41IDlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS4zNS0yLjE1YS41LjUgMCAwIDEtLjctLjdMMTUuMjkgMTVIMTIuNWEuNS41IDAgMCAxIDAtMWgyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmEuNS41IDAgMCAxIC4xNS4zNS41LjUgMCAwIDEtLjE0LjM1bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yVGFnRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JUYWdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4zIDYuM0ExIDEgMCAxIDEgMTAgOEg3YTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY3LjA1YTQuOTggNC45OCAwIDAgMC04LjU0LTMuNTlBMiAyIDAgMSAwIDkuMyA2LjNaTTggMTRoNGEuNS41IDAgMCAxIDAgMUg4YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9vclRhZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vclRhZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zIDYuM0ExIDEgMCAxIDEgMTAgOEg3YTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY3LjA1YTQuOTggNC45OCAwIDAgMC04LjU0LTMuNTlBMiAyIDAgMSAwIDkuMyA2LjNaTTExLjQgOC40QTIgMiAwIDEgMCA4LjYgNS42YTEgMSAwIDAgMS0xLjQyLTEuNDJBNCA0IDAgMCAxIDE0IDdWMTZhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWgzYTIgMiAwIDAgMCAxLjQxLS41OVpNOCAxNGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xSDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb3VibGVTd2lwZURvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlU3dpcGVEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMjggMTcuNzhjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLjUtMi41YS43NS43NSAwIDAgMSAxLjA2LTEuMDZMNSAxNS40NFY1Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY5LjY5bDEuMjItMS4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yLjUgMi41Wk0yIDUuNzVjMCAxLjQ0LjgxIDIuNjkgMiAzLjMydi0xLjlhMi4yNSAyLjI1IDAgMSAxIDMuNSAwdjEuOUEzLjc1IDMuNzUgMCAxIDAgMiA1Ljc1Wm0xMC41IDMuMzJhMy43NSAzLjc1IDAgMSAxIDMuNSAwdi0xLjlhMi4yNSAyLjI1IDAgMSAwLTMuNSAwdjEuOVptMi4yOCA4LjcxYy0uMy4zLS43Ny4zLTEuMDYgMGwtMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDEuMjIgMS4yMlY1Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY5LjY5bDEuMjItMS4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yLjUgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlU3dpcGVEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVTd2lwZURvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuODUgMTcuODVhLjUuNSAwIDAgMS0uNyAwbC0zLTNhLjUuNSAwIDAgMSAuNy0uN0w1IDE2LjI5VjUuNWEuNS41IDAgMCAxIDEgMHYxMC44bDIuMTUtMi4xNWEuNS41IDAgMCAxIC43LjdsLTMgM1ptOSAwYS41LjUgMCAwIDEtLjcgMGwtMy0zYS41LjUgMCAwIDEgLjctLjdMMTQgMTYuMjlWNS41YS41LjUgMCAwIDEgMSAwdjEwLjhsMi4xNS0yLjE1YS41LjUgMCAwIDEgLjcuN2wtMyAzWk0xMSA1LjVjMCAxLjQuODIgMi42IDIgMy4xNlY3LjVhMi41IDIuNSAwIDEgMSAzIDB2MS4xNmEzLjUgMy41IDAgMSAwLTUtMy4xNlpNNCA4LjY2YTMuNSAzLjUgMCAxIDEgMyAwVjcuNWEyLjUgMi41IDAgMSAwLTMgMHYxLjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlU3dpcGVVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVTd2lwZVVwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMjggMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDEuMDZMNSA0LjU2djkuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNTZsMS4yMiAxLjIyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTIuNS0yLjVaTTIgMTQuMjVjMC0xLjQ0LjgxLTIuNjkgMi0zLjMydjEuOWEyLjI1IDIuMjUgMCAxIDAgMy41IDB2LTEuOUEzLjc1IDMuNzUgMCAxIDEgMiAxNC4yNVptMTAuNS0zLjMyYTMuNzUgMy43NSAwIDEgMCAzLjUgMHYxLjlhMi4yNSAyLjI1IDAgMSAxLTMuNSAwdi0xLjlabTIuMjgtOC43MWEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMS4yMi0xLjIydjkuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNTZsMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb3VibGVTd2lwZVVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVTd2lwZVVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljg1IDIuMTVhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDEgMCAuNy43TDUgMy43MVYxNC41YS41LjUgMCAwIDAgMSAwVjMuN2wyLjE1IDIuMTVhLjUuNSAwIDEgMCAuNy0uN2wtMy0zWm05IDBhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDAgMCAuNy43TDE0IDMuNzFWMTQuNWEuNS41IDAgMCAwIDEgMFYzLjdsMi4xNSAyLjE1YS41LjUgMCAwIDAgLjctLjdsLTMtM1pNMTEgMTQuNWMwLTEuNC44Mi0yLjYgMi0zLjE2djEuMTZhMi41IDIuNSAwIDEgMCAzIDB2LTEuMTZhMy41IDMuNSAwIDEgMS01IDMuMTZabS03LTMuMTZhMy41IDMuNSAwIDEgMCAzIDB2MS4xNmEyLjUgMi41IDAgMSAxLTMgMHYtMS4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVRhcFN3aXBlRG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVUYXBTd2lwZURvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNTMgMTcuNzhjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLjUtMi41YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMS4yMiAxLjIyVjcuNzVhLjc1Ljc1IDAgMSAxIDEuNSAwdjcuNjlsMS4yMi0xLjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIuNSAyLjVaTTQuMjUgNy41YTUuNzUgNS43NSAwIDAgMCA0IDUuNDh2LTEuNmE0LjI1IDQuMjUgMCAxIDEgMy41IDB2MS42YTUuNzUgNS43NSAwIDEgMC03LjUtNS40OFptMi41IDBjMCAxLjE1LjYgMi4xNiAxLjUgMi43NFY3LjVhMS43NSAxLjc1IDAgMSAxIDMuNS4xM1YxMC4yNGEzLjI1IDMuMjUgMCAxIDAtNS0yLjc0WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVUYXBTd2lwZURvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjM1IDE3Ljg1YS41LjUgMCAwIDEtLjcgMGwtMy0zYS41LjUgMCAwIDEgLjctLjdsMi4xNSAyLjE0VjcuNWEuNS41IDAgMCAxIDEgMHY4LjhsMi4xNS0yLjE1YS41LjUgMCAwIDEgLjcuN2wtMyAzWk00LjUgNy41YTUuNSA1LjUgMCAwIDAgNCA1LjN2LTEuMDZhNC41IDQuNSAwIDEgMSAzIDB2MS4wNWE1LjUgNS41IDAgMSAwLTctNS4yOVptMiAwYzAgMS40LjgyIDIuNiAyIDMuMTZWOS41YTIuNSAyLjUgMCAxIDEgMyAwdjEuMTZhMy41IDMuNSAwIDEgMC01LTMuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb3VibGVUYXBTd2lwZVVwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVRhcFN3aXBlVXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNTMgMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMS4yMi0xLjIydjcuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNTZsMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVaTTQuMjUgMTIuNWE1Ljc1IDUuNzUgMCAwIDEgNC01LjQ4djEuNmE0LjI1IDQuMjUgMCAxIDAgMy41IDB2LTEuNmE1Ljc1IDUuNzUgMCAxIDEtNy41IDUuNDhabTIuNSAwYzAtMS4xNS42LTIuMTYgMS41LTIuNzR2Mi43NGExLjc1IDEuNzUgMCAxIDAgMy41IDBWOS43NmEzLjI1IDMuMjUgMCAxIDEtNSAyLjc0WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlVGFwU3dpcGVVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMzUgMi4xNWEuNS41IDAgMCAwLS43IDBsLTMgM2EuNS41IDAgMSAwIC43LjdMOS41IDMuNzF2OC43OWEuNS41IDAgMCAwIDEgMFYzLjdsMi4xNSAyLjE1YS41LjUgMCAwIDAgLjctLjdsLTMtM1pNNC41IDEyLjVhNS41IDUuNSAwIDAgMSA0LTUuM3YxLjA2YTQuNSA0LjUgMCAxIDAgMyAwVjcuMmE1LjUgNS41IDAgMSAxLTcgNS4yOVptMiAwYzAtMS40LjgyLTIuNiAyLTMuMTZ2MS4xNmEyLjUgMi41IDAgMSAwIDMgMFY5LjM0YTMuNSAzLjUgMCAxIDEtNSAzLjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhZnRzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWZ0c0ZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNS42MSA4LjMyLTMuOTMtMy45NC04LjA0IDguMDQtLjEyLjEzYTIgMiAwIDAgMC0uNC43NmwtMS4xIDQuMDYtLjAyLjA4YS41LjUgMCAwIDAgLjYzLjUzbDQuMDYtMS4xLjE2LS4wNmEyIDIgMCAwIDAgLjczLS40Nmw4LjAzLTguMDRabTEuNTctNS41YTIuNzggMi43OCAwIDAgMC0zLjkzIDBsLS44Ny44NiAzLjk0IDMuOTMuODYtLjg2LjEzLS4xNGMuOTYtMS4wOS45MS0yLjc1LS4xMy0zLjhaTTExLjY1IDNIMi41YS41LjUgMCAwIDAgMCAxaDguMTVsMS0xWm0tMyAzSDIuNWEuNS41IDAgMCAwIDAgMWg1LjE1bDEtMVptLTMgMy0xIDFIMi41YS41LjUgMCAxIDEgMC0xaDMuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmFmdHNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWZ0c1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTMuMjUgMi44Mi05LjYxIDkuNi0uMTIuMTNhMiAyIDAgMCAwLS40Ljc2bC0xLjEgNC4wNi0uMDIuMDhhLjUuNSAwIDAgMCAuNjMuNTNsNC4wNi0xLjEuMTYtLjA2YTIgMiAwIDAgMCAuNzMtLjQ2bDkuNi05LjYuMTMtLjE1YTIuNzggMi43OCAwIDAgMC00LjA2LTMuOFptLTguOSAxMC4zMSA4LjA0LTguMDQgMi41MiAyLjUyLTguMDQgOC4wNC0uMS4wOS0uMS4wN2ExIDEgMCAwIDEtLjI1LjFsLTMuMi44Ny44Ny0zLjIuMDQtLjEzYTEgMSAwIDAgMSAuMjItLjMyWm0xMi4xMi05LjYuMTEuMTFjLjU5LjcuNTUgMS43NS0uMSAyLjRsLS44Ny44Ny0yLjUyLTIuNTMuODYtLjg2LjEyLS4xYy43LS41OSAxLjc1LS41NSAyLjQuMVpNMTEuNjUgM0gyLjVhLjUuNSAwIDAgMCAwIDFoOC4xNWwxLTFabS0zIDNIMi41YS41LjUgMCAwIDAgMCAxaDUuMTVsMS0xWm0tNCA0IDEtMUgyLjVhLjUuNSAwIDAgMCAwIDFoMi4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYWdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYy4yIDAgLjM5LjA4LjUzLjIybDEuNSAxLjVhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtLjIyLS4yMnYxLjY5YS43NS43NSAwIDAgMS0xLjUgMFY0LjU2bC0uMjIuMjJhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjUtMS41QS43NS43NSAwIDAgMSAxMCAyWm0yIDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tOS43OC0uNTNhLjc1Ljc1IDAgMCAwIDAgMS4wNmwxLjUgMS41YS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLS4yMi0uMjJoMS42OWEuNzUuNzUgMCAwIDAgMC0xLjVINC41NmwuMjItLjIyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTEuNSAxLjVaTTEwIDE4Yy4yIDAgLjM5LS4wOC41My0uMjJsMS41LTEuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0uMjIuMjJ2LTEuNjlhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuNjlsLS4yMi0uMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjUgMS41Yy4xNC4xNC4zMy4yMi41My4yMlptNy43OC04LjUzYS43NS43NSAwIDAgMSAwIDEuMDZsLTEuNSAxLjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuMjItLjIyaC0xLjY5YS43NS43NSAwIDAgMSAwLTEuNWgxLjY5bC0uMjItLjIyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYWdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNjUgMi4xNWMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDEwLjUgMy43MVY2LjVhLjUuNSAwIDAgMS0xIDBWMy43TDguMzUgNC44NmEuNS41IDAgMSAxLS43LS43bDItMlpNMTAgMTJhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wLTFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm01Ljg1IDEuMzUgMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTVIMTMuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdabS01LjUgNS41IDItMmEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTRWMTMuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMFptLTguMi03LjVhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMSAxIC43LjdMMy43MSA5LjVINi41YS41LjUgMCAwIDEgMCAxSDMuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3SW1hZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd0ltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjkuMDhjMCAuNDUuNTUuNjguODcuMzZMNS4yIDE0LjFsMy43NC0zLjY4YTEuNSAxLjUgMCAwIDEgMi4xIDBsMS43NCAxLjcyIDIuMzEtMi4zYy41My0uNTQgMS4yMS0uODIgMS45LS44NVY2YTMgMyAwIDAgMC0zLTNINlptOCA0LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0xIDBhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS0yLjczIDcuMTcgMS44Mi0xLjgxLTEuNzQtMS43MWEuNS41IDAgMCAwLS43IDBMNS40MyAxNS4zYy0uMjMuMjMtLjAxLjU4LjMuNDdsLjMyLS4xMWMuNy0uMjYgMS43Ni0uNTUgMi43NS0uMTYuMjguMTIuNS4yOC42OC40OC4xNS0uNS40Mi0uOTUuOC0xLjMyWm0uNzEuNyA0LjgzLTQuODJhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS4yMi4zYy0xLjEyLjMzLTIuOC4yMy0zLjMxLS4xOGExLjA1IDEuMDUgMCAwIDEtLjMyLTEuMjRjLjA0LS4wOC0uMDItLjE4LS4xLS4xNy0uNS4wNy0uOS4yNS0xLjMuNDMtLjYuMjUtMS4xNi41LTEuOTguNGExLjcgMS43IDAgMCAxLTEuMzMtLjgyYy0uMTItLjIuMTUtLjQuMzYtLjI4LjM3LjE4LjgzLjMzIDEuMjIuMjQuMjUtLjA1LjU3LS4xOS45NC0uMzQuODgtLjM3IDItLjg1IDIuODYtLjUuNjQuMjYuNTkuOTguNCAxLjMzLS4wMy4wNyAwIC4xNi4wNy4xOC4yNy4wNi42NS4xIDEuMTEuMDkgMC0uMDUuMDItLjEuMDMtLjE0bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3SW1hZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdJbWFnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgNy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2M2MtLjM0LjAyLS42OC4xLTEgLjIzVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OC44M2MwIC4xNy4yMS4yNi4zNC4xNGwuOC0uOCAxLjA1LTEuMDMuMi0uMiAyLjU2LTIuNWExLjUgMS41IDAgMCAxIDIuMSAwbDEuNzUgMS43LS43MS43MS0xLjc0LTEuN2EuNS41IDAgMCAwLS43IDBsLTIuNzYgMi43LTEuODUgMS44M0ExLjIgMS4yIDAgMCAxIDMgMTQuODNWNlptLjQgMTEuMDRjLjM3LjE4LjgzLjMzIDEuMjIuMjQuMjUtLjA1LjU3LS4xOS45NC0uMzQuODgtLjM3IDItLjg1IDIuODYtLjUuNjQuMjYuNTkuOTguNCAxLjMzLS4wMy4wNyAwIC4xNi4wNy4xOC4yNy4wNi42NS4xIDEuMTEuMDkgMC0uMDUuMDItLjEuMDMtLjE0bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJsNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuMjIuM2MtMS4xMi4zMy0yLjguMjMtMy4zMS0uMThhMS4wNSAxLjA1IDAgMCAxLS4zMi0xLjI0Yy4wNC0uMDgtLjAyLS4xOC0uMS0uMTctLjUuMDctLjkuMjUtMS4zLjQzLS42LjI1LTEuMTYuNS0xLjk4LjRhMS43IDEuNyAwIDAgMS0xLjMzLS44MmMtLjEyLS4yLjE1LS40LjM2LS4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdTaGFwZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3U2hhcGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjNjLS42OS4wMy0xLjM3LjMxLTEuOS44NGwtNC44MyA0LjgzYTMuMiAzLjIgMCAwIDAtLjggMS4zMWMtLjE2LS4xOS0uMzktLjM1LS42Ny0uNDctLjk5LS40LTIuMDUtLjEtMi43NS4xNmExMiAxMiAwIDAgMC0uNDEuMTVjLS4zOC4xOS0uNzIuMzEtMS4wMS40QTEuMiAxLjIgMCAwIDEgMy40NyAxNmMtLjMtLjI2LS40Ny0uNjQtLjQ3LTEuMDVWNlptNy45OCA5LjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjIyLjNjLTEuMTIuMzMtMi44LjIzLTMuMzEtLjE4YTEuMDUgMS4wNSAwIDAgMS0uMzItMS4yNGMuMDQtLjA4LS4wMi0uMTgtLjEtLjE3LS41LjA3LS45LjI1LTEuMy40My0uNi4yNS0xLjE2LjUtMS45OC40YTEuNyAxLjcgMCAwIDEtMS4zMy0uODJjLS4xMi0uMi4xNS0uNC4zNi0uMjguMzcuMTguODMuMzMgMS4yMi4yNC4yNS0uMDUuNTctLjE5Ljk0LS4zNC44OC0uMzcgMi0uODUgMi44Ni0uNS42NC4yNi41OS45OC40IDEuMzMtLjAzLjA3IDAgLjE2LjA3LjE4LjI3LjA2LjY1LjEgMS4xMS4wOSAwLS4wNS4wMi0uMS4wMy0uMTRsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdTaGFwZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd1NoYXBlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2M2MtLjM0LjAyLS42OC4xLTEgLjIzVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OS41YS41LjUgMCAwIDEtMSAwVjZabS40IDExLjA0Yy4zNy4xOC44My4zMyAxLjIyLjI0LjI1LS4wNS41Ny0uMTkuOTQtLjM0Ljg4LS4zNyAyLS44NSAyLjg2LS41LjY0LjI2LjU5Ljk4LjQgMS4zMy0uMDMuMDcgMCAuMTYuMDcuMTguMjcuMDYuNjUuMSAxLjExLjA5IDAtLjA1LjAyLS4xLjAzLS4xNGwuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAybDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjIyLjNjLTEuMTIuMzMtMi44LjIzLTMuMzEtLjE4YTEuMDUgMS4wNSAwIDAgMS0uMzItMS4yNGMuMDQtLjA4LS4wMi0uMTgtLjEtLjE3LS41LjA3LS45LjI1LTEuMy40My0uNi4yNS0xLjE2LjUtMS45OC40YTEuNyAxLjcgMCAwIDEtMS4zMy0uODJjLS4xMi0uMi4xNS0uNC4zNi0uMjhaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3VGV4dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3VGV4dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4xNCAxMC41SDYuODZMOC41IDUuODJsMS42NCA0LjY4Wm0uNTMgMS41LjMzLjk0IDEuMTctMS4xNy0yLjg3LTguMmEuODUuODUgMCAwIDAtMS42IDBMNC4wNCAxNGEuNzUuNzUgMCAwIDAgMS40Mi41bC44Ny0yLjVoNC4zNFptNS4xNC0yLjQ1LTQuODMgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzggMS41YS45Mi45MiAwIDAgMC0uMDIuMTQgNC42IDQuNiAwIDAgMS0xLjExLS4xYy0uMDcgMC0uMS0uMS0uMDctLjE3LjE4LS4zNS4yNC0xLjA3LS40LTEuMzMtLjg2LS4zNS0xLjk4LjEzLTIuODYuNS0uMzcuMTUtLjcuMjktLjk1LjM0LS4zOC4wOS0uODQtLjA2LTEuMjEtLjI0LS4yMS0uMTEtLjQ4LjA4LS4zNi4yOC4yMi4zNy42MS43NCAxLjMyLjgzLjgyLjEgMS40LS4xNiAxLjk4LS40MS40LS4xOC44LS4zNiAxLjMtLjQzLjA4LS4wMS4xNC4wOS4xMS4xNy0uMTUuMzUtLjEzLjkuMzIgMS4yNC41Mi40IDIuMTkuNTEgMy4zMS4xOWwxLjIyLS4zMWMuMzktLjEuNzQtLjMgMS4wMi0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDEgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3VGV4dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd1RleHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjcyIDExSDYuMjhMOC41IDQuNzkgMTAuNzIgMTFabS4zNSAxIC4yMy42NC43OC0uNzgtMy4wMi04LjQ3YS42LjYgMCAwIDAtMS4xMyAwbC0zLjkgMTAuOTVhLjUuNSAwIDAgMCAuOTQuMzNMNS45MiAxMmg1LjE1Wm00Ljc0LTIuNDUtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zOCAxLjVhLjkxLjkxIDAgMCAwLS4wMi4xNCA0LjYgNC42IDAgMCAxLTEuMTEtLjFjLS4wNyAwLS4xLS4xLS4wNy0uMTcuMTgtLjM1LjI0LTEuMDctLjQtMS4zMy0uODYtLjM0LTEuOTguMTMtMi44Ni41LS4zNy4xNS0uNy4yOS0uOTUuMzQtLjM4LjA5LS44NC0uMDYtMS4yMS0uMjQtLjIxLS4xMS0uNDguMDgtLjM2LjI4LjIyLjM3LjYxLjc0IDEuMzIuODMuODIuMSAxLjQtLjE2IDEuOTgtLjQxLjQtLjE4LjgtLjM2IDEuMy0uNDMuMDgtLjAxLjE0LjA5LjExLjE3LS4xNS4zNi0uMTMuOS4zMiAxLjI0LjUyLjQgMi4xOS41MSAzLjMxLjE5bDEuMjItLjMxYy4zOS0uMS43NC0uMyAxLjAyLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAwLTIuNjQtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4xNiAzYTIgMiAwIDAgMC0xLjc0IDFMNC4yNiA2LjA1YTIgMiAwIDAgMC0uMjYgMVY5YTEgMSAwIDAgMCAxIDFoLjA3bC0uNzIgMkExLjUgMS41IDAgMCAwIDMgMTMuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS43OC0uNi0xLjQyLTEuMzUtMS41bC0uNzItMkgxNWExIDEgMCAwIDAgMS0xVjcuMDNhMiAyIDAgMCAwLS4yNi0xbC0xLjE2LTIuMDJBMiAyIDAgMCAwIDEyLjg0IDNINy4xNlptNy40MSA2LS43MS0ySDE1djJoLS40M1pNMTIuOCA3bDEuNzggNUg1LjQyTDcuMiA3aDUuNlpNNi4xNCA3bC0uNzEgMkg1VjdoMS4xNFptMi4zNiA3aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDE0YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabS00LjE1LTJBMS41IDEuNSAwIDAgMCAzIDEzLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uNzgtLjYtMS40Mi0xLjM1LTEuNWwtLjcyLTJIMTVhMSAxIDAgMCAwIDEtMVY3LjAzYTIgMiAwIDAgMC0uMjYtMWwtMS4xNi0yLjAyQTIgMiAwIDAgMCAxMi44NCAzSDcuMTZhMiAyIDAgMCAwLTEuNzQgMUw0LjI2IDYuMDVhMiAyIDAgMCAwLS4yNiAxVjlhMSAxIDAgMCAwIDEgMWguMDdsLS43MiAyWm04LjQ5LThhMSAxIDAgMCAxIC44Ny41bC44NSAxLjVINS40NGwuODUtMS41YTEgMSAwIDAgMSAuODctLjVoNS42OFptLS4wNCAzIDEuNzggNUg1LjQyTDcuMiA3aDUuNlptMi43IDZjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoMTFaTTUuNDMgOUg1VjdoMS4xNGwtLjcxIDJabTkuMTQgMC0uNzEtMkgxNXYyaC0uNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTN2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE0VjMuNVpNNiA0aDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMUg2YTIgMiAwIDAgMC0yIDJoNC4yYy4xLjM1LjI0LjY4LjQgMUg0djNoMy41Yy4yOCAwIC41LjIyLjUuNWEyIDIgMCAxIDAgNCAwYzAtLjI4LjIyLS41LjUtLjVIMTZ2LS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNWEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlckFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVY1aDEuNWEuNS41IDAgMCAxIDAgMUgxNHYxLjVhLjUuNSAwIDAgMS0xIDBWNmgtMS41YS41LjUgMCAwIDEgMC0xSDEzVjMuNWMwLS4yOC4yMi0uNS41LS41Wk0xNyA5Ljc0VjE1YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM2gyLjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFINmEyIDIgMCAwIDAtMiAyaDQuMmMuMS4zNS4yNC42OC40IDFINHYzaDMuNWMuMjggMCAuNS4yMi41LjVhMiAyIDAgMSAwIDQgMGMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZaTTE0IDE3YTIgMiAwIDAgMCAyLTJ2LTNoLTMuMDRhMyAzIDAgMCAxLTUuOTIgMEg0djNjMCAxLjEuOSAyIDIgMmg4WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyQXJyb3dEb3dubG9hZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJBcnJvd0Rvd25sb2FkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNS41YTQuNSA0LjUgMCAwIDEgNC00LjQ3djMuNzZsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMC0uNy0uN2wtLjY1LjY0VjEuMDNBNC41IDQuNSAwIDEgMSA5IDUuNVptMiAyYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41Wk02IDRoMi4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDZhMiAyIDAgMCAwLTIgMmg0LjJjLjEuMzUuMjQuNjguNCAxSDR2M2gzLjVjLjI4IDAgLjUuMjIuNS41YTIgMiAwIDEgMCA0IDBjMC0uMjguMjItLjUuNS0uNUgxNnYtLjZjLjM2LS4xOC43LS40IDEtLjY2VjE1YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckFycm93RG93bmxvYWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlckFycm93RG93bmxvYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNS41YTQuNSA0LjUgMCAwIDEgNC00LjQ3djMuNzZsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMC0uNy0uN2wtLjY1LjY0VjEuMDNBNC41IDQuNSAwIDEgMSA5IDUuNVptMiAyYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41Wm02IDIuMjRjLS4zLjI2LS42NC40OC0xIC42NnYuNmgtMy41YS41LjUgMCAwIDAtLjUuNSAyIDIgMCAxIDEtNCAwIC41LjUgMCAwIDAtLjUtLjVINFY4aDQuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg0YzAtMS4xLjktMiAyLTJoMi4wMmMuMDMtLjM0LjEtLjY4LjE5LTFINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWOS43NFpNMTYgMTVhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNoMy4wNGEzIDMgMCAwIDAgNS45MiAwSDE2djNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlckRpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdMMTQuMjEgNS41bDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMMTMuNSA2LjIxbC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN2wxLjE0LTEuMTUtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpNOC4yMSA0SDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjkuNzRjLS4zLjI2LS42NC40OC0xIC42NnYuNmgtMy41YS41LjUgMCAwIDAtLjUuNSAyIDIgMCAxIDEtNCAwIC41LjUgMCAwIDAtLjUtLjVINFY4aDQuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg0YzAtMS4xLjktMiAyLTJoMi4wMmMuMDMtLjM0LjEtLjY4LjE5LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMy41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE0LjIxIDUuNWwxLjE0LTEuMTVaTTE3IDkuNzVjLS4zLjI1LS42NC40Ny0xIC42NXYuNmgtMy41YS41LjUgMCAwIDAtLjUuNSAyIDIgMCAxIDEtNCAwIC41LjUgMCAwIDAtLjUtLjVINFY4aDQuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg0YzAtMS4xLjktMiAyLTJoMi4wMmMuMDMtLjM0LjEtLjY4LjE5LTFINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWOS43NFpNMTYgMTVhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNoMy4wNGEzIDMgMCAwIDAgNS45MiAwSDE2djNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJQbGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlclBsYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC4yIDRINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWOS43NGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42aC0zLjVhLjUuNSAwIDAgMC0uNS41IDIgMiAwIDEgMS00IDAgLjUuNSAwIDAgMC0uNS0uNUg0VjhoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDRjMC0xLjEuOS0yIDItMmgyLjAyYy4wMy0uMzQuMS0uNjguMTktMVptNS4zIDZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uNzYtNi41OSAyLjk3IDEuNjVhLjUuNSAwIDAgMSAwIC44OGwtMi45NyAxLjY1YS41LjUgMCAwIDEtLjc0LS40NHYtMy4zYS41LjUgMCAwIDEgLjc0LS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlclBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlclBsYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDkuNzRWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zaDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMUg2YTIgMiAwIDAgMC0yIDJoNC4yYy4xLjM1LjI0LjY4LjQgMUg0djNoMy41Yy4yOCAwIC41LjIyLjUuNWEyIDIgMCAxIDAgNCAwYzAtLjI4LjIyLS41LjUtLjVIMTZ2LS42Yy4zNi0uMTguNy0uNCAxLS42NlpNMTQgMTdhMiAyIDAgMCAwIDItMnYtM2gtMy4wNGEzIDMgMCAwIDEtNS45MiAwSDR2M2MwIDEuMS45IDIgMiAyaDhabS0uNS03YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjc2LTYuNTkgMi45NyAxLjY1YS41LjUgMCAwIDEgMCAuODhsLTIuOTcgMS42NWEuNS41IDAgMCAxLS43NC0uNDR2LTMuM2EuNS41IDAgMCAxIC43NC0uNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJTdWJ0cmFjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJTdWJ0cmFjdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yIDBhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgLjUtLjVaTTYgNGgyLjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFINmEyIDIgMCAwIDAtMiAyaDQuMmMuMS4zNS4yNC42OC40IDFINHYzaDMuNWMuMjggMCAuNS4yMi41LjVhMiAyIDAgMSAwIDQgMGMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyU3VidHJhY3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlclN1YnRyYWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yIDBhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgLjUtLjVabTEgNC4yNGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42aC0zLjVhLjUuNSAwIDAgMC0uNS41IDIgMiAwIDEgMS00IDAgLjUuNSAwIDAgMC0uNS0uNUg0VjhoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDRjMC0xLjEuOS0yIDItMmgyLjAyYy4wMy0uMzQuMS0uNjguMTktMUg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y5Ljc0Wk0xNiAxNWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2gzLjA0YTMgMyAwIDAgMCA1LjkyIDBIMTZ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQmVlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JlZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYxMS43NWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1aC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNUEyLjUgMi41IDAgMCAwIDE1LjUgNUgxNXYtLjVBMi41IDIuNSAwIDAgMCAxMi41IDJoLTZaTTE1IDZoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTVWNlpNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g2Yy44MyAwIDEuNS42NyAxLjUgMS41VjVINXYtLjVaTTEyLjUgOHY2YS41LjUgMCAwIDEtMSAwVjhhLjUuNSAwIDAgMSAxIDBabS0zLS41Yy4yOCAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtMSAwVjhjMC0uMjguMjItLjUuNS0uNVptLTIgLjV2NmEuNS41IDAgMCAxLTEgMFY4YS41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCZWVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JlZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjUgOGEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwVjhabS0zLS41Yy4yOCAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtMSAwVjhjMC0uMjguMjItLjUuNS0uNVptLTIgLjVhLjUuNSAwIDAgMC0xIDB2NmEuNS41IDAgMCAwIDEgMFY4Wm0tMS02QTIuNSAyLjUgMCAwIDAgNCA0LjV2MTEuNzVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNy41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNWguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNS41IDVIMTV2LS41QTIuNSAyLjUgMCAwIDAgMTIuNSAyaC02Wk0xNSA2aC41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1VjZaTTUgNC41QzUgMy42NyA1LjY3IDMgNi41IDNoNmMuODMgMCAxLjUuNjcgMS41IDEuNVY1SDV2LS41Wk01IDZoOXYxMC4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQm90dGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQm90dGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMy41YzAgLjY0LjQgMS4xOC45NiAxLjQtLjEyLjUtLjQ3Ljg4LTEgMS40M2wtLjMzLjM0YTQuMyA0LjMgMCAwIDAtMS42MiAzLjYxTDUgMTAuNXY1YTIuNSAyLjUgMCAwIDAgMy43NSAyLjE3IDIuNDkgMi40OSAwIDAgMCAyLjUgMEEyLjUgMi41IDAgMCAwIDE1IDE1LjV2LTVsLS4wMS0uMjJhNC4wNyA0LjA3IDAgMCAwLS42Ny0yLjU2Yy0uNC0uNi0uODYtMS4wNC0xLjI0LTEuNDJsLS4wMS0uMDFjLS41NS0uNTQtLjktLjktMS4wMi0xLjRBMS41IDEuNSAwIDAgMCAxMS41IDJoLTNDNy42NyAyIDcgMi42NyA3IDMuNVptLTEgMTJWMTVoOHYuNWExLjUgMS41IDAgMCAxLTIuNDQgMS4xNy41LjUgMCAwIDAtLjYyIDAgMS41IDEuNSAwIDAgMS0xLjg4IDAgLjUuNSAwIDAgMC0uNjIgMEExLjUgMS41IDAgMCAxIDYgMTUuNVpNOC45NiA1aDIuMDljLjE2Ljg2Ljc0IDEuNDMgMS4yNyAxLjk2bC4wNS4wNEg3LjdsLjAyLS4wMUM4LjI0IDYuNDUgOC44IDUuODcgOC45NiA1Wm0yLjU0LTFoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQm90dGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JvdHRsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDJoM2ExLjUgMS41IDAgMCAxIC41NSAyLjljLjEyLjQ4LjQ3Ljg1IDEuMDIgMS4zOWwuMDEuMDFjLjM4LjM4Ljg0LjgzIDEuMjQgMS40MmwuMDIuMDVhNC4xNCA0LjE0IDAgMCAxIC42NSAyLjUxbC4wMS4yMnY1YTIuNSAyLjUgMCAwIDEtMy43NSAyLjE3IDIuNDkgMi40OSAwIDAgMS0yLjUgMEEyLjUgMi41IDAgMCAxIDUgMTUuNXYtNWwuMDEtLjIyTDUgMTBhNC4zIDQuMyAwIDAgMSAxLjYzLTMuMzNsLjMzLS4zNGMuNTMtLjU1Ljg4LS45MiAxLTEuNDNBMS41IDEuNSAwIDAgMSA4LjUgMlpNMTQgMTR2LTMuNjZhMy4wOSAzLjA5IDAgMCAwLS41My0yLjEgNS4yIDUuMiAwIDAgMC0uMTgtLjI0SDYuNzJBMy4yIDMuMiAwIDAgMCA2IDEwLjM0TDYgMTAuNVYxNGg4Wm0tOCAxdi41YTEuNSAxLjUgMCAwIDAgMi40NCAxLjE3LjUuNSAwIDAgMSAuNjIgMCAxLjUgMS41IDAgMCAwIDEuODggMCAuNS41IDAgMCAxIC42MiAwQTEuNSAxLjUgMCAwIDAgMTQgMTUuNVYxNUg2Wm01LjA1LTEwaC0yLjFjLS4xNS44Ny0uNyAxLjQ1LTEuMjMgMS45OUw3LjcgN2g0LjY3bC0uMDUtLjA0Yy0uNTMtLjUzLTEuMS0xLjEtMS4yNy0xLjk2Wk04LjUgNGgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCb3R0bGVPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtCb3R0bGVPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTUgMTUuNyAyLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43TDYuMjggN2E0LjI0IDQuMjQgMCAwIDAtMS4yNyAzLjI5TDUgMTAuNXY1YTIuNSAyLjUgMCAwIDAgMy43NSAyLjE3IDIuNDkgMi40OSAwIDAgMCAyLjUgMCAyLjQ5IDIuNDkgMCAwIDAgMy43NC0xLjk3Wk02IDE1aDh2LjVhMS41IDEuNSAwIDAgMS0yLjQ0IDEuMTcuNS41IDAgMCAwLS42MiAwIDEuNSAxLjUgMCAwIDEtMS44OCAwIC41LjUgMCAwIDAtLjYyIDBBMS41IDEuNSAwIDAgMSA2IDE1LjVWMTVabTktNC41djIuMzhMOS4xMiA3aDMuMjVsLS4wNS0uMDRjLS41My0uNTMtMS4xLTEuMS0xLjI3LTEuOTZoLTIuMWMtLjA4LjUtLjMuOS0uNTggMS4yNWwtLjcxLS43MWMuMTQtLjIuMjQtLjQxLjMtLjY0QTEuNSAxLjUgMCAwIDEgOC41IDJoM2ExLjUgMS41IDAgMCAxIC41NSAyLjljLjEyLjQ4LjQ3Ljg1IDEuMDIgMS4zOWwuMDEuMDFjLjM4LjM4Ljg0LjgzIDEuMjQgMS40MmwuMDIuMDVhNC4xNCA0LjE0IDAgMCAxIC42NSAyLjUxbC4wMS4yMlpNOC41IDRoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQm90dGxlT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JvdHRsZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4yOCA2Ljk5IDIuMTUgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtMi4xNi0yLjE1YTIuNSAyLjUgMCAwIDEtMy43NCAxLjk3IDIuNDkgMi40OSAwIDAgMS0yLjUgMEEyLjUgMi41IDAgMCAxIDUgMTUuNXYtNWwuMDEtLjIyYTQuMTEgNC4xMSAwIDAgMSAxLjI3LTMuMjlaTTEzLjMgMTRsLTYtNmgtLjU3QTMuMiAzLjIgMCAwIDAgNiAxMC4zNEw2IDEwLjVWMTRoNy4zWk02IDE1di41YTEuNSAxLjUgMCAwIDAgMi40NCAxLjE3LjUuNSAwIDAgMSAuNjIgMCAxLjUgMS41IDAgMCAwIDEuODggMCAuNS41IDAgMCAxIC42MiAwQTEuNSAxLjUgMCAwIDAgMTQgMTUuNVYxNUg2Wm04LTQuNXYxLjM4bDEgMVYxMC41bC0uMDEtLjIyYTQuMDcgNC4wNyAwIDAgMC0uNjctMi41NmMtLjQtLjYtLjg2LTEuMDQtMS4yNC0xLjQybC0uMDEtLjAxYy0uNTUtLjU0LS45LS45LTEuMDItMS40QTEuNSAxLjUgMCAwIDAgMTEuNSAyaC0zYTEuNSAxLjUgMCAwIDAtLjU0IDIuOWMtLjA2LjIzLS4xNi40My0uMy42NGwuNzEuNzFjLjI4LS4zNS41LS43NS41OS0xLjI1aDIuMDljLjE2Ljg2Ljc0IDEuNDMgMS4yNyAxLjk2bC4wNS4wNEg5LjEybDEgMWgzLjE3YTUuMiA1LjIgMCAwIDEgLjE5LjI3IDMuMTUgMy4xNSAwIDAgMSAuNTEgMi4wN2wuMDEuMTZaTTguNSA0YS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua0NvZmZlZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0NvZmZlZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDIuNWEuNS41IDAgMCAwLTEgMGMwIDEgLjY5IDEuNTIgMS4xNiAxLjg3bC4wNC4wM2MuNTMuNC44LjYzLjggMS4xYS41LjUgMCAwIDAgMSAwYzAtMS0uNjktMS41Mi0xLjE2LTEuODdMNS44IDMuNmMtLjUzLS40LS44LS42My0uOC0xLjFaTTMuOTMgN2EuOTMuOTMgMCAwIDAtLjkzLjkzVjEyYTYgNiAwIDAgMCAxMS4yIDNIMTZhMyAzIDAgMSAwIDAtNmgtMVY3LjkzYS45My45MyAwIDAgMC0uOTMtLjkzSDMuOTNaTTE2IDE0aC0xLjM0Yy4yMi0uNjMuMzQtMS4zLjM0LTJ2LTJoMWEyIDIgMCAxIDEgMCA0Wk03LjUgMmMuMjggMCAuNS4yMi41LjUgMCAuNDcuMjcuNy44IDEuMWwuMDQuMDNDOS4zMSAzLjk4IDEwIDQuNSAxMCA1LjVhLjUuNSAwIDAgMS0xIDBjMC0uNDctLjI3LS43LS44LTEuMWwtLjA0LS4wM0M3LjY5IDQuMDIgNyAzLjUgNyAyLjVjMC0uMjguMjItLjUuNS0uNVptMy41LjVhLjUuNSAwIDAgMC0xIDBjMCAxIC42OSAxLjUyIDEuMTYgMS44N2wuMDQuMDNjLjUzLjQuOC42My44IDEuMWEuNS41IDAgMCAwIDEgMGMwLTEtLjY5LTEuNTItMS4xNi0xLjg3bC0uMDQtLjAzYy0uNTMtLjQtLjgtLjYzLS44LTEuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQ29mZmVlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0NvZmZlZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyLjVhLjUuNSAwIDAgMC0xIDBjMCAxIC42OSAxLjUyIDEuMTYgMS44N2wuMDQuMDNjLjUzLjQuOC42My44IDEuMWEuNS41IDAgMCAwIDEgMGMwLTEtLjY5LTEuNTItMS4xNi0xLjg3TDUuOCAzLjZjLS41My0uNC0uOC0uNjMtLjgtMS4xWm0xMCA1LjQzVjloMWEzIDMgMCAxIDEgMCA2aC0xLjhBNiA2IDAgMCAxIDMgMTJWNy45M2MwLS41MS40Mi0uOTMuOTMtLjkzaDEwLjE0Yy41MSAwIC45My40Mi45My45M1pNNCA4djRhNSA1IDAgMCAwIDEwIDBWOEg0Wm0xMSA0YzAgLjctLjEyIDEuMzctLjM0IDJIMTZhMiAyIDAgMSAwIDAtNGgtMXYyWk03LjUgMmMuMjggMCAuNS4yMi41LjUgMCAuNDcuMjcuNy44IDEuMWwuMDQuMDNDOS4zMSAzLjk4IDEwIDQuNSAxMCA1LjVhLjUuNSAwIDAgMS0xIDBjMC0uNDctLjI3LS43LS44LTEuMWwtLjA0LS4wM0M3LjY5IDQuMDIgNyAzLjUgNyAyLjVjMC0uMjguMjItLjUuNS0uNVptMy41LjVhLjUuNSAwIDAgMC0xIDBjMCAxIC42OSAxLjUyIDEuMTYgMS44N2wuMDQuMDNjLjUzLjQuOC42My44IDEuMWEuNS41IDAgMCAwIDEgMGMwLTEtLjY5LTEuNTItMS4xNi0xLjg3bC0uMDQtLjAzYy0uNTMtLjQtLjgtLjYzLS44LTEuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rTWFyZ2FyaXRhRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rTWFyZ2FyaXRhRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjEgMi45OWEuNS41IDAgMCAwLS4yLS45OGwtNC41IDFhLjUuNSAwIDAgMC0uMzguMzdsLS4yOSAxLjEySDQuNUEuNS41IDAgMCAwIDQgNXYzLjVBMi41IDIuNSAwIDAgMCA2LjUgMTFIN3YuNWEzIDMgMCAwIDAgMi41IDIuOTZWMTdoLTJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMSAwIDAtMWgtMnYtMi41NEEzIDMgMCAwIDAgMTMgMTEuNVYxMWguNUEyLjUgMi41IDAgMCAwIDE2IDguNVY1YS41LjUgMCAwIDAtLjUtLjVoLTMuNzNsLjE0LS41OCA0LjItLjkzWk0xMC40OSA1LjUgMTAuMTEgN0g1VjUuNWg1LjQ4Wk0xNSA3aC0zLjg2bC4zOC0xLjVIMTVWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rTWFyZ2FyaXRhUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua01hcmdhcml0YVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuMSAyLjk5YS41LjUgMCAwIDAtLjItLjk4bC00LjUgMWEuNS41IDAgMCAwLS4zOC4zN2wtLjI5IDEuMTJINC41QS41LjUgMCAwIDAgNCA1djMuNUEyLjUgMi41IDAgMCAwIDYuNSAxMUg3di41YTMgMyAwIDAgMCAyLjUgMi45NlYxN2gtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAxIDAgMC0xaC0ydi0yLjU0QTMgMyAwIDAgMCAxMyAxMS41VjExaC41QTIuNSAyLjUgMCAwIDAgMTYgOC41VjVhLjUuNSAwIDAgMC0uNS0uNWgtMy43M2wuMTQtLjU4IDQuMi0uOTNaTTEwLjQ5IDUuNSAxMC4xMSA3SDVWNS41aDUuNDhaTTUgOGg0Ljg2bC0uODQgMy4zOGEuNS41IDAgMCAwIC45Ny4yNGwuOS0zLjYySDE1di41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWEuNS41IDAgMCAwLS41LjV2MWEyIDIgMCAxIDEtNCAwdi0xYS41LjUgMCAwIDAtLjUtLjVoLTFBMS41IDEuNSAwIDAgMSA1IDguNVY4Wm0xMC0xaC0zLjg2bC4zOC0xLjVIMTVWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rVG9Hb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1RvR29GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuODUgMi4xNWMuMi4yLjIuNSAwIC43TDEyLjcxIDRoMS42MmMuMzEgMCAuNi4yLjcuNWwuOTIgMi41Yy4xOC40OC0uMTggMS0uNyAxaC0uMzRsLTEuNDMgOC4zNEEyIDIgMCAwIDEgMTEuNTEgMThIOC41YTIgMiAwIDAgMS0xLjk3LTEuNjZMNS4wOSA4aC0uMzRhLjc1Ljc1IDAgMCAxLS43LTEuMDFsLjkyLTIuNWMuMS0uMy4zOS0uNDkuNy0uNDloNS42NWEuNS41IDAgMCAxIC4wOC0uMWwxLjc1LTEuNzVjLjItLjIuNS0uMi43IDBaTTUuMTEgN2g5Ljc4bC0uNzMtMkg1Ljg1TDUuMSA3WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtUb0dvUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1RvR29SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjg1IDIuMTVjLjIuMi4yLjUgMCAuN0wxMi43MSA0aDEuNjJjLjMxIDAgLjYuMi43LjVsLjkyIDIuNWMuMTguNDgtLjE4IDEtLjcgMWgtLjM0bC0xLjQzIDguMzRBMiAyIDAgMCAxIDExLjUxIDE4SDguNWEyIDIgMCAwIDEtMS45Ny0xLjY2TDUuMDkgOGgtLjM0YS43NS43NSAwIDAgMS0uNy0xLjAxbC45Mi0yLjVjLjEtLjMuMzktLjQ5LjctLjQ5aDUuNjVhLjUuNSAwIDAgMSAuMDgtLjFsMS43NS0xLjc1Yy4yLS4yLjUtLjIuNyAwWk02LjEgOGwxLjQgOC4xN2ExIDEgMCAwIDAgLjk5LjgzaDMuMDJhMSAxIDAgMCAwIC45OS0uODNMMTMuOSA4SDYuMVptLTEtMWg5Ljc5bC0uNzMtMkg1Ljg1TDUuMSA3WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtXaW5lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rV2luZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMmEuNS41IDAgMCAwLS41LjVWOGE1IDUgMCAwIDAgNC41IDV2NGgtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC0ydi00LjAyQTUgNSAwIDAgMCAxNSA4VjIuNWEuNS41IDAgMCAwLS41LS41aC05Wk02IDUuNVYzaDh2Mi41SDZabTcuNDUgMi41OGEzLjUgMy41IDAgMCAxLTIuODcgMi44Ny41LjUgMCAxIDEtLjE2LS45OSAyLjUgMi41IDAgMCAwIDIuMDUtMi4wNS41LjUgMCAwIDEgLjk4LjE3WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtXaW5lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1dpbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjQ1IDguMDhhLjUuNSAwIDAgMC0uOTgtLjE3IDIuNSAyLjUgMCAwIDEtMi4wNSAyLjA1LjUuNSAwIDAgMCAuMTYgMSAzLjUgMy41IDAgMCAwIDIuODctMi44OFpNNS41IDJhLjUuNSAwIDAgMC0uNS41VjhhNSA1IDAgMCAwIDQuNSA1djRoLTJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtMnYtNC4wMkE1IDUgMCAwIDAgMTUgOFYyLjVhLjUuNSAwIDAgMC0uNS0uNWgtOVpNNiA1LjVWM2g4djIuNUg2Wm0wIDFoOFY4YTQgNCAwIDAgMS04IDBWNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpdmVUcmFpbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcml2ZVRyYWluRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1IDJhMiAyIDAgMCAwLTIgMnYxaC0xLjU5QTEuNSAxLjUgMCAwIDAgOC42IDVIN1Y0YTIgMiAwIDEgMC00IDB2M2EyIDIgMCAxIDAgNCAwVjZoMS41OWMuMTUuNDMuNDguNzYuOTEuOTF2Ni4xOGExLjUgMS41IDAgMCAwLS45MS45MUg3di0xYTIgMiAwIDEgMC00IDB2M2EyIDIgMCAxIDAgNCAwdi0xaDEuNTlhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTN2MWEyIDIgMCAxIDAgNCAwdi0zYTIgMiAwIDEgMC00IDB2MWgtMS41OWExLjUgMS41IDAgMCAwLS45MS0uOTFWNi45Yy40My0uMTUuNzYtLjQ4LjkxLS45MUgxM3YxYTIgMiAwIDEgMCA0IDBWNGEyIDIgMCAwIDAtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpdmVUcmFpblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpdmVUcmFpblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA0YTIgMiAwIDEgMSA0IDB2MWgxLjU5YTEuNSAxLjUgMCAwIDEgMi44MiAwSDEzVjRhMiAyIDAgMSAxIDQgMHYzYTIgMiAwIDEgMS00IDBWNmgtMS41OWExLjUgMS41IDAgMCAxLS45MS45MXY2LjE4Yy40My4xNS43Ni40OC45MS45MUgxM3YtMWEyIDIgMCAxIDEgNCAwdjNhMiAyIDAgMSAxLTQgMHYtMWgtMS41OWExLjUgMS41IDAgMCAxLTIuODIgMEg3djFhMiAyIDAgMSAxLTQgMHYtM2EyIDIgMCAxIDEgNCAwdjFoMS41OWMuMTUtLjQzLjQ4LS43Ni45MS0uOTFWNi45QTEuNSAxLjUgMCAwIDEgOC41OSA2SDd2MWEyIDIgMCAxIDEtNCAwVjRabTItMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDIgMFY0YTEgMSAwIDAgMC0xLTFabTEwIDBhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDEgMCAyIDBWNGExIDEgMCAwIDAtMS0xWk01IDEyYTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAxIDAgMiAwdi0zYTEgMSAwIDAgMC0xLTFabTkgMXYzYTEgMSAwIDEgMCAyIDB2LTNhMSAxIDAgMSAwLTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyb3BGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjY1IDIuMTVjLjItLjIuNS0uMi43IDAgLjU0LjUzIDEuOCAyLjA2IDIuOTUgMy45IDEuMTMgMS44MiAyLjIgNC4wNSAyLjIgNS45NSAwIDEuODQtLjUzIDMuMzUtMS41IDQuNGE1LjMgNS4zIDAgMCAxLTQgMS42Yy0xLjYxIDAtMy0uNTQtNC0xLjZBNi4yOSA2LjI5IDAgMCAxIDQuNSAxMmMwLTEuOSAxLjA3LTQuMTMgMi4yLTUuOTVhMjUuMyAyNS4zIDAgMCAxIDIuOTUtMy45WlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS42NSAyLjE1Yy4yLS4yLjUtLjIuNyAwIC41NC41MyAxLjggMi4wNiAyLjk1IDMuOSAxLjEzIDEuODIgMi4yIDQuMDUgMi4yIDUuOTUgMCAxLjg0LS41MyAzLjM1LTEuNSA0LjRhNS4zIDUuMyAwIDAgMS00IDEuNmMtMS42MSAwLTMtLjU0LTQtMS42QTYuMjkgNi4yOSAwIDAgMSA0LjUgMTJjMC0xLjkgMS4wNy00LjEzIDIuMi01Ljk1YTI1LjMgMjUuMyAwIDAgMSAyLjk1LTMuOVptLTIuMSA0LjQzQzYuNDMgOC4zOCA1LjUgMTAuNCA1LjUgMTJjMCAxLjY2LjQ3IDIuOSAxLjI0IDMuNzJBNC4zIDQuMyAwIDAgMCAxMCAxN2E0LjMgNC4zIDAgMCAwIDMuMjYtMS4yOEE1LjMgNS4zIDAgMCAwIDE0LjUgMTJjMC0xLjYtLjkzLTMuNjItMi4wNS01LjQyQTI2Ljg1IDI2Ljg1IDAgMCAwIDEwIDMuMjRjLS41OS42Ny0xLjU2IDEuOS0yLjQ1IDMuMzRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY0SDRabTIgOS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wk0xMC41IDR2MTJIMTZhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTUuNVptMiA5aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDEzLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWk00IDRoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptNS41IDFINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjVWNVptMSAxMEgxNmExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtNS41djEwWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptLS41IDcuNWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZWMTZhMiAyIDAgMCAxLTIgMmgtNS41VjkuMjdhNS40OCA1LjQ4IDAgMCAwIDQgMS43M1ptLTUtMy4yQTUuNDcgNS40NyAwIDAgMSA5LjAyIDZINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjVWNy44Wk02IDE1LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAxYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVBLjUuNSAwIDAgMCAxNyA1LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDVIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNlYxNmEyIDIgMCAwIDEtMiAyaC01LjVWOS4yN2E1LjQ4IDUuNDggMCAwIDAgNCAxLjczWm0tNS0zLjJBNS40NyA1LjQ3IDAgMCAxIDkuMDIgNkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY3LjhaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgMWE0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptMi4zNSA0Ljg1QS41LjUgMCAwIDAgMTcgNS41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSA1SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpNMTcgMTZ2LTUuNmMuMzYtLjE4LjctLjQgMS0uNjZWMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGMwLTEuMS45LTIgMi0yaDUuMDJjLjAzLjM0LjEuNjguMTkgMUg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY3LjhjLjI1LjU0LjYgMS4wNCAxIDEuNDdWMTdIMTZhMSAxIDAgMCAwIDEtMVptLTExLS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5BcnJvd1VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5BcnJvd1VwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUtMi4zNS0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDQuNzFWNy41YS41LjUgMCAwIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yQS41LjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAtLjM1LjE0Wk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNlYxNmEyIDIgMCAwIDEtMiAyaC01LjVWOS4yN2E1LjQ4IDUuNDggMCAwIDAgNCAxLjczWm0tNS0zLjJBNS40NyA1LjQ3IDAgMCAxIDkuMDIgNkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY3LjhaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQXJyb3dVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUtMi4zNS0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDQuNzFWNy41YS41LjUgMCAwIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yQS41LjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAtLjM1LjE0Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTcuNS0uNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkNsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5DbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgM2EuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMVYzLjVhLjUuNSAwIDAgMC0uNS0uNVptMCA4YzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNlYxNmEyIDIgMCAwIDEtMiAyaC01LjVWOS4yN2E1LjQ4IDUuNDggMCAwIDAgNCAxLjczWm0tNS0zLjJBNS40NyA1LjQ3IDAgMCAxIDkuMDIgNkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY3LjhaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5DbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDNhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTFWMy41YS41LjUgMCAwIDAtLjUtLjVaTTE3IDE2di01LjZjLjM2LS4xOC43LS40IDEtLjY2VjE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhjMC0xLjEuOS0yIDItMmg1LjAyYy4wMy4zNC4xLjY4LjE5IDFINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjVWNy44Yy4yNS41NC42IDEuMDQgMSAxLjQ3VjE3SDE2YTEgMSAwIDAgMCAxLTFabS0xMS0uNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQ2xvc2VkQWxlcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkNsb3NlZEFsZXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgNWEzIDMgMCAwIDEgNiAwdjJsMS4zMiAxLjEyYS41LjUgMCAwIDEtLjMyLjg4aC04YS41LjUgMCAwIDEtLjMyLS44OEwxMC41IDdWNVptMyA2YTEuNSAxLjUgMCAwIDEtMS40Mi0xaDIuODNjLS4yLjU4LS43NiAxLTEuNDEgMVptLTQtNC40Ni0uOTcuODJBMS41IDEuNSAwIDAgMCA5LjUgMTBoMS41MmwuMTIuMzNBMi41IDIuNSAwIDAgMCAxNCAxMS45NVYxNWEyIDIgMCAwIDEtMiAySDZhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoMy41djEuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQ2xvc2VkQWxlcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5DbG9zZWRBbGVydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNSA1YTMgMyAwIDAgMSA2IDB2MmwxLjMyIDEuMTJhLjUuNSAwIDAgMS0uMzIuODhoLThhLjUuNSAwIDAgMS0uMzItLjg4TDEwLjUgN1Y1Wm0zIDZhMS41IDEuNSAwIDAgMS0xLjQyLTFoMi44M2MtLjIuNTgtLjc2IDEtMS40MSAxWk02IDZoMy41VjVINmExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoNmEyIDIgMCAwIDAgMi0ydi0zLjA1YTIuNTIgMi41MiAwIDAgMS0xIDBWMTVhMSAxIDAgMCAxLTEgMUg2VjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuRGVza3RvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuRGVza3RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMmgtMnYyaDFhLjUuNSAwIDAgMSAwIDFoLTJ2LTZhMyAzIDAgMCAwLTMtM0g0VjRabTYgMTRINy41VjhIMTBhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJaTTQgOGgyLjV2MTBINGEyIDIgMCAwIDEtMi0ydi02YzAtMS4xLjktMiAyLTJabTUuNSA3YS41LjUgMCAwIDAgMCAxaC41YS41LjUgMCAwIDAgMC0xaC0uNVptLTYgLjVjMCAuMjguMjIuNS41LjVoLjVhLjUuNSAwIDAgMCAwLTFINGEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuRGVza3RvcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkRlc2t0b3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAyaC0ydjJoMWEuNS41IDAgMCAxIDAgMWgtMnYtNGgzYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzSDRWNFptLTIgNmMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Wm0yLTFhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi41VjlINFptNiA4YTEgMSAwIDAgMCAxLTF2LTZhMSAxIDAgMCAwLTEtMUg3LjV2OEgxMFptLTEtMmguNWEuNS41IDAgMCAxIDAgMUg5YS41LjUgMCAwIDEgMC0xWm0tNSAuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNC41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE1LjIxIDUuNWwxLjE0LTEuMTVaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2VjE2YTIgMiAwIDAgMS0yIDJoLTUuNVY5LjI3YTUuNDggNS40OCAwIDAgMCA0IDEuNzNabS01LTMuMkE1LjQ3IDUuNDcgMCAwIDEgOS4wMiA2SDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjcuOFpNNiAxNS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5EaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTQuNSA0Ljc5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNS4yMSA1LjVsMS4xNC0xLjE1Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkdyb3VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Hcm91cEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDE2SDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC01LjV2MTJabS0xLTEySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuR3JvdXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Hcm91cFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRaTTMgNmExIDEgMCAwIDEgMS0xaDUuNXYxMEg0YTEgMSAwIDAgMS0xLTFWNlptNy41IDlWNUgxNmExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkhlYWRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuSGVhZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDE2aC01LjVWOEgxOHY2YTIgMiAwIDAgMS0yIDJabTItOVY2YTIgMiAwIDAgMC0yLTJoLTUuNXYzSDE4Wk05LjUgN1Y0SDRhMiAyIDAgMCAwLTIgMnYxaDcuNVpNMiA4djZjMCAxLjEuOSAyIDIgMmg1LjVWOEgyWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkhlYWRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkhlYWRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTcuNSA5VjdIM3Y3YTEgMSAwIDAgMCAxIDFoNS41Wm0xLTh2OEgxNmExIDEgMCAwIDAgMS0xVjdoLTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5Mb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Mb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgM3YxSDE0YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFoLS41VjNhMiAyIDAgMSAwLTQgMFptMSAxVjNhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41Wk0xMiA5VjZoLTEuNXYxMkgxNmEyIDIgMCAwIDAgMi0ydi01aC00YTIgMiAwIDAgMS0yLTJaTTQgNmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjVWNkg0Wm0yIDkuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNiAwYzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkxvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Mb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDN2MUgxNGExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xaC0uNVYzYTIgMiAwIDEgMC00IDBabTEgMVYzYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpNNCA2aDh2MWgtMS41djEwSDE2YTEgMSAwIDAgMCAxLTF2LTVoMXY1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhjMC0xLjEuOS0yIDItMlptMiA5LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWm0tMy04SDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuTWlycm9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5NaXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNSAxNkgxNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNS41djEyWm0tMS0xMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY0Wk01Ljc1IDhjLjE4IDAgLjM0LjEuNDMuMjVsMS43NSAzYS41LjUgMCAwIDEtLjQzLjc1SDRhLjUuNSAwIDAgMS0uNDMtLjc1bDEuNzUtM0EuNS41IDAgMCAxIDUuNzUgOFptOC45My4yNSAxLjc1IDNBLjUuNSAwIDAgMSAxNiAxMmgtMy41YS41LjUgMCAwIDEtLjQzLS43NWwxLjc1LTNhLjUuNSAwIDAgMSAuODYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5NaXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5NaXJyb3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0Wk0zIDZhMSAxIDAgMCAxIDEtMWg1LjV2MTBINGExIDEgMCAwIDEtMS0xVjZabTcuNSA5VjVIMTZhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFoLTUuNVpNNi4yNSA4Yy4xOCAwIC4zNC4xLjQzLjI1bDEuNzUgM0EuNS41IDAgMCAxIDggMTJINC41YS41LjUgMCAwIDEtLjQzLS43NWwxLjc1LTNBLjUuNSAwIDAgMSA2LjI1IDhabS44OCAzLS44OC0xLjUtLjg4IDEuNWgxLjc2Wm03LjA1LTIuNzUgMS43NSAzYS41LjUgMCAwIDEtLjQzLjc1SDEyYS41LjUgMCAwIDEtLjQzLS43NWwxLjc1LTNhLjUuNSAwIDAgMSAuODYgMFptLjQ1IDIuNzUtLjg4LTEuNS0uODggMS41aDEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuUGFnaW5hdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuUGFnaW5hdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiAxNmgtNS41VjRIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJaTTQgNGg1LjV2MTJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptOC41IDEwYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0yLjUtLjVhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabTEuNS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblBhZ2luYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5QYWdpbmF0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNlptMi0xYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY1SDRabTEyIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC01LjV2MTBIMTZabS00LjUtMWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0xLjUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuMDcgMi40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgOC42NWwtLjEzLjQzYy4yNi4yLjU0LjM3Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDJsLS4zNS0uMDhBMiAyIDAgMCAxIDE3IDIuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVpNMTQuNSA2LjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0wIDQuNWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZWMTZhMiAyIDAgMCAxLTIgMmgtNS41VjkuMjdhNS40OCA1LjQ4IDAgMCAwIDQgMS43M1ptLTUtMy4yQTUuNDcgNS40NyAwIDAgMSA5LjAyIDZINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjVWNy44Wk02IDE1LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAxIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjA3IDIuNDRhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNzMgNC43MyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDguNjVsLS4xMy40M2MuMjYuMi41NC4zNy44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAybC0uMzUtLjA4QTIgMiAwIDAgMSAxNyAyLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVaTTE0LjUgNi41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpNMTcgMTZ2LTUuNmMuMzYtLjE4LjctLjQgMS0uNjZWMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGMwLTEuMS45LTIgMi0yaDUuMDJjLjAzLjM0LjEuNjguMTkgMUg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY3LjhjLjI1LjU0LjYgMS4wNCAxIDEuNDdWMTdIMTZhMSAxIDAgMCAwIDEtMVptLTExLS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMSAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGFuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5TcGFuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDE2aC01LjV2LTUuNWgzLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTVIMTAuNVY0SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWk05LjUgOS41VjRINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjV2LTUuNUg1LjdsMS4xNSAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJhLjUuNSAwIDEgMSAuNy43TDUuNzEgOS41SDkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGFuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3BhblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjV2LTMuNWgxVjE1SDE2YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC01LjV2My41aC0xVjVINFptMi44NSAzLjM1YS41LjUgMCAxIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMNS43MSAxMC41aDguNThsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTVINS43MWwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU3BlYWtlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3BlYWtlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy42NSAyLjJjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMSAxIC44LS42Wm0tMy45Ni0uMTZjLjE5LjA4LjMxLjI2LjMxLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgN2gtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm0yLjUzIDEuOTNjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjU5IDQuNTkgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWm0uMTMgNS43M2ExLjUgMS41IDAgMCAxLS41My0uNzQgMS41IDEuNSAwIDAgMS0uODctLjA3IDEuNSAxLjUgMCAwIDEtMi41MS42N0wxMC44OCA4aC0uMzh2OEgxNmEyIDIgMCAwIDAgMi0yVjkuOGMtLjUuMjktMS4xNS4yNy0xLjY1LS4xWk05LjUgMTZWNy42MkExLjUgMS41IDAgMCAxIDkgNi41di0yYzAtLjE4LjAzLS4zNC4wOS0uNUg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVpNNiAxMy41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGVha2VyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3BlYWtlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuNjUgMi4yYy4xMi4xNi4yOS40NS40NC44Ny4yNi42OC40MSAxLjUuNDEgMi40MyAwIC45NC0uMTUgMS43NS0uNCAyLjQzLS4xNi40Mi0uMzMuNy0uNDUuODdhLjUuNSAwIDAgMS0uODUtLjUybC4xMi0uMTlhNS45IDUuOSAwIDAgMCAuNTgtMi42IDUuOSA1LjkgMCAwIDAtLjU4LTIuNThsLS4wNy0uMTFhLjUuNSAwIDEgMSAuOC0uNlptLTMuOTYtLjE2Yy4xOS4wOC4zMS4yNi4zMS40NnY2YS41LjUgMCAwIDEtLjg1LjM1TDExLjI5IDdoLS43OWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoLjhsMS44NS0xLjg1YS41LjUgMCAwIDEgLjU0LS4xMVptMi41MyAxLjkzYy0uMS0uMy0uMi0uNTUtLjI3LS43YS41LjUgMCAxIDAtLjkuNDUgNC41OSA0LjU5IDAgMCAxIC40NSAxLjc4IDMuOTQgMy45NCAwIDAgMS0uMzcgMS42bC0uMDguMThhLjUuNSAwIDEgMCAuOS40NCA1LjUgNS41IDAgMCAwIC41NS0yLjIyYzAtLjUtLjEtMS4wMi0uMjgtMS41M1pNMTcgMTRWOS45OGMuMzQuMDYuNyAwIDEtLjE4VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg1LjA5YTEuNSAxLjUgMCAwIDAtLjA5LjVWNUg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY3LjYyYy4yNy4yNC42Mi4zOCAxIC4zOHY3SDE2YTEgMSAwIDAgMCAxLTFabS0xMS0uNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU3RhdHVzQmFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5TdGF0dXNCYXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgMTZoLTUuNVY0SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWk00IDRoNS41djEySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTguNSAyYS41LjUgMCAwIDAgMCAxSDE2YS41LjUgMCAwIDAgMC0xaC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU3RhdHVzQmFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3RhdHVzQmFyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNlptMi0xYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY1SDRabTEyIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC01LjV2MTBIMTZabS00LTlhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgMC0xSDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblRhYmxldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuVGFibGV0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAyaC0zdi0yaC41YS41LjUgMCAwIDAgMC0xSDEzVjlhMyAzIDAgMCAwLTMtM0g0VjVabTYgMTJINy41VjdIMTBhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJaTTQgN2gyLjV2MTBINGEyIDIgMCAwIDEtMi0yVjljMC0xLjEuOS0yIDItMlptNS41IDdhLjUuNSAwIDAgMCAwIDFoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0tNiAuNWMwIC4yOC4yMi41LjUuNWguNWEuNS41IDAgMCAwIDAtMUg0YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5UYWJsZXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5UYWJsZXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAyaC0zdi0xaDNhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjFINFY1Wm05IDZoLjVhLjUuNSAwIDAgMCAwLTFIMTN2MVpNMiA5YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOVptMi0xYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNVY4SDRabTYgOGExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAwLTEtMUg3LjV2OEgxMFptLTEtMmEuNS41IDAgMCAwIDAgMWguNWEuNS41IDAgMCAwIDAtMUg5Wm0tNSAuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVXBkYXRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5VcGRhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgMTZoLTUuNVY0SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWk00IDRoNS41djEySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTEyLjg1IDcuODVhLjUuNSAwIDAgMC0uNy0uN0wxNSAxMi4yOVY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblVwZGF0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblVwZGF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjVWNUg0Wm0xMiAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtNS41djEwSDE2Wm0tLjE1LTMuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNCAxMi4yOVY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblZlcnRpY2FsU2Nyb2xsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5WZXJ0aWNhbFNjcm9sbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDE2SDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC01LjV2MTJabS0xLTEySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjRabTcuMzUgNy4xNWMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjY1IDEuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWm0wLTNhLjUuNSAwIDAgMS0uNy43TDE0LjUgNy4yMWwtMS42NSAxLjY0YS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwbDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5WZXJ0aWNhbFNjcm9sbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblZlcnRpY2FsU2Nyb2xsUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINFpNMyA2YTEgMSAwIDAgMSAxLTFoNS41djEwSDRhMSAxIDAgMCAxLTEtMVY2Wm03LjUgOVY1SDE2YTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC01LjVabTUuMzUtMy44NWMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjY1IDEuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWm0wLTNhLjUuNSAwIDAgMS0uNy43TDEzLjUgNy4yMWwtMS42NSAxLjY0YS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwbDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5WaWJyYXRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5WaWJyYXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMTVIMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIuNXYxMFptLTEtMTBIN2EyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgyLjVWNVptMi41IDcuNWMwLS4yOC4yMi0uNS41LS41aC41YS41LjUgMCAwIDEgMCAxaC0uNWEuNS41IDAgMCAxLS41LS41Wk03IDEyaC41YS41LjUgMCAwIDEgMCAxSDdhLjUuNSAwIDAgMSAwLTFaTTEuODggNi41MWEuNS41IDAgMCAxIC42LjM3bC40MSAxLjY0Yy4xLjM1LjA1LjcxLS4xIDEuMDNsLS42MiAxLjIzYS41LjUgMCAwIDAgMCAuNDRsLjc4IDEuNTZhLjUuNSAwIDEgMS0uOS40NGwtLjc3LTEuNTVhMS41IDEuNSAwIDAgMSAwLTEuMzRsLjYtMS4yMmEuNS41IDAgMCAwIC4wNC0uMzVsLS40LTEuNjRhLjUuNSAwIDAgMSAuMzYtLjZabTE2LjYuMzdhLjUuNSAwIDAgMC0uOTcuMjRsLjQxIDEuNjRhLjUuNSAwIDAgMS0uMDMuMzVsLS42MSAxLjIyYTEuNSAxLjUgMCAwIDAgMCAxLjM0bC43NyAxLjU1YS41LjUgMCAxIDAgLjktLjQ0bC0uNzgtMS41NmEuNS41IDAgMCAxIDAtLjQ0bC42MS0xLjIzYy4xNi0uMzIuMi0uNjguMTEtMS4wM2wtLjQtMS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5WaWJyYXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuVmlicmF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA1YTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJIN1pNNiA3YTEgMSAwIDAgMSAxLTFoMi41djhIN2ExIDEgMCAwIDEtMS0xVjdabTQuNSA3VjZIMTNhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFoLTIuNVptMS0xLjVjMC0uMjguMjItLjUuNS0uNWguNWEuNS41IDAgMCAxIDAgMUgxMmEuNS41IDAgMCAxLS41LS41Wm0tNC0uNWEuNS41IDAgMCAwIDAgMUg4YS41LjUgMCAwIDAgMC0xaC0uNVpNMS44OCA2LjUxYS41LjUgMCAwIDEgLjYuMzdsLjQxIDEuNjRjLjEuMzUuMDUuNzEtLjEgMS4wM2wtLjYyIDEuMjNhLjUuNSAwIDAgMCAwIC40NGwuNzggMS41NmEuNS41IDAgMSAxLS45LjQ0bC0uNzctMS41NWExLjUgMS41IDAgMCAxIDAtMS4zNGwuNi0xLjIyYS41LjUgMCAwIDAgLjA0LS4zNWwtLjQtMS42NGEuNS41IDAgMCAxIC4zNi0uNlptMTYuNi4zN2EuNS41IDAgMCAwLS45Ny4yNGwuNDEgMS42NGEuNS41IDAgMCAxLS4wMy4zNWwtLjYxIDEuMjJhMS41IDEuNSAwIDAgMCAwIDEuMzRsLjc3IDEuNTVhLjUuNSAwIDEgMCAuOS0uNDRsLS43OC0xLjU2YS41LjUgMCAwIDEgMC0uNDRsLjYxLTEuMjNjLjE2LS4zMi4yLS42OC4xMS0xLjAzbC0uNC0xLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgRHVtYmJlbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVtYmJlbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMzMgMy4xM2ExLjk4IDEuOTggMCAwIDAtMyAuMjJBMi40IDIuNCAwIDAgMCA5LjIgNy40M2wxLjAyIDEtMS4wNyAxLjA4IDEuMzYgMS4zNiAxLjA3LTEuMDcgMS4wMSAxLjAyYTIuNCAyLjQgMCAwIDAgNC4wOC0yLjEzIDEuOTggMS45OCAwIDAgMCAuMjMtM2wtLjYtLjYuNTItLjUyYS45Ny45NyAwIDAgMC0xLjM3LTEuMzdsLS41Mi41Mi0uNi0uNlptLjI3IDMuNTRhLjUuNSAwIDEgMS0uNy43MWwtMS4yOC0xLjI3YS41LjUgMCAwIDEgLjctLjcxbDEuMjggMS4yN1pNNC4wMiA5LjJhMi40IDIuNCAwIDAgMSAzLjQgMGwzLjQgMy40YTIuNCAyLjQgMCAwIDEtMi4xMyA0LjA3IDEuOTggMS45OCAwIDAgMS0zIC4yM2wtLjYtLjYtLjU0LjUzYS45Ny45NyAwIDEgMS0xLjM2LTEuMzZsLjU0LS41NC0uNi0uNmExLjk4IDEuOTggMCAwIDEgLjIyLTMgMi40IDIuNCAwIDAgMSAuNjctMi4xM1ptMi45NCA1LjgyYS41LjUgMCAwIDAgMC0uNzFMNS43IDEzLjA0YS41LjUgMCAwIDAtLjcuN2wxLjI3IDEuMjhjLjIuMi41LjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRHVtYmJlbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1bWJiZWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC42IDcuMzhhLjUuNSAwIDAgMCAwLS43TDEzLjMyIDUuNGEuNS41IDAgMSAwLS43LjdsMS4yNyAxLjI4Yy4yLjIuNTEuMi43IDBaTTcuOCAxMy40NmEuNS41IDAgMCAxLS43LjdMNS44MiAxMi45YS41LjUgMCAwIDEgLjctLjcxbDEuMjggMS4yN1ptOS4zNi0xMC42MWExLjQ3IDEuNDcgMCAwIDAtMi4wNyAwbC0uNjIuNjItLjI1LS4yNWExLjg1IDEuODUgMCAwIDAtMi44NC4yOCAyLjI3IDIuMjcgMCAwIDAtMi4xIDMuODNsLjY2LjY2TDggOS45NmwtLjY2LS42NmEyLjI3IDIuMjcgMCAwIDAtMy44MyAyLjA5IDEuODUgMS44NSAwIDAgMC0uMjggMi44NGwuMjUuMjUtLjY0LjY0YTEuNDcgMS40NyAwIDAgMCAyLjA3IDIuMDdsLjY0LS42NC4yNC4yNWExLjg1IDEuODUgMCAwIDAgMi44NS0uMjggMi4yNyAyLjI3IDAgMCAwIDIuMDktMy44M2wtLjY2LS42NiAxLjk3LTEuOTcuNjYuNjZhMi4yNyAyLjI3IDAgMCAwIDMuODItMi4xIDEuODUgMS44NSAwIDAgMCAuMjgtMi44NGwtLjI0LS4yNC42Mi0uNjJjLjU3LS41Ny41Ny0xLjUgMC0yLjA3Wm0tMS4zMyAxLjk4LS42Ni0uNjYuNjItLjYyYS40Ny40NyAwIDEgMSAuNjYuNjZsLS42Mi42MlptLTQuNTIgNC41Mi0xLjk3IDEuOTctLjY2LS42NiAxLjk3LTEuOTYuNjYuNjVabS02LjQ5IDYuNS0uNjQuNjNhLjQ3LjQ3IDAgMCAxLS42Ni0uNjZsLjY0LS42NC42Ni42NlptNy41LTExLjkyYS44NS44NSAwIDAgMSAxLjIgMGwyLjU2IDIuNTZhLjg1Ljg1IDAgMCAxLS4zNCAxLjQuNS41IDAgMCAwLS4zLjdBMS4yNyAxLjI3IDAgMCAxIDEzLjM5IDEwTDEwIDYuNjJhMS4yNyAxLjI3IDAgMCAxIDEuNDMtMi4wNS41LjUgMCAwIDAgLjY5LS4zYy4wNC0uMTMuMS0uMjQuMi0uMzRabS03LjUgNi4wOGMuNDktLjUgMS4zLS41IDEuOCAwTDEwIDEzLjM5YTEuMjcgMS4yNyAwIDAgMS0xLjQzIDIuMDYuNS41IDAgMCAwLS42OC4zLjg1Ljg1IDAgMCAxLTEuNC4zNGwtMi41Ny0yLjU2YS44NS44NSAwIDAgMSAuMzMtMS40MS41LjUgMCAwIDAgLjMtLjY4QTEuMjcgMS4yNyAwIDAgMSA0LjgyIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgRHVzdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdXN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNzUgMy41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMi4zNCAyLjY1QTQgNCAwIDEgMSAxNC42NSAxMCA0IDQgMCAwIDEgMTIgMTdhNCA0IDAgMCAxLTMuOS0zLjE1IDQgNCAwIDEgMS0uMDEtNy43Wk01Ljc1IDE4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTkgMTBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1c3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1c3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNzUgMy41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTIgM2E0IDQgMCAwIDAtMy45MSAzLjE1IDQgNCAwIDEgMCAwIDcuN0E0IDQgMCAxIDAgMTQuNjUgMTAgNCA0IDAgMCAwIDEyIDNaTTkgNi44NmEzIDMgMCAxIDEgNC41NSAyLjcxLjUuNSAwIDAgMCAwIC44NkEzIDMgMCAxIDEgOSAxMy4xNGEuNS41IDAgMCAwLS43MS0uNDMgMyAzIDAgMSAxIDAtNS40Mi41LjUgMCAwIDAgLjcxLS40M1pNNS43NSAxOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTE5IDEwYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFYXJ0aEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm04LTdoLS4yNWMuMTEuMjMuMjUuNS4zNy44My4yOC43NC41MiAxLjgyLjA4IDIuNzYtLjQuODYtMS4xIDEuMDgtMS42MyAxLjIybC0uMS4wMmMtLjUuMTMtLjc1LjItLjkzLjQ2LS4xNy4yNi0uMTIuNTguMDQgMS4xMmwuMDQuMTJjLjA3LjIxLjE0LjQ2LjE4LjY5LjA1LjI4LjA2LjYzLS4xMS45Ny0uMTguMzQtLjQxLjU3LS42OS43Mi0uMjYuMTQtLjUzLjItLjc1LjI0bC0uMDguMDFjLS40MS4wNy0uNjUuMTItLjg3LjM1LS4xOC4yLS4yOC41MS0uMzQuOTRsLS4wNS41NHYuMWMtLjAyLjItLjA0LjQxLS4wOS42di4wMmE2Ljk4IDYuOTggMCAwIDAgOC44NiAxLjI1IDMuNTYgMy41NiAwIDAgMS0uMjctLjMxYy0uMjctLjM0LS42MS0uOTEtLjUtMS41Ny4wNi0uMzEuMjMtLjU4LjQtLjhhNS42OCA1LjY4IDAgMCAxIC43LS43Yy4xNS0uMTQuMjgtLjI1LjM5LS4zN2EuOS45IDAgMCAwIC4yLS4yNmMuMDctLjIzLS4wMi0uNC0uMTMtLjUtLjEtLjA2LS4zLS4xMy0uNi4wN2wtLjMzLjE5Yy0uMDkuMDQtLjIuMS0uMzQuMTJhLjYuNiAwIDAgMS0uNTQtLjE4LjczLjczIDAgMCAxLS4xOC0uMzcgMi41OCAyLjU4IDAgMCAxLS4wMy0uMjh2LS4wN2wtLjAyLS4yM2MtLjAyLS4yMi0uMDYtLjUtLjE1LS44My0uMTItLjQ5LS40NC0uODktLjc2LTEuM2wtLjE0LS4xOGMtLjE2LS4yLS4zNy0uNDgtLjQ0LS43N2EuOS45IDAgMCAxIC4wMy0uNTVjLjA3LS4xOS4yLS4zMy4zNS0uNDRhMTguNiAxOC42IDAgMCAwIDEuNzQtMS42NmMuMy0uMzEuNTgtLjYuNzctLjgyaC4wMUE2Ljk3IDYuOTcgMCAwIDAgMTAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC03aC0uMjVjLjExLjIzLjI1LjUuMzcuODMuMjguNzQuNTIgMS44Mi4wOCAyLjc2LS40Ljg2LTEuMSAxLjA4LTEuNjMgMS4yMmwtLjEuMDJjLS41LjEzLS43NS4yLS45My40Ni0uMTcuMjYtLjEyLjU4LjA0IDEuMTJsLjA0LjEyYy4wNy4yMS4xNC40Ni4xOC42OS4wNS4yOC4wNi42My0uMTEuOTctLjE4LjM0LS40MS41Ny0uNjkuNzItLjI2LjE0LS41My4yLS43NS4yNGwtLjA4LjAxYy0uNDEuMDctLjY1LjEyLS44Ny4zNS0uMTguMi0uMjguNTEtLjM0Ljk0bC0uMDUuNTR2LjFjLS4wMi4yLS4wNC40MS0uMDkuNnYuMDJhNi45OCA2Ljk4IDAgMCAwIDguODYgMS4yNSAzLjU2IDMuNTYgMCAwIDEtLjI3LS4zMWMtLjI3LS4zNC0uNjEtLjkxLS41LTEuNTcuMDYtLjMxLjIzLS41OC40LS44YTUuNjggNS42OCAwIDAgMSAuNy0uN2MuMTUtLjE0LjI4LS4yNS4zOS0uMzdhLjkuOSAwIDAgMCAuMi0uMjZjLjA3LS4yMy0uMDItLjQtLjEzLS41LS4xLS4wNi0uMy0uMTMtLjYuMDdsLS4zMy4xOWMtLjA5LjA0LS4yLjEtLjM0LjEyYS42LjYgMCAwIDEtLjU0LS4xOC43NC43NCAwIDAgMS0uMTgtLjM3IDIuNTcgMi41NyAwIDAgMS0uMDMtLjI4di0uMDdsLS4wMi0uMjNjLS4wMi0uMjItLjA2LS41LS4xNS0uODMtLjEyLS40OS0uNDQtLjg5LS43Ni0xLjNsLS4xNC0uMThjLS4xNi0uMi0uMzctLjQ4LS40NC0uNzdhLjkuOSAwIDAgMSAuMzgtMSAxOC42IDE4LjYgMCAwIDAgMS43NC0xLjY1Yy4zLS4zMS41OC0uNi43Ny0uODJoLjAxQTYuOTcgNi45NyAwIDAgMCAxMCAzWm00LjY0IDEuNzZhNDIuMSA0Mi4xIDAgMCAxLTIuNzEgMi42NmMuMDMuMDcuMS4xOC4yNC4zNmwuMTIuMTZjLjMyLjQuNzguOTcuOTYgMS42OC4xLjQuMTUuNzMuMTcuOTh2LjAxYy42LS4zMyAxLjIxLS4zIDEuNjYuMDYuNDYuMzUuNjYuOTcuNDcgMS41Ny0uMDguMjctLjI3LjUtLjQzLjY2bC0uNDQuNDMtLjExLjFjLS4yLjE3LS4zNi4zMy0uNDguNDhhLjgzLjgzIDAgMCAwLS4xOS4zNGMtLjA0LjIzLjA3LjUuMjkuNzguMS4xMi4yLjIzLjMuMyAwIC4wMSAwIC4wMi4wMi4wM2E2Ljk5IDYuOTkgMCAwIDAgLjEzLTEwLjZaTTguOCAzLjM2bC0uMTMtLjIzYTcgNyAwIDAgMC00LjcyIDEwLjM5bC4wMi0uMmMuMDYtLjQ2LjItMS4wNi42LTEuNDkuNDYtLjUgMS4wMi0uNTkgMS40LS42NWwuMS0uMDJjLjIxLS4wMy4zNC0uMDcuNDUtLjEzLjEtLjA1LjItLjEzLjI4LS4zLjAzLS4wNi4wNS0uMTUuMDItLjM0YTQuNCA0LjQgMCAwIDAtLjE1LS41NGwtLjA1LS4xNWMtLjE1LS41LS4zNy0xLjI2LjA5LTEuOTYuNC0uNiAxLjA0LS43NiAxLjQ4LS44N2wuMTMtLjAzYy40Ny0uMTIuNzctLjI0Ljk4LS42OC4yNi0uNTYuMTQtMS4zLS4xMi0xLjk4YTYuMzMgNi4zMyAwIDAgMC0uMzgtLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGhMZWFmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoTGVhZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAuMzRsLS42NC0uMTZhOS41MiA5LjUyIDAgMCAwLTMuMy0uMTdjLS42LjA4LTEuMTYuMjEtMS42Ny40YTUgNSAwIDAgMC0uMS0uNTRjLS4xMy0uNDktLjQ1LS44OS0uNzctMS4zbC0uMTQtLjE4Yy0uMTYtLjItLjM3LS40OC0uNDQtLjc3YS45LjkgMCAwIDEgLjM4LTEgMTguNiAxOC42IDAgMCAwIDEuNzQtMS42NWwuNzgtLjgyQTYuOTcgNi45NyAwIDAgMCA5Ljc0IDNjLjEyLjIzLjI2LjUuMzguODMuMjguNzQuNTIgMS44Mi4wOCAyLjc2LS40Ljg2LTEuMSAxLjA4LTEuNjMgMS4yMmwtLjEuMDJjLS41LjEzLS43NS4yLS45My40Ni0uMTcuMjYtLjEyLjU4LjA0IDEuMTJsLjA0LjEyYy4wNy4yMS4xNC40Ni4xOC42OS4wNS4yOC4wNi42My0uMTEuOTctLjE4LjM0LS40MS41Ny0uNjkuNzItLjI2LjE0LS41My4yLS43NS4yNGwtLjA4LjAxYy0uNDEuMDctLjY1LjEyLS44Ny4zNS0uMTguMi0uMjguNTEtLjM0Ljk0bC0uMDUuNTR2LjFjLS4wMi4yLS4wNC40MS0uMDkuNnYuMDJhNyA3IDAgMCAwIDMuODcgMi4xN2MtLjE4LjMtLjM1LjYtLjUxLjkxQTggOCAwIDAgMSAyIDEwWm0xNi45MyAxLjc0YS41LjUgMCAwIDAtLjQzLS4yNGgtLjAzbC0uMS0uMDJhNi4xNiA2LjE2IDAgMCAxLS4zLS4wOGwtLjA5LS4wM2MtLjIzLS4wNi0uNTEtLjE0LS44NC0uMjFhOC41MiA4LjUyIDAgMCAwLTIuOTUtLjE2Yy0xLjIuMTUtMi4xMi41Ni0yLjc1IDEuMTVhMi44NSAyLjg1IDAgMCAwLS45IDIuNjIgMTMuMTcgMTMuMTcgMCAwIDEgMy43Ny0yLjIzLjUuNSAwIDEgMSAuMzguOTJjLS44LjMyLTEuNTQuNy0yLjIgMS4xYTguNDcgOC40NyAwIDAgMC0zLjQ0IDMuNzIuNS41IDAgMCAwIC45LjQ0Yy4zOC0uNzYuODQtMS40NSAxLjQ0LTIuMDZhMy43MSAzLjcxIDAgMCAwIC41OS44IDMuMDcgMy4wNyAwIDAgMCAzLjkuNThjLjQ1LS4yOC43Ny0uNjcgMS0xLjA4LjM3LS42My41OC0xLjM4Ljc0LTEuOTRsLjEtLjM3YTcuNSA3LjUgMCAwIDEgMS0yLjAzdi0uMDJjLjEtLjE0LjE4LS4yNy4yMy0uMzhhLjUuNSAwIDAgMC0uMDItLjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGhMZWFmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aExlYWZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IC4zNCAxMy43NiAxMy43NiAwIDAgMC0xLS4yM1YxMGMwLTIuMS0uOTEtMy45Ny0yLjM2LTUuMjVsLS4wNy4wNy0uNzkuODRjLS42LjYyLTEuMzUgMS4zNy0xLjg1IDEuNzUuMDMuMDcuMS4xOC4yNC4zNmwuMTIuMTZhNC42NyA0LjY3IDAgMCAxIDEuMDcgMi4yYy0uMzQuMDYtLjY2LjE2LS45Ny4yOGE1IDUgMCAwIDAtLjEtLjU1Yy0uMTMtLjQ5LS40NS0uODktLjc3LTEuM2wtLjE0LS4xOGMtLjE2LS4yLS4zNy0uNDgtLjQ0LS43N2EuOS45IDAgMCAxIC4zOC0xIDE4LjYgMTguNiAwIDAgMCAxLjc0LTEuNjVsLjc4LS44MkE2Ljk3IDYuOTcgMCAwIDAgOS43NCAzYy4xMi4yMy4yNi41LjM4LjgzLjI4Ljc0LjUyIDEuODIuMDggMi43Ni0uNC44Ni0xLjEgMS4wOC0xLjYzIDEuMjJsLS4xLjAyYy0uNS4xMy0uNzUuMi0uOTMuNDYtLjE3LjI2LS4xMi41OC4wNCAxLjEybC4wNC4xMmMuMDcuMjEuMTQuNDYuMTguNjkuMDUuMjguMDYuNjMtLjExLjk3LS4xOC4zNC0uNDEuNTctLjY5LjcyLS4yNi4xNC0uNTMuMi0uNzUuMjRsLS4wOC4wMWMtLjQxLjA3LS42NS4xMi0uODcuMzUtLjE4LjItLjI4LjUxLS4zNC45NGwtLjA1LjU0di4xYy0uMDIuMi0uMDQuNDEtLjA5LjZ2LjAyYTcgNyAwIDAgMCAzLjg3IDIuMTdjLS4xOC4zLS4zNS42LS41MS45MUE4IDggMCAwIDEgMiAxMFptNi44LTYuNjVhNS44IDUuOCAwIDAgMC0uMTMtLjIyIDcgNyAwIDAgMC00LjcyIDEwLjM5bC4wMi0uMmMuMDYtLjQ2LjItMS4wNi42LTEuNDkuNDYtLjUgMS4wMi0uNTkgMS40LS42NWwuMS0uMDJjLjIxLS4wMy4zNC0uMDcuNDUtLjEzLjEtLjA1LjItLjEzLjI4LS4zLjAzLS4wNi4wNS0uMTUuMDItLjM0YTQuNCA0LjQgMCAwIDAtLjE1LS41NGwtLjA0LS4xNWMtLjE2LS41LS4zOC0xLjI2LjA4LTEuOTYuNC0uNiAxLjA0LS43NiAxLjQ4LS44N2wuMTMtLjAzYy40Ny0uMTIuNzctLjI0Ljk4LS42OC4yNi0uNTYuMTQtMS4zLS4xMi0xLjk4YTYuMzMgNi4zMyAwIDAgMC0uMzgtLjgzWm0xMC4xMyA4LjM5YS41LjUgMCAwIDAtLjQzLS4yNGgtLjAzbC0uMS0uMDJhNi4xNiA2LjE2IDAgMCAxLS4zLS4wOGwtLjA5LS4wM2MtLjIzLS4wNi0uNTEtLjE0LS44NC0uMjFhOC41MiA4LjUyIDAgMCAwLTIuOTUtLjE2Yy0xLjIuMTUtMi4xMi41Ni0yLjc1IDEuMTVhMi44NSAyLjg1IDAgMCAwLS45IDIuNjIgMTMuMTcgMTMuMTcgMCAwIDEgMy43Ny0yLjIzLjUuNSAwIDEgMSAuMzguOTJjLS44LjMyLTEuNTQuNy0yLjIgMS4xYTguNDcgOC40NyAwIDAgMC0zLjQ0IDMuNzIuNS41IDAgMCAwIC45LjQ0Yy4zOC0uNzYuODQtMS40NSAxLjQ0LTIuMDZhMy43MSAzLjcxIDAgMCAwIC41OS44IDMuMDcgMy4wNyAwIDAgMCAzLjkuNThjLjQ1LS4yOC43Ny0uNjcgMS0xLjA4LjM3LS42My41OC0xLjM4Ljc0LTEuOTRsLjEtLjM3YTcuNSA3LjUgMCAwIDEgMS0yLjAzdi0uMDJjLjEtLjE0LjE4LS4yNy4yMy0uMzhhLjUuNSAwIDAgMC0uMDItLjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjkyIDIuODdhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxbC0uNjYuNjctNC4yLTQuMi42Ni0uNjhabS0xLjM4IDEuMzgtOCA4Yy0uMzIuMzMtLjU1Ljc0LS42NSAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhsNy45OC03Ljk4LTQuMi00LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45My0uODdjLjQ2LS4xLjktLjM0IDEuMjMtLjY4bDkuMzYtOS4zNmEyLjk3IDIuOTcgMCAwIDAgLjA1LTQuMTVabS0zLjU1LjY1YTEuOTcgMS45NyAwIDEgMSAyLjggMi44bC0uNjguNjYtMi44LTIuNzkuNjgtLjY3Wm0tMS4zOCAxLjM4IDIuOCAyLjgtNy45OSA3Ljk3Yy0uMi4yLS40Ni4zNS0uNzQuNDFsLTMuMTYuNy43LTMuMThjLjA3LS4yNy4yLS41MS40LS43bDgtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRBcnJvd0JhY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdEFycm93QmFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi45MiAyLjg3YTIuOTcgMi45NyAwIDAgMSA0LjIgNC4yMWwtLjY2LjY3LTQuMi00LjIuNjYtLjY4Wm0tMS4zOCAxLjM4LTggOGMtLjMyLjMzLS41NS43NC0uNjUgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDguMiAxNkE1LjUgNS41IDAgMCAxIDE1IDkuMmwuNzUtLjc0LTQuMi00LjIxWk0xMy41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTYgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdEFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdEFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDguMiAxNmMtLjExLS4zOS0uMTgtLjgtLjItMS4yMWwtLjk1Ljk0Yy0uMi4yLS40Ni4zNS0uNzQuNDFsLTMuMTYuNy43LTMuMThjLjA3LS4yNy4yLS41MS40LS43bDcuOTktOCAyLjggMi44TDEzLjc4IDljLjQxLjAyLjgyLjA5IDEuMjEuMmwyLjEzLTIuMTNhMi45NyAyLjk3IDAgMCAwIC4wNS00LjE1Wm0tMy41NS42NWExLjk3IDEuOTcgMCAwIDEgMi43OSAyLjhsLS42Ny42Ni0yLjgtMi43OS42OC0uNjdaTTEzLjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNiAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TGluZUhvcml6b250YWwzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRMaW5lSG9yaXpvbnRhbDNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLS42Ny42NyA0LjIgNC4yLjY4LS42NmEyLjk3IDIuOTcgMCAwIDAgLjA1LTQuMTVaTTMuNTUgMTIuMjVsOC04IDQuMiA0LjItNy45OCA3Ljk5Yy0uMzQuMzQtLjc3LjU3LTEuMjQuNjhsLTMuOTIuODdhLjUuNSAwIDAgMS0uNi0uNmwuODgtMy45NWMuMS0uNDUuMzMtLjg2LjY2LTEuMlpNMi41IDNoOC44OGwtMSAxSDIuNWEuNS41IDAgMCAxIDAtMVptMCAzaDUuODhsLTEgMUgyLjVhLjUuNSAwIDAgMSAwLTFabTAgM2gyLjg4bC0xIDFIMi41YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdExpbmVIb3Jpem9udGFsM1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdExpbmVIb3Jpem9udGFsM1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMjFsLTkuMzUgOS4zNmMtLjM0LjM0LS43Ny41Ny0xLjIzLjY4bC0zLjkzLjg3YS41LjUgMCAwIDEtLjYtLjZsLjg4LTMuOTVjLjEtLjQ1LjMzLS44Ni42Ni0xLjJsOS4zNy05LjM3Wm0zLjU0Ljc1YTEuOTcgMS45NyAwIDAgMC0yLjgzLS4wNGwtLjY3LjY3IDIuOCAyLjguNjYtLjY4Yy43Ni0uNzUuNzctMS45OC4wNC0yLjc1Wm0tMS40MiA0LjEzLTIuNzktMi44LTggOGMtLjE5LjItLjMyLjQ0LS4zOC43bC0uNzEgMy4yIDMuMTYtLjcxYy4yOC0uMDYuNTQtLjIuNzQtLjRsNy45OC03Ljk5Wk0yLjUgM2g4Ljg4bC0xIDFIMi41YS41LjUgMCAwIDEgMC0xWm0wIDNoNS44OGwtMSAxSDIuNWEuNS41IDAgMCAxIDAtMVptMCAzaDIuODhsLTEgMUgyLjVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0TG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi45MiAyLjg3YTIuOTcgMi45NyAwIDAgMSA0LjIgNC4yMWwtLjY2LjY3LTQuMi00LjIuNjYtLjY4Wm0tMS4zOCAxLjM4LTggOGMtLjMyLjMzLS41NS43NC0uNjUgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDEwIDE0LjJWMTNhMiAyIDAgMCAxIDEuNS0xLjk0VjExYTMgMyAwIDAgMSAzLjk1LTIuODVsLTMuOS0zLjlaTTEyLjUgMTF2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRMb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0TG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45My0uODdjLjQ2LS4xLjktLjM0IDEuMjMtLjY4TDEwIDE0LjJWMTNsLjAxLS4yMi0yLjk1IDIuOTVjLS4yLjItLjQ2LjM1LS43NC40MWwtMy4xNi43LjctMy4xOGMuMDctLjI3LjItLjUxLjQtLjdsOC04IDIuNzggMi44LS4yNi4yNWMuNC4wNC43Ni4xNSAxLjEuMzJsMS4yNS0xLjI1YTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMCAxIDIuOCAyLjhsLS42OC42Ni0yLjgtMi43OS42OC0uNjdaTTEyLjUgMTF2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDUuNCA1LjQtNCA0Yy0uMzMuMzMtLjU2Ljc0LS42NiAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhsMy45OC0zLjk4IDUuNCA1LjRhLjUuNSAwIDAgMCAuNy0uNzFsLTE1LTE1Wm0xMi45IDYuMy0yLjU5IDIuNi00LjItNC4yMSAyLjU4LTIuNiA0LjIxIDQuMjJabS0yLjgzLTUuNThhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxbC0uNjYuNjctNC4yLTQuMi42Ni0uNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0T2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDUuNCA1LjQtNCA0Yy0uMzMuMzMtLjU2Ljc0LS42NiAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhsMy45OC0zLjk4IDUuNCA1LjRhLjUuNSAwIDAgMCAuNy0uNzFsLTE1LTE1Wm04LjIgOS42LTMuOTkgMy45OGMtLjIuMi0uNDYuMzUtLjc0LjQxbC0zLjE2LjcuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2wzLjk5LTQgMi44IDIuNzlabTQtNC0yLjYgMi41OS43MS43IDMuOTctMy45NmEyLjk3IDIuOTcgMCAwIDAtNC4yMS00LjJMOC45NiA2LjgzbC43LjcgMi41OS0yLjU4IDIuOCAyLjhabS0xLjQyLTQuMTdhMS45NyAxLjk3IDAgMCAxIDIuNzkgMi44bC0uNjcuNjYtMi44LTIuNzkuNjgtLjY3WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjkyIDIuODdhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxbC0uNjYuNjctNC4yLTQuMi42Ni0uNjhabS0xLjM4IDEuMzgtOCA4Yy0uMzIuMzMtLjU1Ljc0LS42NSAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhsNC4wNi00LjA3YTMgMyAwIDAgMSAzLjYxLTQuMjJsLTMuOS0zLjlaTTE2LjUgMTFhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzExIDE2Ljc1IDExIDE1LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjE4IDIuOTNhMi45NyAyLjk3IDAgMCAwLTQuMjYtLjA2bC05LjM3IDkuMzhjLS4zMy4zMy0uNTYuNzQtLjY2IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTMtLjg3Yy40Ni0uMS45LS4zNCAxLjIzLS42OGw0LjA2LTQuMDZjLS4xNy0uMzQtLjI4LS43LS4zMi0xLjFsLTQuNDUgNC40NWMtLjIuMi0uNDYuMzUtLjc0LjQxbC0zLjE2LjcuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2w4LTggMi43OCAyLjgtLjI2LjI1Yy40LjA0Ljc2LjE1IDEuMS4zMmwxLjI1LTEuMjVhMi45NyAyLjk3IDAgMCAwIC4wNS00LjE1Wm0tMy41NS42NWExLjk3IDEuOTcgMCAwIDEgMi44IDIuOGwtLjY4LjY2LTIuOC0yLjc5LjY4LS42N1pNMTYuNSAxMWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTEgMTYuNzUgMTEgMTUuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFByb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFByb2hpYml0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMjFsLS42Ni42Ny00LjItNC4yLjY2LS42OFptLTEuMzggMS4zOC04IDhjLS4zMi4zMy0uNTUuNzQtLjY1IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OEw4LjIgMTZBNS41IDUuNSAwIDAgMSAxNSA5LjJsLjc1LS43NC00LjItNC4yMVpNOSAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDguMiAxNmMtLjExLS4zOS0uMTgtLjgtLjItMS4yMWwtLjk1Ljk0Yy0uMi4yLS40Ni4zNS0uNzQuNDFsLTMuMTYuNy43LTMuMThjLjA3LS4yNy4yLS41MS40LS43bDcuOTktOCAyLjggMi44TDEzLjc4IDljLjQxLjAyLjgyLjA5IDEuMjEuMmwyLjEzLTIuMTNhMi45NyAyLjk3IDAgMCAwIC4wNS00LjE1Wm0tMy41NS42NWExLjk3IDEuOTcgMCAwIDEgMi43OSAyLjhsLS42Ny42Ni0yLjgtMi43OS42OC0uNjdaTTkgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0U2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjkyIDIuODdhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxbC0uNjYuNjctNC4yLTQuMi42Ni0uNjhabS0xLjM4IDEuMzgtOCA4Yy0uMzIuMzMtLjU1Ljc0LS42NSAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhMOC4yIDE2QTUuNSA1LjUgMCAwIDEgMTUgOS4ybC43NS0uNzQtNC4yLTQuMjFabS0uNDcgNy4yYTIgMiAwIDAgMS0xLjQzIDIuNDdsLS40Ni4xMmE0LjcgNC43IDAgMCAwIDAgMS4wMmwuMzUuMDhBMiAyIDAgMCAxIDExIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE2IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0U2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjE4IDIuOTNhMi45NyAyLjk3IDAgMCAwLTQuMjYtLjA2bC05LjM3IDkuMzhjLS4zMy4zMy0uNTYuNzQtLjY2IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OEw4LjIgMTZjLS4xMS0uMzktLjE4LS44LS4yLTEuMjFsLS45NS45NGMtLjIuMi0uNDYuMzUtLjc0LjQxbC0zLjE2LjcuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2w3Ljk5LTggMi44IDIuOEwxMy43OCA5Yy40MS4wMi44Mi4wOSAxLjIxLjJsMi4xMy0yLjEzYTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMCAxIDIuNzkgMi44bC0uNjcuNjYtMi44LTIuNzkuNjgtLjY3Wm0tMi41NiA3Ljg2YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIDAgMS4wMmwuMzUuMDhBMiAyIDAgMCAxIDExIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE2IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRWxldmF0b3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWxldmF0b3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS41IDNINWEzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2g0LjVWM1pNNS42NSA3LjE1Yy4yLS4yLjUtLjIuNyAwbDEuNSAxLjVhLjUuNSAwIDEgMS0uNy43bC0uNjUtLjY0djIuNzlhLjUuNSAwIDAgMS0xIDBWOC43bC0uNjUuNjVhLjUuNSAwIDEgMS0uNy0uN2wxLjUtMS41Wk0xMC41IDE2SDE1YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zaC00LjV2MTNabTMuODUtNC4xNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjRWNy41YS41LjUgMCAwIDEgMSAwdjIuOGwuNjUtLjY1YS41LjUgMCAwIDEgLjcuN2wtMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVsZXZhdG9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbGV2YXRvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS42NSA3LjE1Yy4yLS4yLjUtLjIuNyAwbDEuNSAxLjVhLjUuNSAwIDEgMS0uNy43bC0uNjUtLjY0djIuNzlhLjUuNSAwIDAgMS0xIDBWOC43bC0uNjUuNjVhLjUuNSAwIDEgMS0uNy0uN2wxLjUtMS41Wm0xMC4yIDMuMi0xLjUgMS41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIC43LS43bC42NS42NFY3LjVhLjUuNSAwIDAgMSAxIDB2Mi44bC42NS0uNjVhLjUuNSAwIDAgMSAuNy43Wk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINVptNC41IDF2MTFINWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0LjVabTEgMTFWNEgxNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMmgtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDAgOCA4IDAgMCAwIDE2IDBabS02LjUtMS41YTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptLTUgMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabS4zOSA0LjAxYTQgNCAwIDAgMCA2LjIyIDAgLjUuNSAwIDEgMSAuNzguNjMgNSA1IDAgMCAxLTcuNzggMCAuNS41IDAgMSAxIC43OC0uNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwIDggOCAwIDAgMCAxNiAwWk0zIDEwYTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWm0xMC41LTEuNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS01IDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tMS42MSA0LjAxYS41LjUgMCAxIDAtLjc4LjYzIDUgNSAwIDAgMCA3Ljc4IDAgLjUuNSAwIDEgMC0uNzgtLjYzIDQgNCAwIDAgMS02LjIyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA5YTggOCAwIDEgMC03LjQxIDcuOThBNS40OCA1LjQ4IDAgMCAxIDkuMDIgMTRIOWE1IDUgMCAwIDEtMy44OS0xLjg2LjUuNSAwIDEgMSAuNzgtLjYzQTQgNCAwIDAgMCA5LjIgMTNhNS41IDUuNSAwIDAgMSA3Ljc3LTMuNDFMMTcgOVptLTYuNS0xLjVhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0tNSAwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptMTMuNSA3YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA5YTggOCAwIDEgMC03LjQxIDcuOThBNS40NiA1LjQ2IDAgMCAxIDkuMiAxNkg5YTcgNyAwIDEgMSA3LTYuOGMuMzQuMS42Ny4yMy45OC4zOUwxNyA5Wm0tNy45OCA1Yy4wMy0uMzQuMS0uNjguMTktMUg5YTQgNCAwIDAgMS0zLjExLTEuNDkuNS41IDAgMSAwLS43OC42M0E1IDUgMCAwIDAgOSAxNGguMDJabTMuNDgtNi41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLTUgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTExLjUgN2E0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBbmdyeUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm02LjUtMS41YS41LjUgMCAwIDAgLjI2LS45M2wtMi41LTEuNWEuNS41IDAgMCAwLS41Mi44NmwxLjIyLjczYTEgMSAwIDEgMCAxLjU0Ljg0Wm01IDBhMSAxIDAgMCAwLS40Ni0uODRsMS4yMi0uNzNhLjUuNSAwIDAgMC0uNTItLjg2bC0yLjUgMS41YS41LjUgMCAwIDAgLjI2LjkzIDEgMSAwIDEgMCAyIDBabS4wNiA0Ljg5Yy4zNC0uMy4wNy0uNzIuMDYtLjczYTIuMDUgMi4wNSAwIDAgMC0uMjMtLjIzIDQuMDYgNC4wNiAwIDAgMC0uNjctLjQ5IDUuMyA1LjMgMCAwIDAtMi43Mi0uNjkgNS4zIDUuMyAwIDAgMC0yLjcyLjcgNC4wOCA0LjA4IDAgMCAwLS45LjdjLS4xOC4yMy0uMTcuNTUuMDYuNzRhLjUuNSAwIDAgMCAuNy0uMDdsLjAyLS4wM2MuMDMtLjAzLjA2LS4wNy4xMi0uMTEuMS0uMS4yNy0uMjQuNS0uMzdhNC4zMSA0LjMxIDAgMCAxIDIuMjItLjU2IDQuMyA0LjMgMCAwIDEgMi4yMi41NiAzLjA3IDMuMDcgMCAwIDEgLjY0LjVjLjE4LjIyLjUuMjcuNy4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppQW5ncnlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSA4LjVhMSAxIDAgMSAxLTEuNTQtLjg0bC0xLjIyLS43M2EuNS41IDAgMCAxIC41Mi0uODZsMi41IDEuNWEuNS41IDAgMCAxLS4yNi45M1ptNSAwYTEgMSAwIDEgMS0yIDAgLjUuNSAwIDAgMS0uMjYtLjkzbDIuNS0xLjVhLjUuNSAwIDAgMSAuNTIuODZsLTEuMjIuNzNhMSAxIDAgMCAxIC40Ni44NFptLjA2IDQuODlhLjUuNSAwIDAgMS0uNy0uMDdBNC4zIDQuMyAwIDAgMCAxMCAxMi4yNWMtMS4wMi0uMDEtMS43NS4yNy0yLjIxLjU1YTMuMDkgMy4wOSAwIDAgMC0uNjUuNS41LjUgMCAwIDEtLjc4LS42MmwuMzkuMzEtLjM5LS4zMXYtLjAxbC4wMi0uMDJhMS43OCAxLjc4IDAgMCAxIC4yMy0uMjNjLjE1LS4xMy4zNy0uMzEuNjctLjQ5LjYtLjM1IDEuNS0uNjkgMi43Mi0uNjlhNS4zIDUuMyAwIDAgMSAyLjcyLjcgNC4wNiA0LjA2IDAgMCAxIC45LjcxbC4wMS4wMmguMDFsLS4zOS4zMi4zOS0uMzFhLjUuNSAwIDAgMS0uMDguN1pNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlptLTcgOGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAwIDAgNyA3Ljk0Yy4wMi0uMS4wMy0uMi4wNi0uMjlsLjM3LTEuNWMuMS0uNDEuMy0uOC41Ni0xLjE1YTUgNSAwIDAgMS0zLjg4LTEuODYuNS41IDAgMSAxIC43OC0uNjMgNCA0IDAgMCAwIDQuMiAxLjM0bDQuMDEtNGEyLjg3IDIuODcgMCAwIDEgMi44NS0uNzNBOCA4IDAgMCAwIDIgMTBabTkuNS0xLjVhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0tNSAwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptNC40OCA2Ljg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUVkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMCAwIDcgNy45NGMuMDItLjEuMDMtLjIuMDYtLjI5bC4xNy0uN2E3IDcgMCAxIDEgNy43LTcuOTRjLjM0LS4wMy42OS4wMSAxLjAyLjFBOCA4IDAgMCAwIDIgMTBabTguMjcgNC42Ny44Mi0uODJhNCA0IDAgMCAxLTQuMi0xLjM0LjUuNSAwIDEgMC0uNzguNjNBNSA1IDAgMCAwIDEwIDE1Yy4wOC0uMTIuMTgtLjIzLjI4LS4zM1pNMTMuNSA4LjVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tNSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptMi40OCA2Ljg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIYW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGFuZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAxIDEgMHY0LjI1bC4zMS0uMDZjLjMyLS4wNC43LS4wMiAxLjA3LjE0LjM4LjE2Ljc0LjQ0IDEuMDQuOWEuNS41IDAgMCAxLS4yMi43MyA1LjI2IDUuMjYgMCAwIDAtMi43MSAyLjM3QzYuOTQgMTEuODYgNS44OSAxMyA0LjUgMTNoLS4yNkEyLjUgMi41IDAgMCAxIDIgMTEuNjJsLS42My0xLjI2QTMuNSAzLjUgMCAwIDEgMSA4Ljc5VjIuNWEuNS41IDAgMCAxIDEgMHY0YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVjMC0uMjguMjItLjUuNS0uNVptMi44NyAxMC4zYy0uMjguNTQtLjc0IDEuMTgtMS4zNSAxLjdhNS41IDUuNSAwIDEgMCA0LjIxLTUuODVsLjAyLjAyYTEuNSAxLjUgMCAwIDEtLjY2IDIuMiA0LjI3IDQuMjcgMCAwIDAtMi4yMiAxLjkyWm0yLjM4IDEuMmEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVabTQuMjUtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS00LjA1IDIuNTNjLjA4LjE3LjU1LjcyIDEuNTUuNzJzMS40Ny0uNTUgMS41NS0uNzJhLjUuNSAwIDEgMSAuOS40NGMtLjI1LjUtMS4wNSAxLjI4LTIuNDUgMS4yOC0xLjQgMC0yLjItLjc4LTIuNDUtMS4yOGEuNS41IDAgMSAxIC45LS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIYW5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMWMtLjY1IDAtMS4yLjQyLTEuNDEgMUgzYTIgMiAwIDAgMC0yIDJ2NC44YzAgLjU0LjEzIDEuMDcuMzcgMS41NkwyIDExLjYyQTIuNSAyLjUgMCAwIDAgNC4yNCAxM2gxLjgyYTMuMSAzLjEgMCAwIDAgMi41Mi0xLjUgOC4wNCA4LjA0IDAgMCAxIDMuNjItMy4wNC41LjUgMCAwIDAgLjI5LS41OCAyLjE3IDIuMTcgMCAwIDAtLjgtMS4yOCAxLjkgMS45IDAgMCAwLTEuMTMtLjM1Yy0uMiAwLS40LjAzLS41Ni4wNlY0YTIgMiAwIDAgMC0yLTJoLS4wOWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtMlptMCAxSDV2NC41YS41LjUgMCAwIDAgMSAwVjJoLjVjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDEgMCAxIDBWM2ExIDEgMCAwIDEgMSAxdjNhLjUuNSAwIDAgMCAuNzIuNDVoLjAxYTEuNTEgMS41MSAwIDAgMSAuMjQtLjEgMiAyIDAgMCAxIC42LS4xYy4yIDAgLjM5LjA1LjUzLjE1LjEuMDcuMTkuMTcuMjguMzQtMS44Ny45LTMgMi4yMi0zLjY0IDMuMjEtLjQuNjMtMS4wNCAxLjA1LTEuNjggMS4wNUg0LjI0YTEuNSAxLjUgMCAwIDEtMS4zNS0uODNsLS42My0xLjI2QTIuNSAyLjUgMCAwIDEgMiA4Ljc5VjRhMSAxIDAgMCAxIDEtMXYzLjVhLjUuNSAwIDEgMCAxIDB2LTRjMC0uMjguMjItLjUuNS0uNVptOC43NiA1LjA1YTUuNSA1LjUgMCAxIDEtNi4xIDYuNzhjLjMzLS4xMS42NC0uMjcuOTMtLjQ1YTQuNSA0LjUgMCAxIDAgNS40LTUuMjdjLjAyLS4xNiAwLS4zMi0uMDMtLjQ3LS4wNi0uMi0uMTItLjQtLjItLjU5Wm0tMi41MSA1LjQ1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptNC4yNS0uNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLTQuMDUgMi41M2EuNS41IDAgMSAwLS45LjQ0Yy4yNS41IDEuMDUgMS4yOCAyLjQ1IDEuMjggMS40IDAgMi4yLS43OCAyLjQ1LTEuMjhhLjUuNSAwIDEgMC0uOS0uNDRjLS4wOC4xNy0uNTUuNzItMS41NS43MnMtMS40Ny0uNTUtMS41NS0uNzJaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhpbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNDQgMi4xNWEuNS41IDAgMCAwIC4yLjk4IDcuMiA3LjIgMCAwIDEgMi43MyAwIC41LjUgMCAwIDAgLjE5LS45OCA4LjIgOC4yIDAgMCAwLTMuMTIgMFptNiAxLjJhLjUuNSAwIDAgMC0uNTUuODMgNy4wNCA3LjA0IDAgMCAxIDEuOTMgMS45My41LjUgMCAxIDAgLjgzLS41NiA4LjA0IDguMDQgMCAwIDAtMi4yLTIuMlptLTguMzMuODNhLjUuNSAwIDAgMC0uNTYtLjgzIDguMDQgOC4wNCAwIDAgMC0yLjIgMi4yLjUuNSAwIDAgMCAuODMuNTZBNy4wNCA3LjA0IDAgMCAxIDYuMSA0LjE4Wk0zLjEzIDguNjNhLjUuNSAwIDEgMC0uOTgtLjIgOC4yIDguMiAwIDAgMCAwIDMuMTMuNS41IDAgMCAwIC45OC0uMiA3LjIgNy4yIDAgMCAxIDAtMi43M1ptMTQuNzItLjJhLjUuNSAwIDEgMC0uOTguMiA3LjIgNy4yIDAgMCAxIDAgMi43NC41LjUgMCAxIDAgLjk4LjIgOC4yIDguMiAwIDAgMCAwLTMuMTNaTTQuMTggMTMuOWEuNS41IDAgMCAwLS44My41NiA4LjA0IDguMDQgMCAwIDAgMi4yIDIuMi41LjUgMCAwIDAgLjU2LS44MyA3LjA0IDcuMDQgMCAwIDEtMS45My0xLjkzWm0xMi40Ny41NmEuNS41IDAgMSAwLS44My0uNTYgNy4wNCA3LjA0IDAgMCAxLTEuOTMgMS45My41LjUgMCAxIDAgLjU1LjgzIDguMDQgOC4wNCAwIDAgMCAyLjIxLTIuMlptLTguMDIgMi40MmEuNS41IDAgMCAwLS4yLjk4YzEuMDIuMiAyLjEyLjIgMy4xMyAwYS41LjUgMCAwIDAtLjItLjk4Yy0uODguMTctMS44NC4xNy0yLjczIDBaTTE2IDEwYTYgNiAwIDEgMS0xMiAwIDYgNiAwIDAgMSAxMiAwWm0tOS40NCAyLjExYS41LjUgMCAwIDAtLjA3LjcgNC41IDQuNSAwIDAgMCA3LjAyIDAgLjUuNSAwIDEgMC0uNzgtLjYyIDMuNSAzLjUgMCAwIDEtNS40NiAwIC41LjUgMCAwIDAtLjctLjA4Wk03Ljc1IDlhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xMyA4LjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhpbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC40NCAyLjE1YS41LjUgMCAwIDAgLjIuOTggNy4yIDcuMiAwIDAgMSAyLjczIDAgLjUuNSAwIDAgMCAuMTktLjk4IDguMiA4LjIgMCAwIDAtMy4xMiAwWm02IDEuMmEuNS41IDAgMCAwLS41NS44MyA3LjA0IDcuMDQgMCAwIDEgMS45MyAxLjkzLjUuNSAwIDEgMCAuODMtLjU2IDguMDQgOC4wNCAwIDAgMC0yLjItMi4yWm0tOC4zMy44M2EuNS41IDAgMCAwLS41Ni0uODMgOC4wNCA4LjA0IDAgMCAwLTIuMiAyLjIuNS41IDAgMCAwIC44My41NkE3LjA0IDcuMDQgMCAwIDEgNi4xIDQuMThaTTMuMTMgOC42M2EuNS41IDAgMSAwLS45OC0uMiA4LjIgOC4yIDAgMCAwIDAgMy4xMy41LjUgMCAwIDAgLjk4LS4yIDcuMiA3LjIgMCAwIDEgMC0yLjczWm0xNC43Mi0uMmEuNS41IDAgMSAwLS45OC4yIDcuMiA3LjIgMCAwIDEgMCAyLjc0LjUuNSAwIDEgMCAuOTguMiA4LjIgOC4yIDAgMCAwIDAtMy4xM1pNNC4xOCAxMy45YS41LjUgMCAwIDAtLjgzLjU2IDguMDQgOC4wNCAwIDAgMCAyLjIgMi4yLjUuNSAwIDAgMCAuNTYtLjgzIDcuMDQgNy4wNCAwIDAgMS0xLjkzLTEuOTNabTEyLjQ3LjU2YS41LjUgMCAxIDAtLjgzLS41NiA3LjA0IDcuMDQgMCAwIDEtMS45MyAxLjkzLjUuNSAwIDEgMCAuNTUuODMgOC4wNCA4LjA0IDAgMCAwIDIuMjEtMi4yWm0tOC4wMiAyLjQyYS41LjUgMCAwIDAtLjIuOThjMS4wMi4yIDIuMTIuMiAzLjEzIDBhLjUuNSAwIDAgMC0uMi0uOThjLS44OC4xNy0xLjg0LjE3LTIuNzMgMFpNNy43NSA5YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptNC41IDBhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tNS42OSAzLjExYS41LjUgMCAwIDEgLjcuMDggMy41IDMuNSAwIDAgMCA1LjQ3IDAgLjUuNSAwIDAgMSAuNzguNjIgNC41IDQuNSAwIDAgMS03LjAyIDAgLjUuNSAwIDAgMSAuMDctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUxhdWdoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTGF1Z2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNNi41IDguMDhhLjUuNSAwIDEgMS0xLS4xNmMuMTMtLjgzLjktMS40MiAxLjc1LTEuNDJzMS42MS41OSAxLjc0IDEuNDJhLjUuNSAwIDEgMS0uOTkuMTZjLS4wNC0uMy0uMzQtLjU4LS43NS0uNTgtLjQyIDAtLjcxLjI4LS43Ni41OFptNS41IDBhLjUuNSAwIDAgMS0xLS4xNmMuMTMtLjgzLjktMS40MiAxLjc1LTEuNDJzMS42MS41OSAxLjc0IDEuNDJhLjUuNSAwIDAgMS0uOTkuMTZjLS4wNC0uMy0uMzQtLjU4LS43NS0uNTgtLjQyIDAtLjcxLjI4LS43Ni41OFpNNS41IDEwLjVoOWMtLjIyIDIuMi0xLjkzIDQtNC41IDRhNC4zNiA0LjM2IDAgMCAxLTQuNS00WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlMYXVnaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlMYXVnaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDguMDhjLjA0LS4zLjMzLS41OC43NS0uNTguNDEgMCAuNy4yOC43NS41OEEuNS41IDAgMSAwIDkgNy45MiAxLjczIDEuNzMgMCAwIDAgNy4yNSA2LjVjLS44NiAwLTEuNjIuNTktMS43NCAxLjQyYS41LjUgMCAxIDAgLjk4LjE2Wm02LjI1LS41OGMtLjQyIDAtLjcxLjI4LS43Ni41OGEuNS41IDAgMCAxLS45OC0uMTZjLjEyLS44My44OC0xLjQyIDEuNzQtMS40Mi44NSAwIDEuNjEuNTkgMS43NCAxLjQyYS41LjUgMCAwIDEtLjk5LjE2Yy0uMDQtLjMtLjM0LS41OC0uNzUtLjU4Wk01LjUgMTBhLjUuNSAwIDAgMC0uNS41NUE0Ljg2IDQuODYgMCAwIDAgMTAgMTVjMi44NCAwIDQuNzUtMiA1LTQuNDVhLjUuNSAwIDAgMC0uNS0uNTVoLTlabTQuNSA0YTMuODUgMy44NSAwIDAgMS0zLjkyLTNoNy44M2MtLjQgMS43LTEuODMgMy0zLjkxIDNabTAtMTJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1laEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU1laEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm02LjUtMS41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNCAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTYuNSAzYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNZWhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTWVoUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgOS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTcgMy41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtN2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTWVtZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU1lbWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE3Ljk5IDcuOTkgMCAwIDEgNi4yNSAzSDMuNzVBNy45OSA3Ljk5IDAgMCAxIDEwIDJabTcgOWguOTRBOCA4IDAgMCAxIDIgMTBoMXYxaDF2MWg2di0xaDF2MWg2di0xWk02LjE5IDEzLjQ0YS41LjUgMCAwIDAtLjA4LjcgNSA1IDAgMCAwIDcuNzggMCAuNS41IDAgMSAwLS43OC0uNjMgNCA0IDAgMCAxLTYuMjIgMCAuNS41IDAgMCAwLS43LS4wN1pNMTggNkgzdjFIMnYxSDF2MUgwdjJoMVY5aDFWOGgydjJoMXYxaDR2LTFoMVY4aDF2MmgxdjFoNHYtMWgxVjhoMVY2Wk02IDh2MWgxdjFINlY5SDVWOGgxWm03IDB2MWgxdjFoLTFWOWgtMVY4aDFaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1lbWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTWVtZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuMjUgNWE3Ljk5IDcuOTkgMCAwIDAtMTIuNSAwSDUuMWE2Ljk4IDYuOTggMCAwIDEgOS44IDBoMS4zNVptMS42OSA2aC0xLjAxQTcgNyAwIDAgMSAzIDEwSDJhOCA4IDAgMCAwIDE1Ljk0IDFaTTMgNmgxNXYyaC0xdjJoLTF2MWgtNHYtMWgtMVY4aC0xdjJIOXYxSDV2LTFINFY4SDJWN2gxVjZaTTEgOVY4aDF2MUgxWm0wIDB2MkgwVjloMVptNC0xdjFoMVY4SDVabTEgMXYxaDFWOUg2Wm02LTF2MWgxVjhoLTFabTEgMXYxaDFWOWgtMVptLTYuMTEgMy41MWEuNS41IDAgMSAwLS43OC42MyA1IDUgMCAwIDAgNy43OCAwIC41LjUgMCAxIDAtLjc4LS42MyA0IDQgMCAwIDEtNi4yMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgN2E1IDUgMCAwIDAgNC4wMyA0LjkgNi40OCA2LjQ4IDAgMCAxIDEuNjYtMy43OCAyIDIgMCAwIDAtMi4yMS41OC41LjUgMCAxIDEtLjc2LS42NSAzIDMgMCAwIDEgMy43Ni0uNjYgNi40NyA2LjQ3IDAgMCAxIDMuNDMtMS4zNkE1IDUgMCAwIDAgMiA3Wm00LjI1LTEuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0zIDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptOC43NSA3YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS02Ljc1LTFhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptMy44NiAyLjU3YS41LjUgMCAwIDAtLjcxLjA1IDIuNSAyLjUgMCAwIDEtMy44IDAgLjUuNSAwIDEgMC0uNzYuNjYgMy41IDMuNSAwIDAgMCA1LjMyIDAgLjUuNSAwIDAgMC0uMDUtLjcxWm0tLjYxLTEuODJhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAyYTUgNSAwIDAgMSA0LjkgNC4wM2MtLjMzLjAzLS42Ni4wOC0uOTguMTZhNCA0IDAgMSAwLTQuNzMgNC43M2MtLjA4LjMyLS4xMy42NS0uMTYuOTlBNSA1IDAgMCAxIDcgMlptLjcgNi4xMmMuMjQtLjI2LjUtLjUuNzgtLjczYTMgMyAwIDAgMC0zLjc2LjY2LjUuNSAwIDEgMCAuNzYuNjUgMiAyIDAgMCAxIDIuMjEtLjU4Wk02LjI0IDUuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0zIDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMS4yNSA2Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptNC42IDEuODJjLjIxLjE4LjI0LjUuMDYuN2EzLjUgMy41IDAgMCAxLTUuMzIuMDEuNS41IDAgMSAxIC43Ni0uNjUgMi41IDIuNSAwIDAgMCAzLjggMCAuNS41IDAgMCAxIC43LS4wNlptLS42LTEuODJhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tMiA1Ljc1YTUuNSA1LjUgMCAxIDAgMC0xMSA1LjUgNS41IDAgMCAwIDAgMTFabTAtMWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU2FkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU2FkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTUuNS0uNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTYtMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS4wNiA0Ljg5Yy4zOC0uMzUuMDctLjcyLjA2LS43M2EyLjAyIDIuMDIgMCAwIDAtLjIzLS4yMyA0LjA2IDQuMDYgMCAwIDAtLjY3LS40OSA1LjMgNS4zIDAgMCAwLTIuNzItLjY5IDUuMyA1LjMgMCAwIDAtMi43Mi43IDQuMDggNC4wOCAwIDAgMC0uOS43bC0uMDEuMDNoLS4wMWwuMzkuMzItLjM5LS4zMWEuNS41IDAgMCAwIC43OC42M2wuMDItLjAzYy4wMy0uMDMuMDYtLjA3LjEyLS4xMS4xLS4xLjI3LS4yNC41LS4zN2E0LjMxIDQuMzEgMCAwIDEgMi4yMi0uNTYgNC4zIDQuMyAwIDAgMSAyLjIyLjU2IDMuMDcgMy4wNyAwIDAgMSAuNjQuNS41LjUgMCAwIDAgLjcuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNhZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSA5LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm02LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0uMDYgNC44OWEuNS41IDAgMCAxLS43LS4wN0E0LjMgNC4zIDAgMCAwIDEwIDEyLjI1Yy0xLjAyLS4wMS0xLjc1LjI3LTIuMjEuNTVhMy4wOSAzLjA5IDAgMCAwLS42NS41LjUuNSAwIDAgMS0uNzgtLjYybC4zOS4zMS0uMzktLjMxdi0uMDFsLjAyLS4wMmEyLjA3IDIuMDcgMCAwIDEgLjIzLS4yM2MuMTUtLjEzLjM3LS4zMS42Ny0uNDkuNi0uMzUgMS41LS42OSAyLjcyLS42OWE1LjMgNS4zIDAgMCAxIDIuNzIuNyA0LjA2IDQuMDYgMCAwIDEgLjkuNzFsLjAxLjAyaC4wMWwtLjM5LjMyLjM5LS4zMWEuNS41IDAgMCAxLS4wOC43Wk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWRTbGlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTYWRTbGlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNOC41IDguNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTQtMWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS4zIDQuNWguOGEuNS41IDAgMCAxIDAgMWgtLjhjLTEuMDcgMC0yLjEzLjMyLTMuMDIuOTJhLjUuNSAwIDEgMS0uNTYtLjg0QTYuNDUgNi40NSAwIDAgMSAxMi44IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWRTbGlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU2FkU2xpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgOC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNCAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLjMgMi41Yy0xLjI3IDAtMi41Mi4zOC0zLjU4IDEuMDhhLjUuNSAwIDAgMCAuNTYuODRjLjktLjYgMS45NS0uOTIgMy4wMi0uOTJoLjhhLjUuNSAwIDAgMCAwLTFoLS44Wk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm04LTdhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNtaWxlU2xpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU21pbGVTbGlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNOC41IDguNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTQtMWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS00LjAzIDUuNTVjLjQyLjIxLjk3LjMyIDEuNTMuMzJhMy41IDMuNSAwIDAgMCAxLjUzLS4zMi41LjUgMCAxIDEgLjQ0LjljLS41OC4yOS0xLjI4LjQzLTEuOTcuNDNzLTEuMzktLjE0LTEuOTctLjQzYS41LjUgMCAxIDEgLjQ0LS45WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTbWlsZVNsaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTbWlsZVNsaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSA4LjVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tNSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLS4wMyA0LjU1YS41LjUgMCAxIDAtLjQ0LjljLjU4LjI5IDEuMjguNDMgMS45Ny40M3MxLjM5LS4xNCAxLjk3LS40M2EuNS41IDAgMSAwLS40NC0uOWMtLjQyLjIxLS45Ny4zMi0xLjUzLjMyYTMuNSAzLjUgMCAwIDEtMS41My0uMzJaTTE4IDEwYTggOCAwIDEgMC0xNiAwIDggOCAwIDAgMCAxNiAwWk0zIDEwYTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS4yMyAxLjM1IDE0Ljg4LjI4YS40Mi40MiAwIDAgMC0uOCAwbC0uMzUgMS4wN2EyLjIgMi4yIDAgMCAxLTEuMzggMS40bC0xLjA3LjM1YS40Mi40MiAwIDAgMC0uMjguNC40Mi40MiAwIDAgMCAuMjguNGwuNDMuMTMuNjQuMjFhMi4yIDIuMiAwIDAgMSAxLjQgMS40bC4zNSAxLjA4YS40Mi40MiAwIDAgMCAuOCAwbC4xLS4zMi4yMy0uN1Y1LjdsLjAyLS4wNGEyLjIgMi4yIDAgMCAxIC43LTFsLS4wMS0uMDFjLjItLjE3LjQ1LS4zLjctLjM5bDEuMDgtLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41NCAxLjU0IDAgMCAwLS4zOC0uNjIgMS41OCAxLjU4IDAgMCAwLS42Mi0uMzhsLS43Ny0uMjVhLjMuMyAwIDAgMS0uMi0uMjguMy4zIDAgMCAxIC4wNS0uMTguMy4zIDAgMCAxIC4xNS0uMWwuNzctLjI2YTEuNiAxLjYgMCAwIDAgLjYtLjM4Yy4xOC0uMTcuMy0uMzguMzgtLjYxbC4yNS0uNzdhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVptLTEuMjcgNC4wMmE4IDggMCAxIDEtNi41OC05LjlsLS4yLjA3YTEuNDMgMS40MyAwIDAgMC0uOSAxLjc4IDEuNDIgMS40MiAwIDAgMCAuODguOWwxLjEuMzdhMS4yIDEuMiAwIDAgMSAuNzYuNzZsLjM0IDEuMDdjLjA5LjI2LjI1LjQ5LjQ2LjY2bC4wMy4wMi4wNC4wM2MuMTQuMS4yOS4xNy40NC4yYTEuMyAxLjMgMCAwIDAgLjc1IDEuNzlsLjguMjVhLjU3LjU3IDAgMCAxIC4zNS4zN2wuMjUuNzZhMS4zMSAxLjMxIDAgMCAwIDEuNDguODdaTTEyLjUgNy41YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTUgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabS0uNjEgNS4wMWEuNS41IDAgMSAwLS43OC42MyA1IDUgMCAwIDAgNy43OCAwIC41LjUgMCAxIDAtLjc4LS42MyA0IDQgMCAwIDEtNi4yMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaVNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjIzIDEuMzUgMTQuODguMjhhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41OCAxLjU4IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxIDAtLjU3bC43Ny0uMjVhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVptLTIuMjUgMy44MmExLjMgMS4zIDAgMCAwIC45OC4yIDggOCAwIDEgMS02LjU4LTkuOWwtLjIuMDdhMS40MyAxLjQzIDAgMCAwLS44OC44NUgxMGE3IDcgMCAxIDAgNi43NyA4Ljc4Wk0xMi41IDcuNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS01IDBhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0tLjYxIDUuMDFhLjUuNSAwIDEgMC0uNzguNjMgNSA1IDAgMCAwIDcuNzggMCAuNS41IDAgMSAwLS43OC0uNjMgNCA0IDAgMCAxLTYuMjIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU3VycHJpc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTdXJwcmlzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm01LjUtLjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LjI1IDNhMS43NSAxLjc1IDAgMSAwLTMuNSAwIDEuNzUgMS43NSAwIDAgMCAzLjUgMFptLjc1LTNhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTdXJwcmlzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTdXJwcmlzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDkuNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQuMjUgM2ExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWm0uNzUtM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbmdpbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW5naW5lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNSAyLjVjLjI4IDAgLjUuMjIuNS41djFoMlYzYS41LjUgMCAwIDEgMSAwdjFoMi4yYTEgMSAwIDAgMSAuODkuNTVMMTQuOCA2SDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0xLjJsLS43MSAxLjQ1YTEgMSAwIDAgMS0uOS41NUg3LjcxYTEgMSAwIDAgMS0uNzEtLjNsLTIuNDEtMi40QTIgMiAwIDAgMSA0IDEyLjg3VjEwSDN2Mi41YS41LjUgMCAwIDEtMSAwdi02YS41LjUgMCAwIDEgMSAwVjloMVY2YzAtMS4xLjktMiAyLTJoMVYzYzAtLjI4LjIyLS41LjUtLjVabTAgNC41YS41LjUgMCAwIDAtLjUuNVYxMGMwIDEuMS45IDIgMiAyaDUuNWEuNS41IDAgMCAwIDAtMUgxMVY3LjVhLjUuNSAwIDAgMC0xIDBWMTFIOWExIDEgMCAwIDEtMS0xVjcuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW5naW5lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbmdpbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggM2EuNS41IDAgMCAwLTEgMHYxSDZhMiAyIDAgMCAwLTIgMnYzSDNWNi41YS41LjUgMCAwIDAtMSAwdjZhLjUuNSAwIDAgMCAxIDBWMTBoMXYyLjg4YTIgMiAwIDAgMCAuNTkgMS40MUw3IDE2LjcxYTEgMSAwIDAgMCAuNy4yOWg1LjVhMSAxIDAgMCAwIC44OS0uNTVMMTQuOCAxNUgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtMS4ybC0uNzEtMS40NWExIDEgMCAwIDAtLjktLjU1SDExVjNhLjUuNSAwIDAgMC0xIDB2MUg4VjNaTTYgNWg3LjJsLjcxIDEuNDVhMSAxIDAgMCAwIC45LjU1SDE2YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxaC0xLjJhMSAxIDAgMCAwLS44OS41NUwxMy4yIDE2SDcuNzFsLTIuNDItMi40MWExIDEgMCAwIDEtLjI5LS43MVY2YTEgMSAwIDAgMSAxLTFabTEuNSAyYy4yOCAwIC41LjIyLjUuNVYxMGExIDEgMCAwIDAgMSAxaDFWNy41YS41LjUgMCAwIDEgMSAwVjExaDMuNWEuNS41IDAgMCAxIDAgMUg5YTIgMiAwIDAgMS0yLTJWNy41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFcXVhbENpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbENpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0zLjUgN2EuNS41IDAgMCAwIDAtMWgtN2EuNS41IDAgMCAwIDAgMWg3Wm0wIDNhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMCAwIDFoN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVxdWFsQ2lyY2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbENpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSA5YS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAgMCAxaDdabTAgM2EuNS41IDAgMCAwIDAtMWgtN2EuNS41IDAgMCAwIDAgMWg3Wm00LjUtMmE4IDggMCAxIDAtMTYgMCA4IDggMCAwIDAgMTYgMFptLTgtN2E3IDcgMCAxIDEgMCAxNCA3IDcgMCAwIDEgMC0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVxdWFsT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VxdWFsT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNS43OSA2LjVIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41NGwzLjUgMy41SDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNTRsNC44NiA0Ljg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMC43NyA5LjM1IDEuNSAxLjVoMS4xM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNjNabS01LTUgMS41IDEuNWg2LjEzYS43NS43NSAwIDAgMCAwLTEuNUg4LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgRXF1YWxPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VxdWFsT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDYuMjkgN0gzLjVhLjUuNSAwIDAgMCAwIDFoMy44bDQgNEgzLjVhLjUuNSAwIDAgMCAwIDFoOC44bDQuODUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTQuMTIgMTJsMSAxaDEuMzhhLjUuNSAwIDAgMCAwLTFoLTIuMzhabS01LTUgMSAxaDYuMzhhLjUuNSAwIDAgMCAwLTFIOS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMiAyLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDQuMjQgNC4yNGExLjUgMS41IDAgMCAxIDAgMi4xMkw5LjM2IDE3aDUuMTRhLjUuNSAwIDEgMSAwIDFINy44MmExLjUgMS41IDAgMCAxLTEuMTQtLjQ0bC00LjI0LTQuMjRhMS41IDEuNSAwIDAgMSAwLTIuMTJsOC43Ni04Ljc2Wk05Ljc4IDE1LjE3bC00Ljk1LTQuOTUtMS42OSAxLjY5YS41LjUgMCAwIDAgMCAuN2w0LjI1IDQuMjVjLjIuMi41LjIuNyAwbDEuNy0xLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMiAyLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDQuMjQgNC4yNGExLjUgMS41IDAgMCAxIDAgMi4xMkw5LjM2IDE3aDUuMTRhLjUuNSAwIDEgMSAwIDFINy44MmExLjUgMS41IDAgMCAxLTEuMTQtLjQ0bC00LjI0LTQuMjRhMS41IDEuNSAwIDAgMSAwLTIuMTJsOC43Ni04Ljc2Wm0xLjQxLjdhLjUuNSAwIDAgMC0uNyAwTDUuNTMgOS41Mmw0Ljk1IDQuOTUgNi4zNi02LjM2YS41LjUgMCAwIDAgMC0uNzFsLTQuMjQtNC4yNFpNOS43OCAxNS4xOGwtNC45NS00Ljk1LTEuNjkgMS42OWEuNS41IDAgMCAwIDAgLjdsNC4yNSA0LjI1Yy4yLjIuNS4yLjcgMGwxLjctMS43WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyTWVkaXVtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlck1lZGl1bUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjQ0IDExLjJhMS41IDEuNSAwIDAgMCAwIDIuMTJsNC4yNCA0LjI0YTEuNSAxLjUgMCAwIDAgMi4xMiAwbC43Mi0uNzJhNS40NiA1LjQ2IDAgMCAxLS4zNy0xLjA0TDguMSAxNi44NmEuNS41IDAgMCAxLS43MSAwTDMuMTUgMTIuNmEuNS41IDAgMCAxIDAtLjdsMS42OS0xLjdMOSAxNC4zOWE1LjUgNS41IDAgMCAxIDcuODQtNC44NmwuNzItLjcyYTEuNSAxLjUgMCAwIDAgMC0yLjEybC00LjI0LTQuMjRhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40NCAxMS4yWk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyTWVkaXVtUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJNZWRpdW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNDQgMTEuMmExLjUgMS41IDAgMCAwIDAgMi4xMmw0LjI0IDQuMjRhMS41IDEuNSAwIDAgMCAyLjEyIDBsLjcyLS43MmE1LjQ2IDUuNDYgMCAwIDEtLjM3LTEuMDRMOC4xIDE2Ljg2YS41LjUgMCAwIDEtLjcxIDBMMy4xNSAxMi42YS41LjUgMCAwIDEgMC0uN2wxLjY5LTEuN0w5IDE0LjM5Yy4wMS0uNDMuMDctLjg0LjE3LTEuMjRMNS41NCA5LjVsNi4zNy02LjM2Yy4yLS4yLjUtLjIuNyAwbDQuMjUgNC4yNGMuMi4yLjIuNTEgMCAuN0wxNS44IDkuMTZjLjM2LjEuNzEuMjIgMS4wNC4zN2wuNzItLjcyYTEuNSAxLjUgMCAwIDAgMC0yLjEybC00LjI0LTQuMjRhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40NCAxMS4yWk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyU2VnbWVudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJTZWdtZW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjMyIDIuNDRhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40NCAxMS4yYTEuNSAxLjUgMCAwIDAgMCAyLjEybDQuMjQgNC4yNGMuMzEuMzIuNzMuNDYgMS4xNC40NGg2LjI3YTEuNSAxLjUgMCAxIDAgMC0xSDkuMzZsOC4yLTguMmExLjUgMS41IDAgMCAwIDAtMi4xMmwtNC4yNC00LjI0Wm0tOC40OSA3Ljc4IDQuOTUgNC45NS0xLjY5IDEuNjlhLjUuNSAwIDAgMS0uNyAwTDMuMTQgMTIuNmEuNS41IDAgMCAxIDAtLjdsMS43LTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlclNlZ21lbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclNlZ21lbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjMyIDIuNDRhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40NCAxMS4yYTEuNSAxLjUgMCAwIDAgMCAyLjEybDQuMjQgNC4yNGMuMzEuMzIuNzMuNDYgMS4xNC40NGg2LjI3YTEuNSAxLjUgMCAxIDAgMC0xSDkuMzZsOC4yLTguMmExLjUgMS41IDAgMCAwIDAtMi4xMmwtNC4yNC00LjI0Wm0tMS40Mi43Yy4yLS4xOS41Mi0uMTkuNzEgMGw0LjI0IDQuMjVjLjIuMi4yLjUxIDAgLjdsLTYuMzYgNi4zNy00Ljk1LTQuOTUgNi4zNi02LjM2Wm0tNy4wNyA3LjA4IDQuOTUgNC45NS0xLjY5IDEuNjlhLjUuNSAwIDAgMS0uNyAwTDMuMTQgMTIuNmEuNS41IDAgMCAxIDAtLjdsMS43LTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlclNtYWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclNtYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNDQgMTEuMmExLjUgMS41IDAgMCAwIDAgMi4xMmw0LjI0IDQuMjRhMS41IDEuNSAwIDAgMCAyLjEyIDBsMi4yMi0yLjJhNCA0IDAgMCAxIDQuMzQtNC4zNGwyLjItMi4yMmExLjUgMS41IDAgMCAwIDAtMi4xMmwtNC4yNC00LjI0YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDIuNDQgMTEuMlptLjcgMS40MWEuNS41IDAgMCAxIDAtLjdsMS43LTEuNyA0Ljk1IDQuOTYtMS43IDEuNjlhLjUuNSAwIDAgMS0uNyAwTDMuMTUgMTIuNlpNMTUgMThhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyU21hbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclNtYWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjQ0IDExLjJhMS41IDEuNSAwIDAgMCAwIDIuMTJsNC4yNCA0LjI0YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDIuMjItMi4yYTQuMDYgNC4wNiAwIDAgMSAuMTgtMS42bC0uNy43LTQuOTYtNC45NSA2LjM3LTYuMzZjLjItLjIuNS0uMi43IDBsNC4yNSA0LjI0Yy4yLjIuMi41MSAwIC43bC0zLjEgMy4xYTQgNCAwIDAgMSAxLjYtLjE3bDIuMi0yLjIyYTEuNSAxLjUgMCAwIDAgMC0yLjEybC00LjI0LTQuMjRhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40NCAxMS4yWm0uNyAxLjQxYS41LjUgMCAwIDEgMC0uN2wxLjctMS43IDQuOTUgNC45Ni0xLjcgMS42OWEuNS41IDAgMCAxLS43IDBMMy4xNSAxMi42Wk0xNSAxOGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXJUb29sRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclRvb2xGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAyLjVhLjUuNSAwIDAgMC0xIDB2MTJBMy41IDMuNSAwIDAgMCA2LjUgMThoN2EzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTEyYS41LjUgMCAwIDAtMSAwVjZINFYyLjVaTTQgMTBWN2gxMnYzSDRaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXJUb29sUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJUb29sUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgMmMuMjggMCAuNS4yMi41LjVWNmgxMlYyLjVhLjUuNSAwIDAgMSAxIDB2MTJhMy41IDMuNSAwIDAgMS0zLjUgMy41aC03QTMuNSAzLjUgMCAwIDEgMyAxNC41di0xMmMwLS4yOC4yMi0uNS41LS41Wm0uNSA5djMuNUEyLjUgMi41IDAgMCAwIDYuNSAxN2g3YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxMUg0Wm0xMi0xVjdINHYzaDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRXJyb3JDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDEgMCAxNiA4IDggMCAwIDEgMC0xNlptMCAxMC41YS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVpNMTAgNmEuNS41IDAgMCAwLS41LjQxdjQuNjhhLjUuNSAwIDAgMCAxIDBWNi40MUEuNS41IDAgMCAwIDEwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTAgMWE3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptMCA5LjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41Wk0xMCA2YS41LjUgMCAwIDEgLjUuNDFWMTFhLjUuNSAwIDAgMS0xIC4wOVY2LjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVycm9yQ2lyY2xlU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGVTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAxMGE4IDggMCAxIDAtNy40MSA3Ljk4IDUuNDggNS40OCAwIDAgMS0uMzctNC4wMS43NS43NSAwIDEgMSAuNDQtMS4wOCA1LjUgNS41IDAgMCAxIDcuMzItMi4zTDE4IDEwWk05LjUgNi40MWEuNS41IDAgMCAxIDEgMHY0LjY4YS41LjUgMCAwIDEtMSAwVjYuNDFabTIuMTQgOC41MWEyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40Ni0uMTJabTQuODYuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRXJyb3JDaXJjbGVTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGVTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTcuNDEgNy45OCA1LjQ2IDUuNDYgMCAwIDEtLjM4LS45OEgxMGE3IDcgMCAxIDEgNy02LjhjLjM0LjEuNjcuMjMuOTguMzlMMTggMTBabS03LjM0IDIuODlhLjc1Ljc1IDAgMSAwLS40NCAxLjA4Yy4xLS4zOC4yNS0uNzQuNDQtMS4wOFptLS4xNy02LjQ4YS41LjUgMCAwIDAtLjk5LjA5djQuNTlhLjUuNSAwIDAgMCAxLS4wOVY2LjQxWm0xLjE1IDguNTFhMiAyIDAgMCAwIDEuNDMtMi40OGwtLjE2LS41NWMuMjUtLjIuNTMtLjM3LjgyLS41bC4zNC4zNmEyIDIgMCAwIDAgMi45IDBsLjMzLS4zNWMuMy4xNC41OC4zMi44NC41MmwtLjEzLjQyYTIgMiAwIDAgMCAxLjQ2IDIuNTJsLjM1LjA5YTQuNyA0LjcgMCAwIDEgMCAxLjAxbC0uNDUuMTJhMiAyIDAgMCAwLTEuNDMgMi40OGwuMTUuNTVjLS4yNS4yLS41My4zNy0uODIuNWwtLjM0LS4zNmEyIDIgMCAwIDAtMi45IDBsLS4zMy4zNWMtLjMtLjE0LS41OC0uMzItLjg0LS41MmwuMTMtLjQyYTIgMiAwIDAgMC0xLjQ2LTIuNTJsLS4zNS0uMDlhNC43MSA0LjcxIDAgMCAxIDAtMS4wMWwuNDYtLjEyWm00Ljg2LjU4YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcExlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgNGEyIDIgMCAwIDEgMiAydjRoLTRhMiAyIDAgMCAwLTIgMnY0SDZhMiAyIDAgMCAxLTItMnYtMi41YS41LjUgMCAwIDAtMSAwVjE0YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM2gtMi41YS41LjUgMCAwIDAgMCAxSDE0Wm0tNS0uNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjQuN2w0LjE1IDQuMTVhLjUuNSAwIDEgMCAuNy0uN0w0LjcxIDRIOC41YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgNmEyIDIgMCAwIDAtMi0yaC0yLjVhLjUuNSAwIDAgMSAwLTFIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zdi0yLjVhLjUuNSAwIDAgMSAxIDBWMTRjMCAxLjEuOSAyIDIgMmg0di00YzAtMS4xLjktMiAyLTJoNFY2Wm0tNCA1YTEgMSAwIDAgMC0xIDF2NGgzYTIgMiAwIDAgMCAyLTJ2LTNoLTRaTTkgMy41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWNC43bDQuMTUgNC4xNWEuNS41IDAgMSAwIC43LS43TDQuNzEgNEg4LjVhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDRhMiAyIDAgMCAwLTIgMnY0aDRhMiAyIDAgMCAxIDIgMnY0aDRhMiAyIDAgMCAwIDItMnYtMi41YS41LjUgMCAwIDEgMSAwVjE0YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZhMyAzIDAgMCAxIDMtM2gyLjVhLjUuNSAwIDAgMSAwIDFINlptNS0uNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDBWNC43bC00LjE1IDQuMTVhLjUuNSAwIDAgMS0uNy0uN0wxNS4yOSA0SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNmMwLTEuMS45LTIgMi0yaDIuNWEuNS41IDAgMCAwIDAtMUg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM3YtMi41YS41LjUgMCAwIDAtMSAwVjE0YTIgMiAwIDAgMS0yIDJoLTR2LTRhMiAyIDAgMCAwLTItMkg0VjZabTAgNWg0YTEgMSAwIDAgMSAxIDF2NEg2YTIgMiAwIDAgMS0yLTJ2LTNabTctNy41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLTEgMFY0LjdsLTQuMTUgNC4xNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDRIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRXh0ZW5kZWREb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4dGVuZGVkRG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4zNSA0LjE1YS41LjUgMCAwIDAtLjcgMGwtMyAzYS41LjUgMCAxIDAgLjcuN0wxMCA1LjIxbDIuNjUgMi42NGEuNS41IDAgMCAwIC43LS43bC0zLTNaTTMgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDNabTYgMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIOVptNC41IDEuNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4dGVuZGVkRG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXh0ZW5kZWREb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4zNSA0LjE1YS41LjUgMCAwIDAtLjcgMGwtMyAzYS41LjUgMCAxIDAgLjcuN0wxMCA1LjIxbDIuNjUgMi42NGEuNS41IDAgMCAwIC43LS43bC0zLTNaTTMgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDNabS0uNSAxLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNUgzYS41LjUgMCAwIDEtLjUtLjV2LTJaTTkgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDlabS0uNSAxLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNUg5YS41LjUgMCAwIDEtLjUtLjV2LTJabTUgMGMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMlpNMTUgMTFhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMjYgMTEuNkE2Ljk3IDYuOTcgMCAwIDEgMTAgNmMzLjIgMCA2LjA2IDIuMzMgNi43NCA1LjZhLjUuNSAwIDAgMCAuOTgtLjJBNy45NyA3Ljk3IDAgMCAwIDEwIDVhNy45NyA3Ljk3IDAgMCAwLTcuNzIgNi40LjUuNSAwIDAgMCAuOTguMlpNOS45OSA4YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03WlwiXSk7XG5leHBvcnQgY29uc3QgRXllUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuMjYgMTEuNkE2Ljk3IDYuOTcgMCAwIDEgMTAgNmMzLjIgMCA2LjA2IDIuMzMgNi43NCA1LjZhLjUuNSAwIDAgMCAuOTgtLjJBNy45NyA3Ljk3IDAgMCAwIDEwIDVhNy45NyA3Ljk3IDAgMCAwLTcuNzIgNi40LjUuNSAwIDAgMCAuOTguMlpNMTAgOGEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN1ptLTIuNSAzLjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVMaW5lc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVMaW5lc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2SDMuOTJjLjI3LS4zNC41Ny0uNjguOTItMUgxMFY0SDYuMThDNy4yMSAzLjQgOC40NyAzIDEwIDNhNy41IDcuNSAwIDAgMSA2LjA4IDMgOS43MyA5LjczIDAgMCAxIDEuNTYgMi45NmMuMDYuMi4xMS40LjExLjU0cy0uMDUuMzUtLjEuNTRBOS43NCA5Ljc0IDAgMCAxIDE2LjA4IDEzIDcuNSA3LjUgMCAwIDEgMTAgMTZjLTEuNTMgMC0yLjgtLjQtMy44Mi0xSDEwdi0xSDQuODRhOC41OSA4LjU5IDAgMCAxLS45Mi0xSDEwdi0uNWEzIDMgMCAxIDAgMC02VjZaTTguMzQgN2gtNS4xYy0uMjEuMzUtLjM4LjctLjUyIDFINy40Yy4yMy0uNC41Ni0uNzQuOTQtMVptLTEuMyAyaC00LjdjLS4wNS4xOC0uMDkuMzctLjA5LjVzLjA0LjMyLjEuNWg0LjdhMy4wMiAzLjAyIDAgMCAxIDAtMVptLjM2IDJIMi43MmMuMTQuMy4zLjY1LjUyIDFoNS4xYy0uMzgtLjI2LS43LS42LS45NC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRXllTGluZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZUxpbmVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYy0xLjUzIDAtMi44LjQtMy44MiAxSDEwYTYuNSA2LjUgMCAwIDEgNS4zIDIuNjIgOC43MyA4LjczIDAgMCAxIDEuMzggMi42MmMuMDUuMTQuMDYuMjIuMDcuMjV2LjAxYTYuNSA2LjUgMCAwIDEtLjMyLjk0Yy0uMjQuNTctLjYgMS4yNi0xLjE0IDEuOTRBNi41IDYuNSAwIDAgMSAxMCAxNUg2LjE4YzEuMDMuNiAyLjI5IDEgMy44MiAxYTcuNDQgNy40NCAwIDAgMCA2LjA4LTMgOS43NCA5Ljc0IDAgMCAwIDEuNTYtMi45NmMuMDYtLjIuMTEtLjQuMTEtLjU0cy0uMDUtLjM1LS4xLS41NEE5LjczIDkuNzMgMCAwIDAgMTYuMDggNiA3LjQ0IDcuNDQgMCAwIDAgMTAgM1ptMCAzSDMuOTJjLjI3LS4zNC41Ny0uNjguOTItMUgxMHYxWm0wIDdhMy41IDMuNSAwIDEgMCAwLTd2MUgzLjI0Yy0uMjEuMzUtLjM4LjctLjUyIDFIOGEyLjUgMi41IDAgMSAxIDAgM0gyLjcyYy4xNC4zLjMuNjUuNTIgMUgxMHYxWm0wIDBIMy45MmMuMjcuMzQuNTcuNjguOTIgMUgxMHYtMVpNNy41NSA5aC01LjJjLS4wNi4xOC0uMS4zNy0uMS41cy4wNC4zMi4xLjVoNS4yYTIuNTEgMi41MSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMy41IDMuNWE4LjEgOC4xIDAgMCAwLTMuMzcgNS4wNS41LjUgMCAxIDAgLjk4LjIgNy4wOSA3LjA5IDAgMCAxIDMuMS00LjUzbDEuNTkgMS41OWEzLjUgMy41IDAgMSAwIDQuODggNC44OGw0LjMyIDQuMzFhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEwLjEyIDhsMy4zNyAzLjM3QTMuNSAzLjUgMCAwIDAgMTAuMTIgOFpNNy41MyA1LjQxbC44LjhDOC44NyA2LjA3IDkuNDMgNiAxMCA2YzMuMiAwIDYuMDYgMi4zMyA2Ljc0IDUuNmEuNS41IDAgMSAwIC45OC0uMkE3Ljk3IDcuOTcgMCAwIDAgMTAgNWMtLjg2IDAtMS42OS4xNC0yLjQ3LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgRXllT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMy41IDMuNWE4LjEgOC4xIDAgMCAwLTMuMzcgNS4wNS41LjUgMCAxIDAgLjk4LjIgNy4wOSA3LjA5IDAgMCAxIDMuMS00LjUzbDEuNiAxLjU5YTMuNSAzLjUgMCAxIDAgNC44OCA0Ljg5bDQuMyA0LjNhLjUuNSAwIDAgMCAuNzEtLjdsLTE1LTE1Wm05LjI3IDEwLjY4YTIuNSAyLjUgMCAxIDEtMy40NS0zLjQ1bDMuNDUgMy40NVptLTItNC44MyAzLjM4IDMuMzhBMy41IDMuNSAwIDAgMCAxMC4xMiA4Wk0xMCA2Yy0uNTcgMC0xLjEzLjA3LTEuNjcuMjFsLS44LS44QTcuNjUgNy42NSAwIDAgMSAxMCA1YzMuNyAwIDYuOTQgMi42NyA3LjcyIDYuNGEuNS41IDAgMCAxLS45OC4yQTYuOTcgNi45NyAwIDAgMCAxMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYzYS41LjUgMCAwIDEtMSAwdi0zQTIuNSAyLjUgMCAwIDEgNC41IDJoM2EuNS41IDAgMCAxIDAgMWgtM1ptMCAxNEExLjUgMS41IDAgMCAxIDMgMTUuNXYtM2EuNS41IDAgMCAwLTEgMHYzQTIuNSAyLjUgMCAwIDAgNC41IDE4aDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE3IDQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNhLjUuNSAwIDAgMSAwLTFoM0EyLjUgMi41IDAgMCAxIDE4IDQuNXYzYS41LjUgMCAwIDEtMSAwdi0zWk0xNS41IDE3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2EuNS41IDAgMCAxIDEgMHYzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtM2EuNS41IDAgMCAxIDAtMWgzWk03IDExLjVhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWk00Ljk1IDkuNzJhLjUuNSAwIDAgMS0uOS0uNDRsLjQ1LjIyLS40NS0uMjJ2LS4wMWwuMDEtLjAxYTIuMSAyLjEgMCAwIDEgLjA4LS4xNGwuMjUtLjM4QTYuODUgNi44NSAwIDAgMSAxMCA2YTYuODUgNi44NSAwIDAgMSA1LjYyIDIuNzQgNS4xMyA1LjEzIDAgMCAxIC4zMy41MnYuMDFsLS40NC4yMy40NS0uMjJhLjUuNSAwIDAgMS0uOS40NVY5LjdhMi41IDIuNSAwIDAgMC0uMjUtLjM5QTUuODYgNS44NiAwIDAgMCAxMCA3YTUuODYgNS44NiAwIDAgMC00LjggMi4zMiA0LjE0IDQuMTQgMCAwIDAtLjI0LjM5bC0uMDEuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVUcmFja2luZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoM2EuNS41IDAgMCAwIDAtMWgtM0EyLjUgMi41IDAgMCAwIDIgNC41djNhLjUuNSAwIDAgMCAxIDB2LTNabTAgMTFjMCAuODMuNjcgMS41IDEuNSAxLjVoM2EuNS41IDAgMCAxIDAgMWgtM0EyLjUgMi41IDAgMCAxIDIgMTUuNXYtM2EuNS41IDAgMCAxIDEgMHYzWk0xNS41IDNjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2EuNS41IDAgMCAwIDEgMHYtM0EyLjUgMi41IDAgMCAwIDE1LjUgMmgtM2EuNS41IDAgMCAwIDAgMWgzWk0xNyAxNS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM2EuNS41IDAgMCAwIDAgMWgzYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM2EuNS41IDAgMCAwLTEgMHYzWm0tMTAtNGEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabTMtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabS01LjA1LjIyYS41LjUgMCAwIDEtLjktLjQ0bC40NS4yMi0uNDUtLjIydi0uMDFsLjAxLS4wMWEyLjEgMi4xIDAgMCAxIC4wOC0uMTRsLjI1LS4zOEE2Ljg1IDYuODUgMCAwIDEgMTAgNmE2Ljg1IDYuODUgMCAwIDEgNS42MiAyLjc0IDUuMTMgNS4xMyAwIDAgMSAuMzMuNTJ2LjAxbC0uNDQuMjMuNDUtLjIyYS41LjUgMCAwIDEtLjkuNDVWOS43YTIuNSAyLjUgMCAwIDAtLjI1LS4zOUE1Ljg2IDUuODYgMCAwIDAgMTAgN2E1Ljg2IDUuODYgMCAwIDAtNC44IDIuMzIgNC4xNCA0LjE0IDAgMCAwLS4yNC4zOWwtLjAxLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmdPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi40MSAzLjEyQzIuMTUgMy41MiAyIDQgMiA0LjV2M2EuNS41IDAgMCAwIDEgMHYtM2MwLS4yMy4wNS0uNDUuMTUtLjY1TDYuMjkgN2E2LjYgNi42IDAgMCAwLTIuMjMgMi4yN3YuMDFsLjQ0LjIzLS40NS0uMjJhLjUuNSAwIDAgMCAuOS40NHYtLjAxYTIuMzkgMi4zOSAwIDAgMSAuMjUtLjM5IDUuNDkgNS40OSAwIDAgMSAxLjgyLTEuNmwxLjMgMS4zYTMgMyAwIDEgMCA0LjE2IDQuMTdsMy42NyAzLjY2Yy0uMi4xLS40Mi4xNS0uNjUuMTVoLTNhLjUuNSAwIDAgMCAwIDFoM2MuNSAwIC45OC0uMTUgMS4zOC0uNDFsLjI3LjI2YS41LjUgMCAwIDAgLjctLjdsLS4yNi0uMjctLjc0LS43My0zLjkzLTMuOTQtMy42My0zLjYzTDguMDEgNy4zbC0uNzgtLjc4LTMuMzgtMy4zNy0uNzMtLjc0LS4yNy0uMjZhLjUuNSAwIDEgMC0uNy43bC4yNi4yN1ptMTUuNTcgMTIuNzMuMDItLjM1di0zYS41LjUgMCAwIDAtMSAwdjIuMzhsLjk4Ljk3Wm0tOC44MS04LjhBNyA3IDAgMCAxIDEwIDdhNS44NiA1Ljg2IDAgMCAxIDQuOCAyLjMyIDQuMTMgNC4xMyAwIDAgMSAuMjQuMzlsLjAxLjAxYS41LjUgMCAwIDAgLjktLjQ0di0uMDFsLS4wMS0uMDFhMS43IDEuNyAwIDAgMC0uMDgtLjE0bC0uMjUtLjM4QTYuODUgNi44NSAwIDAgMCAxMCA2Yy0uNjMgMC0xLjIuMDctMS43LjE4bC44Ni44N1ptNi43OCAyLjIzLS4wNi4wMy0uMzkuMTkuNDUtLjIyWk01LjEyIDNINy41YS41LjUgMCAwIDAgMC0xaC0zYy0uMTIgMC0uMjQgMC0uMzUuMDJsLjk3Ljk4Wk0zIDE1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoM2EuNS41IDAgMCAxIDAgMWgtM0EyLjUgMi41IDAgMCAxIDIgMTUuNXYtM2EuNS41IDAgMCAxIDEgMHYzWm0xNC0xMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNhLjUuNSAwIDAgMSAwLTFoM0EyLjUgMi41IDAgMCAxIDE4IDQuNXYzYS41LjUgMCAwIDEtMSAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmdPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZVRyYWNraW5nT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjQxIDMuMTJDMi4xNSAzLjUyIDIgNCAyIDQuNXYzYS41LjUgMCAwIDAgMSAwdi0zYzAtLjIzLjA1LS40NS4xNS0uNjVMNi4yOSA3YTYuNiA2LjYgMCAwIDAtMi4yMyAyLjI3di4wMWwuNDQuMjMtLjQ1LS4yMmEuNS41IDAgMCAwIC45LjQ0di0uMDFhMi4zOSAyLjM5IDAgMCAxIC4yNS0uMzkgNS40OSA1LjQ5IDAgMCAxIDEuODItMS42bDEuMyAxLjNhMyAzIDAgMSAwIDQuMTYgNC4xN2wzLjY3IDMuNjZjLS4yLjEtLjQyLjE1LS42NS4xNWgtM2EuNS41IDAgMCAwIDAgMWgzYy41IDAgLjk4LS4xNSAxLjM4LS40MWwuMjcuMjZhLjUuNSAwIDAgMCAuNy0uN2wtLjI2LS4yNy0uNzQtLjczLTMuOTMtMy45NC0zLjYzLTMuNjNMOC4wMSA3LjNsLS43OC0uNzgtMy4zOC0zLjM3LS43My0uNzQtLjI3LS4yNmEuNS41IDAgMSAwLS43LjdsLjI2LjI3Wm05LjM0IDkuMzRhMiAyIDAgMSAxLTIuNzEtMi43MWwyLjcxIDIuNzFabTYuMjMgMy40LjAyLS4zNnYtM2EuNS41IDAgMCAwLTEgMHYyLjM4bC45OC45N1pNOS4xNyA3LjA0QTcgNyAwIDAgMSAxMCA3YTUuODYgNS44NiAwIDAgMSA0LjggMi4zMiA0LjEzIDQuMTMgMCAwIDEgLjI0LjM5bC4wMS4wMWEuNS41IDAgMCAwIC45LS40NHYtLjAxbC0uMDEtLjAxYTEuNyAxLjcgMCAwIDAtLjA4LS4xNGwtLjI1LS4zOEE2Ljg1IDYuODUgMCAwIDAgMTAgNmMtLjYzIDAtMS4yLjA3LTEuNy4xOGwuODYuODdabTYuNzggMi4yMy0uMDYuMDMtLjM5LjE5LjQ1LS4yMlpNNS4xMiAzSDcuNWEuNS41IDAgMCAwIDAtMWgtM2MtLjEyIDAtLjI0IDAtLjM1LjAybC45Ny45OFpNNC41IDE3QTEuNSAxLjUgMCAwIDEgMyAxNS41di0zYS41LjUgMCAwIDAtMSAwdjNBMi41IDIuNSAwIDAgMCA0LjUgMThoM2EuNS41IDAgMCAwIDAtMWgtM1ptMTEtMTRjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2EuNS41IDAgMCAwIDEgMHYtM0EyLjUgMi41IDAgMCAwIDE1LjUgMmgtM2EuNS41IDAgMCAwIDAgMWgzWlwiXSk7XG5leHBvcnQgY29uc3QgRXllZHJvcHBlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVkcm9wcGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjI1IDIuNzVhMi42MiAyLjYyIDAgMCAwLTMuNzEgMEwxMi41IDMuOGwtLjM1LS4zNWExLjUgMS41IDAgMCAwLTIuMTIgMGwtLjU5LjU5YTEuNSAxLjUgMCAwIDAgMCAyLjEybC4zNS4zNS02LjM1IDYuMzVBMS41IDEuNSAwIDAgMCAzIDEzLjkxdi41bC0uOTYgMi4yNmExIDEgMCAwIDAgMS4zMiAxLjMxTDUuNiAxN2guNDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0bDYuMzUtNi4zNS4zNS4zNWExLjUgMS41IDAgMCAwIDIuMTIgMGwuNTktLjU4YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0uMzUtLjM1IDEuMDQtMS4wNGEyLjYyIDIuNjIgMCAwIDAgMC0zLjdaTTEwLjUgNy4yMWwyLjMgMi4zLTYuMzYgNi4zNGEuNS41IDAgMCAxLS4zNS4xNUg1LjVhLjUuNSAwIDAgMC0uMi4wNGwtMi4zNCAxLjAzIDEtMi4zNmEuNS41IDAgMCAwIC4wNC0uMnYtLjZhLjUuNSAwIDAgMSAuMTUtLjM1bDYuMzUtNi4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZWRyb3BwZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjI1IDIuNzVhMi42MiAyLjYyIDAgMCAwLTMuNzEgMEwxMi41IDMuOGwtLjM1LS4zNWExLjUgMS41IDAgMCAwLTIuMTIgMGwtLjU5LjU5YTEuNSAxLjUgMCAwIDAgMCAyLjEybC4zNS4zNS02LjM1IDYuMzVBMS41IDEuNSAwIDAgMCAzIDEzLjkxdi41bC0uOTYgMi4yNmExIDEgMCAwIDAgMS4zMiAxLjMxTDUuNiAxN2guNDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0bDYuMzUtNi4zNS4zNS4zNWExLjUgMS41IDAgMCAwIDIuMTIgMGwuNTktLjU4YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0uMzUtLjM1IDEuMDQtMS4wNGEyLjYyIDIuNjIgMCAwIDAgMC0zLjdabS0zIC43MWExLjYyIDEuNjIgMCAwIDEgMi4yOSAyLjNsLTEuNCAxLjM5YS41LjUgMCAwIDAgMCAuN2wuNzEuNzFjLjIuMi4yLjUxIDAgLjdsLS41OC42YS41LjUgMCAwIDEtLjcxIDBsLTQuNDEtNC40MmEuNS41IDAgMCAxIDAtLjdsLjU4LS41OWMuMi0uMi41Mi0uMi43MSAwbC43LjdhLjUuNSAwIDAgMCAuNzEgMGwxLjQtMS4zOVpNMTIuNzkgOS41bC02LjM1IDYuMzVhLjUuNSAwIDAgMS0uMzUuMTVINS41YS41LjUgMCAwIDAtLjIuMDRsLTIuMzQgMS4wMyAxLTIuMzZhLjUuNSAwIDAgMCAuMDQtLjJ2LS42YS41LjUgMCAwIDEgLjE1LS4zNWw2LjM1LTYuMzUgMi4zIDIuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXJPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllZHJvcHBlck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjggOC41IDIuMTQgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtNS42NS01LjY0LTQuMzUgNC4zNWExLjUgMS41IDAgMCAxLTEuMDYuNDRINS42bC0yLjI1Ljk4YTEgMSAwIDAgMS0xLjMyLTEuM0wzIDE0LjQxdi0uNWMwLS40LjE2LS43OC40NC0xLjA3TDcuNzkgOC41Wm0zIDNMOC41IDkuMmwtNC4zNSA0LjM2YS41LjUgMCAwIDAtLjE1LjM1di42YS41LjUgMCAwIDEtLjA0LjJsLTEgMi4zNiAyLjM0LTEuMDNhLjUuNSAwIDAgMSAuMi0uMDRoLjU5YS41LjUgMCAwIDAgLjM1LS4xNWw0LjM1LTQuMzVabTItMi0uNi41OS43Mi43LjU4LS41OC4zNS4zNWExLjUgMS41IDAgMCAwIDIuMTMgMGwuNTgtLjU4YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0uMzUtLjM1IDEuMDQtMS4wNGEyLjYyIDIuNjIgMCAxIDAtMy43MS0zLjdMMTIuNSAzLjc4bC0uMzUtLjM1YTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0uNTkuNTlhMS41IDEuNSAwIDAgMCAwIDIuMTJsLjM1LjM1LS41OC41OS43LjcuNi0uNTggMi4yOCAyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVkcm9wcGVyT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVkcm9wcGVyT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjggOC41IDIuMTQgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtNS42NS01LjY0LTQuMzUgNC4zNWExLjUgMS41IDAgMCAxLTEuMDYuNDRINS42bC0yLjI1Ljk4YTEgMSAwIDAgMS0xLjMyLTEuM0wzIDE0LjQxdi0uNWMwLS40LjE2LS43OC40NC0xLjA3TDcuNzkgOC41Wm0zIDNMOC41IDkuMmwtNC4zNSA0LjM2YS41LjUgMCAwIDAtLjE1LjM1di42YS41LjUgMCAwIDEtLjA0LjJsLTEgMi4zNiAyLjM0LTEuMDNhLjUuNSAwIDAgMSAuMi0uMDRoLjU5YS41LjUgMCAwIDAgLjM1LS4xNWw0LjM1LTQuMzVabTItMi0uNi41OS43Mi43LjU4LS41OC4zNS4zNWExLjUgMS41IDAgMCAwIDIuMTMgMGwuNTgtLjU4YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0uMzUtLjM1IDEuMDQtMS4wNGEyLjYyIDIuNjIgMCAxIDAtMy43MS0zLjdMMTIuNSAzLjc4bC0uMzUtLjM1YTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0uNTkuNTlhMS41IDEuNSAwIDAgMCAwIDIuMTJsLjM1LjM1LS41OC41OS43LjcuNi0uNTggMi4yOCAyLjNabTEuNDUtNi4wNGExLjYyIDEuNjIgMCAxIDEgMi4yOSAyLjNsLTEuNCAxLjM5YS41LjUgMCAwIDAgMCAuN2wuNzEuNzFjLjIuMi4yLjUxIDAgLjdsLS41OC42YS41LjUgMCAwIDEtLjcgMGwtNC40Mi00LjQyYS41LjUgMCAwIDEgMC0uN2wuNTktLjU5Yy4yLS4yLjUtLjIuNyAwbC43LjdhLjUuNSAwIDAgMCAuNzEgMGwxLjQtMS4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZTdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZTdG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjA4IDUuNjhjLjI4LTEuNjMgMi0yLjU4IDMuNTMtMS45NWwuMzYuMTRhLjc1Ljc1IDAgMSAwIC41Ni0xLjM4bC0uMzYtLjE1QTQuMDggNC4wOCAwIDAgMCA5LjYgNS40M0w5IDlINS43NGEuNzUuNzUgMCAxIDAgMCAxLjVoMi45OGwtLjUgMi45NmEyLjU4IDIuNTggMCAwIDEtMy45MiAxLjc1bC0uMTYtLjFhLjc1Ljc1IDAgMCAwLS44IDEuMjdsLjE2LjFjMi40NiAxLjU1IDUuNy4xIDYuMi0yLjc3bC41NS0zLjIxaDIuOTlhLjc1Ljc1IDAgMSAwIDAtMS41aC0yLjc0bC41Ny0zLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgRlN0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZTdG9wUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC44OCA1LjM1YTIuODMgMi44MyAwIDAgMSAzLjY4LTIuMjJsLjc4LjI2YS41LjUgMCAxIDAgLjMyLS45NWwtLjgtLjI2YTMuODMgMy44MyAwIDAgMC00Ljk2IDNMOS4yNCA5SDUuNWEuNS41IDAgMSAwIDAgMWgzLjU3bC0uNjIgMy42M2EyLjgzIDIuODMgMCAwIDEtNC4yNCAxLjk2bC0uNDUtLjI3YS41LjUgMCAxIDAtLjUyLjg2bC40Ni4yN2EzLjgzIDMuODMgMCAwIDAgNS43NC0yLjY1bC42NS0zLjhoMy40MWEuNS41IDAgMCAwIDAtMWgtMy4yNGwuNjItMy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZhc3RBY2NlbGVyYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmFzdEFjY2VsZXJhdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjkgNy4yYTMuNDggMy40OCAwIDAgMSA0LjIgMGwtMS4wOCAxLjA4YTIgMiAwIDAgMC0yLjA0IDBMOC45IDcuMlpNMTMgMTBhMiAyIDAgMCAwLS4yOC0xLjAyTDEzLjggNy45YTMuNDggMy40OCAwIDAgMSAwIDQuMmwtMS4wOC0xLjA4QTIgMiAwIDAgMCAxMyAxMFptLTIgMmEyIDIgMCAwIDAgMS4wMi0uMjhsMS4wOCAxLjA4YTMuNDggMy40OCAwIDAgMS00LjIgMGwxLjA4LTEuMDhBMiAyIDAgMCAwIDExIDEyWm0tMi0yYzAgLjM3LjEuNzIuMjggMS4wMkw4LjIgMTIuMWEzLjQ4IDMuNDggMCAwIDEgMC00LjJsMS4wOCAxLjA4QTIgMiAwIDAgMCA5IDEwWk02LjEgNWE2Ljk4IDYuOTggMCAwIDAtMS40MyA4SDMuNWEuNS41IDAgMCAwIDAgMWgxLjc1Yy4yNi4zNi41NC43Ljg1IDFIMS41YS41LjUgMCAwIDAgMCAxaDUuOWE3IDcgMCAxIDAgMC0xMkgyLjVhLjUuNSAwIDAgMCAwIDFoMy42Wk0xMSA5YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZhc3RBY2NlbGVyYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zhc3RBY2NlbGVyYXRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExIDRhNiA2IDAgMSAxLTMuMyAxMS4wMVYxNWgtLjAyQTYgNiAwIDAgMSAxMSA0Wk01LjI1IDE0Yy4yNi4zNi41NC43Ljg1IDFIMS41YS41LjUgMCAwIDAgMCAxaDUuOWE3IDcgMCAxIDAgMC0xMkgyLjVhLjUuNSAwIDAgMCAwIDFoMy42YTYuOTggNi45OCAwIDAgMC0xLjQzIDhIMy41YS41LjUgMCAwIDAgMCAxaDEuNzVaTTguMiA3LjlhMy40OCAzLjQ4IDAgMCAwIDAgNC4ybDEuMDgtMS4wOGEyIDIgMCAwIDEgMC0yLjA0TDguMiA3LjlabS43LS43IDEuMDggMS4wOGEyIDIgMCAwIDEgMi4wNCAwTDEzLjEgNy4yYTMuNDggMy40OCAwIDAgMC00LjIgMFptNC45LjctMS4wOCAxLjA4YTIgMiAwIDAgMSAwIDIuMDRsMS4wOCAxLjA4YTMuNDggMy40OCAwIDAgMCAwLTQuMlptLS43IDQuOS0xLjA4LTEuMDhhMiAyIDAgMCAxLTIuMDQgMEw4LjkgMTIuOGEzLjQ4IDMuNDggMCAwIDAgNC4yIDBaTTYuNSAxMGE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFptMy41IDBhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRmFzdEZvcndhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmFzdEZvcndhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMDIgNS40OWExIDEgMCAwIDEgMS41OS0uODFsNS44OCA0LjMxYy42OC41LjY4IDEuNTIgMCAyLjAybC01Ljg4IDQuM2ExIDEgMCAwIDEtMS42LS44di0zLjE2bC01LjQgMy45N2ExIDEgMCAwIDEtMS42LS44VjUuNDhhMSAxIDAgMCAxIDEuNi0uODFsNS40IDMuOTdWNS40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZhc3RGb3J3YXJkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0Rm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMDIgNS40OWExIDEgMCAwIDEgMS41OS0uODFsNS44OCA0LjMxYy42OC41LjY4IDEuNTIgMCAyLjAybC01Ljg4IDQuM2ExIDEgMCAwIDEtMS42LS44di0zLjE2bC01LjQgMy45N2ExIDEgMCAwIDEtMS42LS44VjUuNDhhMSAxIDAgMCAxIDEuNi0uODFsNS40IDMuOTdWNS40OVptNi44OCA0LjMtNS44OC00LjN2OS4wMmw1Ljg4LTQuM2MuMTMtLjEuMTMtLjMxIDAtLjQxWm0tNyAwTDQuMDIgNS41djkuMDJsNS44OC00LjNjLjEzLS4xLjEzLS4zMSAwLS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZheEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXhGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjdoLTFWNC41YS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41VjhoNS41Yy0uMzEuNDItLjUuOTQtLjUgMS41djZjMCAuNTYuMTkgMS4wOC41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTUuNVYxMGMwLTEuMS45LTIgMi0yVjQuNVptMS4yNSA2LjEzYS42Mi42MiAwIDEgMC0xLjI1IDAgLjYyLjYyIDAgMCAwIDEuMjUgMFptMCAyLjI0YS42Mi42MiAwIDEgMC0xLjI1IDAgLjYyLjYyIDAgMCAwIDEuMjUgMFptMS42My0uNWEuNjIuNjIgMCAxIDAgMCAxLjI1LjYyLjYyIDAgMCAwIDAtMS4yNFptLjYyLTEuNzRhLjYyLjYyIDAgMSAwLTEuMjUgMCAuNjIuNjIgMCAwIDAgMS4yNSAwWm01LTIuNjNjLS44MyAwLTEuNS42Ny0xLjUgMS41djZjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWlwiXSk7XG5leHBvcnQgY29uc3QgRmF4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXhSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNC41QzUgMy42NyA1LjY3IDMgNi41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNVY3aC0xVjQuNWEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNVY4aDUuNWMtLjIyLjMtLjM4LjYzLS40NSAxSDVhMSAxIDAgMCAwLTEgMXY1LjVjMCAuMjguMjIuNS41LjVoNi41NWMuMDcuMzcuMjMuNy40NSAxaC03QTEuNSAxLjUgMCAwIDEgMyAxNS41VjEwYzAtMS4xLjktMiAyLTJWNC41Wm03IDVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTZabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2NmMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgLjUtLjV2LTZhLjUuNSAwIDAgMC0uNS0uNWgtMlptLTcuODggMWEuNjIuNjIgMCAxIDEgMCAxLjI1LjYyLjYyIDAgMCAxIDAtMS4yNVptMCAyLjI1YS42Mi42MiAwIDEgMSAwIDEuMjUuNjIuNjIgMCAwIDEgMC0xLjI1Wk04LjUgMTNhLjYyLjYyIDAgMSAwLTEuMjUgMCAuNjIuNjIgMCAwIDAgMS4yNSAwWm0tLjYzLTNhLjYyLjYyIDAgMSAxIDAgMS4yNS42Mi42MiAwIDAgMSAwLTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZlZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNDcgMTdINGEyIDIgMCAwIDEtMi0yVjQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWNmg0LjQ4Yy43Ny4wMiAxLjUyLjYgMS41MiAxLjU4djQuOTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yLjFsLS40MyAxLjgyYy0uMTkuODItLjg1IDEuMi0xLjUgMS4xOFpNMTUgN0gxMnY4LjQ4YzAgLjYuODYuNyAxIC4xMmwxLjk0LTguMzcuMDctLjIzWk01LjUgN2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNNSAxMGMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAtLjUuNVptMCAzLjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGZWVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgN2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNNSAxMGMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNBLjUuNSAwIDAgMSA1IDEwWm0uNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQgMTdoOC40N2MuNjUuMDIgMS4zMS0uMzYgMS41LTEuMThMMTQuNCAxNGgyLjExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY3LjU4YzAtLjk4LS43NS0xLjU2LTEuNTItMS41OEgxMlY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03QzIuNjcgMyAyIDMuNjcgMiA0LjVWMTVjMCAxLjEuOSAyIDIgMlpNMyA0LjVjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxMC45OGMwIC4yLjAzLjM2LjA4LjUySDRhMSAxIDAgMCAxLTEtMVY0LjVaTTE2LjUgMTNoLTEuODdsMS4yOC01LjU0Yy4xNS0uNjQgMS4wOS0uNTMgMS4wOS4xMnY0LjkyYS41LjUgMCAwIDEtLjUuNVpNMTIgN2gzLjAxYTEuOCAxLjggMCAwIDAtLjA3LjIzTDEzIDE1LjZjLS4xNC41OC0xIC40OC0xLS4xMlY3WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWN1ptMTMtLjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLTEgMFptLjUgNS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTE1IDkuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwWk00LjUgNmEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wk00IDEyLjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLTEgMFpNNC41IDlhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1pNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk0xNSA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgNS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTE1IDkuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWk00LjUgNmEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wk00IDEyLjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVpNNC41IDlhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcEltYWdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcEltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2NkEyLjUgMi41IDAgMCAwIDQuNSAxM0g3di0yLjVBMy41IDMuNSAwIDAgMSAxMC41IDdIMTRWNC41QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03Wm0wIDJjLjI4IDAgLjUuMjIuNS41VjVhLjUuNSAwIDAgMS0xIDB2LS41YzAtLjI4LjIyLS41LjUtLjVabTcuNS41VjVhLjUuNSAwIDAgMS0xIDB2LS41YS41LjUgMCAwIDEgMSAwWk00LjUgNi43NWMuMjggMCAuNS4yMi41LjV2LjVhLjUuNSAwIDAgMS0xIDB2LS41YzAtLjI4LjIyLS41LjUtLjVaTTUgMTB2LjVhLjUuNSAwIDAgMS0xIDBWMTBhLjUuNSAwIDAgMSAxIDBabTMgLjVBMi41IDIuNSAwIDAgMSAxMC41IDhoNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NWMwIC41MS0uMTUuOTgtLjQxIDEuMzhMMTQuMiAxMy41YTEuNzEgMS43MSAwIDAgMC0yLjQyIDBsLTMuMzggMy4zOEM4LjE1IDE2LjQ4IDggMTYgOCAxNS41di01Wm02IC41YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptLTQuODggNi41OWMuNC4yNi44Ny40MSAxLjM4LjQxaDVjLjUgMCAuOTgtLjE1IDEuMzgtLjQxTDEzLjUgMTQuMmEuNzEuNzEgMCAwIDAtMSAwbC0zLjM4IDMuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBJbWFnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwSW1hZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNVY3aC0xVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDMy42NyAzIDMgMy42NyAzIDQuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2MUg0LjVBMi41IDIuNSAwIDAgMSAyIDEwLjV2LTZaTTE2IDExYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTgtLjVBMi41IDIuNSAwIDAgMSAxMC41IDhoNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSA4IDE1LjV2LTVaTTEwLjUgOUM5LjY3IDkgOSA5LjY3IDkgMTAuNXY1YzAgLjIzLjA1LjQ1LjE1LjY1bDIuNjQtMi42NWExLjcxIDEuNzEgMCAwIDEgMi40MiAwbDIuNjQgMi42NWMuMS0uMi4xNS0uNDIuMTUtLjY1di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVptMiA1LjItMi42NSAyLjY1Yy4yLjEuNDIuMTUuNjUuMTVoNWMuMjMgMCAuNDUtLjA1LjY1LS4xNWwtMi42NS0yLjY0YS43MS43MSAwIDAgMC0xIDBaTTQuNSA0Yy4yOCAwIC41LjIyLjUuNVY1YS41LjUgMCAwIDEtMSAwdi0uNWMwLS4yOC4yMi0uNS41LS41Wm03LjUuNWEuNS41IDAgMCAwLTEgMFY1YS41LjUgMCAwIDAgMSAwdi0uNVpNNC41IDYuNzVjLjI4IDAgLjUuMjIuNS41di41YS41LjUgMCAwIDEtMSAwdi0uNWMwLS4yOC4yMi0uNS41LS41Wk01IDEwYS41LjUgMCAwIDAtMSAwdi41YS41LjUgMCAwIDAgMSAwVjEwWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBQbGF5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNGEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjdhMyAzIDAgMCAwLTMtM0g1Wm0xMC41IDJjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVptLS41IDYuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0uNS0zLjVjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVpNNCA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgNS41Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVaTTQgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFabTQtMS4zN2MwLS40OS40Ni0uNzkuODMtLjU0bDIuOTQgMS45NWMuMy4yLjMuNzIgMCAuOTJsLTIuOTQgMS45NWMtLjM3LjI1LS44My0uMDUtLjgzLS41NFY4LjEzWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwUGxheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFaTTMgNi41QzMgNS42NyAzLjY3IDUgNC41IDVoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxMy41di03Wk0xNS41IDZhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVptLS41IDYuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0uNS0zLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNNCA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgNS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTQgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFabTQtMS4zN2MwLS40OS40Ni0uNzkuODMtLjU0bDIuOTQgMS45NWMuMy4yLjMuNzIgMCAuOTJsLTIuOTQgMS45NWMtLjM3LjI1LS44My0uMDUtLjgzLS41NFY4LjEzWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwU3BsaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwU3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNSAyLjVhLjUuNSAwIDAgMC0xIDB2MTVhLjUuNSAwIDAgMCAxIDB2LTE1Wk0yIDdhMyAzIDAgMCAxIDMtM2gzLjV2MTJINWEzIDMgMCAwIDEtMy0zVjdabTIuNS0xYS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTQgMTMuNWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLTEgMHYxWk00LjUgOWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wm03IDdWNEgxNWEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM2gtMy41Wk0xNSA3LjVhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0xIDB2MVptLjUgNC41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTE1IDkuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwU3BsaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFNwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHYxNWEuNS41IDAgMCAwIDEgMHYtMTVaTTIgNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoNHYxaC00QzMuNjcgNSAzIDUuNjcgMyA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg0djFoLTRBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdaTTExLjUgNVY0aDRBMi41IDIuNSAwIDAgMSAxOCA2LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTR2LTFoNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00Wk0xNSA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgNS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTE1IDkuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWk00LjUgNmEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wk00IDEyLjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVpNNC41IDlhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuMjUgMTMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNC41Wm0yLTQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDguNVptMi00LjI1YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAxM2g1YS41LjUgMCAwIDEgLjA5IDFINy41YS41LjUgMCAwIDEtLjA5LTFoNS4wOS01Wm0tMi00aDlhLjUuNSAwIDAgMSAuMDkgMUg1LjVhLjUuNSAwIDAgMS0uMDktMWg5LjA5LTlabS0yLTRoMTNhLjUuNSAwIDAgMSAuMDkgMUgzLjVhLjUuNSAwIDAgMS0uMDktMUgxNi41aC0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgOS4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41YS41LjUgMCAwIDAtLjE1LS4zNVpNOS4wMiA1YTUuNTcgNS41NyAwIDAgMCAuMDcgMS41SDMuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDUuMjdabTEuNDYgNC4yNWE1LjUgNS41IDAgMCAwIDIuMzggMS41SDUuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDQuNzNabTEuNzcgNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDkuMjRhNC41IDQuNSAwIDEgMS01LTcuNDggNC41IDQuNSAwIDAgMSA1IDcuNDhabS0yLjE1LTYuMWEuNS41IDAgMCAwLS44NS4zNlY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNWEuNS41IDAgMCAwLS4xNS0uMzVaTTkuMDIgNUgzLjQxYS41LjUgMCAwIDAgLjA5IDFoNS41MmE1LjU3IDUuNTcgMCAwIDEgMC0xWm0xLjI0IDRINS40YS41LjUgMCAwIDAgLjA5IDFoNS44NGMtLjQtLjI4LS43Ny0uNjItMS4wOC0xWk03LjQgMTNoNS4wOWEuNS41IDAgMCAxIC4wOSAxSDcuNWEuNS41IDAgMCAxLS4wOS0xWlwiXSk7IiwiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZsdWVudEljb24gfSBmcm9tIFwiLi4vdXRpbHMvY3JlYXRlRmx1ZW50SWNvblwiO1xuZXhwb3J0IGNvbnN0IEZpbHRlckRpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMS43MyAxMC4yNUE1LjQ2IDUuNDYgMCAwIDAgMTQgMTFjMCAuNDEtLjM0Ljc1LS43NS43NWgtOC41YS43NS43NSAwIDAgMSAwLTEuNWg2Ljk4Wk05LjAzIDZjLjA0LjUyLjE2IDEuMDMuMzQgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDYuMjdaTTEyIDE1LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC00LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVpNMTQuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdMMTUuMjEgNS41bDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMMTQuNSA2LjIxbC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN2wxLjE0LTEuMTUtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlckRpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMiA3SDIuNDJhLjUuNSAwIDAgMCAuMDkgMWg3LjFjLS4xNi0uMzItLjMtLjY1LS40LTFabTIuOCA4LjVhLjUuNSAwIDAgMC0uNS0uNUg2LjQxYS41LjUgMCAwIDAgLjA5IDFoNS4wOWEuNS41IDAgMCAwIC40MS0uNVptMS41LTQuNUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoOS4wOWEuNS41IDAgMCAwLS4wOS0xWm0xLTFhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43TDE1LjIxIDUuNWwxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43TDE0LjUgNi4yMWwtMS4xNSAxLjE0YS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1LTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNCAxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlclN5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNS41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45OCAxLjk4IDAgMCAwLTEuNzItLjEgMiAyIDAgMCAwLS42Ni40NC41LjUgMCAxIDEtLjcxLS43MUEzIDMgMCAwIDEgMTYgMy4xNVYzYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgMTMgNy44NVY4YS41LjUgMCAwIDEtMSAwVjYuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45OCAxLjk4IDAgMCAwIDEuNzIuMSAyIDIgMCAwIDAgLjY2LS40NC41LjUgMCAxIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpNMTQgMTAuOThhNS40NiA1LjQ2IDAgMCAxLTIuMjctLjczSDQuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgLjc1LS43N1pNOS4zNyA3LjVjLS4xOC0uNDctLjMtLjk4LS4zNS0xLjVIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi42MlptMS44OCA3YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMSAwLTEuNWg0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJTeW5jUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk4IDEuOTggMCAwIDAtMS43Mi0uMSAyIDIgMCAwIDAtLjY2LjQ0LjUuNSAwIDEgMS0uNzEtLjcxQTMgMyAwIDAgMSAxNiAzLjE1VjNjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzQTMgMyAwIDAgMSAxMyA3Ljg1VjhhLjUuNSAwIDAgMS0xIDBWNi41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk4IDEuOTggMCAwIDAgMS43Mi4xIDIgMiAwIDAgMCAuNjYtLjQ0LjUuNSAwIDEgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2Wk0yLjUgN2g2LjdjLjEuMzUuMjQuNjguNCAxSDIuNWEuNS41IDAgMCAxLS4wOS0xaC4wOVptOSA4YS41LjUgMCAwIDEgLjA5IDFINi41YS41LjUgMCAwIDEtLjA5LTFoNS4wOVptLTctNGg5YS41LjUgMCAwIDEgLjA5IDFINC41YS41LjUgMCAwIDEtLjA5LTFoLjA5WlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmluZ2VycHJpbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi44MyA0LjE4YzEuNDctLjcyIDQuNjUtMS40IDguMjYuOTVhLjc1Ljc1IDAgMCAwIC44Mi0xLjI2QzExLjc5IDEuMiA4LjAzIDEuOTMgNi4xNyAyLjgyYS43NS43NSAwIDEgMCAuNjYgMS4zNlptLTEuNzEuMjdjLjIzLjM1LjEzLjgyLS4yMiAxLjA0YTUuMSA1LjEgMCAwIDAtMS4yNSAxLjM5Ljc1Ljc1IDAgMSAxLTEuMy0uNzZjLjI4LS40OC45OS0xLjQgMS43My0xLjg4YS43NS43NSAwIDAgMSAxLjA0LjIxWm01LjM4LS4xNmEuNzUuNzUgMCAwIDAgMCAxLjVjMS41NSAwIDUuMyAxLjMgNi4yNiA2LjM1YS43NS43NSAwIDEgMCAxLjQ4LS4yOEMxNy4xIDYgMTIuNjcgNC4yOSAxMC41IDQuMjlabS0xLjUxLjc4YS43NS43NSAwIDAgMS0uNDUuOTZDNC42IDcuNDYgMy42MSAxMS4yMyA0IDEzLjg5YS43NS43NSAwIDEgMS0xLjQ4LjIyYy0uNDQtMy4xLjY5LTcuNzQgNS41Mi05LjUuMzktLjEzLjgyLjA3Ljk2LjQ2Wm0tLjg3IDMuOTJjLTEuNiAxLjI0LTIuNTggMy45Mi0uOTUgNy4xN2EuNzUuNzUgMCAwIDEtMS4zNC42OGMtMS45Mi0zLjgyLS44Ny03LjMgMS4zNy05LjA0YTUuMDcgNS4wNyAwIDAgMSAzLjkyLTEuMDUgNS43MiA1LjcyIDAgMCAxIDMuODEgMi42Ny43NS43NSAwIDEgMS0xLjI1LjgzIDQuMjMgNC4yMyAwIDAgMC0yLjgtMi4wMkEzLjU3IDMuNTcgMCAwIDAgOC4xMiA5Wm03LjYzIDIuOTdhLjc1Ljc1IDAgMSAwLTEuNS4wOGMuMSAxLjkxIDEuMjkgMi45NCAyLjAyIDMuMTdhLjc1Ljc1IDAgMSAwIC40NS0xLjQzIDEuNzIgMS43MiAwIDAgMS0uNS0uNDMgMi40NiAyLjQ2IDAgMCAxLS40Ny0xLjRabS00LjUuNTRhLjc1Ljc1IDAgMCAwLTEuNSAwYzAgMS4wNy4xMyAxLjkuNDUgMi43My4zMi44LjggMS41NSAxLjQ0IDIuNDVhLjc1Ljc1IDAgMSAwIDEuMjItLjg2IDEwLjQgMTAuNCAwIDAgMS0xLjI2LTIuMTQgNS42OSA1LjY5IDAgMCAxLS4zNS0yLjE4Wm0tMS4xMyA0LjY0QzguMDUgMTMuNCA4Ljc4IDExLjU4IDkuNSAxMWExLjQzIDEuNDMgMCAwIDEgMi4zLjcyYy4wNi4yLjEyLjQ0LjE4Ljc3bC4wNC4xN2MuMDguMzguMTguODQuMzMgMS4zLjMuOTUuODQgMS45OSAxLjkzIDIuNzlhLjc1Ljc1IDAgMSAwIC44OS0xLjIxIDMuOTMgMy45MyAwIDAgMS0xLjQtMi4wNGMtLjEyLS4zOS0uMi0uNzctLjI4LTEuMTVsLS4wNC0uMTZjLS4wNi0uMy0uMTMtLjY0LS4yMS0uOTFhMi45MyAyLjkzIDAgMCAwLTQuNjgtMS40NWMtMS42MiAxLjMxLTEuOTIgNC4xMi4yNSA4LjAzYS43NS43NSAwIDAgMCAxLjMxLS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbmdlcnByaW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaW5nZXJwcmludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi43MiAzLjk1YzEuNTMtLjc0IDQuODEtMS40NCA4LjUuOTdhLjUuNSAwIDEgMCAuNTUtLjg0Yy00LjAzLTIuNjMtNy43LTEuOS05LjQ5LTEuMDNhLjUuNSAwIDEgMCAuNDQuOVptLTEuODEuNjRhLjUuNSAwIDAgMS0uMTQuNyA1LjMzIDUuMzMgMCAwIDAtMS4zNCAxLjQ2LjUuNSAwIDAgMS0uODYtLjVjLjI3LS40Ni45NS0xLjM0IDEuNjUtMS44YS41LjUgMCAwIDEgLjY5LjE0Wm01LjU5LS4wNWEuNS41IDAgMSAwIDAgMWMxLjY2IDAgNS41MSAxLjM4IDYuNSA2LjU1YS41LjUgMCAwIDAgMS0uMThjLTEuMS01LjcyLTUuNDMtNy4zNy03LjUtNy4zN1pNOS4zNCAxMC44Yy0uODcuNy0xLjUyIDIuNjkuNTYgNi40NmEuNS41IDAgMCAxLS44Ny40OGMtMi4xNS0zLjg4LTEuNzgtNi41Mi0uMzItNy43MUEyLjY4IDIuNjggMCAwIDEgMTMgMTEuMzVjLjA4LjI2LjE0LjU4LjIuOWwuMDQuMTVjLjA4LjM4LjE3Ljc4LjMgMS4xOC4yNi43OS42NyAxLjU3IDEuNDggMi4xNmEuNS41IDAgMSAxLS42LjggNS4xNyA1LjE3IDAgMCAxLTEuODMtMi42NWMtLjE1LS40Ni0uMjUtLjktLjMzLTEuMjlsLS4wMy0uMTZhOSA5IDAgMCAwLS4xOS0uOCAxLjY4IDEuNjggMCAwIDAtMi43LS44NFptNi4xNiAxLjE3YS41LjUgMCAxIDAtMSAuMDZjLjEgMS44IDEuMjIgMi43NCAxLjg1IDIuOTVhLjUuNSAwIDAgMCAuMy0uOTZjLS4yMi0uMDctMS4wNy0uNjQtMS4xNS0yLjA1Wm0tNC41LjUzYS41LjUgMCAxIDAtMSAwYzAgMS4wNC4xMyAxLjg1LjQ0IDIuNjQuMy43Ny43NyAxLjUgMS40IDIuNGEuNS41IDAgMSAwIC44Mi0uNTggMTAuNjMgMTAuNjMgMCAwIDEtMS4zLTIuMTlBNS45NCA1Ljk0IDAgMCAxIDExIDEyLjVaTTcuOTcgOC43OWMtMS43MiAxLjMzLTIuNyA0LjE0LTEuMDIgNy40OWEuNS41IDAgMCAxLS45LjQ0QzQuMTggMTMgNS4yMiA5LjY1IDcuMzUgOGE0LjgyIDQuODIgMCAwIDEgMy43My0xIDUuNDcgNS40NyAwIDAgMSAzLjY1IDIuNTYuNS41IDAgMSAxLS44NC41NSA0LjQ4IDQuNDggMCAwIDAtMi45Ny0yLjEyIDMuODIgMy44MiAwIDAgMC0yLjk1LjhabS40OS0zYS41LjUgMCAwIDAtLjM1LS45NGMtNC42OCAxLjctNS43OSA2LjE5LTUuMzUgOS4yMmEuNS41IDAgMCAwIC45OS0uMTRjLS40LTIuNzQuNjItNi42NSA0LjctOC4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDExLjc1YzAtLjU0LjA2LTEuMDcuMTktMS41OWE1LjgxIDUuODEgMCAwIDEgLjg2LTEuOTMuNjUuNjUgMCAwIDEgLjE4LS4xNy41LjUgMCAwIDEgLjQ4IDBjLjA4LjA0LjE0LjEuMTguMTdsMS4wNCAxLjdjLjA1LjA4LjEuMTQuMTkuMTguMDguMDQuMTYuMDYuMjYuMDcuMTggMCAuMzItLjA3LjQyLS4yYS43Ni43NiAwIDAgMCAuMDYtLjgyYy0uMjEtLjQ2LS4zOS0uOTEtLjUyLTEuMzZhNC45MiA0LjkyIDAgMCAxIC4xMi0zLjE3Yy4yMi0uNS41Mi0uOTIuOTItMS4yNy4zOS0uMzUuODQtLjY0IDEuMzYtLjg2QTguMDkgOC4wOSAwIDAgMSAxMS41IDJjLjEyIDAgLjIzLjA0LjMyLjEyLjEyLjEuMTguMjMuMTguMzggMCAuNzguMTMgMS41My40IDIuMjMuMjYuNzEuNjMgMS4zOCAxLjEgMmwuODcgMS4xM2MuMjkuMzguNTYuNzguOCAxLjE5LjI1LjQuNDQuODQuNiAxLjI4LjE1LjQ0LjIyLjkxLjIzIDEuNDJhNi41IDYuNSAwIDAgMS0uOCAzLjEgNi41NyA2LjU3IDAgMCAxLTIuMTIgMi4yNyA1Ljc0IDUuNzQgMCAwIDEtNC43MS42NSA1LjYgNS42IDAgMCAxLTEuNDQtLjY0IDYuNSA2LjUgMCAwIDEtMi4xMy0yLjI3IDYuMiA2LjIgMCAwIDEtLjgtMy4xWlwiXSk7XG5leHBvcnQgY29uc3QgRmlyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAxMS43NWMwLS41NC4wNi0xLjA3LjE5LTEuNTlhNS44MSA1LjgxIDAgMCAxIC44Ni0xLjkzLjY1LjY1IDAgMCAxIC4xOC0uMTcuNS41IDAgMCAxIC40OCAwYy4wOC4wNC4xNC4xLjE4LjE3bDEuMDQgMS43Yy4wNS4wOC4xLjE0LjE5LjE4LjA4LjA0LjE2LjA2LjI2LjA3LjE4IDAgLjMyLS4wNy40Mi0uMmEuNzYuNzYgMCAwIDAgLjA2LS44MmMtLjIxLS40Ni0uMzktLjkxLS41Mi0xLjM2YTQuOTIgNC45MiAwIDAgMSAuMTItMy4xN2MuMjItLjUuNTItLjkyLjkyLTEuMjcuMzktLjM1Ljg0LS42NCAxLjM2LS44NkE4LjA5IDguMDkgMCAwIDEgMTEuNSAyYy4xMiAwIC4yMy4wNC4zMi4xMi4xMi4xLjE4LjIzLjE4LjM4IDAgLjc4LjEzIDEuNTMuNCAyLjIzLjI2LjcxLjYzIDEuMzggMS4xIDJsLjg3IDEuMTNjLjI5LjM4LjU2Ljc4LjggMS4xOS4yNS40LjQ0Ljg0LjYgMS4yOC4xNS40NC4yMi45MS4yMyAxLjQyYTYuNSA2LjUgMCAwIDEtLjggMy4xIDYuNTcgNi41NyAwIDAgMS0yLjEyIDIuMjcgNS43NCA1Ljc0IDAgMCAxLTQuNzEuNjUgNS42IDUuNiAwIDAgMS0xLjQ0LS42NCA2LjUgNi41IDAgMCAxLTIuMTMtMi4yNyA2LjIgNi4yIDAgMCAxLS44LTMuMVptMTEtLjA1YzAtLjQtLjA4LS44LS4yMy0xLjItLjE1LS4zOC0uMzQtLjc3LS41Ny0xLjE0YTExLjQgMTEuNCAwIDAgMC0uNzUtMS4wNmMtLjI3LS4zNC0uNTItLjY2LS43NS0uOThhOC43NiA4Ljc2IDAgMCAxLTEuMTQtMS45OCA3Ljc5IDcuNzkgMCAwIDEtLjU0LTIuMjNjLS40Mi4xLS44LjI1LTEuMTUuNDMtLjM1LjE4LS42Ni40LS45Mi42N3MtLjQ2LjU4LS42Ljk0Yy0uMTQuMzYtLjIxLjc3LS4yMiAxLjIyIDAgLjQyLjA2LjgyLjE3IDEuMi4xLjM4LjI1Ljc2LjQ0IDEuMTMuMDcuMTMuMTIuMjcuMTUuNGwuMDYuNDVjMCAuMjItLjA0LjQyLS4xMS42MmExLjU0IDEuNTQgMCAwIDEtMi43Ni4yOCAxNy4yIDE3LjIgMCAwIDEtLjYtLjk2IDUuNDUgNS40NSAwIDAgMCAxLjk1IDYuNzcgNC44NCA0Ljg0IDAgMCAwIDcuMi0yLjU1Yy4yMy0uNjQuMzYtMS4zMS4zNy0yLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgRmlyZXBsYWNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpcmVwbGFjZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTcgNyAwIDAgMC03IDd2NWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWOWE3IDcgMCAwIDAtNy03Wk00IDlhNiA2IDAgMSAxIDEyIDB2NWgtMy41Yy42Mi0uNjIgMS0xLjQ4IDEtMi41IDAtMS4xMy0uNjMtMS45Ny0xLjE3LTIuN2wtLjEzLS4xNmMtLjYtLjgtMS4xLTEuNTctMS4xLTIuNzFhLjUuNSAwIDAgMC0uNzYtLjQzYy0xLjQuODUtMS40NSAyLjE3LTEuMzkgM2wtLjQyLS4zN2EuNS41IDAgMCAwLS42NiAwaC0uMDFsLS4wMi4wMmEyLjIzIDIuMjMgMCAwIDAtLjIuMjJBNC44NSA0Ljg1IDAgMCAwIDYuNSAxMS41Yy0uMDEgMS4wMi4zNyAxLjg4IDEgMi41SDRWOVptLTEuNSA3YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlyZXBsYWNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDlhNyA3IDAgMCAxIDE0IDB2NWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY5Wm03LTZhNiA2IDAgMCAwLTYgNnY1aDMuNWMtLjYyLS42Mi0xLTEuNDgtMS0yLjVhNC44NSA0Ljg1IDAgMCAxIDEuMzQtMy4zNWwuMDItLjAxdi0uMDFhLjUuNSAwIDAgMSAuNjUtLjAyYy4wMi0uMjguMDgtLjU4LjItLjkuMjUtLjYzLjc1LTEuMjQgMS42NS0xLjcyYS41LjUgMCAwIDEgLjc0LjQ0YzAgMS4xNC41IDEuOSAxLjEgMi43bC4xMy4xOGMuNTQuNzIgMS4xNyAxLjU2IDEuMTcgMi42OSAwIDEuMDItLjM4IDEuODgtMSAyLjVIMTZWOWE2IDYgMCAwIDAtNi02Wk04LjIyIDkuMjVhMy44NSAzLjg1IDAgMCAwLS43MiAyLjI1YzAgMS40OSAxLjEgMi41IDIuNSAyLjVzMi41LTEuMDEgMi41LTIuNWMwLS43OS0uNDMtMS4zNy0xLjAyLTIuMTZsLS4wOC0uMWMtLjQ4LS42NS0xLTEuNC0xLjIxLTIuNDJhMi4wMyAyLjAzIDAgMCAwLS42NiAxLjg4YzAgLjA5LjAyLjE2LjAzLjIzdi4wNWwuMDMuMTVjMCAuMDUuMDIuMTUgMCAuMjUgMCAuMDUtLjAyLjE3LS4xMi4yOC0uMTIuMTUtLjMuMi0uNDQuMmEuNTkuNTkgMCAwIDEtLjI1LS4wOSAyLjcyIDIuNzIgMCAwIDEtLjMyLS4yN2wtLjI0LS4yNVpNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpeGVkV2lkdGhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRml4ZWRXaWR0aEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgM2MuMjggMCAuNS4yMi41LjVWNWg1LjVWMy41YS41LjUgMCAwIDEgMSAwVjVIMTZWMy41YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMS0xIDBWNmgtNS41djEuNWEuNS41IDAgMCAxLTEgMFY2SDR2MS41YS41LjUgMCAwIDEtMSAwdi00YzAtLjI4LjIyLS41LjUtLjVabTYgNkg1YTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDQuNVY5Wm0xIDhIMTVhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC00LjV2OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpeGVkV2lkdGhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpeGVkV2lkdGhSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAzYy4yOCAwIC41LjIyLjUuNVY1aDUuNVYzLjVhLjUuNSAwIDAgMSAxIDBWNUgxNlYzLjVhLjUuNSAwIDAgMSAxIDB2NGEuNS41IDAgMCAxLTEgMFY2aC01LjV2MS41YS41LjUgMCAwIDEtMSAwVjZINHYxLjVhLjUuNSAwIDAgMS0xIDB2LTRjMC0uMjguMjItLjUuNS0uNVpNMyAxMWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNFptNy41IDVIMTVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC00LjV2NlptLTEtNkg1YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDQuNXYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDEzaDExLjVhLjUuNSAwIDAgMCAuNDItLjc4TDE0LjEgOGwyLjgyLTQuMjJBLjUuNSAwIDAgMCAxNi41IDNoLTEyYS41LjUgMCAwIDAtLjUuNXYxNGEuNS41IDAgMCAwIDEgMFYxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMTNoMTEuNWEuNS41IDAgMCAwIC40Mi0uNzhMMTQuMSA4bDIuODItNC4yMkEuNS41IDAgMCAwIDE2LjUgM2gtMTJhLjUuNSAwIDAgMC0uNS41djE0YS41LjUgMCAwIDAgMSAwVjEzWm0wLTFWNGgxMC41N2wtMi40OSAzLjcyYS41LjUgMCAwIDAgMCAuNTZMMTUuNTcgMTJINVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdDaGVja2VyZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0NoZWNrZXJlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEwLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djEwLjVjMCAuNDEtLjM0Ljc1LS43NS43NUg2djIuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xNFpNNiAxM2gzdi0zaDN2M2gzdi0zaC0zVjdoM1Y0aC0zdjNIOVY0SDZ2M2gzdjNINnYzWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ0NoZWNrZXJlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0NoZWNrZXJlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzLjVjMC0uMjguMjItLjUuNS0uNWgxMGMuMjggMCAuNS4yMi41LjV2MTBhLjUuNSAwIDAgMS0uNS41SDZ2My41YS41LjUgMCAwIDEtMSAwdi0xNFpNNiAxM2gzdi0zaDN2M2gzdi0zaC0zVjdoM1Y0aC0zdjNIOVY0SDZ2M2gzdjNINnYzWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ0Nsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDEzaDQuMmE1LjUgNS41IDAgMCAxIDUuNTctNGwtLjY3LTEgMi44Mi00LjIyQS41LjUgMCAwIDAgMTYuNSAzaC0xMmEuNS41IDAgMCAwLS41LjV2MTRhLjUuNSAwIDAgMCAxIDBWMTNabTE0IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdDbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAxM2g0LjJjLjEtLjM1LjI0LS42OC40LTFINVY0aDEwLjU3bC0yLjQ5IDMuNzJhLjUuNSAwIDAgMCAwIC41NmwuNTMuOEE1LjU0IDUuNTQgMCAwIDEgMTQuNzcgOUwxNC4xIDhsMi44Mi00LjIyQS41LjUgMCAwIDAgMTYuNSAzaC0xMmEuNS41IDAgMCAwLS41LjV2MTRhLjUuNSAwIDAgMCAxIDBWMTNabTE0IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w0IDQuNzFWMTcuNWEuNS41IDAgMCAwIDEgMFYxM2g3LjNsNC44NSA0Ljg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xNi41IDEzaC0xLjM4bC0xMC0xMEgxNi41Yy40IDAgLjY0LjQ1LjQyLjc4TDE0LjEgOGwyLjgyIDQuMjJhLjUuNSAwIDAgMS0uNDIuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDQgNC43MVYxNy41YS41LjUgMCAwIDAgMSAwVjEzaDcuM2w0Ljg1IDQuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTExLjMgMTJINVY1LjdsNi4zIDYuM1ptNC4yOCAwaC0xLjQ1bDEgMWgxLjM4YS41LjUgMCAwIDAgLjQyLS43OEwxNC4xIDhsMi44Mi00LjIyQS41LjUgMCAwIDAgMTYuNSAzSDUuMTJsMSAxaDkuNDVsLTIuNDkgMy43MmEuNS41IDAgMCAwIDAgLjU2TDE1LjU3IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjc1IDMuNzVoMTIuNXYxLjVIMy43NXYtMS41WlwiLCBcIk0zLjc1IDVoMTIuNXYxLjVIMy43NVY1WlwiLCBcIk0zLjc1IDZoMTIuNXYxLjc1SDMuNzVWNlpcIiwgXCJNMy43NSA3LjVoMTIuNXYxLjc1SDMuNzVWNy41WlwiLCBcIk0zLjc1IDloMTIuNXYxLjI1SDMuNzVWOVpcIiwgXCJNMy43NSAxMGgxMi41djEuMjVIMy43NVYxMFpcIiwgXCJNMy41IDNoMTNjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41SDR2NS41YS41LjUgMCAwIDEtMSAwdi0xNGMwLS4yOC4yMi0uNS41LS41Wk00IDR2N2gxMlY0SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVJbnRlcnNleEluY2x1c2l2ZVByb2dyZXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZUludGVyc2V4SW5jbHVzaXZlUHJvZ3Jlc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy43NSAzLjc1aDEyLjV2MS41SDMuNzV2LTEuNVpcIiwgXCJNMy43NSA1aDEyLjV2MS41SDMuNzVWNVpcIiwgXCJNMy43NSA2aDEyLjV2MS43NUgzLjc1VjZaXCIsIFwiTTMuNzUgNy41aDEyLjV2MS43NUgzLjc1VjcuNVpcIiwgXCJNMy43NSA5aDEyLjV2MS4yNUgzLjc1VjlaXCIsIFwiTTMuNzUgMTBoMTIuNXYxLjI1SDMuNzVWMTBaXCIsIFwibTEzLjUgNy41LTQtNEg3djhoMi41bDQtNFpcIiwgXCJtMTEuNSA3LjUtNC00SDV2OGgyLjVsNC00WlwiLCBcIm0xMC41IDcuNS00LTRINHY4aDIuNWw0LTRaXCIsIFwibTkuNSA3LjUtNC00SDR2OGgxLjVsNC00WlwiLCBcIm04LjUgNy41LTQtNGgtMXY4aDFsNC00WlwiLCBcIk01Ljc1IDdhLjUuNSAwIDEgMCAwIDEgLjUuNSAwIDAgMCAwLTFabS0xLjUuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpcIiwgXCJNOS41IDEySDR2NS41YS41LjUgMCAwIDEtMSAwdi0xNGMwLS4yOC4yMi0uNS41LS41aDEzYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtN1ptLS4yLThINHY3aDUuM2wzLjUtMy41TDkuMyA0Wm0xLjQgMCAzLjE1IDMuMTVjLjIuMi4yLjUgMCAuN0wxMC43MSAxMUgxNlY0aC01LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQaGlsYWRlbHBoaWFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlUGhpbGFkZWxwaGlhRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNzUgMy43NWgxMi41djEuNUgzLjc1elwiLCBcIk0zLjc1IDVoMTIuNXYxLjVIMy43NXpcIiwgXCJNMy43NSA2aDEyLjV2MS41SDMuNzV6XCIsIFwiTTMuNzUgN2gxMi41djEuNUgzLjc1elwiLCBcIk0zLjc1IDhoMTIuNXYxLjVIMy43NXpcIiwgXCJNMy43NSA5aDEyLjV2MS41SDMuNzV6XCIsIFwiTTMuNzUgMTBoMTIuNXYxLjVIMy43NXpcIiwgXCJNMy41IDNoMTNjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41SDR2NS41YS41LjUgMCAwIDEtMSAwdi0xNGMwLS4yOC4yMi0uNS41LS41Wk00IDR2N2gxMlY0SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQcm9ncmVzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQcm9ncmVzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjc1IDMuNzVoMTIuNXYxLjVIMy43NXYtMS41WlwiLCBcIk0zLjc1IDVoMTIuNXYxLjVIMy43NVY1WlwiLCBcIk0zLjc1IDZoMTIuNXYxLjc1SDMuNzVWNlpcIiwgXCJNMy43NSA3LjVoMTIuNXYxLjc1SDMuNzVWNy41WlwiLCBcIk0zLjc1IDloMTIuNXYxLjI1SDMuNzVWOVpcIiwgXCJNMy43NSAxMGgxMi41djEuMjVIMy43NVYxMFpcIiwgXCJtMTEgNy41LTQtNEg0LjV2OEg3bDQtNFpcIiwgXCJtOS41IDcuNS00LTRIM3Y4aDIuNWw0LTRaXCIsIFwibTggNy41LTQtNGgtLjV2OEg0bDQtNFpcIiwgXCJtNi41IDcuNS0zLTN2NmwzLTNaXCIsIFwiTTcuNSAxMkg0djUuNWEuNS41IDAgMCAxLTEgMHYtMTRjMC0uMjguMjItLjUuNS0uNWgxM2MuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVoLTlabS0uMi04SDR2N2gzLjNsMy41LTMuNUw3LjMgNFptMS40IDAgMy4xNSAzLjE1Yy4yLjIuMi41IDAgLjdMOC43MSAxMUgxNlY0SDguN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMjEgMmMtLjQ3IDAtLjg5LjMxLTEuMDIuNzdsLTIuMjUgNy44N2MtLjIuNjguMzIgMS4zNiAxLjAyIDEuMzZoMS4yN2wtMS4xNyA0LjY4Yy0uMjYgMS4wNSAxLjA0IDEuNzggMS44IDFsOC42Ny04Ljg2Yy42NS0uNjguMTktMS44Mi0uNzYtMS44MkgxMi4ybDEuMjYtMy42Yy4yMy0uNjktLjI4LTEuNC0xLTEuNEg3LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMiAyLjc3QzYuMzEgMi4zMSA2LjczIDIgNy4yIDJoNS4yNWMuNzMgMCAxLjI0LjcxIDEgMS40TDEyLjIyIDdoMi41NmMuOTUgMCAxLjQgMS4xNC43NyAxLjgxbC04LjY4IDguODZjLS43Ni43OS0yLjA2LjA2LTEuOC0xTDYuMjMgMTJINC45NmMtLjcgMC0xLjIxLS42OC0xLjAyLTEuMzZMNi4yIDIuNzdaTTcuMiAzYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuOTFhLjUuNSAwIDAgMSAuNDkuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgOC42OC04Ljg2YS4wNi4wNiAwIDAgMCAuMDEtLjAzdi0uMDVhLjA4LjA4IDAgMCAwLS4wMy0uMDNMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWwyLjIxLTIuMjdhNS41IDUuNSAwIDAgMSA2LjIyLTYuMzVsLjI0LS4yNGMuNjUtLjY4LjE5LTEuODItLjc2LTEuODJoLTIuNTZsMS4yNi0zLjZjLjIzLS42OS0uMjgtMS40LTEtMS40SDcuMlpNMTcgMTguMjRhNC41IDQuNSAwIDEgMS01LTcuNDggNC41IDQuNSAwIDAgMSA1IDcuNDhabS0yLjE1LTYuMWEuNS41IDAgMCAwLS44NS4zNlYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNWEuNS41IDAgMCAwLS4xNS0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMiAyLjc3QzYuMzEgMi4zMSA2LjczIDIgNy4yIDJoNS4yNWMuNzMgMCAxLjI0LjcxIDEuMDEgMS40TDEyLjIgN2gyLjU2Yy45NSAwIDEuNCAxLjE0Ljc3IDEuODFsLS4yNC4yNWE1LjU0IDUuNTQgMCAwIDAtMS4zOC0uMDNsLjktLjkxYS4wNi4wNiAwIDAgMCAuMDEtLjAzdi0uMDVhLjA4LjA4IDAgMCAwLS4wMy0uMDNMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuOTFhLjUuNSAwIDAgMSAuNDkuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgMi44OC0yLjk0YTUuNTggNS41OCAwIDAgMCAuMDUgMS4zN2wtMi4yMSAyLjI2Yy0uNzYuNzktMi4wNi4wNi0xLjgtMUw2LjIzIDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2TDYuMiAyLjc3Wk0xNyAxOC4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41YS41LjUgMCAwIDAtLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoQXV0b0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaEF1dG9GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWw0LjgyLTQuOTMgMS40Mi0zLjc4YTEuNSAxLjUgMCAwIDEgMi42LS4zN2MuMzgtLjY4LS4wOC0xLjYtLjkzLTEuNkgxMi4ybDEuMjYtMy42Yy4yMy0uNjktLjI4LTEuNC0xLTEuNEg3LjJabTcuMjkgN2MuMiAwIC40LjEzLjQ3LjMybDMgOGEuNS41IDAgMSAxLS45NC4zNmwtMS0yLjY4aC0zLjA2bC0xIDIuNjhhLjUuNSAwIDAgMS0uOTQtLjM2bDMtOEEuNS41IDAgMCAxIDE0LjUgOVptMS4xNSA1LTEuMTUtMy4wOEwxMy4zNSAxNGgyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaEF1dG9SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoQXV0b1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4yIDIuNzdDNi4zMSAyLjMxIDYuNzMgMiA3LjIgMmg1LjI1Yy43MyAwIDEuMjQuNzEgMSAxLjRMMTIuMjIgN2gyLjU2Yy44NSAwIDEuMy45Mi45MyAxLjZhMS41IDEuNSAwIDAgMC0uODgtLjU3LjA3LjA3IDAgMCAwLS4wMi0uMDJMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuOTFhLjUuNSAwIDAgMSAuNDkuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgNi40LTYuNTUtLjg2IDIuMzItNC44MiA0LjkyYy0uNzYuNzktMi4wNi4wNi0xLjgtMUw2LjIzIDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2TDYuMiAyLjc3Wk0xNC41IDljLjIgMCAuNC4xMy40Ny4zMmwzIDhhLjUuNSAwIDEgMS0uOTQuMzZsLTEtMi42OGgtMy4wNmwtMSAyLjY4YS41LjUgMCAwIDEtLjk0LS4zNmwzLThBLjUuNSAwIDAgMSAxNC41IDlabTEuMTUgNS0xLjE1LTMuMDhMMTMuMzUgMTRoMi4zWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWwyLjIxLTIuMjdhNS41IDUuNSAwIDAgMSA2LjIyLTYuMzVsLjI0LS4yNGMuNjUtLjY4LjE4LTEuODItLjc2LTEuODJIMTIuMmwxLjI3LTMuNmMuMjMtLjY5LS4yOC0xLjQtMS4wMS0xLjRINy4yMVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMTkgMi43N2MuMTMtLjQ2LjU1LS43NyAxLjAyLS43N2g1LjI1Yy43MyAwIDEuMjQuNzEgMSAxLjRMMTIuMiA3aDIuNTdjLjk0IDAgMS40IDEuMTQuNzYgMS44MWwtLjI0LjI1YTUuNTUgNS41NSAwIDAgMC0xLjM3LS4wM2wuOS0uOTFhLjA2LjA2IDAgMCAwIC4wMS0uMDN2LS4wNWEuMDguMDggMCAwIDAtLjAzLS4wM0wxNC43NyA4SDExLjVhLjUuNSAwIDAgMS0uNDctLjY3bDEuNDktNC4yNWEuMDYuMDYgMCAwIDAtLjA2LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYy0uMDEuMDQuMDIuMDguMDYuMDhoMS45YS41LjUgMCAwIDEgLjUuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMi0uMDIgMi44OS0yLjk1YTUuNTcgNS41NyAwIDAgMCAuMDUgMS4zOGwtMi4yMiAyLjI2Yy0uNzUuNzktMi4wNS4wNi0xLjgtMUw2LjI0IDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2bDIuMjUtNy44N1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaEZsb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hGbG93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMjEgMmMtLjQ3IDAtLjg5LjMxLTEuMDIuNzdsLTIuMjUgNy44N2MtLjIuNjguMzIgMS4zNiAxLjAyIDEuMzZoMS4yN2wtMS4xNyA0LjY4Yy0uMjYgMS4wNSAxLjA0IDEuNzggMS44IDFsNC44MS00LjkyLS4yNS0uNzZoLS4xOGEzIDMgMCAxIDEgLjU5LTNBMi41IDIuNSAwIDAgMSAxNCAxMC4zN2wxLjUyLTEuNTVjLjY1LS42OC4xOS0xLjgyLS43Ni0xLjgyaC0yLjU2bDEuMjYtMy42Yy4yMy0uNjktLjI4LTEuNC0xLTEuNEg3LjJabTEwLjcyIDEzLjc3QTIuMDEgMi4wMSAwIDAgMCAxOSAxNGEyIDIgMCAwIDAtMy43My0xaC0xLjA1YS41LjUgMCAwIDEtLjQ3LS4zNGwtLjU1LTEuNjNBMS41IDEuNSAwIDAgMCAxMS43OCAxMEgxMWEyIDIgMCAxIDAtLjI3IDFoMS4wNWMuMjEgMCAuNC4xNC40Ny4zNGwuNTUgMS42M1YxM2ExLjUgMS41IDAgMCAwIDEuNDIgMUgxNWEyIDIgMCAwIDAgMi45MyAxLjc3Wm0tLjQ0LS45YTEgMSAwIDAgMS0xLjQ5LS44NlYxNGExIDEgMCAwIDEgMi0uMDFWMTRhMSAxIDAgMCAxLS41MS44N1pNMTAgMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hGbG93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaEZsb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMiAyLjc3QzYuMzEgMi4zMSA2LjczIDIgNy4yIDJoNS4yNWMuNzMgMCAxLjI0LjcxIDEuMDEgMS40TDEyLjIgN2gyLjU2Yy45NSAwIDEuNCAxLjE0Ljc3IDEuODFMMTQgMTAuMzhhMi41IDIuNSAwIDAgMC0uNjMtLjc5bDEuNDQtMS40NmEuMDYuMDYgMCAwIDAgLjAxLS4wM3YtLjA1YS4wOC4wOCAwIDAgMC0uMDMtLjAzTDE0Ljc3IDhIMTEuNWEuNS41IDAgMCAxLS40Ny0uNjdsMS41LTQuMjVhLjA2LjA2IDAgMCAwLS4wNy0uMDhINy4yMWEuMDYuMDYgMCAwIDAtLjA2LjA1TDQuOSAxMC45MmMwIC4wNC4wMi4wOC4wNi4wOGgxLjIxYTMgMyAwIDAgMCAxIDEuMzhsLTEuMTQgNC41NHYuMDRsLjAzLjAzLjA0LjAxaC4wMWwuMDMtLjAyIDQuMi00LjNjLjM0LS4xNy42NS0uNC45LS42OGguMThsLjI1Ljc2LTQuODEgNC45MWMtLjc2Ljc5LTIuMDYuMDYtMS44LTFMNi4yMyAxMkg0Ljk2Yy0uNyAwLTEuMjEtLjY4LTEuMDItMS4zNkw2LjIgMi43N1ptMTIuNTIgMTIuMjVBMi4wMSAyLjAxIDAgMCAxIDE3IDE2YTIgMiAwIDAgMS0yLTJoLS43OGExLjUgMS41IDAgMCAxLTEuNDEtMWwtLjAxLS4wMy0uNTUtMS42M2EuNS41IDAgMCAwLS40Ny0uMzRoLTEuMDVhMiAyIDAgMSAxIC4yNy0xaC43OGMuNjQgMCAxLjIyLjQxIDEuNDIgMS4wM2wuNTUgMS42M2MuMDYuMi4yNi4zNC40Ny4zNGgxLjA1YTIgMiAwIDEgMSAzLjQ1IDIuMDJaTTE3IDE1YTEgMSAwIDAgMCAxLTF2LS4wNWExIDEgMCAwIDAtMiAuMDV2LjAyYTEgMSAwIDAgMCAxIC45OFptLTgtNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMS44NiAxMi41NiA1LjI5IDUuM2EuNS41IDAgMCAwIC43LS43MWwtMTUtMTVhLjUuNSAwIDEgMC0uNy43bDMuMTIgMy4xMy0xLjMzIDQuNjZjLS4yLjY4LjMyIDEuMzYgMS4wMiAxLjM2aDEuMjdsLTEuMTcgNC42OGMtLjI2IDEuMDUgMS4wNCAxLjc4IDEuOCAxbDUtNS4xMlptMy42Ny0zLjc0LTIuMjcgMi4zMkw1LjkgMy43OGwuMjktMUM2LjMyIDIuMyA2Ljc0IDIgNy4yMSAyaDUuMjVjLjczIDAgMS4yNC43MSAxIDEuNEwxMi4yIDdoMi41N2MuOTQgMCAxLjQgMS4xNC43NiAxLjgxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjI3IDUuOTggMi4xNSAyLjg1YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC01LjMtNS4yOS01IDUuMTFjLS43NS43OS0yLjA1LjA2LTEuOC0xTDYuMjQgMTJINC45NmMtLjcgMC0xLjIxLS42OC0xLjAyLTEuMzZsMS4zMy00LjY2Wm01Ljg4IDUuODhMNi4wOCA2Ljc5IDQuOSAxMC45MmMtLjAxLjA0LjAyLjA4LjA2LjA4aDEuOWEuNS41IDAgMCAxIC41LjYybC0xLjMzIDUuM3YuMDRsLjAzLjAzLjA0LjAxaC4wMWwuMDItLjAyIDUuMDItNS4xMlptMy42Ni0zLjc0LTIuMjYgMi4zLjcuNzIgMi4yOC0yLjMyYy42NS0uNjguMTgtMS44Mi0uNzYtMS44MkgxMi4ybDEuMjctMy42Yy4yMy0uNjktLjI4LTEuNC0xLjAxLTEuNEg3LjIxYy0uNDcgMC0uODkuMzEtMS4wMi43N0w1LjkgMy43OGwuODEuOC40NC0xLjUzYzAtLjAzLjAzLS4wNS4wNi0uMDVoNS4yNWMuMDQgMCAuMDcuMDQuMDYuMDhsLTEuNSA0LjI1YS41LjUgMCAwIDAgLjQ4LjY3aDMuM2wuMDIuMDQuMDEuMDUtLjAyLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hQbGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoUGxheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjIxIDJjLS40NyAwLS44OS4zMS0xLjAyLjc3bC0yLjI1IDcuODdjLS4yLjY4LjMyIDEuMzYgMS4wMiAxLjM2aDEuMjdsLTEuMTcgNC42OGMtLjI2IDEuMDUgMS4wNCAxLjc4IDEuOCAxbDIuMjEtMi4yN2E1LjUgNS41IDAgMCAxIDYuMjItNi4zNWwuMjQtLjI0Yy42NS0uNjguMTktMS44Mi0uNzYtMS44MmgtMi41NmwxLjI2LTMuNmMuMjMtLjY5LS4yOC0xLjQtMS0xLjRINy4yWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4yOS0uNDQtMi45Ny0xLjY1YS41LjUgMCAwIDAtLjc0LjQ0djMuM2MwIC4zOC40MS42Mi43NC40NGwyLjk3LTEuNjVhLjUuNSAwIDAgMCAwLS44OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoUGxheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hQbGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjIgMi43N0M2LjMxIDIuMzEgNi43MyAyIDcuMiAyaDUuMjVjLjczIDAgMS4yNC43MSAxLjAxIDEuNEwxMi4yIDdoMi41NmMuOTUgMCAxLjQgMS4xNC43NyAxLjgxbC0uMjQuMjVhNS41NCA1LjU0IDAgMCAwLTEuMzgtLjAzbC45LS45MWEuMDYuMDYgMCAwIDAgLjAxLS4wM3YtLjA1YS4wOC4wOCAwIDAgMC0uMDMtLjAzTDE0Ljc3IDhIMTEuNWEuNS41IDAgMCAxLS40Ny0uNjdsMS41LTQuMjVhLjA2LjA2IDAgMCAwLS4wNy0uMDhINy4yMWEuMDYuMDYgMCAwIDAtLjA2LjA1TDQuOSAxMC45MmMwIC4wNC4wMi4wOC4wNi4wOGgxLjkxYS41LjUgMCAwIDEgLjQ5LjYybC0xLjMzIDUuM3YuMDRsLjAzLjAzLjA0LjAxaC4wMWwuMDMtLjAyIDIuODgtMi45NGE1LjU4IDUuNTggMCAwIDAgLjA1IDEuMzdsLTIuMjEgMi4yNmMtLjc2Ljc5LTIuMDYuMDYtMS44LTFMNi4yMyAxMkg0Ljk2Yy0uNyAwLTEuMjEtLjY4LTEuMDItMS4zNkw2LjIgMi43N1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMjktLjQ0LTIuOTctMS42NWEuNS41IDAgMCAwLS43NC40NHYzLjNjMCAuMzguNDEuNjIuNzQuNDRsMi45Ny0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWwyLjIxLTIuMjdhNS41IDUuNSAwIDAgMSA2LjIyLTYuMzVsLjI0LS4yNGMuNjUtLjY4LjE4LTEuODItLjc2LTEuODJIMTIuMmwxLjI3LTMuNmMuMjMtLjY5LS4yOC0xLjQtMS4wMS0xLjRINy4yMVptNC44NiA5LjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIDAgMS4wMmwuMzUuMDhBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4xOSAyLjc3Yy4xMy0uNDYuNTUtLjc3IDEuMDItLjc3aDUuMjVjLjczIDAgMS4yNC43MSAxIDEuNEwxMi4yIDdoMi41N2MuOTQgMCAxLjQgMS4xNC43NiAxLjgxbC0uMjQuMjVhNS41NSA1LjU1IDAgMCAwLTEuMzctLjAzbC45LS45MWEuMDYuMDYgMCAwIDAgLjAxLS4wM3YtLjA1YS4wOC4wOCAwIDAgMC0uMDMtLjAzTDE0Ljc3IDhIMTEuNWEuNS41IDAgMCAxLS40Ny0uNjdsMS40OS00LjI1YS4wNi4wNiAwIDAgMC0uMDYtLjA4SDcuMjFhLjA2LjA2IDAgMCAwLS4wNi4wNUw0LjkgMTAuOTJjLS4wMS4wNC4wMi4wOC4wNi4wOGgxLjlhLjUuNSAwIDAgMSAuNS42MmwtMS4zMyA1LjN2LjA0bC4wMy4wMy4wNC4wMWguMDFsLjAyLS4wMiAyLjg5LTIuOTVhNS41NyA1LjU3IDAgMCAwIC4wNSAxLjM4bC0yLjIyIDIuMjZjLS43NS43OS0yLjA1LjA2LTEuOC0xTDYuMjQgMTJINC45NmMtLjcgMC0xLjIxLS42OC0xLjAyLTEuMzZsMi4yNS03Ljg3Wm01Ljg4IDguNjdhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4yOS4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTcGFya2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMjEgMmMtLjQ3IDAtLjg5LjMxLTEuMDIuNzdsLTIuMjUgNy44N2MtLjIuNjguMzIgMS4zNiAxLjAyIDEuMzZoMS4yN2wtMS4xNyA0LjY4Yy0uMjYgMS4wNSAxLjA0IDEuNzggMS44IDFsMy4zNC0zLjQyYTEuMiAxLjIgMCAwIDAtLjE2LS4wN2wtMS4wOS0uMzVhMS40MiAxLjQyIDAgMCAxIDAtMi42OGwuMDItLjAxIDEuMDctLjM1YTEuMiAxLjIgMCAwIDAgLjc0LS43NmwuMzYtMS4xQTEuNDIgMS40MiAwIDAgMSAxMi40OCA4aC4wMmExLjQyIDEuNDIgMCAwIDEgMS4zNC45NWwuMDEuMDIuMzUgMS4wNy4wMy4xIDEuMy0xLjMyYy42NS0uNjguMTktMS44Mi0uNzYtMS44MkgxMi4ybDEuMjYtMy42Yy4yMy0uNjktLjI4LTEuNC0xLTEuNEg3LjJabTUuNjcgNy4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIyIDIuMjIgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoU3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTcGFya2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjIgMi43N0M2LjMxIDIuMzEgNi43MyAyIDcuMiAyaDUuMjVjLjczIDAgMS4yNC43MSAxLjAxIDEuNEwxMi4yIDdoMi41NmMuOTUgMCAxLjQgMS4xNC43NyAxLjgxbC0xLjMgMS4zM2ExLjIzIDEuMjMgMCAwIDEtLjA0LS4xbC0uMzItLjk3Ljk0LS45NWEuMDYuMDYgMCAwIDAgLjAxLS4wM3YtLjA1YS4wOC4wOCAwIDAgMC0uMDMtLjAzTDE0Ljc3IDhIMTEuNWEuNS41IDAgMCAxLS40Ny0uNjdsMS41LTQuMjVhLjA2LjA2IDAgMCAwLS4wNy0uMDhINy4yMWEuMDYuMDYgMCAwIDAtLjA2LjA1TDQuOSAxMC45MmMwIC4wNC4wMi4wOC4wNi4wOGgxLjkxYS41LjUgMCAwIDEgLjQ5LjYybC0xLjMzIDUuM3YuMDRsLjAzLjAzLjA0LjAxaC4wMWwuMDMtLjAyIDMtMy4wOC45LjNjLjA2LjAxLjEuMDMuMTYuMDZsLTMuMzQgMy40MWMtLjc2Ljc5LTIuMDYuMDYtMS44LTFMNi4yMyAxMkg0Ljk2Yy0uNyAwLTEuMjEtLjY4LTEuMDItMS4zNkw2LjIgMi43N1ptNi42OCA2LjUxLjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMTggMi4xOCAwIDAgMC0uNjUtLjk4IDIuMiAyLjIgMCAwIDAtLjc1LS40M2wtMS4wNy0uMzRhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hsaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy45NiAxLjE3Yy4yNyAwIC41LjIyLjUuNXYuODNhLjUuNSAwIDEgMS0xIDB2LS44M2MwLS4yOC4yMi0uNS41LS41Wm0zLjkuOThjLjE5LjIuMTkuNSAwIC43bC0xLjUgMS41YS41LjUgMCAxIDEtLjcxLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBaTTcgNS4ydjIuNThsNS4yIDUuMmgyLjZMNyA1LjIyWm04LjcgNy4yOSAxLjEtMS4wOWEyIDIgMCAwIDAgMC0yLjgyTDExLjQgMy4yYTIgMiAwIDAgMC0yLjgyIDBMNy41IDQuMjlsOC4yIDguMlptLTQuNy43TDYuOCA5bC00LjEgNC4wOWEyIDIgMCAwIDAgMCAyLjgyTDQuMSAxNy4zYTIgMiAwIDAgMCAyLjgyIDBMMTEgMTMuMjFabS0zLjE1LS4zNS0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFhLjUuNSAwIDEgMSAuNy43Wk0xNyA2LjA1YzAtLjI5LjIyLS41LjUtLjVoLjgzYS41LjUgMCAxIDEgMCAxaC0uODNhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNobGlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjQ2IDEuNjdhLjUuNSAwIDEgMC0xIDB2LjgzYS41LjUgMCAwIDAgMSAwdi0uODNabTMuNCAxLjE4YS41LjUgMCAwIDAtLjcxLS43bC0xLjUgMS41YS41LjUgMCAwIDAgLjcuN2wxLjUtMS41Wm0tMTAgMTBhLjUuNSAwIDEgMC0uNzEtLjdsLTEgMWEuNS41IDAgMSAwIC43LjdsMS0xWk03IDV2My44bC00LjMgNC4yOWEyIDIgMCAwIDAgMCAyLjgyTDQuMSAxNy4zYTIgMiAwIDAgMCAyLjgyIDBsNC4zLTQuM0gxNWEuNS41IDAgMCAwIC4zNS0uMTRsMS40NC0xLjQ0YTIgMiAwIDAgMCAwLTIuODJMMTEuNDEgMy4yYTIgMiAwIDAgMC0yLjgyIDBMNy4xNSA0LjY1QS41LjUgMCAwIDAgNyA1Wk05LjMgMy45YTEgMSAwIDAgMSAxLjQgMEwxNi4xIDkuM2ExIDEgMCAwIDEgMCAxLjQybC0xLjEgMS4wOEw4LjIyIDVsMS4wOC0xLjA4Wk04IDYuMjEgMTMuOCAxMmgtMi42TDggOC44VjYuMlptLS41IDMuNSAyLjggMi43OS00LjEgNC4wOWExIDEgMCAwIDEtMS40IDBMMy40IDE1LjJhMSAxIDAgMCAxIDAtMS40Mkw3LjUgOS43MVptMTAtNC4xN2EuNS41IDAgMSAwIDAgMWguODNhLjUuNSAwIDEgMCAwLTFoLS44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hsaWdodE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDE1IDE1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xNi44IDExLjRsLTEuMDggMS4wOUw3LjUgNC4zbDEuMDktMS4xYTIgMiAwIDAgMSAyLjgyIDBMMTYuOCA4LjZhMiAyIDAgMCAxIDAgMi44MlpNNi44IDkgMTEgMTMuMmwtNC4wOSA0LjFhMiAyIDAgMCAxLTIuODIgMEwyLjcgMTUuOWEyIDIgMCAwIDEgMC0yLjgyTDYuNzkgOVptLjA2IDQuODUgMS0xYS41LjUgMCAxIDAtLjctLjdsLTEgMWEuNS41IDAgMSAwIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaGxpZ2h0T2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaGxpZ2h0T2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDcgNy43MXYxLjA4bC00LjMgNC4zYTIgMiAwIDAgMCAwIDIuODJMNC4xIDE3LjNhMiAyIDAgMCAwIDIuODIgMGw0LjMtNC4yOWgxLjA4bDQuODYgNC44NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptMTIuNjcgOS4xMy0xLjA2IDEuMDYuNjUuNjVhLjUuNSAwIDAgMCAuMjQtLjE0bDEuNDQtMS40NGEyIDIgMCAwIDAgMC0yLjgyTDExLjQxIDMuMmEyIDIgMCAwIDAtMi44MiAwTDcuMTUgNC42NWEuNS41IDAgMCAwLS4xNC4yNGwuNjUuNjVMOS4zIDMuOTFhMSAxIDAgMCAxIDEuNDIgMGw1LjM4IDUuMzhhMSAxIDAgMCAxIDAgMS40MmwtLjU3LjU3Wm0tNy42NyAxLjU3YS41LjUgMCAxIDAtLjctLjdsLTEgMWEuNS41IDAgMSAwIC43LjdsMS0xWk03LjUgOS43MWwyLjggMi43OS00LjEgNC4wOWExIDEgMCAwIDEtMS40IDBMMy40IDE1LjJhMSAxIDAgMCAxIDAtMS40Mkw3LjUgOS43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBIb3Jpem9udGFsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBIb3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3Ljg4IDE1LjY2YS43NS43NSAwIDAgMS0uNjMuMzRoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyLjc1YS43NS43NSAwIDAgMSAxLjQ0LS4zbDUuNSAxMi41Yy4xLjIzLjA4LjUtLjA2LjcxWk0xMi41IDYuMzJ2OC4xOGgzLjZsLTMuNi04LjE4Wk0yLjUgMTZhLjUuNSAwIDAgMS0uNDUtLjcxbDYtMTNBLjUuNSAwIDAgMSA5IDIuNXYxM2EuNS41IDAgMCAxLS41LjVoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwSG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcEhvcml6b250YWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjkyIDE1Ljc3YS41LjUgMCAwIDEtLjQyLjIzaC02YS41LjUgMCAwIDEtLjUtLjV2LTEzYS41LjUgMCAwIDEgLjk1LS4ybDYgMTNhLjUuNSAwIDAgMS0uMDMuNDdaTTEyIDQuNzdWMTVoNC43MkwxMiA0Ljc4Wk0yLjUgMTZhLjUuNSAwIDAgMS0uNDUtLjcxbDYtMTNBLjUuNSAwIDAgMSA5IDIuNXYxM2EuNS41IDAgMCAxLS41LjVoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwVmVydGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcFZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjY2IDIuMTJjLjIxLjE0LjM0LjM4LjM0LjYzdjUuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDIuNzVhLjc1Ljc1IDAgMCAxLS4zLTEuNDRsMTIuNS01LjVjLjIzLS4xLjUtLjA4LjcxLjA2Wk02LjMyIDcuNWg4LjE4VjMuOUw2LjMyIDcuNVptOS42OCAxMGEuNS41IDAgMCAxLS43MS40NWwtMTMtNkEuNS41IDAgMCAxIDIuNSAxMWgxM2MuMjggMCAuNS4yMi41LjV2NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBWZXJ0aWNhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcFZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS43NyAyLjA4Yy4xNC4xLjIzLjI1LjIzLjQydjZhLjUuNSAwIDAgMS0uNS41aC0xM2EuNS41IDAgMCAxLS4yLS45NWwxMy02YS41LjUgMCAwIDEgLjQ3LjAzWk00Ljc3IDhIMTVWMy4yOEw0Ljc4IDhaTTE2IDE3LjVhLjUuNSAwIDAgMS0uNzEuNDVsLTEzLTZBLjUuNSAwIDAgMSAyLjUgMTFoMTNjLjI4IDAgLjUuMjIuNS41djZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuMDQgNy41SDEyYy0uODMgMC0xLjUuNjctMS41IDEuNXYyQTIuNSAyLjUgMCAwIDEgOCAxMy41aC0uMDRhMyAzIDAgMSAxIDAtMUg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY5QTIuNSAyLjUgMCAwIDEgMTIgNi41aC4wNGEzIDMgMCAxIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgNWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabS0yLjk2IDEuNWEzIDMgMCAxIDEgMCAxSDEyYy0uODMgMC0xLjUuNjctMS41IDEuNXYyQTIuNSAyLjUgMCAwIDEgOCAxMy41aC0uMDRhMyAzIDAgMSAxIDAtMUg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY5QTIuNSAyLjUgMCAwIDEgMTIgNi41aC4wNFpNNSAxMWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93Y2hhcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoMkM3LjMzIDMgOCAzLjY3IDggNC41djJDOCA3LjMzIDcuMzMgOCA2LjUgOEg2djMuODRhMSAxIDAgMCAxIC4yLjE2TDggMTMuOGExIDEgMCAwIDEgLjE2LjJIMTJ2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE1SDguMTZhMSAxIDAgMCAxLS4xNi4yTDYuMiAxN2ExIDEgMCAwIDEtMS40IDBMMyAxNS4yYTEgMSAwIDAgMSAwLTEuNEw0LjggMTJhMSAxIDAgMCAxIC4yLS4xNlY4aC0uNUExLjUgMS41IDAgMCAxIDMgNi41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd2NoYXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbG93Y2hhcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MkMzIDcuMzMgMy42NyA4IDQuNSA4SDV2My44NGExIDEgMCAwIDAtLjIuMTZMMyAxMy44YTEgMSAwIDAgMCAwIDEuNEw0LjggMTdhMSAxIDAgMCAwIDEuNCAwTDggMTUuMmExIDEgMCAwIDAgLjE2LS4ySDEydi41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVIOC4xNmExIDEgMCAwIDAtLjE2LS4yTDYuMiAxMmExIDEgMCAwIDAtLjItLjE2VjhoLjVDNy4zMyA4IDggNy4zMyA4IDYuNXYtMkM4IDMuNjcgNy4zMyAzIDYuNSAzaC0yWk00IDQuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTJabS0uMyAxMCAxLjgtMS44IDEuOCAxLjgtMS44IDEuOC0xLjgtMS44Wm05LjgtMS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3djaGFydENpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbG93Y2hhcnRDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNC0zLjV2MmMwIC4yOC4yMi41LjUuNUg3djEuOGwtMS4zNSAxLjM1YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMEw5LjIxIDEzSDExdi41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNXYuNUg5LjJMOCAxMC44VjloLjVhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3djaGFydENpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0Q2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDYuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41SDh2MS44TDkuMiAxMkgxMXYtLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41VjEzSDkuMmwtMS4zNSAxLjM1YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdMNyAxMC43OVY5aC0uNWEuNS41IDAgMCAxLS41LS41di0yWk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm04LTdhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbHVlbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1ZW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjcyIDIuMDVhLjUuNSAwIDAgMC0uNDQgMGwtNSAyLjVBLjUuNSAwIDAgMCA1IDV2OS41YzAgLjE4LjEuMzQuMjQuNDNsNSAzYS41LjUgMCAwIDAgLjc2LS40M3YtNC43bDQuNzItMi4zNWEuNS41IDAgMCAwIDAtLjlsLTQuMS0yLjA1IDQuMS0yLjA1YS41LjUgMCAwIDAgMC0uOWwtNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbHVlbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsdWVudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMjggMi4wNWEuNS41IDAgMCAxIC40NCAwbDUgMi41YS41LjUgMCAwIDEgMCAuOWwtNC4xIDIuMDUgNC4xIDIuMDVhLjUuNSAwIDAgMSAwIC45TDExIDEyLjh2NC42OWEuNS41IDAgMCAxLS43Ni40M2wtNS0zQS41LjUgMCAwIDEgNSAxNC41VjVjMC0uMTkuMS0uMzYuMjgtLjQ1bDUtMi41Wk02IDUuMzF2OC45bDQgMi40di0zLjhhMSAxIDAgMCAxIC41NS0uOUwxNC4zOCAxMGwtNC4xLTIuMDVhLjUuNSAwIDAgMSAwLS45TDE0LjM4IDUgMTAuNSAzLjA2IDYgNS4zWlwiXSk7XG5leHBvcnQgY29uc3QgRmx1aWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAzLjVDMiAyLjY3IDIuNjcgMiAzLjUgMmgyQzYuMzMgMiA3IDIuNjcgNyAzLjV2Mi4wNGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJBMS41IDEuNSAwIDAgMSAyIDUuNTRWMy41Wk04IDRoNS41Yy44MyAwIDEuNS42NyAxLjUgMS41VjloLTFWNS41YS41LjUgMCAwIDAtLjUtLjVIOFY0Wk01IDh2NS41YzAgLjI4LjIyLjUuNS41SDl2MUg1LjVBMS41IDEuNSAwIDAgMSA0IDEzLjVWOGgxWm02LjUgMmMtLjgyIDAtMS41LjY3LTEuNSAxLjV2NWMwIC44My42OCAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbHVpZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggNGg1LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgtMVY1LjVhLjUuNSAwIDAgMC0uNS0uNUg4VjRaTTUgOHY1LjVjMCAuMjguMjIuNS41LjVIOXYxSDUuNUExLjUgMS41IDAgMCAxIDQgMTMuNVY4aDFaTTIgMy41QzIgMi42NyAyLjY3IDIgMy41IDJoMkM2LjMzIDIgNyAyLjY3IDcgMy41djIuMDRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yQTEuNSAxLjUgMCAwIDEgMiA1LjU0VjMuNVpNMy41IDNhLjUuNSAwIDAgMC0uNS41djIuMDRjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41VjMuNWEuNS41IDAgMCAwLS41LS41aC0yWm02LjUgOC41YzAtLjgzLjY4LTEuNSAxLjUtMS41aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVhMS41IDEuNSAwIDAgMS0xLjUtMS41di01Wm0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjMuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di01YS41LjUgMCAwIDAtLjUtLjVoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN2gxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wk0zIDhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE0LjVWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xNyA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjVWOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuMWMuMzYuMTguNy40IDEgLjY2VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVptMTYgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xMi41IDExYTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00Ljg1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd0xlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93TGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjVWOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuMWMuMzYuMTguNy40IDEgLjY2VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVpNMTQuNSAxOWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLTIuMzUtNC44NWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFhNS41IDUuNSAwIDAgMSA4LjQtNi43NFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTIuNSAyYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wk0xNC41IDEwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93VXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xNyA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjFjLjM2LjE4LjcuNCAxIC42NlY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTE2IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckJyaWVmY2FzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJCcmllZmNhc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3SDl2LTMuNWEyLjUgMi41IDAgMCAxIDIuMDQtMi40NkEyLjUgMi41IDAgMCAxIDEzLjUgOWgyYTIuNSAyLjUgMCAwIDEgMi40NiAyLjA0bC4wNC4wMVY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTAgMy41di41aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVabTEuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYuNWgtM3YtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckJyaWVmY2FzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQnJpZWZjYXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdIOXYtMUg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjVWOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41djJjLjUuMzcuODQuOTEuOTYgMS41NGwuMDQuMDFWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm05IDZ2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxN3YtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNVptMS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41aC0zdi0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyR2xvYmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyR2xvYmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xMS41NSAzLjE1YTguOSA4LjkgMCAwIDAtLjU0IDIuODVoMi45OGE4LjkgOC45IDAgMCAwLS41NC0yLjg1IDIuOTMgMi45MyAwIDAgMC0uNTMtLjkxYy0uMTktLjItLjMzLS4yNC0uNDItLjI0LS4xIDAtLjIzLjA1LS40Mi4yNC0uMTguMTktLjM2LjUtLjUzLjkxWm0tLjcyLS44M0E5LjkyIDkuOTIgMCAwIDAgMTIgMTRoLTEuOThhNC41IDQuNSAwIDAgMSAyLjgtMy42OFptMy4zNCAwYTkuOTIgOS45MiAwIDAgMSAuODIgMy42OGgxLjk4YTQuNSA0LjUgMCAwIDAtMi44LTMuNjhabTIuOCA0LjY4SDE3YTkuOTIgOS45MiAwIDAgMS0uODIgMy42OCA0LjUgNC41IDAgMCAwIDIuOC0zLjY4Wm0tNC40NyA0Yy4xIDAgLjIzLS4wNS40Mi0uMjQuMTgtLjE5LjM2LS41LjUzLS45MS4zLS43My41LTEuNzIuNTQtMi44NWgtMi45OGE4LjkgOC45IDAgMCAwIC41NCAyLjg1Yy4xNy40Mi4zNS43Mi41My45MS4xOS4yLjMzLjI0LjQyLjI0Wm0tMS42Ny0uMzJhNC41IDQuNSAwIDAgMS0yLjgtMy42OEgxMmE5LjkyIDkuOTIgMCAwIDAgLjgyIDMuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJHbG9iZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyR2xvYmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjFjLjM2LjE4LjcuNCAxIC42NlY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTEwLjU1IDUuNjVhOC45IDguOSAwIDAgMC0uNTQgMi44NWgyLjk4YTguOSA4LjkgMCAwIDAtLjU0LTIuODUgMi45MyAyLjkzIDAgMCAwLS41My0uOTFjLS4xOS0uMi0uMzMtLjI0LS40Mi0uMjQtLjEgMC0uMjMuMDUtLjQyLjI0LS4xOC4xOS0uMzYuNS0uNTMuOTFabS0uNzItLjgzQTkuOTIgOS45MiAwIDAgMCAxMiAxNGgtMS45OGE0LjUgNC41IDAgMCAxIDIuOC0zLjY4Wm0zLjM0IDBhOS45MiA5LjkyIDAgMCAxIC44MiAzLjY4aDEuOThhNC41IDQuNSAwIDAgMC0yLjgtMy42OFptMi44IDQuNjhIMTdhOS45MiA5LjkyIDAgMCAxLS44MiAzLjY4IDQuNSA0LjUgMCAwIDAgMi44LTMuNjhabS00LjQ3IDRjLjEgMCAuMjMtLjA1LjQyLS4yNC4xOC0uMTkuMzYtLjUuNTMtLjkxLjMtLjczLjUtMS43Mi41NC0yLjg1aC0yLjk4YTguOSA4LjkgMCAwIDAgLjU0IDIuODVjLjE3LjQyLjM1LjcyLjUzLjkxLjE5LjIuMzMuMjQuNDIuMjRabS0xLjY3LS4zMmE0LjUgNC41IDAgMCAxLTIuOC0zLjY4SDEyYTkuOTIgOS45MiAwIDAgMCAuODIgMy42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpZ2h0bmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaWdodG5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDhhMS41IDEuNSAwIDAgMS0xLjM4LTIuMDhsMi4wOC01QTEuNSAxLjUgMCAwIDEgMTQuNTggOUgxOFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTAuNSA4aDEuNzVsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ3YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGlnaHRuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaWdodG5pbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g4YTEuNSAxLjUgMCAwIDEtMS40MS0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgxVjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVpNMTIuNSAxNmgxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM0YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40N2EuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNC44NGEzLjUgMy41IDAgMCAxIDMuMTYtNWg0Yy41NCAwIDEuMDUuMTIgMS41LjM0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xMC41IDVhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g0Ljg0YTMuNDggMy40OCAwIDAgMS0uMy0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC41NGMuMzUuMDUuNjkuMTUgMSAuM1Y3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTkuNSA3LjVhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGlzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNi41OWMuMDYtLjE5LjE2LS4zNi4zLS41YTEuNSAxLjUgMCAwIDEgMC0yQTEuNSAxLjUgMCAwIDEgMTIuNSAxMmg1LjQ5VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xMC41IDVhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabS0uNSAyLjVjMC0uMjguMjItLjUuNS0uNWg2YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJMaXN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaXN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNi41OWMuMDYtLjE5LjE2LS4zNi4zLS41YTEuNSAxLjUgMCAwIDEtLjMtLjVINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNVYxMmgxVjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVptOS41IDcuNWEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptLS41IDIuNWMwLS4yOC4yMi0uNS41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTWFpbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNC41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41di00YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg2Yy4xNyAwIC4zNC4wMi41LjA1VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm04LjAxIDQuMyA0LjUgMi42M0wxOSAxMi41di0uMDFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02Yy0uNzYgMC0xLjQuNTctMS40OSAxLjNaTTE5IDEzLjY0bC00LjI2IDIuM2EuNS41IDAgMCAxLS41IDBMMTAgMTMuNDR2My4wNWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMi44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck1haWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g0LjU1YTIuNTEgMi41MSAwIDAgMS0uMDUtLjVWMTZINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNVYxMGguNWMuMTcgMCAuMzQuMDIuNS4wNVY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTcuMDEgNi44IDQuNSAyLjYzTDE5IDEyLjV2LS4wMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTZjLS43NiAwLTEuNC41Ny0xLjQ5IDEuM1pNMTkgMTMuNjRsLTQuMjYgMi4zYS41LjUgMCAwIDEtLjUgMEwxMCAxMy40NHYzLjA1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di0yLjg2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyT3BlbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJPcGVuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2Ni45N2wxLjU3LTIuNzJBMy41IDMuNSAwIDAgMSA2LjYgOEgxNnYtLjVBMi41IDIuNSAwIDAgMCAxMy41IDVIOS43TDguMTYgMy40NEExLjUgMS41IDAgMCAwIDcuMDkgM0g0LjVabS0uMDcgNy4yNUEyLjUgMi41IDAgMCAxIDYuNiA5SDE3YTIgMiAwIDAgMSAxLjczIDNsLTIuMTYgMy43NUEyLjUgMi41IDAgMCAxIDE0LjQgMTdINGEyIDIgMCAwIDEtMS43My0zbDIuMTYtMy43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJPcGVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJPcGVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNXY2LjZsMS41LTIuNkEzIDMgMCAwIDEgNy4xIDhIMTV2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNGEuNS41IDAgMCAxLS4zNS0uMTVsLTEuNzEtMS43QS41LjUgMCAwIDAgNy4wOSA0SDQuNUMzLjY3IDQgMyA0LjY3IDMgNS41Wm0xLjI4IDEwLjQ4LjIyLjAyaDkuNGEyIDIgMCAwIDAgMS43My0xbDIuMTctMy43NUExLjUgMS41IDAgMCAwIDE2LjUgOUg3LjFhMiAyIDAgMCAwLTEuNzMgMUwzLjIgMTMuNzVhMS41IDEuNSAwIDAgMCAxLjA4IDIuMjNaTTIgMTQuNDZWNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi41OWMuNCAwIC43OC4xNiAxLjA2LjQ0TDkuNyA1aDMuNzlBMi41IDIuNSAwIDAgMSAxNiA3LjVWOGguNWEyLjUgMi41IDAgMCAxIDIuMTYgMy43NUwxNi41IDE1LjVhMyAzIDAgMCAxLTIuNiAxLjVINC41YTIuNTQgMi41NCAwIDAgMS0xLjYyLS42QTIuNSAyLjUgMCAwIDEgMiAxNC40NlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJPcGVuVmVydGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlblZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDQuNUEyLjUgMi41IDAgMCAwIDE0LjUgMkg3LjUzbDIuNzIgMS41N0EzLjUgMy41IDAgMCAxIDEyIDYuNlYxNmguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOS43bDEuNTYtMS41NWMuMjgtLjI4LjQ0LS42Ny40NC0xLjA2VjQuNVptLTcuMjUtLjA3QTIuNSAyLjUgMCAwIDEgMTEgNi42VjE3YTIgMiAwIDAgMS0zIDEuNzNsLTMuNzUtMi4xNkEyLjUgMi41IDAgMCAxIDMgMTQuNFY0YTIgMiAwIDAgMSAzLTEuNzNsMy43NSAyLjE2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck9wZW5WZXJ0aWNhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlblZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNINy45bDIuNiAxLjVBMyAzIDAgMCAxIDEyIDcuMVYxNWguNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRhLjUuNSAwIDAgMSAuMTUtLjM1bDEuNy0xLjcxYS41LjUgMCAwIDAgLjE1LS4zNVY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk00LjAyIDQuMjggNCA0LjV2OS40YTIgMiAwIDAgMCAxIDEuNzNsMy43NSAyLjE3QTEuNSAxLjUgMCAwIDAgMTEgMTYuNVY3LjFhMiAyIDAgMCAwLTEtMS43M0w2LjI1IDMuMmExLjUgMS41IDAgMCAwLTIuMjMgMS4wOFpNNS41NCAyaDguOTZBMi41IDIuNSAwIDAgMSAxNyA0LjV2Mi41OWMwIC40LS4xNi43Ny0uNDQgMS4wNkwxNSA5Ljd2My43OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTJ2LjVhMi41IDIuNSAwIDAgMS0zLjc1IDIuMTZMNC41IDE2LjVBMyAzIDAgMCAxIDMgMTMuOVY0LjVhMi41NCAyLjU0IDAgMCAxIC42LTEuNjJBMi41IDIuNSAwIDAgMSA1LjU0IDJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVvcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlb3BsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNC41MmEyLjYgMi42IDAgMCAxIDEuOTMtMi45MiAyLjc1IDIuNzUgMCAxIDEgNC41NC0zIDIuMjQgMi4yNCAwIDAgMSAyLjUxLS4zNVY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTIuNzUgNC4yNWExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWm0zLjUuNWExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xNiAxNi42YzAgMS4xOC0uOCAyLjQtMyAyLjRzLTMtMS4yMi0zLTIuNGMwLS44OC43Mi0xLjYgMS42LTEuNmgyLjhjLjg4IDAgMS42LjcyIDEuNiAxLjZabS43IDEuNGguMDVjMS42NSAwIDIuMjUtLjkxIDIuMjUtMS44IDAtLjY2LS41NC0xLjItMS4yLTEuMmgtMS4zNWMuMzQuNDQuNTUgMSAuNTUgMS42IDAgLjQ2LS4wOS45NS0uMyAxLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQZW9wbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlb3BsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3aDQuNTJhMi42IDIuNiAwIDAgMSAuMDUtMUg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjVWOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41djNjLjM2IDAgLjcuMDggMSAuMjNWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm0xMS43NSA2Ljc1YTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBabTMuNS41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTE2IDE2LjZjMCAxLjE4LS44IDIuNC0zIDIuNHMtMy0xLjIyLTMtMi40YzAtLjg4LjcyLTEuNiAxLjYtMS42aDIuOGMuODggMCAxLjYuNzIgMS42IDEuNlptLjcgMS40aC4wNWMxLjY1IDAgMi4yNS0uOTEgMi4yNS0xLjggMC0uNjYtLjU0LTEuMi0xLjItMS4yaC0xLjM1Yy4zNC40NC41NSAxIC41NSAxLjYgMCAuNDYtLjA5Ljk1LS4zIDEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNVY3aDUuMDlhLjUuNSAwIDAgMCAuMzUtLjE1TDkuNSA0LjggOC4yMiAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0yIDE0LjVWOGg1LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEwxMC43IDVoNC43OUEyLjUgMi41IDAgMCAxIDE4IDcuNXYyLjg0YTMgMyAwIDEgMC00LjczIDMuNjdBMi41IDIuNSAwIDAgMCAxMS4wNCAxN0g0LjVBMi41IDIuNSAwIDAgMSAyIDE0LjVaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS43MSA1aDUuNzlBMi41IDIuNSAwIDAgMSAxOCA3LjV2Mi44NGMtLjI2LS4zOC0uNi0uNy0xLS45NFY3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDkuN0w4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIM3Y2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNi41NWEyLjUxIDIuNTEgMCAwIDAtLjAxIDFINC41QTIuNSAyLjUgMCAwIDEgMiAxNC41di05Wk00LjUgNEMzLjY3IDQgMyA0LjY3IDMgNS41VjdoNC4wOWEuNS41IDAgMCAwIC4zNS0uMTVMOC43OSA1LjUgNy41MSA0LjIyQS43NS43NSAwIDAgMCA2Ljk4IDRINC41Wm0xMyA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclByb2hpYml0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm04IDYuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQcm9oaWJpdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm03IDlhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVptMy41IDMuNWMtLjc5IDAtMS41MS0uMjYtMi4xLS43bDQuOS00LjlhMy41IDMuNSAwIDAgMS0yLjggNS42WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclNlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41VjdoNS4wOWEuNS41IDAgMCAwIC4zNS0uMTVMOS41IDQuOCA4LjIyIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTIgMTQuNVY4aDUuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDEwLjcgNWg0Ljc5QTIuNSAyLjUgMCAwIDEgMTggNy41VjEyaC0uMDNBNC41IDQuNSAwIDEgMCAxMyAxNi45N1YxN0g0LjVBMi41IDIuNSAwIDAgMSAyIDE0LjVaTTEzLjUgMTZjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDE2LjMgMTQuNmEzLjUgMy41IDAgMSAwLTIuOCAxLjRabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclNlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS43MSA1aDUuNzlBMi41IDIuNSAwIDAgMSAxOCA3LjVWMTJoLS4wM0E0LjQ4IDQuNDggMCAwIDAgMTcgOS42N1Y3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDkuN0w4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIM3Y2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNi4xN2MuNjUuNTMgMS40NS44OCAyLjMzLjk3VjE3SDQuNUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOVpNNC41IDRDMy42NyA0IDMgNC42NyAzIDUuNVY3aDQuMDlhLjUuNSAwIDAgMCAuMzUtLjE1TDguNzkgNS41IDcuNTEgNC4yMkEuNzUuNzUgMCAwIDAgNi45OCA0SDQuNVptOSAxMmMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMMTYuMyAxNC42YTMuNSAzLjUgMCAxIDAtMi44IDEuNFptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3dhcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJTd2FwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjM4bC0uNDQtLjQ0YTEuNSAxLjUgMCAwIDEgMC0yLjEybDItMkExLjUgMS41IDAgMCAxIDEzLjkgMTRoMS4xOGExLjUgMS41IDAgMCAxIDIuNDctMS41NmwuNDQuNDRWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1aC00LjhMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDJabTEwLjg1IDUuODVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMS43MSAxNmg1LjU4bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTcuMjkgMTVoLTUuNThsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3dhcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU3dhcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMzhsLS40NC0uNDRhMS41IDEuNSAwIDAgMS0uMzUtLjU2SDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC41OWMuMi4wNy40LjE5LjU2LjM1bC40NC40NFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTkuODUgOC4zNWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMCAwIC43LS43TDExLjcxIDE2aDUuNThsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN0wxNy4yOSAxNWgtNS41OGwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm04IDYuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3luY1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjVWOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuMWMuMzYuMTguNy40IDEgLjY2VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVptNyA5YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJaaXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyWmlwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjVWN2g1LjA5YS41LjUgMCAwIDAgLjM1LS4xNUw5LjUgNC44IDguMjIgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMiAxNC41VjhoNS4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMMTAuNyA1SDEydjMuNWMwIC4yOC4yMi41LjUuNWguNXYyaC0uNWEuNS41IDAgMCAwIDAgMWguNXYxaC0uNWEuNS41IDAgMCAwIDAgMWguNXYzSDQuNUEyLjUgMi41IDAgMCAxIDIgMTQuNVpNMTQgMTdoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNUgxNXYzLjVhLjUuNSAwIDAgMS0uNS41SDE0djNoLjVhLjUuNSAwIDAgMSAwIDFIMTR2NFptMC0xMmgtMXYzaDFWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclppcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyWmlwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS43MSA1aDUuNzlBMi41IDIuNSAwIDAgMSAxOCA3LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di05Wk0xNCAxNmgxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxNXYzLjVhLjUuNSAwIDAgMS0uNS41SDE0djJoLjVhLjUuNSAwIDAgMSAwIDFIMTR2M1ptMC0xMGgtMXYzaDFWNlptLTIgMEg5LjdMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDN2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdi0yaC0uNWEuNS41IDAgMCAxIDAtMWguNXYtMWgtLjVhLjUuNSAwIDAgMSAwLTFoLjV2LTFoLS41YS41LjUgMCAwIDEtLjUtLjVWNlpNNC41IDRDMy42NyA0IDMgNC42NyAzIDUuNVY3aDQuMDlhLjUuNSAwIDAgMCAuMzUtLjE1TDguNzkgNS41IDcuNTEgNC4yMkEuNzUuNzUgMCAwIDAgNi45OCA0SDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnREZWNyZWFzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250RGVjcmVhc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMjQgMi4xOGEuNzUuNzUgMCAwIDAtLjk4IDEuMTRsMS43NSAxLjVjLjI4LjI0LjcuMjQuOTggMGwxLjc1LTEuNWEuNzUuNzUgMCAxIDAtLjk4LTEuMTRMMTUuNSAzLjI2bC0xLjI2LTEuMDhaTTEwIDRjLS4zIDAtLjU4LjE5LS43LjQ3bC00LjI1IDEwLjVhLjc1Ljc1IDAgMSAwIDEuNC41Nkw3Ljg3IDEyaDQuMjZsMS40MiAzLjUzYS43NS43NSAwIDEgMCAxLjQtLjU2TDEwLjcgNC40N0EuNzUuNzUgMCAwIDAgMTAgNFptMCAyLjc1IDEuNTIgMy43NUg4LjQ4TDEwIDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250RGVjcmVhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnREZWNyZWFzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuMTUgMi4xNWMuMi0uMi41LS4yLjcgMGwxLjY1IDEuNjQgMS42NS0xLjY0YS41LjUgMCAxIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgMC0uN1pNMTAgNGMuMiAwIC4zOS4xMi40Ni4zMWw0LjUgMTFhLjUuNSAwIDEgMS0uOTIuMzhsLTEuNTQtMy43NlYxMmgtNXYtLjA3TDUuOTYgMTUuN2EuNS41IDAgMSAxLS45Mi0uMzhsNC41LTExQS41LjUgMCAwIDEgMTAgNFptLTIuMTIgN2g0LjI0TDEwIDUuODIgNy44OCAxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnRJbmNyZWFzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250SW5jcmVhc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMjQgNC44MmEuNzUuNzUgMCAwIDEtLjk4LTEuMTRsMS43NS0xLjVjLjI4LS4yNC43LS4yNC45OCAwbDEuNzUgMS41YS43NS43NSAwIDEgMS0uOTggMS4xNEwxNS41IDMuNzRsLTEuMjYgMS4wOFpNMTAgMy43NWMtLjMgMC0uNTguMTgtLjcuNDdsLTQuNSAxMWEuNzUuNzUgMCAwIDAgMS40LjU2bDEuNDQtMy41M2g0LjcybDEuNDUgMy41M2EuNzUuNzUgMCAxIDAgMS4zOC0uNTZsLTQuNS0xMWEuNzUuNzUgMCAwIDAtLjY5LS40N1ptMCAyLjczIDEuNzUgNC4yN2gtMy41TDEwIDYuNDhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250SW5jcmVhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRJbmNyZWFzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuODUgNC44NWEuNS41IDAgMCAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDE1LjUgMy4yMWwtMS42NSAxLjY0Wk0xMCA0YS41LjUgMCAwIDAtLjQ2LjMxbC00LjUgMTFhLjUuNSAwIDEgMCAuOTIuMzhsMS41NC0zLjc2VjEyaDV2LS4wN2wxLjU0IDMuNzZhLjUuNSAwIDEgMCAuOTItLjM4bC00LjUtMTFBLjUuNSAwIDAgMCAxMCA0Wm0wIDEuODJMMTIuMTIgMTFINy44OEwxMCA1LjgyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdJbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ0luRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNyAyLjQ4YS43NS43NSAwIDAgMC0xLjQgMGwtMy4yNSA4LjVhLjc1Ljc1IDAgMCAwIDEuNC41M2wuNzctMi4wMWgzLjU2bC43NyAyLjAxYS43NS43NSAwIDAgMCAxLjQtLjUzTDcuNyAyLjQ4Wk04LjIgOEg1LjhMNyA0Ljg1IDguMiA4Wm0tMS40NiA1LjE5YS43NS43NSAwIDEgMC0uOTkgMS4xMmwuNS40NGgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVsLS41LjQ0YS43NS43NSAwIDEgMCAxIDEuMTJsMi0xLjc1YS43NS43NSAwIDAgMCAwLTEuMTNsLTItMS43NFpNMTMgMTJjLjMxIDAgLjU5LS4yLjctLjQ4bDMuMjUtOC41YS43NS43NSAwIDEgMC0xLjQtLjUzTDEzIDkuMTUgMTAuNDUgMi41YS43NS43NSAwIDAgMC0xLjQuNTNsMy4yNSA4LjVjLjExLjI5LjM5LjQ4LjcuNDhabTEuMzEgNS43NGEuNzUuNzUgMCAwIDEtMS4wNS4wN2wtMi0xLjc0YS43NS43NSAwIDAgMSAwLTEuMTNsMi0xLjc1YS43NS43NSAwIDEgMSAuOTggMS4xMmwtLjUuNDRoMi41MWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWwuNS40NGMuMy4yNy4zNC43NC4wNiAxLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdJblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udFNwYWNlVHJhY2tpbmdJblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMgMTJjLjIgMCAuMzgtLjEyLjQ2LS4zMmwzLjUtOS4wMmEuNS41IDAgMSAwLS45My0uMzZMMTMgMTAuMTIgOS45NSAyLjNhLjUuNSAwIDEgMC0uOTMuMzZsMy41IDkuMDJjLjA4LjIuMjcuMzIuNDcuMzJaTTcuNDYgMi4zYS41LjUgMCAwIDAtLjkzIDBsLTIuMzQgNnYuMDNsLTEuMTcgM2EuNS41IDAgMSAwIC45My4zNUw1LjAxIDloNGwxLjA0IDIuNjhhLjUuNSAwIDEgMCAuOTMtLjM2TDkuODMgOC4zN2EuNS41IDAgMCAwLS4wNC0uMTFMNy40NyAyLjNaTTguNjEgOEg1LjRMNyAzLjg2IDguNjEgOFpNNi41IDEzLjEyYS41LjUgMCAxIDAtLjY1Ljc2TDcuMTUgMTVIMy41YS41LjUgMCAwIDAgMCAxaDMuNjVsLTEuMyAxLjEyYS41LjUgMCAxIDAgLjY0Ljc2bDIuMzMtMmEuNS41IDAgMCAwIDAtLjc2bC0yLjMzLTJabTcuNzIgNC43YS41LjUgMCAwIDEtLjcuMDZsLTIuMzQtMmEuNS41IDAgMCAxIDAtLjc2bDIuMzMtMmEuNS41IDAgMSAxIC42NS43NkwxMi44NSAxNWgzLjY1YS41LjUgMCAxIDEgMCAxaC0zLjY1bDEuMyAxLjEyYy4yMS4xOC4yNC41LjA2LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ091dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ091dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJjLjMxIDAgLjU5LjIuNy40OGwzLjI1IDguNWEuNzUuNzUgMCAwIDEtMS40LjUzTDcuNzggOS41SDQuMjJsLS43NyAyLjAxYS43NS43NSAwIDAgMS0xLjQtLjUzbDMuMjUtOC41QS43NS43NSAwIDAgMSA2IDJaTTQuOCA4aDIuNEw2IDQuODUgNC44IDhabTkuODggNS4yNmEuNzUuNzUgMCAwIDEgMS4wNi0uMDdsMiAxLjc0YS43NS43NSAwIDAgMSAwIDEuMTNsLTIgMS43NWEuNzUuNzUgMCAxIDEtLjk5LTEuMTJsLjUtLjQ0SDQuNzVsLjUuNDRhLjc1Ljc1IDAgMSAxLTEgMS4xMmwtMi0xLjc0YS43NS43NSAwIDAgMSAwLTEuMTNsMi0xLjc1YS43NS43NSAwIDAgMSAxIDEuMTJsLS41LjQ0aDEwLjVsLS41LS40NGEuNzUuNzUgMCAwIDEtLjA3LTEuMDVabS4wMi0xLjc0YS43NS43NSAwIDAgMS0xLjQgMGwtMy4yNS04LjVhLjc1Ljc1IDAgMSAxIDEuNC0uNTNMMTQgOS4xNWwyLjU1LTYuNjZhLjc1Ljc1IDAgMSAxIDEuNC41M2wtMy4yNSA4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ091dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udFNwYWNlVHJhY2tpbmdPdXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjQ2IDExLjY4YS41LjUgMCAwIDEtLjkzIDBsLTMuNTEtOS4wMmEuNS41IDAgMSAxIC45My0uMzZsMy4wNCA3LjgyIDMuMDQtNy44MmEuNS41IDAgMCAxIC45NC4zNmwtMy41MSA5LjAyWk02IDEuOThjLjIxIDAgLjQuMTMuNDcuMzJsMi4zMiA1Ljk2YS41LjUgMCAwIDEgLjA0LjExbDEuMTUgMi45NWEuNS41IDAgMCAxLS45My4zNkw4IDlINGwtMS4wNCAyLjY4YS41LjUgMCAwIDEtLjkzLS4zNmwxLjE3LTNWOC4zbDIuMzQtNkEuNS41IDAgMCAxIDYgMS45OFpNNC40IDhINy42bC0xLjYtNC4xNEw0LjQgOFptMTAuMzkgNS4xOGEuNS41IDAgMCAxIC43LS4wNmwyLjMzIDJhLjUuNSAwIDAgMSAwIC43NmwtMi4zMyAyYS41LjUgMCAwIDEtLjY1LS43NmwxLjMtMS4xMkgzLjg1bDEuMzEgMS4xMmEuNS41IDAgMSAxLS42NS43NmwtMi4zMy0yYS41LjUgMCAwIDEgMC0uNzZsMi4zMy0yYS41LjUgMCAxIDEgLjY1Ljc2TDMuODUgMTVoMTIuM2wtMS4zLTEuMTJhLjUuNSAwIDAgMS0uMDYtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJhLjUyLjUyIDAgMCAwLS4xOC4wNC41LjUgMCAwIDAtLjMxLjM4QzMuOTkgMi41MiAzLjUgNS42IDMuNSA3YTMgMyAwIDAgMCAxLjEzIDIuMzVjLjI1LjIuMzcuNDEuMzcuNnYuNWEzMTguMTcgMzE4LjE3IDAgMCAwIDMgMHYtLjVjMC0uMTkuMTItLjQuMzctLjZBMyAzIDAgMCAwIDkuNSA3YzAtMS40LS41LTQuNS0uNS00LjU4YS41LjUgMCAwIDAtLjM2LS40QzguNTggMiA4LjUyIDIgOC41IDJoLS4wMmEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAxLS45OS4wM1YyLjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMSAxLS45OSAwdi00YS41LjUgMCAwIDAtLjUtLjVaTTExIDYuNUE0LjUgNC41IDAgMCAxIDE1LjUgMmMuMjggMCAuNS4yMi41LjV2Ni45OGwuMDIuMjJhNjI1LjU4IDYyNS41OCAwIDAgMSAuMjMgMi43Yy4xMiAxLjUuMjUgMy4xNi4yNSAzLjZhMiAyIDAgMSAxLTQgMGMwLS40NC4xMy0yLjEuMjUtMy42bC4xNy0yLjA0LjAzLS4zNmgtLjQ1QTEuNSAxLjUgMCAwIDEgMTEgOC41di0yWk04LjUgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNjcgMmExLjMgMS4zIDAgMCAwLTEuMjkgMS4wN0MzLjIzIDMuODkgMyA1LjM0IDMgNi41YTMuNSAzLjUgMCAwIDAgMS42IDIuOTRjLjI3LjE3LjQuNC40LjZ2LjRhMzE4LjE3IDMxOC4xNyAwIDAgMCAzIDB2LS40YzAtLjIuMTMtLjQzLjQtLjZBMy41IDMuNSAwIDAgMCAxMCA2LjVjMC0xLjE2LS4yMy0yLjYxLS4zOC0zLjQzQTEuMyAxLjMgMCAwIDAgOC4zMiAyYy0uMzMgMC0uNjQuMTMtLjg3LjM0YTEuNSAxLjUgMCAwIDAtMS45IDBDNS4zMiAyLjEzIDUuMDEgMiA0LjY3IDJaTTYgMy41YS41LjUgMCAwIDEgMSAwdjNhLjUuNSAwIDAgMCAxIDBWMy4zM2MwLS4xOC4xNS0uMzMuMzMtLjMzLjE2IDAgLjI4LjEuMy4yNS4xNS44MS4zNyAyLjE5LjM3IDMuMjVhMi41IDIuNSAwIDAgMS0xLjE0IDIuMWMtLjQ0LjI4LS44Ni43OC0uODYgMS40NFYxMC42Yy4wNC4yNS4xNiAxLjQyLjI4IDIuNjIuMTEgMS4yMS4yMiAyLjQxLjIyIDIuNzdhMSAxIDAgMSAxLTIgMGMwLS4zNi4xLTEuNTYuMjItMi43N0EzMTguMjMgMzE4LjIzIDAgMCAxIDYgMTAuNDV2LS40MWMwLS42Ni0uNDItMS4xNi0uODYtMS40NEEyLjUgMi41IDAgMCAxIDQgNi41YzAtMS4wNi4yMi0yLjQ0LjM2LTMuMjVBLjMuMyAwIDAgMSA0LjY3IDNjLjE4IDAgLjMzLjE1LjMzLjMzVjYuNWEuNS41IDAgMCAwIDEgMHYtM1ptNSAzQTQuNSA0LjUgMCAwIDEgMTUuNSAyYy4yOCAwIC41LjIyLjUuNXY2Ljk4bC4wMi4yMmE2MjUuNTggNjI1LjU4IDAgMCAxIC4yMyAyLjdjLjEyIDEuNS4yNSAzLjE2LjI1IDMuNmEyIDIgMCAxIDEtNCAwYzAtLjQ0LjEzLTIuMS4yNS0zLjZsLjE3LTIuMDQuMDMtLjM2aC0uNDVBMS41IDEuNSAwIDAgMSAxMSA4LjV2LTJabTMgMy4wNC0uMDIuMjVhMTI0MC45IDEyNDAuOSAwIDAgMC0uMjMgMi42OUE4Ni41OCA4Ni41OCAwIDAgMCAxMy41IDE2YTEgMSAwIDEgMCAyIDBjMC0uMzktLjEyLTEuOTgtLjI1LTMuNTJhNTY1LjA2IDU2NS4wNiAwIDAgMC0uMjMtMi43TDE1IDkuNTVhLjUuNSAwIDAgMSAwLS4wNFYzLjA0Yy0xLjcuMjQtMyAxLjctMyAzLjQ2djJjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAxIC41LjU0WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZEFwcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RBcHBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4xNiAyLjk3YS41LjUgMCAxIDAtLjMyLS45NCAzLjE4IDMuMTggMCAwIDAtMS44NiAxLjljLS4wNS4xMS0uMS4yMy0uMTMuMzRBNCA0IDAgMCAwIDYuMiAyLjE0Yy0uNTguMDEtMS4wNC40OC0xLjA2IDEuMDZBMy45OSAzLjk5IDAgMCAwIDYuMyA2LjE0bC4wMy4wM0E0IDQgMCAwIDAgMy4yIDkuNzZ2LjA3YTguNSA4LjUgMCAwIDAgMSA0Ljc1bC4zNi42NmEuNS41IDAgMCAwIC4wMy4wNWwxIDEuNGEyLjY5IDIuNjkgMCAwIDAgNC4wOS4zNC40Ni40NiAwIDAgMSAuNjQgMCAyLjY5IDIuNjkgMCAwIDAgNC4wOS0uMzRsMS0xLjRhLjUxLjUxIDAgMCAwIC4wMy0uMDVsLjM2LS42NmE4LjUgOC41IDAgMCAwIDEtNC43NXYtLjA3YTQgNCAwIDAgMC00LjY0LTMuNjNsLTEuNjYuMjhjLjAxLS42OC4xMy0xLjQ1LjQtMi4xLjI4LS42Ny43LTEuMTUgMS4yNi0xLjM0Wm0tNS4yNSA2Yy0uMjcuMS0uNTQuMjctLjcyLjYtLjE4LjM2LS4zMS45My0uMiAxLjg3YS41LjUgMCAwIDEtLjk5LjEyYy0uMTMtMS4wNiAwLTEuODYuMzEtMi40NS4zMi0uNi44LS45MyAxLjI4LTEuMDhhLjUuNSAwIDAgMSAuMzIuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQXBwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RBcHBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4yMiA4LjM0YS41LjUgMCAwIDEtLjMxLjYzYy0uMjguMS0uNTQuMjctLjcyLjYtLjE4LjM2LS4zMS45My0uMiAxLjg3YS41LjUgMCAwIDEtLjk5LjEyYy0uMTMtMS4wNiAwLTEuODYuMzEtMi40NS4zMi0uNi44LS45MyAxLjI4LTEuMDhhLjUuNSAwIDAgMSAuNjMuMzFabTQuOTQtNS4zN2EuNS41IDAgMSAwLS4zMi0uOTQgMy4xOCAzLjE4IDAgMCAwLTEuODYgMS45Yy0uMDUuMTEtLjEuMjMtLjEzLjM0QTQgNCAwIDAgMCA2LjIgMi4xNGMtLjU4LjAxLTEuMDQuNDgtMS4wNiAxLjA2YTMuOTkgMy45OSAwIDAgMCAxLjIgMi45N0E0IDQgMCAwIDAgMy4yIDkuNzZ2LjA3YTguNSA4LjUgMCAwIDAgMSA0Ljc1bC4zNi42NmEuNS41IDAgMCAwIC4wMy4wNWwxIDEuNGEyLjY5IDIuNjkgMCAwIDAgNC4wOS4zNC40Ni40NiAwIDAgMSAuNjQgMCAyLjY5IDIuNjkgMCAwIDAgNC4wOS0uMzRsMS0xLjRhLjUxLjUxIDAgMCAwIC4wMy0uMDVsLjM2LS42NmE4LjUgOC41IDAgMCAwIDEtNC43NXYtLjA3YTQgNCAwIDAgMC00LjY0LTMuNjNsLTEuNjYuMjhjLjAxLS42OC4xMy0xLjQ1LjQtMi4xLjI4LS42Ny43LTEuMTUgMS4yNi0xLjM0Wk04LjcyIDYuMjhsLS4xNi0uMDNhMi45OCAyLjk4IDAgMCAxLTIuNDItMy4wMmMwLS4wNS4wNC0uMDkuMDktLjFhMi45OSAyLjk5IDAgMCAxIDMuMDggMy4xYzAgLjA0LS4wNC4wOC0uMDkuMDgtLjE3IDAtLjMzIDAtLjUtLjAzWm0tLjMzLjk2LjE3LjAzLjc4LjEzYTQgNCAwIDAgMCAxLjMyIDBsMS42Ni0uMjhhMyAzIDAgMCAxIDMuNDkgMi43MnYuMDdhNy41IDcuNSAwIDAgMS0uODkgNC4ybC0uMzQuNjItLjk5IDEuMzhjLS42Ljg1LTEuODIuOTUtMi41Ni4yMWExLjQ2IDEuNDYgMCAwIDAtMi4wNiAwYy0uNzQuNzQtMS45Ni42NC0yLjU2LS4yMWwtLjk5LTEuMzgtLjM0LS42M2E3LjUgNy41IDAgMCAxLS45LTQuMTlsLjAxLS4wN2EzIDMgMCAwIDEgMy40OS0yLjcybC43MS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDYWtlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDYWtlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJjLS43NyAwLTEuMjguNTMtMS41NyAxLjAyLS4zLjUtLjQ1IDEuMDctLjQ3IDEuNDQtLjA0Ljc0LjA3IDEuMzkuNDQgMS44Ni4zOC40OS45Ni42NyAxLjYuNjcuNjQgMCAxLjIyLS4yIDEuNi0uNy4zNy0uNDcuNDktMS4xMS40NC0xLjgzYTMuNTYgMy41NiAwIDAgMC0uNDctMS40M0MxMS4yOCAyLjU1IDEwLjc3IDIgMTAgMlpNMyA5Ljc4bDMuMiAyLjk0YTEgMSAwIDAgMCAxLjQzLS4wN2wuODYtLjk4YTIgMiAwIDAgMSAzIDBsLjg2Ljk4YTEgMSAwIDAgMCAxLjQzLjA3bDMuMi0yLjk0QTIgMiAwIDAgMCAxNSA4SDVhMiAyIDAgMCAwLTEuOTkgMS43OVpNMTcgMTEuMTRsLTIuNTQgMi4zM2EyIDIgMCAwIDEtMi44NS0uMTVsLS44Ni0uOTdhMSAxIDAgMCAwLTEuNSAwbC0uODYuOTdhMiAyIDAgMCAxLTIuODUuMTVMMyAxMS4xNFYxNmgtLjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFIMTd2LTQuODZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2FrZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENha2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjLS43NyAwLTEuMjguNTMtMS41NyAxLjAyLS4zLjUtLjQ1IDEuMDctLjQ3IDEuNDQtLjA0Ljc0LjA3IDEuMzkuNDQgMS44Ni4zOC40OS45Ni42NyAxLjYuNjcuNjQgMCAxLjIyLS4yIDEuNi0uNy4zNy0uNDcuNDktMS4xMS40NC0xLjgzYTMuNTYgMy41NiAwIDAgMC0uNDctMS40M0MxMS4yOCAyLjU1IDEwLjc3IDIgMTAgMlpNOC45NiA0LjUxYzAtLjIuMTEtLjYzLjMzLS45OS4yMi0uMzcuNDYtLjU0LjctLjU0LjI1IDAgLjUuMTcuNzIuNTUuMjEuMzcuMzIuOC4zMy45OC4wNC42LS4wNy45Ni0uMjMgMS4xNi0uMTQuMTgtLjM4LjMxLS44MS4zMS0uNDUgMC0uNjktLjEyLS44Mi0uMy0uMTUtLjE4LS4yNi0uNTQtLjIyLTEuMTdaTTUgOGEyIDIgMCAwIDAtMiAydjZoLS41YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xSDE3di02YTIgMiAwIDAgMC0yLTJINVptMTEgOEg0di0zLjg4bDEuNTQgMS4zOGEyIDIgMCAwIDAgMi44My0uMTZsLjg4LTFhMSAxIDAgMCAxIDEuNSAwbC44OCAxYTIgMiAwIDAgMCAyLjgzLjE2TDE2IDEyLjEyVjE2Wm0wLTUuMjItMi4yMSAxLjk3YTEgMSAwIDAgMS0xLjQyLS4wOGwtLjg3LS45OWEyIDIgMCAwIDAtMyAwbC0uODcgMWExIDEgMCAwIDEtMS40Mi4wN0w0IDEwLjc4VjEwYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2Fycm90RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDYXJyb3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuODUgMi44NWEuNS41IDAgMCAwLS43LS43TDE0IDUuMjlWMi41YS41LjUgMCAxIDAtMSAwdjIuODhhMy42NiAzLjY2IDAgMCAwLTQuNjQgMS4ybC02LjA5IDguOTVjLS40Mi42My0uMzQgMS40Ny4yIDIgLjU1LjU1IDEuNDIuNjIgMi4wNS4xOGw4LjkzLTYuMThBMy41NyAzLjU3IDAgMCAwIDE0LjYzIDdoMi44N2EuNS41IDAgMSAwIDAtMWgtMi44bDMuMTUtMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDYXJyb3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDYXJyb3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNCA1LjI5VjIuNWEuNS41IDAgMCAwLTEgMHYyLjg4YTMuNjYgMy42NiAwIDAgMC00LjY0IDEuMmwtNi4wOSA4Ljk1Yy0uNDIuNjMtLjM0IDEuNDcuMiAyIC41NS41NSAxLjQxLjYyIDIuMDUuMThsOC45My02LjE4QTMuNTcgMy41NyAwIDAgMCAxNC42MyA3aDIuODdhLjUuNSAwIDAgMCAwLTFoLTIuOGwzLjE1LTMuMTVaTTkuMiA3LjE0YTIuNjQgMi42NCAwIDAgMSA0LjA0LS4zOSAyLjU4IDIuNTggMCAwIDEtLjM1IDMuOTZMMy45NSAxNi45YS42LjYgMCAwIDEtLjc3LS4wNy41OS41OSAwIDAgMS0uMDctLjc1bDYuMDgtOC45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDaGlja2VuTGVnRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDaGlja2VuTGVnRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDdhNSA1IDAgMCAwLTkuOTMtLjg3Yy0uNDIgMS41LS44MyAyLjI5LTEuMDQgMi42M2wtMS44OCAxLjg5YS41LjUgMCAwIDAgLjM1Ljg1aC4zOWwtMiAyYTIgMiAwIDAgMC0xLjE1IDMuNTVjLjA4LjA2LjE1LjEzLjIuMjFBMiAyIDAgMCAwIDYuNSAxNi4xbDItMnYuNGEuNS41IDAgMCAwIC44NS4zNWwxLjg4LTEuODdjLjM0LS4yMSAxLjE1LS42MyAyLjctMS4wN0E0Ljk3IDQuOTcgMCAwIDAgMTggN1pNNy4zIDExLjVoMS4ydjEuMTlsLTIuNzggMi43OGEuNzUuNzUgMCAwIDAtLjIyLjUzIDEgMSAwIDAgMS0xLjc4LjYzYy0uMS0uMTMtLjIyLS4yNS0uMzUtLjM1QTEgMSAwIDAgMSA0IDE0LjVjLjE4IDAgLjM3LS4wNi41MS0uMjFsMi44LTIuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2hpY2tlbkxlZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENoaWNrZW5MZWdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDdhNSA1IDAgMCAwLTkuOTMtLjg3Yy0uNDIgMS41LS44MyAyLjI5LTEuMDQgMi42M2wtMS44OCAxLjg5YS41LjUgMCAwIDAgLjM1Ljg1aC4zOWwtMiAyYTIgMiAwIDAgMC0xLjE1IDMuNTVjLjA4LjA2LjE1LjEzLjIuMjFBMiAyIDAgMCAwIDYuNSAxNi4xbDItMnYuNGEuNS41IDAgMCAwIC44NS4zNWwxLjg4LTEuODdjLjM0LS4yMSAxLjE1LS42MyAyLjctMS4wN0E0Ljk3IDQuOTcgMCAwIDAgMTggN1ptLTkuNSA1LjY5LTIuNzggMi43OGEuNzUuNzUgMCAwIDAtLjIyLjUzIDEgMSAwIDAgMS0xLjc4LjYzYy0uMS0uMTMtLjIyLS4yNS0uMzUtLjM1QTEgMSAwIDAgMSA0IDE0LjVjLjE4IDAgLjM3LS4wNi41MS0uMjFsMi44LTIuNzlIOC41djEuMTlaTTEzIDNhNCA0IDAgMCAxIDEuMzcgNy43NiAxMS42IDExLjYgMCAwIDAtMy44IDEuNDdMOS40OSAxMy4zdi0yLjIzYS41LjUgMCAwIDAtLjE1LS4zNWwtLjA2LS4wNmEuNS41IDAgMCAwLS4zNS0uMTVINi43MWwxLjA3LTEuMDdhMTEuNTMgMTEuNTMgMCAwIDAgMS4yOC0zLjEgMy45NyAzLjk3IDAgMCAxIC4yMy0uODJBNCA0IDAgMCAxIDEzIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kRWdnRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RFZ2dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNDcgOS42YS41LjUgMCAwIDAgLjE0LS45OCAyLjE0IDIuMTQgMCAwIDAtMi4zNSAyLjE2LjUuNSAwIDAgMCAxIDBjMC0uOC43LTEuMjQgMS4yLTEuMTdaTTMuOTkgNy4xNGMtMi40MSAxLjkxLTIuNDggNS4xNS0xLjM0IDcuMzJhNC44OSA0Ljg5IDAgMCAwIDQuNDIgMi43N2MuNTQgMCAuOTQtLjAxIDEuMjQtLjAzLjk0LS4wMyAxLjExLS4wNCAyLjQyLjQ4YTUuNiA1LjYgMCAwIDAgNS4xMi0uNDdjMS4zOS0uODcgMi4xOS0yLjg4IDIuMDUtNC41Mi0uMDgtLjk4IDAtMS4zNi4wOS0xLjg2LjA2LS4zMy4xMy0uNy4xNy0xLjM0YTcuMSA3LjEgMCAwIDAtMS4wNS0zLjgxIDcuNjMgNy42MyAwIDAgMC0yLjcyLTIuODUgNi4xOCA2LjE4IDAgMCAwLTUuODYtLjE1IDcuMTUgNy4xNSAwIDAgMC0zLjA3IDMgNS4xIDUuMSAwIDAgMS0xLjQ3IDEuNDZabTEwLjkxIDMuMzNhNC41IDQuNSAwIDEgMS04Ljk5IDAgNC41IDQuNSAwIDAgMSA4Ljk5IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kRWdnUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kRWdnUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4wNiA5LjU4YS41LjUgMCAxIDAgLjE0LTFjLS45NC0uMTItMS43OC42LTEuNzggMS42NGEuNS41IDAgMCAwIDEgMGMwLS40Ni4zMi0uNjguNjQtLjY0Wm0uMzUgNS4zOGE0LjUgNC41IDAgMSAwIDAtOC45OSA0LjUgNC41IDAgMCAwIDAgOVptMC0xYTMuNSAzLjUgMCAxIDEgMC02Ljk5IDMuNSAzLjUgMCAwIDEgMCA3Wm0xLjIyLTExLjg5YzEuMDQuMDcgMi4wMi4zOCAyLjcyLjgzYTcuNiA3LjYgMCAwIDEgMi43IDIuODMgNy4xIDcuMSAwIDAgMSAxLjA1IDMuODIgOS44NCA5Ljg0IDAgMCAxLS4yMSAxLjUzYy0uMDYuMzItLjEuNjYtLjA0IDEuMzguMDcuODUtLjEgMS43OC0uNDYgMi42YTQuNTQgNC41NCAwIDAgMS0xLjY4IDIuMDcgNS43MSA1LjcxIDAgMCAxLTUuMjIuNDhjLS44LS4zMy0xLjA4LS40LTEuMzgtLjQyYTYuNyA2LjcgMCAwIDAtLjY1IDBjLS4zLjAyLS42Ny4wMy0xLjE4LjAzYTUuMDUgNS4wNSAwIDAgMS00LjU2LTIuODRDMS41OSAxMi4yIDEuNjIgOC45IDQuMSA2Ljk0Yy43NS0uNi45OC0uOCAxLjI0LTEuMjIuNDItLjcuODItMS4yNSAxLjMtMS43M0E3LjcgNy43IDAgMCAxIDguNCAyLjc0YTUuOSA1LjkgMCAwIDEgMy4yMy0uNjdabS0uMDcgMWMtLjktLjA2LTEuODUuMS0yLjY4LjU1YTYuNyA2LjcgMCAwIDAtMS41MyAxLjA5Yy0uNC4zOS0uNzUuODYtMS4xNCAxLjUyLS4zNy42LS43My45LTEuNDkgMS41LTIgMS41OS0yLjEgNC4zMS0xLjExIDYuMTlhNC4wNSA0LjA1IDAgMCAwIDMuNjcgMi4zbDEuMTQtLjAyaC4wMmMuMjctLjAxLjUtLjAyLjczIDAgLjQ4LjAyLjg5LjE2IDEuNy40OCAxLjQ2LjU4IDMgLjQxIDQuMzEtLjQuNTQtLjM0IDEtLjkyIDEuMy0xLjYxLjMtLjcuNDMtMS40Ni4zOC0yLjEzYTUuODIgNS44MiAwIDAgMSAuMDgtMS44N2MuMDYtLjMuMTItLjYzLjE2LTEuMTlhNi4xMiA2LjEyIDAgMCAwLS45MS0zLjI2IDYuNiA2LjYgMCAwIDAtMi4zNy0yLjQ4IDQuOTkgNC45OSAwIDAgMC0yLjI2LS42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RGaXNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RGaXNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNjMgMy43Yy0xLjUgMS41LTEuNzYgMy44Ny0xLjcyIDUuNjdhLjQuNCAwIDAgMS0uMzcuNDFjLTEuNTIuMS0zLjM5LjQxLTQuOTIgMS4yMy0uNTIuMjctLjcuOC0uNTggMS4yNy4xMi40NS41LjgzIDEuMDIuOTIuNy4xNCAxLjUuMyAyLjE4LjUyLjM1LjEuNjUuMjEuOS4zMy4yNi4xMi40Mi4yMi41LjMuMDkuMDkuMi4yNS4zMS41LjEyLjI2LjIzLjU3LjMzLjkxLjIxLjY5LjM4IDEuNDguNTEgMi4xOC4xLjUyLjQ3LjkuOTMgMS4wMi40Ny4xMyAxLS4wNiAxLjI3LS41Ny44Mi0xLjU0IDEuMTItMy40IDEuMjMtNC45M2EuNC40IDAgMCAxIC40LS4zN2MxLjguMDUgNC4xOS0uMjIgNS42OS0xLjcyLjg5LS45IDEuMzMtMi4wOCAxLjU0LTMuMjUuMi0xLjE3LjE3LTIuMzcuMDgtMy4zMmEzIDMgMCAwIDAtMi43My0yLjczIDEyLjcgMTIuNyAwIDAgMC0zLjMyLjA4Yy0xLjE3LjItMi4zNS42NS0zLjI1IDEuNTRabTQuNjIuOGEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kRmlzaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZEZpc2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuOTEgOS4zNWMtLjA0LTEuNzYuMjQtMy43NiAxLjQzLTQuOTUuNy0uNyAxLjY2LTEuMDggMi43MS0xLjI2YTExLjcgMTEuNyAwIDAgMSAzLjA2LS4wN2MuOTguMDkgMS43My44NCAxLjgyIDEuODIuMDkuOS4xMSAyLS4wNyAzLjA2YTQuOTcgNC45NyAwIDAgMS0xLjI2IDIuNzFjLTEuMTkgMS4yLTMuMTkgMS40Ny00Ljk1IDEuNDNhMS40IDEuNCAwIDAgMC0xLjQzIDEuM2MtLjEgMS40Ny0uNCAzLjE3LTEuMTEgNC41Mi0uMDQuMDctLjA3LjA4LS4wOC4wOWEuMS4xIDAgMCAxLS4wNiAwYy0uMDctLjAyLS4xNi0uMS0uMi0uMjUtLjEzLS43LS4zLTEuNTQtLjUzLTIuMjhhOC4zNSA4LjM1IDAgMCAwLS4zOC0xLjAzYy0uMTMtLjMtLjMtLjU4LS41LS44LS4yMS0uMi0uNS0uMzYtLjgtLjUtLjMtLjE0LS42Ni0uMjctMS4wMy0uMzgtLjc0LS4yMi0xLjU3LS40LTIuMjgtLjU0LS4xNi0uMDMtLjIzLS4xMy0uMjUtLjJhLjEuMSAwIDAgMSAwLS4wNmMuMDEgMCAuMDMtLjA0LjA5LS4wN2ExMS41MyAxMS41MyAwIDAgMSA0LjUyLTEuMTEgMS40IDEuNCAwIDAgMCAxLjMtMS40M1ptLjcyLTUuNjZjLTEuNSAxLjUtMS43NiAzLjg4LTEuNzIgNS42OGEuNC40IDAgMCAxLS4zNy40MWMtMS41Mi4xLTMuMzkuNDEtNC45MiAxLjIzLS41Mi4yNy0uNy44LS41OCAxLjI3LjEyLjQ1LjUuODMgMS4wMi45Mi43LjE0IDEuNS4zIDIuMTguNTIuMzUuMS42NS4yMS45LjMzLjI2LjEyLjQyLjIyLjUuMy4wOS4wOS4yLjI1LjMxLjUuMTIuMjYuMjMuNTcuMzMuOTEuMjEuNjkuMzggMS40OC41MSAyLjE4LjEuNTIuNDcuOS45MyAxLjAyLjQ3LjEzIDEtLjA2IDEuMjctLjU3LjgyLTEuNTQgMS4xMi0zLjQgMS4yMy00LjkzYS40LjQgMCAwIDEgLjQtLjM3YzEuOC4wNSA0LjE5LS4yMiA1LjY5LTEuNzIuODktLjkgMS4zMy0yLjA4IDEuNTQtMy4yNS4yLTEuMTcuMTctMi4zNy4wOC0zLjMyYTMgMyAwIDAgMC0yLjczLTIuNzMgMTIuNyAxMi43IDAgMCAwLTMuMzIuMDhjLTEuMTcuMi0yLjM1LjY1LTMuMjUgMS41NFptNC42Mi44YS43NS43NSAwIDEgMSAwIDEuNTEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kR3JhaW5zRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RHcmFpbnNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNDMgMi4yMWEuNjUuNjUgMCAwIDAtLjg2IDAgNS43MiA1LjcyIDAgMCAwLTEuOTIgNC4zNWMwIC4xOC4wOS4zNC4yNC40M0E3LjQgNy40IDAgMCAxIDkuNjMgOC40YS41LjUgMCAwIDAgLjc0IDAgNy40IDcuNCAwIDAgMSAxLjc0LTEuNDIuNS41IDAgMCAwIC4yNC0uNDNjLjAyLTEuNTktLjYyLTMuMi0xLjkyLTQuMzVabS03LjQxIDEwYS42Ni42NiAwIDAgMSAuNi0uNzJBNi4zNiA2LjM2IDAgMCAxIDEwIDE1LjMzYTYuMzYgNi4zNiAwIDAgMSA2LjM4LTMuODRjLjM2LjAzLjY0LjM1LjYuNzJBNi4zNyA2LjM3IDAgMCAxIDEwLjY0IDE4aC0uNDZjLS4wNyAwLS4xMiAwLS4xOC0uMDJhLjY2LjY2IDAgMCAxLS4xOC4wMmgtLjQ2YTYuMzcgNi4zNyAwIDAgMS02LjM0LTUuOFpNMTAgMTAuODNhNi4zNiA2LjM2IDAgMCAwLTYuMzgtMy44NC42Ni42NiAwIDAgMC0uNi43MmMuMDguOS4zNSAxLjc1Ljc2IDIuNWEuNS41IDAgMCAwIC40My4yNmMyLjEuMDEgNC4wMy45MiA1LjM3IDIuMzkuMTEuMTIuMjcuMTguNDIuMTZhLjUuNSAwIDAgMCAuNDItLjE2IDcuMzYgNy4zNiAwIDAgMSA1LjM2LTIuNC41LjUgMCAwIDAgLjQ0LS4yNWMuNDEtLjc1LjY4LTEuNi43Ni0yLjVhLjY2LjY2IDAgMCAwLS42LS43MkE2LjM2IDYuMzYgMCAwIDAgMTAgMTAuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kR3JhaW5zUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kR3JhaW5zUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC40MyAyLjIxYS42NS42NSAwIDAgMC0uODYgMCA1LjczIDUuNzMgMCAwIDAtMS43NCA1Ljc0IDcuMTEgNy4xMSAwIDAgMC00LjItLjk2LjY2LjY2IDAgMCAwLS42MS43MiA2Ljk5IDYuOTkgMCAwIDAgMS42NSAzLjc3Yy0uMzUtLjAyLS43LS4wMi0xLjA1IDBhLjY2LjY2IDAgMCAwLS42LjczQTYuMzcgNi4zNyAwIDAgMCA5LjM2IDE4aDEuMjhjMy4zIDAgNi4wNC0yLjUxIDYuMzQtNS44YS42Ni42NiAwIDAgMC0uNi0uNzFjLS4zNi0uMDMtLjctLjAzLTEuMDUtLjAxYTYuOTkgNi45OSAwIDAgMCAxLjY1LTMuNzcuNjYuNjYgMCAwIDAtLjYtLjcyIDcuMSA3LjEgMCAwIDAtNC4yMS45NmMuNTItMi0uMDYtNC4yNC0xLjc0LTUuNzRaTTEwIDE0LjQzYTcuMTUgNy4xNSAwIDAgMC0zLjQ3LTIuNiA2LjE3IDYuMTcgMCAwIDEtMi40Ny0zLjg2YzEuNTQtLjA1IDMgLjUgNC4xMiAxLjQ1Ljc2LjY0Ljk2IDEuMjMgMS4xNSAxLjc2bC4yMi41NGEuNS41IDAgMCAwIC45IDBsLjIyLS41NGMuMTgtLjUzLjQtMS4xMiAxLjE1LTEuNzZhNi4xMiA2LjEyIDAgMCAxIDQuMTItMS40NSA2LjE3IDYuMTcgMCAwIDEtMi41IDMuOUE3LjE1IDcuMTUgMCAwIDAgMTAgMTQuNDJaTTkuMzYgMTdhNS4zNyA1LjM3IDAgMCAxLTUuMy00LjUzIDYuMTMgNi4xMyAwIDAgMSA1LjUgMy4xMy41LjUgMCAwIDAgLjg4IDAgNi4xMyA2LjEzIDAgMCAxIDUuNS0zLjEzIDUuMzcgNS4zNyAwIDAgMS01LjMgNC41M0g5LjM2Wk0xMCA5LjgyYTQuNzQgNC43NCAwIDAgMSAwLTYuNjQgNC43NCA0Ljc0IDAgMCAxIDAgNi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RQaXp6YUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kUGl6emFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzLjk2YzAtMS4xLjktMi4wMyAyLjAzLTEuOTYgNC40NS4yOCA4LjM1IDEuNzcgMTEuNCA0LjcuODcuODIuNyAyLjE3LS4yIDIuODZsLS4yNS4xOS0uNC0uNDRWOS4zQTE2LjM3IDE2LjM3IDAgMCAwIDQuODggNC41SDR2LS41NVpNNCA1LjVWMTYuNWExLjUgMS41IDAgMCAwIDIuNCAxLjJMOCAxNi41YTEgMSAwIDAgMCAyIDB2LTJhLjUuNSAwIDAgMSAxLS4wNlYxNWExIDEgMCAwIDAgMiAwdi0yLjI0Yy44Mi0uNiAyLjA5LTEuNTYgMy4xOS0yLjRsLS4zMy0uMzdBMTUuMzcgMTUuMzcgMCAwIDAgNC44NyA1LjVINFptNC4yNSAyLjc0YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuOTcgMmEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tMi45NiAyLjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RQaXp6YVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZFBpenphUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgOWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzIgMS4yNmEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk03LjUgMTMuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTQgMy45NmMwLTEuMS45LTIuMDMgMi4wMy0xLjk2IDQuNDUuMjggOC4zNSAxLjc3IDExLjQgNC43Ljg3LjgyLjcgMi4xNy0uMiAyLjg2LTEuMjQuOTUtMy4xMiAyLjQtNC4yMyAzLjJ2MS43NGMwIC43Mi0uNTUgMS41LTEuNSAxLjUtLjE4IDAtLjM0LS4wMy0uNS0uMDh2LjA5YzAgLjctLjU1IDEuNDktMS41IDEuNDktLjc1IDAtMS4yNS0uNS0xLjQyLTEuMDVMNi40IDE3LjdBMS41IDEuNSAwIDAgMSA0IDE2LjVWMy45NlptNyAxMC41NGMwIC4yNi4yLjUuNS41cy41LS4yNC41LS41di0yYS41LjUgMCAwIDEgLjIxLS40Yy43OC0uNTYgMi4xLTEuNTcgMy4yOC0yLjQ3QTE1LjQzIDE1LjQzIDAgMCAwIDUgNS41MVYxNi41YzAgLjQxLjQ3LjY0LjguNGwyLjQtMS44YS41LjUgMCAwIDEgLjguNHYuNWMwIC4yNS4yLjUuNS41YS41LjUgMCAwIDAgLjUtLjV2LTEuNWEuNS41IDAgMCAxIDEgMFptNS42Mi01LjczYy40Ni0uMzYuNS0xIC4xMi0xLjM2LTIuODYtMi43Mi02LjUyLTQuMTUtMTAuNzctNC40YS45My45MyAwIDAgMC0uOTcuOTV2LjU1YzQuMzMuMDQgOC40IDEuNyAxMS4zIDQuNWwuMzItLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZFRvYXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RUb2FzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc4IDcuNDVhLjUuNSAwIDAgMC0uNS41djQuMWMwIC4yNy4yMi41LjUuNWg0LjM0YS41LjUgMCAwIDAgLjUtLjV2LTQuMWEuNS41IDAgMCAwLS41LS41SDYuNzhabS41IDFoMy4zNHYzLjFINy4yOHYtMy4xWk01LjQ1IDIuNWMtMS42MyAwLTMgMS4xLTMuNiAyLjQ4LS42IDEuMzMtLjQ5IDMgLjgxIDQuMjJ2NS45OGMwIC4zLS4wMS44Ny4yOCAxLjM2LjM2LjYgMS4wOC45NiAyLjI2Ljk2aDEwLjE4Yy40IDAgLjc4LS4wMiAxLjEtLjA3LjMtLjA2LjYtLjE3Ljg1LS4zOS41LS40My41OS0xLjEzLjU5LTEuOTUgMC0uODgtLjA0LTEuOTItLjA3LTIuOTNhNjYuODggNjYuODggMCAwIDEtLjA3LTIuOTcgNC42OCA0LjY4IDAgMCAwIDEuMjgtMyAzLjczIDMuNzMgMCAwIDAtMy42OC0zLjY5SDUuNDVabTcuMzggMWMuNjIgMCAxLjM5LjMgMiAuODIuNi41MS45OSAxLjE4IDEgMS44NS0uMDUuNzUtLjIxIDEuMjQtLjQxIDEuNTgtLjE2LjI3LS4zNS40OC0uNTYuNjlsLS4xNi4xNWExMy44MSAxMy44MSAwIDAgMC0uMzEuM2wtLjE0LjEzdi4yYy0uMDQgMS0uMDMgMi40NC0uMDIgMy44NHYuMDFsLjAxIDIuMDJjMCAuNC0uMDIuNy0uMDYuOS0uMDQuMi0uMS4yOC0uMTQuMzItLjA0LjA0LS4xMi4xLS4zMi4xM2E5Ljg0IDkuODQgMCAwIDEtLjg5LjA2SDUuMmMtMSAwLTEuMy0uMjktMS40LS40Ny0uMTQtLjIzLS4xNC0uNTEtLjE0LS44NFY4Ljk5YS41LjUgMCAwIDAtLjE4LS4zOSAyLjY1IDIuNjUgMCAwIDEtLjcyLTMuMjIgMy4wNSAzLjA1IDAgMCAxIDIuNy0xLjg4aDcuMzdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kVG9hc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RUb2FzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4yMyA3Ljk1YzAtLjI3LjIyLS41LjUtLjVoNC4zNGMuMjggMCAuNS4yMy41LjV2NC4xYS41LjUgMCAwIDEtLjUuNUg2LjczYS41LjUgMCAwIDEtLjUtLjV2LTQuMVptMSAzLjZoMy4zNHYtMy4xSDcuMjN2My4xWk0xLjc5IDQuOThBNC4wNSA0LjA1IDAgMCAxIDUuNCAyLjVoOS45M0EzLjczIDMuNzMgMCAwIDEgMTkgNi4xOGMwIDEuMzMtLjc2IDIuNDYtMS4yOCAzLjAxIDAgLjcuMDIgMS42Ni4wNiAyLjY3di4zYy4wNCAxIC4wOCAyLjA1LjA4IDIuOTMgMCAuODItLjEgMS41Mi0uNTkgMS45NS0uMjQuMjItLjU0LjMzLS44Ni4zOS0uMzEuMDUtLjY4LjA3LTEuMS4wN0g1LjE2Yy0xLjE4IDAtMS45LS4zNS0yLjI2LS45NmEyLjUzIDIuNTMgMCAwIDEtLjI4LTEuNDVWOS4yYTMuNjQgMy42NCAwIDAgMS0uODItNC4yMlpNNS40IDMuNWMtMS4xNiAwLTIuMjEuOC0yLjcgMS44OGEyLjY1IDIuNjUgMCAwIDAgLjczIDMuMjJjLjEyLjEuMTguMjQuMTguMzh2Ni4yMWMwIC4zMyAwIC42LjE0Ljg0LjEuMTguNC40NyAxLjQuNDdoNy42M2MuNCAwIC42OC0uMDIuODktLjA2LjItLjAzLjI4LS4wOS4zMi0uMTMuMDUtLjA0LjEtLjEyLjE0LS4zMi4wNC0uMi4wNi0uNS4wNi0uOXYtMmMtLjAyLTEuNDItLjAzLTIuODcgMC0zLjg3YS41LjUgMCAwIDEgLjE1LS4zNGwuMy0uM2MuMjQtLjIxLjQ0LS40LjYzLS42OC4yNS0uMzUuNDYtLjg2LjUtMS43MyAwLS42Ny0uMzktMS4zNC0xLTEuODVhMy4yOCAzLjI4IDAgMCAwLTEuOTktLjgySDUuNFptOS43MSAxMi42OS0uMDguMzFoLjNjLjQgMCAuNjktLjAyLjktLjA2LjIzLS4wNC4zMy0uMS40LS4xNS4xMi0uMS4yNC0uMzYuMjQtMS4yIDAtLjg2LS4wNC0xLjg5LS4wNy0yLjlsLS4wMS0uM2MtLjA0LTEuMS0uMDctMi4xNi0uMDUtMi45MmEuNS41IDAgMCAxIC4xNS0uMzUgMy43MyAzLjczIDAgMCAwIDEuMTItMi40NCAyLjczIDIuNzMgMCAwIDAtMi42NS0yLjY4bC4wNi4wNmEzLjUyIDMuNTIgMCAwIDEgMS4zNSAyLjYydi4wM2E0LjI0IDQuMjQgMCAwIDEtLjY3IDIuMjZjLS4yNi4zOC0uNTguNjctLjg0LjkxbC0uMDcuMDdjLS4wMi45Ny0uMDIgMi4zIDAgMy42djIuMDRjMCAuNDItLjAyLjgtLjA4IDEuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvcm1GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9ybUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMTBhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabS41IDMuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMi41LTFhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVptMSA2YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk04IDEzLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBabTEtNGMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVptLjUgMy41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb3JtUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb3JtUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0xIDZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTAtMWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpNOCAxMy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0yLTRjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS41IDMuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9ybU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvcm1NdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMTFhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCIsIFwiTTYgM2g2YTMgMyAwIDAgMSAzIDN2NmEyLjk5IDIuOTkgMCAwIDEtMyAzSDZhMi45OSAyLjk5IDAgMCAxLTMtM1Y2YTMgMyAwIDAgMSAzLTNabS0uNSAzYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTEgNmExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptMy0yYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCIsIFwiTTUuNzYgMTZBMyAzIDAgMCAwIDggMTdoNC41YTQuNSA0LjUgMCAwIDAgNC41LTQuNVY4YTMgMyAwIDAgMC0xLTIuMjR2Ni43NGMwIC4xMiAwIC4yNC0uMDIuMzZBMy41IDMuNSAwIDAgMSAxMi41IDE2SDUuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb3JtTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvcm1NdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDZhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIiwgXCJNNi41IDEyYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0wLTFhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCIsIFwiTTkuNSAxMGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiLCBcIk0zIDZhMyAzIDAgMCAxIDMtM2g2YTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2WlwiLCBcIk04IDE3YTMgMyAwIDAgMS0yLjI0LTFoNi43NGEzLjUgMy41IDAgMCAwIDMuNS0zLjVWNS43NkEzIDMgMCAwIDEgMTcgOHY0LjVhNC41IDQuNSAwIDAgMS00LjUgNC41SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb3JtTmV3RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvcm1OZXdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyA5LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTYuNSAxNGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjMuNmMtLjc1LS4zOC0xLjYtLjYtMi41LS42aC01YS41LjUgMCAwIDAgMCAxaDEuODRhNS41IDUuNSAwIDAgMC0xLjc0IDdINmEzIDMgMCAwIDEtMy0zVjZabTIuNS0xYS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabTEgNmExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNOCAxMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWm0xMSAxYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9ybU5ld1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9ybU5ld1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjJjLjM1LjEuNjguMjQgMSAuNFY2YTMgMyAwIDAgMC0zLTNINlptMy41IDdoMS44NGMuOS0uNjMgMS45OC0xIDMuMTYtMWgtNWEuNS41IDAgMCAwIDAgMVptLTQtNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0xIDZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTAtMWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptMCA1YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0wLTJhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGcHMxMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnBzMTIwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMi43NWEuNzUuNzUgMCAwIDAtMS40LS4zOSAxLjcxIDEuNzEgMCAwIDEtLjEuMTZsLS4zMy40MWMtLjMuMzMtLjcyLjY4LTEuMi44N2EuNzUuNzUgMCAwIDAgLjU2IDEuNGMuMzYtLjE1LjY5LS4zNC45Ny0uNTV2NC42YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm04IDEuNzVhMi41IDIuNSAwIDEgMSA1IDB2M2EyLjUgMi41IDAgMCAxLTUgMHYtM1ptMy41IDBhMSAxIDAgMSAwLTIgMHYzYTEgMSAwIDEgMCAyIDB2LTNaTTMgMTIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFINHYyaDEuNWEuNS41IDAgMCAxIDAgMUg0djEuNWEuNS41IDAgMCAxLTEgMHYtNVptNSAwYzAtLjI4LjIyLS41LjUtLjVIMTBhMiAyIDAgMCAxIDAgNEg5djEuNWEuNS41IDAgMCAxLTEgMHYtNVpNOSAxNWgxYTEgMSAwIDEgMCAwLTJIOXYyWm01Ljc1LTNhMS43NSAxLjc1IDAgMCAwIDAgMy41aC41YS43NS43NSAwIDAgMSAwIDEuNWgtLjc2YS40OS40OSAwIDAgMS0uNDktLjQ5di0uMDFhLjUuNSAwIDAgMC0xIDB2LjAxYzAgLjgyLjY3IDEuNDkgMS40OSAxLjQ5aC43NmExLjc1IDEuNzUgMCAxIDAgMC0zLjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNzZjLjI3IDAgLjQ5LjIyLjQ5LjQ5di4wMWEuNS41IDAgMSAwIDEgMHYtLjAxYzAtLjgyLS42Ny0xLjQ5LTEuNDktMS40OWgtLjc2Wk03Ljk5IDQuMzd2LjAxYS43NS43NSAwIDAgMS0xLjQ4LS4yNWMtLjA3LjQxIDAgMCAwIDBhMS43MSAxLjcxIDAgMCAxIC4xLS4zN0EyLjcgMi43IDAgMCAxIDkuMjUgMmMuOTYgMCAxLjczLjM4IDIuMjIgMSAuNDguNjEuNjUgMS40LjUyIDIuMTMtLjE0LjgxLS42IDEuMy0xLjE1IDEuNjNhNi43IDYuNyAwIDAgMS0xLjQ4LjU5Yy0uNDUuMTYtLjc2LjMzLS45OC41Ny0uMTEuMTMtLjIyLjMtLjMuNThoMy4xN2EuNzUuNzUgMCAwIDEgMCAxLjVoLTRhLjc1Ljc1IDAgMCAxLS43NS0uNzVjMC0xLjAxLjI3LTEuNzcuNzYtMi4zMy40OC0uNTMgMS4wOS0uOCAxLjU5LS45OGwuNDUtLjE2Yy4zMi0uMS41Ni0uMi43OS0uMzIuMjQtLjE0LjM3LS4zLjQyLS41OWExLjIgMS4yIDAgMCAwLS4yMi0uOTRjLS4xOC0uMjMtLjUtLjQzLTEuMDQtLjQzLS42MiAwLS45LjI1LTEuMDYuNDVhMS4yNSAxLjI1IDAgMCAwLS4yLjQzWlwiXSk7XG5leHBvcnQgY29uc3QgRnBzMTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGcHMxMjBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAxMGEuNS41IDAgMCAxLS41LS41VjMuOTNjLS4zMy4zNC0uNzUuNy0xLjI0IDFhLjUuNSAwIDEgMS0uNTItLjg2IDUuNTggNS41OCAwIDAgMCAxLjgzLTEuODIuNS41IDAgMCAxIC45My4yNlY5LjVhLjUuNSAwIDAgMS0uNS41Wk0xMiA0LjVhMi41IDIuNSAwIDAgMSA1IDB2M2EyLjUgMi41IDAgMCAxLTUgMHYtM1ptNCAwYTEuNSAxLjUgMCAwIDAtMyAwdjNhMS41IDEuNSAwIDAgMCAzIDB2LTNabS0xMyA4YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMUg0djJoMS41YS41LjUgMCAwIDEgMCAxSDR2MS41YS41LjUgMCAwIDEtMSAwdi01Wm01IDBjMC0uMjguMjItLjUuNS0uNUgxMGEyIDIgMCAxIDEgMCA0SDl2MS41YS41LjUgMCAwIDEtMSAwdi01Wk05IDE1aDFhMSAxIDAgMSAwIDAtMkg5djJabTUuNzUtM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzZhLjQ5LjQ5IDAgMCAxLS40OS0uNDl2LS4wMWEuNS41IDAgMCAwLTEgMHYuMDFjMCAuODIuNjcgMS40OSAxLjQ5IDEuNDloLjc2YTEuNzUgMS43NSAwIDEgMCAwLTMuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC43NmMuMjcgMCAuNDkuMjIuNDkuNDl2LjAxYS41LjUgMCAwIDAgMSAwdi0uMDFjMC0uODItLjY3LTEuNDktMS40OS0xLjQ5aC0uNzZaTTYuOTkgNC4wOGEuNS41IDAgMCAxLS41Ny40MUM1Ljk0IDQuNDEgNiAzLjkyIDYgMy45MnYtLjA0YTEuNjYgMS42NiAwIDAgMSAuMDktLjI4Yy4wNi0uMTguMTctLjQxLjM0LS42NUEyLjQ0IDIuNDQgMCAwIDEgOC41IDJjLjg2IDAgMS41OS4zIDIuMDUuODguNDYuNTguNTkgMS4zNi40NCAyLjJhMi4xMiAyLjEyIDAgMCAxLTEgMS40OWMtLjM0LjIxLS43NS4zOC0xLjEuNTJsLS4zMy4xNGMtLjQ2LjItLjg0LjQtMS4xLjcyLS4yLjI0LS4zNi41Ni0uNDMgMS4wNWgzLjQ3YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVjMC0uOTcuMjUtMS42Ny42OS0yLjE5LjQyLS41Ljk4LS43OSAxLjQ3LTFsLjQzLS4xOGMuMzMtLjEzLjYtLjI1Ljg1LS40LjMtLjIuNS0uNDMuNTctLjgxLjExLS42Ni0uMDEtMS4xMy0uMjQtMS40Mi0uMjMtLjMtLjYzLS41LTEuMjctLjUtLjcgMC0xLjA2LjI5LTEuMjYuNTVhMS41IDEuNSAwIDAgMC0uMjUuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBGcHMxMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnBzMTI0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuMjYgMy4wM2ExIDEgMCAwIDEgLjc2Ljk3djhhMSAxIDAgMCAxLTIgMFY2LjVsLS40Ny4zM2ExIDEgMCAwIDEtMS4xLTEuNjYgNi41NSA2LjU1IDAgMCAwIDEuNjktMS42M3YtLjAxYTEgMSAwIDAgMSAxLjEyLS41Wk0xOCAzYTMgMyAwIDAgMC0zIDN2NGEzIDMgMCAwIDAgNiAwVjZhMyAzIDAgMCAwLTMtM1ptLTEgM2ExIDEgMCAxIDEgMiAwdjRhMSAxIDAgMCAxLTIgMFY2Wk00IDE1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoM2EuNzUuNzUgMCAwIDEgMCAxLjVINS41VjE4aDEuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDUuNXYxLjczYS43NS43NSAwIDAgMS0xLjUgMHYtNS40OFptNi4yNS0uNzVhLjc1Ljc1IDAgMCAwLS43NS43NXY1LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjE5LjVoLjc1YTIuMjUgMi4yNSAwIDEgMCAwLTQuNWgtMS41Wm0xLjUgM0gxMXYtMS41aC43NWEuNzUuNzUgMCAwIDEgMCAxLjVabTMuNS0uODhjMC0xLjE3Ljk1LTIuMTIgMi4xMy0yLjEySDE4YTIgMiAwIDAgMSAyIDIgLjc1Ljc1IDAgMCAxLTEuNSAwIC41LjUgMCAwIDAtLjUtLjVoLS42M2EuNjIuNjIgMCAxIDAgMCAxLjI1aC41YTIuMTMgMi4xMyAwIDAgMSAwIDQuMjVoLS42MmEyIDIgMCAwIDEtMi0yIC43NS43NSAwIDAgMSAxLjUgMGMwIC4yOC4yMi41LjUuNWguNjNhLjYyLjYyIDAgMSAwIDAtMS4yNWgtLjVhMi4xMyAyLjEzIDAgMCAxLTIuMTMtMi4xM1pNOC4xMyA2LjE5YTEgMSAwIDAgMCAxLjI5LS41NGwuMDMtLjA1Yy4wNC0uMDYuMS0uMTQuMi0uMjIuMTYtLjE2LjQ5LS4zNyAxLjEtLjM3LjQyIDAgLjc1LjEzLjk0LjMuMTkuMTUuMzEuMzcuMzEuNyAwIC41NS0uMTcuODYtLjQyIDEuMTItLjMuMzItLjczLjU2LTEuMzMuOWE2LjkgNi45IDAgMCAwLTEuOCAxLjMzQTMuODIgMy44MiAwIDAgMCA3LjUgMTJhMSAxIDAgMCAwIDEgMUgxM2ExIDEgMCAxIDAgMC0ySDkuNzJjLjA3LS4xMi4xNS0uMjIuMjMtLjMyLjMtLjMzLjcyLS42IDEuMy0uOTJsLjEtLjA2Yy41MS0uMyAxLjE2LS42NiAxLjY3LTEuMTlDMTMuNiA3LjkgMTQgNy4xIDE0IDZjMC0uOTEtLjM4LTEuNy0xLjAxLTIuMjNBMy40NCAzLjQ0IDAgMCAwIDEwLjc1IDNjLTEuMTQgMC0xLjk0LjQyLTIuNDUuODlhMy4xMSAzLjExIDAgMCAwLS43My45OXMtLjIuNTIgMCAwYTEgMSAwIDAgMCAuNTYgMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgRnBzMTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGcHMxMjRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMy43NWEuNzUuNzUgMCAwIDAtMS4zNi0uNDRsLS4wMi4wMmE2LjM2IDYuMzYgMCAwIDEtLjE4LjI1Yy0uMTMuMTYtLjMxLjQtLjU0LjY0YTcuMyA3LjMgMCAwIDEtMS41NCAxLjM5Ljc1Ljc1IDAgMCAwIC43OCAxLjI4Yy40OC0uMjkuOTUtLjcgMS4zNi0xLjF2Ni40NmEuNzUuNzUgMCAwIDAgMS41IDB2LTguNVptMy40OSAxLjY0QS43NS43NSAwIDAgMSA4IDUuMTNWNS4xQTEuMzYgMS4zNiAwIDAgMSA4LjA0IDVsLjA4LS4yNmMuMDgtLjIuMjEtLjQ2LjQzLS43MkEzLjA0IDMuMDQgMCAwIDEgMTEgM2EzIDMgMCAwIDEgMyAzYzAgMS4wMi0uMzYgMS43OC0uOSAyLjM2LS40Ny41Mi0xLjA5LjktMS42IDEuMjNsLS4xLjA2Yy0uNTguMzYtMS4wNC42Ny0xLjM3IDEuMDYtLjE5LjIyLS4zNC40Ny0uNDMuNzloMy42NWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NWMwLTEuMDcuMzUtMS44OC44OC0yLjUuNS0uNiAxLjE3LTEuMDMgMS43Mi0xLjM3bC4wMy0uMDJjLjU4LS4zNiAxLjAzLS42NSAxLjM2LTEgLjMtLjM0LjUxLS43NC41MS0xLjM2IDAtLjgzLS42Ny0xLjUtMS41LTEuNS0uNzggMC0xLjEzLjI4LTEuMy40OGExLjEyIDEuMTIgMCAwIDAtLjIxLjRaTTE3Ljk5IDNBMyAzIDAgMCAwIDE1IDZ2NGEzIDMgMCAwIDAgNiAwVjZhMyAzIDAgMCAwLTMtM1pNMTYuNSA2YTEuNSAxLjUgMCAxIDEgMyAwdjRhMS41IDEuNSAwIDEgMS0zIDBWNlpNNCAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDNhLjc1Ljc1IDAgMCAxIDAgMS41SDUuNVYxOGgxLjc1YS43NS43NSAwIDAgMSAwIDEuNUg1LjV2MS43M2EuNzUuNzUgMCAwIDEtMS41IDB2LTUuNDhabTYuMjUtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2NS41YS43NS43NSAwIDAgMCAxLjUgMFYxOS41aC43NWEyLjI1IDIuMjUgMCAxIDAgMC00LjVoLTEuNVptMS41IDNIMTF2LTEuNWguNzVhLjc1Ljc1IDAgMCAxIDAgMS41Wm0zLjUtLjg4YzAtMS4xNy45NS0yLjEyIDIuMTMtMi4xMkgxOGEyIDIgMCAwIDEgMiAyIC43NS43NSAwIDAgMS0xLjUgMCAuNS41IDAgMCAwLS41LS41aC0uNjNhLjYyLjYyIDAgMSAwIDAgMS4yNWguNWEyLjEzIDIuMTMgMCAwIDEgMCA0LjI1aC0uNjJhMiAyIDAgMCAxLTItMiAuNzUuNzUgMCAwIDEgMS41IDBjMCAuMjguMjIuNS41LjVoLjYzYS42Mi42MiAwIDEgMCAwLTEuMjVoLS41YTIuMTMgMi4xMyAwIDAgMS0yLjEzLTIuMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBGcHMyNDBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnBzMjQwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuOTkgNC4zOGEuNzUuNzUgMCAwIDEtMS40OC0uMjV2LS4wNWExLjkyIDEuOTIgMCAwIDEgLjEtLjMyQTIuNyAyLjcgMCAwIDEgNC4yNSAyYy45NiAwIDEuNzMuMzggMi4yMiAxIC40OC42MS42NSAxLjQuNTIgMi4xMy0uMTQuODEtLjYgMS4zLTEuMTUgMS42M2E2LjcxIDYuNzEgMCAwIDEtMS40OC41OWMtLjQ1LjE2LS43Ni4zMy0uOTguNTctLjExLjEzLS4yMi4zLS4zLjU4aDMuMTdhLjc1Ljc1IDAgMCAxIDAgMS41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1YzAtMS4wMS4yNy0xLjc3Ljc2LTIuMzMuNDgtLjUzIDEuMDktLjggMS41OS0uOThsLjQ1LS4xNmMuMzItLjEuNTYtLjIuNzktLjMyLjI0LS4xNC4zNy0uMy40Mi0uNTlhMS4yIDEuMiAwIDAgMC0uMjItLjk0Yy0uMTgtLjIzLS41LS40My0xLjA0LS40My0uNjIgMC0uOS4yNS0xLjA2LjQ1YTEuMjUgMS4yNSAwIDAgMC0uMi40M1ptMCAwWm0wIDBaTTE2LjUgMkEyLjUgMi41IDAgMCAwIDE0IDQuNXYzYTIuNSAyLjUgMCAwIDAgNSAwdi0zQTIuNSAyLjUgMCAwIDAgMTYuNSAyWm0xIDUuNWExIDEgMCAxIDEtMiAwdi0zYTEgMSAwIDEgMSAyIDB2M1pNMy41IDEyYS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjE2aDEuNWEuNS41IDAgMCAwIDAtMUg0di0yaDIuNWEuNS41IDAgMCAwIDAtMWgtM1ptNSAwYS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjE2aDFhMiAyIDAgMSAwIDAtNEg4LjVabS41IDN2LTJoMWExIDEgMCAxIDEgMCAySDlabTQtMS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWguNzZjLjgyIDAgMS40OS42NyAxLjQ5IDEuNDl2LjAxYS41LjUgMCAwIDEtMSAwdi0uMDFhLjQ5LjQ5IDAgMCAwLS40OS0uNDloLS43NmEuNzUuNzUgMCAwIDAgMCAxLjVoLjVhMS43NSAxLjc1IDAgMSAxIDAgMy41aC0uNzZjLS44MiAwLTEuNDktLjY3LTEuNDktMS40OXYtLjAxYS41LjUgMCAwIDEgMSAwdi4wMWMwIC4yNy4yMi40OS40OS40OWguNzZhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1Wk04Ljc1IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1VjUuNUgxMVYyLjc1YS43NS43NSAwIDAgMSAxLjUgMFY5LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjdIOC43NUEuNzUuNzUgMCAwIDEgOCA2LjI1di0zLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMi45OSA0LjM4WlwiXSk7XG5leHBvcnQgY29uc3QgRnBzMjQwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGcHMyNDBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNC4wOXYtLjAzbC4wNC0uMTJjLjA0LS4xMS4xLS4yNS4yLS4zOS4yLS4yNi41NS0uNTUgMS4yNi0uNTUuNjQgMCAxLjA0LjIgMS4yNy41LjIzLjMuMzUuNzYuMjQgMS40Mi0uMDcuMzgtLjI2LjYxLS41Ny44LS4yNC4xNi0uNTIuMjgtLjg1LjQxbC0uNDMuMThjLS41LjIxLTEuMDUuNS0xLjQ3IDFBMy4yNyAzLjI3IDAgMCAwIDIgOS41YS41LjUgMCAwIDAgLjUuNWg0YS41LjUgMCAwIDAgMC0xSDMuMDNjLjA3LS40OS4yMy0uODEuNDMtMS4wNS4yNi0uMzIuNjQtLjUyIDEuMS0uNzIuMS0uMDUuMi0uMS4zMi0uMTQuMzYtLjE0Ljc3LS4zIDEuMS0uNTIuNDktLjMxLjg5LS43NiAxLjAxLTEuNDkuMTUtLjg0LjAyLTEuNjItLjQ0LTIuMkM2LjEgMi4yOSA1LjM2IDIgNC41IDJhMi40NCAyLjQ0IDAgMCAwLTIuNDkgMS44OHYuMDNTMiA0IDIgMy45MmEuNS41IDAgMCAwIC45OC4xOFptMTAgLjQxYTIuNSAyLjUgMCAwIDEgNSAwdjNhMi41IDIuNSAwIDAgMS01IDB2LTNabTQgM3YtM2ExLjUgMS41IDAgMCAwLTMgMHYzYTEuNSAxLjUgMCAwIDAgMyAwWm0tMTQgNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFINHYyaDEuNWEuNS41IDAgMCAxIDAgMUg0djEuNWEuNS41IDAgMCAxLTEgMHYtNVptNSAwYzAtLjI4LjIyLS41LjUtLjVIMTBhMiAyIDAgMSAxIDAgNEg5djEuNWEuNS41IDAgMCAxLTEgMHYtNVpNOSAxNWgxYTEgMSAwIDEgMCAwLTJIOXYyWm01Ljc1LTNhMS43NSAxLjc1IDAgMSAwIDAgMy41aC41YS43NS43NSAwIDAgMSAwIDEuNWgtLjc2YS40OS40OSAwIDAgMS0uNDktLjQ5di0uMDFhLjUuNSAwIDAgMC0xIDB2LjAxYzAgLjgyLjY3IDEuNDkgMS40OSAxLjQ5aC43NmExLjc1IDEuNzUgMCAxIDAgMC0zLjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNzZjLjI3IDAgLjQ5LjIyLjQ5LjQ5di4wMWEuNS41IDAgMCAwIDEgMHYtLjAxYzAtLjgyLS42Ny0xLjQ5LTEuNDktMS40OWgtLjc2Wk05IDIuNWEuNS41IDAgMCAwLTEgMHY0YS41LjUgMCAwIDAgLjUuNUgxMXYyLjVhLjUuNSAwIDAgMCAxIDB2LTdhLjUuNSAwIDAgMC0xIDBWNkg5VjIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZwczMwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZwczMwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjUgMkEyLjUgMi41IDAgMCAwIDEwIDQuNXYzYTIuNSAyLjUgMCAwIDAgNSAwdi0zQTIuNSAyLjUgMCAwIDAgMTIuNSAyWm0wIDYuNWExIDEgMCAwIDEtMS0xdi0zYTEgMSAwIDEgMSAyIDB2M2ExIDEgMCAwIDEtMSAxWm0tOSAzLjVhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMS41YS41LjUgMCAwIDAgMC0xSDR2LTJoMi41YS41LjUgMCAwIDAgMC0xaC0zWm01IDBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMWEyIDIgMCAxIDAgMC00SDguNVptMS41IDNIOXYtMmgxYTEgMSAwIDEgMSAwIDJabTMtMS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWguNzZjLjgyIDAgMS40OS42NyAxLjQ5IDEuNDl2LjAxYS41LjUgMCAwIDEtMSAwdi0uMDFhLjQ5LjQ5IDAgMCAwLS40OS0uNDloLS43NmEuNzUuNzUgMCAwIDAgMCAxLjVoLjVhMS43NSAxLjc1IDAgMSAxIDAgMy41aC0uNzZjLS44MiAwLTEuNDktLjY3LTEuNDktMS40OXYtLjAxYS41LjUgMCAwIDEgMSAwdi4wMWMwIC4yNy4yMi40OS40OS40OWguNzZhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1Wm0tNi41LTguNWMuNjMgMCAxLS40NiAxLS44OCAwLS40LS4zNy0uODctMS0uODctLjI2IDAtLjQ4LjA4LS42NC4yLS4yLjE1LS40MS4zLS42NS4zLS42MiAwLTEuMDktLjU4LS43LTEuMDZBMi41NCAyLjU0IDAgMCAxIDYuNSAyQzcuODggMiA5IDMuMDYgOSA0LjM4YTIuMyAyLjMgMCAwIDEtLjY2IDEuNkEyLjM3IDIuMzcgMCAwIDEgNi42MiAxMGgtLjI1Yy0uNzggMC0xLjQ3LS4zOC0xLjktLjk2LS4zNi0uNDguMS0xLjA0LjctMS4wNC4yNSAwIC40Ny4xNi42Ny4zMi4xNS4xMS4zMy4xOC41My4xOGguMjVhLjg3Ljg3IDAgMSAwIDAtMS43NUg2LjVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRnBzMzBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZwczMwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi41IDJBMi41IDIuNSAwIDAgMCAxMCA0LjV2M2EyLjUgMi41IDAgMCAwIDUgMHYtM0EyLjUgMi41IDAgMCAwIDEyLjUgMlptMCA3QTEuNSAxLjUgMCAwIDEgMTEgNy41di0zYTEuNSAxLjUgMCAwIDEgMyAwdjNjMCAuODMtLjY3IDEuNS0xLjUgMS41Wm0tOSAzYS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjE2aDEuNWEuNS41IDAgMCAwIDAtMUg0di0yaDIuNWEuNS41IDAgMCAwIDAtMWgtM1ptNSAwYS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjE2aDFhMiAyIDAgMSAwIDAtNEg4LjVabTEuNSAzSDl2LTJoMWExIDEgMCAxIDEgMCAyWm0zLTEuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoLjc2Yy44MiAwIDEuNDkuNjcgMS40OSAxLjQ5di4wMWEuNS41IDAgMCAxLTEgMHYtLjAxYS40OS40OSAwIDAgMC0uNDktLjQ5aC0uNzZhLjc1Ljc1IDAgMCAwIDAgMS41aC41YTEuNzUgMS43NSAwIDEgMSAwIDMuNWgtLjc2Yy0uODIgMC0xLjQ5LS42Ny0xLjQ5LTEuNDl2LS4wMWEuNS41IDAgMCAxIDEgMHYuMDFjMCAuMjcuMjIuNDkuNDkuNDloLjc2YS43NS43NSAwIDAgMCAwLTEuNWgtLjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVpNNi43NSAzaC0uNWMtLjQ5IDAtLjkxLjI4LTEuMTIuNjktLjA4LjE3LS4yNC4zMS0uNDQuMzEtLjM2IDAtLjY1LS4zMi0uNS0uNjVBMi4yNSAyLjI1IDAgMCAxIDYuMjUgMmguNWEyLjI1IDIuMjUgMCAwIDEgMS40MSA0IDIuMjUgMi4yNSAwIDAgMS0xLjQxIDRoLS41Yy0uOTIgMC0xLjcxLS41NS0yLjA2LTEuMzUtLjE1LS4zMy4xNC0uNjUuNS0uNjUuMiAwIC4zNi4xNC40NC4zMS4yLjQxLjYzLjY5IDEuMTIuNjloLjVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDYuNWEuNS41IDAgMCAxIDAtMWguMjVhMS4yNSAxLjI1IDAgMCAwIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRnBzNjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnBzNjBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYzQTIuNSAyLjUgMCAxIDAgNi41IDVoLS4xYy0uMzIgMC0uNjIuMDYtLjkuMTdWNC41YTEgMSAwIDAgMSAxLTFoLjI1Yy40MSAwIC43NS4zNC43NS43NWEuNzUuNzUgMCAwIDAgMS41IDBDOSAzLjAxIDggMiA2Ljc1IDJINi41Wm0tMSA1LjV2LS4xYzAtLjUuNC0uOS45LS45aC4xYTEgMSAwIDEgMS0xIDFabTYtM2ExIDEgMCAxIDEgMiAwdjNhMSAxIDAgMSAxLTIgMHYtM1ptMS0yLjVBMi41IDIuNSAwIDAgMCAxMCA0LjV2M2EyLjUgMi41IDAgMCAwIDUgMHYtM0EyLjUgMi41IDAgMCAwIDEyLjUgMlptLTkgMTBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMS41YS41LjUgMCAwIDAgMC0xSDR2LTJoMi41YS41LjUgMCAwIDAgMC0xaC0zWm01IDBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMWEyIDIgMCAxIDAgMC00SDguNVptMS41IDNIOXYtMmgxYTEgMSAwIDEgMSAwIDJabTMtMS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWguNzVjLjgzIDAgMS41LjY3IDEuNSAxLjVhLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNWgtLjc1YS43NS43NSAwIDAgMCAwIDEuNWguNWExLjc1IDEuNzUgMCAxIDEgMCAzLjVoLS43NWExLjUgMS41IDAgMCAxLTEuNS0xLjUuNS41IDAgMCAxIDEgMGMwIC4yOC4yMi41LjUuNWguNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRnBzNjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZwczYwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi41IDJBMi41IDIuNSAwIDAgMCAxMCA0LjV2M2EyLjUgMi41IDAgMCAwIDUgMHYtM0EyLjUgMi41IDAgMCAwIDEyLjUgMlptMCA3QTEuNSAxLjUgMCAwIDEgMTEgNy41di0zYTEuNSAxLjUgMCAwIDEgMyAwdjNjMCAuODMtLjY3IDEuNS0xLjUgMS41Wm0tOSAzYS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjE2aDEuNWEuNS41IDAgMCAwIDAtMUg0di0yaDIuNWEuNS41IDAgMCAwIDAtMWgtM1ptNSAwYS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjE2aDFhMiAyIDAgMSAwIDAtNEg4LjVabTEuNSAzSDl2LTJoMWExIDEgMCAxIDEgMCAyWm0zLTEuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoLjc2Yy44MiAwIDEuNDkuNjcgMS40OSAxLjQ5di4wMWEuNS41IDAgMCAxLTEgMHYtLjAxYS40OS40OSAwIDAgMC0uNDktLjQ5aC0uNzZhLjc1Ljc1IDAgMCAwIDAgMS41aC41YTEuNzUgMS43NSAwIDEgMSAwIDMuNWgtLjc2Yy0uODIgMC0xLjQ5LS42Ny0xLjQ5LTEuNDl2LS4wMWEuNS41IDAgMCAxIDEgMHYuMDFjMCAuMjcuMjIuNDkuNDkuNDloLjc2YS43NS43NSAwIDAgMCAwLTEuNWgtLjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVpNNCA0LjV2M2EyLjUgMi41IDAgMSAwIDEtMnYtMWExLjUgMS41IDAgMSAxIDMgMCAuNS41IDAgMCAwIDEgMCAyLjUgMi41IDAgMCAwLTUgMFpNNi41IDlhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGcHM5NjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnBzOTYwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxMEEyLjUgMi41IDAgMCAwIDcgNy41di0zQTIuNSAyLjUgMCAxIDAgNC41IDdoLjFjLjMyIDAgLjYyLS4wNi45LS4xN3YuNjdhMSAxIDAgMCAxLTEgMWgtLjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Ljc1Ljc1IDAgMCAwLTEuNSAwQzIgOC45OSAzIDEwIDQuMjUgMTBoLjI1Wm0xLTUuNXYuMWMwIC41LS40LjktLjkuOWgtLjFhMSAxIDAgMSAxIDEtMVptNS0yLjVBMi41IDIuNSAwIDAgMCA4IDQuNXYzQTIuNSAyLjUgMCAxIDAgMTAuNSA1aC0uMWMtLjMyIDAtLjYyLjA2LS45LjE3VjQuNWExIDEgMCAwIDEgMS0xaC4yNWMuNDEgMCAuNzUuMzQuNzUuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwQzEzIDMuMDEgMTIgMiAxMC43NSAyaC0uMjVabS0xIDUuNXYtLjFjMC0uNS40LS45LjktLjloLjFhMSAxIDAgMSAxLTEgMVptNi0zYTEgMSAwIDEgMSAyIDB2M2ExIDEgMCAxIDEtMiAwdi0zWm0xLTIuNUEyLjUgMi41IDAgMCAwIDE0IDQuNXYzYTIuNSAyLjUgMCAwIDAgNSAwdi0zQTIuNSAyLjUgMCAwIDAgMTYuNSAyWm0tMTMgMTBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMS41YS41LjUgMCAwIDAgMC0xSDR2LTJoMi41YS41LjUgMCAwIDAgMC0xaC0zWm01IDBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMWEyIDIgMCAxIDAgMC00SDguNVptMi41IDJhMSAxIDAgMCAxLTEgMUg5di0yaDFhMSAxIDAgMCAxIDEgMVptMi0uMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoLjc1Yy44MyAwIDEuNS42NyAxLjUgMS41YS41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtLjUtLjVoLS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoLjVhMS43NSAxLjc1IDAgMSAxIDAgMy41aC0uNzVhMS41IDEuNSAwIDAgMS0xLjUtMS41LjUuNSAwIDAgMSAxIDBjMCAuMjguMjIuNS41LjVoLjc1YS43NS43NSAwIDAgMCAwLTEuNWgtLjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZwczk2MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnBzOTYwUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDcuNWEyLjUgMi41IDAgMCAxLTUgMCAuNS41IDAgMCAxIDEgMCAxLjUgMS41IDAgMSAwIDMgMHYtMWEyLjUgMi41IDAgMSAxIDEtMnYzWm0tMS0zYTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWk0xMC41IDJBMi41IDIuNSAwIDAgMCA4IDQuNXYzYTIuNSAyLjUgMCAxIDAgMS0ydi0xYTEuNSAxLjUgMCAxIDEgMyAwIC41LjUgMCAwIDAgMSAwQTIuNSAyLjUgMCAwIDAgMTAuNSAyWm0wIDdhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNabTYtNmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2ExLjUgMS41IDAgMCAwIDMgMHYtM2MwLS44My0uNjctMS41LTEuNS0xLjVaTTE0IDQuNWEyLjUgMi41IDAgMCAxIDUgMHYzYTIuNSAyLjUgMCAwIDEtNSAwdi0zWk0zLjUgMTJhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMS41YS41LjUgMCAwIDAgMC0xSDR2LTJoMi41YS41LjUgMCAwIDAgMC0xaC0zWm01IDBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWMTZoMWEyIDIgMCAxIDAgMC00SDguNVptMS41IDNIOXYtMmgxYTEgMSAwIDEgMSAwIDJabTMtMS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWguNzVjLjgzIDAgMS41LjY3IDEuNSAxLjVhLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNWgtLjc1YS43NS43NSAwIDAgMCAwIDEuNWguNWExLjc1IDEuNzUgMCAxIDEgMCAzLjVoLS43NWExLjUgMS41IDAgMCAxLTEuNS0xLjUuNS41IDAgMCAxIDEgMGMwIC4yOC4yMi41LjUuNWguNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRnJhbWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnJhbWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJjLjI4IDAgLjUuMjIuNS41VjRoMTBWMi41YS41LjUgMCAwIDEgMSAwVjRoMS41YS41LjUgMCAwIDEgMCAxSDE2djEwaDEuNWEuNS41IDAgMCAxIDAgMUgxNnYxLjVhLjUuNSAwIDAgMS0xIDBWMTZINXYxLjVhLjUuNSAwIDAgMS0xIDBWMTZIMi41YS41LjUgMCAwIDEgMC0xSDRWNUgyLjVhLjUuNSAwIDAgMSAwLTFINFYyLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZyYW1lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGcmFtZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyLjVhLjUuNSAwIDAgMC0xIDBWNEgyLjVhLjUuNSAwIDAgMCAwIDFINHYxMEgyLjVhLjUuNSAwIDAgMCAwIDFINHYxLjVhLjUuNSAwIDAgMCAxIDBWMTZoMTB2MS41YS41LjUgMCAwIDAgMSAwVjE2aDEuNWEuNS41IDAgMCAwIDAtMUgxNlY1aDEuNWEuNS41IDAgMCAwIDAtMUgxNlYyLjVhLjUuNSAwIDAgMC0xIDBWNEg1VjIuNVpNMTUgNXYxMEg1VjVoMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBGdWxsU2NyZWVuTWF4aW1pemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnVsbFNjcmVlbk1heGltaXplRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS4yNUMzIDQuMDEgNCAzIDUuMjUgM2gxLjg3YS43NS43NSAwIDEgMSAwIDEuNUg1LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MS44N2EuNzUuNzUgMCAxIDEtMS41IDBWNS4yNVptOS4xMy0xLjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjg3QzE1Ljk5IDMgMTcgNCAxNyA1LjI1djEuODdhLjc1Ljc1IDAgMCAxLTEuNSAwVjUuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTEuODdhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS04LjM4IDguMzhjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuODdjMCAuNDEuMzQuNzUuNzUuNzVoMS44N2EuNzUuNzUgMCAwIDEgMCAxLjVINS4yNUM0LjAxIDE3IDMgMTYgMyAxNC43NXYtMS44N2MwLS40MS4zNC0uNzUuNzUtLjc1Wm0xMi41IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuODdjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTEuODdhLjc1Ljc1IDAgMCAxIDAtMS41aDEuODdjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTEuODdjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZ1bGxTY3JlZW5NYXhpbWl6ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnVsbFNjcmVlbk1heGltaXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmgyYS41LjUgMCAwIDEgMCAxSDVhMSAxIDAgMCAwLTEgMXYyYS41LjUgMCAwIDEtMSAwVjVabTkuNS0xLjVjMC0uMjguMjItLjUuNS0uNWgyYTIgMiAwIDAgMSAyIDJ2MmEuNS41IDAgMCAxLTEgMFY1YTEgMSAwIDAgMC0xLTFoLTJhLjUuNSAwIDAgMS0uNS0uNVptLTkgOWMuMjggMCAuNS4yMi41LjV2MmExIDEgMCAwIDAgMSAxaDJhLjUuNSAwIDAgMSAwIDFINWEyIDIgMCAwIDEtMi0ydi0yYzAtLjI4LjIyLS41LjUtLjVabTEzIDBjLjI4IDAgLjUuMjIuNS41djJhMiAyIDAgMCAxLTIgMmgtMmEuNS41IDAgMCAxIDAtMWgyYTEgMSAwIDAgMCAxLTF2LTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZ1bGxTY3JlZW5NaW5pbWl6ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGdWxsU2NyZWVuTWluaW1pemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgNS41YS41LjUgMCAwIDEtLjUtLjVWMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWNWMwIDEuMS45IDIgMiAyaDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDE1Wk01LjUgMTVhLjUuNSAwIDAgMC0uNS0uNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNUg1YTIgMiAwIDAgMSAyIDJ2Mi4yNWEuNzUuNzUgMCAwIDEtMS41IDBWMTVabTkgMGMwLS4yOC4yMi0uNS41LS41aDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDE1YTIgMiAwIDAgMC0yIDJ2Mi4yNWEuNzUuNzUgMCAwIDAgMS41IDBWMTVabS05LTEwYS41LjUgMCAwIDEtLjUuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNUg1YTIgMiAwIDAgMCAyLTJWMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZ1bGxTY3JlZW5NaW5pbWl6ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRnVsbFNjcmVlbk1pbmltaXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCA1YTEgMSAwIDAgMCAxIDFoMmEuNS41IDAgMCAxIDAgMWgtMmEyIDIgMCAwIDEtMi0yVjNhLjUuNSAwIDAgMSAxIDB2MlpNNiAxNWExIDEgMCAwIDAtMS0xSDNhLjUuNSAwIDAgMSAwLTFoMmEyIDIgMCAwIDEgMiAydjJhLjUuNSAwIDAgMS0xIDB2LTJabTggMGExIDEgMCAwIDEgMS0xaDJhLjUuNSAwIDAgMCAwLTFoLTJhMiAyIDAgMCAwLTIgMnYyYS41LjUgMCAwIDAgMSAwdi0yWk01IDZhMSAxIDAgMCAwIDEtMVYzYS41LjUgMCAwIDEgMSAwdjJhMiAyIDAgMCAxLTIgMkgzYS41LjUgMCAwIDEgMC0xaDJaXCJdKTtcbmV4cG9ydCBjb25zdCBHYW1lQ2hhdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYW1lQ2hhdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDdhNiA2IDAgMSAxIDExLjU1IDIuMjdsLS4xNC4wOC0uMTIuMDhhLjUuNSAwIDAgMS0uMjYuMDdoLTEuMDZhLjUuNSAwIDAgMS0uMjYtLjA3bC0uMTItLjA4YTIuNSAyLjUgMCAwIDAtMS43MS0uMzJsLS43Ny4xNGEzIDMgMCAwIDAtMi4yIDEuNjdsLS44NyAxLjgzQTUuOTggNS45OCAwIDAgMSA1IDEyLjJsLTIuMzQuNzdhLjUuNSAwIDAgMS0uNjQtLjZsLjcxLTIuNUE1Ljk4IDUuOTggMCAwIDEgMiA3Wm00LTFjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM0EuNS41IDAgMCAwIDYgNlptLjUgMS41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabTguNDUgMi41MmExLjUgMS41IDAgMCAwLTEuMDIuMmwtLjEzLjA3Yy0uMjMuMTQtLjUuMjEtLjc3LjIxaC0xLjA2YTEuNSAxLjUgMCAwIDEtLjc3LS4yMWwtLjEzLS4wOGExLjUgMS41IDAgMCAwLTEuMDItLjE5bC0uNzcuMTNhMiAyIDAgMCAwLTEuNDcgMS4xMmwtMS4yIDIuNTJhNS4yMyA1LjIzIDAgMCAwLS41NyAzYy4xMi44Mi40OCAxLjQxLjgyIDEuOC4yNy4zMi42NS40NSAxLjAxLjQuMzUtLjAzLjY3LS4yMi45LS40OWwuODItLjk3Yy4yOS0uMzQuNy0uNTMgMS4xNS0uNTNoMy41MmMuNDQgMCAuODYuMiAxLjE1LjUzbC44Mi45N2MuMjMuMjcuNTUuNDYuOS41LjM2LjA0Ljc0LS4wOSAxLS40LjM1LS40LjcxLS45OS44My0xLjguMTItLjgyIDAtMS44Mi0uNTctM2wtMS4yLTIuNTNhMiAyIDAgMCAwLTEuNDctMS4xMmwtLjc3LS4xM1pNMTIuNSAxNGEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHYW1lQ2hhdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2FtZUNoYXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA1LjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNiA4YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDYgOFpNMiA3YTYgNiAwIDEgMSAxMS41NSAyLjI3bC0uMTQuMDgtLjEyLjA4YS41LjUgMCAwIDEtLjI2LjA3aC0uN2E1IDUgMCAxIDAtOC42My4wNS41LjUgMCAwIDEgLjA1LjRsLS41IDEuNzggMS42NS0uNTZhLjUuNSAwIDAgMSAuNDMuMDZjLjM1LjIyLjczLjQgMS4xNC41M2wtLjQzLjkxQTUuOTggNS45OCAwIDAgMSA1IDEyLjJsLTIuMzQuNzdhLjUuNSAwIDAgMS0uNjQtLjZsLjcxLTIuNUE1Ljk4IDUuOTggMCAwIDEgMiA3Wm0xMS4yNSA2LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS42OC0zLjA0Yy4zLS4xOC42Ny0uMjUgMS4wMi0uMTlsLjc3LjEzYTIgMiAwIDAgMSAxLjQ3IDEuMTJsMS4yIDIuNTJjLjU2IDEuMi42OSAyLjE5LjU3IDNhMy41IDMuNSAwIDAgMS0uODIgMS44Yy0uMjcuMzItLjY1LjQ1LTEuMDEuNGExLjQgMS40IDAgMCAxLS45LS40OWwtLjgyLS45N2ExLjUgMS41IDAgMCAwLTEuMTUtLjUzaC0zLjUyYy0uNDQgMC0uODYuMi0xLjE1LjUzbC0uODIuOTdhMS40IDEuNCAwIDAgMS0uOS41Yy0uMzYuMDQtLjc0LS4wOS0xLS40LS4zNS0uNC0uNzEtLjk5LS44My0xLjgtLjEyLS44MiAwLTEuODIuNTctM2wxLjItMi41M2EyIDIgMCAwIDEgMS40Ny0xLjEybC43Ny0uMTNjLjM1LS4wNi43MiAwIDEuMDIuMmwuMTMuMDdjLjIzLjE0LjUuMjEuNzcuMjFoMS4wNmMuMjcgMCAuNTQtLjA3Ljc3LS4yMWwuMTMtLjA4Wm0uODUuOGEuNS41IDAgMCAwLS4zNC4wNmwtLjEzLjA3YTIuNSAyLjUgMCAwIDEtMS4yOC4zNmgtMS4wNmMtLjQ1IDAtLjktLjEyLTEuMjgtLjM2bC0uMTMtLjA3YS41LjUgMCAwIDAtLjM0LS4wNmwtLjc3LjEzYTEgMSAwIDAgMC0uNzQuNTZsLTEuMiAyLjUyYTQuMjUgNC4yNSAwIDAgMC0uNDggMi40M2MuMDkuNi4zNCAxLjAxLjU5IDEuMy4wNC4wNC4wOC4wNi4xNC4wNWEuNC40IDAgMCAwIC4yNS0uMTRsLjgyLS45N2EyLjUgMi41IDAgMCAxIDEuOS0uODloMy41M2MuNzQgMCAxLjQ0LjMyIDEuOTEuODlsLjgyLjk3Yy4wOC4xLjE4LjEzLjI1LjE0LjA2IDAgLjEgMCAuMTQtLjA1LjI1LS4yOS41LS43LjU5LTEuMy4wOS0uNTkgMC0xLjM5LS40OC0yLjQzbC0xLjItMi41MmExIDEgMCAwIDAtLjc0LS41NmwtLjc3LS4xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdhbWVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhbWVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNSA0YTUuNSA1LjUgMCAxIDAgMCAxMWg1YTUuNSA1LjUgMCAxIDAgMC0xMWgtNVpNNiA3LjVhLjUuNSAwIDAgMSAxIDBWOWgxLjVhLjUuNSAwIDAgMSAwIDFIN3YxLjVhLjUuNSAwIDAgMS0xIDBWMTBINC41YS41LjUgMCAwIDEgMC0xSDZWNy41Wm05IC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTMgNGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBHYW1lc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2FtZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNy41YS41LjUgMCAwIDEgMSAwVjloMS41YS41LjUgMCAwIDEgMCAxSDd2MS41YS41LjUgMCAwIDEtMSAwVjEwSDQuNWEuNS41IDAgMCAxIDAtMUg2VjcuNVptOSAuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0zIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0yIDkuNUE1LjUgNS41IDAgMCAxIDcuNSA0aDVhNS41IDUuNSAwIDEgMSAwIDExaC01QTUuNSA1LjUgMCAwIDEgMiA5LjVaTTcuNSA1YTQuNSA0LjUgMCAwIDAgMCA5aDVhNC41IDQuNSAwIDEgMCAwLTloLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBHYW50dENoYXJ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhbnR0Q2hhcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNEg3djJINC41YTEuNSAxLjUgMCAxIDAgMCAzSDd2N0g0LjVBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdaTTggMTZWOS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDExdi41YzAgLjY1LjQyIDEuMiAxIDEuNDFWMTZIOFptMi04aDJWNEg4djJoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWOFptNS41IDVIMTN2M2gyLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA0SDEzdjRoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVhMS41IDEuNSAwIDAgMSAwIDNabS0xMS02YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTkgOS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0zLjUgMS41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBHYW50dENoYXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYW50dENoYXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgN2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk05IDkuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMy41IDEuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0tOC03QTIuNSAyLjUgMCAwIDAgMiA2LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDRoLTExWk0zIDYuNUMzIDUuNjcgMy42NyA1IDQuNSA1SDd2MWgxVjVoNHYzaDFWNWgyLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVIMTN2LTJoLTF2Mkg4VjlIN3Y2SDQuNUExLjUgMS41IDAgMCAxIDMgMTMuNXYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdhc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMDggMi4yMkEuNS41IDAgMCAxIDExLjUgMmgzYy4yOCAwIC41LjIyLjUuNXYzYy42LjQ2IDEgMS4xOCAxIDJ2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSA0IDE0LjV2LTdBMi41IDIuNSAwIDAgMSA2LjUgNWguNDFjLS4yLS41OC0uNzYtMS0xLjQxLTFoLTFhLjUuNSAwIDAgMSAwLTFoMWMxLjIgMCAyLjIyLjg2IDIuNDUgMmgxLjI4bDEuODUtMi43OFpNMTQgM2gtMi4yM2wtMS4zNCAyaDMuMDdjLjE3IDAgLjM0LjAyLjUuMDVWM1ptLTEuMTUgNS4xNWEuNS41IDAgMCAwLS43IDBMMTAgMTAuMjkgNy44NSA4LjE1YS41LjUgMCAxIDAtLjcuN0w5LjI5IDExbC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43TDEwIDExLjcxbDIuMTUgMi4xNGEuNS41IDAgMCAwIC43LS43TDEwLjcxIDExbDIuMTQtMi4xNWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBHYXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMDggMi4yMkEuNS41IDAgMCAxIDExLjUgMmgzYy4yOCAwIC41LjIyLjUuNXYzYy42LjQ2IDEgMS4xOCAxIDJ2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSA0IDE0LjV2LTdBMi41IDIuNSAwIDAgMSA2LjUgNWguNDFjLS4yLS41OC0uNzYtMS0xLjQxLTFoLTFhLjUuNSAwIDAgMSAwLTFoMWMxLjIgMCAyLjIyLjg2IDIuNDUgMmgxLjI4bDEuODUtMi43OFpNMTQgM2gtMi4yM2wtMS4zNCAyaDMuMDdjLjE3IDAgLjM0LjAyLjUuMDVWM1pNNi41IDZDNS42NyA2IDUgNi42NyA1IDcuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1ptNi4zNSAyLjE1Yy4yLjIuMi41IDAgLjdMMTAuNzEgMTFsMi4xNCAyLjE1YS41LjUgMCAwIDEtLjcuN0wxMCAxMS43MWwtMi4xNSAyLjE0YS41LjUgMCAwIDEtLjctLjdMOS4yOSAxMSA3LjE1IDguODVhLjUuNSAwIDEgMSAuNy0uN0wxMCAxMC4yOWwyLjE1LTIuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBHYXNQdW1wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhc1B1bXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAxN1Y0LjVBMi41IDIuNSAwIDAgMSA2LjUgMmg1QTIuNSAyLjUgMCAwIDEgMTQgNC41djlhMS41IDEuNSAwIDAgMCAzIDBWOS4xN2MwLS4zMy0uMS0uNjQtLjMtLjlMMTUuNiA2LjhhLjUuNSAwIDAgMSAuOC0uNmwxLjEgMS40N2MuMzIuNDMuNS45Ni41IDEuNXY0LjMzYTIuNSAyLjUgMCAwIDEtNCAyVjE3aC41YS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxIDAtMUg0Wk02LjUgNGEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhc1B1bXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhc1B1bXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNC41VjE3aDhWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUM1LjY3IDMgNSAzLjY3IDUgNC41Wm05IDExVjE3aC41YS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxIDAtMUg0VjQuNUEyLjUgMi41IDAgMCAxIDYuNSAyaDVBMi41IDIuNSAwIDAgMSAxNCA0LjV2OWExLjUgMS41IDAgMCAwIDMgMFY5LjE3YzAtLjMzLS4xLS42NC0uMy0uOUwxNS42IDYuOGEuNS41IDAgMCAxIC44LS42bDEuMSAxLjQ3Yy4zMi40My41Ljk2LjUgMS41djQuMzNhMi41IDIuNSAwIDAgMS00IDJabS04LTExdjRjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41Wk03IDVoNHYzSDdWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhdGhlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXRoZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA4djRIMlY4aDRabS0zLjg1IDguODVBLjUuNSAwIDAgMSAyIDE2LjVWMTNoNHYyYTIgMiAwIDAgMS0yIDJIMi41YS41LjUgMCAwIDEtLjM1LS4xNVpNMi41IDNINGEyIDIgMCAwIDEgMiAydjJIMlYzLjVhLjUuNSAwIDAgMSAuNS0uNVpNMTggNi41VjEwaC00VjhhMiAyIDAgMCAxIDItMmgxLjVhLjUuNSAwIDAgMSAuNS41Wm0wIDhWMTFoLTR2MmEyIDIgMCAwIDAgMiAyaDEuNWEuNS41IDAgMCAwIC41LS41Wm0tNy44NS0zLjM1YS41LjUgMCAxIDAgLjcuN2wxLjUtMS41YS41LjUgMCAwIDAgMC0uN2wtMS41LTEuNWEuNS41IDAgMSAwLS43LjdsLjY0LjY1SDhhLjUuNSAwIDEgMCAwIDFoMi44bC0uNjUuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHYXRoZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhdGhlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAxNVY1YTIgMiAwIDAgMC0yLTJIMi41YS41LjUgMCAxIDAgMCAxSDRhMSAxIDAgMCAxIDEgMXYySDIuNWEuNS41IDAgMSAwIDAgMUg1djRIMi41YS41LjUgMCAwIDAgMCAxSDV2MmExIDEgMCAwIDEtMSAxSDIuNWEuNS41IDAgMCAwIDAgMUg0YTIgMiAwIDAgMCAyLTJabTExLjg1LTQuMTVhLjUuNSAwIDAgMS0uMzUuMTVIMTV2MmExIDEgMCAwIDAgMSAxaDEuNWEuNS41IDAgMCAxIDAgMUgxNmEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxLjVhLjUuNSAwIDAgMSAwIDFIMTZhMSAxIDAgMCAwLTEgMXYyaDIuNWEuNS41IDAgMCAxIC4zNS44NVpNMTAgMTEuNWEuNS41IDAgMCAxIC4xNS0uMzVsLjY0LS42NUg4YS41LjUgMCAwIDEgMC0xaDIuOGwtLjY1LS42NWEuNS41IDAgMSAxIC43LS43bDEuNSAxLjVhLjUuNSAwIDAgMSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjg1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhdWdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhdWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm0xLjgyLTEyLjY2YTUgNSAwIDAgMC01LjM2IDguMi41LjUgMCAwIDEtLjcuNyA2IDYgMCAwIDEgNi40Mi05LjgzLjUuNSAwIDAgMS0uMzYuOTNabTMuNzcgMi40OGE2IDYgMCAwIDEtMS4zNSA2LjQyLjUuNSAwIDEgMS0uNy0uNyA1IDUgMCAwIDAgMS4xMi01LjM2LjUuNSAwIDAgMSAuOTMtLjM2Wm0tMS41LTJhLjUuNSAwIDAgMSAuMS42MmwtLjEuMmEzMjMuNTkgMzIzLjU5IDAgMCAxLS42OSAxLjJsLS4yMy40LS4zLjUzYTE4NC40NiAxODQuNDYgMCAwIDEtMS40OCAyLjQ4IDQuMjggNC4yOCAwIDAgMS0uMTYuMjMgMS41IDEuNSAwIDEgMS0yLjI4LTEuOTVjLjA3LS4wOS4yLS4yLjM0LS4zM2wuNTYtLjQ4YTEyNS4xMiAxMjUuMTIgMCAwIDEgMi45Ni0yLjRsLjI3LS4yMi4zNy0uM2EuNS41IDAgMCAxIC42NC4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhdWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXVnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuNDcgNS4wNmEuNS41IDAgMCAxLS42NS4yOCA1IDUgMCAwIDAtNS4zNiA4LjIuNS41IDAgMSAxLS43LjcgNiA2IDAgMCAxIDYuNDItOS44M2MuMjYuMS4zOS4zOS4yOS42NVptMi40NyAyLjQ3YS41LjUgMCAwIDEgLjY1LjI5IDYgNiAwIDAgMS0xLjM1IDYuNDIuNS41IDAgMSAxLS43LS43IDUgNSAwIDAgMCAxLjEyLTUuMzYuNS41IDAgMCAxIC4yOC0uNjVabS0uODUtMS43MWEuNS41IDAgMCAwLS42NC0uMDFsLS4xOC4xNEEzMzUuMTcgMzM1LjE3IDAgMCAwIDkuMyA5LjJjLS4xNC4xMi0uMjcuMjQtLjM0LjMzYTEuNSAxLjUgMCAxIDAgMi4yOCAxLjk1bC4yNy0uNC4zOC0uNjJhMTIzLjQ3IDEyMy40NyAwIDAgMCAyLjItMy44MmwuMTItLjJhLjUuNSAwIDAgMC0uMTEtLjYyWk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMC0xYTcgNyAwIDEgMSAwLTE0IDcgNyAwIDAgMSAwIDE0WlwiXSk7XG5leHBvcnQgY29uc3QgR2F1Z2VBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2F1Z2VBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMThhOCA4IDAgMSAwLTgtNy43NWMuNi0uNDggMS4zLS44NSAyLjA1LTEuMDZhNiA2IDAgMCAxIDguMTMtNC43OC41LjUgMCAwIDEtLjM2LjkzQTUgNSAwIDAgMCA1LjEgOS4wMWE1LjU4IDUuNTggMCAwIDEgMy41NyAxYy4wNi0uMTcuMTUtLjM0LjI4LS40OC4wNy0uMDkuMi0uMi4zNC0uMzNsLjU2LS40OGExMjUuMTIgMTI1LjEyIDAgMCAxIDIuOTYtMi40bC4yNy0uMjIuMzctLjNhLjUuNSAwIDAgMSAuNzUuNjRsLS4xMS4yYTMyMy41OSAzMjMuNTkgMCAwIDEtLjY5IDEuMmwtLjIzLjQtLjMuNTNhMTg0LjQ2IDE4NC40NiAwIDAgMS0xLjQ4IDIuNDggNC4yOCA0LjI4IDAgMCAxLS4xNi4yMyAxLjUgMS41IDAgMCAxLS44NC41QTUuNDggNS40OCAwIDAgMSA5Ljc1IDE4SDEwWm01LjYtMTAuMThhNiA2IDAgMCAxLTEuMzYgNi40Mi41LjUgMCAxIDEtLjctLjcgNSA1IDAgMCAwIDEuMTItNS4zNi41LjUgMCAwIDEgLjkzLS4zNlpNOCAxOC4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41YS41LjUgMCAwIDAtLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhdWdlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXVnZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNCAxNi45OWE3IDcgMCAxIDAtNy4zOS03LjRjLS4zNi4xOS0uNy40LTEgLjY2TDIgMTBhOCA4IDAgMSAxIDcuNzUgOGMuMjUtLjMxLjQ3LS42NS42Ni0xLjAxWm0yLjA3LTExLjkzYS41LjUgMCAwIDEtLjY1LjI4QTUgNSAwIDAgMCA1LjEgOS4wMWMtLjM2LjAzLS43MS4xLTEuMDUuMThhNiA2IDAgMCAxIDguMTMtNC43OGMuMjYuMS4zOS4zOS4yOS42NVpNOC42NyAxMGMuNzIuNSAxLjMgMS4xOCAxLjcyIDEuOTYuMzEtLjA2LjYxLS4yMy44NC0uNS4wNy0uMDguMTctLjIzLjI3LS4zOGwuMzgtLjYzYTEyMy40NyAxMjMuNDcgMCAwIDAgMi4yLTMuODJsLjEyLS4yYS41LjUgMCAwIDAtLjc1LS42M2wtLjE4LjE0QTMzNS4xNyAzMzUuMTcgMCAwIDAgOS4zIDkuMmMtLjE0LjEyLS4yNy4yNC0uMzQuMzMtLjEzLjE0LS4yMi4zLS4yOC40OFptNi4yNy0yLjQ4YS41LjUgMCAwIDEgLjY1LjI5IDYgNiAwIDAgMS0xLjM1IDYuNDIuNS41IDAgMSAxLS43LS43IDUgNSAwIDAgMCAxLjEyLTUuMzYuNS41IDAgMCAxIC4yOC0uNjVaTTggMTguMjRhNC41IDQuNSAwIDEgMS01LTcuNDggNC41IDQuNSAwIDAgMSA1IDcuNDhabS0yLjE1LTYuMWEuNS41IDAgMCAwLS44NS4zNlYxNEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNWEuNS41IDAgMCAwLS4xNS0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBHYXZlbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXZlbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjY3IDcuNTlhMS41IDEuNSAwIDAgMS0uMjMtMi4zbDIuODQtMi44NWExLjUgMS41IDAgMCAxIDIuMjguMTlsLjQ3LjY1TDcuMyA4LjAxbC0uNjMtLjQyWm0xLjQ4IDEgNC40Ny00LjQ5IDEuMzMgMS44NGEuNS41IDAgMCAwIC4xLjExbDEuODUgMS4zMy00LjQ4IDQuNDctMS4yNi0xLjg3YS41LjUgMCAwIDAtLjE0LS4xNEw4LjE1IDguNThabTMuODQgNC4xMSA0LjczLTQuNzMuNjUuNDdjLjc1LjU0Ljg0IDEuNjMuMTkgMi4yOGwtMi44NCAyLjg0YTEuNSAxLjUgMCAwIDEtMi4zMS0uMjNsLS40Mi0uNjNabS0zLjgtMi44OUwyLjQgMTUuNmExLjQxIDEuNDEgMCAxIDAgMiAybDUuNzgtNS43OC0uOC0xLjItMS4yLS44Wk0xMiAxNi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgyYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAxIDEgMC0xaDJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhdmVsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXZlbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi40NCA1LjI4YTEuNSAxLjUgMCAwIDAgLjIzIDIuMzFsMS43NiAxLjE4LTUuODUgNS44NmExLjk4IDEuOTggMCAxIDAgMi44IDIuOGw1Ljg1LTUuODYgMS4xOCAxLjc2Yy41My43OSAxLjY0LjkgMi4zLjIzbDIuODUtMi44NGExLjUgMS41IDAgMCAwLS4xOS0yLjI4bC0zLjMxLTIuMzlhLjUuNSAwIDAgMS0uMTItLjExbC0yLjM4LTMuMzFhMS41IDEuNSAwIDAgMC0yLjI4LS4xOUw2LjQ0IDUuMjhabTQuMjIgNS40NC02IDZhLjk4Ljk4IDAgMCAxLTEuMzctMS4zOWw1Ljk5LTUuOTkuNzQuNWMuMDYuMDQuMS4wOC4xNC4xNGwuNS43NFpNNy4yMiA2Ljc2YS41LjUgMCAwIDEtLjA3LS43N2wyLjg0LTIuODRhLjUuNSAwIDAgMSAuNzYuMDZsLjU2Ljc5LTMuMjkgMy4zLS44LS41NFptMS42NSAxLjEgMy4wNC0zLjA0IDEuMjIgMS43Yy4xLjE0LjIxLjI1LjM0LjM1bDEuNyAxLjIyLTMuMDMgMy4wNC0xLjE1LTEuNzFhMS41IDEuNSAwIDAgMC0uNDEtLjQxTDguODcgNy44NlpNMTYgOC43bC43OS41NmEuNS41IDAgMCAxIC4wNi43NkwxNCAxMi44NWEuNS41IDAgMCAxLS43Ny0uMDdsLS41My0uOCAzLjMtMy4zWm0tNCA3LjgxYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMSAxIDAgMWgyYS41LjUgMCAxIDEgMCAxaC03YS41LjUgMCAxIDEgMC0xaDJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdhdmVsUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHYXZlbFByb2hpYml0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi42NyA3LjU5YTEuNSAxLjUgMCAwIDEtLjIzLTIuM2wyLjg0LTIuODVhMS41IDEuNSAwIDAgMSAyLjI4LjE5bC40Ny42NUw3LjMgOC4wMWwtLjYzLS40MlptMS40OCAxIDQuNDctNC40OSAxLjMzIDEuODRhLjUuNSAwIDAgMCAuMS4xMWwxLjg1IDEuMzNMMTQuMjcgOWE1LjQ4IDUuNDggMCAwIDAtMy42NyAxLjYzbC0uNDQtLjY1YS41LjUgMCAwIDAtLjE0LS4xNEw4LjE1IDguNThabTcuNDMuNTJjLjg3LjE3IDEuNjYuNTQgMi4zMiAxLjA3YTEuNSAxLjUgMCAwIDAtLjUzLTEuNzRsLS42NS0uNDctMS4xNCAxLjE0Wk05LjMgMTIuNjljLjE2LS40NS4zNy0uODcuNjMtMS4yNmwtLjU1LS44MS0xLjItLjgtNS43NyA1Ljc3YTEuNDEgMS40MSAwIDEgMCAyIDJsNC45LTQuOVptLjcgMS44MWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBHYXZlbFByb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dhdmVsUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi40NCA1LjI4YTEuNSAxLjUgMCAwIDAgLjIyIDIuMzFsMS43NyAxLjE4LTUuODUgNS44NmExLjk4IDEuOTggMCAxIDAgMi44IDIuOGwzLjY3LTMuNjljLjEyLS44My40Mi0xLjYuODYtMi4yN2wtNS4yNCA1LjI0YS45OC45OCAwIDAgMS0xLjM4LTEuMzhsNS45OS01Ljk5Ljc0LjVjLjA2LjA0LjEuMDguMTQuMTRsLjQzLjY1Yy4yNC0uMjQuNS0uNDYuNzgtLjY1bC0uMzgtLjU2YTEuNSAxLjUgMCAwIDAtLjQxLS40MUw4Ljg3IDcuODZsMy4wNC0zLjA0IDEuMjIgMS43Yy4xLjE0LjIxLjI1LjM0LjM1bDEuNyAxLjIyLS45LjkxYTUuNTggNS41OCAwIDAgMSAxLjMxLjFMMTYgOC43bC43OS41NmEuNS41IDAgMCAxIC4yLjM1Yy4zMy4xNi42My4zNi45MS41OGExLjUgMS41IDAgMCAwLS41My0xLjc0bC0zLjMxLTIuMzlhLjUuNSAwIDAgMS0uMTItLjFsLTIuMzgtMy4zMmExLjUgMS41IDAgMCAwLTIuMjgtLjE5TDYuNDQgNS4yOFptLjc4IDEuNDhhLjUuNSAwIDAgMS0uMDctLjc3bDIuODQtMi44NGEuNS41IDAgMCAxIC43Ni4wNmwuNTYuNzktMy4zIDMuMy0uNzktLjU0Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEdlc3R1cmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2VzdHVyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA0Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTMuNSAxNi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk01Ljc1IDRhLjc1Ljc1IDAgMCAwLS4zIDEuNDNsOS4wNiA0LjEtOS42IDQuOGEuNzUuNzUgMCAxIDAgLjY4IDEuMzRsMTEtNS41YS43NS43NSAwIDAgMC0uMDMtMS4zNUw5LjIzIDUuNWg1LjUyYS43NS43NSAwIDAgMCAwLTEuNWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdlc3R1cmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dlc3R1cmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuMDEgNC40QS41LjUgMCAwIDEgNS41IDRoOWEuNS41IDAgMCAxIDAgMUg3LjhsOC45IDQuMDRhLjUuNSAwIDAgMSAuMDQuOWwtMTEgNS45MmEuNS41IDAgMSAxLS40OC0uODhsMTAuMTItNS40NEw1LjI5IDQuOTZhLjUuNSAwIDAgMS0uMjgtLjU3Wk0xNyA0LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTMuNSAxN2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdpZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHaWZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuNCAzYzEuMzkgMCAyLjUyIDEuMTkgMi42IDIuNjh2OC40OGMwIDEuNTEtMS4wOSAyLjc1LTIuNDUgMi44NEg0LjZjLTEuMzkgMC0yLjUyLTEuMTktMi42LTIuNjhWNS44NEMyIDQuMzMgMy4wOSAzLjEgNC40NSAzSDE1LjRaTTYuODUgN0M1LjE4IDcgNCA4LjMyIDQgMTBjMCAxLjY0IDEuMjYgMyAyLjg1IDMgMS4yIDAgMi4wNy0uOCAyLjE0LTEuNjNsLjAxLS4xMlY5LjlhLjUyLjUyIDAgMCAwLS40NC0uNGgtLjFsLS45Mi0uMDFoLS4xQS41MS41MSAwIDAgMCA3IDEwYzAgLjI1LjIuNDUuNDQuNWguNDh2LjgzYy0uMDcuMzItLjQ3LjY3LTEuMDcuNjctLjk2IDAtMS43Ny0uODgtMS43Ny0yIDAtMS4xNy43NC0yIDEuNzctMiAuNDYgMCAuODMuMDcgMS4xLjIuMjYuMTIuNTkuMDIuNzItLjIzLjE0LS4yNC4wMy0uNTUtLjI0LS42N0M4IDcuMSA3LjQ3IDcgNi44NSA3Wk0xMSA3YS41LjUgMCAwIDAtLjUuNDF2NS4xOGEuNS41IDAgMCAwIDEgMFY3LjQxQS41LjUgMCAwIDAgMTEgN1ptNC41IDBoLTJhLjUuNSAwIDAgMC0uNS40MXY1LjE4YS41LjUgMCAwIDAgMSAwVjExaDEuNTlhLjUuNSAwIDAgMCAwLTFIMTRWOGgxLjU5YS41LjUgMCAwIDAgMC0xaC0uMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBHaWZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dpZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNCAzYzEuMzkgMCAyLjUyIDEuMTkgMi42IDIuNjh2OC40OGMwIDEuNTEtMS4wOSAyLjc1LTIuNDUgMi44NEg0LjZjLTEuMzkgMC0yLjUyLTEuMTktMi42LTIuNjhWNS44NEMyIDQuMzMgMy4wOSAzLjEgNC40NSAzSDE1LjRabS0uMTUgMUg0Ljc1QzMuODIgNCAzLjA3IDQuOCAzIDUuOFYxNC4wN2MwIDEuMDIuNzIgMS44NiAxLjYzIDEuOTNoMTAuNjJjLjkzIDAgMS42OC0uOCAxLjc1LTEuOFY1LjkzYzAtMS4wMi0uNzItMS44Ni0xLjYzLTEuOTNoLS4xMlptLTguNCAzYy42MiAwIDEuMTUuMSAxLjU4LjMuMjcuMTIuMzguNDMuMjQuNjdhLjU2LjU2IDAgMCAxLS43Mi4yMkM3LjY4IDguMDcgNy4zIDggNi44NSA4Yy0xLjAzIDAtMS43Ny44My0xLjc3IDIgMCAxLjEyLjgxIDIgMS43NyAyIC42IDAgMS0uMzUgMS4wNi0uNjd2LS44M2gtLjM3Yy0uMyAwLS41NC0uMjItLjU0LS41IDAtLjI1LjItLjQ1LjQ0LS41aDEuMDJjLjI2IDAgLjQ5LjE4LjUzLjQxbC4wMS4xdjEuMjRDOSAxMi4xMiA4LjExIDEzIDYuODUgMTNBMi45MiAyLjkyIDAgMCAxIDQgMTBjMC0xLjY4IDEuMTgtMyAyLjg1LTNaTTExIDdhLjUuNSAwIDAgMSAuNS40MXY1LjA5YS41LjUgMCAwIDEtMSAuMDlWNy41YzAtLjI4LjIyLS41LjUtLjVabTQuNSAwYS41LjUgMCAwIDEgLjA5IDFIMTR2MmgxLjVhLjUuNSAwIDAgMSAuMDkgMUgxNHYxLjVhLjUuNSAwIDAgMS0xIC4wOVY3LjVjMC0uMjguMjItLjUuNS0uNWgyWlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHaWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNSAxMXY3aC0zQTIuNSAyLjUgMCAwIDEgNCAxNS42NlYxMWg1LjVabTYuNSAwdjQuNWEyLjUgMi41IDAgMCAxLTIuMzQgMi41SDEwLjV2LTdIMTZabS00LTlhMi41IDIuNSAwIDAgMSAyIDRoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtNS41VjZoLTF2NEg0YTEgMSAwIDAgMS0xLTFWN2ExIDEgMCAwIDEgMS0xaDJhMi41IDIuNSAwIDEgMSA0LTNjLjQ2LS42IDEuMTgtMSAyLTFabTAgMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWNkgxMmExLjUgMS41IDAgMCAwIDAtM1pNOCAzYTEuNSAxLjUgMCAwIDAtLjE0IDNIOS41VjQuMzZBMS41IDEuNSAwIDAgMCA4IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBHaWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHaWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiAyYTIuNSAyLjUgMCAwIDEgMiA0aDJhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDF2NC41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDQgMTUuNVYxMWExIDEgMCAwIDEtMS0xVjdhMSAxIDAgMCAxIDEtMWgyYTIuNSAyLjUgMCAxIDEgNC0zYy40Ni0uNiAxLjE4LTEgMi0xWm0tMi41IDlINXY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoM3YtNlptNS41IDBoLTQuNXY2aDNjLjgzIDAgMS41LS42NyAxLjUtMS41VjExWk05LjUgN0g0djNoNS41VjdaTTE2IDdoLTUuNXYzSDE2VjdabS00LTRjLS44MyAwLTEuNS42Ny0xLjUgMS41VjZIMTJhMS41IDEuNSAwIDAgMCAwLTNaTTggM2ExLjUgMS41IDAgMCAwLS4xNCAzSDkuNVY0LjM2QTEuNSAxLjUgMCAwIDAgOCAzWlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdENhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2lmdENhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyA0SDQuNzVBMi43NSAyLjc1IDAgMCAwIDIgNi43NVY5aDIuMjdBMiAyIDAgMCAxIDcgNi4yN1Y0Wm0xIDR2MWgxYTEgMSAwIDEgMC0xLTFabTIuNzMgMUEyIDIgMCAwIDAgOCA2LjI3VjRoNy4yNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NVY5aC03LjI3Wm0tMi4wMiAxIDEuNjQgMS42NWEuNS41IDAgMCAxLS43LjdMOCAxMC43MVYxNmg3LjI1QTIuNzUgMi43NSAwIDAgMCAxOCAxMy4yNVYxMEg4LjdaTTcgMTZ2LTUuM2wtMS42NSAxLjY1YS41LjUgMCAwIDEtLjctLjdMNi4yOSAxMEgydjMuMjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZIN1ptMC04YTEgMSAwIDEgMC0xIDFoMVY4WlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdENhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dpZnRDYXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTZINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMy4yNXYtNi41Wk0zIDEwdjMuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIN3YtNC4zbC0xLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy0uN0w2LjI5IDEwSDNabTEuMjctMUEyIDIgMCAwIDEgNyA2LjI3VjVINC43NUMzLjc4IDUgMyA1Ljc4IDMgNi43NVY5aDEuMjdaTTYgOWgxVjhhMSAxIDAgMSAwLTEgMVptMi0xdjFoMWExIDEgMCAxIDAtMS0xWm0yLjczIDFIMTdWNi43NUMxNyA1Ljc4IDE2LjIyIDUgMTUuMjUgNUg4djEuMjdBMiAyIDAgMCAxIDEwLjczIDlabS0yLjAyIDEgMS42NCAxLjY1YS41LjUgMCAwIDEtLjcuN0w4IDEwLjcxVjE1aDcuMjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjEwSDguN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdpZnRDYXJkQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dpZnRDYXJkQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMkg0Ljc1QTIuNzUgMi43NSAwIDAgMCAyIDQuNzVWN2gyLjI3QTIgMiAwIDAgMSA3IDQuMjdWMlpNMiA4djMuMjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTRIN1Y4LjdsLTEuNjUgMS42NWEuNS41IDAgMCAxLS43LS43TDYuMjkgOEgyWm03LjAyIDZIOFY4LjdsMS42NSAxLjY1YS41LjUgMCAwIDAgLjctLjdMOC43MSA4SDE4djIuMjZBNS41IDUuNSAwIDAgMCA5LjAyIDE0Wk0xOCA3aC03LjI3QTIgMiAwIDAgMCA4IDQuMjdWMmg3LjI1QTIuNzUgMi43NSAwIDAgMSAxOCA0Ljc1VjdaTTggNnYxaDFhMSAxIDAgMSAwLTEtMVpNNyA3SDZhMSAxIDAgMSAxIDEtMXYxWm0xMiA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHaWZ0Q2FyZEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2lmdENhcmRBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSAyaDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDQuNzV2NS41YTUuNSA1LjUgMCAwIDAtMS0uNjVWOEg4LjdsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN0w4IDguNzFWMTNoMS4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTEuMjV2LTYuNVpNNC43NSAzQzMuNzggMyAzIDMuNzggMyA0Ljc1VjdoMS4yN0EyIDIgMCAwIDEgNyA0LjI3VjNINC43NVpNOCAzdjEuMjdBMiAyIDAgMCAxIDEwLjczIDdIMTdWNC43NUMxNyAzLjc4IDE2LjIyIDMgMTUuMjUgM0g4Wm0wIDRoMWExIDEgMCAxIDAtMS0xdjFaTTYgNWExIDEgMCAwIDAgMCAyaDFWNmExIDEgMCAwIDAtMS0xWm0tMyA2LjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDdWOC43bC0xLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy0uN0w2LjI5IDhIM3YzLjI1Wm0xNiAzLjI1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdENhcmRBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dpZnRDYXJkQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDJINC43NUEyLjc1IDIuNzUgMCAwIDAgMiA0Ljc1VjdoMi4yN0EyIDIgMCAwIDEgNyA0LjI3VjJaTTIgOHYzLjI1QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE0SDdWOC43bC0xLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy0uN0w2LjI5IDhIMlptNiA2aDEuMDJBNS41IDUuNSAwIDAgMSAxOCAxMC4yNlY4SDguN2wxLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy43TDggOC43MVYxNFptMTAtN2gtNy4yN0EyIDIgMCAwIDAgOCA0LjI3VjJoNy4yNUEyLjc1IDIuNzUgMCAwIDEgMTggNC43NVY3Wk04IDdWNmExIDEgMCAxIDEgMSAxSDhaTTcgN0g2YTEgMSAwIDEgMSAxLTF2MVptMTIgNy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdENhcmRBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHaWZ0Q2FyZEFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSAyaDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDQuNzV2NS41YTUuNSA1LjUgMCAwIDAtMS0uNjVWOEg4LjdsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN0w4IDguNzFWMTNoMS4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTEuMjV2LTYuNVpNNC43NSAzQzMuNzggMyAzIDMuNzggMyA0Ljc1VjdoMS4yN0EyIDIgMCAwIDEgNyA0LjI3VjNINC43NVpNOCAzdjEuMjdBMiAyIDAgMCAxIDEwLjczIDdIMTdWNC43NUMxNyAzLjc4IDE2LjIyIDMgMTUuMjUgM0g4Wm0wIDRoMWExIDEgMCAxIDAtMS0xdjFaTTYgNWExIDEgMCAwIDAgMCAyaDFWNmExIDEgMCAwIDAtMS0xWk0zIDh2My4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg3VjguN2wtMS42NSAxLjY1YS41LjUgMCAwIDEtLjctLjdMNi4yOSA4SDNabTE2IDYuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEdpZnRDYXJkTW9uZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2lmdENhcmRNb25leUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDJINC43NUEyLjc1IDIuNzUgMCAwIDAgMiA0Ljc1VjdoMi4yN0EyIDIgMCAwIDEgNyA0LjI3VjJabTEgNHYxaDFhMSAxIDAgMSAwLTEtMVptMi43MyAxQTIgMiAwIDAgMCA4IDQuMjdWMmg3LjI1QTIuNzUgMi43NSAwIDAgMSAxOCA0Ljc1VjdoLTcuMjdaTTguNzEgOGwxLjY0IDEuNjVhLjUuNSAwIDAgMS0uNy43TDggOC43MVYxNGgxdi0uNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNmMuMTcgMCAuMzQuMDIuNS4wNVY4SDguN1pNNyAxNFY4LjdsLTEuNjUgMS42NWEuNS41IDAgMCAxLS43LS43TDYuMjkgOEgydjMuMjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTRIN1ptMC04YTEgMSAwIDEgMC0xIDFoMVY2Wm0xMiA3LjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di0zYzAtLjgzLjY3LTEuNSAxLjUtMS41aDZjLjgzIDAgMS41LjY3IDEuNSAxLjVabS0xIDN2LTFjLS44MyAwLTEuNS42Ny0xLjUgMS41aDFjMC0uMjguMjItLjUuNS0uNVptLS41LTMuNWgtMWMwIC44My42NyAxLjUgMS41IDEuNXYtMWEuNS41IDAgMCAxLS41LS41Wm0tNiAwYS41LjUgMCAwIDEtLjUuNXYxYy44MyAwIDEuNS0uNjcgMS41LTEuNWgtMVptLS41IDMuNWMuMjggMCAuNS4yMi41LjVoMWMwLS44My0uNjctMS41LTEuNS0xLjV2MVptMy41LTNhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBHaWZ0Q2FyZE1vbmV5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHaWZ0Q2FyZE1vbmV5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDQuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgMmgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA0Ljc1VjExaC0xVjhIOC43bDEuNjUgMS42NWEuNS41IDAgMCAxLS43LjdMOCA4LjcxVjEzaDEuMTJhMiAyIDAgMCAwLS4xMi42OVYxNEg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDExLjI1di02LjVaTTMgOHYzLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDdWOC43bC0xLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy0uN0w2LjI5IDhIM1ptMS4yNy0xQTIgMiAwIDAgMSA3IDQuMjdWM0g0Ljc1QzMuNzggMyAzIDMuNzggMyA0Ljc1VjdoMS4yN1pNNiA3aDFWNmExIDEgMCAxIDAtMSAxWm0yLTF2MWgxYTEgMSAwIDEgMC0xLTFabTIuNzMgMUgxN1Y0Ljc1QzE3IDMuNzggMTYuMjIgMyAxNS4yNSAzSDh2MS4yN0EyIDIgMCAwIDEgMTAuNzMgN1pNMTkgMTMuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTNjMC0uODMuNjctMS41IDEuNS0xLjVoNmMuODMgMCAxLjUuNjcgMS41IDEuNVptLTEgM3YtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVoMWMwLS4yOC4yMi0uNS41LS41Wm0tLjUtMy41aC0xYzAgLjgzLjY3IDEuNSAxLjUgMS41di0xYS41LjUgMCAwIDEtLjUtLjVabS02IDBhLjUuNSAwIDAgMS0uNS41djFjLjgzIDAgMS41LS42NyAxLjUtMS41aC0xWm0tLjUgMy41Yy4yOCAwIC41LjIyLjUuNWgxYzAtLjgzLS42Ny0xLjUtMS41LTEuNXYxWm0zLjUtM2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdpZnRDYXJkTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2lmdENhcmRNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDRIN3YyLjI3QTIgMiAwIDAgMCA0LjI3IDlIMlY2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRaTTIgMTIuMjVWMTBoNC4zbC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43TDcgMTAuNzFWMTVINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMi4yNVpNOCAxNWg1LjI1QTIuNzUgMi43NSAwIDAgMCAxNiAxMi4yNVYxMEg4LjdsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN0w4IDEwLjcxVjE1Wm0yLjczLTZIMTZWNi43NUEyLjc1IDIuNzUgMCAwIDAgMTMuMjUgNEg4djIuMjdBMiAyIDAgMCAxIDEwLjczIDlaTTggOVY4YTEgMSAwIDEgMSAxIDFIOFpNNiA5aDFWOGExIDEgMCAxIDAtMSAxWm0uNzUgOGMtLjg1IDAtMS42Mi0uMzktMi4xMi0xaDguNjJBMy43NSAzLjc1IDAgMCAwIDE3IDEyLjI1VjYuNjNjLjYxLjUgMSAxLjI3IDEgMi4xMnYzLjVBNC43NSA0Ljc1IDAgMCAxIDEzLjI1IDE3aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHaWZ0Q2FyZE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHaWZ0Q2FyZE11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY1LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTVoOC41QTIuNzUgMi43NSAwIDAgMCAxNiAxMi4yNXYtNS41QTIuNzUgMi43NSAwIDAgMCAxMy4yNSA0aC04LjVaTTMgMTIuMjVWMTBoMy4zbC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43TDcgMTAuNzFWMTRINC43NUMzLjc4IDE0IDMgMTMuMjIgMyAxMi4yNVpNMyA5VjYuNzVDMyA1Ljc4IDMuNzggNSA0Ljc1IDVIN3YxLjI3QTIgMiAwIDAgMCA0LjI3IDlIM1ptNCAwSDZhMSAxIDAgMSAxIDEtMXYxWm0xIDBWOGExIDEgMCAxIDEgMSAxSDhabTMtMWEyIDIgMCAwIDAtMy0xLjczVjVoNS4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY5aC00LjI3QTIgMiAwIDAgMCAxMSA4Wm0tLjY1IDMuNjVMOC43MSAxMEgxNXYyLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg4di0zLjNsMS42NSAxLjY1YS41LjUgMCAwIDAgLjctLjdaTTYuNzUgMTdjLS44NSAwLTEuNjItLjM5LTIuMTItMWg4LjYyQTMuNzUgMy43NSAwIDAgMCAxNyAxMi4yNVY2LjYzYy42MS41IDEgMS4yNyAxIDIuMTJ2My41QTQuNzUgNC43NSAwIDAgMSAxMy4yNSAxN2gtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdE9wZW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2lmdE9wZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMjUgMy41YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTkuNSA1YTMgMyAwIDAgMC0zIDNBMi41IDIuNSAwIDAgMCA5IDEwLjVhMiAyIDAgMCAwIDItMmMwLS44My0uNjctMS41LTEuNS0xLjVhMSAxIDAgMCAwLTEgMSAuNS41IDAgMCAwIDEgMGMuMjggMCAuNS4yMi41LjVhMSAxIDAgMCAxLTEgMUExLjUgMS41IDAgMCAxIDcuNSA4YzAtMS4xLjktMiAyLTJBMi41IDIuNSAwIDAgMSAxMiA4LjVhMyAzIDAgMCAxLTMgMyAuNS41IDAgMCAwIDAgMSA0IDQgMCAwIDAgNC00QTMuNSAzLjUgMCAwIDAgOS41IDVabS00LjQ1IDVoMS4wOGMuMzkuNTYuOTMgMSAxLjU3IDEuMjVBMS41IDEuNSAwIDAgMCA5IDEzLjVhNSA1IDAgMCAwIDQuNzctMy41aDEuMThjLjQ1IDAgLjkuMTIgMS4yOC4zNmwyLjAzIDEuMjFhLjUuNSAwIDEgMS0uNTIuODZMMTYgMTEuMzh2NC4xMmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSA0IDE1LjV2LTQuMTJsLTEuNzQgMS4wNWEuNS41IDAgMSAxLS41Mi0uODZsMi4wMy0xLjIxQTIuNSAyLjUgMCAwIDEgNS4wNSAxMFpNMTcgNS41YS41LjUgMCAwIDAtMSAwVjZoLS41YS41LjUgMCAwIDAgMCAxaC41di41YS41LjUgMCAwIDAgMSAwVjdoLjVhLjUuNSAwIDAgMCAwLTFIMTd2LS41WlwiXSk7XG5leHBvcnQgY29uc3QgR2lmdE9wZW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dpZnRPcGVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDQuMjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk01IDEwLjVhLjUuNSAwIDAgMC0uNzYtLjQzbC0yLjUgMS41YS41LjUgMCAxIDAgLjUyLjg2TDQgMTEuMzh2NC4xMkEyLjUgMi41IDAgMCAwIDYuNSAxOGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNC4xMmwxLjc0IDEuMDVhLjUuNSAwIDAgMCAuNTItLjg2bC0yLjUtMS41YS41LjUgMCAwIDAtLjc2LjQzdjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNS41di01Wk0xNi41IDVjLjI4IDAgLjUuMjIuNS41VjZoLjVhLjUuNSAwIDAgMSAwIDFIMTd2LjVhLjUuNSAwIDAgMS0xIDBWN2gtLjVhLjUuNSAwIDEgMSAwLTFoLjV2LS41YzAtLjI4LjIyLS41LjUtLjVabS03IDBhMyAzIDAgMCAwLTMgM0EyLjUgMi41IDAgMCAwIDkgMTAuNWEyIDIgMCAwIDAgMi0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWExIDEgMCAwIDAtMSAxIC41LjUgMCAwIDAgMSAwYy4yOCAwIC41LjIyLjUuNWExIDEgMCAwIDEtMSAxQTEuNSAxLjUgMCAwIDEgNy41IDhjMC0xLjEuOS0yIDItMkEyLjUgMi41IDAgMCAxIDEyIDguNWEzIDMgMCAwIDEtMyAzIC41LjUgMCAwIDAgMCAxIDQgNCAwIDAgMCA0LTRBMy41IDMuNSAwIDAgMCA5LjUgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsYW5jZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbGFuY2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAxNC41djFjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zYy0uODMgMC0xLjUuNjctMS41IDEuNVptMC0xMHY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di01QzkgMy42NyA4LjMzIDMgNy41IDNoLTNDMy42NyAzIDMgMy42NyAzIDQuNVptOCAwdjFjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zYy0uODMgMC0xLjUuNjctMS41IDEuNVpNMTIuNSA5Yy0uODMgMC0xLjUuNjctMS41IDEuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdsYW5jZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xhbmNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVDOSAzLjY3IDguMzMgMyA3LjUgM2gtM1pNNCA0LjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di01Wk0xMi41IDljLS44MyAwLTEuNS42Ny0xLjUgMS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWm0tLjUgMS41YzAtLjI4LjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtNVptLTEtNmMwLS44My42Ny0xLjUgMS41LTEuNWgzYy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zQTEuNSAxLjUgMCAwIDEgMTEgNS41di0xWm0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTNabS04IDljLS44MyAwLTEuNS42Ny0xLjUgMS41djFjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWk00IDE0LjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgR2xhbmNlSG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbGFuY2VIb3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgM2gxYy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xQTEuNSAxLjUgMCAwIDEgMTMgNy41di0zYzAtLjgzLjY3LTEuNSAxLjUtMS41Wm0tMTAgMGg1Yy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgMyA3LjV2LTNDMyAzLjY3IDMuNjcgMyA0LjUgM1ptMCA4aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTNjMC0uODMuNjctMS41IDEuNS0xLjVaTTkgMTIuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgOSAxNS41di0zWlwiXSk7XG5leHBvcnQgY29uc3QgR2xhbmNlSG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xhbmNlSG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMTUuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA5IDE1LjV2LTNjMC0uODMuNjctMS41IDEuNS0xLjVoNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzWm0tMS41LjVhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDVaTTExIDcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSAzIDcuNXYtM0MzIDMuNjcgMy42NyAzIDQuNSAzaDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2M1pNOS41IDhhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDVabTYgMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xYy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDFabS41LTEuNWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41djNabS05IDhjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xQTEuNSAxLjUgMCAwIDEgMyAxNS41di0zYzAtLjgzLjY3LTEuNSAxLjUtMS41aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2M1ptLTEuNS41YS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgxWlwiXSk7XG5leHBvcnQgY29uc3QgR2xhbmNlSG9yaXpvbnRhbFNwYXJrbGVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsYW5jZUhvcml6b250YWxTcGFya2xlc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNOS41IDNjLjIgMCAuMzguMDQuNTUuMWExLjQzIDEuNDMgMCAwIDAgLjkyIDEuNzVIMTFWNy41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDMgNy41di0zQzMgMy42NyAzLjY3IDMgNC41IDNoNVptLTQgOGgtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVabTUgMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBHbGFuY2VIb3Jpem9udGFsU3BhcmtsZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsYW5jZUhvcml6b250YWxTcGFya2xlc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTkuNSAzYy4yIDAgLjM4LjA0LjU1LjFhMS40MyAxLjQzIDAgMCAwIC45MiAxLjc1SDExVjcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSAzIDcuNXYtM0MzIDMuNjcgMy42NyAzIDQuNSAzaDVabTYgMTRjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWg1Wm0uNS0xLjVhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXYzWm0tNi04di0zYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41Wk01LjUgMTdjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxWm0uNS0xLjVhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXYzWlwiXSk7XG5leHBvcnQgY29uc3QgR2xhc3Nlc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbGFzc2VzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMTkgNGEyIDIgMCAwIDAtMS41Mi43TDIuMzcgOC41QTEuNSAxLjUgMCAwIDAgMiA5LjV2M0EyLjUgMi41IDAgMCAwIDQuNSAxNWgyQTIuNSAyLjUgMCAwIDAgOSAxMi41VjExaDJ2MS41YTIuNSAyLjUgMCAwIDAgMi41IDIuNWgyYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM2MwLS40My0uMTgtLjgyLS40Ny0xLjA5bC0zLjItMy43MkEyIDIgMCAwIDAgMTIuOCA0SDEyYS41LjUgMCAxIDAgMCAxaC44MWExIDEgMCAwIDEgLjc2LjM1TDE1Ljg2IDhIMTIuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVIOXYtLjVDOSA4LjY3IDguMzMgOCA3LjUgOEg0LjE0bDIuMjktMi42NUExIDEgMCAwIDEgNy4xOSA1SDhhLjUuNSAwIDAgMCAwLTFoLS44MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsYXNzZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsYXNzZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMTkgNGEyIDIgMCAwIDAtMS41Mi43bC0zLjMgMy44MmMtLjIzLjI3LS4zNy42LS4zNy45OHYzQTIuNSAyLjUgMCAwIDAgNC41IDE1aDJBMi41IDIuNSAwIDAgMCA5IDEyLjVWMTFoMnYxLjVhMi41IDIuNSAwIDAgMCAyLjUgMi41aDJhMi41IDIuNSAwIDAgMCAyLjUtMi41di0zYzAtLjQzLS4xOC0uODItLjQ3LTEuMDlsLTMuMi0zLjcyQTIgMiAwIDAgMCAxMi44IDRIMTJhLjUuNSAwIDEgMCAwIDFoLjgxYTEgMSAwIDAgMSAuNzYuMzVMMTUuODYgOEgxMi41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYuNUg5di0uNUM5IDguNjcgOC4zMyA4IDcuNSA4SDQuMTRsMi4yOS0yLjY1QTEgMSAwIDAgMSA3LjE5IDVIOGEuNS41IDAgMSAwIDAtMWgtLjgxWk04IDkuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMkExLjUgMS41IDAgMCAxIDMgMTIuNXYtM2MwLS4yOC4yMi0uNS41LS41aDRjLjI4IDAgLjUuMjIuNS41Wm00IDN2LTNjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgLjMyLjExbC4wNS4wN2MuMDguMDguMTMuMi4xMy4zMnYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMmExLjUgMS41IDAgMCAxLTEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHbGFzc2VzT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsYXNzZXNPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w0Ljg5IDUuNiAyLjM2IDguNTJjLS4yMi4yNy0uMzYuNi0uMzYuOTh2M0EyLjUgMi41IDAgMCAwIDQuNSAxNWgyQTIuNSAyLjUgMCAwIDAgOSAxMi41VjExaDEuM2wuNy43di44YTIuNSAyLjUgMCAwIDAgMi41IDIuNWguOGwyLjg1IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTcuMyA4SDQuMTRMNS42IDYuMyA3LjMgOFptOS40OCA2LjY1TDExLjEgOC45N0ExLjUgMS41IDAgMCAxIDEyLjUgOGgzLjM2bC0yLjI5LTIuNjVhMSAxIDAgMCAwLS43Ni0uMzVIMTJhLjUuNSAwIDAgMSAwLTFoLjgxYTIgMiAwIDAgMSAxLjUyLjdsMy4yIDMuNzFjLjI5LjI4LjQ3LjY2LjQ3IDEuMDl2M2MwIC45Mi0uNSAxLjcyLTEuMjMgMi4xNVpNNi4zMiA0LjJsLjguOGExIDEgMCAwIDEgLjA3IDBIOGEuNS41IDAgMCAwIDAtMWgtLjgxYTIgMiAwIDAgMC0uODcuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsYXNzZXNPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsYXNzZXNPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNC44OSA1LjYgMi4zNiA4LjUyYy0uMjIuMjctLjM2LjYtLjM2Ljk4djNBMi41IDIuNSAwIDAgMCA0LjUgMTVoMkEyLjUgMi41IDAgMCAwIDkgMTIuNVYxMWgxLjNsLjcuN3YuOGEyLjUgMi41IDAgMCAwIDIuNSAyLjVoLjhsMi44NSAyLjg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk03LjMgOEg0LjE0TDUuNiA2LjMgNy4zIDhaTTggOS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yQTEuNSAxLjUgMCAwIDEgMyAxMi41di0zYzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjVabTQgLjM4LS45LS45QTEuNSAxLjUgMCAwIDEgMTIuNSA4aDMuMzZsLTIuMjktMi42NWExIDEgMCAwIDAtLjc2LS4zNUgxMmEuNS41IDAgMCAxIDAtMWguODFhMiAyIDAgMCAxIDEuNTIuN2wzLjIgMy43MWMuMjkuMjguNDcuNjYuNDcgMS4wOXYzYzAgLjkyLS41IDEuNzItMS4yMyAyLjE1bC0uNzQtLjc1Yy41Ny0uMi45Ny0uNzYuOTctMS40di0zYS41LjUgMCAwIDAtLjEyLS4zM2wtLjA2LS4wNkEuNS41IDAgMCAwIDE2LjUgOWgtNGEuNS41IDAgMCAwLS41LjV2LjM4Wk03LjEyIDVsLS44LS44YTIgMiAwIDAgMSAuODctLjJIOGEuNS41IDAgMCAxIDAgMWgtLjgxYTEgMSAwIDAgMC0uMDcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuOTkgNC4xOGMtLjI4LjY2LS41IDEuNDUtLjY3IDIuMzJoNS4zNmMtLjE3LS44Ny0uNC0xLjY2LS42Ny0yLjMyLS4zLS43My0uNjUtMS4zLTEtMS42NkMxMC42NCAyLjE1IDEwLjMgMiAxMCAyYy0uMyAwLS42NS4xNS0xIC41Mi0uMzYuMzctLjcxLjkzLTEuMDEgMS42NlptLS4xLTEuOWMtLjMxLjQzLS41OS45NC0uODMgMS41Mi0uMzIuNzgtLjU4IDEuNy0uNzYgMi43SDIuOGMxLTIuMDUgMi44NS0zLjYgNS4xLTQuMjJabTQuMjIgMGMuMzEuNDMuNTkuOTQuODMgMS41Mi4zMi43OC41OCAxLjcuNzYgMi43aDMuNWE4LjAyIDguMDIgMCAwIDAtNS4wOS00LjIyWm01LjUgNS4yMmgtMy43NmEyMC41MiAyMC41MiAwIDAgMSAwIDVoMy43NWE4IDggMCAwIDAgMC01Wm0tLjQxIDZoLTMuNWMtLjE4IDEtLjQ0IDEuOTItLjc2IDIuNy0uMjQuNTgtLjUyIDEuMS0uODMgMS41MmE4LjAyIDguMDIgMCAwIDAgNS4wOS00LjIyWk0xMCAxOGMuMyAwIC42NS0uMTUgMS0uNTIuMzYtLjM3LjcxLS45MyAxLjAxLTEuNjYuMjgtLjY2LjUtMS40NS42Ny0yLjMySDcuMzJjLjE3Ljg3LjQgMS42Ni42NyAyLjMyLjMuNzMuNjUgMS4zIDEgMS42Ni4zNi4zNy43LjUyIDEuMDEuNTJabS0yLjEtLjI4YTguMDIgOC4wMiAwIDAgMS01LjEtNC4yMmgzLjVjLjE4IDEgLjQ0IDEuOTIuNzYgMi43LjI0LjU4LjUyIDEuMS44MyAxLjUyWk0yLjQgMTIuNWgzLjc1YTIwLjUyIDIwLjUyIDAgMCAxIDAtNUgyLjRhOCA4IDAgMCAwIDAgNVpNNyAxMGMwLS44Ny4wNi0xLjcxLjE2LTIuNWg1LjY4YTE5LjQ0IDE5LjQ0IDAgMCAxIDAgNUg3LjE2QzcuMDYgMTEuNzEgNyAxMC44NyA3IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMC0xNWMuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTEuMDMgMGg1LjE2YTkuMjUgOS4yNSAwIDAgMS0uNTYgMS42QzExLjQxIDE2LjQgMTAuNjYgMTcgMTAgMTdjLS42NiAwLTEuNC0uNTktMi4wMi0xLjktLjIyLS40Ny0uNC0xLjAxLS41Ni0xLjZabTUuMzctMUg3LjIxYTE0Ljg3IDE0Ljg3IDAgMCAxIDAtNWg1LjU4YTE0Ljg2IDE0Ljg2IDAgMCAxIDAgNVptLjgyIDFoMi40NWE3LjAyIDcuMDIgMCAwIDEtMy43NyAzLjEyYy4yNC0uMzMuNDUtLjcuNjQtMS4xLjI3LS42LjUtMS4yOC42OC0yLjAyWm0yLjkzLTFoLTIuNzNhMTUuOTcgMTUuOTcgMCAwIDAgMC01aDIuNzNhNi45OCA2Ljk4IDAgMCAxIDAgNVptLTQuMjUtOS4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2Yy4wNi41LjEgMSAuMTMgMS41MkE1LjU3IDUuNTcgMCAwIDEgMTggMTAuMjVhNy45MyA3LjkzIDAgMCAwLS40LTIuNzVabS00Ljc3IDBhMTkgMTkgMCAwIDEgLjE0IDEuNzEgNS41MSA1LjUxIDAgMCAwLTMuNiAzLjI5SDcuMTVhMTkuNDQgMTkuNDQgMCAwIDEgMC01aDUuNjhabS01LjUyIDZoMS43N2E1LjUzIDUuNTMgMCAwIDAgMS4xNCA0LjQ3Ljk5Ljk5IDAgMCAxLS4yMy4wM2MtLjMgMC0uNjUtLjE1LTEtLjUyLS4zNi0uMzctLjcxLS45My0xLjAxLTEuNjYtLjI4LS42Ni0uNS0xLjQ1LS42Ny0yLjMyWm0uNTcgNC4yMkE4LjAyIDguMDIgMCAwIDEgMi44IDEzLjVoMy41Yy4xOCAxIC40NCAxLjkyLjc2IDIuNy4yNC41OC41MiAxLjEuODMgMS41MlpNMi40IDEyLjVoMy43NmEyMC41MiAyMC41MiAwIDAgMSAwLTVIMi40YTggOCAwIDAgMCAwIDVabTE2LjYxIDJhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDE4aC4yNWE1LjUgNS41IDAgMCAxLS43LTEuMDljLS41My0uMi0xLjEtLjc5LTEuNTctMS44Mi0uMjItLjQ2LS40LTEtLjU2LTEuNTloMS42N2MuMDYtLjM1LjE2LS42OC4yOC0xSDcuMjFhMTQuODcgMTQuODcgMCAwIDEgMC01aDUuNThjLjEuNTQuMTYgMS4xMS4xOSAxLjcxLjMyLS4wOS42NS0uMTUgMS0uMTgtLjA0LS41My0uMS0xLjA0LS4xNy0xLjUzaDIuNzNjLjI1LjY2LjQgMS4zNi40NSAyLjEuMzYuMTguNy40IDEgLjY1TDE4IDEwYTggOCAwIDEgMC04IDhabTAtMTVjLjY2IDAgMS40LjU5IDIuMDIgMS45LjIyLjQ3LjQgMS4wMS41NiAxLjZINy40MmMuMTUtLjU5LjM0LTEuMTMuNTYtMS42QzguNTkgMy42IDkuMzQgMyAxMCAzWk03LjA3IDQuNDljLS4yNy41OS0uNSAxLjI3LS42OCAyLjAxSDMuOTRBNy4wMiA3LjAyIDAgMCAxIDcuNyAzLjM4Yy0uMjQuMzMtLjQ1LjctLjY0IDEuMVpNNi4yIDcuNWExNS45NyAxNS45NyAwIDAgMCAwIDVIMy40NmE2Ljk4IDYuOTggMCAwIDEgMC01aDIuNzNabS4yIDZjLjE3Ljc0LjQgMS40Mi42OCAyLjAxLjE5LjQuNC43OC42NCAxLjFhNy4wMiA3LjAyIDAgMCAxLTMuNzctMy4xMWgyLjQ1Wm01LjktMTAuMTJhNy4wMiA3LjAyIDAgMCAxIDMuNzcgMy4xMmgtMi40NWExMC41IDEwLjUgMCAwIDAtLjY4LTIuMDFjLS4xOS0uNC0uNC0uNzgtLjY0LTEuMVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlQXJyb3dGb3J3YXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlQXJyb3dGb3J3YXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuOTkgNC4xOGMtLjI4LjY2LS41IDEuNDUtLjY3IDIuMzJoNS4zNmMtLjE3LS44Ny0uNC0xLjY2LS42Ny0yLjMyLS4zLS43My0uNjUtMS4zLTEtMS42NkMxMC42NCAyLjE1IDEwLjMgMiAxMCAyYy0uMyAwLS42NS4xNS0xIC41Mi0uMzYuMzctLjcxLjkzLTEuMDEgMS42NlptLS4xLTEuOWMtLjMxLjQzLS41OS45NC0uODMgMS41Mi0uMzIuNzgtLjU4IDEuNy0uNzYgMi43SDIuOGMxLTIuMDUgMi44NS0zLjYgNS4xLTQuMjJabTUuMDUgMS41MmE3LjE5IDcuMTkgMCAwIDAtLjgzLTEuNTJBOC4wMiA4LjAyIDAgMCAxIDE3LjIgNi41aC0zLjVjLS4xOC0xLS40NC0xLjkyLS43Ni0yLjdabTQuNjYgMy43aC0zLjc1Yy4wNi41LjEgMSAuMTMgMS41MkE1LjU3IDUuNTcgMCAwIDEgMTggMTAuMjVhNy45MyA3LjkzIDAgMCAwLS40LTIuNzVabS00LjYyIDEuNzFhMTkgMTkgMCAwIDAtLjE0LTEuNzFINy4xNmExOS40NCAxOS40NCAwIDAgMCAwIDVoMi4yMWE1LjUxIDUuNTEgMCAwIDEgMy42MS0zLjI5Wk03LjMyIDEzLjVoMS43N2E1LjUzIDUuNTMgMCAwIDAgMS4xNCA0LjQ3Ljk5Ljk5IDAgMCAxLS4yMy4wM2MtLjMgMC0uNjUtLjE1LTEtLjUyLS4zNi0uMzctLjcxLS45My0xLjAxLTEuNjYtLjI4LS42Ni0uNS0xLjQ1LS42Ny0yLjMyWm0tNC41MiAwYzEgMi4wNSAyLjg1IDMuNiA1LjEgNC4yMmE3LjE5IDcuMTkgMCAwIDEtLjg0LTEuNTJjLS4zMi0uNzgtLjU4LTEuNy0uNzYtMi43SDIuOFptLS40LTFoMy43NWEyMC41MiAyMC41MiAwIDAgMSAwLTVIMi40YTggOCAwIDAgMCAwIDVaTTE0LjUgMTlhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS45LTYuNC45LjloLTEuNTVBMi43NSAyLjc1IDAgMCAwIDEyIDE2LjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDEuNTRsLS45LjlhLjUuNSAwIDAgMCAuNzEuN2wxLjc2LTEuNzVhLjUuNSAwIDAgMCAwLS43TDE2LjEgMTEuOWEuNS41IDAgMCAwLS43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZUFycm93Rm9yd2FyZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVBcnJvd0ZvcndhcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDE4aC4yNWE1LjUgNS41IDAgMCAxLS43LTEuMDljLS41My0uMi0xLjEtLjc5LTEuNTctMS44Mi0uMjItLjQ2LS40LTEtLjU2LTEuNTloMS42N2MuMDYtLjM1LjE2LS42OC4yOC0xSDcuMjFhMTQuODcgMTQuODcgMCAwIDEgMC01aDUuNThjLjEuNTQuMTYgMS4xMS4xOSAxLjcxLjMyLS4wOS42NS0uMTUgMS0uMTgtLjA0LS41My0uMS0xLjA0LS4xNy0xLjUzaDIuNzNjLjI1LjY2LjQgMS4zNi40NSAyLjEuMzYuMTguNy40IDEgLjY1TDE4IDEwYTggOCAwIDEgMC04IDhabTAtMTVjLjY2IDAgMS40LjU5IDIuMDIgMS45LjIyLjQ3LjQgMS4wMS41NiAxLjZINy40MmMuMTUtLjU5LjM0LTEuMTMuNTYtMS42QzguNTkgMy42IDkuMzQgMyAxMCAzWk03LjA3IDQuNDljLS4yNy41OS0uNSAxLjI3LS42OCAyLjAxSDMuOTRBNy4wMiA3LjAyIDAgMCAxIDcuNyAzLjM4Yy0uMjQuMzMtLjQ1LjctLjY0IDEuMVpNNi4yIDcuNWExNS45NyAxNS45NyAwIDAgMCAwIDVIMy40NmE2Ljk4IDYuOTggMCAwIDEgMC01aDIuNzNabS4yIDZjLjE3Ljc0LjQgMS40Mi42OCAyLjAxLjE5LjQuNC43OC42NCAxLjFhNy4wMiA3LjAyIDAgMCAxLTMuNzctMy4xMWgyLjQ1Wm01LjktMTAuMTJhNy4wMiA3LjAyIDAgMCAxIDMuNzcgMy4xMmgtMi40NWExMC41IDEwLjUgMCAwIDAtLjY4LTIuMDFjLS4xOS0uNC0uNC0uNzgtLjY0LTEuMVpNMTQuNSAxOWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLjktNi40LjkuOWgtMS41NUEyLjc1IDIuNzUgMCAwIDAgMTIgMTYuMjV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMS41NGwtLjkuOWEuNS41IDAgMCAwIC43MS43bDEuNzYtMS43NWEuNS41IDAgMCAwIDAtLjdMMTYuMSAxMS45YS41LjUgMCAwIDAtLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlQXJyb3dVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZUFycm93VXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2Yy4wNi41LjEgMSAuMTMgMS41MkE1LjU3IDUuNTcgMCAwIDEgMTggMTAuMjVhNy45MyA3LjkzIDAgMCAwLS40LTIuNzVabS00Ljc3IDBhMTkgMTkgMCAwIDEgLjE0IDEuNzEgNS41MSA1LjUxIDAgMCAwLTMuNiAzLjI5SDcuMTVhMTkuNDQgMTkuNDQgMCAwIDEgMC01aDUuNjhabS01LjUyIDZoMS43N2E1LjUzIDUuNTMgMCAwIDAgMS4xNCA0LjQ3Ljk5Ljk5IDAgMCAxLS4yMy4wM2MtLjMgMC0uNjUtLjE1LTEtLjUyLS4zNi0uMzctLjcxLS45My0xLjAxLTEuNjYtLjI4LS42Ni0uNS0xLjQ1LS42Ny0yLjMyWm0uNTcgNC4yMkE4LjAyIDguMDIgMCAwIDEgMi44IDEzLjVoMy41Yy4xOCAxIC40NCAxLjkyLjc2IDIuNy4yNC41OC41MiAxLjEuODMgMS41MlpNMi40IDEyLjVoMy43NmEyMC41MiAyMC41MiAwIDAgMSAwLTVIMi40YTggOCAwIDAgMCAwIDVabTE2LjYxIDJhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlQXJyb3dVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVBcnJvd1VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxOGguMjVhNS41IDUuNSAwIDAgMS0uNy0xLjA5Yy0uNTMtLjItMS4xLS43OS0xLjU3LTEuODItLjIyLS40Ni0uNC0xLS41Ni0xLjU5aDEuNjdjLjA2LS4zNS4xNi0uNjguMjgtMUg3LjIxYTE0Ljg3IDE0Ljg3IDAgMCAxIDAtNWg1LjU4Yy4xLjU0LjE2IDEuMTEuMTkgMS43MS4zMi0uMDkuNjUtLjE1IDEtLjE4LS4wNC0uNTMtLjEtMS4wNC0uMTctMS41M2gyLjczYy4yNS42Ni40IDEuMzYuNDUgMi4xLjM2LjE4LjcuNCAxIC42NUwxOCAxMGE4IDggMCAxIDAtOCA4Wm0wLTE1Yy42NiAwIDEuNC41OSAyLjAyIDEuOS4yMi40Ny40IDEuMDEuNTYgMS42SDcuNDJjLjE1LS41OS4zNC0xLjEzLjU2LTEuNkM4LjU5IDMuNiA5LjM0IDMgMTAgM1pNNy4wNyA0LjQ5Yy0uMjcuNTktLjUgMS4yNy0uNjggMi4wMUgzLjk0QTcuMDIgNy4wMiAwIDAgMSA3LjcgMy4zOGMtLjI0LjMzLS40NS43LS42NCAxLjFaTTYuMiA3LjVhMTUuOTcgMTUuOTcgMCAwIDAgMCA1SDMuNDZhNi45OCA2Ljk4IDAgMCAxIDAtNWgyLjczWm0uMiA2Yy4xNy43NC40IDEuNDIuNjggMi4wMS4xOS40LjQuNzguNjQgMS4xYTcuMDIgNy4wMiAwIDAgMS0zLjc3LTMuMTFoMi40NVptNS45LTEwLjEyYTcuMDIgNy4wMiAwIDAgMSAzLjc3IDMuMTJoLTIuNDVhMTAuNSAxMC41IDAgMCAwLS42OC0yLjAxYy0uMTktLjQtLjQtLjc4LS42NC0xLjFaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljk5IDQuMThjLS4yOC42Ni0uNSAxLjQ1LS42NyAyLjMyaDUuMzZjLS4xNy0uODctLjQtMS42Ni0uNjctMi4zMi0uMy0uNzMtLjY1LTEuMy0xLTEuNjZDMTAuNjQgMi4xNSAxMC4zIDIgMTAgMmMtLjMgMC0uNjUuMTUtMSAuNTItLjM2LjM3LS43MS45My0xLjAxIDEuNjZabS0uMS0xLjljLS4zMS40My0uNTkuOTQtLjgzIDEuNTItLjMyLjc4LS41OCAxLjctLjc2IDIuN0gyLjhjMS0yLjA1IDIuODUtMy42IDUuMS00LjIyWm00LjIyIDBjLjMxLjQzLjU5Ljk0LjgzIDEuNTIuMzIuNzguNTggMS43Ljc2IDIuN2gzLjVhOC4wMiA4LjAyIDAgMCAwLTUuMDktNC4yMlptNS41IDUuMjJoLTMuNzZjLjA2LjUuMSAxIC4xMyAxLjUyQTUuNTcgNS41NyAwIDAgMSAxOCAxMC4yNWE3LjkzIDcuOTMgMCAwIDAtLjQtMi43NVptLTQuNzcgMGExOSAxOSAwIDAgMSAuMTQgMS43MSA1LjUxIDUuNTEgMCAwIDAtMy42IDMuMjlINy4xNWExOS40NCAxOS40NCAwIDAgMSAwLTVoNS42OFptLTUuNTIgNmgxLjc3YTUuNTMgNS41MyAwIDAgMCAxLjE0IDQuNDcuOTkuOTkgMCAwIDEtLjIzLjAzYy0uMyAwLS42NS0uMTUtMS0uNTItLjM2LS4zNy0uNzEtLjkzLTEuMDEtMS42Ni0uMjgtLjY2LS41LTEuNDUtLjY3LTIuMzJabS41NyA0LjIyQTguMDIgOC4wMiAwIDAgMSAyLjggMTMuNWgzLjVjLjE4IDEgLjQ0IDEuOTIuNzYgMi43LjI0LjU4LjUyIDEuMS44MyAxLjUyWk0yLjQgMTIuNWgzLjc2YTIwLjUyIDIwLjUyIDAgMCAxIDAtNUgyLjRhOCA4IDAgMCAwIDAgNVptMTYuNjEgMmE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZUNsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZUNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxOGguMjVhNS41IDUuNSAwIDAgMS0uNy0xLjA5Yy0uNTMtLjItMS4xLS43OS0xLjU3LTEuODItLjIyLS40Ni0uNC0xLS41Ni0xLjU5aDEuNjdjLjA2LS4zNS4xNi0uNjguMjgtMUg3LjIxYTE0Ljg3IDE0Ljg3IDAgMCAxIDAtNWg1LjU4Yy4xLjU0LjE2IDEuMTEuMTkgMS43MS4zMi0uMDkuNjUtLjE1IDEtLjE4LS4wNC0uNTMtLjEtMS4wNC0uMTctMS41M2gyLjczYy4yNS42Ni40IDEuMzYuNDUgMi4xLjM2LjE4LjcuNCAxIC42NUwxOCAxMGE4IDggMCAxIDAtOCA4Wm0wLTE1Yy42NiAwIDEuNC41OSAyLjAyIDEuOS4yMi40Ny40IDEuMDEuNTYgMS42SDcuNDJjLjE1LS41OS4zNC0xLjEzLjU2LTEuNkM4LjU5IDMuNiA5LjM0IDMgMTAgM1pNNy4wNyA0LjQ5Yy0uMjcuNTktLjUgMS4yNy0uNjggMi4wMUgzLjk0QTcuMDIgNy4wMiAwIDAgMSA3LjcgMy4zOGMtLjI0LjMzLS40NS43LS42NCAxLjFaTTYuMiA3LjVhMTUuOTcgMTUuOTcgMCAwIDAgMCA1SDMuNDZhNi45OCA2Ljk4IDAgMCAxIDAtNWgyLjczWm0uMiA2Yy4xNy43NC40IDEuNDIuNjggMi4wMS4xOS40LjQuNzguNjQgMS4xYTcuMDIgNy4wMiAwIDAgMS0zLjc3LTMuMTFoMi40NVptNS45LTEwLjEyYTcuMDIgNy4wMiAwIDAgMSAzLjc3IDMuMTJoLTIuNDVhMTAuNSAxMC41IDAgMCAwLS42OC0yLjAxYy0uMTktLjQtLjQtLjc4LS42NC0xLjFaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVEZXNrdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlRGVza3RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljk5IDQuMThjLS4yOC42Ni0uNSAxLjQ1LS42NyAyLjMyaDUuMzZjLS4xNy0uODctLjQtMS42Ni0uNjctMi4zMi0uMy0uNzMtLjY1LTEuMy0xLTEuNjZDMTAuNjQgMi4xNSAxMC4zIDIgMTAgMmMtLjMgMC0uNjUuMTUtMSAuNTItLjM2LjM3LS43MS45My0xLjAxIDEuNjZabS0uMS0xLjljLS4zMS40My0uNTkuOTQtLjgzIDEuNTItLjMyLjc4LS41OCAxLjctLjc2IDIuN0gyLjhjMS0yLjA1IDIuODUtMy42IDUuMS00LjIyWm00LjIyIDBjLjMxLjQzLjU5Ljk0LjgzIDEuNTIuMzIuNzguNTggMS43Ljc2IDIuN2gzLjVhOC4wMiA4LjAyIDAgMCAwLTUuMDktNC4yMlptNS41IDUuMjJoLTMuNzZjLjEuOC4xNSAxLjYzLjE1IDIuNWg0YTggOCAwIDAgMC0uNC0yLjVabS00Ljc3IDBjLjEuNzkuMTYgMS42My4xNiAyLjVoLTJhMiAyIDAgMCAwLTIgMnYuNUg3LjE2YTE5LjQ0IDE5LjQ0IDAgMCAxIDAtNWg1LjY4Wm0tNS41MiA2SDlWMTZhMiAyIDAgMCAwIDEuNDEgMS45MWMtLjE0LjA2LS4yOC4wOS0uNDEuMDktLjMgMC0uNjUtLjE1LTEtLjUyLS4zNi0uMzctLjcxLS45My0xLjAxLTEuNjYtLjI4LS42Ni0uNS0xLjQ1LS42Ny0yLjMyWm0uNTcgNC4yMkE4LjAyIDguMDIgMCAwIDEgMi44IDEzLjVoMy41Yy4xOCAxIC40NCAxLjkyLjc2IDIuNy4yNC41OC41MiAxLjEuODMgMS41MlpNMi40IDEyLjVoMy43NmEyMC41MiAyMC41MiAwIDAgMSAwLTVIMi40YTggOCAwIDAgMCAwIDVaTTEwIDEyYTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtMnYxaC41YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xaC41di0xaC0yYTEgMSAwIDAgMS0xLTF2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZURlc2t0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlRGVza3RvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMThjLjIyIDAgLjQ1IDAgLjY3LS4wM2EyIDIgMCAwIDEtMS41Ni0xLjMyIDQuMiA0LjIgMCAwIDEtMS4xMy0xLjU2Yy0uMjItLjQ2LS40LTEtLjU2LTEuNTlIOXYtMUg3LjJhMTQuODcgMTQuODcgMCAwIDEgMC01aDUuNmMuMTMuNzcuMiAxLjYyLjIgMi41aDFjMC0uODctLjA3LTEuNzEtLjItMi41aDIuNzRjLjMuNzguNDYgMS42Mi40NiAyLjVoMWE4IDggMCAxIDAtOCA4Wm0wLTE1Yy42NiAwIDEuNC41OSAyLjAyIDEuOS4yMi40Ny40IDEuMDEuNTYgMS42SDcuNDJjLjE1LS41OS4zNC0xLjEzLjU2LTEuNkM4LjU5IDMuNiA5LjM0IDMgMTAgM1pNNy4wNyA0LjQ5Yy0uMjcuNTktLjUgMS4yNy0uNjggMi4wMUgzLjk0QTcuMDIgNy4wMiAwIDAgMSA3LjcgMy4zOGMtLjI0LjMzLS40NS43LS42NCAxLjFaTTYuMiA3LjVhMTUuOTcgMTUuOTcgMCAwIDAgMCA1SDMuNDZhNi45OCA2Ljk4IDAgMCAxIDAtNWgyLjczWm0uMiA2Yy4xNy43NC40IDEuNDIuNjggMi4wMS4xOS40LjQuNzguNjQgMS4xYTcuMDIgNy4wMiAwIDAgMS0zLjc3LTMuMTFoMi40NVptNS45LTEwLjEyYTcuMDIgNy4wMiAwIDAgMSAzLjc3IDMuMTJoLTIuNDVhMTAuNSAxMC41IDAgMCAwLS42OC0yLjAxYy0uMTktLjQtLjQtLjc4LS42NC0xLjFaTTEwIDEyYTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtMnYxaC41YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xaC41di0xaC0yYTEgMSAwIDAgMS0xLTF2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZUVycm9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2Yy4wNi41LjEgMSAuMTMgMS41MkE1LjU3IDUuNTcgMCAwIDEgMTggMTAuMjVhNy45MyA3LjkzIDAgMCAwLS40LTIuNzVabS00Ljc3IDBhMTkgMTkgMCAwIDEgLjE0IDEuNzEgNS41MSA1LjUxIDAgMCAwLTMuNiAzLjI5SDcuMTVhMTkuNDQgMTkuNDQgMCAwIDEgMC01aDUuNjhabS01LjUyIDZoMS43N2E1LjUzIDUuNTMgMCAwIDAgMS4xNCA0LjQ3Ljk5Ljk5IDAgMCAxLS4yMy4wM2MtLjMgMC0uNjUtLjE1LTEtLjUyLS4zNi0uMzctLjcxLS45My0xLjAxLTEuNjYtLjI4LS42Ni0uNS0xLjQ1LS42Ny0yLjMyWm0uNTcgNC4yMkE4LjAyIDguMDIgMCAwIDEgMi44IDEzLjVoMy41Yy4xOCAxIC40NCAxLjkyLjc2IDIuNy4yNC41OC41MiAxLjEuODMgMS41MlpNMi40IDEyLjVoMy43NmEyMC41MiAyMC41MiAwIDAgMSAwLTVIMi40YTggOCAwIDAgMCAwIDVabTE2LjYxIDJhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVFcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVFcnJvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMThoLjI1YTUuNSA1LjUgMCAwIDEtLjctMS4wOWMtLjUzLS4yLTEuMS0uNzktMS41Ny0xLjgyLS4yMi0uNDYtLjQtMS0uNTYtMS41OWgxLjY3Yy4wNi0uMzUuMTYtLjY4LjI4LTFINy4yMWExNC44NyAxNC44NyAwIDAgMSAwLTVoNS41OGMuMS41NC4xNiAxLjExLjE5IDEuNzEuMzItLjA5LjY1LS4xNSAxLS4xOC0uMDQtLjUzLS4xLTEuMDQtLjE3LTEuNTNoMi43M2MuMjUuNjYuNCAxLjM2LjQ1IDIuMS4zNi4xOC43LjQgMSAuNjVMMTggMTBhOCA4IDAgMSAwLTggOFptMC0xNWMuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTUuOS0xMC4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlTG9jYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVMb2NhdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjMyIDYuNWMuMTctLjg3LjQtMS42Ni42Ny0yLjMyLjMtLjczLjY1LTEuMyAxLTEuNjZDOS4zNiAyLjE1IDkuNyAyIDEwIDJjLjMgMCAuNjUuMTUgMSAuNTIuMzYuMzcuNzEuOTMgMS4wMSAxLjY2LjI4LjY2LjUgMS40NS42NyAyLjMySDcuMzJabS0uMjYtMi43Yy4yNC0uNTguNTItMS4xLjgzLTEuNTJBOC4wMiA4LjAyIDAgMCAwIDIuOCA2LjVoMy41Yy4xOC0xIC40NC0xLjkyLjc2LTIuN1ptNS44OCAwYTcuMTkgNy4xOSAwIDAgMC0uODMtMS41MkE4LjAyIDguMDIgMCAwIDEgMTcuMiA2LjVoLTMuNWMtLjE4LTEtLjQ0LTEuOTItLjc2LTIuN1ptLjkxIDMuN2gzLjc1Yy4yNC43MS4zNyAxLjQ3LjQgMi4yNWE0LjUyIDQuNTIgMCAwIDAtNC0uNWMtLjAzLS42LS4wOC0xLjE4LS4xNS0xLjc1Wk0xMyA5Ljc2Yy0uMDEtLjc5LS4wNy0xLjU1LS4xNi0yLjI2SDcuMTZhMTkuNDQgMTkuNDQgMCAwIDAgMCA1aDMuOThjLjI3LTEuMTMuOTMtMi4xIDEuODYtMi43NFptLTIgMy43NEg3LjMyYy4xNy44Ny40IDEuNjYuNjcgMi4zMi4zLjczLjY1IDEuMyAxIDEuNjYuMzYuMzcuNy41MiAxLjAxLjUyLjMgMCAuNjUtLjE1IDEtLjUyLjI2LS4yNi41LS42MS43NC0xLjA2QTUuOTQgNS45NCAwIDAgMSAxMSAxMy41Wm0tOC4yIDBjMSAyLjA1IDIuODUgMy42IDUuMSA0LjIyYTcuMTkgNy4xOSAwIDAgMS0uODQtMS41MmMtLjMyLS43OC0uNTgtMS43LS43Ni0yLjdIMi44Wm0zLjM1LTFIMi40YTggOCAwIDAgMSAwLTVoMy43NWEyMC41MiAyMC41MiAwIDAgMCAwIDVaTTE5IDEzLjY4YzAtMi4wMy0xLjQ3LTMuNjgtMy41LTMuNjgtMi4wMyAwLTMuNSAxLjY1LTMuNSAzLjY4IDAgMS41My45OCAzLjUzIDMuMjYgNS4yNC4xNC4xLjM0LjEuNDkgMCAyLjI3LTEuNyAzLjI1LTMuNzEgMy4yNS01LjI0Wm0tMi0uMThhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZUxvY2F0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZUxvY2F0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxOGE4IDggMCAwIDAgMi41LS40IDguMTQgOC4xNCAwIDAgMS0uOTgtMS42M2MtLjUuNy0xLjAzIDEuMDMtMS41MiAxLjAzLS42NiAwLTEuNC0uNTktMi4wMi0xLjktLjIyLS40Ny0uNC0xLjAxLS41Ni0xLjZIMTFjLjAyLS4zNC4wNi0uNjguMTQtMUg3LjIxYTE0Ljg3IDE0Ljg3IDAgMCAxIDAtNWg1LjU4Yy4xMi43LjIgMS40Ni4yIDIuMjYuMy0uMi42NC0uMzggMS0uNS0uMDMtLjYxLS4xLTEuMi0uMTgtMS43NmgyLjczYy4yMS41NS4zNSAxLjEzLjQyIDEuNzQuMzcuMTIuNzIuMyAxLjA0LjUxQTggOCAwIDEgMCAxMCAxOFptMC0xNWMuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTUuOS0xMC4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWk0xOSAxMy42OGMwLTIuMDMtMS40Ny0zLjY4LTMuNS0zLjY4LTIuMDMgMC0zLjUgMS42NS0zLjUgMy42OCAwIDEuNTMuOTggMy41MyAzLjI2IDUuMjQuMTQuMS4zNC4xLjQ5IDAgMi4yNy0xLjcgMy4yNS0zLjcxIDMuMjUtNS4yNFptLTItLjE4YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0LjdhOC4wMSA4LjAxIDAgMCAwLTEuMiAxLjhoM2wxLjMyIDEuMzNhMTkuNjUgMTkuNjUgMCAwIDAgLjA0IDQuNjdoNC42M2wxLjc1IDEuNzVjLS4xNi43MS0uMzYgMS4zNy0uNiAxLjk1LS4yNC41OC0uNTIgMS4xLS44MyAxLjUyQTcuOTggNy45OCAwIDAgMCAxNS4yOSAxNmwxLjg2IDEuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43TDQgNC43MVptMy41Ni43NEw4LjYyIDYuNWg0LjA2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2LS4xNi4zOC0uMy44LS40MyAxLjI2Wk05LjYyIDcuNWwzLjM2IDMuMzZhMjAuNDUgMjAuNDUgMCAwIDAtLjE0LTMuMzZIOS42MlptNC4zIDQuMy43LjdoMi45OGE4IDggMCAwIDAgMC01aC0zLjc1YTIwLjUyIDIwLjUyIDAgMCAxIC4wNyA0LjNabTEuNyAxLjcgMSAxYTggOCAwIDAgMCAuNTgtMWgtMS41OFpNNS41IDMuMzhsMS4yNiAxLjI2LjMtLjg0Yy4yNC0uNTguNTItMS4xLjgzLTEuNTItLjg2LjI0LTEuNjcuNjEtMi4zOSAxLjFabTYuNjEtMS4xYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJaTTEwIDE4Yy4zIDAgLjY1LS4xNSAxLS41Mi4zNi0uMzcuNzEtLjkzIDEuMDEtMS42Ni4yOC0uNjYuNS0xLjQ1LjY3LTIuMzJINy4zMmMuMTcuODcuNCAxLjY2LjY3IDIuMzIuMy43My42NSAxLjMgMSAxLjY2LjM2LjM3LjcuNTIgMS4wMS41MlptLTIuMS0uMjhhOC4wMiA4LjAyIDAgMCAxLTUuMS00LjIyaDMuNWMuMTggMSAuNDQgMS45Mi43NiAyLjcuMjQuNTguNTIgMS4xLjgzIDEuNTJaTTIuNCAxMi41aDMuNzVhMjAuNTIgMjAuNTIgMCAwIDEgMC01SDIuNGE4IDggMCAwIDAgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDQuNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTUuMjkgMTZBOCA4IDAgMCAxIDQgNC43Wm0xMC41OCAxMC42LTEuMTQtMS4xNWMtLjE1LjQ5LS4zMi45NS0uNTEgMS4zNi0uMTkuNC0uNC43OC0uNjQgMS4xYTcgNyAwIDAgMCAyLjMtMS4zMlptLTIuNzktMi44TDcuMTUgNy44NmExNS4wOCAxNS4wOCAwIDAgMCAuMDYgNC42NGg0LjU4Wm0tNi02TDQuNzEgNS40MmMtLjMuMzMtLjU1LjctLjc3IDEuMDhoMS44NVpNNiAxMGMwLS44Ny4wNy0xLjcxLjItMi41SDMuNDVhNi45OCA2Ljk4IDAgMCAwIDAgNWgyLjczQzYuMDcgMTEuNzEgNiAxMC44NyA2IDEwWm0xLjA3IDUuNTFjLS4yNy0uNTktLjUtMS4yNy0uNjgtMi4wMUgzLjk0YTcuMDIgNy4wMiAwIDAgMCAzLjc3IDMuMTJjLS4yNC0uMzMtLjQ1LS43LS42NC0xLjFabTQuOTUtLjQyYy4yMi0uNDYuNC0xIC41Ni0xLjU5SDcuNDJjLjE1LjU5LjM0IDEuMTMuNTYgMS42QzguNTkgMTYuNCA5LjM0IDE3IDEwIDE3Yy42NiAwIDEuNC0uNTkgMi4wMi0xLjlaTTcuMDcgNC41Yy0uMDUuMS0uMS4yLS4xNC4zMmwuNzcuNzdjLjA5LS4yNC4xOC0uNDYuMjgtLjY3QzguNTkgMy41OSA5LjM0IDMgMTAgM2MuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg4LjYybDEgMWgzLjE3YTE0Ljg2IDE0Ljg2IDAgMCAxIC4xOSAzLjM2bC45Mi45MmExNi4zNCAxNi4zNCAwIDAgMC0uMS00LjI4aDIuNzRhNi45OCA2Ljk4IDAgMCAxIDAgNWgtMS45MmwyIDJBOCA4IDAgMCAwIDUuNSAzLjM5bC43Mi43MWMuNDYtLjMuOTYtLjU0IDEuNDgtLjcyLS4yNC4zMy0uNDUuNy0uNjQgMS4xWm05IDIuMDFIMTMuNmExMC41IDEwLjUgMCAwIDAtLjY4LTIuMDFjLS4xOS0uNC0uNC0uNzgtLjY0LTEuMWE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjExWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2Yy4wOC42MS4xMiAxLjI1LjE0IDEuOWEyLjk5IDIuOTkgMCAwIDEgNCAuOTMgOC4yNiA4LjI2IDAgMCAwLS4zOS0yLjgzWk0xMyAxMHYuMzVhMi45OSAyLjk5IDAgMCAwLS40NiAyLjE1SDcuMTZhMTkuNDQgMTkuNDQgMCAwIDEgMC01aDUuNjhjLjEuNzkuMTYgMS42My4xNiAyLjVabS0uMzIgMy41Yy0uMDQuMjQtLjEuNDctLjE1LjdBMi41IDIuNSAwIDAgMCAxMSAxNi41YzAgLjI5LjA0LjU4LjEyLjg2bC0uMTIuMTJjLS4zNS4zNy0uNy41Mi0xIC41Mi0uMyAwLS42NS0uMTUtMS0uNTItLjM2LS4zNy0uNzEtLjkzLTEuMDEtMS42Ni0uMjgtLjY2LS41LTEuNDUtLjY3LTIuMzJoNS4zNlpNNy45IDE3LjcyQTguMDIgOC4wMiAwIDAgMSAyLjggMTMuNWgzLjVjLjE4IDEgLjQ0IDEuOTIuNzYgMi43LjI0LjU4LjUyIDEuMS44MyAxLjUyWk0yLjQgMTIuNWgzLjc2YTIwLjUyIDIwLjUyIDAgMCAxIDAtNUgyLjRhOCA4IDAgMCAwIDAgNVpNMTcuNSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVQZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4zMSAxNy45QTggOCAwIDEgMSAxOCAxMC4zM2EzLjAyIDMuMDIgMCAwIDAtMS4wMi0uOTVjLS4wNS0uNjYtLjItMS4zLS40My0xLjg5aC0yLjczYy4xLjYuMTYgMS4yNS4xOCAxLjktLjQuMjQtLjc0LjU2LTEgLjk1YTE1LjkzIDE1LjkzIDAgMCAwLS4yLTIuODVINy4yMWExNC44NyAxNC44NyAwIDAgMCAwIDVoNS4zM2MuMDYuMzYuMTkuNy4zNiAxSDcuNDJjLjE1LjU5LjM0IDEuMTMuNTYgMS42QzguNTkgMTYuNCA5LjM0IDE3IDEwIDE3Yy4zMiAwIC42Ni0uMTQgMS0uNDQgMCAuNDYuMTEuOTEuMzEgMS4zM1ptLjcxLTEzQzExLjQxIDMuNiAxMC42NiAzIDEwIDNjLS42NiAwLTEuNC41OS0yLjAyIDEuOS0uMjIuNDctLjQgMS4wMS0uNTYgMS42aDUuMTZhOS4yNSA5LjI1IDAgMCAwLS41Ni0xLjZaTTYuNCA2LjVjLjE3LS43NC40LTEuNDIuNjgtMi4wMS4xOS0uNC40LS43OC42NC0xLjFBNy4wMiA3LjAyIDAgMCAwIDMuOTQgNi41aDIuNDVaTTYgMTBjMC0uODcuMDctMS43MS4yLTIuNUgzLjQ1YTYuOTggNi45OCAwIDAgMCAwIDVoMi43M0M2LjA3IDExLjcxIDYgMTAuODcgNiAxMFptMS4wNyA1LjUxYy0uMjctLjU5LS41LTEuMjctLjY4LTIuMDFIMy45NGE3LjAyIDcuMDIgMCAwIDAgMy43NyAzLjEyYy0uMjQtLjMzLS40NS0uNy0uNjQtMS4xWm05LTkuMDFhNy4wMiA3LjAyIDAgMCAwLTMuNzgtMy4xMmMuMjQuMzMuNDUuNy42NCAxLjEuMjcuNi41IDEuMjguNjggMi4wMmgyLjQ1Wk0xNy41IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZVByb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVQcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMzIgNi41Yy4xNy0uODcuNC0xLjY2LjY3LTIuMzIuMy0uNzMuNjUtMS4zIDEtMS42NkM5LjM2IDIuMTUgOS43IDIgMTAgMmMuMyAwIC42NS4xNSAxIC41Mi4zNi4zNy43MS45MyAxLjAxIDEuNjYuMjguNjYuNSAxLjQ1LjY3IDIuMzJINy4zMlptLS4yNi0yLjdjLjI0LS41OC41Mi0xLjEuODMtMS41MkE4LjAyIDguMDIgMCAwIDAgMi44IDYuNWgzLjVjLjE4LTEgLjQ0LTEuOTIuNzYtMi43Wm01Ljg4IDBhNy4xOSA3LjE5IDAgMCAwLS44My0xLjUyQTguMDIgOC4wMiAwIDAgMSAxNy4yIDYuNWgtMy41Yy0uMTgtMS0uNDQtMS45Mi0uNzYtMi43Wm0uOTEgMy43aDMuNzVhOCA4IDAgMCAxIC40IDIuNzUgNS40OCA1LjQ4IDAgMCAwLTQuMDItMS4yM2MtLjAzLS41Mi0uMDctMS4wMy0uMTMtMS41MlptLS44NyAxLjcxYTE5IDE5IDAgMCAwLS4xNC0xLjcxSDcuMTZhMTkuNDQgMTkuNDQgMCAwIDAgMCA1aDIuMjFhNS41MSA1LjUxIDAgMCAxIDMuNjEtMy4yOVpNOS4xIDEzLjVINy4zMmMuMTcuODcuNCAxLjY2LjY3IDIuMzIuMy43My42NSAxLjMgMSAxLjY2LjM2LjM3LjcuNTIgMS4wMS41Mi4wOCAwIC4xNSAwIC4yMy0uMDNBNS40OCA1LjQ4IDAgMCAxIDkuMSAxMy41Wm0tNi4yOSAwYzEgMi4wNSAyLjg1IDMuNiA1LjEgNC4yMmE3LjE5IDcuMTkgMCAwIDEtLjg0LTEuNTJjLS4zMi0uNzgtLjU4LTEuNy0uNzYtMi43SDIuOFptMy4zNS0xSDIuNGE4IDggMCAwIDEgMC01aDMuNzVhMjAuNTIgMjAuNTIgMCAwIDAgMCA1Wm0zLjg1IDJhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTIuNCAyLjggNC45LTQuOWEzLjUgMy41IDAgMCAxLTQuOSA0LjlabS0uNy0uN2EzLjUgMy41IDAgMCAxIDQuOS00LjlsLTQuOSA0LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZVByb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMjUgMThIMTBhOCA4IDAgMSAxIDgtNy43NSA1LjUgNS41IDAgMCAwLTEuMDEtLjY2IDYuOTcgNi45NyAwIDAgMC0uNDUtMi4wOWgtMi43M2MuMDguNDkuMTMgMSAuMTYgMS41My0uMzQuMDMtLjY3LjEtLjk5LjE4LS4wMy0uNi0uMS0xLjE3LS4xOS0xLjcxSDcuMjFhMTQuODcgMTQuODcgMCAwIDAgMCA1aDIuMTZjLS4xMi4zMi0uMjIuNjUtLjI4IDFINy40MmMuMTUuNTkuMzQgMS4xMy41NiAxLjYuNDggMS4wMiAxLjA0IDEuNiAxLjU4IDEuODEuMTkuNC40Mi43Ni43IDEuMDlabTEuNzctMTMuMUMxMS40MSAzLjYgMTAuNjYgMyAxMCAzYy0uNjYgMC0xLjQuNTktMi4wMiAxLjktLjIyLjQ3LS40IDEuMDEtLjU2IDEuNmg1LjE2YTkuMjUgOS4yNSAwIDAgMC0uNTYtMS42Wk02LjQgNi41Yy4xNy0uNzQuNC0xLjQyLjY4LTIuMDEuMTktLjQuNC0uNzguNjQtMS4xQTcuMDIgNy4wMiAwIDAgMCAzLjk0IDYuNWgyLjQ1Wk02IDEwYzAtLjg3LjA3LTEuNzEuMi0yLjVIMy40NWE2Ljk4IDYuOTggMCAwIDAgMCA1aDIuNzNDNi4wNyAxMS43MSA2IDEwLjg3IDYgMTBabTEuMDcgNS41MWMtLjI3LS41OS0uNS0xLjI3LS42OC0yLjAxSDMuOTRhNy4wMiA3LjAyIDAgMCAwIDMuNzcgMy4xMmMtLjI0LS4zMy0uNDUtLjctLjY0LTEuMVptOS05LjAxYTcuMDIgNy4wMiAwIDAgMC0zLjc4LTMuMTJjLjI0LjMzLjQ1LjcuNjQgMS4xLjI3LjYuNSAxLjI4LjY4IDIuMDJoMi40NVptLTYuMDcgOGE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMi40IDIuOCA0LjktNC45YTMuNSAzLjUgMCAwIDEtNC45IDQuOVptLS43LS43YTMuNSAzLjUgMCAwIDEgNC45LTQuOWwtNC45IDQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuOTkgNC4xOGMtLjI4LjY2LS41IDEuNDUtLjY3IDIuMzJoNS4zNmMtLjE3LS44Ny0uNC0xLjY2LS42Ny0yLjMyLS4zLS43My0uNjUtMS4zLTEtMS42NkMxMC42NCAyLjE1IDEwLjMgMiAxMCAyYy0uMyAwLS42NS4xNS0xIC41Mi0uMzYuMzctLjcxLjkzLTEuMDEgMS42NlptLS4xLTEuOWMtLjMxLjQzLS41OS45NC0uODMgMS41Mi0uMzIuNzgtLjU4IDEuNy0uNzYgMi43SDIuOGMxLTIuMDUgMi44NS0zLjYgNS4xLTQuMjJabTUuMDUgMS41MmE3LjE4IDcuMTggMCAwIDAtLjgzLTEuNTJBOC4wMiA4LjAyIDAgMCAxIDE3LjIgNi41aC0zLjVjLS4xOC0xLS40NC0xLjkyLS43Ni0yLjdabTQuNjYgMy43aC0zLjc1YTIwLjU0IDIwLjU0IDAgMCAxIDAgNWgzLjc1YTcuOTkgNy45OSAwIDAgMCAwLTVabS0zLjkgNmgzLjVhOC4wMiA4LjAyIDAgMCAxLTUuMDkgNC4yMmMuMzEtLjQzLjU5LS45NC44My0xLjUyLjMyLS43OC41OC0xLjcuNzYtMi43Wm0tNC4xNC40NGMuMDctLjE0LjEzLS4yOS4xOC0uNDRoMi45NGExMi4yMiAxMi4yMiAwIDAgMS0uODcgMi43NyAxLjUgMS41IDAgMCAwLS4yNS0uMzNsLTItMlptLjQxLTEuNDRoMi44N2ExOS40NCAxOS40NCAwIDAgMCAwLTVINy4xNmwtLjA0LjNhNC41IDQuNSAwIDAgMSAyLjg1IDQuN1ptLTMuODItNXYuMDVhNC41NCA0LjU0IDAgMCAwLS42NS0uMDVoLjY1Wm0tMy43NSAwaDMuMWMtMS4zOSAwLTIuNjMuNjMtMy40NSAxLjYxLjA2LS41NS4xOC0xLjEuMzUtMS42MVptMy4xIDhjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDguMyAxNC4xYTMuNSAzLjUgMCAxIDAtMi44IDEuNFptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjA1IDkuMTFhOCA4IDAgMSAxIDkuNzIgOC43IDEuNSAxLjUgMCAwIDAtLjItMS44N2wtLjAyLS4wMWMuMTYtLjI0LjMyLS41Mi40Ny0uODQuMjItLjQ2LjQtMSAuNTYtMS41OUg5Ljc0Yy4xMi0uMzIuMi0uNjUuMjMtMWgyLjgyYTE0Ljg2IDE0Ljg2IDAgMCAwIDAtNUg3LjIxbC0uMDUuMzFjLS4zMS0uMTItLjY0LS4yLS45OC0uMjZsLjAxLS4wNUgzLjQ2bC0uMi42Yy0uNDYuMjYtLjg3LjYtMS4yMSAxLjAxWm05Ljk3LTQuMkMxMS40MSAzLjU5IDEwLjY2IDMgMTAgM2MtLjY2IDAtMS40LjU5LTIuMDIgMS45LS4yMi40Ny0uNCAxLjAxLS41NiAxLjZoNS4xNmE5LjI1IDkuMjUgMCAwIDAtLjU2LTEuNlpNNi40IDYuNWMuMTctLjc0LjQtMS40Mi42OC0yLjAxLjE5LS40LjQtLjc4LjY0LTEuMUE3LjAyIDcuMDIgMCAwIDAgMy45NCA2LjVoMi40NVptOS42NyA3aC0yLjQ1Yy0uMTcuNzQtLjQgMS40Mi0uNjggMi4wMS0uMTkuNC0uNC43OC0uNjQgMS4xYTcuMDIgNy4wMiAwIDAgMCAzLjc3LTMuMTFabS0yLjI1LTFoMi43M2E2Ljk4IDYuOTggMCAwIDAgMC01aC0yLjczYTE1Ljk3IDE1Ljk3IDAgMCAxIDAgNVptMi4yNS02YTcuMDIgNy4wMiAwIDAgMC0zLjc3LTMuMTJjLjI0LjMzLjQ1LjcuNjQgMS4xLjI3LjYuNSAxLjI4LjY4IDIuMDJoMi40NVpNOC4zIDE0LjFhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMCAwIC43LS43TDguMyAxNC4xWk04IDEyYTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVTaGllbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVTaGllbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2bC4xLjk1YTEuNjMgMS42MyAwIDAgMSAyLjIuMDljLjQyLjQzIDEuMDguOTggMS44NSAxLjI3YTcuOTggNy45OCAwIDAgMC0uNC0yLjMxWm0tNC43NyAwYy4wOC41Ny4xMyAxLjE2LjE1IDEuNzgtLjQ3LjMzLTEuMDMuNjEtMS42My43LS42OC4wOS0xLjM2LjY2LTEuMzYgMS41MnYxSDcuMTZhMTkuNDQgMTkuNDQgMCAwIDEgMC01aDUuNjhabS01LjUyIDZIMTB2LjVjMCAxLjQyLjQ1IDIuNTUgMS4wNyAzLjRsLS4wNy4wOGMtLjM1LjM3LS43LjUyLTEgLjUyLS4zIDAtLjY1LS4xNS0xLS41Mi0uMzYtLjM3LS43MS0uOTMtMS4wMS0xLjY2LS4yOC0uNjYtLjUtMS40NS0uNjctMi4zMlptLjU3IDQuMjJBOC4wMiA4LjAyIDAgMCAxIDIuOCAxMy41aDMuNWMuMTggMSAuNDQgMS45Mi43NiAyLjcuMjQuNTguNTIgMS4xLjgzIDEuNTJaTTIuNCAxMi41aDMuNzZhMjAuNTIgMjAuNTIgMCAwIDEgMC01SDIuNGE4IDggMCAwIDAgMCA1Wm0xNi4xMS0xLjU0YTUuNjkgNS42OSAwIDAgMS0zLjA2LTEuNzIuNjIuNjIgMCAwIDAtLjg4IDAgNS43IDUuNyAwIDAgMS0zLjA2IDEuNzJjLS4yNy4wNC0uNS4yNi0uNS41NFYxNGMwIDMuNDcgMy4xOCA0LjczIDMuODcgNC45NmEuNC40IDAgMCAwIC4yNiAwYy42OS0uMjMgMy44Ny0xLjUgMy44Ny00Ljk2di0yLjVjMC0uMjgtLjIzLS41LS41LS41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlU2hpZWxkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZVNoaWVsZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMThjLjUgMCAuOTctLjA0IDEuNDQtLjEzYTUuODUgNS44NSAwIDAgMS0uNzUtMS4wOGMtLjI0LjE0LS40Ny4yMS0uNjkuMjEtLjY2IDAtMS40LS41OS0yLjAyLTEuOS0uMjItLjQ3LS40LTEuMDEtLjU2LTEuNkgxMHYtMUg3LjJhMTQuODcgMTQuODcgMCAwIDEgMC01aDUuNmMuMDkuNTYuMTUgMS4xNi4xOCAxLjc4YTYuMzIgNi4zMiAwIDAgMCAuOTUtLjgyYy0uMDMtLjMyLS4wNy0uNjUtLjEyLS45NmgyLjczYy4yMS41NS4zNSAxLjEzLjQyIDEuNzQuMy4yMi42Ni40MyAxLjA0LjU3QTggOCAwIDEgMCAxMCAxOFptMC0xNWMuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTUuOS0xMC4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWm02LjIxIDcuNThhNS42OSA1LjY5IDAgMCAxLTMuMDYtMS43Mi42Mi42MiAwIDAgMC0uODggMCA1LjcgNS43IDAgMCAxLTMuMDYgMS43MmMtLjI3LjA0LS41LjI2LS41LjU0VjE0YzAgMy40NyAzLjE4IDQuNzMgMy44NyA0Ljk2YS40LjQgMCAwIDAgLjI2IDBjLjY5LS4yMyAzLjg3LTEuNSAzLjg3LTQuOTZ2LTIuNWMwLS4yOC0uMjMtLjUtLjUtLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVTdGFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlU3RhckZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjMyIDYuNWMuMTctLjg3LjQtMS42Ni42Ny0yLjMyLjMtLjczLjY1LTEuMyAxLTEuNjZDOS4zNiAyLjE1IDkuNyAyIDEwIDJjLjMgMCAuNjUuMTUgMSAuNTIuMzYuMzcuNzEuOTMgMS4wMSAxLjY2LjI4LjY2LjUgMS40NS42NyAyLjMySDcuMzJabS0uMjYtMi43Yy4yNC0uNTguNTItMS4xLjgzLTEuNTJBOC4wMiA4LjAyIDAgMCAwIDIuOCA2LjVoMy41Yy4xOC0xIC40NC0xLjkyLjc2LTIuN1ptNS44OCAwYTcuMTkgNy4xOSAwIDAgMC0uODMtMS41MkE4LjAyIDguMDIgMCAwIDEgMTcuMiA2LjVoLTMuNWMtLjE4LTEtLjQ0LTEuOTItLjc2LTIuN1ptLjkxIDMuN2gzLjc1YTggOCAwIDAgMSAuNCAyLjc1IDUuNDggNS40OCAwIDAgMC00LjAyLTEuMjNjLS4wMy0uNTItLjA3LTEuMDMtLjEzLTEuNTJabS0uODcgMS43MWExOSAxOSAwIDAgMC0uMTQtMS43MUg3LjE2YTE5LjQ0IDE5LjQ0IDAgMCAwIDAgNWgyLjIxYTUuNTEgNS41MSAwIDAgMSAzLjYxLTMuMjlaTTkuMSAxMy41SDcuMzJjLjE3Ljg3LjQgMS42Ni42NyAyLjMyLjMuNzMuNjUgMS4zIDEgMS42Ni4zNi4zNy43LjUyIDEuMDEuNTIuMDggMCAuMTUgMCAuMjMtLjAzQTUuNDggNS40OCAwIDAgMSA5LjEgMTMuNVptLTYuMjkgMGMxIDIuMDUgMi44NSAzLjYgNS4xIDQuMjJhNy4xOSA3LjE5IDAgMCAxLS44NC0xLjUyYy0uMzItLjc4LS41OC0xLjctLjc2LTIuN0gyLjhabTMuMzUtMUgyLjRhOCA4IDAgMCAxIDAtNWgzLjc1YTIwLjUyIDIwLjUyIDAgMCAwIDAgNVpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLjk1LTUuNkgxN2MuNDggMCAuNjguNjQuMy45NGwtMS4yNi45NC40OCAxLjUzYy4xNS40OS0uMzguODktLjc3LjU5bC0xLjI1LS45NS0xLjI1Ljk1Yy0uNC4zLS45Mi0uMS0uNzctLjU5bC40OC0xLjUzLTEuMjUtLjk0Yy0uNC0uMy0uMi0uOTUuMy0uOTVoMS41NGwuNDctMS41M2EuNS41IDAgMCAxIC45NiAwbC40NyAxLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVTdGFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZVN0YXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjI1IDE4SDEwYTggOCAwIDEgMSA4LTcuNzUgNS41IDUuNSAwIDAgMC0xLjAxLS42NiA2Ljk3IDYuOTcgMCAwIDAtLjQ1LTIuMDloLTIuNzNjLjA4LjQ5LjEzIDEgLjE2IDEuNTMtLjM0LjAzLS42Ny4xLS45OS4xOC0uMDMtLjYtLjEtMS4xNy0uMTktMS43MUg3LjIxYTE0Ljg3IDE0Ljg3IDAgMCAwIDAgNWgyLjE2Yy0uMTIuMzItLjIyLjY1LS4yOCAxSDcuNDJjLjE1LjU5LjM0IDEuMTMuNTYgMS42LjQ4IDEuMDIgMS4wNCAxLjYgMS41OCAxLjgxLjE5LjQuNDIuNzYuNyAxLjA5Wm0xLjc3LTEzLjFDMTEuNDEgMy42IDEwLjY2IDMgMTAgM2MtLjY2IDAtMS40LjU5LTIuMDIgMS45LS4yMi40Ny0uNCAxLjAxLS41NiAxLjZoNS4xNmE5LjI1IDkuMjUgMCAwIDAtLjU2LTEuNlpNNi40IDYuNWMuMTctLjc0LjQtMS40Mi42OC0yLjAxLjE5LS40LjQtLjc4LjY0LTEuMUE3LjAyIDcuMDIgMCAwIDAgMy45NCA2LjVoMi40NVpNNiAxMGMwLS44Ny4wNy0xLjcxLjItMi41SDMuNDVhNi45OCA2Ljk4IDAgMCAwIDAgNWgyLjczQzYuMDcgMTEuNzEgNiAxMC44NyA2IDEwWm0xLjA3IDUuNTFjLS4yNy0uNTktLjUtMS4yNy0uNjgtMi4wMUgzLjk0YTcuMDIgNy4wMiAwIDAgMCAzLjc3IDMuMTJjLS4yNC0uMzMtLjQ1LS43LS42NC0xLjFabTktOS4wMWE3LjAyIDcuMDIgMCAwIDAtMy43OC0zLjEyYy4yNC4zMy40NS43LjY0IDEuMS4yNy42LjUgMS4yOC42OCAyLjAyaDIuNDVaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS45NS01LjZIMTdjLjQ4IDAgLjY4LjY0LjMuOTRsLTEuMjYuOTQuNDggMS41M2MuMTUuNDktLjM4Ljg5LS43Ny41OWwtMS4yNS0uOTUtMS4yNS45NWMtLjQuMy0uOTItLjEtLjc3LS41OWwuNDgtMS41My0xLjI1LS45NGMtLjQtLjMtLjItLjk1LjMtLjk1aDEuNTRsLjQ3LTEuNTNhLjUuNSAwIDAgMSAuOTYgMGwuNDcgMS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlU3VyZmFjZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZVN1cmZhY2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC4xMiA3Yy4xMi0uOTMuMzItMS43Ni41OC0yLjQyLjIxLS41NS40NS0uOTcuNy0xLjIzLjI0LS4yNy40NC0uMzUuNi0uMzUuMTYgMCAuMzYuMDguNi4zNS4yNS4yNi40OS42OC43IDEuMjMuMjYuNjYuNDYgMS40OS41OCAyLjQySDguMTJabS0uMzUtMi43OGMuMTMtLjM0LjI4LS42Ny40NS0uOTVBNi4wMiA2LjAyIDAgMCAwIDQuMzQgN2gyLjc4Yy4xMi0xLjA1LjM1LTIgLjY1LTIuNzhabTQuNDYgMGE2LjE4IDYuMTggMCAwIDAtLjQ1LS45NUE2LjAyIDYuMDIgMCAwIDEgMTUuNjYgN2gtMi43OGMtLjEyLTEuMDUtLjM1LTItLjY1LTIuNzhaTTEyLjk3IDhoMi45NWE2LjA0IDYuMDQgMCAwIDEgMCAyaC0yLjk1YTE3LjM0IDE3LjM0IDAgMCAwIDAtMlptLS4wOSAzaDIuNzhhNi4wMiA2LjAyIDAgMCAxLTMuODggMy43M2MuMTctLjI4LjMyLS42LjQ1LS45NS4zLS43OC41My0xLjczLjY1LTIuNzhabS0yLjI4IDMuNjVjLS4yNC4yNy0uNDQuMzUtLjYuMzUtLjE2IDAtLjM2LS4wOC0uNi0uMzVhMy45OSAzLjk5IDAgMCAxLS43LTEuMjNjLS4yNi0uNjYtLjQ2LTEuNDktLjU4LTIuNDJoMy43NmMtLjEyLjkzLS4zMiAxLjc2LS41OCAyLjQyLS4yMS41NS0uNDUuOTctLjcgMS4yM1pNNC4zNCAxMWE2LjAyIDYuMDIgMCAwIDAgMy44OCAzLjczYy0uMTctLjI4LS4zMi0uNi0uNDUtLjk1LS4zLS43OC0uNTMtMS43My0uNjUtMi43OEg0LjM0Wm0yLjY5LTFINC4wOGE2LjA0IDYuMDQgMCAwIDEgMC0yaDIuOTVhMTcuNCAxNy40IDAgMCAwIDAgMlptMS0yYTE2LjM2IDE2LjM2IDAgMCAwIDAgMmgzLjk0YTE2LjM3IDE2LjM3IDAgMCAwIDAtMkg4LjAzWk0zLjUgMTNoLjc1Yy4yNS4zNi41My42OS44NCAxQS41LjUgMCAwIDEgNSAxNEgzLjg5bC0uNzUgM2gxMy43MmwtLjc1LTNIMTVhLjUuNSAwIDAgMS0uMSAwYy4zMi0uMzEuNi0uNjQuODUtMWguNzVhLjUuNSAwIDAgMSAuNDkuMzhsMSA0YS41LjUgMCAwIDEtLjQ5LjYyaC0xNWEuNS41IDAgMCAxLS40OS0uNjJsMS00QS41LjUgMCAwIDEgMy41IDEzWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVTdXJmYWNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZVN1cmZhY2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNiA2IDAgMSAxIDAgMTIgNiA2IDAgMCAxIDAtMTJabTAgMTFjLjI1IDAgLjc0LS4yMyAxLjIzLTEuMi4yNC0uNS40NS0xLjEuNTgtMS44SDguMmMuMTMuNy4zNCAxLjMuNTggMS44LjUuOTcuOTggMS4yIDEuMjMgMS4yWm0tMS45NS00aDMuOWExMC45MyAxMC45MyAwIDAgMCAwLTJoLTMuOWExMC45NCAxMC45NCAwIDAgMCAwIDJabTMuODYgMy42MkE1LjAyIDUuMDIgMCAwIDAgMTQuNTggMTFoLTEuNzVhNy43NiA3Ljc2IDAgMCAxLS45MiAyLjYyWk0xMi45NiAxMGgxLjk0YTUuMDIgNS4wMiAwIDAgMCAwLTJoLTEuOTRhMTEuOTYgMTEuOTYgMCAwIDEgMCAyWk0xMS45IDQuMzhjLjQyLjY4Ljc0IDEuNTkuOTIgMi42MmgxLjc1YTUuMDIgNS4wMiAwIDAgMC0yLjY3LTIuNjJabS0uNjguODJDMTAuNzMgNC4yMyAxMC4yNSA0IDEwIDRzLS43NC4yMy0xLjIzIDEuMmMtLjI0LjUtLjQ1IDEuMS0uNTggMS44aDMuNjJjLS4xMy0uNy0uMzQtMS4zLS41OC0xLjhabS0zLjE0LS44MkE1LjAyIDUuMDIgMCAwIDAgNS40MiA3aDEuNzVjLjE4LTEuMDMuNS0xLjk0LjkyLTIuNjJaTTUgOWMwIC4zNC4wMy42OC4xIDFoMS45NGExMS45NyAxMS45NyAwIDAgMSAwLTJINS4xYy0uMDcuMzItLjEuNjYtLjEgMVptLjQyIDJhNS4wMiA1LjAyIDAgMCAwIDIuNjcgMi42MkE3Ljc2IDcuNzYgMCAwIDEgNy4xNyAxMUg1LjQyWk0zLjUgMTNoLjc1Yy4yNi4zNi41NC43Ljg1IDFIMy45bC0uNzUgM2gxMy43MmwtLjc1LTNIMTQuOWMuMzEtLjMuNi0uNjQuODUtMWguNzVhLjUuNSAwIDAgMSAuNDkuMzhsMSA0YS41LjUgMCAwIDEtLjQ5LjYyaC0xNWEuNS41IDAgMCAxLS40OS0uNjJsMS00QS41LjUgMCAwIDEgMy41IDEzWlwiXSk7XG5leHBvcnQgY29uc3QgR2xvYmVTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljk5IDQuMThjLS4yOC42Ni0uNSAxLjQ1LS42NyAyLjMyaDUuMzZjLS4xNy0uODctLjQtMS42Ni0uNjctMi4zMi0uMy0uNzMtLjY1LTEuMy0xLTEuNjZDMTAuNjQgMi4xNSAxMC4zIDIgMTAgMmMtLjMgMC0uNjUuMTUtMSAuNTItLjM2LjM3LS43MS45My0xLjAxIDEuNjZabS0uMS0xLjljLS4zMS40My0uNTkuOTQtLjgzIDEuNTItLjMyLjc4LS41OCAxLjctLjc2IDIuN0gyLjhjMS0yLjA1IDIuODUtMy42IDUuMS00LjIyWm00LjIyIDBjLjMxLjQzLjU5Ljk0LjgzIDEuNTIuMzIuNzguNTggMS43Ljc2IDIuN2gzLjVhOC4wMiA4LjAyIDAgMCAwLTUuMDktNC4yMlptNS41IDUuMjJoLTMuNzZjLjA2LjUuMSAxIC4xMyAxLjUyQTUuNTcgNS41NyAwIDAgMSAxOCAxMC4yNWE3LjkzIDcuOTMgMCAwIDAtLjQtMi43NVptLTQuNzcgMGExOSAxOSAwIDAgMSAuMTQgMS43MSA1LjUxIDUuNTEgMCAwIDAtMy42IDMuMjlINy4xNWExOS40NCAxOS40NCAwIDAgMSAwLTVoNS42OFptLTUuNTIgNmgxLjc3YTUuNTMgNS41MyAwIDAgMCAxLjE0IDQuNDcuOTkuOTkgMCAwIDEtLjIzLjAzYy0uMyAwLS42NS0uMTUtMS0uNTItLjM2LS4zNy0uNzEtLjkzLTEuMDEtMS42Ni0uMjgtLjY2LS41LTEuNDUtLjY3LTIuMzJabS41NyA0LjIyQTguMDIgOC4wMiAwIDAgMSAyLjggMTMuNWgzLjVjLjE4IDEgLjQ0IDEuOTIuNzYgMi43LjI0LjU4LjUyIDEuMS44MyAxLjUyWk0yLjQgMTIuNWgzLjc2YTIwLjUyIDIwLjUyIDAgMCAxIDAtNUgyLjRhOCA4IDAgMCAwIDAgNVptNy42MSAyYTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZVN5bmNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMThoLjI1YTUuNSA1LjUgMCAwIDEtLjctMS4wOWMtLjUzLS4yLTEuMS0uNzktMS41Ny0xLjgyLS4yMi0uNDYtLjQtMS0uNTYtMS41OWgxLjY3Yy4wNi0uMzUuMTYtLjY4LjI4LTFINy4yMWExNC44NyAxNC44NyAwIDAgMSAwLTVoNS41OGMuMS41NC4xNiAxLjExLjE5IDEuNzEuMzItLjA5LjY1LS4xNSAxLS4xOC0uMDQtLjUzLS4xLTEuMDQtLjE3LTEuNTNoMi43M2MuMjUuNjYuNCAxLjM2LjQ1IDIuMS4zNi4xOC43LjQgMSAuNjVMMTggMTBhOCA4IDAgMSAwLTggOFptMC0xNWMuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTUuOS0xMC4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWk0xMCAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBHbG9iZVZpZGVvRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlVmlkZW9GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2YTIwLjUyIDIwLjUyIDAgMCAxIC4xMyAzLjVoLjUyYy45MyAwIDEuNzQuNSAyLjE3IDEuMjZsLjUtLjRjLjIyLS4xNi40NS0uMjYuNjgtLjMyYTguMDQgOC4wNCAwIDAgMC0uMjUtNC4wNFpNMTMgMTBjMCAuMzQgMCAuNjctLjAyIDFIMTEuNWEyLjUgMi41IDAgMCAwLTIuMyAxLjVINy4xN2ExOS40NCAxOS40NCAwIDAgMSAwLTVoNS42OGMuMS43OS4xNiAxLjYzLjE2IDIuNVptLTUuNjggMy41SDl2My45OWMtLjM2LS4zOC0uNzEtLjk0LTEuMDEtMS42Ny0uMjgtLjY2LS41LTEuNDUtLjY3LTIuMzJabS41NyA0LjIyQTguMDIgOC4wMiAwIDAgMSAyLjggMTMuNWgzLjVjLjE4IDEgLjQ0IDEuOTIuNzYgMi43LjI0LjU4LjUyIDEuMS44MyAxLjUyWk0yLjQgMTIuNWgzLjc2YTIwLjUyIDIwLjUyIDAgMCAxIDAtNUgyLjRhOCA4IDAgMCAwIDAgNVptNy42MSAxYzAtLjgzLjY3LTEuNSAxLjUtMS41aDNjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjUzbDEuNzktMS4zN2EuNzUuNzUgMCAwIDEgMS4yLjZ2NC41YzAgLjYxLS43Ljk3LTEuMi41OUwxNiAxNi45N3YuNTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlVmlkZW9SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dsb2JlVmlkZW9SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMCAwIDcuMDQgNy45NEM5IDE3LjggOSAxNy42NSA5IDE3LjV2LS45NGMtLjM2LS4zLS43LS44LTEuMDItMS40Ny0uMjItLjQ2LS40LTEtLjU2LTEuNTlIOWMwLS4zNi4wNy0uNy4yLTFoLTJhMTQuODcgMTQuODcgMCAwIDEgMC01aDUuNmExNC44NiAxNC44NiAwIDAgMSAuMTcgMy41aDFhMTYuNiAxNi42IDAgMCAwLS4xNi0zLjVoMi43M2E2Ljk4IDYuOTggMCAwIDEgLjEgNC43MWwuMDMuMDUuNS0uNGMuMjItLjE2LjQ1LS4yNi42OC0uMzJBOCA4IDAgMSAwIDIgMTBabTgtN2MuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTUuOS0xMC4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWk0xMCAxMy41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDNjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjUzbDEuNzktMS4zN2EuNzUuNzUgMCAwIDEgMS4yLjZ2NC41YzAgLjYxLS43Ljk3LTEuMi41OUwxNiAxNi45N3YuNTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlV2FybmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHbG9iZVdhcm5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy45OSA0LjE4Yy0uMjguNjYtLjUgMS40NS0uNjcgMi4zMmg1LjM2Yy0uMTctLjg3LS40LTEuNjYtLjY3LTIuMzItLjMtLjczLS42NS0xLjMtMS0xLjY2QzEwLjY0IDIuMTUgMTAuMyAyIDEwIDJjLS4zIDAtLjY1LjE1LTEgLjUyLS4zNi4zNy0uNzEuOTMtMS4wMSAxLjY2Wm0tLjEtMS45Yy0uMzEuNDMtLjU5Ljk0LS44MyAxLjUyLS4zMi43OC0uNTggMS43LS43NiAyLjdIMi44YzEtMi4wNSAyLjg1LTMuNiA1LjEtNC4yMlptNC4yMiAwYy4zMS40My41OS45NC44MyAxLjUyLjMyLjc4LjU4IDEuNy43NiAyLjdoMy41YTguMDIgOC4wMiAwIDAgMC01LjA5LTQuMjJabTUuNSA1LjIyaC0zLjc2Yy4wNi41LjEgMS4wMy4xMyAxLjU3YTIgMiAwIDAgMSAyLjMxIDEuMDRsMS4yIDIuMzloLjExYTggOCAwIDAgMCAwLTVabS00Ljc3IDBjLjEuNjkuMTUgMS40Mi4xNiAyLjE4LS4xMS4xMi0uMi4yNy0uMjkuNDNsLTEuMiAyLjM5SDcuMTdhMTkuNDQgMTkuNDQgMCAwIDEgMC01aDUuNjhabS01LjUyIDZoMy43bC0xLjggMy42Yy0uMDcuMTUtLjEzLjMtLjE2LjQ0YTUuMjggNS4yOCAwIDAgMS0xLjA3LTEuNzJjLS4yOC0uNjYtLjUtMS40NS0uNjctMi4zMlptLjU3IDQuMjJBOC4wMiA4LjAyIDAgMCAxIDIuOCAxMy41aDMuNWMuMTggMSAuNDQgMS45Mi43NiAyLjcuMjQuNTguNTIgMS4xLjgzIDEuNTJaTTIuNCAxMi41aDMuNzZhMjAuNTIgMjAuNTIgMCAwIDEgMC01SDIuNGE4IDggMCAwIDAgMCA1Wm0xMS4yMS0xLjk1LTMuNSA3QTEgMSAwIDAgMCAxMSAxOWg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE1IDEyLjV2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMSAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdsb2JlV2FybmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR2xvYmVXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDAgMCA3IDcuOTQgMiAyIDAgMCAxIC4yMi0uODRsLjE0LS4yOGEzLjcgMy43IDAgMCAxLTEuMzgtMS43M2MtLjIyLS40Ni0uNC0xLS41Ni0xLjU5aDMuNmwuNS0xSDcuMmExNC44NyAxNC44NyAwIDAgMSAwLTVoNS41OGMuMTIuNjguMiAxLjQxLjIgMi4xOC4yNy0uMy42Mi0uNTEuOTgtLjYxLS4wMy0uNTQtLjA4LTEuMDctLjE2LTEuNTdoMi43M2E2Ljk4IDYuOTggMCAwIDEgLjM0IDMuNzlsLjY4IDEuMzRBNy45OSA3Ljk5IDAgMSAwIDIgMTBabTgtN2MuNjYgMCAxLjQuNTkgMi4wMiAxLjkuMjIuNDcuNCAxLjAxLjU2IDEuNkg3LjQyYy4xNS0uNTkuMzQtMS4xMy41Ni0xLjZDOC41OSAzLjYgOS4zNCAzIDEwIDNaTTcuMDcgNC40OWMtLjI3LjU5LS41IDEuMjctLjY4IDIuMDFIMy45NEE3LjAyIDcuMDIgMCAwIDEgNy43IDMuMzhjLS4yNC4zMy0uNDUuNy0uNjQgMS4xWk02LjIgNy41YTE1Ljk3IDE1Ljk3IDAgMCAwIDAgNUgzLjQ2YTYuOTggNi45OCAwIDAgMSAwLTVoMi43M1ptLjIgNmMuMTcuNzQuNCAxLjQyLjY4IDIuMDEuMTkuNC40Ljc4LjY0IDEuMWE3LjAyIDcuMDIgMCAwIDEtMy43Ny0zLjExaDIuNDVabTUuOS0xMC4xMmE3LjAyIDcuMDIgMCAwIDEgMy43NyAzLjEyaC0yLjQ1YTEwLjUgMTAuNSAwIDAgMC0uNjgtMi4wMWMtLjE5LS40LS40LS43OC0uNjQtMS4xWm0xLjMxIDcuMTctMy41IDdBMSAxIDAgMCAwIDExIDE5aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMTIuNXYzYS41LjUgMCAxIDEtMSAwdi0zYS41LjUgMCAxIDEgMSAwWm0tLjUgNS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgR3JpZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHcmlkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNSAxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDIgMTYuNXYtNGMwLS44My42Ny0xLjUgMS41LTEuNWg0Wm05IDBjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTRhMS41IDEuNSAwIDAgMS0xLjUtMS41di00YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRabS05LTlDOC4zMyAyIDkgMi42NyA5IDMuNXY0QzkgOC4zMyA4LjMzIDkgNy41IDloLTRBMS41IDEuNSAwIDAgMSAyIDcuNXYtNEMyIDIuNjcgMi42NyAyIDMuNSAyaDRabTkgMGMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDExIDcuNXYtNGMwLS44My42Ny0xLjUgMS41LTEuNWg0WlwiXSk7XG5leHBvcnQgY29uc3QgR3JpZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR3JpZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDExYy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgMiAxNi41di00YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRabTkgMGMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNGExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTRjMC0uODMuNjctMS41IDEuNS0xLjVoNFptLTkgMWgtNGEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNVptOSAwaC00YS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41Wm0tOS0xMEM4LjMzIDIgOSAyLjY3IDkgMy41djRDOSA4LjMzIDguMzMgOSA3LjUgOWgtNEExLjUgMS41IDAgMCAxIDIgNy41di00QzIgMi42NyAyLjY3IDIgMy41IDJoNFptOSAwYy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgMTEgNy41di00YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRabS05IDFoLTRhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVabTkgMGgtNGEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyaWREb3RzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyaWREb3RzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNzUgNGExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWm0wIDZhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFpNNCAxNy43NWExLjc1IDEuNzUgMCAxIDAgMC0zLjUgMS43NSAxLjc1IDAgMCAwIDAgMy41Wk0xMS43NSA0YTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBaTTEwIDExLjc1YTEuNzUgMS43NSAwIDEgMCAwLTMuNSAxLjc1IDEuNzUgMCAwIDAgMCAzLjVaTTExLjc1IDE2YTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBaTTE2IDUuNzVhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVpNMTcuNzUgMTBhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFpNMTYgMTcuNzVhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyaWREb3RzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHcmlkRG90c1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS4yNSA0YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabTEyIDEyYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTE2IDExLjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTE3LjI1IDRhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTAgMTcuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMTEuMjUgMTBhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTAgNS4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk01LjI1IDE2YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTQgMTEuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyaWRLYW5iYW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR3JpZEthbmJhbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgzWm0wIDZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAwLTEtMUgzWm0wIDZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFIM1ptOS0xMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xaC01Wm0wIDZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAwLTEtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyaWRLYW5iYW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyaWRLYW5iYW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgM2ExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjNabTYgMEgzdjJoNVYzWk0yIDlhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY5Wm02IDBIM3YyaDVWOVptLTUgNWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMUgzWm0wIDFoNXYySDN2LTJabTgtMTJhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTFWM1ptNiAwaC01djJoNVYzWm0tNSA1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMC0xLTFoLTVabTAgMWg1djJoLTVWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyb3VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyb3VwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgNC41YzAgLjM2LS4wNy43LS4yIDFIMTBjLjI4IDAgLjUuMjIuNS41djJIMTBhMiAyIDAgMCAwLTIgMnYuNUg2YS41LjUgMCAwIDEtLjUtLjVWNi44YTIuNSAyLjUgMCAwIDEtMS41LjE1VjEwYzAgMS4xLjkgMiAyIDJoMnYyYzAgMS4xLjkgMiAyIDJoMy4wNWEyLjUxIDIuNTEgMCAwIDEgLjE2LTEuNUgxMGEuNS41IDAgMCAxLS41LS41di0yaC41YTIgMiAwIDAgMCAyLTJ2LS41aDJjLjI4IDAgLjUuMjIuNS41djMuMmEyLjUgMi41IDAgMCAxIDEuNS0uMTVWMTBhMiAyIDAgMCAwLTItMmgtMlY2YTIgMiAwIDAgMC0yLTJINi45NWMuMDMuMTYuMDUuMzMuMDUuNVptMy41IDV2LjVhLjUuNSAwIDAgMS0uNS41aC0uNVYxMGMwLS4yOC4yMi0uNS41LS41aC41Wk02IDQuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMTEgMTFhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTAtMTFhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0xMSAxMWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyb3VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHcm91cFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA0LjVjMCAuMTctLjAyLjM0LS4wNS41SDEwYTEgMSAwIDAgMSAxIDF2MmgtMWEyIDIgMCAwIDAtMiAydjFINmExIDEgMCAwIDEtMS0xVjYuOTVhMi41MSAyLjUxIDAgMCAxLTEgMFYxMGMwIDEuMS45IDIgMiAyaDJ2MmMwIDEuMS45IDIgMiAyaDMuMDVhMi41MSAyLjUxIDAgMCAxIDAtMUgxMGExIDEgMCAwIDEtMS0xdi0yaDFhMiAyIDAgMCAwIDItMlY5aDJhMSAxIDAgMCAxIDEgMXYzLjA1YTIuNTEgMi41MSAwIDAgMSAxIDBWMTBhMiAyIDAgMCAwLTItMmgtMlY2YTIgMiAwIDAgMC0yLTJINi45NWMuMDMuMTYuMDUuMzMuMDUuNVpNMTEgOXYxYTEgMSAwIDAgMS0xIDFIOXYtMWExIDEgMCAwIDEgMS0xaDFaTTYgNC41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xMSAxMWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMC0xMWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTExIDExYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgR3JvdXBEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyb3VwRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDQuNWMwIC4zNi0uMDcuNy0uMiAxSDEwYy4yOCAwIC41LjIyLjUuNXYySDEwYTIgMiAwIDAgMC0yIDJ2LjVINmEuNS41IDAgMCAxLS41LS41VjYuOGEyLjUgMi41IDAgMCAxLTEuNS4xNVYxMGMwIDEuMS45IDIgMiAyaDJ2MmEyIDIgMCAwIDAgMS4xNiAxLjgxIDUuNTEgNS41MSAwIDAgMSAuMzQtMy42VjEwYzAtLjI4LjIyLS41LjUtLjVoMi4yYTUuNDggNS40OCAwIDAgMSAzLjYxLS4zNEEyIDIgMCAwIDAgMTQgOGgtMlY2YTIgMiAwIDAgMC0yLTJINi45NWMuMDMuMTYuMDUuMzMuMDUuNVptLTEgMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMTEgMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTExIDExYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xMy0xYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyb3VwRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR3JvdXBEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDQuNWMwIC4xNy0uMDIuMzQtLjA1LjVIMTBhMSAxIDAgMCAxIDEgMXYyaC0xYTIgMiAwIDAgMC0yIDJ2MUg2YTEgMSAwIDAgMS0xLTFWNi45NWEyLjUxIDIuNTEgMCAwIDEtMSAwVjEwYzAgMS4xLjkgMiAyIDJoMnYyYTIgMiAwIDAgMCAxLjE2IDEuODFBNS41MSA1LjUxIDAgMCAxIDkgMTR2LTRhMSAxIDAgMCAxIDEtMWg0YTUuNTggNS41OCAwIDAgMSAxLjgxLjE2QTIgMiAwIDAgMCAxNCA4aC0yVjZhMiAyIDAgMCAwLTItMkg2Ljk1Yy4wMy4xNi4wNS4zMy4wNS41Wm0tMSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xMSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMTEgMTFhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTEzLTFhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgR3JvdXBMaXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyb3VwTGlzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDJhLjc1Ljc1IDAgMCAwLS43NS43NXY2YzAgLjQxLjM0Ljc1Ljc1Ljc1aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy41VjMuNWgxLjc1YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wm0wIDguNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djZjMCAuNDEuMzQuNzUuNzUuNzVoMi41YS43NS43NSAwIDAgMCAwLTEuNUgzLjVWMTJoMS43NWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVptNSAxLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDkuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTkuNVpNNyAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTkuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMC0xMS41YzAtLjQxLjM0LS43NS43NS0uNzVoOS41YS43NS43NSAwIDAgMSAwIDEuNWgtOS41QS43NS43NSAwIDAgMSA3IDQuMjVabS43NSAyLjI1YS43NS43NSAwIDAgMCAwIDEuNWg5LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC05LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHcm91cExpc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyb3VwTGlzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDNhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUgzVjRoMS41YS41LjUgMCAwIDAgMC0xaC0yWm0wIDhhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUgzdi00aDEuNWEuNS41IDAgMCAwIDAtMWgtMlpNNiA0LjVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptLjUgNy41YS41LjUgMCAwIDAgMCAxaDExYS41LjUgMCAwIDAgMC0xaC0xMVpNNiA3LjVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptLjUgNy41YS41LjUgMCAwIDAgMCAxaDExYS41LjUgMCAwIDAgMC0xaC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEdyb3VwUmV0dXJuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0dyb3VwUmV0dXJuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgNC41YzAgLjM2LS4wNy43LS4yIDFIMTBjLjI4IDAgLjUuMjIuNS41djJIMTBhMiAyIDAgMCAwLTIgMnYuNUg2YS41LjUgMCAwIDEtLjUtLjVWNi44YTIuNSAyLjUgMCAwIDEtMS41LjE1VjEwYzAgMS4xLjkgMiAyIDJoMnYyYTIgMiAwIDAgMCAxLjE2IDEuODEgNS41MSA1LjUxIDAgMCAxIC4zNC0zLjZWMTBjMC0uMjguMjItLjUuNS0uNWgyLjJhNS40OCA1LjQ4IDAgMCAxIDMuNjEtLjM0QTIgMiAwIDAgMCAxNCA4aC0yVjZhMiAyIDAgMCAwLTItMkg2Ljk1Yy4wMy4xNi4wNS4zMy4wNS41Wm0tMSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xMSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMTEgMTFhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTguNSAzLjVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBHcm91cFJldHVyblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR3JvdXBSZXR1cm5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgNC41YzAgLjE3LS4wMi4zNC0uMDUuNUgxMGExIDEgMCAwIDEgMSAxdjJoLTFhMiAyIDAgMCAwLTIgMnYxSDZhMSAxIDAgMCAxLTEtMVY2Ljk1YTIuNTEgMi41MSAwIDAgMS0xIDBWMTBjMCAxLjEuOSAyIDIgMmgydjJhMiAyIDAgMCAwIDEuMTYgMS44MUE1LjUxIDUuNTEgMCAwIDEgOSAxNHYtNGExIDEgMCAwIDEgMS0xaDRhNS41OCA1LjU4IDAgMCAxIDEuODEuMTZBMiAyIDAgMCAwIDE0IDhoLTJWNmEyIDIgMCAwIDAtMi0ySDYuOTVjLjAzLjE2LjA1LjMzLjA1LjVabS0xIDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTExIDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0xMSAxMWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptOC41IDMuNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEd1YXJkaWFuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0d1YXJkaWFuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNC41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWk0xMC43MyA5QTIgMiAwIDAgMCA5IDhINGEyIDIgMCAwIDAtMiAydjIuNWExIDEgMCAxIDAgMiAwdjQuMjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDEgMCAyLjUgMFYxMi41YTEgMSAwIDEgMCAyIDBWMTBhMiAyIDAgMCAwLS4yNy0xWk0xNCA4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptLTMgNi4yM2EyIDIgMCAwIDAgMS0xLjczVjEwYTMgMyAwIDAgMC0uMTctMUgxNmEyIDIgMCAwIDEgMiAydjJhMSAxIDAgMSAxLTIgMHYzLjc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAxIDEtMi41IDB2LTIuNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBHdWFyZGlhblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR3VhcmRpYW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wLTFhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNabTAgMTEuNjJBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTMuMDVhMS41IDEuNSAwIDAgMS0yLTEuNDJWMTAuNUEyLjUgMi41IDAgMCAxIDQuNSA4aDRjLjgyIDAgMS41NC40IDIgMWg1YTIuNSAyLjUgMCAwIDEgMi41IDIuNXYxYTEuNSAxLjUgMCAwIDEtMiAxLjQxdjIuNTlhMS41IDEuNSAwIDAgMS0yLjUgMS4xMkExLjUgMS41IDAgMCAxIDExIDE2LjV2LTQuNDZhMS41IDEuNSAwIDAgMS0yIDEuNHYzLjA2YTEuNSAxLjUgMCAwIDEtMi41IDEuMTJaTTMgMTAuNXYxLjUzYS41LjUgMCAwIDAgMSAwVjEwLjVhLjUuNSAwIDAgMSAxIDB2NmEuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDAgMSAwdi02YS41LjUgMCAwIDEgMSAwdjEuNTNhLjUuNSAwIDAgMCAxIDBWMTAuNUMxMCA5LjY3IDkuMzMgOSA4LjUgOWgtNEMzLjY3IDkgMyA5LjY3IDMgMTAuNVptNy45NS0uNWMuMDMuMTYuMDUuMzMuMDUuNXYuNWgxdjUuNWEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00LjU1Wk0xNiA2YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptLTEgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBHdWVzdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHdWVzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjA5IDRINS41YS41LjUgMCAwIDAtLjUuNXYxMmMwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTEyYS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMVptNS44Mi0xaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTljLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMVpNOCAzLjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaTTEwIDZhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tMi4yNSA1Yy0uNjYgMC0xLjMuNTUtMS4yMiAxLjMuMDYuNTYuMjQgMS4yNi43OSAxLjguNTUuNTcgMS40MS45IDIuNjguOSAxLjI3IDAgMi4xMy0uMzMgMi42OC0uOS41NS0uNTQuNzMtMS4yNC43OS0xLjguMDgtLjc1LS41Ni0xLjMtMS4yMi0xLjNoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEd1ZXN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdHdWVzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFabTUuODItMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Yy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFaTTggMy41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wk05IDhhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xLTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tMi40NyA2LjJjMC0uMDUgMC0uMDkuMDQtLjEzLjA0LS4wNC4xLS4wNy4xOC0uMDdoNC41Yy4wNyAwIC4xNC4wMy4xOC4wNy4wMy4wNC4wNS4wOC4wNC4xMy0uMDQuNDUtLjE4Ljg4LS41IDEuMi0uMy4zMi0uODguNi0xLjk3LjYtMS4xIDAtMS42Ni0uMjgtMS45OC0uNmExLjk0IDEuOTQgMCAwIDEtLjUtMS4yWm0uMjItMS4yYy0uNjYgMC0xLjMuNTUtMS4yMiAxLjMuMDYuNTYuMjQgMS4yNi43OSAxLjguNTUuNTcgMS40MS45IDIuNjguOSAxLjI3IDAgMi4xMy0uMzMgMi42OC0uOS41NS0uNTQuNzMtMS4yNC43OS0xLjguMDgtLjc1LS41Ni0xLjMtMS4yMi0xLjNoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEd1ZXN0QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0d1ZXN0QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTljLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djQuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjQuNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaTTkgMTQuNWMwLTEuMzMuNDctMi41NSAxLjI2LTMuNUg3Ljc1Yy0uNjYgMC0xLjMuNTUtMS4yMiAxLjMuMDYuNTYuMjQgMS4yNi43OSAxLjguNC40Ljk1LjcgMS43LjgyQTUuNTggNS41OCAwIDAgMSA5IDE0LjVabS0xLTExYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wk0xMCA2YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptOSA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBHdWVzdEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignR3Vlc3RBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTljLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djQuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjQuNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFabS42NiA3aDIuNWMtLjI1LjMtLjQ3LjY0LS42NSAxSDcuNzVhLjI1LjI1IDAgMCAwLS4xOC4wNy4xNS4xNSAwIDAgMC0uMDQuMTNjLjA0LjQ1LjE4Ljg4LjUgMS4yLjIuMi41LjQgMSAuNWE1LjU2IDUuNTYgMCAwIDAtLjAxIDEuMDIgMy4wNiAzLjA2IDAgMCAxLTEuNy0uODEgMi45MyAyLjkzIDAgMCAxLS43OS0xLjhDNi40NSAxMS41NCA3LjEgMTEgNy43NSAxMVpNOCAzLjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaTTkgOGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabTkgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgR3VpdGFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0d1aXRhckZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC41IDMuNzggMS4xMS0xLjEyYy4yMy0uMjMuNi0uMjMuODMgMGwuOS45Yy4yMi4yMy4yMi42IDAgLjgzTDE2LjIyIDUuNWwtMS43My0xLjczWm0tLjcyLjcxLTIuNTMgMi41My0uMTMtLjEzYTIuMTMgMi4xMyAwIDAgMC0zLjQuNTVsLS4zNC42OGEuNi42IDAgMCAxLS42Ni4zMmgtLjA2YTMuNzIgMy43MiAwIDAgMC0zLjcgMS40IDQuOCA0LjggMCAwIDAgLjQ0IDYuMjdsLjQ5LjQ5YTQuOCA0LjggMCAwIDAgNi4yNi40NCAzLjcyIDMuNzIgMCAwIDAgMS40Mi0zLjdsLS4wMS0uMDZhLjYuNiAwIDAgMSAuMzItLjY2bC42OC0uMzRhMi4xMyAyLjEzIDAgMCAwIC41NS0zLjRsLS4xMy0uMTMgMi41My0yLjUzLTEuNzMtMS43M1ptLTUuNDEgNy4xNGExLjI1IDEuMjUgMCAxIDEgMS43Ni0xLjc2IDEuMjUgMS4yNSAwIDAgMS0xLjc2IDEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBHdWl0YXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0d1aXRhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS43IDExLjdhMSAxIDAgMSAxLTEuNC0xLjQgMSAxIDAgMCAxIDEuNCAxLjRabTUuNTYtOS4zOWExLjA5IDEuMDkgMCAwIDEgMS41MyAwbC45LjljLjQyLjQyLjQyIDEuMSAwIDEuNTNsLTQuMzcgNC4zOGEyLjEzIDIuMTMgMCAwIDEtLjc2IDMuMTZsLS42OC4zNGEuNi42IDAgMCAwLS4zMi42NnYuMDZhMy43MiAzLjcyIDAgMCAxLTEuNCAzLjcgNC44IDQuOCAwIDAgMS02LjI3LS40NGwtLjQ5LS41YTQuOCA0LjggMCAwIDEtLjQ0LTYuMjUgMy43MiAzLjcyIDAgMCAxIDMuNy0xLjQybC4wNi4wMWEuNi42IDAgMCAwIC42Ni0uMzJsLjM0LS42OGEyLjEzIDIuMTMgMCAwIDEgMy4xNi0uNzZsNC4zOC00LjM3Wm0uODMuN2EuMDkuMDkgMCAwIDAtLjEzIDBMMTQuOCA0LjE5bDEuMDIgMS4wMiAxLjE2LTEuMTZhLjA5LjA5IDAgMCAwIDAtLjEzbC0uOS0uOVptLS45OCAyLjktMS4wMi0xLjAyLTIuODQgMi44NGEuNS41IDAgMCAxLS43IDBsLS4xMy0uMTNhMS4xMyAxLjEzIDAgMCAwLTEuOC4zbC0uMzUuNjdhMS42IDEuNiAwIDAgMS0xLjc1Ljg1aC0uMDVjLTEuMDMtLjIxLTIuMDguMTktMi43MSAxLjAzYTMuOCAzLjggMCAwIDAgLjM1IDQuOTVsLjQ5LjQ5YTMuOCAzLjggMCAwIDAgNC45NS4zNSAyLjcyIDIuNzIgMCAwIDAgMS4wNC0yLjdsLS4wMi0uMDdjLS4xNC0uNy4yMS0xLjQyLjg2LTEuNzVsLjY4LS4zM2MuNjktLjM1LjgzLTEuMjYuMy0xLjhsLS4xNC0uMTRhLjUuNSAwIDAgMSAwLS43bDIuODQtMi44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhbmREcmF3RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmREcmF3RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDNjMC0uNjEtLjM3LTEuMDQtLjg0LTEuM2E1LjE1IDUuMTUgMCAwIDAtMS43NC0uNUEzNy45IDM3LjkgMCAwIDAgOS41MyAxSDkuNWEuNS41IDAgMCAwIDAgMWMxLjggMCAzLjUyIDAgNC43Ny4xOC42NC4xIDEuMS4yMiAxLjQuMzkuMjcuMTUuMzMuMy4zMy40MyAwIC4xNS0uMDYuMjktLjMxLjQ0LS4yOC4xNi0uNy4yOS0xLjMuMzhDMTMuMjIgNCAxMS42NCA0IDEwIDRoLS4wM2MtMS42IDAtMy4yNiAwLTQuNTEuMi0uNjMuMDktMS4yMi4yNC0xLjY2LjUtLjQ2LjI4LS44LjctLjggMS4zIDAgLjguNjUgMS4yNyAxLjMyIDEuNTIuNy4yNyAxLjY1LjQgMi42OC40di0xYy0uOTcgMC0xLjc4LS4xMi0yLjMyLS4zM0M0LjEgNi4zNyA0IDYuMTQgNCA2YzAtLjE1LjA2LS4yOS4zMS0uNDQuMjgtLjE2LjctLjI5IDEuMy0uMzhDNi43OCA1IDguMzYgNSAxMCA1aC4wM2MxLjYgMCAzLjI2IDAgNC41MS0uMi42My0uMDkgMS4yMi0uMjQgMS42Ni0uNS40Ni0uMjguOC0uNy44LTEuM1pNOS41IDZDOC42NyA2IDggNi42NyA4IDcuNXY0LjI0bC0xLjM1LS41OGExLjk0IDEuOTQgMCAwIDAtMi42MSAxLjJjLS4xMi4zOS4wNC44LjM4IDFsMy45NyAyLjM2aC4wMmMuNTIuMjkuODIuNjkgMSAxLjA3LjE3LjM1LjQ0LjY4Ljc4LjkuMzQuMjMuNzcuMzcgMS4yMy4yOGwyLS4zOGExLjUgMS41IDAgMCAwIDEuMTctMS4xMWwuODMtMy4zM2EyLjUgMi41IDAgMCAwLTEuOTMtMy4wNUwxMSA5LjZWNy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhbmREcmF3UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kRHJhd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgM2MwLS42MS0uMzctMS4wNC0uODQtMS4zYTUuMTUgNS4xNSAwIDAgMC0xLjc0LS41QTM3LjkgMzcuOSAwIDAgMCA5LjUzIDFIOS41YS41LjUgMCAwIDAgMCAxYzEuOCAwIDMuNTIgMCA0Ljc3LjE4LjY0LjEgMS4xLjIyIDEuNC4zOS4yNy4xNS4zMy4zLjMzLjQzIDAgLjE1LS4wNi4yOS0uMzEuNDQtLjI4LjE2LS43LjI5LTEuMy4zOEMxMy4yMiA0IDExLjY0IDQgMTAgNGgtLjAzYy0xLjYgMC0zLjI2IDAtNC41MS4yLS42My4wOS0xLjIyLjI0LTEuNjYuNS0uNDYuMjgtLjguNy0uOCAxLjMgMCAuOC42NSAxLjI3IDEuMzIgMS41Mi43LjI3IDEuNjUuNCAyLjY4LjR2LTFjLS45NyAwLTEuNzgtLjEyLTIuMzItLjMzQzQuMSA2LjM3IDQgNi4xNCA0IDZjMC0uMTUuMDYtLjI5LjMxLS40NC4yOC0uMTYuNy0uMjkgMS4zLS4zOEM2Ljc4IDUgOC4zNiA1IDEwIDVoLjAzYzEuNiAwIDMuMjYgMCA0LjUxLS4yLjYzLS4wOSAxLjIyLS4yNCAxLjY2LS41LjQ2LS4yOC44LS43LjgtMS4zWk05IDcuNWEuNS41IDAgMCAxIDEgMFYxMGMwIC4yNC4xNy40NC40LjQ5bDIuOS41OWMuODMuMTYgMS4zNiAxIDEuMTUgMS44M2wtLjgzIDMuMzNhLjUuNSAwIDAgMS0uMzkuMzdsLTIgLjM4Yy0uMTQuMDMtLjMgMC0uNDgtLjEyYTEuMyAxLjMgMCAwIDEtLjQzLS41MSAzLjMgMy4zIDAgMCAwLTEuNDMtMS41MWwtMy44Ni0yLjI5YS45NC45NCAwIDAgMSAxLjIzLS40OGwyLjA0Ljg4YS41LjUgMCAwIDAgLjctLjQ2di01Wk05LjUgNkM4LjY3IDYgOCA2LjY3IDggNy41djQuMjRsLTEuMzQtLjU4YTEuOTQgMS45NCAwIDAgMC0yLjYyIDEuMmMtLjEyLjM5LjA0LjguMzggMWwzLjk3IDIuMzZoLjAyYy41Mi4yOS44My42OSAxIDEuMDcuMTcuMzUuNDQuNjguNzguOS4zNC4yMy43Ny4zNyAxLjIzLjI4bDItLjM4YTEuNSAxLjUgMCAwIDAgMS4xNy0xLjExbC44My0zLjMzYTIuNSAyLjUgMCAwIDAtMS45My0zLjA1TDExIDkuNlY3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGFuZExlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgOC41VjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjguNWEuNS41IDAgMCAxLTEgMFYzLjc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhNC4wNiA0LjA2IDAgMCAwLTItLjc1Yy0uOTcgMC0xLjc5LjMyLTEuOTggMS4xMmEuNi42IDAgMCAwLS4wMi4xNGMwIC4xNS4wNy4zLjIuMzhsMS4zLjk5YzEuMDcuOCAyLjA3IDEuODYgMi43NiAyLjk5LjM4LjYuNzIgMS4yMyAxLjA2IDEuODYuMzYuNjguNTkgMS4wMiAxLjY4IDEuMDJoMy4wNWMuOTUgMCAxLjMxLS41MyAxLjk1LTIgLjY0LTEuNDcgMS0yLjk0IDEtMy41VjUuMjVhLjc1Ljc1IDAgMCAwLTEuNSAwVjlhLjUuNSAwIDAgMS0xIDBWMy43NWEuNzUuNzUgMCAwIDAtMS41IDBWOC41YS41LjUgMCAwIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmRMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiAxMi4wMmMwIDEuMDYtLjIgMi4xLS42IDMuMDhsLS42IDEuNDJhMi41NSAyLjU1IDAgMCAxLTEuMTcgMS4yOWMtLjI3LjE0LS41Ni4yMS0uODYuMjFoLTIuNTVjLS43NyAwLTEuNDktLjQxLTEuODctMS4wOC0uNS0uODctMS4wMi0xLjctMS43Mi0yLjQzbC0xLjMyLTEuMzljLS40NC0uNDYtLjk3LS44NC0xLjQ5LTEuMjNsLS41OS0uNDVhLjYuNiAwIDAgMS0uMjMtLjQ3YzAtLjc1LjU0LTEuNTcgMS4yMi0xLjc5QTMuMzQgMy4zNCAwIDAgMSA3IDkuNDdWNC41YTEuNSAxLjUgMCAwIDEgMi4wNS0xLjQgMS41IDEuNSAwIDAgMSAyLjkgMEExLjUgMS41IDAgMCAxIDE0IDQuNXYuMDlBMS41IDEuNSAwIDAgMSAxNiA2djYuMDJaTTEyIDQuNXY0YS41LjUgMCAwIDEtMSAwdi01YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMC0xIDB2NmEuNS41IDAgMCAxLS44NS4zN2gtLjAxYy0uMjItLjIyLS40NC0uNDQtLjcyLS41OC0uNy0uMzUtMi4yMi0uNTctMi40LjVsLjUzLjRjLjUyLjQgMS4wNC43OCAxLjQ4IDEuMjRsMS4zMyAxLjM4Yy43NS43OSAxLjMxIDEuNyAxLjg1IDIuNjMuMjEuMzYuNi41OCAxLjAxLjU4aDIuNTVjLjEzIDAgLjI3LS4wMy40LS4xLjMyLS4xNy41Ny0uNDQuNzEtLjc4bC41OS0xLjQyYy4zNS0uODYuNTMtMS43OC41My0yLjdWNmEuNS41IDAgMCAwLTEgMHYzLjVhLjUuNSAwIDAgMS0xIDB2LTVhLjUuNSAwIDAgMC0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBIYW5kTGVmdENoYXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGFuZExlZnRDaGF0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDguNVYyLjc1YS43NS43NSAwIDAgMC0xLjUgMFY4LjVhLjUuNSAwIDAgMS0xIDBWMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YTQuMDYgNC4wNiAwIDAgMC0yLS43NWMtLjk3IDAtMS43OS4zMi0xLjk4IDEuMTJhLjYuNiAwIDAgMC0uMDIuMTRjMCAuMTUuMDcuMy4yLjM4bDEuMy45OWMxLjA3LjggMi4wNyAxLjg2IDIuNzYgMi45OS4zOC42LjcyIDEuMjMgMS4wNiAxLjg2LjI0LjQ1LjQyLjc1LjgzLjlsLjM0LTEuMWE1LjQ4IDUuNDggMCAwIDEgNC4wMi03LjcuNS41IDAgMCAxLS4wMS0uMDhWMy43NWEuNzUuNzUgMCAwIDAtMS41IDBWOC41YS41LjUgMCAwIDEtMSAwWm01LTMuMjV2My45NkE1LjUgNS41IDAgMCAwIDE0LjUgOVY1LjI1YS43NS43NSAwIDAgMSAxLjUgMFptMyA5LjI1YTQuNSA0LjUgMCAwIDEtNi42OCAzLjk0bC0xLjguNTRhLjQuNCAwIDAgMS0uNS0uNWwuNTQtMS44QTQuNSA0LjUgMCAxIDEgMTkgMTQuNVpNMTIuNSAxM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0tLjUgMi41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZExlZnRDaGF0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kTGVmdENoYXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2IDZ2My4yYy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNmEuNS41IDAgMCAwLTEgMHYzLjAyYy0uMzQuMDMtLjY4LjEtMSAuMTlWNC41YS41LjUgMCAwIDAtMSAwdjRhLjUuNSAwIDAgMS0xIDB2LTVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAxLTEgMHYtNGEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDEtLjg1LjM3aC0uMDFjLS4yMi0uMjItLjQ0LS40NC0uNzItLjU4LS43LS4zNS0yLjIyLS41Ny0yLjQuNWwuNTMuNGMuNTIuNCAxLjA0Ljc4IDEuNDggMS4yNGwxLjMzIDEuMzhjLjc1Ljc5IDEuMzEgMS43IDEuODUgMi42My4wNy4xMi4xNy4yMy4yNy4zMmwuMDEuMDEtLjMuOTlhMi4xNiAyLjE2IDAgMCAxLS44NC0uODJjLS41LS44Ny0xLjAyLTEuNy0xLjcyLTIuNDNsLTEuMzItMS4zOWMtLjQ0LS40Ni0uOTctLjg0LTEuNDktMS4yM2wtLjU5LS40NWEuNi42IDAgMCAxLS4yMy0uNDdjMC0uNzUuNTQtMS41NyAxLjIyLTEuNzlBMy4zNCAzLjM0IDAgMCAxIDcgOS40N1Y0LjVhMS41IDEuNSAwIDAgMSAyLjA1LTEuNCAxLjUgMS41IDAgMCAxIDIuOSAwQTEuNSAxLjUgMCAwIDEgMTQgNC41di4wOUExLjUgMS41IDAgMCAxIDE2IDZabTMgOC41YTQuNSA0LjUgMCAwIDEtNi42OCAzLjk0bC0xLjguNTRhLjQuNCAwIDAgMS0uNS0uNWwuNTQtMS44QTQuNSA0LjUgMCAxIDEgMTkgMTQuNVpNMTIuNSAxM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0tLjUgMi41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZE9wZW5IZWFydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kT3BlbkhlYXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wibTEzLjQgMTAuNTItMy4zNi0zLjY3YS42LjYgMCAwIDEtLjg3LjAxTDUuMjggMi45N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDMuODYgMy44NmEuNTguNTggMCAxIDEtLjgxLjgyTDMuMjggNC43MmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDQuMDUgNC4wNWEuNDkuNDkgMCAwIDEtLjY5LjdsLTIuMy0yLjMxYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMy44MiAzLjgyLS41LjEyYy0uNzguMjEtMS43OC42NS0yLjM4IDEuNkExIDEgMCAwIDAgMy4yMiAxNmMuMjMuMy42LjQ4IDEgLjQ3IDIuMTUtLjAxIDQuNzcuMzkgNi44NSAxLjI0IDEuMi41IDIuNjkuNDMgMy43MS0uNTJsMS4yNS0xLjE1YTMgMyAwIDAgMCAuNzctMy4zbC0uOTctMi40Ni0uMjIuMjVhMS41IDEuNSAwIDAgMS0yLjIyIDBabS0zLjY4IDMuNDNhLjUuNSAwIDAgMS0uNDQtLjljLjYtLjMgMS40Ni0uNDMgMi4zLS4zLjg2LjE1IDEuNzQuNTggMi4zNCAxLjQ3YS41LjUgMCAwIDEtLjg0LjU2IDIuNDIgMi40MiAwIDAgMC0xLjY2LTEuMDRjLS42Ni0uMS0xLjMgMC0xLjcuMlpNOS4zNCAyLjkyYTMuNCAzLjQgMCAwIDAtLjMgMi4wNEw3LjIzIDMuMDNhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmMuMjkuMjkuNjUuNiAxLjA2Ljk1Wk0xNC41IDNsLS42My0uNDlhMi40IDIuNCAwIDAgMC0zLjI0IDMuNWwzLjUgMy44M2MuMi4yMi41NC4yMi43NCAwbDMuNS0zLjgzYTIuNCAyLjQgMCAwIDAtMy4yNC0zLjVsLS42My41WlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZE9wZW5IZWFydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGFuZE9wZW5IZWFydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuNSAzLS42My0uNDlhMi40IDIuNCAwIDAgMC0zLjI0IDMuNWwzLjUgMy44M2MuMi4yMi41NC4yMi43NCAwbDMuNS0zLjgzYTIuNCAyLjQgMCAwIDAtMy4yNC0zLjVsLS42My41Wm0xLjM4IDEwLjA5LS44Mi0yLjJjLjItLjA3LjM5LS4yLjU1LS4zN2wuMjUtLjI4Ljk0IDIuNDlBMyAzIDAgMCAxIDE2IDE2bC0xLjIyIDEuMWMtLjYxLjU0LTEuNC44My0yLjIyLjgyYTQgNCAwIDAgMS0xLjUtLjMgMTguNCAxOC40IDAgMCAwLTYuODUtMS4yNCAxLjIxIDEuMjEgMCAwIDEtMS4wOC0uNiAxIDEgMCAwIDEgMC0xIDQuMiA0LjIgMCAwIDEgMi43NS0xLjdMMi40MiA5LjYzYTEuNTYgMS41NiAwIDAgMSAuNDctMi41MyAxLjU2IDEuNTYgMCAwIDEgMS42Ni0yLjU0IDEuNTUgMS41NSAwIDAgMSAyLjU4LS42M2MuMDgtLjE4LjE5LS4zNC4zMi0uNDhhMS41OCAxLjU4IDAgMCAxIDEuNzgtLjNjLS4xMi4zMy0uMi42Ny0uMjIgMS4wMkw5IDQuMTZhLjYuNiAwIDAgMC0uODQuODRsLjcuNjUgMS4zMiAxLjM2IDEuMjUgMS4zNmEuNDguNDggMCAwIDEtLjEzLjQ4LjQ4LjQ4IDAgMCAxLS43IDBMOC4xIDYuMzZsLS43LS43LTEtMS4wNmEuNTguNTggMCAwIDAtLjggMCAuNTcuNTcgMCAwIDAgMCAuOGwyLjc1IDIuNzVhLjUuNSAwIDAgMS0uNy43TDUuNzkgN2wtMS40LTEuNGEuNTYuNTYgMCAwIDAtLjk1LjRjMCAuMTUuMDUuMy4xNi40bDEuMDcgMS4wNiAyLjE4IDIuMTlhLjUuNSAwIDAgMS0uNy43TDUgOS4yMSAzLjk2IDguMTdhLjU2LjU2IDAgMCAwLS43OSAwIC41Mi41MiAwIDAgMC0uMTcuMzkuNTYuNTYgMCAwIDAgLjE3LjQ0bDQuMTkgNC4xNUEuNS41IDAgMCAxIDcgMTRzLTIuMTUgMC0yLjk5IDEuMzVjMCAuMDQuMDguMTEuMi4xMWguMTRjMi40MyAwIDQuODMuNDQgNy4xIDEuMzFhMi41MSAyLjUxIDAgMCAwIDIuNjYtLjMzbDEuMjUtMS4xNWEyIDIgMCAwIDAgLjUyLTIuMlptLTYuMTYuODZjLjQtLjIgMS4wNC0uMzIgMS43LS4yLjY0LjEgMS4yNi40MiAxLjY2IDEuMDNhLjUuNSAwIDAgMCAuODQtLjU2IDMuNDIgMy40MiAwIDAgMC0yLjM0LTEuNDZjLS44NC0uMTQtMS43IDAtMi4zLjNhLjUuNSAwIDAgMCAuNDQuODlaXCJdKTtcbmV4cG9ydCBjb25zdCBIYW5kUG9pbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGFuZFBvaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhMiAyIDAgMCAwLTIgMnY1LjY3bC0xLjMxLS42OWEzLjUzIDMuNTMgMCAwIDAtNC41MyAxLjEuODguODggMCAwIDAgLjM3IDEuMzJjNC4zMyAxLjg3IDUuOTUgMy41OCA2LjY3IDQuOS41NCAxIDEuNjEgMS44NSAyLjkgMS42N2wyLjg3LS40YTIuNSAyLjUgMCAwIDAgMi4wOC0xLjg2bC44Mi0zLjI1YTQgNCAwIDAgMC0zLjI5LTQuOTRMMTIgNy4xNFY0YTIgMiAwIDAgMC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBIYW5kUG9pbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmRQb2ludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2ExIDEgMCAwIDAtMSAxdjYuNWEuNS41IDAgMCAxLS43My40NEw2LjIyIDkuODdhMi41MyAyLjUzIDAgMCAwLTMuMTYuNjdjNC4zNSAxLjkgNi4xNiAzLjcgNy4wMiA1LjI4LjQyLjc4IDEuMTUgMS4yNyAxLjg4IDEuMTZsMi44Ny0uNGExLjUgMS41IDAgMCAwIDEuMjUtMS4xMWwuODItMy4yNWEzIDMgMCAwIDAtMi40Ni0zLjdsLTMuMDEtLjQ2YS41LjUgMCAwIDEtLjQzLS41VjRhMSAxIDAgMCAwLTEtMVpNOCA0YTIgMiAwIDEgMSA0IDB2My4xNGwyLjU4LjM4YTQgNCAwIDAgMSAzLjMgNC45NGwtLjgzIDMuMjVhMi41IDIuNSAwIDAgMS0yLjA4IDEuODdsLTIuODcuNGMtMS4yOS4xNy0yLjM2LS42OC0yLjktMS42OS0uNzItMS4zLTIuMzQtMy4wMi02LjY3LTQuOWEuODguODggMCAwIDEtLjM3LTEuMzEgMy41MyAzLjUzIDAgMCAxIDQuNTMtMS4xbDEuMzEuN1Y0WlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmRSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDguNVYyLjc1YS43NS43NSAwIDAgMSAxLjUgMFY4LjVhLjUuNSAwIDAgMCAxIDBWMy43NWEuNzUuNzUgMCAwIDEgMS41IDB2Ni41Yy42Ni0uNDMgMS40LS43NSAyLS43NS45NyAwIDEuNzkuMzIgMS45OCAxLjEyLjAyLjA0LjAyLjEuMDIuMTQgMCAuMTUtLjA3LjMtLjIuMzhsLTEuMy45OWMtMS4wNy44LTIuMDcgMS44Ni0yLjc2IDIuOTktLjM4LjYtLjcyIDEuMjMtMS4wNiAxLjg2LS4zNi42OC0uNTkgMS4wMi0xLjY4IDEuMDJINi45NUM2IDE4IDUuNjQgMTcuNDcgNSAxNmExMS43IDExLjcgMCAwIDEtMS0zLjVWNS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWOWEuNS41IDAgMCAwIDEgMFYzLjc1YS43NS43NSAwIDAgMSAxLjUgMFY4LjVhLjUuNSAwIDAgMCAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBIYW5kUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmRSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAxMi4wMmMwIDEuMDYuMiAyLjEuNiAzLjA4bC42IDEuNDJjLjIyLjU1LjY0IDEuMDEgMS4xNyAxLjI5LjI3LjE0LjU2LjIxLjg2LjIxaDIuNTVjLjc3IDAgMS40OS0uNDEgMS44Ny0xLjA4LjUtLjg3IDEuMDItMS43IDEuNzItMi40M2wxLjMyLTEuMzljLjQ0LS40Ni45Ny0uODQgMS40OS0xLjIzbC41OS0uNDVhLjYuNiAwIDAgMCAuMjMtLjQ3YzAtLjc1LS41NC0xLjU3LTEuMjItMS43OWEzLjM0IDMuMzQgMCAwIDAtMi43OC4yOVY0LjVhMS41IDEuNSAwIDAgMC0yLjA1LTEuNCAxLjUgMS41IDAgMCAwLTIuOSAwQTEuNSAxLjUgMCAwIDAgNiA0LjV2LjA5QTEuNSAxLjUgMCAwIDAgNCA2djYuMDJaTTggNC41djRhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAxIDEgMHY2YS41LjUgMCAwIDAgLjg1LjM3aC4wMWMuMjItLjIyLjQ0LS40NC43Mi0uNTguNy0uMzUgMi4yMi0uNTcgMi40LjVsLS41My40Yy0uNTIuNC0xLjA0Ljc4LTEuNDggMS4yNGwtMS4zMyAxLjM4Yy0uNzUuNzktMS4zMSAxLjctMS44NSAyLjYzLS4yMS4zNi0uNi41OC0xLjAxLjU4SDcuMjNhLjg3Ljg3IDAgMCAxLS40LS4xIDEuNTUgMS41NSAwIDAgMS0uNzEtLjc4bC0uNTktMS40MmE3LjA5IDcuMDkgMCAwIDEtLjUzLTIuN1Y2YS41LjUgMCAwIDEgMSAwdjMuNWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhbmRSaWdodE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kUmlnaHRPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA1LjI1YzAtLjE1LjA1LS4zLjEzLS40MkwyLjE1IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLTMuNzItMy43MWMtLjI1LjMxLS40OS42NC0uNy45OC0uMzcuNi0uNzEgMS4yMy0xLjA1IDEuODYtLjM2LjY4LS41OSAxLjAyLTEuNjggMS4wMkg2Ljk1QzYgMTggNS42NCAxNy40NyA1IDE2YTExLjcgMTEuNyAwIDAgMS0xLTMuNVY1LjI1Wm0yLjUgMS45Ni0xLTFWOWEuNS41IDAgMCAwIDEgMFY3LjJaTTggMy43NXYyLjEzbC0xLjUtMS41di0uNjNhLjc1Ljc1IDAgMCAxIDEuNSAwWm0zLjEgNS4yNCAzLjcxIDMuN2MuMjItLjIuNDUtLjM5LjY5LS41NmwxLjMtLjk5Yy4xMy0uMDkuMi0uMjMuMi0uMzggMC0uMDUgMC0uMS0uMDItLjE0LS4yLS44LTEtMS4xMi0xLjk4LTEuMTItLjYgMC0xLjM0LjMyLTIgLjc1di02LjVhLjc1Ljc1IDAgMCAwLTEuNSAwVjguNWEuNS41IDAgMCAxLS40LjQ5Wk05IDYuODhsMS41IDEuNVYyLjc1YS43NS43NSAwIDAgMC0xLjUgMHY0LjEzWlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZFJpZ2h0T2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kUmlnaHRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNmMwLS4zNi4xMy0uNy4zNC0uOTVsLTIuMi0yLjJhLjUuNSAwIDEgMSAuNzEtLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0zLjU3LTMuNTYtLjIxLjIyYy0uNy43Mi0xLjIyIDEuNTYtMS43MiAyLjQzYTIuMTYgMi4xNiAwIDAgMS0xLjg3IDEuMDhINy4yM2MtLjMgMC0uNi0uMDctLjg2LS4yMWEyLjU1IDIuNTUgMCAwIDEtMS4xOC0xLjNsLS41OC0xLjQxYy0uNC0uOTgtLjYxLTIuMDItLjYxLTMuMDhWNlptOC44NyA3LjU4TDcgNy43VjkuNWEuNS41IDAgMCAxLTEgMFY2LjdsLS45NC0uOTNBLjUuNSAwIDAgMCA1IDZ2Ni4wMmMwIC45My4xOCAxLjg0LjUzIDIuN2wuNTkgMS40MmMuMTQuMzQuNC42MS43MS43OC4xMy4wNy4yNy4xLjQuMWgyLjU1Yy40MiAwIC44LS4yMiAxLS41OC41NS0uOTQgMS4xMS0xLjg0IDEuODYtMi42M2wuMjMtLjIzWk0xMCAzLjV2NC4zOGwuOS45YS41LjUgMCAwIDAgLjEtLjI4di00YS41LjUgMCAwIDEgMSAwdjUuMzhsLjkyLjkyYy4yLS4yLjQtLjM4LjY2LS41MS43LS4zNSAyLjIyLS41NyAyLjQuNWwtLjUzLjRjLS40LjMtLjgxLjYxLTEuMTguOTVsLjcuNzFjLjM4LS4zNC44LS42NSAxLjItLjk2bC42LS40NWEuNi42IDAgMCAwIC4yMy0uNDdjMC0uNzUtLjU0LTEuNTctMS4yMi0xLjc5YTMuMzQgMy4zNCAwIDAgMC0yLjc4LjI5VjQuNWExLjUgMS41IDAgMCAwLTIuMDUtMS40IDEuNSAxLjUgMCAwIDAtMi45IDAgMS41IDEuNSAwIDAgMC0xLjk2Ljg3bC45MS45VjQuNWEuNS41IDAgMCAxIDEgMHYxLjM4bDEgMVYzLjVhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBIYW5kV2F2ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kV2F2ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS44NSAxLjE1YS41LjUgMCAwIDAtLjcgMCAuNS41IDAgMCAwIDAgLjcxIDYuNTcgNi41NyAwIDAgMSAxLjg2IDUuNTcuNS41IDAgMCAwIC40Mi41Ny41LjUgMCAwIDAgLjU2LS40MiA3LjYgNy42IDAgMCAwLTIuMTQtNi40M1ptLTEwLjQuMzVhLjc1Ljc1IDAgMCAwLTEuNC41bDIuMSA1LjkzYS41My41MyAwIDEgMS0xIC4zNkwzLjQ1IDMuNWEuNzUuNzUgMCAwIDAtMS40MS41bDIuNTUgNy4xOGMtMi4xMi0uNTctMi44NS41OC0zLjA3IDEuMS0uMDYuMTIuMDIuMjUuMTUuMy44Mi4yNCAzLjY3IDEuMjYgNi44NSA0LjMuNi41OSAxLjQ5Ljc5IDIuMjYuNDdsMi4xNi0uOWEyIDIgMCAwIDAgMS4yMS0xLjU4bC4yNy0yLjAxYTggOCAwIDAgMC0uMzQtMy42M0wxMyA2aC0uMDFsLTEuMTUtMy40OWEuNzUuNzUgMCAwIDAtMS40Mi40OWwuOTYgMi45M2EuNjMuNjMgMCAwIDEtMS4yLjQyTDguNjggMmEuNzUuNzUgMCAxIDAtMS40Mi41bDEuNSA0LjM0YS42Ni42NiAwIDEgMS0xLjI0LjQ1TDUuNDUgMS41Wm04Ljc5IDEuNTdhLjUuNSAwIDAgMSAuNjkuMThsLjMuNWMuNDkuODMuNzYgMS43OC43NyAyLjc1YS41LjUgMCAxIDEtMSAwYy0uMDEtLjc5LS4yMy0xLjU2LS42NC0yLjI1bC0uMy0uNDlhLjUuNSAwIDAgMSAuMTgtLjY5WlwiXSk7XG5leHBvcnQgY29uc3QgSGFuZFdhdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmRXYXZlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS44NSAxLjE0YS41LjUgMCAwIDAtLjcgMCAuNS41IDAgMCAwIDAgLjcyIDYuNTcgNi41NyAwIDAgMSAxLjg2IDUuNTYuNS41IDAgMCAwIC40Mi41OC41LjUgMCAwIDAgLjU2LS40MiA3LjYgNy42IDAgMCAwLTIuMTQtNi40NFpNNC42MyAzLjA0YTEuNiAxLjYgMCAwIDEgMy4wNC0uNjMgMS42IDEuNiAwIDAgMSAyLjU5LjdsLjA4LjI3YTEuNiAxLjYgMCAwIDEgMi41NS43M2wxLjA3IDMuMjMuNTggMS43YTguNSA4LjUgMCAwIDEgLjM4IDMuOWwtLjI3IDJhMi41IDIuNSAwIDAgMS0xLjUxIDEuOTZsLTIuMTYuOWMtLjk3LjQtMi4wNy4xNS0yLjgtLjU1LTMuMTItMi45OS01Ljg4LTMuOTctNi42NS00LjItLjM1LS4xMS0uNjYtLjUyLS40Ny0uOTguMTUtLjM1LjUxLS45NyAxLjI4LTEuMzIuNi0uMjYgMS4zNi0uMzMgMi4zNS0uMDZMMi43NyA1LjFhMS42MSAxLjYxIDAgMCAxIDEuMDItMi4wM2MuMjgtLjA5LjU3LS4xLjg0LS4wNFptMi4xNSAzLjY0LjU1IDEuNjhhLjUuNSAwIDEgMS0uOTUuMzFsLS41Ny0xLjcyLS45NS0yLjUyYS42LjYgMCAwIDAtLjc2LS40LjYxLjYxIDAgMCAwLS4zOC43NmwyLjI1IDYuNTVhLjUuNSAwIDAgMS0uNjcuNjJjLTEuMzMtLjU3LTIuMTEtLjQ5LTIuNTUtLjMtLjMuMTQtLjUuMzQtLjYyLjUzYTE4LjkgMTguOSAwIDAgMSA2Ljc0IDQuMzNjLjQ3LjQ2IDEuMTUuNiAxLjcyLjM2bDIuMTYtLjljLjUtLjIuODQtLjY2LjktMS4xOGwuMjgtMS45OWE3LjUgNy41IDAgMCAwLS4zNC0zLjQ0bC0uNTgtMS43di0uMDFsLTEuMDctMy4yNGEuNi42IDAgMCAwLTEuMTYuM2wuODUgMi42MmEuNS41IDAgMCAxLS45NS4zMUw5Ljg1IDUuMWExLjYzIDEuNjMgMCAwIDEtLjA0LS4xM2wtLjUtMS41NmEuNi42IDAgMCAwLTEuMTUuMzhsLjYgMS44NWEuNS41IDAgMCAxIC4wMy4xMWwuNTMgMS42YS41LjUgMCAxIDEtLjk1LjNMNi43OSAyLjkyYS42LjYgMCAwIDAtMS4xMy4zOGwxLjEgMy4zMy4wMi4wNlptNy40Ni0zLjYxYS41LjUgMCAwIDEgLjY5LjE3bC4zLjVjLjUuODMuNzYgMS43OC43NyAyLjc1YS41LjUgMCAxIDEtMSAuMDFjMC0uNzktLjIyLTEuNTctLjYzLTIuMjVsLS4zLS41YS41LjUgMCAwIDEgLjE3LS42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhbmRzaGFrZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYW5kc2hha2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS42MyAzLjAxYS41LjUgMCAwIDAgLjA2IDBIMTJhMi41IDIuNSAwIDAgMSAyIC4zMSAzLjcgMy43IDAgMCAxIDEuNzEgNS4xTDEyLjUgNS4xOGEuNS41IDAgMCAwLS4zNi0uMTVIMTAuOGEuNS41IDAgMCAwLS4zLjFMOC4zNSA2Ljc2YTEuMTIgMS4xMiAwIDAgMS0xLjY3LS40QTEuMSAxLjEgMCAwIDEgNyA1bDIuNjMtMS45OVptLTQgOC44NS0uMDEuMDItLjc3Ljc2di4wMWEuNi42IDAgMCAxLS44NC0uMDEuNi42IDAgMCAxIDAtLjg0bC43Ni0uNzZhLjYuNiAwIDAgMSAuODUgMGMuMjMuMjIuMjMuNi4wMS44MlptLS4wOCAxLjVhLjYuNiAwIDAgMCAuMDEuODIuNi42IDAgMCAwIC44NSAwbC43Ni0uNzZhLjYuNiAwIDAgMC0uMDktLjkxLjYuNiAwIDAgMC0uNzQuMDZsLS4wMS4wMS0uNzcuNzZ2LjAyWk0zLjc1IDkuOGEuNi42IDAgMCAxIDAgLjg0bC0uNzcuNzZhLjYuNiAwIDAgMS0uODQgMCAuNi42IDAgMCAxIDAtLjg0bC43Ni0uNzZhLjYuNiAwIDAgMSAuODUgMFptNC45OCA0LjMzYS42LjYgMCAwIDEgMCAuODRsLS43Ni43NmEuNi42IDAgMCAxLS44NSAwIC42LjYgMCAwIDEtLjA5LS43My42LjYgMCAwIDEgLjA5LS4xMWwuNzYtLjc2YS42LjYgMCAwIDEgLjg1IDBaTTMuNTMgNC40YTQuNzYgNC43NiAwIDAgMSA0LjMtMS4yOUw2LjQgNC4yMUEyLjEgMi4xIDAgMCAwIDYgNy4xNGMuNy45MiAyLjAzIDEuMSAyLjk1LjRsMi4wMi0xLjUzaC45bDEuOTUgMS45MyAxLjYgMS42Mi4wMy4wMy44Ny44NmExLjAyIDEuMDIgMCAwIDEtMS4zNyAxLjUxbC0uMDctLjA3YS41LjUgMCAwIDAtLjA2LS4wNWwtLjg1LS44NWEuNS41IDAgMSAwLS43LjcxbC45LjkuMS4xLjAzLjAzYS43LjcgMCAwIDEtLjk4Ljk4bC0uMTMtLjE0YS41LjUgMCAwIDAtLjg1LjM3YzAgLjEzLjA1LjI2LjE1LjM2bC4xNy4xN2EuNjMuNjMgMCAxIDEtLjkuOWwtLjA4LS4xYTEuNjMgMS42MyAwIDAgMC0uMS0uMWwtLjE2LS4xNmEuNS41IDAgMCAwLS43LjdsLjExLjEzYS41LjUgMCAwIDAgLjA2LjA2bC4wNC4wNWEuNjUuNjUgMCAwIDEtLjk2Ljg2TDkuMTEgMTZsLjMzLS4zMmExLjU4IDEuNTggMCAwIDAtMS4wOS0yLjcyYzAtLjQtLjE2LS43OC0uNDctMS4wOC0uMy0uMy0uNjktLjQ2LTEuMDgtLjQ3QTEuNiAxLjYgMCAwIDAgNC45IDkuOSAxLjYxIDEuNjEgMCAwIDAgMi4zMSA5IDQuNyA0LjcgMCAwIDEgMy41MiA0LjRaXCJdKTtcbmV4cG9ydCBjb25zdCBIYW5kc2hha2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhbmRzaGFrZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMjQgMy4wMWEuNS41IDAgMCAwLS4zOS4xOWwtLjA4LjA2QTUuMTMgNS4xMyAwIDAgMCA0LjcgNC40NGE0LjcgNC43IDAgMCAwLTEuMzcgNC4zMWwtLjA1LjA1LS43OC43NWMtLjY0LjYxLS42NCAxLjYgMCAyLjIyLjQuMzguOTUuNTMgMS40Ni40My4wNi4yOS4yMS41Ni40NC43OS4zMS4zLjcxLjQ1IDEuMTEuNDYuMDEuMzkuMTcuNzcuNDggMS4wNy4zLjMuNy40NCAxLjEuNDUuMDIuNC4xOC43OC40OSAxLjA3LjYuNTggMS41Ni42MSAyLjIuMWwuNDMuNDJjLjY0LjYxIDEuNjguNjEgMi4zMiAwIC4zLS4zLjQ3LS42OC40OC0xLjA3LjQgMCAuOC0uMTYgMS4xLS40Ni4zLS4zLjQ3LS42Ny40OC0xLjA2LjQtLjAxLjc4LS4xNyAxLjA5LS40Ni4yNC0uMjMuMzktLjUyLjQ1LS44Mi41LjA4IDEuMDUtLjA2IDEuNDQtLjQ0LjYzLS42MS42My0xLjYgMC0yLjIybC0uNzItLjcuMTQtLjU0Yy4zLTEuMTMuMTUtMi4zMi0uNDItMy4zNGE0LjggNC44IDAgMCAwLTQuMi0yLjQzaC0yLjEzWm0yLjQ2IDMuNzIgMi40IDIuMzEgMS43NSAxLjY4Yy4yNC4yMy4yNC42IDAgLjg0YS42My42MyAwIDAgMS0uODcgMGwtMS4zMi0xLjI3YS41Mi41MiAwIDAgMC0uNzIgMGgtLjAxYy0uMi4yLS4yLjUxIDAgLjdsMS4wMyAxYy4yNC4yMi4yNC42IDAgLjgzYS42My42MyAwIDAgMS0uOC4wNS41Mi41MiAwIDAgMC0uNjcuMDUuNDguNDggMCAwIDAtLjA0LjY0Yy4xOC4yNC4xNi41Ny0uMDYuNzhhLjYzLjYzIDAgMCAxLS44LjA1LjUyLjUyIDAgMCAwLS42OC4wNC40OC40OCAwIDAgMC0uMDUuNjRjLjIuMjQuMTguNTgtLjA1LjhhLjY0LjY0IDAgMCAxLS44NyAwbC0uNDQtLjQyLjE2LS4xNmMuNjQtLjYxLjY0LTEuNiAwLTIuMjItLjMtLjMtLjctLjQ1LTEuMS0uNDZhMS41NCAxLjU0IDAgMCAwLS40OS0xLjA3Yy0uMy0uMy0uNy0uNDQtMS4xLS40NWExLjU0IDEuNTQgMCAwIDAtLjQ4LTEuMDdjLS40LS4zOS0uOTUtLjUzLTEuNDYtLjQzYTEuNTUgMS41NSAwIDAgMC0uNDUtLjhjLS4zNS0uMzMtLjgzLS40OC0xLjI5LS40NWEzLjc0IDMuNzQgMCAwIDEgMS4xMy0zLjIgNC4wNiA0LjA2IDAgMCAxIDMuMjktMS4xTDcuMjUgNS4xMWExLjcgMS43IDAgMCAwLS4zMyAyLjQ0Yy42Ljc2IDEuNy45IDIuNDguMzNsMS41OC0xLjE1aDEuNzJabS00Ljg2LS44MSAyLjYtMS45aC41M2EyLjI2IDIuMjYgMCAwIDEgLjE1IDBoMS4yNGMxLjQgMCAyLjY5Ljc0IDMuMzQgMS45Mi40NC44LjU2IDEuNzIuMzMgMi42bC0yLjc3LTIuNjdhLjUuNSAwIDAgMC0uMzUtLjE0aC0yLjFhLjUuNSAwIDAgMC0uMy4xbC0xLjcgMS4yNWEuOC44IDAgMCAxLTEuMS0uMTUuNy43IDAgMCAxIC4xMy0xLjAxWm0uNDUgOC42Ljc4LS43NS4wMS0uMDFhLjYzLjYzIDAgMCAxIC44NiAwYy4yNC4yNC4yNC42IDAgLjg0bC0uNzguNzVhLjYzLjYzIDAgMCAxLS44NiAwIC41Ny41NyAwIDAgMS0uMDEtLjgzWm0uMDctMS40NnYuMDFsLS43OC43NS0uMDEuMDFhLjYzLjYzIDAgMCAxLS44NiAwIC41Ny41NyAwIDAgMSAwLS44NGwuNzgtLjc1YS42My42MyAwIDAgMSAuODYgMGMuMjQuMjMuMjQuNi4wMS44MlptLTEuNi0xLjUyTDYgMTIuM3YuMDFhLjYzLjYzIDAgMCAxLS44NiAwIC41Ny41NyAwIDAgMSAwLS44NGwuNzctLjc1YS42My42MyAwIDAgMSAuODcgMGMuMjQuMjMuMjQuNiAwIC44M1ptLTEuOS0xLjIxLS43OC43NGEuNjMuNjMgMCAwIDEtLjg2IDAgLjU3LjU3IDAgMCAxIDAtLjgzTDQgOS41YS42My42MyAwIDAgMSAuODYgMGMuMjQuMjMuMjQuNiAwIC44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhcHRpY1N0cm9uZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYXB0aWNTdHJvbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC45MyAzLjIzYS43NS43NSAwIDAgMC0uMzYtMS40NmgtLjAybC0uMDQuMDJhOC4yNSA4LjI1IDAgMCAwLS42Mi4xOWMtLjQuMTMtLjkzLjMzLTEuNDguNi0uNTMuMjctMS4xMS42Mi0xLjU3IDEuMDhBMi42MSAyLjYxIDAgMCAwIDQgNS41YzAgLjc4LjQgMS4zNy44NiAxLjguNDMuNDIuOTguNzcgMS40NiAxLjA2bC4wMy4wM2MuNTIuMzIuOTUuNiAxLjI2Ljg5LjMuMjguMzkuNS4zOS43MiAwIC4yLS4wOS40LS4zNy42NS0uMjkuMjYtLjY3LjQ4LTEuMTYuNzZsLS4xLjA2Yy0uNDkuMjgtMS4wNy42My0xLjUzIDEuMDktLjQ3LjQ4LS44NCAxLjEtLjg0IDEuOTQgMCAuNzcuMzkgMS4zOS44NCAxLjg0LjQ2LjQ2IDEuMDQuODEgMS41NyAxLjA4YTExLjQ0IDExLjQ0IDAgMCAwIDIuMS44aC4wNWEuNzUuNzUgMCAwIDAgLjM3LTEuNDVIOC45YTYuNTcgNi41NyAwIDAgMS0uNTQtLjE3Yy0uMzUtLjEyLS44Mi0uMy0xLjI3LS41Mi0uNDctLjIzLS44OS0uNS0xLjE4LS44LS4zLS4zLS40MS0uNTUtLjQxLS43OCAwLS4zNC4xMy0uNjEuNC0uODhhNiA2IDAgMCAxIDEuMjMtLjg1bC4xMy0uMDhjLjQ0LS4yNi45Ni0uNTUgMS4zNi0uOTEuNDctLjQyLjg4LS45OS44OC0xLjc4IDAtLjc4LS40LTEuMzctLjg2LTEuOC0uNDMtLjQyLS45OC0uNzctMS40Ni0xLjA2bC0uMDMtLjAzYy0uNTItLjMyLS45NS0uNi0xLjI2LS44OS0uMy0uMjgtLjM5LS41LS4zOS0uNzIgMC0uMjMuMTEtLjQ5LjQtLjc4LjMtLjMuNzItLjU3IDEuMTktLjhhOS45NSA5Ljk1IDAgMCAxIDEuOC0uNjhsLjA0LS4wMVptNi41IDBhLjc1Ljc1IDAgMCAwLS4zNi0xLjQ2aC0uMDJsLS4wNC4wMmE4LjIyIDguMjIgMCAwIDAtLjYyLjE5Yy0uNC4xMy0uOTMuMzMtMS40OC42LS41My4yNy0xLjExLjYyLTEuNTcgMS4wOGEyLjYxIDIuNjEgMCAwIDAtLjg0IDEuODRjMCAuNzguNCAxLjM3Ljg2IDEuOC40My40Mi45OC43NyAxLjQ2IDEuMDZsLjAzLjAzYy41Mi4zMi45NS42IDEuMjYuODkuMy4yOC4zOS41LjM5LjcyIDAgLjItLjA5LjQtLjM3LjY1LS4yOS4yNi0uNjcuNDgtMS4xNi43NmwtLjEuMDZjLS40OS4yOC0xLjA3LjYzLTEuNTMgMS4wOS0uNDcuNDgtLjg0IDEuMS0uODQgMS45NCAwIC43Ny4zOSAxLjM5Ljg0IDEuODQuNDYuNDYgMS4wNC44MSAxLjU3IDEuMDhhMTEuNDQgMTEuNDQgMCAwIDAgMi4xLjhoLjA1YS43NS43NSAwIDAgMCAuMzctMS40NWgtLjAzYTYuNDUgNi40NSAwIDAgMS0uNTQtLjE3Yy0uMzUtLjEyLS44Mi0uMy0xLjI3LS41Mi0uNDctLjIzLS44OS0uNS0xLjE4LS44LS4zLS4zLS40MS0uNTUtLjQxLS43OCAwLS4zNC4xMy0uNjEuNC0uODhhNiA2IDAgMCAxIDEuMjMtLjg1bC4xMy0uMDhjLjQ0LS4yNi45Ni0uNTUgMS4zNi0uOTEuNDctLjQyLjg4LS45OS44OC0xLjc4IDAtLjc4LS40LTEuMzctLjg2LTEuOGE5LjA2IDkuMDYgMCAwIDAtMS40Ni0xLjA2bC0uMDMtLjAzYy0uNTItLjMyLS45NS0uNi0xLjI2LS44OS0uMy0uMjgtLjM5LS41LS4zOS0uNzIgMC0uMjMuMTEtLjQ5LjQtLjc4LjMtLjMuNzItLjU3IDEuMTktLjhhOS45NSA5Ljk1IDAgMCAxIDEuOC0uNjhsLjA0LS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhcHRpY1N0cm9uZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGFwdGljU3Ryb25nUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjYyIDIuOTlBLjUuNSAwIDAgMCA4LjM4IDJoLS4wMmwtLjAzLjAyYTcuOTMgNy45MyAwIDAgMC0uNjEuMThjLS40LjEzLS45Mi4zMy0xLjQ0LjYtLjUzLjI1LTEuMDguNi0xLjUgMS4wMi0uNDQuNDMtLjc4IDEtLjc4IDEuNjcgMCAuNjkuMzUgMS4yMi43OCAxLjYzLjQxLjQuOTUuNzMgMS40MyAxLjAzbC4wMy4wMWMuNS4zMi45Ni42IDEuMjkuOTMuMzIuMy40Ny41OS40Ny45IDAgLjMtLjE0LjU2LS40Ni44NC0uMy4yNy0uNy41LTEuMTguNzhsLS4xMS4wN2MtLjUuMjgtMS4wNS42MS0xLjQ4IDEuMDRBMi40NCAyLjQ0IDAgMCAwIDQgMTQuNWMwIC42OC4zNCAxLjI0Ljc3IDEuNjcuNDMuNDIuOTguNzcgMS41IDEuMDNhMTEuMTkgMTEuMTkgMCAwIDAgMi4wNi43N2wuMDMuMDFoLjAxYS41LjUgMCAwIDAgLjI1LS45Nkw4LjU3IDE3YTcuNjYgNy42NiAwIDAgMS0uNTUtLjE3Yy0uMzYtLjEyLS44My0uMy0xLjMtLjU0YTQuODYgNC44NiAwIDAgMS0xLjI1LS44NGMtLjMyLS4zMi0uNDgtLjY0LS40OC0uOTYgMC0uNDIuMTctLjc1LjQ4LTEuMDYuMzItLjMyLjc2LS42IDEuMjctLjg5bC4xMy0uMDdjLjQ1LS4yNi45NC0uNTUgMS4zMy0uODkuNDMtLjM5Ljc5LS45Ljc5LTEuNTkgMC0uNjktLjM1LTEuMjItLjc4LTEuNjNBOC45IDguOSAwIDAgMCA2LjggNy4zNGwtLjAzLS4wMWMtLjUtLjMyLS45Ni0uNi0xLjI5LS45My0uMzItLjMtLjQ3LS41OS0uNDctLjkgMC0uMzIuMTYtLjY0LjQ4LS45Ni4zMi0uMzIuNzctLjYgMS4yNC0uODRBMTAuMiAxMC4yIDAgMCAxIDguNTggM2wuMDMtLjAxaC4wMVptNiAwYS41LjUgMCAwIDAtLjI0LS45OGgtLjAybC0uMDMuMDJhOC4xMyA4LjEzIDAgMCAwLS42MS4xOGMtLjQuMTMtLjkyLjMzLTEuNDQuNi0uNTMuMjUtMS4wOC42LTEuNSAxLjAyLS40NC40My0uNzggMS0uNzggMS42NyAwIC42OS4zNSAxLjIyLjc4IDEuNjMuNDEuNC45NS43MyAxLjQzIDEuMDNsLjAyLjAxYy41Mi4zMi45Ny42IDEuMy45My4zMi4zLjQ3LjU5LjQ3LjkgMCAuMy0uMTQuNTYtLjQ2Ljg0LS4zLjI3LS43LjUtMS4xOC43OGwtLjExLjA3Yy0uNS4yOC0xLjA1LjYxLTEuNDggMS4wNEEyLjQ0IDIuNDQgMCAwIDAgMTAgMTQuNWMwIC42OC4zNCAxLjI0Ljc3IDEuNjcuNDMuNDIuOTguNzcgMS41IDEuMDNhMTEuMTkgMTEuMTkgMCAwIDAgMi4wNi43N2wuMDMuMDFoLjAxYS41LjUgMCAwIDAgLjI1LS45NmwtLjA0LS4wMWE3Ljg3IDcuODcgMCAwIDEtLjU1LS4xN2MtLjM2LS4xMi0uODMtLjMtMS4zLS41NGE0Ljg2IDQuODYgMCAwIDEtMS4yNS0uODRjLS4zMi0uMzItLjQ4LS42NC0uNDgtLjk2IDAtLjQyLjE3LS43NS40OC0xLjA2LjMyLS4zMi43Ni0uNiAxLjI3LS44OWwuMTMtLjA3Yy40NS0uMjYuOTQtLjU1IDEuMzMtLjg5LjQzLS4zOS43OS0uOS43OS0xLjU5IDAtLjY5LS4zNS0xLjIyLS43OC0xLjYzLS40MS0uNC0uOTUtLjczLTEuNDMtMS4wM2wtLjAyLS4wMWMtLjUyLS4zMi0uOTctLjYtMS4zLS45My0uMzItLjMtLjQ3LS41OS0uNDctLjkgMC0uMzIuMTYtLjY0LjQ4LS45Ni4zMi0uMzIuNzctLjYgMS4yNC0uODRhMTAuMiAxMC4yIDAgMCAxIDEuODYtLjdsLjAzLS4wMWguMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBIYXB0aWNXZWFrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhcHRpY1dlYWtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC43NSAxOC4yNWMtLjEgMC0uMi0uMDItLjMtLjA2LS4xLS4wNC0yLjQ1LTEuMS0yLjQ1LTMuNzYgMC0xLjQuNjYtMi4xMyAxLjItMi43Mi40Ni0uNTIuOC0uOS44LTEuNzJzLS4zNC0xLjE5LS44LTEuN0M2LjY2IDcuNjggNiA2Ljk1IDYgNS41NWE0LjE4IDQuMTggMCAwIDEgMi40Ni0zLjc1Ljc1Ljc1IDAgMCAxIC41OSAxLjM4Yy0uMDcuMDMtMS41NS43LTEuNTUgMi4zOCAwIC44MS4zNCAxLjE5LjggMS43LjU0LjYgMS4yIDEuMzMgMS4yIDIuNzIgMCAxLjQtLjY2IDIuMTMtMS4yIDIuNzItLjQ2LjUyLS44LjktLjggMS43MiAwIDEuNjggMS40OCAyLjM1IDEuNTUgMi4zOGEuNzUuNzUgMCAwIDEgLjQuOTguNzUuNzUgMCAwIDEtLjcuNDZabTUuNjktLjQ2YS43NS43NSAwIDAgMC0uNC0uOThjLS4wNS0uMDMtMS41NC0uNy0xLjU0LTIuMzggMC0uODIuMzQtMS4yLjgtMS43MkEzLjcyIDMuNzIgMCAwIDAgMTQuNSAxMGMwLTEuNC0uNjYtMi4xMy0xLjItMi43Mi0uNDYtLjUyLS44LS44OS0uOC0xLjcgMC0xLjY5IDEuNDgtMi4zNSAxLjU0LTIuMzhhLjc1Ljc1IDAgMCAwIC40LS45OC43NS43NSAwIDAgMC0uOTgtLjRBNC4xOCA0LjE4IDAgMCAwIDExIDUuNTZjMCAxLjQuNjYgMi4xMyAxLjIgMi43Mi40Ni41Mi44LjkuOCAxLjcxIDAgLjgyLS4zNCAxLjItLjggMS43MmEzLjcyIDMuNzIgMCAwIDAtMS4yIDIuNzJjMCAyLjY3IDIuMzUgMy43MSAyLjQ2IDMuNzZhLjc1Ljc1IDAgMCAwIC45OC0uNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhcHRpY1dlYWtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhcHRpY1dlYWtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAxOGEuNS41IDAgMCAxLS4yLS4wNEEzLjk0IDMuOTQgMCAwIDEgNiAxNC40M2MwLTEuMy42LTEuOTcgMS4xMy0yLjU1LjQ5LS41NC44Ny0uOTcuODctMS44OSAwLS45Mi0uMzgtMS4zNC0uODctMS44OEM2LjYgNy41MyA2IDYuODYgNiA1LjU2YTMuOTMgMy45MyAwIDAgMSAyLjMtMy41Mi41LjUgMCAxIDEgLjQuOTJDOC42IDMgNyAzLjczIDcgNS41NmMwIC45Mi4zOCAxLjM0Ljg3IDEuODhDOC40IDguMDMgOSA4LjcgOSAxMGMwIDEuMy0uNiAxLjk3LTEuMTMgMi41NS0uNDkuNTUtLjg3Ljk3LS44NyAxLjg5IDAgMS44NyAxLjY4IDIuNiAxLjcgMi42MWEuNS41IDAgMCAxLS4yLjk2Wm01LjQ2LS4zYS41LjUgMCAwIDAtLjI2LS42NmMtLjAyIDAtMS43LS43NS0xLjctMi42MSAwLS45Mi4zOC0xLjM0Ljg3LTEuODguNTMtLjYgMS4xMy0xLjI2IDEuMTMtMi41NnMtLjYtMS45Ni0xLjEzLTIuNTVDMTIuNCA2LjkgMTIgNi40OCAxMiA1LjU2YzAtMS44MyAxLjYxLTIuNTYgMS43LTIuNmEuNS41IDAgMCAwLS40LS45MmMtLjA5LjA0LTIuMyAxLTIuMyAzLjUyIDAgMS4zLjYgMS45NyAxLjEzIDIuNTUuNDguNTQuODcuOTcuODcgMS44OCAwIC45Mi0uMzggMS4zNS0uODcgMS44OC0uNTMuNi0xLjEzIDEuMjYtMS4xMyAyLjU2IDAgMi41MiAyLjIxIDMuNDkgMi4zIDMuNTNhLjUuNSAwIDAgMCAuNjYtLjI2WlwiXSk7XG5leHBvcnQgY29uc3QgSGFyZERyaXZlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhcmREcml2ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDEwYy0uNTkgMC0xLjE0LjE3LTEuNi40NmwyLjI1LTUuMjVBMiAyIDAgMCAxIDYuNSA0aDcuMWMuNzUgMCAxLjQzLjQxIDEuNzcgMS4wOS41NCAxLjEgMS41MyAzLjIgMi4zMyA1LjQzQTIuOTkgMi45OSAwIDAgMCAxNiAxMEg0Wm0xMiAxYTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAySDMuOTlBMiAyIDAgMCAxIDIgMTR2LTFjMC0xLjEuOS0yIDItMmgxMlptLS41IDMuMjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgSGFyZERyaXZlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYXJkRHJpdmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMTJjMC0uNC4wOC0uOC4yNC0xLjE2bDIuNDEtNS42M0EyIDIgMCAwIDEgNi41IDRoNy4xYy43NSAwIDEuNDMuNDEgMS43NyAxLjA5YTU0LjkzIDU0LjkzIDAgMCAxIDIuNDUgNS43N2MuMTMuMzcuMTkuNzYuMTkgMS4xNHYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0yWm0xMS42LTdINi40OGExIDEgMCAwIDAtLjkyLjZsLTEuOSA0LjQzTDQgMTBoMTJjLjE1IDAgLjMuMDIuNDUuMDVhNTcuMTggNTcuMTggMCAwIDAtMi00LjUyLjk2Ljk2IDAgMCAwLS44Ni0uNTNaTTE2IDE1YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDEyWm0tMS4yNS0xLjI1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhhdEdyYWR1YXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGF0R3JhZHVhdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDE0LjV2LTMuMzRsNCAyLjNhNCA0IDAgMCAwIDQgMGw0LTIuM3YzLjM0YS41LjUgMCAwIDEtLjE1LjM1di4wMWwtLjAzLjAzYTMuNjYgMy42NiAwIDAgMS0uMzguMzJBOS4xIDkuMSAwIDAgMSAxMCAxN2E5LjEgOS4xIDAgMCAxLTUuNzQtMi4wNSAzLjYgMy42IDAgMCAxLS4wOC0uMDdsLS4wMi0uMDNBLjUxLjUxIDAgMCAxIDQgMTQuNVptMTQuNzUtNi4wNy03LjI2IDQuMTdhMyAzIDAgMCAxLTIuOTggMEwyIDguODZ2NC42NGEuNS41IDAgMCAxLTEgMFY4YzAtLjIuMS0uMzYuMjYtLjQ0TDguNTEgMy40YTMgMyAwIDAgMSAyLjk4IDBsNy4yNiA0LjE3YS41LjUgMCAwIDEgMCAuODZaXCJdKTtcbmV4cG9ydCBjb25zdCBIYXRHcmFkdWF0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYXRHcmFkdWF0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgMy40YTMgMyAwIDAgMSAzIDBsNy4yNSA0LjE3YS41LjUgMCAwIDEgMCAuODZMMTYgMTAuMDF2NC40OWEuNS41IDAgMCAxLS4xNS4zNXYuMDFsLS4wMy4wM2EzLjYxIDMuNjEgMCAwIDEtLjM4LjMyQTkuMSA5LjEgMCAwIDEgMTAgMTdhOS4xIDkuMSAwIDAgMS01Ljc0LTIuMDUgMy41NiAzLjU2IDAgMCAxLS4wOC0uMDcuNTMuNTMgMCAwIDEtLjE4LS40di00LjQ4TDIgOC44NnY0LjY0YS41LjUgMCAwIDEtMSAwVjhjMC0uMTkuMS0uMzUuMjYtLjQ0TDguNTEgMy40Wm0zIDkuMmEzIDMgMCAwIDEtMyAwTDUgMTAuNTl2My42OWwuMTcuMTRBOC4xIDguMSAwIDAgMCAxMCAxNmE4LjEgOC4xIDAgMCAwIDUtMS43MnYtMy43bC0zLjUgMi4wMlpNMTEgNC4yN2EyIDIgMCAwIDAtMiAwTDIuNSA4IDkgMTEuNzNhMiAyIDAgMCAwIDIgMEwxNy41IDggMTEgNC4yN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEhhdEdyYWR1YXRpb25BZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGF0R3JhZHVhdGlvbkFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNWgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNVYzLjVabS0zLjUgOS4xIDIuNzktMS42YTUuNSA1LjUgMCAwIDEtNC43LTcuOTcgMyAzIDAgMCAwLTEuMDguMzdMMS4yNiA3LjU2QS41LjUgMCAwIDAgMSA4djUuNWEuNS41IDAgMSAwIDEgMFY4Ljg2bDYuNSAzLjc0YTMgMyAwIDAgMCAzIDBaTTQgMTQuNXYtMy4zNGw0IDIuM2E0IDQgMCAwIDAgNCAwbDQtMi4zdjMuMzRhLjUuNSAwIDAgMS0uMTUuMzV2LjAxbC0uMDMuMDNhMy44OCAzLjg4IDAgMCAxLS4zOC4zMkE5LjEgOS4xIDAgMCAxIDEwIDE3YTkuMSA5LjEgMCAwIDEtNS43NC0yLjA1IDMuODEgMy44MSAwIDAgMS0uMDgtLjA3bC0uMDItLjAzQS41MS41MSAwIDAgMSA0IDE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIYXRHcmFkdWF0aW9uQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIYXRHcmFkdWF0aW9uQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNWgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNVYzLjVabTAgMTAuNzh2LTMuM2MuMzQtLjAzLjY4LS4xIDEtLjE5djMuNzFhLjUuNSAwIDAgMS0uMTUuMzV2LjAxbC0uMDMuMDNhMy42NiAzLjY2IDAgMCAxLS4zOC4zMkE5LjA5IDkuMDkgMCAwIDEgMTAgMTdhOS4wOSA5LjA5IDAgMCAxLTUuNzQtMi4wNSAzLjYgMy42IDAgMCAxLS4wOC0uMDcuNTMuNTMgMCAwIDEtLjE4LS4zOXYtNC40OUwyIDguODZ2NC42NGEuNS41IDAgMCAxLTEgMFY4YzAtLjE5LjEtLjM1LjI2LS40NEw4LjUxIDMuNGEzIDMgMCAwIDEgMS4wNy0uMzdjLS4xOC4zNy0uMzIuNzUtLjQyIDEuMTZhMiAyIDAgMCAwLS4xNi4wOEwyLjUgOCA5IDExLjczYTIgMiAwIDAgMCAyIDBsMS43Ni0xLjAxYy40OC4xNiAxIC4yNiAxLjUzLjI4bC0yLjggMS42YTMgMyAwIDAgMS0yLjk4IDBMNSAxMC41OXYzLjY5bC4xNy4xNEE4LjEgOC4xIDAgMCAwIDEwIDE2YTguMSA4LjEgMCAwIDAgNS0xLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgSGF0R3JhZHVhdGlvblNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGF0R3JhZHVhdGlvblNwYXJrbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTE1LjY2IDEwYy4wNi4wMi4xMy4wNi4xOS4xMWwtNC4zNiAyLjVhMyAzIDAgMCAxLTIuOTggMEwyIDguODZ2NC42NGEuNS41IDAgMSAxLTEgMFY4YzAtLjE5LjEtLjM2LjI2LS40NEw4LjUxIDMuNGEzIDMgMCAwIDEgMS41OC0uNCAxLjQyIDEuNDIgMCAwIDAgLjE3IDEuMzJjLjE3LjI0LjQxLjQzLjcxLjUzbDEuMDYuMzVjLjE1LjA1LjMuMTMuNDcuMjkuMTEuMTEuMi4yNC4zLjQ3bC4zNSAxLjFjLjEuMjQuMjUuNDcuNTIuNjguMTQuMS4zLjE3LjQ1LjIxYTEuMyAxLjMgMCAwIDAgLjc3IDEuNzlsLjc3LjI1Wk00IDE0LjV2LTMuMzRsNCAyLjNhNCA0IDAgMCAwIDQgMGw0LTIuM3YzLjM0YS41LjUgMCAwIDEtLjE1LjM1di4wMWwtLjAzLjAzYTMuODggMy44OCAwIDAgMS0uMzguMzJBOS4xIDkuMSAwIDAgMSAxMCAxN2E5LjEgOS4xIDAgMCAxLTUuNzQtMi4wNSAzLjgxIDMuODEgMCAwIDEtLjA4LS4wN2wtLjAyLS4wM0EuNTEuNTEgMCAwIDEgNCAxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgSGF0R3JhZHVhdGlvblNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hhdEdyYWR1YXRpb25TcGFya2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlptLTMuOSAxLjkyYy4wNS4wNS4xLjExLjEyLjE4djQuMTlhLjUuNSAwIDAgMS0uMTUuMzV2LjAxbC0uMDMuMDNhMy42NiAzLjY2IDAgMCAxLS4zOC4zMkE5LjEgOS4xIDAgMCAxIDEwIDE3YTkuMSA5LjEgMCAwIDEtNS43NC0yLjA1IDMuNiAzLjYgMCAwIDEtLjA4LS4wNy41My41MyAwIDAgMS0uMTgtLjM5di00LjQ5TDIgOC44NnY0LjY0YS41LjUgMCAwIDEtMSAwVjhjMC0uMTkuMS0uMzUuMjYtLjQ0TDguNTEgMy40YTMgMyAwIDAgMSAxLjU4LS40IDEuNDIgMS40MiAwIDAgMCAwIDFBMiAyIDAgMCAwIDkgNC4yN0wyLjUgOCA5IDExLjczYTIgMiAwIDAgMCAyIDBsMy42Ni0yLjFjLjA3LjA0LjE1LjA4LjIzLjFsLjc3LjI2Yy4wOC4wMy4xNi4wOC4yMi4xNFptLTQuMzkgMi40N2EzIDMgMCAwIDEtMi45OCAwTDUgMTAuNTl2My42OWwuMTcuMTRBOC4xIDguMSAwIDAgMCAxMCAxNmE4LjEgOC4xIDAgMCAwIDUtMS43MnYtMy43bC0zLjUgMi4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEhkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjQyIDEyaC0uOTJWOGguOTJjLjg3IDAgMS41OC43IDEuNTggMS41OHYuODRjMCAuODctLjcgMS41OC0xLjU4IDEuNThaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabS0uNSA0Yy4yOCAwIC41LjIyLjUuNVYxMGgyLjVWNy41YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDBWMTFINnYxLjVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNMTEgN2gxLjQyQTIuNTggMi41OCAwIDAgMSAxNSA5LjU4di44NEEyLjU4IDIuNTggMCAwIDEgMTIuNDIgMTNIMTFhLjUuNSAwIDAgMS0uNS0uNXYtNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgSGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgN2MuMjggMCAuNS4yMi41LjVWMTBoMi41VjcuNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwVjExSDZ2MS41YS41LjUgMCAwIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVaTTExIDdhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoMS40MkEyLjU4IDIuNTggMCAwIDAgMTUgMTAuNDJ2LS44NEEyLjU4IDIuNTggMCAwIDAgMTIuNDIgN0gxMVptMS40MiA1aC0uOTJWOGguOTJjLjg3IDAgMS41OC43IDEuNTggMS41OHYuODRjMCAuODctLjcgMS41OC0xLjU4IDEuNThaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBIZHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgNEEyLjc1IDIuNzUgMCAwIDAgMiA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAxNmgxMC41QTIuNzUgMi43NSAwIDAgMCAxOCAxMy4yNXYtNi41QTIuNzUgMi43NSAwIDAgMCAxNS4yNSA0SDQuNzVaTTQuNSA3LjVjLjI4IDAgLjUuMjIuNS41djEuNWgyVjhhLjUuNSAwIDAgMSAxIDB2NGEuNS41IDAgMCAxLTEgMHYtMS41SDVWMTJhLjUuNSAwIDAgMS0xIDBWOGMwLS4yOC4yMi0uNS41LS41Wk05IDhjMC0uMjguMjItLjUuNS0uNWguMjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVIOS41QS41LjUgMCAwIDEgOSAxMlY4Wm0xIDMuNDdjLjU3LS4xMSAxLS42MiAxLTEuMjJ2LS41YzAtLjYtLjQzLTEuMS0xLTEuMjJ2Mi45NVpNMTMgOGMwLS4yOC4yMi0uNS41LS41aDFhMS41IDEuNSAwIDAgMSAuODcgMi43MmwuNiAxLjZhLjUuNSAwIDAgMS0uOTQuMzZsLS42My0xLjY4SDE0VjEyYS41LjUgMCAwIDEtMSAwVjhabTEgMS41aC41YS41LjUgMCAwIDAgMC0xSDE0djFaXCJdKTtcbmV4cG9ydCBjb25zdCBIZHJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hkclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDEwLjVBMi43NSAyLjc1IDAgMCAwIDE4IDEzLjI1di02LjVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNMyA2Ljc1QzMgNS43OCAzLjc4IDUgNC43NSA1aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ni41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg0Ljc1QzMuNzggMTUgMyAxNC4yMiAzIDEzLjI1di02LjVabTEuNS43NWMuMjggMCAuNS4yMi41LjV2MS41aDJWOGEuNS41IDAgMCAxIDEgMHY0YS41LjUgMCAwIDEtMSAwdi0xLjVINVYxMmEuNS41IDAgMCAxLTEgMFY4YzAtLjI4LjIyLS41LjUtLjVaTTkgOGMwLS4yOC4yMi0uNS41LS41aC4yNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg5LjVBLjUuNSAwIDAgMSA5IDEyVjhabTEgMy40N2MuNTctLjExIDEtLjYyIDEtMS4yMnYtLjVjMC0uNi0uNDMtMS4xLTEtMS4yMnYyLjk1Wk0xMyA4YzAtLjI4LjIyLS41LjUtLjVoMWExLjUgMS41IDAgMCAxIC44NyAyLjcybC42IDEuNmEuNS41IDAgMCAxLS45NC4zNmwtLjYzLTEuNjhIMTRWMTJhLjUuNSAwIDAgMS0xIDBWOFptMSAxLjVoLjVhLjUuNSAwIDAgMCAwLTFIMTR2MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhkck9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZHJPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQxIDEuNDJBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoMTAuNTRsMS44NiAxLjg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm04LjM4IDkuOGMtLjQuMzQtLjkxLjU1LTEuNDguNTVIOS41QS41LjUgMCAwIDEgOSAxMlY5LjdsMSAxdi43OGMuMi0uMDQuMzctLjEzLjUyLS4yNWwuNzEuNzFaTTggOC43VjEyYS41LjUgMCAwIDEtMSAwdi0xLjVINVYxMmEuNS41IDAgMCAxLTEgMFY4YS41LjUgMCAwIDEgMSAwdjEuNWgyVjhhLjUuNSAwIDAgMSAuMDYtLjIzTDggOC43Wm00IDEuMDR2LjEzbDEgMVY4YzAtLjI4LjIyLS41LjUtLjVoMWExLjUgMS41IDAgMCAxIC44NyAyLjcybC42IDEuNmEuNS41IDAgMCAxLS45NC4zNmwtLjYzLTEuNjhIMTR2MS4zOGwzLjI1IDMuMjVjLjQ3LS40OS43NS0xLjE1Ljc1LTEuODh2LTYuNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNEg2LjEybDMuNSAzLjVoLjEzYzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1Wm0yLS4yNWguNWEuNS41IDAgMCAwIDAtMUgxNHYxWlwiXSk7XG5leHBvcnQgY29uc3QgSGRyT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZHJPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS40MSAxLjQyQTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDEwLjU0bDEuODYgMS44NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTQuMyAxNUg0Ljc1QzMuNzggMTUgMyAxNC4yMiAzIDEzLjI1di02LjVjMC0uODMuNTctMS41MiAxLjM0LTEuN2wyLjcyIDIuNzJBLjUuNSAwIDAgMCA3IDh2MS41SDVWOGEuNS41IDAgMCAwLTEgMHY0YS41LjUgMCAwIDAgMSAwdi0xLjVoMlYxMmEuNS41IDAgMCAwIDEgMFY4LjdsMSAxVjEyYzAgLjI4LjIyLjUuNS41aC4yNWMuNTcgMCAxLjA5LS4yMSAxLjQ4LS41NkwxNC4zIDE1Wk0xMCAxMC43bC41Mi41M2MtLjE1LjEyLS4zMi4yLS41Mi4yNHYtLjc2Wm0tLjM4LTMuMkwxMiA5Ljg4di0uMTNjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLS4xM1pNMTMgMTAuODhsMSAxVjEwLjVoLjRsLjYzIDEuNjhhLjUuNSAwIDAgMCAuOTQtLjM2bC0uNi0xLjZhMS41IDEuNSAwIDAgMC0uODctMi43MmgtMWEuNS41IDAgMCAwLS41LjV2Mi44OFptNCAyLjM3YzAgLjQ1LS4xNy44Ni0uNDUgMS4xOGwuNy43Yy40Ny0uNDkuNzUtMS4xNS43NS0xLjg4di02LjVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINi4xMmwxIDFoOC4xM2MuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY2LjVaTTE0IDkuNXYtMWguNWEuNS41IDAgMCAxIDAgMUgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYWRwaG9uZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhZHBob25lc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDEwYTcgNyAwIDAgMSAxNCAwdjFoLTMuNWEuNS41IDAgMCAwLS41LjV2NmMwIC4yOC4yMi41LjUuNUgxNmEyIDIgMCAwIDAgMi0ydi02YTggOCAwIDEgMC0xNiAwdjZjMCAxLjEuOSAyIDIgMmgyLjVhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLS41LS41SDN2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFkcGhvbmVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFkcGhvbmVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDEwYTcgNyAwIDAgMSAxNCAwdjFoLTMuNWEuNS41IDAgMCAwLS41LjV2NmMwIC4yOC4yMi41LjUuNUgxNmEyIDIgMCAwIDAgMi0ydi02YTggOCAwIDEgMC0xNiAwdjZjMCAxLjEuOSAyIDIgMmgyLjVhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLS41LS41SDN2LTFabTAgMmgzdjVINGExIDEgMCAwIDEtMS0xdi00Wm0xNCAwdjRhMSAxIDAgMCAxLTEgMWgtMnYtNWgzWlwiXSk7XG5leHBvcnQgY29uc3QgSGVhZHBob25lc1NvdW5kV2F2ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFkcGhvbmVzU291bmRXYXZlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMCAwLTcgN3YxaDEuNWMuMjggMCAuNS4yMi41LjV2NmEuNS41IDAgMCAxLS41LjVINGEyIDIgMCAwIDEtMi0ydi02YTggOCAwIDEgMSAxNiAwdjZhMiAyIDAgMCAxLTIgMmgtLjVhLjUuNSAwIDAgMS0uNS0uNXYtNmMwLS4yOC4yMi0uNS41LS41SDE3di0xYTcgNyAwIDAgMC03LTdabS41IDcuNWEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tMyAxLjVjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0xIDB2LTRjMC0uMjguMjItLjUuNS0uNVptNS41LjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMCAwIDEgMHYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYWRwaG9uZXNTb3VuZFdhdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYWRwaG9uZXNTb3VuZFdhdmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMCAwLTcgN3YxaDEuNWMuMjggMCAuNS4yMi41LjV2NmEuNS41IDAgMCAxLS41LjVINGEyIDIgMCAwIDEtMi0ydi02YTggOCAwIDEgMSAxNiAwdjZhMiAyIDAgMCAxLTIgMmgtLjVhLjUuNSAwIDAgMS0uNS0uNXYtNmMwLS4yOC4yMi0uNS41LS41SDE3di0xYTcgNyAwIDAgMC03LTdaTTMgMTZhMSAxIDAgMCAwIDEgMXYtNUgzdjRabTE0IDB2LTRoLTF2NWExIDEgMCAwIDAgMS0xWm0tNi41LTUuNWEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tMyAxLjVjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0xIDB2LTRjMC0uMjguMjItLjUuNS0uNVptNS41LjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMCAwIDEgMHYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYWRzZXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhZHNldEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTYgNiAwIDAgMC02IDZ2NmEzIDMgMCAwIDAgMyAzaDEuMjdBMiAyIDAgMSAwIDggMTZIN2EyIDIgMCAwIDEtMi0ydi0xaDJhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMC0xLTFINWE1IDUgMCAwIDEgMTAgMGgtMmExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgxYTIgMiAwIDAgMCAyLTJWOGE2IDYgMCAwIDAtNi02WlwiXSk7XG5leHBvcnQgY29uc3QgSGVhZHNldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhZHNldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA4YTYgNiAwIDEgMSAxMiAwdjNhMiAyIDAgMCAxLTIgMmgtMWExIDEgMCAwIDEtMS0xVjlhMSAxIDAgMCAxIDEtMWgyQTUgNSAwIDAgMCA1IDhoMmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg1djFjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDEgMSAuMjcgMUg3YTMgMyAwIDAgMS0zLTNWOFptMTEgMWgtMnYzaDFhMSAxIDAgMCAwIDEtMVY5Wk01IDEyaDJWOUg1djNabTQgNGExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFkc2V0QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYWRzZXRBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0tLjUgNy41YTUuNSA1LjUgMCAwIDAgMS41LS4ydi4yYTIgMiAwIDAgMS0yIDJoLTFhMSAxIDAgMCAxLTEtMXYtMS42Yy43NS4zOCAxLjYuNiAyLjUuNlptLTQuMjUtOWE1LjUgNS41IDAgMCAwLS42NiAxLjAyQTUgNSAwIDAgMCA1IDhoMmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg1djFjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDEgMSAuMjcgMUg3YTMgMyAwIDAgMS0zLTNWOGE2IDYgMCAwIDEgNi4yNS02WlwiXSk7XG5leHBvcnQgY29uc3QgSGVhZHNldEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhZHNldEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0wIDcuNXYtLjAyYy4zNC0uMDMuNjgtLjEgMS0uMTlWMTFhMiAyIDAgMCAxLTIgMmgtMWExIDEgMCAwIDEtMS0xdi0xLjZjLjMyLjE2LjY1LjMgMSAuNFYxMmgxYTEgMSAwIDAgMCAxLTFabS00Ljc1LTlhNS41IDUuNSAwIDAgMC0uNjYgMS4wMkE1IDUgMCAwIDAgNSA4aDJhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFINXYxYzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAxIDEgLjI3IDFIN2EzIDMgMCAwIDEtMy0zVjhhNiA2IDAgMCAxIDYuMjUtNlpNNSAxMmgyVjlINXYzWm00IDRhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgSGVhZHNldFZyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYWRzZXRWckZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41VjVoMi43NWEzLjI1IDMuMjUgMCAwIDEgMy4yNCAzaC41MWMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVIMTh2MS43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC0xLjYxYy0uODYgMC0xLjctLjM0LTIuMy0uOTVsLS42LS42YS4zNS4zNSAwIDAgMC0uNDkgMGwtLjYuNmMtLjYuNi0xLjQzLjk1LTIuMy45NWgtMS42QTMuMjUgMy4yNSAwIDAgMSAyIDEzLjc1VjEyaC0uNWEuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVIMmMuMTQtMS42OCAxLjU0LTMgMy4yNS0zSDhWMy41Wm0yIDUuMjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk01IDEwLjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVabTcuNS0uNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgSGVhZHNldFZyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFkc2V0VnJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjc1IDhhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNNS41IDEwYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabTYuNS41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk04LjUgM2EuNS41IDAgMCAwLS41LjVWNUg1LjI1YTMuMjUgMy4yNSAwIDAgMC0zLjI0IDNIMS41YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41SDJ2MS43NUMyIDE1LjU1IDMuNDYgMTcgNS4yNSAxN2gxLjZjLjg3IDAgMS43LS4zNCAyLjMtLjk1bC42LS42YS4zNS4zNSAwIDAgMSAuNSAwbC41OS42Yy42LjYgMS40NC45NSAyLjMuOTVoMS42MWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjEyaC41YS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNUgxOGEzLjI1IDMuMjUgMCAwIDAtMy4yNS0zSDEyVjMuNWEuNS41IDAgMCAwLS41LS41aC0zWk0xNyA4LjI1djUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtMS42MWMtLjYgMC0xLjE3LS4yNC0xLjYtLjY2bC0uNTktLjZhMS4zNSAxLjM1IDAgMCAwLTEuOSAwbC0uNi42Yy0uNDIuNDItMSAuNjYtMS42LjY2aC0xLjZDNC4wMSAxNiAzIDE1IDMgMTMuNzV2LTUuNUMzIDcuMDEgNCA2IDUuMjUgNmg5LjVDMTUuOTkgNiAxNyA3IDE3IDguMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjM5IDQuMjlhNC4zIDQuMyAwIDAgMC02LjEzLS4wMiA0LjQgNC40IDAgMCAwIC4wMiA2LjJsNi4yNyA2LjMzYy4yNi4yNy42OS4yNy45NSAwbDYuMjQtNi4zYTQuNCA0LjQgMCAwIDAtLjAyLTYuMTkgNC4zIDQuMyAwIDAgMC02LjEzLS4wMWwtLjYuNi0uNi0uNjFaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEwLjUgMTYuOCA2LjI0LTYuM2E0LjQgNC40IDAgMCAwLS4wMi02LjE5IDQuMyA0LjMgMCAwIDAtNi4xMy0uMDFsLS42LjYtLjYtLjYxYTQuMyA0LjMgMCAwIDAtNi4xMy0uMDIgNC40IDQuNCAwIDAgMCAuMDIgNi4ybDYuMjcgNi4zM2MuMjYuMjcuNjkuMjcuOTUgMFpNMTEuMyA1YTMuMyAzLjMgMCAwIDEgNC43MS4wMiAzLjQgMy40IDAgMCAxIC4wMiA0Ljc4bC02IDYuMDYtNi4wNC02LjFhMy40IDMuNCAwIDAgMS0uMDItNC43OCAzLjMgMy4zIDAgMCAxIDQuNy4wMWwuOTcuOTdjLjIuMi41MS4yLjcgMEwxMS4zIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydEJyb2tlbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydEJyb2tlbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjI3IDQuMThhNC4zIDQuMyAwIDAgMC02IC4xIDQuNCA0LjQgMCAwIDAgMCA2LjE4bDYuMjggNi4zNGMuMjYuMjcuNjkuMjcuOTUgMGw2LjI0LTYuM2E0LjQgNC40IDAgMCAwLS4wMi02LjE5IDQuMyA0LjMgMCAwIDAtNi4xMy0uMDFsLS41OS41OS0xLjM0IDIuMDYgMyAyLjUzYS41LjUgMCAwIDEgLjAzLjczbC0yIDJhLjUuNSAwIDEgMS0uNzEtLjdsMS42Mi0xLjYyLTIuOTItMi40NmEuNS41IDAgMCAxLS4xLS42NmwxLjctMi42WlwiXSk7XG5leHBvcnQgY29uc3QgSGVhcnRCcm9rZW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYXJ0QnJva2VuUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xNi43NCAxMC41LTYuMjQgNi4zYS42Ni42NiAwIDAgMS0uOTUgMGwtNi4yNy02LjM0YTQuNCA0LjQgMCAwIDEtLjAyLTYuMTkgNC4zIDQuMyAwIDAgMSA2LjEzLjAybC42LjYxLjA2LS4wNi41NC0uNTQuMS0uMWE0LjMgNC4zIDAgMCAxIDYuMDMuMTEgNC40IDQuNCAwIDAgMSAuMDIgNi4xOVptLTUuNzYtNS4xOC0uMDMuMDMtLjIuMi0uNC40MWEuNS41IDAgMCAxLS4wNS4wNGwtMSAxIDIuMzIgMi4zMWMuMi4yLjIuNTIgMCAuNzFsLTIgMmEuNS41IDAgMCAxLS43LS43bDEuNjQtMS42NS0yLjMxLTIuMzJhLjUuNSAwIDAgMSAwLS43TDkuMjkgNS42bC0uNjEtLjYyYTMuMyAzLjMgMCAwIDAtNC43LS4wMSAzLjQgMy40IDAgMCAwIDAgNC43OGw2LjA1IDYuMSA2LTYuMDZBMy40IDMuNCAwIDAgMCAxNiA1LjAyIDMuMyAzLjMgMCAwIDAgMTEuMyA1bC0uMzIuMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydENpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydENpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMCAxNiAwIDggOCAwIDAgMC0xNiAwWm03LjYtMi4zOS4zOS40LjQtLjRhMi4xMiAyLjEyIDAgMCAxIDMuMDMgMi45NmwtMy4wNSAzLjI3YS41LjUgMCAwIDEtLjc0IDBsLTMuMDYtMy4yOEEyLjExIDIuMTEgMCAwIDEgOS42IDcuNjFaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydENpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhcnRDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTkuNiA3LjYxLjM5LjM5LjQtLjRhMi4xMiAyLjEyIDAgMCAxIDMuMDMgMi45N2wtMy4wNSAzLjI3YS41LjUgMCAwIDEtLjc0IDBsLTMuMDYtMy4yOEEyLjExIDIuMTEgMCAwIDEgOS42IDcuNjFaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtN2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYXJ0Q2lyY2xlSGludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydENpcmNsZUhpbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC40NCAyLjE1YTguMDQgOC4wNCAwIDAgMSAzLjEyIDAgLjUuNSAwIDAgMS0uMi45OCA3LjA0IDcuMDQgMCAwIDAtMi43MyAwIC41LjUgMCAwIDEtLjItLjk4Wm0tNS43IDUuOWEuNS41IDAgMCAxIC40LjU4IDcuMDQgNy4wNCAwIDAgMCAwIDIuNzQuNS41IDAgMCAxLS45OS4yIDguMDQgOC4wNCAwIDAgMSAwLTMuMTMuNS41IDAgMCAxIC41OS0uNFptMTQuNTIgMGEuNS41IDAgMCAxIC41OS4zOSA4LjAzIDguMDMgMCAwIDEgMCAzLjEyLjUuNSAwIDAgMS0uOTgtLjIgNy4wNCA3LjA0IDAgMCAwIDAtMi43My41LjUgMCAwIDEgLjM5LS41OFptLTkuMjEgOS4yMWEuNS41IDAgMCAxIC41OC0uNCA3LjA0IDcuMDQgMCAwIDAgMi43NCAwIC41LjUgMCAxIDEgLjIuOTkgOC4wMyA4LjAzIDAgMCAxLTMuMTMgMCAuNS41IDAgMCAxLS40LS41OVptNi40LTEzLjkxYTguMDQgOC4wNCAwIDAgMSAyLjIgMi4yLjUuNSAwIDEgMS0uODMuNTYgNy4wMyA3LjAzIDAgMCAwLTEuOTMtMS45My41LjUgMCAwIDEgLjU2LS44M1ptLTguMi4xM2EuNS41IDAgMCAxLS4xNC43QTcuMDQgNy4wNCAwIDAgMCA0LjE4IDYuMWEuNS41IDAgMCAxLS44My0uNTYgOC4wNCA4LjA0IDAgMCAxIDIuMi0yLjIuNS41IDAgMCAxIC43LjEzWm0xMC4yNyAxMC4yN2MuMjMuMTYuMjkuNDcuMTMuN2E4LjAzIDguMDMgMCAwIDEtMi4yIDIuMi41LjUgMCAwIDEtLjU2LS44MyA3LjAzIDcuMDMgMCAwIDAgMS45My0xLjkzLjUuNSAwIDAgMSAuNy0uMTRabS0xMy4wNCAwYS41LjUgMCAwIDEgLjcuMTQgNy4wNCA3LjA0IDAgMCAwIDEuOTMgMS45My41LjUgMCAxIDEtLjU2LjgzIDguMDQgOC4wNCAwIDAgMS0yLjItMi4yLjUuNSAwIDAgMSAuMTMtLjdabTkuOTktNi4wOGEyLjA0IDIuMDQgMCAwIDAtMi45NS0uMDhsLS41Mi41LS41Mi0uNWEyLjA0IDIuMDQgMCAwIDAtMi45NSAyLjgzbDMuMSAzLjQyYS41LjUgMCAwIDAgLjc0IDBsMy4xLTMuNDJjLjctLjc4LjctMS45NyAwLTIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydENpcmNsZUhpbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYXJ0Q2lyY2xlSGludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC40NCAyLjE1YTguMDQgOC4wNCAwIDAgMSAzLjEyIDAgLjUuNSAwIDAgMS0uMi45OCA3LjA0IDcuMDQgMCAwIDAtMi43MyAwIC41LjUgMCAwIDEtLjItLjk4Wm0tNS43IDUuOWEuNS41IDAgMCAxIC40LjU4IDcuMDQgNy4wNCAwIDAgMCAwIDIuNzQuNS41IDAgMCAxLS45OS4yIDguMDQgOC4wNCAwIDAgMSAwLTMuMTMuNS41IDAgMCAxIC41OS0uNFptMTQuNTIgMGEuNS41IDAgMCAxIC41OS4zOSA4LjAzIDguMDMgMCAwIDEgMCAzLjEyLjUuNSAwIDAgMS0uOTgtLjIgNy4wNCA3LjA0IDAgMCAwIDAtMi43My41LjUgMCAwIDEgLjM5LS41OFptLTkuMjEgOS4yMWEuNS41IDAgMCAxIC41OC0uNCA3LjA0IDcuMDQgMCAwIDAgMi43NCAwIC41LjUgMCAxIDEgLjIuOTkgOC4wMyA4LjAzIDAgMCAxLTMuMTMgMCAuNS41IDAgMCAxLS40LS41OVptNi40LTEzLjkxYTguMDQgOC4wNCAwIDAgMSAyLjIgMi4yLjUuNSAwIDEgMS0uODMuNTYgNy4wMyA3LjAzIDAgMCAwLTEuOTMtMS45My41LjUgMCAwIDEgLjU2LS44M1ptLTguMi4xM2EuNS41IDAgMCAxLS4xNC43QTcuMDQgNy4wNCAwIDAgMCA0LjE4IDYuMWEuNS41IDAgMCAxLS44My0uNTYgOC4wNCA4LjA0IDAgMCAxIDIuMi0yLjIuNS41IDAgMCAxIC43LjEzWm0xMC4yNyAxMC4yN2MuMjMuMTYuMjkuNDcuMTMuN2E4LjAzIDguMDMgMCAwIDEtMi4yIDIuMi41LjUgMCAwIDEtLjU2LS44MyA3LjAzIDcuMDMgMCAwIDAgMS45My0xLjkzLjUuNSAwIDAgMSAuNy0uMTRabS0xMy4wNCAwYS41LjUgMCAwIDEgLjcuMTQgNy4wNCA3LjA0IDAgMCAwIDEuOTMgMS45My41LjUgMCAxIDEtLjU2LjgzIDguMDQgOC4wNCAwIDAgMS0yLjItMi4yLjUuNSAwIDAgMSAuMTMtLjdabTcuNzQtNS40NWExLjA0IDEuMDQgMCAwIDEgMS41IDEuNDVsLTIuNzIgMy0yLjczLTNhMS4wNCAxLjA0IDAgMCAxIDEuNS0xLjQ1bC44OC44NmMuMi4xOS41LjE5LjcgMGwuODctLjg2Wm0yLjI1LS42M2EyLjA0IDIuMDQgMCAwIDAtMi45NS0uMDhsLS41Mi41LS41Mi0uNWEyLjA0IDIuMDQgMCAwIDAtMi45NSAyLjgzbDMuMSAzLjQyYS41LjUgMCAwIDAgLjc0IDBsMy4xLTMuNDJjLjctLjc4LjctMS45NyAwLTIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDEuMjcgMS4yN2E0LjQgNC40IDAgMCAwLS4xNCA2LjM0bDYuMjcgNi4zNGMuMjYuMjcuNjkuMjcuOTUgMEwxMy4yOCAxNGwzLjg3IDMuODZhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTEzLjkgOC4zNS0yLjA2IDIuMDctOS40NC05LjQ0QTQuMzIgNC4zMiAwIDAgMSA5LjQgNC4zbC42LjYxLjYtLjZhNC4zIDQuMyAwIDAgMSA2LjEzLjAxIDQuNCA0LjQgMCAwIDEgLjAyIDYuMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhcnRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS4yNyAxLjI3YTQuNCA0LjQgMCAwIDAtLjE0IDYuMzRsNi4yNyA2LjM0Yy4yNi4yNy42OS4yNy45NSAwTDEzLjI4IDE0bDMuODcgMy44NmEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptOS43MyAxMS4xMy0yLjU1IDIuNTgtNi4wNC02LjFhMy40IDMuNCAwIDAgMSAuMTQtNC45M2w4LjQ1IDguNDVabTMuNDUtMy40OC0yLjA1IDIuMDYuNzEuNyAyLjA1LTIuMDZhNC40IDQuNCAwIDAgMC0uMDItNi4xOSA0LjMgNC4zIDAgMCAwLTYuMTMtLjAxbC0uNi42LS42LS42MWE0LjMyIDQuMzIgMCAwIDAtNC4xNC0xLjE2bC44OC44OGMuOTEtLjA2IDEuODQuMjcgMi41NS45OGwuOTYuOTdjLjIuMi41MS4yLjcgMEwxMS4zIDVhMy4zIDMuMyAwIDAgMSA0LjcxLjAyIDMuNCAzLjQgMCAwIDEgLjAyIDQuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydFB1bHNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYXJ0UHVsc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4zOSA0LjI5YTQuMyA0LjMgMCAwIDAtNi4xMy0uMDIgNC40IDQuNCAwIDAgMC0uOTQgNC43NEwyLjUgOWgyLjNsMS4zMi0zLjA5YTEuNSAxLjUgMCAwIDEgMi43Ni4wMWwxLjM5IDMuMzIuOTYtMS41NGExLjUgMS41IDAgMCAxIDIuNC0uMTlMMTQuOTMgOWgyLjU3bC4yLjAxYy42MS0xLjU3LjI5LTMuNDItLjk4LTQuN2E0LjMgNC4zIDAgMCAwLTYuMTMtLjAxbC0uNi42LS42LS42MVptLjE2IDEyLjUxTDQuOCAxMmgxYy42IDAgMS4xNS0uMzYgMS4zOC0uOTFsLjMtLjcyIDEuMTQgMi43YTEuNSAxLjUgMCAwIDAgMi42NS4yMmwxLjQzLTIuMjguNDIuNDhjLjI5LjMyLjcuNTEgMS4xMy41MWgxbC00Ljc1IDQuOGEuNjYuNjYgMCAwIDEtLjk1IDBaTTcuOTYgNi4zYS41LjUgMCAwIDAtLjkyIDBMNS40NyAxMEgyLjVhLjUuNSAwIDAgMCAwIDFoMy4zYS41LjUgMCAwIDAgLjQ2LS4zTDcuNSA3Ljc5bDIuMDQgNC45YS41LjUgMCAwIDAgLjg4LjA4bDIuMTUtMy40MyAxLjMgMS40OWMuMS4xLjI0LjE3LjM4LjE3aDMuMjVhLjUuNSAwIDAgMCAwLTFoLTMuMDJsLTEuNi0xLjgzYS41LjUgMCAwIDAtLjguMDZsLTIgMy4xOC0yLjEyLTUuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYXJ0UHVsc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYXJ0UHVsc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEwLjUgMTYuOCA0Ljc1LTQuOGgtMWExLjUgMS41IDAgMCAxLS4zNi0uMDRsLTMuODYgMy45LTMuODctMy45YTEuNSAxLjUgMCAwIDEtLjM2LjA0aC0xbDQuNzUgNC44Yy4yNi4yNy42OS4yNy45NSAwWm02LjIyLTEyLjQ5YTQuNDIgNC40MiAwIDAgMSAuOTggNC43TDE3LjUgOWgtLjg5Yy42Ny0xLjI4LjQ4LTIuOS0uNi0zLjk4QTMuMyAzLjMgMCAwIDAgMTEuMyA1bC0uOTUuOTZhLjUuNSAwIDAgMS0uNzEgMEw4LjY4IDVhMy4zIDMuMyAwIDAgMC00LjctLjAxQTMuNCAzLjQgMCAwIDAgMy40MSA5SDIuNWwtLjE4LjAxYTQuNCA0LjQgMCAwIDEgLjk0LTQuNzQgNC4zIDQuMyAwIDAgMSA2LjEzLjAybC42LjYxLjYtLjYuMS0uMWE0LjMgNC4zIDAgMCAxIDYuMDMuMTFabS04Ljc2IDJhLjUuNSAwIDAgMC0uOTIgMEw1LjQ3IDEwSDIuNWEuNS41IDAgMCAwIDAgMWgzLjNhLjUuNSAwIDAgMCAuNDYtLjNMNy41IDcuNzlsMi4wNCA0LjlhLjUuNSAwIDAgMCAuODguMDhsMi4xNS0zLjQzIDEuMyAxLjQ5Yy4xLjEuMjQuMTcuMzguMTdoMy4yNWEuNS41IDAgMCAwIDAtMWgtMy4wMmwtMS42LTEuODNhLjUuNSAwIDAgMC0uOC4wNmwtMiAzLjE4LTIuMTItNS4xWlwiXSk7XG5leHBvcnQgY29uc3QgSGVhcnRQdWxzZUNoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydFB1bHNlQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMzkgNC4yOWE0LjMgNC4zIDAgMCAwLTYuMTMtLjAyIDQuNCA0LjQgMCAwIDAtLjk0IDQuNzRMMi41IDloMi4zbDEuMzItMy4wOWExLjUgMS41IDAgMCAxIDIuNzYuMDFsMS4zOSAzLjMyLjk2LTEuNTRhMS41IDEuNSAwIDAgMSAyLjQtLjE5TDE0LjkzIDloMi41N2wuMi4wMWMuNjEtMS41Ny4yOS0zLjQyLS45OC00LjdhNC4zIDQuMyAwIDAgMC02LjEzLS4wMWwtLjYuNi0uNi0uNjFabTMuNDkgMy44OC45NSAxLjA5Yy0uMzQuMS0uNjYuMjUtLjk3LjQxbC0uMy0uMzMtLjU4LjkzYTUuNSA1LjUgMCAwIDAtMS43NiAyLjY4LjUuNSAwIDAgMS0uNjgtLjI2TDcuNSA3LjhsLTEuMjQgMi45YS41LjUgMCAwIDEtLjQ2LjMxSDIuNWEuNS41IDAgMCAxIDAtMWgyLjk3bDEuNTctMy43YS41LjUgMCAwIDEgLjkyIDBsMi4xMyA1LjExIDEuOTktMy4xOGEuNS41IDAgMCAxIC44LS4wNlptLTMgNS44Mi4xNC4wMWE1LjU5IDUuNTkgMCAwIDAgLjQ4IDIuOC42Ni42NiAwIDAgMS0uOTUgMEw0LjggMTJoMWMuNiAwIDEuMTUtLjM2IDEuMzgtLjkxbC4zLS43MiAxLjE0IDIuN2MuMjEuNTIuNy44OCAxLjI2LjkyWk0yMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYXJ0UHVsc2VDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hlYXJ0UHVsc2VDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEyLjg4IDguMTcuOTUgMS4wOWMtLjM0LjEtLjY2LjI1LS45Ny40MWwtLjMtLjMzLS41OC45M2E1LjUgNS41IDAgMCAwLTEuNzYgMi42OC41LjUgMCAwIDEtLjY4LS4yNkw3LjUgNy44bC0xLjI0IDIuOWEuNS41IDAgMCAxLS40Ni4zMUgyLjVhLjUuNSAwIDAgMSAwLTFoMi45N2wxLjU3LTMuN2EuNS41IDAgMCAxIC45MiAwbDIuMTMgNS4xMSAxLjk5LTMuMThhLjUuNSAwIDAgMSAuOC0uMDZabTMuODQtMy44NmE0LjQyIDQuNDIgMCAwIDEgLjk4IDQuN0wxNy41IDloLS44OWMuNjctMS4yOC40OC0yLjktLjYtMy45OEEzLjMgMy4zIDAgMCAwIDExLjMgNWwtLjk1Ljk2YS41LjUgMCAwIDEtLjcxIDBMOC42OCA1YTMuMyAzLjMgMCAwIDAtNC43LS4wMUEzLjQgMy40IDAgMCAwIDMuNDEgOUgyLjVsLS4xOC4wMWE0LjQgNC40IDAgMCAxIC45NC00Ljc0IDQuMyA0LjMgMCAwIDEgNi4xMy4wMmwuNi42MS42LS42LjEtLjFhNC4zIDQuMyAwIDAgMSA2LjAzLjExWk00Ljg2IDEybDQuNzggNC44NWEuNS41IDAgMCAwIC43MS0uN2wtNC4xNC00LjJhMS41IDEuNSAwIDAgMS0uNDEuMDVoLS45NFpNMjAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBIZWFydFB1bHNlRXJyb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhcnRQdWxzZUVycm9yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMzkgNC4yOWE0LjMgNC4zIDAgMCAwLTYuMTMtLjAyIDQuNCA0LjQgMCAwIDAtLjk0IDQuNzRMMi41IDloMi4zbDEuMzItMy4wOWExLjUgMS41IDAgMCAxIDIuNzYuMDFsMS4zOSAzLjMyLjk2LTEuNTRhMS41IDEuNSAwIDAgMSAyLjQtLjE5TDE0LjkzIDloMi41N2wuMi4wMWMuNjEtMS41Ny4yOS0zLjQyLS45OC00LjdhNC4zIDQuMyAwIDAgMC02LjEzLS4wMWwtLjYuNi0uNi0uNjFabTMuNDkgMy44OC45NSAxLjA5Yy0uMzQuMS0uNjYuMjUtLjk3LjQxbC0uMy0uMzMtLjU4LjkzYTUuNSA1LjUgMCAwIDAtMS43NiAyLjY4LjUuNSAwIDAgMS0uNjgtLjI2TDcuNSA3LjhsLTEuMjQgMi45YS41LjUgMCAwIDEtLjQ2LjMxSDIuNWEuNS41IDAgMCAxIDAtMWgyLjk3bDEuNTctMy43YS41LjUgMCAwIDEgLjkyIDBsMi4xMyA1LjExIDEuOTktMy4xOGEuNS41IDAgMCAxIC44LS4wNlptLTMgNS44Mi4xNC4wMWE1LjU5IDUuNTkgMCAwIDAgLjQ4IDIuOC42Ni42NiAwIDAgMS0uOTUgMEw0LjggMTJoMWMuNiAwIDEuMTUtLjM2IDEuMzgtLjkxbC4zLS43MiAxLjE0IDIuN2MuMjEuNTIuNy44OCAxLjI2LjkyWk0yMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNS41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYXJ0UHVsc2VFcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhcnRQdWxzZUVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMi44OCA4LjE3Ljk1IDEuMDljLS4zNC4xLS42Ni4yNS0uOTcuNDFsLS4zLS4zMy0uNTguOTNhNS41IDUuNSAwIDAgMC0xLjc2IDIuNjguNS41IDAgMCAxLS42OC0uMjZMNy41IDcuOGwtMS4yNCAyLjlhLjUuNSAwIDAgMS0uNDYuMzFIMi41YS41LjUgMCAwIDEgMC0xaDIuOTdsMS41Ny0zLjdhLjUuNSAwIDAgMSAuOTIgMGwyLjEzIDUuMTEgMS45OS0zLjE4YS41LjUgMCAwIDEgLjgtLjA2Wm0zLjg0LTMuODZhNC40MiA0LjQyIDAgMCAxIC45OCA0LjdMMTcuNSA5aC0uODljLjY3LTEuMjguNDgtMi45LS42LTMuOThBMy4zIDMuMyAwIDAgMCAxMS4zIDVsLS45NS45NmEuNS41IDAgMCAxLS43MSAwTDguNjggNWEzLjMgMy4zIDAgMCAwLTQuNy0uMDFBMy40IDMuNCAwIDAgMCAzLjQxIDlIMi41bC0uMTguMDFhNC40IDQuNCAwIDAgMSAuOTQtNC43NCA0LjMgNC4zIDAgMCAxIDYuMTMuMDJsLjYuNjEuNi0uNi4xLS4xYTQuMyA0LjMgMCAwIDEgNi4wMy4xMVpNNC44NiAxMmw0Ljc4IDQuODVhLjUuNSAwIDAgMCAuNzEtLjdsLTQuMTQtNC4yYTEuNSAxLjUgMCAwIDEtLjQxLjA1aC0uOTRaTTIwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE1LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgSGVhcnRQdWxzZVdhcm5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGVhcnRQdWxzZVdhcm5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yNiA0LjI3YTQuMyA0LjMgMCAwIDEgNi4xMy4wMmwuNi42MS42LS42YTQuMyA0LjMgMCAwIDEgNi4xMy4wMSA0LjQyIDQuNDIgMCAwIDEgLjk4IDQuN0wxNy41IDloLTEuMjZhMiAyIDAgMCAwLTIuMTUtLjk2bC0uNDYtLjUzYTEuNSAxLjUgMCAwIDAtMi40LjJsLS45NiAxLjUzLTEuMzktMy4zMmExLjUgMS41IDAgMCAwLTIuNzYgMEw0LjgxIDlIMi41bC0uMTguMDFhNC40IDQuNCAwIDAgMSAuOTQtNC43NFpNOS4yMiAxNi4xbDEuMDYtMi4xM2ExLjUgMS41IDAgMCAxLTEuNjYtLjlsLTEuMTMtMi43LS4zLjcyQTEuNSAxLjUgMCAwIDEgNS44IDEyaC0xbDQuMzEgNC4zNi4xLS4yNlptMy41LTdjLjExLS4yMy4yNy0uNDMuNDUtLjZsLS4zLS4zM2EuNS41IDAgMCAwLS44LjA2bC0xLjk4IDMuMTgtMi4xMy01LjFhLjUuNSAwIDAgMC0uOTIgMEw1LjQ3IDEwSDIuNWEuNS41IDAgMCAwIDAgMWgzLjNhLjUuNSAwIDAgMCAuNDYtLjNMNy41IDcuNzlsMi4wNCA0LjlhLjUuNSAwIDAgMCAuODguMDhsMi4xNS0zLjQzLjAyLjAyLjEyLS4yNVptLjg4LjQ1LTMuNSA3QTEgMSAwIDAgMCAxMSAxOGg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE1IDExLjV2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMSAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhlYXJ0UHVsc2VXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZWFydFB1bHNlV2FybmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuNzEgOS4xYy4xMi0uMjMuMjgtLjQzLjQ2LS42bC0uMy0uMzNhLjUuNSAwIDAgMC0uOC4wNmwtMS45OCAzLjE4LTIuMTMtNS4xYS41LjUgMCAwIDAtLjkyIDBMNS40NyAxMEgyLjVhLjUuNSAwIDAgMCAwIDFoMy4zYS41LjUgMCAwIDAgLjQ2LS4zTDcuNSA3Ljc5bDIuMDQgNC45YS41LjUgMCAwIDAgLjg4LjA4bDIuMTUtMy40My4wMi4wMi4xMi0uMjVaTTQuOCAxMmw0LjMxIDQuMzYuMS0uMjYuMzYtLjctMy40LTMuNDRhMS41IDEuNSAwIDAgMS0uMzcuMDRoLTFabTEyLjktMi45OWMuNjEtMS41Ny4yOS0zLjQyLS45OC00LjdhNC4zIDQuMyAwIDAgMC02LjEzLS4wMWwtLjYuNi0uNi0uNjFhNC4zIDQuMyAwIDAgMC02LjEzLS4wMiA0LjQgNC40IDAgMCAwLS45NCA0Ljc0TDIuNSA5aC45MmEzLjQgMy40IDAgMCAxIC41NS00LjAyIDMuMyAzLjMgMCAwIDEgNC43LjAxbC45Ny45N2MuMi4yLjUxLjIuNyAwTDExLjMgNWEzLjMgMy4zIDAgMCAxIDQuNzEuMDIgMy40MSAzLjQxIDAgMCAxIC42IDMuOThoLjg5bC4yLjAxWm0tNC4xLjU0LTMuNSA3QTEgMSAwIDAgMCAxMSAxOGg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE1IDExLjV2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMSAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhleGFnb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGV4YWdvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjgzIDNhMS41IDEuNSAwIDAgMC0xLjMuNzVsLTMuMTggNS41YTEuNSAxLjUgMCAwIDAgMCAxLjVsMy4xOCA1LjVjLjI2LjQ2Ljc2Ljc1IDEuMy43NWg2LjM1YTEuNSAxLjUgMCAwIDAgMS4zLS43NWwzLjE3LTUuNWExLjUgMS41IDAgMCAwIDAtMS41bC0zLjE3LTUuNWExLjUgMS41IDAgMCAwLTEuMy0uNzVINi44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEhleGFnb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hleGFnb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuODMgNGEuNS41IDAgMCAwLS40NC4yNWwtMy4xNyA1LjVhLjUuNSAwIDAgMCAwIC41bDMuMTcgNS41YS41LjUgMCAwIDAgLjQ0LjI1aDYuMzVhLjUuNSAwIDAgMCAuNDMtLjI1bDMuMTctNS41YS41LjUgMCAwIDAgMC0uNWwtMy4xNy01LjVhLjUuNSAwIDAgMC0uNDMtLjI1SDYuODNabS0xLjMtLjI1QTEuNSAxLjUgMCAwIDEgNi44MyAzaDYuMzVjLjUzIDAgMS4wMy4yOSAxLjMuNzVsMy4xNyA1LjVhMS41IDEuNSAwIDAgMSAwIDEuNWwtMy4xNyA1LjVhMS41IDEuNSAwIDAgMS0xLjMuNzVINi44M2ExLjUgMS41IDAgMCAxLTEuMy0uNzVsLTMuMTgtNS41YTEuNSAxLjUgMCAwIDEgMC0xLjVsMy4xOC01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIZXhhZ29uU3BhcmtsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZXhhZ29uU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTYuNSAxMmMtLjI3IDAtLjUzLS4wOC0uNzQtLjIzYTEuNCAxLjQgMCAwIDEtLjQ4LS42MmwtLjI2LS44YS41Mi41MiAwIDAgMC0uMTQtLjIyLjY0LjY0IDAgMCAwLS4yMi0uMTRsLS43Ny0uMjVjLS4yNy0uMS0uNDktLjI2LS42NS0uNDhhMS4zIDEuMyAwIDAgMS0uMTItMS4zIDEuMzIgMS4zMiAwIDAgMS0uNDUtLjIyIDEuNTEgMS41MSAwIDAgMS0uNTItLjY5bC0uMzYtMS4wOWExLjI3IDEuMjcgMCAwIDAtLjI5LS40NyAxLjMgMS4zIDAgMCAwLS40Ny0uM2wtMS4wNi0uMzRBMS40MSAxLjQxIDAgMCAxIDkgMy41YzAtLjE4LjAzLS4zNC4wOS0uNUg2LjgzYTEuNSAxLjUgMCAwIDAtMS4zLjc1bC0zLjE4IDUuNWExLjUgMS41IDAgMCAwIDAgMS41bDMuMTggNS41Yy4yNi40Ni43Ni43NSAxLjMuNzVoNi4zNWExLjUgMS41IDAgMCAwIDEuMy0uNzVsMi40OS00LjMyYy0uMTUuMDUtLjMuMDctLjQ3LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgSGV4YWdvblNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hleGFnb25TcGFya2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTYuNSAxMmMtLjIyIDAtLjQ0LS4wNi0uNjMtLjE2bC0yLjI2IDMuOTFhLjUuNSAwIDAgMS0uNDMuMjVINi44M2EuNS41IDAgMCAxLS40NC0uMjVsLTMuMTctNS41YS41LjUgMCAwIDEgMC0uNWwzLjE3LTUuNUEuNS41IDAgMCAxIDYuODMgNGgyLjI2YTEuNDIgMS40MiAwIDAgMSAwLTFINi44M2ExLjUgMS41IDAgMCAwLTEuMy43NWwtMy4xOCA1LjVhMS41IDEuNSAwIDAgMCAwIDEuNWwzLjE4IDUuNWMuMjYuNDYuNzYuNzUgMS4zLjc1aDYuMzVhMS41IDEuNSAwIDAgMCAxLjMtLjc1bDIuNDktNC4zMmMtLjE1LjA1LS4zLjA3LS40Ny4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEhleGFnb25UaHJlZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZXhhZ29uVGhyZWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy43NSAyLjEzYy4yMy0uNC42NC0uNjMgMS4wOS0uNjNIOGMuNDQgMCAuODYuMjQgMS4wOC42M2wxLjU4IDIuNzVjLjIzLjM4LjIzLjg2IDAgMS4yNEw5LjEgOC44N2MtLjIyLjQtLjY0LjYzLTEuMDguNjNINC44NGMtLjQ1IDAtLjg2LS4yNC0xLjA5LS42M0wyLjE3IDYuMTJhMS4yNSAxLjI1IDAgMCAxIDAtMS4yNGwxLjU4LTIuNzVaTTEyLjYgNmMtLjQ1IDAtLjg2LjI0LTEuMDkuNjNMOS45MyA5LjM4Yy0uMjIuMzgtLjIyLjg2IDAgMS4yNGwxLjU4IDIuNzVjLjIzLjQuNjQuNjMgMS4wOS42M2gzLjE3Yy40NCAwIC44Ni0uMjQgMS4wOC0uNjNsMS41OC0yLjc1Yy4yMy0uMzguMjMtLjg2IDAtMS4yNGwtMS41OC0yLjc1QTEuMjUgMS4yNSAwIDAgMCAxNS43NyA2SDEyLjZabS04Ljg1IDUuMTNjLjIzLS40LjY0LS42MyAxLjA5LS42M0g4Yy40NCAwIC44Ni4yNCAxLjA4LjYzbDEuNTggMi43NWMuMjMuMzguMjMuODYgMCAxLjI0TDkuMSAxNy44N2MtLjIyLjQtLjY0LjYzLTEuMDguNjNINC44NGMtLjQ1IDAtLjg2LS4yNC0xLjA5LS42M2wtMS41OC0yLjc1YTEuMjUgMS4yNSAwIDAgMSAwLTEuMjRsMS41OC0yLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgSGV4YWdvblRocmVlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIZXhhZ29uVGhyZWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNjIgMi42M2EuMjUuMjUgMCAwIDEgLjIyLS4xM0g4Yy4wOSAwIC4xNy4wNS4yMS4xM2wxLjU5IDIuNzVjLjA0LjA3LjA0LjE3IDAgLjI0TDguMjIgOC4zN2EuMjUuMjUgMCAwIDEtLjIxLjEzSDQuODRhLjI1LjI1IDAgMCAxLS4yMi0uMTNMMy4wMyA1LjYyYS4yNS4yNSAwIDAgMSAwLS4yNGwxLjU5LTIuNzVabS4yMi0xLjEzYy0uNDUgMC0uODYuMjQtMS4wOS42M0wyLjE3IDQuODhjLS4yMy4zOC0uMjMuODYgMCAxLjI0bDEuNTggMi43NWMuMjMuNC42NC42MyAxLjA5LjYzSDhjLjQ0IDAgLjg2LS4yNCAxLjA4LS42M2wxLjU4LTIuNzVjLjIzLS4zOC4yMy0uODYgMC0xLjI0TDkuMSAyLjEzQTEuMjUgMS4yNSAwIDAgMCA4IDEuNUg0Ljg0Wk0xMi42IDdhLjI1LjI1IDAgMCAwLS4yMi4xM2wtMS41OSAyLjc1YS4yNS4yNSAwIDAgMCAwIC4yNGwxLjU5IDIuNzVjLjA0LjA4LjEzLjEzLjIyLjEzaDMuMTdjLjA5IDAgLjE3LS4wNS4yMS0uMTNsMS41OS0yLjc1YS4yNS4yNSAwIDAgMCAwLS4yNGwtMS41OS0yLjc1YS4yNS4yNSAwIDAgMC0uMjEtLjEzSDEyLjZabS0xLjA5LS4zN2MuMjMtLjQuNjQtLjYzIDEuMDktLjYzaDMuMTdjLjQ0IDAgLjg2LjI0IDEuMDguNjNsMS41OCAyLjc1Yy4yMy4zOC4yMy44NiAwIDEuMjRsLTEuNTggMi43NWMtLjIyLjQtLjY0LjYzLTEuMDguNjNIMTIuNmMtLjQ1IDAtLjg2LS4yNC0xLjA5LS42M2wtMS41OC0yLjc1YTEuMjUgMS4yNSAwIDAgMSAwLTEuMjRsMS41OC0yLjc1Wk00Ljg0IDExLjVhLjI1LjI1IDAgMCAwLS4yMi4xM2wtMS41OSAyLjc1YS4yNS4yNSAwIDAgMCAwIC4yNGwxLjU5IDIuNzVjLjA0LjA4LjEzLjEzLjIyLjEzSDhjLjA5IDAgLjE3LS4wNS4yMS0uMTNsMS41OS0yLjc1YS4yNS4yNSAwIDAgMCAwLS4yNGwtMS41OS0yLjc1YS4yNS4yNSAwIDAgMC0uMjEtLjEzSDQuODRabS0xLjA5LS4zN2MuMjMtLjQuNjQtLjYzIDEuMDktLjYzSDhjLjQ0IDAgLjg2LjI0IDEuMDguNjNsMS41OCAyLjc1Yy4yMy4zOC4yMy44NiAwIDEuMjRMOS4xIDE3Ljg3Yy0uMjIuNC0uNjQuNjMtMS4wOC42M0g0Ljg0Yy0uNDUgMC0uODYtLjI0LTEuMDktLjYzbC0xLjU4LTIuNzVhMS4yNSAxLjI1IDAgMCAxIDAtMS4yNGwxLjU4LTIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBIaWdobGlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGlnaGxpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyQzMuNjcgMiAzIDIuNjcgMyAzLjV2M0MzIDcuMzMgMy42NyA4IDQuNSA4aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk02IDExYTIgMiAwIDAgMS0yLTJoMTJhMiAyIDAgMCAxLTIgMkg2Wm0wIDFoOHYxLjA3YTIgMiAwIDAgMS0xLjEgMS44bC02LjE4IDMuMDhBLjUuNSAwIDAgMSA2IDE3LjVWMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBIaWdobGlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hpZ2hsaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDJjLjI4IDAgLjUuMjIuNS41djRjMCAuMjguMjIuNS41LjVoMTFhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAxIDEgMHY0YzAgLjY1LS40MiAxLjItMSAxLjQxVjlhMiAyIDAgMCAxLTIgMnYyLjA3YTIgMiAwIDAgMS0xLjEgMS44bC02LjE4IDMuMDhBLjUuNSAwIDAgMSA2IDE3LjVWMTFhMiAyIDAgMCAxLTItMlY3LjkxYy0uNTgtLjItMS0uNzYtMS0xLjQxdi00YzAtLjI4LjIyLS41LjUtLjVaTTUgOHYxYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjhINVptMiAzdjUuN2w1LjQ1LTIuNzNhMSAxIDAgMCAwIC41NS0uOVYxMUg3WlwiXSk7XG5leHBvcnQgY29uc3QgSGlnaGxpZ2h0QWNjZW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hpZ2hsaWdodEFjY2VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi41IDN2NGEuNS41IDAgMCAxLS41LjVINGEuNS41IDAgMCAxLS41LS41VjNoMTNabS0xMCA3LjV2N2w2LjQ1LTMuMWExIDEgMCAwIDAgLjU1LS45di0zaC03WlwiXSk7XG5leHBvcnQgY29uc3QgSGlnaGxpZ2h0TGlua0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIaWdobGlnaHRMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyQzMuNjcgMiAzIDIuNjcgMyAzLjV2M0MzIDcuMzMgMy42NyA4IDQuNSA4aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk02IDExYTIgMiAwIDAgMS0yLTJoMTJhMiAyIDAgMCAxLTIgMkg2Wm0wIDFoNi41YTMuNSAzLjUgMCAwIDAtMy4yOSA0LjdsLTIuNDkgMS4yNUEuNS41IDAgMCAxIDYgMTcuNVYxMlptNi41IDFhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhpZ2hsaWdodExpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hpZ2hsaWdodExpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAyYy4yOCAwIC41LjIyLjUuNXY0YzAgLjI4LjIyLjUuNS41aDExYS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMSAxIDB2NGMwIC42NS0uNDIgMS4yLTEgMS40MVY5YTIgMiAwIDAgMS0yIDJ2MWgtMXYtMUg3djUuN2wyLTEuMDFjLjAyLjM1LjEuNy4yMSAxLjAxbC0yLjQ5IDEuMjVBLjUuNSAwIDAgMSA2IDE3LjVWMTFhMiAyIDAgMCAxLTItMlY3LjkxYy0uNTgtLjItMS0uNzYtMS0xLjQxdi00YzAtLjI4LjIyLS41LjUtLjVaTTUgOHYxYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjhINVptNy41IDVhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhpZ2h3YXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGlnaHdheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDIuODVhLjc1Ljc1IDAgMCAwLTEuNS0uMmwtMiAxNC41YS43NS43NSAwIDEgMCAxLjUuMmwyLTE0LjVabTkuNS0uMmEuNzUuNzUgMCAwIDAtMS41LjJsMiAxNC41YS43NS43NSAwIDAgMCAxLjUtLjJsLTItMTQuNVptLTQuNzUuMWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wm0tMS41IDguNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41Wm0wIDMuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgSGlnaHdheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGlnaHdheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyLjU3YS41LjUgMCAwIDAtMS0uMTRsLTIgMTVhLjUuNSAwIDAgMCAxIC4xNGwyLTE1Wm05LS4xNGEuNS41IDAgMCAwLTEgLjE0bDIgMTVhLjUuNSAwIDAgMCAxLS4xNGwtMi0xNVptLTQuNS4wN2EuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWm0tMSA5YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNabTAgM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtMSAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgSGlzdG9yeUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIaXN0b3J5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDRhNiA2IDAgMSAxLTYgNS43OC43NS43NSAwIDEgMC0xLjUtLjA2VjEwQTcuNSA3LjUgMCAxIDAgNSA0LjQxVjMuMjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjNjMCAuNDEuMzQuNzUuNzUuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVINi4wM0E1Ljk4IDUuOTggMCAwIDEgMTAgNFptLjUgMi4yNWEuNzUuNzUgMCAwIDAtMS41IDB2NGMwIC40MS4zNC43NS43NS43NWgzYS43NS43NSAwIDAgMCAwLTEuNUgxMC41VjYuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIaXN0b3J5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIaXN0b3J5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA0YTYgNiAwIDEgMS01Ljk4IDUuNTQuNS41IDAgMSAwLTEtLjA4QTcgNyAwIDEgMCA1IDUuMVYzLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDUuNTNjMS4xLTEuMjMgMi43LTIgNC40Ny0yWm0wIDIuNWEuNS41IDAgMCAwLTEgMHY0YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFIMTBWNi41WlwiXSk7XG5leHBvcnQgY29uc3QgSGlzdG9yeURpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSGlzdG9yeURpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNGE2IDYgMCAwIDEgNS45NSA1LjJjLjU1LjE0IDEuMDguMzggMS41NS42OUE3LjUgNy41IDAgMCAwIDUgNC40VjMuMjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjNjMCAuNDEuMzQuNzUuNzUuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVINi4wM0E1Ljk4IDUuOTggMCAwIDEgMTAgNFptLjI2IDdhNS41MiA1LjUyIDAgMCAxIDEuOTUtMS41SDEwLjVWNi4yNWEuNzUuNzUgMCAwIDAtMS41IDB2NGMwIC40MS4zNC43NS43NS43NWguNVptLS4zNyA2LjVjLS4zLS40Ny0uNTUtMS0uNy0xLjU1QTYgNiAwIDAgMSA0IDkuNzhhLjc1Ljc1IDAgMSAwLTEuNS0uMDZWMTBhNy41IDcuNSAwIDAgMCA3LjM5IDcuNVptOS4xMS0zYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhpc3RvcnlEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIaXN0b3J5RGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNGE2IDYgMCAwIDEgNS45NSA1LjJjLjM2LjEuNy4yMyAxLjA0LjRBNyA3IDAgMCAwIDUgNS4xVjMuNWEuNS41IDAgMCAwLTEgMHYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFINS41M2MxLjEtMS4yMyAyLjctMiA0LjQ3LTJabS4yNiA3Yy4zMS0uMzguNjctLjcyIDEuMDgtMUgxMFY2LjVhLjUuNSAwIDAgMC0xIDB2NGMwIC4yOC4yMi41LjUuNWguNzZabS0uNjcgNS45OWMtLjE2LS4zMy0uMy0uNjgtLjQtMS4wNGE2IDYgMCAwIDEtNS4xNy02LjQxLjUuNSAwIDEgMC0xLS4wOEE3IDcgMCAwIDAgOS41OSAxN1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgMi4zOWExLjUgMS41IDAgMCAwLTIgMEwzLjUgNy4zM2MtLjMyLjI4LS41LjY5LS41IDEuMTJ2Ny4wNWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOC40NWMwLS40My0uMTgtLjg0LS41LTEuMTJMMTEgMi4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMi4zOWExLjUgMS41IDAgMCAxIDIgMGw1LjUgNC45NGMuMzIuMjguNS42OS41IDEuMTJ2Ny4wNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTNhMS41IDEuNSAwIDAgMS0xLjUtMS41VjEyYS41LjUgMCAwIDAtLjUtLjVIOWEuNS41IDAgMCAwLS41LjV2My41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg0LjVBMS41IDEuNSAwIDAgMSAzIDE1LjVWOC40NWMwLS40My4xOC0uODQuNS0xLjEyTDkgMi4zOVptMS4zMy43NGEuNS41IDAgMCAwLS42NiAwbC01LjUgNC45NGEuNS41IDAgMCAwLS4xNy4zOHY3LjA1YzAgLjI4LjIyLjUuNS41SDdhLjUuNSAwIDAgMCAuNS0uNVYxMmMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41djMuNWMwIC4yOC4yMi41LjUuNWgyLjVhLjUuNSAwIDAgMCAuNS0uNVY4LjQ1YS41LjUgMCAwIDAtLjE3LS4zOGwtNS41LTQuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgMi4zOWExLjUgMS41IDAgMCAwLTIgMEwzLjUgNy4zM2MtLjMyLjI4LS41LjY5LS41IDEuMTJ2Ny4wNWMwIC44My42NyAxLjUgMS41IDEuNWg1LjFBNS41IDUuNSAwIDAgMSAxNyA5LjZWOC40NWMwLS40My0uMTgtLjg0LS41LTEuMTJMMTEgMi4zOVptOCAxMi4xMWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMi4zOWExLjUgMS41IDAgMCAxIDIgMGw1LjUgNC45NGMuMzIuMjguNS42OS41IDEuMTJWOS42Yy0uMzItLjE2LS42NS0uMy0xLS40di0uNzVhLjUuNSAwIDAgMC0uMTctLjM4bC01LjUtNC45NGEuNS41IDAgMCAwLS42NiAwbC01LjUgNC45NGEuNS41IDAgMCAwLS4xNy4zOHY3LjA1YzAgLjI4LjIyLjUuNS41aDQuN2MuMS4zNS4yNC42OC40IDFINC41QTEuNSAxLjUgMCAwIDEgMyAxNS41VjguNDVjMC0uNDMuMTgtLjg0LjUtMS4xMkw5IDIuMzlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyLjM4YTEuNSAxLjUgMCAwIDEgMiAwbDUuNSA0Ljk1Yy4zMi4yOC41LjY5LjUgMS4xMXY3LjA2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE1LjVWOC40NGMwLS40Mi4xOC0uODMuNS0xLjExTDkgMi4zOFptNC4zNSA2LjQ3YS41LjUgMCAwIDAtLjctLjdMOSAxMS43OGwtMS42NS0xLjY1YS41LjUgMCAxIDAtLjcuNzFsMiAyYy4yLjIuNS4yLjcgMGw0LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb21lQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy4zNSA4Ljg1YS41LjUgMCAwIDAtLjctLjdMOSAxMS43OGwtMS42NS0xLjY1YS41LjUgMCAxIDAtLjcuNzFsMiAyYy4yLjIuNS4yLjcgMGw0LTRaTTExIDIuMzhhMS41IDEuNSAwIDAgMC0yIDBMMy41IDcuMzNjLS4zMi4yOC0uNS42OS0uNSAxLjExdjcuMDZjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjguNDRjMC0uNDItLjE4LS44My0uNS0xLjExTDExIDIuMzhabS0xLjMzLjc1YS41LjUgMCAwIDEgLjY2IDBsNS41IDQuOTRjLjExLjEuMTcuMjMuMTcuMzd2Ny4wNmEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWOC40NGEuNS41IDAgMCAxIC4xNy0uMzdsNS41LTQuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lRGF0YWJhc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSG9tZURhdGFiYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMi4zOWExLjUgMS41IDAgMCAxIDIgMGw1LjUgNC45NGMuMy4yNy40OC42NC41IDEuMDNBNy43NSA3Ljc1IDAgMCAwIDE0LjUgOGMtMS4zOCAwLTIuNjguMy0zLjY3Ljg2LS45LjUtMS43NCAxLjMzLTEuODIgMi40Nkw5IDExLjN2NS4xOWMwIC4xNy4wMi4zNC4wNS41SDQuNUExLjUgMS41IDAgMCAxIDMgMTUuNVY4LjQ1YzAtLjQzLjE4LS44NC41LTEuMTJMOSAyLjM5Wm04IDcuMDNBNy44NiA3Ljg2IDAgMCAwIDE0LjUgOWMtMi40OSAwLTQuNSAxLjEyLTQuNSAyLjVzMi4wMSAyLjUgNC41IDIuNSA0LjUtMS4xMiA0LjUtMi41YzAtLjg3LS44LTEuNjMtMi0yLjA4Wm0xLjE3IDQuNzJjLTEgLjU1LTIuMjkuODYtMy42Ny44NnMtMi42OC0uMy0zLjY3LS44NmMtLjI5LS4xNi0uNTgtLjM2LS44My0uNTl2Mi45NWMwIDEuMzggMi4wMSAyLjUgNC41IDIuNXM0LjUtMS4xMiA0LjUtMi41YTI5NTkuMDkgMjk1OS4wOSAwIDAgMSAwLTIuOTVjLS4yNS4yMy0uNTQuNDMtLjgzLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lRGF0YWJhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVEYXRhYmFzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgMi4zOWExLjUgMS41IDAgMCAwLTIgMEwzLjUgNy4zM2MtLjMyLjI4LS41LjY5LS41IDEuMTJ2Ny4wNWMwIC44My42NyAxLjUgMS41IDEuNWg0LjU1YTIuNDQgMi40NCAwIDAgMS0uMDUtLjVWMTZINC41YS41LjUgMCAwIDEtLjUtLjVWOC40NWEuNS41IDAgMCAxIC4xNy0uMzhsNS41LTQuOTRhLjUuNSAwIDAgMSAuNjYgMGw1LjUgNC45NC4wMy4wM2E4LjM0IDguMzQgMCAwIDEgMS4xNC4yNiAxLjUgMS41IDAgMCAwLS41LTEuMDNMMTEgMi4zOVptNiA3LjAzQTcuODYgNy44NiAwIDAgMCAxNC41IDljLTIuNDkgMC00LjUgMS4xMi00LjUgMi41czIuMDEgMi41IDQuNSAyLjUgNC41LTEuMTIgNC41LTIuNWMwLS44Ny0uOC0xLjYzLTItMi4wOFptMS4xNyA0LjcyYy0xIC41NS0yLjI5Ljg2LTMuNjcuODZzLTIuNjgtLjMtMy42Ny0uODZjLS4yOS0uMTYtLjU4LS4zNi0uODMtLjU5djIuOTVjMCAxLjM4IDIuMDEgMi41IDQuNSAyLjVzNC41LTEuMTIgNC41LTIuNWEyOTU5LjA5IDI5NTkuMDkgMCAwIDEgMC0yLjk1Yy0uMjUuMjMtLjU0LjQzLS44My42WlwiXSk7XG5leHBvcnQgY29uc3QgSG9tZUdhcmFnZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb21lR2FyYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDIuMzlhMS41IDEuNSAwIDAgMC0yIDBMMy41IDcuMzVjLS4zMi4yOC0uNS42OC0uNSAxLjF2Ny4wNWMwIC44My42NyAxLjUgMS41IDEuNUg2di00LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxN2gxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjguNDZjMC0uNDMtLjE4LS44My0uNS0xLjExTDExIDIuMzlaTTEzIDE0di0xLjVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwLS41LjVWMTRoNlptLTYgMWg2djJIN3YtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVHYXJhZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVHYXJhZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wibTkuNjcgMy4xMy01LjUgNC45NmEuNS41IDAgMCAwLS4xNy4zN3Y3LjA0YzAgLjI4LjIyLjUuNS41SDZ2LTQuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41VjE2aDEuNWEuNS41IDAgMCAwIC41LS41VjguNDZhLjUuNSAwIDAgMC0uMTctLjM3bC01LjUtNC45NmEuNS41IDAgMCAwLS42NiAwWk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjVWOC40NmMwLS40My4xOC0uODMuNS0xLjExTDkgMi4zOWExLjUgMS41IDAgMCAxIDIgMGw1LjUgNC45NmMuMzIuMjguNS42OC41IDEuMXY3LjA1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFabTguNS0xdi0ySDd2Mmg2Wm0wLTQuNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNVYxM2g2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lSGVhcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSG9tZUhlYXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDIuMzlhMS41IDEuNSAwIDAgMC0yIDBMMy41IDcuMzNjLS4zMi4yOC0uNS42OS0uNSAxLjEydjcuMDVjMCAuODMuNjcgMS41IDEuNSAxLjVoNi40MmwtLjg4LS44OWEzLjYgMy42IDAgMCAxIDAtNS4wNiAzLjU1IDMuNTUgMCAwIDEgNC40Ni0uNDggMy41NCAzLjU0IDAgMCAxIDIuNS0uNTN2LTEuNmMwLS40Mi0uMTgtLjgzLS41LTEuMTFMMTEgMi4zOVptNy4yNSA5LjM3YTIuNTUgMi41NSAwIDAgMC0zLjYzIDBsLS4xMi4xMi0uMTItLjEyYTIuNTUgMi41NSAwIDAgMC0zLjg0LjI0IDIuNiAyLjYgMCAwIDAgLjIxIDMuNDFsMy40MyAzLjQ2Yy4xOC4xNy40Ni4xNy42NCAwbDMuNDMtMy40NmMxLTEgMS0yLjY0IDAtMy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVIZWFydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSG9tZUhlYXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDIuMzlhMS41IDEuNSAwIDAgMSAyIDBsNS41IDQuOTRjLjMyLjI4LjUuNjkuNSAxLjEydjEuNmEzLjU2IDMuNTYgMCAwIDAtMS0uMDJWOC40NWEuNS41IDAgMCAwLS4xNy0uMzhsLTUuNS00Ljk0YS41LjUgMCAwIDAtLjY2IDBsLTUuNSA0Ljk0YS41LjUgMCAwIDAtLjE3LjM4djcuMDVjMCAuMjguMjIuNS41LjVoNS40M2wuMTEuMTEuODguODlINC41QTEuNSAxLjUgMCAwIDEgMyAxNS41VjguNDVjMC0uNDMuMTgtLjg0LjUtMS4xMkw5IDIuMzlabTkuMjUgOS4zN2EyLjU1IDIuNTUgMCAwIDAtMy42MyAwbC0uMTIuMTItLjEyLS4xMmEyLjU1IDIuNTUgMCAwIDAtMy44NC4yNCAyLjYgMi42IDAgMCAwIC4yMSAzLjQxbDMuNDMgMy40NmMuMTguMTcuNDYuMTcuNjQgMGwzLjQzLTMuNDZjMS0xIDEtMi42NCAwLTMuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lTW9yZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb21lTW9yZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSAyLjM4YTEuNSAxLjUgMCAwIDAtMiAwTDMuNSA3LjMzYy0uMzIuMjgtLjUuNjktLjUgMS4xMXY3LjA2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY4LjQ0YzAtLjQyLS4xOC0uODMtLjUtMS4xMUwxMSAyLjM4Wk03IDExYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptNC0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTUgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTIgMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTQtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBIb21lTW9yZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSG9tZU1vcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0zIDBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNyA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNOSAyLjM4YTEuNSAxLjUgMCAwIDEgMiAwbDUuNSA0Ljk1Yy4zMi4yOC41LjY5LjUgMS4xMXY3LjA2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE1LjVWOC40NGMwLS40Mi4xOC0uODMuNS0xLjExTDkgMi4zOFptMS4zMy43NWEuNS41IDAgMCAwLS42NiAwbC01LjUgNC45NGEuNS41IDAgMCAwLS4xNy4zN3Y3LjA2YzAgLjI4LjIyLjUuNS41aDExYS41LjUgMCAwIDAgLjUtLjVWOC40NGEuNS41IDAgMCAwLS4xNy0uMzdsLTUuNS00Ljk0WlwiXSk7XG5leHBvcnQgY29uc3QgSG9tZVBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb21lUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMi4zOWExLjUgMS41IDAgMCAxIDIgMGw1LjUgNC45NGMuMzIuMjguNS42OS41IDEuMTJ2Ljk1YTIuOTkgMi45OSAwIDAgMC00LjMzIDEuNkg4LjVhLjUuNSAwIDAgMC0uNS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yQTEuNSAxLjUgMCAwIDEgMyAxNS41VjguNDVjMC0uNDMuMTgtLjg0LjUtMS4xMkw5IDIuMzlaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNC0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVQZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvbWVQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMi4zOWExLjUgMS41IDAgMCAxIDIgMGw1LjUgNC45NGMuMzIuMjguNS42OS41IDEuMTJ2Ljk1Yy0uMy0uMTctLjY0LS4zLTEtLjM2di0uNmEuNS41IDAgMCAwLS4xNy0uMzdsLTUuNS00Ljk0YS41LjUgMCAwIDAtLjY2IDBsLTUuNSA0Ljk0YS41LjUgMCAwIDAtLjE3LjM4djcuMDVjMCAuMjguMjIuNS41LjVIN2EuNS41IDAgMCAwIC41LS41VjEyYzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4yYy0uNC4xOC0uNzQuNDYtMSAuOHYtM2EuNS41IDAgMCAwLS41LS41SDlhLjUuNSAwIDAgMC0uNS41djMuNWMwIC44My0uNjcgMS41LTEuNSAxLjVINC41QTEuNSAxLjUgMCAwIDEgMyAxNS41VjguNDVjMC0uNDMuMTgtLjg0LjUtMS4xMkw5IDIuMzlaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNC0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVTcGxpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb21lU3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgMi4zOGExLjUgMS41IDAgMCAwLTIgMEwzLjUgNy4zM2MtLjMyLjI5LS41LjctLjUgMS4xMnY3LjA1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY4LjQ1YzAtLjQzLS4xOC0uODMtLjUtMS4xMkwxMSAyLjM4Wm0tLjUgMTEuMTJ2MWEuNS41IDAgMCAxLTEgMHYtMWEuNS41IDAgMSAxIDEgMFpNMTAgOWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0uNS0zLjV2MWEuNS41IDAgMCAxLTEgMHYtMWEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvbWVTcGxpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSG9tZVNwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAyLjM4YTEuNSAxLjUgMCAwIDAtMiAwTDMuNSA3LjMzYy0uMzIuMjktLjUuNy0uNSAxLjEydjcuMDVjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjguNDVjMC0uNDMtLjE4LS44My0uNS0xLjEyTDExIDIuMzhabS0xLjMzLjc0YS41LjUgMCAwIDEgLjY2IDBsNS41IDQuOTVjLjExLjEuMTcuMjMuMTcuMzh2Ny4wNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWOC40NWEuNS41IDAgMCAxIC4xNy0uMzhsNS41LTQuOTVabS44MyAxMC4zOGEuNS41IDAgMSAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWk0xMCA5Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVabS41LTMuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWlwiXSk7XG5leHBvcnQgY29uc3QgSG91cmdsYXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvdXJnbGFzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy42OSA1LjRjLjItLjQ0LjMtLjkyLjMxLTEuNEg2YTMuNDEgMy40MSAwIDAgMCAxLjIyIDIuNTZsMS44MiAxLjUyYTIuNDggMi40OCAwIDAgMSAuOSAxLjkyIDIuNDggMi40OCAwIDAgMS0uOSAxLjkybC0xLjgyIDEuNTJBMy40MSAzLjQxIDAgMCAwIDYgMTZoOGMwLS40OC0uMTEtLjk2LS4zMS0xLjRhMy4zNyAzLjM3IDAgMCAwLS45MS0xLjE2TDExIDExLjkxYy0uMjgtLjIzLS41LS41Mi0uNjUtLjg1YTIuNDIgMi40MiAwIDAgMS0uMjktMS4wNmMuMDEtLjM3LjExLS43My4yOS0xLjA2LjE1LS4zMy4zNy0uNjIuNjUtLjg1bDEuNzgtMS41M2MuMzktLjMxLjctLjcxLjkxLTEuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBIb3VyZ2xhc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvdXJnbGFzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS45MiAxOGMtLjI1IDAtLjUtLjA1LS43Mi0uMTYtLjIzLS4xLS40NC0uMjQtLjYyLS40MkExLjg4IDEuODggMCAwIDEgNCAxNi4wOGE1LjYgNS42IDAgMCAxIC41LTIuMyA1LjM1IDUuMzUgMCAwIDEgMS40NC0xLjg4bDEuODItMS41MmEuNS41IDAgMCAwIDAtLjc3TDUuOTQgOC4xQTUuMzQgNS4zNCAwIDAgMSA0IDMuOTJjMC0uMjUuMDUtLjUuMTYtLjcyLjEtLjIzLjI0LS40NC40Mi0uNjJBMS44OCAxLjg4IDAgMCAxIDUuOTIgMmg4LjE2Yy4yNSAwIC41LjA1LjcyLjE2LjIzLjEuNDQuMjQuNjIuNDJBMS44OCAxLjg4IDAgMCAxIDE2IDMuOTJhNS4zIDUuMyAwIDAgMS0xLjk0IDQuMTdsLTEuODIgMS41M2EuNS41IDAgMCAwIDAgLjc3bDEuODIgMS41QTUuMzggNS4zOCAwIDAgMSAxNiAxNi4wOWMwIC4yNS0uMDUuNS0uMTYuNzItLjEuMjMtLjI0LjQ0LS40Mi42MmExLjg4IDEuODggMCAwIDEtMS4zNC41OEg1LjkyWm04LjEyLTFhLjk2Ljk2IDAgMCAwIC42OC0uMjhjLjEtLjEuMTYtLjIuMi0uMy4wNC0uMTIuMDctLjI0LjA4LS4zOGE0LjMzIDQuMzMgMCAwIDAtMS41OC0zLjM3bC0xLjgyLTEuNTJhMS41MyAxLjUzIDAgMCAxLS41NC0xLjE1IDEuNTEgMS41MSAwIDAgMSAuNTQtMS4xNmwxLjgyLTEuNTFBNC4zMyA0LjMzIDAgMCAwIDE1IDMuOTZhLjk2Ljk2IDAgMCAwLS4yOC0uNjguODcuODcgMCAwIDAtLjMtLjJjLS4xMi0uMDQtLjI0LS4wNy0uMzgtLjA4SDUuOTZhLjk4Ljk4IDAgMCAwLS4zNy4wNy44Ny44NyAwIDAgMC0uMy4yMWMtLjEuMS0uMTcuMi0uMjEuMy0uMDUuMTItLjA3LjI0LS4wOC4zOGE0LjQ5IDQuNDkgMCAwIDAgLjkgMi42N2MuMi4yNS40Mi40OC42OC43TDguNCA4Ljg0YTEuNTEgMS41MSAwIDAgMSAwIDIuM2wtMS44MiAxLjUzQTQuMzEgNC4zMSAwIDAgMCA1IDE2LjA0YzAgLjEzLjAyLjI2LjA3LjM3LjA1LjEyLjEyLjIyLjIxLjMuMS4xLjIuMTYuMy4yMS4xMi4wNS4yNC4wNy4zOC4wOGg4LjA4WlwiXSk7XG5leHBvcnQgY29uc3QgSG91cmdsYXNzSGFsZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb3VyZ2xhc3NIYWxmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuOTQgMTBhMi40OCAyLjQ4IDAgMCAxLS45IDEuOTJsLTEuODIgMS41MkEzLjQxIDMuNDEgMCAwIDAgNiAxNmg4YzAtLjQ4LS4xMS0uOTYtLjMxLTEuNGEzLjM3IDMuMzcgMCAwIDAtLjkxLTEuMTZMMTEgMTEuOTFjLS4yOC0uMjMtLjUtLjUyLS42NS0uODVhMi40MiAyLjQyIDAgMCAxLS4yOS0xLjA2aC0uMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBIb3VyZ2xhc3NIYWxmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb3VyZ2xhc3NIYWxmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy42OSAxNC42Yy4yLjQ0LjMuOTIuMzEgMS40SDZhMy40MSAzLjQxIDAgMCAxIDEuMjItMi41NmwxLjgyLTEuNTJhMi40OCAyLjQ4IDAgMCAwIC45LTEuOTJoLjEyYy4wMS4zNy4xMS43My4yOSAxLjA2LjE1LjMzLjM3LjYyLjY1Ljg1bDEuNzggMS41M2MuMzkuMzEuNy43MS45MSAxLjE2Wm0tOC41IDMuMjRjLjIzLjEuNDguMTYuNzMuMTZoOC4xNmExLjkzIDEuOTMgMCAwIDAgMS43Ni0xLjJjLjEtLjIyLjE2LS40Ny4xNi0uNzJhNS4zMiA1LjMyIDAgMCAwLS41LTIuMzEgNS4wNiA1LjA2IDAgMCAwLTEuNDQtMS44N2wtMS44Mi0xLjUyYS41LjUgMCAwIDEgMC0uNzdsMS44Mi0xLjUyQTUuMyA1LjMgMCAwIDAgMTYgMy45MmExLjkzIDEuOTMgMCAwIDAtMS4yLTEuNzZjLS4yMi0uMS0uNDctLjE2LS43Mi0uMTZINS45MmExLjkzIDEuOTMgMCAwIDAtMS43NiAxLjJjLS4xLjIyLS4xNi40Ny0uMTYuNzJBNS4zNCA1LjM0IDAgMCAwIDUuOTQgOC4xbDEuODIgMS41M2MuMDYuMDQuMS4xLjEzLjE3YS41LjUgMCAwIDEtLjEzLjZsLTEuODIgMS41YTUuNjUgNS42NSAwIDAgMC0xLjQ0IDEuODggNS4zMiA1LjMyIDAgMCAwLS41IDIuMyAxLjkzIDEuOTMgMCAwIDAgMS4yIDEuNzdabTkuMjItLjkxYS45Ni45NiAwIDAgMS0uMzcuMDdINS45NmMtLjE0IDAtLjI2LS4wMy0uMzctLjA4LS4xMS0uMDUtLjIxLS4xMS0uMy0uMmEuODcuODcgMCAwIDEtLjIyLS4zLjk4Ljk4IDAgMCAxLS4wNy0uMzggNC40NSA0LjQ1IDAgMCAxIDEuNTgtMy4zN2wxLjgyLTEuNTJBMS41MyAxLjUzIDAgMCAwIDguOTQgMTBhMS41MSAxLjUxIDAgMCAwLS41NC0xLjE2TDYuNTggNy4zM0E0LjAyIDQuMDIgMCAwIDEgNS40IDUuODIgNC4wNiA0LjA2IDAgMCAxIDUgMy45NmMwLS4xNC4wMy0uMjYuMDgtLjM3LjA0LS4xMS4xMS0uMjEuMi0uMy4wOS0uMS4yLS4xNy4zLS4yMkEuOTguOTggMCAwIDEgNS45NyAzaDguMDhjLjE0LjAxLjI2LjA0LjM3LjA4LjExLjA0LjIxLjEuMy4yYS45NS45NSAwIDAgMSAuMjkuNjggNC40MyA0LjQzIDAgMCAxLTEuNTggMy4zN0wxMS42IDguODRhMS41MSAxLjUxIDAgMCAwIDAgMi4zbDEuODIgMS41M0E0LjM3IDQuMzcgMCAwIDEgMTUgMTYuMDRjLS4wMS4xNC0uMDQuMjYtLjA4LjM3LS4wNC4xMS0uMS4yMS0uMi4zLS4xLjEtLjIuMTctLjMxLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgSG91cmdsYXNzT25lUXVhcnRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb3VyZ2xhc3NPbmVRdWFydGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNjggMTRBMy40MSAzLjQxIDAgMCAwIDYgMTZoOGEzLjQ5IDMuNDkgMCAwIDAtLjY4LTJINi42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvdXJnbGFzc09uZVF1YXJ0ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0hvdXJnbGFzc09uZVF1YXJ0ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuMzIgMTQuNmMuMS0uMjEuMjItLjQxLjM2LS42aDYuNjRjLjE1LjE5LjI3LjM5LjM3LjYuMi40NC4zLjkyLjMxIDEuNEg2YzAtLjQ4LjEyLS45Ni4zMi0xLjRaTTUuMiAxNy44NGMuMjIuMS40Ny4xNi43Mi4xNmg4LjE2YTEuOTMgMS45MyAwIDAgMCAxLjc2LTEuMmMuMS0uMjIuMTYtLjQ3LjE2LS43MmE1LjMyIDUuMzIgMCAwIDAtLjUtMi4zMSA1LjA2IDUuMDYgMCAwIDAtMS40NC0xLjg3bC0xLjgyLTEuNTJhLjUuNSAwIDAgMSAwLS43N2wxLjgyLTEuNTJBNS4zIDUuMyAwIDAgMCAxNiAzLjkyYTEuOTMgMS45MyAwIDAgMC0xLjItMS43NmMtLjIyLS4xLS40Ny0uMTYtLjcyLS4xNkg1LjkyYTEuOTMgMS45MyAwIDAgMC0xLjc2IDEuMmMtLjEuMjItLjE2LjQ3LS4xNi43MkE1LjM0IDUuMzQgMCAwIDAgNS45NCA4LjFsMS44MiAxLjUzYy4wNi4wNC4xLjEuMTMuMTdhLjUuNSAwIDAgMS0uMTMuNmwtMS44MiAxLjVhNS42NSA1LjY1IDAgMCAwLTEuNDQgMS44OCA1LjMyIDUuMzIgMCAwIDAtLjUgMi4zIDEuOTMgMS45MyAwIDAgMCAxLjIgMS43N1ptOS4yLS45MWEuOTYuOTYgMCAwIDEtLjM2LjA3SDUuOTZjLS4xNCAwLS4yNi0uMDMtLjM3LS4wOC0uMTEtLjA1LS4yMS0uMTEtLjMtLjJhLjg3Ljg3IDAgMCAxLS4yMi0uMy45OC45OCAwIDAgMS0uMDctLjM4IDQuNDUgNC40NSAwIDAgMSAxLjU4LTMuMzdsMS44Mi0xLjUyQTEuNTMgMS41MyAwIDAgMCA4Ljk0IDEwYTEuNTEgMS41MSAwIDAgMC0uNTQtMS4xNkw2LjU4IDcuMzNBNC4wMiA0LjAyIDAgMCAxIDUuNCA1LjgyIDQuMDYgNC4wNiAwIDAgMSA1IDMuOTZjMC0uMTQuMDMtLjI2LjA4LS4zNy4wNC0uMTEuMTEtLjIxLjItLjMuMDktLjEuMi0uMTcuMy0uMjJBLjk4Ljk4IDAgMCAxIDUuOTcgM2g4LjA4Yy4xNC4wMS4yNi4wNC4zNy4wOC4xMS4wNC4yMS4xLjMuMmEuOTUuOTUgMCAwIDEgLjI5LjY4IDQuNDMgNC40MyAwIDAgMS0xLjU4IDMuMzdMMTEuNiA4Ljg0YTEuNTEgMS41MSAwIDAgMCAwIDIuM2wxLjgyIDEuNTNBNC4zNyA0LjM3IDAgMCAxIDE1IDE2LjA0Yy0uMDEuMTQtLjA0LjI2LS4wOC4zNy0uMDQuMTEtLjEuMjEtLjIuMy0uMS4xLS4yLjE3LS4zMS4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvdXJnbGFzc1RocmVlUXVhcnRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdIb3VyZ2xhc3NUaHJlZVF1YXJ0ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4xNiA1aDcuNjhjLS4wNC4xNC0uMS4yNy0uMTUuNC0uMjEuNDUtLjUyLjg1LS45MSAxLjE2TDExIDguMDljLS4yOC4yMy0uNS41Mi0uNjUuODUtLjE4LjMzLS4yOC42OS0uMjkgMS4wNi4wMS4zNy4xMS43My4yOSAxLjA2LjE1LjMzLjM3LjYyLjY1Ljg1bDEuNzggMS41M2MuMzkuMzEuNy43MS45MSAxLjE2LjIuNDQuMy45Mi4zMSAxLjRINmEzLjQxIDMuNDEgMCAwIDEgMS4yMi0yLjU2bDEuODItMS41MmEyLjQ4IDIuNDggMCAwIDAgLjktMS45MiAyLjQ4IDIuNDggMCAwIDAtLjktMS45Mkw3LjIyIDYuNTZBMy4yNSAzLjI1IDAgMCAxIDYuMTYgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEhvdXJnbGFzc1RocmVlUXVhcnRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSG91cmdsYXNzVGhyZWVRdWFydGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy44NCA1SDYuMTZhMy40IDMuNCAwIDAgMCAxLjA2IDEuNTZsMS44MiAxLjUyYTIuNDggMi40OCAwIDAgMSAuOSAxLjkyIDIuNDggMi40OCAwIDAgMS0uOSAxLjkybC0xLjgyIDEuNTJBMy40MSAzLjQxIDAgMCAwIDYgMTZoOGMwLS40OC0uMTEtLjk2LS4zMS0xLjRhMy4zNyAzLjM3IDAgMCAwLS45MS0xLjE2TDExIDExLjkxYy0uMjgtLjIzLS41LS41Mi0uNjUtLjg1YTIuNDIgMi40MiAwIDAgMS0uMjktMS4wNmMuMDEtLjM3LjExLS43My4yOS0xLjA2LjE1LS4zMy4zNy0uNjIuNjUtLjg1bDEuNzgtMS41M0EzLjM3IDMuMzcgMCAwIDAgMTMuODQgNVpNNS4yIDE3Ljg0Yy4yMi4xLjQ3LjE2LjcyLjE2aDguMTZhMS45MyAxLjkzIDAgMCAwIDEuNzYtMS4yYy4xLS4yMi4xNi0uNDcuMTYtLjcyYTUuMzIgNS4zMiAwIDAgMC0uNS0yLjMxIDUuMDYgNS4wNiAwIDAgMC0xLjQ0LTEuODdsLTEuODItMS41MmEuNS41IDAgMCAxIDAtLjc3bDEuODItMS41MkE1LjMgNS4zIDAgMCAwIDE2IDMuOTJhMS45MyAxLjkzIDAgMCAwLTEuMi0xLjc2Yy0uMjItLjEtLjQ3LS4xNi0uNzItLjE2SDUuOTJhMS45MyAxLjkzIDAgMCAwLTEuNzYgMS4yYy0uMS4yMi0uMTYuNDctLjE2LjcyQTUuMzQgNS4zNCAwIDAgMCA1Ljk0IDguMWwxLjgyIDEuNTNjLjA2LjA0LjEuMS4xMy4xN2EuNS41IDAgMCAxLS4xMy42bC0xLjgyIDEuNWE1LjY1IDUuNjUgMCAwIDAtMS40NCAxLjg4IDUuMzIgNS4zMiAwIDAgMC0uNSAyLjMgMS45MyAxLjkzIDAgMCAwIDEuMiAxLjc3Wm05LjItLjkxYS45Ni45NiAwIDAgMS0uMzYuMDdINS45NmMtLjE0IDAtLjI2LS4wMy0uMzctLjA4LS4xMS0uMDUtLjIxLS4xMS0uMy0uMmEuODcuODcgMCAwIDEtLjIyLS4zLjk4Ljk4IDAgMCAxLS4wNy0uMzggNC40NSA0LjQ1IDAgMCAxIDEuNTgtMy4zN2wxLjgyLTEuNTJBMS41MyAxLjUzIDAgMCAwIDguOTQgMTBhMS41MSAxLjUxIDAgMCAwLS41NC0xLjE2TDYuNTggNy4zM0E0LjAyIDQuMDIgMCAwIDEgNS40IDUuODIgNC4wNiA0LjA2IDAgMCAxIDUgMy45NmMwLS4xNC4wMy0uMjYuMDgtLjM3LjA0LS4xMS4xMS0uMjEuMi0uMy4wOS0uMS4yLS4xNy4zLS4yMkEuOTguOTggMCAwIDEgNS45NyAzaDguMDhjLjE0LjAxLjI2LjA0LjM3LjA4LjExLjA0LjIxLjEuMy4yYS45NS45NSAwIDAgMSAuMjkuNjggNC40MyA0LjQzIDAgMCAxLTEuNTggMy4zN0wxMS42IDguODRhMS41MSAxLjUxIDAgMCAwIDAgMi4zbDEuODIgMS41M0E0LjM3IDQuMzcgMCAwIDEgMTUgMTYuMDRjLS4wMS4xNC0uMDQuMjYtLjA4LjM3LS4wNC4xMS0uMS4yMS0uMi4zLS4xLjEtLjIuMTctLjMxLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgSWNvbnNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSWNvbnNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAwIDAtMy40NiA2SDMuNDJDMi42NCA4IDIgOC42NCAyIDkuNDIgMiAxMi41IDQuNSAxNSA3LjU4IDE1aDEuMjdhNC41NSA0LjU1IDAgMCAxLS4zNS0xLjc1YzAtMS4yLjY3LTIuMjEgMS40Ni0yLjlhNS45MSA1LjkxIDAgMCAxIDMuOTktMS40IDMuMDEgMy4wMSAwIDAgMC0uNzQtLjU3IDQgNCAwIDAgMCAuMjUtLjM4aDEuN0MxNi4xOSA4IDE3IDcuMTggMTcgNi4xNyAxNyA1LjUyIDE2LjQ4IDUgMTUuODMgNWgtMS45NkE0IDQgMCAwIDAgMTAgMlptNy41IDguNWEuNS41IDAgMCAxIC40NS43MmwtLjIyLjM4LS4wMi4wMi0uMzIuNTRhNy41IDcuNSAwIDAgMC0uNzcgMS44NmMtLjE2LjU2LS4zNyAxLjMxLS43NCAxLjk0YTIuOTQgMi45NCAwIDAgMS0yLjYzIDEuNTRjLTEuMDYgMC0xLjgtLjUzLTIuMjctMS4wM2E0LjEgNC4xIDAgMCAxLS41OS0uODFjLS42LjYtMS4wNiAxLjMtMS40NCAyLjA2YS41LjUgMCAxIDEtLjktLjQ0IDguNDcgOC40NyAwIDAgMSAzLjQ0LTMuNzFjLjY2LS40MiAxLjQtLjc5IDIuMi0xLjFhLjUuNSAwIDEgMC0uMzgtLjkzIDEzLjE3IDEzLjE3IDAgMCAwLTMuNzcgMi4yMyAyLjg1IDIuODUgMCAwIDEgLjktMi42MmMuNjMtLjU5IDEuNTUtMSAyLjc1LTEuMTVhOC41MiA4LjUyIDAgMCAxIDMuOC4zN2wuMDkuMDNhNi4xNyA2LjE3IDAgMCAwIC40MS4xaC4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEljb25zUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJY29uc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2EzIDMgMCAwIDAtMi4xNyA1LjA3Yy4xLjExLjE3LjI1LjE3LjQgMCAuMy0uMjQuNTMtLjUzLjUzSDMuNDJhLjQyLjQyIDAgMCAwLS40Mi40MkE0LjU4IDQuNTggMCAwIDAgNy41OCAxNEg4LjdjLjA1LjA5LjEyLjE3LjE4LjI1YTguNiA4LjYgMCAwIDAtLjYxLjc1aC0uN0E1LjU4IDUuNTggMCAwIDEgMiA5LjQyQzIgOC42NCAyLjY0IDggMy40MiA4aDMuMTJhNCA0IDAgMSAxIDcuMzQtM2gxLjk1Yy42NSAwIDEuMTcuNTIgMS4xNyAxLjE3IDAgMS0uODIgMS44My0xLjgzIDEuODNoLTEuN2E0IDQgMCAwIDEtLjI2LjM4Yy4zNy4yLjY4LjQ4LjkzLjhhOS44NCA5Ljg0IDAgMCAwLTEuMzQuMTJjLS4yLS4xMy0uNDItLjIyLS42Ny0uMjYtLjItLjA0LS4zOC0uMjEtLjM4LS40MyAwLS4xMy4wNy0uMjUuMTctLjMzYTMgMyAwIDAgMCAuOS0xLjI4aDIuMzVjLjQ2IDAgLjgzLS4zNy44My0uODMgMC0uMS0uMDctLjE3LS4xNy0uMTdIMTNhMyAzIDAgMCAwLTMtM1ptNS42NiA4LjE1QTcuMTEgNy4xMSAwIDAgMCAxMy4zIDExYy0xLjU3LjItMi4zOCAxLjI3LTIuODUgMi40M2EuNS41IDAgMSAxLS45Mi0uMzdjLjUzLTEuMzMgMS41Ny0yLjggMy42NS0zLjA2IDEtLjEyIDEuOTIuMDIgMi42Ny4xOGwuNjYuMTQuMzQuMDhjLjMuMDcuNS4xLjY0LjFhLjUuNSAwIDAgMSAuNDUuNzJsLS4yMi4zOC0uMDIuMDItLjMyLjU0YTcuNSA3LjUgMCAwIDAtLjc3IDEuODZjLS4xNi41Ni0uMzcgMS4zMS0uNzQgMS45NGEyLjk0IDIuOTQgMCAwIDEtMi42MyAxLjU0IDMuMSAzLjEgMCAwIDEtMi4zLTEuMDggNC40MiA0LjQyIDAgMCAxLS41Ni0uNzZjLS42LjYxLTEuMDYgMS4zLTEuNDQgMi4wNmEuNS41IDAgMSAxLS45LS40NGMxLjA2LTIuMTMgMi42Ny0zLjcxIDUuOC00Ljc1YS41LjUgMCAxIDEgLjMuOTQgMTAuMiAxMC4yIDAgMCAwLTIuOTkgMS41MWwuMDIuMDRhMi45MyAyLjkzIDAgMCAwIC41LjczYy4zNy40Ljg5Ljc1IDEuNTcuNzUuNDcgMCAuODItLjEyIDEuMS0uMy4yNy0uMTcuNDktLjQzLjY3LS43NC4zLS41MS40Ni0xLjA5LjYyLTEuNjRsLjEzLS40N2E4LjUgOC41IDAgMCAxIC45MS0xLjk2bC0uMDMtLjAxLS4zOC0uMDktLjYxLS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhjMCAuNjUuMiAxLjI1LjU2IDEuNzRsNS4zOS01LjNhMS41IDEuNSAwIDAgMSAyLjEgMGw1LjQgNS4zYy4zNC0uNDkuNTUtMS4xLjU1LTEuNzRWNmEzIDMgMCAwIDAtMy0zSDZabTAgMTRjLS42NSAwLTEuMjQtLjItMS43My0uNTVsNS4zOC01LjNjLjItLjIuNS0uMi43IDBsNS4zOCA1LjNjLS40OS4zNS0xLjA4LjU1LTEuNzMuNTVINlptNi41LTguMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgNy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY4YzAgLjM3LjEuNzIuMjggMS4wMmw0LjY3LTQuNTlhMS41IDEuNSAwIDAgMSAyLjEgMGw0LjY3IDQuNTljLjE4LS4zLjI4LS42NS4yOC0xLjAyVjZhMiAyIDAgMCAwLTItMkg2Wm0wIDEyaDhhMiAyIDAgMCAwIDEuMDEtLjI3bC00LjY2LTQuNThhLjUuNSAwIDAgMC0uNyAwbC00LjY2IDQuNThBMiAyIDAgMCAwIDYgMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZUFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNUgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFINlYzLjVaTTUuNSAxMWE1LjUgNS41IDAgMCAwIDQuOS04SDE0YTMgMyAwIDAgMSAzIDN2OGMwIC42NS0uMiAxLjI1LS41NiAxLjc0bC01LjM5LTUuM2ExLjUgMS41IDAgMCAwLTIuMSAwbC01LjQgNS4zQzMuMjIgMTUuMjUgMyAxNC42NCAzIDE0di0zLjZjLjc1LjM4IDEuNi42IDIuNS42Wm03LTNhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTAgMWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptLTguMjMgNy40NWMuNDkuMzUgMS4wOC41NSAxLjczLjU1aDhjLjY1IDAgMS4yNC0uMiAxLjczLS41NWwtNS4zOC01LjNhLjUuNSAwIDAgMC0uNyAwbC01LjM4IDUuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDZWMy41Wm04IC41aC0zLjJjLS4xLS4zNS0uMjQtLjY4LS40LTFIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zdi0zLjZjLjMyLjE2LjY1LjMgMSAuNFYxNGMwIC4zNy4xLjcyLjI4IDEuMDJsNC42Ny00LjU5YTEuNSAxLjUgMCAwIDEgMi4xIDBsNC42NyA0LjU5Yy4xOC0uMy4yOC0uNjUuMjgtMS4wMlY2YTIgMiAwIDAgMC0yLTJabTAgMy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0tOC4wMSA4LjIzQTIgMiAwIDAgMCA2IDE2aDhhMiAyIDAgMCAwIDEuMDEtLjI3bC00LjY2LTQuNThhLjUuNSAwIDAgMC0uNyAwbC00LjY2IDQuNThaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZUFsdFRleHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VBbHRUZXh0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEgM2MwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjNabTIgMy41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41Wk0zLjUgM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm05IDVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTMgMTBoNWEzIDMgMCAwIDAgMy0zVjNoM2EzIDMgMCAwIDEgMyAzdjhjMCAuNjUtLjIgMS4yNS0uNTYgMS43NGwtNS4zOS01LjNhMS41IDEuNSAwIDAgMC0yLjEgMGwtNS40IDUuM0MzLjIyIDE1LjI1IDMgMTQuNjQgMyAxNHYtNFptOS41LTFhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabS04LjIzIDcuNDVjLjQ5LjM1IDEuMDguNTUgMS43My41NWg4Yy42NSAwIDEuMjQtLjIgMS43My0uNTVsLTUuMzgtNS4zYS41LjUgMCAwIDAtLjcgMGwtNS4zOCA1LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZUFsdFRleHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlQWx0VGV4dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxYTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDVhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJIM1ptLjUgNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xWk0zIDMuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpNMyAxNHYtNGgxdjRjMCAuMzcuMS43Mi4yOCAxLjAybDQuNjctNC41OWExLjUgMS41IDAgMCAxIDIuMSAwbDQuNjcgNC41OWMuMTgtLjMuMjgtLjY1LjI4LTEuMDJWNmEyIDIgMCAwIDAtMi0yaC0zVjNoM2EzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNabTMgMmg4YTIgMiAwIDAgMCAxLjAxLS4yN2wtNC42Ni00LjU4YS41LjUgMCAwIDAtLjcgMGwtNC42NiA0LjU4QTIgMiAwIDAgMCA2IDE2Wm02LjUtN2ExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1ptLjUtMS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VBcnJvd0JhY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VBcnJvd0JhY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDEwYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgOCA3LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgzLjcxbC45LjlhLjUuNSAwIDEgMS0uNzEuN0wyLjE0IDUuMzVhLjUuNSAwIDAgMSAwLS43TDMuOSAyLjlhLjUuNSAwIDEgMSAuNy43Wk0xMSA1LjVhNS41IDUuNSAwIDAgMS04IDQuOVYxNGMwIC42NS4yIDEuMjUuNTYgMS43NGw1LjM5LTUuM2ExLjUgMS41IDAgMCAxIDIuMSAwbDUuNCA1LjNjLjM0LS40OS41NS0xLjEuNTUtMS43NFY2YTMgMyAwIDAgMC0zLTNoLTMuNmMuMzguNzUuNiAxLjYuNiAyLjVaTTEyLjUgOGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMCAxYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm0tOC4yMyA3LjQ1Yy40OS4zNSAxLjA4LjU1IDEuNzMuNTVoOGMuNjUgMCAxLjI0LS4yIDEuNzMtLjU1bC01LjM4LTUuM2EuNS41IDAgMCAwLS43IDBsLTUuMzggNS4zWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VBcnJvd0JhY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlQXJyb3dCYWNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSA4IDcuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDMuNzFsLjkuOWEuNS41IDAgMSAxLS43MS43TDIuMTQgNS4zNWEuNS41IDAgMCAxIDAtLjdMMy45IDIuOWEuNS41IDAgMSAxIC43LjdaTTMgMTAuNGMuMzIuMTYuNjUuMyAxIC40VjE0YzAgLjM3LjEuNzIuMjggMS4wMmw0LjY3LTQuNTlhMS41IDEuNSAwIDAgMSAyLjEgMGw0LjY3IDQuNTljLjE4LS4zLjI4LS42NS4yOC0xLjAyVjZhMiAyIDAgMCAwLTItMmgtMy4yYy0uMS0uMzUtLjI0LS42OC0uNC0xSDE0YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM3YtMy42Wm0xMS0yLjlhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0xIDBhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabS04LjAxIDguMjNBMiAyIDAgMCAwIDYgMTZoOGEyIDIgMCAwIDAgMS4wMS0uMjdsLTQuNjYtNC41OGEuNS41IDAgMCAwLS43IDBsLTQuNjYgNC41OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlQXJyb3dDb3VudGVyY2xvY2t3aXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlQXJyb3dDb3VudGVyY2xvY2t3aXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLTItNWEuNS41IDAgMCAxLS41LS42M1YzYS41LjUgMCAwIDEgMSAwdi4yYTIuNzUgMi43NSAwIDEgMS0uNTUgNC4xNC41LjUgMCAwIDEgLjc1LS42N0ExLjc0IDEuNzQgMCAwIDAgNy4yNSA1LjUgMS43NSAxLjc1IDAgMCAwIDQuNiA0SDVhLjUuNSAwIDAgMSAwIDFIMy41Wm0yIDZjLS45IDAtMS43NS0uMjItMi41LS42VjE0YzAgLjY1LjIgMS4yNS41NiAxLjc0bDUuMzktNS4zYTEuNSAxLjUgMCAwIDEgMi4xIDBsNS40IDUuM2MuMzQtLjQ5LjU1LTEuMS41NS0xLjc0VjZhMyAzIDAgMCAwLTMtM2gtMy42YTUuNSA1LjUgMCAwIDEtNC45IDhabTctM2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMCAxYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm0tOC4yMyA3LjQ1Yy40OS4zNSAxLjA4LjU1IDEuNzMuNTVoOGMuNjUgMCAxLjI0LS4yIDEuNzMtLjU1bC01LjM4LTUuM2EuNS41IDAgMCAwLS43IDBsLTUuMzggNS4zWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VBcnJvd0NvdW50ZXJjbG9ja3dpc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlQXJyb3dDb3VudGVyY2xvY2t3aXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0yLTVhLjUuNSAwIDAgMS0uNS0uNjNWM2EuNS41IDAgMCAxIDEgMHYuMmEyLjc1IDIuNzUgMCAxIDEtLjU1IDQuMTQuNS41IDAgMCAxIC43NS0uNjdBMS43NCAxLjc0IDAgMCAwIDcuMjUgNS41IDEuNzUgMS43NSAwIDAgMCA0LjYgNEg1YS41LjUgMCAwIDEgMCAxSDMuNVpNMyAxMC40Yy4zMi4xNi42NS4zIDEgLjRWMTRjMCAuMzcuMS43Mi4yOCAxLjAybDQuNjctNC41OWExLjUgMS41IDAgMCAxIDIuMSAwbDQuNjcgNC41OWMuMTgtLjMuMjgtLjY1LjI4LTEuMDJWNmEyIDIgMCAwIDAtMi0yaC0zLjJjLS4xLS4zNS0uMjQtLjY4LS40LTFIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zdi0zLjZabTExLTIuOWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTEgMGEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFptLTguMDEgOC4yM0EyIDIgMCAwIDAgNiAxNmg4YTIgMiAwIDAgMCAxLjAxLS4yN2wtNC42Ni00LjU4YS41LjUgMCAwIDAtLjcgMGwtNC42NiA0LjU4WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VBcnJvd0ZvcndhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VBcnJvd0ZvcndhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDEwYTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0uOS02LjQuOS45SDUuNzRBMi43NSAyLjc1IDAgMCAwIDMgNy4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxLjU0bC0uOS45YS41LjUgMCAxIDAgLjcxLjdsMS43Ni0xLjc1YS41LjUgMCAwIDAgMC0uN0w3LjEgMi45YS41LjUgMCAxIDAtLjcuN1pNMTEgNS41YTUuNSA1LjUgMCAwIDEtOCA0LjlWMTRjMCAuNjUuMiAxLjI1LjU2IDEuNzRsNS4zOS01LjNhMS41IDEuNSAwIDAgMSAyLjEgMGw1LjQgNS4zYy4zNC0uNDkuNTUtMS4xLjU1LTEuNzRWNmEzIDMgMCAwIDAtMy0zaC0zLjZjLjM4Ljc1LjYgMS42LjYgMi41Wk0xMi41IDhhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTAgMWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1ptLTguMjMgNy40NWMuNDkuMzUgMS4wOC41NSAxLjczLjU1aDhjLjY1IDAgMS4yNC0uMiAxLjczLS41NWwtNS4zOC01LjNhLjUuNSAwIDAgMC0uNyAwbC01LjM4IDUuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlQXJyb3dGb3J3YXJkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZUFycm93Rm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDEwYTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0uOS02LjQuOS45SDUuNzRBMi43NSAyLjc1IDAgMCAwIDMgNy4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxLjU0bC0uOS45YS41LjUgMCAxIDAgLjcxLjdsMS43Ni0xLjc1YS41LjUgMCAwIDAgMC0uN0w3LjEgMi45YS41LjUgMCAxIDAtLjcuN1pNMyAxMC40Yy4zMi4xNi42NS4zIDEgLjRWMTRjMCAuMzcuMS43Mi4yOCAxLjAybDQuNjctNC41OWExLjUgMS41IDAgMCAxIDIuMSAwbDQuNjcgNC41OWMuMTgtLjMuMjgtLjY1LjI4LTEuMDJWNmEyIDIgMCAwIDAtMi0yaC0zLjJjLS4xLS4zNS0uMjQtLjY4LS40LTFIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zdi0zLjZabTExLTIuOWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTEgMGEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFptLTguMDEgOC4yM0EyIDIgMCAwIDAgNiAxNmg4YTIgMiAwIDAgMCAxLjAxLS4yN2wtNC42Ni00LjU4YS41LjUgMCAwIDAtLjcgMGwtNC42NiA0LjU4WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VCb3JkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VCb3JkZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA2aDh2Ny43OEwxMS4yIDExYTEuNyAxLjcgMCAwIDAtMi40IDBMNiAxMy44VjZabTUuNSAxLjVhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm0tMSA0LjIgMi4zIDIuM0g3LjJsMi4zLTIuM2EuNy43IDAgMCAxIDEgMFpNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0xYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlQm9yZGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZUJvcmRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA3LjVhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWk02IDVhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg2Wm0wIDFoOHY3Ljc4TDExLjIgMTFhMS43IDEuNyAwIDAgMC0yLjQgMEw2IDEzLjhWNlptNC41IDUuNyAyLjMgMi4zSDcuMmwyLjMtMi4zYS43LjcgMCAwIDEgMSAwWk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBjMCAyLjAzLS43NSAzLjg4LTIgNS4yOWwtNC45NS00Ljg3YTEuNSAxLjUgMCAwIDAtMi4xIDBMNCAxNS4yOUE4IDggMCAxIDEgMTggMTBabS03LjY1IDEuMTNMMTUuMyAxNmE3Ljk3IDcuOTcgMCAwIDEtMTAuNTggMGw0Ljk0LTQuODdjLjItLjE5LjUtLjE5LjcgMFptMi40LTIuNjNhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlQ2lyY2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZUNpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2E3IDcgMCAwIDAtNS4yOSAxMS41OWw0LjI0LTQuMTdhMS41IDEuNSAwIDAgMSAyLjEgMGw0LjI0IDQuMTdBNyA3IDAgMCAwIDEwIDNabTAgMTRjMS43NSAwIDMuMzUtLjY0IDQuNTgtMS43bC00LjIzLTQuMTdhLjUuNSAwIDAgMC0uNyAwTDUuNDIgMTUuM0E2Ljk3IDYuOTcgMCAwIDAgMTAgMTdabS04LTdhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTExLTIuNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFptMSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VDb3B5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlQ29weUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDZhMyAzIDAgMCAxIDMtM2g2YTMgMyAwIDAgMSAzIDN2NmMwIC42NS0uMiAxLjI1LS41NSAxLjc0TDEyLjIgOS41YTEuNzEgMS43MSAwIDAgMC0yLjQyIDBsLTQuMjQgNC4yNEEyLjk5IDIuOTkgMCAwIDEgNSAxMlY2Wm0zLjUgMS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMyAyLjcgNC4yNCA0LjI1Yy0uNS4zNC0xLjEuNTUtMS43NC41NUg4Yy0uNjUgMC0xLjI1LS4yLTEuNzQtLjU1bDQuMjQtNC4yNGEuNzEuNzEgMCAwIDEgMSAwWm0yLjc0IDUuOEEzIDMgMCAwIDEgMTIgMTdINy41QTQuNSA0LjUgMCAwIDEgMyAxMi41VjhhMyAzIDAgMCAxIDEtMi4yNHY2Ljc0QTMuNSAzLjUgMCAwIDAgNy41IDE2aDYuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZUNvcHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlQ29weVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDcuNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTUgNmEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNIOGEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjZjMCAuMzcuMS43Mi4yOCAxLjAyTDkuNzkgOS41YTEuNzEgMS43MSAwIDAgMSAyLjQyIDBsMy41MSAzLjUyQTIgMiAwIDAgMCAxNiAxMlY2YTIgMiAwIDAgMC0yLTJIOFptNy4wMiA5LjcyLTMuNTItMy41MWEuNzEuNzEgMCAwIDAtMSAwbC0zLjUyIDMuNTFBMiAyIDAgMCAwIDggMTRoNmEyIDIgMCAwIDAgMS4wMi0uMjhaTTEyIDE3YTMgMyAwIDAgMCAyLjI0LTFINy41QTMuNSAzLjUgMCAwIDEgNCAxMi41VjUuNzZBMyAzIDAgMCAwIDMgOHY0LjVBNC41IDQuNSAwIDAgMCA3LjUgMTdIMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjUgOGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjNjLS43LjAzLTEuMzcuMzEtMS45Ljg0bC0yLjMgMi4zLTEuNzUtMS43YTEuNSAxLjUgMCAwIDAtMi4xIDBsLTUuNCA1LjNDMy4yMiAxNS4yNCAzIDE0LjY0IDMgMTRWNlptOS41IDNhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabS0yLjIzIDUuNjcgMS44Mi0xLjgxLTEuNzQtMS43MWEuNS41IDAgMCAwLS43IDBsLTUuMzggNS4zYy40OC4zNCAxLjA4LjU1IDEuNzMuNTVoMy4yMmwuMjEtLjg1YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDhabS43LjcgNC44NC00LjgyYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA4bC4zNy0xLjVjLjEtLjM4LjMtLjczLjU4LTEuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgNy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2M2MtLjM0LjAyLS42OC4xLTEgLjIzVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OGMwIC4zNy4xLjcyLjI4IDEuMDJsNC42Ny00LjU5YTEuNSAxLjUgMCAwIDEgMi4xIDBsMS43NSAxLjcyLS43MS43LTEuNzQtMS43YS41LjUgMCAwIDAtLjcgMGwtNC42NiA0LjU3Yy4zLjE4LjY0LjI4IDEuMDEuMjhoMy40N2wtLjA0LjE1LS4yMS44NUg2YTMgMyAwIDAgMS0zLTNWNlptNy45OCA5LjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wOGwuMzctMS41Yy4xLS4zOC4zLS43My41OC0xLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VHbG9iZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZUdsb2JlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNTUgMi4xNUE4LjkgOC45IDAgMCAwIDQuMDEgNWgyLjk4YTguOSA4LjkgMCAwIDAtLjU0LTIuODUgMi45MyAyLjkzIDAgMCAwLS41My0uOTFDNS43MyAxLjA0IDUuNTkgMSA1LjUgMWMtLjEgMC0uMjMuMDUtLjQyLjI0LS4xOC4xOS0uMzYuNS0uNTMuOTFabS0uNzItLjgzQTkuOTIgOS45MiAwIDAgMCAzIDVIMS4wM2E0LjUgNC41IDAgMCAxIDIuOC0zLjY4Wm0zLjM0IDBBOS45MiA5LjkyIDAgMCAxIDcuOTkgNWgxLjk4YTQuNSA0LjUgMCAwIDAtMi44LTMuNjhaTTkuOTcgNkg4YTkuOTIgOS45MiAwIDAgMS0uODIgMy42OEE0LjUgNC41IDAgMCAwIDkuOTcgNlpNNS41IDEwYy4xIDAgLjIzLS4wNS40Mi0uMjQuMTgtLjE5LjM2LS41LjUzLS45MS4zLS43My41LTEuNzIuNTQtMi44NUg0LjAxYTguOSA4LjkgMCAwIDAgLjU0IDIuODVjLjE3LjQyLjM1LjcyLjUzLjkxLjE5LjIuMzMuMjQuNDIuMjRabS0xLjY3LS4zMkE0LjUgNC41IDAgMCAxIDEuMDMgNkgzYTkuOTIgOS45MiAwIDAgMCAuODIgMy42OFpNNS41IDExYTUuNSA1LjUgMCAwIDAgNC45LThIMTRhMyAzIDAgMCAxIDMgM3Y4YzAgLjY1LS4yIDEuMjUtLjU2IDEuNzRsLTUuMzktNS4zYTEuNSAxLjUgMCAwIDAtMi4xIDBsLTUuNCA1LjNDMy4yMiAxNS4yNSAzIDE0LjY0IDMgMTR2LTMuNmMuNzUuMzggMS42LjYgMi41LjZabTctM2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMCAxYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0tOC4yMyA3LjQ1Yy40OS4zNSAxLjA4LjU1IDEuNzMuNTVoOGMuNjUgMCAxLjI0LS4yIDEuNzMtLjU1bC01LjM4LTUuM2EuNS41IDAgMCAwLS43IDBsLTUuMzggNS4zWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VHbG9iZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VHbG9iZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41NSAyLjE1QTguOSA4LjkgMCAwIDAgNC4wMSA1aDIuOThhOC45IDguOSAwIDAgMC0uNTQtMi44NSAyLjkzIDIuOTMgMCAwIDAtLjUzLS45MUM1LjczIDEuMDQgNS41OSAxIDUuNSAxYy0uMSAwLS4yMy4wNS0uNDIuMjQtLjE4LjE5LS4zNi41LS41My45MVptLS43Mi0uODNBOS45MiA5LjkyIDAgMCAwIDMgNUgxLjAzYTQuNSA0LjUgMCAwIDEgMi44LTMuNjhabTMuMzQgMEE5LjkyIDkuOTIgMCAwIDEgNy45OSA1aDEuOThhNC41IDQuNSAwIDAgMC0yLjgtMy42OFpNOS45NyA2SDhhOS45MiA5LjkyIDAgMCAxLS44MiAzLjY4QTQuNSA0LjUgMCAwIDAgOS45NyA2Wk01LjUgMTBjLjEgMCAuMjMtLjA1LjQyLS4yNC4xOC0uMTkuMzYtLjUuNTMtLjkxLjMtLjczLjUtMS43Mi41NC0yLjg1SDQuMDFhOC45IDguOSAwIDAgMCAuNTQgMi44NWMuMTcuNDIuMzUuNzIuNTMuOTEuMTkuMi4zMy4yNC40Mi4yNFptLTEuNjctLjMyQTQuNSA0LjUgMCAwIDEgMS4wMyA2SDNhOS45MiA5LjkyIDAgMCAwIC44MiAzLjY4Wk0xNCA0aC0zLjJjLS4xLS4zNS0uMjQtLjY4LS40LTFIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zdi0zLjZjLjMyLjE2LjY1LjMgMSAuNFYxNGMwIC4zNy4xLjcyLjI4IDEuMDJsNC42Ny00LjU5YTEuNSAxLjUgMCAwIDEgMi4xIDBsNC42NyA0LjU5Yy4xOC0uMy4yOC0uNjUuMjgtMS4wMlY2YTIgMiAwIDAgMC0yLTJabTAgMy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWk02IDE2aDhhMiAyIDAgMCAwIDEuMDEtLjI3bC00LjY2LTQuNThhLjUuNSAwIDAgMC0uNyAwbC00LjY2IDQuNThBMiAyIDAgMCAwIDYgMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2NmMwIC42NS4yIDEuMjUuNTUgMS43NEw3LjYgOS43YTIgMiAwIDAgMSAyLjgyIDBsNC4wNCA0LjAzYy4zNC0uNS41NS0xLjEuNTUtMS43NFY2YTMgMyAwIDAgMC0zLTNINlptNi41IDMuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTEuMjQgNy45NUw5LjcgMTAuNGExIDEgMCAwIDAtMS40MiAwbC00LjAzIDQuMDRjLjUuMzQgMS4xLjU1IDEuNzQuNTVoNmMuNjUgMCAxLjI1LS4yIDEuNzQtLjU1Wk01Ljc2IDE2QTMgMyAwIDAgMCA4IDE3aDQuNWE0LjUgNC41IDAgMCAwIDQuNS00LjVWOGEzIDMgMCAwIDAtMS0yLjI0djYuNzRjMCAuMTIgMCAuMjQtLjAyLjM2QTMuNSAzLjUgMCAwIDEgMTIuNSAxNkg1Ljc2WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA3LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0zIDZhMyAzIDAgMCAxIDMtM2g2YTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY2YzAgLjM3LjEuNzIuMjggMS4wMmwzLjMtMy4zMWEyIDIgMCAwIDEgMi44MyAwbDMuMzEgMy4zQTIgMiAwIDAgMCAxNCAxMlY2YTIgMiAwIDAgMC0yLTJINlptMy43IDYuNDFhMSAxIDAgMCAwLTEuNCAwbC0zLjMyIDMuMzFBMiAyIDAgMCAwIDYgMTRoNmEyIDIgMCAwIDAgMS4wMi0uMjhsLTMuMzEtMy4zWk04IDE3YTMgMyAwIDAgMS0yLjI0LTFoNi43NGEzLjUgMy41IDAgMCAwIDMuNS0zLjVWNS43NkEzIDMgMCAwIDEgMTcgOHY0LjVhNC41IDQuNSAwIDAgMS00LjUgNC41SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZU11bHRpcGxlT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlTXVsdGlwbGVPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQgMS40MUEyLjk5IDIuOTkgMCAwIDAgMyA2djZjMCAuNjUuMiAxLjI1LjU1IDEuNzRMNy42IDkuN2EyIDIgMCAwIDEgLjktLjUybDYuMSA2LjExYy0uNTguNDQtMS4zLjctMi4wOS43SDUuNzZBMyAzIDAgMCAwIDggMTdoNC41YzEuMDYgMCAyLjA0LS4zNyAyLjgtLjk4bDEuODUgMS44M2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTUuOCAxMy42OGwuNzYuNzZjLjI4LS41OS40NC0xLjI1LjQ0LTEuOTRWOGEzIDMgMCAwIDAtMS0yLjI0djYuNzRhMy41NiAzLjU2IDAgMCAxLS4yIDEuMThaTTUuMjIgMy4xbDkuNjggOS42OEEzIDMgMCAwIDAgMTUgMTJWNmEzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLS43OC4xWm03LjI4IDMuNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTEuMjQgNy45NUw5LjcgMTAuNGExIDEgMCAwIDAtMS40MiAwbC00LjAzIDQuMDRjLjUuMzQgMS4xLjU1IDEuNzQuNTVoNmMuNjUgMCAxLjI1LS4yIDEuNzQtLjU1WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VNdWx0aXBsZU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VNdWx0aXBsZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQgMS40MUEyLjk5IDIuOTkgMCAwIDAgMyA2djZhMyAzIDAgMCAwIDMgM2g2Yy42NSAwIDEuMjUtLjIgMS43NC0uNTVsLjg2Ljg1Yy0uNTkuNDQtMS4zMS43LTIuMS43SDUuNzZBMyAzIDAgMCAwIDggMTdoNC41YzEuMDYgMCAyLjA0LS4zNyAyLjgtLjk4bDEuODUgMS44M2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVptNS42MyA3LjA0YTIgMiAwIDAgMC0uOS41Mkw0LjI5IDEzQTIgMiAwIDAgMSA0IDEyVjZhMiAyIDAgMCAxIC4yOC0xLjAybDQuMiA0LjJaTTE0IDZ2NS44OGwuOS45QTMgMyAwIDAgMCAxNSAxMlY2YTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtLjc4LjFsLjkuOUgxMmEyIDIgMCAwIDEgMiAyWm0xLjggNy42OC43Ni43NmMuMjgtLjU5LjQ0LTEuMjUuNDQtMS45NFY4YTMgMyAwIDAgMC0xLTIuMjR2Ni43NGEzLjU2IDMuNTYgMCAwIDEtLjIgMS4xOFpNMTEuNSA3LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMS44IDIuOTEgMy4zMiAzLjMxQTIgMiAwIDAgMSAxMiAxNEg2YTIgMiAwIDAgMS0xLjAyLS4yOGwzLjMxLTMuM2ExIDEgMCAwIDEgMS40MiAwWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQgMS40MUEyLjk5IDIuOTkgMCAwIDAgMyA2djhjMCAuNjUuMiAxLjI1LjU1IDEuNzRsNS4zOS01LjM5Yy4xMi0uMTIuMjYtLjIyLjQxLS4yOWwuOTguOThhLjUuNSAwIDAgMC0uNjguMDJsLTUuMzkgNS4zOWMuNS4zNCAxLjEuNTUgMS43NC41NWg4Yy42NSAwIDEuMjUtLjIgMS43NC0uNTVsMS40IDEuNGEuNS41IDAgMCAwIC43MS0uN2wtMTUtMTVaTTE3IDE0YTMgMyAwIDAgMS0uMS43OEw1LjIyIDMuMUEzIDMgMCAwIDEgNiAzaDhhMyAzIDAgMCAxIDMgM3Y4Wm0tMi41LTcuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQgMS40MUEyLjk5IDIuOTkgMCAwIDAgMyA2djhhMyAzIDAgMCAwIDMgM2g4Yy42NSAwIDEuMjUtLjIgMS43NC0uNTVsMS40IDEuNGEuNS41IDAgMCAwIC43MS0uN2wtMTUtMTVabTYuNTYgNy45N2ExLjUgMS41IDAgMCAwLS40Ni4zMWwtNC42NyA0LjU5QTIgMiAwIDAgMSA0IDE0VjZhMiAyIDAgMCAxIC4yOC0xLjAybDUuMTMgNS4xNFpNNiAxNmEyIDIgMCAwIDEtMS4wMS0uMjdsNC42Ni00LjU4Yy4yLS4yLjUtLjIuNyAwbDQuNjYgNC41OEEyIDIgMCAwIDEgMTQgMTZINlpNMTYgNnY3Ljg4bC45LjlBMyAzIDAgMCAwIDE3IDE0VjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0uNzguMWwuOS45SDE0YTIgMiAwIDAgMSAyIDJabS0yIDEuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMFptLTEgMGEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVByb2hpYml0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDEwYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTFjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45QTMuNSAzLjUgMCAwIDEgNS41IDlaTTIuNyA3LjZhMy41IDMuNSAwIDAgMSA0LjktNC45TDIuNyA3LjZaTTEzIDcuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNNS41IDExYTUuNSA1LjUgMCAwIDAgNC45LThIMTRhMyAzIDAgMCAxIDMgM3Y4YzAgLjY1LS4yIDEuMjUtLjU2IDEuNzRsLTUuMzktNS4zYTEuNSAxLjUgMCAwIDAtMi4xIDBsLTUuNCA1LjNDMy4yMiAxNS4yNSAzIDE0LjY0IDMgMTR2LTMuNmMuNzUuMzggMS42LjYgMi41LjZaTTE0IDcuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMFpNNiAxN2MtLjY1IDAtMS4yNC0uMi0xLjczLS41NWw1LjM4LTUuM2MuMi0uMi41LS4yLjcgMGw1LjM4IDUuM2MtLjQ5LjM1LTEuMDguNTUtMS43My41NUg2WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVByb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC0xYy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOUEzLjUgMy41IDAgMCAxIDUuNSA5Wm0yLjEtNi4zTDIuNyA3LjZhMy41IDMuNSAwIDAgMSA0LjktNC45Wk0zIDEwLjRjLjMyLjE2LjY1LjMgMSAuNFYxNGMwIC4zNy4xLjcyLjI4IDEuMDJsNC42Ny00LjU5YTEuNSAxLjUgMCAwIDEgMi4xIDBsNC42NyA0LjU5Yy4xOC0uMy4yOC0uNjUuMjgtMS4wMlY2YTIgMiAwIDAgMC0yLTJoLTMuMmMtLjEtLjM1LS4yNC0uNjgtLjQtMUgxNGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTN2LTMuNlptMS45OSA1LjMzQTIgMiAwIDAgMCA2IDE2aDhhMiAyIDAgMCAwIDEuMDEtLjI3bC00LjY2LTQuNThhLjUuNSAwIDAgMC0uNyAwbC00LjY2IDQuNThaTTE0IDcuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTEgMGEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlUmVmbGVjdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVJlZmxlY3Rpb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA2YTMgMyAwIDAgMSAzLTNoNmEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTEuMzQgMi41QTMgMyAwIDAgMSAxNiAxN2EuNS41IDAgMCAxLTEgMCAyIDIgMCAwIDAtMi0yIC41LjUgMCAwIDEgMC0xaC0yLjVhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFIN2EuNS41IDAgMCAxIDAgMSAyIDIgMCAwIDAtMiAyIC41LjUgMCAwIDEtMSAwIDMgMyAwIDAgMSAxLjM0LTIuNUEzIDMgMCAwIDEgNCAxMlY2Wm0xLjk4IDcuNzIgMy41My0zLjUyYS43LjcgMCAwIDEgLjk4IDBsMy41MyAzLjUyYy4yOS0uMTcuNTMtLjQxLjctLjdMMTEuMiA5LjQ5YTEuNyAxLjcgMCAwIDAtMi40IDBsLTMuNTIgMy41M2MuMTcuMjkuNDEuNTMuNy43Wk0xMyA3YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlUmVmbGVjdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VSZWZsZWN0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDNhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAxLjM0IDIuNUEzIDMgMCAwIDAgNCAxN2EuNS41IDAgMCAwIDEgMGMwLTEuMS45LTIgMi0yYS41LjUgMCAwIDAgMC0xIDIgMiAwIDAgMS0xLjAyLS4yOGwzLjUzLTMuNTJhLjcuNyAwIDAgMSAuOTggMGwzLjUzIDMuNTJBMiAyIDAgMCAxIDEzIDE0YS41LjUgMCAwIDAgMCAxIDIgMiAwIDAgMSAyIDIgLjUuNSAwIDAgMCAxIDAgMyAzIDAgMCAwLTEuMzQtMi41QTMgMyAwIDAgMCAxNiAxMlY2YTMgMyAwIDAgMC0zLTNIN1ptMS44IDYuNS0zLjUyIDMuNTJBMiAyIDAgMCAxIDUgMTJWNmMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0uMjggMS4wMkwxMS4yIDkuNDlhMS43IDEuNyAwIDAgMC0yLjQgMFptLjcgNC41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaTTEzIDdhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNSA4YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGMwIC42NS0uMiAxLjI1LS41NiAxLjc0bC01LjM5LTUuM2ExLjUgMS41IDAgMCAwLTEuNy0uMjhBNC41IDQuNSAwIDAgMCAzIDguNzZWNlptOS41IDNhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabS0uNTkgOEgxNGMuNjUgMCAxLjI0LS4yIDEuNzMtLjU1bC01LjM4LTUuM2EuNS41IDAgMCAwLS41OC0uMDkgNC41IDQuNSAwIDAgMS0uMiAzLjM4bDIgMmMuMTUuMTYuMjcuMzYuMzQuNTZabS0zLjYtMi40YTMuNSAzLjUgMCAxIDAtLjcuN2wyLjU0IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w4LjMgMTQuNlpNNS41IDE1YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3YyLjc2Yy4zLS4yLjY0LS4zOCAxLS41VjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGMwIC4zNy0uMS43Mi0uMjggMS4wMmwtNC42Ny00LjU5YTEuNSAxLjUgMCAwIDAtMS43LS4yOGMuMTYuMjkuMy42LjQxLjkxYS41LjUgMCAwIDEgLjU5LjA5bDQuNjYgNC41OEEyIDIgMCAwIDEgMTQgMTZoLTIuODhsLjQ0LjQ0Yy4xNi4xNi4yOC4zNi4zNS41NkgxNGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm02LjUgNmExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptMC0xYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWm0tNC4yIDYuNmEzLjUgMy41IDAgMSAwLS43LjdsMi41NSAyLjU1YS41LjUgMCAwIDAgLjctLjdMOC4zIDE0LjZabS0yLjguNGEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlU2hhZG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlU2hhZG93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjZjMCAuNjUuMiAxLjI1LjU1IDEuNzRMNi44IDguNDlhMS43IDEuNyAwIDAgMSAyLjQgMGw0LjI1IDQuMjVjLjM0LS41LjU1LTEuMS41NS0xLjc0VjVhMyAzIDAgMCAwLTMtM0g1Wm0wIDEyYy0uNjUgMC0xLjI1LS4yLTEuNzQtLjU1TDcuNTEgOS4yYS43LjcgMCAwIDEgLjk4IDBsNC4yNSA0LjI1Yy0uNS4zNC0xLjEuNTUtMS43NC41NUg1Wm02LThhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNSA5YTMgMyAwIDAgMCAzIDNoM2E2IDYgMCAwIDAgNi02VjlhMyAzIDAgMCAwLTMtM3Y1YTQgNCAwIDAgMS00IDRINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlU2hhZG93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVNoYWRvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyYTMgMyAwIDAgMC0zIDN2NmEzIDMgMCAwIDAgMyAzaDZhMyAzIDAgMCAwIDMtM1Y1YTMgMyAwIDAgMC0zLTNINVpNMyA1YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLS4yOCAxLjAyTDkuMiA4LjQ5YTEuNyAxLjcgMCAwIDAtMi40IDBsLTMuNTIgMy41M0EyIDIgMCAwIDEgMyAxMVY1Wm01LjUgNC4yIDMuNTIgMy41MkEyIDIgMCAwIDEgMTEgMTNINWEyIDIgMCAwIDEtMS4wMi0uMjhMNy41MSA5LjJhLjcuNyAwIDAgMSAuOTggMFpNMTEgNmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS01IDlhMyAzIDAgMCAwIDMgM2gzYTYgNiAwIDAgMCA2LTZWOWEzIDMgMCAwIDAtMy0zdjVhNCA0IDAgMCAxLTQgNEg2WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm01LjEyLjI4LS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS40IDEuNEwyLjMgMy4xaC0uMDJhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNWEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDdhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44bC0xLjA3LS4zNWEyLjIgMi4yIDAgMCAxLTEuMzgtMS40TDUuOTIuMjhhLjQyLjQyIDAgMCAwLS44IDBaTS4yMiA4LjIxbC43Ni0uMjVhMS41OCAxLjU4IDAgMCAwIDEtMWwuMjUtLjc2YS4zLjMgMCAwIDEgLjU3IDBsLjI1Ljc3YTEuNTggMS41OCAwIDAgMCAuOTggMWwuNzcuMjRhLjMuMyAwIDAgMSAwIC41N2wtLjc3LjI1YTEuNTggMS41OCAwIDAgMC0xIDFsLS4yNC43N2EuMy4zIDAgMCAxLS41OCAwbC0uMjQtLjc3YTEuNTggMS41OCAwIDAgMC0xLTFMLjIgOC44YS4zLjMgMCAwIDEgMC0uNTdoLjAyWm0zLjAyIDMuNTZjLS4wNy4wNS0uMTUuMS0uMjQuMTNWMTRjMCAuNjUuMiAxLjI1LjU2IDEuNzRsNS4zOS01LjNhMS41IDEuNSAwIDAgMSAyLjEgMGw1LjQgNS4zYy4zNC0uNDkuNTUtMS4xLjU1LTEuNzRWNmEzIDMgMCAwIDAtMy0zSDkuOTFhMS40MiAxLjQyIDAgMCAxLS4xNyAxLjMyYy0uMTcuMjQtLjQxLjQzLS43MS41M2wtMS4wNi4zNWExLjMgMS4zIDAgMCAwLS40Ny4yOWMtLjExLjExLS4yLjI0LS4zLjQ3bC0uMzUgMS4xYy0uMS4yNC0uMjUuNDctLjUyLjY4LS4xNC4xLS4zLjE3LS40NS4yMWExLjMgMS4zIDAgMCAxLS43NyAxLjc5bC0uNzcuMjVhLjY0LjY0IDAgMCAwLS4yMi4xNC41Mi41MiAwIDAgMC0uMTQuMjJsLS4yNi44Yy0uMS4yNS0uMjYuNDYtLjQ4LjYyWk02IDE3Yy0uNjUgMC0xLjI0LS4yLTEuNzMtLjU1bDUuMzgtNS4zYy4yLS4yLjUtLjIuNyAwbDUuMzggNS4zYy0uNDkuMzUtMS4wOC41NS0xLjczLjU1SDZabTYuNS04LjI1YTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZVNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltYWdlU3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtNS4xMi4yOC0uMzUgMS4wN2EyLjIgMi4yIDAgMCAxLTEuNCAxLjRMMi4zIDMuMWgtLjAyYS40Mi40MiAwIDAgMCAwIC44bDEuMDcuMzVhMi4yIDIuMiAwIDAgMSAxLjQgMS40bC4zNSAxLjA3YS40Mi40MiAwIDAgMCAuOCAwbC4zNS0xLjA3YTIuMiAyLjIgMCAwIDEgMS40LTEuNGwxLjA3LS4zNWEuNDIuNDIgMCAwIDAgMC0uOGwtMS4wNy0uMzVhMi4yIDIuMiAwIDAgMS0xLjM4LTEuNEw1LjkyLjI4YS40Mi40MiAwIDAgMC0uOCAwWk0uMjIgOC4yMWwuNzYtLjI1YTEuNTggMS41OCAwIDAgMCAxLTFsLjI1LS43NmEuMy4zIDAgMCAxIC41NyAwbC4yNS43N2ExLjU4IDEuNTggMCAwIDAgLjk4IDFsLjc3LjI0YS4zLjMgMCAwIDEgMCAuNTdsLS43Ny4yNWExLjU4IDEuNTggMCAwIDAtMSAxbC0uMjQuNzdhLjMuMyAwIDAgMS0uNTggMGwtLjI0LS43N2ExLjU4IDEuNTggMCAwIDAtMS0xTC4yIDguOGEuMy4zIDAgMCAxIDAtLjU3aC4wMlpNMyAxNHYtMi4xYy4wOS0uMDMuMTctLjA4LjI0LS4xMy4yMi0uMTYuMzgtLjM3LjQ4LS42MmwuMjYtLjguMDItLjA0VjE0YzAgLjM3LjEuNzIuMjggMS4wMmw0LjY3LTQuNTlhMS41IDEuNSAwIDAgMSAyLjEgMGw0LjY3IDQuNTljLjE4LS4zLjI4LS42NS4yOC0xLjAyVjZhMiAyIDAgMCAwLTItMkg5LjlhMS40MiAxLjQyIDAgMCAwIC4wMS0xSDE0YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1ptMTEtNi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0xIDguNWEyIDIgMCAwIDAgMS4wMS0uMjdsLTQuNjYtNC41OGEuNS41IDAgMCAwLS43IDBsLTQuNjYgNC41OEEyIDIgMCAwIDAgNiAxNmg4WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VTcGxpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVNwbGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVpNNyAzLjVjMC0uMjguMjItLjUuNS0uNUg4YS41LjUgMCAwIDEgMCAxaC0uNWEuNS41IDAgMCAxLS41LS41Wk03LjUgMTZhLjUuNSAwIDAgMCAwIDFIOGEuNS41IDAgMCAwIDAtMWgtLjVaTTIgNmEzIDMgMCAwIDEgMy0zaC41YS41LjUgMCAwIDEgMCAxSDVhMiAyIDAgMCAwLTIgMnYuNWEuNS41IDAgMCAxLTEgMFY2Wm0zIDExYTMgMyAwIDAgMS0zLTN2LS41YS41LjUgMCAwIDEgMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMSAwIDFINVpNMi41IDhjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVptOSAzLjNWMTdIMTVjLjY1IDAgMS4yNS0uMiAxLjc0LS41NWwtLjEtLjEtNS4xNC01LjA2Wm0wLTguM3Y3LjA4Yy4yLjA3LjM5LjE5LjU1LjM1bDUuMyA1LjIyLjEuMDljLjM0LS41LjU1LTEuMS41NS0xLjc0VjZhMyAzIDAgMCAwLTMtM2gtMy41Wk0xNiA3LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBJbWFnZVNwbGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbWFnZVNwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHYxNWEuNS41IDAgMCAwIDEgMHYtMTVabTEgMTQuNUgxNWEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM2gtMy41djFIMTVhMiAyIDAgMCAxIDIgMnY4YzAgLjM3LS4xLjcyLS4yOCAxLjAybC00LjY3LTQuNTlhMS41IDEuNSAwIDAgMC0uNTUtLjM0djEuMmw0LjUxIDQuNDRBMiAyIDAgMCAxIDE1IDE2aC0zLjV2MVptMi04YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0wLTJhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTIgNmEzIDMgMCAwIDEgMy0zIC41LjUgMCAwIDEgMCAxIDIgMiAwIDAgMC0yIDJ2LjVhLjUuNSAwIDAgMS0xIDBWNlptNS0zYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFIN1pNMyA4LjVhLjUuNSAwIDAgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM1pNNSAxN2EzIDMgMCAwIDEtMy0zdi0uNWEuNS41IDAgMCAxIDEgMHYuNWMwIDEuMS45IDIgMiAyYS41LjUgMCAwIDEgMCAxWm0xLjUtLjVjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIDAtMUg3YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlU3RhY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VTdGFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3YzaDMuM2wyLjQ2LTIuNDdjLjY5LS42OCAxLjgtLjY4IDIuNDggMEwxMy43IDlIMTdWNmEzIDMgMCAwIDAtMy0zSDZabTExIDd2NGEzIDMgMCAwIDEtMi4zNiAyLjkzbC0zLjQtMy40YTEuNzUgMS43NSAwIDAgMC0yLjQ4IDBsLTMuNCAzLjRBMyAzIDAgMCAxIDMgMTR2LTRoMTRaTTYuNyAxN2g2LjZsLTIuNzctMi43NmEuNzUuNzUgMCAwIDAtMS4wNiAwTDYuNzEgMTdabTEtOGg0LjZsLTEuNzctMS43NmEuNzUuNzUgMCAwIDAtMS4wNiAwTDcuNzEgOVptNy44LTMuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDhhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VTdGFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VTdGFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptNy43IDEzLTIuNDYtMi40N2ExLjc1IDEuNzUgMCAwIDAtMi40OCAwTDYuMyAxNkg2YTIgMiAwIDAgMS0yLTJ2LTRoMTJ2NGEyIDIgMCAwIDEtMiAyaC0uM1ptLTYgMCAxLjc3LTEuNzZjLjMtLjMuNzctLjMgMS4wNiAwTDEyLjI5IDE2SDcuNzFaTTE2IDloLTIuOGwtMS45Ni0xLjk3YTEuNzUgMS43NSAwIDAgMC0yLjQ4IDBMNi44IDlINFY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjNaTTguMiA5bDEuMjctMS4yNmMuMy0uMy43Ny0uMyAxLjA2IDBMMTEuNzkgOUg4LjIxWk0xNSA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEgNy41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEltYWdlVGFibGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VUYWJsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM2gzVjNaTTMgN3Y2aDNWN0gzWm00LTFoNlYzSDd2M1ptNy0zdjNoM2EzIDMgMCAwIDAtMy0zWm0zIDRoLTN2NmgzVjdabTAgN2gtM3YzYTMgMyAwIDAgMCAzLTNabS00IDN2LTNIN3YzaDZabS03IDB2LTNIM2EzIDMgMCAwIDAgMyAzWk03IDd2NmguM2wxLjUtMS41YTEuNyAxLjcgMCAwIDEgMi40IDBsMS41IDEuNWguM1Y3SDdabTQgMWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS4yOSA1SDguNzFsLjgtLjhhLjcuNyAwIDAgMSAuOTggMGwuOC44WlwiXSk7XG5leHBvcnQgY29uc3QgSW1hZ2VUYWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1hZ2VUYWJsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgOGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAyaDJWNFptMSAwdjJoNlY0SDdabTcgMHYyaDJhMiAyIDAgMCAwLTItMlptMiAzaC0ydjZoMlY3Wm0wIDdoLTJ2MmEyIDIgMCAwIDAgMi0yWm0tMyAydi0ySDd2Mmg2Wm0tNyAwdi0ySDRjMCAxLjEuOSAyIDIgMlptLTItM2gyVjdINHY2Wm0zLTZ2NmguM2wxLjUtMS41YTEuNyAxLjcgMCAwIDEgMi40IDBsMS41IDEuNWguM1Y3SDdabTQuMjkgNi0uOC0uOGEuNy43IDAgMCAwLS45OCAwbC0uOC44aDIuNThaXCJdKTtcbmV4cG9ydCBjb25zdCBJbW1lcnNpdmVSZWFkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW1tZXJzaXZlUmVhZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDQuNzV2NS40NWExLjUgMS41IDAgMCAwLTEuNSAwVjQuNzVhLjI1LjI1IDAgMCAwLS4yNS0uMjVIMTJjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1VjEyaC0uMjVjLS41MiAwLS45OC4yNy0xLjI1LjY3VjUuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDMuNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxMC41YzAgLjE0LjExLjI1LjI1LjI1SDhjLjQgMCAuNzctLjIgMS0uNXYuNWMwIC40Mi4xOC44LjQ2IDEuMDgtLjQyLjI3LS45Mi40Mi0xLjQ2LjQySDMuNzVDMi43OCAxNyAyIDE2LjIyIDIgMTUuMjVWNC43NUMyIDMuNzggMi43OCAzIDMuNzUgM0g4Yy43OSAwIDEuNS4zMyAyIC44Ni41LS41MyAxLjIxLS44NiAyLS44Nmg0LjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1Wm0uMTMgNi40NWMuMTIuMTYuMjkuNDUuNDUuODcuMjUuNjguNCAxLjUuNCAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NC0uNTJsLjExLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMSAxIC44LS42Wm0tNC40NC0uMTZjLjE5LjA4LjMxLjI2LjMxLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgMTZoLS43OWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoLjhsMS44NS0xLjg1YS41LjUgMCAwIDEgLjU0LS4xMVptMy4wMiAxLjkzYy0uMS0uMy0uMi0uNTUtLjI4LS43YS41LjUgMCAwIDAtLjkuNDUgNC42IDQuNiAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA3LjE4YS41LjUgMCAwIDAgLjg5LjQ0IDUuNTMgNS41MyAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI3LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBJbW1lcnNpdmVSZWFkZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ltbWVyc2l2ZVJlYWRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggNC41djUuN2ExLjUgMS41IDAgMCAwLTEtLjE4VjQuNWEuNS41IDAgMCAwLS41LS41SDEyYy0uODMgMC0xLjUuNjctMS41IDEuNVYxMmMtLjM4IDAtLjczLjE0LTEgLjM4VjUuNUM5LjUgNC42NyA4LjgzIDQgOCA0SDMuNWEuNS41IDAgMCAwLS41LjV2MTFjMCAuMjguMjIuNS41LjVIOGMuMzkgMCAuNzQtLjE1IDEtLjM5LjAzLjM3LjE5LjcuNDMuOTQtLjQuMjgtLjkuNDUtMS40My40NUgzLjVBMS41IDEuNSAwIDAgMSAyIDE1LjV2LTExQzIgMy42NyAyLjY3IDMgMy41IDNIOGMuODIgMCAxLjU0LjQgMiAxIC40Ni0uNiAxLjE4LTEgMi0xaDQuNWMuODMgMCAxLjUuNjcgMS41IDEuNVptLTQuMyA2LjU0Yy4xOC4wOC4zLjI2LjMuNDZ2NmEuNS41IDAgMCAxLS44NS4zNUwxMS4yOSAxNmgtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm00LjQ1LjE2Yy4xMi4xNi4yOC40NS40NC44Ny4yNi42OC40MSAxLjUuNDEgMi40MyAwIC45NC0uMTUgMS43NS0uNCAyLjQzLS4xNy40Mi0uMzMuNy0uNDUuODdhLjUuNSAwIDAgMS0uODUtLjUybC4xMi0uMTlhNS45IDUuOSAwIDAgMCAuNTgtMi42IDUuOSA1LjkgMCAwIDAtLjU4LTIuNThsLS4wNy0uMTFhLjUuNSAwIDAgMSAuOC0uNlptLTEuNDMgMS43N2MtLjEtLjMtLjItLjU1LS4yNy0uN2EuNS41IDAgMSAwLS45LjQ1QTQuNiA0LjYgMCAwIDEgMTYgMTQuNWEzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDRBNS41IDUuNSAwIDAgMCAxNyAxNC41YzAtLjUtLjEtMS4wMi0uMjgtMS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEltcG9ydGFudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbXBvcnRhbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmEzIDMgMCAwIDAtMyAzYzAgMi4yMy43OSA1LjIgMS4yMiA2LjY5LjI0Ljc5Ljk3IDEuMzEgMS43OCAxLjMxczEuNTQtLjUyIDEuNzgtMS4zMUMxMi4yIDEwLjIgMTMgNy4yNSAxMyA1YTMgMyAwIDAgMC0zLTNabTAgMTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00WlwiXSk7XG5leHBvcnQgY29uc3QgSW1wb3J0YW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbXBvcnRhbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhMiAyIDAgMCAwLTIgMmMwIDIuMDcuNzUgNC45MSAxLjE4IDYuNC4xLjM2LjQ0LjYuODIuNi4zOSAwIC43MS0uMjQuODItLjZDMTEuMjUgOS45NCAxMiA3LjEgMTIgNWEyIDIgMCAwIDAtMi0yWk03IDVhMyAzIDAgMCAxIDYgMGMwIDIuMjUtLjc5IDUuMjEtMS4yMiA2LjY5LS4yNC44LS45NyAxLjMxLTEuNzggMS4zMXMtMS41NC0uNTItMS43OC0xLjMxQzcuOCAxMC4yIDcgNy4yMyA3IDVabTMgMTBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm0tMiAxYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEluY29nbml0b0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbmNvZ25pdG9GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4wOCA4Ljc1YTM0LjkgMzQuOSAwIDAgMSAxMS44NiAwbDEuNDguMjRhLjUuNSAwIDEgMCAuMTYtLjk4bC0xLjEzLS4xOWExLjQyIDEuNDIgMCAwIDAtLjA4LS4yMmwtMS42NS0zLjdhMS41IDEuNSAwIDAgMC0xLjM3LS45aC02LjdjLS42IDAtMS4xMy4zNS0xLjM3LjlMMy42MyA3LjZsLS4wOS4yM0wyLjQyIDhhLjUuNSAwIDAgMCAuMTYuOTggOTAuOSA5MC45IDAgMCAxIDEuNS0uMjRaTTMgMTMuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpNNS41IDEwYTMuNSAzLjUgMCAxIDAgMy40NiA0aDIuMDhhMy41IDMuNSAwIDEgMCAwLTFIOC45NmEzLjUgMy41IDAgMCAwLTMuNDYtM1ptNi41IDMuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEluY29nbml0b1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5jb2duaXRvUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjE3IDQuMjhBLjUuNSAwIDAgMSA2LjYyIDRoNi43NmMuMiAwIC4zNi4xLjQ1LjI4bDEuMjIgMi40NGEuNS41IDAgMSAwIC45LS40NGwtMS4yMy0yLjQ1QTEuNSAxLjUgMCAwIDAgMTMuMzggM0g2LjYyYTEuNSAxLjUgMCAwIDAtMS4zNC44M0w0LjA1IDYuMjhhLjUuNSAwIDAgMCAuOS40NGwxLjIyLTIuNDRabTExLjI1IDQuNzFDMTEuNDcgOCA4LjUyIDggMi41OCA5YS41LjUgMCAwIDEtLjE2LS45OEM4LjQ3IDcgMTEuNTIgNyAxNy41OCA4YS41LjUgMCAxIDEtLjE2Ljk4Wk01LjUgMTFhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaTTIgMTMuNWEzLjUgMy41IDAgMCAxIDYuOTYtLjVoMi4wOGEzLjUgMy41IDAgMSAxIDAgMUg4Ljk2QTMuNSAzLjUgMCAwIDEgMiAxMy41Wk0xNC41IDExYTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01WlwiXSk7XG5leHBvcnQgY29uc3QgSW5mb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbmZvRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwIDggOCAwIDAgMCAxNiAwWk05LjUgOC45MWEuNS41IDAgMCAxIDEgMFYxMy42YS41LjUgMCAwIDEtMSAwVjguOVptLS4yNS0yLjE2YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBJbmZvUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJbmZvUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDguOTFhLjUuNSAwIDAgMC0xIC4wOXY0LjZhLjUuNSAwIDAgMCAxLS4xVjguOTFabS4zLTIuMTZhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpNMTggMTBhOCA4IDAgMSAwLTE2IDAgOCA4IDAgMCAwIDE2IDBaTTMgMTBhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBJbmZvU2hpZWxkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0luZm9TaGllbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgOWE4IDggMCAxIDAtNi4yOCA3LjgxIDcuMDUgNy4wNSAwIDAgMS0uNzItMi45M3YtMi43OWMwLS43NS41OS0xLjQyIDEuNC0xLjQyLjkgMCAxLjc2LS4zNyAyLjYtMS4yNGExLjM5IDEuMzkgMCAwIDEgMiAwIDUuMDYgNS4wNiAwIDAgMCAxIC44VjlaTTguNSA3LjkxYS41LjUgMCAwIDEgMSAwVjEyLjZhLjUuNSAwIDAgMS0xIDBWNy45Wm0tLjI1LTIuMTZhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFptOC43NSA0LjZhNC42MyA0LjYzIDAgMCAxLTEtLjU5Yy0uMjQtLjE4LS40OC0uNC0uNzItLjY0YS4zOS4zOSAwIDAgMC0uNTYgMCA0LjUgNC41IDAgMCAxLTMuMzIgMS41NS40LjQgMCAwIDAtLjQuNDF2Mi43N2MuMDMuOC4xOCAxLjUxLjQ0IDIuMTVBNC44MSA0LjgxIDAgMCAwIDEzIDE4Yy41Mi40IDEuMTUuNzMgMS44Ny45OC4wOS4wMy4xNy4wMy4yNiAwIDIuNTYtLjg5IDMuODctMi43MSAzLjg3LTUuNFYxMWEuNC40IDAgMCAwLS40LS4zMyA0LjI0IDQuMjQgMCAwIDEtMS42LS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEluZm9TaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0luZm9TaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDlhOCA4IDAgMSAwLTYuMjggNy44MSA1LjkzIDUuOTMgMCAwIDEtLjM5LS45NCA3IDcgMCAxIDEgNS42NC03LjQ3Yy4wMiAwIC4wMy4wMi4wNC4wM2E1LjA2IDUuMDYgMCAwIDAgLjk5LjhWOVpNOS4wNSA1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpNOSA3LjVhLjUuNSAwIDAgMSAuNS40MXY0LjU5YS41LjUgMCAwIDEtMSAuMVY4YzAtLjI4LjIyLS41LjUtLjVabTggMi44NWE0LjYzIDQuNjMgMCAwIDEtMS0uNTljLS4yNC0uMTgtLjQ4LS40LS43Mi0uNjRhLjM5LjM5IDAgMCAwLS41NiAwIDQuNSA0LjUgMCAwIDEtMy4zMiAxLjU1LjQuNCAwIDAgMC0uNC40MXYyLjc3Yy4wMy44LjE4IDEuNTEuNDQgMi4xNUE0LjgxIDQuODEgMCAwIDAgMTMgMThjLjUyLjQgMS4xNS43MyAxLjg3Ljk4LjA5LjAzLjE3LjAzLjI2IDAgMi41Ni0uODkgMy44Ny0yLjcxIDMuODctNS40VjExYS40LjQgMCAwIDAtLjQtLjMzIDQuMjQgNC4yNCAwIDAgMS0xLjYtLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgSW5rU3Ryb2tlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lua1N0cm9rZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDIuOTNjLjA0LS40LjQtLjcxLjgyLS42OGwzLjA0LjI4YzIuMTYuMiA0LjIyLjQ1IDUuOTIuNzMgMS42Ni4yNyAzLjA4LjYgMy44NS45OC4yLjEuNC4yMy41Ny40MS4xOC4yLjM2LjUxLjI4LjktLjA2LjM2LS4zLjYtLjQ4LjczYTMgMyAwIDAgMS0uNy4zN2MtMS4wMi40LTIuOTUuOC01Ljk4IDEuMTctMS40NC4xOC0yLjUuMzYtMy4yMi41MmE0Mi40NCA0Mi40NCAwIDAgMCA0LjI0LjU3YzEuMDIuMDkgMi4xLjIzIDMuMDIuNC40Ni4wOS45LjE5IDEuMjYuMy4zNi4xLjcxLjIzLjk3LjQuMTMuMS4zLjIzLjQyLjQ1LjE0LjI1LjE3LjU2LjAzLjg1LS4xMS4yNC0uMy40LS40NS41LS4xNi4xLS4zNS4xOC0uNTQuMjUtLjc3LjI5LTIuMTUuNTUtNC4yOS44LTIuMTIuMjMtMy40LjU0LTQuMTEuODUtLjMuMTMtLjQ1LjI0LS41MS4zLjAzLjA0LjA3LjEuMTYuMTcuMTUuMTQuMzYuMy42NC40NS41Ni4zMiAxLjI5LjYxIDEuOTguODRsMi42NC44MWEuNzUuNzUgMCAxIDEtLjQ0IDEuNDRMOS4yIDE2LjljLS43NS0uMjUtMS41OC0uNTgtMi4yNS0uOTYtLjM0LS4yLS42Ny0uNDEtLjkzLS42NWEyLjAzIDIuMDMgMCAwIDEtLjYyLS45NGMtLjEyLS40NC0uMDEtLjg4LjI4LTEuMjQuMjYtLjMzLjY1LS41OCAxLjEtLjc3LjkzLS40IDIuNC0uNzMgNC41NS0uOTggMS4zNy0uMTUgMi4zNi0uMzEgMy4wNC0uNDZsLS41NS0uMTJjLS44Ni0uMTYtMS44OS0uMjktMi44Ni0uMzdhNDMuOTQgNDMuOTQgMCAwIDEtMy43LS40NmMtLjUzLS4wOS0xLS4yLTEuNC0uMy0uMzctLjExLS43NS0uMjQtMS4wMi0uNDNhMS4xOSAxLjE5IDAgMCAxLS40My0uNDkuOTMuOTMgMCAwIDEgLjA2LS44N2MuMTMtLjIyLjMyLS4zNi40Ny0uNDQuMTctLjEuMzYtLjE4LjU2LS4yNi44LS4yOCAyLjIyLS41NiA0LjM3LS44MyAyLjctLjMzIDQuMzgtLjY2IDUuMy0uOTYtLjY0LS4yLTEuNjMtLjQyLTIuOS0uNjNhODguOTYgODguOTYgMCAwIDAtNS44LS43MmwtMy4wNS0uMjdhLjc1Ljc1IDAgMCAxLS42OC0uODJaXCJdKTtcbmV4cG9ydCBjb25zdCBJbmtTdHJva2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lua1N0cm9rZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAyLjk2YS41LjUgMCAwIDEgLjU0LS40NmwzLjA1LjI3YzIuMTUuMiA0LjIxLjQ1IDUuOS43MyAxLjY3LjI4IDMuMDQuNiAzLjc3Ljk2LjE5LjEuMzcuMjEuNTEuMzYuMTQuMTYuMjcuNC4yMi42OWEuOTUuOTUgMCAwIDEtLjQuNTdjLS4xNi4xMy0uMzguMjQtLjYzLjM0LS45OS40LTIuODkuNzctNS45MiAxLjE1YTIyLjU4IDIyLjU4IDAgMCAwLTQuMTMuNzhsLjMuMWMuMzQuMDkuNzcuMTggMS4yOC4yNyAxIC4xOCAyLjI1LjMzIDMuNTkuNDQgMSAuMDkgMi4wNy4yMiAyLjk5LjQuNDUuMDguODcuMTggMS4yMy4yOS4zNS4xLjY3LjIyLjkuMzguMTIuMDcuMjYuMTguMzQuMzUuMS4xOC4xMy40LjAzLjYyYS45Ny45NyAwIDAgMS0uMzcuNGMtLjEzLjA4LS4zLjE2LS40OS4yMy0uNzQuMjctMi4wOC41My00LjIyLjc3YTE2IDE2IDAgMCAwLTQuMi44OGMtLjM3LjE2LS41NS4zLS42My40LS4wNi4wOC0uMDUuMTEtLjA0LjE0LjAyLjA3LjA4LjE5LjI2LjM1LjE3LjE1LjQuMzEuNy40OC41Ny4zMyAxLjMxLjYzIDIuMDIuODZsMi42NC44MWEuNS41IDAgMCAxLS4zLjk2bC0yLjY1LS44MmMtLjc0LS4yNC0xLjU1LS41Ny0yLjIxLS45NC0uMzMtLjE5LS42NC0uNC0uODgtLjYyYTEuNzggMS43OCAwIDAgMS0uNTUtLjgxYy0uMS0uMzYtLjAxLS43Mi4yMy0xLjAzLjIzLS4yOC41OC0uNSAxLjAyLS43Ljg4LS4zOCAyLjMyLS43IDQuNDctLjk1IDIuMS0uMjQgMy4zMy0uNDggMy45NS0uN2ExMS44IDExLjggMCAwIDAtMS40NC0uMzcgMzAgMzAgMCAwIDAtMi44OS0uMzggNDMuNjYgNDMuNjYgMCAwIDEtMy42OC0uNDVjLS41Mi0uMS0uOTgtLjItMS4zNy0uMy0uMzctLjEtLjcxLS4yNC0uOTUtLjRhLjk0Ljk0IDAgMCAxLS4zNC0uMzguNjguNjggMCAwIDEgLjA0LS42NGMuMS0uMTcuMjUtLjI4LjM5LS4zNi4xNC0uMDguMzItLjE2LjUyLS4yM2EyMy4zIDIzLjMgMCAwIDEgNC4zMS0uODJjMy4wNS0uMzggNC44My0uNzUgNS42OC0xLjA5LjEtLjA0LjItLjA4LjI2LS4xMmwtLjA0LS4wMWMtLjU3LS4zLTEuOC0uNi0zLjQ4LS44Ny0xLjY2LS4yNy0zLjctLjUyLTUuODQtLjcyTDMuNDYgMy41QS41LjUgMCAwIDEgMyAyLjk2WlwiXSk7XG5leHBvcnQgY29uc3QgSW5rU3Ryb2tlQXJyb3dEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lua1N0cm9rZUFycm93RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDIuOTNjLjA0LS40LjQtLjcxLjgyLS42OGwzLjA0LjI4YzIuMTYuMiA0LjIyLjQ1IDUuOTIuNzMgMS42Ni4yNyAzLjA4LjYgMy44NS45OC4yLjEuNC4yMy41Ny40MS4xOC4yLjM2LjUxLjI4LjktLjA2LjM2LS4zLjYtLjQ4LjczYTMgMyAwIDAgMS0uNy4zN2MtMS4wMi40LTIuOTUuOC01Ljk4IDEuMTctMS40NC4xOC0yLjUuMzYtMy4yMi41MmE0Mi40NCA0Mi40NCAwIDAgMCA0LjI0LjU3YzEuMDIuMDkgMi4xLjIzIDMuMDIuNC40Ni4wOS45LjE5IDEuMjYuMy4zNi4xLjcxLjIzLjk3LjRhMS4yNiAxLjI2IDAgMCAxIC40OS41OSAxLjc1IDEuNzUgMCAwIDAtMi4zMyAxLjY1di4xNmMtLjc2LjE1LTEuNzQuMy0yLjk5LjQ0LTIuMTIuMjQtMy40LjU1LTQuMTEuODYtLjMuMTMtLjQ1LjI0LS41MS4zLjAzLjA0LjA3LjEuMTYuMTcuMTUuMTQuMzYuMy42NC40NS41Ni4zMiAxLjI5LjYxIDEuOTguODRsMi42NC44MWEuNzUuNzUgMCAxIDEtLjQ0IDEuNDRMOS4yIDE2LjljLS43NS0uMjUtMS41OC0uNTgtMi4yNS0uOTYtLjM0LS4yLS42Ny0uNDEtLjkzLS42NWEyLjAzIDIuMDMgMCAwIDEtLjYyLS45NGMtLjEyLS40NC0uMDEtLjg4LjI4LTEuMjQuMjYtLjMzLjY1LS41OCAxLjEtLjc3LjkzLS40IDIuNC0uNzMgNC41NS0uOTggMS4zNy0uMTUgMi4zNi0uMzEgMy4wNC0uNDZsLS41NS0uMTJjLS44Ni0uMTYtMS44OS0uMjktMi44Ni0uMzdhNDMuOTQgNDMuOTQgMCAwIDEtMy43LS40NmMtLjUzLS4wOS0xLS4yLTEuNC0uMy0uMzctLjExLS43NS0uMjQtMS4wMi0uNDNhMS4xOSAxLjE5IDAgMCAxLS40My0uNDkuOTMuOTMgMCAwIDEgLjA2LS44N2MuMTMtLjIyLjMyLS4zNi40Ny0uNDQuMTctLjEuMzYtLjE4LjU2LS4yNi44LS4yOCAyLjIyLS41NiA0LjM3LS44MyAyLjctLjMzIDQuMzgtLjY2IDUuMy0uOTYtLjY0LS4yLTEuNjMtLjQyLTIuOS0uNjNhODguOTYgODguOTYgMCAwIDAtNS44LS43MmwtMy4wNS0uMjdhLjc1Ljc1IDAgMCAxLS42OC0uODJaTTE3IDEyLjI1YS43NS43NSAwIDAgMC0xLjUgMHY0LjE5bC0uNzItLjcyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMiAyYy4zLjMuNzcuMyAxLjA2IDBsMi0yYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLS43Mi43MnYtNC4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IElua1N0cm9rZUFycm93RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5rU3Ryb2tlQXJyb3dEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDIuOTZhLjUuNSAwIDAgMSAuNTQtLjQ2bDMuMDUuMjdjMi4xNS4yIDQuMjEuNDUgNS45LjczIDEuNjcuMjggMy4wNC42IDMuNzcuOTYuMTkuMS4zNy4yMS41MS4zNi4xNC4xNi4yNy40LjIyLjY5YS45NS45NSAwIDAgMS0uNC41N2MtLjE2LjEzLS4zOC4yNC0uNjMuMzQtLjk5LjQtMi44OS43Ny01LjkyIDEuMTUtMi4xNS4yNy0zLjQ0LjUzLTQuMS43N0g1LjlsLjMuMWMuMzQuMS43Ny4yIDEuMjguMjggMSAuMTggMi4yNS4zMyAzLjU5LjQ0IDEgLjA5IDIuMDcuMjIgMi45OS40LjQ1LjA4Ljg3LjE4IDEuMjMuMjkuMzUuMS42Ny4yMi45LjM4LjEyLjA3LjI2LjE4LjM0LjM1LjA4LjEzLjEuMjcuMDkuNDNMMTYuNSAxMWExLjUgMS41IDAgMCAwLTEuNDIgMS4wMmMtLjguMi0xLjk2LjQtMy42LjU4YTE2IDE2IDAgMCAwLTQuMTguODhjLS4zOC4xNi0uNTYuMy0uNjQuNC0uMDYuMDgtLjA1LjExLS4wNC4xNC4wMi4wNy4wOC4xOS4yNi4zNS4xNy4xNS40LjMxLjcuNDguNTcuMzMgMS4zMS42MyAyLjAyLjg2bDIuNjQuODFhLjUuNSAwIDAgMS0uMy45NmwtMi42NS0uODJjLS43NC0uMjQtMS41NS0uNTctMi4yMS0uOTQtLjMzLS4xOS0uNjQtLjQtLjg4LS42MmExLjc4IDEuNzggMCAwIDEtLjU1LS44MWMtLjEtLjM2LS4wMS0uNzIuMjMtMS4wMy4yMy0uMjguNTgtLjUgMS4wMi0uNy44OC0uMzggMi4zMi0uNyA0LjQ3LS45NSAyLjEtLjI0IDMuMzMtLjQ4IDMuOTUtLjdhMTEuOCAxMS44IDAgMCAwLTEuNDQtLjM3IDMwIDMwIDAgMCAwLTIuODktLjM4IDQzLjY2IDQzLjY2IDAgMCAxLTMuNjgtLjQ1Yy0uNTItLjEtLjk4LS4yLTEuMzctLjMtLjM3LS4xLS43MS0uMjQtLjk1LS40YS45NC45NCAwIDAgMS0uMzQtLjM4LjY4LjY4IDAgMCAxIC4wNC0uNjRjLjEtLjE3LjI1LS4yOC4zOS0uMzYuMTQtLjA4LjMyLS4xNi41Mi0uMjNhMjMuMyAyMy4zIDAgMCAxIDQuMzEtLjgyYzMuMDUtLjM4IDQuODMtLjc1IDUuNjgtMS4wOS4xLS4wNC4yLS4wOC4yNi0uMTJsLS4wNC0uMDFjLS41Ny0uMy0xLjgtLjYtMy40OC0uODctMS42Ni0uMjctMy43LS41Mi01Ljg0LS43MkwzLjQ2IDMuNUEuNS41IDAgMCAxIDMgMi45NlptMTQgOS41NGEuNS41IDAgMCAwLTEgMHY0LjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNyAxNy4yOVYxMi41WlwiXSk7XG5leHBvcnQgY29uc3QgSW5rU3Ryb2tlQXJyb3dVcERvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5rU3Ryb2tlQXJyb3dVcERvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NSAyLjkzYy4wNC0uNC40LS43MS44Mi0uNjhsMy4wNC4yOGMyLjE2LjIgNC4yMi40NSA1LjkyLjczIDEuNjYuMjcgMy4wOC42IDMuODUuOTguMi4xLjQuMjMuNTcuNDEuMTguMi4zNi41MS4yOC45LS4wNi4zNi0uMy42LS40OC43M2EzIDMgMCAwIDEtLjcuMzdjLTEuMDIuNC0yLjk1LjgtNS45OCAxLjE3LTEuNDQuMTgtMi41LjM2LTMuMjIuNTJhNDIuNDQgNDIuNDQgMCAwIDAgNC4yNC41NyAzMS4yMSAzMS4yMSAwIDAgMSAzLjUyLjVsLTEuMjggMS4yOWEzMS42IDMxLjYgMCAwIDAtMi4zNi0uMyA0My45NCA0My45NCAwIDAgMS0zLjctLjQ1Yy0uNTMtLjA5LTEtLjItMS40LS4zLS4zNy0uMTEtLjc1LS4yNC0xLjAyLS40M2ExLjE5IDEuMTkgMCAwIDEtLjQzLS40OS45My45MyAwIDAgMSAuMDYtLjg3Yy4xMy0uMjIuMzItLjM2LjQ3LS40NC4xNy0uMS4zNi0uMTguNTYtLjI2LjgtLjI4IDIuMjItLjU2IDQuMzctLjgzIDIuNy0uMzMgNC4zOC0uNjYgNS4zLS45Ni0uNjQtLjItMS42My0uNDItMi45LS42M2E4OC45NiA4OC45NiAwIDAgMC01LjgtLjcybC0zLjA1LS4yN2EuNzUuNzUgMCAwIDEtLjY4LS44MlptMTAuMTMgOC4yM2ExLjc1IDEuNzUgMCAwIDAtLjMyIDEuNTZjLS4zMi4wNS0uNjcuMDktMS4wNS4xMy0yLjEyLjI0LTMuNC41NS00LjExLjg2LS4zLjEzLS40NS4yNC0uNTEuMy4wMy4wNC4wNy4xLjE2LjE3LjE1LjE0LjM2LjMuNjQuNDUuNTYuMzIgMS4yOS42MSAxLjk4Ljg0bDIuNjQuODFhLjc1Ljc1IDAgMSAxLS40NCAxLjQ0TDkuMiAxNi45Yy0uNzUtLjI1LTEuNTgtLjU4LTIuMjUtLjk2LS4zNC0uMi0uNjctLjQxLS45My0uNjVhMi4wMyAyLjAzIDAgMCAxLS42Mi0uOTRjLS4xMi0uNDQtLjAxLS44OC4yOC0xLjI0LjI2LS4zMy42NS0uNTggMS4xLS43Ny45My0uNCAyLjQtLjczIDQuNTUtLjk4LjU4LS4wNiAxLjA5LS4xMyAxLjU0LS4yWm0zLjktMS40NGEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwuNzItLjcydjQuMzhsLS43Mi0uNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwyIDJjLjMuMy43Ny4zIDEuMDYgMGwyLTJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtLjcyLjcydi00LjM4bC43Mi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBJbmtTdHJva2VBcnJvd1VwRG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5rU3Ryb2tlQXJyb3dVcERvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMi45NmEuNS41IDAgMCAxIC41NC0uNDZsMy4wNS4yN2MyLjE1LjIgNC4yMS40NSA1LjkuNzMgMS42Ny4yOCAzLjA0LjYgMy43Ny45Ni4xOS4xLjM3LjIxLjUxLjM2LjE0LjE2LjI3LjQuMjIuNjlhLjk1Ljk1IDAgMCAxLS40LjU3Yy0uMTYuMTMtLjM4LjI0LS42My4zNC0uOTkuNC0yLjg5Ljc3LTUuOTIgMS4xNS0yLjE1LjI3LTMuNDQuNTMtNC4xLjc3SDUuOWwuMy4xYy4zNC4xLjc3LjIgMS4yOC4yOCAxIC4xOCAyLjI1LjMzIDMuNTkuNDRhMzAuOTYgMzAuOTYgMCAwIDEgNC4wMS42M2wtLjgzLjgzYTMwIDMwIDAgMCAwLTMuMjctLjQ2IDQzLjY2IDQzLjY2IDAgMCAxLTMuNjgtLjQ1Yy0uNTItLjEtLjk4LS4yLTEuMzctLjMtLjM3LS4xLS43MS0uMjQtLjk1LS40YS45NC45NCAwIDAgMS0uMzQtLjM4LjY4LjY4IDAgMCAxIC4wNC0uNjRjLjEtLjE3LjI1LS4yOC4zOS0uMzYuMTQtLjA4LjMyLS4xNi41Mi0uMjNhMjMuMyAyMy4zIDAgMCAxIDQuMzEtLjgyYzMuMDUtLjM4IDQuODMtLjc1IDUuNjgtMS4wOS4xLS4wNC4yLS4wOC4yNi0uMTJsLS4wNC0uMDFjLS41Ny0uMy0xLjgtLjYtMy40OC0uODctMS42Ni0uMjctMy43LS41Mi01Ljg0LS43MkwzLjQ2IDMuNUEuNS41IDAgMCAxIDMgMi45NlptMTAuNDQgOC40OGExLjUgMS41IDAgMCAwLS40NC45N2wtMS41MS4yYTE2IDE2IDAgMCAwLTQuMi44N2MtLjM3LjE2LS41NS4zLS42My40LS4wNi4wOC0uMDUuMTEtLjA0LjE0LjAyLjA3LjA4LjE5LjI2LjM1LjE3LjE1LjQuMzEuNy40OC41Ny4zMyAxLjMxLjYzIDIuMDIuODZsMi42NC44MWEuNS41IDAgMCAxLS4zLjk2bC0yLjY1LS44MmMtLjc0LS4yNC0xLjU1LS41Ny0yLjIxLS45NC0uMzMtLjE5LS42NC0uNC0uODgtLjYyYTEuNzggMS43OCAwIDAgMS0uNTUtLjgxYy0uMS0uMzYtLjAxLS43Mi4yMy0xLjAzLjIzLS4yOC41OC0uNSAxLjAyLS43Ljg4LS4zOCAyLjMyLS43IDQuNDctLjk1Ljg4LS4xIDEuNi0uMiAyLjItLjNsLS4xMy4xM1ptMy40MS0xLjNhLjUuNSAwIDAgMC0uNyAwbC0yIDJhLjUuNSAwIDAgMCAuNy43MUwxNiAxMS43MXY1LjU4bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yYS41LjUgMCAwIDAtLjctLjdMMTcgMTcuMjl2LTUuNThsMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IElua2luZ1Rvb2xGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5raW5nVG9vbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUyIDE1YTYuMiA2LjIgMCAwIDAtLjAyLjVjMCAuNTguMDcgMS4xNi4yNyAxLjYyLjIxLjQ3LjYuODggMS4yMy44OHMxLjAyLS40MSAxLjIzLS44OGMuMi0uNDYuMjctMS4wNC4yNy0xLjYyIDAtLjE3IDAtLjM0LS4wMi0uNUg4LjUyWk0yLjUgNS41di0zYzAtLjI4LjIyLS41LjUtLjVoMTRjLjI4IDAgLjUuMjIuNS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41SDRhMS41IDEuNSAwIDAgMS0xLjUtMS41Wk00Ljc1IDhsMi43MiA1LjQ1YTEgMSAwIDAgMCAuOS41NWgzLjI2YTEgMSAwIDAgMCAuOS0uNTVMMTUuMjUgOEg0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgSW5raW5nVG9vbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5raW5nVG9vbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDIuNWEuNS41IDAgMCAwLTEgMHYzQzIuNSA2LjMzIDMuMTcgNyA0IDdoLjJsMy41OCA3LjE3Yy4xNi4zMy40My41Ny43NS43MS0uMDUuNjYtLjAzIDEuMzEuMSAxLjgzLjEuMzMuMjMuNjQuNDUuODguMjMuMjUuNTQuNDEuOTIuNDFzLjctLjE2LjkzLS40MWMuMjItLjI0LjM1LS41NS40My0uODguMTQtLjUyLjE3LTEuMTcuMTEtMS44My4zMi0uMTQuNi0uMzkuNzUtLjdMMTUuODEgN0gxNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNhLjUuNSAwIDAgMC0xIDB2M2EuNS41IDAgMCAxLS41LjVINGEuNS41IDAgMCAxLS41LS41di0zWk01LjMgN2g5LjRsLTMuMzcgNi43MmEuNS41IDAgMCAxLS40NS4yOEg5LjEyYS41LjUgMCAwIDEtLjQ1LS4yOEw1LjMxIDdabTQuMjIgOGguOTZjLjA0LjU4LjAxIDEuMDktLjA4IDEuNDYtLjA2LjIzLS4xNC4zOC0uMjEuNDVBLjIzLjIzIDAgMCAxIDEwIDE3YS4yMy4yMyAwIDAgMS0uMTgtLjA5IDEuMDkgMS4wOSAwIDAgMS0uMjEtLjQ1Yy0uMS0uMzctLjEzLS44OC0uMDktMS40NlpcIl0pO1xuZXhwb3J0IGNvbnN0IElua2luZ1Rvb2xBY2NlbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5raW5nVG9vbEFjY2VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA2VjNIM3YzYzAgLjI4LjIyLjUuNS41aDEzQS41LjUgMCAwIDAgMTcgNlptLTQuNTUgMS0yLjQgNC43OGEuNS41IDAgMSAwIC45LjQ0TDEzLjU2IDcgMTMgNi41bC0uNTUuNVpNMTAgMTcuNWMuNTUgMCAxLS42NyAxLTEuNXMtLjQ1LTEuNS0xLTEuNS0xIC42Ny0xIDEuNS40NSAxLjUgMSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBJbnByaXZhdGVBY2NvdW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lucHJpdmF0ZUFjY291bnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMy4xMiA2LjVIMTB2LTFoMy43Yy4xNC0uMzIuMjMtLjY1LjI3LTFIMTB2LTFoMy45N2EzLjk3IDMuOTcgMCAwIDAtLjI2LTFIMTB2LTFoMy4xMkE0IDQgMCAwIDAgMTAgMlptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDEwIDE4YzEuNyAwIDMuMjgtLjMyIDQuNTItMUgxMHYtMWg1Ljg0Yy4yOC0uMy41Mi0uNjQuNy0xSDEwdi0xaDYuOWMuMDYtLjMyLjEtLjY1LjEtMWgtN3YtMWg2LjczQTIgMiAwIDAgMCAxNSAxMUg1WlwiXSk7XG5leHBvcnQgY29uc3QgSW5wcml2YXRlQWNjb3VudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5wcml2YXRlQWNjb3VudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2YTQgNCAwIDAgMSA3LjEyLTIuNUgxMFYzYTMgMyAwIDAgMCAwIDZ2LS41aDMuMTJBNCA0IDAgMCAxIDYgNlptNy43IDEuNUgxMHYtMWgzLjk3Yy0uMDQuMzUtLjEzLjY4LS4yNiAxWm0uMjctMmEzLjk3IDMuOTcgMCAwIDAtLjI2LTFIMTB2MWgzLjk3Wk0zIDEzYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDEuNzMgMUg1YTEgMSAwIDAgMC0xIDFjMCAxLjMuNjIgMi4yOCAxLjY3IDIuOTVBOC4xNiA4LjE2IDAgMCAwIDEwIDE3aDQuNTJjLTEuMjQuNjgtMi44MyAxLTQuNTIgMWE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDMgMTNabTcgMXYtMWg3YzAgLjM1LS4wNC42OC0uMSAxSDEwWm02LjU0IDFjLS4xOC4zNi0uNDIuNy0uNyAxaC0xLjU5LjAxSDEwdi0xaDYuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBJbnNlcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW5zZXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTAgMTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTJhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2MlpNMi41IDkuNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBJbnNlcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0luc2VydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINlpNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMiAxM2ExIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2Wm0tMi0xYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjJabS0yLTZjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVBLjUuNSAwIDAgMSAyIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgSW9zQ2hldnJvblJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lvc0NoZXZyb25SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4yMiA2LjAzYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsNC41IDQuNWMuMy4zLjMuNzcgMCAxLjA2bC00LjUgNC41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZMMTYuMTkgMTBsLTMuOTctMy45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IElvc0NoZXZyb25SaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSW9zQ2hldnJvblJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi42NSA1Ljg1YS41LjUgMCAwIDEgLjctLjdsNC41IDQuNWMuMi4yLjIuNSAwIC43bC00LjUgNC41YS41LjUgMCAwIDEtLjctLjdMMTYuNzkgMTBsLTQuMTQtNC4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IElvdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJb3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgNGEyIDIgMCAwIDEtMi42NSAxLjg5bC0xLjI4IDEuOTRBMyAzIDAgMCAxIDEzIDkuOTlsMS4xNy4yYTIgMiAwIDEgMS0uMTYuOTlsLTEuMTctLjJhMy4wMSAzLjAxIDAgMCAxLTEuNDMgMS42N2wuNDUgMS4zNkgxMmEyIDIgMCAxIDEtMS4xLjMxbC0uNDQtMS4zNWEzLjAyIDMuMDIgMCAwIDEtMi44Ny0xLjE4bC0xLjY0Ljc4QTIgMiAwIDAgMSA0IDE1YTIgMiAwIDEgMSAxLjUtMy4zMmwxLjY0LS43OUEzIDMgMCAwIDEgNy43NyA4bC0uOTMtMS4xN2EyIDIgMCAxIDEgLjc3LS42M2wuOTUgMS4xOGEyLjk5IDIuOTkgMCAwIDEgMi42OC0uMWwxLjI4LTEuOTRBMiAyIDAgMSAxIDE2IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBJb3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lvdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgNGEyIDIgMCAwIDEtMi42NSAxLjg5bC0xLjI4IDEuOTRBMyAzIDAgMCAxIDEzIDkuOTlsMS4xNy4yYTIgMiAwIDEgMS0uMTYuOTlsLTEuMTctLjJhMy4wMSAzLjAxIDAgMCAxLTEuNDMgMS42N2wuNDUgMS4zNkgxMmEyIDIgMCAxIDEtMS4xLjMxbC0uNDQtMS4zNWEzLjAyIDMuMDIgMCAwIDEtMi44Ny0xLjE4bC0xLjY0Ljc4QTIgMiAwIDAgMSA0IDE1YTIgMiAwIDEgMSAxLjUtMy4zMmwxLjY0LS43OUEzIDMgMCAwIDEgNy43NyA4bC0uOTMtMS4xN2EyIDIgMCAxIDEgLjc3LS42M2wuOTUgMS4xOGEyLjk5IDIuOTkgMCAwIDEgMi42OC0uMWwxLjI4LTEuOTRBMiAyIDAgMSAxIDE2IDRabS0xIDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWk02IDZhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00IDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0tNSAxYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptOCAzYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptMy00YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IElvdEFsZXJ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0lvdEFsZXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDRhMiAyIDAgMCAxLTIuNjUgMS44OGwtMS4yOCAxLjk1LjMuMzNBNCA0IDAgMCAwIDkuNSAxMnYuOTZhMyAzIDAgMCAxLTEuOTEtMS4xN2wtMS42NC43OEEyIDIgMCAwIDEgNCAxNWEyIDIgMCAxIDEgMS41LTMuMzJsMS42NC0uNzlBMyAzIDAgMCAxIDcuNzcgOGwtLjkzLTEuMTdhMiAyIDAgMSAxIC43Ny0uNjNsLjk1IDEuMThhMi45OSAyLjk5IDAgMCAxIDIuNjgtLjFsMS4yOC0xLjk0QTIgMiAwIDEgMSAxNiA0Wm0tNS41IDhhMyAzIDAgMCAxIDYgMHYybDEuMzIgMS4xMmEuNS41IDAgMCAxLS4zMi44OGgtOGEuNS41IDAgMCAxLS4zMi0uODhMMTAuNSAxNHYtMlptMyA2YTEuNSAxLjUgMCAwIDEtMS40Mi0xaDIuODNjLS4yLjU4LS43NiAxLTEuNDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IElvdEFsZXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdJb3RBbGVydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgNGEyIDIgMCAwIDEtMi42NSAxLjg4bC0xLjI4IDEuOTUuMy4zM2MtLjM0LjEtLjY2LjI0LS45Ni40M0EyIDIgMCAwIDAgOCAxMGEyIDIgMCAwIDAgMS41IDEuOTR2MS4wMmEzIDMgMCAwIDEtMS45MS0xLjE3bC0xLjY0Ljc4QTIgMiAwIDAgMSA0IDE1YTIgMiAwIDEgMSAxLjUtMy4zMmwxLjY0LS43OUEzIDMgMCAwIDEgNy43NyA4bC0uOTMtMS4xN2EyIDIgMCAxIDEgLjc3LS42M2wuOTUgMS4xOGEyLjk5IDIuOTkgMCAwIDEgMi42OC0uMWwxLjI4LTEuOTRBMiAyIDAgMSAxIDE2IDRabS0xIDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWk02IDZhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMSA3YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNS41LTFhMyAzIDAgMCAxIDYgMHYybDEuMzIgMS4xMmEuNS41IDAgMCAxLS4zMi44OGgtOGEuNS41IDAgMCAxLS4zMi0uODhMMTAuNSAxNHYtMlptMyA2YTEuNSAxLjUgMCAwIDEtMS40Mi0xaDIuODNjLS4yLjU4LS43NiAxLTEuNDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEphdmFzY3JpcHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSmF2YXNjcmlwdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm03LjI1IDEuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djVjMCAuMTQtLjExLjI1LS4yNS4yNWgtMWEuNzUuNzUgMCAwIDAgMCAxLjVoMWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabTEuMjUgMS43NXYxYzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aC41Yy4xNCAwIC4yNS4xMS4yNS4yNXYxYzAgLjE0LS4xMS4yNS0uMjUuMjVoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLS41YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0xYzAtLjE0LjExLS4yNS4yNS0uMjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEphdmFzY3JpcHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0phdmFzY3JpcHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgOS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDEuNWEuNS41IDAgMCAxIDAgMUgxM2EuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMmEuNS41IDAgMCAxIDAtMWgxLjVhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41SDEzYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMVptLS41LTFhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMCAwIDFoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVaTTMgNnY4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDNabTMtMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBKb3lzdGlja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdKb3lzdGlja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDcuOTZhMyAzIDAgMSAwLTEgMFYxMWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVoOHYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yVjcuOTZaTTMgMTZjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEuNWEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEtLjUtLjVWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBKb3lzdGlja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignSm95c3RpY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00Wm0uNSA0Ljk2YTMgMyAwIDEgMC0xIDBWMTFoLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41di41SDVhMiAyIDAgMCAwLTIgMnYyLjVjMCAuMjguMjIuNS41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNVYxNWEyIDIgMCAwIDAtMi0yaC0xdi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJWNy45NlpNNy41IDEyaDVjLjI4IDAgLjUuMjIuNS41di41SDd2LS41YzAtLjI4LjIyLS41LjUtLjVaTTUgMTRoMTBhMSAxIDAgMCAxIDEgMXYySDR2LTJhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEtleUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyA3LjVDNyA0LjQyIDkuNDIgMiAxMi41IDJTMTggNC40MiAxOCA3LjUgMTUuNTggMTMgMTIuNSAxM2MtLjUgMC0xLS4wNS0xLjUtLjE4VjEzYTEgMSAwIDAgMS0xIDFIOXYxYTEgMSAwIDAgMS0xIDFIN3YuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTEuNTljMC0uNC4xNi0uNzguNDQtMS4wNmw0LjU0LTQuNTRjLjEzLS4xMy4yLS4zNy4xNC0uNjRBNS42MiA1LjYyIDAgMCAxIDcgNy41Wk0xNSA2YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEtleVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTIuNS00YTUuNDUgNS40NSAwIDAgMC01LjM4IDYuNjdjLjA2LjI3IDAgLjUtLjE0LjY0bC00LjU0IDQuNTRBMS41IDEuNSAwIDAgMCAyIDE0LjkxdjEuNTljMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTZoMWExIDEgMCAwIDAgMS0xdi0xaDFhMSAxIDAgMCAwIDEtMXYtLjE4Yy41LjEzIDEgLjE4IDEuNS4xOCAzLjA4IDAgNS41LTIuNDIgNS41LTUuNVMxNS41OCAyIDEyLjUgMlpNOCA3LjVDOCA0Ljk4IDkuOTggMyAxMi41IDNTMTcgNC45OCAxNyA3LjUgMTUuMDIgMTIgMTIuNSAxMmMtLjY2IDAtMS4yNy0uMS0xLjc4LS4zNWEuNS41IDAgMCAwLS43Mi40NXYuOUg5YTEgMSAwIDAgMC0xIDF2MUg3YTEgMSAwIDAgMC0xIDF2LjVhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTEuNTlhLjUuNSAwIDAgMSAuMTUtLjM1bDQuNTQtNC41NGMuNDMtLjQzLjUyLTEuMDQuNC0xLjU2LS4wNi0uMy0uMDktLjYzLS4wOS0uOTZaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlDb21tYW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleUNvbW1hbmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS43NSA0LjVDNi40NCA0LjUgNyA1LjA2IDcgNS43NVY3SDUuNzVhMS4yNSAxLjI1IDAgMSAxIDAtMi41Wk04LjUgN1Y1Ljc1QTIuNzUgMi43NSAwIDEgMCA1Ljc1IDguNUg3djNINS43NWEyLjc1IDIuNzUgMCAxIDAgMi43NSAyLjc1VjEzaDN2MS4yNWEyLjc1IDIuNzUgMCAxIDAgMi43NS0yLjc1SDEzdi0zaDEuMjVhMi43NSAyLjc1IDAgMSAwLTIuNzUtMi43NVY3aC0zWm0wIDEuNWgzdjNoLTN2LTNaTTEzIDdWNS43NUExLjI1IDEuMjUgMCAxIDEgMTQuMjUgN0gxM1ptMCA2aDEuMjVBMS4yNSAxLjI1IDAgMSAxIDEzIDE0LjI1VjEzWm0tNiAwdjEuMjVBMS4yNSAxLjI1IDAgMSAxIDUuNzUgMTNIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEtleUNvbW1hbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleUNvbW1hbmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA0QzYuMzMgNCA3IDQuNjcgNyA1LjVWN0g1LjVhMS41IDEuNSAwIDEgMSAwLTNaTTggN1Y1LjVBMi41IDIuNSAwIDEgMCA1LjUgOEg3djRINS41QTIuNSAyLjUgMCAxIDAgOCAxNC41VjEzaDR2MS41YTIuNSAyLjUgMCAxIDAgMi41LTIuNUgxM1Y4aDEuNUEyLjUgMi41IDAgMSAwIDEyIDUuNVY3SDhabTAgMWg0djRIOFY4Wm01LTFWNS41QTEuNSAxLjUgMCAxIDEgMTQuNSA3SDEzWm0wIDZoMS41YTEuNSAxLjUgMCAxIDEtMS41IDEuNVYxM1ptLTYgMHYxLjVBMS41IDEuNSAwIDEgMSA1LjUgMTNIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEtleU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wibTEwIDIgLjMyLjAxYTUuNSA1LjUgMCAwIDAtMS4wOSA3Ljk2bC0uNzMuNzR2MS42OWEuNi42IDAgMCAxLS42LjZINnYxLjRhLjYuNiAwIDAgMS0uNi42SDIuNmEuNi42IDAgMCAxLS42LS42di0yLjg2YS42LjYgMCAwIDEgLjE4LS40MmwzLjk4LTMuOTlBNCA0IDAgMCAxIDEwIDJaTTkgNi41YTQuNSA0LjUgMCAxIDEgNyAzLjc0djIuMDVsLjc4Ljc5YS42LjYgMCAwIDEgMCAuODRMMTUuNzEgMTVsMS4wNiAxLjA3YS42LjYgMCAwIDEtLjA0Ljg5bC0yLjM2IDEuODhhLjYuNiAwIDAgMS0uNzQgMGwtMi40LTEuOTJhLjYuNiAwIDAgMS0uMjMtLjQ3di02LjJBNC41IDQuNSAwIDAgMSA5IDYuNVptNS4yNS0xYS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5TXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjMyIDIuMDEgMTAgMmE0IDQgMCAwIDAtMy44NCA1LjEzbC0zLjk4IDMuOTlhLjYuNiAwIDAgMC0uMTguNDJ2Mi44NmMwIC4zMy4yNy42LjYuNmgyLjhhLjYuNiAwIDAgMCAuNi0uNlYxM2gxLjlhLjYuNiAwIDAgMCAuNi0uNnYtMS43bC43My0uNzNjLS4yMS0uMjYtLjQtLjU0LS41Ni0uODRsLTEgLjk5YS42LjYgMCAwIDAtLjE3LjQyVjEySDUuNmEuNi42IDAgMCAwLS42LjZWMTRIM3YtMi4zTDcuMzIgNy40bC0uMTItLjNhMyAzIDAgMCAxIDEuOTYtMy45N2MuMzMtLjQyLjcyLS44IDEuMTYtMS4xWm0zLjE4IDQuMjRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05IDYuNWE0LjUgNC41IDAgMSAxIDcgMy43NHYyLjA1bC43OC43OWEuNi42IDAgMCAxIDAgLjg0TDE1LjcxIDE1bDEuMDYgMS4wN2EuNi42IDAgMCAxLS4wNC44OWwtMi4zNiAxLjg4YS42LjYgMCAwIDEtLjc0IDBsLTIuNC0xLjkyYS42LjYgMCAwIDEtLjIzLS40N3YtNi4yQTQuNSA0LjUgMCAwIDEgOSA2LjVaTTEzLjUgM2EzLjUgMy41IDAgMCAwLTEuNzUgNi41My41LjUgMCAwIDEgLjI1LjQzdjYuM2wyIDEuNiAxLjc1LTEuNC0xLjAzLTEuMDRhLjYuNiAwIDAgMSAwLS44NGwxLjA3LTEuMDgtLjYxLS42MmEuNi42IDAgMCAxLS4xOC0uNDJ2LTIuNWMwLS4xNy4xLS4zNC4yNS0uNDNBMy41IDMuNSAwIDAgMCAxMy41IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlSZXNldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlSZXNldEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi41IDJhNS40NSA1LjQ1IDAgMCAwLTUuMzggNi42N2MuMDYuMjcgMCAuNS0uMTQuNjRsLTQuNTQgNC41NEExLjUgMS41IDAgMCAwIDIgMTQuOTF2MS41OWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNmgxYTEgMSAwIDAgMCAxLTF2LTFjMC0uNTEuMjYtLjk2LjY1LTEuMjNsLTEuMjEtMS4yYTEuNSAxLjUgMCAwIDEgMC0yLjEzbDItMkExLjUgMS41IDAgMCAxIDEyLjkgOUgxNGE1IDUgMCAwIDEgMy4zIDEuMjRBNS41NCA1LjU0IDAgMCAwIDEyLjUgMlpNMTQgNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS0yLjE1IDMuODVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMUgxNGEzIDMgMCAxIDEtMyAzIC41LjUgMCAxIDAtMSAwIDQgNCAwIDEgMCA0LTRoLTMuM2wxLjE1LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlSZXNldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5UmVzZXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tNyAuNUM3IDQuNDIgOS40MiAyIDEyLjUgMlMxOCA0LjQyIDE4IDcuNWMwIDEtLjI2IDEuOTMtLjcgMi43NGE0Ljk5IDQuOTkgMCAwIDAtLjgzLS41OWMuMzQtLjYzLjUzLTEuMzcuNTMtMi4xNUMxNyA0Ljk4IDE1LjAyIDMgMTIuNSAzYTQuNDUgNC40NSAwIDAgMC00LjQgNS40NmMuMS41Mi4wMiAxLjEzLS40MSAxLjU2bC00LjU0IDQuNTRhLjUuNSAwIDAgMC0uMTUuMzV2MS41OWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgLjUtLjVWMTZhMSAxIDAgMCAxIDEtMWgxdi0xYTEgMSAwIDAgMSAxLTFoLjM4QTEuNSAxLjUgMCAwIDAgOSAxNHYxYTEgMSAwIDAgMS0xIDFIN3YuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTEuNTljMC0uNC4xNi0uNzguNDQtMS4wNmw0LjU0LTQuNTRjLjEzLS4xMy4yLS4zNy4xNC0uNjRBNS42MiA1LjYyIDAgMCAxIDcgNy41Wm00Ljg1IDEuMzVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMUgxNGEzIDMgMCAxIDEtMyAzIC41LjUgMCAxIDAtMSAwIDQgNCAwIDEgMCA0LTRoLTMuM2wxLjE1LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZDEyM0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZDEyM0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljg4IDMuNmMuMzgtLjQ0Ljc2LS41OCAxLjA1LS42LjMtLjAxLjU4LjEuNzguMy4yLjE5LjMuNDMuMjguNjMtLjAxLjItLjEyLjQ0LS40OS42NWE1LjggNS44IDAgMCAwLTIuMiAxLjkzIDIuMjUgMi4yNSAwIDAgMC0uMy45MnYuMTJhLjUuNSAwIDAgMCAuNS40NWgzYS41LjUgMCAwIDAgMC0xSDUuMThDNS40IDYuNjQgNS45IDYuMSA3IDUuNDVjLjYyLS4zNi45NS0uODguOTktMS40NWExLjg0IDEuODQgMCAwIDAtLjU5LTEuNDNjLS4zOC0uMzYtLjkyLS42LTEuNTItLjU3LS42MS4wNC0xLjIyLjM0LTEuNzYuOTVhLjUuNSAwIDEgMCAuNzYuNjVaTTIuNzYgMi4wN2MuMTUuMS4yNC4yNi4yNC40M3Y1YS41LjUgMCAwIDEtMSAwVjMuM2wtLjc4LjRhLjUuNSAwIDAgMS0uNDUtLjlsMS41LS43NWEuNS41IDAgMCAxIC41LjAyWm04LjI4LjkzYy0uMzMgMC0uNzUuMTQtMS4xNy42YS41LjUgMCAxIDEtLjc0LS42NiAyLjU3IDIuNTcgMCAwIDEgMS45LS45NGMuNjQgMCAxLjIuMjggMS41Ny43YTEuNSAxLjUgMCAwIDEtLjMyIDIuM2MuMjcuMi40Ny40Mi42LjY5LjI2LjU5LjA4IDEuMi0uMjggMS42MS0uMzYuNDItLjkzLjctMS41Ni43LS42NSAwLTEuMzMtLjI5LTEuOTEtLjk0YS41LjUgMCAxIDEgLjc0LS42NmMuNDIuNDYuODQuNiAxLjE3LjYuMzQgMCAuNjMtLjE1LjgtLjM1LjE3LS4yLjItLjQuMTItLjU1LS4wNy0uMTctLjMzLS40NC0xLjA3LS42MWEuNS41IDAgMCAxIDAtLjk4Yy43NC0uMTcgMS0uNDQgMS4wNy0uNjEuMDctLjE1LjA1LS4zNS0uMTItLjU1LS4xNy0uMi0uNDYtLjM1LS44LS4zNVpNMiAxNC41VjguOTFhMS41IDEuNSAwIDAgMCAxLjUtLjNjLjI3LjI1LjYyLjQgMSAuNGgzYy41OSAwIDEuMS0uMzUgMS4zNC0uODQuNjYuNTUgMS40Mi44MyAyLjIuODMuOTIgMCAxLjc3LS40IDIuMzItMS4wNUEyLjUgMi41IDAgMCAwIDEzLjY0IDVoMi44NmMuODMgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDE0LjVaTTUuNSAxM2EuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm04LjI1LTQuNzVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptLTcuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptMy43NS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTIuMjUtLjc1YS43NS43NSAwIDEgMCAxLjUxIDAgLjc1Ljc1IDAgMCAwLTEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmQxMjNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleWJvYXJkMTIzUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljg4IDMuNmMuMzgtLjQ0Ljc2LS41OCAxLjA1LS42LjMtLjAxLjU4LjEuNzguMy4yLjE5LjMuNDMuMjguNjMtLjAxLjItLjEyLjQ0LS40OS42NWE1LjggNS44IDAgMCAwLTIuMiAxLjkzIDIuMjUgMi4yNSAwIDAgMC0uMy45MnYuMTJhLjUuNSAwIDAgMCAuNS40NWgzYS41LjUgMCAwIDAgMC0xSDUuMThDNS40IDYuNjQgNS45IDYuMSA3IDUuNDVjLjYyLS4zNi45NS0uODguOTktMS40NWExLjg0IDEuODQgMCAwIDAtLjU5LTEuNDNjLS4zOC0uMzYtLjkyLS42LTEuNTItLjU3LS42MS4wNC0xLjIyLjM0LTEuNzYuOTVhLjUuNSAwIDEgMCAuNzYuNjVaTTIuNzYgMi4wN2MuMTUuMS4yNC4yNi4yNC40M3Y1YS41LjUgMCAwIDEtMSAwVjMuM2wtLjc4LjRhLjUuNSAwIDAgMS0uNDUtLjlsMS41LS43NWEuNS41IDAgMCAxIC41LjAyWm04LjI4LjkzYy0uMzMgMC0uNzUuMTQtMS4xNy42YS41LjUgMCAxIDEtLjc0LS42NiAyLjU3IDIuNTcgMCAwIDEgMS45LS45NGMuNjQgMCAxLjIuMjggMS41Ny43YTEuNSAxLjUgMCAwIDEtLjMyIDIuM2MuMjcuMi40Ny40Mi42LjY5LjI2LjU5LjA4IDEuMi0uMjggMS42MS0uMzYuNDItLjkzLjctMS41Ni43LS42NSAwLTEuMzMtLjI5LTEuOTEtLjk0YS41LjUgMCAxIDEgLjc0LS42NmMuNDIuNDYuODQuNiAxLjE3LjYuMzQgMCAuNjMtLjE1LjgtLjM1LjE3LS4yLjItLjQuMTItLjU1LS4wNy0uMTctLjMzLS40NC0xLjA3LS42MWEuNS41IDAgMCAxIDAtLjk4Yy43NC0uMTcgMS0uNDQgMS4wNy0uNjEuMDctLjE1LjA1LS4zNS0uMTItLjU1LS4xNy0uMi0uNDYtLjM1LS44LS4zNVpNMiA4LjkxdjUuNTljMCAuODMuNjcgMS41IDEuNSAxLjVoMTNjLjgzIDAgMS41LS42NyAxLjUtMS41di04YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMi44NmEyLjUxIDIuNTEgMCAwIDEgLjM1IDFoMi41MWMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEtLjUtLjVWOC45MWExLjUgMS41IDAgMCAxLTEgMFpNNS41IDEzYS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabTktNGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTcgMTEuNUEuNzUuNzUgMCAxIDAgNyAxMGEuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzUtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuMjYuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXY4YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOGMwLS44My0uNjctMS41LTEuNS0xLjVoLTEzWm0yLjc1IDMuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptNiAwYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTUgMTIuNWMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVpNMTQuNSA4YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNNyAxMC41QS43NS43NSAwIDEgMSA3IDlhLjc1Ljc1IDAgMCAxIDAgMS41Wm0zLjc1LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0yLjI2Ljc1QS43NS43NSAwIDEgMSAxMyA5YS43NS43NSAwIDAgMSAwIDEuNVpNOS4yNSA3LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMTIuNWMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVpNMTEuNSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMy43NS0uNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNNS41IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0yLjI1IDEuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMi4yNS43NUEuNzUuNzUgMCAxIDAgMTAgOWEuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzYtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTguNSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMiA1LjVDMiA0LjY3IDIuNjcgNCAzLjUgNGgxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDEzLjV2LThaTTMuNSA1YS41LjUgMCAwIDAtLjUuNXY4YzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LThhLjUuNSAwIDAgMC0uNS0uNWgtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZERvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmREb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMy41QzIgMi42NyAyLjY3IDIgMy41IDJoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2OGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZ2My4zbDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNFYxM2gtNkExLjUgMS41IDAgMCAxIDIgMTEuNXYtOFpNNS41IDZhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm02IDBhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tNiA0YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabTguMjUtNC43NWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWm0tNy41IDIuNWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWk0xMCA4LjVBLjc1Ljc1IDAgMSAwIDEwIDdhLjc1Ljc1IDAgMCAwIDAgMS41Wm0yLjI1LS43NWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWk04LjUgNmEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZERvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleWJvYXJkRG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDEwYS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabTYuNzUtNC43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk0xNC41IDZhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tOC4yNS0uNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNNyA4LjVBLjc1Ljc1IDAgMSAwIDcgN2EuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzUtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuMjYuNzVBLjc1Ljc1IDAgMSAwIDEzIDdhLjc1Ljc1IDAgMCAwIDAgMS41Wk05LjI1IDUuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXY4YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZ2My4zbC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yYS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNFYxM2g2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOGMwLS44My0uNjctMS41LTEuNS0xLjVoLTEzWm0xMyAxMGgtMTNhLjUuNSAwIDAgMS0uNS0uNXYtOGMwLS4yOC4yMi0uNS41LS41aDEzYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEtleWJvYXJkTGF5b3V0RmxvYXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmRMYXlvdXRGbG9hdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDEzYy44MyAwIDEuNS42NyAxLjUgMS41djhjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExYTEgMSAwIDEgMS0yIDBIMy41QTEuNSAxLjUgMCAwIDEgMiAxMi41di04Wk01LjUgN2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTYgMGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS02IDRhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVptOC4yNS00Ljc1YS43NS43NSAwIDEgMCAxLjUgMCAuNzUuNzUgMCAwIDAtMS41IDBabS03LjUgMi41YS43NS43NSAwIDEgMCAxLjUgMCAuNzUuNzUgMCAwIDAtMS41IDBaTTEwIDkuNUEuNzUuNzUgMCAxIDAgMTAgOGEuNzUuNzUgMCAwIDAgMCAxLjVabTIuMjUtLjc1YS43NS43NSAwIDEgMCAxLjUgMCAuNzUuNzUgMCAwIDAtMS41IDBaTTguNSA3YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMiAxNi41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZExheW91dEZsb2F0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZExheW91dEZsb2F0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDExLjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVaTTExLjUgN2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzUtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTUuNSA3YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMi4yNSAxLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTEwIDkuNUEuNzUuNzUgMCAxIDAgMTAgOGEuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzYtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTguNSA3YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMiA0LjVDMiAzLjY3IDIuNjcgMyAzLjUgM2gxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMWExIDEgMCAxIDEtMiAwSDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtOFpNMy41IDEzaDEzYS41LjUgMCAwIDAgLjUtLjV2LThhLjUuNSAwIDAgMC0uNS0uNWgtMTNhLjUuNSAwIDAgMC0uNS41djhjMCAuMjguMjIuNS41LjVaTTIgMTYuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRMYXlvdXRPbmVIYW5kZWRMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleWJvYXJkTGF5b3V0T25lSGFuZGVkTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djhjMCAuODMuNjcgMS41IDEuNSAxLjVoMTNjLjgzIDAgMS41LS42NyAxLjUtMS41di04YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTNabTIgOGgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWm0wLTQuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNNy43NSA4YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNNiA5Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuMjUuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRMYXlvdXRPbmVIYW5kZWRMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZExheW91dE9uZUhhbmRlZExlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSA0QzIuNjcgNCAyIDQuNjcgMiA1LjV2OGMwIC44My42NyAxLjUgMS41IDEuNWgxM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LThjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xM1pNMyA1LjVjMC0uMjguMjItLjUuNS0uNWgxM2MuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEtLjUtLjV2LThaTTUuNSAxMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0wLTQuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNNy43NSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNiA5Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuMjUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRMYXlvdXRSZXNpemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmRMYXlvdXRSZXNpemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAzLjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDAgMC0xaC03QzIuNjcgMiAyIDIuNjcgMiAzLjV2NGEuNS41IDAgMCAwIDEgMHYtNFpNMy41IDlDMi42NyA5IDIgOS42NyAyIDEwLjV2NmMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLThabTIgNmg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xWm0wLTIuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMiAuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0zLjUtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTE3LjUgOWMuMjggMCAuNS4yMi41LjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAwIC41LS41di03YzAtLjI4LjIyLS41LjUtLjVabS00LTdhLjUuNSAwIDAgMCAwIDFoMi44bC00LjE1IDQuMTVhLjUuNSAwIDAgMCAuNy43TDE3IDMuNzFWNi41YS41LjUgMCAwIDAgMSAwdi00YS41LjUgMCAwIDAtLjUtLjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZExheW91dFJlc2l6ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmRMYXlvdXRSZXNpemVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMy41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAwIDAtMWgtN0MyLjY3IDIgMiAyLjY3IDIgMy41djRhLjUuNSAwIDAgMCAxIDB2LTRaTTMuNSA5QzIuNjcgOSAyIDkuNjcgMiAxMC41djZjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC04Wk0zIDEwLjVjMC0uMjguMjItLjUuNS0uNWg4Yy4yOCAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtLjUuNWgtOGEuNS41IDAgMCAxLS41LS41di02Wk01LjUgMTVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMC0yLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIgLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMy41LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk0xNy41IDljLjI4IDAgLjUuMjIuNS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yYS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMCAuNS0uNXYtN2MwLS4yOC4yMi0uNS41LS41Wm0tNC03YS41LjUgMCAwIDAgMCAxaDIuOGwtNC4xNSA0LjE1YS41LjUgMCAwIDAgLjcuN0wxNyAzLjcxVjYuNWEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLS41LS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRMYXlvdXRTcGxpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZExheW91dFNwbGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS41QzIgNC42NyAyLjY3IDQgMy41IDRoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2OGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiAxMy41di04Wm0zIDdjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaTTQuNzUgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTMuNzUtLjc1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaTTUuMjUgMTAuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTkgOS43NWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk0xNC41IDEyaC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFabTAtNC43NWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWk0xMi4yNSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTQgOS43NWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWm0tMi4yNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBLZXlib2FyZExheW91dFNwbGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZExheW91dFNwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNUMyIDQuNjcgMi42NyA0IDMuNSA0aDEzYy44MyAwIDEuNS42NyAxLjUgMS41djhjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDIgMTMuNXYtOFpNMy41IDVhLjUuNSAwIDAgMC0uNS41djhjMCAuMjguMjIuNS41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNXYtOGEuNS41IDAgMCAwLS41LS41aC0xM1pNNSAxMi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk00Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0zLjc1LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk01LjI1IDEwLjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05IDkuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTQuNSAxMmEuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMWgzWm0wLTQuNzVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFpNMTIuMjUgOGEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaTTE0IDkuNzVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptLTIuMjUuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRTaGlmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZFNoaWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjE0IDIuNTNhMS41IDEuNSAwIDAgMC0yLjI4IDBsLTYuNjIgNy44QTEgMSAwIDAgMCAzIDExLjk4aDNWMTdhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTUuMDJoM2ExIDEgMCAwIDAgLjc2LTEuNjVsLTYuNjItNy44WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRTaGlmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignS2V5Ym9hcmRTaGlmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC44NiAyLjUzYy42LS43IDEuNjgtLjcgMi4yOCAwbDYuNjIgNy44YTEgMSAwIDAgMS0uNzYgMS42NWgtM1YxN2ExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMXYtNS4wMkgzYTEgMSAwIDAgMS0uNzYtMS42NWw2LjYyLTcuOFptMS41Mi42NWEuNS41IDAgMCAwLS43NiAwTDMgMTAuOThoMy41Yy4yOCAwIC41LjIzLjUuNVYxN2g2di01LjUyYzAtLjI3LjIyLS41LjUtLjVIMTdsLTYuNjItNy44WlwiXSk7XG5leHBvcnQgY29uc3QgS2V5Ym9hcmRTaGlmdFVwcGVyY2FzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZFNoaWZ0VXBwZXJjYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjE0IDIuNTNhMS41IDEuNSAwIDAgMC0yLjI4IDBsLTYuNjIgNy44QTEgMSAwIDAgMCAzIDExLjk4aDNWMTVhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTMuMDJoM2ExIDEgMCAwIDAgLjc2LTEuNjVsLTYuNjItNy44Wk02LjUgMTdhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEtleWJvYXJkU2hpZnRVcHBlcmNhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleWJvYXJkU2hpZnRVcHBlcmNhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjE0IDIuNTNhMS41IDEuNSAwIDAgMC0yLjI4IDBsLTYuNjIgNy44QTEgMSAwIDAgMCAzIDExLjk4aDNWMTVhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTMuMDJoM2ExIDEgMCAwIDAgLjc2LTEuNjVsLTYuNjItNy44Wm0tMS41Mi42NWEuNS41IDAgMCAxIC43NiAwbDYuNjIgNy44aC0zLjVhLjUuNSAwIDAgMC0uNS41VjE1SDd2LTMuNTJhLjUuNSAwIDAgMC0uNS0uNUgzbDYuNjItNy44Wk02LjUgMTdhLjUuNSAwIDEgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEtleWJvYXJkVGFiRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0tleWJvYXJkVGFiRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDQuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNzVabS04LjQ3LS41M2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDMuOTcgMy45N0gyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg4LjY5bC0zLjk3IDMuOTdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmw1LjI1LTUuMjVjLjMtLjMuMy0uNzcgMC0xLjA2TDguNTMgNC4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEtleWJvYXJkVGFiUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdLZXlib2FyZFRhYlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zNSA0LjE1YS41LjUgMCAxIDAtLjcuN2w0LjY0IDQuNjVIMy41YS41LjUgMCAwIDAgMCAxaDkuOGwtNC42NSA0LjY1YS41LjUgMCAwIDAgLjcuN2w1LjUtNS41YS41LjUgMCAwIDAgMC0uN2wtNS41LTUuNVpNMTcgNC41YS41LjUgMCAwIDAtMSAwdjExYS41LjUgMCAwIDAgMSAwdi0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IExhcHRvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXB0b3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWm0tMiAxMGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXB0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xhcHRvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA3YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjdabTItMWExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjdhMSAxIDAgMCAwLTEtMUg1Wm0tMyA5LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExhcHRvcEJyaWVmY2FzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXB0b3BCcmllZmNhc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41SDl2LTEuNWEyLjUgMi41IDAgMCAxIDIuMDQtMi40NkEyLjUgMi41IDAgMCAxIDEzLjUgOGgyYy41NiAwIDEuMDguMTkgMS41LjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVptLTIgMTBIOXYxSDIuNWEuNS41IDAgMCAxIDAtMVptOS41LTQuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE3di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41Wm0xLjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVoLTN2LS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXB0b3BCcmllZmNhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xhcHRvcEJyaWVmY2FzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA3YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxLjVjLS4zLS4yMi0uNjMtLjM4LTEtLjQ1VjdhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDR2MUg1YTIgMiAwIDAgMS0yLTJWN1ptLS41IDlIOXYtMUgyLjVhLjUuNSAwIDAgMCAwIDFabTkuNS01LjV2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxN3YtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNVptMS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41aC0zdi0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGFwdG9wRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXB0b3BEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDUuNWE1LjUgNS41IDAgMCAxLTggNC45djIuMWMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00LjUybC4wMi41Wm0tOSAxMGMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wk01LjUgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43TDYuMjEgNS41bDEuMTQgMS4xNWEuNS41IDAgMSAxLS43LjdMNS41IDYuMjEgNC4zNSA3LjM1YS41LjUgMCAxIDEtLjctLjdMNC43OSA1LjUgMy42NSA0LjM1YS41LjUgMCAxIDEgLjctLjdMNS41IDQuNzlsMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgTGFwdG9wRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGFwdG9wRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuOTggNkgxNWExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF2LTEuMmMtLjM1LS4xLS42OC0uMjQtMS0uNFYxMmMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00LjAyYTUuNTkgNS41OSAwIDAgMSAwIDFaTTIuNSAxNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVabTMtNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdMNi4yMSA1LjVsMS4xNCAxLjE1YS41LjUgMCAxIDEtLjcuN0w1LjUgNi4yMSA0LjM1IDcuMzVhLjUuNSAwIDEgMS0uNy0uN0w0Ljc5IDUuNSAzLjY1IDQuMzVhLjUuNSAwIDEgMSAuNy0uN0w1LjUgNC43OWwxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXB0b3BQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGFwdG9wUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSA1QzMuNjcgNSAzIDUuNjcgMyA2LjV2NmMwIC44My42NyAxLjUgMS41IDEuNWg3YTIuNSAyLjUgMCAwIDEgMS43Ny0uOTlBMi45OSAyLjk5IDAgMCAxIDE1LjUgOGMuNTUgMCAxLjA2LjE1IDEuNS40VjYuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWm0tMiAxMGg4LjU1YTIuNTEgMi41MSAwIDAgMC0uMDEgMUgyLjVhLjUuNSAwIDAgMSAwLTFabTE1LTRhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE2Ljc1IDEyIDE1LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExhcHRvcFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGFwdG9wUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEuNGMtLjMtLjE3LS42NC0uMy0xLS4zNlY3YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg4LjI2bC4wMS4wMWEyLjUgMi41IDAgMCAwLTEuNzcuOTlINWEyIDIgMCAwIDEtMi0yVjdabTggOC41YzAtLjE3LjAyLS4zNC4wNS0uNUgyLjVhLjUuNSAwIDAgMCAwIDFoOC41NGEzLjMgMy4zIDAgMCAxLS4wNC0uNVptNi41LTQuNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTYuNzUgMTIgMTUuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGFwdG9wU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGFwdG9wU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNTJBNS41IDUuNSAwIDAgMSAxNyA5LjZWNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFabS0yIDEwaDYuNTJjLjAzLjM0LjEuNjguMTkgMUgyLjVhLjUuNSAwIDAgMSAwLTFabTkuNTYtMy41NmEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVptMi40NCA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExhcHRvcFNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXB0b3BTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA3YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYyLjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN2ExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNC4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDVhMiAyIDAgMCAxLTItMlY3Wm02LjIgOWMtLjA4LS4zMi0uMTUtLjY2LS4xOC0xSDIuNWEuNS41IDAgMCAwIDAgMWg2LjdabTIuODYtNC41NmEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVptMi40NCA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExhcHRvcFNoaWVsZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXB0b3BTaGllbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuNTVjLS4wMi0uMi0uMDQtLjQtLjA0LS42di0yLjUzYzAtLjY5LjUzLTEuMzcgMS4zNC0xLjM3Ljc0IDAgMS40Ni0uMyAyLjE3LTEuMDcuMjYtLjI4LjYxLS40My45OC0uNDNzLjcyLjE1Ljk4LjQzYy4xNy4xOC4zNS4zNC41Mi40OFY2LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVptLTIgMTBoOC43NGMuMS4zNS4yMS42OC4zNyAxSDIuNWEuNS41IDAgMCAxIDAtMVptMTMgM2MtLjA0IDAtLjA3IDAtLjEtLjAyYTUuNjcgNS42NyAwIDAgMS0xLjc3LS45OGMtLjM1LS4zLS42NC0uNjMtLjg4LTFhNS4xNSA1LjE1IDAgMCAxLS43NC0yLjY0VjEwLjg3YzAtLjIuMTUtLjM3LjM0LS4zNyAxLjA3IDAgMi4wMy0uNDYgMi45LTEuMzkuMDctLjA3LjE2LS4xMS4yNS0uMTFzLjE4LjA0LjI1LjExYTMuODkgMy44OSAwIDAgMCAyLjkgMS4zOWMuMiAwIC4zNS4xNy4zNS4zOHYyLjQ4YTUuMTUgNS4xNSAwIDAgMS0uNzUgMi42NGMtLjI0LjM3LS41My43LS44OCAxYTUuNjcgNS42NyAwIDAgMS0xLjg3IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXB0b3BTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xhcHRvcFNoaWVsZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA3YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxLjljLS4xNy0uMTMtLjM1LS4yOS0uNTItLjQ3LS4xNC0uMTUtLjMtLjI2LS40OC0uMzNWN2ExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNnYuMzlsLjA1LjYxSDVhMiAyIDAgMCAxLTItMlY3Wm04LjYgOWE1LjczIDUuNzMgMCAwIDEtLjM2LTFIMi41YS41LjUgMCAwIDAgMCAxaDkuMVptMy45IDJjLS4wNCAwLS4wNyAwLS4xLS4wMmE1LjY3IDUuNjcgMCAwIDEtMS43Ny0uOThjLS4zNS0uMy0uNjQtLjYzLS44OC0xYTUuMTUgNS4xNSAwIDAgMS0uNzQtMi42NFYxMC44N2MwLS4yLjE1LS4zNy4zNC0uMzcgMS4wNyAwIDIuMDMtLjQ2IDIuOS0xLjM5LjA3LS4wNy4xNi0uMTEuMjUtLjExcy4xOC4wNC4yNS4xMWEzLjg5IDMuODkgMCAwIDAgMi45IDEuMzljLjIgMCAuMzUuMTcuMzUuMzh2Mi40OGE1LjE1IDUuMTUgMCAwIDEtLjc1IDIuNjRjLS4yNC4zNy0uNTMuNy0uODggMWE1LjY3IDUuNjcgMCAwIDEtMS44NyAxWlwiXSk7XG5leHBvcnQgY29uc3QgTGFzZXJUb29sRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xhc2VyVG9vbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMmEuNS41IDAgMCAwLS41LjVWNWEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWMi41YS41LjUgMCAwIDAtLjUtLjVoLTEzWlwiLCBcIk0xMC41IDEwaDRjLjgzIDAgMS41LS42NyAxLjUtMS41VjhINHYuNWMwIC44My42NyAxLjUgMS41IDEuNWg0djIuNWEuNS41IDAgMCAwIDEgMFYxMFpcIiwgXCJNNSAxNC41YzAtLjI4LjIyLS41LjUtLjVIN2EuNS41IDAgMCAxIDAgMUg1LjVhLjUuNSAwIDAgMS0uNS0uNVpcIiwgXCJNMTMgMTRhLjUuNSAwIDAgMCAwIDFoMS41YS41LjUgMCAwIDAgMC0xSDEzWlwiLCBcIk0xMC41IDE0LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaXCIsIFwiTTEwLjUgMTYuNWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWlwiLCBcIk04Ljg1IDE1LjE1Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN2wxLjUtMS41Yy4yLS4yLjUtLjIuNyAwWlwiLCBcIk0xMS4xNSAxNS44NWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVhLjUuNSAwIDAgMS0uNy43bC0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGFzZXJUb29sUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXNlclRvb2xSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgMi41YS41LjUgMCAwIDAtMSAwVjVhMiAyIDAgMCAwIDEgMS43M3YuNzdDNCA4LjMzIDQuNjcgOSA1LjUgOWg0djMuNWEuNS41IDAgMCAwIDEgMFY5aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di0uNzdBMiAyIDAgMCAwIDE3IDVWMi41YS41LjUgMCAwIDAtMSAwVjVhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWMi41Wk01IDdoMTB2LjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjVWN1pcIiwgXCJNNS41IDE0YS41LjUgMCAwIDAgMCAxSDdhLjUuNSAwIDAgMCAwLTFINS41WlwiLCBcIk0xMi41IDE0LjVjMC0uMjguMjItLjUuNS0uNWgxLjVhLjUuNSAwIDAgMSAwIDFIMTNhLjUuNSAwIDAgMS0uNS0uNVpcIiwgXCJNMTAgMTVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCIsIFwiTTEwIDE2Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVaXCIsIFwiTTguODUgMTUuODVhLjUuNSAwIDAgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIC43LjdsMS41LTEuNVpcIiwgXCJNMTEuMTUgMTUuMTVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDAgMCAuNy0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXNzb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXNzb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjE2IDIuMjFhOC4wMiA4LjAyIDAgMCAxIDMuNjggMCAuNzUuNzUgMCAwIDEtLjM1IDEuNDYgNi41MiA2LjUyIDAgMCAwLTIuOTggMCAuNzUuNzUgMCAwIDEtLjM1LTEuNDZaTTYuODMgMy40NGMuMjEuMzUuMS44MS0uMjUgMS4wM2E2LjU0IDYuNTQgMCAwIDAtMi4xMSAyLjExLjc1Ljc1IDAgMCAxLTEuMjgtLjc5IDguMDQgOC4wNCAwIDAgMSAyLjYtMi42Ljc1Ljc1IDAgMCAxIDEuMDQuMjVabTYuMzQgMGEuNzUuNzUgMCAwIDEgMS4wNC0uMjUgOC4wNCA4LjA0IDAgMCAxIDIuNiAyLjYuNzUuNzUgMCAwIDEtMS4yOC44IDYuNTQgNi41NCAwIDAgMC0yLjExLTIuMTIuNzUuNzUgMCAwIDEtLjI1LTEuMDNaTTMuMTEgNy42Yy40LjEuNjYuNS41Ni45YTYuNTIgNi41MiAwIDAgMCAwIDMgLjc1Ljc1IDAgMCAxLTEuNDYuMzQgOC4wMiA4LjAyIDAgMCAxIDAtMy42OGMuMS0uNC41LS42NS45LS41NlptMTMuNzggMGMuNC0uMS44LjE2LjkuNTZhOC4wMiA4LjAyIDAgMCAxIDAgMy42OC43NS43NSAwIDAgMS0xLjQ2LS4zNSA2LjUyIDYuNTIgMCAwIDAgMC0yLjk4Yy0uMS0uNC4xNS0uODEuNTYtLjlaTTMuNDQgMTMuMTdhLjc1Ljc1IDAgMCAxIDEuMDMuMjUgNi41NCA2LjU0IDAgMCAwIDIuMTEgMi4xMS43NS43NSAwIDEgMS0uNzkgMS4yOCA4LjA0IDguMDQgMCAwIDEtMi42LTIuNi43NS43NSAwIDAgMSAuMjUtMS4wNFptMTMuNjcgMS4yN2EuNzUuNzUgMCAwIDAtMS4yMi0uODhsLS4wMi4wM2E0Ljc5IDQuNzkgMCAwIDEtLjM4LjQ2Yy0uMjQuMjgtLjYuNjQtMS4wMiAxLjAxYTYuNzMgNi43MyAwIDAgMC0zLjk3LTEuMzEgMi42IDIuNiAwIDAgMC0xLjg0LjY4IDIuMTcgMi4xNyAwIDAgMCAwIDMuMTQgMi42IDIuNiAwIDAgMCAxLjg0LjY4YzEuNTMgMCAyLjg3LS41OCAzLjkxLTEuMjdhOS40IDkuNCAwIDAgMSAxLjEgMS4zMSA3LjAyIDcuMDIgMCAwIDEgLjMuNTJsLjAyLjAyYy0uMTUtLjI2IDAgMCAwIDBhLjc1Ljc1IDAgMCAwIDEuMzQtLjY3Yy4xOS4zOCAwIDAgMCAwbC0uMDEtLjAyLS4wMi0uMDRhNS42MSA1LjYxIDAgMCAwLS40LS42NCA5LjkgOS45IDAgMCAwLTEuMTMtMS40IDExLjc5IDExLjc5IDAgMCAwIDEuNDYtMS41N2wuMDMtLjA0di0uMDFoLjAxWm0tNi42MS44MWMxLjAzIDAgMS45MS4zIDIuNjUuNzRhNS40IDUuNCAwIDAgMS0yLjY1Ljc2Yy0uNDIgMC0uNjctLjEzLS44LS4yNmEuNjcuNjcgMCAwIDEgMC0uOThjLjEzLS4xMy4zOC0uMjYuOC0uMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXNzb1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGFzc29SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguMTYgMi4yMWE4LjAyIDguMDIgMCAwIDEgMy42OCAwIC41LjUgMCAwIDEtLjIzLjk4IDcuMDIgNy4wMiAwIDAgMC0zLjIyIDAgLjUuNSAwIDAgMS0uMjMtLjk4Wk02LjQ4IDMuMzZhLjUuNSAwIDAgMS0uMTYuNjggNy4wNCA3LjA0IDAgMCAwLTIuMjggMi4yOC41LjUgMCAxIDEtLjg1LS41MyA4LjA0IDguMDQgMCAwIDEgMi42LTIuNi41LjUgMCAwIDEgLjcuMTdabTcuMDQgMGEuNS41IDAgMCAxIC42OS0uMTcgOC4wNCA4LjA0IDAgMCAxIDIuNiAyLjYuNS41IDAgMCAxLS44NS41MyA3LjA0IDcuMDQgMCAwIDAtMi4yOC0yLjI4LjUuNSAwIDAgMS0uMTYtLjY4Wk0yLjgyIDcuNzlhLjUuNSAwIDAgMSAuMzcuNiA3LjAyIDcuMDIgMCAwIDAgMCAzLjIyLjUuNSAwIDAgMS0uOTguMjMgOC4wMiA4LjAyIDAgMCAxIDAtMy42OC41LjUgMCAwIDEgLjYtLjM3Wm0xNC4zNyAwYS41LjUgMCAwIDEgLjYuMzcgOC4wMyA4LjAzIDAgMCAxIDAgMy42OC41LjUgMCAwIDEtLjk4LS4yMyA3LjAyIDcuMDIgMCAwIDAgMC0zLjIyLjUuNSAwIDAgMSAuMzgtLjZaTTMuMzYgMTMuNTJhLjUuNSAwIDAgMSAuNjguMTZjLjU4LjkyIDEuMzYgMS43IDIuMjggMi4yOGEuNS41IDAgMSAxLS41My44NSA4LjA0IDguMDQgMCAwIDEtMi42LTIuNi41LjUgMCAwIDEgLjE3LS43Wm0xMy41Ny43M2EuNS41IDAgMSAwLS44Ni0uNWwtLjAyLjAzYTMuNiAzLjYgMCAwIDEtLjMyLjQ2IDcuOCA3LjggMCAwIDEtMS4xNiAxLjIyQTYuNTUgNi41NSAwIDAgMCAxMC41IDE0Yy0xLjUyIDAtMi40OS45LTIuNDkgMnMuOTcgMiAyLjQ5IDJhNy4xIDcuMSAwIDAgMCA0LjAzLTEuMjYgOC42IDguNiAwIDAgMSAxLjUgMS45NWwuMDIuMDNhLjUuNSAwIDEgMCAuOS0uNDRzLS4xMy0uMjQgMCAwbC0uMDEtLjAyYTMuMzcgMy4zNyAwIDAgMC0uMS0uMTggOS42IDkuNiAwIDAgMC0xLjQ5LTEuOTNsLS4wMi0uMDNhOC44IDguOCAwIDAgMCAxLjYtMS44Ni45LjkgMCAwIDEgMC0uMDFaTTEwLjUgMTVjMS4zIDAgMi4zOC40NiAzLjIzIDEuMDctLjg1LjUzLTEuOTMuOTMtMy4yMy45My0xLjEzIDAtMS40OS0uNi0xLjQ5LTFzLjM2LTEgMS40OS0xWlwiXSk7XG5leHBvcnQgY29uc3QgTGF1bmNoZXJTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXVuY2hlclNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEuOTEgNy4zOEE4LjUgOC41IDAgMCAxIDMuNyA0LjNhLjUuNSAwIDAgMSAuNTQtLjEzbDEuOTIuNjhhMSAxIDAgMCAwIDEuMzItLjc2bC4zNi0yYS41LjUgMCAwIDEgLjQtLjQgOC41MyA4LjUzIDAgMCAxIDMuNTUgMGMuMi4wNC4zNS4yLjM4LjRsLjM3IDJhMSAxIDAgMCAwIDEuMzIuNzZsMS45Mi0uNjhhLjUuNSAwIDAgMSAuNTQuMTMgOC41IDguNSAwIDAgMSAxLjc4IDMuMDhjLjA2LjIgMCAuNC0uMTUuNTRsLTEuNTYgMS4zMmExIDEgMCAwIDAgMCAxLjUybDEuNTYgMS4zMmEuNS41IDAgMCAxIC4xNS41NCA4LjUgOC41IDAgMCAxLTEuNzggMy4wOC41LjUgMCAwIDEtLjU0LjEzbC0xLjkyLS42OGExIDEgMCAwIDAtMS4zMi43NmwtLjM3IDJhLjUuNSAwIDAgMS0uMzguNCA4LjUzIDguNTMgMCAwIDEtMy41NiAwIC41LjUgMCAwIDEtLjM5LS40bC0uMzYtMmExIDEgMCAwIDAtMS4zMi0uNzZsLTEuOTIuNjhhLjUuNSAwIDAgMS0uNTQtLjEzIDguNSA4LjUgMCAwIDEtMS43OC0zLjA4LjUuNSAwIDAgMSAuMTUtLjU0bDEuNTYtMS4zMmExIDEgMCAwIDAgMC0xLjUyTDIuMDYgNy45MmEuNS41IDAgMCAxLS4xNS0uNTRabTYuMTkuNC0xLjU4IDEuOWEuNS41IDAgMCAwIDAgLjY0bDEuMzkgMS42N2MuMS4xMi4yOC4xMi4zOCAwbC45My0xLjExYS4yNS4yNSAwIDAgMCAwLS4zMkw4Ljc1IDEwbC42LS43Mi0xLjI1LTEuNVpNOC43NSA3bDIuNSAzLTIuMTYgMi41OWEuMjUuMjUgMCAwIDAgLjIuNDFoMS44NGMuMDggMCAuMTUtLjAzLjItLjA5bDIuMTUtMi41OWEuNS41IDAgMCAwIDAtLjY0TDExLjI1IDdoLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExhdW5jaGVyU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xhdW5jaGVyU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEuOTEgNy4zOEE4LjUgOC41IDAgMCAxIDMuNyA0LjNhLjUuNSAwIDAgMSAuNTQtLjEzbDEuOTIuNjhhMSAxIDAgMCAwIDEuMzItLjc2bC4zNi0yYS41LjUgMCAwIDEgLjQtLjQgOC41MyA4LjUzIDAgMCAxIDMuNTUgMGMuMi4wNC4zNS4yLjM4LjRsLjM3IDJhMSAxIDAgMCAwIDEuMzIuNzZsMS45Mi0uNjhhLjUuNSAwIDAgMSAuNTQuMTMgOC41IDguNSAwIDAgMSAxLjc4IDMuMDhjLjA2LjIgMCAuNC0uMTUuNTRsLTEuNTYgMS4zMmExIDEgMCAwIDAgMCAxLjUybDEuNTYgMS4zMmEuNS41IDAgMCAxIC4xNS41NCA4LjUgOC41IDAgMCAxLTEuNzggMy4wOC41LjUgMCAwIDEtLjU0LjEzbC0xLjkyLS42OGExIDEgMCAwIDAtMS4zMi43NmwtLjM3IDJhLjUuNSAwIDAgMS0uMzguNCA4LjUzIDguNTMgMCAwIDEtMy41NiAwIC41LjUgMCAwIDEtLjM5LS40bC0uMzYtMmExIDEgMCAwIDAtMS4zMi0uNzZsLTEuOTIuNjhhLjUuNSAwIDAgMS0uNTQtLjEzIDguNSA4LjUgMCAwIDEtMS43OC0zLjA4LjUuNSAwIDAgMSAuMTUtLjU0bDEuNTYtMS4zMmExIDEgMCAwIDAgMC0xLjUyTDIuMDYgNy45MmEuNS41IDAgMCAxLS4xNS0uNTRabTEuMDYgMCAxLjMgMS4xYTIgMiAwIDAgMSAwIDMuMDRsLTEuMyAxLjFjLjMuNzkuNzIgMS41MSAxLjI1IDIuMTZsMS42LS41OGEyIDIgMCAwIDEgMi42MyAxLjUzbC4zIDEuNjdhNy41NiA3LjU2IDAgMCAwIDIuNSAwbC4zLTEuNjdhMiAyIDAgMCAxIDIuNjQtMS41M2wxLjYuNThhNy41IDcuNSAwIDAgMCAxLjI0LTIuMTZsLTEuMy0xLjFhMiAyIDAgMCAxIDAtMy4wNGwxLjMtMS4xYTcuNSA3LjUgMCAwIDAtMS4yNS0yLjE2bC0xLjYuNThhMiAyIDAgMCAxLTIuNjMtMS41M2wtLjMtMS42N2E3LjU1IDcuNTUgMCAwIDAtMi41IDBsLS4zIDEuNjdBMiAyIDAgMCAxIDUuODEgNS44bC0xLjYtLjU4YTcuNSA3LjUgMCAwIDAtMS4yNCAyLjE2Wm01LjEzLjQtMS41OCAxLjlhLjUuNSAwIDAgMCAwIC42NGwxLjM5IDEuNjdjLjEuMTIuMjguMTIuMzggMGwuOTMtMS4xMWEuMjUuMjUgMCAwIDAgMC0uMzJMOC43NSAxMGwuNi0uNzItMS4yNS0xLjVaTTguNzUgN2gyLjVsMi4yMyAyLjY4YS41LjUgMCAwIDEgMCAuNjRsLTIuMTYgMi41OWEuMjUuMjUgMCAwIDEtLjE5LjA5SDkuMjhhLjI1LjI1IDAgMCAxLS4xOS0uNDFMMTEuMjUgMTBsLTIuNS0zWlwiXSk7XG5leHBvcnQgY29uc3QgTGF5ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNSAzLjEyYTEgMSAwIDAgMC0xIDBMMy40NyA2LjY0YTEgMSAwIDAgMCAwIDEuNzJsNi4wMiAzLjVhMSAxIDAgMCAwIDEgMGw2LjAxLTMuNWExIDEgMCAwIDAgMC0xLjcybC02LTMuNTJaTTMuMDcgOS42NWw2LjQ0IDMuNjJhMSAxIDAgMCAwIC45OCAwbDYuNDQtMy42MmExIDEgMCAwIDEtLjQyIDEuMjZsLTYgMy41YTEgMSAwIDAgMS0xLjAxIDBsLTYuMDEtMy41YTEgMSAwIDAgMS0uNDItMS4yNlptMCAyLjQ1IDYuNDQgMy42M2ExIDEgMCAwIDAgLjk4IDBsNi40NC0zLjYzYTEgMSAwIDAgMS0uNDIgMS4yNmwtNiAzLjVhMSAxIDAgMCAxLTEuMDEgMGwtNi4wMS0zLjVhMSAxIDAgMCAxLS40Mi0xLjI2WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheWVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDMuMTJhMSAxIDAgMCAwLTEgMEwzLjQ3IDYuNjRhMSAxIDAgMCAwIDAgMS43Mmw2LjAyIDMuNWExIDEgMCAwIDAgMSAwbDYuMDEtMy41YTEgMSAwIDAgMCAwLTEuNzJsLTYtMy41MlptLTEgMS4xNmExIDEgMCAwIDEgMSAwTDE2IDcuNWwtNS41IDMuMmExIDEgMCAwIDEtMSAwTDMuOTkgNy41bDUuNS0zLjIyWk0zLjA2IDkuNjVsNi40NCAzLjYyYTEgMSAwIDAgMCAuOTggMGw2LjQ0LTMuNjJhMSAxIDAgMCAxLS40MiAxLjI2bC02IDMuNWExIDEgMCAwIDEtMS4wMSAwbC02LjAxLTMuNWExIDEgMCAwIDEtLjQyLTEuMjZabTAgMi40NSA2LjQ0IDMuNjNhMSAxIDAgMCAwIC45OCAwbDYuNDQtMy42M2ExIDEgMCAwIDEtLjQyIDEuMjZsLTYgMy41YTEgMSAwIDAgMS0xLjAxIDBsLTYuMDEtMy41YTEgMSAwIDAgMS0uNDItMS4yNlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheWVyRGlhZ29uYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5ZXJEaWFnb25hbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjQ1IDIuMWExLjUgMS41IDAgMCAxIDIuMDUgMS4zTDUuNDIgNS44MkEyLjI1IDIuMjUgMCAwIDAgNCA3LjkxdjZjLS45Ny4zNS0yLS4zNy0yLTEuNDFWNi43NmEyLjUgMi41IDAgMCAxIDEuNTgtMi4zM2w1Ljg3LTIuMzJabTMgMmExLjUgMS41IDAgMCAxIDIuMDUgMS40di4xTDkuMjYgNy42OEEyIDIgMCAwIDAgOCA5LjU0djUuOThsLS45NS4zN0ExLjUgMS41IDAgMCAxIDUgMTQuNVY4LjQzYTIgMiAwIDAgMSAxLjI2LTEuODZsNi4xOS0yLjQ1Wk0xOCA3LjV2Ni42MmExLjUgMS41IDAgMCAxLS45NSAxLjRsLTYgMi4zOEExLjUgMS41IDAgMCAxIDkgMTYuNVY5Ljg4YzAtLjYyLjM4LTEuMTcuOTUtMS40bDYtMi4zN0ExLjUgMS41IDAgMCAxIDE4IDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheWVyRGlhZ29uYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheWVyRGlhZ29uYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgMy41YS41LjUgMCAwIDAtLjY4LS40NkwzLjk1IDUuMzZBMS41IDEuNSAwIDAgMCAzIDYuNzZ2NS43NGMwIC4zNS4zNi42LjY4LjQ2bC4zMi0uMTJ2MS4wN2MtLjk3LjM1LTItLjM3LTItMS40MVY2Ljc1YTIuNSAyLjUgMCAwIDEgMS41OC0yLjMybDUuODctMi4zMmExLjUgMS41IDAgMCAxIDIuMDUgMS4zbC0xIC40VjMuNVptMyAyYS41LjUgMCAwIDAtLjY4LS40Nkw2LjYzIDcuNDlBMSAxIDAgMCAwIDYgOC40djYuMDljMCAuMzUuMzYuNi42OC40Nkw4IDE0LjQ0djEuMDhsLS45NS4zN0ExLjUgMS41IDAgMCAxIDUgMTQuNVY4LjQyYTIgMiAwIDAgMSAxLjI2LTEuODVsNi4xOS0yLjQ1YTEuNSAxLjUgMCAwIDEgMi4wNSAxLjR2LjFsLTEgLjM5di0uNVptMi44MiAxLjU0YS41LjUgMCAwIDEgLjY4LjQ2djYuNjJhLjUuNSAwIDAgMS0uMzIuNDdsLTYgMi4zN2EuNS41IDAgMCAxLS42OC0uNDZWOS44OGMwLS4yLjEzLS40LjMyLS40N2w2LTIuMzdaTTE4IDcuNWExLjUgMS41IDAgMCAwLTIuMDUtMS40bC02IDIuMzhBMS41IDEuNSAwIDAgMCA5IDkuODh2Ni42MmExLjUgMS41IDAgMCAwIDIuMDUgMS40bDYtMi4zOGMuNTctLjIzLjk1LS43OC45NS0xLjRWNy41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5ZXJEaWFnb25hbEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXllckRpYWdvbmFsQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNDUgMi4xYTEuNSAxLjUgMCAwIDEgMi4wNSAxLjNMNS40MiA1LjgyQTIuMjUgMi4yNSAwIDAgMCA0IDcuOTF2NmMtLjk3LjM1LTItLjM3LTItMS40MVY2Ljc1YTIuNSAyLjUgMCAwIDEgMS41OC0yLjMybDUuODctMi4zMlptMyAyYTEuNSAxLjUgMCAwIDEgMi4wNSAxLjR2LjFMOS4yNiA3LjY4QTIgMiAwIDAgMCA4IDkuNTR2NS45OGwtLjk1LjM3QTEuNSAxLjUgMCAwIDEgNSAxNC41VjguNDNhMiAyIDAgMCAxIDEuMjYtMS44Nmw2LjE5LTIuNDVaTTE4IDcuNXYzLjFhNS41IDUuNSAwIDAgMC03LjQgNy40QTEuNSAxLjUgMCAwIDEgOSAxNi41VjkuODhjMC0uNjIuMzgtMS4xNy45NS0xLjRsNi0yLjM3QTEuNSAxLjUgMCAwIDEgMTggNy41Wm0yIDhhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNXYxLjVhLjUuNSAwIDAgMCAxIDBWMTZoMS41YS41LjUgMCAwIDAgMC0xSDE2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXllckRpYWdvbmFsQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXllckRpYWdvbmFsQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDMuNWEuNS41IDAgMCAwLS42OC0uNDZMMy45NSA1LjM2QTEuNSAxLjUgMCAwIDAgMyA2Ljc2djUuNzRjMCAuMzUuMzYuNi42OC40NmwuMzItLjEydjEuMDdjLS45Ny4zNS0yLS4zNy0yLTEuNDFWNi43NWEyLjUgMi41IDAgMCAxIDEuNTgtMi4zMmw1Ljg3LTIuMzJhMS41IDEuNSAwIDAgMSAyLjA1IDEuM2wtMSAuNHYtLjNabTMgMmEuNS41IDAgMCAwLS42OC0uNDZMNi42MyA3LjQ5YTEgMSAwIDAgMC0uNjMuOTN2Ni4wOGMwIC4zNS4zNi42LjY4LjQ2TDggMTQuNDR2MS4wOGwtLjk1LjM3QTEuNSAxLjUgMCAwIDEgNSAxNC41VjguNDNhMiAyIDAgMCAxIDEuMjYtMS44Nmw2LjE5LTIuNDVhMS41IDEuNSAwIDAgMSAyLjA1IDEuNHYuMWwtMSAuMzl2LS41Wm0yLjgyIDEuNTRhLjUuNSAwIDAgMSAuNjguNDZ2Mi43Yy4zNS4xLjY4LjI0IDEgLjRWNy41YTEuNSAxLjUgMCAwIDAtMi4wNS0xLjRsLTYgMi4zOEExLjUgMS41IDAgMCAwIDkgOS44OHY2LjYyYzAgLjkuNzcgMS41NSAxLjYgMS41YTUuNDcgNS40NyAwIDAgMS0uNDMtMS4xMi41LjUgMCAwIDEtLjE3LS4zOFY5Ljg4YzAtLjIuMTMtLjQuMzItLjQ3bDYtMi4zN1pNMjAgMTUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNWgtMS41YS41LjUgMCAwIDAgMCAxSDE1djEuNWEuNS41IDAgMCAwIDEgMFYxNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheWVyRGlhZ29uYWxQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5ZXJEaWFnb25hbFBlcnNvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMS41IDMuNGExLjUgMS41IDAgMCAwLTIuMDUtMS4zTDMuNTggNC40NEEyLjUgMi41IDAgMCAwIDIgNi43NnY1Ljc0YTEuNSAxLjUgMCAwIDAgMiAxLjQxdi02YzAtLjkzLjU2LTEuNzYgMS40Mi0yLjFsNi4wOC0yLjRabTMgMi4xYTEuNSAxLjUgMCAwIDAtMi4wNS0xLjRMNi4yNiA2LjU3QTIgMiAwIDAgMCA1IDguNDJ2Ni4wOGExLjUgMS41IDAgMCAwIDIuMDUgMS40bC45NS0uMzhWOS41NGEyIDIgMCAwIDEgMS4yNi0xLjg2TDE0LjUgNS42di0uMVptMS40NS42QTEuNSAxLjUgMCAwIDEgMTggNy41djIuODRhMyAzIDAgMSAwLTQuNzMgMy42N0EyLjUgMi41IDAgMCAwIDExIDE2LjVjMCAuNDQuMDkuODkuMjcgMS4zbC0uMjIuMUExLjUgMS41IDAgMCAxIDkgMTYuNVY5Ljg4YzAtLjYyLjM4LTEuMTcuOTUtMS40bDYtMi4zN1pNMTcuNSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5ZXJEaWFnb25hbFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5ZXJEaWFnb25hbFBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS44MiAzLjA0YS41LjUgMCAwIDEgLjY4LjQ2di4zbDEtLjRhMS41IDEuNSAwIDAgMC0yLjA1LTEuM0wzLjU4IDQuNDRBMi41IDIuNSAwIDAgMCAyIDYuNzV2NS43NWExLjUgMS41IDAgMCAwIDIgMS40MXYtMS4wN2wtLjMyLjEyQS41LjUgMCAwIDEgMyAxMi41VjYuNzVjMC0uNjEuMzgtMS4xNi45NS0xLjM5bDUuODctMi4zMlptMyAyYS41LjUgMCAwIDEgLjY4LjQ2VjZsMS0uNHYtLjFhMS41IDEuNSAwIDAgMC0yLjA1LTEuNEw2LjI2IDYuNTdBMiAyIDAgMCAwIDUgOC40djYuMDlhMS41IDEuNSAwIDAgMCAyLjA1IDEuNGwuOTUtLjM4di0xLjA4bC0xLjMyLjUyQS41LjUgMCAwIDEgNiAxNC41VjguNGExIDEgMCAwIDEgLjYzLS45Mmw2LjE5LTIuNDVaTTE3IDcuNWEuNS41IDAgMCAwLS42OC0uNDZsLTYgMi4zN2EuNS41IDAgMCAwLS4zMi40N3Y2LjYyYzAgLjM1LjM2LjYuNjguNDZsLjM0LS4xM2MuMDMuMzMuMTIuNjYuMjUuOThsLS4yMi4wOEExLjUgMS41IDAgMCAxIDkgMTYuNVY5Ljg4YzAtLjYyLjM4LTEuMTcuOTUtMS40bDYtMi4zN0ExLjUgMS41IDAgMCAxIDE4IDcuNXYyLjg0Yy0uMjYtLjM4LS42LS43LTEtLjk0VjcuNVptLjUgNC41YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjQtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXllckRpYWdvbmFsU3BhcmtsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXllckRpYWdvbmFsU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC44OCAxLjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEzYy0uMjcgMC0uNTItLjA4LS43NC0uMjNhMS40IDEuNCAwIDAgMS0uNDgtLjYybC0uMjYtLjhhLjUyLjUyIDAgMCAwLS4xNC0uMjIuNjQuNjQgMCAwIDAtLjIyLS4xNGwtLjc3LS4yNWMtLjI3LS4xLS40OS0uMjYtLjY1LS40OGExLjMgMS4zIDAgMCAxLS4xMi0xLjMgMS4zMiAxLjMyIDAgMCAxLS40NS0uMjIgMS41MSAxLjUxIDAgMCAxLS41Mi0uNjlsLS4yNC0uNzQtMi45NiAxLjE3QTEuNSAxLjUgMCAwIDAgOSA5Ljg4djYuNjJhMS41IDEuNSAwIDAgMCAyLjA1IDEuNGw2LTIuMzhjLjU3LS4yMy45NS0uNzguOTUtMS40di0xLjJjLS4xNi4wNi0uMzMuMDgtLjUuMDhabS03LjI0LTcuNjhhMS40MyAxLjQzIDAgMCAxLS4xNi0uMjlMNi4yNiA2LjU2QTIgMiAwIDAgMCA1IDguNDJ2Ni4wOGExLjUgMS41IDAgMCAwIDIuMDUgMS40bC45NS0uMzhWOS41NGEyIDIgMCAwIDEgMS4yNi0xLjg2bDMuMTctMS4yNmExLjIgMS4yIDAgMCAwLS40LS4yMmwtMS4wNi0uMzVjLS4zLS4xLS41NC0uMy0uNzEtLjUzWm0uNy0yLjE3LjQ2LS4xNWExLjUgMS41IDAgMCAwLTEuOTctLjlMMy41OCA0LjQ0QTIuNSAyLjUgMCAwIDAgMiA2Ljc1djUuNzVhMS41IDEuNSAwIDAgMCAyIDEuNDF2LTZjMC0uOTMuNTYtMS43NiAxLjQyLTIuMWw0LjY4LTEuODVhMS40MiAxLjQyIDAgMCAxIC44NS0uOFpcIl0pO1xuZXhwb3J0IGNvbnN0IExheWVyRGlhZ29uYWxTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXllckRpYWdvbmFsU3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuODggMS4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTcuNSAxM2MtLjE3IDAtLjM0LS4wMy0uNS0uMXYxLjIyYS41LjUgMCAwIDEtLjMyLjQ3bC02IDIuMzdhLjUuNSAwIDAgMS0uNjgtLjQ2VjkuODhjMC0uMi4xMy0uNC4zMi0uNDdsMi45Mi0xLjE2YTEuNCAxLjQgMCAwIDEtLjA5LS4ybC0uMjQtLjc0LTIuOTYgMS4xN0ExLjUgMS41IDAgMCAwIDkgOS44OHY2LjYyYTEuNSAxLjUgMCAwIDAgMi4wNSAxLjRsNi0yLjM4Yy41Ny0uMjMuOTUtLjc4Ljk1LTEuNHYtMS4yYy0uMTYuMDYtLjMzLjA4LS41LjA4Wm0tNy4yNC03LjY4YTEuNDMgMS40MyAwIDAgMS0uMTYtLjI5TDYuMjYgNi41NkEyIDIgMCAwIDAgNSA4LjQydjYuMDhhMS41IDEuNSAwIDAgMCAyLjA1IDEuNGwuOTUtLjM4di0xLjA4bC0xLjMyLjUyQS41LjUgMCAwIDEgNiAxNC41VjguNDJhMSAxIDAgMCAxIC42My0uOTNsNC4yNC0xLjY4Yy0uMjYtLjEtLjQ2LS4yOC0uNjEtLjVabS43LTIuMTcuNDYtLjE1YTEuNSAxLjUgMCAwIDAtMS45Ny0uOUwzLjU4IDQuNDRBMi41IDIuNSAwIDAgMCAyIDYuNzV2NS43NWExLjUgMS41IDAgMCAwIDIgMS40MXYtMS4wN2wtLjMyLjEyQS41LjUgMCAwIDEgMyAxMi41VjYuNzVjMC0uNjEuMzgtMS4xNi45NS0xLjM5bDUuODctMi4zMmEuNS41IDAgMCAxIC42Ny4zOGMuMTQtLjEyLjMtLjIuNDYtLjI3WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q2VsbEZvdXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q2VsbEZvdXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgMTdoLTMuNXYtNi41SDE3VjE0YTMgMyAwIDAgMS0zIDNabTMtNy41aC02LjVWM0gxNGEzIDMgMCAwIDEgMyAzdjMuNVptLTcuNSAwVjNINmEzIDMgMCAwIDAtMyAzdjMuNWg2LjVabS02LjUgMVYxNGEzIDMgMCAwIDAgMyAzaDMuNXYtNi41SDNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDZWxsRm91clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q2VsbEZvdXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjMuNWg1LjVWNEg2Wm0zLjUgNi41SDRWMTRjMCAxLjEuOSAyIDIgMmgzLjV2LTUuNVptMSAwVjE2SDE0YTIgMiAwIDAgMCAyLTJ2LTMuNWgtNS41Wm01LjUtMVY2YTIgMiAwIDAgMC0yLTJoLTMuNXY1LjVIMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDZWxsRm91ckZvY3VzQm90dG9tTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDZWxsRm91ckZvY3VzQm90dG9tTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmgzLjV2NS41SDRWNlptMTIgNC41VjE0YTIgMiAwIDAgMS0yIDJoLTMuNXYtNS41SDE2Wm0tNS41LTFWNEgxNGEyIDIgMCAwIDEgMiAydjMuNWgtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q2VsbEZvdXJGb2N1c0JvdHRvbVJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENlbGxGb3VyRm9jdXNCb3R0b21SaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmgzLjV2NS41SDRWNlptMCA0LjVoNS41VjE2SDZhMiAyIDAgMCAxLTItMnYtMy41Wm02LjUtMVY0SDE0YTIgMiAwIDAgMSAyIDJ2My41aC01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDZWxsRm91ckZvY3VzVG9wTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDZWxsRm91ckZvY3VzVG9wTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0tMiA3LjVoNS41VjE2SDZhMiAyIDAgMCAxLTItMnYtMy41Wm0xMiAwVjE0YTIgMiAwIDAgMS0yIDJoLTMuNXYtNS41SDE2Wm0tNS41LTFWNEgxNGEyIDIgMCAwIDEgMiAydjMuNWgtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q2VsbEZvdXJGb2N1c1RvcFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENlbGxGb3VyRm9jdXNUb3BSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmgzLjV2NS41SDRWNlptMCA0LjVoNS41VjE2SDZhMiAyIDAgMCAxLTItMnYtMy41Wm0xMiAwVjE0YTIgMiAwIDAgMS0yIDJoLTMuNXYtNS41SDE2WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uRm91ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5Gb3VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0IDE3YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zdjE0Wk0xMyAzaC0yLjV2MTRIMTNWM1pNNyAzaDIuNXYxNEg3VjNaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM1YzWlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uRm91clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uRm91clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJ2MTJhMiAyIDAgMCAxLTItMlY2Wm02LjUgMTBWNEgxM3YxMmgtMi41Wm0tMSAwSDdWNGgyLjV2MTJabTYuNS0yYTIgMiAwIDAgMS0yIDJWNGEyIDIgMCAwIDEgMiAydjhaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Gb3VyRm9jdXNDZW50ZXJMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtbkZvdXJGb2N1c0NlbnRlckxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFWNEg2Wm00IDB2MTJoMi41VjRIMTBabTQgMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLS41djEyaC41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uRm91ckZvY3VzQ2VudGVyUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uRm91ckZvY3VzQ2VudGVyUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaC41VjRINlptNCAxMlY0SDcuNXYxMkgxMFptMyAwaDFhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTF2MTJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Gb3VyRm9jdXNMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtbkZvdXJGb2N1c0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgM2EzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNmEzIDMgMCAwIDEgMy0zaDhabTIgM2EyIDIgMCAwIDAtMi0yaC0uNXYxMmguNWEyIDIgMCAwIDAgMi0yVjZabS0zLjUgMTBWNEgxMHYxMmgyLjVabS02IDBIOVY0SDYuNXYxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtbkZvdXJGb2N1c1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtbkZvdXJGb2N1c1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaC41djEySDZhMiAyIDAgMCAxLTItMlY2Wm0zLjUgMTBWNEgxMHYxMkg3LjVabTYgMEgxMVY0aDIuNXYxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtbk9uZVRoaXJkTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5PbmVUaGlyZExlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAxN2g2YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDh2MTRaTTcgM0g2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDFWM1pcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtbk9uZVRoaXJkTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uT25lVGhpcmRMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmgxdjEySDZhMiAyIDAgMCAxLTItMlY2Wm00IDEwVjRoNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg4WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uT25lVGhpcmRSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5PbmVUaGlyZFJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDE3aDFhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNoLTF2MTRaTTEyIDNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g2VjNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5PbmVUaGlyZFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5PbmVUaGlyZFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg2djEySDZhMiAyIDAgMCAxLTItMlY2Wm05IDEwVjRoMWEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtbk9uZVRoaXJkUmlnaHRIaW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtbk9uZVRoaXJkUmlnaHRIaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNhLjUuNSAwIDAgMSAwIDFDNC42NyA0IDQgNC42NyA0IDUuNWEuNS41IDAgMCAxLTEgMFptNS0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk0zLjUgOGMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wm0wIDZjLjI4IDAgLjUuMjIuNS41IDAgLjgzLjY3IDEuNSAxLjUgMS41YS41LjUgMCAwIDEgMCAxQTIuNSAyLjUgMCAwIDEgMyAxNC41YzAtLjI4LjIyLS41LjUtLjVaTTggMTYuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNC0xM2MwLS4yOC4yMi0uNS41LS41SDE0YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzaC0xLjVhLjUuNSAwIDAgMS0uNS0uNXYtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5PbmVUaGlyZFJpZ2h0SGludFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uT25lVGhpcmRSaWdodEhpbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjVhLjUuNSAwIDAgMCAxIDBDNCA0LjY3IDQuNjcgNCA1LjUgNGEuNS41IDAgMCAwIDAtMVptMyAwYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTQgOC41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNabTAgNmEuNS41IDAgMCAwLTEgMEEyLjUgMi41IDAgMCAwIDUuNSAxN2EuNS41IDAgMCAwIDAtMUExLjUgMS41IDAgMCAxIDQgMTQuNVpNOC41IDE2YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabTQtMTNhLjUuNSAwIDAgMC0uNS41djEzYzAgLjI4LjIyLjUuNS41SDE0YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zaC0xLjVabS41IDEzVjRoMWEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtblRocmVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblRocmVlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDE3aDFhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNoLTF2MTRaTTEyIDNIOHYxNGg0VjNaTTYgM2gxdjE0SDZhMyAzIDAgMCAxLTMtM1Y2YTMgMyAwIDAgMSAzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5UaHJlZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uVGhyZWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxVjRINlptNiAxMlY0SDh2MTJoNFptMSAwaDFhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTF2MTJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5UaHJlZUZvY3VzQ2VudGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblRocmVlRm9jdXNDZW50ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoMnYxMkg2YTIgMiAwIDAgMS0yLTJWNlptOCAxMFY0aDJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5UaHJlZUZvY3VzTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5UaHJlZUZvY3VzTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm05IDEwVjRIOHYxMmg0Wm0xIDBoMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtMXYxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtblRocmVlRm9jdXNSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5UaHJlZUZvY3VzUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNmEzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZaTTggMTZWNGg0djEySDhabS0xIDBINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxdjEyWlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uVHdvRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblR3b0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDE3SDE0YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zaC0zLjV2MTRabS0xLTE0SDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMy41VjNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Ud29SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblR3b1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoMy41djEySDZhMiAyIDAgMCAxLTItMlY2Wm02LjUgMTBWNEgxNGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uVHdvRm9jdXNMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblR3b0ZvY3VzTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm00IDEzVjRoNGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtblR3b0ZvY3VzUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uVHdvRm9jdXNSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg0djEySDZhMiAyIDAgMCAxLTItMlY2WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uVHdvU3BsaXRMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblR3b1NwbGl0TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCAxN2gtMy41VjNIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNaTTYgM2gzLjV2Ni41SDNWNmEzIDMgMCAwIDEgMy0zWm0tMyA3LjVWMTRhMyAzIDAgMCAwIDMgM2gzLjV2LTYuNUgzWlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uVHdvU3BsaXRMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5Ud29TcGxpdExlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjMuNWg1LjVWNEg2Wm0zLjUgNi41SDRWMTRjMCAxLjEuOSAyIDIgMmgzLjV2LTUuNVpNMTQgMTZhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTMuNXYxMkgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtblR3b1NwbGl0TGVmdEZvY3VzQm90dG9tTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5Ud29TcGxpdExlZnRGb2N1c0JvdHRvbUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2NGg1LjVWNEg2Wm04IDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0zLjV2MTJIMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Ud29TcGxpdExlZnRGb2N1c1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblR3b1NwbGl0TGVmdEZvY3VzUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2My41aDZWNEg2Wm00IDEydi01LjVINFYxNGMwIDEuMS45IDIgMiAyaDRaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Ud29TcGxpdExlZnRGb2N1c1RvcExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uVHdvU3BsaXRMZWZ0Rm9jdXNUb3BMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTYuNSA0SDR2NGMwIDEuMS45IDIgMiAyaDMuNXYtNlptNC41IDZhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTMuNXYxMkgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dENvbHVtblR3b1NwbGl0UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uVHdvU3BsaXRSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCAxN2gtMy41di02LjVIMTdWMTRhMyAzIDAgMCAxLTMgM1ptMy03LjVoLTYuNVYzSDE0YTMgMyAwIDAgMSAzIDN2My41Wk02IDNoMy41djE0SDZhMyAzIDAgMCAxLTMtM1Y2YTMgMyAwIDAgMSAzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Ud29TcGxpdFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5Ud29TcGxpdFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMy41VjRINlptOCAxMmEyIDIgMCAwIDAgMi0ydi0zLjVoLTUuNVYxNkgxNFptMi02LjVWNmEyIDIgMCAwIDAtMi0yaC0zLjV2NS41SDE2WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Q29sdW1uVHdvU3BsaXRSaWdodEZvY3VzQm90dG9tUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Q29sdW1uVHdvU3BsaXRSaWdodEZvY3VzQm90dG9tUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDMuNVY0SDZabTQuNSA2SDE2VjZhMiAyIDAgMCAwLTItMmgtMy41djZaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Ud29TcGxpdFJpZ2h0Rm9jdXNMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dENvbHVtblR3b1NwbGl0UmlnaHRGb2N1c0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptNy0ydjUuNWg2VjZhMiAyIDAgMCAwLTItMmgtNFptMCA2LjVWMTZoNGEyIDIgMCAwIDAgMi0ydi0zLjVoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRDb2x1bW5Ud29TcGxpdFJpZ2h0Rm9jdXNUb3BSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRDb2x1bW5Ud29TcGxpdFJpZ2h0Rm9jdXNUb3BSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMy41VjRINlptOCAxMmEyIDIgMCAwIDAgMi0ydi00aC01LjV2NkgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd0ZvdXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93Rm91ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDE0YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zSDNabTE0LTF2LTIuNUgzVjEzaDE0Wm0wLTZ2Mi41SDNWN2gxNFptMC0xYTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtMyAzaDE0WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93Rm91clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93Rm91clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNmEzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZabS0zLTJhMiAyIDAgMCAxIDIgMkg0YzAtMS4xLjktMiAyLTJoOFpNNCAxMC41aDEyVjEzSDR2LTIuNVptMC0xVjdoMTJ2Mi41SDRaTTYgMTZhMiAyIDAgMCAxLTItMmgxMmEyIDIgMCAwIDEtMiAySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dGb3VyRm9jdXNCb3R0b21GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93Rm91ckZvY3VzQm90dG9tRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydi41aDEyVjZhMiAyIDAgMCAwLTItMkg2Wm0xMCAzLjVINFYxMGgxMlY3LjVabTAgNlYxMUg0djIuNWgxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd0ZvdXJGb2N1c0NlbnRlckJvdHRvbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRSb3dGb3VyRm9jdXNDZW50ZXJCb3R0b21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgMTdhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4Wm0yLTNhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTFoMTJ2MVptMC00SDRWNy41aDEyVjEwWk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2LjVINFY2WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93Rm91ckZvY3VzQ2VudGVyVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd0ZvdXJGb2N1c0NlbnRlclRvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCAzYTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2YTMgMyAwIDAgMSAzLTNoOFptMiAzYTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjFoMTJWNlptMCA0SDR2Mi41aDEyVjEwWk00IDE0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0uNUg0di41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93Rm91ckZvY3VzVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd0ZvdXJGb2N1c1RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDE0YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2OFptMyAyYTIgMiAwIDAgMS0yLTJ2LS41aDEydi41YTIgMiAwIDAgMS0yIDJINlptMTAtMy41SDRWMTBoMTJ2Mi41Wm0wLTZWOUg0VjYuNWgxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1RocmVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1RocmVlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDdWNmEzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLTMgM3YxaDE0Wk0zIDh2NGgxNFY4SDNabTAgNnYtMWgxNHYxYTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93VGhyZWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1RocmVlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnYxaDEyVjZhMiAyIDAgMCAwLTItMkg2Wm0xMCA0SDR2NGgxMlY4Wk00IDE0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xSDR2MVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1RocmVlRm9jdXNCb3R0b21GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93VGhyZWVGb2N1c0JvdHRvbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDE3YTMgMyAwIDAgMS0zLTNWNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINlptMTAtOUg0djRoMTJWOFptMC0xVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2MWgxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1RocmVlRm9jdXNDZW50ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93VGhyZWVGb2N1c0NlbnRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDE0YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2OFptMyAyYTIgMiAwIDAgMS0yLTJ2LTJoMTJ2MmEyIDIgMCAwIDEtMiAySDZabTEwLThINFY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUaHJlZUZvY3VzVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1RocmVlRm9jdXNUb3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptMTAgOUg0VjhoMTJ2NFptMCAxdjFhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTFoMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93VHdvRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjVIM1Y2Wm0wIDQuNVYxNGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM3YtMy41SDNaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjMuNUg0VjZabTAgNC41aDEyVjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29Gb2N1c0JvdHRvbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRSb3dUd29Gb2N1c0JvdHRvbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NEg0VjZaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29Gb2N1c1RvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRSb3dUd29Gb2N1c1RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0tMiA3aDEydjRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29Gb2N1c1RvcFNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b0ZvY3VzVG9wU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg2YTIgMiAwIDAgMS0yLTJ2LTRoNy4zNEE1LjQ3IDUuNDcgMCAwIDEgMTcgOS42VjZhMyAzIDAgMCAwLTMtM0g2Wm02LjA2IDguNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNzMgNC43MyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTUuNTVabTIuNDQgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29TZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRSb3dUd29TZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2My41aC0uMmE1LjQ4IDUuNDggMCAwIDAtNC42IDBIM1Y2Wm02IDguNWMwLTEuNTguNjYtMyAxLjczLTRIM1YxNGEzIDMgMCAwIDAgMyAzaDMuNmMtLjM4LS43NS0uNi0xLjYtLjYtMi41Wm0zLjA2LTMuMDZhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNzMgNC43MyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTUuNTVabTIuNDQgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29TZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93VHdvU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZjLS4xNi0uMzItLjMtLjY1LS40LTFINmEyIDIgMCAwIDEtMi0ydi0zLjVoNi43M2MuNDMtLjQuOTMtLjc1IDEuNDgtMUg0VjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2My4yYy4zNS4xLjY4LjI0IDEgLjRWNmEzIDMgMCAwIDAtMy0zSDZabTYuMDYgOC40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVptMi40NCA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1R3b1NwbGl0Qm90dG9tRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0Qm90dG9tRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjMuNWgxNFY2YTMgMyAwIDAgMC0zLTNINlptMTEgNy41aC02LjVWMTdIMTRhMyAzIDAgMCAwIDMtM3YtMy41Wm0tNy41IDBIM1YxNGEzIDMgMCAwIDAgMyAzaDMuNXYtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93VHdvU3BsaXRCb3R0b21SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0Qm90dG9tUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnYzLjVoMTJWNmEyIDIgMCAwIDAtMi0ySDZabTEwIDYuNWgtNS41VjE2SDE0YTIgMiAwIDAgMCAyLTJ2LTMuNVptLTYuNSAwSDRWMTRjMCAxLjEuOSAyIDIgMmgzLjV2LTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1R3b1NwbGl0Qm90dG9tRm9jdXNCb3R0b21MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0Qm90dG9tRm9jdXNCb3R0b21MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjVINFY2Wm02IDQuNWg2VjE0YTIgMiAwIDAgMS0yIDJoLTR2LTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1R3b1NwbGl0Qm90dG9tRm9jdXNCb3R0b21SaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRSb3dUd29TcGxpdEJvdHRvbUZvY3VzQm90dG9tUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjMuNUg0VjZabTAgNC41aDZWMTZINmEyIDIgMCAwIDEtMi0ydi0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29TcGxpdEJvdHRvbUZvY3VzVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0Qm90dG9tRm9jdXNUb3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMTMgNGgtNS41djZIMTRhMiAyIDAgMCAwIDItMnYtNFptLTYuNSAwSDR2NGMwIDEuMS45IDIgMiAyaDMuNXYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1R3b1NwbGl0VG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0VG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNSA5LjVWM0g2YTMgMyAwIDAgMC0zIDN2My41aDYuNVptMSAwSDE3VjZhMyAzIDAgMCAwLTMtM2gtMy41djYuNVptNi41IDFIM1YxNGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM3YtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93VHdvU3BsaXRUb3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0VG9wUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnYzLjVoNS41VjRINlptNC41IDUuNUgxNlY2YTIgMiAwIDAgMC0yLTJoLTMuNXY1LjVabTUuNSAxSDRWMTRjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExheW91dFJvd1R3b1NwbGl0VG9wRm9jdXNCb3R0b21GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGF5b3V0Um93VHdvU3BsaXRUb3BGb2N1c0JvdHRvbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY0aDUuNVY0SDZabTQuNSAwdjZIMTZWNmEyIDIgMCAwIDAtMi0yaC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMYXlvdXRSb3dUd29TcGxpdFRvcEZvY3VzVG9wTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMYXlvdXRSb3dUd29TcGxpdFRvcEZvY3VzVG9wTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm00IDYuNVY0aDRhMiAyIDAgMCAxIDIgMnYzLjVoLTZabTYgMVYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMy41aDEyWlwiXSk7XG5leHBvcnQgY29uc3QgTGF5b3V0Um93VHdvU3BsaXRUb3BGb2N1c1RvcFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xheW91dFJvd1R3b1NwbGl0VG9wRm9jdXNUb3BSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg0djUuNUg0VjZabTAgNC41aDEyVjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMZWFmT25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xlYWZPbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMDcgMi40NmExLjUgMS41IDAgMCAwLTIuMTQgMGwtMy4yNCAzLjNhNi4wMyA2LjAzIDAgMCAwIC4wNiA4LjV2LjAxYTUuOTggNS45OCAwIDAgMCAzLjc1IDEuNzR2MS40OWEuNS41IDAgMSAwIDEgMFYxNmMxLjM2LS4xIDIuNy0uNjggMy43NC0xLjczaC4wMWwuMDEtLjAyYTYuMDMgNi4wMyAwIDAgMCAuMDUtOC40OGwtMy4yNC0zLjNaTTEwLjUgMTVjLS4zMy4wMy0uNjcuMDMtMSAwVjkuNWEuNS41IDAgMSAxIDEgMFYxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExlYWZPbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xlYWZPbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTExLjA3IDIuNDYgMy4yNCAzLjNBNi4wMyA2LjAzIDAgMCAxIDEwLjUgMTZ2MS41YS41LjUgMCAxIDEtMSAwVjE2QTYuMDMgNi4wMyAwIDAgMSA1LjY5IDUuNzZsMy4yNC0zLjNhMS41IDEuNSAwIDAgMSAyLjE0IDBabS0uNTcgMTIuNTNhNS4wMyA1LjAzIDAgMCAwIDMuMS04LjUybC0zLjI0LTMuMzFhLjUuNSAwIDAgMC0uNzIgMEw2LjQgNi40NkE1LjAzIDUuMDMgMCAwIDAgOS41IDE1di01LjVhLjUuNSAwIDEgMSAxIDBWMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBMZWFmVGhyZWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGVhZlRocmVlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDJhNSA1IDAgMCAwLTQgMiA2IDYgMCAwIDEgNS4yMyAzLjA1Yy4yNS0uMDMuNS0uMDUuNzctLjA1aDNWMy4zNEMxNiAyLjYgMTUuNCAyIDE0LjY2IDJIMTFaTTcuMzQgMTQuOTkgNyAxNWE1IDUgMCAwIDEtNS01VjYuMzRDMiA1LjYgMi42IDUgMy4zNCA1SDdhNSA1IDAgMCAxIDQuMiAyLjI4IDYuMDIgNi4wMiAwIDAgMC0zLjQzIDIuNzhMNi4zNSA4LjY1YS41LjUgMCAxIDAtLjcuN2wxLjY4IDEuNjlhNiA2IDAgMCAwIDAgMy45NVpNOCAxM2E1IDUgMCAwIDEgNS01aDMuNjZDMTcuNCA4IDE4IDguNiAxOCA5LjM0VjEzYTUgNSAwIDAgMS04LjE2IDMuODdsLS45OS45OGEuNS41IDAgMCAxLS43LS43bC45OC0uOTlBNC45OCA0Ljk4IDAgMCAxIDggMTNabTIuNTUgMy4xNiAzLjMtMy4zYS41LjUgMCAwIDAtLjctLjcxbC0zLjMxIDMuM2MuMi4yNy40NC41LjcuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBMZWFmVGhyZWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xlYWZUaHJlZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgN2MwIC4zNC0uMDMuNjgtLjEgMWguNzZDMTcuNCA4IDE4IDguNiAxOCA5LjM0VjEzYTUgNSAwIDAgMS04LjE2IDMuODdsLS45OS45OGEuNS41IDAgMCAxLS43LS43bC45OC0uOTlhNSA1IDAgMCAxLS43OS0xLjM0QTUgNSAwIDAgMSAyIDEwVjYuMzRDMiA1LjYgMi42IDUgMy4zNCA1aDMuMDhBNSA1IDAgMCAxIDExIDJoMy42NkMxNS40IDIgMTYgMi42IDE2IDMuMzRWN1pNNy41MiA1LjAzYTUgNSAwIDAgMSA0LjE0IDMuMTVBNSA1IDAgMCAxIDEzIDhoMS44N0E0IDQgMCAwIDAgMTUgN1YzLjM0YS4zNC4zNCAwIDAgMC0uMzQtLjM0SDExYTQgNCAwIDAgMC0zLjQ4IDIuMDNabTMuMDMgMTEuMTNBNCA0IDAgMCAwIDE3IDEzVjkuMzRhLjM0LjM0IDAgMCAwLS4zNC0uMzRIMTNhNCA0IDAgMCAwLTMuMTYgNi40NWwzLjMtMy4zYS41LjUgMCAwIDEgLjcxLjdsLTMuMyAzLjMxWk04IDEzYzAtLjQuMDUtLjc5LjEzLTEuMTZMNS42NSA5LjM1YS41LjUgMCAxIDEgLjctLjdsMi4xNiAyLjE1YTUuMDIgNS4wMiAwIDAgMSAyLjIyLTIuMjVBNCA0IDAgMCAwIDcgNkgzLjM0YS4zNC4zNCAwIDAgMC0uMzQuMzRWMTBhNCA0IDAgMCAwIDUuMDcgMy44NUE1LjAzIDUuMDMgMCAwIDEgOCAxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IExlYWZUd29GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGVhZlR3b0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjMyIDNDMi41OSAzIDIgMy41OSAyIDQuMzJWOGE1IDUgMCAwIDAgNC40OSA0Ljk3IDYuNDggNi40OCAwIDAgMS0uMDUtNC44MmwtMS4zLTEuM2EuNS41IDAgMSAxIC43MS0uN0w2LjkgNy4xOWE2LjUyIDYuNTIgMCAwIDEgMy41MS0yLjg1QTQuOTggNC45OCAwIDAgMCA3IDNIMy4zMlptNC45NSAxMS4wMi0yLjEzIDIuMTRhLjUuNSAwIDEgMCAuNy43bDIuMTQtMi4xM0E1LjUgNS41IDAgMCAwIDE4IDEwLjVWNi40YzAtLjc3LS42My0xLjQtMS40LTEuNGgtNC4xYTUuNSA1LjUgMCAwIDAtNC4yMyA5LjAyWm00LjU4LTMuMTdMOS43IDE0LjAyYy0uMjYtLjIxLS41LS40NS0uNy0uNzFsMy4xNi0zLjE2YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IExlYWZUd29SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xlYWZUd29SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC4zMlY4YTUgNSAwIDAgMCA1LjU4IDQuOTdjLjIuMzcuNDIuNzMuNyAxLjA1bC0yLjE0IDIuMTRhLjUuNSAwIDAgMCAuNy43bDIuMTQtMi4xM0E1LjUgNS41IDAgMCAwIDE4IDEwLjVWNi40YzAtLjc3LS42My0xLjQtMS40LTEuNGgtNC4xYy0uNDcgMC0uOTQuMDYtMS4zOC4xN0E1IDUgMCAwIDAgNyAzSDMuMzJDMi41OSAzIDIgMy41OSAyIDQuMzJabTcuNyA5LjcgMy4xNS0zLjE3YS41LjUgMCAwIDAtLjctLjdMOC45OCAxMy4zQTQuNSA0LjUgMCAwIDEgMTIuNSA2bDQuMS0uMDFjLjIyIDAgLjQuMTguNC40djQuMWE0LjUgNC41IDAgMCAxLTcuMyAzLjUyWk03IDRhNCA0IDAgMCAxIDMuMTUgMS41MyA1LjUyIDUuNTIgMCAwIDAtMi41MSAyLjRMNS44NSA2LjE1YS41LjUgMCAxIDAtLjcuN2wyLjA4IDIuMDhBNS41IDUuNSAwIDAgMCA3LjIgMTIgNCA0IDAgMCAxIDMgOFY0LjMyYzAtLjE4LjE0LS4zMi4zMi0uMzJIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IExlYXJuaW5nQXBwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xlYXJuaW5nQXBwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNC4yNmE1LjUgNS41IDAgMCAxLS42Ni0xSDZhMSAxIDAgMCAxLTEtMWg0LjJBNS41IDUuNSAwIDAgMSAxNiA5LjJWNGEyIDIgMCAwIDAtMi0ySDZabS43NSAyLjVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41YS43NS43NSAwIDAgMSAwLTEuNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuOTgtMS45N2EuNDUuNDUgMCAwIDAtLjQ1LS4wMy40OS40OSAwIDAgMC0uMTUuMS41MS41MSAwIDAgMC0uMTQuMzZ2My4wOGEuNS41IDAgMCAwIC4xNC4zNS40NS40NSAwIDAgMCAuNDguMTMuNTIuNTIgMCAwIDAgLjEzLS4wNmwyLjMtMS41N2MuMDYtLjA0LjEyLS4xLjE2LS4xOGEuNTQuNTQgMCAwIDAgMC0uNDkuNDkuNDkgMCAwIDAtLjE3LS4xOGwtMi4zLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExlYXJuaW5nQXBwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMZWFybmluZ0FwcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzaDhhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0LjI2YTUuNSA1LjUgMCAwIDEtLjY2LTFINmExIDEgMCAwIDEtMS0xaDQuMmMtLjA4LS4zMi0uMTUtLjY2LS4xOC0xSDVWNGExIDEgMCAwIDEgMS0xWm0xIDFhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUg3Wm02IDF2MUg3VjVoNlptNiA5LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljk4LTEuOTdhLjQ1LjQ1IDAgMCAwLS40NS0uMDMuNDkuNDkgMCAwIDAtLjE1LjEuNTEuNTEgMCAwIDAtLjE0LjM2djMuMDhhLjUuNSAwIDAgMCAuMTQuMzUuNDUuNDUgMCAwIDAgLjQ4LjEzLjUyLjUyIDAgMCAwIC4xMy0uMDZsMi4zLTEuNTdjLjA2LS4wNC4xMi0uMS4xNi0uMThhLjU0LjU0IDAgMCAwIDAtLjQ5LjQ5LjQ5IDAgMCAwLS4xNy0uMThsLTIuMy0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaWJyYXJ5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpYnJhcnlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXYxMi45OGMwIC44My42NyAxLjUgMS41IDEuNWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNVYzLjVDNiAyLjY3IDUuMzMgMiA0LjUgMmgtMVptNSAwQzcuNjcgMiA3IDIuNjcgNyAzLjV2MTIuOThjMCAuODMuNjcgMS41IDEuNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMVptNy4yMiA0LjE2YTEuNSAxLjUgMCAwIDAtMS44Ny0xLjFsLS43NS4yQTEuNSAxLjUgMCAwIDAgMTIuMDQgN2wyIDkuOGMuMTguODQgMS4wMiAxLjM2IDEuODQgMS4xNWwuOTktLjI1Yy43OS0uMiAxLjI3LTEgMS4xLTEuNzhsLTIuMjUtOS43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IExpYnJhcnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpYnJhcnlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMy41QzIgMi42NyAyLjY3IDIgMy41IDJoMUM1LjMzIDIgNiAyLjY3IDYgMy41djEyLjk4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWExLjUgMS41IDAgMCAxLTEuNS0xLjVWMy41Wk0zLjUgM2EuNS41IDAgMCAwLS41LjV2MTIuOThjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41VjMuNWEuNS41IDAgMCAwLS41LS41aC0xWm0zLjUuNUM3IDIuNjcgNy42NyAyIDguNSAyaDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTIuOThjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xYTEuNSAxLjUgMCAwIDEtMS41LTEuNVYzLjVaTTguNSAzYS41LjUgMCAwIDAtLjUuNXYxMi45OGMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjVWMy41YS41LjUgMCAwIDAtLjUtLjVoLTFabTcuMjIgMy4xNmExLjUgMS41IDAgMCAwLTEuODctMS4xbC0uNzUuMkExLjUgMS41IDAgMCAwIDEyLjA0IDdsMiA5LjhjLjE4Ljg0IDEuMDIgMS4zNiAxLjg0IDEuMTVsLjk5LS4yNWMuNzktLjIgMS4yNy0xIDEuMS0xLjc4bC0yLjI1LTkuNzZaTTE0LjEyIDZhLjUuNSAwIDAgMSAuNjIuMzdMMTcgMTYuMTRhLjUuNSAwIDAgMS0uMzcuNmwtLjk4LjI1YS41LjUgMCAwIDEtLjYxLS4zOWwtMi05LjhhLjUuNSAwIDAgMSAuMzUtLjU4bC43NC0uMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExpZ2h0YnVsYkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaWdodGJ1bGJGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTMuMDcgMTUtLjM4IDEuNmExLjg0IDEuODQgMCAwIDEtMS42NyAxLjRIOS4xM2MtLjgyIDAtMS41NC0uNTItMS43OC0xLjI2bC0uMDQtLjE0LS4zOC0xLjZoNi4xNFpNMTAgMmMzLjMxIDAgNiAyLjYgNiA1LjggMCAxLjY4LS43NSAzLjIyLTIuMiA0LjZhLjYuNiAwIDAgMC0uMTUuMmwtLjAyLjA5TDEzLjMgMTRINi43bC0uMzEtMS4zMWEuNi42IDAgMCAwLS4xNy0uM0E2LjMyIDYuMzIgMCAwIDEgNCA4LjA0TDQgNy44di0uMkE1LjkxIDUuOTEgMCAwIDEgMTAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExpZ2h0YnVsYlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlnaHRidWxiUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYzMuMzEgMCA2IDIuNiA2IDUuOCAwIDEuNjgtLjc1IDMuMjItMi4yIDQuNmEuNi42IDAgMCAwLS4xNS4ybC0uMDIuMDktLjk0IDMuOTJhMS44NCAxLjg0IDAgMCAxLTEuNjcgMS4zOGwtLjE1LjAxSDkuMTNjLS44MiAwLTEuNTQtLjUyLTEuNzgtMS4yNmwtLjA0LS4xNC0uOTMtMy45MWEuNi42IDAgMCAwLS4xNy0uM0E2LjMyIDYuMzIgMCAwIDEgNCA4LjA0TDQgNy44di0uMkE1LjkxIDUuOTEgMCAwIDEgMTAgMlptMi4wNCAxM0g3Ljk2bC4zMSAxLjMzLjAzLjFjLjEuMy4zOC41Mi43MS41NmwuMTIuMDFoMS44MWEuODYuODYgMCAwIDAgLjc1LS41M2wuMDMtLjEuMzItMS4zN1pNMTAgM2E0LjkyIDQuOTIgMCAwIDAtNC45OCA0LjQxTDUgNy42M1Y4Yy4wNiAxLjMuNjggMi41MiAxLjkgMy42Ny4xOC4xNy4zMi40LjQuNjRsLjA1LjE1LjM3IDEuNTRoNC41N2wuMzgtMS42MS4wNS0uMTZjLjA5LS4yMS4yMi0uNC4zOS0uNTZDMTQuMzggMTAuNDcgMTUgOS4xOCAxNSA3LjhBNC45IDQuOSAwIDAgMCAxMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgTGlnaHRidWxiQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpZ2h0YnVsYkNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDEzLjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43Wk0xNC41IDExYy4xNyAwIC4zNCAwIC41LS4wMmE4LjIgOC4yIDAgMCAxLTEuMiAxLjQxLjYuNiAwIDAgMC0uMTUuMjJsLS4wMy4wOC0uMyAxLjMxSDYuNjhsLS4zMS0xLjMxYS42LjYgMCAwIDAtLjE4LS4zQTYuMzIgNi4zMiAwIDAgMSA0IDguMDRWNy42QTUuOTEgNS45MSAwIDAgMSAxMC4yNSAyYTUuNSA1LjUgMCAwIDAgNC4yNSA5Wm0tMS40MyA0LS4zOCAxLjZhMS44NCAxLjg0IDAgMCAxLTEuNjcgMS40aC0xLjljLS44MSAwLTEuNTMtLjUyLTEuNzctMS4yNmwtLjA0LS4xNC0uMzgtMS42aDYuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBMaWdodGJ1bGJDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpZ2h0YnVsYkNoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEwxMy41IDYuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1ptLTEuODQgNy4zM2E4LjIgOC4yIDAgMCAxLTEuMjEgMS40MS42LjYgMCAwIDAtLjE1LjIybC0uMDIuMDgtLjk0IDMuOTJhMS44NCAxLjg0IDAgMCAxLTEuNjcgMS4zOGwtMS45LjAxYy0uODEgMC0xLjUzLS41Mi0xLjc3LTEuMjZsLS4wNC0uMTQtLjkzLTMuOTFhLjYuNiAwIDAgMC0uMTctLjNBNi4zMiA2LjMyIDAgMCAxIDQgOC4wNEw0IDcuOHYtLjJBNS45MSA1LjkxIDAgMCAxIDEwLjI1IDJhNS41IDUuNSAwIDAgMC0uNjYgMS4wMiA0LjkgNC45IDAgMCAwLTQuNTcgNC40bC0uMDIuMlY4Yy4wNiAxLjMuNjggMi41MiAxLjkgMy42Ny4xOC4xNy4zMi40LjQuNjRsLjA1LjE1LjM3IDEuNTRoNC41N2wuMzgtMS42MS4wNS0uMTZjLjA5LS4yMS4yMi0uNC4zOS0uNTYuMjUtLjI0LjQ3LS40OC42Ny0uNzIuNC4wNi44Mi4wNiAxLjIzLjAzWk03Ljk2IDE1bC4zMSAxLjMzLjAzLjFjLjEuMy4zOC41Mi43MS41NmwuMTIuMDFoMS44MWEuODYuODYgMCAwIDAgLjc1LS41M2wuMDMtLjEuMzItMS4zN0g3Ljk2WlwiXSk7XG5leHBvcnQgY29uc3QgTGlnaHRidWxiQ2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpZ2h0YnVsYkNpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlpNNi41IDguNWEzLjUgMy41IDAgMSAxIDUuNTkgMi44MWMtLjE5LjE0LS4yOS4yOS0uMzEuNDNsLS4wNS4yNkg4LjI3bC0uMDUtLjI2Yy0uMDItLjE0LS4xMi0uMy0uMy0uNDNBMy41IDMuNSAwIDAgMSA2LjUgOC41Wm0yLjE4IDUuNjhMOC40NiAxM2gzLjA4bC0uMjIgMS4xOGExIDEgMCAwIDEtLjk4LjgyaC0uNjhhMSAxIDAgMCAxLS45OC0uODJaXCJdKTtcbmV4cG9ydCBjb25zdCBMaWdodGJ1bGJDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpZ2h0YnVsYkNpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptLTggN2E4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC00YTIuNzUgMi43NSAwIDAgMC0xLjY5IDQuOTJjLjIuMTUuMzUuMzcuNC42M2wuMDguNDVoMi40MmwuMDgtLjQ1Yy4wNS0uMjYuMi0uNDguNC0uNjNBMi43NCAyLjc0IDAgMCAwIDEwIDZabTEuMDIgN0g4Ljk4bC4xLjZjLjA1LjIzLjI2LjQuNS40aC44NGEuNS41IDAgMCAwIC41LS40bC4xLS42Wk02LjI1IDguNzVhMy43NSAzLjc1IDAgMSAxIDYuMDMgMi45OGwtLjM5IDIuMDVBMS41IDEuNSAwIDAgMSAxMC40MiAxNWgtLjg0YTEuNSAxLjUgMCAwIDEtMS40Ny0xLjIybC0uMzktMi4wNGMwLS4wMSAwLS4wMi0uMDItLjAzYTMuNzQgMy43NCAwIDAgMS0xLjQ1LTIuOTZaXCJdKTtcbmV4cG9ydCBjb25zdCBMaWdodGJ1bGJGaWxhbWVudEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaWdodGJ1bGJGaWxhbWVudEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy4wNyAxNS0uMzggMS42YTEuODQgMS44NCAwIDAgMS0xLjY3IDEuNEg5LjEzYy0uODIgMC0xLjU0LS41Mi0xLjc4LTEuMjZsLS4wNC0uMTQtLjM4LTEuNmg2LjE0Wk0xMCAyYzMuMzEgMCA2IDIuNiA2IDUuOCAwIDEuNjgtLjc1IDMuMjItMi4yIDQuNmEuNi42IDAgMCAwLS4xNS4ybC0uMDIuMDlMMTMuMyAxNEgxMC41VjkuNWEuNS41IDAgMSAwLTEgMFYxNEg2LjY5bC0uMzEtMS4zMWEuNi42IDAgMCAwLS4xNy0uM0E2LjMyIDYuMzIgMCAwIDEgNCA4LjA0TDQgNy44di0uMkE1LjkxIDUuOTEgMCAwIDEgMTAgMlptLS41IDQuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwWm0zLjM1Ljk0YS41LjUgMCAwIDAtLjcgMGwtLjcxLjcxYS41LjUgMCAwIDAgLjcuN2wuNzEtLjdhLjUuNSAwIDAgMCAwLS43Wm0tNSAwYS41LjUgMCAxIDAtLjcuNzFsLjcuN2EuNS41IDAgMSAwIC43MS0uN2wtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBMaWdodGJ1bGJGaWxhbWVudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlnaHRidWxiRmlsYW1lbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNSA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptMy4zNS45NGEuNS41IDAgMCAwLS43IDBsLS43MS43MWEuNS41IDAgMCAwIC43LjdsLjcxLS43YS41LjUgMCAwIDAgMC0uN1ptLTUgMGEuNS41IDAgMSAwLS43LjcxbC43LjdhLjUuNSAwIDEgMCAuNzEtLjdsLS43LS43Wk0xMCAyYzMuMzEgMCA2IDIuNiA2IDUuOCAwIDEuNjgtLjc1IDMuMjItMi4yIDQuNmEuNi42IDAgMCAwLS4xNS4ybC0uMDIuMDktLjk0IDMuOTJhMS44NCAxLjg0IDAgMCAxLTEuNjcgMS4zOGwtLjE1LjAxSDkuMTNjLS44MiAwLTEuNTQtLjUyLTEuNzgtMS4yNmwtLjA0LS4xNC0uOTMtMy45MWEuNi42IDAgMCAwLS4xNy0uM0E2LjMyIDYuMzIgMCAwIDEgNCA4LjA0TDQgNy44di0uMkE1LjkxIDUuOTEgMCAwIDEgMTAgMlpNNy45NiAxNWwuMzEgMS4zMy4wMy4xYy4xLjMuMzguNTIuNzEuNTZsLjEyLjAxaDEuODFhLjg2Ljg2IDAgMCAwIC43NS0uNTNsLjAzLS4xLjMyLTEuMzdINy45NlpNMTAgM2E0LjkyIDQuOTIgMCAwIDAtNC45OCA0LjQxTDUgNy42M1Y4Yy4wNiAxLjMuNjggMi41MiAxLjkgMy42Ny4xOC4xNy4zMi40LjQuNjRsLjA1LjE1LjM3IDEuNTRIOS41VjkuNWEuNS41IDAgMSAxIDEgMFYxNGgxLjc5bC4zOC0xLjYxLjA1LS4xNmMuMDktLjIxLjIyLS40LjM5LS41NkMxNC4zOCAxMC40NyAxNSA5LjE4IDE1IDcuOEE0LjkgNC45IDAgMCAwIDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBMaWdodGJ1bGJQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlnaHRidWxiUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wibTEyLjgzIDE2LS4xNC42YTEuODQgMS44NCAwIDAgMS0xLjY3IDEuNEg5LjEzYy0uODIgMC0xLjU0LS41Mi0xLjc4LTEuMjZsLS4wNC0uMTQtLjE0LS42aDUuNjZabS4yNC0xIC4yLS43OWE0Ljk4IDQuOTggMCAwIDAtNi41MyAwbC4xOS43OWg2LjE0Wk0xMCAxMmMtMS4zMSAwLTIuNTMuNDItMy41MiAxLjE0bC0uMS0uNDVhLjYuNiAwIDAgMC0uMTctLjNBNi4zMiA2LjMyIDAgMCAxIDQgOC4wNEw0IDcuOHYtLjJBNS45MSA1LjkxIDAgMCAxIDEwIDJjMy4zMSAwIDYgMi42IDYgNS44IDAgMS42OC0uNzUgMy4yMi0yLjIgNC42YS42LjYgMCAwIDAtLjE1LjJsLS4wMi4wOS0uMTEuNDVBNS45NyA1Ljk3IDAgMCAwIDEwIDEyWk04LjUgOGExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTAgNS41YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01WlwiXSk7XG5leHBvcnQgY29uc3QgTGlnaHRidWxiUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaWdodGJ1bGJQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjMy4zMSAwIDYgMi42IDYgNS44IDAgMS42OC0uNzUgMy4yMi0yLjIgNC42YS42LjYgMCAwIDAtLjE1LjJsLS4wMi4wOS0uOTQgMy45MmExLjg0IDEuODQgMCAwIDEtMS42NyAxLjM4bC0uMTUuMDFIOS4xM2MtLjgyIDAtMS41NC0uNTItMS43OC0xLjI2bC0uMDQtLjE0LS45My0zLjkxYS42LjYgMCAwIDAtLjE3LS4zQTYuMzIgNi4zMiAwIDAgMSA0IDguMDRMNCA3Ljh2LS4yQTUuOTEgNS45MSAwIDAgMSAxMCAyWk03Ljk2IDE1bC4zMSAxLjMzLjAzLjFjLjEuMy4zOC41Mi43MS41NmwuMTIuMDFoMS44MWEuODYuODYgMCAwIDAgLjc1LS41M2wuMDMtLjEuMzItMS4zN0g3Ljk2Wm00LjUzLTEuODRhNC45OCA0Ljk4IDAgMCAwLTQuOTcgMGwuMi44NGg0LjU3bC4yLS44NFptLjI2LTFjLjA5LS4xOC4yLS4zNS4zNi0uNUMxNC4zOCAxMC40NyAxNSA5LjE5IDE1IDcuOEE0LjkgNC45IDAgMCAwIDEwIDNhNC45MiA0LjkyIDAgMCAwLTQuOTggNC40MUw1IDcuNjNWOGMuMDYgMS4zLjY4IDIuNTIgMS45IDMuNjcuMTQuMTQuMjYuMy4zNS41YTUuOTcgNS45NyAwIDAgMSA1LjUgMFpNOC41IDhhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTEwIDUuNWEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpa2VydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaWtlcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAxNnYtNS41SDJWMTNhMyAzIDAgMCAwIDMgM2gxWm0xIDBoOGEzIDMgMCAwIDAgMy0zdi0yLjVIN1YxNlptMi0yYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptMi4yNSAwYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptMi4yNSAwYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptMi4yNSAwYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNMTggOS41VjdhMyAzIDAgMCAwLTMtM0g3djUuNWgxMVpNOS43NSA2Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuMjUgMGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0yLjI1IDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMi4yNSAwYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTYgNEg1YTMgMyAwIDAgMC0zIDN2Mi41aDRWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IExpa2VydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlrZXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgMTIuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMi4yNSAwYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuMjUgMGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0yLjI1IDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNOC43NSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTEgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTIuMjUgMGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTIuMjUgMGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTIgN2EzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3Wm0zLTJhMiAyIDAgMCAwLTIgMnYyLjVoM1Y1SDVabTEgNS41SDNWMTNjMCAxLjEuOSAyIDIgMmgxdi00LjVabTEgMFYxNWg4YTIgMiAwIDAgMCAyLTJ2LTIuNUg3Wm0xMC0xVjdhMiAyIDAgMCAwLTItMkg3djQuNWgxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy43OCAyLjIyYy4zLjMuMy43NyAwIDEuMDZsLTE0LjUgMTQuNWEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDE0LjUtMTQuNWMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy44NSAyLjE1Yy4yLjIuMi41MSAwIC43bC0xNSAxNWEuNS41IDAgMCAxLS43LS43bDE1LTE1Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgTGluZURhc2hlc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lRGFzaGVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2Ljc4IDQuMjhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtLjUuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bC41LS41Wm0tMyAxLjk0Yy4zLjMuMy43NyAwIDEuMDZsLS41LjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuNS0uNWMuMy0uMy43Ny0uMyAxLjA2IDBabS0zIDNjLjMuMy4zLjc3IDAgMS4wNmwtLjUuNWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bC41LS41Yy4zLS4zLjc3LS4zIDEuMDYgMFptLTMgM2MuMy4zLjMuNzcgMCAxLjA2bC0uNS41YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsLjUtLjVjLjMtLjMuNzctLjMgMS4wNiAwWm0tMyA0LjA2YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLS41LjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVEYXNoZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVEYXNoZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2Ljg1IDMuODVhLjUuNSAwIDAgMC0uNy0uN2wtMSAxYS41LjUgMCAwIDAgLjcuN2wxLTFabS0zIDIuM2MuMi4yLjIuNSAwIC43bC0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFjLjItLjIuNS0uMi43IDBabS0zIDNjLjIuMi4yLjUgMCAuN2wtMSAxYS41LjUgMCAwIDEtLjctLjdsMS0xYy4yLS4yLjUtLjIuNyAwWm0tMyAzYy4yLjIuMi41IDAgLjdsLTEgMWEuNS41IDAgMCAxLS43LS43bDEtMWMuMi0uMi41LS4yLjcgMFptLTMgMy43YS41LjUgMCAwIDAtLjctLjdsLTEgMWEuNS41IDAgMCAwIC43LjdsMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUZsb3dEaWFnb25hbFVwUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUZsb3dEaWFnb25hbFVwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuODUgNC44NWEuNS41IDAgMCAwLS43LS43bC03LjQxIDcuNGEzIDMgMCAxIDAgLjcuN2w3LjQxLTcuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVGbG93RGlhZ29uYWxVcFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lRmxvd0RpYWdvbmFsVXBSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuODUgNC44NWEuNS41IDAgMCAwLS43LS43bC03LjQxIDcuNGEzIDMgMCAxIDAgLjcuN2w3LjQxLTcuNFpNNCAxNGEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lSG9yaXpvbnRhbDFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUhvcml6b250YWwxRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgOS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVIb3Jpem9udGFsMVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUhvcml6b250YWwxUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDkuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWwxRGFzaGVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVIb3Jpem9udGFsMURhc2hlc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDkuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVBLjc1Ljc1IDAgMCAxIDIgOS43NVptNiAwYzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41QS43NS43NSAwIDAgMSA4IDkuNzVabTYgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVIb3Jpem9udGFsMURhc2hlc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUhvcml6b250YWwxRGFzaGVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDkuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNiAwYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm02IDBjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lSG9yaXpvbnRhbDJEYXNoZXNTb2xpZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lSG9yaXpvbnRhbDJEYXNoZXNTb2xpZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDZhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVptNiAwYS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVabTYgMGEuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wm0tMTIgNmEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVIb3Jpem9udGFsMkRhc2hlc1NvbGlkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lSG9yaXpvbnRhbDJEYXNoZXNTb2xpZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDZhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNiAwYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTYgMGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0tMTIgNmEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lSG9yaXpvbnRhbDNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUhvcml6b250YWwzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNC43NVptMCA1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA5Ljc1Wk0yLjc1IDE0YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWwzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lSG9yaXpvbnRhbDNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWw0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVIb3Jpem9udGFsNEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDMuNzVabTAgNGMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNy43NVpNMi43NSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpNMiAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lSG9yaXpvbnRhbDRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVIb3Jpem9udGFsNFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDNhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm0wIDRoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xWk0yIDExLjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMy41YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVIb3Jpem9udGFsNFNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lSG9yaXpvbnRhbDRTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNSAxMGMuOTcgMCAxLjg3LS4zIDIuNi0uODNsMy42MiAzLjYxYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTMuNjEtMy42MUE0LjUgNC41IDAgMSAwIDEyLjUgMTBabTAtNy41YTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNlptMy4wMyA4LjUgMS41IDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxMi43OFpNMi43NSAzSDcuNmMtLjI0LjQ3LS40MS45Ny0uNSAxLjVIMi43NGEuNzUuNzUgMCAwIDEgMC0xLjVabTAgNGg0LjQ2Yy4xNS41NC4zOCAxLjA0LjY4IDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVpNMiAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lSG9yaXpvbnRhbDRTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVIb3Jpem9udGFsNFNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuNSAxMGMxLjA2IDAgMi4wNC0uMzcgMi44LS45OGwzLjg1IDMuODNhLjUuNSAwIDAgMCAuNy0uN0wxNi4wMiA4LjNBNC41IDQuNSAwIDEgMCAxMi41IDEwWm0wLThhMy41IDMuNSAwIDEgMSAwIDcgMy41IDMuNSAwIDAgMSAwLTdabS4wMiA5aDMuMzZsMSAxSDIuNWEuNS41IDAgMCAxIDAtMWgxMC4wMlpNMi41IDNoNS4xYy0uMTYuMzItLjMuNjUtLjQgMUgyLjVhLjUuNSAwIDAgMSAwLTFabTUuMSA1Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDIuNWEuNS41IDAgMCAwIDAgMWg1LjFaTTIgMTUuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWw1RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVIb3Jpem9udGFsNUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDMuNzVabTAgNmMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgOS43NVpNMi43NSAxMmEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpNMiA2Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA2Ljc1Wk0yLjc1IDE1YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWw1UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lSG9yaXpvbnRhbDVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMy41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgNmMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wk0yLjUgNmEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaTTIgMTIuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWw1RXJyb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGluZUhvcml6b250YWw1RXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NSAzYS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0wIDZhLjc1Ljc1IDAgMCAwIDAgMS41aDcuMTRjLjM4LS41OS44Ny0xLjEgMS40NS0xLjVIMi43NVptMCAzaDYuNDZjLS4xNC40OC0uMjEuOTgtLjIxIDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVptMCAzaDYuNDZjLjE1LjU0LjM4IDEuMDQuNjggMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wLTlhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTE5IDEzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZUhvcml6b250YWw1RXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVIb3Jpem9udGFsNUVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjUgM2EuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVabTAgNmEuNS41IDAgMCAwIDAgMWg3Ljc2Yy4zMS0uMzguNjctLjcyIDEuMDgtMUgyLjVabTAgM2g2LjdjLS4wOC4zMi0uMTUuNjYtLjE4IDFIMi41YS41LjUgMCAwIDEgMC0xWm0wIDNoNi43Yy4xLjM1LjI0LjY4LjQgMUgyLjVhLjUuNSAwIDAgMSAwLTFabTAtOWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaTTE5IDEzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgTGluZVN0eWxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVTdHlsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVBLjc1Ljc1IDAgMCAxIDIgNC43NVptNiAwYzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41QS43NS43NSAwIDAgMSA4IDQuNzVabTYgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTEyIDVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDkuNzVaTTMuMjUgMTRhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDEzLjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41SDMuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5lU3R5bGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVTdHlsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA0LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTYgMGMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNiAwYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0tMTIgNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wk0zIDE0YTEgMSAwIDEgMCAwIDJoMTRhMSAxIDAgMSAwIDAtMkgzWlwiXSk7XG5leHBvcnQgY29uc3QgTGluZVRoaWNrbmVzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5lVGhpY2tuZXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpNMiA5LjI1QzIgOC41NiAyLjU2IDggMy4yNSA4aDEzLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDMuMjVDMi41NiAxMC41IDIgOS45NCAyIDkuMjVabTAgNS41YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDEyLjVhMS43NSAxLjc1IDAgMSAxIDAgMy41SDMuNzVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmVUaGlja25lc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmVUaGlja25lc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgMTBjMC0uODMuNjctMS41IDEuNS0xLjVoMTNhMS41IDEuNSAwIDAgMSAwIDNoLTEzQTEuNSAxLjUgMCAwIDEgMiAxNC41Wk0zIDhhMSAxIDAgMCAwIDAgMmgxNGExIDEgMCAxIDAgMC0ySDNaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgNmE0IDQgMCAwIDEgLjIgOEgxMmEuNzUuNzUgMCAwIDEtLjEtMS41SDE0YTIuNSAyLjUgMCAwIDAgLjE2LTVIMTJhLjc1Ljc1IDAgMCAxLS4xLTEuNUgxNFpNOCA2YS43NS43NSAwIDAgMSAuMSAxLjVINmEyLjUgMi41IDAgMCAwLS4xNiA1SDhhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2YTQgNCAwIDAgMS0uMi04SDhaTTYuMjUgOS4yNWg3LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtNy42YS43NS43NSAwIDAgMS0uMS0xLjVoNy42LTcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggNmEuNS41IDAgMCAxIC4wOSAxSDZhMyAzIDAgMCAwLS4yIDZIOGEuNS41IDAgMCAxIC4wOSAxSDZhNCA0IDAgMCAxLS4yMi04SDhabTYgMGE0IDQgMCAwIDEgLjIyIDhIMTJhLjUuNSAwIDAgMS0uMDktMUgxNGEzIDMgMCAwIDAgLjItNkgxMmEuNS41IDAgMCAxLS4wOS0xSDE0Wk02IDkuNWg4YS41LjUgMCAwIDEgLjA5IDFINmEuNS41IDAgMCAxLS4wOS0xSDE0IDZaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggOGE0IDQgMCAwIDAtNC00aC0yLjFhLjc1Ljc1IDAgMCAwIC4xIDEuNWgyLjE2YTIuNSAyLjUgMCAwIDEgMiAzLjc2Yy40OS4xNS45NC4zNyAxLjM2LjY0LjMtLjU2LjQ4LTEuMjEuNDgtMS45Wk04Ljc1IDQuNzVBLjc1Ljc1IDAgMCAwIDggNEg1LjhhNCA0IDAgMCAwIC4yIDhoMi4xYS43NS43NSAwIDAgMC0uMS0xLjVINS44NGEyLjUgMi41IDAgMCAxIC4xNi01aDIuMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptNSAyLjVoLTcuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDcuNmEuNzUuNzUgMCAwIDAtLjEtMS41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGlua0FkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua0FkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDQuNUEuNS41IDAgMCAwIDggNEg1Ljc4QTQgNCAwIDAgMCA2IDEyaDIuMDlBLjUuNSAwIDAgMCA4IDExSDUuOEEzIDMgMCAwIDEgNiA1aDIuMDlhLjUuNSAwIDAgMCAuNDEtLjVaTTE4IDhhNCA0IDAgMCAwLTQtNGgtMi4wOUEuNS41IDAgMCAwIDEyIDVoMi4yYTMgMyAwIDAgMSAyLjQ0IDQuNDNjLjMuMTMuNi4yOS44OC40Ny4zLS41Ni40OC0xLjIxLjQ4LTEuOVptLTQtLjVINS45MWEuNS41IDAgMCAwIC4wOSAxaDguMDlhLjUuNSAwIDAgMC0uMDktMVptNSA3YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGlua0Rpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua0Rpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgNGE0IDQgMCAwIDEgMy41MiA1LjljLS40Mi0uMjctLjg3LS41LTEuMzYtLjY0YTIuNSAyLjUgMCAwIDAtMi0zLjc1TDE0IDUuNWgtMmEuNzUuNzUgMCAwIDEtLjEtMS41SDE0Wk04IDRhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2YTIuNSAyLjUgMCAwIDAtLjE2IDVIOGEuNzUuNzUgMCAwIDEgLjEgMS41SDZhNCA0IDAgMCAxLS4yLThIOFpNNi4yNSA3LjI1aDcuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC03LjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWguMVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNzMtMS4wNmEuNS41IDAgMCAwLS43LS43bC0xLjA3IDEuMDUtMS4wNi0xLjA2YS41LjUgMCAwIDAtLjcuN2wxLjA1IDEuMDctMS4wNiAxLjA2YS41LjUgMCAwIDAgLjcuN2wxLjA3LTEuMDUgMS4wNiAxLjA2YS41LjUgMCAwIDAgLjctLjdsLTEuMDUtMS4wNyAxLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua0Rpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggNGEuNS41IDAgMCAxIC4wOSAxSDZhMyAzIDAgMCAwLS4yIDZIOGEuNS41IDAgMCAxIC4wOSAxSDZhNCA0IDAgMCAxLS4yMi04SDhabTYgMGE0IDQgMCAwIDEgMy41MiA1LjkgNS40OSA1LjQ5IDAgMCAwLS44OC0uNDcgMyAzIDAgMCAwLTIuNDQtNC40MkwxNCA1aC0yYS41LjUgMCAwIDEtLjA5LTFIMTRaTTYgNy41aDhhLjUuNSAwIDAgMSAuMDkgMUg2YS41LjUgMCAwIDEtLjA5LTFINlptMTMgN2E0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNzMtMS4wNmEuNS41IDAgMCAwLS43LS43bC0xLjA3IDEuMDUtMS4wNi0xLjA2YS41LjUgMCAwIDAtLjcuN2wxLjA1IDEuMDctMS4wNiAxLjA2YS41LjUgMCAwIDAgLjcuN2wxLjA3LTEuMDUgMS4wNiAxLjA2YS41LjUgMCAwIDAgLjctLjdsLTEuMDUtMS4wNyAxLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5rRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA4YTQgNCAwIDAgMC00LTRoLTIuMWEuNzUuNzUgMCAwIDAgLjEgMS41aDIuMTZBMi41IDIuNSAwIDAgMSAxNi41IDh2LjAyYy41Mi4wNyAxLjAyLjI4IDEuNDUuNjMuMDMtLjIxLjA1LS40My4wNS0uNjVaTTguNzUgNC43NUEuNzUuNzUgMCAwIDAgOCA0SDUuOGE0IDQgMCAwIDAgLjIgOGgyLjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUg1Ljg0YTIuNSAyLjUgMCAwIDEgLjE2LTVoMi4xYS43NS43NSAwIDAgMCAuNjUtLjc1Wm01IDIuNWgtNy42YS43NS43NSAwIDAgMCAuMSAxLjVoNy42YS43NS43NSAwIDAgMC0uMS0xLjVabS0zLjc3IDcuMTMgNC44My00LjgzYTEuODcgMS44NyAwIDAgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA4bC4zNy0xLjVjLjEtLjM4LjMtLjczLjU4LTEuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua0VkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSA0LjVBLjUuNSAwIDAgMCA4IDRINS43OEE0IDQgMCAwIDAgNiAxMmgyLjA5YS41LjUgMCAwIDAtLjEtMUg1LjhBMyAzIDAgMCAxIDYgNWgyLjA5YS41LjUgMCAwIDAgLjQtLjVaTTE4IDhhNCA0IDAgMCAwLTQtNGgtMi4xYS41LjUgMCAwIDAgLjEgMWgyLjJBMyAzIDAgMCAxIDE3IDguMTRjLjMzLjEuNjYuMjguOTUuNTIuMDMtLjIxLjA1LS40My4wNS0uNjVabS00LS41SDUuOWEuNS41IDAgMCAwIC4wOSAxaDguMDlhLjUuNSAwIDAgMC0uMS0xWm0tNC4wMiA2Ljg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wOGwuMzctMS41Yy4xLS4zOC4zLS43My41OC0xLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgTGlua011bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xIDhhNCA0IDAgMCAxIDQtNGg2YTQgNCAwIDAgMSAwIDhIOS43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTFhMi41IDIuNSAwIDAgMCAwLTVINWEyLjUgMi41IDAgMCAwLS43NCA0Ljg5Yy0uMTUuNDctLjI1Ljk3LS4yNiAxLjQ4QTQgNCAwIDAgMSAxIDhabTE1IC4xM2MtLjAxLjUxLS4xIDEuMDEtLjI2IDEuNDhBMi41IDIuNSAwIDAgMSAxNSAxNC41SDlhMi41IDIuNSAwIDAgMSAwLTVoMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIOWE0IDQgMCAxIDAgMCA4aDZhNCA0IDAgMCAwIDEtNy44N1pcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmtNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua011bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xIDhhNCA0IDAgMCAxIDQtNGg2YTQgNCAwIDAgMSAwIDhIOS41YS41LjUgMCAwIDEgMC0xSDExYTMgMyAwIDEgMCAwLTZINWEzIDMgMCAwIDAtLjg3IDUuODcgNSA1IDAgMCAwLS4xMyAxQTQgNCAwIDAgMSAxIDhabTE3IDRhMyAzIDAgMCAwLTIuMTMtMi44N2MuMDgtLjMyLjEyLS42Ni4xMy0xQTQgNCAwIDAgMSAxNSAxNkg5YTQgNCAwIDAgMSAwLThoMS41YS41LjUgMCAwIDEgMCAxSDlhMyAzIDAgMSAwIDAgNmg2YTMgMyAwIDAgMCAzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggOGE0IDQgMCAwIDAtNC00aC0yLjFhLjc1Ljc1IDAgMCAwIC4xIDEuNWgyLjE2YTIuNSAyLjUgMCAwIDEgMS44OSAzLjkzYy40NC4yNy44LjY0IDEuMDYgMS4wOS41Ni0uNjkuODktMS41Ny44OS0yLjUyWk04Ljc1IDQuNzVBLjc1Ljc1IDAgMCAwIDggNEg1LjhhNCA0IDAgMCAwIC4yIDhoMi4xYS43NS43NSAwIDAgMC0uMS0xLjVINS44NGEyLjUgMi41IDAgMCAxIC4xNi01aDIuMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptNSAyLjVoLTcuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDcuNmEuNzUuNzUgMCAwIDAtLjEtMS41Wk0xNi41IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMSAxNy43NSAxMSAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMaW5rUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaW5rUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgNC41QS41LjUgMCAwIDAgOCA0SDUuNzhBNCA0IDAgMCAwIDYgMTJoMi4wOUEuNS41IDAgMCAwIDggMTFINS44QTMgMyAwIDAgMSA2IDVoMi4wOWEuNS41IDAgMCAwIC40MS0uNVpNMTggOGE0IDQgMCAwIDAtNC00aC0yLjA5QS41LjUgMCAwIDAgMTIgNWgyLjJhMyAzIDAgMCAxIDIuMjYgNC43MmMuMjYuMjMuNDguNS42NS44LjU2LS42OS44OS0xLjU3Ljg5LTIuNTJabS00LS41SDUuOTFhLjUuNSAwIDAgMCAuMDkgMWg4LjA5YS41LjUgMCAwIDAtLjA5LTFabTIuNSA0LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzExIDE3Ljc1IDExIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmtTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua1NxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDMuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2NS41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDZWMTNINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMC4yNXYtNS41QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDJoNS41QTIuNzUgMi43NSAwIDAgMSAxMyA0Ljc1djUuNUEyLjc1IDIuNzUgMCAwIDEgMTAuMjUgMTNIOS41di0xLjVoLjc1Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNS41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtNS41Wk03IDkuNzVBMi43NSAyLjc1IDAgMCAxIDkuNzUgN2gxdjEuNWgtMWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2NS41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDUuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTUuNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTEuNVY3aDEuNUEyLjc1IDIuNzUgMCAwIDEgMTggOS43NXY1LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE4aC01LjVBMi43NSAyLjc1IDAgMCAxIDcgMTUuMjV2LTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpbmtTcXVhcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2NmMwIC44My42NyAxLjUgMS41IDEuNUg2djFINC41QTIuNSAyLjUgMCAwIDEgMiAxMC41di02QTIuNSAyLjUgMCAwIDEgNC41IDJoNkEyLjUgMi41IDAgMCAxIDEzIDQuNXY2YTIuNSAyLjUgMCAwIDEtMi41IDIuNUg5di0xaDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02Wm01IDRIMTF2MUg5LjVDOC42NyA4IDggOC42NyA4IDkuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di02YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxNFY3aDEuNUEyLjUgMi41IDAgMCAxIDE4IDkuNXY2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNkEyLjUgMi41IDAgMCAxIDcgMTUuNXYtNkEyLjUgMi41IDAgMCAxIDkuNSA3WlwiXSk7XG5leHBvcnQgY29uc3QgTGlua1Rvb2xib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlua1Rvb2xib3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC43NSA0Ljc1QS43NS43NSAwIDAgMCA4IDRINS44YTQgNCAwIDAgMCAuMiA4aDIuMWEuNzUuNzUgMCAwIDAtLjEtMS41SDUuODRhMi41IDIuNSAwIDAgMSAuMTYtNWgyLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVaTTE4IDhhNCA0IDAgMCAwLTQtNGgtMi4xYS43NS43NSAwIDAgMCAuMSAxLjVoMi4xNmEyLjUgMi41IDAgMCAxIDIuMDggMy42MWMuNS4xNi45My40NiAxLjI0Ljg2LjMzLS41OC41Mi0xLjI1LjUyLTEuOTdaTTYuMjUgNy4yNWg3LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtNy42YS43NS43NSAwIDAgMS0uMS0xLjVoLjFaTTEyIDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTGlua1Rvb2xib3hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpbmtUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDRhLjUuNSAwIDAgMSAuMDkgMUg2YTMgMyAwIDAgMC0uMiA2SDhhLjUuNSAwIDAgMSAuMDkgMUg2YTQgNCAwIDAgMS0uMjItOEg4Wm02IDBhNCA0IDAgMCAxIDMuNDggNS45N2MtLjIxLS4yNy0uNDgtLjUtLjc4LS42NkEzIDMgMCAwIDAgMTQuMiA1TDE0IDVoLTJhLjUuNSAwIDAgMS0uMDktMUgxNFpNNiA3LjVoOGEuNS41IDAgMCAxIC4wOSAxSDZhLjUuNSAwIDAgMS0uMDktMUg2Wm02IDQuNXYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IExpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDQuNzVabTAgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWg5LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC05LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIuNzUgOWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpc3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabTAgMTBjMC0uMjguMjItLjUuNS0uNWgxMGEuNS41IDAgMCAxIDAgMWgtMTBhLjUuNSAwIDAgMS0uNS0uNVpNMi41IDlhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgTGlzdEJhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaXN0QmFyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMTdoNy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVIOHY0Wm0wLTVoNy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVIOHY0Wk03IDh2NEg0LjVBMS41IDEuNSAwIDAgMSAzIDEwLjV2LTFDMyA4LjY3IDMuNjcgOCA0LjUgOEg3Wm0xLTFoNy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVIOHY0Wk03IDN2NEg0LjVBMS41IDEuNSAwIDAgMSAzIDUuNXYtMUMzIDMuNjcgMy42NyAzIDQuNSAzSDdabTAgMTB2NEg0LjVBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTFjMC0uODMuNjctMS41IDEuNS0xLjVIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IExpc3RCYXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpc3RCYXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgM2EyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIC42OCAxLjVBMiAyIDAgMCAwIDMgOXYyYTIgMiAwIDAgMCAuNjggMS41QTIgMiAwIDAgMCAzIDE0djFjMCAxLjEuOSAyIDIgMmgxMGEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0uNjgtMS41QTIgMiAwIDAgMCAxNyAxMVY5YTIgMiAwIDAgMC0uNjgtMS41QTIgMiAwIDAgMCAxNyA2VjVhMiAyIDAgMCAwLTItMkg1Wk00IDE0YTEgMSAwIDAgMSAxLTFoMnYzSDVhMSAxIDAgMCAxLTEtMXYtMVptNCAydi0zaDdhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIOFptMC00VjhoN2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg4Wk03IDh2NEg1YTEgMSAwIDAgMS0xLTFWOWExIDEgMCAwIDEgMS0xaDJabTAtMUg1YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDJ2M1ptMSAwVjRoN2ExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUg4WlwiXSk7XG5leHBvcnQgY29uc3QgTGlzdEJhclRyZWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlzdEJhclRyZWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCA3aDcuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41SDh2NFpNNyAzSDQuNUMzLjY3IDMgMyAzLjY3IDMgNC41djFDMyA2LjMzIDMuNjcgNyA0LjUgN0g3VjNabTMgOWg1LjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMHY0Wk05IDhINi41QzUuNjcgOCA1IDguNjcgNSA5LjV2MWMwIC44My42NyAxLjUgMS41IDEuNUg5VjhabTYuNSA5SDEwdi00aDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNVptLTktNEg5djRINi41QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xYzAtLjgzLjY3LTEuNSAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTGlzdEJhclRyZWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpc3RCYXJUcmVlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDNhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoLjI3QTIgMiAwIDAgMCA1IDl2MmEyIDIgMCAwIDAgLjY4IDEuNUEyIDIgMCAwIDAgNSAxNHYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0uNjgtMS41QTIgMiAwIDAgMCAxNyAxMVY5YTIgMiAwIDAgMC0uNjgtMS41QTIgMiAwIDAgMCAxNyA2VjVhMiAyIDAgMCAwLTItMkg1Wm0xMCA5aC01VjhoNWExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMVpNOSA4djRIN2ExIDEgMCAwIDEtMS0xVjlhMSAxIDAgMCAxIDEtMWgyWm0xIDVoNWExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMWgtNXYtM1ptLTEgMHYzSDdhMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDEgMS0xaDJaTTggN1Y0aDdhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIOFpNNyA3SDVhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoMnYzWlwiXSk7XG5leHBvcnQgY29uc3QgTGlzdEJhclRyZWVPZmZzZXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlzdEJhclRyZWVPZmZzZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCA3aDcuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41SDh2NFpNNyAzSDQuNUMzLjY3IDMgMyAzLjY3IDMgNC41djFDMyA2LjMzIDMuNjcgNyA0LjUgN0g3VjNabTMgOWg1LjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMHY0Wk05IDhINi41QzUuNjcgOCA1IDguNjcgNSA5LjV2MWMwIC44My42NyAxLjUgMS41IDEuNUg5VjhabTYuNSA5SDEydi00aDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNVptLTctNEgxMXY0SDguNUExLjUgMS41IDAgMCAxIDcgMTUuNXYtMWMwLS44My42Ny0xLjUgMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpc3RCYXJUcmVlT2Zmc2V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaXN0QmFyVHJlZU9mZnNldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzYTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaC4yN0EyIDIgMCAwIDAgNSA5djJjMCAxLjEuOSAyIDIgMmguMjdBMiAyIDAgMCAwIDcgMTR2MWMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtLjY4LTEuNUEyIDIgMCAwIDAgMTcgMTFWOWEyIDIgMCAwIDAtLjY4LTEuNUEyIDIgMCAwIDAgMTcgNlY1YTIgMiAwIDAgMC0yLTJINVptMTAgOWgtNVY4aDVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFaTTkgOHY0SDdhMSAxIDAgMCAxLTEtMVY5YTEgMSAwIDAgMSAxLTFoMlptLTEgNmExIDEgMCAwIDEgMS0xaDJ2M0g5YTEgMSAwIDAgMS0xLTF2LTFabTQgMnYtM2gzYTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxaC0zWk04IDdWNGg3YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDhaTTcgN0g1YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDJ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IExpc3RSdGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTGlzdFJ0bEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41YS43NS43NSAwIDAgMSAwIDEuNUg2Ljc1QS43NS43NSAwIDAgMSA2IDQuNzVabTEgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWg5LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC05LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIuNzUgOWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExpc3RSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpc3RSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabTEgMTBjMC0uMjguMjItLjUuNS0uNWgxMGEuNS41IDAgMCAxIDAgMWgtMTBhLjUuNSAwIDAgMS0uNS0uNVpNMi41IDlhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgTGl2ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaXZlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNDUgNC4xN2EuNzMuNzMgMCAwIDAtMS4wMi0uMDEgOC4yMyA4LjIzIDAgMCAwIC4xNyAxMS44NmMuMy4yNy43NC4yNCAxLjAxLS4wM2EuNzguNzggMCAwIDAtLjAyLTEuMTEgNi43MyA2LjczIDAgMCAxLS4xNS05LjYyYy4zLS4zLjMyLS43OC4wMS0xLjFabTEuNzYgMS43NmEuNzEuNzEgMCAwIDAtMS0uMDIgNS43MyA1LjczIDAgMCAwIC4xOCA4LjM1Yy4zLjI3LjczLjIzLjk5LS4wMy4zMi0uMzMuMjYtLjg1LS4wNC0xLjE0YTQuMjQgNC4yNCAwIDAgMS0uMTQtNi4wNWMuMjktLjMuMzMtLjguMDEtMS4xMVptNS41OCAwYS43MS43MSAwIDAgMSAxLS4wMiA1LjczIDUuNzMgMCAwIDEtLjE4IDguMzUuNzEuNzEgMCAwIDEtLjk5LS4wM2MtLjMyLS4zMy0uMjYtLjg1LjA0LTEuMTRhNC4yNCA0LjI0IDAgMCAwIC4xNC02LjA1Yy0uMjktLjMtLjMzLS44LS4wMS0xLjExWm0xLjc2LTEuNzZhLjczLjczIDAgMCAxIDEuMDItLjAxIDguMjMgOC4yMyAwIDAgMS0uMTcgMTEuODYuNzMuNzMgMCAwIDEtMS4wMS0uMDMuNzguNzggMCAwIDEgLjAyLTEuMTEgNi43MyA2LjczIDAgMCAwIC4xNS05LjYyLjc4Ljc4IDAgMCAxLS4wMS0xLjFaTTEwIDguNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IExpdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xpdmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuMzUgNC4zM2EuNDguNDggMCAwIDEgLjY4LjAxYy4yLjIuMTkuNTQtLjAyLjc1YTYuOTggNi45OCAwIDAgMCAuMTUgOS45N2MuMjIuMi4yMy41NS4wMy43NWEuNDguNDggMCAwIDEtLjY3LjAyIDcuOTggNy45OCAwIDAgMS0uMTctMTEuNVpNMTUgNS4xYS41My41MyAwIDAgMS0uMDItLjc1Yy4xOS0uMTguNS0uMi42OCAwYTcuOTggNy45OCAwIDAgMS0uMTcgMTEuNS40OC40OCAwIDAgMS0uNjctLjAzLjUzLjUzIDAgMCAxIC4wMy0uNzUgNi45OCA2Ljk4IDAgMCAwIC4xNS05Ljk3Wm0tOC44NiAxYS40Ni40NiAwIDAgMSAuNjYuMDJjLjIuMi4xOS41NS0uMDIuNzZhNC40OSA0LjQ5IDAgMCAwIC4xNCA2LjRjLjIyLjIxLjI1LjU3LjA0Ljc4YS40Ni40NiAwIDAgMS0uNjQuMDMgNS40OSA1LjQ5IDAgMCAxLS4xOC03Ljk5Wm03LjEuNzhjLS4yLS4yMS0uMjMtLjU2LS4wMi0uNzYuMTgtLjE5LjQ4LS4yLjY2LS4wMmE1LjQ4IDUuNDggMCAwIDEtLjE4IDcuOTkuNDYuNDYgMCAwIDEtLjY0LS4wM2MtLjIxLS4yMS0uMTgtLjU3LjA0LS43OGE0LjQ5IDQuNDkgMCAwIDAgLjE0LTYuNFpNMTAgOC43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgTGl2ZU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaXZlT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS44IDEuODFhOC4yMiA4LjIyIDAgMCAwIC42NSAxMS4zNmMuMy4yNy43NC4yNCAxLjAxLS4wM2EuNzguNzggMCAwIDAtLjAyLTEuMTEgNi43MyA2LjczIDAgMCAxLS41Ny05LjE1bC43MS43MWE1LjczIDUuNzMgMCAwIDAgLjY2IDcuODJjLjMuMjcuNzMuMjMuOTktLjAzLjMyLS4zMy4yNi0uODUtLjA0LTEuMTRhNC4yNCA0LjI0IDAgMCAxLS41NC01LjU4bDEuODUgMS44NGExLjUgMS41IDAgMCAwIDIgMmw2LjUgNi41YS41LjUgMCAwIDAgLjctLjdsLTEuOC0xLjgxLTEuMDctMS4wNy0uNzEtLjcxLTEuMDctMS4wNy0xLjg1LTEuODQtMi0yTDcuNCA2LjY5bC0uOTQtLjk0LS44Mi0uODJMNC43IDQgMi44NSAyLjE1Wm0xMy44IDEyLjM4YTguMjEgOC4yMSAwIDAgMC0xLjA4LTEwLjM3LjczLjczIDAgMCAwLTEuMDIgMGMtLjMxLjMyLS4yOC44IDAgMS4xYTYuNzMgNi43MyAwIDAgMSAxLjAxIDguMThsMS4wOSAxLjA5Wm0tMS44Mi0xLjgzYTUuNzMgNS43MyAwIDAgMC0xLjA0LTYuNzkuNzEuNzEgMCAwIDAtMSAuMDJjLS4zMi4zMi0uMjguODIuMDEgMS4xMWE0LjI0IDQuMjQgMCAwIDEgLjkgNC41NGwxLjEzIDEuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBMaXZlT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMaXZlT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDQgNC43MWE3Ljk3IDcuOTcgMCAwIDAgLjUyIDExLjEyYy4yLjE4LjQ4LjE3LjY3LS4wMi4yLS4yLjE5LS41NS0uMDMtLjc1YTYuOTggNi45OCAwIDAgMS0uNDUtOS42NGwxLjA2IDEuMDZhNS40OCA1LjQ4IDAgMCAwIC41NCA3LjZjLjE4LjE3LjQ2LjE1LjY0LS4wMy4yMS0uMjEuMTgtLjU3LS4wNC0uNzhhNC40OSA0LjQ5IDAgMCAxLS40My02LjA4bDIuMzYgMi4zNWExLjI1IDEuMjUgMCAwIDAgMS42MiAxLjYybDYuNjkgNi43YS41LjUgMCAwIDAgLjctLjcxTDE2IDE1LjI5bC0uNy0uNy0xLjA3LTEuMDctLjcxLS43MS0yLjM2LTIuMzUtMS42Mi0xLjYyLTYuNjktNi43Wk0xNi42MiAxNC41YTcuOTYgNy45NiAwIDAgMC0uOTctMTAuMTcuNDguNDggMCAwIDAtLjY4LjAxYy0uMi4yLS4xOS41NC4wMi43NWE2Ljk4IDYuOTggMCAwIDEgLjkgOC42OGwuNzMuNzNabS0xLjgyLTEuODJhNS40NyA1LjQ3IDAgMCAwLS45My02LjU5LjQ2LjQ2IDAgMCAwLS42Ni4wMmMtLjIuMi0uMTkuNTUuMDIuNzZhNC40OSA0LjQ5IDAgMCAxIC44MyA1LjA3bC43NC43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2FsTGFuZ3VhZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYWxMYW5ndWFnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05Ljc0IDEuOTlhLjc1Ljc1IDAgMSAwIDAgMS41aDIuNzZ2MS4yNmMwIC41NS0uMi45OC0uNDggMS4yNy0uMjkuMjktLjcxLjQ4LTEuMjcuNDhhLjc1Ljc1IDAgMCAwIDAgMS41Yy45MiAwIDEuNzQtLjMyIDIuMzMtLjkyLjYtLjYuOTItMS40Mi45Mi0yLjMzdi0yYS43NS43NSAwIDAgMC0uNzUtLjc1bC0zLjUtLjAxWk04LjIgNS40NmEuNzUuNzUgMCAwIDAtMS4zOCAwbC0zLjMgNy45OC0uMDEuMDMtMS40NCAzLjVhLjc1Ljc1IDAgMCAwIDEuMzguNTdsMS4yNi0zLjA1aDUuNmwxLjI2IDMuMDRhLjc1Ljc1IDAgMCAwIDEuMzgtLjU3TDguMiA1LjQ2Wk05LjcgMTNINS4zMUw3LjUgNy43MSA5LjY4IDEzWk0xNS43NCAyYy40MiAwIC43NS4zNC43NS43NVY2aC43NmEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NnY1Ljc1YS43NS43NSAwIDAgMS0xLjUgMFYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhbExhbmd1YWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhbExhbmd1YWdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgMmEuNS41IDAgMCAwIDAgMUgxM3YxLjg2QzEzIDYuMDMgMTEuODMgNyAxMC41IDdhLjUuNSAwIDAgMCAwIDFDMTIuMjEgOCAxNCA2Ljc0IDE0IDQuODZWMi41YS41LjUgMCAwIDAtLjUtLjVoLTRaTTcuOTYgNS4zYS41LjUgMCAwIDAtLjkyIDBsLTUgMTJhLjUuNSAwIDEgMCAuOTIuNEw0LjUgMTRoNmwxLjU0IDMuN2EuNS41IDAgMSAwIC45Mi0uMzlsLTEuNjYtMy45OXYtLjAybC0zLjM0LThabTIuMTIgNy43SDQuOTJMNy41IDYuOGwyLjU4IDYuMlpNMTUuNSAyYy4yOCAwIC41LjIyLjUuNVY2aDEuNWEuNS41IDAgMCAxIDAgMUgxNnY2LjVhLjUuNSAwIDEgMS0xIDB2LTExYzAtLjI4LjIzLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC45NSAxMy45NmE3IDcgMCAxIDAtOS45IDBsMS41MiAxLjUgMi4wNCAxLjk4LjE0LjEyYTIgMiAwIDAgMCAyLjY0LS4xMmwyLjQzLTIuMzcgMS4xMy0xLjEyWk0xMCAxMmEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzIDlhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0tMSAwYTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFptMi45NSA0Ljk2YTcgNyAwIDEgMC05LjkgMGwxLjUyIDEuNSAyLjA0IDEuOTguMTQuMTJhMiAyIDAgMCAwIDIuNjQtLjEybDIuNDMtMi4zNyAxLjEzLTEuMTJabS05LjItOS4yYTYgNiAwIDAgMSA4LjY3IDguM2wtLjE4LjE5LTEuMzIgMS4zLTIuMjMgMi4xNy0uMDkuMDhhMSAxIDAgMCAxLTEuMiAwbC0uMS0uMDgtMi45Ny0yLjktLjU4LS41Ny0uMTctLjE4YTYgNiAwIDAgMSAuMTctOC4zMVpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2F0aW9uQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0Ljk1IDQuMDVhNyA3IDAgMCAxIDAgOS45bC0xLjEzIDEuMTItMi40MyAyLjM3YTIgMiAwIDAgMS0yLjY0LjEybC0uMTQtLjEyLTIuMDQtMS45OS0xLjUyLTEuNWE3IDcgMCAwIDEgOS45LTkuOVpNMTAgNWEuNS41IDAgMCAwLS41LjVWOEg3YS41LjUgMCAwIDAgMCAxaDIuNXYyLjVhLjUuNSAwIDAgMCAxIDBWOUgxM2EuNS41IDAgMCAwIDAtMWgtMi41VjUuNUEuNS41IDAgMCAwIDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25BZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA4LjVjMC0uMjguMjItLjUuNS0uNWgyLjVWNS41YS41LjUgMCAwIDEgMSAwVjhIMTNhLjUuNSAwIDAgMSAwIDFoLTIuNXYyLjVhLjUuNSAwIDAgMS0xIDBWOUg3YS41LjUgMCAwIDEtLjUtLjVabTguNDUgNS40NmE3IDcgMCAxIDAtOS45IDBsMS41MiAxLjUgMi4wNCAxLjk4LjE0LjEyYTIgMiAwIDAgMCAyLjY0LS4xMmwyLjQzLTIuMzcgMS4xMy0xLjEyWm0tOS4yLTkuMmE2IDYgMCAwIDEgOC42NyA4LjNsLS4xOC4xOS0xLjMyIDEuMy0yLjIzIDIuMTctLjA5LjA4YTEgMSAwIDAgMS0xLjIgMGwtLjEtLjA4LTIuOTctMi45LS41OC0uNTctLjE3LS4xOGE2IDYgMCAwIDEgLjE3LTguMzFaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25BZGRMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0Ljk1IDEzLjk2YTcgNyAwIDEgMC05LjkgMGwxLjUyIDEuNSAyLjA0IDEuOTguMTQuMTJhMiAyIDAgMCAwIDIuNjQtLjEybDIuNDMtMi4zNyAxLjEzLTEuMTJabS01LjEtNy42TDguMjEgOEgxM2EuNS41IDAgMCAxIDAgMUg4LjJsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN2wtMi41LTIuNWEuNS41IDAgMCAxIDAtLjdsMi41LTIuNWEuNS41IDAgMSAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQWRkTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuOTUgNC4wNWE3IDcgMCAwIDEgMCA5LjlsLTEuMTMgMS4xMi0yLjQzIDIuMzdhMiAyIDAgMCAxLTIuNjQuMTJsLS4xNC0uMTItMi4wNC0xLjk5LTEuNTItMS41YTcgNyAwIDAgMSA5LjktOS45Wm0tLjcuN2E2IDYgMCAwIDAtOC42NyA4LjMybC4xNy4xOC41OC41NyAyLjk4IDIuOS4wOS4wOGExIDEgMCAwIDAgMS4yIDBsLjEtLjA4IDIuMjItMi4xNyAxLjMyLTEuMy4xOC0uMThhNiA2IDAgMCAwLS4xOC04LjMxWm0tNC40IDEuNmEuNS41IDAgMCAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMOC4yMSA5SDEzYS41LjUgMCAwIDAgMC0xSDguMmwxLjY1LTEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQWRkUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuOTUgMTMuOTZhNyA3IDAgMSAwLTkuOSAwbDEuNTIgMS41IDIuMDQgMS45OC4xNC4xMmEyIDIgMCAwIDAgMi42NC0uMTJsMi40My0yLjM3IDEuMTMtMS4xMlptLTQuOC03LjZhLjUuNSAwIDAgMSAuNy0uNzFsMi41IDIuNWEuNS41IDAgMCAxIDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN0wxMS43OSA5SDdhLjUuNSAwIDAgMSAwLTFoNC44bC0xLjY1LTEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvbkFkZFJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC45NSA0LjA1YTcgNyAwIDAgMSAwIDkuOWwtMS4xMyAxLjEyLTIuNDMgMi4zN2EyIDIgMCAwIDEtMi42NC4xMmwtLjE0LS4xMi0yLjA0LTEuOTktMS41Mi0xLjVhNyA3IDAgMCAxIDkuOS05LjlabS0uNy43YTYgNiAwIDAgMC04LjY3IDguMzJsLjE3LjE4LjU4LjU3IDIuOTggMi45LjA5LjA4YTEgMSAwIDAgMCAxLjIgMGwuMS0uMDggMi4yMi0yLjE3IDEuMzItMS4zLjE4LS4xOGE2IDYgMCAwIDAtLjE4LTguMzFabS00LjEgMS42YS41LjUgMCAwIDEgLjctLjdsMi41IDIuNWEuNS41IDAgMCAxIDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN0wxMS43OSA5SDdhLjUuNSAwIDAgMSAwLTFoNC44bC0xLjY1LTEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZFVwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQWRkVXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuOTUgMTMuOTZhNyA3IDAgMSAwLTkuOSAwbDEuNTIgMS41IDIuMDQgMS45OC4xNC4xMmEyIDIgMCAwIDAgMi42NC0uMTJsMi40My0yLjM3IDEuMTMtMS4xMlptLTIuOC01LjZMMTAuNSA2Ljd2NC43OWEuNS41IDAgMCAxLTEgMFY2LjdMNy44NSA4LjM2YS41LjUgMCAxIDEtLjctLjdsMi41LTIuNWEuNS41IDAgMCAxIC43IDBsMi41IDIuNWEuNS41IDAgMCAxLS43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFkZFVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvbkFkZFVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC45NSA0LjA1YTcgNyAwIDAgMSAwIDkuOWwtMS4xMyAxLjEyLTIuNDMgMi4zN2EyIDIgMCAwIDEtMi42NC4xMmwtLjE0LS4xMi0yLjA0LTEuOTktMS41Mi0xLjVhNyA3IDAgMCAxIDkuOS05LjlabS0uNy43YTYgNiAwIDAgMC04LjY3IDguMzJsLjE3LjE4LjU4LjU3IDIuOTggMi45LjA5LjA4YTEgMSAwIDAgMCAxLjIgMGwuMS0uMDggMi4yMi0yLjE3IDEuMzItMS4zLjE4LS4xOGE2IDYgMCAwIDAtLjE4LTguMzFabS0yLjEgMy42YS41LjUgMCAwIDAgLjctLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNyAwbC0yLjUgMi41YS41LjUgMCAxIDAgLjcuN0w5LjUgNi43MXY0Ljc5YS41LjUgMCAwIDAgMSAwVjYuN2wxLjY1IDEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFycm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQXJyb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNjQgMi4wN2ExIDEgMCAwIDEgMS4yOSAxLjNsLTUuMzggMTMuOTlhMSAxIDAgMCAxLTEuOS0uMWwtMS41OC01Ljk4YS41LjUgMCAwIDAtLjM1LS4zNUwyLjc0IDkuMzVhMSAxIDAgMCAxLS4xLTEuOWwxNC01LjM4WlwiXSk7XG5leHBvcnQgY29uc3QgTG9jYXRpb25BcnJvd1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25BcnJvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuOTMgMy4zNmExIDEgMCAwIDAtMS4zLTEuM0wyLjY1IDcuNDdhMSAxIDAgMCAwIC4xIDEuOWw1Ljk4IDEuNTdhLjUuNSAwIDAgMSAuMzUuMzVsMS41OCA1Ljk3YTEgMSAwIDAgMCAxLjkuMWw1LjM4LTEzLjk5Wk0xNyAzIDExLjYgMTdsLTEuNTctNS45N2ExLjUgMS41IDAgMCAwLTEuMDctMS4wN0wzIDguMzkgMTcgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2F0aW9uQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQXJyb3dMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0Ljk1IDEzLjk2YTcgNyAwIDEgMC05LjkgMGwxLjUyIDEuNSAyLjA0IDEuOTguMTQuMTJhMiAyIDAgMCAwIDIuNjQtLjEybDIuNDMtMi4zNyAxLjEzLTEuMTJabS01LjEtNy42TDguMjEgOEgxM2EuNS41IDAgMCAxIDAgMUg4LjJsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN2wtMi41LTIuNWEuNS41IDAgMCAxIDAtLjdsMi41LTIuNWEuNS41IDAgMSAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25BcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0Ljk1IDQuMDVhNyA3IDAgMCAxIDAgOS45bC0xLjEzIDEuMTItMi40MyAyLjM3YTIgMiAwIDAgMS0yLjY0LjEybC0uMTQtLjEyLTIuMDQtMS45OS0xLjUyLTEuNWE3IDcgMCAwIDEgOS45LTkuOVptLS43LjdhNiA2IDAgMCAwLTguNjcgOC4zMmwuMTcuMTguNTguNTcgMi45OCAyLjkuMDkuMDhhMSAxIDAgMCAwIDEuMiAwbC4xLS4wOCAyLjIyLTIuMTcgMS4zMi0xLjMuMTgtLjE4YTYgNiAwIDAgMC0uMTgtOC4zMVptLTQuNCAxLjZhLjUuNSAwIDAgMC0uNy0uN2wtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDguMjEgOUgxM2EuNS41IDAgMCAwIDAtMUg4LjJsMS42NS0xLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgTG9jYXRpb25BcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC45NSAxMy45NmE3IDcgMCAxIDAtOS45IDBsMS41MiAxLjUgMi4wNCAxLjk4LjE0LjEyYTIgMiAwIDAgMCAyLjY0LS4xMmwyLjQzLTIuMzcgMS4xMy0xLjEyWm0tNC44LTcuNmEuNS41IDAgMCAxIC43LS43MWwyLjUgMi41YS41LjUgMCAwIDEgMCAuN2wtMi41IDIuNWEuNS41IDAgMCAxLS43LS43TDExLjc5IDlIN2EuNS41IDAgMCAxIDAtMWg0LjhsLTEuNjUtMS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2F0aW9uQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25BcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC45NSA0LjA1YTcgNyAwIDAgMSAwIDkuOWwtMS4xMyAxLjEyLTIuNDMgMi4zN2EyIDIgMCAwIDEtMi42NC4xMmwtLjE0LS4xMi0yLjA0LTEuOTktMS41Mi0xLjVhNyA3IDAgMCAxIDkuOS05LjlabS0uNy43YTYgNiAwIDAgMC04LjY3IDguMzJsLjE3LjE4LjU4LjU3IDIuOTggMi45LjA5LjA4YTEgMSAwIDAgMCAxLjIgMGwuMS0uMDggMi4yMi0yLjE3IDEuMzItMS4zLjE4LS4xOGE2IDYgMCAwIDAtLjE4LTguMzFabS00LjEgMS42YS41LjUgMCAwIDEgLjctLjdsMi41IDIuNWEuNS41IDAgMCAxIDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN0wxMS43OSA5SDdhLjUuNSAwIDAgMSAwLTFoNC44bC0xLjY1LTEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkFycm93VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25BcnJvd1VwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0Ljk1IDEzLjk2YTcgNyAwIDEgMC05LjkgMGwxLjUyIDEuNSAyLjA0IDEuOTguMTQuMTJhMiAyIDAgMCAwIDIuNjQtLjEybDIuNDMtMi4zNyAxLjEzLTEuMTJabS0yLjgtNS42TDEwLjUgNi43djQuNzlhLjUuNSAwIDAgMS0xIDBWNi43TDcuODUgOC4zNmEuNS41IDAgMSAxLS43LS43bDIuNS0yLjVhLjUuNSAwIDAgMSAuNyAwbDIuNSAyLjVhLjUuNSAwIDAgMS0uNy43WlwiXSk7XG5leHBvcnQgY29uc3QgTG9jYXRpb25BcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvbkFycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0Ljk1IDQuMDVhNyA3IDAgMCAxIDAgOS45bC0xLjEzIDEuMTItMi40MyAyLjM3YTIgMiAwIDAgMS0yLjY0LjEybC0uMTQtLjEyLTIuMDQtMS45OS0xLjUyLTEuNWE3IDcgMCAwIDEgOS45LTkuOVptLS43LjdhNiA2IDAgMCAwLTguNjcgOC4zMmwuMTcuMTguNTguNTcgMi45OCAyLjkuMDkuMDhhMSAxIDAgMCAwIDEuMiAwbC4xLS4wOCAyLjIyLTIuMTcgMS4zMi0xLjMuMTgtLjE4YTYgNiAwIDAgMC0uMTgtOC4zMVptLTIuMSAzLjZhLjUuNSAwIDAgMCAuNy0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43IDBsLTIuNSAyLjVhLjUuNSAwIDEgMCAuNy43TDkuNSA2LjcxdjQuNzlhLjUuNSAwIDAgMCAxIDBWNi43bDEuNjUgMS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2F0aW9uRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvbkRpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuOTUgNC4wNWE3IDcgMCAwIDEgMCA5LjlsLTEuMTMgMS4xMi0yLjQzIDIuMzdhMiAyIDAgMCAxLTIuNjQuMTJsLS4xNC0uMTItMi4wNC0xLjk5LTEuNTItMS41YTcgNyAwIDAgMSA5LjktOS45Wm0tNy44IDIuMWEuNS41IDAgMCAwIDAgLjdMOS4yOSA5bC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43TDEwIDkuNzFsMi4xNSAyLjE0YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgOWwyLjE0LTIuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMCA4LjI5IDcuODUgNi4xNWEuNS41IDAgMCAwLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuOTUgMTMuOTZhNyA3IDAgMSAwLTkuOSAwbDEuNTIgMS41IDIuMDQgMS45OC4xNC4xMmEyIDIgMCAwIDAgMi42NC0uMTJsMi40My0yLjM3IDEuMTMtMS4xMlptLTkuMi05LjJhNiA2IDAgMCAxIDguNjcgOC4zbC0uMTguMTktMS4zMiAxLjMtMi4yMyAyLjE3LS4wOS4wOGExIDEgMCAwIDEtMS4yIDBsLS4xLS4wOC0yLjk3LTIuOS0uNTgtLjU3LS4xNy0uMThhNiA2IDAgMCAxIC4xNy04LjMxWm0xLjQgMS4zOWMuMi0uMi41LS4yLjcgMEwxMCA4LjI5bDIuMTUtMi4xNGEuNS41IDAgMCAxIC43LjdMMTAuNzEgOWwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEwIDkuNzFsLTIuMTUgMi4xNGEuNS41IDAgMCAxLS43LS43TDkuMjkgOSA3LjE1IDYuODVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgTG9jYXRpb25MaXZlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uTGl2ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUzIDMuMDEgOSAzYTcgNyAwIDAgMSA2Ljk4IDcuNDcuNS41IDAgMSAwIDEgLjA3TDE3IDEwQTggOCAwIDAgMCA4LjQ2IDJhLjUuNSAwIDEgMCAuMDcgMVpNOCA0Ljk4YS41LjUgMCAwIDEgLjUyLS40NyA2LjI1IDYuMjUgMCAwIDEgNS45NyA1Ljk3LjUuNSAwIDEgMS0xIC4wNEE1LjI1IDUuMjUgMCAwIDAgOC40OSA1LjUuNS41IDAgMCAxIDggNC45OFpNNi4wNCAxNi40bDEuMSAxLjFjLjIuMi41Mi4yLjcxIDBMOSAxNi4zN2wxLjctMS42OWE0LjUgNC41IDAgMSAwLTYuMzcgMGwxLjcyIDEuNzJabTEuNDYtMy43OGExLjEzIDEuMTMgMCAxIDEgMC0yLjI1IDEuMTMgMS4xMyAwIDAgMSAwIDIuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbkxpdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uTGl2ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41MyAzLjAxIDkgM2E3IDcgMCAwIDEgNi45OCA3LjQ3LjUuNSAwIDEgMCAxIC4wN0wxNyAxMEE4IDggMCAwIDAgOC40NiAyYS41LjUgMCAxIDAgLjA3IDFaTTggNC45OGEuNS41IDAgMCAxIC41Mi0uNDcgNi4yNSA2LjI1IDAgMCAxIDUuOTcgNS45Ny41LjUgMCAxIDEtMSAuMDRBNS4yNSA1LjI1IDAgMCAwIDguNDkgNS41LjUuNSAwIDAgMSA4IDQuOThabS0uNSA3LjY0YTEuMTMgMS4xMyAwIDEgMCAwLTIuMjUgMS4xMyAxLjEzIDAgMCAwIDAgMi4yNVptLTMuMTggMi4wNiAyLjgzIDIuODNhLjUuNSAwIDAgMCAuNyAwbDIuODMtMi44M2E0LjUgNC41IDAgMSAwLTYuMzYgMFptLjctLjdhMy41IDMuNSAwIDEgMSA0Ljk1IDBMNy41IDE2LjQ0bC0yLjQ3LTIuNDhaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvbk9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvbk9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDIuMTIgMi4xM2E3IDcgMCAwIDAgLjc4IDguOThsMS41MiAxLjUgMi4wNCAxLjk4LjE0LjEyYTIgMiAwIDAgMCAyLjY0LS4xMmwyLjQzLTIuMzcuMjctLjI3IDMuMDYgMy4wNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptOC4yMyA5LjYzQTIuOTggMi45OCAwIDAgMSA3IDljMC0uMzguMDctLjc0LjItMS4wN2wzLjg3IDMuODZaTTEyLjk5IDljMCAuNTQtLjE0IDEuMDUtLjQgMS40OWwyLjkgMi44OGE3IDcgMCAwIDAtOS44NS05Ljg0TDguNTIgNi40QTMgMyAwIDAgMSAxMyA5WlwiXSk7XG5leHBvcnQgY29uc3QgTG9jYXRpb25PZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2F0aW9uT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjE1IDIuMTVjLjItLjIuNS0uMi43IDBsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0zLjA2LTMuMDUtLjI3LjI3LTIuNDMgMi4zN2EyIDIgMCAwIDEtMi42NC4xMmwtLjE0LS4xMi0yLjA0LTEuOTktMS41Mi0xLjVhNyA3IDAgMCAxLS43OC04Ljk3TDIuMTUgMi44NWEuNS41IDAgMCAxIDAtLjdabTguOTMgOS42M0EyLjk4IDIuOTggMCAwIDEgNyA5YzAtLjM4LjA3LS43NC4yLTEuMDdMNC45OSA1LjdhNi4wMSA2LjAxIDAgMCAwIC41OSA3LjM3bC4xNy4xOC41OC41NyAyLjk4IDIuOS4wOS4wOGExIDEgMCAwIDAgMS4yIDBsLjEtLjA4IDIuMjItMi4xNy40Ny0uNDUtMi4zMS0yLjMyWm0uNzctMi4wNS43NS43NUEzIDMgMCAwIDAgOC41MiA2LjRsLjc0Ljc0QTEuOTkgMS45OSAwIDAgMSAxMiA4Ljk5YTIgMiAwIDAgMS0uMTUuNzRabS01LjUtNS41YTYgNiAwIDAgMSA4LjQyIDguNDJsLjcxLjcxYTcgNyAwIDAgMC05Ljg0LTkuODRsLjcxLjcxWlwiXSk7XG5leHBvcnQgY29uc3QgTG9jYXRpb25SaXBwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25SaXBwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE2IDYgMCAwIDAtNiA2YzAgMS40Ny44NCAzIDEuOCA0LjNhMjMuOSAyMy45IDAgMCAwIDIuOTUgMy4yMWMuNzEuNjYgMS43OS42NiAyLjUgMCAuOC0uNzIgMS45Ni0xLjg5IDIuOTQtMy4yQzE1LjE2IDExIDE2IDkuNDcgMTYgOGE2IDYgMCAwIDAtNi02Wm0yIDZhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0yLjQyIDUuNjRjLS4yNC4yOS0uNDguNTYtLjcyLjgyLjI2LjA4LjUuMTUuNzIuMjQuNTUuMjEuOTcuNDUgMS4yMy43LjI3LjI0LjM1LjQ0LjM1LjYgMCAuMTYtLjA4LjM2LS4zNS42LS4yNi4yNS0uNjguNDktMS4yMy43LTEuMS40My0yLjY3LjctNC40Mi43cy0zLjMxLS4yNy00LjQyLS43YTMuOTkgMy45OSAwIDAgMS0xLjIzLS43Yy0uMjctLjI0LS4zNS0uNDQtLjM1LS42IDAtLjE2LjA4LS4zNi4zNS0uNi4yNi0uMjUuNjgtLjQ5IDEuMjMtLjcuMjItLjA5LjQ2LS4xNi43Mi0uMjQtLjI0LS4yNi0uNDgtLjUzLS43Mi0uODJsLS4zNi4xM2MtLjYyLjIzLTEuMTUuNTMtMS41NS44OUMzLjI4IDE1IDMgMTUuNDYgMyAxNmMwIC41My4yOC45OS42NyAxLjM0LjQuMzYuOTMuNjYgMS41NS45IDEuMjUuNDcgMi45NC43NiA0Ljc4Ljc2IDEuODQgMCAzLjUzLS4yOSA0Ljc4LS43N2E0Ljk2IDQuOTYgMCAwIDAgMS41NS0uODljLjM5LS4zNS42Ny0uOC42Ny0xLjM0IDAtLjUzLS4yOC0uOTktLjY3LTEuMzRhNC45NiA0Ljk2IDAgMCAwLTEuOTEtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2F0aW9uUmlwcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvblJpcHBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2E1IDUgMCAwIDAtNSA1YzAgMS4xMy42NyAyLjQ0IDEuNjEgMy43MWEyMi45MiAyMi45MiAwIDAgMCAyLjgyIDMuMDdjLjMzLjMuODEuMyAxLjE0IDAgLjc3LS43MSAxLjktMS44MiAyLjgyLTMuMDdDMTQuMzMgMTAuNDQgMTUgOS4xMyAxNSA4YTUgNSAwIDAgMC01LTVaTTQgOGE2IDYgMCAxIDEgMTIgMGMwIDEuNDctLjg0IDMtMS44IDQuM2EyMy45MiAyMy45MiAwIDAgMS0yLjk1IDMuMjFjLS43MS42Ni0xLjc5LjY2LTIuNSAwYTIzLjkgMjMuOSAwIDAgMS0yLjk0LTMuMkM0Ljg0IDExIDQgOS40NyA0IDhabTYtMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWk03LjUgOGEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFptNi45MiA1LjY0Yy0uMjQuMjktLjQ4LjU2LS43Mi44Mi4yNi4wOC41LjE1LjcyLjI0LjU1LjIxLjk3LjQ1IDEuMjMuNy4yNy4yNC4zNS40NC4zNS42IDAgLjE2LS4wOC4zNi0uMzUuNi0uMjYuMjUtLjY4LjQ5LTEuMjMuNy0xLjEuNDMtMi42Ny43LTQuNDIuN3MtMy4zMS0uMjctNC40Mi0uN2EzLjk5IDMuOTkgMCAwIDEtMS4yMy0uN2MtLjI3LS4yNC0uMzUtLjQ0LS4zNS0uNiAwLS4xNi4wOC0uMzYuMzUtLjYuMjYtLjI1LjY4LS40OSAxLjIzLS43LjIyLS4wOS40Ni0uMTYuNzItLjI0LS4yNC0uMjYtLjQ4LS41My0uNzItLjgybC0uMzYuMTNjLS42Mi4yMy0xLjE1LjUzLTEuNTUuODlDMy4yOCAxNSAzIDE1LjQ2IDMgMTZjMCAuNTMuMjguOTkuNjcgMS4zNC40LjM2LjkzLjY2IDEuNTUuOSAxLjI1LjQ3IDIuOTQuNzYgNC43OC43NiAxLjg0IDAgMy41My0uMjkgNC43OC0uNzdhNC45NiA0Ljk2IDAgMCAwIDEuNTUtLjg5Yy4zOS0uMzUuNjctLjguNjctMS4zNCAwLS41My0uMjgtLjk5LS42Ny0xLjM0YTQuOTYgNC45NiAwIDAgMC0xLjkxLTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvblRhcmdldFNxdWFyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NhdGlvblRhcmdldFNxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0xLjUgN2EyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFptLS45Ni41SDZhLjUuNSAwIDAgMSAwLTFoLjU0QTMuNSAzLjUgMCAwIDEgOS41IDYuNTRWNmEuNS41IDAgMCAxIDEgMHYuNTRhMy41IDMuNSAwIDAgMSAyLjk2IDIuOTZIMTRhLjUuNSAwIDAgMSAwIDFoLS41NGEzLjUgMy41IDAgMCAxLTIuOTYgMi45NlYxNGEuNS41IDAgMCAxLTEgMHYtLjU0YTMuNSAzLjUgMCAwIDEtMi45Ni0yLjk2Wm00LjcxLS41YTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBMb2NhdGlvblRhcmdldFNxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9jYXRpb25UYXJnZXRTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTMuNSA0YTIuNSAyLjUgMCAxIDAgNSAwIDIuNSAyLjUgMCAwIDAtNSAwWm0tLjk2LjVINmEuNS41IDAgMCAxIDAtMWguNTRBMy41IDMuNSAwIDAgMSA5LjUgNi41NFY2YS41LjUgMCAwIDEgMSAwdi41NGEzLjUgMy41IDAgMCAxIDIuOTYgMi45NkgxNGEuNS41IDAgMCAxIDAgMWgtLjU0YTMuNSAzLjUgMCAwIDEtMi45NiAyLjk2VjE0YS41LjUgMCAwIDEtMSAwdi0uNTRhMy41IDMuNSAwIDAgMS0yLjk2LTIuOTZabTQuNzEtLjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2tDbG9zZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9ja0Nsb3NlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTMgMyAwIDAgMC0zIDN2MUg2YTMgMyAwIDAgMC0zIDN2NmEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y5YTMgMyAwIDAgMC0zLTNoLTFWNWEzIDMgMCAwIDAtMy0zWk04IDVhMiAyIDAgMSAxIDQgMHYxSDhWNVptMiA4YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2tDbG9zZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2tDbG9zZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDEzYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNNiA2aDFWNWEzIDMgMCAwIDEgNiAwdjFoMWEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWOWEzIDMgMCAwIDEgMy0zWm00LTNhMiAyIDAgMCAwLTIgMnYxaDRWNWEyIDIgMCAwIDAtMi0yWm02IDZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY5WlwiXSk7XG5leHBvcnQgY29uc3QgTG9ja0Nsb3NlZEtleUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NrQ2xvc2VkS2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgNWEzIDMgMCAwIDEgNiAwdjFoMWEzIDMgMCAwIDEgMyAzdi4xM2E0IDQgMCAwIDAtNC45NiA0LjQyTDkuNTkgMTZBMiAyIDAgMCAwIDkgMTcuNDFWMThINmEzIDMgMCAwIDEtMy0zVjlhMyAzIDAgMCAxIDMtM2gxVjVabTMtMmEyIDIgMCAwIDAtMiAydjFoNFY1YTIgMiAwIDAgMC0yLTJabS0xIDlhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm03IDRhMyAzIDAgMSAwLTIuODctMi4xM2wtMi44NCAyLjg0YTEgMSAwIDAgMC0uMjkuN3YxLjA5YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNVYxOGguNWEuNS41IDAgMCAwIC41LS41VjE3aC41YS41LjUgMCAwIDAgLjUtLjV2LS42N2EzIDMgMCAwIDAgMSAuMTdabS43NS00LjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTG9ja0Nsb3NlZEtleVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9ja0Nsb3NlZEtleVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgMTJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWk03IDZINmEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gzdi0uNTlhMiAyIDAgMCAxIC4wNC0uNDFINmEyIDIgMCAwIDEtMi0yVjljMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDIgNCA0IDAgMCAxIDEgLjEzVjlhMyAzIDAgMCAwLTMtM2gtMVY1YTMgMyAwIDEgMC02IDB2MVptMS0xYTIgMiAwIDEgMSA0IDB2MUg4VjVabTggMTFhMyAzIDAgMSAwLTIuODctMi4xM2wtMi44NCAyLjg0YTEgMSAwIDAgMC0uMjkuN3YxLjA5YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNVYxOGguNWEuNS41IDAgMCAwIC41LS41VjE3aC41YS41LjUgMCAwIDAgLjUtLjV2LS42N2EzIDMgMCAwIDAgMSAuMTdabS43NS00LjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTG9ja011bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2tNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDNhMiAyIDAgMCAxIDIgMnYxSDdWNWMwLTEuMS45LTIgMi0yWm0zIDNWNWEzIDMgMCAxIDAtNiAwdjFoLS41QzQuNjcgNiA0IDYuNjcgNCA3LjV2NmMwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVIMTJaTTYuMDkgMTZjLjIuNTguNzYgMSAxLjQxIDFoNWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTRjMC0uNjUtLjQyLTEuMi0xLTEuNDF2NS40MWEyLjUgMi41IDAgMCAxLTIuNSAyLjVINi4xWk0xMCAxMC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2tNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9ja011bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDNhMiAyIDAgMCAxIDIgMnYxSDdWNWMwLTEuMS45LTIgMi0yWk02IDV2MWgtLjVDNC42NyA2IDQgNi42NyA0IDcuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di02YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMlY1YTMgMyAwIDEgMC02IDBaTTUgNy41YzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2NmEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtNlpNNy41IDE3YTEuNSAxLjUgMCAwIDEtMS40MS0xaDYuNDFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjguMDljLjU4LjIgMSAuNzYgMSAxLjQxdjRhMy41IDMuNSAwIDAgMS0zLjUgMy41aC01Wk05IDExLjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgTG9ja09wZW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG9ja09wZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgMmEyIDIgMCAwIDAtMiAydjJoMWEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWOWEzIDMgMCAwIDEgMy0zaDZWNGEzIDMgMCAxIDEgNiAwdi41YS41LjUgMCAwIDEtMSAwVjRhMiAyIDAgMCAwLTItMlptLTUgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgTG9ja09wZW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2tPcGVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTUtMTFhMiAyIDAgMCAwLTIgMnYyaDFhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjlhMyAzIDAgMCAxIDMtM2g2VjRhMyAzIDAgMSAxIDYgMHYuNWEuNS41IDAgMCAxLTEgMFY0YTIgMiAwIDAgMC0yLTJabS0xIDVINmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgTG9ja1NoaWVsZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdMb2NrU2hpZWxkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhMyAzIDAgMCAwLTMgM3YxSDZhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoNS4yNEE1LjMgNS4zIDAgMCAxIDEwIDE0LjUyVjEzYTEgMSAwIDEgMSAuNDctMS44OGMuMjMtLjIyLjUyLS4zNS44Mi0uNGEzLjk4IDMuOTggMCAwIDAgMi4xLTEuMjVjLjYtLjYzIDEuNjItLjYzIDIuMjEgMCAuMzQuMzUuODMuNzggMS40IDEuMDRWOWEzIDMgMCAwIDAtMy0zaC0xVjVhMyAzIDAgMCAwLTMtM1pNOCA1YTIgMiAwIDEgMSA0IDB2MUg4VjVabTYuODggNS4xNmMuNS41MyAxLjQ4IDEuMzggMi42OCAxLjU1YS41LjUgMCAwIDEgLjQ0LjQ4djIuMzNjMCAzLjEyLTIuNzggNC4yNS0zLjM5IDQuNDZhLjM0LjM0IDAgMCAxLS4yMiAwYy0uNi0uMi0zLjM5LTEuMzQtMy4zOS00LjQ2di0yLjMzYzAtLjI0LjItLjQ0LjQ0LS40OGE0Ljk1IDQuOTUgMCAwIDAgMi42OC0xLjU1Yy4yLS4yMS41Ni0uMjEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IExvY2tTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvY2tTaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDEzdi0uOGMwLS40NS4xOS0uODIuNDctMS4wOEExIDEgMCAxIDAgMTAgMTNabS00IDRoNC41OGMuMTkuMzcuNDEuNy42NiAxSDZhMyAzIDAgMCAxLTMtM1Y5YTMgMyAwIDAgMSAzLTNoMVY1YTMgMyAwIDAgMSA2IDB2MWgxYTMgMyAwIDAgMSAzIDN2MS41YTQuMzIgNC4zMiAwIDAgMS0xLS42NVY5YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMlptNC0xNGEyIDIgMCAwIDAtMiAydjFoNFY1YTIgMiAwIDAgMC0yLTJabTQuODggNy4xNmMuNS41MyAxLjQ4IDEuMzggMi42OCAxLjU1YS41LjUgMCAwIDEgLjQ0LjQ4djIuMzNjMCAzLjEyLTIuNzggNC4yNS0zLjM5IDQuNDZhLjM0LjM0IDAgMCAxLS4yMiAwYy0uNi0uMi0zLjM5LTEuMzQtMy4zOS00LjQ2di0yLjMzYzAtLjI0LjItLjQ0LjQ0LS40OGE0Ljk1IDQuOTUgMCAwIDAgMi42OC0xLjU1Yy4yLS4yMS41Ni0uMjEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IExvdHRlcnlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTG90dGVyeUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi40NCAzLjI1Yy0uOTguMzItMS44My45NC0yLjQ0IDEuNzVhNS4wMSA1LjAxIDAgMCAwLTIuNDQtMS43NSAzIDMgMCAwIDEgNC44OCAwWm0tOC44MSA3Ljk3YTYuNSA2LjUgMCAwIDEgNS44NS01LjIgNCA0IDAgMSAwLTUuODUgNS4yWm0xMi43NCAwYTQgNCAwIDEgMC01Ljg1LTUuMiA2LjUgNi41IDAgMCAxIDUuODUgNS4yWm0tLjg3IDEuMjhhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcuNS0yYzAgLjI4LjIyLjUuNS41aDIuMjRsLS4zMi40OGE3LjY1IDcuNjUgMCAwIDAtMS4xNyAyLjk2LjUuNSAwIDEgMCAxIC4xMmMuMS0uOS41Ni0xLjgyIDEuMDItMi41NGExMS4xIDExLjEgMCAwIDEgLjg0LTEuMTdsLjAxLS4wMmEuNS41IDAgMCAwLS4zNy0uODNIOC41YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IExvdHRlcnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0xvdHRlcnlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAzLjY3YTIgMiAwIDAgMSAzIDBjLjMtLjE3LjYtLjMxLjk0LS40MmEzIDMgMCAwIDAtNC44OCAwYy4zMy4xLjY1LjI1Ljk1LjQyWk0zIDhhMyAzIDAgMCAxIDUuNC0xLjhjLjM1LS4wOS43LS4xNSAxLjA4LS4xOGE0IDQgMCAxIDAtNS44NSA1LjJjLjA3LS4zNi4xNy0uNzEuMy0xLjA1QTMgMyAwIDAgMSAzIDhabTExLTRhNCA0IDAgMCAwLTMuNDggMi4wMmMuMzcuMDMuNzMuMDkgMS4wOC4xOGEzIDMgMCAxIDEgNC40NyAzLjk3Yy4xMy4zNC4yMy42OS4zIDEuMDVBNCA0IDAgMCAwIDE0IDRabS04LjUgOC41YTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWk0xMCA3YTUuNSA1LjUgMCAxIDAgMCAxMSA1LjUgNS41IDAgMCAwIDAtMTFabS0xLjUgM2EuNS41IDAgMCAwIDAgMWgyLjI0bC0uMzIuNDhhNy42NSA3LjY1IDAgMCAwLTEuMTcgMi45Ni41LjUgMCAxIDAgMSAuMTJjLjEtLjkuNTYtMS44MiAxLjAyLTIuNTRhMTEuMSAxMS4xIDAgMCAxIC44NC0xLjE3bC4wMS0uMDJhLjUuNSAwIDAgMC0uMzctLjgzSDguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEx1Z2dhZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTHVnZ2FnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMmEuNS41IDAgMCAwIDAgMUg3djFoLS41QTIuNSAyLjUgMCAwIDAgNCA2LjV2OGEyLjUgMi41IDAgMCAwIDIgMi40NXYuNTVhLjUuNSAwIDAgMCAxIDBWMTdoNnYuNWEuNS41IDAgMCAwIDEgMHYtLjU1YTIuNSAyLjUgMCAwIDAgMi0yLjQ1di04QTIuNSAyLjUgMCAwIDAgMTMuNSA0SDEzVjNoLjVhLjUuNSAwIDAgMCAwLTFoLTdaTTEyIDN2MUg4VjNoNFpNNi41IDguNWMwLS4yOC4yMi0uNS41LS41aDZhLjUuNSAwIDAgMSAwIDFIN2EuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTHVnZ2FnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTHVnZ2FnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDJhLjUuNSAwIDAgMCAwIDFIN3YxaC0uNUEyLjUgMi41IDAgMCAwIDQgNi41djhhMi41IDIuNSAwIDAgMCAyIDIuNDV2LjU1YS41LjUgMCAwIDAgMSAwVjE3aDZ2LjVhLjUuNSAwIDAgMCAxIDB2LS41NWEyLjUgMi41IDAgMCAwIDItMi40NXYtOEEyLjUgMi41IDAgMCAwIDEzLjUgNEgxM1YzaC41YS41LjUgMCAwIDAgMC0xaC03Wk0xMiAzdjFIOFYzaDRaTTYuNSA1aDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2OGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDE0LjV2LThDNSA1LjY3IDUuNjcgNSA2LjUgNVptMCAzLjVjMC0uMjguMjItLjUuNS0uNWg2YS41LjUgMCAwIDEgMCAxSDdhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA3LjM3djcuMTNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3LjM3bDcuNzUgNC41NmMuMTUuMS4zNS4xLjUgMEwxOCA3LjM3Wk0xNS41IDRhMi41IDIuNSAwIDAgMSAyLjQ4IDIuMjJMMTAgMTAuOTJsLTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDRBMi41IDIuNSAwIDAgMSAxOCA2LjV2OGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFaTTE3IDcuOTZsLTYuNzUgMy45N2EuNS41IDAgMCAxLS40Mi4wNGwtLjA4LS4wNEwzIDcuOTZ2Ni41NGMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNy45NlpNMTUuNSA1aC0xMUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiA3LTQuMTJ2LS4zYzAtLjgzLS42Ny0xLjUtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNWgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNVYzLjVabS0uNSA3LjVjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3LjM3bDcuNzUgNC41NmMuMTUuMS4zNS4xLjUgMGwyLjIzLTEuMzFjLjYzLjI0IDEuMy4zOCAyLjAyLjM4Wm0tMTAtN2g0LjdhNS41IDUuNSAwIDAgMCAyLjI0IDYuMDdsLTEuNDQuODUtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptMiAxMXYtNC4xYy4zNi0uMTguNy0uNCAxLS42NnY0Ljc2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LThBMi41IDIuNSAwIDAgMSA0LjUgNGg0LjdjLS4wOC4zMi0uMTUuNjYtLjE4IDFINC41QzMuNjcgNSAzIDUuNjcgMyA2LjV2LjNsNyA0LjEyIDEuNDQtLjg1Yy4zMy4yMi42OC40IDEuMDQuNTVsLTIuMjMgMS4zMWEuNS41IDAgMCAxLS40Mi4wNGwtLjA4LS4wNEwzIDcuOTZ2Ni41NGMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQWxlcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEFsZXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgNGEzIDMgMCAwIDEgNiAwdjJsMS4zMiAxLjEyYS41LjUgMCAwIDEtLjMzLjg4SDEwLjVhLjUuNSAwIDAgMS0uMzItLjg4TDExLjUgNlY0Wm0zIDZhMS41IDEuNSAwIDAgMS0xLjQyLTFoMi44M2MtLjIuNTgtLjc2IDEtMS40MSAxWm0tNC00LjQ2LS45Ny44MkExLjUgMS41IDAgMCAwIDEwLjUgOWgxLjUybC4xMi4zMy4xMS4yN0wxMCAxMC45MmwtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgNGg2djEuNTRabS0uMjUgNi40IDIuNjItMS41NWEyLjQ5IDIuNDkgMCAwIDAgMy45OS0xLjA2bC4xMS0uMzNIMTh2NS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQWxlcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBbGVydFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA0YTMgMyAwIDAgMSA2IDB2MmwxLjMyIDEuMTJhLjUuNSAwIDAgMS0uMzMuODhIMTAuNWEuNS41IDAgMCAxLS4zMi0uODhMMTEuNSA2VjRabTMgNmExLjUgMS41IDAgMCAxLTEuNDItMWgyLjgzYy0uMi41OC0uNzYgMS0xLjQxIDFabS0xMC01aDZWNGgtNkEyLjUgMi41IDAgMCAwIDIgNi41djhBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjloLTF2NS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE0LjVWNy45Nmw2Ljc1IDMuOTcuMDguMDRjLjE0LjA1LjMuMDQuNDItLjA0bDIuNjItMS41NGEyLjUgMi41IDAgMCAxLS42Mi0uOEwxMCAxMC45MyAzIDYuOHYtLjNDMyA1LjY3IDMuNjcgNSA0LjUgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBbGxSZWFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBbGxSZWFkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAxN2EyLjUgMi41IDAgMCAxLTItMWg5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNmMuNi40NiAxIDEuMTggMSAydjRhNC41IDQuNSAwIDAgMS00LjUgNC41aC03Wk05LjI0IDIuMDZhLjUuNSAwIDAgMC0uNDggMGwtNS43IDMuMDdhMiAyIDAgMCAwLS43Ni43MWwuNDIuMkw5IDguOTVsNi4yOC0yLjg5LjQxLS4yMmEyIDIgMCAwIDAtLjc0LS43TDkuMjQgMi4wNlpNMTYgNi44bC0uMjYuMTRhLjUuNSAwIDAgMS0uMDMuMDFsLTYuNSAzYS41LjUgMCAwIDEtLjQyIDBsLTYuNS0zaC0uMDFMMiA2LjhWMTIuNUEyLjUgMi41IDAgMCAwIDQuNSAxNWg5YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY2LjhaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQWxsUmVhZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEFsbFJlYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNzYgMi4wNmEuNS41IDAgMCAxIC40OCAwbDUuNyAzLjA3QTIgMiAwIDAgMSAxNiA2Ljl2NS42YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDIgMTIuNVY2LjlhMiAyIDAgMCAxIDEuMDUtMS43N2w1LjcxLTMuMDdabS4yNCAxTDMuNTMgNi4wM2ExIDEgMCAwIDAtLjMyLjI2TDkgOC45NWw1Ljc5LTIuNjdhMSAxIDAgMCAwLS4zMi0uMjZMOSAzLjA3Wm02IDQuMjJMOS4yMSA5Ljk1YS41LjUgMCAwIDEtLjQyIDBMMyA3LjI4djUuMjJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNy4yOFpNNi41IDE3YTIuNSAyLjUgMCAwIDEtMi0xaDlhMy41IDMuNSAwIDAgMCAzLjUtMy41di02Yy42LjQ2IDEgMS4xOCAxIDJ2NGE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQWxsVW5yZWFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBbGxVbnJlYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSA3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0tMy4xNi00SDQuNWEyLjUgMi41IDAgMCAwLTIuNDggMi4yMkw5IDguOTJsMy4yNi0xLjczQTMuNSAzLjUgMCAwIDEgMTEuMzQgM1ptMS45NyA0LjhMOS4yNSA5LjkyYS41LjUgMCAwIDEtLjUgMEwyIDYuMzd2Ni4xM0EyLjUgMi41IDAgMCAwIDQuNSAxNWg5YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3LjY2YTMuNDkgMy40OSAwIDAgMS0yLjcuMTNaTTYuNSAxN2EyLjUgMi41IDAgMCAxLTItMWg5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNWMuNi40NiAxIDEuMTggMSAydjNhNC41IDQuNSAwIDAgMS00LjUgNC41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEFsbFVucmVhZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEFsbFVucmVhZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSA3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0tMy4xNi00SDQuNUEyLjUgMi41IDAgMCAwIDIgNS41djdBMi41IDIuNSAwIDAgMCA0LjUgMTVoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWNy42NmMtLjMxLjE1LS42NS4yNS0xIC4zdjQuNTRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgMyAxMi41VjYuOTZsNS43NSAyLjk3LjA4LjA0Yy4xNC4wNS4zLjA0LjQyLS4wNGw0LjEtMi4xMmEzLjUgMy41IDAgMCAxLTEuMDYtLjZMOSA4LjkyIDMgNS44di0uM0MzIDQuNjcgMy42NyA0IDQuNSA0aDYuNTRjLjA1LS4zNS4xNS0uNjkuMy0xWk02LjUgMTdhMi41IDIuNSAwIDAgMS0yLTFoOWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTVjLjYuNDYgMSAxLjE4IDEgMnYzYTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBcnJvd0Nsb2Nrd2lzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsQXJyb3dDbG9ja3dpc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMWEuNS41IDAgMCAwLTEgMHYuNzZhNC41IDQuNSAwIDEgMCAyIDMuNzQuNS41IDAgMCAwLTEgMCAzLjUgMy41IDAgMSAxLTEuNy0zaC0uOGEuNS41IDAgMCAwIDAgMWgyQS41LjUgMCAwIDAgMTggM1YxWk05IDUuNWMwIDEuOS45NyAzLjU5IDIuNDQgNC41N2wtMS40NC44NS03Ljk4LTQuN0EyLjUgMi41IDAgMCAxIDQuNSA0aDQuN2MtLjEzLjQ4LS4yLjk4LS4yIDEuNVptOSA5VjkuNzRhNS40OCA1LjQ4IDAgMCAxLTUuNTIuODhsLTIuMjMgMS4zMWEuNS41IDAgMCAxLS41IDBMMiA3LjM3djcuMTNBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEFycm93Q2xvY2t3aXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsQXJyb3dDbG9ja3dpc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDFhLjUuNSAwIDAgMC0xIDB2Ljc2YTQuNSA0LjUgMCAxIDAgMiAzLjc0LjUuNSAwIDAgMC0xIDAgMy41IDMuNSAwIDEgMS0xLjctM2gtLjhhLjUuNSAwIDAgMCAwIDFoMkEuNS41IDAgMCAwIDE4IDNWMVptLTEgOS40djQuMWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxNC41VjcuOTZsNi43NSAzLjk3LjA4LjA0Yy4xNC4wNS4zLjA0LjQyLS4wNGwyLjIzLTEuMzFhNS40OSA1LjQ5IDAgMCAxLTEuMDQtLjU1bC0xLjQ0Ljg1TDMgNi44di0uM0MzIDUuNjcgMy42NyA1IDQuNSA1aDQuNTJjLjAzLS4zNC4xLS42OC4xOS0xSDQuNUEyLjUgMi41IDAgMCAwIDIgNi41djhBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjkuNzRjLS4zLjI2LS42NC40OC0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBcnJvd0RvdWJsZUJhY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEFycm93RG91YmxlQmFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnY0Ljc2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBsMi4yMy0xLjMxYy42My4yNCAxLjMuMzggMi4wMi4zOFptLTEwLTdoNC43YTUuNSA1LjUgMCAwIDAgMi4yNCA2LjA3bC0xLjQ0Ljg1LTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRabTEwIDZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0xLjE1LTYuMzVjLjIuMi4yLjUgMCAuN0wxMi4yMSA1LjVsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdsMS41LTEuNWMuMi0uMi41LS4yLjcgMFptMi41LjctLjY0LjY1SDE3YTEgMSAwIDAgMSAxIDF2LjVhLjUuNSAwIDAgMS0xIDBWNmgtMS44bC42NS42NWEuNS41IDAgMCAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEFycm93RG91YmxlQmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEFycm93RG91YmxlQmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMTQuNXYtNC4xYy4zNi0uMTguNy0uNCAxLS42NnY0Ljc2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LThBMi41IDIuNSAwIDAgMSA0LjUgNGg0LjdjLS4wOC4zMi0uMTUuNjYtLjE4IDFINC41QzMuNjcgNSAzIDUuNjcgMyA2LjV2LjNsNyA0LjEyIDEuNDQtLjg1Yy4zMy4yMi42OC40IDEuMDQuNTVsLTIuMjMgMS4zMWEuNS41IDAgMCAxLS40Mi4wNGwtLjA4LS4wNEwzIDcuOTZ2Ni41NGMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVaTTE0LjUgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0xLjE1LTYuMzVjLjIuMi4yLjUgMCAuN0wxMi4yMSA1LjVsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdsMS41LTEuNWMuMi0uMi41LS4yLjcgMFptMi41LjctLjY0LjY1SDE3YTEgMSAwIDAgMSAxIDF2LjVhLjUuNSAwIDAgMS0xIDBWNmgtMS44bC42NS42NWEuNS41IDAgMCAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsQXJyb3dEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3LjM3bDcuNzUgNC41NmMuMTUuMS4zNS4xLjUgMGwyLjIzLTEuMzFjLjYzLjI0IDEuMy4zOCAyLjAyLjM4Wm0tMTAtN2g0LjdhNS41IDUuNSAwIDAgMCAyLjI0IDYuMDdsLTEuNDQuODUtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgNFptMTAgNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLTIuMzUtNC4xNWEuNS41IDAgMCAxIC43LS43TDE0IDYuMjlWMy41YS41LjUgMCAwIDEgMSAwdjIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy43bC0yIDJhLjUuNSAwIDAgMS0uMzUuMTUuNS41IDAgMCAxLS4zNS0uMTRsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDE0LjV2LTQuMWMuMzYtLjE4LjctLjQgMS0uNjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiAxLjQ0LS44NWMuMzMuMjIuNjguNCAxLjA0LjU1bC0yLjIzIDEuMzFhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41Wk0xNC41IDEwYTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00LjE1IDIgMmEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNSA2LjI5VjMuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQXJyb3dGb3J3YXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBcnJvd0ZvcndhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41VjcuMzdsNy43NSA0LjU2Yy4xNS4xLjM1LjEuNSAwbDIuMjMtMS4zMWMuNjMuMjQgMS4zLjM4IDIuMDIuMzhabS0xMC03aDQuN2E1LjUgNS41IDAgMCAwIDIuMjQgNi4wN2wtMS40NC44NS03Ljk4LTQuN0EyLjUgMi41IDAgMCAxIDQuNSA0Wk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTUuNC0yLjZjLjItLjIuNS0uMi43IDBsMS43NSAxLjc1YS41LjUgMCAwIDEgMCAuN0wxNi4xIDcuMWEuNS41IDAgMCAxLS43LS43bC45LS45aC0xLjU1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWEyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aDEuNTRsLS45LS45YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBcnJvd0ZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxBcnJvd0ZvcndhcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDE0LjV2LTQuMWMuMzYtLjE4LjctLjQgMS0uNjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiAxLjQ0LS44NWMuMzMuMjIuNjguNCAxLjA0LjU1bC0yLjIzIDEuMzFhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41Wm0tNy05YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm01LjQtMi42Yy4yLS4yLjUtLjIuNyAwbDEuNzUgMS43NWEuNS41IDAgMCAxIDAgLjdMMTYuMSA3LjFhLjUuNSAwIDAgMS0uNy0uN2wuOS0uOWgtMS41NWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAxIDIuNzUtMi43NWgxLjU0bC0uOS0uOWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQXJyb3dVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsQXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LjE1LTIuMzVBLjUuNSAwIDAgMCAxNC41IDNhLjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMCAwIC43LjdMMTQgNC43MVY3LjVhLjUuNSAwIDEgMCAxIDBWNC43bDEuMTUgMS4xNWEuNS41IDAgMSAwIC43LS43bC0yLTJaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3LjM3bDcuNzUgNC41NmMuMTUuMS4zNS4xLjUgMGwyLjIzLTEuMzFjLjYzLjI0IDEuMy4zOCAyLjAyLjM4Wm0tMTAtN2g0LjdhNS41IDUuNSAwIDAgMCAyLjI0IDYuMDdsLTEuNDQuODUtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsQXJyb3dVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC4xNS0yLjM1QS41LjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAtLjM1LjE1bC0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDQuNzFWNy41YS41LjUgMCAxIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDEgMCAuNy0uN2wtMi0yWk0xNyAxNC41di00LjFjLjM2LS4xOC43LS40IDEtLjY2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA0aDQuN2MtLjA4LjMyLS4xNS42Ni0uMTggMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTIgMS40NC0uODVjLjMzLjIyLjY4LjQgMS4wNC41NWwtMi4yMyAxLjMxYS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNy45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxBdHRhY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEF0dGFjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4zIDguN2MuMi4yLjQ0LjMyLjcuMzktLjIxLjQzLS4yOS45MS0uMjMgMS4zOGwtLjc3LjQ1LTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRoOC4zN0wxMC4zIDYuNThhMS41IDEuNSAwIDAgMCAwIDIuMTJabS43OCAyLjc0YTIuNTcgMi41NyAwIDAgMCA0LjA0LjU1TDE4IDkuMTJ2NS4zOGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41VjcuMzdsNy43NSA0LjU2Yy4xNS4xLjM1LjEuNSAwbC44My0uNDlabTQuMTUtNi45NmExLjYyIDEuNjIgMCAwIDEgMi4zIDIuM2gtLjAybC0zLjg1IDMuODVoLS4wMWEuNTYuNTYgMCAxIDEtLjc4LS44bDMuNDgtMy40OGEuNS41IDAgMSAwLS43LS43bC0zLjUgMy40OS0uMDIuMDJhMS41NiAxLjU2IDAgMCAwIDIuMjEgMi4ybC4wMS0uMDEgMy44OC0zLjg3LjAxLS4wMWEyLjYzIDIuNjMgMCAwIDAtMy43Mi0zLjdsLTMuNTcgMy41N2EuNS41IDAgMCAwIC43LjdsMy41OC0zLjU2WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEF0dGFjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEF0dGFjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAuNzcgMTAuNDctLjc3LjQ1TDMgNi44di0uM0MzIDUuNjcgMy42NyA1IDQuNSA1aDcuMzhsMS0xSDQuNUEyLjUgMi41IDAgMCAwIDIgNi41djhBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjkuMTJsLTEgMXY0LjM4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE0LjVWNy45Nmw2Ljc1IDMuOTcuMDguMDRjLjE0LjA1LjMuMDQuNDItLjA0bC44My0uNDljLS4xNy0uMy0uMjgtLjYzLS4zMS0uOTdabTQuNDYtNmExLjYyIDEuNjIgMCAwIDEgMi4zIDIuM2wtLjAyLjAxLTMuODUgMy44NWgtLjAxYS41Ni41NiAwIDEgMS0uNzgtLjhsMy40OC0zLjQ4YS41LjUgMCAxIDAtLjctLjdsLTMuNSAzLjQ5LS4wMi4wMmExLjU2IDEuNTYgMCAwIDAgMi4yMSAyLjJsLjAxLS4wMSAzLjg4LTMuODcuMDEtLjAxYTIuNjMgMi42MyAwIDAgMC0zLjcyLTMuN2wtMy41NyAzLjU3YS41LjUgMCAwIDAgLjcuN2wzLjU4LTMuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41VjcuMzdsNy43NSA0LjU2Yy4xNS4xLjM1LjEuNSAwbDIuMjMtMS4zMWMuNjMuMjQgMS4zLjM4IDIuMDIuMzhabS0xMC03aDQuN2E1LjUgNS41IDAgMCAwIDIuMjQgNi4wN2wtMS40NC44NS03Ljk4LTQuN0EyLjUgMi41IDAgMCAxIDQuNSA0Wm0xMCA2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0yLjM1LTUuNjUtMyAzYS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAwIDEgLjctLjdsLjY1LjY0IDIuNjUtMi42NGEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxNC41di00LjFjLjM2LS4xOC43LS40IDEtLjY2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA0aDQuN2MtLjA4LjMyLS4xNS42Ni0uMTggMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTIgMS40NC0uODVjLjMzLjIyLjY4LjQgMS4wNC41NWwtMi4yMyAxLjMxYS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNy45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVpNMTQuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi4zNS01LjY1LTMgM2EuNS41IDAgMCAxLS43IDBsLTEtMWEuNS41IDAgMCAxIC43LS43bC42NS42NCAyLjY1LTIuNjRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbENsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgM2EuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMVYzLjVhLjUuNSAwIDAgMC0uNS0uNVptMCA4YzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnY0Ljc2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBsMi4yMy0xLjMxYy42My4yNCAxLjMuMzggMi4wMi4zOFptLTEwLTdoNC43YTUuNSA1LjUgMCAwIDAgMi4yNCA2LjA3bC0xLjQ0Ljg1LTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxDbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDNhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTFWMy41YS41LjUgMCAwIDAtLjUtLjVaTTE3IDE0LjV2LTQuMWMuMzYtLjE4LjctLjQgMS0uNjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiAxLjQ0LS44NWMuMzMuMjIuNjguNCAxLjA0LjU1bC0yLjIzIDEuMzFhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbENvcHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbENvcHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAxMi41VjYuMzdsNi43NSAzLjU2Yy4xNS4xLjM1LjEuNSAwTDE4IDYuMzd2Ni4xM2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSA0IDEyLjVabS4wMi03LjI4QTIuNSAyLjUgMCAwIDEgNi41IDNoOWEyLjUgMi41IDAgMCAxIDIuNDggMi4yMkwxMSA4LjkybC02Ljk4LTMuN1pNMTMuNSAxN2MuODIgMCAxLjU0LS40IDItMWgtOUEzLjUgMy41IDAgMCAxIDMgMTIuNXYtN2MtLjYuNDYtMSAxLjE4LTEgMnY1QTQuNSA0LjUgMCAwIDAgNi41IDE3aDdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsQ29weVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbENvcHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNS41QTIuNSAyLjUgMCAwIDEgNi41IDNoOUEyLjUgMi41IDAgMCAxIDE4IDUuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDQgMTIuNXYtN1ptNi43NSA0LjQzTDUgNi45NnY1LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjYuOTZsLTUuNzUgMi45Ny0uMDguMDRhLjUuNSAwIDAgMS0uNDItLjA0Wk0xNS41IDRoLTlDNS42NyA0IDUgNC42NyA1IDUuNXYuM2w2IDMuMTIgNi0zLjEydi0uM2MwLS44My0uNjctMS41LTEuNS0xLjVabS0yIDEzYy44MiAwIDEuNTQtLjQgMi0xaC05QTMuNSAzLjUgMCAwIDEgMyAxMi41di03Yy0uNi40Ni0xIDEuMTgtMSAydjVBNC41IDQuNSAwIDAgMCA2LjUgMTdoN1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDE0LjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTUuMjEgNS41bDEuMTQtMS4xNVpNMTQuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41VjcuMzdsNy43NSA0LjU2Yy4xNS4xLjM1LjEuNSAwbDIuMjMtMS4zMWMuNjMuMjQgMS4zLjM4IDIuMDIuMzhabS0xMC03aDQuN2E1LjUgNS41IDAgMCAwIDIuMjQgNi4wN2wtMS40NC44NS03Ljk4LTQuN0EyLjUgMi41IDAgMCAxIDQuNSA0WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbERpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNC41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE1LjIxIDUuNWwxLjE0LTEuMTVaTTE3IDE0LjV2LTQuMWMuMzYtLjE4LjctLjQgMS0uNjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiAxLjQ0LS44NWMuMzMuMjIuNjguNCAxLjA0LjU1bC0yLjIzIDEuMzFhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNi4zN3YyLjc2YTIuODcgMi44NyAwIDAgMC0yLjkuNzFsLTQuODMgNC44M2EzLjIgMy4yIDAgMCAwLS44IDEuMzNINC41QTIuNSAyLjUgMCAwIDEgMiAxMy41VjYuMzdsNy43NSA0LjU2Yy4xNS4xLjM1LjEuNSAwTDE4IDYuMzdaTTE1LjUgM2EyLjUgMi41IDAgMCAxIDIuNDggMi4yMkwxMCA5LjkybC03Ljk4LTQuN0EyLjUgMi41IDAgMCAxIDQuNSAzaDExWm0tNC41MiAxMi4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNSAzQTIuNSAyLjUgMCAwIDEgMTggNS41djMuNjNjLS4zMi0uMS0uNjYtLjE0LTEtLjEzVjYuOTZsLTYuNzUgMy45N2EuNS41IDAgMCAxLS40Mi4wNGwtLjA4LS4wNEwzIDYuOTZ2Ni41NGMwIC44My42NyAxLjUgMS41IDEuNWg1LjQ4Yy0uMjIuMy0uNC42NC0uNSAxSDQuNUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSAzaDExWm0wIDFoLTExQzMuNjcgNCAzIDQuNjcgMyA1LjV2LjNsNyA0LjEyIDctNC4xMnYtLjNjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0tNC41MiAxMS4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxFcnJvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDNhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1Wm0wIDIuODdjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3LjM3bDcuNzUgNC41NmMuMTUuMS4zNS4xLjUgMGwyLjIzLTEuMzFjLjYzLjI0IDEuMy4zOCAyLjAyLjM4Wm0tMTAtN2g0LjdhNS41IDUuNSAwIDAgMCAyLjI0IDYuMDdsLTEuNDQuODUtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxFcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgM2EuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjVaTTE3IDE0LjV2LTQuMWMuMzYtLjE4LjctLjQgMS0uNjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiAxLjQ0LS44NWMuMzMuMjIuNjguNCAxLjA0LjU1bC0yLjIzIDEuMzFhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEluYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0xIDRoMy41Yy4yOCAwIC41LjIyLjUuNXYuMDFhMS42NCAxLjY0IDAgMCAwIC4wMy4zYy4wNC4yLjEuNDYuMjMuNzIuMTMuMjUuMy40OS41Ny42Ni4yNi4xOC42My4zMSAxLjE3LjMxLjU0IDAgLjktLjEzIDEuMTctLjMuMjYtLjE4LjQ0LS40Mi41Ny0uNjdBMi41NyAyLjU3IDAgMCAwIDEyIDEwLjV2LS4wMWMwLS4yOC4yMi0uNS41LS41SDE2VjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NFptNCAuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEluYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0xMCA3aC0zLjVhLjUuNSAwIDAgMC0uNS41di4wMWExLjc1IDEuNzUgMCAwIDEtLjAzLjNjLS4wNC4yLS4xLjQ2LS4yMy43Mi0uMTMuMjUtLjMuNDktLjU3LjY2LS4yNi4xOC0uNjMuMzEtMS4xNy4zMS0uNTQgMC0uOS0uMTMtMS4xNy0uM2ExLjcgMS43IDAgMCAxLS41Ny0uNjdBMi41NyAyLjU3IDAgMCAxIDggMTAuNXYtLjAxYS41LjUgMCAwIDAtLjUtLjVINFY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjRaTTQgMTFoMy4wNWMuMDUuMjYuMTQuNjIuMzIuOTcuMTguMzguNDcuNzYuOSAxLjA2LjQ1LjI5IDEuMDIuNDcgMS43My40N3MxLjI4LS4xOCAxLjcyLS40N2MuNDQtLjMuNzMtLjY4LjkxLTEuMDYuMTgtLjM1LjI3LS43LjMyLS45N0gxNnYzYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zWlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEluYm94QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNWgtMS41YS41LjUgMCAwIDAgMCAxSDEzdjEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNFYzLjVabTIgNy41di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zaDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMUg2YTIgMiAwIDAgMC0yIDJ2NGgzLjVjLjI4IDAgLjUuMjIuNS41di4wMWExLjY0IDEuNjQgMCAwIDAgLjAzLjNjLjA0LjIuMS40Ni4yMy43Mi4xMy4yNS4zLjQ5LjU3LjY2LjI2LjE4LjYzLjMxIDEuMTcuMzEuNTQgMCAuOS0uMTMgMS4xNy0uMy4yNi0uMTguNDQtLjQyLjU3LS42N0EyLjU3IDIuNTcgMCAwIDAgMTIgMTEuNXYtLjAxYzAtLjI4LjIyLS41LjUtLjVIMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsSW5ib3hBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxM3YxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTRWMy41Wk02IDVoMi4wMmMuMDMtLjM0LjEtLjY4LjE5LTFINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWOS43NGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42aC0zLjVhLjUuNSAwIDAgMC0uNS41di4wMWExLjc1IDEuNzUgMCAwIDEtLjAzLjNjLS4wNC4yLS4xLjQ2LS4yMy43Mi0uMTMuMjUtLjMuNDktLjU3LjY2LS4yNi4xOC0uNjMuMzEtMS4xNy4zMS0uNTQgMC0uOS0uMTMtMS4xNy0uM2ExLjcgMS43IDAgMCAxLS41Ny0uNjdBMi41NyAyLjU3IDAgMCAxIDggMTEuNXYtLjAxYS41LjUgMCAwIDAtLjUtLjVINFY3YzAtMS4xLjktMiAyLTJabS0yIDdoMy4wNWMuMDUuMjYuMTQuNjIuMzIuOTcuMTguMzguNDcuNzYuOSAxLjA2LjQ1LjI5IDEuMDIuNDcgMS43My40N3MxLjI4LS4xOCAxLjcyLS40N2MuNDQtLjMuNzMtLjY4LjkxLTEuMDYuMTgtLjM1LjI3LS43LjMyLS45N0gxNnYzYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zWlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEluYm94QWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveEFsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDUuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptMCAyYzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0xIDRoMy41Yy4yOCAwIC41LjIyLjUuNXYuMDFhMS42NCAxLjY0IDAgMCAwIC4wMy4zYy4wNC4yLjEuNDYuMjMuNzIuMTMuMjUuMy40OS41Ny42Ni4yNi4xOC42My4zMSAxLjE3LjMxLjU0IDAgLjktLjEzIDEuMTctLjMuMjYtLjE4LjQ0LS40Mi41Ny0uNjdBMi41NyAyLjU3IDAgMCAwIDEyIDEwLjV2LS4wMWMwLS4yOC4yMi0uNS41LS41SDE2VjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NFptNCAuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveEFsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEluYm94QWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDUuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVpNNi41IDdhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptMTAgN2gtMy41YS41LjUgMCAwIDAtLjUuNXYuMDFhMS43NSAxLjc1IDAgMCAxLS4wMy4zYy0uMDQuMi0uMS40Ni0uMjMuNzItLjEzLjI1LS4zLjQ5LS41Ny42Ni0uMjYuMTgtLjYzLjMxLTEuMTcuMzEtLjU0IDAtLjktLjEzLTEuMTctLjNhMS43IDEuNyAwIDAgMS0uNTctLjY3QTIuNTcgMi41NyAwIDAgMSA4IDEwLjV2LS4wMWEuNS41IDAgMCAwLS41LS41SDRWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY0Wk00IDExaDMuMDVjLjA1LjI2LjE0LjYyLjMyLjk3LjE4LjM4LjQ3Ljc2LjkgMS4wNi40NS4yOSAxLjAyLjQ3IDEuNzMuNDdzMS4yOC0uMTggMS43Mi0uNDdjLjQ0LS4zLjczLS42OC45MS0xLjA2LjE4LS4zNS4yNy0uNy4zMi0uOTdIMTZ2M2EyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveEFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsSW5ib3hBcnJvd0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgMTAuNHYuNmgtMy41YS41LjUgMCAwIDAtLjUuNXYuMDFhMS43NSAxLjc1IDAgMCAxLS4wMy4zYy0uMDQuMi0uMS40Ni0uMjMuNzItLjEzLjI1LS4zLjQ5LS41Ny42Ni0uMjYuMTgtLjYzLjMxLTEuMTcuMzEtLjU0IDAtLjktLjEzLTEuMTctLjNhMS43IDEuNyAwIDAgMS0uNTctLjY3QTIuNTcgMi41NyAwIDAgMSA4IDExLjV2LS4wMWEuNS41IDAgMCAwLS41LS41SDRWN2MwLTEuMS45LTIgMi0yaDIuMDJjLjAzLS4zNC4xLS42OC4xOS0xSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjkuNzRjLS4zLjI2LS42NC40OC0xIC42NlptLTIuNS0uNGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLTIuMzUtNC4xNWEuNS41IDAgMCAxIC43LS43TDEzIDYuMjlWMy41YS41LjUgMCAwIDEgMSAwdjIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy43bC0yIDJhLjUuNSAwIDAgMS0uMzUuMTUuNS41IDAgMCAxLS4zNS0uMTRsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveEFycm93RG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEluYm94QXJyb3dEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjAyIDVINmEyIDIgMCAwIDAtMiAydjRoMy41Yy4yOCAwIC41LjIyLjUuNXYuMDFhMS42OCAxLjY4IDAgMCAwIC4wMy4zYy4wNC4yLjEuNDYuMjMuNzIuMTMuMjUuMy40OS41Ny42Ni4yNi4xOC42My4zMSAxLjE3LjMxLjU0IDAgLjktLjEzIDEuMTctLjMuMjYtLjE4LjQ0LS40Mi41Ny0uNjdBMi40MiAyLjQyIDAgMCAwIDEyIDExLjV2LS4wMWMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zaDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMVptLS45NyA3SDR2M2MwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtM2gtMy4wNWMtLjA1LjI2LS4xNC42Mi0uMzIuOTdhMi43IDIuNyAwIDAgMS0uOSAxLjA2Yy0uNDUuMjktMS4wMi40Ny0xLjczLjQ3cy0xLjI4LS4xOC0xLjcyLS40N2EyLjcgMi43IDAgMCAxLS45MS0xLjA2Yy0uMTgtLjM1LS4yNy0uNy0uMzItLjk3Wm02LjQ1LTJhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0yLjM1LTQuMTVhLjUuNSAwIDAgMSAuNy0uN0wxMyA2LjI5VjMuNWEuNS41IDAgMCAxIDEgMHYyLjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjM1LjE1LjUuNSAwIDAgMS0uMzUtLjE0bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsSW5ib3hBcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveEFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgMTF2LS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNWEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNoMi4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDZhMiAyIDAgMCAwLTIgMnY0aDMuNWMuMjggMCAuNS4yMi41LjV2LjAxYTEuNjQgMS42NCAwIDAgMCAuMDMuM2MuMDQuMi4xLjQ2LjIzLjcyLjEzLjI1LjMuNDkuNTcuNjYuMjYuMTguNjMuMzEgMS4xNy4zMS41NCAwIC45LS4xMyAxLjE3LS4zLjI2LS4xOC40NC0uNDIuNTctLjY3QTIuNTcgMi41NyAwIDAgMCAxMiAxMS41di0uMDFjMC0uMjguMjItLjUuNS0uNUgxNlptMi01LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjE1IDIuMzVhLjUuNSAwIDAgMS0uNy0uN0wxNC4yOSA2SDExLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNWwtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEluYm94QXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEluYm94QXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSAxYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVBLjUuNSAwIDAgMCAxNiA1LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE0LjI5IDVIMTEuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWk04LjAyIDVINmEyIDIgMCAwIDAtMiAydjRoMy41Yy4yOCAwIC41LjIyLjUuNXYuMDFhMS42NCAxLjY0IDAgMCAwIC4wMy4zYy4wNC4yLjEuNDYuMjMuNzIuMTMuMjUuMy40OS41Ny42Ni4yNi4xOC42My4zMSAxLjE3LjMxLjU0IDAgLjktLjEzIDEuMTctLjMuMjYtLjE4LjQ0LS40Mi41Ny0uNjdBMi41NyAyLjU3IDAgMCAwIDEyIDExLjV2LS4wMWMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zaDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMVptLS45NyA3SDR2M2MwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtM2gtMy4wNWMtLjA1LjI2LS4xNC42Mi0uMzIuOTdhMi43IDIuNyAwIDAgMS0uOSAxLjA2Yy0uNDUuMjktMS4wMi40Ny0xLjczLjQ3cy0xLjI4LS4xOC0xLjcyLS40N2EyLjcgMi43IDAgMCAxLS45MS0xLjA2Yy0uMTgtLjM1LS4yNy0uNy0uMzItLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEluYm94QXJyb3dVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsSW5ib3hBcnJvd1VwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuMTUtMi4zNUEuNS41IDAgMCAwIDEzLjUgM2EuNS41IDAgMCAwLS4zNS4xNWwtMiAyYS41LjUgMCAwIDAgLjcuN0wxMyA0LjcxVjcuNWEuNS41IDAgMSAwIDEgMFY0LjdsMS4xNSAxLjE1YS41LjUgMCAxIDAgLjctLjdsLTItMlpNMTYgMTAuNHYuNmgtMy41YS41LjUgMCAwIDAtLjUuNXYuMDFhMS43NSAxLjc1IDAgMCAxLS4wMy4zYy0uMDQuMi0uMS40Ni0uMjMuNzItLjEzLjI1LS4zLjQ5LS41Ny42Ni0uMjYuMTgtLjYzLjMxLTEuMTcuMzEtLjU0IDAtLjktLjEzLTEuMTctLjNhMS43IDEuNyAwIDAgMS0uNTctLjY3QTIuNTcgMi41NyAwIDAgMSA4IDExLjV2LS4wMWEuNS41IDAgMCAwLS41LS41SDRWN2MwLTEuMS45LTIgMi0yaDIuMDJjLjAzLS4zNC4xLS42OC4xOS0xSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjkuNzRjLS4zLjI2LS42NC40OC0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveEFycm93VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveEFycm93VXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuMTUtMi4zNUEuNS41IDAgMCAwIDEzLjUgM2EuNS41IDAgMCAwLS4zNS4xNWwtMiAyYS41LjUgMCAwIDAgLjcuN0wxMyA0LjcxVjcuNWEuNS41IDAgMSAwIDEgMFY0LjdsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMlpNOC4wMiA1SDZhMiAyIDAgMCAwLTIgMnY0aDMuNWMuMjggMCAuNS4yMi41LjV2LjAxYTEuNjggMS42OCAwIDAgMCAuMDMuM2MuMDQuMi4xLjQ2LjIzLjcyLjEzLjI1LjMuNDkuNTcuNjYuMjYuMTguNjMuMzEgMS4xNy4zMS41NCAwIC45LS4xMyAxLjE3LS4zLjI2LS4xOC40NC0uNDIuNTctLjY3QTIuNDIgMi40MiAwIDAgMCAxMiAxMS41di0uMDFjMC0uMjguMjItLjUuNS0uNUgxNnYtLjZjLjM2LS4xOC43LS40IDEtLjY2VjE1YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM2gyLjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFabS0uOTcgN0g0djNjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTNoLTMuMDVjLS4wNS4yNi0uMTQuNjItLjMyLjk3YTIuNyAyLjcgMCAwIDEtLjkgMS4wNmMtLjQ1LjI5LTEuMDIuNDctMS43My40N3MtMS4yOC0uMTgtMS43Mi0uNDdhMi43IDIuNyAwIDAgMS0uOTEtMS4wNmMtLjE4LS4zNS0uMjctLjctLjMyLS45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveENoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsSW5ib3hDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi44NS0xLjg1TDEyLjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN1pNMTYgMTAuNHYuNmgtMy41YS41LjUgMCAwIDAtLjUuNXYuMDFhMS43NSAxLjc1IDAgMCAxLS4wMy4zYy0uMDQuMi0uMS40Ni0uMjMuNzItLjEzLjI1LS4zLjQ5LS41Ny42Ni0uMjYuMTgtLjYzLjMxLTEuMTcuMzEtLjU0IDAtLjktLjEzLTEuMTctLjNhMS43IDEuNyAwIDAgMS0uNTctLjY3QTIuNTcgMi41NyAwIDAgMSA4IDExLjV2LS4wMWEuNS41IDAgMCAwLS41LS41SDRWN2MwLTEuMS45LTIgMi0yaDIuMDJjLjAzLS4zNC4xLS42OC4xOS0xSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjkuNzRjLS4zLjI2LS42NC40OC0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbEluYm94Q2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjg1LTEuODVMMTIuNSA2LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43Wk04LjAyIDVINmEyIDIgMCAwIDAtMiAydjRoMy41Yy4yOCAwIC41LjIyLjUuNXYuMDFhMS42NCAxLjY0IDAgMCAwIC4wMy4zYy4wNC4yLjEuNDYuMjMuNzIuMTMuMjUuMy40OS41Ny42Ni4yNi4xOC42My4zMSAxLjE3LjMxLjU0IDAgLjktLjEzIDEuMTctLjMuMjYtLjE4LjQ0LS40Mi41Ny0uNjdBMi41NyAyLjU3IDAgMCAwIDEyIDExLjV2LS4wMWMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zaDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMVptLS45NyA3SDR2M2MwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtM2gtMy4wNWMtLjA1LjI2LS4xNC42Mi0uMzIuOTdhMi43IDIuNyAwIDAgMS0uOSAxLjA2Yy0uNDUuMjktMS4wMi40Ny0xLjczLjQ3cy0xLjI4LS4xOC0xLjcyLS40N2EyLjcgMi43IDAgMCAxLS45MS0xLjA2Yy0uMTgtLjM1LS4yNy0uNy0uMzItLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbEluYm94RGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsSW5ib3hEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDEzLjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTQuMjEgNS41bDEuMTQtMS4xNVpNMTYgMTF2LS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNWEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNoMi4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDZhMiAyIDAgMCAwLTIgMnY0aDMuNWMuMjggMCAuNS4yMi41LjV2LjAxYTEuNjQgMS42NCAwIDAgMCAuMDMuM2MuMDQuMi4xLjQ2LjIzLjcyLjEzLjI1LjMuNDkuNTcuNjYuMjYuMTguNjMuMzEgMS4xNy4zMS41NCAwIC45LS4xMyAxLjE3LS4zLjI2LS4xOC40NC0uNDIuNTctLjY3QTIuNTcgMi41NyAwIDAgMCAxMiAxMS41di0uMDFjMC0uMjguMjItLjUuNS0uNUgxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxJbmJveERpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxJbmJveERpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDEzLjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTQuMjEgNS41bDEuMTQtMS4xNVpNNiA1aDIuMDJjLjAzLS4zNC4xLS42OC4xOS0xSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjkuNzRjLS4zLjI2LS42NC40OC0xIC42NnYuNmgtMy41YS41LjUgMCAwIDAtLjUuNXYuMDFhMS43NSAxLjc1IDAgMCAxLS4wMy4zYy0uMDQuMi0uMS40Ni0uMjMuNzItLjEzLjI1LS4zLjQ5LS41Ny42Ni0uMjYuMTgtLjYzLjMxLTEuMTcuMzEtLjU0IDAtLjktLjEzLTEuMTctLjNhMS43IDEuNyAwIDAgMS0uNTctLjY3QTIuNTcgMi41NyAwIDAgMSA4IDExLjV2LS4wMWEuNS41IDAgMCAwLS41LS41SDRWN2MwLTEuMS45LTIgMi0yWm0tMiA3aDMuMDVjLjA1LjI2LjE0LjYyLjMyLjk3LjE4LjM4LjQ3Ljc2LjkgMS4wNi40NS4yOSAxLjAyLjQ3IDEuNzMuNDdzMS4yOC0uMTggMS43Mi0uNDdjLjQ0LS4zLjczLS42OC45MS0xLjA2LjE4LS4zNS4yNy0uNy4zMi0uOTdIMTZ2M2EyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjUgM2EyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wk0xNiAzYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS0zIDBjMC0uNTQuMTItMS4wNS4zNC0xLjVINC41YTIuNSAyLjUgMCAwIDAtMi40OCAyLjIybDcuOTggNC43TDEzLjI2IDloLS43NkEzLjUgMy41IDAgMCAxIDkgNS41Wk0xNi41IDloLTEuMjdsLTQuOTggMi45M2EuNS41IDAgMCAxLS41IDBMMiA3LjM3djcuMTNBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjguNjZjLS40NS4yMi0uOTYuMzQtMS41LjM0WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbExpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxMaW5rUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi41IDNhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVpNMTYgM2EuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0tMiA1LjQyTDEzLjI2IDloMS45N2wtNC45OCAyLjkzYS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNy45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY4Ljk2Yy4zNS0uMDUuNjktLjE1IDEtLjN2NS44NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC44NGMtLjE1LjMxLS4yNS42NS0uMyAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxMaXN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxMaXN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabS03LTJoNS41OWExLjUgMS41IDAgMCAwIC4zIDEuNUExLjUgMS41IDAgMCAwIDExLjUgOGgzLjQ1TDEwIDEwLjkybC03Ljk4LTQuN0EyLjUgMi41IDAgMCAxIDQuNSA0Wm01Ljc1IDcuOTNMMTYuOTMgOGguNTdjLjE4IDAgLjM0LS4wMy41LS4wOXY2LjU5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsTGlzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbExpc3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabS03LTJoNS41OWExLjUgMS41IDAgMCAwIDAgMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTJMMTQuOTYgOGgxLjk3bC02LjY4IDMuOTNhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLjVjLjE4IDAgLjM0LS4wMy41LS4wOXY2LjU5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LThBMi41IDIuNSAwIDAgMSA0LjUgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgMTIuNVY2LjM3TDkuMjUgOS45M2EuNS41IDAgMCAxLS41IDBMMiA2LjM3djYuMTNBMi41IDIuNSAwIDAgMCA0LjUgMTVoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVabS0uMDItNy4yOEEyLjUgMi41IDAgMCAwIDEzLjUgM2gtOWEyLjUgMi41IDAgMCAwLTIuNDggMi4yMkw5IDguOTJsNi45OC0zLjdaTTYuNSAxN2EyLjUgMi41IDAgMCAxLTItMWg5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtN2MuNi40NiAxIDEuMTggMSAydjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2IDUuNUEyLjUgMi41IDAgMCAwIDEzLjUgM2gtOUEyLjUgMi41IDAgMCAwIDIgNS41djdBMi41IDIuNSAwIDAgMCA0LjUgMTVoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdaTTkuMjUgOS45MyAxNSA2Ljk2djUuNTRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgMyAxMi41VjYuOTZsNS43NSAyLjk3LjA4LjA0Yy4xNC4wNS4zLjA0LjQyLS4wNFpNNC41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYuM0w5IDguOTIgMyA1Ljh2LS4zQzMgNC42NyAzLjY3IDQgNC41IDRabTIgMTNhMi41IDIuNSAwIDAgMS0yLTFoOWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTdjLjYuNDYgMSAxLjE4IDEgMnY1YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDMuNSA0LjIxYTIuNSAyLjUgMCAwIDAtMS40OCAyLjAxbDcuOTggNC43LjEzLS4wOC43My43My0uNi4zNmEuNS41IDAgMCAxLS41MSAwTDIgNy4zN3Y3LjEzQTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYy4yNCAwIC40Ny0uMDMuNy0uMWwuOTUuOTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTkuOCA4LjM3IDUuMDkgNS4xYy4xNy0uMzQuMjYtLjcyLjI2LTEuMTJWNy4zN2wtNS4zNSAzLjE1Wk02LjEyIDRsNS44IDUuOCA2LjA2LTMuNThBMi41IDIuNSAwIDAgMCAxNS41IDRINi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy41IDQuMjFBMi41IDIuNSAwIDAgMCAyIDYuNXY4QTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYy4yNCAwIC40Ny0uMDMuNy0uMWwuOTUuOTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTE1LjMgMTZINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjcuOTZsNi43NSAzLjk3LjA4LjA0Yy4xNC4wNS4zLjA0LjQyLS4wNGwuNjEtLjM2TDE1LjMgMTZabS01LjE2LTUuMTYtLjEzLjA4TDMgNi44di0uM2MwLS43Ni41Ny0xLjQgMS4zLTEuNDlsNS44MyA1LjgzWk0xNyA2LjhsLTUuMDkgMyAuNzMuNzJMMTcgNy45NnY2LjU0YzAgLjEyLS4wMS4yMy0uMDQuMzRsLjc4Ljc4Yy4xNy0uMzQuMjYtLjcyLjI2LTEuMTJ2LThBMi41IDIuNSAwIDAgMCAxNS41IDRINi4xMmwxIDFoOC4zOGMuODMgMCAxLjUuNjcgMS41IDEuNXYuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxPcGVuUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxPcGVuUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNzQgMi4wN2EuNS41IDAgMCAxIC41MiAwbDYuNzcgNC4wNmEyIDIgMCAwIDEgLjcuNzFMMTAgMTAuOTRsLTcuNzMtNC4xYTIgMiAwIDAgMSAuNy0uN2w2Ljc3LTQuMDdabTMuMTQgOC40Ny0yLjY1IDEuNGEuNS41IDAgMCAxLS40NiAwTDIgNy44M3Y1LjY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDYuNTVhMi41IDIuNSAwIDAgMSAyLjIyLTEuOTkgMi45OSAyLjk5IDAgMCAxLS40LTMuNDdaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxPcGVuUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsT3BlblBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMy4wOCAzLjQ5IDcgMy40NyA3IDEwIDEwLjkyIDE2LjUzIDcgMTAgMy4wOFpNOS45OCAxMmEuNS41IDAgMCAxLS4yNC0uMDdMMyA3Ljg4djUuNjJjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MtLjIyLjMtLjM4LjYzLS40NSAxSDQuNUEyLjUgMi41IDAgMCAxIDIgMTMuNVY3Ljg1YTIgMiAwIDAgMSAuOTctMS43Mmw2Ljc2LTQuMDVhLjUuNSAwIDAgMSAuNTMgMGw2LjkzIDQuMTVhLjkuOSAwIDAgMSAwIDEuNTRsLTIuMSAxLjI2YTMgMyAwIDAgMC0yLjAyIDEuMjFsLTIuODEgMS42OWEuNS41IDAgMCAxLS4yOC4wN1ptNy41MiAwYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsUGF1c2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbFBhdXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3LjM3bDcuNzUgNC41NmMuMTUuMS4zNS4xLjUgMGwyLjIzLTEuMzFjLjYzLjI0IDEuMy4zOCAyLjAyLjM4Wm0tMTAtN2g0LjdhNS41IDUuNSAwIDAgMCAyLjI0IDYuMDdsLTEuNDQuODUtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgNFptMTAgNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLTEtNi41djRhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMSAxIDBabTMgMHY0YS41LjUgMCAwIDEtMSAwdi00YS41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbFBhdXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsUGF1c2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDE0LjV2LTQuMWMuMzYtLjE4LjctLjQgMS0uNjZ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNC43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41di4zbDcgNC4xMiAxLjQ0LS44NWMuMzMuMjIuNjguNCAxLjA0LjU1bC0yLjIzIDEuMzFhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41Wk0xNC41IDEwYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tMS02LjV2NGEuNS41IDAgMCAxLTEgMHYtNGEuNS41IDAgMCAxIDEgMFptMyAwdjRhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVpNMTQuNSA5Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOUEzLjUgMy41IDAgMCAxIDE0LjUgOVptMCAyYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnY0Ljc2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBsMi4yMy0xLjMxYy42My4yNCAxLjMuMzggMi4wMi4zOFptLTEwLTdoNC43YTUuNSA1LjUgMCAwIDAgMi4yNCA2LjA3bC0xLjQ0Ljg1LTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsUHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbFByb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDUuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWk0xNC41IDljLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45QTMuNSAzLjUgMCAwIDEgMTQuNSA5Wm0yLjUgNS41di00LjFjLjM2LS4xOC43LS40IDEtLjY2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA0aDQuN2MtLjA4LjMyLS4xNS42Ni0uMTggMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTIgMS40NC0uODVjLjMzLjIyLjY4LjQgMS4wNC41NWwtMi4yMyAxLjMxYS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNy45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxSZWFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxSZWFkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjI2IDEuMDdhLjUuNSAwIDAgMC0uNTIgMEwyLjk3IDUuMTNhMiAyIDAgMCAwLS40LjMyTDEwIDkuOTJsNy40My00LjQ2YTIgMiAwIDAgMC0uNC0uMzNsLTYuNzctNC4wNlptNy42NyA1LjI2LTcuNjcgNC42YS41LjUgMCAwIDEtLjUyIDBsLTcuNjctNC42YTIgMiAwIDAgMC0uMDcuNTJ2Ni42NUEyLjUgMi41IDAgMCAwIDQuNSAxNmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWNi44NWEyIDIgMCAwIDAtLjA3LS41MlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxSZWFkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsUmVhZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS43NCAyLjA3YS41LjUgMCAwIDEgLjUyIDBsNi43NyA0LjA2QTIgMiAwIDAgMSAxOCA3Ljg1djYuNjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNVY3Ljg1YTIgMiAwIDAgMSAuOTctMS43Mmw2Ljc3LTQuMDZaTTEwIDMuMDggMy40OSA3IDMuNDcgNyAxMCAxMC45MiAxNi41MyA3aC0uMDJMMTAgMy4wN1ptNyA0LjgtNi43NCA0LjA1YS41LjUgMCAwIDEtLjUyIDBMMyA3Ljg4djYuNjJjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjcuODhaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsUmVhZE11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxSZWFkTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC43NCAyLjA3YS41LjUgMCAwIDEgLjUyIDBsNi4wMyAzLjcxLjIuMTQtNi40OSA0LTYuNDgtNGMuMDYtLjA1LjEyLS4xLjItLjE0bDYuMDItMy43Wm03LjI0IDQuNzIuMDIuMjd2NS40NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEyLjVWNy4wNmMwLS4xIDAtLjE4LjAyLS4yN2w2LjcyIDQuMTRjLjE2LjEuMzYuMS41MiAwbDYuNzItNC4xNFpNNC41IDE2Yy40Ni42IDEuMTggMSAyIDFIMTRhNCA0IDAgMCAwIDQtNFY4LjA2YzAtLjUyLS4yNy0xLS43MS0xLjI4bC0uMzQtLjJjLjAzLjE1LjA1LjMyLjA1LjQ4VjEzYTMgMyAwIDAgMS0zIDNINC41WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbFJlYWRNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbFJlYWRNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4yNiAyLjA3YS41LjUgMCAwIDAtLjUyIDBMMi43IDUuNzhBMS41IDEuNSAwIDAgMCAyIDcuMDZ2NS40NEEyLjUgMi41IDAgMCAwIDQuNSAxNWg5YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3LjA2YzAtLjUyLS4yNy0xLS43MS0xLjI4bC02LjAzLTMuN1pNMy40NiA2LjUgOSAzLjA5bDUuNTUgMy40MUw5IDkuOTEgMy40NSA2LjVaTTMgNy40bDUuNzQgMy41M2MuMTYuMS4zNi4xLjUyIDBMMTUgNy4zOXY1LjExYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDMgMTIuNVY3LjRaTTYuNSAxN2EyLjUgMi41IDAgMCAxLTItMUgxNGEzIDMgMCAwIDAgMy0zVjcuMDZjMC0uMTYtLjAyLS4zMy0uMDUtLjQ4bC4zNC4yYy40NC4yNy43MS43Ni43MSAxLjI4VjEzYTQgNCAwIDAgMS00IDRINi41WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbFJld2luZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsUmV3aW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDhWNi44bDIuMzYgMS45N0ExIDEgMCAwIDAgMjAgOFYzYTEgMSAwIDAgMC0xLjY0LS43N0wxNiA0LjJWM2ExIDEgMCAwIDAtMS42NC0uNzdsLTMgMi41YTEgMSAwIDAgMCAwIDEuNTRsMyAyLjVBMSAxIDAgMCAwIDE2IDhabS44NC44YTIgMiAwIDAgMS0yLjg1LjkzbC0zLjc0IDIuMmEuNS41IDAgMCAxLS41IDBMMiA3LjM3djcuMTNBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjkuNzNjLS4xLS4wNS0uMi0uMTItLjI4LS4ybC0uODgtLjczWk00LjUgNGg2LjE4YTIgMiAwIDAgMCAuMDQgMy4wNGwyLjQzIDIuMDJMMTAgMTAuOTJsLTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsUmV3aW5kUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsUmV3aW5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiA4VjYuOGwyLjM2IDEuOTdBMSAxIDAgMCAwIDIwIDhWM2ExIDEgMCAwIDAtMS42NC0uNzdMMTYgNC4yVjNhMSAxIDAgMCAwLTEuNjQtLjc3bC0zIDIuNWExIDEgMCAwIDAgMCAxLjU0bDMgMi41QTEgMSAwIDAgMCAxNiA4Wm0tMi4yOCAxLjU0LjI3LjE5LTMuNzQgMi4yYS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNy45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY4Ljk0bC43Mi42LjI4LjJ2NC43NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di04QTIuNSAyLjUgMCAwIDEgNC41IDRoNi4xOGMtLjMyLjI4LS41Mi42My0uNjIgMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTIgMy4xNS0xLjg2LjU3LjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbFNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnY0Ljc2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBsMi4yMy0xLjMxYy42My4yNCAxLjMuMzggMi4wMi4zOFptLTEwLTdoNC43YTUuNSA1LjUgMCAwIDAgMi4yNCA2LjA3bC0xLjQ0Ljg1LTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRabTYuMTQuOTJhMiAyIDAgMCAwIDEuNDMtMi40OGwtLjE2LS41NWMuMjUtLjIuNTMtLjM3LjgyLS41bC4zNC4zNmEyIDIgMCAwIDAgMi45IDBsLjMzLS4zNWMuMy4xNC41OC4zMi44NC41MmwtLjEzLjQyYTIgMiAwIDAgMCAxLjQ2IDIuNTJsLjM1LjA5YTQuNyA0LjcgMCAwIDEgMCAxLjAxbC0uNDUuMTJhMiAyIDAgMCAwLTEuNDMgMi40OGwuMTUuNTVjLS4yNS4yLS41My4zNy0uODIuNWwtLjM0LS4zNmEyIDIgMCAwIDAtMi45IDBsLS4zMy4zNWMtLjMtLjE0LS41OC0uMzItLjg0LS41MmwuMTMtLjQyYTIgMiAwIDAgMC0xLjQ2LTIuNTJsLS4zNS0uMDlhNC43MSA0LjcxIDAgMCAxIDAtMS4wMWwuNDYtLjEyWm00Ljg2LjU4YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbFNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxNC41di00LjFjLjM2LS4xOC43LS40IDEtLjY2djQuNzZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA0aDQuN2MtLjA4LjMyLS4xNS42Ni0uMTggMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTIgMS40NC0uODVjLjMzLjIyLjY4LjQgMS4wNC41NWwtMi4yMyAxLjMxYS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNy45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVptLTYuMzYtOS41OGEyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40Ni0uMTJabTQuODYuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbFNoaWVsZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsU2hpZWxkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDIuNjJhNC4wNiA0LjA2IDAgMCAxLTEtLjI3IDUuMTYgNS4xNiAwIDAgMS0xLjcyLTEuMjMuMzkuMzkgMCAwIDAtLjU2IDAgNC41IDQuNSAwIDAgMS0zLjMyIDEuNTUuNC40IDAgMCAwLS40LjQxdjIuNzdBNS41IDUuNSAwIDAgMCAxMi4wMSA5Yy4yNy4zNy42LjcuOTkgMSAuNTIuNCAxLjE1LjczIDEuODcuOTguMDkuMDMuMTcuMDMuMjYgMCAyLjU2LS44OSAzLjg3LTIuNzEgMy44Ny01LjRWM2EuNC40IDAgMCAwLS40LS4zM2MtLjIgMC0uNC0uMDItLjYtLjA1Wm0tNS43IDguMS4xLjA3Yy42MS40OCAxLjM0Ljg1IDIuMTUgMS4xMy4yOS4xLjYxLjEuOSAwQTcuMzYgNy4zNiAwIDAgMCAxOCAxMC40N3Y0LjAzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjVWNy4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBsMi4wNS0xLjJaTTEwIDRWNS44OGE2LjQ5IDYuNDkgMCAwIDAgMS41NCA0LjEzbC0xLjU0LjkxLTcuOTgtNC43QTIuNSAyLjUgMCAwIDEgNC41IDRIMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsU2hpZWxkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsU2hpZWxkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCAyLjYyYTQuMDYgNC4wNiAwIDAgMS0xLS4yNyA1LjE2IDUuMTYgMCAwIDEtMS43Mi0xLjIzLjM5LjM5IDAgMCAwLS41NiAwIDQuNSA0LjUgMCAwIDEtMy4zMiAxLjU1LjQuNCAwIDAgMC0uNC40MXYyLjc3QTUuNSA1LjUgMCAwIDAgMTIuMDEgOWMuMjcuMzcuNi43Ljk5IDEgLjUyLjQgMS4xNS43MyAxLjg3Ljk4LjA5LjAzLjE3LjAzLjI2IDAgMi41Ni0uODkgMy44Ny0yLjcxIDMuODctNS40VjNhLjQuNCAwIDAgMC0uNC0uMzNjLS4yIDAtLjQtLjAyLS42LS4wNVpNMTAgNEg0LjVBMi41IDIuNSAwIDAgMCAyIDYuNXY4QTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNC4wM2MtLjMuMjctLjY0LjUyLTEgLjc0djMuMjljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgMTQuNVY3Ljk2bDYuNzUgMy45Ny4wOC4wNGMuMTQuMDUuMy4wNC40Mi0uMDRsMi4wNS0xLjJhNi4wNSA2LjA1IDAgMCAxLS43Ni0uNzJsLTEuNTQuOTFMMyA2Ljh2LS4zQzMgNS42NyAzLjY3IDUgNC41IDVIMTBWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxUZW1wbGF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsVGVtcGxhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE2aDEuNTRhMy41MyAzLjUzIDAgMCAxLS4wNC0uNXYtNEEzLjUgMy41IDAgMCAxIDkuNSA4aDZjLjE3IDAgLjM0LjAxLjUuMDRWNC41QTIuNSAyLjUgMCAwIDAgMTMuNSAyaC05Wk01IDQuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptMiAyYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm01LjUgNy4yLTUuMy0zLjE3QTIuNSAyLjUgMCAwIDEgOS41IDloNmEyLjUgMi41IDAgMCAxIDIuMyAxLjUzbC01LjMgMy4xN1ptLjI2IDFMMTggMTEuNTl2My45MmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTZBMi41IDIuNSAwIDAgMSA3IDE1LjV2LTMuOTJsNS4yNCAzLjEzYy4xNi4xLjM2LjEuNTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxUZW1wbGF0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbFRlbXBsYXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDlBMi41IDIuNSAwIDAgMSAxNiA0LjV2My41NGEzLjUzIDMuNTMgMCAwIDAtLjUtLjA0SDE1VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDMy42NyAzIDMgMy42NyAzIDQuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41SDZ2LjVjMCAuMTcuMDEuMzQuMDQuNUg0LjVBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTlabTExIDNhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEgMC0xaDVjLjI4IDAgLjUuMjIuNS41Wm0tOC0yYzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0yIDZBMi41IDIuNSAwIDAgMSA5LjUgOWg2YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNkEyLjUgMi41IDAgMCAxIDcgMTUuNXYtNFpNOS41IDEwYTEuNSAxLjUgMCAwIDAtMS40OCAxLjIzbDQuNDggMi42OSA0LjQ4LTIuNjlBMS41IDEuNSAwIDAgMCAxNS41IDEwaC02Wk04IDE1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTMuMTJsLTQuMjQgMi41NWEuNS41IDAgMCAxLS41MiAwTDggMTIuMzh2My4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxVbnJlYWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbFVucmVhZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy41IDZhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVabS0xMy0zaDkuNTRhMy41IDMuNSAwIDAgMCAxLjcyIDMuNTNMMTAgOS45MmwtNy45OC00LjdBMi41IDIuNSAwIDAgMSA0LjUgM1ptNS43NSA3LjkzTDE3IDYuOTZhMy41MyAzLjUzIDAgMCAwIDEgMHY2LjU0YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDEzLjVWNi4zN2w3Ljc1IDQuNTZjLjE1LjEuMzUuMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsVW5yZWFkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsVW5yZWFkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA1Ljk1YTIuNSAyLjUgMCAxIDAtMS00LjkgMi41IDIuNSAwIDAgMCAxIDQuOVpNNC41IDNoOS41NGEzLjU0IDMuNTQgMCAwIDAgMCAxSDQuNUMzLjY3IDQgMyA0LjY3IDMgNS41di4zbDcgNC4xMiA1Ljc1LTMuMzljLjM4LjIyLjguMzcgMS4yNS40M2wtNi43NSAzLjk3YS41LjUgMCAwIDEtLjQyLjA0bC0uMDgtLjA0TDMgNi45NnY2LjU0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY2Ljk2YTMuNTMgMy41MyAwIDAgMCAxIDB2Ni41NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxMy41di04QTIuNSAyLjUgMCAwIDEgNC41IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsV2FybmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsV2FybmluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy42IDEuNTUtMy41IDdBMSAxIDAgMCAwIDExIDEwaDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMy41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBaTTE0LjUgOWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptMy41IDJoLTYuMTZsLTEuNTkuOTNhLjUuNSAwIDAgMS0uNSAwTDIgNy4zN3Y3LjEzQTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxMVpNOS4yMiA4LjEgMTEuMjcgNEg0LjVhMi41IDIuNSAwIDAgMC0yLjQ4IDIuMjJsNy45OCA0LjcuMTctLjFhMiAyIDAgMCAxLS45NS0yLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgTWFpbFdhcm5pbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01haWxXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMy42IDEuNTUtMy41IDdBMSAxIDAgMCAwIDExIDEwaDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMy41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBaTTE0LjUgOWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptLTEwLTVoNi43N2wtLjUgMUg0LjVDMy42NyA1IDMgNS42NyAzIDYuNXYuM2w3IDQuMTIuMTctLjFhMiAyIDAgMCAwIC44NC4xOGguODNsLTEuNTkuOTNhLjUuNSAwIDAgMS0uNDIuMDRsLS4wOC0uMDRMMyA3Ljk2djYuNTRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjExaDF2My41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LThBMi41IDIuNSAwIDAgMSA0LjUgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1haWxib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFpbGJveEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDIuNWMwLS4yOC4yMi0uNS41LS41aDRjLjI4IDAgLjUuMjIuNS41VjhoMy42N0E0LjUgNC41IDAgMCAwIDEwIDExLjVWMTdjMCAuMzYuMS43LjI3IDFIM2ExIDEgMCAwIDEtMS0xdi01LjVBMy41IDMuNSAwIDAgMSA1LjUgOEg2djMuNWEuNS41IDAgMCAwIDEgMFY1SDMuNWEuNS41IDAgMCAxLS41LS41di0yWk0xNC41IDhhMy41IDMuNSAwIDAgMC0zLjUgMy41VjE3YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi01LjVBMy41IDMuNSAwIDAgMCAxNC41IDhabS0xLjI1IDMuNWMwLS4yOC4yMi0uNS41LS41aDEuNWEuNS41IDAgMCAxIDAgMWgtMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNYWlsYm94UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYWlsYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUg3djNINS41QTMuNSAzLjUgMCAwIDAgMiAxMS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXYtNS41QTMuNSAzLjUgMCAwIDAgMTQuNSA4SDhWMi41YS41LjUgMCAwIDAtLjUtLjVoLTRaTTcgOXYyLjVhLjUuNSAwIDAgMCAxIDBWOWg0LjA1QTMuNDkgMy40OSAwIDAgMCAxMSAxMS41VjE3SDN2LTUuNUEyLjUgMi41IDAgMCAxIDUuNSA5SDdabTEwIDIuNVYxN2gtNXYtNS41YTIuNSAyLjUgMCAwIDEgNSAwWm0tMy0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgTWFwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01hcEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMiA2LjA0LTQtMi44djEwLjcybDQgMi44VjYuMDRabTEgMTAuNzIgNC43OS0zLjM1QS41LjUgMCAwIDAgMTggMTNWMy41YS41LjUgMCAwIDAtLjc5LS40MUwxMyA2LjA0djEwLjcyWk0yLjIxIDYuNTkgNyAzLjI0djEwLjcybC00LjIxIDIuOTVBLjUuNSAwIDAgMSAyIDE2LjVWN2EuNS41IDAgMCAxIC4yMS0uNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBNYXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01hcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuNzMgMy4wNmEuNS41IDAgMCAxIC4yNy40NFYxM2EuNS41IDAgMCAxLS4yMS40MWwtNSAzLjVhLjUuNSAwIDAgMS0uNTggMGwtNC43MS0zLjMtNC43MSAzLjNBLjUuNSAwIDAgMSAyIDE2LjVWN2EuNS41IDAgMCAxIC4yMS0uNDFsNS0zLjVhLjUuNSAwIDAgMSAuNTggMGw0LjcxIDMuMyA0LjcxLTMuM2EuNS41IDAgMCAxIC41Mi0uMDNaTTEyIDcuMjZsLTQtMi44djguMjhsNCAyLjhWNy4yNlptMSA4LjI4IDQtMi44VjQuNDZsLTQgMi44djguMjhabS02LTIuOFY0LjQ2bC00IDIuOHY4LjI4bDQtMi44WlwiXSk7XG5leHBvcnQgY29uc3QgTWFwRHJpdmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFwRHJpdmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnYzLjVhLjUuNSAwIDAgMS0uNS41aC03djJoMWMuMjggMCAuNS4yMi41LjVWMTNoMS41Yy4yNyAwIC41LjIyLjUuNXYxaDMuNWEuNS41IDAgMCAxIDAgMUgxNHYxYS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di0xSDIuNWEuNS41IDAgMCAxIDAtMUg2di0xYzAtLjI4LjIzLS41LjUtLjVIOHYtMS41YS41LjUgMCAwIDEgLjUtLjVoMVY5aC03YS41LjUgMCAwIDEtLjUtLjVWNVptMTIuNzUgMS43NGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNYXBEcml2ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWFwRHJpdmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0Ljc1IDYuNzRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0yIDVjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjMuNWEuNS41IDAgMCAxLS41LjVoLTd2MmgxYy4yOCAwIC41LjIyLjUuNVYxM2gxLjVjLjI3IDAgLjUuMjIuNS41djFoMy41YS41LjUgMCAwIDEgMCAxSDE0djFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTFIMi41YS41LjUgMCAwIDEgMC0xSDZ2LTFjMC0uMjguMjMtLjUuNS0uNUg4di0xLjVhLjUuNSAwIDAgMSAuNS0uNWgxVjloLTdhLjUuNSAwIDAgMS0uNS0uNVY1Wm0yLTFhMSAxIDAgMCAwLTEgMXYzaDE0VjVhMSAxIDAgMCAwLTEtMUg0Wm03LjQ3IDEySDEzdi0yaC0xLjVhLjUuNSAwIDAgMS0uNS0uNVYxMkg5djEuNWEuNS41IDAgMCAxLS41LjVIN3YyaDQuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYXJrZG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXJrZG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjUgNC4wNWMuMjktLjExLjYyLS4wMy44Mi4yMUw3IDguNmwzLjY4LTQuMzNhLjc1Ljc1IDAgMCAxIDEuMzIuNDl2OS41YS43NS43NSAwIDAgMS0xLjUgMFY2Ljc5bC0yLjkzIDMuNDVhLjc1Ljc1IDAgMCAxLTEuMTQgMEwzLjUgNi43OXY3LjQ2YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjMxLjItLjYuNS0uN1ptMTAuNzIgNy42N2MuMy0uMy43Ny0uMyAxLjA2IDBsLjcyLjcyVjQuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjcuNjlsLjcyLS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yIDJjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1hcmtkb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXJrZG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgNC41YS41LjUgMCAwIDAtMSAwdjguOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDItMmEuNS41IDAgMCAwLS43LS43TDE2IDEzLjI5VjQuNVpNMi4zMiA0LjAzYS41LjUgMCAwIDEgLjU1LjE0TDcgOC43NWw0LjEzLTQuNThhLjUuNSAwIDAgMSAuODcuMzN2MTBhLjUuNSAwIDEgMS0xIDBWNS44TDcuMzcgOS44M2EuNS41IDAgMCAxLS43NCAwTDMgNS44djguN2EuNS41IDAgMSAxLTEgMHYtMTBjMC0uMi4xMy0uNC4zMi0uNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBNYXRjaEFwcExheW91dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXRjaEFwcExheW91dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgN0MyLjY3IDcgMiA3LjY3IDIgOC41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNDOSA3LjY3IDguMzMgNyA3LjUgN2gtNFptOSAwYy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1hdGNoQXBwTGF5b3V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXRjaEFwcExheW91dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDdDMi42NyA3IDIgNy42NyAyIDguNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di0zQzkgNy42NyA4LjMzIDcgNy41IDdoLTRaTTMgOC41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtM1pNMTIuNSA3Yy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNFpNMTIgOC41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1hdGhGb3JtYXRMaW5lYXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWF0aEZvcm1hdExpbmVhckZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjAxIDMuMThjLjI4LS4yNC43LS4yNC45OCAwbDEuNzUgMS41YS43NS43NSAwIDEgMS0uOTggMS4xNEw5LjUgNC43NCA4LjI0IDUuODJhLjc1Ljc1IDAgMCAxLS45OC0xLjE0bDEuNzUtMS41Wm0yLjMgNS43Yy4zNi0uNC41NC0uMzguNTYtLjM4LjA1IDAgLjE1LjA1LjI2LjJsMS4zMiAyLjA1LTMuMjEgMi45OGEuNzUuNzUgMCAxIDAgMS4wMiAxLjFsMy0yLjggMS4zNiAyLjF2LjAyYTEuOTIgMS45MiAwIDAgMCAzLjI3LjAxLjc1Ljc1IDAgMSAwLTEuMjgtLjc3LjQyLjQyIDAgMCAxLS41MS4xNC41OS41OSAwIDAgMS0uMjItLjIxTDE1LjM4IDExbDIuODgtMi42N2EuNzUuNzUgMCAwIDAtMS4wMi0xLjFMMTQuNTYgOS43bC0xLjE4LTEuODRBMS45MyAxLjkzIDAgMCAwIDEyLjAyIDdjLS42Ny0uMDctMS4zLjI3LTEuODQuOWEuNzUuNzUgMCAxIDAgMS4xNC45OFpNNy42OCA3Ljg2YTIuMTEgMi4xMSAwIDAgMC0xLjUyLS44M2MtLjYtLjA3LTEuMjYuMDMtMS45Mi4zLTEuMzMuNTYtMi42IDEuODYtMy4xMiA0LjA4LS4yMy45Ny0uMSAxLjg0LjM1IDIuNTRBMy4zMiAzLjMyIDAgMCAwIDMuMyAxNS4zYTQuNSA0LjUgMCAwIDAgNC40Ny0xLjA5Ljc1Ljc1IDAgMSAwLTEuMDctMS4wNCAzIDMgMCAwIDEtMi45NS43Yy0uNDctLjE1LS44Mi0uNC0xLjAyLS43M2ExLjUgMS41IDAgMCAxLS4yMy0uN2MyLjEzLjI2IDMuNjMtLjMgNC41NC0xLjIyLjUtLjUyLjgtMS4xMi45MS0xLjcuMS0uNTcuMDQtMS4yLS4yOC0xLjY3Wm0tMS43IDIuMzFjLS40OS41LTEuNDYuOTktMy4xNy44YTMuNzcgMy43NyAwIDAgMSAyLTIuMjZjLjQ1LS4xOC44Ni0uMjMgMS4xNy0uMTkuMzIuMDQuNDQuMTYuNDYuMTguMDQuMDYuMS4yNS4wNS41NS0uMDYuMjktLjIxLjYyLS41LjkyWlwiXSk7XG5leHBvcnQgY29uc3QgTWF0aEZvcm1hdExpbmVhclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWF0aEZvcm1hdExpbmVhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zNiAzLjY1YS41LjUgMCAwIDAtLjcxIDBsLTEuNSAxLjVhLjUuNSAwIDAgMCAuNy43TDkgNC43MmwxLjE1IDEuMTVhLjUuNSAwIDEgMCAuNy0uNzFsLTEuNS0xLjVaTTcuNzQgNy43OGExLjc5IDEuNzkgMCAwIDAtMS4yNy0uNzUgMy4yNiAzLjI2IDAgMCAwLTEuNzQuMjRjLTEuMjQuNTItMi40NSAxLjc4LTMuMDYgNC4wNmEzLjcgMy43IDAgMCAwIC4xNCAyLjZjLjM1LjcyLjk2IDEuMiAxLjY3IDEuNDIgMS40Mi40NSAzLjIxLS4xMiA0LjQyLTEuNzNhLjUuNSAwIDAgMC0uOC0uNmMtMSAxLjMzLTIuMzcgMS42OC0zLjMyIDEuMzhhMS43NCAxLjc0IDAgMCAxLTEuMDctLjkgMi40OCAyLjQ4IDAgMCAxLS4xNi0xLjUxYzIuMTYuMTIgMy42NC0uNDcgNC41MS0xLjMyLjktLjg3IDEuMTgtMi4xLjY4LTIuODlaTTYuMzYgOS45NWMtLjYuNTktMS43MSAxLjEtMy41NSAxLjA1LjU4LTEuNjQgMS41LTIuNDcgMi4zLTIuOC40Ni0uMi44OC0uMjMgMS4yLS4xOC4zNC4wNS41Mi4xOS41OC4yOS4xNi4yNi4xNy45Ni0uNTMgMS42NFptMTEuNS0yLjhjLjE5LjIuMTkuNSAwIC43bC0zLjA5IDMuMDggMS42NCAyLjc2Yy4wNy4xLjI1LjI1LjQ3LjMuMTcuMDMuNDIuMDIuNzQtLjM1YS41LjUgMCAxIDEgLjc2LjY2Yy0uNTMuNi0xLjE1Ljc4LTEuNy42Ny0uNTEtLjEtLjktLjQ0LTEuMS0uNzItLjEyLS4xOC0uOC0xLjM0LTEuNTQtMi41OWwtMy4xOSAzLjJhLjUuNSAwIDAgMS0uNy0uNzFsMy4zNy0zLjM4YTk4MS43IDk4MS43IDAgMCAxLTEuNDYtMi41LjU5LjU5IDAgMCAwLS40MS0uMjdjLS4xNS0uMDEtLjQyLjAyLS43NS40N2EuNS41IDAgMCAxLS44LS41OWMuNDktLjY3IDEuMDgtLjk0IDEuNjYtLjg3LjU0LjA2Ljk2LjQgMS4xNi43NWwxLjMzIDIuMjggMi45LTIuOWMuMi0uMTkuNS0uMTkuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgTWF0aEZvcm1hdFByb2Zlc3Npb25hbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXRoRm9ybWF0UHJvZmVzc2lvbmFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjI1IDMuNmMuNDQtLjMzIDEtLjY1IDEuNjUtLjY1bC4xMi4wMWMuNDMuMDcuNzcuMjMgMS4wNi41LjI1LjIzLjQ0LjUyLjYyLjc4bDEuMDctMS4wN2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2TDE0LjUgNS41N2wuMzguN2MuMDguMTYuMTguMjQuMzguM2guMTlsLjEtLjA3LjIzLS4yM2EuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0uMDMuMDNjLS4xNy4xNy0uNC40LS42OS41NWExLjc4IDEuNzggMCAwIDEtMS4yLjEyIDIuMDIgMi4wMiAwIDAgMS0xLjM4LTEuMWwtLjE0LS4yNi0xLjA2IDEuMDZhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjM1LTEuMzVhMy4wMSAzLjAxIDAgMCAwLS4xNC0uMiAzLjM0IDMuMzQgMCAwIDAtLjQyLS41Ni40Mi40MiAwIDAgMC0uMjItLjFjLS4xNS4wMS0uMzcuMS0uNy4zNGEuNzUuNzUgMCAwIDEtLjktMS4yWk01LjQgMTYuM0g2YzEuNC0uMSAyLjgtLjcgMy45LTIgLjMtLjQuMi0uOC0uMS0xLjEtLjMtLjItLjgtLjItMS4yLjEtLjkuNy0xLjkgMS40LTMuMSAxLjQtLjYgMC0xLjItLjUtMS4zLTEuMS0uMS0uNSAwLTEuMS4yLTEuNiAxLjYuMSAzLjgtLjEgNC44LTEuMy44LS45IDEtMi40IDAtMy4zLS40LS40LS45LS41LTEuNC0uNS0uOSAwLTEuOC41LTIuNiAxLjMtMS4zIDEuMy0yLjYgMy41LTIuNCA1LjYuMSAxLjUgMS40IDIuNCAyLjYgMi41Wm0uOC03LjFjLjYtLjUgMS4xLS44IDEuNi0uOC4yIDAgLjUuMS42LjMuMi4zIDAgLjgtLjIgMS0uNS41LTEuOC44LTMgLjguMy0uNS42LS45IDEtMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgTWF0aEZvcm1hdFByb2Zlc3Npb25hbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWF0aEZvcm1hdFByb2Zlc3Npb25hbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuODUgNC4zNWMuMi0uMTkuMjUtLjI0LjM1LS4zYS45LjkgMCAwIDEgLjkyLjE3Yy4wNy4wNC4xMy4xLjIuMjFsLjEuMTcuMDEuMDMuMTQuMjIuMy41NHYuMDNsLTEuNzIgMS43M2EuNS41IDAgMCAwIC43LjdsMS41Ni0xLjU1LjE3LjI4LjE4LjI5LjExLjE4Yy4xLjE2LjIzLjM2LjM4LjVhMS42IDEuNiAwIDAgMCAyIC4yOGMuMjYtLjEzLjQtLjI4LjU5LS40NmwuMDEtLjAyYS41LjUgMCAxIDAtLjctLjcgMS4yOCAxLjI4IDAgMCAxLS40My4zM2MtLjEzLjEtLjQ2LjE3LS43Ny0uMTNhOC4wOCA4LjA4IDAgMCAxLS44MS0xLjI4bDEuNzEtMS43MmEuNS41IDAgMCAwLS43LS43TDEzLjYgNC42OGE3LjY2IDcuNjYgMCAwIDEtLjItLjM2IDMuNDIgMy40MiAwIDAgMS0uMTEtLjJsLS4wMi0uMDJhNS4yOSA1LjI5IDAgMCAwLS4xMi0uMmMtLjEtLjE3LS4yNS0uMzYtLjQ3LS41YTEuOSAxLjkgMCAwIDAtMS45MS0uMjVjLS4yOC4xNC0uNDMuMjktLjYyLjQ4bC0uMDEuMDJhLjUuNSAwIDAgMCAuNy43Wk04LjMxIDdjLjQ2IDAgLjg4LjIzIDEuMTguNTQuMy4zMi41Ljc1LjUgMS4yNC4wNy43Ny0uMiAxLjQtLjY3IDEuODYtLjQ1LjQ2LTEuMDcuNzYtMS43Ljk2LTEuMTcuMzctMi41Mi40NC0zLjQyLjQxYTMuNTQgMy41NCAwIDAgMC0uMiAxLjYgMS40NiAxLjQ2IDAgMCAwIC41Mi45NGMuMjcuMjcuNi4zNSAxLjEuNDYgMS4zNC4xNiAyLjY0LS42MSAzLjQ2LTEuNzJhLjUuNSAwIDAgMSAuOC42Yy0uOTUgMS4zLTIuNiAyLjM0LTQuNCAyLjFINS40Yy0uNDYtLjEtMS4wOC0uMjMtMS41OC0uNzMtLjQyLS4zOC0uNy0uODctLjgtMS40OWE0LjU2IDQuNTYgMCAwIDEgLjI1LTIuMTNsLjEzLS4zNWEuNS41IDAgMCAxIC4wMi0uMDR2LS4wMmMuMDctLjIuNDQtMS4yMyAxLjItMi4yMy43NS0xIDEuOTYtMi4wNSAzLjY5LTJabS0zLjcyIDQuMDJjLjggMCAxLjg0LS4xIDIuNzItLjM3LjU1LS4xOCAxLS40MSAxLjMtLjcxQTEuMzIgMS4zMiAwIDAgMCA5IDguOGMwLS4yLS4xLS40MS0uMjQtLjU3QS42Ny42NyAwIDAgMCA4LjMgOGgtLjAyYy0xLjI2LS4wNC0yLjIuNzEtMi44NyAxLjYtLjM4LjUtLjY1IDEuMDQtLjgyIDEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBNYXRoRm9ybXVsYUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXRoRm9ybXVsYUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjkxIDMuNTRjLjMtLjA0LjQ4LS4wMy42MiAwIC4xNC4wMi4yOC4wOC40OC4yYS43NS43NSAwIDEgMCAuNzgtMS4yOGMtLjMtLjE4LS42LS4zMi0uOTctLjRhMy4zIDMuMyAwIDAgMC0xLjEzIDBoLS4wMWMtLjguMTMtMS40My41NS0xLjg2IDEuMTZhNC4yMyA0LjIzIDAgMCAwLS42NyAyLjE4di4wM2E4LjU1IDguNTUgMCAwIDEtLjAyLjM2YzAgLjIyLS4wMi41Mi0uMDQuODd2LjA5SDQuOGEuNzUuNzUgMCAwIDAgMCAxLjVINmE4NjQuNTEgODY0LjUxIDAgMCAxLS4zNSA1LjQ5Yy0uMSAxLjI4LS4yMiAyLjE0LTEuMDMgMi42MS0uNC4yMy0xLjAxLjIxLTEuNjgtLjEyYS43NS43NSAwIDEgMC0uNjggMS4zNGMuOTMuNDYgMi4xMS42NSAzLjExLjA4IDEuNTQtLjkgMS42OC0yLjU1IDEuNzctMy42N3YtLjEyYy4wNy0uNzcuMjMtMy40Ni4zNi01LjYxaDEuOGEuNzUuNzUgMCAxIDAgMC0xLjVINy41OGwuMDctMS4zMmMuMDQtLjYuMi0xLjA1LjQtMS4zNS4yLS4yOC40Ny0uNDcuODYtLjU0Wm03Ljg3IDYuNzRhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi41OCAyLjU4YTM2LjIyIDM2LjIyIDAgMCAxLS43Ni0xLjM2bC0uMDctLjExYy0uMTUtLjI1LS4zOC0uNjEtLjY2LS44N2ExLjYgMS42IDAgMCAwLS43NC0uNCAxLjU1IDEuNTUgMCAwIDAtMS4xLjE4bC0uMDMuMDJjLS4wOC4wNi0uMTguMTMtLjI4LjIzbC0uMTMuMTUtLjAyLjAzLS4xNy4xOWEuNzUuNzUgMCAwIDAgMS4xNC45OGwuMTctLjIuMDItLjAzLjA3LS4wNy4wMS0uMDEuMDQuMDNhNy44IDcuOCAwIDAgMSAuNDcuNjZjLjEyLjI0LjQ5LjkuOTQgMS42N2wtMi44MiAyLjgzYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi42Ni0yLjY2YTM4LjQ3IDM4LjQ3IDAgMCAxIC44NyAxLjU0Yy4xMy4yMi4zNS42LjY0Ljg3LjE4LjE3LjQyLjM0LjczLjQyYTEuNiAxLjYgMCAwIDAgMS4wNi0uMWMuMzUtLjE3LjU3LS40LjgtLjc3YS43NS43NSAwIDAgMC0xLjI4LS43OS45NS45NSAwIDAgMS0uMTMuMThsLS4wMy4wMi0uMDMuMDEtLjAzLS4wMWEuMzguMzggMCAwIDEtLjA2LS4wNSA2LjAxIDYuMDEgMCAwIDEtLjM2LS41MmwtLjA2LS4xYy0uMTItLjIzLS41My0uOTYtMS4wMi0xLjhsMi43NC0yLjc0Wm0tNi4xOC4yNFptMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgTWF0aEZvcm11bGFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01hdGhGb3JtdWxhUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjY4IDMuMDljLS4xOC0uMDQtLjQtLjA0LS43IDAtLjUyLjA4LS44Ny4zMy0xLjEyLjY4LS4yNi4zNy0uNDEuODctLjQ2IDEuNDUgMCAuMi0uMDQuODctLjA5IDEuNzhIOS41YS41LjUgMCAwIDEgMCAxSDcuMjZjLS4xMyAyLjI1LS4zIDUuMTUtLjM2IDUuOTR2LjA3Yy0uMDUuNTctLjExIDEuMjUtLjMxIDEuODgtLjIxLjY3LS42IDEuMy0xLjMzIDEuNzQtMS4wMi42My0yLjEzLjM0LTIuOTgtLjA4YS41LjUgMCAxIDEgLjQ0LS45Yy43NS4zOCAxLjQ0LjQ5IDIuMDIuMTN2LS4wMWMuNDctLjI3LjczLS42OC45LTEuMTguMTYtLjUyLjItMS4xLjI2LTEuN3YtLjAzYy4wNi0uOC4yMy0zLjY0LjM2LTUuODZINC41YS41LjUgMCAxIDEgMC0xaDEuODFhNzUuOTYgNzUuOTYgMCAwIDAgLjEtMS44NGMuMDUtLjcuMjQtMS40LjYzLTEuOTYuNC0uNTcgMS0uOTcgMS43OC0xLjEuNC0uMDUuNzMtLjA1IDEuMDUuMDEuMzMuMDYuNi4yLjg5LjM2YS41LjUgMCAwIDEtLjUyLjg2Yy0uMjItLjEzLS4zOS0uMi0uNTYtLjI0Wm03LjE3IDYuMDZjLjIuMi4yLjUgMCAuN2wtMy4yMiAzLjIyYTE2Mi41IDE2Mi41IDAgMCAwIDEuNCAyLjQ3bC4wNC4wN2MuMDYuMTIuMTEuMi4xNS4yNS4wNi4wOS4xMi4xNS4yNS4yMi4yMS4wMy4yOC0uMDEuMy0uMDNhMy41NiAzLjU2IDAgMCAwIC4yMy0uMjdsLjEtLjEzYS41LjUgMCAwIDEgLjguNmwtLjA2LjA4Yy0uMTEuMTYtLjI4LjM5LS41LjU0LS4zMS4yMi0uNjkuMjctMS4xNC4xN2ExLjY5IDEuNjkgMCAwIDEtLjc5LS42Yy0uMDgtLjEtLjE0LS4yMi0uMi0uMzNsLS4wNS0uMDgtLjE5LS4zMi0xLjA3LTEuOS0zLjA1IDMuMDRhLjUuNSAwIDAgMS0uNy0uN2wzLjI0LTMuMjVhMTQ5Ljk0IDE0OS45NCAwIDAgMC0xLjQ3LTIuNTcgMS4xNCAxLjE0IDAgMCAwLS4zMi0uMzJjLS4wNy0uMDItLjEyLS4wMS0uMjEuMDQtLjEyLjA4LS4yNS4yMS0uMzkuNGEuNS41IDAgMSAxLS44LS42Yy4xNi0uMi4zOC0uNDcuNjYtLjY1YTEuMjEgMS4yMSAwIDAgMSAxLjE2LS4xYy4zLjE2LjUzLjQuNy42M2ExMzEuNzQgMTMxLjc0IDAgMCAxIDEuNCAyLjQ0bDMuMDMtMy4wMmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1hdGhTeW1ib2xzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01hdGhTeW1ib2xzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgNS4yNXYyYS43NS43NSAwIDAgMCAxLjUgMHYtMmgyYS43NS43NSAwIDAgMCAwLTEuNWgtMnYtMmEuNzUuNzUgMCAwIDAtMS41IDB2MmgtMmEuNzUuNzUgMCAwIDAgMCAxLjVoMlpNMTEgNC41YzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41QS43NS43NSAwIDAgMSAxMSA0LjVabS04Ljc4IDYuNzggMi4yMiAyLjIyLTIuMjIgMi4yMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuMjItMi4yMiAyLjIyIDIuMjJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw2LjU2IDEzLjVsMi4yMi0yLjIyYS43NS43NSAwIDEgMC0xLjA2LTEuMDZMNS41IDEyLjQ0bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNlptOS41MyAxLjQ3YS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVaTTE1LjUgMTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMSA2YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1hdGhTeW1ib2xzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNYXRoU3ltYm9sc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA1djIuNWEuNS41IDAgMCAwIDEgMFY1aDIuNWEuNS41IDAgMCAwIDAtMUg2VjEuNWEuNS41IDAgMCAwLTEgMFY0SDIuNWEuNS41IDAgMCAwIDAgMUg1Wm02LS41YzAtLjI4LjIyLS41LjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41Wk04Ljg1IDE2LjE1IDYuMjEgMTMuNWwyLjY0LTIuNjVhLjUuNSAwIDAgMC0uNy0uN0w1LjUgMTIuNzlsLTIuNjUtMi42NGEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1LTIuNjQgMi42NWEuNS41IDAgMCAwIC43LjdsMi42NS0yLjY0IDIuNjUgMi42NGEuNS41IDAgMCAwIC43LS43Wk0xMS41IDEzYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabTQtMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDZhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgTWF4aW1pemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWF4aW1pemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1LjI1QzMgNC4wMSA0IDMgNS4yNSAzaDkuNUMxNS45OSAzIDE3IDQgMTcgNS4yNXY5LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTkuNUM0LjAxIDE3IDMgMTYgMyAxNC43NXYtOS41Wm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djkuNWMwIC40MS4zNC43NS43NS43NWg5LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTkuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgTWF4aW1pemVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01heGltaXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVabTItMWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lZXROb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVldE5vd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjkgMi4wM2E3LjA3IDcuMDcgMCAwIDAtMS4xNS41NGgtLjAydi4wMUw2IDNsLS4yOC0uNDJhLjUuNSAwIDAgMCAuNTYuODQgMS44NyAxLjg3IDAgMCAxIC4yMi0uMTNBOC4xIDguMSAwIDAgMSAxMCAyLjVhOC4xIDguMSAwIDAgMSAzLjUuNzkgMy42OSAzLjY5IDAgMCAxIC4yMi4xMmwuMjYtLjM5LS4yNi40YS41LjUgMCAxIDAgLjU2LS44NEwxNCAzbC4yOC0uNDJoLS4wMWwtLjAyLS4wMWEyLjgzIDIuODMgMCAwIDAtLjMtLjE3QTkuMSA5LjEgMCAwIDAgMTAgMS41YTkuMSA5LjEgMCAwIDAtMy4xLjUzWm0tLjYyIDEuMzlabTcuNDQgMFpNNi45IDE3Ljk3Yy43My4yNyAxLjguNTMgMy4xMS41M2E5LjEgOS4xIDAgMCAwIDMuOTYtLjkgNC42MyA0LjYzIDAgMCAwIC4yOS0uMTdoLjAydi0uMDFMMTQgMTdsLjI4LjQyYS41LjUgMCAwIDAtLjU2LS44NGwuMjYuNC0uMjYtLjRhMS43NCAxLjc0IDAgMCAxLS4yMi4xMyA4LjEgOC4xIDAgMCAxLTMuNS43OSA4LjEgOC4xIDAgMCAxLTMuNS0uNzkgMy42NiAzLjY2IDAgMCAxLS4yMi0uMTIuNS41IDAgMCAwLS41Ni44M0w2IDE3bC0uMjguNDJoLjAxbC4wMi4wMWEyLjY0IDIuNjQgMCAwIDAgLjMuMTdjLjE5LjEuNDguMjQuODQuMzdabS0uNjEtMS4zOVptNy40NCAwWk0yLjUgN3Y2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtNmEyIDIgMCAwIDAtMiAyWm0xMSA0LjU1IDIuNzggMi4yNmEuNzUuNzUgMCAwIDAgMS4yMi0uNTlWNi43OGEuNzUuNzUgMCAwIDAtMS4yMi0uNTlMMTMuNSA4LjQ1djMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lZXROb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01lZXROb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTEuMDNsMi44NCAxLjg1YS43NS43NSAwIDAgMCAxLjE2LS42M1Y2LjhjMC0uNi0uNjYtLjk1LTEuMTYtLjYzTDEzIDguMDNWN2EyIDIgMCAwIDAtMi0ySDVabTggNC4yMiAzLTEuOTV2NS40NmwtMy0xLjk1VjkuMjJaTTEyIDd2NmExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxWk02LjkgMi4wM2E3LjA3IDcuMDcgMCAwIDAtMS4xNS41NGgtLjAydi4wMUw2IDNsLS4yOC0uNDJhLjUuNSAwIDAgMCAuNTYuODQgMS44NyAxLjg3IDAgMCAxIC4yMi0uMTNBOC4xIDguMSAwIDAgMSAxMCAyLjVhOC4xIDguMSAwIDAgMSAzLjUuNzkgMy42OSAzLjY5IDAgMCAxIC4yMi4xMmwuMjYtLjM5LS4yNi40YS41LjUgMCAxIDAgLjU2LS44NEwxNCAzbC4yOC0uNDJoLS4wMWwtLjAyLS4wMWEyLjgzIDIuODMgMCAwIDAtLjMtLjE3QTkuMSA5LjEgMCAwIDAgMTAgMS41YTkuMSA5LjEgMCAwIDAtMy4xLjUzWm0tLjYyIDEuMzlabTcuNDQgMFpNNi45IDE3Ljk3Yy43My4yNyAxLjguNTMgMy4xMS41M2E5LjEgOS4xIDAgMCAwIDMuOTYtLjkgNC42MyA0LjYzIDAgMCAwIC4yOS0uMTdoLjAydi0uMDFMMTQgMTdsLjI4LjQyYS41LjUgMCAwIDAtLjU2LS44NGwuMjYuNC0uMjYtLjRhMS43NCAxLjc0IDAgMCAxLS4yMi4xMyA4LjEgOC4xIDAgMCAxLTMuNS43OSA4LjEgOC4xIDAgMCAxLTMuNS0uNzkgMy42NiAzLjY2IDAgMCAxLS4yMi0uMTIuNS41IDAgMCAwLS41Ni44M0w2IDE3bC0uMjguNDJoLjAxbC4wMi4wMWEyLjY0IDIuNjQgMCAwIDAgLjMuMTdjLjE5LjEuNDguMjQuODQuMzdabS0uNjEtMS4zOVptNy40NCAwWlwiXSk7XG5leHBvcnQgY29uc3QgTWVnYXBob25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01lZ2FwaG9uZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi4xMSAzLjM1QTEuNSAxLjUgMCAwIDEgMTggNC44djEwLjMxYzAgMS4wMy0xIDEuNzUtMS45NyAxLjQzbC00Ljc2LTEuNTlBMy4yNSAzLjI1IDAgMCAxIDUgMTMuNzV2LS44OWwtMS45Ny0uNjZBMS41IDEuNSAwIDAgMSAyIDEwLjc4VjguMjdjMC0uNjguNDYtMS4yOCAxLjExLTEuNDVsMTMtMy40N1pNNiAxMy4ydi41NmEyLjI1IDIuMjUgMCAwIDAgNC4zMi44OEw2IDEzLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBNZWdhcGhvbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01lZ2FwaG9uZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggNC44YzAtLjk4LS45My0xLjctMS44OS0xLjQ1bC0xMyAzLjQ3QTEuNSAxLjUgMCAwIDAgMiA4LjI3djIuNWMwIC42NS40MSAxLjIzIDEuMDMgMS40M2wxLjk3LjY2di44OWEzLjI1IDMuMjUgMCAwIDAgNi4yNyAxLjJsNC43NiAxLjU5QTEuNSAxLjUgMCAwIDAgMTggMTUuMVY0LjgxWm0tNy42OCA5LjgzQTIuMjUgMi4yNSAwIDAgMSA2IDEzLjc1di0uNTZsNC4zMiAxLjQ0Wm02LjA1LTEwLjMxYS41LjUgMCAwIDEgLjYzLjQ4djEwLjMxYS41LjUgMCAwIDEtLjY2LjQ4bC0xMy00LjM0YS41LjUgMCAwIDEtLjM0LS40N1Y4LjI3YS41LjUgMCAwIDEgLjM3LS40OGwxMy0zLjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgTWVnYXBob25lQ2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01lZ2FwaG9uZUNpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk03IDEyLjAybC0xLjE3LS40MmMtLjUtLjE3LS44My0uNjQtLjgzLTEuMTd2LS44NWMwLS41My4zMy0xIC44My0xLjE4bDYuNS0yLjMzYy44MS0uMjkgMS42Ny4zMiAxLjY3IDEuMTh2NS41YzAgLjg3LS44NiAxLjQ3LTEuNjcgMS4xOGwtMS4zOC0uNUEyIDIgMCAwIDEgNyAxM3YtLjk4Wm0zIDEuMDdBMSAxIDAgMCAxIDggMTN2LS42MmwyIC43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lZ2FwaG9uZUNpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVnYXBob25lQ2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm01IDIuMDItMS4xNy0uNDJjLS41LS4xNy0uODMtLjY0LS44My0xLjE3di0uODVjMC0uNTMuMzMtMSAuODMtMS4xOGw2LjUtMi4zM2MuODEtLjI5IDEuNjcuMzIgMS42NyAxLjE4djUuNWMwIC44Ny0uODYgMS40Ny0xLjY3IDEuMThsLTEuMzgtLjVBMiAyIDAgMCAxIDcgMTN2LS45OFptMyAxLjA3LTItLjdWMTNhMSAxIDAgMCAwIDIgLjFabTIuNjctNi4wNy02LjUgMi4zMmEuMjUuMjUgMCAwIDAtLjE3LjI0di44NWMwIC4xLjA3LjIuMTcuMjNsNi41IDIuMzNjLjE2LjA2LjMzLS4wNi4zMy0uMjR2LTUuNWMwLS4xNy0uMTctLjMtLjMzLS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1lZ2FwaG9uZUxvdWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVnYXBob25lTG91ZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC4xNiAxLjAzYy4yNi4wOC40LjM3LjMxLjYzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQtLjMybC41LTEuNWEuNS41IDAgMCAxIC42My0uMzFabTMuNyAxLjgyYS41LjUgMCAxIDAtLjcxLS43bC0yIDJhLjUuNSAwIDAgMCAuNy43bDItMlptLTEwLjI1LjNhMiAyIDAgMCAxIDMuMjYtLjUybDYuNTggNi45OGEyIDIgMCAwIDEtLjY0IDMuMmwtMy45NCAxLjc0YTMuNSAzLjUgMCAwIDEtNi4zNCAyLjhsLTEuMi41MmExLjUgMS41IDAgMCAxLTEuNjctLjNsLTEuMjItMS4yMmExLjUgMS41IDAgMCAxLS4zLTEuN2w1LjQ3LTExLjVabS0uMTYgMTMuNzhhMi41IDIuNSAwIDAgMCA0LjUtMS45N2wtNC41IDEuOTdaTTE3IDZhLjUuNSAwIDAgMCAwIDFoMS41YS41LjUgMCAxIDAgMC0xSDE3WlwiXSk7XG5leHBvcnQgY29uc3QgTWVnYXBob25lTG91ZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVnYXBob25lTG91ZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuMTYgMS4wM2MuMjYuMDguNC4zNy4zMS42M2wtLjUgMS41YS41LjUgMCAwIDEtLjk0LS4zMmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMtLjMxWm0zLjcgMS44MmEuNS41IDAgMSAwLS43MS0uN2wtMiAyYS41LjUgMCAwIDAgLjcuN2wyLTJabS0xMC4yNS4zYTIgMiAwIDAgMSAzLjI2LS41Mmw2LjU4IDYuOThhMiAyIDAgMCAxLS42NCAzLjJsLTMuOTQgMS43NGEzLjUgMy41IDAgMCAxLTYuMzQgMi44bC0xLjIuNTJhMS41IDEuNSAwIDAgMS0xLjY3LS4zbC0xLjIyLTEuMjJhMS41IDEuNSAwIDAgMS0uMy0xLjdsNS40Ny0xMS41Wm0tLjE2IDEzLjc4YTIuNSAyLjUgMCAwIDAgNC41LTEuOTdsLTQuNSAxLjk3Wm0yLjctMTMuNjFhMSAxIDAgMCAwLTEuNjQuMjVsLTUuNDYgMTEuNWEuNS41IDAgMCAwIC4xLjU3bDEuMjIgMS4yMWEuNS41IDAgMCAwIC41NS4xTDE2LjQgMTEuOWExIDEgMCAwIDAgLjMzLTEuNmwtNi41OS02Ljk4Wk0xNyA2YS41LjUgMCAwIDAgMCAxaDEuNWEuNS41IDAgMSAwIDAtMUgxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1lZ2FwaG9uZU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNZWdhcGhvbmVPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w1LjQ4IDYuMmwtMi4zNy42M0ExLjUgMS41IDAgMCAwIDIgOC4yN3YyLjVjMCAuNjUuNDEgMS4yMyAxLjAzIDEuNDNsMS45Ny42NnYuODlhMy4yNSAzLjI1IDAgMCAwIDYuMjcgMS4ybDQuNDYgMS40OSAxLjQyIDEuNDFhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTYgMTMuMTlsNC4zMiAxLjQ0QTIuMjUgMi4yNSAwIDAgMSA2IDEzLjc1di0uNTZabTEyIDEuOTJjMCAuMjMtLjA1LjQ0LS4xNC42M0w3LjcxIDUuNmw4LjQtMi4yNEExLjUgMS41IDAgMCAxIDE4IDQuOHYxMC4zMVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lZ2FwaG9uZU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVnYXBob25lT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDUuNDggNi4ybC0yLjM3LjYzQTEuNSAxLjUgMCAwIDAgMiA4LjI3djIuNWMwIC42NS40MSAxLjIzIDEuMDMgMS40M2wxLjk3LjY2di44OWEzLjI1IDMuMjUgMCAwIDAgNi4yNyAxLjJsNC40NiAxLjQ5IDEuNDIgMS40MWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptMTEuMyAxMi43LTEwLjgtMy42YS41LjUgMCAwIDEtLjM1LS40N1Y4LjI3YS41LjUgMCAwIDEgLjM3LS40OEw2LjMgN2w3Ljg1IDcuODZabS0zLjgzLS4yMkEyLjI1IDIuMjUgMCAwIDEgNiAxMy43NXYtLjU2bDQuMzIgMS40NFpNMTcgNC44djEwLjA4bC44Ni44NmMuMS0uMTkuMTQtLjQuMTQtLjYzVjQuODFjMC0xLS45My0xLjcxLTEuODktMS40Nkw3LjcxIDUuNmwuODIuODIgNy44NC0yLjFhLjUuNSAwIDAgMSAuNjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lbnRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVudGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxLjc1YzQuNTYgMCA4LjI1IDMuNyA4LjI1IDguMjUgMCAyLjgzLTEuMjIgNC43NS0zLjI1IDQuNzUtMS4yIDAtMi4xMi0uNjgtMi42Ny0xLjgyYTMuNSAzLjUgMCAwIDEtMi44MyAxLjMyYy0yLjMgMC0zLjc1LTEuODItMy43NS00LjI1IDAtMi40NiAxLjQxLTQuMjUgMy43NS00LjI1LjkgMCAxLjY2LjI2IDIuMjUuNzJhLjc1Ljc1IDAgMCAxIDEuNDktLjA4bC4wMS4xMVYxMGMwIDIuMS43MyAzLjI1IDEuNzUgMy4yNXMxLjc1LTEuMTUgMS43NS0zLjI1YTYuNzUgNi43NSAwIDEgMC00LjQ1IDYuMzUuNzUuNzUgMCAwIDEgLjUgMS40QTguMjMgOC4yMyAwIDAgMSAxLjc2IDEwYzAtNC41NiAzLjctOC4yNSA4LjI1LTguMjVabS0uNSA1LjVDOC4wOCA3LjI1IDcuMjUgOC4zIDcuMjUgMTBjMCAxLjY3Ljg3IDIuNzUgMi4yNSAyLjc1czIuMjUtMS4wOCAyLjI1LTIuNzVjMC0xLjctLjgzLTIuNzUtMi4yNS0yLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgTWVudGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVudGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4YzAgMi43LTEuMTQgNC41LTMgNC41LTEuMjMgMC0yLjE0LS43OC0yLjYyLTIuMDktLjYuOTgtMS42IDEuNTktMi44OCAxLjU5QzcuMzYgMTQgNiAxMi4zIDYgMTBjMC0yLjM0IDEuMzEtNCAzLjUtNCAxLjA1IDAgMS45LjM4IDIuNSAxLjA0VjYuNWEuNS41IDAgMCAxIDEtLjA5VjEwYzAgMi4yMi44MSAzLjUgMiAzLjVzMi0xLjI4IDItMy41YTcgNyAwIDEgMC00LjYyIDYuNTguNS41IDAgMCAxIC4zNC45NEE3Ljk5IDcuOTkgMCAwIDEgMiAxMGE4IDggMCAwIDEgOC04Wm0tLjUgNUM3LjkyIDcgNyA4LjE3IDcgMTBjMCAxLjguOTcgMyAyLjUgM3MyLjUtMS4yIDIuNS0zYzAtMS44My0uOTItMy0yLjUtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1lbnRpb25BcnJvd0Rvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWVudGlvbkFycm93RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuMTUgNy44NUEuNS41IDAgMCAwIDUuNSA4YS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDEgMC0uNy0uN0w2IDYuMjlWMy41YS41LjUgMCAwIDAtMSAwdjIuOEwzLjg1IDUuMTRhLjUuNSAwIDEgMC0uNy43bDIgMlptNy42LS4zOGEzLjUxIDMuNTEgMCAwIDAtMS45LS43IDUuNDYgNS40NiAwIDAgMS0uNiAxLjVjLjA5LS4wMi4xNy0uMDIuMjUtLjAyIDEuNDIgMCAyLjI1IDEuMDUgMi4yNSAyLjc1IDAgMS42Ny0uODcgMi43NS0yLjI1IDIuNzVTOC4yNSAxMi42NyA4LjI1IDExYzAtLjI4LjAyLS41My4wNi0uNzctLjQ3LjI4LTEgLjUtMS41Ni42M1YxMWMwIDIuNDMgMS40NiA0LjI1IDMuNzUgNC4yNSAxLjIgMCAyLjE3LS41IDIuODMtMS4zMi41NSAxLjE0IDEuNDcgMS44MiAyLjY3IDEuODIgMi4wMyAwIDMuMjUtMS45MiAzLjI1LTQuNzVhOC4yNSA4LjI1IDAgMCAwLTguOTctOC4yMmMuMjYuNDUuNDYuOTUuNTggMS40N0gxMUE2Ljc1IDYuNzUgMCAwIDEgMTcuNzUgMTFjMCAyLjEtLjczIDMuMjUtMS43NSAzLjI1UzE0LjI1IDEzLjEgMTQuMjUgMTFWNy40YS43NS43NSAwIDAgMC0xLjUuMDdabS05Ljk3IDIuODFjLjQ1LjI2Ljk1LjQ2IDEuNDcuNThWMTFhNi43NSA2Ljc1IDAgMCAwIDkuMDUgNi4zNS43NS43NSAwIDAgMSAuNSAxLjRBOC4yMyA4LjIzIDAgMCAxIDIuNzYgMTFsLjAzLS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lbnRpb25BcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01lbnRpb25BcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNNS4xNSA3Ljg1QS41LjUgMCAwIDAgNS41IDhhLjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMSAwLS43LS43TDYgNi4yOVYzLjVhLjUuNSAwIDAgMC0xIDB2Mi44TDMuODUgNS4xNGEuNS41IDAgMSAwLS43LjdsMiAyWm03Ljg1LjJBMy4yIDMuMiAwIDAgMCAxMC43OSA3Yy0uMS4zNS0uMjMuNjgtLjQgMUwxMC41IDhjMS41OCAwIDIuNSAxLjE3IDIuNSAzIDAgMS44LS45NyAzLTIuNSAzUzggMTIuOCA4IDExYzAtLjIyLjAxLS40Mi4wNC0uNjItLjMzLjE3LS42OC4zLTEuMDQuNDFWMTFjMCAyLjMgMS4zNiA0IDMuNSA0IDEuMjggMCAyLjI4LS42IDIuODgtMS41OS40OCAxLjMgMS40IDIuMDkgMi42MiAyLjA5IDEuODYgMCAzLTEuOCAzLTQuNWE4IDggMCAwIDAtOC41OS03Ljk4Yy4xNi4zMS4yOS42NC4zOC45OEgxMWE3IDcgMCAwIDEgNyA3YzAgMi4yMi0uODEgMy41LTIgMy41cy0yLTEuMjgtMi0zLjVWNy40MWEuNS41IDAgMCAwLTEgLjA5di41NFpNMy4wMiAxMC40Yy4zMS4xNi42NC4yOS45OC4zOFYxMWE3IDcgMCAwIDAgOS4zOCA2LjU4LjUuNSAwIDAgMSAuMzQuOTQgNy45OSA3Ljk5IDAgMCAxLTEwLjctOC4xWlwiXSk7XG5leHBvcnQgY29uc3QgTWVudGlvbkJyYWNrZXRzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01lbnRpb25CcmFja2V0c0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDJBMi43NSAyLjc1IDAgMCAwIDIgNC43NXYxMC41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE4aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjQuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wm03IDUuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjEwYTQgNCAwIDEgMC00LjI0IDQgNC4xIDQuMSAwIDAgMCAxLjI5LS4xM2MuMzUtLjEuNzUuMDUuODkuMzkuMTcuNDMtLjAzLjkzLS40NyAxLjA1QTUuNSA1LjUgMCAxIDEgMTUuNSAxMHYuNzRjMCAuNDYtLjE0Ljg4LS4zNyAxLjI0bC0uMTMuM3YtLjEzYTIuMjUgMi4yNSAwIDAgMS0zLjU4LS4xIDIuNSAyLjUgMCAxIDEtLjM3LTQuMzNjLjEtLjI4LjM4LS40OC43LS40OFpNMTAgOWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTgtNC4yNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgMmgtMS41YS43NS43NSAwIDAgMCAwIDEuNWgxLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2MTAuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41QTIuNzUgMi43NSAwIDAgMCAxOCAxNS4yNVY0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgTWVudGlvbkJyYWNrZXRzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNZW50aW9uQnJhY2tldHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MTFjMCAuODMuNjcgMS41IDEuNSAxLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEyLjUgMi41IDAgMCAxIDIgMTUuNXYtMTFBMi41IDIuNSAwIDAgMSA0LjUgMmgyYS41LjUgMCAwIDEgMCAxaC0yWm0xMSAxNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTExYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTggNC41djExYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMmEuNS41IDAgMCAxIDAtMWgyWm0tNC03YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWk0xMCA3LjVjLjU2IDAgMS4wOC4xOSAxLjUuNWEuNS41IDAgMCAxIDEgMHYyLjc1YS43NS43NSAwIDAgMCAxLjUgMFYxMGE0IDQgMCAxIDAtNC4yNCA0aC4wMmEzLjk5IDMuOTkgMCAwIDAgMS41OC0uMjNjLjMtLjEuNjQuMTEuNjQuNDMgMCAuMjMtLjE0LjQ1LS4zNi41M0E1IDUgMCAxIDEgMTUgMTB2Ljc1YTEuNzUgMS43NSAwIDAgMS0zLjIuOThBMi41IDIuNSAwIDAgMSA3LjUgMTAgMi41IDIuNSAwIDAgMSAxMCA3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNZXJnZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNZXJnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjc2YzEgMCAxLjk1LjQgMi42NSAxLjFsMi41IDIuNWMuNDEuNDEuOTkuNjUgMS41OC42NWgzLjJsLTIuOTctMi45N2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDQuMjUgNC4yNWMuMy4zLjMuNzcgMCAxLjA2bC00LjI1IDQuMjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwyLjk3LTIuOTdoLTMuMmMtLjYgMC0xLjE3LjI0LTEuNTkuNjZsLTIuNSAyLjVDNy40NiAxNC42IDYuNSAxNSA1LjUyIDE1SDMuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNzZjLjYgMCAxLjE3LS4yNCAxLjU5LS42NmwyLjUtMi41Yy4xMi0uMTIuMjUtLjIzLjQtLjM0LS4xNS0uMS0uMjgtLjIyLS40LS4zNWwtMi41LTIuNWMtLjQyLS40MS0xLS42NS0xLjYtLjY1SDMuNzZBLjc1Ljc1IDAgMCAxIDMgNS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1lcmdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNZXJnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVjMC0uMjguMjItLjUuNS0uNWgxLjY1YzEgMCAxLjk1LjQzIDIuNjIgMS4xN2wyLjIgMi41YTIuNSAyLjUgMCAwIDAgMS44OC44M2g0LjQ0bC0zLjY0LTMuNjVhLjUuNSAwIDAgMSAuNy0uN2w0LjUgNC41Yy4yLjIuMi41IDAgLjdsLTQuNSA0LjVhLjUuNSAwIDAgMS0uNy0uN2wzLjY0LTMuNjVoLTQuNDRjLS43MiAwLTEuNC4zLTEuODcuODRsLTIuMjEgMi40OUEzLjUgMy41IDAgMCAxIDUuMTUgMTVIMy41YS41LjUgMCAwIDEgMC0xaDEuNjVjLjcyIDAgMS40LS4zIDEuODctLjg0bDIuMjEtMi40OWMuMjQtLjI2LjUxLS40OS44MS0uNjdhMy41IDMuNSAwIDAgMS0uOC0uNjdsLTIuMjItMi41QTIuNSAyLjUgMCAwIDAgNS4xNSA2SDMuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTWljRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMTBhLjUuNSAwIDAgMC0xIDAgNS41IDUuNSAwIDAgMCA1IDUuNDh2Mi4wMmEuNS41IDAgMCAwIDEgMHYtMi4wMmMyLjgtLjI2IDUtMi42MSA1LTUuNDhhLjUuNSAwIDAgMC0xIDAgNC41IDQuNSAwIDEgMS05IDBabTcuNSAwYTMgMyAwIDAgMS02IDBWNWEzIDMgMCAwIDEgNiAwdjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMTNhMyAzIDAgMCAwIDMtM1Y1YTMgMyAwIDEgMC02IDB2NWEzIDMgMCAwIDAgMyAzWm0wLTFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDEgMSA0IDB2NWEyIDIgMCAwIDEtMiAyWk01IDkuNWMuMjggMCAuNS4yMi41LjVhNC41IDQuNSAwIDEgMCA5IDAgLjUuNSAwIDAgMSAxIDAgNS41IDUuNSAwIDAgMS01IDUuNDh2Mi4wMmEuNS41IDAgMCAxLTEgMHYtMi4wMmE1LjUgNS41IDAgMCAxLTUtNS40OGMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTWljT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY09mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyAxMGEzIDMgMCAwIDEtLjEuNzhMNyA0Ljg4QTMgMyAwIDAgMSAxMyA1djVaTTcgNy43VjEwYTMgMyAwIDAgMCA0Ljc0IDIuNDVsMS4wNyAxLjA3QTQuNSA0LjUgMCAwIDEgNS41IDEwYS41LjUgMCAwIDAtMS4wMSAwIDUuNSA1LjUgMCAwIDAgNSA1LjQ4djIuMDJhLjUuNSAwIDAgMCAxIDB2LTIuMDJhNS40OCA1LjQ4IDAgMCAwIDMuMDItMS4yNWwzLjYzIDMuNjJhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43TDcgNy43MVptNy44IDQuOThjLjQ1LS44LjctMS43LjctMi42OGEuNS41IDAgMCAwLTEgMGMwIC43LS4xNiAxLjM1LS40NCAxLjk0bC43NC43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY09mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiA1djQuODhsLjkuOUEzIDMgMCAwIDAgMTMgMTBWNWEzIDMgMCAwIDAtNi0uMTJsMSAxVjVhMiAyIDAgMSAxIDQgMFpNNyA3LjcgMi4xNSAyLjg2YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0zLjYzLTMuNjJhNS40OCA1LjQ4IDAgMCAxLTMuMDIgMS4yNXYyLjAyYS41LjUgMCAwIDEtMSAwdi0yLjAyYTUuNSA1LjUgMCAwIDEtNS01LjQ4LjUuNSAwIDAgMSAxIDAgNC41IDQuNSAwIDAgMCA3LjMgMy41MmwtMS4wNi0xLjA3QTMgMyAwIDAgMSA3IDEwVjcuN1ptNC4wMiA0LjAyTDggOC43MVYxMGEyIDIgMCAwIDAgMy4wMiAxLjcyWm0zLjc4Ljk2LS43NC0uNzRjLjI4LS41OS40NC0xLjI1LjQ0LTEuOTRhLjUuNSAwIDAgMSAxIDBjMCAuOTctLjI1IDEuODktLjcgMi42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY1Byb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjIgMTNBNS41MSA1LjUxIDAgMCAxIDEyIDkuNlY1YTMgMyAwIDEgMC02IDB2NWEzIDMgMCAwIDAgMy4yIDNabS4zIDQuNXYtLjdjLS4zMi0uNy0uNS0xLjQ4LS41LTIuM0E0LjUgNC41IDAgMCAxIDQuNSAxMGEuNS41IDAgMCAwLTEgMCA1LjUgNS41IDAgMCAwIDUgNS40OHYyLjAyYS41LjUgMCAwIDAgMSAwWm01IDEuNWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptMC04YTMuNSAzLjUgMCAwIDAtMi44IDUuNmw0LjktNC45YTMuNDggMy40OCAwIDAgMC0yLjEtLjdabS0yLjEgNi4zYTMuNSAzLjUgMCAwIDAgNC45LTQuOWwtNC45IDQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY1Byb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY1Byb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMTNoLjJjLjEyLS40LjI3LS43Ni40Ni0xLjExQTIgMiAwIDAgMSA3IDEwVjVhMiAyIDAgMSAxIDQgMHY1YzAgLjEgMCAuMTgtLjAyLjI3LjMxLS4yNi42Ni0uNDggMS4wMi0uNjdWNWEzIDMgMCAxIDAtNiAwdjVhMyAzIDAgMCAwIDMgM1ptLTQuNS0zQTQuNSA0LjUgMCAwIDAgOSAxNC41YzAgLjgyLjE4IDEuNi41IDIuM3YuN2EuNS41IDAgMCAxLTEgMHYtMi4wMmE1LjUgNS41IDAgMCAxLTUtNS40OC41LjUgMCAwIDEgMSAwWm0xMCA5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0wLThhMy41IDMuNSAwIDAgMC0yLjggNS42bDQuOS00LjlhMy40OCAzLjQ4IDAgMCAwLTIuMS0uN1ptLTIuMSA2LjNhMy41IDMuNSAwIDAgMCA0LjktNC45bC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgTWljUHVsc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljUHVsc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDEwYS41LjUgMCAwIDAtMSAwIDUuNSA1LjUgMCAwIDAgNSA1LjQ4djIuMDJhLjUuNSAwIDAgMCAxIDB2LS43Yy0uMzItLjctLjUtMS40OC0uNS0yLjNBNC41IDQuNSAwIDAgMSA0LjUgMTBaTTEyIDV2NC42QTUuNTEgNS41MSAwIDAgMCA5LjIgMTMgMy4wMiAzLjAyIDAgMCAxIDYgMTBWNWEzIDMgMCAwIDEgNiAwWm03IDkuNWE0LjUgNC41IDAgMSAwLTkgMCA0LjUgNC41IDAgMCAwIDkgMFptLTUuNTYtMmMuMjEgMCAuMzkuMTQuNDYuMzNsLjYzIDEuNzYuNTgtMS40NGEuNS41IDAgMCAxIC45LS4wNWwuNTggMS4wN0gxN2EuNS41IDAgMSAxIDAgMWgtLjcxYS41LjUgMCAwIDEtLjQ0LS4yN2wtLjIxLS4zOS0uNjggMS42OGEuNS41IDAgMCAxLS45My0uMDJsLS42NC0xLjgtLjIyLjVhLjUuNSAwIDAgMS0uNDYuM0gxMmEuNS41IDAgMCAxIDAtMWguMzhsLjU5LTEuMzdhLjUuNSAwIDAgMSAuNDctLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWNQdWxzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljUHVsc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMTNoLjJjLjEyLS40LjI3LS43Ni40Ni0xLjExQTIgMiAwIDAgMSA3IDEwVjVhMiAyIDAgMSAxIDQgMHY1YzAgLjEgMCAuMTgtLjAyLjI3LjMxLS4yNi42Ni0uNDggMS4wMi0uNjdWNWEzIDMgMCAxIDAtNiAwdjVhMyAzIDAgMCAwIDMgM1ptLTQuNS0zQTQuNSA0LjUgMCAwIDAgOSAxNC41YzAgLjgyLjE4IDEuNi41IDIuM3YuN2EuNS41IDAgMCAxLTEgMHYtMi4wMmE1LjUgNS41IDAgMCAxLTUtNS40OC41LjUgMCAwIDEgMSAwWk0xOSAxNC41YTQuNSA0LjUgMCAxIDAtOSAwIDQuNSA0LjUgMCAwIDAgOSAwWm0tNS41Ni0yYy4yMSAwIC4zOS4xNC40Ni4zM2wuNjMgMS43Ni41OC0xLjQ0YS41LjUgMCAwIDEgLjktLjA1bC41OCAxLjA3SDE3YS41LjUgMCAxIDEgMCAxaC0uNzFhLjUuNSAwIDAgMS0uNDQtLjI3bC0uMjEtLjM5LS42OCAxLjY4YS41LjUgMCAwIDEtLjkzLS4wMmwtLjY0LTEuOC0uMjIuNWEuNS41IDAgMCAxLS40Ni4zSDEyYS41LjUgMCAwIDEgMC0xaC4zOGwuNTktMS4zN2EuNS41IDAgMCAxIC40Ny0uM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY1B1bHNlT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY1B1bHNlT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNi43VjEwYTMgMyAwIDAgMCAzLjIgM2MuMjItLjc2LjU5LTEuNDQgMS4wNy0yLjAybC43MS43MWE0LjUgNC41IDAgMCAwIDYuMzcgNi4yOS41LjUgMCAwIDAgLjUtLjgzbC0xNS0xNWEuNS41IDAgMSAwLS43LjdMNiA2LjcxWm05LjExIDkuMTItLjE1LjM3YS41LjUgMCAwIDEtLjkzLS4wMmwtLjY0LTEuOC0uMjIuNWEuNS41IDAgMCAxLS40Ni4zSDEyYS41LjUgMCAwIDEgMC0xaC4zOGwuMzMtLjc2IDIuNCAyLjRabTMuNDUuNjJhNC41IDQuNSAwIDAgMC02LTZsNiA2Wk02LjE2IDQuMDRsNS42NiA1LjY2LjE4LS4xVjVhMyAzIDAgMCAwLTUuODQtLjk2Wk00LjUgMTBhLjUuNSAwIDAgMC0xIDAgNS41IDUuNSAwIDAgMCA1IDUuNDh2Mi4wMmEuNS41IDAgMCAwIDEgMHYtLjdjLS4zMi0uNy0uNS0xLjQ4LS41LTIuM0E0LjUgNC41IDAgMCAxIDQuNSAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY1B1bHNlT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWNQdWxzZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2LjdWMTBhMyAzIDAgMCAwIDMuMiAzYy4xMi0uNC4yNy0uNzYuNDYtMS4xMUEyIDIgMCAwIDEgNyAxMFY3LjdsMy45OCA0YTQuNSA0LjUgMCAwIDAgNi4zNyA2LjI5LjUuNSAwIDAgMCAuNS0uODRsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w2IDYuNzFabTkuMTEgOS4xMi0uMTUuMzdhLjUuNSAwIDAgMS0uOTMtLjAybC0uNjQtMS44LS4yMi41YS41LjUgMCAwIDEtLjQ2LjNIMTJhLjUuNSAwIDAgMSAwLTFoLjM4bC4zMy0uNzYgMi40IDIuNFpNMTEgNXYzLjg4bC44Mi44Mi4xOC0uMVY1YTMgMyAwIDAgMC01Ljg0LS45NmwuODQuODRBMiAyIDAgMCAxIDExIDVabTcuNTYgMTEuNDRhNC41IDQuNSAwIDAgMC02LTZsNiA2Wk00LjUgMTBBNC41IDQuNSAwIDAgMCA5IDE0LjVjMCAuODIuMTggMS42LjUgMi4zdi43YS41LjUgMCAwIDEtMSAwdi0yLjAyYTUuNSA1LjUgMCAwIDEtNS01LjQ4LjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWNSZWNvcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljUmVjb3JkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxMGEuNS41IDAgMCAwLTEgMCA1LjUgNS41IDAgMCAwIDUgNS40OHYyLjAyYS41LjUgMCAwIDAgMSAwdi0uN2MtLjMyLS43LS41LTEuNDgtLjUtMi4zQTQuNSA0LjUgMCAwIDEgNC41IDEwWk0xMiA1djQuNkE1LjUxIDUuNTEgMCAwIDAgOS4yIDEzIDMuMDIgMy4wMiAwIDAgMSA2IDEwVjVhMyAzIDAgMCAxIDYgMFptNSA5LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTggMGEzLjUgMy41IDAgMSAwIDcgMCAzLjUgMy41IDAgMCAwLTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY1JlY29yZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljUmVjb3JkUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDEzaC4yYy4xMi0uNC4yNy0uNzYuNDYtMS4xMUEyIDIgMCAwIDEgNyAxMFY1YTIgMiAwIDEgMSA0IDB2NWMwIC4xIDAgLjE4LS4wMi4yNy4zMS0uMjYuNjYtLjQ4IDEuMDItLjY3VjVhMyAzIDAgMSAwLTYgMHY1YTMgMyAwIDAgMCAzIDNabS00LjUtM0E0LjUgNC41IDAgMCAwIDkgMTQuNWMwIC44Mi4xOCAxLjYuNSAyLjN2LjdhLjUuNSAwIDAgMS0xIDB2LTIuMDJhNS41IDUuNSAwIDAgMS01LTUuNDguNS41IDAgMCAxIDEgMFpNMTcgMTQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiAwYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tOCAwYTMuNSAzLjUgMCAxIDAgNyAwIDMuNSAzLjUgMCAwIDAtNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgTWljU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTWljU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAxM2guMkE1LjUxIDUuNTEgMCAwIDEgMTIgOS42VjVhMyAzIDAgMSAwLTYgMHY1YTMgMyAwIDAgMCAzIDNabS00LjUtM0E0LjUgNC41IDAgMCAwIDkgMTQuNWMwIC44Mi4xOCAxLjYuNSAyLjN2LjdhLjUuNSAwIDAgMS0xIDB2LTIuMDJhNS41IDUuNSAwIDAgMS01LTUuNDguNS41IDAgMCAxIDEgMFptNy41NiAxLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTYtLjU1YTIgMiAwIDAgMSAxLjQ0LTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wm0yLjQ0IDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgTWljU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY1NldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDEzaC4yYy4xMi0uNC4yNy0uNzYuNDYtMS4xMUEyIDIgMCAwIDEgNyAxMFY1YTIgMiAwIDEgMSA0IDB2NWMwIC4xIDAgLjE4LS4wMi4yNy4zMS0uMjYuNjYtLjQ4IDEuMDItLjY3VjVhMyAzIDAgMSAwLTYgMHY1YTMgMyAwIDAgMCAzIDNabS00LjUtM0E0LjUgNC41IDAgMCAwIDkgMTQuNWMwIC44Mi4xOCAxLjYuNSAyLjN2LjdhLjUuNSAwIDAgMS0xIDB2LTIuMDJhNS41IDUuNSAwIDAgMS01LTUuNDguNS41IDAgMCAxIDEgMFptNy41NiAxLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTYtLjU1YTIgMiAwIDAgMSAxLjQ0LTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wm0yLjQ0IDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgTWljU3BhcmtsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWNTcGFya2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgOS41Yy4yOCAwIC41LjIyLjUuNWE0LjUgNC41IDAgMCAwIDUuNzggNC4zMSAxLjQyIDEuNDIgMCAwIDAgMS4wNC42OGMtLjU2LjI2LTEuMTguNDMtMS44Mi40OXYyLjAyYS41LjUgMCAwIDEtMSAwdi0yLjAyYTUuNSA1LjUgMCAwIDEtNS01LjQ4YzAtLjI4LjIyLS41LjUtLjVabTcuMSA0LjIyYS40Mi40MiAwIDAgMCAuOCAwbC4zNS0xLjA3YTIuMiAyLjIgMCAwIDEgMS40LTEuNGwxLjA3LS4zNWEuNDIuNDIgMCAwIDAgMC0uOGgtLjAybC0xLjA4LS4zNWEyLjIgMi4yIDAgMCAxLTEuNC0xLjRsLS4zNC0xLjA3YS40Mi40MiAwIDAgMC0uOCAwbC0uMzUgMS4wN2EyLjIgMi4yIDAgMCAxLTEuMzggMS40bC0xLjA3LjM1YS40Mi40MiAwIDAgMCAwIC44bDEuMDcuMzRhMi4yIDIuMiAwIDAgMSAxLjQgMS40bC4zNSAxLjA4Wk0xMi40OCA2Yy4xOCAwIC4zNS4wMy41Mi4xVjVhMyAzIDAgMSAwLTYgMHY1YTMgMyAwIDAgMCAzLjc4IDIuOSAxLjIgMS4yIDAgMCAwLS43NC0uN2wtMS4wOC0uMzZoLS4wMWExLjQyIDEuNDIgMCAwIDEgMC0yLjY4aC4wMWwxLjA4LS4zNmExLjIgMS4yIDAgMCAwIC43NC0uNzZsLjM1LTEuMDh2LS4wMUExLjQyIDEuNDIgMCAwIDEgMTIuNDkgNlptNS41NCA4Ljk2Ljc2LjI1aC4wMmEuMy4zIDAgMCAxIC4xNC40Ny4zLjMgMCAwIDEtLjE0LjFsLS43Ny4yNmExLjU4IDEuNTggMCAwIDAtMSAxbC0uMjQuNzZhLjMuMyAwIDAgMS0uNTggMGwtLjI0LS43N2ExLjU3IDEuNTcgMCAwIDAtMS0xbC0uNzctLjI1YS4zLjMgMCAwIDEtLjE0LS40Ni4zLjMgMCAwIDEgLjE0LS4xbC43Ny0uMjZhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41OCAxLjU4IDAgMCAwIDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1pY1NwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pY1NwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEzLjIzIDguMzUtLjM1LTEuMDdhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFpNMTAgMTQuNWMuNDUgMCAuODgtLjA2IDEuMjgtLjE5YTEuNDIgMS40MiAwIDAgMCAxLjA0LjY4Yy0uNTYuMjYtMS4xOC40My0xLjgyLjQ5djIuMDJhLjUuNSAwIDAgMS0xIDB2LTIuMDJhNS41IDUuNSAwIDAgMS01LTUuNDguNS41IDAgMCAxIDEgMCA0LjUgNC41IDAgMCAwIDQuNSA0LjVabTAtMS41YTMgMyAwIDAgMCAuNzgtLjEgMS4yIDEuMiAwIDAgMC0uNzQtLjdsLTEuMDgtLjM2aC0uMDFhMS40MiAxLjQyIDAgMCAxLS45My0xLjU3QTIuMDIgMi4wMiAwIDAgMSA4IDEwVjVhMiAyIDAgMSAxIDQgMHYxLjA4YTEuNDIgMS40MiAwIDAgMSAxIC4wMlY1YTMgMyAwIDEgMC02IDB2NWEzIDMgMCAwIDAgMyAzWm04LjAyIDEuOTYuNzYuMjVoLjAyYS4zLjMgMCAwIDEgMCAuNThsLS43Ny4yNWExLjU4IDEuNTggMCAwIDAtMSAxbC0uMjQuNzZhLjMuMyAwIDAgMS0uNTggMGwtLjI0LS43N2ExLjU4IDEuNTggMCAwIDAtMS0xbC0uNzctLjI1YS4zLjMgMCAwIDEgMC0uNTdsLjc3LS4yNWExLjU4IDEuNTggMCAwIDAgLjk4LTFsLjI1LS43NmEuMy4zIDAgMCAxIC41NyAwbC4yNS43N2ExLjU4IDEuNTggMCAwIDAgMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgTWljU3luY0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWNTeW5jRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxMGEuNS41IDAgMCAwLTEgMCA1LjUgNS41IDAgMCAwIDUgNS40OHYyLjAyYS41LjUgMCAwIDAgMSAwdi0uN2MtLjMyLS43LS41LTEuNDgtLjUtMi4zQTQuNSA0LjUgMCAwIDEgNC41IDEwWk0xMiA1djQuNkE1LjUxIDUuNTEgMCAwIDAgOS4yIDEzIDMuMDIgMy4wMiAwIDAgMSA2IDEwVjVhMyAzIDAgMCAxIDYgMFptLTIgOS41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWNTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWNTeW5jUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDEzaC4yYy4xMi0uNC4yNy0uNzYuNDYtMS4xMUEyIDIgMCAwIDEgNyAxMFY1YTIgMiAwIDEgMSA0IDB2NWMwIC4xIDAgLjE4LS4wMi4yNy4zMS0uMjYuNjYtLjQ4IDEuMDItLjY3VjVhMyAzIDAgMSAwLTYgMHY1YTMgMyAwIDAgMCAzIDNabS00LjUtM0E0LjUgNC41IDAgMCAwIDkgMTQuNWMwIC44Mi4xOCAxLjYuNSAyLjN2LjdhLjUuNSAwIDAgMS0xIDB2LTIuMDJhNS41IDUuNSAwIDAgMS01LTUuNDguNS41IDAgMCAxIDEgMFptNS41IDQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgTWljcm9zY29wZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWNyb3Njb3BlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMi41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjVWM2guNWMuMjggMCAuNS4yMi41LjV2MS41M0E2LjUgNi41IDAgMCAxIDEzLjk2IDE3aDIuNTRhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEgMC0xaDdBNS41IDUuNSAwIDAgMCAxMSA2LjAydjUuNDhhLjUuNSAwIDAgMS0uNS41SDEwdi41YTEuNSAxLjUgMCAwIDEtMyAwVjEyaC0uNWEuNS41IDAgMCAxLS41LS41di04YzAtLjI4LjIyLS41LjUtLjVIN3YtLjVaTTggMTJ2LjVhLjUuNSAwIDAgMCAxIDBWMTJIOFptLTIuNSAzYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWNyb3Njb3BlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWNyb3Njb3BlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDIuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41VjNoLjVjLjI4IDAgLjUuMjIuNS41djEuNTNBNi41IDYuNSAwIDAgMSAxMy45NiAxN2gyLjU0YS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxIDAtMWg3QTUuNSA1LjUgMCAwIDAgMTEgNi4wMnY1LjQ4YS41LjUgMCAwIDEtLjUuNUgxMHYuNWExLjUgMS41IDAgMCAxLTMgMFYxMmgtLjVhLjUuNSAwIDAgMS0uNS0uNXYtOGMwLS4yOC4yMi0uNS41LS41SDd2LS41Wk04IDEydi41YS41LjUgMCAwIDAgMSAwVjEySDhabS0xLTFoM1Y0SDd2N1ptLTEuNSA0YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWRpRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01pZGlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi41IDRhLjUuNSAwIDAgMC0uNS41djExYzAgLjI4LjIyLjUuNS41aDE1YS41LjUgMCAwIDAgLjUtLjV2LTExYS41LjUgMCAwIDAtLjUtLjVoLTE1Wm0uNSA2aDJ2My41YS41LjUgMCAwIDAgMSAwVjEwaDJ2My41YS41LjUgMCAwIDAgMSAwVjEwaDJ2My41YS41LjUgMCAwIDAgMSAwVjEwaDJ2My41YS41LjUgMCAwIDAgMSAwVjEwaDJ2NUgzdi01Wm0yLjc1LTIuNWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVabTYuMjUtMWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptLTMgLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNaWRpUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNaWRpUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi41IDZhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNNS43NSA3LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05IDYuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMiA0LjVjMC0uMjguMjItLjUuNS0uNWgxNWMuMjggMCAuNS4yMi41LjV2MTFhLjUuNSAwIDAgMS0uNS41aC0xNWEuNS41IDAgMCAxLS41LS41di0xMVpNMyA1djRoMTRWNUgzWm01IDVINnYzLjVhLjUuNSAwIDAgMS0xIDBWMTBIM3Y1aDE0di01aC0ydjMuNWEuNS41IDAgMCAxLTEgMFYxMGgtMnYzLjVhLjUuNSAwIDAgMS0xIDBWMTBIOXYzLjVhLjUuNSAwIDAgMS0xIDBWMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBNb2JpbGVPcHRpbWl6ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9iaWxlT3B0aW1pemVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMUg0VjIuNWMwLS4yOC4yMi0uNS41LS41Wm0xMSAwYy4yOCAwIC41LjIyLjUuNVY0aDEuNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVabS0xMSAxNmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMCAwIDFINHYxLjVjMCAuMjguMjIuNS41LjVabTExIDBhLjUuNSAwIDAgMCAuNS0uNVYxNmgxLjVhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVaTTYgNmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjZabTIgMi41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wm0wIDJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBNb2JpbGVPcHRpbWl6ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vYmlsZU9wdGltaXplZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyLjVhLjUuNSAwIDAgMC0xIDBWNEgyLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIC41LS41di0yWm0xMSAwYS41LjUgMCAwIDAtMSAwdjJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUgxNlYyLjVaTTcgNWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDdabTAgMWg2djhIN1Y2Wk00LjUgMThhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAgMCAxSDR2MS41YzAgLjI4LjIyLjUuNS41Wm0xMSAwYS41LjUgMCAwIDAgLjUtLjVWMTZoMS41YS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41Wm0tNy0xMGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0wIDJhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9sZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyAxYy4yOCAwIC41LjIyLjUuNXYxLjUxYTMuOCAzLjggMCAwIDEgMiAuNzhsMS42NS0xLjY0YS41LjUgMCAwIDEgLjcuN0wxNi4yMSA0LjVjLjQ2LjYuNzIgMS4zLjc4IDIuMDFoMS41MWEuNS41IDAgMCAxIDAgMWgtMS41NmEzLjggMy44IDAgMCAxLTEuMDYgMmwtMS4zMyAxLjM0IDEuMyAxLjNhLjUuNSAwIDAgMS0uNy43MWwtMS4zMS0xLjMtMi4zIDIuMjkgMS4zMSAxLjNhLjUuNSAwIDAgMS0uNy43MWwtMS4zMS0xLjMtMS4zNCAxLjMzYTMuOCAzLjggMCAwIDEtMiAxLjA2djEuNTZhLjUuNSAwIDAgMS0xIDB2LTEuNTFhMy44IDMuOCAwIDAgMS0yLS43OGwtMS42NSAxLjY1YS41LjUgMCAwIDEtLjctLjcxbDEuNjQtMS42NEEzLjggMy44IDAgMCAxIDMgMTMuNUgxLjVhLjUuNSAwIDAgMSAwLTFoMS41NmEzLjggMy44IDAgMCAxIDEuMDYtMmwxLjMzLTEuMzQtMS4zLTEuM2EuNS41IDAgMSAxIC43LS43MWwxLjMxIDEuMyAyLjMtMi4yOS0xLjMxLTEuM2EuNS41IDAgMSAxIC43LS43MWwxLjMxIDEuMyAxLjM0LTEuMzNhMy44IDMuOCAwIDAgMSAyLTEuMDZWMS41YzAtLjI4LjIyLS41LjUtLjVaTTYuNzUgMTRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xNCA2Ljc1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNb2xkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb2xkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDEuNWEuNS41IDAgMCAwLTEgMHYxLjU2YTMuOCAzLjggMCAwIDAtMiAxLjA2TDkuMTYgNS40NWwtMS4zLTEuM2EuNS41IDAgMSAwLS43MS43bDEuMyAxLjMxLTIuMjkgMi4zLTEuMy0xLjMxYS41LjUgMCAxIDAtLjcxLjdsMS4zIDEuMzEtMS4zMyAxLjM0YTMuOCAzLjggMCAwIDAtMS4wNiAySDEuNWEuNS41IDAgMCAwIDAgMWgxLjUxYy4wNi43MS4zMiAxLjQxLjc4IDJsLTEuNjUgMS42NWEuNS41IDAgMSAwIC43MS43bDEuNjQtMS42NGMuNi40NiAxLjMuNzIgMi4wMS43OHYxLjUxYS41LjUgMCAwIDAgMSAwdi0xLjU2YTMuOCAzLjggMCAwIDAgMi0xLjA2bDEuMzQtMS4zMyAxLjMgMS4zYS41LjUgMCAwIDAgLjcxLS43bC0xLjMtMS4zMSAyLjI5LTIuMyAxLjMgMS4zMWEuNS41IDAgMCAwIC43MS0uN2wtMS4zLTEuMzEgMS4zMy0xLjM0YTMuOCAzLjggMCAwIDAgMS4wNi0yaDEuNTZhLjUuNSAwIDAgMCAwLTFoLTEuNTFhMy44IDMuOCAwIDAgMC0uNzgtMmwxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN0wxNS41IDMuNzlBMy44IDMuOCAwIDAgMCAxMy41IDNWMS41Wk00IDEzLjI0di0uMWMuMDEtLjcuMjktMS40LjgyLTEuOTRsNi4zOC02LjM4YTIuOCAyLjggMCAwIDEgMy45OCAzLjk4bC02LjM5IDYuMzhBMi44IDIuOCAwIDAgMSA0IDEzLjI0Wm0yLjc1Ljc2YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTQgNi43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTW9sZWN1bGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9sZWN1bGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNmE0IDQgMCAwIDEtNy4zMyAyLjIybC0xLjY2Ljg0YTMuNDkgMy40OSAwIDAgMSAuODIgMy41bDIuNyAxLjRhMi41IDIuNSAwIDEgMS0uNDQuODlsLTIuNy0xLjM4QTMuNSAzLjUgMCAxIDEgNy4xIDguMzlsMi4xMy0xLjA2QTQgNCAwIDEgMSAxNyA2WlwiXSk7XG5leHBvcnQgY29uc3QgTW9sZWN1bGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbGVjdWxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMyAxMGE0IDQgMCAxIDAtMy43Ny0yLjY3TDcuMSA4LjM5YTMuNSAzLjUgMCAxIDAgMS4zIDUuMDhsMi42OSAxLjM4YTIuNSAyLjUgMCAxIDAgLjQ0LS45bC0yLjctMS4zOGEzLjUgMy41IDAgMCAwLS44Mi0zLjUxbDEuNjYtLjg0QTQgNCAwIDAgMCAxMyAxMFptMC0xYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlptLTcuNSA1YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1Wm05LjUgMS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgTW9uZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9uZXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk02IDV2MWEyIDIgMCAwIDEtMiAySDNWN2gxYTEgMSAwIDAgMCAxLTFWNWgxWm0zIDUuNzVhMS43NSAxLjc1IDAgMSAxIDAtMy41IDEuNzUgMS43NSAwIDAgMSAwIDMuNVpNMyAxMXYtMWgxYTIgMiAwIDAgMSAyIDJ2MUg1di0xYTEgMSAwIDAgMC0xLTFIM1ptMTEgMGExIDEgMCAwIDAtMSAxdjFoLTF2LTFjMC0xLjEuOS0yIDItMmgxdjFoLTFabTAtNGgxdjFoLTFhMiAyIDAgMCAxLTItMlY1aDF2MWExIDEgMCAwIDAgMSAxWm0zIDUuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVINC4wOWMuMi41OC43NiAxIDEuNDEgMWg5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNWMwLS42NS0uNDItMS4yLTEtMS40MXY2LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgTW9uZXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbmV5UmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDlhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0yLTFhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTMgNS41YzAtLjI4LjIyLS41LjUtLjVINXYxYTEgMSAwIDAgMS0xIDFIM1Y1LjVaTTMgOGgxYTIgMiAwIDAgMCAyLTJWNWg2djFjMCAxLjEuOSAyIDIgMmgxdjJoLTFhMiAyIDAgMCAwLTIgMnYxSDZ2LTFhMiAyIDAgMCAwLTItMkgzVjhabTEwLTNoMS41Yy4yOCAwIC41LjIyLjUuNVY3aC0xYTEgMSAwIDAgMS0xLTFWNVptMiA2djEuNWEuNS41IDAgMCAxLS41LjVIMTN2LTFhMSAxIDAgMCAxIDEtMWgxWk01IDEzSDMuNWEuNS41IDAgMCAxLS41LS41VjExaDFhMSAxIDAgMCAxIDEgMXYxWm0xMi0uNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVINC4wOWMuMi41OC43NiAxIDEuNDEgMWg5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNWMwLS42NS0uNDItMS4yLTEtMS40MXY2LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgTW9uZXlDYWxjdWxhdG9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbmV5Q2FsY3VsYXRvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDExYy44MyAwIDEuNS42NyAxLjUgMS41VjhoLTNhMiAyIDAgMCAwLTIgMnYzSDMuNUExLjUgMS41IDAgMCAxIDIgMTEuNXYtN1pNNCA3YTIgMiAwIDAgMCAyLTJWNEg1djFhMSAxIDAgMCAxLTEgMUgzdjFoMVptMy4yNSAxYTEuNzUgMS43NSAwIDEgMCAzLjUgMCAxLjc1IDEuNzUgMCAwIDAtMy41IDBaTTMgOXYxaDFhMSAxIDAgMCAxIDEgMXYxaDF2LTFhMiAyIDAgMCAwLTItMkgzWm0xMi0yVjZoLTFhMSAxIDAgMCAxLTEtMVY0aC0xdjFjMCAxLjEuOSAyIDIgMmgxWm0yIDFWNS4wOWMuNTguMiAxIC43NiAxIDEuNDFWOGgtMVptLTYgNnYxSDUuNWExLjUgMS41IDAgMCAxLTEuNDEtMUgxMVptMi41LTVjLS44MyAwLTEuNS42Ny0xLjUgMS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00Wm0wIDRoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVptMyAwaDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFabS0zIDJoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVptMyAwaDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFabS0zIDJoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVptMyAwaDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFaTTEzIDEwLjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtNGEuNS41IDAgMCAxLS41LS41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgTW9uZXlDYWxjdWxhdG9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb25leUNhbGN1bGF0b3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRaTTggOGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaTTIgNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjVWOGgtMVY3aC0xYTIgMiAwIDAgMS0yLTJWNEg2djFhMiAyIDAgMCAxLTIgMkgzdjJoMWEyIDIgMCAwIDEgMiAydjFoNXYxSDMuNUExLjUgMS41IDAgMCAxIDIgMTEuNXYtN1pNMy41IDRhLjUuNSAwIDAgMC0uNS41VjZoMWExIDEgMCAwIDAgMS0xVjRIMy41Wm0xMSAwSDEzdjFhMSAxIDAgMCAwIDEgMWgxVjQuNWEuNS41IDAgMCAwLS41LS41Wm0tMTEgOEg1di0xYTEgMSAwIDAgMC0xLTFIM3YxLjVjMCAuMjguMjIuNS41LjVaTTE3IDhWNS4wOWMuNTguMiAxIC43NiAxIDEuNDFWOGgtMVptLTYgNnYxSDUuNWExLjUgMS41IDAgMCAxLTEuNDEtMUgxMVptMi41LTVjLS44MyAwLTEuNS42Ny0xLjUgMS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00Wm0wIDRoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVptMyAwaDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFabS0zIDJoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVptMyAwaDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFabS0zIDJoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVptMyAwaDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFaTTEzIDEwLjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtNGEuNS41IDAgMCAxLS41LS41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgTW9uZXlEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbmV5RGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoNS41MkE1LjUgNS41IDAgMCAxIDE2IDkuMlY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpNNiA2YTIgMiAwIDAgMS0yIDJIM1Y3aDFhMSAxIDAgMCAwIDEtMVY1aDF2MVptMyA0Ljc1YTEuNzUgMS43NSAwIDEgMSAwLTMuNSAxLjc1IDEuNzUgMCAwIDEgMCAzLjVaTTMgMTF2LTFoMWEyIDIgMCAwIDEgMiAydjFINXYtMWExIDEgMCAwIDAtMS0xSDNabTEwLTVhMSAxIDAgMCAwIDEgMWgxdjFoLTFhMiAyIDAgMCAxLTItMlY1aDF2MVptLTguOTEgOWg0LjkzYy4wMy4zNC4xLjY4LjE5IDFINS41YTEuNSAxLjUgMCAwIDEtMS40MS0xWk0xOCA3LjV2Mi43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjYuMDljLjU4LjIgMSAuNzYgMSAxLjQxWm0xIDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjggMCAxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBNb25leURpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbmV5RGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA5YTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFptMi0xYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDUuNTJjLjAzLS4zNC4xLS42OC4xOS0xSDZ2LTFhMiAyIDAgMCAwLTItMkgzVjhoMWEyIDIgMCAwIDAgMi0yVjVoNnYxYzAgMS4xLjkgMiAyIDJoMXYxLjAyYy4zNC4wMy42OC4xIDEgLjE5VjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk0zIDUuNWMwLS4yOC4yMi0uNS41LS41SDV2MWExIDEgMCAwIDEtMSAxSDNWNS41Wk0xMyA1aDEuNWMuMjggMCAuNS4yMi41LjVWN2gtMWExIDEgMCAwIDEtMS0xVjVabS04IDhIMy41YS41LjUgMCAwIDEtLjUtLjVWMTFoMWExIDEgMCAwIDEgMSAxdjFabS0uOTEgMmg0LjkzYy4wMy4zNC4xLjY4LjE5IDFINS41YTEuNSAxLjUgMCAwIDEtMS40MS0xWk0xOCA3LjV2Mi43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjYuMDljLjU4LjIgMSAuNzYgMSAxLjQxWm0xIDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjggMCAxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBNb25leUhhbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9uZXlIYW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgMy41QzMgMi42NyAzLjY3IDIgNC41IDJoN2MuODMgMCAxLjUuNjcgMS41IDEuNXYxLjhsMy4yNyAzLjI2Yy40Ny40Ny43MyAxLjEuNzMgMS43N3Y3LjE3YS41LjUgMCAwIDEtMSAwdi03LjE3YzAtLjQtLjE2LS43OC0uNDQtMS4wNkwxMyA2Ljd2My4wOGwuODUuODZhLjUuNSAwIDAgMS0uNy43bC0zLTNjLS40My0uNDItLjY2LS40LS43Ni0uMzgtLjE4LjA1LS4zMy4xOS0uNTQuNC0uMS4wOS0uMTUuMTgtLjEzLjMyLjAzLjE4LjE3LjQ5LjYzLjk2Ljk4Ljk3IDEuMSAxLjEgMS4yMiAxLjJsLjI4LjNjLjEuMDkuMTUuMjIuMTUuMzUgMCAuNzcgMCAxLjU1LjIyIDIuMTQuMS4yOC4yNC40OS40Mi42Mi4xOC4xNC40NS4yNC44Ni4yNC4yOCAwIC41LjIyLjUuNXYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxNi41di0xM1ptNSA0YTIuNSAyLjUgMCAxIDAgMS45IDQuMTJsLS4wNC0uMDUtMS4yMS0xLjIyYTIuODUgMi44NSAwIDAgMS0uOTEtMS41MWMtLjA4LS41Mi4xMy0uOTMuNDEtMS4ybC4wNC0uMDQuMS0uMDhMOCA3LjVabTIgOXYuNWgxdi0uNWMwLS4yOC4yMi0uNS41LS41aC41di0uNTRjLS4zNy0uMDYtLjY4LS4yLS45NS0uNC0uNi4yLTEuMDUuNzctMS4wNSAxLjQ0Wk00IDVoLjVDNS4zMyA1IDYgNC4zMyA2IDMuNVYzSDV2LjVhLjUuNSAwIDAgMS0uNS41SDR2MVptNi0xLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoLjVWNGgtLjVhLjUuNSAwIDAgMS0uNS0uNVYzaC0xdi41Wm0tNCAxM2MwLS44My0uNjctMS41LTEuNS0xLjVINHYxaC41Yy4yOCAwIC41LjIyLjUuNXYuNWgxdi0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vbmV5SGFuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9uZXlIYW5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMkMzLjY3IDIgMyAyLjY3IDMgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41VjE1YS41LjUgMCAwIDAtLjUtLjVjLS40MSAwLS42OC0uMS0uODYtLjI0YTEuMyAxLjMgMCAwIDEtLjQyLS42MkE2LjY5IDYuNjkgMCAwIDEgMTEgMTEuNWEuNS41IDAgMCAwLS4xNS0uMzVsLS4yOC0uMy0xLjIyLTEuMmMtLjQ2LS40Ny0uNi0uNzgtLjYzLS45Ni0uMDItLjE0LjAzLS4yMy4xMy0uMzMuMjEtLjIuMzYtLjM0LjU0LS4zOS4xLS4wMi4zMy0uMDQuNzYuMzhsMyAzYS41LjUgMCAwIDAgLjctLjdMMTMgOS43OVY2LjcxbDIuNTYgMi41NmMuMjguMjguNDQuNjYuNDQgMS4wNnY3LjE3YS41LjUgMCAwIDAgMSAwdi03LjE3YzAtLjY2LS4yNi0xLjMtLjczLTEuNzdMMTMgNS4zVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdaTTEyIDUuNXYzLjNsLTEuMTUtMS4xNWMtLjU3LS41OC0xLjE1LS43OC0xLjctLjY1LS4xMS4wMy0uMjIuMDctLjMxLjEyQTMgMyAwIDEgMCAxMCAxMi4yM2MuMDEuNTguMDcgMS4yMS4yNyAxLjc1LjE1LjQxLjM4LjguNzYgMS4wOGguMDFjLS42LjItMS4wNS43Ny0xLjA1IDEuNDR2LjVINnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDRWNWguNUM1LjMzIDUgNiA0LjMzIDYgMy41VjNoNHYuNWMwIC44My42NyAxLjUgMS41IDEuNWguNXYuNVptMCAxMWEuNS41IDAgMCAxLS41LjVIMTF2LS41YzAtLjI4LjIyLS41LjUtLjVoLjV2LjVaTTYgMTBhMiAyIDAgMCAxIDEuODctMmMtLjEyLjIzLS4xOC41MS0uMTMuODQuMDcuNDguMzcuOTguOSAxLjUxbC45MS45MUEyIDIgMCAwIDEgNiAxMFpNNSAzdi41YS41LjUgMCAwIDEtLjUuNUg0di0uNWMwLS4yOC4yMi0uNS41LS41SDVaTTQgMTZoLjVjLjI4IDAgLjUuMjIuNS41di41aC0uNWEuNS41IDAgMCAxLS41LS41VjE2Wm04LTEyaC0uNWEuNS41IDAgMCAxLS41LS41VjNoLjVjLjI4IDAgLjUuMjIuNS41VjRaXCJdKTtcbmV4cG9ydCBjb25zdCBNb25leU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb25leU9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDMuMyA0LjAxQzIuNTcgNC4xMSAyIDQuNzQgMiA1LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg5LjhsMSAxSDQuMDhjLjIuNTguNzYgMSAxLjQxIDFoOWMuMjUgMCAuNDktLjAzLjcyLS4wN2wxLjkzIDEuOTJhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTYuOTggOC4zOWExLjc1IDEuNzUgMCAwIDEtMi4zNy0yLjM3bDIuMzcgMi4zN1pNNS45IDYuNjFBMiAyIDAgMCAxIDQgOEgzVjdoMWExIDEgMCAwIDAgMS0xdi0uM2wuOS45MVpNMyAxMXYtMWgxYTIgMiAwIDAgMSAyIDJ2MUg1di0xYTEgMSAwIDAgMC0xLTFIM1ptNi40Mi0zLjcgMS4yOCAxLjI4IDEuOTUgMS45NUEyIDIgMCAwIDEgMTQgMTBoMXYxaC0xYTEgMSAwIDAgMC0uNjUuMjRsMi4yNyAyLjI2Yy4yNC0uMjcuMzgtLjYyLjM4LTF2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41SDYuMTJsMy4zIDMuM1pNMTUgN3YxaC0xYTIgMiAwIDAgMS0yLTJWNWgxdjFhMSAxIDAgMCAwIDEgMWgxWm0xLjMzIDcuMi43LjcyYy42LS42My45Ny0xLjQ4Ljk3LTIuNDJ2LTVjMC0uNjUtLjQyLTEuMi0xLTEuNDF2Ni40MWEyLjUgMi41IDAgMCAxLS42NyAxLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBNb25leU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9uZXlPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy4zIDQuMDFDMi41NyA0LjExIDIgNC43NCAyIDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDkuOGwxIDFINC4wOGMuMi41OC43NiAxIDEuNDEgMWg5Yy4yNSAwIC40OS0uMDMuNzItLjA3bDEuOTMgMS45MmEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTIgMTIuN1YxM0g2di0xYTIgMiAwIDAgMC0yLTJIM1Y4aDFhMiAyIDAgMCAwIDEuOS0xLjM5bDEuMzggMS4zN2EyIDIgMCAwIDAgMi43NCAyLjc0TDEyIDEyLjcxWk00LjMgNWwuNy43VjZhMSAxIDAgMCAxLTEgMUgzVjUuNWMwLS4yOC4yMi0uNS41LS41aC44Wm0zLjczIDMuNzQgMS4yMyAxLjIzYTEgMSAwIDAgMS0xLjIzLTEuMjNaTTMuNSAxM2EuNS41IDAgMCAxLS41LS41VjExaDFhMSAxIDAgMCAxIDEgMXYxSDMuNVpNMTQgMTBhMiAyIDAgMCAwLTEuMzUuNTNsLjcuN0ExIDEgMCAwIDEgMTQgMTFoMXYxLjVjMCAuMS0uMDMuMi0uMS4yOWwuNzIuNzFjLjI0LS4yNy4zOC0uNjIuMzgtMXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVINi4xMmwxIDFIMTJ2MWMwIDEuMS45IDIgMiAyaDF2MmgtMVptLjUtNWMuMjggMCAuNS4yMi41LjVWN2gtMWExIDEgMCAwIDEtMS0xVjVoMS41Wm0xLjgzIDkuMi43LjcyYy42LS42My45Ny0xLjQ4Ljk3LTIuNDJ2LTVjMC0uNjUtLjQyLTEuMi0xLTEuNDF2Ni40MWEyLjUgMi41IDAgMCAxLS42NyAxLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBNb25leVNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbmV5U2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDUuNTJBNS41IDUuNSAwIDAgMSAxNiA5LjJWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTYgNmEyIDIgMCAwIDEtMiAySDNWN2gxYTEgMSAwIDAgMCAxLTFWNWgxdjFabTMgNC43NWExLjc1IDEuNzUgMCAxIDEgMC0zLjUgMS43NSAxLjc1IDAgMCAxIDAgMy41Wk0zIDExdi0xaDFhMiAyIDAgMCAxIDIgMnYxSDV2LTFhMSAxIDAgMCAwLTEtMUgzWm0xMC01YTEgMSAwIDAgMCAxIDFoMXYxaC0xYTIgMiAwIDAgMS0yLTJWNWgxdjFabS04LjkxIDloNC45M2MuMDMuMzQuMS42OC4xOSAxSDUuNWExLjUgMS41IDAgMCAxLTEuNDEtMVpNMTggNy41djIuNzZhNS41IDUuNSAwIDAgMC0xLS42NlY2LjA5Yy41OC4yIDEgLjc2IDEgMS40MVptLTUuOTQgMy45NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAybC4zNS4wOEEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVptMi40NCA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vbmV5U2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vbmV5U2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgOWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabTItMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaTTMuNSA0QzIuNjcgNCAyIDQuNjcgMiA1LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg1LjUyYy4wMy0uMzQuMS0uNjguMTktMUg2di0xYTIgMiAwIDAgMC0yLTJIM1Y4aDFhMiAyIDAgMCAwIDItMlY1aDZ2MWMwIDEuMS45IDIgMiAyaDF2MS4wMmMuMzQuMDMuNjguMSAxIC4xOVY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpNMyA1LjVjMC0uMjguMjItLjUuNS0uNUg1djFhMSAxIDAgMCAxLTEgMUgzVjUuNVpNMTMgNWgxLjVjLjI4IDAgLjUuMjIuNS41VjdoLTFhMSAxIDAgMCAxLTEtMVY1Wm0tOCA4SDMuNWEuNS41IDAgMCAxLS41LS41VjExaDFhMSAxIDAgMCAxIDEgMXYxWm0tLjkxIDJoNC45M2MuMDMuMzQuMS42OC4xOSAxSDUuNWExLjUgMS41IDAgMCAxLTEuNDEtMVpNMTggNy41djIuNzZhNS41IDUuNSAwIDAgMC0xLS42NlY2LjA5Yy41OC4yIDEgLjc2IDEgMS40MVptLTUuOTQgMy45NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAybC4zNS4wOEEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVptMi40NCA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vcmVDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9yZUNpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tMyA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNCAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNCAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vcmVDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ01vcmVDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNS04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgTW9yZUhvcml6b250YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW9yZUhvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43NSAxMGExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWm01IDBhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFpNMTUgMTEuNzVhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vcmVIb3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3JlSG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4yNSAxMGExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWm01IDBhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTUgMTEuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE1vcmVWZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3JlVmVydGljYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNi41QTEuNzUgMS43NSAwIDEgMSAxMCAzYTEuNzUgMS43NSAwIDAgMSAwIDMuNVpNMTAgMTdhMS43NSAxLjc1IDAgMSAxIDAtMy41IDEuNzUgMS43NSAwIDAgMSAwIDMuNVptLTEuNzUtN2ExLjc1IDEuNzUgMCAxIDAgMy41IDAgMS43NSAxLjc1IDAgMCAwLTMuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTW9yZVZlcnRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3JlVmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDZhMS4yNSAxLjI1IDAgMSAxIDAtMi41QTEuMjUgMS4yNSAwIDAgMSAxMCA2Wm0wIDUuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVptLTEuMjUgNGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTW91bnRhaW5Mb2NhdGlvbkJvdHRvbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3VudGFpbkxvY2F0aW9uQm90dG9tRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguMTkgMi43OGEyLjUgMi41IDAgMCAxIDMuNjIgMGw1LjM3IDUuNjVBMyAzIDAgMCAxIDE4IDEwLjVWMTVhMiAyIDAgMCAxLTIgMmgtNC4zMmMuMjctLjQuNTYtLjg1LjgtMS4zLjI0LS40Ny41Mi0xLjEuNTItMS43YTMgMyAwIDEgMC02IDBjMCAuNi4yOCAxLjIzLjUzIDEuNy4yMy40NS41Mi45Ljc5IDEuM0g0YTIgMiAwIDAgMS0yLTJ2LTQuNWEzIDMgMCAwIDEgLjgyLTIuMDdMOC4yIDIuNzhabTIuOS43YTEuNSAxLjUgMCAwIDAtMi4xOCAwbC0zLjIzIDMuNGMuNzcuNSAxLjQuNyAxLjk2Ljc0LjY2LjA0IDEuMjYtLjEzIDEuOTItLjRsLjctLjNjLjktLjQgMS45My0uODggMy4yLS45NWwtMi4zNy0yLjVabS0yLjcgMTEuN2MuMjUuNDkuNTcgMSAuODcgMS40MmEuOS45IDAgMCAwIDEuNDggMGMuMy0uNDIuNjItLjkzLjg3LTEuNDEuMjMtLjQ1LjM5LS44OC4zOS0xLjE5YTIgMiAwIDEgMC00IDBjMCAuMzEuMTYuNzQuNCAxLjE5Wm0yLjM3LS41M2ExIDEgMCAxIDEtMS41Mi0xLjMgMSAxIDAgMCAxIDEuNTIgMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgTW91bnRhaW5Mb2NhdGlvbkJvdHRvbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW91bnRhaW5Mb2NhdGlvbkJvdHRvbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC45OSA3LjYgMy41NSA5LjEzQTIgMiAwIDAgMCAzIDEwLjVWMTVhMSAxIDAgMCAwIDEgMWgzLjdjLjIuMzUuNDEuNy42MiAxSDRhMiAyIDAgMCAxLTItMnYtNC41YTMgMyAwIDAgMSAuODItMi4wN0w4LjIgMi43OGEyLjUgMi41IDAgMCAxIDMuNjIgMGw1LjM3IDUuNjVBMyAzIDAgMCAxIDE4IDEwLjVWMTVhMiAyIDAgMCAxLTIgMmgtNC4zMmMuMi0uMy40My0uNjUuNjMtMUgxNmExIDEgMCAwIDAgMS0xdi00LjVhMiAyIDAgMCAwLS41NS0xLjM4TDE0LjQzIDdjLTEuNDgtLjE5LTIuNTUuMy0zLjY4LjgtLjI3LjEyLS41My4yNC0uODEuMzUtLjcyLjMtMS40OS41My0yLjM3LjQ3QTUuMTggNS4xOCAwIDAgMSA1IDcuNlpNOC45IDMuNDhsLTMuMjMgMy40Yy43Ny41IDEuNC43IDEuOTYuNzUuNjYuMDUgMS4yNi0uMTMgMS45Mi0uNGwuNy0uM2MuOS0uNCAxLjkzLS44OCAzLjItLjk1bC0yLjM3LTIuNWExLjUgMS41IDAgMCAwLTIuMTggMFptLjM1IDEzLjEzLS40LS42QTQuNzkgNC43OSAwIDAgMSA4IDE0YTIgMiAwIDEgMSA0IDBjMCAuNS0uNDEgMS4yOS0uODYgMmwtLjQuNmEuOS45IDAgMCAxLTEuNDggMFpNMTEgMTRhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgTW91bnRhaW5Mb2NhdGlvblRvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3VudGFpbkxvY2F0aW9uVG9wRmlsbGVkJywgXCIxZW1cIiwgW1wibTEwLjk5IDUuMjQtLjI1LjM2YS45LjkgMCAwIDEtMS41LS4wNGMtLjA5LS4xLS4xNi0uMjMtLjI0LS4zNUM4LjUgNC40NSA4IDMuNTUgOCAzYTIgMiAwIDEgMSA0IDBjMCAuNTUtLjUgMS40NS0xIDIuMjFsLS4wMS4wM1pNMTEgM2ExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaTTguNDMgNi4xN2wtLjI1LS4zOC01LjM2IDUuNjRBMyAzIDAgMCAwIDIgMTMuNVYxNWMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTEuNWEzIDMgMCAwIDAtLjgyLTIuMDdMMTEuODIgNS44bC0uMjUuMzhjLS4xMS4xNi0uMjQuMy0uMzguNGwyLjI3IDIuNGMtMS4yNy4wNy0yLjMuNTQtMy4yLjk1bC0uNy4zYy0uNjYuMjctMS4yNi40NC0xLjkyLjRhNC4wNyA0LjA3IDAgMCAxLTEuOTYtLjc1bDMuMTMtMy4zYTEuOTUgMS45NSAwIDAgMS0uMzgtLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBNb3VudGFpbkxvY2F0aW9uVG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3VudGFpbkxvY2F0aW9uVG9wUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMC45OSA1LjI0LS4yNS4zNmEuOS45IDAgMCAxLTEuNS0uMDRjLS4wOS0uMS0uMTYtLjIzLS4yNC0uMzVDOC41IDQuNDUgOCAzLjU1IDggM2EyIDIgMCAxIDEgNCAwYzAgLjU1LS41IDEuNDUtMSAyLjIxbC0uMDEuMDNaTTExIDNhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWk04LjQzIDYuMTdsLS4yNS0uMzgtNS4zNiA1LjY0QTMgMyAwIDAgMCAyIDEzLjVWMTVjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0xLjVhMyAzIDAgMCAwLS44Mi0yLjA3TDExLjgyIDUuOGwtLjI1LjM4Yy0uMTEuMTYtLjI0LjMtLjM4LjRsMi4yNyAyLjRjLTEuMjcuMDctMi4zLjU0LTMuMi45NWwtLjcuM2MtLjY2LjI3LTEuMjYuNDQtMS45Mi40YTQuMDcgNC4wNyAwIDAgMS0xLjk2LS43NWwzLjEzLTMuM2ExLjk1IDEuOTUgMCAwIDEtLjM4LS40Wk01IDEwLjYxYy45NC42NSAxLjc4Ljk1IDIuNTggMSAuODguMDcgMS42NS0uMTcgMi4zNy0uNDYuMjgtLjExLjU0LS4yMy44LS4zNSAxLjE0LS41IDIuMjEtLjk5IDMuNy0uOGwyLjAxIDIuMTJBMiAyIDAgMCAxIDE3IDEzLjVWMTVhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LTEuNWMwLS41MS4yLTEgLjU1LTEuMzhsMS40NC0xLjUxWlwiXSk7XG5leHBvcnQgY29uc3QgTW91bnRhaW5UcmFpbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNb3VudGFpblRyYWlsRmlsbGVkJywgXCIxZW1cIiwgW1wibTYuNzIgNC4zMy0zLjkgNC4xQTMgMyAwIDAgMCAyIDEwLjVWMTVjMCAxLjEuOSAyIDIgMmg3LjU5bC0xLjc0LS41MkEyOC4zIDI4LjMgMCAwIDEgNiAxNC45OWMtLjU0LS4yNi0xLS41NC0xLjM1LS44NEM0LjMyIDEzLjg2IDQgMTMuNDggNCAxM2MwLS45OC43Ny0xLjU0IDEuNTgtMS44Ni44Mi0uMzQgMS45LS41MiAyLjkyLS42OGwuNjMtLjFjLjgyLS4xMiAxLjYtLjIzIDIuMjItLjQuNC0uMS43LS4yLjktLjMyLjItLjEyLjI1LS4yMS4yNi0uMjYuMDItLjA2LjAyLS4xNi0uMTItLjM0LS4xNC0uMi0uMzgtLjQxLS43MS0uNjYtLjQ0LS4zMi0uOTYtLjY0LTEuNTEtLjk3bC0xLS42MmE3LjA4IDcuMDggMCAwIDEtMi4yMi0xLjk1Yy0uMS0uMTYtLjE4LS4zMy0uMjMtLjVaTTE1LjU2IDE3bC0uMDctLjAyYTU0LjE1IDU0LjE1IDAgMCAxLTEuNTgtLjM5Yy0xLjAzLS4yNi0yLjQtLjYzLTMuNzYtMS4wN2EyNy4zNiAyNy4zNiAwIDAgMS0zLjctMS40MmMtLjUtLjI1LS45LS40OS0xLjE1LS43MS0uMjctLjI0LS4zLS4zNy0uMy0uMzkgMC0uMzMuMjMtLjY1Ljk1LS45NC43LS4yOCAxLjY2LS40NSAyLjctLjYxbC42LS4xYy44My0uMTEgMS42Ny0uMjQgMi4zNS0uNDEuNDMtLjExLjgzLS4yNSAxLjE2LS40NC4zMi0uMTkuNjItLjQ3LjczLS44OGExLjQgMS40IDAgMCAwLS4yOS0xLjE3Yy0uMjMtLjMyLS41Ny0uNjEtLjkzLS44OC0uNDctLjM0LTEuMDYtLjctMS42NC0xLjA2bC0uOTItLjU3YTYuMjIgNi4yMiAwIDAgMS0xLjktMS42My45OS45OSAwIDAgMS0uMTgtLjY2Yy4wMi0uMTUuMS0uMzMuMjUtLjU1bC4zLS4zMmEyLjUgMi41IDAgMCAxIDMuNjMgMGw1LjM3IDUuNjVBMyAzIDAgMCAxIDE4IDEwLjVWMTVhMiAyIDAgMCAxLTIgMmgtLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgTW91bnRhaW5UcmFpbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW91bnRhaW5UcmFpbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNDggMTdINGEyIDIgMCAwIDEtMi0ydi00LjVhMyAzIDAgMCAxIC44Mi0yLjA3TDguMiAyLjc4YTIuNSAyLjUgMCAwIDEgMy42MiAwbDUuMzcgNS42NUEzIDMgMCAwIDEgMTggMTAuNVYxNWEyIDIgMCAwIDEtMiAyaC0uNTJaTTkuMSAzLjMxYTEuNzUgMS43NSAwIDAgMC0uNTYuODZjLS4wNC4yLS4wMS40LjEuNi4yMy40Ni44LjkyIDEuNTYgMS40M2wuOC41Yy41LjMyIDEuMDMuNjQgMS40My45Ni4zMy4yNC42My41Mi44My44My4yMi4zMi4zNC43LjI0IDEuMTMtLjEuNDEtLjQxLjctLjczLjg4LS4zMy4yLS43My4zMy0xLjE2LjQ0LS42OC4xNy0xLjUyLjMtMi4zNS40MmwtLjYuMDljLTEuMDQuMTYtMiAuMzMtMi43LjYxLS43Mi4zLS45NS42LS45NS45NCAwIC4wMS4wMS4xMi4yOC4zMy4yNS4yLjYzLjQgMS4xMy42Ljk5LjQgMi4zMy43NyAzLjcgMS4wOGE2Ny4zMyA2Ny4zMyAwIDAgMCA1LjM0Ljk4bC4wOC4wMUgxNmExIDEgMCAwIDAgMS0xdi00LjVhMiAyIDAgMCAwLS41NS0xLjM4TDExLjEgMy40N2ExLjUgMS41IDAgMCAwLTItLjE2Wk03LjYgNC44NyAzLjU1IDkuMTJBMiAyIDAgMCAwIDMgMTAuNVYxNWExIDEgMCAwIDAgMSAxaDUuOTRsLS4wNS0uMDFjLTEuMzgtLjMyLTIuOC0uNy0zLjg2LTEuMTRhNS45OSA1Ljk5IDAgMCAxLTEuMzYtLjczQzQuMzMgMTMuODYgNCAxMy40OSA0IDEzYzAtLjk4Ljc3LTEuNTQgMS41OC0xLjg2LjgyLS4zNCAxLjktLjUyIDIuOTItLjY4bC42My0uMWMuODItLjEyIDEuNi0uMjMgMi4yMi0uNC40LS4xLjctLjIuOS0uMzIuMi0uMTIuMjUtLjIxLjI2LS4yNi4wMi0uMDguMDItLjE4LS4wOS0uMzRhMi43IDIuNyAwIDAgMC0uNi0uNmMtLjM4LS4yOC0uODItLjU1LTEuMy0uODVsLS44OC0uNTZhNS40NSA1LjQ1IDAgMCAxLTEuOS0xLjggMi4xIDIuMSAwIDAgMS0uMTUtLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgTW92aWVzQW5kVHZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW92aWVzQW5kVHZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuMTMgNS4zOCA3LjAzIDhoOS40N2MuMjggMCAuNS4yMi41LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE1LjVWOC41N2wtLjI2LS45YTIuNSAyLjUgMCAwIDEgMS43MS0zLjA5TDEzLjEgMi4xYTIuNSAyLjUgMCAwIDEgMy4xIDEuN2wuMjcuOTdhLjUuNSAwIDAgMS0uMzQuNjJaTTMuODQgNy44OGwuNi0uMTdMNS45IDUuMmwtMS4xNi4zM0ExLjUgMS41IDAgMCAwIDMuNyA3LjRsLjE0LjQ4Wm0yLS41NyAyLjExLS42MUw5LjQgNC4ybC0yLjEzLjYxLS4wMi4wNC0xLjQyIDIuNDZabTUuNjItMS42MyAxLjQ0LTIuNS0yLjEyLjYyLS4wMy4wNUw5LjM0IDYuM2wyLjEyLS42MlptMi42OC0yLjY1YzAgLjAyIDAgLjAzLS4wMi4wNGwtMS4yNyAyLjIyIDIuNTItLjczLS4xNC0uNDhhMS41IDEuNSAwIDAgMC0xLjA5LTEuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBNb3ZpZXNBbmRUdlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTW92aWVzQW5kVHZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjEzIDUuMzggNy4wMyA4aDkuNDdjLjI4IDAgLjUuMjIuNS41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNS41VjguNTdsLS4yNi0uOWEyLjUgMi41IDAgMCAxIDEuNzEtMy4wOUwxMy4xIDIuMWEyLjUgMi41IDAgMCAxIDMuMSAxLjdsLjI3Ljk3YS41LjUgMCAwIDEtLjM0LjYyWk0zLjg0IDcuODhsLjYtLjE3TDUuOSA1LjJsLTEuMTYuMzNBMS41IDEuNSAwIDAgMCAzLjcgNy40bC4xNC40OFptMi0uNTcgMi4xMS0uNjFMOS40IDQuMmwtMi4xMy42MS0uMDIuMDQtMS40MiAyLjQ2Wm01LjYyLTEuNjMgMS40NC0yLjUtMi4xMi42Mi0uMDMuMDVMOS4zNCA2LjNsMi4xMi0uNjJabTIuNjgtMi42NWMwIC4wMiAwIC4wMy0uMDIuMDRsLTEuMjcgMi4yMiAyLjUyLS43My0uMTQtLjQ4YTEuNSAxLjUgMCAwIDAtMS4wOS0xLjA1Wk00IDl2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjlINFpcIl0pO1xuZXhwb3J0IGNvbnN0IE11bHRpcGxpZXIxMlhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlwbGllcjEyWEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjcgOC43NWEuNzUuNzUgMCAwIDAgLjgtLjdsLjAyLS4xYy4wMi0uMDguMDYtLjE5LjEzLS4zLjEtLjE2LjM0LS40Ljk1LS40LjU4IDAgLjg2LjE5IDEgLjM4LjE2LjIyLjI3LjYxLjE2IDEuMjRhLjc4Ljc4IDAgMCAxLS40LjZjLS4yLjEzLS40Mi4yLS43Mi4zMWwtLjQzLjE3Yy0uNDcuMTgtMS4wNi40NS0xLjUgMS0uNDcuNTUtLjcxIDEuMy0uNzEgMi4zYS43NS43NSAwIDAgMCAuNzUuNzVoMy43NWEuNzUuNzUgMCAwIDAgMC0xLjVIOS41OGMuMDctLjI4LjE3LS40Ny4yOC0uNi4yLS4yNC40OC0uNC45LS41NmwuMjctLjFjLjM0LS4xMi43Ny0uMjggMS4xMi0uNS41Mi0uMzIuOTUtLjgyIDEuMDktMS42MS4xNS0uODcuMDYtMS43My0uNDMtMi4zOC0uNS0uNjktMS4yOS0xLTIuMjEtMS0xLjE0IDAtMS44My41LTIuMjEgMS4xQTIuNTMgMi41MyAwIDAgMCA4IDcuOTJ2LjAxYzAgLjAxLS4wMi4zNiAwIC4wMS0uMDMuNDEuMjkuNzcuNy44Wm02LjU4IDEuNDdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuNzIuNzItLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjcyLS43Mi43Mi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0uNzItLjcyLjcyLS43MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0uNzIuNzItLjcyLS43MlpNNyAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk00LjQ2IDYuMDNjLjMyLjEuNTQuMzkuNTQuNzJ2Ni41YS43NS43NSAwIDAgMS0xLjUgMFY4LjhjLS4yNC4yLS41Mi4zOS0uODYuNmEuNzUuNzUgMCAwIDEtLjc4LTEuM2MuNTgtLjM0LjktLjYxIDEuMTMtLjg2LjIyLS4yNC4zNi0uNDcuNTgtLjgxbC4wNC0uMDhhLjc1Ljc1IDAgMCAxIC44NS0uMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXBsaWVyMTJYUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdWx0aXBsaWVyMTJYUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjY2IDYuMDNjLjIuMDYuMzQuMjYuMzQuNDd2N2EuNS41IDAgMCAxLTEgMFY3Ljk2YTYgNiAwIDAgMS0xLjI0Ljk3LjUuNSAwIDAgMS0uNTItLjg2Yy45NC0uNTYgMS4zMS0xLjEgMS42NC0xLjU3bC4yMi0uM2EuNS41IDAgMCAxIC41Ni0uMTdabTQuMzMgMi4wNnYtLjAzbC4wNS0uMTJjLjA0LS4xMS4xLS4yNS4yLS4zOS4yLS4yNi41NS0uNTUgMS4yNi0uNTUuNjQgMCAxLjA0LjIgMS4yNy41LjIzLjMuMzUuNzYuMjQgMS40Mi0uMDcuMzgtLjI2LjYxLS41Ny44LS4yNC4xNi0uNTIuMjgtLjg1LjQxYTIyIDIyIDAgMCAwLS40My4xOGMtLjUuMjEtMS4wNS41LTEuNDcgMUEzLjI3IDMuMjcgMCAwIDAgOCAxMy41YS41LjUgMCAwIDAgLjUuNWg0YS41LjUgMCAxIDAgMC0xSDkuMDNjLjA3LS40OS4yMy0uODEuNDMtMS4wNS4yNi0uMzIuNjQtLjUyIDEuMS0uNzIuMS0uMDUuMi0uMS4zMi0uMTQuMzYtLjE0Ljc3LS4zIDEuMS0uNTIuNDktLjMxLjg5LS43NiAxLjAxLTEuNDkuMTUtLjg0LjAyLTEuNjItLjQ0LTIuMkMxMi4xIDYuMjkgMTEuMzYgNiAxMC41IDZhMi40NCAyLjQ0IDAgMCAwLTIuNDcgMS44MUw4IDcuODh2LjAzTDggNy45OXYtLjA2YS41LjUgMCAwIDAgMSAuMTdabTUuODYgMi4wNmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTJsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdMMTYgMTIuNzFsMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTYuNzEgMTJsMS4xNC0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTYgMTEuMjlsLTEuMTUtMS4xNFpNNyAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTXVsdGlwbGllcjE1WEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdWx0aXBsaWVyMTVYRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNDYgNi4wM2MuMzIuMS41NC4zOS41NC43MnY2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjguODFjLS4yNC4xOS0uNTIuMzgtLjg2LjU4YS43NS43NSAwIDAgMS0uNzgtMS4yOGMuNTgtLjM1LjktLjYyIDEuMTMtLjg3LjIyLS4yNC4zNi0uNDcuNTgtLjgxbC4wNC0uMDhhLjc1Ljc1IDAgMCAxIC44NS0uMzJaTTkgNmMtLjM5IDAtLjcxLjMtLjc1LjY4TDggOS40M2EuNzUuNzUgMCAwIDAgLjg1LjgxbDEuMzctLjE4YTEuMzUgMS4zNSAwIDEgMSAuMTYgMi42OWMtLjM2IDAtLjcyLS4xNS0uOTctLjRsLS4zOC0uMzhhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwuMzguMzhhMi44NiAyLjg2IDAgMCAwIDQuOS0yLjAxIDIuODUgMi44NSAwIDAgMC0zLjIzLTIuODNsLS40NC4wNi4xLTEuMTNoMi41N2EuNzUuNzUgMCAwIDAgMC0xLjVIOVptLTIuNSA4YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm03LjcyLTMuNzhjLjMtLjMuNzctLjMgMS4wNiAwbC43Mi43Mi43Mi0uNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtLjcyLjcyLjcyLjcyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLS43Mi0uNzItLjcyLjcyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsLjcyLS43Mi0uNzItLjcyYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXBsaWVyMTVYUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdWx0aXBsaWVyMTVYUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjY2IDYuMDNjLjIuMDYuMzQuMjYuMzQuNDd2N2EuNS41IDAgMCAxLTEgMFY3Ljk2YTYgNiAwIDAgMS0xLjI0Ljk3LjUuNSAwIDAgMS0uNTItLjg2Yy45NC0uNTYgMS4zMS0xLjEgMS42NC0xLjU3bC4yMi0uM2EuNS41IDAgMCAxIC41Ni0uMTdabTMuODQuNDNBLjUuNSAwIDAgMSA5IDZoMy41YS41LjUgMCAwIDEgMCAxSDkuNDZMOS4zIDguOTNsMS4yOC0uMTVhMi42MiAyLjYyIDAgMSAxIC4zIDUuMjJoLS4zNWMtLjggMC0xLjU1LS4zMS0yLjEtLjg3bC0uMjgtLjI4YS41LjUgMCAxIDEgLjctLjdsLjI4LjI3Yy4zNy4zNy44Ny41OCAxLjQuNThoLjM1YTEuNjIgMS42MiAwIDEgMC0uMTktMy4yM0w4LjgxIDEwYS41LjUgMCAwIDEtLjU2LS41NGwuMjUtM1ptNi4zNSAzLjY5YS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxMmwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN0wxNiAxMi43MWwxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNi43MSAxMmwxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNiAxMS4yOWwtMS4xNS0xLjE0Wk02LjUgMTRhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXBsaWVyMThYRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011bHRpcGxpZXIxOFhGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC40NiA2LjAzYy4zMi4xLjU0LjM5LjU0LjcydjYuNWEuNzUuNzUgMCAwIDEtMS41IDBWOC44MWMtLjI0LjE5LS41Mi4zOC0uODYuNThhLjc1Ljc1IDAgMCAxLS43OC0xLjI4Yy41OC0uMzUuOS0uNjIgMS4xMy0uODcuMjItLjI0LjM2LS40Ny41OC0uODFsLjA0LS4wOGEuNzUuNzUgMCAwIDEgLjg1LS4zMlptOC43OSAyLjIyYzAgLjU4LS4yMyAxLjA3LS41OSAxLjQ1LjUxLjQ0Ljg0IDEuMDcuODQgMS44IDAgMS40Ny0xLjMzIDIuNS0yLjc1IDIuNVM4IDEyLjk3IDggMTEuNWMwLS43My4zMy0xLjM2Ljg0LTEuOGEyLjA4IDIuMDggMCAwIDEtLjU5LTEuNDVDOC4yNSA2LjkgOS40OCA2IDEwLjc1IDZzMi41LjkgMi41IDIuMjVabS0yLjUtLjc1Yy0uNjYgMC0xIC40NC0xIC43NXMuMzQuNzUgMSAuNzVjLjY2IDAgMS0uNDQgMS0uNzVzLS4zNC0uNzUtMS0uNzVabS0xLjI1IDRjMCAuNDYuNDYgMSAxLjI1IDFzMS4yNS0uNTQgMS4yNS0xYzAtLjQ2LS40Ni0xLTEuMjUtMXMtMS4yNS41NC0xLjI1IDFabTQuNzItMS4yOGMuMy0uMy43Ny0uMyAxLjA2IDBsLjcyLjcyLjcyLS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0uNzIuNzIuNzIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtLjcyLS43Mi0uNzIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuNzItLjcyLS43Mi0uNzJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpNNyAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTXVsdGlwbGllcjE4WFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlwbGllcjE4WFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC42NiA2LjAzYy4yLjA2LjM0LjI2LjM0LjQ3djdhLjUuNSAwIDAgMS0xIDBWNy45NmE2IDYgMCAwIDEtMS4yNC45Ny41LjUgMCAwIDEtLjUyLS44NmMuOTQtLjU2IDEuMzEtMS4xIDEuNjQtMS41N2wuMjItLjNhLjUuNSAwIDAgMSAuNTYtLjE3Wk0xMyA4YzAgLjU5LS4yNyAxLjA5LS42OSAxLjQ0LjcuNDQgMS4xOSAxLjE4IDEuMTkgMi4wNiAwIDEuNDMtMS4yOSAyLjUtMi43NSAyLjVTOCAxMi45MyA4IDExLjVjMC0uODguNDgtMS42MiAxLjE5LTIuMDZBMS44NyAxLjg3IDAgMCAxIDguNSA4YzAtMS4xNyAxLjA4LTIgMi4yNS0yUzEzIDYuODMgMTMgOFptLTIuMjUtMWMtLjc3IDAtMS4yNS41Mi0xLjI1IDFzLjQ4IDEgMS4yNSAxUzEyIDguNDggMTIgOHMtLjQ4LTEtMS4yNS0xWk05IDExLjVjMCAuNzcuNzMgMS41IDEuNzUgMS41czEuNzUtLjczIDEuNzUtMS41LS43My0xLjUtMS43NS0xLjVTOSAxMC43MyA5IDExLjVabTUuMTUtMS4zNWMuMi0uMi41LS4yLjcgMEwxNiAxMS4yOWwxLjE1LTEuMTRhLjUuNSAwIDAgMSAuNy43TDE2LjcxIDEybDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMMTYgMTIuNzFsLTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43TDE1LjI5IDEybC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAwLS43Wk03IDEzLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXBsaWVyMVhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlwbGllcjFYRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNSA2Ljc1YS43NS43NSAwIDAgMC0xLjM5LS40bC0uMDQuMDhhNS4zIDUuMyAwIDAgMS0uNTguOCA0LjggNC44IDAgMCAxLTEuMTMuODguNzUuNzUgMCAxIDAgLjc4IDEuMjhjLjM0LS4yLjYyLS40Ljg2LS41OHY0LjQ0YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm0yLjc4IDMuNDdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuNzIuNzItLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjcyLS43Mi43Mi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0uNzItLjcyLjcyLS43MmEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0uNzIuNzItLjcyLS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IE11bHRpcGxpZXIxWFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlwbGllcjFYUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDYuNWEuNS41IDAgMCAwLS45LS4zbC0uMjIuM2MtLjMzLjQ4LS43IDEtMS42NCAxLjU3YS41LjUgMCAxIDAgLjUyLjg2QTYgNiAwIDAgMCA3IDcuOTZ2NS41NGEuNS41IDAgMSAwIDEgMHYtN1ptMi44NSAzLjY1YS41LjUgMCAwIDAtLjcuN0wxMS4yOSAxMmwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN0wxMiAxMi43MWwxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxMi43MSAxMmwxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMiAxMS4yOWwtMS4xNS0xLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgTXVsdGlwbGllcjJYRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011bHRpcGxpZXIyWEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjcgOC43NWEuNzUuNzUgMCAwIDAgLjgtLjdsLjAyLS4xYy4wMi0uMDguMDYtLjE5LjEzLS4zLjEtLjE2LjM0LS40Ljk1LS40LjU4IDAgLjg2LjE5IDEgLjM4LjE2LjIyLjI3LjYxLjE2IDEuMjRhLjc4Ljc4IDAgMCAxLS40LjZjLS4yLjEzLS40Mi4yLS43Mi4zMWwtLjQzLjE3Yy0uNDcuMTgtMS4wNi40NS0xLjUgMS0uNDYuNTUtLjcgMS4zLS43IDIuM2EuNzUuNzUgMCAwIDAgLjc0Ljc1SDkuNWEuNzUuNzUgMCAwIDAgMC0xLjVINi41OGMuMDctLjI4LjE3LS40Ny4yOC0uNi4yLS4yNC40OC0uNC45LS41NmwuMjctLjFjLjM0LS4xMi43Ny0uMjggMS4xMi0uNS41Mi0uMzIuOTUtLjgyIDEuMDktMS42MWEzLjEgMy4xIDAgMCAwLS40Mi0yLjM4Yy0uNS0uNjktMS4zLTEtMi4yMi0xLTEuMTMgMC0xLjgzLjUtMi4yIDEuMUEyLjUzIDIuNTMgMCAwIDAgNSA3Ljkydi4wMmMtLjAyLjQxLjI5Ljc3LjcuOFptNi41OCAxLjQ3YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsLjcyLjcyLS43Mi43MmEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bC43Mi0uNzIuNzIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtLjcyLS43Mi43Mi0uNzJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtLjcyLjcyLS43Mi0uNzJaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXBsaWVyMlhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011bHRpcGxpZXIyWFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtNiA4LjA5LjAxLS4wMy4wNC0uMTJjLjA0LS4xMS4xLS4yNS4yLS4zOS4yLS4yNi41Ni0uNTUgMS4yNi0uNTUuNjQgMCAxLjA0LjIgMS4yNi41LjI0LjMuMzYuNzYuMjUgMS40Mi0uMDcuMzgtLjI2LjYxLS41Ny44LS4yNC4xNi0uNTIuMjgtLjg1LjQxbC0uNDMuMThjLS41LjIxLTEuMDUuNS0xLjQ3IDFhMy4yNyAzLjI3IDAgMCAwLS42OSAyLjE5LjUuNSAwIDAgMCAuNS41aDRhLjUuNSAwIDAgMCAwLTFINi4wNGMuMDctLjQ5LjIzLS44MS40My0xLjA1LjI2LS4zMi42NC0uNTIgMS4xLS43Mi4xLS4wNS4yLS4xLjMyLS4xNC4zNi0uMTQuNzctLjMgMS4xLS41Mi40OC0uMzEuODktLjc2IDEuMDEtMS40OS4xNC0uODQuMDItMS42Mi0uNDQtMi4yQzkuMSA2LjI5IDguMzcgNiA3LjUgNmEyLjQ0IDIuNDQgMCAwIDAtMi40OCAxLjg4di4wM2gtLjAxYzAgLjAzLS4wNC4yNyAwIDBBLjUuNSAwIDAgMCA2IDguMVptNS44NiAyLjA2YS41LjUgMCAxIDAtLjcuN0wxMi4zIDEybC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43TDEzIDEyLjcxbDEuMTUgMS4xNGEuNS41IDAgMSAwIC43LS43TDEzLjcxIDEybDEuMTQtMS4xNWEuNS41IDAgMCAwLS43LS43TDEzIDExLjI5bC0xLjE0LTEuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXBsaWVyNVhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlwbGllcjVYRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMjUgNi42OEEuNzUuNzUgMCAwIDEgNyA2aDMuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDcuNjhsLS4xIDEuMTMuNDQtLjA2YTIuODUgMi44NSAwIDEgMSAuMzYgNS42OGMtLjc1IDAtMS41LS4zLTIuMDMtLjg0bC0uMzgtLjM4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjM4LjM4YTEuMzYgMS4zNiAwIDAgMCAyLjM0LS45NWMwLS44Mi0uNzItMS40NS0xLjUzLTEuMzRsLTEuMzcuMThhLjc1Ljc1IDAgMCAxLS44NS0uOGwuMjUtMi43NlpNNSAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm04LjI4LTMuMjhhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuNzIuNzItLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjcyLS43Mi43Mi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0uNzItLjcyLjcyLS43MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0uNzIuNzItLjcyLS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IE11bHRpcGxpZXI1WFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlwbGllcjVYUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDZhLjUuNSAwIDAgMC0uNS40NmwtLjI1IDNhLjUuNSAwIDAgMCAuNTYuNTRsMS44OC0uMjNBMS42MiAxLjYyIDAgMSAxIDguOSAxM2gtLjM2Yy0uNTMgMC0xLjAzLS4yLTEuNC0uNThsLS4yOC0uMjdhLjUuNSAwIDAgMC0uNy43bC4yNy4yOGMuNTYuNTYgMS4zMi44NyAyLjEuODdoLjM2YTIuNjIgMi42MiAwIDEgMC0uMy01LjIybC0xLjI4LjE1TDcuNDYgN2gzLjA0YS41LjUgMCAwIDAgMC0xSDdabTUuMTUgNC4xNWMuMi0uMi41LS4yLjcgMEwxNCAxMS4yOWwxLjE1LTEuMTRhLjUuNSAwIDAgMSAuNy43TDE0LjcxIDEybDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMMTQgMTIuNzFsLTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43TDEzLjI5IDEybC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAwLS43Wk01IDEzLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXNlbGVjdEx0ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdWx0aXNlbGVjdEx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjI1IDMuMmMuMzEuMjcuMzMuNzQuMDYgMS4wNWwtMi4yNSAyLjVhLjc1Ljc1IDAgMCAxLTEuMDkuMDNMMS43MiA1LjUzYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsLjcuNyAxLjcxLTEuOTJhLjc1Ljc1IDAgMCAxIDEuMDYtLjA2Wk04IDUuMjRjMC0uNDEuMzQtLjc1Ljc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVBLjc1Ljc1IDAgMCAxIDggNS4yNVptMCA1YzAtLjQxLjM0LS43NS43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUgNC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wm0tMi40NC0uMjVhLjc1Ljc1IDAgMSAwLTEuMTItMWwtMS43MiAxLjkxLS42OS0uNjlhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjI1IDEuMjVhLjc1Ljc1IDAgMCAwIDEuMDktLjAzbDIuMjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgTXVsdGlzZWxlY3RMdHJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011bHRpc2VsZWN0THRyUmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljg1IDQuMzVhLjUuNSAwIDEgMC0uNy0uN0wzLjUgNS4yOWwtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwyLTJaTTggNS41YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41Wm0wIDVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabS41IDQuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0tMi42NS0uODVjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAwIDEgLjctLjdsLjY1LjY0IDEuNjUtMS42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE11bHRpc2VsZWN0UnRsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011bHRpc2VsZWN0UnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNUEuNzUuNzUgMCAwIDEgMiA1LjI1Wm0wIDVjMC0uNDEuMzQtLjc1Ljc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSA0LjI1YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaTTE4LjMxIDQuMjVhLjc1Ljc1IDAgMSAwLTEuMTItMWwtMS43MiAxLjkxLS42OS0uNjlhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwxLjI1IDEuMjVhLjc1Ljc1IDAgMCAwIDEuMDktLjAzbDIuMjUtMi41Wm0tLjA2IDguOTRjLjMxLjI4LjMzLjc1LjA2IDEuMDZsLTIuMjUgMi41YS43NS43NSAwIDAgMS0xLjA5LjAzbC0xLjI1LTEuMjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwuNy43IDEuNzEtMS45MmEuNzUuNzUgMCAwIDEgMS4wNi0uMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBNdWx0aXNlbGVjdFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVsdGlzZWxlY3RSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3Ljg1IDQuMzVhLjUuNSAwIDAgMC0uNy0uN0wxNS41IDUuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMi0yWm0wIDkuOGMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWk0yLjUgNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0wIDVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVpNMiAxNS41YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTXVzaWNOb3RlMUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdXNpY05vdGUxRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjE1IDIuMDJhLjUuNSAwIDAgMC0uNjUuNDh2OS45QTMuMjQgMy4yNCAwIDAgMCA0IDE0Ljc1YTMuMjUgMy4yNSAwIDEgMCA2LjUtLjI1VjcuMThsNS44NSAxLjhBLjUuNSAwIDAgMCAxNyA4LjVWNS45OGEyLjUgMi41IDAgMCAwLTEuNzYtMi40bC01LjEtMS41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IE11c2ljTm90ZTFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011c2ljTm90ZTFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjE1IDIuMDJhLjUuNSAwIDAgMC0uNjUuNDh2OS45QTMuMjQgMy4yNCAwIDAgMCA0IDE0Ljc1YTMuMjUgMy4yNSAwIDEgMCA2LjUtLjI1VjcuMThsNS44NSAxLjhBLjUuNSAwIDAgMCAxNyA4LjVWNS45OGEyLjUgMi41IDAgMCAwLTEuNzYtMi40bC01LjEtMS41NlpNMTYgNy44MmwtNS41LTEuNjlWMy4xOGw0LjQ0IDEuMzZjLjYzLjIgMS4wNi43OCAxLjA2IDEuNDR2MS44NFpNNSAxNC43NWEyLjI1IDIuMjUgMCAxIDEgNC41IDAgMi4yNSAyLjI1IDAgMCAxLTQuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgTXVzaWNOb3RlMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdXNpY05vdGUyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1Ljk5IDMuMDJhMSAxIDAgMCAwLTEuMjktLjhsLTcgMi4yYTEgMSAwIDAgMC0uNy45NXY4LjEzYTIuNSAyLjUgMCAxIDAgMSAyVjguMzdsNy0yLjE5djUuMzJhMi41IDIuNSAwIDEgMCAxIDJWMy4xOGwtLjAxLS4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IE11c2ljTm90ZTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011c2ljTm90ZTJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjcgMi4yM2ExIDEgMCAwIDEgMS4zLjk1VjEzLjVhMi41IDIuNSAwIDEgMS0xLTJWNi4xOEw4IDguMzd2Ny4xM2EyLjUgMi41IDAgMSAxLTEtMlY1LjM3YTEgMSAwIDAgMSAuNy0uOTZsNy0yLjE4Wk04IDcuMzJsNy0yLjE5VjMuMThMOCA1LjM3djEuOTVaTTUuNSAxNGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptNi41LS41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgTXVzaWNOb3RlMlBsYXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTXVzaWNOb3RlMlBsYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuOTkgMy4wMmExIDEgMCAwIDAtMS4yOS0uOGwtNyAyLjJhMSAxIDAgMCAwLS43Ljk1djguMTNhMi41IDIuNSAwIDEgMCAxIDJWOC4zN2w3LTIuMTl2Mi44NGMuMzQuMDMuNjguMSAxIC4xOVYzLjE4bC0uMDEtLjE2Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4yNi0uNDQtMy0xLjY1YS41LjUgMCAwIDAtLjc0LjQ0djMuM2MwIC4zOC40LjYyLjc0LjQ0bDMtMS42NWEuNS41IDAgMCAwIDAtLjg4WlwiXSk7XG5leHBvcnQgY29uc3QgTXVzaWNOb3RlMlBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011c2ljTm90ZTJQbGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC43IDIuMjNhMSAxIDAgMCAxIDEuMy45NXY2LjAzYy0uMzItLjEtLjY2LS4xNi0xLS4xOVY2LjE4TDggOC4zN3Y3LjEzYTIuNSAyLjUgMCAxIDEtMS0yVjUuMzdhMSAxIDAgMCAxIC43LS45Nmw3LTIuMThaTTggNy4zMmw3LTIuMTlWMy4xOEw4IDUuMzd2MS45NVpNNS41IDE0YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWm0xMy41LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjI2LS40NC0zLTEuNjVhLjUuNSAwIDAgMC0uNzQuNDR2My4zYzAgLjM4LjQuNjIuNzQuNDRsMy0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBNdXNpY05vdGVPZmYxRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011c2ljTm90ZU9mZjFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2w3LjM1IDcuMzZ2Mi4yQTMuMjQgMy4yNCAwIDAgMCA0IDE0Ljc0YTMuMjUgMy4yNSAwIDEgMCA2LjUtLjI1di0zLjNsNi42NSA2LjY1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm03LjY1IDUuMDN2MS4ybC0xLTFWMi41YS41LjUgMCAwIDEgLjY1LS40OGw1LjA5IDEuNTdBMi41IDIuNSAwIDAgMSAxNyA1Ljk4VjguNWEuNS41IDAgMCAxLS42NS40OGwtNS44NS0xLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBNdXNpY05vdGVPZmYxUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNdXNpY05vdGVPZmYxUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDcuMzUgNy4zNnYyLjJBMy4yNCAzLjI0IDAgMCAwIDQgMTQuNzRhMy4yNSAzLjI1IDAgMSAwIDYuNS0uMjV2LTMuM2w2LjY1IDYuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTUgMTQuNzVhMi4yNSAyLjI1IDAgMSAxIDQuNSAwIDIuMjUgMi4yNSAwIDAgMS00LjUgMFptNS41LTcuNTd2MS4ybC0xLTFWMi41YS41LjUgMCAwIDEgLjY1LS40OGw1LjA5IDEuNTdBMi41IDIuNSAwIDAgMSAxNyA1Ljk4VjguNWEuNS41IDAgMCAxLS42NS40OGwtNS44NS0xLjhabTUuNS42NFY1Ljk4YTEuNSAxLjUgMCAwIDAtMS4wNi0xLjQ0TDEwLjUgMy4xOHYyLjk1bDUuNSAxLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBNdXNpY05vdGVPZmYyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011c2ljTm90ZU9mZjJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w3IDcuNzF2NS43OWEyLjUgMi41IDAgMSAwIDEgMlY4LjdsMy40MSAzLjQyYTIuNSAyLjUgMCAwIDAgMy40NiAzLjQ2bDIuMjggMi4yN2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTMuNSAxMWMtLjEyIDAtLjI0IDAtLjM1LjAybDIuODMgMi44My4wMi0uMzVWMy4xOGwtLjAxLS4xNmExIDEgMCAwIDAtMS4yOS0uOGwtNyAyLjJhMSAxIDAgMCAwLS42MS41NGwyLjggMi44MkwxNSA2LjE4djUuMzJjLS40Mi0uMzEtLjk0LS41LTEuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE11c2ljTm90ZU9mZjJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ011c2ljTm90ZU9mZjJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNyA3LjcxdjUuNzlhMi41IDIuNSAwIDEgMCAxIDJWOC43bDMuNDEgMy40MmEyLjUgMi41IDAgMCAwIDMuNDYgMy40NmwyLjI4IDIuMjdhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTExLjMgMTIuN2ExLjUgMS41IDAgMCAxLTItMmwyIDJaTTUuNSAxNGExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptOC0zYy0uMTIgMC0uMjQgMC0uMzUuMDJsMi44MyAyLjgzLjAyLS4zNVYzLjE4YTEgMSAwIDAgMC0xLjMtLjk1bC03IDIuMThhMSAxIDAgMCAwLS42MS41NWwuOTEuOTJ2LS41MWw3LTIuMTl2MS45NUw5LjEgNi45OGwuOC44IDUuMS0xLjZ2NS4zMmMtLjQyLS4zMS0uOTQtLjUtMS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTXlMb2NhdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdNeUxvY2F0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDEzYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptLjc1LTEwLjI1YS43NS43NSAwIDAgMC0xLjUgMHYxLjNhNiA2IDAgMCAwLTUuMiA1LjJoLTEuM2EuNzUuNzUgMCAwIDAgMCAxLjVoMS4zYTYgNiAwIDAgMCA1LjIgNS4ydjEuM2EuNzUuNzUgMCAwIDAgMS41IDB2LTEuM2E2IDYgMCAwIDAgNS4yLTUuMmgxLjNhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjNhNiA2IDAgMCAwLTUuMi01LjJ2LTEuM1pNMTAgMTQuNWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IE15TG9jYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ015TG9jYXRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDEzYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptLjUtMTAuNWEuNS41IDAgMCAwLTEgMHYxLjUyQTYgNiAwIDAgMCA0LjAyIDkuNUgyLjVhLjUuNSAwIDAgMCAwIDFoMS41MmE2IDYgMCAwIDAgNS40OCA1LjQ4djEuNTJhLjUuNSAwIDAgMCAxIDB2LTEuNTJhNiA2IDAgMCAwIDUuNDgtNS40OGgxLjUyYS41LjUgMCAwIDAgMC0xaC0xLjUyYTYgNiAwIDAgMC01LjQ4LTUuNDhWMi41Wk0xMCAxNWE1IDUgMCAxIDEgMC0xMCA1IDUgMCAwIDEgMCAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTmF2aWdhdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDQuNzVabTAgNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgOS43NVpNMi43NSAxNGEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05hdmlnYXRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbkxvY2F0aW9uVGFyZ2V0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05hdmlnYXRpb25Mb2NhdGlvblRhcmdldEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTIgMTAuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMS4zNGExLjUgMS41IDAgMCAwLS4wNy4yNyA0LjQ3IDQuNDcgMCAwIDAtMS44NSAxLjIzSDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIuNzUgMTVoNy4zNGExLjUgMS41IDAgMCAwIDEuMTguOThjLjA2LjE4LjEzLjM1LjIyLjUySDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0xMy4zLjMzYTEgMSAwIDEgMS0xLjEtMS42NiAxIDEgMCAwIDEgMS4xIDEuNjZabTIuOS0xLjMzaC41NWEuNS41IDAgMCAxIDAgMWgtLjU1QTMuNDkgMy40OSAwIDAgMSAxNiAxNy45NXYuNTVhLjUuNSAwIDAgMS0xIDB2LS41NUEzLjQ5IDMuNDkgMCAwIDEgMTIuMDUgMTVoLS41NWEuNS41IDAgMCAxIDAtMWguNTVBMy40OSAzLjQ5IDAgMCAxIDE1IDExLjA1di0uNTVhLjUuNSAwIDAgMSAxIDB2LjU1QTMuNDkgMy40OSAwIDAgMSAxOC45NSAxNFptLTMuMiAyLjk5YTIuNSAyLjUgMCAxIDAtLjUtNC45OCAyLjUgMi41IDAgMCAwIC41IDQuOThaXCJdKTtcbmV4cG9ydCBjb25zdCBOYXZpZ2F0aW9uTG9jYXRpb25UYXJnZXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05hdmlnYXRpb25Mb2NhdGlvblRhcmdldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm0wIDVhLjUuNSAwIDAgMCAwIDFoMTAuMmMuNC0uMzIuODQtLjU2IDEuMzItLjczLjAxLS4xLjA0LS4xOC4wNy0uMjdIMi41Wm03Ljg2IDUuNDhhMS41IDEuNSAwIDAgMS0uMjctLjQ4SDIuNWEuNS41IDAgMCAwIDAgMWg4Ljc3di0uMDJhMS41IDEuNSAwIDAgMS0uOTEtLjVabTUuMTQuMDJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTEuNWgtLjU1QTMuNDkgMy40OSAwIDAgMCAxNiAxMS4wNXYtLjU1YS41LjUgMCAwIDAtMSAwdi41NUEzLjQ5IDMuNDkgMCAwIDAgMTIuMDUgMTRoLS41NWEuNS41IDAgMCAwIDAgMWguNTVBMy40OSAzLjQ5IDAgMCAwIDE1IDE3Ljk1di41NWEuNS41IDAgMCAwIDEgMHYtLjU1QTMuNDkgMy40OSAwIDAgMCAxOC45NSAxNWguNTVhLjUuNSAwIDAgMCAwLTFabS0yLjIzIDIuMjdhMi41IDIuNSAwIDEgMS0zLjU0LTMuNTQgMi41IDIuNSAwIDAgMSAzLjU0IDMuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBOYXZpZ2F0aW9uUGxheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOYXZpZ2F0aW9uUGxheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTIgMTAuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg5LjU5Yy0uNTguNC0xLjA3LjkxLTEuNDUgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIuNzUgMTVoNy4yN2MuMDUuNTIuMTcgMS4wMy4zNSAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVaTTIwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjI5LS40NC0yLjk3LTEuNjVhLjUuNSAwIDAgMC0uNzQuNDR2My4zYzAgLjM4LjQxLjYyLjc0LjQ0bDIuOTctMS42NWEuNS41IDAgMCAwIDAtLjg4WlwiXSk7XG5leHBvcnQgY29uc3QgTmF2aWdhdGlvblBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05hdmlnYXRpb25QbGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjUgNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVabTAgNWEuNS41IDAgMCAwIDAgMWg4Ljc2Yy4zMS0uMzguNjctLjcyIDEuMDgtMUgyLjVabTcuNyA2Yy0uMDgtLjMyLS4xNS0uNjYtLjE4LTFIMi41YS41LjUgMCAwIDAgMCAxaDcuN1ptOS44LTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMjktLjQ0LTIuOTctMS42NWEuNS41IDAgMCAwLS43NC40NHYzLjNjMCAuMzguNDEuNjIuNzQuNDRsMi45Ny0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBOYXZpZ2F0aW9uVW5yZWFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05hdmlnYXRpb25VbnJlYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTcuOTggNC41Ny4wMi0uMzJhMi4yNSAyLjI1IDAgMSAwLS4yOCAxLjA4Yy4xMy0uMjQuMjItLjUuMjYtLjc2Wk0yLjc1IDRoOS43NmEzLjI4IDMuMjggMCAwIDAgLjI0IDEuNWgtMTBhLjc1Ljc1IDAgMCAxIDAtMS41Wk0yIDkuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDkuNzVaTTIuNzUgMTRhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBOYXZpZ2F0aW9uVW5yZWFkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOYXZpZ2F0aW9uVW5yZWFkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA0LjQydi0uMTdhMi4yNSAyLjI1IDAgMSAwLS4wNS40NmMuMDItLjEuMDQtLjIuMDQtLjI5Wk0yLjUgNGgxMGEzLjI4IDMuMjggMCAwIDAgLjA5IDFIMi41YS41LjUgMCAwIDEgMC0xWk0yIDkuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgTmV0d29ya0NoZWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05ldHdvcmtDaGVja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjUxIDEwLjE4YTggOCAwIDAgMSAxMC4zNy00LjY1bC41Ny0uNzIuMDgtLjFhOSA5IDAgMCAwLTExLjk1IDUuMS41LjUgMCAxIDAgLjkzLjM3Wm0xMy41LTMuODdhOS4wMiA5LjAyIDAgMCAxIDIuNDEgMy41MS41LjUgMCAwIDEtLjkzLjM2IDggOCAwIDAgMC0xLjg3LTIuODhsLjI2LS42Ni4xNC0uMzNaTTEwIDYuNWMuNjYgMCAxLjMuMSAxLjkuMjhsLS42Ny44NmE1LjUyIDUuNTIgMCAwIDAtNi41NiAzLjk4LjUuNSAwIDEgMS0uOTYtLjI0QTYuNSA2LjUgMCAwIDEgMTAgNi41Wm01IDIuMzUtLjQ0IDEuMDhjLjM1LjUxLjYgMS4wOC43NyAxLjdhLjUuNSAwIDEgMCAuOTctLjI1Yy0uMjUtLjk1LS43LTEuOC0xLjMtMi41M1pNMTAgOWguMTZsLS44MyAxLjA4QTMgMyAwIDAgMCA3IDEzYS41LjUgMCAwIDEtMSAwIDQgNCAwIDAgMSA0LTRabTMuMTcgNC4zNXYuMDJjLjA4LjA4LjIuMTMuMzMuMTNhLjUuNSAwIDAgMCAuNS0uNSA0IDQgMCAwIDAtLjE5LTEuMjFsLS42NCAxLjU2Wm0uMjItNi44NS42MS0uNzguMjMtLjI5LjA0LS4wNGEuNS41IDAgMCAxIC44Ni4zN2wtLjA0LjE2LS4xNC4zNWExMjA3LjA4IDEyMDcuMDggMCAwIDEtMi43IDYuNyA3Ny4yNiA3Ny4yNiAwIDAgMS0uNzMgMS42NiAxLjc1IDEuNzUgMCAwIDEtMy4wNC0xLjc1bC4zOC0uNTQuNy0uOTJhMzQxLjMyIDM0MS4zMiAwIDAgMSAzLjgzLTQuOTJabTEuNzQtLjc0YS41LjUgMCAwIDEtLjA0LjE2WlwiXSk7XG5leHBvcnQgY29uc3QgTmV0d29ya0NoZWNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOZXR3b3JrQ2hlY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNTEgMTAuMThhOCA4IDAgMCAxIDEwLjM3LTQuNjVsLjU3LS43Mi4wOC0uMWE5IDkgMCAwIDAtMTEuOTUgNS4xLjUuNSAwIDEgMCAuOTMuMzdabTEzLjUtMy44N2E5LjAyIDkuMDIgMCAwIDEgMi40MSAzLjUxLjUuNSAwIDAgMS0uOTMuMzYgOCA4IDAgMCAwLTEuODctMi44OGwuMjYtLjY2LjE0LS4zM1pNMTAgNi41Yy42NiAwIDEuMy4xIDEuOS4yOGwtLjY3Ljg2YTUuNTIgNS41MiAwIDAgMC02LjU2IDMuOTguNS41IDAgMSAxLS45Ni0uMjRBNi41IDYuNSAwIDAgMSAxMCA2LjVabTUgMi4zNS0uNDQgMS4wOGMuMzUuNTEuNiAxLjA4Ljc3IDEuN2EuNS41IDAgMSAwIC45Ny0uMjVjLS4yNS0uOTUtLjctMS44LTEuMy0yLjUzWk0xMCA5aC4xNmwtLjgzIDEuMDhBMyAzIDAgMCAwIDcgMTNhLjUuNSAwIDAgMS0xIDAgNCA0IDAgMCAxIDQtNFptMy4xNyA0LjM1di4wMmMuMDguMDguMi4xMy4zMy4xM2EuNS41IDAgMCAwIC41LS41IDQgNCAwIDAgMC0uMTktMS4yMWwtLjY0IDEuNTZabS4yMi02Ljg1LjYxLS43OC4yMy0uMjkuMDQtLjA0YS41LjUgMCAwIDEgLjg2LjM3bC0uMDQuMTYtLjE0LjM1YTEyMDcuMDggMTIwNy4wOCAwIDAgMS0yLjcgNi43IDc3LjI2IDc3LjI2IDAgMCAxLS43MyAxLjY2IDEuNzUgMS43NSAwIDAgMS0zLjA0LTEuNzVsLjM4LS41NC43LS45MmEzNDEuMzIgMzQxLjMyIDAgMCAxIDMuODMtNC45MlptLTEuMSAzLjAyYTMzOC45MyAzMzguOTMgMCAwIDAtMi45NCAzLjg2Ljc1Ljc1IDAgMSAwIDEuMy43NWwuMjMtLjUuNDQtMS4wNWEzNDIuNDcgMzQyLjQ3IDAgMCAwIDEuNTUtMy44bC0uNTcuNzRabTIuODQtMy43NmEuNS41IDAgMCAxLS4wNC4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IE5ld0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOZXdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuNSAyLjc1Yy40MSAwIC43NS4zNC43NS43NXY4YS43NS43NSAwIDAgMS0xLjUgMHYtOGMwLS40MS4zNC0uNzUuNzUtLjc1Wk01Ljk3IDUuOTdjLjMtLjMuNzctLjMgMS4wNiAwbDYgNmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC02LTZhLjc1Ljc1IDAgMCAxIDAtMS4wNlpNMy41IDE0Ljc1YS43NS43NSAwIDAgMCAwIDEuNWg4YS43NS43NSAwIDAgMCAwLTEuNWgtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IE5ld1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTmV3UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDNjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0xIDB2LThjMC0uMjguMjItLjUuNS0uNVpNNi4xNSA2LjE1Yy4yLS4yLjUtLjIuNyAwbDYgNmEuNS41IDAgMCAxLS43LjdsLTYtNmEuNS41IDAgMCAxIDAtLjdaTTMuNSAxNWEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04WlwiXSk7XG5leHBvcnQgY29uc3QgTmV3c0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOZXdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMTJ2LTJoMnYySDVabTEwLTcuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMy40MmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoMTEuMTZhMi41IDIuNSAwIDAgMCAyLjUtMi41di02YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxNnY3LjIzYS41LjUgMCAwIDEtMSAwVjQuNVptLTExIDJjMC0uMjguMjItLjUuNS0uNWg4YS41LjUgMCAwIDEgMCAxaC04YS41LjUgMCAwIDEtLjUtLjVaTTkuNSA5aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaTTkgMTIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNC41IDloM2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgTmV3c1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTmV3c1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA2LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTEwLjUgOWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWm0tLjUgMy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk01LjUgOWEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1ptLjUgM3YtMmgydjJINlpNMiA1YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMSAyIDJ2NS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDEzLjVWNVptMTMgMGExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY4LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjhhMSAxIDAgMCAwLTEtMXY2LjVhLjUuNSAwIDAgMS0xIDBWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5leHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTmV4dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDQuMjVjMC0xIDEuMTItMS42IDEuOTUtMS4wNGw4LjUgNS43MWMuNzMuNS43MyAxLjU3IDAgMi4wN2wtOC41IDUuOEExLjI1IDEuMjUgMCAwIDEgMyAxNS43NVY0LjI1Wm0xNC0uNzVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDEgMCAxIDB2LTEzWlwiXSk7XG5leHBvcnQgY29uc3QgTmV4dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTmV4dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMy41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAxIDAgMSAwdi0xM1pNMyA0LjI1YzAtMSAxLjEyLTEuNiAxLjk1LTEuMDRsOC41IDUuNzFjLjczLjUuNzMgMS41NyAwIDIuMDdsLTguNSA1LjhBMS4yNSAxLjI1IDAgMCAxIDMgMTUuNzVWNC4yNVptMS4zOS0uMmEuMjUuMjUgMCAwIDAtLjM5LjJ2MTEuNWMwIC4yLjIzLjMyLjQuMmw4LjQ5LTUuNzhhLjI1LjI1IDAgMCAwIDAtLjQybC04LjUtNS43WlwiXSk7XG5leHBvcnQgY29uc3QgTmV4dEZyYW1lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05leHRGcmFtZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgM2MuMjggMCAuNS4yMi41LjV2MTNhLjUuNSAwIDAgMS0xIDB2LTEzYzAtLjI4LjIyLS41LjUtLjVabTUuNDUuMjFBMS4yNSAxLjI1IDAgMCAwIDggNC4yNXYxMS41YzAgMSAxLjEyIDEuNiAxLjk1IDEuMDRsOC41LTUuOGMuNzMtLjUuNzMtMS41OCAwLTIuMDdsLTguNS01LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBOZXh0RnJhbWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05leHRGcmFtZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNjLjI4IDAgLjUuMjIuNS41djEzYS41LjUgMCAwIDEtMSAwdi0xM2MwLS4yOC4yMi0uNS41LS41Wm01LjQ1LjIxQTEuMjUgMS4yNSAwIDAgMCA4IDQuMjV2MTEuNWMwIDEgMS4xMiAxLjYgMS45NSAxLjA0bDguNS01LjhjLjczLS41LjczLTEuNTggMC0yLjA3bC04LjUtNS43Wk05IDQuMjVjMC0uMi4yMi0uMzIuMzktLjJsOC41IDUuN2MuMTUuMS4xNS4zMiAwIC40MmwtOC41IDUuNzljLS4xNy4xMS0uMzkgMC0uMzktLjJWNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCAzYTMgMyAwIDAgMSAzIDIuODJWMTBoLTQuMThhMyAzIDAgMCAwLTIuODEgMi44MkwxMCAxM3Y0SDZhMyAzIDAgMCAxLTMtMi44MlY2YTMgMyAwIDAgMSAyLjgyLTNIMTRabTIuOSA4YTIgMiAwIDAgMS0uMzYuNjVsLS4xMy4xNC00LjYyIDQuNjJhMiAyIDAgMCAxLS43OS41VjEyLjg0YTIgMiAwIDAgMSAxLjg0LTEuODRMMTMgMTFoMy45WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgM2EzIDMgMCAwIDEgMyAyLjgydjQuNTZhMiAyIDAgMCAxLS40NyAxLjI4bC0uMTIuMTMtNC42MiA0LjYyYTIgMiAwIDAgMS0xLjI0LjU4bC0uMTcuMDFINmEzIDMgMCAwIDEtMy0yLjgyVjZhMyAzIDAgMCAxIDIuODItM0gxNFptMCAxSDZhMiAyIDAgMCAwLTIgMS44NVYxNGEyIDIgMCAwIDAgMS44NSAySDEwdi0zYTMgMyAwIDAgMSAyLjgyLTNIMTZWNmEyIDIgMCAwIDAtMS44NS0ySDE0Wm0xLjc4IDdIMTNhMiAyIDAgMCAwLTIgMS44NVYxNS43OGwuMDktLjA3IDQuNjItNC42MmExIDEgMCAwIDAgLjA3LS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNUgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFINlYzLjVaTTUuNSAxMWE1LjUgNS41IDAgMCAwIDQuOS04SDE0YTMgMyAwIDAgMSAzIDIuODJWMTBoLTQuMThhMyAzIDAgMCAwLTIuODEgMi44MkwxMCAxM3Y0SDZhMyAzIDAgMCAxLTMtMi44MlYxMC40Yy43NS4zOCAxLjYuNiAyLjUuNlptMTEuNCAwYTIgMiAwIDAgMS0uMzYuNjVsLS4xMy4xNC00LjYyIDQuNjJhMiAyIDAgMCAxLS43OS41VjEyLjg0YTIgMiAwIDAgMSAxLjg0LTEuODRMMTMgMTFoMy45WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDZWMy41Wm04IC41aC0zLjJjLS4xLS4zNS0uMjQtLjY4LS40LTFIMTRhMyAzIDAgMCAxIDMgMi44MnY0LjU2YTIgMiAwIDAgMS0uNDcgMS4yOGwtLjEyLjEzLTQuNjIgNC42MmEyIDIgMCAwIDEtMS4yNC41OGwtLjE3LjAxSDZhMyAzIDAgMCAxLTMtMi44MlYxMC40Yy4zMi4xNi42NS4zIDEgLjRWMTRhMiAyIDAgMCAwIDEuODUgMkgxMHYtM2EzIDMgMCAwIDEgMi44Mi0zSDE2VjZhMiAyIDAgMCAwLTEuODUtMkgxNFptMS43OCA3SDEzYTIgMiAwIDAgMC0yIDEuODVWMTUuNzhsLjA5LS4wNyA0LjYyLTQuNjJhMSAxIDAgMCAwIC4wNy0uMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDE0LjE4QTMgMyAwIDAgMCA2IDE3aDJsLjA2LS4zNS4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OGw0LjgzLTQuODNhMi44NyAyLjg3IDAgMCAxIDIuOS0uN1Y1LjgxQTMgMyAwIDAgMCAxNCAzaC00djQuMThhMyAzIDAgMCAxLTIuODIgMi44MUw3IDEwSDN2NC4xOFptLjQ2LTUuODNBMiAyIDAgMCAwIDMuMSA5aDQuMDZhMiAyIDAgMCAwIDEuODMtMS44NUw5IDdWMy4xYTIgMiAwIDAgMC0uOC40OUwzLjYgOC4ybC0uMTMuMTRabTYuNTIgNi4wMyA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxNC4xOEEzIDMgMCAwIDAgNiAxN2gybC4wNi0uMzUuMTYtLjY1SDUuODVBMiAyIDAgMCAxIDQgMTR2LTRoMy4xOEEzIDMgMCAwIDAgMTAgN1Y0aDQuMTVBMiAyIDAgMCAxIDE2IDZ2MmMuMzQtLjAxLjY4LjAzIDEgLjEzVjUuODJBMyAzIDAgMCAwIDE0IDNIOS40NWEyIDIgMCAwIDAtMS4yNC41OUwzLjU5IDguMmwtLjEyLjEzQTIgMiAwIDAgMCAzIDkuNjJ2NC41NlpNNyA5SDQuMjJhMSAxIDAgMCAxIC4wNy0uMDlMOC45MSA0LjMgOSA0LjIyVjcuMTVBMiAyIDAgMCAxIDcgOVptMi45OCA1LjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZVBpbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlUGluRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgOS4wMnY1LjE2QTMgMyAwIDAgMCA2IDE3aDR2LTQuMThhMyAzIDAgMCAxIDIuODItMi44MUwxMyAxMGg0VjUuODJBMyAzIDAgMCAwIDE0IDNIOS40NmMuOTUgMS4xMi42IDIuODUtLjc0IDMuNTFsLTEuODkuOTItLjQ0IDEuMjhhMS44MiAxLjgyIDAgMCAxLTMgLjdMMyA5Wm0xMy41NCAyLjYzYTIgMiAwIDAgMCAuMzYtLjY1aC00LjA2YTIgMiAwIDAgMC0xLjgzIDEuODVMMTEgMTN2My45YTIgMiAwIDAgMCAuOC0uNDlsNC42MS00LjYyLjEzLS4xNFptLTgtOC4yNkw2LjYgMS40NmExLjUgMS41IDAgMCAwLTIuNC40TDMuNCAzLjUxYTEgMSAwIDAgMS0uNTcuNWwtMS4xLjM5YTEgMSAwIDAgMC0uMzkgMS42NUwyLjMgNyAxIDguM1Y5aC43TDMgNy43bC45NS45NWExIDEgMCAwIDAgMS42NS0uMzhsLjM4LTEuMWExIDEgMCAwIDEgLjUtLjU3bDEuNjUtLjhhMS41IDEuNSAwIDAgMCAuNC0yLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZVBpblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZVBpblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA5LjAydjUuMTZBMyAzIDAgMCAwIDYgMTdoNC41NWEyIDIgMCAwIDAgMS4yNC0uNTlsNC42Mi00LjYyLjEyLS4xM2EyIDIgMCAwIDAgLjQ3LTEuMjhWNS44MkEzIDMgMCAwIDAgMTQgM0g5LjQ2Yy4yNi4zLjQyLjY0LjUgMWg0LjE5QTIgMiAwIDAgMSAxNiA2djRoLTMuMThBMyAzIDAgMCAwIDEwIDEzdjNINS44NUEyIDIgMCAwIDEgNCAxNFY5LjgxYTEuODIgMS44MiAwIDAgMS0uNjEtLjRMMyA5Wk0xMyAxMWgyLjc4YTEgMSAwIDAgMS0uMDcuMDlsLTQuNjIgNC42Mi0uMDkuMDdWMTIuODVBMiAyIDAgMCAxIDEzIDExWk04LjU0IDMuMzkgNi42IDEuNDZhMS41IDEuNSAwIDAgMC0yLjQuNEwzLjQgMy41MWExIDEgMCAwIDEtLjU3LjVsLTEuMS4zOWExIDEgMCAwIDAtLjM5IDEuNjVMMi4zIDcgMSA4LjNWOWguN0wzIDcuN2wuOTUuOTVhMSAxIDAgMCAwIDEuNjUtLjM4bC4zOC0xLjFhMSAxIDAgMCAxIC41LS41N2wxLjY1LS44YTEuNSAxLjUgMCAwIDAgLjQtMi40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg1Wm0wIDMuNWMwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTFaTTE2IDZoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabTAgMy41aC41Yy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE2VjkuNVptMCAzLjVoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlYm9va1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDVhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTdaTTYgN1Y2aDZ2MUg2Wk0zIDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDVabTExIDNoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabS41IDMuNUgxNlYxMmguNWEuNS41IDAgMCAwIC41LS41VjEwYS41LjUgMCAwIDAtLjUtLjVaTTE2IDEzaC41Yy4yOCAwIC41LjIyLjUuNVYxNWEuNS41IDAgMCAxLS41LjVIMTZWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlYm9va0FkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlYm9va0FkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMnY1LjZBNS41IDUuNSAwIDAgMSA5Ljc0IDE4SDEzYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDVabTAgM2MwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC03QS41LjUgMCAwIDEgNSA3VjVabTExIDFoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabS41IDMuNUgxNlYxMmguNWEuNS41IDAgMCAwIC41LS41VjEwYS41LjUgMCAwIDAtLjUtLjVaTTE2IDEzaC41Yy4yOCAwIC41LjIyLjUuNVYxNWEuNS41IDAgMCAxLS41LjVIMTZWMTNabS02IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlYm9va0FkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIOS43NGMuMjYtLjMuNDgtLjY0LjY2LTFIMTNhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjUuMmMtLjM1LjEtLjY4LjI0LTEgLjRWNFptMi41LjVBLjUuNSAwIDAgMCA1IDV2MmMwIC4yOC4yMi41LjUuNWg3QS41LjUgMCAwIDAgMTMgN1Y1YS41LjUgMCAwIDAtLjUtLjVoLTdabS41IDJ2LTFoNnYxSDZaTTE2LjUgNkgxNnYyLjVoLjVBLjUuNSAwIDAgMCAxNyA4VjYuNWEuNS41IDAgMCAwLS41LS41Wm0wIDMuNUgxNlYxMmguNWEuNS41IDAgMCAwIC41LS41VjEwYS41LjUgMCAwIDAtLjUtLjVabTAgMy41SDE2djIuNWguNWEuNS41IDAgMCAwIC41LS41di0xLjVhLjUuNSAwIDAgMC0uNS0uNVptLTExIDZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDZ2MS41YS41LjUgMCAwIDEtMSAwVjE1SDMuNWEuNS41IDAgMCAxIDAtMUg1di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rQXJyb3dDdXJ2ZURvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZWJvb2tBcnJvd0N1cnZlRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xIDUuNWE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFptNi40LjktLjkuOVY1Ljc0QTIuNzUgMi43NSAwIDAgMCAzLjc1IDNIMy41YS41LjUgMCAxIDAgMCAxaC4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjU0bC0uOS0uOWEuNS41IDAgMCAwLS43LjcxbDEuNzUgMS43NmEuNS41IDAgMCAwIC43IDBMOC4xMiA3LjFhLjUuNSAwIDEgMC0uNzEtLjdabTMuNi0uOWE1LjUgNS41IDAgMCAxLTggNC45VjE2YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg5Ljc0QTUuNDggNS40OCAwIDAgMSAxMSA1LjVabTUgLjVoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabTAgMy41aC41Yy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE2VjkuNVptMCAzLjVoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rQXJyb3dDdXJ2ZURvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rQXJyb3dDdXJ2ZURvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEgNS41YTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWm02LjQuOS0uOS45VjUuNzRBMi43NSAyLjc1IDAgMCAwIDMuNzUgM0gzLjVhLjUuNSAwIDEgMCAwIDFoLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEuNTRsLS45LS45YS41LjUgMCAwIDAtLjcuNzFsMS43NSAxLjc2YS41LjUgMCAwIDAgLjcgMEw4LjEyIDcuMWEuNS41IDAgMSAwLS43MS0uN1ptLTQuNCA0Yy4zMS4xNi42NS4zIDEgLjRWMTZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xaC0yLjZhNS41IDUuNSAwIDAgMC0uNjYtMUgxM2EyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi01LjZaTTE2IDZoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabS41IDMuNUgxNlYxMmguNWEuNS41IDAgMCAwIC41LS41VjEwYS41LjUgMCAwIDAtLjUtLjVaTTE2IDEzaC41Yy4yOCAwIC41LjIyLjUuNVYxNWEuNS41IDAgMCAxLS41LjVIMTZWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlYm9va0Vycm9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIOS43NEE1LjUgNS41IDAgMCAwIDMgOS42VjRabTIuNSAxYS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC03Wm0xMSAxSDE2djIuNWguNUEuNS41IDAgMCAwIDE3IDhWNi41YS41LjUgMCAwIDAtLjUtLjVaTTE2IDkuNWguNWMuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNlY5LjVabS41IDMuNUgxNnYyLjVoLjVhLjUuNSAwIDAgMCAuNS0uNXYtMS41YS41LjUgMCAwIDAtLjUtLjVabS0xMSA2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wk01IDEyLjVhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMHYtMlptMS4xMyA0YS42Mi42MiAwIDEgMS0xLjI1IDAgLjYyLjYyIDAgMCAxIDEuMjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rRXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rRXJyb3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMmEyIDIgMCAwIDAtMiAydjUuNmMuMzItLjE2LjY1LS4zIDEtLjRWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxaC0yLjZjLS4xOC4zNi0uNC43LS42NiAxSDEzYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDVabTAgMy41djJjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41Wk02IDZoNnYxSDZWNlptMTAgMGguNWMuMjggMCAuNS4yMi41LjVWOGEuNS41IDAgMCAxLS41LjVIMTZWNlptMCAzLjVoLjVjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTZWOS41Wm0wIDMuNWguNWMuMjggMCAuNS4yMi41LjVWMTVhLjUuNSAwIDAgMS0uNS41SDE2VjEzWm0tNiAxLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAxMmEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlYm9va0V5ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlYm9va0V5ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMnY3LjU3YTUuOCA1LjggMCAwIDEgNi40NyAxYy44OC44MiAxLjUzIDEuOTQgMS41MyAyLjkzYTMuMyAzLjMgMCAwIDEtLjQzIDEuNTJjLS4xOC4zMy0uNDEuNjYtLjcuOThIMTNhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINVptMCAzLjVjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di0xWk0xNiA2aC41Yy4yOCAwIC41LjIyLjUuNVY4YS41LjUgMCAwIDEtLjUuNUgxNlY2Wm0wIDMuNWguNWMuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNlY5LjVabTAgMy41aC41Yy4yOCAwIC41LjIyLjUuNVYxNWEuNS41IDAgMCAxLS41LjVIMTZWMTNaTTEgMTUuNUMxIDE0LjMyIDIuNzQgMTIgNS41IDEyczQuNSAyLjMgNC41IDMuNWMwIDEuMTgtMS43NCAzLjUtNC41IDMuNVMxIDE2LjcgMSAxNS41Wm0zLjExIDIuMDhhMi41IDIuNSAwIDEgMCAyLjc4LTQuMTYgMi41IDIuNSAwIDAgMC0yLjc4IDQuMTZabTIuNjQtMS4yNWExLjUgMS41IDAgMSAwLTIuNS0xLjY2IDEuNSAxLjUgMCAwIDAgMi41IDEuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlYm9va0V5ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZWJvb2tFeWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA1YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC03Wk02IDdWNmg2djFINlpNMyA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIOS44OGMuMjgtLjMyLjUtLjY1LjY5LS45OFYxN0gxM2ExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDF2Ny4yYy0uMzUuMS0uNjkuMjItMSAuMzdWNFptMTMgMmguNWMuMjggMCAuNS4yMi41LjVWOGEuNS41IDAgMCAxLS41LjVIMTZWNlptLjUgMy41SDE2VjEyaC41YS41LjUgMCAwIDAgLjUtLjVWMTBhLjUuNSAwIDAgMC0uNS0uNVpNMTYgMTNoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1pNMSAxNS41QzEgMTQuMzIgMi43NCAxMiA1LjUgMTJzNC41IDIuMyA0LjUgMy41YzAgMS4xOC0xLjc0IDMuNS00LjUgMy41UzEgMTYuNyAxIDE1LjVabTMuMTEgMi4wOGEyLjUgMi41IDAgMSAwIDIuNzgtNC4xNiAyLjUgMi41IDAgMCAwLTIuNzggNC4xNlptMi42NC0xLjI1YTEuNSAxLjUgMCAxIDAtMi41LTEuNjYgMS41IDEuNSAwIDAgMCAyLjUgMS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rTGlnaHRuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rTGlnaHRuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEyIDIgMCAwIDAtMiAydjYuNGwuMi0uNDhBMS41IDEuNSAwIDAgMSA0LjYgOWgzLjQ3YzEuMDIgMCAxLjc1IDEgMS40MiAxLjk3bC0uMzUgMS4wNWMxLjQuMjIgMiAyIC45MSAzTDYuODYgMThIMTNhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINVptMCAzLjVjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di0xWk0xNiA2aC41Yy4yOCAwIC41LjIyLjUuNVY4YS41LjUgMCAwIDEtLjUuNUgxNlY2Wm0wIDMuNWguNWMuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNlY5LjVabTAgMy41aC41Yy4yOCAwIC41LjIyLjUuNVYxNWEuNS41IDAgMCAxLS41LjVIMTZWMTNaTTIuNSAxNmgxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM0YS41LjUgMCAwIDAtLjQ3LS42Nkg0LjU5YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tMaWdodG5pbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rTGlnaHRuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgNWEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtN1pNNiA3VjZoNnYxSDZaTTMgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDYuODZsMS4wNy0xSDEzYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMXY1LjEyYTEuNSAxLjUgMCAwIDAtLjguOGwtLjIuNDhWNFptMTMgMmguNWMuMjggMCAuNS4yMi41LjVWOGEuNS41IDAgMCAxLS41LjVIMTZWNlptLjUgMy41SDE2VjEyaC41YS41LjUgMCAwIDAgLjUtLjVWMTBhLjUuNSAwIDAgMC0uNS0uNVpNMTYgMTNoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1pNMi41IDE2aDEuNzVsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2SDQuNTlhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlYm9va1F1ZXN0aW9uTWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlYm9va1F1ZXN0aW9uTWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMnY1LjZBNS41IDUuNSAwIDAgMSA5Ljc0IDE4SDEzYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDVabTAgMy41YzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMVpNMTYgNmguNWMuMjggMCAuNS4yMi41LjVWOGEuNS41IDAgMCAxLS41LjVIMTZWNlptLjUgMy41SDE2VjEyaC41YS41LjUgMCAwIDAgLjUtLjVWMTBhLjUuNSAwIDAgMC0uNS0uNVpNMTYgMTNoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1ptLTYgMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tRdWVzdGlvbk1hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rUXVlc3Rpb25NYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMnY1LjZjLjMyLS4xNi42NS0uMyAxLS40VjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMWgtMi42Yy0uMTguMzYtLjQuNy0uNjYgMUgxM2EyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg1Wm0wIDMuNXYyYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNVpNNiA2aDZ2MUg2VjZabTEwIDBoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabTAgMy41aC41Yy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE2VjkuNVptMCAzLjVoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1ptLTYgMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tTZWN0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rU2VjdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCAyLjVhLjUuNSAwIDAgMC0xIDBWM0g4YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg1di41YS41LjUgMCAwIDAgMSAwdi0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rU2VjdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZWJvb2tTZWN0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCAyLjVhLjUuNSAwIDAgMC0xIDBWM0g4YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg1di41YS41LjUgMCAwIDAgMSAwdi0xNVpNMTMgMTZIOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg1djEyWlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tTZWN0aW9uQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlYm9va1NlY3Rpb25BcnJvd1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0IDIuNWEuNS41IDAgMCAwLTEgMFYzSDhhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEuNkE1LjUgNS41IDAgMCAxIDE0IDkuMDJWMi41Wm0uNSA3LjVhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tTZWN0aW9uQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZWJvb2tTZWN0aW9uQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgMi41YS41LjUgMCAwIDAtMSAwVjNIOGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMS42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDhhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoNXY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWMi41Wm0uNSA3LjVhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tTdWJzZWN0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rU3Vic2VjdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDUuNUEzLjUgMy41IDAgMCAxIDcuNSAySDEwYy44MiAwIDEuNTQuNCAyIDFINy41QTIuNSAyLjUgMCAwIDAgNSA1LjVWMTVhMi41IDIuNSAwIDAgMS0xLTJWNS41Wk0xMy41IDJoLS4wN2MtLjI0LjA1LS40My4zLS40My42VjRINy41QzYuNjcgNCA2IDQuNjcgNiA1LjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIMTNWMTcuNDhjLjA0LjMuMjUuNTIuNS41Mi4yOCAwIC41LS4yNy41LS42VjIuNTJjLS4wNC0uMy0uMjUtLjUyLS41LS41MlpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVib29rU3Vic2VjdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZWJvb2tTdWJzZWN0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDUuNUEzLjUgMy41IDAgMCAxIDcuNSAySDEwYy44MiAwIDEuNTQuNCAyIDFINy41QTIuNSAyLjUgMCAwIDAgNSA1LjVWMTVhMi41IDIuNSAwIDAgMS0xLTJWNS41Wk0xMy40MyAyaC4wN2MuMjUgMCAuNDYuMjMuNS41MlYxNy40YzAgLjMzLS4yMi42LS41LjYtLjI1IDAtLjQ2LS4yMy0uNS0uNTJWMTdIOGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg1VjIuNmMwLS4zLjE5LS41NS40My0uNlpNOCA1YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDVWNUg4WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZWJvb2tTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDJhMiAyIDAgMCAwLTIgMnY1LjZBNS41IDUuNSAwIDAgMSA5Ljc0IDE4SDEzYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDVabTAgM2MwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC03QS41LjUgMCAwIDEgNSA3VjVabTExIDFoLjVjLjI4IDAgLjUuMjIuNS41VjhhLjUuNSAwIDAgMS0uNS41SDE2VjZabTAgMy41aC41Yy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE2VjkuNVptMCAzLjVoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1pNMSAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEgMC0xaC40N2ExLjk5IDEuOTkgMCAwIDAtMi4zOC4zNC41LjUgMCAwIDEtLjcxLS43MUEzIDMgMCAwIDEgNyAxMi4xNVYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDQgMTYuODVWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk5IDEuOTkgMCAwIDAgMi4zOC0uMzQuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlYm9va1N5bmNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVib29rU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDQuNUEuNS41IDAgMCAwIDUgNXYyYzAgLjI4LjIyLjUuNS41aDdBLjUuNSAwIDAgMCAxMyA3VjVhLjUuNSAwIDAgMC0uNS0uNWgtN1ptLjUgMnYtMWg2djFINlpNMyA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIOS43NGMuMjYtLjMuNDgtLjY0LjY2LTFIMTNhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjUuMmMtLjM1LjEtLjY4LjI0LTEgLjRWNFptMTMgMmguNWMuMjggMCAuNS4yMi41LjVWOGEuNS41IDAgMCAxLS41LjVIMTZWNlptLjUgMy41SDE2VjEyaC41YS41LjUgMCAwIDAgLjUtLjVWMTBhLjUuNSAwIDAgMC0uNS0uNVpNMTYgMTNoLjVjLjI4IDAgLjUuMjIuNS41VjE1YS41LjUgMCAwIDEtLjUuNUgxNlYxM1pNMSAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEgMC0xaC40N2ExLjk5IDEuOTkgMCAwIDAtMi4zOC4zNC41LjUgMCAwIDEtLjcxLS43MUEzIDMgMCAwIDEgNyAxMi4xNVYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDQgMTYuODVWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk5IDEuOTkgMCAwIDAgMi4zOC0uMzQuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlcGFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVwYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAyLjVhLjUuNSAwIDAgMC0xIDBWM2gtLjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNUgxMXYtMy41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDE2VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTR2LS41YS41LjUgMCAwIDAtMSAwVjNoLTIuNXYtLjVhLjUuNSAwIDAgMC0xIDBWM0g3di0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpNNyAxMy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wm04LjY5LjVIMTIuNWEuNS41IDAgMCAwLS41LjV2My4xOWwuMTUtLjEzIDMuNDEtMy40MS4xMy0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlcGFkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlcGFkUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgN2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk03IDEwLjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWm0tMS0xMWEuNS41IDAgMCAwLS41LjVWM2gtLjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg2YS41LjUgMCAwIDAgLjM1LS4xNWw0LTRhLjUuNSAwIDAgMCAuMTUtLjM1di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxNHYtLjVhLjUuNSAwIDAgMC0xIDBWM2gtMi41di0uNWEuNS41IDAgMCAwLTEgMFYzSDd2LS41YS41LjUgMCAwIDAtLjUtLjVabTggMmMuMjggMCAuNS4yMi41LjVWMTNoLTIuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTdINS41YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVoOVptLS4yIDEwTDEyIDE2LjN2LTEuOGMwLS4yOC4yMi0uNS41LS41aDEuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVwYWRFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVwYWRFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wibTE1LjggMTAuNTUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpNNyAyLjVhLjUuNSAwIDAgMC0xIDBWM2gtLjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNUg5bC4wNi0uMzUuMzctMS41YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDhsNC44My00LjgzYy4yNy0uMjcuNTctLjQ3LjktLjZWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxNHYtLjVhLjUuNSAwIDAgMC0xIDBWM2gtMi41di0uNWEuNS41IDAgMCAwLTEgMFYzSDd2LS41Wk03LjUgN2g1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xWm01LjUgMy41YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxIDAtMWg1Yy4yOCAwIC41LjIyLjUuNVpNNy41IDEzaDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlcGFkRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZXBhZEVkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgNy41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNyAxMy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wm0tMS0xMWEuNS41IDAgMCAxIDEgMFYzaDIuNXYtLjVhLjUuNSAwIDAgMSAxIDBWM0gxM3YtLjVhLjUuNSAwIDAgMSAxIDBWM2guNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjczYy0uMzMuMTQtLjYzLjM0LS45LjYxbC0uMS4xVjQuNWEuNS41IDAgMCAwLS41LS41aC05YS41LjUgMCAwIDAtLjUuNXYxMmMwIC4yOC4yMi41LjUuNWgzLjcybC0uMTYuNjVMOSAxOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNINnYtLjVabTkuOCA4LjA1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBOb3RlcGFkUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ05vdGVwYWRQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAyLjVhLjUuNSAwIDAgMC0xIDBWM2gtLjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg1Ljg3YTMuMjEgMy4yMSAwIDAgMS0uMzctMS41YzAtMS4zIDEtMi4zOCAyLjI3LTIuNDlBMi45OSAyLjk5IDAgMCAxIDE1LjUgOWMuMTcgMCAuMzQuMDEuNS4wNFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE0di0uNWEuNS41IDAgMCAwLTEgMFYzaC0yLjV2LS41YS41LjUgMCAwIDAtMSAwVjNIN3YtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptMCA2YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wm0wLTNjMC0uMjguMjItLjUuNS0uNUgxMWEuNS41IDAgMCAxIDAgMUg3LjVhLjUuNSAwIDAgMS0uNS0uNVpNMTcuNSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZXBhZFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZXBhZFBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDdhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMCA2YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabS0xLTExYS41LjUgMCAwIDAtLjUuNVYzaC0uNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDUuODdhMy4xOCAzLjE4IDAgMCAxLS4zMy0xSDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDljLjI4IDAgLjUuMjIuNS41djQuNTRhMy4wMiAzLjAyIDAgMCAxIDEgMFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE0di0uNWEuNS41IDAgMCAwLTEgMFYzaC0yLjV2LS41YS41LjUgMCAwIDAtMSAwVjNIN3YtLjVhLjUuNSAwIDAgMC0uNS0uNVptOSAxMmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAgNWMyLjUgMCAzLjUtMS4yNSAzLjUtMi41IDAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNGMtLjgzIDAtMS41LjY3LTEuNSAxLjUgMCAxLjI1IDEgMi41IDMuNSAyLjVabS04LTlhLjUuNSAwIDAgMCAwIDFIMTFhLjUuNSAwIDAgMCAwLTFINy41WlwiXSk7XG5leHBvcnQgY29uc3QgTm90ZXBhZFNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTm90ZXBhZFNwYXJrbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTMuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTkuMDggM2ExLjQyIDEuNDIgMCAwIDAgLjE4IDEuMzJjLjE3LjI0LjQxLjQzLjcxLjUzbDEuMDYuMzVjLjE1LjA1LjMuMTMuNDcuMjkuMTEuMTEuMi4yNC4zLjQ3TDEyLjEzIDdINy41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuMzUtLjE1Yy4xLjA1LjE4LjA4LjI3LjFhMS4zIDEuMyAwIDAgMCAuNzcgMS43OWwuNzcuMjVjLjA4LjAzLjE2LjA4LjIyLjE0LjA3LjA2LjEuMTQuMTQuMjJsLjI2LjhjLjEuMjUuMjYuNDYuNDguNjIuMDcuMDUuMTUuMS4yNC4xM1YxM2gtMy41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNINnYtLjVhLjUuNSAwIDAgMSAxIDBWM2gyLjA5Wk0xMyAxMC41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41Wk03LjUgMTNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlptNSAxaDMuMTlsLS4xMy4xNS0zLjQxIDMuNDEtLjE1LjEzVjE0LjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE5vdGVwYWRTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOb3RlcGFkU3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTMuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTkuMDggM0g3di0uNWEuNS41IDAgMCAwLTEgMFYzaC0uNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDZhLjUuNSAwIDAgMCAuMzUtLjE1bDQtNGEuNS41IDAgMCAwIC4xNS0uMzV2LTEuNmExLjMyIDEuMzIgMCAwIDEtLjI0LS4xMyAxLjQgMS40IDAgMCAxLS40OC0uNjJsLS4yNi0uOGEuOTguOTggMCAwIDAtLjAyLS4wNFYxM2gtMi41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxN0g1LjVhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNWgzLjZhMS40MiAxLjQyIDAgMCAxLS4wMS0xWk0xMiAxNi4zdi0xLjhjMC0uMjguMjItLjUuNS0uNWgxLjhMMTIgMTYuM1pNNy41IDdoNC42NGwuMDEuMDVhMS41MSAxLjUxIDAgMCAwIC43LjguNS41IDAgMCAxLS4zNS4xNWgtNWEuNS41IDAgMCAxIDAtMVptMCAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTcgMTMuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlckNpcmNsZTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlMEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm02IDBjMC0xLjA3LjE1LTEuOTcuNDktMi42LjE2LS4zLjM2LS41MS42LS42Ni4yMy0uMTUuNTItLjI0LjkxLS4yNHMuNjguMS45Mi4yNGMuMjMuMTUuNDMuMzcuNi42Ny4zMy42Mi40OCAxLjUyLjQ4IDIuNTkgMCAxLjA3LS4xNSAxLjk3LS40OSAyLjYtLjE2LjMtLjM2LjUxLS42LjY2LS4yMy4xNS0uNTIuMjQtLjkxLjI0cy0uNjgtLjEtLjkyLS4yNGExLjc0IDEuNzQgMCAwIDEtLjYtLjY3QTUuNjUgNS42NSAwIDAgMSA4IDEwWm0yLTQuNWMtLjU1IDAtMS4wNC4xMy0xLjQ1LjQtLjQuMjUtLjcyLjYxLS45NCAxLjAzQTYuNiA2LjYgMCAwIDAgNyAxMGMwIDEuMTQuMTYgMi4yMy42IDMuMDcuMjMuNDIuNTQuNzguOTUgMS4wNC40MS4yNi45LjM5IDEuNDUuMzkuNTUgMCAxLjA0LS4xMyAxLjQ1LS40LjQtLjI1LjcyLS42MS45NC0xLjAzLjQ1LS44NC42MS0xLjkzLjYxLTMuMDdhNi42IDYuNiAwIDAgMC0uNi0zLjA3IDIuNzQgMi43NCAwIDAgMC0uOTUtMS4wNGMtLjQxLS4yNi0uOS0uMzktMS40NS0uMzlaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJDaXJjbGUwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGUwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxMGE3IDcgMCAxIDEtMTQgMCA3IDcgMCAwIDEgMTQgMFptLTcgOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptLTItOGMwLTEuMDcuMTUtMS45Ny40OS0yLjYuMTYtLjMuMzYtLjUxLjYtLjY2LjIzLS4xNS41Mi0uMjQuOTEtLjI0cy42OC4xLjkyLjI0Yy4yMy4xNS40My4zNy42LjY3LjMzLjYyLjQ4IDEuNTIuNDggMi41OSAwIDEuMDctLjE1IDEuOTctLjQ5IDIuNi0uMTYuMy0uMzYuNTEtLjYuNjYtLjIzLjE1LS41Mi4yNC0uOTEuMjRzLS42OC0uMS0uOTItLjI0YTEuNzQgMS43NCAwIDAgMS0uNi0uNjdBNS42NSA1LjY1IDAgMCAxIDggMTBabTItNC41Yy0uNTUgMC0xLjA0LjEzLTEuNDUuNC0uNC4yNS0uNzIuNjEtLjk0IDEuMDNBNi42IDYuNiAwIDAgMCA3IDEwYzAgMS4xNC4xNiAyLjIzLjYgMy4wNy4yMy40Mi41NC43OC45NSAxLjA0LjQxLjI2LjkuMzkgMS40NS4zOS41NSAwIDEuMDQtLjEzIDEuNDUtLjQuNC0uMjUuNzItLjYxLjk0LTEuMDMuNDUtLjg0LjYxLTEuOTMuNjEtMy4wN2E2LjYgNi42IDAgMCAwLS42LTMuMDcgMi43NCAyLjc0IDAgMCAwLS45NS0xLjA0Yy0uNDEtLjI2LS45LS4zOS0xLjQ1LS4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlckNpcmNsZTFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlMUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMS0xMS41djdhLjUuNSAwIDAgMS0xIDBWOC40OGMtLjM4LjQ4LS44Mi45Mi0xLjIyIDEuMTlhLjUuNSAwIDEgMS0uNTYtLjg0Yy4zMi0uMi43MS0uNiAxLjA3LTEuMDcuMzUtLjQ3LjYyLS45Ny43My0xLjM4YS41LjUgMCAwIDEgLjk4LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlMVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlMVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgNi41YS41LjUgMCAwIDAtLjk4LS4xMmMtLjEuNC0uMzguOTEtLjczIDEuMzgtLjM2LjQ3LS43NS44Ni0xLjA3IDEuMDdhLjUuNSAwIDAgMCAuNTYuODRjLjQtLjI3Ljg0LS43IDEuMjItMS4ydjUuMDNhLjUuNSAwIDEgMCAxIDB2LTdaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJDaXJjbGUyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ051bWJlckNpcmNsZTJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNi40LTIuN2EuOTYuOTYgMCAwIDEgLjEtLjExYy4wNy0uMDguMTgtLjE4LjMzLS4yOUEyIDIgMCAwIDEgMTAgNi41Yy44MyAwIDEuNS42NyAxLjUgMS41IDAgLjQ2LS4xNy43OC0uNDcgMS4wNi0uMjcuMjYtLjYxLjQ3LTEuMDMuNzJsLS4yNy4xN2MtLjUuMzItMS4wNy43LTEuNSAxLjI2YTMuNiAzLjYgMCAwIDAtLjczIDIuMjljMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMUg4LjUzYy4wOC0uNS4yNi0uODguNDktMS4xOC4zMi0uNC43NS0uNzEgMS4yNS0xLjAybC4yMy0uMTVjLjQxLS4yNS44Ny0uNTMgMS4yMi0uODcuNDUtLjQzLjc4LTEgLjc4LTEuNzhBMi41IDIuNSAwIDAgMCAxMCA1LjVjLS43NiAwLTEuMzYuMy0xLjc2LjZhMy40NyAzLjQ3IDAgMCAwLS42NC42LjUuNSAwIDAgMCAuOC42WlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlMlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFptNy04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk04LjQgNy4zYS41LjUgMCAwIDEtLjgtLjYgMS43NSAxLjc1IDAgMCAxIC4xOC0uMmMuMS0uMTEuMjYtLjI2LjQ2LS40LjQtLjMgMS0uNiAxLjc2LS42QTIuNSAyLjUgMCAwIDEgMTIuNSA4YzAgLjc5LS4zMyAxLjM1LS43OCAxLjc4LS4zNS4zNC0uOC42Mi0xLjIyLjg3bC0uMjMuMTVjLS41LjMtLjkzLjYxLTEuMjUgMS4wMi0uMjMuMy0uNDEuNjgtLjQ5IDEuMThIMTJhLjUuNSAwIDAgMSAwIDFIOGEuNS41IDAgMCAxLS41LS41YzAtLjk4LjI4LTEuNzIuNzMtMi4yOS40My0uNTYgMS0uOTQgMS41LTEuMjZsLjI3LS4xN2MuNDItLjI1Ljc2LS40NiAxLjAzLS43Mi4zLS4yOC40Ny0uNi40Ny0xLjA2IDAtLjgzLS42Ny0xLjUtMS41LTEuNWEyIDIgMCAwIDAtMS4xNy40IDIuNDcgMi40NyAwIDAgMC0uNDMuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlckNpcmNsZTNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlM0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tMSA4YzAtLjI4LjIyLS41LjUtLjVoLjVjMS4wMiAwIDEuNzUtLjczIDEuNzUtMS41UzExLjAyIDYuNSAxMCA2LjVhMi41MyAyLjUzIDAgMCAwLTEuODcuODIuNS41IDAgMCAxLS43Ni0uNjR2LS4wMWwuMDItLjAxYTIgMiAwIDAgMSAuMTctLjE4QTMuNTMgMy41MyAwIDAgMSAxMCA1LjVjMS40NiAwIDIuNzUgMS4wNyAyLjc1IDIuNWEyLjQgMi40IDAgMCAxLTEuMSAyIDIuNCAyLjQgMCAwIDEgMS4xIDJjMCAxLjQzLTEuMjkgMi41LTIuNzUgMi41YTMuNTMgMy41MyAwIDAgMS0yLjYxLTEuMTZsLS4wMi0uMDFhLjUuNSAwIDAgMSAuNzYtLjY1bC4wMi4wMi4xLjA5YTIuNTMgMi41MyAwIDAgMCAxLjc2LjcxYzEuMDEgMCAxLjc0LS43MyAxLjc0LTEuNXMtLjczLTEuNS0xLjc1LTEuNWgtLjVBLjUuNSAwIDAgMSA5IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlM1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlM1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFptNy04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk03LjQzIDcuMzhhLjUuNSAwIDAgMCAuNy0uMDYuOTguOTggMCAwIDEgLjExLS4xMWMuMDktLjA4LjIxLS4xOC4zOC0uMjkuMzMtLjIxLjgtLjQyIDEuMzgtLjQyIDEuMDIgMCAxLjc1LjczIDEuNzUgMS41UzExLjAyIDkuNSAxMCA5LjVoLS41YS41LjUgMCAwIDAgMCAxaC41YzEuMDIgMCAxLjc1LjczIDEuNzUgMS41cy0uNzMgMS41LTEuNzUgMS41YTIuNTMgMi41MyAwIDAgMS0xLjg3LS44Mi41LjUgMCAwIDAtLjc2LjY0di4wMWwuMDIuMDFhMS44NSAxLjg1IDAgMCAwIC4xNy4xOCAzLjUzIDMuNTMgMCAwIDAgMi40NC45OGMxLjQ2IDAgMi43NS0xLjA3IDIuNzUtMi41YTIuNCAyLjQgMCAwIDAtMS4xLTIgMi40IDIuNCAwIDAgMCAxLjEtMmMwLTEuNDMtMS4yOS0yLjUtMi43NS0yLjVhMy41MyAzLjUzIDAgMCAwLTIuNjEgMS4xNmwtLjAyLjAxYS41LjUgMCAwIDAgLjA2LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGU0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTEwLTMuN2EuNzUuNzUgMCAwIDAtMS4zNy0uNDFsLTMuNTQgNS4xN2EuNi42IDAgMCAwIC41Ljk0aDMuNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTJIMTNhLjUuNSAwIDAgMCAwLTFoLTFWNi4zWm0tMSAuODJWMTFIOC4zNUwxMSA3LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlNFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFptNy04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0yIDQuM2EuNzUuNzUgMCAwIDAtMS4zNy0uNDFsLTMuNTQgNS4xN2EuNi42IDAgMCAwIC41Ljk0aDMuNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTJIMTNhLjUuNSAwIDAgMCAwLTFoLTFWNi4zWm0tMSAuODJWMTFIOC4zNUwxMSA3LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlNUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGU1RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTYuOC00YS41LjUgMCAwIDAtLjUuNDVMOCA5LjJhLjUuNSAwIDAgMCAuNTEuNTVoLjA3YTM3LjgyIDM3LjgyIDAgMCAxIDEuOC4wMiAxLjg3IDEuODcgMCAxIDEtMS45MyAyLjcuNS41IDAgMSAwLS45LjQ0IDIuODcgMi44NyAwIDEgMCAyLjk4LTQuMTMgMTAuOTEgMTAuOTEgMCAwIDAtMS40Ny0uMDRMOS4yNSA3SDEyYS41LjUgMCAxIDAgMC0xSDguOFpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlckNpcmNsZTVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ051bWJlckNpcmNsZTVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBabTUuMy0zLjU1QS41LjUgMCAwIDEgOC44IDZIMTJhLjUuNSAwIDEgMSAwIDFIOS4yNWwtLjIgMS43NGguMjVjLjQyIDAgLjk1IDAgMS4yMi4wNGEyLjg3IDIuODcgMCAxIDEtMi45NyA0LjEzLjUuNSAwIDAgMSAuOS0uNDUgMS44NyAxLjg3IDAgMSAwIDEuOTQtMi43IDEwLjUxIDEwLjUxIDAgMCAwLTEuNjQtLjAyaC0uMTdsLS4wNS4wMWgtLjAyYS41LjUgMCAwIDEtLjUtLjU1bC4zLTIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJDaXJjbGU2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ051bWJlckNpcmNsZTZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlptMCA3LjVjMS4yIDAgMiAuODggMiAycy0uOCAyLTIgMmEyIDIgMCAxIDEgMC00Wm0wIDVhMy4yIDMuMiAwIDAgMS0yLjQzLTEuMDRDNi44OSAxMi43MSA2LjUgMTEuNTggNi41IDEwYzAtMS4xNy4yNi0yLjI4Ljg0LTMuMTFBMy4xMiAzLjEyIDAgMCAxIDEwIDUuNWMxLjYyIDAgMi40MiAxLjEgMi42OCAxLjU2YS41LjUgMCAwIDEtLjg3LjVBMi4wMiAyLjAyIDAgMCAwIDEwIDYuNWMtLjgzIDAtMS40My4zNi0xLjg0Ljk2YTQuNCA0LjQgMCAwIDAtLjY2IDIuMzhBMyAzIDAgMCAxIDEwIDguNWMxLjggMCAzIDEuMzYgMyAzcy0xLjIgMy0zIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJDaXJjbGU2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGU2UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm04LS41YTIgMiAwIDEgMCAwIDRjMS4yIDAgMi0uODggMi0ycy0uOC0yLTItMlptMCA1YTMuMiAzLjIgMCAwIDEtMi40My0xLjA0QzYuODkgMTIuNzEgNi41IDExLjU4IDYuNSAxMGMwLTEuMTcuMjYtMi4yOC44NC0zLjExQTMuMTIgMy4xMiAwIDAgMSAxMCA1LjVjMS42MiAwIDIuNDIgMS4xIDIuNjggMS41NmEuNS41IDAgMCAxLS44Ny41QTIuMDIgMi4wMiAwIDAgMCAxMCA2LjVjLS44MyAwLTEuNDMuMzYtMS44NC45NmE0LjQgNC40IDAgMCAwLS42NiAyLjM4QTMgMyAwIDAgMSAxMCA4LjVjMS44IDAgMyAxLjM2IDMgM3MtMS4yIDMtMyAzWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlN0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGU3RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTUuNS00YS41LjUgMCAwIDAgMCAxaDQuMDhBMjAuMyAyMC4zIDAgMCAwIDkgMTMuOTJhLjUuNSAwIDEgMCAuOTguMTYgMTkuMyAxOS4zIDAgMCAxIDIuOS03LjI1VjYuOGguMDFhLjUuNSAwIDAgMC0uNC0uOGgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlckNpcmNsZTdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ051bWJlckNpcmNsZTdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMTBhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBabTctOGE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNNy41IDZhLjUuNSAwIDAgMCAwIDFoNC4wOEEyMC4zIDIwLjMgMCAwIDAgOSAxMy45MmEuNS41IDAgMSAwIC45OC4xNiAxOS4zIDE5LjMgMCAwIDEgMi45LTcuMjVWNi44aC4wMWEuNS41IDAgMCAwLS40LS44aC01WlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGU4RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabTAgNC41Yy0uODYgMC0xLjUuNjUtMS41IDEuMzggMCAuNzIuNjQgMS4zNyAxLjUgMS4zN3MxLjUtLjY1IDEuNS0xLjM4YzAtLjcyLS42NC0xLjM3LTEuNS0xLjM3Wm0xLjU3IDMuMjJjLjcuNDcgMS4xOCAxLjI1IDEuMTggMi4xNUEyLjY5IDIuNjkgMCAwIDEgMTAgMTQuNWEyLjY5IDIuNjkgMCAwIDEtMi43NS0yLjYzYzAtLjkuNDctMS42OCAxLjE4LTIuMTVhMi4zMiAyLjMyIDAgMCAxLS45My0xLjg1QTIuNDQgMi40NCAwIDAgMSAxMCA1LjVjMS4zNSAwIDIuNSAxLjAzIDIuNSAyLjM4IDAgLjc1LS4zNyAxLjQxLS45MyAxLjg0Wm0tMS41Ny41M2MtMSAwLTEuNzUuNzUtMS43NSAxLjYzIDAgLjg3Ljc2IDEuNjIgMS43NSAxLjYyIDEgMCAxLjc1LS43NSAxLjc1LTEuNjMgMC0uODctLjc2LTEuNjItMS43NS0xLjYyWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyQ2lyY2xlOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlOFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptLTggN2E4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC0zLjVjLjg2IDAgMS41LjY1IDEuNSAxLjM4IDAgLjcyLS42NCAxLjM3LTEuNSAxLjM3UzguNSA4LjYgOC41IDcuODdjMC0uNzIuNjQtMS4zNyAxLjUtMS4zN1ptMS41NyAzLjIyYy41Ni0uNDMuOTMtMS4wOS45My0xLjg1QTIuNDQgMi40NCAwIDAgMCAxMCA1LjVhMi40NCAyLjQ0IDAgMCAwLTIuNSAyLjM4YzAgLjc1LjM3IDEuNDEuOTMgMS44NGEyLjU4IDIuNTggMCAwIDAtMS4xOCAyLjE1QTIuNjkgMi42OSAwIDAgMCAxMCAxNC41YzEuNSAwIDIuNzUtMS4xNSAyLjc1LTIuNjMgMC0uOS0uNDctMS42OC0xLjE4LTIuMTVabS0xLjU3LjUzYzEgMCAxLjc1Ljc1IDEuNzUgMS42MyAwIC44Ny0uNzYgMS42Mi0xLjc1IDEuNjItMSAwLTEuNzUtLjc1LTEuNzUtMS42MyAwLS44Ny43Ni0xLjYyIDEuNzUtMS42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlckNpcmNsZTlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyQ2lyY2xlOUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0wIDguNWMtMS4yIDAtMi0uODgtMi0ycy44LTIgMi0yYTIgMiAwIDEgMSAwIDRabTIuNS0uMzRBMyAzIDAgMCAxIDEwIDExLjVjLTEuOCAwLTMtMS4zNi0zLTNzMS4yLTMgMy0zYy44NiAwIDEuNzYuMjkgMi40MyAxLjA0LjY4Ljc1IDEuMDcgMS44OCAxLjA3IDMuNDZhNS41IDUuNSAwIDAgMS0uODQgMy4xMUEzLjEyIDMuMTIgMCAwIDEgMTAgMTQuNWEzLjAyIDMuMDIgMCAwIDEtMi42OC0xLjU2LjUuNSAwIDEgMSAuODctLjVjLjE5LjM0LjcyIDEuMDYgMS44MSAxLjA2LjgzIDAgMS40My0uMzYgMS44NC0uOTYuNC0uNTguNjMtMS40LjY2LTIuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJDaXJjbGU5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJDaXJjbGU5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxN2E3IDcgMCAxIDAgMC0xNCA3IDcgMCAwIDAgMCAxNFptOC03YTggOCAwIDEgMS0xNiAwIDggOCAwIDAgMSAxNiAwWm0tOCAuNWEyIDIgMCAxIDAgMC00Yy0xLjIgMC0yIC44OC0yIDJzLjggMiAyIDJabTAtNWMuODYgMCAxLjc2LjI5IDIuNDMgMS4wNC42OC43NSAxLjA3IDEuODggMS4wNyAzLjQ2YTUuNSA1LjUgMCAwIDEtLjg0IDMuMTFBMy4xMiAzLjEyIDAgMCAxIDEwIDE0LjVhMy4wMiAzLjAyIDAgMCAxLTIuNjgtMS41Ni41LjUgMCAxIDEgLjg3LS41Yy4xOS4zNC43MiAxLjA2IDEuODEgMS4wNi44MyAwIDEuNDMtLjM2IDEuODQtLjk2LjQtLjU4LjYzLTEuNC42Ni0yLjM4QTMgMyAwIDAgMSAxMCAxMS41Yy0xLjggMC0zLTEuMzYtMy0zczEuMi0zIDMtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlclJvd0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJSb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDRabTEgMy41YS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTdaTTEzIDNhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJoLTNabS41IDNoMmMuMjggMCAuNS4yMi41LjVWMTBhLjUuNSAwIDAgMS0uNS41SDE0VjEzaDEuNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41VjEwYzAtLjI4LjIyLS41LjUtLjVIMTVWN2gtMS41YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyUm93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJSb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNi41YS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTdaTTQgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoM2EyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg0Wk0zIDVhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2MTBhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNVptMTAuNSAxYS41LjUgMCAwIDAgMCAxSDE1djIuNWgtMS41YS41LjUgMCAwIDAtLjUuNXYzLjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUgxNHYtMi41aDEuNWEuNS41IDAgMCAwIC41LS41VjYuNWEuNS41IDAgMCAwLS41LS41aC0yWk0xMyAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yaC0zWm0tMSAyYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFoLTNhMSAxIDAgMCAxLTEtMVY1WlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyU3ltYm9sRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ051bWJlclN5bWJvbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04Ljk5IDIuODhhLjc1Ljc1IDAgMCAwLTEuNDgtLjI2TDYuODQgNi41SDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuODNsLS42OCA0SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuODlMNSAxNy4xMmEuNzUuNzUgMCAxIDAgMS40OC4yNmwuNjctMy44OGg0LjQ4TDExIDE3LjEyYS43NS43NSAwIDEgMCAxLjQ4LjI2bC42Ny0zLjg4aDMuMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuODRsLjY5LTRoMy4xNGEuNzUuNzUgMCAxIDAgMC0xLjVoLTIuODhsLjYyLTMuNjJhLjc1Ljc1IDAgMCAwLTEuNDgtLjI2bC0uNjcgMy44OEg4LjM3bC42Mi0zLjYyWk04LjEgOGg0LjQ3bC0uNjggNEg3LjQybC42OS00WlwiXSk7XG5leHBvcnQgY29uc3QgTnVtYmVyU3ltYm9sUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJTeW1ib2xSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguOTkgMi42YS41LjUgMCAwIDAtLjk4LS4yTDcuMDkgN0gzLjVhLjUuNSAwIDEgMCAwIDFoMy4zOWwtLjggNEgyLjVhLjUuNSAwIDAgMCAwIDFoMy40TDUgMTcuNGEuNS41IDAgMSAwIC45OC4ybC45Mi00LjZoNWwtLjkgNC40YS41LjUgMCAwIDAgLjk4LjJsLjk1LTQuNmgzLjU2YS41LjUgMCAwIDAgMC0xaC0zLjM2bC44Mi00aDMuNTRhLjUuNSAwIDEgMCAwLTFoLTMuMzNsLjktNC4zOWEuNS41IDAgMSAwLS45OC0uMmwtLjk1IDQuNkg4LjExbC44OC00LjQxWk03LjkxIDhoNS4wM2wtLjgyIDRoLTVsLjc5LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJTeW1ib2xEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ051bWJlclN5bWJvbERpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC45OSAyLjg4YS43NS43NSAwIDAgMC0xLjQ4LS4yNkw2Ljg0IDYuNUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgyLjgzbC0uNjggNEgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWgyLjg5TDUgMTcuMTJhLjc1Ljc1IDAgMSAwIDEuNDguMjZsLjY3LTMuODhIOS4xYy4xLS41My4yNy0xLjA0LjUxLTEuNUg3LjQybC42OS00aDQuNDdsLS4yNCAxLjQ0Yy41LS4yMSAxLjAzLS4zNSAxLjU5LS40MUwxNC4xMSA4aDMuMTRhLjc1Ljc1IDAgMSAwIDAtMS41aC0yLjg4bC42Mi0zLjYyYS43NS43NSAwIDAgMC0xLjQ4LS4yNmwtLjY3IDMuODhIOC4zN2wuNjItMy42MlpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBOdW1iZXJTeW1ib2xEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJTeW1ib2xEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljk5IDIuNmEuNS41IDAgMCAwLS45OC0uMkw3LjA5IDdIMy41YS41LjUgMCAxIDAgMCAxaDMuMzlsLS44IDRIMi41YS41LjUgMCAwIDAgMCAxaDMuNEw1IDE3LjRhLjUuNSAwIDEgMCAuOTguMmwuOTItNC42aDIuM2MuMS0uMzUuMjMtLjY5LjQtMUg3LjFsLjgtNGg1LjAzbC0uMjcgMS4zMWMuMzQtLjEyLjctLjIgMS4wOC0uMjZMMTMuOTYgOGgzLjU0YS41LjUgMCAxIDAgMC0xaC0zLjMzbC45LTQuMzlhLjUuNSAwIDEgMC0uOTgtLjJsLS45NSA0LjZIOC4xMWwuODgtNC40MVpNMTkgMTQuNWE0LjUgNC41IDAgMSAwLTkgMCA0LjUgNC41IDAgMCAwIDkgMFptLTIuNjUtMS4xNS0xLjE0IDEuMTUgMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS4xNS0xLjE0LTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNS0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTQgMS4xNS0xLjE0YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlclN5bWJvbFNxdWFyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdOdW1iZXJTeW1ib2xTcXVhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTEuNDUgOS0uNDMgMkg4LjU1bC40My0yaDIuNDdaTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptMy42IDMuMDFhLjUuNSAwIDAgMSAuMzkuNkw5LjE5IDhoMi40OEwxMiA2LjRhLjUuNSAwIDAgMSAuOTguMmwtLjMgMS40aC44MWEuNS41IDAgMCAxIDAgMWgtMS4wMmwtLjQzIDJIMTNhLjUuNSAwIDAgMSAwIDFoLTEuMTdsLS4zNCAxLjZhLjUuNSAwIDEgMS0uOTgtLjJsLjMtMS40SDguMzNMOCAxMy42YS41LjUgMCAxIDEtLjk4LS4ybC4zLTEuNEg2LjVhLjUuNSAwIDAgMSAwLTFoMS4wMmwuNDMtMkg3YS41LjUgMCAwIDEgMC0xaDEuMTdsLjM0LTEuNmEuNS41IDAgMCAxIC42LS4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IE51bWJlclN5bWJvbFNxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignTnVtYmVyU3ltYm9sU3F1YXJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjEgNi4wMWEuNS41IDAgMCAxIC4zOS42TDkuMTkgOGgyLjQ4TDEyIDYuNGEuNS41IDAgMCAxIC45OC4ybC0uMyAxLjRoLjgxYS41LjUgMCAwIDEgMCAxaC0xLjAybC0uNDMgMkgxM2EuNS41IDAgMCAxIDAgMWgtMS4xN2wtLjM0IDEuNmEuNS41IDAgMSAxLS45OC0uMmwuMy0xLjRIOC4zM0w4IDEzLjZhLjUuNSAwIDEgMS0uOTgtLjJsLjMtMS40SDYuNWEuNS41IDAgMCAxIDAtMWgxLjAybC40My0ySDdhLjUuNSAwIDAgMSAwLTFoMS4xN2wuMzQtMS42YS41LjUgMCAwIDEgLjYtLjM5Wk04LjU1IDExaDIuNDdsLjQzLTJIOC45OGwtLjQzIDJaTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IE9wZW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3BlbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2Ny41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDcuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJhLjc1Ljc1IDAgMCAxIDEuNSAwdjJjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNy41QTMuMjUgMy4yNSAwIDAgMSAzIDEzLjc1di03LjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMmEuNzUuNzUgMCAwIDEgMCAxLjVoLTJabTQuMjUtLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNWMuNDEgMCAuNzUuMzQuNzUuNzV2NWEuNzUuNzUgMCAwIDEtMS41IDBWNS41NmwtMy43MiAzLjcyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMy43Mi0zLjcyaC0zLjE5YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgT3BlblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3BlblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtMi41YS41LjUgMCAwIDEgMSAwVjE0YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZhMyAzIDAgMCAxIDMtM2gyLjVhLjUuNSAwIDAgMSAwIDFINlptNS0uNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDBWNC43bC00LjE1IDQuMTVhLjUuNSAwIDAgMS0uNy0uN0wxNS4yOSA0SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE9wZW5Gb2xkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3BlbkZvbGRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNIMTRjMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNXYyYS43NS43NSAwIDAgMS0xLjUgMHYtMmMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINi4yNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2Ny41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDRhLjc1Ljc1IDAgMCAxIDAgMS41aC00QTMuMjUgMy4yNSAwIDAgMSAzIDEzLjc1di03LjVabTUgMi41YzAtLjQxLjM0LS43NS43NS0uNzVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtMi42OWw1LjIyIDUuMjJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkw5LjUgMTAuNTZ2Mi42OWEuNzUuNzUgMCAwIDEtMS41IDB2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE9wZW5Gb2xkZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ09wZW5Gb2xkZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g0LjVhLjUuNSAwIDAgMCAwLTFINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2Mi41YS41LjUgMCAwIDAgMSAwVjZhMyAzIDAgMCAwLTMtM0g2Wm0yLjE1IDUuMTVBLjUuNSAwIDAgMSA4LjUgOGg0Ljk5YS41LjUgMCAwIDEgMCAxSDkuN2w2LjE1IDYuMTVhLjUuNSAwIDAgMS0uNy43TDkgOS43MXYzLjc5YS41LjUgMCAxIDEtMSAwdi01YS41LjUgMCAwIDEgLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IE9wZW5PZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3Blbk9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIm0yLjg1IDIuMTUgMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0xLjQ4LTEuNDhjLS41NC40LTEuMi42My0xLjkyLjYzaC03LjVBMy4yNSAzLjI1IDAgMCAxIDMgMTMuNzV2LTcuNWMwLS43Mi4yMy0xLjM4LjYzLTEuOTJMMi4xNSAyLjg1YS41LjUgMCAxIDEgLjctLjdabTExLjczIDEzLjE0TDQuNzEgNS40MmMtLjEzLjI1LS4yMS41My0uMjEuODN2Ny41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDcuNWMuMyAwIC41OS0uMDguODMtLjIxWm0tNC4wMS02Ljg1Ljk5IDFhLjc1Ljc1IDAgMCAwIC4yMi0uMTZsMy43Mi0zLjcydjMuMTlhLjc1Ljc1IDAgMCAwIDEuNSAwdi01YS43NS43NSAwIDAgMC0uNzUtLjc1aC01YS43NS43NSAwIDAgMCAwIDEuNWgzLjE5bC0zLjcyIDMuNzJhLjc1Ljc1IDAgMCAwLS4xNS4yMlptNi4yOCA2LjI5LTEuMzUtMS4zNXYtMS42M2EuNzUuNzUgMCAwIDEgMS41IDB2MmMwIC4zNC0uMDUuNjctLjE1Ljk4Wk01LjI3IDMuMTUgNi42MiA0LjVoMS42M2EuNzUuNzUgMCAwIDAgMC0xLjVoLTJjLS4zNCAwLS42Ny4wNS0uOTguMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBPcGVuT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdPcGVuT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIm0yLjg1IDIuMTUgMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0xLjQxLTEuNGMtLjUuMzQtMS4xLjU1LTEuNzQuNTVINmEzIDMgMCAwIDEtMy0zVjZjMC0uNjUuMi0xLjI1LjU1LTEuNzRsLTEuNC0xLjRhLjUuNSAwIDEgMSAuNy0uNzFabTEyLjE3IDEzLjU3TDQuMjggNC45OEEyIDIgMCAwIDAgNCA2djhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAxLjAyLS4yOFptMS44OC0uOTQtLjktLjlWMTEuNWEuNS41IDAgMCAxIDEgMFYxNGEzIDMgMCAwIDEtLjEuNzhaTTUuMjIgMy4xbC45LjlIOC41YS41LjUgMCAwIDAgMC0xSDZhMyAzIDAgMCAwLS43OC4xWm01Ljc4LjRjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwVjQuN2wtNC4xNSA0LjE1YS41LjUgMCAwIDEtLjctLjdMMTUuMjkgNEgxMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBPcHRpb25zRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ09wdGlvbnNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMjUgNWgtMi4zNmEyLjUgMi41IDAgMCAwLTQuNzggMEgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg3LjM2YTIuNSAyLjUgMCAwIDAgNC43OCAwaDIuMzZhLjc1Ljc1IDAgMCAwIDAtMS41Wm0tMTQuNSA4LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuMzZhMi41IDIuNSAwIDAgMCA0Ljc4IDBoNy4zNmEuNzUuNzUgMCAwIDAgMC0xLjVIOS44OWEyLjUgMi41IDAgMCAwLTQuNzggMEgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgT3B0aW9uc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3B0aW9uc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuOTUgNWEyLjUgMi41IDAgMCAwLTQuOSAwSDIuNWEuNS41IDAgMCAwIDAgMWg3LjU1YTIuNSAyLjUgMCAwIDAgNC45IDBoMi41NWEuNS41IDAgMCAwIDAtMWgtMi41NVpNMTIuNSA3YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm0tMi41NSA3YTIuNSAyLjUgMCAwIDAtNC45IDBIMi41YS41LjUgMCAwIDAgMCAxaDIuNTVhMi41IDIuNSAwIDAgMCA0LjkgMGg3LjU1YS41LjUgMCAwIDAgMC0xSDkuOTVaTTcuNSAxNmExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdPcmdhbml6YXRpb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyA1YTMgMyAwIDEgMSAzLjUgMi45NlY5LjVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXYxLjA0YTMgMyAwIDEgMS0xIDBWMTFhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwLS41LjV2MS4wNGEzIDMgMCAxIDEtMSAwVjExYzAtLjgzLjY3LTEuNSAxLjUtMS41aDNWNy45NkEzIDMgMCAwIDEgNyA1WlwiXSk7XG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdPcmdhbml6YXRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhMyAzIDAgMCAwLS41IDUuOTZWOS41aC0zYy0uODMgMC0xLjUuNjctMS41IDEuNXYxLjA0YTMgMyAwIDEgMCAxIDBWMTFjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxLjA0YTMgMyAwIDEgMCAxIDBWMTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zVjcuOTZBMyAzIDAgMCAwIDEwIDJaTTggNWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaTTMuNSAxNWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabTExLTJhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00WlwiXSk7XG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9uSG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdPcmdhbml6YXRpb25Ib3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMTNhMyAzIDAgMSAxIDIuOTYtMy41SDkuNXYtM2MwLS44My42Ny0xLjUgMS41LTEuNWgxLjA0YTMgMyAwIDEgMSAwIDFIMTFhLjUuNSAwIDAgMC0uNS41djdjMCAuMjguMjIuNS41LjVoMS4wNGEzIDMgMCAxIDEgMCAxSDExYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtM0g3Ljk2QTMgMyAwIDAgMSA1IDEzWlwiXSk7XG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9uSG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3JnYW5pemF0aW9uSG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAxMGEzIDMgMCAwIDAgNS45Ni41SDkuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuMDRhMyAzIDAgMSAwIDAtMUgxMWEuNS41IDAgMCAxLS41LS41di03YzAtLjI4LjIyLS41LjUtLjVoMS4wNGEzIDMgMCAxIDAgMC0xSDExYy0uODMgMC0xLjUuNjctMS41IDEuNXYzSDcuOTZBMyAzIDAgMCAwIDIgMTBabTMgMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRabTEwIDQuNWEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRabS0yLTExYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IE9yaWVudGF0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ09yaWVudGF0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMjUgNWEuMjUuMjUgMCAwIDAtLjI1LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1QzIgNC41NiAyLjU2IDQgMy4yNSA0aC4yNWEuNS41IDAgMCAxIDAgMWgtLjI1WlwiLCBcIk01IDQuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpcIiwgXCJNOCA0LjVjMC0uMjguMjItLjUuNS0uNWguMjVDOS40NCA0IDEwIDQuNTYgMTAgNS4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNUEuMjUuMjUgMCAwIDAgOC43NSA1SDguNWEuNS41IDAgMCAxLS41LS41WlwiLCBcIm0xNC44NSA1Ljg1LS4xNS4xNmEzLjUgMy41IDAgMCAxLS4yIDYuOTkuNS41IDAgMCAxIDAtMSAyLjUgMi41IDAgMCAwIC4yMi01bC4xMy4xNWEuNS41IDAgMCAxLS43LjdsLTEtMWEuNS41IDAgMCAxIDAtLjdsMS0xYS41LjUgMCAwIDEgLjcuN1pcIiwgXCJNMy41IDlDMi42NyA5IDIgOS42NyAyIDEwLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTJhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLTEgMHYxYzAgLjI4LjIyLjUuNS41aC02WlwiLCBcIk0zIDcuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWlwiXSk7XG5leHBvcnQgY29uc3QgT3JpZW50YXRpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ09yaWVudGF0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjI1IDVhLjI1LjI1IDAgMCAwLS4yNS4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNUMyIDQuNTYgMi41NiA0IDMuMjUgNGguMjVhLjUuNSAwIDAgMSAwIDFoLS4yNVpcIiwgXCJNNSA0LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaXCIsIFwiTTggNC41YzAtLjI4LjIyLS41LjUtLjVoLjI1QzkuNDQgNCAxMCA0LjU2IDEwIDUuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVBLjI1LjI1IDAgMCAwIDguNzUgNUg4LjVhLjUuNSAwIDAgMS0uNS0uNVpcIiwgXCJtMTQuODUgNS44NS0uMTUuMTZhMy41IDMuNSAwIDAgMS0uMiA2Ljk5LjUuNSAwIDAgMSAwLTEgMi41IDIuNSAwIDAgMCAuMjItNWwuMTMuMTVhLjUuNSAwIDAgMS0uNy43bC0xLTFhLjUuNSAwIDAgMSAwLS43bDEtMWEuNS41IDAgMCAxIC43LjdaXCIsIFwiTTIgMTAuNUMyIDkuNjcgMi42NyA5IDMuNSA5aDhjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTRabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNWgtOFpcIiwgXCJNOS41IDlhLjUuNSAwIDAgMS0uNS0uNXYtMWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtLjUuNVpcIiwgXCJNMyA3LjVhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAwIDEgMHYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IE92YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignT3ZhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTYgNiAwIDAgMSA2LTZoNGE2IDYgMCAwIDEgMCAxMkg4YTYgNiAwIDAgMS02LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBPdmFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdPdmFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDEwYTYgNiAwIDAgMSA2LTZoNGE2IDYgMCAwIDEgMCAxMkg4YTYgNiAwIDAgMS02LTZabTYtNWE1IDUgMCAwIDAgMCAxMGg0YTUgNSAwIDAgMCAwLTEwSDhaXCJdKTtcbmV4cG9ydCBjb25zdCBPdmVuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ092ZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2MWgxNFY2YTMgMyAwIDAgMC0zLTNINlptMS41IDIuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm02LjUgMGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tNCAuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wk0zIDE0VjhoMTR2NmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1ptMy41LTRhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBPdmVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdPdmVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDE0VjhoMTJ2NmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlptMTItN0g0VjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MVptLTkuMjUtLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptNi41IDBhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tMi41LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk02IDlhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFINlptMCA1di00aDh2NEg2WlwiXSk7XG5leHBvcnQgY29uc3QgUGFkZGluZ0Rvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFkZGluZ0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy43NSAyLjc1YzAgLjQxLjM0Ljc1Ljc1Ljc1SDE1QS43NS43NSAwIDAgMCAxNSAySDQuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0wIDE0LjVjMCAuNDEuMzQuNzUuNzUuNzVoMS4zMWEuNzUuNzUgMCAwIDAgMC0xLjVINC41YS43NS43NSAwIDAgMC0uNzUuNzVabTMuOTQgMGMwIC40MS4zMy43NS43NS43NWgyLjYyYS43NS43NSAwIDAgMCAwLTEuNUg4LjQ0YS43NS43NSAwIDAgMC0uNzUuNzVabTUuMjUgMGMwIC40MS4zMy43NS43NS43NUgxNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuMzFhLjc1Ljc1IDAgMCAwLS43NS43NVptLTIuNjYtMS45N2MtLjMuMy0uNzcuMy0xLjA2IDBsLTQuMjUtNC4yNWEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2TDkgMTIuOTRWNS43NWEuNzUuNzUgMCAwIDEgMS41IDB2Ny4xOWwyLjk3LTIuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNC4yNSA0LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFkZGluZ0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhZGRpbmdEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xNC4zNSAxMS4zNS00LjUgNC41YS41LjUgMCAwIDEtLjcgMGwtNC41LTQuNWEuNS41IDAgMCAxIC43LS43TDkgMTQuMjlWNC41YS41LjUgMCAwIDEgMSAwdjkuOGwzLjY1LTMuNjVhLjUuNSAwIDAgMSAuNy43Wk0zLjUgM2EuNS41IDAgMCAxIDAtMWgxMmEuNS41IDAgMCAxIDAgMWgtMTJabTAgMTVhLjUuNSAwIDAgMSAwLTFoMWEuNS41IDAgMCAxIDAgMWgtMVptMyAwYS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAwIDFoLTJabTQgMGEuNS41IDAgMCAxIDAtMWgyYS41LjUgMCAwIDEgMCAxaC0yWm00IDBhLjUuNSAwIDAgMSAwLTFoMWEuNS41IDAgMCAxIDAgMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhZGRpbmdMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhZGRpbmdMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgMy43NUEuNzUuNzUgMCAwIDAgMiA0LjV2MS4zMWEuNzUuNzUgMCAwIDAgMS41IDBWNC41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0wIDMuOTRhLjc1Ljc1IDAgMCAwLS43NS43NXYyLjYyYS43NS43NSAwIDAgMCAxLjUgMFY4LjQ0YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0wIDUuMjVhLjc1Ljc1IDAgMCAwLS43NS43NVYxNWEuNzUuNzUgMCAwIDAgMS41IDB2LTEuMzFhLjc1Ljc1IDAgMCAwLS43NS0uNzVabTE0LjUtOS4xOWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjE1YS43NS43NSAwIDAgMCAxLjUgMFY0LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaTTQuNzIgMTAuMjhhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LjI1LTQuMjVhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkw3LjA2IDloNy4xOWEuNzUuNzUgMCAwIDEgMCAxLjVINy4wNmwyLjk3IDIuOTdhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtNC4yNS00LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFkZGluZ0xlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhZGRpbmdMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDMuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0wIDNhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMHYtMlptMCA0YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0xIDB2LTJabTAgNGEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0yLjE1LTQuNjVhLjUuNSAwIDAgMSAwLS43bDQuNS00LjVhLjUuNSAwIDEgMSAuNy43TDUuNzEgOWg5Ljc5YS41LjUgMCAwIDEgMCAxSDUuN2wzLjY1IDMuNjVhLjUuNSAwIDAgMS0uNy43bC00LjUtNC41Wk0xNyAzLjVhLjUuNSAwIDAgMSAxIDB2MTJhLjUuNSAwIDAgMS0xIDB2LTEyWlwiXSk7XG5leHBvcnQgY29uc3QgUGFkZGluZ1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhZGRpbmdSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDMuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1VjE1QS43NS43NSAwIDAgMSAyIDE1VjQuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0xNC41IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuMzFhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0wIDMuOTRjLjQxIDAgLjc1LjMzLjc1Ljc1djIuNjJhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNDRjMC0uNDIuMzQtLjc1Ljc1LS43NVptMCA1LjI1Yy40MSAwIC43NS4zMy43NS43NVYxNWEuNzUuNzUgMCAwIDEtMS41IDB2LTEuMzFjMC0uNDIuMzQtLjc1Ljc1LS43NVptLTEuOTctMi42NmMuMy0uMy4zLS43NyAwLTEuMDZsLTQuMjUtNC4yNWEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDEyLjk0IDlINS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNy4xOWwtMi45NyAyLjk3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNC4yNS00LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFkZGluZ1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWRkaW5nUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1Ljg1IDkuODVhLjUuNSAwIDAgMCAwLS43bC00LjUtNC41YS41LjUgMCAwIDAtLjcuN0wxNC4yOSA5SDQuNWEuNS41IDAgMCAwIDAgMWg5LjhsLTMuNjUgMy42NWEuNS41IDAgMCAwIC43LjdsNC41LTQuNVpNMyAzLjVhLjUuNSAwIDAgMC0xIDB2MTJhLjUuNSAwIDAgMCAxIDB2LTEyWm0xNSAwYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTAgM2EuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWm0wIDRhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAwIDEgMHYtMlptMCA0YS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWRkaW5nVG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhZGRpbmdUb3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy43NSAyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMS4zMWEuNzUuNzUgMCAwIDEgMCAxLjVINC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0zLjk0IDBjMC0uNDEuMzMtLjc1Ljc1LS43NWgyLjYyYS43NS43NSAwIDAgMSAwIDEuNUg4LjQ0YS43NS43NSAwIDAgMS0uNzUtLjc1Wm01LjI1IDBjMC0uNDEuMzMtLjc1Ljc1LS43NUgxNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuMzFhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS05LjE5IDE0LjVjMC0uNDEuMzQtLjc1Ljc1LS43NUgxNWEuNzUuNzUgMCAwIDEgMCAxLjVINC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm02LjUzLTEyLjUzYS43NS43NSAwIDAgMC0xLjA2IDBMNC45NyA4Ljk3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZMOSA3LjA2djcuMTlhLjc1Ljc1IDAgMCAwIDEuNSAwVjcuMDZsMi45NyAyLjk3YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTQuMjUtNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhZGRpbmdUb3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhZGRpbmdUb3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAyYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTMgMGEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWm00IDBhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlptNCAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaTTkuODUgNC4xNWEuNS41IDAgMCAwLS43IDBsLTQuNSA0LjVhLjUuNSAwIDEgMCAuNy43TDkgNS43MXY5Ljc5YS41LjUgMCAwIDAgMSAwVjUuN2wzLjY1IDMuNjVhLjUuNSAwIDAgMCAuNy0uN2wtNC41LTQuNVpNMy41IDE3YS41LjUgMCAwIDAgMCAxaDEyYS41LjUgMCAwIDAgMC0xaC0xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhZ2VGaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFnZUZpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINFptMS41IDJoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAxLTEgMHYtMUM0IDYuNjcgNC42NyA2IDUuNSA2Wm04IDBoMWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYS41LjUgMCAwIDEtMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMSAwLTFaTTUgMTEuNXYxYzAgLjI4LjIyLjUuNS41aDFhLjUuNSAwIDAgMSAwIDFoLTFBMS41IDEuNSAwIDAgMSA0IDEyLjV2LTFhLjUuNSAwIDAgMSAxIDBabTExIDB2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFhLjUuNSAwIDAgMSAwLTFoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGFnZUZpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFnZUZpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDZDNC42NyA2IDQgNi42NyA0IDcuNXYxYS41LjUgMCAwIDAgMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAwIDAtMWgtMVptOCAwYS41LjUgMCAwIDAgMCAxaDFjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMCAxIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xWk01IDExLjVhLjUuNSAwIDAgMC0xIDB2MWMwIC44My42NyAxLjUgMS41IDEuNWgxYS41LjUgMCAwIDAgMC0xaC0xYS41LjUgMCAwIDEtLjUtLjV2LTFabTExIDBhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMCAwIDFoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFaTTIgNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2Wm0xIDB2OGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMVptMi41IDBDNC42NyA2IDQgNi42NyA0IDcuNXYxYS41LjUgMCAwIDAgMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAwIDAtMWgtMVpNNSAxMS41YS41LjUgMCAwIDAtMSAwdjFjMCAuODMuNjcgMS41IDEuNSAxLjVoMWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAxLS41LS41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgUGFpbnRCcnVzaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJydXNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDQuNVYySDUuNWEuNS41IDAgMCAwLS41LjVWOWgxMFYyLjVhLjUuNSAwIDAgMC0uNS0uNUgxM3YzLjVhLjUuNSAwIDAgMS0xIDBWMmgtMXYyLjVhLjUuNSAwIDAgMS0xIDBabTUgNS41SDV2MWMwIDEuMS45IDIgMiAyaDEuNXYzLjVhMS41IDEuNSAwIDEgMCAzIDBWMTNIMTNhMiAyIDAgMCAwIDItMnYtMVpcIl0pOyIsIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVGbHVlbnRJY29uIH0gZnJvbSBcIi4uL3V0aWxzL2NyZWF0ZUZsdWVudEljb25cIjtcbmV4cG9ydCBjb25zdCBQYWludEJydXNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJydXNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMmEuNS41IDAgMCAwLS41LjVWMTFjMCAxLjEuOSAyIDIgMmgxdjNhMiAyIDAgMSAwIDQgMHYtM2gxYTIgMiAwIDAgMCAyLTJWMi41YS41LjUgMCAwIDAtLjUtLjVoLTlabS41IDhoOHYxYTEgMSAwIDAgMS0xIDFoLTEuNWEuNS41IDAgMCAwLS41LjVWMTZhMSAxIDAgMSAxLTIgMHYtMy41YS41LjUgMCAwIDAtLjUtLjVIN2ExIDEgMCAwIDEtMS0xdi0xWm04LTFINlYzaDR2MS41YS41LjUgMCAwIDAgMSAwVjNoMXYyLjVhLjUuNSAwIDAgMCAxIDBWM2gxdjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWludEJydXNoQXJyb3dEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhaW50QnJ1c2hBcnJvd0Rvd25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41NyAxNy4yNEEuNS41IDAgMCAwIDQgMThoMS43bC4wMi0uMDNjLjI2LS41NC41NS0xLjE0Ljc5LTEuNzEuMy0uNzMuNDktMS4zNS40OS0xLjc2YS41LjUgMCAwIDEgMSAwYzAgLjYzLS4yNyAxLjQxLS41NyAyLjE0LS4xOS40Ni0uNC45Mi0uNjEgMS4zNkg4Yy4yLS4zOS40My0uOC42MS0xLjIxLjI0LS41NC4zOS0uOTkuMzktMS4yOWEuNS41IDAgMCAxIDEgMGMwIC41My0uMjMgMS4xNS0uNDggMS43LS4xMi4yNy0uMjUuNTQtLjM5LjhoMi43NWwtLjQ0LS40NEExLjUgMS41IDAgMCAxIDEzIDE1LjFWMTMuNWExLjUgMS41IDAgMCAxIDItMS40MVYxMUg1di41YTEyLjU3IDEyLjU3IDAgMCAxLTEuNDIgNS43MnYuMDJaTTUgMTBoMTBWOWEyIDIgMCAwIDAtMi0yaC0xVjRhMiAyIDAgMSAwLTQgMHYzSDdhMiAyIDAgMCAwLTIgMnYxWm0xMCAzLjVhLjUuNSAwIDAgMC0xIDB2My44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yYS41LjUgMCAwIDAtLjctLjdMMTUgMTcuMjlWMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhaW50QnJ1c2hBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhaW50QnJ1c2hBcnJvd0Rvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNHYzLjVhLjUuNSAwIDAgMS0uNS41SDdhMSAxIDAgMCAwLTEgMXYxaDhWOWExIDEgMCAwIDAtMS0xaC0xLjVhLjUuNSAwIDAgMS0uNS0uNVY0YTEgMSAwIDEgMC0yIDBabTYgNXYxLjQ3YS41Ny41NyAwIDAgMSAwIC4wNnYxLjU2YTEuNSAxLjUgMCAwIDAtMSAwVjExSDZ2LjVBMTMuNTcgMTMuNTcgMCAwIDEgNC44IDE3aDEuMzdsLjAyLS4wNGExNi40NiAxNi40NiAwIDAgMCAuNjYtMS43QTMgMyAwIDAgMCA3IDE0LjVhLjUuNSAwIDAgMSAxIDBjMCAuMzItLjA4LjY5LS4xOCAxLjAzQTEwLjk2IDEwLjk2IDAgMCAxIDcuMjggMTdoMS4yNGwuMTgtLjQyYy4xNy0uNC4zLS44My4zLTEuMDhhLjUuNSAwIDAgMSAxIDBjMCAuNDctLjIgMS4wNS0uMzcgMS40Nkw5LjYgMTdoMS40OGMuMDcuMi4xOS40LjM1LjU2bC40NC40NEg0YS41LjUgMCAwIDEtLjQzLS43NmwuMDEtLjAyYTMuOSAzLjkgMCAwIDAgLjItLjM4QTEyLjU3IDEyLjU3IDAgMCAwIDUgMTEuNVY5YzAtMS4xLjktMiAyLTJoMVY0YTIgMiAwIDAgMSA0IDB2M2gxYTIgMiAwIDAgMSAyIDJabTAgNC41YS41LjUgMCAwIDAtMSAwdjMuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDItMmEuNS41IDAgMCAwLS43LS43TDE1IDE3LjI5VjEzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWludEJydXNoQXJyb3dVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJydXNoQXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjU3IDE3LjI0QS41LjUgMCAwIDAgNCAxOGgxLjdsLjAyLS4wM2MuMjYtLjU0LjU1LTEuMTQuNzktMS43MS4zLS43My40OS0xLjM1LjQ5LTEuNzZhLjUuNSAwIDAgMSAxIDBjMCAuNjMtLjI3IDEuNDEtLjU3IDIuMTQtLjE5LjQ2LS40LjkyLS42MSAxLjM2SDhjLjItLjM5LjQzLS44LjYxLTEuMjEuMjQtLjU0LjM5LS45OS4zOS0xLjI5YS41LjUgMCAwIDEgMSAwYzAgLjUzLS4yMyAxLjE1LS40OCAxLjctLjEyLjI3LS4yNS41NC0uMzkuOEgxM3YtMS4wOWExLjUgMS41IDAgMCAxLTEuNTYtMi40N2wyLTJhMS41IDEuNSAwIDAgMSAxLjU2LS4zNVYxMUg1di41YTEyLjU3IDEyLjU3IDAgMCAxLTEuNDIgNS43MnYuMDJaTTUgMTBoMTBWOWEyIDIgMCAwIDAtMi0yaC0xVjRhMiAyIDAgMSAwLTQgMHYzSDdhMiAyIDAgMCAwLTIgMnYxWm0xMCA0Ljd2My44YS41LjUgMCAwIDEtMSAwdi0zLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDE1IDE0LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgUGFpbnRCcnVzaEFycm93VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhaW50QnJ1c2hBcnJvd1VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDR2My41YS41LjUgMCAwIDEtLjUuNUg3YTEgMSAwIDAgMC0xIDF2MWg4VjlhMSAxIDAgMCAwLTEtMWgtMS41YS41LjUgMCAwIDEtLjUtLjVWNGExIDEgMCAxIDAtMiAwWm02IDV2MS40N2EuNTcuNTcgMCAwIDEgMCAuMDZ2MS41NmExLjUgMS41IDAgMCAwLTEgMFYxMUg2di41QTEzLjU3IDEzLjU3IDAgMCAxIDQuOCAxN2gxLjM3bC4wMi0uMDRhMTYuNDYgMTYuNDYgMCAwIDAgLjY2LTEuN0EzIDMgMCAwIDAgNyAxNC41YS41LjUgMCAwIDEgMSAwYzAgLjMyLS4wOC42OS0uMTggMS4wM0ExMC45NiAxMC45NiAwIDAgMSA3LjI4IDE3aDEuMjRsLjE4LS40MmMuMTctLjQuMy0uODMuMy0xLjA4YS41LjUgMCAwIDEgMSAwYzAgLjQ3LS4yIDEuMDUtLjM3IDEuNDZMOS42IDE3SDEzdjFINGEuNS41IDAgMCAxLS40My0uNzZsLjAxLS4wMmEzLjkgMy45IDAgMCAwIC4yLS4zOEExMi41NyAxMi41NyAwIDAgMCA1IDExLjVWOWMwLTEuMS45LTIgMi0yaDFWNGEyIDIgMCAwIDEgNCAwdjNoMWEyIDIgMCAwIDEgMiAyWm0wIDUuN3YzLjhhLjUuNSAwIDAgMS0xIDB2LTMuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdMMTUgMTQuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWludEJydXNoU3BhcmtsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJydXNoU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC44OCA3LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjIgMi4yMiAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAtLjE0LjQ2LjMuMyAwIDAgMCAuMTQuMTFsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMCAydjIuNWEuNS41IDAgMCAwIDEgMFYyaDF2My41YS41LjUgMCAwIDAgMSAwVjJoMS41Yy4yOCAwIC41LjIyLjUuNXYzLjZhMS40MiAxLjQyIDAgMCAwLTEuODYuODV2LjAxbC0uMzYgMS4wOGExLjIgMS4yIDAgMCAxLS43NC43NmwtLjYxLjJINVYyLjVjMC0uMjguMjItLjUuNS0uNUgxMFptLjA5IDhINXYxYzAgMS4xLjkgMiAyIDJoMS41djMuNWExLjUgMS41IDAgMCAwIDMgMFYxM2gxLjMybC0uMDItLjA0YTEuMTkgMS4xOSAwIDAgMC0uMzUtLjUzIDEuMiAxLjIgMCAwIDAtLjQtLjI0bC0xLjA5LS4zNWgtLjAxYTEuNDIgMS40MiAwIDAgMS0uODYtMS44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhaW50QnJ1c2hTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJydXNoU3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuODggNy4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIyIDIuMjIgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwLS4xNC40Ni4zLjMgMCAwIDAgLjE0LjExbC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNNSAyLjVjMC0uMjguMjItLjUuNS0uNWg5Yy4yOCAwIC41LjIyLjUuNXYzLjZhMS40MiAxLjQyIDAgMCAwLTEtLjAyVjNoLTF2Mi41YS41LjUgMCAwIDEtMSAwVjNoLTF2MS41YS41LjUgMCAwIDEtMSAwVjNINnY2aDUuNDJsLS40Ni4xNWgtLjAxYTEuNDIgMS40MiAwIDAgMC0uODYuODVINnYxYTEgMSAwIDAgMCAxIDFoMS41Yy4yOCAwIC41LjIzLjUuNVYxNmExIDEgMCAxIDAgMiAwdi0zLjVjMC0uMjYuMi0uNDcuNDYtLjVsLjU4LjJhMS4yIDEuMiAwIDAgMSAuNzYuNzZsLjAyLjA0SDEydjNhMiAyIDAgMSAxLTQgMHYtM0g3YTIgMiAwIDAgMS0yLTJWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgUGFpbnRCcnVzaFN1YnRyYWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhaW50QnJ1c2hTdWJ0cmFjdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAydjIuNWEuNS41IDAgMCAwIDEgMFYyaDF2My41YS41LjUgMCAwIDAgMSAwVjJoMS41Yy4yOCAwIC41LjIyLjUuNVY5SDVWMi41YzAtLjI4LjIyLS41LjUtLjVIMTBaTTkgMTQuNWMwLTEuODYuOTItMy41IDIuMzQtNC41SDV2MWMwIDEuMS45IDIgMiAyaDF2M2EyIDIgMCAwIDAgMi4yNCAxLjk5QTUuNDggNS40OCAwIDAgMSA5IDE0LjVabTUuNSA0LjVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTEyIDE0LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWludEJydXNoU3VidHJhY3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhaW50QnJ1c2hTdWJ0cmFjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDJhLjUuNSAwIDAgMC0uNS41VjExYzAgMS4xLjkgMiAyIDJoMXYzQTIgMiAwIDAgMCAxMC4yNSAxOGE1LjUgNS41IDAgMCAxLS43LTEuMUExIDEgMCAwIDEgOSAxNnYtMS4yOWE1LjYgNS42IDAgMCAxIDAtLjQyVjEyLjVhLjUuNSAwIDAgMC0uNS0uNUg3YTEgMSAwIDAgMS0xLTF2LTFoNS4zM0E1LjQ4IDUuNDggMCAwIDEgMTUgOS4wMlYyLjVhLjUuNSAwIDAgMC0uNS0uNWgtOVpNNiA5VjNoNHYxLjVhLjUuNSAwIDAgMCAxIDBWM2gxdjIuNWEuNS41IDAgMCAwIDEgMFYzaDF2Nkg2Wm04LjUgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTEyIDE0LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWludEJ1Y2tldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJ1Y2tldEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDIuNWEuNS41IDAgMCAwLTEgMFY0Yy0uMi4wNy0uNC4xOS0uNTYuMzVMMi4zNSA5LjQ0YTEuNSAxLjUgMCAwIDAgMCAyLjEyTDYuNyAxNS45YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDUuMDktNS4wOWExLjUgMS41IDAgMCAwIDAtMi4xMkw5LjU2IDQuMzVBMS41IDEuNSAwIDAgMCA5IDRWMi41Wm00LjI3IDcuNUgzLjJMOCA1LjJ2MS4zYS41LjUgMCAwIDAgMSAwVjUuMmw0LjE5IDQuMmEuNS41IDAgMCAxIC4wOC42Wm0yLjc1IDEuNGEuNi42IDAgMCAwLTEuMDQgMGwtMS42NSAyLjgyYTIuNTEgMi41MSAwIDEgMCA0LjM0IDBsLTEuNjUtMi44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBhaW50QnVja2V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYWludEJ1Y2tldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyLjVhLjUuNSAwIDAgMC0xIDBWNGMtLjIuMDctLjQuMTktLjU2LjM1TDIuMzUgOS40NGExLjUgMS41IDAgMCAwIDAgMi4xMkw2LjcgMTUuOWExLjUgMS41IDAgMCAwIDIuMTIgMGw1LjA5LTUuMDlhMS41IDEuNSAwIDAgMCAwLTIuMTJMOS41NiA0LjM1QTEuNSAxLjUgMCAwIDAgOSA0VjIuNVpNOCA1LjJ2MS4zYS41LjUgMCAwIDAgMSAwVjUuMmw0LjE5IDQuMmEuNS41IDAgMCAxIC4wOC42SDMuMkw4IDUuMlptLS42IDkuOTlMMy4yIDExaDkuMWwtNC4yIDQuMTlhLjUuNSAwIDAgMS0uNyAwWm04LjYyLTMuOGEuNi42IDAgMCAwLTEuMDQgMGwtMS42NSAyLjgzYTIuNTEgMi41MSAwIDEgMCA0LjM0IDBsLTEuNjUtMi44M1ptLTEuODIgMy4zNCAxLjMtMi4yNCAxLjMgMi4yNGExLjUxIDEuNTEgMCAxIDEtMi42IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQYWlyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhaXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAzLjVjMCAuNTYuMyAxLjA0Ljc1IDEuM3Y2LjRhMS41IDEuNSAwIDEgMCAyLjA1IDIuMDVoMS45NXYxLjk1YTEuNSAxLjUgMCAxIDAgMi4wNSAyLjA1aDYuNGExLjUgMS41IDAgMSAwIDIuMDUtMi4wNVY4LjhhMS41IDEuNSAwIDEgMC0yLjA1LTIuMDVoLTEuOTVWNC44YTEuNSAxLjUgMCAxIDAtMi4wNS0yLjA1SDQuOEExLjUgMS41IDAgMCAwIDIgMy41Wm02LjggMTIuMjVhMS41IDEuNSAwIDAgMC0uNTUtLjU1di0xLjk1aDIuOTVhMS41IDEuNSAwIDEgMCAyLjA1LTIuMDVWOC4yNWgxLjk1Yy4xMy4yMy4zMi40Mi41NS41NXY2LjRhMS41IDEuNSAwIDAgMC0uNTUuNTVIOC44Wk00LjI1IDExLjJWNC44Yy4yMy0uMTMuNDItLjMyLjU1LS41NWg2LjRjLjEzLjIzLjMyLjQyLjU1LjU1djEuOTVIOC44QTEuNSAxLjUgMCAxIDAgNi43NSA4Ljh2Mi45NUg0LjhhMS41IDEuNSAwIDAgMC0uNTUtLjU1Wm03LjUgMGExLjUgMS41IDAgMCAwLS41NS41NUg4LjI1VjguOGMuMjMtLjEzLjQyLS4zMi41NS0uNTVoMi45NXYyLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFpclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFpclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAzLjVjMCAuNjUuNDIgMS4yIDEgMS40MXY2LjE4QTEuNSAxLjUgMCAxIDAgNC45MSAxM0g3djIuMDlBMS41IDEuNSAwIDEgMCA4LjkxIDE3aDYuMThBMS41IDEuNSAwIDEgMCAxNyAxNS4wOVY4LjlBMS41IDEuNSAwIDEgMCAxNS4wOSA3SDEzVjQuOTFBMS41IDEuNSAwIDEgMCAxMS4wOSAzSDQuOUExLjUgMS41IDAgMCAwIDIgMy41Wk04LjkxIDE2YTEuNSAxLjUgMCAwIDAtLjkxLS45MVYxM2gzLjA5QTEuNSAxLjUgMCAxIDAgMTMgMTEuMDlWOGgyLjA5Yy4xNS40My40OC43Ni45MS45MXY2LjE4YTEuNSAxLjUgMCAwIDAtLjkxLjkxSDguOVpNNCAxMS4wOVY0LjljLjQzLS4xNS43Ni0uNDguOTEtLjkxaDYuMThjLjE1LjQzLjQ4Ljc2LjkxLjkxVjdIOC45MUExLjUgMS41IDAgMSAwIDcgOC45MVYxMkg0LjkxYTEuNSAxLjUgMCAwIDAtLjkxLS45MVptOCAwYTEuNSAxLjUgMCAwIDAtLjkxLjkxSDhWOC45MWMuNDMtLjE1Ljc2LS40OC45MS0uOTFIMTJ2My4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsQm90dG9tRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsQm90dG9tRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNmEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2N2EzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY1aDE0VjZhMiAyIDAgMCAwLTItMkg1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxCb3R0b21SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsQm90dG9tUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINVpNMyA2YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY1SDNWNlptMCA2aDE0djFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbEJvdHRvbUNvbnRyYWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsQm90dG9tQ29udHJhY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTAuNSAxMS4xNy44Ny0xYS41LjUgMCAwIDEgLjc2LjY2bC0xLjc1IDJhLjUuNSAwIDAgMS0uNzYgMGwtMS43NS0yYS41LjUgMCAxIDEgLjc2LS42NWwuODcgMVY3LjVhLjUuNSAwIDEgMSAxIDB2My42N1pNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRaTTMgNmExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2NWgtMy44M2ExLjUgMS41IDAgMCAxLS4zLjVsLTEuNzQgMmExLjUgMS41IDAgMCAxLTIuMjYgMGwtMS43NS0yYTEuNSAxLjUgMCAwIDEtLjI5LS41SDNWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsQm90dG9tQ29udHJhY3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsQm90dG9tQ29udHJhY3RSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEwLjUgMTEuMTcuODctMWEuNS41IDAgMCAxIC43Ni42NmwtMS43NSAyYS41LjUgMCAwIDEtLjc2IDBsLTEuNzUtMmEuNS41IDAgMSAxIC43Ni0uNjVsLjg3IDFWNy41YS41LjUgMCAxIDEgMSAwdjMuNjdaTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0Wk0zIDZhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjVoLTMuODNhMS41IDEuNSAwIDAgMS0uMy41bC0uNDQuNUgxN3YyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi0yaDQuNTdsLS40NS0uNWExLjUgMS41IDAgMCAxLS4yOS0uNUgzVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbEJvdHRvbUV4cGFuZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbEJvdHRvbUV4cGFuZEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMC41IDguODMuODcgMWEuNS41IDAgMCAwIC43Ni0uNjZsLTEuNzUtMmEuNS41IDAgMCAwLS43NiAwbC0xLjc1IDJhLjUuNSAwIDAgMCAuNzYuNjVsLjg3LTF2My42OGEuNS41IDAgMCAwIDEgMFY4LjgzWk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINFpNMyA2YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY1aC01LjV2MS41YTEuNSAxLjUgMCAxIDEtMyAwVjExSDNWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsQm90dG9tRXhwYW5kUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbEJvdHRvbUV4cGFuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAuNSA4LjgzLjg3IDFhLjUuNSAwIDAgMCAuNzYtLjY2bC0xLjc1LTJhLjUuNSAwIDAgMC0uNzYgMGwtMS43NSAyYS41LjUgMCAwIDAgLjc2LjY1bC44Ny0xdjMuNjhhLjUuNSAwIDAgMCAxIDBWOC44M1pNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRaTTMgNmExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2NWgtNS41djFIMTd2MmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtMmg1LjV2LTFIM1Y2WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINVptMTAgMWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg4LjVWNEgxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjdhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWNlptNi41LTJ2MTFIMTVhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJIOC41Wm0tMSAwSDVhMiAyIDAgMCAwLTIgMnY3YzAgMS4xLjkgMiAyIDJoMi41VjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgM2EzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2g0LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg4LjVWNEgxNWEyIDIgMCAwIDEgMiAydjMuNmMuMzYuMTguNy40IDEgLjY2VjZhMyAzIDAgMCAwLTMtM0g1Wm0xNCAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjQuMjZhNS41IDUuNSAwIDAgMC0xLS42NlY2YTIgMiAwIDAgMC0yLTJIOC41djExaC41MmMuMDMuMzQuMS42OC4xOSAxSDVhMyAzIDAgMCAxLTMtM1Y2Wm01LjUtMkg1YTIgMiAwIDAgMC0yIDJ2N2MwIDEuMS45IDIgMiAyaDIuNVY0Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdENvbnRyYWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdENvbnRyYWN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjgyIDEwLjVoMy42OGEuNS41IDAgMCAwIDAtMWgtMy42OGwxLS44N2EuNS41IDAgMSAwLS42Ni0uNzZsLTIgMS43NWEuNS41IDAgMCAwIDAgLjc2bDIgMS43NWEuNS41IDAgMSAwIC42Ni0uNzZsLTEtLjg3Wk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINFptNCAxMVY1aDhhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdENvbnRyYWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbExlZnRDb250cmFjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuODIgMTAuNWgzLjY4YS41LjUgMCAwIDAgMC0xaC0zLjY4bDEtLjg3YS41LjUgMCAxIDAtLjY2LS43NmwtMiAxLjc1YS41LjUgMCAwIDAgMCAuNzZsMiAxLjc1YS41LjUgMCAxIDAgLjY2LS43NmwtMS0uODdaTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0Wk0zIDZhMSAxIDAgMCAxIDEtMWgzdjEwSDRhMSAxIDAgMCAxLTEtMVY2Wm01IDlWNWg4YTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRFeHBhbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0RXhwYW5kRmlsbGVkJywgXCIxZW1cIiwgW1wibTEzLjE4IDEwLjUtMSAuODdhLjUuNSAwIDAgMCAuNjYuNzZsMi0xLjc1YS41LjUgMCAwIDAgMC0uNzZsLTItMS43NWEuNS41IDAgMSAwLS42Ni43NmwxIC44N0g5LjVhLjUuNSAwIDAgMCAwIDFoMy42OFpNMiAxNGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY4Wm02IDFWNWg4YTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRFeHBhbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdEV4cGFuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTMuMTggMTAuNS0xIC44N2EuNS41IDAgMCAwIC42Ni43NmwyLTEuNzVhLjUuNSAwIDAgMCAwLS43NmwtMi0xLjc1YS41LjUgMCAxIDAtLjY2Ljc2bDEgLjg3SDkuNWEuNS41IDAgMCAwIDAgMWgzLjY4Wk0yIDE0YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhabTIgMWExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgzdjEwSDRabTQgMFY1aDhhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdEZvY3VzUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0Rm9jdXNSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiAxNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyWk03IDV2MTBINGExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgzWlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxMZWZ0SGVhZGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdEhlYWRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINVptMTIgM3YxSDguNVY0SDE1YTIgMiAwIDAgMSAyIDJabS0yIDlIOC41VjhIMTd2NWEyIDIgMCAwIDEtMiAyWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdEhlYWRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0SGVhZGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINVptMy41IDRWNEgxNWEyIDIgMCAwIDEgMiAydjFIOC41Wm0wIDFIMTd2NWEyIDIgMCAwIDEtMiAySDguNVY4Wk01IDRoMi41djExSDVhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgUGFuZWxMZWZ0SGVhZGVyQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdEhlYWRlckFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjQuMjZhNS41IDUuNSAwIDAgMC0xLS42NlY4SDguNXY3aC41MmMuMDMuMzQuMS42OC4xOSAxSDVhMyAzIDAgMCAxLTMtM1Y2Wm0xNSAwYTIgMiAwIDAgMC0yLTJIOC41djNIMTdWNlptMiA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgUGFuZWxMZWZ0SGVhZGVyQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbExlZnRIZWFkZXJBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgM2EzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2g0LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg4LjVWOEgxN3YxLjZjLjM2LjE4LjcuNCAxIC42NlY2YTMgMyAwIDAgMC0zLTNINVptMTIgNEg4LjVWNEgxNWEyIDIgMCAwIDEgMiAydjFaTTUgNGgyLjV2MTFINWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptMTQgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRIZWFkZXJLZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0SGVhZGVyS2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNmEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2My41M2E0LjE4IDQuMTggMCAwIDAtMS0uNFY4SDguNXY3aDEuODhsLS45NC45NC0uMDUuMDZINWEzIDMgMCAwIDEtMy0zVjZabTYuNSAxSDE3VjZhMiAyIDAgMCAwLTItMkg4LjV2M1ptMiAxMmEuNDguNDggMCAwIDEtLjM1LS4xNS40OC40OCAwIDAgMS0uMTUtLjM1VjE3YzAtLjE0LjA1LS4yNS4xNS0uMzVsMi45NC0yLjk0YTMuNzQgMy43NCAwIDAgMS0uMDktLjc3YzAtLjQuMDgtLjc5LjI0LTEuMTRhMy4xIDMuMSAwIDAgMSAxLjYxLTEuNTcgMi45NCAyLjk0IDAgMCAxIDMuMjcuNjRBMyAzIDAgMCAxIDE1IDE1Ljg0VjE2LjUyYS42NS42NSAwIDAgMS0uMDguMjQuNS41IDAgMCAxLS4xNS4xNy40Ni40NiAwIDAgMS0uMjcuMDdIMTRjMCAuMjQgMCAuNDMtLjAyLjU2YS40Ni40NiAwIDAgMS0uMTEuMy40Ny40NyAwIDAgMS0uMy4xMkwxMyAxOHYuMjdjMCAuMDggMCAuMTctLjAyLjI1YS44Ni44NiAwIDAgMS0uMDYuMjQuMzcuMzcgMCAwIDEtLjE1LjE3LjU3LjU3IDAgMCAxLS4yNy4wN2gtMlptNy02Ljc1YzAtLjItLjA3LS4zOS0uMjItLjUzYS43Mi43MiAwIDAgMC0uNTMtLjIyYy0uMiAwLS4zOS4wNy0uNTMuMjJhLjcyLjcyIDAgMCAwLS4yMi41M2MwIC4yLjA3LjM5LjIyLjUzLjE0LjE1LjMyLjIyLjUzLjIyLjIgMCAuMzktLjA3LjUzLS4yMmEuNzIuNzIgMCAwIDAgLjIyLS41M1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRIZWFkZXJLZXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdEhlYWRlcktleVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzYTMgMyAwIDAgMC0zIDN2N2EzIDMgMCAwIDAgMyAzaDQuMzlsLjA1LS4wNi45NC0uOTRIOC41VjhIMTd2MS4xMmEzLjg1IDMuODUgMCAwIDEgMSAuNDFWNmEzIDMgMCAwIDAtMy0zSDVabTEyIDRIOC41VjRIMTVhMiAyIDAgMCAxIDIgMnYxWk01IDRoMi41djExSDVhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTUuNSAxNWEuNDguNDggMCAwIDEtLjM1LS4xNS40OC40OCAwIDAgMS0uMTUtLjM1VjE3YzAtLjE0LjA1LS4yNS4xNS0uMzVsMi45NC0yLjk0YTMuNzQgMy43NCAwIDAgMS0uMDktLjc3YzAtLjQuMDgtLjc5LjI0LTEuMTRhMy4xIDMuMSAwIDAgMSAxLjYxLTEuNTcgMi45NCAyLjk0IDAgMCAxIDMuMjcuNjRBMyAzIDAgMCAxIDE1IDE1Ljg0VjE2LjUyYS42NS42NSAwIDAgMS0uMDguMjQuNS41IDAgMCAxLS4xNS4xNy40Ni40NiAwIDAgMS0uMjcuMDdIMTRjMCAuMjQgMCAuNDMtLjAyLjU2YS40Ni40NiAwIDAgMS0uMTEuMy40Ny40NyAwIDAgMS0uMy4xMkwxMyAxOHYuMjdjMCAuMDggMCAuMTctLjAyLjI1YS44Ni44NiAwIDAgMS0uMDYuMjQuMzcuMzcgMCAwIDEtLjE1LjE3LjU3LjU3IDAgMCAxLS4yNy4wN2gtMlptNy02Ljc1YzAtLjItLjA3LS4zOS0uMjItLjUzYS43Mi43MiAwIDAgMC0uNTMtLjIyYy0uMiAwLS4zOS4wNy0uNTMuMjJhLjcyLjcyIDAgMCAwLS4yMi41M2MwIC4yLjA3LjM5LjIyLjUzLjE0LjE1LjMyLjIyLjUzLjIyLjIgMCAuMzktLjA3LjUzLS4yMmEuNzIuNzIgMCAwIDAgLjIyLS41M1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRLZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0S2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgM2EzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2g0LjM5bC4wNS0uMDYuOTQtLjk0SDguNVY0SDE1YTIgMiAwIDAgMSAyIDJ2My4xMmEzLjg1IDMuODUgMCAwIDEgMSAuNDFWNmEzIDMgMCAwIDAtMy0zSDVabTUuMTUgMTUuODVjLjEuMS4yMS4xNS4zNS4xNWgyYy4xMSAwIC4yLS4wMy4yNy0uMDcuMDctLjA0LjEyLS4xLjE1LS4xN2EuODYuODYgMCAwIDAgLjA2LS4yNGwuMDItLjI1VjE4bC41Ni0uMDJhLjQ3LjQ3IDAgMCAwIC4zLS4xMmMuMDctLjA3LjExLS4xNy4xMi0uM0wxNCAxN2guNWMuMSAwIC4yLS4wMi4yNy0uMDdhLjUuNSAwIDAgMCAuMTUtLjE3LjY1LjY1IDAgMCAwIC4wNy0uMjQgMi4zNCAyLjM0IDAgMCAwIC4wMS0uNXYtLjJjLjE3LjA3LjM1LjExLjUyLjE0YTIuODcgMi44NyAwIDAgMCAyLjYyLS44NkEzLjExIDMuMTEgMCAwIDAgMTkgMTNhMi45NCAyLjk0IDAgMCAwLS44OC0yLjEzIDMgMyAwIDAgMC01LjAzIDIuODRsLTIuOTQgMi45NGMtLjEuMS0uMTUuMjEtLjE1LjM1djEuNWMwIC4xNC4wNS4yNS4xNS4zNVptNy4xMy03LjEzYy4xNS4xNC4yMi4zMi4yMi41MyAwIC4yLS4wNy4zOS0uMjIuNTNhLjcyLjcyIDAgMCAxLS41My4yMi43Mi43MiAwIDAgMS0uNTMtLjIyLjcyLjcyIDAgMCAxLS4yMi0uNTNjMC0uMi4wNy0uMzkuMjItLjUzYS43Mi43MiAwIDAgMSAuNTMtLjIyYy4yIDAgLjM5LjA3LjUzLjIyWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdEtleVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0S2V5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjMuNTNhNC4xOCA0LjE4IDAgMCAwLTEtLjRWNmEyIDIgMCAwIDAtMi0ySDguNXYxMWgxLjg4bC0uOTQuOTQtLjA1LjA2SDVhMyAzIDAgMCAxLTMtM1Y2Wm01LjUtMkg1YTIgMiAwIDAgMC0yIDJ2N2MwIDEuMS45IDIgMiAyaDIuNVY0Wm0yLjY1IDE0Ljg1Yy4xLjEuMjEuMTUuMzUuMTVoMmMuMTEgMCAuMi0uMDMuMjctLjA3LjA3LS4wNC4xMi0uMS4xNS0uMTdhLjg2Ljg2IDAgMCAwIC4wNi0uMjRsLjAyLS4yNVYxOGwuNTYtLjAyYS40Ny40NyAwIDAgMCAuMy0uMTJjLjA3LS4wNy4xMS0uMTcuMTItLjNMMTQgMTdoLjVjLjEgMCAuMi0uMDIuMjctLjA3YS41LjUgMCAwIDAgLjE1LS4xNy42NS42NSAwIDAgMCAuMDctLjI0IDIuMzQgMi4zNCAwIDAgMCAuMDEtLjV2LS4yYy4xNy4wNy4zNS4xMS41Mi4xNGEyLjg3IDIuODcgMCAwIDAgMi42Mi0uODZBMy4xMSAzLjExIDAgMCAwIDE5IDEzYTIuOTQgMi45NCAwIDAgMC0uODgtMi4xMyAzIDMgMCAwIDAtNS4wMyAyLjg0bC0yLjk0IDIuOTRjLS4xLjEtLjE1LjIxLS4xNS4zNXYxLjVjMCAuMTQuMDUuMjUuMTUuMzVabTcuMTMtNy4xM2MuMTUuMTQuMjIuMzIuMjIuNTMgMCAuMi0uMDcuMzktLjIyLjUzYS43Mi43MiAwIDAgMS0uNTMuMjIuNzIuNzIgMCAwIDEtLjUzLS4yMi43Mi43MiAwIDAgMS0uMjItLjUzYzAtLjIuMDctLjM5LjIyLS41M2EuNzIuNzIgMCAwIDEgLjUzLS4yMmMuMiAwIC4zOS4wNy41My4yMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRUZXh0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdFRleHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2YTMgMyAwIDAgMSAzLTNoMTBhMyAzIDAgMCAxIDMgM3Y3YTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjZabTcgOWg2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDl2MTFaTTYuNTkgN2EuNS41IDAgMCAwLS4wOS0xSDQuNDFhLjUuNSAwIDAgMCAuMDkgMWgyLjA5Wm0wIDNhLjUuNSAwIDAgMC0uMDktMUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoMi4wOVpNNyAxMi41YS41LjUgMCAwIDAtLjUtLjVINC40MWEuNS41IDAgMCAwIC4wOSAxaDIuMDlhLjUuNSAwIDAgMCAuNDEtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgUGFuZWxMZWZ0VGV4dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0VGV4dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41OSA3YS41LjUgMCAwIDAtLjA5LTFINC40MWEuNS41IDAgMCAwIC4wOSAxaDIuMDlabTAgM2EuNS41IDAgMCAwLS4wOS0xSDQuNDFhLjUuNSAwIDAgMCAuMDkgMWgyLjA5Wm0wIDNhLjUuNSAwIDAgMC0uMDktMUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoMi4wOVpNNSAzYTMgMyAwIDAgMC0zIDN2N2EzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDVabTEwIDEySDlWNGg2YTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAyWk01IDRoM3YxMUg1YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdFRleHRBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxMZWZ0VGV4dEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjQuMjZhNS41IDUuNSAwIDAgMC0xLS42NlY2YTIgMiAwIDAgMC0yLTJIOXYxMWguMDJjLjAzLjM0LjEuNjguMTkgMUg1YTMgMyAwIDAgMS0zLTNWNlptNC41OSAxYS41LjUgMCAwIDAtLjA5LTFINC40MWEuNS41IDAgMCAwIC4wOSAxaDIuMDlabTAgM2EuNS41IDAgMCAwLS4wOS0xSDQuNDFhLjUuNSAwIDAgMCAuMDkgMWgyLjA5Wk03IDEyLjVhLjUuNSAwIDAgMC0uNS0uNUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoMi4wOWEuNS41IDAgMCAwIC40MS0uNVptMTIgMmE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBQYW5lbExlZnRUZXh0QWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbExlZnRUZXh0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjU5IDdhLjUuNSAwIDAgMC0uMDktMUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoMi4wOVptMCAzYS41LjUgMCAwIDAtLjA5LTFINC40MWEuNS41IDAgMCAwIC4wOSAxaDIuMDlaTTcgMTIuNWEuNS41IDAgMCAxLS40MS41SDQuNWEuNS41IDAgMCAxLS4wOS0xSDYuNWMuMjggMCAuNS4yMi41LjVaTTUgM2EzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2g0LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg5VjRoNmEyIDIgMCAwIDEgMiAydjMuNmMuMzYuMTguNy40IDEgLjY2VjZhMyAzIDAgMCAwLTMtM0g1Wm0wIDFoM3YxMUg1YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yWm0xNCAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdFRleHREaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsTGVmdFRleHREaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNmEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2NC4yNmE1LjUgNS41IDAgMCAwLTEtLjY2VjZhMiAyIDAgMCAwLTItMkg5djExaC4wMmMuMDMuMzQuMS42OC4xOSAxSDVhMyAzIDAgMCAxLTMtM1Y2Wm00LjU5IDFhLjUuNSAwIDAgMC0uMDktMUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoMi4wOVptMCAzYS41LjUgMCAwIDAtLjA5LTFINC40MWEuNS41IDAgMCAwIC4wOSAxaDIuMDlaTTcgMTIuNWEuNS41IDAgMCAwLS41LS41SDQuNDFhLjUuNSAwIDAgMCAuMDkgMWgyLjA5YS41LjUgMCAwIDAgLjQxLS41Wm0xMiAyYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsTGVmdFRleHREaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbExlZnRUZXh0RGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41OSA3YS41LjUgMCAwIDAtLjA5LTFINC40MWEuNS41IDAgMCAwIC4wOSAxaDIuMDlabTAgM2EuNS41IDAgMCAwLS4wOS0xSDQuNDFhLjUuNSAwIDAgMCAuMDkgMWgyLjA5Wk03IDEyLjVhLjUuNSAwIDAgMS0uNDEuNUg0LjVhLjUuNSAwIDAgMS0uMDktMUg2LjVjLjI4IDAgLjUuMjIuNS41Wk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoNC4yYy0uMDgtLjMyLS4xNS0uNjYtLjE4LTFIOVY0aDZhMiAyIDAgMCAxIDIgMnYzLjZjLjM2LjE4LjcuNCAxIC42NlY2YTMgMyAwIDAgMC0zLTNINVptMCAxaDN2MTFINWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptMTQgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTMuOCAwIDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBQYW5lbFJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgM2EzIDMgMCAwIDEgMyAzdjdhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWNmEzIDMgMCAwIDEgMy0zaDEwWk01IDRhMiAyIDAgMCAwLTIgMnY3YzAgMS4xLjkgMiAyIDJoNi41VjRINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDZhMyAzIDAgMCAwLTMtM0g1YTMgMyAwIDAgMC0zIDN2N2EzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWNlptLTYuNS0ydjExSDVhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNi41Wm0xIDBIMTVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJoLTIuNVY0WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxSaWdodEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbFJpZ2h0QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuMmMtLjA4LS4zMi0uMTUtLjY2LS4xOC0xSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoOHY0LjZhNS40OCA1LjQ4IDAgMCAxIDYgLjY2VjZabS0zLjUgMTNhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsUmlnaHRBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsUmlnaHRBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDZjMC0xLjEtLjktMi4wMi0yLTJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg0YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDh2NC42Yy4zMi0uMTYuNjYtLjMgMS0uNFY1aDNhMSAxIDAgMCAxIDEgMXYzLjZjLjM2LjE4LjcuNCAxIC42NlY2Wm0tMy41IDEzYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbFJpZ2h0Q29udHJhY3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxSaWdodENvbnRyYWN0RmlsbGVkJywgXCIxZW1cIiwgW1wibTkuMTggMTAuNS0xIC44N2EuNS41IDAgMSAwIC42Ni43NmwyLTEuNzVhLjUuNSAwIDAgMCAwLS43NmwtMi0xLjc1YS41LjUgMCAxIDAtLjY2Ljc2bDEgLjg3SDUuNWEuNS41IDAgMCAwIDAgMWgzLjY4Wk0xNiAxNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyWk0xMiA1djEwSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsUmlnaHRDb250cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxSaWdodENvbnRyYWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIm05LjE4IDEwLjUtMSAuODdhLjUuNSAwIDEgMCAuNjYuNzZsMi0xLjc1YS41LjUgMCAwIDAgMC0uNzZsLTItMS43NWEuNS41IDAgMSAwLS42Ni43NmwxIC44N0g1LjVhLjUuNSAwIDAgMCAwIDFoMy42OFpNMTYgMTZhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxMlptMS0yYTEgMSAwIDAgMS0xIDFoLTNWNWgzYTEgMSAwIDAgMSAxIDF2OFptLTUtOXYxMEg0YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbFJpZ2h0Q3Vyc29yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsUmlnaHRDdXJzb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgM2EzIDMgMCAwIDEgMyAzdjdjMCAuNTMtLjE0IDEuMDItLjM4IDEuNDVsLTUuMDYtNS4wMUExLjUgMS41IDAgMCAwIDExLjUgOVY0SDVhMiAyIDAgMCAwLTIgMnY3YzAgMS4xLjkgMiAyIDJoNXYxSDVhMyAzIDAgMCAxLTMtM1Y2YTMgMyAwIDAgMSAzLTNoMTBabS0zLjE0IDcuMTVhLjUuNSAwIDAgMC0uODYuMzV2OGEuNS41IDAgMCAwIC45LjNsMi0yLjY1IDMuNS43OGEuNS41IDAgMCAwIC40NS0uODRsLTYtNS45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsUmlnaHRDdXJzb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsUmlnaHRDdXJzb3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDZhMyAzIDAgMCAwLTMtM0g1YTMgMyAwIDAgMC0zIDN2N2EzIDMgMCAwIDAgMyAzaDV2LTFINWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg2LjV2NWMuMzYgMCAuNzIuMTMgMSAuMzhWNEgxNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLS4xMy43bC43NS43NWMuMjQtLjQzLjM4LS45Mi4zOC0xLjQ1VjZabS02LjE0IDQuMTVhLjUuNSAwIDAgMC0uODYuMzV2OGEuNS41IDAgMCAwIC45LjNsMi0yLjY1IDMuNS43OGEuNS41IDAgMCAwIC40NS0uODRsLTYtNS45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsUmlnaHRFeHBhbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxSaWdodEV4cGFuZEZpbGxlZCcsIFwiMWVtXCIsIFtcIm02LjgyIDEwLjUgMSAuODdhLjUuNSAwIDAgMS0uNjYuNzZsLTItMS43NWEuNS41IDAgMCAxIDAtLjc2bDItMS43NWEuNS41IDAgMCAxIC42Ni43NmwtMSAuODdoMy42OGEuNS41IDAgMCAxIDAgMUg2LjgyWk0xOCAxNGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4Wm0tNiAxVjVINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg4WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxSaWdodEV4cGFuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxSaWdodEV4cGFuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtNi44MiAxMC41IDEgLjg3YS41LjUgMCAwIDEtLjY2Ljc2bC0yLTEuNzVhLjUuNSAwIDAgMSAwLS43NmwyLTEuNzVhLjUuNSAwIDAgMSAuNjYuNzZsLTEgLjg3aDMuNjhhLjUuNSAwIDAgMSAwIDFINi44MlpNMTggMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OFptLTIgMWExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtM3YxMGgzWm0tNCAwVjVINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg4WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxSaWdodEdhbGxlcnlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxSaWdodEdhbGxlcnlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNmEzIDMgMCAwIDAtMy0zSDVhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM3YtMWgtNXYzSDVhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoOHYzaDVWNlptMCAyaC01djNoNVY4WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxSaWdodEdhbGxlcnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsUmlnaHRHYWxsZXJ5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA2YTMgMyAwIDAgMC0zLTNINWEzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjZabS0xIDVoLTRWOGg0djNabS00IDFoNHYxYTIgMiAwIDAgMS0yIDJoLTJ2LTNabTQtNnYxaC00VjRoMmEyIDIgMCAwIDEgMiAyWm0tNS0ydjExSDVhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsU2VwYXJhdGVXaW5kb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxTZXBhcmF0ZVdpbmRvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDJhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgzWm0wIDEydi0zaDF2M2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0zVjRoM2EyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbFNlcGFyYXRlV2luZG93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbFNlcGFyYXRlV2luZG93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDJhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgzWk0yIDRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY0Wm0xIDEwdi0zaDF2M2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0zVjRoM2EyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbFRvcENvbnRyYWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhbmVsVG9wQ29udHJhY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTAuNSA4LjgzLjg3IDFhLjUuNSAwIDAgMCAuNzYtLjY2bC0xLjc1LTJhLjUuNSAwIDAgMC0uNzYgMGwtMS43NSAyYS41LjUgMCAwIDAgLjc2LjY1bC44Ny0xdjMuNjhhLjUuNSAwIDAgMCAxIDBWOC44M1pNNCAxNmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0Wm0tMS0yYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY5aC0zLjgzYTEuNSAxLjUgMCAwIDAtLjMtLjVsLTEuNzQtMmExLjUgMS41IDAgMCAwLTIuMjYgMGwtMS43NSAyYTEuNSAxLjUgMCAwIDAtLjI5LjVIM3Y1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxUb3BDb250cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxUb3BDb250cmFjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTAuNSA4LjgzLjg3IDFhLjUuNSAwIDAgMCAuNzYtLjY2bC0xLjc1LTJhLjUuNSAwIDAgMC0uNzYgMGwtMS43NSAyYS41LjUgMCAwIDAgLjc2LjY1bC44Ny0xdjMuNjhhLjUuNSAwIDAgMCAxIDBWOC44M1pNNCAxNmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0Wm0tMS0yYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY5aC0zLjgzYTEuNSAxLjUgMCAwIDAtLjMtLjVsLS40NC0uNUgxN1Y2YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjJoNC41N2wtLjQ1LjVhMS41IDEuNSAwIDAgMC0uMjkuNUgzdjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbFRvcEV4cGFuZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbFRvcEV4cGFuZEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMC41IDExLjE3Ljg3LTFhLjUuNSAwIDAgMSAuNzYuNjZsLTEuNzUgMmEuNS41IDAgMCAxLS43NiAwbC0xLjc1LTJhLjUuNSAwIDEgMSAuNzYtLjY1bC44NyAxVjcuNWEuNS41IDAgMCAxIDEgMHYzLjY3Wk00IDE2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDRabS0xLTJhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjloLTUuNVY3LjVhMS41IDEuNSAwIDEgMC0zIDBWOUgzdjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYW5lbFRvcEV4cGFuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGFuZWxUb3BFeHBhbmRSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEwLjUgMTEuMTcuODctMWEuNS41IDAgMCAxIC43Ni42NmwtMS43NSAyYS41LjUgMCAwIDEtLjc2IDBsLTEuNzUtMmEuNS41IDAgMSAxIC43Ni0uNjVsLjg3IDFWNy41YS41LjUgMCAwIDEgMSAwdjMuNjdaTTQgMTZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINFptLTEtMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWOWgtNS41VjhIMTdWNmExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXYyaDUuNXYxSDN2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhbmVsVG9wR2FsbGVyeUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbFRvcEdhbGxlcnlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyA0SDVhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y3YTMgMyAwIDAgMC0zLTNoLTJ2NWg0djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOWg0VjRabTEgNWg0VjRIOHY1WlwiXSk7XG5leHBvcnQgY29uc3QgUGFuZWxUb3BHYWxsZXJ5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYW5lbFRvcEdhbGxlcnlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNGEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjdhMyAzIDAgMCAwLTMtM0g1Wk0zIDdjMC0xLjEuOS0yIDItMmgydjRIM1Y3Wm0wIDNoMTR2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtM1ptMTQtMWgtNFY1aDJhMiAyIDAgMCAxIDIgMnYyWm0tNS00djRIOFY1aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXNzd29yZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYXNzd29yZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djUuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTVINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMi4yNXYtNS41Wm01LjE1IDEuNC0uNjUuNjQtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsLjY0LjY1LS42NC42NWEuNS41IDAgMCAwIC43LjdsLjY1LS42NC42NS42NGEuNS41IDAgMCAwIC43LS43bC0uNjQtLjY1LjY0LS42NWEuNS41IDAgMSAwLS43LS43Wm00IDAtLjY1LjY0LS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bC42NC42NS0uNjQuNjVhLjUuNSAwIDAgMCAuNy43bC42NS0uNjQuNjUuNjRhLjUuNSAwIDAgMCAuNy0uN2wtLjY0LS42NS42NC0uNjVhLjUuNSAwIDAgMC0uNy0uN1pNMTMgMTAuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhc3N3b3JkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYXNzd29yZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy44NSA4LjE1YS41LjUgMCAwIDAtLjcgMGwtLjY1LjY0LS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bC42NC42NS0uNjQuNjVhLjUuNSAwIDAgMCAuNy43bC42NS0uNjQuNjUuNjRhLjUuNSAwIDAgMCAuNy0uN2wtLjY0LS42NS42NC0uNjVhLjUuNSAwIDAgMCAwLS43Wm0zLjMgMGEuNS41IDAgMCAxIC43LjdsLS42NC42NS42NC42NWEuNS41IDAgMCAxLS43LjdsLS42NS0uNjQtLjY1LjY0YS41LjUgMCAwIDEtLjctLjdsLjY0LS42NS0uNjQtLjY1YS41LjUgMCAxIDEgLjctLjdsLjY1LjY0LjY1LS42NFpNMTMuNSAxMGEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY1LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTVoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMTggMTIuMjV2LTUuNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNEg0Ljc1Wk0zIDYuNzVDMyA1Ljc4IDMuNzggNSA0Ljc1IDVoMTAuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY1LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDQuNzVDMy43OCAxNCAzIDEzLjIyIDMgMTIuMjV2LTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhdGNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhdGNoRmlsbGVkJywgXCIxZW1cIiwgW1wibTguMjcgMy4wNiAxLjAyIDEuMDMtNS4yIDUuMi0xLjAzLTEuMDJhMi41IDIuNSAwIDAgMSAwLTMuNTRsMS42Ny0xLjY3YTIuNSAyLjUgMCAwIDEgMy41NCAwWm0zLjQ2IDEzLjg4LTEuMDItMS4wMyA1LjItNS4yIDEuMDMgMS4wMmEyLjUgMi41IDAgMCAxIDAgMy41NGwtMS42NyAxLjY3YTIuNSAyLjUgMCAwIDEtMy41NCAwWm0tOC42Ny01LjJhMi41IDIuNSAwIDAgMCAwIDMuNTNsMS42NyAxLjY3YTIuNSAyLjUgMCAwIDAgMy41NCAwbDguNjctOC42N2EyLjUgMi41IDAgMCAwIDAtMy41NGwtMS42Ny0xLjY3YTIuNSAyLjUgMCAwIDAtMy41NCAwbC04LjY3IDguNjdaTTEwIDguNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptMCAyYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWk04LjUgMTBhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabTMuNS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWk0xMC41IDEyYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGF0Y2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhdGNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDhhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabTAgMmEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptLTIuNS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm00LjUtLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTEwIDEyLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabS02Ljk0IDIuNzdhMi41IDIuNSAwIDAgMSAwLTMuNTRsOC42Ny04LjY3YTIuNSAyLjUgMCAwIDEgMy41NCAwbDEuNjcgMS42N2EyLjUgMi41IDAgMCAxIDAgMy41NGwtOC42NyA4LjY3YTIuNSAyLjUgMCAwIDEtMy41NCAwbC0xLjY3LTEuNjdabS43LTIuODNhMS41IDEuNSAwIDAgMCAwIDIuMTJsMS42OCAxLjY3YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDEuNzMtMS43My0zLjc5LTMuOC0xLjczIDEuNzRaTTEzLjggMTAgMTAgNi4yIDYuMiAxMGwzLjggMy44IDMuOC0zLjhabS43MS0uNyAxLjczLTEuNzRhMS41IDEuNSAwIDAgMCAwLTIuMTJsLTEuNjctMS42N2ExLjUgMS41IDAgMCAwLTIuMTIgMEwxMC43IDUuNWwzLjc5IDMuOFptLTMuOCA2LjYxIDEuMDMgMS4wM2EyLjUgMi41IDAgMCAwIDMuNTQgMGwxLjY3LTEuNjdhMi41IDIuNSAwIDAgMCAwLTMuNTRsLTEuMDMtMS4wMi0uNy43IDEuMDIgMS4wM2ExLjUgMS41IDAgMCAxIDAgMi4xMmwtMS42NyAxLjY3YTEuNSAxLjUgMCAwIDEtMi4xMiAwbC0xLjAzLTEuMDItLjcuN1pNOC42IDQuOCA3LjU2IDMuNzdhMS41IDEuNSAwIDAgMC0yLjEyIDBMMy43NyA1LjQ0YTEuNSAxLjUgMCAwIDAgMCAyLjEyTDQuNzkgOC42bC0uNy43LTEuMDMtMS4wMmEyLjUgMi41IDAgMCAxIDAtMy41NGwxLjY3LTEuNjdhMi41IDIuNSAwIDAgMSAzLjU0IDBMOS4yOSA0LjFsLS43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXRpZW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhdGllbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNGEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRaTTYuNSAxNC41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0xMC0xSDZhMSAxIDAgMCAwLTEgMXY4aDJ2LTJhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmgyVjRhMSAxIDAgMCAwLTEtMVpNNSAxM3YzYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0zSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXRpZW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYXRpZW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA0YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFpNOSA2YTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptLTIuNSA4LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTEwLTFINmExIDEgMCAwIDAtMSAxdjhoMnYtMmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyaDJWNGExIDEgMCAwIDAtMS0xWm0tMiA3SDh2Mmg0di0yWm0tNyAzdjNhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTF2LTNINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhdXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BhdXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg1Wm04IDBhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXVzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF1c2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg1Wk00IDRhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWNFptOS0yYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0yaC0yWm0tMSAyYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVY0WlwiXSk7XG5leHBvcnQgY29uc3QgUGF1c2VDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF1c2VDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNy0yLjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVptMyAwYS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXVzZUNpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF1c2VDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNy41YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVabTMgMGEuNS41IDAgMCAwLTEgMHY1YS41LjUgMCAwIDAgMSAwdi01Wk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGF1c2VPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF1c2VPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAzLjd2MTIuOGMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVY4LjdsNCA0djMuOGMwIC44My42NyAxLjUgMS41IDEuNWgyYy40OSAwIC45Mi0uMjMgMS4yLS42bC40NS40NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdsLjg1Ljg2Wm05IDYuMTggNSA1VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41djYuMzhaTTQuMTYgMi4wNCA4IDUuODhWMy41QzggMi42NyA3LjMzIDIgNi41IDJoLTJjLS4xMiAwLS4yMy4wMS0uMzQuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXVzZU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF1c2VPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wibTMgMy43LS44NS0uODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLS40NS0uNDVjLS4yOC4zNy0uNzEuNi0xLjIuNmgtMmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTMuOGwtNC00djcuOGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJBMS41IDEuNSAwIDAgMSAzIDE2LjVWMy43Wm00IDQtMy0zdjExLjhjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41VjcuN1ptNiA2djIuOGMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgLjQ3LS4zMkwxMyAxMy43Wk03IDMuNXYxLjM4bDEgMVYzLjVDOCAyLjY3IDcuMzMgMiA2LjUgMmgtMmMtLjEyIDAtLjIzLjAxLS4zNC4wNGwuOTYuOTZINi41Yy4yOCAwIC41LjIyLjUuNVptNSA2LjM4IDEgMVYzLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYxMC4zOGwxIDFWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2Ni4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBhdXNlU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF1c2VTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAzLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXY2LjFhNS40OCA1LjQ4IDAgMCAwLTUgMFYzLjVabS05IDBDMyAyLjY3IDMuNjcgMiA0LjUgMmgyQzcuMzMgMiA4IDIuNjcgOCAzLjV2MTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yQTEuNSAxLjUgMCAwIDEgMyAxNi41di0xM1ptOS4wNyA3Ljk0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXVzZVNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQYXVzZVNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMkMzLjY3IDIgMyAyLjY3IDMgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0xM0M4IDIuNjcgNy4zMyAyIDYuNSAyaC0yWm0wIDFoMmMuMjggMCAuNS4yMi41LjV2MTNhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTEzYzAtLjI4LjIyLS41LjUtLjVabTktMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2Ni4xYy4zMi0uMTYuNjUtLjMgMS0uNFYzLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXY1LjdjLjM1LjEuNjguMjQgMSAuNFYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWm0tMS40MyA5LjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXltZW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BheW1lbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzVWOGgxNlY2Ljc1QTIuNzUgMi43NSAwIDAgMCAxNS4yNSA0SDQuNzVaTTE4IDlIMnY0LjI1QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDEwLjVBMi43NSAyLjc1IDAgMCAwIDE4IDEzLjI1VjlabS00LjUgNGgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgUGF5bWVudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF5bWVudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSAxM2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTZINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMy4yNXYtNi41Wk00Ljc1IDVDMy43OCA1IDMgNS43OCAzIDYuNzVWOGgxNFY2Ljc1QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVaTTE3IDlIM3Y0LjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEwLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjlaXCJdKTtcbmV4cG9ydCBjb25zdCBQYXltZW50V2lyZWxlc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF5bWVudFdpcmVsZXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTcuMzYtMy44NmEuNTEuNTEgMCAwIDAtLjcxIDBjLS4yLjItLjIuNTEgMCAuN2E0LjQgNC40IDAgMCAxIDAgNi4zMmMtLjIuMi0uMi41IDAgLjcuMi4yLjUyLjIuNzEgMGE1LjM3IDUuMzcgMCAwIDAgMC03LjcyWm0tMy4yMiAxYy0uMTkuMi0uMTkuNTMgMCAuNzJhMy4wNyAzLjA3IDAgMCAxIDAgNC4yN2MtLjE5LjItLjE5LjUyIDAgLjcyLjIuMi41MS4yLjcgMGE0LjEgNC4xIDAgMCAwIDAtNS43Yy0uMTktLjItLjUtLjItLjcgMFptNS43NC0yYS41My41MyAwIDAgMC0uNzMgMGMtLjIuMi0uMi41IDAgLjdhNS42OCA1LjY4IDAgMCAxIDAgOC4zM2MtLjIuMTktLjIuNSAwIC42OS4yLjE5LjUzLjE5LjczIDBhNi42MiA2LjYyIDAgMCAwIDAtOS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBheW1lbnRXaXJlbGVzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGF5bWVudFdpcmVsZXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDEwYTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWm03LThhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS0uNjQgNC4xNGEuNTEuNTEgMCAwIDAtLjcxIDBjLS4yLjItLjIuNTEgMCAuN2E0LjQgNC40IDAgMCAxIDAgNi4zMmMtLjIuMi0uMi41IDAgLjcuMi4yLjUyLjIuNzEgMGE1LjM3IDUuMzcgMCAwIDAgMC03LjcyWm0tMy4yMiAxYy4yLS4xOS41MS0uMTkuNyAwYTQuMSA0LjEgMCAwIDEgMCA1LjcxYy0uMTkuMi0uNS4yLS43IDBhLjUxLjUxIDAgMCAxIDAtLjcyIDMuMDcgMy4wNyAwIDAgMCAwLTQuMjcuNTEuNTEgMCAwIDEgMC0uNzFabTUuNzQtMmEuNTMuNTMgMCAwIDAtLjczIDBjLS4yLjItLjIuNSAwIC43YTUuNjggNS42OCAwIDAgMSAwIDguMzNjLS4yLjE5LS4yLjUgMCAuNjkuMi4xOS41My4xOS43MyAwYTYuNjIgNi42MiAwIDAgMCAwLTkuNzJaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjkyIDIuODdhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxbC0uNjYuNjcuMzMuMzRhMiAyIDAgMCAxIDAgMi44MmwtLjk0Ljk0YS41LjUgMCAwIDEtLjctLjdsLjk0LS45NGExIDEgMCAwIDAgMC0xLjQybC0uMzQtLjMzLTcuOTggNy45OGMtLjM0LjM0LS43Ny41Ny0xLjI0LjY4bC0zLjkyLjg3YS41LjUgMCAwIDEtLjYtLjZsLjg4LTMuOTVjLjEtLjQ1LjMzLS44Ni42Ni0xLjJsOS4zNy05LjM3WlwiXSk7XG5leHBvcnQgY29uc3QgUGVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjE4IDIuOTNhMi45NyAyLjk3IDAgMCAwLTQuMjYtLjA2bC05LjM3IDkuMzhjLS4zMy4zMi0uNTYuNzQtLjY2IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg4Yy40Ny0uMS45LS4zMyAxLjI0LS42N2w3Ljk4LTcuOTguMzQuMzNhMSAxIDAgMCAxIDAgMS40MmwtLjk0Ljk0YS41LjUgMCAwIDAgLjcuN2wuOTQtLjk0YTIgMiAwIDAgMCAwLTIuODJsLS4zMy0uMzQuNjctLjY3YTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMCAxIDIuNzkgMi44bC05LjM2IDkuMzVjLS4yLjItLjQ2LjM1LS43NC40bC0zLjE2LjcxLjctMy4xOGMuMDctLjI3LjItLjUxLjQtLjdsOS4zNy05LjM4WlwiXSk7XG5leHBvcnQgY29uc3QgUGVuRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW5EaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjkyIDIuODdhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxTDE1IDkuMjFBNS41IDUuNSAwIDAgMCA4LjIgMTZsLS40My40NGMtLjM0LjM0LS43Ny41Ny0xLjI0LjY4bC0zLjkyLjg3YS41LjUgMCAwIDEtLjYtLjZsLjg4LTMuOTVjLjEtLjQ1LjMzLS44Ni42Ni0xLjJsOS4zNy05LjM3Wk0xOCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlbkRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlbkRpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjE4IDIuOTNhMi45NyAyLjk3IDAgMCAwLTQuMjYtLjA2bC05LjM3IDkuMzhjLS4zMy4zMi0uNTYuNzQtLjY2IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg4Yy40Ny0uMS45LS4zMyAxLjI0LS42N0w4LjIgMTZjLS4xMS0uMzktLjE4LS44LS4yLTEuMjFsLS45NS45NGMtLjIuMi0uNDYuMzUtLjc0LjRsLTMuMTYuNzEuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2w5LjM3LTkuMzhhMS45NyAxLjk3IDAgMCAxIDIuNzkgMi44TDEzLjc4IDljLjQyLjAyLjgzLjA5IDEuMjIuMmwyLjEzLTIuMTNhMi45NyAyLjk3IDAgMCAwIC4wNS00LjE1Wk0xOCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlbk9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW5PZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2w1LjQgNS40LTQgNGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4bDMuOTgtMy45OCA1LjQgNS40YS41LjUgMCAwIDAgLjctLjcxbC0xNS0xNVptMTIuOSA2LjMtMi41OSAyLjYtNC4yLTQuMjEgMy45Ni0zLjk3YTIuOTcgMi45NyAwIDAgMSA0LjIgNC4yMWwtLjY2LjY3LjMzLjM0YTIgMiAwIDAgMSAwIDIuODJsLS45NC45NGEuNS41IDAgMCAxLS43LS43bC45NC0uOTRhMSAxIDAgMCAwIDAtMS40MmwtLjM0LS4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBlbk9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVuT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDUuNCA1LjQtNCA0Yy0uMzMuMzItLjU2Ljc0LS42NiAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44OGMuNDctLjEuOS0uMzMgMS4yNC0uNjdsMy45OC0zLjk4IDUuNCA1LjRhLjUuNSAwIDAgMCAuNy0uNzFsLTE1LTE1Wm04LjIgOS42LTMuOTkgMy45OGMtLjIuMi0uNDYuMzUtLjc0LjRsLTMuMTYuNzEuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2wzLjk5LTQgMi44IDIuNzlabTUuMzctNS4zOC0zLjk2IDMuOTcuNy43IDIuNTktMi41OC4zNC4zM2ExIDEgMCAwIDEgMCAxLjQybC0uOTQuOTRhLjUuNSAwIDEgMCAuNy43bC45NC0uOTRhMiAyIDAgMCAwIDAtMi44MmwtLjMzLS4zNC42Ny0uNjdhMi45NyAyLjk3IDAgMCAwLTQuMjEtNC4yTDguOTYgNi44M2wuNy43IDMuOTctMy45NmExLjk3IDEuOTcgMCAwIDEgMi43OSAyLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW5Qcm9oaWJpdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlblByb2hpYml0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDguMiAxNkE1LjUgNS41IDAgMCAxIDE1IDkuMmwyLjEzLTIuMTJhMi45NyAyLjk3IDAgMCAwIC4wNS00LjE1Wk05IDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVptMy41IDMuNWMtLjc5IDAtMS41MS0uMjYtMi4xLS43bDQuOS00LjlhMy41IDMuNSAwIDAgMS0yLjggNS42WlwiXSk7XG5leHBvcnQgY29uc3QgUGVuUHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVuUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMkwxNSA5LjIyYy0uMzktLjExLS44LS4xOC0xLjIxLS4ybDIuNjMtMi42NGExLjk3IDEuOTcgMCAwIDAtMi44LTIuOGwtOS4zNyA5LjM4Yy0uMi4yLS4zMi40NC0uMzguN2wtLjcxIDMuMiAzLjE2LS43MWMuMjgtLjA2LjU0LS4yLjc0LS40MWwuOTUtLjk1Yy4wMi40Mi4wOS44My4yIDEuMjJsLS40NC40NGMtLjM0LjM0LS43Ny41Ny0xLjI0LjY3TDIuNjEgMThhLjUuNSAwIDAgMS0uNi0uNmwuODgtMy45NWMuMS0uNDUuMzMtLjg3LjY2LTEuMmw5LjM3LTkuMzdaTTkgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW5TcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlblNwYXJrbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRMNC45IDYuNzJhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMiAyLjIgMCAwIDAtMS40LTEuNEwxLjI4IDMuOWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40TDQuMDguMjhhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTcuNSAxMmMtLjI3IDAtLjUzLS4wOC0uNzQtLjIzYTEuNCAxLjQgMCAwIDEtLjQ4LS42MmwtLjI2LS44YS42LjYgMCAwIDAtLjI2LS4zMWwtMi4yMSAyLjJjLS4zMy4zNC0uNTYuNzUtLjY2IDEuMmwtLjg4IDMuOTVhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OGw3Ljk4LTcuOTguMzQuMzNhMSAxIDAgMCAxIDAgMS40MmwtLjk0Ljk0YS41LjUgMCAwIDAgLjcuN2wuOTQtLjk0YTIgMiAwIDAgMCAwLTIuODJsLS4zMy0uMzQuNjctLjY3YTIuOTcgMi45NyAwIDAgMC00LjIxLTQuMmwtMy45MSAzLjljLjAyLjA0LjA1LjA4LjA5LjExLjA3LjA2LjE0LjExLjIzLjE0bC43Ni4yNWMuMjkuMS41MS4yNy42Ny41YTEuMyAxLjMgMCAwIDEtLjYzIDEuOTdsLS44LjI2YS41Mi41MiAwIDAgMC0uMjEuMTQuNjguNjggMCAwIDAtLjE0LjIzbC0uMjUuNzZjLS4xLjI4LS4yNi40OS0uNDguNjUtLjIyLjE2LS40OC4yLS43NS4yMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlblNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlblNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40TDQuOSA2LjcyYS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMMS4yOCAzLjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNEw0LjA4LjI4YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWm0tMy43NiAyLjE0LjIuNjMtMS45NyAxLjk3Yy0uMi4yLS4zMi40NC0uMzguN2wtLjcxIDMuMiAzLjE2LS43MWMuMjgtLjA2LjU0LS4yLjc0LS40MWw5LjM2LTkuMzZhMS45NyAxLjk3IDAgMCAwLTIuOC0yLjc5TDkuOTggNy4yNGwtLjY0LS4yYS42OC42OCAwIDAgMS0uMjMtLjE1LjQyLjQyIDAgMCAxLS4wOS0uMWwzLjkxLTMuOTJhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjJsLS42Ni42OC4zMy4zNGEyIDIgMCAwIDEgMCAyLjgybC0uOTQuOTRhLjUuNSAwIDAgMS0uNy0uN2wuOTQtLjk0YTEgMSAwIDAgMCAwLTEuNDJsLS4zNC0uMzMtNy45OCA3Ljk4Yy0uMzQuMzQtLjc3LjU3LTEuMjQuNjdMMi42MSAxOGEuNS41IDAgMCAxLS42LS42bC44OC0zLjk1Yy4xLS40NS4zMy0uODcuNjYtMS4ybDIuMi0yLjJhLjYuNiAwIDAgMSAuMjcuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBlbnRhZ29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlbnRhZ29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjc2IDEuNjZhMi41IDIuNSAwIDAgMC0zLjM3LS4wMUwyLjgyIDYuN2EyLjUgMi41IDAgMCAwLS42NyAyLjdsMi4xNSA1Ljk1QTIuNSAyLjUgMCAwIDAgNi42NSAxN2g2LjgzYTIuNSAyLjUgMCAwIDAgMi4zNi0xLjdsMi4wMy02LjAyYTIuNSAyLjUgMCAwIDAtLjY4LTIuNjRsLTUuNDMtNC45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlbnRhZ29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW50YWdvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC40IDEuNjVhMi41IDIuNSAwIDAgMSAzLjM2IDBsNS40MyA0Ljk5Yy43My42NyAxIDEuNy42OCAyLjY0bC0yLjAzIDYuMDJhMi41IDIuNSAwIDAgMS0yLjM2IDEuN0g2LjY1Yy0xLjA1IDAtMi0uNjYtMi4zNS0xLjY1TDIuMTUgOS40YTIuNSAyLjUgMCAwIDEgLjY3LTIuN0w4LjQgMS42NVptMi42OS43NGExLjUgMS41IDAgMCAwLTIuMDMgMEwzLjUgNy40NGExLjUgMS41IDAgMCAwLS40IDEuNjJsMi4xNSA1Ljk1Yy4yMS42Ljc4Ljk5IDEuNC45OWg2Ljg0YTEuNSAxLjUgMCAwIDAgMS40Mi0xLjAybDIuMDItNi4wMmExLjUgMS41IDAgMCAwLS40LTEuNThsLTUuNDMtNC45OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43NSAxMGEzLjI1IDMuMjUgMCAxIDAgMC02LjUgMy4yNSAzLjI1IDAgMCAwIDAgNi41Wm01LjY5IDUuMTRjLjUzLjIyIDEuMi4zNiAyLjA2LjM2IDQgMCA0LTMgNC0zIDAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNC42M2MuNC40OC42MyAxLjA5LjYzIDEuNzV2LjM2YTIuOTQgMi45NCAwIDAgMS0uMDIuMjUgNC42MiA0LjYyIDAgMCAxLS41NCAxLjc4Wk0xNyA3LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaTTEuNSAxM2MwLTEuMS45LTIgMi0ySDEwYTIgMiAwIDAgMSAyIDJzMCA0LTUuMjUgNC01LjI1LTQtNS4yNS00Wm0xMS41LjF2LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSA2Ljc1YTIuMjUgMi4yNSAwIDEgMSA0LjUgMCAyLjI1IDIuMjUgMCAwIDEtNC41IDBaTTYuNzUgMy41YTMuMjUgMy4yNSAwIDEgMCAwIDYuNSAzLjI1IDMuMjUgMCAwIDAgMC02LjVabTUuNjkgMTEuNjVjLjUzLjIxIDEuMjEuMzUgMi4wNi4zNSAxLjg4IDAgMi45Mi0uNjcgMy40Ny0xLjQzYTIuOTIgMi45MiAwIDAgMCAuNTMtMS41di0uMDdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00LjYzYy4yNC4yOS40Mi42My41MyAxSDE3Yy4yOCAwIC41LjIyLjUuNXYuMWwtLjA0LjIyYy0uMDQuMTgtLjEzLjQyLS4zLjY2LS4zMy40Ni0xLjA0IDEuMDItMi42NiAxLjAyLS43MyAwLTEuMjgtLjExLTEuNjktLjI4LS4wOC4yOC0uMi42LS4zNy45M1pNMS41IDEzYzAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDIgMlYxMy4wOGExLjQzIDEuNDMgMCAwIDEtLjAxLjE4IDMuOTUgMy45NSAwIDAgMS0uNjcgMS44QzEwLjYyIDE2LjA5IDkuMjYgMTcgNi43NSAxN2MtMi41MSAwLTMuODctLjkyLTQuNTctMS45M2EzLjk1IDMuOTUgMCAwIDEtLjY4LTEuOTlWMTNabTEgLjA2di4xbC4wNi4zM2MuMDcuMjcuMi42NC40NSAxQzMuNDkgMTUuMiA0LjUgMTYgNi43NSAxNnMzLjI2LS44IDMuNzQtMS41YTIuOTUgMi45NSAwIDAgMCAuNS0xLjQybC4wMS0uMDJWMTNhMSAxIDAgMCAwLTEtMUgzLjVhMSAxIDAgMCAwLTEgMXYuMDZaTTEzIDcuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTQuNSA1YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDlhMy4yNSAzLjI1IDAgMSAwIDAtNi41IDMuMjUgMy4yNSAwIDAgMCAwIDYuNVpNMTcgNi41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0tOCA4YzAtMS43Ljc4LTMuMjMgMi00LjI0YTIgMiAwIDAgMC0xLS4yNkgzLjVhMiAyIDAgMCAwLTIgMnMwIDQgNS4yNSA0Yy45NSAwIDEuNzMtLjEzIDIuMzctLjM1QTUuNTIgNS41MiAwIDAgMSA5IDE0LjVabTEwIDBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDUuNzVhMi4yNSAyLjI1IDAgMSAxIDQuNSAwIDIuMjUgMi4yNSAwIDAgMS00LjUgMFpNNi43NSAyLjVhMy4yNSAzLjI1IDAgMSAwIDAgNi41IDMuMjUgMy4yNSAwIDAgMCAwLTYuNVpNMS41IDEyYzAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDEgLjI2Yy0uMjguMjMtLjU0LjQ5LS43Ny43N0ExIDEgMCAwIDAgMTAgMTFIMy41YTEgMSAwIDAgMC0xIDF2LjE2bC4wNi4zM2MuMDcuMjcuMi42NC40NSAxQzMuNDkgMTQuMiA0LjUgMTUgNi43NSAxNWMuOTUgMCAxLjY5LS4xNSAyLjI1LS4zNy4wMS4zNS4wNS43LjEyIDEuMDItLjY0LjIyLTEuNDIuMzUtMi4zNy4zNS0yLjUxIDAtMy44Ny0uOTItNC41Ny0xLjkzYTMuOTUgMy45NSAwIDAgMS0uNjgtMS45OVYxMlpNMTMgNi41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xNC41IDRhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVBdWRpZW5jZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVBdWRpZW5jZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4yMSA1LjIyYTIuMjMgMi4yMyAwIDEgMC00LjQ1IDAgMi4yMyAyLjIzIDAgMCAwIDQuNDUgMFpNMi41MSAxMmgzVjguODNjLjAzLS4zLjEyLS41Ny4yNi0uODJIMy4wMmwtLjEyLjAxYTEgMSAwIDAgMC0uODggMXYyLjQ4YzAgLjI4LjIyLjUuNS41Wk0xOCAxMS41YS41LjUgMCAwIDEtLjUuNWgtMy4wMlY4Ljg3Yy0uMDItLjMxLS4xMi0uNi0uMjYtLjg2aDIuNzhhMSAxIDAgMCAxIDEgLjg5djIuNlptLTQuNTItMi42YTEgMSAwIDAgMC0xLS44OUg3LjVsLS4xMS4wMWExIDEgMCAwIDAtLjg5IDFWMTJoNi45N1Y4LjlabTEuNS01LjI4YTEuOTEgMS45MSAwIDEgMSAwIDMuODIgMS45MSAxLjkxIDAgMCAxIDAtMy44MlpNNi45MyA1LjUzYTEuOTEgMS45MSAwIDEgMC0zLjgzIDAgMS45MSAxLjkxIDAgMCAwIDMuODMgMFpNMi41IDEzYS41LjUgMCAwIDAtLjUuNXYxQTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMWEuNS41IDAgMCAwLS41LS41aC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUF1ZGllbmNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVBdWRpZW5jZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS45OSAyLjk5YTIuMjMgMi4yMyAwIDEgMSAwIDQuNDUgMi4yMyAyLjIzIDAgMCAxIDAtNC40NVptMCAxYTEuMjMgMS4yMyAwIDEgMCAwIDIuNDUgMS4yMyAxLjIzIDAgMCAwIDAtMi40NVpNMy4wMiAxMS41YS41LjUgMCAxIDEtMSAwVjkuMDFhMSAxIDAgMCAxIC44OC0uOTloMi44N2MtLjE0LjI0LS4yMy41Mi0uMjYuODF2LjE4SDN2Mi40OVptMTQuNDcuNWEuNS41IDAgMCAwIC41LS41VjguOWExIDEgMCAwIDAtMS0uODloLTIuNzhjLjE0LjI2LjI0LjU1LjI2Ljg2VjlIMTd2Mi40OWMwIC4yOC4yMi41LjUuNVptLTUuMDItMy45OWExIDEgMCAwIDEgMSAuODl2Mi42YS41LjUgMCAxIDEtMSAwVjkuMDFINy41djIuNDlhLjUuNSAwIDEgMS0xIDBWOS4wMWExIDEgMCAwIDEgLjg5LS45OWg1LjA4Wm00LjQyLTIuNDhhMS45MSAxLjkxIDAgMSAwLTMuODMgMCAxLjkxIDEuOTEgMCAwIDAgMy44MyAwWm0tMi44MyAwYS45MS45MSAwIDEgMSAxLjgzIDAgLjkxLjkxIDAgMCAxLTEuODMgMFpNNS4wMiAzLjYyYTEuOTEgMS45MSAwIDEgMSAwIDMuODIgMS45MSAxLjkxIDAgMCAxIDAtMy44MlptMCAxYS45MS45MSAwIDEgMCAwIDEuODIuOTEuOTEgMCAwIDAgMC0xLjgyWk0yLjUgMTNhLjUuNSAwIDAgMC0uNS41djFBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDAtLjUtLjVoLTE1Wm0uNSAxLjVWMTRoMTR2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUNhbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlQ2FsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDIuNWEzLjI1IDMuMjUgMCAxIDAgMCA2LjUgMy4yNSAzLjI1IDAgMCAwIDAtNi41Wk0xLjUgMTJjMC0xLjEuOS0yIDItMkgxMGEyIDIgMCAwIDEgMiAyVjEyLjA4YTEuNDMgMS40MyAwIDAgMS0uMDEuMTggMy45NSAzLjk1IDAgMCAxLS42NyAxLjhDMTAuNjIgMTUuMDkgOS4yNiAxNiA2Ljc1IDE2Yy0yLjUxIDAtMy44Ny0uOTItNC41Ny0xLjkzYTMuOTUgMy45NSAwIDAgMS0uNjgtMS45OVYxMlptMTMtOGEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVptMS4wOCA3LjU4LjI5LS43NWExLjMyIDEuMzIgMCAwIDEgMS43NC0uNzNsLjM5LjE3Yy40Ny4yLjg2LjU3Ljk0IDEuMDYuNDYgMi43My0xLjkgNi42LTQuNjMgNy41OWExLjYgMS42IDAgMCAxLTEuNDQtLjI1bC0uMzUtLjIzYy0uNi0uNDEtLjctMS4yNC0uMi0xLjc5bC41NC0uNmMuMjYtLjMuNjYtLjQyIDEuMDQtLjMzbDEuMjIuMjljLjk3LS42IDEuNS0xLjQ2IDEuNTYtMi41NmwtLjg4LS44NmEuOTQuOTQgMCAwIDEtLjIyLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVDYWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVDYWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk02Ljc1IDMuNWEyLjI1IDIuMjUgMCAxIDAgMCA0LjUgMi4yNSAyLjI1IDAgMCAwIDAtNC41Wk0zLjUgNS43NWEzLjI1IDMuMjUgMCAxIDEgNi41IDAgMy4yNSAzLjI1IDAgMCAxLTYuNSAwWm0wIDQuMjVhMiAyIDAgMCAwLTIgMlYxMi4wOGExLjcyIDEuNzIgMCAwIDAgLjAxLjE4IDMuOTUgMy45NSAwIDAgMCAuNjcgMS44QzIuODggMTUuMDkgNC4yNCAxNiA2Ljc1IDE2YzIuNTEgMCAzLjg3LS45MiA0LjU3LTEuOTNhMy45NSAzLjk1IDAgMCAwIC42OC0xLjk5VjEyYTIgMiAwIDAgMC0yLTJIMy41Wm0tMSAyLjA2VjEyYTEgMSAwIDAgMSAxLTFIMTBhMSAxIDAgMCAxIDEgMXYuMTZsLS4wNi4zM2MtLjA3LjI3LS4yLjY0LS40NSAxQzEwLjAxIDE0LjIgOSAxNSA2Ljc1IDE1cy0zLjI2LS44LTMuNzQtMS41YTIuOTUgMi45NSAwIDAgMS0uNS0xLjQybC0uMDEtLjAyWk0xNC41IDVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTEyIDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFptMy41OCA1LjA4LjI5LS43NWExLjMyIDEuMzIgMCAwIDEgMS43NC0uNzNsLjM5LjE3Yy40Ny4yLjg2LjU3Ljk0IDEuMDYuNDYgMi43My0xLjkgNi42LTQuNjMgNy41OWExLjYgMS42IDAgMCAxLTEuNDQtLjI1bC0uMzUtLjIzYy0uNi0uNDEtLjctMS4yNC0uMi0xLjc5bC41NC0uNmMuMjYtLjMuNjYtLjQyIDEuMDQtLjMzbDEuMjIuMjljLjk3LS42IDEuNS0xLjQ2IDEuNTYtMi41NmwtLjg4LS44NmEuOTQuOTQgMCAwIDEtLjIyLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVDaGF0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUNoYXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNS43NWEzLjI1IDMuMjUgMCAxIDEtNi41IDAgMy4yNSAzLjI1IDAgMCAxIDYuNSAwWk0xNC41IDlhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVaTTExIDEwLjI2YTUuNDkgNS40OSAwIDAgMC0xLjg4IDUuNGMtLjY0LjItMS40Mi4zNC0yLjM3LjM0LTUuMjUgMC01LjI1LTQtNS4yNS00IDAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDEgLjI2Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAtMy45NC0yLjMybC0uNTQgMS44Yy0uMS4zLjIuNi41LjVsMS44LS41NGMuNjQuMzYgMS4zOS41NiAyLjE4LjU2Wk0xMiAxMy41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIDAgMWgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUNoYXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUNoYXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNzUgMy41YTIuMjUgMi4yNSAwIDEgMCAwIDQuNSAyLjI1IDIuMjUgMCAwIDAgMC00LjVaTTMuNSA1Ljc1YTMuMjUgMy4yNSAwIDEgMSA2LjUgMCAzLjI1IDMuMjUgMCAwIDEtNi41IDBabTAgNC4yNWEyIDIgMCAwIDAtMiAyVjEyLjA4YTEuNzIgMS43MiAwIDAgMCAuMDEuMTggMy45NSAzLjk1IDAgMCAwIC42NyAxLjhDMi44OCAxNS4wOSA0LjI0IDE2IDYuNzUgMTZjLjk1IDAgMS43My0uMTMgMi4zNy0uMzVBNS41MSA1LjUxIDAgMCAxIDkgMTQuNjNjLS41Ni4yMi0xLjMuMzctMi4yNS4zNy0yLjI0IDAtMy4yNi0uOC0zLjc0LTEuNWEyLjk1IDIuOTUgMCAwIDEtLjUtMS40MmwtLjAxLS4wMlYxMmExIDEgMCAwIDEgMS0xSDEwYTEgMSAwIDAgMSAuMjMuMDNjLjIzLS4yOC40OS0uNTQuNzYtLjc3QTIgMiAwIDAgMCAxMCAxMEgzLjVabTExLTVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTEyIDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpNMTQuNSAxOWE0LjUgNC41IDAgMSAwLTMuOTQtMi4zMmwtLjU0IDEuOGMtLjEuMy4yLjYuNS41bDEuOC0uNTRjLjY0LjM2IDEuMzkuNTYgMi4xOC41NlpNMTIgMTMuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAwIDFoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNzUgOWEzLjI1IDMuMjUgMCAxIDAgMC02LjUgMy4yNSAzLjI1IDAgMCAwIDAgNi41Wk0xNyA2LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabS04IDhjMC0xLjcuNzgtMy4yMyAyLTQuMjRhMiAyIDAgMCAwLTEtLjI2SDMuNWEyIDIgMCAwIDAtMiAyczAgNCA1LjI1IDRjLjk1IDAgMS43My0uMTMgMi4zNy0uMzVBNS41MiA1LjUyIDAgMCAxIDkgMTQuNVptMTAgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUNoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDUuNzVhMi4yNSAyLjI1IDAgMSAxIDQuNSAwIDIuMjUgMi4yNSAwIDAgMS00LjUgMFpNNi43NSAyLjVhMy4yNSAzLjI1IDAgMSAwIDAgNi41IDMuMjUgMy4yNSAwIDAgMCAwLTYuNVpNMS41IDEyYzAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDEgLjI2Yy0uMjguMjMtLjU0LjQ5LS43Ny43N0ExIDEgMCAwIDAgMTAgMTFIMy41YTEgMSAwIDAgMC0xIDF2LjE2bC4wNi4zM2MuMDcuMjcuMi42NC40NSAxQzMuNDkgMTQuMiA0LjUgMTUgNi43NSAxNWMuOTUgMCAxLjY5LS4xNSAyLjI1LS4zNy4wMS4zNS4wNS43LjEyIDEuMDItLjY0LjIyLTEuNDIuMzUtMi4zNy4zNS0yLjUxIDAtMy44Ny0uOTItNC41Ny0xLjkzYTMuOTUgMy45NSAwIDAgMS0uNjgtMS45OVYxMlpNMTMgNi41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xNC41IDRhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlQ29tbXVuaXR5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUNvbW11bml0eUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljg4IDcuNWEyLjc0IDIuNzQgMCAxIDEgNC4yNCAzLjQ5QTIuNzQgMi43NCAwIDAgMSA3Ljg4IDcuNVptNS44NyAxLjc1YzAtLjYzLS4xNi0xLjIzLS40My0xLjc1aDQuMThjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVjMCAxLjU5LTEuMiAzLjIxLTMuMzEgMy43OEEyLjUgMi41IDAgMCAwIDEzLjUgMTJoLS45NWEzLjc0IDMuNzQgMCAwIDAgMS4yLTIuNzVaTTEzLjUgMTNhMS41IDEuNSAwIDAgMSAxLjUgMS41di41YzAgMS45Ny0xLjg2IDQtNSA0LTMuMTQgMC01LTIuMDMtNS00di0uNUExLjUgMS41IDAgMCAxIDYuNSAxM2g3Wk0xIDkuNWMwIDEuNTkgMS4yIDMuMjEgMy4zMSAzLjc4QTIuNSAyLjUgMCAwIDEgNi41IDEyaC45NWEzLjc0IDMuNzQgMCAwIDEtLjc3LTQuNUgyLjVDMS42NyA3LjUgMSA4LjE3IDEgOXYuNVptNy43NS01Ljc1YTIuNzUgMi43NSAwIDEgMC01LjUgMCAyLjc1IDIuNzUgMCAwIDAgNS41IDBabTggMGEyLjc1IDIuNzUgMCAxIDAtNS41IDAgMi43NSAyLjc1IDAgMCAwIDUuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlQ29tbXVuaXR5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVDb21tdW5pdHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNzUgMy43NWEyLjc1IDIuNzUgMCAxIDAtNS41IDAgMi43NSAyLjc1IDAgMCAwIDUuNSAwWm0tNC41IDBhMS43NSAxLjc1IDAgMSAxIDMuNSAwIDEuNzUgMS43NSAwIDAgMS0zLjUgMFpNMi41IDcuNWg0LjE4Yy0uMTYuMzEtLjI4LjY1LS4zNSAxSDIuNUEuNS41IDAgMCAwIDIgOXYuNWMwIDEuMjYgMS4xIDIuNjEgMy4xIDIuOTMtLjMzLjIyLS42LjUxLS43OS44NUMyLjIxIDEyLjcxIDEgMTEuMDggMSA5LjVWOWMwLS44My42Ny0xLjUgMS41LTEuNVptNS4zOCAwYTIuNzQgMi43NCAwIDEgMSA0LjI0IDMuNDlBMi43NCAyLjc0IDAgMCAxIDcuODggNy41Wm0uNTQgMWExLjc0IDEuNzQgMCAwIDAgLjg3IDIuMzUgMS43NCAxLjc0IDAgMCAwIDIuNDYtMS42IDEuNzQgMS43NCAwIDAgMC0yLjAxLTEuNzNjLS41OS4wOS0xLjA4LjQ2LTEuMzIuOThabTcuMjcgNC43OGMtLjItLjM0LS40Ni0uNjMtLjc5LS44NSAyLS4zMiAzLjEtMS42NyAzLjEtMi45M1Y5YS41LjUgMCAwIDAtLjUtLjVoLTMuODJjLS4wOC0uMzUtLjItLjY5LS4zNi0xaDQuMThjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVjMCAxLjU5LTEuMiAzLjIxLTMuMzEgMy43OFptLTEuMi4xYTEuNSAxLjUgMCAwIDAtLjk5LS4zOGgtN0ExLjUgMS41IDAgMCAwIDUgMTQuNXYuNWMwIDEuOTcgMS44NiA0IDUgNCAzLjE0IDAgNS0yLjAzIDUtNHYtLjVjMC0uNDUtLjItLjg1LS41MS0xLjEzWk02IDE0LjVjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYuNWMwIDEuNDQtMS40MyAzLTQgMy0yLjU3IDAtNC0xLjU2LTQtM3YtLjVaTTE0IDFhMi43NSAyLjc1IDAgMSAxIDAgNS41QTIuNzUgMi43NSAwIDAgMSAxNCAxWm0wIDFhMS43NSAxLjc1IDAgMSAwIDAgMy41QTEuNzUgMS43NSAwIDAgMCAxNCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlQ29tbXVuaXR5QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUNvbW11bml0eUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVhMi43NCAyLjc0IDAgMCAwLS4zOSA1LjQ3IDUuNTIgNS41MiAwIDAgMSAzLjE0LTIuNjl2LS4wM0EyLjc0IDIuNzQgMCAwIDAgMTAgNi41Wm04LjY4IDQuNDJhNS40OSA1LjQ5IDAgMCAwLTQuOTQtMS44NyAzLjczIDMuNzMgMCAwIDAtLjQyLTEuNTVoNC4xOGMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWMwIC40OC0uMTEuOTYtLjMyIDEuNDJaTTkuMiAxM2E1LjUgNS41IDAgMCAwIDEuOTggNS45Yy0uMzcuMDYtLjc3LjEtMS4xOS4xLTMuMTQgMC01LTIuMDMtNS00di0uNUExLjUgMS41IDAgMCAxIDYuNSAxM2gyLjdabS00LjkuMjhDMi4yMSAxMi43MSAxIDExLjA4IDEgOS41VjljMC0uODMuNjctMS41IDEuNS0xLjVoNC4xOGEzLjczIDMuNzMgMCAwIDAgLjc3IDQuNUg2LjVhMi41IDIuNSAwIDAgMC0yLjE5IDEuMjhaTTYgMWEyLjc1IDIuNzUgMCAxIDEgMCA1LjVBMi43NSAyLjc1IDAgMCAxIDYgMVptOCAwYTIuNzUgMi43NSAwIDEgMSAwIDUuNUEyLjc1IDIuNzUgMCAwIDEgMTQgMVptLjUgMThhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUNvbW11bml0eUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlQ29tbXVuaXR5QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDFhMi43NSAyLjc1IDAgMSAxIDAgNS41QTIuNzUgMi43NSAwIDAgMSA2IDFabTAgMWExLjc1IDEuNzUgMCAxIDAgMCAzLjVBMS43NSAxLjc1IDAgMCAwIDYgMlptLjY4IDUuNUgyLjVDMS42NyA3LjUgMSA4LjE3IDEgOXYuNWMwIDEuNTkgMS4yIDMuMjEgMy4zMSAzLjc4LjItLjM0LjQ2LS42My43OS0uODUtMi0uMzItMy4xLTEuNjctMy4xLTIuOTNWOWMwLS4yOC4yMi0uNS41LS41aDMuODNjLjA3LS4zNS4xOS0uNjkuMzUtMVptMy4zMi0xYTIuNzQgMi43NCAwIDAgMC0uMzkgNS40N2MuMTktLjM1LjQxLS42OS42Ny0xQTEuNzYgMS43NiAwIDAgMSA4LjQyIDguNWExLjc1IDEuNzUgMCAwIDEgMy4yNSAxLjI4Yy4zNC0uMi43LS4zNyAxLjA4LS41di0uMDNBMi43NSAyLjc1IDAgMCAwIDEwIDYuNVptOC42OCA0LjQyYy0uMjQtLjI3LS41LS41Mi0uNzgtLjc1LjA3LS4yMi4xLS40NS4xLS42N1Y5YS41LjUgMCAwIDAtLjUtLjVoLTMuODJjLS4wOC0uMzUtLjItLjY5LS4zNi0xaDQuMThjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVjMCAuNDgtLjExLjk2LS4zMiAxLjQyWk05LjIgMTNINi41QTEuNSAxLjUgMCAwIDAgNSAxNC41di41YzAgMS45NyAxLjg2IDQgNSA0IC40MiAwIC44Mi0uMDQgMS4yLS4xYTUuNTQgNS41NCAwIDAgMS0uOTUtLjlIMTBjLTIuNTcgMC00LTEuNTYtNC0zdi0uNWMwLS4yOC4yMi0uNS41LS41aDIuNTJjLjAzLS4zNC4xLS42OC4xOS0xWm03LjU0LTkuMjVhMi43NSAyLjc1IDAgMSAwLTUuNSAwIDIuNzUgMi43NSAwIDAgMCA1LjUgMFptLTQuNSAwYTEuNzUgMS43NSAwIDEgMSAzLjUgMCAxLjc1IDEuNzUgMCAwIDEtMy41IDBaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDlhMy4yNSAzLjI1IDAgMSAwIDAtNi41IDMuMjUgMy4yNSAwIDAgMCAwIDYuNVpNMTAgMTBhMiAyIDAgMCAxIDIgMS45NGwtMS43MyAxLjczYy0uNC40MS0uNy45Mi0uODQgMS40OWwtLjEuNDJjLS42OC4yNi0xLjUyLjQyLTIuNTguNDItNS4yNSAwLTUuMjUtNC01LjI1LTQgMC0xLjEuOS0yIDItMkgxMFptNy0zLjVBMi40OSAyLjQ5IDAgMCAxIDE0LjUgOSAyLjUgMi41IDAgMSAxIDE3IDYuNVptLTEuMiAzLjA1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgNS43NWEyLjI1IDIuMjUgMCAxIDEgNC41IDAgMi4yNSAyLjI1IDAgMCAxLTQuNSAwWk02Ljc1IDIuNWEzLjI1IDMuMjUgMCAxIDAgMCA2LjUgMy4yNSAzLjI1IDAgMCAwIDAtNi41Wk0xMCAxMGEyIDIgMCAwIDEgMiAxLjk0bC0xLjQyIDEuNDJhMi45NiAyLjk2IDAgMCAwIC40Mi0xLjI4VjEyYTEgMSAwIDAgMC0xLTFIMy41YTEgMSAwIDAgMC0xIDF2LjE2bC4wNi4zM2MuMDcuMjcuMi42NC40NSAxQzMuNDkgMTQuMiA0LjUgMTUgNi43NSAxNWMxLjU2IDAgMi41My0uMzkgMy4xNC0uODYtLjIxLjMtLjM3LjY1LS40NiAxLjAybC0uMS40MmE3LjIgNy4yIDAgMCAxLTIuNTguNDJjLTIuNTEgMC0zLjg3LS45Mi00LjU3LTEuOTNhMy45NSAzLjk1IDAgMCAxLS42OC0xLjk5VjEyYzAtMS4xLjktMiAyLTJIMTBabTctMy41QTIuNDkgMi40OSAwIDAgMSAxNC41IDkgMi41IDIuNSAwIDEgMSAxNyA2LjVabS00IDBhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBabTIuOCAzLjA1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVFcnJvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVFcnJvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDlhMy4yNSAzLjI1IDAgMSAwIDAtNi41IDMuMjUgMy4yNSAwIDAgMCAwIDYuNVpNMTcgNi41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0tOCA4YzAtMS43Ljc4LTMuMjMgMi00LjI0YTIgMiAwIDAgMC0xLS4yNkgzLjVhMiAyIDAgMCAwLTIgMnMwIDQgNS4yNSA0Yy45NSAwIDEuNzMtLjEzIDIuMzctLjM1QTUuNTIgNS41MiAwIDAgMSA5IDE0LjVabTEwIDBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlRXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgNS43NWEyLjI1IDIuMjUgMCAxIDEgNC41IDAgMi4yNSAyLjI1IDAgMCAxLTQuNSAwWk02Ljc1IDIuNWEzLjI1IDMuMjUgMCAxIDAgMCA2LjUgMy4yNSAzLjI1IDAgMCAwIDAtNi41Wk0xLjUgMTJjMC0xLjEuOS0yIDItMkgxMGEyIDIgMCAwIDEgMSAuMjZjLS4yOC4yMy0uNTQuNDktLjc3Ljc3QTEgMSAwIDAgMCAxMCAxMUgzLjVhMSAxIDAgMCAwLTEgMXYuMTZsLjA2LjMzYy4wNy4yNy4yLjY0LjQ1IDFDMy40OSAxNC4yIDQuNSAxNSA2Ljc1IDE1Yy45NSAwIDEuNjktLjE1IDIuMjUtLjM3LjAxLjM1LjA1LjcuMTIgMS4wMi0uNjQuMjItMS40Mi4zNS0yLjM3LjM1LTIuNTEgMC0zLjg3LS45Mi00LjU3LTEuOTNhMy45NSAzLjk1IDAgMCAxLS42OC0xLjk5VjEyWk0xMyA2LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTE0LjUgNGEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVFeWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlRXllRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDUuNzVhMy4yNSAzLjI1IDAgMSAxLTYuNSAwIDMuMjUgMy4yNSAwIDAgMSA2LjUgMFpNMTQuNSA5YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0tMTEgMWEyIDIgMCAwIDAtMiAyczAgNCA1LjI1IDRjMS4wMSAwIDEuODMtLjE1IDIuNDktLjM5QTIuOTggMi45OCAwIDAgMSA5IDE0LjVjMC0uNTIuMTgtMS4wNS40My0xLjUyYTUuNTMgNS41MyAwIDAgMSAyLjE2LTIuMkEyIDIgMCAwIDAgMTAgMTBIMy41Wm0xMSAxYy0yLjc2IDAtNC41IDIuMzItNC41IDMuNSAwIDEuMiAxLjc0IDMuNSA0LjUgMy41czQuNS0yLjMyIDQuNS0zLjVjMC0xLjItMS43NC0zLjUtNC41LTMuNVptMCA2YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1Wm0xLjUtMi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlRXllUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVFeWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNzUgMy41YTIuMjUgMi4yNSAwIDEgMCAwIDQuNSAyLjI1IDIuMjUgMCAwIDAgMC00LjVaTTMuNSA1Ljc1YTMuMjUgMy4yNSAwIDEgMSA2LjUgMCAzLjI1IDMuMjUgMCAwIDEtNi41IDBabTguMSA1LjA0QTIgMiAwIDAgMCAxMCAxMEgzLjVhMiAyIDAgMCAwLTIgMlYxMi4wOGExLjcyIDEuNzIgMCAwIDAgLjAxLjE4IDMuOTUgMy45NSAwIDAgMCAuNjcgMS44QzIuODggMTUuMDkgNC4yNCAxNiA2Ljc1IDE2YzEgMCAxLjgyLS4xNSAyLjQ5LS4zOWEzLjA5IDMuMDkgMCAwIDEtLjI0LS45OGMtLjU2LjIyLTEuMy4zNy0yLjI1LjM3LTIuMjQgMC0zLjI2LS44LTMuNzQtMS41YTIuOTUgMi45NSAwIDAgMS0uNS0xLjQybC0uMDEtLjAyVjEyYTEgMSAwIDAgMSAxLTFIMTBhMSAxIDAgMCAxIC43Ny4zNmMuMjUtLjIuNTItLjQuODItLjU3Wk0xNC41IDVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTEyIDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFptMi41IDQuNWMtMi43NiAwLTQuNSAyLjMyLTQuNSAzLjUgMCAxLjIgMS43NCAzLjUgNC41IDMuNXM0LjUtMi4zMiA0LjUtMy41YzAtMS4yLTEuNzQtMy41LTQuNS0zLjVabTAgNmEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVptMS41LTIuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUxpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlTGlzdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDEwYTMuMjUgMy4yNSAwIDEgMCAwLTYuNSAzLjI1IDMuMjUgMCAwIDAgMCA2LjVabTMuNzUgMi41YzAtLjQ4LjIzLS45MS41OC0xLjE4QTIgMiAwIDAgMCAxMCAxMUgzLjVhMiAyIDAgMCAwLTIgMnMwIDQgNS4yNSA0YzEuOTUgMCAzLjE4LS41NSAzLjk1LTEuMjUuMDUtLjA5LjExLS4xNy4xOC0uMjVhMS41IDEuNSAwIDAgMSAwLTIgMS41IDEuNSAwIDAgMS0uMzgtMVptNi41LTVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaTTEyIDEyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZUxpc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZUxpc3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSA2Ljc1YTIuMjUgMi4yNSAwIDEgMSA0LjUgMCAyLjI1IDIuMjUgMCAwIDEtNC41IDBaTTYuNzUgMy41YTMuMjUgMy4yNSAwIDEgMCAwIDYuNSAzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTEwIDExYTIgMiAwIDAgMSAxLjA4LjMyYy0uMjcuMi0uNDYuNS0uNTQuODRBMSAxIDAgMCAwIDEwIDEySDMuNWExIDEgMCAwIDAtMSAxdi4xNmwuMDYuMzNjLjA3LjI3LjIuNjQuNDUgMUMzLjQ5IDE1LjIgNC41IDE2IDYuNzUgMTZzMy4yNi0uOCAzLjc0LTEuNWwuMDEtLjAxdi4wMWMwIC4zOC4xNC43My4zOCAxYTEuNSAxLjUgMCAwIDAtLjIuMjdDOS45IDE2LjQ3IDguNjcgMTcgNi43NiAxN2MtMi41MSAwLTMuODctLjkyLTQuNTctMS45M2EzLjk1IDMuOTUgMCAwIDEtLjY4LTEuOTlWMTNjMC0xLjEuOS0yIDItMkgxMFptMy0zLjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTE0LjUgNWEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVpNMTIgMTJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlTG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVMb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDUuNzVhMy4yNSAzLjI1IDAgMSAxLTYuNSAwIDMuMjUgMy4yNSAwIDAgMSA2LjUgMFptMSA4LjdjLS43NC44My0yLjAyIDEuNTUtNC4yNSAxLjU1LTUuMjUgMC01LjI1LTQtNS4yNS00IDAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDIgMmwtLjAyLjI4QTIgMiAwIDAgMCAxMSAxNHYuNDVaTTE0LjUgOWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptLTEgM3YxSDEzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlTG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlTG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi43NSAzLjVhMi4yNSAyLjI1IDAgMSAwIDAgNC41IDIuMjUgMi4yNSAwIDAgMCAwLTQuNVpNMy41IDUuNzVhMy4yNSAzLjI1IDAgMSAxIDYuNSAwIDMuMjUgMy4yNSAwIDAgMS02LjUgMFptNy41IDguNzJDMTAuMjMgMTUuMyA4LjkzIDE2IDYuNzUgMTZjLTIuNTEgMC0zLjg3LS45Mi00LjU3LTEuOTNhMy45NSAzLjk1IDAgMCAxLS42OC0xLjk5VjEyYzAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDIgMlYxMi4wOGExLjQzIDEuNDMgMCAwIDEtLjAxLjE4di4wMkEyIDIgMCAwIDAgMTEgMTR2LjQ3Wm0tOC41LTIuNHYuMWwuMDYuMzJjLjA3LjI3LjIuNjQuNDUgMUMzLjQ5IDE0LjIgNC41IDE1IDYuNzUgMTVzMy4yNi0uOCAzLjc0LTEuNWEyLjk1IDIuOTUgMCAwIDAgLjUtMS40MmwuMDEtLjAyVjEyYTEgMSAwIDAgMC0xLTFIMy41YTEgMSAwIDAgMC0xIDF2LjA2Wk0xNC41IDVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTEyIDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFptMS41IDUuNXYxSDEzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlTW9uZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlTW9uZXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43NSA5YTMuMjUgMy4yNSAwIDEgMCAwLTYuNSAzLjI1IDMuMjUgMCAwIDAgMCA2LjVaTTkgMTIuNWMwLTEuMS43MS0yLjA0IDEuNy0yLjM3QTIgMiAwIDAgMCAxMCAxMEgzLjVhMiAyIDAgMCAwLTIgMnMwIDQgNS4yNSA0Yy45IDAgMS42NC0uMTIgMi4yNi0uMzFMOSAxNS41di0zWm04LTZhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabS03IDZjMC0uODMuNjctMS41IDEuNS0xLjVoNmMuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTNabTEgMHYxYy44MyAwIDEuNS0uNjcgMS41LTEuNWgtMWEuNS41IDAgMCAxLS41LjVabTcgMXYtMWEuNS41IDAgMCAxLS41LS41aC0xYzAgLjgzLjY3IDEuNSAxLjUgMS41Wk0xNi41IDE2aDFjMC0uMjguMjItLjUuNS0uNXYtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVaTTExIDE0LjV2MWMuMjggMCAuNS4yMi41LjVoMWMwLS44My0uNjctMS41LTEuNS0xLjVabTMuNSAxYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlTW9uZXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZU1vbmV5UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgNS43NWEyLjI1IDIuMjUgMCAxIDEgNC41IDAgMi4yNSAyLjI1IDAgMCAxLTQuNSAwWk02Ljc1IDIuNWEzLjI1IDMuMjUgMCAxIDAgMCA2LjUgMy4yNSAzLjI1IDAgMCAwIDAtNi41Wk0xMCAxMGEyIDIgMCAwIDEgLjcuMTNjLS40OC4xNi0uOS40Ny0xLjIuODdoLTZhMSAxIDAgMCAwLTEgMXYuMTZsLjA2LjMzYy4wNy4yNy4yLjY0LjQ1IDFDMy40OSAxNC4yIDQuNSAxNSA2Ljc1IDE1Yy45NSAwIDEuNjktLjE0IDIuMjUtLjM3djEuMDZjLS42MS4yLTEuMzYuMzEtMi4yNS4zMS0yLjUxIDAtMy44Ny0uOTItNC41Ny0xLjkzYTMuOTUgMy45NSAwIDAgMS0uNjgtMS45OVYxMmMwLTEuMS45LTIgMi0ySDEwWm0zLTMuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTQuNSA0YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wk0xMCAxMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDZjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di0zWm0xIDB2MWMuODMgMCAxLjUtLjY3IDEuNS0xLjVoLTFhLjUuNSAwIDAgMS0uNS41Wm03IDF2LTFhLjUuNSAwIDAgMS0uNS0uNWgtMWMwIC44My42NyAxLjUgMS41IDEuNVpNMTYuNSAxNmgxYzAtLjI4LjIyLS41LjUtLjV2LTFjLS44MyAwLTEuNS42Ny0xLjUgMS41Wk0xMSAxNC41djFjLjI4IDAgLjUuMjIuNS41aDFjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0zLjUgMWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVByb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljc1IDlhMy4yNSAzLjI1IDAgMSAwIDAtNi41IDMuMjUgMy4yNSAwIDAgMCAwIDYuNVpNMTcgNi41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0tOCA4YzAtMS43Ljc4LTMuMjMgMi00LjI0YTIgMiAwIDAgMC0xLS4yNkgzLjVhMiAyIDAgMCAwLTIgMnMwIDQgNS4yNSA0Yy45NSAwIDEuNzMtLjEzIDIuMzctLjM1QTUuNTIgNS41MiAwIDAgMSA5IDE0LjVabTEgMGE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVQcm9oaWJpdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgNS43NWEyLjI1IDIuMjUgMCAxIDEgNC41IDAgMi4yNSAyLjI1IDAgMCAxLTQuNSAwWk02Ljc1IDIuNWEzLjI1IDMuMjUgMCAxIDAgMCA2LjUgMy4yNSAzLjI1IDAgMCAwIDAtNi41Wk0xLjUgMTJjMC0xLjEuOS0yIDItMkgxMGEyIDIgMCAwIDEgMSAuMjZjLS4yOC4yMy0uNTQuNDktLjc3Ljc3QTEgMSAwIDAgMCAxMCAxMUgzLjVhMSAxIDAgMCAwLTEgMXYuMTZsLjA2LjMzYy4wNy4yNy4yLjY0LjQ1IDFDMy40OSAxNC4yIDQuNSAxNSA2Ljc1IDE1Yy45NSAwIDEuNjktLjE1IDIuMjUtLjM3LjAxLjM1LjA1LjcuMTIgMS4wMi0uNjQuMjItMS40Mi4zNS0yLjM3LjM1LTIuNTEgMC0zLjg3LS45Mi00LjU3LTEuOTNhMy45NSAzLjk1IDAgMCAxLS42OC0xLjk5VjEyWk0xMyA2LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTE0LjUgNGEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVRdWV1ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVRdWV1ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04Ljc1IDUuMjVhMi4yNSAyLjI1IDAgMSAxLTQuNSAwIDIuMjUgMi4yNSAwIDAgMSA0LjUgMFpNNCA4YTEgMSAwIDAgMC0xIDF2NC41YTMuNSAzLjUgMCAxIDAgNyAwVjlhMSAxIDAgMCAwLTEtMUg0Wm01Ljc1LTIuNzVjMCAuNjUtLjIgMS4yNi0uNTIgMS43NmEyIDIgMCAwIDEgMS4wOC40OGwuMTkuMDFhMi4yNSAyLjI1IDAgMSAwLTEuMzEtNC4wOGMuMzUuNTIuNTYgMS4xNS41NiAxLjgzWm0tLjI1IDExLjZBNC40OSA0LjQ5IDAgMCAwIDExIDEzLjVWOWEyIDIgMCAwIDAtLjI3LTFIMTNhMSAxIDAgMCAxIDEgMXY0LjVhMy41IDMuNSAwIDAgMS00LjUgMy4zNVptNC4yNS0xMS42YzAgLjY1LS4yIDEuMjYtLjUyIDEuNzZhMiAyIDAgMCAxIDEuMDguNDhsLjE5LjAxYTIuMjUgMi4yNSAwIDEgMC0xLjMxLTQuMDhjLjM1LjUyLjU2IDEuMTUuNTYgMS44M1ptLS4yNSAxMS42QTQuNDkgNC40OSAwIDAgMCAxNSAxMy41VjlhMiAyIDAgMCAwLS4yNy0xSDE3YTEgMSAwIDAgMSAxIDF2NC41YTMuNSAzLjUgMCAwIDEtNC41IDMuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVRdWV1ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlUXVldWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA3LjVhMi4yNSAyLjI1IDAgMSAwIDAtNC41IDIuMjUgMi4yNSAwIDAgMCAwIDQuNVptMC0xYTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjVaTTMgOWExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXY0LjVhMy41IDMuNSAwIDEgMS03IDBWOVptMSAwdjQuNWEyLjUgMi41IDAgMCAwIDUgMFY5SDRabTUuNjMtMi44NmMtLjEuMzEtLjIzLjYtLjQuODdhMiAyIDAgMCAxIDEuMDguNDhsLjE5LjAxYTIuMjUgMi4yNSAwIDEgMC0xLjMxLTQuMDhjLjE5LjI4LjM0LjYuNDQuOTRhMS4yNSAxLjI1IDAgMCAxIDIuMTIuODkgMS4yNSAxLjI1IDAgMCAxLTIuMTIuOVpNOS41IDE2Ljg1QTMuNSAzLjUgMCAwIDAgMTQgMTMuNVY5YTEgMSAwIDAgMC0xLTFoLTIuMjdBMiAyIDAgMCAxIDExIDloMnY0LjVhMi41IDIuNSAwIDAgMS0yLjc1IDIuNDljLS4yMS4zMi0uNDcuNi0uNzUuODZabTQuMTMtMTAuN2MtLjEuMy0uMjMuNi0uNC44NmEyIDIgMCAwIDEgMS4wOC40OGwuMTkuMDFhMi4yNSAyLjI1IDAgMSAwLTEuMzEtNC4wOGMuMTkuMjguMzQuNi40NC45NGExLjI1IDEuMjUgMCAwIDEgMi4xMi44OSAxLjI1IDEuMjUgMCAwIDEtMi4xMi45Wm0tLjEzIDEwLjdBMy41IDMuNSAwIDAgMCAxOCAxMy41VjlhMSAxIDAgMCAwLTEtMWgtMi4yN0EyIDIgMCAwIDEgMTUgOWgydjQuNWEyLjUgMi41IDAgMCAxLTIuNzUgMi40OWMtLjIxLjMyLS40Ny42LS43NS44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabTQuODcgMTQuOGE4LjUzIDguNTMgMCAwIDEtMy45NyAxLjE3IDEuNSAxLjUgMCAwIDAtLjM0LS41M2wtMi0yQTQuNDggNC40OCAwIDAgMCA4LjI0IDExSDE1YTIgMiAwIDAgMSAyIDJjMCAxLjctLjgzIDIuOTctMi4xMyAzLjhaTTQuNSAxN2MuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE1LjZBMy41IDMuNSAwIDEgMCA0LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVNlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNyA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptNy44NyAxMC44YTguNTMgOC41MyAwIDAgMS0zLjk3IDEuMTcgMS41IDEuNSAwIDAgMC0uMzQtLjUzbC0uNDQtLjQ0YTguMDcgOC4wNyAwIDAgMCA0LjItMS4wNUEzLjM2IDMuMzYgMCAwIDAgMTYgMTNhMSAxIDAgMCAwLTEtMUg4Ljc0Yy0uMTItLjM2LS4zLS43LS41LTFIMTVhMiAyIDAgMCAxIDIgMmMwIDEuNy0uODMgMi45Ny0yLjEzIDMuOFpNNC41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43NSA5YTMuMjUgMy4yNSAwIDEgMCAwLTYuNSAzLjI1IDMuMjUgMCAwIDAgMCA2LjVaTTE3IDYuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptLTggOGMwLTEuNy43OC0zLjIzIDItNC4yNGEyIDIgMCAwIDAtMS0uMjZIMy41YTIgMiAwIDAgMC0yIDJzMCA0IDUuMjUgNGMuOTUgMCAxLjczLS4xMyAyLjM3LS4zNUE1LjUyIDUuNTIgMCAwIDEgOSAxNC41Wm0zLjA2LTMuMDZhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNzMgNC43MyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTUuNTVabTIuNDQgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSA1Ljc1YTIuMjUgMi4yNSAwIDEgMSA0LjUgMCAyLjI1IDIuMjUgMCAwIDEtNC41IDBaTTYuNzUgMi41YTMuMjUgMy4yNSAwIDEgMCAwIDYuNSAzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTEuNSAxMmMwLTEuMS45LTIgMi0ySDEwYTIgMiAwIDAgMSAxIC4yNmMtLjI4LjIzLS41NC40OS0uNzcuNzdBMSAxIDAgMCAwIDEwIDExSDMuNWExIDEgMCAwIDAtMSAxdi4xNmwuMDYuMzNjLjA3LjI3LjIuNjQuNDUgMUMzLjQ5IDE0LjIgNC41IDE1IDYuNzUgMTVjLjk1IDAgMS42OS0uMTUgMi4yNS0uMzcuMDEuMzUuMDUuNy4xMiAxLjAyLS42NC4yMi0xLjQyLjM1LTIuMzcuMzUtMi41MSAwLTMuODctLjkyLTQuNTctMS45M2EzLjk1IDMuOTUgMCAwIDEtLjY4LTEuOTlWMTJaTTEzIDYuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTQuNSA0YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wm0tMi40NCA3LjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0LjczIDQuNzMgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTYtLjU1YTIgMiAwIDAgMSAxLjQ0LTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wm0yLjQ0IDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlU3RhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVTdGFyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNzUgMi41YTMuMjUgMy4yNSAwIDEgMCAwIDYuNSAzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTEuNSAxMmMwLTEuMS45LTIgMi0ySDEwYTIgMiAwIDAgMSAxIC4yNiA1LjQ5IDUuNDkgMCAwIDAtMS44OCA1LjRjLS42NC4yMS0xLjQyLjM0LTIuMzcuMzQtMi41MSAwLTMuODctLjkyLTQuNTctMS45M2EzLjk1IDMuOTUgMCAwIDEtLjY4LTEuOTlWMTJaTTE3IDYuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA4YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi0xLjFoLTEuNTVsLS40Ny0xLjU0YS41LjUgMCAwIDAtLjk2IDBsLS40NyAxLjUzSDEyYy0uNDggMC0uNjkuNjUtLjMuOTVsMS4yNi45NC0uNDggMS41M2MtLjE1LjQ5LjM4Ljg5Ljc3LjU5bDEuMjUtLjk1IDEuMjUuOTVjLjQuMy45Mi0uMS43Ny0uNTlsLS40OC0xLjUzIDEuMjUtLjk0Yy40LS4zLjItLjk1LS4zLS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVN0YXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZVN0YXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSA1Ljc1YTIuMjUgMi4yNSAwIDEgMSA0LjUgMCAyLjI1IDIuMjUgMCAwIDEtNC41IDBaTTYuNzUgMi41YTMuMjUgMy4yNSAwIDEgMCAwIDYuNSAzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTEuNSAxMmMwLTEuMS45LTIgMi0ySDEwYTIgMiAwIDAgMSAxIC4yNmMtLjI4LjIzLS41NC40OS0uNzcuNzdBMSAxIDAgMCAwIDEwIDExSDMuNWExIDEgMCAwIDAtMSAxdi4xNmwuMDYuMzNjLjA3LjI3LjIuNjQuNDUgMUMzLjQ5IDE0LjIgNC41IDE1IDYuNzUgMTVjLjk1IDAgMS42OS0uMTUgMi4yNS0uMzcuMDEuMzUuMDUuNy4xMiAxLjAyLS42NC4yMi0xLjQyLjM1LTIuMzcuMzUtMi41MSAwLTMuODctLjkyLTQuNTctMS45M2EzLjk1IDMuOTUgMCAwIDEtLjY4LTEuOTlWMTJaTTEzIDYuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTQuNSA0YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC4wMi0yLjY0YS41LjUgMCAwIDAtLjk2IDBsLS40NyAxLjUzSDEyYy0uNDggMC0uNjkuNjUtLjMuOTVsMS4yNi45NC0uNDggMS41M2MtLjE1LjQ5LjM4Ljg5Ljc3LjU5bDEuMjUtLjk1IDEuMjUuOTVjLjQuMy45Mi0uMS43Ny0uNTlsLS40OC0xLjUzIDEuMjUtLjk0Yy40LS4zLjItLjk1LS4zLS45NWgtMS41NGwtLjQ3LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVTdWJ0cmFjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVTdWJ0cmFjdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1Ljc1YTMuMjUgMy4yNSAwIDEgMS02LjUgMCAzLjI1IDMuMjUgMCAwIDEgNi41IDBaTTE0LjUgOWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMTEgMTAuMjZhNS40OSA1LjQ5IDAgMCAwLTEuODggNS40Yy0uNjQuMi0xLjQyLjM0LTIuMzcuMzQtNS4yNSAwLTUuMjUtNC01LjI1LTQgMC0xLjEuOS0yIDItMkgxMGEyIDIgMCAwIDEgMSAuMjZaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTEyIDE0LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVTdWJ0cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlU3VidHJhY3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNzUgMy41YTIuMjUgMi4yNSAwIDEgMCAwIDQuNSAyLjI1IDIuMjUgMCAwIDAgMC00LjVaTTMuNSA1Ljc1YTMuMjUgMy4yNSAwIDEgMSA2LjUgMCAzLjI1IDMuMjUgMCAwIDEtNi41IDBabTAgNC4yNWEyIDIgMCAwIDAtMS45OSAyLjI2IDMuOTUgMy45NSAwIDAgMCAuNjcgMS44QzIuODggMTUuMDkgNC4yNCAxNiA2Ljc1IDE2Yy45NSAwIDEuNzMtLjEzIDIuMzctLjM1QTUuNTEgNS41MSAwIDAgMSA5IDE0LjYzYy0uNTYuMjItMS4zLjM3LTIuMjUuMzctMi4yNCAwLTMuMjYtLjgtMy43NC0xLjVBMi45NSAyLjk1IDAgMCAxIDIuNSAxMmExIDEgMCAwIDEgMS0xSDEwYTEgMSAwIDAgMSAuMjMuMDNjLjIzLS4yOC40OS0uNTQuNzYtLjc3QTIgMiAwIDAgMCAxMCAxMEgzLjVabTExLTVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTEyIDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVpNMTIgMTQuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVN3YXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlU3dhcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2Ljc1YTMuMjUgMy4yNSAwIDEgMS02LjUgMCAzLjI1IDMuMjUgMCAwIDEgNi41IDBabTEuMzUgNC43OC0xLjkxIDEuOWExLjUgMS41IDAgMCAwIDAgMi4xM2wuNjUuNjVhNi4zIDYuMyAwIDAgMS0zLjM0Ljc5QzEuNSAxNyAxLjUgMTMgMS41IDEzYzAtMS4xLjktMiAyLTJIMTBhMiAyIDAgMCAxIDEuMzUuNTNaTTE0LjUgMTBhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVabS0xLjY1IDIuODVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMS43MSAxNWg1LjU4bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTcuMjkgMTRoLTUuNThsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlU3dhcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlU3dhcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi43NSA0LjVhMi4yNSAyLjI1IDAgMSAwIDAgNC41IDIuMjUgMi4yNSAwIDAgMCAwLTQuNVpNMy41IDYuNzVhMy4yNSAzLjI1IDAgMSAxIDYuNSAwIDMuMjUgMy4yNSAwIDAgMS02LjUgMFptNy44NSA0Ljc4QTIgMiAwIDAgMCAxMCAxMUgzLjVhMiAyIDAgMCAwLTIgMlYxMy4wOGExLjcyIDEuNzIgMCAwIDAgLjAxLjE4IDMuOTUgMy45NSAwIDAgMCAuNjcgMS44QzIuODggMTYuMDkgNC4yNCAxNyA2Ljc1IDE3YzEuNDggMCAyLjU2LS4zMiAzLjM0LS43OWwtLjY1LS42NWExLjUzIDEuNTMgMCAwIDEtLjA4LS4wOWMtLjYuMzEtMS40NC41My0yLjYxLjUzLTIuMjQgMC0zLjI2LS44LTMuNzQtMS41YTIuOTUgMi45NSAwIDAgMS0uNS0xLjQybC0uMDEtLjAyVjEzYTEgMSAwIDAgMSAxLTFIMTBhMSAxIDAgMCAxIC42NC4yM2wuNzEtLjdaTTE0LjUgNmExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pNMTIgNy41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWm0uODUgNS4zNWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMCAwIC43LS43TDExLjcxIDE1aDUuNThsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN0wxNy4yOSAxNGgtNS41OGwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVTeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZVN5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi43NSA5YTMuMjUgMy4yNSAwIDEgMCAwLTYuNSAzLjI1IDMuMjUgMCAwIDAgMCA2LjVaTTE3IDYuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptLTggOGMwLTEuNy43OC0zLjIzIDItNC4yNGEyIDIgMCAwIDAtMS0uMjZIMy41YTIgMiAwIDAgMC0yIDJzMCA0IDUuMjUgNGMuOTUgMCAxLjczLS4xMyAyLjM3LS4zNUE1LjUyIDUuNTIgMCAwIDEgOSAxNC41Wm0xIDBhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVN5bmNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZVN5bmNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSA1Ljc1YTIuMjUgMi4yNSAwIDEgMSA0LjUgMCAyLjI1IDIuMjUgMCAwIDEtNC41IDBaTTYuNzUgMi41YTMuMjUgMy4yNSAwIDEgMCAwIDYuNSAzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTEuNSAxMmMwLTEuMS45LTIgMi0ySDEwYTIgMiAwIDAgMSAxIC4yNmMtLjI4LjIzLS41NC40OS0uNzcuNzdBMSAxIDAgMCAwIDEwIDExSDMuNWExIDEgMCAwIDAtMSAxdi4xNmwuMDYuMzNjLjA3LjI3LjIuNjQuNDUgMUMzLjQ5IDE0LjIgNC41IDE1IDYuNzUgMTVjLjk1IDAgMS42OS0uMTUgMi4yNS0uMzcuMDEuMzUuMDUuNy4xMiAxLjAyLS42NC4yMi0xLjQyLjM1LTIuMzcuMzUtMi41MSAwLTMuODctLjkyLTQuNTctMS45M2EzLjk1IDMuOTUgMCAwIDEtLjY4LTEuOTlWMTJaTTEzIDYuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTQuNSA0YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVUZWFtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZVRlYW1GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNSA0LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTUgLjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMTMgMmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTYgOS4yNUM2IDguNTYgNi41NiA4IDcuMjUgOGg1LjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVWMTRhNCA0IDAgMCAxLTggMFY5LjI1Wm0tMSAwYzAtLjQ2LjE0LS45LjM4LTEuMjVIMy4yNUMyLjU2IDggMiA4LjU2IDIgOS4yNVYxM2EzIDMgMCAwIDAgMy40IDIuOTdDNS4xNCAxNS4zNyA1IDE0LjcgNSAxNFY5LjI1Wk0xNSAxNGMwIC43LS4xNCAxLjM3LS40IDEuOTdBMyAzIDAgMCAwIDE4IDEzVjkuMjVDMTggOC41NiAxNy40NCA4IDE2Ljc1IDhoLTIuMTNjLjI0LjM2LjM4Ljc5LjM4IDEuMjVWMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVUZWFtUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVUZWFtUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWk03LjUgNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWm04LS41YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTIgMWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabS0xMCAwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptMS0yYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptLjYgMTJINWEyIDIgMCAwIDEtMi0yVjkuMjVjMC0uMTQuMTEtLjI1LjI1LS4yNWgxLjc2Yy4wNC0uMzcuMTctLjcuMzctMUgzLjI1QzIuNTYgOCAyIDguNTYgMiA5LjI1VjEzYTMgMyAwIDAgMCAzLjQgMi45NyA0Ljk2IDQuOTYgMCAwIDEtLjMtLjk3Wm05LjUuOTdBMyAzIDAgMCAwIDE4IDEzVjkuMjVDMTggOC41NiAxNy40NCA4IDE2Ljc1IDhoLTIuMTNjLjIuMy4zMy42My4zNyAxaDEuNzZjLjE0IDAgLjI1LjExLjI1LjI1VjEzYTIgMiAwIDAgMS0yLjEgMmMtLjA3LjM0LS4xNy42Ni0uMy45N1pNNy4yNSA4QzYuNTYgOCA2IDguNTYgNiA5LjI1VjE0YTQgNCAwIDAgMCA4IDBWOS4yNUMxNCA4LjU2IDEzLjQ0IDggMTIuNzUgOGgtNS41Wk03IDkuMjVjMC0uMTQuMTEtLjI1LjI1LS4yNWg1LjVjLjE0IDAgLjI1LjExLjI1LjI1VjE0YTMgMyAwIDEgMS02IDBWOS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVRlYW1BZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlVGVhbUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi41IDQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptNSAuNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0xMyAyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpNNiA5LjI1QzYgOC41NiA2LjU2IDggNy4yNSA4aDUuNWMuNjEgMCAxLjEyLjQ0IDEuMjMgMS4wMkE1LjUgNS41IDAgMCAwIDEwLjI1IDE4TDEwIDE4YTQgNCAwIDAgMS00LTRWOS4yNVptOC45OS0uMjNjMS4xNC4xIDIuMTguNTUgMy4wMSAxLjI0VjkuMjVDMTggOC41NiAxNy40NCA4IDE2Ljc1IDhoLTIuMTNjLjIuMy4zMy42NS4zNyAxLjAyWk01IDkuMjVjMC0uNDYuMTQtLjkuMzgtMS4yNUgzLjI1QzIuNTYgOCAyIDguNTYgMiA5LjI1VjEzYTMgMyAwIDAgMCAzLjQgMi45N0M1LjE0IDE1LjM3IDUgMTQuNyA1IDE0VjkuMjVabTE0IDUuMjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVUZWFtQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVUZWFtQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgNC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xMCAyYTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wm00LjUgM2ExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabS0xMSAxYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTIgMWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaTTUgMTVoLjFjLjA3LjM0LjE3LjY2LjMuOTdBMyAzIDAgMCAxIDIgMTNWOS4yNUMyIDguNTYgMi41NiA4IDMuMjUgOGgyLjEzYy0uMi4zLS4zMy42My0uMzcgMUgzLjI1YS4yNS4yNSAwIDAgMC0uMjUuMjVWMTNjMCAxLjEuOSAyIDIgMlptOC45Ny02Yy0uMTEtLjU3LS42Mi0xLTEuMjItMWgtNS41QzYuNTYgOCA2IDguNTYgNiA5LjI1VjE0YTQgNCAwIDAgMCA0LjI1IDQgNS41MSA1LjUxIDAgMCAxLS42Ni0xLjAzQTMgMyAwIDAgMSA3IDE0VjkuMjVjMC0uMTQuMTEtLjI1LjI1LS4yNWg2LjcyWk0xNSA5aDEuNzZjLjE0IDAgLjI1LjExLjI1LjI1di4zNWMuMzYuMTguNy40IDEgLjY2VjkuMjVDMTggOC41NiAxNy40NCA4IDE2Ljc1IDhoLTIuMTNjLjIuMy4zMy42My4zNyAxWm0tLjQ5IDFhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlabTAgMmMuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVRlYW1EZWxldGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlVGVhbURlbGV0ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi41IDQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptNSAuNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0xMyAyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpNNiA5LjI1QzYgOC41NiA2LjU2IDggNy4yNSA4aDUuNWMuNjEgMCAxLjEyLjQ0IDEuMjMgMS4wMkE1LjUgNS41IDAgMCAwIDEwLjI1IDE4TDEwIDE4YTQgNCAwIDAgMS00LTRWOS4yNVptOC45OS0uMjNjMS4xNC4xIDIuMTguNTUgMy4wMSAxLjI0VjkuMjVDMTggOC41NiAxNy40NCA4IDE2Ljc1IDhoLTIuMTNjLjIuMy4zMy42NS4zNyAxLjAyWk01IDkuMjVjMC0uNDYuMTQtLjkuMzgtMS4yNUgzLjI1QzIuNTYgOCAyIDguNTYgMiA5LjI1VjEzYTMgMyAwIDAgMCAzLjQgMi45N0M1LjE0IDE1LjM3IDUgMTQuNyA1IDE0VjkuMjVabTE0IDUuMjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjggMCAxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZW9wbGVUZWFtRGVsZXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVUZWFtRGVsZXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgNC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xMCAyYTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wm00LjUgM2ExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabS0xMSAxYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTIgMWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaTTUgMTVoLjFjLjA3LjM0LjE3LjY2LjMuOTdBMyAzIDAgMCAxIDIgMTNWOS4yNUMyIDguNTYgMi41NiA4IDMuMjUgOGgyLjEzYy0uMi4zLS4zMy42My0uMzcgMUgzLjI1YS4yNS4yNSAwIDAgMC0uMjUuMjVWMTNjMCAxLjEuOSAyIDIgMlptOC45Ny02Yy0uMTEtLjU3LS42Mi0xLTEuMjItMWgtNS41QzYuNTYgOCA2IDguNTYgNiA5LjI1VjE0YTQgNCAwIDAgMCA0LjI1IDQgNS41MSA1LjUxIDAgMCAxLS42Ni0xLjAzQTMgMyAwIDAgMSA3IDE0VjkuMjVjMC0uMTQuMTEtLjI1LjI1LS4yNWg2LjcyWk0xOCAxMC4yNlY5LjI1QzE4IDguNTYgMTcuNDQgOCAxNi43NSA4aC0yLjEzYy4yLjMuMzMuNjMuMzcgMWgxLjc2Yy4xNCAwIC4yNS4xMS4yNS4yNXYuMzVjLjM2LjE4LjcuNCAxIC42NlpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS01LjY1LTEuMTQgMS4xNSAxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0xLjE1LTEuMTQtMS4xNSAxLjE0YS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1LTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNCAxLjE1LTEuMTRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlVGVhbVRvb2xib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVvcGxlVGVhbVRvb2xib3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNSA0LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTUgLjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMTMgMmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTYgOS4yNUM2IDguNTYgNi41NiA4IDcuMjUgOGg1LjVjLjYgMCAxLjEuNDMgMS4yMiAxaC0uNDdhMi41IDIuNSAwIDAgMC0yLjQ2IDIuMDRBMi41IDIuNSAwIDAgMCA5IDEzLjV2NGMwIC4xMy4wMS4yNi4wMy4zOEE0IDQgMCAwIDEgNiAxNFY5LjI1Wm0xMS45NiAxLjhIMTh2LTEuOEMxOCA4LjU2IDE3LjQ0IDggMTYuNzUgOGgtMi4xM2MuMi4zLjMzLjYzLjM3IDFoLjUxYTIuNSAyLjUgMCAwIDEgMi40NiAyLjA0Wk01IDkuMjRjMC0uNDYuMTQtLjkuMzgtMS4yNUgzLjI1QzIuNTYgOCAyIDguNTYgMiA5LjI1VjEzYTMgMyAwIDAgMCAzLjQgMi45N0M1LjE0IDE1LjM3IDUgMTQuNyA1IDE0VjkuMjVaTTEyIDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlVGVhbVRvb2xib3hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZVRlYW1Ub29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgNC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xMCAyYTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wm00LjUgM2ExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabS0xMSAxYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTIgMWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaTTUgMTVoLjFjLjA3LjM0LjE3LjY2LjMuOTdBMyAzIDAgMCAxIDIgMTNWOS4yNUMyIDguNTYgMi41NiA4IDMuMjUgOGgyLjEzYy0uMi4zLS4zMy42My0uMzcgMUgzLjI1YS4yNS4yNSAwIDAgMC0uMjUuMjVWMTNjMCAxLjEuOSAyIDIgMlptMTItNS41Yy41LjM3Ljg0LjkxLjk2IDEuNTRsLjA0LjAxdi0xLjhDMTggOC41NiAxNy40NCA4IDE2Ljc1IDhoLTIuMTNjLjIuMy4zMy42My4zNyAxaDEuNzZjLjE0IDAgLjI1LjExLjI1LjI1di4yNVptLTEuNS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE1aDJ2LS41YS41LjUgMCAwIDEgMSAwdi41aDN2LS41YS41LjUgMCAwIDEgMSAwdi41aDJ2LTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNNy4yNSA5YS4yNS4yNSAwIDAgMC0uMjUuMjVWMTRhMyAzIDAgMCAwIDIgMi44M3YuNjdjMCAuMTMuMDEuMjYuMDMuMzhBNCA0IDAgMCAxIDYgMTRWOS4yNUM2IDguNTYgNi41NiA4IDcuMjUgOGg1LjVjLjYgMCAxLjEuNDMgMS4yMiAxSDcuMjVaTTEzIDEydi0uNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41aC0zWm00IDR2LjVhLjUuNSAwIDAgMS0xIDBWMTZoLTN2LjVhLjUuNSAwIDAgMS0xIDBWMTZoLTJ2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41VjE2aC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUGVvcGxlVG9vbGJveEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZW9wbGVUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDUuNzVhMy4yNSAzLjI1IDAgMSAxLTYuNSAwIDMuMjUgMy4yNSAwIDAgMSA2LjUgMFpNMTQuNSA5YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0tMy4yNiAxLjQzYy0uMS4yLS4xNi40LS4yLjYxQTIuNSAyLjUgMCAwIDAgOSAxMy41djIuMmMtLjYyLjE4LTEuMzYuMy0yLjI1LjMtNS4yNSAwLTUuMjUtNC01LjI1LTQgMC0xLjEuOS0yIDItMkgxMGEyIDIgMCAwIDEgMS4yNC40M1pNMTIgMTJ2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDQuNWgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlb3BsZVRvb2xib3hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Blb3BsZVRvb2xib3hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNzUgMy41YTIuMjUgMi4yNSAwIDEgMCAwIDQuNSAyLjI1IDIuMjUgMCAwIDAgMC00LjVaTTMuNSA1Ljc1YTMuMjUgMy4yNSAwIDEgMSA2LjUgMCAzLjI1IDMuMjUgMCAwIDEtNi41IDBaTTE0LjUgOWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVptLTMuMjYgMS40M0EyIDIgMCAwIDAgMTAgMTBIMy41YTIgMiAwIDAgMC0yIDJWMTIuMDhhMS43MiAxLjcyIDAgMCAwIC4wMS4xOCAzLjk1IDMuOTUgMCAwIDAgLjY3IDEuOEMyLjg4IDE1LjA5IDQuMjQgMTYgNi43NSAxNmMuODkgMCAxLjYzLS4xMSAyLjI1LS4zdi0xLjA3Yy0uNTYuMjItMS4zLjM3LTIuMjUuMzctMi4yNCAwLTMuMjYtLjgtMy43NC0xLjVhMi45NSAyLjk1IDAgMCAxLS41LTEuNDJsLS4wMS0uMDJWMTJhMSAxIDAgMCAxIDEtMUgxMGExIDEgMCAwIDEgLjU3LjE4Yy4xNS0uMDYuMy0uMS40Ny0uMTQuMDQtLjIxLjEtLjQyLjItLjZaTTE0LjUgNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pNMTIgMTJ2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDQuNWgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCAxMCAxOGMxLjg1IDAgMy41OC0uMzkgNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAwIDE3IDEzYTIgMiAwIDAgMC0yLTJINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNyA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDEwIDE4YzEuODUgMCAzLjU4LS4zOSA0Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDAgMTcgMTNhMiAyIDAgMCAwLTItMkg1Wm0tMSAyYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMWMwIDEuMy0uNjIgMi4yOC0xLjY3IDIuOTVBOC4xNiA4LjE2IDAgMCAxIDEwIDE3YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDQgMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb241RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbjVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptLTMgN2EyIDIgMCAwIDEgMi0yaDcuNTlsLS4wNy4yNS0uNSAzQTEuNSAxLjUgMCAwIDAgMTMuNDggMTZhMS41IDEuNSAwIDAgMC0xLjQ0IDEuODNjLS42NS4xMS0xLjM0LjE3LTIuMDQuMTdhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAzIDEzWm0xMS0yYS41LjUgMCAwIDAtLjUuNDJsLS41IDNhLjUuNSAwIDAgMCAuNTcuNThsLjA4LS4wMi4yMS0uMDJhMTMwLjc0IDEzMC43NCAwIDAgMSAxLjc0LS4ybC4wMi0uMDFhMS42MyAxLjYzIDAgMCAxIDAgMy4yNWMtLjMgMC0uNjYtLjA4LTEtLjIzYTEuNiAxLjYgMCAwIDEtLjctLjU0LjUuNSAwIDAgMC0uODQuNTRjLjI2LjQxLjcuNzEgMS4xMy45MS40NS4yLjk2LjMyIDEuNDEuMzJhMi42MyAyLjYzIDAgMSAwLS40OC01LjIgNTkuNzYgNTkuNzYgMCAwIDAtMS4wNC4xMmwuMzItMS45MmgzLjA4YS41LjUgMCAwIDAgMC0xSDE0WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uNVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uNVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptNC0zYTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlpNMyAxM2EyIDIgMCAwIDEgMi0yaDcuNTlsLS4wNy4yNS0uMTIuNzVINWExIDEgMCAwIDAtMSAxYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCAxMCAxN2MuNzggMCAxLjUxLS4wNyAyLjE4LS4yMWExLjUgMS41IDAgMCAwLS4xNCAxLjA0Yy0uNjUuMTEtMS4zNC4xNy0yLjA0LjE3YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMyAxM1ptMTEtMmEuNS41IDAgMCAwLS41LjQybC0uNSAzYS41LjUgMCAwIDAgLjU3LjU4bC4wOC0uMDIuMjEtLjAyYTEzMC43NCAxMzAuNzQgMCAwIDEgMS43NC0uMmwuMDItLjAxYTEuNjMgMS42MyAwIDAgMSAwIDMuMjVjLS4zIDAtLjY2LS4wOC0xLS4yM2ExLjYgMS42IDAgMCAxLS43LS41NC41LjUgMCAwIDAtLjg0LjU0Yy4yNi40MS43LjcxIDEuMTMuOTEuNDUuMi45Ni4zMiAxLjQxLjMyYTIuNjMgMi42MyAwIDEgMC0uNDgtNS4yIDU5Ljc2IDU5Ljc2IDAgMCAwLTEuMDQuMTJsLjMyLTEuOTJoMy4wOGEuNS41IDAgMCAwIDAtMUgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbjZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uNkZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm0tMyA3YTIgMiAwIDAgMSAyLTJoOS4wNUEzLjQ5IDMuNDkgMCAwIDAgMTMgMTMuNXYzYzAgLjM3LjA2LjczLjE2IDEuMDYtLjk2LjMtMi4wMy40NC0zLjE2LjQ0YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMyAxM1ptMTIgLjVhMS41IDEuNSAwIDAgMSAyLjYzLTEgLjUuNSAwIDAgMCAuNzQtLjY1QTIuNSAyLjUgMCAwIDAgMTQgMTMuNXYzYTIuNSAyLjUgMCAxIDAgMS0ydi0xWm0xLjUgNC41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uNlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptNC0zYTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlpNMyAxM2EyIDIgMCAwIDEgMi0yaDkuMDVjLS4zLjI5LS41NC42My0uNzEgMUg1QTEgMSAwIDAgMCA0IDEzYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCAxMCAxN2MxLjEgMCAyLjEzLS4xNSAzLS40MyAwIC4zNC4wNi42OC4xNiAxLS45Ni4yOS0yLjAzLjQzLTMuMTYuNDNhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAzIDEzWm0xMiAuNWExLjUgMS41IDAgMCAxIDIuNjMtMSAuNS41IDAgMCAwIC43NC0uNjVBMi41IDIuNSAwIDAgMCAxNCAxMy41djNhMi41IDIuNSAwIDEgMCAxLTJ2LTFabTEuNSA0LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BY2NvdW50c0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BY2NvdW50c0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGguMDVhMi41MSAyLjUxIDAgMCAxLS4wNS0uNXYtNGEyLjUgMi41IDAgMCAxIDIuMDQtMi40NmwuMDEtLjA0SDQuMDFabTggLjV2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxN3YtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNVptMS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41aC0zdi0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQWNjb3VudHNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkFjY291bnRzUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk02IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGguMDVhMi41MSAyLjUxIDAgMCAxLS4wNS0uNVYxN2E4LjE2IDguMTYgMCAwIDEtNC4zMy0xLjA1QTMuMzYgMy4zNiAwIDAgMSAzIDEzYTEgMSAwIDAgMSAxLTFoNS41Yy4zNy0uNS45MS0uODQgMS41NC0uOTZsLjAxLS4wNEg0LjAxWm04IC41di41aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVabTEuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYuNWgtM3YtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNmE1LjQ4IDUuNDggMCAwIDEgLjA1LTYuOTRINFptMTAuNSA4YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNkE1LjUgNS41IDAgMCAxIDkuNiAxNyAxMiAxMiAwIDAgMSA5IDE3YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg1LjZjLjE4LS4zNi40LS43LjY2LTFINFptMTAuNSA4YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BbGVydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BbGVydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuMzggMCAuNzUtLjAyIDEuMTEtLjA1YTEuNSAxLjUgMCAwIDEtLjU4LTIuNmwuOTctLjgxVjEzYzAtLjczLjItMS40MS41My0ySDQuMDFabTcuNSAyYTMgMyAwIDAgMSA2IDB2MmwxLjMyIDEuMTJhLjUuNSAwIDAgMS0uMzIuODhoLThhLjUuNSAwIDAgMS0uMzItLjg4TDExLjUgMTV2LTJabTMgNmExLjUgMS41IDAgMCAxLTEuNDItMWgyLjgzYy0uMi41OC0uNzYgMS0xLjQxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BbGVydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uQWxlcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTYgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy4zOCAwIC43NS0uMDIgMS4xMS0uMDUtLjUtLjEzLS44Ni0uNS0xLjAyLS45NUg5YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg2LjYzYy4wOS0uMzUuMjMtLjcuNC0xSDQuMDFabTcuNSAyYTMgMyAwIDAgMSA2IDB2MmwxLjMyIDEuMTJhLjUuNSAwIDAgMS0uMzIuODhoLThhLjUuNSAwIDAgMS0uMzItLjg4TDExLjUgMTV2LTJabTMgNmExLjUgMS41IDAgMCAxLTEuNDItMWgyLjgzYy0uMi41OC0uNzYgMS0xLjQxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BbGVydE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BbGVydE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNjQgMCAxLjI2LS4wNSAxLjg2LS4xNGExLjUgMS41IDAgMCAxLS4zMy0yLjVsLjk3LS44MlYxM2MwLS4xMiAwLS4yNC4wMi0uMzZsLS41OC0uNThBMS41IDEuNSAwIDAgMSAxMC41IDExSDRabTE0LjY1IDcuMzVMMTcuMjkgMTdIMTEuNWEuNS41IDAgMCAxLS4zMi0uODhMMTIuNSAxNXYtMmEzIDMgMCAwIDEgLjA4LS43bC0uOTMtLjk1YS41LjUgMCAwIDEgLjctLjdsNyA3YS41LjUgMCAwIDEtLjcuN1ptLS4xNS0yLjk3LTQuNzktNC43OUEzIDMgMCAwIDEgMTguNSAxM3YyLjM4Wm0tMyAzLjYyYTEuNSAxLjUgMCAwIDEtMS40Mi0xaDIuODNjLS4yLjU4LS43NiAxLTEuNDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkFsZXJ0T2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BbGVydE9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjY0IDAgMS4yNi0uMDUgMS44Ni0uMTRhMS41IDEuNSAwIDAgMS0uNzktLjljLS4zNC4wMi0uNy4wNC0xLjA3LjA0YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg2Ljg4YTEuNSAxLjUgMCAwIDEtLjM4LTFINFptMTQuNjUgNy4zNUwxNy4yOSAxN0gxMS41YS41LjUgMCAwIDEtLjMyLS44OEwxMi41IDE1di0yYTMgMyAwIDAgMSAuMDgtLjdsLS45My0uOTVhLjUuNSAwIDAgMSAuNy0uN2w3IDdhLjUuNSAwIDAgMS0uNy43Wm0tLjE1LTIuOTctNC43OS00Ljc5QTMgMyAwIDAgMSAxOC41IDEzdjIuMzhabS0zIDMuNjJhMS41IDEuNSAwIDAgMS0xLjQyLTFoMi44M2MtLjIuNTgtLjc2IDEtMS40MSAxWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQXJyb3dCYWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkFycm93QmFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2YTUuNDggNS40OCAwIDAgMSAuMDUtNi45NEg0Wm0xMC41IDhhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BcnJvd0JhY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNkE1LjUgNS41IDAgMCAxIDkuNiAxNyAxMiAxMiAwIDAgMSA5IDE3YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg1LjZjLjE4LS4zNi40LS43LjY2LTFINFptMTAuNSA4YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkFycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2YTUuNDggNS40OCAwIDAgMSAuMDUtNi45NEg0Wm0xNSAzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS02Ljg1LS4zNWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQXJyb3dMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTYgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy40MSAwIC44Mi0uMDIgMS4yMS0uMDZBNS41IDUuNSAwIDAgMSA5LjYgMTcgMTIgMTIgMCAwIDEgOSAxN2E4LjE2IDguMTYgMCAwIDEtNC4zMy0xLjA1QTMuMzYgMy4zNiAwIDAgMSAzIDEzYTEgMSAwIDAgMSAxLTFoNS42Yy4xOC0uMzYuNC0uNy42Ni0xSDRabTE1IDMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25BcnJvd1JpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNmE1LjQ4IDUuNDggMCAwIDEgLjA1LTYuOTRINFptMTUgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNkE1LjUgNS41IDAgMCAxIDkuNiAxNyAxMiAxMiAwIDAgMSA5IDE3YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg1LjZjLjE4LS4zNi40LS43LjY2LTFINFptMTUgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQXZhaWxhYmxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkF2YWlsYWJsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm0tMyA3YTIgMiAwIDAgMSAyLTJoNi4yNmE1LjQ4IDUuNDggMCAwIDAtLjA1IDYuOTRjLS40LjA0LS44LjA2LTEuMjEuMDZhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAyIDEzWm0xNyAxLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQXZhaWxhYmxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25BdmFpbGFibGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNmE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTQtM2EzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZaTTIgMTNhMiAyIDAgMCAxIDItMmg2LjI2Yy0uMjYuMy0uNDguNjQtLjY2IDFINGExIDEgMCAwIDAtMSAxYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCA5IDE3bC42LS4wMWMuMTcuMzQuMzcuNjYuNjEuOTUtLjQuMDQtLjguMDYtMS4yMS4wNmE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDIgMTNabTE3IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25Cb2FyZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25Cb2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoNmEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm00Ljc1IDMuMjVhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFptMS43NSA0YzAgLjU5LS4xNSAyLjUtMy41IDIuNS0zLjM2IDAtMy41LTEuOTMtMy41LTIuNWExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMVpNNS43NiAxNkEzIDMgMCAwIDAgOCAxN2g0LjVhNC41IDQuNSAwIDAgMCA0LjUtNC41VjhhMyAzIDAgMCAwLTEtMi4yNHY2Ljc0YTMuNSAzLjUgMCAwIDEtMy41IDMuNUg1Ljc2WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQm9hcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkJvYXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDguNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaTTYuNSA5QzUuNjcgOSA1IDkuNjcgNSAxMC41YzAgLjMzLjA0IDEuMDUuNjIgMS42OC41OS42MyAxLjYzIDEuMDcgMy4zOCAxLjA3czIuNzktLjQzIDMuMzctMS4wNkEyLjQgMi40IDAgMCAwIDEzIDEwLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wk02IDEwLjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNSAwIC4yNS0uMDMuNjYtLjM2IDEtLjMyLjM1LTEuMDQuNzUtMi42NC43NXMtMi4zMi0uNC0yLjY0LS43NWExLjQxIDEuNDEgMCAwIDEtLjM2LTFaTTMgNmEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZabTIgMTNhMyAzIDAgMCAxLTIuMjQtMWg2Ljc0YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY1Ljc2QTMgMyAwIDAgMSAxNyA4djQuNWE0LjUgNC41IDAgMCAxLTQuNSA0LjVIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkJvYXJkQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkJvYXJkQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gzLjAyYTUuNTcgNS41NyAwIDAgMSAuMjctMi4yNWgtLjNjLTMuMzUgMC0zLjQ5LTEuOTMtMy40OS0yLjVhMSAxIDAgMCAxIDEtMWg1Yy4yNiAwIC41LjEuNjguMjZBNS40OCA1LjQ4IDAgMCAxIDE1IDkuMDJWNmEzIDMgMCAwIDAtMy0zSDZabTQuNzUgMy4yNWExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWk01Ljc2IDE2aDMuNDVjLjEuMzUuMjMuNjguMzkgMUg4YTMgMyAwIDAgMS0yLjI0LTFaTTE3IDh2MS42Yy0uMzItLjE2LS42NS0uMy0xLS40VjUuNzdBMyAzIDAgMCAxIDE3IDhabTIgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQm9hcmRBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkJvYXJkQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDguNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaTTYuNSA5QzUuNjcgOSA1IDkuNjcgNSAxMC41YzAgLjMzLjA0IDEuMDUuNjIgMS42OC41OS42MyAxLjYzIDEuMDcgMy4zOCAxLjA3aC4xNGMuMDgtLjM1LjItLjcuMzUtMS4wMWwtLjUuMDFjLTEuNiAwLTIuMy0uNC0yLjYzLS43NWExLjQxIDEuNDEgMCAwIDEtLjM2LTFjMC0uMjguMjItLjUuNS0uNWg0Ljg0Yy4zNS0uMjUuNzQtLjQ2IDEuMTUtLjYyQTEuNSAxLjUgMCAwIDAgMTEuNSA5aC01Wk02IDE0aDMuMDJhNS41NyA1LjU3IDAgMCAwIDAgMUg2YTMgMyAwIDAgMS0zLTNWNmEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3YzLjAyYTUuNTcgNS41NyAwIDAgMC0xIDBWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJabS0uMjQgMmgzLjQ1Yy4xLjM1LjIzLjY4LjM5IDFIOGEzIDMgMCAwIDEtMi4yNC0xWk0xNyA4djEuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1Ljc3QTMgMyAwIDAgMSAxNyA4Wm0yIDYuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkNhbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uQ2FsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDEwIDE4Yy4zNiAwIC43MS0uMDEgMS4wNi0uMDRhMi4yIDIuMiAwIDAgMSAuNTEtMS45OGwuNTUtLjZjLjUtLjU3IDEuMjgtLjggMi0uNjNsLjguMThjLjM3LS4zMS42LS42OC43LTEuMTJsLS41MS0uNWExLjk0IDEuOTQgMCAwIDEtLjQ2LTIuMDhsLjA4LS4yM0g1LjAxWm0xMC41OC41OC4yOS0uNzVhMS4zMiAxLjMyIDAgMCAxIDEuNzQtLjczbC4zOS4xN2MuNDcuMi44Ni41Ny45NCAxLjA2LjQ2IDIuNzMtMS45IDYuNi00LjYzIDcuNTlhMS42IDEuNiAwIDAgMS0xLjQ0LS4yNWwtLjM1LS4yM2MtLjYtLjQxLS43LTEuMjQtLjItMS43OWwuNTQtLjZjLjI2LS4zLjY2LS40MiAxLjA0LS4zM2wxLjIyLjI5Yy45Ny0uNiAxLjUtMS40NiAxLjU2LTIuNTZsLS44OC0uODZhLjk0Ljk0IDAgMCAxLS4yMi0xWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQ2FsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uQ2FsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTcgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCAxMCAxOGMuMzYgMCAuNzEtLjAxIDEuMDYtLjA0YTIuMiAyLjIgMCAwIDEgMC0xYy0uMzQuMDItLjcuMDQtMS4wNi4wNGE4LjE2IDguMTYgMCAwIDEtNC4zMy0xLjA1QTMuMzYgMy4zNiAwIDAgMSA0IDEzYTEgMSAwIDAgMSAxLTFoOS41MmMwLS4yNi4wMy0uNTIuMTMtLjc3bC4wOC0uMjNINS4wMVptMTAuNTguNTguMjktLjc1YTEuMzIgMS4zMiAwIDAgMSAxLjc0LS43M2wuMzkuMTdjLjQ3LjIuODYuNTcuOTQgMS4wNi40NiAyLjczLTEuOSA2LjYtNC42MyA3LjU5YTEuNiAxLjYgMCAwIDEtMS40NC0uMjVsLS4zNS0uMjNjLS42LS40MS0uNy0xLjI0LS4yLTEuNzlsLjU0LS42Yy4yNi0uMy42Ni0uNDIgMS4wNC0uMzNsMS4yMi4yOWMuOTctLjYgMS41LTEuNDYgMS41Ni0yLjU2bC0uODgtLjg2YS45NC45NCAwIDAgMS0uMjItMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkNoYXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uQ2hhdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhhOC41NCA4LjU0IDAgMCAwIDQgMS4xN2wuMzYtMS4yYTUuNDggNS40OCAwIDAgMSAuNzctNS43N0g1Wm0xNCAzLjVhNC41IDQuNSAwIDAgMS02LjY4IDMuOTRsLTEuOC41NGEuNC40IDAgMCAxLS41LS41bC41NC0xLjhBNC41IDQuNSAwIDEgMSAxOSAxNC41Wk0xMi41IDEzYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabS0uNSAyLjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25DaGF0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25DaGF0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNyA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhhOC41NCA4LjU0IDAgMCAwIDQgMS4xN2wuMy0uOThhNy43NCA3Ljc0IDAgMCAxLTMuNzYtMS4wNEEzLjM2IDMuMzYgMCAwIDEgNCAxM2ExIDEgMCAwIDEgMS0xaDQuNmMuMTgtLjM2LjQtLjcuNjYtMUg1Wm0xNCAzLjVhNC41IDQuNSAwIDAgMS02LjY4IDMuOTRsLTEuOC41NGEuNC40IDAgMCAxLS41LS41bC41NC0xLjhBNC41IDQuNSAwIDEgMSAxOSAxNC41Wk0xMi41IDEzYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabS0uNSAyLjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25DaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uQ2lyY2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wk04IDdhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0tLjUgM2g1Yy44MyAwIDEuNS42NyAxLjUgMS41IDAgMS4xMi0uNDYgMi4wMS0xLjIxIDIuNjEtLjc0LjYtMS43NC44OS0yLjc5Ljg5YTQuNDMgNC40MyAwIDAgMS0yLjc5LS44OUEzLjI1IDMuMjUgMCAwIDEgNiAxMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQ2lyY2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25DaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggN2EyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabS0uNSAzaDVjLjgzIDAgMS41LjY3IDEuNSAxLjUgMCAxLjEyLS40NiAyLjAxLTEuMjEgMi42MS0uNzQuNi0xLjc0Ljg5LTIuNzkuODlhNC40MyA0LjQzIDAgMCAxLTIuNzktLjg5QTMuMjUgMy4yNSAwIDAgMSA2IDExLjVjMC0uODMuNjctMS41IDEuNS0xLjVaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25DbG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25DbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm0tMyA3YTIgMiAwIDAgMSAyLTJoNi4yNmE1LjQ4IDUuNDggMCAwIDAtLjA1IDYuOTRjLS40LjA0LS44LjA2LTEuMjEuMDZhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAyIDEzWm0xNyAxLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm00LTNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02Wk0yIDEzYTIgMiAwIDAgMSAyLTJoNi4yNmMtLjI2LjMtLjQ4LjY0LS42NiAxSDRhMSAxIDAgMCAwLTEgMWMwIDEuMy42MiAyLjI4IDEuNjcgMi45NUE4LjE2IDguMTYgMCAwIDAgOSAxN2wuNi0uMDFjLjE3LjM0LjM3LjY2LjYxLjk1LS40LjA0LS44LjA2LTEuMjEuMDZhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAyIDEzWm0xNyAxLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uRGVsZXRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkRlbGV0ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm0tMyA3YTIgMiAwIDAgMSAyLTJoNi4yNmE1LjQ4IDUuNDggMCAwIDAtLjA1IDYuOTRjLS40LjA0LS44LjA2LTEuMjEuMDZhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAyIDEzWm0xNyAxLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uRGVsZXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25EZWxldGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNmE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTQtM2EzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZaTTIgMTNhMiAyIDAgMCAxIDItMmg2LjI2Yy0uMjYuMy0uNDguNjQtLjY2IDFINGExIDEgMCAwIDAtMSAxYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCA5IDE3bC42LS4wMWMuMTcuMzQuMzcuNjYuNjEuOTUtLjQuMDQtLjguMDYtMS4yMS4wNmE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDIgMTNabTE3IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25EZXNrdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkRlc2t0b3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCAxMCAxOGMuMjQgMCAuNDggMCAuNzItLjAyQTIgMiAwIDAgMSA5IDE2di00YzAtLjM2LjEtLjcuMjctMUg1Wm01IDFhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC0ydjFoLjVhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFoLjV2LTFoLTJhMSAxIDAgMCAxLTEtMXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkRlc2t0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkRlc2t0b3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk03IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgMTAgMThjLjI0IDAgLjQ4IDAgLjcyLS4wMmEyIDIgMCAwIDEtMS40Ny0xIDcuNjEgNy42MSAwIDAgMS0zLjU4LTEuMDNBMy4zNiAzLjM2IDAgMCAxIDQgMTNhMSAxIDAgMCAxIDEtMWg0YzAtLjM2LjEtLjcuMjctMUg1Wm01IDFhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC0ydjFoLjVhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFoLjV2LTFoLTJhMSAxIDAgMCAxLTEtMXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhhOC40NiA4LjQ2IDAgMCAwIDMuODggMS4xNmMwLS4xLjAyLS4yLjA1LS4zbC4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OUwxMy45NCAxMUg1LjAxWm01Ljk4IDQuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25FZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25FZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNyA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhhOC40NiA4LjQ2IDAgMCAwIDMuODggMS4xNmMwLS4xLjAyLS4yLjA1LS4zbC4xNy0uNjhhNy41OSA3LjU5IDAgMCAxLTMuNTYtMS4wM0EzLjM2IDMuMzYgMCAwIDEgNCAxM2ExIDEgMCAwIDEgMS0xaDcuOTRsMS0xSDUuMDFabTUuOTggNC4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkZlZWRiYWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkZlZWRiYWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMTJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVjMCAxLjk3LTEuODYgNC01IDQtMy4xNCAwLTUtMi4wMy01LTR2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDdaTTcgNS41QTIuNzUgMi43NSAwIDEgMSA3IDExYTIuNzUgMi43NSAwIDAgMSAwLTUuNVpNMTYgMmEyIDIgMCAwIDEgMiAxLjg1VjZhMiAyIDAgMCAxLTEuODUgMkgxNC41bC0xLjIgMS42YTEgMSAwIDAgMS0xLjc4LS4zOGwtLjAxLS4xVjlsLS4wMS0xLjA3LS4wOC0uMDFhMiAyIDAgMCAxLTEuNC0xLjZsLS4wMS0uMTdMMTAgNlY0YTIgMiAwIDAgMSAxLjg1LTJIMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25GZWVkYmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uRmVlZGJhY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgMTJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVjMCAxLjk3LTEuODYgNC01IDQtMy4xNCAwLTUtMi4wMy01LTR2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDdabTAgMWgtN2EuNS41IDAgMCAwLS41LjV2LjVjMCAxLjQ0IDEuNDMgMyA0IDMgMi41NyAwIDQtMS41NiA0LTN2LS41YS41LjUgMCAwIDAtLjUtLjVaTTcgNS41QTIuNzUgMi43NSAwIDEgMSA3IDExYTIuNzUgMi43NSAwIDAgMSAwLTUuNVpNMTYgMmEyIDIgMCAwIDEgMiAxLjg1VjZhMiAyIDAgMCAxLTEuODUgMkgxNC41bC0xLjIgMS42YTEgMSAwIDAgMS0xLjc4LS4zOGwtLjAxLS4xVjlsLS4wMS0xLjA3LS4wOC0uMDFhMiAyIDAgMCAxLTEuNC0xLjZsLS4wMS0uMTdMMTAgNlY0YTIgMiAwIDAgMSAxLjg1LTJIMTZaTTcgNi41QTEuNzUgMS43NSAwIDEgMCA3IDEwYTEuNzUgMS43NSAwIDAgMCAwLTMuNVpNMTYgM2gtNGExIDEgMCAwIDAtMSAuODhWNmExIDEgMCAwIDAgLjg4IDFoLjYydjJMMTQgN2gyYTEgMSAwIDAgMCAxLS44OFY0YTEgMSAwIDAgMC0uODgtMUgxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkhlYXJ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkhlYXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy45NSAwIDEuODgtLjEgMi43Mi0uMzFsLTEuODMtMmEzLjQgMy40IDAgMCAxIC4xLTQuNjlINFptMTAuNSAxLS42My0uNDlhMi40IDIuNCAwIDAgMC0zLjI0IDMuNWwzLjUgMy44M2MuMi4yMi41NC4yMi43NCAwbDMuNS0zLjgzYTIuNCAyLjQgMCAwIDAtMy4yNC0zLjVsLS42My41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uSGVhcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkhlYXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk02IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuOTUgMCAxLjg4LS4xIDIuNzItLjMxbC0uNzgtLjg2Yy0uNi4xMS0xLjI2LjE3LTEuOTQuMTdhOC4xNiA4LjE2IDAgMCAxLTQuMzMtMS4wNUEzLjM2IDMuMzYgMCAwIDEgMyAxM2ExIDEgMCAwIDEgMS0xaDUuM2EzLjQgMy40IDAgMCAxIC42OS0xSDRabTEwLjUgMS0uNjMtLjQ5YTIuNCAyLjQgMCAwIDAtMy4yNCAzLjVsMy41IDMuODNjLjIuMjIuNTQuMjIuNzQgMGwzLjUtMy44M2EyLjQgMi40IDAgMCAwLTMuMjQtMy41bC0uNjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkhvbWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uSG9tZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDEwYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFptNSAxSDRhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy43IDAgMS4zNi0uMDcgMi0uMTh2LTIuMzZhMiAyIDAgMCAxIC43LTEuNTJsMi44Mi0yLjQyYy4xNC0uMTEuMjktLjIuNDUtLjI2QTEuOTggMS45OCAwIDAgMCAxNCAxMVptLTEuNjUgMy43YTEgMSAwIDAgMC0uMzUuNzZ2My4wNGMwIC4yOC4yMi41LjUuNUgxNGEuNS41IDAgMCAwIC41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjV2MmMwIC4yOC4yMi41LjUuNWgxLjVhLjUuNSAwIDAgMCAuNS0uNXYtMy4wNGExIDEgMCAwIDAtLjM1LS43NmwtMi44Mi0yLjQyYS41LjUgMCAwIDAtLjY1IDBsLTIuODMgMi40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkhvbWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkhvbWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDExSDRhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy43IDAgMS4zNi0uMDcgMi0uMThWMTYuOGMtLjYyLjEyLTEuMjkuMi0yIC4yYTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg5Ljk2bC41Ni0uNDhjLjE0LS4xMS4yOS0uMi40NS0uMjZBMS45OCAxLjk4IDAgMCAwIDE0IDExWm0tNS0xYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFptMC03YTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNlptMy4zNSAxMS43YTEgMSAwIDAgMC0uMzUuNzZ2My4wNGMwIC4yOC4yMi41LjUuNUgxNGEuNS41IDAgMCAwIC41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjV2MmMwIC4yOC4yMi41LjUuNWgxLjVhLjUuNSAwIDAgMCAuNS0uNXYtMy4wNGExIDEgMCAwIDAtLjM1LS43NmwtMi44Mi0yLjQyYS41LjUgMCAwIDAtLjY1IDBsLTIuODMgMi40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkluZm9GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uSW5mb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2YTUuNDggNS40OCAwIDAgMSAuMDUtNi45NEg0Wm05Ljg4IDEuNWEuNjIuNjIgMCAxIDEgMS4yNCAwIC42Mi42MiAwIDAgMS0xLjI0IDBabTEuMTIgNGEuNS41IDAgMCAxLTEgMHYtMmEuNS41IDAgMCAxIDEgMHYyWm0tNS0yYTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWm0xIDBhMy41IDMuNSAwIDEgMCA3IDAgMy41IDMuNSAwIDAgMC03IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25JbmZvUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25JbmZvUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk02IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2QTUuNSA1LjUgMCAwIDEgOS42IDE3IDEyIDEyIDAgMCAxIDkgMTdhOC4xNiA4LjE2IDAgMCAxLTQuMzMtMS4wNUEzLjM2IDMuMzYgMCAwIDEgMyAxM2ExIDEgMCAwIDEgMS0xaDUuNmMuMTgtLjM2LjQtLjcuNjYtMUg0Wm05Ljg4IDEuNWEuNjIuNjIgMCAxIDEgMS4yNCAwIC42Mi42MiAwIDAgMS0xLjI0IDBabTEuMTIgNGEuNS41IDAgMCAxLTEgMHYtMmEuNS41IDAgMCAxIDEgMHYyWm0tNS0yYTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwWm0xIDBhMy41IDMuNSAwIDEgMCA3IDAgMy41IDMuNSAwIDAgMC03IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25LZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uS2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE4LjQ2IDguNDYgMCAwIDAgOSAxNy45NlYxN2MwLS40MS4xNi0uNzguNDQtMS4wNmwyLjU4LTIuNThhMy43MiAzLjcyIDAgMCAxIC41MS0yLjM2SDUuMDFabTUuMTUgNy44NWMuMS4xLjIxLjE1LjM1LjE1aDJjLjExIDAgLjItLjAzLjI3LS4wNy4wNy0uMDQuMTItLjEuMTUtLjE3YS44Ni44NiAwIDAgMCAuMDYtLjI0bC4wMi0uMjVWMThsLjU2LS4wMmEuNDcuNDcgMCAwIDAgLjMtLjEyYy4wNy0uMDcuMTEtLjE3LjEyLS4zTDE0IDE3aC41Yy4xIDAgLjItLjAyLjI3LS4wN2EuNS41IDAgMCAwIC4xNS0uMTcuNjUuNjUgMCAwIDAgLjA3LS4yNCAyLjM0IDIuMzQgMCAwIDAgLjAxLS41di0uMmMuMTcuMDcuMzUuMTEuNTIuMTRhMi44NyAyLjg3IDAgMCAwIDIuNjItLjg2QTMuMTEgMy4xMSAwIDAgMCAxOSAxM2EyLjk0IDIuOTQgMCAwIDAtLjg4LTIuMTMgMyAzIDAgMCAwLTUuMDMgMi44NGwtMi45NCAyLjk0Yy0uMS4xLS4xNS4yMS0uMTUuMzV2MS41YzAgLjE0LjA1LjI1LjE1LjM1Wm03LjEzLTcuMTNjLjE1LjE0LjIyLjMyLjIyLjUzIDAgLjItLjA3LjM5LS4yMi41M2EuNzIuNzIgMCAwIDEtLjUzLjIyLjcyLjcyIDAgMCAxLS41My0uMjIuNzIuNzIgMCAwIDEtLjIyLS41M2MwLS4yLjA3LS4zOS4yMi0uNTNhLjcyLjcyIDAgMCAxIC41My0uMjJjLjIgMCAuMzkuMDcuNTMuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25LZXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbktleVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTcgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTguNDYgOC40NiAwIDAgMCA5IDE3Ljk2di0xYTcuNDIgNy40MiAwIDAgMS0zLjMzLTFBMy4zNiAzLjM2IDAgMCAxIDQgMTNhMSAxIDAgMCAxIDEtMWg3LjExYTMuNjUgMy42NSAwIDAgMSAuNDItMUg1LjAxWm01LjE1IDcuODVjLjEuMS4yMS4xNS4zNS4xNWgyYy4xMSAwIC4yLS4wMy4yNy0uMDcuMDctLjA0LjEyLS4xLjE1LS4xN2EuODYuODYgMCAwIDAgLjA2LS4yNGwuMDItLjI1VjE4bC41Ni0uMDJhLjQ3LjQ3IDAgMCAwIC4zLS4xMmMuMDctLjA3LjExLS4xNy4xMi0uM0wxNCAxN2guNWMuMSAwIC4yLS4wMi4yNy0uMDdhLjUuNSAwIDAgMCAuMTUtLjE3LjY1LjY1IDAgMCAwIC4wNy0uMjQgMi4zNCAyLjM0IDAgMCAwIC4wMS0uNXYtLjJjLjE3LjA3LjM1LjExLjUyLjE0YTIuODcgMi44NyAwIDAgMCAyLjYyLS44NkEzLjExIDMuMTEgMCAwIDAgMTkgMTNhMi45NCAyLjk0IDAgMCAwLS44OC0yLjEzIDMgMyAwIDAgMC01LjAzIDIuODRsLTIuOTQgMi45NGMtLjEuMS0uMTUuMjEtLjE1LjM1djEuNWMwIC4xNC4wNS4yNS4xNS4zNVptNy4xMy03LjEzYy4xNS4xNC4yMi4zMi4yMi41MyAwIC4yLS4wNy4zOS0uMjIuNTNhLjcyLjcyIDAgMCAxLS41My4yMi43Mi43MiAwIDAgMS0uNTMtLjIyLjcyLjcyIDAgMCAxLS4yMi0uNTNjMC0uMi4wNy0uMzkuMjItLjUzYS43Mi43MiAwIDAgMSAuNTMtLjIyYy4yIDAgLjM5LjA3LjUzLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uTGlnaHRidWxiRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkxpZ2h0YnVsYkZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm0tMyA3YTIgMiAwIDAgMSAyLTJoNi41NGEzLjk4IDMuOTggMCAwIDAgLjg1IDUuMDNsLjMzIDEuNjZjLS44NS4yLTEuNzcuMzEtMi43Mi4zMWE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDMgMTNabTE1IDBhMyAzIDAgMCAxLTEuMyAyLjQ3bC0uMS41M2gtMy4ybC0uMS0uNTNBMyAzIDAgMSAxIDE4IDEzWm0tNC40IDQgLjI0IDEuMmMuMS40Ni41LjguOTguOGguMzZhMSAxIDAgMCAwIC45OC0uOGwuMjQtMS4yaC0yLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25MaWdodGJ1bGJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkxpZ2h0YnVsYlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptNC0zYTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlpNMyAxM2EyIDIgMCAwIDEgMi0yaDYuNTRjLS4xOC4zLS4zMi42NS0uNDEgMUg1QTEgMSAwIDAgMCA0IDEzYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCAxMCAxN2MuOTEgMCAxLjc2LS4xIDIuNTItLjNsLjIuOTljLS44NS4yLTEuNzcuMzEtMi43Mi4zMWE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDMgMTNabTE1IDBhMyAzIDAgMCAxLTEuMyAyLjQ3bC0uMS41M2gtMy4ybC0uMS0uNTNBMyAzIDAgMSAxIDE4IDEzWm0tNC40IDQgLjI0IDEuMmMuMS40Ni41LjguOTguOGguMzZhMSAxIDAgMCAwIC45OC0uOGwuMjQtMS4yaC0yLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25MaWdodG5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uTGlnaHRuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgMTAgMThjLjYgMCAxLjE5LS4wNCAxLjc1LS4xMmwuMjItLjg4aC0uNDdhMS41IDEuNSAwIDAgMS0xLjM4LTIuMDhMMTEuNzUgMTFINS4wMVptNy42MSA1Yy4zMyAwIC41Ny4zLjQ5LjYybC0uNDQgMS43NGMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtLjRhLjUuNSAwIDAgMS0uNDgtLjY2bC41Ni0xLjY4YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40N2EuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN2gxLjExWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uTGlnaHRuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25MaWdodG5pbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNmE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTQtM2EzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZaTTMgMTNhMiAyIDAgMCAxIDItMmg2Ljc1bC0uNDIgMUg1LjAxQTEgMSAwIDAgMCA0IDEzYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCAxMCAxN2gxLjk3bC0uMjIuODhjLS41Ni4wOC0xLjE1LjEyLTEuNzUuMTJhOS4xNCA5LjE0IDAgMCAxLTQuODctMS4yQTQuMzUgNC4zNSAwIDAgMSAzIDEzWm05LjYxIDNjLjMzIDAgLjU3LjMuNDkuNjJsLS40NCAxLjc0Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0uNGEuNS41IDAgMCAxLS40OC0uNjZsLjU2LTEuNjhhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ3YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43aDEuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25MaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbkxpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhhOS4xNCA5LjE0IDAgMCAwIDUuMiAxLjIgMy41IDMuNSAwIDAgMSAzLjE3LTVIMTZhMiAyIDAgMCAwLTItMkg0Wm04LjUgM2EyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uTGlua1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uTGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhhOS4xNCA5LjE0IDAgMCAwIDUuMiAxLjIgMy40OCAzLjQ4IDAgMCAxLS4zLTFIOWE4LjE2IDguMTYgMCAwIDEtNC4zMy0xLjA1QTMuMzYgMy4zNiAwIDAgMSAzIDEzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMWgxYTIgMiAwIDAgMC0yLTJINFptOC41IDNhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbkxvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uTG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm0tMyA3YTIgMiAwIDAgMSAyLTJoOC42N2EzIDMgMCAwIDAtLjE3IDF2LjA2QTIgMiAwIDAgMCAxMSAxNHYzLjg0Yy0uNjQuMS0xLjMxLjE2LTIgLjE2YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMiAxM1ptMTEuNSAwdi0xYTIgMiAwIDEgMSA0IDB2MWguNWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoLjVabTEtMXYxaDJ2LTFhMSAxIDAgMSAwLTIgMFptMS43NSA0YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25Mb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25Mb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm00LTNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02Wk0yIDEzYTIgMiAwIDAgMSAyLTJoOC42N2EzIDMgMCAwIDAtLjE3IDFINGExIDEgMCAwIDAtMSAxYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCA5IDE3Yy43IDAgMS4zOC0uMDYgMi0uMTh2MS4wMmMtLjY0LjEtMS4zMS4xNi0yIC4xNmE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDIgMTNabTExLjUgMHYtMWEyIDIgMCAxIDEgNCAwdjFoLjVhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaC41Wm0xLTF2MWgydi0xYTEgMSAwIDEgMC0yIDBabTEuNzUgNGEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uTWFpbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25NYWlsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4di01YzAtMS4xLjktMiAyLTJINFptMTAuNTEgNC45My00LjUtMi42M2MuMS0uNzMuNzMtMS4zIDEuNDktMS4zaDZjLjgzIDAgMS41LjY3IDEuNSAxLjVsLTQuNDkgMi40M1ptLjIzIDEuMDEgNC4yNi0yLjN2Mi44NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di0zLjA1bDQuMjUgMi40OGMuMTUuMDkuMzMuMS40OS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbk1haWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbk1haWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTYgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4di0xYTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg1LjI3QTIgMiAwIDAgMSAxMSAxMUg0Wm0xMC41MSA0LjkzLTQuNS0yLjYzYy4xLS43My43My0xLjMgMS40OS0xLjNoNmMuODMgMCAxLjUuNjcgMS41IDEuNWwtNC40OSAyLjQzWm0uMjMgMS4wMSA0LjI2LTIuM3YyLjg2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTMuMDVsNC4yNSAyLjQ4Yy4xNS4wOS4zMy4xLjQ5LjAxWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uTW9uZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uTW9uZXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTguNDYgOC40NiAwIDAgMCA5IDE3Ljk2VjE0YzAtMS4xLjktMiAyLTJoNS43M0EyIDIgMCAwIDAgMTUgMTFINVptMTQgMy41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtM2MwLS44My42Ny0xLjUgMS41LTEuNWg2Yy44MyAwIDEuNS42NyAxLjUgMS41Wm0tMSAzdi0xYy0uODMgMC0xLjUuNjctMS41IDEuNWgxYzAtLjI4LjIyLS41LjUtLjVabTAtM2EuNS41IDAgMCAxLS41LS41aC0xYzAgLjgzLjY3IDEuNSAxLjUgMS41di0xWm0tNi41LS41YS41LjUgMCAwIDEtLjUuNXYxYy44MyAwIDEuNS0uNjcgMS41LTEuNWgtMVptLS41IDMuNWMuMjggMCAuNS4yMi41LjVoMWMwLS44My0uNjctMS41LTEuNS0xLjV2MVptMy41LTNhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25Nb25leVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uTW9uZXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk03IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE4LjQ2IDguNDYgMCAwIDAgOSAxNy45NnYtMWE3LjQyIDcuNDIgMCAwIDEtMy4zMy0xQTMuMzYgMy4zNiAwIDAgMSA0IDEzYTEgMSAwIDAgMSAxLTFoMTEuNzNBMiAyIDAgMCAwIDE1IDExSDVabTE0IDMuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTNjMC0uODMuNjctMS41IDEuNS0xLjVoNmMuODMgMCAxLjUuNjcgMS41IDEuNVptLTEgM3YtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjVoMWMwLS4yOC4yMi0uNS41LS41Wm0wLTNhLjUuNSAwIDAgMS0uNS0uNWgtMWMwIC44My42NyAxLjUgMS41IDEuNXYtMVptLTYuNS0uNWEuNS41IDAgMCAxLS41LjV2MWMuODMgMCAxLjUtLjY3IDEuNS0xLjVoLTFabS0uNSAzLjVjLjI4IDAgLjUuMjIuNS41aDFjMC0uODMtLjY3LTEuNS0xLjUtMS41djFabTMuNS0zYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uTm90ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25Ob3RlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOCAxLjEuNjkgMi41IDEuMDcgNC4wMyAxLjE3QTMgMyAwIDAgMSA5IDE3di00YzAtLjc3LjI5LTEuNDcuNzYtMkg1LjAxWm01IDJjMC0xLjEuOS0yIDItMmg1YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTRabTYuNSAzaC00YS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFabS00LTNhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMSAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbk5vdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvbk5vdGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk03IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOCAxLjEuNjkgMi41IDEuMDcgNC4wMyAxLjE3QTMgMyAwIDAgMSA5IDE3di0uMDRhNy40MiA3LjQyIDAgMCAxLTMuMzMtMUEzLjM2IDMuMzYgMCAwIDEgNCAxM2ExIDEgMCAwIDEgMS0xaDQuMTdhMyAzIDAgMCAxIC42LTFINVptNSAyYzAtMS4xLjktMiAyLTJoNWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi00Wm02LjUgM2gtNGEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xWm0tNC0zYS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25QYXNza2V5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblBhc3NrZXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCAxMCAxOGE5LjE0IDkuMTQgMCAwIDAgNS4xNC0xLjR2LTIuMjJjLTEuMTktLjY1LTItMS45Mi0yLTMuMzhINS4wMVptOSAwYTMgMyAwIDAgMCAyIDIuODN2NS4wM2MwIC4xLjAzLjIuMS4yN2wuNi43M2MuMTYuMi40Ni4yLjYzLjAzbDEuNTQtMS41N2EuNDMuNDMgMCAwIDAtLjAyLS42MmwtMS4zNS0xLjIgMS4zNS0xLjE4Yy4yLS4xNy4yLS40NyAwLS42NGwtLjk0LS44MkEzIDMgMCAxIDAgMTQgMTFabTQtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25QYXNza2V5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25QYXNza2V5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNyA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDEwIDE4YTkuMTQgOS4xNCAwIDAgMCA1LjE0LTEuNHYtMS4zMmMtLjIzLjI1LS41LjQ4LS44MS42N0E4LjE2IDguMTYgMCAwIDEgMTAgMTdhOC4xNiA4LjE2IDAgMCAxLTQuMzMtMS4wNUEzLjM2IDMuMzYgMCAwIDEgNCAxM2ExIDEgMCAwIDEgMS0xaDguMjdhMy44NiAzLjg2IDAgMCAxLS4xMy0xSDUuMDFabTkgMGEzIDMgMCAwIDAgMS45MiAyLjhsLjA4LjAzdjUuMDNjMCAuMS4wMy4yLjEuMjdsLjYuNzNjLjE2LjIuNDYuMi42My4wM2wxLjU0LTEuNTdhLjQzLjQzIDAgMCAwLS4wMi0uNjJsLTEuMzUtMS4yIDEuMzUtMS4xOGMuMi0uMTcuMi0uNDcgMC0uNjRsLS45NC0uODJBMyAzIDAgMSAwIDE0IDExWm00LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uUGlsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25QaWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0yLjg4IDktMi45NCAyLjk0YTMuNjIgMy42MiAwIDAgMC0uNzUgNC4wMyA4LjU5IDguNTkgMCAwIDEtNC4wNi0xLjE3QTQuMzUgNC4zNSAwIDAgMSAzIDEzYTIgMiAwIDAgMSAyLTJoNy44OFptNS40Ny0uMzVhMi42MiAyLjYyIDAgMCAwLTMuNyAwbC00IDRhMi42MiAyLjYyIDAgMCAwIDMuNyAzLjdsNC00YTIuNjIgMi42MiAwIDAgMCAwLTMuN1ptLTMgLjdhMS42MiAxLjYyIDAgMSAxIDIuMyAyLjNMMTYgMTUuMjkgMTMuNyAxM2wxLjY1LTEuNjVabS0xLjUgNC4zYy4yLjIuMi41IDAgLjdsLTEgMWEuNS41IDAgMCAxLS43LS43bDEtMWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblBpbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblBpbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk03IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm01Ljg4IDVINUEyIDIgMCAwIDAgMyAxM2MwIDEuNy44MyAyLjk3IDIuMTMgMy44IDEuMS43IDIuNTIgMS4wOCA0LjA2IDEuMTdhMy42MSAzLjYxIDAgMCAxLS4yOC0xLjAyIDcuMzUgNy4zNSAwIDAgMS0zLjI0LTFBMy4zNiAzLjM2IDAgMCAxIDQgMTNhMSAxIDAgMCAxIDEtMWg2Ljg4bDEtMVptNS40Ny0uMzVhMi42MiAyLjYyIDAgMCAwLTMuNyAwbC00IDRhMi42MiAyLjYyIDAgMCAwIDMuNyAzLjdsNC00YTIuNjIgMi42MiAwIDAgMCAwLTMuN1ptLTMgLjdhMS42MiAxLjYyIDAgMSAxIDIuMyAyLjNMMTYgMTUuMjkgMTMuNyAxM2wxLjY1LTEuNjVabS0xLjUgNC4zYy4yLjIuMi41IDAgLjdsLTEgMWEuNS41IDAgMCAxLS43LS43bDEtMWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblByb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2YTUuNDggNS40OCAwIDAgMSAuMDUtNi45NEg0Wm02IDMuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMi40IDIuOCA0LjktNC45YTMuNSAzLjUgMCAwIDEtNC45IDQuOVptLS43LS43YTMuNSAzLjUgMCAwIDEgNC45LTQuOWwtNC45IDQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblByb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblByb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTYgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy40MSAwIC44Mi0uMDIgMS4yMS0uMDZBNS41IDUuNSAwIDAgMSA5LjYgMTcgMTIgMTIgMCAwIDEgOSAxN2E4LjE2IDguMTYgMCAwIDEtNC4zMy0xLjA1QTMuMzYgMy4zNiAwIDAgMSAzIDEzYTEgMSAwIDAgMSAxLTFoNS42Yy4xOC0uMzYuNC0uNy42Ni0xSDRabTYgMy41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0yLjQgMi44IDQuOS00LjlhMy41IDMuNSAwIDAgMS00LjkgNC45Wm0tLjctLjdhMy41IDMuNSAwIDAgMSA0LjktNC45bC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uUXVlc3Rpb25NYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblF1ZXN0aW9uTWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0uNjItMmEuNjIuNjIgMCAxIDEtMS4yNCAwIC42Mi42MiAwIDAgMSAxLjI0IDBabTEuMjMtMy41NWMwIC41OS0uMjEuOTEtLjcyIDEuMzJsLS4yOC4yMmMtLjI1LjE5LS4zMy4zLS4zNS40NHYuMTZhLjUuNSAwIDAgMS0xLS4wOWMwLS41Ny4yMS0uODguNzItMS4yOWwuMjctLjIxYy4zLS4yMy4zNi0uMzUuMzYtLjU1IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBjLS4wMS0xLjEzLjgtMS45NSAxLjg1LTEuOTUgMS4wMyAwIDEuODUuODUgMS44NSAxLjk1Wk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2YTUuNDggNS40OCAwIDAgMSAuMDUtNi45NEg0WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uUXVlc3Rpb25NYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25RdWVzdGlvbk1hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTYgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy40MSAwIC44Mi0uMDIgMS4yMS0uMDZBNS41IDUuNSAwIDAgMSA5LjYgMTcgMTIgMTIgMCAwIDEgOSAxN2E4LjE2IDguMTYgMCAwIDEtNC4zMy0xLjA1QTMuMzYgMy4zNiAwIDAgMSAzIDEzYTEgMSAwIDAgMSAxLTFoNS42Yy4xOC0uMzYuNC0uNy42Ni0xSDRabTEwLjUgOGE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLjYyLTJhLjYyLjYyIDAgMSAwLTEuMjQgMCAuNjIuNjIgMCAwIDAgMS4yNCAwWm0xLjIzLTMuNTVjMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1LTEuMDUgMC0xLjg2LjgyLTEuODUgMS45NmEuNS41IDAgMSAwIDEtLjAxYzAtLjU4LjM2LS45NS44NS0uOTUuNDcgMCAuODUuNC44NS45NSAwIC4yLS4wNy4zMi0uMzYuNTVsLS4yNy4yMWMtLjUxLjQtLjcyLjcyLS43MiAxLjI5YS41LjUgMCAwIDAgMSAuMDl2LS4xNmMuMDItLjE0LjEtLjI1LjM1LS40NGwuMjgtLjIyYy41LS40LjcyLS43My43Mi0xLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uUmliYm9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblJpYmJvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTUgOWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDEwIDE4YzEuMDYgMCAyLjA4LS4xMyAzLS4zOXYtMS45NmEzLjk4IDMuOTggMCAwIDEtLjQ3LTQuNjVINS4wMVptMTEgNWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabTAgMWMuNzMgMCAxLjQxLS4yIDItLjU0djIuMjljMCAuMi0uMjEuMzEtLjM4LjIxTDE2IDE4bC0xLjYyLjk2YS4yNS4yNSAwIDAgMS0uMzgtLjIxdi0yLjI5Yy41OS4zNCAxLjI3LjU0IDIgLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uUmliYm9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25SaWJib25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk03IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgMTAgMThjMS4wNiAwIDIuMDgtLjEzIDMtLjM5di0xLjA0Yy0uODcuMjgtMS45LjQzLTMgLjQzYTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDQgMTNhMSAxIDAgMCAxIDEtMWg3LjEzYy4wOS0uMzUuMjMtLjcuNC0xSDUuMDFabTExIDVhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2Wm0wIDFjLjczIDAgMS40MS0uMiAyLS41NHYyLjI5YzAgLjItLjIxLjMxLS4zOC4yMUwxNiAxOGwtMS42Mi45NmEuMjUuMjUgMCAwIDEtLjM4LS4yMXYtMi4yOWMuNTkuMzQgMS4yNy41NCAyIC41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblJ1bm5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uUnVubmluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMS41IDQuNWEyIDIgMCAxIDEgMi42MSAxLjlsMS42IDEuNmgxLjc5YTEuNSAxLjUgMCAwIDEgMCAzaC0zLjIyYy0uNjMgMC0xLjI0LS4yNS0xLjY4LS43bC0uMS0uMS0xLjA0IDEuMDUgMS40IDEuNGMuMDkuMDkuMTQuMjIuMTQuMzV2My41YTEuNSAxLjUgMCAwIDEtMyAwdi0xLjhsLTEuNTUtMS41NC0xIC43NWMtLjUuMzgtMS4xMy41OS0xLjc2LjU5SDIuNWExLjUgMS41IDAgMCAxIDAtM2g0LjI1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjhoMWEuNS41IDAgMCAwIDAtMUg4LjVhLjUuNSAwIDAgMC0uNS41djEuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjdBMi41IDIuNSAwIDAgMSA4IDQuNWgzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25SdW5uaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25SdW5uaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDZhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNabTEuMzMuNjJBMi41IDIuNSAwIDEgMCAxMSA0LjVIOEEyLjUgMi41IDAgMCAwIDUuNSA3djEuNzVjMCAuNjkuNCAxLjI4Ljk3IDEuNTdMNS44IDExSDIuNzVhMS43NSAxLjc1IDAgMSAwIDAgMy41aDIuOTRjLjYzIDAgMS4yNS0uMiAxLjc2LS41OWwxLS43NUwxMCAxNC43MXYxLjU0YTEuNzUgMS43NSAwIDEgMCAzLjUgMFYxM2EuNS41IDAgMCAwLS4xNS0uMzVMMTEuNzEgMTFsLjc5LS44LjEuMWMuNDQuNDUgMS4wNS43IDEuNjguN2gyLjk3YTEuNzUgMS43NSAwIDEgMCAwLTMuNWgtMS41NGwtLjg4LS44OFptLTEuMDUuMzYgMS4zNyAxLjM3Yy4wOS4xLjIyLjE1LjM1LjE1aDEuNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjk3Yy0uMzcgMC0uNzItLjE1LS45OC0uNGwtLjQ1LS40NWEuNS41IDAgMCAwLS43IDBsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuODUgMS44NnYzLjA0YS43NS43NSAwIDAgMS0xLjUgMFYxNC41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjY1LS4wNWwtMS4zNSAxLjAxYy0uMzMuMjUtLjc0LjM5LTEuMTYuMzlIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVINmEuNS41IDAgMCAwIC4zNS0uMTVsMS40NC0xLjQ0QzguNSAxMC4yIDkgOS41MyA5IDguNzVWOGgxYS41LjUgMCAwIDAgMC0xSDguNWEuNS41IDAgMCAwLS41LjV2MS4yNWEuNzUuNzUgMCAwIDEtMS41IDBWN2MwLS44My42Ny0xLjUgMS41LTEuNWgzLjJhMi41IDIuNSAwIDAgMCAyLjU4IDEuNDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25TZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm00Ljg3IDE0LjhhOC41MyA4LjUzIDAgMCAxLTMuOTcgMS4xNyAxLjUgMS41IDAgMCAwLS4zNC0uNTNsLTItMkE0LjQ4IDQuNDggMCAwIDAgOC4yNCAxMUgxNWEyIDIgMCAwIDEgMiAyYzAgMS43LS44MyAyLjk3LTIuMTMgMy44Wk00LjUgMTdjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNS42QTMuNSAzLjUgMCAxIDAgNC41IDE3Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25TZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTcgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabTcuODcgMTAuOGE4LjUzIDguNTMgMCAwIDEtMy45NyAxLjE3IDEuNSAxLjUgMCAwIDAtLjM0LS41M2wtLjQ0LS40NGE4LjA3IDguMDcgMCAwIDAgNC4yLTEuMDVBMy4zNiAzLjM2IDAgMCAwIDE2IDEzYTEgMSAwIDAgMC0xLTFIOC43NGMtLjEyLS4zNi0uMy0uNy0uNS0xSDE1YTIgMiAwIDAgMSAyIDJjMCAxLjctLjgzIDIuOTctMi4xMyAzLjhaTTQuNSAxN2MuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE1LjZBMy41IDMuNSAwIDEgMCA0LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy40MSAwIC44Mi0uMDIgMS4yMS0uMDZhNS40OCA1LjQ4IDAgMCAxIC4wNS02Ljk0SDRabTYuNjQgMi45MmEyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40Ni0uMTJabTQuODYuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk02IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2QTUuNSA1LjUgMCAwIDEgOS42IDE3IDEyIDEyIDAgMCAxIDkgMTdhOC4xNiA4LjE2IDAgMCAxLTQuMzMtMS4wNUEzLjM2IDMuMzYgMCAwIDEgMyAxM2ExIDEgMCAwIDEgMS0xaDUuNmMuMTgtLjM2LjQtLjcuNjYtMUg0Wm02LjY0IDIuOTJhMiAyIDAgMCAwIDEuNDMtMi40OGwtLjE2LS41NWMuMjUtLjIuNTMtLjM3LjgyLS41bC4zNC4zNmEyIDIgMCAwIDAgMi45IDBsLjMzLS4zNWMuMy4xNC41OC4zMi44NC41MmwtLjEzLjQyYTIgMiAwIDAgMCAxLjQ2IDIuNTJsLjM1LjA5YTQuNyA0LjcgMCAwIDEgMCAxLjAxbC0uNDUuMTJhMiAyIDAgMCAwLTEuNDMgMi40OGwuMTUuNTVjLS4yNS4yLS41My4zNy0uODIuNWwtLjM0LS4zNmEyIDIgMCAwIDAtMi45IDBsLS4zMy4zNWMtLjMtLjE0LS41OC0uMzItLjg0LS41MmwuMTMtLjQyYTIgMiAwIDAgMC0xLjQ2LTIuNTJsLS4zNS0uMDlhNC43MSA0LjcxIDAgMCAxIDAtMS4wMWwuNDYtLjEyWm00Ljg2LjU4YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblNxdWFyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25TcXVhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptNy0xYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptMi41IDVoLTVjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4xMi40NiAyLjAxIDEuMjEgMi42MS43NC42IDEuNzQuODkgMi43OS44OXMyLjA1LS4yOSAyLjc5LS44OWMuNzUtLjYgMS4yMS0xLjUgMS4yMS0yLjYxIDAtLjgzLS42Ny0xLjUtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblNxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3F1YXJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA1YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptMi41IDVoLTVjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4xMi40NiAyLjAxIDEuMjEgMi42MS43NC42IDEuNzQuODkgMi43OS44OXMyLjA1LS4yOSAyLjc5LS44OWMuNzUtLjYgMS4yMS0xLjUgMS4yMS0yLjYxIDAtLjgzLS42Ny0xLjUtMS41LTEuNVpNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblNxdWFyZUFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25TcXVhcmVBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNmE1LjQ3IDUuNDcgMCAwIDEtLjU4LTIuMDljLS42OC0uMTMtMS4zLS4zOS0xLjgtLjhBMy4yNSAzLjI1IDAgMCAxIDYgMTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWgzLjg0QTUuNDcgNS40NyAwIDAgMSAxNyA5LjZWNmEzIDMgMCAwIDAtMy0zSDZabTIgNGEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBabTExIDcuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblNxdWFyZUFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3F1YXJlQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDdhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0xLjAyIDcuOTFBNS41IDUuNSAwIDAgMSAxMS4zNCAxMEg3LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4xMi40NiAyLjAxIDEuMjEgMi42MS41LjQxIDEuMTMuNjcgMS44LjhaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMy4yYy4xLjM1LjI0LjY4LjQgMUg2YTMgMyAwIDAgMS0zLTNWNlptMTYgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3F1YXJlQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblNxdWFyZUNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2My42YTUuNDggNS40OCAwIDAgMC01LjY2LjRINy41Yy0uODMgMC0xLjUuNjctMS41IDEuNSAwIDEuMTIuNDYgMi4wMSAxLjIxIDIuNjEuNS40MSAxLjEzLjY3IDEuOC44LjA2Ljc1LjI3IDEuNDUuNTkgMi4wOUg2YTMgMyAwIDAgMS0zLTNWNlptNy0xYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptOSA5LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3F1YXJlQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25TcXVhcmVDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDVhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tMSA5LjVjMCAuMTQgMCAuMjguMDIuNDEtLjY4LS4xMy0xLjMtLjM5LTEuOC0uOEEzLjI1IDMuMjUgMCAwIDEgNiAxMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDMuODRBNS41IDUuNSAwIDAgMCA5IDE0LjVaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZjLS4xNi0uMzItLjMtLjY1LS40LTFINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2My4yYy4zNS4xLjY4LjI0IDEgLjRWNmEzIDMgMCAwIDAtMy0zSDZabTEzIDExLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3RhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25TdGFyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy40MSAwIC44Mi0uMDIgMS4yMS0uMDZhNS40OCA1LjQ4IDAgMCAxIC4wNS02Ljk0SDRabTE1IDMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuMDItMi42NGEuNS41IDAgMCAwLS45NiAwbC0uNDcgMS41M0gxMmMtLjQ4IDAtLjY5LjY1LS4zLjk1bDEuMjYuOTQtLjQ4IDEuNTNjLS4xNS40OS4zOC44OS43Ny41OWwxLjI1LS45NSAxLjI1Ljk1Yy40LjMuOTItLjEuNzctLjU5bC0uNDgtMS41MyAxLjI1LS45NGMuNC0uMy4yLS45NS0uMy0uOTVoLTEuNTRsLS40Ny0xLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3RhclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3RhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNkE1LjUgNS41IDAgMCAxIDkuNiAxNyAxMiAxMiAwIDAgMSA5IDE3YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg1LjZjLjE4LS4zNi40LS43LjY2LTFINFptMTUgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC4wMi0yLjY0YS41LjUgMCAwIDAtLjk2IDBsLS40NyAxLjUzSDEyYy0uNDggMC0uNjkuNjUtLjMuOTVsMS4yNi45NC0uNDggMS41M2MtLjE1LjQ5LjM4Ljg5Ljc3LjU5bDEuMjUtLjk1IDEuMjUuOTVjLjQuMy45Mi0uMS43Ny0uNTlsLS40OC0xLjUzIDEuMjUtLjk0Yy40LS4zLjItLjk1LS4zLS45NWgtMS41NGwtLjQ3LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25TdGFyYnVyc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3RhcmJ1cnN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTguOTYgMi42N2MuNC0uOSAxLjY4LS45IDIuMDggMCAuMy42NiAxLjEzLjg5IDEuNzIuNDYuOC0uNTcgMS45LjA3IDEuOCAxLjA1LS4wNi43Mi41NCAxLjMyIDEuMjYgMS4yNS45OC0uMSAxLjYyIDEuMDEgMS4wNSAxLjgxLS40My41OS0uMiAxLjQyLjQ2IDEuNzIuOS40LjkgMS42OCAwIDIuMDgtLjY2LjMtLjg5IDEuMTMtLjQ2IDEuNzIuNTcuOC0uMDcgMS45LTEuMDUgMS44YTEuMTUgMS4xNSAwIDAgMC0xLjI1IDEuMjZjLjEuOTgtMS4wMSAxLjYyLTEuODEgMS4wNWExLjE1IDEuMTUgMCAwIDAtMS43Mi40NmMtLjQuOS0xLjY4LjktMi4wOCAwYTEuMTUgMS4xNSAwIDAgMC0xLjcyLS40NmMtLjguNTctMS45LS4wNy0xLjgtMS4wNWExLjE1IDEuMTUgMCAwIDAtMS4yNi0xLjI1Yy0uOTguMS0xLjYyLTEuMDEtMS4wNS0xLjgxLjQzLS41OS4yLTEuNDItLjQ2LTEuNzItLjktLjQtLjktMS42OCAwLTIuMDguNjYtLjMuODktMS4xMy40Ni0xLjcyLS41Ny0uOC4wNy0xLjkgMS4wNS0xLjguNzIuMDYgMS4zMi0uNTQgMS4yNS0xLjI2LS4xLS45OCAxLjAxLTEuNjIgMS44MS0xLjA1LjU5LjQzIDEuNDIuMiAxLjcyLS40NlpNMTAgNWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabTIuNSA1aC01Yy0uODMgMC0xLjUuNjctMS41IDEuNSAwIDEuMTEuNDUgMiAxLjIgMi42MS43NS42IDEuNzQuODkgMi44Ljg5IDEuMDUgMCAyLjA0LS4zIDIuNzgtLjg5Ljc2LS42IDEuMjItMS41IDEuMjItMi42MSAwLS44My0uNjgtMS41LTEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25TdGFyYnVyc3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblN0YXJidXJzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCA3YTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFptLS41IDNoNWMuODIgMCAxLjUuNjcgMS41IDEuNSAwIDEuMTEtLjQ2IDItMS4yMiAyLjYxLS43NC42LTEuNzMuODktMi43OC44OWE0LjQzIDQuNDMgMCAwIDEtMi44LS44OUEzLjI1IDMuMjUgMCAwIDEgNiAxMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41Wm0zLjk0LTcuMDdhMS41NyAxLjU3IDAgMCAwLTIuODggMCAuNTcuNTcgMCAwIDEtLjg1LjIzIDEuNTcgMS41NyAwIDAgMC0yLjQ5IDEuNDMuNTcuNTcgMCAwIDEtLjYzLjYzIDEuNTcgMS41NyAwIDAgMC0xLjQzIDIuNDljLjIuMy4xLjctLjIzLjg1YTEuNTcgMS41NyAwIDAgMCAwIDIuODhjLjMzLjE0LjQ0LjU2LjIzLjg1YTEuNTcgMS41NyAwIDAgMCAxLjQzIDIuNDljLjM2LS4wNC42Ny4yNy42My42M2ExLjU3IDEuNTcgMCAwIDAgMi40OSAxLjQzYy4zLS4yLjctLjEuODUuMjNhMS41NyAxLjU3IDAgMCAwIDIuODggMCAuNTcuNTcgMCAwIDEgLjg1LS4yM2MxLjEuOCAyLjYyLS4wOCAyLjQ5LTEuNDNhLjU3LjU3IDAgMCAxIC42My0uNjMgMS41NyAxLjU3IDAgMCAwIDEuNDMtMi40OS41Ny41NyAwIDAgMSAuMjMtLjg1IDEuNTcgMS41NyAwIDAgMCAwLTIuODguNTcuNTcgMCAwIDEtLjIzLS44NSAxLjU3IDEuNTcgMCAwIDAtMS40My0yLjQ5LjU3LjU3IDAgMCAxLS42My0uNjMgMS41NyAxLjU3IDAgMCAwLTIuNDktMS40M2MtLjMuMi0uNy4xLS44NS0uMjNabS0xLjk2LjRhLjU3LjU3IDAgMCAxIDEuMDQgMGMuNDEuOTEgMS41NSAxLjIyIDIuMzYuNjQuNC0uMjkuOTUuMDMuOS41Mi0uMSAxIC43NCAxLjgyIDEuNzMgMS43My40OS0uMDUuODEuNS41Mi45LS41OC44MS0uMjcgMS45NS42MyAyLjM2LjQ1LjIuNDUuODQgMCAxLjA0YTEuNTcgMS41NyAwIDAgMC0uNjMgMi4zNmMuMjkuNC0uMDMuOTUtLjUyLjktMS0uMS0xLjgyLjc0LTEuNzMgMS43My4wNS40OS0uNS44MS0uOS41MmExLjU3IDEuNTcgMCAwIDAtMi4zNi42My41Ny41NyAwIDAgMS0xLjA0IDAgMS41NyAxLjU3IDAgMCAwLTIuMzYtLjYzLjU3LjU3IDAgMCAxLS45LS41MmMuMS0xLS43NC0xLjgyLTEuNzMtMS43M2EuNTcuNTcgMCAwIDEtLjUyLS45Yy41OC0uODEuMjctMS45NS0uNjMtMi4zNmEuNTcuNTcgMCAwIDEgMC0xLjA0Yy45LS40MSAxLjItMS41NS42My0yLjM2YS41Ny41NyAwIDAgMSAuNTItLjljMSAuMSAxLjgyLS43NCAxLjczLTEuNzMtLjA1LS40OS41LS44MS45LS41Mi44MS41OCAxLjk1LjI3IDIuMzYtLjYzWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3VidHJhY3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3VidHJhY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44YTkuMTQgOS4xNCAwIDAgMCA1LjEzIDEuMiA1LjQ4IDUuNDggMCAwIDEgMC03SDVabTE0IDMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTcgMGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblN1YnRyYWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25TdWJ0cmFjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTcgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44YTkuMTQgOS4xNCAwIDAgMCA1LjEzIDEuMiA1LjUgNS41IDAgMCAxLS42Ni0xIDcuODcgNy44NyAwIDAgMS0zLjkzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDQgMTNhMSAxIDAgMCAxIDEtMWg0LjZjLjE4LS4zNi40LS43LjY2LTFINVptMTQgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNyAwYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3VwcG9ydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25TdXBwb3J0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE0LjVhMiAyIDAgMCAxLTItMS44NCA2IDYgMCAxIDEgNy45OC02LjE2Yy4wMi4yOC0uMi41LS40OC41YS41NC41NCAwIDAgMS0uNTItLjUgNSA1IDAgMSAwLTYuOCA1LjE2QTIgMiAwIDEgMSAxMCAxNC41Wk01IDEyaC4xYTcuMDEgNy4wMSAwIDAgMCAyLjAzIDEuMzlBMyAzIDAgMCAwIDEyLjk2IDEySDE1YTIgMiAwIDAgMSAyIDJjMCAxLjctLjgzIDIuOTctMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAxIDEwIDE5YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMyAxNGEyIDIgMCAwIDEgMi0yWm05LTVhNCA0IDAgMCAxLTEuODcgMy4zOSAzIDMgMCAwIDAtNC4yNiAwQTQuMDEgNC4wMSAwIDAgMSA2IDdhNCA0IDAgMSAxIDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblN1cHBvcnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblN1cHBvcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDE0LjVhMiAyIDAgMCAxLTItMS44NCA2IDYgMCAxIDEgNy45OC02LjE2Yy4wMi4yOC0uMi41LS40OC41YS41NC41NCAwIDAgMS0uNTItLjUgNSA1IDAgMSAwLTYuOCA1LjE2QTIgMiAwIDEgMSAxMCAxNC41Wk01IDEyaC4xYy4zOS4zOC44Mi43MiAxLjMgMUg1YTEgMSAwIDAgMC0xIDFjMCAxLjMuNjIgMi4yOCAxLjY3IDIuOTVBOC4xNiA4LjE2IDAgMCAwIDEwIDE4YzEuNzQgMCAzLjI2LS4zNiA0LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAwIDE2IDE0YTEgMSAwIDAgMC0xLTFoLTIuMDRhMy4wMiAzLjAyIDAgMCAwIDAtMUgxNWEyIDIgMCAwIDEgMiAyYzAgMS43LS44MyAyLjk3LTIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMSAxMCAxOWE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDMgMTRhMiAyIDAgMCAxIDItMlptOS01YTQgNCAwIDAgMS0xLjg3IDMuMzkgMyAzIDAgMCAwLS45My0uNjQgMyAzIDAgMSAwLTIuNCAwIDMgMyAwIDAgMC0uOTMuNjRBNC4wMSA0LjAxIDAgMCAxIDYgN2E0IDQgMCAxIDEgOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3dhcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25Td2FwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy4yOSAwIC41NyAwIC44NS0uMDNsLTEuNDEtMS40YTEuNSAxLjUgMCAwIDEgMC0yLjEzbDItMkExLjUgMS41IDAgMCAxIDEyLjkgMTRoMS4xOGExLjUgMS41IDAgMCAxIDEuNjUtMS45OEEyIDIgMCAwIDAgMTQgMTFINFptNy44NSA2Ljg1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJhLjUuNSAwIDAgMSAuNy43TDEwLjcxIDE1aDUuNThsLTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxNi4yOSAxNmgtNS41OGwxLjE0IDEuMTVjLjIuMi4yLjUgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblN3YXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblN3YXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTYgNmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabS0yIDVhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4Yy4yOSAwIC41NyAwIC44NS0uMDNMOC44OCAxN2E4LjA3IDguMDcgMCAwIDEtNC4yLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgLjY3LjI1Yy4zMi0uMjEuNy0uMyAxLjA3LS4yM0EyIDIgMCAwIDAgMTQgMTFINFptNy44NSA2Ljg1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJhLjUuNSAwIDAgMSAuNy43TDEwLjcxIDE1aDUuNThsLTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxNi4yOSAxNmgtNS41OGwxLjE0IDEuMTVjLjIuMi4yLjUgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblN5bmNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wm0tNSA5YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuNDEgMCAuODItLjAyIDEuMjEtLjA2YTUuNDggNS40OCAwIDAgMSAuMDUtNi45NEg0Wm02IDMuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uU3luY1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOSAyYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpNNiA2YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptLTIgNWEyIDIgMCAwIDAtMiAyYzAgMS43LjgzIDIuOTcgMi4xMyAzLjhBOS4xNCA5LjE0IDAgMCAwIDkgMThjLjQxIDAgLjgyLS4wMiAxLjIxLS4wNkE1LjUgNS41IDAgMCAxIDkuNiAxNyAxMiAxMiAwIDAgMSA5IDE3YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg1LjZjLjE4LS4zNi40LS43LjY2LTFINFptNiAzLjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblRhZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25UYWdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA2YTQgNCAwIDEgMSA2LjY1IDNoLS4xNGMtLjggMC0xLjUyLjM4LTEuOTguOTZBNCA0IDAgMCAxIDUgNlptNC4wNSA1SDQuMDFBMiAyIDAgMCAwIDIgMTNjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuOCAwIDEuNTgtLjA3IDIuMzEtLjIybC0xLjYtMS42M0EyLjUyIDIuNTIgMCAwIDEgOSAxNC40di0yLjg3YzAtLjE4LjAyLS4zNS4wNS0uNTJabS45NSAzLjRjMCAuMzkuMTUuNzcuNDMgMS4wNWwzLjA0IDMuMWMuNTguNTkgMS41Mi42IDIuMTIuMDNsMi45NS0yLjg0Yy42LS41OC42Mi0xLjU1LjAyLTIuMTVsLTMuMS0zLjE0YTEuNSAxLjUgMCAwIDAtMS4wOC0uNDVoLTIuODdjLS44MyAwLTEuNTEuNjgtMS41MSAxLjUxdjIuODhabTIuNzUtLjlhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uVGFnUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25UYWdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNmE0IDQgMCAxIDEgNi42NSAzaC0uMTRjLS44IDAtMS41Mi4zOC0xLjk4Ljk2QTQgNCAwIDAgMSA1IDZabTQtM2EzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZabS4wNSA4SDQuMDFBMiAyIDAgMCAwIDIgMTNjMCAxLjcuODMgMi45NyAyLjE0IDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMuOCAwIDEuNTgtLjA3IDIuMzEtLjIybC0uODUtLjg3Yy0uNDcuMDYtLjk1LjA5LTEuNDYuMDlhOC4xNiA4LjE2IDAgMCAxLTQuMzMtMS4wNUEzLjM2IDMuMzYgMCAwIDEgMyAxM2ExIDEgMCAwIDEgMS0xaDV2LS40OGMwLS4xOC4wMi0uMzUuMDUtLjUyWm0uOTUgMy40YzAgLjM5LjE1Ljc3LjQzIDEuMDVsMy4wNCAzLjFjLjU4LjU5IDEuNTIuNiAyLjEyLjAzbDIuOTUtMi44NGMuNi0uNTguNjItMS41NS4wMi0yLjE1bC0zLjEtMy4xNGExLjUgMS41IDAgMCAwLTEuMDgtLjQ1aC0yLjg3Yy0uODMgMC0xLjUxLjY4LTEuNTEgMS41MXYyLjg4Wm0yLjc1LS45YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblRlbnRhdGl2ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25UZW50YXRpdmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptLTMgN2EyIDIgMCAwIDEgMi0yaDYuMjZhNS40OCA1LjQ4IDAgMCAwLS4wNSA2Ljk0Yy0uNC4wNC0uOC4wNi0xLjIxLjA2YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMiAxM1ptMTIuNS0zaC4yOGwtNC43NyA0Ljc4LS4wMS0uMjhhNC41IDQuNSAwIDAgMSA0LjUtNC41Wm0tMy41MiA3LjNhNC41IDQuNSAwIDAgMS0uNzQtMS4zNGw1LjYxLTUuNmEuNS41IDAgMCAwIC4xLS4xMmMuNS4xNy45NS40MiAxLjM2Ljc0bC02LjMzIDYuMzNabTcuNzgtNC4yNmMtLjE3LS41LS40My0uOTUtLjc0LTEuMzVsLTYuMzMgNi4zM2MuNC4zMi44Ny41NyAxLjM3Ljc0YS41LjUgMCAwIDEgLjA5LS4xMWw1LjYtNS42MVptLTQuNTQgNS45NS4yOC4wMWE0LjUgNC41IDAgMCAwIDQuNS00Ljc4bC00Ljc4IDQuNzdaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25UZW50YXRpdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BlcnNvblRlbnRhdGl2ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptNC0zYTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlpNMiAxM2EyIDIgMCAwIDEgMi0yaDYuMjZjLS4yNi4zLS40OC42NC0uNjYgMUg0YTEgMSAwIDAgMC0xIDFjMCAxLjMuNjIgMi4yOCAxLjY3IDIuOTVBOC4xNiA4LjE2IDAgMCAwIDkgMTdsLjYtLjAxYy4xNy4zNC4zNy42Ni42MS45NS0uNC4wNC0uOC4wNi0xLjIxLjA2YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMiAxM1ptMTIuNS0zaC4yOGwtNC43NyA0Ljc4LS4wMS0uMjhhNC41IDQuNSAwIDAgMSA0LjUtNC41Wm0tMy41MiA3LjNhNC41IDQuNSAwIDAgMS0uNzQtMS4zNGw1LjYxLTUuNmEuNS41IDAgMCAwIC4xLS4xMmMuNS4xNy45NS40MiAxLjM2Ljc0bC02LjMzIDYuMzNabTcuNzgtNC4yNmMtLjE3LS41LS40My0uOTUtLjc0LTEuMzVsLTYuMzMgNi4zM2MuNC4zMi44Ny41NyAxLjM3Ljc0YS41LjUgMCAwIDEgLjA5LS4xMWw1LjYtNS42MVptLTQuNTQgNS45NS4yOC4wMWE0LjUgNC41IDAgMCAwIDQuNS00Ljc4bC00Ljc4IDQuNzdaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25Wb2ljZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25Wb2ljZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy4xMyAxLjA2YS41LjUgMCAwIDEgLjY4LjIgOS45NiA5Ljk2IDAgMCAxIDAgOS40OC41LjUgMCAxIDEtLjg4LS40OCA4Ljk2IDguOTYgMCAwIDAgMC04LjUyLjUuNSAwIDAgMSAuMi0uNjhabS0yLjMyIDEuOTdhLjUuNSAwIDAgMSAuNjUuMjcgNi45OCA2Ljk4IDAgMCAxIDAgNS40LjUuNSAwIDEgMS0uOTItLjM5IDUuOTggNS45OCAwIDAgMCAwLTQuNjIuNS41IDAgMCAxIC4yNy0uNjZaTTUgNmE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabS0zIDdhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAyYzAgMS43LS44MyAyLjk3LTIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMSA5IDE4YTkuMTQgOS4xNCAwIDAgMS00Ljg3LTEuMkE0LjM1IDQuMzUgMCAwIDEgMiAxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvblZvaWNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25Wb2ljZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTMgMS4wNmEuNS41IDAgMCAxIC42OC4yIDkuOTYgOS45NiAwIDAgMSAwIDkuNDguNS41IDAgMSAxLS44OC0uNDggOC45NiA4Ljk2IDAgMCAwIDAtOC41Mi41LjUgMCAwIDEgLjItLjY4Wm0tMi4zMiAxLjk3YS41LjUgMCAwIDEgLjY1LjI3IDYuOTggNi45OCAwIDAgMSAwIDUuNC41LjUgMCAxIDEtLjkyLS4zOSA1Ljk4IDUuOTggMCAwIDAgMC00LjYyLjUuNSAwIDAgMSAuMjctLjY2Wk01IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm00LTNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02Wk0yIDEzYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMmMwIDEuNy0uODMgMi45Ny0yLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDEgOSAxOGE5LjE0IDkuMTQgMCAwIDEtNC44Ny0xLjJBNC4zNSA0LjM1IDAgMCAxIDIgMTNabTItMWExIDEgMCAwIDAtMSAxYzAgMS4zLjYyIDIuMjggMS42NyAyLjk1QTguMTYgOC4xNiAwIDAgMCA5IDE3YzEuNzQgMCAzLjI2LS4zNiA0LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAwIDE1IDEzYTEgMSAwIDAgMC0xLTFINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbldhbGtpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uV2Fsa2luZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSA2YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptLTIuNTIuMThjLjI2LS4wNS41Mi4wNy43My4yM2EyLjk5IDIuOTkgMCAwIDAgMi43LjQ1Ljk1Ljk1IDAgMCAxIC41Mi0uMDVjLjQ2LjExLjg5LjM3IDEuMi43NWwxLjI2IDEuNWEuNS41IDAgMCAwIC4yMy4xNmwxLjAyLjM0YTEuMjUgMS4yNSAwIDAgMS0uNzggMi4zN2wtMS41LS41Yy0uMjItLjA3LS40Mi0uMi0uNTctLjM4bC0uNDktLjU5YS41LjUgMCAwIDAtLjg2LjE3bC0uMTUuNDRhLjUuNSAwIDAgMCAuMDYuNDRsMS4wNSAxLjZjLjIuMy4zMy42Ni4zNyAxLjAzbC4yMiAyLjVhMS4yNSAxLjI1IDAgMSAxLTIuNDkuMjJsLS4yLTIuM2EuNS41IDAgMCAwLS4wOS0uMjRsLS43Mi0xLjFhLjUuNSAwIDAgMC0uODguMDhMNy40IDE3LjI1YTEuMjUgMS4yNSAwIDEgMS0yLjMtMUw3Ljk2IDkuN2EuNS41IDAgMCAwLS41OC0uNjlsLS4xMi4wM2EuMjUuMjUgMCAwIDAtLjE3LjE1bC0uNSAxLjEzLS4wMS4wMy0uNDUuOTRhMS4yNSAxLjI1IDAgMCAxLTIuMjYtMS4wOGwuNDQtLjkyLjUtMS4xMmEyLjc1IDIuNzUgMCAwIDEgMS44Ny0xLjU2bDEuNzMtLjRjLjAyLS4wMi4wNS0uMDIuMDctLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uV2Fsa2luZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uV2Fsa2luZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSAzYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWk05IDQuNWEyLjUgMi41IDAgMSAxIDQuMDQgMS45N2MuNDkuMi45MS41NSAxLjIxIDFsLjUzLjggMS40OSAxLjA2YTEuNzUgMS43NSAwIDEgMS0yLjA0IDIuODRsLTEuNzUtMS4yNWExLjY3IDEuNjcgMCAwIDEtLjA5LS4wNmwtLjAxLjA0Ljk0IDEuNDNjLjI1LjM3LjQuODEuNDUgMS4yNmwuMjIgMi41YTEuNzUgMS43NSAwIDAgMS0zLjQ4LjMybC0uMjEtMi4zMS0uNS0uNzUtMS40MyAzLjU1YTEuNzUgMS43NSAwIDAgMS0zLjI0LTEuM2wxLjM0LTMuMzVhMS43NSAxLjc1IDAgMCAxLTEuNy0yLjRsMS4xLTIuNzVjLjIxLS41Mi42Ni0uOTEgMS4yLTEuMDVsMS41NS0uMzhjLjItLjA1LjQyLS4wOC42My0uMDgtLjE2LS4zMy0uMjUtLjctLjI1LTEuMVptLjMyIDIuMDItMiAuNWEuNzUuNzUgMCAwIDAtLjUyLjQ1bC0xLjEgMi43NWEuNzUuNzUgMCAxIDAgMS40LjU2bC44Ni0yLjE2YS40OS40OSAwIDEgMSAuOS4zNmwtMi44IDYuOTlhLjc1Ljc1IDAgMSAwIDEuMzkuNTZsMS40Mi0zLjU1YTEgMSAwIDAgMSAxLjc3LS4xOGwuNi45LjA0LjEyLjIyIDIuNWEuNzUuNzUgMCAwIDAgMS41LS4xNGwtLjIzLTIuNWExLjc1IDEuNzUgMCAwIDAtLjI4LS44bC0uOTMtMS40YTEgMSAwIDAgMS0uMS0uOWwuMzgtMS4wMWEuNDIuNDIgMCAwIDEgLjc0LS4wOWwuMy40NGMuMDUuMDcuMS4xNC4xOC4xOWwxLjc1IDEuMjVhLjc1Ljc1IDAgMSAwIC44OC0xLjIybC0xLjUtMS4wNmExIDEgMCAwIDEtLjI0LS4yNmwtLjgzLTEuMjRhLjc1Ljc1IDAgMCAwLS40NC0uM2wtMy0uNzZhLjc1Ljc1IDAgMCAwLS4zNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGVyc29uV2FybmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25XYXJuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS01IDlhMiAyIDAgMCAwLTIgMmMwIDEuNy44MyAyLjk3IDIuMTMgMy44QTkuMTQgOS4xNCAwIDAgMCA5IDE4YzAtLjMuMDctLjYuMjItLjlsMy4wNS02LjFINFptOS42LS40NS0zLjUgN0ExIDEgMCAwIDAgMTEgMTloN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNSAxMi41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25XYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQZXJzb25XYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDJhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04Wk02IDZhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0tMiA1YTIgMiAwIDAgMC0yIDJjMCAxLjcuODMgMi45NyAyLjEzIDMuOEE5LjE0IDkuMTQgMCAwIDAgOSAxOGMwLS4zLjA3LS42LjIyLS45bC4wNS0uMUg5YTguMTYgOC4xNiAwIDAgMS00LjMzLTEuMDVBMy4zNiAzLjM2IDAgMCAxIDMgMTNhMSAxIDAgMCAxIDEtMWg3Ljc3bC41LTFINFptOS42LS40NS0zLjUgN0ExIDEgMCAwIDAgMTEgMTloN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNSAxMi41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQZXJzb25XcmVuY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uV3JlbmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNmE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTUuMjMgNUg1QTIgMiAwIDAgMCAzIDEzYzAgMS43LjgzIDIuOTcgMi4xMyAzLjguODIuNTEgMS44Ljg2IDIuOSAxLjA0YTIuNSAyLjUgMCAwIDEgLjctMi4xMmwyLjMyLTIuMzJjLS4xNi0uOC0uMS0xLjYzLjE4LTIuNFptNC42Ni0xLjk4Yy4zNy4wNS40Ny40OC4yMS43NWwtLjk3Ljk3YTEuNSAxLjUgMCAxIDAgMi4xMyAyLjEzbC45Ny0uOTdjLjI3LS4yNi43LS4xNi43NS4yYTMuNTEgMy41MSAwIDAgMS00LjY4IDMuNzNsLTIuNzMgMi43M2ExLjUgMS41IDAgMSAxLTIuMTMtMi4xM2wyLjczLTIuNzNhMy41MiAzLjUyIDAgMCAxIDMuNzItNC42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBlcnNvbldyZW5jaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGVyc29uV3JlbmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm01LjIzIDVINUEyIDIgMCAwIDAgMyAxM2MwIDEuNy44MyAyLjk3IDIuMTMgMy44LjgyLjUxIDEuOC44NiAyLjkgMS4wNC0uMDUtLjMzLS4wMy0uNjcuMDYtMWE2LjcxIDYuNzEgMCAwIDEtMi40Mi0uODlBMy4zNiAzLjM2IDAgMCAxIDQgMTNhMSAxIDAgMCAxIDEtMWg2Yy4wMy0uMzQuMTEtLjY3LjIzLTFaTTEwIDNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02Wm01LjkgNi4wMmMuMzYuMDUuNDYuNDguMi43NWwtLjk3Ljk3YTEuNSAxLjUgMCAxIDAgMi4xMyAyLjEzbC45Ny0uOTdjLjI3LS4yNi43LS4xNi43NS4yYTMuNTEgMy41MSAwIDAgMS00LjY4IDMuNzNsLTIuNzMgMi43M2ExLjUgMS41IDAgMSAxLTIuMTMtMi4xM2wyLjczLTIuNzNhMy41MiAzLjUyIDAgMCAxIDMuNzItNC42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAyQzUuNjcgMiA1IDIuNjcgNSAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEzYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNOSAxNGgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMTRhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg5Wk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1pNNiA0YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNzZhNS40NyA1LjQ3IDAgMCAxLTEuMjQtM0g3LjVhLjUuNSAwIDAgMSAwLTFoMS41MkE1LjUgNS41IDAgMCAxIDE0IDkuMDJWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCAzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djUuNTJjLS4zNC4wMy0uNjguMS0xIC4xOVYzLjVhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwLS41LjV2MTNjMCAuMjguMjIuNS41LjVoNC4xYy4xOC4zNi40LjcuNjYgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEzWk05LjAyIDE0YTUuNTcgNS41NyAwIDAgMCAwIDFINy41YS41LjUgMCAwIDEgMC0xaDEuNTJabTkuOTguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djUuNTJBNS41IDUuNSAwIDAgMCA5LjAyIDE0SDcuNWEuNS41IDAgMCAwIDAgMWgxLjUyYy4xIDEuMTMuNTUgMi4xNyAxLjI0IDNINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xM1pNMTQuNSAxMGE0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptMi4zNSA0Ljg1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljc2YTUuNSA1LjUgMCAwIDEtLjY2LTFINS41YS41LjUgMCAwIDEtLjUtLjV2LTEzYzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2NS43Yy4zMi0uMDguNjYtLjE1IDEtLjE4VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdaTTkgMTQuNWMwLS4xNyAwLS4zNC4wMi0uNUg3LjVhLjUuNSAwIDAgMCAwIDFoMS41MmE1LjU3IDUuNTcgMCAwIDEtLjAyLS41Wm01LjUtNC41YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lQ2hhdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUNoYXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi41IDJDNS42NyAyIDUgMi42NyA1IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWgyLjYybC4zNy0xLjIzQTUuNDggNS40OCAwIDAgMSAxNSA5LjAyVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTggMTdhNC41IDQuNSAwIDEgMC0zLjk0LTIuMzJsLS41NCAxLjhjLS4xLjMuMi42LjUuNWwxLjgtLjU0Yy42NC4zNiAxLjM5LjU2IDIuMTguNTZaTTEyIDEzLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAxIDAtMWgyYS41LjUgMCAwIDEgMCAxaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVDaGF0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUNoYXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNDIgMTdIN2ExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2NS4wMmE1LjU3IDUuNTcgMCAwIDEgMSAwVjRhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgyLjEybC4zLTFabTUuMDggMmE0LjUgNC41IDAgMSAwLTMuOTQtMi4zMmwtLjU0IDEuOGMtLjEuMy4yLjYuNS41bDEuOC0uNTRjLjY0LjM2IDEuMzkuNTYgMi4xOC41NlpNMTIgMTMuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAwIDFoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUNoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDEyLjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43Wk02LjUgMmgyLjc2QTUuNSA1LjUgMCAwIDAgMTUgMTAuOHY1LjdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNi41di0xM0M1IDIuNjcgNS42NyAyIDYuNSAyWk04IDE0LjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMMTIuNSA2LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaTTkuMjUgMkg2LjVDNS42NyAyIDUgMi42NyA1IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNS43Yy0uMzIuMDgtLjY2LjE1LTEgLjE4djUuNTJhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTEzYzAtLjI4LjIyLS41LjUtLjVoMi4xYy4xOC0uMzYuNC0uNy42Ni0xWk04IDE0LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURlc2t0b3BGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVEZXNrdG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjNoMi41QTIuNSAyLjUgMCAwIDEgOSA5LjVWMTNoM3YySDl2MWg1LjVhLjUuNSAwIDAgMCAwLTFIMTN2LTJoM2EyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wk0zLjUgOEMyLjY3IDggMiA4LjY3IDIgOS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdDOCA4LjY3IDcuMzMgOCA2LjUgOGgtM1ptLjUgNy41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2gxMGExIDEgMCAwIDEgMSAxdjdhMSAxIDAgMCAxLTEgMUg5djFoM3YySDl2MWg1LjVhLjUuNSAwIDAgMCAwLTFIMTN2LTJoM2EyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2M2gxVjRhMSAxIDAgMCAxIDEtMVpNNC41IDE1YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaTTIgOS41QzIgOC42NyAyLjY3IDggMy41IDhoM0M3LjMzIDggOCA4LjY3IDggOS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zQTEuNSAxLjUgMCAwIDEgMiAxNi41di03Wk0zLjUgOWEuNS41IDAgMCAwLS41LjV2N2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRGVza3RvcEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3BBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0tLjUgNy41YzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNlYxMWEyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxSDl2LTFoM3YtMkg5VjkuNUEyLjUgMi41IDAgMCAwIDYuNSA3SDRWNGMwLTEuMS45LTIgMi0yaDQuMjZhNS41IDUuNSAwIDAgMCA0LjI0IDlabS0xMS0zQzIuNjcgOCAyIDguNjcgMiA5LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN0M4IDguNjcgNy4zMyA4IDYuNSA4aC0zWm0uNSA3LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURlc2t0b3BBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRGVza3RvcEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0yIDcuNXYtLjZjLjM2LS4xOC43LS40IDEtLjY2VjExYTIgMiAwIDAgMS0yIDJoLTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFIOXYtMWgzdi0ySDl2LTFoN2ExIDEgMCAwIDAgMS0xWm0tNi43NC05Yy0uMjYuMy0uNDguNjQtLjY2IDFINmExIDEgMCAwIDAtMSAxdjNINFY0YzAtMS4xLjktMiAyLTJoNC4yNlpNNCAxNS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm0tMi02QzIgOC42NyAyLjY3IDggMy41IDhoM0M3LjMzIDggOCA4LjY3IDggOS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zQTEuNSAxLjUgMCAwIDEgMiAxNi41di03Wk0zLjUgOWEuNS41IDAgMCAwLS41LjV2N2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljc2YTUuNDcgNS40NyAwIDAgMS0xLjI0LTNINy41YS41LjUgMCAwIDEgMC0xaDEuNTJBNS41IDUuNSAwIDAgMSAxNCA5LjAyVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTkgMTdhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43bC0xLjE0IDEuMTUgMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS4xNS0xLjE0LTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNS0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTQgMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoNC43NmE1LjUgNS41IDAgMCAxLS42Ni0xSDUuNWEuNS41IDAgMCAxLS41LS41di0xM2MwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djUuN2MuMzItLjA4LjY2LS4xNSAxLS4xOFYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03Wk05IDE0LjVjMC0uMTcgMC0uMzQuMDItLjVINy41YS41LjUgMCAwIDAgMCAxaDEuNTJhNS41NyA1LjU3IDAgMCAxLS4wMi0uNVptMTAgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wibTE1LjggMS41NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0Wm0tNS41MyA0LjEyIDMuNjItMy42MkExLjUgMS41IDAgMCAwIDEzLjUgMmgtN0M1LjY3IDIgNSAyLjY3IDUgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41VjkuMDZsLS42Ny42N2MtLjQuNC0uOTIuNy0xLjQ4Ljg0bC0xLjUuMzdhMS44OSAxLjg5IDAgMCAxLTIuMy0yLjI5bC4zOC0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OFpNOSAxNGgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTUuOCAxLjU1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaTTEyLjk1IDNsLjg0LS44NEEyIDIgMCAwIDAgMTMgMkg3YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWOS4wNmwtLjY3LjY3Yy0uMS4xLS4yMS4yLS4zMy4yOVYxNmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNS45NFpNOSAxNGEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUVyYXNlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUVyYXNlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41OCAxLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDEuODYgMS44NmExLjUgMS41IDAgMCAxIDAgMi4xMmwtNS4xNCA1LjE0YTEuNSAxLjUgMCAwIDEtMi4xMiAwTDkuNDQgOC43YTEuNSAxLjUgMCAwIDEgMC0yLjEybDUuMTQtNS4xNFptLTQuNDMgNS44NGEuNS41IDAgMCAwIDAgLjcxTDEyIDkuODVjLjIuMi41MS4yLjcgMGwxLjMtMS4yOUwxMS40NCA2bC0xLjMgMS4zWk0xMi42IDJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTUuMTFhMi41IDIuNSAwIDAgMS0zLjQtLjEyTDguNzIgOS40YTIuNSAyLjUgMCAwIDEgMC0zLjU0TDEyLjYgMlptLTIuMSAxMi41YS41LjUgMCAwIDEtLjUuNUg4YS41LjUgMCAwIDEgMC0xaDJjLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVFcmFzZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRXJhc2VyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41OCAxLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDEuODYgMS44NmExLjUgMS41IDAgMCAxIDAgMi4xMmwtNS4xNCA1LjE0YTEuNSAxLjUgMCAwIDEtMi4xMiAwTDkuNDQgOC43YTEuNSAxLjUgMCAwIDEgMC0yLjEybDUuMTQtNS4xNFptLTQuNDMgNS44NGEuNS41IDAgMCAwIDAgLjcxTDEyIDkuODVjLjIuMi41MS4yLjcgMGwxLjMtMS4yOUwxMS40NCA2bC0xLjMgMS4zWm0yLjM4LTUuMkEyIDIgMCAwIDAgMTIgMkg2YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTQuNjFjLS4zLjI2LS42NC40My0xIC41M1YxNmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNS42bC45My0uOTNaTTcuNSAxNC41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg4YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUZvb3RlckFycm93RG93bkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUZvb3RlckFycm93RG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1ptMCAxMy41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm01LjM1LTMuNjUtMiAyQS41LjUgMCAwIDEgMTAgMTRhLjUuNSAwIDAgMS0uMzUtLjE1bC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTRWOS41YS41LjUgMCAwIDEgMSAwdjIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVGb290ZXJBcnJvd0Rvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRm9vdGVyQXJyb3dEb3duUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDE1LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVaTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFIN1ptNS4zNSA4Ljg1LTIgMkEuNS41IDAgMCAxIDEwIDE0YS41LjUgMCAwIDEtLjM1LS4xNWwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0VjkuNWEuNS41IDAgMCAxIDEgMHYyLjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lSGVhZGVyQXJyb3dVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUhlYWRlckFycm93VXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDdabTAgMi41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm01LjM1IDMuNjVhLjUuNSAwIDAgMS0uNy43TDEwLjUgNy43MXYyLjc5YS41LjUgMCAwIDEtMSAwVjcuN0w4LjM1IDguODZhLjUuNSAwIDEgMS0uNy0uN2wyLTJBLjUuNSAwIDAgMSAxMCA2YS41LjUgMCAwIDEgLjM1LjE0bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lSGVhZGVyQXJyb3dVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVIZWFkZXJBcnJvd1VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDQuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpNNSA0YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjRabTItMWExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg3Wm01LjM1IDUuMTUtMi0yQS41LjUgMCAwIDAgMTAgNmEuNS41IDAgMCAwLS4zNS4xNWwtMiAyYS41LjUgMCAxIDAgLjcuN0w5LjUgNy43MXYyLjc5YS41LjUgMCAwIDAgMSAwVjcuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lS2V5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lS2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAyQzUuNjcgMiA1IDIuNjcgNSAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYtMWMwLS40MS4xNi0uNzguNDQtMS4wNmwuOTQtLjk0SDlhLjUuNSAwIDAgMSAwLTFoMmMuMSAwIC4yLjAzLjI5LjFsLjczLS43NGEzLjcyIDMuNzIgMCAwIDEgLjMxLTEuOThBNC4xIDQuMSAwIDAgMSAxNSA5LjEzVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTQgMTdhLjQ4LjQ4IDAgMCAxLS4zNS0uMTUuNDguNDggMCAwIDEtLjE1LS4zNVYxN2MwLS4xNC4wNS0uMjUuMTUtLjM1bDIuOTQtMi45NGEzLjc0IDMuNzQgMCAwIDEtLjA5LS43N2MwLS40LjA4LS43OS4yNC0xLjE0YTMuMSAzLjEgMCAwIDEgMS42MS0xLjU3IDIuOTQgMi45NCAwIDAgMSAzLjI3LjY0QTMgMyAwIDAgMSAxNSAxNS44NFYxNi41MmEuNjUuNjUgMCAwIDEtLjA4LjI0LjUuNSAwIDAgMS0uMTUuMTcuNDYuNDYgMCAwIDEtLjI3LjA3SDE0YzAgLjI0IDAgLjQzLS4wMi41NmEuNDYuNDYgMCAwIDEtLjExLjMuNDcuNDcgMCAwIDEtLjMuMTJMMTMgMTh2LjI3YzAgLjA4IDAgLjE3LS4wMi4yNWEuODYuODYgMCAwIDEtLjA2LjI0LjM3LjM3IDAgMCAxLS4xNS4xNy41Ny41NyAwIDAgMS0uMjcuMDdoLTJabTctNi43NWMwLS4yLS4wNy0uMzktLjIyLS41M2EuNzIuNzIgMCAwIDAtLjUzLS4yMmMtLjIgMC0uMzkuMDctLjUzLjIyYS43Mi43MiAwIDAgMC0uMjIuNTNjMCAuMi4wNy4zOS4yMi41My4xNC4xNS4zMi4yMi41My4yMi4yIDAgLjM5LS4wNy41My0uMjJhLjcyLjcyIDAgMCAwIC4yMi0uNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUtleVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVLZXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMnYtMUg3YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY1LjU0YTMuOTcgMy45NyAwIDAgMSAxLS40VjRhMiAyIDAgMCAwLTItMkg3Wm0zLjM4IDEzIC45MS0uOUEuNS41IDAgMCAwIDExIDE0SDlhLjUuNSAwIDAgMCAwIDFoMS4zOFptLjEyIDRhLjQ4LjQ4IDAgMCAxLS4zNS0uMTUuNDguNDggMCAwIDEtLjE1LS4zNVYxN2MwLS4xNC4wNS0uMjUuMTUtLjM1bDIuOTQtMi45NGEzLjc0IDMuNzQgMCAwIDEtLjA5LS43N2MwLS40LjA4LS43OS4yNC0xLjE0YTMuMSAzLjEgMCAwIDEgMS42MS0xLjU3IDIuOTQgMi45NCAwIDAgMSAzLjI3LjY0QTMgMyAwIDAgMSAxNSAxNS44NFYxNi41MmEuNjUuNjUgMCAwIDEtLjA4LjI0LjUuNSAwIDAgMS0uMTUuMTcuNDYuNDYgMCAwIDEtLjI3LjA3SDE0YzAgLjI0IDAgLjQzLS4wMi41NmEuNDYuNDYgMCAwIDEtLjExLjMuNDcuNDcgMCAwIDEtLjMuMTJMMTMgMTh2LjI3YzAgLjA4IDAgLjE3LS4wMi4yNWEuODYuODYgMCAwIDEtLjA2LjI0LjM3LjM3IDAgMCAxLS4xNS4xNy41Ny41NyAwIDAgMS0uMjcuMDdoLTJabTctNi43NWMwLS4yLS4wNy0uMzktLjIyLS41M2EuNzIuNzIgMCAwIDAtLjUzLS4yMmMtLjIgMC0uMzkuMDctLjUzLjIyYS43Mi43MiAwIDAgMC0uMjIuNTNjMCAuMi4wNy4zOS4yMi41My4xNC4xNS4zMi4yMi41My4yMi4yIDAgLjM5LS4wNy41My0uMjJhLjcyLjcyIDAgMCAwIC4yMi0uNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxhcHRvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxhcHRvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaDExYy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEwVjhhMiAyIDAgMCAwLTItMkgzVjQuNVpNMTAgMTVoNy41YS41LjUgMCAwIDAgMC0xSDEwdjFaTTIgOC41QzIgNy42NyAyLjY3IDcgMy41IDdoNEM4LjMzIDcgOSA3LjY3IDkgOC41djhjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgMiAxNi41di04Wk01IDE1YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTGFwdG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxhcHRvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2gxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYtMWg1LjVhLjUuNSAwIDAgMCAuNS0uNXYtN2EuNS41IDAgMCAwLS41LS41aC0xMWEuNS41IDAgMCAwLS41LjVWNkgzVjQuNVpNMTAgMTVoNy41YS41LjUgMCAwIDAgMC0xSDEwdjFabS01IDBhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMUg1Wk0yIDguNUMyIDcuNjcgMi42NyA3IDMuNSA3aDRDOC4zMyA3IDkgNy42NyA5IDguNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDIgMTYuNXYtOFpNMy41IDhhLjUuNSAwIDAgMC0uNS41djhjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di04YS41LjUgMCAwIDAtLjUtLjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxpbmtTZXR1cEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxpbmtTZXR1cEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDMuNUM1IDIuNjcgNS42NyAyIDYuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2NS41MkE1LjUgNS41IDAgMCAwIDEwLjI2IDE4SDYuNUExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTcuMDcgNy45NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMaW5rU2V0dXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTGlua1NldHVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDMuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg3YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY1LjAyYTUuNTcgNS41NyAwIDAgMSAxIDBWNGEyIDIgMCAwIDAtMi0ySDdabTUuMDcgOS40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDMuNUM1IDIuNjcgNS42NyAyIDYuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2NS41NEEzIDMgMCAwIDAgMTEuNSAxMnYuMDZBMiAyIDAgMCAwIDEwIDE0SDguNWEuNS41IDAgMCAwIDAgMUgxMHYzSDYuNUExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTcuNSA4LjV2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVMb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NS4wNGEzLjAyIDMuMDIgMCAwIDAtMSAwVjRhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWgzdjFIN2EyIDIgMCAwIDEtMi0yVjRabTMuNSAxMEgxMHYxSDguNWEuNS41IDAgMCAxIDAtMVptNC0ydjFIMTJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVBhZ2VIZWFkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVQYWdlSGVhZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxSDVWNFptMCAydjEwYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjZINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lUGFnZUhlYWRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVQYWdlSGVhZGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1pNNiA1aDh2MTFhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lUGFnaW5hdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2luYXRpb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA0YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjRabTMgMTFhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTIgMGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVQYWdpbmF0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2luYXRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggMTVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTIuNS0uNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptMS41LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTcgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg3Wk02IDRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU2NyZWVuVGltZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNjcmVlblRpbWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljc2YTUuNDcgNS40NyAwIDAgMS0xLjI0LTNINy41YS41LjUgMCAwIDEgMC0xaDEuNTJBNS41IDUuNSAwIDAgMSAxNCA5LjAyVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTY3JlZW5UaW1lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNjcmVlblRpbWVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoNC43NmE1LjUgNS41IDAgMCAxLS42Ni0xSDUuNWEuNS41IDAgMCAxLS41LS41di0xM2MwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djUuN2MuMzItLjA4LjY2LS4xNSAxLS4xOFYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03Wk05IDE0LjVjMCAuMTcgMCAuMzQuMDIuNUg3LjVhLjUuNSAwIDAgMSAwLTFoMS41MmwtLjAyLjVabTEwIDBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTaGFrZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNoYWtlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjM3IDIuOTNhLjUuNSAwIDEgMSAuNS0uODYgNC4yNSA0LjI1IDAgMCAxIDEuNjMgNS42Ni41LjUgMCAwIDEtLjg4LS40NyAzLjI1IDMuMjUgMCAwIDAtMS4yNS00LjMzWm0tMSAxLjc0YS41LjUgMCAxIDEgLjUtLjg3YzEuMDIuNTkgMS40IDEuODYuOTEgMi45YS41LjUgMCAwIDEtLjktLjQyYy4yNy0uNTguMDYtMS4yOS0uNS0xLjYxWm0tOS43NCAxMi40YS41LjUgMCAxIDEtLjUuODYgNC4yNSA0LjI1IDAgMCAxLTEuNjMtNS42Ni41LjUgMCAxIDEgLjg4LjQ2IDMuMjUgMy4yNSAwIDAgMCAxLjI1IDQuMzNabTEtMS43NGEuNS41IDAgMSAxLS41Ljg3IDIuMjUgMi4yNSAwIDAgMS0uOTItMi45LjUuNSAwIDAgMSAuOS40MmMtLjI2LjU4LS4wNSAxLjI4LjUyIDEuNjFabTQuNTQtMTIuMjZhMS45NSAxLjk1IDAgMCAxIDIuNCAxLjRsMi4zNyA4Ljk3YTIuMDQgMi4wNCAwIDAgMS0xLjQyIDIuNDhsLTMuNjkgMWExLjk1IDEuOTUgMCAwIDEtMi40LTEuNEw1LjA4IDYuNTdhMi4wNCAyLjA0IDAgMCAxIDEuNDItMi40OWwzLjY4LTFabS0uNDkgMTEuM2MuMDcuMjcuMzQuNDMuNi4zNmwxLjc5LS40OGEuNTEuNTEgMCAwIDAgLjM2LS42Mi40OS40OSAwIDAgMC0uNi0uMzZsLTEuNzguNDlhLjUxLjUxIDAgMCAwLS4zNy42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU2hha2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU2hha2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjM3IDIuOTNhLjUuNSAwIDEgMSAuNS0uODYgNC4yNSA0LjI1IDAgMCAxIDEuNjMgNS42Ni41LjUgMCAwIDEtLjg4LS40NyAzLjI1IDMuMjUgMCAwIDAtMS4yNS00LjMzWm0tMSAxLjc0YS41LjUgMCAxIDEgLjUtLjg3YzEuMDIuNTkgMS40IDEuODYuOTEgMi45YS41LjUgMCAwIDEtLjktLjQyYy4yNy0uNTguMDYtMS4yOS0uNS0xLjYxWm0tOS43NCAxMi40YS41LjUgMCAxIDEtLjUuODYgNC4yNSA0LjI1IDAgMCAxLTEuNjMtNS42Ni41LjUgMCAxIDEgLjg4LjQ2IDMuMjUgMy4yNSAwIDAgMCAxLjI1IDQuMzNabTEtMS43NGEuNS41IDAgMSAxLS41Ljg3IDIuMjUgMi4yNSAwIDAgMS0uOTItMi45LjUuNSAwIDAgMSAuOS40MmMtLjI2LjU4LS4wNSAxLjI4LjUyIDEuNjFabTUuOTctMTAuNmEuOTYuOTYgMCAwIDAtMS4xNy0uN2wtMy43IDEuMDFjLS41Mi4xNC0uODQuNy0uNyAxLjI1bDIuMzcgOC45OGMuMTQuNTMuNjcuODMgMS4xOC43bDMuNjgtMS4wMWMuNTMtLjE1Ljg1LS43LjctMS4yNUwxMS42IDQuNzNabS0xLjQzLTEuNjZhMS45NSAxLjk1IDAgMCAxIDIuNCAxLjRsMi4zNiA4Ljk3YTIuMDQgMi4wNCAwIDAgMS0xLjQxIDIuNDhsLTMuNjkgMWExLjk1IDEuOTUgMCAwIDEtMi40LTEuNEw1LjA3IDYuNTdhMi4wNCAyLjA0IDAgMCAxIDEuNDEtMi40OWwzLjY5LTFabS0uNDkgMTEuM2EuNTEuNTEgMCAwIDEgLjM2LS42MWwxLjc5LS40OGMuMjYtLjA4LjUzLjA4LjYuMzUuMDcuMjctLjEuNTQtLjM2LjYybC0xLjc4LjQ4YS40OS40OSAwIDAgMS0uNi0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwYW5JbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5JbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYzLjA5YTEuNSAxLjUgMCAwIDEgMS41Ni4zNWwyIDJhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTIgMmExLjUgMS41IDAgMCAxLTEuNTYuMzVWMTZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTIuMDlhMS41IDEuNSAwIDAgMS0xLjU2LS4zNWwtMi0yYTEuNSAxLjUgMCAwIDEgMC0yLjEybDItMkExLjUgMS41IDAgMCAxIDE1IDcuMDlWNGEyIDIgMCAwIDAtMi0ySDdabTcuODUgNi4xNWMuMi4yLjIuNSAwIC43TDEzLjcxIDEwaDIuNzlhLjUuNSAwIDAgMSAwIDFoLTIuOGwxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmMuMi0uMi41LS4yLjcgMFptLTkuNy43YS41LjUgMCAxIDEgLjctLjdsMiAyYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43TDYuMjkgMTFIMy41YS41LjUgMCAwIDEgMC0xaDIuOEw1LjE0IDguODVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwYW5JblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuSW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYzLjA5YTEuNSAxLjUgMCAwIDAtMSAwVjRhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2My4wOWExLjUgMS41IDAgMCAwLTEgMFY0Wm0wIDkuOTFWMTZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTIuMDlhMS41IDEuNSAwIDAgMS0xIDBWMTZhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTF2LTIuMDlhMS41IDEuNSAwIDAgMS0xIDBabTIuODUtMy4wNi0yIDJhLjUuNSAwIDAgMS0uNy0uN0w2LjI5IDExSDMuNWEuNS41IDAgMCAxIDAtMWgyLjhMNS4xNCA4Ljg1YS41LjUgMCAxIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVabTYuMy0yLjctMiAyYS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTFoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTcGFuT3V0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3Bhbk91dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYzLjA5QTEuNSAxLjUgMCAwIDEgNi45MSA5aC41OWExLjUgMS41IDAgMSAxIDAgM2gtLjU5QTEuNSAxLjUgMCAwIDEgNSAxMy45MVYxNmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMnYtMi4wOUExLjUgMS41IDAgMCAxIDEzLjA5IDEyaC0uNTlhMS41IDEuNSAwIDAgMSAwLTNoLjU5QTEuNSAxLjUgMCAwIDEgMTUgNy4wOVY0YTIgMiAwIDAgMC0yLTJIN1ptNy44NSA2LjE1YS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxMEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJaTTQuNzEgMTBsMS4xNC0xLjE1aC4wMWEuNS41IDAgMCAwLS43MS0uN2wtMiAyYS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxMUg3LjVhLjUuNSAwIDAgMCAuNS0uNS41LjUgMCAwIDAtLjUtLjVINC43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTcGFuT3V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5PdXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYzLjA5YTEuNSAxLjUgMCAwIDAtMSAwVjRhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2My4wOWExLjUgMS41IDAgMCAwLTEgMFY0Wm0wIDkuOTFjLjMyLjEyLjY4LjEyIDEgMFYxNmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXYtMi4wOWMuMzIuMTIuNjguMTIgMSAwVjE2YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0ydi0yLjA5Wm0tMS44NS0zLjc2IDItMmEuNS41IDAgMSAxIC43LjdMNC43MSAxMEg3LjVhLjUuNSAwIDAgMSAwIDFINC43bDEuMTUgMS4xNWEuNS41IDAgMCAxLS43LjdsLTItMkEuNS41IDAgMCAxIDMgMTAuNWEuNS41IDAgMCAxIC4xNC0uMzVabTExLjcgMi43IDItMmEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTBIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwZWFrZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGVha2VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoNC45OUExLjUgMS41IDAgMCAxIDkgMTYuNVYxNUg4YS41LjUgMCAwIDEgMC0xaDEuMDljLjItLjU4Ljc2LTEgMS40MS0xaC4zOGwxLjU2LTEuNTZhMS41IDEuNSAwIDAgMSAxLjU2LS4zNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03Wm04LjIgMTAuMDRjLjE4LjA4LjMuMjYuMy40NnY2YS41LjUgMCAwIDEtLjg1LjM1TDExLjI5IDE3aC0uNzlhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41aC44bDEuODUtMS44NWEuNS41IDAgMCAxIC41NC0uMTFabTMuOTUuMTZjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMCAxIC44LS42Wm0tMS40MyAxLjc3Yy0uMS0uMy0uMi0uNTUtLjI3LS43YS41LjUgMCAxIDAtLjkuNDUgNC42IDQuNiAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDQgNS41IDUuNSAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI4LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwZWFrZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3BlYWtlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAxNGEuNS41IDAgMCAwIDAgMWgxdi0uNWMwLS4xOC4wMy0uMzQuMDktLjVIOFptLTIgM2gzLjA5Yy4yLjU4Ljc1IDEgMS40IDFINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2Ny4wOWExLjUgMS41IDAgMCAwLTEgMFY0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFabTcuNy00Ljk2Yy4xOC4wOC4zLjI2LjMuNDZ2NmEuNS41IDAgMCAxLS44NS4zNUwxMS4yOSAxN2gtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm0zLjk1LjE2Yy4xMi4xNi4yOS40NS40NC44Ny4yNi42OC40MSAxLjUuNDEgMi40MyAwIC45NC0uMTUgMS43NS0uNCAyLjQzLS4xNi40Mi0uMzMuNy0uNDUuODdhLjUuNSAwIDAgMS0uODUtLjUybC4xMi0uMTlhNS45IDUuOSAwIDAgMCAuNTgtMi42IDUuOSA1LjkgMCAwIDAtLjU4LTIuNThsLS4wNy0uMTFhLjUuNSAwIDAgMSAuOC0uNlptLTEuNDMgMS43N2MtLjEtLjMtLjItLjU1LS4yNy0uN2EuNS41IDAgMSAwLS45LjQ1IDQuNiA0LjYgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTdGF0dXNCYXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTdGF0dXNCYXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA0YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjRabTIuNSAwYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVN0YXR1c0JhclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTdGF0dXNCYXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSA0YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTcgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg3Wk02IDRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVGFibGV0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVGFibGV0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNC44QzQgMy44IDQuODQgMyA1Ljg0IDNoMTAuMzJjMSAwIDEuODQuOCAxLjg0IDEuOHY3LjRjMCAxLS44NCAxLjgtMS44NCAxLjhIMTB2LTJoMi41YS41LjUgMCAwIDAgMC0xSDEwVjhhMiAyIDAgMCAwLTItMkg0VjQuOFpNMy41IDdDMi42NyA3IDIgNy42NyAyIDguNXY4YzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di04QzkgNy42NyA4LjMzIDcgNy41IDdoLTRabTEgOC41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVRhYmxldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVUYWJsZXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuODQgNGEuODMuODMgMCAwIDAtLjg0LjhWNkg0VjQuOEM0IDMuOCA0Ljg0IDMgNS44NCAzaDEwLjMyYzEgMCAxLjg0LjggMS44NCAxLjh2Ny40YzAgMS0uODQgMS44LTEuODQgMS44SDEwdi0xaDYuMTZjLjQ4IDAgLjg0LS4zNy44NC0uOFY0LjhjMC0uNDMtLjM2LS44LS44NC0uOEg1Ljg0Wk0xMCAxMmgyLjVhLjUuNSAwIDAgMCAwLTFIMTB2MVptLTUgM2EuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xSDVaTTIgOC41QzIgNy42NyAyLjY3IDcgMy41IDdoNEM4LjMzIDcgOSA3LjY3IDkgOC41djhjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgMiAxNi41di04Wk0zLjUgOGEuNS41IDAgMCAwLS41LjV2OGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LThhLjUuNSAwIDAgMC0uNS0uNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVXBkYXRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVXBkYXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMy41QzUgMi42NyA1LjY3IDIgNi41IDJoN2MuODMgMCAxLjUuNjcgMS41IDEuNXYxM2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDE2LjV2LTEzWm01LjUgM2EuNS41IDAgMCAwLTEgMHY1LjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0VjYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVXBkYXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVVwZGF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNmMuMjggMCAuNS4yMi41LjV2NS44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMkEuNS41IDAgMCAxIDEwIDE0YS41LjUgMCAwIDEtLjM1LS4xNWwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0VjYuNWMwLS4yOC4yMi0uNS41LS41Wk01IDMuNUM1IDIuNjcgNS42NyAyIDYuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNi41di0xM1pNNi41IDNhLjUuNSAwIDAgMC0uNS41djEzYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtMTNhLjUuNSAwIDAgMC0uNS0uNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVXBkYXRlQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVXBkYXRlQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMTZjMCAxLjEuOSAyIDIgMmgzLjI2YTUuNDggNS40OCAwIDAgMS0uNzYtNS44di01TDguMzUgOC4zNmEuNS41IDAgMSAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDEwLjUgNy4yMXYzLjUyYTUuNDggNS40OCAwIDAgMSA0LjUtMS43VjRhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2MTJabTE0LTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVVwZGF0ZUNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVVcGRhdGVDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMTZhMSAxIDAgMCAwIDEgMWgyLjZjLjE4LjM2LjQuNy42NiAxSDdhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjUuMDJhNS41NyA1LjU3IDAgMCAwLTEgMFY0YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjEyWm0zLjUtMy44Yy4yNS0uNTQuNi0xLjA0IDEtMS40N1Y3LjJsMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMSAwIC43LjdMOS41IDcuMjF2NVptOS41IDIuM2E0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVZlcnRpY2FsU2Nyb2xsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVmVydGljYWxTY3JvbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTcuMzUgNS4zNWEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMSAwIC43LjdMMTAgNy4yMWwxLjY1IDEuNjRjLjIuMi41LjIuNyAwWm0tNC43IDIuM2EuNS41IDAgMCAwIDAgLjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxMCAxMi43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVmVydGljYWxTY3JvbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVmVydGljYWxTY3JvbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNjUgMTEuMTVjLjItLjIuNS0uMi43IDBMMTAgMTIuNzlsMS42NS0xLjY0YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgMC0uN1ptNC0yLjNhLjUuNSAwIDAgMCAuNy0uN2wtMi0yYS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAxIDAgLjcuN0wxMCA3LjIxbDEuNjUgMS42NFpNNSAzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNaTTYuNSAzYS41LjUgMCAwIDAtLjUuNXYxM2MwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEzYS41LjUgMCAwIDAtLjUtLjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVZpYnJhdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVWaWJyYXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY0Wm0zLjUgMTAuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk0yLjkyIDcuMjJhLjUuNSAwIDAgMC0uODQuNTZsLjM4LjU3Yy4yOS40Mi4zMi45Ny4xIDEuNDMtLjQuNzgtLjM0IDEuNy4xNCAyLjQzbC4zOC41N2EuNS41IDAgMSAwIC44NC0uNTZsLS4zOC0uNTdhMS40MyAxLjQzIDAgMCAxLS4xLTEuNDNjLjQtLjc4LjM0LTEuNy0uMTQtMi40M2wtLjM4LS41N1ptMTMuMy0uMTRhLjUuNSAwIDAgMSAuNy4xNGwuMzguNTdjLjQ4LjczLjU0IDEuNjUuMTUgMi40My0uMjMuNDYtLjIgMSAuMDkgMS40M2wuMzguNTdhLjUuNSAwIDEgMS0uODQuNTZsLS4zOC0uNTdhMi40MyAyLjQzIDAgMCAxLS4xNS0yLjQzYy4yMy0uNDYuMi0xLS4wOS0xLjQzbC0uMzgtLjU3YS41LjUgMCAwIDEgLjE0LS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVWaWJyYXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVZpYnJhdGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAxNC41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTcgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg3Wk02IDRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNFpNMi45MiA3LjIyYS41LjUgMCAwIDAtLjg0LjU2bC4zOC41N2MuMjkuNDIuMzIuOTcuMSAxLjQzLS40Ljc4LS4zNCAxLjcuMTQgMi40M2wuMzguNTdhLjUuNSAwIDEgMCAuODQtLjU2bC0uMzgtLjU3YTEuNDMgMS40MyAwIDAgMS0uMS0xLjQzYy40LS43OC4zNC0xLjctLjE0LTIuNDNsLS4zOC0uNTdabTEzLjMtLjE0YS41LjUgMCAwIDEgLjcuMTRsLjM4LjU3Yy40OC43My41NCAxLjY1LjE1IDIuNDMtLjIzLjQ2LS4yIDEgLjA5IDEuNDNsLjM4LjU3YS41LjUgMCAxIDEtLjg0LjU2bC0uMzgtLjU3YTIuNDMgMi40MyAwIDAgMS0uMTUtMi40M2MuMjMtLjQ2LjItMS0uMDktMS40M2wtLjM4LS41N2EuNS41IDAgMCAxIC4xNC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob3RvRmlsdGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob3RvRmlsdGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMjYgMTMuNzRhNiA2IDAgMSAxIDcuNDgtNy40OCA2IDYgMCAxIDEtNy40OCA3LjQ4Wk0zLjUgOEE0LjUgNC41IDAgMCAwIDYgMTIuMDNWMTJhNiA2IDAgMCAxIDYuMDMtNkE0LjUgNC41IDAgMCAwIDMuNSA4Wm00LjQ3IDZBNC41IDQuNSAwIDEgMCAxNCA3Ljk3VjhhNiA2IDAgMCAxLTYgNmgtLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvdG9GaWx0ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob3RvRmlsdGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDhhNiA2IDAgMCAwIDQuMjYgNS43NCA2IDYgMCAxIDAgNy40OC03LjQ4QTYgNiAwIDAgMCAyIDhabTYtNWE1IDUgMCAwIDEgNC42IDMuMDNMMTIgNmE2IDYgMCAwIDAtNS45NyA2LjZBNSA1IDAgMCAxIDggM1ptOSA5YTUgNSAwIDAgMS05LjYgMS45N0w4IDE0YTYgNiAwIDAgMCA1Ljk3LTYuNkE1IDUgMCAwIDEgMTcgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjQgNC43OGMtLjE3LjMyLS4xOC43Ni0uMTIgMS4wN2EuNzUuNzUgMCAxIDEtMS40Ny4zYy0uMS0uNTItLjExLTEuMzQuMjYtMi4wNi40MS0uNzkgMS4yMi0xLjM0IDIuNDctMS4zNEgxNi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi4yNXY5LjQyYzAgMS41LjQ1IDEuODkuNyAyIC4zMi4xNS44LjA4IDEuMjEtLjEzYS43NS43NSAwIDAgMSAuNjggMS4zNGMtLjYuMy0xLjYuNTgtMi41My4xNS0xLjAxLS40Ny0xLjU2LTEuNjEtMS41Ni0zLjM2VjQuMjVIOC4yNGE5MC43NSA5MC43NSAwIDAgMS0uNiA2LjMyIDQ0LjY2IDQ0LjY2IDAgMCAxLS42MSAzLjU1IDEyLjM4IDEyLjM4IDAgMCAxLS44NiAyLjcyLjc1Ljc1IDAgMSAxLTEuMzQtLjY4Yy4yNi0uNS41LTEuMzMuNzMtMi4zNi4yMy0xLjAzLjQyLTIuMjEuNTgtMy40Mi4zMS0yLjI4LjUtNC42Mi42LTYuMTNoLTIuMmMtLjc0IDAtMS4wMS4yOC0xLjE0LjUzWlwiXSk7XG5leHBvcnQgY29uc3QgUGlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjE4IDQuNjdhMiAyIDAgMCAwLS4xNCAxLjIzLjUuNSAwIDEgMS0uOTguMiAzIDMgMCAwIDEgLjIzLTEuOUMyLjY2IDMuNSAzLjM4IDMgNC41NCAzSDE2LjVhLjUuNSAwIDEgMSAwIDFIMTR2OS42N2MwIDEuNTQuNDcgMi4wNS44NCAyLjIzLjQyLjIgMSAuMDkgMS40My0uMTRhLjUuNSAwIDEgMSAuNDYuOWMtLjU2LjI4LTEuNDkuNTMtMi4zMi4xNC0uODgtLjQxLTEuNDEtMS40Mi0xLjQxLTMuMTNWNEg4di4wM2E5MC4yIDkwLjIgMCAwIDEtLjYyIDYuNTEgNDQuNDMgNDQuNDMgMCAwIDEtLjYgMy41MmMtLjIzIDEuMDYtLjUgMi0uODMgMi42NmEuNS41IDAgMSAxLS45LS40NGMuMjctLjU1LjUzLTEuMzkuNzYtMi40My4yMi0xLjAzLjQyLTIuMjIuNTgtMy40NC4zMy0yLjQyLjUzLTQuOTIuNi02LjQxSDQuNTVjLS44MyAwLTEuMTguMzMtMS4zNi42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDNBMi43NSAyLjc1IDAgMCAwIDIgNS43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTVIOXYtMi41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg2Yy4xNyAwIC4zNC4wMi41LjA1di00LjNBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDNINC43NVpNMTggMTEuMDlhMS41IDEuNSAwIDAgMC0uNS0uMDloLTZjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uNjUtLjQyLTEuMi0xLTEuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWN0dXJlSW5QaWN0dXJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgM2gxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA1Ljc1VjEwaC0xVjUuNzVDMTcgNC43OCAxNi4yMiA0IDE1LjI1IDRINC43NUMzLjc4IDQgMyA0Ljc4IDMgNS43NXY2LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIOXYxSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTIuMjV2LTYuNVpNMTEuNSAxMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlRW50ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUVudGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgM0EyLjc1IDIuNzUgMCAwIDAgMiA1Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAxNUg5di0yLjVhMi41IDIuNSAwIDAgMSAyLjUtMi41aDZjLjE3IDAgLjM0LjAyLjUuMDV2LTQuM0EyLjc1IDIuNzUgMCAwIDAgMTUuMjUgM0g0Ljc1Wm0uNiAyLjY1TDggOC4yOVY2LjVhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMSAwLTFoMS44TDQuNjQgNi4zNWEuNS41IDAgMSAxIC43LS43Wk0xOCAxMS4wOWExLjUgMS41IDAgMCAwLS41LS4wOWgtNmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS42NS0uNDItMS4yLTEtMS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFbnRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUVudGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgM2gxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA1Ljc1VjEwaC0xVjUuNzVDMTcgNC43OCAxNi4yMiA0IDE1LjI1IDRINC43NUMzLjc4IDQgMyA0Ljc4IDMgNS43NXY2LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIOXYxSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTIuMjV2LTYuNVpNMTEuNSAxMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTZaTTQuNjUgNS42NWMuMi0uMi41LS4yLjcgMEw4IDguMjlWNi41YS41LjUgMCAwIDEgMSAwdjNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEgMC0xaDEuOEw0LjY0IDYuMzVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZUV4aXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUV4aXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDljLjgzIDAgMS41LS42NyAxLjUtMS41di00QzEwIDIuNjcgOS4zMyAyIDguNSAyaC02QzEuNjcgMiAxIDIuNjcgMSAzLjV2NEExLjUgMS41IDAgMCAwIDIuNSA5aDZabTAgMWgtNmMtLjE3IDAtLjM0LS4wMi0uNS0uMDV2NC4zQTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE3aDEwLjVBMi43NSAyLjc1IDAgMCAwIDE4IDE0LjI1di02LjVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDVIMTF2Mi41QTIuNSAyLjUgMCAwIDEgOC41IDEwWm0zLjg1LjY1TDE1IDEzLjI5VjExLjVhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMSAwLTFoMS44bC0yLjY1LTIuNjVhLjUuNSAwIDAgMSAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFeGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWN0dXJlSW5QaWN0dXJlRXhpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDljLjgzIDAgMS41LS42NyAxLjUtMS41di00QzEwIDIuNjcgOS4zMyAyIDguNSAyaC02QzEuNjcgMiAxIDIuNjcgMSAzLjV2NGMwIC42NS40MiAxLjIgMSAxLjQxbC4wMi4wMWMuMTUuMDUuMzEuMDguNDguMDhoNlptNi43NS0zSDExVjVoNC4yNUEyLjc1IDIuNzUgMCAwIDEgMTggNy43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE3SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTQuMjV2LTQuM2MuMTYuMDMuMzMuMDUuNS4wNUgzdjQuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTAuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTYuNUMxNyA2Ljc4IDE2LjIyIDYgMTUuMjUgNlpNMTQgMTIuM2wtMi42NS0yLjY1YS41LjUgMCAwIDAtLjcuN0wxMy4yOSAxM0gxMS41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLTEgMHYxLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMTUgMy4xNWE0LjA0IDQuMDQgMCAxIDEgNS43IDUuN2wtOCA4YTQuMDQgNC4wNCAwIDEgMS01LjctNS43bDgtOFptNSAuN2EzLjA0IDMuMDQgMCAwIDAtNC4zIDBMOC4yMSA3LjVsNC4yOSA0LjMgMy42NS0zLjY1YTMuMDQgMy4wNCAwIDAgMCAwLTQuM1ptLTcuMyAxMC4zYS41LjUgMCAwIDAtLjcgMGwtMS41IDEuNWEuOTEuOTEgMCAwIDEtMS4zIDAgLjUuNSAwIDAgMC0uODUuMzVjMCAuMTQuMDYuMjcuMTUuMzYuNzUuNzQgMS45Ni43NCAyLjcgMGwxLjUtMS41YS41LjUgMCAwIDAgMC0uNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljg1IDEzLjE1Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVjLS43NC43NS0xLjk1Ljc1LTIuNyAwQS41LjUgMCAwIDEgNSAxNC41YS41LjUgMCAwIDEgLjM1LjE1Yy4zNi4zNS45NC4zNSAxLjMgMGwxLjUtMS41Yy4yLS4yLjUtLjIuNyAwWm0yLjMtMTBhNC4wNCA0LjA0IDAgMSAxIDUuNyA1LjdsLTggOGE0LjA0IDQuMDQgMCAxIDEtNS43LTUuN2w4LThabTUgLjdhMy4wNCAzLjA0IDAgMCAwLTQuMyAwTDguMjEgNy41bDQuMjkgNC4zIDMuNjUtMy42NWEzLjA0IDMuMDQgMCAwIDAgMC00LjNabS00LjM2IDguNjVMNy41IDguMmwtMy42NSAzLjY1YTMuMDQgMy4wNCAwIDAgMCA0LjMgNC4zbDMuNjQtMy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMzMgMi42MmEyIDIgMCAwIDAtMy4yLjUyTDguMzggNi42YTEuNSAxLjUgMCAwIDEtLjc4LjcyTDQgOC43NWExIDEgMCAwIDAtLjMzIDEuNjRsMi42MSAyLjZMMyAxNi4zdi43aC43TDcgMTMuNzJsMi42MSAyLjZhMSAxIDAgMCAwIDEuNjQtLjMzbDEuNDMtMy41OWMuMTQtLjM0LjQtLjYyLjcyLS43OGwzLjQ2LTEuNzNhMiAyIDAgMCAwIC41Mi0zLjJsLTQuMDUtNC4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4xMiAzLjE0YTIgMiAwIDAgMSAzLjItLjUybDQuMDYgNC4wNWEyIDIgMCAwIDEtLjUyIDMuMmwtMy40NiAxLjc0YTEuNSAxLjUgMCAwIDAtLjcyLjc4TDExLjI1IDE2YTEgMSAwIDAgMS0xLjY0LjMzTDcgMTMuNyAzLjcgMTdIM3YtLjdMNi4zIDEzbC0yLjYyLTIuNjFhMSAxIDAgMCAxIC4zNC0xLjY0TDcuNiA3LjMyYy4zNC0uMTQuNjItLjQuNzgtLjcybDEuNzMtMy40NlptMi41LjE4YTEgMSAwIDAgMC0xLjYuMjZMOS4yOSA3LjA0YTIuNSAyLjUgMCAwIDEtMS4zMSAxLjJMNC4zOSA5LjY5bDUuOTMgNS45MyAxLjQzLTMuNTlhMi41IDIuNSAwIDAgMSAxLjItMS4zbDMuNDYtMS43NGExIDEgMCAwIDAgLjI2LTEuNmwtNC4wNS00LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgUGluR2xvYmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluR2xvYmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMzMgMi42MmEyIDIgMCAwIDAtMy4yLjUyTDguMzggNi42YTEuNSAxLjUgMCAwIDEtLjc4LjcyTDQgOC43NWExIDEgMCAwIDAtLjMzIDEuNjRMNi4zIDEzIDMgMTYuM3YuN2guN0w3IDEzLjdsMi4xOCAyLjE4YTUuNTEgNS41MSAwIDAgMSA3Ljk5LTYuMiAyIDIgMCAwIDAgLjIxLTNsLTQuMDUtNC4wNlptLjIyIDguNTNhOC45IDguOSAwIDAgMC0uNTQgMi44NWgyLjk4YTguOSA4LjkgMCAwIDAtLjU0LTIuODUgMi45MyAyLjkzIDAgMCAwLS41My0uOTFjLS4xOS0uMi0uMzMtLjI0LS40Mi0uMjQtLjEgMC0uMjMuMDUtLjQyLjI0LS4xOC4xOS0uMzYuNS0uNTMuOTFabS0uNzItLjgzQTkuOTIgOS45MiAwIDAgMCAxMiAxNGgtMS45OGE0LjUgNC41IDAgMCAxIDIuOC0zLjY4Wm0zLjM0IDBhOS45MiA5LjkyIDAgMCAxIC44MiAzLjY4aDEuOThhNC41IDQuNSAwIDAgMC0yLjgtMy42OFptMi44IDQuNjhIMTdhOS45MiA5LjkyIDAgMCAxLS44MiAzLjY4IDQuNSA0LjUgMCAwIDAgMi44LTMuNjhabS00LjQ3IDRjLjEgMCAuMjMtLjA1LjQyLS4yNC4xOC0uMTkuMzYtLjUuNTMtLjkxLjMtLjczLjUtMS43Mi41NC0yLjg1aC0yLjk4YTguOSA4LjkgMCAwIDAgLjU0IDIuODVjLjE3LjQyLjM1LjcyLjUzLjkxLjE5LjIuMzMuMjQuNDIuMjRabS0xLjY3LS4zMmE0LjUgNC41IDAgMCAxLTIuOC0zLjY4SDEyYTkuOTIgOS45MiAwIDAgMCAuODIgMy42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbkdsb2JlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5HbG9iZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMTIgMy4xNGEyIDIgMCAwIDEgMy4yLS41Mmw0LjA2IDQuMDVhMiAyIDAgMCAxLS4yMSAzLjAyYy0uMzctLjItLjc3LS4zNy0xLjItLjQ5bC40NC0uMjJhMSAxIDAgMCAwIC4yNi0xLjZsLTQuMDUtNC4wNmExIDEgMCAwIDAtMS42LjI2TDkuMjkgNy4wNGEyLjUgMi41IDAgMCAxLTEuMzEgMS4yTDQuMzkgOS42OSA5IDE0LjNhNS42IDUuNiAwIDAgMCAuMTggMS41OEw3IDEzLjcxIDMuNyAxN0gzdi0uN0w2LjMgMTNsLTIuNjItMi42MWExIDEgMCAwIDEgLjM0LTEuNjRMNy42IDcuMzJjLjM0LS4xNC42Mi0uNC43OC0uNzJsMS43My0zLjQ2Wm0zLjQzIDguMDFhOC45IDguOSAwIDAgMC0uNTQgMi44NWgyLjk4YTguOSA4LjkgMCAwIDAtLjU0LTIuODUgMi45MyAyLjkzIDAgMCAwLS41My0uOTFjLS4xOS0uMi0uMzMtLjI0LS40Mi0uMjQtLjEgMC0uMjMuMDUtLjQyLjI0LS4xOC4xOS0uMzYuNS0uNTMuOTFabS0uNzItLjgzQTkuOTIgOS45MiAwIDAgMCAxMiAxNGgtMS45OGE0LjUgNC41IDAgMCAxIDIuOC0zLjY4Wm0zLjM0IDBhOS45MiA5LjkyIDAgMCAxIC44MiAzLjY4aDEuOThhNC41IDQuNSAwIDAgMC0yLjgtMy42OFptMi44IDQuNjhIMTdhOS45MiA5LjkyIDAgMCAxLS44MiAzLjY4IDQuNSA0LjUgMCAwIDAgMi44LTMuNjhabS00LjQ3IDRjLjEgMCAuMjMtLjA1LjQyLS4yNC4xOC0uMTkuMzYtLjUuNTMtLjkxLjMtLjczLjUtMS43Mi41NC0yLjg1aC0yLjk4YTguOSA4LjkgMCAwIDAgLjU0IDIuODVjLjE3LjQyLjM1LjcyLjUzLjkxLjE5LjIuMzMuMjQuNDIuMjRabS0xLjY3LS4zMmE0LjUgNC41IDAgMCAxLTIuOC0zLjY4SDEyYTkuOTIgOS45MiAwIDAgMCAuODIgMy42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbk9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w2LjkgNy42IDQuMDIgOC43NWExIDEgMCAwIDAtLjM0IDEuNjRMNi4zIDEzIDMgMTYuM3YuN2guN0w3IDEzLjdsMi42MSAyLjYyYTEgMSAwIDAgMCAxLjY0LS4zNGwxLjE1LTIuODggNC43NSA0Ljc1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xNC4wMSA3LjczLTMuMjQgMS42Mkw4LjUgNi4zOGwxLjYyLTMuMjRhMiAyIDAgMCAxIDMuMi0uNTJsNC4wNiA0LjA1YTIgMiAwIDAgMS0uNTIgMy4yWlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNi45IDcuNiA0LjAyIDguNzVhMSAxIDAgMCAwLS4zNCAxLjY0TDYuMyAxMyAzIDE2LjN2LjdoLjdMNyAxMy43bDIuNjEgMi42MmExIDEgMCAwIDAgMS42NC0uMzRsMS4xNS0yLjg4IDQuNzUgNC43NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptOC43OCAxMC4xOC0xLjMxIDMuMjgtNS45My01LjkzIDMuMjgtMS4zIDMuOTYgMy45NVptMS4zMy0xLjYyLS4wOC4wNC43NC43NSAzLjI0LTEuNjJhMiAyIDAgMCAwIC41Mi0zLjJsLTQuMDUtNC4wNmEyIDIgMCAwIDAtMy4yLjUyTDguNSA2LjM4bC43NS43NC4wNC0uMDggMS43My0zLjQ1YTEgMSAwIDAgMSAxLjYtLjI2bDQuMDUgNC4wNWExIDEgMCAwIDEtLjI2IDEuNmwtMy40NSAxLjczWlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVhMS41IDEuNSAwIDAgMSAzIDB2OWExLjUgMS41IDAgMCAxLTMgMHYtOVptMTMgMHY5YTEuNSAxLjUgMCAwIDAgMyAwdi05YTEuNSAxLjUgMCAwIDAtMyAwWk0xNCAxNFY2SDZ2OGg4WlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNWExLjUgMS41IDAgMSAxIDMgMFY2aDEwdi0uNWExLjUgMS41IDAgMCAxIDMgMHY5YTEuNSAxLjUgMCAwIDEtMyAwVjE0SDV2LjVhMS41IDEuNSAwIDAgMS0zIDB2LTlabTIgMGEuNS41IDAgMCAwLTEgMHY5YS41LjUgMCAwIDAgMSAwdi05Wk0xNSA3SDV2NmgxMFY3Wm0yLTEuNWEuNS41IDAgMCAwLTEgMHY5YS41LjUgMCAwIDAgMSAwdi05WlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmVBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVhMS41IDEuNSAwIDAgMSAzIDB2OWExLjUgMS41IDAgMCAxLTMgMHYtOVptMTIgMy41MkE1LjUgNS41IDAgMCAwIDkuMDIgMTRINlY2aDh2My4wMlptMS0zLjUydjMuNTJjMS4xMy4xIDIuMTcuNTUgMyAxLjI0VjUuNWExLjUgMS41IDAgMCAwLTMgMFptNCA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmVBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNWExLjUgMS41IDAgMSAxIDMgMFY2aDEwdi0uNWExLjUgMS41IDAgMCAxIDMgMHY0Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZWNS41YS41LjUgMCAwIDAtMSAwdjMuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjdINXY2aDQuMmMtLjA4LjMyLS4xNS42Ni0uMTggMUg1di41YTEuNSAxLjUgMCAwIDEtMyAwdi05Wm0yIDBhLjUuNSAwIDAgMC0xIDB2OWEuNS41IDAgMCAwIDEgMHYtOVptMTUgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQXJyb3dDdXJ2ZURvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBcnJvd0N1cnZlRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xIDUuNWE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFptNi40LjktLjkuOVY1Ljc0QTIuNzUgMi43NSAwIDAgMCAzLjc1IDNIMy41YS41LjUgMCAxIDAgMCAxaC4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjU0bC0uOS0uOWEuNS41IDAgMCAwLS43LjcxbDEuNzUgMS43NmEuNS41IDAgMCAwIC43IDBMOC4xMiA3LjFhLjUuNSAwIDEgMC0uNzEtLjdaTTIgOS43NGE1LjQ4IDUuNDggMCAwIDAgMyAxLjI0djMuNTJhMS41IDEuNSAwIDAgMS0zIDBWOS43NFpNMTAuOTcgNkE1LjUgNS41IDAgMCAxIDYgMTAuOThWMTRoOFY2aC0zLjAyWm01LjUyLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41djlhMS41IDEuNSAwIDAgMCAzIDB2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmVBcnJvd0N1cnZlRG93blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBcnJvd0N1cnZlRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuOTggNmMtLjAzLjM0LS4xLjY4LS4xOCAxSDE1djZINXYtMi4wMmMtLjM1LS4wMy0uNjgtLjEtMS0uMTl2My43MWEuNS41IDAgMCAxLTEgMHYtNC4xYy0uMzctLjE5LS43LS40LTEtLjY2djQuNzZhMS41IDEuNSAwIDAgMCAzIDBWMTRoMTB2LjVhMS41IDEuNSAwIDAgMCAzIDB2LTlhMS41IDEuNSAwIDAgMC0zIDBWNmgtNC4wMlptNS41Mi0xYy4yOCAwIC41LjIyLjUuNXY5YS41LjUgMCAwIDEtMSAwdi05YzAtLjI4LjIyLS41LjUtLjVabS0xMS00YTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wm0yLjYgNS40Yy4yLjIuMi41IDAgLjdMNi4zNyA4Ljg1YS41LjUgMCAwIDEtLjcgMEwzLjkgNy4xYS41LjUgMCAxIDEgLjctLjdsLjkuOVY1Ljc0QzUuNSA0Ljc4IDQuNzIgNCAzLjc1IDRIMy41YS41LjUgMCAxIDEgMC0xaC4yNUEyLjc1IDIuNzUgMCAwIDEgNi41IDUuNzV2MS41NGwuOS0uOWMuMi0uMTkuNTEtLjE5LjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lUGxheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaXBlbGluZVBsYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1LjVhMS41IDEuNSAwIDAgMSAzIDB2OWExLjUgMS41IDAgMCAxLTMgMHYtOVptMTIgMy41MkE1LjUgNS41IDAgMCAwIDkuMDIgMTRINlY2aDh2My4wMlptMS0zLjUydjMuNTJjMS4xMy4xIDIuMTcuNTUgMyAxLjI0VjUuNWExLjUgMS41IDAgMCAwLTMgMFptNCA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4yOS0uNDQtMi45Ny0xLjY1YS41LjUgMCAwIDAtLjc0LjQ0djMuM2MwIC4zOC40MS42Mi43NC40NGwyLjk3LTEuNjVhLjUuNSAwIDAgMCAwLS44OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lUGxheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVQbGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNWExLjUgMS41IDAgMSAxIDMgMFY2aDEwdi0uNWExLjUgMS41IDAgMCAxIDMgMHY0Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZWNS41YS41LjUgMCAwIDAtMSAwdjMuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjdINXY2aDQuMmMtLjA4LjMyLS4xNS42Ni0uMTggMUg1di41YTEuNSAxLjUgMCAwIDEtMyAwdi05Wm0yIDBhLjUuNSAwIDAgMC0xIDB2OWEuNS41IDAgMCAwIDEgMHYtOVptMTUgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMjktLjQ0LTIuOTctMS42NWEuNS41IDAgMCAwLS43NC40NHYzLjNjMCAuMzguNDEuNjIuNzQuNDRsMi45Ny0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBQaXZvdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaXZvdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuNTlhMS41IDEuNSAwIDAgMSAuMzUtMS41NmwxLTFhMS41IDEuNSAwIDAgMSAyLjQ3LjU2aC41OWEuNS41IDAgMCAwIC41LS41di0uNTlhMS41IDEuNSAwIDAgMS0uNTYtMi40N2wxLTFhMS41IDEuNSAwIDAgMSAxLjU2LS4zNVY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVpNNiA1aDFhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMVptMyAxYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xVjZaTTcgOWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgxWm05Ljg1IDIuMTVhLjUuNSAwIDAgMC0uNyAwbC0xIDFhLjUuNSAwIDAgMCAuNy43bC4xNS0uMTR2MS43OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuOGwuMTUtLjE1YS41LjUgMCAwIDAtLjctLjdsLTEgMWEuNS41IDAgMCAwIDAgLjdsMSAxYS41LjUgMCAwIDAgLjctLjdsLS4xNC0uMTVoMS43OWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEuOGwuMTUuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgUGl2b3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpdm90UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgNEM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoNC41OWExLjUgMS41IDAgMCAwIDAgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuNTlhMS41IDEuNSAwIDAgMC0xIDBWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVpNNiA1YTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlptNCAwYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFoLTRaTTYgOWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMUg2Wm0xMC44NSAyLjE1YS41LjUgMCAwIDAtLjcgMGwtMSAxYS41LjUgMCAwIDAgLjcuN2wuMTUtLjE0djEuNzljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xLjhsLjE1LS4xNWEuNS41IDAgMCAwLS43LS43bC0xIDFhLjUuNSAwIDAgMCAwIC43bDEgMWEuNS41IDAgMCAwIC43LS43bC0uMTQtLjE1aDEuNzlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xLjhsLjE1LjE1YS41LjUgMCAwIDAgLjctLjdsLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50Q2F0dGFpbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudENhdHRhaWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCA0YTIgMiAwIDEgMSA0IDB2NGEyIDIgMCAwIDEtMS41IDEuOTR2Mi4zNWwzLjE1LTMuMTRhLjUuNSAwIDAgMSAuNy43bC0zLjg1IDMuODZ2Ljc5YS41LjUgMCAwIDEtMSAwdi0uOEw1LjY1IDkuODZhLjUuNSAwIDEgMSAuNy0uN2wzLjE1IDMuMTRWOS45NEEyIDIgMCAwIDEgOCA4VjRabS0xLjI5IDguMzNjLS41NC4xMi0xLjA0LjI2LTEuNDkuNDQtLjYyLjIzLTEuMTUuNTMtMS41NS44OUMzLjI4IDE0IDMgMTQuNDYgMyAxNWMwIC41My4yOC45OS42NyAxLjM0LjQuMzYuOTMuNjYgMS41NS45IDEuMjUuNDcgMi45NC43NiA0Ljc4Ljc2IDEuODQgMCAzLjUzLS4yOSA0Ljc4LS43N2E0Ljk2IDQuOTYgMCAwIDAgMS41NS0uODljLjM5LS4zNS42Ny0uOC42Ny0xLjM0IDAtLjUzLS4yOC0uOTktLjY3LTEuMzQtLjQtLjM2LS45My0uNjYtMS41NS0uOS0uNDUtLjE3LS45NS0uMzEtMS40OS0uNDNsLS44Ni44NmMuNzYuMTIgMS40My4zIDEuOTkuNS41NS4yMi45Ny40NiAxLjIzLjcuMjcuMjUuMzUuNDUuMzUuNjEgMCAuMTYtLjA4LjM2LS4zNS42LS4yNi4yNS0uNjguNDktMS4yMy43LTEuMS40My0yLjY3LjctNC40Mi43cy0zLjMxLS4yNy00LjQyLS43YTMuOTkgMy45OSAwIDAgMS0xLjIzLS43Yy0uMjctLjI0LS4zNS0uNDQtLjM1LS42IDAtLjE2LjA4LS4zNi4zNS0uNi4yNi0uMjUuNjgtLjQ5IDEuMjMtLjcuNTYtLjIyIDEuMjMtLjQgMS45OS0uNTFsLS44Ni0uODZaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGFudENhdHRhaWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50Q2F0dGFpbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDEuNSAxLjk0djIuMzVMNi4zNSA5LjE1YS41LjUgMCAxIDAtLjcuN2wzLjg1IDMuODZ2Ljc5YS41LjUgMCAwIDAgMSAwdi0uOGwzLjg1LTMuODVhLjUuNSAwIDAgMC0uNy0uN2wtMy4xNSAzLjE0VjkuOTRBMiAyIDAgMCAwIDEyIDhWNGEyIDIgMCAwIDAtMi0yWk05IDRhMSAxIDAgMCAxIDIgMHY0YTEgMSAwIDEgMS0yIDBWNFptLTMuNzggOC43N2MuNDUtLjE4Ljk1LS4zMiAxLjQ5LS40NGwuODYuODZjLS43Ni4xMi0xLjQzLjMtMS45OS41LS41NS4yMi0uOTcuNDYtMS4yMy43LS4yNy4yNS0uMzUuNDUtLjM1LjYxIDAgLjE2LjA4LjM2LjM1LjYuMjYuMjUuNjguNDkgMS4yMy43IDEuMS40MyAyLjY3LjcgNC40Mi43czMuMzEtLjI3IDQuNDItLjdjLjU1LS4yMS45Ny0uNDUgMS4yMy0uNy4yNy0uMjQuMzUtLjQ0LjM1LS42IDAtLjE2LS4wOC0uMzYtLjM1LS42YTMuOTkgMy45OSAwIDAgMC0xLjIzLS43Yy0uNTYtLjIyLTEuMjMtLjQtMS45OS0uNTFsLjg2LS44NmMuNTQuMTIgMS4wNC4yNiAxLjQ5LjQ0LjYyLjIzIDEuMTUuNTMgMS41NS44OS4zOS4zNS42Ny44LjY3IDEuMzQgMCAuNTMtLjI4Ljk5LS42NyAxLjM0LS40LjM2LS45My42Ni0xLjU1LjktMS4yNS40Ny0yLjk0Ljc2LTQuNzguNzYtMS44NCAwLTMuNTMtLjI5LTQuNzgtLjc3YTQuOTYgNC45NiAwIDAgMS0xLjU1LS44OUMzLjI4IDE2IDMgMTUuNTQgMyAxNWMwLS41My4yOC0uOTkuNjctMS4zNC40LS4zNi45My0uNjYgMS41NS0uOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50R3Jhc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRHcmFzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02Ljg1IDMuMTVoLjAybC4wMi4wNGE3LjM1IDcuMzUgMCAwIDEgLjQ3LjUyYy4zLjM2LjcuODcgMS4xMiAxLjUyQzkuMDIgNi4wNiA5LjYgNy4xIDEwIDguM2ExMy45NSAxMy45NSAwIDAgMSAyLjY0LTQuNiAxMS43MiAxMS43MiAwIDAgMSAuNDctLjUybC4wMi0uMDMuMDEtLjAxYS41LjUgMCAwIDEgLjg2LjM1djUuMWMuMjUtLjUyLjUyLS45NC44LTEuMjhhNC45NyA0Ljk3IDAgMCAxIDEuNS0xLjI4aC4wMWEuNS41IDAgMCAxIC42OS40NlYxNGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2LjVhLjUuNSAwIDAgMSAuNjktLjQ2aC4wMmExLjM0IDEuMzQgMCAwIDEgLjEzLjA3Yy4xLjA1LjIuMTIuMzUuMjIuMjguMi42NC41IDEuMDIuOTkuMjcuMzQuNTQuNzYuNzkgMS4yOVYzLjVhLjUuNSAwIDAgMSAuODUtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRHcmFzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRHcmFzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi44NSAzLjE1aC4wMmwuMDIuMDRhNy4zNSA3LjM1IDAgMCAxIC40Ny41MmMuMy4zNi43Ljg3IDEuMTIgMS41MkM5LjAyIDYuMDYgOS42IDcuMSAxMCA4LjNhMTMuOTUgMTMuOTUgMCAwIDEgMi42NC00LjYgMTEuNzIgMTEuNzIgMCAwIDEgLjQ3LS41MmwuMDItLjAzLjAxLS4wMWEuNS41IDAgMCAxIC44Ni4zNXY1LjFjLjI1LS41Mi41Mi0uOTQuOC0xLjI4YTQuOTcgNC45NyAwIDAgMSAxLjUtMS4yOGguMDFhLjUuNSAwIDAgMSAuNjkuNDZWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNi41YS41LjUgMCAwIDEgLjY5LS40NmguMDJhMS4zNCAxLjM0IDAgMCAxIC4xMy4wN2MuMS4wNS4yLjEyLjM1LjIyLjI4LjIuNjQuNSAxLjAyLjk5LjI3LjM0LjU0Ljc2Ljc5IDEuMjlWMy41YS41LjUgMCAwIDEgLjg1LS4zNVpNNCA3LjQ3VjE0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjcuNDdhNC41IDQuNSAwIDAgMC0uNDIuNDZjLS42Mi44LTEuMzQgMi4yLTEuNTggNC42MmEuNS41IDAgMCAxLTEtLjA1VjQuODZjLS4yLjI2LS40Mi41Ny0uNjQuOTFhMTEuNjUgMTEuNjUgMCAwIDAtMS44NiA0LjguNS41IDAgMCAxLTEgMCAxMS42NCAxMS42NCAwIDAgMC0xLjg2LTQuOGMtLjIyLS4zNC0uNDQtLjY1LS42NC0uOTF2Ny42NGEuNS41IDAgMCAxLTEgLjA1Yy0uMjQtMi40Mi0uOTYtMy44My0xLjU4LTQuNjJBNC41IDQuNSAwIDAgMCA0IDcuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGFudFJhZ3dlZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRSYWd3ZWVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNSA0LjVhMi41IDIuNSAwIDEgMSA0Ljk0LjU1IDIgMiAwIDAgMSAuODggMy40NUEyIDIgMCAwIDEgMTIgMTJoLTEuNXY0LjNsMy4xNS0zLjE1YS41LjUgMCAwIDEgLjcuN2wtMy44NSAzLjg2di43OWEuNS41IDAgMCAxLTEgMHYtLjhsLTMuODUtMy44NWEuNS41IDAgMCAxIC43LS43bDMuMTUgMy4xNFYxMkg4YTIgMiAwIDAgMS0xLjMyLTMuNSAyIDIgMCAwIDEgLjg4LTMuNDUgMi41IDIuNSAwIDAgMS0uMDYtLjU1WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRSYWd3ZWVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudFJhZ3dlZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQ0IDMuMDUgMiAyIDAgMCAwLS44OCAzLjQ1QTIgMiAwIDAgMCA4IDEyaDEuNXY0LjNsLTMuMTUtMy4xNWEuNS41IDAgMCAwLS43LjdsMy44NSAzLjg2di43OWEuNS41IDAgMCAwIDEgMHYtLjhsMy44NS0zLjg1YS41LjUgMCAwIDAtLjctLjdsLTMuMTUgMy4xNFYxMkgxMmEyIDIgMCAwIDAgMS4zMi0zLjUgMiAyIDAgMCAwLS44OC0zLjQ1QTIuNSAyLjUgMCAwIDAgMTAgMlptMiA5SDhhMSAxIDAgMSAxIDAtMiAuNS41IDAgMCAwIDAtMSAxIDEgMCAwIDEgMC0yaC4yN2EuNS41IDAgMCAwIC40My0uNzUgMS41IDEuNSAwIDEgMSAyLjYgMCAuNS41IDAgMCAwIC40My43NUgxMmExIDEgMCAxIDEgMCAyIC41LjUgMCAwIDAgMCAxIDEgMSAwIDEgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMjIgOC42OGExLjUgMS41IDAgMCAxIDAgMi42M2wtMTAgNS41QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xMUExLjUgMS41IDAgMCAxIDcuMjIgMy4ybDEwIDUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjIyIDguNjlhMS41IDEuNSAwIDAgMSAwIDIuNjJsLTEwIDUuNUExLjUgMS41IDAgMCAxIDUgMTUuNXYtMTFBMS41IDEuNSAwIDAgMSA3LjIyIDMuMmwxMCA1LjVabS0uNDggMS43NWEuNS41IDAgMCAwIDAtLjg4bC0xMC01LjVBLjUuNSAwIDAgMCA2IDQuNXYxMWMwIC4zOC40LjYyLjc0LjQ0bDEwLTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm02LTIuMTd2NC4zNGMwIC41Ny42My45NCAxLjEzLjY1bDQuMTItMi4zOWEuNS41IDAgMCAwIDAtLjg2TDkuMTMgNy4xOEEuNzUuNzUgMCAwIDAgOCA3LjgzWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xMyA3LjE4QS43NS43NSAwIDAgMCA4IDcuODN2NC4zNGMwIC41Ny42My45NCAxLjEzLjY1bDQuMTItMi4zOWEuNS41IDAgMCAwIDAtLjg2TDkuMTMgNy4xOFpNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC03YTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZUhpbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZUhpbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMtLjUzIDAtMS4wNi4wNS0xLjU2LjE1YS41LjUgMCAwIDAgLjIuOTggNy4wNCA3LjA0IDAgMCAxIDIuNzMgMCAuNS41IDAgMCAwIC4yLS45OEMxMS4wNSAyLjA1IDEwLjUyIDIgMTAgMlptNC40NSAxLjM1YS41LjUgMCAwIDAtLjU2LjgzIDcuMDQgNy4wNCAwIDAgMSAxLjkzIDEuOTMuNS41IDAgMSAwIC44My0uNTYgOC4wNCA4LjA0IDAgMCAwLTIuMi0yLjJabS04LjM0LjgzYS41LjUgMCAxIDAtLjU2LS44MyA4LjA0IDguMDQgMCAwIDAtMi4yIDIuMi41LjUgMCAxIDAgLjgzLjU2QTcuMDQgNy4wNCAwIDAgMSA2LjEgNC4xOFpNMy4xMyA4LjYzYS41LjUgMCAwIDAtLjk4LS4yIDguMDQgOC4wNCAwIDAgMCAwIDMuMTMuNS41IDAgMCAwIC45OC0uMiA3LjA0IDcuMDQgMCAwIDEgMC0yLjczWm0xNC43Mi0uMmEuNS41IDAgMSAwLS45OC4yIDcuMDQgNy4wNCAwIDAgMSAwIDIuNzQuNS41IDAgMSAwIC45OC4yIDguMDMgOC4wMyAwIDAgMCAwLTMuMTNaTTQuMTggMTMuOWEuNS41IDAgMSAwLS44My41NiA4LjA0IDguMDQgMCAwIDAgMi4yIDIuMi41LjUgMCAxIDAgLjU2LS44MyA3LjA0IDcuMDQgMCAwIDEtMS45My0xLjkzWm0xMi40Ny41NmEuNS41IDAgMCAwLS44My0uNTYgNy4wNCA3LjA0IDAgMCAxLTEuOTMgMS45My41LjUgMCAxIDAgLjU2LjgzIDguMDQgOC4wNCAwIDAgMCAyLjItMi4yWm0tOC4wMiAyLjQyYS41LjUgMCAxIDAtLjIuOTggOC4wMyA4LjAzIDAgMCAwIDMuMTMgMCAuNS41IDAgMCAwLS4yLS45OCA3LjA0IDcuMDQgMCAwIDEtMi43MyAwWk0xNiAxMGE2IDYgMCAxIDEtMTIgMCA2IDYgMCAwIDEgMTIgMFpNOS4xMyA3LjE4QS43NS43NSAwIDAgMCA4IDcuODN2NC4zNGMwIC41Ny42My45NCAxLjEzLjY1bDQuMTItMi4zOWEuNS41IDAgMCAwIDAtLjg2TDkuMTMgNy4xOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVIaW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlSGludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMtLjUzIDAtMS4wNi4wNS0xLjU2LjE1YS41LjUgMCAwIDAgLjIuOTggNy4wNCA3LjA0IDAgMCAxIDIuNzMgMCAuNS41IDAgMCAwIC4yLS45OEMxMS4wNSAyLjA1IDEwLjUyIDIgMTAgMlptNC40NSAxLjM1YS41LjUgMCAwIDAtLjU2LjgzIDcuMDQgNy4wNCAwIDAgMSAxLjkzIDEuOTMuNS41IDAgMSAwIC44My0uNTYgOC4wNCA4LjA0IDAgMCAwLTIuMi0yLjJabS04LjM0LjgzYS41LjUgMCAxIDAtLjU2LS44MyA4LjA0IDguMDQgMCAwIDAtMi4yIDIuMi41LjUgMCAxIDAgLjgzLjU2QTcuMDQgNy4wNCAwIDAgMSA2LjEgNC4xOFpNMy4xMyA4LjYzYS41LjUgMCAwIDAtLjk4LS4yIDguMDQgOC4wNCAwIDAgMCAwIDMuMTMuNS41IDAgMCAwIC45OC0uMiA3LjA0IDcuMDQgMCAwIDEgMC0yLjczWm0xNC43Mi0uMmEuNS41IDAgMSAwLS45OC4yIDcuMDQgNy4wNCAwIDAgMSAwIDIuNzQuNS41IDAgMSAwIC45OC4yIDguMDMgOC4wMyAwIDAgMCAwLTMuMTNaTTQuMTggMTMuOWEuNS41IDAgMSAwLS44My41NiA4LjA0IDguMDQgMCAwIDAgMi4yIDIuMi41LjUgMCAxIDAgLjU2LS44MyA3LjA0IDcuMDQgMCAwIDEtMS45My0xLjkzWm0xMi40Ny41NmEuNS41IDAgMCAwLS44My0uNTYgNy4wNCA3LjA0IDAgMCAxLTEuOTMgMS45My41LjUgMCAxIDAgLjU2LjgzIDguMDQgOC4wNCAwIDAgMCAyLjItMi4yWm0tOC4wMiAyLjQyYS41LjUgMCAxIDAtLjIuOTggOC4wMyA4LjAzIDAgMCAwIDMuMTMgMCAuNS41IDAgMCAwLS4yLS45OCA3LjA0IDcuMDQgMCAwIDEtMi43MyAwWk04IDcuODNjMC0uNTcuNjMtLjk0IDEuMTMtLjY1bDQuMTIgMi4zOWEuNS41IDAgMCAxIDAgLjg2bC00LjEyIDIuMzlBLjc1Ljc1IDAgMCAxIDggMTIuMTdWNy44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlDaXJjbGVTcGFya2xlRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEyYy0uMjcgMC0uNTItLjA4LS43NC0uMjNhMS40IDEuNCAwIDAgMS0uNDgtLjYybC0uMjYtLjhhLjUyLjUyIDAgMCAwLS4xNC0uMjIuNjQuNjQgMCAwIDAtLjIyLS4xNGwtLjc3LS4yNWMtLjI3LS4xLS40OS0uMjYtLjY1LS40OGExLjMgMS4zIDAgMCAxLS4xMi0xLjMgMS4zMiAxLjMyIDAgMCAxLS40NS0uMjIgMS41MSAxLjUxIDAgMCAxLS41Mi0uNjlsLS4zNi0xLjA5YTEuMjcgMS4yNyAwIDAgMC0uMjktLjQ3IDEuMyAxLjMgMCAwIDAtLjQ3LS4zbC0xLjA2LS4zNEExLjQxIDEuNDEgMCAwIDEgMTAgMy41YTEuNCAxLjQgMCAwIDEgLjk1LTEuMzVsLjIyLS4wN2E4IDggMCAxIDAgNi41OSA5LjlsLS4yNi4wMlpNOCA3LjgzYzAtLjU3LjYzLS45NCAxLjEzLS42NWw0LjEyIDIuMzlhLjUuNSAwIDAgMSAwIC44NmwtNC4xMiAyLjM5QS43NS43NSAwIDAgMSA4IDEyLjE3VjcuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlU3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZVNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEyYy0uMjYgMC0uNTEtLjA4LS43My0uMjJBNyA3IDAgMSAxIDEwLjEgM2ExLjQyIDEuNDIgMCAwIDEgLjg2LS44NWwuMjItLjA3YTggOCAwIDEgMCA2LjU5IDkuOWwtLjI2LjAyWk05LjEzIDcuMThBLjc1Ljc1IDAgMCAwIDggNy44M3Y0LjM0YzAgLjU3LjYzLjk0IDEuMTMuNjVsNC4xMi0yLjM5YS41LjUgMCAwIDAgMC0uODZMOS4xMyA3LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheVNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy4yMiA4LjY4YTEuNSAxLjUgMCAwIDEgMCAyLjYzTDEyIDE0LjJBNS41IDUuNSAwIDAgMCA1IDkuMlY0LjVhMS41IDEuNSAwIDAgMSAyLjIzLTEuMzJsMTAgNS41Wk00LjA2IDExLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgNCAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTYtLjU1YTIgMiAwIDAgMSAxLjQ0LTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSA5IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTUuNTVaTTYuNSAxNS41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheVNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy4yMiA4LjY5YTEuNSAxLjUgMCAwIDEgMCAyLjYybC01LjIzIDIuODhhNS41IDUuNSAwIDAgMC0uMTYtMS4wNWw0LjktMi43YS41LjUgMCAwIDAgMC0uODhsLTkuOTktNS41QS41LjUgMCAwIDAgNiA0LjV2NC41MmMtLjM0LjAzLS42OC4xLTEgLjE5VjQuNWExLjUgMS41IDAgMCAxIDIuMjItMS4zMmwxMCA1LjVaTTQuMDYgMTEuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSA0IDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDkgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVpNNi41IDE1LjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheWluZ0NhcmRzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlpbmdDYXJkc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjA3IDEzYTIgMiAwIDAgMCAxLjQxIDIuNDZsNS40NiAxLjQ3YTIgMiAwIDAgMCAyLjQ1LTEuNDFMMTYuOTMgNmEyIDIgMCAwIDAtMS40MS0yLjQ2bC01LjQ2LTEuNDdBMiAyIDAgMCAwIDcuNiAzLjVMNS4wNyAxM1pNNSA0djUuMzhsMS43Ny02LjY0Yy4wNy0uMjcuMTktLjUyLjM0LS43NEg3YTIgMiAwIDAgMC0yIDJaTTIuNjcgNS41IDQgMTAuNDhWNGEzIDMgMCAwIDEgLjE2LS45NmwtLjA4LjAyQTIgMiAwIDAgMCAyLjY3IDUuNVpNMTMgNmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0zIDhhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheWluZ0NhcmRzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5aW5nQ2FyZHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuMDcgMTNhMiAyIDAgMCAwIDEuNDEgMi40Nmw1LjQ2IDEuNDdhMiAyIDAgMCAwIDIuNDUtMS40MUwxNi45MyA2YTIgMiAwIDAgMC0xLjQxLTIuNDZsLTUuNDYtMS40N0EyIDIgMCAwIDAgNy42IDMuNUw1LjA3IDEzWm0xLjY3IDEuNWExIDEgMCAwIDEtLjctMS4yM2wyLjUzLTkuNTJhMSAxIDAgMCAxIDEuMjMtLjcxbDUuNDYgMS40N2ExIDEgMCAwIDEgLjcgMS4yM2wtMi41MyA5LjUyYTEgMSAwIDAgMS0xLjIzLjdMNi43NCAxNC41Wk00IDEwLjQ3IDIuNjcgNS41MWEyIDIgMCAwIDEgMS40MS0yLjQ1bC4wOC0uMDJBMyAzIDAgMCAwIDQgNHYuMTlhMSAxIDAgMCAwLS4zNiAxLjA2TDQgNi42djMuODZabTEtMS4wOVY0YzAtMS4xLjktMiAyLTJoLjFhMi41IDIuNSAwIDAgMC0uMzMuNzRsLS4wOC4zMUExIDEgMCAwIDAgNiA0djEuNjRMNSA5LjM4Wk0xMyA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTMgOGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdDb25uZWN0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNzggMy4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjQ1IDIuNDVhNC4wNCA0LjA0IDAgMCAwLTUuMTIuNDhsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDMuNiAzLjZjLjU4LjU5IDEuNTIuNTkgMi4xIDBsLjMtLjNhNC4wNCA0LjA0IDAgMCAwIC40OC01LjEybDIuNDUtMi40NVpNNy41NSA4Ljg1YTEuNDkgMS40OSAwIDAgMC0yLjEgMGwtLjMuM2E0LjA0IDQuMDQgMCAwIDAtLjQ4IDUuMTJsLTIuNDUgMi40NWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuNDUtMi40NWE0LjA0IDQuMDQgMCAwIDAgNS4xMi0uNDhsLjMtLjNjLjU5LS41OC41OS0xLjUyIDAtMi4xbC0zLjYtMy42WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuODUgMi44NWEuNS41IDAgMCAwLS43LS43TDE0LjQ4IDQuOGE0LjA0IDQuMDQgMCAwIDAtNS4zMy4zNGwtLjMuM2ExLjQ5IDEuNDkgMCAwIDAgMCAyLjFsMy42IDMuNmMuNTguNTkgMS41Mi41OSAyLjEgMGwuMy0uM2E0LjA0IDQuMDQgMCAwIDAgLjM0LTUuMzNsMi42Ni0yLjY3Wm0tNCA3LjZjLS4yLjE5LS41LjE5LS43IDBsLTMuNi0zLjZjLS4xOS0uMi0uMTktLjUgMC0uN2wuMy0uM2EzLjA0IDMuMDQgMCAwIDEgNC4zIDQuM2wtLjMuM1ptLTYuMy0xLjZhMS40OSAxLjQ5IDAgMCAwLTIuMSAwbC0uMy4zYTQuMDQgNC4wNCAwIDAgMC0uMzQgNS4zM2wtMi42NiAyLjY3YS41LjUgMCAwIDAgLjcuN2wyLjY3LTIuNjZhNC4wNCA0LjA0IDAgMCAwIDUuMzMtLjM0bC4zLS4zYy41OS0uNTguNTktMS41MiAwLTIuMWwtMy42LTMuNlptLTEuNC43Yy4yLS4xOS41LS4xOS43IDBsMy42IDMuNmMuMTkuMi4xOS41IDAgLjdsLS4zLjNhMy4wNCAzLjA0IDAgMSAxLTQuMy00LjNsLjMtLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdDb25uZWN0ZWRBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNzggMy4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjQ1IDIuNDVhNC4wNCA0LjA0IDAgMCAwLTUuMTIuNDhsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDIuNDYgMi40N2E1LjQ4IDUuNDggMCAwIDEgNC41NS0uODUgNC4wNCA0LjA0IDAgMCAwLS41My0zLjQ0bDIuNDUtMi40NVpNNy41NSA4Ljg1bDIuNDcgMi40NmE1LjQ4IDUuNDggMCAwIDAtLjg1IDQuNTUgNC4wNCA0LjA0IDAgMCAxLTMuNDQtLjUzbC0yLjQ1IDIuNDVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwyLjQ1LTIuNDVhNC4wNCA0LjA0IDAgMCAxIC40OC01LjEybC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMFptOS40NSA5LjRhNC41IDQuNSAwIDEgMS01LTcuNSA0LjUgNC41IDAgMCAxIDUgNy41Wm0tMi4xNS02LjFhLjUuNSAwIDAgMC0uODUuMzVWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVhLjUuNSAwIDAgMC0uMTUtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuOTYgMi4zYS41LjUgMCAwIDAtLjgyLS4xNWwtMi43IDIuN2E0LjA0IDQuMDQgMCAwIDAtNS4zMy4zM2wtLjYuNjFhMS4wNSAxLjA1IDAgMCAwIDAgMS40OWwyLjc2IDIuNzZjLjI4LS4yLjU4LS4zNy44OS0uNTJMOS41MiA2Ljg4YS41LjUgMCAwIDEgMC0uN2wuMy0uM2EzLjAzIDMuMDMgMCAwIDEgNC4yOSAwdi4wMmEzLjA0IDMuMDQgMCAwIDEgLjczIDMuMTFjLjM0LjAyLjY4LjA3IDEgLjE2YTQuMDMgNC4wMyAwIDAgMC0uNjktMy42MmwyLjctMi43YS41LjUgMCAwIDAgLjExLS41NFpNNy4yOCA4LjVsMi43NyAyLjc3Yy0uMi4yOC0uMzguNTctLjUzLjg4TDYuOSA5LjUyYS40OS40OSAwIDAgMC0uNyAwbC0uMy4zYTMuMDQgMy4wNCAwIDAgMCAwIDQuMjloLjAxYTMuMDMgMy4wMyAwIDAgMCAzLjExLjczYy4wMi4zNS4wNy42OC4xNSAxYTQuMDMgNC4wMyAwIDAgMS0zLjYtLjY5bC0yLjcgMi43YS41LjUgMCAxIDEtLjcxLS43bDIuNy0yLjdhNC4wMyA0LjAzIDAgMCAxIC4zMy01LjM0bC4zLS4zLjMxLS4zMWExLjA1IDEuMDUgMCAwIDEgMS40OSAwWk0xNyAxOC4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41YS41LjUgMCAwIDAtLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWRDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZENoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy43OCAzLjI4YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTIuNDUgMi40NWE0LjA0IDQuMDQgMCAwIDAtNS4xMi40OGwtLjMuM2ExLjQ5IDEuNDkgMCAwIDAgMCAyLjFsMi40NiAyLjQ3YTUuNDggNS40OCAwIDAgMSA0LjU1LS44NSA0LjA0IDQuMDQgMCAwIDAtLjUzLTMuNDRsMi40NS0yLjQ1Wk03LjU1IDguODVsMi40NyAyLjQ2YTUuNDggNS40OCAwIDAgMC0uODUgNC41NSA0LjA0IDQuMDQgMCAwIDEtMy40NC0uNTNsLTIuNDUgMi40NWEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDIuNDUtMi40NWE0LjA0IDQuMDQgMCAwIDEgLjQ4LTUuMTJsLjMtLjNhMS40OSAxLjQ5IDAgMCAxIDIuMSAwWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWRDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdDb25uZWN0ZWRDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNC40OCA0LjhhNC4wNCA0LjA0IDAgMCAwLTUuMzMuMzRsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDIuNDYgMi40N2MuMjgtLjIuNTgtLjM4LjktLjUyTDkuNTUgNi44NWMtLjE5LS4yLS4xOS0uNSAwLS43bC4zLS4zYTMuMDQgMy4wNCAwIDAgMSA1LjAxIDMuMTZjLjM1LjAyLjY4LjA4IDEgLjE2LjM3LTEuMjMuMTUtMi42LS42Ny0zLjY1bDIuNjYtMi42N1ptLTEwLjMgNiAyLjQ3IDIuNDZjLS4yLjI4LS4zOC41OC0uNTIuOUw2Ljg1IDkuNTVjLS4yLS4xOS0uNS0uMTktLjcgMGwtLjMuM2EzLjA0IDMuMDQgMCAwIDAgMy4xNiA1LjAxYy4wMi4zNS4wOC42OC4xNiAxLTEuMjMuMzctMi42LjE1LTMuNjUtLjY3bC0yLjY3IDIuNjZhLjUuNSAwIDAgMS0uNy0uN2wyLjY2LTIuNjdhNC4wNCA0LjA0IDAgMCAxIC4zNC01LjMzbC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMFpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkU2V0dGluZ3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZFNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3Ljc4IDMuMjhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi40NSAyLjQ1YTQuMDQgNC4wNCAwIDAgMC01LjEyLjQ4bC0uMy4zYTEuNDkgMS40OSAwIDAgMCAwIDIuMWwyLjQ2IDIuNDdhNS40OCA1LjQ4IDAgMCAxIDQuNTUtLjg1IDQuMDQgNC4wNCAwIDAgMC0uNTMtMy40NGwyLjQ1LTIuNDVaTTcuNTUgOC44NWwyLjQ3IDIuNDZhNS40OCA1LjQ4IDAgMCAwLS44NSA0LjU1IDQuMDQgNC4wNCAwIDAgMS0zLjQ0LS41M2wtMi40NSAyLjQ1YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMi40NS0yLjQ1YTQuMDQgNC4wNCAwIDAgMSAuNDgtNS4xMmwuMy0uM2ExLjQ5IDEuNDkgMCAwIDEgMi4xIDBabTMuMDkgNS4wN2EyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40Ni0uMTJabTIuODYuNThhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZFNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNC40OCA0LjhhNC4wNCA0LjA0IDAgMCAwLTUuMzMuMzRsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDIuNDYgMi40N2MuMjgtLjIuNTgtLjM4LjktLjUyTDkuNTUgNi44NWMtLjE5LS4yLS4xOS0uNSAwLS43bC4zLS4zYTMuMDQgMy4wNCAwIDAgMSA1LjAxIDMuMTZjLjM1LjAyLjY4LjA4IDEgLjE2LjM3LTEuMjMuMTUtMi42LS42Ny0zLjY1bDIuNjYtMi42N1ptLTEwLjMgNiAyLjQ3IDIuNDZjLS4yLjI4LS4zOC41OC0uNTIuOUw2Ljg1IDkuNTVjLS4yLS4xOS0uNS0uMTktLjcgMGwtLjMuM2EzLjA0IDMuMDQgMCAwIDAgMy4xNiA1LjAxYy4wMi4zNS4wOC42OC4xNiAxLTEuMjMuMzctMi42LjE1LTMuNjUtLjY3bC0yLjY3IDIuNjZhLjUuNSAwIDAgMS0uNy0uN2wyLjY2LTIuNjdhNC4wNCA0LjA0IDAgMCAxIC4zNC01LjMzbC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMFptMy4wOSA1LjA3YTIgMiAwIDAgMCAxLjQzLTIuNDhsLS4xNi0uNTVjLjI1LS4yLjUzLS4zNy44Mi0uNWwuMzQuMzZhMiAyIDAgMCAwIDIuOSAwbC4zMy0uMzVjLjMuMTQuNTguMzIuODQuNTJsLS4xMy40MmEyIDIgMCAwIDAgMS40NiAyLjUybC4zNS4wOWE0LjcgNC43IDAgMCAxIDAgMS4wMWwtLjQ1LjEyYTIgMiAwIDAgMC0xLjQzIDIuNDhsLjE1LjU1Yy0uMjUuMi0uNTMuMzctLjgyLjVsLS4zNC0uMzZhMiAyIDAgMCAwLTIuOSAwbC0uMzMuMzVjLS4zLS4xNC0uNTgtLjMyLS44NC0uNTJsLjEzLS40MmEyIDIgMCAwIDAtMS40Ni0yLjUybC0uMzUtLjA5YTQuNzEgNC43MSAwIDAgMSAwLTEuMDFsLjQ2LS4xMlptMi44Ni41OGExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdEaXNjb25uZWN0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNzggMi4yMmMuMy4zLjMuNzcgMCAxLjA2bC0xLjQ1IDEuNDVhNC4wNCA0LjA0IDAgMCAxLS40OCA1LjEybC0uMy4zLS4zLjMxYy0uNDIuNDEtMS4wOC40MS0xLjUgMEw5LjU1IDYuMjRhMS4wNSAxLjA1IDAgMCAxIDAtMS40OGwuNi0uNjFhNC4wNSA0LjA1IDAgMCAxIDUuMTMtLjQ4bDEuNDUtMS40NWMuMy0uMy43Ny0uMyAxLjA2IDBabS05IDYuMjVjLjMuMy4zLjc3IDAgMS4wNkw3LjUxIDEwLjhsMS42OSAxLjcgMS4yNy0xLjI4YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTEuMjggMS4yOGMuNDguNTguNDUgMS40NS0uMSAybC0uMy4zYTQuMDQgNC4wNCAwIDAgMS01LjEyLjQ3bC0xLjQ1IDEuNDVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjQ1LTEuNDVhNC4wNCA0LjA0IDAgMCAxIC40OC01LjEybC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLS4xbDEuMjctMS4yOGMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnRGlzY29ubmVjdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy44NSAyLjE1Yy4yLjIuMi41IDAgLjdMMTYuMiA0LjUyYTQuMDQgNC4wNCAwIDAgMS0uMzQgNS4zM2wtLjMuMy0uMy4zMWMtLjQyLjQxLTEuMDguNDEtMS41IDBMOS41NSA2LjI0YTEuMDUgMS4wNSAwIDAgMSAwLTEuNDhsLjYtLjYxYTQuMDQgNC4wNCAwIDAgMSA1LjM0LS4zNGwxLjY3LTEuNjZjLjItLjIuNS0uMi43IDBabS0yLjcxIDIuN2EzLjA0IDMuMDQgMCAwIDAtNC4yOSAwbC0uMy4zYy0uMTkuMi0uMTkuNSAwIC43bDMuNiAzLjZjLjIuMTkuNS4xOS43IDBsLjMtLjNhMy4wNCAzLjA0IDAgMCAwIDAtNC4yOWwtLjAxLS4wMVptLTUuNzkgMy44Yy4yLjIuMi41IDAgLjdMNy43MSAxMSA5IDEyLjNsMS42NS0xLjY1YS41LjUgMCAwIDEgLjcuN0w5LjcxIDEzbC40NC40NWMuNTkuNTguNTkgMS41MiAwIDIuMWwtLjMuM2E0LjA0IDQuMDQgMCAwIDEtNS4zMy4zNGwtMS42NyAxLjY2YS41LjUgMCAwIDEtLjctLjdsMS42Ni0xLjY3YTQuMDQgNC4wNCAwIDAgMSAuMzQtNS4zM2wuMy0uM2ExLjQ5IDEuNDkgMCAwIDEgMi4xIDBsLjQ1LjQ0IDEuNjUtMS42NGMuMi0uMi41LS4yLjcgMFptLTQuNSA2LjVhMy4wNCAzLjA0IDAgMCAwIDQuMyAwbC4zLS4zYy4xOS0uMi4xOS0uNSAwLS43bC0zLjYtMy42Yy0uMi0uMTktLjUtLjE5LS43IDBsLS4zLjNhMy4wNCAzLjA0IDAgMCAwIDAgNC4zWlwiXSk7XG5leHBvcnQgY29uc3QgUG9pbnRTY2FuRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvaW50U2NhbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDIuNWEuNS41IDAgMCAwLTEgMHY0LjAyQTUgNSAwIDAgMCAzLjUyIDExSDhWNi41MmE1LjA3IDUuMDcgMCAwIDEgMSAwVjIuNVpNMi41IDExaDEuMDJhNS4wNiA1LjA2IDAgMCAwIDAgMUgyLjVhLjUuNSAwIDAgMSAwLTFaTTggMTcuNXYtMS4wMmE1LjA3IDUuMDcgMCAwIDAgMSAwdjEuMDJhLjUuNSAwIDAgMS0xIDBabTUuNDgtNS41aDQuMDJhLjUuNSAwIDAgMCAwLTFoLTQuMDJhNS4wNyA1LjA3IDAgMCAxIDAgMUg5djQuNDhBNSA1IDAgMCAwIDEzLjQ4IDEyWk04IDE2LjQ4QTUgNSAwIDAgMSAzLjUyIDEySDh2NC40OFpNOSAxMWg0LjQ4QTUgNSAwIDAgMCA5IDYuNTJWMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2ludFNjYW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvaW50U2NhblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDJjLjI4IDAgLjUuMjIuNS41djQuMDJBNSA1IDAgMCAxIDEzLjQ4IDExaDQuMDJhLjUuNSAwIDAgMSAwIDFoLTQuMDJBNSA1IDAgMCAxIDkgMTYuNDh2MS4wMmEuNS41IDAgMCAxLTEgMHYtMS4wMkE1IDUgMCAwIDEgMy41MiAxMkgyLjVhLjUuNSAwIDAgMSAwLTFoMS4wMkE1IDUgMCAwIDEgOCA2LjUyVjIuNWMwLS4yOC4yMi0uNS41LS41Wk00LjUzIDEyQTQgNCAwIDAgMCA4IDE1LjQ3VjEySDQuNTNaTTggMTFWNy41M0E0IDQgMCAwIDAgNC41MyAxMUg4Wm0xIDF2My40N0E0IDQgMCAwIDAgMTIuNDcgMTJIOVptMy40Ny0xQTQgNCAwIDAgMCA5IDcuNTNWMTFoMy40N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMSAwIDQgMFY0YTIgMiAwIDAgMC0yLTJabS02IDhhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDEgMCA0IDB2LTRhMiAyIDAgMCAwLTItMlptMTItNGEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMSAwIDQgMFY4YTIgMiAwIDAgMC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDRhMiAyIDAgMSAxIDQgMHYxMmEyIDIgMCAxIDEtNCAwVjRabTItMWExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDEgMCAyIDBWNGExIDEgMCAwIDAtMS0xWm0tOCA5YTIgMiAwIDEgMSA0IDB2NGEyIDIgMCAxIDEtNCAwdi00Wm0yLTFhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDEgMCAyIDB2LTRhMSAxIDAgMCAwLTEtMVptMTItNWEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMSAwIDQgMFY4YTIgMiAwIDAgMC0yLTJabS0xIDJhMSAxIDAgMSAxIDIgMHY4YTEgMSAwIDEgMS0yIDBWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxIb3Jpem9udGFsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGxIb3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDEwYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAxIDAgMCA0aDEyYTIgMiAwIDAgMCAyLTJabS04LTZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAwIDAgMi0yWm00IDEyYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAxIDAgMCA0aDhhMiAyIDAgMCAwIDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxIb3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsSG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgOGEyIDIgMCAxIDEgMCA0SDRhMiAyIDAgMSAxIDAtNGgxMlptMSAyYTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAgMCAyaDEyYTEgMSAwIDAgMCAxLTFaTTggMmEyIDIgMCAxIDEgMCA0SDRhMiAyIDAgMSAxIDAtNGg0Wm0xIDJhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMCAwIDJoNGExIDEgMCAwIDAgMS0xWm01IDEyYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAxIDAgMCA0aDhhMiAyIDAgMCAwIDItMlptLTItMWExIDEgMCAxIDEgMCAySDRhMSAxIDAgMSAxIDAtMmg4WlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggOC43VjE2YTIgMiAwIDEgMCA0IDB2LTMuM2wyIDJWMTZhMiAyIDAgMCAwIDMuMDIgMS43MmwuMTMuMTNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43TDggOC43MVptNi0uN3YzLjg4bDQgNFY4YTIgMiAwIDEgMC00IDBaTTggNS44OGw0IDRWNGEyIDIgMCAxIDAtNCAwdjEuODhaTTQgMTBhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDEgMCA0IDB2LTRhMiAyIDAgMCAwLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGxPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggOC43IDIuMTUgMi44NmEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtLjEzLS4xM0EyIDIgMCAwIDEgMTQgMTZ2LTEuM2wtMi0yVjE2YTIgMiAwIDEgMS00IDBWOC43Wm0zIDMtMi0yVjE2YTEgMSAwIDEgMCAyIDB2LTQuM1ptNCA0di4zYTEgMSAwIDAgMCAxLjI2Ljk3TDE1IDE1LjdaTTExIDR2NC44OGwxIDFWNGEyIDIgMCAxIDAtNCAwdjEuODhsMSAxVjRhMSAxIDAgMCAxIDIgMFptMyA3Ljg4IDEgMVY4YTEgMSAwIDEgMSAyIDB2Ni44OGwxIDFWOGEyIDIgMCAxIDAtNCAwdjMuODhaTTIgMTJhMiAyIDAgMSAxIDQgMHY0YTIgMiAwIDEgMS00IDB2LTRabTItMWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMSAwIDIgMHYtNGExIDEgMCAwIDAtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydEhkbWlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydEhkbWlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC44NSA3LjQ0QTEuNSAxLjUgMCAwIDEgNS45MSA3aDguMThjLjQgMCAuNzguMTYgMS4wNi40NGwyLjQxIDIuNDFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZ2LjU5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDExLjV2LS41OWMwLS40LjE2LS43OC40NC0xLjA2bDIuNDEtMi40MVpNNi41IDkuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydEhkbWlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvcnRIZG1pUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljg1IDcuNDRBMS41IDEuNSAwIDAgMSA1LjkxIDdoOC4xOGMuNCAwIC43OC4xNiAxLjA2LjQ0bDIuNDEgMi40MWMuMjguMjguNDQuNjcuNDQgMS4wNnYuNTljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDIgMTEuNXYtLjU5YzAtLjQuMTYtLjc4LjQ0LTEuMDZsMi40MS0yLjQxWk01LjkxIDhhLjUuNSAwIDAgMC0uMzUuMTVsLTIuNDEgMi40MWEuNS41IDAgMCAwLS4xNS4zNXYuNTljMCAuMjguMjIuNS41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNXYtLjU5YS41LjUgMCAwIDAtLjE1LS4zNWwtMi40MS0yLjQxYS41LjUgMCAwIDAtLjM1LS4xNUg1LjlaTTYgMTBjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNiAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvcnRNaWNyb1VzYkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0TWljcm9Vc2JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi40MyA4LjNjLjI2LS4yLjU4LS4zLjktLjNoNS4zNGMuMzIgMCAuNjQuMS45LjNsMS4zMyAxQTEuNSAxLjUgMCAwIDEgMTQgMTJINmExLjUgMS41IDAgMCAxLS45LTIuN2wxLjMzLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3J0TWljcm9Vc2JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvcnRNaWNyb1VzYlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi40MyA4LjNjLjI2LS4yLjU4LS4zLjktLjNoNS4zNGMuMzIgMCAuNjQuMS45LjNsMS4zMyAxQTEuNSAxLjUgMCAwIDEgMTQgMTJINmExLjUgMS41IDAgMCAxLS45LTIuN2wxLjMzLTFabS45LjdhLjUuNSAwIDAgMC0uMy4xbC0xLjMzIDFhLjUuNSAwIDAgMCAuMy45aDhhLjUuNSAwIDAgMCAuMy0uOWwtMS4zMy0xYS41LjUgMCAwIDAtLjMtLjFINy4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvcnRVc2JBRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvcnRVc2JBRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSA3QzMuNjcgNyAzIDcuNjcgMyA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVptMCAxLjVoMTFWMTBoLTExVjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvcnRVc2JBUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0VXNiQVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDdDMy42NyA3IDMgNy42NyAzIDguNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk00IDguNWMwLS4yOC4yMi0uNS41LS41aDExYy4yOCAwIC41LjIyLjUuNVYxMEg0VjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvcnRVc2JDRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvcnRVc2JDRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxMGMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMSAxIDAgNGgtN2EyIDIgMCAwIDEtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvcnRVc2JDUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMTBjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDEgMSAwIDRoLTdhMiAyIDAgMCAxLTItMlptMi0xYTEgMSAwIDAgMCAwIDJoN2ExIDEgMCAxIDAgMC0yaC03WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25CYWNrd2FyZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvbkJhY2t3YXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoNkEyLjUgMi41IDAgMCAxIDEzIDQuNVY2SDkuNUEzLjUgMy41IDAgMCAwIDYgOS41VjEzSDQuNUEyLjUgMi41IDAgMCAxIDIgMTAuNXYtNlpNOS41IDdBMi41IDIuNSAwIDAgMCA3IDkuNXY2QTIuNSAyLjUgMCAwIDAgOS41IDE4aDZhMi41IDIuNSAwIDAgMCAyLjUtMi41di02QTIuNSAyLjUgMCAwIDAgMTUuNSA3aC02Wk04IDkuNUM4IDguNjcgOC42NyA4IDkuNSA4aDZjLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSA4IDE1LjV2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvbkJhY2t3YXJkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvbkJhY2t3YXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djZBMi41IDIuNSAwIDAgMCA0LjUgMTNINnYtMS43bC0uNy43aC0uOGExLjUgMS41IDAgMCAxLS42NS0uMTVMNiA5LjcxVjkuNWMwLS41Ny4xNC0xLjExLjM4LTEuNTlsLTMuMjMgMy4yNEExLjUgMS41IDAgMCAxIDMgMTAuNXYtLjk0TDkuNTYgM2guOTRjLjIzIDAgLjQ1LjA1LjY1LjE1TDcuOSA2LjM4QTMuNDkgMy40OSAwIDAgMSA5LjUgNmguMmwyLjE1LTIuMTVjLjEuMi4xNS40Mi4xNS42NXYuOGwtLjcuN0gxM1Y0LjVBMi41IDIuNSAwIDAgMCAxMC41IDJoLTZaTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoLjY1TDMgNS4xNVY0LjVabTAgMi4wNkw2LjU2IDNoMS41OUwzIDguMTVWNi41NlpNNyA5LjVBMi41IDIuNSAwIDAgMSA5LjUgN2g2QTIuNSAyLjUgMCAwIDEgMTggOS41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC02QTIuNSAyLjUgMCAwIDEgNyAxNS41di02Wk05LjUgOEM4LjY3IDggOCA4LjY3IDggOS41djZjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25Gb3J3YXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uRm9yd2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDE0djEuNUEyLjUgMi41IDAgMCAwIDkuNSAxOGg2YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNkEyLjUgMi41IDAgMCAwIDE1LjUgN0gxNHYxaDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDggMTUuNVYxNEg3Wk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDZBMi41IDIuNSAwIDAgMSAxMyA0LjV2NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTZBMi41IDIuNSAwIDAgMSAyIDEwLjV2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvbkZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uRm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAxNHYxLjVBMi41IDIuNSAwIDAgMCA5LjUgMThoNmEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTZBMi41IDIuNSAwIDAgMCAxNS41IDdIMTR2MWgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSA4IDE1LjVWMTRIN1pNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg2QTIuNSAyLjUgMCAwIDEgMTMgNC41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC02QTIuNSAyLjUgMCAwIDEgMiAxMC41di02Wk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41di42NUw1LjE1IDNINC41Wm0yLjA2IDBMMyA2LjU2djEuNTlMOC4xNSAzSDYuNTZaTTMgMTAuNWMwIC4yMy4wNS40NS4xNS42NWw4LThBMS41IDEuNSAwIDAgMCAxMC41IDNoLS45NEwzIDkuNTZ2Ljk0Wk00LjUgMTJoLjhMMTIgNS4zdi0uOGMwLS4yMy0uMDUtLjQ1LS4xNS0uNjVsLTggOGMuMi4xLjQyLjE1LjY1LjE1Wm01LjIgMGguOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LS44TDkuNyAxMlptLTEuNCAwTDEyIDguM1Y2LjdMNi43IDEyaDEuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvc2l0aW9uVG9CYWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9CYWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDE0YzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtM2EyIDIgMCAwIDEtMi0ydi0zWm0yLTFhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTNaTTUgOWgxLjNDNy44IDkgOSA3LjggOSA2LjNWNWgzLjVBMi41IDIuNSAwIDAgMSAxNSA3LjVWMTFoLTEuM2EyLjcgMi43IDAgMCAwLTIuNyAyLjdWMTVINy41QTIuNSAyLjUgMCAwIDEgNSAxMi41VjlaTTEgM2MwLTEuMS45LTIgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjNabTItMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvblRvQmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9zaXRpb25Ub0JhY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyIDE0YzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtM2EyIDIgMCAwIDEtMi0ydi0zWm0yLTFhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTNaTTUgOXYzLjVBMi41IDIuNSAwIDAgMCA3LjUgMTVIMTF2LTFIOS43bDEuNjctMS42NmMuMjMtLjQuNTctLjc0Ljk3LS45N0wxNCA5LjdWMTFoMVY3LjVBMi41IDIuNSAwIDAgMCAxMi41IDVIOXYxaDEuM0w4LjYyIDcuNjZjLS4yMy40LS41Ny43NC0uOTcuOTdMNiAxMC4zVjlINVptNi43LTNoLjhjLjIzIDAgLjQ1LjA1LjY1LjE1bC03IDdBMS41IDEuNSAwIDAgMSA2IDEyLjV2LS44TDExLjcgNlptLTQuMiA4YTEuNSAxLjUgMCAwIDEtLjY1LS4xNWw3LTdjLjEuMi4xNS40Mi4xNS42NXYuOEw4LjMgMTRoLS44Wk0xIDNjMC0xLjEuOS0yIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlYzWm0yLTFhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgzWlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25Ub0Zyb250RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9Gcm9udEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xIDNjMC0xLjEuOS0yIDItMmgzYTIgMiAwIDAgMSAyIDJ2MWgtLjVjLS4xNyAwLS4zNC4wMS0uNS4wNFYzYTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgxLjA0QzQgNy4xNiA0IDcuMzMgNCA3LjVWOEgzYTIgMiAwIDAgMS0yLTJWM1ptMTEgMTN2MWMwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtM2EyIDIgMCAwIDAtMi0yaC0xdi41YzAgLjE3LS4wMS4zNC0uMDQuNUgxN2ExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMWgtM2ExIDEgMCAwIDEtMS0xdi0xLjA0Yy0uMTYuMDMtLjMzLjA0LS41LjA0SDEyWk01IDcuNUEyLjUgMi41IDAgMCAxIDcuNSA1aDVBMi41IDIuNSAwIDAgMSAxNSA3LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSA1IDEyLjV2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvblRvRnJvbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9Gcm9udFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxYTIgMiAwIDAgMC0yIDJ2M2MwIDEuMS45IDIgMiAyaDF2LS41YzAtLjE3LjAxLS4zNC4wNC0uNUgzYTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXYxLjA0QzcuMTYgNCA3LjMzIDQgNy41IDRIOFYzYTIgMiAwIDAgMC0yLTJIM1ptOSAxNnYtMWguNWMuMTcgMCAuMzQtLjAxLjUtLjA0VjE3YTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTEuMDRjLjAzLS4xNi4wNC0uMzMuMDQtLjVWMTJoMWEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtM2EyIDIgMCAwIDEtMi0yWk01IDcuNUEyLjUgMi41IDAgMCAxIDcuNSA1aDVBMi41IDIuNSAwIDAgMSAxNSA3LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSA1IDEyLjV2LTVabTIuMjgtMS40OGExLjUgMS41IDAgMCAwLTEuMjYgMS4yNmwxLjI2LTEuMjZaTTYgMTAuMjkgMTAuMyA2SDguN0w2IDguN3YxLjZaTTExLjcgNiA2IDExLjd2LjhjMCAuMjMuMDUuNDUuMTUuNjVsNy03QTEuNSAxLjUgMCAwIDAgMTIuNSA2aC0uOFptLTQuMiA4aC44TDE0IDguM3YtLjhjMC0uMjMtLjA1LS40NS0uMTUtLjY1bC03IDdjLjIuMS40Mi4xNS42NS4xNVptMi4yIDBoMS42bDIuNy0yLjdWOS43TDkuNyAxNFptMy4wMi0uMDJhMS41IDEuNSAwIDAgMCAxLjI2LTEuMjZsLTEuMjYgMS4yNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvd2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvd2VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjc1IDIuNWEuNzUuNzUgMCAwIDAtMS41IDB2NmEuNzUuNzUgMCAwIDAgMS41IDB2LTZabTMgMS41YS43NS43NSAwIDEgMC0uNzYgMS4zQTYgNiAwIDEgMSA3IDUuMy43NS43NSAwIDEgMCA2LjI1IDRhNy41IDcuNSAwIDEgMCA3LjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvd2VyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3dlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNSAyLjVhLjUuNSAwIDAgMC0xIDB2NmEuNS41IDAgMCAwIDEgMHYtNlpNMTMuNzQgNGEuNS41IDAgMSAwLS41Ljg3IDYuNSA2LjUgMCAxIDEtNi40OSAwIC41LjUgMCAxIDAtLjUtLjg3IDcuNSA3LjUgMCAxIDAgNy41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVkaWN0aW9uc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVkaWN0aW9uc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDFjLjI4IDAgLjUuMjIuNS41IDAgLjQ2LjA3IDEuMjIuNDcgMS44NC4zOC42IDEuMDggMS4xNCAyLjUzIDEuMTRhLjUuNSAwIDEgMSAwIDEgMy41IDMuNSAwIDAgMC0xLjgyLjczQTIuNzcgMi43NyAwIDAgMCAxNSA4LjQ1YS41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDEtLjUtLjVjMC0uNS0uMTYtMS4yNi0uNi0xLjg4LS40NC0uNi0xLjE2LTEuMS0yLjQtMS4xYS41LjUgMCAwIDEtLjUtLjVjMC0uMjcuMjItLjUuNS0uNS41MSAwIDEuMjUgMCAxLjg3LS4zNi41Ny0uMzMgMS4xMy0xIDEuMTMtMi42MSAwLS4yOC4yMi0uNS41LS41Wk02LjE1IDEyLjE3bC0uOTQgMy40Yy0uMTcuNjEuMDggMS4zNC43NCAxLjYzIDEuNjQuNzMgNC42NSAxLjM1IDcuOTcuMDFhMS40MyAxLjQzIDAgMCAwIC44Mi0xLjc1bC0uOTgtMy4yM2E2LjUgNi41IDAgMCAxLTcuNjEtLjA2Wm02Ljc3LTkuODRjLS4wNC4yMi0uMS4zOC0uMTYuNWEuOTcuOTcgMCAwIDEtLjQuNDJjLS4zNC4yLS44Mi4yMy0xLjM2LjIzYTEuNSAxLjUgMCAxIDAgMCAyLjk4Yy45MSAwIDEuMzQuMzUgMS41OC43LjMuNC40Mi45NS40MiAxLjNhMS41IDEuNSAwIDAgMCAxLjYxIDEuNDhBNS41IDUuNSAwIDAgMSA0LjUgNi45NmE1LjQ4IDUuNDggMCAwIDEgOC40Mi00LjYzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlZGljdGlvbnNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZWRpY3Rpb25zUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDFjLjI4IDAgLjUuMjIuNS41IDAgLjQ2LjA3IDEuMjIuNDcgMS44NC4zOC42IDEuMDggMS4xNCAyLjUzIDEuMTRhLjUuNSAwIDEgMSAwIDEgMy41IDMuNSAwIDAgMC0xLjgyLjczQTIuNzcgMi43NyAwIDAgMCAxNSA4LjQ1YS41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDEtLjUtLjVjMC0uNS0uMTYtMS4yNi0uNi0xLjg4LS40NC0uNi0xLjE2LTEuMS0yLjQtMS4xYS41LjUgMCAwIDEtLjUtLjVjMC0uMjcuMjItLjUuNS0uNS41MSAwIDEuMjUgMCAxLjg3LS4zNi41Ny0uMzMgMS4xMy0xIDEuMTMtMi42MSAwLS4yOC4yMi0uNS41LS41Wm0uMDQgMi43M2EyLjk1IDIuOTUgMCAwIDEtMS4zMyAxLjMzIDMuNTMgMy41MyAwIDAgMSAxLjMzIDEuNDggNC4yIDQuMiAwIDAgMSAxLjUyLTEuNDQgMy4yMiAzLjIyIDAgMCAxLTEuNTItMS4zN1ptLTcuMjYgNi44QTQuNDYgNC40NiAwIDAgMSAxMCAyLjVjLjkgMCAxLjc0LjI2IDIuNDQuNzJhLjk5Ljk5IDAgMCAwIC4zMi0uMzhjLjA2LS4xMi4xMi0uMjguMTYtLjVBNS41IDUuNSAwIDAgMCA0LjUgNi45NmMwIDEuNjcuNzUgMy4xNiAxLjkzIDQuMTZsLTEuMjIgNC40NGMtLjE3LjYyLjA4IDEuMzUuNzQgMS42NCAxLjY0LjczIDQuNjUgMS4zNSA3Ljk3LjAxYTEuNDMgMS40MyAwIDAgMCAuODItMS43NWwtMS4yNi00LjE3YS40OS40OSAwIDAgMC0uMDMtLjA3Yy40NS0uMzYuODUtLjggMS4xNi0xLjI4YTEuNTMgMS41MyAwIDAgMS0xLjAxLS4zIDQuNSA0LjUgMCAwIDEtNi4zMi44OVptNS4zIDEuMjYgMS4yIDMuOTZjLjA3LjI0LS4wNS40Ni0uMjMuNTRhOS4zNiA5LjM2IDAgMCAxLTcuMTkgMGMtLjE0LS4wNi0uMjQtLjI0LS4xOC0uNDdsMS4xMi00LjFhNS41IDUuNSAwIDAgMCA1LjI4LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVtaXVtRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAyLjc1YS43NS43NSAwIDAgMC0uNjYuMzlsLTIuNzUgNWMtLjE1LjI3LS4xMS42LjA4Ljg0bDcuMjUgOC43NWEuNzUuNzUgMCAwIDAgMS4xNiAwbDcuMjUtOC43NWMuMi0uMjQuMjMtLjU3LjA4LS44NGwtMi43NS01YS43NS43NSAwIDAgMC0uNjYtLjM5aC05Wk00LjE2IDcuNWwxLjc4LTMuMjVoMS41TDYuMzEgNy41SDQuMTZaTTYuMTQgOWwxLjkzIDQuNzVMNC4xNCA5aDJaTTEwIDE0LjQ4IDcuNzYgOWg0LjM5bC0yLjE2IDUuNDhaTTcuODkgNy41bDEuMTQtMy4yNWgxLjk1bDEuMiAzLjI1SDcuODhabTUuODggMC0xLjItMy4yNWgxLjQ5bDEuNzggMy4yNWgtMi4wN1ptMCAxLjVoMi4xbC00LjAxIDQuODNMMTMuNzYgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzYS41LjUgMCAwIDAtLjQzLjI0bC0zIDVhLjUuNSAwIDAgMCAuMDUuNThsNy41IDlhLjUuNSAwIDAgMCAuNzYgMGw3LjUtOWEuNS41IDAgMCAwIC4wNS0uNThsLTMtNUEuNS41IDAgMCAwIDE0LjUgM2gtOVpNMy4zOCA4bDIuNC00aDEuOThsLTEuNiA0SDMuMzhabTIuNzggMSAyLjI2IDUuODNMMy41NyA5aDIuNTlaTTEwIDE2LjEyIDcuMjMgOWg1LjU0TDEwIDE2LjEyWk03LjI0IDhsMS42LTRoMi4zMmwxLjYgNEg3LjI0Wm02LjYgMC0xLjYtNGgxLjk4bDIuNCA0aC0yLjc4Wm0wIDFoMi42bC00Ljg2IDUuODNMMTMuODQgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW1QZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bVBlcnNvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgMi43NWEuNzUuNzUgMCAwIDAtLjY2LjM5bC0yLjc1IDVjLS4xNS4yNy0uMTEuNi4wOC44NGw3LjI1IDguNzVhLjc1Ljc1IDAgMCAwIDEuMTYgMGwuNDgtLjU5YTMuMjcgMy4yNyAwIDAgMS0uMDYtLjY0YzAtMS4zIDEtMi4zOCAyLjI3LTIuNDlhMi45OSAyLjk5IDAgMCAxIC4xNy00LjE5bC4zMi0uODJoNC4wNWwuMDItLjAyYy4yLS4yNC4yMy0uNTcuMDgtLjg0bC0yLjc1LTVhLjc1Ljc1IDAgMCAwLS42Ni0uMzloLTlaTTQuMTYgNy41bDEuNzgtMy4yNWgxLjVMNi4zMSA3LjVINC4xNlpNNi4xNCA5bDEuOTMgNC43NUw0LjE0IDloMlpNMTAgMTQuNDggNy43NiA5aDQuMzlsLTIuMTYgNS40OFpNNy44OSA3LjVsMS4xNC0zLjI1aDEuOTVsMS4yIDMuMjVINy44OFptNS44OCAwLTEuMi0zLjI1aDEuNDlsMS43OCAzLjI1aC0yLjA3Wk0xNy41IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVtaXVtUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVtaXVtUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM2EuNS41IDAgMCAwLS40My4yNGwtMyA1YS41LjUgMCAwIDAgLjA1LjU4bDcuNDkgOWEuNS41IDAgMCAwIC44Ni0uMTNMMTMuODQgOWgzLjlsLjE0LS4xOGEuNS41IDAgMCAwIC4wNS0uNThsLTMtNUEuNS41IDAgMCAwIDE0LjUgM2gtOVptNy4yNyA2TDEwIDE2LjEyIDcuMjMgOWg1LjU0Wk0zLjM4IDhsMi40LTRoMS45OGwtMS42IDRIMy4zOFptMi43OCAxIDIuMjYgNS44M0wzLjU3IDloMi41OVptMS4wOC0xIDEuNi00aDIuMzJsMS42IDRINy4yNFptNi42IDAtMS42LTRoMS45OGwyLjQgNGgtMi43OFptMS42NiA2YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptMCA1YzIuNSAwIDMuNS0xLjI1IDMuNS0yLjUgMC0uODMtLjY3LTEuNS0xLjUtMS41aC00Yy0uODMgMC0xLjUuNjctMS41IDEuNSAwIDEuMjUgMSAyLjUgMy41IDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXZhaWxhYmxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXZhaWxhYmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDIwYTEwIDEwIDAgMSAwIDAtMjAgMTAgMTAgMCAwIDAgMCAyMFptNC4yLTExLjgtNC41IDQuNWExIDEgMCAwIDEtMS40IDBsLTItMmExIDEgMCAxIDEgMS40LTEuNEw5IDEwLjU4bDMuOC0zLjhhMSAxIDAgMSAxIDEuNCAxLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VBdmFpbGFibGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXZhaWxhYmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAwYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptMTIuMi0zLjJhMSAxIDAgMCAxIDAgMS40bC00LjUgNC41YTEgMSAwIDAgMS0xLjQgMGwtMi0yYTEgMSAwIDAgMSAxLjQtMS40TDkgMTAuNThsMy44LTMuOGExIDEgMCAwIDEgMS40IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBd2F5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDIwYTEwIDEwIDAgMSAwIDAtMjAgMTAgMTAgMCAwIDAgMCAyMFptMC0xNFY5LjZsMi43IDIuN2ExIDEgMCAwIDEtMS40IDEuNDJsLTMtM0ExIDEgMCAwIDEgOCAxMFY2YTEgMSAwIDEgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXdheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgOS41OVY2YTEgMSAwIDEgMC0yIDBWMTBjMCAuMjcuMS41Mi4zLjdsMyAzYTEgMSAwIDEgMCAxLjQtMS40TDEwIDkuNThabS0xMCAuNGExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUJsb2NrZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQmxvY2tlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMjAgMTBhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWm0tMiAwYTggOCAwIDAgMS0xMi45IDYuMzJMMTYuMzEgNS4wOUE3Ljk3IDcuOTcgMCAwIDEgMTggMTBabS0zLjEtNi4zMkwzLjY5IDE0LjkxQTggOCAwIDAgMSAxNC45MSAzLjY4WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VCdXN5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQnVzeUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yMCAxMGExMCAxMCAwIDEgMS0yMCAwIDEwIDEwIDAgMCAxIDIwIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZURuZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZURuZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyMGExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBaTTcgOWg2YTEgMSAwIDEgMSAwIDJIN2ExIDEgMCAxIDEgMC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VEbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlRG5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAwYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNCAwYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlT2ZmbGluZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VPZmZsaW5lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy43IDYuM2ExIDEgMCAwIDEgMCAxLjRMMTEuNDIgMTBsMi4zIDIuM2ExIDEgMCAwIDEtMS40MiAxLjRMMTAgMTEuNDJsLTIuMyAyLjNhMSAxIDAgMCAxLTEuNC0xLjQyTDguNTggMTBsLTIuMy0yLjNhMSAxIDAgMCAxIDEuNDItMS40TDEwIDguNThsMi4zLTIuM2ExIDEgMCAwIDEgMS40IDBaTTAgMTBhMTAgMTAgMCAxIDEgMjAgMCAxMCAxMCAwIDAgMS0yMCAwWm0xMC04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VPb2ZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlT29mUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC43IDcuN0ExIDEgMCAxIDAgOS4yOCA2LjNsLTMgM2ExIDEgMCAwIDAgMCAxLjQxbDMgM2ExIDEgMCAxIDAgMS40Mi0xLjQxbC0xLjMtMS4zSDEzYTEgMSAwIDEgMCAwLTJIOS40bDEuMy0xLjI5Wk0xMCAwYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlVGVudGF0aXZlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVRlbnRhdGl2ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC45NS4wNWE5Ljk2IDkuOTYgMCAwIDAtOC45IDguOWw4LjktOC45Wk0uMTkgMTEuOTUgMTEuOTUuMmMuOC4xNiAxLjYuNDIgMi4zNS43OEwuOTcgMTQuMzFhOS45NyA5Ljk3IDAgMCAxLS43OC0yLjM2Wm0xLjk5IDQuMjlhMTAuMTIgMTAuMTIgMCAwIDAgMS41OCAxLjU4TDE3LjgxIDMuNzZhMTAuMSAxMC4xIDAgMCAwLTEuNTgtMS41OEwyLjE4IDE2LjI0Wk0xOS4wMiA1LjY5IDUuNyAxOS4wM2MuNzYuMzYgMS41NS42MiAyLjM2Ljc4TDE5LjggOC4wNWMtLjE2LS44LS40Mi0xLjYtLjc5LTIuMzZabS45MiA1LjM3LTguODkgOC44OGE5Ljk2IDkuOTYgMCAwIDAgOC44OS04Ljg4WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VVbmtub3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVVua25vd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaTTAgMTBhMTAgMTAgMCAxIDEgMjAgMCAxMCAxMCAwIDAgMS0yMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VudGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbnRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiA0YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpNNyAxNC43OHYxLjcyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0xLjcyYS41LjUgMCAwIDEgLjE1LS4zNmwzLjctMy41NmEuNS41IDAgMCAwLS4zNC0uODZIMy40OWEuNS41IDAgMCAwLS4zNS44NmwzLjcgMy41NmMuMS4xLjE2LjIzLjE2LjM2Wk04LjUgN0M3LjY3IDcgNyA3LjY3IDcgOC41VjloNnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VudGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW50ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wLTFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWk04LjUgOGEuNS41IDAgMCAwLS41LjVWOUg3di0uNUM3IDcuNjcgNy42NyA3IDguNSA3aDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgtMXYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM1pNNyAxNC43OHYxLjcyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0xLjcyYS41LjUgMCAwIDEgLjE1LS4zNmwzLjctMy41NmEuNS41IDAgMCAwLS4zNC0uODZIMy40OWEuNS41IDAgMCAwLS4zNS44NmwzLjcgMy41NmMuMS4xLjE2LjIzLjE2LjM2Wm0xIDEuNzJ2LTEuNzJjMC0uNC0uMTctLjgtLjQ2LTEuMDhMNC43MyAxMWgxMC41NGwtMi44MSAyLjdjLS4zLjI5LS40Ni42OC0uNDYgMS4wOHYxLjcyYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VudGVyT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbnRlck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjE1IDcuODVjLS4xLjItLjE1LjQyLS4xNS42NVY5aDEuM2wxIDFIMy41YS41LjUgMCAwIDAtLjM2Ljg2bDMuNyAzLjU2Yy4xLjEuMTYuMjMuMTYuMzZ2MS43MmMwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMS43MmEuNS41IDAgMCAxIC4xNS0uMzZsLjI5LS4yNyAzLjcgMy43YS41LjUgMCAwIDAgLjcxLS43bC0xMC0xMC01LTVhLjUuNSAwIDEgMC0uNy43bDUgNVptOS43IDMuMDEtMS45NyAxLjlMMTIuMTIgMTBoNC4zOWEuNS41IDAgMCAxIC4zNS44NlpNMTMgOWgtMS44OGwtMi0yaDIuMzhjLjgzIDAgMS41LjY3IDEuNSAxLjVWOVptLTMtM2EyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW50ZXJPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbnRlck9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA4LjVjMC0uMjMuMDUtLjQ1LjE1LS42NWwtNS01YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0zLjcxLTMuNy0uMjkuMjdhLjUuNSAwIDAgMC0uMTUuMzZ2MS43MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTNBMS41IDEuNSAwIDAgMSA3IDE2LjV2LTEuNzJhLjUuNSAwIDAgMC0uMTUtLjM2bC0zLjctMy41NmEuNS41IDAgMCAxIC4zNC0uODZoNS44bC0xLTFIN3YtLjVabTMuMyAyLjVINC43MmwyLjgxIDIuN2MuMy4yOS40Ni42OC40NiAxLjA4djEuNzJjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0xLjcyYzAtLjQuMTctLjguNDYtMS4wOGwuMjctLjI2TDEwLjMgMTFaTTEyIDRhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLS44OCA0aDEuMzhjLjI4IDAgLjUuMjIuNS41VjloMXYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDkuMTJsMSAxWm00Ljc2IDQuNzYtLjctLjdMMTUuMjYgMTFoLTIuMTVsLTEtMWg0LjM5YS41LjUgMCAwIDEgLjM1Ljg2bC0xLjk4IDEuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpZXdMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpZXdMaW5rRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNnYyaDEwVjZINVptNyA1djNoM3YtM2gtM1pNMiA1Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDNoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNS43NXY4LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE3SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTQuMjV2LTguNVptMi0uMjV2M2MwIC4yNy4yMi41LjUuNWgxMWEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTExYS41LjUgMCAwIDAtLjUuNVptNyA1djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTRhLjUuNSAwIDAgMC0uNS41Wm0tNi41IDBhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNCAxNGMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpZXdMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aWV3TGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1LjVjMC0uMjguMjItLjUuNS0uNWgxMWMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjV2LTNaTTUgNnYyaDEwVjZINVptNi41IDRhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTRabS41IDR2LTNoM3YzaC0zWm0tOC0zYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNUEuNS41IDAgMCAxIDQgMTFabS41IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDExQTIuNSAyLjUgMCAwIDEgMTggNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOVpNNC41IDRDMy42NyA0IDMgNC42NyAzIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlvdXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlvdXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNC4yNWMwLTEtMS4xMi0xLjYtMS45NS0xLjA0bC04LjUgNS43MWMtLjczLjUtLjczIDEuNTcgMCAyLjA3bDguNSA1LjhjLjgzLjU2IDEuOTUtLjAzIDEuOTUtMS4wNFY0LjI1Wk0zIDMuNWEuNS41IDAgMCAxIDEgMHYxM2EuNS41IDAgMCAxLTEgMHYtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91c1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlvdXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMy41YS41LjUgMCAwIDEgMSAwdjEzYS41LjUgMCAwIDEtMSAwdi0xM1ptMTQgLjc1YzAtMS0xLjEyLTEuNi0xLjk1LTEuMDRsLTguNSA1LjcxYy0uNzMuNS0uNzMgMS41NyAwIDIuMDdsOC41IDUuOGMuODMuNTYgMS45NS0uMDMgMS45NS0xLjA0VjQuMjVabS0xLjM5LS4yYy4xNy0uMTIuMzkgMCAuMzkuMnYxMS41YzAgLjItLjIyLjMyLS40LjJsLTguNDktNS43OGEuMjUuMjUgMCAwIDEgMC0uNDJsOC41LTUuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpb3VzRnJhbWVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlvdXNGcmFtZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDNhLjUuNSAwIDAgMC0uNS41djEzYS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLS41LS41Wm0tNS40NS4yMWMuODMtLjU1IDEuOTUuMDQgMS45NSAxLjA0djExLjVjMCAxLTEuMTIgMS42LTEuOTUgMS4wNGwtOC41LTUuOGExLjI1IDEuMjUgMCAwIDEgMC0yLjA3bDguNS01LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91c0ZyYW1lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91c0ZyYW1lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDNhLjUuNSAwIDAgMC0uNS41djEzYS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLS41LS41Wm0tNS40NS4yMWMuODMtLjU1IDEuOTUuMDQgMS45NSAxLjA0djExLjVjMCAxLTEuMTIgMS42LTEuOTUgMS4wNGwtOC41LTUuOGExLjI1IDEuMjUgMCAwIDEgMC0yLjA3bDguNS01LjdaTTExIDQuMjVjMC0uMi0uMjItLjMyLS4zOS0uMmwtOC41IDUuN2EuMjUuMjUgMCAwIDAgMCAuNDJsOC41IDUuNzljLjE3LjExLjM5IDAgLjM5LS4yVjQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmludEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWNWguNUEyLjUgMi41IDAgMCAxIDE4IDcuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNXYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNS41VjE0SDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1SDV2LS41Wm05IDBhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwLS41LjVWNWg4di0uNVptLTggN3Y0YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByaW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjVoLjVBMi41IDIuNSAwIDAgMSAxOCA3LjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTV2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTUuNVYxNEgzLjVBMS41IDEuNSAwIDAgMSAyIDEyLjV2LTVBMi41IDIuNSAwIDAgMSA0LjUgNUg1di0uNVpNNiA1aDh2LS41YS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41VjVabS0xIDh2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg3Yy44MyAwIDEuNS42NyAxLjUgMS41VjEzaDEuNWEuNS41IDAgMCAwIC41LS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFDMy42NyA2IDMgNi42NyAzIDcuNXY1YzAgLjI4LjIyLjUuNS41SDVabTEuNS0yYS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnRBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnRBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0tLjUgNy41YzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnYzLjc2YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNXYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNi41VjE1SDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA2SDV2LS41QzUgNC42NyA1LjY3IDQgNi41IDRoMi43Yy0uMDguMzItLjE1LjY2LS4xOCAxSDYuNWEuNS41IDAgMCAwLS41LjVWNmgzLjAyYy4yNiAyLjggMi42MSA1IDUuNDggNVpNNiAxMi41djRjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnRBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByaW50QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNWgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNVYzLjVabTIgMTB2LTMuMWMuMzYtLjE4LjctLjQgMS0uNjZ2My43NmMwIC44My0uNjcgMS41LTEuNSAxLjVIMTV2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNVYxNUgzLjVBMS41IDEuNSAwIDAgMSAyIDEzLjV2LTVBMi41IDIuNSAwIDAgMSA0LjUgNkg1di0uNUM1IDQuNjcgNS42NyA0IDYuNSA0aDIuN2MtLjA4LjMyLS4xNS42Ni0uMTggMUg2LjVhLjUuNSAwIDAgMC0uNS41VjZoMy4wMmMuMDMuMzQuMS42OC4xOSAxSDQuNUMzLjY3IDcgMyA3LjY3IDMgOC41djVjMCAuMjguMjIuNS41LjVINXYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTRoMS41YS41LjUgMCAwIDAgLjUtLjVaTTYuNSAxMmEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2R1Y3Rpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTNabTYuNS0uNWEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1ptLjUgM1Y0aDJ2MmgtMlpNMiAxMmE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDAgOEg2YTQgNCAwIDAgMS00LTRabTUgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTQgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9kdWN0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9kdWN0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTNabTYuNS0uNWEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1ptLjUgM1Y0aDJ2MmgtMlptLTYgN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTUtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTIgMTJhNCA0IDAgMCAxIDQtNGg4YTQgNCAwIDAgMSAwIDhINmE0IDQgMCAwIDEtNC00Wm00LTNhMyAzIDAgMSAwIDAgNmg4YTMgMyAwIDEgMCAwLTZINlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2R1Y3Rpb25DaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbkNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTNabTYuNS0uNWEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1ptLjUgM1Y0aDJ2MmgtMlpNNiA4YTQgNCAwIDEgMCAwIDhoMy4yYTUuNSA1LjUgMCAwIDEgLjEtMy4yOUExIDEgMCAwIDEgMTAgMTFhMSAxIDAgMCAxIC4yMy4wMyA1LjQ5IDUuNDkgMCAwIDEgNy4xLTEuMjVBNCA0IDAgMCAwIDE0IDhINlptMCA1YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMTMgMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi44NS0xLjg1LTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvZHVjdGlvbkNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbkNoZWNrbWFya1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zWm02LjUtLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNabS41IDNWNGgydjJoLTJaTTIgMTJhNCA0IDAgMCAxIDQtNGg4YTQgNCAwIDAgMSAzLjMzIDEuNzhBNS40NyA1LjQ3IDAgMCAwIDE0IDlINmEzIDMgMCAxIDAgMCA2aDMuMDJjLjAzLjM0LjEuNjguMTkgMUg2YTQgNCAwIDAgMS00LTRabTgtMWExIDEgMCAwIDEgLjIzLjAzIDUuNSA1LjUgMCAwIDAtLjkzIDEuNjhBMSAxIDAgMCAxIDEwIDExWm0tNCAyYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMTMgMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi44NS0xLjg1LTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDEwYTggOCAwIDEgMS0xNiAwIDggOCAwIDAgMSAxNiAwWm0tMS41IDBjMC0xLjUyLS41My0yLjkzLTEuNC00LjA0TDUuOTYgMTUuMUE2LjUgNi41IDAgMCAwIDE2LjUgMTBaTTQuOSAxNC4wNGw5LjE0LTkuMTRhNi41IDYuNSAwIDAgMC05LjEzIDkuMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFptLTEgMGMwLTEuNzUtLjY0LTMuMzYtMS43LTQuNThsLTkuODggOS44N0E3IDcgMCAwIDAgMTcgMTBaTTQuNyAxNC41OGw5Ljg4LTkuODdhNyA3IDAgMCAwLTkuODcgOS44N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWRNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS4xMSA1LjExYTUuNSA1LjUgMCAwIDEgNy4yMS0uNWwtNy43IDcuNzFhNS41IDUuNSAwIDAgMSAuNS03LjJabS41NyA4LjI3IDcuNy03LjdhNS41IDUuNSAwIDAgMS03LjcgNy43Wm04LjI3LTkuMzNhNyA3IDAgMSAwLTkuOSA5LjkgNyA3IDAgMCAwIDkuOS05LjlaTTE3IDlhOCA4IDAgMCAxLTkuNzcgNy44IDcgNyAwIDAgMCA5LjU3LTkuNTdjLjEzLjU3LjIgMS4xNi4yIDEuNzdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWRNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC43NiA0Ljc2YTYgNiAwIDAgMSA4LjExLS4zNGwtOC40NSA4LjQ1YTYgNiAwIDAgMSAuMzQtOC4xMVptLjM3IDguODIgOC40NS04LjQ1YTYgNiAwIDAgMS04LjQ1IDguNDVabTguODItOS41M2E3IDcgMCAxIDAtOS45IDkuOSA3IDcgMCAwIDAgOS45LTkuOVpNMTcgOWMwIDEuMzctLjM0IDIuNjYtLjk1IDMuNzlhNi4wMiA2LjAyIDAgMCAxLTMuMjYgMy4yNiA3Ljk3IDcuOTcgMCAwIDEtNS4xNy44MyA3IDcgMCAwIDAgOS4yNi05LjI2Yy4wOC40NS4xMi45LjEyIDEuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkTm90ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkTm90ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCAxMC4xN0E4LjAyIDguMDIgMCAwIDAgMTAgMmE4IDggMCAwIDAtLjg0IDE1Ljk2QTMgMyAwIDAgMSA5IDE3di0uNThhNi40NyA2LjQ3IDAgMCAxLTMuMDQtMS4zMmwxLjU3LTEuNTcgNy41Ny03LjU3QTYuNDcgNi40NyAwIDAgMSAxNi41IDEwaC41YTMgMyAwIDAgMSAxIC4xN1pNMTQuMDQgNC45IDQuOSAxNC4wNGE2LjUgNi41IDAgMCAxIDkuMTMtOS4xM1pNMTAgMTNjMC0xLjEuOS0yIDItMmg1YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTRabTYuNSAzaC00YS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFabS00LTNhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMSAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWROb3RlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkTm90ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggMTB2LjE3YTMgMyAwIDAgMC0xLS4xN2MwLTEuNzUtLjY0LTMuMzYtMS43LTQuNThsLTkuODggOS44N0E2Ljk3IDYuOTcgMCAwIDAgOSAxNi45M1YxN2EzIDMgMCAwIDAgLjE2Ljk2QTggOCAwIDEgMSAxOCAxMFpNNC43IDE0LjU4bDkuODgtOS44N2E3IDcgMCAwIDAtOS44NyA5Ljg3Wk0xMiAxMWEyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtNVptLjUgNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAxIDEgMC0xWm0tLjUtMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMSAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgM2ExIDEgMCAwIDAgMCAydjZhMyAzIDAgMCAwIDMgM2gzLjV2MmgtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC0ydi0ySDE0YTMgMyAwIDAgMCAzLTNWNWExIDEgMCAxIDAgMC0ySDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDNhMSAxIDAgMCAwIDAgMnY2YTMgMyAwIDAgMCAzIDNoMy41djJoLTJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtMnYtMkgxNGEzIDMgMCAwIDAgMy0zVjVhMSAxIDAgMSAwIDAtMkgzWm0xIDJoMTJ2NmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkRpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbkRpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTQuNSA0Ljc5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNS4yMSA1LjVsMS4xNC0xLjE1Wk0xNC41IDExYy45IDAgMS43NS0uMjIgMi41LS42di42YTMgMyAwIDAgMS0zIDNoLTMuNXYyaDJhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoMnYtMkg2YTMgMyAwIDAgMS0zLTNWNWExIDEgMCAwIDEgMC0yaDYuNmE1LjUgNS41IDAgMCAwIDQuOSA4WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW5EaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNC41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE1LjIxIDUuNWwxLjE0LTEuMTVaTTE2IDExdi0uMmMuMzUtLjEuNjgtLjI0IDEtLjR2LjZhMyAzIDAgMCAxLTMgM2gtMy41djJoMmEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMWgydi0ySDZhMyAzIDAgMCAxLTMtM1Y1YTEgMSAwIDAgMSAwLTJoNi42YTUuNDcgNS40NyAwIDAgMC0uNTggMkg0djZjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuVGV4dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuVGV4dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xIDMuNUMxIDIuNjcgMS42NyAyIDIuNSAyaDE1YTEuNSAxLjUgMCAwIDEgLjUgMi45MVYxMmEzIDMgMCAwIDEtMyAzaC00LjV2MmgzYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDN2LTJINWEzIDMgMCAwIDEtMy0zVjQuOTFjLS41OC0uMi0xLS43Ni0xLTEuNDFaTTcuNSA3YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTYgOS41YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wk03LjUgMTFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2plY3Rpb25TY3JlZW5UZXh0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuVGV4dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDdhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNiA5LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTcuNSAxMWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wm0tNS05QTEuNSAxLjUgMCAwIDAgMiA0LjkxVjEyYTMgMyAwIDAgMCAzIDNoNC41djJoLTNhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtM3YtMkgxNWEzIDMgMCAwIDAgMy0zVjQuOTFBMS41IDEuNSAwIDAgMCAxNy41IDJoLTE1Wk0zIDEyVjVoMTR2N2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9tcHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNSAyYy4yOCAwIC41LjIyLjUuNVYzaC41YS41LjUgMCAwIDEgMCAxSDE3di41YS41LjUgMCAwIDEtMSAwVjRoLS41YS41LjUgMCAwIDEgMC0xaC41di0uNWMwLS4yOC4yMi0uNS41LS41Wm0tMTMgMTNjLjI4IDAgLjUuMjIuNS41di41aC41YS41LjUgMCAwIDEgMCAxSDR2LjVhLjUuNSAwIDAgMS0xIDBWMTdoLS41YS41LjUgMCAwIDEgMC0xSDN2LS41YzAtLjI4LjIyLS41LjUtLjVabTQtMTNjLS42NSAwLTEuMTIuNTEtMS4yNCAxLjA2LS4xMS41NS0uNCAxLjM3LTEuMTEgMi4wOS0uNzIuNzEtMS41NCAxLTIuMDkgMS4xMUMyLjUxIDYuMzcgMiA2Ljg2IDIgNy41YzAgLjY1LjUyIDEuMTMgMS4wNiAxLjI0LjU1LjExIDEuMzcuNCAyLjA5IDEuMTEuNzEuNzIgMSAxLjU0IDEuMTEgMi4xLjEyLjU0LjU5IDEuMDUgMS4yNCAxLjA1czEuMTMtLjUxIDEuMjQtMS4wNmMuMTEtLjU1LjQtMS4zNyAxLjExLTIuMDkuNzItLjcxIDEuNTQtMSAyLjEtMS4xMS41NC0uMTEgMS4wNS0uNTkgMS4wNS0xLjI0cy0uNTEtMS4xMy0xLjA2LTEuMjRhNC4xNCA0LjE0IDAgMCAxLTIuMDktMS4xMWMtLjcxLS43Mi0xLTEuNTQtMS4xMS0yLjFDOC42MyAyLjUyIDguMTUgMiA3LjUgMlpNNyAxNXYtMS4wNmEyLjEzIDIuMTMgMCAwIDAgMSAwVjE1YzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC0yLTJoLTEuMDZhMi4xMyAyLjEzIDAgMCAwIDAtMUgxNWEzIDMgMCAwIDEgMyAzdjVhMyAzIDAgMCAxLTMgM2gtNWEzIDMgMCAwIDEtMy0zWm0zLTEuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptLjUtMi41YS41LjUgMCAwIDAgMCAxSDE1YS41LjUgMCAwIDAgMC0xaC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9tcHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMi41YS41LjUgMCAwIDAtMSAwVjNoLS41YS41LjUgMCAwIDAgMCAxaC41di41YS41LjUgMCAwIDAgMSAwVjRoLjVhLjUuNSAwIDAgMCAwLTFIMTd2LS41Wm0tMTMgMTNhLjUuNSAwIDAgMC0xIDB2LjVoLS41YS41LjUgMCAwIDAgMCAxSDN2LjVhLjUuNSAwIDAgMCAxIDBWMTdoLjVhLjUuNSAwIDAgMCAwLTFINHYtLjVabTMtMS41NlYxNWEzIDMgMCAwIDAgMyAzaDVhMyAzIDAgMCAwIDMtM3YtNWEzIDMgMCAwIDAtMy0zaC0xLjA2YTIuMTMgMi4xMyAwIDAgMSAwIDFIMTVhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMS4wNmEyLjEzIDIuMTMgMCAwIDEtMSAwWm0zLjUtLjk0YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabS0uNS0xLjVjMC0uMjguMjItLjUuNS0uNUgxNWEuNS41IDAgMCAxIDAgMWgtNC41YS41LjUgMCAwIDEtLjUtLjVaTTcuMjQgMy4yNmMuMDQtLjE3LjE4LS4yNi4yNi0uMjYuMDkgMCAuMjIuMDkuMjYuMjZhNS4xNCA1LjE0IDAgMCAwIDMuOTggMy45OGMuMTcuMDQuMjYuMTcuMjYuMjZzLS4wOS4yMi0uMjYuMjZjLS42Ny4xNC0xLjcuNS0yLjYgMS4zOS0uODkuOS0xLjI0IDEuOTItMS4zOCAyLjU5LS4wNC4xNy0uMTcuMjYtLjI2LjI2cy0uMjItLjA5LS4yNi0uMjZhNS4xNCA1LjE0IDAgMCAwLTMuOTgtMy45OEMzLjEgNy43MiAzIDcuNTkgMyA3LjVzLjA5LS4yMi4yNi0uMjZhNS4xNSA1LjE1IDAgMCAwIDMuOTgtMy45OFpNNy41IDJjLS42NSAwLTEuMTIuNTEtMS4yNCAxLjA2LS4xMS41NS0uNCAxLjM3LTEuMTEgMi4wOS0uNzIuNzEtMS41NCAxLTIuMDkgMS4xMUMyLjUxIDYuMzcgMiA2Ljg2IDIgNy41YzAgLjY1LjUyIDEuMTMgMS4wNiAxLjI0LjU1LjExIDEuMzcuNCAyLjA5IDEuMTEuNzEuNzIgMSAxLjU0IDEuMTEgMi4xLjEyLjU0LjU5IDEuMDUgMS4yNCAxLjA1czEuMTMtLjUxIDEuMjQtMS4wNmMuMTEtLjU1LjQtMS4zNyAxLjExLTIuMDkuNzItLjcxIDEuNTQtMSAyLjEtMS4xMS41NC0uMTEgMS4wNS0uNTkgMS4wNS0xLjI0cy0uNTEtMS4xMy0xLjA2LTEuMjRhNC4xNCA0LjE0IDAgMCAxLTIuMDktMS4xMWMtLjcxLS43Mi0xLTEuNTQtMS4xMS0yLjFDOC42MyAyLjUyIDguMTUgMiA3LjUgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb3RvY29sSGFuZGxlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm90b2NvbEhhbmRsZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41OSA1LjQxIDIuNCA4LjZhMiAyIDAgMCAwIDAgMi44Mkw1LjYgMTQuNmEyIDIgMCAwIDAgMi44MiAwbDMuMTgtMy4xOGEyIDIgMCAwIDAgMC0yLjgyTDguNCA1LjRhMiAyIDAgMCAwLTIuODIgMFptNiA5LjE4LS44OC0uODggMS41OC0xLjU5YTMgMyAwIDAgMCAwLTQuMjRsLTEuNTgtMS41OS44OC0uODhhMiAyIDAgMCAxIDIuODIgMEwxNy42IDguNmEyIDIgMCAwIDEgMCAyLjgyTDE0LjQgMTQuNmEyIDIgMCAwIDEtMi44MiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvdG9jb2xIYW5kbGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm90b2NvbEhhbmRsZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNTkgNS40MSAyLjQgOC42YTIgMiAwIDAgMCAwIDIuODJMNS42IDE0LjZhMiAyIDAgMCAwIDIuODIgMGwzLjE4LTMuMThhMiAyIDAgMCAwIDAtMi44Mkw4LjQgNS40YTIgMiAwIDAgMC0yLjgyIDBaTTMuMTIgOS4zIDYuMyA2LjEyYTEgMSAwIDAgMSAxLjQyIDBsMy4xNyAzLjE3YTEgMSAwIDAgMSAwIDEuNDJMNy43IDEzLjg4YTEgMSAwIDAgMS0xLjQyIDBMMy4xMiAxMC43YTEgMSAwIDAgMSAwLTEuNDJabTguNDcgNS4zLS44OC0uODguNy0uNzEuODguODhhMSAxIDAgMCAwIDEuNDIgMGwzLjE3LTMuMTdhMSAxIDAgMCAwIDAtMS40MkwxMy43IDYuMTJhMSAxIDAgMCAwLTEuNDIgMGwtLjg4Ljg4LS43LS43Ljg4LS44OWEyIDIgMCAwIDEgMi44MiAwTDE3LjYgOC42YTIgMiAwIDAgMSAwIDIuODJMMTQuNCAxNC42YTIgMiAwIDAgMS0yLjgyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjAxIDNjLjMzIDAgLjYyLjIzLjcxLjU1bDIuODIgMTAuMDcgMi4yNC03LjFhLjc1Ljc1IDAgMCAxIDEuNC0uMDdMMTUuNSA5LjVoMS43NmEuNzUuNzUgMCAwIDEgMCAxLjVIMTVhLjc1Ljc1IDAgMCAxLS42OS0uNDVsLS43LTEuNjUtMi40IDcuNThhLjc1Ljc1IDAgMCAxLTEuNDMtLjAzTDYuOTcgNi40MWwtMS4yNSA0LjA2QS43NS43NSAwIDAgMSA1IDExSDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuN2wxLjgzLTUuOTdjLjEtLjMyLjQtLjUzLjczLS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFB1bHNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAzYS41LjUgMCAwIDEgLjQ4LjM3bDMuMDUgMTEuMyAyLjUtOC4zMWEuNS41IDAgMCAxIC45NC0uMDRMMTUuMzUgMTBoMi4xNWEuNS41IDAgMCAxIDAgMUgxNWEuNS41IDAgMCAxLS40Ny0uMzJsLS45OC0yLjYyLTIuNTcgOC41OGEuNS41IDAgMCAxLS45Ni0uMDFMNi45OSA1LjM3bC0xLjUgNS4yN0EuNS41IDAgMCAxIDUgMTFIMi41YS41LjUgMCAwIDEgMC0xaDIuMTJsMS45LTYuNjRBLjUuNSAwIDAgMSA3IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZVNxdWFyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZVNxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVabTUuOTcgMS4zM2EuNS41IDAgMCAwLS45NCAwTDYuNjUgMTBINS41YS41LjUgMCAwIDAgMCAxSDdjLjIgMCAuNC0uMTMuNDctLjMybDEuMDItMi43MyAyLjA0IDUuNzJhLjUuNSAwIDAgMCAuOTIuMDVMMTIuOCAxMWgxLjY5YS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjQ1LjI4bC0uOTcgMS45NS0yLjEtNS45WlwiXSk7XG5leHBvcnQgY29uc3QgUHVsc2VTcXVhcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1bHNlU3F1YXJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljk3IDYuMzNhLjUuNSAwIDAgMC0uOTQgMEw2LjY1IDEwSDUuNWEuNS41IDAgMCAwIDAgMUg3Yy4yIDAgLjQtLjEzLjQ3LS4zMmwxLjAyLTIuNzMgMi4wNCA1LjcyYS41LjUgMCAwIDAgLjkyLjA1TDEyLjggMTFoMS42OWEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS40NS4yOGwtLjk3IDEuOTUtMi4xLTUuOVpNNSAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1Wk00IDVhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZUN1YmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMgMTdoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2gtNHY0Wm0wLTVWOGg0djRoLTRabS0xIDBIOFY4aDR2NFptLTQgMWg0djRIOHYtNFptLTEtMVY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlQ3ViZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxNC41VjdoNFYzaDcuNUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNVpNOCA0djNoNFY0SDhabTUgMHYzaDNWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxM1ptMyA0aC0zdjRoM1Y4Wm0wIDVoLTN2M2gxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzWm0tNCAzdi0zSDh2M2g0Wm0tNSAwdi0zSDR2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDdabS0zLTRoM1Y4SDR2NFptOC00SDh2NGg0VjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlUGllY2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlQ3ViZVBpZWNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjggMS4yOWExIDEgMCAwIDEgMS40IDBsMS41MSAxLjVhMSAxIDAgMCAxIDAgMS40MmwtMS41IDEuNWExIDEgMCAwIDEtMS40MiAwbC0xLjUtMS41YTEgMSAwIDAgMSAwLTEuNDJsMS41LTEuNVpNNS41IDE3SDd2LTRIM3YxLjVBMi41IDIuNSAwIDAgMCA1LjUgMTdaTTcgOHY0SDNWOGg0Wm01IDRIOFY4aDR2NFptLTQgMWg0djRIOHYtNFptNS01djRoNFY4aC00Wm0wIDVoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEzdi00Wk0zIDdoNFYzSDUuNUEyLjUgMi41IDAgMCAwIDMgNS41VjdabTUgMFYzaDR2NEg4WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZVBpZWNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVDdWJlUGllY2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjIgMS4yOWExIDEgMCAwIDAtMS40IDBsLTEuNSAxLjVhMSAxIDAgMCAwIDAgMS40MmwxLjUgMS41YTEgMSAwIDAgMCAxLjQgMGwxLjUxLTEuNWExIDEgMCAwIDAgMC0xLjQybC0xLjUtMS41Wk0xNSAzLjUgMTYuNSAyIDE4IDMuNSAxNi41IDUgMTUgMy41Wk0xMyAzSDUuNUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN2gtNFYzWk01LjM2IDE2QTEuNSAxLjUgMCAwIDEgNCAxNC41VjEzaDN2M0g1LjM2Wk04IDEzaDR2M0g4di0zWm04IDEuNjRBMS41IDEuNSAwIDAgMSAxNC41IDE2SDEzdi0zaDNWMTQuNjRaTTggOGg0djRIOFY4Wm01IDRWOGgzdjRoLTNaTTggNGg0djNIOFY0Wk01LjUgNEg3djNINFY1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRaTTQgMTJWOGgzdjRINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1enpsZVBpZWNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDJhMiAyIDAgMCAxIDIgMnYuMDZoM2ExIDEgMCAwIDEgMSAxVjhoLTFhMiAyIDAgMCAwLTIgMS44NVYxMGEyIDIgMCAwIDAgMS44NSAySDE3djMuMDZhMSAxIDAgMCAxLTEgMWgtM3YuMDlhMiAyIDAgMCAxLTQtLjFINmExIDEgMCAwIDEtMS0xVjEyYTIgMiAwIDEgMSAwLTRWNS4wNmExIDEgMCAwIDEgMS0xaDNWNGMwLTEuMS45LTIgMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlUGllY2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4xIDJjLTEuMDcuMDgtMS45NC45LTIuMDggMS45NFY0SDYuMzVBMS41IDEuNSAwIDAgMCA1IDUuNXYyLjI3aC0uMDZBMi4yNSAyLjI1IDAgMCAwIDMgMTB2LjE2Yy4wOCAxLjA2LjkgMS45MyAxLjk0IDIuMDdINXYyLjQyQTEuNSAxLjUgMCAwIDAgNi41IDE2aDIuMDJ2LjA2QTIuMjUgMi4yNSAwIDAgMCAxMC43NSAxOGguMTZhMi4yNSAyLjI1IDAgMCAwIDIuMDctMS45NFYxNmgyLjUyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMy4yNWgtMS44N0ExLjI1IDEuMjUgMCAwIDEgMTQgMTB2LS4xMmMuMDYtLjYzLjYtMS4xMyAxLjI1LTEuMTNIMTdWNS4zNkExLjUgMS41IDAgMCAwIDE1LjUgNGgtMi4wMnYtLjA2QTIuMjUgMi4yNSAwIDAgMCAxMS4yNSAyaC0uMTVabS4xNSAxYy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjVoM2wuMS4wMWEuNS41IDAgMCAxIC40LjV2Mi4yNGgtLjc1Yy0xLjE3IDAtMi4xNS45LTIuMjQgMi4wN2wtLjAxLjE2YzAgMS4yLjkgMi4xNyAyLjA3IDIuMjZsLjE2LjAxSDE2djIuMjVhLjUuNSAwIDAgMS0uNS41SDEydi43NWExLjI1IDEuMjUgMCAwIDEtMi41IDBWMTVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtMy4yNWgtLjc1YTEuMjUgMS4yNSAwIDAgMSAwLTIuNUg2VjUuNWMwLS4yNy4yMy0uNS41LS41SDEwdi0uNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVQaWVjZVNoaWVsZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVQaWVjZVNoaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDE1LjA2VjEyLjdjLjE4LjA4LjM2LjE1LjU1LjIxLjI5LjEuNjEuMS45IDBhNi43NyA2Ljc3IDAgMCAwIDMuMzktMi4zOEE2LjYzIDYuNjMgMCAwIDAgMTEgNi41OFY0LjA0bC0uMDItLjE5di0uMDRBMS40IDEuNCAwIDAgMCA5LjUgMi42NyAyIDIgMCAwIDEgMTMgNHYuMDZoM2ExIDEgMCAwIDEgMSAxVjhoLTFhMiAyIDAgMCAwLTIgMS44NVYxMGEyIDIgMCAwIDAgMS44NSAySDE3djMuMDZhMSAxIDAgMCAxLTEgMWgtM3YuMDlhMiAyIDAgMCAxLTQtLjFINmExIDEgMCAwIDEtMS0xWk04IDMuMzVhNC4wNiA0LjA2IDAgMCAwIDEuNi4zMmMuMiAwIC4zNS4xNC40LjMzdjIuNThjMCAyLjY5LTEuMzEgNC41MS0zLjg3IDUuNGEuMzguMzggMCAwIDEtLjI2IDBBNi42NiA2LjY2IDAgMCAxIDQgMTFjLS4zOS0uMy0uNzItLjYzLS45OS0xYTUuNSA1LjUgMCAwIDEtMS0zLjE1TDIgNi41OHYtMi41YS40LjQgMCAwIDEgLjQtLjQxIDQuNSA0LjUgMCAwIDAgMy4zMi0xLjU1LjM5LjM5IDAgMCAxIC41NiAwQzYuODIgMi43IDcuNCAzLjEgOCAzLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlUGllY2VTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlU2hpZWxkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDE0LjV2LTEuNzlhOSA5IDAgMCAwIC41NC4yMWMuMTUuMDUuMy4wOC40Ni4wOHYxLjVjMCAuMjguMjIuNS41LjVoM3YuNzVhMS4yNSAxLjI1IDAgMCAwIDIuNSAwVjE1aDMuNWEuNS41IDAgMCAwIC41LS41di0yLjI1SDE1LjA2QTIuMjUgMi4yNSAwIDAgMSAxMyA5Ljk3di0uMTZhMi4yNSAyLjI1IDAgMCAxIDIuMjUtMi4wN0gxNlY1LjVhLjUuNSAwIDAgMC0uNDEtLjQ5SDEyLjV2LS43NmExLjI1IDEuMjUgMCAwIDAtMS44NS0xLjFjLS4yNC0uMjgtLjU5LS40Ny0xLS40OC4zNy0uMzguODgtLjYzIDEuNDQtLjY2bC4xNi0uMDFjMS4xNCAwIDIuMDguODUgMi4yMyAxLjk0VjRoMi4wMmMuNzggMCAxLjQyLjYgMS41IDEuMzZ2My4zOWgtMS43NWMtLjY1IDAtMS4yLjUtMS4yNSAxLjEzVjEwYzAgLjY1LjUgMS4yIDEuMTMgMS4yNGwuMTIuMDFIMTd2My4yNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTIuNTJ2LjA2YTIuMjUgMi4yNSAwIDAgMS0yLjA4IDEuOTNsLS4xNS4wMWEyLjI1IDIuMjUgMCAwIDEtMi4yMy0xLjk0VjE2SDYuNUExLjUgMS41IDAgMCAxIDUgMTQuNjV2LS4xNVpNOCAzLjM1YTQuMDYgNC4wNiAwIDAgMCAxLjYuMzJjLjIgMCAuMzUuMTQuNC4zM3YyLjU4YzAgMi42OS0xLjMxIDQuNTEtMy44NyA1LjRhLjM4LjM4IDAgMCAxLS4yNiAwQTYuNjYgNi42NiAwIDAgMSA0IDExYy0uMzktLjMtLjcyLS42My0uOTktMWE1LjUgNS41IDAgMCAxLTEtMy4xNUwyIDYuNTh2LTIuNWEuNC40IDAgMCAxIC40LS40MSA0LjUgNC41IDAgMCAwIDMuMzItMS41NS4zOS4zOSAwIDAgMSAuNTYgMEM2LjgyIDIuNyA3LjQgMy4xIDggMy4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFFyQ29kZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRckNvZGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMgMTFoLTJ2MmgydjJoLTJ2Mmgydi0yaDJ2Mmgydi0yaC0ydi0yaDJ2LTJoLTJ2MmgtMnYtMlpNNSA1aDJ2Mkg1VjVabTAtMmEyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVabS0uNzUgMS43NWMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNWgtMi41YS41LjUgMCAwIDEtLjUtLjV2LTIuNVpNNSAxM2gydjJINXYtMlptMC0yYTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0ySDVabS0uNzUgMS43NWMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNWgtMi41YS41LjUgMCAwIDEtLjUtLjV2LTIuNVpNMTMgNWgydjJoLTJWNVptMC0yYTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJoLTJabS0uNzUgMS43NWMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNWgtMi41YS41LjUgMCAwIDEtLjUtLjV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFFyQ29kZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXJDb2RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAxNWgydjJoLTJ2LTJabTQgMGgydjJoLTJ2LTJabS00LTRoMnYyaC0ydi0yWm0yIDJoMnYyaC0ydi0yWm0yLTJoMnYyaC0ydi0yWk0zIDVjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1Wm0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUg1Wm0wIDFoMnYySDVWNVptLTIgOGMwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yWm0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFINVptMCAxaDJ2Mkg1di0yWm02LThjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJWNVptMi0xYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFoLTJabTAgMWgydjJoLTJWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDNhNCA0IDAgMCAwLTQgNCAuNzUuNzUgMCAwIDAgMS41IDBBMi41IDIuNSAwIDAgMSAxMCA0LjUgMi41IDIuNSAwIDAgMSAxMi41IDdjMCAuNi0uMTYuOTctLjM3IDEuMjdhNSA1IDAgMCAxLS45Ny45MmMtLjQuMzMtLjkuNzMtMS4yOCAxLjMtLjM5LjU4LS42MyAxLjMtLjYzIDIuMjZ2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWMwLS42Ny4xNi0xLjEuMzgtMS40My4yMy0uMzUuNTUtLjYyLjk3LS45NmwuMDYtLjA1Yy4zOC0uMy44NC0uNjcgMS4yLTEuMTdDMTMuNzQgOC42IDE0IDcuOSAxNCA3YTQgNCAwIDAgMC00LTRabTAgMTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTQgNCAwIDAgMC00IDQgLjUuNSAwIDAgMCAxIDAgMyAzIDAgMCAxIDYgMGMwIDEuMjUtLjcgMS44Ni0xLjU4IDIuNjJsLS4wMy4wM2MtLjg2LjczLTEuODkgMS42Mi0xLjg5IDMuMzV2LjVhLjUuNSAwIDAgMCAxIDBWMTNjMC0xLjI1LjctMS44NiAxLjU4LTIuNjJsLjAzLS4wM0MxMi45NyA5LjYyIDE0IDguNzMgMTQgN2E0IDQgMCAwIDAtNC00Wm0wIDE0YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uQ2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uQ2lyY2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTAgMTEuNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVabTAtOEEyLjUgMi41IDAgMCAwIDcuNSA4YS41LjUgMCAwIDAgMSAwIDEuNSAxLjUgMCAxIDEgMi42My45OGwtLjEuMTEtLjEyLjEtLjI1LjE5QTMuMiAzLjIgMCAwIDAgOS41IDEyYS41LjUgMCAwIDAgMSAwYzAtLjc2LjItMS4yNS41My0xLjYxbC4wOC0uMDguMDgtLjA3LjA5LS4wNy4yMi0uMTcuMTUtLjEyQTIuNSAyLjUgMCAwIDAgMTAgNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uQ2lyY2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabTAgMTAuNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVabTAtOGEyLjUgMi41IDAgMCAxIDEuNjUgNC4zOGwtLjE1LjEyLS4yMi4xNy0uMDkuMDctLjE2LjE1Yy0uMzMuMzYtLjUzLjg1LS41MyAxLjYxYS41LjUgMCAwIDEtMSAwIDMuMiAzLjIgMCAwIDEgMS4xNi0yLjYybC4yNS0uMTkuMTItLjFBMS41IDEuNSAwIDAgMCAxMCA2LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgMTAgNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVpek5ld0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWl6TmV3RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFhNS40OCA1LjQ4IDAgMCAxLS40LTRINS41YS41LjUgMCAwIDEgMC0xaDQuMUE1LjUgNS41IDAgMCAxIDE3IDkuNlY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTAgMTFoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMVpNOCA1Yy4yIDAgLjM4LjEyLjQ2LjNsMiA0LjVhLjUuNSAwIDEgMS0uOTIuNEw5LjAxIDlINi45OWwtLjUzIDEuMmEuNS41IDAgMCAxLS45Mi0uNGwyLTQuNUEuNS41IDAgMCAxIDggNVptLjU2IDNMOCA2LjczIDcuNDQgOGgxLjEyWm00Ljk0LTIuNXYxaDFhLjUuNSAwIDAgMSAwIDFoLTF2MWEuNS41IDAgMCAxLTEgMHYtMWgtMWEuNS41IDAgMCAxIDAtMWgxdi0xYS41LjUgMCAwIDEgMSAwWm01LjUgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1aXpOZXdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1aXpOZXdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41di05QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYzLjdjLjM1LjEuNjguMjQgMSAuNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTMuNyAxMGMuMS0uMzUuMjQtLjY4LjQtMUg1LjVhLjUuNSAwIDAgMCAwIDFoMy43Wm0tLjcgMmEuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwIDAgMWgzWk04IDVjLjIgMCAuMzguMTIuNDYuM2wyIDQuNWEuNS41IDAgMSAxLS45Mi40TDkuMDEgOUg2Ljk5bC0uNTMgMS4yYS41LjUgMCAwIDEtLjkyLS40bDItNC41QS41LjUgMCAwIDEgOCA1Wm0uNTYgM0w4IDYuNzMgNy40NCA4aDEuMTJabTQuOTQtMi41YS41LjUgMCAwIDAtMSAwdjFoLTFhLjUuNSAwIDAgMCAwIDFoMXYxYS41LjUgMCAwIDAgMSAwdi0xaDFhLjUuNSAwIDAgMCAwLTFoLTF2LTFabTUuNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmFkYXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkYXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTQuMjggMy4yNC0xLjA5IDEuMWE2LjUgNi41IDAgMSAwIDEuNCAxMC4yNi43NS43NSAwIDAgMSAxLjA3IDEuMDYgOCA4IDAgMSAxLTEuMzgtMTIuNDJabS0zLjMgMy4zIDEuMTctMS4xN2E1LjEgNS4xIDAgMSAwIDEuNDYgOC4yNC43NS43NSAwIDEgMC0xLjA2LTEuMDYgMy42IDMuNiAwIDEgMS0xLjU2LTYuMDFabTQuOC0yLjMyYy4zLjMuMy43NyAwIDEuMDZsLTQuMzMgNC4zM2ExLjUgMS41IDAgMSAxLTEuMDYtMS4wNmw0LjMzLTQuMzNjLjMtLjMuNzctLjMgMS4wNiAwWm0xLjQ3IDkuMDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTYuNSA3LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0xLjUgMy43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1LTEuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xNSAxMS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1LTEuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmFkYXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGFyUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xNC41IDMuMzgtLjcyLjcyYTcgNyAwIDEgMCAxLjE3IDEwLjg1LjUuNSAwIDAgMSAuNy43QTggOCAwIDEgMSAxNC41IDMuMzlabS0yLjk0IDIuOTQuNzUtLjc1YTUgNSAwIDEgMCAxLjIzIDcuOTcuNS41IDAgMSAwLS43MS0uNzEgNCA0IDAgMSAxLTEuMjctNi41MVptNC4zLTIuMTdjLjE5LjIuMTkuNSAwIC43bC00LjkgNC45YTEgMSAwIDEgMS0uNy0uNzJsNC44OS00Ljg4Yy4yLS4yLjUtLjIuNyAwWk0xNyAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk0xNi41IDdhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTEuNSA0LjI1YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tLjUtMmEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptLTIuNSAyYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tLjUtMmEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGFyQ2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGFyQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0LjI4IDMuMjQtMS4wOSAxLjFhNi41IDYuNSAwIDAgMC05LjY2IDUuMDIgNS41IDUuNSAwIDAgMC0xLjUzLjkgOCA4IDAgMCAxIDEyLjI4LTcuMDFaTTkuNzUgMThjLjM3LS40Ni42Ny0uOTcuODktMS41M2E2LjQ3IDYuNDcgMCAwIDAgMy45Ni0xLjg3Ljc1Ljc1IDAgMCAxIDEuMDYgMS4wNkE3Ljk4IDcuOTggMCAwIDEgOS43NSAxOFpNMTEgMTQuNWMwIC4xNyAwIC4zNC0uMDIuNWE1LjA4IDUuMDggMCAwIDAgMi42My0xLjQuNzUuNzUgMCAxIDAtMS4wNi0xLjA1Yy0uNDcuNDctMS4wNC43OC0xLjY0LjkzLjA2LjMzLjA5LjY3LjA5IDEuMDJaTTUuNSA5Yy4zNSAwIC42OS4wMyAxLjAyLjFhMy41OCAzLjU4IDAgMCAxIDQuNDctMi41NmwxLjE2LTEuMTdBNS4xIDUuMSAwIDAgMCA1IDkuMDJMNS41IDlabTMgLjljLjY0LjQxIDEuMTkuOTYgMS42IDEuNmExLjUgMS41IDAgMCAwIDEuMzUtMS44OWw0LjMzLTQuMzNhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNC4zMyA0LjMzQTEuNSAxLjUgMCAwIDAgOC41IDkuOVptOC43NSAzLjM1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTE2LjUgNy41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMS41IDMuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0xLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTUgMTEuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0xLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLTQuMjUgNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE1LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRhckNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkYXJDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0LjUgMy4zOC0uNzIuNzJBNyA3IDAgMCAwIDMgOS42Yy0uMzYuMTgtLjcuNC0xIC42NWE4IDggMCAwIDEgMTIuNS02Ljg3Wk05Ljc1IDE4Yy4yNS0uMzEuNDctLjY1LjY2LTEuMDFhNi45NyA2Ljk3IDAgMCAwIDQuNTQtMi4wNC41LjUgMCAwIDEgLjcuN0E3Ljk4IDcuOTggMCAwIDEgOS43NiAxOFpNMTEgMTQuNWwtLjAxLjRhNC45OCA0Ljk4IDAgMCAwIDIuNTUtMS4zNi41LjUgMCAxIDAtLjcxLS43MWMtLjU0LjUzLTEuMTguODgtMS44NiAxLjA1LjAyLjIuMDMuNDEuMDMuNjJaTTUuNSA5bC42Mi4wM2EzLjk4IDMuOTggMCAwIDEgNS40NC0yLjcxbC43NS0uNzVBNSA1IDAgMCAwIDUuMSA5TDUuNSA5Wm0zLjU0IDEuM2MuMjQuMi40Ni40Mi42Ny42NmExIDEgMCAwIDAgMS4yNi0xLjIybDQuODgtNC44OWEuNS41IDAgMCAwLS43LS43bC00LjkgNC44OGExIDEgMCAwIDAtMS4yIDEuMjZaTTE3IDEzLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTE2LjUgN2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMS41IDQuMjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS0uNS0yYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0tMi41IDJhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS0uNS0yYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEw0LjUgMTUuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGFyUmVjdGFuZ2xlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkYXJSZWN0YW5nbGVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC4yOCAzLjI0LTEuMDkgMS4xQTYuNSA2LjUgMCAwIDAgMy41OCAxMUgyLjA2YTcuOTkgNy45OSAwIDAgMSAxMi4yMi03Ljc2Wk0xMCAxN3YtLjVjMS42NiAwIDMuMzMtLjYzIDQuNi0xLjlhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNkE3Ljk4IDcuOTggMCAwIDEgOS44MyAxOGEzIDMgMCAwIDAgLjE3LTFabTAtMi41di42YzEuMyAwIDIuNjEtLjUgMy42LTEuNWEuNzUuNzUgMCAxIDAtMS4wNS0xLjA1IDMuNiAzLjYgMCAwIDEtMi44NiAxLjA0Yy4yLjI1LjMxLjU3LjMxLjkxWk02LjUgMTFoLjA0QTMuNiAzLjYgMCAwIDEgMTEgNi41NGwxLjE2LTEuMTdBNS4xIDUuMSAwIDAgMCA1IDExaDEuNVptOS4yOC02Ljc4Yy4zLjMuMy43NyAwIDEuMDZsLTQuMzMgNC4zM2ExLjUgMS41IDAgMSAxLTEuMDYtMS4wNmw0LjMzLTQuMzNjLjMtLjMuNzctLjMgMS4wNiAwWm0xLjQ3IDkuMDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTYuNSA3LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0xLjUgMy43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1LTEuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xNSAxMS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1LTEuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xLjUgMTJhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTVabTcgMmMuMjggMCAuNS4yMi41LjVWMTdhMiAyIDAgMCAxLTIgMkgzLjVhLjUuNSAwIDAgMSAwLTFIN2ExIDEgMCAwIDAgMS0xdi0yLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGFyUmVjdGFuZ2xlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGFyUmVjdGFuZ2xlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0LjUgMy4zOC0uNzIuNzJBNyA3IDAgMCAwIDMuMDggMTFIMi4wNUE3Ljk5IDcuOTkgMCAwIDEgMTQuNSAzLjM4Wk05LjgzIDE4YTMgMyAwIDAgMCAuMTctMWMxLjggMCAzLjU4LS42OCA0Ljk1LTIuMDVhLjUuNSAwIDAgMSAuNy43QTcuOTggNy45OCAwIDAgMSA5Ljg0IDE4Wm0uMTctMy41di41YzEuMjggMCAyLjU2LS40OSAzLjU0LTEuNDZhLjUuNSAwIDEgMC0uNzEtLjcxYy0uOC44LTEuODYgMS4yLTIuOTIgMS4xNy4wNi4xNi4wOS4zMi4wOS41Wk01LjEgMTFoMS4wM2E0IDQgMCAwIDEgNS40My00LjY4bC43NS0uNzVBNSA1IDAgMCAwIDUuMSAxMVptMTAuNzUtNi44NWMuMi4yLjIuNSAwIC43bC00Ljg4IDQuOWExIDEgMCAxIDEtLjcxLS43Mmw0Ljg5LTQuODhjLjItLjIuNS0uMi43IDBaTTE3IDEzLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTE2LjUgN2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMS41IDQuMjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS0uNS0yYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0tMi41IDJhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS0uNS0yYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk0xLjUgMTJhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTVabTcgMmMuMjggMCAuNS4yMi41LjVWMTdhMiAyIDAgMCAxLTIgMkgzLjVhLjUuNSAwIDAgMSAwLTFIN2ExIDEgMCAwIDAgMS0xdi0yLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGlvQnV0dG9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGlvQnV0dG9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDE1YTUgNSAwIDEgMCAwLTEwIDUgNSAwIDAgMCAwIDEwWm0wLTEzYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmFkaW9CdXR0b25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGlvQnV0dG9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmFtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDdoMi41djNINVY3Wm02LjUgMHYzaC0zVjdoM1ptMSAzSDE1VjdoLTIuNXYzWm0zLjU0LTZjLjI2IDAgLjUuMDUuNzQuMTZBMi4wNiAyLjA2IDAgMCAxIDE4IDUuOTZWMTFhMiAyIDAgMCAxLTEgMS43M3YxLjc3YTEuNDUgMS40NSAwIDAgMS0uNDQgMS4wNWMtLjEzLjE0LS4zLjI1LS40OC4zMy0uMTkuMDktLjM4LjEzLS41OC4xMmgtNGEuNDguNDggMCAwIDEtLjM1LS4xNUwxMCAxNC43bC0xLjE1IDEuMTVjLS4xLjEtLjIxLjE1LS4zNS4xNWgtNGExLjQ1IDEuNDUgMCAwIDEtMS4wNS0uNDRjLS4xNC0uMTMtLjI1LS4zLS4zMy0uNDhBMS4zMiAxLjMyIDAgMCAxIDMgMTQuNXYtMS43N2MtLjMtLjE3LS41NS0uNDItLjczLS43M0EyLjA2IDIuMDYgMCAwIDEgMiAxMVY1Ljk2YzAtLjI2LjA1LS41LjE2LS43NEEyLjA2IDIuMDYgMCAwIDEgMy45NiA0aDEyLjA4Wm0tLjY2IDIuMDhBLjk1Ljk1IDAgMCAwIDE1IDZINWEuODUuODUgMCAwIDAtLjQuMDhjLS4xMi4wNi0uMjIuMTMtLjMxLjIyQTEgMSAwIDAgMCA0IDd2M2MwIC4xNS4wMy4yOC4wOC40LjA0LjEyLjEyLjIyLjIuMzEuMS4wOS4yMS4xNi4zMy4yMS4xMi4wNS4yNS4wOC4zOS4wOGgxMGMuMTQgMCAuMjctLjAyLjQtLjA4LjEyLS4wNi4yMi0uMTMuMzEtLjIyQTEgMSAwIDAgMCAxNiAxMFY3YTEgMSAwIDAgMC0uMy0uNzEgMS4xIDEuMSAwIDAgMC0uMzItLjIxWlwiXSk7XG5leHBvcnQgY29uc3QgUmFtUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjA0IDRjLjI2IDAgLjUuMDUuNzQuMTZBMi4wNiAyLjA2IDAgMCAxIDE4IDUuOTZWMTFhMiAyIDAgMCAxLTEgMS43M3YxLjc3YTEuNDUgMS40NSAwIDAgMS0uNDQgMS4wNWMtLjEzLjE0LS4zLjI1LS40OC4zMy0uMTkuMDktLjM4LjEzLS41OC4xMmgtNGEuNDguNDggMCAwIDEtLjM1LS4xNUwxMCAxNC43bC0xLjE1IDEuMTVjLS4xLjEtLjIxLjE1LS4zNS4xNWgtNGExLjQ1IDEuNDUgMCAwIDEtMS4wNS0uNDRjLS4xNC0uMTMtLjI1LS4zLS4zMy0uNDhBMS4zMiAxLjMyIDAgMCAxIDMgMTQuNXYtMS43N2MtLjMtLjE3LS41NS0uNDItLjczLS43M0EyLjA2IDIuMDYgMCAwIDEgMiAxMVY1Ljk2YzAtLjI2LjA1LS41LjE2LS43NEEyLjA2IDIuMDYgMCAwIDEgMy45NiA0aDEyLjA4Wk0xNyA2YS45NS45NSAwIDAgMC0uMDgtLjM4IDEuMSAxLjEgMCAwIDAtLjItLjMyQTEgMSAwIDAgMCAxNiA1SDMuOTlhLjk3Ljk3IDAgMCAwLS43LjI5Yy0uMS4wOS0uMTYuMi0uMjIuMzJBLjg1Ljg1IDAgMCAwIDMgNnY1YzAgLjE0LjAzLjI3LjA4LjQuMDUuMTEuMTIuMjIuMi4zMS4xLjEuMi4xNi4zMi4yMS4xMi4wNS4yNS4wNy40LjA4aDEyYS45Ny45NyAwIDAgMCAuNy0uMjljLjEtLjA5LjE2LS4yLjIyLS4zMkEuODUuODUgMCAwIDAgMTcgMTFWNlptLTIgMGMuMTQgMCAuMjYuMDMuMzguMDhzLjIzLjEyLjMyLjJBMSAxIDAgMCAxIDE2IDd2My4wMWEuOTcuOTcgMCAwIDEtLjI5LjdjLS4wOS4xLS4yLjE2LS4zMi4yMkEuODUuODUgMCAwIDEgMTUgMTFINWEuOTcuOTcgMCAwIDEtLjQtLjA4IDEuMSAxLjEgMCAwIDEtLjMxLS4yLjg1Ljg1IDAgMCAxLS4yMS0uMzJBMS4yIDEuMiAwIDAgMSA0IDEwVjdhLjk3Ljk3IDAgMCAxIC4yOS0uN2MuMDktLjEuMi0uMTYuMzItLjIyQS44NS44NSAwIDAgMSA1IDZoMTBaTTcuNSA3SDV2M2gyLjVWN1ptNCAzVjdoLTN2M2gzWm0xIDBIMTVWN2gtMi41djNabTMuNSAzSDR2MS41YzAgLjE0LjA1LjI1LjE1LjM1LjEuMS4yMS4xNS4zNS4xNWgzLjhsMS4zNS0xLjM1Yy4xLS4xLjIxLS4xNS4zNS0uMTUuMTQgMCAuMjUuMDUuMzUuMTVMMTEuNzEgMTVoMy43OWMuMTQgMCAuMjUtLjA1LjM1LS4xNS4xLS4xLjE1LS4yMS4xNS0uMzVWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpbmdNYXR1cmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmF0aW5nTWF0dXJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTQuOTIgMS4yNEEuNS41IDAgMCAwIDcgNy41djVhLjUuNSAwIDEgMCAxIDBWOS4yNGwxLjU4IDIuNTNhLjUuNSAwIDAgMCAuODQgMEwxMiA5LjI0djMuMjZhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uOTItLjI2TDEwIDEwLjU2IDcuOTIgNy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhdGluZ01hdHVyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmF0aW5nTWF0dXJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjkyIDcuMjRBLjUuNSAwIDAgMCA3IDcuNXY1YS41LjUgMCAxIDAgMSAwVjkuMjRsMS41OCAyLjUzYS41LjUgMCAwIDAgLjg0IDBMMTIgOS4yNHYzLjI2YS41LjUgMCAxIDAgMSAwdi01YS41LjUgMCAwIDAtLjkyLS4yNkwxMCAxMC41NiA3LjkyIDcuMjRaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpb09uZVRvT25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhdGlvT25lVG9PbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDEwLjVBMi43NSAyLjc1IDAgMCAwIDE4IDEzLjI1di02LjVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNNyA3LjV2NWEuNS41IDAgMCAxLTEgMFY4LjNsLS4yOC4xNWEuNS41IDAgMSAxLS40NC0uOWwxLS41QS41LjUgMCAwIDEgNyA3LjVabTcgMHY1YS41LjUgMCAxIDEtMSAwVjguM2wtLjI4LjE1YS41LjUgMCAxIDEtLjQ0LS45bDEtLjVhLjUuNSAwIDAgMSAuNzIuNDVabS00IDFhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTkuNSAxMmEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhdGlvT25lVG9PbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhdGlvT25lVG9PbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNzYgNy4wN2MuMTUuMS4yNC4yNi4yNC40M3Y1YS41LjUgMCAwIDEtMSAwVjguM2wtLjI4LjE1YS41LjUgMCAxIDEtLjQ0LS45bDEtLjVhLjUuNSAwIDAgMSAuNDguMDJaTTE0IDcuNWEuNS41IDAgMCAwLS43Mi0uNDVsLTEgLjVhLjUuNSAwIDEgMCAuNDQuOUwxMyA4LjN2NC4xOWEuNS41IDAgMCAwIDEgMHYtNVptLTQgMWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNOS41IDEyYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTZINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMy4yNXYtNi41Wk00Ljc1IDVDMy43OCA1IDMgNS43OCAzIDYuNzV2Ni41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEwLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di02LjVDMTcgNS43OCAxNi4yMiA1IDE1LjI1IDVINC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlT3JkZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDcuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVabTAgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlT3JkZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlT3JkZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA4YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVptMCAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlT3JkZXJEb3RzSG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c0hvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgNi41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm0tNSAwYTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWk01LjUgOGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1ptOC41IDUuNWExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpNMTAuNSAxNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1pNNCAxMy41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNIb3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c0hvcml6b250YWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1IDdhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWk05IDdhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWk00IDhhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0xMSA1YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptLTUgMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabS03LTFhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNWZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c1ZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSA2YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0wIDVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTggMTQuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpNMTMuNSA2YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0xNSA5LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaTTEzLjUgMTZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyRG90c1ZlcnRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c1ZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0wIDZhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm01LTExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMSA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEgN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZEFsb3VkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjg0IDIuMTRjLjItLjM2LjY2LS41IDEuMDItLjNhOS45NCA5Ljk0IDAgMCAxIDUuMzkgOC4wOC43NS43NSAwIDEgMS0xLjUuMTYgOC40NSA4LjQ1IDAgMCAwLTQuNi02LjkyLjc1Ljc1IDAgMCAxLS4zLTEuMDJaTTguNyA0LjIyYS43NS43NSAwIDAgMC0xLjM4IDBsLTQuNSAxMWEuNzUuNzUgMCAwIDAgMS4zOC41NmwxLjQ1LTMuNTNoNC43MmwxLjQ1IDMuNTNhLjc1Ljc1IDAgMCAwIDEuMzgtLjU2bC00LjUtMTFabTEuMDYgNi41M2gtMy41TDggNi40OGwxLjc1IDQuMjdabTIuNjItNi40YS43NS43NSAwIDAgMC0uNzQgMS4zYzEuNTIuODcgMi40IDIuNCAyLjYzIDMuOTZhLjc1Ljc1IDAgMSAwIDEuNDgtLjIyIDYuOTIgNi45MiAwIDAgMC0zLjM3LTUuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRBbG91ZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuMDYgMi4yNmEuNS41IDAgMCAxIC42OC0uMkE5LjcgOS43IDAgMCAxIDE4IDkuOTRhLjUuNSAwIDAgMS0xIC4xMiA4LjcgOC43IDAgMCAwLTQuNzQtNy4xMi41LjUgMCAwIDEtLjItLjY4Wm0tMy42IDIuMDVhLjUuNSAwIDAgMC0uOTIgMGwtNC41IDExYS41LjUgMCAxIDAgLjkyLjM4bDEuNTQtMy43NlYxMmg1di0uMDdsMS41NCAzLjc2YS41LjUgMCAxIDAgLjkyLS4zOGwtNC41LTExWk0xMC4xMiAxMUg1Ljg4TDggNS44MiAxMC4xMiAxMVptMi4xMy02LjQzYS41LjUgMCAwIDAtLjUuODYgNS42NyA1LjY3IDAgMCAxIDIuNzYgNC4xNC41LjUgMCAwIDAgLjk4LS4xNCA2LjY3IDYuNjcgMCAwIDAtMy4yNC00Ljg2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDUuNWExIDEgMCAwIDEgMS44NC0uNTYuNzUuNzUgMCAwIDAgMS4yNC0uODNBMi41IDIuNSAwIDEgMCA0LjYgOGgxMC42N2EuNzUuNzUgMCAwIDAgMC0xLjVINC41YTEgMSAwIDAgMS0xLTFaTTkuNzUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0tNCA1YS43NS43NSAwIDAgMCAwIDEuNWgxMS41YS43NS43NSAwIDEgMCAwLTEuNUg1Ljc1Wk0yIDEyLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTIuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNS43NSAxNGEuNzUuNzUgMCAwIDAgMCAxLjVoMTEuNWEuNzUuNzUgMCAxIDAgMC0xLjVINS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWRpbmdMaXN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA2LjI1YTEuMjUgMS4yNSAwIDAgMSAyLjMtLjcuNS41IDAgMSAwIC44Mi0uNTUgMi4yNSAyLjI1IDAgMSAwLTEuNzQgMy41SDE1LjVhLjUuNSAwIDAgMCAwLTFINC4zOGEuNS41IDAgMCAwLS4wNiAwQTEuMjUgMS4yNSAwIDAgMSAzIDYuMjVaTTguNSA1YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabS0zIDVhLjUuNSAwIDAgMCAwIDFoMTJhLjUuNSAwIDAgMCAwLTFoLTEyWk0yIDEzYzAtLjI4LjIyLS41LjUtLjVoMTJhLjUuNSAwIDAgMSAwIDFoLTEyQS41LjUgMCAwIDEgMiAxM1ptMy41IDJhLjUuNSAwIDAgMCAwIDFoMTJhLjUuNSAwIDEgMCAwLTFoLTEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3RBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDUuNWExIDEgMCAwIDEgMS44NC0uNTYuNzUuNzUgMCAwIDAgMS4yNC0uODNBMi41IDIuNSAwIDEgMCA0LjYgOGgxMC42N2EuNzUuNzUgMCAwIDAgMC0xLjVINC41YTEgMSAwIDAgMS0xLTFaTTkuNzUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0tNCA1YS43NS43NSAwIDAgMCAwIDEuNWg0Ljk4QTUuNDggNS40OCAwIDAgMSAxNC41IDlINS43NVptLTMgMi41aDcuMTRjLS4zLjQ2LS41My45Ni0uNjggMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0zIDIuNWgzLjI3YTUuNTcgNS41NyAwIDAgMCAuMDcgMS41SDUuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0xMy4yNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAxIDAgMSAwVjE1aDEuNWEuNS41IDAgMSAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdMaXN0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuMjVhMS4yNSAxLjI1IDAgMCAxIDIuMy0uNy41LjUgMCAxIDAgLjgyLS41NSAyLjI1IDIuMjUgMCAxIDAtMS43NCAzLjVIMTUuNWEuNS41IDAgMCAwIDAtMUg0LjM4YS41LjUgMCAwIDAtLjA2IDBBMS4yNSAxLjI1IDAgMCAxIDMgNS4yNVpNOC41IDRhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVptLTMgNWEuNS41IDAgMCAwIDAgMWg1Ljg0Yy45LS42MyAxLjk4LTEgMy4xNi0xaC05Wm0tMyAyLjVoNy4zOWMtLjIuMzEtLjM4LjY1LS41MiAxSDIuNWEuNS41IDAgMCAxIDAtMVptMyAyLjVoMy41MmE1LjU3IDUuNTcgMCAwIDAgMCAxSDUuNWEuNS41IDAgMCAxIDAtMVptMTMuNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ01vZGVNb2JpbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ01vZGVNb2JpbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMmg5Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTNabTIgM2MwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAtLjUuNVpNNi41IDhhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAxMC41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ01vZGVNb2JpbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdNb2RlTW9iaWxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgNmEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wk02IDguNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTQgMy41QzQgMi42NyA0LjY3IDIgNS41IDJoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYxM2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEzWk01LjUgM2EuNS41IDAgMCAwLS41LjV2MTNjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xM2EuNS41IDAgMCAwLS41LS41aC05WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhbEVzdGF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFsRXN0YXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgM2ExIDEgMCAwIDEgMiAwaDEzYTEgMSAwIDEgMSAwIDJINHYxMi41YS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41VjNabTMgMy41YzAtLjI4LjIyLS41LjUtLjVoMTFjLjI4IDAgLjUuMjIuNS41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgNSAxMy41di03Wm0zIDdjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjV2MWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTIuNTVhMSAxIDAgMCAwLS4zNC0uNzVsLTIuMzMtMi4wN2EuNS41IDAgMCAwLS42NiAwTDguMzQgMTAuMmExIDEgMCAwIDAtLjM0Ljc1djIuNTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFsRXN0YXRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFsRXN0YXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDMuNUExLjUgMS41IDAgMCAxIDQuOTEgM0gxNi41YTEuNSAxLjUgMCAwIDEgLjUgMi45MlYxM2EzIDMgMCAwIDEtMyAzSDdjLS43NyAwLTEuNDctLjI5LTItLjc2djIuMDFjMCAuNDEtLjM0Ljc1LS43NS43NWgtMS41YS43NS43NSAwIDAgMS0uNzUtLjc1VjMuNVpNMTYgMTNWNkg1djdjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJaTTQgNWgxMi41YS41LjUgMCAwIDAgMC0xSDR2LS41YS41LjUgMCAwIDAtMSAwVjE3aDFWNVptMy41IDQuOTV2Mi41NmMwIC4yNy4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXYxYzAgLjI3LjIyLjUuNS41aDFhLjUuNSAwIDAgMCAuNS0uNVY5Ljk1YTEgMSAwIDAgMC0uMzQtLjc0bC0yLjMzLTIuMDdhLjUuNSAwIDAgMC0uNjYgMEw3Ljg0IDkuMmExIDEgMCAwIDAtLjM0Ljc0WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y1Wm0xMSAxMWEyIDIgMCAwIDAgMi0ydi0xaC0ydjNaTTYuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0wIDNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y1Wm0xMSA4djNhMiAyIDAgMCAwIDItMnYtMWgtMlptLTEgM1Y1YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjljMCAxLjEuOSAyIDIgMmg3Wk02IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA1YzAtMS4xLjktMiAyLTJoN2EyIDIgMCAwIDEgMiAydjdoM3YyYTMgMyAwIDAgMS0zIDNoLTQuNmE1LjQ4IDUuNDggMCAwIDAtMS43NC03aDIuODRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNDIuMjNBNS41IDUuNSAwIDAgMCA0IDkuMjFWNVptMTEgMTFhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03LjUgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0yLjUgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YzAtMS4xLjktMiAyLTJoN2EyIDIgMCAwIDEgMiAydjdoM3YyYTMgMyAwIDAgMS0zIDNoLTQuNmMuMTYtLjMyLjMtLjY1LjQtMUgxNFY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjQuMDJjLS4zNC4wMy0uNjguMS0xIC4xOVY1Wm03LjUgNUg4LjY2YTUuNDggNS40OCAwIDAgMC0xLjU4LS43N0EuNS41IDAgMCAxIDcuNSA5aDRhLjUuNSAwIDAgMSAwIDFabTMuNSA2YTIgMiAwIDAgMCAyLTJ2LTFoLTJ2M1pNNyA2LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTMgOGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRCYWdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdEJhZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNXYtNC41YzAtLjY1LS40Mi0xLjItMS0xLjQxVjExYTMgMyAwIDAgMC0uMTctMWgyLjY3YS41LjUgMCAwIDAgMC0xSDguMjRBMyAzIDAgMCAwIDUgOC4xNyAzIDMgMCAwIDAgNCA4VjVabTExIDExYTIgMiAwIDAgMCAyLTJ2LTFoLTJ2M1pNNy41IDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpNNCA5YTIgMiAwIDAgMSAxIC4yN0EyIDIgMCAwIDEgOCAxMXYxaC41Yy4yOCAwIC41LjIyLjUuNVYxN2EyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtNC41YzAtLjI4LjIyLS41LjUtLjVIMnYtMWMwLTEuMS45LTIgMi0yWm0xIDN2LTFhMSAxIDAgMSAwLTIgMHYxaDJabS43NS0xLjk3QTIgMiAwIDAgMSA2IDExdjFoMXYtMWExIDEgMCAwIDAtMS4yNS0uOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0QmFnUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0QmFnUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNXYtMWg0VjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2My4xN0EzIDMgMCAwIDAgNCA4VjVabTcuNSA1SDguODNhMyAzIDAgMCAwLS42LTFoMy4yN2EuNS41IDAgMCAxIDAgMVptMy41IDN2M2EyIDIgMCAwIDAgMi0ydi0xaC0yWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpNNCA5YTIgMiAwIDAgMSAxIC4yN0EyIDIgMCAwIDEgOCAxMXYxaC41Yy4yOCAwIC41LjIyLjUuNVYxN2EyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtNC41YzAtLjI4LjIyLS41LjUtLjVIMnYtMWMwLTEuMS45LTIgMi0yWm0xIDN2LTFhMSAxIDAgMSAwLTIgMHYxaDJabS43NS0xLjk3QTIgMiAwIDAgMSA2IDExdjFoMXYtMWExIDEgMCAwIDAtMS4yNS0uOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0Q3ViZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0Q3ViZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM0g5Ljk0YTIgMiAwIDAgMCAuMDYtLjV2LTRhMiAyIDAgMCAwLTEuMS0xLjc5TDcuNDYgMTBhLjUuNSAwIDAgMCAuMDMgMGg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjM4LjgybC0xLjIzLS42YTIgMiAwIDAgMC0xLjc4IDBMNCA5LjI1VjVabTExIDExYTIgMiAwIDAgMCAyLTJ2LTFoLTJ2M1pNNy41IDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptLjk1IDUuNi0zLTEuNWExIDEgMCAwIDAtLjkgMGwtMyAxLjVhMSAxIDAgMCAwLS41NS45djRhMSAxIDAgMCAwIC41NS45bDMgMS41YTEgMSAwIDAgMCAuOSAwbDMtMS41YTEgMSAwIDAgMCAuNTUtLjl2LTRhMSAxIDAgMCAwLS41NS0uOVptLTYuNDEgMS4xM2EuNS41IDAgMCAxIC42Ni0uMjZsMi4zLjk5IDIuMy0xYS41LjUgMCAwIDEgLjQuOTNsLTIuMi45NFYxN2EuNS41IDAgMSAxLTEgMHYtMi42N2wtMi4yLS45NGEuNS41IDAgMCAxLS4yNi0uNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0Q3ViZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdEN1YmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzSDkuOTRhMiAyIDAgMCAwIC4wNi0uNVYxNmg0VjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2NGEyIDIgMCAwIDAtLjkuMjFsLS4xLjA1VjVabTMuNSA1YS41LjUgMCAwIDEtLjAzIDBsLS4zNS0uMThBLjUuNSAwIDAgMSA3LjUgOWg0YS41LjUgMCAwIDEgMCAxaC00Wm03LjUgM3YzYTIgMiAwIDAgMCAyLTJ2LTFoLTJaTTcgNi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0xLjQ1IDUuMS0zLTEuNWExIDEgMCAwIDAtLjkgMGwtMyAxLjVhMSAxIDAgMCAwLS41NS45djRhMSAxIDAgMCAwIC41NS45bDMgMS41YTEgMSAwIDAgMCAuOSAwbDMtMS41YTEgMSAwIDAgMCAuNTUtLjl2LTRhMSAxIDAgMCAwLS41NS0uOVptLTYuNDEgMS4xM2EuNS41IDAgMCAxIC42Ni0uMjZsMi4zLjk5IDIuMy0xYS41LjUgMCAwIDEgLjQuOTNsLTIuMi45NFYxN2EuNS41IDAgMSAxLTEgMHYtMi42N2wtMi4yLS45NGEuNS41IDAgMCAxLS4yNi0uNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0TW9uZXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdE1vbmV5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzaC00LjA1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di0zQTIuNSAyLjUgMCAwIDAgOC41IDExSDRWNVptMTEgMTFhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03LjUgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0wIDNhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMi41IDQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTZjLS44MyAwLTEuNS42Ny0xLjUgMS41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNabS0xIDJ2MWEuNS41IDAgMCAwLS41LjVoLTFjMC0uODMuNjctMS41IDEuNS0xLjVaTTguNSAxM2MwIC4yOC4yMi41LjUuNXYxQTEuNSAxLjUgMCAwIDEgNy41IDEzaDFabS02LjUuNWEuNS41IDAgMCAwIC41LS41aDFjMCAuODMtLjY3IDEuNS0xLjUgMS41di0xWm0uNSAzLjVhLjUuNSAwIDAgMC0uNS0uNXYtMWMuODMgMCAxLjUuNjcgMS41IDEuNWgtMVpNNCAxNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRNb25leVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdE1vbmV5UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC4wNWMuMDMtLjE2LjA1LS4zMy4wNS0uNVYxNmgzVjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2Nkg0VjVabTEzIDhoLTJ2M2EyIDIgMCAwIDAgMi0ydi0xWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0zIDRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02Yy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di0zWm0tMSAydjFhLjUuNSAwIDAgMC0uNS41aC0xYzAtLjgzLjY3LTEuNSAxLjUtMS41Wk04LjUgMTNjMCAuMjguMjIuNS41LjV2MUExLjUgMS41IDAgMCAxIDcuNSAxM2gxWm0tNi41LjVhLjUuNSAwIDAgMCAuNS0uNWgxYzAgLjgzLS42NyAxLjUtMS41IDEuNXYtMVptLjUgMy41YS41LjUgMCAwIDAtLjUtLjV2LTFjLjgzIDAgMS41LjY3IDEuNSAxLjVoLTFaTTQgMTVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0UGxheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0UGxheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC42YTUuNDggNS40OCAwIDAgMC0xLjc0LTdoMi44NGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS40Mi4yM0E1LjUgNS41IDAgMCAwIDQgOS4yMVY1Wm0xMSAxMWEyIDIgMCAwIDAgMi0ydi0xaC0ydjNaTTcuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTIuNSA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTQgMTZjMCAuMzguNDIuNjIuNzYuNDJsMi41LTEuNWEuNS41IDAgMCAwIDAtLjg1bC0yLjUtMS41QS41LjUgMCAwIDAgNCAxM3YzWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdFBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRQbGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC42Yy4xNi0uMzIuMy0uNjUuNC0xSDE0VjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2NC4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjVabTcuNSA1SDguNjZhNS40OCA1LjQ4IDAgMCAwLTEuNTgtLjc3QS41LjUgMCAwIDEgNy41IDloNGEuNS41IDAgMCAxIDAgMVptMy41IDZhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMyA4YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk00IDE2YzAgLjM4LjQyLjYyLjc2LjQybDIuNS0xLjVhLjUuNSAwIDAgMCAwLS44NWwtMi41LTEuNUEuNS41IDAgMCAwIDQgMTN2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFNlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtMy44OGwtMS41Ni0xLjU2QTQuNDggNC40OCAwIDAgMCA4LjMzIDEwaDMuMTdhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNDUuMjhBNC41IDQuNSAwIDAgMCA0IDkuMjZWNVptMTEgMTFhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03LjUgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0tMiAxMWMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMOC4zIDE1LjZBMy41IDMuNSAwIDEgMCA1LjUgMTdabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EyIDIgMCAwIDAtMiAydjQuMjZjLjMyLS4xMi42NS0uMiAxLS4yM1Y1YTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjExaC0zLjg4bDEgMUgxNWEzIDMgMCAwIDAgMy0zdi0yaC0zVjVhMiAyIDAgMCAwLTItMkg2Wm0yLjMzIDdoMy4xN2EuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS40NS4yOGMuNDcuMTcuOS40MSAxLjI4LjcyWk0xNSAxNnYtM2gydjFhMiAyIDAgMCAxLTIgMlpNNy41IDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptLTIgMTFjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDguMyAxNS42QTMuNSAzLjUgMCAxIDAgNS41IDE3Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0U3BhcmtsZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFNwYXJrbGVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjIzIDEuMzUgMTQuODguMjhhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41OCAxLjU4IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxIDAtLjU3bC43Ny0uMjVhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVpNMTQgOC41VjEyaDIuNWMuMjggMCAuNS4yMi41LjVWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNWMwLTEuMS45LTIgMi0yaDUuMWMtLjA2LjE2LS4xLjMzLS4xLjVhMS40MiAxLjQyIDAgMCAwIDEgMS4zNGwxLjEuMzZhMSAxIDAgMCAxIC40LjIzbC4wNi4wNmMuMTEuMS4yLjI0LjI2LjM4TDEzLjE1IDdjLjA5LjI2LjI1LjQ5LjQ2LjY2LjEyLjA5LjI1LjE1LjM5LjJ2LjIxYTEuMyAxLjMgMCAwIDAgMCAuNDNabTAgNy41YTIgMiAwIDAgMCAyLTJ2LTFoLTJ2M1pNNi41IDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMCAzYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgM2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdFNwYXJrbGVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0U3BhcmtsZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjIzIDEuMzUgMTQuODguMjhhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41OCAxLjU4IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxIDAtLjU3bC43Ny0uMjVhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVpNMTQgOC41YTEuMyAxLjMgMCAwIDEgMC0uNDN2LS4yMWMtLjE0LS4wNS0uMjctLjExLS4zOS0uMi0uMjEtLjE3LS4zNy0uNC0uNDYtLjY2TDEzIDYuNDlWMTZINmEyIDIgMCAwIDEtMi0yVjVhMSAxIDAgMCAxIDEtMWg1LjFjLS4wNi0uMTYtLjEtLjMzLS4xLS41IDAtLjE3LjA0LS4zNC4xLS41SDVhMiAyIDAgMCAwLTIgMnY5YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zdi0xLjVhLjUuNSAwIDAgMC0uNS0uNUgxNFY4LjVabTAgNC41aDJ2MWEyIDIgMCAwIDEtMiAydi0zWk02IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjb3JkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTggNC41YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDE0LjVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmRTdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZFN0b3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZaTTggN2g0YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMVY4YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmRTdG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm01LTJhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMVY4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDRhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y3YTMgMyAwIDAgMC0zLTNINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWN1ptMy0yYTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVIaW50Q29weUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVIaW50Q29weUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVhLjUuNSAwIDAgMCAxIDBWNWEyIDIgMCAwIDAtMi0yaC0xLjVhLjUuNSAwIDAgMCAwIDFIMTZhMSAxIDAgMCAxIDEgMXYuNVptLTgtMmEuNS41IDAgMCAxLS41LjVIN2ExIDEgMCAwIDAtMSAxdi41YS41LjUgMCAwIDEtMSAwVjVjMC0xLjEuOS0yIDItMmgxLjVjLjI3IDAgLjUuMjIuNS41Wk01LjUgMTFjLjI4IDAgLjUuMjIuNS41di41YTEgMSAwIDAgMCAxIDFoMS41YS41LjUgMCAwIDEgMCAxSDdhMiAyIDAgMCAxLTItMnYtLjVjMC0uMjguMjItLjUuNS0uNVptMTEuNS41YS41LjUgMCAwIDEgMSAwdi41YTIgMiAwIDAgMS0yIDJoLTEuNWEuNS41IDAgMSAxIDAtMUgxNmExIDEgMCAwIDAgMS0xdi0uNVptLTQtOGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMmMuMjggMCAuNS4yMi41LjVaTTUuNSA3Yy4yOCAwIC41LjIzLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI3LjIyLS41LjUtLjVabTEyLjUuNWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWk0xMi41IDE0YS41LjUgMCAxIDAgMC0xaC0yYS41LjUgMCAxIDAgMCAxaDJaTTIgNy40MWMwLTEuMzguODItMi41NyAyLTMuMXY3Ljk0QTIuNzUgMi43NSAwIDAgMCA2Ljc1IDE1aDkuOTVhMy40MSAzLjQxIDAgMCAxLTMuMTEgMkg2LjVBNC41IDQuNSAwIDAgMSAyIDEyLjVWNy40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZUhpbnRDb3B5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVIaW50Q29weVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA1YzAtMS4xLjktMiAyLTJoMS41YS41LjUgMCAwIDEgMCAxSDdhMSAxIDAgMCAwLTEgMXYuNWEuNS41IDAgMCAxLTEgMFY1Wm01LTEuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNi0uNWEyIDIgMCAwIDEgMiAydi41YS41LjUgMCAwIDEtMSAwVjVhMSAxIDAgMCAwLTEtMWgtMS41YS41LjUgMCAwIDEgMC0xSDE2Wm0tNiAxMC41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41Wk03IDE0YTIgMiAwIDAgMS0yLTJ2LS41YS41LjUgMCAwIDEgMSAwdi41YTEgMSAwIDAgMCAxIDFoMS41YS41LjUgMCAwIDEgMCAxSDdabTExLTJhMiAyIDAgMCAxLTIgMmgtMS41YS41LjUgMCAwIDEgMC0xSDE2YTEgMSAwIDAgMCAxLTF2LS41YS41LjUgMCAwIDEgMSAwdi41Wk01LjUgN2EuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0xMS41LjVhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMHYtMlpNMiA3LjQxYzAtLjk0LjM4LTEuOCAxLTIuNDF2Ny41QTMuNSAzLjUgMCAwIDAgNi41IDE2SDE2YTMuNCAzLjQgMCAwIDEtMi40MSAxSDYuNUE0LjUgNC41IDAgMCAxIDIgMTIuNVY3LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0Ljg4IDEuMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJabS0zLjAyIDMuNTZjLjIxLjE1LjQ3LjIzLjc0LjIzLjE3IDAgLjM0LS4wMi41LS4wOFYxM2EzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNoNS4wOWExLjQyIDEuNDIgMCAwIDAgLjE3IDEuMzJjLjE3LjI0LjQxLjQzLjcxLjUzbDEuMDYuMzVjLjE1LjA1LjMuMTMuNDcuMjkuMTEuMTEuMi4yNC4zLjQ3bC4zNSAxLjFjLjEuMjQuMjUuNDcuNTIuNjguMTQuMS4zLjE3LjQ1LjIxYTEuMyAxLjMgMCAwIDAgLjc3IDEuNzlsLjc3LjI1Yy4wOC4wMy4xNi4wOC4yMi4xNC4wNy4wNi4xLjE0LjE0LjIybC4yNi44Yy4xLjI1LjI2LjQ2LjQ4LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuODggMS4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTcgMTIuOTFjLjE2LjA2LjMzLjA5LjUuMDkuMTcgMCAuMzQtLjAyLjUtLjA4VjEzYTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM2g1LjA5YTEuNDIgMS40MiAwIDAgMCAwIDFINWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgxMGEyIDIgMCAwIDAgMi0ydi0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjIuMjZBNS41IDUuNSAwIDAgMCA5LjYgMTZINWEzIDMgMCAwIDEtMy0zVjdabTggNi41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjExYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTZhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjIuMjZhNS41IDUuNSAwIDAgMC0xLS42NlY3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg0LjJjLjEuMzUuMjQuNjguNCAxSDVhMyAzIDAgMCAxLTMtM1Y3Wm04IDYuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMWMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE2YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS40OCAxLjQ4QTMgMyAwIDAgMCAyIDd2NmEzIDMgMCAwIDAgMyAzaDQuNmE1LjQ4IDUuNDggMCAwIDEgLjI1LTUuNDRsLjczLjczYTQuNSA0LjUgMCAwIDAgNi4xMyA2LjEzbC40NC40M2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTUuNCAxNi4xYTMgMyAwIDAgMS0yLjQtLjI2VjE2YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNWguOGwuOTMuOTRBLjUuNSAwIDAgMSAxNCAxNWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAxLjAxLjI1bC44Ni44NlpNMTkgMTMuNWMwIC45Ni0uMyAxLjg0LS44IDIuNTdMMTUuMTEgMTNoMS4zOGEuNS41IDAgMCAwIC41LS41VjExYS41LjUgMCAwIDAtMSAwdi4xNWEzLjAxIDMuMDEgMCAwIDAtMi44Mi0uMWwtMS4yNS0xLjI0QTQuNSA0LjUgMCAwIDEgMTkgMTMuNVpNMTUgMTJhLjUuNSAwIDAgMC0uNDkuNGwtLjU2LS41N2EyIDIgMCAwIDEgMS41Mi4xN0gxNVpNNi4xMiA0bDUuMSA1LjFhNS40OCA1LjQ4IDAgMCAxIDYuNzguMTZWN2EzIDMgMCAwIDAtMy0zSDYuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDEuNDggMS40OEEzIDMgMCAwIDAgMiA3djZhMyAzIDAgMCAwIDMgM2g0LjZjLS4xNi0uMzItLjMtLjY1LS40LTFINWEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDEuMzktMS45bDYuMiA2LjE5YTQuNSA0LjUgMCAwIDAgNi4xMyA2LjEzbC40My40M2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTUuNCAxNi4xYTMgMyAwIDAgMS0yLjQtLjI2VjE2YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNWguOGwuOTMuOTRBLjUuNSAwIDAgMSAxNCAxNWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAxLjAxLjI1bC44Ni44NlpNMTkgMTMuNWMwIC45Ni0uMyAxLjg0LS44IDIuNTdMMTUuMTEgMTNoMS4zOGEuNS41IDAgMCAwIC41LS41VjExYS41LjUgMCAwIDAtMSAwdi4xNWEzLjAxIDMuMDEgMCAwIDAtMi44Mi0uMWwtMS4yNS0xLjI0QTQuNSA0LjUgMCAwIDEgMTkgMTMuNVpNMTUgMTJhLjUuNSAwIDAgMC0uNDkuNGwtLjU2LS41N2EyIDIgMCAwIDEgMS41Mi4xN0gxNVpNNi4xMiA0bDEgMUgxNWEyIDIgMCAwIDEgMiAydjEuNmMuMzYuMTguNy40IDEgLjY2VjdhMyAzIDAgMCAwLTMtM0g2LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlUG9ydHJhaXRMb2NhdGlvblRhcmdldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVQb3J0cmFpdExvY2F0aW9uVGFyZ2V0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNS43YTQuNSA0LjUgMCAwIDEtMS40My0yLjAyIDEuNSAxLjUgMCAwIDEgMC0yLjk2IDQuNDkgNC40OSAwIDAgMSAyLjc1LTIuNzUgMS41IDEuNSAwIDAgMSAyLjk2IDBIMTZWNGEyIDIgMCAwIDAtMi0ySDZabTkuMDYgMTMuMzNhMSAxIDAgMSAxLTEuMTItMS42NiAxIDEgMCAwIDEgMS4xMiAxLjY2Wk0xNy45NSAxNGguNTVhLjUuNSAwIDAgMSAwIDFoLS41NUEzLjQ5IDMuNDkgMCAwIDEgMTUgMTcuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0uNTVBMy40OSAzLjQ5IDAgMCAxIDExLjA1IDE1aC0uNTVhLjUuNSAwIDAgMSAwLTFoLjU1QTMuNDkgMy40OSAwIDAgMSAxNCAxMS4wNXYtLjU1YS41LjUgMCAwIDEgMSAwdi41NUEzLjQ5IDMuNDkgMCAwIDEgMTcuOTUgMTRabS0zLjIgMi45OWEyLjUgMi41IDAgMSAwLS41LTQuOTggMi41IDIuNSAwIDAgMCAuNSA0Ljk4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlUG9ydHJhaXRMb2NhdGlvblRhcmdldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlUG9ydHJhaXRMb2NhdGlvblRhcmdldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjYuMjdoLS4wMkExLjUgMS41IDAgMCAwIDE1IDkuMDlWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDQuNzhhNC41IDQuNSAwIDAgMCAuOTIgMUg2YTIgMiAwIDAgMS0yLTJWNFptMTEuMDYgMTEuMzNhMSAxIDAgMSAxLTEuMTItMS42NiAxIDEgMCAwIDEgMS4xMiAxLjY2Wk0xNy45NSAxNGguNTVhLjUuNSAwIDAgMSAwIDFoLS41NUEzLjQ5IDMuNDkgMCAwIDEgMTUgMTcuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0uNTVBMy40OSAzLjQ5IDAgMCAxIDExLjA1IDE1aC0uNTVhLjUuNSAwIDAgMSAwLTFoLjU1QTMuNDkgMy40OSAwIDAgMSAxNCAxMS4wNXYtLjU1YS41LjUgMCAwIDEgMSAwdi41NUEzLjQ5IDMuNDkgMCAwIDEgMTcuOTUgMTRabS0zLjIgMi45OWEyLjUgMi41IDAgMSAwLS41LTQuOTggMi41IDIuNSAwIDAgMCAuNSA0Ljk4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjeWNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN5Y2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguOSAzLjA0YTEuMjUgMS4yNSAwIDAgMSAyLjIgMGwxLjY2IDMuMS0xLjAyLS4zNWEuNzUuNzUgMCAwIDAtLjQ4IDEuNDJsMyAxYS43NS43NSAwIDAgMCAuOTgtLjU5bC41LTNhLjc1Ljc1IDAgMSAwLTEuNDgtLjI0bC0uMTcgMS4wNC0xLjY3LTMuMWEyLjc1IDIuNzUgMCAwIDAtNC44NCAwTDUuODQgNS41N2EuNzUuNzUgMCAwIDAgMS4zMy43TDguOSAzLjA1Wm04LjA0IDEwLjg3LTEuOTEtMy41NmEuNzUuNzUgMCAxIDEgMS4zMi0uNzFsMS45MSAzLjU2YTIuNzUgMi43NSAwIDAgMS0yLjQyIDQuMDVIMTIuM2wuNzIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi0yYS43NS43NSAwIDAgMSAwLTEuMDZsMi0yYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLS43Mi43MmgzLjUzYy45NCAwIDEuNTUtMSAxLjEtMS44NFptLTkuNjkgMS44NGEuNzUuNzUgMCAwIDEgMCAxLjVINC4xNmEyLjc1IDIuNzUgMCAwIDEtMi40Mi00LjA1TDMuNiA5Ljc2bC0xLjM1LjQ1YS43NS43NSAwIDEgMS0uNDgtMS40MmwzLTFhLjc1Ljc1IDAgMCAxIC45NS40N2wxIDNhLjc1Ljc1IDAgMSAxLTEuNDIuNDhsLS40LTEuMjItMS44MyAzLjM5Yy0uNDQuODMuMTYgMS44NCAxLjEgMS44NGgzLjA5WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjeWNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjeWNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMzIgMi45MmExLjUgMS41IDAgMCAwLTIuNjQgMEw2LjgzIDYuMzdhLjUuNSAwIDEgMS0uODgtLjQ3TDcuOCAyLjQ1YTIuNSAyLjUgMCAwIDEgNC40IDBsMi4wMSAzLjc0LjMtMS43N2EuNS41IDAgMCAxIC45OC4xNmwtLjUgM2EuNS41IDAgMCAxLS42NS40bC0zLTFhLjUuNSAwIDAgMSAuMzItLjk1bDEuNjIuNTQtMS45Ni0zLjY1Wm00LjAzIDYuNGEuNS41IDAgMCAwLS4yMi43bDIuMDMgMy43N2MuNTQgMS0uMTkgMi4yMS0xLjMyIDIuMjFIMTEuN2wxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMS43MSAxN2g0LjEzYTIuNSAyLjUgMCAwIDAgMi4yLTMuNjhsLTIuMDMtMy43OGEuNS41IDAgMCAwLS42Ni0uMjFaTTQuMTYgMTZINy41YS41LjUgMCAwIDEgMCAxSDQuMTZhMi41IDIuNSAwIDAgMS0yLjItMy42OGwyLjE1LTQtMS45NS42NWEuNS41IDAgMSAxLS4zMi0uOTRsMy0xYS41LjUgMCAwIDEgLjYzLjMxbDEgM2EuNS41IDAgMCAxLS45NC4zMmwtLjYtMS43Ny0yLjA5IDMuOUExLjUgMS41IDAgMCAwIDQuMTYgMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW1peEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW1peEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDJhLjc1Ljc1IDAgMCAwIDAgMS41SDEwYTYuNTIgNi41MiAwIDAgMSA2LjUgNi41IDYuNSA2LjUgMCAwIDEtMy4wMyA1LjVoMi4zNEE4IDggMCAwIDAgMTAgMkgyLjc1Wm01LjYgMTUuODNBOCA4IDAgMCAxIDQuMTkgNC41aDIuMzRhNi41IDYuNSAwIDAgMCAzLjQ3IDEyaDcuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDEwYy0uNTcgMC0xLjEyLS4wNi0xLjY1LS4xN1pNMTAgN2MuNDEgMCAuNzUuMzQuNzUuNzV2MS41aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjVoLTEuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMS41di0xLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbWl4QWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW1peEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAyLjVjMC0uMjguMjItLjUuNS0uNUgxMGE3Ljk4IDcuOTggMCAwIDEgNS4zIDE0aC0xLjdBNyA3IDAgMCAwIDEwIDNIMi41YS41LjUgMCAwIDEtLjUtLjVaTTEwIDE4QTggOCAwIDAgMSA0LjcgNGgxLjdBNyA3IDAgMCAwIDEwIDE3aDcuNWEuNS41IDAgMCAxIDAgMUgxMFptLjUtMTAuNWEuNS41IDAgMCAwLTEgMHYyaC0yYS41LjUgMCAxIDAgMCAxaDJ2MmEuNS41IDAgMCAwIDEgMHYtMmgyYS41LjUgMCAwIDAgMC0xaC0ydi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUmVtb3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbW90ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi45NyAxNS4wM2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2TDEyLjU2IDguNWw1LjQ3LTUuNDdhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNiA2Yy0uMy4zLS4zLjc3IDAgMS4wNmw2IDZaTTMuMDMgNC45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDUuNDcgNS40Ny01LjQ3IDUuNDdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmw2LTZjLjMtLjMuMy0uNzcgMC0xLjA2bC02LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW1vdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbW90ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMTUgMTQuODVhLjUuNSAwIDAgMCAuNy0uN0wxMi4yMSA4LjVsNS42NC01LjY1YS41LjUgMCAwIDAtLjctLjdsLTYgNmEuNS41IDAgMCAwIDAgLjdsNiA2Wm0tMTQuMy05LjdhLjUuNSAwIDEgMC0uNy43bDUuNjQgNS42NS01LjY0IDUuNjVhLjUuNSAwIDAgMCAuNy43bDYtNmEuNS41IDAgMCAwIDAtLjdsLTYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbmFtZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW5hbWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDJhLjUuNSAwIDAgMCAwIDFoMXYxNGgtMWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0xVjNoMWEuNS41IDAgMCAwIDAtMWgtM1ptLTQgMmg0djEyaC00QTIuNSAyLjUgMCAwIDEgMiAxMy41di03QTIuNSAyLjUgMCAwIDEgNC41IDRabTExIDEyaC00VjRoNEEyLjUgMi41IDAgMCAxIDE4IDYuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbmFtZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVuYW1lUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjUgMmEuNS41IDAgMCAwIDAgMWgxdjE0aC0xYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTFWM2gxYS41LjUgMCAwIDAgMC0xaC0zWm0tNCAyaDR2MWgtNEMzLjY3IDUgMyA1LjY3IDMgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoNHYxaC00QTIuNSAyLjUgMCAwIDEgMiAxMy41di03QTIuNSAyLjUgMCAwIDEgNC41IDRabTExIDExaC00djFoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDRoLTR2MWg0Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVvcmRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW9yZGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNy43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVptMCAzYS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVvcmRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVvcmRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDhhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm0wIDNhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVwbGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjI1IDZhNyA3IDAgMSAxLTEuMjQgMy41N0EuNTMuNTMgMCAwIDAgMi41IDlhLjQ3LjQ3IDAgMCAwLS40OC40NEwyIDEwYTggOCAwIDEgMCAxLjUtNC42NlYzLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDQuMjVabTUuMjQuODhBMSAxIDAgMCAwIDggNy43NXY0LjVhMSAxIDAgMCAwIDEuNS44N2wzLjk5LTIuMjVhMSAxIDAgMCAwIDAtMS43NGwtNC0yLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVwbGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXBsYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuMjUgNmE3IDcgMCAxIDEtMS4yNCAzLjU3QS41My41MyAwIDAgMCAyLjUgOWEuNDcuNDcgMCAwIDAtLjQ4LjQ0TDIgMTBhOCA4IDAgMSAwIDEuNS00LjY2VjMuNWEuNS41IDAgMCAwLTEgMHYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFINC4yNVpNOCA3Ljc1YTEgMSAwIDAgMSAxLjUtLjg3bDMuOTkgMi4yNWExIDEgMCAwIDEgMCAxLjc0bC00IDIuMjVBMSAxIDAgMCAxIDggMTIuMjV2LTQuNVpNMTMgMTAgOSA3Ljc1djQuNUwxMyAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDNINmEzIDMgMCAwIDAtMyAzdi41YS41LjUgMCAwIDAgMSAwVjZjMC0xLjEuOS0yIDItMmgyLjVhLjUuNSAwIDAgMCAwLTFaTTMgMTRhMyAzIDAgMCAwIDMgM2gzYTMgMyAwIDAgMCAzLTN2LTNhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2M1ptMTAuNSAzYS41LjUgMCAwIDEgMC0xaC41YTIgMiAwIDAgMCAyLTJ2LTIuNWEuNS41IDAgMCAxIDEgMFYxNGEzIDMgMCAwIDEtMyAzaC0uNVpNMTcgOC41YS41LjUgMCAwIDEtMSAwVjZhMiAyIDAgMCAwLTItMmgtMi41YS41LjUgMCAwIDEgMC0xSDE0YTMgMyAwIDAgMSAzIDN2Mi41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAzSDZhMyAzIDAgMCAwLTMgM3YuNWEuNS41IDAgMCAwIDEgMFY2YzAtMS4xLjktMiAyLTJoMi41YS41LjUgMCAwIDAgMC0xWk01LjggMTUuOTlBMiAyIDAgMCAxIDQgMTR2LTNjMC0xLjEuOS0yIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDZsLS4yLS4wMVpNMyAxNGEzIDMgMCAwIDAgMyAzaDNhMyAzIDAgMCAwIDMtM3YtM2EzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLTMgM3YzWm0xMC41IDNhLjUuNSAwIDAgMSAwLTFoLjVhMiAyIDAgMCAwIDItMnYtMi41YS41LjUgMCAwIDEgMSAwVjE0YTMgMyAwIDAgMS0zIDNoLS41Wk0xNyA4LjVhLjUuNSAwIDAgMS0xIDBWNmEyIDIgMCAwIDAtMi0yaC0yLjVhLjUuNSAwIDAgMSAwLTFIMTRhMyAzIDAgMCAxIDMgM3YyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVJbWFnZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVJbWFnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjI1IDJBMy4yNSAzLjI1IDAgMCAwIDIgNS4yNXYzYS43NS43NSAwIDAgMCAxLjUgMHYtM2MwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzYS43NS43NSAwIDAgMCAwLTEuNWgtM1ptNi41IDBhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2M2EuNzUuNzUgMCAwIDAgMS41IDB2LTNDMTggMy40NSAxNi41NCAyIDE0Ljc1IDJoLTNaTTE4IDExLjc1YS43NS43NSAwIDAgMC0xLjUgMHYzYzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtM2EuNzUuNzUgMCAwIDAgMCAxLjVoM2MxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0zWk0xIDEyLjVBMi41IDIuNSAwIDAgMSAzLjUgMTBoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDEuNCAxNy44OEMxLjE1IDE3LjQ4IDEgMTcgMSAxNi41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDIuMTIgMTguNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZUltYWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVJbWFnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyYTMgMyAwIDAgMC0zIDN2My41YS41LjUgMCAwIDAgMSAwVjVjMC0xLjEuOS0yIDItMmgzLjVhLjUuNSAwIDAgMCAwLTFINVptNi41IDBhLjUuNSAwIDAgMCAwIDFIMTVhMiAyIDAgMCAxIDIgMnYzLjVhLjUuNSAwIDAgMCAxIDBWNWEzIDMgMCAwIDAtMy0zaC0zLjVabTYuNSA5LjVhLjUuNSAwIDAgMC0xIDBWMTVhMiAyIDAgMCAxLTIgMmgtMy41YS41LjUgMCAwIDAgMCAxSDE1YTMgMyAwIDAgMCAzLTN2LTMuNVptLTE3IDFBMi41IDIuNSAwIDAgMSAzLjUgMTBoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDEuNCAxNy44OEMxLjE1IDE3LjQ4IDEgMTcgMSAxNi41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDIuMTIgMTguNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZUxhcmdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZUxhcmdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2MWEuNS41IDAgMCAxLTEgMHYtMUEyLjUgMi41IDAgMCAxIDUuNSAzaDFhLjUuNSAwIDAgMSAwIDFoLTFabTEgMUM1LjY3IDUgNSA1LjY3IDUgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03Wm04LTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWEuNS41IDAgMCAwIDEgMHYtMUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtMWEuNS41IDAgMCAwIDAgMWgxWm0wIDEyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWEuNS41IDAgMCAxIDEgMHYxYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMWEuNS41IDAgMCAxIDAtMWgxWm0tOSAwQTEuNSAxLjUgMCAwIDEgNCAxNC41di0xLjI1YS41LjUgMCAwIDAtMSAwdjEuMjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoMS4yNWEuNS41IDAgMCAwIDAtMUg1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVMYXJnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplTGFyZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2MWEuNS41IDAgMCAxLTEgMHYtMUEyLjUgMi41IDAgMCAxIDUuNSAzaDFhLjUuNSAwIDAgMSAwIDFoLTFaTTE2IDUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTFhLjUuNSAwIDAgMSAwLTFoMUEyLjUgMi41IDAgMCAxIDE3IDUuNXYxYS41LjUgMCAwIDEtMSAwdi0xWm0wIDljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xYS41LjUgMCAwIDAgMCAxaDFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDAtMSAwdjFabS0xMiAwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuMjVhLjUuNSAwIDAgMSAwIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di0xLjI1YS41LjUgMCAwIDEgMSAwdjEuMjVaTTYuNSA1QzUuNjcgNSA1IDUuNjcgNSA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTdaTTYgNi41YzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2N2EuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVNtYWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVNtYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2MWEuNS41IDAgMCAxLTEgMHYtMUEyLjUgMi41IDAgMCAxIDUuNSAzaDFhLjUuNSAwIDAgMSAwIDFoLTFabTMgM0M3LjY3IDcgNyA3LjY3IDcgOC41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWm02LTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWEuNS41IDAgMCAwIDEgMHYtMUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtMWEuNS41IDAgMCAwIDAgMWgxWm0wIDEyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWEuNS41IDAgMCAxIDEgMHYxYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMWEuNS41IDAgMCAxIDAtMWgxWm0tOSAwQTEuNSAxLjUgMCAwIDEgNCAxNC41di0xLjI1YS41LjUgMCAwIDAtMSAwdjEuMjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoMS4yNWEuNS41IDAgMCAwIDAtMUg1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVTbWFsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplU21hbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2MWEuNS41IDAgMCAxLTEgMHYtMUEyLjUgMi41IDAgMCAxIDUuNSAzaDFhLjUuNSAwIDAgMSAwIDFoLTFaTTE2IDUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTFhLjUuNSAwIDAgMSAwLTFoMUEyLjUgMi41IDAgMCAxIDE3IDUuNXYxYS41LjUgMCAwIDEtMSAwdi0xWm0wIDljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xYS41LjUgMCAwIDAgMCAxaDFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDAtMSAwdjFabS0xMiAwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuMjVhLjUuNSAwIDAgMSAwIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di0xLjI1YS41LjUgMCAwIDEgMSAwdjEuMjVaTTguNSA3QzcuNjcgNyA3IDcuNjcgNyA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTNaTTggOC41YzAtLjI4LjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVRhYmxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVRhYmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjIuMzVjLjI5LS4zMi42Mi0uNiAxLS44MVY1YzAtMS4xLjktMiAyLTJoMy41YS41LjUgMCAwIDAgMC0xSDVabTEwIDE2aC0yLjM1Yy4zMi0uMjkuNi0uNjIuODEtMUgxNWEyIDIgMCAwIDAgMi0ydi0zLjVhLjUuNSAwIDAgMSAxIDBWMTVhMyAzIDAgMCAxLTMgM1pNMTEuNSAyYS41LjUgMCAwIDAgMCAxSDE1YTIgMiAwIDAgMSAyIDJ2My41YS41LjUgMCAwIDAgMSAwVjVhMyAzIDAgMCAwLTMtM2gtMy41Wk01IDdhMyAzIDAgMCAwLTMgM2gzVjdabTAgNHYzSDJ2LTNoM1ptMCA0SDJhMyAzIDAgMCAwIDMgM3YtM1ptMSAwaDN2M0g2di0zWm0wLTFoM3YtM0g2djNabTQgMWgzYTMgMyAwIDAgMS0zIDN2LTNabTAtNHYzaDN2LTNoLTNabTAtMVY3YTMgMyAwIDAgMSAzIDNoLTNaTTYgN2gzdjNINlY3WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplVGFibGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVRhYmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3YyLjM1Yy4yOS0uMzIuNjItLjYgMS0uODFWNWMwLTEuMS45LTIgMi0yaDMuNWEuNS41IDAgMCAwIDAtMUg1Wm0xMCAxNmgtMi4zNWMuMzItLjI5LjYtLjYyLjgxLTFIMTVhMiAyIDAgMCAwIDItMnYtMy41YS41LjUgMCAwIDEgMSAwVjE1YTMgMyAwIDAgMS0zIDNaTTExLjUgMmEuNS41IDAgMCAwIDAgMUgxNWEyIDIgMCAwIDEgMiAydjMuNWEuNS41IDAgMCAwIDEgMFY1YTMgMyAwIDAgMC0zLTNoLTMuNVpNNSA3YTMgMyAwIDAgMC0zIDN2NWEzIDMgMCAwIDAgMyAzaDVhMyAzIDAgMCAwIDMtM3YtNWEzIDMgMCAwIDAtMy0zSDVabS0yIDNjMC0xLjEuOS0yIDItMnYySDNabTMgMFY4aDN2Mkg2Wm00IDBWOGEyIDIgMCAwIDEgMiAyaC0yWm0tNCAxaDN2M0g2di0zWm00IDBoMnYzaC0ydi0zWm0tNCA0aDN2Mkg2di0yWm02IDBhMiAyIDAgMCAxLTIgMnYtMmgyWm0tOS00aDJ2M0gzdi0zWm0wIDRoMnYyYTIgMiAwIDAgMS0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVWaWRlb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVWaWRlb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjI1IDJBMy4yNSAzLjI1IDAgMCAwIDIgNS4yNXYzYS43NS43NSAwIDAgMCAxLjUgMHYtM2MwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzYS43NS43NSAwIDAgMCAwLTEuNWgtM1ptNi41IDBhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2M2EuNzUuNzUgMCAwIDAgMS41IDB2LTNDMTggMy40NSAxNi41NCAyIDE0Ljc1IDJoLTNaTTE4IDExLjc1YS43NS43NSAwIDAgMC0xLjUgMHYzYzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtM2EuNzUuNzUgMCAwIDAgMCAxLjVoM2MxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0zWk0zLjUgMTBoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NEEyLjUgMi41IDAgMCAxIDcuNSAxOWgtNEEyLjUgMi41IDAgMCAxIDEgMTYuNXYtNEEyLjUgMi41IDAgMCAxIDMuNSAxMFptLjcyIDIuNTVhLjUuNSAwIDAgMC0uNzIuNDV2M2EuNS41IDAgMCAwIC43Mi40NWwzLTEuNWEuNS41IDAgMCAwIDAtLjlsLTMtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplVmlkZW9SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVZpZGVvUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3YzLjVhLjUuNSAwIDAgMCAxIDBWNWMwLTEuMS45LTIgMi0yaDMuNWEuNS41IDAgMCAwIDAtMUg1Wm02LjUgMGEuNS41IDAgMCAwIDAgMUgxNWEyIDIgMCAwIDEgMiAydjMuNWEuNS41IDAgMCAwIDEgMFY1YTMgMyAwIDAgMC0zLTNoLTMuNVptNi41IDkuNWEuNS41IDAgMCAwLTEgMFYxNWEyIDIgMCAwIDEtMiAyaC0zLjVhLjUuNSAwIDAgMCAwIDFIMTVhMyAzIDAgMCAwIDMtM3YtMy41Wk0zLjUgMTBBMi41IDIuNSAwIDAgMCAxIDEyLjV2NEEyLjUgMi41IDAgMCAwIDMuNSAxOWg0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNEEyLjUgMi41IDAgMCAwIDcuNSAxMGgtNFptLjcyIDIuNTUgMyAxLjVhLjUuNSAwIDAgMSAwIC45bC0zIDEuNUEuNS41IDAgMCAxIDMuNSAxNnYtM2EuNS41IDAgMCAxIC43Mi0uNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmV3YXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjUzIDNjLjgyIDAgMS41LjY3IDEuNSAxLjV2MS40YzAgLjkzLS41MyAxLjgtMS4zNyAyLjIybC00LjE5IDIuMTRhMy41NCAzLjU0IDAgMSAxLTIuOTIgMEw0LjM2IDguMTJhMi41IDIuNSAwIDAgMS0xLjM1LTIuMDRMMyA1LjlWNC41QzMgMy42NyAzLjY3IDMgNC41IDNoMTEuMDNaTTEwIDEwLjk1YTIuNTQgMi41NCAwIDEgMCAwIDUuMDcgMi41NCAyLjU0IDAgMCAwIDAtNS4wN1pNMTIuNjEgNGgtNS4ydjQuNTVsMi4zOCAxLjIyYS41LjUgMCAwIDAgLjQ1IDBsMi4zOC0xLjIyVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNTMgM2MuODMgMCAxLjUuNjcgMS41IDEuNXYxLjRjMCAuOTQtLjUzIDEuOC0xLjM2IDIuMjJsLTQuMiAyLjE0YTMuNTQgMy41NCAwIDEgMS0yLjkyIDBMNC4zNiA4LjEyYTIuNSAyLjUgMCAwIDEtMS4zNS0yLjA0VjQuNUMzIDMuNjcgMy42NiAzIDQuNSAzaDExLjAyWk0xMCAxMC45NWEyLjU0IDIuNTQgMCAxIDAgMCA1LjA4IDIuNTQgMi41NCAwIDAgMCAwLTUuMDhaTTEyLjU1IDRINy40N1Y4LjZMOS44IDkuNzdhLjUuNSAwIDAgMCAuNDUgMGwyLjMxLTEuMThWNFpNNi40NyA0SDQuNWEuNS41IDAgMCAwLS41LjV2MS41NGMuMDYuNS4zNi45Ni44MiAxLjJsMS42NS44NFY0Wm05LjA2IDBoLTEuOTh2NC4wOGwxLjY2LS44NWMuNS0uMjUuODItLjc3LjgyLTEuMzNWNC41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdpbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmV3aW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDUuNDlhMSAxIDAgMCAwLTEuNi0uOGwtNS44NyA0LjNjLS42OC41LS42OCAxLjUyIDAgMi4wMmw1Ljg4IDQuMzFhMSAxIDAgMCAwIDEuNTktLjh2LTMuMTdsNS40IDMuOTdhMSAxIDAgMCAwIDEuNi0uOFY1LjQ4YTEgMSAwIDAgMC0xLjYtLjhMMTAgOC42NFY1LjQ5Wm0tMS42LS44LjMuMzlaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdpbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2luZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNS40OWExIDEgMCAwIDAtMS42LS44bC01Ljg3IDQuM2MtLjY4LjUtLjY4IDEuNTIgMCAyLjAybDUuODggNC4zMWExIDEgMCAwIDAgMS41OS0uOHYtMy4xN2w1LjQgMy45N2ExIDEgMCAwIDAgMS42LS44VjUuNDhhMSAxIDAgMCAwLTEuNi0uOEwxMCA4LjY0VjUuNDlabS02Ljg4IDQuM0w5IDUuNXY5LjAybC01Ljg4LTQuM2EuMjUuMjUgMCAwIDEgMC0uNDFabTcgMEwxNiA1LjV2OS4wMmwtNS44OC00LjNhLjI1LjI1IDAgMCAxIDAtLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1c0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaG9tYnVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODkgNC4zQTIgMiAwIDAgMSA2Ljc2IDNIMTdhMiAyIDAgMCAxIDEuODcgMi43bC0zLjc2IDEwYTIgMiAwIDAgMS0xLjg3IDEuM0gzYTIgMiAwIDAgMS0xLjg3LTIuN2wzLjc2LTEwWlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1c1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmhvbWJ1c1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC44OSA0LjNBMiAyIDAgMCAxIDYuNzYgM0gxN2EyIDIgMCAwIDEgMS44NyAyLjdsLTMuNzYgMTBhMiAyIDAgMCAxLTEuODcgMS4zSDNhMiAyIDAgMCAxLTEuODctMi43bDMuNzYtMTBaTTYuNzYgNGExIDEgMCAwIDAtLjkzLjY1bC0zLjc2IDEwQTEgMSAwIDAgMCAzIDE2aDEwLjI0YTEgMSAwIDAgMCAuOTMtLjY1bDMuNzYtMTBBMSAxIDAgMCAwIDE3IDRINi43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYgOEE2IDYgMCAxIDEgNCA4YTYgNiAwIDAgMSAxMiAwWm0tNiA3YzEuNDkgMCAyLjg3LS40NiA0LTEuMjV2My43NWEuNS41IDAgMCAxLS44LjRMMTAgMTZsLTMuMiAxLjlhLjUuNSAwIDAgMS0uOC0uNHYtMy43NUE2Ljk3IDYuOTcgMCAwIDAgMTAgMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgOGMwIDEuNzgtLjc3IDMuMzctMiA0LjQ3djUuMDNhLjUuNSAwIDAgMS0uNzUuNDNMMTAgMTYuMDhsLTMuMjUgMS44NUEuNS41IDAgMCAxIDYgMTcuNXYtNS4wM0E1Ljk4IDUuOTggMCAwIDEgMTAgMmE2IDYgMCAwIDEgNiA2Wm0tNiA2Yy0xLjEgMC0yLjEyLS4zLTMtLjh2My40NGwyLjc1LTEuNTdhLjUuNSAwIDAgMSAuNSAwTDEzIDE2LjY0VjEzLjJjLS44OC41LTEuOS44LTMgLjhabTAtMWE1IDUgMCAxIDAgMC0xMCA1IDUgMCAwIDAgMCAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbkFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25BZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0tNiAyYzAtMS4yOC40NC0yLjQ1IDEuMTctMy4zOUE2IDYgMCAxIDAgMTQuMiAxMSA1LjUgNS41IDAgMCAxIDkgNS41Wk05IDE1YzEuNDkgMCAyLjg3LS40NiA0LTEuMjV2My43NWEuNS41IDAgMCAxLS44LjRMOSAxNmwtMy4yIDEuOWEuNS41IDAgMCAxLS44LS40di0zLjc1QTYuOTcgNi45NyAwIDAgMCA5IDE1WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25BZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVpNOSAyYy40IDAgLjc5LjA0IDEuMTcuMTEtLjIzLjI5LS40Mi42LS41OS45MmE1IDUgMCAxIDAgMy41NCA3LjhjLjM1LjA5LjcxLjE0IDEuMDguMTZhNi4wMyA2LjAzIDAgMCAxLTEuMiAxLjQ4djUuMDNhLjUuNSAwIDAgMS0uNzUuNDNMOSAxNi4wOGwtMy4yNSAxLjg1QS41LjUgMCAwIDEgNSAxNy41di01LjAzQTUuOTggNS45OCAwIDAgMSA5IDJabTAgMTJjLTEuMSAwLTIuMTItLjMtMy0uOHYzLjQ0bDIuNzUtMS41N2EuNS41IDAgMCAxIC41IDBMMTIgMTYuNjRWMTMuMmMtLjg4LjUtMS45LjgtMyAuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25PZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC42MiA1LjMzYTYgNiAwIDAgMCA4LjA0IDguMDRsLjc1Ljc1QTYuOTcgNi45NyAwIDAgMSA2IDEzLjc1djMuNzVhLjUuNSAwIDAgMCAuOC40TDEwIDE2bDMuMiAxLjlhLjUuNSAwIDAgMCAuOC0uNHYtMi44bDMuMTUgMy4xNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdsMi40NyAyLjQ4Wm0xLjItMS42MyA4LjQ4IDguNDhBNiA2IDAgMCAwIDUuODIgMy43WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25PZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNjIgNS4zMyAyLjE1IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTQgMTQuNzF2Mi43OWEuNS41IDAgMCAxLS43NS40M0wxMCAxNi4wOGwtMy4yNSAxLjg1QS41LjUgMCAwIDEgNiAxNy41di01LjAzYTUuOTggNS45OCAwIDAgMS0xLjM4LTcuMTRabTguMDUgOC4wNUE1Ljk4IDUuOTggMCAwIDEgNyAxMy4ydjMuNDRsMi43NS0xLjU3YS41LjUgMCAwIDEgLjUgMEwxMyAxNi42NFYxMy43bC0uMzMtLjMzWm0tLjc2LS43Nkw1LjM4IDYuMUE0Ljk4IDQuOTggMCAwIDAgMTAgMTNjLjY4IDAgMS4zMi0uMTMgMS45MS0uMzhaTTE1IDhjMCAxLjM1LS41MyAyLjU3LTEuNCAzLjQ3bC43LjcxQTYgNiAwIDAgMCA1LjgyIDMuN2wuNy43QTQuOTggNC45OCAwIDAgMSAxNSA4WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uU3RhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25TdGFyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDhBNiA2IDAgMSAxIDQgOGE2IDYgMCAwIDEgMTIgMFpNOS44NSA1LjFsLS43MiAxLjU1YS4xOC4xOCAwIDAgMS0uMTQuMWwtMS43LjJjLS4xNC4wMi0uMi4yLS4xLjNsMS4yNiAxLjE3Yy4wNS4wNC4wNy4xLjA1LjE2bC0uMzMgMS42OGMtLjAzLjE1LjEzLjI2LjI2LjE5bDEuNDktLjg0YS4xOC4xOCAwIDAgMSAuMTcgMGwxLjUuODRjLjEyLjA3LjI4LS4wNC4yNS0uMTlsLS4zMy0xLjY4YS4xNy4xNyAwIDAgMSAuMDUtLjE2bDEuMjYtMS4xNmEuMTguMTggMCAwIDAtLjEtLjNsLTEuNy0uMmEuMTcuMTcgMCAwIDEtLjE0LS4xbC0uNzItMS41NmEuMTcuMTcgMCAwIDAtLjMxIDBaTTEwIDE1YzEuNDkgMCAyLjg3LS40NiA0LTEuMjV2My43NWEuNS41IDAgMCAxLS44LjRMMTAgMTZsLTMuMiAxLjlhLjUuNSAwIDAgMS0uOC0uNHYtMy43NUE2Ljk3IDYuOTcgMCAwIDAgMTAgMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib25TdGFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25TdGFyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4xNiA1LjFhLjE4LjE4IDAgMCAwLS4zMSAwbC0uNzIgMS41NWEuMTguMTggMCAwIDEtLjE0LjFsLTEuNy4yYy0uMTUuMDItLjIuMi0uMS4zbDEuMjYgMS4xN2MuMDUuMDQuMDcuMS4wNS4xNmwtLjMzIDEuNjhjLS4wMy4xNS4xMy4yNi4yNi4xOWwxLjQ5LS44NGEuMTcuMTcgMCAwIDEgLjE3IDBsMS41Ljg0Yy4xMi4wNy4yOC0uMDQuMjUtLjE5bC0uMzMtMS42OGEuMTguMTggMCAwIDEgLjA1LS4xNmwxLjI2LTEuMTZhLjE3LjE3IDAgMCAwLS4xLS4zbC0xLjctLjJhLjE4LjE4IDAgMCAxLS4xNC0uMWwtLjcyLTEuNTZaTTE2IDhjMCAxLjc4LS43NyAzLjM3LTIgNC40N3Y1LjAzYS41LjUgMCAwIDEtLjc1LjQzTDEwIDE2LjA4bC0zLjI1IDEuODVBLjUuNSAwIDAgMSA2IDE3LjV2LTUuMDNBNS45OCA1Ljk4IDAgMCAxIDEwIDJhNiA2IDAgMCAxIDYgNlptLTYgNmMtMS4xIDAtMi4xMi0uMy0zLS44djMuNDRsMi43NS0xLjU3YS41LjUgMCAwIDEgLjUgMEwxMyAxNi42NFYxMy4yYy0uODguNS0xLjkuOC0zIC44Wm0wLTFhNSA1IDAgMSAwIDAtMTAgNSA1IDAgMCAwIDAgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2FkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAyLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxNC41YS43NS43NSAwIDAgMCAxLjUgMFYyLjc1Wm0xMS41IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVabS01Ljc1IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNVptLTEuNSA4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNVptMCAzLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvYWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVptMTEgMGEuNS41IDAgMCAwLTEgMHYxNWEuNS41IDAgMCAwIDEgMHYtMTVabS01LjUgMGEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWm0tMSA5YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNabTAgM2EuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtMSAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZENvbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9hZENvbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC40MiAyLjc2QTEgMSAwIDAgMSA5LjQgMmgxLjIzYTEgMSAwIDAgMSAuOTYuNzRMMTUuMzggMTdoMi4xMmEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMSAwLTFoMi4xMWwuOC0zaDYuMDlhLjUuNSAwIDAgMCAwLTFINS42OWwuNDUtMS42My4xLS4zN2g0LjI2YS41LjUgMCAwIDAgMC0xSDYuNTJjLjY4LTIuNDggMS4zNS00Ljk2IDEuOS03LjI0WlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZENvbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvYWRDb25lUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjM4IDJhMSAxIDAgMCAwLS45Ni43NEw0LjYyIDE3SDIuNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMi4xMmwtMy44LTE0LjI2YTEgMSAwIDAgMC0uOTYtLjc0SDkuMzhaTTUuNjUgMTdsLjgtM2g1LjA1YS41LjUgMCAwIDAgMC0xSDYuNzJsLjUzLTJoMy4yNWEuNS41IDAgMCAwIDAtMUg3LjUybDEuODYtN2gxLjI0bDMuNzMgMTRoLTguN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJvY2tldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2NrZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNzYgNi40M2EyIDIgMCAxIDEgMi44MiAyLjgyIDIgMiAwIDAgMS0yLjgyLTIuODJabTIuMTEuN2ExIDEgMCAxIDAtMS40IDEuNDEgMSAxIDAgMCAwIDEuNC0xLjRaTTkuNDQgMTMuNmwuNi42YTEuNSAxLjUgMCAwIDAgMS43MS4zbDEuMTIgMS4xMmMuMi4yLjUxLjIuNyAwTDE1IDE0LjJjLjg2LS44Ni45Ni0yLjE3LjMxLTMuMTRsLjg1LS44NWE2LjMgNi4zIDAgMCAwIDEuNTYtNi4zMyAyLjQzIDIuNDMgMCAwIDAtMS42LTEuNkE2LjMgNi4zIDAgMCAwIDkuOCAzLjg2bC0uODUuODVBMi41IDIuNSAwIDAgMCA1LjggNUw0LjM4IDYuNDNhLjUuNSAwIDAgMCAwIC43TDUuNSA4LjI3YTEuNSAxLjUgMCAwIDAgLjMgMS43bC42LjYxLTEuMjEuNzNhLjUuNSAwIDAgMC0uMS43OGwyLjgzIDIuODNhLjUuNSAwIDAgMCAuNzktLjFsLjczLTEuMjFabTcuMzItOS40MmE1LjMgNS4zIDAgMCAxLTEuMyA1LjMzbC00IDRhLjUuNSAwIDAgMS0uNyAwbC0xLjA3LTEuMDctMi4xMi0yLjEyTDYuNSA5LjI0YS41LjUgMCAwIDEgMC0uN2wzLjk5LTRhNS4zIDUuMyAwIDAgMSA1LjMzLTEuM2MuNDQuMTMuOC40OC45My45M1pNNS44IDE0LjkxYS41LjUgMCAwIDAtLjctLjdsLTEuNzcgMS43NmEuNS41IDAgMSAwIC43LjdsMS43Ny0xLjc2Wk00LjQgMTIuNzljLjIuMi4yLjUgMCAuN2wtLjcuNzFhLjUuNSAwIDEgMS0uNzItLjdsLjcxLS43MWMuMi0uMi41MS0uMi43MSAwWm0yLjgzIDMuNTNhLjUuNSAwIDEgMC0uNy0uN2wtLjcyLjdhLjUuNSAwIDEgMCAuNzEuNzFsLjcxLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUm9ja2V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2NrZXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjc2IDYuNDNhMiAyIDAgMSAxIDIuODIgMi44MiAyIDIgMCAwIDEtMi44Mi0yLjgyWm0yLjExLjdhMSAxIDAgMSAwLTEuNCAxLjQyIDEgMSAwIDAgMCAxLjQtMS40MlptLTEuMTIgNy4zN2ExLjUgMS41IDAgMCAxLTEuNy0uM2wtLjYxLS42LS43NCAxLjIyYS41LjUgMCAwIDEtLjc4LjFMNS4xIDEyLjA5YS41LjUgMCAwIDEgLjEtLjc5bDEuMjItLjczLS42MS0uNmExLjUgMS41IDAgMCAxLS4zLTEuNzFMNC4zOCA3LjE0YS41LjUgMCAwIDEgMC0uN2wxLjA2LTEuMDdhMyAzIDAgMCAxIDMuNDItLjU5bC45My0uOTNhNi4zIDYuMyAwIDAgMSA2LjMzLTEuNTZjLjc2LjI0IDEuMzYuODMgMS42IDEuNmE2LjMgNi4zIDAgMCAxLTEuNTYgNi4zMmwtLjk0Ljk0YTMgMyAwIDAgMS0uNTggMy40MWwtMS4wNiAxLjA2YS41LjUgMCAwIDEtLjcxIDBsLTEuMTItMS4xMlptNC4wOC0xMS4yNmE1LjMgNS4zIDAgMCAwLTUuMzMgMS4zMWwtLjgxLjgyLS43LjdoLS4wMUw2Ljg2IDguMmwtLjQuNGEuNS41IDAgMCAwIC4wNS42Nmw0LjI0IDQuMjRjLjE4LjE4LjQ2LjIuNjYuMDVsLjQtLjQgMi4xMi0yLjEyLjctLjcxLjgyLS44MWE1LjMgNS4zIDAgMCAwIDEuMzEtNS4zM2MtLjE0LS40NS0uNDktLjgtLjkzLS45NFptLTMuMzEgMTAuNjIuNy43LjctLjdhMiAyIDAgMCAwIC41My0xLjkzbC0xLjkzIDEuOTNabS00LjQ0LTguM2EyIDIgMCAwIDAtMS45My41MmwtLjcuNy43LjcxIDEuOTMtMS45M1ptLjYzIDcuMzFMNy4xNCAxMS4zbC0uODkuNTMgMS45MyAxLjkzLjUzLS44OVptLTIuOSAyLjA0YS41LjUgMCAxIDAtLjcxLS43bC0xLjc3IDEuNzZhLjUuNSAwIDEgMCAuNy43MWwxLjc3LTEuNzdaTTQuMzggMTIuOGMuMi4yLjIuNTEgMCAuN2wtLjcxLjcyYS41LjUgMCAwIDEtLjctLjcxbC43LS43MWMuMi0uMi41MS0uMi43IDBabTIuODMgMy41NGEuNS41IDAgMCAwLS43LS43MWwtLjcyLjdhLjUuNSAwIDEgMCAuNy43MmwuNzItLjcxWlwiXSk7XG5leHBvcnQgY29uc3QgUm90YXRlTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3RhdGVMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjM5IDEyYS41My41MyAwIDAgMS0uNTQtLjUyYzAtLjI5LjI0LS41Mi41NC0uNTJoLjM1YzEuNzcgMCAzLjItMS4wOCAzLjItMi40MiAwLTEuMy0xLjM1LTIuMzYtMy4wNC0yLjQySDcuODJMOS4wNCA3LjNjLjIuMi4yLjUzIDAgLjczYS41NC41NCAwIDAgMS0uNy4wNWwtLjA2LS4wNS0yLjEyLTIuMDhhLjUxLjUxIDAgMCAxIDAtLjczbDIuMTItMi4wOC4wNi0uMDVjLjIxLS4xNS41LS4xMy43LjA1LjIuMi4yLjUzIDAgLjc0TDcuODIgNS4wOGg0LjkyQzE1LjEgNS4wOCAxNyA2LjYzIDE3IDguNTRTMTUuMSAxMiAxMi43NCAxMmgtLjM1Wm0tOS0zYy0uMjEgMC0uMzkuMTctLjM5LjM4djYuODdjMCAuNDEuMzYuNzUuOC43NWgxMi44YS40LjQgMCAwIDAgLjM1LS4xOS4zNy4zNyAwIDAgMC0uMTUtLjUxTDMuNiA5LjA1QS40MS40MSAwIDAgMCAzLjQgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdGF0ZUxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvdGF0ZUxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjM5IDEyYS41My41MyAwIDAgMS0uNTQtLjUyYzAtLjI5LjI0LS41Mi41NC0uNTJoLjM1YzEuNzcgMCAzLjItMS4wOCAzLjItMi40MiAwLTEuMy0xLjM1LTIuMzYtMy4wNC0yLjQySDcuODJMOS4wNCA3LjNjLjIuMi4yLjUzIDAgLjczYS41NC41NCAwIDAgMS0uNy4wNWwtLjA2LS4wNS0yLjEyLTIuMDhhLjUxLjUxIDAgMCAxIDAtLjczbDIuMTItMi4wOC4wNi0uMDVjLjIxLS4xNS41LS4xMy43LjA1LjIuMi4yLjUzIDAgLjc0TDcuODIgNS4wOGg0LjkyQzE1LjEgNS4wOCAxNyA2LjYzIDE3IDguNTRTMTUuMSAxMiAxMi43NCAxMmgtLjM1Wk00IDEwLjQxVjE2aDEwLjE4TDQgMTAuNDFaTTMuOCAxN2EuNzcuNzcgMCAwIDEtLjgtLjc1VjkuMzhjMC0uMjEuMTgtLjM4LjQtLjM4LjA3IDAgLjE0LjAyLjIuMDVsMTMuMiA3LjI1Yy4yLjEuMjYuMzMuMTUuNTFhLjQuNCAwIDAgMS0uMzUuMTlIMy44WlwiXSk7XG5leHBvcnQgY29uc3QgUm90YXRlUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm90YXRlUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy42MSAxMmMuMyAwIC41NC0uMjMuNTQtLjUyYS41My41MyAwIDAgMC0uNTQtLjUyaC0uMzVjLTEuNzcgMC0zLjItMS4wOC0zLjItMi40MiAwLTEuMyAxLjM1LTIuMzYgMy4wNC0yLjQyaDUuMDhMMTAuOTYgNy4zYy0uMi4yLS4yLjUzIDAgLjczLjIuMTguNDkuMi43LjA1bC4wNi0uMDUgMi4xMi0yLjA4Yy4yMS0uMi4yMS0uNTMgMC0uNzNsLTIuMTItMi4wOC0uMDYtLjA1YS41NC41NCAwIDAgMC0uNy4wNWMtLjIuMi0uMi41MyAwIC43NGwxLjIyIDEuMTlINy4yNkM0LjkgNS4wOCAzIDYuNjMgMyA4LjU0UzQuOSAxMiA3LjI2IDEyaC4zNVptOS0zYy4yMSAwIC4zOS4xNy4zOS4zOHY2Ljg3YzAgLjQxLS4zNi43NS0uOC43NUgzLjRhLjQuNCAwIDAgMS0uMzUtLjE5LjM3LjM3IDAgMCAxIC4xNS0uNTFsMTMuMi03LjI1YS40MS40MSAwIDAgMSAuMi0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSb3RhdGVSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm90YXRlUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNjEgMTJjLjMgMCAuNTQtLjIzLjU0LS41MmEuNTMuNTMgMCAwIDAtLjU0LS41MmgtLjM1Yy0xLjc3IDAtMy4yLTEuMDgtMy4yLTIuNDIgMC0xLjMgMS4zNS0yLjM2IDMuMDQtMi40Mmg1LjA4TDEwLjk2IDcuM2MtLjIuMi0uMi41MyAwIC43My4yLjE4LjQ5LjIuNy4wNWwuMDYtLjA1IDIuMTItMi4wOGMuMjEtLjIuMjEtLjUzIDAtLjczbC0yLjEyLTIuMDgtLjA2LS4wNWEuNTQuNTQgMCAwIDAtLjcuMDVjLS4yLjItLjIuNTMgMCAuNzRsMS4yMiAxLjE5SDcuMjZDNC45IDUuMDggMyA2LjYzIDMgOC41NFM0LjkgMTIgNy4yNiAxMmguMzVaTTE2IDEwLjQxVjE2SDUuODJMMTYgMTAuNDFabS4yIDYuNTljLjQ0IDAgLjgtLjM0LjgtLjc1VjkuMzhjMC0uMjEtLjE4LS4zOC0uNC0uMzhhLjQxLjQxIDAgMCAwLS4yLjA1TDMuMiAxNi4zYS4zNy4zNyAwIDAgMC0uMTUuNTFjLjA3LjEyLjIuMTkuMzUuMTloMTIuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdXRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3V0ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDkuNWE2LjUgNi41IDAgMCAxIDEzIDAgLjUuNSAwIDAgMCAxIDAgNy41IDcuNSAwIDAgMC0xNSAwIC41LjUgMCAwIDAgMSAwWm02LjUtNGE0IDQgMCAwIDAtNCA0IC41LjUgMCAwIDEtMSAwIDUgNSAwIDAgMSAxMCAwIC41LjUgMCAwIDEtMSAwIDQgNCAwIDAgMC00LTRaTTcuNzUgOS4yNWEyLjI1IDIuMjUgMCAxIDEgMi43NSAyLjJWMTNoNGEyLjUgMi41IDAgMCAxIDAgNWgtOWEyLjUgMi41IDAgMCAxIDAtNWg0di0xLjU2YTIuMjUgMi4yNSAwIDAgMS0xLjc1LTIuMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBSb3V0ZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvdXRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDkuNWE2LjUgNi41IDAgMCAxIDEzIDAgLjUuNSAwIDAgMCAxIDAgNy41IDcuNSAwIDAgMC0xNSAwIC41LjUgMCAwIDAgMSAwWm02LjUtNGE0IDQgMCAwIDAtNCA0IC41LjUgMCAwIDEtMSAwIDUgNSAwIDAgMSAxMCAwIC41LjUgMCAwIDEtMSAwIDQgNCAwIDAgMC00LTRaTTcuNzUgOS4yNWEyLjI1IDIuMjUgMCAxIDEgMi43NSAyLjJWMTNoNGEyLjUgMi41IDAgMCAxIDAgNWgtOWEyLjUgMi41IDAgMCAxIDAtNWg0di0xLjU2YTIuMjUgMi4yNSAwIDAgMS0xLjc1LTIuMTlaTTEwIDhhMS4yNSAxLjI1IDAgMSAwIDAgMi41QTEuMjUgMS4yNSAwIDAgMCAxMCA4Wm0tNC41IDZhMS41IDEuNSAwIDAgMCAwIDNoOWExLjUgMS41IDAgMCAwIDAtM2gtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvd1RyaXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3dUcmlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJDMy42NyAyIDMgMi42NyAzIDMuNXYxQzMgNS4zMyAzLjY3IDYgNC41IDZoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFabTAgNkMzLjY3IDggMyA4LjY3IDMgOS41djFjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFabTAgNmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvd1RyaXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm93VHJpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDMuNUMzIDIuNjcgMy42NyAyIDQuNSAyaDExYy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgNC41di0xWk00LjUgM2EuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTExWk0zIDkuNUMzIDguNjcgMy42NyA4IDQuNSA4aDExYy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgMTAuNXYtMVpNNC41IDlhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoMTFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xMVptMCA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk00IDE1LjVjMC0uMjguMjItLjUuNS0uNWgxMWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjV2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBSc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabS41IDNhNy41IDcuNSAwIDAgMSA3LjUgNy41LjUuNSAwIDAgMS0xIDBBNi41IDYuNSAwIDAgMCA2LjUgN2EuNS41IDAgMCAxIDAtMVpNNiA5LjVjMC0uMjguMjItLjUuNS0uNWE0LjUgNC41IDAgMCAxIDQuNSA0LjUuNS41IDAgMCAxLTEgMEEzLjUgMy41IDAgMCAwIDYuNSAxMGEuNS41IDAgMCAxLS41LS41Wk03IDE0YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2Wm0yLjUgMGEuNS41IDAgMCAwIDAgMSA2LjUgNi41IDAgMCAxIDYuNSA2LjUuNS41IDAgMCAwIDEgMEE3LjUgNy41IDAgMCAwIDYuNSA2Wk02IDkuNWMwLS4yOC4yMi0uNS41LS41YTQuNSA0LjUgMCAwIDEgNC41IDQuNS41LjUgMCAwIDEtMSAwQTMuNSAzLjUgMCAwIDAgNi41IDEwYS41LjUgMCAwIDEtLjUtLjVaTTcgMTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUnVsZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnVsZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTMuOTcgMy4yLjAzLjN2MTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgNiAxNi41di0xM0ExLjUgMS41IDAgMCAxIDcuNSAyaDVjLjcyIDAgMS4zMy41MSAxLjQ3IDEuMlpNNyAxNC41djFoMS41YS41LjUgMCAwIDAgMC0xSDdabTAtMTB2MWgxLjVhLjUuNSAwIDAgMCAwLTFIN1pNNyA3djFoMi41YS41LjUgMCAwIDAgMC0xSDdabTAgMi41djFoMS41YS41LjUgMCAwIDAgMC0xSDdaTTcgMTJ2MWgyLjVhLjUuNSAwIDEgMCAwLTFIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJ1bGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSdWxlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUM2LjY3IDIgNiAyLjY3IDYgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xM1pNNyAxM2gyLjVhLjUuNSAwIDAgMCAwLTFIN3YtMS41aDEuNWEuNS41IDAgMCAwIDAtMUg3VjhoMi41YS41LjUgMCAwIDAgMC0xSDdWNS41aDEuNWEuNS41IDAgMCAwIDAtMUg3di0xYzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjV2MTNhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTFoMS41YS41LjUgMCAwIDAgMC0xSDdWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSdW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnVuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMi40QS41LjUgMCAxIDAgNiAyLjZ2LjA0QTUuNjMgNS42MyAwIDAgMCAyLjcgNS4xNUMyLjEzIDYuMTUgMi4wMSA3LjIgMiA4bC0uNjcuODRhMS41IDEuNSAwIDAgMCAuMzMgMi4xOGw4LjY2IDUuODZBNi41IDYuNSAwIDAgMCAxMy45NiAxOGgyLjc5YTIuMjUgMi4yNSAwIDAgMCAyLjIzLTIuNTdjLS4xNi0xLjEtMS4wOS0xLjg5LTIuMDUtMi4xOWEyLjggMi44IDAgMCAxLTEuNTEtMWwtMy4wMi01LjIuMTgtLjAyYS41LjUgMCAxIDAtLjE3LS45OUE0LjY1IDQuNjUgMCAwIDEgNyAyLjQxWm0tMi4zMyAyIDIuMiAzLjhhMSAxIDAgMCAxLS4zNyAxLjM4bC0uODcuNUwzIDguM3YtLjEzYzAtLjc3LjA4LTEuNy41Ni0yLjU0LjI0LS40My42LS44NSAxLjExLTEuMjNabTIuMTYgNi41IDMuMDUtMS43N2ExIDEgMCAwIDEgMS4zNi4zN2wuNiAxLjA0YTEgMSAwIDAgMS0uMzYgMS4zN2wtMS43Ljk4LTIuOTUtMlpNMTQgMTZoMy45OWMtLjEyLjU3LS42MyAxLTEuMjMgMWgtMi43OWE1LjUgNS41IDAgMCAxLTMuMDgtLjk1TDIuMjIgMTAuMmEuNS41IDAgMCAxLS4xLS43MmwuMjgtLjM2IDkuMDcgNi4xMmMuNzUuNSAxLjYyLjc3IDIuNTIuNzdaTTIuMTEgOS40N2wtLjM5LS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJ1blJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnVuUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDIuNDFhLjUuNSAwIDAgMC0uNTktLjQuNS41IDAgMCAwLS40LjU3di4wNUE1LjYzIDUuNjMgMCAwIDAgMi43IDUuMTVDMi4xMyA2LjE1IDIuMDEgNy4yIDIgOGwtLjY3Ljg0YTEuNSAxLjUgMCAwIDAgLjMzIDIuMThsOC42NiA1Ljg2QTYuNSA2LjUgMCAwIDAgMTMuOTYgMThoMi43OWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNSAwLTEuMjYtMS4wMi0yLjE4LTIuMDctMi41MWEyLjggMi44IDAgMCAxLTEuNTEtMWwtMy4wMi01LjIuMTktLjAyYS41LjUgMCAwIDAgLjQtLjU4LjUuNSAwIDAgMC0uNTgtLjRBNC42NSA0LjY1IDAgMCAxIDcgMi40Wm00LjI3IDQuNjggMy4yOSA1LjY2LjAxLjAzYTMuNzcgMy43NyAwIDAgMCAyLjA2IDEuNDFjLjQ4LjE2Ljg5LjQ1IDEuMTMuODFoLTMuNzdjLS43IDAtMS4zOC0uMi0xLjk2LS42bC0xLjY5LTEuMTQgMS4wMy0uNmMuNi0uMzQuOC0xLjEuNDYtMS43bC0uNzctMS4zM2MtLjM0LS42LTEuMS0uOC0xLjctLjQ2bC0yLjc0IDEuNTgtLjk1LS42NC43LS40MWMuNi0uMzUuODEtMS4xMS40Ni0xLjcxbC0yLjEtMy42M2E2IDYgMCAwIDEgMS41Ny0uNzcgNS42OCA1LjY4IDAgMCAwIDQuOTcgMy41Wm0tMS45OSA2LjY2LjA1LjA5LjA1LS4wMiAyLjEgMS40MWMuNzQuNSAxLjYxLjc3IDIuNTEuNzdoMy45OWMtLjEyLjU3LS42MyAxLTEuMjMgMWgtMi43OWE1LjUgNS41IDAgMCAxLTMuMDgtLjk1TDIuMjIgMTAuMmEuNS41IDAgMCAxLS4xLS43MmwuMjgtLjM2IDQuMTUgMi44LjAxLjAyaC4wMmwyLjcgMS44MlptLjE0LTEuMTEtMS44OC0xLjI3IDIuMzEtMS4zNGEuMjUuMjUgMCAwIDEgLjM1LjFsLjc2IDEuMzNjLjA3LjExLjAzLjI3LS4wOS4zNGwtMS40NS44NFptLTUuODYtN2MuMTItLjIuMjUtLjQuNDItLjZMNS45NyA4LjVjLjA3LjEyLjAzLjI3LS4xLjM0bC0xLjEzLjY1TDMgOC4zMXYtLjEzYzAtLjc3LjA4LTEuNy41Ni0yLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgU2FuaXRpemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2FuaXRpemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NyA1LjIzYTIuNSAyLjUgMCAwIDAgMCAzLjU0bDMuNDYgMy40NmMuMTEuMTEuMjMuMi4zNS4zLjA0LS4xMy4xLS4yNS4xNy0uMzYuNC0uNi45LTEuMDIgMS40OS0xLjI3LjI2LS4xLjUxLS4xNy43Ni0uMlY3LjVhMS41IDEuNSAwIDAgMSAyLjA1LTEuNGMuMDctLjI1LjItLjQ4LjM5LS42Nkw4Ljc3IDIuNzdhMi41IDIuNSAwIDAgMC0zLjU0IDBMMi43NyA1LjIzWk0xMi41IDZhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDEgMS0xIDB2LTRhLjUuNSAwIDAgMC0xIDB2NC4yNWEyLjA4IDIuMDggMCAwIDAtMS4zOC4wOGMtLjM4LjE2LS43NC40NC0xLjA0LjlhLjUuNSAwIDAgMCAuMjIuNzMgNS4yNiA1LjI2IDAgMCAxIDIuNzEgMi4zN2MuNTUgMS4wMyAxLjYgMi4xNyAyLjk5IDIuMTdoLjI2QTIuNSAyLjUgMCAwIDAgMTYgMTYuNjJsLjYzLTEuMjZhMy41IDMuNSAwIDAgMCAuMzctMS41N1Y3LjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMSAxLTEgMHYtNWEuNS41IDAgMCAwLTEgMHY1YS41LjUgMCAxIDEtMSAwdi01YS41LjUgMCAwIDAtLjUtLjVabS05IDZjLjI4IDAgLjUuMjIuNS41di41aC41YS41LjUgMCAwIDEgMCAxSDR2LjVhLjUuNSAwIDEgMS0xIDBWMTRoLS41YS41LjUgMCAxIDEgMC0xSDN2LS41YzAtLjI4LjIyLS41LjUtLjVabTMgM2MuMjggMCAuNS4yMi41LjV2LjVoLjVhLjUuNSAwIDAgMSAwIDFIN3YuNWEuNS41IDAgMSAxLTEgMFYxN2gtLjVhLjUuNSAwIDEgMSAwLTFINnYtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNhbml0aXplUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYW5pdGl6ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS45NCAzLjQ3IDMuNDcgNS45NGExLjUgMS41IDAgMCAwIDAgMi4xMmwyLjk3IDIuOTZjLS4yNS4yNC0uNDUuNTEtLjYuODJMMi43NyA4Ljc3YTIuNSAyLjUgMCAwIDEgMC0zLjU0bDIuNDYtMi40NmEyLjUgMi41IDAgMCAxIDMuNTQgMEwxMS4zIDUuM2MtLjMuMTctLjU1LjM5LS43Ni42NUw4LjA2IDMuNDdhMS41IDEuNSAwIDAgMC0yLjEyIDBaTTE1LjkgN2MtLjItLjU4LS43Ni0xLTEuNDEtMWgtMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUgxMWEyIDIgMCAwIDAtMiAydjIuMzFhMi43NyAyLjc3IDAgMCAwLS41Ni0uMDZjLS4zNiAwLS43Ny4wOC0xLjEzLjM1LS4zNy4yNy0uNjUuNjktLjggMS4yOGEuNS41IDAgMCAwIC4zLjU4YzEuOS44MSAzIDIuMSAzLjYxIDMuMDNBMy4xIDMuMSAwIDAgMCAxMi45NCAxOGgxLjgyQTIuNSAyLjUgMCAwIDAgMTcgMTYuNjJsLjYzLTEuMjZhMy41IDMuNSAwIDAgMCAuMzctMS41N1Y5YTIgMiAwIDAgMC0yLTJoLS4wOVpNMTQgN2guNWMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMSAwIDEgMFY4YTEgMSAwIDAgMSAxIDF2NC44YzAgLjM4LS4wOS43Ni0uMjYgMS4xbC0uNjMgMS4yN2MtLjI2LjUtLjc4LjgzLTEuMzUuODNoLTEuODJjLS42NCAwLTEuMjctLjQyLTEuNjgtMS4wNWE5LjAxIDkuMDEgMCAwIDAtMy42NC0zLjIxLjkxLjkxIDAgMCAxIC4yOC0uMzQuOS45IDAgMCAxIC41NC0uMTUgMiAyIDAgMCAxIC44My4yQS41LjUgMCAwIDAgMTAgMTJWOWExIDEgMCAwIDEgMS0xdjMuNWEuNS41IDAgMSAwIDEgMHYtNGMwLS4yOC4yMi0uNS41LS41aC41djQuNWEuNS41IDAgMSAwIDEgMFY3Wk0zLjUgMTJjLjI4IDAgLjUuMjIuNS41di41aC41YS41LjUgMCAwIDEgMCAxSDR2LjVhLjUuNSAwIDEgMS0xIDBWMTRoLS41YS41LjUgMCAxIDEgMC0xSDN2LS41YzAtLjI4LjIyLS41LjUtLjVaTTcgMTUuNWEuNS41IDAgMCAwLTEgMHYuNWgtLjVhLjUuNSAwIDAgMCAwIDFINnYuNWEuNS41IDAgMSAwIDEgMFYxN2guNWEuNS41IDAgMSAwIDAtMUg3di0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2F2ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmgxdjMuNUM2IDcuMzMgNi42NyA4IDcuNSA4aDRjLjgzIDAgMS41LS42NyAxLjUtMS41VjNoLjM4YTIgMiAwIDAgMSAxLjQxLjU5bDEuNjIgMS42MkEyIDIgMCAwIDEgMTcgNi42MlYxNWEyIDIgMCAwIDEtMiAydi01LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxN2EyIDIgMCAwIDEtMi0yVjVabTktMkg3djMuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjVWM1ptMiA4LjVWMTdINnYtNS41YzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTYXZlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmg4LjM4YTIgMiAwIDAgMSAxLjQxLjU5bDEuNjIgMS42MkEyIDIgMCAwIDEgMTcgNi42MlYxNWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxdi00LjVjMC0uODMuNjctMS41IDEuNS0xLjVoN2MuODMgMCAxLjUuNjcgMS41IDEuNVYxNmExIDEgMCAwIDAgMS0xVjYuNjJhMSAxIDAgMCAwLS4zLS43TDE0LjEgNC4yOGExIDEgMCAwIDAtLjcxLS4yOUgxM3YyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNiA2LjVWNEg1Wm0yIDB2Mi41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVY0SDdabTcgMTJ2LTQuNWEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNVYxNmg4WlwiXSk7XG5leHBvcnQgY29uc3QgU2F2ZUFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2F2ZUFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoMXYzLjVDNiA3LjMzIDYuNjcgOCA3LjUgOGg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYzaC4zOGEyIDIgMCAwIDEgMS40MS41OWwxLjYyIDEuNjJBMiAyIDAgMCAxIDE3IDYuNjJWOS42YTUuNDggNS40OCAwIDAgMC01LjY2LjRINi41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxN2EyIDIgMCAwIDEtMi0yVjVabTYgOS41YzAtMS4zMy40Ny0yLjU1IDEuMjYtMy41SDYuNWEuNS41IDAgMCAwLS41LjVWMTdoMy42Yy0uMzgtLjc1LS42LTEuNi0uNi0yLjVaTTEyIDNIN3YzLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41VjNabTcgMTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmVBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoOC4zOGEyIDIgMCAwIDEgMS40MS41OWwxLjYyIDEuNjJBMiAyIDAgMCAxIDE3IDYuNjJWOS42Yy0uMzItLjE2LS42NS0uMy0xLS40VjYuNjNhMSAxIDAgMCAwLS4zLS43TDE0LjEgNC4yOGExIDEgMCAwIDAtLjcxLS4yOUgxM3YyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNiA2LjVWNEg1YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMXYtNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDQuODRjLS40LjI4LS43Ny42Mi0xLjA4IDFINi41YS41LjUgMCAwIDAtLjUuNVYxNmgzLjJjLjEuMzUuMjQuNjguNCAxSDVhMiAyIDAgMCAxLTItMlY1Wm00LTF2Mi41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVY0SDdabTEyIDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTYXZlQ29weUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlQ29weUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djlBMi41IDIuNSAwIDAgMCA0LjUgMTZoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxMy41IDJoLTlabTUgNC41djJoMmEuNS41IDAgMCAxIDAgMWgtMnYyYS41LjUgMCAwIDEtMSAwdi0yaC0yYS41LjUgMCAwIDEgMC0xaDJ2LTJhLjUuNSAwIDAgMSAxIDBaTTcuNSAxOGMtLjk1IDAtMS44Mi0uMzgtMi40NS0xaDkuNDVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjUuMDVjLjYyLjYzIDEgMS41IDEgMi40NXY3YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmVDb3B5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlQ29weVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS41IDYuNWEuNS41IDAgMCAwLTEgMHYyaC0yYS41LjUgMCAwIDAgMCAxaDJ2MmEuNS41IDAgMCAwIDEgMHYtMmgyYS41LjUgMCAwIDAgMC0xaC0ydi0yWk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djlBMi41IDIuNSAwIDAgMCA0LjUgMTZoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxMy41IDJoLTlaTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDMgMTMuNXYtOVpNNy41IDE4Yy0uOTUgMC0xLjgyLS4zOC0yLjQ1LTFoOS40NWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWNS4wNWMuNjIuNjMgMSAxLjUgMSAyLjQ1djdhMy41IDMuNSAwIDAgMS0zLjUgMy41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgU2F2ZUVkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2F2ZUVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMnYtNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDYuNDRsMS4xNi0xLjE2YTIuODcgMi44NyAwIDAgMSAyLjktLjdWNi42MWEyIDIgMCAwIDAtLjU5LTEuNDFMMTQuOCAzLjU5QTIgMiAwIDAgMCAxMy4zOCAzSDEzdjMuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTRBMS41IDEuNSAwIDAgMSA2IDYuNVYzSDVabTYuOTQgOC0yLjY3IDIuNjdjLS40LjQxLS43LjkyLS44NCAxLjQ5bC0uMzcgMS41Yy0uMDMuMTEtLjA1LjIzLS4wNi4zNEg2di01LjVjMC0uMjguMjItLjUuNS0uNWg1LjQ0Wk03IDNoNXYzLjVhLjUuNSAwIDAgMS0uNS41aC00YS41LjUgMCAwIDEtLjUtLjVWM1ptNy44IDYuNTUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmVFZGl0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgzbC4wNi0uMzUuMTYtLjY1SDZ2LTQuNWMwLS4yOC4yMi0uNS41LS41aDUuNDRsMS0xSDYuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTZhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoMXYyLjVDNiA3LjMzIDYuNjcgOCA3LjUgOGg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY0aC4zOGExIDEgMCAwIDEgLjcuM2wxLjYzIDEuNjFhMSAxIDAgMCAxIC4yOS43MVY4Yy4zNC0uMDEuNjguMDMgMSAuMTN2LTEuNWEyIDIgMCAwIDAtLjU5LTEuNDJMMTQuOCAzLjU5QTIgMiAwIDAgMCAxMy4zOCAzSDVabTIgMy41VjRoNXYyLjVhLjUuNSAwIDAgMS0uNS41aC00YS41LjUgMCAwIDEtLjUtLjVabTcuOCAzLjA1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTYXZlSW1hZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2F2ZUltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMmEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJ2LTUuNUM1IDkuNjcgNS42NyA5IDYuNSA5aDEwYy4xNyAwIC4zNC4wMS41LjA0VjUuNjJhMiAyIDAgMCAwLS41OS0xLjQxTDE0LjggMi41OUEyIDIgMCAwIDAgMTMuMzggMkgxM3YzLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNiA1LjVWMkg1Wm01LjA1IDhBMy40OSAzLjQ5IDAgMCAwIDkgMTIuNVYxNkg2di01LjVjMC0uMjguMjItLjUuNS0uNWgzLjU1Wk0xMiAySDd2My41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVYyWm0tMiAxMC41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTMuMDMgMy4wM2MtLjI2LS40LS40MS0uODctLjQxLTEuMzh2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41IDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMGwtMy4wMyAzLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgU2F2ZUltYWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlSW1hZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDYuMTN2Mi45YTMuNTMgMy41MyAwIDAgMC0uNS0uMDNIMTZWNi4xM2EuOTcuOTcgMCAwIDAtLjI5LS43MkwxMy42IDMuM0EuOTYuOTYgMCAwIDAgMTMgM1Y1LjVhMS40NSAxLjQ1IDAgMCAxLS40NCAxLjA2Yy0uMTQuMTMtLjMuMjQtLjQ4LjMyLS4xOC4wOC0uMzguMTItLjU4LjEyaC00YTEuNDUgMS40NSAwIDAgMS0xLjA1LS40NCAxLjYgMS42IDAgMCAxLS4zMy0uNDhBMS4zMyAxLjMzIDAgMCAxIDYgNS41VjNINWEuOTcuOTcgMCAwIDAtLjcuMjljLS4xLjEtLjE3LjItLjIyLjMyQS44Ni44NiAwIDAgMCA0IDR2MTBjMCAuMTMuMDMuMjcuMDguNC4wNS4xLjEyLjIyLjIuMzEuMS4xLjIuMTcuMzIuMjEuMTMuMDUuMjYuMDguNC4wOHYtNC41YTEuNDUgMS40NSAwIDAgMSAuNDQtMS4wNWMuMTQtLjE0LjMtLjI1LjQ4LS4zMy4xOC0uMDguMzgtLjEyLjU4LS4xMmg2Yy0uOTYgMC0xLjgyLjM4LTIuNDUgMUg2LjVhLjUuNSAwIDAgMC0uNS41VjE1aDN2MUg1Yy0uMjYgMC0uNTItLjA1LS43Ni0uMTZhMi4yIDIuMiAwIDAgMS0uNjQtLjQyIDEuOSAxLjkgMCAwIDEtLjYtMS4zOFY0YzAtLjI2LjA1LS41Mi4xNi0uNzYuMS0uMjQuMjQtLjQ1LjQyLS42NEExLjkgMS45IDAgMCAxIDQuOTYgMmg3LjkyYy4yNiAwIC41Mi4wNS43Ni4xNS4yNS4xLjQ3LjI1LjY1LjQ0TDE2LjQgNC43Yy4xOS4xOS4zNC40LjQzLjY1LjEuMjQuMTYuNS4xNi43N1pNNyAzdjIuNWEuNS41IDAgMCAwIC41LjVoNGEuNS41IDAgMCAwIC41LS41VjNIN1ptMyA5LjVhMi41IDIuNSAwIDAgMSAyLjUtMi41aDRhMi41IDIuNSAwIDAgMSAyLjUgMi41djRjMCAuNS0uMTUuOTgtLjQxIDEuMzhsLTMuMDMtMy4wM2ExLjUgMS41IDAgMCAwLTIuMTIgMGwtMy4wMyAzLjAzYy0uMjYtLjQtLjQxLS44Ny0uNDEtMS4zOHYtNFptNyAuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptLTUuODggNS44NGMuNC4yNi44Ny40MSAxLjM4LjQxaDRjLjUgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwbC0zLjAzIDMuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTYXZlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2F2ZU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNS41VjNINWEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMnYtNC41QzUgOS42NyA1LjY3IDkgNi41IDloNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWEyIDIgMCAwIDAgMi0yVjYuNjJhMiAyIDAgMCAwLS41OS0xLjQxTDEyLjggMy41OUEyIDIgMCAwIDAgMTEuMzggM0gxMXYyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yQTEuNSAxLjUgMCAwIDEgNiA1LjVabTEgMFYzaDN2Mi41YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41Wm01IDkuNUg2di00LjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNVYxNVptLTMuNSAyYy0uOTUgMC0xLjgyLS4zOC0yLjQ1LTFoNy40NWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWNi4wNWMuNjIuNjMgMSAxLjUgMSAyLjQ1djVhMy41IDMuNSAwIDAgMS0zLjUgMy41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgU2F2ZU11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgM2EyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNi42MmEyIDIgMCAwIDAtLjU5LTEuNDFMMTIuOCAzLjU5QTIgMiAwIDAgMCAxMS4zOCAzSDVaTTQgNWExIDEgMCAwIDEgMS0xaDF2MS41QzYgNi4zMyA2LjY3IDcgNy41IDdoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNGguMzhhMSAxIDAgMCAxIC43LjNsMS42MyAxLjYxYTEgMSAwIDAgMSAuMjkuNzFWMTNhMSAxIDAgMCAxLTEgMXYtMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUM1LjY3IDkgNSA5LjY3IDUgMTAuNVYxNGExIDEgMCAwIDEtMS0xVjVabTMgLjVWNGgzdjEuNWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNVptNSA1VjE0SDZ2LTMuNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41Wk04LjUgMTdjLS45NSAwLTEuODItLjM4LTIuNDUtMWg3LjQ1YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY2LjA1Yy42Mi42MyAxIDEuNSAxIDIuNDV2NWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTYXZlU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NhdmVTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoMXYzLjVDNiA3LjMzIDYuNjcgOCA3LjUgOGg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYzaC4zOGEyIDIgMCAwIDEgMS40MS41OWwxLjYyIDEuNjJBMiAyIDAgMCAxIDE3IDYuNjJWMTVhMiAyIDAgMCAxLTIgMnYtNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5LjMzYTQuNSA0LjUgMCAwIDAtNi4zMy42N1Y1Wm03LjU2IDEwLjQ0TDEyLjEyIDE3SDE0di01LjVhLjUuNSAwIDAgMC0uNS0uNWgtMy4yNmE0LjUgNC41IDAgMCAxIC4zMiA0LjQ0Wk0xMiAzSDd2My41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVYzWm0tMiAxMC41YzAgLjc5LS4yNiAxLjUxLS43IDIuMWwyLjU1IDIuNTVhLjUuNSAwIDAgMS0uNy43TDguNiAxNi4zYTMuNSAzLjUgMCAxIDEgMS40LTIuOFptLTYgMGEyLjUgMi41IDAgMSAwIDUgMCAyLjUgMi41IDAgMCAwLTUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmVTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NhdmVTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDguMzhhMiAyIDAgMCAxIDEuNDEuNTlsMS42MiAxLjYyQTIgMiAwIDAgMSAxNyA2LjYyVjE1YTIgMiAwIDAgMS0yIDJoLTIuODhsLTEtMUgxNHYtNC41YS41LjUgMCAwIDAtLjUtLjVoLTMuMjZhNC41MyA0LjUzIDAgMCAwLS45MS0xaDQuMTdjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTZhMSAxIDAgMCAwIDEtMVY2LjYyYTEgMSAwIDAgMC0uMy0uN0wxNC4xIDQuMjhhMSAxIDAgMCAwLS43MS0uMjlIMTN2Mi41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDYgNi41VjRINWExIDEgMCAwIDAtMSAxdjQuNzZhNC41MiA0LjUyIDAgMCAwLTEgLjkxVjVabTQtMXYyLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41VjRIN1ptMyA5LjVjMCAuNzktLjI2IDEuNTEtLjcgMi4xbDIuNTUgMi41NWEuNS41IDAgMCAxLS43LjdMOC42IDE2LjNhMy41IDMuNSAwIDEgMSAxLjQtMi44Wm0tNiAwYTIuNSAyLjUgMCAxIDAgNSAwIDIuNSAyLjUgMCAwIDAtNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgU2F2ZVN5bmNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2F2ZVN5bmNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoMXYzLjVDNiA3LjMzIDYuNjcgOCA3LjUgOGg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYzaC4zOGEyIDIgMCAwIDEgMS40MS41OWwxLjYyIDEuNjJBMiAyIDAgMCAxIDE3IDYuNjJWOS42YTUuNDggNS40OCAwIDAgMC01LjY2LjRINi41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxN2EyIDIgMCAwIDEtMi0yVjVabTYgOS41YzAtMS4zMy40Ny0yLjU1IDEuMjYtMy41SDYuNWEuNS41IDAgMCAwLS41LjVWMTdoMy42Yy0uMzgtLjc1LS42LTEuNi0uNi0yLjVaTTEyIDNIN3YzLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41VjNabS0yIDExLjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmVTeW5jUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZlU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoOC4zOGEyIDIgMCAwIDEgMS40MS41OWwxLjYyIDEuNjJBMiAyIDAgMCAxIDE3IDYuNjJWOS42Yy0uMzItLjE2LS42NS0uMy0xLS40VjYuNjNhMSAxIDAgMCAwLS4zLS43TDE0LjEgNC4yOGExIDEgMCAwIDAtLjcxLS4yOUgxM3YyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNiA2LjVWNEg1YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMXYtNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDQuODRjLS40LjI4LS43Ny42Mi0xLjA4IDFINi41YS41LjUgMCAwIDAtLjUuNVYxNmgzLjJjLjEuMzUuMjQuNjguNCAxSDVhMiAyIDAgMCAxLTItMlY1Wm00LTF2Mi41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVY0SDdabTMgMTAuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgU2F2aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTYXZpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wibTkuNjUgNC4wNi4xOC4wMmE0LjUgNC41IDAgMCAwLS43IDMuMmMuMTUuOTguOTEgMS42IDEuNiAxLjg3bDMuMDMgMS4yNmMuNjguMjkgMS42NS4zOSAyLjQ2LS4yYTQuNSA0LjUgMCAwIDAgMS40OS0xLjg2Yy4xOS41OC4yOSAxLjIzLjI5IDEuOTYgMCAxLjc1LS41NCAyLjk4LTEuMDkgMy43OGE0Ljk1IDQuOTUgMCAwIDEtLjkxIDF2MS40MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuMzhjLS42MiAwLTEuMTItLjUtMS4xMi0xLjEyYS4xMi4xMiAwIDAgMC0uMTItLjExaC0xLjc2YS4xMi4xMiAwIDAgMC0uMTIuMTFDMTAgMTcuNSA5LjUgMTggOC44OCAxOEg3LjVBMS41IDEuNSAwIDAgMSA2IDE2LjV2LS41NGwtLjE2LS4xYy0uMjgtLjE4LS42OS0uNS0xLjItMS0uNjItLjY0LTEtMS4zNC0xLjItMS44LS4wNy0uMTctLjItLjI3LS4zMy0uMy0uNjQtLjEtMS4xMS0uNjUtMS4xMS0xLjNWOS45NWMwLS42My40NS0xLjE3IDEuMDgtMS4yNy4xMS0uMDIuMjQtLjEzLjMtLjNhNC40IDQuNCAwIDAgMSAxLTEuNzFBNi42MyA2LjYzIDAgMCAxIDYgNS40N3YtMi4zYzAtLjM2LjIzLS42MS40OC0uNzEuMjUtLjEuNTgtLjA4LjgzLjE1LjI5LjI4LjY4LjYzIDEuMTEuOTIuNDQuMy44Ny41IDEuMjMuNTNaTTYuNzUgOS41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMTAuMjktMi40NmEzLjUgMy41IDAgMCAxLTEuNCAyLjM2Yy0uNDMuMzEtMSAuMy0xLjUuMDlsLTMuMDMtMS4yNmMtLjQ4LS4yLS44OC0uNTYtLjk4LTEuMDVsLS4wMi0uMDdhMy41IDMuNSAwIDEgMSA2LjkzLS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNhdmluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NhdmluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2Ljk1IDkuNTRjLjAzLjI0LjA1LjUuMDUuNzcgMCAxLjUzLS40NiAyLjU2LS45MSAzLjJhMy45NiAzLjk2IDAgMCAxLS44NS44OS41LjUgMCAwIDAtLjI0LjQzdjEuNjdhLjUuNSAwIDAgMS0uNS41aC0xLjM4YS4xMi4xMiAwIDAgMS0uMTItLjEyYzAtLjYxLS41LTEuMTEtMS4xMi0xLjExaC0xLjc2Yy0uNjIgMC0xLjEyLjUtMS4xMiAxLjExIDAgLjA3LS4wNS4xMi0uMTIuMTJINy41YS41LjUgMCAwIDEtLjUtLjV2LS44NWEuNS41IDAgMCAwLS4zNC0uNDdsLS4wNC0uMDJhNi4zNyA2LjM3IDAgMCAxLTEuMjYtMS4wMSA0Ljk5IDQuOTkgMCAwIDEtMS0xLjQ5Yy0uMTktLjQyLS41Ny0uOC0xLjA5LS44OGEuMzMuMzMgMCAwIDEtLjI3LS4zMlY5Ljk1YzAtLjE0LjEtLjI2LjI0LS4yOS41NS0uMDkuOTQtLjUxIDEuMS0uOTcuMTItLjQuMzYtLjkzLjc1LTEuMzJhNS42NCA1LjY0IDAgMCAxIDEuNTgtMS4xbC4wMi0uMDJBLjUuNSAwIDAgMCA3IDUuNzl2LTIuMWMuMjUuMjIuNTUuNDYuODcuNjcuNDMuMy45NS41NiAxLjQ4LjY2LjEyLS4zMy4yOC0uNjUuNDgtLjk0bC0uMTgtLjAyYTIuOSAyLjkgMCAwIDEtMS4yMy0uNTMgOC40NyA4LjQ3IDAgMCAxLTEuMTEtLjkyLjc3Ljc3IDAgMCAwLS44My0uMTUuNzYuNzYgMCAwIDAtLjQ4Ljd2Mi4zMmE2LjkgNi45IDAgMCAwLTEuNjMgMS4xOSA0LjQgNC40IDAgMCAwLS45OSAxLjdjLS4wNi4xOC0uMTkuMjktLjMuM0ExLjMgMS4zIDAgMCAwIDIgOS45NnYxLjVjMCAuNjYuNDcgMS4yIDEuMSAxLjMyLjEzLjAyLjI3LjEyLjM0LjMuMi40NS41OCAxLjE1IDEuMiAxLjc4QTcuMzQgNy4zNCAwIDAgMCA2IDE1Ljk2di41NGMwIC44My42NyAxLjUgMS41IDEuNWgxLjM4Yy42MiAwIDEuMTItLjUgMS4xMi0xLjEyIDAtLjA2LjA1LS4xMS4xMi0uMTFoMS43NmMuMDcgMCAuMTIuMDUuMTIuMTEgMCAuNjIuNSAxLjEyIDEuMTIgMS4xMmgxLjM4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMS40MmMuMDQtLjAzLjEtLjA3LjE0LS4xMi4yMi0uMi41LS40OC43Ny0uODdBNi40OCA2LjQ4IDAgMCAwIDE4IDEwLjNjMC0uNzMtLjEtMS4zOC0uMy0xLjk2LS4xOC40My0uNDMuODQtLjc1IDEuMlptLS4xNS00LjNhMy41IDMuNSAwIDAgMS0xLjE3IDQuMTZjLS40My4zMS0xIC4yOS0xLjQ5LjA5TDExLjEgOC4yM2MtLjQ5LS4yLS45LS42LS45OS0xLjEyYTMuNSAzLjUgMCAwIDEgNi43LTEuODhabS0xLjc2IDMuMzVhMi41IDIuNSAwIDEgMC0zLjk0LTEuNjNjMCAuMDMuMDMuMDguMDkuMTUuMDYuMDYuMTYuMTQuMy4ybDMuMDQgMS4yNWMuMTMuMDYuMjYuMDguMzUuMDguMDkgMCAuMTMtLjAzLjE2LS4wNVptLTguMjkuOTFhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhbGVGaWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYWxlRmlsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVabTMuMyAxLjA0YS41LjUgMCAwIDAtLjMuNDZ2MmEuNS41IDAgMCAwIDEgMHYtLjhsMS4xNSAxLjE1YS41LjUgMCAxIDAgLjctLjdMNy43MSA3aC43OWEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwLS4yLjA0Wk02IDExLjV2MmEuNS41IDAgMCAwIC4xNC4zNS41LjUgMCAwIDAgLjM2LjE1aDJhLjUuNSAwIDAgMCAwLTFoLS44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43TDcgMTIuMjl2LS43OWEuNS41IDAgMCAwLTEgMFptNy44NS01LjM2QS41LjUgMCAwIDAgMTMuNSA2aC0yYS41LjUgMCAwIDAgMCAxaC44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43TDEzIDcuNzF2Ljc5YS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjE0LS4zNVptLS4xNiA3LjgyYS41LjUgMCAwIDAgLjMtLjQ2di0yYS41LjUgMCAwIDAtLjk5IDB2LjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdMMTIuMjkgMTNoLS43OWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjItLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhbGVGaWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FsZUZpbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNi41YS41LjUgMCAwIDEgLjE0LS4zNUEuNS41IDAgMCAxIDYuNSA2aDJhLjUuNSAwIDAgMSAwIDFoLS44bDEuMTUgMS4xNWEuNS41IDAgMSAxLS43LjdMNyA3Ljcxdi43OWEuNS41IDAgMCAxLTEgMHYtMlptLjA0IDcuMmEuNS41IDAgMCAxLS4wNC0uMnYtMmEuNS41IDAgMCAxIDEgMHYuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy43TDcuNzEgMTNoLjc5YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjQ2LS4zWm03LjY1LTcuNjZhLjUuNSAwIDAgMSAuMy40NnYyYS41LjUgMCAwIDEtLjk5IDB2LS44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy0uN0wxMi4yOSA3aC0uNzlhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIC4yLjA0Wm0uMTYgNy44MmEuNS41IDAgMCAxLS4zNS4xNGgtMmEuNS41IDAgMCAxIDAtMWguOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdMMTMgMTIuMjl2LS43OWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtLjE0LjM1Wk0zIDVjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVabTItMWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYWxlRml0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYWxlRml0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNnY4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWm0xMS4xMiA2LjA4YS41LjUgMCAwIDEgLjA1LS43bDEtLjg4SDExLjVhLjUuNSAwIDAgMSAwLTFoMi42N2wtMS0uODdhLjUuNSAwIDAgMSAuNjYtLjc2bDIgMS43NWEuNS41IDAgMCAxIDAgLjc2bC0yIDEuNzVhLjUuNSAwIDAgMS0uNy0uMDVaTTYuODggNy45MmEuNS41IDAgMCAxLS4wNS43bC0xIC44OEg4LjVhLjUuNSAwIDAgMSAwIDFINS44M2wxIC44N2EuNS41IDAgMCAxLS42Ni43NmwtMi0xLjc1YS41LjUgMCAwIDEgMC0uNzZsMi0xLjc1YS41LjUgMCAwIDEgLjcuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FsZUZpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhbGVGaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuODggNy45MmEuNS41IDAgMCAxLS4wNS43bC0xIC44OEg4LjVhLjUuNSAwIDAgMSAwIDFINS44M2wxIC44N2EuNS41IDAgMSAxLS42Ni43NmwtMi0xLjc1YS41LjUgMCAwIDEgMC0uNzZsMi0xLjc1YS41LjUgMCAwIDEgLjcuMDVabTcuMjkgMi41OC0xIC44N2EuNS41IDAgMCAwIC42Ni43NmwyLTEuNzVhLjUuNSAwIDAgMCAwLS43NmwtMi0xLjc1YS41LjUgMCAwIDAtLjY2Ljc2bDEgLjg3SDExLjVhLjUuNSAwIDAgMCAwIDFoMi42N1pNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhbGVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYWxlc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgM2EuNS41IDAgMSAwIDAgMWguNzVMMi4wOCA5LjIyYS45NS45NSAwIDAgMC0uMDguNCAzIDMgMCAwIDAgNiAwIC45NS45NSAwIDAgMC0uMDgtLjRMNS43NSA0SDkuNXYxMWgtNGExLjUgMS41IDAgMCAwIDAgM2g5YTEuNSAxLjUgMCAwIDAgMC0zaC00VjRoMy43NWwtMi4xNyA1LjIyYS45Ni45NiAwIDAgMC0uMDguNCAzIDMgMCAwIDAgNiAwIC45Ni45NiAwIDAgMC0uMDgtLjRMMTUuNzUgNGguNzVhLjUuNSAwIDAgMCAwLTFoLTEzWk01IDQuOCA2Ljc1IDloLTMuNUw1IDQuOFpNMTYuNzUgOWgtMy41TDE1IDQuOCAxNi43NSA5WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhbGVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FsZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAzYS41LjUgMCAxIDAgMCAxaC43NUwyLjA4IDkuMjJhLjk1Ljk1IDAgMCAwLS4wOC40IDMgMyAwIDAgMCA2IDAgLjk1Ljk1IDAgMCAwLS4wOC0uNEw1Ljc1IDRIOS41djEwSDZhMiAyIDAgMSAwIDAgNGg4YTIgMiAwIDAgMCAwLTRoLTMuNVY0aDMuNzVsLTIuMTcgNS4yMmEuOTYuOTYgMCAwIDAtLjA4LjQgMyAzIDAgMCAwIDYgMCAuOTYuOTYgMCAwIDAtLjA4LS40TDE1Ljc1IDRoLjc1YS41LjUgMCAwIDAgMC0xaC0xM1pNNSAxMS41QTIgMiAwIDAgMSAzLjA2IDEwaDMuODhBMiAyIDAgMCAxIDUgMTEuNVptMC02LjdMNi43NSA5aC0zLjVMNSA0LjhaTTYgMTVoOGExIDEgMCAwIDEgMCAySDZhMSAxIDAgMSAxIDAtMlptMTAuNzUtNmgtMy41TDE1IDQuOCAxNi43NSA5Wm0tMy42OSAxaDMuODhhMiAyIDAgMCAxLTMuODggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjcgMy41IDcuMDIgOC4xOWwtLjE4LjMzLTEuNjUtMi44N0E2LjQ4IDYuNDggMCAwIDEgOS43IDMuNTFaTTguMjggOWwuMDMtLjA1YTIgMiAwIDAgMSAzLjQzLjA1bC4wMy4wNmEyIDIgMCAwIDEtLjAzIDEuOTRsLS4wMy4wNUEyIDIgMCAwIDEgOC4yNyAxMWwtLjAzLS4wNkEyIDIgMCAwIDEgOC4yNyA5Wm0tMS4zNSAyLjY3LjIuMzNoLTMuM2E2LjUgNi41IDAgMCAxIC40MS01bDIuNyA0LjY3Wk0xMCAxMy41bC4zLS4wMS0xLjY2IDIuODdhNi41IDYuNSAwIDAgMS00LjEyLTIuODZIMTBabTIuOTktMS42OC4xOC0uMzMgMS42NSAyLjg3YTYuNDggNi40OCAwIDAgMS00LjUzIDIuMTNsMi43LTQuNjdabS4wOS0zLjQ5YTMuNTIgMy41MiAwIDAgMC0uMi0uMzNoMy4zYTYuNSA2LjUgMCAwIDEtLjQxIDVsLTIuNy00LjY3Wk0xMCA2LjVsLS4zLjAxIDEuNjYtMi44N2E2LjUgNi41IDAgMCAxIDQuMTIgMi44NkgxMFpNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuOTEgNS4xOWE2Ljk4IDYuOTggMCAwIDEgNS42NS0yLjE3TDcuNCA4LjVjLS4xLjE4LS4xOS4zNi0uMjUuNTZMNC45MSA1LjJabS0uNjcuODMgMy4xMiA1LjRhMyAzIDAgMCAwIC40LjU4SDMuM2E3IDcgMCAwIDEgLjk1LTUuOThaTTguMjcgMTFsLS4wNC0uMDZBMiAyIDAgMCAxIDExLjczIDlsLjA0LjA2QTIgMiAwIDAgMSA4LjI3IDExWm0xLjEyLTMuOTQgMi4yMy0zLjg3YzIuMDguNSAzLjggMS45MiA0LjcgMy44MUgxMGMtLjIxIDAtLjQyLjAyLS42MS4wNlptMi44NS45NGg0LjQ3YTcgNyAwIDAgMS0uOTUgNS45OGwtMy4xMi01LjRjLS4xLS4yLS4yNS0uNC0uNC0uNThabS42MSAyLjk0IDIuMjQgMy44N2E2Ljk4IDYuOTggMCAwIDEtNS42NSAyLjE3bDMuMTYtNS40OGMuMS0uMTguMTktLjM2LjI1LS41NlptLTIuMjQgMkw4LjM4IDE2LjhBNy4wMSA3LjAxIDAgMCAxIDMuNjggMTNIMTBjLjIxIDAgLjQyLS4wMi42MS0uMDZaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuQ2FtZXJhRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYW5DYW1lcmFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDMuNWExIDEgMCAwIDAtMSAxdjIuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDIuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDQuNVptMCAxM2ExIDEgMCAwIDEtMS0xdi0yLjI1YS43NS43NSAwIDAgMC0xLjUgMHYyLjI1QTIuNSAyLjUgMCAwIDAgNC41IDE4aDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNVptMTItMTJhMSAxIDAgMCAwLTEtMWgtMi4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi4yNUEyLjUgMi41IDAgMCAxIDE4IDQuNXYyLjI1YS43NS43NSAwIDAgMS0xLjUgMFY0LjVabS0xIDEyYTEgMSAwIDAgMCAxLTF2LTIuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuMjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yLjI1YS43NS43NSAwIDAgMSAwLTEuNWgyLjI1Wm0tNC4yNS02LjJjMCAuNjktLjU2IDEuMjQtMS4yNSAxLjI0cy0xLjI1LS41NS0xLjI1LTEuMjNjMC0uNjguNTYtMS4yMyAxLjI1LTEuMjNzMS4yNS41NSAxLjI1IDEuMjNaTTUgOS4wOXYzLjY5YzAgLjY4LjU2IDEuMjMgMS4yNSAxLjIzaDcuNWMuNjkgMCAxLjI1LS41NSAxLjI1LTEuMjN2LTMuN2MwLS42Ny0uNTYtMS4yMi0xLjI1LTEuMjJIMTIuNWwtLjg4LTEuM0ExLjI2IDEuMjYgMCAwIDAgMTAuNTggNkg5LjQyYy0uNDIgMC0uOC4yLTEuMDQuNTVsLS44OCAxLjNINi4yNUM1LjU2IDcuODUgNSA4LjQgNSA5LjA4Wm01LTEuMjNjMS4zOCAwIDIuNSAxLjEgMi41IDIuNDZhMi40OCAyLjQ4IDAgMCAxLTIuNSAyLjQ2Yy0xLjM4IDAtMi41LTEuMS0yLjUtMi40NkEyLjQ4IDIuNDggMCAwIDEgMTAgNy44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5DYW1lcmFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYW5DYW1lcmFSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlpNMTUuNSAxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTJhLjUuNSAwIDAgMSAwLTFoMlptLTQuMjUtNi43YzAgLjY5LS41NiAxLjI0LTEuMjUgMS4yNHMtMS4yNS0uNTUtMS4yNS0xLjIzYzAtLjY4LjU2LTEuMjMgMS4yNS0xLjIzczEuMjUuNTUgMS4yNSAxLjIzWk01IDkuMDl2My42OWMwIC42OC41NiAxLjIzIDEuMjUgMS4yM2g3LjVjLjY5IDAgMS4yNS0uNTUgMS4yNS0xLjIzdi0zLjdjMC0uNjctLjU2LTEuMjItMS4yNS0xLjIySDEyLjVsLS44OC0xLjNBMS4yNiAxLjI2IDAgMCAwIDEwLjU4IDZIOS40MmMtLjQyIDAtLjguMi0xLjA0LjU1bC0uODggMS4zSDYuMjVDNS41NiA3Ljg1IDUgOC40IDUgOS4wOFptNS0xLjIzYzEuMzggMCAyLjUgMS4xIDIuNSAyLjQ2YTIuNDggMi40OCAwIDAgMS0yLjUgMi40NmMtMS4zOCAwLTIuNS0xLjEtMi41LTIuNDZBMi40OCAyLjQ4IDAgMCAxIDEwIDcuODVaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuRGFzaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuRGFzaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgMy41YTEgMSAwIDAgMC0xIDF2Mi4yNWEuNzUuNzUgMCAwIDEtMS41IDBWNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoMi4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINC41Wm0wIDEzYTEgMSAwIDAgMS0xLTF2LTIuMjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuMjVBMi41IDIuNSAwIDAgMCA0LjUgMThoMi4yNWEuNzUuNzUgMCAwIDAgMC0xLjVINC41Wm0xMi0xMmExIDEgMCAwIDAtMS0xaC0yLjI1YS43NS43NSAwIDAgMSAwLTEuNWgyLjI1QTIuNSAyLjUgMCAwIDEgMTggNC41djIuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNVptLTEgMTJhMSAxIDAgMCAwIDEtMXYtMi4yNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi4yNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTIuMjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuMjVaTTYgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVBLjc1Ljc1IDAgMCAxIDYgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuRGFzaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhbkRhc2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlpNMTUuNSAxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTJhLjUuNSAwIDAgMSAwLTFoMlpNNiAxMGMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSA2IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgU2Nhbk9iamVjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuT2JqZWN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTYuNzMgMy45YTEuNSAxLjUgMCAwIDAtMi40NiAwbC0yLjYgMy43NUExLjUgMS41IDAgMCAwIDcuNDIgMTNoNS4xOGExLjUgMS41IDAgMCAwIDEuMjMtMi4zNUwxMS4yMyA2LjlaTTMgMTUuNWMwIC44My42NyAxLjUgMS41IDEuNWgyYS41LjUgMCAwIDEgMCAxaC0yQTIuNSAyLjUgMCAwIDEgMiAxNS41di0yYS41LjUgMCAwIDEgMSAwdjJaTTE1LjUgM2MuODMgMCAxLjUuNjcgMS41IDEuNXYyYS41LjUgMCAwIDAgMSAwdi0yQTIuNSAyLjUgMCAwIDAgMTUuNSAyaC0yYS41LjUgMCAwIDAgMCAxaDJaTTE3IDE1LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yYS41LjUgMCAwIDAgMCAxaDJhMi41IDIuNSAwIDAgMCAyLjUtMi41di0yYS41LjUgMCAwIDAtMSAwdjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuT2JqZWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuT2JqZWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djJhLjUuNSAwIDAgMS0xIDB2LTJBMi41IDIuNSAwIDAgMSA0LjUgMmgyYS41LjUgMCAwIDEgMCAxaC0yWm0wIDE0QTEuNSAxLjUgMCAwIDEgMyAxNS41di0yYS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA0LjUgMThoMmEuNS41IDAgMCAwIDAtMWgtMlpNMTcgNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTggNC41djJhLjUuNSAwIDAgMS0xIDB2LTJaTTE1LjUgMTdjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYS41LjUgMCAwIDEgMSAwdjJhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yYS41LjUgMCAwIDEgMC0xaDJaTTguNzcgNi45YTEuNSAxLjUgMCAwIDEgMi40NiAwbDIuNiAzLjc1QTEuNSAxLjUgMCAwIDEgMTIuNTggMTNINy40MWExLjUgMS41IDAgMCAxLTEuMjMtMi4zNUw4Ljc3IDYuOVptMS42NC41N2EuNS41IDAgMCAwLS44MiAwbC0yLjYgMy43NWEuNS41IDAgMCAwIC40Mi43OGg1LjE4YS41LjUgMCAwIDAgLjQxLS43OGwtMi41OS0zLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhblBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlpNMTUuNSAxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTJhLjUuNSAwIDAgMSAwLTFoMlptLTcuNTggMGMtLjIxLS41OC0uNzctMS0xLjQyLTFoLTJhLjUuNSAwIDAgMS0uNDctLjMzQTIgMiAwIDAgMSA2IDE0aDhhMiAyIDAgMCAxIDEuOTcgMS42Ni41LjUgMCAwIDEtLjQ3LjM0aC0yYy0uNjUgMC0xLjIuNDItMS40MSAxSDcuOTJaTTEwIDEyYTMuNSAzLjUgMCAxIDAgMC03IDMuNSAzLjUgMCAwIDAgMCA3WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhblBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYyYS41LjUgMCAwIDEtMSAwdi0yQTIuNSAyLjUgMCAwIDEgNC41IDJoMmEuNS41IDAgMCAxIDAgMWgtMlptMCAxNEExLjUgMS41IDAgMCAxIDMgMTUuNXYtMmEuNS41IDAgMCAwLTEgMHYyQTIuNSAyLjUgMCAwIDAgNC41IDE4aDJhLjUuNSAwIDAgMCAwLTFoLTJaTTE3IDQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJhLjUuNSAwIDAgMSAwLTFoMkEyLjUgMi41IDAgMCAxIDE4IDQuNXYyYS41LjUgMCAwIDEtMSAwdi0yWm0tMS4xMiAxMi40NWExLjUgMS41IDAgMCAxLS4zOC4wNWgtMmEuNS41IDAgMCAwIDAgMWgyYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMmEuNS41IDAgMCAwLTEgMHYyYzAgLjctLjQ3IDEuMjgtMS4xMiAxLjQ1Wk01IDE2aC0uNWEuNS41IDAgMCAxLS40Ny0uMzNBMiAyIDAgMCAxIDYgMTRoOGEyIDIgMCAwIDEgMS45NyAxLjY2LjUuNSAwIDAgMS0uNDcuMzRIMTVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDFabTcuNS03LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBabTEgMGEzLjUgMy41IDAgMSAxLTcgMCAzLjUgMy41IDAgMCAxIDcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5UYWJsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuVGFibGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYyYS41LjUgMCAwIDEtMSAwdi0yQTIuNSAyLjUgMCAwIDEgNC41IDJoMmEuNS41IDAgMCAxIDAgMWgtMlptMCAxNEExLjUgMS41IDAgMCAxIDMgMTUuNXYtMmEuNS41IDAgMCAwLTEgMHYyQTIuNSAyLjUgMCAwIDAgNC41IDE4aDJhLjUuNSAwIDAgMCAwLTFoLTJaTTE3IDQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJhLjUuNSAwIDAgMSAwLTFoMkEyLjUgMi41IDAgMCAxIDE4IDQuNXYyYS41LjUgMCAwIDEtMSAwdi0yWk0xNS41IDE3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmEuNS41IDAgMCAxIDEgMHYyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMmEuNS41IDAgMCAxIDAtMWgyWk03IDVhMiAyIDAgMCAwLTIgMnYxaDEwVjdhMiAyIDAgMCAwLTItMkg3Wm0tMiA4VjloMTB2NGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5UYWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblRhYmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djJhLjUuNSAwIDAgMS0xIDB2LTJBMi41IDIuNSAwIDAgMSA0LjUgMmgyYS41LjUgMCAwIDEgMCAxaC0yWm0wIDE0QTEuNSAxLjUgMCAwIDEgMyAxNS41di0yYS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA0LjUgMThoMmEuNS41IDAgMCAwIDAtMWgtMlpNMTcgNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTggNC41djJhLjUuNSAwIDAgMS0xIDB2LTJaTTE1LjUgMTdjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYS41LjUgMCAwIDEgMSAwdjJhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yYS41LjUgMCAwIDEgMC0xaDJaTTUgN2MwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjdabTItMWExIDEgMCAwIDAtMSAxdjFoOFY3YTEgMSAwIDAgMC0xLTFIN1ptLTEgN2ExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY5SDZ2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5UZXh0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYW5UZXh0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAzLjVhMSAxIDAgMCAwLTEgMXYyLjI1YS43NS43NSAwIDAgMS0xLjUgMFY0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmgyLjI1YS43NS43NSAwIDAgMSAwIDEuNUg0LjVabTAgMTNhMSAxIDAgMCAxLTEtMXYtMi4yNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi4yNUEyLjUgMi41IDAgMCAwIDQuNSAxOGgyLjI1YS43NS43NSAwIDAgMCAwLTEuNUg0LjVabTEyLTEyYTEgMSAwIDAgMC0xLTFoLTIuMjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuMjVBMi41IDIuNSAwIDAgMSAxOCA0LjV2Mi4yNWEuNzUuNzUgMCAwIDEtMS41IDBWNC41Wm0tMSAxMmExIDEgMCAwIDAgMS0xdi0yLjI1YS43NS43NSAwIDAgMSAxLjUgMHYyLjI1YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMi4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi4yNVpNNiA2Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41QS43NS43NSAwIDAgMSA2IDYuNzVaTTYuNzUgOWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41Wk02IDEyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU2NhblRleHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYW5UZXh0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djJhLjUuNSAwIDAgMS0xIDB2LTJBMi41IDIuNSAwIDAgMSA0LjUgMmgyYS41LjUgMCAwIDEgMCAxaC0yWm0wIDE0QTEuNSAxLjUgMCAwIDEgMyAxNS41di0yYS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA0LjUgMThoMmEuNS41IDAgMCAwIDAtMWgtMlpNMTcgNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTggNC41djJhLjUuNSAwIDAgMS0xIDB2LTJaTTE1LjUgMTdjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYS41LjUgMCAwIDEgMSAwdjJhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yYS41LjUgMCAwIDEgMC0xaDJabS05LTExYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTAgM2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wk02IDEyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVGh1bWJVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuVGh1bWJVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djJhLjUuNSAwIDAgMS0xIDB2LTJBMi41IDIuNSAwIDAgMSA0LjUgMmgyYS41LjUgMCAwIDEgMCAxaC0yWm0wIDE0QTEuNSAxLjUgMCAwIDEgMyAxNS41di0yYS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA0LjUgMThoMmEuNS41IDAgMCAwIDAtMWgtMlpNMTcgNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTggNC41djJhLjUuNSAwIDAgMS0xIDB2LTJaTTE1LjUgMTdjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYS41LjUgMCAwIDEgMSAwdjJhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yYS41LjUgMCAwIDEgMC0xaDJaTTExLjE1IDQuNTVjLS44My0uMjMtMS40My4zOC0xLjYzLjg1LS4xNS4zNi0uMjguNjEtLjQ1Ljk0bC0uMzcuNzFhNC45OCA0Ljk4IDAgMCAxLTEuMDQgMS40M2wtMS4yNC43YTEuNzYgMS43NiAwIDAgMC0uOCAyLjE4bC4zNS45Yy4yLjUxLjY1LjkgMS4xOCAxLjA2bDMuNjEgMS4wOEEyLjIgMi4yIDAgMCAwIDEzLjUgMTNsLjkyLTNjLjM2LTEuMTctLjU2LTIuMy0xLjc3LTIuM2gtLjI4Yy4wOC0uMzQuMTQtLjc0LjE0LTEuMS0uMDEtLjM0LS4wNC0uNzYtLjIzLTEuMTVhMS42OCAxLjY4IDAgMCAwLTEuMTMtLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVGh1bWJVcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblRodW1iVXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlpNMTUuNSAxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTJhLjUuNSAwIDAgMSAwLTFoMlpNOS41MiA1LjRjLjItLjQ3LjgtMS4wOCAxLjYzLS44NS41NC4xNC45Mi40NiAxLjEzLjkuMTkuMzkuMjIuODEuMjMgMS4xNSAwIC4zNi0uMDYuNzYtLjE0IDEuMWguMjhjMS4yIDAgMi4xMyAxLjEzIDEuNzcgMi4zbC0uOTIgM2EyLjIgMi4yIDAgMCAxLTIuNzQgMS40bC0zLjYtMS4wOGExLjgyIDEuODIgMCAwIDEtMS4xOS0xLjA3bC0uMzUtLjg5Yy0uMzItLjgzLjAzLTEuNzQuOC0yLjE4bDEuMjQtLjcuMDMtLjAyYy4wNC0uMDQuMTItLjEuMjItLjIxLjItLjIyLjUtLjYuNzktMS4ybC4zNi0uNzFjLjE4LS4zMy4zLS41OC40Ni0uOTRaTTguMTUgOS4zNWwtMS4yNC43Yy0uMzYuMi0uNS42LS4zNi45NGwuMzUuOWMuMDkuMjIuMjguNC41NC40N2wzLjYgMS4wOWExLjIgMS4yIDAgMCAwIDEuNS0uNzVsLjkzLTNjLjE0LS40Ni0uMjItMS0uODItMWgtLjkzYS41LjUgMCAwIDEtLjQ4LS42NGwuMTItLjQ1Yy4wOS0uMzUuMTUtLjcxLjE1LS45OSAwLS4zLS4wNC0uNTUtLjEzLS43M2EuNjkuNjkgMCAwIDAtLjQ4LS4zOC4zLjMgMCAwIDAtLjI2LjA0LjUzLjUzIDAgMCAwLS4yLjIzYy0uMTcuNC0uMzIuNy0uNDkgMS4wMmwtLjM1LjdhNS45NyA1Ljk3IDAgMCAxLTEuMjggMS43M2wtLjEuMDhIOC4ybC0uMDEuMDFhLjUuNSAwIDAgMS0uMDUuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVGh1bWJVcE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY2FuVGh1bWJVcE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjQxIDMuMTJDMi4xNSAzLjUyIDIgNCAyIDQuNXYyYS41LjUgMCAwIDAgMSAwdi0yYzAtLjIzLjA1LS40NS4xNS0uNjVsNC41NyA0LjU4YTEuNDIgMS40MiAwIDAgMS0uMDYuMDVsLTEuMjQuN2ExLjc2IDEuNzYgMCAwIDAtLjggMi4xOGwuMzUuOWMuMi41MS42NS45IDEuMTggMS4wNmwzLjYxIDEuMDhjLjg1LjI2IDEuNzUtLjAxIDIuMy0uNjNsMy4wOSAzLjA4Yy0uMi4xLS40Mi4xNS0uNjUuMTVoLTJhLjUuNSAwIDAgMCAwIDFoMmMuNSAwIC45OC0uMTUgMS4zOC0uNDFsLjI3LjI2YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN2wuMjYuMjdabTYuNDUgMy42MiA1LjAyIDUuMDIuNTQtMS43NmMuMzYtMS4xNy0uNTYtMi4zLTEuNzctMi4zaC0uMjhjLjA4LS4zNC4xNC0uNzQuMTQtMS4xLS4wMS0uMzQtLjA0LS43Ni0uMjMtMS4xNWExLjY4IDEuNjggMCAwIDAtMS4xMy0uOWMtLjgzLS4yMy0xLjQzLjM4LTEuNjMuODUtLjE1LjM2LS4yOC42MS0uNDUuOTRhMzcgMzcgMCAwIDAtLjIxLjRaTTE3IDE0Ljg4bC45OC45Ny4wMi0uMzV2LTJhLjUuNSAwIDAgMC0xIDB2MS4zOFpNNC4xNSAyLjAybC45Ny45OEg2LjVhLjUuNSAwIDAgMCAwLTFoLTJjLS4xMiAwLS4yNCAwLS4zNS4wMlpNNC41IDE3QTEuNSAxLjUgMCAwIDEgMyAxNS41di0yYS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA0LjUgMThoMmEuNS41IDAgMCAwIDAtMWgtMlpNMTcgNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTggNC41djJhLjUuNSAwIDAgMS0xIDB2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVGh1bWJVcE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblRodW1iVXBPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNDEgMy4xMkMyLjE1IDMuNTIgMiA0IDIgNC41djJhLjUuNSAwIDAgMCAxIDB2LTJjMC0uMjMuMDUtLjQ1LjE1LS42NWw0LjU3IDQuNThhMS40MiAxLjQyIDAgMCAxLS4wNi4wNWwtMS4yNC43YTEuNzYgMS43NiAwIDAgMC0uOCAyLjE4bC4zNS45Yy4yLjUxLjY1LjkgMS4xOCAxLjA2bDMuNjEgMS4wOGMuODUuMjYgMS43NS0uMDEgMi4zLS42M2wzLjA5IDMuMDhjLS4yLjEtLjQyLjE1LS42NS4xNWgtMmEuNS41IDAgMCAwIDAgMWgyYy41IDAgLjk4LS4xNSAxLjM4LS40MWwuMjcuMjZhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43bC4yNi4yN1ptOS45NCA5Ljk0Yy0uMjkuMzYtLjguNTQtMS4zLjM5bC0zLjYxLTEuMDlhLjgyLjgyIDAgMCAxLS41NC0uNDhMNi41NSAxMWEuNzYuNzYgMCAwIDEgLjM2LS45NGwxLjI0LS43YS41LjUgMCAwIDAgLjA0LS4wMmguMDF2LS4wMWwuMDItLjAxYTEuNzkgMS43OSAwIDAgMCAuMjEtLjE3bDMuOTIgMy45MlptLTMuNS02LjMyLjc1Ljc0LjM1LS42OGMuMTctLjMyLjMyLS42MS41LTEuMDIuMDMtLjA4LjEtLjE3LjE5LS4yM2EuMy4zIDAgMCAxIC4yNi0uMDRjLjI2LjA3LjQuMi40OC4zOC4wOS4xOC4xMi40My4xMy43MyAwIC4yOC0uMDYuNjQtLjE1Ljk5LS4wMy4xNi0uMDguMzEtLjEyLjQ1YS41LjUgMCAwIDAgLjQ4LjY1aC45M2MuNiAwIC45Ni41My44MiAxbC0uMzkgMS4yNS44LjguNTQtMS43NmMuMzYtMS4xNy0uNTYtMi4zLTEuNzctMi4zaC0uMjhjLjA4LS4zNC4xNC0uNzQuMTQtMS4xLS4wMS0uMzQtLjA0LS43Ni0uMjMtMS4xNWExLjY4IDEuNjggMCAwIDAtMS4xMy0uOWMtLjgzLS4yMy0xLjQzLjM4LTEuNjMuODUtLjE1LjM2LS4yOC42MS0uNDUuOTRsLS4yMS40Wk0xNyAxNC44OGwuOTguOTcuMDItLjM1di0yYS41LjUgMCAwIDAtMSAwdjEuMzhaTTQuMTUgMi4wMmwuOTcuOThINi41YS41LjUgMCAwIDAgMC0xaC0yYy0uMTIgMC0uMjQgMC0uMzUuMDJaTTQuNSAxN0ExLjUgMS41IDAgMCAxIDMgMTUuNXYtMmEuNS41IDAgMCAwLTEgMHYyQTIuNSAyLjUgMCAwIDAgNC41IDE4aDJhLjUuNSAwIDAgMCAwLTFoLTJaTTE3IDQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJhLjUuNSAwIDAgMSAwLTFoMkEyLjUgMi41IDAgMCAxIDE4IDQuNXYyYS41LjUgMCAwIDEtMSAwdi0yWlwiXSk7XG5leHBvcnQgY29uc3QgU2NhblR5cGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblR5cGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDMuNWExIDEgMCAwIDAtMSAxdjIuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDIuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDQuNVptMCAxM2ExIDEgMCAwIDEtMS0xdi0yLjI1YS43NS43NSAwIDAgMC0xLjUgMHYyLjI1QTIuNSAyLjUgMCAwIDAgNC41IDE4aDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNVptMTItMTJhMSAxIDAgMCAwLTEtMWgtMi4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi4yNUEyLjUgMi41IDAgMCAxIDE4IDQuNXYyLjI1YS43NS43NSAwIDAgMS0xLjUgMFY0LjVabS0xIDEyYTEgMSAwIDAgMCAxLTF2LTIuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuMjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0yLjI1YS43NS43NSAwIDAgMSAwLTEuNWgyLjI1Wk01Ljc1IDYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3Yy40MSAwIC43NS4zNC43NS43NXYxYS43NS43NSAwIDAgMS0xLjUgMFY3LjVoLTJ2NUgxMWEuNzUuNzUgMCAwIDEgMCAxLjVIOWEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di01aC0ydi4yNWEuNzUuNzUgMCAwIDEtMS41IDB2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVHlwZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblR5cGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlpNMTUuNSAxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTJhLjUuNSAwIDAgMSAwLTFoMlpNNiA2LjVjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwVjdoLTIuNXY2aC41YS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMSAwLTFoLjVWN0g3di41YS41LjUgMCAwIDEtMSAwdi0xWlwiXSk7XG5leHBvcnQgY29uc3QgU2NhblR5cGVDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblR5cGVDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDMuNWExIDEgMCAwIDAtMSAxdjIuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDIuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDQuNVptMCAxM2ExIDEgMCAwIDEtMS0xdi0yLjI1YS43NS43NSAwIDAgMC0xLjUgMHYyLjI1QTIuNSAyLjUgMCAwIDAgNC41IDE4aDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNVptMTItMTJhMSAxIDAgMCAwLTEtMWgtMi4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi4yNUEyLjUgMi41IDAgMCAxIDE4IDQuNXYyLjI1YS43NS43NSAwIDAgMS0xLjUgMFY0LjVaTTUuNzUgNi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDdjLjQxIDAgLjc1LjM0Ljc1Ljc1djFhLjc1Ljc1IDAgMCAxLTEuNSAwVjcuNWgtMnY1aC4xNGMtLjMuNDYtLjUzLjk2LS42OCAxLjVIOWEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di01aC0ydi4yNWEuNzUuNzUgMCAwIDEtMS41IDB2LTFaTTIwIDE1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjg1LTEuODUtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVHlwZUNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblR5cGVDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEyLjUgMi41IDAgMCAxIDQuNSAyaDJhLjUuNSAwIDAgMSAwIDFoLTJabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlptLTExIDJjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwVjdoLTIuNXY2aC4xYy0uMTYuMzItLjMuNjUtLjQgMUg5YS41LjUgMCAwIDEgMC0xaC41VjdIN3YuNWEuNS41IDAgMCAxLTEgMHYtMVptMTQgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTUuNS44LS42NS0uNjVhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdsLTIuNjUgMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjYW5UeXBlT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NjYW5UeXBlT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNDEgMy4xMkMyLjE1IDMuNTIgMiA0IDIgNC41djIuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNWExIDEgMCAwIDEgLjAzLS4yNkw1LjggNi41YS43NS43NSAwIDAgMC0uMDQuMjV2MWEuNzUuNzUgMCAwIDAgMS40OC4xOGwyLjAyIDIuMDN2Mi41NEg5QS43NS43NSAwIDAgMCA5IDE0aDJhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMjV2LTEuMDRsNSA1YTEgMSAwIDAgMS0uMjUuMDRoLTIuMjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuMjVjLjUgMCAuOTgtLjE1IDEuMzgtLjQxbC4yNy4yNmEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdsLjI2LjI3Wk04LjEyIDZsMi42MyAyLjYzVjcuNWgydi4yNWEuNzUuNzUgMCAwIDAgMS41IDB2LTFBLjc1Ljc1IDAgMCAwIDEzLjUgNkg4LjEyWm04LjM4IDguMzggMS40OCAxLjQ3LjAyLS4zNXYtMi4yNWEuNzUuNzUgMCAwIDAtMS41IDB2MS4xM1pNNC4xNSAyLjAyIDUuNjIgMy41aDEuMTNhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNWMtLjEyIDAtLjI0IDAtLjM1LjAyWk00LjUgMTYuNWExIDEgMCAwIDEtMS0xdi0yLjI1YS43NS43NSAwIDAgMC0xLjUgMHYyLjI1QTIuNSAyLjUgMCAwIDAgNC41IDE4aDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNVptMTItMTJhMSAxIDAgMCAwLTEtMWgtMi4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi4yNUEyLjUgMi41IDAgMCAxIDE4IDQuNXYyLjI1YS43NS43NSAwIDAgMS0xLjUgMFY0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTY2FuVHlwZU9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NhblR5cGVPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNDEgMy4xMkMyLjE1IDMuNTIgMiA0IDIgNC41djJhLjUuNSAwIDAgMCAxIDB2LTJjMC0uMjMuMDUtLjQ1LjE1LS42NUw2IDYuNzF2Ljc5YS41LjUgMCAwIDAgLjk3LjE4TDkuNSAxMC4yVjEzSDlhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtLjV2LTEuOGw1LjY1IDUuNjVjLS4yLjEtLjQyLjE1LS42NS4xNWgtMmEuNS41IDAgMCAwIDAgMWgyYy41IDAgLjk4LS4xNSAxLjM4LS40MWwuMjcuMjZhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43bC4yNi4yN1pNOC4xMiA2bDEgMWguMzh2LjM4bDEgMVY3SDEzdi41YS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVIOC4xMlpNMTggMTUuNWMwIC4xMiAwIC4yNC0uMDIuMzVsLS45OC0uOTdWMTMuNWEuNS41IDAgMCAxIDEgMHYyWk00LjE1IDIuMDJsLjk3Ljk4SDYuNWEuNS41IDAgMCAwIDAtMWgtMmMtLjEyIDAtLjI0IDAtLjM1LjAyWk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTJhLjUuNSAwIDAgMC0xIDB2MkEyLjUgMi41IDAgMCAwIDQuNSAxOGgyYS41LjUgMCAwIDAgMC0xaC0yWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxOCA0LjV2MmEuNS41IDAgMCAxLTEgMHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjcmF0Y2hwYWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NyYXRjaHBhZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgMkMzLjY3IDIgMyAyLjY3IDMgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41SDEydi0uN0E1LjUgNS41IDAgMCAxIDggMTJINi41YS41LjUgMCAwIDEgMC0xaDEuNTljLjItLjU4Ljc2LTEgMS40MS0xdi0uNWgtM2EuNS41IDAgMCAxIDAtMWgzYzAtLjUzLjEtMS4wNC4zLTEuNUg2LjVhLjUuNSAwIDAgMSAwLTFoMy44OGE0IDQgMCAwIDEgNi42Mi41NlYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVptOSAzLjVhMyAzIDAgMCAwLTMgM3YzYTMgMyAwIDEgMCA2IDB2LTNhMyAzIDAgMCAwLTMtM1ptLTQgNS41Yy4yOCAwIC41LjIyLjUuNXYuNWEzLjUgMy41IDAgMSAwIDcgMHYtLjVhLjUuNSAwIDAgMSAxIDB2LjVhNC41IDQuNSAwIDAgMS00IDQuNDdWMThhLjUuNSAwIDAgMS0xIDB2LTEuNTNBNC41IDQuNSAwIDAgMSA5IDEydi0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2NyYXRjaHBhZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NyYXRjaHBhZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDJDMy42NyAyIDMgMi42NyAzIDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNUgxMnYtLjdhNS40NiA1LjQ2IDAgMCAxLS44LS4zSDQuNWEuNS41IDAgMCAxLS41LS41di0xM2MwLS4yOC4yMi0uNS41LS41aDExYy4yOCAwIC41LjIyLjUuNXYxLjg4Yy40LjMyLjc1LjcyIDEgMS4xOFYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpNOCAxMS41YzAtLjE4LjAzLS4zNC4wOS0uNUg2LjVhLjUuNSAwIDAgMCAwIDFIOHYtLjVabS0xLjUtM2gzdjFoLTNhLjUuNSAwIDAgMSAwLTFaTTkuOCA3YTQgNCAwIDAgMSAuNTgtMUg2LjVhLjUuNSAwIDAgMCAwIDFoMy4zWm0zLjctMS41YTMgMyAwIDAgMC0zIDN2M2EzIDMgMCAxIDAgNiAwdi0zYTMgMyAwIDAgMC0zLTNabS0yIDNhMiAyIDAgMSAxIDQgMHYzYTIgMiAwIDEgMS00IDB2LTNabS0xLjUgM2EuNS41IDAgMCAwLTEgMHYuNWE0LjUgNC41IDAgMCAwIDQgNC40N1YxOGEuNS41IDAgMCAwIDEgMHYtMS41M0E0LjUgNC41IDAgMCAwIDE4IDEydi0uNWEuNS41IDAgMCAwLTEgMHYuNWEzLjUgMy41IDAgMSAxLTcgMHYtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTY3JlZW5DdXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NyZWVuQ3V0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmExIDEgMCAwIDEgMS0xaC41YS41LjUgMCAxIDAgMC0xSDRhMiAyIDAgMCAwLTIgMnYuNWEuNS41IDAgMSAwIDEgMFY2WlwiLCBcIk00IDE0YTEgMSAwIDAgMS0xLTF2LS41YS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjI1YS41LjUgMCAwIDAgMC0xSDRaXCIsIFwiTTIuNSA4Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAxIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVaXCIsIFwiTTE3IDZhMSAxIDAgMCAwLTEtMWgtLjVhLjUuNSAwIDAgMSAwLTFoLjVhMiAyIDAgMCAxIDIgMnYuNWEuNS41IDAgMCAxLTEgMFY2WlwiLCBcIk0xNyAxM2ExIDEgMCAwIDEtMSAxaC0uMjVhLjUuNSAwIDAgMCAwIDFIMTZhMiAyIDAgMCAwIDItMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVaXCIsIFwiTTE3IDguNWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAxIDEtMSAwdi0yWlwiLCBcIk02IDQuNWMwLS4yOC4yMi0uNS41LS41SDlhLjUuNSAwIDAgMSAwIDFINi41YS41LjUgMCAwIDEtLjUtLjVaXCIsIFwiTTExIDRhLjUuNSAwIDAgMCAwIDFoMi41YS41LjUgMCAwIDAgMC0xSDExWlwiLCBcIk01IDZhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMi43bC41LS43NC0xLjk2LTIuOTNhMS41IDEuNSAwIDEgMSAyLjUtMS42NkwxMCA5LjU1bDEuMjUtMS44OGExLjUgMS41IDAgMCAxIDIuNSAxLjY2bC0xLjk1IDIuOTMuNS43NEgxNWExIDEgMCAwIDAgMS0xVjdhMSAxIDAgMCAwLTEtMUg1WlwiLCBcIk03LjIyIDguMDlhLjUuNSAwIDAgMC0uMTQuNjlsMi4zMSAzLjQ4LTEuMjMgMS44NWEyIDIgMCAwIDAtMi41MSAyLjY0IDIgMiAwIDEgMCAzLjM0LTIuMDhsMS0xLjUxTDExIDE0LjY3YTIgMiAwIDEgMCAuODQtLjU1bC0xLjI0LTEuODYtLjYtLjlMNy45IDguMjNhLjUuNSAwIDAgMC0uNy0uMTRaTTEyLjUgMTdhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0tNSAwYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIiwgXCJtMTAuNiAxMC40NS42LjkgMS43Mi0yLjU3YS41LjUgMCAwIDAtLjE0LS43LjUuNSAwIDAgMC0uNy4xNWwtMS40OCAyLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgU2NyZWVuQ3V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5DdXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNWExIDEgMCAwIDAtMSAxdi41YS41LjUgMCAxIDEtMSAwVjZjMC0xLjEuOS0yIDItMmguNWEuNS41IDAgMCAxIDAgMUg0WlwiLCBcIk0zIDEzYTEgMSAwIDAgMCAxIDFoLjI1YS41LjUgMCAwIDEgMCAxSDRhMiAyIDAgMCAxLTItMnYtLjVhLjUuNSAwIDAgMSAxIDB2LjVaXCIsIFwiTTMgOC41YS41LjUgMCAwIDAtMSAwdjJhLjUuNSAwIDEgMCAxIDB2LTJaXCIsIFwiTTE2IDVhMSAxIDAgMCAxIDEgMXYuNWEuNS41IDAgMCAwIDEgMFY2YTIgMiAwIDAgMC0yLTJoLS41YS41LjUgMCAwIDAgMCAxaC41WlwiLCBcIk0xNiAxNGExIDEgMCAwIDAgMS0xdi0uNWEuNS41IDAgMCAxIDEgMHYuNWEyIDIgMCAwIDEtMiAyaC0uMjVhLjUuNSAwIDAgMSAwLTFIMTZaXCIsIFwiTTE3LjUgOGEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMSAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41WlwiLCBcIk02LjUgNGEuNS41IDAgMCAwIDAgMUg5YS41LjUgMCAxIDAgMC0xSDYuNVpcIiwgXCJNMTAuNSA0LjVjMC0uMjguMjItLjUuNS0uNWgyLjVhLjUuNSAwIDAgMSAwIDFIMTFhLjUuNSAwIDAgMS0uNS0uNVpcIiwgXCJNNy4yMiA4LjA5YS41LjUgMCAwIDAtLjE0LjY5bDIuMzEgMy40OC0xLjIzIDEuODVhMiAyIDAgMCAwLTIuNTEgMi42NCAyIDIgMCAxIDAgMy4zNC0yLjA4bDEtMS41MUwxMSAxNC42N2EyIDIgMCAxIDAgLjg0LS41NWwtMS4yNC0xLjg2LS42LS45TDcuOSA4LjIzYS41LjUgMCAwIDAtLjctLjE0Wk0xMi41IDE3YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTUgMGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCIsIFwibTEwLjYgMTAuNDUuNi45IDEuNzItMi41N2EuNS41IDAgMCAwLS4xNC0uNy41LjUgMCAwIDAtLjcuMTVsLTEuNDggMi4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjcmVlblBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5QZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA0YTMgMyAwIDAgMC0zIDN2NmEzIDMgMCAwIDAgMyAzaDYuMDVhMi41IDIuNSAwIDAgMSAyLjIyLTEuOTlBMi45OSAyLjk5IDAgMCAxIDE1LjUgOWEzIDMgMCAwIDEgMi41IDEuMzRWN2EzIDMgMCAwIDAtMy0zSDVabTEyLjUgOGEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2NyZWVuUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5QZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNzUgNEEyLjc1IDIuNzUgMCAwIDAgMiA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAxNmg2LjNjLjA3LS4zNy4yMy0uNy40NS0xSDQuNzVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjV2LTYuNUMzIDUuNzggMy43OCA1IDQuNzUgNWgxMC41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjkuNGMuNC4yMy43NC41NiAxIC45NFY2Ljc1QTIuNzUgMi43NSAwIDAgMCAxNS4yNSA0SDQuNzVabTEyLjc1IDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjcmVlblNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5TZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE2aC01LjEzbC0xLjU2LTEuNTZBNC41IDQuNSAwIDAgMCAyIDguNzZWNi43NVpNNC41IDE2Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTQuNkEzLjUgMy41IDAgMSAwIDQuNSAxNlptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgU2NyZWVuU2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5TZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMSAxNS4yNSAxNmgtNS4xM2wtMS0xaDYuMTNjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di02LjVDMTcgNS43OCAxNi4yMiA1IDE1LjI1IDVINC43NUMzLjc4IDUgMyA1Ljc4IDMgNi43NXYxLjVjLS4zNi4xMy0uNy4zLTEgLjV2LTJaTTQuNSAxNmMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE0LjZBMy41IDMuNSAwIDEgMCA0LjUgMTZabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNjcmVlbnNob3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NyZWVuc2hvdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0uNSAzYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yQzUgNS42NyA1LjY3IDUgNi41IDVoMmEuNS41IDAgMCAxIDAgMWgtMlpNNiAxMy41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBMS41IDEuNSAwIDAgMSA1IDEzLjV2LTJhLjUuNSAwIDAgMSAxIDB2MlpNMTMuNSA2aC0yYS41LjUgMCAwIDEgMC0xaDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmEuNS41IDAgMCAxLTEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0uNSA3LjV2LTJhLjUuNSAwIDAgMSAxIDB2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2NyZWVuc2hvdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NyZWVuc2hvdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNoOC41QTIuNzUgMi43NSAwIDAgMSAxNyA1Ljc1djguNUEyLjc1IDIuNzUgMCAwIDEgMTQuMjUgMTdoLTguNUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41Wk01Ljc1IDRDNC43OCA0IDQgNC43OCA0IDUuNzV2OC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDguNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTguNUMxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41Wm0uNzUgMmEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAxLTEgMHYtMkM1IDUuNjcgNS42NyA1IDYuNSA1aDJhLjUuNSAwIDAgMSAwIDFoLTJaTTYgMTMuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDEgMCAxaC0yQTEuNSAxLjUgMCAwIDEgNSAxMy41di0yYS41LjUgMCAwIDEgMSAwdjJaTTEzLjUgNmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJhLjUuNSAwIDAgMCAwIDFoMlptLjUgNy41YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAwIDAgMWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmEuNS41IDAgMCAwLTEgMHYyWlwiXSk7XG5leHBvcnQgY29uc3QgU2NyZWVuc2hvdFJlY29yZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5zaG90UmVjb3JkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZBNS41IDUuNSAwIDAgMSAxNyA5LjZWNmEzIDMgMCAwIDAtMy0zSDZabTguNSA2YS41LjUgMCAwIDEtLjUtLjV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAxIDAtMWgyYy44MyAwIDEuNS42NyAxLjUgMS41djJhLjUuNSAwIDAgMS0uNS41Wk05IDE0LjVhLjUuNSAwIDAgMS0uNS41aC0yQTEuNSAxLjUgMCAwIDEgNSAxMy41di0yYS41LjUgMCAwIDEgMSAwdjJjMCAuMjguMjIuNS41LjVoMmMuMjggMCAuNS4yMi41LjVaTTYuNSA2YS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yQzUgNS42NyA1LjY3IDUgNi41IDVoMmEuNS41IDAgMCAxIDAgMWgtMlptOCA1YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03Wm0wIDhhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTIuNS00LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTY3JlZW5zaG90UmVjb3JkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JlZW5zaG90UmVjb3JkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g4LjVBMi43NSAyLjc1IDAgMCAxIDE3IDUuNzVWOS42Yy0uMzItLjE2LS42NS0uMy0xLS40VjUuNzZDMTYgNC43OCAxNS4yMiA0IDE0LjI1IDRoLTguNUM0Ljc4IDQgNCA0Ljc4IDQgNS43NXY4LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMy40NmMuMS4zNS4yMy42OC4zOSAxSDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNVpNMTUgOC41YS41LjUgMCAwIDEtMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMSAwLTFoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyWk04LjUgMTRhLjUuNSAwIDAgMSAwIDFoLTJBMS41IDEuNSAwIDAgMSA1IDEzLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmMwIC4yOC4yMi41LjUuNWgyWm0tMi04YS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yQzUgNS42NyA1LjY3IDUgNi41IDVoMmEuNS41IDAgMCAxIDAgMWgtMlptOCA1YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03Wm0wIDhhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTIuNS00LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTY3JpcHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2NyaXB0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjU2IDJINi41QTIuNSAyLjUgMCAwIDAgNCA0LjVWMTNoNmExIDEgMCAwIDEgMSAxdjIuMWMwIDEuMS45IDEuOSAyIDEuOXMxLjk5LS43OSAyLTEuODhWNC4zN2EyLjUgMi41IDAgMCAxIDItMi4zMiAyLjUgMi41IDAgMCAwLS40NC0uMDVabS01Ljg4IDE2YTIuOTkgMi45OSAwIDAgMS0uNjgtMS45VjE0SDEuNWEuNS41IDAgMCAwLS41LjV2MS4xOUEyLjMyIDIuMzIgMCAwIDAgMy4zOCAxOGg3LjNaTTE4IDdhMSAxIDAgMCAwIDEtMVY0LjVhMS41IDEuNSAwIDAgMC0zIDBWN2gyWlwiXSk7XG5leHBvcnQgY29uc3QgU2NyaXB0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTY3JpcHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjU2IDJINi41QTIuNSAyLjUgMCAwIDAgNCA0LjVWMTNIMmExIDEgMCAwIDAtMSAxdjEuNjlBMi4zMiAyLjMyIDAgMCAwIDMuMzggMThoOS4xNEEyLjUgMi41IDAgMCAwIDE1IDE1LjUzVjdoM2ExIDEgMCAwIDAgMS0xVjQuNUEyLjUgMi41IDAgMCAwIDE2LjU2IDJaTTYuNSAzaDhjLS4zLjM5LS40Ny44Ni0uNSAxLjM4VjE1LjVhMS41IDEuNSAwIDAgMS0zIDBWMTRhMSAxIDAgMCAwLTEtMUg1VjQuNUM1IDMuNjcgNS42NyAzIDYuNSAzWm0xMCAwYy44MyAwIDEuNS42NyAxLjUgMS41VjZoLTNWNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41Wk0yIDE0aDh2MS41YzAgLjU2LjE5IDEuMDguNSAxLjVIMy4zN0MyLjYgMTcgMiAxNi40MiAyIDE1LjY5VjE0WlwiXSk7XG5leHBvcnQgY29uc3QgU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgM2E1LjUgNS41IDAgMCAxIDQuMzggOC44Mmw0LjE1IDQuMTVhLjc1Ljc1IDAgMCAxLS45OCAxLjEzbC0uMDgtLjA3LTQuMTUtNC4xNUE1LjUgNS41IDAgMSAxIDguNSAzWm0wIDEuNWE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDNhNS41IDUuNSAwIDAgMSA0LjIzIDkuMDJsNC4xMiA0LjEzYS41LjUgMCAwIDEtLjYzLjc2bC0uMDctLjA2LTQuMTMtNC4xMkE1LjUgNS41IDAgMSAxIDguNSAzWm0wIDFhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWFyY2hJbmZvRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXJjaEluZm9GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgOC41YTUuNSA1LjUgMCAxIDAtMS45OCA0LjIzbDQuMTMgNC4xMi4wNy4wNmEuNS41IDAgMCAwIC42My0uNzZsLTQuMTItNC4xM0E1LjQ4IDUuNDggMCAwIDAgMTQgOC41Wk04LjUgN2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpNOSA4LjV2MmEuNS41IDAgMCAxLTEgMHYtMmEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaEluZm9SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXJjaEluZm9SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAzYTUuNSA1LjUgMCAwIDEgNC4yMyA5LjAybDQuMTIgNC4xM2EuNS41IDAgMCAxLS42My43NmwtLjA3LS4wNi00LjEzLTQuMTJBNS41IDUuNSAwIDEgMSA4LjUgM1ptMCAxYTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wm0wIDRjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNVpNOSA2LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWFyY2hTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWFyY2hTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgM2E1LjUgNS41IDAgMCAxIDQuMzggOC44Mmw0LjE1IDQuMTVhLjc1Ljc1IDAgMCAxLS45OCAxLjEzbC0uMDgtLjA3LTQuMTUtNC4xNWMtLjI4LjIyLS42LjQxLS45Mi41Ny0uMS0uNS0uMjctLjk5LS41LTEuNDNhNCA0IDAgMSAwLTUuODYtMi45NGMtLjUuMS0uOTkuMjUtMS40NC40N0E1LjUgNS41IDAgMCAxIDguNSAzWm0tNS40MyA4LjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMyAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSA4IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVaTTUuNSAxNS41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaFNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWFyY2hTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDNhNS41IDUuNSAwIDAgMSA0LjIzIDkuMDJsNC4xMiA0LjEzYS41LjUgMCAwIDEtLjYzLjc2bC0uMDctLjA2LTQuMTMtNC4xMmE1LjUgNS41IDAgMCAxLTEuMTIuNzIgNS40NSA1LjQ1IDAgMCAwLS4yOS0uOThBNC41IDQuNSAwIDEgMCA0LjA1IDkuMmMtLjMzLjEtLjY1LjIxLS45NS4zNkE1LjUgNS41IDAgMCAxIDguNSAzWm0tNS40MyA4LjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMyAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSA4IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVaTTUuNSAxNS41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaFNoaWVsZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWFyY2hTaGllbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDNhNS41IDUuNSAwIDAgMSA0LjM4IDguODJsNC4xNSA0LjE1YS43NS43NSAwIDAgMS0uOTggMS4xM2wtLjA4LS4wNy00LjE1LTQuMTVjLS41NC40MS0xLjE1LjcyLTEuODIuOTFWMTIuMjFhNCA0IDAgMSAwLTUuNDgtNC4xMmMtLjIuMDctLjM3LjE4LS41Mi4zNC0uMzIuMzMtLjYzLjU4LS45Ni43OEE1LjUgNS41IDAgMCAxIDguNSAzWk03IDEwLjM1YTQuNjMgNC42MyAwIDAgMS0xLS41OWMtLjI0LS4xOC0uNDgtLjQtLjcyLS42NGEuMzkuMzkgMCAwIDAtLjU2IDAgNC41IDQuNSAwIDAgMS0zLjMyIDEuNTUuNC40IDAgMCAwLS40LjQxdjIuNzdjLjAzLjguMTggMS41MS40NCAyLjE1QTQuODEgNC44MSAwIDAgMCAzIDE4Yy41Mi40IDEuMTUuNzMgMS44Ny45OC4wOS4wMy4xNy4wMy4yNiAwQzcuNjkgMTguMDkgOSAxNi4yNyA5IDEzLjU4VjExYS40LjQgMCAwIDAtLjQtLjMzIDQuMjMgNC4yMyAwIDAgMS0xLjYtLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgU2VhcmNoU2hpZWxkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWFyY2hTaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAzYTUuNSA1LjUgMCAwIDEgNC4yMyA5LjAybDQuMTIgNC4xM2EuNS41IDAgMCAxLS42My43NmwtLjA3LS4wNi00LjEzLTQuMTJjLS41OC40OC0xLjI3Ljg1LTIuMDIgMS4wNnYtMS4wNWE0LjUgNC41IDAgMSAwLTYtNC4zMWMtLjMyLjMzLS42My41OC0uOTYuNzhBNS41IDUuNSAwIDAgMSA4LjUgM1pNNyAxMC4zNWE0LjYzIDQuNjMgMCAwIDEtMS0uNTljLS4yNC0uMTgtLjQ4LS40LS43Mi0uNjRhLjM5LjM5IDAgMCAwLS41NiAwIDQuNSA0LjUgMCAwIDEtMy4zMiAxLjU1LjQuNCAwIDAgMC0uNC40MXYyLjc3Yy4wMy44LjE4IDEuNTEuNDQgMi4xNUE0LjgxIDQuODEgMCAwIDAgMyAxOGMuNTIuNCAxLjE1LjczIDEuODcuOTguMDkuMDMuMTcuMDMuMjYgMEM3LjY5IDE4LjA5IDkgMTYuMjcgOSAxMy41OFYxMWEuNC40IDAgMCAwLS40LS4zMyA0LjIzIDQuMjMgMCAwIDEtMS42LS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaFNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VhcmNoU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlptLTkuNy01LjE4YTUuNSA1LjUgMCAxIDAgMi43NSA5Ljg1bDQuMTQgNC4xNS4wOC4wN2EuNzUuNzUgMCAwIDAgLjk4LTEuMTNsLTQuMTUtNC4xNWMuNDctLjYuOC0xLjMyLjk4LTIuMUExLjI3IDEuMjcgMCAwIDEgMTMgOC41YzAtLjE5LjA0LS4zOC4xMi0uNTVhMS4zMiAxLjMyIDAgMCAxLS43Ny0uNTMgNCA0IDAgMSAxLTIuNzctMi43NyAxLjQ1IDEuNDUgMCAwIDEtLjUtMS42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaFNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXJjaFNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEzLjg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWm0tOS43LTUuMThhNS41IDUuNSAwIDEgMCAyLjk0IDkuN2w0LjEzIDQuMTIuMDcuMDZhLjUuNSAwIDAgMCAuNjMtLjc2bC00LjEyLTQuMTNjLjU0LS42NS45NC0xLjQ0IDEuMTMtMi4zYTEuNCAxLjQgMCAwIDEtLjYzLS40NmMtLjEzLS4yLS4yMS0uNDEtLjIzLS42NGE0LjUgNC41IDAgMSAxLTMuOS00LjU4IDEuNDEgMS40MSAwIDAgMS0uMDItMS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaFNxdWFyZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWFyY2hTcXVhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOSAxMS41YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm02IDYuNWMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMMTEuOCAxMS4xQTMuNSAzLjUgMCAxIDAgOSAxMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU2VhcmNoU3F1YXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWFyY2hTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgMTIuNWMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMMTEuOCAxMS4xQTMuNSAzLjUgMCAxIDAgOSAxMi41Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWFyY2hWaXN1YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VhcmNoVmlzdWFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxYS43NS43NSAwIDAgMSAwIDEuNWgtMWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MWEuNzUuNzUgMCAwIDEtMS41IDB2LTFabTE0IDcuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC0xYS43NS43NSAwIDAgMSAwLTEuNWgxYy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMWEuNzUuNzUgMCAwIDEgMS41IDB2MVptMC03LjVDMTcgNC40NSAxNS41NCAzIDEzLjc1IDNoLTFhLjc1Ljc1IDAgMCAwIDAgMS41aDFjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MWEuNzUuNzUgMCAwIDAgMS41IDB2LTFaTTYuMjUgMTdBMy4yNSAzLjI1IDAgMCAxIDMgMTMuNzV2LTFhLjc1Ljc1IDAgMCAxIDEuNSAwdjFjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMWEuNzUuNzUgMCAwIDEgMCAxLjVoLTFaTTEwIDEyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpNNyA4YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXJjaFZpc3VhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VhcmNoVmlzdWFsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCAzYTMgMyAwIDAgMSAzIDN2MS41YS41LjUgMCAwIDEtMSAwVjZhMiAyIDAgMCAwLTItMmgtMS41YS41LjUgMCAwIDEgMC0xSDE0Wk02IDNhMyAzIDAgMCAwLTMgM3YxLjVhLjUuNSAwIDAgMCAxIDBWNmMwLTEuMS45LTIgMi0yaDEuNWEuNS41IDAgMCAwIDAtMUg2Wm04IDE0YTMgMyAwIDAgMCAzLTN2LTEuNWEuNS41IDAgMCAwLTEgMFYxNGEyIDIgMCAwIDEtMiAyaC0xLjVhLjUuNSAwIDAgMCAwIDFIMTRaTTMgMTRhMyAzIDAgMCAwIDMgM2gxLjVhLjUuNSAwIDAgMCAwLTFINmEyIDIgMCAwIDEtMi0ydi0xLjVhLjUuNSAwIDAgMC0xIDBWMTRabTctMmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaTTYuNSA3LjI1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VhdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2My43NmEyLjk5IDIuOTkgMCAwIDAtNC41LjU4IDMgMyAwIDAgMC01IDBBMyAzIDAgMCAwIDMgOS43NlY2Wm05IDZhMiAyIDAgMSAwLTQgMHY1aDR2LTVabTEgNWgyYTIgMiAwIDAgMCAyLTJ2LTNhMiAyIDAgMSAwLTQgMHY1Wm0tNiAwSDVhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAxIDEgNCAwdjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWF0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWF0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y5YzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY2YTMgMyAwIDAgMC0zLTNINlptMTAgNi41YTIuNDkgMi40OSAwIDAgMC0zLjYyLjY3IDMgMyAwIDAgMC00Ljc2IDBBMi41IDIuNSAwIDAgMCA0IDkuNVY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjMuNVpNMTIgMTJ2NEg4di00YTIgMiAwIDEgMSA0IDBabTEgNHYtNC41YTEuNSAxLjUgMCAwIDEgMyAwVjE1YTEgMSAwIDAgMS0xIDFoLTJabS05LTF2LTMuNWExLjUgMS41IDAgMCAxIDMgMFYxNkg1YTEgMSAwIDAgMS0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWF0QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXRBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0tLjUgNy41Yy43IDAgMS4zNS0uMTMgMS45Ny0uMzZBMiAyIDAgMCAxIDE3IDEydjNhMiAyIDAgMCAxLTIgMmgtMnYtNWEyIDIgMCAwIDEgLjM0LTEuMTJjLjM4LjA4Ljc2LjEyIDEuMTYuMTJaTTYgM2gzLjZhNS40OCA1LjQ4IDAgMCAwIC42NyA2LjAxTDEwIDlhMyAzIDAgMCAwLTIuNSAxLjM0QTMgMyAwIDAgMCAzIDkuNzZWNmEzIDMgMCAwIDEgMy0zWm02IDlhMiAyIDAgMSAwLTQgMHY1aDR2LTVabS01IDVINWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDEgMSA0IDB2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlYXRBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlYXRBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptMSA4YzAtLjI0LS4wNi0uNDYtLjE2LS42Ny40LS4xLjgtLjI0IDEuMTYtLjQzVjE1YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjZhMyAzIDAgMCAxIDMtM2gzLjZjLS4xNi4zMi0uMy42NS0uNCAxSDZhMiAyIDAgMCAwLTIgMnYzLjVhMi40OSAyLjQ5IDAgMCAxIDMuNjIuNjcgMyAzIDAgMCAxIDIuNjUtMS4xNiA1LjUgNS41IDAgMCAwIDIuODkgMS44MmMtLjEuMi0uMTYuNDMtLjE2LjY3VjE2aDJhMSAxIDAgMCAwIDEtMXYtMy41Wm0tNCAuNWEyIDIgMCAxIDAtNCAwdjRoNHYtNFptLTggM2ExIDEgMCAwIDAgMSAxaDJ2LTQuNWExLjUgMS41IDAgMCAwLTMgMFYxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdEFsbE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWxlY3RBbGxPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoNmEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptNC45OSAxMWEzIDMgMCAwIDEtMi4yNC0xaDYuNzRhMy41IDMuNSAwIDAgMCAzLjUtMy41VjUuNzdBMyAzIDAgMCAxIDE3IDh2NC41YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgU2VsZWN0QWxsT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWxlY3RBbGxPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTMuOTkgMTFhMyAzIDAgMCAxLTIuMjQtMWg2Ljc0YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY1Ljc3QTMgMyAwIDAgMSAxNyA4djQuNWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdEFsbE9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlbGVjdEFsbE9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabTYuMzMgMy42MmMuMi4xOS4yMy41LjA1LjdsLTMuNSA0YS41LjUgMCAwIDEtLjczLjAzbC0yLTJhLjUuNSAwIDEgMSAuNy0uN2wxLjYzIDEuNjIgMy4xNC0zLjZhLjUuNSAwIDAgMSAuNy0uMDVaTTUuNzUgMTZBMyAzIDAgMCAwIDggMTdoNC41YTQuNSA0LjUgMCAwIDAgNC41LTQuNVY4YTMgMyAwIDAgMC0xLTIuMjN2Ni43M2EzLjUgMy41IDAgMCAxLTMuNSAzLjVINS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdEFsbE9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWxlY3RBbGxPblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuMzMgNi42MmMuMi4xOS4yMy41LjA1LjdsLTMuNSA0YS41LjUgMCAwIDEtLjczLjAzbC0yLTJhLjUuNSAwIDEgMSAuNy0uN2wxLjYzIDEuNjIgMy4xNC0zLjZhLjUuNSAwIDAgMSAuNy0uMDVaTTMgNmEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZabS0uMjUgMTJBMyAzIDAgMCAwIDggMTdoNC41YTQuNSA0LjUgMCAwIDAgNC41LTQuNVY4YTMgMyAwIDAgMC0xLTIuMjN2Ni43M2EzLjUgMy41IDAgMCAxLTMuNSAzLjVINS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdE9iamVjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWxlY3RPYmplY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA0LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTExIDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0xMSAxMWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMTEgMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpNNyA0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41QS43NS43NSAwIDAgMSA3IDQuNzVabTAgMTAuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTMtNy41YS43NS43NSAwIDAgMSAxLjUgMHY0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi00LjVabTEwLjUgMGEuNzUuNzUgMCAwIDEgMS41IDB2NC41YS43NS43NSAwIDAgMS0xLjUgMHYtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgU2VsZWN0T2JqZWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWxlY3RPYmplY3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xMSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMTEgMTFhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTExIDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaTTcgNC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0wIDExYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0tMy04YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDB2LTVabTExIDBhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLTEgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdE9iamVjdFNrZXdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VsZWN0T2JqZWN0U2tld0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNSA0LjVhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBabS00IDExYTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWk0zLjUgMTdhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaTTYgNC41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm04LjExLjc1SDkuOWEyLjUgMi41IDAgMCAwIDAtMS41aDQuMjJhMi41IDIuNSAwIDAgMCAwIDEuNVpNMy42MSAxMyA1Ljk4IDYuNWMuNC4zLjg4LjQ4IDEuNDEuNWwtMi4zNyA2LjUyYy0uNC0uMy0uODgtLjQ4LTEuNDEtLjVabTYuNSAzLjI1SDUuOWEyLjUgMi41IDAgMCAwIDAtMS41aDQuMjJhMi41IDIuNSAwIDAgMCAwIDEuNVptMi41LTMuMjUgMi4zNy02LjUxYy40LjMuODguNDggMS40MS41bC0yLjM3IDYuNTJjLS40LS4zLS44OC0uNDgtMS40MS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdE9iamVjdFNrZXdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlbGVjdE9iamVjdFNrZXdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjQ5IDZoLjAxYTEuNSAxLjUgMCAxIDAtMS40MS0ybC0uMDEuMDJBMS41IDEuNSAwIDAgMCAxNi40OCA2Wm0tNS40IDEwYTEuNSAxLjUgMCAxIDAgMS40Mi0yaC0uMDFjLS42NSAwLTEuMi40Mi0xLjQxIDFsLS4wMS4wMmExLjUgMS41IDAgMCAwIDAgLjk4Wk0zLjUgMTdhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaTTcuNDkgNmExLjUgMS41IDAgMSAwIC4wMi0zIDEuNSAxLjUgMCAwIDAtLjAyIDNabS0zLjYyIDcuMDMgMi4zMi02LjRjLjI4LjE3LjYuMy45NC4zNGwtMi4zMiA2LjRjLS4yOC0uMTctLjYtLjMtLjk0LS4zNFpNMTQuMDUgNWgtNC4xYTIuNTEgMi41MSAwIDAgMCAwLTFoNC4xYTIuNTEgMi41MSAwIDAgMCAwIDFabS04LjEgMTFoNC4xYTIuNTEgMi41MSAwIDAgMSAwLTFoLTQuMWEyLjUxIDIuNTEgMCAwIDEgMCAxWm02LjkyLTIuOTcgMi4zMi02LjRjLjI4LjE3LjYuMy45NC4zNGwtMi4zMiA2LjRjLS4yOC0uMTctLjYtLjMtLjk0LS4zNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdE9iamVjdFNrZXdEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlbGVjdE9iamVjdFNrZXdEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1IDQuNWExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFptLTEzIDExYTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm00LTExYTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm0zLjg5Ljc1aDQuMjJhMi41IDIuNSAwIDAgMSAwLTEuNUg5LjlhMi41IDIuNSAwIDAgMSAwIDEuNVpNMy42IDEzIDUuOTggNi41Yy40LjMuODguNDggMS40MS41bC0yLjM3IDYuNTJjLS40LS4zLS44OC0uNDgtMS40MS0uNVptMi4yOCAzLjI1aDMuNGE1LjQ4IDUuNDggMCAwIDEtLjI4LTEuNUg1Ljg5YTIuNSAyLjUgMCAwIDEgMCAxLjVaTTE2LjM5IDdsLS43NyAyLjExYTUuNTIgNS41MiAwIDAgMC0xLjU2LS4xbC45Mi0yLjUyYy40LjMuODguNDggMS40MS41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlbGVjdE9iamVjdFNrZXdEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZWxlY3RPYmplY3RTa2V3RGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNDkgNmguMDFhMS41IDEuNSAwIDEgMC0xLjQxLTJsLS4wMS4wMmExLjUgMS41IDAgMCAwIC40NyAxLjY0Yy4yNi4yMS41OC4zNC45NC4zNFpNMiAxNS41YTEuNSAxLjUgMCAxIDAgMi45Mi0uNDhWMTVhMS41IDEuNSAwIDAgMC0xLjQtMUgzLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41Wk03LjQ5IDZoLjAxYy42NSAwIDEuMi0uNDIgMS40MS0xbC4wMS0uMDJhMS41IDEuNSAwIDEgMC0yLjM3LjY4Yy4yNi4yMS41OC4zNC45NC4zNFptLTEuMy42My0yLjMyIDYuNGMuMzQuMDUuNjYuMTcuOTQuMzRsMi4zMi02LjRhMi40OCAyLjQ4IDAgMCAxLS45NC0uMzRaTTE0LjA1IDVoLTQuMWEyLjUxIDIuNTEgMCAwIDAgMC0xaDQuMWEyLjUxIDIuNTEgMCAwIDAgMCAxWm0uNDUgNGMuMyAwIC41OS4wMi44Ny4wN2wuNzYtMi4xYTIuNDggMi40OCAwIDAgMS0uOTQtLjM0TDE0LjMzIDloLjE3Wm0tNS40OCA2Yy4wMy4zNC4xLjY4LjE5IDFINS45NWEyLjUxIDIuNTEgMCAwIDAgMC0xaDMuMDdabTkuOTgtLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU2VsZWN0T2JqZWN0U2tld0VkaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VsZWN0T2JqZWN0U2tld0VkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgNC41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm0tMTMgMTFhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBabTQtMTFhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBabTMuODkuNzVoNC4yMmEyLjUgMi41IDAgMCAxIDAtMS41SDkuOWEyLjUgMi41IDAgMCAxIDAgMS41Wk0zLjYgMTMgNS45OCA2LjVjLjQuMy44OC40OCAxLjQxLjVsLTIuMzcgNi41MmMtLjQtLjMtLjg4LS40OC0xLjQxLS41Wm0yLjI4IDMuMjVIOS40bC4wMi0uMWMuMTItLjQ2LjM0LS45LjY1LTEuMjYgMC0uMDUuMDItLjEuMDMtLjE0SDUuOWEyLjUgMi41IDAgMCAxIDAgMS41Wk0xNi4zOSA3bC0uOTIgMi41My0uMzcuMzEtMi4xIDIuMSAxLjk4LTUuNDVjLjQuMy44OC40OCAxLjQxLjVabS01LjQxIDguMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTZWxlY3RPYmplY3RTa2V3RWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VsZWN0T2JqZWN0U2tld0VkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjQ5IDZoLjAxYTEuNSAxLjUgMCAxIDAtMS40MS0ybC0uMDEuMDJhMS41IDEuNSAwIDAgMCAuNDcgMS42NGMuMjYuMjEuNTguMzQuOTQuMzRaTTIgMTUuNWExLjUgMS41IDAgMSAwIDIuOTItLjQ4VjE1YTEuNSAxLjUgMCAwIDAtMS40LTFIMy41Yy0uODMgMC0xLjUuNjctMS41IDEuNVpNNy40OSA2aC4wMWMuNjUgMCAxLjItLjQyIDEuNDEtMWwuMDEtLjAyYTEuNSAxLjUgMCAxIDAtMi4zNy42OGMuMjYuMjEuNTguMzQuOTQuMzRabS0xLjMuNjMtMi4zMiA2LjRjLjM0LjA1LjY2LjE3Ljk0LjM0bDIuMzItNi40YTIuNDggMi40OCAwIDAgMS0uOTQtLjM0Wk0xNC4wNSA1aC00LjFhMi41MSAyLjUxIDAgMCAwIDAtMWg0LjFhMi41MSAyLjUxIDAgMCAwIDAgMVptLS42NCA2LjUzIDEuNjctMS42NyAxLjA1LTIuODlhMi40OCAyLjQ4IDAgMCAxLS45NC0uMzRsLTEuNzggNC45Wk01Ljk1IDE2aDMuNTJjLjExLS4zNi4yOS0uNy41Mi0xSDUuOTVhMi41MSAyLjUxIDAgMCAxIDAgMVptNS4wMy0uNjIgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTZW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlbmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43MiAyLjA1YS41LjUgMCAwIDAtLjcuNThsMS41IDUuNjJjLjA1LjE5LjIuMzMuNC4zNmw2Ljg1IDEuMTRjLjI4LjA1LjI4LjQ1IDAgLjVsLTYuODUgMS4xNGEuNS41IDAgMCAwLS40LjM2bC0xLjUgNS42MmEuNS41IDAgMCAwIC43LjU4bDE1LTcuNWEuNS41IDAgMCAwIDAtLjlsLTE1LTcuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBTZW5kUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZW5kUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjE4IDIuMTFhLjUuNSAwIDAgMSAuNTQtLjA2bDE1IDcuNWEuNS41IDAgMCAxIDAgLjlsLTE1IDcuNWEuNS41IDAgMCAxLS43LS41OEwzLjk4IDEwIDIuMDIgMi42M2EuNS41IDAgMCAxIC4xNi0uNTJabTIuNyA4LjM5LTEuNjEgNi4wNkwxNi4zOCAxMCAzLjI3IDMuNDQgNC44OCA5LjVoNi42MmEuNS41IDAgMSAxIDAgMUg0Ljg4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFNlbmRCZWFrZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VuZEJlYWtlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjcyIDEuNTVhLjUuNSAwIDAgMC0uNy41OGwxLjUgNS42MmMuMDUuMTkuMi4zMy40LjM2bDYuODUgMS4xNGMuMjguMDUuMjguNDUgMCAuNWwtNi44NSAxLjE0YS41LjUgMCAwIDAtLjQuMzZsLTEuNSA1LjYyYS41LjUgMCAwIDAgLjcuNThsOS43NC00Ljg3QTEuNSAxLjUgMCAwIDEgMTMuNSAxMGg0LjExbC4xMS0uMDVhLjUuNSAwIDAgMCAwLS45bC0xNS03LjVaTTE3IDE0LjRhMiAyIDAgMCAwIC4yMi45MmwuMzUuNjhoLTQuMTRsLjM1LS42N2EyIDIgMCAwIDAgLjIyLS45MlYxMmgtLjVhLjUuNSAwIDEgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUgxN3YyLjRaTTEyLjkgMTdsLS44IDEuNTRhMSAxIDAgMCAwIC45IDEuNDZIMThhMSAxIDAgMCAwIC44OS0xLjQ2bC0uOC0xLjU0SDEyLjlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgU2VuZEJlYWtlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VuZEJlYWtlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi4xOCAxLjYxYS41LjUgMCAwIDEgLjU0LS4wNkwxNy41IDEwaC0uMDFhLjUuNSAwIDAgMS0uMjEtLjA1bC0xNC4wMS03TDQuODggOWg2LjYyYS41LjUgMCAxIDEgMCAxSDQuODhsLTEuNjEgNi4wNkwxMiAxMS42OWMuMDQuMzUuMi42Ni40NS44OWwtOS43NCA0Ljg3YS41LjUgMCAwIDEtLjctLjU4TDMuOTggOS41IDIuMDIgMi4xM2EuNS41IDAgMCAxIC4xNi0uNTJabS41NC0uMDZMMTcuNTEgMTBhLjUuNSAwIDAgMCAuMjEtLjk1bC0xNS03LjVaTTE3IDE0LjRhMiAyIDAgMCAwIC4yMi45MmwuMzUuNjhoLTQuMTRsLjM1LS42N2EyIDIgMCAwIDAgLjIyLS45MlYxMmgtLjVhLjUuNSAwIDEgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUgxN3YyLjRaTTEyLjkgMTdsLS44IDEuNTRhMSAxIDAgMCAwIC45IDEuNDZIMThhMSAxIDAgMCAwIC44OS0xLjQ2bC0uOC0xLjU0SDEyLjlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgU2VuZENsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlbmRDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjcyIDEuMDVhLjUuNSAwIDAgMC0uNy41OGwxLjUgNS42MmMuMDUuMTkuMi4zMy40LjM2bDYuODUgMS4xNGMuMjguMDUuMjguNDUgMCAuNWwtNi44NSAxLjE0YS41LjUgMCAwIDAtLjQuMzZsLTEuNSA1LjYyYS41LjUgMCAwIDAgLjcuNThsNi4zMy0zLjE2QTUuNSA1LjUgMCAwIDEgMTcuMiA5LjdsLjUyLS4yNmEuNS41IDAgMCAwIDAtLjlsLTE1LTcuNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgU2VuZENsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZW5kQ2xvY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuMTggMS4xMWEuNS41IDAgMCAxIC41NC0uMDZsMTUgNy41YS41LjUgMCAxIDEtLjQ0LjlsLTE0LjAxLTdMNC44OCA4LjVoNi42MmEuNS41IDAgMSAxIDAgMUg0Ljg4bC0xLjYxIDYuMDYgNi4xLTMuMDZjLS4xNS40MS0uMjcuODQtLjMyIDEuMjlsLTYuMzMgMy4xNmEuNS41IDAgMCAxLS43LS41OEwzLjk4IDkgMi4wMiAxLjYzYS41LjUgMCAwIDEgLjE2LS41MlpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgU2VuZENvcHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VuZENvcHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC40NyAyLjIyYy4zLS4zLjc3LS4zIDEuMDYgMGwyLjUgMi41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMOS43NSA0LjU2djYuNjlhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNTZMNy4wMyA1Ljc4YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMi41LTIuNVpNNS41NyAxNi41QTIgMiAwIDAgMCA3LjUgMThIMTNhNC41IDQuNSAwIDAgMCA0LjUtNC41di0yLjI1YS43NS43NSAwIDAgMC0xLjUgMHYyLjI1YTMgMyAwIDAgMS0zIDNINS41N1pNNC41IDguNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjQuNzVjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWOC43NWEuNzUuNzUgMCAwIDAtMS41IDB2NC43NWEuNS41IDAgMCAxLS41LjVINWEuNS41IDAgMCAxLS41LS41VjguNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZW5kQ29weVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VuZENvcHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNjUgMi4xNWMuMi0uMi41LS4yLjcgMGwzIDNhLjUuNSAwIDAgMS0uNy43TDkuNSAzLjcxdjcuNzlhLjUuNSAwIDAgMS0xIDBWMy43TDYuMzUgNS44NmEuNS41IDAgMSAxLS43LS43bDMtM1pNNS4yNyAxN2MuMzQuNi45OSAxIDEuNzMgMWg2YTQgNCAwIDAgMCA0LTR2LTMuNWEuNS41IDAgMSAwLTEgMFYxNGEzIDMgMCAwIDEtMyAzSDUuMjdaTTQgOC41YS41LjUgMCAwIDAtMSAwVjE0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLTEgMFYxNGExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVY4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZW5kUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlbmRQZXJzb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43MiAyLjA1YS41LjUgMCAwIDAtLjcuNThsMS41IDUuNjJjLjA1LjE5LjIuMzMuNC4zNmw2Ljg1IDEuMTRjLjI4LjA1LjI4LjQ1IDAgLjVsLTYuODUgMS4xNGEuNS41IDAgMCAwLS40LjM2bC0xLjUgNS42MmEuNS41IDAgMCAwIC43LjU4bDkuNzgtNC45VjEzYTMgMyAwIDAgMSA0Ljg1LTIuMzZsLjM3LS4yYS41LjUgMCAwIDAgMC0uODlsLTE1LTcuNVpNMTcuNSAxM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTguNzUgMTIgMTcuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2VuZFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VuZFBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi4xOCAyLjExYS41LjUgMCAwIDEgLjU0LS4wNmwxNSA3LjVhLjUuNSAwIDAgMS0uNDQuOWwtMTQuMDEtN0w0Ljg4IDkuNWg2LjYyYS41LjUgMCAxIDEgMCAxSDQuODhsLTEuNjEgNi4wNiA5LjQ3LTQuNzRhMi45OSAyLjk5IDAgMCAwLS4yNCAxLjI0bC05Ljc4IDQuODlhLjUuNSAwIDAgMS0uNy0uNThMMy45OCAxMCAyLjAyIDIuNjNhLjUuNSAwIDAgMSAuMTYtLjUyWk0xNS41IDE1YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptMCA1YzIuNSAwIDMuNS0xLjI1IDMuNS0yLjUgMC0uODMtLjY3LTEuNS0xLjUtMS41aC00Yy0uODMgMC0xLjUuNjctMS41IDEuNSAwIDEuMjUgMSAyLjUgMy41IDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlcmlhbFBvcnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2VyaWFsUG9ydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjMzIDkuMDdBMi41IDIuNSAwIDAgMSA0Ljc3IDZoMTAuNDZhMi41IDIuNSAwIDAgMSAyLjQzIDMuMDdsLS43IDNBMi41IDIuNSAwIDAgMSAxNC41MyAxNEg1LjQ3YTIuNSAyLjUgMCAwIDEtMi40NC0xLjkzbC0uNy0zWk02IDkuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNOC41IDlhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBaTTcgMTEuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0xLjUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWk0xMCA5LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTIuNS0uNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFptMS41LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXJpYWxQb3J0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJpYWxQb3J0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDkuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNOC41IDlhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTcgMTEuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0xLjUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk0xMCA5LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTIuNS0uNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptMS41LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTQuNzcgNmEyLjUgMi41IDAgMCAwLTIuNDQgMy4wN2wuNyAzQTIuNSAyLjUgMCAwIDAgNS40NyAxNGg5LjA2YTIuNSAyLjUgMCAwIDAgMi40My0xLjkzbC43LTNBMi41IDIuNSAwIDAgMCAxNS4yMyA2SDQuNzdaTTMuMyA4Ljg0QTEuNSAxLjUgMCAwIDEgNC43NyA3aDEwLjQ2Yy45NyAwIDEuNjguOSAxLjQ2IDEuODRsLS43IDNBMS41IDEuNSAwIDAgMSAxNC41MyAxM0g1LjQ3Yy0uNyAwLTEuMy0uNDgtMS40Ni0xLjE2bC0uNy0zWlwiXSk7XG5leHBvcnQgY29uc3QgU2VydmVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlcnZlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjUgMkEyLjUgMi41IDAgMCAwIDUgNC41djExQTIuNSAyLjUgMCAwIDAgNy41IDE4aDVhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDEyLjUgMmgtNVpNNyA1LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabTAgN2MwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptMCAyYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2VydmVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSA1YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTcgMTIuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTUgNC41QTIuNSAyLjUgMCAwIDEgNy41IDJoNUEyLjUgMi41IDAgMCAxIDE1IDQuNXYxMWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSA1IDE1LjV2LTExWk03LjUgM0M2LjY3IDMgNiAzLjY3IDYgNC41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXJ2ZXJMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlcnZlckxpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy41IDJBMi41IDIuNSAwIDAgMCA1IDQuNXYxMUEyLjUgMi41IDAgMCAwIDcuNSAxOGgxLjg0YTMuNDkgMy40OSAwIDAgMSAwLTNINy41YS41LjUgMCAwIDEgMC0xaDIuNTVjLjYzLS42MiAxLjUtMSAyLjQ1LTFIMTVWNC41QTIuNSAyLjUgMCAwIDAgMTIuNSAyaC01Wm01IDExaC01YS41LjUgMCAwIDEgMC0xaDVhLjUuNSAwIDAgMSAwIDFaTTcgNS41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm01LjUgOC41YTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXJ2ZXJMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2ZXJMaW5rUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk03IDEyLjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabTctOFYxM2gxVjQuNUEyLjUgMi41IDAgMCAwIDEyLjUgMmgtNUEyLjUgMi41IDAgMCAwIDUgNC41djExQTIuNSAyLjUgMCAwIDAgNy41IDE4aDEuODRhMy40OCAzLjQ4IDAgMCAxLS4zLTFINy41QTEuNSAxLjUgMCAwIDEgNiAxNS41di0xMUM2IDMuNjcgNi42NyAzIDcuNSAzaDVjLjgzIDAgMS41LjY3IDEuNSAxLjVaTTkuMzQgMTVjLjE3LS4zNy40Mi0uNzEuNzEtMUg3LjVhLjUuNSAwIDAgMCAwIDFoMS44NFptMy4xNi0xYTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXJ2ZXJNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2ZXJNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjUgMkEyLjUgMi41IDAgMCAwIDUgNC41djExQTIuNSAyLjUgMCAwIDAgNy41IDE4aDVhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDEyLjUgMmgtNVptMCAzaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaTTcgMTIuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptMCAyYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk0yIDdjMC0xLjEuOS0yIDItMnYxMC41YzAgLjE3LjAxLjM0LjA0LjVINGEyIDIgMCAwIDEtMi0yVjdabTE0IDguNWMwIC4xNy0uMDEuMzQtLjA0LjVIMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ2MTAuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlcnZlck11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2ZXJNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNyAxMi41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNSA0LjVBMi41IDIuNSAwIDAgMSA3LjUgMmg1QTIuNSAyLjUgMCAwIDEgMTUgNC41VjVoMWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMmgtMS4wNWEyLjUgMi41IDAgMCAxLTIuNDUgMmgtNWEyLjUgMi41IDAgMCAxLTIuNDUtMkg0YTIgMiAwIDAgMS0yLTJWN2MwLTEuMS45LTIgMi0yaDF2LS41Wk0xNSAxNWgxYTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xaC0xdjlaTTUgNkg0YTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDFWNlptMi41LTNDNi42NyAzIDYgMy42NyA2IDQuNXYxMWMwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgU2VydmVyUGxheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2ZXJQbGF5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNSAyQTIuNSAyLjUgMCAwIDAgNSA0LjV2MTFBMi41IDIuNSAwIDAgMCA3LjUgMThoMi43NmE1LjQ3IDUuNDcgMCAwIDEtMS4yNC0zSDcuNWEuNS41IDAgMCAxIDAtMWgxLjUyYy4wMy0uMzQuMS0uNjguMTktMUg3LjVhLjUuNSAwIDAgMSAwLTFoMi4xQTUuNSA1LjUgMCAwIDEgMTUgOS4wMlY0LjVBMi41IDIuNSAwIDAgMCAxMi41IDJoLTVaTTcgNS41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0xMiA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4yOS0uNDQtMi45Ny0xLjY1YS41LjUgMCAwIDAtLjc0LjQ0djMuM2MwIC4zOC40MS42Mi43NC40NGwyLjk3LTEuNjVhLjUuNSAwIDAgMCAwLS44OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNlcnZlclBsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NlcnZlclBsYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDkuMDJWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUM2LjY3IDMgNiAzLjY3IDYgNC41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuMWMuMTguMzYuNC43LjY2IDFINy41QTIuNSAyLjUgMCAwIDEgNSAxNS41di0xMUEyLjUgMi41IDAgMCAxIDcuNSAyaDVBMi41IDIuNSAwIDAgMSAxNSA0LjV2NC41MmE1LjU3IDUuNTcgMCAwIDAtMSAwWk03LjUgNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk03IDEyLjVjMC0uMjguMjItLjUuNS0uNWgyLjFjLS4xNi4zMi0uMy42NS0uNCAxSDcuNWEuNS41IDAgMCAxLS41LS41Wm0yIDJjMC0uMTcgMC0uMzQuMDItLjVINy41YS41LjUgMCAwIDAgMCAxaDEuNTJhNS41NyA1LjU3IDAgMCAxLS4wMi0uNVptMTAgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMjktLjQ0LTIuOTctMS42NWEuNS41IDAgMCAwLS43NC40NHYzLjNjMCAuMzguNDEuNjIuNzQuNDRsMi45Ny0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXJ2aWNlQmVsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2aWNlQmVsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDVhMiAyIDAgMSAxIDQgMHYuNzlhNyA3IDAgMCAxIDUgNi43MS41LjUgMCAwIDEtLjUuNWgtMTNhLjUuNSAwIDAgMS0uNS0uNSA3IDcgMCAwIDEgNS02LjcxVjVabTIuNSAzLjVjLjQyIDAgLjg0IDAgMS4yNy4xNi40MS4xNS44Ny40NSAxLjMxIDEuMTJhLjUuNSAwIDAgMCAuODQtLjU2IDMuNjYgMy42NiAwIDAgMC0xLjgxLTEuNSA0LjUxIDQuNTEgMCAwIDAtMS41OS0uMjJoLS4wMmEuNS41IDAgMCAwIDAgMVptLTcgNS41YTEuNSAxLjUgMCAwIDAgMCAzaDEzYTEuNSAxLjUgMCAwIDAgMC0zaC0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VCZWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXJ2aWNlQmVsbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNSA4LjVjLjQyIDAgLjg0IDAgMS4yNy4xNi40MS4xNS44Ny40NSAxLjMxIDEuMTJhLjUuNSAwIDAgMCAuODQtLjU2IDMuNjYgMy42NiAwIDAgMC0xLjgxLTEuNSA0LjUxIDQuNTEgMCAwIDAtMS41OS0uMjJoLS4wMmEuNS41IDAgMCAwIDAgMVpNOCA1di43OWE3IDcgMCAwIDAtNSA2LjcxYzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjUgNyA3IDAgMCAwLTUtNi43MVY1YTIgMiAwIDEgMC00IDBabTItMWExIDEgMCAwIDEgMSAxdi41N2E3LjA2IDcuMDYgMCAwIDAtMiAwVjVhMSAxIDAgMCAxIDEtMVptMCAyLjVhNiA2IDAgMCAxIDUuOTggNS41SDQuMDJBNiA2IDAgMCAxIDEwIDYuNVpNMy41IDE0YTEuNSAxLjUgMCAwIDAgMCAzaDEzYTEuNSAxLjUgMCAwIDAgMC0zaC0xM1pNMyAxNS41YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xLjkxIDcuMzhBOC41IDguNSAwIDAgMSAzLjcgNC4zYS41LjUgMCAwIDEgLjU0LS4xM2wxLjkyLjY4YTEgMSAwIDAgMCAxLjMyLS43NmwuMzYtMmEuNS41IDAgMCAxIC40LS40IDguNTMgOC41MyAwIDAgMSAzLjU1IDBjLjIuMDQuMzUuMi4zOC40bC4zNyAyYTEgMSAwIDAgMCAxLjMyLjc2bDEuOTItLjY4YS41LjUgMCAwIDEgLjU0LjEzIDguNSA4LjUgMCAwIDEgMS43OCAzLjA4Yy4wNi4yIDAgLjQtLjE1LjU0bC0xLjU2IDEuMzJhMSAxIDAgMCAwIDAgMS41MmwxLjU2IDEuMzJhLjUuNSAwIDAgMSAuMTUuNTQgOC41IDguNSAwIDAgMS0xLjc4IDMuMDguNS41IDAgMCAxLS41NC4xM2wtMS45Mi0uNjhhMSAxIDAgMCAwLTEuMzIuNzZsLS4zNyAyYS41LjUgMCAwIDEtLjM4LjQgOC41MyA4LjUzIDAgMCAxLTMuNTYgMCAuNS41IDAgMCAxLS4zOS0uNGwtLjM2LTJhMSAxIDAgMCAwLTEuMzItLjc2bC0xLjkyLjY4YS41LjUgMCAwIDEtLjU0LS4xMyA4LjUgOC41IDAgMCAxLTEuNzgtMy4wOC41LjUgMCAwIDEgLjE1LS41NGwxLjU2LTEuMzJhMSAxIDAgMCAwIDAtMS41MkwyLjA2IDcuOTJhLjUuNSAwIDAgMS0uMTUtLjU0Wk04IDEwYTIgMiAwIDEgMCA0IDAgMiAyIDAgMCAwLTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMS45MSA3LjM4QTguNSA4LjUgMCAwIDEgMy43IDQuM2EuNS41IDAgMCAxIC41NC0uMTNsMS45Mi42OGExIDEgMCAwIDAgMS4zMi0uNzZsLjM2LTJhLjUuNSAwIDAgMSAuNC0uNCA4LjUzIDguNTMgMCAwIDEgMy41NSAwYy4yLjA0LjM1LjIuMzguNGwuMzcgMmExIDEgMCAwIDAgMS4zMi43NmwxLjkyLS42OGEuNS41IDAgMCAxIC41NC4xMyA4LjUgOC41IDAgMCAxIDEuNzggMy4wOGMuMDYuMiAwIC40LS4xNS41NGwtMS41NiAxLjMyYTEgMSAwIDAgMCAwIDEuNTJsMS41NiAxLjMyYS41LjUgMCAwIDEgLjE1LjU0IDguNSA4LjUgMCAwIDEtMS43OCAzLjA4LjUuNSAwIDAgMS0uNTQuMTNsLTEuOTItLjY4YTEgMSAwIDAgMC0xLjMyLjc2bC0uMzcgMmEuNS41IDAgMCAxLS4zOC40IDguNTMgOC41MyAwIDAgMS0zLjU2IDAgLjUuNSAwIDAgMS0uMzktLjRsLS4zNi0yYTEgMSAwIDAgMC0xLjMyLS43NmwtMS45Mi42OGEuNS41IDAgMCAxLS41NC0uMTMgOC41IDguNSAwIDAgMS0xLjc4LTMuMDguNS41IDAgMCAxIC4xNS0uNTRsMS41Ni0xLjMyYTEgMSAwIDAgMCAwLTEuNTJMMi4wNiA3LjkyYS41LjUgMCAwIDEtLjE1LS41NFptMS4wNiAwIDEuMyAxLjFhMiAyIDAgMCAxIDAgMy4wNGwtMS4zIDEuMWMuMy43OS43MiAxLjUxIDEuMjUgMi4xNmwxLjYtLjU4YTIgMiAwIDAgMSAyLjYzIDEuNTNsLjMgMS42N2E3LjU2IDcuNTYgMCAwIDAgMi41IDBsLjMtMS42N2EyIDIgMCAwIDEgMi42NC0xLjUzbDEuNi41OGE3LjUgNy41IDAgMCAwIDEuMjQtMi4xNmwtMS4zLTEuMWEyIDIgMCAwIDEgMC0zLjA0bDEuMy0xLjFhNy41IDcuNSAwIDAgMC0xLjI1LTIuMTZsLTEuNi41OGEyIDIgMCAwIDEtMi42My0xLjUzbC0uMy0xLjY3YTcuNTUgNy41NSAwIDAgMC0yLjUgMGwtLjMgMS42N0EyIDIgMCAwIDEgNS44MSA1LjhsLTEuNi0uNThhNy41IDcuNSAwIDAgMC0xLjI0IDIuMTZaTTcuNSAxMGEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFptMSAwYTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU2V0dGluZ3NDaGF0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NldHRpbmdzQ2hhdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xLjkxIDcuMzhBOC41IDguNSAwIDAgMSAzLjcgNC4zYS41LjUgMCAwIDEgLjU0LS4xM2wxLjkyLjY4YTEgMSAwIDAgMCAxLjMyLS43NmwuMzYtMmEuNS41IDAgMCAxIC40LS40IDguNTMgOC41MyAwIDAgMSAzLjU1IDBjLjIuMDQuMzUuMi4zOC40bC4zNyAyYTEgMSAwIDAgMCAxLjMyLjc2bDEuOTItLjY4YS41LjUgMCAwIDEgLjU0LjEzIDguNSA4LjUgMCAwIDEgMS43OCAzLjA4Yy4wNi4yIDAgLjQtLjE1LjU0bC0xLjU2IDEuMzItLjA3LjA2YTUuNSA1LjUgMCAwIDAtNC4zNS4zMiAyIDIgMCAxIDAtMi4zNCAyLjM0IDUuNDggNS40OCAwIDAgMC0uMTMgNC44MWwtLjQzIDEuNC0uMDUuMjdhOC40OCA4LjQ4IDAgMCAxLS43OS0uMTMuNS41IDAgMCAxLS4zOS0uNGwtLjM2LTJhMSAxIDAgMCAwLTEuMzItLjc2bC0xLjkyLjY4YS41LjUgMCAwIDEtLjU0LS4xMyA4LjUgOC41IDAgMCAxLTEuNzgtMy4wOC41LjUgMCAwIDEgLjE1LS41NGwxLjU2LTEuMzJhMSAxIDAgMCAwIDAtMS41MkwyLjA2IDcuOTJhLjUuNSAwIDAgMS0uMTUtLjU0Wm04LjEgMTEuMTJhLjQuNCAwIDAgMCAuNTIuNDhsMS43OS0uNTRBNC41IDQuNSAwIDEgMCAxNC41IDEwYTQuNDkgNC40OSAwIDAgMC0yLjcyLjkyIDQuNDggNC40OCAwIDAgMC0xLjIxIDUuNzdsLS41NSAxLjc4di4wM1pNMTQuNSAxNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMSAxIDAtMWgyWm0tMi0yaDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDEgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTZXR0aW5nc0NoYXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NldHRpbmdzQ2hhdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMS45MSA3LjM4QTguNSA4LjUgMCAwIDEgMy43IDQuM2EuNS41IDAgMCAxIC41NC0uMTNsMS45Mi42OGExIDEgMCAwIDAgMS4zMi0uNzZsLjM2LTJhLjUuNSAwIDAgMSAuNC0uNCA4LjUzIDguNTMgMCAwIDEgMy41NSAwYy4yLjA0LjM1LjIuMzguNGwuMzcgMmExIDEgMCAwIDAgMS4zMi43NmwxLjkyLS42OGEuNS41IDAgMCAxIC41NC4xMyA4LjUgOC41IDAgMCAxIDEuNzggMy4wOGMuMDYuMiAwIC40LS4xNS41NGwtMS41NiAxLjMyLS4wNy4wNmMtLjMzLS4xMS0uNjgtLjItMS4wNC0uMjVhMiAyIDAgMCAxIC40Ny0uNTdsMS4yOS0xLjFhNy41IDcuNSAwIDAgMC0xLjI1LTIuMTZsLTEuNi41OGEyIDIgMCAwIDEtMi42My0xLjUzbC0uMy0xLjY3YTcuNTUgNy41NSAwIDAgMC0yLjUgMGwtLjMgMS42N0EyIDIgMCAwIDEgNS44MSA1LjhsLTEuNi0uNThhNy41IDcuNSAwIDAgMC0xLjI0IDIuMTZsMS4zIDEuMWEyIDIgMCAwIDEgMCAzLjA0bC0xLjMgMS4xYy4zLjc5LjcyIDEuNTEgMS4yNSAyLjE2bDEuNi0uNThhMiAyIDAgMCAxIDIuNjMgMS41M2wuMyAxLjY3LjUzLjA3LS4yMi43LS4wNS4yN2E4LjQ4IDguNDggMCAwIDEtLjc5LS4xMy41LjUgMCAwIDEtLjM5LS40bC0uMzYtMmExIDEgMCAwIDAtMS4zMi0uNzZsLTEuOTIuNjhhLjUuNSAwIDAgMS0uNTQtLjEzIDguNSA4LjUgMCAwIDEtMS43OC0zLjA4LjUuNSAwIDAgMSAuMTUtLjU0bDEuNTYtMS4zMmExIDEgMCAwIDAgMC0xLjUyTDIuMDYgNy45MmEuNS41IDAgMCAxLS4xNS0uNTRabTguMSAxMS4xMmEuNC40IDAgMCAwIC41Mi40OGwxLjc5LS41NGE0LjUgNC41IDAgMSAwIC4xMy03Ljk0IDQuNDggNC40OCAwIDAgMC0xLjg5IDYuMTlsLS4yNC44LS4zLjk4di4wM1pNMTQuNSAxNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMSAxIDAtMWgyWm0yLTFoLTRhLjUuNSAwIDEgMSAwLTFoNGEuNS41IDAgMSAxIDAgMVpNMTAgNy41YTIuNSAyLjUgMCAwIDEgMi40MyAxLjljLS4zMy4xNC0uNjQuMy0uOTMuNWExLjUgMS41IDAgMSAwLTEuNiAxLjZjLS4yLjI5LS4zNi42LS41LjkzQTIuNSAyLjUgMCAwIDEgMTAgNy41WlwiXSk7XG5leHBvcnQgY29uc3QgU2V0dGluZ3NDb2dNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTZXR0aW5nc0NvZ011bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMmMtLjM3IDAtLjczLjA0LTEuMDguMWEuNS41IDAgMCAwLS40LjRsLS4yNiAxLjM2Yy0uMDUuMjUtLjMuNC0uNTQuMzFsLTEuMy0uNDVhLjUuNSAwIDAgMC0uNTUuMTRBNS41IDUuNSAwIDAgMCAyLjggNS43NGMtLjA3LjItLjAxLjQuMTQuNTRsMS4wNS45Yy4xOS4xNy4xOS40NyAwIC42M2wtMS4wNS45MWEuNS41IDAgMCAwLS4xNC41NGMuMjMuNy42IDEuMzQgMS4wOCAxLjg4LjE0LjE1LjM1LjIuNTQuMTRsMS4zLS40NWMuMjUtLjA4LjUuMDYuNTUuMzFsLjI3IDEuMzZjLjAzLjIuMTkuMzUuMzkuNGE1LjUyIDUuNTIgMCAwIDAgMi4xNyAwIC41LjUgMCAwIDAgLjQtLjRsLjI1LTEuMzZjLjA1LS4yNS4zLS40LjU1LS4zMWwxLjMuNDVjLjE5LjA2LjQgMCAuNTQtLjE0YTUuNSA1LjUgMCAwIDAgMS4wOC0xLjg5LjUuNSAwIDAgMC0uMTQtLjUzbC0xLjA0LS45YS40Mi40MiAwIDAgMSAwLS42M2wxLjA0LS45YS41LjUgMCAwIDAgLjE0LS41NCA1LjUgNS41IDAgMCAwLTEuMDgtMS44OS41LjUgMCAwIDAtLjU0LS4xNGwtMS4zLjQ1YS40Mi40MiAwIDAgMS0uNTUtLjMxTDkuNDggMi41YS41LjUgMCAwIDAtLjQtLjRDOC43NSAyLjA1IDguMzkgMiA4IDJaTTYuNSA3LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBabTQuNjYgNC45NWEuNDYuNDYgMCAwIDEgLjUzLS4xNWwuOC4yN2MuMjYuMS41NC0uMDcuNi0uMzRsLjE1LS44M2MuMDQtLjIuMi0uMzYuNC0uMzhhMy41NSAzLjU1IDAgMCAxIC43MiAwYy4yLjAyLjM1LjE4LjQuMzhsLjE1LjgzYy4wNi4yNy4zNC40My42LjM0bC44LS4yN2MuMTktLjA3LjQtLjAyLjUyLjE1LjE0LjIuMjcuNC4zNi42Mi4wOS4xOS4wMy40LS4xMy41M2wtLjY0LjU2Yy0uMi4xOC0uMi41IDAgLjY4bC42NC41NmMuMTYuMTMuMjIuMzQuMTMuNTMtLjEuMjItLjIyLjQzLS4zNi42MmEuNDYuNDYgMCAwIDEtLjUyLjE1bC0uOC0uMjdhLjQ1LjQ1IDAgMCAwLS42LjM0bC0uMTYuODNjLS4wNC4yLS4xOS4zNi0uNC4zOGEzLjU1IDMuNTUgMCAwIDEtLjcxIDAgLjQ2LjQ2IDAgMCAxLS40LS4zOGwtLjE2LS44M2EuNDUuNDUgMCAwIDAtLjYtLjM0bC0uOC4yN2MtLjE4LjA3LS40LjAyLS41Mi0uMTVhMy41IDMuNSAwIDAgMS0uMzYtLjYyLjQ2LjQ2IDAgMCAxIC4xMy0uNTNsLjY0LS41NmMuMjEtLjE4LjIxLS41IDAtLjY4bC0uNjQtLjU2YS40Ni40NiAwIDAgMS0uMTMtLjUzYy4xLS4yMi4yMi0uNDMuMzYtLjYyWk0xNSAxNC41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNldHRpbmdzQ29nTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NldHRpbmdzQ29nTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTcuNDQgMy4wMy0uMiAxLjAyQTEuNDIgMS40MiAwIDAgMSA1LjQgNS4xMmwtLjk4LS4zNGMtLjIyLjMtLjQxLjYyLS41Ni45N2wuNzguNjhjLjY1LjU2LjY1IDEuNTcgMCAyLjE0bC0uNzguNjhjLjE1LjM1LjM0LjY3LjU2Ljk3bC45OC0uMzRjLjgyLS4yOCAxLjcuMjMgMS44NSAxLjA3bC4yIDEuMDJhNC41NSA0LjU1IDAgMCAwIDEuMTMgMGwuMi0xLjAyYTEuNDIgMS40MiAwIDAgMSAxLjg0LTEuMDdsLjk4LjM0Yy4yMi0uMy40MS0uNjMuNTYtLjk4bC0uNzgtLjY3YTEuNDIgMS40MiAwIDAgMSAwLTIuMTRsLjc4LS42N2E0LjUgNC41IDAgMCAwLS41Ni0uOThsLS45OC4zNGExLjQyIDEuNDIgMCAwIDEtMS44NS0xLjA3bC0uMi0xLjAxYTQuNTUgNC41NSAwIDAgMC0xLjEyIDBabS0uNTItLjkyYTUuNTIgNS41MiAwIDAgMSAyLjE3IDBjLjIuMDQuMzUuMi40LjRsLjI1IDEuMzVjLjA1LjI1LjMuNC41NS4zMWwxLjMtLjQ1YS41LjUgMCAwIDEgLjU0LjE0IDUuNSA1LjUgMCAwIDEgMS4wOCAxLjg5Yy4wNy4xOS4wMS40LS4xNC41M2wtMS4wNC45Yy0uMi4xNy0uMi40NyAwIC42M2wxLjA0LjlhLjUuNSAwIDAgMSAuMTQuNTQgNS41IDUuNSAwIDAgMS0xLjA4IDEuODkuNS41IDAgMCAxLS41NC4xNGwtMS4zLS40NWEuNDIuNDIgMCAwIDAtLjU1LjMxbC0uMjYgMS4zNmEuNS41IDAgMCAxLS40LjQgNS41MiA1LjUyIDAgMCAxLTIuMTYgMCAuNS41IDAgMCAxLS40LS40bC0uMjYtMS4zNmEuNDIuNDIgMCAwIDAtLjU0LS4zMWwtMS4zLjQ1YS41LjUgMCAwIDEtLjU1LS4xNEE1LjUgNS41IDAgMCAxIDIuOCA5LjI2YS41LjUgMCAwIDEgLjE0LS41NGwxLjA1LS45Yy4xOS0uMTcuMTktLjQ3IDAtLjYzbC0xLjA1LS45MWEuNS41IDAgMCAxLS4xNC0uNTRjLjIzLS43LjYtMS4zNCAxLjA4LTEuODhhLjUuNSAwIDAgMSAuNTQtLjE0bDEuMy40NWMuMjUuMDguNS0uMDYuNTUtLjMxbC4yNy0xLjM2YS41LjUgMCAwIDEgLjM5LS40Wm00Ljc3IDEwLjE5YS40Ni40NiAwIDAgMC0uNTMuMTVjLS4xNC4yLS4yNi40LS4zNi42Mi0uMDguMTktLjAyLjQuMTMuNTNsLjY0LjU2Yy4yMS4xOC4yMS41IDAgLjY4bC0uNjQuNTZhLjQ2LjQ2IDAgMCAwLS4xMy41M2MuMS4yMi4yMi40My4zNi42Mi4xMi4xNy4zNC4yMi41My4xNWwuOC0uMjdjLjI2LS4xLjU0LjA3LjYuMzRsLjE1LjgzYy4wNC4yLjIuMzYuNC4zOGEzLjU2IDMuNTYgMCAwIDAgLjcyIDBjLjItLjAyLjM1LS4xOC40LS4zOGwuMTUtLjgzYS40NS40NSAwIDAgMSAuNi0uMzRsLjguMjdjLjE5LjA3LjQuMDIuNTItLjE1LjE0LS4yLjI3LS40LjM2LS42MmEuNDYuNDYgMCAwIDAtLjEzLS41M2wtLjY0LS41NmEuNDUuNDUgMCAwIDEgMC0uNjhsLjY0LS41NmEuNDYuNDYgMCAwIDAgLjEzLS41MyAzLjUgMy41IDAgMCAwLS4zNi0uNjIuNDYuNDYgMCAwIDAtLjUyLS4xNWwtLjguMjdhLjQ1LjQ1IDAgMCAxLS42LS4zNGwtLjE2LS44M2EuNDYuNDYgMCAwIDAtLjQtLjM4IDMuNTUgMy41NSAwIDAgMC0uNzEgMCAuNDYuNDYgMCAwIDAtLjQuMzhsLS4xNi44M2EuNDUuNDUgMCAwIDEtLjYuMzRsLS44LS4yN1pNMTQgMTUuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabS03LThhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xLTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVFeGNsdWRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXBlRXhjbHVkZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDEwLjV2LTZBMi41IDIuNSAwIDAgMSA0LjUgMmg2QTIuNSAyLjUgMCAwIDEgMTMgNC41VjdIOS41QTIuNSAyLjUgMCAwIDAgNyA5LjVWMTNINC41QTIuNSAyLjUgMCAwIDEgMiAxMC41Wk03IDEzdjIuNUEyLjUgMi41IDAgMCAwIDkuNSAxOGg2YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNkEyLjUgMi41IDAgMCAwIDE1LjUgN0gxM3YzLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDdaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFwZUV4Y2x1ZGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXBlRXhjbHVkZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiAxMC41M1Y0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg2LjA2QTIuNDkgMi40OSAwIDAgMSAxMyA0LjVWN2gyLjVBMi41IDIuNSAwIDAgMSAxOCA5LjV2Ni4yMkEyLjUgMi41IDAgMCAxIDE1LjUgMThoLTZBMi41IDIuNSAwIDAgMSA3IDE1LjVWMTNINC41YTIuNTIgMi41MiAwIDAgMS0yLjA5LTEuMTJjLS4yNS0uMzgtLjQtLjg0LS40LTEuMzJMMiAxMC41M1pNMTIgOEg5LjVDOC42NyA4IDggOC42NyA4IDkuNVYxMmgyLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjhaTTMgOS41NnYuOTRjMCAuMjMuMDUuNDUuMTUuNjVsOC04QTEuNSAxLjUgMCAwIDAgMTAuNSAzaC0uOTRMMyA5LjU2Wk04LjE0IDNINi41NkwzIDYuNTZ2MS41OEw4LjE0IDNaTTMgNS4xNCA1LjE0IDNINC41QzMuNjcgMyAzIDMuNjcgMyA0LjV2LjY0Wm04Ljg1LTEuMjlMOC41IDcuMjFjLjMtLjE0LjY0LS4yMSAxLS4yMWguOEwxMiA1LjN2LS44YzAtLjIzLS4wNS0uNDUtLjE1LS42NVpNNy4yMSA4LjVsLTMuMzYgMy4zNWMuMi4xLjQyLjE1LjY1LjE1aC44TDcgMTAuM3YtLjhjMC0uMzYuMDctLjcuMi0xWk04IDEzLjd2MS42bDIuMy0yLjNIOC43bC0uNy43Wm01LTMuNEwxNS4zIDhoLTEuNmwtLjcuN3YxLjZabTMuNC0yLTguMSA4LjFjLjI0LjMyLjYuNTMgMSAuNTlMMTcgOS4zYTEuNSAxLjUgMCAwIDAtLjU5LTFabS42IDIuNEwxMC43IDE3aDEuNmw0LjctNC43di0xLjZabTAgM0wxMy43IDE3aDEuNmwxLjctMS43di0xLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFwZUludGVyc2VjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFwZUludGVyc2VjdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDZBMi41IDIuNSAwIDAgMSAxMyA0LjVWN2gyLjVBMi41IDIuNSAwIDAgMSAxOCA5LjV2NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTZBMi41IDIuNSAwIDAgMSA3IDE1LjVWMTNINC41QTIuNSAyLjUgMCAwIDEgMiAxMC41di02Wk03IDEyVjkuNUEyLjUgMi41IDAgMCAxIDkuNSA3SDEyVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTZDMy42NyAzIDMgMy42NyAzIDQuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41SDdabTEgMXYyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEzdjIuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoYXBlSW50ZXJzZWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFwZUludGVyc2VjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg2QTIuNSAyLjUgMCAwIDEgMTMgNC41VjdoMi41QTIuNSAyLjUgMCAwIDEgMTggOS41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC02QTIuNSAyLjUgMCAwIDEgNyAxNS41VjEzSDQuNUEyLjUgMi41IDAgMCAxIDIgMTAuNXYtNlptMTAgMGMwLS44My0uNjctMS41LTEuNS0xLjVoLTZDMy42NyAzIDMgMy42NyAzIDQuNXY2YzAgLjgzLjY3IDEuNSAxLjUgMS41SDdWOS41QTIuNSAyLjUgMCAwIDEgOS41IDdIMTJWNC41Wm0tNCA2LjJWMTJoLjNMMTIgOC4zVjhoLTEuM0w4IDEwLjdabS4wMi0xLjQyIDEuMjYtMS4yNmExLjUgMS41IDAgMCAwLTEuMjYgMS4yNlpNMTMgOHYyLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDh2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di02YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxM1ptLTMuMyA0aC44Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtLjhMOS43IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVPcmdhbmljRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXBlT3JnYW5pY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41IDcuODNjLjQyLjMyLjg5LjMzIDEuMzUuNTMuMjUuMS41Ny4zLjkuNi42Ni42MyAxLjI1IDEuNzIgMS4yNSAzLjU0YTQuNzMgNC43MyAwIDAgMS0yLjU0IDQuMzNDMTMuOTcgMTcuNjggMTIgMTggMTAgMThjLTIuMTkgMC00LjIxLS4zOC01LjY4LTEuNjItMS45MS0xLjYtMi4zNS00LjM1LTIuMzItNi43IDAtLjY2LjA5LTIuMTIuNjctMy42MS40LTEgMS4wMi0yLjAyIDIuMDEtMi44QTYuNjUgNi42NSAwIDAgMSA4Ljg2IDJjLjI1IDAgMS4yMy4wNSAyLjI2LjQgMS4xNS40IDIuNDggMS4yOCAyLjQ4IDMuMSAwIDEuMzYuNDkgMiAuOSAyLjMzWlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVPcmdhbmljUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFwZU9yZ2FuaWNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgNy44M2MuNDIuMzIuODkuMzMgMS4zNS41My4yNS4xLjU3LjMuOS42LjY2LjYzIDEuMjUgMS43MiAxLjI1IDMuNTRhNC43MyA0LjczIDAgMCAxLTIuNTQgNC4zM0MxMy45NyAxNy42OCAxMiAxOCAxMCAxOGMtMi4xOSAwLTQuMjEtLjM4LTUuNjgtMS42Mi0xLjkxLTEuNi0yLjM1LTQuMzUtMi4zMi02LjcgMC0uNjYuMDktMi4xMi42Ny0zLjYxLjQtMSAxLjAyLTIuMDIgMi4wMS0yLjhBNi42NSA2LjY1IDAgMCAxIDguODYgMmMuMjUgMCAxLjIzLjA1IDIuMjYuNCAxLjE1LjQgMi40OCAxLjI4IDIuNDggMy4xIDAgMS4zNi40OSAyIC45IDIuMzNabS05LjU0IDcuNzlDNi4xNiAxNi42MiA3Ljg5IDE3IDEwIDE3YzEuOTIgMCAzLjctLjMxIDQuOTctMS4wNCAyLjA0LTEuMTUgMi45My00LjUgMS4wOS02LjI3YTIuMTQgMi4xNCAwIDAgMC0uNjItLjQyYy0uNS0uMjItMS4xLS4zLTEuNTQtLjY1LS42OS0uNTMtMS4zLTEuNDgtMS4zLTMuMTIgMC0xLjE4LS44Mi0xLjgtMS44MS0yLjE1QTYuOTQgNi45NCAwIDAgMCA4Ljk2IDMgNS41OSA1LjU5IDAgMCAwIDUuMyA0LjA3YTUuNDggNS40OCAwIDAgMC0xLjcgMi4zNkE5LjYyIDkuNjIgMCAwIDAgMyA5LjY4Yy0uMDIgMi4xLjI2IDQuNSAxLjk2IDUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFwZVN1YnRyYWN0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXBlU3VidHJhY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY2QTIuNSAyLjUgMCAwIDAgNC41IDEzSDd2Mi41QTIuNSAyLjUgMCAwIDAgOS41IDE4aDZhMi41IDIuNSAwIDAgMCAyLjUtMi41di02QTIuNSAyLjUgMCAwIDAgMTUuNSA3SDEzVjQuNUEyLjUgMi41IDAgMCAwIDEwLjUgMmgtNlpNOCA5LjVDOCA4LjY3IDguNjcgOCA5LjUgOGg2Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgOCAxNS41di02WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVTdWJ0cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcGVTdWJ0cmFjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNVYxMC41NmMuMDEuNDguMTYuOTQuNDEgMS4zMmwuMDIuMDJBMi41MiAyLjUyIDAgMCAwIDQuMyAxM0g3djIuNUEyLjUgMi41IDAgMCAwIDkuNSAxOGg2YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNkEyLjUgMi41IDAgMCAwIDE1LjUgN0gxM1Y0LjVhMi41MiAyLjUyIDAgMCAwLS40MS0xLjM4bC0uMDItLjAyQTIuNTEgMi41MSAwIDAgMCAxMC41MSAySDQuNVptLjY0IDFMMyA1LjE0VjQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaC42NFpNMyA2LjU2IDYuNTYgM2gxLjU4TDMgOC4xNFY2LjU2Wk05LjU2IDNoLjk0Yy4yMyAwIC40NS4wNS42NS4xNWwtOCA4QTEuNSAxLjUgMCAwIDEgMyAxMC41di0uOTRMOS41NiAzWm0yLjMuODVjLjA5LjIuMTQuNDIuMTQuNjV2LjhMMTAuMyA3aC0uOGMtLjM2IDAtLjcuMDctMSAuMmwzLjM1LTMuMzVaTTcuMiA4LjVjLS4xNC4zLS4yMS42NC0uMjEgMXYuOEw1LjMgMTJoLS44YTEuNSAxLjUgMCAwIDEtLjY1LS4xNUw3LjIxIDguNVptLjc5IDFDOCA4LjY3IDguNjcgOCA5LjUgOGg2Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgOCAxNS41di02WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVVbmlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFwZVVuaW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2NkEyLjUgMi41IDAgMCAwIDQuNSAxM0g3djIuNUEyLjUgMi41IDAgMCAwIDkuNSAxOGg2YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNkEyLjUgMi41IDAgMCAwIDE1LjUgN0gxM1Y0LjVBMi41IDIuNSAwIDAgMCAxMC41IDJoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFwZVVuaW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFwZVVuaW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djZBMi41IDIuNSAwIDAgMCA0LjMgMTNIN3YyLjVBMi41IDIuNSAwIDAgMCA5LjUgMThoNi4yMmEyLjUgMi41IDAgMCAwIDIuMjctMi4yOHYtLjAxbC4wMS0uMjF2LTZBMi41IDIuNSAwIDAgMCAxNS41IDdIMTNWNC41YTIuNTIgMi41MiAwIDAgMC0uNS0xLjUgMi41IDIuNSAwIDAgMC0yLTFoLTZabTYuNjUgMS4xNS04IDhBMS41IDEuNSAwIDAgMSAzIDEwLjV2LS45NEw5LjU2IDNoLjk0Yy4yMyAwIC40NS4wNS42NS4xNVptLTcuMyA4LjcgOC04Yy4xLjIuMTUuNDIuMTUuNjV2LjhMNS4zIDEyaC0uOGExLjUgMS41IDAgMCAxLS42NS0uMTVaTTEyIDYuNzF2Ljc5YzAgLjIxLjEzLjQuMzIuNDdsLTQuMzUgNC4zNUEuNS41IDAgMCAwIDcuNSAxMmgtLjhMMTIgNi43Wk0xMy43IDhoMS42TDggMTUuM3YtMS42TDEzLjcgOFptMi43LjNjLjMyLjI0LjUzLjYuNTkgMUw5LjMgMTdhMS41IDEuNSAwIDAgMS0xLS41OWw4LjEtOC4xWm0uNiAyLjR2MS42TDEyLjMgMTdoLTEuNmw2LjMtNi4zWm0wIDN2MS42TDE1LjMgMTdoLTEuNmwzLjMtMy4zWk0zIDguMTVWNi41Nkw2LjU2IDNoMS41OEwzIDguMTRabTAtM1Y0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2guNjRMMyA1LjE0WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXBlc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDcuNUE1LjUgNS41IDAgMCAxIDEyLjk4IDdIMTAuNUEzLjUgMy41IDAgMCAwIDcgMTAuNXYyLjQ4QTUuNSA1LjUgMCAwIDEgMiA3LjVabTguNS41QTIuNSAyLjUgMCAwIDAgOCAxMC41djVhMi41IDIuNSAwIDAgMCAyLjUgMi41aDVhMi41IDIuNSAwIDAgMCAyLjUtMi41di01QTIuNSAyLjUgMCAwIDAgMTUuNSA4aC01WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcGVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFwZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAzYTQuNSA0LjUgMCAwIDAtLjUgOC45N3YxQTUuNSA1LjUgMCAxIDEgMTIuOTggN2gtMUE0LjUgNC41IDAgMCAwIDcuNSAzWm0zIDVBMi41IDIuNSAwIDAgMCA4IDEwLjV2NWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNS41IDhoLTVaTTkgMTAuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgOSAxNS41di01WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuMzggNS43VjMuNTljMC0uNDguNTMtLjc0Ljg5LS40N2wuMDYuMDUgNC41IDQuNDJjLjIuMi4yMy41NC4wNS43N2wtLjA1LjA3LTQuNSA0LjQyYy0uMzQuMzMtLjg5LjEyLS45NS0uMzR2LTIuMThsLS4yNi4wM2E5LjI1IDkuMjUgMCAwIDAtNS4xOSAyLjVjLS4zOS4zNS0uOTkuMDMtLjkzLS41LjUtNC4wOSAyLjU5LTYuMzQgNi4xNS02LjYzbC4yMy0uMDFaTTUuNSA0QTIuNSAyLjUgMCAwIDAgMyA2LjV2OEEyLjUgMi41IDAgMCAwIDUuNSAxN2g4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMWEuNS41IDAgMCAwLTEgMHYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDQgMTQuNXYtOEM0IDUuNjcgNC42NyA1IDUuNSA1aDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEzLjMzIDEyLjg0IDQuNS00LjQyLjA1LS4wN2EuNTkuNTkgMCAwIDAtLjA1LS43N2wtNC41LTQuNDItLjA2LS4wNWMtLjM2LS4yNy0uOS0uMDEtLjkuNDdWNS43bC0uMjIuMDFDOC42IDYuMDEgNi41IDguMjYgNiAxMi4zNWMtLjA2LjUzLjU0Ljg1LjkzLjVhOS42NCA5LjY0IDAgMCAxIDQuNDUtMi4zOGMuMjQtLjA2LjUtLjEuNzQtLjEybC4yNi0uMDJ2Mi4xN2MuMDYuNDYuNjEuNjcuOTUuMzRabS0xLjEtNi4xMiAxLjE1LS4wOFY0LjYxTDE2LjgyIDhsLTMuNDQgMy4zOVY5LjIzbC0xLjM2LjEyYy0xLjcuMTktMy4zMi44Ny00LjgzIDIgLjMtMS4zMy44LTIuMzQgMS40Ny0zLjA2YTUuMiA1LjIgMCAwIDEgMy41Ny0xLjU3Wk01LjUgNEEyLjUgMi41IDAgMCAwIDMgNi41djhBMi41IDIuNSAwIDAgMCA1LjUgMTdoOGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFhLjUuNSAwIDAgMC0xIDB2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSA0IDE0LjV2LThDNCA1LjY3IDQuNjcgNSA1LjUgNWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcmVBbmRyb2lkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlQW5kcm9pZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVhMi41IDIuNSAwIDAgMS00LjQ3IDEuNTRMNy45MiA5LjM1YTIuNSAyLjUgMCAwIDEgMCAxLjNsNC42MSAyLjNhMi41IDIuNSAwIDEgMS0uNDUuOWwtNC42MS0yLjNhMi41IDIuNSAwIDEgMSAwLTMuMWw0LjYxLTIuM0EyLjUgMi41IDAgMSAxIDE3IDUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoYXJlQW5kcm9pZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVBbmRyb2lkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiA1LjVhMi41IDIuNSAwIDEgMSAuNTMgMS41NEw3LjkyIDkuMzVhMi41IDIuNSAwIDAgMSAwIDEuM2w0LjYxIDIuM2EyLjUgMi41IDAgMSAxLS40NS45bC00LjYxLTIuM2EyLjUgMi41IDAgMSAxIDAtMy4xbDQuNjEtMi4zQTIuNSAyLjUgMCAwIDEgMTIgNS41Wk0xNC41IDRhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNabTAgOWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pNNCAxMGExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoYXJlQ2xvc2VUcmF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlQ2xvc2VUcmF5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgMTZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINFptNi0xMGEuNS41IDAgMCAwLS41LjV2NS44bC0xLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN2wtMS42NSAxLjY0VjYuNUEuNS41IDAgMCAwIDEwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZUNsb3NlVHJheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVDbG9zZVRyYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDZhLjUuNSAwIDAgMC0uNS41djUuOGwtMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdsLTEuNjUgMS42NFY2LjVBLjUuNSAwIDAgMCAxMCA2Wm0tOCA4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhabTIgMWExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcmVJb3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVJb3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMjkgMi4wNmEuNzUuNzUgMCAwIDAtLjgyLjE2TDUuMjIgNi40N2EuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDIuOTctMi45N3Y3LjY5YS43NS43NSAwIDAgMCAxLjUgMFY0LjU2bDIuOTcgMi45N2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC00LjI1LTQuMjVhLjc1Ljc1IDAgMCAwLS4yNC0uMTZaTTMuNzUgOWMuNDEgMCAuNzUuMzQuNzUuNzV2NGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YS43NS43NSAwIDAgMSAxLjUgMHY0YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTcuNUEzLjI1IDMuMjUgMCAwIDEgMyAxMy43NXYtNGMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcmVJb3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlSW9zUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4zNSAyLjE1YS41LjUgMCAwIDAtLjcgMGwtNC41IDQuNWEuNS41IDAgMSAwIC43LjdMOS41IDMuNzF2OC43OWEuNS41IDAgMCAwIDEgMFYzLjdsMy42NSAzLjY1YS41LjUgMCAwIDAgLjctLjdsLTQuNS00LjVaTTQgOS41YS41LjUgMCAwIDAtMSAwVjE0YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjkuNWEuNS41IDAgMCAwLTEgMFYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMzEgMTEuOTZhLjQuNCAwIDAgMCAuMTkuMDRjLjEzIDAgLjI1LS4wNS4zNS0uMTRsNC0zLjkxYS41LjUgMCAwIDAgLjAxLS43MWwtNC00LjA5YS41MS41MSAwIDAgMC0uNTUtLjExLjQ5LjQ5IDAgMCAwLS4zMS40NnYxLjc2Yy01LjkzLjMyLTYgNi4xOC02IDYuMjQgMCAuMTkuMTEuMzcuMjguNDUuMTcuMDguMzguMDYuNTMtLjA2bC4wMS0uMDFjLjItLjE1IDIuNTItMS45IDUuMTgtMi4xMXYxLjczYzAgLjIuMTIuMzguMzEuNDZaTTEwIDQuNWEuNS41IDAgMCAwLS41LS41SDhhMyAzIDAgMCAwLTMgM3Y1YTMgMyAwIDAgMCAzIDNoNWEzIDMgMCAwIDAgMi45Ni0yLjVjLjA0LS4yNy0uMTgtLjUtLjQ2LS41cy0uNS4yMy0uNTYuNUEyIDIgMCAwIDEgMTMgMTRIOGEyIDIgMCAwIDEtMi0yVjdjMC0xLjEuOS0yIDItMmgxLjVhLjUuNSAwIDAgMCAuNS0uNVpNNCA3di0uMjRBMyAzIDAgMCAwIDMgOXYzYTUgNSAwIDAgMCA1IDVoM2EzIDMgMCAwIDAgMi4yNC0xSDhhNCA0IDAgMCAxLTQtNFY3WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcmVNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuMzEgMTEuOTZhLjQuNCAwIDAgMCAuMTkuMDRjLjEzIDAgLjI1LS4wNS4zNS0uMTRsNC0zLjkxYS41LjUgMCAwIDAgLjAxLS43MWwtNC00LjA5YS41MS41MSAwIDAgMC0uNTUtLjExLjQ5LjQ5IDAgMCAwLS4zMS40NnYxLjc2Yy01LjkzLjMyLTYgNi4xOC02IDYuMjQgMCAuMTkuMTEuMzcuMjguNDUuMTcuMDguMzguMDYuNTMtLjA2bC4wMS0uMDFjLjItLjE1IDIuNTItMS45IDUuMTgtMi4xMXYxLjczYzAgLjIuMTIuMzguMzEuNDZaTTE0IDUuNzVWNC43MmwyLjc5IDIuODZMMTQgMTAuMzFWOS4yNWEuNS41IDAgMCAwLS41LS41Yy0yLjIzIDAtNC4yNSAxLjAyLTUuMzggMS43Mi4zMS0xLjU0IDEuNDMtNC4yMiA1LjM4LTQuMjJhLjUuNSAwIDAgMCAuNS0uNVpNMTAgNC41YS41LjUgMCAwIDAtLjUtLjVIOGEzIDMgMCAwIDAtMyAzdjVhMyAzIDAgMCAwIDMgM2g1YTMgMyAwIDAgMCAyLjk2LTIuNWMuMDQtLjI3LS4xOC0uNS0uNDYtLjVzLS41LjIzLS41Ni41QTIgMiAwIDAgMSAxMyAxNEg4YTIgMiAwIDAgMS0yLTJWN2MwLTEuMS45LTIgMi0yaDEuNWEuNS41IDAgMCAwIC41LS41Wk00IDd2LS4yNEEzIDMgMCAwIDAgMyA5djNhNSA1IDAgMCAwIDUgNWgzYTMgMyAwIDAgMCAyLjI0LTFIOGE0IDQgMCAwIDEtNC00VjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFyZVNjcmVlblBlcnNvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDRhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoNi4wNWEyLjUgMi41IDAgMCAxIDIuMjItMS45OUEyLjk5IDIuOTkgMCAwIDEgMTUuNSA5YTMgMyAwIDAgMSAyLjUgMS4zNFY3YTMgMyAwIDAgMC0zLTNINVptMTIuNSA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVTY3JlZW5QZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNzUgNEEyLjc1IDIuNzUgMCAwIDAgMiA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAxNmg2LjNjLjA3LS4zNy4yMy0uNy40NS0xSDQuNzVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjV2LTYuNUMzIDUuNzggMy43OCA1IDQuNzUgNWgxMC41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjkuNGMuNC4yMy43NC41NiAxIC45NFY2Ljc1QTIuNzUgMi43NSAwIDAgMCAxNS4yNSA0SDQuNzVabTEyLjc1IDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoYXJlU2NyZWVuUGVyc29uT3ZlcmxheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFyZVNjcmVlblBlcnNvbk92ZXJsYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA3YTMgMyAwIDAgMSAzLTNoMTBhMyAzIDAgMCAxIDMgM3YzLjM0YTMgMyAwIDEgMC00LjczIDMuNjdjLTEuMS4xLTIgLjkyLTIuMjIgMS45OUg1YTMgMyAwIDAgMS0zLTNWN1ptMiAwdjNhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMVptMTMuNSA1YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblBlcnNvbk92ZXJsYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlU2NyZWVuUGVyc29uT3ZlcmxheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXYzLjZjLS4yNi0uNC0uNi0uNzItMS0uOTVWNi43NUMxNyA1Ljc4IDE2LjIyIDUgMTUuMjUgNUg0Ljc1QzMuNzggNSAzIDUuNzggMyA2Ljc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2Ljc1Yy0uMjIuMy0uMzguNjMtLjQ1IDFoLTYuM0EyLjc1IDIuNzUgMCAwIDEgMiAxMy4yNXYtNi41Wk0xNS41IDE0YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptMCA1YzIuNSAwIDMuNS0xLjI1IDMuNS0yLjUgMC0uODMtLjY3LTEuNS0xLjUtMS41aC00Yy0uODMgMC0xLjUuNjctMS41IDEuNSAwIDEuMjUgMSAyLjUgMy41IDIuNVpNNSA2YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoYXJlU2NyZWVuUGVyc29uT3ZlcmxheUluc2lkZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFyZVNjcmVlblBlcnNvbk92ZXJsYXlJbnNpZGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA3YTMgMyAwIDAgMSAzLTNoMTBhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjdabTMtMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDVabTEwIDEuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMFpNMTIgMTBhMSAxIDAgMCAwLTEgMXYxYzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblBlcnNvbk92ZXJsYXlJbnNpZGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlU2NyZWVuUGVyc29uT3ZlcmxheUluc2lkZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNSA5YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0xMSAxMWExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtMVpNNSA2YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFINVptLS4yNS0yQTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDEwLjVBMi43NSAyLjc1IDAgMCAwIDE4IDEzLjI1di02LjVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNMyA2Ljc1QzMgNS43OCAzLjc4IDUgNC43NSA1aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ni41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg0Ljc1QzMuNzggMTUgMyAxNC4yMiAzIDEzLjI1di02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblBlcnNvblBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVTY3JlZW5QZXJzb25QRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgN2EzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2My4zNGEzIDMgMCAxIDAtNC43MyAzLjY3Yy0xLjEuMS0yIC45Mi0yLjIyIDEuOTlINWEzIDMgMCAwIDEtMy0zVjdabTQgLjV2NWEuNS41IDAgMCAwIDEgMFYxMWgxYTIgMiAwIDEgMCAwLTRINi41YS41LjUgMCAwIDAtLjUuNVpNNyAxMGgxYTEgMSAwIDAgMCAwLTJIN3YyWm0xMC41IDJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoYXJlU2NyZWVuUGVyc29uUFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hhcmVTY3JlZW5QZXJzb25QUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djMuNmMtLjI2LS40LS42LS43Mi0xLS45NVY2Ljc1QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVDMy43OCA1IDMgNS43OCAzIDYuNzV2Ni41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDYuNzVjLS4yMi4zLS4zOC42My0uNDUgMWgtNi4zQTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1di02LjVaTTE1LjUgMTRhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDVjMi41IDAgMy41LTEuMjUgMy41LTIuNSAwLS44My0uNjctMS41LTEuNS0xLjVoLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4yNSAxIDIuNSAzLjUgMi41Wm0tOS0xMmEuNS41IDAgMCAwLS41LjV2NWEuNS41IDAgMCAwIDEgMFYxMWgxYTIgMiAwIDEgMCAwLTRINi41Wk04IDEwSDdWOGgxYTEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblN0YXJ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlU2NyZWVuU3RhcnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRabTYgMTBhLjUuNSAwIDAgMS0uNS0uNVY3LjdMNy44NSA5LjM2YS41LjUgMCAxIDEtLjctLjdsMi41LTIuNWMuMi0uMi41LS4yLjcgMGwyLjUgMi41YS41LjUgMCAwIDEtLjcuN0wxMC41IDcuNzF2NS43OWEuNS41IDAgMCAxLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblN0YXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGFyZVNjcmVlblN0YXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxNGEuNS41IDAgMCAxLS41LS41VjcuN0w3Ljg1IDkuMzZhLjUuNSAwIDEgMS0uNy0uN2wyLjUtMi41Yy4yLS4yLjUtLjIuNyAwbDIuNSAyLjVhLjUuNSAwIDAgMS0uNy43TDEwLjUgNy43MXY1Ljc5YS41LjUgMCAwIDEtLjUuNVpNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgU2hhcmVTY3JlZW5TdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlU2NyZWVuU3RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xMVptMi42NSAzLjE1Yy4yLS4yLjUtLjIuNyAwTDEwIDkuMjlsMi4xNS0yLjE0YS41LjUgMCAwIDEgLjcuN0wxMC43MSAxMGwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEwIDEwLjcxbC0yLjE1IDIuMTRhLjUuNSAwIDAgMS0uNy0uN0w5LjI5IDEwIDcuMTUgNy44NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGFyZVNjcmVlblN0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoYXJlU2NyZWVuU3RvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4xNSA3LjE1Yy4yLS4yLjUtLjIuNyAwTDEwIDkuMjlsMi4xNS0yLjE0YS41LjUgMCAwIDEgLjcuN0wxMC43MSAxMGwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEwIDEwLjcxbC0yLjE1IDIuMTRhLjUuNSAwIDAgMS0uNy0uN0w5LjI5IDEwIDcuMTUgNy44NWEuNS41IDAgMCAxIDAtLjdaTTIgNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFBMi41IDIuNSAwIDAgMSAxOCA2LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wk00LjUgNUMzLjY3IDUgMyA1LjY3IDMgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNzIgMi4wOGEuNS41IDAgMCAxIC41NiAwYzEuOTQgMS4zIDQuMDMgMi4xIDYuMyAyLjQzQS41LjUgMCAwIDEgMTcgNXY0LjVjMCAzLjktMi4zIDYuNzMtNi44MiA4LjQ3YS41LjUgMCAwIDEtLjM2IDBDNS4zMSAxNi4yMyAzIDEzLjM5IDMgOS41VjVhLjUuNSAwIDAgMSAuNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDAgNi4zLTIuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS43MiAyLjA4YS41LjUgMCAwIDEgLjU2IDBjMS45NCAxLjMgNC4wMyAyLjEgNi4zIDIuNDNBLjUuNSAwIDAgMSAxNyA1djQuNWMwIDMuOS0yLjMgNi43My02LjgyIDguNDdhLjUuNSAwIDAgMS0uMzYgMEM1LjMxIDE2LjIzIDMgMTMuMzkgMyA5LjVWNWEuNS41IDAgMCAxIC40My0uNSAxNS4wNSAxNS4wNSAwIDAgMCA2LjMtMi40MlpNOS42IDMuMzVBMTUuOTcgMTUuOTcgMCAwIDEgNCA1LjQzVjkuNWMwIDMuNCAxLjk3IDUuODYgNiA3LjQ2IDQuMDMtMS42IDYtNC4wNyA2LTcuNDZWNS40M2ExNS45NyAxNS45NyAwIDAgMS01LjYtMi4wOEwxMCAzLjFsLS40LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC42YTUuNSA1LjUgMCAwIDAtNi43OCA4LjM1bC0uMDQuMDJhLjUuNSAwIDAgMS0uMzYgMEM1LjMxIDE2LjIzIDMgMTMuMzkgMyA5LjVWNWEuNS41IDAgMCAxIC40My0uNSAxNS4wNSAxNS4wNSAwIDAgMCA2LjMtMi40MlpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC42Yy0uMzItLjE2LS42NS0uMy0xLS40VjUuNDRhMTUuOTcgMTUuOTcgMCAwIDEtNS42LTIuMDhMMTAgMy4xbC0uNC4yNUExNS45NyAxNS45NyAwIDAgMSA0IDUuNDNWOS41YzAgMy4yNCAxLjggNS42NCA1LjQ4IDcuMjUuMi40My40NC44NC43NCAxLjJsLS4wNC4wMmEuNS41IDAgMCAxLS4zNiAwQzUuMzEgMTYuMjMgMyAxMy4zOSAzIDkuNVY1YS41LjUgMCAwIDEgLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAwIDYuMy0yLjQyWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkQmFkZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkQmFkZ2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA1YTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDZWOWMzLjIzIDAgMy43NS0uODMgNC4xMS0xLjQzLjItLjMyLjM2LS41Ny44OS0uNTdzLjY5LjI1Ljg5LjU3Yy4yLjMyLjQzLjcgMS4xMSAxVjdhMiAyIDAgMCAwLTItMkg0Wm0xMC41MyAzLjgzdi4wMmExLjYzIDEuNjMgMCAwIDEtLjQ1LjVjLS40LjMtMS4xNy42NS0yLjU4LjY1YS41LjUgMCAwIDAtLjUuNXYyYzAgMS4wMy4xMyAyLjE0LjcgMy4xMi41NiAxIDEuNTUgMS44MiAzLjE0IDIuMzUuMS4wNC4yMi4wNC4zMiAwYTUuMzUgNS4zNSAwIDAgMCAzLjE1LTIuMzVjLjU2LS45OC42OS0yLjA5LjY5LTMuMTJ2LTJhLjUuNSAwIDAgMC0uNS0uNWMtMS40MSAwLTIuMTgtLjM1LTIuNTctLjY1YTEuNjMgMS42MyAwIDAgMS0uNDYtLjUyLjUuNSAwIDAgMC0uOTQgMFptLjk0IDB2LjAxWm0tLjk0IDB2LjAxWlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkQmFkZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZEJhZGdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDdjMC0xLjEuOS0yIDItMmgxMWEyIDIgMCAwIDEgMiAydjEuNTdhMi4xMSAyLjExIDAgMCAxLTEtLjgyVjdhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDZ2MUg0YTIgMiAwIDAgMS0yLTJWN1ptMTIuNTMgMS44M2EuNS41IDAgMCAxIC45NS4wMiAxLjYzIDEuNjMgMCAwIDAgLjQ1LjVjLjQuMyAxLjE2LjY1IDIuNTcuNjUuMjggMCAuNS4yMi41LjV2MmMwIDEuMDMtLjEzIDIuMTQtLjcgMy4xMmE1LjM1IDUuMzUgMCAwIDEtMy4xNCAyLjM1LjUuNSAwIDAgMS0uMzIgMCA1LjM1IDUuMzUgMCAwIDEtMy4xNS0yLjM1QTYuMTkgNi4xOSAwIDAgMSAxMSAxMi41di0yYS41LjUgMCAwIDEgLjUtLjVjMS40MSAwIDIuMTgtLjM1IDIuNTctLjY1YTEuNjMgMS42MyAwIDAgMCAuNDYtLjUyWm0uOTQgMHYuMDFabTAgMFptLS45NCAwdi4wMVptLjE1IDEuMzJjLS41NC40LTEuMzguNzYtMi42OC44NHYxLjUxYzAgLjk3LjEyIDEuODYuNTYgMi42M0E0LjI3IDQuMjcgMCAwIDAgMTUgMTYuOTdhNC4yNyA0LjI3IDAgMCAwIDIuNDQtMS44NGMuNDQtLjc3LjU2LTEuNjYuNTYtMi42M3YtMS41MWE0LjgxIDQuODEgMCAwIDEtMi42OC0uODRMMTUgOS44N2MtLjEuMDktLjIuMTktLjMyLjI4Wm0tLjE1LTEuMzJcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZENoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS43MiAyLjA4YS41LjUgMCAwIDEgLjU2IDBjMS45NCAxLjMgNC4wMyAyLjEgNi4zIDIuNDNBLjUuNSAwIDAgMSAxNyA1djQuNmE1LjUgNS41IDAgMCAwLTYuNzggOC4zNWwtLjA0LjAyYS41LjUgMCAwIDEtLjM2IDBDNS4zMSAxNi4yMyAzIDEzLjM5IDMgOS41VjVhLjUuNSAwIDAgMSAuNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDAgNi4zLTIuNDJaTTE5IDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS0yLjE1LTEuODVjLjIuMi4yLjUgMCAuN2wtMyAzYS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAwIDEgLjctLjdsLjY1LjY0IDIuNjUtMi42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC42Yy0uMzItLjE2LS42NS0uMy0xLS40VjUuNDRhMTUuOTcgMTUuOTcgMCAwIDEtNS42LTIuMDhMMTAgMy4xbC0uNC4yNUExNS45NyAxNS45NyAwIDAgMSA0IDUuNDNWOS41YzAgMy4yNCAxLjggNS42NCA1LjQ4IDcuMjUuMi40My40NC44NC43NCAxLjJsLS4wNC4wMmEuNS41IDAgMCAxLS4zNiAwQzUuMzEgMTYuMjMgMyAxMy4zOSAzIDkuNVY1YS41LjUgMCAwIDEgLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAwIDYuMy0yLjQyWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZERpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4yOCAyLjA4YzEuOTQgMS4zIDQuMDMgMi4xIDYuMyAyLjQzQS41LjUgMCAwIDEgMTcgNXY0LjVjMCAzLjktMi4zIDYuNzMtNi44MiA4LjQ3YS41LjUgMCAwIDEtLjM2IDBDNS4zMSAxNi4yMyAzIDEzLjM5IDMgOS41VjVhLjUuNSAwIDAgMSAuNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDAgNi4zLTIuNDIuNS41IDAgMCAxIC41NSAwWk04LjAzIDYuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNkw4Ljk0IDEwbC0xLjk3IDEuOTdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxMCAxMS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMS4wNiAxMGwxLjk3LTEuOTdhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwxMCA4Ljk0IDguMDMgNi45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZERpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZERpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuODUgNy4xNWEuNS41IDAgMSAwLS43LjdMOS4yOSAxMGwtMi4xNCAyLjE1YS41LjUgMCAwIDAgLjcuN0wxMCAxMC43MWwyLjE1IDIuMTRhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMGwyLjE0LTIuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMCA5LjI5IDcuODUgNy4xNVptMi40My01LjA3YS41LjUgMCAwIDAtLjU2IDAgMTUuMDUgMTUuMDUgMCAwIDEtNi4zIDIuNDNBLjUuNSAwIDAgMCAzIDV2NC41YzAgMy45IDIuMyA2LjczIDYuODIgOC40N2EuNS41IDAgMCAwIC4zNiAwQzE0LjY5IDE2LjIzIDE3IDEzLjM5IDE3IDkuNVY1YS41LjUgMCAwIDAtLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAxLTYuMy0yLjQyWk00IDUuNDNhMTUuOTcgMTUuOTcgMCAwIDAgNS42LTIuMDhsLjQtLjI1LjQuMjVBMTUuOTcgMTUuOTcgMCAwIDAgMTYgNS40M1Y5LjVjMCAzLjQtMS45NyA1Ljg2LTYgNy40Ni00LjAzLTEuNi02LTQuMDctNi03LjQ2VjUuNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGREaXNtaXNzU2hpZWxkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZERpc21pc3NTaGllbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMjggMi4wOGEuNS41IDAgMCAwLS41NiAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMyAyLjQzQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuOSAyLjMgNi43MyA2LjgyIDguNDdhLjUuNSAwIDAgMCAuMzYgMGMuMzQtLjE0LjY4LS4yNyAxLS40MmE1LjgyIDUuODIgMCAwIDEtLjY2LTEuMTYgNy4wNSA3LjA1IDAgMCAxLS41Mi0yLjVWMTEuMDVsLTEuOTcgMS45N2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDguOTQgMTAgNi45NyA4LjAzYS43NS43NSAwIDAgMSAxLjA2LTEuMDZMMTAgOC45NGwxLjk3LTEuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMS42NCAxLjY0aC4wMWMuOSAwIDEuNzYtLjM3IDIuNi0xLjI0YTEuMzkgMS4zOSAwIDAgMSAyIDAgNS4wNiA1LjA2IDAgMCAwIDEgLjhWNWEuNS41IDAgMCAwLS40My0uNSAxNS4wNSAxNS4wNSAwIDAgMS02LjMtMi40MlpNMTcgMTAuMzVhNC42MyA0LjYzIDAgMCAxLTEtLjU5Yy0uMjQtLjE4LS40OC0uNC0uNzItLjY0YS4zOS4zOSAwIDAgMC0uNTYgMCA0LjUgNC41IDAgMCAxLTMuMzIgMS41NS40LjQgMCAwIDAtLjQuNDF2Mi43N2MuMDMuOC4xOCAxLjUxLjQ0IDIuMTVBNC44MSA0LjgxIDAgMCAwIDEzIDE4Yy41Mi40IDEuMTUuNzMgMS44Ny45OC4wOS4wMy4xNy4wMy4yNiAwIDIuNTYtLjg5IDMuODctMi43MSAzLjg3LTUuNFYxMWEuNC40IDAgMCAwLS40LS4zMyA0LjI0IDQuMjQgMCAwIDEtMS42LS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZERpc21pc3NTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZERpc21pc3NTaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjI4IDIuMDhhLjUuNSAwIDAgMC0uNTYgMCAxNS4wNSAxNS4wNSAwIDAgMS02LjMgMi40M0EuNS41IDAgMCAwIDMgNXY0LjVjMCAzLjkgMi4zIDYuNzMgNi44MiA4LjQ3YS41LjUgMCAwIDAgLjM2IDBjLjM0LS4xNC42OC0uMjcgMS0uNDItLjItLjI3LS4zOC0uNTYtLjUyLS44Ni0uMjEuMS0uNDMuMTgtLjY2LjI3LTQuMDMtMS42LTYtNC4wNy02LTcuNDZWNS40M2ExNS45NyAxNS45NyAwIDAgMCA1LjYtMi4wOGwuNC0uMjUuNC4yNUExNS45NyAxNS45NyAwIDAgMCAxNiA1LjQzdjNhNS4wNiA1LjA2IDAgMCAwIDEgLjhWNWEuNS41IDAgMCAwLS40My0uNSAxNS4wNSAxNS4wNSAwIDAgMS02LjMtMi40MlptLS4yNCA4LjY3Yy4xMS0uNDcuNDYtLjg3Ljk0LTEuMDJsMS44Ny0xLjg4YS41LjUgMCAwIDAtLjctLjdMMTAgOS4yOSA3Ljg1IDcuMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTIuMTQgMi4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsLjA0LjA0Wm02Ljk2LS40YTQuNjMgNC42MyAwIDAgMS0xLS41OWMtLjI0LS4xOC0uNDgtLjQtLjcyLS42NGEuMzkuMzkgMCAwIDAtLjU2IDAgNC41IDQuNSAwIDAgMS0zLjMyIDEuNTUuNC40IDAgMCAwLS40LjQxdjIuNzdjLjAzLjguMTggMS41MS40NCAyLjE1QTQuODEgNC44MSAwIDAgMCAxMyAxOGMuNTIuNCAxLjE1LjczIDEuODcuOTguMDkuMDMuMTcuMDMuMjYgMCAyLjU2LS44OSAzLjg3LTIuNzEgMy44Ny01LjRWMTFhLjQuNCAwIDAgMC0uNC0uMzMgNC4yNCA0LjI0IDAgMCAxLTEuNi0uMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRFcnJvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRFcnJvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC41YzAgMy45LTIuMyA2LjczLTYuODIgOC40N2EuNS41IDAgMCAxLS4zNiAwQzUuMzEgMTYuMjMgMyAxMy4zOSAzIDkuNVY1YS41LjUgMCAwIDEgLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAwIDYuMy0yLjQyWk0xMCA2YS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwdi01QS41LjUgMCAwIDAgMTAgNlptMCA4LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkRXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZEVycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA2Yy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVabTAgOC41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOS43MiAyLjA4YS41LjUgMCAwIDEgLjU2IDBjMS45NCAxLjMgNC4wMyAyLjEgNi4zIDIuNDNBLjUuNSAwIDAgMSAxNyA1djQuNWMwIDMuOS0yLjMgNi43My02LjgyIDguNDdhLjUuNSAwIDAgMS0uMzYgMEM1LjMxIDE2LjIzIDMgMTMuMzkgMyA5LjVWNWEuNS41IDAgMCAxIC40My0uNSAxNS4wNSAxNS4wNSAwIDAgMCA2LjMtMi40MlpNOS42IDMuMzVBMTUuOTcgMTUuOTcgMCAwIDEgNCA1LjQzVjkuNWMwIDMuNCAxLjk3IDUuODYgNiA3LjQ2IDQuMDMtMS42IDYtNC4wNyA2LTcuNDZWNS40M2ExNS45NyAxNS45NyAwIDAgMS01LjYtMi4wOEwxMCAzLjFsLS40LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkR2xvYmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkR2xvYmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMjggMi4wOGEuNS41IDAgMCAwLS41NiAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMyAyLjQzQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuOSAyLjMgNi43MyA2LjgyIDguNDdhLjUuNSAwIDAgMCAuMzYgMEMxNC42OSAxNi4yMyAxNyAxMy4zOSAxNyA5LjVWNWEuNS41IDAgMCAwLS40My0uNSAxNS4wNSAxNS4wNSAwIDAgMS02LjMtMi40MlptMi42OCA4LjQyYTMgMyAwIDAgMS0xLjQzIDIuMDhjLjI0LS41Ny40LTEuMy40NS0yLjA4aC45OFptMC0xYTMgMyAwIDAgMC0xLjQzLTIuMDhjLjI0LjU3LjQgMS4zLjQ1IDIuMDhoLjk4Wm0tMS45OCAwYTUuMTMgNS4xMyAwIDAgMC0uNDYtMS44OCAxLjcyIDEuNzIgMCAwIDAtLjM5LS41NC40My40MyAwIDAgMC0uMTItLjA4LjAzLjAzIDAgMCAwLS4wMiAwaC0uMDFhLjQzLjQzIDAgMCAwLS4xMS4wOGMtLjExLjA5LS4yNS4yNi0uMzkuNTQtLjIzLjQ2LS40IDEuMTEtLjQ2IDEuODhoMS45NlptLTEuOTYgMWMuMDUuNzcuMjMgMS40Mi40NiAxLjg4LjE0LjI4LjI4LjQ1LjM5LjU0YS40Mi40MiAwIDAgMCAuMTIuMDguMDMuMDMgMCAwIDAgLjAyIDBoLjAxYy4wMi0uMDEuMDYtLjAzLjExLS4wOC4xMS0uMDkuMjUtLjI2LjM5LS41NC4yMy0uNDYuNC0xLjExLjQ2LTEuODhIOS4wMlptLTEgMGMuMDQuNzkuMiAxLjUuNDUgMi4wOGEzIDMgMCAwIDEtMS40My0yLjA4aC45OFptMC0xYy4wNC0uNzkuMi0xLjUuNDUtMi4wOEEzIDMgMCAwIDAgNy4wNCA5LjVoLjk4Wk0xNCAxMGE0IDQgMCAxIDEtOCAwIDQgNCAwIDAgMSA4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRHbG9iZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkR2xvYmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjI4IDIuMDhhLjUuNSAwIDAgMC0uNTYgMCAxNS4wNSAxNS4wNSAwIDAgMS02LjMgMi40M0EuNS41IDAgMCAwIDMgNXY0LjVjMCAzLjkgMi4zIDYuNzMgNi44MiA4LjQ3YS41LjUgMCAwIDAgLjM2IDBDMTQuNjkgMTYuMjMgMTcgMTMuMzkgMTcgOS41VjVhLjUuNSAwIDAgMC0uNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDEtNi4zLTIuNDJaTTQgNS40M2ExNS45NyAxNS45NyAwIDAgMCA1LjYtMi4wOGwuNC0uMjUuNC4yNUExNS45NyAxNS45NyAwIDAgMCAxNiA1LjQzVjkuNWMwIDMuNC0xLjk3IDUuODYtNiA3LjQ2LTQuMDMtMS42LTYtNC4wNy02LTcuNDZWNS40M1ptOC45NiA1LjA3aC0uOThjLS4wNC43OS0uMiAxLjUtLjQ1IDIuMDhhMyAzIDAgMCAwIDEuNDMtMi4wOFptMC0xYTMgMyAwIDAgMC0xLjQzLTIuMDhjLjI0LjU3LjQgMS4zLjQ1IDIuMDhoLjk4Wm0tMS45OCAwYTUuMTMgNS4xMyAwIDAgMC0uNDYtMS44OCAxLjcyIDEuNzIgMCAwIDAtLjM5LS41NC40My40MyAwIDAgMC0uMTItLjA4LjAzLjAzIDAgMCAwLS4wMiAwaC0uMDFhLjQzLjQzIDAgMCAwLS4xMS4wOGMtLjExLjA5LS4yNS4yNi0uMzkuNTQtLjIzLjQ2LS40IDEuMTEtLjQ2IDEuODhoMS45NlptLTEuOTYgMWMuMDUuNzcuMjMgMS40Mi40NiAxLjg4LjE0LjI4LjI4LjQ1LjM5LjU0YS40Mi40MiAwIDAgMCAuMTIuMDguMDMuMDMgMCAwIDAgLjAyIDBoLjAxYy4wMi0uMDEuMDYtLjAzLjExLS4wOC4xMS0uMDkuMjUtLjI2LjM5LS41NC4yMy0uNDYuNC0xLjExLjQ2LTEuODhIOS4wMlptLTEgMGgtLjk4YTMgMyAwIDAgMCAxLjQzIDIuMDhjLS4yNC0uNTctLjQtMS4zLS40NS0yLjA4Wm0wLTFjLjA0LS43OS4yLTEuNS40NS0yLjA4QTMgMyAwIDAgMCA3LjA0IDkuNWguOThaTTE0IDEwYTQgNCAwIDEgMS04IDAgNCA0IDAgMCAxIDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZEtleWhvbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkS2V5aG9sZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4yOCAyLjA4YS41LjUgMCAwIDAtLjU2IDAgMTUuMDUgMTUuMDUgMCAwIDEtNi4zIDIuNDNBLjUuNSAwIDAgMCAzIDV2NC41YzAgMy45IDIuMyA2LjczIDYuODIgOC40N2EuNS41IDAgMCAwIC4zNiAwQzE0LjY5IDE2LjIzIDE3IDEzLjM5IDE3IDkuNVY1YS41LjUgMCAwIDAtLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAxLTYuMy0yLjQyWk0xMS41IDljMCAuNjUtLjQyIDEuMi0xIDEuNDF2Mi4wOWEuNS41IDAgMCAxLTEgMHYtMi4wOWExLjUgMS41IDAgMSAxIDItMS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZEtleWhvbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZEtleWhvbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgOWMwIC42NS0uNDIgMS4yLTEgMS40MXYyLjA5YS41LjUgMCAwIDEtMSAwdi0yLjA5YTEuNSAxLjUgMCAxIDEgMi0xLjQxWm0tMS4yMi02LjkyYS41LjUgMCAwIDAtLjU2IDAgMTUuMDUgMTUuMDUgMCAwIDEtNi4zIDIuNDNBLjUuNSAwIDAgMCAzIDV2NC41YzAgMy45IDIuMyA2LjczIDYuODIgOC40N2EuNS41IDAgMCAwIC4zNiAwQzE0LjY5IDE2LjIzIDE3IDEzLjM5IDE3IDkuNVY1YS41LjUgMCAwIDAtLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAxLTYuMy0yLjQyWk00IDUuNDNhMTUuOTcgMTUuOTcgMCAwIDAgNS42LTIuMDhsLjQtLjI1LjQuMjVBMTUuOTcgMTUuOTcgMCAwIDAgMTYgNS40M1Y5LjVjMCAzLjQtMS45NyA1Ljg2LTYgNy40Ni00LjAzLTEuNi02LTQuMDctNi03LjQ2VjUuNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRMb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZExvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNSAxMnYtMWEyIDIgMCAxIDEgNCAwdjFoLjVhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaC41Wm0xLTF2MWgydi0xYTEgMSAwIDEgMC0yIDBabTEuNzUgNGEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC4zNEEzIDMgMCAwIDAgMTEuNSAxMXYuMDZBMiAyIDAgMCAwIDEwIDEzdjRhMiAyIDAgMCAwIC4yNC45NGwtLjA2LjAzYS41LjUgMCAwIDEtLjM2IDBDNS4zMSAxNi4yMyAzIDEzLjM5IDMgOS41VjVhLjUuNSAwIDAgMSAuNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDAgNi4zLTIuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRMb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRMb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC4zNGMtLjI2LS4zOC0uNi0uNy0xLS45NFY1LjQzYTE1Ljk3IDE1Ljk3IDAgMCAxLTUuNi0yLjA4TDEwIDMuMWwtLjQuMjVBMTUuOTcgMTUuOTcgMCAwIDEgNCA1LjQzVjkuNWMwIDMuNCAxLjk3IDUuODYgNiA3LjQ2VjE3YTIgMiAwIDAgMCAuMjQuOTRsLS4wNi4wM2EuNS41IDAgMCAxLS4zNiAwQzUuMzEgMTYuMjMgMyAxMy4zOSAzIDkuNVY1YS41LjUgMCAwIDEgLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAwIDYuMy0yLjQyWk0xMi41IDEydi0xYTIgMiAwIDEgMSA0IDB2MWguNWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoLjVabTEtMXYxaDJ2LTFhMSAxIDAgMSAwLTIgMFptMS43NSA0YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjI4IDIuMDhhLjUuNSAwIDAgMC0uNTYgMCAxNS4wNSAxNS4wNSAwIDAgMS02LjMgMi40M0EuNS41IDAgMCAwIDMgNXY0LjVjMCAzLjkgMi4zIDYuNzMgNi44MiA4LjQ3YS41LjUgMCAwIDAgLjM2IDBDMTQuNjkgMTYuMjMgMTcgMTMuMzkgMTcgOS41VjVhLjUuNSAwIDAgMC0uNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDEtNi4zLTIuNDJaTTEwIDkuNWEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRabTAgNWMtMi41IDAtMy41LTEuMjUtMy41LTIuNSAwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41IDAgMS4yNC0xIDIuNS0zLjUgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkUGVyc29uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDkuNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAgNWMyLjUgMCAzLjUtMS4yNiAzLjUtMi41IDAtLjgzLS42Ny0xLjUtMS41LTEuNUg4Yy0uODMgMC0xLjUuNjctMS41IDEuNSAwIDEuMjUgMSAyLjUgMy41IDIuNVptLjI4LTEyLjQyYS41LjUgMCAwIDAtLjU2IDAgMTUuMDUgMTUuMDUgMCAwIDEtNi4zIDIuNDNBLjUuNSAwIDAgMCAzIDV2NC41YzAgMy45IDIuMyA2LjczIDYuODIgOC40N2EuNS41IDAgMCAwIC4zNiAwQzE0LjY5IDE2LjIzIDE3IDEzLjM5IDE3IDkuNVY1YS41LjUgMCAwIDAtLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAxLTYuMy0yLjQyWk00IDUuNDNhMTUuOTcgMTUuOTcgMCAwIDAgNS42LTIuMDhsLjQtLjI1LjQuMjVBMTUuOTcgMTUuOTcgMCAwIDAgMTYgNS40M1Y5LjVjMCAzLjQtMS45NyA1Ljg2LTYgNy40Ni00LjAzLTEuNi02LTQuMDctNi03LjQ2VjUuNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRQZXJzb25BZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkUGVyc29uQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjI4IDIuMDhhLjUuNSAwIDAgMC0uNTYgMCAxNS4wNSAxNS4wNSAwIDAgMS02LjMgMi40M0EuNS41IDAgMCAwIDMgNXY0LjVjMCAzLjkgMi4zIDYuNzMgNi44MiA4LjQ3YS41LjUgMCAwIDAgLjM2IDBsLjA0LS4wMkE1LjQ4IDUuNDggMCAwIDEgOSAxNC40MmMtMS43Ny0uMjktMi41LTEuMzUtMi41LTIuNDIgMC0uODMuNjctMS41IDEuNS0xLjVoMi43M0E1LjQ4IDUuNDggMCAwIDEgMTcgOS42VjVhLjUuNSAwIDAgMC0uNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDEtNi4zLTIuNDJaTTEwIDkuNWEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRabTkgNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZFBlcnNvbkFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkUGVyc29uQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4yOCAyLjA4YS41LjUgMCAwIDAtLjU2IDAgMTUuMDUgMTUuMDUgMCAwIDEtNi4zIDIuNDNBLjUuNSAwIDAgMCAzIDV2NC41YzAgMy45IDIuMyA2LjczIDYuODIgOC40N2EuNS41IDAgMCAwIC4zNiAwbC4wNC0uMDJhNS41IDUuNSAwIDAgMS0uNzQtMS4yQzUuOCAxNS4xNSA0IDEyLjc1IDQgOS41VjUuNDNhMTUuOTcgMTUuOTcgMCAwIDAgNS42LTIuMDhsLjQtLjI1LjQuMjVBMTUuOTcgMTUuOTcgMCAwIDAgMTYgNS40M1Y5LjJjLjM1LjEuNjguMjMgMSAuMzlWNWEuNS41IDAgMCAwLS40My0uNSAxNS4wNSAxNS4wNSAwIDAgMS02LjMtMi40MlpNOSAxNC40MmE1LjQ4IDUuNDggMCAwIDEgMS43My0zLjkySDhjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4wNy43MyAyLjEzIDIuNSAyLjQyWm0zLTYuOTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm03IDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRQcm9oaWJpdGVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZFByb2hpYml0ZWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMjggMi4wOGEuNS41IDAgMCAwLS41NiAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMyAyLjQzQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuOSAyLjMgNi43MyA2LjgyIDguNDdhLjUuNSAwIDAgMCAuMzYgMGwuMDctLjAzQTUuNSA1LjUgMCAxIDEgMTcgOS4yNlY1YS41LjUgMCAwIDAtLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAxLTYuMy0yLjQyWm0uNDIgMTMuNTIgNC45LTQuOWEzLjUgMy41IDAgMCAwLTQuOSA0LjlabS43LjdhMy41IDMuNSAwIDAgMCA0LjktNC45bC00LjkgNC45Wm0yLjEgMS43YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkUHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZWxkUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuMjggMi4wOGEuNS41IDAgMCAwLS41NiAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMyAyLjQzQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuOSAyLjMgNi43MyA2LjgyIDguNDdhLjUuNSAwIDAgMCAuMzYgMGwuMDctLjAzYy0uNTUtLjQtMS4wMi0uOS0xLjM4LTEuNDhDNS42IDE0Ljg2IDQgMTIuNTYgNCA5LjVWNS40M2ExNS45NyAxNS45NyAwIDAgMCA1LjYtMi4wOGwuNC0uMjUuNC4yNUExNS45NyAxNS45NyAwIDAgMCAxNiA1LjQzVjguNmMuMzYuMTguNy40IDEgLjY2VjVhLjUuNSAwIDAgMC0uNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDEtNi4zLTIuNDJabS40MiAxMy41MiA0LjktNC45YTMuNSAzLjUgMCAwIDAtNC45IDQuOVptLjcuN2EzLjUgMy41IDAgMCAwIDQuOS00LjlsLTQuOSA0LjlabTIuMSAxLjdhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGllbGRRdWVzdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRRdWVzdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjcyIDIuMDhhLjUuNSAwIDAgMSAuNTYgMGMxLjk0IDEuMyA0LjAzIDIuMSA2LjMgMi40M0EuNS41IDAgMCAxIDE3IDV2NC41YzAgMy45LTIuMyA2LjczLTYuODIgOC40N2EuNS41IDAgMCAxLS4zNiAwQzUuMzEgMTYuMjMgMyAxMy4zOSAzIDkuNVY1YS41LjUgMCAwIDEgLjQzLS41IDE1LjA1IDE1LjA1IDAgMCAwIDYuMy0yLjQyWm0xLjAzIDExLjY3YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS0yLTUuNWExLjI1IDEuMjUgMCAxIDEgMi41IDBjMCAuNDYtLjI3Ljc2LS43MyAxLjIybC0uMDMuMDNjLS40Mi40Mi0uOTkuOTktLjk5IDEuOXYuMWEuNS41IDAgMCAwIDEgMHYtLjFjMC0uNDcuMjctLjc3LjczLTEuMjJsLjAzLS4wNGMuNDItLjQxLjk5LS45OC45OS0xLjg5YTIuMjUgMi4yNSAwIDAgMC00LjUgMCAuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZFF1ZXN0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRRdWVzdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS43MiAyLjA4YS41LjUgMCAwIDEgLjU2IDBjMS45NCAxLjMgNC4wMyAyLjEgNi4zIDIuNDNBLjUuNSAwIDAgMSAxNyA1djQuNWMwIDMuOS0yLjMgNi43My02LjgyIDguNDdhLjUuNSAwIDAgMS0uMzYgMEM1LjMxIDE2LjIzIDMgMTMuMzkgMyA5LjVWNWEuNS41IDAgMCAxIC40My0uNSAxNS4wNSAxNS4wNSAwIDAgMCA2LjMtMi40MlpNOS42IDMuMzVBMTUuOTcgMTUuOTcgMCAwIDEgNCA1LjQzVjkuNWMwIDMuNCAxLjk3IDUuODYgNiA3LjQ2IDQuMDMtMS42IDYtNC4wNyA2LTcuNDZWNS40M2ExNS45NyAxNS45NyAwIDAgMS01LjYtMi4wOEwxMCAzLjFsLS40LjI1Wm0xLjE1IDEwLjRhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLTItNS41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMGMwIC40Ni0uMjcuNzYtLjczIDEuMjJsLS4wMy4wM2MtLjQyLjQyLS45OS45OS0uOTkgMS45di4xYS41LjUgMCAwIDAgMSAwdi0uMWMwLS40Ny4yNy0uNzcuNzMtMS4yMmwuMDMtLjA0Yy40Mi0uNDEuOTktLjk4Ljk5LTEuODlhMi4yNSAyLjI1IDAgMCAwLTQuNSAwIC41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZWxkVGFza0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGllbGRUYXNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjI4IDIuMDhhLjUuNSAwIDAgMC0uNTYgMCAxNS4wNSAxNS4wNSAwIDAgMS02LjMgMi40M0EuNS41IDAgMCAwIDMgNXY0LjVjMCAzLjkgMi4zIDYuNzMgNi44MiA4LjQ3YS41LjUgMCAwIDAgLjM2IDBDMTQuNjkgMTYuMjMgMTcgMTMuMzkgMTcgOS41VjVhLjUuNSAwIDAgMC0uNDMtLjUgMTUuMDUgMTUuMDUgMCAwIDEtNi4zLTIuNDJabTMuNTcgNS43Ny00IDRhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDEgMSAuNy0uN2wxLjY1IDEuNjQgMy42NS0zLjY0YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWVsZFRhc2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWVsZFRhc2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjg1IDcuODVhLjUuNSAwIDAgMC0uNy0uN0w5LjUgMTAuNzkgNy44NSA5LjE1YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNFptLTMuNTctNS43N2EuNS41IDAgMCAwLS41NiAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMyAyLjQzQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuOSAyLjMgNi43MyA2LjgyIDguNDdhLjUuNSAwIDAgMCAuMzYgMEMxNC42OSAxNi4yMyAxNyAxMy4zOSAxNyA5LjVWNWEuNS41IDAgMCAwLS40My0uNSAxNS4wNSAxNS4wNSAwIDAgMS02LjMtMi40MlpNNCA1LjQzYTE1Ljk3IDE1Ljk3IDAgMCAwIDUuNi0yLjA4bC40LS4yNS40LjI1QTE1Ljk3IDE1Ljk3IDAgMCAwIDE2IDUuNDNWOS41YzAgMy40LTEuOTcgNS44Ni02IDcuNDYtNC4wMy0xLjYtNi00LjA3LTYtNy40NlY1LjQzWlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0c0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm03IC41YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMUgxMFY2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGlmdHNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0c1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNi41YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMUgxMFY2LjVaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGlmdHMzME1pbnV0ZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzMzBNaW51dGVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDdhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVaTTggOGEyIDIgMCAwIDAtMiAydi41YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNVYxMGEyIDIgMCAwIDAtMi0ySDhabS0yLjUgNS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDMuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm04LjA1LTMuNThjLS4xOC4zLS4zLjc3LS4zIDEuMzNzLjEyIDEuMDMuMyAxLjMzYy4xNy4yOC40LjQyLjcuNDIuMyAwIC41My0uMTQuNy0uNDIuMTgtLjMuMy0uNzcuMy0xLjMzYTIuNiAyLjYgMCAwIDAtLjMtMS4zM2MtLjE3LS4yOC0uNC0uNDItLjctLjQyLS4zIDAtLjUzLjE0LS43LjQyWm0tLjg1LS41MmMuMzMtLjUzLjg1LS45IDEuNTUtLjkuNyAwIDEuMjIuMzcgMS41NS45LjMyLjUuNDUgMS4xNy40NSAxLjg1IDAgLjY4LS4xMyAxLjM0LS40NSAxLjg1LS4zMy41My0uODUuOS0xLjU1LjktLjcgMC0xLjIyLS4zNy0xLjU1LS45YTMuNTggMy41OCAwIDAgMS0uNDUtMS44NWMwLS42OC4xMy0xLjM0LjQ1LTEuODVabS00LjE0LjVjLjQ2LS4zNi44My0uNDMgMS4wOC0uNC4yNS4wNS40NC4yLjU0LjM3LjEuMTcuMDkuMzUgMCAuNDgtLjA4LjE0LS4zMi4zNS0uOS40YS41LjUgMCAwIDAgMCAxYy42LjA1LjgyLjI1LjkuMzcuMDkuMTMuMS4zMSAwIC41LS4xLjE4LS4zLjMzLS41NS4zNy0uMjUuMDQtLjYxLS4wMi0xLjA3LS4zOGEuNS41IDAgMSAwLS42Mi43OGMuNjIuNSAxLjI2LjY4IDEuODUuNi41Ny0uMSAxLjAyLS40NSAxLjI2LS45YTEuNDcgMS40NyAwIDAgMC0uMzMtMS44NSAxLjQ3IDEuNDcgMCAwIDAgLjMzLTEuODZjLS4yNC0uNDQtLjctLjc4LTEuMjctLjg2YTIuNCAyLjQgMCAwIDAtMS44NC42LjUuNSAwIDAgMCAuNjIuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGlmdHMzME1pbnV0ZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0czMwTWludXRlc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDQuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMTAgMmEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVptLTMgOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYuNWEuNS41IDAgMCAwIDEgMFYxMGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYuNWEuNS41IDAgMCAwIDEgMFYxMFptLTEuNSAzLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUgMy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTguMDUtMy41OGMtLjE4LjMtLjMuNzctLjMgMS4zM3MuMTIgMS4wMy4zIDEuMzNjLjE3LjI4LjQuNDIuNy40Mi4zIDAgLjUzLS4xNC43LS40Mi4xOC0uMy4zLS43Ny4zLTEuMzNhMi42IDIuNiAwIDAgMC0uMy0xLjMzYy0uMTctLjI4LS40LS40Mi0uNy0uNDItLjMgMC0uNTMuMTQtLjcuNDJabS0uODUtLjUyYy4zMy0uNTMuODUtLjkgMS41NS0uOS43IDAgMS4yMi4zNyAxLjU1LjkuMzIuNS40NSAxLjE3LjQ1IDEuODUgMCAuNjgtLjEzIDEuMzQtLjQ1IDEuODUtLjMzLjUzLS44NS45LTEuNTUuOS0uNyAwLTEuMjItLjM3LTEuNTUtLjlhMy41OCAzLjU4IDAgMCAxLS40NS0xLjg1YzAtLjY4LjEzLTEuMzQuNDUtMS44NVptLTQuMTQuNWMuNDYtLjM2LjgzLS40MyAxLjA4LS40LjI1LjA1LjQ0LjIuNTQuMzcuMS4xNy4wOS4zNSAwIC40OC0uMDguMTQtLjMyLjM1LS45LjRhLjUuNSAwIDAgMCAwIDFjLjYuMDUuODIuMjUuOS4zNy4wOS4xMy4xLjMxIDAgLjUtLjEuMTgtLjMuMzMtLjU1LjM3LS4yNS4wNC0uNjEtLjAyLTEuMDctLjM4YS41LjUgMCAxIDAtLjYyLjc4Yy42Mi41IDEuMjYuNjggMS44NS42LjU3LS4xIDEuMDItLjQ1IDEuMjYtLjlhMS40NyAxLjQ3IDAgMCAwLS4zMy0xLjg1IDEuNDcgMS40NyAwIDAgMCAuMzMtMS44NmMtLjI0LS40NC0uNy0uNzgtMS4yNy0uODZhMi40IDIuNCAwIDAgMC0xLjg0LjYuNS41IDAgMCAwIC42Mi43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c0FjdGl2aXR5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0c0FjdGl2aXR5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDIuN2EuNzUuNzUgMCAwIDEtLjY3LjgzIDYuNSA2LjUgMCAxIDAgNy4xNCA3LjE0Ljc1Ljc1IDAgMSAxIDEuNS4xNiA4IDggMCAxIDEtOC44LTguOGMuNDItLjA0Ljc5LjI2LjgzLjY4Wm0xLjAyLS4wNmMuMS0uNC41LS42NS45LS41NS4zOC4wOS43NS4yIDEuMS4zNWEuNzUuNzUgMCAwIDEtLjU1IDEuMzkgNi41NSA2LjU1IDAgMCAwLS45LS4yOS43NS43NSAwIDAgMS0uNTUtLjlabTYuNTQgNC4zM2EuNzUuNzUgMCAwIDAtMS4zOS41NmMuMTIuMjkuMjEuNTkuMjguOWEuNzUuNzUgMCAxIDAgMS40Ni0uMzVjLS4wOS0uMzgtLjItLjc1LS4zNS0xLjFaTTE0LjMgMy45M2EuNzUuNzUgMCAwIDEgMS4wNi0uMDhjLjMuMjcuNi41Ni44Ni44N2EuNzUuNzUgMCAwIDEtMS4xNS45NyA2LjY1IDYuNjUgMCAwIDAtLjctLjcuNzUuNzUgMCAwIDEtLjA3LTEuMDZaTTEwIDUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjVjMCAuNDEuMzQuNzUuNzUuNzVoM2EuNzUuNzUgMCAxIDAgMC0xLjVIMTBWNS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c0FjdGl2aXR5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNBY3Rpdml0eVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMi40OGEuNS41IDAgMCAxLS40Ni41MyA3IDcgMCAxIDAgNy40NSA3LjQ1LjUuNSAwIDEgMSAxIC4wNyA4IDggMCAxIDEtOC41Mi04LjUxLjUuNSAwIDAgMSAuNTMuNDZabTEgLjA3YS41LjUgMCAwIDEgLjYtLjRjLjU2LjEyIDEuMS4zIDEuNi41MmEuNS41IDAgMSAxLS40LjkxYy0uNDQtLjItLjkxLS4zNC0xLjQtLjQ0YS41LjUgMCAwIDEtLjQtLjU5Wm02LjM0IDQuMjVhLjUuNSAwIDEgMC0uOTIuNGMuMi40NS4zNC45MS40NCAxLjRhLjUuNSAwIDAgMCAuOTgtLjIgNy45NSA3Ljk1IDAgMCAwLS41LTEuNlpNMTQuNCAzLjkyYS41LjUgMCAwIDEgLjctLjA3Yy40LjMzLjc1LjY5IDEuMDggMS4wOGEuNS41IDAgMSAxLS43OC42M2MtLjI4LS4zNC0uNi0uNjYtLjkzLS45NGEuNS41IDAgMCAxLS4wNy0uN1pNMTAgNS41YS41LjUgMCAwIDAtMSAwdjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMSAwIDAtMUgxMFY1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGlmdHNBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjMuNmE1LjUgNS41IDAgMCAxIDcuNCA3LjRIMTRhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptNC41IDNjLjI4IDAgLjUuMjIuNS41VjloMS41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNVptLS41IDguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c0FkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3YzLjZjLjMyLS4xNi42NS0uMyAxLS40VjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0zLjJjLS4xLjM1LS4yNC42OC0uNCAxSDE0YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabS0uNSAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxNGgxLjVhLjUuNSAwIDAgMSAwIDFINnYxLjVhLjUuNSAwIDAgMS0xIDBWMTVIMy41YS41LjUgMCAwIDEgMC0xSDV2LTEuNWMwLS4yOC4yMi0uNS41LS41Wk0xMSA2LjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xSDExVjYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c0F2YWlsYWJpbGl0eUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNBdmFpbGFiaWxpdHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAxMi45MkE3IDcgMCAwIDEgMTIuOTIgNiA2IDYgMCAxIDAgNiAxMi45MlptMy4zNS04LjI3Yy4yLjIuMi41IDAgLjdsLTMgM2EuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNy0uN0w2IDcuMjlsMi42NS0yLjY0Yy4yLS4yLjUtLjIuNyAwWk0xMyAxOWE2IDYgMCAxIDAgMC0xMiA2IDYgMCAwIDAgMCAxMlptLTEuNjUtOC4zNUwxMyAxMi4yOWwxLjY1LTEuNjRhLjUuNSAwIDAgMSAuNy43TDEzLjcxIDEzbDEuNjQgMS42NWEuNS41IDAgMCAxLS43LjdMMTMgMTMuNzFsLTEuNjUgMS42NGEuNS41IDAgMCAxLS43LS43TDEyLjI5IDEzbC0xLjY0LTEuNjVhLjUuNSAwIDAgMSAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c0F2YWlsYWJpbGl0eVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzQXZhaWxhYmlsaXR5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS45MiA2LjA4YTUgNSAwIDEgMC01Ljg0IDUuODRjLS4wNS4zMi0uMDguNjYtLjA4IDFBNiA2IDAgMSAxIDEyLjkyIDZjLS4zNCAwLS42OC4wMy0xIC4wOFptLS41NyA0LjU3YS41LjUgMCAwIDAtLjcuN0wxMi4yOSAxM2wtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN0wxMyAxMy43MWwxLjY1IDEuNjRhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxM2wxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN0wxMyAxMi4yOWwtMS42NS0xLjY0Wk0xMyAxOWE2IDYgMCAxIDAgMC0xMiA2IDYgMCAwIDAgMCAxMlptMC0xYTUgNSAwIDEgMSAwLTEwIDUgNSAwIDAgMSAwIDEwWk05LjM1IDUuMzVhLjUuNSAwIDEgMC0uNy0uN0w2IDcuMjkgNC44NSA2LjE1YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaGlmdHNDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzQ2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNoLTMuNmE1LjQ4IDUuNDggMCAwIDAtLjY2LTZoMi43NmEuNS41IDAgMCAwIDAtMUgxMFY2LjVhLjUuNSAwIDAgMC0xIDB2My43NmE1LjQ4IDUuNDggMCAwIDAtNi0uNjZWNlptNyA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDQuNSAxNS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjMuNmMuMzItLjE2LjY1LS4zIDEtLjRWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuMmMtLjEuMzUtLjI0LjY4LS40IDFIMTRhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptMyA3LjI2Yy4yNy4yMi41Mi40Ny43NC43NGgyLjc2YS41LjUgMCAwIDAgMC0xSDEwVjYuNWEuNS41IDAgMCAwLTEgMHYzLjc2Wm0xIDQuMjRhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDQuNSAxNS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzRGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0c0RheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTMuNCAyLjA0YTEuODIgMS44MiAwIDAgMC0uMzQuNWwtLjAzLjA4YS41LjUgMCAwIDAgLjk0LjM0bC4wMi0uMDUuMTMtLjE3Yy4xMi0uMTEuMy0uMjQuNjUtLjI0LjQgMCAuNjQuMjMuNzUuNTQuMS4zMy4wMy43Mi0uMjQuOTYtLjE1LjE1LS4zNC4yOC0uNTguNDRsLS4wNC4wMmMtLjIyLjE1LS40Ny4zMS0uNy41MUEyLjUyIDIuNTIgMCAwIDAgNiAxMi41YS41LjUgMCAwIDAgLjUuNUg5YS41LjUgMCAwIDAgMC0xSDcuMDdjLjEtLjMyLjI5LS41Ni41NC0uNzcuMTgtLjE1LjM5LS4zLjYyLS40NGwuMDItLjAyYy4yMy0uMTUuNS0uMzMuNzItLjU0LjU4LS41NC43MS0xLjM0LjUtMkExLjc0IDEuNzQgMCAwIDAgNy43NyA3Yy0uNjQgMC0xLjA5LjI2LTEuMzYuNTRaTTExLjUgN2EuNS41IDAgMCAwLS41LjVWMTBhLjUuNSAwIDAgMCAuNS41SDEzdjJhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0xIDB2MmgtMXYtMmEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzRGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNEYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNCA3LjU0Yy4yOC0uMjguNzMtLjU0IDEuMzctLjU0Ljg4IDAgMS40OC41NiAxLjcgMS4yMy4yMS42Ni4wOCAxLjQ2LS41IDItLjIzLjIxLS40OS4zOS0uNzIuNTRsLS4wMi4wMmMtLjIzLjE1LS40NC4yOS0uNjIuNDRhMS42IDEuNiAwIDAgMC0uNTQuNzdIOWEuNS41IDAgMSAxIDAgMUg2LjVhLjUuNSAwIDAgMS0uNS0uNWMwLS45Ny40NC0xLjU5Ljk2LTIuMDMuMjMtLjIuNDgtLjM2LjctLjVsLjA0LS4wM2MuMjQtLjE2LjQzLS4zLjU4LS40NGEuOTMuOTMgMCAwIDAgLjI0LS45Ni43NS43NSAwIDAgMC0uNzUtLjU0Ljg2Ljg2IDAgMCAwLS42NS4yNC44Mi44MiAwIDAgMC0uMTUuMjIuNS41IDAgMCAxLS45NC0uMzRsLjAzLS4wNy4wNy0uMTRjLjA1LS4xLjE1LS4yMy4yOC0uMzdaTTExLjUgN2MuMjggMCAuNS4yMi41LjV2Mmgxdi0yYS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDB2LTJoLTEuNWEuNS41IDAgMCAxLS41LS41VjcuNWMwLS4yOC4yMi0uNS41LS41Wm0tNi00QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41di05WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzT3BlbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNPcGVuRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSA1Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1SDcuNWEuNzUuNzUgMCAwIDAgMC0xLjVINS43NUEyLjc1IDIuNzUgMCAwIDAgMyA1Ljc1djguNUEyLjc1IDIuNzUgMCAwIDAgNS43NSAxN0g3LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDUuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXYtOC41Wm04LTIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNzVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2OC41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUgxMi41YS43NS43NSAwIDAgMCAwIDEuNWgxLjc1QTIuNzUgMi43NSAwIDAgMCAxNyAxNC4yNXYtOC41QTIuNzUgMi43NSAwIDAgMCAxNC4yNSAzSDEyLjVabS0yIDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjQuNWMwIC40MS4zNC43NS43NS43NWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEwLjVWNS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c09wZW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0c09wZW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoMmEuNS41IDAgMCAwIDAtMWgtMkEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoMmEuNS41IDAgMCAwIDAtMWgtMkExLjUgMS41IDAgMCAxIDQgMTQuNXYtOVpNMTIuNSAzYS41LjUgMCAwIDAgMCAxaDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhLjUuNSAwIDAgMCAwIDFoMmEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTJaTTEwIDUuNWEuNS41IDAgMCAwLTEgMHY1YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFIMTBWNS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNQcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNoLTMuNkE1LjUgNS41IDAgMCAwIDMgOS42VjZabTggLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xSDExVjYuNVptLTEwIDhhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVpNNS41IDE4Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOUEzLjUgMy41IDAgMCAxIDUuNSAxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c1Byb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NoaWZ0c1Byb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNoLTMuNmMuMTYtLjMyLjMtLjY1LjQtMUgxNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2My4yYy0uMzUuMS0uNjguMjQtMSAuNFY2Wm03LjUgMGMuMjggMCAuNS4yMi41LjVWOWgxLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVpNNS41IDE4Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOUEzLjUgMy41IDAgMCAxIDUuNSAxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c1F1ZXN0aW9uTWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNRdWVzdGlvbk1hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2My42YTUuNSA1LjUgMCAwIDEgNy40IDcuNEgxNGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm00LjUgM2MuMjggMCAuNS4yMi41LjVWOWgyYS41LjUgMCAwIDEgMCAxaC0yLjVhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41Wm0tLjUgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzUXVlc3Rpb25NYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaGlmdHNRdWVzdGlvbk1hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjMuNmMuMzItLjE2LjY1LS4zIDEtLjRWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuMmMtLjEuMzUtLjI0LjY4LS40IDFIMTRhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptNSAzLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xSDExVjYuNVptLTEgOGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuNSAxLjg4YS42Mi42MiAwIDEgMCAwIDEuMjUuNjIuNjIgMCAwIDAgMC0xLjI1Wm0wLTQuODhjLTEuMDUgMC0xLjg2LjgyLTEuODUgMS45NmEuNS41IDAgMSAwIDEtLjAxYzAtLjU4LjM2LS45NS44NS0uOTUuNDcgMCAuODUuNC44NS45NSAwIC4yLS4wNy4zMi0uMzYuNTVsLS4yNy4yMWMtLjUxLjQtLjcyLjcyLS43MiAxLjI5YS41LjUgMCAwIDAgMSAuMDl2LS4xNmMuMDItLjE0LjEtLjI1LjM1LS40NGwuMjgtLjIyYy41LS40LjcyLS43My43Mi0xLjMyIDAtMS4xLS44Mi0xLjk1LTEuODUtMS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNoaWZ0c1RlYW1GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzVGVhbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzaC0zLjAybC4wMi0uMzhjMC0uOTEtLjU5LTEuNzUtMS40NS0yLjAyYTIuMjUgMi4yNSAwIDAgMC0zLjMxLTMuMDFBMi43NSAyLjc1IDAgMCAwIDMgMTAuMVY2Wm03IC41YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMUgxMFY2LjVabS02LjI1IDhhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVpNNCAxOWMyLjE0IDAgMy0xLjEgMy0yLjE5YTEuMyAxLjMgMCAwIDAtMS4yOS0xLjMxSDIuM0ExLjMgMS4zIDAgMCAwIDEgMTYuODFjMCAxLjEuODYgMi4xOSAzIDIuMTlabTMuNS0uNWgtLjAyYy4zNS0uNTEuNTItMS4xLjUyLTEuNjkgMC0uNDgtLjE1LS45My0uNC0xLjMxaDEuMzNjLjYgMCAxLjA3LjUgMS4wNyAxLjEzIDAgLjkzLS43MSAxLjg3LTIuNSAxLjg3Wm0uMjUtNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hpZnRzVGVhbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hpZnRzVGVhbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNi41YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMUgxMFY2LjVaTTYgM2EzIDMgMCAwIDAtMyAzdjQuMWEyLjc1IDIuNzUgMCAwIDEgMS0uMDlWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuMWEyLjE2IDIuMTYgMCAwIDEgLjA4IDFIMTRhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNMy43NSAxNC41YTEuNzUgMS43NSAwIDEgMCAwLTMuNSAxLjc1IDEuNzUgMCAwIDAgMCAzLjVaTTQgMTljMi4xNCAwIDMtMS4xIDMtMi4xOWExLjMgMS4zIDAgMCAwLTEuMjktMS4zMUgyLjNBMS4zIDEuMyAwIDAgMCAxIDE2LjgxYzAgMS4xLjg2IDIuMTkgMyAyLjE5Wm0zLjUtLjVoLS4wMmMuMzUtLjUxLjUyLTEuMS41Mi0xLjY5IDAtLjQ4LS4xNS0uOTMtLjQtMS4zMWgxLjMzYy42IDAgMS4wNy41IDEuMDcgMS4xMyAwIC45My0uNzEgMS44Ny0yLjUgMS44N1ptLjI1LTRhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQmFnRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNC41VjZINWExIDEgMCAwIDAtMSAxdjhhMi45MyAyLjkzIDAgMCAwIC44OCAyLjEzQTMgMyAwIDAgMCA3IDE4aDQuNzZhMi45OSAyLjk5IDAgMCAxLS43Ni0yVjQuNWEyLjQ4IDIuNDggMCAwIDAtLjMzLTEuMjQgMS40OCAxLjQ4IDAgMCAxIDIuMjEuNjZjLjA4LjE4LjEyLjM3LjEyLjU4VjZoLTF2MTBhMiAyIDAgMSAwIDQgMFY3YTEgMSAwIDAgMC0xLTFoLTFWNC41YTIuNDggMi40OCAwIDAgMC00LTJBMi41NCAyLjU0IDAgMCAwIDguNSAyYTIuNDIgMi40MiAwIDAgMC0xLjc3LjczQTIuNDMgMi40MyAwIDAgMCA2IDQuNVptMSAwYTEuNDggMS40OCAwIDAgMSAuOTEtMS4zOCAxLjQ4IDEuNDggMCAwIDEgMS45Ny44Yy4wOC4xOC4xMi4zNy4xMi41OFY2SDdWNC41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyLjVhMi41IDIuNSAwIDAgMC00IDJWNkg1YTEgMSAwIDAgMC0xIDF2OGEzIDMgMCAwIDAgMyAzaDYuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN2ExIDEgMCAwIDAtMS0xaC0xVjQuNWEyLjUgMi41IDAgMCAwLTQtMlptLTMgMmExLjUgMS41IDAgMSAxIDMgMFY2SDdWNC41Wm0zLjY3LTEuMjVBMS41IDEuNSAwIDAgMSAxMyA0LjVWNmgtMlY0LjVjMC0uNDUtLjEyLS44OC0uMzMtMS4yNVpNNyAxN2EyIDIgMCAwIDEtMi0yVjdoNnY4LjVjMCAuNTYuMTkgMS4wOC41IDEuNUg3Wm04LTEuNWExLjUgMS41IDAgMCAxLTMgMFY3aDN2OC41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hvcHBpbmdCYWdBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxNGgxLjVhLjUuNSAwIDAgMSAwIDFIMTV2MS41YS41LjUgMCAwIDEtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTR2LTEuNWMwLS4yOC4yMi0uNS41LS41Wk02IDZWNC41YTIuNDIgMi40MiAwIDAgMSAuNzMtMS43N0EyLjQzIDIuNDMgMCAwIDEgOC41IDJhMi40MyAyLjQzIDAgMCAxIDEuNS41IDIuNDQgMi40NCAwIDAgMSAyLjQ4LS4zIDIuNTMgMi41MyAwIDAgMSAxLjMyIDEuMzNjLjEzLjMuMi42My4yLjk3VjZoMWExIDEgMCAwIDEgMSAxdjIuMmE1LjUgNS41IDAgMCAwLTQgLjRWNmgxVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDExLjUgM2MtLjMgMC0uNTguMDktLjgzLjI2QTIuNSAyLjUgMCAwIDEgMTEgNC41djUuNzZhNS40OSA1LjQ5IDAgMCAwLS43NCA3Ljc0SDdhMyAzIDAgMCAxLTMtM1Y3YTEgMSAwIDAgMSAxLTFoMVptNCAwVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDguNSAzYTEuNDcgMS40NyAwIDAgMC0xLjA2LjQ0QTEuNDggMS40OCAwIDAgMCA3IDQuNVY2aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTaG9wcGluZ0JhZ0FkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hvcHBpbmdCYWdBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpNMTAgMi41YTIuNSAyLjUgMCAwIDAtNCAyVjZINWExIDEgMCAwIDAtMSAxdjhhMyAzIDAgMCAwIDMgM2gzLjI2YTUuNSA1LjUgMCAwIDEtLjY2LTFIN2EyIDIgMCAwIDEtMi0yVjdoNnYzLjI2Yy4zLS4yNi42NC0uNDggMS0uNjZWN2gzdjIuMDJjLjM0LjAzLjY4LjEgMSAuMTlWN2ExIDEgMCAwIDAtMS0xaC0xVjQuNWEyLjUgMi41IDAgMCAwLTQtMlptLTMgMmExLjUgMS41IDAgMSAxIDMgMFY2SDdWNC41Wm0zLjY3LTEuMjVBMS41IDEuNSAwIDAgMSAxMyA0LjVWNmgtMlY0LjVjMC0uNDUtLjEyLS44OC0uMzMtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQmFnQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnQXJyb3dMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNlY0LjVhMi40MiAyLjQyIDAgMCAxIC43My0xLjc3QTIuNDMgMi40MyAwIDAgMSA4LjUgMmEyLjQzIDIuNDMgMCAwIDEgMS41LjUgMi40NCAyLjQ0IDAgMCAxIDIuNDgtLjMgMi41MyAyLjUzIDAgMCAxIDEuMzIgMS4zM2MuMTMuMy4yLjYzLjIuOTdWNmgxYTEgMSAwIDAgMSAxIDF2Mi4yYTUuNSA1LjUgMCAwIDAtNCAuNFY2aDFWNC41YTEuNDcgMS40NyAwIDAgMC0uNDQtMS4wNkExLjQ4IDEuNDggMCAwIDAgMTEuNSAzYy0uMyAwLS41OC4wOS0uODMuMjZBMi41IDIuNSAwIDAgMSAxMSA0LjV2NS43NmE1LjQ5IDUuNDkgMCAwIDAtLjc0IDcuNzRIN2EzIDMgMCAwIDEtMy0zVjdhMSAxIDAgMCAxIDEtMWgxWm00IDBWNC41YTEuNDcgMS40NyAwIDAgMC0uNDQtMS4wNkExLjQ4IDEuNDggMCAwIDAgOC41IDNhMS40NyAxLjQ3IDAgMCAwLTEuMDYuNDRBMS40OCAxLjQ4IDAgMCAwIDcgNC41VjZoM1ptOSA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS02Ljg1LS4zNWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdBcnJvd0xlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnQXJyb3dMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSA2YTEgMSAwIDAgMSAxIDF2Mi4yYy0uMzItLjA4LS42Ni0uMTUtMS0uMThWN2gtM3YyLjZjLS4zNi4xOC0uNy40LTEgLjY2VjdINXY4YTEuOTggMS45OCAwIDAgMCAxLjIzIDEuODRjLjI0LjEuNS4xNi43Ny4xNmgyLjZjLjE4LjM2LjQuNy42NiAxSDdhMyAzIDAgMCAxLTMtM1Y3YTEgMSAwIDAgMSAxLTFoMVY0LjVhMi40MiAyLjQyIDAgMCAxIC43My0xLjc3QTIuNDMgMi40MyAwIDAgMSA4LjUgMmEyLjQzIDIuNDMgMCAwIDEgMS41LjUgMi40NCAyLjQ0IDAgMCAxIDIuNDgtLjMgMi41MyAyLjUzIDAgMCAxIDEuMzIgMS4zM2MuMTMuMy4yLjYzLjIuOTdWNmgxWm0tMi0xLjVhMS40NyAxLjQ3IDAgMCAwLS40NC0xLjA2QTEuNDggMS40OCAwIDAgMCAxMS41IDNjLS4zIDAtLjU4LjA5LS44My4yNkEyLjUgMi41IDAgMCAxIDExIDQuNVY2aDJWNC41Wk03IDZoM1Y0LjVhMS40NyAxLjQ3IDAgMCAwLS40NC0xLjA2QTEuNDggMS40OCAwIDAgMCA4LjUgM2ExLjQ3IDEuNDcgMCAwIDAtMS4wNi40NEExLjQ4IDEuNDggMCAwIDAgNyA0LjVWNlptNy41IDEzYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tMi4zNi00Ljg1IDItMmEuNS41IDAgMCAxIC43MS43TDEzLjcxIDE0aDIuNzlhLjUuNSAwIDAgMSAwIDFoLTIuOGwxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMS0uMTUtLjM1LjUuNSAwIDAgMSAuMTQtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZWNC41YTIuNDIgMi40MiAwIDAgMSAuNzMtMS43N0EyLjQzIDIuNDMgMCAwIDEgOC41IDJhMi40MyAyLjQzIDAgMCAxIDEuNS41IDIuNDQgMi40NCAwIDAgMSAyLjQ4LS4zIDIuNTMgMi41MyAwIDAgMSAxLjMyIDEuMzNjLjEzLjMuMi42My4yLjk3VjZoMWExIDEgMCAwIDEgMSAxdjIuMmE1LjUgNS41IDAgMCAwLTQgLjRWNmgxVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDExLjUgM2MtLjMgMC0uNTguMDktLjgzLjI2QTIuNSAyLjUgMCAwIDEgMTEgNC41djUuNzZhNS40OSA1LjQ5IDAgMCAwLS43NCA3Ljc0SDdhMyAzIDAgMCAxLTMtM1Y3YTEgMSAwIDAgMSAxLTFoMVptNCAwVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDguNSAzYTEuNDcgMS40NyAwIDAgMC0xLjA2LjQ0QTEuNDggMS40OCAwIDAgMCA3IDQuNVY2aDNabTkgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQmFnRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hvcHBpbmdCYWdEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyLjVhMi41IDIuNSAwIDAgMC00IDJWNkg1YTEgMSAwIDAgMC0xIDF2OGEzIDMgMCAwIDAgMyAzaDMuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg3YTIgMiAwIDAgMS0yLTJWN2g2djMuMjZjLjMtLjI2LjY0LS40OCAxLS42NlY3aDN2Mi4wMmMuMzQuMDMuNjguMSAxIC4xOVY3YTEgMSAwIDAgMC0xLTFoLTFWNC41YTIuNSAyLjUgMCAwIDAtNC0yWm0tMyAyYTEuNSAxLjUgMCAxIDEgMyAwVjZIN1Y0LjVabTMuNjctMS4yNUExLjUgMS41IDAgMCAxIDEzIDQuNVY2aC0yVjQuNWMwLS40NS0uMTItLjg4LS4zMy0xLjI1Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQmFnUGF1c2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hvcHBpbmdCYWdQYXVzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZWNC41YTIuNDIgMi40MiAwIDAgMSAuNzMtMS43N0EyLjQzIDIuNDMgMCAwIDEgOC41IDJhMi40MyAyLjQzIDAgMCAxIDEuNS41IDIuNDQgMi40NCAwIDAgMSAyLjQ4LS4zIDIuNTMgMi41MyAwIDAgMSAxLjMyIDEuMzNjLjEzLjMuMi42My4yLjk3VjZoMWExIDEgMCAwIDEgMSAxdjIuMmE1LjUgNS41IDAgMCAwLTQgLjRWNmgxVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDExLjUgM2MtLjMgMC0uNTguMDktLjgzLjI2QTIuNSAyLjUgMCAwIDEgMTEgNC41djUuNzZhNS40OSA1LjQ5IDAgMCAwLS43NCA3Ljc0SDdhMyAzIDAgMCAxLTMtM1Y3YTEgMSAwIDAgMSAxLTFoMVptNCAwVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDguNSAzYTEuNDcgMS40NyAwIDAgMC0xLjA2LjQ0QTEuNDggMS40OCAwIDAgMCA3IDQuNVY2aDNabTkgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMyAxMmEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLS41LS41Wm0zIDBhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQmFnUGF1c2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnUGF1c2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDIuNWEyLjUgMi41IDAgMCAwLTQgMlY2SDVhMSAxIDAgMCAwLTEgMXY4YTMgMyAwIDAgMCAzIDNoMy4yNmE1LjUgNS41IDAgMCAxLS42Ni0xSDdhMiAyIDAgMCAxLTItMlY3aDZ2My4yNmMuMy0uMjYuNjQtLjQ4IDEtLjY2VjdoM3YyLjAyYy4zNC4wMy42OC4xIDEgLjE5VjdhMSAxIDAgMCAwLTEtMWgtMVY0LjVhMi41IDIuNSAwIDAgMC00LTJabS0zIDJhMS41IDEuNSAwIDEgMSAzIDBWNkg3VjQuNVptMy42Ny0xLjI1QTEuNSAxLjUgMCAwIDEgMTMgNC41VjZoLTJWNC41YzAtLjQ1LS4xMi0uODgtLjMzLTEuMjVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTEzIDEyYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDAgMSAwdi00YS41LjUgMCAwIDAtLjUtLjVabTMgMGEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdQZXJjZW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnUGVyY2VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDQuNVY2SDVhMSAxIDAgMCAwLTEgMXY4YTIuOTMgMi45MyAwIDAgMCAuODggMi4xM0EzIDMgMCAwIDAgNyAxOGgzLjA5YTEuNSAxLjUgMCAwIDEgLjM1LTEuNTZsLjU2LS41NnYtMS4wNWEzIDMgMCAwIDEgMC01LjY2VjQuNWEyLjQ4IDIuNDggMCAwIDAtLjMzLTEuMjQgMS40OCAxLjQ4IDAgMCAxIDIuMjEuNjZjLjA4LjE4LjEyLjM3LjEyLjU4VjZoLTF2M2EzIDMgMCAwIDEgMyAyLjg4bDEtMVY3YTEgMSAwIDAgMC0xLTFoLTFWNC41YTIuNDggMi40OCAwIDAgMC00LTJBMi41NCAyLjU0IDAgMCAwIDguNSAyYTIuNDIgMi40MiAwIDAgMC0xLjc3LjczQTIuNDMgMi40MyAwIDAgMCA2IDQuNVptNCAwVjZIN1Y0LjVhMS40OCAxLjQ4IDAgMCAxIC45MS0xLjM4IDEuNDggMS40OCAwIDAgMSAxLjk3LjhjLjA4LjE4LjEyLjM3LjEyLjU4Wm0yIDkuNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabTUgOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS44NS00LjE1YS41LjUgMCAwIDAtLjctLjdsLTYgNmEuNS41IDAgMCAwIC43LjdsNi02WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdQZXJjZW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaG9wcGluZ0JhZ1BlcmNlbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAyYy41NiAwIDEuMDguMTkgMS41LjVhMi41IDIuNSAwIDAgMSA0IDJWNmgxYTEgMSAwIDAgMSAxIDF2My44OGwtMSAxVjdoLTN2MmEzIDMgMCAwIDAtMSAuMTdWN0g1djhjMCAxLjEuOSAyIDIgMmgzLjA5YTEuNSAxLjUgMCAwIDAgMCAxSDdhMyAzIDAgMCAxLTMtM1Y3YTEgMSAwIDAgMSAxLTFoMVY0LjVBMi41IDIuNSAwIDAgMSA4LjUgMlptMCAxQzcuNjcgMyA3IDMuNjcgNyA0LjVWNmgzVjQuNUMxMCAzLjY3IDkuMzMgMyA4LjUgM1ptMyAwYy0uMyAwLS42LjEtLjgzLjI1LjIuMzcuMzMuOC4zMyAxLjI1VjZoMlY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0uNSAxMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabTUgOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS44NS00LjE1YS41LjUgMCAwIDAtLjctLjdsLTYgNmEuNS41IDAgMCAwIC43LjdsNi02WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdQbGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnUGxheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDQuNVY2SDVhMSAxIDAgMCAwLTEgMXY4YTIuOTMgMi45MyAwIDAgMCAuODggMi4xM0EzIDMgMCAwIDAgNyAxOGgzLjI2YTUuNDggNS40OCAwIDAgMSAuNzQtNy43NFY0LjVhMi40OCAyLjQ4IDAgMCAwLS4zMy0xLjI0IDEuNDggMS40OCAwIDAgMSAyLjIxLjY2Yy4wOC4xOC4xMi4zNy4xMi41OFY2aC0xdjMuNmE1LjQ4IDUuNDggMCAwIDEgNC0uNFY3YTEgMSAwIDAgMC0xLTFoLTFWNC41YTIuNDggMi40OCAwIDAgMC00LTJBMi41NCAyLjU0IDAgMCAwIDguNSAyYTIuNDIgMi40MiAwIDAgMC0xLjc3LjczQTIuNDMgMi40MyAwIDAgMCA2IDQuNVpNMTAgNkg3VjQuNWExLjQ4IDEuNDggMCAwIDEgLjkxLTEuMzggMS40OCAxLjQ4IDAgMCAxIDEuOTcuOGMuMDguMTguMTIuMzcuMTIuNThWNlptNC41IDEzYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjc0LTYuNTVjLjEgMCAuMTguMDMuMjYuMDhsMi4zIDEuNTFjLjA3LjA1LjEyLjEuMTYuMThhLjU0LjU0IDAgMCAxLS4wMy41NC40Ni40NiAwIDAgMS0uMTMuMTNsLTIuMyAxLjU3YS41NC41NCAwIDAgMS0uMTIuMDYuNDUuNDUgMCAwIDEtLjMyLS4wMi41Ny41NyAwIDAgMS0uMTYtLjEuNS41IDAgMCAxLS4xNC0uMzZ2LTMuMDhhLjUxLjUxIDAgMCAxIC4zLS40Ni40NC40NCAwIDAgMSAuMTgtLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdQbGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaG9wcGluZ0JhZ1BsYXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1IDZhMSAxIDAgMCAxIDEgMXYyLjJjLS4zMi0uMDgtLjY2LS4xNS0xLS4xOFY3aC0zdjIuNmMtLjM2LjE4LS43LjQtMSAuNjZWN0g1djhhMS45OCAxLjk4IDAgMCAwIDEuMjMgMS44NGMuMjQuMS41LjE2Ljc3LjE2aDIuNmMuMTguMzYuNC43LjY2IDFIN2EzIDMgMCAwIDEtMy0zVjdhMSAxIDAgMCAxIDEtMWgxVjQuNWEyLjQyIDIuNDIgMCAwIDEgLjczLTEuNzdBMi40MyAyLjQzIDAgMCAxIDguNSAyYTIuNDMgMi40MyAwIDAgMSAxLjUuNSAyLjQ0IDIuNDQgMCAwIDEgMi40OC0uMyAyLjUzIDIuNTMgMCAwIDEgMS4zMiAxLjMzYy4xMy4zLjIuNjMuMi45N1Y2aDFabS0yLTEuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDExLjUgM2MtLjMgMC0uNTguMDktLjgzLjI2QTIuNSAyLjUgMCAwIDEgMTEgNC41VjZoMlY0LjVaTTcgNmgzVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDguNSAzYTEuNDcgMS40NyAwIDAgMC0xLjA2LjQ0QTEuNDggMS40OCAwIDAgMCA3IDQuNVY2Wm0xMiA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljk4LTEuOTdhLjQ1LjQ1IDAgMCAwLS40NS0uMDMuNS41IDAgMCAwLS4xNS4xLjUxLjUxIDAgMCAwLS4xNC4zNnYzLjA4YS41LjUgMCAwIDAgLjE0LjM1LjQ1LjQ1IDAgMCAwIC41Mi4xMi41NC41NCAwIDAgMCAuMDktLjA1bDIuMy0xLjU3YS40Ni40NiAwIDAgMCAuMTYtLjE4LjU0LjU0IDAgMCAwIDAtLjQ5LjQ5LjQ5IDAgMCAwLS4xNy0uMThsLTIuMy0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaG9wcGluZ0JhZ1RhZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaG9wcGluZ0JhZ1RhZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZWNC41YTIuNDIgMi40MiAwIDAgMSAuNzMtMS43N0EyLjQzIDIuNDMgMCAwIDEgOC41IDJhMi40MyAyLjQzIDAgMCAxIDEuNS41IDIuNDQgMi40NCAwIDAgMSAyLjQ4LS4zIDIuNTMgMi41MyAwIDAgMSAxLjMyIDEuMzNjLjEzLjMuMi42My4yLjk3VjZoMWExIDEgMCAwIDEgMSAxdjIuNmEyLjUgMi41IDAgMCAwLTEuNjItLjZIMTJWNmgxVjQuNWExLjQ3IDEuNDcgMCAwIDAtLjQ0LTEuMDZBMS40OCAxLjQ4IDAgMCAwIDExLjUgM2MtLjMgMC0uNTguMDktLjgzLjI2QTIuNSAyLjUgMCAwIDEgMTEgNC41djQuNTVjLTEuMTQuMjQtMiAxLjI1LTIgMi40NnYyLjg4YzAgLjY2LjI2IDEuMjkuNzIgMS43NkwxMS41MyAxOEg3YTMgMyAwIDAgMS0zLTNWN2ExIDEgMCAwIDEgMS0xaDFabTQgMFY0LjVhMS40NyAxLjQ3IDAgMCAwLS40NC0xLjA2QTEuNDggMS40OCAwIDAgMCA4LjUgM2ExLjQ3IDEuNDcgMCAwIDAtMS4wNi40NEExLjQ4IDEuNDggMCAwIDAgNyA0LjVWNmgzWm0uNDMgOS40NWExLjUxIDEuNTEgMCAwIDEtLjQzLTEuMDZ2LTIuODhjMC0uODMuNjgtMS41MSAxLjUxLTEuNTFoMi44N2MuNCAwIC44LjE2IDEuMDcuNDVsMy4xMSAzLjE0Yy42LjYuNTggMS41Ny0uMDIgMi4xNWwtMi45NSAyLjg0YTEuNSAxLjUgMCAwIDEtMi4xMi0uMDNsLTMuMDQtMy4xWm0xLjU3LTIuN2EuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgU2hvcHBpbmdCYWdUYWdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3BwaW5nQmFnVGFnUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyLjVhMi41IDIuNSAwIDAgMC00IDJWNkg1YTEgMSAwIDAgMC0xIDF2OGEzIDMgMCAwIDAgMyAzaDQuNTNsLS45OC0xSDdhMiAyIDAgMCAxLTItMlY3aDZ2Mi4wNWMuMTYtLjAzLjM0LS4wNS41MS0uMDVIMTJWN2gzdjIuMDhjLjM3LjA5LjcuMjcgMSAuNTFWN2ExIDEgMCAwIDAtMS0xaC0xVjQuNWEyLjUgMi41IDAgMCAwLTQtMlptLTMgMmExLjUgMS41IDAgMSAxIDMgMFY2SDdWNC41Wm0zLjY3LTEuMjVBMS41IDEuNSAwIDAgMSAxMyA0LjVWNmgtMlY0LjVjMC0uNDUtLjEyLS44OC0uMzMtMS4yNVptLS4yNCAxMi4yYTEuNTEgMS41MSAwIDAgMS0uNDMtMS4wNnYtMi44OGMwLS44My42OC0xLjUxIDEuNTEtMS41MWgyLjg3Yy40IDAgLjguMTYgMS4wNy40NWwzLjExIDMuMTRjLjYuNi41OCAxLjU3LS4wMiAyLjE1bC0yLjk1IDIuODRhMS41IDEuNSAwIDAgMS0yLjEyLS4wM2wtMy4wNC0zLjFabTEuNTctMi43YS43NS43NSAwIDEgMCAxLjUgMCAuNzUuNzUgMCAwIDAtMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTaG9ydHBpY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hvcnRwaWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAwIDAtMUg3VjNoLjVhLjUuNSAwIDAgMCAwLTFIN1ptMi41IDBhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVptMyAwYS41LjUgMCAwIDAgMCAxaC41djJoLS41YS41LjUgMCAwIDAgMCAxaC41YTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xaC0uNVptLTMgM2EuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWm0tNSAyYy4yOCAwIC41LjIyLjUuNXY4YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di04YS41LjUgMCAwIDEgMSAwdjhhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgNCAxNS41di04YzAtLjI4LjIyLS41LjUtLjVaTTcgMTJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFIN1pNNiA4YTEgMSAwIDAgMSAxLTFoLjVhLjUuNSAwIDAgMSAwIDFIN3YyaC41YS41LjUgMCAwIDEgMCAxSDdhMSAxIDAgMCAxLTEtMVY4Wm0zLS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm0zIDBjMC0uMjguMjItLjUuNS0uNWguNWExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtLjVhLjUuNSAwIDAgMSAwLTFoLjVWOGgtLjVhLjUuNSAwIDAgMS0uNS0uNVptLTMgM2MwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3J0cGlja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2hvcnRwaWNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoLjVhLjUuNSAwIDAgMCAwLTFIN1YzaC41YS41LjUgMCAwIDAgMC0xSDdabTIuNSAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTMgMGEuNS41IDAgMCAwIDAgMWguNXYyaC0uNWEuNS41IDAgMCAwIDAgMWguNWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtLjVabS0zIDNhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpNNSA3LjVhLjUuNSAwIDAgMC0xIDB2OEEyLjUgMi41IDAgMCAwIDYuNSAxOGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOGEuNS41IDAgMCAwLTEgMHY4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTUuNXYtOFpNNyAxMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMUg3Wm0wIDFoNnYySDd2LTJaTTYgOGExIDEgMCAwIDEgMS0xaC41YS41LjUgMCAwIDEgMCAxSDd2MmguNWEuNS41IDAgMCAxIDAgMUg3YTEgMSAwIDAgMS0xLTFWOFptMy0uNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptMyAwYzAtLjI4LjIyLS41LjUtLjVoLjVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLS41YS41LjUgMCAwIDEgMC0xaC41VjhoLS41YS41LjUgMCAwIDEtLjUtLjVabS0zIDNjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTaG93ZXJoZWFkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3dlcmhlYWRGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTUuNDggMi40Mi0xLjcgMS43YTcuMDMgNy4wMyAwIDAgMSAyLjA2IDIuMDJsMS42OC0xLjY4YTEuNDQgMS40NCAwIDEgMC0yLjA0LTIuMDRaTTQuODUgMTEuODVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgLjcuN2wyLTJabTIgMmEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAuNy43bDItMlptMiAxLjNjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwWm00Ljg2LS44YTEuNDYgMS40NiAwIDAgMC0uMTgtLjIyTDUuODcgNi40N2ExLjQ1IDEuNDUgMCAwIDAtMi4wNSAyLjA1bDcuNjYgNy42NmExLjQ1IDEuNDUgMCAwIDAgMi4yMy0xLjgyWk02LjU4IDUuNzhhMi40NiAyLjQ2IDAgMCAwLS40NS0uMzYgNiA2IDAgMCAxIDguNDYgOC40NmMtLjEtLjE2LS4yMi0uMy0uMzUtLjQ0TDYuNTggNS43N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNob3dlcmhlYWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nob3dlcmhlYWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjQzIDIuNTdhMS45NCAxLjk0IDAgMCAwLTIuNzQgMEwxMi42NSA0LjZ2LjAxYTYgNiAwIDAgMC02Ljc2IDEuMDIgMS45MSAxLjkxIDAgMCAwLTEuNzQgMy4yMmw3IDdhMS45MSAxLjkxIDAgMCAwIDMuMjMtMS43NCA2IDYgMCAwIDAgMS4wMS02Ljc2bDIuMDQtMi4wM2MuNzYtLjc2Ljc2LTIgMC0yLjc1Wm0tMi41NyAzLjlhNi4wNSA2LjA1IDAgMCAwLTEuMzQtMS4zM2wxLjg4LTEuODZhLjk0Ljk0IDAgMSAxIDEuMzMgMS4zM2wtMS44NyAxLjg3Wm0tOC4wMi0uMzRhNSA1IDAgMCAxIDcuMDMgNy4wM2wtLjAxLS4wMS03LTctLjAyLS4wMlptLS43Mi43IDcuMDUgNy4wNWEuOTEuOTEgMCAwIDEtMS4zMSAxLjI3bC03LTdhLjkxLjkxIDAgMCAxIDEuMjYtMS4zMlptLjczIDYuMzJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwWm0tMi0xLjNhLjUuNSAwIDEgMC0uNy0uN2wtMiAyYS41LjUgMCAxIDAgLjcuN2wyLTJabTQgMy4zYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNpZGViYXJTZWFyY2hMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2lkZWJhclNlYXJjaEx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTIuNTlhMS41IDEuNSAwIDAgMC0uMzUtLjU2bC0yLTJBNC40OSA0LjQ5IDAgMCAwIDUuNSA4Yy0uOTMgMC0xLjc4LjI4LTIuNS43NlY1LjVabTEwIDF2N2EuNS41IDAgMCAwIDEgMHYtN2EuNS41IDAgMCAwLTEgMFptLTQgNmMwIC43OS0uMjYgMS41MS0uNyAyLjFsMi41NSAyLjU1YS41LjUgMCAwIDEtLjcuN0w3LjYgMTUuM0EzLjUgMy41IDAgMSAxIDkgMTIuNVptLTEgMGEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNpZGViYXJTZWFyY2hMdHJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NpZGViYXJTZWFyY2hMdHJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMi41OWExLjUgMS41IDAgMCAwLS4zNS0uNTZsLS40NC0uNDRoMy4zOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2Mi43NmMtLjM2LjEyLS43LjMtMSAuNVY1LjVabTUuMyA5LjFhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMCAwIC43LS43TDguMyAxNC42Wm0tMi44LjRhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVabTgtOWEuNS41IDAgMCAwLS41LjV2N2EuNS41IDAgMCAwIDEgMHYtN2EuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2lkZWJhclNlYXJjaFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaWRlYmFyU2VhcmNoUnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY3YTQuNSA0LjUgMCAxIDAtNC41IDQuNWgtN0EyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptMyAxdjdhLjUuNSAwIDAgMCAxIDB2LTdhLjUuNSAwIDAgMC0xIDBabTEwIDZjMCAuNzktLjI2IDEuNTEtLjcgMi4xbDIuNTUgMi41NWEuNS41IDAgMCAxLS43LjdMMTQuNiAxNS4zYTMuNSAzLjUgMCAxIDEgMS40LTIuOFptLTEgMGEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNpZGViYXJTZWFyY2hSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NpZGViYXJTZWFyY2hSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY3YzAtMS4wNy0uMzctMi4wNi0xLTIuODNWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoNC4xN2MuNzcuNjMgMS43NiAxIDIuODMgMWgtN0EyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptMyAxYS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTdabTEwIDZjMCAuNzktLjI2IDEuNTEtLjcgMi4xbDIuNTUgMi41NWEuNS41IDAgMCAxLS43LjdMMTQuNiAxNS4zYTMuNSAzLjUgMCAxIDEgMS40LTIuOFptLTEgMGEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNpZ25PdXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2lnbk91dEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSAzLjVhLjUuNSAwIDAgMC0uNTgtLjVsLTcgMS4wOGEuNS41IDAgMCAwLS40Mi40OXYxMC44NmMwIC4yNS4xOC40Ni40Mi41bDcgMS4wN2EuNS41IDAgMCAwIC41OC0uNVYxMGg1LjE3bC0xIC44N2EuNS41IDAgMCAwIC42Ni43NmwyLTEuNzVhLjUuNSAwIDAgMCAwLS43NmwtMi0xLjc1YS41LjUgMCAxIDAtLjY1Ljc2bDEgLjg3SDExVjMuNVptLTIuNSA3Ljc1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptNCA0Ljc1SDEydi01aDF2NC41YS41LjUgMCAwIDEtLjUuNVpNMTIgOFY0aC41Yy4yOCAwIC41LjIyLjUuNVY4aC0xWlwiXSk7XG5leHBvcnQgY29uc3QgU2lnbk91dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2lnbk91dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDExLjI1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTEgMy41YS41LjUgMCAwIDAtLjU4LS41bC03IDEuMDhhLjUuNSAwIDAgMC0uNDIuNDl2MTAuODZjMCAuMjUuMTguNDYuNDIuNWw3IDEuMDdhLjUuNSAwIDAgMCAuNTgtLjVWMTBoNS4xN2wtMSAuODdhLjUuNSAwIDAgMCAuNjYuNzZsMi0xLjc1YS41LjUgMCAwIDAgMC0uNzZsLTItMS43NWEuNS41IDAgMSAwLS42NS43NmwxIC44N0gxMVYzLjVabS0xIC41OHYxMS44NEw0IDE1VjVsNi0uOTJaTTEyLjUgMTZIMTJ2LTVoMXY0LjVhLjUuNSAwIDAgMS0uNS41Wk0xMiA4VjRoLjVjLjI4IDAgLjUuMjIuNS41VjhoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTaWduYXR1cmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2lnbmF0dXJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjAyIDIuNzdhMi40NCAyLjQ0IDAgMSAxIDMuNDYgMy40NkwxNC4yIDcuNWwuMDguMDlhMiAyIDAgMCAxIDAgMi44MmwtMS40NCAxLjQ0YS41LjUgMCAwIDEtLjctLjdsMS40NC0xLjQ0YTEgMSAwIDAgMCAwLTEuNDJsLS4wOS0uMDgtNi42NSA2LjY0YS41LjUgMCAwIDEtLjIzLjE0bC00IDFhLjUuNSAwIDAgMS0uNi0uNjVsMS4yNi0zLjc1YS41LjUgMCAwIDEgLjEyLS4ybDguNjItOC42MlpNMy4yNyAxNi45Yy0uMDIgMC0uMDQtLjAyLS4wNS0uMDNsMS4zNS0uMzRjLjUzLjI3IDEuMTguNDcgMS45My40Ny41IDAgMS4wMS0uMTggMS41My0uNDcuNTMtLjMgMS4wMy0uNyAxLjUzLTEuMWwuMTMtLjExYy40NC0uMzYuOS0uNzQgMS4zNC0xIC40Ny0uMjcgMS4wNC0uNDkgMS42My0uMy44Mi4yOCAxLjA4IDEuMDQgMS4zMiAxLjg0LjA1LjE4LjE1LjM2LjI2LjQ5LjExLjEyLjIuMTUuMjYuMTUuMTkgMCAuNDYtLjEuOC0uM2E5LjQzIDkuNDMgMCAwIDAgLjkzLS42MiA1LjYgNS42IDAgMCAxIDEuMS0uNTVoLjAzbC4xNC40Ny0uMTQtLjQ4YS41LjUgMCAwIDEgLjI4Ljk2IDIuNzQgMi43NCAwIDAgMC0uMjEuMDggNC42IDQuNiAwIDAgMC0uOTIuNTRsLS43LjQ2YTIuNyAyLjcgMCAwIDEtMS4zMS40NGMtLjQ0IDAtLjc4LS4yMy0xLS40OWEyLjMzIDIuMzMgMCAwIDEtLjQ4LS44N2MtLjI2LS44Ny0uNDEtMS4wOC0uNjgtMS4xNy0uMTYtLjA1LS40LS4wMi0uOC4yMi0uMzcuMjEtLjc3LjU0LTEuMjMuOTJsLS4xMi4xYy0uNS40LTEuMDYuODQtMS42NiAxLjE5LS42LjM0LTEuMjkuNi0yLjAzLjZhNS40OSA1LjQ5IDAgMCAxLTMuMjMtMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgU2lnbmF0dXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaWduYXR1cmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjAyIDIuNzdhMi40NCAyLjQ0IDAgMSAxIDMuNDYgMy40NkwxNC4yIDcuNWwuMDguMDlhMiAyIDAgMCAxIDAgMi44MmwtMS40NCAxLjQ0YS41LjUgMCAwIDEtLjctLjdsMS40NC0xLjQ0YTEgMSAwIDAgMCAwLTEuNDJsLS4wOS0uMDgtNi42NSA2LjY0YS41LjUgMCAwIDEtLjIzLjE0bC00IDFhLjUuNSAwIDAgMS0uNi0uNjVsMS4yNi0zLjc1YS41LjUgMCAwIDEgLjEyLS4ybDguNjItOC42MlptMi43NS43YTEuNDQgMS40NCAwIDAgMC0yLjA0IDBsLTguNTQgOC41NS0uOTMgMi43NyAyLjk4LS43NCA4LjUzLTguNTNjLjU3LS41Ni41Ny0xLjQ4IDAtMi4wNFpNMy4yMiAxNi44OGwuMDUuMDNDNCAxNy40NCA1LjEgMTggNi41IDE4Yy43NCAwIDEuNDItLjI2IDIuMDMtLjYuNi0uMzUgMS4xNi0uOCAxLjY2LTEuMmwuMTItLjFjLjQ2LS4zNy44Ni0uNyAxLjIzLS45MS40LS4yNC42NC0uMjcuOC0uMjIuMjcuMS40Mi4zLjY4IDEuMTcuMDkuMy4yNC42MS40Ny44Ny4yMy4yNi41Ny40OSAxLjAxLjQ5LjQ3IDAgLjk0LS4yMyAxLjMtLjQ0YTEyLjYxIDEyLjYxIDAgMCAwIC45Ny0uNjQgNC42IDQuNiAwIDAgMSAuODItLjQybC4wNC0uMDJoLjAxYS41LjUgMCAwIDAtLjI4LS45NmgtLjAxbC0uMDIuMDFhMi4zNSAyLjM1IDAgMCAwLS4zMS4xMmMtLjIuMDktLjQ3LjIyLS44LjQzbC0uMzMuMjNjLS4xOS4xMy0uMzguMjYtLjYuMzktLjMzLjItLjYuMy0uNzkuMy0uMDYgMC0uMTUtLjAzLS4yNi0uMTUtLjExLS4xMy0uMi0uMzEtLjI2LS41LS4yNC0uOC0uNS0xLjU1LTEuMzItMS44Mi0uNTktLjItMS4xNi4wMi0xLjYzLjMtLjQ0LjI1LS45LjYzLTEuMzQuOTlsLS4xMy4xYy0uNS40MS0xIC44LTEuNTMgMS4xLS41Mi4zLTEuMDIuNDgtMS41My40OC0uNzUgMC0xLjQtLjItMS45My0uNDdsLTEuMzUuMzRaTTE3LjUgMTUuNWwtLjE0LS40OC4xNC40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNpbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaW1GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA1YTMgMyAwIDAgMSAzLTNoMy40NmEzIDMgMCAwIDEgMi4xMy44OGwyLjUzIDIuNTNBMyAzIDAgMCAxIDE2IDcuNTRWMTVhMyAzIDAgMCAxLTMgM0g3YTMgMyAwIDAgMS0zLTNWNVptMyA1LjV2LjVoM1Y5SDguNUM3LjY3IDkgNyA5LjY3IDcgMTAuNVpNNyAxMnYxLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTB2LTNIN1ptNC41IDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMXY2aC41WlwiXSk7XG5leHBvcnQgY29uc3QgU2ltUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTaW1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSA5aDNjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTNBMS41IDEuNSAwIDAgMSA3IDEzLjV2LTNDNyA5LjY3IDcuNjcgOSA4LjUgOVpNOCAxMC41di41aDJ2LTFIOC41YS41LjUgMCAwIDAtLjUuNVpNOCAxMnYxLjVjMCAuMjguMjIuNS41LjVIMTB2LTJIOFptMy41IDJhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41SDExdjRoLjVaTTcgMmEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoNmEzIDMgMCAwIDAgMy0zVjcuNTRhMyAzIDAgMCAwLS44OC0yLjEzTDEyLjYgMi44OEEzIDMgMCAwIDAgMTAuNDYgMkg3Wk01IDVjMC0xLjEuOS0yIDItMmgzLjQ2YTIgMiAwIDAgMSAxLjQyLjU5bDIuNTMgMi41M0EyIDIgMCAwIDEgMTUgNy41NFYxNWEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY1WlwiXSk7XG5leHBvcnQgY29uc3QgU2tpcEJhY2sxMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTa2lwQmFjazEwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNS42M1YzLjc1YS43NS43NSAwIDAgMC0xLjUgMHYzLjVjMCAuNDEuMzQuNzUuNzUuNzVoNGEuNzUuNzUgMCAwIDAgMC0xLjVINS4yM0E2LjMgNi4zIDAgMCAxIDEwIDQuMjVjMi40IDAgNC41MyAxLjQxIDUuNjUgMy41NC4xNS4yOC40My40Ni43My40Ni41NCAwIC45MS0uNTMuNjctMS4wMUE3LjkzIDcuOTMgMCAwIDAgMTAgMi43NWE3Ljc3IDcuNzcgMCAwIDAtNiAyLjg4Wm00LjI1IDUuMTJhLjc1Ljc1IDAgMCAwLTEuMjQtLjU3bC0xLjc1IDEuNWEuNzUuNzUgMCAxIDAgLjk4IDEuMTRsLjUxLS40NHYzLjg3YS43NS43NSAwIDAgMCAxLjUgMHYtNS41Wk0xNSAxMy41YzAgMS45My0uNjMgMy41LTIuNSAzLjUtMS44OCAwLTIuNS0xLjU3LTIuNS0zLjVzLjYzLTMuNSAyLjUtMy41YzEuODggMCAyLjUgMS41NyAyLjUgMy41Wm0tMS41IDBjMC0uODUtLjE1LTEuNC0uMzItMS42OWEuNTkuNTkgMCAwIDAtLjIyLS4yMi45NC45NCAwIDAgMC0uNDYtLjA5Ljk0Ljk0IDAgMCAwLS40Ni4wOS41OS41OSAwIDAgMC0uMjIuMjJjLS4xNy4zLS4zMi44NC0uMzIgMS42OXMuMTUgMS40LjMyIDEuNjljLjA4LjEyLjE1LjE4LjIyLjIyLjA3LjA0LjIuMDkuNDYuMDlzLjM5LS4wNS40Ni0uMDljLjA3LS4wNC4xNC0uMS4yMi0uMjIuMTctLjMuMzItLjg0LjMyLTEuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBTa2lwQmFjazEwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTa2lwQmFjazEwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDMuNWEuNS41IDAgMSAxIDEgMHYyLjJhOCA4IDAgMCAxIDEzLjE2IDEuNzUuNS41IDAgMSAxLS45LjQ0IDcgNyAwIDAgMC0xMi0uODlINy41YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjV2LTRabTUgN2EuNS41IDAgMCAwLS43OC0uNDJsLTEuNSAxYS41LjUgMCAwIDAgLjU2Ljg0bC43Mi0uNDl2NS4wN2EuNS41IDAgMCAwIDEgMHYtNlptNC41LS41Yy0uOTMgMC0xLjYuNDQtMiAxLjEzLS4zNy42NS0uNSAxLjUtLjUgMi4zNyAwIC44Ni4xMyAxLjcyLjUgMi4zNy40LjcgMS4wNyAxLjEzIDIgMS4xMy45NCAwIDEuNi0uNDQgMi0xLjEzLjM4LS42NS41LTEuNS41LTIuMzcgMC0uODYtLjEyLTEuNzItLjUtMi4zN2EyLjE4IDIuMTggMCAwIDAtMi0xLjEzWk0xMSAxMy41YzAtLjguMTMtMS40NC4zNy0xLjg3LjIzLS40LjU3LS42MyAxLjEzLS42My41NyAwIC45LjIzIDEuMTMuNjMuMjUuNDMuMzcgMS4wOC4zNyAxLjg3IDAgLjgtLjEyIDEuNDQtLjM3IDEuODctLjIyLjQtLjU2LjYzLTEuMTMuNjMtLjU2IDAtLjktLjIzLTEuMTMtLjYzQTMuODcgMy44NyAwIDAgMSAxMSAxMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU2tpcEZvcndhcmQxMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTa2lwRm9yd2FyZDEwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjczIDUuNjNWMy43NWEuNzUuNzUgMCAwIDEgMS41IDB2My41YzAgLjQxLS4zMy43NS0uNzUuNzVoLTRhLjc1Ljc1IDAgMCAxIDAtMS41aDIuMDNhNi4zIDYuMyAwIDAgMC00Ljc4LTIuMjUgNi40NSA2LjQ1IDAgMCAwLTUuNjUgMy41NC44My44MyAwIDAgMS0uNzMuNDZjLS41NCAwLS45MS0uNTMtLjY3LTEuMDFhNy45MyA3LjkzIDAgMCAxIDcuMDUtNC40OWMyLjQgMCA0LjU0IDEuMTIgNiAyLjg4Wk0xMi41IDE3YzEuODggMCAyLjUtMS41NyAyLjUtMy41cy0uNjItMy41LTIuNS0zLjVjLTEuODcgMC0yLjUgMS41Ny0yLjUgMy41cy42MyAzLjUgMi41IDMuNVptLjY4LTEuODFhLjU5LjU5IDAgMCAxLS4yMi4yMi45NC45NCAwIDAgMS0uNDYuMDkuOTQuOTQgMCAwIDEtLjQ2LS4wOS41OS41OSAwIDAgMS0uMjEtLjIyIDMuMzggMy4zOCAwIDAgMS0uMzMtMS42OWMwLS44NS4xNS0xLjQuMzItMS42OWEuNTkuNTkgMCAwIDEgLjIyLS4yMmMuMDctLjA0LjItLjA5LjQ2LS4wOXMuNC4wNS40Ni4wOWMuMDcuMDQuMTQuMS4yMi4yMi4xOC4zLjMyLjg0LjMyIDEuNjlzLS4xNCAxLjQtLjMyIDEuNjlabS00LjkzLTQuNDRhLjc1Ljc1IDAgMCAwLTEuMjQtLjU3bC0xLjc1IDEuNWEuNzUuNzUgMCAxIDAgLjk4IDEuMTRsLjUxLS40NHYzLjg3YS43NS43NSAwIDAgMCAxLjUgMHYtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2tpcEZvcndhcmQxMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2tpcEZvcndhcmQxMFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMy41YS41LjUgMCAxIDAtMSAwdjIuMkE4IDggMCAwIDAgMi44NCA3LjQ1YS41LjUgMCAxIDAgLjkuNDQgNyA3IDAgMCAxIDEyLS44OUgxMi41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAuNS0uNXYtNFptLTYuNSA3LjYzYy40LS43IDEuMDctMS4xMyAyLTEuMTMuOTQgMCAxLjYuNDQgMiAxLjEzLjM3LjY1LjUgMS41LjUgMi4zNyAwIC44Ni0uMTMgMS43Mi0uNSAyLjM3LS40LjctMS4wNiAxLjEzLTIgMS4xMy0uOTMgMC0xLjYtLjQ0LTItMS4xMy0uMzctLjY1LS41LTEuNS0uNS0yLjM3IDAtLjg2LjEzLTEuNzIuNS0yLjM3Wm0uODcuNUEzLjg3IDMuODcgMCAwIDAgMTEgMTMuNWMwIC44LjEyIDEuNDQuMzcgMS44Ny4yMy40LjU3LjYzIDEuMTMuNjMuNTcgMCAuOS0uMjMgMS4xMy0uNjMuMjUtLjQzLjM3LTEuMDguMzctMS44NyAwLS44LS4xMi0xLjQ0LS4zNy0xLjg3LS4yMy0uNC0uNTYtLjYzLTEuMTMtLjYzLS41NiAwLS45LjIzLTEuMTMuNjNaTTggMTAuNWEuNS41IDAgMCAwLS43OC0uNDJsLTEuNSAxYS41LjUgMCAxIDAgLjU2Ljg0bC43Mi0uNDl2NS4wN2EuNS41IDAgMCAwIDEgMHYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNraXBGb3J3YXJkMzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2tpcEZvcndhcmQzMEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43MyA1LjYzVjMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuNWMwIC40MS0uMzMuNzUtLjc1Ljc1aC00YS43NS43NSAwIDAgMSAwLTEuNWgyLjAzYTYuMyA2LjMgMCAwIDAtNC43OC0yLjI1IDYuNDUgNi40NSAwIDAgMC01LjY1IDMuNTQuODMuODMgMCAwIDEtLjczLjQ2Yy0uNTQgMC0uOTEtLjUzLS42Ny0xLjAxYTcuOTMgNy45MyAwIDAgMSA3LjA1LTQuNDljMi40IDAgNC41NCAxLjEyIDYgMi44OFpNNC45NyAxMC43MmEuNzUuNzUgMCAwIDAgMS4wNiAxLjA3di0uMDFsLjA3LS4wNmEyLjMgMi4zIDAgMCAxIDEuNC0uNDdjLjU2IDAgLjg4LjE1IDEuMDQuMy4xNi4xMy4yMi4yOS4yMi40My0uMDEuMjQtLjI2Ljc3LTEuMjYuNzdhLjc1Ljc1IDAgMCAwIDAgMS41YzEgMCAxLjI1LjUzIDEuMjYuNzcgMCAuMTQtLjA2LjMtLjIyLjQ0cy0uNDguMjktMS4wNC4yOWEyLjMgMi4zIDAgMCAxLTEuNDYtLjUzaC0uMDFhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmMtLjI4LS4yOCAwIDAgMCAwaC4wMWwuMDEuMDJhMi4wMyAyLjAzIDAgMCAwIC4xOS4xNiAzLjggMy44IDAgMCAwIDIuMzMuOGMuODEtLjAxIDEuNS0uMjQgMi0uNjZhMi4wNSAyLjA1IDAgMCAwIC4wOC0zLjEgMi4wNSAyLjA1IDAgMCAwLS4wNy0zLjEgMy4wNSAzLjA1IDAgMCAwLTIuMDItLjY1IDMuOCAzLjggMCAwIDAtMi41Ljk1bC0uMDIuMDFaTTE2IDEzLjVjMCAyLjA3LS42MiAzLjc1LTIuNSAzLjc1LTEuODcgMC0yLjUtMS42OC0yLjUtMy43NSAwLTIuMDcuNjMtMy43NSAyLjUtMy43NSAxLjg4IDAgMi41IDEuNjggMi41IDMuNzVabS0xLjUgMGMwLS45My0uMTUtMS41Ni0uMzUtMS45YS42Ny42NyAwIDAgMC0uMjMtLjI2LjguOCAwIDAgMC0uNDItLjA5LjguOCAwIDAgMC0uNDIuMDkuNjcuNjcgMCAwIDAtLjIzLjI2Yy0uMi4zNC0uMzUuOTctLjM1IDEuOSAwIC45My4xNSAxLjU2LjM1IDEuOS4wOS4xNi4xNy4yMy4yMy4yNmEuOC44IDAgMCAwIC40Mi4wOS44LjggMCAwIDAgLjQyLS4wOWMuMDctLjAzLjE1LS4xLjIzLS4yNi4yLS4zNC4zNS0uOTcuMzUtMS45WlwiXSk7XG5leHBvcnQgY29uc3QgU2tpcEZvcndhcmQzMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2tpcEZvcndhcmQzMFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSAzYy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtNGEuNS41IDAgMSAxIDAtMWgzLjI1YTcgNyAwIDAgMC0xMi4wMS44OS41LjUgMCAxIDEtLjktLjQ0QTggOCAwIDAgMSAxNiA1LjdWMy41YzAtLjI4LjIyLS41LjUtLjVabS0zIDdjLS45MyAwLTEuNi40NC0yIDEuMTMtLjM3LjY1LS41IDEuNS0uNSAyLjM3IDAgLjg2LjEzIDEuNzIuNSAyLjM3LjQuNyAxLjA3IDEuMTMgMiAxLjEzLjk0IDAgMS42LS40NCAyLTEuMTMuMzctLjY1LjUtMS41LjUtMi4zNyAwLS44Ni0uMTMtMS43Mi0uNS0yLjM3YTIuMTggMi4xOCAwIDAgMC0yLTEuMTNaTTEyIDEzLjVjMC0uOC4xMi0xLjQ0LjM3LTEuODcuMjMtLjQuNTctLjYzIDEuMTMtLjYzLjU3IDAgLjkuMjMgMS4xMy42My4yNS40My4zNyAxLjA4LjM3IDEuODcgMCAuOC0uMTIgMS40NC0uMzcgMS44Ny0uMjMuNC0uNTYuNjMtMS4xMy42My0uNTYgMC0uOS0uMjMtMS4xMy0uNjNBMy44NyAzLjg3IDAgMCAxIDEyIDEzLjVabS02Ljg1LTEuOWMuMTkuMi41LjIuNyAwaC4wMmwuMDctLjA3QTIuNTYgMi41NiAwIDAgMSA3LjUgMTFjLjYgMCAuOTguMTYgMS4yLjM1LjIyLjE5LjMxLjQyLjMuNjQgMCAuNC0uNCAxLjAxLTEuNSAxLjAxYS41LjUgMCAwIDAgMCAxYzEuMSAwIDEuNS42IDEuNSAxLjAxYS44LjggMCAwIDEtLjMuNjRjLS4yMi4xOS0uNi4zNS0xLjIuMzVhMi41NiAyLjU2IDAgMCAxLTEuNjUtLjYuNS41IDAgMCAwLS43IDBjLS4zNC4zMyAwIC43IDAgLjdhMy4zNyAzLjM3IDAgMCAwIC4xOC4xNkEzLjU2IDMuNTYgMCAwIDAgNy41IDE3Yy43OCAwIDEuNC0uMjEgMS44NS0uNTkuNDQtLjM3LjY3LS45LjY1LTEuNDJhMS44OSAxLjg5IDAgMCAwLS44LTEuNDljLjUtLjM3Ljc5LS45LjgtMS40OWExLjggMS44IDAgMCAwLS42NS0xLjQyQTIuOCAyLjggMCAwIDAgNy41IDEwYTMuNTYgMy41NiAwIDAgMC0yLjM0Ljg4di4wMWgtLjAxYS41LjUgMCAwIDAgMCAuNzFabS43IDMuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNraXBGb3J3YXJkVGFiRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NraXBGb3J3YXJkVGFiRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMDkgNy45N0M0LjIgNi41NyA2LjA3IDQuODkgOC4zNSA0LjRjMS45LS40MiA0LjI1LS4wNCA2Ljg2IDIuMzVIMTIuNWEuNzUuNzUgMCAxIDAgMCAxLjVIMTdjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTRhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuMTdjLTIuOTItMi42OC01Ljc1LTMuMjgtOC4yMi0yLjc0LTIuNzYuNi00LjkgMi41OC02LjEyIDQuMWEuNzUuNzUgMCAwIDAgMS4xOC45NFptMy40MSAyLjc4Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYzYzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDdjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0zYzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtN1ptLS4yNSAxLjc1YzAtLjE0LjExLS4yNS4yNS0uMjVoN2MuMTQgMCAuMjUuMTEuMjUuMjV2M2MwIC4xNC0uMTEuMjUtLjI1LjI1aC03YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0zWlwiXSk7XG5leHBvcnQgY29uc3QgU2tpcEZvcndhcmRUYWJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NraXBGb3J3YXJkVGFiUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjkgNy44MUM0LjAxIDYuNCA1LjkyIDQuNjYgOC4zIDQuMTVjMi4xLS40NiA0LjcuMDMgNy41NCAyLjg1SDEyLjVhLjUuNSAwIDAgMCAwIDFIMTdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMSAwLTEgMHYyLjc1Yy0zLjAzLTIuOTctNS45Mi0zLjYyLTguNDItMy4wOEM1LjQgMy43NiAzLjMxIDUuNyAyLjExIDcuMmEuNS41IDAgMCAwIC43OC42MlpNNi41IDExYy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNNiAxMi41YzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNsYXNoRm9yd2FyZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGFzaEZvcndhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMDIgMi4wNWMuMzguMTUuNTguNTguNDMuOTdsLTUuNSAxNC41YS43NS43NSAwIDEgMS0xLjQtLjU0bDUuNS0xNC41YS43NS43NSAwIDAgMSAuOTctLjQzWlwiXSk7XG5leHBvcnQgY29uc3QgU2xhc2hGb3J3YXJkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGFzaEZvcndhcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjY2IDIuMDNjLjI2LjA4LjQuMzcuMzEuNjNsLTUgMTVhLjUuNSAwIDEgMS0uOTQtLjMybDUtMTVhLjUuNSAwIDAgMSAuNjMtLjMxWlwiXSk7XG5leHBvcnQgY29uc3QgU2xlZXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xlZXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuMTYgMi43NGEuNS41IDAgMCAxIC40My0uMTNjMy41LjYgNi40IDMuNjcgNi40IDcuNGE3LjUgNy41IDAgMCAxLTcuNSA3LjUgNy45NiA3Ljk2IDAgMCAxLTYuNC0zLjIyLjUuNSAwIDAgMSAuMzctLjc5IDYuOTQgNi45NCAwIDAgMCA0LjY5LTIuNTljMS4zNC0xLjY1IDIuMjQtNC4xNyAxLjg1LTcuNzVhLjUuNSAwIDAgMSAuMTYtLjQyWk0zLjUgMTBDNC4zMyAxMCA1IDkuMzMgNSA4LjVWNC45bDMtLjc2VjYuMUExLjUgMS41IDAgMSAwIDkgNy41di00YS41LjUgMCAwIDAtLjYyLS40OGwtNCAxQS41LjUgMCAwIDAgNCA0LjV2Mi41OUExLjUgMS41IDAgMSAwIDMuNSAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsZWVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGVlcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNTkgMi42MWEuNS41IDAgMCAwLS41OS41NWMuNCAzLjU4LS41IDYuMS0xLjg1IDcuNzVhNi45NCA2Ljk0IDAgMCAxLTQuNjkgMi42LjUuNSAwIDAgMC0uMzcuNzggNy45NiA3Ljk2IDAgMCAwIDYuNCAzLjIxQTcuNSA3LjUgMCAwIDAgMTggMTBjMC0zLjcyLTIuOS02Ljc4LTYuNC03LjM5Wm0tMS42NiA4LjkzYzEuNDMtMS43NyAyLjM2LTQuMzQgMi4xMy03LjhBNi42NSA2LjY1IDAgMCAxIDE3IDEwYTYuNSA2LjUgMCAwIDEtNi41IDYuNSA3LjEgNy4xIDAgMCAxLTUuMDYtMi4xNCA4LjEgOC4xIDAgMCAwIDQuNDktMi44MlpNMy41IDEwQzQuMzMgMTAgNSA5LjMzIDUgOC41VjQuODlsMy0uNzV2MS45NEExLjUgMS41IDAgMSAwIDkgNy41di00YS41LjUgMCAwIDAtLjYyLS40OWwtNCAxQS41LjUgMCAwIDAgNCA0LjV2Mi41OEExLjUgMS41IDAgMSAwIDMuNSAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzV2My41QTUuNSA1LjUgMCAwIDAgOS4yIDE2SDQuNzZBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjZ2LTYuNVptMTcgNy43NWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXYzLjVhNS41IDUuNSAwIDAgMC0xLS42NVY2Ljc1QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVDMy43OCA1IDMgNS43OCAzIDYuNzV2Ni41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDQuMjdjLjAzLjM0LjEuNjguMTkgMUg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1di02LjVabTE3IDcuNzVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZUFycm93UmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVBcnJvd1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFBMi41IDIuNSAwIDAgMSAxOCA2LjV2My43NmE1LjQ4IDUuNDggMCAwIDAtNS44LS43Nkg1LjVhLjUuNSAwIDAgMCAwIDFoNS4yM2MtLjQ2LjQzLS44NC45NC0xLjEzIDEuNUg1LjVhLjUuNSAwIDAgMCAwIDFoMy43YTUuNSA1LjUgMCAwIDAgMCAzSDQuNUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1ptMy41LjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlQXJyb3dSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVBcnJvd1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgN2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0wIDIuNWEuNS41IDAgMCAwIDAgMWg1LjIzYy40My0uNC45My0uNzUgMS40OC0xSDUuNVptMCAyLjVoNC4xYy0uMTYuMzItLjMuNjUtLjQgMUg1LjVhLjUuNSAwIDAgMSAwLTFabS0xIDNoNC41MmMuMDMuMzQuMS42OC4xOSAxSDQuNUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN0EyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djMuNzZhNS41IDUuNSAwIDAgMC0xLS42NlY2LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMUMzLjY3IDUgMyA1LjY3IDMgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVabTE0LjUtLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZUVyYXNlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZUVyYXNlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjUuMDdsLS40LS40MWEyLjI1IDIuMjUgMCAwIDAtMy4yIDBsLTMuNzQgMy43NUEyLjI0IDIuMjQgMCAwIDAgMTAgMTZINGEyIDIgMCAwIDEtMi0yVjZabTEzLjEyIDUuMzdhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMGwxLjc1IDEuNzVjLjUuNDguNSAxLjI4IDAgMS43NmwtMi41NyAyLjU4LTMuNTItMy41MiAyLjU4LTIuNTdabS0zLjE4IDMuMTctLjU3LjU4YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsMS43NSAxLjc1Yy40OC41IDEuMjguNSAxLjc2IDBsLjU4LS41Ny0zLjUyLTMuNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZUVyYXNlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVFcmFzZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg2YzAtLjM0LjA4LS42OS4yMy0xSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY0LjIzYy4yMS4xMS40MS4yNS42LjQzbC40LjQxVjZhMiAyIDAgMCAwLTItMkg0Wm0xMS4xMiA3LjM3YTEuMjUgMS4yNSAwIDAgMSAxLjc2IDBsMS43NSAxLjc1Yy41LjQ4LjUgMS4yOCAwIDEuNzZsLTIuNTcgMi41OC0zLjUyLTMuNTIgMi41OC0yLjU3Wm0tMy4xOCAzLjE3LS41Ny41OGExLjI1IDEuMjUgMCAwIDAgMCAxLjc2bDEuNzUgMS43NWMuNDguNSAxLjI4LjUgMS43NiAwbC41OC0uNTctMy41Mi0zLjUyWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVHcmlkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlR3JpZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDdhMSAxIDAgMCAxIDEtMWgzLjVhMSAxIDAgMCAxIDEgMXYxLjVhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWN1ptMSAzLjVhMSAxIDAgMCAwLTEgMVYxM2ExIDEgMCAwIDAgMSAxaDMuNWExIDEgMCAwIDAgMS0xdi0xLjVhMSAxIDAgMCAwLTEtMUg1Wk0xMC41IDdhMSAxIDAgMCAxIDEtMUgxNWExIDEgMCAwIDEgMSAxdjEuNWExIDEgMCAwIDEtMSAxaC0zLjVhMSAxIDAgMCAxLTEtMVY3Wm0xIDMuNWExIDEgMCAwIDAtMSAxVjEzYTEgMSAwIDAgMCAxIDFIMTVhMSAxIDAgMCAwIDEtMXYtMS41YTEgMSAwIDAgMC0xLTFoLTMuNVpNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVHcmlkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZUdyaWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgNmExIDEgMCAwIDAtMSAxdjEuNWExIDEgMCAwIDAgMSAxaDMuNWExIDEgMCAwIDAgMS0xVjdhMSAxIDAgMCAwLTEtMUg1Wm0zLjUgMXYxLjVINVY3aDMuNVpNNCAxMS41YTEgMSAwIDAgMSAxLTFoMy41YTEgMSAwIDAgMSAxIDFWMTNhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF2LTEuNVptMSAwVjEzaDMuNXYtMS41SDVaTTExLjUgNkgxNWExIDEgMCAwIDEgMSAxdjEuNWExIDEgMCAwIDEtMSAxaC0zLjVhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTFaTTE1IDdoLTMuNXYxLjVIMTVWN1ptLTQuNSA0LjVhMSAxIDAgMCAxIDEtMUgxNWExIDEgMCAwIDEgMSAxVjEzYTEgMSAwIDAgMS0xIDFoLTMuNWExIDEgMCAwIDEtMS0xdi0xLjVabTEgMFYxM0gxNXYtMS41aC0zLjVaTTIgNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2Wm0yLTFhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlSGlkZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZUhpZGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTQgNCAwIDAgMC00IDR2NWMwIDEuMS45IDIgMiAyVjhhMyAzIDAgMCAxIDMtM2g4YTIgMiAwIDAgMC0yLTJINlptMCA1YTEgMSAwIDAgMSAxLTFoLjVhLjUuNSAwIDAgMCAwLTFIN2EyIDIgMCAwIDAtMiAydi41YS41LjUgMCAwIDAgMSAwVjhabTMuNS0yYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTMgMGEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWm0zIDBhLjUuNSAwIDAgMCAwIDFoLjVhMSAxIDAgMCAxIDEgMXYuNWEuNS41IDAgMCAwIDEgMFY4YTIgMiAwIDAgMC0yLTJoLS41Wk02IDEwLjVhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAwIDEgMHYtMlptMTIgMGEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWm0tMTIgNGEuNS41IDAgMCAwLTEgMHYuNWMwIDEuMS45IDIgMiAyaC41YS41LjUgMCAwIDAgMC0xSDdhMSAxIDAgMCAxLTEtMXYtLjVabTEyIDBhLjUuNSAwIDAgMC0xIDB2LjVhMSAxIDAgMCAxLTEgMWgtLjVhLjUuNSAwIDAgMCAwIDFoLjVhMiAyIDAgMCAwIDItMnYtLjVaTTkuNSAxNmEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWm0zIDBhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlSGlkZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVIaWRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhNCA0IDAgMCAwLTQgNHY1YzAgMS4xLjkgMiAyIDJ2LTFhMSAxIDAgMCAxLTEtMVY3YTMgMyAwIDAgMSAzLTNoN2ExIDEgMCAwIDEgMSAxaDFhMiAyIDAgMCAwLTItMkg2Wm0wIDVhMSAxIDAgMCAxIDEtMWguNWEuNS41IDAgMCAwIDAtMUg3YTIgMiAwIDAgMC0yIDJ2LjVhLjUuNSAwIDAgMCAxIDBWOFptMy41LTJhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVptMyAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTMgMGEuNS41IDAgMCAwIDAgMWguNWExIDEgMCAwIDEgMSAxdi41YS41LjUgMCAwIDAgMSAwVjhhMiAyIDAgMCAwLTItMmgtLjVaTTYgMTAuNWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWm0xMiAwYS41LjUgMCAwIDAtMSAwdjJhLjUuNSAwIDAgMCAxIDB2LTJabS0xMiA0YS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFIN2ExIDEgMCAwIDEtMS0xdi0uNVptMTIgMGEuNS41IDAgMCAwLTEgMHYuNWExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNWEyIDIgMCAwIDAgMi0ydi0uNVpNOS41IDE2YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTMgMGEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVMYXlvdXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVMYXlvdXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDdoOWMuMjggMCAuNS4yMi41LjVWOUg1VjcuNWMwLS4yOC4yMi0uNS41LS41Wk03IDEwdjNINS41YS41LjUgMCAwIDEtLjUtLjVWMTBoMlptNy41IDNIOHYtM2g3djIuNWEuNS41IDAgMCAxLS41LjVabS0xMC05QTIuNSAyLjUgMCAwIDAgMiA2LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDRoLTExWm0xMCAxMGgtOUExLjUgMS41IDAgMCAxIDQgMTIuNXYtNUM0IDYuNjcgNC42NyA2IDUuNSA2aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZUxheW91dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVMYXlvdXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAxNEExLjUgMS41IDAgMCAxIDQgMTIuNXYtNUM0IDYuNjcgNC42NyA2IDUuNSA2aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlabTAtN2EuNS41IDAgMCAwLS41LjVWOWgxMFY3LjVhLjUuNSAwIDAgMC0uNS0uNWgtOVpNNyAxMEg1djIuNWMwIC4yOC4yMi41LjUuNUg3di0zWm0xIDNoNi41YS41LjUgMCAwIDAgLjUtLjVWMTBIOHYzWk0yIDYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1pNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlTGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjQuODRhMy40OSAzLjQ5IDAgMCAwLTEuNS0uMzRoLTRBMy41IDMuNSAwIDAgMCA5LjYzIDE2SDRhMiAyIDAgMCAxLTItMlY2Wm0xMC41IDUuNWEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlpNMTIgMTRjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZUxpbmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlTGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0Ljg0YTMuNDcgMy40NyAwIDAgMC0xLS4zVjZhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuMTRjLjExLjM2LjI4LjcuNDkgMUg0YTIgMiAwIDAgMS0yLTJWNlptMTAuNSA1LjVhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZaTTEyIDE0YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVNaWNyb3Bob25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlTWljcm9waG9uZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djUuNDdhMyAzIDAgMCAwLTYgLjAzdjEuMDdhMS41IDEuNSAwIDAgMC0xLjk1IDEuNjRjLjA2LjQ1LjE5Ljg5LjM3IDEuMjlINC41QTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wm0zLjUuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk01IDEwYzAgLjI4LjIyLjUuNS41SDExYS41LjUgMCAwIDAgMC0xSDUuNWEuNS41IDAgMCAwLS41LjVabS41IDJhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptNy41IDBhMiAyIDAgMSAxIDQgMHYyYTIgMiAwIDAgMS00IDB2LTJabS0uOTcgMi40M2EuNS41IDAgMSAwLS45OS4xNCA0IDQgMCAwIDAgMy40NiAzLjR2LjUzYS41LjUgMCAxIDAgMSAwdi0uNTNhNCA0IDAgMCAwIDMuNDYtMy40LjUuNSAwIDEgMC0xLS4xNCAzIDMgMCAwIDEtNS45MyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVNaWNyb3Bob25lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZU1pY3JvcGhvbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA3YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgMi41YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabS0uNSAzYzAtLjI4LjIyLS41LjUtLjVIMTBhLjUuNSAwIDAgMSAwIDFINS41YS41LjUgMCAwIDEtLjUtLjVaTTQuNSA0QTIuNSAyLjUgMCAwIDAgMiA2LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNmg1LjkyYTQuOTcgNC45NyAwIDAgMS0uMzItMUg0LjVBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTdDMyA1LjY3IDMuNjcgNSA0LjUgNWgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXYzLjI2YTMgMyAwIDAgMSAxIDIuMlY2LjVBMi41IDIuNSAwIDAgMCAxNS41IDRoLTExWm04LjUgOGEyIDIgMCAxIDEgNCAwdjJhMiAyIDAgMCAxLTQgMHYtMlptLS45NyAyLjQzYS41LjUgMCAxIDAtLjk5LjE0IDQgNCAwIDAgMCAzLjQ2IDMuNHYuNTNhLjUuNSAwIDEgMCAxIDB2LS41M2E0IDQgMCAwIDAgMy40Ni0zLjQuNS41IDAgMSAwLTEtLjE0IDMgMyAwIDAgMS01LjkzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTQgNCAwIDAgMC00IDR2NWMwIDEuMS45IDIgMiAyVjhhMyAzIDAgMCAxIDMtM2g4YTIgMiAwIDAgMC0yLTJINlptMSAzYTIgMiAwIDAgMC0yIDJ2N2MwIDEuMS45IDIgMiAyaDlhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2E0IDQgMCAwIDAtNCA0djVjMCAxLjEuOSAyIDIgMnYtMWExIDEgMCAwIDEtMS0xVjdhMyAzIDAgMCAxIDMtM2g3YTEgMSAwIDAgMSAxIDFoMWEyIDIgMCAwIDAtMi0ySDZabTEgM2EyIDIgMCAwIDAtMiAydjdjMCAxLjEuOSAyIDIgMmg5YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0ySDdaTTYgOGExIDEgMCAwIDEgMS0xaDlhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjhaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZU11bHRpcGxlQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZU11bHRpcGxlQXJyb3dSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhNCA0IDAgMCAwLTQgNHY1YzAgMS4xLjkgMiAyIDJWOGEzIDMgMCAwIDEgMy0zaDhhMiAyIDAgMCAwLTItMkg2Wm0xIDNhMiAyIDAgMCAwLTIgMnY3YzAgMS4xLjkgMiAyIDJoMi42YTUuNSA1LjUgMCAwIDEgOC40LTYuNzRWOGEyIDIgMCAwIDAtMi0ySDdabTcuNSA0YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlTXVsdGlwbGVBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZU11bHRpcGxlQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTQgNCAwIDAgMC00IDR2NWMwIDEuMS45IDIgMiAydi0xYTEgMSAwIDAgMS0xLTFWN2EzIDMgMCAwIDEgMy0zaDdhMSAxIDAgMCAxIDEgMWgxYTIgMiAwIDAgMC0yLTJINlptMSAzYTIgMiAwIDAgMC0yIDJ2N2MwIDEuMS45IDIgMiAyaDIuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg3YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xaDlhMSAxIDAgMCAxIDEgMXYxLjZjLjM2LjE4LjcuNCAxIC42NlY4YTIgMiAwIDAgMC0yLTJIN1ptNy41IDRhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVNdWx0aXBsZVNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZU11bHRpcGxlU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2E0IDQgMCAwIDAtNCA0djIuNzZjLjU4LS40IDEuMjctLjY1IDItLjczVjhhMyAzIDAgMCAxIDMtM2g4YTIgMiAwIDAgMC0yLTJINlptMTAgMTRoLTUuODhsLTEuNTYtMS41NkE0LjUgNC41IDAgMCAwIDUgOS4wM1Y4YzAtMS4xLjktMiAyLTJoOWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMlpNNC41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVNdWx0aXBsZVNlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVNdWx0aXBsZVNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTQgNCAwIDAgMC00IDR2Mi43NmMuMy0uMi42NC0uMzggMS0uNVY3YTMgMyAwIDAgMSAzLTNoN2ExIDEgMCAwIDEgMSAxaDFhMiAyIDAgMCAwLTItMkg2Wm0xMCAxNGgtNS44OGwtMS0xSDE2YTEgMSAwIDAgMCAxLTFWOGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxLjI2YTQuNDcgNC40NyAwIDAgMC0xLS4yM1Y4YzAtMS4xLjktMiAyLTJoOWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMlpNNC41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVQbGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlUGxheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoNC40NkE1LjUgNS41IDAgMCAxIDE4IDEwLjI2VjYuNzVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDRINC43NVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTMgMTZjMCAuMzguNDIuNjIuNzYuNDJsMi41LTEuNWEuNS41IDAgMCAwIDAtLjg1bC0yLjUtMS41QS41LjUgMCAwIDAgMTMgMTN2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlUGxheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVQbGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoNC40NmMtLjEtLjMyLS4xNi0uNjYtLjE5LTFINC43NUMzLjc4IDE1IDMgMTQuMjIgMyAxMy4yNXYtNi41QzMgNS43OCAzLjc4IDUgNC43NSA1aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOS42Yy4zNi4xOC43LjQgMSAuNjZWNi43NUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNEg0Ljc1Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMyAxNmMwIC4zOC40Mi42Mi43Ni40MmwyLjUtMS41YS41LjUgMCAwIDAgMC0uODVsLTIuNS0xLjVBLjUuNSAwIDAgMCAxMyAxM3YzWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVSZWNvcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVSZWNvcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDQuN2E1LjUgNS41IDAgMCAxIDAtM0g1LjVhLjUuNSAwIDAgMSAwLTFoNC4xYy4yOS0uNTYuNjctMS4wNyAxLjEzLTEuNUg1LjVhLjUuNSAwIDAgMSAwLTFoNi43YTUuNDggNS40OCAwIDAgMSA1LjguNzZWNi41QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xMVpNNSA3LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaTTE0LjUgMThhMy41IDMuNSAwIDEgMSAwLTcgMy41IDMuNSAwIDAgMSAwIDdabTAgMWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC0yYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVSZWNvcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlUmVjb3JkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDcuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpNNSAxMGMwLS4yOC4yMi0uNS41LS41aDYuN2MtLjU0LjI1LTEuMDQuNi0xLjQ3IDFINS41QS41LjUgMCAwIDEgNSAxMFptNC42IDJINS41YS41LjUgMCAwIDAgMCAxaDMuN2MuMS0uMzUuMjQtLjY4LjQtMVptLS41OCAzSDQuNUExLjUgMS41IDAgMCAxIDMgMTMuNXYtN0MzIDUuNjcgMy42NyA1IDQuNSA1aDExYy44MyAwIDEuNS42NyAxLjUgMS41djMuMWMuMzYuMTguNy40IDEgLjY2VjYuNUEyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDQuN2MtLjA4LS4zMi0uMTUtLjY2LS4xOC0xWm01LjQ4IDNhMy41IDMuNSAwIDEgMSAwLTcgMy41IDMuNSAwIDAgMSAwIDdabTAgMWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC0yYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVTZWFyY2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGgxMUEyLjUgMi41IDAgMCAxIDE4IDYuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNS4zOGwtMS41Ni0xLjU2Yy4yMS0uNDQuMzYtLjkzLjQxLTEuNDRoMy41M2EuNS41IDAgMCAwIDAtMUg4Ljk3YTQuNDcgNC40NyAwIDAgMC0uNDQtMS41aDUuOTdhLjUuNSAwIDAgMCAwLTFINy44NUE0LjQ5IDQuNDkgMCAwIDAgMiA4Ljc2VjYuNVptMy41LjVhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptLTEgOWMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE0LjZBMy41IDMuNSAwIDEgMCA0LjUgMTZabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlU2VhcmNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZVNlYXJjaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDdhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMy4wMyAzLjVhNC41IDQuNSAwIDAgMC0uNjgtMWg2LjY1YS41LjUgMCAwIDEgMCAxSDguNTNabS40NyAyYzAgLjE3IDAgLjM0LS4wMy41aDMuNTNhLjUuNSAwIDAgMCAwLTFIOC45N2MuMDIuMTYuMDMuMzMuMDMuNVptLTYtNnYxLjc2Yy0uMzYuMTItLjcuMy0xIC41VjYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01LjM4bC0xLTFoNi4zOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMUMzLjY3IDUgMyA1LjY3IDMgNi41Wk00LjUgMTZjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNC42QTMuNSAzLjUgMCAxIDAgNC41IDE2Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDQuNDZBNS41IDUuNSAwIDAgMSAxOCAxMC4yNlY2Ljc1QTIuNzUgMi43NSAwIDAgMCAxNS4yNSA0SDQuNzVabTcuMzIgNy40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXYzLjVhNS41IDUuNSAwIDAgMC0xLS42NVY2Ljc1QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVDMy43OCA1IDMgNS43OCAzIDYuNzV2Ni41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDQuMjdjLjAzLjM0LjEuNjguMTkgMUg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1di02LjVabTEwLjA3IDQuN2EyIDIgMCAwIDEtMS40NCAyLjQ3bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVTaXplRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlU2l6ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTZINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMy4yNXYtNi41Wm05LS4yNWMwIC4yOC4yMi41LjUuNWguOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN0wxMyA3Ljcxdi43OWEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptLTEuNjUgNC4xNWEuNS41IDAgMCAwLS43IDBMNyAxMi4yOXYtLjc5YS41LjUgMCAwIDAtMSAwdjJhLjUuNSAwIDAgMCAuNS41aDJhLjUuNSAwIDAgMCAwLTFoLS44bDEuNjUtMS42NWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVNpemVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlU2l6ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE2SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjV2LTYuNVpNNC43NSA1QzMuNzggNSAzIDUuNzggMyA2Ljc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNi41QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVaTTExIDYuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0xIDB2LS44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy0uN0wxMi4yOSA3aC0uNzlhLjUuNSAwIDAgMS0uNS0uNVptLTIuMzUgNC4xNWEuNS41IDAgMCAxIC43LjdMNy43MSAxM2guNzlhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAxIDEgMHYuOGwxLjY1LTEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVRleHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVUZXh0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFBMi41IDIuNSAwIDAgMSAxOCA2LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wm0zLjUuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk01IDEwYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wm0uNSAyYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgU2xpZGVUZXh0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZVRleHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA3YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgMi41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabS0uNSAzYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xMVpNMyA2LjVDMyA1LjY3IDMuNjcgNSA0LjUgNWgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgU2xpZGVUZXh0Q2FsbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZVRleHRDYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFBMi41IDIuNSAwIDAgMSAxOCA2LjV2LjY4Yy0xLjE5LS41LTIuNi4wNy0zLjA3IDEuM2wtLjI4Ljc1Yy0uMjguNzItLjEgMS41My40NiAyLjA3bC41MS41MWMtLjEuNDQtLjMzLjgxLS43IDEuMTJsLS44LS4xOGMtLjcyLS4xOC0xLjUuMDYtMiAuNjJsLS41NS42MWEyLjIgMi4yIDAgMCAwLS41IDIuMDJINC41QTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wm0zLjUuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk01IDEwYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wm0uNSAyYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabTEwLjA4LTIuNDIuMjktLjc1YTEuMzIgMS4zMiAwIDAgMSAxLjc0LS43M2wuMzkuMTdjLjQ3LjIuODYuNTcuOTQgMS4wNi40NiAyLjczLTEuOSA2LjYtNC42MyA3LjU5YTEuNiAxLjYgMCAwIDEtMS40NC0uMjVsLS4zNS0uMjNjLS42LS40MS0uNy0xLjI0LS4yLTEuNzlsLjU0LS42Yy4yNi0uMy42Ni0uNDIgMS4wNC0uMzNsMS4yMi4yOWMuOTctLjYgMS41LTEuNDYgMS41Ni0yLjU2bC0uODgtLjg2YS45NC45NCAwIDAgMS0uMjItMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlVGV4dENhbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVGV4dENhbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA3YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgMi41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabS0uNSAzYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoNi41N2EyLjE5IDIuMTkgMCAwIDEtLjAyLTFINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di03QzMgNS42NyAzLjY3IDUgNC41IDVoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjVWN2MuMzMtLjAxLjY4LjA1IDEgLjE4VjYuNUEyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFabTExLjA4IDUuNTguMjktLjc1YTEuMzIgMS4zMiAwIDAgMSAxLjc0LS43M2wuMzkuMTdjLjQ3LjIuODYuNTcuOTQgMS4wNi40NiAyLjczLTEuOSA2LjYtNC42MyA3LjU5YTEuNiAxLjYgMCAwIDEtMS40NC0uMjVsLS4zNS0uMjNjLS42LS40MS0uNy0xLjI0LS4yLTEuNzlsLjU0LS42Yy4yNi0uMy42Ni0uNDIgMS4wNC0uMzNsMS4yMi4yOWMuOTctLjYgMS41LTEuNDYgMS41Ni0yLjU2bC0uODgtLjg2YS45NC45NCAwIDAgMS0uMjItMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlVGV4dEN1cnNvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZVRleHRDdXJzb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGgxMUEyLjUgMi41IDAgMCAxIDE4IDYuNXY2LjMzbC00LjQ0LTQuNEExLjUgMS41IDAgMCAwIDExIDkuNUg1LjVhLjUuNSAwIDAgMCAwIDFIMTFWMTZINC41QTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wm0zLjUuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0wIDVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptNy4zNi0yLjg1YS41LjUgMCAwIDAtLjg2LjM1djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVRleHRDdXJzb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVGV4dEN1cnNvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDdhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMCAyLjVhLjUuNSAwIDAgMCAwIDFIMTF2LTFINS41Wm0tMSA1LjVIMTF2MUg0LjVBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdBMi41IDIuNSAwIDAgMSA0LjUgNGgxMUEyLjUgMi41IDAgMCAxIDE4IDYuNXY2LjMzbC0xLS45OVY2LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMUMzLjY3IDUgMyA1LjY3IDMgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVabS41LTIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptNy44Ni0zLjM1YS41LjUgMCAwIDAtLjg2LjM1djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVRleHRFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVGV4dEVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGgxMUEyLjUgMi41IDAgMCAxIDE4IDYuNXYyLjYzYTIuODcgMi44NyAwIDAgMC0yLjkuNzFsLTQuODMgNC44M2EzLjIgMy4yIDAgMCAwLS44IDEuMzNINC41QTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wm0zLjUuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk01IDEwYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wm0uNSAyYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabTUuNDggMy4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlVGV4dEVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVGV4dEVkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA3YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgMi41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabS0uNSAzYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoNC45N2MuMTEtLjM2LjI5LS43LjUyLTFINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di03QzMgNS42NyAzLjY3IDUgNC41IDVoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWMuMzQtLjAxLjY4LjAzIDEgLjEzVjYuNUEyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFabTYuNDggMTEuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVRleHRNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbGlkZVRleHRNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41IDE1YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN2MwLS4xIDAtLjE5LS4wMi0uMjhBMi41IDIuNSAwIDAgMCAxMy41IDNoLTlBMi41IDIuNSAwIDAgMCAyIDUuNXY3QTIuNTEgMi41MSAwIDAgMCA0LjQ4IDE1aDkuMDJabS04LTloNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVptMCAyLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVptLS41IDNjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaTTYuNSAxN2EyLjUgMi41IDAgMCAxLTItMWg5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtN2MuNi40NiAxIDEuMTggMSAydjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVUZXh0TXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVGV4dE11bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgNmEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk01IDljMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNSA5Wm0uNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTE2IDUuNUEyLjUgMi41IDAgMCAwIDEzLjUgM2gtOUEyLjUgMi41IDAgMCAwIDIgNS41djdBMi41IDIuNSAwIDAgMCA0LjUgMTVoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdabS0xMyA3di03QzMgNC42NyAzLjY3IDQgNC41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDMgMTIuNVpNNi41IDE3YTIuNSAyLjUgMCAwIDEtMi0xaDlhMy41IDMuNSAwIDAgMCAzLjUtMy41di03Yy42LjQ2IDEgMS4xOCAxIDJ2NWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVRleHRQZXJzb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVUZXh0UGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSA0QTIuNSAyLjUgMCAwIDAgMiA2LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNmg2LjU0YTIuNSAyLjUgMCAwIDEgMi4yMy0yLjk5IDIuOTkgMi45OSAwIDAgMS0uNzMtMi41MUg1LjVhLjUuNSAwIDAgMSAwLTFoN2EuNS41IDAgMCAxIC4zMy4xM0EzIDMgMCAwIDEgMTggOS4zNFY2LjVBMi41IDIuNSAwIDAgMCAxNS41IDRoLTExWk01IDcuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk0xNy41IDExYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNi43NSAxMiAxNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbGlkZVRleHRQZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVGV4dFBlcnNvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA3LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaTTUgMTBjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgLjMzLjEzYy0uMTQuMjctLjI0LjU2LS4yOS44N0g1LjVBLjUuNSAwIDAgMSA1IDEwWm02LjA1IDVINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di03QzMgNS42NyAzLjY3IDUgNC41IDVoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MS45Yy40LjIzLjc0LjU2IDEgLjk0VjYuNUEyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDYuNTRhMy4zIDMuMyAwIDAgMSAuMDEtMVpNNS41IDEyYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabTEyLTFhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE2Ljc1IDEyIDE1LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlVGV4dFNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVUZXh0U3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC44OCAxLjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWm0tMy4wMiAzLjU2Yy4yMS4xNS40Ny4yMy43NC4yMy4xNyAwIC4zNC0uMDIuNS0uMDh2LjU4YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdBMi41IDIuNSAwIDAgMSA0LjUgNGg1LjU5YTEuNDIgMS40MiAwIDAgMCAuMTcgMS4zMmMuMTcuMjQuNDEuNDMuNzEuNTNsMS4wNi4zNWMuMTUuMDUuMy4xMy40Ny4yOS4xMS4xMS4yLjI0LjMuNDdsLjM1IDEuMWMuMS4yNC4yNS40Ny41Mi42OC4xNC4xLjMuMTcuNDUuMjFhMS4zIDEuMyAwIDAgMCAuNzcgMS43OWwuNzcuMjVjLjA4LjAzLjE2LjA4LjIyLjE0LjA3LjA2LjEuMTQuMTQuMjJsLjI2LjhjLjEuMjUuMjYuNDYuNDguNjJaTTUgNy41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41Wm0uNSAzaDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMCAwIDFabS0uNSAyYzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVUZXh0U3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVUZXh0U3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJtMTQuODggMS4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTcgMTIuOTFjLjE2LjA2LjMzLjA5LjUuMDkuMTcgMCAuMzQtLjAyLjUtLjA4di41OGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxMy41di03QTIuNSAyLjUgMCAwIDEgNC41IDRoNS41OWExLjQyIDEuNDIgMCAwIDAgMCAxSDQuNUMzLjY3IDUgMyA1LjY3IDMgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0uNlpNNSA3LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaTTUgMTBjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNSAxMFptLjUgMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgU2xpZGVUcmFuc2l0aW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NsaWRlVHJhbnNpdGlvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxMC41QTIuNzUgMi43NSAwIDAgMSAxOCA2Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTZINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMy4yNXYtNi41Wk02IDVINXYxMGgxVjVabTMgMEg4djEwaDFWNVptMyAwdjEwaDFWNWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNsaWRlVHJhbnNpdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU2xpZGVUcmFuc2l0aW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMTggMTMuMjV2LTYuNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNEg0Ljc1Wk0xMiA1djEwSDlWNWgzWm0xIDEwVjVoMi4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY2LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDEzWm0tNSAwSDZWNWgydjEwWk01IDV2MTBoLS4yNUMzLjc4IDE1IDMgMTQuMjIgMyAxMy4yNXYtNi41QzMgNS43OCAzLjc4IDUgNC43NSA1SDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTbWFydHdhdGNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NtYXJ0d2F0Y2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAyYTIgMiAwIDAgMC0yIDJ2LjE3QTMgMyAwIDAgMSA3IDRoNmEzIDMgMCAwIDEgMSAuMTdWNGEyIDIgMCAwIDAtMi0ySDhaTTcgNWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTJhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMC0xLTFWN2EyIDIgMCAwIDAtMi0ySDdabTAgMTFhMyAzIDAgMCAxLTEtLjE3VjE2YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0ydi0uMTdhMyAzIDAgMCAxLTEgLjE3SDdaXCJdKTtcbmV4cG9ydCBjb25zdCBTbWFydHdhdGNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbWFydHdhdGNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDUuMjdWNGMwLTEuMS45LTIgMi0yaDRhMiAyIDAgMCAxIDIgMnYxLjI3Yy42LjM0IDEgLjk5IDEgMS43M3YxYTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxdjJhMiAyIDAgMCAxLTEgMS43M1YxNmEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMnYtMS4yN0EyIDIgMCAwIDEgNSAxM1Y3YTIgMiAwIDAgMSAxLTEuNzNaTTggM2ExIDEgMCAwIDAtMSAxdjFoNlY0YTEgMSAwIDAgMC0xLTFIOFptNiAxMFY3YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFabS03IDNhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTFIN3YxWlwiXSk7XG5leHBvcnQgY29uc3QgU21hcnR3YXRjaERvdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbWFydHdhdGNoRG90RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjUgMi42OEEyIDIgMCAwIDAgMTIgMkg4YTIgMiAwIDAgMC0yIDJ2LjE3QTMgMyAwIDAgMSA3IDRoNi4wNGMuMDYtLjQ4LjIzLS45Mi40Ny0xLjMyWk0xMy4wNSA1SDdhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0ydi0yYTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDAtMS0xdi0uMzRBMy41IDMuNSAwIDAgMSAxMy4wNCA1Wk03IDE2YTMgMyAwIDAgMS0xLS4xN1YxNmMwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMnYtLjE3YTMgMyAwIDAgMS0xIC4xN0g3Wk0xOSA0LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTbWFydHdhdGNoRG90UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTbWFydHdhdGNoRG90UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi41IDJhMi41IDIuNSAwIDEgMSAwIDUgMi41IDIuNSAwIDAgMSAwLTVabS0zIC42OEEyIDIgMCAwIDAgMTIgMkg4YTIgMiAwIDAgMC0yIDJ2MS4yN0EyIDIgMCAwIDAgNSA3djZhMiAyIDAgMCAwIDEgMS43M1YxNmMwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMnYtMS4yN0EyIDIgMCAwIDAgMTUgMTN2LTJhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMC0xLTF2LS4zNGEzLjUgMy41IDAgMCAxLTEtLjcxQTEgMSAwIDAgMSAxNCA3djZhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWN2ExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIC4zNy4wNyAzLjQ5IDMuNDkgMCAwIDEgLjE0LTMuMzlaTTEzIDQuNVY1SDdWNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYuNVpNNyAxNWg2djFhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTbm9vemVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU25vb3plRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjc1IDRhLjc1Ljc1IDAgMCAwIDAgMS41aDMuODhsLTQuNDUgNS4yN2EuNzUuNzUgMCAwIDAgLjU3IDEuMjNoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtMy44OGw0LjQ1LTUuMjdBLjc1Ljc1IDAgMCAwIDE2LjI1IDRoLTUuNVptLTcgNmEuNzUuNzUgMCAwIDAgMCAxLjVoMS45N2wtMi41NiAzLjI5QS43NS43NSAwIDAgMCAzLjc1IDE2aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVINS4yOGwyLjU2LTMuMjlBLjc1Ljc1IDAgMCAwIDcuMjUgMTBoLTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNub296ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU25vb3plUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDRhLjUuNSAwIDAgMCAwIDFoNC4wM2wtNC40NCA2LjJhLjUuNSAwIDAgMCAuNDEuOGg1YS41LjUgMCAwIDAgMC0xaC00LjAzbDQuNDQtNi4yYS41LjUgMCAwIDAtLjQxLS44aC01Wm0tNiA2YS41LjUgMCAwIDAgMCAxaDIuOTZsLTMuMzUgNC4xOWEuNS41IDAgMCAwIC4zOS44MWg0YS41LjUgMCAwIDAgMC0xSDUuNTRsMy4zNS00LjE5QS41LjUgMCAwIDAgOC41IDEwaC00WlwiXSk7XG5leHBvcnQgY29uc3QgU291bmRTb3VyY2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU291bmRTb3VyY2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAxIDEgMTIuMTQgNC43NWwuNjUuNzdhOCA4IDAgMSAwLTExLjU4IDBsLjY1LS43N0E2Ljk3IDYuOTcgMCAwIDEgMyAxMFptMTEuMTYgMy42YTUuNSA1LjUgMCAxIDAtOC4zMiAwbC42NS0uNzhhNC41IDQuNSAwIDEgMSA3LjAxIDBsLjY2Ljc4Wm0tMS42NS0xLjk2YTMgMyAwIDEgMC01LjAyIDBsLjY5LS44MWEyIDIgMCAxIDEgMy42NCAwbC42OS44MVptLTIuMTMtLjk2YS41LjUgMCAwIDAtLjc2IDBsLTUuNSA2LjVhLjUuNSAwIDAgMCAuMzguODJoMTFhLjUuNSAwIDAgMCAuMzgtLjgybC01LjUtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgU291bmRTb3VyY2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NvdW5kU291cmNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDEwYTcgNyAwIDEgMSAxMi4xNCA0Ljc1bC42NS43N2E4IDggMCAxIDAtMTEuNTggMGwuNjUtLjc3QTYuOTcgNi45NyAwIDAgMSAzIDEwWm0xMS4xNiAzLjZhNS41IDUuNSAwIDEgMC04LjMyIDBsLjY1LS43OGE0LjUgNC41IDAgMSAxIDcuMDEgMGwuNjYuNzhabS0xLjY1LTEuOTZhMyAzIDAgMSAwLTUuMDIgMGwuNjktLjgxYTIgMiAwIDEgMSAzLjY0IDBsLjY5LjgxWm0tMi4xMy0uOTZhLjUuNSAwIDAgMC0uNzYgMGwtNS41IDYuNWEuNS41IDAgMCAwIC4zOC44MmgxMWEuNS41IDAgMCAwIC4zOC0uODJsLTUuNS02LjVaTTE0LjQyIDE3SDUuNThMMTAgMTEuNzcgMTQuNDIgMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBTb3VuZFdhdmVDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU291bmRXYXZlQ2lyY2xlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDEwYTggOCAwIDEgMS0xNiAwIDggOCAwIDAgMSAxNiAwWk02IDguNWEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMFY5YS41LjUgMCAwIDAtLjUtLjVabTUuNSAwYS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNaTTguNSA3YS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtLjUtLjVabTUuNS41YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTb3VuZFdhdmVDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NvdW5kV2F2ZUNpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptLTggN2E4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNC0xLjVjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0xIDBWOWMwLS4yOC4yMi0uNS41LS41Wm01LjUgMGEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWk04LjUgN2MuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLTEgMHYtNWMwLS4yOC4yMi0uNS41LS41Wm01LjUuNWEuNS41IDAgMCAwLTEgMHY1YS41LjUgMCAwIDAgMSAwdi01WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhY2UzREZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFjZTNERmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y2LjVoLS43MUwxNC44NiAxMEgxNlY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjRoMS4xNEwzLjcgMTIuNUgzVjZabTAgOHYtLjVoNC4zNGwtLjgyIDIuODYtLjIuNjRINmEzIDMgMCAwIDEtMy0zWm00LjQ4IDIuNjQuOS0zLjE0aDMuMjRsLjkgMy4xMy4xLjM3SDcuMzdsLjEtLjM2aC4wMVptMS4xOC00LjE0aDIuNjhsLS43Mi0yLjVIOS4zOGwtLjcyIDIuNVptNC44MiAzLjg2LS44Mi0yLjg2SDE3di41YTMgMyAwIDAgMS0zIDNoLS4zNWwtLjE3LS42M1ptLTEuMS0zLjg2aDIuNzZMMTMuNyAxMGgtMi4wNWwuNzIgMi41Wm0tNy41MiAwaDIuNzZsLjcyLTIuNUg2LjI5bC0xLjQzIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYWNlM0RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYWNlM0RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTEzIDBhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2M2gxMlY2Wk00IDEybDEuMTQtMkg0djJabS44Ni41aDIuNzZsLjcyLTIuNUg2LjI5bC0xLjQzIDIuNVptLS44NiAxdi41YzAgMS4xLjkgMiAyIDJoLjYybC43Mi0yLjVINFptNC4zOCAwTDcuNjYgMTZoNC42OGwtLjcyLTIuNUg4LjM4Wm00LjI4IDAgLjcyIDIuNUgxNGEyIDIgMCAwIDAgMi0ydi0uNWgtMy4zNFptMi40OC0xTDEzLjcgMTBoLTIuMDVsLjcyIDIuNWgyLjc2Wm0tMy44IDAtLjcyLTIuNUg5LjM4bC0uNzIgMi41aDIuNjhaTTE2IDEydi0yaC0xLjE0TDE2IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhY2ViYXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2ViYXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NSA3Ljc1Yy40MSAwIC43NS4zNC43NS43NXYyaDEzdi0yYS43NS43NSAwIDAgMSAxLjUgMHYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTJjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYWNlYmFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFjZWJhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDhjLjI4IDAgLjUuMjIuNS41djJjMCAuMjguMjIuNS41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAxIDEgMHYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjQgMTIuOGExLjA0IDEuMDQgMCAwIDAgMS41OS0uNTFsLjQ1LTEuMzdhMi4zNCAyLjM0IDAgMCAxIDEuNDctMS40OGwxLjQtLjQ1QTEuMDQgMS4wNCAwIDAgMCAxMi4yNSA3bC0xLjM3LS40NUEyLjM0IDIuMzQgMCAwIDEgOS40IDUuMDhMOC45NSAzLjdhMS4wMyAxLjAzIDAgMCAwLS44Mi0uNjggMS4wNCAxLjA0IDAgMCAwLTEuMTUuN2wtLjQ2IDEuNGEyLjM0IDIuMzQgMCAwIDEtMS40NCAxLjQ1TDMuNyA3YTEuMDQgMS4wNCAwIDAgMCAuMDIgMS45N2wxLjM3LjQ1YTIuMzMgMi4zMyAwIDAgMSAxLjQ4IDEuNDhsLjQ2IDEuNGMuMDcuMi4yLjM3LjM4LjVabTYuMTQgNC4wNWEuOC44IDAgMCAwIDEuMjItLjRsLjI1LS43NmExLjA5IDEuMDkgMCAwIDEgLjY4LS42OGwuNzctLjI1YS44LjggMCAwIDAtLjAyLTEuNTJsLS43Ny0uMjVhMS4wOCAxLjA4IDAgMCAxLS42OC0uNjhsLS4yNS0uNzdhLjguOCAwIDAgMC0xLjUyLjAxbC0uMjQuNzZhMS4xIDEuMSAwIDAgMS0uNjcuNjhsLS43Ny4yNWEuOC44IDAgMCAwIDAgMS41MmwuNzcuMjVhMS4wOSAxLjA5IDAgMCAxIC42OC42OGwuMjUuNzdjLjA2LjE2LjE2LjMuMy40WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy40IDEyLjhhMS4wNCAxLjA0IDAgMCAwIDEuNTktLjUxbC40NS0xLjM3YTIuMzQgMi4zNCAwIDAgMSAxLjQ3LTEuNDhsMS40LS40NUExLjA0IDEuMDQgMCAwIDAgMTIuMjUgN2wtMS4zNy0uNDVBMi4zNCAyLjM0IDAgMCAxIDkuNCA1LjA4TDguOTUgMy43YTEuMDMgMS4wMyAwIDAgMC0uODItLjY4IDEuMDQgMS4wNCAwIDAgMC0xLjE1LjdsLS40NiAxLjRhMi4zNCAyLjM0IDAgMCAxLTEuNDQgMS40NUwzLjcgN2ExLjA0IDEuMDQgMCAwIDAgLjAyIDEuOTdsMS4zNy40NWEyLjMzIDIuMzMgMCAwIDEgMS40OCAxLjQ4bC40NiAxLjRjLjA3LjIuMi4zNy4zOC41Wm0uMDgtNy40LjUzLTEuMzguNDQgMS4zN2EzLjMzIDMuMzMgMCAwIDAgMi4xMiAyLjEybDEuNC41My0xLjM4LjQ1YTMuMzQgMy4zNCAwIDAgMC0yLjExIDIuMTFsLS41MyAxLjM4LS40NS0xLjM4YTMuMzQgMy4zNCAwIDAgMC0yLjEtMi4xMkw0IDcuOTYgNS40IDcuNWEzLjM2IDMuMzYgMCAwIDAgMi4wOC0yLjEyWm02LjA2IDExLjQ1YS44LjggMCAwIDAgMS4yMi0uNGwuMjUtLjc2YTEuMDkgMS4wOSAwIDAgMSAuNjgtLjY4bC43Ny0uMjVhLjguOCAwIDAgMC0uMDItMS41MmwtLjc3LS4yNWExLjA4IDEuMDggMCAwIDEtLjY4LS42OGwtLjI1LS43N2EuOC44IDAgMCAwLTEuNTIuMDFsLS4yNC43NmExLjEgMS4xIDAgMCAxLS42Ny42OGwtLjc3LjI1YS44LjggMCAwIDAgMCAxLjUybC43Ny4yNWExLjA5IDEuMDkgMCAwIDEgLjY4LjY4bC4yNS43N2MuMDYuMTYuMTYuMy4zLjRabS0uOTItMi44LS4xOC0uMDUuMTktLjA2YTIuMDkgMi4wOSAwIDAgMCAxLjMtMS4zMmwuMDYtLjE4LjA1LjE4YTIuMDggMi4wOCAwIDAgMCAxLjMyIDEuMzJsLjIuMDYtLjE4LjA2YTIuMDggMi4wOCAwIDAgMC0xLjMyIDEuMzJsLS4wNi4xOC0uMDYtLjE4YTIuMDcgMi4wNyAwIDAgMC0xLjMyLTEuMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlQ2lyY2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGVDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNOC44MiA1LjU4bC4yNi43M2MuMS4yOC4zMy41LjYxLjZsLjczLjI2YS44Ny44NyAwIDAgMSAwIDEuNjVsLS43My4yNmExIDEgMCAwIDAtLjYuNjFsLS4yNy43M2EuODcuODcgMCAwIDEtMS42NSAwbC0uMjUtLjczYTEgMSAwIDAgMC0uNjEtLjZsLS43My0uMjdhLjg4Ljg4IDAgMCAxIDAtMS42NWwuNzMtLjI1YTEgMSAwIDAgMCAuNi0uNjFsLjI2LS43M2EuODcuODcgMCAwIDEgMS42NSAwWk0xMS4zMyAxMGEuNy43IDAgMCAxIDEuMzQgMGwuMTguNmMuMDguMjYuMjkuNDcuNTYuNTVsLjYuMThhLjcuNyAwIDAgMSAwIDEuMzRsLS42LjE4YS44My44MyAwIDAgMC0uNTYuNTZsLS4xOC42YS43LjcgMCAwIDEtMS4zNCAwbC0uMTgtLjZhLjgzLjgzIDAgMCAwLS41Ni0uNTZsLS41OS0uMThhLjcuNyAwIDAgMSAwLTEuMzRsLjYtLjE4YS44My44MyAwIDAgMCAuNTUtLjU2bC4xOC0uNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGVDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabS04IDdhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTUuMTctNC40MmEuODcuODcgMCAwIDEgMS42NSAwbC4yNi43M2MuMS4yOC4zMy41LjYxLjZsLjczLjI2YS44Ny44NyAwIDAgMSAwIDEuNjVsLS43My4yNmExIDEgMCAwIDAtLjYuNjFsLS4yNy43M2EuODcuODcgMCAwIDEtMS42NSAwbC0uMjUtLjczYTEgMSAwIDAgMC0uNjEtLjZsLS43My0uMjdhLjg4Ljg4IDAgMCAxIDAtMS42NWwuNzMtLjI1YTEgMSAwIDAgMCAuNi0uNjFsLjI2LS43M1ptNS41IDQuNDJhLjcuNyAwIDAgMC0xLjM0IDBsLS4xOC42YS44My44MyAwIDAgMS0uNTYuNTVsLS41OS4xOGEuNy43IDAgMCAwIDAgMS4zNGwuNi4xOGMuMjYuMDguNDcuMjkuNTUuNTZsLjE4LjZhLjcuNyAwIDAgMCAxLjM0IDBsLjE4LS42YS44My44MyAwIDAgMSAuNTYtLjU2bC42LS4xOGEuNy43IDAgMCAwIDAtMS4zNGwtLjYtLjE4YS44My44MyAwIDAgMS0uNTYtLjU2bC0uMTgtLjU5WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhdHVsYVNwb29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXR1bGFTcG9vbkZpbGxlZCcsIFwiMWVtXCIsIFtcIm02LjQgMTItMi44IDIuNThoLS4wMWEyIDIgMCAwIDAgMi44MiAyLjgzaC4wMWwyLjY4LTIuOTJMNy4wMSAxMkg2LjRabTYuOTQtMi4wM2MuMzItLjIuNzMtLjMgMS4yLS4zN2E2LjUzIDYuNTMgMCAwIDAgMy40NC0xLjYzIDMuNSAzLjUgMCAxIDAtNC45NS00Ljk0IDYuNTMgNi41MyAwIDAgMC0xLjYzIDMuNDRjLS4wNi40Ny0uMTkuOS0uNCAxLjIzVjhsMi4zNCAxLjk2Wm0uMTYtNC40N2MuMjggMCAuNS4yMi41LjVhMSAxIDAgMCAwIDEgMSAuNS41IDAgMCAxIDAgMSAyIDIgMCAwIDEtMi0yYzAtLjI4LjIyLS41LjUtLjVaTTMuOTYgMi41OWEyIDIgMCAwIDEgMi44MyAwTDkuNDEgNS4yQTIgMiAwIDAgMSAxMCA2LjYydjEuNjNjMCAuMTQuMDcuMjguMTguMzhsNi4wNyA1LjA5LjAyLjAxYTIuNSAyLjUgMCAxIDEtMy41NCAzLjU0bC0uMDEtLjAyLTUuMDktNi4wN2EuNS41IDAgMCAwLS4zOC0uMThINS42MmEyIDIgMCAwIDEtMS40MS0uNTlMMS41OSA3LjhhMiAyIDAgMCAxIDAtMi44M0wzLjk2IDIuNlpNMy40IDYuMTVhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMSAwIC43LS43bC0yLTJhLjUuNSAwIDAgMC0uNyAwWk01Ljg1IDQuNGEuNS41IDAgMSAwLS43LjdsMiAyYS41LjUgMCAxIDAgLjctLjdsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXR1bGFTcG9vblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhdHVsYVNwb29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjA5IDMuM2ExIDEgMCAwIDAtMS40MiAwTDIuMyA1LjY2YTEgMSAwIDAgMCAwIDEuNDJMNC45MSA5LjdhMSAxIDAgMCAwIC43MS4yOWgxLjYzYy40NCAwIC44Ni4yIDEuMTUuNTRsNS4wNSA2LjAzYTEuNSAxLjUgMCAwIDAgMi4xMi0yLjEyTDkuNTQgOS40QTEuNSAxLjUgMCAwIDEgOSA4LjI1VjYuNjJhMSAxIDAgMCAwLS4zLS43TDYuMSAzLjI4Wm0tMi4xMy0uNzFhMiAyIDAgMCAxIDIuODMgMEw5LjQxIDUuMkEyIDIgMCAwIDEgMTAgNi42MnYxLjYzYzAgLjEyLjA0LjIzLjEyLjMybC42NC0uNTljLjM3LS4zMy41NS0uODguNjQtMS41MWE2LjUzIDYuNTMgMCAwIDEgMS42My0zLjQ0IDMuNSAzLjUgMCAxIDEgNC45NSA0Ljk0IDYuNTMgNi41MyAwIDAgMS0zLjQ1IDEuNjNjLS42My4wOS0xLjE4LjI3LTEuNTIuNjRsLS40LjQzIDMuNjQgMy4wNS4wMi4wMWEyLjUgMi41IDAgMSAxLTMuNTQgMy41NGwtLjAxLS4wMi0yLjk0LTMuNS0zLjM2IDMuNjZhMiAyIDAgMCAxLTIuODMtMi44MnYtLjAxbDMuODUtMy41NGEuNS41IDAgMCAwLS4yLS4wNEg1LjYzYTIgMiAwIDAgMS0xLjQxLS41OUwxLjU5IDcuOGEyIDIgMCAwIDEgMC0yLjgzTDMuOTYgMi42Wm03Ljg5IDcuNDQuNDMtLjQ2YTMuNDUgMy40NSAwIDAgMSAyLjEyLS45NiA1LjU0IDUuNTQgMCAwIDAgMi44Ny0xLjM0IDIuNSAyLjUgMCAwIDAtMy41NC0zLjU0Yy0uNi42LTEuMTkgMS43OS0xLjM0IDIuODctLjEuNy0uMzMgMS41NC0uOTUgMi4xMmwtLjU1LjUuOTYuODFabS0zLjczIDEuNzRMNC4zIDE1LjNBMSAxIDAgMCAwIDUuNyAxNi43bDMuNDQtMy43My0xLjAyLTEuMjFaTTQuMzUgNi4xNWEuNS41IDAgMSAwLS43LjdMNS40IDguNmEuNS41IDAgMSAwIC43LS43TDQuMzUgNi4xNVptLjgtMS41Yy4yLS4yLjUtLjIuNyAwTDcuNiA2LjRhLjUuNSAwIDEgMS0uNy43TDUuMTUgNS4zNWEuNS41IDAgMCAxIDAtLjdaTTE0IDZhLjUuNSAwIDAgMC0xIDBjMCAxLjEuOSAyIDIgMmEuNS41IDAgMCAwIDAtMSAxIDEgMCAwIDEtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODcgMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzUuMTNsMy44NyAzLjZhMSAxIDAgMCAwIDEuNjgtLjc0VjMuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg4IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM0LjEzbDMuODggMy42YTEgMSAwIDAgMCAxLjY4LS43NFYzLjAxWk03LjEyIDYuNiAxMSAzdjE0bC0zLjg4LTMuNkExLjUgMS41IDAgMCAwIDYuMSAxM0gzLjVhLjUuNSAwIDAgMS0uNS0uNXYtNWMwLS4yOC4yMi0uNS41LS41aDIuNmMuMzggMCAuNzUtLjE0IDEuMDItLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44NyAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNS4xM2wzLjg3IDMuNmExIDEgMCAwIDAgMS42OC0uNzRWMy4wMVptMi4wOCA5LjkzYS41LjUgMCAwIDEtLjE5LS42OCA0LjUgNC41IDAgMCAwIDAtNC41LjUuNSAwIDEgMSAuODctLjUgNS41IDUuNSAwIDAgMSAwIDUuNS41LjUgMCAwIDEtLjY4LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIxUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44OCAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNC4xM2wzLjg4IDMuNmExIDEgMCAwIDAgMS42OC0uNzRWMy4wMVpNNy4xMiA2LjYgMTEgM3YxNGwtMy44OC0zLjZBMS41IDEuNSAwIDAgMCA2LjEgMTNIMy41YS41LjUgMCAwIDEtLjUtLjV2LTVjMC0uMjguMjItLjUuNS0uNWgyLjZjLjM4IDAgLjc1LS4xNCAxLjAyLS40Wm02Ljk2IDYuMzNhLjUuNSAwIDAgMS0uMTgtLjY4IDQuNSA0LjUgMCAwIDAgMC00LjUuNS41IDAgMSAxIC44Ni0uNSA1LjUgNS41IDAgMCAxIDAgNS41LjUuNSAwIDAgMS0uNjguMThaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44NyAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNS4xM2wzLjg3IDMuNmExIDEgMCAwIDAgMS42OC0uNzRWMy4wMVptMy4yNSAxLjYzYS41LjUgMCAwIDEgLjcxLjA0IDggOCAwIDAgMSAwIDEwLjY2LjUuNSAwIDEgMS0uNzUtLjY2IDcgNyAwIDAgMCAwLTkuMzQuNS41IDAgMCAxIC4wNC0uN1ptLTEuMTcgOC4zYS41LjUgMCAwIDEtLjE5LS42OCA0LjUgNC41IDAgMCAwIDAtNC41LjUuNSAwIDEgMSAuODctLjUgNS41IDUuNSAwIDAgMSAwIDUuNS41LjUgMCAwIDEtLjY4LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44OCAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNC4xM2wzLjg4IDMuNmExIDEgMCAwIDAgMS42OC0uNzRWMy4wMVpNNy4xMiA2LjYgMTEgM3YxNGwtMy44OC0zLjZBMS41IDEuNSAwIDAgMCA2LjEgMTNIMy41YS41LjUgMCAwIDEtLjUtLjV2LTVjMC0uMjguMjItLjUuNS0uNWgyLjZjLjM4IDAgLjc1LS4xNCAxLjAyLS40Wm04LjE0LTEuOTdhLjUuNSAwIDAgMSAuNy4wNCA4IDggMCAwIDEgMCAxMC42Ni41LjUgMCAwIDEtLjc0LS42NiA3IDcgMCAwIDAgMC05LjM0LjUuNSAwIDAgMSAuMDQtLjdabS0xLjE4IDguM2EuNS41IDAgMCAxLS4xOC0uNjggNC41IDQuNSAwIDAgMCAwLTQuNS41LjUgMCAxIDEgLjg2LS41IDUuNSA1LjUgMCAwIDEgMCA1LjUuNS41IDAgMCAxLS42OC4xOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJsdWV0b290aEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC4zMiAyLjI3YTEgMSAwIDAgMSAxLjY4Ljc0djEzLjk4YTEgMSAwIDAgMS0xLjY4Ljc0bC0zLjg3LTMuNkEuNS41IDAgMCAwIDYuMSAxNEgzLjVBMS41IDEuNSAwIDAgMSAyIDEyLjV2LTVDMiA2LjY3IDIuNjcgNiAzLjUgNmgyLjZhLjUuNSAwIDAgMCAuMzUtLjEzbDMuODctMy42Wm01LjUzIDIuODhhLjUuNSAwIDAgMC0uODUuMzV2My40NmwtMS4xOS0uOTVhLjUuNSAwIDEgMC0uNjIuNzhMMTQuNyAxMGwtMS41MSAxLjIxYS41LjUgMCAxIDAgLjYyLjc4bDEuMTktLjk1djMuNDZhLjUuNSAwIDAgMCAuODUuMzVsMi41LTIuNWEuNS41IDAgMCAwLS4wNC0uNzRMMTYuMyAxMGwyLjAxLTEuNjFhLjUuNSAwIDAgMCAuMDQtLjc0bC0yLjUtMi41Wm0xLjQgNi45TDE2IDEzLjI4di0yLjI1bDEuMjUgMVpNMTYgNi43bDEuMjUgMS4yNS0xLjI1IDFWNi43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJCbHVldG9vdGhSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjMyIDIuMjdhMSAxIDAgMCAxIDEuNjguNzR2MTMuOThhMSAxIDAgMCAxLTEuNjguNzRsLTMuODgtMy42QS41LjUgMCAwIDAgNi4xIDE0SDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtNUMyIDYuNjcgMi42NyA2IDMuNSA2aDIuNmEuNS41IDAgMCAwIC4zNC0uMTNsMy44OC0zLjZabS42OC43NEw3LjEyIDYuNmMtLjI3LjI2LS42NC40LTEuMDIuNEgzLjVhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoMi42Yy4zOCAwIC43NS4xNCAxLjAyLjRMMTEgMTdWM1ptNC44NSAyLjE0YS41LjUgMCAwIDAtLjg1LjM1djMuNDZsLTEuMTktLjk1YS41LjUgMCAxIDAtLjYyLjc4TDE0LjcgMTBsLTEuNTEgMS4yMWEuNS41IDAgMSAwIC42Mi43OGwxLjE5LS45NXYzLjQ2YS41LjUgMCAwIDAgLjg1LjM1bDIuNS0yLjVhLjUuNSAwIDAgMC0uMDQtLjc0TDE2LjMgMTBsMi4wMS0xLjYxYS41LjUgMCAwIDAgLjA0LS43NGwtMi41LTIuNVptMS40IDYuOUwxNiAxMy4yOHYtMi4yNWwxLjI1IDFaTTE2IDYuN2wxLjI1IDEuMjUtMS4yNSAxVjYuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyQm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJCb3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA1YTMgMyAwIDAgMSAzLTNoNmEzIDMgMCAwIDEgMyAzdjEwYTMgMyAwIDAgMS0zIDNIN2EzIDMgMCAwIDEtMy0zVjVabTYgNWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRabS0zIDJhMyAzIDAgMSAwIDYgMCAzIDMgMCAwIDAtNiAwWm0zLTVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlckJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1YTMgMyAwIDAgMSAzLTNoNmEzIDMgMCAwIDEgMyAzdjEwYTMgMyAwIDAgMS0zIDNIN2EzIDMgMCAwIDEtMy0zVjVabTMtMmEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg3Wm0zIDdhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tMyAyYTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFptMy01YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg3IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM1LjEzbDIuODMgMi42My4xNS0uNmEzLjIgMy4yIDAgMCAxIC44NC0xLjVMMTIgMTIuOTVWM1ptMy45NiAxLjY2YTcuOTcgNy45NyAwIDAgMSAxLjk5IDQuNDZjLS4zNC0uMS0uNjgtLjE0LTEuMDItLjEyYTYuOTcgNi45NyAwIDAgMC0xLjcyLTMuNjcuNS41IDAgMCAxIC43NS0uNjdabS0xLjIgMi41OWMuNDEuNzIuNjUgMS41LjcyIDIuMjctLjE0LjEtLjI2LjItLjM4LjMybC0uNjMuNjNjLjEtLjkyLS4wOC0xLjg3LS41OC0yLjcyYS41LjUgMCAwIDEgLjg3LS41Wm0tMy43OCA4LjEyIDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY1bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wOGwuMzctMS41Yy4xLS4zOC4zLS43My41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlckVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44NyAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNS4xM2wyLjgzIDIuNjMuMTUtLjZjLjA0LS4xNy4xLS4zMi4xNi0uNDhMNy4xMyAxMy40QTEuNSAxLjUgMCAwIDAgNi4xIDEzSDMuNWEuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVoMi42Yy4zOCAwIC43NS0uMTUgMS4wMy0uNEwxMSAzdjEwLjk0bDEtMVYzWm0zLjk2IDEuNjZhNy45NyA3Ljk3IDAgMCAxIDEuOTkgNC40NmMtLjMzLS4xLS42OC0uMTQtMS4wMi0uMTJhNi45NyA2Ljk3IDAgMCAwLTEuNzEtMy42Ny41LjUgMCAwIDEgLjc0LS42N1ptLTEuMiAyLjU5Yy40Mi43Mi42NSAxLjUuNzIgMi4yNy0uMTMuMS0uMjYuMi0uMzguMzJsLS42Mi42MmMuMS0uOS0uMDktMS44Ni0uNTgtMi43MWEuNS41IDAgMCAxIC44Ni0uNVptLTMuNzggOC4xMiA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NWwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDhsLjM3LTEuNWMuMS0uMzguMy0uNzMuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJNdXRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJNdXRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg4IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM0LjEzbDMuODggMy42YTEgMSAwIDAgMCAxLjY4LS43NFYzLjAxWm0xLjE0IDQuNjVjLjItLjIuNTEtLjIuNzEgMGwxLjY1IDEuNjQgMS42NC0xLjY0YS41LjUgMCAxIDEgLjcxLjdMMTYuMiAxMGwxLjY1IDEuNjVhLjUuNSAwIDEgMS0uNy43bC0xLjY1LTEuNjQtMS42NSAxLjY0YS41LjUgMCAxIDEtLjctLjdMMTQuNzggMTBsLTEuNjUtMS42NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyTXV0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck11dGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg4IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM0LjEzbDMuODggMy42YTEgMSAwIDAgMCAxLjY4LS43NFYzLjAxWk03LjEyIDYuNiAxMSAzdjE0bC0zLjg4LTMuNkExLjUgMS41IDAgMCAwIDYuMSAxM0gzLjVhLjUuNSAwIDAgMS0uNS0uNXYtNWMwLS4yOC4yMi0uNS41LS41aDIuNmMuMzggMCAuNzUtLjE0IDEuMDItLjRabTYuMDIgMS4wNWMuMi0uMi41MS0uMi43MSAwbDEuNjUgMS42NCAxLjY0LTEuNjRhLjUuNSAwIDEgMSAuNzEuN0wxNi4yIDEwbDEuNjUgMS42NWEuNS41IDAgMSAxLS43LjdsLTEuNjUtMS42NC0xLjY1IDEuNjRhLjUuNSAwIDEgMS0uNy0uN0wxNC43OCAxMGwtMS42NS0xLjY1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDUuMjkgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNS4xM2wzLjg3IDMuNmExIDEgMCAwIDAgMS42OC0uNzR2LTQuMjhsNS4xNSA1LjE0YS41LjUgMCAwIDAgLjctLjdsLTIuNTYtMi41N0wyLjg1IDIuMTVabTEzLjExIDIuNTJhOCA4IDAgMCAxIC42NiA5LjgzbC0uNzMtLjczYTcgNyAwIDAgMC0uNjgtOC40NC41LjUgMCAxIDEgLjc1LS42NlptLTEuMiAyLjU4YzEgMS43NC45NSAzLjguMDQgNS40M2wtLjc0LS43NGE0LjUgNC41IDAgMCAwLS4xNy00LjE5LjUuNSAwIDEgMSAuODctLjVaTTEyIDMuMDF2Ni44N0w3LjI1IDUuMTNsMy4wNy0yLjg2YTEgMSAwIDAgMSAxLjY4Ljc0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlck9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w1LjI5IDZIMy41QzIuNjggNiAyIDYuNjcgMiA3LjV2NWMwIC44My42OCAxLjUgMS41IDEuNUg2LjFhLjUuNSAwIDAgMSAuMzQuMTNsMy44OCAzLjZhMSAxIDAgMCAwIDEuNjgtLjc0VjEyLjdsNS4xNSA1LjE1YS41LjUgMCAwIDAgLjctLjdsLTIuNTYtMi41N0wyLjg1IDIuMTVaTTExIDExLjdWMTdsLTMuODgtMy42QTEuNSAxLjUgMCAwIDAgNi4xIDEzSDMuNWEuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVoMi42bC4xOC0uMDFMMTEgMTEuN1pNMTEgM3Y1Ljg4bDEgMVYzYTEgMSAwIDAgMC0xLjY4LS43NEw3LjI0IDUuMTJsLjcxLjcxTDExIDMuMDFabTMuMDYgOC45NC43NC43NGE1LjUgNS41IDAgMCAwLS4wNC01LjQzLjUuNSAwIDEgMC0uODYuNSA0LjUgNC41IDAgMCAxIC4xNiA0LjE5Wm0xLjg0IDEuODQuNzIuNzJhOCA4IDAgMCAwLS42Ni05LjgzLjUuNSAwIDEgMC0uNzQuNjYgNyA3IDAgMCAxIC42OCA4LjQ1WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlclNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44NyAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNS4xM2wzLjIxIDIuOThBNS40OCA1LjQ4IDAgMCAxIDEyIDkuNlYzWm0uMDcgOC40NC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40NS0uMTJhMiAyIDAgMCAwIDEuNDQtMi40OFptMi40MyA0LjA2YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlclNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44OCAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNC4xM2wzLjIyIDIuOTlhNS40NiA1LjQ2IDAgMCAxLS42Mi0xLjk0TDcuMTIgMTMuNEExLjUgMS41IDAgMCAwIDYuMSAxM0gzLjVhLjUuNSAwIDAgMS0uNS0uNXYtNWMwLS4yOC4yMi0uNS41LS41aDIuNmMuMzggMCAuNzUtLjE0IDEuMDItLjRMMTEgM3Y3LjI2Yy4zLS4yNS42NC0uNDggMS0uNjZWM1ptLjA2IDguNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTYtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ3LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wm0yLjQ0IDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlclVzYkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyVXNiRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjMyIDIuMjdhMSAxIDAgMCAxIDEuNjguNzR2MTMuOThhMSAxIDAgMCAxLTEuNjguNzRsLTMuODctMy42QS41LjUgMCAwIDAgNi4xIDE0SDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtNUMyIDYuNjcgMi42NyA2IDMuNSA2aDIuNmEuNS41IDAgMCAwIC4zNS0uMTNsMy44Ny0zLjZaTTE0IDhWNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMSAxIDF2Mi4yYTEgMSAwIDAgMS0uMi42bC0xLjMgMS44VjE1YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMXYtMS40bC0xLjMxLTEuODRhMSAxIDAgMCAxLS4xOS0uNThWOWExIDEgMCAwIDEgMS0xWm0xIDBoMlY2aC0ydjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyVXNiUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyVXNiUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4zMiAyLjI3YTEgMSAwIDAgMSAxLjY4Ljc0djEzLjk4YTEgMSAwIDAgMS0xLjY4Ljc0bC0zLjg4LTMuNkEuNS41IDAgMCAwIDYuMSAxNEgzLjVBMS41IDEuNSAwIDAgMSAyIDEyLjV2LTVDMiA2LjY3IDIuNjcgNiAzLjUgNmgyLjZhLjUuNSAwIDAgMCAuMzQtLjEzbDMuODgtMy42Wm0uNjguNzRMNy4xMiA2LjZjLS4yNy4yNi0uNjQuNC0xLjAyLjRIMy41YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDIuNmMuMzggMCAuNzUuMTQgMS4wMi40TDExIDE3VjNaTTE0IDhWNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMSAxIDF2Mi4yYTEgMSAwIDAgMS0uMi42bC0xLjMgMS44VjE1YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMXYtMS40bC0xLjMxLTEuODRhMSAxIDAgMCAxLS4xOS0uNThWOWExIDEgMCAwIDEgMS0xWm0xIDBoMlY2aC0ydjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGlubmVySW9zRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwaW5uZXJJb3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMy41QTYuNSA2LjUgMCAwIDAgMy41IDEwIC43NS43NSAwIDAgMSAyIDEwYTggOCAwIDEgMSA4IDggLjc1Ljc1IDAgMCAxIDAtMS41IDYuNSA2LjUgMCAxIDAgMC0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwaW5uZXJJb3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwaW5uZXJJb3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDNhNyA3IDAgMCAwLTcgNyAuNS41IDAgMCAxLTEgMCA4IDggMCAxIDEgOCA4IC41LjUgMCAwIDEgMC0xIDcgNyAwIDEgMCAwLTE0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRIaW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0SGludEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjUgMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg0VjRINFptMTEgMWExIDEgMCAwIDEgMSAxdi41YS41LjUgMCAwIDAgMSAwVjZhMiAyIDAgMCAwLTItMmgtLjVhLjUuNSAwIDAgMCAwIDFoLjVabTAgMTBhMSAxIDAgMCAwIDEtMXYtLjVhLjUuNSAwIDAgMSAxIDB2LjVhMiAyIDAgMCAxLTIgMmgtLjVhLjUuNSAwIDAgMSAwLTFoLjVabTEuNS03YS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtLjUtLjVabS00LTRhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFoMVptLjUgMTEuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0SGludFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIaW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTIgNmMwLTEuMS45LTIgMi0yaDR2MUg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDR2MUg0YTIgMiAwIDAgMS0yLTJWNlptMTMtMWExIDEgMCAwIDEgMSAxdi41YS41LjUgMCAwIDAgMSAwVjZhMiAyIDAgMCAwLTItMmgtLjVhLjUuNSAwIDAgMCAwIDFoLjVabTAgMTBhMSAxIDAgMCAwIDEtMXYtLjVhLjUuNSAwIDAgMSAxIDB2LjVhMiAyIDAgMCAxLTIgMmgtLjVhLjUuNSAwIDAgMSAwLTFoLjVabTEuNS03YS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtLjUtLjVabS00LTRhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFoMVptLjUgMTEuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0SG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNSAxMGEuNS41IDAgMCAwIDAtMWgtMTVhLjUuNSAwIDAgMCAwIDFoMTVaTTE0IDJhMiAyIDAgMCAxIDIgMnY0SDRWNGMwLTEuMS45LTIgMi0yaDhaTTQgMTF2NGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtNEg0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRIb3Jpem9udGFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjUgMTBhLjUuNSAwIDAgMCAwLTFoLTE1YS41LjUgMCAwIDAgMCAxaDE1Wk0xNiA0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjRoMVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjRoMVY0Wm0wIDdoLTF2NGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtNEg0djRjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdFZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0VmVydGljYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVpNMiA2YzAtMS4xLjktMiAyLTJoNHYxMkg0YTIgMiAwIDAgMS0yLTJWNlptOSAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00djEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRWZXJ0aWNhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRWZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVpNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDR2LTFINGExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWg0VjRINFptNyAwdjFoNGExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtNHYxaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi41OCA0LjEzYTYgNiAwIDAgMSAuODMgMS4yOCAyIDIgMCAwIDEtMi40My4zMWwxLjYtMS42Wm0tLjctLjcxLTEuNiAxLjZhMiAyIDAgMCAxIC4zLTIuNDQgNiA2IDAgMCAxIDEuMy44NFpNMTggOGE2IDYgMCAwIDAtLjIxLTEuNTkgMi45OSAyLjk5IDAgMCAxLTMuNTMuMDRMMTMuMjEgNy41bDMuOCAzLjhjLjYzLS45NC45OS0yLjA4Ljk5LTMuM1ptLTUtNGMwLS42Ny4yMi0xLjI5LjU5LTEuNzlhNiA2IDAgMCAwLTQuOS43OGwzLjgxIDMuOCAxLjA1LTEuMDVBMi45OSAyLjk5IDAgMCAxIDEzIDRabS0xLjMgNWE4Ljk3IDguOTcgMCAwIDEgMi4yIDQuNyA2IDYgMCAwIDAgMi40OS0xLjZMMTIuNSA4LjJsLS44LjhabS4xLTEuNS0uOC44YTguOTcgOC45NyAwIDAgMC00LjctMi4yQTYgNiAwIDAgMSA3LjkgMy42bDMuOSAzLjg5Wk0zLjUgN0MyLjY3IDcgMiA3LjY3IDIgOC41VjEwYTggOCAwIDAgMCA4IDhoMS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNWE4IDggMCAwIDAtOC04SDMuNVptMi42NSA0LjE1Yy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjcgMTIuN2E1IDUgMCAwIDAgMS40Ni0uODNMOC4xMyA0Ljg0QTUgNSAwIDAgMCA3LjMgNi4zYTguOTUgOC45NSAwIDAgMC0xLS4yIDYgNiAwIDEgMSA3LjYgNy42IDguOTcgOC45NyAwIDAgMC0uMi0xWm0tMS00LjcgMy4xNyAzLjE2YTQuOTggNC45OCAwIDAgMCAxLjA2LTQuMDIgMi45OSAyLjk5IDAgMCAxLTMuMTctLjJMMTIuNzEgOFptMy4xNy0zLjE2LTEuMzkgMS4zOGEyIDIgMCAwIDAgMi4xNi0uMDggNSA1IDAgMCAwLS43Ny0xLjNaTTEyLjUgNC41YzAtLjUyLjEzLTEgLjM2LTEuNDNhNS4wMyA1LjAzIDAgMCAwLTQuMDIgMS4wNkwxMiA3LjI5bDEuMDUtMS4wNWEyLjk5IDIuOTkgMCAwIDEtLjU1LTEuNzRabTEgMGMwIC4zNy4xLjcyLjI4IDEuMDJsMS4zOC0xLjRhNSA1IDAgMCAwLTEuMy0uNzYgMiAyIDAgMCAwLS4zNiAxLjE0Wk0zLjUgOGEuNS41IDAgMCAwLS41LjVWMTBhNyA3IDAgMCAwIDcgN2gxLjVhLjUuNSAwIDAgMCAuNS0uNVYxNWE3IDcgMCAwIDAtNy03SDMuNVpNMiA4LjVDMiA3LjY3IDIuNjcgNyAzLjUgN0g1YTggOCAwIDAgMSA4IDh2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMGE4IDggMCAwIDEtOC04VjguNVptNC4xNSAyLjY1Yy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEFtZXJpY2FuRm9vdGJhbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRBbWVyaWNhbkZvb3RiYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjk0IDIuNjRBMTEuNjMgMTEuNjMgMCAwIDAgMi42IDEwLjlsNi42IDYuNmExMC45IDEwLjkgMCAwIDAgNi4wOC00LjA4IDEzLjMyIDEzLjMyIDAgMCAwIDIuMDctNC4zNWwtNi40Mi02LjQzWm0uOTEgNS41Yy4yLjIuMi41MiAwIC43MWwtMyAzYS41LjUgMCAwIDEtLjctLjdsMy0zYy4yLS4yLjUtLjIuNyAwWm01LjgtLjJjLjI2LTEuMy4zNi0yLjU2LjM1LTMuNzFBMi4yNSAyLjI1IDAgMCAwIDE1LjcgMmMtMS4zMi4wMi0yLjUzLjE1LTMuNjIuMzdsNS41NiA1LjU2Wm0tOS42IDkuODEtNS43Mi01LjcyQTE2LjEgMTYuMSAwIDAgMCAyIDE1Ljg0Yy4wNCAxLjE4IDEgMi4wOSAyLjE1IDIuMTQgMS40My4wNyAyLjcyLS4wMiAzLjg5LS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QW1lcmljYW5Gb290YmFsbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRBbWVyaWNhbkZvb3RiYWxsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS44NSA4Ljg1YS41LjUgMCAxIDAtLjctLjdsLTMgM2EuNS41IDAgMSAwIC43LjdsMy0zWk0xOCA0LjIzQTIuMjUgMi4yNSAwIDAgMCAxNS43IDJjLTUuNjIuMDctOS4xMiAyLjE1LTExLjE4IDQuOTYtMi4wNCAyLjc4LTIuNiA2LjItMi41MSA4Ljg4LjA0IDEuMTggMSAyLjA5IDIuMTUgMi4xNCA1LjUzLjI2IDkuMDMtMS43MyAxMS4xMy00LjU2IDIuMDctMi44IDIuNzMtNi4zNiAyLjcxLTkuMlpNMTUuNzEgM2MuNzIgMCAxLjI5LjU0IDEuMyAxLjIzIDAgLjktLjA3IDEuODYtLjIzIDIuODRsLTMuODQtMy44NEMxMy43OSAzLjA5IDE0LjcgMyAxNS43IDNabS0zLjk1LjQ2IDQuNzkgNC44Yy0uMzkgMS42LTEuMDQgMy4xOS0yLjA3IDQuNTZhMTAuMDEgMTAuMDEgMCAwIDEtNi4xIDMuODUuNS41IDAgMCAwLS4wMy0uMDJsLTQuOTMtNC45M2ExMS44IDExLjggMCAwIDEgMS45LTQuMTcgMTAuOCAxMC44IDAgMCAxIDYuNDQtNC4wOVpNMy4xOSAxMi45bDMuOTggMy45OWMtLjkuMTEtMS44OS4xNS0yLjk2LjFBMS4yNCAxLjI0IDAgMCAxIDMgMTUuODFjLS4wMy0uOTEuMDItMS45LjE4LTIuOTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEJhc2ViYWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0QmFzZWJhbGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBjMCAxLjU1LS40NCAzLTEuMiA0LjIyLS45NS0uNy0yLTEuMjQtMy4xNC0xLjYzYS41LjUgMCAxIDAtLjMyLjk1YzEuMDQuMzUgMiAuODYgMi44OCAxLjVhNy45OCA3Ljk4IDAgMCAxLTEyLjQ0IDBjLjg3LS42NCAxLjg0LTEuMTUgMi44OC0xLjVhLjUuNSAwIDAgMC0uMzItLjk1Yy0xLjEzLjM5LTIuMi45NC0zLjE0IDEuNjNhNy45NiA3Ljk2IDAgMCAxIDAtOC40M2MuOTQuNyAyIDEuMjUgMy4xNCAxLjYzYS41LjUgMCAxIDAgLjMyLS45NSAxMC40NyAxMC40NyAwIDAgMS0yLjg4LTEuNSA3Ljk4IDcuOTggMCAwIDEgMTIuNDQgMGMtLjg3LjY0LTEuODQgMS4xNS0yLjg4IDEuNWEuNS41IDAgMSAwIC4zMi45NWMxLjE0LS4zOCAyLjItLjk0IDMuMTQtMS42M0E3Ljk2IDcuOTYgMCAwIDEgMTggMTBabS04IDNjLjQ5IDAgLjk2LjAzIDEuNDMuMWEuNS41IDAgMSAwIC4xNC0xIDExLjYgMTEuNiAwIDAgMC0zLjE0IDAgLjUuNSAwIDAgMCAuMTQgMWMuNDctLjA3Ljk0LS4xIDEuNDMtLjFaTTguNTcgNi45MmEuNS41IDAgMCAwLS4xNC45OSAxMS42IDExLjYgMCAwIDAgMy4xNCAwIC41LjUgMCAxIDAtLjE0LTEgMTAuNiAxMC42IDAgMCAxLTIuODYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QmFzZWJhbGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0QmFzZWJhbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNjEgNS41M2E2Ljk5IDYuOTkgMCAwIDEgMTAuNzggMGMtLjY0LjM4LTEuMzMuNy0yLjA1Ljk0YS41LjUgMCAwIDAgLjMyLjk1Yy44MS0uMjcgMS41OS0uNjQgMi4zMS0xLjA4YTYuOTcgNi45NyAwIDAgMSAwIDcuMzNjLS43My0uNDQtMS41LS44LTIuMzEtMS4wOGEuNS41IDAgMCAwLS4zMi45NWMuNzIuMjQgMS40LjU2IDIuMDQuOTRhNi45OSA2Ljk5IDAgMCAxLTEwLjc2IDBjLjY0LS4zOCAxLjMyLS43IDIuMDQtLjk0YS41LjUgMCAxIDAtLjMyLS45NWMtLjgxLjI4LTEuNTguNjQtMi4zIDEuMDhhNi45NyA2Ljk3IDAgMCAxLS4wMS03LjMzYy43Mi40NCAxLjUuOCAyLjMxIDEuMDhhLjUuNSAwIDAgMCAuMzItLjk1Yy0uNzItLjI0LTEuNC0uNTYtMi4wNS0uOTRaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaTTguNTcgNi45MmExMC42IDEwLjYgMCAwIDAgMi44NiAwIC41LjUgMCAwIDEgLjE0Ljk5IDExLjYgMTEuNiAwIDAgMS0zLjE0IDAgLjUuNSAwIDAgMSAuMTQtMVptMCA2LjE4YTEwLjYgMTAuNiAwIDAgMSAyLjg2IDAgLjUuNSAwIDAgMCAuMTQtMSAxMS42IDExLjYgMCAwIDAtMy4xNCAwIC41LjUgMCAxIDAgLjE0IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEJhc2tldGJhbGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRCYXNrZXRiYWxsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNyA0QTcuOTcgNy45NyAwIDAgMSA5IDIuMDZjLjA3LjQzLjE0LjkxLjI0IDEuNC4xOC45LjQzIDEuODkuNzggMi43OS4yOC43MS42MiAxLjQgMS4wNiAxLjk2TDEwIDkuMyA0LjcgNFptLS43LjdBNy45NyA3Ljk3IDAgMCAwIDIuMDYgOWMuNDMuMDcuOS4xNCAxLjQuMjQuOS4xOCAxLjg5LjQzIDIuNzkuNzguNzEuMjggMS40LjYyIDEuOTYgMS4wNkw5LjI5IDEwIDQgNC43Wm0zLjUgNy4xYy0uNDMtLjMyLS45OS0uNi0xLjYxLS44NS0uODMtLjMxLTEuNzUtLjU1LTIuNjItLjcyLS40NS0uMS0uODgtLjE3LTEuMjctLjIyIDAgMi4wMi43NiAzLjg3IDIgNS4yOGwzLjUtMy41Wk00LjcgMTZsMy41LTMuNWMuMzIuNDMuNi45OC44NSAxLjYxLjMxLjgzLjU1IDEuNzUuNzIgMi42Mi4xLjQ1LjE3Ljg4LjIyIDEuMjdhNy45NyA3Ljk3IDAgMCAxLTUuMjgtMlptNC4yMi00LjIxTDEwIDEwLjcxIDE1LjMgMTZhNy45NyA3Ljk3IDAgMCAxLTQuMyAxLjk0Yy0uMDctLjQzLS4xNS0uOTEtLjI1LTEuNC0uMTgtLjktLjQzLTEuODktLjc3LTIuNzlhNy41NyA3LjU3IDAgMCAwLTEuMDYtMS45NlptNy4wOCAzLjVhNy45NyA3Ljk3IDAgMCAwIDEuOTQtNC4zIDE3LjM3IDE3LjM3IDAgMCAxLTQuMTgtMS4wMiA3LjU3IDcuNTcgMCAwIDEtMS45Ny0xLjA1TDEwLjcgMTAgMTYgMTUuM1pNMTIuNSA4LjJjLjQzLjMzLjk4LjYgMS42MS44NS44My4zMiAxLjc1LjU1IDIuNjIuNzIuNDUuMS44OC4xNyAxLjI3LjIyIDAtMi4wMi0uNzYtMy44Ny0yLTUuMjhsLTMuNSAzLjVaTTE1LjMgNEE3Ljk3IDcuOTcgMCAwIDAgMTAgMmMuMDYuNC4xNC44Mi4yMyAxLjI3LjE3Ljg3LjQgMS44LjcyIDIuNjIuMjQuNjMuNTMgMS4xOC44NSAxLjZMMTUuMyA0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRCYXNrZXRiYWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEJhc2tldGJhbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wibTEwIDkuMyAxLjA4LTEuMDlhNy41NyA3LjU3IDAgMCAxLTEuMDYtMS45NiAxNy4zNyAxNy4zNyAwIDAgMS0uODUtMy4yIDYuOTcgNi45NyAwIDAgMC0zLjc1IDEuNjZMMTAgOS4yOVptMS43OS0uMzhMMTAuNzEgMTBsNC41OCA0LjU4YTYuOTcgNi45NyAwIDAgMCAxLjY2LTMuNzVsLS40Mi0uMDdjLS45LS4xOC0xLjg4LS40My0yLjc3LS43OGE3LjU3IDcuNTcgMCAwIDEtMS45Ny0xLjA2Wm01LjIuOWE2Ljk3IDYuOTcgMCAwIDAtMS43LTQuNEwxMi41IDguMmMuNDMuMzIuOTkuNiAxLjYxLjg1YTE2LjM5IDE2LjM5IDAgMCAwIDIuODkuNzhaTTExLjggNy41bDIuOC0yLjhBNi45OCA2Ljk4IDAgMCAwIDEwLjE2IDNsLjA2LjI3Yy4xNy44Ny40IDEuOC43MiAyLjYyLjI1LjYyLjUzIDEuMTguODUgMS42Wk0xMCAxMC43IDguOTIgMTEuOGMuNDQuNTUuNzkgMS4yNSAxLjA2IDEuOTZhMTcuMzcgMTcuMzcgMCAwIDEgLjg2IDMuMiA2Ljk3IDYuOTcgMCAwIDAgMy43NC0xLjY2TDEwIDEwLjcxWm0tMS44IDEuOC0yLjc4IDIuOGE2Ljk3IDYuOTcgMCAwIDAgNC40IDEuN2MwLS4xLS4wMy0uMTgtLjA0LS4yNy0uMTgtLjg3LS40MS0xLjgtLjczLTIuNjJhNi44MyA2LjgzIDAgMCAwLS44NC0xLjZabS0uNy0uN2MtLjQzLS4zMy0uOTgtLjYtMS42MS0uODVBMTYuMzggMTYuMzggMCAwIDAgMyAxMC4xN2MuMDQgMS41OC42MSAzLjE1IDEuNyA0LjQxbDIuOC0yLjc5Wm0uNzEtLjcyTDkuMyAxMCA0LjcxIDUuNDJhNi45NyA2Ljk3IDAgMCAwLTEuNjYgMy43NGwuNDIuMDhjLjkuMTggMS44OC40MyAyLjc4Ljc4LjcyLjI4IDEuNC42MiAxLjk2IDEuMDZabTcuNDUgNC41OEE4IDggMCAxIDEgNC4zNCA0LjM0YTggOCAwIDAgMSAxMS4zMiAxMS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0SG9ja2V5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0SG9ja2V5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjk3IDIuMDZhMy43IDMuNyAwIDAgMSAzLjQ1IDEuM2wxLjcxIDEuOTNjLjc1Ljg0IDEuMDggMi4wMi43MyAzLjEzLTIuMSA2LjctNy4wMyA5LjA4LTEwLjE5IDkuNTUtLjkuMTQtMS43Ni0uMjItMi4zOS0uNzhsLTEuOC0xLjZBNC4wNyA0LjA3IDAgMCAxIDIuMiAxMS4yYzIuMTItNS45OSA2LjQ2LTguNDcgOS43Ni05LjE1Wm0yLjUyIDMuNTJhLjUuNSAwIDEgMC0uOTgtLjE2IDEwLjkgMTAuOSAwIDAgMS0zLjA1IDUuOSAxMC4zMiAxMC4zMiAwIDAgMS00LjEgMi43LjUuNSAwIDEgMCAuMjguOTZjMS4yNS0uMzYgMy0xLjM4IDQuNTMtMi45NmExMS44OSAxMS44OSAwIDAgMCAzLjMyLTYuNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEhvY2tleVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRIb2NrZXlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjk3IDIuMDZhMy43IDMuNyAwIDAgMSAzLjQ1IDEuM2wxLjcxIDEuOTNjLjc1Ljg0IDEuMDggMi4wMi43MyAzLjEzLTIuMSA2LjctNy4wMyA5LjA4LTEwLjE5IDkuNTUtLjkuMTQtMS43Ni0uMjItMi4zOS0uNzhsLTEuOC0xLjZBNC4wNyA0LjA3IDAgMCAxIDIuMiAxMS4yYzIuMTItNS45OSA2LjQ2LTguNDcgOS43Ni05LjE1Wm0yLjcgMS45N2MtLjY4LS43Ni0xLjYtMS4xNy0yLjUtLjk5LTMgLjYxLTcuMDMgMi44OS05LjAyIDguNS0uNCAxLjE1LjAyIDIuNDQuOTggMy4zbDEuODIgMS42Yy40Ni40MSAxLjAzLjYzIDEuNTcuNTQgMi44NS0uNDIgNy40MS0yLjU3IDkuMzktOC44Ni4yMy0uNzMuMDItMS41NS0uNTMtMi4xNmwtMS43MS0xLjkzWm0tLjYuOThjLjI4LjA0LjQ3LjMuNDIuNTdhMTEuODkgMTEuODkgMCAwIDEtMy4zMiA2LjQ0IDExLjI4IDExLjI4IDAgMCAxLTQuNTMgMi45Ni41LjUgMCAwIDEtLjI4LS45NmMxLjA1LS4zIDIuNjYtMS4yMiA0LjEtMi43YTEwLjkgMTAuOSAwIDAgMCAzLjA1LTUuOS41LjUgMCAwIDEgLjU3LS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0U29jY2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0U29jY2VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaTTcuMSAzLjYzbDIuNCAxLjR2MS43TDYuNzMgOC43bC0xLjU2LS41Ny0uNjItMi41MWE3LjAyIDcuMDIgMCAwIDEgMi41NC0xLjk4Wk0zLjAyIDEwLjdsMS44My0xLjYyIDEuNTUuNTYgMS4wNCAzLjNMNi43MyAxNEg0LjI1YTYuOTYgNi45NiAwIDAgMS0xLjIyLTMuM1ptNS4zNCA2LjEyLS44MS0yLjI1LjctMS4wNmgzLjQ3bC43MiAxLjA2LS44MiAyLjI1YTcuMDIgNy4wMiAwIDAgMS0zLjI2IDBaTTE1Ljc1IDE0aC0yLjQ4bC0uNzItMS4wOCAxLjAyLTMuMjkgMS41Ny0uNTYgMS44MyAxLjYyYTYuOTYgNi45NiAwIDAgMS0xLjIyIDMuM1ptLS4zLTguMzgtLjYyIDIuNS0xLjU4LjU3LTIuNzUtMS45NXYtMS43bDIuNC0xLjRjMSAuNDUgMS44OCAxLjEzIDIuNTYgMS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0U29jY2VyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydFNvY2NlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNOC4zNCAzLjJhNy4wMiA3LjAyIDAgMCAxIDMuMzMgMEwxMCA0LjE3IDguMzQgMy4yWm0tMS4yNS40MyAyLjQxIDEuNHYxLjdMNi43MyA4LjdsLTEuNTYtLjU3LS42Mi0yLjUxYTcuMDIgNy4wMiAwIDAgMSAyLjU0LTEuOThaTTMuOCA2Ljc1bC40IDEuNTgtMS4xNyAxLjAzYy4wOC0uOTQuMzUtMS44Mi43Ny0yLjYxWm0tLjc3IDMuOTQgMS44My0xLjYyIDEuNTUuNTYgMS4wNCAzLjNMNi43MyAxNEg0LjI1YTYuOTYgNi45NiAwIDAgMS0xLjIyLTMuM1pNNS4xIDE1aDEuNTVsLjUxIDEuNDFBNy4wMSA3LjAxIDAgMCAxIDUuMSAxNVptMy4yNyAxLjgyLS44MS0yLjI1LjctMS4wNmgzLjQ3bC43MiAxLjA2LS44MiAyLjI1YTcuMDIgNy4wMiAwIDAgMS0zLjI2IDBabTQuNDctLjQxLjUxLTEuNGgxLjU1YTcuMDIgNy4wMiAwIDAgMS0yLjA2IDEuNFptMi45LTIuNGgtMi40N2wtLjcyLTEuMDggMS4wMi0zLjI5IDEuNTctLjU2IDEuODMgMS42MmE2Ljk2IDYuOTYgMCAwIDEtMS4yMiAzLjNabTEuMjMtNC42NC0xLjE2LTEuMDMuNC0xLjU4Yy40LjguNjggMS42OC43NiAyLjZabS0xLjUxLTMuNzQtLjYzIDIuNS0xLjU4LjU3LTIuNzUtMS45NXYtMS43bDIuNC0xLjRjMSAuNDUgMS44OCAxLjEzIDIuNTYgMS45OFpNNy40IDkuNDUgMTAgNy42bDIuNTkgMS44NC0uOTYgMy4wNUg4LjM3TDcuNCA5LjQ1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTMtMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZBNS41IDUuNSAwIDAgMSAxNyA5LjZWNmEzIDMgMCAwIDAtMy0zSDZabTguNSAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxNGgxLjVhLjUuNSAwIDAgMSAwIDFIMTV2MS41YS41LjUgMCAwIDEtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTR2LTEuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZjLS4xNi0uMzItLjMtLjY1LS40LTFINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2My4yYy4zNS4xLjY4LjI0IDEgLjRWNmEzIDMgMCAwIDAtMy0zSDZabTguNSAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxNGgxLjVhLjUuNSAwIDAgMSAwIDFIMTV2MS41YS41LjUgMCAwIDEtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTR2LTEuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMy42QTUuNSA1LjUgMCAwIDEgMTcgOS42VjZhMyAzIDAgMCAwLTMtM0g2Wm04LjUgMTZhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS45LTYuNC45LjloLTEuNTVBMi43NSAyLjc1IDAgMCAwIDEyIDE2LjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDEuNTRsLS45LjlhLjUuNSAwIDAgMCAuNzEuN2wxLjc2LTEuNzVhLjUuNSAwIDAgMCAwLS43TDE2LjEgMTEuOWEuNS41IDAgMCAwLS43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVBcnJvd0ZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjMuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgzLjJjLjEuMzUuMjQuNjguNCAxSDZhMyAzIDAgMCAxLTMtM1Y2Wm0xMS41IDEzYTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0uOS02LjQuOS45aC0xLjU1QTIuNzUgMi43NSAwIDAgMCAxMiAxNi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxLjU0bC0uOS45YS41LjUgMCAwIDAgLjcxLjdsMS43Ni0xLjc1YS41LjUgMCAwIDAgMC0uN0wxNi4xIDExLjlhLjUuNSAwIDAgMC0uNy43WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZBNS41IDUuNSAwIDAgMSAxNyA5LjZWNmEzIDMgMCAwIDAtMy0zSDZabTguNSAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdsLTEuMTQgMS4xNSAxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0xLjE1LTEuMTQtMS4xNSAxLjE0YS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1LTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNCAxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMy42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjMuMmMuMzUuMS42OC4yNCAxIC40VjZhMyAzIDAgMCAwLTMtM0g2Wm04LjUgMTZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43bC0xLjE0IDEuMTUgMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS4xNS0xLjE0LTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNS0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTQgMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEb3ZldGFpbEpvaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMTEuNzVhLjUuNSAwIDAgMSAuNjgtLjQ3TDEyIDEyLjUzVjcuNDdMOC42NyA4LjdBLjUuNSAwIDAgMSA4IDguMjNWM0g2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDJ2LTUuMjVaTTE0IDNIOXY0LjUxbDMuMzMtMS4yM2EuNS41IDAgMCAxIC42Ny40N3Y2LjVhLjUuNSAwIDAgMS0uNjguNDdMOSAxMi40N1YxN2g1YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRG92ZXRhaWxKb2ludFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgM0g2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNaTTQgMTRWNmMwLTEuMS45LTIgMi0yaDJ2NC4yM2EuNS41IDAgMCAwIC42Ny40N0wxMiA3LjQ3djUuMDZsLTMuMzItMS4yNWEuNS41IDAgMCAwLS42OC40N1YxNkg2YTIgMiAwIDAgMS0yLTJabTEyIDBhMiAyIDAgMCAxLTIgMkg5di0zLjUzbDMuMzIgMS4yNWEuNS41IDAgMCAwIC42OC0uNDd2LTYuNWEuNS41IDAgMCAwLS42Ny0uNDdMOSA3LjUxdi0zLjVoNWEyIDIgMCAwIDEgMiAydjhWMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVFcmFzZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRXJhc2VyRmlsbGVkJywgXCIxZW1cIiwgW1wibTguNzMgMTMuNjQgNC45LTQuOUEyLjQ4IDIuNDggMCAwIDEgMTcgOC41OVY2YTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gyLjZhMi41IDIuNSAwIDAgMSAuMTMtMy4zNlptNy43NC00LjIgMi4xIDIuMWExLjUgMS41IDAgMCAxIDAgMi4xMmwtMy42IDMuNi00LjIyLTQuMjIgMy42LTMuNmExLjUgMS41IDAgMCAxIDIuMTIgMFptLTIuMjEgOC41Mi00LjIyLTQuMjItLjYuNmExLjUgMS41IDAgMCAwIDAgMi4xM2wyLjEgMi4xYTEuNSAxLjUgMCAwIDAgMS4xMi40M2g0LjA5YS41LjUgMCAwIDAgMC0xaC0yLjUzbC4wNC0uMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVFcmFzZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUVyYXNlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC4wOCAxNkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYyLjA4Yy4zNy4wOS43MS4yNiAxIC41VjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDIuNmEyLjQ3IDIuNDcgMCAwIDEtLjUyLTFabTEuMzYuNDdhMS41IDEuNSAwIDAgMSAwLTIuMTNsNC45LTQuOWExLjUgMS41IDAgMCAxIDIuMTIgMGwyLjEgMi4xYTEuNSAxLjUgMCAwIDEgMCAyLjEzTDE0LjIyIDE4aDIuNTNhLjUuNSAwIDAgMSAwIDFoLTQuMWExLjUgMS41IDAgMCAxLTEuMTItLjQ0bC0yLjEtMi4xWm01LjYxLTYuMzItMy42IDMuNiAyLjggMi44IDMuNi0zLjZhLjUuNSAwIDAgMCAwLS43MWwtMi4xLTIuMWEuNS41IDAgMCAwLS43IDBabS0xLjUgNy4xLTIuOC0yLjgtLjYuNmEuNS41IDAgMCAwIDAgLjcxbDIuMSAyLjFhLjUuNSAwIDAgMCAuNyAwbC42LS42WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMjUgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk0zIDEwLjc1YS43NS43NSAwIDAgMCAxLjUgMHYtMS41YS43NS43NSAwIDAgMC0xLjUgMHYxLjVabTUuNSA1LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTctNS41YS43NS43NSAwIDAgMCAxLjUgMHYtMS41YS43NS43NSAwIDAgMC0xLjUgMHYxLjVabS05LjUtN0EuNzUuNzUgMCAwIDAgNS4yNSAzQzQuMDEgMyAzIDQgMyA1LjI1YS43NS43NSAwIDAgMCAxLjUgMGMwLS40MS4zNC0uNzUuNzUtLjc1UzYgNC4xNiA2IDMuNzVaTTUuMjUgMTdhLjc1Ljc1IDAgMCAwIDAtMS41Ljc1Ljc1IDAgMCAxLS43NS0uNzUuNzUuNzUgMCAwIDAtMS41IDBDMyAxNS45OSA0IDE3IDUuMjUgMTdaTTE0IDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NUMxNS45OSAzIDE3IDQgMTcgNS4yNWEuNzUuNzUgMCAwIDEtMS41IDAgLjc1Ljc1IDAgMCAwLS43NS0uNzUuNzUuNzUgMCAwIDEtLjc1LS43NVpNMTQuNzUgMTdhLjc1Ljc1IDAgMCAxIDAtMS41Yy40MSAwIC43NS0uMzQuNzUtLjc1YS43NS43NSAwIDAgMSAxLjUgMGMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMy41YS41LjUgMCAwIDAtLjUtLjVBMi41IDIuNSAwIDAgMCAzIDUuNWEuNS41IDAgMCAwIDEgMEM0IDQuNjcgNC42NyA0IDUuNSA0YS41LjUgMCAwIDAgLjUtLjVaTTE2LjUgNmEuNS41IDAgMCAwIC41LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAgMCAxYy44MyAwIDEuNS42NyAxLjUgMS41IDAgLjI4LjIyLjUuNS41Wm0tMiAxMWEuNS41IDAgMCAxIDAtMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVhLjUuNSAwIDAgMSAxIDAgMi41IDIuNSAwIDAgMS0yLjUgMi41Wm0tMTEtM2EuNS41IDAgMCAwLS41LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdhLjUuNSAwIDAgMCAwLTFBMS41IDEuNSAwIDAgMSA0IDE0LjVhLjUuNSAwIDAgMC0uNS0uNVpNMyA5YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0xIDBWOVptMTMuNS0uNWEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMFY5YS41LjUgMCAwIDAtLjUtLjVabS04LTVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVpNOSAxNmEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50QXBwc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50QXBwc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk00LjA1IDUuNTRhMiAyIDAgMCAxIDEuNTUtMS41LjUuNSAwIDAgMCAuNC0uNTkuNS41IDAgMCAwLS42Ni0uMzggMyAzIDAgMCAwLTIuMjkgMi4zNC41LjUgMCAwIDAgLjQuNi41LjUgMCAwIDAgLjYtLjQ3Wm0wIDguOTJhMiAyIDAgMCAwIDEuNTUgMS41LjUuNSAwIDAgMSAuNC41OS41LjUgMCAwIDEtLjY2LjM4IDMgMyAwIDAgMS0yLjI5LTIuMzQuNS41IDAgMCAxIC40LS42LjUuNSAwIDAgMSAuNi40N1pNMTQuNjYgMy4wN2EuNS41IDAgMCAwLS42Ni4zOC41LjUgMCAwIDAgLjQ2LjYgMiAyIDAgMCAxIDEuNSAxLjU1LjUuNSAwIDAgMCAuNTkuNC41LjUgMCAwIDAgLjM4LS42NiAzIDMgMCAwIDAtMi4yNy0yLjI3Wk0zIDExLjVhLjUuNSAwIDAgMCAxIDB2LTNhLjUuNSAwIDAgMC0xIDB2M1pNNi41IDVDNS42NyA1IDUgNS42NyA1IDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2LS4yNUEyLjc1IDIuNzUgMCAwIDEgOS43NSAxMkgxMlY5Ljc1QTIuNzUgMi43NSAwIDAgMSAxNC43NSA3SDE1di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdaTTE5IDkuNzVDMTkgOC43OCAxOC4yMiA4IDE3LjI1IDhoLTIuNUMxMy43OCA4IDEzIDguNzggMTMgOS43NVYxM0g5Ljc1QzguNzggMTMgOCAxMy43OCA4IDE0Ljc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2Ljc1YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5Ljc1Wk0xNCAxM1Y5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NVYxM2gtNFptMi41IDVIMTR2LTRoNHYyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41Wm0tNi43NS00SDEzdjRIOS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50QXBwc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEFwcHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQuMDUgNS41NGEyIDIgMCAwIDEgMS41NS0xLjUuNS41IDAgMCAwIC40LS41OS41LjUgMCAwIDAtLjY2LS4zOCAzIDMgMCAwIDAtMi4yOSAyLjM0LjUuNSAwIDAgMCAuNC42LjUuNSAwIDAgMCAuNi0uNDdabTAgOC45MmEyIDIgMCAwIDAgMS41NSAxLjUuNS41IDAgMCAxIC40LjU5LjUuNSAwIDAgMS0uNjYuMzggMyAzIDAgMCAxLTIuMjktMi4zNC41LjUgMCAwIDEgLjQtLjYuNS41IDAgMCAxIC42LjQ3Wk0xNC42NiAzLjA3YS41LjUgMCAwIDAtLjY2LjM4LjUuNSAwIDAgMCAuNDYuNiAyIDIgMCAwIDEgMS41IDEuNTUuNS41IDAgMCAwIC41OS40LjUuNSAwIDAgMCAuMzgtLjY2IDMgMyAwIDAgMC0yLjI3LTIuMjdaTTMgMTEuNWEuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLTEgMHYzWm0xNi0xLjc1QzE5IDguNzggMTguMjIgOCAxNy4yNSA4aC0yLjVDMTMuNzggOCAxMyA4Ljc4IDEzIDkuNzVWMTNIOS43NUM4Ljc4IDEzIDggMTMuNzggOCAxNC43NXYyLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi43NWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOS43NVpNMTQgMTNWOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzVWMTNoLTRabTIuNSA1SDE0di00aDR2Mi41YzAgLjgzLS42NyAxLjUtMS41IDEuNVptLTYuNzUtNEgxM3Y0SDkuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEFycm93QmFja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50QXJyb3dCYWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMjUgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk0zIDEwLjc1YS43NS43NSAwIDAgMCAxLjUgMHYtMS41YS43NS43NSAwIDAgMC0xLjUgMHYxLjVabTQuNSA1LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWguODRjLjEuNTMuMjcgMS4wMy41MSAxLjVIOC4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptOC03LjE2Yy41My4xIDEuMDMuMjcgMS41LjUxVjguMjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi44NFpNNiAzLjc1QS43NS43NSAwIDAgMCA1LjI1IDNDNC4wMSAzIDMgNCAzIDUuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtLjQxLjM0LS43NS43NS0uNzVTNiA0LjE2IDYgMy43NVpNNS4yNSAxN2EuNzUuNzUgMCAwIDAgMC0xLjUuNzUuNzUgMCAwIDEtLjc1LS43NS43NS43NSAwIDAgMC0xLjUgMEMzIDE1Ljk5IDQgMTcgNS4yNSAxN1pNMTQgMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1QzE1Ljk5IDMgMTcgNCAxNyA1LjI1YS43NS43NSAwIDAgMS0xLjUgMCAuNzUuNzUgMCAwIDAtLjc1LS43NS43NS43NSAwIDAgMS0uNzUtLjc1Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzLjVhLjUuNSAwIDAgMC0uNS0uNUEyLjUgMi41IDAgMCAwIDMgNS41YS41LjUgMCAwIDAgMSAwQzQgNC42NyA0LjY3IDQgNS41IDRhLjUuNSAwIDAgMCAuNS0uNVpNMTYuNSA2YS41LjUgMCAwIDAgLjUtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNhLjUuNSAwIDAgMCAwIDFjLjgzIDAgMS41LjY3IDEuNSAxLjUgMCAuMjguMjIuNS41LjVabS0xMyA4YS41LjUgMCAwIDAtLjUuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2EuNS41IDAgMCAwIDAtMUExLjUgMS41IDAgMCAxIDQgMTQuNWEuNS41IDAgMCAwLS41LS41Wk0zIDlhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMFY5Wm0xMy41LTEuNWEuNS41IDAgMCAwLS41LjV2MS4yYy4zNS4xLjY4LjI0IDEgLjRWOGEuNS41IDAgMCAwLS41LS41Wk05LjYgMTdjLS4xNi0uMzItLjMtLjY1LS40LTFIOGEuNS41IDAgMCAwIDAgMWgxLjZaTTguNSAzLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVptNiAxNS41YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEhleGFnb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEhleGFnb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNhLjUuNSAwIDAgMSAwIDFDNC42NyA0IDQgNC42NyA0IDUuNWEuNS41IDAgMCAxLTEgMEEyLjUgMi41IDAgMCAxIDUuNSAzWk0xNyA1LjVhLjUuNSAwIDAgMS0xIDBjMC0uODMtLjY3LTEuNS0xLjUtMS41YS41LjUgMCAwIDEgMC0xQTIuNSAyLjUgMCAwIDEgMTcgNS41Wm0tMyAxMWMwIC4yOC4yMi41LjUuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjUuNS41IDAgMCAwLTEgMGMwIC44My0uNjcgMS41LTEuNSAxLjVhLjUuNSAwIDAgMC0uNS41Wm0tMTEtMmEuNS41IDAgMCAxIDEgMGMwIC44My42NyAxLjUgMS41IDEuNWEuNS41IDAgMCAxIDAgMUEyLjUgMi41IDAgMCAxIDMgMTQuNVptLjUtNkEuNS41IDAgMCAwIDMgOXYyYS41LjUgMCAwIDAgMSAwVjlhLjUuNSAwIDAgMC0uNS0uNVpNMTYgOWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtMSAwVjlaTTkgM2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDlabS0uNSAxMy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg5YS41LjUgMCAwIDEtLjUtLjVaTTcuMzMgNi42M2MuMjMtLjQuNjQtLjYzIDEuMDktLjYzaDMuMTdjLjQ0IDAgLjg2LjI0IDEuMDguNjNsMS41OCAyLjc1Yy4yMy4zOC4yMy44NiAwIDEuMjRsLTEuNTggMi43NWMtLjIyLjQtLjY0LjYzLTEuMDguNjNIOC40MmMtLjQ1IDAtLjg2LS4yNC0xLjA5LS42M2wtMS41OC0yLjc1YTEuMjUgMS4yNSAwIDAgMSAwLTEuMjRsMS41OC0yLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEhleGFnb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRIZXhhZ29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM2EuNS41IDAgMCAxIDAgMUM0LjY3IDQgNCA0LjY3IDQgNS41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgNS41IDNaTTE3IDUuNWEuNS41IDAgMCAxLTEgMGMwLS44My0uNjctMS41LTEuNS0xLjVhLjUuNSAwIDAgMSAwLTFBMi41IDIuNSAwIDAgMSAxNyA1LjVabS0zIDExYzAgLjI4LjIyLjUuNS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNS41LjUgMCAwIDAtMSAwYzAgLjgzLS42NyAxLjUtMS41IDEuNWEuNS41IDAgMCAwLS41LjVabS0xMS0yYS41LjUgMCAwIDEgMSAwYzAgLjgzLjY3IDEuNSAxLjUgMS41YS41LjUgMCAwIDEgMCAxQTIuNSAyLjUgMCAwIDEgMyAxNC41Wm0uNS02QS41LjUgMCAwIDAgMyA5djJhLjUuNSAwIDAgMCAxIDBWOWEuNS41IDAgMCAwLS41LS41Wk0xNiA5YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0xIDBWOVpNOSAzYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFIOVptLS41IDEzLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVptLS4zLTkuMzdBLjI1LjI1IDAgMCAxIDguNDIgN2gzLjE3Yy4wOSAwIC4xNy4wNS4yMS4xM2wxLjU5IDIuNzVjLjA0LjA3LjA0LjE3IDAgLjI0bC0xLjU5IDIuNzVhLjI1LjI1IDAgMCAxLS4yMS4xM0g4LjQyYS4yNS4yNSAwIDAgMS0uMjItLjEzbC0xLjU5LTIuNzVhLjI1LjI1IDAgMCAxIDAtLjI0TDguMiA3LjEzWk04LjQyIDZjLS40NSAwLS44Ni4yNC0xLjA5LjYzTDUuNzUgOS4zOGMtLjIzLjM4LS4yMy44NiAwIDEuMjRsMS41OCAyLjc1Yy4yMy40LjY0LjYzIDEuMDkuNjNoMy4xN2MuNDQgMCAuODYtLjI0IDEuMDgtLjYzbDEuNTgtMi43NWMuMjMtLjM4LjIzLS44NiAwLTEuMjRsLTEuNTgtMi43NUExLjI1IDEuMjUgMCAwIDAgMTEuNTkgNkg4LjQyWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludFNwYXJrbGVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRTcGFya2xlc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTAgMy41YzAtLjE3LjA0LS4zNC4xLS41aC0uODVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuMThhMS40MyAxLjQzIDAgMCAxLS40My0xWm0tNi4yNSA4YS43NS43NSAwIDAgMS0uNzUtLjc1di0xLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm01LjUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk01LjI1IDNhLjc1Ljc1IDAgMCAxIDAgMS41Ljc1Ljc1IDAgMCAwLS43NS43NS43NS43NSAwIDAgMS0xLjUgMEMzIDQuMDEgNCAzIDUuMjUgM1pNNiAxNi4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1QzQuMDEgMTcgMyAxNiAzIDE0Ljc1YS43NS43NSAwIDAgMSAxLjUgMGMwIC40MS4zNC43NS43NS43NXMuNzUuMzQuNzUuNzVabTggMGMwIC40MS4zNC43NS43NS43NSAxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNWEuNzUuNzUgMCAwIDAtMS41IDBjMCAuNDEtLjM0Ljc1LS43NS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludFNwYXJrbGVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXNSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMCAzLjVjMC0uMTcuMDQtLjM0LjEtLjVIOWEuNS41IDAgMCAwIDAgMWgxLjFjLS4wNi0uMTYtLjEtLjMzLS4xLS41Wk01LjUgM2EuNS41IDAgMCAxIDAgMUM0LjY3IDQgNCA0LjY3IDQgNS41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgNS41IDNaTTE0IDE2LjVjMCAuMjguMjIuNS41LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41LjUuNSAwIDAgMC0xIDBjMCAuODMtLjY3IDEuNS0xLjUgMS41YS41LjUgMCAwIDAtLjUuNVptLTExLTJhLjUuNSAwIDAgMSAxIDBjMCAuODMuNjcgMS41IDEuNSAxLjVhLjUuNSAwIDAgMSAwIDFBMi41IDIuNSAwIDAgMSAzIDE0LjVabS41LTZBLjUuNSAwIDAgMCAzIDl2MmEuNS41IDAgMCAwIDEgMFY5YS41LjUgMCAwIDAtLjUtLjVabTUgOGMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFIOWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4wOSA0SDUuMDVBMi41IDIuNSAwIDAgMSA3LjUgMkgxNGE0IDQgMCAwIDEgNCA0djYuNWEyLjUgMi41IDAgMCAxLTIgMi40NXYtMS4wNGMuNTgtLjIgMS0uNzYgMS0xLjQxVjZhMyAzIDAgMCAwLTMtM0g3LjVjLS42NSAwLTEuMi40Mi0xLjQxIDFaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOEEyLjUgMi41IDAgMCAxIDE1IDcuNXY4YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOEEyLjUgMi41IDAgMCAxIDIgMTUuNXYtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZU11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4wOSA0SDUuMDVBMi41IDIuNSAwIDAgMSA3LjUgMkgxNGE0IDQgMCAwIDEgNCA0djYuNWEyLjUgMi41IDAgMCAxLTIgMi40NXYtMS4wNGMuNTgtLjIgMS0uNzYgMS0xLjQxVjZhMyAzIDAgMCAwLTMtM0g3LjVjLS42NSAwLTEuMi40Mi0xLjQxIDFaTTQuNSA1QTIuNSAyLjUgMCAwIDAgMiA3LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxOGg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOEEyLjUgMi41IDAgMCAwIDEyLjUgNWgtOFpNMyA3LjVDMyA2LjY3IDMuNjcgNiA0LjUgNmg4Yy44MyAwIDEuNS42NyAxLjUgMS41djhjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMyAxNS41di04WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlU2hhZG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZVNoYWRvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRINnYxLjVBMi41IDIuNSAwIDAgMCA4LjUgMThoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDZIMTRWNC41QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03Wm0tMSAyLjVhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2N2ExIDEgMCAwIDEtMSAxaC03YTEgMSAwIDAgMS0xLTF2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVTaGFkb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZVNoYWRvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE0SDZ2MS41QTIuNSAyLjUgMCAwIDAgOC41IDE4aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA2SDE0VjQuNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtN1pNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxMS41di03WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlc05lc3RlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVzTmVzdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YxLjc2QTIuOTkgMi45OSAwIDAgMCAxNSA3aC01YTMgMyAwIDAgMC0zIDN2NWMwIC43Ny4yOSAxLjQ3Ljc2IDJINmEzIDMgMCAwIDEtMy0zVjZabTcgMTFoNGEzIDMgMCAwIDAgMy0zdi00YTIgMiAwIDAgMC0yLTJoLTVhMiAyIDAgMCAwLTIgMnY1YzAgMS4xLjkgMiAyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVzTmVzdGVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVzTmVzdGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0xMCA0Ljc2QTIuOTkgMi45OSAwIDAgMCAxNCA3aC00YTMgMyAwIDAgMC0zIDN2NGMwIC43Ny4yOSAxLjQ3Ljc2IDJINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MS43NlpNMTAgMTZhMiAyIDAgMCAxLTItMnYtNGMwLTEuMS45LTIgMi0yaDRhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDNhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg0Wm0uMjcgMTFjLjM0LjYuOTkgMSAxLjczIDFoNmE0IDQgMCAwIDAgNC00VjdhMiAyIDAgMCAwLTEtMS43M1YxMWEzIDMgMCAwIDEtMyAzSDQuMjdabTIgMmMuMzQuNi45OSAxIDEuNzMgMWg0YTYgNiAwIDAgMCA2LTZWOWEyIDIgMCAwIDAtMS0xLjczVjExYTUgNSAwIDAgMS01IDVINi4yN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNVptMi0xYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINFptMiAxMWEyIDIgMCAwIDEtMS43My0xSDEyYTMgMyAwIDAgMCAzLTNWNS4yN2MuNi4zNCAxIC45OSAxIDEuNzN2NGE0IDQgMCAwIDEtNCA0SDZabTIgMmEyIDIgMCAwIDEtMS43My0xSDEyYTUgNSAwIDAgMCA1LTVWNy4yN2MuNi4zNCAxIC45OSAxIDEuNzN2MmE2IDYgMCAwIDEtNiA2SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0FkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja0FkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNkgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWN2gxLjVhLjUuNSAwIDAgMCAwLTFINlY0LjVaTTUuNSAxMmE1LjUgNS41IDAgMCAwIDQuOS04SDEyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMS4yNkE1LjQ4IDUuNDggMCAwIDAgNS41IDEyWm0tMS4yMyAzYy4zNC42Ljk5IDEgMS43MyAxaDZhNCA0IDAgMCAwIDQtNFY4YTIgMiAwIDAgMC0xLTEuNzNWMTJhMyAzIDAgMCAxLTMgM0g0LjI3Wm0yIDJjLjM0LjYuOTkgMSAxLjczIDFoNGE2IDYgMCAwIDAgNi02di0yYTIgMiAwIDAgMC0xLTEuNzNWMTJhNSA1IDAgMCAxLTUgNUg2LjI3WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2tBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWNkgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWN2gxLjVhLjUuNSAwIDAgMCAwLTFINlY0LjVabTYgLjVoLTEuMmMtLjEtLjM1LS4yNC0uNjgtLjQtMUgxMmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEuMjZjLjMuMjYuNjQuNDggMSAuNjZ2LjZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xWk02IDE2YTIgMiAwIDAgMS0xLjczLTFIMTJhMyAzIDAgMCAwIDMtM1Y2LjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y0YTQgNCAwIDAgMS00IDRINlptMiAyYTIgMiAwIDAgMS0xLjczLTFIMTJhNSA1IDAgMCAwIDUtNVY4LjI3Yy42LjM0IDEgLjk5IDEgMS43M3YyYTYgNiAwIDAgMS02IDZIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrQXJyb3dGb3J3YXJkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQXJyb3dGb3J3YXJkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgMTBhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabTEuNi03LjFhLjUuNSAwIDAgMC0uNy43bC45LjloLTEuNTVBMi43NSAyLjc1IDAgMCAwIDEyIDcuMjV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMS41NGwtLjkuOWEuNS41IDAgMCAwIC43MS43bDEuNzYtMS43NWEuNS41IDAgMCAwIDAtLjdMMTYuMSAyLjlaTTQgM2g1LjZhNS41IDUuNSAwIDAgMCA0LjQgNy45OFYxMWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJabTExIDcuOThjLjM0LS4wMy42OC0uMSAxLS4xOVYxMWE0IDQgMCAwIDEtNCA0SDZhMiAyIDAgMCAxLTEuNzMtMUgxMmEzIDMgMCAwIDAgMy0zdi0uMDJabTMtMS4yNGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42YTUgNSAwIDAgMS01IDVINi4yN2MuMzQuNi45OSAxIDEuNzMgMWg0YTYgNiAwIDAgMCA2LTZWOS43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrQXJyb3dGb3J3YXJkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja0Fycm93Rm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAxMGE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptMS42LTcuMWEuNS41IDAgMCAwLS43LjdsLjkuOWgtMS41NUEyLjc1IDIuNzUgMCAwIDAgMTIgNy4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxLjU0bC0uOS45YS41LjUgMCAwIDAgLjcxLjdsMS43Ni0xLjc1YS41LjUgMCAwIDAgMC0uN0wxNi4xIDIuOVpNMTQgMTF2LS4wMmMtLjM0LS4wMy0uNjgtLjEtMS0uMTlWMTFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDUuMmMuMS0uMzUuMjQtLjY4LjQtMUg0YTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlptMS0uMDJjLjM0LS4wMy42OC0uMSAxLS4xOVYxMWE0IDQgMCAwIDEtNCA0SDZhMiAyIDAgMCAxLTEuNzMtMUgxMmEzIDMgMCAwIDAgMy0zdi0uMDJabTMtMS4yNGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42YTUgNSAwIDAgMS01IDVINi4yN2MuMzQuNi45OSAxIDEuNzMgMWg0YTYgNiAwIDAgMCA2LTZWOS43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrU3RhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1N0YXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAzYTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINFptNC4zMyAyLjA4LjkxIDEuNzMgMS44LjIyYS4zOC4zOCAwIDAgMSAuMi42N0w5LjkxIDguNzRsLjQ1IDEuOTNhLjM4LjM4IDAgMCAxLS41Ni40TDggMTBsLTEuOCAxLjA4YS4zOC4zOCAwIDAgMS0uNTctLjRsLjQ1LTEuOTNMNC43NyA3LjdhLjM4LjM4IDAgMCAxIC4xOS0uNjdsMS44LS4yMi45LTEuNzNhLjM4LjM4IDAgMCAxIC42NyAwWk00LjI3IDE0Yy4zNC42Ljk5IDEgMS43MyAxaDZhNCA0IDAgMCAwIDQtNFY3YTIgMiAwIDAgMC0xLTEuNzNWMTFhMyAzIDAgMCAxLTMgM0g0LjI3Wm0yIDJjLjM0LjYuOTkgMSAxLjczIDFoNGE2IDYgMCAwIDAgNi02VjlhMiAyIDAgMCAwLTEtMS43M1YxMWE1IDUgMCAwIDEtNSA1SDYuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja1N0YXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrU3RhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCA0Ljc1Yy4xOSAwIC4zNi4xLjQ0LjI3bC44OCAxLjY4IDEuNzQuMmEuNS41IDAgMCAxIC4yNS45bC0xLjI1IDEgLjQzIDEuODRhLjUuNSAwIDAgMS0uNzUuNTRMOCAxMC4xNGwtMS43NCAxLjA0YS41LjUgMCAwIDEtLjc1LS41NGwuNDMtMS44NS0xLjI1LTFhLjUuNSAwIDAgMSAuMjUtLjg4bDEuNzQtLjIxLjg4LTEuNjhBLjUuNSAwIDAgMSA4IDQuNzVaTTIgNWMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVabTItMWExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDRabTIgMTFhMiAyIDAgMCAxLTEuNzMtMUgxMmEzIDMgMCAwIDAgMy0zVjUuMjdjLjYuMzQgMSAuOTkgMSAxLjczdjRhNCA0IDAgMCAxLTQgNEg2Wm0yIDJhMiAyIDAgMCAxLTEuNzMtMUgxMmE1IDUgMCAwIDAgNS01VjcuMjdjLjYuMzQgMSAuOTkgMSAxLjczdjJhNiA2IDAgMCAxLTYgNkg4WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2tWZXJ0aWNhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1ZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXYxMC43NWEuNzUuNzUgMCAwIDEtMS41IDBWMTMuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2Mi43NWEuNzUuNzUgMCAwIDEtMS41IDBWNS41Wm0xLjUgNS43Yy4zLS4xMy42NC0uMiAxLS4yaDljLjM2IDAgLjcuMDcgMSAuMlY5LjVhMSAxIDAgMCAwLTEtMWgtOWExIDEgMCAwIDAtMSAxdjEuN1ptMTEtNS43YTEgMSAwIDAgMC0xLTFoLTlhMSAxIDAgMCAwLTEgMXYxLjdjLjMtLjEzLjY0LS4yIDEtLjJoOWMuMzYgMCAuNy4wNyAxIC4yVjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrVmVydGljYWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXYxMWEuNS41IDAgMCAxLTEgMHYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTljLS44MyAwLTEuNS42Ny0xLjUgMS41djNhLjUuNSAwIDAgMS0xIDB2LTExWm0xIDZjLjQyLS4zMS45NC0uNSAxLjUtLjVoOWMuNTYgMCAxLjA4LjE5IDEuNS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDggNCA4LjY3IDQgOS41djJabTEyLTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2MmMuNDItLjMxLjk0LS41IDEuNS0uNWg5Yy41NiAwIDEuMDguMTkgMS41LjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNS43MyA0LjNhMSAxIDAgMCAxLTEuNDUgMS4wNUwxMCAxNS41MWwtMy44NiAyLjAzYTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNS43MyA0LjNhMSAxIDAgMCAxLTEuNDUgMS4wNUwxMCAxNS41MWwtMy44NiAyLjAzYTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wm0uOS40NEw4LjA3IDcuMjVhMSAxIDAgMCAxLS43NS41NUwzIDguNDNsMy4xMiAzLjA0YTEgMSAwIDAgMSAuMy44OWwtLjc1IDQuMyAzLjg3LTIuMDNhMSAxIDAgMCAxIC45MyAwbDMuODYgMi4wMy0uNzQtNC4zYTEgMSAwIDAgMSAuMjktLjg5TDE3IDguNDNsLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLS41NS41NGE1LjUgNS41IDAgMCAwLTcuOTYgNi4yNmwtMy4wNSAxLjZhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMSAwIDAgMUgxNHYxLjVhLjUuNSAwIDEgMCAxIDBWMTVoMS41YS41LjUgMCAxIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtLjU1LjU0YTUuNDYgNS40NiAwIDAgMC0xLS40M2wuODUtLjgyLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVsLTEuOTMgMy45YTEgMSAwIDAgMS0uNzUuNTVMMyA4LjQzbDMuMTIgMy4wNGExIDEgMCAwIDEgLjMuODlsLS43NSA0LjMgMy4zNS0xLjc2Yy4wMi4zNi4wOC43LjE3IDEuMDRsLTMuMDUgMS42YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDEgMCAwIDFIMTR2MS41YS41LjUgMCAxIDAgMSAwVjE1aDEuNWEuNS41IDAgMSAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFycm93QmFja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQXJyb3dCYWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0uNTUuNTRhNS41IDUuNSAwIDAgMC03Ljk2IDYuMjZsLTMuMDUgMS42YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93QmFja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLS41NS41NGE1LjQ3IDUuNDcgMCAwIDAtMS0uNDNsLjg1LS44Mi00LjMyLS42M2ExIDEgMCAwIDEtLjc1LS41NUwxMCAzLjM1bC0xLjkzIDMuOWExIDEgMCAwIDEtLjc1LjU1TDMgOC40M2wzLjEyIDMuMDRhMSAxIDAgMCAxIC4zLjg5bC0uNzUgNC4zIDMuMzQtMS43NmMuMDMuMzYuMDkuNy4xOCAxLjA0bC0zLjA1IDEuNmExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0RW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd1JpZ2h0RW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjkgMi41NmExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjQ1bC00LjMxLjYyYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wMy0uNzQgNC4yOGExIDEgMCAwIDAgMS40NSAxLjA1bDMuMDUtMS42YTUuNDYgNS40NiAwIDAgMSA1LjMxLTYuOWMuOTYgMCAxLjg2LjI0IDIuNjUuNjdsLjU1LS41M2ExIDEgMCAwIDAtLjU2LTEuN2wtNC4zMS0uNjItMS45My0zLjlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjE1IDIuMzVhLjUuNSAwIDAgMS0uNy0uN0wxNS4yOSAxNUgxMi41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0RW5kUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQXJyb3dSaWdodEVuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuOSAyLjU2YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuNDVsLTQuMzEuNjJhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjAzLS43NCA0LjI4YTEgMSAwIDAgMCAxLjQ1IDEuMDVsMy4wNS0xLjZhNS40NCA1LjQ0IDAgMCAxLS4xNy0xLjAzbC0zLjM1IDEuNzUuNzQtNC4yOGExIDEgMCAwIDAtLjI5LS44OEwzIDguMDZsNC4zMi0uNjNhMSAxIDAgMCAwIC43NS0uNTRMMTAgMi45OWwxLjkzIDMuOWMuMTUuMy40My41Ljc1LjU0bDQuMzIuNjMtLjg1LjgyYy4zNS4xMS42OS4yNSAxIC40MmwuNTUtLjUzYTEgMSAwIDAgMC0uNTYtMS43bC00LjMxLS42Mi0xLjkzLTMuOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAwLTkgMCA0LjUgNC41IDAgMCAwIDkgMFptLTQuMTUgMi4zNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDE1SDEyLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNWwtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFycm93UmlnaHRTdGFydEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQXJyb3dSaWdodFN0YXJ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMSAyLjU2YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOSA0LjMxLjY0YTEgMSAwIDAgMSAuNTYgMS43bC0zLjEzIDMuMDUuNzQgNC4zYTEgMSAwIDAgMS0xLjQ1IDEuMDVsLTIuOTgtMS41N2E1LjUyIDUuNTIgMCAwIDAtNy44LTYuMDdMMi4zIDguOGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi41NlpNNS41IDEwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVBLjUuNSAwIDAgMCA4IDE0LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDYuMjkgMTRIMy41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dSaWdodFN0YXJ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQXJyb3dSaWdodFN0YXJ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjEgMi41NmExIDEgMCAwIDEgMS44IDBsMS45MyAzLjg5IDQuMzEuNjJhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTMgMy4wMy43NCA0LjI4YTEgMSAwIDAgMS0xLjQ1IDEuMDVsLTIuOTctMS41NWMuMDctLjM1LjEtLjcuMTEtMS4wN2wzLjMzIDEuNzQtLjc0LTQuMjhhMSAxIDAgMCAxIC4yOS0uODhMMTcgOC4wNmwtNC4zMi0uNjNhMSAxIDAgMCAxLS43NS0uNTRMMTAgMi45OSA4LjA3IDYuOWExIDEgMCAwIDEtLjc1LjU0TDMgOC4wNmwxLjE0IDEuMWMtLjM2LjEtLjcuMjMtMS4wNC4zOWwtLjgtLjc4YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYyIDEuOTMtMy45Wk01LjUgMTBhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NUEuNS41IDAgMCAwIDggMTQuNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMNi4yOSAxNEgzLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC45IDIuOWExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNWwzLjA1LTEuNmE1LjUgNS41IDAgMCAxIDcuOTYtNi4yNmwuNTUtLjU0YTEgMSAwIDAgMC0uNTYtMS43bC00LjMxLS42M0wxMC45IDIuOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQ2hlY2ttYXJrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC45IDIuOWExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNWwzLjA1LTEuNmE1LjQ5IDUuNDkgMCAwIDEtLjE4LTEuMDRsLTMuMzQgMS43Ni43NC00LjNhMSAxIDAgMCAwLS4yOS0uODlMMyA4LjQzbDQuMzItLjYzYTEgMSAwIDAgMCAuNzUtLjU1TDEwIDMuMzVsMS45MyAzLjljLjE1LjMuNDMuNS43NS41NWw0LjMyLjYzLS44NS44MmMuMzUuMTEuNjkuMjYgMSAuNDNsLjU1LS41NGExIDEgMCAwIDAtLjU2LTEuN2wtNC4zMS0uNjNMMTAuOSAyLjlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckRpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckRpc21pc3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLS41NS41NGE1LjUgNS41IDAgMCAwLTcuOTYgNi4yNmwtMy4wNSAxLjZhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckRpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtLjU1LjU0YTUuNDcgNS40NyAwIDAgMC0xLS40M2wuODUtLjgyLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVsLTEuOTMgMy45YTEgMSAwIDAgMS0uNzUuNTVMMyA4LjQzbDMuMTIgMy4wNGExIDEgMCAwIDEgLjMuODlsLS43NSA0LjMgMy4zNC0xLjc2Yy4wMy4zNi4wOS43LjE4IDEuMDRsLTMuMDUgMS42YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1bDMuNDMtMS44Yy4xNi0uNC40LS43Ni43LTEuMDdsNC44My00LjgzYTIuODcgMi44NyAwIDAgMSAyLjY3LS43NyAxIDEgMCAwIDAtLjYzLTEuNjNsLTQuMzEtLjYzTDEwLjkgMi45Wm00LjkgNy42NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC45IDIuOWExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNWwzLjQzLTEuOGMuMTYtLjQuNC0uNzYuNy0xLjA3bC4xLS4wOWExIDEgMCAwIDAtLjgzLjA1bC0zLjg3IDIuMDMuNzQtNC4zYTEgMSAwIDAgMC0uMjktLjg5TDMgOC40M2w0LjMyLS42M2ExIDEgMCAwIDAgLjc1LS41NUwxMCAzLjM1bDEuOTMgMy45Yy4xNS4zLjQzLjUuNzUuNTVsNC4zMi42My0uNzIuN2MuNDgtLjE1IDEtLjE3IDEuNDktLjA2YTEgMSAwIDAgMC0uNjMtMS42M2wtNC4zMS0uNjNMMTAuOSAyLjlabTQuOSA3LjY1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTsiLCJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgY3JlYXRlRmx1ZW50SWNvbiB9IGZyb20gXCIuLi91dGlscy9jcmVhdGVGbHVlbnRJY29uXCI7XG5leHBvcnQgY29uc3QgU3RhckVtcGhhc2lzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFbXBoYXNpc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtMy4xMiAzLjA1LjczIDQuM2ExIDEgMCAwIDEtMS40NSAxLjA1TDEwIDE1LjUxbC0zLjg2IDIuMDNhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlaTTQuNCAxMi42OWEuNS41IDAgMCAxLS4wOC43bC0yLjUgMmEuNS41IDAgMSAxLS42Mi0uNzhsMi41LTJhLjUuNSAwIDAgMSAuNy4wOFpNNC4zMSA1LjFhLjUuNSAwIDEgMS0uNjIuNzhsLTIuNS0yYS41LjUgMCAxIDEgLjYyLS43OGwyLjUgMlptMTEuMyA3LjU4YS41LjUgMCAwIDAgLjA4LjdsMi41IDJhLjUuNSAwIDEgMCAuNjItLjc4bC0yLjUtMmEuNS41IDAgMCAwLS43LjA4Wm0uMDgtNy41OGEuNS41IDAgMCAwIC42Mi43OGwyLjUtMmEuNS41IDAgMSAwLS42Mi0uNzhsLTIuNSAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckVtcGhhc2lzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRW1waGFzaXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0zLjEyIDMuMDUuNzMgNC4zYTEgMSAwIDAgMS0xLjQ1IDEuMDVMMTAgMTUuNTFsLTMuODYgMi4wM2ExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVptLjkuNDRMOC4wNyA3LjI1YTEgMSAwIDAgMS0uNzUuNTVMMyA4LjQzbDMuMTIgMy4wNGExIDEgMCAwIDEgLjMuODlsLS43NSA0LjMgMy44Ny0yLjAzYTEgMSAwIDAgMSAuOTMgMGwzLjg2IDIuMDMtLjc0LTQuM2ExIDEgMCAwIDEgLjI5LS44OUwxNyA4LjQzbC00LjMyLS42M2ExIDEgMCAwIDEtLjc1LS41NUwxMCAzLjM1Wk00LjQgMTIuN2EuNS41IDAgMCAxLS4wOC43bC0yLjUgMmEuNS41IDAgMSAxLS42Mi0uNzhsMi41LTJhLjUuNSAwIDAgMSAuNy4wOFpNNC4zMSA1LjFhLjUuNSAwIDEgMS0uNjIuNzhsLTIuNS0yYS41LjUgMCAxIDEgLjYyLS43OGwyLjUgMlptMTEuMyA3LjU4YS41LjUgMCAwIDAgLjA4LjdsMi41IDJhLjUuNSAwIDEgMCAuNjItLjc4bC0yLjUtMmEuNS41IDAgMCAwLS43LjA4Wm0uMDgtNy41OGEuNS41IDAgMCAwIC42Mi43OGwyLjUtMmEuNS41IDAgMSAwLS42Mi0uNzhsLTIuNSAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckhhbGZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckhhbGZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMi4zNGEuOTkuOTkgMCAwIDAtLjkuNTZMNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNUwxMCAxNS41MVYyLjM0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckhhbGZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJIYWxmUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjEgMi45YS45OS45OSAwIDAgMSAuOS0uNTZjLjM2IDAgLjcxLjE5LjkuNTZsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNS43MyA0LjNhMSAxIDAgMCAxLTEuNDUgMS4wNUwxMCAxNS41MWwtMy44NiAyLjAzYTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wk0xMCAxNC41YTEgMSAwIDAgMSAuNDcuMTJsMy44NiAyLjAzLS43NC00LjNhMSAxIDAgMCAxIC4yOS0uODlMMTcgOC40M2wtNC4zMi0uNjNhMSAxIDAgMCAxLS43NS0uNTVMMTAgMy4zNVYxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckxpbmVIb3Jpem9udGFsM0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyTGluZUhvcml6b250YWwzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1TDExIDE0Ljk4VjEzLjVjMC0uODMuNjctMS41IDEuNS0xLjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMS0uMDctM0wxMC45IDIuOVptMS42IDcuMWEuNS41IDAgMSAwIDAgMWg1YS41LjUgMCAxIDAgMC0xaC01Wk0xMiA3LjVjMC0uMjguMjMtLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS41IDUuNWEuNS41IDAgMSAwIDAgMWg1YS41LjUgMCAxIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckxpbmVIb3Jpem9udGFsM1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckxpbmVIb3Jpem9udGFsM1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBMMTIuOTIgN2g0LjU4YS41LjUgMCAxIDEgMCAxaC00LjU4YTEgMSAwIDAgMS0uOS0uNTZMMTAgMy4zNCA4LjA3IDcuMjVhMSAxIDAgMCAxLS43NS41NUwzIDguNDNsMy4xMiAzLjA0YTEgMSAwIDAgMSAuMy44OWwtLjc1IDQuMyA0LjEtMi4xNmEuNS41IDAgMCAxIC40Ni44OWwtNC4wOSAyLjE1YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wm0yLjkgNy42YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMSAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDEgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3Rhck9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg2IDIuMTVhLjUuNSAwIDEgMC0uNzEuN2w0LjEgNC4xLTMuNC40OWExIDEgMCAwIDAtLjU1IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1TDEwIDE1LjUxbDMuODYgMi4wM2ExIDEgMCAwIDAgMS40NS0xLjA1bC0uMS0uNTcgMS45NCAxLjkzYS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMS43MiAxMC4wNC4wNS4zMi02Ljg3LTYuODhMOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODYgMi4xNWEuNS41IDAgMSAwLS43MS43bDQuMSA0LjEtMy40LjQ5YTEgMSAwIDAgMC0uNTUgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVMMTAgMTUuNTFsMy44NiAyLjAzYTEgMSAwIDAgMCAxLjQ1LTEuMDVsLS4xLS41NyAxLjk0IDEuOTNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEzLjk5IDE0LjdsLjM0IDEuOTYtMy44Ni0yLjAzYTEgMSAwIDAgMC0uOTMgMGwtMy44NyAyLjAzLjc0LTQuM2ExIDEgMCAwIDAtLjI5LS44OUwzIDguNDNsNC4xMi0uNkwxNCAxNC43Wm0tLjExLTMuMjNhMSAxIDAgMCAwLS4xMy4xNmwuODguODgtLjA1LS4zMiAzLjEyLTMuMDVhMSAxIDAgMCAwLS41Ni0xLjdsLTQuMzEtLjYzTDEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3Ljc2IDUuNjNsLjc0Ljc1TDEwIDMuMzRsMS45MyAzLjkxYy4xNS4zLjQzLjUuNzUuNTVsNC4zMi42My0zLjEyIDMuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT25lUXVhcnRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT25lUXVhcnRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDUuMTQgNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNUw4IDE2LjU2VjUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT25lUXVhcnRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3Rhck9uZVF1YXJ0ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw4IDUuMTNsLS44MyAxLjY4LTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNUwxMCAxNS41MWwzLjg2IDIuMDNhMSAxIDAgMCAwIDEuNDUtMS4wNWwtLjczLTQuMyAzLjEyLTMuMDVhMSAxIDAgMCAwLS41NS0xLjdsLTQuMzItLjYzTDEwLjkgMi45Wk04IDE1LjQzVjcuMzdhMSAxIDAgMCAwIC4wNy0uMTJMMTAgMy4zNWwxLjkzIDMuOWMuMTUuMy40My41Ljc2LjU1bDQuMzEuNjMtMy4xMiAzLjA0YTEgMSAwIDAgMC0uMjkuODlsLjc0IDQuMy0zLjg2LTIuMDNhMSAxIDAgMCAwLS45MyAwbC0xLjU0LjhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyUHJvaGliaXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtLjU1LjU0YTUuNSA1LjUgMCAwIDAtNy45NiA2LjI2bC0zLjA1IDEuNmExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVptLjkgMTEuNmE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzggMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyUHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclByb2hpYml0ZWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0uNTUuNTRhNS40NiA1LjQ2IDAgMCAwLTEtLjQzbC44NS0uODItNC4zMi0uNjNhMSAxIDAgMCAxLS43NS0uNTVMMTAgMy4zNWwtMS45MyAzLjlhMSAxIDAgMCAxLS43NS41NUwzIDguNDNsMy4xMiAzLjA0YTEgMSAwIDAgMSAuMy44OWwtLjc1IDQuMyAzLjM1LTEuNzZjLjAyLjM2LjA4LjcuMTcgMS4wNGwtMy4wNSAxLjZhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlabS45IDExLjZhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVptMy41IDMuNWMtLjc4IDAtMS41MS0uMjYtMi4xLS43bDQuOS00LjlhMy41IDMuNSAwIDAgMS0yLjggNS42WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC45IDIuOWExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNWwzLjA1LTEuNmE1LjUgNS41IDAgMCAxIDcuOTYtNi4yNmwuNTUtLjU0YTEgMSAwIDAgMC0uNTYtMS43bC00LjMxLS42M0wxMC45IDIuOVptLS4yNyAxMS4wMi0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1YTIgMiAwIDAgMS0xLjQ0IDIuNDhabTQuODcuNThhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyU2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1bDMuMDUtMS42YTUuNDkgNS40OSAwIDAgMS0uMTgtMS4wNGwtMy4zNCAxLjc2Ljc0LTQuM2ExIDEgMCAwIDAtLjI5LS44OUwzIDguNDNsNC4zMi0uNjNhMSAxIDAgMCAwIC43NS0uNTVMMTAgMy4zNWwxLjkzIDMuOWMuMTUuMy40My41Ljc1LjU1bDQuMzIuNjMtLjg1LjgyYy4zNS4xMS42OS4yNiAxIC40M2wuNTUtLjU0YTEgMSAwIDAgMC0uNTYtMS43bC00LjMxLS42M0wxMC45IDIuOVptLS4yNyAxMS4wMmEyIDIgMCAwIDAgMS40NC0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40NS0uMTJabTQuODcuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclRocmVlUXVhcnRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDUuMTMgMTAuOSAyLjlhMSAxIDAgMCAwLTEuOCAwTDcuMTcgNi44bC00LjMxLjYzYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVMMTAgMTUuNTFsMiAxLjA1VjUuMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyVGhyZWVRdWFydGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMC45IDIuOSAxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtMy4xMiAzLjA1LjczIDQuM2ExIDEgMCAwIDEtMS40NSAxLjA1TDEwIDE1LjUxbC0zLjg2IDIuMDNhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwWk0xMiA3LjM3djguMDZsMi4zMyAxLjIzLS43NC00LjNhMSAxIDAgMCAxIC4yOS0uODlMMTcgOC40M2wtNC4zMi0uNjNhMSAxIDAgMCAxLS42OC0uNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGF0dXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjM1IDIuNjVhMi42MiAyLjYyIDAgMCAwLTMuNyAwbC01LjUgNS41YS41LjUgMCAwIDAtLjE0LjIzbC0xIDRhLjUuNSAwIDAgMCAuNjEuNmw0LTFhLjUuNSAwIDAgMCAuMjMtLjEzbDUuNS01LjVhMi42MiAyLjYyIDAgMCAwIDAtMy43Wm0tMS40IDYuNTNhNiA2IDAgMSAxLTUuMTItNS4xMmwuODUtLjg2QTcuMDIgNy4wMiAwIDAgMCAzIDEwYTcgNyAwIDEgMCAxMy44LTEuNjhsLS44Ni44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXR1c1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy4zNSAyLjY1YTIuNjIgMi42MiAwIDAgMC0zLjcgMGwtNS41IDUuNWEuNS41IDAgMCAwLS4xNC4yM2wtMSA0YS41LjUgMCAwIDAgLjYxLjZsNC0xYS41LjUgMCAwIDAgLjIzLS4xM2w1LjUtNS41YTIuNjIgMi42MiAwIDAgMCAwLTMuN1ptLTMgLjdhMS42MiAxLjYyIDAgMCAxIDIuMyAyLjNsLTUuNCA1LjQtMy4wNi43Ni43Ni0zLjA1IDUuNC01LjRaTTEwIDRjLjI4IDAgLjU1LjAyLjgyLjA2bC44Ni0uODZBNy4wMiA3LjAyIDAgMCAwIDMgMTBhNyA3IDAgMSAwIDEzLjgtMS42OGwtLjg2Ljg2QTYgNiAwIDEgMSAxMCA0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGVwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDJhMSAxIDAgMCAwLTEgMXY0SDhhMSAxIDAgMCAwLTEgMXY0SDNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMTJhMyAzIDAgMCAwIDMtM1YzYTEgMSAwIDAgMC0xLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGVwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjEyYTMgMyAwIDAgMS0zIDNIM2ExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoNFY4YTEgMSAwIDAgMSAxLTFoNFYzWm01IDBoLTR2NGExIDEgMCAwIDEtMSAxSDh2NGExIDEgMCAwIDEtMSAxSDN2NGgxMmEyIDIgMCAwIDAgMi0yVjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGVwc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSAzYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjRoLTFWM2gtM3YzYTEgMSAwIDAgMS0xIDFIOHYzYTEgMSAwIDAgMS0xIDFINHYzaDR2MUg0YTEgMSAwIDAgMS0xLTF2LTNhMSAxIDAgMCAxIDEtMWgzVjdhMSAxIDAgMCAxIDEtMWgzVjNabTIgNmExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXY1LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEwYTEgMSAwIDAgMS0xLTF2LTNhMSAxIDAgMCAxIDEtMWgzVjlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RlcHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExIDNhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2NGgtMVYzaC0zdjNhMSAxIDAgMCAxLTEgMUg4djNhMSAxIDAgMCAxLTEgMUg0djNoNHYxSDRhMSAxIDAgMCAxLTEtMXYtM2ExIDEgMCAwIDEgMS0xaDNWN2ExIDEgMCAwIDEgMS0xaDNWM1ptMyA1YTEgMSAwIDAgMC0xIDF2M2gtM2ExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg1LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjlhMSAxIDAgMCAwLTEtMWgtM1ptMCAxaDN2NS41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYtM2gzYTEgMSAwIDAgMCAxLTFWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0ZXRob3Njb3BlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXRob3Njb3BlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgMmEuNzUuNzUgMCAwIDAtLjc1Ljc1djVhNC41IDQuNSAwIDAgMCAzLjc1IDQuNDR2MS4wNmE1LjI1IDUuMjUgMCAxIDAgMTAuNSAwdi0xLjFhMi43NSAyLjc1IDAgMSAwLTEuNSAwdjEuMWEzLjc1IDMuNzUgMCAxIDEtNy41IDB2LTEuMDZBNC41IDQuNSAwIDAgMCAxMSA3Ljc1di01YS43NS43NSAwIDAgMC0uNzUtLjc1aC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41aC43NXY0LjI1YTMgMyAwIDEgMS02IDBWMy41aC43NWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVpNMTUuNSA4LjI1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGV0aG9zY29wZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RldGhvc2NvcGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSAyYS41LjUgMCAwIDAtLjUuNXY1YTQuNSA0LjUgMCAwIDAgNCA0LjQ3VjEzYTUgNSAwIDAgMCAxMCAwdi0xLjA1YTIuNSAyLjUgMCAxIDAtMSAwVjEzYTQgNCAwIDEgMS04IDB2LTEuMDNhNC41IDQuNSAwIDAgMCA0LTQuNDd2LTVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwIDAgMUgxMHY0LjVhMy41IDMuNSAwIDAgMS03IDBWM2gxLjVhLjUuNSAwIDAgMCAwLTFoLTJabTEzIDZhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGlja2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0aWNrZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDV2LTMuMDhhNS44NyA1Ljg3IDAgMCAxLTMuNDctLjQ3IDQuMiA0LjIgMCAwIDEtLjg2LS41N2wtLjAxLS4wMmgtLjAxYS41LjUgMCAwIDEgLjctLjcyIDEgMSAwIDAgMCAuMTQuMTJjLjEuMDcuMjYuMTguNDguM0E0LjUgNC41IDAgMCAwIDEwIDEzYy40MyAwIC44MS0uMDUgMS4xNS0uMTRhMi43NSAyLjc1IDAgMCAxIDIuNi0xLjg2SDE3VjZhMyAzIDAgMCAwLTMtM0g2Wm0xLjUgNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTYtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0uNyA4LjQxYTIgMiAwIDAgMS0uOC41di0zLjE2YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDMuMTVhMiAyIDAgMCAxLS40OS44TDEyLjggMTYuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0aWNrZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0aWNrZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSA5YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNMyA2djhhMyAzIDAgMCAwIDMgM2g1LjM4YTEuOTcgMS45NyAwIDAgMCAxLjQxLS41OWwzLjYyLTMuNjJhMiAyIDAgMCAwIC41OS0xLjQxVjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDNabTEzIDB2NWgtMi4yNWMtMS4yIDAtMi4yNC43OC0yLjYgMS44Ni0uMzQuMDktLjcyLjE0LTEuMTUuMTRhNC41IDQuNSAwIDAgMS0yLjUxLS43NCAxLjk3IDEuOTcgMCAwIDEtLjE0LS4xMS41LjUgMCAwIDAtLjcuN3YuMDFsLjAyLjAyYTIgMiAwIDAgMCAuMjIuMTggNS41IDUuNSAwIDAgMCA0LjExLjg2VjE2SDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAyWm0tMy45MSA5LjdhMSAxIDAgMCAxLS4wOS4wOHYtMi4wM2MwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjAzbC0uMDcuMDktMy42MiAzLjYyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RpY2tlckFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGlja2VyQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZhNS41IDUuNSAwIDAgMC03Ljc4IDMuMzQgNC4yMyA0LjIzIDAgMCAxLTEuNzMtLjY4IDEuOTcgMS45NyAwIDAgMS0uMTQtLjExLjUuNSAwIDAgMC0uNy43di4wMWwuMDIuMDJhMiAyIDAgMCAwIC4yMi4xOCA1LjIyIDUuMjIgMCAwIDAgMi4xNC44N0E1LjU2IDUuNTYgMCAwIDAgOS42IDE3SDZhMyAzIDAgMCAxLTMtM1Y2Wm00LjUgM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTYtMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTUuNSA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGlja2VyQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGlja2VyQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2My42Yy0uMzItLjE2LS42NS0uMy0xLS40VjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDMuMmMuMS4zNS4yNC42OC40IDFINmEzIDMgMCAwIDEtMy0zVjZabTQuOTcgNi41NWMuMy4xNS43Mi4zMSAxLjI1LjQtLjA5LjMtLjE2LjY0LS4xOS45N2E1LjIyIDUuMjIgMCAwIDEtMi4xNC0uODYgMi45MyAyLjkzIDAgMCAxLS4yMi0uMThsLS4wMS0uMDJoLS4wMWEuNS41IDAgMCAxIC43LS43MiAxIDEgMCAwIDAgLjE0LjEyYy4xLjA3LjI2LjE4LjQ4LjNaTTcuNSA5YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNS41IDYuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3BGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3BSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjUgNGMuMjggMCAuNS4yMi41LjV2MTFhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di0xMWMwLS4yOC4yMi0uNS41LS41aDExWm0tMTEtMUMzLjY3IDMgMyAzLjY3IDMgNC41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcmFnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDguNUEyLjUgMi41IDAgMCAxIDQuNSA2aDExQTIuNSAyLjUgMCAwIDEgMTggOC41djNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTEuNXYtM1pNMTMgOWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTMgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yYWdlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMyA5YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNMiA4LjVBMi41IDIuNSAwIDAgMSA0LjUgNmgxMUEyLjUgMi41IDAgMCAxIDE4IDguNXYzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDExLjV2LTNaTTQuNSA3QzMuNjcgNyAzIDcuNjcgMyA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JlTWljcm9zb2Z0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JlTWljcm9zb2Z0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMi41VjRIMi41YS41LjUgMCAwIDAtLjUuNXYxMEEyLjUgMi41IDAgMCAwIDQuNSAxN2gxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEwYS41LjUgMCAwIDAtLjUtLjVIMTNWMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM0M3LjY3IDEgNyAxLjY3IDcgMi41Wk04LjUgMmgzYy4yOCAwIC41LjIyLjUuNVY0SDhWMi41YzAtLjI4LjIyLS41LjUtLjVabS0yIDhWN2gzdjNoLTNabTAgNHYtM2gzdjNoLTNabTctNGgtM1Y3aDN2M1ptLTMgNHYtM2gzdjNoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yZU1pY3Jvc29mdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcmVNaWNyb3NvZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNSA3djNoLTNWN2gzWm0wIDd2LTNoLTN2M2gzWm00LTd2M2gtM1Y3aDNabTAgN3YtM2gtM3YzaDNaTTcgNFYyLjVDNyAxLjY3IDcuNjcgMSA4LjUgMWgzYy44MyAwIDEuNS42NyAxLjUgMS41VjRoNC41Yy4yOCAwIC41LjIyLjUuNXYxMGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxNC41di0xMGMwLS4yOC4yMi0uNS41LS41SDdabTEtMS41VjRoNFYyLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVabS01IDEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVY1SDN2OS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWFtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjUgOS4yNWE1Ljc1IDUuNzUgMCAwIDEgNS43NS01Ljc1aC41YS43NS43NSAwIDAgMCAwLTEuNWgtLjVDOS4yNSAyIDYgNS4yNSA2IDkuMjV2MWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMVptNi4yNS0zQTMuMjUgMy4yNSAwIDAgMCAxMC41IDkuNXYxYTQuNzUgNC43NSAwIDAgMS00Ljc1IDQuNzVoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aDNjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtMWE0Ljc1IDQuNzUgMCAwIDEgNC43NS00Ljc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNVptLjUgMi43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djFjMCA0LTMuMjUgNy4yNS03LjI1IDcuMjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNUE1Ljc1IDUuNzUgMCAwIDAgMTIgMTAuNzV2LTFjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA5YTYgNiAwIDAgMSA2LTZoLjVhLjUuNSAwIDAgMCAwLTFIMTNhNyA3IDAgMCAwLTcgN3YxYTEgMSAwIDAgMS0xIDFIMi41YS41LjUgMCAwIDAgMCAxSDVhMiAyIDAgMCAwIDItMlY5Wm02LjUtM0EzLjUgMy41IDAgMCAwIDEwIDkuNXYxQTQuNSA0LjUgMCAwIDEgNS41IDE1aC0zYS41LjUgMCAwIDEgMC0xaDNBMy41IDMuNSAwIDAgMCA5IDEwLjV2LTFBNC41IDQuNSAwIDAgMSAxMy41IDVoNGEuNS41IDAgMCAxIDAgMWgtNFptLjUgM2ExIDEgMCAwIDAtMSAxdjFhNyA3IDAgMCAxLTcgN2gtLjVhLjUuNSAwIDAgMSAwLTFINmE2IDYgMCAwIDAgNi02di0xYzAtMS4xLjktMiAyLTJoMy41YS41LjUgMCAwIDEgMCAxSDE0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWFtSW5wdXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtSW5wdXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy41IDkuMjVhNS43NSA1Ljc1IDAgMCAxIDUuNzUtNS43NWguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS41QzkuMjUgMiA2IDUuMjUgNiA5LjI1djFjMCAuNDEtLjM0Ljc1LS43NS43NUg0LjlsMS4zIDEuM2EyLjI1IDIuMjUgMCAwIDAgMS4zLTIuMDV2LTFaTTYuNCAxNi41bC0xLjIzIDEuMjNjLjE0LjE2LjM1LjI3LjU4LjI3aC41YzQgMCA3LjI1LTMuMjUgNy4yNS03LjI1di0xYzAtLjQxLjM0LS43NS43NS0uNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djFjMCAzLjEyLTIuNSA1LjY3LTUuNiA1Ljc1Wm0uOC0zLjA5Yy4yNi40OC4zNCAxLjAyLjIzIDEuNTNhNC43NSA0Ljc1IDAgMCAwIDMuMDctNC40NHYtMWMwLTEuOCAxLjQ2LTMuMjUgMy4yNS0zLjI1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNUE0Ljc1IDQuNzUgMCAwIDAgOSA5LjV2MWMwIDEuMjgtLjc0IDIuMzgtMS44IDIuOTFabS01LjQ4LTIuNDRjLjMtLjMuNzctLjMgMS4wNiAwbDMgM2MuMy4zLjMuNzcgMCAxLjA2bC0zIDNhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjcyLTEuNzJILjc1YS43NS43NSAwIDAgMSAwLTEuNWgyLjY5bC0xLjcyLTEuNzJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbUlucHV0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlYW1JbnB1dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA5YTYgNiAwIDAgMSA2LTZoLjVhLjUuNSAwIDAgMCAwLTFIMTNhNyA3IDAgMCAwLTcgN3YxYTEgMSAwIDAgMS0xIDFoLS45bDEgMUEyIDIgMCAwIDAgNyAxMFY5Wk0uNSAxNGEuNS41IDAgMCAwIDAgMWgzLjY4bC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43bDMtMi45OWEuNS41IDAgMCAwIDAtLjcybC0zLTNhLjUuNSAwIDAgMC0uNy43MUw0LjE4IDE0SC41Wm05LjUtMy41YTQuNSA0LjUgMCAwIDEtMy4xNSA0LjNjLjA2LS4zNS4wMS0uNy0uMTItMS4wMkEzLjUgMy41IDAgMCAwIDkgMTAuNXYtMUE0LjUgNC41IDAgMCAxIDEzLjUgNWg0YS41LjUgMCAwIDEgMCAxaC00QTMuNSAzLjUgMCAwIDAgMTAgOS41djFaTTE0IDlhMSAxIDAgMCAwLTEgMXYxYTcgNyAwIDAgMS03IDdoLS41YS41LjUgMCAwIDEgMC0xSDZhNiA2IDAgMCAwIDYtNnYtMWMwLTEuMS45LTIgMi0yaDMuNWEuNS41IDAgMCAxIDAgMUgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbUlucHV0T3V0cHV0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbUlucHV0T3V0cHV0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjI1IDMuNUE1Ljc1IDUuNzUgMCAwIDAgNy41IDkuMjV2MWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtMi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTFDNiA1LjI1IDkuMjUgMiAxMy4yNSAyaC41YS43NS43NSAwIDAgMSAwIDEuNWgtLjVabS0yLjc1IDZjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVBNC43NSA0Ljc1IDAgMCAwIDkgOS41djFjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtM2EuNzUuNzUgMCAwIDAgMCAxLjVoM2E0Ljc1IDQuNzUgMCAwIDAgNC43NS00Ljc1di0xWm0zLjc1LS41YS43NS43NSAwIDAgMC0uNzUuNzV2MWMwIC42Ni0uMDkgMS4zLS4yNSAxLjlhMS45IDEuOSAwIDAgMC0xLjU5LjA1Yy4yMi0uNjEuMzQtMS4yNy4zNC0xLjk1di0xYzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDNhLjc1Ljc1IDAgMCAxIDAgMS41aC0zWm0tMS40IDkuMTZhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMCAxIC43LjdsLTEuMTQgMS4xNmg1LjU4bC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJjLjIuMTkuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNWgtNS41OGwxLjE0IDEuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW1JbnB1dE91dHB1dFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtSW5wdXRPdXRwdXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzIDNhNiA2IDAgMCAwLTYgNnYxYTIgMiAwIDAgMS0yIDJIMi41YS41LjUgMCAwIDEgMC0xSDVhMSAxIDAgMCAwIDEtMVY5YTcgNyAwIDAgMSA3LTdoLjVhLjUuNSAwIDAgMSAwIDFIMTNabS0zIDYuNUEzLjUgMy41IDAgMCAxIDEzLjUgNmg0YS41LjUgMCAwIDAgMC0xaC00QTQuNSA0LjUgMCAwIDAgOSA5LjV2MUEzLjUgMy41IDAgMCAxIDUuNSAxNGgtM2EuNS41IDAgMCAwIDAgMWgzYTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMVptMyAuNWMwLS42LjQtMSAxLTFoMy41Yy4zIDAgLjUtLjIuNS0uNXMtLjItLjUtLjUtLjVIMTRhMiAyIDAgMCAwLTIgMnYxYzAgLjktLjIgMS43LS41IDIuNC4zLS4yLjYtLjQgMS0uNGguMmMuMi0uNi4zLTEuMy4zLTJ2LTFabS0uMTUgOC4xNmEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYS41LjUgMCAwIDEgLjcuN2wtMS4xNCAxLjE2aDUuNThsLTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmMuMi4xOS4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1aC01LjU4bDEuMTQgMS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbU91dHB1dEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlYW1PdXRwdXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNzggMS45N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDEuNzIgMS43MmgtMy42OUE0Ljc1IDQuNzUgMCAwIDAgOSA5LjV2MWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC0zYS43NS43NSAwIDAgMCAwIDEuNWgzYTQuNzUgNC43NSAwIDAgMCA0Ljc1LTQuNzV2LTFjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWgzLjY5bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwzLTNjLjMtLjMuMy0uNzcgMC0xLjA2bC0zLTNaTTEzLjI1IDMuNUE1Ljc1IDUuNzUgMCAwIDAgNy41IDkuMjV2MWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtMi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTFDNiA1LjI1IDkuMjUgMiAxMy4yNSAyaC41YS43NS43NSAwIDAgMSAwIDEuNWgtLjVabS45MSA0Yy0uMjQuNDktLjMgMS4wMy0uMTcgMS41NC0uMjguMS0uNDkuMzktLjQ5LjcxdjFjMCA0LTMuMjUgNy4yNS03LjI1IDcuMjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNUE1Ljc1IDUuNzUgMCAwIDAgMTIgMTAuNzV2LTFjMC0xLjIxLjk2LTIuMiAyLjE2LTIuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW1PdXRwdXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbU91dHB1dFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuMTUgMi4xNWMuMi0uMi41LS4yLjcgMGwzIDIuOTlhLjUuNSAwIDAgMSAwIC43MmwtMyAzYS41LjUgMCAwIDEtLjctLjcxTDE4LjI5IDZIMTMuNUMxMS42IDYgMTAgNy42IDEwIDkuNXYxQzEwIDEzIDggMTUgNS41IDE1aC0zYy0uMyAwLS41LS4yLS41LS41cy4yLS41LjUtLjVoM0M3LjQgMTQgOSAxMi40IDkgMTAuNXYtMUM5IDcgMTEgNSAxMy41IDVoNC44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMSAwLS43Wk0yLjUgMTJINWEyIDIgMCAwIDAgMi0yVjljMC0zLjMgMi43LTYgNi02aC41Yy4zIDAgLjUtLjIuNS0uNXMtLjItLjUtLjUtLjVIMTNDOS4xIDIgNiA1LjEgNiA5djFjMCAuNi0uNCAxLTEgMUgyLjVjLS4zIDAtLjUuMi0uNS41cy4yLjUuNS41Wm0xMi42LTRIMTRhMiAyIDAgMCAwLTIgMnYxYzAgMy4zLTIuNyA2LTYgNmgtLjVjLS4zIDAtLjUuMi0uNS41cy4yLjUuNS41SDZjMy45IDAgNy0zLjEgNy03di0xYzAtLjYuNC0xIDEtMWgxLjFjLS4xLS4zLS4xLS43IDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVldFNpZ25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWV0U2lnbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDRhMiAyIDAgMSAxIDQgMHYxaDIuMzhhMiAyIDAgMCAxIDEuNDEuNTlsMi4wNiAyLjA2YS41LjUgMCAwIDEgMCAuN2wtMi4wNiAyLjA2YTIgMiAwIDAgMS0xLjQxLjU5SDExdjZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LTZINWEyIDIgMCAwIDEtMi0yVjdjMC0xLjEuOS0yIDItMmgyVjRabTMgMGExIDEgMCAwIDAtMiAwdjFoMlY0Wk04IDE3aDJ2LTZIOHY2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWV0U2lnblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWV0U2lnblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyA0YTIgMiAwIDEgMSA0IDB2MWgyLjM4YTIgMiAwIDAgMSAxLjQxLjU5bDIuMDYgMi4wNmEuNS41IDAgMCAxIDAgLjdsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MS41OUgxMXY2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi02SDVhMiAyIDAgMCAxLTItMlY3YzAtMS4xLjktMiAyLTJoMlY0Wm0xIDFoMlY0YTEgMSAwIDAgMC0yIDB2MVptMCA2djZoMnYtNkg4Wk00IDd2MmExIDEgMCAwIDAgMSAxaDguMzhhMSAxIDAgMCAwIC43LS4zTDE1LjggOGwtMS43LTEuN2ExIDEgMCAwIDAtLjcxLS4zSDVhMSAxIDAgMCAwLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0eWxlR3VpZGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3R5bGVHdWlkZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjgyIDE3LjI2Yy4wNy4yNy4xOS41Mi4zMy43NEg3YTIgMiAwIDAgMS0yLTJ2LTUuNTRsMS44MiA2LjhaTTQgMTYuNWMwIC4xNS4wMS4zLjA0LjQ0bC0uMDYtLjAxYTIgMiAwIDAgMS0xLjQxLTIuNDVsMS40Mi01LjM0TDQgMTYuNVptMy42NS4wMmEyIDIgMCAwIDAgMi40NiAxLjQxbDUuNDEtMS40NWEyIDIgMCAwIDAgMS40MS0yLjQ1TDE0LjEgMy40OGEyIDIgMCAwIDAtMi40NS0xLjQxTDYuMjMgMy41MmEyIDIgMCAwIDAtMS40MSAyLjQ1bDIuODMgMTAuNTVaTTkgNi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3R5bGVHdWlkZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3R5bGVHdWlkZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC42MiAxNi4yNmExIDEgMCAwIDAgMS4yMy43bDUuNDEtMS40NWExIDEgMCAwIDAgLjctMS4yMkwxMy4xNCAzLjc0YTEgMSAwIDAgMC0xLjIyLS43TDYuNDkgNC40OGExIDEgMCAwIDAtLjcgMS4yMmwyLjgzIDEwLjU1Wm0xLjQ5IDEuNjdhMiAyIDAgMCAxLTIuNDYtMS40MUw0LjgyIDUuOTdhMiAyIDAgMCAxIDEuNDEtMi40NWw1LjQyLTEuNDVhMiAyIDAgMCAxIDIuNDUgMS40MWwyLjgzIDEwLjU1YTIgMiAwIDAgMS0xLjQgMi40NWwtNS40MiAxLjQ1Wk03IDE4aC4xNGEyLjQ4IDIuNDggMCAwIDEtLjMzLS43NGwtLjA4LS4zQTEgMSAwIDAgMSA2IDE2di0xLjc5bC0xLTMuNzNWMTZhMiAyIDAgMCAwIDIgMlpNNCAxNi41YzAgLjE1LjAxLjMuMDQuNDVsLS4wNi0uMDJhMiAyIDAgMCAxLTEuNDEtMi40NWwxLjQyLTUuMzN2My44NmwtLjQ2IDEuNzNBMSAxIDAgMCAwIDQgMTUuODZ2LjY0Wm00LjI1LTExYS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YkdyaWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3ViR3JpZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDEwLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgydi0zLjVINlptMC0xdi0yQzYgNi42NyA2LjY3IDYgNy41IDZoMnYzLjVINlpNMTAuNSA2djMuNUgxNHYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJabTMuNSA0LjVoLTMuNVYxNGgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMlpNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptLTIgNy41aDJ2LTFINFY2YzAtMS4xLjktMiAyLTJoMy41djJoMVY0SDE0YTIgMiAwIDAgMSAyIDJ2My41aC0ydjFoMlYxNGEyIDIgMCAwIDEtMiAyaC0zLjV2LTJoLTF2Mkg2YTIgMiAwIDAgMS0yLTJ2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YkdyaWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YkdyaWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgMTR2LTMuNWgydjJjMCAuODMuNjcgMS41IDEuNSAxLjVoMnYySDZhMiAyIDAgMCAxLTItMlptNi41IDBoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJoMlYxNGEyIDIgMCAwIDEtMiAyaC0zLjV2LTJabTIuNS0zLjV2MmEuNS41IDAgMCAxLS41LjVoLTJ2LTIuNUgxM1ptMS0xdi0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlY0SDE0YTIgMiAwIDAgMSAyIDJ2My41aC0yWk0xMC41IDdoMmMuMjggMCAuNS4yMi41LjV2MmgtMi41VjdabS0xLTFoLTJDNi42NyA2IDYgNi42NyA2IDcuNXYySDRWNmMwLTEuMS45LTIgMi0yaDMuNXYyWk03IDkuNXYtMmMwLS4yOC4yMi0uNS41LS41aDJ2Mi41SDdabTAgMWgyLjVWMTNoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRpdGxlc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0aXRsZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE2SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjV2LTYuNVptMiA0Ljc1YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOC41LTEuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNVpNOS41IDEzYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0aXRsZXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRpdGxlc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE2SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjV2LTYuNVpNNC43NSA1QzMuNzggNSAzIDUuNzggMyA2Ljc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNi41QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVaTTQgMTEuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTguNS0xLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaTTkuNSAxM2EuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAxMGMwLS40MS4zNC0uNzUuNzUtLjc1aDEyLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDMuNzVBLjc1Ljc1IDAgMCAxIDMgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMTBjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNBLjUuNSAwIDAgMSAzIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBaTTYgMTBjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIDAtMWgtN2EuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMTBjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNiAxMFptNCA4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm0wLTFhNyA3IDAgMSAxIDAtMTQgNyA3IDAgMCAxIDAgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZUFycm93QmFja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdENpcmNsZUFycm93QmFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi45OCA5LjU5IDE3IDlhOCA4IDAgMSAwLTcuNDEgNy45OEE1LjQ4IDUuNDggMCAwIDEgMTIuMiA5LjVINS41YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAuNDUuNzIgNS41IDUuNSAwIDAgMSA0LjAzLjM3Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNS40LTIuNmEuNS41IDAgMCAwLS43IDBsLTEuNzUgMS43NWEuNS41IDAgMCAwIDAgLjdsMS43NSAxLjc1YS41LjUgMCAwIDAgLjctLjdsLS45LS45aDEuNTVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NWgtMS41NGwuOS0uOWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZUFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVBcnJvd0JhY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSA4LjVhLjUuNSAwIDAgMCAwIDFoNi43Yy4yNC0uMTEuNS0uMi43NS0uMjhhLjUuNSAwIDAgMC0uNDUtLjcyaC03Wm0xMC41LjdWOWE3IDcgMCAxIDAtNi44IDdjLjEuMzQuMjMuNjcuMzkuOThMOSAxN2E4IDggMCAxIDEgNy45OC03LjQxQTUuNDYgNS40NiAwIDAgMCAxNiA5LjJabTMgNS4zYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNS40LTIuNmEuNS41IDAgMCAwLS43IDBsLTEuNzUgMS43NWEuNS41IDAgMCAwIDAgLjdsMS43NSAxLjc1YS41LjUgMCAwIDAgLjctLjdsLS45LS45aDEuNTVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NWgtMS41NGwuOS0uOWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZUFycm93Rm9yd2FyZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdENpcmNsZUFycm93Rm9yd2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi45OCA5LjU5IDE3IDlhOCA4IDAgMSAwLTcuNDEgNy45OEE1LjQ4IDUuNDggMCAwIDEgMTIuMiA5LjVINS41YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAuNDUuNzIgNS41IDUuNSAwIDAgMSA0LjAzLjM3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm01LjQtMi42Yy4yLS4yLjUtLjIuNyAwbDEuNzUgMS43NWEuNS41IDAgMCAxIDAgLjdMMTYuMSAxNi4xYS41LjUgMCAwIDEtLjctLjdsLjktLjloLTEuNTVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YTIuNzUgMi43NSAwIDAgMSAyLjc1LTIuNzVoMS41NGwtLjktLjlhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVBcnJvd0ZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlQXJyb3dGb3J3YXJkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgOC41YS41LjUgMCAwIDAgMCAxaDYuN2MuMjQtLjExLjUtLjIuNzUtLjI4YS41LjUgMCAwIDAtLjQ1LS43MmgtN1ptMTAuNS43VjlhNyA3IDAgMSAwLTYuOCA3Yy4xLjM0LjIzLjY3LjM5Ljk4TDkgMTdhOCA4IDAgMSAxIDcuOTgtNy40MUE1LjQ2IDUuNDYgMCAwIDAgMTYgOS4yWm0tNiA1LjNhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTUuNC0yLjZjLjItLjIuNS0uMi43IDBsMS43NSAxLjc1YS41LjUgMCAwIDEgMCAuN0wxNi4xIDE2LjFhLjUuNSAwIDAgMS0uNy0uN2wuOS0uOWgtMS41NWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAxIDIuNzUtMi43NWgxLjU0bC0uOS0uOWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0UGFyZW50aGVzZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS43NyA1LjA3YS43NS43NSAwIDEgMC0uOTgtMS4xNCA3Ljk4IDcuOTggMCAwIDAgMCAxMi4xNC43NS43NSAwIDEgMCAuOTgtMS4xNCA2LjQ4IDYuNDggMCAwIDEgMC05Ljg2Wm05LjQ0LTEuMTRhLjc1Ljc1IDAgMSAwLS45OCAxLjE0IDYuNDggNi40OCAwIDAgMSAwIDkuODYuNzUuNzUgMCAxIDAgLjk4IDEuMTQgNy45OCA3Ljk4IDAgMCAwIDAtMTIuMTRaTTYuNzUgOS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RQYXJlbnRoZXNlc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RQYXJlbnRoZXNlc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS44IDQuNGEuNS41IDAgMCAwLS42LS44IDcuOTkgNy45OSAwIDAgMCAwIDEyLjguNS41IDAgMCAwIC42LS44IDYuOTkgNi45OSAwIDAgMSAwLTExLjJabTktLjhhLjUuNSAwIDAgMC0uNi44IDYuOTkgNi45OSAwIDAgMSAwIDExLjIuNS41IDAgMSAwIC42LjggNy45OSA3Ljk5IDAgMCAwIDAtMTIuOFpNNi41IDkuNWEuNS41IDAgMSAwIDAgMWg3YS41LjUgMCAxIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RTcXVhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptLjUgNi41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFNxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA5LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0U3F1YXJlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RTcXVhcmVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNiA1LjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y2YTQgNCAwIDAgMS00IDRIN2EyIDIgMCAwIDEtMS43My0xSDEzYTMgMyAwIDAgMCAzLTNWNS4yN1pNMTUgNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjVabS0zIDRhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAxIDEgMC0xaDVjLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmVNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RTcXVhcmVNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYgNS4yN1YxM2EzIDMgMCAwIDEtMyAzSDUuMjdjLjM0LjYuOTkgMSAxLjczIDFoNmE0IDQgMCAwIDAgNC00VjdhMiAyIDAgMCAwLTEtMS43M1pNMTEuNSA5LjVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDEgMCAwIDFoNVpNMTMgM2EyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDhabTEgMmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdXJmYWNlRWFyYnVkc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlRWFyYnVkc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjU1IDE0LjAzYTUuNzUgNS43NSAwIDAgMCAyLjkgNC4yNGwtMS40LjU3YTIgMiAwIDAgMS0yLjM3LS42NmwtLjI3LS4zN2EyIDIgMCAwIDEgLjA2LTIuNDRsMS4wOC0xLjM0Wm01LjctNS41M2E0Ljc1IDQuNzUgMCAxIDEgMCA5LjUgNC43NSA0Ljc1IDAgMCAxIDAtOS41Wk01Ljc1IDFjLjIgMCAuMzkuMDEuNTguMDNsLjI4LjA1LS4xNC4wNEEzLjcyIDMuNzIgMCAwIDAgNC41NCA2LjZhMy42NSAzLjY1IDAgMCAwIDUuNzUuNTZBNC43NSA0Ljc1IDAgMSAxIDUuNzUgMVptNS4zNy40Ni4wOS4xLjA5LjEyLjQ0LjY1YTEuNSAxLjUgMCAwIDEtLjAzIDEuNzJsLS4wOS4xMi0xLjg4IDIuMThhMi42NSAyLjY1IDAgMCAxLTQuMjYtLjE4IDIuNzIgMi43MiAwIDAgMSAxLjQzLTQuMWwyLjYyLS45N2ExLjUgMS41IDAgMCAxIDEuNTkuMzZabS0xLjE0LjY4YS41LjUgMCAwIDAtLjIuNjFsLjAzLjA4LjI2LjQzLjA2LjA3YS41LjUgMCAwIDAgLjg0LS41bC0uMDQtLjA5LS4yNi0uNDMtLjA1LS4wN2EuNS41IDAgMCAwLS42NC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1cmZhY2VFYXJidWRzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlRWFyYnVkc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuMTMgOC4yNWE0Ljg3IDQuODcgMCAxIDEtMS4xIDkuNjNsLS4xLjAzLTIuMjEuOWMtMSAuNDEtMi4xNS4xMy0yLjg1LS42OGwtLjEtLjE1LS4yOC0uMzZhMi41IDIuNSAwIDAgMS0uMDQtMi45MWwuMS0uMTUgMS41OC0xLjk0LjE3LS4yYTQuODcgNC44NyAwIDAgMSA0LjgzLTQuMTdabS00LjggNS43Mi0xIDEuMjJhMS41IDEuNSAwIDAgMC0uMTIgMS43MWwuMDguMTIuMjguMzdhMS41IDEuNSAwIDAgMCAxLjYzLjU1bC4xNC0uMDUgMS4zNC0uNTVhNC44OCA0Ljg4IDAgMCAxLTIuMzYtMy4zN1ptNC44LTQuNzJhMy44OCAzLjg4IDAgMCAwLTMuNzYgMi45M2wtLjA3LjMtLjAzLjI1LS4wMS4xOHYuMjFjMCAxLjc4IDEuMTggMy4yOCAyLjgxIDMuNzRsLjIuMDQuMjIuMDUuMi4wMi4xNy4wMkgxNC4zM2EzLjg4IDMuODggMCAwIDAtLjItNy43NFpNNS44OCAxYy42NiAwIDEuMjkuMTMgMS44Ni4zN2wuNy0uMjNhMi41IDIuNSAwIDAgMSAyLjY2LjczbC4xMi4xNC4xMi4xNy4yOS40NmMuNTMuODQuNSAxLjkxLS4wNSAyLjc0bC0uMS4xNS0uMTMuMTQtLjYyLjY3QTQuODggNC44OCAwIDEgMSA1Ljg4IDFabS0uMDQgMWguMDRBMy44NyAzLjg3IDAgMSAwIDkuMSA4LjAybC0uMDYuMDQtLjIuMTNhMy40NCAzLjQ0IDAgMCAxLTQuNzctMS4wNUEzLjUgMy41IDAgMCAxIDUuNjEgMi4xbC4yMy0uMVptNC41OC42MWExLjUgMS41IDAgMCAwLTEuNTMtLjU2bC0uMTQuMDQtMi4zNi43OGEyLjUgMi41IDAgMCAwLTEuNDYgMy43NCAyLjQ0IDIuNDQgMCAwIDAgMy43NS40NmwuMTYtLjE2TDEwLjYgNWwuMS0uMTFhMS41IDEuNSAwIDAgMCAuMTUtMS42bC0uMDctLjEyLS4yOC0uNDUtLjA4LS4xMlptLS44LjUzLjA1LjA4LjI2LjQyYS41LjUgMCAwIDEtLjguNmwtLjA2LS4wOC0uMjYtLjQzYS41LjUgMCAwIDEgLjgtLjU5WlwiXSk7XG5leHBvcnQgY29uc3QgU3VyZmFjZUh1YkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlSHViRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuMjYgMmEuNS41IDAgMCAwLS41LjQ1bC0uNzYgOGEuNS41IDAgMCAwIC41LjU1aDIuNDJsLS45MSA2LjQzYS41LjUgMCAwIDAgLjk4LjE0TDcuMzYgMTVoM0wxMCAxNy40M2EuNS41IDAgMCAwIC45OC4xNGwuMzctMi41N2gyLjI4bC4zNyAyLjU3YS41LjUgMCAwIDAgLjk4LS4xNEwxNC4wOCAxMWguNjZhLjUuNSAwIDAgMCAuNS0uNDVsLjc2LThhLjUuNSAwIDAgMC0uNS0uNTVINS4yNlptOC4yMyAxMmgtMS45OGwuNDItM2gxLjE0bC40MiAzWm0tMyAwSDcuNTFsLjQyLTNoM2wtLjQ0IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdXJmYWNlSHViUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlSHViUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljc2IDIuNDVhLjUuNSAwIDAgMSAuNS0uNDVIMTUuNWEuNS41IDAgMCAxIC41LjU1bC0uNzYgOGEuNS41IDAgMCAxLS41LjQ1aC0uNjZsLjkxIDYuNDNhLjUuNSAwIDAgMS0uOTguMTRMMTMuNjQgMTVoLTIuMjhMMTEgMTcuNTdhLjUuNSAwIDAgMS0uOTgtLjE0bC4zNC0yLjQzSDcuMzZMNyAxNy41N2EuNS41IDAgMCAxLS45OC0uMTRMNi45MiAxMUg0LjVhLjUuNSAwIDAgMS0uNS0uNTVsLjc2LThaTTcuNTEgMTRoMi45OGwuNDMtM0g3LjkzbC0uNDIgM1ptNCAwaDEuOThsLS40Mi0zaC0xLjE0bC0uNDIgM1ptMi43OC00IC42Ni03SDUuNzFsLS42NiA3aDkuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2ltbWluZ1Bvb2xGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpbW1pbmdQb29sRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNzUgNGEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVhMi4yNSAyLjI1IDAgMCAxIDQuNSAwVjcuNWg1VjQuNzVhLjc1Ljc1IDAgMSAwLTEuNSAwdi41YS43NS43NSAwIDEgMS0xLjUgMHYtLjVhMi4yNSAyLjI1IDAgMCAxIDQuNSAwdjcuMDNjLS40LjEzLS45MS4yMy0xLjUuMjJWOUg4djEuMjNBNy4xNiA3LjE2IDAgMCAwIDYuNSAxMFY0Ljc1QS43NS43NSAwIDAgMCA1Ljc1IDRabS4wNiA4LjUzYy0uOC4wOS0xLjM1LjQyLTEuNi42MWEuNzUuNzUgMCAwIDEtLjktMS4yYy40LS4zMSAxLjItLjc3IDIuMzMtLjlhNi44NCA2Ljg0IDAgMCAxIDQuMjQgMS4wNWMyLjkzIDEuNyA1LjMuNTggNiAuMTdhLjc1Ljc1IDAgMSAxIC43NSAxLjMgNy4zMyA3LjMzIDAgMCAxLTcuNS0uMTcgNS4zNiA1LjM2IDAgMCAwLTMuMzItLjg2Wm0wIDNjLS44LjA5LTEuMzUuNDItMS42LjYxYS43NS43NSAwIDAgMS0uOS0xLjJjLjQtLjMxIDEuMi0uNzcgMi4zMy0uOWE2Ljg0IDYuODQgMCAwIDEgNC4yNCAxLjA1YzIuOTMgMS43IDUuMy41OCA2IC4xN2EuNzUuNzUgMCAxIDEgLjc1IDEuMyA3LjMzIDcuMzMgMCAwIDEtNy41LS4xNyA1LjM2IDUuMzYgMCAwIDAtMy4zMi0uODZaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2ltbWluZ1Bvb2xSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aW1taW5nUG9vbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA1YTEgMSAwIDAgMSAyIDB2NS4wNWMuMzIuMDMuNjUuMSAxIC4xOVY5aDV2M2MuMzcgMCAuNy0uMDMgMS0uMDlWNWEyIDIgMCAxIDAtNCAwdi41YS41LjUgMCAwIDAgMSAwVjVhMSAxIDAgMSAxIDIgMHYzSDhWNWEyIDIgMCAxIDAtNCAwdi41YS41LjUgMCAwIDAgMSAwVjVabTguMDggOWE3LjYgNy42IDAgMCAxLTMuODMtMS4wOGMtMy40Mi0xLjk3LTUuMzItLjE1LTUuMzktLjA4YS41LjUgMCAwIDEtLjcxIDAgLjQ4LjQ4IDAgMCAxIDAtLjdjLjEtLjEgMi40OC0yLjQ2IDYuNi0uMWE2IDYgMCAwIDAgNi40NS4wNWMuMjItLjE2LjUzLS4xMS43LjFhLjUuNSAwIDAgMS0uMS43IDYuNjUgNi42NSAwIDAgMS0zLjcyIDEuMVYxNFptLTMuODMgMS45MkE3LjYgNy42IDAgMCAwIDEzLjA4IDE3di0uMDFhNi42NSA2LjY1IDAgMCAwIDMuNzEtMS4xLjUuNSAwIDAgMCAuMTEtLjcuNTEuNTEgMCAwIDAtLjctLjEgNiA2IDAgMCAxLTYuNDQtLjA0Yy00LjEzLTIuMzctNi41IDAtNi42MS4xLS4yLjE5LS4yLjUgMCAuNy4yLjE5LjUyLjE4LjcxIDAgLjA3LS4wOCAxLjk3LTEuOSA1LjM5LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgU3dpcGVEb3duRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlRG93bkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCA2YTQgNCAwIDAgMS0yLjI1IDMuNlY4LjQ0YTMgMyAwIDEgMC0zLjUgMFY5LjZBNCA0IDAgMSAxIDE0IDZaTTkuNDcgMTcuNzhjLjMuMy43Ny4zIDEuMDYgMGwyLjUtMi41YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTEuMjIgMS4yMlY1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY5LjY5bC0xLjIyLTEuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3dpcGVEb3duUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZURvd25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDZhNCA0IDAgMCAxLTIuNSAzLjdWOC42YTMgMyAwIDEgMC0zIDB2MS4xQTQgNCAwIDEgMSAxNCA2Wk05LjY1IDE3Ljg1Yy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN2wtMi4xNSAyLjE0VjUuNWEuNS41IDAgMCAwLTEgMHYxMC44bC0yLjE1LTIuMTVhLjUuNSAwIDEgMC0uNy43bDMgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpcGVSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZhNCA0IDAgMCAxIDMuNiAyLjI1SDguNDRhMyAzIDAgMSAwIDAgMy41SDkuNkE0IDQgMCAxIDEgNiA2Wm05LjI4IDcuMDMgMi41LTIuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjIyIDEuMjJINS43NWEuNzUuNzUgMCAxIDAgMCAxLjVoOS42OWwtMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZVJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDZhNCA0IDAgMCAxIDMuNyAyLjVIOC42YTMgMyAwIDEgMCAwIDNoMS4xQTQgNCAwIDEgMSA2IDZabTguODUgNy4zNSAzLTNhLjUuNSAwIDAgMCAwLS43bC0zLTNhLjUuNSAwIDEgMC0uNy43bDIuMTQgMi4xNUg1LjVhLjUuNSAwIDAgMCAwIDFoMTAuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlVXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpcGVVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41MyAyLjIyYS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwxLjIyLTEuMjJ2OS42OWEuNzUuNzUgMCAwIDAgMS41IDBWNC41NmwxLjIyIDEuMjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi41LTIuNVpNNiAxNGE0IDQgMCAwIDEgMi4yNS0zLjZ2MS4xNmEzIDMgMCAxIDAgMy41IDBWMTAuNEE0IDQgMCAxIDEgNiAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlVXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlVXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjM1IDIuMTVhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDEgMCAuNy43TDkuNSAzLjcxVjE0LjVhLjUuNSAwIDAgMCAxIDBWMy43bDIuMTUgMi4xNWEuNS41IDAgMCAwIC43LS43bC0zLTNaTTYgMTRhNCA0IDAgMCAxIDIuNS0zLjd2MS4xYTMgMyAwIDEgMCAzIDB2LTEuMUE0IDQgMCAxIDEgNiAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bWJvbHNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3ltYm9sc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC4xNCA3Ljk3Yy4yLjIuNTEuMi43IDBsMi41Ni0yLjU1YTIgMiAwIDEgMC0yLjgzLTIuODNsLS4wNy4wOC0uMDgtLjA4YTIgMiAwIDAgMC0yLjgzIDIuODNsMi41NSAyLjU1Wk0yIDUuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFpNNS41IDNjLS41IDAtLjk4LjE2LTEuMzguNDJMNy42IDYuODhBMi41IDIuNSAwIDAgMCA1LjUgM1pNMyA1LjVBMi41IDIuNSAwIDAgMCA2Ljg4IDcuNkwzLjQgNC4xMkMzLjE1IDQuNTIgMyA1IDMgNS41Wm05LjM0IDcuNzVBMi41IDIuNSAwIDAgMSAxNi41IDEzaC0xYS41LjUgMCAxIDAgMCAxaDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYuNTVhMy40OSAzLjQ5IDAgMCAwLTUuNTMuNy41LjUgMCAwIDAgLjg3LjVabS0uMzQgMy43di41NWEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDEgMSAwIDFoLTFhMi41IDIuNSAwIDAgMCA0LjE3LS4yNS41LjUgMCAwIDEgLjg2LjUgMy41IDMuNSAwIDAgMS01LjUzLjdaTTUuNSAxMWMuMjggMCAuNS4yMy41LjVWMTRoMi41YS41LjUgMCAxIDEgMCAxSDZ2Mi41YS41LjUgMCAwIDEtMSAwVjE1SDIuNWEuNS41IDAgMSAxIDAtMUg1di0yLjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bWJvbHNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5bWJvbHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjE0IDcuOTdjLjIuMi41MS4yLjcgMGwyLjU2LTIuNTVhMiAyIDAgMSAwLTIuODMtMi44M2wtLjA3LjA4LS4wOC0uMDhhMiAyIDAgMCAwLTIuODMgMi44M2wyLjU1IDIuNTVaTTEyLjMgNC43MWExIDEgMCAxIDEgMS40Mi0xLjQxbC43OS43OC41LS41LjI4LS4yOGExIDEgMCAwIDEgMS40MyAwIDEgMSAwIDAgMSAwIDEuNEwxNC41IDYuOTJsLTIuMi0yLjJaTTIgNS41MWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFpNNS41IDNjLS41IDAtLjk4LjE1LTEuMzguNEw3LjYgNi44OUEyLjUgMi41IDAgMCAwIDUuNSAzWk0zIDUuNWEyLjUgMi41IDAgMCAwIDMuODggMi4wOEwzLjQgNC4xMkMzLjE1IDQuNTIgMyA1IDMgNS41Wm05LjM0IDcuNzRBMi41IDIuNSAwIDAgMSAxNi41IDEzaC0xYS41LjUgMCAxIDAgMCAxaDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYuNTVhMy40OSAzLjQ5IDAgMCAwLTUuNTMuNy41LjUgMCAwIDAgLjg3LjVabS0uMzQgMy43di41NWEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDEgMSAwIDFoLTFhMi41IDIuNSAwIDAgMCA0LjE3LS4yNS41LjUgMCAwIDEgLjg2LjUgMy41IDMuNSAwIDAgMS01LjUzLjdaTTUuNSAxMWMuMjggMCAuNS4yMy41LjVWMTRoMi41YS41LjUgMCAxIDEgMCAxSDZ2Mi41YS41LjUgMCAwIDEtMSAwVjE1SDIuNWEuNS41IDAgMSAxIDAtMUg1di0yLjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bmNPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3luY09mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy45NCA5SDEyLjNsLjY3LTIuMzZhLjUuNSAwIDAgMC0uOTYtLjI4bC0yIDdhLjUuNSAwIDAgMCAuOTYuMjhMMTIuMDIgMTBIMThhOCA4IDAgMCAxLTE2IDBoNS45OGwtLjk2IDMuMzZhLjUuNSAwIDAgMCAuOTYuMjhsMi03YS41LjUgMCAwIDAtLjk2LS4yOEw4LjI3IDloLTYuMmE4IDggMCAwIDEgMTUuODcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bmNPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5bmNPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtN2E3IDcgMCAwIDAtNi45MyA2aDUuMmwuNzUtMi42NGEuNS41IDAgMSAxIC45Ni4yOGwtMiA3YS41LjUgMCAxIDEtLjk2LS4yOEw3Ljk4IDEwSDNhNyA3IDAgMSAwIDE0IDBoLTQuOThsLTEuMDQgMy42NGEuNS41IDAgMSAxLS45Ni0uMjhsMi03YS41LjUgMCAxIDEgLjk2LjI4TDEyLjMxIDloNC42MkE3IDcgMCAwIDAgMTAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN5cmluZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3lyaW5nZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC4xNSAyLjE1Yy4yLS4yLjUtLjIuNyAwbDMgM2EuNS41IDAgMCAxLS43LjdsLS40LS40LTEuOCAxLjggMS45IDEuOWEuNS41IDAgMCAxLS43LjdMMTUgOC43MWwtNS41NiA1LjU2YTIuNSAyLjUgMCAwIDEtMS43Ny43M0g1LjcxbC0yLjg2IDIuODVhLjUuNSAwIDAgMS0uNy0uN0w1IDE0LjI5di0xLjk2YzAtLjY2LjI2LTEuMy43My0xLjc3TDYuMyAxMGwuODYuODVhLjUuNSAwIDAgMCAuNy0uN0w3IDkuMjlsLjgtLjc5Ljg1Ljg1YS41LjUgMCAxIDAgLjctLjdsLS44NS0uODYuOC0uNzkuODUuODVhLjUuNSAwIDAgMCAuNy0uN0wxMCA2LjI5IDExLjMgNWwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS45IDEuOSAxLjgtMS44LS40LS40YS41LjUgMCAwIDEgMC0uN1ptMS45IDIuNi0uOC0uOC0xLjggMS44LjguOCAxLjgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgU3lyaW5nZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3lyaW5nZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuMTUgMi4xNWMuMi0uMi41LS4yLjcgMGwzIDNhLjUuNSAwIDAgMS0uNy43bC0uNC0uNC0xLjggMS44IDEuOSAxLjlhLjUuNSAwIDAgMS0uNy43TDE1IDguNzFsLTUuNTYgNS41NmEyLjUgMi41IDAgMCAxLTEuNzcuNzNINS43MWwtMi44NiAyLjg1YS41LjUgMCAwIDEtLjctLjdMNSAxNC4yOXYtMS45NmMwLS42Ni4yNi0xLjMuNzMtMS43N0wxMS4zIDVsLTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuOSAxLjkgMS44LTEuOC0uNC0uNGEuNS41IDAgMCAxIDAtLjdaTTEwIDcuN2wtLjguNzkuNjUuNjVhLjUuNSAwIDAgMS0uNy43bC0uNjUtLjY0LS44Ljc5LjY1LjY1YS41LjUgMCAwIDEtLjcuN0w3IDEwLjcxbC0uNTYuNTZBMS41IDEuNSAwIDAgMCA2IDEyLjMzVjE0aDEuNjdjLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDE0LjMgOCAxMiA1LjcgMTAuNyA3bC42NS42NWEuNS41IDAgMCAxLS43LjdMMTAgNy43MVptNi4wNC0yLjk2LS43OS0uOC0xLjggMS44LjguOCAxLjgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgU3lzdGVtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5c3RlbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1ptMi41LTFhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoMTFhMSAxIDAgMCAwIDEtMXYtN2ExIDEgMCAwIDAtMS0xaC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5c3RlbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3lzdGVtUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDYuNUEyLjUgMi41IDAgMCAxIDQuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1pNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTIuNS0xYTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDlhMSAxIDAgMCAwIDEtMXYtOWExIDEgMCAwIDAtMS0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWE1LjQ2IDUuNDYgMCAwIDAtMS41LS41VjUuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDMuNmMuMDkuNTMuMjYgMS4wMy41IDEuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTE2IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptMTYgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFycm93TGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJBcnJvd0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWE1LjQ2IDUuNDYgMCAwIDAtMS41LS41VjUuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDMuNmMuMDkuNTMuMjYgMS4wMy41IDEuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTE0LjUgMTlhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS0yLjM1LTQuODVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxNWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiQXJyb3dMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00Ljg1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41VjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWM0g1LjVaTTkgM3YyLjVjMCAuMjguMjIuNS41LjVIMTd2LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTE2IDZ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5djEuNWMwIC4yOC4yMi41LjUuNUgxNlpNOCA0SDUuNUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BBcnJvd0Nsb2Nrd2lzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djMuNzZhNS40OCA1LjQ4IDAgMCAxIDUuMi0xQTEuNSAxLjUgMCAwIDEgMTEgOXYxLjM0YTUuNDggNS40OCAwIDAgMS0uMjYgNi42NmgzLjc2YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjNINS41Wk05IDN2Mi41YzAgLjI4LjIyLjUuNS41SDE3di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM0g5Wm0xIDhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaC44YTMuNSAzLjUgMCAxIDAgMS43IDMgLjUuNSAwIDAgMSAxIDAgNC41IDQuNSAwIDEgMS0yLTMuNzRWOWEuNS41IDAgMCAxIC41LS41Yy4yOCAwIC41LjIyLjUuNXYyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wQXJyb3dDbG9ja3dpc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMy43NmMuMjYtLjMuNDgtLjY0LjY2LTFoMy4xYy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjRINS41QzQuNjcgNCA0IDQuNjcgNCA1LjV2My4xYy0uMzYuMTgtLjcuNC0xIC42NlY1LjVaTTE2IDZ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5djEuNWMwIC4yOC4yMi41LjUuNUgxNlpNOS41IDguNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoLjhhMy41IDMuNSAwIDEgMCAxLjcgMyAuNS41IDAgMCAxIDEgMCA0LjUgNC41IDAgMSAxLTItMy43NFY5YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQXJyb3dMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BBcnJvd0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY0LjFhNS41IDUuNSAwIDAgMSA3LjQgNy40aDQuMWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVYzSDUuNVpNOSAzdjIuNWMwIC4yOC4yMi41LjUuNUgxN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOVptMSAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDE1SDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BBcnJvd0xlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BBcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNC4xYy4xNi0uMzIuMy0uNjUuNC0xaDMuN2MuODIgMCAxLjUtLjY3IDEuNS0xLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVY0SDUuNUM0LjY3IDQgNCA0LjY3IDQgNS41djMuN2MtLjM1LjEtLjY5LjI0LTEgLjRWNS41Wk0xNiA2di0uNWMwLS44My0uNjgtMS41LTEuNS0xLjVIOXYxLjVjMCAuMjguMjIuNS41LjVIMTZabS02IDguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxNUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQm90dG9tRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BCb3R0b21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAxN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVYxM2g3LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTdoMi41Wk0xMSAxN3YtMi41YS41LjUgMCAwIDAtLjUtLjVIM3YuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BCb3R0b21SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BCb3R0b21SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDE0LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5Wk00IDE0di41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDExdi0xLjVhLjUuNSAwIDAgMC0uNS0uNUg0Wm04IDJoMi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNVYxM2g2LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcENsb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2NC4xYTUuNSA1LjUgMCAwIDEgNy40IDcuNGg0LjFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWM0g1LjVaTTkgM3YyLjVjMCAuMjguMjIuNS41LjVIMTd2LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDlaTTUuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxNGgxYS41LjUgMCAwIDEgMCAxSDUuNWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQ2xvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BDbG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC00LjFjLjE2LS4zMi4zLS42NS40LTFoMy43Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjRINS41QzQuNjcgNCA0IDQuNjcgNCA1LjV2My43Yy0uMzUuMS0uNjguMjQtMSAuNFY1LjVaTTE2IDZ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5djEuNWMwIC4yOC4yMi41LjUuNUgxNlptLTYgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk01LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIN2EuNS41IDAgMCAwIDAtMUg2di0xLjVhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BDb3B5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BDb3B5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNC41QTIuNSAyLjUgMCAwIDEgNy41IDJIOXYyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTh2Ni41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOEEyLjUgMi41IDAgMCAxIDUgMTIuNXYtOFptNSAwVjJoNS41QTIuNSAyLjUgMCAwIDEgMTggNC41VjVoLTcuNWEuNS41IDAgMCAxLS41LS41Wk0xMi41IDE4YTIuNSAyLjUgMCAwIDAgMi40NS0ySDcuNUEzLjUgMy41IDAgMCAxIDQgMTIuNVY1LjA1QTIuNSAyLjUgMCAwIDAgMiA3LjVWMTRhNCA0IDAgMCAwIDQgNGg2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQ29weVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcENvcHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAyQTIuNSAyLjUgMCAwIDAgNSA0LjV2OEEyLjUgMi41IDAgMCAwIDcuNSAxNWg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOEEyLjUgMi41IDAgMCAwIDE1LjUgMmgtOFpNMTcgNC41VjVoLTYuNWEuNS41IDAgMCAxLS41LS41VjNoNS41Yy44MyAwIDEuNS42NyAxLjUgMS41Wm0tOCAwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDE3djYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSA2IDEyLjV2LThDNiAzLjY3IDYuNjcgMyA3LjUgM0g5djEuNVpNMTIuNSAxOGEyLjUgMi41IDAgMCAwIDIuNDUtMmgtMS4wNGMtLjIuNTgtLjc2IDEtMS40MSAxSDZhMyAzIDAgMCAxLTMtM1Y3LjVjMC0uNjUuNDItMS4yIDEtMS40MVY1LjA1QTIuNSAyLjUgMCAwIDAgMiA3LjVWMTRhNCA0IDAgMCAwIDQgNGg2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wSW1hZ2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2Mi44NGMuNDUtLjIyLjk2LS4zNCAxLjUtLjM0aDRhMy41IDMuNSAwIDAgMSAzLjUgMy41djRjMCAuNTQtLjEyIDEuMDUtLjM0IDEuNWgyLjg0YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjNINS41Wk05IDN2Mi41YzAgLjI4LjIyLjUuNS41SDE3di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM0g5Wm0tNyA4LjVBMi41IDIuNSAwIDAgMSA0LjUgOWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40IDE2Ljg4QzIuMTUgMTYuNDggMiAxNiAyIDE1LjV2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41MSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBMMy4xMiAxNy42WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEltYWdlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wSW1hZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMi44NGMuMTUtLjMxLjI1LS42NS4zLTFoMi41NGMuODIgMCAxLjUtLjY3IDEuNS0xLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVY0SDUuNUM0LjY3IDQgNCA0LjY3IDQgNS41djIuNTRjLS4zNi4wNS0uNy4xNS0xIC4zVjUuNVpNMTYgNnYtLjVjMC0uODMtLjY4LTEuNS0xLjUtMS41SDl2MS41YzAgLjI4LjIyLjUuNS41SDE2Wk0yIDExLjVBMi41IDIuNSAwIDAgMSA0LjUgOWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40IDE2Ljg4QzIuMTUgMTYuNDggMiAxNiAyIDE1LjV2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41MSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBMMy4xMiAxNy42WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcExpbmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcExpbmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDMuNTRhMy41IDMuNSAwIDAgMSAzLjQ2LTRoNGMuMTcgMCAuMzMuMDEuNS4wM1Y3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjNINS41Wk05IDN2Mi41YzAgLjI4LjIyLjUuNS41SDE3di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM0g5Wm0zLjUgMTFhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BMaW5rUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTGlua1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djcuNTNhMy41MyAzLjUzIDAgMCAwLS41LS4wM0gxNlY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjRINS41QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWgzLjU0YTMuNTMgMy41MyAwIDAgMCAwIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wk0xNiA2di0uNWMwLS44My0uNjgtMS41LTEuNS0xLjVIOXYxLjVjMCAuMjguMjIuNS41LjVIMTZabS0zLjUgOGEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAySDZ2Mi41QzYgNS4zMyA2LjY3IDYgNy41IDZIMTV2Ni41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOEEyLjUgMi41IDAgMCAxIDIgMTIuNXYtOFptNSAwVjJoNS41QTIuNSAyLjUgMCAwIDEgMTUgNC41VjVINy41YS41LjUgMCAwIDEtLjUtLjVaTTcuNSAxOGEyLjUgMi41IDAgMCAxLTIuNDUtMmg3LjQ1YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY1LjA1YTIuNSAyLjUgMCAwIDEgMiAyLjQ1VjE0YTQgNCAwIDAgMS00IDRINy41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxNWg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOEEyLjUgMi41IDAgMCAwIDEyLjUgMmgtOFpNMTQgNC41VjVINy41YS41LjUgMCAwIDEtLjUtLjVWM2g1LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVabS04IDBDNiA1LjMzIDYuNjcgNiA3LjUgNkgxNHY2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMyAxMi41di04QzMgMy42NyAzLjY3IDMgNC41IDNINnYxLjVaTTcuNSAxOGEyLjUgMi41IDAgMCAxLTIuNDUtMmgxLjA0Yy4yLjU4Ljc2IDEgMS40MSAxSDE0YTMgMyAwIDAgMCAzLTNWNy41YzAtLjY1LS40Mi0xLjItMS0xLjQxVjUuMDVhMi41IDIuNSAwIDAgMSAyIDIuNDVWMTRhNCA0IDAgMCAxLTQgNEg3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGVBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJINnYyLjVDNiA1LjMzIDYuNjcgNiA3LjUgNkgxNXY2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xLjUybC4wMi0uNWE1LjUgNS41IDAgMCAwLTktNC4yNFY0LjVaTTEwLjggMTZhNS40OSA1LjQ5IDAgMCAxLTEuMDYgMkgxNGE0IDQgMCAwIDAgNC00VjcuNWEyLjUgMi41IDAgMCAwLTItMi40NXY3LjQ1YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtMS43Wk03IDQuNVYyaDUuNUEyLjUgMi41IDAgMCAxIDE1IDQuNVY1SDcuNWEuNS41IDAgMCAxLS41LS41Wm0zIDEwYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGVBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2NS43NmMuMy0uMjYuNjQtLjQ4IDEtLjY2VjQuNUMzIDMuNjcgMy42NyAzIDQuNSAzSDZ2MS41QzYgNS4zMyA2LjY3IDYgNy41IDZIMTR2Ni41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS41MmE1LjU5IDUuNTkgMCAwIDEgMCAxaDEuNTJhMi41IDIuNSAwIDAgMCAyLjUtMi41di04QTIuNSAyLjUgMCAwIDAgMTIuNSAyaC04Wk0xNCAxOEg5Ljc0Yy4yNi0uMy40OC0uNjQuNjYtMUgxNGEzIDMgMCAwIDAgMy0zVjcuNWMwLS42NS0uNDItMS4yLTEtMS40MVY1LjA1YTIuNSAyLjUgMCAwIDEgMiAyLjQ1VjE0YTQgNCAwIDAgMS00IDRabTAtMTMuNVY1SDcuNWEuNS41IDAgMCAxLS41LS41VjNoNS41Yy44MyAwIDEuNS42NyAxLjUgMS41Wm0tNCAxMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZUJvdHRvbUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGVCb3R0b21GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS4wNSA0aDcuNDVBMy41IDMuNSAwIDAgMSAxNiA3LjV2Ny40NWEyLjUgMi41IDAgMCAwIDItMi40NVY2YTQgNCAwIDAgMC00LTRINy41YTIuNSAyLjUgMCAwIDAtMi40NSAyWk0yIDcuNUEyLjUgMi41IDAgMCAxIDQuNSA1aDhBMi41IDIuNSAwIDAgMSAxNSA3LjV2OGEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTF2LTIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMlY3LjVabTggOFYxOEg0LjVBMi41IDIuNSAwIDAgMSAyIDE1LjVWMTVoNy41Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZUJvdHRvbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlQm90dG9tUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjA5IDRINS4wNUEyLjUgMi41IDAgMCAxIDcuNSAySDE0YTQgNCAwIDAgMSA0IDR2Ni41YTIuNSAyLjUgMCAwIDEtMiAyLjQ1di0xLjA0Yy41OC0uMiAxLS43NiAxLTEuNDFWNmEzIDMgMCAwIDAtMy0zSDcuNWMtLjY1IDAtMS4yLjQyLTEuNDEgMVpNOS41IDE1SDN2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTB2LTEuNWEuNS41IDAgMCAwLS41LS41Wk0zIDE0aDYuNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxN2gxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di04YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOEMzLjY3IDYgMyA2LjY3IDMgNy41VjE0Wm0xLjUgNEEyLjUgMi41IDAgMCAxIDIgMTUuNXYtOEEyLjUgMi41IDAgMCAxIDQuNSA1aDhBMi41IDIuNSAwIDAgMSAxNSA3LjV2OGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLThaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGVTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTE3LjUgMTJjLS4yNyAwLS41Mi0uMDgtLjc0LS4yM2ExLjQgMS40IDAgMCAxLS40OC0uNjJsLS4yNi0uOC0uMDItLjA0djIuMTlhMy41IDMuNSAwIDAgMS0zLjUgMy41SDUuMDVhMi41IDIuNSAwIDAgMCAyLjQ1IDJIMTRhNCA0IDAgMCAwIDQtNHYtMi4wOGMtLjE2LjA2LS4zMy4wOC0uNS4wOFptLTQuMzUtNC45NUwxMi44MSA2SDcuNUExLjUgMS41IDAgMCAxIDYgNC41VjJINC41QTIuNSAyLjUgMCAwIDAgMiA0LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxNWg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5Ljc3bC0uMS0uMDNjLS4yOC0uMS0uNS0uMjYtLjY2LS40OGExLjMgMS4zIDAgMCAxLS4xMi0xLjMgMS4zMiAxLjMyIDAgMCAxLS40NS0uMjIgMS41MSAxLjUxIDAgMCAxLS41Mi0uNjlabS0yLjItNC45LjQ4LS4xNUg3djIuNWMwIC4yOC4yMi41LjUuNWgzLjkzbC0uNDYtLjE1QTEuNDEgMS40MSAwIDAgMSAxMCAzLjVhMS40IDEuNCAwIDAgMSAuOTUtMS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNyAxMS45MWMuMTYuMDYuMzMuMDkuNS4wOS4xNyAwIC4zNC0uMDIuNS0uMDhWMTRhNCA0IDAgMCAxLTQgNEg3LjVhMi41IDIuNSAwIDAgMS0yLjQ1LTJoMS4wNGMuMi41OC43NiAxIDEuNDEgMUgxNGEzIDMgMCAwIDAgMy0zdi0yLjFaTTExLjQzIDJINC41QTIuNSAyLjUgMCAwIDAgMiA0LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxNWg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5Ljc3bC0uMS0uMDNjLS4yOC0uMS0uNS0uMjYtLjY2LS40OEExLjI3IDEuMjcgMCAwIDEgMTQgOC41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMyAxMi41di04QzMgMy42NyAzLjY3IDMgNC41IDNINnYxLjVDNiA1LjMzIDYuNjcgNiA3LjUgNmg1LjN2LS4wNGExLjI3IDEuMjcgMCAwIDAtLjMtLjQ3IDEuMyAxLjMgMCAwIDAtLjQ3LS4zbC0uNi0uMTlINy41YS41LjUgMCAwIDEtLjUtLjVWM2gzLjA5YTEuNDIgMS40MiAwIDAgMSAuODYtLjg1bC40OC0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTmV3UGFnZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTmV3UGFnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDh2Mi41QzggNi4zMyA4LjY3IDcgOS41IDdIMTd2Ny41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNOCAxMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTIgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQtMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTMtNXYtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOXYyLjVjMCAuMjguMjIuNS41LjVIMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTmV3UGFnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE5ld1BhZ2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcgMTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0yIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjRINS41Wk0xNiA1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDl2MS41YzAgLjI4LjIyLjUuNS41SDE2di0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcFNlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDh2Mi41QzggNi4zMyA4LjY3IDcgOS41IDdIMTd2Ny41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMS45YTEuNSAxLjUgMCAwIDAtLjM1LS41NmwtMi0yQTQuNSA0LjUgMCAwIDAgMyA4Ljc2VjUuNVptNiAwVjNoNS41QTIuNSAyLjUgMCAwIDEgMTcgNS41VjZIOS41YS41LjUgMCAwIDEtLjUtLjVaTTUuNSAxNmMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMOC4zIDE0LjZBMy41IDMuNSAwIDEgMCA1LjUgMTZabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2My4yNmMuMy0uMi42NC0uMzggMS0uNVY1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNEg4djEuNUM4IDYuMzMgOC42NyA3IDkuNSA3SDE2djcuNWMwIC44My0uNjggMS41LTEuNSAxLjVoLTMuMzhsLjQ0LjQ0Yy4xNi4xNi4yOC4zNi4zNS41NmgyLjU5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNMTYgNS41VjZIOS41YS41LjUgMCAwIDEtLjUtLjVWNGg1LjVjLjgyIDAgMS41LjY3IDEuNSAxLjVaTTUuNSAxNmMuNzkgMCAxLjUxLS4yNiAyLjEtLjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMOC4zIDE0LjZBMy41IDMuNSAwIDEgMCA1LjUgMTZabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkdyb3VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkdyb3VwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSA0QTIuNSAyLjUgMCAwIDAgMSA2LjV2NUEyLjUgMi41IDAgMCAwIDMuNSAxNGgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNC41IDRoLTExWk01IDljMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNSA5Wm0tMS41IDZjLjQ2LjYgMS4xOSAxIDIgMWg5YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtM2MwLS44Mi0uMzktMS41NC0xLTJ2NWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiR3JvdXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkdyb3VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xIDYuNUEyLjUgMi41IDAgMCAxIDMuNSA0aDExQTIuNSAyLjUgMCAwIDEgMTcgNi41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDEgMTEuNXYtNVpNMy41IDVDMi42NyA1IDIgNS42NyAyIDYuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWm0yIDExYTIuNSAyLjUgMCAwIDEtMi0xaDExYTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNWMuNjEuNDYgMSAxLjE4IDEgMnYzYTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtOVptMC03LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkluUHJpdmF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJblByaXZhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzWm0tMSAyLjV2MS4zbDIuMy0yLjNINS41YTEgMSAwIDAgMC0xIDFabTAgMi43djIuNmw2LjMtNi4zSDguMkw0LjUgOC4yWm03LjctMy43LTcuNyA3Ljd2Mi4zYTEgMSAwIDAgMCAuMDMuMjZMMTQuNzYgNC41M2ExIDEgMCAwIDAtLjI2LS4wM2gtMi4zWm0zLjI3Ljc0TDUuMjQgMTUuNDdhMSAxIDAgMCAwIC4yNi4wM2gyLjNsNy43LTcuN1Y1LjVhMSAxIDAgMCAwLS4wMy0uMjZabS4wMyAzLjk3TDkuMiAxNS41aDIuNmwzLjctMy43VjkuMlptMCA0LTIuMyAyLjI5aDEuM2ExIDEgMCAwIDAgMS0xdi0xLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJJblByaXZhdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkluUHJpdmF0ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzWk00IDUuNXYxLjhMNy4zIDRINS41QzQuNjcgNCA0IDQuNjcgNCA1LjVabTAgMy4ydjIuNkwxMS4zIDRIOC43TDQgOC43Wk0xMi43IDQgNCAxMi43djEuOGMwIC4yMy4wNS40NS4xNS42NWwxMS0xMUExLjUgMS41IDAgMCAwIDE0LjUgNGgtMS44Wm0zLjE1Ljg1LTExIDExYy4yLjEuNDIuMTUuNjUuMTVoMS44TDE2IDcuM1Y1LjVjMC0uMjMtLjA1LS40NS0uMTUtLjY1Wk0xNiA4LjcxIDguNyAxNmgyLjZsNC43LTQuN1Y4LjdabTAgNEwxMi43IDE2aDEuOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYklucHJpdmF0ZUFjY291bnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiSW5wcml2YXRlQWNjb3VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2Mi4xM2MtLjQ0LS4zLS45NS0uNTItMS41LS42VjUuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxSDEwdi40NGMwIC4zNy4wNi43My4xNiAxLjA2SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptMTUuNTcgOS4wM2ExLjUgMS41IDAgMCAwLTEuMTItLjUzaC00LjljLS40NiAwLS44Ni4yNC0xLjEyLjUzLS4yNi4yOS0uNDMuNjktLjQzIDEuMDl2LjMyYzAgMS42MyAxLjYzIDMuMDYgNCAzLjA2IDEuMjQgMCAyLjI4LS40IDIuOTktMUgxNXYtMWgzLjc2Yy4xNS0uMzIuMjMtLjY1LjI0LTFoLTR2LTFoMy44N2ExLjc4IDEuNzggMCAwIDAtLjMtLjQ3Wk0xNSAxM2EyLjUgMi41IDAgMSAxIDItNGgtMnYxaDIuNDVhMi41MSAyLjUxIDAgMCAxIDAgMUgxNXYxaDJjLS40Ni42LTEuMTggMS0yIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJJbnByaXZhdGVBY2NvdW50UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJbnByaXZhdGVBY2NvdW50UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC42NmMtLjEtLjMyLS4xNS0uNjUtLjE2LTFINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41di05QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYxLjY0Yy4zNi4xMS43LjI4IDEgLjQ5VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptOCA3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMmEyLjUgMi41IDAgMSAxIDAtM2gtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVabS0xLjMyIDQuN2MuMTItLjE0LjI2LS4yLjM3LS4yaDYuMzJhMS43OCAxLjc4IDAgMCAwLS4zLS40NyAxLjUgMS41IDAgMCAwLTEuMTItLjUzaC00LjljLS40NiAwLS44Ni4yNC0xLjEyLjUzLS4yNi4yOS0uNDMuNjktLjQzIDEuMDl2LjMyYzAgMS42MyAxLjYzIDMuMDYgNCAzLjA2IDEuMjQgMCAyLjI4LS40IDIuOTktMUgxNWMtMi4wMyAwLTMtMS4xNy0zLTIuMDZ2LS4zMmMwLS4xMy4wNi0uMy4xOC0uNDNabTUuMzItNC43YzAgLjE3LS4wMi4zNC0uMDUuNUgxNXYtMWgyLjQ1Yy4wMy4xNi4wNS4zMy4wNS41Wm0xLjI2IDYuNUgxNXYtMWg0YzAgLjM1LS4xLjY4LS4yNCAxWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiUHJvaGliaXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJQcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS4yNUMzIDQuMDEgNCAzIDUuMjUgM2g5LjVDMTUuOTkgMyAxNyA0IDE3IDUuMjVWOS42YTUuNDYgNS40NiAwIDAgMC0xLjUtLjVWNS4yNGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOS41YS43NS43NSAwIDAgMC0uNzUuNzV2OS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuODRjLjEuNTMuMjcgMS4wMy41MSAxLjVINS4yNUM0LjAxIDE3IDMgMTYgMyAxNC43NXYtOS41Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0wLThhMy41IDMuNSAwIDAgMC0yLjggNS42bDQuOS00LjlhMy40OCAzLjQ4IDAgMCAwLTIuMS0uN1ptLTIuMSA2LjNhMy41IDMuNSAwIDAgMCA0LjktNC45bC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiUHJvaGliaXRlZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0LjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNWExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDQuMmMuMS4zNS4yNC42OC40IDFINWEyIDIgMCAwIDEtMi0yVjVabTcgOS41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYlNoaWVsZERpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiU2hpZWxkRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2Mi43M2MtLjM0LS4yLS42Ny0uNDYtMS0uOGExLjQgMS40IDAgMCAwLS41LS4zNFY1LjVhMSAxIDAgMCAwLTEtMWgtOWExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWg1LjA3YTUuOCA1LjggMCAwIDAgLjk2IDEuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTEyLjI4IDIuNjJjMSAxLjA0IDIuMSAxLjU1IDMuMzIgMS41NS4yIDAgLjM2LjE0LjQuMzR2Mi41N2MwIDIuNjktMS4zMSA0LjUxLTMuODcgNS40YS4zOS4zOSAwIDAgMS0uMjYgMGMtMi40OC0uODYtMy43OS0yLjYtMy44Ny01LjE1di0yLjc1YS40LjQgMCAwIDEgLjQtLjQxIDQuNSA0LjUgMCAwIDAgMy4zMi0xLjU1LjM5LjM5IDAgMCAxIC41NiAwWk0xNSAxMi40N2wtMS4zNi0xLjM2YS4zOC4zOCAwIDAgMC0uNTMuNTNMMTQuNDcgMTNsLTEuMzYgMS4zNWEuMzguMzggMCAwIDAgLjU0LjU0TDE1IDEzLjUzbDEuMzUgMS4zNmEuMzguMzggMCAwIDAgLjU0LS41NEwxNS41MyAxM2wxLjM2LTEuMzZhLjM4LjM4IDAgMCAwLS41NC0uNTNMMTUgMTIuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJTaGllbGREaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJTaGllbGREaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2Mi43M2MtLjM0LS4yLS42Ny0uNDYtMS0uOFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg1LjMyYTUuNzUgNS43NSAwIDAgMCAuNzEgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTE1LjYgNC4xN2MtMS4yMiAwLTIuMzItLjUxLTMuMzItMS41NWEuMzkuMzkgMCAwIDAtLjU2IDAgNC41IDQuNSAwIDAgMS0zLjMyIDEuNTUuNC40IDAgMCAwLS40LjQxdjIuNzVjLjA4IDIuNTUgMS40IDQuMjkgMy44NyA1LjE1LjA5LjAzLjE3LjAzLjI2IDAgMi41Ni0uODkgMy44Ny0yLjcxIDMuODctNS40di0yLjU3YS40LjQgMCAwIDAtLjQtLjM0Wm0tNC45NiAxLjQ0TDE1IDEyLjQ3bDEuMzUtMS4zNmEuMzguMzggMCAwIDEgLjU0LjU0TDE1LjUzIDEzbDEuMzYgMS4zNWEuMzguMzggMCAwIDEtLjU0LjU0TDE1IDEzLjUzbC0xLjM1IDEuMzZhLjM4LjM4IDAgMCAxLS41NC0uNTRMMTQuNDcgMTNsLTEuMzYtMS4zNmEuMzguMzggMCAwIDEgLjUzLS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDE3aDEuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoLTR2NFptMC01VjhoNHY0aC00Wm0tMSAwSDhWOGg0djRabS00IDFoNHY0SDh2LTRabS0xLTFWOEgzdjRoNFptLTQgMWg0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm0xMC02aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabS0xLTR2NEg4VjNoNFpNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVptOC0xLjV2M0g4di0zaDRabTIuNSAzSDEzdi0zaDNWMTQuNjRBMS41IDEuNSAwIDAgMSAxNC41IDE2Wk0xMiA4djRIOFY4aDRabTEgMGgzdjRoLTNWOFptLTEtNHYzSDhWNGg0Wm0xIDBIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk03IDR2M0g0VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3Wm0wIDR2NEg0VjhoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDdoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTYgNVY4SDN2NGg0Wm0yLjYgMEE1LjUyIDUuNTIgMCAwIDEgMTIgOS42VjhIOHY0aDEuNlptNC45LTNjLjkgMCAxLjc1LjIyIDIuNS42VjhoLTR2MS4yYy40OC0uMTMuOTgtLjIgMS41LS4yWk05IDE0LjVjMC0uNTIuMDctMS4wMi4yLTEuNUg4djRoMS42Yy0uMzgtLjc1LS42LTEuNi0uNi0yLjVaTTcgMTNIM3YxLjVBMi41IDIuNSAwIDAgMCA1LjUgMTdIN3YtNFptNS02VjNIOHY0aDRaTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1ptMTIgMTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4xNi0uMzItLjMtLjY1LS40LTFIOHYtM2gxLjJjLjEtLjM1LjI0LS42OC40LTFIOFY4aDR2MS42Yy4zMi0uMTYuNjUtLjMgMS0uNFY4aDN2MS4yYy4zNS4xLjY4LjI0IDEgLjRWNS41Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgNHYzSDhWNGg0Wm0xIDBIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk03IDR2M0g0VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3Wm0wIDR2NEg0VjhoM1ptMTIgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVBcnJvd1VwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA3aC00VjNoMS41QTIuNSAyLjUgMCAwIDEgMTcgNS41VjdaTTcgOHY0SDNWOGg0Wm01IDEuNkE1LjUyIDUuNTIgMCAwIDAgOS42IDEySDhWOGg0djEuNlptNSAwYTUuNDggNS40OCAwIDAgMC00LS40VjhoNHYxLjZaTTkuMiAxM2E1LjUgNS41IDAgMCAwIC40IDRIOHYtNGgxLjJaTTMgMTNoNHY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVYxM1ptOS0xMHY0SDhWM2g0Wk03IDdWM0g1LjVBMi41IDIuNSAwIDAgMCAzIDUuNVY3aDRabTEyIDcuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uMzUtLjE1LjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMCAwIC43LjdMMTQgMTMuNzF2Mi43OWEuNS41IDAgMSAwIDEgMHYtMi44bDEuMTUgMS4xNWMuMi4yLjUuMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFycm93VXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQXJyb3dVcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY4aC0zdjEuMmMtLjM1LjEtLjY4LjI0LTEgLjRWOEg4djRoMS42Yy0uMTYuMzItLjMuNjUtLjQgMUg4djNoMS4yYy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wk00IDEzdjEuNWMwIC43OC42IDEuNDIgMS4zNiAxLjVIN3YtM0g0Wm00LTZoNFY0SDh2M1ptNi41LTNIMTN2M2gzVjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41aC0uMTRaTTQgNS41VjdoM1Y0SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2di4xNFpNNyAxMlY4SDR2NGgzWm0xMiAyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1YS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjM1LS4xNS41LjUgMCAwIDAtLjM1LjE1bC0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDEzLjcxdjIuNzlhLjUuNSAwIDEgMCAxIDB2LTIuOGwxLjE1IDEuMTVjLjIuMi41LjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVCb3R0b21Sb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41VjEyaC0xVjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjEySDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTcgMTQuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTN2LTRoNHYxLjVabS0xMyAyYy40Mi4zMS45NC41IDEuNS41SDd2LTRIM3YxLjVjMCAuODIuNCAxLjU0IDEgMlpNOCAxM2g0djRIOHYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQm90dG9tUm93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNNCAxM3YxLjVjMCAuNzguNiAxLjQyIDEuMzYgMS41SDd2LTNINFptNCAzaDR2LTNIOHYzWm01IDBoMS41Yy43OCAwIDEuNDItLjYgMS41LTEuMzZWMTNoLTN2M1ptMy00VjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjEyaDEyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDYWxjdWxhdG9yRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2FsY3VsYXRvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyA3aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabS02IDVWOEgzdjRoNFptNS0zLjVWOEg4djRoM3YtMS41YzAtLjgyLjQtMS41NCAxLTJaTTExIDEzSDh2NGgzdi00Wm0tNCAwSDN2MS41QTIuNSAyLjUgMCAwIDAgNS41IDE3SDd2LTRabTUtNlYzSDh2NGg0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTUgNy41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTRhMS41IDEuNSAwIDAgMS0xLjUtMS41di03Wm0yLjUgMi41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFabTMuNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIC41LS41Wk0xNC41IDE1aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFabTMuNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIC41LS41Wk0xNC41IDE3aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFabTMuNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIC41LS41Wk0xMy41IDEwYS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDYWxjdWxhdG9yUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNhbGN1bGF0b3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdIMTF2LTFIOHYtM2gzdi0xSDhWOGg0di41Yy4zLS4yMi42My0uMzggMS0uNDVWOGg0VjUuNVptLTEzIDlWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTEyIDdIOFY0aDR2M1ptMS0zSDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNCA3VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3djNINFptMyAxdjRINFY4aDNabTUgMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTRhMS41IDEuNSAwIDAgMS0xLjUtMS41di03Wm0yLjUgMi41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFabTMuNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIC41LS41Wk0xNC41IDE1aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFabTMuNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIC41LS41Wk0xNC41IDE3aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFabTMuNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIC41LS41Wk0xMy41IDEwYS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxFZGl0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMTNoMS45OGMuMS0uMTIuMTktLjIzLjMtLjMzTDEyIDEwLjk0VjdIOHY2Wm03LjEtNS4xNmMuMjYtLjI2LjU1LS40NS44Ni0uNkEyIDIgMCAwIDAgMTUgN2gtMnYyLjk0bDIuMS0yLjFaTTUgMTNhMiAyIDAgMCAxLTItMlY5YzAtMS4xLjktMiAyLTJoMnY2SDVabTEwLjgtNC40NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS45OCAxM2MuMS0uMTIuMTktLjIzLjMtLjMzbC42Ni0uNjdIOFY4aDR2Mi45NGwxLTFWOGgxLjk0bC4xNi0uMTZjLjI2LS4yNi41NS0uNDUuODYtLjZBMiAyIDAgMCAwIDE1IDdINWEyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmg0Ljk4Wk03IDh2NEg1YTEgMSAwIDAgMS0xLTFWOWExIDEgMCAwIDEgMS0xaDJabTguOC41NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc01lcmdlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNNZXJnZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDNIM1ptMCAxdjZoMTRWN0gzWm00LjM1IDEuODUtLjY0LjY1aDYuNThsLS42NC0uNjVhLjUuNSAwIDAgMSAuNy0uN2wxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN2wuNjQtLjY1SDYuNzFsLjY0LjY1YS41LjUgMCAwIDEtLjcuN2wtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdsMS41LTEuNWEuNS41IDAgMSAxIC43LjdaTTMgMTRoMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzTWVyZ2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNNZXJnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy4zNSA4Ljg1YS41LjUgMCAxIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDAgMCAuNy0uN2wtLjY0LS42NWg2LjU4bC0uNjQuNjVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcuN2wuNjQuNjVINi43MWwuNjQtLjY1Wk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDdoMTJ2Nkg0VjdabTEwIDlINmEyIDIgMCAwIDEtMi0yaDEyYTIgMiAwIDAgMS0yIDJabTItMTBINGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNTcGxpdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxzU3BsaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNmg3di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxMHYzWm03IDdWN0gzdjZoMTRabS03LTV2NEg5VjhoMVptMCA5aDQuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTRoLTd2M1ptLTEtM0gzdi41QTIuNSAyLjUgMCAwIDAgNS41IDE3SDl2LTNabTAtOFYzSDUuNUEyLjUgMi41IDAgMCAwIDMgNS41VjZoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNTcGxpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc1NwbGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA4djRIOVY4aDFabTctMi41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVptLTEzIDlWMTRoNXYySDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTkgNHYySDR2LS42NEExLjUgMS41IDAgMCAxIDUuNSA0SDlabTEgMlY0aDQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWNmgtNlptNiA3SDRWN2gxMnY2Wm0wIDEuNXYuMTRBMS41IDEuNSAwIDAgMSAxNC41IDE2SDEwdi0yaDZ2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNoZWNrZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDaGVja2VyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1ptNSA1SDh2NGg0VjhabTEgNWg0djEuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTN2LTRaTTggNGg2LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTJoMVY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOHYxWk01LjUgMTZIMTJ2MUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOGgxdjYuNWMwIC44My42NyAxLjUgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2hlY2tlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDaGVja2VyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiA1LjVWMTFoMVY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOXYxaDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNVpNMyA5djUuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMXYtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWOUgzWm0yLjUtNkg4djRoNXY1aDR2Mi41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMnYtNEg3VjhIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM1ptOSAxM2MuNzggMCAxLjQyLS42IDEuNS0xLjM2VjEzaC0zdjNoMS41Wk0xMiA4SDh2NGg0VjhaTTQgN2gzVjRINS41Yy0uNzggMC0xLjQyLjYtMS41IDEuMzZWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ29sdW1uVG9wQm90dG9tRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ29sdW1uVG9wQm90dG9tRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDE3aDEuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoLTR2NFptMC01VjhoNHY0aC00Wm0tMSAwSDhWOGg0djRabS00IDRoNHYxSDh2LTFabS0xLTRWOEgzdjRoNFptLTQgMWg0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm0xMC02aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRaTTggNGg0VjNIOHYxWk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNvbHVtblRvcEJvdHRvbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDb2x1bW5Ub3BCb3R0b21SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk0xNC41IDE2SDEzdi0zaDNWMTQuNjRBMS41IDEuNSAwIDAgMSAxNC41IDE2Wk0xMiA4djRIOFY4aDRabTEgMGgzdjRoLTNWOFptMC00SDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNCA3VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3djNINFptMyAxdjRINFY4aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNvcHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDb3B5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgMTMuNUEzLjUgMy41IDAgMCAwIDYuNSAxN2g3LjgzYy0uNzcuNjMtMS43NiAxLTIuODMgMWgtNUE0LjUgNC41IDAgMCAxIDIgMTMuNXYtNWMwLTEuMDcuMzctMi4wNiAxLTIuODN2Ny44M1pNMTUuNSAxNkgxNHYtNGg0djEuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVaTTE0IDd2NGg0VjdoLTRabS01IDRoNFY3SDl2NFptNCAxSDl2NGg0di00Wk04IDd2NEg0VjdoNFptMCA1SDR2MS41QTIuNSAyLjUgMCAwIDAgNi41IDE2SDh2LTRabTEwLTZoLTRWMmgxLjVBMi41IDIuNSAwIDAgMSAxOCA0LjVWNlptLTUgMFYySDl2NGg0Wk04IDZWMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNVY2aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNvcHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ29weVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMy41QTMuNSAzLjUgMCAwIDAgNi41IDE3aDcuODNjLS43Ny42My0xLjc2IDEtMi44MyAxaC01QTQuNSA0LjUgMCAwIDEgMiAxMy41di01YzAtMS4wNy4zNy0yLjA2IDEtMi44M3Y3LjgzWm0xLjczIDEuNzdBMi41IDIuNSAwIDAgMSA0IDEzLjV2LTlBMi41IDIuNSAwIDAgMSA2LjUgMmg5QTIuNSAyLjUgMCAwIDEgMTggNC41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05YTIuNSAyLjUgMCAwIDEtMS43Ny0uNzNaTTE3IDZWNC41QTEuNSAxLjUgMCAwIDAgMTUuNjQgM0gxNHYzaDNabS00LTNIOXYzaDRWM1pNOCAzSDYuNUExLjUgMS41IDAgMCAwIDUgNC4zNlY2aDNWM1ptMSA0djRoNFY3SDlabS00IDRoM1Y3SDV2NFptNCAxdjNoNHYtM0g5Wm0tMi41IDNIOHYtM0g1djEuNUExLjUgMS41IDAgMCAwIDYuMzYgMTVoLjE0Wm03LjUtM3YzaDEuNWExLjUgMS41IDAgMCAwIDEuNS0xLjM2VjEyaC0zWm0wLTV2NGgzVjdoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUN1cnNvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUN1cnNvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41NiA5LjQ0IDE2LjE1IDEySDE3VjhoLTR2MS4wOGMuMi4wOC40LjIuNTYuMzZaTTExIDE3di00SDh2NGgzWm0uOTMtNy44OC4wNy0uMDNWOEg4djRoM3YtMS41YzAtLjYuMzctMS4xNS45My0xLjM4Wk03IDEyVjhIM3Y0aDRabS00IDFoNHY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVYxM1ptMTAtNmg0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tMS00djRIOFYzaDRaTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1ptNS44NiA3LjE1YS41LjUgMCAwIDAtLjg2LjM1djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUN1cnNvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDdXJzb3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdIMTF2LTFIOHYtM2gzdi0xSDhWOGg0djEuMDlhMS41IDEuNSAwIDAgMSAxIDBWOGgzdjMuODVsMSAxVjUuNVptLTEzIDlWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTEyIDdIOFY0aDR2M1ptMS0zSDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNCA3VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3djNINFptMyAxdjRINFY4aDNabTUuODYgMi4xNWEuNS41IDAgMCAwLS44Ni4zNXY4YS41LjUgMCAwIDAgLjkuM2wyLTIuNjUgMy41Ljc4YS41LjUgMCAwIDAgLjQ1LS44NGwtNi01Ljk0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEZWxldGVDb2x1bW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVDb2x1bW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNSAyLjVhLjUuNSAwIDAgMC0xIDB2NC44OGMuMTMuMS4yNC4yMi4zNi4zNGwuMTQuMTUuMTQtLjE1Yy4xMi0uMTIuMjMtLjI0LjM2LS4zNFYyLjVabS0xIDE1di00Ljg5Yy4xMy0uMS4yNC0uMjMuMzYtLjM1bC4xNC0uMTQuMTQuMTRjLjEyLjEyLjIzLjI0LjM2LjM1djQuODlhLjUuNSAwIDAgMS0xIDBaTTIgMy41YzAtLjI4LjIyLS41LjUtLjVINGEyIDIgMCAwIDEgMiAydjJIMlYzLjVabTAgMTNWMTNoNHYyYTIgMiAwIDAgMS0yIDJIMi41YS41LjUgMCAwIDEtLjUtLjVaTTYgOHY0SDJWOGg0Wm0xMi00LjVhLjUuNSAwIDAgMC0uNS0uNUgxNmEyIDIgMCAwIDAtMiAydjJoNFYzLjVaTTE0IDEzdjJjMCAxLjEuOSAyIDIgMmgxLjVhLjUuNSAwIDAgMCAuNS0uNVYxM2gtNFptLTIuMTUtNC44NWEuNS41IDAgMCAwLS43IDBMMTAgOS4yOSA4Ljg1IDguMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgMTBsMS4xNC0xLjE1YS41LjUgMCAwIDAgMC0uN1pNMTggMTJWOGgtNHY0aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZUNvbHVtblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVDb2x1bW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgMi41YS41LjUgMCAwIDAtMSAwdjQuODhjLjEzLjEuMjQuMjIuMzYuMzRsLjE0LjE1LjE0LS4xNWMuMTItLjEyLjIzLS4yNC4zNi0uMzRWMi41Wm0tMSAxNXYtNC44OWMuMTMtLjEuMjQtLjIzLjM2LS4zNWwuMTQtLjE0LjE0LjE0Yy4xMi4xMi4yMy4yNC4zNi4zNXY0Ljg5YS41LjUgMCAwIDEtMSAwWk0yIDMuNWMwLS4yOC4yMi0uNS41LS41SDRhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDIuNWEuNS41IDAgMCAxIDAtMUg0YTEgMSAwIDAgMCAxLTF2LTJIMi41YS41LjUgMCAwIDEgMC0xSDVWOEgyLjVhLjUuNSAwIDAgMSAwLTFINVY1YTEgMSAwIDAgMC0xLTFIMi41YS41LjUgMCAwIDEtLjUtLjVabTE2IDBhLjUuNSAwIDAgMC0uNS0uNUgxNmEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMS41YS41LjUgMCAwIDAgMC0xSDE2YTEgMSAwIDAgMS0xLTF2LTJoMi41YS41LjUgMCAwIDAgMC0xSDE1VjhoMi41YS41LjUgMCAwIDAgMC0xSDE1VjVhMSAxIDAgMCAxIDEtMWgxLjVhLjUuNSAwIDAgMCAuNS0uNVptLTYuMTUgNC42NWEuNS41IDAgMCAwLS43IDBMMTAgOS4yOSA4Ljg1IDguMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgMTBsMS4xNC0xLjE1YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVsZXRlUm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDZIOFYyaDR2NFpNMy41IDJIN3Y0SDVhMiAyIDAgMCAxLTItMlYyLjVjMC0uMjguMjItLjUuNS0uNVpNMTUgNmgtMlYyaDMuNWMuMjggMCAuNS4yMi41LjVWNGEyIDIgMCAwIDEtMiAyWm0xLjUgMTJhLjUuNSAwIDAgMCAuNS0uNVYxNmEyIDIgMCAwIDAtMi0yaC0ydjRoMy41Wk0xMiAxOHYtNEg4djRoNFptLTUgMEgzLjVhLjUuNSAwIDAgMS0uNS0uNVYxNmMwLTEuMS45LTIgMi0yaDJ2NFptMTAuNS03LjVhLjUuNSAwIDAgMCAwLTFoLTQuODlhNSA1IDAgMCAxLS40OC41bC4xNC4xM2MuMTIuMTIuMjUuMjQuMzUuMzdoNC44OFptLTE1LTFoNC44OWE1IDUgMCAwIDAgLjM0LjM1bC4xNC4xNC0uMTQuMTRjLS4xMi4xMi0uMjUuMjQtLjM1LjM3SDIuNWEuNS41IDAgMCAxIDAtMVptOS4zNSAyLjM1YS41LjUgMCAwIDAgMC0uN0wxMC43MSAxMGwxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMCA5LjI5IDguODUgOC4xNWEuNS41IDAgMSAwLS43LjdMOS4yOSAxMGwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN0wxMCAxMC43MWwxLjE1IDEuMTRjLjIuMi41LjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEZWxldGVSb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi41IDJjLjI4IDAgLjUuMjIuNS41VjRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMi41YS41LjUgMCAwIDEgMSAwVjRhMSAxIDAgMCAwIDEgMWgyVjIuNWEuNS41IDAgMCAxIDEgMFY1aDRWMi41YS41LjUgMCAwIDEgMSAwVjVoMmExIDEgMCAwIDAgMS0xVjIuNWMwLS4yOC4yMi0uNS41LS41Wm0wIDE2YS41LjUgMCAwIDAgLjUtLjVWMTZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MS41YS41LjUgMCAwIDAgMSAwVjE2YTEgMSAwIDAgMSAxLTFoMnYyLjVhLjUuNSAwIDAgMCAxIDBWMTVoNHYyLjVhLjUuNSAwIDAgMCAxIDBWMTVoMmExIDEgMCAwIDEgMSAxdjEuNWMwIC4yOC4yMi41LjUuNVptMS03LjVhLjUuNSAwIDAgMCAwLTFoLTQuODlhNSA1IDAgMCAxLS40OC41bC4xNC4xM2MuMTIuMTIuMjUuMjQuMzUuMzdoNC44OFptLTE1LTFoNC44OWE1IDUgMCAwIDAgLjM0LjM1bC4xNC4xNC0uMTQuMTRjLS4xMi4xMi0uMjUuMjQtLjM1LjM3SDIuNWEuNS41IDAgMCAxIDAtMVptOS4zNSAyLjM1YS41LjUgMCAwIDAgMC0uN0wxMC43MSAxMGwxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMCA5LjI5IDguODUgOC4xNWEuNS41IDAgMSAwLS43LjdMOS4yOSAxMGwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN0wxMCAxMC43MWwxLjE1IDEuMTRjLjIuMi41LjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyA3aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabS02IDVWOEgzdjRoNFptMi42IDBBNS41MiA1LjUyIDAgMCAxIDEyIDkuNlY4SDh2NGgxLjZabTQuOS0zYy45IDAgMS43NS4yMiAyLjUuNlY4aC00djEuMmMuNDgtLjEzLjk4LS4yIDEuNS0uMlpNOSAxNC41YzAtLjUyLjA3LTEuMDIuMi0xLjVIOHY0aDEuNmMtLjM4LS43NS0uNi0xLjYtLjYtMi41Wk03IDEzSDN2MS41QTIuNSAyLjUgMCAwIDAgNS41IDE3SDd2LTRabTUtNlYzSDh2NGg0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTEyIDExLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjggMCAxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4xNi0uMzItLjMtLjY1LS40LTFIOHYtM2gxLjJjLjEtLjM1LjI0LS42OC40LTFIOFY4aDR2MS42Yy4zMi0uMTYuNjUtLjMgMS0uNFY4aDN2MS4yYy4zNS4xLjY4LjI0IDEgLjRWNS41Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgNHYzSDhWNGg0Wm0xIDBIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk03IDR2M0g0VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3Wm0wIDR2NEg0VjhoM1ptMTIgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOC40NSAxMy4yYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjVsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzWk0xNS4xIDkuODNjLjUzLS41MyAxLjIxLS44IDEuOS0uODRWOGgtNHYzLjk0bDIuMS0yLjFabS00LjgzIDQuODNMMTEuOTQgMTNIOHY0aDEuMjJsLjIxLS44NWEzLjIgMy4yIDAgMCAxIC44NC0xLjQ4Wk0xMiAxMkg4VjhoNHY0Wm0tNSAwVjhIM3Y0aDRabS00IDFoNHY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVYxM1ptMTAtNmg0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tMS00djRIOFYzaDRaTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRWRpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVFZGl0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDMuNzJsLjIxLS44NS4wNS0uMTVIOHYtM2gzLjk0TDEzIDExLjk0VjhoM3YxLjIzYy4zMi0uMTQuNjYtLjIxIDEtLjIzVjUuNVptLTEzIDlWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTEyIDh2NEg4VjhoNFptMC0xSDhWNGg0djNabTEtM0gxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTQgN1Y1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRabTMgMXY0SDRWOGgzWm04LjggMi41NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0Wk0xNC42NiAxNyAxNyAxNC42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplQ29sdW1uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2IDE0LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEydi0zSDh2NGg2LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDh2NGg0VjRoMi41Yy44MyAwIDEuNS42NyAxLjUgMS41djlaTTUuNSAzSDd2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzWk03IDEyVjhIM3Y0aDRabTUtNEg4djRoNFY4Wm0tOSA1aDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAxN0EyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlaTTEyIDRIOHYzaDRWNFpNNyA0SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjdoM1Y0Wm0xIDR2NGg0VjhIOFptLTQgNGgzVjhINHY0Wm00IDF2M2g0di0zSDhabS0yLjUgM0g3di0zSDR2MS41YzAgLjc4LjYgMS40MiAxLjM2IDEuNWguMTRabTktMTJIMTN2MTJoMS41Yy43OCAwIDEuNDItLjYgMS41LTEuMzZWNS41YzAtLjc4LS42LTEuNDItMS4zNi0xLjVoLS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uQW5kUm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplQ29sdW1uQW5kUm93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMnYtNEg4djNINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41di05QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY4aC0zdjRoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTkgMTRIMTN2LTRoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41Wk04IDEyaDRWOEg4djRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvd1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW5BbmRSb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlaTTggMTZoNHYtM0g4djNabTUgMGgxLjVjLjc4IDAgMS40Mi0uNiAxLjUtMS4zNlYxM2gtM3YzWm0tMS00VjhIOHY0aDRabTQtNGgtM3Y0aDNWOFpNNS41IDE2SDdWN2g5VjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2djkuMTRjMCAuNzguNiAxLjQyIDEuMzYgMS41aC4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplUm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjUgNGMuODMgMCAxLjUuNjcgMS41IDEuNVY4aC0zdjRoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVYxMmg0VjhINFY1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Wk0zIDE0LjVWMTNoNHY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVptOS0xLjVIOHY0aDR2LTRaTTggOHY0aDRWOEg4Wm01IDl2LTRoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVGcmVlemVSb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDE3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOVpNNCAxMlY4aDN2NEg0Wm0xMi01SDRWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0aDkuMTRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN1pNOCA4aDR2NEg4VjhabS00IDYuNVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVptOC0xLjV2M0g4di0zaDRabTQtNXY0aC0zVjhoM1ptMCA1VjE0LjY0QTEuNSAxLjUgMCAwIDEgMTQuNSAxNkgxM3YtM2gzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbWFnZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUltYWdlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjUgOWMuMTcgMCAuMzQuMDEuNS4wNFY4aC00djFoMy41Wk05IDE2LjVWMTNIOHY0aDEuMDRhMy41MyAzLjUzIDAgMCAxLS4wNC0uNVptLjA0LTQuNUEzLjUgMy41IDAgMCAxIDEyIDkuMDRWOEg4djRoMS4wNFpNNyAxMlY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTMgOS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTMuMDMgMy4wM2MtLjI2LS40LS40MS0uODctLjQxLTEuMzh2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41IDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMGwtMy4wMyAzLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbWFnZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbWFnZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2gzLjU0YTMuNTMgMy41MyAwIDAgMS0uMDQtLjVWMTZIOHYtM2gxdi0uNWMwLS4xNy4wMS0uMzQuMDQtLjVIOFY4aDR2MS4wNGMuMTYtLjAzLjMzLS4wNC41LS4wNGguNVY4aDN2MWguNWMuMTcgMCAuMzQuMDEuNS4wNFY1LjVabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk0xMiA3SDhWNGg0djNabTEtM0gxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTQgN1Y1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRabTMgMXY0SDRWOGgzWm0zIDQuNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0zLjAzIDMuMDNjLS4yNi0uNC0uNDEtLjg3LS40MS0xLjM4di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBsLTMuMDMgMy4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Q29sdW1uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Q29sdW1uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgMy41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1ptMTMgMGEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNaTTkgM2EyIDIgMCAwIDAtMiAydjJoNlY1YTIgMiAwIDAgMC0yLTJIOVptLTIgOVY4aDZ2NEg3Wm0wIDFoNnYyYTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0ydi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRDb2x1bW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Q29sdW1uUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDMuNWEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNabTEzIDBhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWk05IDNhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJIOVptLTEgOVY4aDR2NEg4Wm00LTd2Mkg4VjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDFabS00IDhoNHYyYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xdi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRSb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDE2YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1ptMC0xM2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaTTMgMTFjMCAxLjEuOSAyIDIgMmgyVjdINWEyIDIgMCAwIDAtMiAydjJabTkgMkg4VjdoNHY2Wm0xIDBWN2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRSb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Um93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgMTZhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm0wLTEzYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pNMyAxMWMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyWm05IDFIOFY4aDR2NFpNNSA4aDJ2NEg1YTEgMSAwIDAgMS0xLTFWOWExIDEgMCAwIDEgMS0xWm04IDRWOGgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaWdodG5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMaWdodG5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNTggOUgxN1Y4aC00djEuMTJjLjE4LS4wOC4zOC0uMTIuNTgtLjEyWm0tMi4yNSAzIC42Ny0xLjZWOEg4djRoMy4zM1ptLTEuMjEgMi45Mi44LTEuOTJIOHY0aDMuNWExLjUgMS41IDAgMCAxLTEuMzgtMi4wOFpNNyAxMlY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTUuNjEgMTNjLjMzIDAgLjU2LjMuNDkuNjJsLS40NCAxLjc0Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0uNGEuNS41IDAgMCAxLS40OC0uNjZsLjU2LTEuNjhhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ4YS41LjUgMCAwIDAtLjQ2LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43aDEuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUxpZ2h0bmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMaWdodG5pbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNmExLjUgMS41IDAgMCAxLTEuNDEtMUg4di0zaDIuOTJsLjQxLTFIOFY4aDR2Mi40bC4yLS40OGMuMTUtLjM3LjQ1LS42NS44LS44VjhoM3YxaDFWNS41Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgN0g4VjRoNHYzWm0xLTNIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk00IDdWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDd2M0g0Wm0zIDF2NEg0VjhoM1ptNS42MSA4Yy4zMyAwIC41Ni4zLjQ5LjYybC0uNDQgMS43NGMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtLjRhLjUuNSAwIDAgMS0uNDgtLjY2bC41Ni0xLjY4YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40OGEuNS41IDAgMCAwLS40Ni4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN2gxLjExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaW5rRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGlua0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDE1LjVjMCAuNTQuMTIgMS4wNS4zNCAxLjVIOHYtNGgyLjA1QTMuNDkgMy40OSAwIDAgMCA5IDE1LjVaTTEzIDh2NGgzLjVjLjE3IDAgLjM0LjAxLjUuMDRWOGgtNFptLTEgNFY4SDh2NGg0Wm0tNSAwVjhIM3Y0aDRabS00IDFoNHY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVYxM1ptMTAtNmg0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tMS00djRIOFYzaDRaTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1ptMyAxMi41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWguNWEuNS41IDAgMCAxIDAgMWgtLjVhMS41IDEuNSAwIDAgMCAwIDNoLjVhLjUuNSAwIDAgMSAwIDFoLS41YTIuNSAyLjUgMCAwIDEtMi41LTIuNVptNS41LTJjMC0uMjguMjItLjUuNS0uNWguNWEyLjUgMi41IDAgMCAxIDAgNUgxNmEuNS41IDAgMCAxIDAtMWguNWExLjUgMS41IDAgMCAwIDAtM0gxNmEuNS41IDAgMCAxLS41LS41Wm0tMyAxLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTGlua1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMaW5rUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDMuODRhMy40OCAzLjQ4IDAgMCAxLS4zLTFIOHYtM2gyLjA1YTMuNDkgMy40OSAwIDAgMSAyLjQ1LTFoLjVWOGgzdjRoLjVjLjE3IDAgLjM0LjAxLjUuMDRWNS41Wk0xMiA4djRIOFY4aDRabS04IDYuNVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgN0g4VjRoNHYzWm0xLTNIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk00IDdWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDd2M0g0Wm0zIDF2NEg0VjhoM1ptMyA3LjVhMi41IDIuNSAwIDAgMSAyLjUtMi41aC41YS41LjUgMCAwIDEgMCAxaC0uNWExLjUgMS41IDAgMCAwIDAgM2guNWEuNS41IDAgMCAxIDAgMWgtLjVhMi41IDIuNSAwIDAgMS0yLjUtMi41Wm01LjUtMmMwLS4yOC4yMi0uNS41LS41aC41YTIuNSAyLjUgMCAwIDEgMCA1SDE2YS41LjUgMCAwIDEgMC0xaC41YTEuNSAxLjUgMCAwIDAgMC0zSDE2YS41LjUgMCAwIDEtLjUtLjVabS0zIDEuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDljLjU1IDAgMS4wNi4xNSAxLjUuNFY4aC00djIuMzRBMyAzIDAgMCAxIDE1LjUgOVpNMTEgMTRjMC0uMzYuMS0uNy4yNy0xSDh2NGgzdi0zWm0xLTJIOFY4aDR2NFptLTUgMFY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTYuNSA5djFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUxvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTG9ja1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMXYtMUg4di0zaDMuMjdhMiAyIDAgMCAxIDEuMjMtLjk0VjEyYzAtLjYxLjE4LTEuMTguNS0xLjY2VjhoM3YxLjA0Yy4zNi4wNi43LjE5IDEgLjM2VjUuNVptLTEzIDlWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTEyIDh2NEg4VjhoNFptMC0xSDhWNGg0djNabTEtM0gxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTQgN1Y1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRabTMgMXY0SDRWOGgzWm02LjUgNHYxSDEzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQWJvdmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQWJvdmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDNhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWk04IDEyVjguNDFjLjE2LjA2LjMzLjA5LjUuMDl2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMuMTcgMCAuMzQtLjAzLjUtLjA5VjEySDhabTcgNWgtMnYtNGg0djJhMiAyIDAgMCAxLTIgMlptMi01aC00VjhoMy41Yy4yOCAwIC41LjIyLjUuNVYxMlptLTkgNWg0di00SDh2NFpNNyA4djRIM1Y4LjVjMC0uMjguMjItLjUuNS0uNUg3Wm0wIDlINWEyIDIgMCAwIDEtMi0ydi0yaDR2NFptNC4xNS05LjY1YS41LjUgMCAwIDAgLjctLjdsLTEuNS0xLjVhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41YS41LjUgMCAxIDAgLjcuN2wuNjUtLjY0VjkuNWEuNS41IDAgMCAwIDEgMFY2LjdsLjY1LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQWJvdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUFib3ZlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDMuNWMwLS4yOC4yMi0uNS41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxLS41LS41Wk0zLjUgOGgzLjg4YTEuNTIgMS41MiAwIDAgMCAuNjIuNDFWMTJoNFY4LjQxYTEuNSAxLjUgMCAwIDAgLjYyLS40MWgzLjg4Yy4yOCAwIC41LjIyLjUuNVYxNWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4LjVjMC0uMjguMjItLjUuNS0uNVptLjUgNXYyYTEgMSAwIDAgMCAxIDFoMnYtM0g0Wm04IDN2LTNIOHYzaDRabTEgMGgyYTEgMSAwIDAgMCAxLTF2LTJoLTN2M1ptMC00aDNWOWgtM3YzWk00IDl2M2gzVjlINFptNy4xNS0xLjY1YS41LjUgMCAwIDAgLjctLjdsLTEuNS0xLjVhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41YS41LjUgMCAxIDAgLjcuN2wuNjUtLjY0VjkuNWEuNS41IDAgMCAwIDEgMFY2LjdsLjY1LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQmVsb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQmVsb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNSAxN2EuNS41IDAgMCAwIDAtMWgtMTNhLjUuNSAwIDAgMCAwIDFoMTNaTTEyIDh2My41OWExLjUgMS41IDAgMCAwLS41LS4wOXYtMWExLjUgMS41IDAgMCAwLTMgMHYxYy0uMTcgMC0uMzQuMDMtLjUuMDlWOGg0Wk01IDNoMnY0SDNWNWMwLTEuMS45LTIgMi0yWk0zIDhoNHY0SDMuNWEuNS41IDAgMCAxLS41LS41VjhabTktNUg4djRoNFYzWm0xIDlWOGg0djMuNWEuNS41IDAgMCAxLS41LjVIMTNabTAtOWgyYTIgMiAwIDAgMSAyIDJ2MmgtNFYzWm0tNC4xNSA5LjY1YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwxLjUtMS41YS41LjUgMCAwIDAtLjctLjdsLS42NS42NFYxMC41YS41LjUgMCAwIDAtMSAwdjIuOGwtLjY1LS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUJlbG93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVCZWxvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMTYuNWEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEgMC0xaDEzYy4yOCAwIC41LjIyLjUuNVptLS41LTQuNWgtMy44OGExLjUgMS41IDAgMCAwLS42Mi0uNDFWOEg4djMuNTlhMS41IDEuNSAwIDAgMC0uNjIuNDFIMy41YS41LjUgMCAwIDEtLjUtLjVWNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2Ni41YS41LjUgMCAwIDEtLjUuNVpNMTYgN1Y1YTEgMSAwIDAgMC0xLTFoLTJ2M2gzWk04IDR2M2g0VjRIOFpNNyA0SDVhMSAxIDAgMCAwLTEgMXYyaDNWNFptMCA0SDR2M2gzVjhabTkgM1Y4aC0zdjNoM1ptLTcuMTUgMS42NWEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMS41LTEuNWEuNS41IDAgMCAwLS43LS43bC0uNjUuNjRWMTAuNWEuNS41IDAgMCAwLTEgMHYyLjhsLS42NS0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAxNi41YS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLTEgMHYxM1ptOS00LjVIOC40MWMuMDYtLjE2LjA5LS4zMy4wOS0uNWgxYTEuNSAxLjUgMCAwIDAgMC0zaC0xYzAtLjE3LS4wMy0uMzQtLjA5LS41SDEydjRabTUtN3YyaC00VjNoMmEyIDIgMCAwIDEgMiAyWm0tNS0ydjRIOFYzLjVjMC0uMjguMjItLjUuNS0uNUgxMlptNSA5VjhoLTR2NGg0Wm0tOSAxaDR2NEg4LjVhLjUuNSAwIDAgMS0uNS0uNVYxM1ptOSAwdjJhMiAyIDAgMCAxLTIgMmgtMnYtNGg0Wk03LjM1IDguODVhLjUuNSAwIDEgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0uNjQtLjY1SDkuNWEuNS41IDAgMCAwIDAtMUg2LjdsLjY1LS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAxN2EuNS41IDAgMCAxLS41LS41di0xM2EuNS41IDAgMCAxIDEgMHYxM2EuNS41IDAgMCAxLS41LjVabTQuNS0uNXYtMy44OGExLjU1IDEuNTUgMCAwIDAgLjQxLS42MkgxMlY4SDguNDFBMS41IDEuNSAwIDAgMCA4IDcuMzhWMy41YzAtLjI4LjIyLS41LjUtLjVIMTVhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDguNWEuNS41IDAgMCAxLS41LS41Wm01LS41aDJhMSAxIDAgMCAwIDEtMXYtMmgtM3YzWm0zLThoLTN2NGgzVjhabTAtMVY1YTEgMSAwIDAgMC0xLTFoLTJ2M2gzWm0tNCAwVjRIOXYzaDNabS0zIDloM3YtM0g5djNaTTcuMzUgOC44NWEuNS41IDAgMSAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIOS41YS41LjUgMCAwIDAgMC0xSDYuN2wuNjUtLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgMy41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1pNOCA4aDMuNTlhMS41IDEuNSAwIDAgMC0uMDkuNWgtMWExLjUgMS41IDAgMSAwIDAgM2gxYzAgLjE3LjAzLjM0LjA5LjVIOFY4Wm0tNSA3di0yaDR2NEg1YTIgMiAwIDAgMS0yLTJabTUgMnYtNGg0djMuNWEuNS41IDAgMCAxLS41LjVIOFpNMyA4djRoNFY4SDNabTktMUg4VjNoMy41Yy4yOCAwIC41LjIyLjUuNVY3Wk0zIDdWNWMwLTEuMS45LTIgMi0yaDJ2NEgzWm05LjY1IDQuMTVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcuN2wuNjQuNjVIMTAuNWEuNS41IDAgMCAwIDAgMWgyLjhsLS42NS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSAzYy4yOCAwIC41LjIyLjUuNXYxM2EuNS41IDAgMCAxLTEgMHYtMTNjMC0uMjguMjItLjUuNS0uNVptLTQuNS41djMuODhhMS41IDEuNSAwIDAgMC0uNDEuNjJIOHY0aDMuNTlhMS41IDEuNSAwIDAgMCAuNDEuNjJ2My44OGEuNS41IDAgMCAxLS41LjVINWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg2LjVjLjI4IDAgLjUuMjIuNS41Wk03IDRINWExIDEgMCAwIDAtMSAxdjJoM1Y0Wm0tMyA4aDNWOEg0djRabTAgMXYyYTEgMSAwIDAgMCAxIDFoMnYtM0g0Wm00IDB2M2gzdi0zSDhabTMtOUg4djNoM1Y0Wm0xLjY1IDcuMTVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcuN2wuNjQuNjVIMTAuNWEuNS41IDAgMCAwIDAgMWgyLjhsLS42NS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyAxMy41YTMuNSAzLjUgMCAwIDEtMy41IDMuNUg1LjY3Yy43OC42MyAxLjc2IDEgMi44MyAxaDVhNC41IDQuNSAwIDAgMCA0LjUtNC41di01YzAtMS4wNy0uMzctMi4wNi0xLTIuODN2Ny44M1pNNC41IDE2SDZ2LTRIMnYxLjVBMi41IDIuNSAwIDAgMCA0LjUgMTZaTTYgN3Y0SDJWN2g0Wm01IDRIN1Y3aDR2NFptLTQgMWg0djRIN3YtNFptNS01djRoNFY3aC00Wm0wIDVoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEydi00Wk0yIDZoNFYySDQuNUEyLjUgMi41IDAgMCAwIDIgNC41VjZabTUgMFYyaDR2NEg3Wm01IDBWMmgxLjVBMi41IDIuNSAwIDAgMSAxNiA0LjVWNmgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNjcgMTdoNy44NGMuOTUgMCAxLjgyLS4zOSAyLjQ1LTEuMDFsLjAyLS4wMkEzLjQ5IDMuNDkgMCAwIDAgMTcgMTMuNVY1LjY3Yy42My43NyAxIDEuNzYgMSAyLjgzdjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC01YTQuNDggNC40OCAwIDAgMS0yLjgzLTFabTkuNi0xNC4yN2MuNDcuNDcuNzMgMS4xLjczIDEuNzd2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTlBMi41IDIuNSAwIDAgMSA0LjUgMmg5Yy42NiAwIDEuMy4yNiAxLjc3LjczWk00LjUgM2gtLjE0QTEuNSAxLjUgMCAwIDAgMyA0LjVWNmgzVjNINC41Wk0xMSAzSDd2M2g0VjNabTQgMS41di0uMTRBMS41IDEuNSAwIDAgMCAxMy41IDNIMTJ2M2gzVjQuNVpNNyA3djRoNFY3SDdabTggMGgtM3Y0aDNWN1ptLTggNXYzaDR2LTNIN1ptOCAwaC0zdjNIMTMuNjRBMS41IDEuNSAwIDAgMCAxNSAxMy41VjEyWk0zLjUgMTQuNjFjLjI3LjI1LjYzLjM5IDEgLjM5SDZ2LTNIM1YxMy42NGMuMDQuMzguMjIuNzIuNS45N1pNMyA3djRoM1Y3SDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU9mZnNldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0gxMnY0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNaTTggOGg5djRIOFY4Wm0tMSA0VjhIM3Y0aDRabS00IDFoOXY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVYxM1ptMTAgMHY0aDEuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoLTRabTAtNmg0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVPZmZzZXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlT2Zmc2V0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTE2IDEySDhWOGg4djRabS0zIDFoM3YxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdi0zWm0tMSAwdjNINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41VjEzaDhabS04LTFWOGgzdjRINFptMC01VjUuNUM0IDQuNjcgNC42NyA0IDUuNSA0SDEydjNINFptMTItMS41VjdoLTNWNGgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU9mZnNldEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0gxMnY0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNaTTggOGg5djEuNkE1LjQ4IDUuNDggMCAwIDAgOS42IDEySDhWOFptMSA2LjVjMC0uNTIuMDctMS4wMi4yLTEuNUgzdjEuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4zOC0uNzUtLjYtMS42LS42LTIuNVpNNyAxMlY4SDN2NGg0Wm02LTVoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptNiA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU9mZnNldEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVPZmZzZXRBZGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41VjEzaDUuMmMuMS0uMzUuMjQtLjY4LjQtMUg4VjhoOHYxLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTcgMTJINFY4aDN2NFpNNCA3VjUuNUM0IDQuNjcgNC42NyA0IDUuNSA0SDEydjNINFptMTItMS41VjdoLTNWNGgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVabTMgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlT2Zmc2V0TGVzc1RoYW5PckVxdWFsVG9GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVPZmZzZXRMZXNzVGhhbk9yRXF1YWxUb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0gxMnY0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNaTTggOGg5djEuNkE1LjQ4IDUuNDggMCAwIDAgOS42IDEySDhWOFptMSA2LjVjMC0uNTIuMDctMS4wMi4yLTEuNUgzdjEuNUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4zOC0uNzUtLjYtMS42LS42LTIuNVpNNyAxMlY4SDN2NGg0Wm02LTVoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptMS41IDEyYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wk0xMyAxNmgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWm0yLjQtNC44YS41LjUgMCAwIDEtLjEuN0wxMy44MyAxM2wxLjQ3IDEuMWEuNS41IDAgMCAxLS42LjhsLTItMS41YS41LjUgMCAwIDEgMC0uOGwyLTEuNWEuNS41IDAgMCAxIC43LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU9mZnNldExlc3NUaGFuT3JFcXVhbFRvUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldExlc3NUaGFuT3JFcXVhbFRvUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVYxM2g1LjJjLjEtLjM1LjI0LS42OC40LTFIOFY4aDh2MS4yYy4zNS4xLjY4LjI0IDEgLjRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk03IDEySDRWOGgzdjRaTTQgN1Y1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNEgxMnYzSDRabTEyLTEuNVY3aC0zVjRoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wk0xMyAxNmgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWm0yLjQtNC44YS41LjUgMCAwIDEtLjEuN0wxMy44MyAxM2wxLjQ3IDEuMWEuNS41IDAgMCAxLS42LjhsLTItMS41YS41LjUgMCAwIDEgMC0uOGwyLTEuNWEuNS41IDAgMCAxIC43LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU9mZnNldFNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlT2Zmc2V0U2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNIMTJ2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzWk04IDhoOXYxLjZBNS40OCA1LjQ4IDAgMCAwIDkuNiAxMkg4VjhabTEgNi41YzAtLjUyLjA3LTEuMDIuMi0xLjVIM3YxLjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMzgtLjc1LS42LTEuNi0uNi0yLjVaTTcgMTJWOEgzdjRoNFptNi01aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabS0uOTMgNC40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlT2Zmc2V0U2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlT2Zmc2V0U2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41VjEzaDUuMmMuMS0uMzUuMjQtLjY4LjQtMUg4VjhoOHYxLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTcgMTJINFY4aDN2NFpNNCA3VjUuNUM0IDQuNjcgNC42NyA0IDUuNSA0SDEydjNINFptMTItMS41VjdoLTNWNGgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVabS0zLjkzIDUuOTRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4yOS4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVJlc2l6ZUNvbHVtbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVJlc2l6ZUNvbHVtbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNCAzYTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzdi00LjM4bC4wNi0uMDYgMS41LTEuNWExLjUgMS41IDAgMCAwIDAtMi4xMmwtMS41LTEuNWExLjYgMS42IDAgMCAwLS4wNi0uMDZWM1ptLTEgMHY0YTEuNSAxLjUgMCAwIDAtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAwIDcgN1YzaDZabS00Ljk0IDkuNTZjLS4zLjMtLjY4LjQ0LTEuMDYuNDR2NGg2di00YTEuNSAxLjUgMCAwIDEtMS41LTEuNWgtM2MwIC4zOC0uMTUuNzctLjQ0IDEuMDZaTTYgMTd2LTQuMzhhMS41NSAxLjU1IDAgMCAxLS4wNi0uMDZsLTEuNS0xLjVhMS41IDEuNSAwIDAgMSAwLTIuMTJsMS41LTEuNS4wNi0uMDZWM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM1ptMS4zNS04Ljg1Yy4yLjIuMi41IDAgLjdsLS42NC42NWg2LjU4bC0uNjQtLjY1YS41LjUgMCAwIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjctLjdsLjY0LS42NUg2LjcxbC42NC42NWEuNS41IDAgMCAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVJlc2l6ZUNvbHVtblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVSZXNpemVDb2x1bW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMzUgOC4xNWMuMi4yLjIuNSAwIC43bC0uNjQuNjVoNi41OGwtLjY0LS42NWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVjLjIuMi4yLjUgMCAuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43LS43bC42NC0uNjVINi43MWwuNjQuNjVhLjUuNSAwIDAgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41Yy4yLS4yLjUtLjIuNyAwWk0xNyA2YTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNlptLTQtMnYzYy4zNiAwIC43Mi4xMyAxIC4zOFY0YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAydi0zLjM4YTEuNSAxLjUgMCAwIDEtMSAuMzh2M0g3di0zYTEuNSAxLjUgMCAwIDEtMS0uMzhWMTZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJ2My4zOEExLjUgMS41IDAgMCAxIDcgN1Y0aDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVJlc2l6ZVJvd0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVJlc2l6ZVJvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyAxNGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM2g0LjM4bC4wNi4wNiAxLjUgMS41YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDEuNS0xLjUuMDYtLjA2SDE3Wm0wLTFoLTRhMS41IDEuNSAwIDAgMC0xLjUtMS41di0zQTEuNSAxLjUgMCAwIDAgMTMgN2g0djZaTTcuNDQgOC4wNkExLjUgMS41IDAgMCAxIDcgN0gzdjZoNGExLjUgMS41IDAgMCAxIDEuNS0xLjV2LTNhMS41IDEuNSAwIDAgMS0xLjA2LS40NFpNMyA2aDQuMzhsLjA2LS4wNiAxLjUtMS41YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDEuNSAxLjUuMDYuMDZIMTdhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDNabTguODUgMS4zNWEuNS41IDAgMCAxLS43IDBsLS42NS0uNjR2Ni41OGwuNjUtLjY0YS41LjUgMCAwIDEgLjcuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjRWNi43MWwtLjY1LjY0YS41LjUgMCAxIDEtLjctLjdsMS41LTEuNWMuMi0uMi41LS4yLjcgMGwxLjUgMS41Yy4yLjIuMi41IDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVJlc2l6ZVJvd1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVSZXNpemVSb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjg1IDcuMzVhLjUuNSAwIDAgMS0uNyAwbC0uNjUtLjY0djYuNThsLjY1LS42NGEuNS41IDAgMCAxIC43LjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAwIDEgLjctLjdsLjY1LjY0VjYuNzFsLS42NS42NGEuNS41IDAgMSAxLS43LS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBsMS41IDEuNWMuMi4yLjIuNSAwIC43Wk0xNCAxN2EzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhabTItNGgtM2MwIC4zNi0uMTMuNzItLjM4IDFIMTZhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJoMy4zOEExLjUgMS41IDAgMCAxIDcgMTNINFY3aDNjMC0uMzYuMTMtLjcyLjM4LTFINGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMmgtMy4zOGMuMjUuMjguMzguNjQuMzggMWgzdjZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVNlYXJjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNlYXJjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyAxN2gxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjEzaC00djRaXCIsIFwiTTEzIDEyVjhoNHY0aC00WlwiLCBcIk0xMiAxMkg4Ljc0QTQuNSA0LjUgMCAwIDAgOCAxMC42N1Y4aDR2NFpcIiwgXCJNOC41NiAxNS40NCAxMC4xMiAxN0gxMnYtNEg4Ljk3YTQuNTUgNC41NSAwIDAgMS0uNCAyLjQ0WlwiLCBcIk00LjUgOWMuOTMgMCAxLjc4LjI4IDIuNS43NlY4SDN2MS4yNkE0LjUgNC41IDAgMCAxIDQuNSA5WlwiLCBcIk0xMyA3aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRaXCIsIFwiTTEyIDN2NEg4VjNoNFpcIiwgXCJNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3WlwiLCBcIk00LjUgMTdjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNS42QTMuNSAzLjUgMCAxIDAgNC41IDE3Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVNlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTZWFyY2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djMuNzZjLjMyLS4xMi42Ni0uMiAxLS4yM1Y4aDN2MS43NmE0LjQ5IDQuNDkgMCAwIDEgMSAuOTFWOGg0djRIOC43NGE0LjUgNC41IDAgMCAxIC4yMyAxSDEydjNIOS4xMmwxIDFoNC4zOGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlaTTE0LjUgMTZIMTN2LTNoM1YxNC42NEExLjUgMS41IDAgMCAxIDE0LjUgMTZaTTEzIDhoM3Y0aC0zVjhabS0xLTFIOFY0aDR2M1ptMS0zSDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNCA3VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3djNINFptLTIuNjIgNC45YTMuNSAzLjUgMCAwIDAgNS4yMiA0LjRsMi41NCAyLjU2YS41LjUgMCAwIDAgLjcxLS43MUw3LjMgMTUuNmEzLjUgMy41IDAgMSAwLTUuOTItMy43Wm01LjIuMjFhMi41IDIuNSAwIDEgMS00LjE2IDIuNzggMi41IDIuNSAwIDAgMSA0LjE2LTIuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgOS42YTUuNDggNS40OCAwIDAgMC00LS40VjhoNHYxLjZaTTkuMiAxM2E1LjUgNS41IDAgMCAwIC40IDRIOHYtNGgxLjJaTTEyIDkuNkE1LjUyIDUuNTIgMCAwIDAgOS42IDEySDhWOGg0djEuNlpNNyA4djRIM1Y4aDRabTAgNUgzdjEuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0g3di00Wm0xMC02aC00VjNoMS41QTIuNSAyLjUgMCAwIDEgMTcgNS41VjdabS01IDBWM0g4djRoNFpNNyA3VjNINS41QTIuNSAyLjUgMCAwIDAgMyA1LjVWN2g0Wm01LjA2IDQuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNzQgNC43NCAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTUuNTVabTIuNDQgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjhoLTN2MS4yYy0uMzUuMS0uNjguMjQtMSAuNFY4SDh2NGgxLjZjLS4xNi4zMi0uMy42NS0uNCAxSDh2M2gxLjJjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlaTTQgMTN2MS41YzAgLjc4LjYgMS40MiAxLjM2IDEuNUg3di0zSDRabTQtNmg0VjRIOHYzWm02LjUtM0gxM3YzaDNWNS41YzAtLjc4LS42LTEuNDItMS4zNi0xLjVoLS4xNFpNNCA1LjVWN2gzVjRINS41Yy0uNzggMC0xLjQyLjYtMS41IDEuMzZ2LjE0Wk03IDEyVjhINHY0aDNabTUuMDYtLjU2YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTYtLjU1YTIgMiAwIDAgMSAxLjQ0LTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wm0yLjQ0IDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTaW1wbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTaW1wbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY0aDYuNVYzaC00Wm00IDcuNUgzdjRBMi41IDIuNSAwIDAgMCA1LjUgMTdoNHYtNi41Wm0xIDBIMTd2NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTR2LTYuNVptNi41LTF2LTRBMi41IDIuNSAwIDAgMCAxNC41IDNoLTR2Ni41SDE3WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTaW1wbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU2ltcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTEgNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDR2LTUuNUg0Wm01LjUtMVY0aC00QzQuNjcgNCA0IDQuNjcgNCA1LjV2NGg1LjVabTEgMVYxNmg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGgtNS41Wm01LjUtMXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTR2NS41SDE2WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTaW1wbGVDaGVja21hcmtGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTaW1wbGVDaGVja21hcmtGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgMTdoLTMuNXYtNi41SDE3VjE0YTMgMyAwIDAgMS0zIDNabTMtNy41aC02LjVWM0gxNGEzIDMgMCAwIDEgMyAzdjMuNVptLTcuNSAwVjNINmEzIDMgMCAwIDAtMyAzdjMuNWg2LjVabTAgNy41di02LjVIM1YxNGEzIDMgMCAwIDAgMyAzaDMuNVptNS44NS0zLjlhLjUuNSAwIDAgMC0uNy0uN2wtMS40IDEuNC0uNC0uNGEuNS41IDAgMCAwLS43LjdsLjc1Ljc1Yy4yLjIuNS4yLjcgMGwxLjc1LTEuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVNpbXBsZUNoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTaW1wbGVDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDMuNXY1LjVINFY2Wm02LjUgMy41VjRIMTRhMiAyIDAgMCAxIDIgMnYzLjVoLTUuNVptLTYuNSAxaDUuNVYxNkg2YTIgMiAwIDAgMS0yLTJ2LTMuNVptMTAuODYgMS40Yy4yLjIuMi41IDAgLjdsLTEuNzUgMS43NWEuNS41IDAgMCAxLS43MSAwbC0uNzUtLjc1YS41LjUgMCAwIDEgLjctLjdsLjQuNCAxLjQtMS40Yy4yLS4yLjUxLS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlU2ltcGxlRXhjbHVkZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNpbXBsZUV4Y2x1ZGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDJIOHY2SDJWNC41QTIuNSAyLjUgMCAwIDEgNC41IDJaTTIgOXYzLjVBMi41IDIuNSAwIDAgMCA0LjUgMTVIOFY5SDJabTEzLTFWNC41QTIuNSAyLjUgMCAwIDAgMTIuNSAySDl2Nmg2Wm0tNCA1YzAtMS4xLjktMiAyLTJoNGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTaW1wbGVFeGNsdWRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNpbXBsZUV4Y2x1ZGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxNWg0YS41LjUgMCAwIDAgLjUtLjVWOWg1LjVhLjUuNSAwIDAgMCAuNS0uNXYtNEEyLjUgMi41IDAgMCAwIDEyLjUgMmgtOFpNOCA5djVINC41QTEuNSAxLjUgMCAwIDEgMyAxMi41VjloNVptMC0xSDNWNC41QzMgMy42NyAzLjY3IDMgNC41IDNIOHY1Wm0xIDBWM2gzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWOEg5Wm0yIDVjMC0xLjEuOS0yIDItMmg0YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVNpbXBsZUluY2x1ZGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTaW1wbGVJbmNsdWRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2NGg2LjEzYy4xMS0uMTQuMjMtLjI2LjM3LS4zN1YzaC00Wk0zIDEwLjVoNS42Yy0uMDYuMjQtLjEuNDktLjEuNzV2NGMwIC42Ni4yNCAxLjI3LjYzIDEuNzVINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di00Wm0xNC01djMuNjNhMi43NCAyLjc0IDAgMCAwLTEuNzUtLjYzaC00Yy0uMjYgMC0uNTEuMDQtLjc1LjFWM2g0QTIuNSAyLjUgMCAwIDEgMTcgNS41Wm0tNy41IDUuNzVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNGMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTaW1wbGVJbmNsdWRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNpbXBsZUluY2x1ZGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXYzLjYzYTIuNzQgMi43NCAwIDAgMC0xLS41M1Y1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00djQuNmMtLjM3LjEtLjcxLjI5LTEgLjUzVjRoLTRDNC42NyA0IDQgNC42NyA0IDUuNXY0aDUuMTNjLS4yNC4yOS0uNDIuNjMtLjUzIDFINHY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuMWMuMS4zNy4yOS43MS41MyAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptNi41IDUuNzVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNGMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTaW1wbGVNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNpbXBsZU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjVWOGg2VjJINC41Wk0yIDEyLjVWOWg2djZINC41QTIuNSAyLjUgMCAwIDEgMiAxMi41Wk05IDE1VjloNnYzLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDlabTYtMTAuNVY4SDlWMmgzLjVBMi41IDIuNSAwIDAgMSAxNSA0LjVaTTcuNSAxOGEyLjUgMi41IDAgMCAxLTIuNDUtMmg3LjQ1YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY1LjA1YTIuNSAyLjUgMCAwIDEgMiAyLjQ1djUuNzVBNC43NSA0Ljc1IDAgMCAxIDEzLjI1IDE4SDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlU2ltcGxlTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU2ltcGxlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxNWg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOEEyLjUgMi41IDAgMCAwIDEyLjUgMmgtOFpNMTQgOEg5VjNoMy41Yy44MyAwIDEuNS42NyAxLjUgMS41VjhaTTggOEgzVjQuNUMzIDMuNjcgMy42NyAzIDQuNSAzSDh2NVpNMyA5aDV2NUg0LjVBMS41IDEuNSAwIDAgMSAzIDEyLjVWOVptNiAwaDV2My41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5VjlabS0xLjUgOWEyLjUgMi41IDAgMCAxLTIuNDUtMkg2LjFjLjIuNTguNzYgMSAxLjQxIDFoNS43NUEzLjc1IDMuNzUgMCAwIDAgMTcgMTMuMjVWNy41YzAtLjY1LS40Mi0xLjItMS0xLjQxVjUuMDVhMi41IDIuNSAwIDAgMSAyIDIuNDV2NS43NUE0Ljc1IDQuNzUgMCAwIDEgMTMuMjUgMThINy41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNOS4xIDNhMS40MiAxLjQyIDAgMCAwIC44NiAxLjg0aC4wMWwxLjA4LjM1YTEuMiAxLjIgMCAwIDEgLjc2Ljc3bC4yLjZWN0g4VjNoMS4wOVptNy40IDlIMTNWOC41YTEuMyAxLjMgMCAwIDAgLjg3IDEuMjNoLjAxbC43Ny4yNWEuNTguNTggMCAwIDEgLjM3LjM3bC4yNS43N3YuMDFhMS4zIDEuMyAwIDAgMCAxLjIyLjg3Wm0tMS45OSA1SDEzdi00aDR2MS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNVpNOCAxMmg0VjhIOHY0Wm00IDFIOHY0aDR2LTRaTTcgOHY0SDNWOGg0Wm0wIDVIM3YxLjVBMi41IDIuNSAwIDAgMCA1LjUgMTdIN3YtNFptMC02VjNINS41QTIuNSAyLjUgMCAwIDAgMyA1LjVWN2g0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuMDkgM0g1LjVBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0yLjZhMS4zIDEuMyAwIDAgMS0xIDB2LjFoLTNWOGguMWwuMDItLjA1Yy0uMTYtLjA0LS4zLS4xMi0uNDQtLjIxbC0uMDctLjA1Yy0uMi0uMTctLjM2LS4zOS0uNDUtLjY0di0uMDFMMTIgNi41N1Y3SDhWNGgxLjFhMS40MiAxLjQyIDAgMCAxLS4wMS0xWk00IDEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41VjEzWm00IDN2LTNoNHYzSDhabTUgMHYtM2gzVjE0LjY0QTEuNSAxLjUgMCAwIDEgMTQuNSAxNkgxM1ptLTEtNEg4VjhoNHY0Wk00IDUuNXYtLjE0QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRWNS41Wk03IDEySDRWOGgzdjRaTTEzLjg4LjI4bC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlU3BsaXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTcGxpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDZoNFYySDh2NFpNNyAySDMuNWEuNS41IDAgMCAwLS41LjVWNGMwIDEuMS45IDIgMiAyaDJWMlptNiA0aDJhMiAyIDAgMCAwIDItMlYyLjVhLjUuNSAwIDAgMC0uNS0uNUgxM3Y0Wm00IDExLjVhLjUuNSAwIDAgMS0uNS41SDEzdi00aDJhMiAyIDAgMCAxIDIgMnYxLjVaTTEyIDE0djRIOHYtNGg0Wm0tOC41IDRIN3YtNEg1YTIgMiAwIDAgMC0yIDJ2MS41YzAgLjI4LjIyLjUuNS41Wm0tMS04LjVoMTVhLjUuNSAwIDEgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTcGxpdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTcGxpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSAyYy4yOCAwIC41LjIyLjUuNVY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjIuNWEuNS41IDAgMCAxIDEgMFY0YTEgMSAwIDAgMCAxIDFoMlYyLjVhLjUuNSAwIDAgMSAxIDBWNWg0VjIuNWEuNS41IDAgMCAxIDEgMFY1aDJhMSAxIDAgMCAwIDEtMVYyLjVjMC0uMjguMjItLjUuNS0uNVptMCAxNmEuNS41IDAgMCAwIC41LS41VjE2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjEuNWEuNS41IDAgMCAwIDEgMFYxNmExIDEgMCAwIDEgMS0xaDJ2Mi41YS41LjUgMCAwIDAgMSAwVjE1aDR2Mi41YS41LjUgMCAwIDAgMSAwVjE1aDJhMSAxIDAgMCAxIDEgMXYxLjVjMCAuMjguMjIuNS41LjVabS0xNC04LjVoMTVhLjUuNSAwIDEgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTdGFja0Fib3ZlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3RhY2tBYm92ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgM2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaTTE1IDE3aC0ydi00aDR2MmEyIDIgMCAwIDEtMiAyWm0yLTVoLTRWOGgzLjVjLjI4IDAgLjUuMjIuNS41VjEyWm0tNSAwVjhIOHY0aDRabS00IDVoNHYtNEg4djRaTTcgOHY0SDNWOC41YzAtLjI4LjIyLS41LjUtLjVIN1ptMCA5SDVhMiAyIDAgMCAxLTItMnYtMmg0djRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVN0YWNrQWJvdmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3RhY2tBYm92ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAzLjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoMTNjLjI4IDAgLjUuMjIuNS41VjE1YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjguNVpNNCAxM3YyYTEgMSAwIDAgMCAxIDFoMnYtM0g0Wm04IDN2LTNIOHYzaDRabTEgMGgyYTEgMSAwIDAgMCAxLTF2LTJoLTN2M1ptMC00aDNWOWgtM3YzWm0tMS0zSDh2M2g0VjlaTTQgOXYzaDNWOUg0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTdGFja0JlbG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3RhY2tCZWxvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi41IDE3YS41LjUgMCAwIDAgMC0xaC0xM2EuNS41IDAgMCAwIDAgMWgxM1pNNSAzaDJ2NEgzVjVjMC0xLjEuOS0yIDItMlpNMyA4aDR2NEgzLjVhLjUuNSAwIDAgMS0uNS0uNVY4Wm01IDB2NGg0VjhIOFptNC01SDh2NGg0VjNabTEgOVY4aDR2My41YS41LjUgMCAwIDEtLjUuNUgxM1ptMC05aDJhMiAyIDAgMCAxIDIgMnYyaC00VjNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVN0YWNrQmVsb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3RhY2tCZWxvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgMTYuNWEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEgMC0xaDEzYy4yOCAwIC41LjIyLjUuNVptMC01YS41LjUgMCAwIDEtLjUuNWgtMTNhLjUuNSAwIDAgMS0uNS0uNVY1YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY2LjVaTTE2IDdWNWExIDEgMCAwIDAtMS0xaC0ydjNoM1pNOCA0djNoNFY0SDhaTTcgNEg1YTEgMSAwIDAgMC0xIDF2MmgzVjRabTAgNEg0djNoM1Y4Wm0xIDNoNFY4SDh2M1ptOCAwVjhoLTN2M2gzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVTdGFja0xlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTdGFja0xlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAxNi41YS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLTEgMHYxM1pNMTcgNXYyaC00VjNoMmEyIDIgMCAwIDEgMiAyWm0tNS0ydjRIOFYzLjVjMC0uMjguMjItLjUuNS0uNUgxMlptMCA1SDh2NGg0VjhabTUgNFY4aC00djRoNFptLTkgMWg0djRIOC41YS41LjUgMCAwIDEtLjUtLjVWMTNabTkgMHYyYTIgMiAwIDAgMS0yIDJoLTJ2LTRoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlU3RhY2tMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVN0YWNrTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDE3YS41LjUgMCAwIDEtLjUtLjV2LTEzYS41LjUgMCAwIDEgMSAwdjEzYS41LjUgMCAwIDEtLjUuNVptNSAwYS41LjUgMCAwIDEtLjUtLjV2LTEzYzAtLjI4LjIyLS41LjUtLjVIMTVhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDguNVptNC41LTFoMmExIDEgMCAwIDAgMS0xdi0yaC0zdjNabTMtOGgtM3Y0aDNWOFptMC0xVjVhMSAxIDAgMCAwLTEtMWgtMnYzaDNabS00IDBWNEg5djNoM1pNOSA4djRoM1Y4SDlabTAgOGgzdi0zSDl2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlU3RhY2tSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZVN0YWNrUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgMy41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1pNMyAxNXYtMmg0djRINWEyIDIgMCAwIDEtMi0yWm01IDJ2LTRoNHYzLjVhLjUuNSAwIDAgMS0uNS41SDhabTAtNWg0VjhIOHY0Wk0zIDh2NGg0VjhIM1ptOS0xSDhWM2gzLjVjLjI4IDAgLjUuMjIuNS41VjdaTTMgN1Y1YzAtMS4xLjktMiAyLTJoMnY0SDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVN0YWNrUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3RhY2tSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSAzYy4yOCAwIC41LjIyLjUuNXYxM2EuNS41IDAgMCAxLTEgMHYtMTNjMC0uMjguMjItLjUuNS0uNVptLTUgMGMuMjggMCAuNS4yMi41LjV2MTNhLjUuNSAwIDAgMS0uNS41SDVhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoNi41Wk03IDRINWExIDEgMCAwIDAtMSAxdjJoM1Y0Wm0tMyA4aDNWOEg0djRabTAgMXYyYTEgMSAwIDAgMCAxIDFoMnYtM0g0Wm00IDB2M2gzdi0zSDhabTMtMVY4SDh2NGgzWm0wLThIOHYzaDNWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlU3dpdGNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlU3dpdGNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuODUgMS4xNWEuNS41IDAgMSAwLS43LjdMOC4yOSAzSDZhMyAzIDAgMCAwLTMgM3YyLjNMMS44NSA3LjE0YS41LjUgMCAxIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDItMmEuNS41IDAgMSAwLS43LS43TDQgOC4yOVY2YzAtMS4xLjktMiAyLTJoMi4zTDcuMTQgNS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWm0uNzEgNS40MWExLjUgMS41IDAgMCAxLS41Ni4zNVY3aDRWM2gtMS4wOWExLjUgMS41IDAgMCAxLS4zNSAxLjU2bC0yIDJabS00IDRhMS41IDEuNSAwIDAgMS0xLjU2LjM1VjEyaDRWOGgtLjA5Yy0uMDcuMi0uMTkuNC0uMzUuNTZsLTIgMlpNMTMgMTdoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2gtNHY0Wm0wLTVWOGg0djRoLTRabS0xIDBIOFY4aDR2NFptLTQgMWg0djRIOHYtNFptLTUgMGg0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm0xMC02aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZVN3aXRjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVTd2l0Y2hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuODUgMS4xNWEuNS41IDAgMSAwLS43LjdMOC4yOSAzSDZhMyAzIDAgMCAwLTMgM3YyLjNMMS44NSA3LjE0YS41LjUgMCAxIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDItMmEuNS41IDAgMSAwLS43LS43TDQgOC4yOVY2YzAtMS4xLjktMiAyLTJoMi4zTDcuMTQgNS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWk03IDEyVjdoNVY0aC0xLjA5YTEuNSAxLjUgMCAwIDAgMC0xaDMuNTlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTMuNTljLjMyLjEyLjY4LjEyIDEgMFYxMmgzWm0tMyAyLjVjMCAuNzguNiAxLjQyIDEuMzYgMS41SDd2LTNINHYxLjVabTgtMS41SDh2M2g0di0zWm0yLjUgM2MuNzggMCAxLjQyLS42IDEuNS0xLjM2VjEzaC0zdjNoMS41Wk0xMiA4SDh2NGg0VjhabTEgMHY0aDNWOGgtM1ptMC00djNoM1Y1LjVjMC0uNzgtLjYtMS40Mi0xLjM2LTEuNUgxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTYuNSA2YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDEyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0Wk0zIDZhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxldExhcHRvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZXRMYXB0b3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAzYTIgMiAwIDAgMC0yIDJ2M2g2YTMgMyAwIDAgMSAzIDN2MWgxYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDdabTEwLjUgMTFIMTR2LTFoMy41YS41LjUgMCAwIDEgMCAxWm0tMTEgMGEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk0yIDExYzAtMS4xLjktMiAyLTJoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZXRMYXB0b3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxldExhcHRvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMXYtMWgxYTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYzSDVWNVptOSA4djFoMy41YS41LjUgMCAwIDAgMC0xSDE0Wk0yIDExYzAtMS4xLjktMiAyLTJoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRabTItMWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg3YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMUg0Wm0yIDQuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxldFNwZWFrZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGV0U3BlYWtlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy43IDIuMDRjLjE4LjA4LjMuMjYuMy40NnY2YS41LjUgMCAwIDEtLjg1LjM1TDExLjI5IDdoLS43OWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoLjhsMS44NS0xLjg1YS41LjUgMCAwIDEgLjU0LS4xMVptMy45NS4xNmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAxIDEgLjgtLjZabS0xLjcgMS4wOGE1LjUgNS41IDAgMCAxIC41NSAyLjIyIDQuOSA0LjkgMCAwIDEtLjU1IDIuMjIuNS41IDAgMSAxLS45LS40NGwuMDgtLjE3LjE1LS40Yy4xNC0uNDIuMjItLjgzLjIyLTEuMjFzLS4wOC0uOC0uMjItMS4yMmE0LjU5IDQuNTkgMCAwIDAtLjIzLS41Ni41LjUgMCAxIDEgLjktLjQ0Wm0uNCA2LjQyYTEuNSAxLjUgMCAwIDEtLjUzLS43NCAxLjUgMS41IDAgMCAxLS44Ny0uMDcgMS41IDEuNSAwIDAgMS0yLjUxLjY3TDEwLjg4IDhoLS4zOEExLjUgMS41IDAgMCAxIDkgNi41di0yYzAtLjE4LjAzLS4zNC4wOS0uNUg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOS44Yy0uNS4yOS0xLjE1LjI3LTEuNjUtLjFaTTguNSAxM2gzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGV0U3BlYWtlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGV0U3BlYWtlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTguMSAzLjA3YTMuNjcgMy42NyAwIDAgMC0uNDUtLjg3LjUuNSAwIDAgMC0uOC42bC4wNy4xYTUuOSA1LjkgMCAwIDEgLjU4IDIuNiA1LjkgNS45IDAgMCAxLS41OCAyLjZsLS4xMi4xOGEuNS41IDAgMCAwIC44NS41MmMuMTItLjE2LjI5LS40NS40NC0uODcuMjYtLjY4LjQxLTEuNS40MS0yLjQzIDAtLjk0LS4xNS0xLjc1LS40LTIuNDNaTTE0IDIuNWEuNS41IDAgMCAwLS44NS0uMzVMMTEuMjkgNGgtLjc5YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aC44bDEuODUgMS44NUEuNS41IDAgMCAwIDE0IDguNXYtNlptMS45NS43OGE1LjUgNS41IDAgMCAxIC41NSAyLjIyIDQuOSA0LjkgMCAwIDEtLjU1IDIuMjIuNS41IDAgMSAxLS45LS40NGwuMDgtLjE3LjE1LS40Yy4xNC0uNDIuMjItLjgzLjIyLTEuMjFzLS4wOC0uOC0uMjItMS4yMmE0LjU5IDQuNTkgMCAwIDAtLjIzLS41Ni41LjUgMCAxIDEgLjktLjQ0Wk0xNyA5Ljk4VjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWg1di0uNWMwLS4xOC4wMy0uMzQuMDktLjVINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjkuOGMtLjMuMTctLjY2LjI0LTEgLjE4Wk04LjUgMTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYnNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFic0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDhhNiA2IDAgMCAxIDYtNmgzYTMgMyAwIDAgMSAyLjI0IDFIOGE1IDUgMCAwIDAtNSA1djUuMjRBMyAzIDAgMCAxIDIgMTFWOFptMiAuNUE0LjUgNC41IDAgMCAxIDguNSA0SDEzYTMgMyAwIDAgMSAyLjI0IDFIOC41QTMuNSAzLjUgMCAwIDAgNSA4LjV2Ni43NEEzIDMgMCAwIDEgNCAxM1Y4LjVaTTkgNmEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTNWOWEzIDMgMCAwIDAtMy0zSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDhhNiA2IDAgMCAxIDYtNmgzYTMgMyAwIDAgMSAyLjI0IDFIOGE1IDUgMCAwIDAtNSA1djUuMjRBMyAzIDAgMCAxIDIgMTFWOFptMTMtMmEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g5YTMgMyAwIDAgMS0zLTNWOWEzIDMgMCAwIDEgMy0zaDZabS04IDljMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDlhMiAyIDAgMCAwLTIgMnY2Wk00IDguNUE0LjUgNC41IDAgMCAxIDguNSA0SDEzYTMgMyAwIDAgMSAyLjI0IDFIOC41QTMuNSAzLjUgMCAwIDAgNSA4LjV2Ni43NEEzIDMgMCAwIDEgNCAxM1Y4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDQuMDNhMiAyIDAgMCAwLTEuOTgtMkwxMS4xMiAyYTIgMiAwIDAgMC0xLjQyLjU5TDMuMDIgOS4yNWEyIDIgMCAwIDAgMCAyLjgzbDQuOTUgNC45NWEyIDIgMCAwIDAgMi44MyAwbDYuNjMtNi42M0EyIDIgMCAwIDAgMTggOC45OFY0LjAzWk0xNCA3YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCA3YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTIuODctNWEyIDIgMCAwIDAtMS40My41OEwzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDIuODMgMGw2LjYzLTYuNjNBMiAyIDAgMCAwIDE4IDguOThWNC4wM2EyIDIgMCAwIDAtMS45OS0yTDExLjEyIDJabS0uNzIgMS4zYTEgMSAwIDAgMSAuNzEtLjNsNC45LjAzYTEgMSAwIDAgMSAuOTkgMXY0Ljk1YTEgMSAwIDAgMS0uMjkuN2wtNi42MyA2LjY0YTEgMSAwIDAgMS0xLjQxIDBsLTQuOTUtNC45NWExIDEgMCAwIDEgMC0xLjQxbDYuNjgtNi42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ0NpcmNsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWdDaXJjbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNC0xLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWg0LjA2Yy40IDAgLjc5LS4xNCAxLjEtLjM5bDEuNzgtMS40NGExLjUgMS41IDAgMCAwIDAtMi4zNEwxMi42NiA3LjRjLS4zMS0uMjUtLjctLjM5LTEuMS0uMzlINy41QzYuNjcgNyA2IDcuNjcgNiA4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWdDaXJjbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhZ0NpcmNsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDdDNi42NyA3IDYgNy42NyA2IDguNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuMDZjLjQgMCAuNzktLjE0IDEuMS0uMzlsMS43OC0xLjQ0YTEuNSAxLjUgMCAwIDAgMC0yLjM0TDEyLjY2IDcuNGMtLjMxLS4yNS0uNy0uMzktMS4xLS4zOUg3LjVaTTcgOC41YzAtLjI4LjIyLS41LjUtLjVoNC4wNmMuMTcgMCAuMzQuMDYuNDcuMTdMMTMuOCA5LjZhLjUuNSAwIDAgMSAwIC43OGwtMS43OCAxLjQ0Yy0uMTMuMTEtLjMuMTctLjQ3LjE3SDcuNWEuNS41IDAgMCAxLS41LS41di0zWk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFnRGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWdEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDQuMDNhMiAyIDAgMCAwLTEuOTgtMkwxMS4xMiAyYTIgMiAwIDAgMC0xLjQyLjU5TDMuMDIgOS4yNWEyIDIgMCAwIDAgMCAyLjgzbDQuOTUgNC45NWEyIDIgMCAwIDAgMS45NS41MSA1LjUgNS41IDAgMCAxIDcuOC03LjUgMiAyIDAgMCAwIC4zLTEuMDZMMTggNC4wM1pNMTQgN2ExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTUgNy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ0Rpc21pc3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhZ0Rpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0tMi44Ny01YTIgMiAwIDAgMC0xLjQzLjU4TDMuMDIgOS4yNWEyIDIgMCAwIDAgMCAyLjgzbDQuOTUgNC45NWEyIDIgMCAwIDAgMS45NS41MWMtLjItLjI5LS4zNi0uNi0uNS0uOTNhMSAxIDAgMCAxLS43NC0uMjlsLTQuOTUtNC45NWExIDEgMCAwIDEgMC0xLjQxbDYuNjgtNi42N2ExIDEgMCAwIDEgLjcxLS4yOWw0LjkuMDNhMSAxIDAgMCAxIC45OSAxdjQuOTVhMSAxIDAgMCAxLS4xNi41NWMuMy4xNC42LjMxLjg2LjVhMiAyIDAgMCAwIC4zLTEuMDVWNC4wM2EyIDIgMCAwIDAtMS45OS0yTDExLjEyIDJaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFnRXJyb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnRXJyb3JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNC4wM2EyIDIgMCAwIDAtMS45OC0yTDExLjEyIDJhMiAyIDAgMCAwLTEuNDIuNTlMMy4wMiA5LjI1YTIgMiAwIDAgMCAwIDIuODNsNC45NSA0Ljk1YTIgMiAwIDAgMCAxLjk1LjUxIDUuNSA1LjUgMCAwIDEgNy44LTcuNSAyIDIgMCAwIDAgLjMtMS4wNkwxOCA0LjAzWk0xNCA3YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptNSA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDEgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEyYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFnRXJyb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhZ0Vycm9yUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCA3YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTIuODctNWEyIDIgMCAwIDAtMS40My41OEwzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDEuOTUuNTFjLS4yLS4yOS0uMzYtLjYtLjUtLjkzYTEgMSAwIDAgMS0uNzQtLjI5bC00Ljk1LTQuOTVhMSAxIDAgMCAxIDAtMS40MWw2LjY4LTYuNjdhMSAxIDAgMCAxIC43MS0uMjlsNC45LjAzYTEgMSAwIDAgMSAuOTkgMXY0Ljk1YTEgMSAwIDAgMS0uMTYuNTVjLjMuMTQuNi4zMS44Ni41YTIgMiAwIDAgMCAuMy0xLjA1VjQuMDNhMiAyIDAgMCAwLTEuOTktMkwxMS4xMiAyWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ0xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnTG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA0LjAzYTIgMiAwIDAgMC0xLjk4LTJMMTEuMTIgMmEyIDIgMCAwIDAtMS40Mi41OUwzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDIuMDMuNDlWMTRhMiAyIDAgMCAxIDEuNS0xLjk0VjEyYTMgMyAwIDAgMSA1LjY4LTEuMzVsLjI1LS4yNUEyIDIgMCAwIDAgMTggOC45OFY0LjAzWk0xNCA3YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTEuNSA1djFIMTJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWdMb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWdMb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCA3YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTIuODctNWEyIDIgMCAwIDAtMS40My41OEwzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDIuMDMuNDlWMTYuNGExIDEgMCAwIDEtMS4zMi0uMDhsLTQuOTUtNC45NWExIDEgMCAwIDEgMC0xLjQxbDYuNjgtNi42N2ExIDEgMCAwIDEgLjcxLS4yOWw0LjkuMDNhMSAxIDAgMCAxIC45OSAxdjQuOTVhMSAxIDAgMCAxLS4yOS43bC0uMTQuMTVhMyAzIDAgMCAxIC42LjgybC4yNS0uMjVBMiAyIDAgMCAwIDE4IDguOThWNC4wM2EyIDIgMCAwIDAtMS45OS0yTDExLjEyIDJabTEuMzcgMTB2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ0xvY2tBY2NlbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnTG9ja0FjY2VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNy41IDQuMDNjMC0uODItLjY2LTEuNDktMS40OC0xLjVsLTQuOS0uMDNjLS40IDAtLjc4LjE2LTEuMDYuNDRMMy4zOCA5LjYxYTEuNSAxLjUgMCAwIDAgMCAyLjEybDQuOTQgNC45NWExLjUgMS41IDAgMCAwIDEuNjguM1YxNGEyIDIgMCAwIDEgMS41LTEuOTRWMTJhMyAzIDAgMCAxIDUuNC0xLjc5bC4xNy0uMTZjLjI5LS4yOS40NC0uNjcuNDQtMS4wN1Y0LjAzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFnTXVsdGlwbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnTXVsdGlwbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAxMS44YTIgMiAwIDAgMCAuNDYgMi4xMWwyLjk3IDIuOThhNCA0IDAgMCAwIDUuNjUuMDJsNC40LTQuMzZhMiAyIDAgMCAwIC42LTEuNDN2LS41N2wtNSA0Ljk2LS4xNS4xMy0uNTYuNTVhMyAzIDAgMCAxLTQuMjMgMGwtLjUtLjVhNC4wNSA0LjA1IDAgMCAxLS4yLS4ybC0yLjk4LTIuOThBMiAyIDAgMCAxIDMgMTEuOFptNi4yLTkuMjFBMiAyIDAgMCAxIDEwLjYzIDJoNC40NWEyIDIgMCAwIDEgMiAydjQuMzdhMiAyIDAgMCAxLS41OSAxLjQzbC01LjgyIDUuNzZhMiAyIDAgMCAxLTIuODItLjAxbC00LjM4LTQuMzlhMiAyIDAgMCAxIDAtMi44Mkw5LjIgMi41OVptNC4zIDMuOTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFnTXVsdGlwbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhZ011bHRpcGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDYuNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTkuMiAyLjU5QTIgMiAwIDAgMSAxMC42MyAyaDQuNDVhMiAyIDAgMCAxIDIgMnY0LjM3YTIgMiAwIDAgMS0uNTkgMS40M2wtNS44MiA1Ljc2YTIgMiAwIDAgMS0yLjgyLS4wMWwtNC4zOC00LjM5YTIgMiAwIDAgMSAwLTIuODJMOS4yIDIuNTlabTEuNDIuNDFhMSAxIDAgMCAwLS43LjNMNC4xNSA5LjAzYTEgMSAwIDAgMCAwIDEuNDJsNC4zOSA0LjM4YTEgMSAwIDAgMCAxLjQgMGw1LjgzLTUuNzZhMSAxIDAgMCAwIC4zLS43VjRhMSAxIDAgMCAwLTEtMWgtNC40NlpNMyAxMS44YTIgMiAwIDAgMCAuNDYgMi4xMWwyLjk3IDIuOThhNCA0IDAgMCAwIDUuNjUuMDJsNC40LTQuMzZhMiAyIDAgMCAwIC42LTEuNDN2LS41N2wtNSA0Ljk2LS4xNS4xMy0uNTYuNTVhMyAzIDAgMCAxLTQuMjMgMGwtLjUtLjVhNC4wNSA0LjA1IDAgMCAxLS4yLS4ybC0yLjk4LTIuOThBMiAyIDAgMCAxIDMgMTEuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ09mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWdPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w1Ljc5IDYuNSAzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDIuODMgMGwyLjc2LTIuNzYgMy41OSAzLjU4YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xNC41OCA4LjI1LTIuNDUgMi40NUw3LjIgNS4wOGwyLjUtMi41QTIgMiAwIDAgMSAxMS4xMyAybDQuODkuMDRhMiAyIDAgMCAxIDEuOTkgMnY0Ljk0YTIgMiAwIDAgMS0uNTggMS40MlpNMTQgN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWdPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhZ09mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS43OSA2LjUgMi4xNSAyLjg0YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0zLjYtMy41OC0yLjc1IDIuNzZhMiAyIDAgMCAxLTIuODMgMGwtNC45NS00Ljk1YTIgMiAwIDAgMSAwLTIuODNMNS44IDYuNDlabTcuMDYgNy4wNkw2LjUgNy4yIDMuNzMgOS45NmExIDEgMCAwIDAgMCAxLjQxbDQuOTUgNC45NWExIDEgMCAwIDAgMS40MSAwbDIuNzYtMi43NlptMy44Ny0zLjg3LTIuNDUgMi40NS43LjcxIDIuNDYtMi40NUEyIDIgMCAwIDAgMTggOC45OFY0LjAzYTIgMiAwIDAgMC0xLjk5LTJMMTEuMTIgMmEyIDIgMCAwIDAtMS40Mi41OGwtMi41IDIuNS43LjcgMi41MS0yLjQ5YTEgMSAwIDAgMSAuNzEtLjI5bDQuOS4wM2ExIDEgMCAwIDEgLjk5IDF2NC45NWExIDEgMCAwIDEtLjI5LjdaTTE0IDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFnUXVlc3Rpb25NYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhZ1F1ZXN0aW9uTWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA0LjAzYTIgMiAwIDAgMC0xLjk4LTJMMTEuMTIgMmEyIDIgMCAwIDAtMS40Mi41OUwzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDEuOTUuNTEgNS41IDUuNSAwIDAgMSA3LjgtNy41IDIgMiAwIDAgMCAuMy0xLjA2TDE4IDQuMDNaTTE0IDdhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm01IDcuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuNSAxLjg4YS42Mi42MiAwIDEgMCAwIDEuMjUuNjIuNjIgMCAwIDAgMC0xLjI1Wm0wLTQuODhjLTEuMDUgMC0xLjg2LjgyLTEuODUgMS45NmEuNS41IDAgMSAwIDEtLjAxYzAtLjU4LjM2LS45NS44NS0uOTUuNDcgMCAuODUuNC44NS45NSAwIC4yLS4wNy4zMi0uMzYuNTVsLS4yNy4yMWMtLjUxLjQtLjcyLjcyLS43MiAxLjI5YS41LjUgMCAwIDAgMSAuMDl2LS4xNmMuMDItLjE0LjEtLjI1LjM1LS40NGwuMjgtLjIyYy41LS40LjcyLS43My43Mi0xLjMyIDAtMS4xLS44Mi0xLjk1LTEuODUtMS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ1F1ZXN0aW9uTWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnUXVlc3Rpb25NYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNCA3YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTIuODctNWEyIDIgMCAwIDAtMS40My41OEwzLjAyIDkuMjVhMiAyIDAgMCAwIDAgMi44M2w0Ljk1IDQuOTVhMiAyIDAgMCAwIDEuOTUuNTFjLS4yLS4yOS0uMzYtLjYtLjUtLjkzYTEgMSAwIDAgMS0uNzQtLjI5bC00Ljk1LTQuOTVhMSAxIDAgMCAxIDAtMS40MWw2LjY4LTYuNjdhMSAxIDAgMCAxIC43MS0uMjlsNC45LjAzYTEgMSAwIDAgMSAuOTkgMXY0Ljk1YTEgMSAwIDAgMS0uMTYuNTVjLjMuMTQuNi4zMS44Ni41YTIgMiAwIDAgMCAuMy0xLjA1VjQuMDNhMiAyIDAgMCAwLTEuOTktMkwxMS4xMiAyWk0xOSAxNC41YTQuNSA0LjUgMCAxIDAtOSAwIDQuNSA0LjUgMCAwIDAgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAxIDAgMS4yNS42Mi42MiAwIDAgMSAwLTEuMjVabTAtNC44OGMxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NSAwLS41NS0uMzgtLjk1LS44NS0uOTUtLjUgMC0uODYuMzctLjg1Ljk1YS41LjUgMCAxIDEtMSAwYy0uMDEtMS4xMy44LTEuOTUgMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFnUmVzZXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnUmVzZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuMDIgMi4wNGEyIDIgMCAwIDEgMS45OSAydjQuOTRhMiAyIDAgMCAxLS41OCAxLjQybC0uMTUuMTVBNSA1IDAgMCAwIDE1IDEwaC0xLjA5YTEuNSAxLjUgMCAwIDAtMi40Ny0xLjU2bC0yIDJhMS41IDEuNSAwIDAgMCAwIDIuMTJsMS4yIDEuMkExLjUgMS41IDAgMCAwIDEwIDE1YTUgNSAwIDAgMCAuNTQgMi4yNSAyIDIgMCAwIDEtMi41Ny0uMjJsLTQuOTUtNC45NWEyIDIgMCAwIDEgMC0yLjgzTDkuNyAyLjZBMiAyIDAgMCAxIDExLjEzIDJsNC44OS4wNFpNMTMgNmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabS0uMTUgMy44NWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMCAwIC43LS43TDExLjcxIDEySDE1YTMgMyAwIDEgMS0zIDMgLjUuNSAwIDEgMC0xIDAgNCA0IDAgMSAwIDQtNGgtMy4zbDEuMTUtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ1Jlc2V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWdSZXNldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgNmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaTTkuNyAyLjU4QTIgMiAwIDAgMSAxMS4xMyAybDQuODkuMDNhMiAyIDAgMCAxIDEuOTkgMnY0Ljk1YTIgMiAwIDAgMS0uNTggMS40MmwtLjE1LjE1YTUgNSAwIDAgMC0xLjAzLS40bC40Ny0uNDZhMSAxIDAgMCAwIC4zLS43TDE3IDQuMDJhMSAxIDAgMCAwLTEtMUwxMS4xMiAzYTEgMSAwIDAgMC0uNzEuM0wzLjczIDkuOTVhMSAxIDAgMCAwIDAgMS40MWw0Ljk1IDQuOTVhMSAxIDAgMCAwIDEuNDEgMGwuMDctLjA3YTUgNSAwIDAgMCAuMzcgMSAyIDIgMCAwIDEtMi41Ni0uMjJsLTQuOTUtNC45NWEyIDIgMCAwIDEgMC0yLjgzTDkuNyAyLjU4Wm0zLjE1IDcuMjdhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMS43MSAxMkgxNWEzIDMgMCAxIDEtMyAzIC41LjUgMCAxIDAtMSAwIDQgNCAwIDEgMCA0LTRoLTMuM2wxLjE1LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWdTZWFyY2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjAyIDIuMDRhMiAyIDAgMCAxIDEuOTkgMnY0Ljk0YTIgMiAwIDAgMS0uNTggMS40MmwtLjM2LjM2YTQuNSA0LjUgMCAxIDAtNi4zMSA2LjMgMiAyIDAgMCAxLTIuOC0uMDNsLTQuOTQtNC45NWEyIDIgMCAwIDEgMC0yLjgzTDkuNyAyLjZBMiAyIDAgMCAxIDExLjEzIDJsNC44OS4wNFpNMTMgNmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabTMuMyA5LjZhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDE2LjMgMTUuNlptLS4zLTIuMWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhZ1NlYXJjaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFnU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNOS43IDIuNThBMiAyIDAgMCAxIDExLjEzIDJsNC44OS4wM2EyIDIgMCAwIDEgMS45OSAydjQuOTVhMiAyIDAgMCAxLS41OCAxLjQybC0uMzYuMzZjLS4yLS4yNy0uNDQtLjUxLS43LS43MmwuMzUtLjM1YTEgMSAwIDAgMCAuMy0uN0wxNyA0LjAyYTEgMSAwIDAgMC0xLTFMMTEuMTIgM2ExIDEgMCAwIDAtLjcxLjNMMy43MyA5Ljk1YTEgMSAwIDAgMCAwIDEuNDFsNC45NSA0Ljk1YTEgMSAwIDAgMCAxLjM1LjA1Yy4yMi4yNi40Ni41LjczLjdhMiAyIDAgMCAxLTIuOC0uMDRsLTQuOTQtNC45NWEyIDIgMCAwIDEgMC0yLjgzTDkuNyAyLjU4Wm02LjYgMTMuMDJhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDE2LjMgMTUuNlptLS4zLTIuMWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhcERvdWJsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXBEb3VibGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCA4LjVhNS41IDUuNSAwIDEgMSAxMC45Ny42Yy4zNC4xNS42NS4zNC45My41N0E2LjUgNi41IDAgMSAwIDMuNjQgMTEuM2MuMjUtLjI1LjUzLS40NS44Mi0uNjFBNS40OCA1LjQ4IDAgMCAxIDQgOC41Wm0xMCAwLS4wMS4zMy0xLS4xNy4wMS0uMTZhMy41IDMuNSAwIDEgMC02LjU3IDEuNjkgNC40IDQuNCAwIDAgMC0xLjA1LjEzQTQuNDggNC40OCAwIDAgMSA5LjUgNCA0LjUgNC41IDAgMCAxIDE0IDguNVptLTYtMWExLjUgMS41IDAgMSAxIDMgMHYyLjA4bDIuOTQuNTFhMi41IDIuNSAwIDAgMSAxLjkxIDMuMzNsLS45OCAyLjY3YTIuNSAyLjUgMCAwIDEtMS45MiAxLjZsLTEuNTIuMjZjLTEuMDIuMTgtMS45NS0uNDUtMi40My0xLjIzQTUuODcgNS44NyAwIDAgMCA0LjQ0IDE0YS41LjUgMCAwIDEtLjQzLS42MmMuMTUtLjYuNDMtMS4wNC44Mi0xLjM2LjM5LS4zMi44NS0uNDcgMS4zLS41Mi42My0uMDYgMS4yOS4wNSAxLjg3LjI1VjcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhcERvdWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFwRG91YmxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgM2E1LjUgNS41IDAgMCAwLTUuMDQgNy43Yy0uMy4xNi0uNTcuMzYtLjgyLjYxQTYuNSA2LjUgMCAxIDEgMTUuOSA5LjY3YTMuNyAzLjcgMCAwIDAtLjkzLS41N2wuMDMtLjZBNS41IDUuNSAwIDAgMCA5LjUgM1ptNC40OSA1LjgzTDE0IDguNWE0LjUgNC41IDAgMSAwLTguNjIgMS44MiA0LjIgNC4yIDAgMCAxIDEuMDUtLjEzQTMuNSAzLjUgMCAxIDEgMTMgOC42NmwxIC4xN1pNOS41IDZDOC42NyA2IDggNi42NyA4IDcuNXY0LjI1YTQuNDYgNC40NiAwIDAgMC0xLjg3LS4yNWMtLjQ1LjA1LS45MS4yLTEuMy41MnMtLjY3Ljc3LS44MiAxLjM2YS41LjUgMCAwIDAgLjQzLjYyYzIuNi4yOCAzLjkyIDEuNyA0LjU2IDIuNzIuNDguNzggMS40IDEuNDEgMi40MyAxLjIzbDEuNTItLjI2YTIuNSAyLjUgMCAwIDAgMS45Mi0xLjZsLjk4LTIuNjdhMi41IDIuNSAwIDAgMC0xLjkxLTMuMzNMMTEgOS41OFY3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk05IDcuNWEuNS41IDAgMCAxIDEgMFYxMGMwIC4yNC4xNy40NS40MS41bDMuMzUuNThhMS41IDEuNSAwIDAgMSAxLjE1IDJsLS45OCAyLjY3Yy0uMTkuNS0uNjIuODYtMS4xNS45NWwtMS41Mi4yN2MtLjUuMDktMS4wNy0uMjMtMS40MS0uNzdhNi43NyA2Ljc3IDAgMCAwLTQuNjUtMy4xYy4wOC0uMTMuMTctLjIzLjI2LS4zLjItLjE3LjQ3LS4yNy43OC0uMy42NC0uMDcgMS40Mi4xNCAyLjA0LjQ1QS41LjUgMCAwIDAgOSAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgVGFwU2luZ2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhcFNpbmdsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDguNWEzLjUgMy41IDAgMSAxIDcgLjE2bC45OS4xNy4wMS0uMzNhNC41IDQuNSAwIDEgMC04LjYyIDEuODIgNC4yIDQuMiAwIDAgMSAxLjA1LS4xM0EzLjQ4IDMuNDggMCAwIDEgNiA4LjVaTTkuNSA2QzguNjcgNiA4IDYuNjcgOCA3LjV2NC4yNWE0LjQ2IDQuNDYgMCAwIDAtMS44Ny0uMjVjLS40NS4wNS0uOTEuMi0xLjMuNTJzLS42Ny43Ny0uODIgMS4zNmEuNS41IDAgMCAwIC40My42MmMyLjYuMjggMy45MiAxLjcgNC41NiAyLjcyLjQ4Ljc4IDEuNCAxLjQxIDIuNDMgMS4yM2wxLjUyLS4yNmEyLjUgMi41IDAgMCAwIDEuOTItMS42bC45OC0yLjY3YTIuNSAyLjUgMCAwIDAtMS45MS0zLjMzTDExIDkuNThWNy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhcFNpbmdsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFwU2luZ2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDguNWEzLjUgMy41IDAgMSAxIDcgLjE2bC45OS4xNy4wMS0uMzNhNC41IDQuNSAwIDEgMC04LjYyIDEuODIgNC4yIDQuMiAwIDAgMSAxLjA1LS4xM0EzLjQ4IDMuNDggMCAwIDEgNiA4LjVaTTkuNSA2QzguNjcgNiA4IDYuNjcgOCA3LjV2NC4yNWE0LjQ2IDQuNDYgMCAwIDAtMS44Ny0uMjVjLS40NS4wNS0uOTEuMi0xLjMuNTJzLS42Ny43Ny0uODIgMS4zNmEuNS41IDAgMCAwIC40My42MmMyLjYuMjggMy45MiAxLjcgNC41NiAyLjcyLjQ4Ljc4IDEuNCAxLjQxIDIuNDMgMS4yM2wxLjUyLS4yNmEyLjUgMi41IDAgMCAwIDEuOTItMS42bC45OC0yLjY3YTIuNSAyLjUgMCAwIDAtMS45MS0zLjMzTDExIDkuNThWNy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNOSA3LjVhLjUuNSAwIDAgMSAxIDBWMTBjMCAuMjQuMTcuNDUuNDEuNWwzLjM1LjU4YTEuNSAxLjUgMCAwIDEgMS4xNSAybC0uOTggMi42N2MtLjE5LjUtLjYyLjg2LTEuMTUuOTVsLTEuNTIuMjdjLS41LjA5LTEuMDctLjIzLTEuNDEtLjc3YTYuNzcgNi43NyAwIDAgMC00LjY1LTMuMWMuMDgtLjEzLjE3LS4yMy4yNi0uMy4yLS4xNy40Ny0uMjcuNzgtLjMuNjQtLjA3IDEuNDIuMTQgMi4wNC40NUEuNS41IDAgMCAwIDkgMTIuNXYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhcmdldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXJnZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMTEuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNNSAxMGE1IDUgMCAxIDEgMTAgMCA1IDUgMCAwIDEtMTAgMFptNS0zLjVhMy41IDMuNSAwIDEgMCAwIDcgMy41IDMuNSAwIDAgMCAwLTdaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXJnZXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhcmdldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMTEuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNNSAxMGE1IDUgMCAxIDEgMTAgMCA1IDUgMCAwIDEtMTAgMFptNS00YTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptLTggNGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC03YTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFyZ2V0QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhcmdldEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMTBhNi41IDYuNSAwIDAgMCA1Ljg2IDYuNDdjLjIyLjU1LjUyIDEuMDcuOSAxLjUySDEwYTggOCAwIDEgMSA3Ljk5LTcuNzQgNS41IDUuNSAwIDAgMC0xLjUzLS44OUE2LjUgNi41IDAgMCAwIDMuNSAxMFptNS42MSAzLjM5YTMuNSAzLjUgMCAxIDEgNC4yNy00LjI4IDUuNTIgNS41MiAwIDAgMSAxLjUyLS4xIDUgNSAwIDEgMC01Ljg5IDUuOSA1LjU4IDUuNTggMCAwIDEgLjEtMS41MlptLjc4LTEuOWMuNDItLjYzLjk3LTEuMTggMS42LTEuNmExLjUgMS41IDAgMSAwLTEuNiAxLjZaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhcmdldEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFyZ2V0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41Wm0tNS4xLTFjLjQxLS42NC45Ni0xLjE5IDEuNi0xLjZhMS41IDEuNSAwIDEgMC0xLjYgMS42Wm0tLjg3IDIuMzhhNCA0IDAgMSAxIDQuODUtNC44NSA1LjU2IDUuNTYgMCAwIDEgMS4wMi0uMDIgNSA1IDAgMSAwLTUuODkgNS45IDUuNTggNS41OCAwIDAgMSAuMDItMS4wM1ptLjU2IDMuMUE3IDcgMCAxIDEgMTcgOS42Yy4zNi4xOS43LjQgMSAuNjZMMTggMTBhOCA4IDAgMSAwLTcuNzUgOCA1LjUgNS41IDAgMCAxLS42Ni0xLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgVGFyZ2V0QXJyb3dGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFyZ2V0QXJyb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNiA3LjUyYTggOCAwIDEgMS01LjExLTUuMTNsLTEuMDUgMS4wNWExLjUgMS41IDAgMCAwLS4xNi4xOSA2LjUgNi41IDAgMSAwIDUuMDkgNS4xbC4yLS4xNyAxLjAzLTEuMDRaTTE0LjkgOWE1LjAyIDUuMDIgMCAwIDEtNC45IDYgNSA1IDAgMSAxIDEtOS45djEuNTVBMy41IDMuNSAwIDEgMCAxMy4zNSA5aDEuNTVaTTEwIDExLjVhMS41IDEuNSAwIDAgMCAxLjQ1LTEuODlsMS41OC0xLjU4YS43NC43NCAwIDAgMCAuMDMtLjAzaDIuNDRhLjUuNSAwIDAgMCAuMzUtLjE1bDItMkEuNS41IDAgMCAwIDE3LjUgNUgxNVYyLjVhLjUuNSAwIDAgMC0uODUtLjM1bC0yIDJhLjUuNSAwIDAgMC0uMTUuMzV2Mi40NGEuNzYuNzYgMCAwIDAtLjAzLjAzbC0xLjU4IDEuNThhMS41IDEuNSAwIDEgMC0uNCAyLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFyZ2V0QXJyb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhcmdldEFycm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy45NiA1LjNhLjUuNSAwIDAgMS0uMS41NWwtMiAyYS41LjUgMCAwIDEtLjM2LjE1aC0yLjhsLTEuMzUgMS4zNWExLjUgMS41IDAgMSAxLS43LS43TDEyIDcuMjlWNC41YS41LjUgMCAwIDEgLjE1LS4zNWwyLTJhLjUuNSAwIDAgMSAuODUuMzVWNWgyLjVjLjIgMCAuMzguMTIuNDYuM1pNMTYuMyA2SDE0LjVhLjUuNSAwIDAgMS0uNS0uNVYzLjdsLTEgMVY3aDIuM2wxLTFabTEuMzIgMS41MmE4IDggMCAxIDEtNS4xMi01LjEzbC0uODEuODFBNy4wMiA3LjAyIDAgMCAwIDMgMTBhNyA3IDAgMSAwIDEzLjgtMS42OGwuOC0uOFpNMTQuOSA5YTUuMDIgNS4wMiAwIDAgMS00LjkgNiA1IDUgMCAxIDEgMS05Ljl2MS4wM0E0IDQgMCAxIDAgMTMuODcgOWgxLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFyZ2V0RGlzbWlzc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXJnZXREaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAxMGE2LjUgNi41IDAgMCAwIDUuODYgNi40N2MuMjIuNTUuNTIgMS4wNy45IDEuNTJIMTBhOCA4IDAgMSAxIDcuOTktNy43NCA1LjUgNS41IDAgMCAwLTEuNTMtLjg5QTYuNSA2LjUgMCAwIDAgMy41IDEwWm01LjYxIDMuMzlhMy41IDMuNSAwIDEgMSA0LjI3LTQuMjggNS41MiA1LjUyIDAgMCAxIDEuNTItLjEgNSA1IDAgMSAwLTUuODkgNS45IDUuNTggNS41OCAwIDAgMSAuMS0xLjUyWm0yLjM4LTMuNWMtLjYzLjQyLTEuMTguOTctMS42IDEuNmExLjUgMS41IDAgMSAxIDEuNi0xLjZaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFyZ2V0RGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFyZ2V0RGlzbWlzc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAxMGE3IDcgMCAwIDAgNi42IDYuOTljLjE4LjM2LjQuNy42NSAxTDEwIDE4YTggOCAwIDEgMSA4LTcuNzUgNS41IDUuNSAwIDAgMC0xLjAxLS42NkE3IDcgMCAwIDAgMyAxMFptNi4wMyAzLjg4YTQgNCAwIDEgMSA0Ljg1LTQuODUgNS41NiA1LjU2IDAgMCAxIDEuMDItLjAyIDUgNSAwIDEgMC01Ljg5IDUuOSA1LjU4IDUuNTggMCAwIDEgLjAyLTEuMDNabS44Ni0yLjM4Yy40Mi0uNjQuOTctMS4xOSAxLjYtMS42YTEuNSAxLjUgMCAxIDAtMS42IDEuNlpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdsLTEuMTQgMS4xNSAxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0xLjE1LTEuMTQtMS4xNSAxLjE0YS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1LTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNCAxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXJnZXRFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhcmdldEVkaXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMTEuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNNSAxMGE1IDUgMCAwIDEgMTAtLjA1bC0yLjQyIDIuNGEzLjUgMy41IDAgMSAwLS4yMy4yM2wtMi4wOCAyLjA5Yy0uMS4xLS4yLjIxLS4yOC4zM0E1IDUgMCAwIDEgNSAxMFptNS02LjVjMy4yOCAwIDUuOTkgMi40MyA2LjQzIDUuNTkuNS0uMTMgMS4wMi0uMTIgMS41Mi4wM0E4IDggMCAxIDAgOSAxNy45M2MwLS4wOS4wMi0uMTguMDUtLjI4bC4zLTEuMTlBNi41IDYuNSAwIDAgMSAxMCAzLjVabS45OCAxMS44OCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDhsLjM3LTEuNWMuMS0uMzguMy0uNzMuNTgtMS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhcmdldEVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhcmdldEVkaXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDExLjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTUgMTBhNSA1IDAgMCAxIDEwLS4wNmwtMS4xNSAxLjE1YTQgNCAwIDEgMC0yLjc2IDIuNzZsLS44Mi44MmMtLjEuMS0uMi4yMS0uMjkuMzNBNSA1IDAgMCAxIDUgMTBabTUtN2E3IDcgMCAwIDEgNi45MyA2Yy4zNC0uMDIuNjkuMDIgMS4wMi4xMmE4IDggMCAxIDAtOC45NCA4LjgyYzAtLjEuMDItLjIuMDUtLjI5bC4xNy0uN0E3IDcgMCAwIDEgMTAgM1ptLjk4IDEyLjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wOGwuMzctMS41Yy4xLS4zOC4zLS43My41OC0xLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgVGFza0xpc3RBZGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFza0xpc3RBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS44NSAzLjM1YS41LjUgMCAxIDAtLjctLjdMMy41IDQuMjlsLS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMi0yWm0yLjkuMTVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVptMCA1YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVabTEuMjcgNi41Yy4wNS0uNTIuMTctMS4wMy4zNS0xLjVIOC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMS4yN1pNNS44NSA4Ljg1YS41LjUgMCAxIDAtLjctLjdMMy41IDkuNzlsLS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMi0yWm0wIDQuM2MuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWk0yMCAxNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTV2MS41YS41LjUgMCAwIDAgMSAwVjE2aDEuNWEuNS41IDAgMCAwIDAtMUgxNnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFza0xpc3RBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljg1IDMuMzVhLjUuNSAwIDEgMC0uNy0uN0wzLjUgNC4yOWwtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwyLTJaTTguNSA0YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabTAgNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0xLjUyIDZjLjAzLS4zNC4xLS42OC4xOS0xSDguNWEuNS41IDAgMCAwIDAgMWgxLjUyWk01Ljg1IDguODVhLjUuNSAwIDEgMC0uNy0uN0wzLjUgOS43OWwtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwyLTJabTAgNC4zYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTEtMWEuNS41IDAgMCAxIC43LS43bC42NS42NCAxLjY1LTEuNjRjLjItLjIuNS0uMi43IDBaTTIwIDE1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNXYxLjVhLjUuNSAwIDAgMCAxIDBWMTZoMS41YS41LjUgMCAwIDAgMC0xSDE2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXNrTGlzdEx0ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrTGlzdEx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk01Ljg1IDQuMzVhLjUuNSAwIDEgMC0uNy0uN0wzLjUgNS4yOWwtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwyLTJabTIuOS4xNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wm0wIDVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVpNOCAxNS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTIuMTUtNS40YS41LjUgMCAxIDAtLjctLjdMMy41IDEwLjc5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDItMlptMCA0LjNjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAwIDEgLjctLjdsLjY1LjY0IDEuNjUtMS42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0THRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrTGlzdEx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS44NSA0LjM1YS41LjUgMCAxIDAtLjctLjdMMy41IDUuMjlsLS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMi0yWk04LjUgNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0wIDVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVpNOCAxNS41YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41Wk01Ljg1IDkuODVhLjUuNSAwIDEgMC0uNy0uN0wzLjUgMTAuNzlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMi0yWm0wIDQuM2MuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFza0xpc3RSdGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFza0xpc3RSdGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuODUgNC4zNWEuNS41IDAgMCAwLS43LS43TDE1LjUgNS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwyLTJabS0xNS4xLjE1YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVabTAgNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wk0yIDE1LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0xMy44NS0zLjQgMi0yYS41LjUgMCAwIDAtLjctLjdsLTEuNjUgMS42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwWm0yIDMtMiAyYS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAwIDEgLjctLjdsLjY1LjY0IDEuNjUtMS42NGEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXNrTGlzdFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFza0xpc3RSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3Ljg1IDQuMzVhLjUuNSAwIDAgMC0uNy0uN0wxNS41IDUuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMi0yWk0yLjUgNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05Wm0wIDVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVpNMiAxNS41YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41Wm0xNS44NS01LjY1YS41LjUgMCAwIDAtLjctLjdsLTEuNjUgMS42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDItMlptMCA0LjNjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAwIDEgLjctLjdsLjY1LjY0IDEuNjUtMS42NGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0U3F1YXJlQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0U3F1YXJlQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZBNS41IDUuNSAwIDAgMCA5LjYgMTdINmEzIDMgMCAwIDEtMy0zVjZabTYuMzUuNGEuNS41IDAgMCAwLS43IDBMNy4yMyA3LjhsLS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMkw5LjM0IDcuMWEuNS41IDAgMCAwIDAtLjdabTAgNS43YS41LjUgMCAwIDAtLjctLjdsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVaTTExIDdhLjUuNSAwIDAgMCAwIDFoMi41YS41LjUgMCAwIDAgMC0xSDExWm04IDcuNWE0LjUgNC41IDAgMSAwLTkgMCA0LjUgNC41IDAgMCAwIDkgMFptLTQtMlYxNGgxLjVhLjUuNSAwIDAgMSAwIDFIMTV2MS41YS41LjUgMCAwIDEtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTR2LTEuNWEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0U3F1YXJlQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrTGlzdFNxdWFyZUFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjJjLjM1LjEuNjguMjQgMSAuNFY2YTMgMyAwIDAgMC0zLTNINlptMy4zNSA0LjFhLjUuNSAwIDAgMC0uNy0uN0w3LjIzIDcuOGwtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAyTDkuMzQgNy4xWm0wIDQuM2MuMi4yLjIuNSAwIC43TDcuNiAxMy44NWEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFptMS4xNS0zLjljMC0uMjguMjItLjUuNS0uNWgyLjVhLjUuNSAwIDAgMSAwIDFIMTFhLjUuNSAwIDAgMS0uNS0uNVptOC41IDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXNrTGlzdFNxdWFyZURhdGFiYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0U3F1YXJlRGF0YWJhc2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuMDVhMi40NiAyLjQ2IDAgMCAxLS4wNS0uNXYtNC4wNGwtMS40IDEuNGEuNS41IDAgMCAxLS42OSAwbC0uNzUtLjY4YS41LjUgMCAwIDEgLjY4LS43M2wuNC4zNiAxLjQtMS40MWEuNS41IDAgMCAxIC4zNi0uMTV2LS43NWMwLTEuMjIuODgtMi4xMSAxLjgzLTIuNjRBNy42OCA3LjY4IDAgMCAxIDE0LjUgN2MuODkgMCAxLjc0LjEzIDIuNS4zNlY2YTMgMyAwIDAgMC0zLTNINlptMTEgNS40MkE3LjI1IDcuMjUgMCAwIDAgMTQuNSA4QzEyLjAxIDggMTAgOS4xMiAxMCAxMC41czIuMDIgMi41IDQuNSAyLjVjMi40OSAwIDQuNS0xLjEyIDQuNS0yLjUgMC0uODctLjgtMS42My0yLTIuMDhaTTkuMzUgNi40Yy4yLjIuMi41IDAgLjdMNy42IDguODVhLjUuNSAwIDAgMS0uNjkuMDJsLS43NS0uNjlhLjUuNSAwIDEgMSAuNjgtLjczbC40LjM2IDEuNC0xLjQxYy4yLS4yLjUyLS4yLjcxIDBaTTE0LjUgMTRjMS4zOCAwIDIuNjgtLjMgMy42Ny0uODYuMjktLjE2LjU4LS4zNi44My0uNTl2My45NWMwIDEuMzgtMi4wMSAyLjUtNC41IDIuNVMxMCAxNy44OCAxMCAxNi41di0zLjk1Yy4yNS4yMy41NC40My44My42IDEgLjU0IDIuMjkuODUgMy42Ny44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0U3F1YXJlRGF0YWJhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0U3F1YXJlRGF0YWJhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjA1YTIuNDYgMi40NiAwIDAgMS0uMDUtLjVWMTZINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MS4xM2MuMzUuMDYuNjguMTQgMSAuMjNWNmEzIDMgMCAwIDAtMy0zSDZabTExIDUuNDJBNy44MSA3LjgxIDAgMCAwIDE0LjUgOEMxMi4wMSA4IDEwIDkuMTIgMTAgMTAuNXMyLjAxIDIuNSA0LjUgMi41IDQuNS0xLjEyIDQuNS0yLjVjMC0uODctLjgtMS42My0yLTIuMDhabS04IDIuODNhLjUuNSAwIDAgMC0uMzUuMTVsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMkw5IDEyLjQ1di0xLjJabS4zNS00LjE1YS41LjUgMCAwIDAtLjctLjdMNy4yMyA3LjhsLS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMkw5LjM0IDcuMVpNMTQuNSAxNGMxLjM4IDAgMi42OC0uMyAzLjY3LS44Ni4yOS0uMTYuNTgtLjM2LjgzLS41OXYzLjk1YzAgMS4zOC0yLjAxIDIuNS00LjUgMi41UzEwIDE3Ljg4IDEwIDE2LjV2LTMuOTVjLjI1LjIzLjU0LjQzLjgzLjYgMSAuNTQgMi4yOS44NSAzLjY3Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFza0xpc3RTcXVhcmVMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFza0xpc3RTcXVhcmVMdHJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptNi4zNSAxLjFhLjUuNSAwIDAgMC0uNy0uN0w3LjIzIDcuOGwtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAyTDkuMzQgNy4xWm0wIDQuM2EuNS41IDAgMCAwLS43IDBsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVhLjUuNSAwIDAgMCAwLS43Wk0xMSAxMmEuNS41IDAgMCAwIDAgMWgyLjVhLjUuNSAwIDAgMCAwLTFIMTFabS0uNS00LjVjMCAuMjguMjIuNS41LjVoMi41YS41LjUgMCAwIDAgMC0xSDExYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0U3F1YXJlTHRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrTGlzdFNxdWFyZUx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zNSA3LjFhLjUuNSAwIDAgMC0uNy0uN0w3LjIzIDcuOGwtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAyTDkuMzQgNy4xWm0wIDQuM2MuMi4yLjIuNSAwIC43TDcuNiAxMy44NWEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFpNMTEgMTJhLjUuNSAwIDAgMCAwIDFoMi41YS41LjUgMCAwIDAgMC0xSDExWm0tLjUtNC41YzAtLjI4LjIyLS41LjUtLjVoMi41YS41LjUgMCAwIDEgMCAxSDExYS41LjUgMCAwIDEtLjUtLjVaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXNrTGlzdFNxdWFyZVBlcnNvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrTGlzdFNxdWFyZVBlcnNvbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2My40YTMgMyAwIDAgMC00LjUgMi42SDExYS41LjUgMCAwIDAgMCAxaDEuNjdhMyAzIDAgMCAwIC42IDEuMDFBMi41IDIuNSAwIDAgMCAxMS4wNCAxN0g2YTMgMyAwIDAgMS0zLTNWNlptNi4zNSAxLjFhLjUuNSAwIDAgMC0uNy0uN0w3LjIzIDcuOGwtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAyTDkuMzQgNy4xWm0wIDQuM2EuNS41IDAgMCAwLS43IDBsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVhLjUuNSAwIDAgMCAwLS43Wm0xLjE1LTMuOWMwIC4yOC4yMi41LjUuNWgyLjVhLjUuNSAwIDAgMCAwLTFIMTFhLjUuNSAwIDAgMC0uNS41Wm03IDQuNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFza0xpc3RTcXVhcmVQZXJzb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0U3F1YXJlUGVyc29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjM1IDcuMWEuNS41IDAgMCAwLS43LS43TDcuMjMgNy44bC0uNC0uMzVhLjUuNSAwIDAgMC0uNjcuNzNsLjc1LjY5Yy4yLjE4LjUuMTcuNy0uMDJMOS4zNCA3LjFabTAgNC4zYy4yLjIuMi41IDAgLjdMNy42IDEzLjg1YS41LjUgMCAwIDEtLjY5LjAybC0uNzUtLjY5YS41LjUgMCAwIDEgLjY4LS43M2wuNC4zNiAxLjQtMS40MWMuMi0uMi41Mi0uMi43MSAwWk0xMSAxMmEuNS41IDAgMCAwIDAgMWgxLjY3YTMgMyAwIDAgMS0uMTctMUgxMVptLTUgNGg1LjA1YTIuNTEgMi41MSAwIDAgMC0uMDEgMUg2YTMgMyAwIDAgMS0zLTNWNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjRjLS4zLS4xNy0uNjQtLjMtMS0uMzZWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJabTQuNS04LjVjMC0uMjguMjItLjUuNS0uNWgyLjVhLjUuNSAwIDAgMSAwIDFIMTFhLjUuNSAwIDAgMS0uNS0uNVptNyA0LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0U3F1YXJlUnRsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0U3F1YXJlUnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTExLjM1IDEuMWEuNS41IDAgMSAwLS43LS43bC0xLjQyIDEuNC0uNC0uMzVhLjUuNSAwIDAgMC0uNjcuNzNsLjc1LjY5Yy4yLjE4LjUuMTcuNy0uMDJsMS43NC0xLjc1Wm0wIDQuM2EuNS41IDAgMCAwLS43IDBsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVhLjUuNSAwIDAgMCAwLS43Wk02LjUgMTJhLjUuNSAwIDAgMCAwIDFIOWEuNS41IDAgMCAwIDAtMUg2LjVaTTYgNy41YzAgLjI4LjIyLjUuNS41SDlhLjUuNSAwIDAgMCAwLTFINi41YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tMaXN0U3F1YXJlUnRsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrTGlzdFNxdWFyZVJ0bFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuMzUgNy4xYS41LjUgMCAxIDAtLjctLjdsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVabTAgNC4zYy4yLjIuMi41IDAgLjdsLTEuNzUgMS43NWEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFpNNi41IDEyYS41LjUgMCAwIDAgMCAxSDlhLjUuNSAwIDAgMCAwLTFINi41Wk02IDcuNWMwLS4yOC4yMi0uNS41LS41SDlhLjUuNSAwIDAgMSAwIDFINi41YS41LjUgMCAwIDEtLjUtLjVaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXNrTGlzdFNxdWFyZVNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rhc2tMaXN0U3F1YXJlU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNkE1LjUgNS41IDAgMCAxIDE3IDkuNlY2YTMgMyAwIDAgMC0zLTNINlptMy4zNSAzLjRjLjIuMi4yLjUgMCAuN0w3LjYgOC44NWEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMSAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFptLS43IDVhLjUuNSAwIDAgMSAuNy43TDcuNiAxMy44NWEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFaTTExIDhhLjUuNSAwIDAgMSAwLTFoMi41YS41LjUgMCAwIDEgMCAxSDExWm0tLjM3IDUuOTJhMiAyIDAgMCAwIDEuNDMtMi40OGwtLjE1LS41NmMuMjUtLjIuNTMtLjM2LjgyLS41bC4zNC4zNmEyIDIgMCAwIDAgMi45IDBsLjMzLS4zNGMuMy4xNC41OC4zMS44My41MmwtLjEyLjQyYTIgMiAwIDAgMCAxLjQ1IDIuNTJsLjM1LjA4YTQuNiA0LjYgMCAwIDEgLjAxIDEuMDJsLS40Ni4xMmEyIDIgMCAwIDAtMS40MyAyLjQ3bC4xNi41NmMtLjI2LjItLjUzLjM2LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkxIDBsLS4zMi4zNWMtLjMtLjE0LS41OC0uMzEtLjg0LS41MmwuMTMtLjQyYTIgMiAwIDAgMC0xLjQ2LTIuNTJsLS4zNC0uMDhhNC42MiA0LjYyIDAgMCAxLS4wMS0xLjAybC40NS0uMTJabTQuODcuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFza0xpc3RTcXVhcmVTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFza0xpc3RTcXVhcmVTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOS4zNSA2LjRjLjIuMi4yLjUgMCAuN0w3LjYgOC44NWEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMSAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFptMCA1LjdhLjUuNSAwIDAgMC0uNy0uN2wtMS40MiAxLjQtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAybDEuNzQtMS43NVpNMTEgN2EuNS41IDAgMCAwIDAgMWgyLjVhLjUuNSAwIDAgMCAwLTFIMTFaTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZhNS41IDUuNSAwIDAgMC0xLS40VjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDMuMmMuMS4zNS4yNC42OC40IDFINmEzIDMgMCAwIDEtMy0zVjZabTcuNjMgNy45MmEyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTUtLjU2Yy4yNS0uMi41My0uMzYuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM0Yy4zLjE0LjU4LjMxLjgzLjUybC0uMTIuNDJhMiAyIDAgMCAwIDEuNDUgMi41MmwuMzUuMDhhNC42IDQuNiAwIDAgMSAuMDEgMS4wMmwtLjQ2LjEyYTIgMiAwIDAgMC0xLjQzIDIuNDdsLjE2LjU2Yy0uMjYuMi0uNTMuMzYtLjgyLjVsLS4zNC0uMzZhMiAyIDAgMCAwLTIuOTEgMGwtLjMyLjM1Yy0uMy0uMTQtLjU4LS4zMS0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM0LS4wOGE0LjYyIDQuNjIgMCAwIDEtLjAxLTEuMDJsLjQ1LS4xMlptNC44Ny41OGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYXNrc0FwcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrc0FwcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OS44OGwtMi41IDIuNTItLjkzLS45NWExLjUgMS41IDAgMSAwLTIuMTQgMi4xbC40NC40NUg2YTIgMiAwIDAgMS0yLTJWNFptNSA1LjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaTTkuNSA1YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTkgMTMuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVptLTItM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEtNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS0xIDlhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xMC44Ni4zNWEuNS41IDAgMCAwLS43Mi0uN2wtMy42NCAzLjY4LTEuNjQtMS42OGEuNS41IDAgMSAwLS43Mi43bDEuOTMgMS45N2EuNi42IDAgMCAwIC44NiAwbDMuOTMtMy45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhc2tzQXBwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYXNrc0FwcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjkuODhsLTEgMS4wMVY0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoNC4wOWMuMDcuMi4xOC4zOS4zNC41NWwuNDQuNDVINmEyIDIgMCAwIDEtMi0yVjRabTQgMS41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNOS41IDVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMCA0YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTkgMTMuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLTItM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEwLjg2LjM1YS41LjUgMCAwIDAtLjcyLS43bC0zLjY0IDMuNjgtMS42NC0xLjY4YS41LjUgMCAxIDAtLjcyLjdsMS45MyAxLjk3YS42LjYgMCAwIDAgLjg2IDBsMy45My0zLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgVGVhY2hpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGVhY2hpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSAyYTIgMiAwIDAgMC0yIDJ2MWgtLjVhLjUuNSAwIDAgMCAwIDFIM3YzaC0uNWEuNS41IDAgMCAwIDAgMUgzdjNoLS41YS41LjUgMCAwIDAgMCAxSDN2MWMwIDEuMS45IDIgMiAyaDMuMDRhOS43MyA5LjczIDAgMCAxLS40Ni0xSDVhMSAxIDAgMCAxLTEtMXYtMWguNWEuNS41IDAgMCAwIDAtMUg0di0zaC41YS41LjUgMCAwIDAgMC0xSDRWNmguNWEuNS41IDAgMCAwIDAtMUg0VjRhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2MS43M2MuMTguMTIuMzQuMjUuNS4zOS4xNi0uMTYuMzItLjMuNS0uNDRWNGEyIDIgMCAwIDAtMi0ySDVabTEwLjk1IDQuMjhhLjUuNSAwIDAgMC0uNjctLjIzYy0uNzUuMzgtMS4zNS45Ni0xLjc1IDEuNjZBMy40NSAzLjQ1IDAgMCAwIDEwLjU1IDZoLS4zNGEuNy43IDAgMCAwLS43MS43di4zNWMwIDEgLjQyIDEuODkgMS4xIDIuNTItMS4yOC4yOC0yLjYgMS40NS0yLjYgMy41IDAgMi40NiAxLjQ1IDQuNDQgMi4xOSA1LjMuMzcuNDMuOTEuNjMgMS40NC42M2guMDVjLjU3IDAgMS4xLS4yNCAxLjUtLjY3bC4wOC0uMWEuNzIuNzIgMCAwIDEgLjEtLjA5Yy4wOC0uMDYuMi0uMDYuMjggMGwuMS4xLjA5LjFjLjM4LjQyLjkyLjY2IDEuNS42NmguMDRjLjUzIDAgMS4wNy0uMiAxLjQ0LS42NC43NC0uODUgMi4xOS0yLjgzIDIuMTktNS4yOCAwLTIuMzktMS43OC0zLjU4LTMuMi0zLjU4YTQuMDMgNC4wMyAwIDAgMC0xLjguNHYtLjE2YzAtMS4xOC42Ny0yLjI2IDEuNzItMi44YS41LjUgMCAwIDAgLjIzLS42NlptLTUuNDUuNzdWN2guMDVDMTEuOSA3IDEzIDguMSAxMyA5LjQ1YzAgLjAzLS4wMi4wNS0uMDUuMDVhMi40NSAyLjQ1IDAgMCAxLTIuNDUtMi40NVptMS4yIDQuNzNhLjUuNSAwIDAgMS0uMjMuNjdjLS40LjItLjYyLjYzLS41NCAxLjA3bC4wNi40YS41LjUgMCAxIDEtLjk4LjE2bC0uMDctLjRjLS4xNC0uODcuMy0xLjczIDEuMDktMi4xM2EuNS41IDAgMCAxIC42Ny4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRlYWNoaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZWFjaGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAyYTIgMiAwIDAgMC0yIDJ2MWgtLjVhLjUuNSAwIDAgMCAwIDFIM3YzaC0uNWEuNS41IDAgMCAwIDAgMUgzdjNoLS41YS41LjUgMCAwIDAgMCAxSDN2MWMwIDEuMS45IDIgMiAyaDMuMDRhOS43MyA5LjczIDAgMCAxLS40Ni0xSDVhMSAxIDAgMCAxLTEtMXYtMWguNWEuNS41IDAgMCAwIDAtMUg0di0zaC41YS41LjUgMCAwIDAgMC0xSDRWNmguNWEuNS41IDAgMCAwIDAtMUg0VjRhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDAgMSAxIDF2MS43M2MuMTguMTIuMzQuMjUuNS4zOS4xNi0uMTYuMzItLjMuNS0uNDRWNGEyIDIgMCAwIDAtMi0ySDVabTYuNyA5Ljc4YS41LjUgMCAwIDAtLjY3LS4yM2MtLjguNC0xLjIzIDEuMjYtMS4wOSAyLjEzbC4wNy40YS41LjUgMCAxIDAgLjk4LS4xNmwtLjA2LS40Yy0uMDgtLjQ0LjE1LS44Ny41NC0xLjA3YS41LjUgMCAwIDAgLjIzLS42N1ptMy41OC01LjczYS41LjUgMCAxIDEgLjQ0LjlBMy4xMiAzLjEyIDAgMCAwIDE0IDkuNzR2LjE2bC4yNS0uMWMuMzYtLjE1Ljg5LS4zIDEuNTYtLjMgMS40IDAgMy4xOSAxLjIgMy4xOSAzLjU4IDAgMi40NS0xLjQ1IDQuNDMtMi4xOSA1LjI4YTEuOSAxLjkgMCAwIDEtMS40NC42NGgtLjA1Yy0uNTcgMC0xLjEtLjI0LTEuNS0uNjdsLS4wOC0uMWEuNzIuNzIgMCAwIDAtLjEtLjA5LjI0LjI0IDAgMCAwLS4yOCAwIC43Mi43MiAwIDAgMC0uMS4xbC0uMDkuMWMtLjM4LjQyLS45Mi42Ni0xLjUuNjZoLS4wNGExLjkgMS45IDAgMCAxLTEuNDQtLjY0QzkuNDUgMTcuNTEgOCAxNS41MyA4IDEzLjA4YzAtMi4wNiAxLjMyLTMuMjMgMi42LTMuNTFhMy40NCAzLjQ0IDAgMCAxLTEuMS0yLjUydi0uMzRjMC0uNC4zMi0uNzEuNy0uNzFoLjM1YzEuMjcgMCAyLjM4LjY5IDIuOTggMS43MS40LS43IDEtMS4yOCAxLjc1LTEuNjZaTTEwLjUgN3YuMDVjMCAxLjM1IDEuMSAyLjQ1IDIuNDUgMi40NS4wMyAwIC4wNS0uMDIuMDUtLjA1QzEzIDguMSAxMS45IDcgMTAuNTUgN2gtLjA1Wm0uNyAzLjVjLS45IDAtMi4yLjc4LTIuMiAyLjU4IDAgMi4wOCAxLjI1IDMuODMgMS45NSA0LjYzLjE1LjE4LjQuMjkuNjguMjloLjA1Yy4yOCAwIC41Ni0uMTIuNzUtLjMzbC4wOS0uMWMuMDctLjA5LjE1LS4xNi4yNC0uMjJhMS4yNCAxLjI0IDAgMCAxIDEuNDggMGMuMDkuMDYuMTcuMTMuMjQuMjJsLjEuMWMuMTguMi40Ni4zMy43NC4zM2guMDVhLjkuOSAwIDAgMCAuNjgtLjI5Yy43LS44IDEuOTUtMi41NSAxLjk1LTQuNjMgMC0xLjgtMS4zLTIuNTgtMi4yLTIuNTgtLjUxIDAtLjkuMTEtMS4xNi4yMi0uMzEuMTMtLjcuMjgtMS4xNC4yOC0uNDMgMC0uODMtLjE1LTEuMTQtLjI4LS4yNS0uMS0uNjUtLjIyLTEuMTctLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgVGVhcmRyb3BCb3R0b21SaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZWFyZHJvcEJvdHRvbVJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDB2NmEyIDIgMCAwIDEtMiAyaC02YTggOCAwIDAgMS04LThaXCJdKTtcbmV4cG9ydCBjb25zdCBUZWFyZHJvcEJvdHRvbVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZWFyZHJvcEJvdHRvbVJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwdjZhMiAyIDAgMCAxLTIgMmgtNmE4IDggMCAwIDEtOC04Wm04LTdhNyA3IDAgMCAwIDAgMTRoNmExIDEgMCAwIDAgMS0xdi02YTcgNyAwIDAgMC03LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZWRkeUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZWRkeUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM2EzLjUgMy41IDAgMCAwLTIuODUgNS41MyA3LjkyIDcuOTIgMCAwIDEgNS41LTQuMzJBMy41IDMuNSAwIDAgMCA1LjUgM1pNMTggNi41YzAgLjc2LS4yNCAxLjQ2LS42NSAyLjAzYTcuOTIgNy45MiAwIDAgMC01LjUtNC4zMkEzLjUgMy41IDAgMCAxIDE4IDYuNVptLTE1IDVDMyA3Ljg3IDYuMTcgNSAxMCA1czcgMi44NyA3IDYuNWE2LjIgNi4yIDAgMCAxLTEuNzYgNC4zMSA1LjUgNS41IDAgMCAwLTEwLjQ4IDBBNi4yIDYuMiAwIDAgMSAzIDExLjVabTguMzMgMS43YTQuNSA0LjUgMCAwIDEgMy4wNyAzLjM1QTcuMzMgNy4zMyAwIDAgMSAxMCAxOGMtMS42NiAwLTMuMi0uNTQtNC40LTEuNDVhNC41IDQuNSAwIDAgMSAzLjA3LTMuMzUgMS41IDEuNSAwIDAgMCAyLjY2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZWRkeVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGVkZHlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNi41YTMuNSAzLjUgMCAwIDAgMS40IDIuOGMtLjI2LjY5LS40IDEuNDMtLjQgMi4yIDAgMy42MyAzLjE3IDYuNSA3IDYuNXM3LTIuODcgNy02LjVjMC0uNzctLjE0LTEuNTEtLjQtMi4yYTMuNSAzLjUgMCAxIDAtNS4zMS00LjE5IDcuNTQgNy41NCAwIDAgMC0yLjU4IDBBMy41IDMuNSAwIDAgMCAyIDYuNVpNNS41IDRjLjk3IDAgMS44LjU1IDIuMjIgMS4zNWE2LjkyIDYuOTIgMCAwIDAtMy44NyAzLjAzQTIuNSAyLjUgMCAwIDEgNS41IDRabTYuNzggMS4zNWEyLjUgMi41IDAgMSAxIDMuODcgMy4wMyA2LjkyIDYuOTIgMCAwIDAtMy44Ny0zLjAzWk0xMCA2YzMuMzUgMCA2IDIuNSA2IDUuNWE1LjIgNS4yIDAgMCAxLTEuMiAzLjMgNS41IDUuNSAwIDAgMC05LjYgMEE1LjIgNS4yIDAgMCAxIDQgMTEuNUM0IDguNSA2LjY1IDYgMTAgNlptNC4wNiA5LjU1QTYuMjcgNi4yNyAwIDAgMSAxMCAxN2MtMS41NyAwLTMtLjU1LTQuMDYtMS40NWE0LjUxIDQuNTEgMCAwIDEgMi43My0yLjM1IDEuNSAxLjUgMCAwIDAgMi42NiAwYzEuMi4zNyAyLjE5IDEuMjMgMi43MyAyLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgVGVtcGVyYXR1cmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGVtcGVyYXR1cmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNzUgNy4yNWEuNzUuNzUgMCAwIDAtMS41IDB2NC45YTIgMiAwIDEgMCAxLjUgMHYtNC45Wk02LjUgNS41YTMuNSAzLjUgMCAwIDEgNyAwdjUuNjdBNC40OCA0LjQ4IDAgMCAxIDEwIDE4LjVhNC41IDQuNSAwIDAgMS0zLjUtNy4zM1Y1LjVabTEuNSAwdjYuMjRsLS4yLjIyYTMgMyAwIDEgMCA0LjQgMGwtLjItLjIyVjUuNWEyIDIgMCAwIDAtNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGVtcGVyYXR1cmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RlbXBlcmF0dXJlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA2LjVjLjI4IDAgLjUuMjIuNS41djUuMDZhMiAyIDAgMSAxLTEgMFY3YzAtLjI4LjIyLS41LjUtLjVaTTEwIDJhMyAzIDAgMCAwLTMgM3Y2LjM1QTMuOTkgMy45OSAwIDAgMCAxMCAxOGE0IDQgMCAwIDAgMy02LjY1VjVhMyAzIDAgMCAwLTMtM1ptMCAxYTIgMiAwIDAgMSAyIDJ2Ni43NWwuMTQuMTVhMyAzIDAgMSAxLTQuMjkgMGwuMTUtLjE1VjVjMC0xLjEuOS0yIDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRlbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGVudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC40IDIuODJhLjUuNSAwIDAgMC0uNzcgMCAyMC44OSAyMC44OSAwIDAgMS00LjkxIDMuOS41LjUgMCAwIDAtLjI1LjM2TDMuMzcgMTVIMi41YS41LjUgMCAwIDAgMCAxaDMuOTRhLjUuNSAwIDAgMCAuMS4wMWg2LjlhLjUuNSAwIDAgMCAuMS0uMDFoMy45NmEuNS41IDAgMCAwIDAtMWgtLjg0bC0xLjEtNy45MmEuNS41IDAgMCAwLS4yNC0uMzYgMjAuODkgMjAuODkgMCAwIDEtNC45Mi0zLjlaTTcuNTEgMTVjLjg0LTEuMjIgMS43LTIuNzkgMi40OS01LjI2LjcgMi4yMyAxLjUgMy43OCAyLjQ5IDUuMjZINy41WlwiXSk7XG5leHBvcnQgY29uc3QgVGVudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGVudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNCAyLjgyYS41LjUgMCAwIDAtLjc3IDAgMjAuODkgMjAuODkgMCAwIDEtNC45MSAzLjkuNS41IDAgMCAwLS4yNS4zNkwzLjM3IDE1SDIuNWEuNS41IDAgMCAwIDAgMWgzLjk0YS41LjUgMCAwIDAgLjEuMDFoNi45YS41LjUgMCAwIDAgLjEtLjAxaDMuOTZhLjUuNSAwIDAgMCAwLTFoLS44NGwtMS4xLTcuOTJhLjUuNSAwIDAgMC0uMjQtLjM2IDIwLjg5IDIwLjg5IDAgMCAxLTQuOTItMy45Wk0xMy43IDE1YTE5LjkyIDE5LjkyIDAgMCAxLTMuMjItNy4yLjUuNSAwIDAgMC0uOTcgMGMtLjk4IDMuODQtMi4xNCA1Ljc1LTMuMjIgNy4ySDQuNGwxLjAzLTcuNTRjMS4zLS43NiAzLjMtMi4yIDQuNi0zLjU3YTIzLjE1IDIzLjE1IDAgMCAwIDQuNiAzLjU3TDE1LjY0IDE1aC0xLjk2Wm0tMS4yMiAwSDcuNTJjLjg0LTEuMjIgMS43LTIuNzggMi40OC01LjI1LjcgMi4yMyAxLjQ5IDMuNzcgMi40OCA1LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV0cmlzQXBwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RldHJpc0FwcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NUgxMXY0SDdWMi43NVpNMi43NSA3YS43NS43NSAwIDAgMC0uNzUuNzV2Mi41YzAgLjQxLjM0Ljc1Ljc1Ljc1SDZWN0gyLjc1Wk0xMSA3SDd2NGgzLjI1Yy40MSAwIC43NS0uMzQuNzUtLjc1VjdabTQuMjUtNUgxMnY0aDMuMjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNCAxNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1SDh2NEg0Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1di0yLjVaTTEzIDE4di00SDl2NGg0Wm01LTR2My4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDE0di00aDRabS0zLjI1LTVhLjc1Ljc1IDAgMCAwLS43NS43NVYxM2g0VjkuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRldHJpc0FwcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV0cmlzQXBwUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjI1IDJDNi41NiAyIDYgMi41NiA2IDMuMjV2Mi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTIuNUMyLjU2IDYgMiA2LjU2IDIgNy4yNXYyLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoNi41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMi41YzAtLjE0LjExLS4yNS4yNS0uMjVoMi41QzE0LjQ0IDcgMTUgNi40NCAxNSA1Ljc1di0yLjVDMTUgMi41NiAxNC40NCAyIDEzLjc1IDJoLTYuNVptNi41IDRIMTFWM2gyLjc1Yy4xNCAwIC4yNS4xMS4yNS4yNXYyLjVjMCAuMTQtLjExLjI1LS4yNS4yNVptLTMuNzIgMWMtLjAyLjA4LS4wMy4xNi0uMDMuMjV2Mi41YzAgLjE0LS4xMS4yNS0uMjUuMjVIN1Y3aDMuMDNaTTYgN3YzSDMuMjVBLjI1LjI1IDAgMCAxIDMgOS43NXYtMi41YzAtLjE0LjExLS4yNS4yNS0uMjVINlptLjk3LTFDNyA1LjkyIDcgNS44NCA3IDUuNzV2LTIuNWMwLS4xNC4xMS0uMjUuMjUtLjI1SDEwdjNINi45N1ptNy4yOCAzYy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYyLjVjMCAuMTQtLjExLjI1LS4yNS4yNWgtNi41QzUuNTYgMTMgNSAxMy41NiA1IDE0LjI1djIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMC41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNi41QzE4IDkuNTYgMTcuNDQgOSAxNi43NSA5aC0yLjVabS0uMjggNGMuMDItLjA4LjAzLS4xNi4wMy0uMjV2LTIuNWMwLS4xNC4xMS0uMjUuMjUtLjI1aDIuNWMuMTQgMCAuMjUuMTEuMjUuMjVWMTNoLTMuMDNabS4wMyAxaDN2Mi43NWMwIC4xNC0uMTEuMjUtLjI1LjI1SDE0di0zWm0tMSAwdjNoLTN2LTNoM1ptLTQgMHYzSDYuMjVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTIuNWMwLS4xNC4xMS0uMjUuMjUtLjI1SDlaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBZGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTBjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuNWEuNzUuNzUgMCAwIDEtMS41IDBWNC41SDkuNXY3LjdhNS40OCA1LjQ4IDAgMCAwIC4xIDQuOEg2Ljc1YS43NS43NSAwIDAgMSAwLTEuNUg4di0xMUg0LjV2Ljc1YS43NS43NSAwIDAgMS0xLjUgMHYtMS41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAzLjVjMC0uMjguMjItLjUuNS0uNWgxMGMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLTEgMFY0SDl2MTJoLjJjLjEuMzUuMjQuNjguNCAxSDYuNWEuNS41IDAgMCAxIDAtMUg4VjRINHYxLjVhLjUuNSAwIDAgMS0xIDB2LTJabTE2IDExYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFkZFNwYWNlQWZ0ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFkZFNwYWNlQWZ0ZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTIuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMy43NUEuNzUuNzUgMCAwIDEgMyA1Ljc1Wm0wIDRjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1QS43NS43NSAwIDAgMSAzIDkuNzVabTkuMDMgNi4wM2MuMy0uMy4zLS43NyAwLTEuMDZsLTEuNS0xLjVhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS41IDEuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bC45Ny0uOTcuOTcuOTdjLjMuMy43Ny4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBZGRTcGFjZUFmdGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWRkU3BhY2VBZnRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptMCA0YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVabTUuMTUgNS4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTQuMjFsMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuNS0xLjVhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFkZFNwYWNlQmVmb3JlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBZGRTcGFjZUJlZm9yZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4wMyA1Ljc4YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLS45Ny45Ny0uOTctLjk3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMS41IDEuNWMuMy4zLjc3LjMgMS4wNiAwbDEuNS0xLjVaTTMgMTAuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0wIDRjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFkZFNwYWNlQmVmb3JlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWRkU3BhY2VCZWZvcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguMTUgNS44NWEuNS41IDAgMSAxIC43LS43TDEwIDYuMjlsMS4xNS0xLjE0YS41LjUgMCAwIDEgLjcuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVaTTMgMTAuNWMwLS4yOC4yMi0uNS41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxLS41LS41Wm0wIDRjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBZGRURmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBZGRURmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEwYy40MSAwIC43NS4zNC43NS43NXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNUg5LjV2Ny43YTUuNDggNS40OCAwIDAgMCAuMSA0LjhINi43NWEuNzUuNzUgMCAwIDEgMC0xLjVIOHYtMTFINC41di43NWEuNzUuNzUgMCAwIDEtMS41IDB2LTEuNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBZGRUUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWRkVFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAzLjVjMC0uMjguMjItLjUuNS0uNWgxMGMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLTEgMFY0SDl2MTJoLjJjLjEuMzUuMjQuNjguNCAxSDYuNWEuNS41IDAgMCAxIDAtMUg4VjRINHYxLjVhLjUuNSAwIDAgMS0xIDB2LTJabTE2IDExYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduQ2VudGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkNlbnRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk00IDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41YS43NS43NSAwIDAgMSAwIDEuNUg0Ljc1QS43NS43NSAwIDAgMSA0IDQuMjVabS0yIDVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDkuMjVabTQuNzUgNC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduQ2VudGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25DZW50ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNC41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabS0yIDVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpNNi41IDE0YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25DZW50ZXJSb3RhdGUyNzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduQ2VudGVyUm90YXRlMjcwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuMjUgMTZhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC43NWEuNzUuNzUgMCAwIDEgMS41IDB2MTAuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm01IDJhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMi43NWEuNzUuNzUgMCAwIDEgMS41IDB2MTQuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm00LjI1LTQuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkNlbnRlclJvdGF0ZTI3MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduQ2VudGVyUm90YXRlMjcwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMTZhLjUuNSAwIDAgMS0uNS0uNXYtMTFhLjUuNSAwIDAgMSAxIDB2MTFhLjUuNSAwIDAgMS0uNS41Wm01IDJhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41Wm00LjUtNC41YS41LjUgMCAwIDAgMSAwdi03YS41LjUgMCAwIDAtMSAwdjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25DZW50ZXJSb3RhdGU5MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25DZW50ZXJSb3RhdGU5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43NSA0Yy40MSAwIC43NS4zNC43NS43NXYxMC41YS43NS43NSAwIDAgMS0xLjUgMFY0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabS01LTJjLjQxIDAgLjc1LjM0Ljc1Ljc1djE0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNi41IDYuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkNlbnRlclJvdGF0ZTkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25DZW50ZXJSb3RhdGU5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNSA0Yy4yOCAwIC41LjIyLjUuNXYxMWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVptLTUtMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTYgNi41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25EaXN0cmlidXRlZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25EaXN0cmlidXRlZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00Ljc4IDYuMjhjLjMtLjMuMy0uNzcgMC0xLjA2TDQuNTYgNWgxMi42OWEuNzUuNzUgMCAwIDAgMC0xLjVINC41NmwuMjItLjIyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTEuNSAxLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDEuNSAxLjVjLjMuMy43Ny4zIDEuMDYgMFpNMTggOS4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDE0LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wk0yLjc1IDEzLjVoMTIuNjlsLS4yMi0uMjJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwxLjUgMS41Yy4zLjMuMy43NyAwIDEuMDZsLTEuNSAxLjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuMjItLjIySDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduRGlzdHJpYnV0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkRpc3RyaWJ1dGVkUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjM1IDUuNjUgMy43MSA1SDE3LjVhLjUuNSAwIDAgMCAwLTFIMy43bC42NS0uNjVhLjUuNSAwIDEgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMSAwIC43LS43Wk0yIDkuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVoMTMuOGwtLjY1LS42NWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVjLjIuMi4yLjUgMCAuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43LS43bC42NC0uNjVIMi41YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduRGlzdHJpYnV0ZWRFdmVubHlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduRGlzdHJpYnV0ZWRFdmVubHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiAzLjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDMuNVptMCA1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA4LjVabTIuNTYgNi43NWgxMC44OGwtLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi0yYy4zLS4zLjMtLjc3IDAtMS4wNmwtMi0yYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsLjcyLjcySDQuNTZsLjcyLS43MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0yIDJjLS4zLjMtLjMuNzcgMCAxLjA2bDIgMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2bC0uNzItLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduRGlzdHJpYnV0ZWRFdmVubHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkRpc3RyaWJ1dGVkRXZlbmx5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDMuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0wIDVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpNMy43IDE1aDEyLjZsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN0wxNi4yOSAxNEgzLjcxbDEuMTQtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMCAwIC43LS43TDMuNzEgMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25EaXN0cmlidXRlZFZlcnRpY2FsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkRpc3RyaWJ1dGVkVmVydGljYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4wMyAxNC43MmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIgMmMuMy4zLjc3LjMgMS4wNiAwbDItMmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0uNzIuNzJWMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTIuNjlsLS43Mi0uNzJaTTEwIDE4YS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE0LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptOC4wMy0xMi43MmMtLjMuMy0uNzcuMy0xLjA2IDBsLS43Mi0uNzJ2MTIuNjlhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNTZsLS43Mi43MmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDItMmMuMy0uMy43Ny0uMyAxLjA2IDBsMiAyYy4zLjMuMy43NyAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25EaXN0cmlidXRlZFZlcnRpY2FsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25EaXN0cmlidXRlZFZlcnRpY2FsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy44NSA0Ljg1YS41LjUgMCAwIDEtLjcgMEwxNiAzLjcxVjE3LjVhLjUuNSAwIDEgMS0xIDBWMy43bC0xLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy0uN2wyLTJjLjItLjIuNS0uMi43IDBsMiAyYy4yLjIuMi41IDAgLjdabS0xNSAxMC4zYS41LjUgMCAxIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDItMmEuNS41IDAgMSAwLS43LS43TDUgMTYuMjlWMi41YS41LjUgMCAwIDAtMSAwdjEzLjhsLTEuMTUtMS4xNVpNMTAgMThhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduSnVzdGlmeUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25KdXN0aWZ5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNC4yNVptMCA1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA5LjI1Wm0uNzUgNC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkp1c3RpZnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkp1c3RpZnlSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduSnVzdGlmeUxvd0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25KdXN0aWZ5TG93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNC41YzAtLjQxLjM0LS43NS43NS0uNzVoNy41YS43NS43NSAwIDAgMSAwIDEuNWgtNy41QS43NS43NSAwIDAgMSA5IDQuNVptMCA1YzAtLjQxLjM0LS43NS43NS0uNzVoNy41YS43NS43NSAwIDAgMSAwIDEuNWgtNy41QS43NS43NSAwIDAgMSA5IDkuNVptLTYuMjUgNC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkp1c3RpZnlMb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkp1c3RpZnlMb3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkgNC41YzAtLjI4LjIyLS41LjUtLjVoOGEuNS41IDAgMCAxIDAgMWgtOGEuNS41IDAgMCAxLS41LS41Wm0wIDVjMC0uMjguMjItLjUuNS0uNWg4YS41LjUgMCAwIDEgMCAxaC04YS41LjUgMCAwIDEtLjUtLjVaTTIuNSAxNGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25KdXN0aWZ5TG93OTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduSnVzdGlmeUxvdzkwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjUgOWMuNDEgMCAuNzUuMzQuNzUuNzV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YzAtLjQxLjM0LS43NS43NS0uNzVabS01IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1djcuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTcuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk02LjI1IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25KdXN0aWZ5TG93OTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkp1c3RpZnlMb3c5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNSA5Yy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtMSAwdi04YzAtLjI4LjIyLS41LjUtLjVabS01IDBjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0xIDB2LThjMC0uMjguMjItLjUuNS0uNVpNNiAyLjVhLjUuNSAwIDAgMC0xIDB2MTVhLjUuNSAwIDAgMCAxIDB2LTE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduSnVzdGlmeUxvd1JvdGF0ZTI3MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25KdXN0aWZ5TG93Um90YXRlMjcwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxMWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDAgMSAxLjUgMHY3LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNSAwYS43NS43NSAwIDAgMS0uNzUtLjc1di03LjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjcuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm00LjI1IDYuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25KdXN0aWZ5TG93Um90YXRlMjcwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25KdXN0aWZ5TG93Um90YXRlMjcwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMTFhLjUuNSAwIDAgMS0uNS0uNXYtOGEuNS41IDAgMCAxIDEgMHY4YS41LjUgMCAwIDEtLjUuNVptNSAwYS41LjUgMCAwIDEtLjUtLjV2LThhLjUuNSAwIDAgMSAxIDB2OGEuNS41IDAgMCAxLS41LjVabTQuNSA2LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduSnVzdGlmeUxvd1JvdGF0ZTkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkp1c3RpZnlMb3dSb3RhdGU5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS41IDljLjQxIDAgLjc1LjM0Ljc1Ljc1djcuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTcuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0tNSAwYy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNi4yNSAyLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxNC41YS43NS43NSAwIDAgMCAxLjUgMFYyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduSnVzdGlmeUxvd1JvdGF0ZTkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25KdXN0aWZ5TG93Um90YXRlOTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjUgOWMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLTEgMHYtOGMwLS4yOC4yMi0uNS41LS41Wm0tNSAwYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtMSAwdi04YzAtLjI4LjIyLS41LjUtLjVaTTYgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkp1c3RpZnlSb3RhdGUyNzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduSnVzdGlmeVJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjI1IDE4YS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE0LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNSAwYS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE0LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNC4yNS0uNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25KdXN0aWZ5Um90YXRlMjcwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25KdXN0aWZ5Um90YXRlMjcwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMThhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41Wm01IDBhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41Wm00LjUtLjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduSnVzdGlmeVJvdGF0ZTkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkp1c3RpZnlSb3RhdGU5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43NSAyYy40MSAwIC43NS4zNC43NS43NXYxNC41YS43NS43NSAwIDAgMS0xLjUgMFYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVabS01IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1djE0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTQuMjUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25KdXN0aWZ5Um90YXRlOTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkp1c3RpZnlSb3RhdGU5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUuNSAyYy4yOCAwIC41LjIyLjUuNXYxNWEuNS41IDAgMCAxLTEgMHYtMTVjMC0uMjguMjItLjUuNS0uNVptLTUgMGMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTYgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDQuMjVabTAgNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgOS4yNVptLjc1IDQuMjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkxlZnRSb3RhdGUyNzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduTGVmdFJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjI1IDE4YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEwLjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNSAwYS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE0LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNC4yNS0uNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi04LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkxlZnRSb3RhdGUyNzBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkxlZnRSb3RhdGUyNzBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAxOGEuNS41IDAgMCAxLS41LS41di0xMWEuNS41IDAgMCAxIDEgMHYxMWEuNS41IDAgMCAxLS41LjVabTUgMGEuNS41IDAgMCAxLS41LS41di0xNWEuNS41IDAgMCAxIDEgMHYxNWEuNS41IDAgMCAxLS41LjVabTQuNS0uNWEuNS41IDAgMCAwIDEgMHYtOWEuNS41IDAgMCAwLTEgMHY5WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFsaWduTGVmdFJvdGF0ZTkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnbkxlZnRSb3RhdGU5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43NSAyYy40MSAwIC43NS4zNC43NS43NXYxMC41YS43NS43NSAwIDAgMS0xLjUgMFYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVabS01IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1djE0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTQuMjUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjguNWEuNzUuNzUgMCAwIDAgMS41IDB2LTguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnbkxlZnRSb3RhdGU5MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduTGVmdFJvdGF0ZTkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDJjLjI4IDAgLjUuMjIuNS41djExYS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wm0tNSAwYy4yOCAwIC41LjIyLjUuNXYxNWEuNS41IDAgMCAxLTEgMHYtMTVjMC0uMjguMjItLjUuNS0uNVpNNiAyLjVhLjUuNSAwIDAgMC0xIDB2OWEuNS41IDAgMCAwIDEgMHYtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnblJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnblJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEwLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDYuNzVBLjc1Ljc1IDAgMCAxIDYgNC4yNVptLTQgNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgOS4yNVptNy43NSA0LjI1YS43NS43NSAwIDAgMCAwIDEuNWg3LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25SaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabS00IDVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpNOS41IDE0YS41LjUgMCAwIDAgMCAxaDhhLjUuNSAwIDAgMCAwLTFoLThaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25SaWdodFJvdGF0ZTI3MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QWxpZ25SaWdodFJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjI1IDE0YS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEwLjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNSA0YS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE0LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNC4yNS03Ljc1YS43NS43NSAwIDAgMCAxLjUgMHYtNy41YS43NS43NSAwIDAgMC0xLjUgMHY3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QWxpZ25SaWdodFJvdGF0ZTI3MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduUmlnaHRSb3RhdGUyNzBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAxNGEuNS41IDAgMCAxLS41LS41di0xMWEuNS41IDAgMCAxIDEgMHYxMWEuNS41IDAgMCAxLS41LjVabTUgNGEuNS41IDAgMCAxLS41LS41di0xNWEuNS41IDAgMCAxIDEgMHYxNWEuNS41IDAgMCAxLS41LjVabTQuNS03LjVhLjUuNSAwIDAgMCAxIDB2LThhLjUuNSAwIDAgMC0xIDB2OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnblJpZ2h0Um90YXRlOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFsaWduUmlnaHRSb3RhdGU5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNS43NSA2Yy40MSAwIC43NS4zNC43NS43NXYxMC41YS43NS43NSAwIDAgMS0xLjUgMFY2Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabS01LTRjLjQxIDAgLjc1LjM0Ljc1Ljc1djE0LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNi41IDkuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjcuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRBbGlnblJpZ2h0Um90YXRlOTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBbGlnblJpZ2h0Um90YXRlOTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjUgNmMuMjggMCAuNS4yMi41LjV2MTFhLjUuNSAwIDAgMS0xIDB2LTExYzAtLjI4LjIyLS41LjUtLjVabS01LTRjLjI4IDAgLjUuMjIuNS41djE1YS41LjUgMCAwIDEtMSAwdi0xNWMwLS4yOC4yMi0uNS41LS41Wk02IDkuNWEuNS41IDAgMCAwLTEgMHY4YS41LjUgMCAwIDAgMSAwdi04WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEFycm93RG93blJpZ2h0Q29sdW1uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBcnJvd0Rvd25SaWdodENvbHVtbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDYuNWMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVptMC0zYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wk0xMSA3YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjJoLTZWN1ptNiAzaC02djNoNnYtM1ptMCA0aC02djJjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTJaTTQgOS41YS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA1LjUgMTRoMS44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMNy4yOSAxM0g1LjVBMS41IDEuNSAwIDAgMSA0IDExLjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QXJyb3dEb3duUmlnaHRDb2x1bW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBcnJvd0Rvd25SaWdodENvbHVtblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2LjVjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIDAtMWgtNWEuNS41IDAgMCAwLS41LjVabTAtM2MwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAtLjUuNVpNMTMgNWEyIDIgMCAwIDAtMiAydjljMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yWm0zIDRoLTRWN2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyWm0tNCAxaDR2M2gtNHYtM1ptMCA0aDR2MmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTF2LTJaTTQgOS41YS41LjUgMCAwIDAtMSAwdjJBMi41IDIuNSAwIDAgMCA1LjUgMTRoMS44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMNy4yOSAxM0g1LjVBMS41IDEuNSAwIDAgMSA0IDExLjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QXN0ZXJpc2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEFzdGVyaXNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjYgMi41YS42LjYgMCAxIDAtMS4yIDB2Ni4wNUw1LjEyIDQuMjdhLjYuNiAwIDEgMC0uODUuODVMOC41NSA5LjRIMi41YS42LjYgMCAxIDAgMCAxLjJoNi4wNWwtNC4yOCA0LjI4YS42LjYgMCAwIDAgLjg1Ljg1bDQuMjgtNC4yOHY2LjA1YS42LjYgMCAxIDAgMS4yIDB2LTYuMDVsNC4yOCA0LjI4YS42LjYgMCAwIDAgLjg1LS44NWwtNC4yOC00LjI4aDYuMDVhLjYuNiAwIDEgMCAwLTEuMmgtNi4wNWw0LjI4LTQuMjhhLjYuNiAwIDAgMC0uODUtLjg1TDEwLjYgOC41NVYyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QXN0ZXJpc2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRBc3Rlcmlza1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNSAyLjVhLjUuNSAwIDAgMC0xIDB2Ni4zTDUuMDUgNC4zM2EuNS41IDAgMSAwLS43LjcxTDguNzggOS41SDIuNWEuNS41IDAgMCAwIDAgMWg2LjNsLTQuNDYgNC40NWEuNS41IDAgMSAwIC43MS43bDQuNDUtNC40NHY2LjI5YS41LjUgMCAwIDAgMSAwdi02LjNsNC40NSA0LjQ2YS41LjUgMCAxIDAgLjctLjcxbC00LjQ0LTQuNDVoNi4yOWEuNS41IDAgMCAwIDAtMWgtNi4zbDQuNDYtNC40NWEuNS41IDAgMSAwLS43MS0uN0wxMC41IDguNzhWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJhc2VsaW5lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCYXNlbGluZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC43IDMuNDdhLjc1Ljc1IDAgMCAwLTEuNCAwbC0zLjc1IDkuNWEuNzUuNzUgMCAwIDAgMS40LjU2bDEuMi0zLjAzaDMuN2wxLjIgMy4wM2EuNzUuNzUgMCAwIDAgMS40LS41NmwtMy43NS05LjVaTTExLjI3IDlIOC43M0wxMCA1LjggMTEuMjcgOVpcIiwgXCJNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCYXNlbGluZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJhc2VsaW5lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC40NiAzLjhhLjUuNSAwIDAgMC0uOTIgMGwtNCA5LjVhLjUuNSAwIDEgMCAuOTIuNEw4LjAyIDEwaDMuOTZsMS41NiAzLjdhLjUuNSAwIDEgMCAuOTItLjRsLTQtOS41Wm0xLjEgNS4ySDguNDRMMTAgNS4yOSAxMS41NiA5WlwiLCBcIk0yLjUgMTZhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJvbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJvbGRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2gzLjg4YTQuMTIgNC4xMiAwIDAgMSAzLjQ0IDYuMzkgNC4yNCA0LjI0IDAgMCAxIDEuNDMgMy4yNEE0LjM2IDQuMzYgMCAwIDEgMTAuODggMTdINi41QTEuNSAxLjUgMCAwIDEgNSAxNS41di0xMVpNOCA2djIuMjVoMi4zOGExLjEzIDEuMTMgMCAwIDAgMC0yLjI1SDhabTAgNS4yNVYxNGgyLjg4Yy43IDAgMS4zNy0uNTQgMS4zNy0xLjM3IDAtLjg0LS42OS0xLjM4LTEuMzctMS4zOEg4WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJvbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCb2xkUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgNC4yNUM1LjUgMy41NiA2LjA2IDMgNi43NSAzaDMuNWE0IDQgMCAwIDEgMy4xNyA2LjQ0Yy45LjcgMS41OCAxLjggMS41OCAzLjMxQTQuMjMgNC4yMyAwIDAgMSAxMC43NSAxN2gtNGMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjQuMjVaTTggMTF2My41aDIuNzVjLjgxIDAgMS43NS0uNjIgMS43NS0xLjc1UzExLjU2IDExIDEwLjc1IDExSDhabTAtMi41aDIuMjVhMS41IDEuNSAwIDEgMCAwLTNIOHYzWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJveFNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCb3hTZXR0aW5nc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWE1LjQ4IDUuNDggMCAwIDEtLjUtMy41SDYuN2MtLjM4IDAtLjctLjM0LS43LS43NXMuMzItLjc1LjctLjc1aDIuOWMuMjktLjU2LjY3LTEuMDcgMS4xMy0xLjVINi43Yy0uNCAwLS43MS0uMzQtLjcxLS43NVM2LjMyIDkgNi43IDlIMTQuMzZhNS42MyA1LjYzIDAgMCAxIDIuNjUuNlY1LjVaTTYgNi43NWMwLS40MS4zMi0uNzUuNy0uNzVoNi42Yy4zOCAwIC43LjM0LjcuNzVzLS4zMi43NS0uNy43NUg2LjdjLS4zOCAwLS43LS4zNC0uNy0uNzVabTYuMDcgNC43YTIgMiAwIDAgMS0xLjQ0IDIuNDdsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Qm94U2V0dGluZ3NSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCb3hTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDZhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiA5LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgyLjdjLjEtLjM1LjI0LS42OC40LTFINi41Wm0tMSA0aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVabTYuNTctNC41NmEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yNSA2YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTcgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTkuNUEuNzUuNzUgMCAwIDEgNyA0Ljc1Wk03Ljc1IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDkuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTkuNVptMCA1YS43NS43NSAwIDAgMCAwIDEuNWg5LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC05LjVaTTQuNSA5Ljc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTMuMjUgMTZhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0zLTFjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabS41IDQuNWEuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTFabS0yLjUuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xLTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3Q5MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdDkwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMTYuNzVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFpNNC43NSAxM2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtOS41YS43NS43NSAwIDAgMSAxLjUgMHY5LjVjMCAuNDEtLjM0Ljc1LS43NS43NVpNOSAxMi4yNWEuNzUuNzUgMCAwIDAgMS41IDB2LTkuNWEuNzUuNzUgMCAwIDAtMS41IDB2OS41Wm01IDBhLjc1Ljc1IDAgMCAwIDEuNSAwdi05LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjkuNVpNOS43NSAxNS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaTTE2IDE2Ljc1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdDkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdDkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgMTdhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tMS0zYS41LjUgMCAwIDEtLjUtLjV2LTExYS41LjUgMCAwIDEgMSAwdjExYS41LjUgMCAwIDEtLjUuNVptNSAwYS41LjUgMCAwIDEtLjUtLjV2LTExYS41LjUgMCAwIDEgMSAwdjExYS41LjUgMCAwIDEtLjUuNVptNC41LS41YS41LjUgMCAwIDAgMSAwdi0xMWEuNS41IDAgMCAwLTEgMHYxMVptLjUgMi41YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptLTQgMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdEFkZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjI1IDZhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNNyA0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoOS41YS43NS43NSAwIDAgMSAwIDEuNWgtOS41QS43NS43NSAwIDAgMSA3IDQuNzVaTTcuNzUgOWEuNzUuNzUgMCAwIDAgMCAxLjVoNS40NmE1LjQ4IDUuNDggMCAwIDEgNC4zOS0uMDkuNzUuNzUgMCAwIDAtLjM1LTEuNDFoLTkuNVptMCA1aDIuNDZjLS4xNC40OC0uMjEuOTgtLjIxIDEuNUg3Ljc1YS43NS43NSAwIDAgMSAwLTEuNVpNNC41IDkuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMy4yNSAxNmExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0yMCAxNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTV2MS41YS41LjUgMCAwIDAgMSAwVjE2aDEuNWEuNS41IDAgMCAwIDAtMUgxNnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RBZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0QWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTMtMWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41Wm0wIDVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptNC4wMiA1LjVjLjAzLS4zNC4xLS42OC4xOS0xSDYuNWEuNS41IDAgMCAwIDAgMWgzLjUyWk00IDE0LjVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMS00YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMTcgNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNWgtMS41YS41LjUgMCAwIDAgMCAxSDE1djEuNWEuNS41IDAgMCAwIDEgMFYxNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0Q2hlY2ttYXJrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0Q2hlY2ttYXJrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMjUgNmExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk03IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg5LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC05LjVBLjc1Ljc1IDAgMCAxIDcgNC43NVpNNy43NSA5YS43NS43NSAwIDAgMCAwIDEuNWg1LjQ2YTUuNDggNS40OCAwIDAgMSA0LjM5LS4wOS43NS43NSAwIDAgMC0uMzUtMS40MWgtOS41Wm0wIDVoMi40NmMtLjE0LjQ4LS4yMS45OC0uMjEgMS41SDcuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wk00LjUgOS43NWExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0zLjI1IDE2YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTIwIDE1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjg1LTEuODUtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdENoZWNrbWFya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RDaGVja21hcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMy0xYzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41Wm00LjAyIDUuNWMuMDMtLjM0LjEtLjY4LjE5LTFINi41YS41LjUgMCAwIDAgMCAxaDMuNTJaTTQgMTQuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xLTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xNyA1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNS41LjgtLjY1LS42NWEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN2wtMi42NSAyLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3REaXNtaXNzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0RGlzbWlzc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjI1IDZhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNNyA0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoOS41YS43NS43NSAwIDAgMSAwIDEuNWgtOS41QS43NS43NSAwIDAgMSA3IDQuNzVaTTcuNzUgOWEuNzUuNzUgMCAwIDAgMCAxLjVoNS40NmE1LjQ4IDUuNDggMCAwIDEgNC4zOS0uMDkuNzUuNzUgMCAwIDAtLjM1LTEuNDFoLTkuNVptMCA1aDIuNDZjLS4xNC40OC0uMjEuOTgtLjIxIDEuNUg3Ljc1YS43NS43NSAwIDAgMSAwLTEuNVpNNC41IDkuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMy4yNSAxNmExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0yMCAxNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3REaXNtaXNzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdERpc21pc3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMy0xYzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41Wm00LjAyIDUuNWMuMDMtLjM0LjEtLjY4LjE5LTFINi41YS41LjUgMCAwIDAgMCAxaDMuNTJaTTQgMTQuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xLTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xNyA1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RMdHJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yNSA2YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTcgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTkuNUEuNzUuNzUgMCAwIDEgNyA0Ljc1Wk03Ljc1IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDkuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTkuNVptMCA1YS43NS43NSAwIDAgMCAwIDEuNWg5LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC05LjVaTTQuNSA5Ljc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTMuMjUgMTZhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0THRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdEx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA1LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0zLTFjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabS41IDQuNWEuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTFabS0yLjUuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xLTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RMdHI5MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdEx0cjkwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0IDMuMjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMFpNMTUuMjUgN2MuNDEgMCAuNzUuMzQuNzUuNzV2OS41YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTExIDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjkuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTkuNVptLTUgMGEuNzUuNzUgMCAwIDAtMS41IDB2OS41YS43NS43NSAwIDAgMCAxLjUgMHYtOS41Wm00LjI1LTMuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVpNNCAzLjI1YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdEx0cjkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdEx0cjkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41IDNhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0xIDNjLjI4IDAgLjUuMjIuNS41djExYS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wm0tNSAwYy4yOCAwIC41LjIyLjUuNXYxMWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVpNNiA2LjVhLjUuNSAwIDAgMC0xIDB2MTFhLjUuNSAwIDAgMCAxIDB2LTExWk01LjUgNGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTQtMWExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFJ0bEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi43NSA2YTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjVaTTEzIDQuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTkuNWEuNzUuNzUgMCAwIDAgMCAxLjVoOS41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wk0xMi4yNSA5YS43NS43NSAwIDAgMSAwIDEuNWgtOS41YS43NS43NSAwIDAgMSAwLTEuNWg5LjVabTAgNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTkuNWEuNzUuNzUgMCAwIDEgMC0xLjVoOS41Wm0zLjI1LTQuMjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMFpNMTYuNzUgMTZhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0UnRsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFJ0bFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcgNS41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTMtMWEuNS41IDAgMCAwLS41LS41aC0xMWEuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIC41LS41Wm0wIDVhLjUuNSAwIDAgMC0uNS0uNWgtMTFhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAuNS0uNVptLS41IDQuNWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMSAwLTFoMTFabTIuNS41YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptMS00YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0UnRsOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RSdGw5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDE2Ljc1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBaTTQuNzUgMTNhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTkuNWEuNzUuNzUgMCAwIDEgMS41IDB2OS41YzAgLjQxLS4zNC43NS0uNzUuNzVaTTkgMTIuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi05LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjkuNVptNSAwYS43NS43NSAwIDAgMCAxLjUgMHYtOS41YS43NS43NSAwIDAgMC0xLjUgMHY5LjVaTTkuNzUgMTUuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wk0xNiAxNi43NWExLjI1IDEuMjUgMCAxIDAtMi41IDAgMS4yNSAxLjI1IDAgMCAwIDIuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RSdGw5MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RSdGw5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDE3YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLTEtM2EuNS41IDAgMCAxLS41LS41di0xMWEuNS41IDAgMCAxIDEgMHYxMWEuNS41IDAgMCAxLS41LjVabTUgMGEuNS41IDAgMCAxLS41LS41di0xMWEuNS41IDAgMCAxIDEgMHYxMWEuNS41IDAgMCAxLS41LjVabTQuNS0uNWEuNS41IDAgMCAwIDEgMHYtMTFhLjUuNSAwIDAgMC0xIDB2MTFabS41IDIuNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS00IDFhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNoOC41QTIuNzUgMi43NSAwIDAgMSAxNyA1Ljc1djguNUEyLjc1IDIuNzUgMCAwIDEgMTQuMjUgMTdoLTguNUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41Wk02Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk02Ljc1IDE0YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOSA3LjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk05IDEzLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNzUgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTYuNzUgMTRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05IDcuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTkgMTMuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpNNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NXY4LjVBMi43NSAyLjc1IDAgMCAxIDE0LjI1IDE3aC04LjVBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzWk00IDUuNzV2OC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDguNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTguNUMxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41QzQuNzggNCA0IDQuNzggNCA1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVDbG9ja0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFNxdWFyZUNsb2NrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNzUgM0EyLjc1IDIuNzUgMCAwIDAgMyA1Ljc1djguNUEyLjc1IDIuNzUgMCAwIDAgNS43NSAxN0g5LjZhNS40OCA1LjQ4IDAgMCAxIC42Ni02SDkuNWEuNS41IDAgMCAxIDAtMWgxLjg0QTUuNDcgNS40NyAwIDAgMSAxNyA5LjZWNS43NUEyLjc1IDIuNzUgMCAwIDAgMTQuMjUgM2gtOC41Wk03LjUgNy4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk02Ljc1IDkuNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVabS43NSAzLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTkuNSA4YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFoLTRabTUgMTFhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uNS02LjVhLjUuNSAwIDAgMSAxIDBWMTRoMWEuNS41IDAgMCAxIDAgMWgtMS41YS41LjUgMCAwIDEtLjUtLjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZUNsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFNxdWFyZUNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljc1IDNoOC41QTIuNzUgMi43NSAwIDAgMSAxNyA1Ljc1VjkuNmMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1Ljc2QzE2IDQuNzggMTUuMjIgNCAxNC4yNSA0aC04LjVDNC43OCA0IDQgNC43OCA0IDUuNzV2OC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuNDZjLjEuMzUuMjMuNjguMzkgMUg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE0LjI1di04LjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM1ptMy43NSA3aDEuODRjLS40LjI4LS43Ny42Mi0xLjA4IDFIOS41YS41LjUgMCAwIDEgMC0xWk02Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNOSA3LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTEwIDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTF2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVFZGl0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlRWRpdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g4LjVBMi43NSAyLjc1IDAgMCAxIDE3IDUuNzVWOWMtLjY5LjAzLTEuMzcuMzEtMS45Ljg0TDExLjk0IDEzSDkuNWEuNS41IDAgMCAwIDAgMWgxLjQ0bC0uNjcuNjdjLS40LjQxLS43LjkyLS44NCAxLjQ5bC0uMjEuODRINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41Wk02Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk02Ljc1IDE0YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOSA3LjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0xLjQ4IDUuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZUVkaXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlRWRpdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NVY5Yy0uMzQuMDItLjY4LjEtMSAuMjNWNS43NUMxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41QzQuNzggNCA0IDQuNzggNCA1Ljc1djguNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgzLjcybC0uMDQuMTYtLjIxLjg0SDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzWk05LjUgMTNoMi40NGwtMSAxSDkuNWEuNS41IDAgMCAxIDAtMVptLTItNS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk02Ljc1IDExYS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMCAzYS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOS41IDdhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMCAzYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTEuNDggNS4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0U3F1YXJlUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NVY5LjRhMi45OSAyLjk5IDAgMCAwLTMuNzQuNkg5LjVhLjUuNSAwIDAgMCAwIDFoMy4xN2EzIDMgMCAwIDAgMCAySDkuNWEuNS41IDAgMCAwIDAgMWgzLjc2bC4wMS4wMUEyLjUgMi41IDAgMCAwIDExLjA0IDE3SDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNVpNNi43NSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjc1IDIuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpNNi43NSAxNGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTkgNy41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41Wm04LjUgNC41YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZVBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNzUgM2g4LjVBMi43NSAyLjc1IDAgMCAxIDE3IDUuNzVWOS40Yy0uMy0uMTctLjY0LS4zLTEtLjM2VjUuNzVDMTYgNC43OCAxNS4yMiA0IDE0LjI1IDRoLTguNUM0Ljc4IDQgNCA0Ljc4IDQgNS43NXY4LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNS4zYTIuNTEgMi41MSAwIDAgMC0uMDEgMUg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE0LjI1di04LjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM1ptMy43NSA3aDMuNzZhMyAzIDAgMCAwLS41OSAxSDkuNWEuNS41IDAgMCAxIDAtMVptMCAzaDMuMTdhMyAzIDAgMCAwIC42IDFIOS41YS41LjUgMCAwIDEgMC0xWm0tMi01Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTYuNzUgMTFhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0wIDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05LjUgN2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm04IDVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0U3F1YXJlU2VhcmNoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlU2VhcmNoRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NXY4LjVBMi43NSAyLjc1IDAgMCAxIDE0LjI1IDE3aC00LjEzbC0xLjU2LTEuNTZjLjIxLS40NC4zNi0uOTMuNDEtMS40NGg0LjUzYS41LjUgMCAwIDAgMC0xSDguOTdBNC41IDQuNSAwIDAgMCAzIDkuMjZWNS43NVpNNi43NSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOSA3LjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0tNSA3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVTZWFyY2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlU2VhcmNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljc1IDNoOC41QTIuNzUgMi43NSAwIDAgMSAxNyA1Ljc1djguNUEyLjc1IDIuNzUgMCAwIDEgMTQuMjUgMTdoLTQuMTNsLTEtMWg1LjEzYy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtOC41QzE2IDQuNzggMTUuMjIgNCAxNC4yNSA0aC04LjVDNC43OCA0IDQgNC43OCA0IDUuNzV2My4yOGMtLjM1LjA0LS42OC4xMS0xIC4yM1Y1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNaTTkuNSAxNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxaC00Wm0tMi02Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTItLjI1YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0tNSA3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFNxdWFyZVNldHRpbmdzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NVY5LjZhNS40OCA1LjQ4IDAgMCAwLTUuNjYuNEg5LjVhLjUuNSAwIDAgMCAwIDFoLjc2YTUuNDggNS40OCAwIDAgMC0uNjYgNkg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE0LjI1di04LjVaTTYuNzUgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaTTYuNzUgMTRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05IDcuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVptMy4wNyAzLjk0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NVY5LjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNS43NkMxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41QzQuNzggNCA0IDQuNzggNCA1Ljc1djguNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgzLjQ2Yy4xLjM1LjIzLjY4LjM5IDFINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNabTMuNzUgN2gxLjg0Yy0uNC4yOC0uNzcuNjItMS4wOCAxSDkuNWEuNS41IDAgMCAxIDAtMVpNNi43NSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjc1IDIuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMCAzYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTkgNy41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0zLjA3IDMuOTRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ3LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZVNoaWVsZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFNxdWFyZVNoaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g4LjVBMi43NSAyLjc1IDAgMCAxIDE3IDUuNzV2NC42N2EzLjIzIDMuMjMgMCAwIDEtMS41Mi0xIDEuMzQgMS4zNCAwIDAgMC0xLjk1IDBjLS4yMi4yNC0uNDQuNDMtLjY2LjU4SDkuNWEuNS41IDAgMCAwIDAgMWguOGMtLjE5LjI1LS4zLjU2LS4zLjg4djIuNTFjLjA0Ljk2LjIzIDEuODMuNiAyLjYxSDUuNzZBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNVpNNi43NSA4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjc1IDIuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpNNi43NSAxNGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTkgNy41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41Wk0xNC41IDE5Yy0uMDQgMC0uMDggMC0uMTEtLjAyYTUuNjcgNS42NyAwIDAgMS0xLjc2LS45OGMtLjM1LS4zLS42NC0uNjMtLjg4LTFhNS4xNSA1LjE1IDAgMCAxLS43NS0yLjY0VjExLjg3YzAtLjIuMTYtLjM3LjM1LS4zNyAxLjA3IDAgMi4wMy0uNDYgMi45LTEuMzkuMDctLjA3LjE2LS4xMS4yNS0uMTFzLjE4LjA0LjI0LjExYTMuODkgMy44OSAwIDAgMCAyLjkgMS4zOWMuMiAwIC4zNi4xNy4zNi4zOHYyLjQ4YTUuMTUgNS4xNSAwIDAgMS0uNzUgMi42NGMtLjI0LjM3LS41My43LS44OCAxYTUuNjcgNS42NyAwIDAgMS0xLjg3IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZVNoaWVsZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVTaGllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNzUgM2g4LjVBMi43NSAyLjc1IDAgMCAxIDE3IDUuNzV2NC42N2EyLjgxIDIuODEgMCAwIDEtMS0uNTFWNS43NUMxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41QzQuNzggNCA0IDQuNzggNCA1Ljc1djguNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg0LjQ4Yy4xLjM1LjIyLjY4LjM4IDFINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNabTMuNzUgN2gzLjM3Yy0uNS4zNS0xIC41LTEuNTIuNS0uNDQgMC0uOC4yLTEuMDQuNUg5LjVhLjUuNSAwIDAgMSAwLTFaTTYuNzUgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTAgM2EuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk05IDcuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpNMTQuNSAxOWMtLjA0IDAtLjA4IDAtLjExLS4wMmE1LjY3IDUuNjcgMCAwIDEtMS43Ni0uOThjLS4zNS0uMy0uNjQtLjYzLS44OC0xYTUuMTUgNS4xNSAwIDAgMS0uNzUtMi42NFYxMS44N2MwLS4yLjE2LS4zNy4zNS0uMzcgMS4wNyAwIDIuMDMtLjQ2IDIuOS0xLjM5LjA3LS4wNy4xNi0uMTEuMjUtLjExcy4xOC4wNC4yNC4xMWEzLjg5IDMuODkgMCAwIDAgMi45IDEuMzljLjIgMCAuMzYuMTcuMzYuMzh2Mi40OGE1LjE1IDUuMTUgMCAwIDEtLjc1IDIuNjRjLS4yNC4zNy0uNTMuNy0uODggMWE1LjY3IDUuNjcgMCAwIDEtMS44NyAxWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVTcGFya2xlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlU3BhcmtsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlptLTMuMDIgMy41NmExLjQgMS40IDAgMCAxLS40OC0uNjJsLS4yNi0uOGEuNTIuNTIgMCAwIDAtLjE0LS4yMi42NC42NCAwIDAgMC0uMjItLjE0bC0uNzctLjI1Yy0uMjctLjEtLjQ5LS4yNi0uNjUtLjQ4QTEuMzEgMS4zMSAwIDAgMSAxMy4xIDhIOS41YS41LjUgMCAwIDEgMC0xaDIuNjRsLS4zNS0xLjA0YTEuMjcgMS4yNyAwIDAgMC0uMjktLjQ3IDEuMyAxLjMgMCAwIDAtLjQ3LS4zbC0xLjA2LS4zNEExLjQxIDEuNDEgMCAwIDEgOSAzLjVjMC0uMTguMDMtLjM0LjA5LS41SDUuNzVBMi43NSAyLjc1IDAgMCAwIDMgNS43NXY4LjVBMi43NSAyLjc1IDAgMCAwIDUuNzUgMTdoOC41QTIuNzUgMi43NSAwIDAgMCAxNyAxNC4yNXYtMi4zM2MtLjE2LjA2LS4zMy4wOC0uNS4wOC0uMjcgMC0uNTMtLjA4LS43NC0uMjNaTTcuNSA3LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTYuNzUgOS41YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVptLjc1IDMuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNOSAxMC41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0uNSAzLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0U3F1YXJlU3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVTcGFya2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTYgMTEuOTFjLjE2LjA2LjMzLjA5LjUuMDkuMTcgMCAuMzQtLjAyLjUtLjA4djIuMzNBMi43NSAyLjc1IDAgMCAxIDE0LjI1IDE3aC04LjVBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDMuMzRhMS40MiAxLjQyIDAgMCAwIDAgMUg1Ljc1QzQuNzggNCA0IDQuNzggNCA1Ljc1djguNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg4LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjExLjlaTTEyLjE0IDdsLjAxLjA1Yy4xLjI1LjI1LjQ4LjUyLjcuMTQuMS4zLjE2LjQ1LjJMMTMuMSA4SDkuNWEuNS41IDAgMCAxIDAtMWgyLjY0Wk02Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNOSAxMC41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0QnVsbGV0TGlzdFNxdWFyZVRvb2xib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NVY5LjVjLS40Mi0uMzEtLjk0LS41LTEuNS0uNWgtMmMtLjgyIDAtMS41NC40LTIgMWgtMmEuNS41IDAgMCAwIDAgMWgxLjU1di4wNEEyLjUgMi41IDAgMCAwIDkgMTMuNVYxN0g1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE0LjI1di04LjVaTTYuNzUgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAyLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaTTYuNzUgMTRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05IDcuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVptMyA0LjV2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDQuNWgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0U3F1YXJlVG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk01Ljc1IDNoOC41QTIuNzUgMi43NSAwIDAgMSAxNyA1Ljc1VjkuNWMtLjMtLjIyLS42My0uMzgtMS0uNDV2LTMuM0MxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41QzQuNzggNCA0IDQuNzggNCA1Ljc1djguNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg5djFINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNabTMuNzUgN2gyYy0uMjIuMy0uMzguNjMtLjQ1IDFIOS41YS41LjUgMCAwIDEgMC0xWm0tMi0yLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTYuNzUgMTFhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0wIDNhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05LjUgN2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0yLjUgNXYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNC41aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEJ1bGxldExpc3RTcXVhcmVXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRCdWxsZXRMaXN0U3F1YXJlV2FybmluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g4LjVBMi43NSAyLjc1IDAgMCAxIDE3IDUuNzV2NS43N2wtLjctMS40MWEyIDIgMCAwIDAtMy41My0uMTFIOS41YS41LjUgMCAwIDAgMCAxaDIuNzdsLTEgMkg5LjVhLjUuNSAwIDAgMCAwIDFoMS4yN2wtMS41IDNINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxNC4yNXYtOC41Wk02Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWk02Ljc1IDE0YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOSA3LjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabTQuNiAzLjA1YTEgMSAwIDAgMSAxLjggMGwzLjUgN0ExIDEgMCAwIDEgMTggMTloLTdhMSAxIDAgMCAxLS45LTEuNDVsMy41LTdaTTE1IDEyLjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMSAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0U3F1YXJlV2FybmluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RTcXVhcmVXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk02Ljc1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uNzUgMi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk02Ljc1IDE0YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNOSA3LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgyLjc3bC40NC0uOS4wNi0uMUg5LjVabTAgM2gxLjc3bC0uNSAxSDkuNWEuNS41IDAgMCAxIDAtMVptLTMuNzUgM2g0LjAybC0uNSAxSDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTQuMjV2LTguNUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDguNUEyLjc1IDIuNzUgMCAwIDEgMTcgNS43NXY1Ljc3bC0uNy0xLjQxYTIuMDUgMi4wNSAwIDAgMC0uMy0uNDRWNS43NUMxNiA0Ljc4IDE1LjIyIDQgMTQuMjUgNGgtOC41QzQuNzggNCA0IDQuNzggNCA1Ljc1djguNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NVptNy44NS01LjQ1YTEgMSAwIDAgMSAxLjggMGwzLjUgN0ExIDEgMCAwIDEgMTggMTloLTdhMSAxIDAgMCAxLS45LTEuNDVsMy41LTdaTTE1IDEyLjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMSAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0VHJlZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0QnVsbGV0TGlzdFRyZWVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy4yNSA2YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTcgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTkuNUEuNzUuNzUgMCAwIDEgNyA0Ljc1Wk03Ljc1IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDkuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTkuNVptNCA1YS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVaTTQuNSA5Ljc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTcuMjUgMTZhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRCdWxsZXRMaXN0VHJlZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEJ1bGxldExpc3RUcmVlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTMtMWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41Wm0wIDVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptNC41IDQuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wm0tMi41LjVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNS00YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDYXNlTG93ZXJjYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDYXNlTG93ZXJjYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjc1IDMuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djQuNjZDMTMgOC4yNCAxMy42IDggMTQuMjUgOGMxLjY2IDAgMyAxLjU3IDMgMy41cy0xLjM0IDMuNS0zIDMuNWMtLjY1IDAtMS4yNi0uMjQtMS43NS0uNjZ2LjE2YS43NS43NSAwIDAgMS0xLjUgMFY0YzAtLjQxLjMzLS43NS43NS0uNzVabTIuNSAxMC4yNWMuNjIgMCAxLjUtLjY3IDEuNS0ycy0uODgtMi0xLjUtMi0xLjUuNjctMS41IDIgLjg4IDIgMS41IDJabS04LjYtNC41NmEyLjggMi44IDAgMCAwLTEuMDcuMjMuNzUuNzUgMCAwIDEtLjY3LTEuMzQgNC4yNiA0LjI2IDAgMCAxIDEuNjktLjRjLjYyLS4wMiAxLjM0LjA4IDEuOTguNEM5IDguNTQgOSA5Ljk1IDkgMTAuNDZ2NC4wNGEuNzUuNzUgMCAwIDEtMS41LjA2Yy0uODcuNTMtMS44OS44NS0yLjk0LjU3YTIuNjEgMi42MSAwIDAgMS0uNzMtNC43NWMuNzgtLjUyIDEuNy0uNjYgMi41My0uNjFhNiA2IDAgMCAxIDEuMS4xNi45Ny45NyAwIDAgMC0uNTUtLjc2Yy0uMzUtLjE4LS44LS4yNS0xLjI2LS4yM1pNNy41IDExLjVhNC41IDQuNSAwIDAgMC0xLjIyLS4yNGMtLjYzLS4wMy0xLjIuMDktMS42Mi4zNi0uOTIuNjItLjY0IDEuOC4yOCAyLjA2Ljc1LjIgMS42Ny0uMTkgMi41Ni0xVjExLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q2FzZUxvd2VyY2FzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENhc2VMb3dlcmNhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgMy41Yy4yOCAwIC41LjIyLjUuNXY0LjljLjUzLS41NiAxLjIzLS45IDItLjkgMS42NiAwIDMgMS41NyAzIDMuNVMxNS42NiAxNSAxNCAxNWMtLjc3IDAtMS40Ny0uMzQtMi0uOXYuNGEuNS41IDAgMCAxLTEgMFY0YzAtLjI4LjIyLS41LjUtLjVaTTE0IDE0Yy45NyAwIDItLjk3IDItMi41UzE0Ljk3IDkgMTQgOXMtMiAuOTctMiAyLjUgMS4wMyAyLjUgMiAyLjVaTTUuOSA4LjY5Yy0uNS4wMi0uOTIuMTMtMS4xOC4yNmEuNS41IDAgMSAxLS40NC0uOWMuNC0uMi45OC0uMzQgMS41OC0uMzYuNi0uMDMgMS4yNy4wNyAxLjg2LjM2QzkgOC43IDkgOS45NiA5IDEwLjQ2djQuMDRhLjUuNSAwIDAgMS0xIDB2LS40MWMtLjkxLjY2LTIuMDEgMS4xLTMuMTMuOGEyLjM2IDIuMzYgMCAwIDEtLjY1LTQuM2MuNzItLjQ4IDEuNTktLjYxIDIuMzgtLjU3LjQ5LjAyLjk3LjExIDEuNC4yNS0uMDItLjQ4LS4xMi0xLjAyLS43Mi0xLjMyLS40LS4yLS45LS4yOC0xLjM5LS4yNlpNOCAxMS4zM2MtLjQtLjE3LS45Mi0uMjktMS40NS0uMzItLjY2LS4wMy0xLjMuMDktMS43Ny40LTEuMTIuNzUtLjc3IDIuMjEuMzUgMi41LjkuMjUgMS45NC0uMjQgMi44Ny0xLjEydi0xLjQ2WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENhc2VUaXRsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q2FzZVRpdGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjUgMy4yNWMuNDEgMCAuNzUuMzQuNzUuNzV2NC42NmMuNS0uNDIgMS4xLS42NiAxLjc1LS42NiAxLjY2IDAgMyAxLjU3IDMgMy41UzE2LjY2IDE1IDE1IDE1Yy0uNjUgMC0xLjI2LS4yNC0xLjc1LS42NnYuMTZhLjc1Ljc1IDAgMCAxLTEuNSAwVjRjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTUgMTMuNWMuNjIgMCAxLjUtLjY3IDEuNS0ycy0uODgtMi0xLjUtMi0xLjUuNjctMS41IDIgLjg4IDIgMS41IDJaTTYuNSAzLjI1Yy4zMSAwIC41OS4yLjcuNWwzLjY0IDEwLjVhLjc1Ljc1IDAgMSAxLTEuNDEuNWwtLjc4LTIuMjVINC4wNmwtLjg2IDIuMjdhLjc1Ljc1IDAgMCAxLTEuNC0uNTRsMy45OC0xMC41Yy4xMi0uMy40LS40OC43MS0uNDhaTTQuNjIgMTFoMy41TDYuNDUgNi4yIDQuNjMgMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q2FzZVRpdGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q2FzZVRpdGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi41IDMuNWMuMjggMCAuNS4yMi41LjV2NC45Yy41My0uNTYgMS4yMy0uOSAyLS45IDEuNjYgMCAzIDEuNTcgMyAzLjVTMTYuNjYgMTUgMTUgMTVjLS43NyAwLTEuNDctLjM0LTItLjl2LjRhLjUuNSAwIDAgMS0xIDBWNGMwLS4yOC4yMi0uNS41LS41Wk0xNSAxNGMuOTcgMCAyLS45NyAyLTIuNVMxNS45NyA5IDE1IDlzLTIgLjk3LTIgMi41IDEuMDMgMi41IDIgMi41Wk02Ljk2IDMuODRhLjUuNSAwIDAgMC0uOTQtLjAyTDMuMjkgMTFoLS4wMnYuMDVsLTEuMjQgMy4yN2EuNS41IDAgMCAwIC45NC4zNkwzLjk4IDEyaDQuNzZsLjkyIDIuNjZhLjUuNSAwIDEgMCAuOTUtLjMyTDYuOTYgMy44NFpNNC4zNiAxMWwyLjEtNS41NEw4LjQgMTFINC4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDYXNlVXBwZXJjYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDYXNlVXBwZXJjYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAzLjI1Yy4zMSAwIC41OS4yLjcuNWwzLjY0IDEwLjVhLjc1Ljc1IDAgMSAxLTEuNDEuNWwtLjc4LTIuMjVINC4wNmwtLjg2IDIuMjdhLjc1Ljc1IDAgMCAxLTEuNC0uNTRsMy45OC0xMC41Yy4xMi0uMy40LS40OC43MS0uNDhaTTQuNjIgMTFoMy41TDYuNDUgNi4yIDQuNjMgMTFaTTEyIDMuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjE0LjVjMCAuNDEuMzQuNzUuNzUuNzVoMi43NWEzLjUgMy41IDAgMCAwIDEuNzEtNi41NSAzLjEyIDMuMTIgMCAwIDAtMi4zNC01LjJIMTJabTMuNzUgMy4xM2MwIC45LS43MyAxLjYyLTEuNjMgMS42MmgtMS4zN1Y1aDEuMzhjLjkgMCAxLjYyLjczIDEuNjIgMS42M1ptLTEgNy4xMmgtMnYtNGgyYTIgMiAwIDEgMSAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q2FzZVVwcGVyY2FzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENhc2VVcHBlcmNhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuOTYgMy44NGEuNS41IDAgMCAwLS45NC0uMDJMMy4yOSAxMWgtLjAydi4wNWwtMS4yNCAzLjI3YS41LjUgMCAwIDAgLjk0LjM2TDMuOTggMTJoNC43NmwuOTIgMi42NmEuNS41IDAgMSAwIC45NS0uMzJMNi45NiAzLjg0Wk00LjM2IDExbDIuMS01LjU0TDguNCAxMUg0LjM2Wm03LjE0LTcuMjVhLjUuNSAwIDAgMC0uNS41VjE0LjVjMCAuMjguMjIuNS41LjVoMi43NWEzLjI1IDMuMjUgMCAwIDAgMS4zLTYuMjMgMi44NyAyLjg3IDAgMCAwLTEuOTMtNS4wMkgxMS41Wm00IDIuODhjMCAxLjAzLS44NCAxLjg3LTEuODggMS44N0gxMlY0Ljc1aDEuNjNjMS4wMyAwIDEuODcuODQgMS44NyAxLjg4Wk0xNC4yNSAxNEgxMlY5LjVoMi4yNWEyLjI1IDIuMjUgMCAwIDEgMCA0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q2hhbmdlQ2FzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q2hhbmdlQ2FzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy41IDMuMjVjLjMgMCAuNTkuMi43LjVsMy42NCAxMC41YS43NS43NSAwIDAgMS0xLjQxLjVsLS43OC0yLjI1aC00LjU5bC0uODYgMi4yN2EuNzUuNzUgMCAxIDEtMS40LS41NGwzLjk4LTEwLjVjLjExLS4zLjQtLjQ4LjcxLS40OFpNMTEuNjIgMTFoMy41bC0xLjY4LTQuOC0xLjgyIDQuOFpNNC45IDguOTRhMi44IDIuOCAwIDAgMC0xLjA3LjIzLjc1Ljc1IDAgMCAxLS42Ny0xLjM0IDQuMjYgNC4yNiAwIDAgMSAxLjY5LS40Yy42Mi0uMDIgMS4zNC4wOCAxLjk4LjQgMS40Mi43MSAxLjQyIDIuMTIgMS40MiAyLjYzdjQuMDRhLjc1Ljc1IDAgMCAxLTEuNS4wNmMtLjg3LjUzLTEuODkuODUtMi45NC41N2EyLjYxIDIuNjEgMCAwIDEtLjczLTQuNzVjLjc4LS41MiAxLjctLjY2IDIuNTMtLjYxYTYgNiAwIDAgMSAxLjEuMTYuOTcuOTcgMCAwIDAtLjU1LS43NmMtLjM1LS4xOC0uOC0uMjUtMS4yNi0uMjNabTEuODUgMi41NmE0LjUxIDQuNTEgMCAwIDAtMS4yMi0uMjRjLS42My0uMDMtMS4yLjA5LTEuNjIuMzYtLjkyLjYyLS42NCAxLjguMjggMi4wNi43NS4yIDEuNjctLjE5IDIuNTYtMVYxMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENoYW5nZUNhc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDaGFuZ2VDYXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDMuNWMuMiAwIC4zOS4xNC40Ni4zNGwzLjY1IDEwLjVhLjUuNSAwIDAgMS0uOTUuMzJMMTUuNzQgMTJoLTQuNzZsLTEuMDEgMi42OGEuNS41IDAgMCAxLS45My4wMWwuMjQtMS4wMyAxLTIuNlYxMWguMDFsMi43My03LjE4YS41LjUgMCAwIDEgLjQ3LS4zMlptLS4wNCAxLjk2TDExLjM2IDExaDQuMDNsLTEuOTMtNS41NFpNNC45IDguN2MtLjQ4LjAyLS45LjEzLTEuMTcuMjZhLjUuNSAwIDAgMS0uNDQtLjljLjQtLjIuOTgtLjM0IDEuNTgtLjM2LjYtLjAzIDEuMjcuMDcgMS44Ni4zNkM4IDguNyA4IDkuOTYgOCAxMC40NnY0LjA0YS41LjUgMCAwIDEtMSAwdi0uNDFjLS45MS42Ni0yLjAxIDEuMS0zLjEzLjhhMi4zNiAyLjM2IDAgMCAxLS42NS00LjNjLjcyLS40OCAxLjU5LS42MSAyLjM4LS41Ny40OS4wMi45Ny4xMSAxLjQuMjUtLjAyLS40OC0uMTItMS4wMi0uNzItMS4zMi0uNC0uMi0uOS0uMjgtMS4zOS0uMjZaTTcgMTEuMzNjLS40LS4xNy0uOTItLjI5LTEuNDUtLjMyLS42Ni0uMDMtMS4zLjA5LTEuNzcuNC0xLjEyLjc1LS43NyAyLjIxLjM1IDIuNS45LjI1IDEuOTQtLjI0IDIuODctMS4xMnYtMS40NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDbGVhckZvcm1hdHRpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENsZWFyRm9ybWF0dGluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDJjLjIgMCAuNC4xMy40Ny4zMmwzLjUgOC45NWEuNS41IDAgMCAxLS45NC4zN0w4LjAxIDlINGwtMS4wNCAyLjY4YS41LjUgMCAxIDEtLjk0LS4zNmwzLjUtOUEuNS41IDAgMCAxIDYgMlptMCAxLjg4TDQuNCA4SDcuNmwtMS42LTQuMTJaTTExLjUgMmMuMjggMCAuNS4yMi41LjV2My41MmEyLjQ4IDIuNDggMCAwIDEgMi4yNi0xLjNjLjg5IDAgMS42LjM0IDIuMTUgMSAuNTUuNjYuODIgMS41NC44MiAyLjY0bC0uMDEuNDItLjA1LS4wNWEyLjQ5IDIuNDkgMCAwIDAtMS4xNS0uNjUgMi44NiAyLjg2IDAgMCAwLS41My0xLjYyYy0uMzYtLjQ3LS44Ni0uNy0xLjQ4LS43LS42IDAtMS4wOS4yNC0xLjQ3LjcyLS4zLjM3LS40Ny44My0uNTQgMS4zN3YxLjAzYy4wNS40My4xOC44LjM3IDEuMTJMMTEgMTEuMzdWMi41YzAtLjI4LjIyLS41LjUtLjVabTQuOTcgNy40NCAyLjEgMi4xYTEuNSAxLjUgMCAwIDEtLjAxIDIuMTJsLTMuNiAzLjYtNC4yMS00LjIyIDMuNi0zLjZhMS41IDEuNSAwIDAgMSAyLjEyIDBabS0yLjIyIDguNTItNC4yMS00LjIxLS42LjZhMS41IDEuNSAwIDAgMCAwIDIuMTJsMi4xIDIuMWMuMy4zLjcxLjQ1IDEuMTIuNDNoNC4wOWEuNS41IDAgMSAwIDAtMWgtMi41M2wuMDMtLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENsZWFyRm9ybWF0dGluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENsZWFyRm9ybWF0dGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAyYy4yIDAgLjQuMTMuNDcuMzJsMy41IDguOTVhLjUuNSAwIDAgMS0uOTQuMzdMOC4wMSA5SDRsLTEuMDQgMi42OGEuNS41IDAgMSAxLS45NC0uMzZsMy41LTlBLjUuNSAwIDAgMSA2IDJabTAgMS44OEw0LjQgOEg3LjZsLTEuNi00LjEyWk0xMS41IDJjLjI4IDAgLjUuMjIuNS41djMuNTJhMi40OCAyLjQ4IDAgMCAxIDIuMjYtMS4zYy44OSAwIDEuNi4zNCAyLjE1IDEgLjU1LjY2LjgyIDEuNTQuODIgMi42NGwtLjAxLjQyLS4wNS0uMDVhMi40OSAyLjQ5IDAgMCAwLTEuMTUtLjY1IDIuODYgMi44NiAwIDAgMC0uNTMtMS42MmMtLjM2LS40Ny0uODYtLjctMS40OC0uNy0uNiAwLTEuMDkuMjQtMS40Ny43Mi0uMy4zNy0uNDcuODMtLjU0IDEuMzd2MS4wM2MuMDUuNDMuMTguOC4zNyAxLjEyTDExIDExLjM3VjIuNWMwLS4yOC4yMi0uNS41LS41Wk05LjQ0IDE2LjQ3YTEuNSAxLjUgMCAwIDEgMC0yLjEzbDQuOS00LjlhMS41IDEuNSAwIDAgMSAyLjEzIDBsMi4xIDIuMWExLjUgMS41IDAgMCAxLS4wMSAyLjEyTDE0LjIyIDE4aDIuNTNhLjUuNSAwIDEgMSAwIDFoLTQuMWExLjUgMS41IDAgMCAxLTEuMTItLjQ0bC0yLjEtMi4xWm01LjYxLTYuMzItMy42IDMuNiAyLjggMi44IDMuNi0zLjZhLjUuNSAwIDAgMCAwLS43bC0yLjEtMi4xYS41LjUgMCAwIDAtLjcgMFptLTEuNSA3LjEtMi44LTIuOC0uNi42YS41LjUgMCAwIDAgMCAuN2wyLjEgMi4xYy4xOS4yLjUuMi43IDBsLjYtLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sbGFwc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbGxhcHNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMy41YzAtLjQxLjM0LS43NS43NS0uNzVoMTEuNWEuNzUuNzUgMCAwIDEgMCAxLjVINS43NUEuNzUuNzUgMCAwIDEgNSAzLjVabTAgMTJjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMS41YS43NS43NSAwIDAgMSAwIDEuNUg1Ljc1QS43NS43NSAwIDAgMSA1IDE1LjVabTYuNzUtOC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wk0xMSAxMS41YzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0tMi0yYTMuNSAzLjUgMCAxIDEtNyAwIDMuNSAzLjUgMCAwIDEgNyAwWm0tNiAwYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENvbGxhcHNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29sbGFwc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUgMy41YzAtLjI4LjIyLS41LjUtLjVoMTJhLjUuNSAwIDAgMSAwIDFoLTEyYS41LjUgMCAwIDEtLjUtLjVabTAgMTJjMC0uMjguMjItLjUuNS0uNWgxMmEuNS41IDAgMCAxIDAgMWgtMTJhLjUuNSAwIDAgMS0uNS0uNVptNi04YzAtLjI4LjIyLS41LjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41Wm0wIDRjMC0uMjguMjItLjUuNS0uNWg2YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjVabS0yLTJhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBaTTMuNSA5YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sb3JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbG9yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjQ2IDIuMzFhLjUuNSAwIDAgMC0uOTIgMGwtMyA3LjVhLjUuNSAwIDEgMCAuOTIuMzhMOC41NCA3LjVoMi45MmwxLjA4IDIuNjlhLjUuNSAwIDEgMCAuOTItLjM4bC0zLTcuNVpNMTAgMy44NWwxLjA2IDIuNjVIOC45NEwxMCAzLjg1Wk00LjUgMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sb3JSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2xvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAuNDYgMi4zMWEuNS41IDAgMCAwLS45MiAwbC0zIDcuNWEuNS41IDAgMSAwIC45Mi4zOEw4LjU0IDcuNWgyLjkybDEuMDggMi42OWEuNS41IDAgMSAwIC45Mi0uMzhsLTMtNy41Wk0xMCAzLjg1bDEuMDYgMi42NUg4Ljk0TDEwIDMuODVaTTQuNSAxMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpNNCAxMy41YzAtLjI4LjIyLS41LjUtLjVoMTFjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di0zWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENvbG9yQWNjZW50RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2xvckFjY2VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMTMuMTNjMC0uMzUuMjQtLjYzLjU0LS42M2gxMS45MmMuMyAwIC41NC4yOC41NC42M3YzLjc0YzAgLjM1LS4yNC42My0uNTQuNjNINC4wNGMtLjMgMC0uNTQtLjI4LS41NC0uNjN2LTMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uT25lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5PbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUgNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOC41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTAgM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtOC41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTAgM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtOC41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTAgM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtOC41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uT25lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29sdW1uT25lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNSA1LjVhLjUuNSAwIDAgMC0uNS0uNWgtOWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgLjUtLjVabTAgM2EuNS41IDAgMCAwLS41LS41aC05YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAuNS0uNVptMCAzYS41LjUgMCAwIDAtLjUtLjVoLTlhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIC41LS41Wm0wIDNhLjUuNSAwIDAgMC0uNS0uNWgtOWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uT25lTmFycm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5PbmVOYXJyb3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy43NSA1YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVabTAgM2EuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41Wk03IDExLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk03Ljc1IDE0YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uT25lTmFycm93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29sdW1uT25lTmFycm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wm0wIDNhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNyAxMS41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5PbmVTZW1pTmFycm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5PbmVTZW1pTmFycm93RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNzUgNWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41Wm0wIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTYuNVpNNiAxMS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTYuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNi43NSAxNGEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENvbHVtbk9uZVNlbWlOYXJyb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5PbmVTZW1pTmFycm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUgNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wm0wIDNhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAxMS41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5PbmVXaWRlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5PbmVXaWRlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNzUgNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVptMCAzYS43NS43NSAwIDAgMCAwIDEuNWgxMi41YS43NS43NSAwIDAgMCAwLTEuNUgzLjc1Wk0zIDExLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTIuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMy43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMy43NSAxNGEuNzUuNzUgMCAwIDAgMCAxLjVoMTIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5PbmVXaWRlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29sdW1uT25lV2lkZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDVhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm0wIDNhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWk0zIDExLjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5PbmVXaWRlTGlnaHRuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5PbmVXaWRlTGlnaHRuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEyLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDMuNzVBLjc1Ljc1IDAgMCAxIDMgNS43NVptMCAzYzAtLjQxLjM0LS43NS43NS0uNzVoMTIuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMy43NUEuNzUuNzUgMCAwIDEgMyA4Ljc1Wk0zLjc1IDExYS43NS43NSAwIDAgMCAwIDEuNWg3LjhsLjYyLTEuNUgzLjc1Wm03LjE3IDMtLjYzIDEuNUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWg3LjE3Wm0uNTggMy4wMWgxLjc1bC0uNTkgMi4zN2MtLjEyLjQ4LjQ2LjgyLjgzLjQ4bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM1YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40OGEuNS41IDAgMCAwLS40Ni4zbC0yLjA4IDUuMDJjLS4xNC4zMy4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5PbmVXaWRlTGlnaHRuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29sdW1uT25lV2lkZUxpZ2h0bmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDVhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm0wIDNhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm0wIDdoN2wuNDItMUgzLjVhLjUuNSAwIDAgMCAwIDFabTguNjctNC0uNDIgMUgzLjVhLjUuNSAwIDAgMSAwLTFoOC42N1ptLS42NyA2LjAxaDEuNzVsLS41OSAyLjM3Yy0uMTIuNDguNDYuODIuODMuNDhsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzVhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ4YS41LjUgMCAwIDAtLjQ2LjNsLTIuMDggNS4wMmMtLjE0LjMzLjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dENvbHVtblRocmVlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5UaHJlZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMiA1Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVptNSAwYS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVptLTEwIDBBLjc1Ljc1IDAgMCAwIDYuMjUgNWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTUgM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTUgMGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS0xMCAwQS43NS43NSAwIDAgMCA2LjI1IDhoLTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm01IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm01IDBhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tMTAgMGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTUgM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTUgMGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS0xMCAwYS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5UaHJlZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbHVtblRocmVlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMiA1LjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabTUgMGEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNVptLTEwIDBhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabTUgM2EuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNVptNSAwYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wm0tMTAgMGEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNVptNSAzYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wm01IDBhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabS0xMCAwYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wm01IDNhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabTUgMGEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNVptLTEwIDBhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uVHdvRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5Ud29GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS04IDBBLjc1Ljc1IDAgMCAwIDguMjUgNWgtNC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTggM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS04IDBBLjc1Ljc1IDAgMCAwIDguMjUgOGgtNC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTggM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS04IDBhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTQuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm04IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTQuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tOCAwYS43NS43NSAwIDAgMC0uNzUtLjc1aC00LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5Ud29SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5Ud29SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDUuNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuNS0uNVptLTggMGEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuNS0uNVptOCAzYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41Wm0tOCAwYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41Wm04IDNhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjUtLjVabS04IDBhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjUtLjVabTggM2EuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuNS0uNVptLTggMGEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5Ud29MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRDb2x1bW5Ud29MZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgMyA1Ljc1Wm02IDBjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVBLjc1Ljc1IDAgMCAxIDkgNS43NVptLTYgM2MwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgMyA4Ljc1Wm02IDBjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVBLjc1Ljc1IDAgMCAxIDkgOC43NVptLTYgM2MwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNiAwYzAtLjQxLjM0LS43NS43NS0uNzVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0tNiAzYzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm02IDBjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uVHdvTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbHVtblR3b0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm02IDBjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabS02IDNjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTYgMGMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptLTYgM2MwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNiAwYzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0tNiAzYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm02IDBjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uVHdvUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbHVtblR3b1JpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDUuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tNiAwYS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVptNiAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVptLTYgMGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNi41YS43NS43NSAwIDAgMCAwIDEuNWg2LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTYgM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS02IDBhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTYuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm02IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tNiAwYS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRDb2x1bW5Ud29SaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbHVtblR3b1JpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA1LjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabS02IDBhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgLjUtLjVabTYgM2EuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNVptLTYgMGEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAuNS0uNVptNiAzYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wm0tNiAwYS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIC41LS41Wm02IDNhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabS02IDBhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uV2lkZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29sdW1uV2lkZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjc1IDVhLjc1Ljc1IDAgMCAwIDAgMS41aDEyLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVabTAgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMTIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVpNMyAxMS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEyLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDMuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTMuNzUgMTRhLjc1Ljc1IDAgMCAwIDAgMS41aDEyLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sdW1uV2lkZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbHVtbldpZGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSA1YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1ptMCAzYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pNMyAxMS41YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29udGludW91c0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Q29udGludW91c0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDUuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNS41Wm0wIDljMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDE0LjVabTIuNzgtNS4wMy0xLjUtMS41YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsLjk3Ljk3LS45Ny45N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDEuNS0xLjVjLjMtLjMuMy0uNzcgMC0xLjA2Wk03IDguNWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTkuNUEuNzUuNzUgMCAwIDEgNyA4LjVabS43NSAyLjI1YS43NS43NSAwIDAgMCAwIDEuNWg5LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC05LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Q29udGludW91c1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dENvbnRpbnVvdXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNS41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgOWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0xLjM1LTYuMzVhLjUuNSAwIDEgMC0uNy43TDMuNzkgMTBsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS41LTEuNWEuNS41IDAgMCAwIDAtLjdsLTEuNS0xLjVaTTcuNSA4aDEwYS41LjUgMCAwIDEgMCAxaC0xMGEuNS41IDAgMCAxIDAtMVptMCAzYS41LjUgMCAwIDAgMCAxaDEwYS41LjUgMCAwIDAgMC0xaC0xMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREZW5zaXR5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREZW5zaXR5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTkgNUgyLjVhLjUuNSAwIDAgMCAwIDFIOVY1Wm0wIDNIMi41YS41LjUgMCAwIDAgMCAxSDlWOFptMCAzSDIuNWEuNS41IDAgMCAwIDAgMUg5di0xWm0wIDNIMi41YS41LjUgMCAwIDAgMCAxSDl2LTFabTcuNSAwSDEydi0zaDQuNWExLjUgMS41IDAgMCAxIDAgM1ptMC01SDEyVjZoNC41YTEuNSAxLjUgMCAwIDEgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERlbnNpdHlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREZW5zaXR5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41IDJjLjI4IDAgLjUuMjIuNS41djE1YS41LjUgMCAwIDEtMSAwdi0xNWMwLS4yOC4yMi0uNS41LS41Wk05IDVIMi41YS41LjUgMCAwIDAgMCAxSDlWNVptMCAzSDIuNWEuNS41IDAgMCAwIDAgMUg5VjhabTAgM0gyLjVhLjUuNSAwIDAgMCAwIDFIOXYtMVptMCAzSDIuNWEuNS41IDAgMCAwIDAgMUg5di0xWm03LjUgMEgxMnYtMWg0LjVhLjUuNSAwIDAgMCAwLTFIMTJ2LTFoNC41YTEuNSAxLjUgMCAwIDEgMCAzWm0wLTVIMTJWOGg0LjVhLjUuNSAwIDAgMCAwLTFIMTJWNmg0LjVhMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGVzY3JpcHRpb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERlc2NyaXB0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNC41YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0wIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTIgMTEuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoOS41YS43NS43NSAwIDAgMCAwLTEuNWgtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERlc2NyaXB0aW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGVzY3JpcHRpb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA1YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVptMCAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpNMiAxMS41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgxMGEuNS41IDAgMCAwIDAtMWgtMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGVzY3JpcHRpb25MdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERlc2NyaXB0aW9uTHRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNC41YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0wIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTIgMTEuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoOS41YS43NS43NSAwIDAgMCAwLTEuNWgtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERlc2NyaXB0aW9uTHRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGVzY3JpcHRpb25MdHJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA1YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVptMCAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpNMiAxMS41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAwIDAgMWgxMGEuNS41IDAgMCAwIDAtMWgtMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGVzY3JpcHRpb25SdGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERlc2NyaXB0aW9uUnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjI1IDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMTQuNVptMCAzYS43NS43NSAwIDAgMSAwIDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxNC41Wm0uNzUgMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tLjc1IDIuMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC05LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREZXNjcmlwdGlvblJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERlc2NyaXB0aW9uUnRsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy41IDVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wm0wIDNhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wm0uNSAzLjVhLjUuNSAwIDAgMC0uNS0uNWgtMTVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAuNS0uNVptLS41IDIuNWEuNS41IDAgMCAxIDAgMWgtMTBhLjUuNSAwIDAgMSAwLTFoMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uSG9yaXpvbnRhbExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvbkhvcml6b250YWxMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzLjUgM2MtLjMgMC0uNTguMTktLjcuNDdsLTMgNy41YS43NS43NSAwIDAgMCAxLjQuNTZMMTIgOS41aDNsLjggMi4wM2EuNzUuNzUgMCAwIDAgMS40LS41NmwtMy03LjVhLjc1Ljc1IDAgMCAwLS43LS40N1ptMCAyLjc3TDE0LjQgOGgtMS44bC45LTIuMjNaTTUuMjIgNC4yMmEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2TDUuNTYgNmgzLjY5YS43NS43NSAwIDAgMSAwIDEuNUg1LjU2bC43Mi43MmEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2bC0yLTJhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLTJabTAgNy41YS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLS43Mi43MmgxMC42OWEuNzUuNzUgMCAwIDEgMCAxLjVINS41NmwuNzIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi0yYS43NS43NSAwIDAgMSAwLTEuMDZsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERpcmVjdGlvbkhvcml6b250YWxMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uSG9yaXpvbnRhbExlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjUgM2EuNS41IDAgMCAwLS40Ny4zMmwtMyA4YS41LjUgMCAwIDAgLjk0LjM2bDEtMi42OGgzLjA2bDEgMi42OGEuNS41IDAgMCAwIC45NC0uMzZsLTMtOEEuNS41IDAgMCAwIDEzLjUgM1ptMCAxLjkyTDE0LjY1IDhoLTIuM2wxLjE1LTMuMDhabS04LjM1LS43N2EuNS41IDAgMSAxIC43LjdMNC43MSA2SDkuNWEuNS41IDAgMCAxIDAgMUg0LjdsMS4xNSAxLjE1YS41LjUgMCAxIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJabTAgOGEuNS41IDAgMCAxIC43LjdMNC43MSAxNEgxNi41YS41LjUgMCAwIDEgMCAxSDQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Ib3Jpem9udGFsTHRyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREaXJlY3Rpb25Ib3Jpem9udGFsTHRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuNSAzYy4zIDAgLjU4LjE5LjcuNDdsMyA3LjVhLjc1Ljc1IDAgMCAxLTEuNC41Nkw4IDkuNUg1bC0uOCAyLjAzYS43NS43NSAwIDAgMS0xLjQtLjU2bDMtNy41QS43NS43NSAwIDAgMSA2LjUgM1ptMCAyLjc3TDUuNiA4aDEuOGwtLjktMi4yM1ptOC4yOC0xLjU1YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsLjcyLjcyaC0zLjY5YS43NS43NSAwIDAgMCAwIDEuNWgzLjY5bC0uNzIuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwyLTJjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLTJabTAgNy41YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsLjcyLjcySDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDEwLjY5bC0uNzIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwyLTJjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uSG9yaXpvbnRhbEx0clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvbkhvcml6b250YWxMdHJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSAzYy4yIDAgLjQuMTMuNDcuMzJsMyA4YS41LjUgMCAwIDEtLjk0LjM2TDguMDMgOUg0Ljk3bC0xIDIuNjhhLjUuNSAwIDAgMS0uOTQtLjM2bDMtOEEuNS41IDAgMCAxIDYuNSAzWm0wIDEuOTJMNS4zNSA4aDIuM0w2LjUgNC45MlptOC4zNS0uNzdhLjUuNSAwIDEgMC0uNy43TDE1LjI5IDZIMTAuNWEuNS41IDAgMCAwIDAgMWg0LjhsLTEuMTUgMS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWm0wIDhhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDMuNWEuNS41IDAgMCAwIDAgMWgxMS44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Ib3Jpem9udGFsUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvbkhvcml6b250YWxSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgM2MuMyAwIC41OC4xOS43LjQ3bDMgNy41YS43NS43NSAwIDAgMS0xLjQuNTZMOCA5LjVINWwtLjggMi4wM2EuNzUuNzUgMCAwIDEtMS40LS41NmwzLTcuNUEuNzUuNzUgMCAwIDEgNi41IDNabTAgMi43N0w1LjYgOGgxLjhsLS45LTIuMjNabTguMjgtMS41NWEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bC43Mi43MmgtMy42OWEuNzUuNzUgMCAwIDAgMCAxLjVoMy42OWwtLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi0yYy4zLS4zLjMtLjc3IDAtMS4wNmwtMi0yWm0wIDcuNWEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bC43Mi43MkgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxMC42OWwtLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi0yYy4zLS4zLjMtLjc3IDAtMS4wNmwtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERpcmVjdGlvbkhvcml6b250YWxSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvbkhvcml6b250YWxSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDNjLjIgMCAuNC4xMy40Ny4zMmwzIDhhLjUuNSAwIDAgMS0uOTQuMzZMOC4wMyA5SDQuOTdsLTEgMi42OGEuNS41IDAgMCAxLS45NC0uMzZsMy04QS41LjUgMCAwIDEgNi41IDNabTAgMS45Mkw1LjM1IDhoMi4zTDYuNSA0LjkyWm04LjM1LS43N2EuNS41IDAgMSAwLS43LjdMMTUuMjkgNkgxMC41YS41LjUgMCAwIDAgMCAxaDQuOGwtMS4xNSAxLjE1YS41LjUgMCAxIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJabTAgOGEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMy41YS41LjUgMCAwIDAgMCAxaDExLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERpcmVjdGlvbkhvcml6b250YWxSdGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvbkhvcml6b250YWxSdGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNSAzYy0uMyAwLS41OC4xOS0uNy40N2wtMyA3LjVhLjc1Ljc1IDAgMCAwIDEuNC41NkwxMiA5LjVoM2wuOCAyLjAzYS43NS43NSAwIDAgMCAxLjQtLjU2bC0zLTcuNWEuNzUuNzUgMCAwIDAtLjctLjQ3Wm0wIDIuNzdMMTQuNCA4aC0xLjhsLjktMi4yM1pNNS4yMiA0LjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZMNS41NiA2aDMuNjlhLjc1Ljc1IDAgMCAxIDAgMS41SDUuNTZsLjcyLjcyYS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTItMmEuNzUuNzUgMCAwIDEgMC0xLjA2bDItMlptMCA3LjVhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNmwtLjcyLjcyaDEwLjY5YS43NS43NSAwIDAgMSAwIDEuNUg1LjU2bC43Mi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0yLTJhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uSG9yaXpvbnRhbFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvbkhvcml6b250YWxSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjUgM2EuNS41IDAgMCAwLS40Ny4zMmwtMyA4YS41LjUgMCAwIDAgLjk0LjM2bDEtMi42OGgzLjA2bDEgMi42OGEuNS41IDAgMCAwIC45NC0uMzZsLTMtOEEuNS41IDAgMCAwIDEzLjUgM1ptMCAxLjkyTDE0LjY1IDhoLTIuM2wxLjE1LTMuMDhabS04LjM1LS43N2EuNS41IDAgMSAxIC43LjdMNC43MSA2SDkuNWEuNS41IDAgMCAxIDAgMUg0LjdsMS4xNSAxLjE1YS41LjUgMCAxIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJabTAgOGEuNS41IDAgMCAxIC43LjdMNC43MSAxNEgxNi41YS41LjUgMCAwIDEgMCAxSDQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Sb3RhdGUyNzBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlMjcwUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4yMiA1LjIyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZMNiA1LjU2djMuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTZsLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTItMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJabTcuNSAwYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjcyLS43MnYxMC42OWEuNzUuNzUgMCAxIDAgMS41IDBWNS41NmwuNzIuNzJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMi0yYS43NS43NSAwIDAgMC0xLjA2IDBsLTIgMlpNMyAxMy41YzAtLjMuMTktLjU4LjQ3LS43bDcuNS0zYS43NS43NSAwIDEgMSAuNTYgMS40TDkuNSAxMnYzbDIuMDMuOGEuNzUuNzUgMCAwIDEtLjU2IDEuNGwtNy41LTNhLjc1Ljc1IDAgMCAxLS40Ny0uN1ptMi43NyAwIDIuMjMuOXYtMS44bC0yLjIzLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uUm90YXRlMjcwUmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREaXJlY3Rpb25Sb3RhdGUyNzBSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC44NSA1LjE1YS41LjUgMCAxIDEtLjcuN0w3IDQuNzFWOS41YS41LjUgMCAwIDEtMSAwVjQuN0w0Ljg1IDUuODZhLjUuNSAwIDEgMS0uNy0uN2wyLTJjLjItLjIuNS0uMi43IDBsMiAyWm04IDBhLjUuNSAwIDEgMS0uNy43TDE1IDQuNzFWMTYuNWEuNS41IDAgMCAxLTEgMFY0LjdsLTEuMTUgMS4xNWEuNS41IDAgMSAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJaTTMgMTMuNWMwLS4yLjEzLS40LjMyLS40N2w4LTNhLjUuNSAwIDAgMSAuMzYuOTRsLTIuNjggMXYzLjA2bDIuNjggMWEuNS41IDAgMCAxLS4zNi45NGwtOC0zQS41LjUgMCAwIDEgMyAxMy41Wm0xLjkyIDBMOCAxNC42NXYtMi4zTDQuOTIgMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Sb3RhdGUzMTVSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlMzE1UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOCAyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNjlMOC4yOCA2Ljc4YS43NS43NSAwIDEgMS0xLjA2LTEuMDZMOS40NCAzLjVoLS43QS43NS43NSAwIDAgMSA4IDIuNzVaTTMuMDkgNi41OGEuNzUuNzUgMCAwIDAtMS4wMSAxbDQgOGEuNzUuNzUgMCAwIDAgMS4zNC0uNjdsLTEuMDktMi4xOCAxLjktMS45IDIuMTggMS4xYS43NS43NSAwIDEgMCAuNjgtMS4zNWwtOC00Wm0zLjczIDMuNTQtMS4yIDEuMi0xLjItMi40IDIuNCAxLjJaTTE0Ljc1IDhhLjc1Ljc1IDAgMCAwIDAgMS41aC42OWwtNy4yMiA3LjIyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNy4yMi03LjIydi42OWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERpcmVjdGlvblJvdGF0ZTMxNVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlMzE1UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNSAyYS41LjUgMCAwIDAgMCAxaDEuOEw3LjE0IDYuMTVhLjUuNSAwIDEgMCAuNy43TDExIDMuNzFWNS41YS41LjUgMCAxIDAgMSAwdi0zYS41LjUgMCAwIDAtLjUtLjVoLTNaTTIuNzIgNy4wNWEuNS41IDAgMCAwLS42Ny42N2w0IDhhLjUuNSAwIDEgMCAuOS0uNDVsLTEuMTctMi4zNCAyLjE1LTIuMTUgMi4zNSAxLjE3YS41LjUgMCAxIDAgLjQ0LS45bC04LTRaTTcgMTAuMyA1LjMgMTIgMy42MiA4LjYybDMuMzcgMS42OFpNMTQuNSA4YS41LjUgMCAwIDAgMCAxaDEuOGwtOC4xNSA4LjE1YS41LjUgMCAwIDAgLjcuN0wxNyA5LjcxdjEuNzlhLjUuNSAwIDEgMCAxIDB2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Sb3RhdGU0NVJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREaXJlY3Rpb25Sb3RhdGU0NVJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3LjI1IDhjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMSAxIDAtMS41aC42OWwtMi4yMi0yLjIyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi4yMiAyLjIydi0uN2MwLS40LjM0LS43NC43NS0uNzRabS0zLjgzLTQuOTFhLjc1Ljc1IDAgMCAwLTEtMS4wMWwtOCA0YS43NS43NSAwIDEgMCAuNjcgMS4zNGwyLjE4LTEuMSAxLjkgMS45MS0xLjEgMi4xOGEuNzUuNzUgMCAxIDAgMS4zNS42OGw0LThaTTkuODggNi44MmwtMS4yLTEuMiAyLjQtMS4yLTEuMiAyLjRaTTEyIDE0Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYuNjlMMy4yOCA4LjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsNy4yMiA3LjIyaC0uNjlhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERpcmVjdGlvblJvdGF0ZTQ1UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREaXJlY3Rpb25Sb3RhdGU0NVJpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCA4LjVhLjUuNSAwIDAgMC0xIDB2MS44bC0zLjE1LTMuMTVhLjUuNSAwIDEgMC0uNy43TDE2LjI5IDExSDE0LjVhLjUuNSAwIDEgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41di0zWm0tNS4wNS01Ljc4YS41LjUgMCAwIDAtLjY3LS42N2wtOCA0YS41LjUgMCAwIDAgLjQ1LjlsMi4zNC0xLjE4IDIuMTUgMi4xNi0xLjE3IDIuMzVhLjUuNSAwIDEgMCAuOS40NGw0LThaTTkuNyA3IDggNS4zbDMuMzctMS42OEw5LjcgNi45OVptMi4zIDcuNWEuNS41IDAgMCAwLTEgMHYxLjhMMi44NSA4LjE1YS41LjUgMCAxIDAtLjcuN0wxMC4yOSAxN0g4LjVhLjUuNSAwIDEgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41di0zWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dERpcmVjdGlvblJvdGF0ZTkwTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlOTBMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDEzLjVjMCAuMy0uMTkuNTgtLjQ3LjdsLTcuNSAzYS43NS43NSAwIDAgMS0uNTYtMS40bDIuMDMtLjh2LTNsLTIuMDMtLjhhLjc1Ljc1IDAgMCAxIC41Ni0xLjRsNy41IDNjLjI4LjEyLjQ3LjQuNDcuN1ptLTIuNzcgMEwxMiAxMi42djEuOGwyLjIzLS45Wk01IDE2LjI1YS43NS43NSAwIDAgMCAxLjUgMFY1LjU2bC43Mi43MmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2bC0yLTJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMiAyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZMNSA1LjU2djEwLjY5Wm04LTdhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTZsLjcyLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTItMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwuNzItLjcydjMuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uUm90YXRlOTBMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlOTBMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxMy41YzAgLjItLjEzLjQtLjMyLjQ3bC04IDNhLjUuNSAwIDEgMS0uMzYtLjk0bDIuNjgtMXYtMy4wNmwtMi42OC0xYS41LjUgMCAxIDEgLjM2LS45NGw4IDNjLjIuMDcuMzIuMjYuMzIuNDdabS0xLjkyIDBMMTIgMTIuMzV2Mi4zbDMuMDgtMS4xNVpNNSAxNi41YS41LjUgMCAxIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yQS41LjUgMCAwIDAgNS41IDNhLjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMSAwIC43LjdMNSA0LjcxVjE2LjVabTgtN2EuNS41IDAgMCAwIDEgMFY0LjdsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMCAwIC43LjdMMTMgNC43MVY5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uUm90YXRlOTBMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvblJvdGF0ZTkwTHRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDYuNWMwLS4zLS4xOS0uNTgtLjQ3LS43bC03LjUtM2EuNzUuNzUgMCAwIDAtLjU2IDEuNGwyLjAzLjh2M2wtMi4wMy44YS43NS43NSAwIDEgMCAuNTYgMS40bDcuNS0zYS43NS43NSAwIDAgMCAuNDctLjdabS0yLjc3IDBMMTIgNy40VjUuNmwyLjIzLjlaTTUgMy43NWEuNzUuNzUgMCAwIDEgMS41IDB2MTAuNjlsLjcyLS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yIDJjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwuNzIuNzJWMy43NVptOCA3YS43NS43NSAwIDAgMSAxLjUgMHYzLjY5bC43Mi0uNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMiAyYS43NS43NSAwIDAgMS0xLjA2IDBsLTItMmEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bC43Mi43MnYtMy42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Sb3RhdGU5MEx0clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvblJvdGF0ZTkwTHRyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA2LjVhLjUuNSAwIDAgMC0uMzItLjQ3bC04LTNhLjUuNSAwIDEgMC0uMzYuOTRsMi42OCAxdjMuMDZsLTIuNjggMWEuNS41IDAgMCAwIC4zNi45NGw4LTNBLjUuNSAwIDAgMCAxNyA2LjVabS0xLjkyIDBMMTIgNy42NXYtMi4zbDMuMDggMS4xNVpNNSAzLjVhLjUuNSAwIDAgMSAxIDB2MTEuOGwxLjE1LTEuMTVhLjUuNSAwIDEgMSAuNy43bC0yIDJhLjUuNSAwIDAgMS0uMzUuMTUuNS41IDAgMCAxLS4zNS0uMTVsLTItMmEuNS41IDAgMSAxIC43LS43TDUgMTUuMjlWMy41Wm04IDdhLjUuNSAwIDAgMSAxIDB2NC44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43TDEzIDE1LjI5VjEwLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uUm90YXRlOTBSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlOTBSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA2LjVjMC0uMy0uMTktLjU4LS40Ny0uN2wtNy41LTNhLjc1Ljc1IDAgMCAwLS41NiAxLjRsMi4wMy44djNsLTIuMDMuOGEuNzUuNzUgMCAxIDAgLjU2IDEuNGw3LjUtM2EuNzUuNzUgMCAwIDAgLjQ3LS43Wm0tMi43NyAwTDEyIDcuNFY1LjZsMi4yMy45Wk01IDMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEwLjY5bC43Mi0uNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMiAyYy0uMy4zLS43Ny4zLTEuMDYgMGwtMi0yYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsLjcyLjcyVjMuNzVabTggN2EuNzUuNzUgMCAwIDEgMS41IDB2My42OWwuNzItLjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIgMmEuNzUuNzUgMCAwIDEtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwuNzIuNzJ2LTMuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uUm90YXRlOTBSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvblJvdGF0ZTkwUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDYuNWEuNS41IDAgMCAwLS4zMi0uNDdsLTgtM2EuNS41IDAgMSAwLS4zNi45NGwyLjY4IDF2My4wNmwtMi42OCAxYS41LjUgMCAwIDAgLjM2Ljk0bDgtM0EuNS41IDAgMCAwIDE3IDYuNVptLTEuOTIgMEwxMiA3LjY1di0yLjNsMy4wOCAxLjE1Wk01IDMuNWEuNS41IDAgMCAxIDEgMHYxMS44bDEuMTUtMS4xNWEuNS41IDAgMSAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS4zNS4xNS41LjUgMCAwIDEtLjM1LS4xNWwtMi0yYS41LjUgMCAxIDEgLjctLjdMNSAxNS4yOVYzLjVabTggN2EuNS41IDAgMCAxIDEgMHY0LjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdMMTMgMTUuMjlWMTAuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Sb3RhdGU5MFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RGlyZWN0aW9uUm90YXRlOTBSdGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgMTMuNWMwIC4zLS4xOS41OC0uNDcuN2wtNy41IDNhLjc1Ljc1IDAgMCAxLS41Ni0xLjRsMi4wMy0uOHYtM2wtMi4wMy0uOGEuNzUuNzUgMCAwIDEgLjU2LTEuNGw3LjUgM2MuMjguMTIuNDcuNC40Ny43Wm0tMi43NyAwTDEyIDEyLjZ2MS44bDIuMjMtLjlaTTUgMTYuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTZsLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTItMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw1IDUuNTZ2MTAuNjlabTgtN2EuNzUuNzUgMCAwIDAgMS41IDBWNS41NmwuNzIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi0yYS43NS43NSAwIDAgMC0xLjA2IDBsLTIgMmEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bC43Mi0uNzJ2My42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHREaXJlY3Rpb25Sb3RhdGU5MFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvblJvdGF0ZTkwUnRsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyAxMy41YzAgLjItLjEzLjQtLjMyLjQ3bC04IDNhLjUuNSAwIDEgMS0uMzYtLjk0bDIuNjgtMXYtMy4wNmwtMi42OC0xYS41LjUgMCAxIDEgLjM2LS45NGw4IDNjLjIuMDcuMzIuMjYuMzIuNDdabS0xLjkyIDBMMTIgMTIuMzV2Mi4zbDMuMDgtMS4xNVpNNSAxNi41YS41LjUgMCAxIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yQS41LjUgMCAwIDAgNS41IDNhLjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMSAwIC43LjdMNSA0LjcxVjE2LjVabTgtN2EuNS41IDAgMCAwIDEgMFY0LjdsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMCAwIC43LjdMMTMgNC43MVY5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uVmVydGljYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dERpcmVjdGlvblZlcnRpY2FsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgMy43NWEuNzUuNzUgMCAwIDEgMS41IDB2MTAuNjlsLjcyLS43MmEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0yIDJjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwuNzIuNzJWMy43NVptOCA5YS43NS43NSAwIDAgMSAxLjUgMHYxLjY5bC43Mi0uNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMiAyYS43NS43NSAwIDAgMS0xLjA2IDBsLTItMmEuNzYuNzYgMCAwIDEgMC0xLjA3Yy4zLS4zLjc3LS4yOCAxLjA2LjAxbC43Mi43MnYtMS42OVpNMTMuNSAzYy4zIDAgLjU4LjE5LjcuNDdsMyA3LjVhLjc1Ljc1IDAgMCAxLTEuNC41NkwxNSA5LjVoLTNsLS44IDIuMDNhLjc1Ljc1IDAgMCAxLTEuNC0uNTZsMy03LjVhLjc1Ljc1IDAgMCAxIC43LS40N1ptMCAyLjc3TDEyLjYgOGgxLjhsLS45LTIuMjNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RGlyZWN0aW9uVmVydGljYWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHREaXJlY3Rpb25WZXJ0aWNhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzLjVhLjUuNSAwIDAgMSAxIDB2MTEuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy43bC0yIDJhLjUuNSAwIDAgMS0uMzUuMTUuNS41IDAgMCAxLS4zNS0uMTVsLTItMmEuNS41IDAgMCAxIC43LS43TDUgMTUuMjlWMy41Wm04IDlhLjUuNSAwIDAgMSAxIDB2Mi44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43TDEzIDE1LjI5VjEyLjVabS41LTkuNWEuNS41IDAgMCAwLS40Ny4zMmwtMyA4YS41LjUgMCAwIDAgLjk0LjM2bDEtMi42OGgzLjA2bDEgMi42OGEuNS41IDAgMCAwIC45NC0uMzZsLTMtOEEuNS41IDAgMCAwIDEzLjUgM1ptMCAxLjkyTDE0LjY1IDhoLTIuM2wxLjE1LTMuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RWRpdFN0eWxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRFZGl0U3R5bGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQuMDkgNi43YTIuMjYgMi4yNiAwIDAgMSAzLjA3LS4xMmwuMTMuMTIuMTIuMTNjLjczLjg1LjczIDIuMSAwIDIuOTZsLS4xMi4xMy02Ljg3IDYuOWExLjUgMS41IDAgMCAxLS41NS4zNWwtLjE2LjA1LTMuMDguNzZhLjUuNSAwIDAgMS0uNjItLjUzbC4wMS0uMDguOC0zLjA3Yy4wNS0uMjEuMTUtLjQuMjgtLjU3bC4xLS4xMiA2Ljg5LTYuOVpNNi40MiAyLjIzbC4wNS4wOCAyLjk4IDcuNjMtLjc3Ljc4TDggOUg0bC0xLjAzIDIuNjhhLjUuNSAwIDAgMS0uNTYuM2wtLjEtLjAyYS41LjUgMCAwIDEtLjMtLjU2bC4wMi0uMDggMy41LTlhLjUuNSAwIDAgMSAuOS0uMVpNNiAzLjg3IDQuNCA4SDcuNmwtMS42LTQuMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RWRpdFN0eWxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RWRpdFN0eWxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC4wOSA2LjdhMi4yNiAyLjI2IDAgMCAxIDMuMDctLjEybC4xMy4xMi4xMi4xM2MuNzMuODUuNzMgMi4xIDAgMi45NmwtLjEyLjEzLTYuODcgNi45YTEuNSAxLjUgMCAwIDEtLjU1LjM1bC0uMTYuMDUtMy4wOC43NmEuNS41IDAgMCAxLS42Mi0uNTNsLjAxLS4wOC44LTMuMDdjLjA1LS4yMS4xNS0uNC4yOC0uNTdsLjEtLjEyIDYuODktNi45Wm0yLjUuN2ExLjI2IDEuMjYgMCAwIDAtMS43LS4wOGwtLjEuMDktNi44OCA2LjlhLjUuNSAwIDAgMC0uMS4xNWwtLjAzLjA4LS41OCAyLjI3IDIuMjctLjU2YS41LjUgMCAwIDAgLjEyLS4wNWwuMDUtLjAzLjA3LS4wNiA2Ljg3LTYuOWMuNS0uNS41LTEuMyAwLTEuOFpNNi40MSAyLjI0bC4wNS4wOCAyLjk4IDcuNjMtLjc3Ljc4TDggOUg0bC0xLjAzIDIuNjhhLjUuNSAwIDAgMS0uNTYuM2wtLjEtLjAyYS41LjUgMCAwIDEtLjMtLjU2bC4wMi0uMDggMy41LTlhLjUuNSAwIDAgMSAuOS0uMVpNNiAzLjg3IDQuNCA4SDcuNmwtMS42LTQuMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RWZmZWN0c0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RWZmZWN0c0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4wOSAzLjlhMi4yNSAyLjI1IDAgMCAwLTQuMTggMEw0LjkgMTEuMzdhMi4yIDIuMiAwIDAgMC0uMDQuMWwtMS4yIDIuOTVhMi4yNSAyLjI1IDAgMCAwIDQuMTggMS42OGwuNjQtMS41OWgzLjA0bC42NCAxLjZhMi4yNSAyLjI1IDAgMSAwIDQuMTgtMS43bC0xLjItMi45NWEyLjI3IDIuMjcgMCAwIDAtLjA0LS4xTDEyLjEgMy45MlptLTEuNC41NyAzLjA0IDcuNDh2LjAzbDEuMjIgMi45OWEuNzUuNzUgMCAwIDEtMS40LjU2TDEyLjU0IDEzSDcuNDdsLTEuMDIgMi41M2EuNzUuNzUgMCAwIDEtMS40LS41NmwxLjIxLTIuOTkuMDItLjAzTDkuMyA0LjQ3YS43NS43NSAwIDAgMSAxLjM5IDBabTEuMjMgNy4wM0g4LjA4TDEwIDYuNzVsMS45MiA0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEVmZmVjdHNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRFZmZlY3RzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS42MiA0LjFhMS43NSAxLjc1IDAgMCAwLTMuMjQgMGwtMy4wMiA3LjQ2LS4wMy4wNy0xLjIgMi45NmExLjc1IDEuNzUgMCAwIDAgMy4yNCAxLjMyTDguMTQgMTRoMy43MmwuNzcgMS45YTEuNzUgMS43NSAwIDAgMCAzLjI0LTEuM2wtMS4yLTIuOTdhMS43MyAxLjczIDAgMCAwLS4wMy0uMDdsLTMuMDItNy40N1ptLTEuMTggNi40TDEwIDkuNDFsLS40NCAxLjA5aC44OFptLjI2LTYuMDMgMy4wMyA3LjQ4di4wM2wxLjIyIDIuOTlhLjc1Ljc1IDAgMCAxLTEuNC41NkwxMi41NCAxM0g3LjQ3bC0xLjAyIDIuNTNhLjc1Ljc1IDAgMCAxLTEuNC0uNTZsMS4yMS0yLjk5LjAyLS4wM0w5LjMgNC40N2EuNzUuNzUgMCAwIDEgMS4zOSAwWm0xLjIyIDcuMDNIOC4wOEwxMCA2Ljc1bDEuOTIgNC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRFZmZlY3RzU3BhcmtsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RWZmZWN0c1NwYXJrbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJtMTMuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJabS05LjQ3LTUuNmMtLjYyLjItMS4xNC42Ny0xLjQgMS4zTDQuOSAxMS4zNmwtLjA0LjEtMS4yIDIuOTVhMi4yNSAyLjI1IDAgMCAwIDQuMTggMS42OGwuNjQtMS41OWgzLjA0bC42NCAxLjZhMi4yNSAyLjI1IDAgMCAwIDQuMTgtMS43bC0xLjItMi45NWEyLjI3IDIuMjcgMCAwIDAtLjA0LS4xbC0uNTctMS40LS42NC0uMjFjLS4yNy0uMS0uNDktLjI2LS42NS0uNDhhMS4zIDEuMyAwIDAgMS0uMTMtMS4yOWMtLjUzLS4xMS0uOTctLjQzLTEuMzQtLjg1bDEuOTYgNC44M3YuMDNsMS4yMiAyLjk5YS43NS43NSAwIDAgMS0xLjQuNTZMMTIuNTQgMTNINy40N2wtMS4wMiAyLjUzYS43NS43NSAwIDAgMS0xLjQtLjU2bDEuMjEtMi45OS4wMi0uMDNMOS4zIDQuNDdsLjAyLS4wNkExLjQgMS40IDAgMCAxIDkgMy41YTEuNCAxLjQgMCAwIDEgLjMxLS45Wk04LjA4IDExLjVoMy44NEwxMCA2Ljc1IDguMDggMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRFZmZlY3RzU3BhcmtsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEVmZmVjdHNTcGFya2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIm0xMy44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNOC4zOCA0LjFjLjEzLS4zMi4zNS0uNi42My0uNzhhMS40NiAxLjQ2IDAgMCAwIC4yNSAxbC4wNy4xYS43Ni43NiAwIDAgMC0uMDIuMDZsLTMuMDMgNy40OC0uMDIuMDMtMS4yIDIuOTlhLjc1Ljc1IDAgMCAwIDEuMzkuNTZMNy40NyAxM2g1LjA2bDEuMDMgMi41M2EuNzUuNzUgMCAwIDAgMS4zOS0uNTZsLTEuMjEtMi45OS0uMDItLjAzLTEuOTUtNC44M2MuMzcuNDIuOC43NCAxLjM1Ljg1YTEuMyAxLjMgMCAwIDAgLjc3IDEuNzdoLjAybC43MyAxLjgyLjAzLjA3IDEuMiAyLjk2YTEuNzUgMS43NSAwIDAgMS0zLjI0IDEuMzJMMTEuODYgMTRIOC4xNGwtLjc3IDEuOWExLjc1IDEuNzUgMCAxIDEtMy4yNC0xLjNsMS4yLTIuOTcuMDMtLjA3IDMuMDItNy40N1ptMy41NCA3LjQxSDguMDhMMTAgNi43NWwxLjkyIDQuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0RXhwYW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRFeHBhbmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC43NSAzLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEyLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNzVaTTQgMTYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm03LTRjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAtNGMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNS41IDE0YTMuNSAzLjUgMCAxIDAgMC03IDMuNSAzLjUgMCAwIDAgMCA3Wk02IDguNVYxMGgxLjVhLjUuNSAwIDAgMSAwIDFINnYxLjVhLjUuNSAwIDAgMS0xIDBWMTFIMy41YS41LjUgMCAwIDEgMC0xSDVWOC41YS41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEV4cGFuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEV4cGFuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0LjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptMCAxMmMwLS4yOC4yMi0uNS41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxLS41LS41Wm02LTRjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabTAtNGMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDE0YTMuNSAzLjUgMCAxIDEgMC03IDMuNSAzLjUgMCAwIDEgMCA3Wk02IDguNWEuNS41IDAgMCAwLTEgMFYxMEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTFoMS41YS41LjUgMCAwIDAgMC0xSDZWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEZpZWxkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRGaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWNlptNC0uNXYxYS41LjUgMCAwIDAgMSAwVjZoMi41djhIOWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0uNVY2SDEzdi41YS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEZpZWxkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0RmllbGRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgNkgxM3YuNWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwVjZoMi41djhIOWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0uNVY2Wk0yIDZhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Rmlyc3RMaW5lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRGaXJzdExpbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTUuNzIgMi4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0uOTcuOTcuOTcuOTdhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtMS41LTEuNWEuNzUuNzUgMCAwIDEgMC0xLjA2bDEuNS0xLjVaTTMuNzUgMy41aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTEyLjUgMTBhLjc1Ljc1IDAgMCAxIDAgMS41SDMuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDEyLjVaTTMuNzUgMTBoMTIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Rmlyc3RMaW5lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Rmlyc3RMaW5lUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi42NSAzLjE1YS41LjUgMCAwIDEgLjcuN0wxNi4yMSA1bDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVaTTEyLjUgNGEuNS41IDAgMCAxIDAgMWgtMTBhLjUuNSAwIDAgMSAwLTFoMTBabTUgMTBhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wm0uNS00LjVhLjUuNSAwIDAgMC0uNS0uNWgtMTVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRGb250RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRGb250RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMmMuMzEgMCAuNTkuMi43LjQ4bDIuMjcgNS45NC4wNS4xMy4wMy4xLS43OSAyLjEyLS40OC0xLjI3SDQuMjJsLS43NyAyLjAyYS43NS43NSAwIDAgMS0xLjQtLjUzbDMuMjUtOC41QS43NS43NSAwIDAgMSA2IDJaTTQuOCA4aDIuNEw2IDQuODUgNC44IDhabTcuOS0yLjUxYS43NS43NSAwIDAgMC0xLjQgMEw3LjIgMTYuNWgtLjQ0YS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMSAwIDAtMS41aC0uNDdsLjc1LTJoNC45MmwuNzUgMmgtLjQ2YS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNDRMMTIuNyA1LjQ5Wm0xLjIgNy41aC0zLjhMMTIgNy45bDEuOSA1LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Rm9udFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEZvbnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMmMuMiAwIC40LjEzLjQ3LjMyTDguOSA4LjU3di4wMmwuMTguNDQtLjUzIDEuNC0uNDYtMS4xN0gzLjkxbC0uOTQgMi40MmEuNS41IDAgMSAxLS45NC0uMzZMMy4xIDguNTl2LS4wMmwyLjQzLTYuMjVBLjUuNSAwIDAgMSA2IDJaTTQuMyA4LjI2aDMuNEw2IDMuODggNC4zIDguMjZabTguMTctMi45NGEuNS41IDAgMCAwLS45NCAwTDcuMTUgMTdINi41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLS4yOGwxLjEzLTNoNS4zN2wxLjE1IDNoLS4zN2EuNS41IDAgMSAwIDAgMWgyYS41LjUgMCAxIDAgMC0xaC0uNTZMMTIuNDcgNS4zMlpNMTQuMzQgMTNIOS43MmwyLjI5LTYuMDlMMTQuMzQgMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Rm9udEluZm9GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEZvbnRJbmZvRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguMiAzLjc1YS43NS43NSAwIDAgMC0xLjQyLS4wMkwyLjggMTQuMjNhLjc1Ljc1IDAgMSAwIDEuNC41NGwuODYtMi4yN0g4LjFjLjEtLjUzLjI3LTEuMDMuNTEtMS41SDUuNjNsMS44Mi00LjggMS40OCA0LjI0Yy4zMi0uNDcuNy0uOSAxLjE1LTEuMjVMOC4yIDMuNzVabTUuMyA3LjEzYS42Mi42MiAwIDEgMCAwIDEuMjQuNjIuNjIgMCAwIDAgMC0xLjI0Wm0wIDUuMTJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYyYzAgLjI4LjIyLjUuNS41Wm0wLTdhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlabTAgOGEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRGb250SW5mb1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEZvbnRJbmZvUmVndWxhcicsIFwiMWVtXCIsIFtcIk03Ljk2IDMuODRhLjUuNSAwIDAgMC0uOTQtLjAyTDQuMjkgMTFoLS4wMnYuMDVsLTEuMjQgMy4yN2EuNS41IDAgMCAwIC45NC4zNkw0Ljk4IDEyaDMuMjNjLjEtLjM1LjIzLS42OC4zOS0xSDUuMzZsMi4xLTUuNTQgMS42NSA0LjczYy4yMy0uMy40OC0uNTguNzctLjgzTDcuOTYgMy44NFptNS41NCA3LjA0YS42Mi42MiAwIDEgMCAwIDEuMjQuNjIuNjIgMCAwIDAgMC0xLjI0Wm0wIDUuMTJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYyYzAgLjI4LjIyLjUuNS41Wm0wLTdhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlabTAgOGEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRGb250U2l6ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Rm9udFNpemVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMgM2MuMzIgMCAuNi4yLjcuNWw0LjI2IDEyLjI1YS43NS43NSAwIDAgMS0xLjQyLjVsLTEuMy0zLjc1aC00LjY2TDkuMiAxNi4yNmEuNzUuNzUgMCAwIDEtMS40LjAxTDYuOTIgMTRINC4yNmwtLjggMi4yNWEuNzUuNzUgMCAwIDEtMS40Mi0uNUw0LjggOGEuNzUuNzUgMCAwIDEgMS40MS0uMDJsMi4yOCA1LjlMMTIuMyAzLjQ4Yy4xLS4zLjM5LS41LjctLjQ5Wk00LjggMTIuNWgxLjU1bC0uOC0yLjEtLjc1IDIuMVptOC4xOS02LjUyTDExLjE0IDExaDMuNThsLTEuNzQtNS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRGb250U2l6ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEZvbnRTaXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMyAzLjVjLjIgMCAuNC4xMy40Ny4zMmwzIDh2LjAybDEuNSAzLjk4YS41LjUgMCAxIDEtLjk0LjM2bC0xLjM4LTMuNjhoLTUuM2wtMS4zOCAzLjY4YS41LjUgMCAwIDEtLjkzIDBMNi45NiAxMy41SDQuMDRsLTEuMDggMi42OWEuNS41IDAgMSAxLS45Mi0uMzhsMS4yLTIuOTh2LS4wM2wxLjgtNC40OWEuNS41IDAgMCAxIC45MiAwbDEuOCA0LjV2LjAybC43MyAxLjc5IDEuMDQtMi43OHYtLjAzbDMtNy45OUEuNS41IDAgMCAxIDEzIDMuNVptLTIuMjggOGg0LjU2TDEzIDUuNDJsLTIuMjggNi4wOFptLTQuMTYgMUw1LjUgOS44NSA0LjQ0IDEyLjVoMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRGb290bm90ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Rm9vdG5vdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMyAzYy40LjAzLjcuMzUuNy43NXY1LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjYuMTFsLS4zMS4yM2EuNzUuNzUgMCAwIDEtLjgzLTEuMjUgMi44NCAyLjg0IDAgMCAwIDEuMTYtMS41Ljc1Ljc1IDAgMCAxIC43OS0uNTlabS03LjEgMTIuMDdhLjc5Ljc5IDAgMCAxLS4yLS41NVY2LjYxYzAtLjIyLjA3LS40Mi4yMS0uNThhLjc2Ljc2IDAgMCAxIC41Ny0uMjRjLjIyIDAgLjQxLjA4LjU2LjI0LjE1LjE2LjIyLjM2LjIyLjU4djIuMzVhMi42IDIuNiAwIDAgMSAxLjgtLjcxYy44OCAwIDEuNi4zMiAyLjEzLjk4LjU0LjY1LjggMS41LjggMi41NCAwIDEuMDMtLjI2IDEuODktLjggMi41NC0uNTQuNjYtMS4yNi45OC0yLjE0Ljk4YTIuNSAyLjUgMCAwIDEtMS44NC0uNzIuNzQuNzQgMCAwIDEtLjc3LjcyYy0uMiAwLS40LS4wNi0uNTQtLjIyWm0xLjgtMS43NmMuMy4zNy42OC41NSAxLjE0LjU1LjQ5IDAgLjg2LS4xOCAxLjEzLS41My4yOC0uMzYuNDMtLjg4LjQzLTEuNTZzLS4xNS0xLjItLjQzLTEuNTZhMS4zMyAxLjMzIDAgMCAwLTEuMTMtLjU0Yy0uNDYgMC0uODMuMTktMS4xMy41Ni0uMy4zOC0uNDYuODgtLjQ2IDEuNTRzLjE2IDEuMTYuNDYgMS41NFptLTEwLjI1IDEuMmMwIC4yMi4wOC40LjI0LjU0SDJjLjE2LjE0LjM2LjIuNTcuMmEuOC44IDAgMCAwIC41LS4xNmMuMTQtLjEuMjMtLjI1LjMtLjQzbC43NC0yLjAyaDMuMjdsLjc2IDIuMDJhLjguOCAwIDAgMCAuOC41OWMuMiAwIC40LS4wNi41Ni0uMmEuNjkuNjkgMCAwIDAgLjI1LS41M2MwLS4xMy0uMDMtLjI2LS4wOS0uNEw2LjcxIDYuNDRhMS4xIDEuMSAwIDAgMC0uMzYtLjUxLjk3Ljk3IDAgMCAwLS41OS0uMThjLS4yMiAwLS40My4wNi0uNi4xOC0uMTguMTItLjMuMy0uMzguNTFsLTIuOTQgNy42OGMtLjA2LjE0LS4wOS4yNy0uMDkuNFptNS4xMy0zLjNINC42MmwxLjEzLTMuMSAxLjEzIDMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRGb290bm90ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEZvb3Rub3RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOCAzLjVhLjUuNSAwIDAgMC0xIDBjMCAuNDctLjEuODQtLjMgMS4xNy0uMi4zMy0uNTIuNjUtLjk5Ljk3YS41LjUgMCAxIDAgLjU4LjgzYy4yNi0uMTkuNS0uMzguNzEtLjU5VjkuNWEuNS41IDAgMCAwIDEgMHYtNlptLTcuNSAxMS41NGEuNS41IDAgMCAwIC4zNi0uMTQuNS41IDAgMCAwIC4xNS0uMzh2LS42NmguMDJhMi4zIDIuMyAwIDAgMCAyLjA3IDEuMThjLjggMCAxLjQ2LS4zIDEuOTUtLjg5LjUtLjYuNzQtMS4zOS43NC0yLjM4IDAtMS0uMjUtMS43OS0uNzQtMi4zOC0uNDktLjYtMS4xNC0uOS0xLjkzLS45YTIuMjMgMi4yMyAwIDAgMC0yLjAzIDEuMTdoLS4wM1Y2LjYxYzAtLjE3LS4wNS0uMy0uMTUtLjQxYS40OS40OSAwIDAgMC0uMzgtLjE2LjUxLjUxIDAgMCAwLS4zOC4xNmMtLjEuMS0uMTUuMjQtLjE1LjR2Ny45MmMwIC4xNi4wNC4yOC4xMy4zOC4xLjEuMjEuMTQuMzYuMTRabTMuNzItMS41NmMtLjMzLjQyLS43Ny42My0xLjMzLjYzLS41NCAwLS45OC0uMjEtMS4zMy0uNjQtLjM0LS40My0uNS0xLS41LTEuN3MuMTYtMS4yNi41LTEuN2MuMzUtLjQzLjgtLjY1IDEuMzMtLjY1LjU2IDAgMSAuMjIgMS4zMy42NC4zMi40Mi40OC45OS40OCAxLjcgMCAuNzMtLjE2IDEuMy0uNDggMS43MlpNMi4xNiAxNC44N2MuMS4wOS4yNS4xMy40MS4xMy4yNyAwIC40Ni0uMTQuNTYtLjQybC44LTIuMmgzLjYzbC44MSAyLjJjLjEuMjguMjkuNDIuNTYuNDJhLjYuNiAwIDAgMCAuNC0uMTNjLjEyLS4xLjE3LS4yMS4xNy0uMzVhLjkuOSAwIDAgMC0uMDctLjNsLTIuOTUtNy43QzYuMzQgNi4xOSA2LjExIDYgNS43NiA2Yy0uMzYgMC0uNjEuMTgtLjc1LjUzbC0yLjk0IDcuNjhhLjkuOSAwIDAgMC0uMDcuM2MwIC4xNS4wNS4yNi4xNi4zNlptNS4wNy0zLjQySDQuMjdsMS40Ni00LjAyaC4wNGwxLjQ2IDQuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hckFycm93TGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0R3JhbW1hckFycm93TGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVabTAgM2EuNzUuNzUgMCAwIDAgMCAxLjVoLjQ2YTUuNDggNS40OCAwIDAgMSA0LjU4IDBoOS40NmEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVptMTQuNSA3LjVoLTYuMzRhNS41MyA1LjUzIDAgMCAwIC4wNy0xLjVoNi4yN2EuNzUuNzUgMCAwIDEgMCAxLjVabTAtM2gtNi42MmE1LjUgNS41IDAgMCAwLS44OS0xLjVoNy41MWEuNzUuNzUgMCAwIDEgMCAxLjVabS03LjI1IDJhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LjE1LTIuMzVhLjUuNSAwIDAgMC0uNy43TDYuMjkgMTRIMy41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJBLjUuNSAwIDAgMCA4IDE0LjVhLjUuNSAwIDAgMC0uMTQtLjM1bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hckFycm93TGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJBcnJvd0xlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA1YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVptMCAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVptNy4yNCAzYy4yNi4zLjQ4LjY0LjY2IDFoNy4xYS41LjUgMCAwIDAgMC0xSDkuNzRaTTExIDE0LjVjMCAuMTcgMCAuMzQtLjAyLjVoNi41MmEuNS41IDAgMCAwIDAtMWgtNi41MmwuMDIuNVptLTEgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuMTUtMi4zNWEuNS41IDAgMCAwLS43LjdMNi4yOSAxNEgzLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMkEuNS41IDAgMCAwIDggMTQuNWEuNS41IDAgMCAwLS4xNC0uMzVsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRHcmFtbWFyQXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0R3JhbW1hckFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDEwYTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wm0tMi4zNSA0Ljg1QS41LjUgMCAwIDEgMyAxNC41YS41LjUgMCAwIDEgLjE1LS4zNWwyLTJhLjUuNSAwIDAgMSAuNy43TDQuNzEgMTRINy41YS41LjUgMCAwIDEgMCAxSDQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJaTTIgNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNS43NVptMCAzYzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVINy43OWE1LjQ4IDUuNDggMCAwIDAtNC41OCAwaC0uNDZBLjc1Ljc1IDAgMCAxIDIgOC43NVptOC45IDYuNzVoNi4zNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTYuMjdhNS41OSA1LjU5IDAgMCAxLS4wNyAxLjVabS0uMjctM2g2LjYyYS43NS43NSAwIDAgMCAwLTEuNWgtNy41Yy4zNi40NS42Ni45NS44OCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hckFycm93UmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRHcmFtbWFyQXJyb3dSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm0wIDNhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm03LjI0IDNjLjI2LjMuNDguNjQuNjYgMWg3LjFhLjUuNSAwIDAgMCAwLTFIOS43NFpNMTEgMTQuNWMwIC4xNyAwIC4zNC0uMDIuNWg2LjUyYS41LjUgMCAwIDAgMC0xaC02LjUybC4wMi41Wm0tMTAgMGE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFptNC4xNSAyLjM1YS41LjUgMCAwIDAgLjctLjdMNC43MSAxNUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNC4zNWwyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hckNoZWNrbWFya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0R3JhbW1hckNoZWNrbWFya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA1Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTAgM2EuNzUuNzUgMCAwIDAtLjc1LS43NUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg5LjQ2YTUuNDggNS40OCAwIDAgMSA0LjU4IDBoLjQ2Yy40MSAwIC43NS0uMzQuNzUtLjc1Wk05LjAyIDE0YTUuNTcgNS41NyAwIDAgMCAuMDcgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDYuMjdabTEuMjQtM2E1LjUgNS41IDAgMCAwLS44OSAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoNy41Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDAtOSAwIDQuNSA0LjUgMCAwIDAgOSAwWm0tMi41LTJhLjUuNSAwIDAgMSAuNzUuNjZsLS4wNi4wNi0zLjUxIDMuNjVhLjUuNSAwIDAgMS0uNjcuMDJsLS4wNy0uMDctMS4zNC0xLjY1YS41LjUgMCAwIDEgLjcyLS43bC4wNi4wNyAxIDEuMjMgMy4xMi0zLjI3WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEdyYW1tYXJDaGVja21hcmtSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRHcmFtbWFyQ2hlY2ttYXJrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy41IDVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wm0wIDNhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wk05IDE0LjVjMC0uMTcgMC0uMzQuMDItLjVIMi41YS41LjUgMCAwIDAgMCAxaDYuNTJhNS41NyA1LjU3IDAgMCAxLS4wMi0uNVptLjYtMi41Yy4xOC0uMzYuNC0uNy42Ni0xSDIuNWEuNS41IDAgMCAwIDAgMWg3LjFabTQuOS0yYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0tMS4xMiA1Ljc3LTEtMS4yMy0uMDYtLjA2YS41LjUgMCAwIDAtLjcyLjdsMS4zNCAxLjY0LjA3LjA3Yy4yLjE2LjQ4LjE1LjY3LS4wMmwzLjUtMy42NS4wNy0uMDZhLjUuNSAwIDAgMC0uNzUtLjY2bC0zLjEyIDMuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hckRpc21pc3NGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJEaXNtaXNzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4IDUuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVIMi43NWEuNzUuNzUgMCAxIDAgMCAxLjVoMTQuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVptMCAzYS43NS43NSAwIDAgMC0uNzUtLjc1SDIuNzVhLjc1Ljc1IDAgMSAwIDAgMS41aDkuNDZhNS40OCA1LjQ4IDAgMCAxIDQuNTggMGguNDZjLjQxIDAgLjc1LS4zNC43NS0uNzVaTTkuMSAxNS41SDIuNzRhLjc1Ljc1IDAgMCAxIDAtMS41aDYuMjdhNS41NyA1LjU3IDAgMCAwIC4wNyAxLjVabS4yNy0zSDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDcuNWE1LjUgNS41IDAgMCAwLS44OCAxLjVabTkuNjMgMmE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuNS43IDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRHcmFtbWFyRGlzbWlzc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJEaXNtaXNzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy41IDVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wm0wIDNhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDE1Wm0tNy4yNCAzYy0uMjYuMy0uNDguNjQtLjY2IDFIMi41YS41LjUgMCAwIDEgMC0xaDcuNzZaTTkgMTQuNWMwIC4xNyAwIC4zNC4wMi41SDIuNWEuNS41IDAgMCAxIDAtMWg2LjUybC0uMDIuNVptNS41IDQuNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS4xNS0yLjY1LTEuMTUtMS4xNC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN2wxLjE0LTEuMTUtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGEuNS41IDAgMCAxIC43LjdsLTEuMTQgMS4xNSAxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEdyYW1tYXJFcnJvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0R3JhbW1hckVycm9yRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVptMCAzYS43NS43NSAwIDAgMCAwIDEuNWg5LjQ2YTUuNDggNS40OCAwIDAgMSA0LjU4IDBoLjQ2YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0wIDNoNy41YTUuNSA1LjUgMCAwIDAtLjg4IDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVptMCAzaDYuMjdhNS41NyA1LjU3IDAgMCAwIC4wNyAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVabTE2LjI1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEdyYW1tYXJFcnJvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJFcnJvclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm0wIDNhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wk05IDE0LjVjMC0uMTcgMC0uMzQuMDItLjVIMi41YS41LjUgMCAwIDAgMCAxaDYuNTJhNS41NyA1LjU3IDAgMCAxLS4wMi0uNVptLjYtMi41Yy4xOC0uMzYuNC0uNy42Ni0xSDIuNWEuNS41IDAgMCAwIDAgMWg3LjFabTkuNCAyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEdyYW1tYXJMaWdodG5pbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJMaWdodG5pbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA1Ljc1Wm0wIDNjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC44M2MtLjYgMC0xLjE1LjM2LTEuMzguOTJsLS4yNC41OEgyLjc1QS43NS43NSAwIDAgMSAyIDguNzVaTTEwLjA5IDE0YTEuNSAxLjUgMCAwIDAgLjMgMS41SDIuNzRhLjc1Ljc1IDAgMCAxIDAtMS41aDcuMzRabS42Mi0xLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoOC41OGwtLjYyIDEuNVptLjggMi41aDEuNzRsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ3YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEdyYW1tYXJMaWdodG5pbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRHcmFtbWFyTGlnaHRuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDUuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWgxMS4wOGMtLjYgMC0xLjE1LjM2LTEuMzguOTJsLS4wMy4wOEgyLjVhLjUuNSAwIDAgMS0uNS0uNVptOC4wOSA1LjVjLS4xMi4zNC0uMTEuNyAwIDFIMi41YS41LjUgMCAwIDEgMC0xaDcuNTlabS44My0ySDIuNWEuNS41IDAgMCAxIDAtMWg4LjgzbC0uNDEgMVptLjU4IDNoMS43NWwtLjU5IDIuMzZjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLTEuMWwuNzgtMi4zNGEuNS41IDAgMCAwLS40Ny0uNjZoLTMuNDdhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hclNldHRpbmdzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRHcmFtbWFyU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTggNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUgyLjc1YS43NS43NSAwIDEgMCAwIDEuNWgxNC41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm0wIDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVIMi43NWEuNzUuNzUgMCAxIDAgMCAxLjVoOS40NmE1LjQ4IDUuNDggMCAwIDEgNC41OCAwaC40NmMuNDEgMCAuNzUtLjM0Ljc1LS43NVpNMi43NSAxMWg3LjVhNS41IDUuNSAwIDAgMC0uODggMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wIDNoNi4yN2E1LjU3IDUuNTcgMCAwIDAgLjA3IDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVptOS4zMi0yLjU2YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEdyYW1tYXJTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJTZXR0aW5nc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTggNS41YS41LjUgMCAwIDAtLjUtLjVoLTE1YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgLjUtLjVabTAgM2EuNS41IDAgMCAwLS41LS41aC0xNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIC41LS41Wm0tOSA2YzAgLjE3IDAgLjM0LjAyLjVIMi41YS41LjUgMCAwIDEgMC0xaDYuNTJsLS4wMi41Wm0xLjI2LTMuNWMtLjI2LjMtLjQ4LjY0LS42NiAxSDIuNWEuNS41IDAgMCAxIDAtMWg3Ljc2Wm0xLjguNDRhMiAyIDAgMCAxLTEuNDIgMi40OGwtLjQ3LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDQgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hcldhbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEdyYW1tYXJXYW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgNC41YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0wIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVptMCAzYS43NS43NSAwIDAgMCAwIDEuNWg2LjYzYTEuNSAxLjUgMCAwIDEtLjI4LTEuNUgyLjc1Wm0wIDNoNi42M0w3Ljg4IDE1SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xNC41IDcuNDRhLjUuNSAwIDAgMC0xIDBsLS4xLjc5YTIuNSAyLjUgMCAwIDEtMi4xNyAyLjE4bC0uOC4xYS41LjUgMCAwIDAgMCAuOTlsLjguMWEyLjUgMi41IDAgMCAxIDIuMTggMi4xN2wuMS44YS41LjUgMCAwIDAgLjk5IDBsLjEtLjhhMi41IDIuNSAwIDAgMSAyLjE3LTIuMThsLjgtLjFhLjUuNSAwIDAgMCAwLS45OWwtLjgtLjFhMi41IDIuNSAwIDAgMS0yLjE4LTIuMTdsLS4xLS44Wm0tMi42NSA1LjdjLjIuMi4yLjUyIDAgLjcxbC00IDRhLjUuNSAwIDAgMS0uNy0uN2w0LTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0R3JhbW1hcldhbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRHcmFtbWFyV2FuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi41IDVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wm0wIDNhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVptMCAzYS41LjUgMCAwIDAgMCAxaDYuODhhMS41IDEuNSAwIDAgMS0uMzctLjk5VjExSDIuNVptMCAzaDYuMzhsLTEgMUgyLjVhLjUuNSAwIDAgMSAwLTFaTTE0IDdhLjUuNSAwIDAgMSAuNS40NGwuMS43OWEyLjUgMi41IDAgMCAwIDIuMTcgMi4xOGwuOC4xYS41LjUgMCAwIDEgMCAuOTlsLS44LjFhMi41IDIuNSAwIDAgMC0yLjE4IDIuMTdsLS4xLjhhLjUuNSAwIDAgMS0uOTkgMGwtLjEtLjhhMi41IDIuNSAwIDAgMC0yLjE3LTIuMThsLS44LS4xYS41LjUgMCAwIDEgMC0uOTlsLjgtLjFhMi41IDIuNSAwIDAgMCAyLjE4LTIuMTdsLjEtLjhBLjUuNSAwIDAgMSAxNCA3Wm0wIDIuNmEzLjUgMy41IDAgMCAxLTEuNCAxLjRjLjU5LjMyIDEuMDguODEgMS40IDEuNGEzLjUgMy41IDAgMCAxIDEuNC0xLjRBMy41IDMuNSAwIDAgMSAxNCA5LjZabS0yLjE1IDMuNTVjLjIuMi4yLjUgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjctLjdsNC00Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEhhbmdpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEhhbmdpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuMjUgMy41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxMi41Wm0tNSAxMGEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNy41Wk0xMiA5LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC03LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDcuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVptMy43MiAxLjQ3YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLS45Ny45Ny45Ny45N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0xLjUtMS41YS43NS43NSAwIDAgMSAwLTEuMDZsMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIYW5naW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGFuZ2luZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSA0YS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxIDAtMWgxM1ptLTQgMTBhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFoOVptLjUtNC41YS41LjUgMCAwIDAtLjUtLjVoLTlhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIC41LS41Wm0yLjE1IDIuMTUgMS41LTEuNWEuNS41IDAgMCAxIC43LjdMMTYuMjEgMTJsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyMUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyMUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi41NyAzLjgyYS43NC43NCAwIDAgMC0uOC4xLjc1Ljc1IDAgMCAwLS4yNi40MyA2LjUyIDYuNTIgMCAwIDEtMi42OCAzLjUzLjc1Ljc1IDAgMSAwIC44NCAxLjI0IDguNzcgOC43NyAwIDAgMCAxLjgzLTEuNjV2OC4wM2EuNzUuNzUgMCAwIDAgMS41IDBWNC41MmEuNzUuNzUgMCAwIDAtLjQzLS43Wk0zLjUgNC41YS43NS43NSAwIDEgMC0xLjUgMHYxMWEuNzUuNzUgMCAwIDAgMS41IDB2LTVoNXY1YS43NS43NSAwIDAgMCAxLjUgMHYtMTFhLjc1Ljc1IDAgMSAwLTEuNSAwVjloLTVWNC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEhlYWRlcjFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRIZWFkZXIxUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi41NSA0YS41LjUgMCAwIDEgLjQ1LjV2MTFhLjUuNSAwIDAgMS0xIDBWNi43M2E4LjU4IDguNTggMCAwIDEtMi4yMiAyLjE5LjUuNSAwIDEgMS0uNTYtLjg0IDYuNzYgNi43NiAwIDAgMCAyLjgzLTMuOC41LjUgMCAwIDEgLjUtLjI4Wk0yLjUgNGMuMjggMCAuNS4yMi41LjVWOWg2VjQuNWEuNS41IDAgMSAxIDEgMHYxMWEuNS41IDAgMCAxLTEgMFYxMEgzdjUuNWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIxTGluZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEhlYWRlcjFMaW5lc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA4LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1cy43NS0uMzQuNzUtLjc1di01LjVhLjc1Ljc1IDAgMCAwLS41OC0uNzMuNzMuNzMgMCAwIDAtLjg0LjM5IDIuOTYgMi45NiAwIDAgMS0xLjE3IDEuMTcuNzQuNzQgMCAwIDAtLjMzIDFjLjE5LjM4LjY0LjUzIDEuMDEuMzQuMDQtLjAyLjItLjEuNDEtLjI1djMuNThaTTIuNzUgMmMuNDEgMCAuNzUuMzQuNzUuNzV2Mmgydi0yYS43NS43NSAwIDEgMSAxLjUgMHY1LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yaC0ydjJhLjc1Ljc1IDAgMCAxLTEuNSAwdi01LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMiAxNi4yNWMwLS40Mi4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NS00Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEhlYWRlcjFMaW5lc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEhlYWRlcjFMaW5lc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAyLjVhLjUuNSAwIDEgMC0xIDB2NmEuNS41IDAgMCAwIDEgMFY2aDN2Mi41YS41LjUgMCAwIDAgMSAwdi02YS41LjUgMCAxIDAtMSAwVjVIM1YyLjVaTTEwLjYxIDJhLjUuNSAwIDAgMSAuMzkuNDl2NmEuNS41IDAgMCAxLTEgMFYzLjkxYTQuNTcgNC41NyAwIDAgMS0uNzYuNTNoLS4wMWEuNS41IDAgMCAxLS40NS0uODkgMS4yNSAxLjI1IDAgMCAwIC4xMi0uMDcgMy41IDMuNSAwIDAgMCAuODYtLjc1Yy4xMS0uMTQuMjEtLjI5LjMtLjQ1QS41LjUgMCAwIDEgMTAuNiAyWk0yIDE2LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMSAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVptLjUtNC41YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIxTGluZXNDYXJldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyMUxpbmVzQ2FyZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgOC4yNWMwIC40MS4zNC43NS43NS43NXMuNzUtLjM0Ljc1LS43NXYtNS41YS43NS43NSAwIDAgMC0uNTgtLjczLjczLjczIDAgMCAwLS44NC4zOSAyLjk2IDIuOTYgMCAwIDEtMS4xNyAxLjE3Ljc0Ljc0IDAgMCAwLS4zMyAxYy4xOS4zOC42NC41MyAxLjAxLjM0LjA0LS4wMi4yLS4xLjQxLS4yNXYzLjU4Wk0yLjc1IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djJoMnYtMmEuNzUuNzUgMCAxIDEgMS41IDB2NS41YS43NS43NSAwIDAgMS0xLjUgMHYtMmgtMnYyYS43NS43NSAwIDAgMS0xLjUgMHYtNS41YzAtLjQxLjM0LS43NS43NS0uNzVabTExLjMgMi40NmMuMS0uMjguMzUtLjQ2LjYyLS40NmgyLjY2Yy4yNyAwIC41Mi4xOC42Mi40Ni4xLjI4LjA1LjYtLjE1LjgybC0xLjMzIDEuNWMtLjI2LjMtLjY4LjMtLjk0IDBsLTEuMzMtMS41YS44Mi44MiAwIDAgMS0uMTUtLjgyWk0yIDE2LjI1YzAtLjQyLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLjc1LTQuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyMUxpbmVzQ2FyZXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRIZWFkZXIxTGluZXNDYXJldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAyLjVhLjUuNSAwIDEgMC0xIDB2NmEuNS41IDAgMCAwIDEgMFY2aDN2Mi41YS41LjUgMCAwIDAgMSAwdi02YS41LjUgMCAxIDAtMSAwVjVIM1YyLjVaTTEwLjYxIDJhLjUuNSAwIDAgMSAuMzkuNDl2NmEuNS41IDAgMCAxLTEgMFYzLjkxYTQuNTcgNC41NyAwIDAgMS0uNzYuNTNoLS4wMWEuNS41IDAgMCAxLS40NS0uODkgMS4yNSAxLjI1IDAgMCAwIC4xMi0uMDcgMy41IDMuNSAwIDAgMCAuODYtLjc1Yy4xMS0uMTQuMjEtLjI5LjMtLjQ1QS41LjUgMCAwIDEgMTAuNiAyWm0zLjQ0IDIuNDVjLjEtLjI4LjM1LS40Ni42Mi0uNDZoMi42NmMuMjcgMCAuNTIuMTguNjIuNDYuMS4yOC4wNS42LS4xNS44MmwtMS4zMyAxLjVjLS4yNi4zLS42OC4zLS45NCAwbC0xLjMzLTEuNWEuODIuODIgMCAwIDEtLjE1LS44MlpNMiAxNi41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDEgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabS41LTQuNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyMkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgNC41YS43NS43NSAwIDAgMC0xLjUgMHYxMWEuNzUuNzUgMCAwIDAgMS41IDB2LTVoNXY1YS43NS43NSAwIDAgMCAxLjUgMHYtMTFhLjc1Ljc1IDAgMCAwLTEuNSAwVjloLTVWNC41Wm0xMS4yNS43NUEyLjMgMi4zIDAgMCAwIDEyLjUgNy41YS43NS43NSAwIDAgMS0xLjUgMCAzLjggMy44IDAgMCAxIDMuNzUtMy43NWMxLjQgMCAyLjQ4LjggMi45NyAxLjkxLjUgMS4xMS40MSAyLjUtLjMzIDMuNzNhNi4xOCA2LjE4IDAgMCAxLTEuNTIgMS42bC0uODIuNjItLjA3LjA0Yy0uMy4yMi0uNTguNDMtLjg1LjY1LS45LjcyLTEuNTcgMS40NS0xLjggMi40NWg0LjkyYS43NS43NSAwIDAgMSAwIDEuNUgxMS41YS43NS43NSAwIDAgMS0uNzUtLjc1YzAtMi4xIDEuMjMtMy40IDIuNDQtNC4zN2wuOS0uNjkuMDctLjA0Ljc4LS41OWMuNTMtLjQyLjkzLS44IDEuMTctMS4yLjUtLjg1LjUyLTEuNzEuMjQtMi4zNGExLjY4IDEuNjggMCAwIDAtMS42LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEhlYWRlcjJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSA0Yy4yOCAwIC41LjIyLjUuNVY5aDZWNC41YS41LjUgMCAwIDEgMSAwdjExYS41LjUgMCAwIDEtMSAwVjEwSDN2NS41YS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wm0xMiAxQTIuNTQgMi41NCAwIDAgMCAxMiA3LjVhLjUuNSAwIDAgMS0xIDBDMTEgNS43NSAxMi40NSA0IDE0LjUgNGMxLjI0IDAgMi40LjU3IDMuMDUgMS41NC42NiAxIC43MSAyLjMzLS4xMiAzLjcyLS40Mi43LTEgMS4yNC0xLjYyIDEuNzEtLjMuMjQtLjYyLjQ2LS45Mi42N2wtLjE0LjFjLS4yNi4xOC0uNTIuMzUtLjc3LjU0LTEuMDEuNzUtMS43OCAxLjUxLTEuOTUgMi43Mmg1LjQ3YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjVjMC0yIDEuMTctMy4xMyAyLjQtNC4wMy4yNS0uMTkuNTItLjM4Ljc5LS41NmwuMTMtLjA5Yy4zLS4yMS42LS40Mi44OC0uNjQuNTctLjQzIDEuMDQtLjg5IDEuMzctMS40NC42Ny0xLjEuNTYtMi4wMi4xNC0yLjY1QTIuNjQgMi42NCAwIDAgMCAxNC41IDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyMkxpbmVzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRIZWFkZXIyTGluZXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNiAzLjNjLS40Mi0uMTYtLjk3LjA4LTEuMTcuNWEuNzUuNzUgMCAxIDEtMS4zNi0uNjMgMi40NyAyLjQ3IDAgMCAxIDMuMDYtMS4yNyAyLjMzIDIuMzMgMCAwIDEgMS4xNyAzLjQyYy0uMjYuNC0uNi43My0uOTQgMWEyMS41NCAyMS41NCAwIDAgMS0uOTcuOCA2LjQgNi40IDAgMCAwLS40NS4zOGgyLjMxYS43NS43NSAwIDAgMSAwIDEuNWgtMy41QS43NS43NSAwIDAgMSA4IDguMjVjMC0uNTUuMjItMSAuNS0xLjM3LjI2LS4zNi42MS0uNjcuOTQtLjkzbC40Mi0uMzRjLjE4LS4xNC4zNS0uMjcuNTMtLjQzLjMtLjI0LjUxLS40Ni42NS0uNjguMjUtLjM5LjA4LTEtLjQ0LTEuMlpNMiAxNi4yNWMwLS40Mi4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NS00Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0uNzUtOC43NWEuNzUuNzUgMCAxIDAtMS41IDB2NS41YS43NS43NSAwIDAgMCAxLjUgMHYtMmgydjJhLjc1Ljc1IDAgMCAwIDEuNSAwdi01LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjJoLTJ2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyMkxpbmVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyMkxpbmVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjUgMmMuMjggMCAuNS4yMi41LjVWNWgzVjIuNWEuNS41IDAgMCAxIDEgMHY2YS41LjUgMCAwIDEtMSAwVjZIM3YyLjVhLjUuNSAwIDEgMS0xIDB2LTZjMC0uMjguMjMtLjUuNS0uNVptMCAxNGEuNS41IDAgMSAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaTTIgMTIuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm03LjQ1LTguODNjLjI1LS41Mi44OC0uNzggMS40LS42My42LjE5Ljg1Ljg2LjQ3IDEuNDUtLjE2LjI1LS40LjQ4LS42OC43M2wtLjMzLjI5LS41OC41QzkuMSA2LjYyIDguNSA3LjM2IDguNSA4LjVjMCAuMjguMjIuNS41LjVoMy41YS41LjUgMCAwIDAgMC0xSDkuNTZjLjEzLS40OC40NC0uODcuODUtMS4yNWExMy41MiAxMy41MiAwIDAgMSAuOS0uNzhjLjMtLjI3LjYtLjU3Ljg1LS45NC43LTEuMDguMy0yLjU1LTEuMDMtMi45NWEyLjIxIDIuMjEgMCAwIDAtMi41OCAxLjE2LjUuNSAwIDEgMCAuOS40M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIyTGluZXNDYXJldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyMkxpbmVzQ2FyZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNiAzLjNjLS40Mi0uMTYtLjk3LjA4LTEuMTcuNWEuNzUuNzUgMCAxIDEtMS4zNi0uNjMgMi40NyAyLjQ3IDAgMCAxIDMuMDYtMS4yNyAyLjMzIDIuMzMgMCAwIDEgMS4xNyAzLjQyYy0uMjYuNC0uNi43My0uOTQgMWEyMS41NCAyMS41NCAwIDAgMS0uOTcuOCA2LjQgNi40IDAgMCAwLS40NS4zOGgyLjMxYS43NS43NSAwIDAgMSAwIDEuNWgtMy41QS43NS43NSAwIDAgMSA4IDguMjVjMC0uNTUuMjItMSAuNS0xLjM3LjI2LS4zNi42MS0uNjcuOTQtLjkzbC40Mi0uMzRjLjE4LS4xNC4zNS0uMjcuNTMtLjQzLjMtLjI0LjUxLS40Ni42NS0uNjguMjUtLjM5LjA4LTEtLjQ0LTEuMlptMy40NSAxLjE2Yy4xLS4yOC4zNS0uNDYuNjItLjQ2aDIuNjZjLjI3IDAgLjUyLjE4LjYyLjQ2LjEuMjguMDUuNi0uMTUuODJsLTEuMzMgMS41Yy0uMjYuMy0uNjguMy0uOTQgMGwtMS4zMy0xLjVhLjgyLjgyIDAgMCAxLS4xNS0uODJaTTIgMTYuMjVjMC0uNDIuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUtNC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVptLjc1LTguNzVhLjc1Ljc1IDAgMSAwLTEuNSAwdjUuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTJoMnYyYS43NS43NSAwIDAgMCAxLjUgMHYtNS41YS43NS43NSAwIDAgMC0xLjUgMHYyaC0ydi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEhlYWRlcjJMaW5lc0NhcmV0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyMkxpbmVzQ2FyZXRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNSAyYy4yOCAwIC41LjIyLjUuNVY1aDNWMi41YS41LjUgMCAwIDEgMSAwdjZhLjUuNSAwIDAgMS0xIDBWNkgzdjIuNWEuNS41IDAgMSAxLTEgMHYtNmMwLS4yOC4yMy0uNS41LS41Wm0xMS41NSAyLjQ2Yy4xLS4yOC4zNS0uNDYuNjItLjQ2aDIuNjZjLjI3IDAgLjUyLjE4LjYyLjQ2LjEuMjguMDUuNi0uMTUuODJsLTEuMzMgMS41Yy0uMjYuMy0uNjguMy0uOTQgMGwtMS4zMy0xLjVhLjgyLjgyIDAgMCAxLS4xNS0uODJaTTIuNSAxNmEuNS41IDAgMSAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaTTIgMTIuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm03LjQ1LTguODNjLjI1LS41Mi44OC0uNzggMS40LS42My42LjE5Ljg1Ljg2LjQ3IDEuNDUtLjE2LjI1LS40LjQ4LS42OC43M2wtLjMzLjI5LS41OC41QzkuMSA2LjYyIDguNSA3LjM2IDguNSA4LjVjMCAuMjguMjIuNS41LjVoMy41YS41LjUgMCAwIDAgMC0xSDkuNTZjLjEzLS40OC40NC0uODcuODUtMS4yNWExMy41MiAxMy41MiAwIDAgMSAuOS0uNzhjLjMtLjI3LjYtLjU3Ljg1LS45NC43LTEuMDguMy0yLjU1LTEuMDMtMi45NWEyLjIxIDIuMjEgMCAwIDAtMi41OCAxLjE2LjUuNSAwIDEgMCAuOS40M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRIZWFkZXIzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSA0LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjExYS43NS43NSAwIDAgMCAxLjUgMHYtNWg1djVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xMWEuNzUuNzUgMCAwIDAtMS41IDBWOWgtNVY0LjVabTguOTcgMS45NmMuMDktLjMuMjItLjU3LjQ3LS43OS4yNC0uMi42OS0uNDIgMS41Ni0uNDIuNzggMCAxLjI2LjMgMS41NS42NS4zMi4zNy40NS44Mi40NSAxLjEgMCAuMzYtLjEuOTItLjQ1IDEuMzgtLjMzLjQyLS45Ni44Ny0yLjMuODdhLjc1Ljc1IDAgMCAwIDAgMS41Yy40NSAwIDEuMi4xMSAxLjgxLjQyLjYuMy45NC43MS45NCAxLjMzIDAgLjg0LS4yNiAxLjM5LS42IDEuNzItLjMzLjM0LS44Mi41My0xLjQuNTMtLjY4IDAtMS4xNS0uMTItMS40Ni0uM2ExLjE3IDEuMTcgMCAwIDEtLjU1LS44NS43NS43NSAwIDEgMC0xLjQ4LjNjLjE3LjgxLjYgMS40NCAxLjI2IDEuODQuNjMuMzggMS40MS41MSAyLjIzLjUxLjkyIDAgMS44LS4zIDIuNDctLjk3QTMuODIgMy44MiAwIDAgMCAxOCAxMi41YzAtMS4yMy0uNy0yLjAzLTEuNDgtMi41MS4yOC0uMi41Mi0uNDQuNzItLjcuNjMtLjguNzYtMS43NC43Ni0yLjI5IDAtLjYzLS4yNS0xLjQzLS44LTIuMDhhMy40MyAzLjQzIDAgMCAwLTIuNy0xLjE3IDMuOCAzLjggMCAwIDAtMi41My43OCAzLjAyIDMuMDIgMCAwIDAtLjk0IDEuNTEuNzUuNzUgMCAwIDAgMS40NC40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyM1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA0LjVhLjUuNSAwIDAgMC0xIDB2MTFhLjUuNSAwIDAgMCAxIDBWMTBoNnY1LjVhLjUuNSAwIDAgMCAxIDB2LTExYS41LjUgMCAwIDAtMSAwVjlIM1Y0LjVabTguOTggMi4xNGMuMDktLjMuMjgtLjcuNjYtMS4wNC4zOC0uMzIuOTUtLjYgMS44Ni0uNkMxNi4yNCA1IDE3IDYuMTkgMTcgN2MwIC41LS4xIDEuMTEtLjUgMS42LS4zNy40Ni0xLjA4LjktMi41LjlhLjUuNSAwIDAgMCAwIDFjLjUgMCAxLjMuMDYgMS45NC4zNi4zMS4xNS41Ny4zNC43Ni42LjE4LjI0LjMuNTcuMyAxLjA0IDAgMS0uMzMgMS42LS43NiAxLjk2YTIuNyAyLjcgMCAwIDEtMS43NC41NGMtLjcgMC0xLjIyLS4xMi0xLjYxLS4zNi0uMzgtLjI0LS43LS42My0uOTItMS4zYS41LjUgMCAxIDAtLjk0LjMyYy4yNy44My43MSAxLjQ0IDEuMzMgMS44My42MS4zOCAxLjM0LjUxIDIuMTQuNTEuODIgMCAxLjctLjIgMi4zOC0uNzcuNy0uNTggMS4xMi0xLjQ4IDEuMTItMi43MyAwLS42Ni0uMTgtMS4yLS41LTEuNjMtLjMtLjQyLS43LS43LTEuMS0uOS4zNi0uMi42NS0uNDYuODgtLjc0LjYtLjc0LjcyLTEuNjMuNzItMi4yMyAwLTEuMzktMS4yNC0zLTMuNS0zYTMuNyAzLjcgMCAwIDAtMi41MS44NSAzLjIyIDMuMjIgMCAwIDAtLjk3IDEuNTEuNS41IDAgMCAwIC45Ni4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIzTGluZXNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEhlYWRlcjNMaW5lc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjMgMy43N2MuNTItLjU2IDEuMDEtLjU5IDEuNDItLjQ1LjUuMTYuNjUuNjcuNDIgMS4wM2EuOC44IDAgMCAxLS41LjM0Yy0uMTcuMDUtLjM1LjA2LS41LjA2aC0uMDlhLjc1Ljc1IDAgMCAwIDAgMS41aC4xYy4xNCAwIC4zMi4wMS41LjA2YS44LjggMCAwIDEgLjQ5LjM0Yy4yMy4zNi4wOC44Ny0uNDIgMS4wMy0uNC4xNC0uOS4xLTEuNDItLjQ1YS43NS43NSAwIDAgMC0xLjEgMS4wM2MuOTMuOTkgMi4wNCAxLjE2IDMgLjg1IDEuMjgtLjQzIDIuMDQtMS45OCAxLjItMy4yOGEyLjI1IDIuMjUgMCAwIDAtLjI2LS4zM2MuMDktLjEuMTgtLjIuMjYtLjMzLjg0LTEuMy4wOC0yLjg1LTEuMi0zLjI4YTIuNzcgMi43NyAwIDAgMC0zIC44NS43NS43NSAwIDEgMCAxLjEgMS4wM1pNMiAxNi4yNWMwLS40Mi4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NS00Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0uNzUtOC43NWEuNzUuNzUgMCAwIDAtMS41IDB2NS41YS43NS43NSAwIDAgMCAxLjUgMHYtMmgydjJhLjc1Ljc1IDAgMCAwIDEuNSAwdi01LjVhLjc1Ljc1IDAgMSAwLTEuNSAwdjJoLTJ2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SGVhZGVyM0xpbmVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyM0xpbmVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjUgMmMuMjggMCAuNS4yMi41LjVWNWgzVjIuNWEuNS41IDAgMCAxIDEgMHY2YS41LjUgMCAwIDEtMSAwVjZIM3YyLjVhLjUuNSAwIDEgMS0xIDB2LTZjMC0uMjguMjMtLjUuNS0uNVptMCAxNGEuNS41IDAgMSAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaTTIgMTIuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wm04LjczLTkuNDRjLS41Ni0uMTctMS40LjAxLTEuODYuNTJhLjUuNSAwIDAgMS0uNzQtLjY4IDIuOTUgMi45NSAwIDAgMSAyLjktLjc5Yy42LjE5IDEuMDkuNjIgMS4zMiAxLjE2LjI0LjU2LjIgMS4yLS4xOSAxLjc3LS4xMy4xOS0uMjguMzQtLjQzLjQ2LjE2LjEyLjMuMjcuNDMuNDYuNC41Ny40MyAxLjIyLjIgMS43Ny0uMjQuNTQtLjcyLjk3LTEuMzQgMS4xNi0uOS4yOS0yLjE1LjAxLTIuODktLjc5YS41LjUgMCAwIDEgLjc0LS42OGMuNDcuNTEgMS4zLjcgMS44Ni41Mi4zNS0uMS42LS4zNS43LS42YS44LjggMCAwIDAtLjA5LS44MWMtLjMxLS40NS0uODItLjUyLTEuMzgtLjUzaC0uMjFhLjUuNSAwIDEgMSAwLTFoLjIxYy41NiAwIDEuMDctLjA3IDEuMzgtLjUzYS44LjggMCAwIDAgLjEtLjhjLS4xMi0uMjYtLjM2LS41LS43MS0uNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIzTGluZXNDYXJldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SGVhZGVyM0xpbmVzQ2FyZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4zIDMuNzdjLjUyLS41NiAxLjAxLS41OSAxLjQyLS40NS41LjE2LjY1LjY3LjQyIDEuMDNhLjguOCAwIDAgMS0uNS4zNGMtLjE3LjA1LS4zNS4wNi0uNS4wNmgtLjA5YS43NS43NSAwIDAgMCAwIDEuNWguMWMuMTQgMCAuMzIuMDEuNS4wNmEuOC44IDAgMCAxIC40OS4zNGMuMjMuMzYuMDguODctLjQyIDEuMDMtLjQuMTQtLjkuMS0xLjQyLS40NWEuNzUuNzUgMCAwIDAtMS4xIDEuMDNjLjkzLjk5IDIuMDQgMS4xNiAzIC44NSAxLjI4LS40MyAyLjA0LTEuOTggMS4yLTMuMjhhMi4yNSAyLjI1IDAgMCAwLS4yNi0uMzNjLjA5LS4xLjE4LS4yLjI2LS4zMy44NC0xLjMuMDgtMi44NS0xLjItMy4yOGEyLjc3IDIuNzcgMCAwIDAtMyAuODUuNzUuNzUgMCAxIDAgMS4xIDEuMDNabTQuNzUuN2MuMS0uMjkuMzUtLjQ3LjYyLS40N2gyLjY2Yy4yNyAwIC41Mi4xOC42Mi40Ni4xLjI4LjA1LjYtLjE1LjgybC0xLjMzIDEuNWMtLjI2LjMtLjY4LjMtLjk0IDBsLTEuMzMtMS41YS44Mi44MiAwIDAgMS0uMTUtLjgyWk0yIDE2LjI0YzAtLjQyLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLjc1LTQuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVabS43NS04Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY1LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yaDJ2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTUuNWEuNzUuNzUgMCAxIDAtMS41IDB2MmgtMnYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRIZWFkZXIzTGluZXNDYXJldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEhlYWRlcjNMaW5lc0NhcmV0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjUgMmMuMjggMCAuNS4yMi41LjVWNWgzVjIuNWEuNS41IDAgMCAxIDEgMHY2YS41LjUgMCAwIDEtMSAwVjZIM3YyLjVhLjUuNSAwIDEgMS0xIDB2LTZjMC0uMjguMjMtLjUuNS0uNVptMTEuNTUgMi40NmMuMS0uMjguMzUtLjQ2LjYyLS40NmgyLjY2Yy4yNyAwIC41Mi4xOC42Mi40Ni4xLjI4LjA1LjYtLjE1LjgybC0xLjMzIDEuNWMtLjI2LjMtLjY4LjMtLjk0IDBsLTEuMzMtMS41YS44Mi44MiAwIDAgMS0uMTUtLjgyWk0yLjUgMTZhLjUuNSAwIDEgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wk0yIDEyLjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVptOC43My05LjQ0Yy0uNTYtLjE3LTEuNC4wMS0xLjg2LjUyYS41LjUgMCAwIDEtLjc0LS42OCAyLjk1IDIuOTUgMCAwIDEgMi45LS43OWMuNi4xOSAxLjA5LjYyIDEuMzIgMS4xNi4yNC41Ni4yIDEuMi0uMTkgMS43Ny0uMTMuMTktLjI4LjM0LS40My40Ni4xNi4xMi4zLjI3LjQzLjQ2LjQuNTcuNDMgMS4yMi4yIDEuNzctLjI0LjU0LS43Mi45Ny0xLjM0IDEuMTYtLjkuMjktMi4xNS4wMS0yLjg5LS43OWEuNS41IDAgMCAxIC43NC0uNjhjLjQ3LjUxIDEuMy43IDEuODYuNTIuMzUtLjEuNi0uMzUuNy0uNmEuOC44IDAgMCAwLS4wOS0uODFjLS4zMS0uNDUtLjgyLS41Mi0xLjM4LS41M2gtLjIxYS41LjUgMCAxIDEgMC0xaC4yMWMuNTYgMCAxLjA3LS4wNyAxLjM4LS41M2EuOC44IDAgMCAwIC4xLS44Yy0uMTItLjI2LS4zNi0uNS0uNzEtLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50RGVjcmVhc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNUEuNzUuNzUgMCAwIDEgNiA0Ljc1Wk02Ljc1IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDEwLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDYuNzVabTAgNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wm0tMy4yOC0yLjIyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLS45Ny0uOTcuOTctLjk3YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTEuNSAxLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDEuNSAxLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50RGVjcmVhc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YzAtLjI4LjIyLS41LjUtLjVoOGEuNS41IDAgMSAxIDAgMWgtOGEuNS41IDAgMCAxLS41LS41Wk0zLjU2IDcuNzNhLjUuNSAwIDAgMSAuNy43TDMuMjIgOS41bDEuMDYgMS4wNmEuNS41IDAgMSAxLS43LjdsLTEuNDItMS40YS41LjUgMCAwIDEgMC0uNzFsMS40MS0xLjQyWk02LjUgOWEuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMSAwIDAtMWgtMTFaTTYgMTQuNWMwLS4yOC4yMi0uNS41LS41aDZhLjUuNSAwIDEgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50RGVjcmVhc2VMdHJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlTHRyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNUEuNzUuNzUgMCAwIDEgNiA0Ljc1Wk02Ljc1IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDEwLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDYuNzVabTAgNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wm0tMy4yOC0yLjIyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLS45Ny0uOTcuOTctLjk3YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTEuNSAxLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50RGVjcmVhc2VMdHJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZUx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA0LjVjMC0uMjguMjItLjUuNS0uNWg4YS41LjUgMCAxIDEgMCAxaC04YS41LjUgMCAwIDEtLjUtLjVaTTMuNTYgNy43M2EuNS41IDAgMCAxIC43LjdMMy4yMiA5LjVsMS4wNiAxLjA2YS41LjUgMCAxIDEtLjcuN2wtMS40Mi0xLjRhLjUuNSAwIDAgMSAwLS43MWwxLjQxLTEuNDJaTTYuNSA5YS41LjUgMCAwIDAgMCAxaDExYS41LjUgMCAxIDAgMC0xaC0xMVpNNiAxNC41YzAtLjI4LjIyLS41LjUtLjVoNmEuNS41IDAgMSAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlTHRyOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlTHRyOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuOTcgNC43OGEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjUtMS41YS43NS43NSAwIDAgMC0xLjA2IDBsLTEuNSAxLjVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwuOTctLjk3Ljk3Ljk3Wk02LjI1IDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptOSAwYS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVaTTEwIDdjLjQxIDAgLjc1LjM0Ljc1Ljc1djkuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTkuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlTHRyOTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZUx0cjkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS4xNSA0Ljg1YS41LjUgMCAwIDAgLjctLjdsLTEuNS0xLjVhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41YS41LjUgMCAxIDAgLjcuN0wxMCAzLjcxbDEuMTUgMS4xNFpNNiA3LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptOSAwYS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabS01LjUgMGEuNS41IDAgMCAxIDEgMHYxMGEuNS41IDAgMCAxLTEgMHYtMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50RGVjcmVhc2VMdHJSb3RhdGUyNzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlTHRyUm90YXRlMjcwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djkuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTkuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk02LjI1IDUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptOSAwYS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVabS02LjIyIDkuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjUgMS41Yy4zLjMuNzcuMyAxLjA2IDBsMS41LTEuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0uOTcuOTctLjk3LS45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnREZWNyZWFzZUx0clJvdGF0ZTI3MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlTHRyUm90YXRlMjcwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYy4yOCAwIC41LjIyLjUuNXYxMGEuNS41IDAgMCAxLTEgMHYtMTBjMC0uMjguMjItLjUuNS0uNVpNNiA1LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptOSAwYS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabS02LjE1IDkuNjVhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMC0uNy0uN0wxMCAxNi4yOWwtMS4xNS0xLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUm90YXRlMjcwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZVJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYy40MSAwIC43NS4zNC43NS43NXY5LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi05LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNi4yNSA1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVabTkgMGEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm0tNi4yMiA5LjQ3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMS41IDEuNWMuMy4zLjc3LjMgMS4wNiAwbDEuNS0xLjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtLjk3Ljk3LS45Ny0uOTdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUm90YXRlMjcwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50RGVjcmVhc2VSb3RhdGUyNzBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjLjI4IDAgLjUuMjIuNS41djEwYS41LjUgMCAwIDEtMSAwdi0xMGMwLS4yOC4yMi0uNS41LS41Wk02IDUuNWEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm05IDBhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptLTYuMTUgOS42NWEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMS41LTEuNWEuNS41IDAgMCAwLS43LS43TDEwIDE2LjI5bC0xLjE1LTEuMTRaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUm90YXRlOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlUm90YXRlOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuOTcgNC43OGEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjUtMS41YS43NS43NSAwIDAgMC0xLjA2IDBsLTEuNSAxLjVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwuOTctLjk3Ljk3Ljk3Wk02LjI1IDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptOSAwYS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVaTTEwIDdjLjQxIDAgLjc1LjM0Ljc1Ljc1djkuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTkuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnREZWNyZWFzZVJvdGF0ZTkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50RGVjcmVhc2VSb3RhdGU5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMTUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcgMGwtMS41IDEuNWEuNS41IDAgMSAwIC43LjdMMTAgMy43MWwxLjE1IDEuMTRaTTYgNy41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTkgMGEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tNS41IDBhLjUuNSAwIDAgMSAxIDB2MTBhLjUuNSAwIDAgMS0xIDB2LTEwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnREZWNyZWFzZVJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50RGVjcmVhc2VSdGxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuMjUgNGEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNy41Wk0xNCA5Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDEwLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTAgNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNS41YS43NS43NSAwIDAgMCAwIDEuNWg1LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabTEuMjItNy4wM2MuMy0uMy43Ny0uMyAxLjA2IDBsMS41IDEuNWMuMy4zLjMuNzcgMCAxLjA2bC0xLjUgMS41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsLjk3LS45Ny0uOTctLjk3YS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50RGVjcmVhc2VSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZVJ0bFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDRhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFptLTMgNWEuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTFaTTcgMTQuNWMwLS4yOC4yMi0uNS41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNVptOS40NS02Ljc2YS41LjUgMCAxIDAtLjcuN0wxNi44IDkuNWwtMS4wNiAxLjA2YS41LjUgMCAxIDAgLjcuNzFsMS40Mi0xLjQxYS41LjUgMCAwIDAgMC0uN2wtMS40Mi0xLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUnRsOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudERlY3JlYXNlUnRsOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMuNDEgMCAuNzUuMzQuNzUuNzV2OS41YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTYuMjUgNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm05IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptLTYuMjIgOS40N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDEuNSAxLjVjLjMuMy43Ny4zIDEuMDYgMGwxLjUtMS41YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLS45Ny45Ny0uOTctLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUnRsOTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZVJ0bDkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYy4yOCAwIC41LjIyLjUuNXYxMGEuNS41IDAgMCAxLTEgMHYtMTBjMC0uMjguMjItLjUuNS0uNVpNNiA1LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptOSAwYS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabS02LjE1IDkuNjVhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMC0uNy0uN0wxMCAxNi4yOWwtMS4xNS0xLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudERlY3JlYXNlUnRsUm90YXRlMjcwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZVJ0bFJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC45NyA0Ljc4YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTEuNS0xLjVhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS41IDEuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bC45Ny0uOTcuOTcuOTdaTTYuMjUgNy43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm05IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVpNMTAgN2MuNDEgMCAuNzUuMzQuNzUuNzV2OS41YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50RGVjcmVhc2VSdGxSb3RhdGUyNzBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnREZWNyZWFzZVJ0bFJvdGF0ZTI3MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuMTUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcgMGwtMS41IDEuNWEuNS41IDAgMSAwIC43LjdMMTAgMy43MWwxLjE1IDEuMTRaTTYgNy41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTkgMGEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tNS41IDBhLjUuNSAwIDAgMSAxIDB2MTBhLjUuNSAwIDAgMS0xIDB2LTEwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVBLjc1Ljc1IDAgMCAxIDYgNC43NVpNNi43NSA5YS43NS43NSAwIDAgMCAwIDEuNWgxMC41YS43NS43NSAwIDAgMCAwLTEuNUg2Ljc1Wm0wIDVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVpNMy4wMyA3LjcyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsLjk3Ljk3LS45Ny45N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDEuNS0xLjVjLjMtLjMuMy0uNzcgMC0xLjA2bC0xLjUtMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudEluY3JlYXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDQuNWMwLS4yOC4yMi0uNS41LS41aDhhLjUuNSAwIDAgMSAwIDFoLThhLjUuNSAwIDAgMS0uNS0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabS41IDQuNWEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wk0yLjg1IDcuNzNhLjUuNSAwIDEgMC0uNy43TDMuMiA5LjVsLTEuMDYgMS4wNmEuNS41IDAgMSAwIC43LjdsMS40Mi0xLjRhLjUuNSAwIDAgMCAwLS43MUwyLjg1IDcuNzNaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlTHRyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZUx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVBLjc1Ljc1IDAgMCAxIDYgNC43NVpNNi43NSA5YS43NS43NSAwIDAgMCAwIDEuNWgxMC41YS43NS43NSAwIDAgMCAwLTEuNUg2Ljc1Wm0wIDVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVpNMy4wMyA3LjcyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsLjk3Ljk3LS45Ny45N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDEuNS0xLjVjLjMtLjMuMy0uNzcgMC0xLjA2bC0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlTHRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50SW5jcmVhc2VMdHJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgNC41YzAtLjI4LjIyLS41LjUtLjVoOGEuNS41IDAgMCAxIDAgMWgtOGEuNS41IDAgMCAxLS41LS41Wm0wIDVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVptLjUgNC41YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaTTIuODUgNy43M2EuNS41IDAgMSAwLS43LjdMMy4yIDkuNWwtMS4wNiAxLjA2YS41LjUgMCAxIDAgLjcuN2wxLjQyLTEuNGEuNS41IDAgMCAwIDAtLjcxTDIuODUgNy43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZUx0cjkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZUx0cjkwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMDMgMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDEuNSAxLjVjLjMuMy43Ny4zIDEuMDYgMGwxLjUtMS41YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLS45Ny45Ny0uOTctLjk3Wk02LjI1IDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptOSAwYS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVabS02IDkuNXYtOS41YS43NS43NSAwIDAgMSAxLjUgMHY5LjVhLjc1Ljc1IDAgMCAxLTEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlTHRyOTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZUx0cjkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljg1IDIuNjVhLjUuNSAwIDEgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMC0uNy0uN0wxMCAzLjc5IDguODUgMi42NVpNNiA3LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptOSAwYS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabS01LjUgMTB2LTEwYS41LjUgMCAwIDEgMSAwdjEwYS41LjUgMCAwIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlTHRyUm90YXRlMjcwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZUx0clJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAyYy40MSAwIC43NS4zNC43NS43NXY5LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi05LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNi4yNSA1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVabTkgMGEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm0tNC4yOCAxMi4wM2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjUtMS41YS43NS43NSAwIDAgMC0xLjA2IDBsLTEuNSAxLjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwuOTctLjk3Ljk3Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlTHRyUm90YXRlMjcwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50SW5jcmVhc2VMdHJSb3RhdGUyNzBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJjLjI4IDAgLjUuMjIuNS41djEwYS41LjUgMCAwIDEtMSAwdi0xMGMwLS4yOC4yMi0uNS41LS41Wk02IDUuNWEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm05IDBhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptLTMuODUgMTEuODVhLjUuNSAwIDAgMCAuNy0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBsLTEuNSAxLjVhLjUuNSAwIDAgMCAuNy43TDEwIDE2LjIxbDEuMTUgMS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJvdGF0ZTI3MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50SW5jcmVhc2VSb3RhdGUyNzBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMuNDEgMCAuNzUuMzQuNzUuNzV2OS41YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTYuMjUgNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm05IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptLTQuMjggMTIuMDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMS41LTEuNWEuNzUuNzUgMCAwIDAtMS4wNiAwbC0xLjUgMS41YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjk3LS45Ny45Ny45N1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50SW5jcmVhc2VSb3RhdGUyNzBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZVJvdGF0ZTI3MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2MTBhLjUuNSAwIDAgMS0xIDB2LTEwYzAtLjI4LjIyLS41LjUtLjVaTTYgNS41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTkgMGEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tMy44NSAxMS44NWEuNS41IDAgMCAwIC43LS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcgMGwtMS41IDEuNWEuNS41IDAgMCAwIC43LjdMMTAgMTYuMjFsMS4xNSAxLjE0WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJvdGF0ZTkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZVJvdGF0ZTkwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMDMgMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDEuNSAxLjVjLjMuMy43Ny4zIDEuMDYgMGwxLjUtMS41YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLS45Ny45Ny0uOTctLjk3Wk02LjI1IDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptOSAwYS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVabS02IDkuNXYtOS41YS43NS43NSAwIDAgMSAxLjUgMHY5LjVhLjc1Ljc1IDAgMCAxLTEuNSAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJvdGF0ZTkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50SW5jcmVhc2VSb3RhdGU5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC44NSAyLjY1YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwxLjUtMS41YS41LjUgMCAwIDAtLjctLjdMMTAgMy43OSA4Ljg1IDIuNjVaTTYgNy41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTkgMGEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tNS41IDEwdi0xMGEuNS41IDAgMCAxIDEgMHYxMGEuNS41IDAgMCAxLTEgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBUZXh0SW5kZW50SW5jcmVhc2VSdGxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudEluY3JlYXNlUnRsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0IDQuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTcuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wk0xMy4yNSA5YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxMC41Wm0wIDVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDUuNVptMy43Mi02LjI4YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLS45Ny45Ny45Ny45N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0xLjUtMS41YS43NS43NSAwIDAgMSAwLTEuMDZsMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudEluY3JlYXNlUnRsUmVndWxhcicsIFwiMWVtXCIsIFtcIk01IDQuNWMwLS4yOC4yMi0uNS41LS41aDhhLjUuNSAwIDAgMSAwIDFoLThhLjUuNSAwIDAgMS0uNS0uNVptLTMgNWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41Wk03LjUgMTRhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptMTAuMzctNi4yNmEuNS41IDAgMCAwLS43MSAwbC0xLjQxIDEuNDFhLjUuNSAwIDAgMCAwIC43bDEuNDEgMS40MmEuNS41IDAgMSAwIC43LS43TDE2LjgyIDkuNWwxLjA2LTEuMDZhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlUnRsOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudEluY3JlYXNlUnRsOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMuNDEgMCAuNzUuMzQuNzUuNzV2OS41YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTYuMjUgNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm05IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptLTQuMjggMTIuMDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMS41LTEuNWEuNzUuNzUgMCAwIDAtMS4wNiAwbC0xLjUgMS41YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjk3LS45Ny45Ny45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJ0bDkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SW5kZW50SW5jcmVhc2VSdGw5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2MTBhLjUuNSAwIDAgMS0xIDB2LTEwYzAtLjI4LjIyLS41LjUtLjVaTTYgNS41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTkgMGEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tMy44NSAxMS44NWEuNS41IDAgMCAwIC43LS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcgMGwtMS41IDEuNWEuNS41IDAgMCAwIC43LjdMMTAgMTYuMjFsMS4xNSAxLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEluZGVudEluY3JlYXNlUnRsUm90YXRlMjcwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRJbmRlbnRJbmNyZWFzZVJ0bFJvdGF0ZTI3MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjAzIDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjUgMS41Yy4zLjMuNzcuMyAxLjA2IDBsMS41LTEuNWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0uOTcuOTctLjk3LS45N1pNNi4yNSA3Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVabTkgMGEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNi41Wm0tNiA5LjV2LTkuNWEuNzUuNzUgMCAwIDEgMS41IDB2OS41YS43NS43NSAwIDAgMS0xLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRJbmRlbnRJbmNyZWFzZVJ0bFJvdGF0ZTI3MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dEluZGVudEluY3JlYXNlUnRsUm90YXRlMjcwUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljg1IDIuNjVhLjUuNSAwIDEgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMC0uNy0uN0wxMCAzLjc5IDguODUgMi42NVpNNiA3LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptOSAwYS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabS01LjUgMTB2LTEwYS41LjUgMCAwIDEgMSAwdjEwYS41LjUgMCAwIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dEl0YWxpY0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SXRhbGljRmlsbGVkJywgXCIxZW1cIiwgW1wiTTggMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuMjNMOC41OSAxNS41aDIuNjZhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuMjNMMTEuNDEgNEg4Ljc1QS43NS43NSAwIDAgMSA4IDMuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0SXRhbGljUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0SXRhbGljUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNiAzYS41LjUgMCAwIDEgMCAxaC0zLjE2TDguMjMgMTZoMy4yN2EuNS41IDAgMCAxIDAgMUg0YS41LjUgMCAwIDEgMC0xaDMuMTZsNC42MS0xMkg4LjVhLjUuNSAwIDAgMSAwLTFIMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TGluZVNwYWNpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dExpbmVTcGFjaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3Ljc4IDQuMjJhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNkwxNiA0LjU2djMuNjlhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNTZsLS43Mi43MmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDItMmMuMy0uMy43Ny0uMyAxLjA2IDBsMiAyWk0zIDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVBLjc1Ljc1IDAgMCAxIDMgNC4yNVpNMTUuMjUgMTFjLjQxIDAgLjc1LjM0Ljc1Ljc1djMuNjlsLjcyLS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yIDJjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwuNzIuNzJ2LTMuNjljMC0uNDEuMzQtLjc1Ljc1LS43NVpNMyA5LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoNy41YS43NS43NSAwIDAgMSAwIDEuNWgtNy41QS43NS43NSAwIDAgMSAzIDkuMjVabS43NSA0LjI1YS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TGluZVNwYWNpbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRMaW5lU3BhY2luZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgMy43djQuOGEuNS41IDAgMCAwIDEgMFYzLjdsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMCAwIC43LjdMMTUgMy43MVpNMiA0LjVjMC0uMjguMjItLjUuNS0uNWg2YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVptLjUgNC41YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaTTE1IDE2LjN2LTQuOGEuNS41IDAgMCAxIDEgMHY0LjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdMMTUgMTYuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TW9yZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TW9yZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjI1IDJjLjMgMCAuNTguMTguNy40N0wxNC4wNCAxNWEyLjI0IDIuMjQgMCAwIDAtMS42OS0uMTdsLS45NS0yLjM0SDUuMDhsLTEuNjQgNC4wM2EuNzUuNzUgMCAxIDEtMS4zOS0uNTZsNS41LTEzLjVhLjc1Ljc1IDAgMCAxIC43LS40N1pNMTMgMTUuNzVjLjYzIDAgMS4xNS40NiAxLjI0IDEuMDdsLjAxLjE4QTEuMjUgMS4yNSAwIDEgMSAxMyAxNS43NVpNNS43IDExaDUuMUw4LjI1IDQuNzQgNS43IDExWm00LjU1IDZhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTcgMTguMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRNb3JlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TW9yZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOCAyYy4yIDAgLjM5LjEyLjQ2LjMxbDUuMSAxMi41MWEyLjI2IDIuMjYgMCAwIDAtMS4wOCAwTDExLjMzIDEySDQuNjdsLTEuNyA0LjE5YS41LjUgMCAxIDEtLjkzLS4zOGw1LjUtMTMuNUEuNS41IDAgMCAxIDggMlptNSAxMy43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMSAxIDAtMi41Wm0wIDBaTTUuMDggMTFoNS44NEw4IDMuODMgNS4wOCAxMVptNS4xNyA2YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTE3IDE4LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyRm9ybWF0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHROdW1iZXJGb3JtYXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuOTcgMi45OGMuNTIuMjUuOTEuNzQgMS4xNyAxLjQ2YS43NS43NSAwIDAgMS0xLjQuNTFjLS4xOC0uNDctLjM1LS41OS0uNDQtLjYzLS4xMi0uMDYtLjI3LS4wNy0uNTgtLjA3YS42OS42OSAwIDAgMC0uNS4xN2MtLjEyLjEtLjIyLjI3LS4zLjVhMi44MiAyLjgyIDAgMCAwLS4xNy44OGMwIC40MSAwIC45LjE2IDEuMy4wOC4xOC4xNy4zMi4zLjQyLjExLjEuMy4yLjYuMjMuMDggMCAuMjggMCAuNDgtLjA3YS44LjggMCAwIDAgLjQ2LS40NS43NS43NSAwIDAgMSAxLjM3LjYxYy0uNjMgMS40Mi0yLjAzIDEuNDUtMi40OCAxLjRhMi41OCAyLjU4IDAgMCAxLTEuNC0uNTZjLS4zNS0uMy0uNTgtLjY4LS43Mi0xLjA0LS4yNy0uNjgtLjI3LTEuNDMtLjI3LTEuOHYtLjA4YTMuMzYgMy4zNiAwIDAgMSAuMDMtLjRjLjAzLS4yNi4xLS42MS4yMy0uOTcuMTQtLjM2LjM1LS43Ny43Mi0xLjA5LjM3LS4zNC44Ny0uNTUgMS40OS0uNTVoLjAzYy4yOCAwIC43NSAwIDEuMjIuMjNaTTQuNyAyLjc1Yy4zMSAwIC41OS4yLjcuNWwxLjc3IDVhLjc1Ljc1IDAgMCAxLTEuNDIuNWwtLjA5LS4yNWgtMi4xbC0uMTEuMjdhLjc1Ljc1IDAgMSAxLTEuNC0uNTRsMS45NC01Yy4xLS4zLjQtLjQ4LjctLjQ4Wm0tLjA0IDIuOUw0LjE0IDdoMWwtLjQ4LTEuMzRabS42NCA1LjFjLjM5LjAzLjcuMzUuNy43NXY1YS43NS43NSAwIDAgMS0xLjUgMHYtMi43bC0uMi4xNGEuNzUuNzUgMCAxIDEtLjg0LTEuMjVjLjU2LS4zNy45Ny0uOTYgMS4wNS0xLjM1YS43NS43NSAwIDAgMSAuNzktLjU5Wm00LjU0IDEuNWMtLjMxIDAtLjU5LjI5LS41OS42MWEuNzUuNzUgMCAxIDEtMS41IDAgMi4xMiAyLjEyIDAgMCAxIDMuODgtMS4xN2MuNDIuNjQuNDIgMS40Ni0uMDQgMi4yNC0uMjMuNC0uNTUuNjktLjg0LjkybC0uNDQuMzItLjA2LjA1LS4zMy4yM2MtLjE0LjEtLjI1LjItLjM1LjNoMS42MmEuNzUuNzUgMCAwIDEgMCAxLjVIOC41NWEuNzMuNzMgMCAwIDEtLjA1IDAgLjc1Ljc1IDAgMCAxLS43NS0uNzVjMC0xLjE2LjY5LTEuOCAxLjI3LTIuMjVMOS40IDE0bC4wNi0uMDQuMzctLjI4Yy4yMy0uMTguMzgtLjM0LjQ4LS41LjIxLS4zNi4xNC0uNTcuMDgtLjY2YS42NC42NCAwIDAgMC0uNTQtLjI2Wm00Ljg4LjM3YS40OS40OSAwIDAgMSAuMTQtLjIzYy4wNy0uMDYuMi0uMTQuNDktLjE0LjQ5IDAgLjYuMy42LjM5IDAgLjE3LS4wNC4zMS0uMTIuNC0uMDQuMDYtLjE5LjIxLS43LjIxYS43NS43NSAwIDAgMCAwIDEuNWMuMiAwIC40NS4wMy42NC4xMS4wOC4wNC4xMi4wOC4xMy4xLjAyLjAyLjA0LjA2LjA0LjE4IDAgLjMzLS4xLjQ0LS4xNS40OS0uMDguMDYtLjIyLjEyLS40NC4xMi0uMjYgMC0uMzktLjA1LS40NC0uMDgtLjA1LS4wMy0uMTMtLjEtLjItLjMxYS43NS43NSAwIDAgMC0xLjQyLjQ3IDIgMiAwIDAgMCAuODEgMS4xYy40LjI1LjgzLjMyIDEuMjUuMzIuNDUgMCAuOTgtLjExIDEuNC0uNDguNDYtLjM4LjctLjk1LjctMS42M2ExLjc3IDEuNzcgMCAwIDAtLjQzLTEuMThjLjM2LS40Ny40Mi0xIC40Mi0xLjMyIDAtLjkzLS44LTEuODktMi4xLTEuODktLjYyIDAtMS4xMS4yLTEuNDcuNTItLjM0LjMtLjUxLjY2LS42LjkzYS43NS43NSAwIDEgMCAxLjQ1LjQyWk04IDMuNXY1YS43NS43NSAwIDAgMCAuODcuNzR2LjAxaDEuNjNjLjI0IDAgLjczLS4wNCAxLjItLjMuNTItLjMuOTItLjg3LjkyLTEuNyAwLS40My0uMS0uOC0uMjgtMS4xMmExLjcgMS43IDAgMCAwLS4yOS0uMzVjLjE1LS4yNy4yNC0uNjIuMjQtMS4wMiAwLS40MS0uMDgtLjc3LS4yNS0xLjA4YTEuNjkgMS42OSAwIDAgMC0uNjYtLjY3Yy0uNDYtLjI2LS45NS0uMjYtMS4xMi0uMjZIOC43NUEuNzUuNzUgMCAwIDAgOCAzLjVabTIuNSA0LjI1aC0xdi0xSDEwLjQ0Yy4xOSAwIC4zOC4wMS41MS4wOC4wNS4wMi4wOC4wNS4xLjA4LjAzLjA0LjA3LjEzLjA3LjMzIDAgLjE3LS4wNC4yNi0uMDYuM2EuMy4zIDAgMCAxLS4xMi4xLjk2Ljk2IDAgMCAxLS40NC4xMVptLS44OC0yLjVIOS41di0xaC43NWMuMTYgMCAuMy4wMS40LjA3YS4yLjIgMCAwIDEgLjA4LjA4Yy4wMi4wNC4wNi4xNS4wNi4zNiAwIC4xOC0uMDMuMjctLjA2LjNhLjI1LjI1IDAgMCAxLS4xLjEuNzYuNzYgMCAwIDEtLjM1LjA5aC0uNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyRm9ybWF0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyRm9ybWF0UmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljk0IDNjLjIxIDAgLjQuMTQuNDcuMzNsMS43NyA1YS41LjUgMCAxIDEtLjk0LjM0TDYgOEgzLjczbC0uMjYuNjhhLjUuNSAwIDAgMS0uOTQtLjM2bDEuOTQtNUEuNS41IDAgMCAxIDQuOTQgM1ptLS44MiA0aDEuNTNsLS43My0yLjA2TDQuMTIgN1pNOC41IDNIMTBjLjE3IDAgLjYgMCAxLjAxLjIzLjIyLjEyLjQyLjMuNTYuNTcuMTUuMjYuMjIuNTguMjIuOTYgMCAuNDUtLjEyLjgtLjMyIDEuMDguMTUuMS4zLjI0LjQuNDIuMTYuMjcuMjUuNi4yNS45OCAwIC43NS0uMzUgMS4yMy0uOCAxLjQ5LS40LjI0LS44NS4yNy0xLjA3LjI3SDguNWEuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVaTTEwIDRIOXYxLjVoMS4wMmMuMTIgMCAuMzMtLjAyLjUtLjEyLjEyLS4wOC4yNy0uMjIuMjctLjYyIDAtLjI1LS4wNC0uNC0uMS0uNDhhLjQ0LjQ0IDAgMCAwLS4xNy0uMThjLS4xNi0uMDktLjM2LS4xLS41Mi0uMVpNOSA2LjVWOGgxLjI1Yy4xNCAwIC4zOC0uMDMuNTctLjE0LjE1LS4wOC4zLS4yMy4zLS42MmExLjExIDEuMTEgMCAwIDAtLjA4LS40MS40Ny40NyAwIDAgMC0uMjMtLjIzYy0uMi0uMS0uNDQtLjEtLjYyLS4xSDlabTguNC0xLjk3Yy0uMjQtLjY5LS42LTEuMS0xLjA1LTEuMzMtLjQtLjItLjgzLS4yLTEuMS0uMmgtLjAzYy0uNTUgMC0xIC4xOS0xLjMzLjQ5LS4zMi4yOS0uNTIuNjUtLjY0Ljk5QTQuMDYgNC4wNiAwIDAgMCAxMyA1Ljc3di4wNmMwIC4zOCAwIDEuMDguMjUgMS43Mi4xMy4zMy4zMy42Ny42Ni45My4zMi4yNy43NC40NSAxLjI1LjUuNDIuMDUgMS42Ny4wMiAyLjIzLTEuMjRhLjUuNSAwIDEgMC0uOS0uNGMtLjMuNjQtLjk0LjY4LTEuMjIuNjVhMS4zNCAxLjM0IDAgMCAxLS43My0uMjggMS4yNiAxLjI2IDAgMCAxLS4zNi0uNTJBMy44OSAzLjg5IDAgMCAxIDE0IDUuOFY1LjhhMi4xNSAyLjE1IDAgMCAxIC4wMi0uMjhjLjAzLS4yLjA3LS40NC4xNi0uNjguMS0uMjUuMjItLjQ1LjM4LS42YS45NC45NCAwIDAgMSAuNjYtLjIzYy4zIDAgLjUgMCAuNy4xLjE1LjA4LjM2LjI1LjU1Ljc3YS41LjUgMCAwIDAgLjk0LS4zNFptLTMuMiA3LjY3YS43NC43NCAwIDAgMC0uMjIuMzUuNS41IDAgMCAxLS45Ni0uMjhjLjA3LS4yMy4yMi0uNTUuNTItLjgyLjMtLjI3LjczLS40NSAxLjMtLjQ1IDEuMTcgMCAxLjg1Ljg1IDEuODUgMS42NGExLjkgMS45IDAgMCAxLS41MiAxLjMzIDEuNTMgMS41MyAwIDAgMSAuMjUuMjdjLjE4LjI0LjI3LjU1LjI3LjkgMCAuNjMtLjIxIDEuMTItLjYgMS40NC0uMzcuMzItLjgzLjQyLTEuMjQuNDItLjQgMC0uNzgtLjA2LTEuMTEtLjI4YTEuNzUgMS43NSAwIDAgMS0uNzItLjk3LjUuNSAwIDAgMSAuOTUtLjMyYy4wNS4xNC4xLjIzLjE1LjNsLjAxLjAyYS43LjcgMCAwIDAgLjA0LjA0bC4wMS4wMi4wMi4wMWEuNTIuNTIgMCAwIDAgLjIuMTJjLjExLjA0LjI2LjA2LjQ1LjA2LjI2IDAgLjQ2LS4wNy42LS4xOC4xMi0uMS4yNC0uMjkuMjQtLjY4YS41My41MyAwIDAgMC0uMDgtLjMyLjU4LjU4IDAgMCAwLS4yNC0uMThjLS4yMy0uMTEtLjUzLS4xNC0uNzUtLjE0YS41LjUgMCAxIDEgMC0xYy41OCAwIC44LS4xOC45MS0uM2EuOS45IDAgMCAwIC4xNi0uNTZjMC0uMjItLjIyLS42NC0uODQtLjY0LS4zNSAwLS41NC4xLS42NS4yWm0tNS4yLjY2YzAtLjQ0LjM3LS44Ni44NC0uODYuMzMgMCAuNi4xNi43NS4zNy4xMi4xOS4xOC41LS4wNy45Mi0uMTMuMjEtLjMuNC0uNTUuNTgtLjEyLjEtLjI0LjE5LS4zOC4yOGwtLjA2LjA0LS4zNi4yNkM4LjYxIDE0Ljg4IDggMTUuNDYgOCAxNi41YzAgLjI4LjIyLjUuNS41aDIuNjlhLjUuNSAwIDEgMCAwLTFIOS4xYy4xMy0uMjguMzYtLjUuNjgtLjc1bC4zMi0uMjNoLjAybC4wNi0uMDUuNDItLjMxYy4yOS0uMjMuNTgtLjUuNzktLjg2LjQxLS43LjQtMS40My4wNS0xLjk4QTEuODcgMS44NyAwIDAgMCA4IDEyLjg2YS41LjUgMCAxIDAgMSAwWm0tNC41OC44N2MuMi0uMTMuNC0uMy41OC0uNDd2My4yNGEuNS41IDAgMSAwIDEgMHYtNWEuNS41IDAgMCAwLS45OC0uMSAyLjggMi44IDAgMCAxLTEuMTYgMS41LjUuNSAwIDEgMCAuNTYuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdEx0ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdEx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk01IDEuNWEuNS41IDAgMCAwLS4zOS0uNDkuNS41IDAgMCAwLS41Ni4yN2wtLjA3LjEyYTIuOTYgMi45NiAwIDAgMS0xLjIgMS4xNS41LjUgMCAxIDAgLjQ0LjljLjMtLjE1LjU2LS4zNC43OC0uNTNWNS41YS41LjUgMCAwIDAgMSAwdi00Wk04Ljc1IDRhLjc1Ljc1IDAgMSAwIDAgMS41aDcuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTcuNVptMCA1YS43NS43NSAwIDEgMCAwIDEuNWg3LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC03LjVaTTggMTQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS01LjM1LTcuMWEuNS41IDAgMCAwIC43LjdsLjA1LS4wNC4yLS4xMkMzLjc2IDguMDkgNCA4IDQuMyA4Yy4yMyAwIC40MS4wNi41My4xNS4xLjA3LjE2LjE3LjE2LjM1YS41LjUgMCAwIDEtLjIxLjQ0Yy0uMTUuMTItLjM1LjIyLS42Mi4zNWwtLjE0LjA4Yy0uMzIuMTUtLjcuMzYtMSAuNy0uMzMuMzUtLjUzLjgxLS41MyAxLjQzIDAgLjI4LjIyLjUuNS41aDIuNWEuNS41IDAgMCAwIDAtMUgzLjU5Yy4wNC0uMS4xLS4yLjE3LS4yNy4xNy0uMTguNC0uMzEuNzEtLjQ3bC4xMy0uMDZjLjI2LS4xMy41OC0uMjkuODMtLjUuMzMtLjI3LjU3LS42NS41Ny0xLjIgMC0uNS0uMjItLjktLjU3LTEuMTVBMS45MiAxLjkyIDAgMCAwIDQuMzMgN2gtLjAxYTIuNSAyLjUgMCAwIDAtMS42Ni42M3YuMDFoLS4wMVptLjAxLS4wMi0uMDEuMDJzLjEtLjEuMDEtLjAyWm0xLjA5IDcuODdjMC0uMjguMjItLjUuNS0uNS4zNCAwIC41My0uMS42My0uMTguMS0uMDkuMTMtLjIuMTMtLjMtLjAxLS4yLS4xOS0uNTItLjc2LS41Mi0uNDEgMC0uNjMuMS0uNzIuMTdhLjQyLjQyIDAgMCAwLS4xLjA3LjUuNSAwIDAgMS0uODgtLjQ2di0uMDFsLjAyLS4wMmEuOC44IDAgMCAxIC4xLS4xNWMuMDctLjA4LjE3LS4xNy4zLS4yNy4yOC0uMTguNy0uMzMgMS4yOC0uMzMgMS4wMyAwIDEuNzMuNjcgMS43NiAxLjQ4LjAxLjM3LS4xMi43NC0uNCAxLjAyLjI4LjI4LjQxLjY1LjQgMS4wMi0uMDMuOC0uNzMgMS40OC0xLjc2IDEuNDgtLjU5IDAtMS0uMTUtMS4yOC0uMzNhMS40IDEuNCAwIDAgMS0uNC0uNDJsLS4wMS0uMDF2LS4wMWEuNS41IDAgMCAxIC44Ny0uNDhsLjEuMDhjLjEuMDcuMy4xNy43Mi4xNy41NyAwIC43NS0uMzMuNzYtLjUyIDAtLjEtLjA0LS4yMS0uMTMtLjMtLjEtLjA4LS4yOS0uMTgtLjYzLS4xOGEuNS41IDAgMCAxLS41LS41Wm0tLjMyLTEuMjUuMDItLjAzdi4wMWwtLjAxLjAxdi4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHROdW1iZXJMaXN0THRyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdEx0clJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAxLjVhLjUuNSAwIDAgMC0uMzktLjQ5LjUuNSAwIDAgMC0uNTYuMjdsLS4wNy4xMmEyLjk2IDIuOTYgMCAwIDEtMS4yIDEuMTUuNS41IDAgMSAwIC40NC45Yy4zLS4xNS41Ni0uMzQuNzgtLjUzVjUuNWEuNS41IDAgMCAwIDEgMHYtNFpNMi42NSA3LjY1YS41LjUgMCAwIDAgLjcuN2wuMDUtLjA0LjItLjEyQzMuNzYgOC4wOSA0IDggNC4zIDhjLjIzIDAgLjQxLjA2LjUzLjE1LjEuMDcuMTYuMTcuMTYuMzVhLjUuNSAwIDAgMS0uMjEuNDRjLS4xNS4xMi0uMzUuMjItLjYyLjM1bC0uMTQuMDhjLS4zMi4xNS0uNy4zNi0xIC43LS4zMy4zNS0uNTMuODEtLjUzIDEuNDMgMCAuMjguMjIuNS41LjVoMi41YS41LjUgMCAwIDAgMC0xSDMuNTljLjA0LS4xLjEtLjIuMTctLjI3YTIuMzggMi4zOCAwIDAgMSAuODMtLjUzYy4yNy0uMTMuNTktLjI5Ljg0LS41LjMzLS4yNy41Ny0uNjUuNTctMS4yIDAtLjUtLjIyLS45LS41Ny0xLjE1QTEuOTIgMS45MiAwIDAgMCA0LjMzIDdoLS4wMWEyLjUgMi41IDAgMCAwLTEuNjYuNjN2LjAxaC0uMDFabS4wMS0uMDItLjAxLjAycy4xLS4xLjAxLS4wMlpNNC4yNSAxNWEuNS41IDAgMSAwIDAgMWMuMzQgMCAuNTMuMS42My4xOC4xLjA5LjEzLjIuMTMuMy0uMDEuMi0uMTkuNTItLjc2LjUyLS40MSAwLS42My0uMS0uNzItLjE3YS40Mi40MiAwIDAgMS0uMS0uMDcuNS41IDAgMCAwLS44OC40NnYuMDFsLjAyLjAyYS44LjggMCAwIDAgLjEuMTVjLjA3LjA4LjE3LjE3LjMuMjcuMjguMTguNy4zMyAxLjI4LjMzIDEuMDMgMCAxLjczLS42NyAxLjc2LTEuNDguMDEtLjM3LS4xMi0uNzQtLjQtMS4wMi4yOC0uMjguNDEtLjY1LjQtMS4wMi0uMDMtLjgtLjczLTEuNDgtMS43Ni0xLjQ4LS41OSAwLTEgLjE1LTEuMjguMzNhMS40IDEuNCAwIDAgMC0uNC40MmwtLjAxLjAxdi4wMWEuNS41IDAgMCAwIC44Ny40OC40Mi40MiAwIDAgMSAuMS0uMDhjLjEtLjA3LjMtLjE3LjcyLS4xNy41NyAwIC43NS4zMy43Ni41MiAwIC4xLS4wNC4yMS0uMTMuMy0uMS4wOC0uMjkuMTgtLjYzLjE4Wm0tLjgyLS43NS4wMS0uMDJ2LjAyWk04LjUgNGEuNS41IDAgMSAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0wIDVhLjUuNSAwIDEgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFpNOCAxNC41YzAtLjI4LjIyLS41LjUtLjVoOGEuNS41IDAgMSAxIDAgMWgtOGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dE51bWJlckxpc3RMdHI5MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdEx0cjkwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE4Ljk5IDQuNjFhLjUuNSAwIDAgMS0uNDkuMzloLTRhLjUuNSAwIDAgMSAwLTFoMi41OGMtLjItLjIyLS4zOC0uNDgtLjUzLS43OGEuNS41IDAgMSAxIC45LS40NCAyLjk2IDIuOTYgMCAwIDAgMS4xNSAxLjJsLjEyLjA3Yy4yLjEuMzIuMzQuMjcuNTZabS03LjM0LTEuOTZjLjItLjIuNS0uMi43IDBoLjAxdi4wMWExLjMgMS4zIDAgMCAxIC4xMS4xMkEyLjQ0IDIuNDQgMCAwIDEgMTMgNC4zMmMwIC4zOC0uMS43OS0uMzUgMS4xMUExLjQgMS40IDAgMCAxIDExLjUgNmExLjUgMS41IDAgMCAxLTEuMi0uNTcgNC4yIDQuMiAwIDAgMS0uNTYtLjk2Yy0uMTYtLjMtLjMtLjU0LS40Ny0uN0EuOTMuOTMgMCAwIDAgOSAzLjU4VjUuNWEuNS41IDAgMSAxLTEgMFYzYzAtLjI4LjIyLS41LjUtLjUuNjIgMCAxLjA4LjIgMS40NC41MmEzLjMyIDMuMzIgMCAwIDEgLjc3IDEuMTVjLjEzLjI3LjIzLjQ3LjM1LjYyYS41LjUgMCAwIDAgLjQ0LjIxYy4xOCAwIC4yOC0uMDcuMzUtLjE2LjA5LS4xMi4xNS0uMy4xNS0uNTNhMS41IDEuNSAwIDAgMC0uMzUtLjk1di0uMDFhLjUuNSAwIDAgMSAwLS43Wk01IDQuMjVhLjUuNSAwIDAgMC0xIDBjMCAuMzQtLjEuNTMtLjE4LjYzLS4wOS4xLS4yLjEzLS4zLjEzQzMuMzIgNSAzIDQuODIgMyA0LjI1YzAtLjQxLjEtLjYzLjE3LS43MmEuNDEuNDEgMCAwIDEgLjA3LS4xLjUuNSAwIDAgMC0uNDYtLjg4aC0uMDFsLS4wMi4wMmEuODMuODMgMCAwIDAtLjE1LjEgMS40IDEuNCAwIDAgMC0uMjcuM2MtLjE4LjI4LS4zMy43LS4zMyAxLjI4IDAgMS4wMy42NyAxLjczIDEuNDggMS43Ni4zNy4wMS43NC0uMTIgMS4wMi0uNC4yOC4yOC42NS40MSAxLjAyLjRDNi4zMiA1Ljk4IDcgNS4yOCA3IDQuMjVjMC0uNTktLjE1LTEtLjMzLTEuMjhhMS40IDEuNCAwIDAgMC0uNDItLjRsLS4wMS0uMDFoLS4wMWEuNS41IDAgMCAwLS40OC44N2wuMDguMWMuMDcuMS4xNy4zLjE3LjcyIDAgLjU3LS4zMy43NS0uNTIuNzZhLjM3LjM3IDAgMCAxLS4zLS4xM0M1LjEgNC43OCA1IDQuNTkgNSA0LjI1Wm0uNzUtLjgyLjAyLjAxaC0uMDJaTTUuMjUgOGMuNDEgMCAuNzUuMzQuNzUuNzV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YzAtLjQxLjM0LS43NS43NS0uNzVabTUgMGMuNDEgMCAuNzUuMzQuNzUuNzV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YzAtLjQxLjM0LS43NS43NS0uNzVabTUgMGMuNDEgMCAuNzUuMzQuNzUuNzV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdEx0cjkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdEx0cjkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xOC45OSA0LjYxYS41LjUgMCAwIDEtLjQ5LjM5aC00YS41LjUgMCAwIDEgMC0xaDIuNThjLS4yLS4yMi0uMzgtLjQ4LS41My0uNzhhLjUuNSAwIDEgMSAuOS0uNDQgMi45NiAyLjk2IDAgMCAwIDEuMTUgMS4ybC4xMi4wN2MuMi4xLjMyLjM0LjI3LjU2Wm0tNy4zNC0xLjk2Yy4yLS4yLjUtLjIuNyAwaC4wMXYuMDFhMS4zIDEuMyAwIDAgMSAuMTEuMTJBMi40NCAyLjQ0IDAgMCAxIDEzIDQuMzJjMCAuMzgtLjEuNzktLjM1IDEuMTFBMS40IDEuNCAwIDAgMSAxMS41IDZhMS41IDEuNSAwIDAgMS0xLjItLjU3IDQuMiA0LjIgMCAwIDEtLjU2LS45NmMtLjE2LS4zLS4zLS41NC0uNDctLjdBLjkzLjkzIDAgMCAwIDkgMy41OFY1LjVhLjUuNSAwIDEgMS0xIDBWM2MwLS4yOC4yMi0uNS41LS41LjYyIDAgMS4wOC4yIDEuNDQuNTJhMy4zMiAzLjMyIDAgMCAxIC43NyAxLjE1Yy4xMy4yNy4yMy40Ny4zNS42MmEuNS41IDAgMCAwIC40NC4yMWMuMTggMCAuMjgtLjA3LjM1LS4xNi4wOS0uMTIuMTUtLjMuMTUtLjUzYTEuNSAxLjUgMCAwIDAtLjM1LS45NXYtLjAxYS41LjUgMCAwIDEgMC0uN1pNNC41IDMuNzVjLjI4IDAgLjUuMjIuNS41IDAgLjM0LjEuNTMuMTguNjMuMDkuMS4yLjEzLjMuMTMuMi0uMDEuNTItLjE5LjUyLS43NiAwLS40MS0uMS0uNjMtLjE3LS43MmEuNDEuNDEgMCAwIDAtLjA3LS4xbC4wMi4wMmgtLjAxbC0uMDEtLjAxaC0uMDFhLjUuNSAwIDAgMSAuNDctLjg5aC4wMWwuMDIuMDJhLjgzLjgzIDAgMCAxIC4xNS4xYy4wOC4wNy4xNy4xNy4yNy4zLjE4LjI4LjMzLjcuMzMgMS4yOCAwIDEuMDMtLjY3IDEuNzMtMS40OCAxLjc2LS4zNy4wMS0uNzQtLjEyLTEuMDItLjQtLjI4LjI4LS42NS40MS0xLjAyLjRDMi42OCA1Ljk4IDIgNS4yOCAyIDQuMjVjMC0uNTkuMTUtMSAuMzMtMS4yOGExLjQgMS40IDAgMCAxIC40Mi0uNGwuMDEtLjAxaC4wMWEuNS41IDAgMCAxIC40OC44Ny40MS40MSAwIDAgMC0uMDguMWMtLjA3LjEtLjE3LjMtLjE3LjcyIDAgLjU3LjMzLjc1LjUyLjc2LjEgMCAuMjEtLjA0LjMtLjEzLjA4LS4xLjE4LS4yOS4xOC0uNjMgMC0uMjguMjItLjUuNS0uNVpNNS41IDhjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDEgMS0xIDB2LThjMC0uMjguMjItLjUuNS0uNVptNSAwYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAxIDEtMSAwdi04YzAtLjI4LjIyLS41LjUtLjVabTUgMGMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMSAxLTEgMHYtOGMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dE51bWJlckxpc3RMdHJSb3RhdGUyNzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dE51bWJlckxpc3RMdHJSb3RhdGUyNzBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC43NSAxMWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDAgMSAxLjUgMHY3LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNSAwYS43NS43NSAwIDAgMS0uNzUtLjc1di03LjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjcuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm01IDBhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTcuNWEuNzUuNzUgMCAwIDEgMS41IDB2Ny41YzAgLjQxLS4zNC43NS0uNzUuNzVaTTEuMDEgMTQuMzhBLjUuNSAwIDAgMSAxLjUgMTRoNGEuNS41IDAgMSAxIDAgMUgyLjkyYy4yLjIyLjM4LjQ4LjUzLjc4YS41LjUgMCAxIDEtLjkuNDQgMi45NiAyLjk2IDAgMCAwLTEuMTUtMS4yIDIuMDcgMi4wNyAwIDAgMC0uMTItLjA3LjUuNSAwIDAgMS0uMjctLjU2Wm03LjM0IDEuOTdhLjUuNSAwIDAgMS0uNyAwaC0uMDF2LS4wMWExLjQ1IDEuNDUgMCAwIDEtLjExLS4xMkEyLjUgMi41IDAgMCAxIDcgMTQuNjhjMC0uMzguMS0uNzkuMzUtMS4xMUExLjQgMS40IDAgMCAxIDguNSAxM2MuNTUgMCAuOTMuMjQgMS4yLjU3LjIxLjI1LjM3LjU3LjUuODNsLjA2LjEzYy4xNi4zLjMuNTQuNDcuNy4wOC4wOC4xNi4xNC4yNy4xOFYxMy41YS41LjUgMCAxIDEgMSAwVjE2YS41LjUgMCAwIDEtLjUuNWMtLjYyIDAtMS4wOC0uMi0xLjQ0LS41MmEzLjMyIDMuMzIgMCAwIDEtLjc3LTEuMTUgMy4xOCAzLjE4IDAgMCAwLS4zNS0uNjIuNS41IDAgMCAwLS40NC0uMjFjLS4xOCAwLS4yOC4wNy0uMzUuMTZhLjkzLjkzIDAgMCAwLS4xNS41MyAxLjUgMS41IDAgMCAwIC4zNS45NXYuMDFjLjIuMi4yLjUgMCAuN1ptNi42NS0xLjZhLjUuNSAwIDEgMCAxIDBjMC0uMzQuMS0uNTMuMTgtLjYzLjA5LS4xLjItLjEzLjMtLjEzLjIuMDEuNTIuMTkuNTIuNzYgMCAuNDEtLjEuNjMtLjE3LjcyYS40Mi40MiAwIDAgMS0uMDcuMS41LjUgMCAwIDAgLjQ2Ljg4aC4wMWwuMDItLjAyLjA0LS4wMi4xLS4wOGMuMDktLjA3LjE4LS4xNy4yOC0uMy4xOC0uMjguMzMtLjcuMzMtMS4yOCAwLTEuMDMtLjY3LTEuNzMtMS40OC0xLjc2LS4zNy0uMDEtLjc0LjEyLTEuMDIuNGExLjM3IDEuMzcgMCAwIDAtMS4wMi0uNGMtLjguMDMtMS40OC43My0xLjQ4IDEuNzYgMCAuNTkuMTUgMSAuMzMgMS4yOGExLjQgMS40IDAgMCAwIC40Mi40bC4wMS4wMWguMDFhLjUuNSAwIDAgMCAuNDgtLjg3LjQyLjQyIDAgMCAxLS4wOC0uMWMtLjA3LS4xLS4xNy0uMy0uMTctLjcyIDAtLjU3LjMzLS43NS41Mi0uNzYuMSAwIC4yMS4wNC4zLjEzLjA4LjEuMTguMjkuMTguNjNabS0uNzUuODItLjAyLS4wMWguMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdEx0clJvdGF0ZTI3MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dE51bWJlckxpc3RMdHJSb3RhdGUyNzBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuNSAxMWEuNS41IDAgMCAxLS41LS41di04YS41LjUgMCAwIDEgMSAwdjhhLjUuNSAwIDAgMS0uNS41Wm01IDBhLjUuNSAwIDAgMS0uNS0uNXYtOGEuNS41IDAgMCAxIDEgMHY4YS41LjUgMCAwIDEtLjUuNVptNSAwYS41LjUgMCAwIDEtLjUtLjV2LThhLjUuNSAwIDAgMSAxIDB2OGEuNS41IDAgMCAxLS41LjVabS41IDMuNzVhLjUuNSAwIDEgMCAxIDBjMC0uMzQuMS0uNTMuMTgtLjYzLjA5LS4xLjItLjEzLjMtLjEzLjIuMDEuNTIuMTkuNTIuNzYgMCAuNDEtLjEuNjMtLjE3LjcyYS40Mi40MiAwIDAgMS0uMDcuMS41LjUgMCAwIDAgLjQ2Ljg4aC4wMWwuMDItLjAyLjA0LS4wMi4xLS4wOGMuMDktLjA3LjE4LS4xNy4yOC0uMy4xOC0uMjguMzMtLjcuMzMtMS4yOCAwLTEuMDMtLjY3LTEuNzMtMS40OC0xLjc2LS4zNy0uMDEtLjc0LjEyLTEuMDIuNGExLjM3IDEuMzcgMCAwIDAtMS4wMi0uNGMtLjguMDMtMS40OC43My0xLjQ4IDEuNzYgMCAuNTkuMTUgMSAuMzMgMS4yOGExLjQgMS40IDAgMCAwIC40Mi40bC4wMS4wMWguMDFhLjUuNSAwIDAgMCAuNDgtLjg3LjQyLjQyIDAgMCAxLS4wOC0uMWMtLjA3LS4xLS4xNy0uMy0uMTctLjcyIDAtLjU3LjMzLS43NS41Mi0uNzYuMSAwIC4yMS4wNC4zLjEzLjA4LjEuMTguMjkuMTguNjNabS02LjY1IDEuNmEuNS41IDAgMCAxLS43IDBoLS4wMXYtLjAxYTEuNDUgMS40NSAwIDAgMS0uMTEtLjEyQTIuNSAyLjUgMCAwIDEgNyAxNC42OGMwLS4zOC4xLS43OS4zNS0xLjExQTEuNCAxLjQgMCAwIDEgOC41IDEzYy41NSAwIC45My4yNCAxLjIuNTdhNC4yIDQuMiAwIDAgMSAuNTYuOTZjLjE2LjMuMy41NC40Ny43LjA4LjA4LjE2LjE0LjI3LjE4VjEzLjVhLjUuNSAwIDEgMSAxIDBWMTZhLjUuNSAwIDAgMS0uNS41Yy0uNjIgMC0xLjA4LS4yLTEuNDQtLjUyYTMuMzIgMy4zMiAwIDAgMS0uNzctMS4xNSAzLjE4IDMuMTggMCAwIDAtLjM1LS42Mi41LjUgMCAwIDAtLjQ0LS4yMWMtLjE4IDAtLjI4LjA3LS4zNS4xNmEuOTMuOTMgMCAwIDAtLjE1LjUzIDEuNSAxLjUgMCAwIDAgLjM1Ljk1di4wMWMuMi4yLjIuNSAwIC43Wm0tNy4zNC0xLjk3QS41LjUgMCAwIDEgMS41IDE0aDRhLjUuNSAwIDEgMSAwIDFIMi45MmMuMi4yMi4zOC40OC41My43OGEuNS41IDAgMSAxLS45LjQ0IDIuOTYgMi45NiAwIDAgMC0xLjE1LTEuMiAyLjA3IDIuMDcgMCAwIDAtLjEyLS4wNy41LjUgMCAwIDEtLjI3LS41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHROdW1iZXJMaXN0Um90YXRlMjcwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHROdW1iZXJMaXN0Um90YXRlMjcwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNzUgMTFhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTcuNWEuNzUuNzUgMCAwIDEgMS41IDB2Ny41YzAgLjQxLS4zNC43NS0uNzUuNzVabTUgMGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDAgMSAxLjUgMHY3LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptNSAwYS43NS43NSAwIDAgMS0uNzUtLjc1di03LjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjcuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wk0xLjAxIDE0LjM4QS41LjUgMCAwIDEgMS41IDE0aDRhLjUuNSAwIDEgMSAwIDFIMi45MmMuMi4yMi4zOC40OC41My43OGEuNS41IDAgMSAxLS45LjQ0IDIuOTYgMi45NiAwIDAgMC0xLjE1LTEuMiAyLjA3IDIuMDcgMCAwIDAtLjEyLS4wNy41LjUgMCAwIDEtLjI3LS41NlptNy4zNCAxLjk3YS41LjUgMCAwIDEtLjcgMGgtLjAxdi0uMDFhMS40NSAxLjQ1IDAgMCAxLS4xMS0uMTJBMi41IDIuNSAwIDAgMSA3IDE0LjY4YzAtLjM4LjEtLjc5LjM1LTEuMTFBMS40IDEuNCAwIDAgMSA4LjUgMTNjLjU1IDAgLjkzLjI0IDEuMi41Ny4yMS4yNS4zNy41Ny41LjgzbC4wNi4xM2MuMTYuMy4zLjU0LjQ3LjcuMDguMDguMTYuMTQuMjcuMThWMTMuNWEuNS41IDAgMSAxIDEgMFYxNmEuNS41IDAgMCAxLS41LjVjLS42MiAwLTEuMDgtLjItMS40NC0uNTJhMy4zMiAzLjMyIDAgMCAxLS43Ny0xLjE1IDMuMTggMy4xOCAwIDAgMC0uMzUtLjYyLjUuNSAwIDAgMC0uNDQtLjIxYy0uMTggMC0uMjguMDctLjM1LjE2YS45My45MyAwIDAgMC0uMTUuNTMgMS41IDEuNSAwIDAgMCAuMzUuOTV2LjAxYy4yLjIuMi41IDAgLjdabTYuNjUtMS42YS41LjUgMCAxIDAgMSAwYzAtLjM0LjEtLjUzLjE4LS42My4wOS0uMS4yLS4xMy4zLS4xMy4yLjAxLjUyLjE5LjUyLjc2IDAgLjQxLS4xLjYzLS4xNy43MmEuNDIuNDIgMCAwIDEtLjA3LjEuNS41IDAgMCAwIC40Ni44OGguMDFsLjAyLS4wMi4wNC0uMDIuMS0uMDhjLjA5LS4wNy4xOC0uMTcuMjgtLjMuMTgtLjI4LjMzLS43LjMzLTEuMjggMC0xLjAzLS42Ny0xLjczLTEuNDgtMS43Ni0uMzctLjAxLS43NC4xMi0xLjAyLjRhMS4zNyAxLjM3IDAgMCAwLTEuMDItLjRjLS44LjAzLTEuNDguNzMtMS40OCAxLjc2IDAgLjU5LjE1IDEgLjMzIDEuMjhhMS40IDEuNCAwIDAgMCAuNDIuNGwuMDEuMDFoLjAxYS41LjUgMCAwIDAgLjQ4LS44Ny40Mi40MiAwIDAgMS0uMDgtLjFjLS4wNy0uMS0uMTctLjMtLjE3LS43MiAwLS41Ny4zMy0uNzUuNTItLjc2LjEgMCAuMjEuMDQuMy4xMy4wOC4xLjE4LjI5LjE4LjYzWm0tLjc1LjgyLS4wMi0uMDFoLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dE51bWJlckxpc3RSb3RhdGUyNzBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHROdW1iZXJMaXN0Um90YXRlMjcwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMTFhLjUuNSAwIDAgMS0uNS0uNXYtOGEuNS41IDAgMCAxIDEgMHY4YS41LjUgMCAwIDEtLjUuNVptNSAwYS41LjUgMCAwIDEtLjUtLjV2LThhLjUuNSAwIDAgMSAxIDB2OGEuNS41IDAgMCAxLS41LjVabTUgMGEuNS41IDAgMCAxLS41LS41di04YS41LjUgMCAwIDEgMSAwdjhhLjUuNSAwIDAgMS0uNS41Wm0uNSAzLjc1YS41LjUgMCAxIDAgMSAwYzAtLjM0LjEtLjUzLjE4LS42My4wOS0uMS4yLS4xMy4zLS4xMy4yLjAxLjUyLjE5LjUyLjc2IDAgLjQxLS4xLjYzLS4xNy43MmEuNDIuNDIgMCAwIDEtLjA3LjEuNS41IDAgMCAwIC40Ni44OGguMDFsLjAyLS4wMi4wNC0uMDIuMS0uMDhjLjA5LS4wNy4xOC0uMTcuMjgtLjMuMTgtLjI4LjMzLS43LjMzLTEuMjggMC0xLjAzLS42Ny0xLjczLTEuNDgtMS43Ni0uMzctLjAxLS43NC4xMi0xLjAyLjRhMS4zNyAxLjM3IDAgMCAwLTEuMDItLjRjLS44LjAzLTEuNDguNzMtMS40OCAxLjc2IDAgLjU5LjE1IDEgLjMzIDEuMjhhMS40IDEuNCAwIDAgMCAuNDIuNGwuMDEuMDFoLjAxYS41LjUgMCAwIDAgLjQ4LS44Ny40Mi40MiAwIDAgMS0uMDgtLjFjLS4wNy0uMS0uMTctLjMtLjE3LS43MiAwLS41Ny4zMy0uNzUuNTItLjc2LjEgMCAuMjEuMDQuMy4xMy4wOC4xLjE4LjI5LjE4LjYzWm0tNi42NSAxLjZhLjUuNSAwIDAgMS0uNyAwaC0uMDF2LS4wMWExLjQ1IDEuNDUgMCAwIDEtLjExLS4xMkEyLjUgMi41IDAgMCAxIDcgMTQuNjhjMC0uMzguMS0uNzkuMzUtMS4xMUExLjQgMS40IDAgMCAxIDguNSAxM2MuNTUgMCAuOTMuMjQgMS4yLjU3YTQuMiA0LjIgMCAwIDEgLjU2Ljk2Yy4xNi4zLjMuNTQuNDcuNy4wOC4wOC4xNi4xNC4yNy4xOFYxMy41YS41LjUgMCAxIDEgMSAwVjE2YS41LjUgMCAwIDEtLjUuNWMtLjYyIDAtMS4wOC0uMi0xLjQ0LS41MmEzLjMyIDMuMzIgMCAwIDEtLjc3LTEuMTUgMy4xOCAzLjE4IDAgMCAwLS4zNS0uNjIuNS41IDAgMCAwLS40NC0uMjFjLS4xOCAwLS4yOC4wNy0uMzUuMTZhLjkzLjkzIDAgMCAwLS4xNS41MyAxLjUgMS41IDAgMCAwIC4zNS45NXYuMDFjLjIuMi4yLjUgMCAuN1ptLTcuMzQtMS45N0EuNS41IDAgMCAxIDEuNSAxNGg0YS41LjUgMCAxIDEgMCAxSDIuOTJjLjIuMjIuMzguNDguNTMuNzhhLjUuNSAwIDEgMS0uOS40NCAyLjk2IDIuOTYgMCAwIDAtMS4xNS0xLjIgMi4wNyAyLjA3IDAgMCAwLS4xMi0uMDcuNS41IDAgMCAxLS4yNy0uNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdFJvdGF0ZTkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHROdW1iZXJMaXN0Um90YXRlOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTguOTkgNC42MWEuNS41IDAgMCAxLS40OS4zOWgtNGEuNS41IDAgMCAxIDAtMWgyLjU4Yy0uMi0uMjItLjM4LS40OC0uNTMtLjc4YS41LjUgMCAxIDEgLjktLjQ0IDIuOTYgMi45NiAwIDAgMCAxLjE1IDEuMmwuMTIuMDdjLjIuMS4zMi4zNC4yNy41NlptLTcuMzQtMS45NmMuMi0uMi41LS4yLjcgMGguMDF2LjAxYTEuMyAxLjMgMCAwIDEgLjExLjEyQTIuNDQgMi40NCAwIDAgMSAxMyA0LjMyYzAgLjM4LS4xLjc5LS4zNSAxLjExQTEuNCAxLjQgMCAwIDEgMTEuNSA2YTEuNSAxLjUgMCAwIDEtMS4yLS41NyA0LjIgNC4yIDAgMCAxLS41Ni0uOTZjLS4xNi0uMy0uMy0uNTQtLjQ3LS43QS45My45MyAwIDAgMCA5IDMuNThWNS41YS41LjUgMCAxIDEtMSAwVjNjMC0uMjguMjItLjUuNS0uNS42MiAwIDEuMDguMiAxLjQ0LjUyYTMuMzIgMy4zMiAwIDAgMSAuNzcgMS4xNWMuMTMuMjcuMjMuNDcuMzUuNjJhLjUuNSAwIDAgMCAuNDQuMjFjLjE4IDAgLjI4LS4wNy4zNS0uMTYuMDktLjEyLjE1LS4zLjE1LS41M2ExLjUgMS41IDAgMCAwLS4zNS0uOTV2LS4wMWEuNS41IDAgMCAxIDAtLjdaTTUgNC4yNWEuNS41IDAgMCAwLTEgMGMwIC4zNC0uMS41My0uMTguNjMtLjA5LjEtLjIuMTMtLjMuMTNDMy4zMiA1IDMgNC44MiAzIDQuMjVjMC0uNDEuMS0uNjMuMTctLjcyYS40MS40MSAwIDAgMSAuMDctLjEuNS41IDAgMCAwLS40Ni0uODhoLS4wMWwtLjAyLjAyYS44My44MyAwIDAgMC0uMTUuMSAxLjQgMS40IDAgMCAwLS4yNy4zYy0uMTguMjgtLjMzLjctLjMzIDEuMjggMCAxLjAzLjY3IDEuNzMgMS40OCAxLjc2LjM3LjAxLjc0LS4xMiAxLjAyLS40LjI4LjI4LjY1LjQxIDEuMDIuNEM2LjMyIDUuOTggNyA1LjI4IDcgNC4yNWMwLS41OS0uMTUtMS0uMzMtMS4yOGExLjQgMS40IDAgMCAwLS40Mi0uNGwtLjAxLS4wMWgtLjAxYS41LjUgMCAwIDAtLjQ4Ljg3bC4wOC4xYy4wNy4xLjE3LjMuMTcuNzIgMCAuNTctLjMzLjc1LS41Mi43NmEuMzcuMzcgMCAwIDEtLjMtLjEzQzUuMSA0Ljc4IDUgNC41OSA1IDQuMjVabS43NS0uODIuMDIuMDFoLS4wMlpNNS4yNSA4Yy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNSAwYy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNSAwYy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHROdW1iZXJMaXN0Um90YXRlOTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHROdW1iZXJMaXN0Um90YXRlOTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE4Ljk5IDQuNjFhLjUuNSAwIDAgMS0uNDkuMzloLTRhLjUuNSAwIDAgMSAwLTFoMi41OGMtLjItLjIyLS4zOC0uNDgtLjUzLS43OGEuNS41IDAgMSAxIC45LS40NCAyLjk2IDIuOTYgMCAwIDAgMS4xNSAxLjJsLjEyLjA3Yy4yLjEuMzIuMzQuMjcuNTZabS03LjM0LTEuOTZjLjItLjIuNS0uMi43IDBoLjAxdi4wMWExLjMgMS4zIDAgMCAxIC4xMS4xMkEyLjQ0IDIuNDQgMCAwIDEgMTMgNC4zMmMwIC4zOC0uMS43OS0uMzUgMS4xMUExLjQgMS40IDAgMCAxIDExLjUgNmExLjUgMS41IDAgMCAxLTEuMi0uNTcgNC4yIDQuMiAwIDAgMS0uNTYtLjk2Yy0uMTYtLjMtLjMtLjU0LS40Ny0uN0EuOTMuOTMgMCAwIDAgOSAzLjU4VjUuNWEuNS41IDAgMSAxLTEgMFYzYzAtLjI4LjIyLS41LjUtLjUuNjIgMCAxLjA4LjIgMS40NC41MmEzLjMyIDMuMzIgMCAwIDEgLjc3IDEuMTVjLjEzLjI3LjIzLjQ3LjM1LjYyYS41LjUgMCAwIDAgLjQ0LjIxYy4xOCAwIC4yOC0uMDcuMzUtLjE2LjA5LS4xMi4xNS0uMy4xNS0uNTNhMS41IDEuNSAwIDAgMC0uMzUtLjk1di0uMDFhLjUuNSAwIDAgMSAwLS43Wk00LjUgMy43NWMuMjggMCAuNS4yMi41LjUgMCAuMzQuMS41My4xOC42My4wOS4xLjIuMTMuMy4xMy4yLS4wMS41Mi0uMTkuNTItLjc2IDAtLjQxLS4xLS42My0uMTctLjcyYS40MS40MSAwIDAgMC0uMDctLjFsLjAyLjAyaC0uMDFsLS4wMS0uMDFoLS4wMWEuNS41IDAgMCAxIC40Ny0uODloLjAxbC4wMi4wMmEuODMuODMgMCAwIDEgLjE1LjFjLjA4LjA3LjE3LjE3LjI3LjMuMTguMjguMzMuNy4zMyAxLjI4IDAgMS4wMy0uNjcgMS43My0xLjQ4IDEuNzYtLjM3LjAxLS43NC0uMTItMS4wMi0uNC0uMjguMjgtLjY1LjQxLTEuMDIuNEMyLjY4IDUuOTggMiA1LjI4IDIgNC4yNWMwLS41OS4xNS0xIC4zMy0xLjI4YTEuNCAxLjQgMCAwIDEgLjQyLS40bC4wMS0uMDFoLjAxYS41LjUgMCAwIDEgLjQ4Ljg3LjQxLjQxIDAgMCAwLS4wOC4xYy0uMDcuMS0uMTcuMy0uMTcuNzIgMCAuNTcuMzMuNzUuNTIuNzYuMSAwIC4yMS0uMDQuMy0uMTMuMDgtLjEuMTgtLjI5LjE4LS42MyAwLS4yOC4yMi0uNS41LS41Wk01LjUgOGMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMSAxLTEgMHYtOGMwLS4yOC4yMi0uNS41LS41Wm01IDBjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDEgMS0xIDB2LThjMC0uMjguMjItLjUuNS0uNVptNSAwYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAxIDEtMSAwdi04YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdFJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdFJ0bEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyAxLjVhLjUuNSAwIDAgMC0uMzktLjQ5LjUuNSAwIDAgMC0uNTYuMjdsLS4wNy4xMmEyLjk2IDIuOTYgMCAwIDEtMS4yIDEuMTUuNS41IDAgMSAwIC40NC45Yy4zLS4xNS41Ni0uMzQuNzgtLjUzVjUuNWEuNS41IDAgMCAwIDEgMHYtNFptLTIuMzUgNi4xNWEuNS41IDAgMCAwIC43LjdsLjA1LS4wNC4yLS4xMmMuMTctLjEuNDEtLjE5LjcxLS4xOS4yMyAwIC40MS4wNi41My4xNS4xLjA3LjE2LjE3LjE2LjM1YS41LjUgMCAwIDEtLjIxLjQ0IDMuMTggMy4xOCAwIDAgMS0uNzYuNDNjLS4zMi4xNS0uNy4zNi0xIC43LS4zMy4zNS0uNTMuODEtLjUzIDEuNDMgMCAuMjguMjIuNS41LjVoMi41YS41LjUgMCAwIDAgMC0xaC0xLjkxYy4wNC0uMS4xLS4yLjE3LS4yN2EyLjM4IDIuMzggMCAwIDEgLjgzLS41M2MuMjctLjEzLjU5LS4yOS44NC0uNS4zMy0uMjcuNTctLjY1LjU3LTEuMiAwLS41LS4yMi0uOS0uNTctMS4xNWExLjkyIDEuOTIgMCAwIDAtMS4xLS4zNWgtLjAxYTIuNSAyLjUgMCAwIDAtMS42Ni42M3YuMDFoLS4wMVptMS4xIDcuODVjMC0uMjguMjItLjUuNS0uNS4zNCAwIC41My0uMS42My0uMTguMS0uMDkuMTMtLjIuMTMtLjMtLjAxLS4yLS4xOS0uNTItLjc2LS41Mi0uNDEgMC0uNjMuMS0uNzIuMTdhLjQyLjQyIDAgMCAwLS4xLjA3bC4wMi0uMDJ2LjAxbC0uMDEuMDF2LjAxYS41LjUgMCAwIDEtLjg5LS40N3YtLjAxbC4wMi0uMDIuMDItLjA0LjA4LS4xYy4wNy0uMDkuMTctLjE4LjMtLjI4LjI4LS4xOC43LS4zMyAxLjI4LS4zMyAxLjAzIDAgMS43My42NyAxLjc2IDEuNDguMDEuMzctLjEyLjc0LS40IDEuMDIuMjguMjguNDEuNjUuNCAxLjAyLS4wMy44LS43MyAxLjQ4LTEuNzYgMS40OC0uNTkgMC0xLS4xNS0xLjI4LS4zM2ExLjQgMS40IDAgMCAxLS40LS40MmwtLjAxLS4wMXYtLjAxYS41LjUgMCAwIDEgLjg3LS40OGwuMS4wOGMuMS4wNy4zLjE3LjcyLjE3LjU3IDAgLjc1LS4zMy43Ni0uNTIgMC0uMS0uMDQtLjIxLS4xMy0uMy0uMS0uMDgtLjI5LS4xOC0uNjMtLjE4YS41LjUgMCAwIDEtLjUtLjVaTTMuNzUgNGEuNzUuNzUgMCAxIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0wIDVhLjc1Ljc1IDAgMSAwIDAgMS41aDcuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTcuNVptMCA1YS43NS43NSAwIDAgMCAwIDEuNWg3LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdFJ0bFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dE51bWJlckxpc3RSdGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDEuNWEuNS41IDAgMCAwLS4zOC0uNDkuNS41IDAgMCAwLS41Ny4yN2wtLjA3LjEyYTIuOTYgMi45NiAwIDAgMS0xLjIgMS4xNS41LjUgMCAwIDAgLjQ0LjljLjMtLjE1LjU2LS4zNC43OC0uNTNWNS41YS41LjUgMCAxIDAgMSAwdi00Wm0tMi4zNSA2LjE1YS41LjUgMCAwIDAgLjcuN2wuMDUtLjA0LjItLjEyYy4xNy0uMS40MS0uMTkuNzEtLjE5LjIzIDAgLjQxLjA2LjUzLjE1LjEuMDcuMTYuMTcuMTYuMzVhLjUuNSAwIDAgMS0uMjEuNDRjLS4xNS4xMi0uMzUuMjItLjYyLjM1bC0uMTQuMDhjLS4zMi4xNS0uNy4zNi0xIC43LS4zMy4zNS0uNTMuODEtLjUzIDEuNDMgMCAuMjguMjIuNS41LjVoMi41YS41LjUgMCAwIDAgMC0xaC0xLjkxYy4wNC0uMS4xLS4yLjE3LS4yN2EyLjM4IDIuMzggMCAwIDEgLjgzLS41M2MuMjctLjEzLjU5LS4yOS44NC0uNS4zMy0uMjcuNTctLjY1LjU3LTEuMiAwLS41LS4yMi0uOS0uNTctMS4xNWExLjkyIDEuOTIgMCAwIDAtMS4xLS4zNWgtLjAxYTIuNSAyLjUgMCAwIDAtMS42Ni42M3YuMDFoLS4wMVptMS4xIDcuODVjMC0uMjguMjItLjUuNS0uNS4zNCAwIC41My0uMS42My0uMTguMS0uMDkuMTMtLjIuMTMtLjMtLjAxLS4yLS4xOS0uNTItLjc2LS41Mi0uNDEgMC0uNjMuMS0uNzIuMTdhLjQxLjQxIDAgMCAwLS4xLjA3bC4wMi0uMDJ2LjAxbC0uMDEuMDF2LjAxYS41LjUgMCAwIDEtLjg5LS40N3YtLjAxaC4wMXYtLjAyYS44LjggMCAwIDEgLjExLS4xNWMuMDctLjA4LjE3LS4xNy4zLS4yNy4yOC0uMTguNy0uMzMgMS4yOC0uMzMgMS4wMyAwIDEuNzMuNjcgMS43NiAxLjQ4LjAxLjM3LS4xMi43NC0uNCAxLjAyLjI4LjI4LjQxLjY1LjQgMS4wMi0uMDMuOC0uNzMgMS40OC0xLjc2IDEuNDgtLjU5IDAtMS0uMTUtMS4yOC0uMzNhMS40IDEuNCAwIDAgMS0uNC0uNDJsLS4wMS0uMDF2LS4wMWEuNS41IDAgMCAxIC44OC0uNDhjLjAxLjAyLjA0LjA1LjA5LjA4LjEuMDcuMy4xNy43Mi4xNy41NyAwIC43NS0uMzMuNzYtLjUyIDAtLjEtLjA0LS4yMS0uMTMtLjMtLjEtLjA4LS4yOS0uMTgtLjYzLS4xOGEuNS41IDAgMCAxLS41LS41Wk0zLjUgNGEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0wIDVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFptMCA1YS41LjUgMCAxIDAgMCAxaDhhLjUuNSAwIDAgMCAwLTFoLThaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdFJ0bDkwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHROdW1iZXJMaXN0UnRsOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4yNSAyYy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNSAwYy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNSAwYy40MSAwIC43NS4zNC43NS43NXY3LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi03LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMy41IDE0Ljc0Yy4yOCAwIC41LjIzLjUuNSAwIC4zNS4xLjU0LjE4LjYzLjA5LjEuMi4xMy4zLjEzLjIgMCAuNTItLjE5LjUyLS43NiAwLS40LS4xLS42Mi0uMTctLjcyYS40MS40MSAwIDAgMC0uMDctLjA5bC4wMi4wMWgtLjAydi0uMDFoLS4wMWEuNS41IDAgMCAxIC40Ny0uODhoLjAxbC4wMi4wMWEuODMuODMgMCAwIDEgLjE1LjFjLjA4LjA3LjE3LjE3LjI3LjMuMTguMjkuMzMuNy4zMyAxLjI4IDAgMS4wMy0uNjcgMS43My0xLjQ4IDEuNzYtLjM3LjAxLS43NC0uMTItMS4wMi0uNC0uMjguMjgtLjY1LjQxLTEuMDIuNC0uOC0uMDMtMS40OC0uNzMtMS40OC0xLjc2IDAtLjU4LjE1LTEgLjMzLTEuMjdhMS40IDEuNCAwIDAgMSAuNDItLjRsLjAxLS4wMmguMDFhLjUuNSAwIDAgMSAuNDguODguNDEuNDEgMCAwIDAtLjA4LjFjLS4wNy4wOS0uMTcuMy0uMTcuNzEgMCAuNTcuMzMuNzUuNTIuNzYuMSAwIC4yMS0uMDMuMy0uMTMuMDgtLjEuMTgtLjI4LjE4LS42MyAwLS4yNy4yMi0uNS41LS41Wm03LjE1LTEuMWMuMi0uMi41LS4yLjcgMGguMDF2LjAyYTEuMzggMS4zOCAwIDAgMSAuMTEuMTJBMi40NCAyLjQ0IDAgMCAxIDEyIDE1LjN2LjAxYzAgLjM3LS4xLjc4LS4zNSAxLjFhMS40IDEuNCAwIDAgMS0xLjE1LjU3IDEuNSAxLjUgMCAwIDEtMS4yLS41NyA0LjIgNC4yIDAgMCAxLS41LS44M2wtLjA2LS4xMmMtLjE2LS4zMS0uMy0uNTUtLjQ3LS43MmEuOTMuOTMgMCAwIDAtLjI3LS4xN3YxLjkxYS41LjUgMCAxIDEtMSAwVjE0YzAtLjI3LjIyLS41LjUtLjUuNjIgMCAxLjA4LjIgMS40NC41M2EzLjMyIDMuMzIgMCAwIDEgLjc3IDEuMTVjLjEzLjI3LjIzLjQ2LjM1LjYxYS41LjUgMCAwIDAgLjQ0LjIxYy4xOCAwIC4yOC0uMDYuMzUtLjE2LjA5LS4xMS4xNS0uMy4xNS0uNTJhMS41IDEuNSAwIDAgMC0uMzUtLjk2LjUuNSAwIDAgMSAwLS43Wm03LjM0IDEuOTdhLjUuNSAwIDAgMS0uNDkuMzhoLTRhLjUuNSAwIDEgMSAwLTFoMi41OGMtLjItLjIxLS4zOC0uNDctLjUzLS43N2EuNS41IDAgMSAxIC45LS40NSAyLjk2IDIuOTYgMCAwIDAgMS4xNSAxLjJsLjEyLjA4Yy4yLjEuMzIuMzMuMjcuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0TnVtYmVyTGlzdFJ0bDkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdFJ0bDkwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMmMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLTEgMHYtOGMwLS4yOC4yMi0uNS41LS41Wm01IDBjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0xIDB2LThjMC0uMjguMjItLjUuNS0uNVptNSAwYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtMSAwdi04YzAtLjI4LjIyLS41LjUtLjVabS0xMSAxMi43NGMuMjggMCAuNS4yMy41LjUgMCAuMzUuMS41NC4xOC42My4wOS4xLjIuMTMuMy4xMy4yIDAgLjUyLS4xOS41Mi0uNzYgMC0uNC0uMS0uNjItLjE3LS43MmEuNDEuNDEgMCAwIDAtLjA3LS4wOWwuMDIuMDFoLS4wMnYtLjAxaC0uMDFhLjUuNSAwIDAgMSAuNDctLjg4aC4wMWwuMDIuMDFhLjgzLjgzIDAgMCAxIC4xNS4xYy4wOC4wNy4xNy4xNy4yNy4zLjE4LjI5LjMzLjcuMzMgMS4yOCAwIDEuMDMtLjY3IDEuNzMtMS40OCAxLjc2LS4zNy4wMS0uNzQtLjEyLTEuMDItLjQtLjI4LjI4LS42NS40MS0xLjAyLjQtLjgtLjAzLTEuNDgtLjczLTEuNDgtMS43NiAwLS41OC4xNS0xIC4zMy0xLjI3YTEuNCAxLjQgMCAwIDEgLjQyLS40bC4wMS0uMDJoLjAxYS41LjUgMCAwIDEgLjQ4Ljg4LjQxLjQxIDAgMCAwLS4wOC4xYy0uMDcuMDktLjE3LjMtLjE3LjcxIDAgLjU3LjMzLjc1LjUyLjc2LjEgMCAuMjEtLjAzLjMtLjEzLjA4LS4xLjE4LS4yOC4xOC0uNjMgMC0uMjcuMjItLjUuNS0uNVptNy4xNS0xLjFjLjItLjIuNS0uMi43IDBoLjAxdi4wMmExLjM4IDEuMzggMCAwIDEgLjExLjEyQTIuNDQgMi40NCAwIDAgMSAxMiAxNS4zdi4wMWMwIC4zNy0uMS43OC0uMzUgMS4xYTEuNCAxLjQgMCAwIDEtMS4xNS41NyAxLjUgMS41IDAgMCAxLTEuMi0uNTcgNC4yIDQuMiAwIDAgMS0uNS0uODNsLS4wNi0uMTJjLS4xNi0uMzEtLjMtLjU1LS40Ny0uNzJhLjkzLjkzIDAgMCAwLS4yNy0uMTd2MS45MWEuNS41IDAgMSAxLTEgMFYxNGMwLS4yNy4yMi0uNS41LS41LjYyIDAgMS4wOC4yIDEuNDQuNTNhMy4zMiAzLjMyIDAgMCAxIC43NyAxLjE1Yy4xMy4yNy4yMy40Ni4zNS42MWEuNS41IDAgMCAwIC40NC4yMWMuMTggMCAuMjgtLjA2LjM1LS4xNi4wOS0uMTEuMTUtLjMuMTUtLjUyYTEuNSAxLjUgMCAwIDAtLjM1LS45Ni41LjUgMCAwIDEgMC0uN1ptNy4zNCAxLjk3YS41LjUgMCAwIDEtLjQ5LjM4aC00YS41LjUgMCAxIDEgMC0xaDIuNThjLS4yLS4yMS0uMzgtLjQ3LS41My0uNzdhLjUuNSAwIDEgMSAuOS0uNDUgMi45NiAyLjk2IDAgMCAwIDEuMTUgMS4ybC4xMi4wOGMuMi4xLjMyLjMzLjI3LjU2WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dE51bWJlckxpc3RSdGxSb3RhdGUyNzBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dE51bWJlckxpc3RSdGxSb3RhdGUyNzBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMS4wMSA0LjRBLjUuNSAwIDAgMSAxLjUgNGg0YS41LjUgMCAxIDEgMCAxSDIuOTJjLjIuMjIuMzguNDguNTMuNzhhLjUuNSAwIDEgMS0uOS40NSAyLjk2IDIuOTYgMCAwIDAtMS4xNS0xLjIgMi4wNyAyLjA3IDAgMCAwLS4xMi0uMDhBLjUuNSAwIDAgMSAxIDQuNFptNy4zNCAxLjk2YS41LjUgMCAwIDEtLjcgMGgtLjAxdi0uMDJhMS4zOCAxLjM4IDAgMCAxLS4xMS0uMTJBMi41IDIuNSAwIDAgMSA3IDQuN2MwLS4zOC4xLS43OS4zNS0xLjEyYTEuNCAxLjQgMCAwIDEgMS4xNS0uNTZjLjU1IDAgLjkzLjI0IDEuMi41N2E0LjIgNC4yIDAgMCAxIC41Ni45NWMuMTYuMzEuMy41NS40Ny43Mi4wOC4wNi4xNi4xMi4yNy4xN1YzLjVhLjUuNSAwIDEgMSAxIDBWNmEuNS41IDAgMCAxLS41LjVjLS42MiAwLTEuMDgtLjItMS40NC0uNTNhMy4zMiAzLjMyIDAgMCAxLS43Ny0xLjE0Yy0uMTMtLjI4LS4yMy0uNDctLjM1LS42MkEuNS41IDAgMCAwIDguNSA0Yy0uMTggMC0uMjguMDYtLjM1LjE2YS45My45MyAwIDAgMC0uMTUuNTIgMS41IDEuNSAwIDAgMCAuMzUuOTZjLjIuMi4yLjUxIDAgLjdaTTE1IDQuNzZhLjUuNSAwIDAgMCAxIDBjMC0uMzUuMS0uNTQuMTgtLjYzLjA5LS4xLjItLjEzLjMtLjEzLjIgMCAuNTIuMTkuNTIuNzYgMCAuNC0uMS42Mi0uMTcuNzJhLjQyLjQyIDAgMCAxLS4wNy4wOS41LjUgMCAwIDAgLjQ2Ljg4aC4wMWwuMDItLjAxYS44LjggMCAwIDAgLjE1LS4xYy4wOC0uMDcuMTctLjE3LjI3LS4zLjE4LS4yOS4zMy0uNy4zMy0xLjI4IDAtMS4wMy0uNjctMS43My0xLjQ4LTEuNzYtLjM3LS4wMS0uNzQuMTItMS4wMi40YTEuMzcgMS4zNyAwIDAgMC0xLjAyLS40Yy0uOC4wMy0xLjQ4LjczLTEuNDggMS43NiAwIC41OC4xNSAxIC4zMyAxLjI3YTEuNCAxLjQgMCAwIDAgLjQyLjRsLjAxLjAyaC4wMWEuNS41IDAgMCAwIC40OC0uODguNDIuNDIgMCAwIDEtLjA4LS4xYy0uMDctLjA5LS4xNy0uMy0uMTctLjcxIDAtLjU3LjMzLS43NS41Mi0uNzYuMSAwIC4yMS4wMy4zLjEzLjA4LjEuMTguMjguMTguNjNabS0uNzUuODFoLS4wMnYtLjAxbC4wMi4wMVpNOS43NSAxOGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDAgMSAxLjUgMHY3LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptLTUgMGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDAgMSAxLjUgMHY3LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptOS4yNS0uNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi03LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHROdW1iZXJMaXN0UnRsUm90YXRlMjcwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0TnVtYmVyTGlzdFJ0bFJvdGF0ZTI3MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMS4wMSA0LjRBLjUuNSAwIDAgMSAxLjUgNGg0YS41LjUgMCAxIDEgMCAxSDIuOTJjLjIuMjIuMzguNDguNTMuNzhhLjUuNSAwIDEgMS0uOS40NSAyLjk2IDIuOTYgMCAwIDAtMS4xNS0xLjIgMi4wNyAyLjA3IDAgMCAwLS4xMi0uMDhBLjUuNSAwIDAgMSAxIDQuNFptNy4zNCAxLjk2YS41LjUgMCAwIDEtLjcgMGgtLjAxdi0uMDJhMS4zOCAxLjM4IDAgMCAxLS4xMS0uMTJBMi41IDIuNSAwIDAgMSA3IDQuN2MwLS4zOC4xLS43OS4zNS0xLjEyYTEuNCAxLjQgMCAwIDEgMS4xNS0uNTZjLjU1IDAgLjkzLjI0IDEuMi41N2E0LjIgNC4yIDAgMCAxIC41Ni45NWMuMTYuMzEuMy41NS40Ny43Mi4wOC4wNi4xNi4xMi4yNy4xN1YzLjVhLjUuNSAwIDEgMSAxIDBWNmEuNS41IDAgMCAxLS41LjVjLS42MiAwLTEuMDgtLjItMS40NC0uNTNhMy4zMiAzLjMyIDAgMCAxLS43Ny0xLjE0Yy0uMTMtLjI4LS4yMy0uNDctLjM1LS42MkEuNS41IDAgMCAwIDguNSA0Yy0uMTggMC0uMjguMDYtLjM1LjE2YS45My45MyAwIDAgMC0uMTUuNTIgMS41IDEuNSAwIDAgMCAuMzUuOTZjLjIuMi4yLjUxIDAgLjdaTTE1IDQuNzZhLjUuNSAwIDAgMCAxIDBjMC0uMzUuMS0uNTQuMTgtLjYzLjA5LS4xLjItLjEzLjMtLjEzLjIgMCAuNTIuMTkuNTIuNzYgMCAuNC0uMS42Mi0uMTcuNzJhLjQyLjQyIDAgMCAxLS4wNy4wOS41LjUgMCAwIDAgLjQ2Ljg4aC4wMWwuMDItLjAxYS44LjggMCAwIDAgLjE1LS4xYy4wOC0uMDcuMTctLjE3LjI3LS4zLjE4LS4yOS4zMy0uNy4zMy0xLjI4IDAtMS4wMy0uNjctMS43My0xLjQ4LTEuNzYtLjM3LS4wMS0uNzQuMTItMS4wMi40YTEuMzcgMS4zNyAwIDAgMC0xLjAyLS40Yy0uOC4wMy0xLjQ4LjczLTEuNDggMS43NiAwIC41OC4xNSAxIC4zMyAxLjI3YTEuNCAxLjQgMCAwIDAgLjQyLjRsLjAxLjAyaC4wMWEuNS41IDAgMCAwIC40OC0uODguNDIuNDIgMCAwIDEtLjA4LS4xYy0uMDctLjA5LS4xNy0uMy0uMTctLjcxIDAtLjU3LjMzLS43NS41Mi0uNzYuMSAwIC4yMS4wMy4zLjEzLjA4LjEuMTguMjguMTguNjNabS0uNzUuODFoLS4wMnYtLjAxbC4wMi4wMVpNOS41IDE4YS41LjUgMCAwIDEtLjUtLjV2LThhLjUuNSAwIDAgMSAxIDB2OGEuNS41IDAgMCAxLS41LjVabS01IDBhLjUuNSAwIDAgMS0uNS0uNXYtOGEuNS41IDAgMCAxIDEgMHY4YS41LjUgMCAwIDEtLjUuNVptOS41LS41YS41LjUgMCAwIDAgMSAwdi04YS41LjUgMCAwIDAtMSAwdjhaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UGFyYWdyYXBoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQYXJhZ3JhcGhGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMjUgMmMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAxNS4yNSA4aC0zLjhsMS4zNiAxLjVhLjc1Ljc1IDAgMCAxLTEuMTIgMUw5LjIgNy43NWEuNzUuNzUgMCAwIDEgMC0xTDExLjcgNGEuNzUuNzUgMCAwIDEgMS4xMiAxbC0xLjM2IDEuNWgzLjhjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNOC4zIDkuNWEuNzUuNzUgMCAxIDAtMS4xIDFMOC41NSAxMmgtNS44YS43NS43NSAwIDAgMCAwIDEuNWg1LjhMNy4yIDE1YS43NS43NSAwIDAgMCAxLjEgMWwyLjUtMi43NWEuNzUuNzUgMCAwIDAgMC0xTDguMyA5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UGFyYWdyYXBoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UGFyYWdyYXBoUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMi4xNSAxMC44NWEuNS41IDAgMCAwIC43LS43TDEwLjcxIDhoNC43OUEyLjUgMi41IDAgMCAwIDE4IDUuNXYtM3MwLS41LS41LS41LS41LjUtLjUuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNC44bDIuMTUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0zIDNhLjUuNSAwIDAgMCAwIC43bDMgM1ptLTQuMy0xLjdhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTJIMi41cy0uNSAwLS41LjUuNS41LjUuNWg2LjhsLTIuMTUgMi4xNWEuNS41IDAgMCAwIC43LjdsMy0zYS41LjUgMCAwIDAgMC0uN2wtMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBhcmFncmFwaERpcmVjdGlvbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UGFyYWdyYXBoRGlyZWN0aW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgM2E0IDQgMCAxIDAgMCA4SDEzdjYuNWEuNS41IDAgMCAwIDEgMFY0aDF2MTMuNWEuNS41IDAgMCAwIDEgMFY0aC41YS41LjUgMCAwIDAgMC0xaC01Wk0zLjE1IDUuNjVjLjItLjIuNS0uMi43IDBsMiAyYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43TDQuNzkgOCAzLjE1IDYuMzVhLjUuNSAwIDAgMSAwLS43Wm0yLjcgNmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMNC4yMSAxNGwxLjY0LTEuNjVhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBhcmFncmFwaERpcmVjdGlvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFBhcmFncmFwaERpcmVjdGlvblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSAzYTQgNCAwIDEgMCAwIDhIMTN2Ni41YS41LjUgMCAwIDAgMSAwVjRoMXYxMy41YS41LjUgMCAwIDAgMSAwVjRoLjVhLjUuNSAwIDAgMCAwLTFoLTVaTTEzIDR2NmgtMS41YTMgMyAwIDAgMSAwLTZIMTNaTTMuMTUgNS42NWMuMi0uMi41LS4yLjcgMGwyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMNC43OSA4IDMuMTUgNi4zNWEuNS41IDAgMCAxIDAtLjdabTIuNyA2YS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjIxIDE0bDEuNjQtMS42NWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UGFyYWdyYXBoRGlyZWN0aW9uTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UGFyYWdyYXBoRGlyZWN0aW9uTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMS41IDNhNCA0IDAgMSAwIDAgOEgxM3Y2LjVhLjUuNSAwIDAgMCAxIDBWNGgxdjEzLjVhLjUuNSAwIDAgMCAxIDBWNGguNWEuNS41IDAgMCAwIDAtMWgtNVpNNS4xNSA3LjY1YS41LjUgMCAxIDEgLjcuN0w0LjIxIDEwbDEuNjQgMS42NWEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBhcmFncmFwaERpcmVjdGlvbkxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQYXJhZ3JhcGhEaXJlY3Rpb25MZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMS41IDNhNCA0IDAgMSAwIDAgOEgxM3Y2LjVhLjUuNSAwIDAgMCAxIDBWNGgxdjEzLjVhLjUuNSAwIDAgMCAxIDBWNGguNWEuNS41IDAgMCAwIDAtMWgtNVpNMTMgNHY2aC0xLjVhMyAzIDAgMCAxIDAtNkgxM1pNNS44NSA3LjY1YS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjIxIDEwbDEuNjQtMS42NWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UGFyYWdyYXBoRGlyZWN0aW9uUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFBhcmFncmFwaERpcmVjdGlvblJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjUgM2E0IDQgMCAxIDAgMCA4SDEzdjYuNWEuNS41IDAgMCAwIDEgMFY0aDF2MTMuNWEuNS41IDAgMCAwIDEgMFY0aC41YS41LjUgMCAwIDAgMC0xaC01Wk0zLjg1IDcuNjVhLjUuNSAwIDEgMC0uNy43TDQuNzkgMTBsLTEuNjQgMS42NWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBhcmFncmFwaERpcmVjdGlvblJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UGFyYWdyYXBoRGlyZWN0aW9uUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgM2E0IDQgMCAxIDAgMCA4SDEzdjYuNWEuNS41IDAgMCAwIDEgMFY0aDF2MTMuNWEuNS41IDAgMCAwIDEgMFY0aC41YS41LjUgMCAwIDAgMC0xaC01Wk0xMyA0djZoLTEuNWEzIDMgMCAwIDEgMC02SDEzWk0zLjE1IDcuNjVjLjItLjIuNS0uMi43IDBsMiAyYy4yLjIuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43TDQuNzkgMTAgMy4xNSA4LjM1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQZXJpb2RBc3Rlcmlza0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UGVyaW9kQXN0ZXJpc2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuMjUgNC43NWEuNzUuNzUgMCAwIDAtMS41IDB2MS44NmwtMS43Ny0uNThhLjc1Ljc1IDAgMSAwLS40NiAxLjQzbDEuNzcuNTgtMS4xIDEuNWEuNzUuNzUgMCAwIDAgMS4yMi44OGwxLjA5LTEuNSAxLjA5IDEuNWEuNzUuNzUgMCAxIDAgMS4yMS0uODhsLTEuMDktMS41IDEuNzctLjU4YS43NS43NSAwIDEgMC0uNDYtMS40M2wtMS43Ny41OFY0Ljc1Wk02LjUgMTZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UGVyaW9kQXN0ZXJpc2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQZXJpb2RBc3Rlcmlza1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIgNC41YS41LjUgMCAwIDAtMSAwdjIuNDZMOC42NSA2LjJhLjUuNSAwIDAgMC0uMy45NWwyLjM0Ljc2LTEuNDUgMmEuNS41IDAgMSAwIC44LjU5bDEuNDYtMiAxLjQ1IDJhLjUuNSAwIDAgMCAuOC0uNTlsLTEuNDQtMiAyLjM0LS43NmEuNS41IDAgMCAwLS4zLS45NUwxMiA2Ljk2VjQuNVpNNiAxNmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UG9zaXRpb25CZWhpbmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFBvc2l0aW9uQmVoaW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzUgMy41YzAtLjQxLjM0LS43NS43NS0uNzVoMTNhLjc1Ljc1IDAgMCAxIDAgMS41aC0xM2EuNzUuNzUgMCAwIDEtLjc1LS43NVptNSA1YTIuMjUgMi4yNSAwIDAgMSA0LjUgMHY1YS43NS43NSAwIDAgMCAxLjUgMHYtNWEzLjc1IDMuNzUgMCAxIDAtNy41IDB2NWEuNzUuNzUgMCAwIDAgMS41IDB2LTVabTguNzUgMS43NWgtMS43NXYtMS41aDEuNzVhLjc1Ljc1IDAgMCAxIDAgMS41Wm0tMTMtMS41aDEuNzV2MS41SDMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTAgNmEuNzUuNzUgMCAwIDAgMCAxLjVoMTNhLjc1Ljc1IDAgMCAwIDAtMS41aC0xM1ptNS4yNS02aDIuNXYxLjVoLTIuNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uQmVoaW5kUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UG9zaXRpb25CZWhpbmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAzYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1ptMTMgN2gtMlY5aDJhLjUuNSAwIDAgMSAwIDFabS0xMy0xaDJ2MWgtMmEuNS41IDAgMCAxIDAtMVptNSAwaDN2MWgtM1Y5Wk0zIDE1LjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptNC41LTdhMi41IDIuNSAwIDAgMSA1IDB2NWEuNS41IDAgMCAwIDEgMHYtNWEzLjUgMy41IDAgMSAwLTcgMHY1YS41LjUgMCAwIDAgMSAwdi01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uRnJvbnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFBvc2l0aW9uRnJvbnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi43NSAzLjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTEzYS43NS43NSAwIDAgMS0uNzUtLjc1Wk0xMCA2LjI1Yy0uOTggMC0xLjgxLjYzLTIuMTIgMS41SDYuMzNhMy43NSAzLjc1IDAgMCAxIDcuMzUgMGgtMS41NkEyLjI1IDIuMjUgMCAwIDAgMTAgNi4yNVptLTMuNzUgNWgxLjV2Mi4yNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuMjVabTcuNSAwaC0xLjV2Mi4yNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuMjVaTTMuNSAxNC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTNhLjc1Ljc1IDAgMCAwIDAtMS41aC0xM1ptMC02YS43NS43NSAwIDAgMCAwIDEuNWgxM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTEzWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uRnJvbnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvbkZyb250UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zLjUgM2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTMgOGgxdjIuNWEuNS41IDAgMCAxLTEgMFYxMVptNyAwaC0xdjIuNWEuNS41IDAgMCAwIDEgMFYxMVptMy0yYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxIDAtMWgxM1pNMTAgNWEzLjUgMy41IDAgMCAxIDMuNDYgM2gtMS4wMWEyLjUgMi41IDAgMCAwLTQuOSAwSDYuNTRjLjI0LTEuNyAxLjctMyAzLjQ2LTNaTTMuNSAxNWEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UG9zaXRpb25MaW5lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvbkxpbmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDEzYS43NS43NSAwIDAgMCAwLTEuNWgtMTNabTAgMTJhLjc1Ljc1IDAgMCAwIDAgMS41aDEzYS43NS43NSAwIDAgMCAwLTEuNWgtMTNabTcuMjUtMi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDVhLjc1Ljc1IDAgMCAxIDAgMS41aC01YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0tNi41LTRhMi4yNSAyLjI1IDAgMCAxIDQuNSAwdjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi01YTMuNzUgMy43NSAwIDEgMC03LjUgMHY1YS43NS43NSAwIDAgMCAxLjUgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQb3NpdGlvbkxpbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvbkxpbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAzYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1ptMCAxMmEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTcuNS0yLjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS03LTRhMi41IDIuNSAwIDAgMSA1IDB2NWEuNS41IDAgMCAwIDEgMHYtNWEzLjUgMy41IDAgMSAwLTcgMHY1YS41LjUgMCAwIDAgMSAwdi01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uU3F1YXJlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblNxdWFyZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDMuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEzYS43NS43NSAwIDAgMSAwIDEuNWgtMTNhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAgMTJjMC0uNDEuMzQtLjc1Ljc1LS43NWgxM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTEzYS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUtOS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTFabTExLjI1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMWEuNzUuNzUgMCAwIDEgMCAxLjVoLTFhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTMuNSA4Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgxYS43NS43NSAwIDAgMCAwLTEuNWgtMVptMTEuMjUuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxYS43NS43NSAwIDAgMSAwIDEuNWgtMWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMy41IDExLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxYS43NS43NSAwIDAgMCAwLTEuNWgtMVptMTEuMjUuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxYS43NS43NSAwIDAgMSAwIDEuNWgtMWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTctNGEyLjI1IDIuMjUgMCAwIDEgNC41IDB2NWEuNzUuNzUgMCAwIDAgMS41IDB2LTVhMy43NSAzLjc1IDAgMSAwLTcuNSAwdjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uU3F1YXJlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UG9zaXRpb25TcXVhcmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgMy41YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVabTAgMTJjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDZhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVptMTEuNS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wk0zLjUgOWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWm0xMS41LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaTTMuNSAxMmEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWm0xMS41LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabS03LjUtNGEyLjUgMi41IDAgMCAxIDUgMHY1YS41LjUgMCAwIDAgMSAwdi01YTMuNSAzLjUgMCAxIDAtNyAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UG9zaXRpb25TcXVhcmVMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblNxdWFyZUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDEzYS43NS43NSAwIDAgMCAwLTEuNWgtMTNabTguNSAzYS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEyWm0tLjc1IDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDEyYS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNUgxMlpNMi43NSAxNS41YzAtLjQxLjM0LS43NS43NS0uNzVoMTNhLjc1Ljc1IDAgMCAxIDAgMS41aC0xM2EuNzUuNzUgMCAwIDEtLjc1LS43NVptMS41LTdhMi4yNSAyLjI1IDAgMCAxIDQuNSAwdjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi01YTMuNzUgMy43NSAwIDEgMC03LjUgMHY1YS43NS43NSAwIDAgMCAxLjUgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQb3NpdGlvblNxdWFyZUxlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblNxdWFyZUxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMuNSAzYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pNMTIgNmEuNS41IDAgMCAwIDAgMWg0LjVhLjUuNSAwIDAgMCAwLTFIMTJabS0uNSAzLjVjMC0uMjguMjItLjUuNS0uNWg0LjVhLjUuNSAwIDAgMSAwIDFIMTJhLjUuNSAwIDAgMS0uNS0uNVpNMTIgMTJhLjUuNSAwIDAgMCAwIDFoNC41YS41LjUgMCAwIDAgMC0xSDEyWm0tOSAzLjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptMS03YTIuNSAyLjUgMCAwIDEgNSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVhMy41IDMuNSAwIDEgMC03IDB2NWEuNS41IDAgMCAwIDEgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQb3NpdGlvblNxdWFyZVJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblNxdWFyZVJpZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjUgMi43NWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEzYS43NS43NSAwIDAgMSAwLTEuNWgxM1ptLTguNSAzYS43NS43NSAwIDAgMSAwIDEuNUgzLjVhLjc1Ljc1IDAgMCAxIDAtMS41SDhabS43NSAzLjc1QS43NS43NSAwIDAgMCA4IDguNzVIMy41YS43NS43NSAwIDAgMCAwIDEuNUg4Yy40MSAwIC43NS0uMzQuNzUtLjc1Wk04IDExLjc1YS43NS43NSAwIDAgMSAwIDEuNUgzLjVhLjc1Ljc1IDAgMCAxIDAtMS41SDhabTkuMjUgMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMTNhLjc1Ljc1IDAgMCAwIDAgMS41aDEzYy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tMS41LTdhMi4yNSAyLjI1IDAgMCAwLTQuNSAwdjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01YTMuNzUgMy43NSAwIDEgMSA3LjUgMHY1YS43NS43NSAwIDAgMS0xLjUgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQb3NpdGlvblNxdWFyZVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UG9zaXRpb25TcXVhcmVSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSAzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxIDAtMWgxM1pNOCA2YS41LjUgMCAwIDEgMCAxSDMuNWEuNS41IDAgMCAxIDAtMUg4Wm0uNSAzLjVBLjUuNSAwIDAgMCA4IDlIMy41YS41LjUgMCAwIDAgMCAxSDhhLjUuNSAwIDAgMCAuNS0uNVpNOCAxMmEuNS41IDAgMCAxIDAgMUgzLjVhLjUuNSAwIDAgMSAwLTFIOFptOSAzLjVhLjUuNSAwIDAgMC0uNS0uNWgtMTNhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAuNS0uNVptLTEtN2EyLjUgMi41IDAgMCAwLTUgMHY1YS41LjUgMCAwIDEtMSAwdi01YTMuNSAzLjUgMCAxIDEgNyAwdjVhLjUuNSAwIDAgMS0xIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UG9zaXRpb25UaHJvdWdoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblRocm91Z2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMy41IDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDEzYS43NS43NSAwIDAgMCAwLTEuNWgtMTNaTTcuNzUgOC41YTIuMjUgMi4yNSAwIDAgMSA0LjUgMHY1YS43NS43NSAwIDAgMCAxLjUgMHYtNWEzLjc1IDMuNzUgMCAxIDAtNy41IDB2NWEuNzUuNzUgMCAwIDAgMS41IDB2LTVabS01IDdjMC0uNDEuMzQtLjc1Ljc1LS43NWgxM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTEzYS43NS43NSAwIDAgMS0uNzUtLjc1Wm0xMy43NS0zLjc1aC0xLjc1djEuNWgxLjc1YS43NS43NSAwIDAgMCAwLTEuNVptLTEzIDBoMS43NXYxLjVIMy41YS43NS43NSAwIDAgMSAwLTEuNVptNS4yNS0zaDIuNXYxLjVoLTIuNXYtMS41Wm0wIDNoMi41djEuNWgtMi41di0xLjVabS0zLjUtM3YxLjVIMy41YS43NS43NSAwIDAgMSAwLTEuNWgxLjc1Wm0xMS4yNSAwaC0xLjc1djEuNWgxLjc1YS43NS43NSAwIDAgMCAwLTEuNVptLTIuNjMtM2MuMzIuNDUuNTcuOTUuNzEgMS41aDEuOTJhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjYzWm0tNy43NCAwYy0uMzIuNDUtLjU3Ljk1LS43MSAxLjVIMy41YS43NS43NSAwIDAgMSAwLTEuNWgyLjYzWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uVGhyb3VnaFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFBvc2l0aW9uVGhyb3VnaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyAzLjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDZoMi43NmMtLjIuMy0uMzguNjQtLjUgMUgzLjVhLjUuNSAwIDAgMSAwLTFabTAgM2gydjFoLTJhLjUuNSAwIDAgMSAwLTFabTAgM2gydjFoLTJhLjUuNSAwIDAgMSAwLTFabTEzIDBoLTJ2MWgyYS41LjUgMCAwIDAgMC0xWm0tOC0zdjFoM1Y5aC0zWm04IDFoLTJWOWgyYS41LjUgMCAwIDEgMCAxWm0tOCAydjFoM3YtMWgtM1ptOC01aC0yLjI2Yy0uMTItLjM2LS4zLS43LS41LTFoMi43NmEuNS41IDAgMCAxIDAgMVptLTEzIDhoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEgMC0xWm00LTYuNWEyLjUgMi41IDAgMCAxIDUgMHY1YS41LjUgMCAwIDAgMSAwdi01YTMuNSAzLjUgMCAxIDAtNyAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UG9zaXRpb25UaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UG9zaXRpb25UaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjUgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTNhLjc1Ljc1IDAgMCAwIDAtMS41aC0xM1ptMCAxMmEuNzUuNzUgMCAwIDAgMCAxLjVoMTNhLjc1Ljc1IDAgMCAwIDAtMS41aC0xM1ptNi41LTguNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2NWEuNzUuNzUgMCAwIDEtMS41IDB2LTVhMy43NSAzLjc1IDAgMSAxIDcuNSAwdjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1Wm0tNi41IDUuNWgxLjc1djEuNUgzLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0xMyAxLjVoLTEuNzV2LTEuNWgxLjc1YS43NS43NSAwIDAgMSAwIDEuNVptLTEuNzUtNC41djEuNWgxLjc1YS43NS43NSAwIDAgMCAwLTEuNWgtMS43NVptLTguNjItM2MtLjMyLjQ1LS41Ny45NS0uNzEgMS41SDMuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi42M1ptMTAuMzcgMS41aC0xLjkyYTQuNzMgNC43MyAwIDAgMC0uNy0xLjVoMi42MmEuNzUuNzUgMCAwIDEgMCAxLjVaTTUuMjUgOC43NXYxLjVIMy41YS43NS43NSAwIDAgMSAwLTEuNWgxLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uVGlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblRpZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDMuNWMwLS4yOC4yMi0uNS41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxLS41LS41Wk0zLjUgNmgyLjc2Yy0uMi4zLS4zOC42NC0uNSAxSDMuNWEuNS41IDAgMCAxIDAtMVptMCAzaDJ2MWgtMmEuNS41IDAgMCAxIDAtMVptMCAzaDJ2MWgtMmEuNS41IDAgMCAxIDAtMVptMCAzaDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxIDAtMVptMTMtMmgtMnYtMWgyYS41LjUgMCAwIDEgMCAxWm0tMi00djFoMmEuNS41IDAgMCAwIDAtMWgtMlptLS43Ni0zYy4yLjMuMzguNjQuNSAxaDIuMjZhLjUuNSAwIDAgMCAwLTFoLTIuNzZaTTcuNSA4LjVhMi41IDIuNSAwIDAgMSA1IDB2NWEuNS41IDAgMCAwIDEgMHYtNWEzLjUgMy41IDAgMSAwLTcgMHY1YS41LjUgMCAwIDAgMSAwdi01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFBvc2l0aW9uVG9wQm90dG9tRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQb3NpdGlvblRvcEJvdHRvbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjc1IDMuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEzYS43NS43NSAwIDAgMSAwIDEuNWgtMTNhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAgMTJjMC0uNDEuMzQtLjc1Ljc1LS43NWgxM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTEzYS43NS43NSAwIDAgMS0uNzUtLjc1Wm01LTdhMi4yNSAyLjI1IDAgMCAxIDQuNSAwdjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi01YTMuNzUgMy43NSAwIDEgMC03LjUgMHY1YS43NS43NSAwIDAgMCAxLjUgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQb3NpdGlvblRvcEJvdHRvbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFBvc2l0aW9uVG9wQm90dG9tUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDMuNWMwLS4yOC4yMi0uNS41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxLS41LS41Wm0wIDEyYzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVabTQuNS03YTIuNSAyLjUgMCAwIDEgNSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVhMy41IDMuNSAwIDEgMC03IDB2NWEuNS41IDAgMCAwIDEgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRQcm9vZmluZ1Rvb2xzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRQcm9vZmluZ1Rvb2xzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2Ljk3IDIuOThjLjUyLjI1LjkxLjc0IDEuMTcgMS40NmEuNzUuNzUgMCAxIDEtMS40LjUxYy0uMTgtLjQ3LS4zNS0uNTktLjQ0LS42My0uMTItLjA2LS4yNy0uMDctLjU4LS4wN2EuNjkuNjkgMCAwIDAtLjUuMTdjLS4xMi4xLS4yMi4yNy0uMy41YTIuODEgMi44MSAwIDAgMC0uMTcuODhjMCAuNDEgMCAuOS4xNiAxLjMuMDguMTguMTcuMzIuMy40Mi4xMS4xLjMuMi42LjIzLjA4IDAgLjI4IDAgLjQ4LS4wN2EuOC44IDAgMCAwIC40Ni0uNDUuNzUuNzUgMCAwIDEgMS4zNy42MWMtLjYzIDEuNDItMi4wMyAxLjQ1LTIuNDggMS40YTIuNTggMi41OCAwIDAgMS0xLjQtLjU2Yy0uMzUtLjMtLjU4LS42OC0uNzItMS4wNGE1IDUgMCAwIDEtLjI3LTEuOHYtLjA4YTMuMzYgMy4zNiAwIDAgMSAuMDMtLjRjLjAzLS4yNi4xLS42MS4yMy0uOTcuMTQtLjM2LjM1LS43Ny43Mi0xLjA5LjM3LS4zNC44Ny0uNTUgMS40OS0uNTVoLjAzYy4yOCAwIC43NSAwIDEuMjIuMjNabS0xMS41OC4yN0EuNzUuNzUgMCAwIDAgNCAzLjIzbC0xLjk0IDVhLjc1Ljc1IDAgMSAwIDEuNC41NGwuMS0uMjdoMi4xMWwuMS4yNWEuNzUuNzUgMCAwIDAgMS40LS41bC0xLjc3LTVaTTUuMTMgN2gtMWwuNTMtMS4zNEw1LjEzIDdaTTggMy41djVhLjc1Ljc1IDAgMCAwIC44Ny43NHYuMDFoMS42M2MuMjQgMCAuNzMtLjA0IDEuMi0uMy41Mi0uMy45Mi0uODcuOTItMS43IDAtLjQzLS4xLS44LS4yOC0xLjEyYTEuNyAxLjcgMCAwIDAtLjI5LS4zNWMuMTUtLjI3LjI0LS42Mi4yNC0xLjAyIDAtLjQxLS4wOC0uNzctLjI1LTEuMDhhMS42OSAxLjY5IDAgMCAwLS42Ni0uNjdjLS40Ni0uMjYtLjk1LS4yNi0xLjEyLS4yNkg4Ljc1QS43NS43NSAwIDAgMCA4IDMuNVptMi41IDQuMjVoLTF2LTFIMTAuNDRjLjE5IDAgLjM4LjAxLjUxLjA4LjA1LjAyLjA4LjA1LjEuMDguMDMuMDQuMDcuMTMuMDcuMzMgMCAuMTctLjA0LjI2LS4wNi4zYS4zLjMgMCAwIDEtLjEyLjEuOTYuOTYgMCAwIDEtLjQ0LjExWm0tLjg4LTIuNUg5LjV2LTFoLjc1Yy4xNiAwIC4zLjAxLjQuMDdhLjIuMiAwIDAgMSAuMDguMDhjLjAyLjA0LjA2LjE1LjA2LjM2IDAgLjE4LS4wMy4yNy0uMDYuM2EuMjUuMjUgMCAwIDEtLjEuMS43Ni43NiAwIDAgMS0uMzUuMDloLS42NlptNC4zMiA1LjcyYS43NS43NSAwIDAgMC0xLjE2LS45NGwtMy41NiA0LjM1LTEuNjktMS42OGEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuMjcgMi4yN2EuNzUuNzUgMCAwIDAgMS4xMS0uMDZsNC4xLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0UHJvb2ZpbmdUb29sc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFByb29maW5nVG9vbHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuOTQgM2MuMjEgMCAuNC4xNC40Ny4zM2wxLjc3IDVhLjUuNSAwIDAgMS0uOTQuMzRsLS4yNi0uNzNWOEgzLjczbC0uMjYuNjhhLjUuNSAwIDEgMS0uOTQtLjM2bDEuOTQtNUEuNS41IDAgMCAxIDQuOTQgM1ptLS4wMiAxLjk0TDQuMTIgN2gxLjUzbC0uNzMtMi4wNlptMTIuNDktLjQxYy0uMjUtLjY5LS42LTEuMS0xLjA2LTEuMzMtLjQtLjItLjgzLS4yLTEuMS0uMmgtLjAzYy0uNTUgMC0xIC4xOS0xLjMzLjQ5LS4zMi4yOS0uNTIuNjUtLjY0Ljk5QTQuMDYgNC4wNiAwIDAgMCAxMyA1Ljc3di4wNWMwIC4zOSAwIDEuMDkuMjUgMS43My4xMy4zMy4zMy42Ny42Ni45My4zMi4yNy43NC40NSAxLjI1LjUuNDIuMDUgMS42Ny4wMiAyLjIzLTEuMjRhLjUuNSAwIDEgMC0uOS0uNGMtLjMuNjQtLjk0LjY4LTEuMjIuNjVhMS4zNCAxLjM0IDAgMCAxLS43My0uMjggMS4yNiAxLjI2IDAgMCAxLS4zNi0uNTJBMy44OSAzLjg5IDAgMCAxIDE0IDUuOFY1LjhhMS43OCAxLjc4IDAgMCAxIC4wMi0uMjhjLjAzLS4yLjA3LS40NC4xNi0uNjguMS0uMjUuMjItLjQ1LjM4LS42YS45NC45NCAwIDAgMSAuNjYtLjIzYy4zIDAgLjUgMCAuNy4xLjE1LjA4LjM2LjI1LjU1Ljc3YS41LjUgMCAxIDAgLjk0LS4zNFptLTUuOTQgMS4zYy4yLS4yNi4zMi0uNjIuMzItMS4wNyAwLS4zOC0uMDctLjctLjIyLS45NmExLjQ0IDEuNDQgMCAwIDAtLjU2LS41N2MtLjQtLjIzLS44NC0uMjMtMS0uMjNIOC41YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDEuNzVjLjIyIDAgLjY2LS4wMyAxLjA3LS4yNy40NS0uMjYuOC0uNzQuOC0xLjQ5IDAtLjM4LS4wOS0uNy0uMjUtLjk4YTEuNDUgMS40NSAwIDAgMC0uNC0uNDJabS0uOTUtMS43M2MuMDcuMDQuMTMuMS4xOC4xOGExIDEgMCAwIDEgLjEuNDhjMCAuNC0uMTYuNTQtLjI4LjYyLS4xNy4xLS4zOC4xMi0uNS4xMkg5VjRoMWMuMTYgMCAuMzYuMDEuNTIuMVpNOS4zNiA2LjVoLjgzYy4xOCAwIC40MyAwIC42Mi4xLjEuMDUuMTYuMS4yLjE4LjA2LjA5LjEuMjIuMS40NiAwIC4zOC0uMTQuNTQtLjMuNjItLjE4LjExLS40Mi4xNC0uNTYuMTRIOVY2LjVoLjM2Wm00LjQgNC4zMmEuNS41IDAgMSAwLS43OC0uNjRsLTMuNzQgNC41OC0xLjg5LTEuODlhLjUuNSAwIDAgMC0uNy43MWwyLjI3IDIuMjdhLjUuNSAwIDAgMCAuNzQtLjAzbDQuMS01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFF1b3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRRdW90ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05IDYuNWEyLjUgMi41IDAgMSAwLTEuMTcgMi4xMiA4LjggOC44IDAgMCAxLS45NiAyLjc2IDEyLjA2IDEyLjA2IDAgMCAxLTIuMjIgMi43Ny41LjUgMCAwIDAgLjcuN2guMDJjLjc0LS43NSAxLjY2LTEuNjcgMi4zOC0yLjk4QTEwLjgzIDEwLjgzIDAgMCAwIDkgNi41Wm01LjgzIDIuMTJBMi41IDIuNSAwIDEgMSAxNiA2LjVjMCAyLjMzLS41MiA0LjA0LTEuMjUgNS4zNy0uNzIgMS4zLTEuNjQgMi4yMy0yLjM4IDIuOTdsLS4wMi4wMWEuNS41IDAgMCAxLS43LS43Yy43NS0uNzYgMS41Ny0xLjU5IDIuMjItMi43N2E4LjggOC44IDAgMCAwIC45Ni0yLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFF1b3RlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0UXVvdGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuODMgOC42MmE4LjggOC44IDAgMCAxLS45NiAyLjc2IDEyLjA2IDEyLjA2IDAgMCAxLTIuMjIgMi43Ny41LjUgMCAwIDAgLjcuN2guMDJjLjc0LS43NSAxLjY2LTEuNjcgMi4zOC0yLjk4QTEwLjgzIDEwLjgzIDAgMCAwIDkgNi41YTIuNSAyLjUgMCAxIDAtMS4xNyAyLjEyWk04IDYuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptNi44MyAyLjEyYTguOCA4LjggMCAwIDEtLjk2IDIuNzYgMTIuMDYgMTIuMDYgMCAwIDEtMi4yMiAyLjc3LjUuNSAwIDAgMCAuNy43aC4wMmMuNzQtLjc1IDEuNjYtMS42NyAyLjM4LTIuOThBMTAuODMgMTAuODMgMCAwIDAgMTYgNi41YTIuNSAyLjUgMCAxIDAtMS4xNyAyLjEyWk0xMy41IDhhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0U29ydEFzY2VuZGluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0U29ydEFzY2VuZGluZ0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjcgMi41YS43NS43NSAwIDAgMC0xLjQgMEwzLjAzIDlhLjc1Ljc1IDAgMCAwIDEuNDIuNWwuMzQtMWgyLjRsLjM0IDFBLjc1Ljc1IDAgMCAwIDguOTYgOUw2LjcgMi41Wk02IDUuMDQgNi42OCA3SDUuMzJMNiA1LjA0Wk00IDExYS43NS43NSAwIDAgMCAwIDEuNWgyLjUzbC0zLjE0IDQuM0EuNzUuNzUgMCAwIDAgNCAxOGg0YS43NS43NSAwIDAgMCAwLTEuNUg1LjQ3bDMuMTQtNC4zQS43NS43NSAwIDAgMCA4IDExSDRabTEwLjI1LTljLjQxIDAgLjc1LjM0Ljc1Ljc1djEyLjU3bDEuNDUtMS41OGEuNzUuNzUgMCAwIDEgMS4xIDEuMDJsLTIuNzUgM2EuNzUuNzUgMCAwIDEtMS4xIDBsLTIuNzUtM2EuNzUuNzUgMCAwIDEgMS4xLTEuMDJsMS40NSAxLjU4VjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRTb3J0QXNjZW5kaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0U29ydEFzY2VuZGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi40NyAyLjMyYS41LjUgMCAwIDAtLjk0IDBsLTIuNzUgN2EuNS41IDAgMCAwIC45NC4zNkw0LjM4IDhoMy4yNGwuNjYgMS42OGEuNS41IDAgMCAwIC45NC0uMzZsLTIuNzUtN1pNNiAzLjg3IDcuMjMgN0g0Ljc3TDYgMy44N1pNNCAxMWEuNS41IDAgMCAwIDAgMWgzLjA3bC0zLjQ5IDUuMjJBLjUuNSAwIDAgMCA0IDE4aDRhLjUuNSAwIDAgMCAwLTFINC45M2wzLjQ5LTUuMjJBLjUuNSAwIDAgMCA4IDExSDRabTEwLjUtOWMuMjggMCAuNS4yMi41LjV2MTMuOGwyLjE1LTIuMTVhLjUuNSAwIDAgMSAuNy43bC0zIDNhLjUuNSAwIDAgMS0uNyAwbC0zLTNhLjUuNSAwIDAgMSAuNy0uN0wxNCAxNi4yOVYyLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRTb3J0RGVzY2VuZGluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0U29ydERlc2NlbmRpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAyYS43NS43NSAwIDEgMCAwIDEuNWgyLjUzTDMuMzkgNy44QS43NS43NSAwIDAgMCA0IDloNGEuNzUuNzUgMCAwIDAgMC0xLjVINS40N2wzLjE0LTQuM0EuNzUuNzUgMCAwIDAgOCAySDRabTIuNyA4LjVhLjc1Ljc1IDAgMCAwLTEuNCAwTDMuMDMgMTdhLjc1Ljc1IDAgMSAwIDEuNDIuNWwuMzQtMWgyLjRsLjM0IDFhLjc1Ljc1IDAgMSAwIDEuNDItLjVMNi43IDEwLjVaTTYgMTMuMDQgNi42OCAxNUg1LjMyTDYgMTMuMDRaTTE0LjI1IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djEyLjU3bDEuNDUtMS41OGEuNzUuNzUgMCAwIDEgMS4xIDEuMDJsLTIuNzUgM2EuNzUuNzUgMCAwIDEtMS4xIDBsLTIuNzUtM2EuNzUuNzUgMCAwIDEgMS4xLTEuMDJsMS40NSAxLjU4VjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRTb3J0RGVzY2VuZGluZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFNvcnREZXNjZW5kaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDJhLjUuNSAwIDAgMCAwIDFoMy4wN0wzLjU4IDguMjJBLjUuNSAwIDAgMCA0IDloNGEuNS41IDAgMSAwIDAtMUg0LjkzbDMuNDktNS4yMkEuNS41IDAgMCAwIDggMkg0Wm0yLjQ3IDguMzJhLjUuNSAwIDAgMC0uOTQgMGwtMi43NSA3YS41LjUgMCAxIDAgLjk0LjM2TDQuMzggMTZoMy4yNGwuNjYgMS42OGEuNS41IDAgMCAwIC45NC0uMzZsLTIuNzUtN1pNNiAxMS44NyA3LjIzIDE1SDQuNzdMNiAxMS44N1pNMTQuNSAyYy4yOCAwIC41LjIyLjUuNXYxMy44bDIuMTUtMi4xNWEuNS41IDAgMCAxIC43LjdsLTMgM2EuNS41IDAgMCAxLS43IDBsLTMtM2EuNS41IDAgMCAxIC43LS43TDE0IDE2LjI5VjIuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFN0cmlrZXRocm91Z2hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFN0cmlrZXRocm91Z2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi4yNSAzLjdjMS0uNyAyLjMzLTEuMiAzLjc1LTEuMmE2LjQgNi40IDAgMCAxIDUuMSAyLjMuNzUuNzUgMCAwIDEtMS4yLjlBNC45MiA0LjkyIDAgMCAwIDEwIDRjLTEuMDggMC0yLjEyLjM4LTIuODguOTJDNi4zMyA1LjUgNiA2LjEgNiA2LjVjMCAuNzguMzggMS4yOSAxLjExIDEuNzEuMTguMS4zOC4yLjU5LjI5SDUuMTZhMy4xNiAzLjE2IDAgMCAxLS42Ni0yYzAtMS4xLjgtMi4xMSAxLjc1LTIuOFpNMTYuNSAxMGEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNjZjLjQuNTIuNjYgMS4xOC42NiAyIDAgMS4zNi0uODcgMi4zOC0xLjkxIDMuMDFhNy4wNiA3LjA2IDAgMCAxLTMuNTkuOTkgNy41MiA3LjUyIDAgMCAxLTMtLjUgNC44IDQuOCAwIDAgMS0yLjEyLTEuODMuNzUuNzUgMCAxIDEgMS4yNC0uODRjLjQzLjY1LjkgMS4wNSAxLjQ4IDEuMy42LjI1IDEuMzUuMzcgMi40LjM3Ljk3IDAgMi4wMi0uMjggMi44LS43Ni44LS41IDEuMi0xLjEgMS4yLTEuNzQgMC0uNzgtLjM4LTEuMjktMS4xMS0xLjcxYTUuNCA1LjQgMCAwIDAtLjU5LS4yOUgzLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEzWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFN0cmlrZXRocm91Z2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRTdHJpa2V0aHJvdWdoUmVndWxhcicsIFwiMWVtXCIsIFtcIk02LjUzIDQuMDNBNi4xNSA2LjE1IDAgMCAxIDEwIDNhNi4xNiA2LjE2IDAgMCAxIDQuOSAyLjIuNS41IDAgMCAxLS44LjZBNS4xNyA1LjE3IDAgMCAwIDEwIDRjLTEuMTUgMC0yLjE4LjM1LTIuOS44NUM2LjM2IDUuMzUgNiA1Ljk4IDYgNi41YzAgLjkuNDMgMS40OCAxLjE3IDEuOTMuMzYuMjIuNzguNCAxLjI1LjU3SDYuMjNBMy4wMiAzLjAyIDAgMCAxIDUgNi41YzAtLjk4LjY0LTEuODYgMS41My0yLjQ3Wk0xNi41IDEwYS41LjUgMCAwIDEgMCAxaC0yLjczQTMuMDIgMy4wMiAwIDAgMSAxNSAxMy41YzAgMS4yMy0uNzIgMi4xMi0xLjY4IDIuNjgtLjk0LjU2LTIuMTYuODItMy4zMi44MmE3LjI3IDcuMjcgMCAwIDEtMi45LS40OCA0LjU1IDQuNTUgMCAwIDEtMi4wMi0xLjc0LjUuNSAwIDAgMSAuODQtLjU2Yy40NS42OC45NiAxLjExIDEuNTggMS4zOC42NC4yOCAxLjQ0LjQgMi41LjQgMS4wMyAwIDIuMDYtLjI0IDIuODItLjY4Ljc0LS40NCAxLjE4LTEuMDUgMS4xOC0xLjgyIDAtLjktLjQzLTEuNDgtMS4xNy0xLjkzLS4zNi0uMjItLjc4LS40LTEuMjUtLjU3SDMuNWEuNS41IDAgMCAxIDAtMWgxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRTdWJzY3JpcHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFN1YnNjcmlwdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMy43OCA0Ljk5QS43NS43NSAwIDAgMCAxMi42NCA0TDguNSA4Ljg1IDQuMzUgNEEuNzUuNzUgMCAxIDAgMy4yMiA1TDcuNTIgMTBsLTQuMyA1LjAxYS43NS43NSAwIDAgMCAxLjEzLjk4bDQuMTUtNC44NCAzLjg1IDQuNWMuMTMtLjU1LjM4LS45OS42Ni0xLjM0LS4zNS0uMjQtLjYtLjYtLjcxLTEuMDNMOS40OSAxMGw0LjMtNS4wMVptMS41NSA3LjI2Yy0uMyAwLS41OC4zLS41OC42MWEuNzUuNzUgMCAwIDEtMS41IDAgMi4xMiAyLjEyIDAgMCAxIDMuODgtMS4xN2MuNDIuNjQuNDIgMS40Ni0uMDQgMi4yNC0uMjMuNC0uNTUuNjktLjg0LjkybC0uNDQuMzItLjA2LjA1LS4zMy4yM2MtLjE0LjEtLjI1LjItLjM1LjNoMS42MmEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNjRhLjczLjczIDAgMCAxLS4wNSAwIC43NS43NSAwIDAgMS0uNzUtLjc1YzAtMS4xNi42OS0xLjggMS4yNy0yLjI1bC4zNy0uMjYuMDYtLjA0LjM3LS4yOGMuMjMtLjE4LjM4LS4zNC40OC0uNS4yMS0uMzYuMTQtLjU3LjA4LS42NmEuNjQuNjQgMCAwIDAtLjU1LS4yNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRTdWJzY3JpcHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRTdWJzY3JpcHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjU0IDQuMTJjLjIuMTguMjMuNS4wNS43TDkuMTYgMTBsNC4wOCA0Ljc3Yy0uMTguMjktLjM0LjYzLS40MiAxLjA0TDguNSAxMC43N2wtNC4zNCA1LjA2YS41LjUgMCAxIDEtLjc1LS42Nkw3Ljg0IDEwIDMuNDEgNC44M2EuNS41IDAgMSAxIC43NS0uNjZMOC41IDkuMjNsNC4zMy01LjA2YS41LjUgMCAwIDEgLjctLjA1Wk0xNS41OCAxMmMtLjQ2IDAtLjgzLjQyLS44My44NmEuNS41IDAgMCAxLTEgMCAxLjg3IDEuODcgMCAwIDEgMy40Mi0xLjA0Yy4zNi41NS4zNyAxLjI3LS4wNCAxLjk4LS4yMS4zNi0uNS42My0uNzkuODZsLS40Mi4zLS4wNi4wNS0uMzQuMjRjLS4zMi4yNC0uNTUuNDctLjY3Ljc1aDIuMWEuNS41IDAgMSAxIDAgMUgxNC4zYS41NC41NCAwIDAgMS0uMDUgMCAuNS41IDAgMCAxLS41LS41YzAtMS4wNC42LTEuNjIgMS4xNy0yLjA1bC4zNi0uMjYuMDYtLjA0LjM4LS4yOGMuMjQtLjE5LjQyLS4zNy41NS0uNTguMjUtLjQzLjE5LS43My4wNy0uOTJhLjg5Ljg5IDAgMCAwLS43Ni0uMzdaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0U3VwZXJzY3JpcHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFN1cGVyc2NyaXB0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE1LjMzIDMuMjVjLS4zIDAtLjU4LjI5LS41OC42MWEuNzUuNzUgMCAwIDEtMS41IDAgMi4xMiAyLjEyIDAgMCAxIDMuODgtMS4xN2MuNDIuNjQuNDIgMS40Ni0uMDQgMi4yNC0uMjMuNC0uNTUuNjktLjg0LjkybC0uNDQuMzItLjA2LjA1LS4zMy4yM2MtLjE0LjEtLjI1LjItLjM1LjNoMS42MmEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNjRhLjc2Ljc2IDAgMCAxLS4wNSAwIC43NS43NSAwIDAgMS0uNzUtLjc1YzAtMS4xNi42OS0xLjggMS4yNy0yLjI1TDE0LjkgNWwuMDYtLjA0LjM3LS4yOGMuMjMtLjE4LjM4LS4zNC40OC0uNS4yMS0uMzYuMTQtLjU3LjA4LS42NmEuNjQuNjQgMCAwIDAtLjU1LS4yNlpNOS41IDEwbDIuODUtMy4zM2MuMTMtLjU2LjM5LTEgLjY3LTEuMzZhMS43NSAxLjc1IDAgMCAxLS42OC0uOTNMOC41IDguODUgNC4zNSA0QS43NS43NSAwIDEgMCAzLjIyIDVMNy41MiAxMGwtNC4zIDUuMDFhLjc1Ljc1IDAgMSAwIDEuMTMuOThsNC4xNS00Ljg0TDEyLjY0IDE2YS43NS43NSAwIDEgMCAxLjE0LS45OEw5LjQ4IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFN1cGVyc2NyaXB0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0U3VwZXJzY3JpcHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE1LjU4IDNjLS40NiAwLS44My40Mi0uODMuODZhLjUuNSAwIDAgMS0xIDAgMS44NyAxLjg3IDAgMCAxIDMuNDItMS4wNGMuMzYuNTUuMzcgMS4yNy0uMDQgMS45OC0uMjEuMzYtLjUuNjMtLjc5Ljg2bC0uNDIuMy0uMDYuMDUtLjM0LjI0Yy0uMzIuMjQtLjU1LjQ3LS42Ny43NWgyLjFhLjUuNSAwIDEgMSAwIDFIMTQuMjRhLjUuNSAwIDAgMS0uNS0uNWMwLTEuMDQuNi0xLjYyIDEuMTctMi4wNWwuMzYtLjI2LjA2LS4wNC4zOC0uMjhjLjI0LS4xOS40Mi0uMzcuNTUtLjU4LjI1LS40My4xOS0uNzMuMDctLjkyYS44OS44OSAwIDAgMC0uNzYtLjM3Wk0xMi44IDQuMjJjLjA5LjM1LjMuNjYuNTguODZMOS4xNiAxMGw0LjQzIDUuMTdhLjUuNSAwIDEgMS0uNzYuNjZMOC41IDEwLjc3bC00LjM0IDUuMDZhLjUuNSAwIDAgMS0uNzUtLjY2TDcuODQgMTAgMy40MSA0LjgzYS41LjUgMCAxIDEgLjc1LS42Nkw4LjUgOS4yM2w0LjMtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRURmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRURmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEwYy40MSAwIC43NS4zNC43NS43NXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNWgtMy41djExaDEuMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00YS43NS43NSAwIDAgMSAwLTEuNUg5di0xMUg1LjV2Ljc1YS43NS43NSAwIDAgMS0xLjUgMHYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRUUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDMuNWMwLS4yOC4yMi0uNS41LS41aDEwYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtMSAwVjRoLTR2MTJoMS41YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xSDlWNEg1djEuNWEuNS41IDAgMCAxLTEgMHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRVbmRlcmxpbmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFVuZGVybGluZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMy43NWEuNzUuNzUgMCAwIDAtMS41IDBWOWMwIDEuMzcuMzQgMi43NCAxLjE2IDMuNzhBNC42NyA0LjY3IDAgMCAwIDEwIDE0LjVjMS43IDAgMy0uNjUgMy44NC0xLjcyQTYuMDkgNi4wOSAwIDAgMCAxNSA5VjMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjlhNC42IDQuNiAwIDAgMS0uODQgMi44NUMxMi4xMyAxMi41MyAxMS4zIDEzIDEwIDEzYy0xLjMgMC0yLjEzLS40Ny0yLjY2LTEuMTVBNC42IDQuNiAwIDAgMSA2LjUgOVYzLjc1Wk01Ljc1IDE1LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRVbmRlcmxpbmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRVbmRlcmxpbmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYgMy41YS41LjUgMCAwIDAtMSAwdjYuNDVBNS4wMiA1LjAyIDAgMCAwIDEwIDE1YzIuNzcgMCA1LTIuMjYgNS01LjA1VjMuNWEuNS41IDAgMCAwLTEgMHY2LjQ1QzE0IDEyLjIgMTIuMiAxNCAxMCAxNHMtNC0xLjgtNC00LjA1VjMuNVptLTEgMTNjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0VW5kZXJsaW5lQ2hhcmFjdGVyVUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0VW5kZXJsaW5lQ2hhcmFjdGVyVUZpbGxlZCcsIFwiMWVtXCIsIFtcIk03IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjkuNWE0LjUgNC41IDAgMSAwIDkgMFYzLjc1YS43NS43NSAwIDAgMC0xLjUgMFY5LjVhMyAzIDAgMSAxLTYgMFYzLjc1Wk01Ljc1IDE1LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRVbmRlcmxpbmVDaGFyYWN0ZXJVUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0VW5kZXJsaW5lQ2hhcmFjdGVyVVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAzLjVhLjUuNSAwIDAgMC0xIDBWMTBhNCA0IDAgMCAwIDggMFYzLjVhLjUuNSAwIDAgMC0xIDBWMTBhMyAzIDAgMSAxLTYgMFYzLjVaTTUuNSAxNmEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFVuZGVybGluZURvdWJsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0VW5kZXJsaW5lRG91YmxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2Ljk3IDIuOThjLjUyLjI1LjkxLjc0IDEuMTcgMS40NmEuNzUuNzUgMCAxIDEtMS40LjUxYy0uMTgtLjQ3LS4zNS0uNTktLjQ0LS42My0uMTItLjA2LS4yNy0uMDctLjU4LS4wN2EuNjkuNjkgMCAwIDAtLjUuMTdjLS4xMi4xLS4yMi4yNy0uMy41YTIuODEgMi44MSAwIDAgMC0uMTcuODhjMCAuNDEgMCAuOS4xNiAxLjMuMDguMTguMTcuMzIuMy40Mi4xMS4xLjMuMi42LjIzLjA4IDAgLjI4IDAgLjQ4LS4wN2EuOC44IDAgMCAwIC40Ni0uNDUuNzUuNzUgMCAwIDEgMS4zNy42MWMtLjYzIDEuNDItMi4wMyAxLjQ1LTIuNDggMS40YTIuNTggMi41OCAwIDAgMS0xLjQtLjU2Yy0uMzUtLjMtLjU4LS42OC0uNzItMS4wNGE1IDUgMCAwIDEtLjI3LTEuOHYtLjA4YTMuMzYgMy4zNiAwIDAgMSAuMDMtLjRjLjAzLS4yNi4xLS42MS4yMy0uOTcuMTQtLjM2LjM1LS43Ny43Mi0xLjA5LjM3LS4zNC44Ny0uNTUgMS40OS0uNTVoLjAzYy4yOCAwIC43NSAwIDEuMjIuMjNabS0xMS41OC4yN0EuNzUuNzUgMCAwIDAgNCAzLjIzbC0xLjk0IDVhLjc1Ljc1IDAgMSAwIDEuNC41NGwuMS0uMjdoMi4xMWwuMS4yNWEuNzUuNzUgMCAwIDAgMS40LS41bC0xLjc3LTVaTTUuMTMgN2gtMWwuNTMtMS4zNEw1LjEzIDdaTTggMy41djVjMCAuNDEuMzQuNzUuNzUuNzVoMS43NWMuMjQgMCAuNzMtLjA0IDEuMi0uMy41Mi0uMy45Mi0uODcuOTItMS43IDAtLjQzLS4xLS44LS4yOC0xLjEyYTEuNyAxLjcgMCAwIDAtLjI5LS4zNWMuMTUtLjI3LjI0LS42Mi4yNC0xLjAyIDAtLjQxLS4wOC0uNzctLjI1LTEuMDhhMS42OSAxLjY5IDAgMCAwLS42Ni0uNjdjLS40Ni0uMjYtLjk1LS4yNi0xLjEyLS4yNkg4Ljc1QS43NS43NSAwIDAgMCA4IDMuNVptMi41IDQuMjVoLTF2LTFIMTAuNDRjLjE5IDAgLjM4LjAxLjUxLjA4LjA1LjAyLjA4LjA1LjEuMDguMDMuMDQuMDcuMTMuMDcuMzMgMCAuMTctLjA0LjI2LS4wNi4zYS4zLjMgMCAwIDEtLjEyLjEuOTYuOTYgMCAwIDEtLjQ0LjExWm0tLjg4LTIuNUg5LjV2LTFoLjc1Yy4xNiAwIC4zLjAxLjQuMDdhLjIuMiAwIDAgMSAuMDguMDhjLjAyLjA0LjA2LjE1LjA2LjM2IDAgLjE4LS4wMy4yNy0uMDYuM2EuMjUuMjUgMCAwIDEtLjEuMS43Ni43NiAwIDAgMS0uMzUuMDloLS42NlptLTguMTIgN2MwLS40MS4zNC0uNzUuNzUtLjc1aDE1LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSAzLjI1YS43NS43NSAwIDAgMCAwIDEuNWgxNS41YS43NS43NSAwIDAgMCAwLTEuNUgyLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFVuZGVybGluZURvdWJsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFVuZGVybGluZURvdWJsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC45NCAzYy4yMSAwIC40LjE0LjQ3LjMzbDEuNzcgNWEuNS41IDAgMCAxLS45NC4zNEw2IDhIMy43M2wtLjI2LjY4YS41LjUgMCAxIDEtLjk0LS4zNmwxLjk0LTVBLjUuNSAwIDAgMSA0Ljk0IDNabS0uMDIgMS45NEw0LjEyIDdoMS41M2wtLjczLTIuMDZabTEyLjQ5LS40MWMtLjI1LS42OS0uNi0xLjEtMS4wNi0xLjMzLS40LS4yLS44My0uMi0xLjEtLjJoLS4wM2MtLjU1IDAtMSAuMTktMS4zMy40OS0uMzIuMjktLjUyLjY1LS42NC45OUE0LjA2IDQuMDYgMCAwIDAgMTMgNS43N3YuMDVjMCAuMzkgMCAxLjA5LjI1IDEuNzMuMTMuMzMuMzMuNjcuNjYuOTMuMzIuMjcuNzQuNDUgMS4yNS41LjQyLjA1IDEuNjcuMDIgMi4yMy0xLjI0YS41LjUgMCAxIDAtLjktLjRjLS4zLjY0LS45NC42OC0xLjIyLjY1YTEuMzQgMS4zNCAwIDAgMS0uNzMtLjI4IDEuMjYgMS4yNiAwIDAgMS0uMzYtLjUyQTMuODkgMy44OSAwIDAgMSAxNCA1LjhWNS44YTEuNzggMS43OCAwIDAgMSAuMDItLjI4Yy4wMy0uMi4wNy0uNDQuMTYtLjY4LjEtLjI1LjIyLS40NS4zOC0uNmEuOTQuOTQgMCAwIDEgLjY2LS4yM2MuMyAwIC41IDAgLjcuMS4xNS4wOC4zNi4yNS41NS43N2EuNS41IDAgMSAwIC45NC0uMzRabS01Ljk0IDEuM2MuMi0uMjYuMzItLjYyLjMyLTEuMDcgMC0uMzgtLjA3LS43LS4yMi0uOTZhMS40NCAxLjQ0IDAgMCAwLS41Ni0uNTdjLS40LS4yMy0uODQtLjIzLTEtLjIzSDguNWEuNS41IDAgMCAwLS41LjV2NWMwIC4yOC4yMi41LjUuNWgxLjc1Yy4yMiAwIC42Ni0uMDMgMS4wNy0uMjcuNDUtLjI2LjgtLjc0LjgtMS40OSAwLS4zOC0uMDktLjctLjI1LS45OGExLjQ1IDEuNDUgMCAwIDAtLjQtLjQyWm0tLjk1LTEuNzNjLjA3LjA0LjEzLjEuMTguMThhMSAxIDAgMCAxIC4xLjQ4YzAgLjQtLjE2LjU0LS4yOC42Mi0uMTcuMS0uMzguMTItLjUuMTJIOVY0aDFjLjE2IDAgLjM2LjAxLjUyLjFaTTkuMzYgNi41aC44M2MuMTggMCAuNDMgMCAuNjIuMS4xLjA1LjE2LjEuMi4xOC4wNi4wOS4xLjIyLjEuNDYgMCAuMzgtLjE0LjU0LS4zLjYyLS4xOC4xMS0uNDIuMTQtLjU2LjE0SDlWNi41aC4zNlpNMiAxMi41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabS41IDMuNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0V2hvbGVXb3JkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRXaG9sZVdvcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgMTUuNzV2LjVBMS43NSAxLjc1IDAgMCAxIDE3LjI1IDE4SDIuNzVBMS43NSAxLjc1IDAgMCAxIDEgMTYuMjV2LS41YS43NS43NSAwIDEgMSAxLjUgMHYuNWEuMjUuMjUgMCAwIDAgLjI1LjI1aDE0LjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41YS43NS43NSAwIDEgMSAxLjUgMFpNMy44MyAxMC4zOGE0LjE3IDQuMTcgMCAwIDEgMi41My0uNjFjLjM3LjAyLjc0LjA3IDEuMS4xNmEuOTcuOTcgMCAwIDAtLjU1LS43NmMtLjQtLjE4LS44My0uMjYtMS4yNi0uMjMtLjM3IDAtLjczLjA4LTEuMDcuMjNhLjc1Ljc1IDAgMSAxLS42Ny0xLjM0Yy41My0uMjUgMS4xLS4zOCAxLjY5LS40LjY5LS4wMyAxLjM3LjEgMS45OS40QTIuNjkgMi42OSAwIDAgMSA5IDEwLjQ2djQuMDRhLjc1Ljc1IDAgMSAxLTEuNS4wNiAzLjczIDMuNzMgMCAwIDEtMi45NS41NiAyLjYxIDIuNjEgMCAwIDEtLjcyLTQuNzRabTEuMTEgMy4zYTIuOTIgMi45MiAwIDAgMCAyLjU2LTFWMTEuNWE0LjUgNC41IDAgMCAwLTEuMjItLjIzIDIuNjggMi42OCAwIDAgMC0xLjYyLjM2IDEuMTEgMS4xMSAwIDAgMCAuMjggMi4wNVptNi4wNi44MlY0YS43NS43NSAwIDEgMSAxLjUgMHY0LjY2QTIuNyAyLjcgMCAwIDEgMTQuMjUgOGEzLjI4IDMuMjggMCAwIDEgMyAzLjUgMy4yOCAzLjI4IDAgMCAxLTMgMy41Yy0uNjQgMC0xLjI2LS4yNC0xLjc1LS42NnYuMTZhLjc1Ljc1IDAgMSAxLTEuNSAwWm0xLjc1LTNhMS44IDEuOCAwIDAgMCAxLjUgMiAxLjggMS44IDAgMCAwIDEuNS0yIDEuOCAxLjggMCAwIDAtMS41LTIgMS44IDEuOCAwIDAgMC0xLjUgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRXaG9sZVdvcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRXaG9sZVdvcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExLjUgMTVhLjUuNSAwIDAgMCAuNS0uNXYtLjRhMi43NiAyLjc2IDAgMCAwIDIgLjkgMy4yOCAzLjI4IDAgMCAwIDMtMy41QTMuMjggMy4yOCAwIDAgMCAxNCA4YTIuNzcgMi43NyAwIDAgMC0yIC45VjRhLjUuNSAwIDAgMC0xIDB2MTAuNWEuNS41IDAgMCAwIC41LjVaTTE0IDlhMi4yOSAyLjI5IDAgMCAxIDIgMi41IDIuMjkgMi4yOSAwIDAgMS0yIDIuNSAyLjI5IDIuMjkgMCAwIDEtMi0yLjVBMi4yOSAyLjI5IDAgMCAxIDE0IDlabS05LjEzIDUuODhhMy43MiAzLjcyIDAgMCAwIDMuMTMtLjh2LjQyYS41LjUgMCAwIDAgMSAwdi00LjA0YTIuNDUgMi40NSAwIDAgMC0xLjI4LTIuNCAzLjg4IDMuODggMCAwIDAtMS44Ni0uMzdjLS41NS4wMS0xLjA5LjE0LTEuNTguMzZhLjUuNSAwIDAgMCAuNDQuOWMuMzctLjE3Ljc3LS4yNSAxLjE3LS4yNi40OC0uMDMuOTUuMDYgMS4zOS4yNkExLjM1IDEuMzUgMCAwIDEgOCAxMC4yN2E1LjczIDUuNzMgMCAwIDAtMS40LS4yNSAzLjkyIDMuOTIgMCAwIDAtMi4zOC41NiAyLjM2IDIuMzYgMCAwIDAgLjY1IDQuM1ptLS4xLTMuNDZhMi45MyAyLjkzIDAgMCAxIDEuNzgtLjRjLjUuMDIuOTguMTMgMS40NS4zdjEuNDdhMy4yMyAzLjIzIDAgMCAxLTIuODcgMS4xMyAxLjM2IDEuMzYgMCAwIDEtLjM1LTIuNVpNMTkgMTZ2LjVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xNUExLjUgMS41IDAgMCAxIDEgMTYuNVYxNmEuNS41IDAgMCAxIDEgMHYuNWEuNS41IDAgMCAwIC41LjVoMTVhLjUuNSAwIDAgMCAuNS0uNVYxNmEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRXb3JkQ291bnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFdvcmRDb3VudEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjk4IDE0LjU0Yy0uMjYuMjctLjU1LjUxLS44Ni43YS41LjUgMCAxIDEtLjU0LS44M0EzLjMzIDMuMzMgMCAwIDAgMyAxMi42MmEuNS41IDAgMCAxIC45OS4xMXY1Ljc3YS41LjUgMCAwIDEtMSAwdi0zLjk2Wm00LjYtMS4zYy0uNjIgMC0xLjA5LjUzLTEuMDkgMS4wNmEuNS41IDAgMCAxLTEgMCAyLjEgMi4xIDAgMCAxIDIuMS0yLjA3Yy43MiAwIDEuNDIuMzMgMS44MS45MS40MS42MS40MyAxLjQxLS4wNiAyLjIxLS4yNC40LS41OC43MS0uOTEuOTdsLS41LjM1LS4wOC4wNS0uNC4yOGMtLjQzLjMyLS43NC42LS44OCAxaDIuNmEuNS41IDAgMCAxIDAgMUg1Ljk4YS41LjUgMCAwIDEtLjUtLjVjMC0xLjE3LjctMS44MiAxLjM3LTIuM2wuNDMtLjMuMDctLjA1LjQ2LS4zM2MuMjktLjIyLjUyLS40NC42Ny0uNjkuMzEtLjUxLjI0LS44OS4wOC0xLjEzYTEuMTggMS4xOCAwIDAgMC0uOTgtLjQ3Wm00LjQ4LjI1YS45Mi45MiAwIDAgMC0uMjguNDMuNS41IDAgMSAxLS45Ni0uMjhjLjA4LS4yNy4yNS0uNjIuNi0uOS4zNC0uMy44My0uNSAxLjQ5LS41IDEuMzIgMCAyLjEuOTMgMi4xIDEuOCAwIC4zNS0uMDYuODctLjQzIDEuMzJhMS44IDEuOCAwIDAgMS0uMjIuMjIgMS42NSAxLjY1IDAgMCAxIC42NSAxLjM0IDIgMiAwIDAgMS0uNjggMS42MmMtLjQyLjM1LS45NS40Ni0xLjQyLjQ2LS40NSAwLS44OS0uMDctMS4yNy0uMy0uMzgtLjI0LS42NS0uNi0uODEtMS4wOWEuNS41IDAgMSAxIC45NS0uMzJjLjEuMy4yNC40Ni4zOS41NS4xNS4xLjM4LjE2Ljc0LjE2LjMzIDAgLjYtLjA4Ljc5LS4yMy4xNi0uMTQuMzEtLjM4LjMxLS44NCAwLS4yLS4wNS0uMzItLjExLS40MWEuNzguNzggMCAwIDAtLjMyLS4yNGMtLjMtLjEzLS42OC0uMTYtLjk0LS4xNmEuNS41IDAgMCAxIDAtMWMuNzEgMCAxLjAyLS4yMiAxLjE2LS40LjE2LS4xOS4yMS0uNDUuMjEtLjY4IDAtLjI4LS4yOC0uOC0xLjEtLjgtLjQ0IDAtLjcuMTItLjg1LjI1Wk0yIDkuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDkuMjVabTAtNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNC4yNVptMTQgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLS41YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dFdvcmRDb3VudFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFdvcmRDb3VudFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA0LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVptMCA1YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVaTTcuNiAxM2MtLjYyIDAtMS4xLjU1LTEuMSAxLjE0YS41LjUgMCAwIDEtMSAwIDIuMTQgMi4xNCAwIDAgMSAzLjkxLTEuMmMuNC42My40MyAxLjQ1LS4wNSAyLjI3LS4yNS40MS0uNTguNzMtLjkyIDFsLS41LjM3LS4wNy4wNS0uNC4zYy0uNDQuMzItLjc2LjY0LS45IDEuMDdoMi42YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNWMwLTEuMi43LTEuODcgMS4zNi0yLjM4bC40My0uMy4wNy0uMDZjLjE2LS4xMS4zMi0uMjIuNDYtLjM0LjMtLjIzLjUyLS40NS42Ny0uNzIuMzItLjU0LjI1LS45NS4wOC0xLjIxQTEuMTYgMS4xNiAwIDAgMCA3LjYgMTNabTQuNDguMjdhLjk5Ljk5IDAgMCAwLS4yOS40Ni41LjUgMCAxIDEtLjk2LS4yOGMuMDgtLjI2LjI1LS42My41OS0uOTMuMzQtLjMuODQtLjUyIDEuNS0uNTIgMS4zNCAwIDIuMS45OCAyLjEgMS44NiAwIC4zNi0uMDYuOS0uNDMgMS4zNi0uMDcuMDktLjE1LjE3LS4yNC4yNWExLjY2IDEuNjYgMCAwIDEgLjY3IDEuNGMwIC43Mi0uMjQgMS4yOC0uNjcgMS42NS0uNDIuMzYtLjk1LjQ4LTEuNDMuNDgtLjQ2IDAtLjktLjA4LTEuMjgtLjMyYTIgMiAwIDAgMS0uOC0xLjEyLjUuNSAwIDEgMSAuOTUtLjNjLjEuMzIuMjQuNDkuNC41OC4xNS4xLjM4LjE2LjczLjE2LjMyIDAgLjYtLjA4Ljc4LS4yNC4xNy0uMTQuMzItLjQuMzItLjlhLjczLjczIDAgMCAwLS4xMi0uNDQuNzkuNzkgMCAwIDAtLjMxLS4yNWMtLjMtLjE0LS42OC0uMTctLjk0LS4xN2EuNS41IDAgMSAxIDAtMWMuNyAwIDEuMDEtLjIyIDEuMTYtLjQuMTYtLjIxLjIxLS40OS4yMS0uNzQgMC0uMzItLjMtLjg2LTEuMS0uODYtLjQzIDAtLjY5LjEzLS44NC4yN1ptLTkuMDYgMS4xYTQuOCA0LjggMCAwIDEtLjg1LjczLjUuNSAwIDEgMS0uNTYtLjgzIDMuNDYgMy40NiAwIDAgMCAxLjQyLTEuODhzLjExLS4zOS40Ni0uMzljLjUgMCAuNTMuNS41My41djZhLjUuNSAwIDAgMS0xIDB2LTQuMTRabTEzIC4xM2MwLS4yOC4yMS0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRXcmFwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRXcmFwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNC4yNVptMCA1YzAtLjQxLjM0LS43NS43NS0uNzVoMTNhMy4yNSAzLjI1IDAgMCAxIDAgNi41aC0zLjRsLjIzLjI3YS43NS43NSAwIDAgMS0xLjE2Ljk2bC0xLjI1LTEuNWEuNzUuNzUgMCAwIDEgMC0uOTZsMS4yNS0xLjVhLjc1Ljc1IDAgMCAxIDEuMTYuOTZsLS4yMy4yN2gzLjRhMS43NSAxLjc1IDAgMSAwIDAtMy41aC0xM0EuNzUuNzUgMCAwIDEgMiA5LjI1Wm0wIDVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0V3JhcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFdyYXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41SDE2YTMgMyAwIDEgMSAwIDZoLTQuM2wuNjUuNjVhLjUuNSAwIDAgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41YS41LjUgMCAwIDEgLjcuN2wtLjY0LjY1SDE2YTIgMiAwIDEgMCAwLTRIMi41YS41LjUgMCAwIDEtLjUtLjVabTAgNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRXcmFwT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRXcmFwT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuMTUgMi4xNWMuMi0uMi41LS4yLjcgMGwxNSAxNWEuNS41IDAgMCAxLS43LjdMMTQuMjkgMTVoLTEuOTRsLjIzLjI3YS43NS43NSAwIDAgMS0xLjE2Ljk2bC0xLjI1LTEuNWEuNzUuNzUgMCAwIDEgMC0uOTZsMS4yNS0xLjVhLjc1Ljc1IDAgMCAxIC4wNy0uMDdMOS4zIDEwSDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDUuMDRMNC4zIDVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoLjA0bC0uNjQtLjY1YS41LjUgMCAwIDEgMC0uN1ptOC40NyA2LjM1aDUuMTNhMy4yNSAzLjI1IDAgMCAxIDEuMTYgNi4yOWwtMS4yOS0xLjI5aC4xM2ExLjc1IDEuNzUgMCAxIDAgMC0zLjVoLTMuNjNsLTEuNS0xLjVaTTcuMTIgNWwtMS41LTEuNWgxMS42M2EuNzUuNzUgMCAwIDEgMCAxLjVINy4xMlptLTQuMzcgOC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0V3JhcE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dFdyYXBPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy4yOSA0SDIuNWEuNS41IDAgMCAwIDAgMWgxLjhsNCA0SDIuNWEuNS41IDAgMCAwIDAgMWg2LjhsMi41MiAyLjUzYS41LjUgMCAwIDAtLjE3LjEybC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoMi41OGwyLjg2IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEzLjMgMTRoLTEuNThsLjY0LS42NWEuNS41IDAgMCAwIC4xMi0uMTdsLjgyLjgyWm0tMi4xNy01IDEgMUgxNmEyIDIgMCAwIDEgLjEyIDRsLjg0Ljg0QTMgMyAwIDAgMCAxNiA5aC00Ljg4Wm0tNS01IDEgMUgxNy41YS41LjUgMCAwIDAgMC0xSDYuMTJaTTIgMTQuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05Wk02IDYuNzVjMC0uNDEuMzItLjc1LjctLjc1aDYuNmMuMzggMCAuNy4zNC43Ljc1cy0uMzIuNzUtLjcuNzVINi43Yy0uMzggMC0uNy0uMzQtLjctLjc1Wm0wIDNjMC0uNDEuMzItLjc1LjctLjc1aDMuNmMuMzggMCAuNy4zNC43Ljc1cy0uMzIuNzUtLjcuNzVINi43Yy0uMzggMC0uNy0uMzQtLjctLjc1Wk02LjcgMTJoNi42Yy4zOCAwIC43LjM0LjcuNzVzLS4zMi43NS0uNy43NUg2LjdjLS4zOCAwLS43LS4zNC0uNy0uNzVzLjMyLS43NS43LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA2YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTYgOS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVpNNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtOUM0IDQuNjcgNC42NyA0IDUuNSA0WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduQm90dG9tRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnbkJvdHRvbUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTEgN2g3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0wIDNoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hBbGlnbkJvdHRvbVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduQm90dG9tUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDEwYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDdabTAgM2gtN2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xWm0zLjUgMS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OVpNNS41IDE2aDljLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Cb3R0b21DZW50ZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduQm90dG9tQ2VudGVyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptMSA3aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFabTEgM2g1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduQm90dG9tQ2VudGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25Cb3R0b21DZW50ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41di05Wk02LjUgMTBhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1ptMSAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Cb3R0b21MZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnbkJvdHRvbUxlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wm0xIDdoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVptMCAzaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Cb3R0b21MZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25Cb3R0b21MZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtOVpNNi41IDEwYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTAgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduQm90dG9tUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduQm90dG9tUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wm04IDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFoN1ptMCAzYS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Cb3R0b21SaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduQm90dG9tUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41di05Wm05LjUgNC41YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDdabTAgM2EuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMWg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduQm90dG9tUm90YXRlOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduQm90dG9tUm90YXRlOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVptLTcgMXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgMSAwWm0tMyAwdjdhLjUuNSAwIDAgMS0xIDB2LTdhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Cb3R0b21Sb3RhdGU5MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduQm90dG9tUm90YXRlOTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA2YS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAwIDAgMSAwdi03YS41LjUgMCAwIDAtLjUtLjVabTIuNS41YS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTdabS02IDhBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5Wm0xIDB2LTlDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduQ2VudGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnbkNlbnRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05Wm0tMTAuMyAyaDYuNmMuMzggMCAuNy4zNC43Ljc1cy0uMzIuNzUtLjcuNzVINi43Yy0uMzggMC0uNy0uMzQtLjctLjc1cy4zMi0uNzUuNy0uNzVabTEgM2g0LjZjLjM4IDAgLjcuMzQuNy43NXMtLjMyLjc1LS43Ljc1SDcuN2MtLjM4IDAtLjctLjM0LS43LS43NXMuMzItLjc1LjctLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduQ2VudGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25DZW50ZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41Wk02IDguNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptMSAzYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduTWlkZGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnbk1pZGRsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTEgNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0wIDNoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hBbGlnbk1pZGRsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduTWlkZGxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDguNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTgtOEEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduTWlkZGxlTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25NaWRkbGVMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptMSA1aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFabTAgM2g1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduTWlkZGxlTGVmdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduTWlkZGxlTGVmdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk00IDUuNUM0IDQuNjcgNC42NyA0IDUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTlaTTYuNSA4YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTAgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduTWlkZGxlUmlnaHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduTWlkZGxlUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wm04IDVhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFoN1ptMCAzYS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25NaWRkbGVSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduTWlkZGxlUmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNC41di05Wk0xMy41IDhhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFoN1ptMCAzYS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25NaWRkbGVSb3RhdGU5MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25NaWRkbGVSb3RhdGU5MEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05Wm0tNSAxdjdhLjUuNSAwIDAgMS0xIDB2LTdhLjUuNSAwIDAgMSAxIDBabS0zIDB2N2EuNS41IDAgMCAxLTEgMHYtN2EuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hBbGlnbk1pZGRsZVJvdGF0ZTkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25NaWRkbGVSb3RhdGU5MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEuNSA2Yy4yOCAwIC41LjIyLjUuNXY3YS41LjUgMCAwIDEtMSAwdi03YzAtLjI4LjIyLS41LjUtLjVaTTkgNi41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTggOGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlabS0xIDB2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hBbGlnblRvcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25Ub3BGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wm0xIDNoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVptMCAzaDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Ub3BSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnblRvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTYuNSA5YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTgtNkEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlabTAgMWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduVG9wQ2VudGVyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnblRvcENlbnRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTEgM2g3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0xIDNoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hBbGlnblRvcENlbnRlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduVG9wQ2VudGVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtOVptMi41LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1ptMSAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Ub3BMZWZ0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RleHRib3hBbGlnblRvcExlZnRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wm0xIDNoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVptMCAzaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Ub3BMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25Ub3BMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTQgNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtOVptMi41LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1ptMCAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Ub3BSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25Ub3BSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTggM2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMWg3Wm0wIDNhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hBbGlnblRvcFJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94QWxpZ25Ub3BSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk00IDUuNUM0IDQuNjcgNC42NyA0IDUuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTlabTkuNS41YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDdabTAgM2EuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMWg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveEFsaWduVG9wUm90YXRlOTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduVG9wUm90YXRlOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVptLTMgMXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgMSAwWm0tMyAwdjdhLjUuNSAwIDAgMS0xIDB2LTdhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUZXh0Ym94QWxpZ25Ub3BSb3RhdGU5MFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveEFsaWduVG9wUm90YXRlOTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzLjUgNmMuMjggMCAuNS4yMi41LjV2N2EuNS41IDAgMCAxLTEgMHYtN2MwLS4yOC4yMi0uNS41LS41Wm0tMi41LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptNiA4YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OVptLTEgMHYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveE1vcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGV4dGJveE1vcmVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2gxLjI1QTIuMjUgMi4yNSAwIDAgMSAxMSAxNS45N2EyLjI1IDIuMjUgMCAwIDEgNCAwIDIuMjUgMi4yNSAwIDAgMSAxLjk5LTEuMjJsLjAxLS4yNXYtOVpNNiA2Ljc1YzAtLjQxLjMyLS43NS43LS43NWg2LjZjLjM4IDAgLjcuMzQuNy43NXMtLjMyLjc1LS43Ljc1SDYuN2MtLjM4IDAtLjctLjM0LS43LS43NVptMCAzYzAtLjQxLjMyLS43NS43LS43NWgzLjZjLjM4IDAgLjcuMzQuNy43NXMtLjMyLjc1LS43Ljc1SDYuN2MtLjM4IDAtLjctLjM0LS43LS43NVpNNi43IDEyaDYuNmMuMzggMCAuNy4zNC43Ljc1cy0uMzIuNzUtLjcuNzVINi43Yy0uMzggMC0uNy0uMzQtLjctLjc1cy4zMi0uNzUuNy0uNzVabTMuNTUgNWExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xMyAxOC4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm00IDBhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hNb3JlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94TW9yZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA2LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTYuNSA5YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTYgMTIuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVpNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlsLS4wMS4yNWMtLjQgMC0uNzcuMS0xLjA5LjI5LjA3LS4xNy4xLS4zNS4xLS41NHYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuNDhjLS4xNS4zLS4yMy42NC0uMjMgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5Wm0tNC4yNSAxNGExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xMyAxOC4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm00IDBhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hSb3RhdGU5MEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94Um90YXRlOTBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOVpNNy41IDYuN3Y2LjZjMCAuMzgtLjM0LjctLjc1LjdTNiAxMy42OCA2IDEzLjNWNi43YzAtLjM4LjM0LS43Ljc1LS43cy43NS4zMi43NS43Wk05Ljc1IDZjLjQxIDAgLjc1LjMyLjc1Ljd2My42YzAgLjM4LS4zNC43LS43NS43UzkgMTAuNjggOSAxMC4zVjYuN2MwLS4zOC4zNC0uNy43NS0uN1ptMyAwYy40MSAwIC43NS4zMi43NS43djYuNmMwIC4zOC0uMzQuNy0uNzUuN3MtLjc1LS4zMi0uNzUtLjdWNi43YzAtLjM4LjM0LS43Ljc1LS43WlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveFJvdGF0ZTkwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94Um90YXRlOTBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEzIDYuNWEuNS41IDAgMCAwLTEgMHY3YS41LjUgMCAwIDAgMSAwdi03Wm0tMyAwYS41LjUgMCAxIDAtMSAwdjRhLjUuNSAwIDAgMCAxIDB2LTRabS0zIDBhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1ptMTAgOGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlabS0xIDB2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRleHRib3hTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94U2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFhNS40OCA1LjQ4IDAgMCAxLS41LTMuNUg2LjdjLS4zOCAwLS43LS4zNC0uNy0uNzVzLjMyLS43NS43LS43NWgyLjljLjI5LS41Ni42Ny0xLjA3IDEuMTMtMS41SDYuN2MtLjQgMC0uNzEtLjM0LS43MS0uNzVTNi4zMiA5IDYuNyA5SDE0LjM2YTUuNjMgNS42MyAwIDAgMSAyLjY1LjZWNS41Wk02IDYuNzVjMC0uNDEuMzItLjc1LjctLjc1aDYuNmMuMzggMCAuNy4zNC43Ljc1cy0uMzIuNzUtLjcuNzVINi43Yy0uMzggMC0uNy0uMzQtLjctLjc1Wm02LjA3IDQuN2EyIDIgMCAwIDEtMS40NCAyLjQ3bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGV4dGJveFNldHRpbmdzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUZXh0Ym94U2V0dGluZ3NSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSA2YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTYgOS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoMi43Yy4xLS4zNS4yNC0uNjguNC0xSDYuNVptLTEgNGgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41Wm02LjU3LTQuNTZhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNzQgNC43NCAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNzMgNC43MyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRoaW5raW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RoaW5raW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNyAyLjY0QTQgNCAwIDAgMSAxMCAyYTMuNTYgMy41NiAwIDAgMSAzLjUyIDIuMWMuMzMuNy40MyAxLjQ0LjQ2IDEuOTIuNjUuMDUgMS4zMS4yIDEuODYuNTZDMTYuNTYgNy4wNiAxNyA3Ljg1IDE3IDljMCAxLjE3LS40NCAxLjk3LTEuMTYgMi40NC0uNjkuNDUtMS41Ni41Ni0yLjM0LjU2aC03Yy0uNzkgMC0xLjY2LS4xMy0yLjM0LS41OEMzLjQ0IDEwLjk0IDMgMTAuMTUgMyA5cy40NC0xLjk0IDEuMTYtMi40MmMuNTUtLjM2IDEuMi0uNTEgMS44Ni0uNTYuMDMtLjQ4LjEzLTEuMjEuNDYtMS45Mi4yNS0uNTMuNjMtMS4wNiAxLjIxLTEuNDZaTTEwIDE1YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptLTUgMS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGhpbmtpbmdSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RoaW5raW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAyYTMuNTUgMy41NSAwIDAgMC0zLjUyIDIuMWMtLjMzLjctLjQzIDEuNDQtLjQ2IDEuOTItLjY1LjA1LTEuMzEuMi0xLjg2LjU2QzMuNDQgNy4wNiAzIDcuODUgMyA5cy40NCAxLjk0IDEuMTYgMi40MmMuNjguNDUgMS41NS41OCAyLjM0LjU4aDdjLjc4IDAgMS42NS0uMTEgMi4zNC0uNTZDMTYuNTYgMTAuOTcgMTcgMTAuMTcgMTcgOWMwLTEuMTUtLjQ0LTEuOTQtMS4xNi0yLjQyYTMuODQgMy44NCAwIDAgMC0xLjg2LS41NiA1LjUzIDUuNTMgMCAwIDAtLjQ2LTEuOTJBMy41NiAzLjU2IDAgMCAwIDEwIDJaTTcgNi41YzAtLjI0IDAtMS4xNS40LTEuOTguMTgtLjQuNDYtLjc4Ljg2LTEuMDVBMyAzIDAgMCAxIDEwIDNhMyAzIDAgMCAxIDEuNzQuNDdjLjQuMjcuNjguNjUuODcgMS4wNS4zOS44My4zOSAxLjc0LjM5IDEuOTggMCAuMjguMjIuNS41LjUuNzEgMCAxLjM0LjEyIDEuNzkuNDIuNC4yNy43MS43My43MSAxLjU4IDAgLjg5LS4zMSAxLjM0LS43MSAxLjYtLjQ0LjMtMS4wNy40LTEuNzkuNGgtN2MtLjcxIDAtMS4zNC0uMTItMS43OS0uNDJDNC4zMSAxMC4zMSA0IDkuODUgNCA5YzAtLjg1LjMtMS4zMS43MS0xLjU4QzUuMTYgNy4xMiA1LjggNyA2LjUgN2EuNS41IDAgMCAwIC41LS41Wk04IDE3YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptMC0xYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTQuNSAyYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0wLTFhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUaHVtYkRpc2xpa2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGh1bWJEaXNsaWtlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjQ4IDE4LjNjLS44LjgzLTIuMDkuMzgtMi40My0uNi0uMjgtLjgtLjY0LTEuNzctMS0yLjQ4QzggMTMuMSA3LjM4IDExLjkgNS42NyAxMC4zN2MtLjIzLS4yLS41Mi0uMzYtLjg0LS40OS0xLjEzLS40NC0yLjItMS42MS0xLjkxLTNsLjM1LTEuNzdhMi41IDIuNSAwIDAgMSAxLjgtMS45Mmw1LjYtMS41M2E0LjUgNC41IDAgMCAxIDUuNiAzLjU0bC42OSAzLjc2QTMgMyAwIDAgMSAxNCAxMi41aC0uODlsLjAxLjA1Yy4wOC40MS4xOC45Ny4yNCAxLjU4LjA3LjYyLjEgMS4yOS4wNSAxLjkyYTMuNjggMy42OCAwIDAgMS0uNSAxLjczYy0uMTEuMTYtLjI3LjM1LS40NC41MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRodW1iRGlzbGlrZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGh1bWJEaXNsaWtlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4wNSAxNy43Yy4zNC45OCAxLjYzIDEuNDMgMi40My42LjE3LS4xNy4zMy0uMzYuNDQtLjUyLjMyLS40OC40NS0xLjEyLjUtMS43My4wNS0uNjMuMDItMS4zLS4wNS0xLjkyLS4wNi0uNi0uMTYtMS4xNy0uMjQtMS41OHYtLjA1SDE0YTMgMyAwIDAgMCAyLjk1LTMuNTRsLS42OS0zLjc2YTQuNSA0LjUgMCAwIDAtNS42LTMuNTRMNS4wNiAzLjJjLS45Mi4yNS0xLjYyIDEtMS44IDEuOTJsLS4zNSAxLjc3Yy0uMjggMS4zOS43OCAyLjU2IDEuOSAzIC4zMy4xMy42Mi4zLjg1LjUgMS43IDEuNSAyLjMyIDIuNzIgMy4zOCA0Ljg0LjM2LjcxLjcyIDEuNjggMSAyLjQ5Wm0xLjk3LTUuNTh2LjA0YTE0LjIgMTQuMiAwIDAgMSAuMzYgMi4wOGMuMDYuNTguMDkgMS4xOC4wNCAxLjczLS4wNC41NS0uMTUuOTgtLjMzIDEuMjUtLjA2LjEtLjE4LjIyLS4zMy4zOS0uMi4yLS42My4xNi0uNzYtLjIzLS4yOS0uODItLjY3LTEuODMtMS4wNS0yLjYtMS4wNy0yLjE0LTEuNzYtMy41LTMuNjItNS4xNS0uMzQtLjMtLjc0LS41Mi0xLjEzLS42OC0uODgtLjM0LTEuNDUtMS4xNC0xLjMtMS44N2wuMzUtMS43N2MuMTEtLjU2LjUzLTEgMS4wOC0xLjE1bDUuNi0xLjUzYTMuNSAzLjUgMCAwIDEgNC4zNiAyLjc1bC42OCAzLjc2YTIgMiAwIDAgMS0xLjk2IDIuMzZoLTEuNWEuNS41IDAgMCAwLS41LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgVGh1bWJMaWtlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RodW1iTGlrZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi40OCAxLjdjLS44LS44My0yLjA5LS4zOC0yLjQzLjYtLjI4LjgtLjY0IDEuNzctMSAyLjQ4QzggNi45IDcuMzggOC4xIDUuNjcgOS42M2MtLjIzLjItLjUyLjM2LS44NC40OS0xLjEzLjQ0LTIuMiAxLjYxLTEuOTEgM2wuMzUgMS43N2EyLjUgMi41IDAgMCAwIDEuOCAxLjkybDUuNiAxLjUyYTQuNSA0LjUgMCAwIDAgNS42LTMuNTNsLjY5LTMuNzZBMyAzIDAgMCAwIDE0IDcuNWgtLjg5bC4wMS0uMDVjLjA4LS40MS4xOC0uOTcuMjQtMS41OS4wNy0uNi4xLTEuMjguMDUtMS45YTMuNjggMy42OCAwIDAgMC0uNS0xLjc0IDQuMTYgNC4xNiAwIDAgMC0uNDQtLjUyWlwiXSk7XG5leHBvcnQgY29uc3QgVGh1bWJMaWtlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaHVtYkxpa2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjA1IDIuM2MuMzQtLjk4IDEuNjMtMS40MyAyLjQzLS42LjE3LjE3LjMzLjM2LjQ0LjUyLjMyLjQ4LjQ1IDEuMTIuNSAxLjczLjA1LjYzLjAyIDEuMy0uMDUgMS45MS0uMDYuNjItLjE2IDEuMTgtLjI0IDEuNTl2LjA1SDE0YTMgMyAwIDAgMSAyLjk1IDMuNTRsLS42OSAzLjc2YTQuNSA0LjUgMCAwIDEtNS42IDMuNTNsLTUuNi0xLjUyYTIuNSAyLjUgMCAwIDEtMS44LTEuOTJsLS4zNS0xLjc3Yy0uMjgtMS4zOS43OC0yLjU2IDEuOS0zIC4zMy0uMTMuNjItLjMuODUtLjUgMS43LTEuNSAyLjMyLTIuNzIgMy4zOC00Ljg0LjM2LS43MS43Mi0xLjY4IDEtMi40OVptMS45NyA1LjU4di0uMDRhMTMuNyAxMy43IDAgMCAwIC4xMy0uNThjLjA4LS40LjE3LS45My4yMy0xLjUuMDYtLjU4LjA5LTEuMTguMDQtMS43M2EyLjczIDIuNzMgMCAwIDAtLjMzLTEuMjUgMy4yNiAzLjI2IDAgMCAwLS4zMy0uMzljLS4yLS4yLS42My0uMTYtLjc2LjIzLS4yOS44Mi0uNjcgMS44My0xLjA1IDIuNi0xLjA3IDIuMTQtMS43NiAzLjUtMy42MiA1LjE1LS4zNC4zLS43NC41Mi0xLjEzLjY4LS44OC4zNC0xLjQ1IDEuMTQtMS4zIDEuODdsLjM1IDEuNzdjLjExLjU2LjUzIDEgMS4wOCAxLjE1bDUuNiAxLjUzYzEuOTguNTQgNC0uNzMgNC4zNi0yLjc1bC42OC0zLjc2YTIgMiAwIDAgMC0xLjk2LTIuMzZoLTEuNWEuNS41IDAgMCAxLS41LS42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRodW1iTGlrZURpc2xpa2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGh1bWJMaWtlRGlzbGlrZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDZoLS43M2MuMTMtLjMuMjYtLjcuMzQtMS4xMS4xLS41LjE0LTEuMDYtLjAyLTEuNTgtLjE3LS41NS0uNTYtMS0xLjIzLTEuMjMtLjg2LS4zLTEuNi4zMS0xLjkyLjkyTDMuMTQgNS41YTIuNSAyLjUgMCAwIDEtLjk3IDEuMDJMMSA3LjE3YTIgMiAwIDAgMC0uODggMi40NGwuMy44M2EyIDIgMCAwIDAgMS4zMiAxLjIybDQuMjQgMS4yNGEyLjUgMi41IDAgMCAwIDMuMS0xLjY2TDkuOSA4LjZBMiAyIDAgMCAwIDggNlptNC43MyA4SDEyYTIgMiAwIDAgMS0xLjkxLTIuNTlsLjgyLTIuNjVBMi41IDIuNSAwIDAgMSAxNCA3LjFsNC4yNCAxLjI0YTIgMiAwIDAgMSAxLjMxIDEuMjJsLjMxLjg0YTIgMiAwIDAgMS0uODggMi40M2wtMS4xNi42N2MtLjQxLjI0LS43NS41OS0uOTcgMS4wMkwxNS41NiAxN2MtLjMxLjYxLTEuMDYgMS4yMi0xLjkyLjkzYTEuODQgMS44NCAwIDAgMS0xLjIzLTEuMjQgMy4yNCAzLjI0IDAgMCAxLS4wMi0xLjU3Yy4wOC0uNDEuMjEtLjguMzQtMS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRodW1iTGlrZURpc2xpa2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RodW1iTGlrZURpc2xpa2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuMzIgMy40NmMuMi0uMzguNTItLjUuNzItLjQzLjM2LjEyLjUyLjMyLjYuNTguMDkuMjkuMDguNjYgMCAxLjA4YTYuMDQgNi4wNCAwIDAgMS0uNTcgMS41NXYuMDJoLS4wMUEuNS41IDAgMCAwIDYuNSA3SDhhMSAxIDAgMCAxIC45NSAxLjNsLS44MiAyLjY1YTEuNSAxLjUgMCAwIDEtMS44NiAxTDIuMDMgMTAuN2ExIDEgMCAwIDEtLjY2LS42bC0uMy0uODRhMSAxIDAgMCAxIC40My0xLjIybDEuMTYtLjY3YTMuNSAzLjUgMCAwIDAgMS4zNy0xLjQybDEuMy0yLjQ5Wk04IDZoLS43MmMuMTMtLjMuMjYtLjcuMzQtMS4xMS4xLS41LjE0LTEuMDYtLjAyLTEuNTgtLjE3LS41NS0uNTYtMS0xLjIzLTEuMjMtLjg2LS4zLTEuNi4zMS0xLjkyLjkyTDMuMTQgNS41YTIuNSAyLjUgMCAwIDEtLjk3IDEuMDJMMSA3LjE3YTIgMiAwIDAgMC0uODggMi40NGwuMy44M2EyIDIgMCAwIDAgMS4zMiAxLjIybDQuMjQgMS4yNGEyLjUgMi41IDAgMCAwIDMuMS0xLjY2TDkuOSA4LjZBMiAyIDAgMCAwIDggNlptNi42OSAxMC41NGMtLjIuMzktLjUyLjUtLjcyLjQ0LS4zNi0uMTItLjUyLS4zMy0uNi0uNThhMi4yNyAyLjI3IDAgMCAxIDAtMS4wOCA2LjAzIDYuMDMgMCAwIDEgLjU3LTEuNTV2LS4wMmwuMDEtLjAxYS41LjUgMCAwIDAtLjQ0LS43NEgxMmExIDEgMCAwIDEtLjk1LTEuM2wuODItMi42NGExLjUgMS41IDAgMCAxIDEuODYtMWw0LjI0IDEuMjRhMSAxIDAgMCAxIC42Ni42MWwuMy44NGExIDEgMCAwIDEtLjQzIDEuMjJsLTEuMTYuNjZhMy41IDMuNSAwIDAgMC0xLjM3IDEuNDJsLTEuMyAyLjVaTTEyIDE0aC43MmMtLjEzLjMxLS4yNi43LS4zNCAxLjEyLS4xLjQ5LS4xNCAxLjA1LjAyIDEuNTcuMTcuNTUuNTYgMS4wMSAxLjIzIDEuMjQuODYuMjkgMS42LS4zMiAxLjkyLS45M2wxLjMtMi40OGMuMjItLjQzLjU2LS43OC45Ny0xLjAybDEuMTYtLjY3YTIgMiAwIDAgMCAuODgtMi40M2wtLjMtLjg0YTIgMiAwIDAgMC0xLjMyLTEuMjJMMTQuMDEgNy4xYTIuNSAyLjUgMCAwIDAtMy4xIDEuNjZsLS44MSAyLjY1YTIgMiAwIDAgMCAxLjkgMi42WlwiXSk7XG5leHBvcnQgY29uc3QgVGlja2V0RGlhZ29uYWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGlja2V0RGlhZ29uYWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIuNzQgMi41M2ExLjc1IDEuNzUgMCAwIDAtMi40OCAwbC03LjczIDcuNzNjLS42OS42OS0uNjkgMS44IDAgMi40OGwuNzcuNzdjLjQxLjQuOTkuMzQgMS4zNS4xNGExLjI1IDEuMjUgMCAwIDEgMS43IDEuN2MtLjIuMzYtLjI3Ljk0LjE0IDEuMzRsLjc3Ljc4Yy42OC42OCAxLjguNjggMi40OCAwbDcuNzMtNy43M2MuNjgtLjY5LjY4LTEuOCAwLTIuNDhsLS43OC0uNzdjLS40LS40LS45OC0uMzQtMS4zNC0uMTRhMS4yNSAxLjI1IDAgMCAxLTEuNy0xLjdjLjItLjM2LjI3LS45NC0uMTQtMS4zNGwtLjc3LS43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRpY2tldERpYWdvbmFsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaWNrZXREaWFnb25hbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuMDMgMy4yNGEuNzUuNzUgMCAwIDAtMS4wNiAwbC03LjczIDcuNzNjLS4zLjMtLjMuNzcgMCAxLjA2bC43Ny43Ny4wMy4wMWMuMDQgMCAuMDggMCAuMTMtLjA0YTIuMjUgMi4yNSAwIDAgMSAzLjA1IDMuMDUuMjcuMjcgMCAwIDAtLjAzLjE0di4wM2wuNzguNzdjLjMuMy43Ny4zIDEuMDYgMGw3LjczLTcuNzNjLjMtLjMuMy0uNzcgMC0xLjA2TDE2IDcuMTloLS4wM2MtLjAzIDAtLjA4IDAtLjEzLjAzYTIuMjQgMi4yNCAwIDAgMS0zLjMzLTEuOTdjMC0uMzkuMS0uNzYuMjgtMS4wOGwuMDMtLjEzVjRsLS43OC0uNzdabS0xLjc3LS43MWMuNjktLjY4IDEuOC0uNjggMi40OCAwbC43Ny43OGMuNDEuNC4zNC45OC4xNCAxLjM0YTEuMjUgMS4yNSAwIDAgMCAxLjcgMS43Yy4zNi0uMi45NC0uMjcgMS4zNS4xNGwuNzcuNzdjLjY4LjY5LjY4IDEuOCAwIDIuNDhsLTcuNzMgNy43M2MtLjY4LjY4LTEuOC42OC0yLjQ4IDBsLS43Ny0uNzhjLS40LS40LS4zNC0uOTgtLjE0LTEuMzRhMS4yNSAxLjI1IDAgMCAwLTEuNy0xLjdjLS4zNi4yLS45NC4yNy0xLjM0LS4xNGwtLjc4LS43N2ExLjc1IDEuNzUgMCAwIDEgMC0yLjQ4bDcuNzMtNy43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRpY2tldEhvcml6b250YWxGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGlja2V0SG9yaXpvbnRhbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xOCA2djEuNWEuNS41IDAgMCAxLS41LjUgMiAyIDAgMSAwIDAgNGMuMjggMCAuNS4yMi41LjVWMTRhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTF2LTEuNWMwLS4yOC4yMi0uNS41LS41YTIgMiAwIDEgMCAwLTQgLjUuNSAwIDAgMS0uNS0uNVY2YTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRpY2tldEhvcml6b250YWxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RpY2tldEhvcml6b250YWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE2LjUgNWMuODMgMCAxLjUuNjcgMS41IDEuNVY4YS41LjUgMCAwIDEtLjUuNSAxLjUgMS41IDAgMCAwIDAgM2MuMjggMCAuNS4yMi41LjV2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDEzLjVWMTJjMC0uMjguMjItLjUuNS0uNWExLjUgMS41IDAgMCAwIDAtM0EuNS41IDAgMCAxIDIgOFY2LjVDMiA1LjY3IDIuNjcgNSAzLjUgNWgxM1ptLjUgMS41YS41LjUgMCAwIDAtLjUtLjVoLTEzYS41LjUgMCAwIDAtLjUuNXYxLjA1YTIuNSAyLjUgMCAwIDEgMCA0Ljl2MS4wNWMwIC4yOC4yMi41LjUuNWgxM2EuNS41IDAgMCAwIC41LS41di0xLjA1YTIuNSAyLjUgMCAwIDEtLjE2LTQuODZsLjE2LS4wNFY2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUaW1lQW5kV2VhdGhlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaW1lQW5kV2VhdGhlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWm0tNSA3LjVhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBaTTEwIDguNWEuNS41IDAgMCAwLTEgMHYyYzAgLjI4LjIyLjUuNS41SDExYS41LjUgMCAwIDAgMC0xaC0xVjguNVptMCA3LjVjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVpNMi41IDkuNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWk0xNiAxMGMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpNNC4xNSAxNS4xNWEuNS41IDAgMCAwIC43LjdsMS0xYS41LjUgMCAwIDAtLjctLjdsLTEgMVptMTAtMTAgMS0xYS41LjUgMCAwIDEgLjcuN2wtMSAxYS41LjUgMCAwIDEtLjctLjdabS05LjMtMWEuNS41IDAgMSAwLS43LjdsMSAxYS41LjUgMCAxIDAgLjctLjdsLTEtMVptMTAgMTAgMSAxYS41LjUgMCAwIDEtLjcuN2wtMS0xYS41LjUgMCAwIDEgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUaW1lQW5kV2VhdGhlclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGltZUFuZFdlYXRoZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgMi41YS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabS0uNSA2YS41LjUgMCAwIDAtMSAwdjJjMCAuMjguMjIuNS41LjVIMTFhLjUuNSAwIDAgMCAwLTFoLTFWOC41Wm0wLTNhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlaTTYuNSAxMGEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFptMy41IDZjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVpNMi41IDkuNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWk0xNiAxMGMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpNNC4xNSAxNS4xNWEuNS41IDAgMCAwIC43LjdsMS0xYS41LjUgMCAwIDAtLjctLjdsLTEgMVptMTAtMTAgMS0xYS41LjUgMCAwIDEgLjcuN2wtMSAxYS41LjUgMCAwIDEtLjctLjdabS05LjMtMWEuNS41IDAgMSAwLS43LjdsMSAxYS41LjUgMCAxIDAgLjctLjdsLTEtMVptMTAgMTAgMSAxYS41LjUgMCAwIDEtLjcuN2wtMS0xYS41LjUgMCAwIDEgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUaW1lUGlja2VyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RpbWVQaWNrZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNDcgMi4xN2EuNzUuNzUgMCAwIDAtLjk0IDBMNi43OCA0LjQyYS43NS43NSAwIDAgMCAuOTQgMS4xNkwxMCAzLjcybDIuMjggMS44NmEuNzUuNzUgMCAxIDAgLjk0LTEuMTZsLTIuNzUtMi4yNVptMi43NSAxMy40MS0yLjc1IDIuMjVhLjc1Ljc1IDAgMCAxLS45NCAwbC0yLjc1LTIuMjVhLjc1Ljc1IDAgMCAxIC45NC0xLjE2TDEwIDE2LjI4bDIuMjgtMS44NmEuNzUuNzUgMCAxIDEgLjk0IDEuMTZabS0yLjQ3LTYuODNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTAgMTJhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm02LTIuNWExLjUgMS41IDAgMCAxIDMgMHYxYTEuNSAxLjUgMCAwIDEtMyAwdi0xWm0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVptLTExLTFDNS42NyA4IDUgOC42NyA1IDkuNXYxYTEuNSAxLjUgMCAwIDAgMyAwdi0xQzggOC42NyA3LjMzIDggNi41IDhaTTYgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFabTYgMGExLjUgMS41IDAgMCAxIDMgMHYxYTEuNSAxLjUgMCAwIDEtMyAwdi0xWm0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVptLTExLTFDMS42NyA4IDEgOC42NyAxIDkuNXYxYTEuNSAxLjUgMCAwIDAgMyAwdi0xQzQgOC42NyAzLjMzIDggMi41IDhaTTIgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUaW1lUGlja2VyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaW1lUGlja2VyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4zMiAyLjEyYS41LjUgMCAwIDAtLjY0IDBsLTMgMi41YS41LjUgMCAxIDAgLjY0Ljc2TDEwIDMuMTVsMi42OCAyLjIzYS41LjUgMCAwIDAgLjY0LS43NmwtMy0yLjVabTMgMTMuMjYtMyAyLjVhLjUuNSAwIDAgMS0uNjQgMGwtMy0yLjVhLjUuNSAwIDEgMSAuNjQtLjc2TDEwIDE2Ljg1bDIuNjgtMi4yM2EuNS41IDAgMCAxIC42NC43NlptLTIuNTctNi42M2EuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk0xMCAxMmEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTYtMi41YTEuNSAxLjUgMCAwIDEgMyAwdjFhMS41IDEuNSAwIDAgMS0zIDB2LTFabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wm0tMTEtMUM1LjY3IDggNSA4LjY3IDUgOS41djFhMS41IDEuNSAwIDAgMCAzIDB2LTFDOCA4LjY3IDcuMzMgOCA2LjUgOFpNNiA5LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptNiAwYTEuNSAxLjUgMCAwIDEgMyAwdjFhMS41IDEuNSAwIDAgMS0zIDB2LTFabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wm0tMTEtMUMxLjY3IDggMSA4LjY3IDEgOS41djFhMS41IDEuNSAwIDAgMCAzIDB2LTFDNCA4LjY3IDMuMzMgOCAyLjUgOFpNMiA5LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRpbWVsaW5lRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RpbWVsaW5lRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuNSAzQzIuNjcgMyAyIDMuNjcgMiA0LjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTAgOGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTE3IDEyLjQ0YTIgMiAwIDAgMS0xLTMuODggMiAyIDAgMCAxIDEgMy44OFpNMTYuNSAzYy4yOCAwIC41LjIyLjUuNXY0LjA0YTMuMDIgMy4wMiAwIDAgMC0xIDBWMy41YzAtLjI4LjIyLS41LjUtLjVabTAgMTAuNWMtLjE3IDAtLjM0LS4wMS0uNS0uMDR2NC4wNGEuNS41IDAgMCAwIDEgMHYtNC4wNGMtLjE2LjAzLS4zMy4wNC0uNS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRpbWVsaW5lUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaW1lbGluZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy41IDNDMi42NyAzIDIgMy42NyAyIDQuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVpNMyA0LjVjMC0uMjguMjItLjUuNS0uNWg5Yy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di00Wm0uNSA2LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Wk0zIDEyLjVjMC0uMjguMjItLjUuNS0uNWg5Yy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di00Wm0xNC0uMDZhMiAyIDAgMCAxLTEtMy44OCAyIDIgMCAwIDEgMSAzLjg4Wk0xNi41IDNjLjI4IDAgLjUuMjIuNS41djQuMDRhMy4wMiAzLjAyIDAgMCAwLTEgMFYzLjVjMC0uMjguMjItLjUuNS0uNVptMCAxMC41Yy0uMTcgMC0uMzQtLjAxLS41LS4wNHY0LjA0YS41LjUgMCAwIDAgMSAwdi00LjA0Yy0uMTYuMDMtLjMzLjA0LS41LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgVGltZXIxMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaW1lcjEwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcuNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTcuNjYgMS45M2EuNS41IDAgMSAwLS43MS43bDEuNDEgMS40MmEuNS41IDAgMSAwIC43MS0uN2wtMS40MS0xLjQyWk0xNi40MyAxMGMtLjk4LjAyLTEuODYuNDQtMi40OCAxLjFhMS41IDEuNSAwIDAgMC0xLjkyLTEuMDJsLTEuNS41QTEuNSAxLjUgMCAwIDAgMTEgMTMuNXY0LjM0QTcuMDMgNy4wMyAwIDAgMSAyLjUgMTFhNyA3IDAgMCAxIDEzLjkzLTFaTTkgMTAuNWEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLTEgMHY0Wm01IDNhMi41IDIuNSAwIDAgMSA1IDB2M2EyLjUgMi41IDAgMCAxLTUgMHYtM1ptMi41LTEuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2ExLjUgMS41IDAgMCAwIDMgMHYtM2MwLS44My0uNjctMS41LTEuNS0xLjVabS0zLjUtLjVhLjUuNSAwIDAgMC0uNjYtLjQ3bC0xLjUuNWEuNS41IDAgMSAwIC4zMi45NGwuODQtLjI4djYuMzFhLjUuNSAwIDAgMCAxIDB2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBUaW1lcjEwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaW1lcjEwUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptNy40NSAxLjQzYy4yLS4yLjUxLS4yLjcgMGwxLjQyIDEuNDFhLjUuNSAwIDEgMS0uNy43MWwtMS40Mi0xLjQxYS41LjUgMCAwIDEgMC0uNzFaTTkgNi41YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMS0xIDB2LTRaTTkuNSAxOGMuNTEgMCAxLjAyLS4wNiAxLjUtLjE2VjE2LjhhNi4wMSA2LjAxIDAgMSAxIDQuNDQtNi42NWMuMzEtLjEuNjUtLjE1Ljk5LS4xNmE3IDcgMCAxIDAtNi45MyA4Wm00LjUtNC41YTIuNSAyLjUgMCAwIDEgNSAwdjNhMi41IDIuNSAwIDAgMS01IDB2LTNabTIuNS0xLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djNhMS41IDEuNSAwIDAgMCAzIDB2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0tMy41LS41YS41LjUgMCAwIDAtLjY2LS40N2wtMS41LjVhLjUuNSAwIDEgMCAuMzIuOTRsLjg0LS4yOHY2LjMxYS41LjUgMCAwIDAgMSAwdi03WlwiXSk7XG5leHBvcnQgY29uc3QgVGltZXJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGltZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTcuNDUgMS40M2MuMi0uMi41MS0uMi43IDBsMS40MiAxLjQxYS41LjUgMCAxIDEtLjcuNzFsLTEuNDItMS40MWEuNS41IDAgMCAxIDAtLjcxWk0xNi41IDExYTcgNyAwIDEgMS0xNCAwIDcgNyAwIDAgMSAxNCAwWk05IDYuNXY1YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGltZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RpbWVyUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgMmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm03LjY2IDEuOTNhLjUuNSAwIDEgMC0uNzEuN2wxLjQxIDEuNDJhLjUuNSAwIDEgMCAuNzEtLjdsLTEuNDEtMS40MlpNOS41IDZhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNVptMCAxMmE3IDcgMCAxIDAgMC0xNCA3IDcgMCAwIDAgMCAxNFptMC0xYTYgNiAwIDEgMSAwLTEyIDYgNiAwIDAgMSAwIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgVGltZXIyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RpbWVyMkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjUgMmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm03LjY2IDEuOTNhLjUuNSAwIDEgMC0uNzEuN2wxLjQxIDEuNDJhLjUuNSAwIDEgMCAuNzEtLjdsLTEuNDEtMS40MlptMS4yOSA2LjJBMy41IDMuNSAwIDAgMCAxMiAxMy41YzAgLjcuNDcgMS4yNyAxLjEgMS40NUEzLjQ5IDMuNDkgMCAwIDAgMTIgMTcuNXYuMDRBNi45OCA2Ljk4IDAgMCAxIDIuNSAxMWE3IDcgMCAwIDEgMTMuOTUtLjg3Wk05IDExLjVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0xIDB2NVptNi41LS41YTIuNSAyLjUgMCAwIDAtMi41IDIuNS41LjUgMCAwIDAgMSAwIDEuNSAxLjUgMCAxIDEgMS41IDEuNSAyLjUgMi41IDAgMCAwLTIuNSAyLjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xSDE0di0uNWMwLS44My42Ny0xLjUgMS41LTEuNWEyLjUgMi41IDAgMCAwIDAtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRpbWVyMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGltZXIyUmVndWxhcicsIFwiMWVtXCIsIFtcIk03IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptNy40NSAxLjQzYy4yLS4yLjUxLS4yLjcgMGwxLjQyIDEuNDFhLjUuNSAwIDEgMS0uNy43MWwtMS40Mi0xLjQxYS41LjUgMCAwIDEgMC0uNzFaTTkgNi41YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDB2LTVabTMgMTEuMDRBNi45OCA2Ljk4IDAgMCAxIDIuNSAxMWE3IDcgMCAwIDEgMTMuOTUtLjg3IDMuNSAzLjUgMCAwIDAtMS4wMy0uMTMgNiA2IDAgMSAwLTMuMjMgNi4zN0EzLjUgMy41IDAgMCAwIDEyIDE3LjV2LjA0Wk0xNS41IDExYTIuNSAyLjUgMCAwIDAtMi41IDIuNS41LjUgMCAwIDAgMSAwIDEuNSAxLjUgMCAxIDEgMS41IDEuNSAyLjUgMi41IDAgMCAwLTIuNSAyLjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xSDE0di0uNWMwLS44My42Ny0xLjUgMS41LTEuNWEyLjUgMi41IDAgMCAwIDAtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRpbWVyM0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUaW1lcjNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy41IDJhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptNy42NiAxLjkzYS41LjUgMCAxIDAtLjcxLjdsMS40MSAxLjQyYS41LjUgMCAxIDAgLjcxLS43bC0xLjQxLTEuNDJabTEuMjkgNi4yYTMuNyAzLjcgMCAwIDAtLjk1LS4xMyA0LjQ3IDQuNDcgMCAwIDAtMi43NC45N2wtLjI1LjJ2LjAxYTEuNSAxLjUgMCAwIDAgMS42MyAyLjQ4IDIuNDkgMi40OSAwIDAgMC0uMDQgMi42MmwtLjA0LjAzYTEuNSAxLjUgMCAwIDAtMi4wNSAxLjIzIDcgNyAwIDEgMSA0LjQ0LTcuNDFaTTkgMTEuNWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLTEgMHY1Wm00Ljg0IDEuMjEuMDMtLjAyYTIuNTcgMi41NyAwIDAgMSAuNDctLjMzYy4zMi0uMi43My0uMzYgMS4xNi0uMzYuOSAwIDEuNS42MiAxLjUgMS4yNSAwIC4yOC0uMTcuNTgtLjUxLjg0LS4zNC4yNS0uOC40MS0xLjI0LjQxYS41LjUgMCAwIDAgMCAxYy40NCAwIC45LjE2IDEuMjQuNDEuMzQuMjYuNTEuNTYuNTEuODQgMCAuNjMtLjYgMS4yNS0xLjUgMS4yNS0uNDMgMC0uODQtLjE3LTEuMTYtLjM2YTMuMzcgMy4zNyAwIDAgMS0uNDctLjMzbC0uMDItLjAyYS41LjUgMCAwIDAtLjcuNzJoLjAxbC4wMS4wMi4wNC4wM2EzLjY4IDMuNjggMCAwIDAgLjYyLjQ1Yy40LjIzIDEgLjQ5IDEuNjcuNDkgMS4zMiAwIDIuNS0uOTUgMi41LTIuMjUgMC0uNy0uNC0xLjI2LS45MS0xLjY0bC0uMTYtLjExLjE2LS4xMWMuNS0uMzguOTEtLjk1LjkxLTEuNjQgMC0xLjMtMS4xOC0yLjI1LTIuNS0yLjI1LS42OCAwLTEuMjcuMjYtMS42Ny41YTQuMzUgNC4zNSAwIDAgMC0uNjIuNDRsLS4wNC4wM3YuMDFoLS4wMWEuNS41IDAgMCAwIC42OC43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRpbWVyM1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGltZXIzUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgMmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm03LjY2IDEuOTNhLjUuNSAwIDEgMC0uNzEuN2wxLjQxIDEuNDJhLjUuNSAwIDEgMCAuNzEtLjdsLTEuNDEtMS40MlpNOS41IDZhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNVptMCAxMmMuODggMCAxLjczLS4xNiAyLjUtLjQ2bC4wMS0uMDdhMS41IDEuNSAwIDAgMSAuNDUtMS4yNUE2IDYgMCAxIDEgMTUuNDIgMTBhMy44IDMuOCAwIDAgMSAxLjAzLjEyQTcgNyAwIDEgMCA5LjUgMThabTQuMzQtNS4yOS4wMy0uMDJhMi41NyAyLjU3IDAgMCAxIC40Ny0uMzNjLjMyLS4yLjczLS4zNiAxLjE2LS4zNi45IDAgMS41LjYyIDEuNSAxLjI1IDAgLjI4LS4xNy41OC0uNTEuODQtLjM0LjI1LS44LjQxLTEuMjQuNDFhLjUuNSAwIDAgMCAwIDFjLjQ0IDAgLjkuMTYgMS4yNC40MS4zNC4yNi41MS41Ni41MS44NCAwIC42My0uNiAxLjI1LTEuNSAxLjI1LS40MyAwLS44NC0uMTctMS4xNi0uMzZhMy4zNyAzLjM3IDAgMCAxLS40Ny0uMzNsLS4wMi0uMDJhLjUuNSAwIDAgMC0uNy43MmguMDFsLjAxLjAyLjA0LjAzYTMuNjggMy42OCAwIDAgMCAuNjIuNDVjLjQuMjMgMSAuNDkgMS42Ny40OSAxLjMyIDAgMi41LS45NSAyLjUtMi4yNSAwLS43LS40LTEuMjYtLjkxLTEuNjRsLS4xNi0uMTEuMTYtLjExYy41LS4zOC45MS0uOTUuOTEtMS42NCAwLTEuMy0xLjE4LTIuMjUtMi41LTIuMjUtLjY4IDAtMS4yNy4yNi0xLjY3LjVhNC4zNSA0LjM1IDAgMCAwLS42Mi40NGwtLjA0LjAzdi4wMWgtLjAxYS41LjUgMCAwIDAgLjY4LjczWlwiXSk7XG5leHBvcnQgY29uc3QgVGltZXJPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGltZXJPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC45NiA1LjY3IDIuMTUgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtMi4zMi0yLjMxQTYuOTggNi45OCAwIDAgMSAyLjUgMTFjMC0yLjEzLjk2LTQuMDUgMi40Ni01LjMzWk0xMCAxMC43MWwtMS0xdjEuNzlhLjUuNSAwIDAgMCAxIDB2LS44Wm0wLTQuMjF2MS4zOGw1LjkyIDUuOTJBNyA3IDAgMCAwIDYuNyA0LjU4TDkgNi44OFY2LjVhLjUuNSAwIDAgMSAxIDBabS0zLTRjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTcuNDUgMS40M2MuMi0uMi41MS0uMi43IDBsMS40MiAxLjQxYS41LjUgMCAxIDEtLjcuNzFsLTEuNDItMS40MWEuNS41IDAgMCAxIDAtLjcxWlwiXSk7XG5leHBvcnQgY29uc3QgVGltZXJPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RpbWVyT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljk2IDUuNjcgMi4xNSAyLjg1YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0yLjMyLTIuMzFBNi45OCA2Ljk4IDAgMCAxIDIuNSAxMWMwLTIuMTMuOTYtNC4wNSAyLjQ2LTUuMzNabTkuMTYgOS4xNkwxMCAxMC43di43OWEuNS41IDAgMCAxLTEgMFY5LjdMNS42NyA2LjM5QTUuOTkgNS45OSAwIDAgMCA5LjUgMTdjMS44NiAwIDMuNTItLjg1IDQuNjItMi4xN1pNOSA2LjV2LjM4bDEgMVY2LjVhLjUuNSAwIDAgMC0xIDBabTYuNSA0LjVhNiA2IDAgMCAxLS4zNSAyLjAzbC43Ny43N0E3IDcgMCAwIDAgNi43IDQuNThsLjc3Ljc3QTUuOTkgNS45OSAwIDAgMSAxNS41IDExWm0tOC05YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTcuNjYgMS45M2EuNS41IDAgMSAwLS43MS43bDEuNDEgMS40MmEuNS41IDAgMSAwIC43MS0uN2wtMS40MS0xLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgVG9nZ2xlTGVmdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUb2dnbGVMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0IDZhNCA0IDAgMCAxIDAgOEg2YTQgNCAwIDAgMSAwLThoOFptLTggNmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBUb2dnbGVMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUb2dnbGVMZWZ0UmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDEyYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFptMTItMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMSAwIDAgOGg4YTQgNCAwIDAgMCA0LTRabS00LTNhMyAzIDAgMSAxIDAgNkg2YTMgMyAwIDEgMSAwLTZoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRvZ2dsZU11bHRpcGxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RvZ2dsZU11bHRpcGxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNS41QTMuNSAzLjUgMCAwIDEgNi41IDJoN2EzLjUgMy41IDAgMSAxIDAgN2gtN0EzLjUgMy41IDAgMCAxIDMgNS41Wm01IDBhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBaTTYuNSAxMWEzLjUgMy41IDAgMSAwIDAgN2g3YTMuNSAzLjUgMCAxIDAgMC03aC03Wm03IDVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUb2dnbGVNdWx0aXBsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVG9nZ2xlTXVsdGlwbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTggNS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tNSAwQTMuNSAzLjUgMCAwIDAgNi41IDloN2EzLjUgMy41IDAgMSAwIDAtN2gtN0EzLjUgMy41IDAgMCAwIDMgNS41Wk02LjUgM2g3YTIuNSAyLjUgMCAwIDEgMCA1aC03YTIuNSAyLjUgMCAwIDEgMC01Wm03IDEzYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0zIDE0LjVBMy41IDMuNSAwIDAgMCA2LjUgMThoN2EzLjUgMy41IDAgMSAwIDAtN2gtN0EzLjUgMy41IDAgMCAwIDMgMTQuNVpNNi41IDEyaDdhMi41IDIuNSAwIDAgMSAwIDVoLTdhMi41IDIuNSAwIDAgMSAwLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUb2dnbGVSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUb2dnbGVSaWdodEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDZhNCA0IDAgMSAwIDAgOGg4YTQgNCAwIDAgMCAwLThINlptOCA2YTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRvZ2dsZVJpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUb2dnbGVSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQgMTJhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wk0yIDEwYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgMCA4SDZhNCA0IDAgMCAxLTQtNFptNC0zYTMgMyAwIDAgMCAwIDZoOGEzIDMgMCAxIDAgMC02SDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUb29sYm94RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Rvb2xib3hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiA0LjVWNkg0YTIgMiAwIDAgMC0yIDJ2Mmg0di0uNWEuNS41IDAgMCAxIDEgMHYuNWg2di0uNWEuNS41IDAgMCAxIDEgMHYuNWg0VjhhMiAyIDAgMCAwLTItMmgtMlY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01QzYuNjcgMyA2IDMuNjcgNiA0LjVaTTcuNSA0aDVjLjI4IDAgLjUuMjIuNS41VjZIN1Y0LjVjMC0uMjguMjItLjUuNS0uNVpNMTggMTFoLTR2LjVhLjUuNSAwIDEgMS0xIDBWMTFIN3YuNWEuNS41IDAgMCAxLTEgMFYxMUgydjRjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi00WlwiXSk7XG5leHBvcnQgY29uc3QgVG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVG9vbGJveFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiA0LjVWNkg0YTIgMiAwIDAgMC0yIDJ2N2MwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC0yVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTVDNi42NyAzIDYgMy42NyA2IDQuNVpNNy41IDRoNWMuMjggMCAuNS4yMi41LjVWNkg3VjQuNWMwLS4yOC4yMi0uNS41LS41Wk00IDdoMTJhMSAxIDAgMCAxIDEgMXYyaC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNUg3di0uNWEuNS41IDAgMCAwLTEgMHYuNUgzVjhhMSAxIDAgMCAxIDEtMVptOSA0di41YS41LjUgMCAwIDAgMSAwVjExaDN2NGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtNGgzdi41YS41LjUgMCAwIDAgMSAwVjExaDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUb29sdGlwUXVvdGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVG9vbHRpcFF1b3RlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJIOS40MmwtMS40OCAyLjc0YS41LjUgMCAwIDEtLjg4IDBMNS41NiAxMkg0YTIgMiAwIDAgMS0yLTJWNFptMy41IDFhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuOC40Yy0uMi42Ny0uNSAxLjEtLjY1IDEuMjVhLjUuNSAwIDEgMCAuNy43QTQuOTcgNC45NyAwIDAgMCA3IDUuNWEuNS41IDAgMCAwLS41LS41aC0xWm0zIDBhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuOC40Yy0uMi42Ny0uNSAxLjEtLjY1IDEuMjVhLjUuNSAwIDEgMCAuNy43QTQuOTcgNC45NyAwIDAgMCAxMCA1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMVptLTIuOTggOUgyLjVhLjUuNSAwIDAgMCAwIDFoMy41NmwtLjU0LTFabTMuNDEgMWg4LjU3YS41LjUgMCAwIDAgMC0xSDkuNDhsLS41NSAxWk0yIDE3LjVjMC0uMjguMjItLjUuNS0uNWgxMGEuNS41IDAgMCAxIDAgMWgtMTBhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRvb2x0aXBRdW90ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVG9vbHRpcFF1b3RlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUgNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC44LjRjLS4yLjY3LS41IDEuMS0uNjUgMS4yNWEuNS41IDAgMSAwIC43LjdBNC45NyA0Ljk3IDAgMCAwIDcgNS41YS41LjUgMCAwIDAtLjUtLjVoLTFabTMgMGEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC44LjRjLS4yLjY3LS41IDEuMS0uNjUgMS4yNWEuNS41IDAgMSAwIC43LjdBNC45NyA0Ljk3IDAgMCAwIDEwIDUuNWEuNS41IDAgMCAwLS41LS41aC0xWk0yIDRjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDkuNDJsLTEuNDggMi43NGEuNS41IDAgMCAxLS44OCAwTDUuNTYgMTJINGEyIDIgMCAwIDEtMi0yVjRabTItMWExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgxLjg2Yy4xOCAwIC4zNS4xLjQ0LjI2bDEuMiAyLjIgMS4xOC0yLjJhLjUuNSAwIDAgMSAuNDQtLjI2SDExYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDRaTTIuNSAxNGgzLjAybC41NCAxSDIuNWEuNS41IDAgMCAxIDAtMVptMTUgMUg4LjkzbC41NS0xaDguMDJhLjUuNSAwIDAgMSAwIDFabS0xNSAyYS41LjUgMCAwIDAgMCAxaDEwYS41LjUgMCAwIDAgMC0xaC0xMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRvcFNwZWVkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RvcFNwZWVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuMjUgMy41NGE2LjUgNi41IDAgMCAwLTMuMyAxLjM2bC44My44MmEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2bC0uODMtLjgyQTYuMzkgNi4zOSAwIDAgMCAzLjU3IDloMS42OGEuNzUuNzUgMCAwIDEgMCAxLjVIMy41M2E2LjY1IDYuNjUgMCAwIDAgMi4wNiA0LjIuNzUuNzUgMCAwIDEtMS4wMyAxLjFBOC4xMSA4LjExIDAgMCAxIDIgOS45NEMyIDUuNTUgNS41OSAyIDEwIDJhNy45NyA3Ljk3IDAgMCAxIDUuNDcgMTMuOC43NS43NSAwIDAgMS0xLjAyLTEuMSA2LjU4IDYuNTggMCAwIDAgMi4wMy00LjJoLTEuNzNhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNjhhNi40OCA2LjQ4IDAgMCAwLTUuNjgtNS40NnYxLjIxYS43NS43NSAwIDAgMS0xLjUgMHYtMS4yWm00LjIgMi4yN2EuNS41IDAgMCAxIC43NS42M2wtLjEyLjJhMzQzLjk1IDM0My45NSAwIDAgMS0yLjIgMy44MiAzMC4xMSAzMC4xMSAwIDAgMS0uNjUgMS4wMSAxLjUgMS41IDAgMCAxLTIuMjgtMS45NGMuMDctLjA5LjItLjIuMzQtLjMzbC41Ni0uNDhhMTIzLjkzIDEyMy45MyAwIDAgMSAzLjQyLTIuNzdsLjE4LS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRvcFNwZWVkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUb3BTcGVlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS40MiA0LjdBNi45NyA2Ljk3IDAgMCAxIDkuNSAzLjAzVjQuNWEuNS41IDAgMCAwIDEgMFYzLjAyQTcgNyAwIDAgMSAxNi45MyA5SDE1YS41LjUgMCAwIDAgMCAxaDJjMCAyLS44NiAzLjktMi4yMSA1LjE3YS41LjUgMCAwIDAgLjY5LjczQTguMTcgOC4xNyAwIDAgMCAxOCAxMGE4IDggMCAxIDAtMTMuNDQgNS45LjUuNSAwIDAgMCAuNjktLjczQTcuMiA3LjIgMCAwIDEgMyAxMGgyYS41LjUgMCAxIDAgMC0xSDMuMDdjLjItMS4zNi43OC0yLjYgMS42NC0zLjU4bDEuNDQgMS40M2EuNS41IDAgMCAwIC43LS43TDUuNDIgNC43Wm04LjAzIDEuMWEuNS41IDAgMCAxIC43NS42NGwtLjEyLjJhMzQzLjk1IDM0My45NSAwIDAgMS0yLjIgMy44MiAzMC4xMSAzMC4xMSAwIDAgMS0uNjUgMS4wMSAxLjUgMS41IDAgMCAxLTIuMjgtMS45NGMuMDctLjA5LjItLjIuMzQtLjMzbC41Ni0uNDhhMTIzLjkzIDEyMy45MyAwIDAgMSAzLjQyLTIuNzdsLjE4LS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyYW5zbGF0ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmFuc2xhdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4xOCAzLjJjLjctLjIgMS42OC0uMzMgMi44IDAgMS4wMy4zIDEuNi45NCAxLjg5IDEuNjQuMjUuNjQuMjUgMS4yOS4yNSAxLjY2djQuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwbC0uNTYuMjhjLS43NS4zMy0xLjcuNi0yLjYzLjRhMy4wNSAzLjA1IDAgMCAxLTIuMy0yLjE1Yy0uMy0xLS4xLTIuMTguODMtMi45NmE0LjUgNC41IDAgMCAxIDMuMTgtMWMuNTMuMDIgMS4wMy4xIDEuNDcuMjFhMi4xIDIuMSAwIDAgMC0uMTMtLjYzYy0uMTItLjI5LS4zNS0uNTktLjkyLS43NmEzLjQyIDMuNDIgMCAwIDAtMi42OS4zMi43NS43NSAwIDAgMS0uODUtMS4yM3YtLjAxbC4wMy0uMDFhMi41NSAyLjU1IDAgMCAxIC4zLS4xOGMuMi0uMS40OC0uMjIuODMtLjMzWm0xLjkgNC4xMWEzLjAxIDMuMDEgMCAwIDAtMi4xNS42NmMtLjQuMzMtLjUyLjg2LS4zNyAxLjQuMTYuNTIuNTguOTcgMS4xNyAxLjEuNDguMSAxLjA4LS4wMyAxLjcyLS4zMi40Ni0uMi44Ny0uNDYgMS4xNy0uNjhWNy41OGMtLjQ2LS4xMy0xLS4yNC0xLjU1LS4yN1ptNy45LTEuMjZjLjM5LjE1LjU4LjU4LjQ0Ljk3bC0uMTguNTJjLjQ4LS4wOC45Ny0uMTcgMS40NS0uMjdhLjc1Ljc1IDAgMCAxIC4zMiAxLjQ2Yy0uNzIuMTYtMS40Ni4zLTIuMi4zOC0uMS40My0uMi44Mi0uMjYgMS4xOC40LS4wNi43OC0uMDggMS4xNC0uMDdhLjc1Ljc1IDAgMCAxIDEuNDguMnYuMDRhNC4wNCA0LjA0IDAgMCAxIDIuNTQgMi4xOGMuNC45MS40IDEuOTYtLjA5IDIuOTNhNS4yNiA1LjI2IDAgMCAxLTIuNzcgMi4zNy43NS43NSAwIDAgMS0uNTgtMS4zOGMxLjExLS40NyAxLjczLTEuMDkgMi4wMS0xLjY2YTEuOSAxLjkgMCAwIDAgLjA2LTEuNjVBMi41MiAyLjUyIDAgMCAwIDE2IDEyYTcuMDYgNy4wNiAwIDAgMS0xLjgyIDMuNTFsLjIyLjQ1YS43NS43NSAwIDEgMS0xLjM4LjU4IDMuODUgMy44NSAwIDAgMC0uMDMtLjA2Yy0uNDUuMjctLjkuNDYtMS4zNS41NS0uNjcuMTUtMS40NS4xLTItLjQ2LS43OS0uODEtLjgyLTIuMTQtLjMtMy4yNmE1LjI3IDUuMjcgMCAwIDEgMi42LTIuNTJjLjA3LS40Ny4xNi0uOTkuMjgtMS41NS0uNS4wMi0xLjAyLjAxLTEuNTMtLjAyYS43NS43NSAwIDAgMSAuMS0xLjVjLjYuMDQgMS4yLjA0IDEuODIgMCAuMTEtLjQuMjYtLjg3LjQtMS4yNGEuNzUuNzUgMCAwIDEgLjk2LS40M1ptLTIuMTUgNi41NWMtLjU2LjQxLS45Mi44OC0xLjEyIDEuMzMtLjM2Ljc5LS4yIDEuMzcuMDIgMS41OS4wMy4wMy4xOS4xNC42LjA1LjMtLjA2LjY0LS4yIDEtLjQ1YTYgNiAwIDAgMS0uNS0yLjUyWm0xLjcgMS40Yy40NS0uNjEuODItMS4zNyAxLTIuMjgtLjM2IDAtLjc1LjA0LTEuMTguMTRhNi43IDYuNyAwIDAgMCAuMTcgMi4xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRyYW5zbGF0ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJhbnNsYXRlUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjA4IDQuMjJjLjctLjIxIDEuNy0uMzQgMi44NCAwIDEuMDEuMyAxLjU2LjkgMS44MyAxLjU2LjI2LjYzLjI2IDEuMjcuMjYgMS42N3Y1LjA1YS41LjUgMCAwIDEtMSAwdi0uNTNjLS4zMS4xOS0uNjcuMzgtMS4wNS41NS0uNzguMzQtMS43NC42LTIuNjQuNDJhMi45NyAyLjk3IDAgMCAxLTIuMjUtMi4wOWMtLjI5LS45Ny0uMDgtMi4xLjgtMi44NGE0LjU3IDQuNTcgMCAwIDEgMy4yMS0xYy43MS4wMyAxLjM4LjE3IDEuOTMuMzIgMC0uMzctLjAzLS43OS0uMTgtMS4xNy0uMTYtLjQtLjQ4LS43Ny0xLjE5LS45OGE0LjA0IDQuMDQgMCAwIDAtMy4xNS4zN2gtLjAxYS41LjUgMCAwIDEtLjU3LS44MmguMDFsLjAyLS4wMmEyLjQ1IDIuNDUgMCAwIDEgLjMtLjE3Yy4yLS4xLjQ4LS4yMi44NC0uMzJaTTYuMDQgOGEzLjU4IDMuNTggMCAwIDAtMi41Mi43NyAxLjY2IDEuNjYgMCAwIDAtLjUgMS43OWMuMi42Ni43MyAxLjIzIDEuNSAxLjM5LjYuMTIgMS4zMy0uMDQgMi4wNC0uMzUuNTgtLjI2IDEuMS0uNiAxLjQ1LS44NVY4LjM3YTguMjcgOC4yNyAwIDAgMC0xLjk3LS4zNlptOC40My0xLjM0YS41LjUgMCAwIDAtLjk0LS4zNGMtLjE4LjUtLjM3IDEuMjItLjQ3IDEuNjUtLjUuMDMtMSAuMDMtMS41MyAwYS41LjUgMCAxIDAtLjA2IDFjLjQ3LjAyLjkyLjAzIDEuMzYgMC0uMTEuNTgtLjIgMS4xLS4yNSAxLjU2YTQuNzEgNC43MSAwIDAgMC0yLjMgMi4zYy0uNDQgMS4wMi0uNCAyLjE3LjI1IDIuODUuNDMuNDYgMS4wNi41MyAxLjY0LjQuNDItLjEuODYtLjMxIDEuMjgtLjYxbC4wOC4yYS41LjUgMCAwIDAgLjkzLS4zNiA4LjE4IDguMTggMCAwIDAtLjIzLS41MyA2LjcgNi43IDAgMCAwIDEuNjgtMy42Yy43Ny4yNiAxLjI4LjggMS41IDEuMzguMzggMS4wNC0uMDQgMi41NS0yLjExIDMuNDdhLjUuNSAwIDEgMCAuNC45MmMyLjQzLTEuMDggMy4yNi0zLjA3IDIuNjQtNC43M0EzLjM3IDMuMzcgMCAwIDAgMTYgMTAuMTdWMTBhLjUuNSAwIDEgMC0xIDB2LjAyYy0uNDMtLjAxLS44OC4wMy0xLjM2LjEzbC4yMy0xLjI1YTIxLjMgMjEuMyAwIDAgMCAyLjI0LS40MS41LjUgMCAwIDAtLjIyLS45OGMtLjYyLjE1LTEuMi4yNy0xLjc3LjM1LjEtLjM4LjIzLS44NS4zNS0xLjJabS0zLjI3IDYuNTdjLjIzLS41Mi42NC0xLjA2IDEuMy0xLjUtLjAxLjYzLjA0IDEuMTYuMTMgMS42MS4xLjQ4LjI0Ljg3LjM4IDEuMi0uMzguMy0uNzUuNDktMS4wNi41Ni0uMzkuMDktLjYgMC0uNjktLjEtLjI3LS4zLS40LS45Ny0uMDYtMS43N1ptMy43My0yLjIyYTUuODMgNS44MyAwIDAgMS0xLjE1IDIuNzZsLS4xNy0uNjJhNy4yIDcuMiAwIDAgMS0uMDktMS45NGwuMTMtLjA0Yy40Ni0uMTIuODktLjE3IDEuMjgtLjE2WlwiXSk7XG5leHBvcnQgY29uc3QgVHJhbnNsYXRlQXV0b0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmFuc2xhdGVBdXRvRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjgyIDEuMDRhLjc1Ljc1IDAgMSAwLS4xMyAxLjVjMS40Mi4xMiAyLjczLjY1IDMuODEgMS40NmgtLjI1YS43NS43NSAwIDAgMCAwIDEuNWgyYy40MSAwIC43NS0uMzQuNzUtLjc1di0yYS43NS43NSAwIDAgMC0xLjUgMHYuMTNhOC45NiA4Ljk2IDAgMCAwLTQuNjgtMS44NFpNNS43NSAxNkg1LjVhNy40NiA3LjQ2IDAgMCAwIDMuODIgMS40Ny43NS43NSAwIDEgMS0uMTQgMS41IDguOTYgOC45NiAwIDAgMS00LjY4LTEuODV2LjEzYS43NS43NSAwIDAgMS0xLjUgMHYtMmMwLS40MS4zNC0uNzUuNzUtLjc1aDJhLjc1Ljc1IDAgMCAxIDAgMS41Wk02Ljk4IDMuMmE0LjkyIDQuOTIgMCAwIDAtMy45My41bC0uMDIuMDJoLS4wMWEuNzUuNzUgMCAwIDAgLjg1IDEuMjRsLjAzLS4wMi4xNC0uMDdhMy40MiAzLjQyIDAgMCAxIDIuNTItLjIyYy41Ny4xNi44LjQ2LjkyLjc1LjA4LjIuMTEuNDEuMTMuNjMtLjQ0LS4xLS45NC0uMi0xLjQ3LS4yMmE0LjUgNC41IDAgMCAwLTMuMTggMS4wMSAyLjggMi44IDAgMCAwLS44NCAyLjk2Yy4zIDEgMS4xIDEuOSAyLjMgMi4xNWE0LjQgNC40IDAgMCAwIDIuNjQtLjRsLjU2LS4yOXYuMDFhLjc1Ljc1IDAgMSAwIDEuNSAwVjYuNWMwLS4zNyAwLTEuMDItLjI1LTEuNjZBMi43NiAyLjc2IDAgMCAwIDYuOTkgMy4yWm0uNjQgNC4zOHYxLjljLS4zLjIxLS43MS40Ny0xLjE3LjY3LS42NC4yOS0xLjI0LjQxLTEuNzIuMzFhMS41NSAxLjU1IDAgMCAxLTEuMTctMS4xYy0uMTUtLjUzLS4wMi0xLjA2LjM3LTEuMzkuNjMtLjU0IDEuMzgtLjY5IDIuMTQtLjY2LjU2LjAzIDEuMDkuMTQgMS41NS4yN1ptNi44LS41NmEuNzUuNzUgMCAwIDAtMS40LS41NGMtLjE0LjM3LS4yOS44My0uNCAxLjI0LS42MS4wNC0xLjIyLjA0LTEuODIgMGEuNzUuNzUgMCAxIDAtLjEgMS41Yy41MS4wMyAxLjAyLjA0IDEuNTMuMDItLjEyLjU2LS4yMSAxLjA4LS4yNyAxLjU1YTUuMjcgNS4yNyAwIDAgMC0yLjYyIDIuNTJjLS41MSAxLjEyLS40OCAyLjQ1LjMyIDMuMjYuNTQuNTUgMS4zMi42IDIgLjQ2LjQzLS4wOS45LS4yOCAxLjM0LS41NWwuMDMuMDZhLjc1Ljc1IDAgMCAwIDEuMzgtLjU4bC0uMjItLjQ1YTcuMDYgNy4wNiAwIDAgMCAxLjgyLTMuNWMuNjYuMjggMS4xLjc1IDEuMzMgMS4yNC4yMi41LjIyIDEuMDgtLjA2IDEuNjUtLjI4LjU3LS45IDEuMTktMi4wMSAxLjY2YS43NS43NSAwIDAgMCAuNTggMS4zOCA1LjI2IDUuMjYgMCAwIDAgMi43Ny0yLjM3IDMuNCAzLjQgMCAwIDAgLjA5LTIuOTMgNC4wNCA0LjA0IDAgMCAwLTIuNTQtMi4xOHYtLjA0YS43NS43NSAwIDAgMC0xLjQ4LS4yYy0uMzYgMC0uNzQuMDEtMS4xNC4wN2wuMjUtMS4xOGMuNzUtLjA5IDEuNDktLjIyIDIuMi0uMzhhLjc1Ljc1IDAgMCAwLS4zMS0xLjQ2Yy0uNDguMS0uOTcuMi0xLjQ1LjI3bC4xOC0uNTJabS0zLjcxIDYuOWMuMi0uNDQuNTYtLjkgMS4xMi0xLjMyLjAxLjU1LjA3IDEuMDIuMTYgMS40NGE2IDYgMCAwIDAgLjM0IDEuMDhjLS4zNi4yNC0uNy4zOS0xIC40NS0uNDEuMDktLjU3LS4wMi0uNi0uMDUtLjIxLS4yMi0uMzgtLjgtLjAyLTEuNlptMy44My0yLjJhNS42NSA1LjY1IDAgMCAxLTEuMDIgMi4yNyA2LjcgNi43IDAgMCAxLS4xNy0yLjEzYy40My0uMS44Mi0uMTQgMS4xOS0uMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmFuc2xhdGVBdXRvUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmFuc2xhdGVBdXRvUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC41MyAxLjAyYS41LjUgMCAwIDAtLjA2IDFjMS44NC4xIDMuNTIuODMgNC44MiAxLjk4aC0uNzlhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtMSAwdi44YTguOTcgOC45NyAwIDAgMC01LjQ3LTIuMjhaTTUuNSAxNmgtLjhhNy45NiA3Ljk2IDAgMCAwIDQuODMgMS45OS41LjUgMCAwIDEtLjA2IDFjLTIuMS0uMTMtNC0uOTctNS40Ny0yLjI4di43OWEuNS41IDAgMSAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFaTTYuOTIgNC4yMmE1LjA0IDUuMDQgMCAwIDAtMy45OC41aC0uMDJ2LjAxYS41LjUgMCAwIDAgLjU2LjgzIDEuNDQgMS40NCAwIDAgMSAuMjEtLjEyIDQuMDQgNC4wNCAwIDAgMSAyLjk1LS4yNmMuNzEuMiAxLjAzLjU5IDEuMTkuOTguMTUuMzguMTcuOC4xOCAxLjE3YTguNzMgOC43MyAwIDAgMC0xLjkzLS4zMiA0LjU3IDQuNTcgMCAwIDAtMy4yIDEgMi42NiAyLjY2IDAgMCAwLS44MSAyLjg0IDIuOTcgMi45NyAwIDAgMCAyLjI1IDIuMDljLjkuMTggMS44Ni0uMDggMi42NC0uNDIuMzgtLjE3Ljc0LS4zNiAxLjA1LS41NXYuNTNhLjUuNSAwIDEgMCAxIDBWNy40NWMwLS40IDAtMS4wNC0uMjYtMS42N2EyLjY2IDIuNjYgMCAwIDAtMS44My0xLjU2Wm0xLjA5IDQuMTV2Mi4zOWMtLjM1LjI2LS44Ny41OS0xLjQ1Ljg1LS43LjMtMS40My40Ny0yLjA0LjM1YTEuOTcgMS45NyAwIDAgMS0xLjUtMS4zOWMtLjE5LS42Ni0uMDMtMS4zNS41LTEuNzkuNzYtLjYzIDEuNjUtLjggMi41Mi0uNzcuNzIuMDMgMS40LjIgMS45Ny4zNlptNi4xNi0yLjM0Yy4yNi4xLjQuMzguMy42NC0uMTIuMzQtLjI1LjgtLjM1IDEuMi41Ny0uMSAxLjE1LS4yMSAxLjc3LS4zNmEuNS41IDAgMCAxIC4yMi45OGMtLjc3LjE4LTEuNS4zMi0yLjI0LjQxLS4xLjQ2LS4xNy44Ny0uMjMgMS4yNS40OC0uMS45My0uMTQgMS4zNi0uMTNWMTBhLjUuNSAwIDAgMSAxIDB2LjE3YTMuMzcgMy4zNyAwIDAgMSAyLjM0IDIuMDZjLjYyIDEuNjYtLjIxIDMuNjUtMi42NCA0LjczYS41LjUgMCAxIDEtLjQtLjkyYzIuMDctLjkyIDIuNS0yLjQzIDIuMS0zLjQ3YTIuMzcgMi4zNyAwIDAgMC0xLjQ5LTEuMzggNi43IDYuNyAwIDAgMS0xLjY4IDMuNmMuMDguMTguMTcuMzUuMjMuNTNhLjUuNSAwIDEgMS0uOTMuMzcgNS4xNSA1LjE1IDAgMCAwLS4wOC0uMjFjLS40Mi4zLS44Ni41LTEuMjguNi0uNTguMTQtMS4yLjA3LTEuNjQtLjM5LS42NC0uNjgtLjY5LTEuODMtLjI1LTIuODVhNC43MSA0LjcxIDAgMCAxIDIuMy0yLjNjLjA2LS40Ny4xNC0uOTguMjUtMS41NS0uNDQuMDItLjg5LjAxLTEuMzYtLjAyYS41LjUgMCAxIDEgLjA2LTFjLjUzLjA0IDEuMDMuMDQgMS41MyAwIC4xLS40Mi4zLTEuMTQuNDctMS42NGEuNS41IDAgMCAxIC42NC0uM1ptLTEuNjcgNS43MWMtLjY2LjQ0LTEuMDcuOTgtMS4zIDEuNS0uMzUuOC0uMjEgMS40OC4wNiAxLjc3LjEuMS4zLjE5LjY5LjEuMy0uMDcuNjgtLjI1IDEuMDYtLjU1YTUuODUgNS44NSAwIDAgMS0uMzgtMS4yYy0uMDktLjQ2LS4xNC0uOTktLjEzLTEuNjJabTEuMjggMi4wNGMuNTQtLjY4Ljk4LTEuNjEgMS4xNS0yLjc2YTQuNTkgNC41OSAwIDAgMC0xLjQuMiA3LjIgNy4yIDAgMCAwIC4wOCAxLjk0Yy4wNS4yMy4xLjQzLjE3LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgVHJhbnNsYXRlT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyYW5zbGF0ZU9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bC44Ny44OGEuNzUuNzUgMCAwIDAgLjg1IDEuMjNsLjAzLS4wMmEyLjI0IDIuMjQgMCAwIDEgLjIyLS4xMWwxLjAzIDEuMDNjLS43My4xLTEuNS4zOC0yLjE5Ljk2YTIuOCAyLjggMCAwIDAtLjg0IDIuOTZjLjMgMSAxLjEgMS45IDIuMyAyLjE1YTQuNCA0LjQgMCAwIDAgMi42NC0uNGwuNTYtLjI5di4wMWEuNzUuNzUgMCAxIDAgMS41IDBWOS44M2wxLjY4IDEuNjdhNC44NSA0Ljg1IDAgMCAwLTEuNDYgMS44Yy0uNTEgMS4xMy0uNDggMi40Ni4zMiAzLjI3LjU0LjU1IDEuMzIuNiAyIC40Ni40My0uMDkuOS0uMjggMS4zNC0uNTVsLjAzLjA2YS43NS43NSAwIDAgMCAxLjM4LS41OCA3LjYgNy42IDAgMCAwLS4yMi0uNDVsLjMtLjMyIDEuMTggMS4xOC0uNC4xOWEuNzUuNzUgMCAwIDAgLjU4IDEuMzhjLjMzLS4xNC42NC0uMy45Mi0uNDZsLjM4LjM3YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm00Ljc3IDYuMTh2MS4xNGMtLjMuMjItLjcxLjQ4LTEuMTcuNjgtLjY0LjI5LTEuMjQuNDEtMS43Mi4zMWExLjU1IDEuNTUgMCAwIDEtMS4xNy0xLjFjLS4xNS0uNTMtLjAyLTEuMDYuMzctMS4zOS42My0uNTQgMS4zOC0uNjkgMi4xNC0uNjZsLjYuMDYuOTUuOTZaTTYuOSA0Ljc4Yy4zLjE1LjQ1LjM0LjU0LjU0TDkuMTIgN3YtLjVjMC0uMzcgMC0xLjAyLS4yNS0xLjY2QTIuNzYgMi43NiAwIDAgMCA2Ljk5IDMuMmMtLjY4LS4yLTEuMy0uMjMtMS44NS0uMThMNi45IDQuNzhabTcuNjQgNi45NC0uMTQuNTUgMS4xNiAxLjE3Yy4yLS40NC4zNS0uOTIuNDUtMS40NC42Ni4zIDEuMS43NiAxLjMzIDEuMjVhMS45IDEuOSAwIDAgMS0uMTUgMS44MmwxLjA4IDEuMDhjLjE0LS4xOS4yNS0uMzguMzUtLjU4YTMuNCAzLjQgMCAwIDAgLjA5LTIuOTMgNC4wNCA0LjA0IDAgMCAwLTIuNTQtMi4xOHYtLjA0YS43NS43NSAwIDAgMC0xLjQ4LS4yYy0uMzYgMC0uNzQuMDEtMS4xNC4wN2wuMjUtMS4xOGMuNzUtLjA5IDEuNDktLjIyIDIuMi0uMzhhLjc1Ljc1IDAgMCAwLS4zMS0xLjQ2Yy0uNDguMS0uOTcuMi0xLjQ1LjI3bC4xOC0uNTJhLjc1Ljc1IDAgMCAwLTEuNC0uNTRjLS4xNC4zNy0uMjkuODMtLjQgMS4yNC0uNjEuMDQtMS4yMi4wNC0xLjgyIDBhLjc1Ljc1IDAgMCAwLS42NS4zbDEuMjIgMS4yMy44Ni0uMDEtLjE0LjczIDEuOCAxLjhjLjIyLS4wNC40NC0uMDUuNjUtLjA1Wm0tMi43Ljg4YTYgNiAwIDAgMCAuNSAyLjUyYy0uMzcuMjQtLjcxLjM5LTEgLjQ1LS40Mi4wOS0uNTgtLjAyLS42MS0uMDUtLjIxLS4yMi0uMzgtLjgtLjAyLTEuNi4yLS40NC41Ni0uOSAxLjEyLTEuMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmFuc2xhdGVPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyYW5zbGF0ZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41MWE0LjcgNC43IDAgMCAwLS43LjM1bC0uMDMuMDJhLjUuNSAwIDAgMCAuNTYuODMgMS40NyAxLjQ3IDAgMCAxIC4yMS0uMTIgMy45IDMuOSAwIDAgMSAuNzUtLjI5bDEuODcgMS44Ny0uMjMtLjAxYTQuNTcgNC41NyAwIDAgMC0zLjIgMSAyLjY2IDIuNjYgMCAwIDAtLjgxIDIuODQgMi45NyAyLjk3IDAgMCAwIDIuMjUgMi4wOWMuOS4xOCAxLjg2LS4wOCAyLjY0LS40Mi4zOC0uMTcuNzQtLjM2IDEuMDUtLjU1di41M2EuNS41IDAgMSAwIDEgMFY5LjdsMiAyYTQuMiA0LjIgMCAwIDAtLjczIDEuMTNjLS40NCAxLjAyLS40IDIuMTcuMjUgMi44NS40My40NiAxLjA2LjUzIDEuNjQuNC40Mi0uMS44Ni0uMzEgMS4yOC0uNjFsLjA4LjJhLjUuNSAwIDEgMCAuOTMtLjM2IDUuOTMgNS45MyAwIDAgMC0uMS0uMjZsLjk2Ljk3LS4wMi4wMWEuNS41IDAgMSAwIC40LjkybC4zNy0uMTggMS4wOCAxLjA3YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm05Ljc4IDExLjE4di4wMmMuMS40OC4yNC44Ny4zOCAxLjItLjM4LjMtLjc1LjQ5LTEuMDYuNTYtLjM5LjA5LS42IDAtLjY5LS4xLS4yNy0uMy0uNC0uOTctLjA2LTEuNzcuMTItLjI3LjI5LS41NS41Mi0uODFsLjkuOVptLTUuMS01LjA5LjQ4LjQ3djIuMDVjLS4zNS4yNi0uODcuNTktMS40NS44NS0uNy4zLTEuNDMuNDctMi4wNC4zNWExLjk3IDEuOTcgMCAwIDEtMS41LTEuMzljLS4xOS0uNjYtLjAzLTEuMzUuNS0xLjc5Ljc2LS42MyAxLjY1LS44IDIuNTItLjc3LjUzLjAyIDEuMDQuMTIgMS41LjIzWm05Ljg4IDQuMzNjLjI0LjY2LjE2IDEuNS0uNDUgMi4yN2wuNy43YTMuMjkgMy4yOSAwIDAgMCAuNjgtMy4zMUEzLjM3IDMuMzcgMCAwIDAgMTYgMTAuMTdWMTBhLjUuNSAwIDEgMC0xIDB2LjAyYy0uNDMtLjAxLS44OC4wMy0xLjM2LjEzbC4yMy0xLjI1YTIxLjMgMjEuMyAwIDAgMCAyLjI0LS40MS41LjUgMCAwIDAtLjIyLS45OGMtLjYyLjE1LTEuMi4yNy0xLjc3LjM1LjEtLjM4LjIzLS44NS4zNS0xLjJhLjUuNSAwIDAgMC0uOTQtLjMzYy0uMTguNS0uMzcgMS4yMi0uNDcgMS42NS0uNS4wMy0xIC4wMy0xLjUzIDBhLjUuNSAwIDEgMC0uMDYgMWMuNDcuMDIuOTIuMDMgMS4zNiAwLS4xLjU1LS4xOCAxLjA0LS4yNCAxLjVsLjkyLjkxLjAxLS4xNy4xMy0uMDRjLjQ2LS4xMi44OS0uMTcgMS4yOC0uMTYtLjA4LjUxLS4yMS45OC0uMzggMS40bC43Ni43N2MuMjgtLjU5LjUtMS4yNi42LTIgLjc3LjI2IDEuMjguOCAxLjUgMS4zOFpNNi4xOCA0LjA2bDIuOCAyLjhhMy41NyAzLjU3IDAgMCAwLS4yMy0xLjA4IDIuNjYgMi42NiAwIDAgMC0xLjgzLTEuNTZjLS4yNS0uMDgtLjUtLjEzLS43NC0uMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmFuc21pc3Npb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJhbnNtaXNzaW9uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwIDJhMiAyIDAgMCAwLS41IDMuOTRWOS41YS41LjUgMCAwIDAgMSAwVjUuOTRBMiAyIDAgMCAwIDEwIDJaTTMgNWExIDEgMCAwIDEgMiAwdjRjMCAuMjguMjIuNS41LjVIOGEuNS41IDAgMCAwIDAtMUg2VjVhMiAyIDAgMSAwLTQgMHYxMWEyIDIgMCAxIDAgNCAwdi0zLjVoMlYxNmEyIDIgMCAxIDAgNCAwdi0zaDQuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNWEyIDIgMCAxIDAtNCAwdjMuNWgtMmEuNS41IDAgMCAwIDAgMWgyLjVBLjUuNSAwIDAgMCAxNSA5VjVhMSAxIDAgMSAxIDIgMHY2LjVhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDAtLjUuNVYxNmExIDEgMCAxIDEtMiAwdi00YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41djRhMSAxIDAgMSAxLTIgMFY1WlwiXSk7XG5leHBvcnQgY29uc3QgVHJhbnNtaXNzaW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmFuc21pc3Npb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhMiAyIDAgMCAwLS41IDMuOTQuNS41IDAgMCAwIDAgLjA2djMuNWEuNS41IDAgMCAwIDEgMFY2YS41LjUgMCAwIDAgMC0uMDZBMiAyIDAgMCAwIDEwIDJaTTkgNGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaTTQgNGExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDEgMCAyIDB2LTRjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXY0YTEgMSAwIDEgMCAyIDB2LTMuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMCAuNS0uNVY1YTEgMSAwIDEgMC0yIDB2NGEuNS41IDAgMCAxLS41LjVIMTJhLjUuNSAwIDAgMSAwLTFoMlY1YTIgMiAwIDEgMSA0IDB2Ni41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMnYzYTIgMiAwIDEgMS00IDB2LTMuNUg2VjE2YTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDEgNCAwdjMuNWgyYS41LjUgMCAwIDEgMCAxSDUuNUEuNS41IDAgMCAxIDUgOVY1YTEgMSAwIDAgMC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmFuc3BhcmVuY3lTcXVhcmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJhbnNwYXJlbmN5U3F1YXJlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMi41QTMuNSAzLjUgMCAwIDAgMi41IDZ2OEEzLjUgMy41IDAgMCAwIDYgMTcuNWg4YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY2QTMuNSAzLjUgMCAwIDAgMTQgMi41SDZaTTQgNmMwLTEuMS45LTIgMi0yaDF2M0g0VjZabTAgNGgzVjdoM1Y0aDN2M2gzdjNoLTN2M2gzdjFhMiAyIDAgMCAxLTIgMmgtMXYtM2gtM3YzSDd2LTNINHYtM1ptNiAwdjNIN3YtM2gzWm0wIDBoM1Y3aC0zdjNaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmFuc3BhcmVuY3lTcXVhcmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyYW5zcGFyZW5jeVNxdWFyZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoMXYzSDRWNlptMCA0aDNWN2gzVjRoM3YzaDN2M2gtM3YzaDN2MWEyIDIgMCAwIDEtMiAyaC0xdi0zaC0zdjNIN3YtM0g0di0zWm02IDBWN2gzdjNoLTNabTAgMEg3djNoM3YtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRyYXlJdGVtQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyYXlJdGVtQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtM1ptMiA1LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yYS41LjUgMCAwIDAtLjctLjdMMTQgMTMuMjlWNy41Wk01IDExYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xSDVabS0yIDIuNWEuNS41IDAgMCAwLTEgMFYxNWMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTEuNWEuNS41IDAgMCAwLTEgMFYxNWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVHJheUl0ZW1BZGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyYXlJdGVtQWRkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAzYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtM2ExIDEgMCAwIDEtMS0xVjNabTQgMGgtM3YyaDNWM1ptLTEuNSA0Yy4yOCAwIC41LjIyLjUuNXY1LjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdMMTMgMTMuMjlWNy41YzAtLjI4LjIyLS41LjUtLjVaTTQgMTJhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXYtMlptNCAwSDV2Mmgzdi0yWm0tNS41IDFjLjI4IDAgLjUuMjIuNS41VjE1YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMS41YS41LjUgMCAwIDEgMSAwVjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyYXlJdGVtUmVtb3ZlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyYXlJdGVtUmVtb3ZlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyIDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtM1ptMS44NSA1LjE1YS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAwIDAgLjcuN0wxMyA4LjcxdjUuNzlhLjUuNSAwIDAgMCAxIDBWOC43bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJaTTUgMTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFINVptLTIgMi41YS41LjUgMCAwIDAtMSAwVjE1YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMS41YS41LjUgMCAwIDAtMSAwVjE1YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmF5SXRlbVJlbW92ZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJheUl0ZW1SZW1vdmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTExIDNhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zYTEgMSAwIDAgMS0xLTFWM1ptNCAwaC0zdjJoM1YzWm0tMS44NSA0LjE1Yy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdMMTQgOC43MXY1Ljc5YS41LjUgMCAwIDEtMSAwVjguN2wtMS4xNSAxLjE1YS41LjUgMCAwIDEtLjctLjdsMi0yWk00IDEyYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF2LTJabTQgMEg1djJoM3YtMlptLTUuNSAxYy4yOCAwIC41LjIyLjUuNVYxNWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTEuNWEuNS41IDAgMCAxIDEgMFYxNWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmVlRGVjaWR1b3VzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyZWVEZWNpZHVvdXNGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmEzLjUgMy41IDAgMCAwLTMuMzkgMi42MUEzLjUgMy41IDAgMCAwIDQuMDUgOC42IDMuNSAzLjUgMCAwIDAgNiAxNWgydjEuNzVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMS41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVYxNWgyYTMuNSAzLjUgMCAwIDAgMS45NS02LjQgMy41MiAzLjUyIDAgMCAwLTIuNTYtMy45OUEzLjUgMy41IDAgMCAwIDEwIDJaTTkgMTVoMnYxLjc1YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTEuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyZWVEZWNpZHVvdXNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyZWVEZWNpZHVvdXNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDJhMy41IDMuNSAwIDAgMC0zLjM5IDIuNjFBMy41IDMuNSAwIDAgMCA0LjA1IDguNiAzLjUgMy41IDAgMCAwIDYgMTVoMnYxLjc1YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDEuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWMTVoMmEzLjUgMy41IDAgMCAwIDEuOTUtNi40IDMuNTIgMy41MiAwIDAgMC0yLjU2LTMuOTlBMy41IDMuNSAwIDAgMCAxMCAyWm0xIDEzdjEuNzVjMCAuMTQtLjExLjI1LS4yNS4yNWgtMS41YS4yNS4yNSAwIDAgMS0uMjUtLjI1VjE1aDJaTTcuNTMgNS4xMWEyLjUgMi41IDAgMCAxIDQuOTQgMGMuMDMuMjIuMi4zOS40Mi40MkEyLjUgMi41IDAgMCAxIDE0LjkgOC43YS41LjUgMCAwIDAgLjI1LjU4QTIuNSAyLjUgMCAwIDEgMTQgMTRINmEyLjUgMi41IDAgMCAxLTEuMTUtNC43Mi41LjUgMCAwIDAgLjI1LS41OEEyLjUgMi41IDAgMCAxIDcuMSA1LjUzYS41LjUgMCAwIDAgLjQyLS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyZWVFdmVyZ3JlZW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJlZUV2ZXJncmVlbkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC42MiAyLjIxYTEgMSAwIDAgMC0xLjI0IDBsLTMuMyAyLjYxQTEuNSAxLjUgMCAwIDAgNiA3LjE0bC0xLjQ2IDEuMmExLjUgMS41IDAgMCAwIC41MSAyLjZsLTEuNTkgMS40OEExLjQ5IDEuNDkgMCAwIDAgNC41IDE1SDh2MS43NWMwIC42OS41NyAxLjI1IDEuMjYgMS4yNWgxLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjE1aDMuNWMxLjM1IDAgMi0xLjY2IDEuMDItMi41OGwtMS41OS0xLjQ4YTEuNSAxLjUgMCAwIDAgLjUyLTIuNmwtMS40Ny0xLjJhMS41IDEuNSAwIDAgMC0uMDUtMi4zMmwtMy4zMS0yLjZaTTkgMTVoMnYxLjc1YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTEuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyZWVFdmVyZ3JlZW5SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyZWVFdmVyZ3JlZW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjYyIDIuMjFhMSAxIDAgMCAwLTEuMjQgMGwtMy4zIDIuNjFBMS41IDEuNSAwIDAgMCA2IDcuMTRsLTEuNDYgMS4yYTEuNSAxLjUgMCAwIDAgLjUxIDIuNmwtMS41OSAxLjQ4QTEuNDkgMS40OSAwIDAgMCA0LjUgMTVIOHYxLjc1YzAgLjY5LjU3IDEuMjUgMS4yNiAxLjI1aDEuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWMTVoMy41YzEuMzUgMCAyLTEuNjYgMS4wMi0yLjU4bC0xLjU5LTEuNDhhMS41IDEuNSAwIDAgMCAuNTItMi42bC0xLjQ3LTEuMmExLjUgMS41IDAgMCAwLS4wNS0yLjMybC0zLjMxLTIuNlpNMTEgMTV2MS43NWMwIC4xNC0uMTEuMjUtLjI1LjI1aC0xLjVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWMTVoMlpNMTAgM2wzLjMgMi42YS41LjUgMCAwIDEtLjI4LjkuNS41IDAgMCAwLS4zLjg4bDIuMDkgMS43M2EuNS41IDAgMCAxLS4zMi44OWgtLjc2YS41LjUgMCAwIDAtLjM0Ljg2bDIuNDUgMi4zYy4zMi4zLjEuODQtLjM0Ljg0aC0xMWEuNDkuNDkgMCAwIDEtLjM0LS44NWwyLjQ0LTIuMjlhLjUuNSAwIDAgMC0uMzQtLjg2SDUuNWEuNS41IDAgMCAxLS4zMS0uODlsMi4xLTEuNzNhLjUuNSAwIDAgMC0uMy0uODguNS41IDAgMCAxLS4zLS45TDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmlhbmdsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmlhbmdsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xLjE4IDE1LjhjLS41MyAxIC4yIDIuMiAxLjMyIDIuMmgxNWExLjUgMS41IDAgMCAwIDEuMzItMi4yMmwtNy42LTE0YTEuNSAxLjUgMCAwIDAtMi42NS4wMmwtNy40IDE0WlwiXSk7XG5leHBvcnQgY29uc3QgVHJpYW5nbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyaWFuZ2xlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjUgMThhMS41IDEuNSAwIDAgMS0xLjMyLTIuMmw3LjQtMTRhMS41IDEuNSAwIDAgMSAyLjY0LS4wMmw3LjYgMTRBMS41IDEuNSAwIDAgMSAxNy41IDE4aC0xNVptLS40NC0xLjczYS41LjUgMCAwIDAgLjQ0LjczaDE1YS41LjUgMCAwIDAgLjQ0LS43NGwtNy42LTE0YS41LjUgMCAwIDAtLjg5IDBsLTcuMzkgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmlhbmdsZURvd25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJpYW5nbGVEb3duRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjMyIDE3LjIxYTEuNSAxLjUgMCAwIDEtMi42NCAwbC02LjUtMTJhMS41IDEuNSAwIDAgMSAxLjMyLTIuMmgxM2ExLjUgMS41IDAgMCAxIDEuMzIgMi4ybC02LjUgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmlhbmdsZURvd25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyaWFuZ2xlRG93blJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC42OCAxNy4yMWExLjUgMS41IDAgMCAwIDIuNjQgMGw2LjUtMTJhMS41IDEuNSAwIDAgMC0xLjMyLTIuMmgtMTNhMS41IDEuNSAwIDAgMC0xLjMyIDIuMmw2LjUgMTJabTEuNzYtLjQ3YS41LjUgMCAwIDEtLjg4IDBsLTYuNS0xMkEuNS41IDAgMCAxIDMuNSA0aDEzYy4zOCAwIC42Mi40LjQ0Ljc0bC02LjUgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmlhbmdsZUxlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJpYW5nbGVMZWZ0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuNzkgOC42OGExLjUgMS41IDAgMCAwIDAgMi42NGwxMiA2LjVhMS41IDEuNSAwIDAgMCAyLjItMS4zMnYtMTNhMS41IDEuNSAwIDAgMC0yLjItMS4zMmwtMTIgNi41WlwiXSk7XG5leHBvcnQgY29uc3QgVHJpYW5nbGVMZWZ0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmlhbmdsZUxlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuNzkgMTEuMzJhMS41IDEuNSAwIDAgMSAwLTIuNjRsMTItNi41YzEtLjU0IDIuMi4xOCAyLjIgMS4zMnYxM2ExLjUgMS41IDAgMCAxLTIuMiAxLjMybC0xMi02LjVabS40Ny0xLjc2YS41LjUgMCAwIDAgMCAuODhsMTIgNi41YS41LjUgMCAwIDAgLjc0LS40NHYtMTNhLjUuNSAwIDAgMC0uNzQtLjQ0bC0xMiA2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUcmlhbmdsZVJpZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyaWFuZ2xlUmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuMjEgOC42OGExLjUgMS41IDAgMCAxIDAgMi42NGwtMTIgNi41YTEuNSAxLjUgMCAwIDEtMi4yLTEuMzJ2LTEzYTEuNSAxLjUgMCAwIDEgMi4yLTEuMzJsMTIgNi41WlwiXSk7XG5leHBvcnQgY29uc3QgVHJpYW5nbGVSaWdodFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJpYW5nbGVSaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTcuMjEgMTEuMzJhMS41IDEuNSAwIDAgMCAwLTIuNjRsLTEyLTYuNWExLjUgMS41IDAgMCAwLTIuMiAxLjMydjEzYTEuNSAxLjUgMCAwIDAgMi4yIDEuMzJsMTItNi41Wm0tLjQ3LTEuNzZhLjUuNSAwIDAgMSAwIC44OGwtMTIgNi41QS41LjUgMCAwIDEgNCAxNi41di0xM2MwLS4zOC40LS42Mi43NC0uNDRsMTIgNi41WlwiXSk7XG5leHBvcnQgY29uc3QgVHJpYW5nbGVVcEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcmlhbmdsZVVwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjMyIDIuNzlhMS41IDEuNSAwIDAgMC0yLjY0IDBsLTYuNSAxMmExLjUgMS41IDAgMCAwIDEuMzIgMi4yaDEzYTEuNSAxLjUgMCAwIDAgMS4zMi0yLjJsLTYuNS0xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyaWFuZ2xlVXBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RyaWFuZ2xlVXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNjggMi43OWExLjUgMS41IDAgMCAxIDIuNjQgMGw2LjUgMTJhMS41IDEuNSAwIDAgMS0xLjMyIDIuMmgtMTNhMS41IDEuNSAwIDAgMS0xLjMyLTIuMmw2LjUtMTJabTEuNzYuNDdhLjUuNSAwIDAgMC0uODggMGwtNi41IDEyYS41LjUgMCAwIDAgLjQ0Ljc0aDEzYS41LjUgMCAwIDAgLjQ0LS43NGwtNi41LTEyWlwiXSk7XG5leHBvcnQgY29uc3QgVHJvcGh5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Ryb3BoeUZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgNGMwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMmgxYy44MiAwIDEuNS42NyAxLjUgMS41VjdhMyAzIDAgMCAxLTIuNiAyLjk3IDQuNSA0LjUgMCAwIDEtMy45IDMuNXYxLjVoMmEyIDIgMCAwIDEgMiAydi41YS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEtLjUtLjV2LS41YzAtMS4xLjktMiAyLTJoMnYtMS41YTQuNSA0LjUgMCAwIDEtMy45LTMuNUEzIDMgMCAwIDEgMyA3VjUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDFabTkgNC45NEEyIDIgMCAwIDAgMTYgN1Y1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMXYzLjk0Wk01LjUgNWgtMWEuNS41IDAgMCAwLS41LjVWN2EyIDIgMCAwIDAgMS41IDEuOTNWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyb3BoeVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJvcGh5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDdhMyAzIDAgMCAwIDIuNiAyLjk3IDQuNSA0LjUgMCAwIDAgMy45IDMuNXYxLjVoLTJhMiAyIDAgMCAwLTIgMnYuNWMwIC4yNy4yMy41LjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LS41YTIgMiAwIDAgMC0yLTJoLTJ2LTEuNWE0LjUgNC41IDAgMCAwIDMuOS0zLjVBMyAzIDAgMCAwIDE3IDdWNS41YzAtLjgzLS42OC0xLjUtMS41LTEuNWgtMWEyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0yIDJoLTFDMy42NyA0IDMgNC42NyAzIDUuNVY3Wm0xLjUtMmgxdjMuOTNBMiAyIDAgMCAxIDQgN1Y1LjVjMC0uMjguMjItLjUuNS0uNVptMTAgMGgxYy4yNyAwIC41LjIyLjUuNVY3YTIgMiAwIDAgMS0xLjUgMS45NFY1Wm0tMS0xdjVhMy41IDMuNSAwIDAgMS03IC4xNlY0YTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxWm0tNyAxMi45N2ExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRyb3BoeUxvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJvcGh5TG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgNGMwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMmgxYy44MiAwIDEuNS42NyAxLjUgMS41VjdjMCAuNDUtLjEuODgtLjI4IDEuMjYtLjMtLjE0LS42NC0uMjMtMS0uMjUuMTgtLjMuMjgtLjY0LjI4LTFWNS41YS41LjUgMCAwIDAtLjUtLjVoLTF2My4xN2EzIDMgMCAwIDAtMiAyLjgzdi4wNkEyIDIgMCAwIDAgMTEgMTN2LjM5Yy0uMTYuMDQtLjMzLjA2LS41LjA4djEuNWguNVYxN2MwIC4zNS4xLjY4LjI1Ljk3SDZhLjUuNSAwIDAgMS0uNS0uNXYtLjVjMC0xLjEuOS0yIDItMmgydi0xLjVhNC41IDQuNSAwIDAgMS0zLjktMy41QTMgMyAwIDAgMSAzIDdWNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMVptMCAxaC0xYS41LjUgMCAwIDAtLjUuNVY3YTIgMiAwIDAgMCAxLjUgMS45M1Y1Wm04IDZ2MUgxM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRyb3BoeUxvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Ryb3BoeUxvY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgN2EzIDMgMCAwIDAgMi42IDIuOTcgNC41IDQuNSAwIDAgMCAzLjkgMy41djEuNWgtMmEyIDIgMCAwIDAtMiAydi41YzAgLjI3LjIzLjUuNS41aDUuMjVBMiAyIDAgMCAxIDExIDE3di0uMDNINi41YTEgMSAwIDAgMSAxLTFIMTF2LTFoLS41di0xLjVjLjE3LS4wMi4zNC0uMDQuNS0uMDhWMTNhMiAyIDAgMCAxIC4xMi0uNjhBMy41IDMuNSAwIDAgMSA2LjUgOS4xNlY0YTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjQuNzZhMyAzIDAgMCAxIDEtLjU5VjVoMWMuMjcgMCAuNS4yMi41LjVWN2MwIC4zNy0uMS43MS0uMjcgMSAuMzUuMDMuNjguMTIgMSAuMjYuMTctLjM4LjI3LS44LjI3LTEuMjZWNS41YzAtLjgzLS42OC0xLjUtMS41LTEuNWgtMWEyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0yIDJoLTFDMy42NyA0IDMgNC42NyAzIDUuNVY3Wm0xLjUtMmgxdjMuOTNBMiAyIDAgMCAxIDQgN1Y1LjVjMC0uMjguMjItLjUuNS0uNVptOSA2djFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUcm9waHlPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHJvcGh5T2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy41OSA0LjNjLS4zNi4yOC0uNi43MS0uNiAxLjJWN2EzIDMgMCAwIDAgMi42MiAyLjk3IDQuNSA0LjUgMCAwIDAgMy45IDMuNXYxLjVoLTJhMiAyIDAgMCAwLTIgMnYuNWMwIC4yNy4yMi41LjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LS41YTIgMiAwIDAgMC0yLTJoLTJ2LTEuNWMuNi0uMDcgMS4xOS0uMjYgMS43LS41NWw0Ljk0IDQuOTNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTUuNSA2LjJ2Mi43MkEyIDIgMCAwIDEgNCA3VjUuNWMwLS4yMi4xMy0uNC4zMi0uNDdMNS41IDYuMjFabTguOSAzLjc2YTQuNDggNC40OCAwIDAgMS0uNyAxLjZMNS41NyAzLjQ2QTIgMiAwIDAgMSA3LjUgMmg1YTIgMiAwIDAgMSAyIDJoMWMuODIgMCAxLjUuNjcgMS41IDEuNVY3YTMgMyAwIDAgMS0yLjYgMi45N1ptLjEtMS4wM0EyIDIgMCAwIDAgMTYgN1Y1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMXYzLjk0WlwiXSk7XG5leHBvcnQgY29uc3QgVHJvcGh5T2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUcm9waHlPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy41OSA0LjNjLS4zNi4yOC0uNi43MS0uNiAxLjJWN2EzIDMgMCAwIDAgMi42MiAyLjk3IDQuNSA0LjUgMCAwIDAgMy45IDMuNXYxLjVoLTJhMiAyIDAgMCAwLTIgMnYuNWMwIC4yNy4yMi41LjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LS41YTIgMiAwIDAgMC0yLTJoLTJ2LTEuNWMuNi0uMDcgMS4xOS0uMjYgMS43LS41NWw0Ljk0IDQuOTNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTguNjIgMTAuMDNBMy41IDMuNSAwIDAgMSA2LjUgOS4xNlY3LjJsNC45NyA0Ljk3Wk01LjUgNi4ydjIuNzJBMiAyIDAgMCAxIDQgN1Y1LjVjMC0uMjIuMTMtLjQuMzItLjQ3TDUuNSA2LjIxWm04IDIuNzljMCAuNjgtLjIgMS4zMS0uNTMgMS44NWwuNzIuNzJjLjMzLS40Ny41OC0xLjAxLjctMS42QTMgMyAwIDAgMCAxNyA3VjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLS45OWEyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0xLjkyIDEuNDZsLjkyLjkyVjRhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2NVptMS00aDFjLjI3IDAgLjUuMjIuNS41VjdhMiAyIDAgMCAxLTEuNSAxLjk0VjVabS04IDExLjk3YTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxaC03WlwiXSk7XG5leHBvcnQgY29uc3QgVHZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTMuNSAxMGEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgVHZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1R2UmVndWxhcicsIFwiMWVtXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNlptMi0xYTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDRabTEgMTEuNWMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFR2QXJyb3dSaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUdkFycm93UmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNUEuNS41IDAgMCAwIDE3IDUuNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgNUgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2VjEzYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg1LjJhNS41IDUuNSAwIDAgMCA1LjMgN1ptLTkgNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgVHZBcnJvd1JpZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUdkFycm93UmlnaHRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVBLjUuNSAwIDAgMCAxNyA1LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDVIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWk0xNyAxM3YtMi42Yy4zNi0uMTguNy0uNCAxLS42NlYxM2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNS4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDRhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVpNNSAxNi41YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVHZVc2JGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVHZVc2JGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxLjI3QTIgMiAwIDAgMCAxNyA3aC0yYTIgMiAwIDAgMC0yIDJ2MS4yN0EyIDIgMCAwIDAgMTIgMTJ2Mi4xOGEyIDIgMCAwIDAgLjE4LjgySDRhMiAyIDAgMCAxLTItMlY2Wm0xNSAyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEgMSAxdjIuMmExIDEgMCAwIDEtLjIuNmwtMS4zIDEuOFYxOGExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTF2LTEuNGwtMS4zMS0xLjg0YTEgMSAwIDAgMS0uMTktLjU4VjEyYTEgMSAwIDAgMSAxLTFWOWExIDEgMCAwIDEgMS0xaDJabTAgM1Y5aC0ydjJoMlptLTMuNSA1LjkxLS42Ni0uOTFINS41YS41LjUgMCAwIDAgMCAxaDh2LS4wOVptLS4zMS0yLjE1LS4zNC4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFR2VXNiUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUdlVzYlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxLjI3QTIgMiAwIDAgMCAxNyA3VjZhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDh2LjE4YTIgMiAwIDAgMCAuMTguODJINGEyIDIgMCAwIDEtMi0yVjZabTExLjUgMTAuOTEtLjY2LS45MUg1LjVhLjUuNSAwIDAgMCAwIDFoOHYtLjA5Wk0xNCA5djJhMSAxIDAgMCAwLTEgMXYyLjE4YzAgLjIuMDcuNDEuMTkuNThsMS4zMSAxLjgzVjE4YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xLjRsMS4zLTEuOGExIDEgMCAwIDAgLjItLjZWMTJhMSAxIDAgMCAwLTEtMVY5YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMVptMyAyaC0yVjloMnYyWlwiXSk7XG5leHBvcnQgY29uc3QgVW1icmVsbGFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVW1icmVsbGFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41MSA5LjEzYy40LS4zNC45LS42MyAxLjQ5LS42My41OCAwIDEuMS4zIDEuNDkuNjNhMy44OCAzLjg4IDAgMCAxIC41Ni42bC4wMy4wNWEuNS41IDAgMCAwIC44NCAwbC4wMy0uMDVhMy4xOCAzLjE4IDAgMCAxIC41Ni0uNmMuNC0uMzQuOS0uNjMgMS40OS0uNjMuNTggMCAxLjEuMyAxLjQ5LjYzYTMuODggMy44OCAwIDAgMSAuNTYuNmwuMDMuMDVBLjUuNSAwIDAgMCAxOCA5LjVDMTggNS43MiAxNC43OCAyIDEwIDIgNS4yMiAyIDIgNS43MiAyIDkuNWEuNS41IDAgMCAwIC45Mi4yOGwuMDMtLjA1YTMuMiAzLjIgMCAwIDEgLjU2LS42Yy40LS4zNC45LS42MyAxLjQ5LS42My41OCAwIDEuMS4zIDEuNDkuNjNhMy44OCAzLjg4IDAgMCAxIC41Ni42bC4wMy4wNWEuNS41IDAgMCAwIC44NCAwbC4wMy0uMDVhMy4yIDMuMiAwIDAgMSAuNTYtLjZaTTEwIDkuNWMtLjE1IDAtLjMyLjA1LS41LjE1djYuMWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LS4yNWEuNS41IDAgMCAwLTEgMHYuMjVhMi4yNSAyLjI1IDAgMCAwIDQuNSAwdi02LjFjLS4xOC0uMS0uMzUtLjE1LS41LS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFVtYnJlbGxhUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdVbWJyZWxsYVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41MSA5LjEzYy40LS4zNC45LS42MyAxLjQ5LS42My41OCAwIDEuMS4zIDEuNDkuNjNhMy44OCAzLjg4IDAgMCAxIC41Ni42bC4wMy4wNWEuNS41IDAgMCAwIC44NCAwbC4wMy0uMDVhMy4xOCAzLjE4IDAgMCAxIC41Ni0uNmMuNC0uMzQuOS0uNjMgMS40OS0uNjMuNTggMCAxLjEuMyAxLjQ5LjYzYTMuODggMy44OCAwIDAgMSAuNTYuNmwuMDMuMDVBLjUuNSAwIDAgMCAxOCA5LjVDMTggNS43MiAxNC43OCAyIDEwIDIgNS4yMiAyIDIgNS43MiAyIDkuNWEuNS41IDAgMCAwIC45Mi4yOGwuMDMtLjA1YTMuMiAzLjIgMCAwIDEgLjU2LS42Yy40LS4zNC45LS42MyAxLjQ5LS42My41OCAwIDEuMS4zIDEuNDkuNjNhMy44OCAzLjg4IDAgMCAxIC41Ni42bC4wMy4wNWEuNS41IDAgMCAwIC44NCAwbC4wMy0uMDVhMy4yIDMuMiAwIDAgMSAuNTYtLjZabS01LjM1LTFBNi44NyA2Ljg3IDAgMCAxIDEwIDNhNi44NyA2Ljg3IDAgMCAxIDYuODQgNS4xM0EzLjE3IDMuMTcgMCAwIDAgMTUgNy41Yy0uOTIgMC0xLjY2LjQ2LTIuMTQuODctLjE0LjEyLS4yNi4yNC0uMzYuMzUtLjEtLjExLS4yMi0uMjMtLjM2LS4zNUEzLjMzIDMuMzMgMCAwIDAgMTAgNy41Yy0uOTIgMC0xLjY2LjQ2LTIuMTQuODctLjE0LjEyLS4yNi4yNC0uMzYuMzUtLjEtLjExLS4yMi0uMjMtLjM2LS4zNUEzLjMzIDMuMzMgMCAwIDAgNSA3LjVjLS43NCAwLTEuMzcuMy0xLjg0LjYzWk0xMCA5LjVjLS4xNSAwLS4zMi4wNS0uNS4xNXY2LjFhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi0uMjVhLjUuNSAwIDAgMC0xIDB2LjI1YTIuMjUgMi4yNSAwIDAgMCA0LjUgMHYtNi4xYy0uMTgtLjEtLjM1LS4xNS0uNS0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBVbmluc3RhbGxBcHBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVW5pbnN0YWxsQXBwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuNSAxN0ExLjUgMS41IDAgMCAxIDMgMTUuNXYtMTFDMyAzLjY3IDMuNjcgMyA0LjUgM2g0Ljc1Yy44MyAwIDEuNS42NyAxLjUgMS41djQuNzVoNC43NWMuODMgMCAxLjUuNjcgMS41IDEuNXY0Ljc1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFabTExLTYuMjVoLTQuNzV2NC43NWg0Ljc1di00Ljc1Wm0tNi4yNSAwSDQuNXY0Ljc1aDQuNzV2LTQuNzVabTAtMS41VjQuNUg0LjV2NC43NWg0Ljc1Wm01LjAzLTIuNDdhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjIyLTEuMjItMS4yMi0xLjIyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMS4yMiAxLjIyIDEuMjItMS4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2TDE2LjU2IDQuNWwxLjIyIDEuMjJhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNkwxNS41IDUuNTZsLTEuMjIgMS4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFVuaW5zdGFsbEFwcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVW5pbnN0YWxsQXBwUmVndWxhcicsIFwiMWVtXCIsIFtcIk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTExQzMgMy42NyAzLjY3IDMgNC41IDNIOWMuODMgMCAxLjUuNjcgMS41IDEuNXY1aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFabTExLTYuNWgtNVYxNmg1YS41LjUgMCAwIDAgLjUtLjVWMTFhLjUuNSAwIDAgMC0uNS0uNVptLTYgMEg0djVjMCAuMjguMjIuNS41LjVoNXYtNS41Wm0wLTF2LTVBLjUuNSAwIDAgMCA5IDRINC41YS41LjUgMCAwIDAtLjUuNXY1aDUuNVptNC4zNS0yLjY1YS41LjUgMCAwIDEtLjctLjdsMS42NC0xLjY1LTEuNjQtMS42NWEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCAxLjY1LTEuNjRhLjUuNSAwIDAgMSAuNy43TDE2LjIxIDQuNWwxLjY0IDEuNjVhLjUuNSAwIDAgMS0uNy43TDE1LjUgNS4yMWwtMS42NSAxLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVXNiUGx1Z0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdVc2JQbHVnRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMi41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjVWNmguMDhDMTQuMTQgNiAxNSA2Ljg1IDE1IDcuOTF2NS4xOGMwIDEuMDYtLjg2IDEuOTEtMS45MiAxLjkxSDEydjIuNWEuNS41IDAgMCAxLTEgMFYxNUg5djIuNWEuNS41IDAgMCAxLTEgMFYxNUg2LjkyQTEuOTIgMS45MiAwIDAgMSA1IDEzLjA5VjcuOUM1IDYuODUgNS44NiA2IDYuOTIgNkg3VjIuNVpNOCA2aDRWM0g4djNaXCJdKTtcbmV4cG9ydCBjb25zdCBVc2JQbHVnUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdVc2JQbHVnUmVndWxhcicsIFwiMWVtXCIsIFtcIk03LjUgMmg1Yy4yOCAwIC41LjIyLjUuNVY2aC4wOEMxNC4xNCA2IDE1IDYuODUgMTUgNy45MXY1LjE4YzAgMS4wNi0uODYgMS45MS0xLjkyIDEuOTFIMTJ2Mi41YS41LjUgMCAwIDEtMSAwVjE1SDl2Mi41YS41LjUgMCAwIDEtMSAwVjE1SDYuOTJBMS45MiAxLjkyIDAgMCAxIDUgMTMuMDlWNy45QzUgNi44NSA1Ljg2IDYgNi45MiA2SDdWMi41YzAtLjI4LjIyLS41LjUtLjVabTUuNTggMTJjLjUxIDAgLjkyLS40MS45Mi0uOTFWNy45YzAtLjUtLjQtLjkxLS45Mi0uOTFINi45MmEuOTIuOTIgMCAwIDAtLjkyLjkxdjUuMThjMCAuNS40LjkxLjkyLjkxaDYuMTZaTTEyIDZWM0g4djNoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFVzYlN0aWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1VzYlN0aWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTcgMi41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjVWNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWOGMwLTEuMS45LTIgMi0yVjIuNVpNOCA2aDRWM0g4djNaXCJdKTtcbmV4cG9ydCBjb25zdCBVc2JTdGlja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVXNiU3RpY2tSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAyaDVjLjI4IDAgLjUuMjIuNS41VjZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjhjMC0xLjEuOS0yIDItMlYyLjVjMC0uMjguMjItLjUuNS0uNVpNMTIgNlYzSDh2M2g0Wk03IDdhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjhhMSAxIDAgMCAwLTEtMUg3WlwiXSk7XG5leHBvcnQgY29uc3QgVmF1bHRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmF1bHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTIgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWN1ptMy41IDBhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0uNS0uNVptOC44NS42NWEuNS41IDAgMCAwLS43IDBsLS42My42M2EyIDIgMCAwIDAtMi4wNCAwbC0uNjMtLjYzYS41LjUgMCAwIDAtLjcuN2wuNjMuNjNhMiAyIDAgMCAwIDAgMi4wNGwtLjYzLjYzYS41LjUgMCAwIDAgLjcuN2wuNjMtLjYzYTIgMiAwIDAgMCAyLjA0IDBsLjYzLjYzYS41LjUgMCAwIDAgLjctLjdsLS42My0uNjNhMiAyIDAgMCAwIDAtMi4wNGwuNjMtLjYzYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZhdWx0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWYXVsdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTMuNzIgMTEuMDJhMiAyIDAgMCAwIDAtMi4wNGwuNjMtLjYzYS41LjUgMCAwIDAtLjctLjdsLS42My42M2EyIDIgMCAwIDAtMi4wNCAwbC0uNjMtLjYzYS41LjUgMCAwIDAtLjcuN2wuNjMuNjNhMiAyIDAgMCAwIDAgMi4wNGwtLjYzLjYzYS41LjUgMCAwIDAgLjcuN2wuNjMtLjYzYTIgMiAwIDAgMCAyLjA0IDBsLjYzLjYzYS41LjUgMCAwIDAgLjctLjdsLS42My0uNjNaTTEyIDExYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpNNiA3LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVpNMiA3YTMgMyAwIDAgMSAzLTNoMTBhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjdabTMtMmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMkg1WlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUJpY3ljbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUJpY3ljbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuNzUgMmEuNzUuNzUgMCAwIDAgMCAxLjVoMS4xM2wuMzYgMkg3LjI1di0uNzVBLjc1Ljc1IDAgMCAwIDYuNSA0aC0yYS43NS43NSAwIDAgMCAwIDEuNWgxLjI1di43TDUuNCA5LjAyYTMuNzUgMy43NSAwIDEgMCA0LjA2IDMuMmwzLjIzLTQuMy4yNCAxLjMyQTMuNzUgMy43NSAwIDEgMCAxNC40MSA5bC0xLjE3LTYuMzlBLjc1Ljc1IDAgMCAwIDEyLjUgMmgtMS43NVptLTMuNiA1LjEzQS43NS43NSAwIDAgMCA3LjIgN2g0LjI5bC0yLjY5IDMuNThhMy43NiAzLjc2IDAgMCAwLTEuOTItMS40bC4yNi0yLjA1Wk0zLjUgMTIuNzVjMC0xLjA1LjczLTEuOTQgMS43LTIuMThMNSAxMi4xNmEuNzUuNzUgMCAwIDAgLjc1Ljg0aDIuMjRhMi4yNSAyLjI1IDAgMCAxLTQuNDktLjI1Wm0zLjEtMS4yNS4xLS44Yy4zNy4xOC43LjQ2LjkyLjhINi42Wm02LjYxLS43NS4zIDEuNjRBLjc1Ljc1IDAgMCAwIDE1IDEyLjFsLS4zLTEuNTdhMi4yNSAyLjI1IDAgMSAxLTEuNDguMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQmljeWNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUJpY3ljbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjUgMmEuNS41IDAgMCAwIDAgMWgxLjU5bC42IDNIN1Y0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwIDAgMUg2djEuNDZMNS41OCA5SDUuNUEzLjUgMy41IDAgMSAwIDkgMTIuNjdsMy45Ny01LjMuMzYgMS44M2EzLjUgMy41IDAgMSAwIC45OC0uMkwxMyAyLjRhLjUuNSAwIDAgMC0uNDktLjRoLTJaTTMgMTIuNUEyLjUgMi41IDAgMCAxIDUuNDEgMTBsLS40IDIuNDJhLjUuNSAwIDAgMCAuNDkuNThoMi40NUEyLjUgMi41IDAgMCAxIDMgMTIuNVptMy4wOS0uNS4zLTEuODNjLjguMyAxLjM5Ljk5IDEuNTYgMS44M0g2LjA5Wm0uNDctMi44NEw2LjkyIDdIMTJsLTMuMjIgNC4yOWEzLjUgMy41IDAgMCAwLTIuMjItMi4xM1ptNi45NyAxLjA0LjQ4IDIuNGEuNS41IDAgMCAwIC45OC0uMmwtLjQ4LTIuNGEyLjUgMi41IDAgMSAxLS45OC4yWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUJ1c0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQnVzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTkgNGEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDlaTTMgNS41QTMuNSAzLjUgMCAwIDEgNi41IDJoN0EzLjUgMy41IDAgMCAxIDE3IDUuNVY4aDFhLjUuNSAwIDAgMSAwIDFoLTF2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZIN3YuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSAzIDE2LjVWOUgyYS41LjUgMCAwIDEgMC0xaDFWNS41Wm0xMyAwQTIuNSAyLjUgMCAwIDAgMTMuNSAzaC03QTIuNSAyLjUgMCAwIDAgNCA1LjVWMTBoMTJWNS41Wk0xNCAxNnYuNWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjVWMTZoLTJaTTQgMTZ2LjVjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41VjE2SDRabTQtM2ExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTUgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQnVzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQnVzUmVndWxhcicsIFwiMWVtXCIsIFtcIk05IDRhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg5Wm0tMSA5YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNSAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNMyA1LjVBMy41IDMuNSAwIDAgMSA2LjUgMmg3QTMuNSAzLjUgMCAwIDEgMTcgNS41VjhoMWEuNS41IDAgMCAxIDAgMWgtMXY3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xYTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxNkg3di41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMUExLjUgMS41IDAgMCAxIDMgMTYuNVY5SDJhLjUuNSAwIDAgMSAwLTFoMVY1LjVabTEzIDBBMi41IDIuNSAwIDAgMCAxMy41IDNoLTdBMi41IDIuNSAwIDAgMCA0IDUuNVYxMGgxMlY1LjVaTTE0IDE2di41YzAgLjI4LjIyLjUuNS41aDFhLjUuNSAwIDAgMCAuNS0uNVYxNmgtMlpNNCAxNnYuNWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjVWMTZINFptMC0xaDEydi00SDR2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVDYWJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhYkZpbGxlZCcsIFwiMWVtXCIsIFtcIk03Ljc1IDFhLjc1Ljc1IDAgMCAwLS43NS43NVYzaC0uODZhMi41IDIuNSAwIDAgMC0yLjQ1IDIuMDFsLS4yLjk5aC0uNzRhLjc1Ljc1IDAgMCAwIDAgMS41aC40NGwtLjExLjU2QTEuNSAxLjUgMCAwIDAgMiA5LjV2NGMwIC44My42NyAxLjUgMS41IDEuNWgxM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRhMS41IDEuNSAwIDAgMC0xLjA4LTEuNDRsLS4xMS0uNTZoLjU0YS43NS43NSAwIDAgMCAuNjUtLjc1di0uMWEuNzUuNzUgMCAwIDAtLjc1LS42NWgtLjc0bC0uMi0uOTlBMi41IDIuNSAwIDAgMCAxMy44NiAzSDEzVjEuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTQuNVpNNi4xNCA0aDcuNzJjLjcyIDAgMS4zMy41IDEuNDcgMS4yTDE1LjkgOEg0LjExbC41Ni0yLjhDNC44IDQuNSA1LjQyIDQgNi4xNCA0Wk01IDExLjVhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm04IDBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWk02IDE3di0xSDR2MWExIDEgMCAxIDAgMiAwWm0xMC0xdjFhMSAxIDAgMSAxLTIgMHYtMWgyWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhYlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhYlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAxMmExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTggMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaTTcgM2gtLjg2YTIuNSAyLjUgMCAwIDAtMi40NSAyLjAxbC0uMi45OWgtLjc0YS43NS43NSAwIDAgMCAwIDEuNWguNDRsLS4xMS41NkExLjUgMS41IDAgMCAwIDIgOS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVINHYxYTEgMSAwIDEgMCAyIDB2LTFoOHYxYTEgMSAwIDEgMCAyIDB2LTFoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di01YTEuNSAxLjUgMCAwIDAtMS4wOC0xLjQ0bC0uMTEtLjU2aC41NGEuNzUuNzUgMCAwIDAgLjY1LS43NXYtLjFhLjc1Ljc1IDAgMCAwLS43NS0uNjVoLS43NGwtLjItLjk5QTIuNSAyLjUgMCAwIDAgMTMuODYgM0gxM1YxLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC00LjVhLjc1Ljc1IDAgMCAwLS43NS43NVYzWm0xIDBWMmg0djFIOFpNMy41IDloMTNjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0uNS41aC0xM2EuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVabTIuNjQtNWg3LjcyYy43MiAwIDEuMzMuNSAxLjQ3IDEuMkwxNS45IDhINC4xMWwuNTYtMi44QzQuOCA0LjUgNS40MiA0IDYuMTQgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVDYWJsZUNhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FibGVDYXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuNDMgM2EuNS41IDAgMSAxIC4xNCAxTDEyIDQuNzRWNmMwIC43Ny0uMjkgMS40Ny0uNzYgMkgxM2EzIDMgMCAwIDEgMyAzdjJINHYtMmEzIDMgMCAwIDEgMy0zaDJhMiAyIDAgMCAwIDItMlY0Ljg3TDIuNTcgNmEuNS41IDAgMSAxLS4xNC0xTDExIDMuODZWMy41YS41LjUgMCAxIDEgMSAwdi4yM0wxNy40MyAzWk0xNiAxNHYxYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xaDEyWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhYmxlQ2FyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FibGVDYXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3LjQzIDNhLjUuNSAwIDEgMSAuMTQgMUwxMiA0Ljc0VjZjMCAuNzctLjI5IDEuNDctLjc2IDJIMTNhMyAzIDAgMCAxIDMgM3Y0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi00YTMgMyAwIDAgMSAzLTNoMmEyIDIgMCAwIDAgMi0yVjQuODdMMi41NyA2YS41LjUgMCAxIDEtLjE0LTFMMTEgMy44NlYzLjVhLjUuNSAwIDEgMSAxIDB2LjIzTDE3LjQzIDNaTTE1IDExYTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjJoMTB2LTJaTTUgMTR2MWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtMUg1WlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgMTZ2MWExIDEgMCAxIDEtMiAwdi0xaDJabTEwIDB2MWExIDEgMCAxIDEtMiAwdi0xaDJaTTEzLjg2IDNjMS4yIDAgMi4yMi44NCAyLjQ1IDIuMDFsLjIuOTloLjc0Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xYzAgLjM4LS4yOC43LS42NS43NGwtLjEuMDFoLS40NGwuMTEuNTZBMS41IDEuNSAwIDAgMSAxOCA5LjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiAxMy41di00YzAtLjY4LjQ2LTEuMjYgMS4wOC0xLjQ0bC4xMS0uNTZoLS40NGEuNzUuNzUgMCAwIDEgMC0xLjVoLjc0bC4yLS45OUEyLjUgMi41IDAgMCAxIDYuMTQgM2g3LjcyWk02IDEwLjVhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm04IDBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWk0xMy44NiA0SDYuMTRjLS43MiAwLTEuMzMuNS0xLjQ3IDEuMkw0LjEgOGgxMS43OGwtLjU2LTIuOEExLjUgMS41IDAgMCAwIDEzLjg2IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FyUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy44NiAzYzEuMiAwIDIuMjIuODQgMi40NSAyLjAxbC4yLjk5aC43NGMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxaC0uNDRsLjExLjU2QTEuNSAxLjUgMCAwIDEgMTggOS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE2djFhMSAxIDAgMSAxLTIgMHYtMUg2djFhMSAxIDAgMSAxLTIgMHYtMWgtLjVBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTVjMC0uNjguNDYtMS4yNiAxLjA4LTEuNDRsLjExLS41NmgtLjQ0YS43NS43NSAwIDAgMSAwLTEuNWguNzRsLjItLjk5QTIuNSAyLjUgMCAwIDEgNi4xNCAzaDcuNzJabTIuNjQgNmgtMTNhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41Wk02IDExYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptOCAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptLS4xNC03SDYuMTRjLS43MiAwLTEuMzMuNS0xLjQ3IDEuMkw0LjEgOGgxMS43OGwtLjU2LTIuOEExLjUgMS41IDAgMCAwIDEzLjg2IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyQ29sbGlzaW9uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVDYXJDb2xsaXNpb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS4zNiAyLjAyYS41LjUgMCAwIDEgLjU2LjJsMS43MiAyLjU5IDIuNTgtMS43M2EuNS41IDAgMCAxIC43Ny41NEwxNC4xNCA3aDMuMzZhLjUuNSAwIDAgMSAuMzUuODVsLTIuNTcgMi41NyAyLjUgMS42NmEuNS41IDAgMCAxLS4yOC45MmgtM2EuNS41IDAgMSAxIDAtMWgxLjM1bC0xLjYzLTEuMDhhLjUuNSAwIDAgMS0uMDctLjc3TDE2LjI5IDhIMTMuNWEuNS41IDAgMCAxLS40OS0uNjJsLjctMi43NS0xLjkzIDEuMjlhLjUuNSAwIDAgMS0uNy0uMTRMMTAgNC4xNVY1LjVhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMSAuMzYtLjQ4Wk0yLjUgMTBhLjUuNSAwIDEgMCAwIDFIM2MtLjYuNDYtMSAxLjE4LTEgMnY0YTEgMSAwIDAgMCAyIDB2LS41aDd2LjVhMSAxIDAgMCAwIDIgMHYtNGMwLS44Mi0uNC0xLjU0LTEtMmguNWEuNS41IDAgMCAwIDAtMWgtLjY2bC0uMTQtLjgzQTIgMiAwIDAgMCA5LjczIDcuNUg1LjI3QTIgMiAwIDAgMCAzLjMgOS4xN2wtLjE0LjgzSDIuNVptMS41OC41My4yLTEuMmExIDEgMCAwIDEgMS0uODNoNC40NWExIDEgMCAwIDEgLjk5Ljg0bC4yIDEuMmEyLjUyIDIuNTIgMCAwIDAtLjQyLS4wNGgtNmwtLjQyLjAzWm0xLjQyIDMuMjJhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptNC43NS43NWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyQ29sbGlzaW9uUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FyQ29sbGlzaW9uUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjM2IDIuMDJhLjUuNSAwIDAgMSAuNTYuMmwxLjcyIDIuNTkgMi41OC0xLjczYS41LjUgMCAwIDEgLjc3LjU0TDE0LjE0IDdoMy4zNmEuNS41IDAgMCAxIC4zNS44NWwtMi41NyAyLjU3IDIuNSAxLjY2YS41LjUgMCAwIDEtLjI4LjkyaC0zYS41LjUgMCAxIDEgMC0xaDEuMzVsLTEuNjMtMS4wOGEuNS41IDAgMCAxLS4wNy0uNzdMMTYuMjkgOEgxMy41YS41LjUgMCAwIDEtLjQ5LS42MmwuNy0yLjc1LTEuOTMgMS4yOWEuNS41IDAgMCAxLS43LS4xNEwxMCA0LjE1VjUuNWEuNS41IDAgMCAxLTEgMHYtM2EuNS41IDAgMCAxIC4zNi0uNDhaTTQuNzUgMTQuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTYuMjUtLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTEyIDExYy42LjQ2IDEgMS4xOCAxIDJ2NGExIDEgMCAxIDEtMiAwdi0uNUg0di41YTEgMSAwIDEgMS0yIDB2LTRjMC0uODIuNC0xLjU0IDEtMmgtLjVhLjUuNSAwIDEgMSAwLTFoLjY2bC4xNC0uODNBMiAyIDAgMCAxIDUuMjcgNy41aDQuNDZhMiAyIDAgMCAxIDEuOTcgMS42N2wuMTQuODNoLjY2YS41LjUgMCAwIDEgMCAxSDEyWk01LjI3IDguNWExIDEgMCAwIDAtLjk5Ljg0bC0uMiAxLjJjLjE0LS4wMy4yOC0uMDQuNDItLjA0aDZsLjQyLjAzLS4yLTEuMmExIDEgMCAwIDAtMS0uODNINS4yOFpNMyAxM3YyLjVoOVYxM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTZjLS44MyAwLTEuNS42Ny0xLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhclBhcmtpbmdGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhclBhcmtpbmdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTQgMS41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS41LjVIMTd2MTEuNWEuNS41IDAgMCAxLTEgMFY3aC0xLjVhLjUuNSAwIDAgMS0uNS0uNXYtNVpNMTMgM0g2LjE0YTIuNSAyLjUgMCAwIDAtMi40NSAyLjAxbC0uMi45OWgtLjc0YS43NS43NSAwIDAgMCAwIDEuNWguNDRsLS4xMS41NkExLjUgMS41IDAgMCAwIDIgOS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVIMTVWOEg0LjExbC41Ni0yLjhDNC44IDQuNSA1LjQyIDQgNi4xNCA0SDEzVjNabTIgOC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMCA2LjVhMSAxIDAgMCAxLTEtMXYtMWgxdjJabS05LTF2LTFINHYxYTEgMSAwIDEgMCAyIDBabS0xLTUuNWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyUGFya2luZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhclBhcmtpbmdSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE0IDEuNWMwLS4yOC4yMi0uNS41LS41aDRjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0uNS41SDE3djExLjVhLjUuNSAwIDAgMS0xIDBWN2gtMS41YS41LjUgMCAwIDEtLjUtLjV2LTVaTTEzIDNINi4xNGEyLjUgMi41IDAgMCAwLTIuNDUgMi4wMWwtLjIuOTloLS43NGEuNzUuNzUgMCAwIDAgMCAxLjVoLjQ0bC0uMTEuNTZBMS41IDEuNSAwIDAgMCAyIDkuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41SDR2MWExIDEgMCAxIDAgMiAwdi0xaDh2MWExIDEgMCAwIDAgMSAxdi0zSDMuNWEuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVIMTVWOEg0LjExbC41Ni0yLjhDNC44IDQuNSA1LjQyIDQgNi4xNCA0SDEzVjNabTIgOWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS04IDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhclByb2ZpbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhclByb2ZpbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuOTggMTMuODRjLjYtLjI3IDEuMDItLjg4IDEuMDItMS41OXYtMS4yMWEyLjUgMi41IDAgMCAwLTEuODYtMi40MmwtMi4wOS0uNTYtMS41NC0yLjc3QTIuNSAyLjUgMCAwIDAgMTAuMzIgNEg2Ljk0YTIuNSAyLjUgMCAwIDAtMi4zNyAxLjdsLS44MiAyLjQ4QTIuNSAyLjUgMCAwIDAgMiAxMC41NnYxLjY5YzAgLjcuNDIgMS4zMiAxLjAyIDEuNmEyLjUgMi41IDAgMCAwIDQuOTMuMTVoNC4xYTIuNSAyLjUgMCAwIDAgNC45My0uMTZaTTYuOTQgNUg4djNINC44NmwuNjYtMS45N0ExLjUgMS41IDAgMCAxIDYuOTQgNVptNC43Ljc3TDEyLjg2IDhIOVY1aDEuMzJjLjU1IDAgMS4wNS4zIDEuMzEuNzdaTTQgMTMuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFptOSAwYTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhclByb2ZpbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVDYXJQcm9maWxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk01LjUyIDYuMDMgNC44NiA4SDhWNUg2Ljk0YTEuNSAxLjUgMCAwIDAtMS40MiAxLjAzWk00LjUyIDlsLS4yNi4wOC0uMTIuMDNBMS41IDEuNSAwIDAgMCAzIDEwLjU2djEuNjljMCAuMTYuMDUuMzEuMTQuNDNhMi41IDIuNSAwIDAgMSA0LjgxLjMyaDQuMWEyLjUgMi41IDAgMCAxIDQuODEtLjMyLjc1Ljc1IDAgMCAwIC4xNC0uNDN2LTEuMjFhMS41IDEuNSAwIDAgMC0xLjExLTEuNDVMMTMuNjkgOUg0LjUyWm04LjM1LTEtMS4yNC0yLjIzYTEuNSAxLjUgMCAwIDAtMS4zLS43N0g5djNoMy44N1pNMTggMTIuMjVjMCAuNy0uNDIgMS4zMi0xLjAyIDEuNmEyLjUgMi41IDAgMCAxLTQuOTMuMTVoLTQuMWEyLjUgMi41IDAgMCAxLTQuOTMtLjE2QTEuNzUgMS43NSAwIDAgMSAyIDEyLjI1di0xLjY5YzAtMS4xLjcxLTIuMDYgMS43NS0yLjM4bC44Mi0yLjQ3QTIuNSAyLjUgMCAwIDEgNi45NCA0aDMuMzhjLjkxIDAgMS43NS41IDIuMTkgMS4yOWwxLjU0IDIuNzcgMi4xLjU2QTIuNSAyLjUgMCAwIDEgMTggMTEuMDR2MS4yMVpNNS41IDEyYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWm05IDBhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyUHJvZmlsZUx0ckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FyUHJvZmlsZUx0ckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNi45OCAxMy44NGMuNi0uMjcgMS4wMi0uODggMS4wMi0xLjU5di0xLjIxYTIuNSAyLjUgMCAwIDAtMS44Ni0yLjQybC0yLjA5LS41Ni0xLjU0LTIuNzdBMi41IDIuNSAwIDAgMCAxMC4zMiA0SDYuOTRhMi41IDIuNSAwIDAgMC0yLjM3IDEuN2wtLjgyIDIuNDhBMi41IDIuNSAwIDAgMCAyIDEwLjU2djEuNjljMCAuNy40MiAxLjMyIDEuMDIgMS42YTIuNSAyLjUgMCAwIDAgNC45My4xNWg0LjFhMi41IDIuNSAwIDAgMCA0LjkzLS4xNlpNNi45NCA1SDh2M0g0Ljg2bC42Ni0xLjk3QTEuNSAxLjUgMCAwIDEgNi45NCA1Wm00LjcuNzdMMTIuODYgOEg5VjVoMS4zMmMuNTUgMCAxLjA1LjMgMS4zMS43N1pNNCAxMy41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWm05IDBhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyUHJvZmlsZUx0clJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhclByb2ZpbGVMdHJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTUuNTIgNi4wMyA0Ljg2IDhIOFY1SDYuOTRhMS41IDEuNSAwIDAgMC0xLjQyIDEuMDNaTTQuNTIgOWwtLjI2LjA4LS4xMi4wM0ExLjUgMS41IDAgMCAwIDMgMTAuNTZ2MS42OWMwIC4xNi4wNS4zMS4xNC40M2EyLjUgMi41IDAgMCAxIDQuODEuMzJoNC4xYTIuNSAyLjUgMCAwIDEgNC44MS0uMzIuNzUuNzUgMCAwIDAgLjE0LS40M3YtMS4yMWExLjUgMS41IDAgMCAwLTEuMTEtMS40NUwxMy42OSA5SDQuNTJabTguMzUtMS0xLjI0LTIuMjNhMS41IDEuNSAwIDAgMC0xLjMtLjc3SDl2M2gzLjg3Wk0xOCAxMi4yNWMwIC43LS40MiAxLjMyLTEuMDIgMS42YTIuNSAyLjUgMCAwIDEtNC45My4xNWgtNC4xYTIuNSAyLjUgMCAwIDEtNC45My0uMTZBMS43NSAxLjc1IDAgMCAxIDIgMTIuMjV2LTEuNjljMC0xLjEuNzEtMi4wNiAxLjc1LTIuMzhsLjgyLTIuNDdBMi41IDIuNSAwIDAgMSA2Ljk0IDRoMy4zOGMuOTEgMCAxLjc1LjUgMi4xOSAxLjI5bDEuNTQgMi43NyAyLjEuNTZBMi41IDIuNSAwIDAgMSAxOCAxMS4wNHYxLjIxWk01LjUgMTJhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNabTkgMGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVDYXJQcm9maWxlTHRyQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZUNhclByb2ZpbGVMdHJDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAzYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDdhLjUuNSAwIDAgMCAwLTFINlYzLjVhLjUuNSAwIDAgMC0uNS0uNVpNMyAxMi41NmMwLS43MS4zLTEuMzcuOC0xLjgzQTUuNSA1LjUgMCAwIDAgMTAgOC42NlYxMGgzLjg3bC0xLjI0LTIuMjNhMS41IDEuNSAwIDAgMC0xLjMtLjc3aC0uNTRjLjEtLjMyLjE2LS42Ni4xOS0xaC4zNGMuOTEgMCAxLjc1LjUgMi4xOSAxLjI5bDEuNTQgMi43NyAyLjEuNTZBMi41IDIuNSAwIDAgMSAxOSAxMy4wNHYxLjIxYzAgLjctLjQyIDEuMzItMS4wMiAxLjZhMi41IDIuNSAwIDAgMS00LjkzLjE1aC00LjFhMi41IDIuNSAwIDAgMS00LjkzLS4xNkExLjc1IDEuNzUgMCAwIDEgMyAxNC4yNXYtMS42OVptMiAyLjk0YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm05IDBhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyUHJvZmlsZUx0ckNsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FyUHJvZmlsZUx0ckNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAzYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDdhLjUuNSAwIDAgMCAwLTFINlYzLjVhLjUuNSAwIDAgMC0uNS0uNVpNMyAxMi41NmMwLS43MS4zLTEuMzcuOC0xLjgzQTUuNSA1LjUgMCAwIDAgMTAgOC42NlYxMGgzLjg3bC0xLjI0LTIuMjNhMS41IDEuNSAwIDAgMC0xLjMtLjc3aC0uNTRjLjEtLjMyLjE2LS42Ni4xOS0xaC4zNGMuOTEgMCAxLjc1LjUgMi4xOSAxLjI5bDEuNTQgMi43NyAyLjEuNTZBMi41IDIuNSAwIDAgMSAxOSAxMy4wNHYxLjIxYzAgLjctLjQyIDEuMzItMS4wMiAxLjZhMi41IDIuNSAwIDAgMS00LjkzLjE1aC00LjFhMi41IDIuNSAwIDAgMS00LjkzLS4xNkExLjc1IDEuNzUgMCAwIDEgMyAxNC4yNXYtMS42OVpNNS41MyAxMXYuMDFsLS40LjFBMS41IDEuNSAwIDAgMCA0IDEyLjU2djEuN2MwIC4xNS4wNS4zLjE0LjQyYTIuNSAyLjUgMCAwIDEgNC44MS4zMmg0LjFhMi41IDIuNSAwIDAgMSA0LjgxLS4zMi43NS43NSAwIDAgMCAuMTQtLjQzdi0xLjIxYTEuNSAxLjUgMCAwIDAtMS4xMS0xLjQ1bC0yLjItLjU5SDUuNTJabS45NyAzYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWm05IDBhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlQ2FyUHJvZmlsZVJ0bEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlQ2FyUHJvZmlsZVJ0bEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zLjAyIDEzLjg0QTEuNzUgMS43NSAwIDAgMSAyIDEyLjI1di0xLjIxYTIuNSAyLjUgMCAwIDEgMS44Ni0yLjQybDIuMDktLjU2TDcuNDkgNS4zQTIuNSAyLjUgMCAwIDEgOS42OCA0aDMuMzhhMi41IDIuNSAwIDAgMSAyLjM3IDEuN2wuODIgMi40OEEyLjUgMi41IDAgMCAxIDE4IDEwLjU2djEuNjljMCAuNy0uNDIgMS4zMi0xLjAyIDEuNmEyLjUgMi41IDAgMCAxLTQuOTMuMTVoLTQuMWEyLjUgMi41IDAgMCAxLTQuOTMtLjE2Wk0xMy4wNiA1SDEydjNoMy4xNGwtLjY2LTEuOTdBMS41IDEuNSAwIDAgMCAxMy4wNiA1Wm0tNC43Ljc3TDcuMTQgOEgxMVY1SDkuNjhjLS41NSAwLTEuMDUuMy0xLjMxLjc3Wk0xNiAxMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWm0tOSAwYTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZUNhclByb2ZpbGVSdGxSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVDYXJQcm9maWxlUnRsUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC40OCA2LjAzIDE1LjE0IDhIMTJWNWgxLjA2Yy42NCAwIDEuMjIuNDEgMS40MiAxLjAzWm0xIDIuOTcuMjYuMDguMTIuMDNBMS41IDEuNSAwIDAgMSAxNyAxMC41NnYxLjY5YzAgLjE2LS4wNS4zMS0uMTQuNDNhMi41IDIuNSAwIDAgMC00LjgxLjMyaC00LjFhMi41IDIuNSAwIDAgMC00LjgxLS4zMi43NS43NSAwIDAgMS0uMTQtLjQzdi0xLjIxYzAtLjY4LjQ2LTEuMjggMS4xMS0xLjQ1TDYuMzEgOWg5LjE2Wk03LjEyIDhsMS4yNC0yLjIzQTEuNSAxLjUgMCAwIDEgOS42NyA1SDExdjNINy4xM1pNMiAxMi4yNWMwIC43LjQyIDEuMzIgMS4wMiAxLjZhMi41IDIuNSAwIDAgMCA0LjkzLjE1aDQuMWEyLjUgMi41IDAgMCAwIDQuOTMtLjE2Yy42LS4yNyAxLjAyLS44OCAxLjAyLTEuNTl2LTEuNjlhMi41IDIuNSAwIDAgMC0xLjc1LTIuMzhsLS44Mi0yLjQ3QTIuNSAyLjUgMCAwIDAgMTMuMDYgNEg5LjY4Yy0uOTEgMC0xLjc1LjUtMi4xOSAxLjI5TDUuOTUgOC4wNmwtMi4xLjU2QTIuNSAyLjUgMCAwIDAgMiAxMS4wNHYxLjIxWk0xNC41IDEyYTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm0tOSAwYTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZU1vdG9yY3ljbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZU1vdG9yY3ljbGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS41IDNhLjUuNSAwIDAgMCAwIDFoMS4xM2MuMiAwIC4zNi4xLjQ1LjI4bDEuMzkgMi43OEEyIDIgMCAwIDAgMTIgN2gtLjY1YTMuNSAzLjUgMCAwIDAtMy4xMyAxLjkzTDcuNyAxMEg0YTMgMyAwIDEgMCAyLjgzIDRoMS45M0EyLjUgMi41IDAgMCAwIDExIDEyLjYybC4zLS42Mkg2Ljg0YTMgMyAwIDAgMC0uNi0xSDEyYTIgMiAwIDAgMCAxLjg0LTEuMmwuMzkuNzhhMyAzIDAgMSAwIC45LS40NWwtLjYtMS4xOUEyIDIgMCAwIDAgMTUgOWgxLjVhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41SDE1YTIgMiAwIDAgMC0xLjg0IDEuMmwtMS4xOS0yLjM3QTEuNSAxLjUgMCAwIDAgMTAuNjMgM0g5LjVabTUuMTkgOC41Ljg2IDEuNzJhLjUuNSAwIDEgMCAuOS0uNDRsLS44Ny0xLjc0QTIgMiAwIDAgMSAxOCAxM2EyIDIgMCAxIDEtMy4zMS0xLjVaTTE0IDdhMSAxIDAgMCAxIDEtMWgxdjJoLTFhMSAxIDAgMCAxLTEtMVpNMiAxM2EyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlTW90b3JjeWNsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZU1vdG9yY3ljbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTkuNSAzYS41LjUgMCAwIDAgMCAxaDEuMTNjLjIgMCAuMzYuMS40NS4yOGwxLjM5IDIuNzhBMiAyIDAgMCAwIDEyIDdIOS44NWEzLjUgMy41IDAgMCAwLTMuMTMgMS45M0w2LjIgMTBINGEzIDMgMCAxIDAgMi44MyA0aDEuOTNBMi41IDIuNSAwIDAgMCAxMSAxMi42MmwuOC0xLjYyaC4yYTIgMiAwIDAgMCAxLjg0LTEuMmwuMzkuNzhhMyAzIDAgMSAwIC45LS40NWwtLjYtMS4xOUEyIDIgMCAwIDAgMTUgOWgxLjVhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41SDE1YTIgMiAwIDAgMC0xLjg0IDEuMmwtMS4xOS0yLjM3QTEuNSAxLjUgMCAwIDAgMTAuNjMgM0g5LjVabTUuMTkgOC41Ljg2IDEuNzJhLjUuNSAwIDEgMCAuOS0uNDRsLS44Ny0xLjc0QTIgMiAwIDAgMSAxOCAxM2EyIDIgMCAxIDEtMy4zMS0xLjVaTTE1IDZoMXYyaC0xYTEgMSAwIDEgMSAwLTJabS04Ljc2IDVoNC40NWwtLjU4IDEuMTdjLS4yNi41LS43OC44My0xLjM1LjgzSDdjMC0uNzctLjI5LTEuNDctLjc2LTJabTUuMjctMUg3LjMxbC4zLS42MkEyLjUgMi41IDAgMCAxIDkuODYgOEgxMmExIDEgMCAxIDEgMCAyaC0uNDlaTTQgMTFhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00WlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZVNoaXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVNoaXBGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNyAyLjU0YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjVWNWgyLjVjLjI4IDAgLjUuMjIuNS41djQuMDZsMS42My40NmEuNS41IDAgMCAxIC4zMi43bC0xLjgyIDMuNzlhMS41IDEuNSAwIDAgMC0yLjUzLjQ1VjE1YTIuMjggMi4yOCAwIDAgMS0uMzUuNTdjLS4yNi4zMi0uNS40NC0uNzQuNDRzLS40OC0uMTMtLjc1LS40NWEyLjY4IDIuNjggMCAwIDEtLjM2LS42IDEuNSAxLjUgMCAwIDAtMi44MS4wMyAyLjI3IDIuMjcgMCAwIDEtLjM1LjU3Yy0uMjYuMzMtLjUuNDUtLjc0LjQ1cy0uNDgtLjEyLS43NC0uNDRhMi42MSAyLjYxIDAgMCAxLS4zNi0uNiAxLjUgMS41IDAgMCAwLTIuNTUtLjQybC0xLjgtMy44M2EuNS41IDAgMCAxIC4zMi0uN0w0IDkuNTdWNS41YzAtLjI4LjIyLS41LjUtLjVIN1YyLjU0Wm01IC41SDhWNWg0VjMuMDRabTMgNi4yNVY2SDV2My4yOGw0LjItMS4xNmEzIDMgMCAwIDEgMS42IDBMMTUgOS4yOVptLTMuNiA1LjY2Wm0wIDBabTQuMDkuNDR2LS4wMWEuNS41IDAgMCAwLS45Ni0uMDZ2LjAyYTEuNjIgMS42MiAwIDAgMS0uMTIuMjRjLS4wOC4xNy0uMjIuMzktLjQuNi0uMzUuNDUtLjg1LjgyLTEuNTEuODJzLTEuMTYtLjM4LTEuNTItLjgyYTMuNjQgMy42NCAwIDAgMS0uNTEtLjg1LjUuNSAwIDAgMC0uOTQgMCAxLjc1IDEuNzUgMCAwIDEtLjEyLjI1Yy0uMDkuMTctLjIyLjM5LS40LjYtLjM1LjQ1LS44NS44Mi0xLjUxLjgycy0xLjE2LS4zNy0xLjUyLS44MWEzLjYyIDMuNjIgMCAwIDEtLjUtLjg1bC0uMDEtLjAyYS41LjUgMCAwIDAtLjk2LjA2IDEuNSAxLjUgMCAwIDEtLjA4LjI0Yy0uMDcuMTYtLjE3LjM3LS4zMy41OC0uMy40MS0uOC44LTEuNi44YS41LjUgMCAwIDAgMCAxIDIuOSAyLjkgMCAwIDAgMi41NC0xLjRsLjE3LjIyQzUuNjYgMTcuMzggNi40IDE4IDcuNSAxOHMxLjg0LS42MiAyLjMtMS4xOGwuMi0uMjguMi4yOEEyLjk2IDIuOTYgMCAwIDAgMTIuNSAxOGEyLjk1IDIuOTUgMCAwIDAgMi40Ni0xLjRsLjE0LjJjLjQ0LjYgMS4yIDEuMjEgMi40IDEuMmEuNS41IDAgMSAwIDAtMWMtLjguMDEtMS4zLS4zOC0xLjYtLjc5YTIuNzIgMi43MiAwIDAgMS0uNC0uNzdsLS4wMS0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlU2hpcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVNoaXBSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSAyLjA0YS41LjUgMCAwIDAtLjUuNVY1SDQuNWEuNS41IDAgMCAwLS41LjV2NC4wNmwtMS42My40NmEuNS41IDAgMCAwLS4zMi43bDEuOCAzLjgyYy4yMi0uMjYuNTItLjQ0Ljg2LS41MWwtMS41LTMuMiA2LjI1LTEuNzVhMiAyIDAgMCAxIDEuMDcgMGw2LjI2IDEuNzQtMS41NCAzLjJjLjM0LjA2LjY1LjIzLjg4LjQ5bDEuODItMy44YS41LjUgMCAwIDAtLjMyLS43TDE2IDkuNTdWNS41YS41LjUgMCAwIDAtLjUtLjVIMTNWMi41NGEuNS41IDAgMCAwLS41LS41aC01Wk0xMiA1SDhWMy4wNGg0VjVabTMgMVY5LjNsLTQuMi0xLjE3YTMgMyAwIDAgMC0xLjYgMEw1IDkuMjhWNmgxMFptLjQ5IDkuMzl2LS4wMWEuNS41IDAgMCAwLS45Ni0uMDZ2LjAyYTEuNjIgMS42MiAwIDAgMS0uMTIuMjRjLS4wOC4xNy0uMjIuMzktLjQuNi0uMzUuNDUtLjg1LjgyLTEuNTEuODJzLTEuMTYtLjM4LTEuNTItLjgyYTMuNjQgMy42NCAwIDAgMS0uNTEtLjg1LjUuNSAwIDAgMC0uOTQgMCAxLjc1IDEuNzUgMCAwIDEtLjEyLjI1Yy0uMDkuMTctLjIyLjM5LS40LjYtLjM1LjQ1LS44NS44Mi0xLjUxLjgycy0xLjE2LS4zNy0xLjUyLS44MWEzLjYyIDMuNjIgMCAwIDEtLjUtLjg1bC0uMDEtLjAyYS41LjUgMCAwIDAtLjk2LjA2IDEuNSAxLjUgMCAwIDEtLjA4LjI0Yy0uMDcuMTYtLjE3LjM3LS4zMy41OC0uMy40MS0uOC44LTEuNi44YS41LjUgMCAwIDAgMCAxIDIuOSAyLjkgMCAwIDAgMi41NC0xLjRsLjE3LjIyQzUuNjYgMTcuMzggNi40IDE4IDcuNSAxOHMxLjg0LS42MiAyLjMtMS4xOGwuMi0uMjguMi4yOEEyLjk2IDIuOTYgMCAwIDAgMTIuNSAxOGEyLjk1IDIuOTUgMCAwIDAgMi40Ni0xLjRsLjE0LjJjLjQ0LjYgMS4yIDEuMjEgMi40IDEuMmEuNS41IDAgMSAwIDAtMWMtLjguMDEtMS4zLS4zOC0xLjYtLjc5YTIuNzIgMi43MiAwIDAgMS0uNC0uNzdsLS4wMS0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlU3Vid2F5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVTdWJ3YXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOC41IDVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMSAwIDAtMWgtM1pNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTIuNjggMi45OGwyLjM4IDEuMDZhLjUuNSAwIDEgMS0uNC45MkwxMS45IDE3SDguMWwtNC40IDEuOTZhLjUuNSAwIDEgMS0uNC0uOTJsMi4zOC0xLjA2QTMgMyAwIDAgMSAzIDE0VjZabTEgMHY1aDEyVjZhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJabTQgOGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTUgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlU3Vid2F5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlU3Vid2F5UmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDE0YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNSAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNOC41IDVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMSAwIDAtMWgtM1pNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTIuNjggMi45OGwyLjM4IDEuMDZhLjUuNSAwIDEgMS0uNC45MkwxMS45IDE3SDguMWwtNC40IDEuOTZhLjUuNSAwIDEgMS0uNC0uOTJsMi4zOC0xLjA2QTMgMyAwIDAgMSAzIDE0VjZabTkuMDEgMTBIMTRhMiAyIDAgMCAwIDItMnYtMkg0djJjMCAxLjEuOSAyIDIgMmg2LjAxWk00IDZ2NWgxMlY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZVN1YndheUNsb2NrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVTdWJ3YXlDbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAzYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDdhLjUuNSAwIDAgMCAwLTFINlYzLjVhLjUuNSAwIDAgMC0uNS0uNVpNNCAxMXYtLjJjLS4zNS0uMS0uNjgtLjI0LTEtLjRWMTRhMyAzIDAgMCAwIDIuNjggMi45OEwzLjMgMTguMDRhLjUuNSAwIDEgMCAuNC45Mkw4LjEgMTdoMy44bDQuNCAxLjk2YS41LjUgMCAxIDAgLjQtLjkybC0yLjM4LTEuMDZBMyAzIDAgMCAwIDE3IDE0VjZhMyAzIDAgMCAwLTMtM2gtMy42Yy4xNi4zMi4zLjY1LjQgMUgxNGEyIDIgMCAwIDEgMiAydjVINFptNCAzYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNSAxYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVTdWJ3YXlDbG9ja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVN1YndheUNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAzYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDdhLjUuNSAwIDAgMCAwLTFINlYzLjVhLjUuNSAwIDAgMC0uNS0uNVpNNCAxMXYtLjJjLS4zNS0uMS0uNjgtLjI0LTEtLjRWMTRhMyAzIDAgMCAwIDIuNjggMi45OEwzLjMgMTguMDRhLjUuNSAwIDEgMCAuNC45Mkw4LjEgMTdoMy44bDQuNCAxLjk2YS41LjUgMCAxIDAgLjQtLjkybC0yLjM4LTEuMDZBMyAzIDAgMCAwIDE3IDE0VjZhMyAzIDAgMCAwLTMtM2gtMy42Yy4xNi4zMi4zLjY1LjQgMUgxNGEyIDIgMCAwIDEgMiAydjVINFptNCAzYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNSAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLS45OSAxSDZhMiAyIDAgMCAxLTItMnYtMmgxMnYyYTIgMiAwIDAgMS0yIDJoLTEuOTlaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlVHJhY3RvckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlVHJhY3RvckZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjMgNC42N0EyIDIgMCAwIDEgNi4yNyAzaDIuNDZhMiAyIDAgMCAxIDEuOTcgMS42N0wxMS4yNiA4SDEzVjZhLjUuNSAwIDAgMSAxIDB2MmgxYTMgMyAwIDAgMSAzIDN2MWMwIC4yNC0uMDMuNDctLjA4LjdBMyAzIDAgMSAxIDEzIDE1aC0yLjQyYTUgNSAwIDEgMS02Ljk0LTYuNDFsLjY2LTMuOTJabTUuNDEuMTdBMSAxIDAgMCAwIDguNzMgNEg2LjI3YTEgMSAwIDAgMC0uOTkuODRsLS41NSAzLjMyQTUgNSAwIDAgMSA2IDhoNC4yNGwtLjUzLTMuMTZaTTYgOWE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabTggNmEyIDIgMCAxIDAgNCAwIDIgMiAwIDAgMC00IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlVHJhY3RvclJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVRyYWN0b3JSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuMyA0LjY3QTIgMiAwIDAgMSA2LjI3IDNoMi40NmEyIDIgMCAwIDEgMS45NyAxLjY3TDExLjI2IDhIMTNWNmEuNS41IDAgMCAxIDEgMHYyaDFhMyAzIDAgMCAxIDMgM3YxYTMgMyAwIDAgMS0uMDguN0EzIDMgMCAxIDEgMTMgMTVoLTIuNDJhNSA1IDAgMSAxLTYuOTQtNi40MWwuNjYtMy45MlpNMTAuODQgOUg5YTUgNSAwIDAgMSAxLjkgNWgyLjI3QTMgMyAwIDAgMSAxNyAxMi4xN1YxMWEyIDIgMCAwIDAtMi0yaC00LjE1Wk05LjcxIDQuODRBMSAxIDAgMCAwIDguNzMgNEg2LjI3YTEgMSAwIDAgMC0uOTkuODRsLS41NSAzLjMyQTUgNSAwIDAgMSA2IDhoNC4yNGwtLjUzLTMuMTZaTTYgOWE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabTggNmEyIDIgMCAxIDAgNCAwIDIgMiAwIDAgMC00IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWZWhpY2xlVHJ1Y2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVRydWNrRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFWOS44YzAtLjI1LjA0LS41LjEtLjcyTDQuMTYgNS42QTIuMjUgMi4yNSAwIDAgMSA2LjMgNGg3LjRjMSAwIDEuODcuNjUgMi4xNSAxLjZsMS4wNCAzLjQ4Yy4wNy4yMy4xMS40Ny4xMS43MVYxNmExIDEgMCAwIDAgMS0xVjRhMiAyIDAgMCAwLTItMkg0Wm0xMiA3Ljh2Ni43YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZIOHYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSA0IDE2LjVWOS44YzAtLjE1LjAyLS4zLjA2LS40NEw1LjEgNS45Yy4xNi0uNTMuNjUtLjg5IDEuMi0uODloNy40Yy41NSAwIDEuMDQuMzYgMS4yLjlsMS4wNCAzLjQ2Yy4wNC4xNC4wNi4yOS4wNi40M1pNNSAxNi41YzAgLjI4LjIyLjUuNS41aDFhLjUuNSAwIDAgMCAuNS0uNVYxNkg1di41Wk0xNC44NiA5bC0uNjYtMi42MmEuNS41IDAgMCAwLS40OC0uMzhINi4yOGEuNS41IDAgMCAwLS40OC4zOEw1LjE0IDloOS43MlpNMTMgMTYuNWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjVWMTZoLTJ2LjVaTTcgMTNhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm03LTFhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tNS41IDFhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVUcnVja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVRydWNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk04IDEyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNSAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTUgLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQgMmEyIDIgMCAwIDAtMiAydjEwLjVjMCAuODMuNjcgMS41IDEuNSAxLjVINHYuNWMwIC44My42NyAxLjUgMS41IDEuNWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNmg0di41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDFjLjgzIDAgMS41LS42NyAxLjUtMS41VjE2aC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY0YTIgMiAwIDAgMC0yLTJINFptOSAxNC41VjE2aDJ2LjVhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjVaTTcgMTZ2LjVhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjVWMTZoMlpNMyA0YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYxMC41YS41LjUgMCAwIDEtLjUuNUgxNlY5Ljc1YzAtLjItLjAzLS40MS0uMDctLjYxbC0uNzYtM0ExLjUgMS41IDAgMCAwIDEzLjcyIDVINi4yOGExLjUgMS41IDAgMCAwLTEuNDUgMS4xNGwtLjc2IDNjLS4wNC4yLS4wNy40LS4wNy42VjE1aC0uNWEuNS41IDAgMCAxLS41LS41VjRabTIgMTF2LTVoMTB2NUg1Wm0uMTQtNiAuNjYtMi42MkEuNS41IDAgMCAxIDYuMjggNmg3LjQ0YS41LjUgMCAwIDEgLjQ4LjM4TDE0Ljg2IDlINS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVUcnVja0JhZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlVHJ1Y2tCYWdGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNCAxYTIgMiAwIDAgMSAxIC4yN0EyIDIgMCAwIDEgOCAzdjFoLjVjLjI4IDAgLjUuMjIuNS41VjlhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWNC41YzAtLjI4LjIyLS41LjUtLjVIMlYzYzAtMS4xLjktMiAyLTJaTTMgNGgyVjNhMSAxIDAgMCAwLTIgMHYxWm0zLTF2MWgxVjNhMSAxIDAgMCAwLTEuMjUtLjk3QTIgMiAwIDAgMSA2IDNabTMgLjA5VjNoMy4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY2aC44OGMuNTcgMCAxLjA5LjMyIDEuMzQuODNsMS42MiAzLjI0Yy4xLjIuMTYuNDMuMTYuNjd2My43NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuNTVhMi41IDIuNSAwIDAgMS00LjkgMGgtMS4xYTIuNSAyLjUgMCAwIDEtNC45IDBIMy44Yy0uOTYgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNGMuMy4xLjYzLjE1Ljk2LjE1aDRhMyAzIDAgMCAwIDMtM1Y0LjVjMC0uNjUtLjQyLTEuMi0xLTEuNDFaTTE0IDd2M2gyLjdsLTEuMzctMi43MmEuNS41IDAgMCAwLS40NS0uMjhIMTRabS03LjUgN2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptNC41IDEuNWExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVUcnVja0JhZ1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVRydWNrQmFnUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDFhMiAyIDAgMCAxIDEgLjI3QTIgMiAwIDAgMSA4IDN2MWguNWMuMjggMCAuNS4yMi41LjVWOWEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY0LjVjMC0uMjguMjItLjUuNS0uNUgyVjNjMC0xLjEuOS0yIDItMlpNMyA0aDJWM2ExIDEgMCAwIDAtMiAwdjFabTMtMXYxaDFWM2ExIDEgMCAwIDAtMS4yNS0uOTdBMiAyIDAgMCAxIDYgM1ptMyAuMDlWM2gzLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjZoLjg4Yy41NyAwIDEuMDkuMzIgMS4zNC44M2wxLjYyIDMuMjRjLjEuMi4xNi40My4xNi42N3YzLjc2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS41NWEyLjUgMi41IDAgMCAxLTQuOSAwaC0xLjFhMi41IDIuNSAwIDAgMS00LjkgMEgzLjhjLS45NiAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMi40Yy4zLjEuNjMuMTUuOTYuMTVoLjA0djIuMjVjMCAuNDEuMzQuNzUuNzUuNzVoLjI2YTIuNSAyLjUgMCAwIDEgNC45IDBoMS4xQTIuNSAyLjUgMCAwIDEgMTMgMTMuMDV2LTguM2EuNzUuNzUgMCAwIDAtLjc1LS43NUg5LjkxQTEuNSAxLjUgMCAwIDAgOSAzLjA5Wm01IDEwLjQxYy40OC4zNi44My44OS45NSAxLjVoMS41NWEuNS41IDAgMCAwIC41LS41VjExaC0zdjIuNVptMC0zLjVoMi43bC0xLjM3LTIuNzJhLjUuNSAwIDAgMC0uNDUtLjI4SDE0djNabS03LjUgNGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptNC41IDEuNWExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVUcnVja0N1YmVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmVoaWNsZVRydWNrQ3ViZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjA0IDkuODl2NC4zNmMwIC45Ny43OSAxLjc1IDEuNzUgMS43NWguMjZhMi41IDIuNSAwIDAgMCA0LjkgMGgxLjFhMi41IDIuNSAwIDAgMCA0LjkgMGgxLjU1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMy43NmMwLS4yNC0uMDUtLjQ3LS4xNi0uNjdsLTEuNjItMy4yNEExLjUgMS41IDAgMCAwIDE0Ljg4IDZIMTRWNC43NUMxNCAzLjc4IDEzLjIyIDMgMTIuMjUgM2gtMi4xYTIgMiAwIDAgMSAuMzUgMS4xMnYzLjc2YTIgMiAwIDAgMS0xLjEgMS44bC0zIDEuNWEyIDIgMCAwIDEtMS44IDBsLTIuNTYtMS4zWk0xNCA3aC44OGMuMiAwIC4zNi4xLjQ1LjI4TDE2LjY5IDEwSDE0VjdabS03LjUgN2ExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptNC41IDEuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpNMS41IDQuMTJ2My43NmExIDEgMCAwIDAgLjU1LjlsMyAxLjVhMSAxIDAgMCAwIC45IDBsMy0xLjVhMSAxIDAgMCAwIC41NS0uOVY0LjEyYTEgMSAwIDAgMC0uNTUtLjlsLTMtMS41YTEgMSAwIDAgMC0uOSAwbC0zIDEuNWExIDEgMCAwIDAtLjU1LjlabTEuNy0uMDggMi4zLjk3IDIuMy0uOTdhLjUuNSAwIDAgMSAuNC45Mkw2IDUuOVY4LjVhLjUuNSAwIDEgMS0xIDBWNS44OWwtMi4yLS45M2EuNS41IDAgMSAxIC40LS45MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVUcnVja0N1YmVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVUcnVja0N1YmVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEuNSA3Ljg4VjQuMTJhMSAxIDAgMCAxIC41NS0uOWwzLTEuNWExIDEgMCAwIDEgLjkgMGwzIDEuNWExIDEgMCAwIDEgLjU1Ljl2My43NmExIDEgMCAwIDEtLjU1LjlsLTMgMS41YTEgMSAwIDAgMS0uOSAwbC0zLTEuNWExIDEgMCAwIDEtLjU1LS45Wm0xLjA0LTMuNTdhLjUuNSAwIDAgMCAuMjcuNjVMNSA1LjlWOC41YS41LjUgMCAxIDAgMSAwVjUuODlsMi4yLS45M2EuNS41IDAgMCAwLS40LS45MmwtMi4zLjk3LTIuMy0uOTdhLjUuNSAwIDAgMC0uNjYuMjdabS0uNSA5Ljk0VjkuODlsMSAuNXYzLjg2YzAgLjQxLjM0Ljc1Ljc1Ljc1aC4yNmEyLjUgMi41IDAgMCAxIDQuOSAwaDEuMUEyLjUgMi41IDAgMCAxIDEzIDEzLjA1di04LjNhLjc1Ljc1IDAgMCAwLS43NS0uNzVIMTAuNWEyIDIgMCAwIDAtLjM0LTFoMi4xYy45NiAwIDEuNzQuNzggMS43NCAxLjc1VjZoLjg4Yy41NyAwIDEuMDkuMzIgMS4zNC44M2wxLjYyIDMuMjRjLjEuMi4xNi40My4xNi42N3YzLjc2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS41NWEyLjUgMi41IDAgMCAxLTQuOSAwaC0xLjFhMi41IDIuNSAwIDAgMS00LjkgMEgzLjhjLS45NiAwLTEuNzUtLjc4LTEuNzUtMS43NVptMTIuOTEuNzVoMS41NWEuNS41IDAgMCAwIC41LS41VjExaC0zdjIuNWMuNDguMzYuODMuODkuOTUgMS41Wm0xLjc0LTUtMS4zNi0yLjcyYS41LjUgMCAwIDAtLjQ1LS4yOEgxNHYzaDIuN1pNNSAxNS41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm03LjUgMS41YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgVmVoaWNsZVRydWNrUHJvZmlsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWZWhpY2xlVHJ1Y2tQcm9maWxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuMDQgNC43NUMyLjA0IDMuNzggMi44MyAzIDMuOCAzaDguNDZjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWNmguODhjLjU3IDAgMS4wOS4zMiAxLjM0LjgzbDEuNjIgMy4yNGMuMS4yLjE2LjQzLjE2LjY3djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xLjU1YTIuNSAyLjUgMCAwIDEtNC45IDBoLTEuMWEyLjUgMi41IDAgMCAxLTQuOSAwSDMuOGMtLjk2IDAtMS43NS0uNzgtMS43NS0xLjc1di05LjVaTTE0IDd2M2gyLjdsLTEuMzctMi43MmEuNS41IDAgMCAwLS40NS0uMjhIMTRabS03LjUgN2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptNC41IDEuNWExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZlaGljbGVUcnVja1Byb2ZpbGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZlaGljbGVUcnVja1Byb2ZpbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuMDQgNC43NUMyLjA0IDMuNzggMi44MyAzIDMuOCAzaDguNDZjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWNmguODhjLjU3IDAgMS4wOS4zMiAxLjM0LjgzbDEuNjIgMy4yNGMuMS4yLjE2LjQzLjE2LjY3djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xLjU1YTIuNSAyLjUgMCAwIDEtNC45IDBoLTEuMWEyLjUgMi41IDAgMCAxLTQuOSAwSDMuOGMtLjk2IDAtMS43NS0uNzgtMS43NS0xLjc1di05LjVaTTEwLjA1IDE1QTIuNSAyLjUgMCAwIDEgMTMgMTMuMDV2LTguM2EuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjc5YS43NS43NSAwIDAgMC0uNzUuNzV2OS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aC4yNmEyLjUgMi41IDAgMCAxIDQuOSAwaDEuMVpNMTQgMTMuNWMuNDguMzYuODMuODkuOTUgMS41aDEuNTVhLjUuNSAwIDAgMCAuNS0uNVYxMWgtM3YyLjVabTAtMy41aDIuN2wtMS4zNy0yLjcyYS41LjUgMCAwIDAtLjQ1LS4yOEgxNHYzWm0tNy41IDRhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNabTQuNSAxLjVhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2g1YTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3Wm0xNC4wNCA3Ljc4TDE0IDEzLjM3VjYuNjNsMi4wNC0xLjRjLjgzLS41OCAxLjk2LjAxIDEuOTYgMS4wMnY3LjVjMCAxLTEuMTMgMS42LTEuOTYgMS4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA0YTMgMyAwIDAgMC0zIDN2NmEzIDMgMCAwIDAgMyAzaDVhMyAzIDAgMCAwIDMtM3YtLjMybDMuMDQgMi4xYy44My41NyAxLjk2LS4wMyAxLjk2LTEuMDN2LTcuNWMwLTEtMS4xMy0xLjYtMS45Ni0xLjAzTDEzIDcuMzJWN2EzIDMgMCAwIDAtMy0zSDVabTggNC41NCAzLjYtMi41Yy4xNy0uMS40LjAxLjQuMjF2Ny41YzAgLjItLjIzLjMyLS40LjJMMTMgMTEuNDZWOC41NFpNMyA3YzAtMS4xLjktMiAyLTJoNWEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvMzYwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvMzYwRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuOTcgNC4wMkExLjcgMS43IDAgMCAwIDIgNS43djguNmExLjcgMS43IDAgMCAwIDEuOTcgMS42OCAzNy45NCAzNy45NCAwIDAgMSAxMi4yNS4wMkExLjcgMS43IDAgMCAwIDE4IDE0LjNWNS43YTEuNyAxLjcgMCAwIDAtMS45Ny0xLjY4Yy00IC42NC04LjA3LjY0LTEyLjA2IDBaTTE2IDE0Ljk2Yy0xLS4xNS0yLS4yNy0zLS4zNVYxMmgyYTEgMSAwIDAgMSAxIDF2MS45NlptLTQtLjQxYTM4Ljg0IDM4Ljg0IDAgMCAwLTQgMFYxMmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyLjU1Wm0tNSAuMDZjLTEgLjA4LTIgLjItMyAuMzVWMTNhMSAxIDAgMCAxIDEtMWgydjIuNjFaTTEwIDEwYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTMuNSAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptOSAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvMzYwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlbzM2MFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgOWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS00IDFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm04IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWk0zLjk3IDQuMDJBMS43IDEuNyAwIDAgMCAyIDUuN3Y4LjZhMS43IDEuNyAwIDAgMCAxLjk3IDEuNjhjNC0uNjUgOC4wNy0uNjUgMTIuMDYgMEExLjcgMS43IDAgMCAwIDE4IDE0LjNWNS43YTEuNyAxLjcgMCAwIDAtMS45Ny0xLjY4Yy00IC42NC04LjA3LjY0LTEyLjA2IDBaTTMgNS43YS43LjcgMCAwIDEgLjgxLS43YzQuMS42NyA4LjI4LjY3IDEyLjM4IDBhLjcuNyAwIDAgMSAuODEuN3Y4LjZhLjcuNyAwIDAgMS0uODEuNyAzMS4yIDMxLjIgMCAwIDAtLjE5LS4wNFYxM2ExIDEgMCAwIDAtMS0xaC0ydjIuNjFsLTEtLjA2VjEyYTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjIuNTVsLTEgLjA2VjEySDVhMSAxIDAgMCAwLTEgMXYxLjk2bC0uMTkuMDNBLjcuNyAwIDAgMSAzIDE0LjNWNS43WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW8zNjBPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW8zNjBPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjE4IDEuMTlBMS43IDEuNyAwIDAgMCAyIDUuN3Y4LjZhMS43IDEuNyAwIDAgMCAxLjk3IDEuNjggMzcuOTQgMzcuOTQgMCAwIDEgMTEuMTctLjEzbDIgMmEuNS41IDAgMCAwIC43MS0uN2wtMTUtMTVaTTE0IDE0LjdsLS45OS0uMDl2LS45bDEgMVptLTEuOTktMnYxLjg1YTM4Ljg0IDM4Ljg0IDAgMCAwLTQgMFYxMmExIDEgMCAwIDEgMS0xaDEuM2wxLjcgMS43Wm0tOCAyLjI2VjEzYTEgMSAwIDAgMSAxLTFoMnYyLjYxYy0xIC4wOC0yIC4yLTMgLjM1Wk01LjUgMTFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm04LjYyIDFMNi40NiA0LjM0YzMuMTkuMyA2LjQuMiA5LjU3LS4zMkExLjcgMS43IDAgMCAxIDE4IDUuN3Y4LjZjMCAuNDQtLjE3Ljg0LS40NCAxLjE0TDE2IDEzLjg4VjEzYTEgMSAwIDAgMC0xLTFoLS44OFptLjM4LTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW8zNjBPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvMzYwT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk02IDExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjE4IDEuMTlBMS43IDEuNyAwIDAgMCAyIDUuN3Y4LjZhMS43IDEuNyAwIDAgMCAxLjk3IDEuNjhjMy43LS42IDcuNDYtLjY0IDExLjE3LS4xM2wyIDJhLjUuNSAwIDAgMCAuNzEtLjdsLTEuMTgtMS4xOS02LjEyLTYuMTItMS4zOS0xLjM5TDYuMDEgNS4zIDQuODYgNC4xNWwtMi0yWk0xMyAxMy43di45bC0xLS4wNlYxMi43bDEgMVpNMTAuMyAxMUg5YTEgMSAwIDAgMC0xIDF2Mi41NWwtMSAuMDZWMTJINWExIDEgMCAwIDAtMSAxdjEuOTZsLS4xOS4wM0EuNy43IDAgMCAxIDMgMTQuM1Y1LjdhLjcuNyAwIDAgMSAuODEtLjdsLjU4LjEgNS45IDUuOVptMy44MiAxTDE2IDEzLjg4VjEzYTEgMSAwIDAgMC0xLTFoLS44OFptMi43MyAyLjczLjcxLjcxYy4yNy0uMy40NC0uNy40NC0xLjE0VjUuN2ExLjcgMS43IDAgMCAwLTEuOTctMS42OGMtMy4xNy41MS02LjM4LjYyLTkuNTcuMzJsMS4wOSAxLjA5YzIuODguMTggNS43OC4wNCA4LjY0LS40MmEuNy43IDAgMCAxIC44MS42OXY4LjZhLjcuNyAwIDAgMS0uMTUuNDNaTTE0IDExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQWRkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNmEzIDMgMCAwIDEgMy0zaDVhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0yLjAxIDIuODNsLjAxLS4zM2E1LjUgNS41IDAgMCAwLTktNC4yNFY2Wm0xNC4wNCA3Ljc4TDE0IDEyLjM3VjUuNjNsMi4wNC0xLjRjLjgzLS41OCAxLjk2LjAxIDEuOTYgMS4wMnY3LjVjMCAxLTEuMTMgMS42LTEuOTYgMS4wM1pNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQWRkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0FkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSAzYTMgMyAwIDAgMC0zIDN2NC4yNmMuMy0uMjYuNjQtLjQ4IDEtLjY2VjZjMC0xLjEuOS0yIDItMmg1YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMS4wNSAxLjc2IDUuNTYgNS41NiAwIDAgMSAuMDQgMS4wN0EzIDMgMCAwIDAgMTMgMTJ2LS4zMmwzLjA0IDIuMWMuODMuNTcgMS45Ni0uMDMgMS45Ni0xLjAzdi03LjVjMC0xLTEuMTMtMS42LTEuOTYtMS4wM0wxMyA2LjMyVjZhMyAzIDAgMCAwLTMtM0g1Wm04IDQuNTQgMy42LTIuNWMuMTctLjEuNC4wMS40LjIxdjcuNWMwIC4yLS4yMy4zMi0uNC4yTDEzIDEwLjQ2VjcuNTRabS0zIDYuOTZhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUg2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0JhY2tncm91bmRFZmZlY3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9CYWNrZ3JvdW5kRWZmZWN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMiA0IDIgOC4yVjYuOEw0LjggNGgxLjRabTcgMC0xLjQ2IDEuNDZhMy40OCAzLjQ4IDAgMCAwLTEuMDItLjM5TDExLjc5IDRoMS40MlptLTEuMDggMy4xN2EyLjUxIDIuNTEgMCAwIDAtMi4zNC0xLjE2IDIuNSAyLjUgMCAxIDAgMi4zNCAxLjE2Wm0uNzItLjcyYy4yLjI5LjM3LjYuNDguOTRMMTYuNjkgNCAxNi41IDRoLTEuMmwtMi40NiAyLjQ1Wk03LjUgMTJjLS4wOCAwLS4xNSAwLS4yMi4wMkExLjUgMS41IDAgMCAwIDYgMTMuNVYxNmg4di0yLjVhMS41IDEuNSAwIDAgMC0xLjUtMS41aC01Wm01LTFjLjIyIDAgLjQzLjAzLjYzLjA4TDE4IDYuMlY1LjVjMC0uMi0uMDQtLjQtLjEyLS41OWwtNC41IDQuNWEzLjUgMy41IDAgMCAxLS45MyAxLjU5aC4wNVptMS45Ljg4Yy4yMy4yNy40LjU4LjUuOTNMMTggOS43VjguMjlsLTMuNiAzLjZaTTE1IDE2di0xLjJsMy0zdjEuNEwxNS4yIDE2SDE1Wm0tMTAtLjN2LTEuNGwtMS43IDEuNjkuMi4wMWgxLjJsLjMtLjNabTEuNTctNi40OGMuMDguMzYuMjEuNy40IDEuMDJMMi4xMSAxNS4xQTEuNSAxLjUgMCAwIDEgMiAxNC41di0uN2w0LjU3LTQuNThaTTkuNzEgNCAyIDExLjd2LTEuNEw4LjMgNGgxLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0JhY2tncm91bmRFZmZlY3RSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQmFja2dyb3VuZEVmZmVjdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi4yIDQgMiA4LjJWNi44TDQuOCA0aDEuNFpNMy41IDE2SDV2LTEuN2wtMS43IDEuNjkuMi4wMVptMTEuNyAwSDE1di0xLjJsMy0zdjEuNEwxNS4yIDE2Wk0xOCA5LjdsLTMuMSAzLjFhMi41IDIuNSAwIDAgMC0uNS0uOTJMMTggOC4zdjEuNDJaTTEyLjUgMTJhMS41IDEuNSAwIDAgMSAxLjUgMS41VjE2aC0xdi0yLjVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwLS41LjVWMTZINnYtMi41YzAtLjA4IDAtLjE1LjAyLS4yMkExLjUgMS41IDAgMCAxIDcuNSAxMmg1Wm0tMi43OC0xLjAyYTIuNDkgMi40OSAwIDAgMS0yLjIxLTIuNyAyLjUgMi41IDAgMSAxIDIuMjEgMi43Wk0xMCAxMGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptLTcuODggNS4wOSA0Ljg0LTQuODVhMy40OCAzLjQ4IDAgMCAxLS4zOS0xLjAyTDIgMTMuNzl2LjcxYzAgLjIuMDQuNC4xMi41OVptOS42Mi05LjYzYTMuNDggMy40OCAwIDAgMC0xLjAyLS4zOUwxMS43OSA0aDEuNDJsLTEuNDcgMS40NlptMS41OCAxLjkzYTMuNDkgMy40OSAwIDAgMC0uNDgtLjk0TDE1LjI5IDRoMS4yMWwuMi4wMS0zLjM4IDMuMzhaTTEyLjQ1IDExYy40NC0uNDMuNzYtLjk4LjkzLTEuNTlsNC41LTQuNWMuMDguMTguMTIuMzguMTIuNTl2LjdsLTQuODcgNC44OGEyLjUgMi41IDAgMCAwLS42My0uMDhoLS4wNVpNMiAxMS43IDkuNyA0SDguM0wyIDEwLjN2MS40WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9CYWNrZ3JvdW5kRWZmZWN0SG9yaXpvbnRhbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0JhY2tncm91bmRFZmZlY3RIb3Jpem9udGFsRmlsbGVkJywgXCIxZW1cIiwgW1wiTTQgNGEyIDIgMCAwIDAtMS43MyAxaDE1LjQ2QTIgMiAwIDAgMCAxNiA0SDRaTTIgN2g0Ljg0Yy0uMTUuMzEtLjI1LjY1LS4zIDFIMlY3Wm02IDBhMi40OSAyLjQ5IDAgMCAwIC41IDMuNSAyLjQ5IDIuNDkgMCAwIDAgMy44LTFBMi41IDIuNSAwIDAgMCAxMCA2Yy0uODIgMC0xLjU0LjQtMiAxWk0yIDkuNWg0LjY0Yy4xMS4zNi4yOC43LjQ5IDFIMnYtMVpNNi4wOSAxM2MuMi0uNTguNzYtMSAxLjQxLTFoNWExLjUgMS41IDAgMCAxIDEuNSAxLjVWMTZINnYtMi41YzAtLjE4LjAzLS4zNC4wOS0uNVptOC40MS0xYy4yMi4zLjM4LjYzLjQ1IDFIMTh2LTFoLTMuNVptLjUgM3YxaDFhMiAyIDAgMCAwIDEuNzMtMUgxNVpNNSAxNnYtMUgyLjI3Yy4zNC42Ljk5IDEgMS43MyAxaDFabS41LTRjLS4yMi4zLS4zOC42My0uNDUgMUgydi0xaDMuNVptNy44Ni0yLjVjLS4xMS4zNi0uMjguNy0uNDkgMUgxOHYtMWgtNC42NFpNMTggOGgtNC41NGEzLjQ3IDMuNDcgMCAwIDAtLjMtMUgxOHYxWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9CYWNrZ3JvdW5kRWZmZWN0SG9yaXpvbnRhbFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9CYWNrZ3JvdW5kRWZmZWN0SG9yaXpvbnRhbFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA0YTIgMiAwIDAgMC0xLjczIDFoMTUuNDZBMiAyIDAgMCAwIDE2IDRINFpNMiA3aDQuODRjLS4xNS4zMS0uMjUuNjUtLjMgMUgyVjdabTYgMGEyLjQ5IDIuNDkgMCAwIDAgLjUgMy41IDIuNDkgMi40OSAwIDAgMCAzLjgtMUEyLjUgMi41IDAgMCAwIDEwIDZjLS44MiAwLTEuNTQuNC0yIDFabTIgMGExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1pNMiA5LjVoNC42NGMuMTEuMzYuMjguNy40OSAxSDJ2LTFaTTYuMDkgMTNjLjItLjU4Ljc2LTEgMS40MS0xaDVhMS41IDEuNSAwIDAgMSAxLjUgMS41VjE2aC0xdi0yLjVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwLS41LjVWMTZINnYtMi41YzAtLjE4LjAzLS4zNC4wOS0uNVptOC40MS0xYy4yMi4zLjM4LjYzLjQ1IDFIMTh2LTFoLTMuNVptLjUgM3YxaDFhMiAyIDAgMCAwIDEuNzMtMUgxNVpNNSAxNnYtMUgyLjI3Yy4zNC42Ljk5IDEgMS43MyAxaDFabS41LTRjLS4yMi4zLS4zOC42My0uNDUgMUgydi0xaDMuNVptNy44Ni0yLjVjLS4xMS4zNi0uMjguNy0uNDkgMUgxOHYtMWgtNC42NFpNMTggOGgtNC41NGEzLjQ3IDMuNDcgMCAwIDAtLjMtMUgxOHYxWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9DaGF0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQ2hhdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2g1YTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMi41OCAyLjk3QTUuNSA1LjUgMCAwIDAgMiA5LjI2VjdabTE0LjA0IDcuNzhMMTQgMTMuMzdWNi42M2wyLjA0LTEuNGMuODMtLjU4IDEuOTYuMDEgMS45NiAxLjAydjcuNWMwIDEtMS4xMyAxLjYtMS45NiAxLjAzWk01LjUgMThhNC41IDQuNSAwIDEgMC0zLjk0LTIuMzJsLS41NCAxLjhjLS4xLjMuMi42LjUuNWwxLjgtLjU0Yy42NC4zNiAxLjM5LjU2IDIuMTguNTZaTTMgMTIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAwIDFoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0NoYXRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQ2hhdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNSA0YTMgMyAwIDAgMC0zIDN2Mi4yNmMuMy0uMjYuNjQtLjQ4IDEtLjY2VjdjMC0xLjEuOS0yIDItMmg1YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMS4xNiAxLjgxYy0uMS40LS4yNC44LS40MiAxLjE2QTMgMyAwIDAgMCAxMyAxM3YtLjMybDMuMDQgMi4xYy44My41NyAxLjk2LS4wMyAxLjk2LTEuMDN2LTcuNWMwLTEtMS4xMy0xLjYtMS45Ni0xLjAzTDEzIDcuMzJWN2EzIDMgMCAwIDAtMy0zSDVabTggNC41NCAzLjYtMi41Yy4xNy0uMS40LjAxLjQuMjF2Ny41YzAgLjItLjIzLjMyLS40LjJMMTMgMTEuNDZWOC41NFpNNS41IDE4YTQuNSA0LjUgMCAxIDAtMy45NC0yLjMybC0uNTQgMS44Yy0uMS4zLjIuNi41LjVsMS44LS41NGMuNjQuMzYgMS4zOS41NiAyLjE4LjU2Wk0zIDEyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMCAxIDAtMWgyYS41LjUgMCAwIDEgMCAxaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9DbGlwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQ2xpcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTUuNSAzaC0xMVptNC4yNyA0LjA4IDQgMi41YS41LjUgMCAwIDEgMCAuODRsLTQgMi42NWEuNS41IDAgMCAxLS43Ny0uNDJWNy41YS41LjUgMCAwIDEgLjc3LS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQ2xpcFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9DbGlwUmVndWxhcicsIFwiMWVtXCIsIFtcIk04Ljc3IDcuMDhBLjUuNSAwIDAgMCA4IDcuNXY1LjE1YS41LjUgMCAwIDAgLjc4LjQybDQtMi42NWEuNS41IDAgMCAwLS4wMS0uODRsLTQtMi41Wk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTUuNSAzaC0xMVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDE0LjV2LTlaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0NsaXBNdWx0aXBsZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0NsaXBNdWx0aXBsZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djdBMi41IDIuNSAwIDAgMCA0LjUgMTVoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxMy41IDNoLTlaTTcgNi43NmMwLS42LjY3LS45NiAxLjE3LS42MmwzLjYxIDIuNDVjLjMuMi4zLjYzIDAgLjgybC0zLjYgMi40NkEuNzUuNzUgMCAwIDEgNyAxMS4yNXYtNC41Wk02LjUgMTdhMi41IDIuNSAwIDAgMS0yLTFIMTRhMyAzIDAgMCAwIDMtM1Y1LjVjLjYuNDYgMSAxLjE4IDEgMlYxM2E0IDQgMCAwIDEtNCA0SDYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQ2xpcE11bHRpcGxlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0NsaXBNdWx0aXBsZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNyAxMS4yNXYtNC41YzAtLjYuNjctLjk1IDEuMTctLjYxbDMuNjEgMi40NWMuMy4yLjMuNjMgMCAuODJsLTMuNiAyLjQ2QS43NS43NSAwIDAgMSA3IDExLjI1Wk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDlBMi41IDIuNSAwIDAgMSAxNiA1LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAyIDEyLjV2LTdaTTQuNSA0QzMuNjcgNCAzIDQuNjcgMyA1LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTAgMTJjLjQ2LjYgMS4xOCAxIDIgMUgxNGE0IDQgMCAwIDAgNC00VjcuNWMwLS44Mi0uNC0xLjU0LTEtMlYxM2EzIDMgMCAwIDEtMyAzSDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQ2xpcE9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0NsaXBPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wuNzMuNzRBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYy4yNCAwIC40Ny0uMDMuNy0uMWwuOTUuOTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTguMDggOS40OS0yLjE1IDEuNDNhLjUuNSAwIDAgMS0uNzgtLjQyVjguNzFsMi45MyAyLjkzWm0xLjg1LTEuMjItLjE1LjEgNS4xIDUuMWMuMTgtLjM0LjI3LS43Mi4yNy0xLjEydi05QTIuNSAyLjUgMCAwIDAgMTUuNSAzSDUuMTJsNC44IDQuOCAyLjg1IDEuNzhhLjUuNSAwIDAgMSAwIC44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQ2xpcE9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9DbGlwT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bC43My43NEEyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoMTFjLjI0IDAgLjQ3LS4wMy43LS4xbC45NS45NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTUuMyAxNkg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjV2LTljMC0uNDkuMjMtLjkyLjYtMS4yTDggOC43djMuOTVhLjUuNSAwIDAgMCAuNzguNDJsMi4xNS0xLjQzTDE1LjMgMTZaTTkuOTIgNy44bDIuNzEgMi43MS4xNS0uMWEuNS41IDAgMCAwLS4wMS0uODNMOS45MiA3LjhaTTE3IDE0LjVjMCAuMTItLjAxLjIzLS4wNC4zNGwuNzguNzhjLjE3LS4zNC4yNi0uNzIuMjYtMS4xMnYtOUEyLjUgMi41IDAgMCAwIDE1LjUgM0g1LjEybDEgMWg5LjM4Yy44MyAwIDEuNS42NyAxLjUgMS41djlaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0NsaXBPcHRpbWl6ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0NsaXBPcHRpbWl6ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDYuNUEzLjUgMy41IDAgMCAxIDYuNSAzYS41LjUgMCAwIDAgMC0xQTQuNSA0LjUgMCAwIDAgMiA2LjVhLjUuNSAwIDAgMCAxIDBaTTQgN2EzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3Y2YTMgMyAwIDAgMS0zIDNIN2EzIDMgMCAwIDEtMy0zVjdabTIuNSAxMEEzLjUgMy41IDAgMCAxIDMgMTMuNWEuNS41IDAgMCAwLTEgMEE0LjUgNC41IDAgMCAwIDYuNSAxOGEuNS41IDAgMCAwIDAtMVpNMTcgNi41QTMuNSAzLjUgMCAwIDAgMTMuNSAzYS41LjUgMCAwIDEgMC0xQTQuNSA0LjUgMCAwIDEgMTggNi41YS41LjUgMCAwIDEtMSAwWk0xMy41IDE3YTMuNSAzLjUgMCAwIDAgMy41LTMuNS41LjUgMCAwIDEgMSAwIDQuNSA0LjUgMCAwIDEtNC41IDQuNS41LjUgMCAwIDEgMC0xWk04LjI2IDcuMDZBLjUuNSAwIDAgMCA4IDcuNXY1LjE1YS41LjUgMCAwIDAgLjc4LjQybDQtMi42NWEuNS41IDAgMCAwLS4wMS0uODRsLTQtMi41YS41LjUgMCAwIDAtLjUxLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQ2xpcE9wdGltaXplUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb0NsaXBPcHRpbWl6ZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMyA2LjVBMy41IDMuNSAwIDAgMSA2LjUgM2EuNS41IDAgMCAwIDAtMUE0LjUgNC41IDAgMCAwIDIgNi41YS41LjUgMCAwIDAgMSAwWm01LjI2LjU2YS41LjUgMCAwIDEgLjUuMDJsNCAyLjVhLjUuNSAwIDAgMSAuMDIuODRsLTQgMi42NWEuNS41IDAgMCAxLS43OC0uNDJWNy41YzAtLjE4LjEtLjM1LjI2LS40NFpNNi41IDE3QTMuNSAzLjUgMCAwIDEgMyAxMy41YS41LjUgMCAwIDAtMSAwQTQuNSA0LjUgMCAwIDAgNi41IDE4YS41LjUgMCAwIDAgMC0xWk0xNyA2LjVBMy41IDMuNSAwIDAgMCAxMy41IDNhLjUuNSAwIDAgMSAwLTFBNC41IDQuNSAwIDAgMSAxOCA2LjVhLjUuNSAwIDAgMS0xIDBaTTEzLjUgMTdhMy41IDMuNSAwIDAgMCAzLjUtMy41LjUuNSAwIDAgMSAxIDAgNC41IDQuNSAwIDAgMS00LjUgNC41LjUuNSAwIDAgMSAwLTFaTTcgNGEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTNWN2EzIDMgMCAwIDAtMy0zSDdaTTUgN2MwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjdaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb0NsaXBXYW5kRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQ2xpcFdhbmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMSA0LjVBMi41IDIuNSAwIDAgMSAzLjUgMmgxMUEyLjUgMi41IDAgMCAxIDE3IDQuNXYzLjg4YTEuNSAxLjUgMCAwIDAtMi40OS45NGwtLjEuNzlhMS41IDEuNSAwIDAgMS0xLjMgMS4zbC0uOC4xYTEuNSAxLjUgMCAwIDAgMCAyLjk4aC4wN0wxMC44OCAxNkgzLjVBMi41IDIuNSAwIDAgMSAxIDEzLjV2LTlabTEwLjc3IDQuMDgtNC0yLjVBLjUuNSAwIDAgMCA3IDYuNXY1LjE1YS41LjUgMCAwIDAgLjc4LjQybDQtMi42NWEuNS41IDAgMCAwLS4wMS0uODRabTQuNzMuODZhLjUuNSAwIDAgMC0xIDBsLS4xLjc5YTIuNSAyLjUgMCAwIDEtMi4xNyAyLjE4bC0uOC4xYS41LjUgMCAwIDAgMCAuOTlsLjguMWEyLjUgMi41IDAgMCAxIDIuMTggMi4xN2wuMS44YS41LjUgMCAwIDAgLjk5IDBsLjEtLjhhMi41IDIuNSAwIDAgMSAyLjE3LTIuMThsLjgtLjFhLjUuNSAwIDAgMCAwLS45OWwtLjgtLjFhMi41IDIuNSAwIDAgMS0yLjE4LTIuMTdsLS4xLS44Wk0xNC42IDEzYTMuNSAzLjUgMCAwIDAgMS40LTEuNGMuMzIuNTkuODEgMS4wOCAxLjQgMS40YTMuNSAzLjUgMCAwIDAtMS40IDEuNCAzLjUgMy41IDAgMCAwLTEuNC0xLjRabS0uNzUgMi44NWEuNS41IDAgMCAwLS43LS43bC00IDRhLjUuNSAwIDEgMCAuNy43bDQtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvQ2xpcFdhbmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvQ2xpcFdhbmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuMjYgNi4wNmEuNS41IDAgMCAxIC41LjAybDQgMi41YS41LjUgMCAwIDEgLjAyLjg0bC00IDIuNjVhLjUuNSAwIDAgMS0uNzgtLjQyVjYuNWMwLS4xOC4xLS4zNS4yNi0uNDRaTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMTFBMi41IDIuNSAwIDAgMSAxNyA0LjV2My44OEExLjUgMS41IDAgMCAwIDE2IDhWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFDMi42NyAzIDIgMy42NyAyIDQuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDguMzhsLTEgMUgzLjVBMi41IDIuNSAwIDAgMSAxIDEzLjV2LTlabTE1LjUgNC45NGEuNS41IDAgMCAwLTEgMGwtLjEuNzlhMi41IDIuNSAwIDAgMS0yLjE3IDIuMThsLS44LjFhLjUuNSAwIDAgMCAwIC45OWwuOC4xYTIuNSAyLjUgMCAwIDEgMi4xOCAyLjE3bC4xLjhhLjUuNSAwIDAgMCAuOTkgMGwuMS0uOGEyLjUgMi41IDAgMCAxIDIuMTctMi4xOGwuOC0uMWEuNS41IDAgMCAwIDAtLjk5bC0uOC0uMWEyLjUgMi41IDAgMCAxLTIuMTgtMi4xN2wtLjEtLjhaTTE0LjYgMTNhMy41IDMuNSAwIDAgMCAxLjQtMS40Yy4zMi41OS44MSAxLjA4IDEuNCAxLjRhMy41IDMuNSAwIDAgMC0xLjQgMS40IDMuNSAzLjUgMCAwIDAtMS40LTEuNFptLS43NSAyLjg1YS41LjUgMCAwIDAtLjctLjdsLTQgNGEuNS41IDAgMSAwIC43LjdsNC00WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9PZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9PZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQ4IDEuNDhBMyAzIDAgMCAwIDIgN3Y2YTMgMyAwIDAgMCAzIDNoNWEzIDMgMCAwIDAgMi45My0yLjM2bDQuMjIgNC4yMWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTQgMTEuODhsMy4wOCAzLjA3Yy41LS4xNC45Mi0uNi45Mi0xLjJ2LTcuNWMwLTEtMS4xMy0xLjYtMS45Ni0xLjAzTDE0IDYuNjN2NS4yNVpNNi4xMiA0IDEzIDEwLjg4VjdhMyAzIDAgMCAwLTMtM0g2LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9PZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDEuNDggMS40OEEzIDMgMCAwIDAgMiA3djZhMyAzIDAgMCAwIDMgM2g1YTMgMyAwIDAgMCAyLjkzLTIuMzZsNC4yMiA0LjIxYS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xMiAxMi43VjEzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDEuMzktMS45TDEyIDEyLjdaTTEyIDd2Mi44OGwxIDFWOC41NGwzLjYtMi41Yy4xNy0uMS40LjAxLjQuMjF2Ny41YzAgLjItLjIzLjMyLS40LjJsLTEuNzEtMS4xOCAyLjE5IDIuMThjLjUtLjE0LjkyLS42LjkyLTEuMnYtNy41YzAtMS0xLjEzLTEuNi0xLjk2LTEuMDNMMTMgNy4zMlY3YTMgMyAwIDAgMC0zLTNINi4xMmwxIDFIMTBhMiAyIDAgMCAxIDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEyLjUgOC41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWk0yIDUuNUMyIDQuNjcgMi42NyA0IDMuNSA0aDEzYy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDIgMTQuNXYtOVpNMTQgMTVoMi41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtMTNhLjUuNSAwIDAgMC0uNS41djljMCAuMjguMjIuNS41LjVINnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9QZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDExYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wLTFhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaTTIgNS41QzIgNC42NyAyLjY3IDQgMy41IDRoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiAxNC41di05Wk03IDE1aDZ2LTEuNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNVYxNVptNyAwaDIuNWEuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTEzYS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41SDZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9QZXJzb25DYWxsRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uQ2FsbEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi41IDguNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpNMiA1LjVDMiA0LjY3IDIuNjcgNCAzLjUgNGgxM2MuODMgMCAxLjUuNjcgMS41IDEuNXYyLjY4QTIuMyAyLjMgMCAwIDAgMTcgOFY1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMTNhLjUuNSAwIDAgMC0uNS41djljMCAuMjguMjIuNS41LjVINnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjIyYy0uNy0uMTItMS40LjEzLTEuODguNjVsLS41NS42MWMtLjI3LjMtLjQ0LjY2LS41MiAxLjAySDMuNUExLjUgMS41IDAgMCAxIDIgMTQuNXYtOVptMTMuNTggNS4wOC4yOS0uNzVhMS4zMiAxLjMyIDAgMCAxIDEuNzQtLjczbC4zOS4xN2MuNDcuMi44Ni41Ny45NCAxLjA2LjQ2IDIuNzMtMS45IDYuNi00LjYzIDcuNTlhMS42IDEuNiAwIDAgMS0xLjQ0LS4yNWwtLjM1LS4yM2MtLjYtLjQxLS43LTEuMjQtLjItMS43OWwuNTQtLjZjLjI2LS4zLjY2LS40MiAxLjA0LS4zM2wxLjIyLjI5Yy45Ny0uNiAxLjUtMS40NiAxLjU2LTIuNTZsLS44OC0uODZhLjk0Ljk0IDAgMCAxLS4yMi0xWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9QZXJzb25DYWxsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1BlcnNvbkNhbGxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDExYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wLTFhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaTTIgNS41QzIgNC42NyAyLjY3IDQgMy41IDRoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi42OEEyLjMgMi4zIDAgMCAwIDE3IDhWNS41YS41LjUgMCAwIDAtLjUtLjVoLTEzYS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41SDZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41di4yMmEyLjA3IDIuMDcgMCAwIDAtMSAuMDh2LS4zYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41VjE1aDQuNTZjLS4yNi4zLS40My42NC0uNTEgMUgzLjVBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlabTEzLjU4IDUuMDguMjktLjc1YTEuMzIgMS4zMiAwIDAgMSAxLjc0LS43M2wuMzkuMTdjLjQ3LjIuODYuNTcuOTQgMS4wNi40NiAyLjczLTEuOSA2LjYtNC42MyA3LjU5YTEuNiAxLjYgMCAwIDEtMS40NC0uMjVsLS4zNS0uMjNjLS42LS40MS0uNy0xLjI0LS4yLTEuNzlsLjU0LS42Yy4yNi0uMy42Ni0uNDIgMS4wNC0uMzNsMS4yMi4yOWMuOTctLjYgMS41LTEuNDYgMS41Ni0yLjU2bC0uODgtLjg2YS45NC45NCAwIDAgMS0uMjItMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUGVyc29uQ2xvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9QZXJzb25DbG9ja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxMGEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMiA0LjVDMiAzLjY3IDIuNjcgMyAzLjUgM2gxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY1Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEzYS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41SDZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWgyLjc2YTUuNDggNS40OCAwIDAgMC0xLjI0IDRIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di05Wm0xNyAxMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvbkNsb2NrUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1BlcnNvbkNsb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAxMGEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptMC0xYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDEzYy44MyAwIDEuNS42NyAxLjUgMS41djUuNzZhNS41IDUuNSAwIDAgMC0xLS42NlY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMTNhLjUuNSAwIDAgMC0uNS41djljMCAuMjguMjIuNS41LjVINnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDIuNzZjLS4yNi4zLS40OC42NC0uNjYgMUg3LjVhLjUuNSAwIDAgMC0uNS41VjE0aDIuMDJhNS41NyA1LjU3IDAgMCAwIDAgMUgzLjVBMS41IDEuNSAwIDAgMSAyIDEzLjV2LTlabTE3IDEwYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDEyYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDE2YS41LjUgMCAwIDAgMC0xaC0xdi0xLjVhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUGVyc29uT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy4zIDQuMDFDMi41NyA0LjExIDIgNC43NCAyIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExLjhsMS44NSAxLjg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xMS4zIDEySDcuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTVIMy41YS41LjUgMCAwIDEtLjUtLjV2LTljMC0uMjguMjItLjUuNS0uNWguOGwzLjIyIDMuMjItLjAyLjI4YTIuNSAyLjUgMCAwIDAgMi43OCAyLjQ4TDExLjI5IDEyWk04LjU3IDYuNDVsMy40OCAzLjQ4YTIuNSAyLjUgMCAwIDAtMy40OC0zLjQ4Wk0xNyAxNC41YzAgLjEtLjAzLjItLjEuMjlsLjcyLjdjLjI0LS4yNi4zOC0uNi4zOC0uOTl2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41SDYuMTJsMSAxaDkuMzhjLjI4IDAgLjUuMjIuNS41djlaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvbk9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9QZXJzb25PZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy4zIDQuMDFDMi41NyA0LjExIDIgNC43NCAyIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExLjhsMS44NSAxLjg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xMi4zIDEzbC43MS43VjE1SDd2LTEuNWMwLS4yOC4yMi0uNS41LS41aDQuOFptLTEtMUg3LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE1SDMuNWEuNS41IDAgMCAxLS41LS41di05YzAtLjI4LjIyLS41LjUtLjVoLjhsMy4yMiAzLjIyLS4wMi4yOGEyLjUgMi41IDAgMCAwIDIuNzggMi40OEwxMS4yOSAxMlpNOC41NyA2LjQ1bC43My43MmExLjUgMS41IDAgMCAxIDIuMDMgMi4wM2wuNzIuNzNhMi41IDIuNSAwIDAgMC0zLjQ4LTMuNDhaTTE3IDE0LjVjMCAuMS0uMDMuMi0uMS4yOWwuNzIuN2MuMjQtLjI2LjM4LS42LjM4LS45OXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVINi4xMmwxIDFoOS4zOGMuMjggMCAuNS4yMi41LjV2OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUGVyc29uUHVsc2VGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9QZXJzb25QdWxzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMCAxMGEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMiA0LjVDMiAzLjY3IDIuNjcgMyAzLjUgM2gxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY1Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEzYS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41SDZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWgyLjc2YTUuNDggNS40OCAwIDAgMC0xLjI0IDRIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di05Wm0xNyAxMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTUuNTYtMmEuNS41IDAgMCAwLS40Ny4zbC0uNTkgMS4zN0gxMmEuNS41IDAgMSAwIDAgMWguNzFhLjUuNSAwIDAgMCAuNDYtLjNsLjIyLS41LjY0IDEuOGEuNS41IDAgMCAwIC45My4wMmwuNjgtMS42OC4yLjRhLjUuNSAwIDAgMCAuNDUuMjZIMTdhLjUuNSAwIDAgMCAwLTFoLS40MUwxNiAxMy4xYS41LjUgMCAwIDAtLjkuMDVsLS41OCAxLjQ0LS42My0xLjc2YS41LjUgMCAwIDAtLjQ2LS4zM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUGVyc29uUHVsc2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uUHVsc2VSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDEwYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wLTFhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaTTIgNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2NS43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjQuNWEuNS41IDAgMCAwLS41LS41aC0xM2EuNS41IDAgMCAwLS41LjV2OWMwIC4yOC4yMi41LjUuNUg2di0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMi43NmMtLjI2LjMtLjQ4LjY0LS42NiAxSDcuNWEuNS41IDAgMCAwLS41LjVWMTRoMi4wMmE1LjU3IDUuNTcgMCAwIDAgMCAxSDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtOVptMTcgMTBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS01LjU2LTJhLjUuNSAwIDAgMC0uNDcuM2wtLjU5IDEuMzdIMTJhLjUuNSAwIDEgMCAwIDFoLjcxYS41LjUgMCAwIDAgLjQ2LS4zbC4yMi0uNS42NCAxLjhhLjUuNSAwIDAgMCAuOTMuMDJsLjY4LTEuNjguMi40YS41LjUgMCAwIDAgLjQ1LjI2SDE3YS41LjUgMCAwIDAgMC0xaC0uNDFMMTYgMTMuMWEuNS41IDAgMCAwLS45LjA1bC0uNTggMS40NC0uNjMtMS43NmEuNS41IDAgMCAwLS40Ni0uMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvblNwYXJrbGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9QZXJzb25TcGFya2xlRmlsbGVkJywgXCIxZW1cIiwgW1wibTE0Ljg4IDEuMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTE3IDEyLjkxYy4xNi4wNi4zMy4wOS41LjA5LjE3IDAgLjM0LS4wMi41LS4wOHYxLjU4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlDMiA0LjY3IDIuNjcgNCAzLjUgNGg2LjU5YTEuNDIgMS40MiAwIDAgMCAwIDFIMy41YS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41SDZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aDIuNWEuNS41IDAgMCAwIC41LS41di0xLjZaTTEwIDExYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9QZXJzb25TcGFya2xlUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1BlcnNvblNwYXJrbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE0Ljg4IDEuMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTE3IDEyLjkxYy4xNi4wNi4zMy4wOS41LjA5LjE3IDAgLjM0LS4wMi41LS4wOHYxLjU4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlDMiA0LjY3IDIuNjcgNCAzLjUgNGg2LjU5YTEuNDIgMS40MiAwIDAgMCAwIDFIMy41YS41LjUgMCAwIDAtLjUuNXY5YzAgLjI4LjIyLjUuNS41SDZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aDIuNWEuNS41IDAgMCAwIC41LS41di0xLjZaTTEyLjUgOC41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0tNCAwYTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWm00LjUgNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNVYxNWg2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvblNwYXJrbGVPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9QZXJzb25TcGFya2xlT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMyA0LjAxIDIuMTYgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN0wxNS4yOSAxNkgzLjVBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTljMC0uNzYuNTctMS40IDEuMy0xLjQ5Wm04IDcuOTktMS4wMi0xLjAyTDEwIDExYTIuNSAyLjUgMCAwIDEtMi40OC0yLjc4TDQuMjkgNUgzLjVhLjUuNSAwIDAgMC0uNS41djljMCAuMjguMjIuNS41LjVINnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDMuOFpNOC41NiA2LjQ1bDMuNDggMy40OGEyLjUgMi41IDAgMCAwLTMuNDgtMy40OFptOS4wNSA5LjA1LS43MS0uNzFhLjUuNSAwIDAgMCAuMDktLjI5di0xLjZhMS40NSAxLjQ1IDAgMCAwIDEgLjAydjEuNThjMCAuMzgtLjE0LjczLS4zOCAxWk02LjEyIDRsMSAxaDIuOTdhMS40MiAxLjQyIDAgMCAxIDAtMUg2LjEyWm05LjEtMS42NS0uMzQtMS4wN2EuNDIuNDIgMCAwIDAtLjggMGwtLjM1IDEuMDdhMi4yIDIuMiAwIDAgMS0xLjM4IDEuNGwtMS4wNy4zNWEuNDIuNDIgMCAwIDAgMCAuOGwxLjA3LjM0YTIuMiAyLjIgMCAwIDEgMS40IDEuNGwuMzUgMS4wOGEuNDIuNDIgMCAwIDAgLjggMGwuMzUtMS4wN2EyLjIgMi4yIDAgMCAxIDEuNC0xLjRsMS4wNy0uMzVhLjQyLjQyIDAgMCAwIDAtLjhoLS4wMmwtMS4wOC0uMzVhMi4yIDIuMiAwIDAgMS0xLjQtMS40Wm0zLjggNi42MS43Ni4yNWguMDJhLjMuMyAwIDAgMSAwIC41OGwtLjc3LjI1YTEuNTggMS41OCAwIDAgMC0xIDFsLS4yNC43NmEuMy4zIDAgMCAxLS41OCAwbC0uMjQtLjc3YTEuNTcgMS41NyAwIDAgMC0xLTFsLS43Ny0uMjVhLjMuMyAwIDAgMSAwLS41N2wuNzctLjI1YTEuNTggMS41OCAwIDAgMCAuOTgtMWwuMjUtLjc2YS4zLjMgMCAwIDEgLjU3IDBsLjI1Ljc3YTEuNTcgMS41NyAwIDAgMCAxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvblNwYXJrbGVPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uU3BhcmtsZU9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMy4zIDQuMDEgMi4xNiAyLjg1YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43TDE1LjI5IDE2SDMuNUExLjUgMS41IDAgMCAxIDIgMTQuNXYtOWMwLS43Ni41Ny0xLjQgMS4zLTEuNDlabTkgOC45OUg3LjVhLjUuNSAwIDAgMC0uNS41VjE1aDZ2LTEuM2wtLjctLjdabS0xLTEtMS4wMi0xLjAyTDEwIDExYTIuNSAyLjUgMCAwIDEtMi40OC0yLjc4TDQuMjkgNUgzLjVhLjUuNSAwIDAgMC0uNS41djljMCAuMjguMjIuNS41LjVINnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDMuOFpNOC41NiA2LjQ1bC43My43MmExLjUgMS41IDAgMCAxIDIuMDMgMi4wM2wuNzIuNzNhMi41IDIuNSAwIDAgMC0zLjQ4LTMuNDhabTkuMDUgOS4wNS0uNzEtLjcxYS41LjUgMCAwIDAgLjA5LS4yOXYtMS42YTEuNDUgMS40NSAwIDAgMCAxIC4wMnYxLjU4YzAgLjM4LS4xNC43My0uMzggMVpNNi4xMiA0bDEgMWgyLjk3YTEuNDIgMS40MiAwIDAgMSAwLTFINi4xMlptOS4xLTEuNjUtLjM0LTEuMDdhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy44IDYuNjEuNzYuMjVoLjAyYS4zLjMgMCAwIDEgMCAuNThsLS43Ny4yNWExLjU4IDEuNTggMCAwIDAtMSAxbC0uMjQuNzZhLjMuMyAwIDAgMS0uNTggMGwtLjI0LS43N2ExLjU3IDEuNTcgMCAwIDAtMS0xbC0uNzctLjI1YS4zLjMgMCAwIDEgMC0uNTdsLjc3LS4yNWExLjU4IDEuNTggMCAwIDAgLjk4LTFsLjI1LS43NmEuMy4zIDAgMCAxIC41NyAwbC4yNS43N2ExLjU3IDEuNTcgMCAwIDAgMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9QZXJzb25TdGFyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uU3RhckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yIDUuNUMyIDQuNjcgMi42NyA0IDMuNSA0aDEzYy44MyAwIDEuNS42NyAxLjUgMS41djQuNzZhNS41IDUuNSAwIDAgMC0xLS42NlY1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMTNhLjUuNSAwIDAgMC0uNS41djljMCAuMjguMjIuNS41LjVINnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDIuMWE1LjQ4IDUuNDggMCAwIDAtLjQgNEgzLjVBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlabTEwLjUgM2MwIC4zNC0uMDcuNjYtLjE5Ljk1LS44LjM1LTEuNS44OC0yLjA0IDEuNTRMMTAgMTFhMi41IDIuNSAwIDEgMSAyLjUtMi41Wm02LjUgNmE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuMDItMi42NGEuNS41IDAgMCAwLS45NiAwbC0uNDcgMS41M0gxMmMtLjQ4IDAtLjY5LjY1LS4zLjk1bDEuMjYuOTQtLjQ4IDEuNTNjLS4xNS40OS4zOC44OS43Ny41OWwxLjI1LS45NSAxLjI1Ljk1Yy40LjMuOTItLjEuNzctLjU5bC0uNDgtMS41MyAxLjI1LS45NGMuNC0uMy4yLS45NS0uMy0uOTVoLTEuNTRsLS40Ny0xLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9QZXJzb25TdGFyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1BlcnNvblN0YXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIgNS41QzIgNC42NyAyLjY3IDQgMy41IDRoMTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjUuNWEuNS41IDAgMCAwLS41LS41aC0xM2EuNS41IDAgMCAwLS41LjV2OWMwIC4yOC4yMi41LjUuNUg2di0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMi4xYy0uMTYuMzItLjMuNjUtLjQgMUg3LjVhLjUuNSAwIDAgMC0uNS41VjE1aDIuMDJjLjAzLjM0LjEuNjguMTkgMUgzLjVBMS41IDEuNSAwIDAgMSAyIDE0LjV2LTlabTEwLjUgM2MwIC4zNC0uMDcuNjYtLjE5Ljk1LS44LjM1LTEuNS44OC0yLjA0IDEuNTRMMTAgMTFhMi41IDIuNSAwIDEgMSAyLjUtMi41Wk0xMCAxMGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptOSA0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LjAyLTIuNjRhLjUuNSAwIDAgMC0uOTYgMGwtLjQ3IDEuNTNIMTJjLS40OCAwLS42OS42NS0uMy45NWwxLjI2Ljk0LS40OCAxLjUzYy0uMTUuNDkuMzguODkuNzcuNTlsMS4yNS0uOTUgMS4yNS45NWMuNC4zLjkyLS4xLjc3LS41OWwtLjQ4LTEuNTMgMS4yNS0uOTRjLjQtLjMuMi0uOTUtLjMtLjk1aC0xLjU0bC0uNDctMS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUGVyc29uU3Rhck9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1BlcnNvblN0YXJPZmZGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0wzLjMgNC4wMUMyLjU3IDQuMTEgMiA0Ljc0IDIgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoNS43YTUuNSA1LjUgMCAwIDEgLjQtNEg3LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE1SDMuNWEuNS41IDAgMCAxLS41LS41di05YzAtLjI4LjIyLS41LjUtLjVoLjhsMy4yMiAzLjIyLS4wMi4yOGEyLjUgMi41IDAgMCAwIDIuNzcgMi40OXYtLjAxbC43MS43MWE0LjUgNC41IDAgMCAwIDYuMzcgNi4yOS41LjUgMCAwIDAgLjUtLjgzbC0xNS0xNVpNMTYuNSAxNy4yYy0uMTMuMjctLjQ3LjQtLjc1LjJsLTEuMjUtLjk1LTEuMjUuOTVjLS40LjMtLjkyLS4xLS43Ny0uNTlsLjQ4LTEuNTMtMS4yNS0uOTRjLS40LS4zLS4yLS45NS4zLS45NWguNjhsMy44IDMuODFaTTguNTcgNi40NWwzLjI1IDMuMjVjLjE2LS4xLjMyLS4xNy41LS4yNUEyLjUgMi41IDAgMCAwIDEwIDZjLS41MyAwLTEuMDIuMTctMS40My40NVptMy45OSAzLjk5IDEuNDUgMS40NS4wMS0uMDNhLjUuNSAwIDAgMSAuOTYgMGwuNDUgMS40NS4wOC4wOEgxN2MuNDggMCAuNjguNjUuMy45NWwtLjQ4LjM2IDEuNzQgMS43NGE0LjUgNC41IDAgMCAwLTYtNlpNNi4xMiA0bDEgMWg5LjM4Yy4yOCAwIC41LjIyLjUuNXY0LjFjLjM2LjE4LjcuNCAxIC42NlY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDYuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BlcnNvblN0YXJPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGVyc29uU3Rhck9mZlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0wzLjMgNC4wMUMyLjU3IDQuMTEgMiA0Ljc0IDIgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoNS43Yy0uMDgtLjMyLS4xNS0uNjYtLjE4LTFIN3YtMS41YzAtLjI4LjIyLS41LjUtLjVoMS43Yy4xLS4zNS4yNC0uNjguNC0xSDcuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTVIMy41YS41LjUgMCAwIDEtLjUtLjV2LTljMC0uMjguMjItLjUuNS0uNWguOGwzLjIyIDMuMjItLjAyLjI4YTIuNSAyLjUgMCAwIDAgMi43NyAyLjQ5di0uMDFsLjcxLjcxYTQuNSA0LjUgMCAwIDAgNi4zNyA2LjI5LjUuNSAwIDAgMCAuNS0uODNsLTE1LTE1Wk0xNi41IDE3LjJjLS4xMy4yNy0uNDcuNC0uNzUuMmwtMS4yNS0uOTUtMS4yNS45NWMtLjQuMy0uOTItLjEtLjc3LS41OWwuNDgtMS41My0xLjI1LS45NGMtLjQtLjMtLjItLjk1LjMtLjk1aC42OGwzLjggMy44MVpNOC41NyA2LjQ1bC43My43M2ExLjUgMS41IDAgMCAxIDIuMDMgMi4wM2wuNDkuNDljLjE2LS4xLjMyLS4xNy41LS4yNUEyLjUgMi41IDAgMCAwIDEwIDZjLS41MyAwLTEuMDIuMTctMS40My40NVptMy45OSAzLjk5IDEuNDUgMS40NS4wMS0uMDNhLjUuNSAwIDAgMSAuOTYgMGwuNDUgMS40NS4wOC4wOEgxN2MuNDggMCAuNjguNjUuMy45NWwtLjQ4LjM2IDEuNzQgMS43NGE0LjUgNC41IDAgMCAwLTYtNlpNNi4xMiA0bDEgMWg5LjM4Yy4yOCAwIC41LjIyLjUuNXY0LjFjLjM2LjE4LjcuNCAxIC42NlY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDYuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1BsYXlQYXVzZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1BsYXlQYXVzZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMS41IDVjLS44MyAwLTEuNS42Ny0xLjUgMS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xWm01IDBjLS44MyAwLTEuNS42Ny0xLjUgMS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xWm0tMTIuNTcuNDVBMS4yNSAxLjI1IDAgMCAwIDIgNi41djdjMCAuOTggMS4wOCAxLjU4IDEuOTIgMS4wNmw1LjUtMy40NmMuNzctLjUuNzctMS42MiAwLTIuMTFsLTUuNS0zLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9QbGF5UGF1c2VSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUGxheVBhdXNlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCA2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTdabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2N2MwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtMVptMy41LjVjMC0uODMuNjctMS41IDEuNS0xLjVoMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTdabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2N2MwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtMVpNMyA2LjVjMC0uMi4yMi0uMzIuMzktLjJsNS41IDMuNTNjLjE1LjEuMTQuMzItLjAxLjQybC01LjUgMy40NkEuMjUuMjUgMCAwIDEgMyAxMy41di03Wm0uOTMtMS4wNUExLjI1IDEuMjUgMCAwIDAgMiA2LjV2N2MwIC45OCAxLjA4IDEuNTggMS45MiAxLjA2bDUuNS0zLjQ2Yy43Ny0uNS43Ny0xLjYyIDAtMi4xMWwtNS41LTMuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1Byb2hpYml0ZWRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9Qcm9oaWJpdGVkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEzIDYuNUEyLjUgMi41IDAgMCAwIDEwLjUgNGgtNkEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoNC43QTUuNSA1LjUgMCAwIDEgMTMgOS4yVjYuNVptNS0uM3Y0LjA2YTUuNDggNS40OCAwIDAgMC00LTEuMjRWNy45M2wyLjc3LTIuMzFhLjc1Ljc1IDAgMCAxIDEuMjMuNTdabS04IDguM2E0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1Byb2hpYml0ZWRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUHJvaGliaXRlZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGg3QTIuNSAyLjUgMCAwIDEgMTQgNi41djFsMi40LTEuOGExIDEgMCAwIDEgMS42Ljh2My43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjYuNWwtMyAyLjI1di4yN2MtLjM0LjAzLS42OC4xLTEgLjE5VjYuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDMy42NyA1IDMgNS42NyAzIDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNTJjLjAzLjM0LjEuNjguMTkgMUg0LjVBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdabTggOGE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMi40IDIuOCA0LjktNC45YTMuNSAzLjUgMCAwIDEtNC45IDQuOVptLS43LS43YTMuNSAzLjUgMCAwIDEgNC45LTQuOWwtNC45IDQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUmVjb3JkaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvUmVjb3JkaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEwLjUgNEEyLjUgMi41IDAgMCAxIDEzIDYuNXY3YTIuNSAyLjUgMCAwIDEtMiAyLjQ1VjEyLjVBMy41IDMuNSAwIDAgMCA3LjUgOWgtNGMtLjU0IDAtMS4wNS4xMi0xLjUuMzRWNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoNlptMy41IDguMDhWNy45M2wyLjc3LTIuMzFhLjc1Ljc1IDAgMCAxIDEuMjMuNTd2Ny42N2MwIC42NC0uNzUuOTktMS4yNC41N0wxNCAxMi4wOFpNMSAxMi41QTIuNSAyLjUgMCAwIDEgMy41IDEwaDRhMi41IDIuNSAwIDAgMSAyLjUgMi41djRBMi41IDIuNSAwIDAgMSA3LjUgMTloLTRBMi41IDIuNSAwIDAgMSAxIDE2LjV2LTRabTQuMDIuMDNhLjQ1LjQ1IDAgMCAwLS40NS0uMDMuNS41IDAgMCAwLS4xNS4xLjUuNSAwIDAgMC0uMTQuMzZ2My4wOGEuNS41IDAgMCAwIC4xNC4zNS40NS40NSAwIDAgMCAuNDguMTMuNTIuNTIgMCAwIDAgLjEzLS4wNmwyLjMtMS41N2MuMDYtLjA0LjEyLS4xLjE2LS4xOGEuNTQuNTQgMCAwIDAgMC0uNDkuNDkuNDkgMCAwIDAtLjE3LS4xOGwtMi4zLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZGVvUmVjb3JkaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1JlY29yZGluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXYyLjg0Yy4zMS0uMTUuNjUtLjI1IDEtLjNWNi41QzMgNS42NyAzLjY3IDUgNC41IDVoN2MuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMXYxaC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMWwyLjQgMS44YTEgMSAwIDAgMCAxLjYtLjh2LTdhMSAxIDAgMCAwLTEuNi0uOEwxNCA3LjV2LTFBMi41IDIuNSAwIDAgMCAxMS41IDRoLTdaTTE0IDguNzVsMy0yLjI1djdsLTMtMi4yNXYtMi41Wk0xIDEyLjVBMi41IDIuNSAwIDAgMSAzLjUgMTBoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NEEyLjUgMi41IDAgMCAxIDcuNSAxOWgtNEEyLjUgMi41IDAgMCAxIDEgMTYuNXYtNFptNC4wMi4wM2EuNDUuNDUgMCAwIDAtLjQ1LS4wMy41LjUgMCAwIDAtLjE1LjEuNS41IDAgMCAwLS4xNC4zNnYzLjA4YS41LjUgMCAwIDAgLjE0LjM1LjQ1LjQ1IDAgMCAwIC40OC4xMy41Mi41MiAwIDAgMCAuMTMtLjA2bDIuMy0xLjU3Yy4wNi0uMDQuMTItLjEuMTYtLjE4YS41NC41NCAwIDAgMCAwLS40OS40OS40OSAwIDAgMC0uMTctLjE4bC0yLjMtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9TZWN1cml0eUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1NlY3VyaXR5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTIgNWMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVabTEzIDUuNjZWNS4zM2wyLjI1LTEuMjdhLjUuNSAwIDAgMSAuNzUuNDR2N2EuNS41IDAgMCAxLS43NS40NEwxNSAxMC42NlptLTggMy4wOWgzdi41QTMuNzUgMy43NSAwIDAgMSA2LjI1IDE4SDMuNWEuNS41IDAgMCAxLS41LS41di0xLjc1YzAtLjI4LjIyLS41LjUtLjVoMi43NWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9TZWN1cml0eVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlkZW9TZWN1cml0eVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMiA1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydi45bDMuMjUtMS44NGEuNS41IDAgMCAxIC43NS40NHY3YS41LjUgMCAwIDEtLjc1LjQ0TDE0IDEwLjF2LjlhMiAyIDAgMCAxLTIgMmgtMnYxYTQgNCAwIDAgMS00IDRIMy41YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxM0g0YTIgMiAwIDAgMS0yLTJWNVptNiA4di41QTIuNSAyLjUgMCAwIDEgNS41IDE2SDR2MWgyYTMgMyAwIDAgMCAzLTN2LTFIOFptLTQtMWg4YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFabTEwLTQuOTZ2MS45MWwzIDEuN3YtNS4zbC0zIDEuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1N3aXRjaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWRlb1N3aXRjaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02LjUgMkEyLjUgMi41IDAgMCAwIDQgNC41djVBMi41IDIuNSAwIDAgMCA2LjUgMTJoNEEyLjUgMi41IDAgMCAwIDEzIDkuNXYtNUEyLjUgMi41IDAgMCAwIDEwLjUgMmgtNFptOS40IDcuOTJMMTQgOC44OVY1LjFsMS45LTEuMDNhLjc1Ljc1IDAgMCAxIDEuMS42NnY0LjUyYzAgLjU3LS42LjkzLTEuMS42NlpNMy42NiAxMS44OWMtLjMyLjEyLS42LjI2LS44NS40LS40MS4yNy0uODIuNjYtLjgyIDEuMjEgMCAuNTUuNC45NC44MiAxLjIuNDQuMjggMS4wNS41MSAxLjc1LjdhMjIuMDQgMjIuMDQgMCAwIDAgNS43Mi42bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTAuMjkgMTVIMTBjLTIuMDQgMC0zLjg3LS4yMi01LjE3LS41N2E1LjU1IDUuNTUgMCAwIDEtMS40Ny0uNTdDMyAxMy42NCAzIDEzLjUgMyAxMy41YzAgMCAuMDEtLjE0LjM2LS4zNi4yNy0uMTcuNjgtLjM0IDEuMjEtLjVhMy4wMSAzLjAxIDAgMCAxLS45LS43NVptOS40LjI5Yy4yNy0uMjYuNS0uNTcuNjUtLjkyLjYzLjEgMS4yLjIgMS43MS4zNC43LjE5IDEuMy40MiAxLjc1LjcuNDEuMjYuODIuNjUuODIgMS4yIDAgLjU1LS40Ljk0LS44MiAxLjJhNi41IDYuNSAwIDAgMS0xLjc1LjdsLS44NS4yYS40OS40OSAwIDAgMS0uNTgtLjVjMC0uMjQuMTgtLjQ0LjQyLS41LjI2LS4wNS41Mi0uMS43NS0uMTdhNS41NSA1LjU1IDAgMCAwIDEuNDctLjU3Yy4zNS0uMjIuMzYtLjM1LjM2LS4zNiAwIDAtLjAxLS4xNC0uMzYtLjM2LS4zMi0uMi0uODEtLjQtMS40Ny0uNTctLjYtLjE2LTEuMzEtLjMtMi4xLS40WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9Td2l0Y2hSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvU3dpdGNoUmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAyaDVBMi41IDIuNSAwIDAgMSAxNCA0LjV2LjYxbDEuOS0xLjAzYS43NS43NSAwIDAgMSAxLjEuNjZ2NC41MmMwIC41Ny0uNi45My0xLjEuNjZMMTQgOC44OXYuNjFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01QTIuNSAyLjUgMCAwIDEgNCA5LjV2LTVabTEwIDMuMjUgMiAxLjA5VjUuMTZsLTIgMS4xdjEuNDlaTTYuNSAzQzUuNjcgMyA1IDMuNjcgNSA0LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTVabS0yLjgzIDguODljLS4zMi4xMi0uNi4yNi0uODUuNC0uNDEuMjctLjgyLjY2LS44MiAxLjIxIDAgLjU1LjQuOTQuODIgMS4yLjQ0LjI4IDEuMDUuNTEgMS43NS43YTIyLjA0IDIyLjA0IDAgMCAwIDUuNzIuNmwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNy43TDEwLjI5IDE1SDEwYy0yLjA0IDAtMy44Ny0uMjItNS4xNy0uNTdhNS41NSA1LjU1IDAgMCAxLTEuNDctLjU3QzMgMTMuNjQgMyAxMy41IDMgMTMuNWMwIDAgLjAxLS4xNC4zNi0uMzYuMjctLjE3LjY4LS4zNCAxLjIxLS41YTMuMDEgMy4wMSAwIDAgMS0uOS0uNzVabTEwLjI1LjQxYy4zLS4yNC41NC0uNTQuNzItLjg4bC44LjE4Yy43LjE5IDEuMy40MiAxLjc0LjcuNDEuMjYuODIuNjUuODIgMS4yIDAgLjU1LS40Ljk0LS44MiAxLjJhNi41IDYuNSAwIDAgMS0xLjc1LjdsLS44NS4yYS40OS40OSAwIDAgMS0uNTgtLjVjMC0uMjQuMTgtLjQ0LjQyLS41LjI2LS4wNS41Mi0uMS43NS0uMTdhNS41NSA1LjU1IDAgMCAwIDEuNDctLjU3Yy4zNS0uMjIuMzYtLjM1LjM2LS4zNiAwIDAtLjAxLS4xNC0uMzYtLjM2LS4zMi0uMi0uODEtLjQtMS40Ny0uNTctLjM3LS4xLS44LS4yLTEuMjUtLjI3WlwiXSk7XG5leHBvcnQgY29uc3QgVmlkZW9TeW5jRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvU3luY0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyA2LjVBMi41IDIuNSAwIDAgMCAxMC41IDRoLTZBMi41IDIuNSAwIDAgMCAyIDYuNXYzLjc2YTUuNSA1LjUgMCAwIDEgOC44IDUuNzNBMi41IDIuNSAwIDAgMCAxMyAxMy41di03Wm0xIDEuNDN2NC4xNWwyLjc2IDIuMzVhLjc1Ljc1IDAgMCAwIDEuMjQtLjU3VjYuMmEuNzUuNzUgMCAwIDAtMS4yMy0uNTdMMTQgNy45M1pNMSAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEgMC0xaC40N2ExLjk5IDEuOTkgMCAwIDAtMi4zOC4zNC41LjUgMCAwIDEtLjcxLS43MUEzIDMgMCAwIDEgNyAxMi4xNVYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDQgMTYuODVWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk5IDEuOTkgMCAwIDAgMi4zOC0uMzQuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWRlb1N5bmNSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZGVvU3luY1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXYzLjc2Yy4zLS4yNi42NC0uNDggMS0uNjZWNi41QzMgNS42NyAzLjY3IDUgNC41IDVoN2MuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtLjUyYy0uMDMuMzQtLjEuNjgtLjE5IDFoLjcxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMWwyLjQgMS44YTEgMSAwIDAgMCAxLjYtLjh2LTdhMSAxIDAgMCAwLTEuNi0uOEwxNCA3LjV2LTFBMi41IDIuNSAwIDAgMCAxMS41IDRoLTdaTTE0IDguNzVsMy0yLjI1djdsLTMtMi4yNXYtMi41Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTkgMS45OSAwIDAgMC0yLjM4LjM0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSA3IDEyLjE1VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgNCAxNi44NVYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVINWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZXdEZXNrdG9wRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZXdEZXNrdG9wRmlsbGVkJywgXCIxZW1cIiwgW1wiTTEuOTYgNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDE2LjRjLjgzIDAgMS41LjY3IDEuNSAxLjV2OGMwIC44My0uNjcgMS41LTEuNSAxLjVIMTJ2Mi4wMWgxLjVhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDEgMSAwLTFIOFYxNEgzLjQ2YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtOFpNOSAxNHYyLjAxaDJWMTRIOVpNNCA1LjV2NmMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTZhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjVabTMgMHY2YzAgLjI4LjIyLjUuNS41aDhhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLS41LS41aC04YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZXdEZXNrdG9wUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaWV3RGVza3RvcFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNCA1LjVjMC0uMjguMjItLjUuNS0uNWgxYy4yNyAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di02Wk03LjUgNWEuNS41IDAgMCAwLS41LjV2NmMwIC4yOC4yMi41LjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LTZhLjUuNSAwIDAgMC0uNS0uNWgtOFptLTUuNTQtLjVjMC0uODMuNjctMS41IDEuNS0xLjVIMTYuNGMuODMgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMnYyLjAxaDEuNWEuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMSAxIDAtMUg4VjE0SDMuNDZhMS41IDEuNSAwIDAgMS0xLjUtMS41di04Wk05IDE0djIuMDFoMlYxNEg5Wk0zLjQ2IDRhLjUuNSAwIDAgMC0uNS41djhjMCAuMjguMjMuNS41LjVIMTYuNGEuNS41IDAgMCAwIC41LS41di04YS41LjUgMCAwIDAtLjUtLjVIMy40NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpZXdEZXNrdG9wTW9iaWxlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZpZXdEZXNrdG9wTW9iaWxlRmlsbGVkJywgXCIxZW1cIiwgW1wiTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY0Wm0yLjUgMGEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtNVptMCA0YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41aC01Wk05IDE1LjVjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWaWV3RGVza3RvcE1vYmlsZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlld0Rlc2t0b3BNb2JpbGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTcuNSA0YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC01Wk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTVaTTkuNSAxNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1pNNiA0YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBWaXJ0dWFsTmV0d29ya0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWaXJ0dWFsTmV0d29ya0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk00LjcgNi4xNmMuMzQuMjUuNC43Mi4xNCAxLjA1TDIuNyAxMGwyLjE0IDIuOGEuNzUuNzUgMCAxIDEtMS4xOC45bC0yLjUtMy4yNGEuNzUuNzUgMCAwIDEgMC0uOTJsMi41LTMuMjVhLjc1Ljc1IDAgMCAxIDEuMDUtLjEzWm0xMC40NiA2LjYzYS43NS43NSAwIDEgMCAxLjE4LjkybDIuNS0zLjI1Yy4yMS0uMjcuMjEtLjY1IDAtLjkybC0yLjUtMy4yNWEuNzUuNzUgMCAxIDAtMS4xOC45MkwxNy4zIDEwbC0yLjE0IDIuOFpNNiAxMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTUtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBWaXJ0dWFsTmV0d29ya1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlydHVhbE5ldHdvcmtSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQuODMgNi4xMmMuMi4xOC4yMy41LjA1LjdMMi4xNiAxMGwyLjcyIDMuMTdhLjUuNSAwIDEgMS0uNzYuNjZsLTMtMy41YS41LjUgMCAwIDEgMC0uNjZsMy0zLjVhLjUuNSAwIDAgMSAuNy0uMDVabTEwLjI5IDcuMDVhLjUuNSAwIDAgMCAuNzYuNjZsMy0zLjVhLjUuNSAwIDAgMCAwLS42NmwtMy0zLjVhLjUuNSAwIDEgMC0uNzYuNjZMMTcuODQgMTBsLTIuNzIgMy4xN1pNNiAxMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTUtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBWaXJ0dWFsTmV0d29ya1Rvb2xib3hGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlydHVhbE5ldHdvcmtUb29sYm94RmlsbGVkJywgXCIxZW1cIiwgW1wiTTQuODQgNy4yYS43NS43NSAwIDAgMC0xLjE4LS45bC0yLjUgMy4yNGMtLjIxLjI3LS4yMS42NSAwIC45MmwyLjUgMy4yNWEuNzUuNzUgMCAxIDAgMS4xOC0uOTJMMi43IDEwbDIuMTQtMi44Wm0xMy4xMiAzLjg0YTIuNSAyLjUgMCAwIDAtMS4xMy0xLjY2bC0xLjY3LTIuMTdhLjc1Ljc1IDAgMSAxIDEuMTgtLjkybDIuNSAzLjI1Yy4yMS4yNy4yMS42NSAwIC45MmwtLjUyLjY4YTIuNDkgMi40OSAwIDAgMC0uMzYtLjFaTTcgMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0yIDF2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDQuNWgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZpcnR1YWxOZXR3b3JrVG9vbGJveFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVmlydHVhbE5ldHdvcmtUb29sYm94UmVndWxhcicsIFwiMWVtXCIsIFtcIk00Ljg4IDYuODNhLjUuNSAwIDEgMC0uNzYtLjY2bC0zIDMuNWEuNS41IDAgMCAwIDAgLjY2bDMgMy41YS41LjUgMCAxIDAgLjc2LS42NkwyLjE2IDEwbDIuNzItMy4xN1ptMTMuMDggNC4yMWMtLjA2LS4zLS4xNi0uNTctLjMxLS44MmwuMi0uMjItMi43My0zLjE3YS41LjUgMCAwIDEgLjc2LS42NmwzIDMuNWEuNS41IDAgMCAxIDAgLjY2bC0uNjcuNzdhMi40OCAyLjQ4IDAgMCAwLS4yNS0uMDZaTTcgMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0yIDF2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDQuNWgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFZvaWNlbWFpbEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWb2ljZW1haWxGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAxMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTYgMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaTTIgNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2Wm03IDRhMiAyIDAgMCAwLS4yNy0xaDIuNTRBMiAyIDAgMSAwIDEzIDhIN2EyIDIgMCAxIDAgMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgVm9pY2VtYWlsUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWb2ljZW1haWxSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNzMgOUEyIDIgMCAxIDEgNyA4aDZhMiAyIDAgMSAxLTEuNzMgMUg4LjczWk02IDEwYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptNy0xYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRaTTMgNmExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY2WlwiXSk7XG5leHBvcnQgY29uc3QgVm9pY2VtYWlsQXJyb3dCYWNrRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZvaWNlbWFpbEFycm93QmFja0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDEwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptNy0yYTIgMiAwIDAgMSAxLjc0IDFjMS4yMy4wNiAyLjM3LjUyIDMuMjYgMS4yNlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjJhNS41IDUuNSAwIDAgMSAxLjgxLTUuNzZBMi4wMiAyLjAyIDAgMCAxIDExLjI3IDlIOC43M0EyIDIgMCAxIDEgNyA4aDZabTEuNSAxMWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZvaWNlbWFpbEFycm93QmFja1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVm9pY2VtYWlsQXJyb3dCYWNrUmVndWxhcicsIFwiMWVtXCIsIFtcIk04LjczIDlBMiAyIDAgMSAxIDcgOGg2YTIgMiAwIDAgMSAxLjc0IDEgNS42IDUuNiAwIDAgMC0xLjMuMSAxIDEgMCAwIDAtMS4zMy40NWMtLjQuMTktLjc2LjQyLTEuMS43QTIuMDIgMi4wMiAwIDAgMSAxMS4yNyA5SDguNzNaTTYgMTBhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0xMS00djMuNmMuMzYuMTguNy40IDEgLjY2VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuMmMtLjA4LS4zMi0uMTUtLjY2LS4xOC0xSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMVptLTIuNSAxM2E0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZvaWNlbWFpbEFycm93Rm9yd2FyZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWb2ljZW1haWxBcnJvd0ZvcndhcmRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNiAxMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTctMmEyIDIgMCAwIDEgMS43NCAxYzEuMjMuMDYgMi4zNy41MiAzLjI2IDEuMjZWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS4yYTUuNSA1LjUgMCAwIDEgMS44MS01Ljc2QTIuMDIgMi4wMiAwIDAgMSAxMS4yNyA5SDguNzNBMiAyIDAgMSAxIDcgOGg2Wm0tMyA2LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTUuNC0yLjZjLjItLjIuNS0uMi43IDBsMS43NSAxLjc1YS41LjUgMCAwIDEgMCAuN0wxNi4xIDE2LjFhLjUuNSAwIDAgMS0uNy0uN2wuOS0uOWgtMS41NWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAxIDIuNzUtMi43NWgxLjU0bC0uOS0uOWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBWb2ljZW1haWxBcnJvd0ZvcndhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZvaWNlbWFpbEFycm93Rm9yd2FyZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC43MyA5QTIgMiAwIDEgMSA3IDhoNmEyIDIgMCAwIDEgMS43NCAxIDUuNiA1LjYgMCAwIDAtMS4zLjEgMSAxIDAgMCAwLTEuMzMuNDVjLS40LjE5LS43Ni40Mi0xLjEuN0EyLjAyIDIuMDIgMCAwIDEgMTEuMjcgOUg4LjczWk02IDEwYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptMTEtNHYzLjZjLjM2LjE4LjcuNCAxIC42NlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg0YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDFabS03IDguNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNS40LTIuNmMuMi0uMi41LS4yLjcgMGwxLjc1IDEuNzVhLjUuNSAwIDAgMSAwIC43TDE2LjEgMTYuMWEuNS41IDAgMCAxLS43LS43bC45LS45aC0xLjU1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWEyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aDEuNTRsLS45LS45YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFZvaWNlbWFpbEFycm93U3VidHJhY3RGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVm9pY2VtYWlsQXJyb3dTdWJ0cmFjdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyA4YTIgMiAwIDAgMSAxLjc0IDFjMS4yMy4wNiAyLjM3LjUyIDMuMjYgMS4yNlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjJhNS41IDUuNSAwIDAgMSAxLjgxLTUuNzZBMi4wMiAyLjAyIDAgMCAxIDExLjI3IDlIOC43M0EyIDIgMCAxIDEgNyA4aDZabS03IDJhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xMyA0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS03IDBjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWb2ljZW1haWxBcnJvd1N1YnRyYWN0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWb2ljZW1haWxBcnJvd1N1YnRyYWN0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNyA5LjZWNmExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0LjI2YTUuNSA1LjUgMCAwIDAtMS0uNjZaTTkgMTBhMiAyIDAgMCAwLS4yNy0xaDIuNTRhMiAyIDAgMCAwLS4yNiAxLjI0Yy4zNC0uMjcuNy0uNSAxLjEtLjdhMSAxIDAgMCAxIDEuMzMtLjQ0IDUuNTMgNS41MyAwIDAgMSAxLjMtLjFBMiAyIDAgMCAwIDEzIDhIN2EyIDIgMCAxIDAgMiAyWm0tMiAxYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMTIgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNyAwYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgVm9pY2VtYWlsU2hpZWxkRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZvaWNlbWFpbFNoaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDEwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptNiAwYTEgMSAwIDAgMSAyLS4wOWMtLjU1LjQyLTEuMDkuNTktMS42NS41OS0uMDcgMC0uMTQgMC0uMi4wMkExIDEgMCAwIDEgMTIgMTBabTEtMmEyIDIgMCAwIDEgMS44MyAxLjE4Yy4yLS4xMi40My0uMTguNjYtLjE4aC4wMWMuMzcgMCAuNzIuMTUuOTguNDMuNS41NCAxIC44NSAxLjUyLjk5VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDcuMjNhNi45OCA2Ljk4IDAgMCAxLS4yMy0xLjZ2LTIuNTNjMC0uMy4xLS42LjI5LS44NEExLjk5IDEuOTkgMCAwIDEgMTEuMjcgOUg4LjczQTIgMiAwIDEgMSA3IDhoNlptMi41IDExYy0uMDQgMC0uMDggMC0uMTEtLjAyYTUuNjcgNS42NyAwIDAgMS0xLjc2LS45OGMtLjM1LS4zLS42NC0uNjMtLjg4LTFhNS4xNSA1LjE1IDAgMCAxLS43NS0yLjY0VjExLjg3YzAtLjIuMTYtLjM3LjM1LS4zNyAxLjA3IDAgMi4wMy0uNDYgMi45LTEuMzkuMDctLjA3LjE2LS4xMS4yNS0uMTFzLjE4LjA0LjI0LjExYTMuODkgMy44OSAwIDAgMCAyLjkgMS4zOWMuMiAwIC4zNi4xNy4zNi4zOHYyLjQ4YTUuMTUgNS4xNSAwIDAgMS0uNzUgMi42NGMtLjI0LjM3LS41My43LS44OCAxYTUuNjcgNS42NyAwIDAgMS0xLjg3IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBWb2ljZW1haWxTaGllbGRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZvaWNlbWFpbFNoaWVsZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC43MyA5QTIgMiAwIDEgMSA3IDhoNmEyIDIgMCAwIDEgMS44MyAxLjE4Yy0uMTEuMDctLjIyLjE1LS4zLjI1LS4xOC4xOS0uMzYuMzUtLjUzLjQ4YTEgMSAwIDEgMC0xLjg2LjZjLS4zNi4wNi0uNjUuMjYtLjg1LjUyQTEuOTkgMS45OSAwIDAgMSAxMS4yNyA5SDguNzNaTTYgMTBhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0xMS00djMuOWMuMzMuMjYuNjYuNDMgMSAuNTJWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNy4yM2E2LjY1IDYuNjUgMCAwIDEtLjE4LTFINGExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxWm0tMS41IDEzYy0uMDQgMC0uMDggMC0uMTEtLjAyYTUuNjcgNS42NyAwIDAgMS0xLjc2LS45OGMtLjM1LS4zLS42NC0uNjMtLjg4LTFhNS4xNSA1LjE1IDAgMCAxLS43NS0yLjY0VjExLjg3YzAtLjIuMTYtLjM3LjM1LS4zNyAxLjA3IDAgMi4wMy0uNDYgMi45LTEuMzkuMDctLjA3LjE2LS4xMS4yNS0uMTFzLjE4LjA0LjI0LjExYTMuODkgMy44OSAwIDAgMCAyLjkgMS4zOWMuMiAwIC4zNi4xNy4zNi4zOHYyLjQ4YTUuMTUgNS4xNSAwIDAgMS0uNzUgMi42NGMtLjI0LjM3LS41My43LS44OCAxYTUuNjcgNS42NyAwIDAgMS0xLjg3IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBWb2ljZW1haWxTdWJ0cmFjdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdWb2ljZW1haWxTdWJ0cmFjdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMyA4YTIgMiAwIDAgMSAxLjc0IDFjMS4yMy4wNiAyLjM3LjUyIDMuMjYgMS4yNlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjJhNS41IDUuNSAwIDAgMSAxLjgxLTUuNzZBMi4wMiAyLjAyIDAgMCAxIDExLjI3IDlIOC43M0EyIDIgMCAxIDEgNyA4aDZabS03IDJhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xMyA0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS03IDBjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWb2ljZW1haWxTdWJ0cmFjdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVm9pY2VtYWlsU3VidHJhY3RSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTE3IDkuNlY2YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjAyYy4wMy4zNC4xLjY4LjE5IDFINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjQuMjZhNS41IDUuNSAwIDAgMC0xLS42NlpNOSAxMGEyIDIgMCAwIDAtLjI3LTFoMi41NGEyIDIgMCAwIDAtLjI2IDEuMjRjLjM0LS4yNy43LS41IDEuMS0uN2ExIDEgMCAwIDEgMS4zMy0uNDQgNS41MyA1LjUzIDAgMCAxIDEuMy0uMUEyIDIgMCAwIDAgMTMgOEg3YTIgMiAwIDEgMCAyIDJabS0yIDFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0xMiAzLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS03IDBjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBWb3RlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZvdGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTMuNSA5aC0xLjI3bDEuNzMtM2ExIDEgMCAwIDAtLjM2LTEuMzdMMTEgMy4xM2ExIDEgMCAwIDAtMS4zNy4zN2wtMi41IDQuMzNBMSAxIDAgMCAwIDcuMjYgOUg2LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMVptLTMtNSAyLjYgMS41TDExLjA4IDlIOS4xNkw4IDguMzMgMTAuNSA0Wm00LjA0IDMtLjU4IDFoLjU0bDIuMjUgM0gzLjI1TDUuNSA4aC40YTEgMSAwIDAgMSAuMDgtLjE3TDYuNDYgN0g1LjVhMSAxIDAgMCAwLS44LjRsLTIuNSAzLjMzYTEgMSAwIDAgMC0uMi42VjE2YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXYtNC42N2ExIDEgMCAwIDAtLjItLjZMMTUuMyA3LjRhMSAxIDAgMCAwLS43Ni0uNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFZvdGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ZvdGVSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEyLjIzIDloMS4yN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMWguNzZhMSAxIDAgMCAxLS4xMy0xLjE3bDIuNS00LjMzQTEgMSAwIDAgMSAxMSAzLjEzbDIuNiAxLjVBMSAxIDAgMCAxIDEzLjk2IDZsLTEuNzMgM1ptLjg3LTMuNUwxMC41IDQgOCA4LjMzIDkuMTYgOWgxLjkybDIuMDItMy41Wm0uODYgMi41LjU4LTFhMSAxIDAgMCAxIC43Ni40bDIuNSAzLjMzYTEgMSAwIDAgMSAuMi42VjE2YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xdi00LjY3YTEgMSAwIDAgMSAuMi0uNkw0LjcgNy40YTEgMSAwIDAgMSAuOC0uNGguOTZsLS40OC44M2ExIDEgMCAwIDAtLjA3LjE3SDUuNWwtMi4yNSAzaDEzLjVMMTQuNSA4aC0uNTRaTTMgMTZoMTR2LTRIM3Y0WlwiXSk7XG5leHBvcnQgY29uc3QgV2Fsa2llVGFsa2llRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dhbGtpZVRhbGtpZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk04IDd2Mmg0VjdIOFpcIiwgXCJNNy41IDFjLjI4IDAgLjUuMjIuNS41VjNoNi41Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuMS0uMDMuMi0uMDguMjhMMTQgMTQuNjV2MS44NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA2IDE2LjV2LTEuODVsLTEuOTItMi44N0EuNS41IDAgMCAxIDQgMTEuNXYtN0M0IDMuNjcgNC42NyAzIDUuNSAzSDdWMS41YzAtLjI4LjIyLS41LjUtLjVaTTcgNi41djNjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41Wm0xIDZjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBXYWxraWVUYWxraWVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dhbGtpZVRhbGtpZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNy41IDZhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTVaTTggOVY3aDR2Mkg4WlwiLCBcIk04IDEyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaXCIsIFwiTTggMS41YS41LjUgMCAwIDAtMSAwVjNINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2N2MwIC4xLjAzLjIuMDguMjhMNiAxNC42NXYxLjg1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xLjg1bDEuOTItMi44N2EuNS41IDAgMCAwIC4wOC0uMjh2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41SDhWMS41Wk01LjUgNGg5Yy4yOCAwIC41LjIyLjUuNXY2Ljg1bC0xLjkyIDIuODdhLjUuNSAwIDAgMC0uMDguMjh2MmEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAwLS4wOC0uMjhMNSAxMS4zNVY0LjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhbGxldEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYWxsZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYxMEEyLjUgMi41IDAgMCAwIDUuNSAxN0gxNWEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTEtMS43M1Y1YTIgMiAwIDAgMC0yLTJINC41Wk0xNSA1SDQuNWEuNS41IDAgMCAxIDAtMUgxNGExIDEgMCAwIDEgMSAxWm0tMS41IDZoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhbGxldFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2FsbGV0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMy41IDExYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNIMTRhMiAyIDAgMCAxIDIgMnYuMjdjLjYuMzQgMSAuOTkgMSAxLjczdjhhMiAyIDAgMCAxLTIgMkg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTEwWk0xNCA0SDQuNWEuNS41IDAgMCAwIDAgMUgxNWExIDEgMCAwIDAtMS0xWk00LjUgNmExLjUgMS41IDAgMCAxLS41LS4wOXY4LjU5YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1YTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhbGxldENyZWRpdENhcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2FsbGV0Q3JlZGl0Q2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi4xOCAxLjM0YTEuNSAxLjUgMCAwIDAtMi4xOC4zTDYuOTYgNmgxLjIybDIuNjQtMy43OWEuNS41IDAgMCAxIC43My0uMWwuOC42NkwxMC4xMiA2aDEuMjJsMS44LTIuNiAxLjY4IDEuMzdjLjIuMTYuMjQuNDYuMS42N2wtLjQuNTZoMS4yMmExLjUgMS41IDAgMCAwLS4zLTIuMDFsLTMuMjYtMi42NVpNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY4QTIuNSAyLjUgMCAwIDAgNS41IDE3SDE1YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDQuNWEuNS41IDAgMCAxIDAtMWgxLjQ3bC43LTFINC41Wm05IDdoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhbGxldENyZWRpdENhcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dhbGxldENyZWRpdENhcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDEuNjRhMS41IDEuNSAwIDAgMSAyLjE4LS4zbDMuMjcgMi42NWMuNi41LjczIDEuMzcuMyAyaC0xLjIzbC40LS41NWEuNS41IDAgMCAwLS4xLS42N0wxMy4xMyAzLjQgMTEuMzMgNmgtMS4ybDIuMjItMy4yMy0uOC0uNjZhLjUuNSAwIDAgMC0uNzMuMUw4LjE4IDZINi45NkwxMCAxLjY0Wk0xMy41IDEyYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabS05LTdoMi4xN2wtLjcgMUg0LjVhLjUuNSAwIDAgMCAwIDFIMTVhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di04QzMgNS42NyAzLjY3IDUgNC41IDVaTTQgMTQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNWExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAwLTEtMUg0LjVhMS41IDEuNSAwIDAgMS0uNS0uMDl2Ni41OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhbGxwYXBlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYWxscGFwZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoMi4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2Mi4yNWEuNzUuNzUgMCAwIDEtMS41IDBWNlptOC0yLjI1YzAtLjQxLjM0LS43NS43NS0uNzVIMTRhMyAzIDAgMCAxIDMgM3YyLjI1YS43NS43NSAwIDAgMS0xLjUgMFY2YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMy43NSAxMWMuNDEgMCAuNzUuMzQuNzUuNzVWMTRjMCAuMTMuMDIuMjYuMDUuMzlsMy42OC0zLjY4YTIuNSAyLjUgMCAwIDEgMy41NCAwbDMuNjggMy42OGMuMDMtLjEzLjA1LS4yNi4wNS0uMzl2LTIuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwVjE0YTMgMyAwIDAgMS0zIDNoLTIuMjVhLjc1Ljc1IDAgMCAxIDAtMS41SDE0Yy4xMyAwIC4yNi0uMDIuMzktLjA1bC0zLjY4LTMuNjhhMSAxIDAgMCAwLTEuNDIgMGwtMy42OCAzLjY4Yy4xMy4wMy4yNi4wNS4zOS4wNWgyLjI1YS43NS43NSAwIDAgMSAwIDEuNUg2YTMgMyAwIDAgMS0zLTN2LTIuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTQgNy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgV2FsbHBhcGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYWxscGFwZXJSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDIuNWEuNS41IDAgMCAxIDAgMUg2YTIgMiAwIDAgMC0yIDJ2Mi41YS41LjUgMCAwIDEtMSAwVjZabTgtMi41YzAtLjI4LjIyLS41LjUtLjVIMTRhMyAzIDAgMCAxIDMgM3YyLjVhLjUuNSAwIDAgMS0xIDBWNmEyIDIgMCAwIDAtMi0yaC0yLjVhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDExYy4yOCAwIC41LjIyLjUuNVYxNGMwIC4zNy4xLjcyLjI4IDEuMDJsNC40OC00LjQ5Yy42OS0uNjggMS44LS42OCAyLjQ4IDBsNC40OCA0LjQ5QTIgMiAwIDAgMCAxNiAxNHYtMi41YS41LjUgMCAwIDEgMSAwVjE0YTMgMyAwIDAgMS0zIDNoLTIuNWEuNS41IDAgMCAxIDAtMUgxNGEyIDIgMCAwIDAgMS4wMi0uMjhsLTQuNDktNC40OGEuNzUuNzUgMCAwIDAtMS4wNiAwbC00LjQ5IDQuNDhBMiAyIDAgMCAwIDYgMTZoMi41YS41LjUgMCAwIDEgMCAxSDZhMyAzIDAgMCAxLTMtM3YtMi41YzAtLjI4LjIyLS41LjUtLjVabTktNGEuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVptLTEuNS41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgV2FuZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYW5kRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE3IDIuNWEuNS41IDAgMCAwLTEgMFYzaC0uNWEuNS41IDAgMCAwIDAgMWguNXYuNWEuNS41IDAgMCAwIDEgMFY0aC41YS41LjUgMCAwIDAgMC0xSDE3di0uNVptLTEwIDNhLjUuNSAwIDAgMS0uNS41SDZ2LjVhLjUuNSAwIDAgMS0xIDBWNmgtLjVhLjUuNSAwIDAgMSAwLTFINXYtLjVhLjUuNSAwIDAgMSAxIDBWNWguNWMuMjggMCAuNS4yMi41LjVabTkgOWEuNS41IDAgMCAxLS41LjVIMTV2LjVhLjUuNSAwIDAgMS0xIDBWMTVoLS41YS41LjUgMCAwIDEgMC0xaC41di0uNWEuNS41IDAgMCAxIDEgMHYuNWguNWMuMjggMCAuNS4yMi41LjVabS0yLjU3LTcuOTNhMS45MSAxLjkxIDAgMCAwLTIuNyAwbC0uNDguNDcgMi43IDIuNzEuNDgtLjQ4Yy43NS0uNzQuNzUtMS45NiAwLTIuN1ptLTEuMTggMy44OS0yLjctMi43MS02Ljk5IDYuOThhMS45MSAxLjkxIDAgMSAwIDIuNyAyLjdsNi45OS02Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgV2FuZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2FuZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuNSAyYy4yOCAwIC41LjIyLjUuNVYzaC41YS41LjUgMCAwIDEgMCAxSDE3di41YS41LjUgMCAwIDEtMSAwVjRoLS41YS41LjUgMCAxIDEgMC0xaC41di0uNWMwLS4yOC4yMi0uNS41LS41Wm0tMTAgNGEuNS41IDAgMCAwIDAtMUg2di0uNWEuNS41IDAgMCAwLTEgMFY1aC0uNWEuNS41IDAgMCAwIDAgMUg1di41YS41LjUgMCAwIDAgMSAwVjZoLjVabTkgOWEuNS41IDAgMCAwIDAtMUgxNXYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLS41YS41LjUgMCAxIDAgMCAxaC41di41YS41LjUgMCAxIDAgMSAwVjE1aC41Wm0tMi4wNy04LjQzYTEuOTEgMS45MSAwIDAgMC0yLjcgMGwtOC4xNyA4LjE2YTEuOTEgMS45MSAwIDEgMCAyLjcgMi43bDguMTctOC4xNmMuNzUtLjc0Ljc1LTEuOTYgMC0yLjdabS0yIC43YS45MS45MSAwIDAgMSAxLjMgMS4zbC0uNDguNDctMS4zLTEuMjkuNDgtLjQ4Wm0tMS4xOCAxLjE5IDEuMyAxLjI5LTYuOTkgNi45OGEuOTEuOTEgMCAwIDEtMS4zLTEuMjlsNi45OS02Ljk4WlwiXSk7XG5leHBvcnQgY29uc3QgV2FybmluZ0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXJuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTguNjggMi43OWExLjUgMS41IDAgMCAxIDIuNjQgMGw2LjUgMTJBMS41IDEuNSAwIDAgMSAxNi41IDE3aC0xM2ExLjUgMS41IDAgMCAxLTEuMzItMi4yMWw2LjUtMTJaTTEwLjUgNy41YS41LjUgMCAwIDAtMSAwdjRhLjUuNSAwIDAgMCAxIDB2LTRabS4yNSA2LjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXJuaW5nUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjU2IDMuMjZhLjUuNSAwIDAgMSAuODggMGw2LjUgMTJhLjUuNSAwIDAgMS0uNDQuNzRoLTEzYS41LjUgMCAwIDEtLjQ0LS43NGw2LjUtMTJabTEuNzYtLjQ3YTEuNSAxLjUgMCAwIDAtMi42NCAwbC02LjUgMTJBMS41IDEuNSAwIDAgMCAzLjUgMTdoMTNhMS41IDEuNSAwIDAgMCAxLjMyLTIuMjFsLTYuNS0xMlpNMTAuNSA3LjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMSAwIDEgMHYtNFptLjI1IDYuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhcm5pbmdMb2NrT3BlbkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXJuaW5nTG9ja09wZW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMzIgMS43OWExLjUgMS41IDAgMCAwLTIuNjQgMGwtNi41IDEyQTEuNSAxLjUgMCAwIDAgMi41IDE2SDExdi0yYzAtMS4xLjktMiAyLTJoMmMwLS40LjA4LS44LjIzLTEuMTVsLTQuOTEtOS4wNlpNOS41IDYuNXY0YS41LjUgMCAwIDEtMSAwdi00YS41LjUgMCAwIDEgMSAwWm0uMjUgNi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm02LjI1LS44VjEzaC0zYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0xdi0xYTEgMSAwIDEgMSAyIDAgLjUuNSAwIDEgMCAxIDAgMiAyIDAgMCAwLTQtLjA1Wm0uMjUgNC4wNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgV2FybmluZ0xvY2tPcGVuUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXJuaW5nTG9ja09wZW5SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTguNTYgMi4yNmEuNS41IDAgMCAxIC44OCAwTDE0LjcxIDEySDE1YzAtLjQuMDgtLjguMjMtMS4xNWwtNC45MS05LjA2YTEuNSAxLjUgMCAwIDAtMi42NCAwbC02LjUgMTJBMS41IDEuNSAwIDAgMCAyLjUgMTZIMTF2LTFIMi41YS41LjUgMCAwIDEtLjQ0LS43NGw2LjUtMTJaTTkuNSA2LjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMSAwIDEgMHYtNFptLjI1IDYuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTYgMTJ2MWgtM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtMXYtMWExIDEgMCAxIDEgMiAwIC41LjUgMCAwIDAgMSAwIDIgMiAwIDEgMC00IDBabS0uNSA0Ljc1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhcm5pbmdTaGllbGRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2FybmluZ1NoaWVsZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk03LjY5IDEuODUgMS4xMyAxMy43OEExLjUgMS41IDAgMCAwIDIuNDQgMTZoNy45NGE3LjI3IDcuMjcgMCAwIDEtLjM4LTIuMTJ2LTIuNzljMC0uNzUuNTktMS40MiAxLjQtMS40Mi45IDAgMS43My0uMzUgMi41Ni0xLjJMMTAuMyAxLjg1YTEuNSAxLjUgMCAwIDAtMi42MiAwWk05IDUuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1djRhLjc1Ljc1IDAgMCAxLTEuNSAwdi00YzAtLjQxLjM0LS43NS43NS0uNzVabS43NSA3YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaXCIsIFwiTTE3IDEwLjM1YTQuNjMgNC42MyAwIDAgMS0xLS41OWMtLjI0LS4xOC0uNDgtLjQtLjcyLS42NGEuMzkuMzkgMCAwIDAtLjU2IDAgNC41IDQuNSAwIDAgMS0zLjMyIDEuNTUuNC40IDAgMCAwLS40LjQxdjIuNzdjLjAzLjguMTggMS41MS40NCAyLjE1QTQuODEgNC44MSAwIDAgMCAxMyAxOGMuNTIuNCAxLjE1LjczIDEuODcuOTguMDkuMDMuMTcuMDMuMjYgMCAyLjU2LS44OSAzLjg3LTIuNzEgMy44Ny01LjRWMTFhLjQuNCAwIDAgMC0uNC0uMzMgNC4yMiA0LjIyIDAgMCAxLTEuNi0uMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBXYXJuaW5nU2hpZWxkUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXJuaW5nU2hpZWxkUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMC4zMSAxLjg1YTEuNSAxLjUgMCAwIDAtMi42MiAwTDEuMTMgMTMuNzhBMS41IDEuNSAwIDAgMCAyLjQ0IDE2aDcuOTRhNi43IDYuNyAwIDAgMS0uMjYtMUgyLjQ0YS41LjUgMCAwIDEtLjQ0LS43NEw4LjU2IDIuMzNhLjUuNSAwIDAgMSAuODggMGwzLjczIDYuOGMuMjctLjE4LjUzLS40Ljc5LS42NkwxMC4zIDEuODVaXCIsIFwiTTkgNmMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLTEgMHYtNGMwLS4yOC4yMi0uNS41LS41WlwiLCBcIk05IDEzLjVBLjc1Ljc1IDAgMSAwIDkgMTJhLjc1Ljc1IDAgMCAwIDAgMS41WlwiLCBcIk0xNiA5Ljc2YTQuNjMgNC42MyAwIDAgMCAyIC44NmMuMi4wMy40LjA1LjYuMDUuMiAwIC4zNS4xNC40LjMzdjIuNThjMCAyLjY5LTEuMzEgNC41MS0zLjg3IDUuNGEuMzkuMzkgMCAwIDEtLjI2IDBBNi42NiA2LjY2IDAgMCAxIDEzIDE4YTQuOTYgNC45NiAwIDAgMS0xLjU2LTIgNi4wNSA2LjA1IDAgMCAxLS40NC0yLjE1di0yLjc3YS40LjQgMCAwIDEgLjQtLjQxIDQuNSA0LjUgMCAwIDAgMy4zMi0xLjU1LjM5LjM5IDAgMCAxIC41NiAwYy4yNC4yNS40OC40Ni43Mi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhc2hlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXNoZXJGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNy40OCAxMC42N2MtLjE3LjA4LS4zMy4xNy0uNDguMjZhMyAzIDAgMCAxIDUuODUtLjg4Yy0uNC40LTEuMjcuODMtMi43My40NmEzLjk2IDMuOTYgMCAwIDAtMi42NC4xNlpNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptNCA0YTQgNCAwIDAgMSAzLjkyIDMuMjFsLjAzLjAxLS4wMi4wNEE0LjAxIDQuMDEgMCAwIDEgMTAgMTVhNCA0IDAgMCAxIDAtOFpNNy41IDUuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0zLS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBXYXNoZXJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dhc2hlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgN2E0IDQgMCAwIDEgMy45MiAzLjIxbC4wMy4wMS0uMDIuMDRBNC4wMSA0LjAxIDAgMCAxIDEwIDE1YTQgNCAwIDAgMSAwLThabS0yLjUyIDMuNjdjLjY3LS4zIDEuNTQtLjQzIDIuNjQtLjE2IDEuNDYuMzcgMi4zMy0uMDYgMi43My0uNDZhMyAzIDAgMCAwLTUuODUuODhjLjE1LS4xLjMtLjE4LjQ4LS4yNlpNNy41IDUuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0zLS41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBXYXRlckZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXRlckZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNSAzLjVjLjMxIDAgLjYuMi43LjQ5LjQzIDEuMTMgMS4yIDEuNTEgMS41NSAxLjUxYS43NS43NSAwIDAgMSAwIDEuNUEzIDMgMCAwIDEgMTUgNS43NiAzLjIyIDMuMjIgMCAwIDEgMTIuNSA3Yy0uOTUgMC0xLjg1LS40NC0yLjUtMS4yNUEzLjIyIDMuMjIgMCAwIDEgNy41IDdDNi41NSA3IDUuNjYgNi41NiA1IDUuNzZBMyAzIDAgMCAxIDIuNzUgN2EuNzUuNzUgMCAxIDEgMC0xLjVjLjM0IDAgMS4xMi0uMzcgMS41NS0xLjUxYS43NS43NSAwIDAgMSAxLjQgMEM2LjExIDUuMDggNi44NyA1LjUgNy41IDUuNWMuNjMgMCAxLjM5LS40MiAxLjgtMS41MWEuNzUuNzUgMCAwIDEgMS40IDBjLjQxIDEuMDkgMS4xNyAxLjUxIDEuOCAxLjUxLjYzIDAgMS4zOS0uNDIgMS44LTEuNTEuMS0uMy4zOS0uNDkuNy0uNDlabTAgNWMuMzEgMCAuNi4yLjcuNDkuNDMgMS4xMyAxLjIgMS41MSAxLjU1IDEuNTFhLjc1Ljc1IDAgMCAxIDAgMS41QTMgMyAwIDAgMSAxNSAxMC43NiAzLjIyIDMuMjIgMCAwIDEgMTIuNSAxMmMtLjk1IDAtMS44NS0uNDQtMi41LTEuMjVBMy4yMiAzLjIyIDAgMCAxIDcuNSAxMmMtLjk1IDAtMS44NC0uNDQtMi41LTEuMjRBMyAzIDAgMCAxIDIuNzUgMTJhLjc1Ljc1IDAgMCAxIDAtMS41Yy4zNCAwIDEuMTItLjM3IDEuNTUtMS41MWEuNzUuNzUgMCAwIDEgMS40IDBjLjQxIDEuMDkgMS4xNyAxLjUxIDEuOCAxLjUxLjYzIDAgMS4zOS0uNDIgMS44LTEuNTFhLjc1Ljc1IDAgMCAxIDEuNCAwYy40MSAxLjA5IDEuMTcgMS41MSAxLjggMS41MS42MyAwIDEuMzktLjQyIDEuOC0xLjUxLjEtLjMuMzktLjQ5LjctLjQ5Wm0uNyA1LjQ5YS43NS43NSAwIDAgMC0xLjQgMGMtLjQxIDEuMDktMS4xNyAxLjUxLTEuOCAxLjUxLS42MyAwLTEuMzktLjQyLTEuOC0xLjUxYS43NS43NSAwIDAgMC0xLjQgMGMtLjQxIDEuMDktMS4xNyAxLjUxLTEuOCAxLjUxLS42MyAwLTEuMzktLjQyLTEuOC0xLjUxYS43NS43NSAwIDAgMC0xLjQgMGMtLjQzIDEuMTQtMS4yIDEuNTEtMS41NSAxLjUxYS43NS43NSAwIDEgMCAwIDEuNUEzIDMgMCAwIDAgNSAxNS43NmMuNjYuOCAxLjU1IDEuMjQgMi41IDEuMjRzMS44NS0uNDQgMi41LTEuMjVjLjY1LjggMS41NSAxLjI1IDIuNSAxLjI1czEuODQtLjQ0IDIuNS0xLjI0QTMgMyAwIDAgMCAxNy4yNSAxN2EuNzUuNzUgMCAwIDAgMC0xLjVjLS4zNCAwLTEuMTItLjM4LTEuNTUtMS41MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdhdGVyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXYXRlclJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTUgNGMuMiAwIC40LjEzLjQ3LjMyQzE1LjkgNS41IDE2Ljc0IDYgMTcuNSA2YS41LjUgMCAwIDEgMCAxYy0uOTYgMC0xLjg4LS41LTIuNS0xLjQxQTMuMDMgMy4wMyAwIDAgMSAxMi41IDdjLS45NiAwLTEuODgtLjUtMi41LTEuNDFBMy4wMyAzLjAzIDAgMCAxIDcuNSA3QzYuNTQgNyA1LjYyIDYuNSA1IDUuNTlBMy4wMyAzLjAzIDAgMCAxIDIuNSA3YS41LjUgMCAxIDEgMC0xYy43NiAwIDEuNi0uNSAyLjAzLTEuNjdhLjUuNSAwIDAgMSAuOTQgMEM1LjkgNS41IDYuNzQgNiA3LjUgNmMuNzYgMCAxLjYtLjUgMi4wMy0xLjY4YS41LjUgMCAwIDEgLjk0IDBDMTAuOSA1LjUgMTEuNzQgNiAxMi41IDZjLjc2IDAgMS42LS41IDIuMDMtMS42OEEuNS41IDAgMCAxIDE1IDRabTAgNWMuMiAwIC40LjEzLjQ3LjMyQzE1LjkgMTAuNSAxNi43NCAxMSAxNy41IDExYS41LjUgMCAwIDEgMCAxYy0uOTYgMC0xLjg4LS41LTIuNS0xLjQxQTMuMDMgMy4wMyAwIDAgMSAxMi41IDEyYy0uOTYgMC0xLjg4LS41LTIuNS0xLjQxQTMuMDMgMy4wMyAwIDAgMSA3LjUgMTJjLS45NiAwLTEuODgtLjUtMi41LTEuNDFBMy4wMyAzLjAzIDAgMCAxIDIuNSAxMmEuNS41IDAgMCAxIDAtMWMuNzYgMCAxLjYtLjUgMi4wMy0xLjY3YS41LjUgMCAwIDEgLjk0IDBDNS45IDEwLjUgNi43NCAxMSA3LjUgMTFjLjc2IDAgMS42LS41IDIuMDMtMS42OGEuNS41IDAgMCAxIC45NCAwQzEwLjkgMTAuNSAxMS43NCAxMSAxMi41IDExYy43NiAwIDEuNi0uNSAyLjAzLTEuNjhBLjUuNSAwIDAgMSAxNSA5Wm0uNDcgNS4zMmEuNS41IDAgMCAwLS45NCAwQzE0LjEgMTUuNSAxMy4yNiAxNiAxMi41IDE2Yy0uNzYgMC0xLjYtLjUtMi4wMy0xLjY4YS41LjUgMCAwIDAtLjk0IDBDOS4xIDE1LjUgOC4yNiAxNiA3LjUgMTZjLS43NiAwLTEuNi0uNS0yLjAzLTEuNjhhLjUuNSAwIDAgMC0uOTQgMEM0LjEgMTUuNSAzLjI2IDE2IDIuNSAxNmEuNS41IDAgMSAwIDAgMWMuOTYgMCAxLjg4LS41IDIuNS0xLjQxQTMuMDMgMy4wMyAwIDAgMCA3LjUgMTdjLjk2IDAgMS44OC0uNSAyLjUtMS40MUEzLjAzIDMuMDMgMCAwIDAgMTIuNSAxN2MuOTYgMCAxLjg4LS41IDIuNS0xLjQxQTMuMDMgMy4wMyAwIDAgMCAxNy41IDE3YS41LjUgMCAwIDAgMC0xYy0uNzYgMC0xLjYtLjUtMi4wMy0xLjY4WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlckJsb3dpbmdTbm93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJCbG93aW5nU25vd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjUgM2EzLjUgMy41IDAgMCAwLTMuNDMgMi44MWwtLjA2LjNhLjc1Ljc1IDAgMCAwIDEuNDguMjlsLjA1LS4zQTIgMiAwIDEgMSA5LjUgOC41SDIuNzVhLjc1Ljc1IDAgMSAwIDAgMS41SDkuNWEzLjUgMy41IDAgMCAwIDAtN1ptNi4wNSA1Yy0uOTMgMC0xLjc4LjUyLTIuMTkgMS4zNWwtLjAzLjA2YS43NS43NSAwIDEgMCAxLjM0LjY4bC4wMy0uMDdhLjk1Ljk1IDAgMCAxIDEuOC40M3YuMDVhMSAxIDAgMCAxLTEgMUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNUgxMi4zOGEuODguODggMCAxIDEgMCAxLjc1Ljg4Ljg4IDAgMCAxLS43NC0uMzlsLS4wMi0uMDJhLjc1Ljc1IDAgMCAwLTEuMjQuODNsLjAxLjAyQTIuMzggMi4zOCAwIDAgMCAxNC42IDEzaC45MWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LS4wNUMxOCA5LjEgMTYuOSA4IDE1LjU1IDhaTTQgNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQgMTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm04LTEwYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJCbG93aW5nU25vd1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlckJsb3dpbmdTbm93UmVndWxhcicsIFwiMWVtXCIsIFtcIk00IDQuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk05Ljc1IDMuNWEzLjI1IDMuMjUgMCAwIDAtMy4xOCAyLjYxbC0uMDYuM2EuNS41IDAgMSAwIC45OC4xOWwuMDYtLjNBMi4yNSAyLjI1IDAgMSAxIDkuNzUgOUgyLjVhLjUuNSAwIDEgMCAwIDFoNy4yNWEzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTE1LjUgOGEyLjUgMi41IDAgMCAwLTIuNSAyLjUuNS41IDAgMCAwIDEgMCAxLjUgMS41IDAgMSAxIDEuNSAxLjVoLTEzYS41LjUgMCAxIDAgMCAxaDkuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41Yy0uNjIgMC0xLjE1LS40NS0xLjI1LTEuMDV2LS4wM2EuNS41IDAgMSAwLTEgLjE2bC4wMS4wM2EyLjI2IDIuMjYgMCAwIDAgNC40OS0uMzZjMC0uNDYtLjE0LS45LS4zOC0xLjI1aDEuMzhhMi41IDIuNSAwIDAgMCAwLTVabS03Ljc1IDhhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTYgNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyQ2xvdWR5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJDbG91ZHlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgN2MyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEzLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNkg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEzLjI0YTIuODIgMi44MiAwIDAgMSAyLjg3LTIuNzdoLjA2QzcuMTMgOC41NyA4LjUzIDcgMTEgN1pNOC40IDRjMS40NSAwIDIuNzIuODMgMy4zNCAyLjA0QTYuMDUgNi4wNSAwIDAgMCAxMSA2QzguNiA2IDYuODcgNy4zIDYuMjUgOS4yOWwtLjA3LjIxLS4wNC4xOS0uMTcuMDNhMy43MyAzLjczIDAgMCAwLTIuNzEgMi4yNiAyLjYyIDIuNjIgMCAwIDEgMS4yLTQuODZoLjIyQTMuNzcgMy43NyAwIDAgMSA4LjM5IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyQ2xvdWR5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyQ2xvdWR5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSA3YzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTggMTMuMjQgMi44MiAyLjgyIDAgMCAxIDE1LjEzIDE2SDYuODdBMi44MiAyLjgyIDAgMCAxIDQgMTMuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA4LjU3IDguNTMgNyAxMSA3Wm0wIDFhMy4wNCAzLjA0IDAgMCAwLTMuMDkgMy4wMmMwIC4yOC0uMjUuNS0uNTQuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNS44MSAxNSA2LjgyIDE1aDguMzZjMSAwIDEuODItLjc4IDEuODItMS43NHMtLjgxLTEuNzQtMS44Mi0xLjc0aC0uNTVjLS4yOSAwLS41NC0uMjItLjU0LS41QTMuMDIgMy4wMiAwIDAgMCAxMSA4Wk04LjQgNGMxLjQ1IDAgMi43Mi44MyAzLjM0IDIuMDRhNi4wNSA2LjA1IDAgMCAwLTEuMjgtLjAyIDIuNjUgMi42NSAwIDAgMC00LjcgMS4ybC0uMDQuMjJhMSAxIDAgMCAxLS45OS44MmgtLjI2Yy0uODEgMC0xLjQ3LjY3LTEuNDcgMS41IDAgLjU3LjMxIDEuMDYuNzggMS4zMS0uMjIuMjgtLjQuNTgtLjUyLjlhMi42MiAyLjYyIDAgMCAxIDEuMi00Ljg1aC4yMkEzLjc3IDMuNzcgMCAwIDEgOC4zOSA0WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlckRyaXp6bGVGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlckRyaXp6bGVGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgM2MyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE3IDkuMjQgMi44MiAyLjgyIDAgMCAxIDE0LjEzIDEyaC0uNzNsLS45NiAxLjc0YS41LjUgMCAwIDEtLjg4LS40OGwuNy0xLjI2SDEwLjRsLS45NiAxLjc0YS41LjUgMCAwIDEtLjg4LS40OGwuNy0xLjI2SDcuNGwtLjk2IDEuNzRhLjUuNSAwIDAgMS0uODgtLjQ4bC43LTEuMjZoLS4zOUEyLjgyIDIuODIgMCAwIDEgMyA5LjI0YzAtMS40NyAxLjItMi42NyAyLjctMi43NmguMjNDNi4xMyA0LjU1IDcuNTMgMyAxMCAzWk03Ljc1IDE0LjMyYS41LjUgMCAwIDEgLjE4LjY4bC0xIDEuNzVhLjUuNSAwIDAgMS0uODYtLjVsMS0xLjc1YS41LjUgMCAwIDEgLjY4LS4xOFptMy4xOC42OGEuNS41IDAgMCAwLS44Ni0uNWwtMSAxLjc1YS41LjUgMCAwIDAgLjg2LjVsMS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlckRyaXp6bGVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJEcml6emxlUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMCAzYzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTcgOS4yNCAyLjgyIDIuODIgMCAwIDEgMTQuMTMgMTJoLS43M2wtLjk2IDEuNzRhLjUuNSAwIDAgMS0uODgtLjQ4bC43LTEuMjZIMTAuNGwtLjk2IDEuNzRhLjUuNSAwIDAgMS0uODgtLjQ4bC43LTEuMjZINy40bC0uOTYgMS43NGEuNS41IDAgMCAxLS44OC0uNDhsLjctMS4yNmgtLjM5QTIuODIgMi44MiAwIDAgMSAzIDkuMjRjMC0xLjQ3IDEuMi0yLjY3IDIuNy0yLjc2aC4yM0M2LjEzIDQuNTUgNy41MyAzIDEwIDNabS0yLjg5IDhoNy4wN2MxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDEwIDRhMy4wNCAzLjA0IDAgMCAwLTMuMDkgMy4wMmMwIC4yOC0uMjUuNS0uNTQuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNC44MSAxMSA1LjgyIDExSDcuMVptLjY0IDMuMzJhLjUuNSAwIDAgMSAuMTguNjhsLTEgMS43NWEuNS41IDAgMCAxLS44Ni0uNWwxLTEuNzVhLjUuNSAwIDAgMSAuNjgtLjE4Wm0zLjE4LjY4YS41LjUgMCAwIDAtLjg2LS41bC0xIDEuNzVhLjUuNSAwIDAgMCAuODYuNWwxLTEuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyRHVzdHN0b3JtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJEdXN0c3Rvcm1GaWxsZWQnLCBcIjFlbVwiLCBbXCJNNC4yNSAzLjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptMS4yNSAwYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptNC0uNWEzLjUgMy41IDAgMCAwLTMuNDMgMi44MWwtLjA2LjNhLjc1Ljc1IDAgMCAwIDEuNDguMjlsLjA1LS4zQTIgMiAwIDEgMSA5LjUgOC41SDIuNzVhLjc1Ljc1IDAgMSAwIDAgMS41SDkuNWEzLjUgMy41IDAgMCAwIDAtN1ptNi4wNSA1Yy0uOTMgMC0xLjc4LjUyLTIuMTkgMS4zNWwtLjAzLjA2YS43NS43NSAwIDEgMCAxLjM0LjY4bC4wMy0uMDdhLjk1Ljk1IDAgMCAxIDEuOC40M3YuMDVhMSAxIDAgMCAxLTEgMUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNUgxMi4zOGEuODguODggMCAxIDEgMCAxLjc1Ljg4Ljg4IDAgMCAxLS43NC0uMzlsLS4wMi0uMDJhLjc1Ljc1IDAgMCAwLTEuMjQuODNsLjAxLjAyQTIuMzggMi4zOCAwIDAgMCAxNC42IDEzaC45MWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LS4wNUMxOCA5LjEgMTYuOSA4IDE1LjU1IDhaTTcuNSAxNy4yNWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVabTAgMS4yNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTkuNzUtMTRhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptMS4yNSAwYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJEdXN0c3Rvcm1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJEdXN0c3Rvcm1SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTQgNC41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0xIDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTQuNzUtMWEzLjI1IDMuMjUgMCAwIDAtMy4xOCAyLjYxbC0uMDYuM2EuNS41IDAgMSAwIC45OC4xOWwuMDYtLjNBMi4yNSAyLjI1IDAgMSAxIDkuNzUgOUgyLjVhLjUuNSAwIDEgMCAwIDFoNy4yNWEzLjI1IDMuMjUgMCAwIDAgMC02LjVaTTE1LjUgOGEyLjUgMi41IDAgMCAwLTIuNSAyLjUuNS41IDAgMCAwIDEgMCAxLjUgMS41IDAgMSAxIDEuNSAxLjVoLTEzYS41LjUgMCAxIDAgMCAxaDkuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41Yy0uNjIgMC0xLjE1LS40NS0xLjI1LTEuMDV2LS4wM2EuNS41IDAgMSAwLTEgLjE2bC4wMS4wM2EyLjI2IDIuMjYgMCAwIDAgNC40OS0uMzZjMC0uNDYtLjE0LS45LS4zOC0xLjI1aDEuMzhhMi41IDIuNSAwIDAgMCAwLTVabS05IDlhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFabTAgMWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMTcgNS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0xIDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyRm9nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJGb2dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNNi41IDE1aDdhLjUuNSAwIDAgMSAuMDkgMUg2LjVhLjUuNSAwIDAgMS0uMDktMWguMDlabS0yLTJoMTFjLjI3IDAgLjUuMjIuNS41YS41LjUgMCAwIDEtLjQxLjVINC41YS41LjUgMCAwIDEtLjUtLjUuNS41IDAgMCAxIC40MS0uNWguMVpNMTAgM2MyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE3IDkuMjQgMi44MiAyLjgyIDAgMCAxIDE0LjEzIDEySDUuODdBMi44MiAyLjgyIDAgMCAxIDMgOS4yNGMwLTEuNDcgMS4yLTIuNjcgMi43LTIuNzZoLjIzQzYuMTMgNC41NSA3LjUzIDMgMTAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJGb2dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJGb2dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNSAxNS4wMmg3YS41LjUgMCAwIDEgLjA5IDFINi41YS41LjUgMCAwIDEtLjA5LS45OWguMDlabS0yLTJoMTFjLjI3IDAgLjUuMjMuNS41YS41LjUgMCAwIDEtLjQxLjVINC41YS41LjUgMCAwIDEtLjUtLjUuNS41IDAgMCAxIC40MS0uNDloLjFabTUuNS0xMGMyLjQ2IDAgMy44NiAxLjU4IDQuMDcgMy40OGguMDZBMi44MiAyLjgyIDAgMCAxIDE3IDkuMjZhMi44MiAyLjgyIDAgMCAxLTIuODcgMi43Nkg1Ljg3QTIuODIgMi44MiAwIDAgMSAzIDkuMjZDMyA3LjggNC4yIDYuNiA1LjcgNi41aC4yM2MuMi0xLjkxIDEuNi0zLjQ4IDQuMDctMy40OFptMCAxYTMuMDQgMy4wNCAwIDAgMC0zLjA5IDMuMDNjMCAuMjgtLjI1LjUtLjU0LjVoLS41NWMtMSAwLTEuODIuNzctMS44MiAxLjczIDAgLjk3LjgxIDEuNzQgMS44MiAxLjc0aDguMzZjMSAwIDEuODItLjc3IDEuODItMS43NCAwLS45Ni0uODEtMS43My0xLjgyLTEuNzNoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDEwIDQuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVySGFpbERheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVySGFpbERheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMSAxNi42N0EuNjcuNjcgMCAxIDEgMTEgMThhLjY3LjY3IDAgMCAxIDAtMS4zM1pNOC42NyAxNmEuNjcuNjcgMCAxIDEgMCAxLjMzLjY3LjY3IDAgMCAxIDAtMS4zM1ptNC42NiAwYS42Ny42NyAwIDEgMSAwIDEuMzMuNjcuNjcgMCAwIDEgMC0xLjMzWk0xMSA2YzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTggMTIuMjQgMi44MiAyLjgyIDAgMCAxIDE1LjEzIDE1SDYuODdBMi44MiAyLjgyIDAgMCAxIDQgMTIuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA3LjU3IDguNTMgNiAxMSA2Wk0zLjggOC43YS41LjUgMCAwIDEtLjIyLjZsLS4wOS4wNC0uOC4yN2EuNS41IDAgMCAxLS40LS45bC4wOC0uMDQuOC0uMjhhLjUuNSAwIDAgMSAuNjMuMzFabTUuMTItNC4yYy4zMy4xNi42Mi4zNy44Ny42MmE0LjU3IDQuNTcgMCAwIDAtMy41NCAzLjE2bC0uMDcuMjItLjA0LjE5LS4xNy4wM2MtLjQ1LjA5LS44Ny4yNi0xLjI1LjVhMy4yOCAzLjI4IDAgMCAxIDQuMi00LjcyWm0tNiAuMTdMMyA0LjdsLjc2LjM3YS41LjUgMCAwIDEtLjM1LjkzbC0uMDktLjAzLS43Ni0uMzdhLjUuNSAwIDAgMSAuMzYtLjkzWk05Ljk5IDIuM2MuMjIuMS4zMy4zNS4yNi41OGwtLjAzLjA4LS4zNy43N2EuNS41IDAgMCAxLS45My0uMzZsLjAzLS4wOC4zNy0uNzZhLjUuNSAwIDAgMSAuNjctLjIzWm0tMy44LS4wNC4wNS4wOS4yNy44YS41LjUgMCAwIDEtLjkuNGwtLjA0LS4wOC0uMjgtLjhhLjUuNSAwIDAgMSAuOS0uNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJIYWlsRGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVySGFpbERheVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgMTYuNjdBLjY3LjY3IDAgMSAxIDExIDE4YS42Ny42NyAwIDAgMSAwLTEuMzNaTTguNjcgMTZhLjY3LjY3IDAgMSAxIDAgMS4zMy42Ny42NyAwIDAgMSAwLTEuMzNabTQuNjYgMGEuNjcuNjcgMCAxIDEgMCAxLjMzLjY3LjY3IDAgMCAxIDAtMS4zM1pNMTEgNmMyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEyLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNUg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEyLjI0YTIuODIgMi44MiAwIDAgMSAyLjg3LTIuNzdoLjA2QzcuMTMgNy41NyA4LjUzIDYgMTEgNlptMCAxYTMuMDQgMy4wNCAwIDAgMC0zLjA5IDMuMDJjMCAuMjgtLjI1LjUtLjU0LjVoLS41NWMtMSAwLTEuODIuNzgtMS44MiAxLjc0UzUuODEgMTQgNi44MiAxNGg4LjM2YzEgMCAxLjgyLS43OCAxLjgyLTEuNzRzLS44MS0xLjc0LTEuODItMS43NGgtLjU1Yy0uMjkgMC0uNTQtLjIyLS41NC0uNUEzLjAyIDMuMDIgMCAwIDAgMTEgN1pNMy44IDguN2EuNS41IDAgMCAxLS4yMi42bC0uMDkuMDQtLjguMjdhLjUuNSAwIDAgMS0uNC0uOWwuMDgtLjA0LjgtLjI4YS41LjUgMCAwIDEgLjYzLjMxWm01LjEyLTQuMmMuMzMuMTYuNjIuMzcuODcuNjItLjQuMDgtLjc4LjIxLTEuMTMuMzdhMi4yOCAyLjI4IDAgMCAwLTMuMDEgMy4zYy0uMzMuMS0uNjQuMjUtLjkzLjQzYTMuMjggMy4yOCAwIDAgMSA0LjItNC43MlptLTYgLjE3TDMgNC43bC43Ni4zN2EuNS41IDAgMCAxLS4zNS45M2wtLjA5LS4wMy0uNzYtLjM3YS41LjUgMCAwIDEgLjM2LS45M1pNOS45OSAyLjNjLjIyLjEuMzMuMzUuMjYuNThsLS4wMy4wOC0uMzcuNzdhLjUuNSAwIDAgMS0uOTMtLjM2bC4wMy0uMDguMzctLjc2YS41LjUgMCAwIDEgLjY3LS4yM1ptLTMuOC0uMDQuMDUuMDkuMjcuOGEuNS41IDAgMCAxLS45LjRsLS4wNC0uMDgtLjI4LS44YS41LjUgMCAwIDEgLjktLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVySGFpbE5pZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJIYWlsTmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgMTYuNjdBLjY3LjY3IDAgMSAxIDExIDE4YS42Ny42NyAwIDAgMSAwLTEuMzNaTTguNjcgMTZhLjY3LjY3IDAgMSAxIDAgMS4zMy42Ny42NyAwIDAgMSAwLTEuMzNabTQuNjYgMGEuNjcuNjcgMCAxIDEgMCAxLjMzLjY3LjY3IDAgMCAxIDAtMS4zM1pNMTEgNmMyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEyLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNUg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEyLjI0YzAtMS40NyAxLjItMi42NyAyLjctMi43NmguMjNDNy4xMyA3LjU1IDguNTMgNiAxMSA2Wk01Ljg0IDJhNC4yNCA0LjI0IDAgMCAxIDMuODggMy4xNCA0LjU2IDQuNTYgMCAwIDAtMy40NyAzLjE0bC0uMDcuMjItLjA0LjE5LS4xNy4wM2MtLjg5LjE4LTEuNjYuNjctMi4yIDEuMzZsLS4yOC0uMTVBNC4yNCA0LjI0IDAgMCAxIDIuMSA4LjY2YS42My42MyAwIDAgMSAuMy0uOTVjMS4zOC0uNDkgMi4xMi0xLjA0IDIuNTUtMS44NS40Ni0uODkuNTUtMS44Mi4yNC0zLjA4LS4xLS40MS4yMi0uOC42NC0uNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVySGFpbE5pZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVySGFpbE5pZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSAxNi42N0EuNjcuNjcgMCAxIDEgMTEgMThhLjY3LjY3IDAgMCAxIDAtMS4zM1pNOC42NyAxNmEuNjcuNjcgMCAxIDEgMCAxLjMzLjY3LjY3IDAgMCAxIDAtMS4zM1ptNC42NiAwYS42Ny42NyAwIDEgMSAwIDEuMzMuNjcuNjcgMCAwIDEgMC0xLjMzWk0xMSA2YzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTggMTIuMjQgMi44MiAyLjgyIDAgMCAxIDE1LjEzIDE1SDYuODdBMi44MiAyLjgyIDAgMCAxIDQgMTIuMjRjMC0xLjQ3IDEuMi0yLjY3IDIuNy0yLjc2aC4yM0M3LjEzIDcuNTUgOC41MyA2IDExIDZabTAgMWEzLjA0IDMuMDQgMCAwIDAtMy4wOSAzLjAyYzAgLjI4LS4yNS41LS41NC41aC0uNTVjLTEgMC0xLjgyLjc4LTEuODIgMS43NFM1LjgxIDE0IDYuODIgMTRoOC4zNmMxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDExIDdaTTUuODQgMmE0LjI0IDQuMjQgMCAwIDEgMy44OCAzLjE0Yy0uMzkuMDgtLjc0LjItMS4wOC4zNkEzLjA1IDMuMDUgMCAwIDAgNyAzLjM4Yy0uMTktLjEtLjM0LS4xOC0uNTQtLjI1YTUuODcgNS44NyAwIDAgMS0uNjIgMy40NCA1IDUgMCAwIDEtMi41NiAxLjljLjE0LjEyLjMuMjMuNDUuMzQuMzEuMi42Mi4zNS45Mi40Ni0uMzMuMjItLjYzLjUtLjg4LjhsLS4yOC0uMTRBNC4yNCA0LjI0IDAgMCAxIDIuMSA4LjY2YS42My42MyAwIDAgMSAuMy0uOTVjMS4zOC0uNDkgMi4xMi0xLjA0IDIuNTUtMS44NS40Ni0uODkuNTUtMS44Mi4yNC0zLjA4LS4xLS40MS4yMi0uOC42NC0uNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVySGF6ZUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVySGF6ZUZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xNC41MiAxMC4wMkE0LjQ4IDQuNDggMCAwIDAgNS42IDkuM2MuNDYtLjA0LjkyLS4wMyAxLjM4LjAzIDEuMzUuMTcgMi42LjczIDMuNzcgMS40LjcuNDIgMS42LjU0IDIuNTUuNC40LS4wNS43OC0uMTQgMS4xMi0uMjcuMDYtLjI3LjA5LS41Ni4wOS0uODVaTTUuMDggNC4zOCA1IDQuMzJhLjUuNSAwIDAgMC0uNjQuNzdsLjg2Ljg2LjA3LjA1YS41LjUgMCAwIDAgLjYzLS43NmwtLjg1LS44NlptMTAuNjYuNjRhLjUuNSAwIDAgMC0uNzctLjY0bC0uODUuODYtLjA2LjA3YS41LjUgMCAwIDAgLjc2LjY0bC44Ni0uODYuMDYtLjA3Wm0tNS4yMi0yLjU5YS41LjUgMCAwIDAtMSAuMXYxLjJsLjAyLjFhLjUuNSAwIDAgMCAuOTktLjF2LTEuMmwtLjAxLS4xWm0tNi43OCA5LjVhNC44MSA0LjgxIDAgMCAxIDMtLjZjLjk3LjEyIDEuOTYuNTMgMyAxLjE0IDEuMjEuNyAyLjYuODMgMy44NC42NmE3LjQ3IDcuNDcgMCAwIDAgMy4yMS0xLjIyLjUuNSAwIDAgMC0uNTgtLjgyYy0uNjYuNDctMS42Ny45LTIuNzcgMS4wNS0xLjEuMTUtMi4yMy4wMy0zLjE5LS41M2E5LjA1IDkuMDUgMCAwIDAtMy4zOS0xLjI4IDUuOCA1LjggMCAwIDAtMy42LjczLjUuNSAwIDAgMCAuNDguODhabTMgMS40YTQuODEgNC44MSAwIDAgMC0zIC42LjUuNSAwIDAgMS0uNDgtLjg3IDUuOCA1LjggMCAwIDEgMy42LS43M2MxLjE2LjE1IDIuMjguNjMgMy40IDEuMjguOTUuNTYgMi4wOS42OCAzLjE4LjUzIDEuMS0uMTUgMi4xMS0uNTggMi43Ny0xLjA1YS41LjUgMCAwIDEgLjU4LjgyIDcuNDcgNy40NyAwIDAgMS0zLjIgMS4yMiA1Ljk2IDUuOTYgMCAwIDEtMy44NC0uNjYgOC4wOCA4LjA4IDAgMCAwLTMuMDEtMS4xNFptLTMgMi42YTQuODEgNC44MSAwIDAgMSAzLS42Yy45Ny4xMiAxLjk2LjUzIDMgMS4xNCAxLjIxLjcgMi42LjgzIDMuODQuNjZhNy40NyA3LjQ3IDAgMCAwIDMuMjEtMS4yMi41LjUgMCAwIDAtLjU4LS44MmMtLjY2LjQ3LTEuNjcuOS0yLjc3IDEuMDUtMS4xLjE1LTIuMjMuMDMtMy4xOS0uNTNhOS4wNSA5LjA1IDAgMCAwLTMuMzktMS4yOCA1LjggNS44IDAgMCAwLTMuNi43My41LjUgMCAwIDAgLjQ4Ljg4WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlckhhemVSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJIYXplUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNC41MiAxMC4wMkE0LjQ4IDQuNDggMCAwIDAgNS42IDkuM2MuMzQtLjAzLjY4LS4wMyAxLjAyIDBhMy40OCAzLjQ4IDAgMSAxIDYuNyAxLjgzYy4zOS0uMDUuNzYtLjE1IDEuMS0uMjcuMDYtLjI3LjA5LS41Ni4wOS0uODVaTTUuMDggNC4zOCA1IDQuMzJhLjUuNSAwIDAgMC0uNjQuNzdsLjg2Ljg2LjA3LjA1YS41LjUgMCAwIDAgLjYzLS43NmwtLjg1LS44NlptMTAuNjYuNjRhLjUuNSAwIDAgMC0uNzctLjY0bC0uODUuODYtLjA2LjA3YS41LjUgMCAwIDAgLjc2LjY0bC44Ni0uODYuMDYtLjA3Wm0tNS4yMi0yLjU5YS41LjUgMCAwIDAtMSAuMXYxLjJsLjAyLjFhLjUuNSAwIDAgMCAuOTktLjF2LTEuMmwtLjAxLS4xWm0tNi43OCA5LjVhNC44MSA0LjgxIDAgMCAxIDMtLjZjLjk3LjEyIDEuOTYuNTMgMyAxLjE0IDEuMjEuNyAyLjYuODMgMy44NC42NmE3LjQ3IDcuNDcgMCAwIDAgMy4yMS0xLjIyLjUuNSAwIDAgMC0uNTgtLjgyYy0uNjYuNDctMS42Ny45LTIuNzcgMS4wNS0xLjEuMTUtMi4yMy4wMy0zLjE5LS41M2E5LjA1IDkuMDUgMCAwIDAtMy4zOS0xLjI4IDUuOCA1LjggMCAwIDAtMy42LjczLjUuNSAwIDAgMCAuNDguODhabTAgMmE0LjgxIDQuODEgMCAwIDEgMy0uNmMuOTcuMTIgMS45Ni41MyAzIDEuMTQgMS4yMS43IDIuNi44MyAzLjg0LjY2YTcuNDcgNy40NyAwIDAgMCAzLjIxLTEuMjIuNS41IDAgMCAwLS41OC0uODJjLS42Ni40Ny0xLjY3LjktMi43NyAxLjA1LTEuMS4xNS0yLjIzLjAzLTMuMTktLjUzYTkuMDUgOS4wNSAwIDAgMC0zLjM5LTEuMjggNS44IDUuOCAwIDAgMC0zLjYuNzMuNS41IDAgMCAwIC40OC44OFptMyAxLjRhNC44MSA0LjgxIDAgMCAwLTMgLjYuNS41IDAgMCAxLS40OC0uODcgNS44IDUuOCAwIDAgMSAzLjYtLjczYzEuMTYuMTUgMi4yOC42MyAzLjQgMS4yOC45NS41NiAyLjA5LjY4IDMuMTguNTMgMS4xLS4xNSAyLjExLS41OCAyLjc3LTEuMDVhLjUuNSAwIDAgMSAuNTguODIgNy40NyA3LjQ3IDAgMCAxLTMuMiAxLjIyIDUuOTYgNS45NiAwIDAgMS0zLjg0LS42NiA4LjA4IDguMDggMCAwIDAtMy4wMS0xLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlck1vb25GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlck1vb25GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuMzYgMTRhNy45OCA3Ljk4IDAgMCAxLTEzLjQ4LjU0LjYuNiAwIDAgMSAuMjktLjljMy0xLjA4IDQuNjEtMi4zMyA1LjU1LTQuMTEuOTgtMS44OCAxLjI0LTMuOTQuNTUtNi43NmEuNi42IDAgMCAxIC42MS0uNzNBNy45OCA3Ljk4IDAgMCAxIDE2LjM2IDE0WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlck1vb25SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJNb29uUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNS41IDEzLjVBNi45OCA2Ljk4IDAgMCAxIDQgMTQuMzljMi44My0xLjA5IDQuNTYtMi40MiA1LjYtNC40IDEuMDQtMiAxLjMzLTQuMTYuNzUtNi45QTYuOTggNi45OCAwIDAgMSAxNS41IDEzLjVaTTUuNDUgMTYuOTJBNy45OCA3Ljk4IDAgMSAwIDkuODggMi4wNGEuNi42IDAgMCAwLS42MS43M2MuNjkgMi44Mi40MyA0Ljg4LS41NSA2Ljc2LS45NCAxLjc4LTIuNTUgMy4wMy01LjU1IDQuMWEuNi42IDAgMCAwLS4zLjkgNy45NSA3Ljk1IDAgMCAwIDIuNTkgMi4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJNb29uT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJNb29uT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsNi42IDYuNjEtLjAzLjA3Yy0uOTQgMS43OC0yLjU1IDMuMDMtNS41NSA0LjFhLjYuNiAwIDAgMC0uMy45IDcuOTggNy45OCAwIDAgMCAxMi4xNCAxLjE5bDIuMTQgMi4xM2EuNS41IDAgMCAwIC43LS43bC0yLjE2LTIuMTctNi41LTYuNS02LjM0LTYuMzNaTTE2LjM1IDE0bC0uMDguMTUtNi43OC02Ljc4Yy4yNy0xLjMyLjIxLTIuOC0uMjItNC42YS42LjYgMCAwIDEgLjYxLS43M0E3Ljk4IDcuOTggMCAwIDEgMTYuMzYgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyTW9vbk9mZlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlck1vb25PZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsNi42IDYuNjFhOS4xIDkuMSAwIDAgMS0uMDMuMDdjLS45NCAxLjc4LTIuNTUgMy4wMy01LjU1IDQuMWEuNi42IDAgMCAwLS4zLjkgNy45OCA3Ljk4IDAgMCAwIDEyLjE0IDEuMTlsMi4xNCAyLjEzYS41LjUgMCAwIDAgLjctLjdsLTIuMTYtMi4xNy0uNzEtLjcxLTUuMDMtNS4wMi0uNzctLjc3LTYuMzMtNi4zM1ptMTEuNDYgMTIuODdhNi45OCA2Ljk4IDAgMCAxLTEwLjMtLjYzYzIuNzMtMS4wNSA0LjQ0LTIuMzMgNS40OC00LjJsNC44MiA0LjgzWk0xMi45NCAzLjk2YTYuOTggNi45OCAwIDAgMSAyLjYgOS40NmwuNzMuNzMuMDktLjE1QTcuOTggNy45OCAwIDAgMCA5Ljg4IDIuMDRhLjYuNiAwIDAgMC0uNjEuNzNjLjQzIDEuOC41IDMuMjguMjIgNC42bC44My44M2MuNDMtMS41MS40NS0zLjE3LjA0LTUuMTIuOS4xMiAxLjc3LjQyIDIuNTguODhaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyUGFydGx5Q2xvdWR5RGF5RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJQYXJ0bHlDbG91ZHlEYXlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgN2MyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEzLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNkg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEzLjI0YTIuODIgMi44MiAwIDAgMSAyLjg3LTIuNzdoLjA2QzcuMTMgOC41NyA4LjUzIDcgMTEgN1pNMy44IDkuN2EuNS41IDAgMCAxLS4yMi42bC0uMDkuMDQtLjguMjdhLjUuNSAwIDAgMS0uNC0uOWwuMDgtLjA0LjgtLjI4YS41LjUgMCAwIDEgLjYzLjMxWm01LjEyLTQuMmMuMzMuMTYuNjIuMzcuODcuNjJhNC41NyA0LjU3IDAgMCAwLTMuNTQgMy4xNmwtLjA3LjIyLS4wNC4xOS0uMTcuMDNjLS40NS4wOS0uODcuMjYtMS4yNS41YTMuMjggMy4yOCAwIDAgMSA0LjItNC43MlptLTYgLjE3TDMgNS43bC43Ni4zN2EuNS41IDAgMCAxLS4zNS45M2wtLjA5LS4wMy0uNzYtLjM3YS41LjUgMCAwIDEgLjM2LS45M1pNOS45OSAzLjNjLjIyLjEuMzMuMzUuMjYuNThsLS4wMy4wOC0uMzcuNzdhLjUuNSAwIDAgMS0uOTMtLjM2bC4wMy0uMDguMzctLjc2YS41LjUgMCAwIDEgLjY3LS4yM1ptLTMuOC0uMDQuMDUuMDkuMjcuOGEuNS41IDAgMCAxLS45LjRsLS4wNC0uMDgtLjI4LS44YS41LjUgMCAwIDEgLjktLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyUGFydGx5Q2xvdWR5RGF5UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyUGFydGx5Q2xvdWR5RGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSA3YzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTggMTMuMjQgMi44MiAyLjgyIDAgMCAxIDE1LjEzIDE2SDYuODdBMi44MiAyLjgyIDAgMCAxIDQgMTMuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA4LjU3IDguNTMgNyAxMSA3Wm0wIDFhMy4wNCAzLjA0IDAgMCAwLTMuMDkgMy4wMmMwIC4yOC0uMjUuNS0uNTQuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNS44MSAxNSA2LjgyIDE1aDguMzZjMSAwIDEuODItLjc4IDEuODItMS43NHMtLjgxLTEuNzQtMS44Mi0xLjc0aC0uNTVjLS4yOSAwLS41NC0uMjItLjU0LS41QTMuMDIgMy4wMiAwIDAgMCAxMSA4Wk0zLjggOS43YS41LjUgMCAwIDEtLjIyLjZsLS4wOS4wNC0uOC4yN2EuNS41IDAgMCAxLS40LS45bC4wOC0uMDQuOC0uMjhhLjUuNSAwIDAgMSAuNjMuMzFabTUuMTItNC4yYy4zMy4xNi42Mi4zNy44Ny42Mi0uNC4wOC0uNzguMjEtMS4xMy4zN2EyLjI4IDIuMjggMCAwIDAtMy4wMSAzLjNjLS4zMy4xLS42NC4yNS0uOTMuNDNhMy4yOCAzLjI4IDAgMCAxIDQuMi00LjcyWm0tNiAuMTdMMyA1LjdsLjc2LjM3YS41LjUgMCAwIDEtLjM1LjkzbC0uMDktLjAzLS43Ni0uMzdhLjUuNSAwIDAgMSAuMzYtLjkzWk05Ljk5IDMuM2MuMjIuMS4zMy4zNS4yNi41OGwtLjAzLjA4LS4zNy43N2EuNS41IDAgMCAxLS45My0uMzZsLjAzLS4wOC4zNy0uNzZhLjUuNSAwIDAgMSAuNjctLjIzWm0tMy44LS4wNC4wNS4wOS4yNy44YS41LjUgMCAwIDEtLjkuNGwtLjA0LS4wOC0uMjgtLjhhLjUuNSAwIDAgMSAuOS0uNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJQYXJ0bHlDbG91ZHlOaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyUGFydGx5Q2xvdWR5TmlnaHRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEgN2MyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEzLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNkg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEzLjI0YzAtMS40NyAxLjItMi42NyAyLjctMi43NmguMjNDNy4xMyA4LjU1IDguNTMgNyAxMSA3Wk01Ljg0IDNhNC4yNCA0LjI0IDAgMCAxIDMuODggMy4xNCA0LjU2IDQuNTYgMCAwIDAtMy40NyAzLjE0bC0uMDcuMjItLjA0LjE5LS4xNy4wM2MtLjg5LjE4LTEuNjYuNjctMi4yIDEuMzZsLS4yOC0uMTVBNC4yNCA0LjI0IDAgMCAxIDIuMSA5LjY2YS42My42MyAwIDAgMSAuMy0uOTVjMS4zOC0uNDkgMi4xMi0xLjA0IDIuNTUtMS44NS40Ni0uODkuNTUtMS44Mi4yNC0zLjA4LS4xLS40MS4yMi0uOC42NC0uNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyUGFydGx5Q2xvdWR5TmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJQYXJ0bHlDbG91ZHlOaWdodFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTEgN2MyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEzLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNkg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEzLjI0YzAtMS40NyAxLjItMi42NyAyLjctMi43NmguMjNDNy4xMyA4LjU1IDguNTMgNyAxMSA3Wm0wIDFhMy4wNCAzLjA0IDAgMCAwLTMuMDkgMy4wMmMwIC4yOC0uMjUuNS0uNTQuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNS44MSAxNSA2LjgyIDE1aDguMzZjMSAwIDEuODItLjc4IDEuODItMS43NHMtLjgxLTEuNzQtMS44Mi0xLjc0aC0uNTVjLS4yOSAwLS41NC0uMjItLjU0LS41QTMuMDIgMy4wMiAwIDAgMCAxMSA4Wk01Ljg0IDNhNC4yNCA0LjI0IDAgMCAxIDMuODggMy4xNGMtLjM5LjA4LS43NC4yLTEuMDguMzZBMy4wNSAzLjA1IDAgMCAwIDcgNC4zOGMtLjE5LS4xLS4zNC0uMTgtLjU0LS4yNWE1Ljg3IDUuODcgMCAwIDEtLjYyIDMuNDQgNSA1IDAgMCAxLTIuNTYgMS45Yy4xNC4xMi4zLjIzLjQ1LjM0LjMxLjIuNjIuMzUuOTIuNDYtLjMzLjIyLS42My41LS44OC44bC0uMjgtLjE0QTQuMjQgNC4yNCAwIDAgMSAyLjEgOS42NmEuNjMuNjMgMCAwIDEgLjMtLjk1YzEuMzgtLjQ5IDIuMTItMS4wNCAyLjU1LTEuODUuNDYtLjg5LjU1LTEuODIuMjQtMy4wOC0uMS0uNDEuMjItLjguNjQtLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclJhaW5GaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlclJhaW5GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAuMDIgNC4wMmMyLjQ2IDAgMy44NiAxLjU3IDQuMDYgMy40N2guMDZhMi44MiAyLjgyIDAgMCAxIDIuODggMi43NiAyLjgyIDIuODIgMCAwIDEtMi44OCAyLjc3aC0uNzFsLS4wMS4wMi0xLjQ5IDIuN2EuNS41IDAgMCAxLS45MS0uMzlsLjA0LS4wOCAxLjIzLTIuMjVoLTEuODVsLS4wMS4wMi0xLjQ5IDIuN2EuNS41IDAgMCAxLS45LS4zOWwuMDMtLjA4IDEuMjMtMi4yNUg3LjQzbC0xLjQ4IDIuNzNhLjUuNSAwIDAgMS0uNi4yM2wtLjA4LS4wM2EuNS41IDAgMCAxLS4yNC0uNmwuMDQtLjA4IDEuMjItMi4yNWgtLjRhMi44MiAyLjgyIDAgMCAxLTIuODctMi43N2MwLTEuNDYgMS4xOS0yLjY3IDIuNy0yLjc1aC4yM2MuMi0xLjkyIDEuNi0zLjQ4IDQuMDctMy40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJSYWluUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyUmFpblJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgNGMyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE3IDEwLjI0IDIuODIgMi44MiAwIDAgMSAxNC4xMyAxM2gtLjdsLS4wMi4wMy0xLjQ4IDIuN2EuNS41IDAgMCAxLS45MS0uMzlsLjAzLS4wOEwxMi4zIDEzaC0xLjg1bC0uMDIuMDMtMS40OCAyLjdhLjUuNSAwIDAgMS0uOTEtLjM5bC4wMy0uMDhMOS4zIDEzSDcuNDNsLTEuNDkgMi43NGEuNS41IDAgMCAxLS42LjIzbC0uMDgtLjAzYS41LjUgMCAwIDEtLjIzLS42bC4wMy0uMDhMNi4zIDEzaC0uNDJBMi44MiAyLjgyIDAgMCAxIDMgMTAuMjRjMC0xLjQ3IDEuMi0yLjY3IDIuNy0yLjc2aC4yM0M2LjEzIDUuNTUgNy41MyA0IDEwIDRabTAgMWEzLjA0IDMuMDQgMCAwIDAtMy4wOSAzLjAyYzAgLjI4LS4yNS41LS41NC41aC0uNTVjLTEgMC0xLjgyLjc4LTEuODIgMS43NFM0LjgxIDEyIDUuODIgMTJoOC4zNmMxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyUmFpblNob3dlcnNEYXlGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlclJhaW5TaG93ZXJzRGF5RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExIDZjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxOCAxMi4yNCAyLjgyIDIuODIgMCAwIDEgMTUuMTMgMTVoLS43bC0uMDEuMDQtMS40OSAyLjdhLjUuNSAwIDAgMS0uOTEtLjRsLjAzLS4wN0wxMy4zIDE1aC0xLjg1bC0uMDIuMDQtMS40OSAyLjdhLjUuNSAwIDAgMS0uOTEtLjRsLjAzLS4wN0wxMC4zMSAxNUg4LjQ0bC0xLjUgMi43NWEuNS41IDAgMCAxLS45LS40bC4wMy0uMDhMNy4zIDE1aC0uNDNBMi44MiAyLjgyIDAgMCAxIDQgMTIuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA3LjU3IDguNTMgNiAxMSA2Wk0zLjggOC43YS41LjUgMCAwIDEtLjIyLjZsLS4wOS4wNC0uOC4yN2EuNS41IDAgMCAxLS40LS45bC4wOC0uMDQuOC0uMjhhLjUuNSAwIDAgMSAuNjMuMzFabTUuMTItNC4yYy4zMy4xNi42Mi4zNy44Ny42MmE0LjU3IDQuNTcgMCAwIDAtMy41NCAzLjE2bC0uMDcuMjItLjA0LjE5LS4xNy4wM2MtLjQ1LjA5LS44Ny4yNi0xLjI1LjVhMy4yOCAzLjI4IDAgMCAxIDQuMi00LjcyWm0tNiAuMTdMMyA0LjdsLjc2LjM3YS41LjUgMCAwIDEtLjM1LjkzbC0uMDktLjAzLS43Ni0uMzdhLjUuNSAwIDAgMSAuMzYtLjkzWk05Ljk5IDIuM2MuMjIuMS4zMy4zNS4yNi41OGwtLjAzLjA4LS4zNy43N2EuNS41IDAgMCAxLS45My0uMzZsLjAzLS4wOC4zNy0uNzZhLjUuNSAwIDAgMSAuNjctLjIzWm0tMy44LS4wNC4wNS4wOS4yNy44YS41LjUgMCAwIDEtLjkuNGwtLjA0LS4wOC0uMjgtLjhhLjUuNSAwIDAgMSAuOS0uNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJSYWluU2hvd2Vyc0RheVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlclJhaW5TaG93ZXJzRGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSA2YzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTggMTIuMjQgMi44MiAyLjgyIDAgMCAxIDE1LjEzIDE1aC0uN2wtLjAxLjA0LTEuNDkgMi43YS41LjUgMCAwIDEtLjkxLS40bC4wMy0uMDdMMTMuMyAxNWgtMS44NWwtLjAyLjA0LTEuNDkgMi43YS41LjUgMCAwIDEtLjkxLS40bC4wNC0uMDdMMTAuMyAxNUg4LjQ0bC0xLjUgMi43NWEuNS41IDAgMCAxLS45LS40bC4wMy0uMDhMNy4zIDE1aC0uNDNBMi44MiAyLjgyIDAgMCAxIDQgMTIuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA3LjU3IDguNTMgNiAxMSA2Wm0wIDFhMy4wNCAzLjA0IDAgMCAwLTMuMDkgMy4wMmMwIC4yOC0uMjUuNS0uNTQuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNS44MSAxNCA2LjgyIDE0aDguMzZjMSAwIDEuODItLjc4IDEuODItMS43NHMtLjgxLTEuNzQtMS44Mi0xLjc0aC0uNTVjLS4yOSAwLS41NC0uMjItLjU0LS41QTMuMDIgMy4wMiAwIDAgMCAxMSA3Wk0zLjggOC43YS41LjUgMCAwIDEtLjIyLjZsLS4wOS4wNC0uOC4yN2EuNS41IDAgMCAxLS40LS45bC4wOC0uMDQuOC0uMjhhLjUuNSAwIDAgMSAuNjMuMzFabTUuMTItNC4yYy4zMy4xNi42Mi4zNy44Ny42Mi0uNC4wOC0uNzguMjEtMS4xMy4zN2EyLjI4IDIuMjggMCAwIDAtMy4wMSAzLjNjLS4zMy4xLS42NC4yNS0uOTMuNDNhMy4yOCAzLjI4IDAgMCAxIDQuMi00LjcyWm0tNiAuMTdMMyA0LjdsLjc2LjM3YS41LjUgMCAwIDEtLjM1LjkzbC0uMDktLjAzLS43Ni0uMzdhLjUuNSAwIDAgMSAuMzYtLjkzWk05Ljk5IDIuM2MuMjIuMS4zMy4zNS4yNi41OGwtLjAzLjA4LS4zNy43N2EuNS41IDAgMCAxLS45My0uMzZsLjAzLS4wOC4zNy0uNzZhLjUuNSAwIDAgMSAuNjctLjIzWm0tMy44LS4wNC4wNS4wOS4yNy44YS41LjUgMCAwIDEtLjkuNGwtLjA0LS4wOC0uMjgtLjhhLjUuNSAwIDAgMSAuOS0uNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJSYWluU2hvd2Vyc05pZ2h0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJSYWluU2hvd2Vyc05pZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTExLjAyIDYuMDJjMi40NiAwIDMuODYgMS41NyA0LjA2IDMuNDdoLjA2YTIuODIgMi44MiAwIDAgMSAyLjg4IDIuNzYgMi44MiAyLjgyIDAgMCAxLTIuODggMi43N2gtLjcxbC0uMDEuMDItMS40OSAyLjdhLjUuNSAwIDAgMS0uOTEtLjM5bC4wMy0uMDggMS4yNC0yLjI1aC0xLjg1bC0uMDEuMDItMS40OSAyLjdhLjUuNSAwIDAgMS0uOTEtLjM5bC4wMy0uMDggMS4yNC0yLjI1SDguNDNsLTEuNDggMi43M2EuNS41IDAgMCAxLS42LjIzbC0uMDgtLjAzYS41LjUgMCAwIDEtLjI0LS42bC4wNC0uMDggMS4yMi0yLjI1aC0uNGEyLjgyIDIuODIgMCAwIDEtMi44Ny0yLjc3YzAtMS40NiAxLjE5LTIuNjcgMi43LTIuNzVoLjIzYy4yLTEuOTIgMS42LTMuNDggNC4wNy0zLjQ4Wm0tNS4xNi00YTQuMjQgNC4yNCAwIDAgMSAzLjg3IDMuMTRBNC41NiA0LjU2IDAgMCAwIDYuMjYgOC4zbC0uMDYuMjItLjA1LjE4LS4xNi4wM2MtLjkuMTktMS42Ny42OC0yLjIgMS4zN2wtLjI5LS4xNWE0LjI0IDQuMjQgMCAwIDEtMS4zNy0xLjI3LjYzLjYzIDAgMCAxIC4zLS45NWMxLjM4LS41IDIuMTItMS4wNSAyLjU0LTEuODUuNDctLjg5LjU1LTEuODMuMjQtMy4wOC0uMS0uNDEuMjMtLjguNjUtLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclJhaW5TaG93ZXJzTmlnaHRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJSYWluU2hvd2Vyc05pZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk0xMSA2YzIuNDcgMCAzLjg3IDEuNTggNC4wNyAzLjQ4aC4wNkEyLjgyIDIuODIgMCAwIDEgMTggMTIuMjUgMi44MiAyLjgyIDAgMCAxIDE1LjEzIDE1aC0uN2wtLjAxLjAzLTEuNSAyLjdhLjUuNSAwIDAgMS0uOS0uMzlsLjAzLS4wOEwxMy4zIDE1aC0xLjg1bC0uMDEuMDMtMS40OSAyLjdhLjUuNSAwIDAgMS0uOTEtLjM5bC4wMy0uMDhMMTAuMzEgMTVIOC40NGwtMS41IDIuNzRhLjUuNSAwIDAgMS0uNi4yM2wtLjA3LS4wM2EuNS41IDAgMCAxLS4yNC0uNmwuMDQtLjA4TDcuMyAxNWgtLjQyQTIuODIgMi44MiAwIDAgMSA0IDEyLjI1YzAtMS40NyAxLjItMi42OCAyLjctMi43NmguMjRDNy4xNCA3LjU2IDguNTQgNiAxMSA2Wm0wIDFhMy4wNCAzLjA0IDAgMCAwLTMuMDggMy4wM2MwIC4yOC0uMjYuNS0uNTUuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNS44MiAxNCA2LjgyIDE0aDguMzdjMSAwIDEuODEtLjc4IDEuODEtMS43NHMtLjgtMS43NC0xLjgxLTEuNzRoLS41NWMtLjMgMC0uNTUtLjIyLS41NS0uNUEzLjAyIDMuMDIgMCAwIDAgMTEgNy4wMVpNNS44NSAyLjAyYTQuMjQgNC4yNCAwIDAgMSAzLjg3IDMuMTRjLS4zOC4wOC0uNzQuMi0xLjA3LjM2QTMuMDUgMy4wNSAwIDAgMCA3IDMuMzhjLS4xOC0uMS0uMzQtLjE3LS41My0uMjRhNS44NyA1Ljg3IDAgMCAxLS42MyAzLjQ0IDUgNSAwIDAgMS0yLjU1IDEuOSA0LjU4IDQuNTggMCAwIDAgMS4zNy44Yy0uMzQuMjItLjY0LjUtLjg4LjhsLS4yOS0uMTRhNC4yNCA0LjI0IDAgMCAxLTEuMzctMS4yNy42My42MyAwIDAgMSAuMy0uOTVjMS4zOC0uNSAyLjEyLTEuMDQgMi41NC0xLjg1LjQ3LS44OS41NS0xLjgyLjI0LTMuMDgtLjEtLjQxLjIzLS44LjY1LS43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJSYWluU25vd0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyUmFpblNub3dGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgNGMyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE3IDEwLjI0IDIuODIgMi44MiAwIDAgMSAxNC4xMyAxM2gtMS41YS41LjUgMCAxIDEtLjk1IDBINy40NGwtMS41IDIuNzVhLjUuNSAwIDAgMS0uOS0uNGwuMDMtLjA4TDYuMyAxM2gtLjQzQTIuODIgMi44MiAwIDAgMSAzIDEwLjI0YTIuODIgMi44MiAwIDAgMSAyLjg3LTIuNzdoLjA2QzYuMTMgNS41NyA3LjUzIDQgMTAgNFptMS41IDExYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0tMi4yLS45NGMuMjIuMTIuMzEuMzcuMjQuNTlsLS4wNC4wOC0uNTYgMS4wMWEuNS41IDAgMCAxLS42OC4yLjQ5LjQ5IDAgMCAxLS4yMy0uNTlsLjAzLS4wOC41Ni0xLjAxYS41LjUgMCAwIDEgLjY4LS4yWm00LjItLjA2YS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclJhaW5Tbm93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyUmFpblNub3dSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwIDRjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxNyAxMC4yNCAyLjgyIDIuODIgMCAwIDEgMTQuMTMgMTNoLTEuNWEuNS41IDAgMSAxLS45NSAwSDcuNDRsLTEuNSAyLjc1YS41LjUgMCAwIDEtLjktLjRsLjAzLS4wOEw2LjMgMTNoLS40M0EyLjgyIDIuODIgMCAwIDEgMyAxMC4yNGEyLjgyIDIuODIgMCAwIDEgMi44Ny0yLjc3aC4wNkM2LjEzIDUuNTcgNy41MyA0IDEwIDRabTEuNSAxMWEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptLTIuMi0uOTRjLjIyLjEyLjMxLjM3LjI0LjU5bC0uMDQuMDgtLjU2IDEuMDFhLjUuNSAwIDAgMS0uNjguMi40OS40OSAwIDAgMS0uMjMtLjU5bC4wMy0uMDguNTYtMS4wMWEuNS41IDAgMCAxIC42OC0uMlptNC4yLS4wNmEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVpNMTAgNWEzLjA0IDMuMDQgMCAwIDAtMy4wOSAzLjAyYzAgLjI4LS4yNS41LS41NC41aC0uNTVjLTEgMC0xLjgyLjc4LTEuODIgMS43NFM0LjgxIDEyIDUuODIgMTJoOC4zNmMxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU25vd0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU25vd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk04LjUgMTVhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFabTMgMGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVpNNyAxNGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptMyAwYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0zIDBhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTEwIDRjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxNyAxMC4yNCAyLjgyIDIuODIgMCAwIDEgMTQuMTMgMTNINS44N0EyLjgyIDIuODIgMCAwIDEgMyAxMC4yNGMwLTEuNDcgMS4yLTIuNjcgMi43LTIuNzZoLjIzQzYuMTMgNS41NSA3LjUzIDQgMTAgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJTbm93UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU25vd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNOC41IDE1YS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0zIDBhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTcgMTRhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFabTMgMGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptMyAwYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWk0xMCA0YzIuNDYgMCAzLjg2IDEuNTcgNC4wNyAzLjQ3aC4wNkEyLjgyIDIuODIgMCAwIDEgMTcgMTAuMjQgMi44MiAyLjgyIDAgMCAxIDE0LjEzIDEzSDUuODdBMi44MiAyLjgyIDAgMCAxIDMgMTAuMjRjMC0xLjQ3IDEuMi0yLjY3IDIuNy0yLjc2aC4yM0M2LjEzIDUuNTUgNy41MyA0IDEwIDRabTAgMWEzLjA0IDMuMDQgMCAwIDAtMy4wOSAzLjAyYzAgLjI4LS4yNS41LS41NC41aC0uNTVjLTEgMC0xLjgyLjc4LTEuODIgMS43NFM0LjgxIDEyIDUuODIgMTJoOC4zNmMxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDEwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU25vd1Nob3dlckRheUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU25vd1Nob3dlckRheUZpbGxlZCcsIFwiMWVtXCIsIFtcIk05LjUgMTdhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFabTMgMGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVpNOCAxNmEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptMyAwYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0zIDBhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTExIDZjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxOCAxMi4yNCAyLjgyIDIuODIgMCAwIDEgMTUuMTMgMTVINi44N0EyLjgyIDIuODIgMCAwIDEgNCAxMi4yNGEyLjgyIDIuODIgMCAwIDEgMi44Ny0yLjc3aC4wNkM3LjEzIDcuNTcgOC41MyA2IDExIDZaTTMuOCA4LjdhLjUuNSAwIDAgMS0uMjIuNmwtLjA5LjA0LS44LjI3YS41LjUgMCAwIDEtLjQtLjlsLjA4LS4wNC44LS4yOGEuNS41IDAgMCAxIC42My4zMVptNS4xMi00LjJjLjMzLjE2LjYyLjM3Ljg3LjYyYTQuNTcgNC41NyAwIDAgMC0zLjU0IDMuMTZsLS4wNy4yMi0uMDQuMTktLjE3LjAzYy0uNDUuMDktLjg3LjI2LTEuMjUuNWEzLjI4IDMuMjggMCAwIDEgNC4yLTQuNzJabS02IC4xN0wzIDQuN2wuNzYuMzdhLjUuNSAwIDAgMS0uMzUuOTNsLS4wOS0uMDMtLjc2LS4zN2EuNS41IDAgMCAxIC4zNi0uOTNaTTkuOTkgMi4zYy4yMi4xLjMzLjM1LjI2LjU4bC0uMDMuMDgtLjM3Ljc3YS41LjUgMCAwIDEtLjkzLS4zNmwuMDMtLjA4LjM3LS43NmEuNS41IDAgMCAxIC42Ny0uMjNabS0zLjgtLjA0LjA1LjA5LjI3LjhhLjUuNSAwIDAgMS0uOS40bC0uMDQtLjA4LS4yOC0uOGEuNS41IDAgMCAxIC45LS40WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclNub3dTaG93ZXJEYXlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTbm93U2hvd2VyRGF5UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgMTdhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFabTMgMGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVpNOCAxNmEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptMyAwYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0zIDBhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTExIDZjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxOCAxMi4yNCAyLjgyIDIuODIgMCAwIDEgMTUuMTMgMTVINi44N0EyLjgyIDIuODIgMCAwIDEgNCAxMi4yNGEyLjgyIDIuODIgMCAwIDEgMi44Ny0yLjc3aC4wNkM3LjEzIDcuNTcgOC41MyA2IDExIDZabTAgMWEzLjA0IDMuMDQgMCAwIDAtMy4wOSAzLjAyYzAgLjI4LS4yNS41LS41NC41aC0uNTVjLTEgMC0xLjgyLjc4LTEuODIgMS43NFM1LjgxIDE0IDYuODIgMTRoOC4zNmMxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDExIDdaTTMuOCA4LjdhLjUuNSAwIDAgMS0uMjIuNmwtLjA5LjA0LS44LjI3YS41LjUgMCAwIDEtLjQtLjlsLjA4LS4wNC44LS4yOGEuNS41IDAgMCAxIC42My4zMVptNS4xMi00LjJjLjMzLjE2LjYyLjM3Ljg3LjYyLS40LjA4LS43OC4yMS0xLjEzLjM3YTIuMjggMi4yOCAwIDAgMC0zLjAxIDMuM2MtLjMzLjEtLjY0LjI1LS45My40M2EzLjI4IDMuMjggMCAwIDEgNC4yLTQuNzJabS02IC4xN0wzIDQuN2wuNzYuMzdhLjUuNSAwIDAgMS0uMzUuOTNsLS4wOS0uMDMtLjc2LS4zN2EuNS41IDAgMCAxIC4zNi0uOTNaTTkuOTkgMi4zYy4yMi4xLjMzLjM1LjI2LjU4bC0uMDMuMDgtLjM3Ljc3YS41LjUgMCAwIDEtLjkzLS4zNmwuMDMtLjA4LjM3LS43NmEuNS41IDAgMCAxIC42Ny0uMjNabS0zLjgtLjA0LjA1LjA5LjI3LjhhLjUuNSAwIDAgMS0uOS40bC0uMDQtLjA4LS4yOC0uOGEuNS41IDAgMCAxIC45LS40WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclNub3dTaG93ZXJOaWdodEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU25vd1Nob3dlck5pZ2h0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTkuNSAxN2EuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptMyAwYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWk04IDE2YS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0zIDBhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFabTMgMGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVpNMTEgNmMyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEyLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNUg2Ljg3QTIuODIgMi44MiAwIDAgMSA0IDEyLjI0YzAtMS40NyAxLjItMi42NyAyLjctMi43NmguMjNDNy4xMyA3LjU1IDguNTMgNiAxMSA2Wk01Ljg0IDJhNC4yNCA0LjI0IDAgMCAxIDMuODggMy4xNCA0LjU2IDQuNTYgMCAwIDAtMy40NyAzLjE0bC0uMDcuMjItLjA0LjE5LS4xNy4wM2MtLjg5LjE4LTEuNjYuNjctMi4yIDEuMzZsLS4yOC0uMTVBNC4yNCA0LjI0IDAgMCAxIDIuMSA4LjY2YS42My42MyAwIDAgMSAuMy0uOTVjMS4zOC0uNDkgMi4xMi0xLjA0IDIuNTUtMS44NS40Ni0uODkuNTUtMS44Mi4yNC0zLjA4LS4xLS40MS4yMi0uOC42NC0uNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU25vd1Nob3dlck5pZ2h0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU25vd1Nob3dlck5pZ2h0UmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgMTdhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFabTMgMGEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVpNOCAxNmEuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptMyAwYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWm0zIDBhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaTTExIDZjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxOCAxMi4yNCAyLjgyIDIuODIgMCAwIDEgMTUuMTMgMTVINi44N0EyLjgyIDIuODIgMCAwIDEgNCAxMi4yNGEyLjgyIDIuODIgMCAwIDEgMi44Ny0yLjc3aC4wNkM3LjEzIDcuNTcgOC41MyA2IDExIDZabTAgMWEzLjA0IDMuMDQgMCAwIDAtMy4wOSAzLjAyYzAgLjI4LS4yNS41LS41NC41aC0uNTVjLTEgMC0xLjgyLjc4LTEuODIgMS43NFM1LjgxIDE0IDYuODIgMTRoOC4zNmMxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDExIDdaTTUuODQgMmE0LjI0IDQuMjQgMCAwIDEgMy44OCAzLjE0Yy0uMzkuMDgtLjc0LjItMS4wOC4zNkEzLjA1IDMuMDUgMCAwIDAgNyAzLjM4Yy0uMTktLjEtLjM0LS4xOC0uNTQtLjI1YTUuODcgNS44NyAwIDAgMS0uNjIgMy40NCA1IDUgMCAwIDEtMi41NiAxLjljLjE0LjEyLjMuMjMuNDUuMzQuMzEuMi42Mi4zNS45Mi40Ni0uMzMuMjItLjYzLjUtLjg4LjhsLS4yOC0uMTRBNC4yNCA0LjI0IDAgMCAxIDIuMSA4LjY2YS42My42MyAwIDAgMSAuMy0uOTVjMS4zOC0uNDkgMi4xMi0xLjA0IDIuNTUtMS44NS40Ni0uODkuNTUtMS44Mi4yNC0zLjA4LS4xLS40MS4yMi0uOC42NC0uNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU25vd2ZsYWtlRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTbm93Zmxha2VGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMuNDEgMCAuNzUuMzQuNzUuNzV2Mi4xOWwxLjQ3LTEuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi41MyAyLjUzdjIuMTloMi4xOWwyLjUzLTIuNTNhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMS40NyAxLjQ3aDIuMTlhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjE5bDEuNDcgMS40N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0yLjUzLTIuNTNoLTIuMTl2Mi4xOWwyLjUzIDIuNTNhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMS40Ny0xLjQ3djIuMTlhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjE5bC0xLjQ3IDEuNDdhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwyLjUzLTIuNTN2LTIuMTlINy4wNmwtMi41MyAyLjUzYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMS40Ny0xLjQ3SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuMTlMMy40NyA3Ljc4YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi41MyAyLjUzaDIuMTlWNy4wNkw2LjcyIDQuNTNhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxLjQ3IDEuNDdWMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclNub3dmbGFrZVJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlclNub3dmbGFrZVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2My4wNGwxLjktMS45YS41LjUgMCAwIDEgLjcuNzFsLTIuNiAyLjZWOS41aDIuNTRsMi42LTIuNmEuNS41IDAgMCAxIC43MS43bC0xLjkgMS45aDMuMDVhLjUuNSAwIDAgMSAwIDFoLTMuMDRsMS45IDEuOWEuNS41IDAgMCAxLS43MS43bC0yLjYtMi42SDEwLjV2Mi41NGwyLjYgMi42YS41LjUgMCAwIDEtLjcuNzFsLTEuOS0xLjl2My4wNWEuNS41IDAgMCAxLTEgMHYtMy4wNGwtMS45IDEuOWEuNS41IDAgMCAxLS43LS43MWwyLjYtMi42VjEwLjVINi45NmwtMi42IDIuNmEuNS41IDAgMCAxLS43MS0uN2wxLjktMS45SDIuNWEuNS41IDAgMCAxIDAtMWgzLjA0bC0xLjktMS45YS41LjUgMCAxIDEgLjcxLS43bDIuNiAyLjZIOS41VjYuOTZsLTIuNi0yLjZhLjUuNSAwIDEgMSAuNy0uNzFsMS45IDEuOVYyLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJTcXVhbGxzRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTcXVhbGxzRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYuMDcgNS44MUEzLjUgMy41IDAgMSAxIDkuNSAxMEgyLjc1YS43NS43NSAwIDEgMSAwLTEuNUg5LjVhMiAyIDAgMSAwLTEuOTYtMi40bC0uMDUuM0EuNzUuNzUgMCAwIDEgNiA2LjFsLjA2LS4yOVptNy4yOSAzLjU0YTIuNDUgMi40NSAwIDAgMSA0LjY0IDEuMXYuMDVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0uOTJhMi4zNyAyLjM3IDAgMCAxLTIuMiAzLjI1Yy0uOCAwLTEuNTUtLjQtMS45OS0xLjA2bC0uMDEtLjAyYS43NS43NSAwIDEgMSAxLjI0LS44M2wuMDIuMDJhLjg4Ljg4IDAgMCAwIDEuNjEtLjQ4YzAtLjQ5LS40LS44OC0uODgtLjg4SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41SDE1LjVhMSAxIDAgMCAwIDEtMXYtLjA1YS45NS45NSAwIDAgMC0xLjgtLjQzbC0uMDMuMDdhLjc1Ljc1IDAgMSAxLTEuMzQtLjY4bC4wMy0uMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU3F1YWxsc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2VhdGhlclNxdWFsbHNSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTYuNTcgNi4xMUEzLjI1IDMuMjUgMCAxIDEgOS43NSAxMEgyLjVhLjUuNSAwIDEgMSAwLTFoNy4yNWEyLjI1IDIuMjUgMCAxIDAtMi4yLTIuN2wtLjA2LjNhLjUuNSAwIDEgMS0uOTgtLjJsLjA2LS4yOVpNMTMgMTAuNWEyLjUgMi41IDAgMSAxIDIuNSAyLjVoLTEuMzhhMi4yNSAyLjI1IDAgMSAxLTQuMSAxLjYxbC0uMDEtLjAzYS41LjUgMCAxIDEgLjk4LS4xNnYuMDNjLjEuNi42NCAxLjA1IDEuMjUgMS4wNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVIMi41MWEuNS41IDAgMCAxIDAtMWgxM2ExLjUgMS41IDAgMSAwLTEuNS0xLjUuNS41IDAgMCAxLTEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJTdW5ueUZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU3VubnlGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm00IDhhNCA0IDAgMSAxLTggMCA0IDQgMCAwIDEgOCAwWm0zLjUuNWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAwIDAgMWgxWk0xMCAxNmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0tNi41LTUuNWEuNS41IDAgMCAwIDAtMUgyLjQ2YS41LjUgMCAwIDAgMCAxSDMuNVptLjY1LTYuMzVjLjItLjIuNS0uMi43IDBsMSAxYS41LjUgMCAxIDEtLjcuN2wtMS0xYS41LjUgMCAwIDEgMC0uN1ptLjcgMTEuN2EuNS41IDAgMCAxLS43LS43bDEtMWEuNS41IDAgMCAxIC43LjdsLTEgMVptMTEtMTEuN2EuNS41IDAgMCAwLS43IDBsLTEgMWEuNS41IDAgMCAwIC43LjdsMS0xYS41LjUgMCAwIDAgMC0uN1ptLS43IDExLjdhLjUuNSAwIDAgMCAuNy0uN2wtMS0xYS41LjUgMCAwIDAtLjcuN2wxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU3VubnlSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTdW5ueVJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0wIDEyYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFptMC0xYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlptNy41LTIuNWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAwIDAgMWgxWk0xMCAxNmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0tNi41LTUuNWEuNS41IDAgMCAwIDAtMUgyLjQ2YS41LjUgMCAwIDAgMCAxSDMuNVptLjY1LTYuMzVjLjItLjIuNS0uMi43IDBsMSAxYS41LjUgMCAxIDEtLjcuN2wtMS0xYS41LjUgMCAwIDEgMC0uN1ptLjcgMTEuN2EuNS41IDAgMCAxLS43LS43bDEtMWEuNS41IDAgMCAxIC43LjdsLTEgMVptMTEtMTEuN2EuNS41IDAgMCAwLS43IDBsLTEgMWEuNS41IDAgMCAwIC43LjdsMS0xYS41LjUgMCAwIDAgMC0uN1ptLS43IDExLjdhLjUuNSAwIDAgMCAuNy0uN2wtMS0xYS41LjUgMCAwIDAtLjcuN2wxIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU3VubnlIaWdoRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTdW5ueUhpZ2hGaWxsZWQnLCBcIjFlbVwiLCBbXCJNOS41IDMuNXYtMWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwWk03IDhhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0yLjUgNC41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0xIDBaTTQuNSA4YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTExIDFoLTFhLjUuNSAwIDAgMSAwLTFoMWEuNS41IDAgMCAxIDAgMVpNNi4xNSA1Ljg1YS41LjUgMCAxIDAgLjctLjdsLTEtMWEuNS41IDAgMSAwLS43LjdsMSAxWm0uNyA1LjNhLjUuNSAwIDAgMC0uNyAwbC0xIDFhLjUuNSAwIDEgMCAuNy43bDEtMWEuNS41IDAgMCAwIDAtLjdabTctNS4zYS41LjUgMCAwIDEtLjctLjdsMS0xYS41LjUgMCAwIDEgLjcuN2wtMSAxWm0tLjcgNS4zYy4yLS4yLjUtLjIuNyAwbDEgMWEuNS41IDAgMCAxLS43LjdsLTEtMWEuNS41IDAgMCAxIDAtLjdabS03LjAyIDUuM0M3LjE4IDE2LjIgOC40NiAxNiAxMCAxNmMxLjY3IDAgMy4wNS4yMyA0LjEzLjUzYTExLjE3IDExLjE3IDAgMCAxIDMuMDIgMS4zM2wuMDMuMDNhLjUuNSAwIDAgMCAuNjMtLjc4bC0uMDItLjAyLS4wNC0uMDNhNC44IDQuOCAwIDAgMC0uODItLjVjLS41Ny0uMzEtMS40Mi0uNy0yLjUzLTFBMTYuNTcgMTYuNTcgMCAwIDAgMTAgMTVjLTEuNjIgMC0zIC4yLTQuMTEuNDlhMTIuNDYgMTIuNDYgMCAwIDAtMy40NSAxLjQ0IDQuODQgNC44NCAwIDAgMC0uMjMuMTZsLS4wMS4wMWgtLjAxdi4wMWEuNS41IDAgMCAwIC42Mi43OCAxLjYgMS42IDAgMCAxIC4xOS0uMTMgMTEuNDUgMTEuNDUgMCAwIDEgMy4xNC0xLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU3VubnlIaWdoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWF0aGVyU3VubnlIaWdoUmVndWxhcicsIFwiMWVtXCIsIFtcIk05LjUgMi41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0xIDBaTTEwIDVhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02Wk04IDhhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0tMS44NyA4LjQ2QzcuMTggMTYuMTkgOC40NiAxNiAxMCAxNmMxLjY3IDAgMy4wNS4yMyA0LjEzLjUzYTExLjE3IDExLjE3IDAgMCAxIDMuMDIgMS4zM2wuMDMuMDNhLjUuNSAwIDAgMCAuNjMtLjc4bC0uMDItLjAyLS4wNC0uMDNhNC44IDQuOCAwIDAgMC0uODItLjVjLS41Ny0uMzEtMS40Mi0uNy0yLjUzLTFBMTYuNTcgMTYuNTcgMCAwIDAgMTAgMTVjLTEuNjIgMC0zIC4yLTQuMTEuNDlhMTIuNDYgMTIuNDYgMCAwIDAtMy40NSAxLjQ0IDQuODQgNC44NCAwIDAgMC0uMjMuMTZsLS4wMS4wMWgtLjAxdi4wMWEuNS41IDAgMCAwIC42Mi43OCAxLjYgMS42IDAgMCAxIC4xOS0uMTMgMTEuNDUgMTEuNDUgMCAwIDEgMy4xNC0xLjNaTTkuNSAxMy41di0xYS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDBaTTQgOC41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm0xMC41LjVoMWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAwIDAgMVpNNi44NSA1Ljg1YS41LjUgMCAwIDEtLjcgMGwtMS0xYS41LjUgMCAxIDEgLjctLjdsMSAxYy4yLjIuMi41IDAgLjdabS0uNyA1LjNhLjUuNSAwIDEgMSAuNy43bC0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFabTctNS4zYy4yLjIuNS4yLjcgMGwxLTFhLjUuNSAwIDAgMC0uNy0uN2wtMSAxYS41LjUgMCAwIDAgMCAuN1ptLjcgNS4zYS41LjUgMCAwIDAtLjcuN2wxIDFhLjUuNSAwIDAgMCAuNy0uN2wtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgV2VhdGhlclN1bm55TG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTdW5ueUxvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjY2IDExYTQuNSA0LjUgMCAwIDEgNC4zOC01LjQ3QTQuNDggNC40OCAwIDAgMSAxNC40IDExaDMuMDlhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEgMC0xaDMuMTZabTQuNDcgN2EuNS41IDAgMCAxLS4yMSAwaC4yMVpNNS4wOCA0LjM4IDUgNC4zMmEuNS41IDAgMCAwLS42NC43N2wuODYuODYuMDcuMDVhLjUuNSAwIDAgMCAuNjMtLjc2bC0uODUtLjg2Wm0xMC42Ni42NGEuNS41IDAgMCAwLS43Ny0uNjRsLS44NS44Ni0uMDYuMDdhLjUuNSAwIDAgMCAuNzYuNjRsLjg2LS44Ni4wNi0uMDdabS01LjIyLTIuNTlhLjUuNSAwIDAgMC0xIC4xdjEuMmwuMDIuMWEuNS41IDAgMCAwIC45OS0uMXYtMS4ybC0uMDEtLjFaTTguNSAxNmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01IDE0YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOUEuNS41IDAgMCAxIDUgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyU3VubnlMb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJTdW5ueUxvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41NSAxMC4wMmMwIC4zMy4wNC42Ni4xMS45OEgyLjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTMuMWE0LjUgNC41IDAgMCAwLTQuMzYtNS40N2MtMi40OCAwLTQuNDkgMi4wMS00LjQ5IDQuNDlabTcuODMuOThINi43YTMuNDggMy40OCAwIDEgMSA2LjY4IDBabS0zLjM1IDcuMDFhLjUuNSAwIDAgMCAuMS0uMDFoLS4yMWEuNS41IDAgMCAwIC4xLjAxWk01IDQuMzJsLjA3LjA2Ljg1Ljg2QS41LjUgMCAwIDEgNS4zIDZsLS4wNy0uMDUtLjg2LS44NkEuNS41IDAgMCAxIDUgNC4zMlptMTAuNjcuMDZjLjE3LjE4LjIuNDQuMDYuNjRsLS4wNi4wNy0uODYuODZhLjUuNSAwIDAgMS0uNzYtLjY0bC4wNi0uMDcuODUtLjg2Yy4yLS4yLjUyLS4yLjcxIDBabS01LjY1LTIuMzZhLjUuNSAwIDAgMSAuNDkuNDF2MS4zYS41LjUgMCAwIDEtLjk4LjFsLS4wMS0uMXYtMS4yYzAtLjI4LjIyLS41LjUtLjVaTTguNSAxNmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01IDE0YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOUEuNS41IDAgMCAxIDUgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBXZWF0aGVyVGh1bmRlcnN0b3JtRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJUaHVuZGVyc3Rvcm1GaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTEuNjEgMTIuMTNjLjIuMTguMjIuNS4wNC43TDEwLjYyIDE0aDEuODhhLjUuNSAwIDAgMSAuNC44MWwtMi40NiAzYS41LjUgMCAwIDEtLjc4LS42MmwxLjgtMi4xOUg5LjVhLjUuNSAwIDAgMS0uMzctLjgzbDEuNzgtMmEuNS41IDAgMCAxIC43LS4wNFpNMTEgNmMyLjQ2IDAgMy44NiAxLjU3IDQuMDcgMy40N2guMDZBMi44MiAyLjgyIDAgMCAxIDE4IDEyLjI0IDIuODIgMi44MiAwIDAgMSAxNS4xMyAxNWgtMS4yMWExLjUgMS41IDAgMCAwLTEuMTUtMS45N2wtLjEzLS4wMmExLjUgMS41IDAgMCAwLTIuNTYtMS40bC0xLjcgMS44OWMtLjQuNDUtLjQ3IDEuMDItLjMgMS41aC0xLjJBMi44MiAyLjgyIDAgMCAxIDQgMTIuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA3LjU3IDguNTMgNiAxMSA2Wk04LjQgM2MxLjQ1IDAgMi43Mi44MyAzLjM0IDIuMDRBNi4wNSA2LjA1IDAgMCAwIDExIDVDOC42IDUgNi44NyA2LjMgNi4yNSA4LjI5bC0uMDcuMjEtLjA0LjE5LS4xNy4wM2EzLjczIDMuNzMgMCAwIDAtMi43MSAyLjI2IDIuNjIgMi42MiAwIDAgMSAxLjItNC44NmguMjJBMy43NyAzLjc3IDAgMCAxIDguMzkgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYXRoZXJUaHVuZGVyc3Rvcm1SZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dlYXRoZXJUaHVuZGVyc3Rvcm1SZWd1bGFyJywgXCIxZW1cIiwgW1wibTkuMTMgMTQuMTcgMS43Ny0yYS41LjUgMCAwIDEgLjguNmwtLjA2LjA3TDEwLjYyIDE0aDEuODhjLjQgMCAuNjIuNDIuNDQuNzVsLS4wNS4wNi0yLjQ0IDNhLjUuNSAwIDAgMS0uODQtLjU0bC4wNS0uMDggMS44LTIuMTlIOS41YS41LjUgMCAwIDEtLjQyLS43NmwuMDUtLjA3IDEuNzctMi0xLjc3IDJaTTExIDZjMi40NiAwIDMuODYgMS41NyA0LjA3IDMuNDdoLjA2QTIuODIgMi44MiAwIDAgMSAxOCAxMi4yNCAyLjgyIDIuODIgMCAwIDEgMTUuMTMgMTVoLTEuMjZhMS4wNyAxLjA3IDAgMCAwIC4wMS0xaDEuM2MxIDAgMS44Mi0uNzggMS44Mi0xLjc0cy0uODEtMS43NC0xLjgyLTEuNzRoLS41NWMtLjI5IDAtLjU0LS4yMi0uNTQtLjVBMy4wMiAzLjAyIDAgMCAwIDExIDdhMy4wNCAzLjA0IDAgMCAwLTMuMDkgMy4wMmMwIC4yOC0uMjUuNS0uNTQuNWgtLjU1Yy0xIDAtMS44Mi43OC0xLjgyIDEuNzRTNS44MSAxNCA2LjgyIDE0aDEuM2ExLjA3IDEuMDcgMCAwIDAgMCAxSDYuODhBMi44MiAyLjgyIDAgMCAxIDQgMTIuMjRhMi44MiAyLjgyIDAgMCAxIDIuODctMi43N2guMDZDNy4xMyA3LjU3IDguNTMgNiAxMSA2Wk04LjQgM2MxLjQ1IDAgMi43Mi44MyAzLjM0IDIuMDRhNi4wNSA2LjA1IDAgMCAwLTEuMjgtLjAyIDIuNjUgMi42NSAwIDAgMC00LjcgMS4ybC0uMDQuMjJhMSAxIDAgMCAxLS45OS44MmgtLjI2Yy0uODEgMC0xLjQ3LjY3LTEuNDcgMS41IDAgLjU3LjMxIDEuMDYuNzggMS4zMS0uMjIuMjgtLjQuNTgtLjUyLjlhMi42MiAyLjYyIDAgMCAxIDEuMi00Ljg1aC4yMkEzLjc3IDMuNzcgMCAwIDEgOC4zOSAzWlwiXSk7XG5leHBvcnQgY29uc3QgV2ViQXNzZXRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2ViQXNzZXRGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy41IDBhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFdlYkFzc2V0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXZWJBc3NldFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNi41IDZhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdoaXRlYm9hcmRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2hpdGVib2FyZEZpbGxlZCcsIFwiMWVtXCIsIFtcIm0xNy4zMyAzLjQ2LjExLjEuMS4xMWMuNjQuNzYuNjEgMS45LS4xIDIuNmwtMy42IDMuNjNjLS4yMi4yMi0uNS4zOC0uOC40N2wtMS45Ni42YS44NC44NCAwIDAgMS0xLjA0LTEuMDhsLjYyLTEuOTRjLjEtLjI5LjI1LS41NS40Ny0uNzZsMy42LTMuNjNhMS45IDEuOSAwIDAgMSAyLjYtLjFaTTEyLjkgNEg0LjVBMi41IDIuNSAwIDAgMCAyIDYuNXYyLjI2Yy41Mi0uNDggMS4xMi0uOTggMS43Mi0xLjRBNi41NSA2LjU1IDAgMCAxIDUuNyA2LjMyYy4zMi0uMDkuNjYtLjEyLjk5LS4wNS4zNC4wOC42My4yOC44NC41OS40Ny42Ny4xMyAxLjQtLjIgMS45Mi0uMTYuMjctLjM3LjU2LS41Ny44M2wtLjAyLjA0Yy0uMjEuMjktLjQyLjU4LS42MS44OC0uMTYuMjgtLjIuNjItLjEzLjg2LjAzLjEyLjEuMi4xNy4yNy4wNy4wNi4xOS4xMi4zNy4xMy4zMy4wMy43Ni0uMDggMS4zLS4yN2EuNS41IDAgMSAxIC4zMy45NCA0LjIgNC4yIDAgMCAxLTEuNzEuMzMgMS41MiAxLjUyIDAgMCAxLTEuNDEtMS4xMiAyLjE5IDIuMTkgMCAwIDEgLjIxLTEuNjVoLjAxdi0uMDFjLjIyLS4zNC40NS0uNjYuNjYtLjk1bC4wMS0uMDJjLjIxLS4yOS40LS41NC41NS0uNzguMzItLjUzLjMtLjczLjIyLS44NGEuNC40IDAgMCAwLS4yNS0uMTcgMS4wOCAxLjA4IDAgMCAwLS41LjAzYy0uNDcuMTItMS4wNC40NC0xLjY2Ljg4LS44NS42LTEuNyAxLjM4LTIuMyAxLjk4djMuMzVBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41VjcuMTNsLTMuNDUgMy40N2EyLjkgMi45IDAgMCAxLTEuMjIuNzNsLTEuOTYuNkExLjg0IDEuODQgMCAwIDEgOS4xIDkuNThsLjYyLTEuOTRjLjE0LS40NC4zOC0uODQuNy0xLjE3TDEyLjkgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdoaXRlYm9hcmRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1doaXRlYm9hcmRSZWd1bGFyJywgXCIxZW1cIiwgW1wibTE3LjMzIDMuNDYuMTEuMS4xLjExYy42NC43Ni42MSAxLjktLjEgMi42bC0zLjYgMy42M2MtLjIyLjIyLS41LjM4LS44LjQ3bC0xLjk2LjZhLjg0Ljg0IDAgMCAxLTEuMDQtMS4wOGwuNjItMS45NGMuMS0uMjkuMjUtLjU1LjQ3LS43NmwzLjYtMy42M2ExLjkgMS45IDAgMCAxIDIuNi0uMVptLTEuODguOEwxMS44NCA3LjlhLjkuOSAwIDAgMC0uMjMuMzdsLS41MyAxLjY2IDEuNjctLjVhLjkuOSAwIDAgMCAuMzgtLjIzbDMuNi0zLjYyYS45My45MyAwIDAgMCAuMDYtMS4yNGwtLjA2LS4wNi0uMDYtLjA2YS45LjkgMCAwIDAtMS4yMi4wNlpNMTIuODkgNEg1YTMgMyAwIDAgMC0zIDN2NmEzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWNy4xM2wtMSAxVjEzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjkuMjNjLjU3LS40OSAxLjM0LTEuMTEgMi4wNy0xLjU0LjQxLS4yMy43OC0uMzggMS4wNy0uNDMuMjgtLjA1LjQyIDAgLjUuMS4wOC4wNy4xLjEzLjExLjE4LjAxLjA2IDAgLjE1LS4wNC4yNy0uMS4yOC0uMy42LS42IDEuMDJsLS4xLjEzYy0uMjUuMzUtLjUzLjc0LS43MyAxLjE0LS4yMi40NS0uNCAxLS4yIDEuNTYuMTcuNS41Ljg0LjkyIDEgLjQuMTcuODUuMTUgMS4yNC4wOGE2LjUgNi41IDAgMCAwIDIuMDItLjgxLjUuNSAwIDAgMC0uNTItLjg2Yy0uNC4yNC0xLjA3LjU4LTEuNjguNjktLjMuMDUtLjUzLjA0LS43LS4wMi0uMTMtLjA2LS4yNi0uMTYtLjM0LS40LS4wNi0uMTktLjAzLS40My4xNS0uOC4xNi0uMzEuNC0uNjQuNjYtMWwuMS0uMTNjLjI3LS4zOS41OC0uODMuNzMtMS4yNy4wOC0uMjMuMTItLjUuMDgtLjc2YTEuMzIgMS4zMiAwIDAgMC0uMzktLjczYy0uNC0uNC0uOTEtLjQ2LTEuMzgtLjM4LS40Ni4wOC0uOTUuMy0xLjQuNTYtLjU0LjMxLTEuMS43Mi0xLjU3IDEuMVY3YzAtMS4xLjktMiAyLTJoNi45bDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdoaXRlYm9hcmRPZmZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2hpdGVib2FyZE9mZkZpbGxlZCcsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDMuNSA0LjIxQTIuNSAyLjUgMCAwIDAgMiA2LjV2Mi4yNmMuNTItLjQ4IDEuMTItLjk4IDEuNzItMS40LjYzLS40NSAxLjMtLjg0IDEuOTItMS4wMkw3LjYgOC4zYy0uMDguMTgtLjE3LjM0LS4yNi41LS4xNy4yNi0uMzguNTUtLjU4LjgybC0uMDIuMDRjLS4yMS4yOS0uNDIuNTgtLjYxLjg4LS4xNi4yOC0uMi42Mi0uMTMuODYuMDMuMTIuMS4yLjE3LjI3LjA3LjA2LjE5LjEyLjM3LjEzLjMzLjAzLjc2LS4wOCAxLjMtLjI3YS41LjUgMCAxIDEgLjMzLjk0IDQuMiA0LjIgMCAwIDEtMS43MS4zMyAxLjUyIDEuNTIgMCAwIDEtMS40MS0xLjEyIDIuMTkgMi4xOSAwIDAgMSAuMjEtMS42NWguMDF2LS4wMWMuMjItLjM0LjQ1LS42Ni42Ni0uOTVsLjAxLS4wMmMuMjEtLjI5LjQtLjU0LjU1LS43OC4zMi0uNTMuMy0uNzMuMjItLjg0YS40LjQgMCAwIDAtLjI1LS4xNyAxLjA4IDEuMDggMCAwIDAtLjUuMDNjLS40Ny4xMi0xLjA0LjQ0LTEuNjYuODgtLjg1LjYtMS43IDEuMzgtMi4zIDEuOTh2My4zNUEyLjUgMi41IDAgMCAwIDQuNSAxNmgxMC44bDEuODUgMS44NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptOC40IDkuOGExLjg0IDEuODQgMCAwIDEtMi4yLTIuMmwyLjIgMi4yWm0tLjczLTMuNTUgMi4xIDIuMS40Mi0uMTNjLjMtLjA5LjU4LS4yNS44LS40N2wzLjYtMy42MmMuNzEtLjcxLjc0LTEuODUuMS0yLjZsLS4xLS4xMi0uMS0uMWExLjkgMS45IDAgMCAwLTIuNi4xTDExLjEzIDcuMmExLjkgMS45IDAgMCAwLS40Ny43NmwtLjE0LjQ1Wm02LjggNi44LTMuOS0zLjljLjQzLS4xNC44LS4zOCAxLjEzLS43TDE4IDcuMTN2Ni4zN2EyLjUgMi41IDAgMCAxLS42NyAxLjdaTTYuMTMgNGwzLjYgMy42Yy4xNS0uNDIuMzgtLjguNy0xLjEyTDEyLjg5IDRINi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdoaXRlYm9hcmRPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1doaXRlYm9hcmRPZmZSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS40OCAxLjQ4QTMgMyAwIDAgMCAyIDd2NmEzIDMgMCAwIDAgMyAzaDEwbC4yOC0uMDEgMS44NyAxLjg2YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xNC4zIDE1SDVhMiAyIDAgMCAxLTItMlY5LjIzYy41Ny0uNDkgMS4zNC0xLjExIDIuMDctMS41NC40MS0uMjMuNzgtLjM4IDEuMDctLjQzLjI4LS4wNS40MiAwIC41LjEuMDguMDcuMS4xMy4xMS4xOC4wMS4wNiAwIC4xNS0uMDQuMjctLjEuMjgtLjMuNi0uNiAxLjAybC0uMS4xM2MtLjI1LjM1LS41My43NC0uNzMgMS4xNC0uMjIuNDUtLjQgMS0uMiAxLjU2LjE3LjUuNS44NC45MiAxIC40LjE3Ljg1LjE1IDEuMjQuMDhhNi41IDYuNSAwIDAgMCAyLjAyLS44MS41LjUgMCAwIDAtLjUyLS44NmMtLjQuMjQtMS4wNy41OC0xLjY4LjY5LS4zLjA1LS41My4wNC0uNy0uMDItLjEzLS4wNi0uMjYtLjE2LS4zNC0uNC0uMDYtLjE5LS4wMy0uNDMuMTUtLjguMTYtLjMxLjQtLjY0LjY2LTFsLjEtLjEzYy4yMy0uMzQuNS0uNzIuNjctMS4xTDE0LjMgMTVaTTUuNjQgNi4zNWMtLjM2LjEtLjcyLjI4LTEuMDcuNDgtLjU0LjMxLTEuMS43Mi0xLjU3IDEuMVY3YTIgMiAwIDAgMSAxLjM5LTEuOWwxLjI1IDEuMjVabTcuNCA0LjAyLS40Mi4xMy0uOC0uOC45My0uMjhhLjkuOSAwIDAgMCAuMzgtLjIzbDMuNi0zLjYyYS45My45MyAwIDAgMCAuMDYtMS4yNGwtLjA2LS4wNi0uMDYtLjA2YS45LjkgMCAwIDAtMS4yMi4wNmwtMy42MSAzLjYyYS45LjkgMCAwIDAtLjIzLjM3bC0uMy45My0uNzktLjguMTQtLjQ0Yy4xLS4yOS4yNS0uNTUuNDctLjc2bDMuNi0zLjYzYTEuOSAxLjkgMCAwIDEgMi42LS4xbC4xMS4xLjEuMTFjLjY0Ljc2LjYxIDEuOS0uMSAyLjZsLTMuNiAzLjYzYy0uMjIuMjItLjUuMzgtLjguNDdabTQuMTQgNC42OS0uNy0uN0EyIDIgMCAwIDAgMTcgMTNWOC4xNGwxLTFWMTNjMCAuOC0uMzEgMS41Mi0uODIgMi4wNlpNNi4xMiA0bDEgMWg0Ljc3bDEtMUg2LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgV2lmaTFGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2lmaTFGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNzMgNy41NmMuNC40Ljc4Ljg3IDEuMTEgMS4zNWEuNzUuNzUgMCAwIDEtMS4yMy44NSA3Ljk3IDcuOTcgMCAwIDAtMTMuMTQgMCAuNzUuNzUgMCAxIDEtMS4yMy0uODYgOS40NyA5LjQ3IDAgMCAxIDE0LjUtMS4zNFptLTIuMTQgMS45Yy40Ny40Ni44OCAxLjA0IDEuMiAxLjY0YS43NS43NSAwIDEgMS0xLjM0LjY5IDQuOTQgNC45NCAwIDAgMC04LjgyLS4wMi43NS43NSAwIDAgMS0xLjM0LS42NyA2LjQ0IDYuNDQgMCAwIDEgMTAuMy0xLjY0Wm0tMS42NCAyLjM4Yy4zNy4zNi42Ny44Ljg3IDEuMjhhLjc1Ljc1IDAgMCAxLTEuMzcuNiAyLjYzIDIuNjMgMCAwIDAtNC44Mi0uMDEuNzUuNzUgMCAxIDEtMS4zOC0uNiA0LjEzIDQuMTMgMCAwIDEgNi43LTEuMjdabS0yLjAzIDIuMDRhMS4yNCAxLjI0IDAgMSAxLTEuNzYgMS43NiAxLjI0IDEuMjQgMCAwIDEgMS43Ni0xLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgV2lmaTFSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpZmkxUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi44MyA3LjM4Yy40MS40MS44Ljg4IDEuMTQgMS4zN2EuNS41IDAgMCAxLS44My41NyA4LjYxIDguNjEgMCAwIDAtMTQuMiAwIC41LjUgMCAwIDEtLjgyLS41OCA5LjYxIDkuNjEgMCAwIDEgMTQuNzEtMS4zNlpNMTQuNiA5LjM2Yy40Ny40Ny44OCAxLjA0IDEuMTkgMS42NWEuNS41IDAgMCAxLS44OS40NiA1LjQ1IDUuNDUgMCAwIDAtOS43My0uMDEuNS41IDAgMSAxLS44OS0uNDZBNi40NSA2LjQ1IDAgMCAxIDE0LjYgOS4zNVptLTEuNzEgMi41Yy4zNS4zNS42NC43OC44NSAxLjI1YS41LjUgMCAwIDEtLjkyLjQgMy4wMyAzLjAzIDAgMCAwLTUuNTYtLjAxLjUuNSAwIDEgMS0uOTItLjQgNC4wMyA0LjAzIDAgMCAxIDYuNTQtMS4yNFptLTEuOTMgMS45M2ExLjMgMS4zIDAgMSAxLTEuODMgMS44MyAxLjMgMS4zIDAgMCAxIDEuODMtMS44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmkyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpZmkyRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE0LjU5IDkuNDVjLjQ3LjQ3Ljg4IDEuMDUgMS4yIDEuNjVhLjc1Ljc1IDAgMCAxLTEuMzQuNjkgNC45NCA0Ljk0IDAgMCAwLTguODItLjAyLjc1Ljc1IDAgMSAxLTEuMzQtLjY3IDYuNDQgNi40NCAwIDAgMSAxMC4zLTEuNjRabS0xLjY0IDIuNGMuMzcuMzUuNjcuOC44NyAxLjI3YS43NS43NSAwIDAgMS0xLjM3LjYgMi42MyAyLjYzIDAgMCAwLTQuODItLjAxLjc1Ljc1IDAgMSAxLTEuMzgtLjYgNC4xMyA0LjEzIDAgMCAxIDYuNy0xLjI3Wm0tMi4wMyAyLjAzYTEuMjQgMS4yNCAwIDEgMS0xLjc2IDEuNzYgMS4yNCAxLjI0IDAgMCAxIDEuNzYtMS43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmkyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpMlJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTQuNiA5LjM2Yy40Ny40Ny44OCAxLjA0IDEuMiAxLjY1YS41LjUgMCAxIDEtLjkuNDYgNS40NSA1LjQ1IDAgMCAwLTkuNzMtLjAxLjUuNSAwIDAgMS0uODktLjQ2QTYuNDUgNi40NSAwIDAgMSAxNC42IDkuMzVabS0xLjcxIDIuNWMuMzUuMzUuNjQuNzguODUgMS4yNWEuNS41IDAgMSAxLS45Mi40IDMuMDMgMy4wMyAwIDAgMC01LjU2LS4wMS41LjUgMCAxIDEtLjkyLS40IDQuMDMgNC4wMyAwIDAgMSA2LjU0LTEuMjRabS0xLjkzIDEuOTNhMS4zIDEuMyAwIDEgMS0xLjgzIDEuODMgMS4zIDEuMyAwIDAgMSAxLjgzLTEuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBXaWZpM0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpM0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMi45NSAxMS44NGMuMzcuMzYuNjcuOC44NyAxLjI4YS43NS43NSAwIDAgMS0xLjM3LjYgMi42MyAyLjYzIDAgMCAwLTQuODItLjAxLjc1Ljc1IDAgMSAxLTEuMzgtLjYgNC4xMyA0LjEzIDAgMCAxIDYuNy0xLjI3Wm0tMi4wMyAyLjA0YTEuMjQgMS4yNCAwIDEgMS0xLjc2IDEuNzYgMS4yNCAxLjI0IDAgMCAxIDEuNzYtMS43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmkzUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpM1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTIuODkgMTEuODVjLjM1LjM2LjY0LjguODUgMS4yNmEuNS41IDAgMSAxLS45Mi40IDMuMDMgMy4wMyAwIDAgMC01LjU2LS4wMS41LjUgMCAwIDEtLjkyLS40IDQuMDMgNC4wMyAwIDAgMSA2LjU0LTEuMjRabS0xLjkzIDEuOTRhMS4zIDEuMyAwIDEgMS0xLjgzIDEuODMgMS4zIDEuMyAwIDAgMSAxLjgzLTEuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBXaWZpNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpNEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0xMC45MiAxMy44OGExLjI0IDEuMjQgMCAxIDEtMS43NiAxLjc2IDEuMjQgMS4yNCAwIDAgMSAxLjc2LTEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBXaWZpNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2lmaTRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTEwLjk2IDEzLjc5YTEuMyAxLjMgMCAxIDEtMS44MyAxLjgzIDEuMyAxLjMgMCAwIDEgMS44My0xLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgV2lmaUxvY2tGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2lmaUxvY2tGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTYuNzMgNy41NmMuNC40Ljc4Ljg3IDEuMTEgMS4zNWEuNzUuNzUgMCAwIDEtMS4yMy44NUE3Ljk3IDcuOTcgMCAwIDAgNS4wNiA4LjAzYTMgMyAwIDAgMC0yLjQgMi4wMi43NS43NSAwIDAgMS0uNDItMS4xNSA5LjQ3IDkuNDcgMCAwIDEgMTQuNS0xLjM0Wm0tNS44IDguMDhjLS4yNi4yNS0uNi4zNy0uOTMuMzZ2LTIuNDhhMS4yNCAxLjI0IDAgMCAxIC45MiAyLjEyWm0uOTYtMi43NGEyLjYzIDIuNjMgMCAwIDAtMi4wOC0uNzYgMiAyIDAgMCAwLTEuMzEtMS4wOHYtLjEzYTQuMTMgNC4xMyAwIDAgMSA1LjMyIDIuMi43NS43NSAwIDAgMS0xLjM3LjZjLS4xMy0uMzEtLjMzLS42LS41Ni0uODNabTEuNjQtMi4zOWE0Ljk0IDQuOTQgMCAwIDAtNS40NS0xLjA0IDMuMDEgMy4wMSAwIDAgMC0xLjE1LTEuMSA2LjQ1IDYuNDUgMCAwIDEgOC44NSAyLjczLjc1Ljc1IDAgMSAxLTEuMzMuNjkgNS4xMyA1LjEzIDAgMCAwLS45Mi0xLjI4Wk0zLjUgMTF2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgV2lmaUxvY2tSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpZmlMb2NrUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNi44MyA3LjM4Yy40MS40MS44Ljg4IDEuMTMgMS4zN2EuNS41IDAgMCAxLS44Mi41NyA4LjYxIDguNjEgMCAwIDAtMTQuMiAwIC41LjUgMCAxIDEtLjgyLS41OCA5LjYxIDkuNjEgMCAwIDEgMTQuNzEtMS4zNlpNMTQuNiA5LjM2Yy40Ny40Ny44OCAxLjA0IDEuMTkgMS42NWEuNS41IDAgMCAxLS45LjQ2IDUuNDUgNS40NSAwIDAgMC03LjE4LTIuNDljLS4yNC0uMjctLjU0LS41LS44Ny0uNjdhNi40NSA2LjQ1IDAgMCAxIDcuNzYgMS4wNVptLTYuMSAxLjdhMiAyIDAgMCAxIDEuMDMuNjUgMy4wMyAzLjAzIDAgMCAxIDMuMjkgMS44LjUuNSAwIDAgMCAuOTItLjQgNC4wMyA0LjAzIDAgMCAwLTUuMjQtMi4xM3YuMDhabTEuNSAyLjM1VjE2YTEuMyAxLjMgMCAwIDAgLjk2LTIuMjIgMS4zIDEuMyAwIDAgMC0uOTYtLjM4Wk0zLjUgMTF2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAwIDAtNCAwWm0xIDF2LTFhMSAxIDAgMCAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgV2lmaU9mZkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuODkgMi44OUE5LjUgOS41IDAgMCAwIDIuMjQgOC45YS43NS43NSAwIDEgMCAxLjIzLjg2QTcuOTcgNy45NyAwIDAgMSA2LjIgNy4yN2wuOTYuOTZBNi40NCA2LjQ0IDAgMCAwIDQuMyAxMS4xYS43NS43NSAwIDAgMCAxLjM0LjY3IDQuOSA0LjkgMCAwIDEgMi42OC0yLjRsMS4yOCAxLjI4YTQuMTEgNC4xMSAwIDAgMC0zLjM0IDIuNDYuNzUuNzUgMCAxIDAgMS4zOC42IDIuNjMgMi42MyAwIDAgMSAzLjkyLTEuMWw1LjE3IDUuMTdhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTguMDkgNy4wM2E0LjkyIDQuOTIgMCAwIDEgMy4wOCAyLjU0Ljc1Ljc1IDAgMSAwIDEuMzMtLjY5QTYuNDMgNi40MyAwIDAgMCA5LjcgNy41N2wxLjY4IDEuNjhaTTguNTUgNi40M2E3Ljk2IDcuOTYgMCAwIDEgOC4wNiAzLjMzLjc1Ljc1IDAgMSAwIDEuMjMtLjg1QTkuNDcgOS40NyAwIDAgMCA3LjMxIDUuMTlsMS4yNCAxLjI0Wm0yLjM3IDkuMmExLjI0IDEuMjQgMCAxIDAtMS43Ni0xLjc1IDEuMjQgMS4yNCAwIDAgMCAxLjc2IDEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBXaWZpT2ZmUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDMuMDMgMy4wM2E5LjYzIDkuNjMgMCAwIDAtMy4wNiAyLjg2LjUuNSAwIDAgMCAuODIuNTcgOC42MSA4LjYxIDAgMCAxIDIuOTctMi43bDEuNDQgMS40NEE2LjQ0IDYuNDQgMCAwIDAgNC4yOCAxMWEuNS41IDAgMSAwIC45LjQ1QTUuNDEgNS40MSAwIDAgMSA4LjEgOC44MmwxLjg2IDEuODVhNC4wMiA0LjAyIDAgMCAwLTMuNjMgMi40My41LjUgMCAwIDAgLjkyLjQgMy4wMyAzLjAzIDAgMCAxIDMuOTMtMS42bDEuNjUgMS42NWEuNS41IDAgMCAwIC4yLjJsNC4xIDQuMWEuNS41IDAgMCAwIC43MS0uN2wtMTUtMTVaTTkuNiA3LjQ4bDEuMDIgMS4wMmE1LjQzIDUuNDMgMCAwIDEgNC4yOCAyLjk3LjUuNSAwIDAgMCAuOS0uNDZBNi40MyA2LjQzIDAgMCAwIDkuNiA3LjQ4Wk03LjE0IDUuMDFsLjguODFhOC42IDguNiAwIDAgMSA5LjIgMy41LjUuNSAwIDAgMCAuODMtLjU3QTkuNjEgOS42MSAwIDAgMCA3LjE0IDUuMDJabTMuODIgOC43OGExLjMgMS4zIDAgMSAxLTEuODMgMS44MyAxLjMgMS4zIDAgMCAxIDEuODMtMS44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmlTZXR0aW5nc0ZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpU2V0dGluZ3NGaWxsZWQnLCBcIjFlbVwiLCBbXCJNMTcuODQgOC4xMmE5LjQ3IDkuNDcgMCAwIDAtMTUuNiAwIC43NS43NSAwIDEgMCAxLjIzLjg1IDcuOTcgNy45NyAwIDAgMSAxMy4xNCAwIC43NS43NSAwIDEgMCAxLjIzLS44NVpNNy4xMSAxMS4wNWE0LjEzIDQuMTMgMCAwIDEgNC4xOC0xLjAyYy0uNS4zNi0uOTQuOC0xLjMgMS4zMWEyLjYyIDIuNjIgMCAwIDAtMi4zNiAxLjU4Ljc1Ljc1IDAgMSAxLTEuMzgtLjZjLjIxLS40Ny41LS45Ljg2LTEuMjdabTcuNDgtMi4zOS4zMy4zNmE1LjU4IDUuNTggMCAwIDAtMS45Ny4yIDQuOTQgNC45NCAwIDAgMC03LjMyIDEuNzYuNzUuNzUgMCAxIDEtMS4zNC0uNjggNi40NCA2LjQ0IDAgMCAxIDEwLjMtMS42NFptLTIuNTIgMi43OGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmlTZXR0aW5nc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2lmaVNldHRpbmdzUmVndWxhcicsIFwiMWVtXCIsIFtcIk0xNy45NiA4LjE4YTkuNjEgOS42MSAwIDAgMC0xNS44NSAwIC41LjUgMCAwIDAgLjgzLjU2IDguNjEgOC42MSAwIDAgMSAxNC4yIDAgLjUuNSAwIDEgMCAuODItLjU2Wm0tMTAuNzggMy4xYTQuMDMgNC4wMyAwIDAgMSAzLjg1LTEuMDVjLS4zMi4yNi0uNi41NS0uODYuODhhMy4wMiAzLjAyIDAgMCAwLTIuOTEgMS44Mi41LjUgMCAxIDEtLjkyLS40Yy4yLS40Ny40OS0uOS44NC0xLjI0Wm03LjQyLTIuNS4yLjIzYTUuNTkgNS41OSAwIDAgMC0xLjM1LjA5IDUuNDUgNS40NSAwIDAgMC04LjI4IDEuNzkuNS41IDAgMCAxLS44OS0uNDZBNi40NSA2LjQ1IDAgMCAxIDE0LjYgOC43OFptLTIuNTMgMi42NmEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmlXYXJuaW5nRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpZmlXYXJuaW5nRmlsbGVkJywgXCIxZW1cIiwgW1wiTTE2LjczIDcuNTZjLjQuNC43OC44NyAxLjExIDEuMzVhLjc1Ljc1IDAgMCAxLTEuMjMuODUgNy45NyA3Ljk3IDAgMCAwLTEzLjE0IDAgLjc1Ljc1IDAgMSAxLTEuMjMtLjg2IDkuNDcgOS40NyAwIDAgMSAxNC41LTEuMzRaTTUuNDggOS40NmE2LjQ0IDYuNDQgMCAwIDEgOC42NS0uNDNjLS41Mi4xLTEgLjQtMS4zMS45YTQuOTQgNC45NCAwIDAgMC03LjIgMS44NC43NS43NSAwIDAgMS0xLjMzLS42N2MuMy0uNjEuNy0xLjE2IDEuMTktMS42NVptNC4zIDYuNTEgMS4wOC0yLjE1YTEuMjQgMS4yNCAwIDEgMC0xLjA4IDIuMTVabTEuNy0zLjQuNjgtMS4zNWE0LjEzIDQuMTMgMCAwIDAtNS45IDEuOS43NS43NSAwIDAgMCAxLjM3LjZjLjEzLS4zMi4zMi0uNi41NC0uODIuOS0uOSAyLjMtMS4wMSAzLjMxLS4zM1ptMi4xMi0yLjAyLTMuNSA3QTEgMSAwIDAgMCAxMSAxOWg3YTEgMSAwIDAgMCAuOS0xLjQ1bC0zLjUtN2ExIDEgMCAwIDAtMS44IDBaTTE1IDEyLjV2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMSAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpZmlXYXJuaW5nUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaWZpV2FybmluZ1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNMTYuODMgNy4zOGMuNDEuNDEuOC44OCAxLjE0IDEuMzdhLjUuNSAwIDEgMS0uODMuNTcgOC42MSA4LjYxIDAgMCAwLTE0LjIgMCAuNS41IDAgMSAxLS44Mi0uNTggOS42MSA5LjYxIDAgMCAxIDE0LjcxLTEuMzZaTTUuNDggOS4zNmE2LjQ1IDYuNDUgMCAwIDEgOC43NS0uMzRjLS4zNy4wNS0uNzMuMi0xLjAzLjQ2YTUuNDUgNS40NSAwIDAgMC04LjAzIDEuOTcuNS41IDAgMSAxLS44OS0uNDVjLjMtLjYuNy0xLjE1IDEuMi0xLjY0Wm00LjMgNi42MiAxLjEyLTIuMjVhMS4zIDEuMyAwIDEgMC0xLjEyIDIuMjVabTEuOS0zLjgyLjQ2LS45YTQuMDMgNC4wMyAwIDAgMC01LjggMS44NC41LjUgMCAwIDAgLjkyLjQgMy4wMyAzLjAzIDAgMCAxIDQuNDMtMS4zNFptMS45Mi0xLjYtMy41IDdBMSAxIDAgMCAwIDExIDE5aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMTIuNXYzYS41LjUgMCAxIDEtMSAwdi0zYS41LjUgMCAxIDEgMSAwWm0tLjUgNS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpbmRvd0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0xIDF2N2MwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY3SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBXaW5kb3dSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpbmRvd1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAySDRabTAgMWgxMnY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjdaXCJdKTtcbmV4cG9ydCBjb25zdCBXaW5kb3dBZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaW5kb3dBZEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTQgN3Y3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODIgMCAxLjUtLjY3IDEuNS0xLjVWN0g0Wm0xLjUgMWEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNWgtNFpNOSA5djNINlY5aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBXaW5kb3dBZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QWRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNMTYgNnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjVWNmgxMlpNNCA3djcuNWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDRabTEuNSAxYS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC00Wk05IDl2M0g2VjloM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0FkT2ZmRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpbmRvd0FkT2ZmRmlsbGVkJywgXCIxZW1cIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMy40IDQuMTJjLS4yNi40LS40MS44Ny0uNDEgMS4zOHY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDljLjUgMCAuOTgtLjE1IDEuMzgtLjQybDEuMjcgMS4yN2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVptMTIuMyAxMy43Yy0uMi4xLS40Mi4xNS0uNjUuMTVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjVWN2gyLjNsMSAxSDUuNWEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTEuOGw1LjE1IDUuMTVaTTguMjkgOWwuNy43VjEySDZWOWgyLjNaTTE2IDd2Ni44N2wuOTguOThjLjAyLS4xMS4wMy0uMjMuMDMtLjM1di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Yy0uMTIgMC0uMjQgMC0uMzUuMDJMOS4xMiA3SDE2WlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93QWRPZmZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpbmRvd0FkT2ZmUmVndWxhcicsIFwiMWVtXCIsIFtcIm0yLjg1IDIuMTUgMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0xLjI3LTEuMjdjLS40LjI3LS44Ny40Mi0xLjM4LjQyaC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05YzAtLjUxLjE1LS45OC40MS0xLjM4TDIuMTUgMi44NWEuNS41IDAgMSAxIC43LS43Wm0xMi4zIDEzLjdMMTAgMTAuNzF2MS43OWEuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtNGMwLS4yOC4yMi0uNS41LS41aDEuOGwtMS0xSDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjIzIDAgLjQ1LS4wNS42NS0uMTVaTTUuMjkgNiA0LjE0IDQuODVjLS4wOS4yLS4xNC40Mi0uMTQuNjVWNmgxLjNabTMgM0g2djNoM1Y5LjdMOC4zIDlaTTE2IDZIOC4xM2wxIDFIMTZ2Ni44OGwuOTcuOTdjLjAyLS4xMS4wMy0uMjMuMDMtLjM1di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Yy0uMTIgMC0uMjQgMC0uMzUuMDJsLjk3Ljk4aDguMzhjLjgzIDAgMS41LjY3IDEuNSAxLjVWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0FkUGVyc29uRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpbmRvd0FkUGVyc29uRmlsbGVkJywgXCIxZW1cIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g1LjA0YTMuMyAzLjMgMCAwIDEgLjAxLTFINmEyIDIgMCAwIDEtMi0yVjdoMTJ2Mi4wNGMuMzYuMDYuNy4xOSAxIC4zNlY2YTMgMyAwIDAgMC0zLTNINlptMCA2aDN2M0g2VjlabS0uNS0xYS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC00Wm0xMiA0YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBXaW5kb3dBZFBlcnNvblJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QWRQZXJzb25SZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjRjLS4zLS4xNy0uNjQtLjMtMS0uMzZWN0g0djdjMCAxLjEuOSAyIDIgMmg1LjA1YTIuNTEgMi41MSAwIDAgMC0uMDEgMUg2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJoMTJhMiAyIDAgMCAwLTItMkg2Wm05LjUgMTBhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDVjMi41IDAgMy41LTEuMjUgMy41LTIuNSAwLS44My0uNjctMS41LTEuNS0xLjVoLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4yNSAxIDIuNSAzLjUgMi41Wk02IDEyaDNWOUg2djNaTTUgOC41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0FwcHNGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QXBwc0ZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2MUg0djdjMCAxLjEuOSAyIDIgMmgxdjFINmEzIDMgMCAwIDEtMy0zVjZabTExLjc1IDJDMTMuNzggOCAxMyA4Ljc4IDEzIDkuNzVWMTNIOS43NUM4Ljc4IDEzIDggMTMuNzggOCAxNC43NXYyLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi43NWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOS43NUMxOSA4Ljc4IDE4LjIyIDggMTcuMjUgOGgtMi41Wk0xOCAxNi41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNHYtNGg0djIuNVptLTQtNi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzVWMTNoLTRWOS43NVpNOS43NSAxNEgxM3Y0SDkuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93QXBwc1JlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QXBwc1JlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDF2LTFINmEyIDIgMCAwIDEtMi0yVjdoMTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMkg0Wm0xMC43NSAyQzEzLjc4IDggMTMgOC43OCAxMyA5Ljc1VjEzSDkuNzVDOC43OCAxMyA4IDEzLjc4IDggMTQuNzV2Mi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDYuNzVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjkuNzVDMTkgOC43OCAxOC4yMiA4IDE3LjI1IDhoLTIuNVpNMTggMTYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTR2LTRoNHYyLjVabS00LTYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1VjEzaC00VjkuNzVaTTkuNzUgMTRIMTN2NEg5Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1di0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0Fycm93VXBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QXJyb3dVcEZpbGxlZCcsIFwiMWVtXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2My42Yy0uMzItLjE2LS42NS0uMy0xLS40VjdINHY3YzAgMS4xLjkgMiAyIDJoMy4yYy4xLjM1LjI0LjY4LjQgMUg2YTMgMyAwIDAgMS0zLTNWNlptMTYgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NS0yLjM1LTIgMmEuNS41IDAgMCAwIC43LjdMMTQgMTMuNzF2Mi43OWEuNS41IDAgMCAwIDEgMHYtMi44bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJhLjUuNSAwIDAgMC0uMzUtLjE1LjUuNSAwIDAgMC0uMzUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBXaW5kb3dBcnJvd1VwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaW5kb3dBcnJvd1VwUmVndWxhcicsIFwiMWVtXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTE0LjUgNGgtOUM0LjY3IDQgNCA0LjY3IDQgNS41VjZoMTJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptMCAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi4zNS00Ljg1YS41LjUgMCAxIDEtLjcuN0wxNSAxMy43MXYyLjc5YS41LjUgMCAwIDEtMSAwdi0yLjhsLTEuMTUgMS4xNWEuNS41IDAgMSAxLS43LS43bDItMmEuNS41IDAgMCAxIC4zNS0uMTUuNS41IDAgMCAxIC4zNS4xNGwyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBXaW5kb3dCcnVzaEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaW5kb3dCcnVzaEZpbGxlZCcsIFwiMWVtXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMS4wOWExLjUgMS41IDAgMCAxIDAtMUg2YTIgMiAwIDAgMS0yLTJWN2gxMnYyLjI3QTIgMiAwIDAgMSAxNyA5VjZhMyAzIDAgMCAwLTMtM0g2Wm0xMS43IDguN2ExIDEgMCAwIDAtMS40LTEuNGwtMi44OSAyLjg3YTIuNSAyLjUgMCAwIDAtMy4yMSAxLjM0IDEwIDEwIDAgMCAwLS4xMS4yM2MtLjA2LjEzLS4xLjI0LS4xOC4zNS0uMTcuMjgtLjQ4LjYxLTEuNTUuOTNhLjUuNSAwIDAgMC0uMjUuNzkgNC4xMiA0LjEyIDAgMCAwIDYuMTYuNDYgMi41IDIuNSAwIDAgMCAuNTYtMi42OGwyLjg4LTIuODhabS02LjI2IDIuNzRhMS41IDEuNSAwIDAgMSAyLjEyIDIuMTIgMy4xIDMuMSAwIDAgMS00LjE2LjE1Yy43Mi0uMyAxLjEtLjY3IDEuMzYtMS4xLjExLS4xNy4yLS4zNi4yNy0uNTJsLjA3LS4xNWMuMDktLjE4LjE4LS4zNC4zNC0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0JydXNoUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaW5kb3dCcnVzaFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDEuMDlhMS41IDEuNSAwIDAgMSAwLTFINmEyIDIgMCAwIDEtMi0yVjdoMTJ2Mi4yN0EyIDIgMCAwIDEgMTcgOVY2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAySDRabTEzLjcgNS43YTEgMSAwIDAgMC0xLjQtMS40bC0yLjg5IDIuODdhMi41IDIuNSAwIDAgMC0zLjIxIDEuMzQgMTAgMTAgMCAwIDAtLjExLjIzYy0uMDYuMTMtLjEuMjQtLjE4LjM1LS4xNy4yOC0uNDguNjEtMS41NS45M2EuNS41IDAgMCAwLS4yNS43OSA0LjEyIDQuMTIgMCAwIDAgNi4xNi40NiAyLjUgMi41IDAgMCAwIC41Ni0yLjY4bDIuODgtMi44OFptLTYuMjYgMi43NGExLjUgMS41IDAgMCAxIDIuMTIgMi4xMiAzLjEgMy4xIDAgMCAxLTQuMTYuMTVjLjcyLS4zIDEuMS0uNjcgMS4zNi0xLjEuMTEtLjE3LjItLjM2LjI3LS41MmwuMDctLjE1Yy4wOS0uMTguMTgtLjM0LjM0LS41WlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93QnVsbGV0TGlzdEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaW5kb3dCdWxsZXRMaXN0RmlsbGVkJywgXCIxZW1cIiwgW1wiTTUuNTggOS4xMWEuOTcuOTcgMCAwIDAtLjA4LjM5YzAgLjE0LjAzLjI3LjA4LjQuMDQuMTIuMTIuMjIuMi4zMS4xLjA5LjIxLjE2LjMzLjIxLjEyLjA1LjI2LjA4LjM5LjA4cy4yNy0uMDIuNC0uMDhjLjExLS4wNS4yMi0uMTMuMzEtLjIyYTEgMSAwIDAgMCAwLTEuNDFjLS4xLS4wOS0uMi0uMTYtLjMzLS4yMWEuOTUuOTUgMCAwIDAtLjM4LS4wOC44Ni44NiAwIDAgMC0uNC4wOGMtLjExLjA1LS4yMi4xMy0uMzEuMjJzLS4xNi4yLS4yMS4zMVptMCA0YS45Ny45NyAwIDAgMC0uMDguMzljMCAuMTQuMDMuMjcuMDguNC4wNC4xMi4xMi4yMi4yLjMxLjEuMDkuMjEuMTYuMzMuMjEuMTIuMDUuMjYuMDguMzkuMDhzLjI3LS4wMi40LS4wOGMuMTEtLjA1LjIyLS4xMy4zMS0uMjJhMS4wMSAxLjAxIDAgMCAwIC4yOS0uNyAxIDEgMCAwIDAtLjMtLjcxYy0uMS0uMDktLjItLjE2LS4zMi0uMjFhLjk0Ljk0IDAgMCAwLS4zOC0uMDguODQuODQgMCAwIDAtLjQuMDggMS4wMSAxLjAxIDAgMCAwLS41My41M1pNOS41NSAxMGEuNTYuNTYgMCAwIDEtLjM5LS4xNS40Ni40NiAwIDAgMSAwLS43Yy4xLS4xLjI1LS4xNS4zOS0uMTVoNC40YS41Ni41NiAwIDAgMSAuNS4zMS40Ni40NiAwIDAgMS0uMTEuNTRjLS4xLjEtLjI1LjE1LS40LjE1aC00LjRabS0uMzkgMy44NWMuMS4xLjI1LjE1LjM5LjE1aDQuNGEuNTYuNTYgMCAwIDAgLjUtLjMuNDYuNDYgMCAwIDAtLjExLS41NS41Ni41NiAwIDAgMC0uNC0uMTVoLTQuNGEuNTYuNTYgMCAwIDAtLjUuMy40Ni40NiAwIDAgMCAuMTIuNTVaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgMTRWN2gxMnY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93QnVsbGV0TGlzdFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QnVsbGV0TGlzdFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNS41OCA5LjExYS45Ny45NyAwIDAgMC0uMDguMzljMCAuMTQuMDMuMjcuMDguNC4wNC4xMi4xMi4yMi4yLjMxLjEuMDkuMjEuMTYuMzMuMjEuMTIuMDUuMjYuMDguMzkuMDhzLjI3LS4wMi40LS4wOGMuMTEtLjA1LjIyLS4xMy4zMS0uMjJhMSAxIDAgMCAwIDAtMS40MWMtLjEtLjA5LS4yLS4xNi0uMzMtLjIxYS45NS45NSAwIDAgMC0uMzgtLjA4Ljg2Ljg2IDAgMCAwLS40LjA4Yy0uMTEuMDUtLjIyLjEzLS4zMS4yMnMtLjE2LjItLjIxLjMxWm0wIDRhLjk3Ljk3IDAgMCAwLS4wOC4zOWMwIC4xNC4wMy4yNy4wOC40LjA0LjEyLjEyLjIyLjIuMzEuMS4wOS4yMS4xNi4zMy4yMS4xMi4wNS4yNi4wOC4zOS4wOHMuMjctLjAyLjQtLjA4Yy4xMS0uMDUuMjItLjEzLjMxLS4yMmExLjAxIDEuMDEgMCAwIDAgLjI5LS43IDEgMSAwIDAgMC0uMy0uNzFjLS4xLS4wOS0uMi0uMTYtLjMyLS4yMWEuOTQuOTQgMCAwIDAtLjM4LS4wOC44NC44NCAwIDAgMC0uNC4wOCAxLjAxIDEuMDEgMCAwIDAtLjUzLjUzWk05LjU1IDEwYS41Ni41NiAwIDAgMS0uMzktLjE1LjQ2LjQ2IDAgMCAxIDAtLjdjLjEtLjEuMjUtLjE1LjM5LS4xNWg0LjRhLjU2LjU2IDAgMCAxIC41LjMxLjQ2LjQ2IDAgMCAxLS4xMS41NGMtLjEuMS0uMjUuMTUtLjQuMTVoLTQuNFptLS4zOSAzLjg1Yy4xLjEuMjUuMTUuMzkuMTVoNC40YS41Ni41NiAwIDAgMCAuNS0uMy40Ni40NiAwIDAgMC0uMTEtLjU1LjU2LjU2IDAgMCAwLS40LS4xNWgtNC40YS41Ni41NiAwIDAgMC0uNS4zLjQ2LjQ2IDAgMCAwIC4xMi41NVpNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJoMTJhMiAyIDAgMCAwLTItMkg2Wm0xMCAzSDR2N2MwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY3WlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93QnVsbGV0TGlzdEFkZEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdXaW5kb3dCdWxsZXRMaXN0QWRkRmlsbGVkJywgXCIxZW1cIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWN0g0djdjMCAxLjEuOSAyIDIgMmgzLjJjLjEuMzUuMjQuNjguNCAxSDZhMyAzIDAgMCAxLTMtM1Y2Wm04LjM0IDRjLjc5LS41NiAxLjczLS45IDIuNzQtLjk4YS41Ni41NiAwIDAgMC0uMTMtLjAyaC00LjRhLjU2LjU2IDAgMCAwLS41LjMuNDYuNDYgMCAwIDAgLjExLjU1Yy4xLjEuMjUuMTUuMzkuMTVoMS43OVptLTUuNzYtLjg5YS45Ny45NyAwIDAgMC0uMDguMzljMCAuMTQuMDMuMjcuMDguNC4wNC4xMi4xMi4yMi4yLjMxLjEuMDkuMjEuMTYuMzMuMjEuMTIuMDUuMjYuMDguMzkuMDhzLjI3LS4wMi40LS4wOGMuMTEtLjA1LjIyLS4xMy4zMS0uMjJhMSAxIDAgMCAwIDAtMS40MWMtLjEtLjA5LS4yLS4xNi0uMzMtLjIxYS45NS45NSAwIDAgMC0uMzgtLjA4Ljg2Ljg2IDAgMCAwLS40LjA4Yy0uMTEuMDUtLjIyLjEzLS4zMS4yMnMtLjE2LjItLjIxLjMxWk01LjUgMTMuNWEuOTcuOTcgMCAwIDEgLjI5LS43Yy4xLS4xLjItLjE3LjMyLS4yMmEuODQuODQgMCAwIDEgLjM5LS4wOGMuMTMgMCAuMjYuMDMuMzguMDhzLjIzLjEyLjMyLjJhMSAxIDAgMCAxLS43IDEuNzEuOTcuOTcgMCAwIDEtLjQtLjA3IDEuMSAxLjEgMCAwIDEtLjMxLS4yLjg0Ljg0IDAgMCAxLS4yMS0uMzIgMS4yIDEuMiAwIDAgMS0uMDgtLjRaTTE3IDE4LjI0YTQuNSA0LjUgMCAxIDEtNS03LjQ4IDQuNSA0LjUgMCAwIDEgNSA3LjQ4Wm0tMi4xNS02LjFhLjUuNSAwIDAgMC0uODUuMzZWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVhLjUuNSAwIDAgMC0uMTUtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgV2luZG93QnVsbGV0TGlzdEFkZFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93QnVsbGV0TGlzdEFkZFJlZ3VsYXInLCBcIjFlbVwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg2YTIgMiAwIDAgMS0yLTJWN2gxMnYyLjJjLjM1LjEuNjguMjQgMSAuNFY2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAySDRabTEwLjA4IDMuMDJhLjU2LjU2IDAgMCAwLS4xMy0uMDJoLTQuNGEuNTYuNTYgMCAwIDAtLjUuMy40Ni40NiAwIDAgMCAuMTEuNTVjLjEuMS4yNS4xNS4zOS4xNWgxLjc5Yy43OS0uNTYgMS43My0uOSAyLjc0LS45OFptLTguNS4wOWEuOTcuOTcgMCAwIDAtLjA4LjM5YzAgLjE0LjAzLjI3LjA4LjQuMDQuMTIuMTIuMjIuMi4zMS4xLjA5LjIxLjE2LjMzLjIxLjEyLjA1LjI2LjA4LjM5LjA4cy4yNy0uMDIuNC0uMDhjLjExLS4wNS4yMi0uMTMuMzEtLjIyYTEgMSAwIDAgMCAwLTEuNDFjLS4xLS4wOS0uMi0uMTYtLjMzLS4yMWEuOTUuOTUgMCAwIDAtLjM4LS4wOC44Ni44NiAwIDAgMC0uNC4wOGMtLjExLjA1LS4yMi4xMy0uMzEuMjJzLS4xNi4yLS4yMS4zMVpNNS41IDEzLjVhLjk3Ljk3IDAgMCAxIC4yOS0uN2MuMS0uMS4yLS4xNy4zMi0uMjJhLjg0Ljg0IDAgMCAxIC4zOS0uMDhjLjEzIDAgLjI2LjAzLjM4LjA4cy4yMy4xMi4zMi4yYTEgMSAwIDAgMS0uNyAxLjcxLjk3Ljk3IDAgMCAxLS40LS4wNyAxLjEgMS4xIDAgMCAxLS4zMS0uMi44NC44NCAwIDAgMS0uMjEtLjMyIDEuMiAxLjIgMCAwIDEtLjA4LS40Wk0xNyAxOC4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41YS41LjUgMCAwIDAtLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0NvbHVtbk9uZUZvdXJ0aExlZnRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignV2luZG93Q29sdW1uT25lRm91cnRoTGVmdEZpbGxlZCcsIFwiMWVtXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41VjZoMTR2LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk0xNyA3SDd2MTBoNy41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3Wk02IDE3VjdIM3Y3LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdINlpcIl0pO1xuZXhwb3J0IGNvbnN0IFdpbmRvd0NvbHVtbk9uZUZvdXJ0aExlZnRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1dpbmRvd0NvbHVtbk9uZUZvdXJ0aExlZnRSZWd1bGFyJywgXCIxZW1cIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTE2IDdIN3Y5aDcuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWN1pNNiAxNlY3SDR2Ny41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDZaXCJdKTsiLCJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgY3JlYXRlRmx1ZW50SWNvbiB9IGZyb20gXCIuLi91dGlscy9jcmVhdGVGbHVlbnRJY29uXCI7XG5leHBvcnQgY29uc3QgQWNjZXNzVGltZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc1RpbWUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wk02Ljk5IDguNkEuNS41IDAgMCAxIDYgOC40Yy4wMi0uMDcuMDMtLjE0LjA3LS4yNGEyIDIgMCAwIDEgLjI1LS40NmMuMjYtLjM1LjcxLS43IDEuNDItLjdBMS43IDEuNyAwIDAgMSA5LjUgOC43NWMwIC4zNS0uMDcuNjUtLjIuOWExLjggMS44IDAgMCAxLS41MS42Yy0uMTYuMTEtLjMzLjIyLS40OC4zbC0uMDYuMDRjLS4xNy4xLS4zLjE5LS40Mi4yOS0uNC4zNC0uNjYuNy0uNzcgMS4xMkg5YS41LjUgMCAwIDEgMCAxSDYuNWEuNS41IDAgMCAxLS41LS41YzAtMS4wMS40Ny0xLjc3IDEuMTctMi4zOC4yLS4xNi40LS4yOS41Ny0uNGwuMDYtLjAzLjM4LS4yNGEuOC44IDAgMCAwIC4yMy0uMjZjLjA1LS4xLjA5LS4yMy4wOS0uNDRhLjguOCAwIDAgMC0uMTktLjUzLjcuNyAwIDAgMC0uNTYtLjIyLjcuNyAwIDAgMC0uNjEuMyAxIDEgMCAwIDAtLjE1LjNaTTExIDdjLjI4IDAgLjUuMjIuNS41VjEwSDEzVjcuNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtMSAwVjExaC0yYS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc1RpbWUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzVGltZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuOTkgOC42QS41LjUgMCAwIDEgNiA4LjRhMS4yOSAxLjI5IDAgMCAxIC4wNy0uMjQgMiAyIDAgMCAxIC4yNS0uNDZjLjI2LS4zNS43MS0uNyAxLjQyLS43QTEuNyAxLjcgMCAwIDEgOS41IDguNzVjMCAuMzUtLjA3LjY1LS4yLjlhMS44IDEuOCAwIDAgMS0uNTEuNmMtLjE2LjExLS4zMy4yMi0uNDguM2wtLjA2LjA0Yy0uMTcuMS0uMy4xOS0uNDIuMjktLjQuMzQtLjY2LjctLjc3IDEuMTJIOWEuNS41IDAgMCAxIDAgMUg2LjVhLjUuNSAwIDAgMS0uNS0uNWMwLTEuMDEuNDctMS43NyAxLjE3LTIuMzguMi0uMTYuNC0uMjkuNTctLjRsLjA2LS4wMy4zOC0uMjRhLjguOCAwIDAgMCAuMjMtLjI2Yy4wNS0uMS4wOS0uMjMuMDktLjQ0YS44LjggMCAwIDAtLjE5LS41My43LjcgMCAwIDAtLjU2LS4yMi43LjcgMCAwIDAtLjYxLjMgMSAxIDAgMCAwLS4xNS4zWk0xMSA3Yy4yOCAwIC41LjIyLjUuNVYxMEgxM1Y3LjVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLTEgMFYxMWgtMmEuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVabS0xLTVhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NUaW1lMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzVGltZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWk03LjUgOC43NEEyLjMgMi4zIDAgMCAxIDkuMjUgOGMxLjE1IDAgMS45LjggMi4xNSAxLjY2LjI2Ljg1LjEgMS45LS42MiAyLjYyYTguMSA4LjEgMCAwIDEtLjc5LjY3bC0uMDQuMDNjLS4yOC4yMi0uNTMuNDEtLjc1LjYzYTIuMyAyLjMgMCAwIDAtLjU4Ljg5aDIuMTNhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMS0uNzUtLjc1YzAtMS4yNS41Mi0yLjA4IDEuMTQtMi43LjMtLjMuNjItLjU1LjktLjc2LjI4LS4yMi41LS40LjY4LS41Ny4yNy0uMjcuMzctLjcyLjI1LTEuMTMtLjEyLS4zOC0uMzctLjU5LS43Mi0uNTlzLS41My4xNC0uNjQuMjVhLjg0Ljg0IDAgMCAwLS4xNS4yMy43NS43NSAwIDAgMS0xLjQzLS40NmwuMDQtLjEuMDgtLjE3Yy4wNy0uMTQuMTgtLjMyLjM1LS41Wk0xMy4yNSA4Yy40MSAwIC43NS4zNC43NS43NXYyLjc1aDEuNVY4Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY2LjQ3YS43NS43NSAwIDAgMS0xLjUgMFYxM2gtMi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMy41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NUaW1lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc1RpbWUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03LjUgOC43NEEyLjMgMi4zIDAgMCAxIDkuMjUgOGMxLjE1IDAgMS45LjggMi4xNSAxLjY2LjI2Ljg1LjEgMS45LS42MiAyLjYyYTguMSA4LjEgMCAwIDEtLjc5LjY3bC0uMDQuMDNjLS4yOC4yMi0uNTMuNDEtLjc1LjYzYTIuMyAyLjMgMCAwIDAtLjU4Ljg5aDIuMTNhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMS0uNzUtLjc1YzAtMS4yNS41Mi0yLjA4IDEuMTQtMi43LjMtLjMuNjItLjU1LjktLjc2LjI4LS4yMi41LS40LjY4LS41Ny4yNy0uMjcuMzctLjcyLjI1LTEuMTMtLjEyLS4zOC0uMzctLjU5LS43Mi0uNTlzLS41My4xNC0uNjQuMjVhLjg0Ljg0IDAgMCAwLS4xNS4yMy43NS43NSAwIDAgMS0xLjQzLS40NmwuMDQtLjEuMDgtLjE3Yy4wNy0uMTQuMTgtLjMyLjM1LS41Wk0xMy4yNSA4Yy40MSAwIC43NS4zNC43NS43NXYyLjc1aDEuNVY4Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY2LjQ3YS43NS43NSAwIDAgMS0xLjUgMFYxM2gtMi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMy41YzAtLjQxLjM0LS43NS43NS0uNzVaTTIyIDEyYTEwIDEwIDAgMSAwLTIwIDAgMTAgMTAgMCAwIDAgMjAgMFpNMy41IDEyYTguNSA4LjUgMCAxIDEgMTcgMCA4LjUgOC41IDAgMCAxLTE3IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCA0LjVBMS43NSAxLjc1IDAgMSAwIDggMWExLjc1IDEuNzUgMCAwIDAgMCAzLjVaTTQuMiAzLjEyYTEuNiAxLjYgMCAwIDAtMi4wOC44N2MtLjMzLjgxLjA2IDEuNzQuODcgMi4wN2wxLjcuNjhhLjUuNSAwIDAgMSAuMzEuNDd2MS45MmEuNS41IDAgMCAxLS4wNi4yM2wtMS43NSAzLjNhMS42IDEuNiAwIDEgMCAyLjggMS41bDEuNzktMy4zNWMuMS0uMTguMzUtLjE4LjQ0IDBMMTAgMTQuMTZhMS42IDEuNiAwIDEgMCAyLjgxLTEuNWwtMS43NS0zLjNhLjUuNSAwIDAgMS0uMDYtLjIzVjcuMmMwLS4yLjEyLS40LjMxLS40N2wxLjctLjY4Yy44MS0uMzMgMS4yLTEuMjYuODctMi4wN2ExLjYgMS42IDAgMCAwLTIuMDgtLjg3bC0uNzguMzFjLS4yNi4xLS40NC4zLS41NC41MmEyLjc1IDIuNzUgMCAwIDEtNC45NiAwYy0uMS0uMjItLjI4LS40Mi0uNTQtLjUybC0uNzgtLjMxWlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi43NSAzLjI1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMCAxLjI1IDEuMjUgMCAwIDEtMi41IDBaTTggMWEyLjI1IDIuMjUgMCAwIDAtMi4xOSAyLjc3TDQuMiAzLjEyYTEuNiAxLjYgMCAwIDAtMi4wOC44N2MtLjMzLjgxLjA2IDEuNzQuODcgMi4wN2wyLjAxLjh2Mi40bC0xLjgxIDMuNGExLjYgMS42IDAgMSAwIDIuOCAxLjVMOCAxMC4zOWwyIDMuNzdhMS42IDEuNiAwIDAgMCAyLjgxLTEuNUwxMSA5LjI2di0yLjRsMi0uOGMuODItLjMzIDEuMjEtMS4yNi44OC0yLjA3YTEuNiAxLjYgMCAwIDAtMi4wOC0uODdsLTEuNjEuNjVBMi4yNiAyLjI2IDAgMCAwIDggMVpNMy4wNSA0LjM3YS42LjYgMCAwIDEgLjc3LS4zM2wzLjQzIDEuMzlhMiAyIDAgMCAwIDEuNSAwbDMuNDMtMS4zOWEuNi42IDAgMCAxIC43Ny4zM2MuMTMuMy0uMDIuNjQtLjMyLjc2bC0yIC44MWExIDEgMCAwIDAtLjYzLjkzdjIuMzhhMSAxIDAgMCAwIC4xMi40N2wxLjgxIDMuNDFhLjYuNiAwIDAgMS0xLjA0LjU2bC0yLTMuNzdhMSAxIDAgMCAwLTEuNzcgMGwtMiAzLjc3YS42LjYgMCAxIDEtMS4wNS0uNTZsMS44MS0zLjRBMSAxIDAgMCAwIDYgOS4yNFY2Ljg3YTEgMSAwIDAgMC0uNjMtLjkzbC0yLS44YS41OC41OCAwIDAgMS0uMzItLjc3WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wk01LjQ3IDQuMTVjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw2LjcgOC41M2MuMTguMDguMy4yNi4zLjQ2djEuODZhLjUuNSAwIDAgMS0uMDQuMTlsLTEuODQgNC41NWExLjc1IDEuNzUgMCAwIDAgMy4yNSAxLjMybDEuNC0zLjQ2Yy4wOC0uMjEuMzgtLjIxLjQ2IDBsMS40IDMuNDZhMS43NSAxLjc1IDAgMCAwIDMuMjQtMS4zMmwtMS44My00LjU0YS41LjUgMCAwIDEtLjA0LS4xOVY5YzAtLjIuMTItLjM4LjMtLjQ2bDIuNjctMS4xOWMuODgtLjQgMS4yOC0xLjQzLjg4LTIuMzFhMS43NiAxLjc2IDAgMCAwLTIuMzItLjg4bC0xLjI4LjU3Yy0uMjQuMS0uNDIuMy0uNTIuNTJhMyAzIDAgMCAxLTUuNDYgMGMtLjEtLjIxLS4yOC0uNDEtLjUyLS41MmwtMS4yOC0uNTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgNC41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWk0xMCAyYTIuNSAyLjUgMCAwIDAtMi40MyAzLjA4bC0yLjEtLjkzYy0uODgtLjQtMS45MiAwLTIuMzIuODgtLjQuODggMCAxLjkyLjg4IDIuMzFMNyA4LjY2djIuMjlsLTEuODggNC42NGExLjc1IDEuNzUgMCAwIDAgMy4yNSAxLjMybDEuNTUtMy44NS4wMy0uMDRMMTAgMTNoLjA0bC4wMy4wNSAxLjU2IDMuODRhMS43NSAxLjc1IDAgMCAwIDMuMjQtMS4zTDEzIDEwLjk1di0yLjNsMi45Ny0xLjMyYy44OC0uNCAxLjI4LTEuNDMuODgtMi4zMWExLjc2IDEuNzYgMCAwIDAtMi4zMi0uODhsLTIuMS45M0EyLjUxIDIuNTEgMCAwIDAgMTAgMlpNNC4wNyA1LjQ0YS43Ni43NiAwIDAgMSAxLS4zOGwzLjkxIDEuNzVhMi41IDIuNSAwIDAgMCAyLjA0IDBsMy45MS0xLjc1Yy4zOC0uMTcuODMgMCAxIC4zOC4xOC4zOCAwIC44Mi0uMzcuOTlMMTIuNiA3Ljc1YTEgMSAwIDAgMC0uNTkuOTF2Mi4zYTEgMSAwIDAgMCAuMDcuMzdsMS44NyA0LjY0YS43NS43NSAwIDAgMS0xLjM5LjU2TDExIDEyLjY4Yy0uMzYtLjktMS42NC0uOS0yIDBsLTEuNTYgMy44NWEuNzUuNzUgMCAxIDEtMS4zOS0uNTZsMS44OC00LjY1YTEgMSAwIDAgMCAuMDctLjM3VjguNjZhMSAxIDAgMCAwLS42LS45MUw0LjQ1IDYuNDNhLjc0Ljc0IDAgMCAxLS4zNy0uOTlaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgNi41QTIuMjUgMi4yNSAwIDEgMCAxMiAyYTIuMjUgMi4yNSAwIDAgMCAwIDQuNVpNNi4xNSA0LjE4YTIuMjcgMi4yNyAwIDAgMC0yLjk2IDEuMTggMi4yNCAyLjI0IDAgMCAwIDEuMTggMi45Nkw3LjM5IDkuNmExIDEgMCAwIDEgLjYxLjkydjMuMDRsLTEuODggNS40NmEyLjI1IDIuMjUgMCAxIDAgNC4yNiAxLjQ2bDEuMzgtNC4wMmMuMDgtLjIzLjQtLjIzLjQ4IDBsMS4zOCA0LjAyYTIuMjUgMi4yNSAwIDEgMCA0LjI2LTEuNDZMMTYgMTMuNTZ2LTMuMDRhMSAxIDAgMCAxIC42MS0uOTJsMy4wMi0xLjI4YTIuMjQgMi4yNCAwIDAgMCAxLjE4LTIuOTYgMi4yNyAyLjI3IDAgMCAwLTIuOTYtMS4xOGwtMS42LjY4Yy0uMzUuMTQtLjU4LjQyLS43LjczYTMuOCAzLjggMCAwIDEtNy4xIDBjLS4xMi0uMy0uMzUtLjU5LS43LS43M2wtMS42LS42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjUgNWMwIC42NC40IDEuMTkuOTcgMS40LjM1LjA5LjcxLjA5IDEuMDYgMEExLjUgMS41IDAgMSAwIDEwLjUgNVptLTEuNDcuNGEzIDMgMCAxIDEgNS45NSAwbDIuODctMS4yMmEyLjI3IDIuMjcgMCAwIDEgMi45NiAxLjE4IDIuMjQgMi4yNCAwIDAgMS0xLjE4IDIuOTZMMTYgOS44NnYzLjcxbDEuODggNS40NWEyLjI1IDIuMjUgMCAxIDEtNC4yNiAxLjQ2TDEyIDE1Ljc4bC0xLjYyIDQuN2EyLjI1IDIuMjUgMCAxIDEtNC4yNi0xLjQ2TDggMTMuNTZ2LTMuN0w0LjM3IDguMzJhMi4yNCAyLjI0IDAgMCAxLTEuMTgtMi45NiAyLjI3IDIuMjcgMCAwIDEgMi45Ni0xLjE4TDkuMDMgNS40Wm0yIDIuNDRjLS4xNy0uMDUtLjM0LS4xLS41LS4xN0w1LjU2IDUuNTZhLjc3Ljc3IDAgMCAwLTEgLjRjLS4xNi4zOC4wMi44MS40Ljk4bDMuNzggMS42Yy40Ni4yLjc2LjY1Ljc2IDEuMTV2My45MWMwIC4xNC0uMDIuMjgtLjA3LjRsLTEuODkgNS41YS43NS43NSAwIDEgMCAxLjQyLjVsMi4xLTYuMTNhLjk5Ljk5IDAgMCAxIDEuODcgMGwyLjExIDYuMTJhLjc1Ljc1IDAgMSAwIDEuNDItLjQ4bC0xLjg5LTUuNDlhMS4yNSAxLjI1IDAgMCAxLS4wNy0uNFY5LjY5YzAtLjUuMy0uOTUuNzYtMS4xNWwzLjc4LTEuNmMuMzktLjE3LjU2LS42LjQtLjk4YS43Ny43NyAwIDAgMC0xLS40bC00Ljk3IDIuMWMtLjE2LjA4LS4zMy4xMy0uNS4xOGEzIDMgMCAwIDEtMS45NSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHkyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDcuNUEyLjc1IDIuNzUgMCAxIDAgMTQgMmEyLjc1IDIuNzUgMCAwIDAgMCA1LjVaTTYuMjQgNS4xMmEyLjQ4IDIuNDggMCAxIDAtMS41MyA0LjcxbDQuNiAxLjVhMSAxIDAgMCAxIC42OS45NXYzLjFhMSAxIDAgMCAxLS4wNy4zN0w3LjE4IDIyLjZjLS41MSAxLjI3LjEgMi43IDEuMzYgMy4yMiAxLjI2LjUxIDIuNy0uMSAzLjIxLTEuMzZsMS43Ny00LjQxYS41LjUgMCAwIDEgLjkzIDBsMS43OCA0LjRhMi40OCAyLjQ4IDAgMSAwIDQuNTktMS44NmwtMi43NS02LjhhMSAxIDAgMCAxLS4wNy0uMzd2LTMuMTRhMSAxIDAgMCAxIC43LS45NWw0LjU5LTEuNWEyLjQ4IDIuNDggMCAwIDAtMS41My00LjdsLTMuMTEgMWMtLjQ2LjE1LS44LjQ3LTEuMDEuODJhNC4yNSA0LjI1IDAgMCAxLTcuMjggMCAxLjg3IDEuODcgMCAwIDAtMS0uODJsLTMuMTItMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHkyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEyIDUuNWEyIDIgMCAwIDAgMS41IDEuOTNjLjMzLjA2LjY3LjA2IDEgMEEyIDIgMCAxIDAgMTIgNS41Wm0tMS4zNCAxLjA2YTMuNSAzLjUgMCAxIDEgNi42OCAwbDQuNDItMS40NGEyLjQ4IDIuNDggMCAxIDEgMS41MyA0LjcxTDE4IDExLjU1djMuODJjMCAuMTYuMDMuMzIuMS40N2wyLjcyIDYuNzVhMi40OCAyLjQ4IDAgMCAxLTQuNiAxLjg2bC0yLjI0LTUuNTUtMi4yMyA1LjU2YTIuNDYgMi40NiAwIDAgMS0zLjIgMS4zNiAyLjQ4IDIuNDggMCAwIDEtMS4zNy0zLjIybDIuNzMtNi44Yy4wNi0uMTYuMDktLjMxLjA5LS40N3YtMy43OEw0LjcxIDkuODNhMi40OCAyLjQ4IDAgMCAxIDEuNTMtNC43bDQuNDIgMS40M1ptMi41MiAyLjM0Yy0uMjItLjAzLS40My0uMDktLjY1LS4xNmwtNi43NS0yLjJhLjk4Ljk4IDAgMCAwLS42IDEuODdsNS40NiAxLjc3Yy41MS4xNy44Ni42NS44NiAxLjE5djMuOTZjMCAuMzUtLjA3LjctLjIgMS4wMmwtMi43MyA2LjgxYy0uMi41LjA0IDEuMDcuNTQgMS4yN2EuOTYuOTYgMCAwIDAgMS4yNS0uNTNsMi40Ni02LjE0YTEuMjUgMS4yNSAwIDAgMSAyLjMyIDBsMi40OCA2LjEzYS45OC45OCAwIDEgMCAxLjgtLjczTDE2LjcgMTYuNGMtLjEzLS4zMi0uMi0uNjctLjItMS4wM3YtNGMwLS41NC4zNS0xLjAyLjg2LTEuMTlsNS40Ni0xLjc3YS45OC45OCAwIDEgMC0uNi0xLjg2bC02Ljc1IDIuMmMtLjIyLjA2LS40My4xMi0uNjUuMTVhMy41IDMuNSAwIDAgMS0xLjY0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTYgOWEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN1pNNy4wNyA2LjE3YTMuMDcgMy4wNyAwIDEgMC0yIDUuOGw1LjYgMS45M2MuMi4wNy4zMy4yNi4zMy40OHYzLjUxYS41LjUgMCAwIDEtLjA1LjIyTDcuMyAyNS41OGEzLjA3IDMuMDcgMCAxIDAgNS41MiAyLjdsMi43Mi01LjU4YS41LjUgMCAwIDEgLjkgMGwyLjcxIDUuNTdhMy4wNyAzLjA3IDAgMSAwIDUuNTMtMi42OWwtMy42NC03LjQ2YS41LjUgMCAwIDEtLjA1LS4yMnYtMy41MmMwLS4yMi4xNC0uNC4zNC0uNDhsNS41OS0xLjkyYTMuMDcgMy4wNyAwIDAgMC0yLTUuODFsLTIuOTggMS4wMmMtLjUyLjE4LS45LjU1LTEuMTQuOTdhNS41IDUuNSAwIDAgMS05LjYyIDAgMi4xIDIuMSAwIDAgMC0xLjE0LS45N0w3LjA3IDYuMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHkzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMy41IDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpNMTYgMmE0LjUgNC41IDAgMCAwLTQuMzIgNS43NWwtNC42LTEuNThhMy4wNyAzLjA3IDAgMCAwLTIgNS44TDExIDE0LjAzdjMuNzZhMSAxIDAgMCAxLS4xLjQ0bC0zLjYgNy4zNmEzLjA3IDMuMDcgMCAwIDAgNS41MyAyLjdsMy4xNy02LjUgMy4xNiA2LjVhMy4wNyAzLjA3IDAgMSAwIDUuNTMtMi43bC0zLjU5LTcuMzVhMSAxIDAgMCAxLS4xLS40NHYtMy43N2w1LjkzLTIuMDRhMy4wNyAzLjA3IDAgMCAwLTItNS44MWwtNC42IDEuNThBNC41IDQuNSAwIDAgMCAxNiAyWk01LjA2IDguNzJjLjItLjU2LjgtLjg1IDEuMzYtLjY2bDcuNjMgMi42MmE2IDYgMCAwIDAgMy45IDBsNy42My0yLjYyYTEuMDcgMS4wNyAwIDAgMSAuNyAyLjAzTDIwIDEyLjI0Yy0uNi4yMS0xLjAxLjc4LTEuMDEgMS40MnY0LjEzYzAgLjQ1LjEuOS4zIDEuMzFsMy42IDcuMzZhMS4wNyAxLjA3IDAgMSAxLTEuOTQuOTRsLTMuMTYtNi41YTIgMiAwIDAgMC0zLjYgMGwtMy4xNyA2LjVhMS4wNyAxLjA3IDAgMSAxLTEuOTMtLjk0bDMuNi03LjM3YTMgMyAwIDAgMCAuMy0xLjMxdi00LjEyYzAtLjY0LS40LTEuMi0xLjAxLTEuNDJMNS43MiAxMC4xYy0uNTYtLjItLjg1LS44LS42Ni0xLjM3WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHk0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDE0LjVBNS4yNSA1LjI1IDAgMSAwIDI0IDRhNS4yNSA1LjI1IDAgMCAwIDAgMTAuNVptLTEyLjMtNC4yNGE0LjI1IDQuMjUgMCAwIDAtMi45IDcuOThsNy44NyAyLjg3Yy4yLjA3LjMzLjI2LjMzLjQ3djQuNDRjMCAuMzUtLjA3LjctLjIgMS4wM2wtNC40OSAxMS4xMWE0LjI1IDQuMjUgMCAxIDAgNy44OCAzLjE4bDMuMzUtOC4yN2EuNS41IDAgMCAxIC45MiAwbDMuMzUgOC4yN2E0LjI1IDQuMjUgMCAwIDAgNy44OC0zLjE4bC00LjQ5LTExLjFjLS4xMy0uMzMtLjItLjY4LS4yLTEuMDN2LTQuNDVjMC0uMjEuMTQtLjQuMzMtLjQ3bDcuODctMi44N2E0LjI1IDQuMjUgMCAxIDAtMi45LTcuOThsLTMuODEgMS4zOGMtLjgyLjMtMS40My45LTEuODEgMS41NWE3Ljc1IDcuNzUgMCAwIDEtMTMuMzUgMCAzLjUyIDMuNTIgMCAwIDAtMS44MS0xLjU1bC0zLjgxLTEuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHk0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yMCAxMC41YTQgNCAwIDAgMCAyLjIzIDMuNTlsLjQ5LjE3Yy44My4zIDEuNzQuMyAyLjU3IDBsLjQ5LS4xN0E0IDQgMCAxIDAgMjAgMTAuNVptLTIuMiAxLjk4YTYuNSA2LjUgMCAxIDEgMTIuNCAwbDYuMS0yLjIyYTQuMjUgNC4yNSAwIDAgMSAyLjkgNy45OUwzMSAyMS4yM3Y0LjhjMCAuMzUuMDcuNy4yIDEuMDNsNC41IDExLjFhNC4yNSA0LjI1IDAgMSAxLTcuOSAzLjE4TDI0IDMxLjkybC0zLjggOS40MmE0LjI1IDQuMjUgMCAwIDEtNy44OS0zLjE4bDQuNS0xMS4xMWMuMTItLjMzLjItLjY4LjItMS4wM3YtNC43OWwtOC4yLTIuOThhNC4yNSA0LjI1IDAgMSAxIDIuOS04bDYuMSAyLjIzWm0zLjQ1IDMuOTEtMTAuNC0zLjc4YTEuNzUgMS43NSAwIDAgMC0xLjIgMy4yOWw4LjM3IDMuMDRhMi4yNSAyLjI1IDAgMCAxIDEuNDggMi4xMXY0Ljk3YzAgLjY3LS4xMyAxLjM0LS4zOCAxLjk2TDE0LjYzIDM5LjFhMS43NSAxLjc1IDAgMSAwIDMuMjUgMS4zbDQuMDMtOS45OWEyLjI1IDIuMjUgMCAwIDEgNC4xOCAwbDQuMDQgMTBhMS43NSAxLjc1IDAgMCAwIDMuMjQtMS4zMUwyOC45IDI4YTUuMjUgNS4yNSAwIDAgMS0uMzktMS45N3YtNC45OGMwLS45NC42LTEuNzkgMS40OC0yLjExbDguMzctMy4wNGExLjc1IDEuNzUgMCAxIDAtMS4yLTMuM2wtMTAuNCAzLjhhNi40OCA2LjQ4IDAgMCAxLTUuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eUNoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlDaGVja21hcmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wk01LjQ3IDQuMTVjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw2LjcgOC41M2MuMTguMDguMy4yNi4zLjQ2djEuODZhLjUuNSAwIDAgMS0uMDQuMTlsLTEuODQgNC41NWExLjc1IDEuNzUgMCAwIDAgMy4yNSAxLjMybC4wOC0uMjJBNS40OCA1LjQ4IDAgMCAxIDEzIDkuMDJWOWMwLS4yLjEyLS4zOC4zLS40NmwyLjY3LTEuMTljLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMS4yOC41N2MtLjI0LjEtLjQyLjMtLjUyLjUyYTMgMyAwIDAgMS01LjQ2IDBjLS4xLS4yMS0uMjgtLjQxLS41Mi0uNTJsLTEuMjgtLjU3Wk0xOCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlDaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eUNoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSA0LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQzIDMuMDhsLTIuMS0uOTNjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw3IDguNjZ2Mi4yOWwtMS44OCA0LjY0YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsLjA4LS4yMmE1LjQ2IDUuNDYgMCAwIDEtLjQyLTEuNjJsLS41OSAxLjQ2YS43NS43NSAwIDEgMS0xLjM5LS41NmwxLjg4LTQuNjVhMSAxIDAgMCAwIC4wNy0uMzdWOC42NmExIDEgMCAwIDAtLjYtLjkxTDQuNDUgNi40M2EuNzQuNzQgMCAwIDEtLjM3LS45OS43Ni43NiAwIDAgMSAxLS4zOGwzLjkxIDEuNzVhMi41IDIuNSAwIDAgMCAyLjA0IDBsMy45MS0xLjc1Yy4zOC0uMTcuODMgMCAxIC4zOC4xOC4zOCAwIC44Mi0uMzcuOTlMMTIuNiA3Ljc1YTEgMSAwIDAgMC0uNTkuOTF2LjU1Yy4zMi0uMS42Ni0uMTYgMS0uMTl2LS4zNmwyLjk3LTEuMzJjLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMi4xLjkzQTIuNTEgMi41MSAwIDAgMCAxMCAyWm04IDEyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eUNoZWNrbWFyazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlDaGVja21hcmsyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDYuNUEyLjI1IDIuMjUgMCAxIDAgMTIgMmEyLjI1IDIuMjUgMCAwIDAgMCA0LjVaTTYuMTUgNC4xOGEyLjI3IDIuMjcgMCAwIDAtMi45NiAxLjE4IDIuMjQgMi4yNCAwIDAgMCAxLjE4IDIuOTZMNy4zOSA5LjZhMSAxIDAgMCAxIC42MS45MnYzLjA0bC0xLjg4IDUuNDZhMi4yNSAyLjI1IDAgMSAwIDQuMjYgMS40NmwuMTQtLjQyQTYuNSA2LjUgMCAwIDEgMTYgMTEuMDJ2LS41YTEgMSAwIDAgMSAuNjEtLjkybDMuMDItMS4yOGEyLjI0IDIuMjQgMCAwIDAgMS4xOC0yLjk2IDIuMjcgMi4yNyAwIDAgMC0yLjk2LTEuMThsLTEuNi42OGMtLjM1LjE0LS41OC40Mi0uNy43M2EzLjggMy44IDAgMCAxLTcuMSAwYy0uMTItLjMtLjM1LS41OS0uNy0uNzNsLTEuNi0uNjhaTTIyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTIuMTUtMi4zNWEuNS41IDAgMCAwLS43IDBsLTMuNjUgMy42NC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNC00YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlDaGVja21hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eUNoZWNrbWFyazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjQ3IDYuNGExLjUgMS41IDAgMSAxIDEuMDYgMGMtLjM1LjA5LS43MS4wOS0xLjA2IDBaTTkgNWMwIC4xNCAwIC4yNy4wMy40TDYuMTUgNC4xOGEyLjI3IDIuMjcgMCAwIDAtMi45NiAxLjE4IDIuMjQgMi4yNCAwIDAgMCAxLjE4IDIuOTZMOCA5Ljg2djMuN2wtMS44OCA1LjQ2YTIuMjUgMi4yNSAwIDEgMCA0LjI2IDEuNDZsLjE0LS40MmE2LjQ4IDYuNDggMCAwIDEtLjUtMy4xN0w4Ljk3IDIwYS43NS43NSAwIDAgMS0xLjQyLS40OWwxLjktNS41Yy4wNC0uMTIuMDYtLjI2LjA2LS40VjkuN2MwLS41LS4zLS45Ni0uNzYtMS4xNmwtMy43OC0xLjZhLjc0Ljc0IDAgMCAxLS40LS45OC43Ny43NyAwIDAgMSAxLS40bDQuOTggMi4xYy4xNS4wOC4zMi4xMy40OC4xOGEzIDMgMCAwIDAgMS45NiAwYy4xNi0uMDUuMzMtLjEuNDktLjE3bDQuOTctMi4xMWEuNzcuNzcgMCAwIDEgMSAuNC43NC43NCAwIDAgMS0uNC45OGwtMy43OCAxLjZjLS40Ni4yLS43Ni42NS0uNzYgMS4xNXYxLjYyYy40OC0uMTUuOTgtLjI1IDEuNS0uM1Y5Ljg3bDMuNjMtMS41NGEyLjI0IDIuMjQgMCAwIDAgMS4xOC0yLjk2IDIuMjcgMi4yNyAwIDAgMC0yLjk2LTEuMThMMTQuOTcgNS40QTMuMDIgMy4wMiAwIDAgMCAxMiAyYTMgMyAwIDAgMC0zIDNabTEzIDEyLjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTIuMTUtMi4zNWEuNS41IDAgMCAwLS43IDBsLTMuNjUgMy42NC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNC00YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlDaGVja21hcmsyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5Q2hlY2ttYXJrMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCA3LjVBMi43NSAyLjc1IDAgMSAwIDE0IDJhMi43NSAyLjc1IDAgMCAwIDAgNS41Wk02LjI0IDUuMTJhMi40OCAyLjQ4IDAgMSAwLTEuNTMgNC43MWw0LjYgMS41YTEgMSAwIDAgMSAuNjkuOTV2My4xYTEgMSAwIDAgMS0uMDcuMzdMNy4xOCAyMi42Yy0uNTEgMS4yNy4xIDIuNyAxLjM2IDMuMjIgMS4yNi41MSAyLjctLjEgMy4yMS0xLjM2bC42My0xLjU4QTcuNSA3LjUgMCAwIDEgMTggMTMuMTV2LS44N2ExIDEgMCAwIDEgLjctLjk1bDQuNTktMS41YTIuNDggMi40OCAwIDAgMC0xLjUzLTQuN2wtMy4xMSAxYy0uNDYuMTUtLjguNDctMS4wMS44MmE0LjI1IDQuMjUgMCAwIDEtNy4yOCAwIDEuODcgMS44NyAwIDAgMC0xLS44MmwtMy4xMi0xWk0yNiAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS0yLjY1LTIuODVhLjUuNSAwIDAgMC0uNyAwTDE4IDIyLjI5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlDaGVja21hcmsyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eUNoZWNrbWFyazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEyIDUuNWEyIDIgMCAwIDAgMS41IDEuOTNjLjMzLjA2LjY3LjA2IDEgMEEyIDIgMCAxIDAgMTIgNS41Wm0tMS4zNCAxLjA2YTMuNSAzLjUgMCAxIDEgNi42OCAwbDQuNDItMS40NGEyLjQ4IDIuNDggMCAxIDEgMS41MyA0LjcxTDE4IDExLjU1djEuNmMtLjUyLjEtMS4wMi4yNy0xLjUuNDd2LTIuMjVjMC0uNTQuMzUtMS4wMi44Ni0xLjE5bDUuNDYtMS43N2EuOTguOTggMCAwIDAtLjYtMS44NmwtNi43NSAyLjJjLS4yMi4wNi0uNDMuMTItLjY1LjE1YTMuNSAzLjUgMCAwIDEtMS42NCAwYy0uMjItLjAzLS40My0uMDktLjY1LS4xNmwtNi43NS0yLjJhLjk4Ljk4IDAgMCAwLS42IDEuODdsNS40NiAxLjc3Yy41MS4xNy44Ni42NS44NiAxLjE5djMuOTZjMCAuMzUtLjA3LjctLjIgMS4wMmwtMi43MyA2LjgxYy0uMi41LjA0IDEuMDcuNTQgMS4yN2EuOTYuOTYgMCAwIDAgMS4yNS0uNTNsMS42OC00LjJhNy41OSA3LjU5IDAgMCAwIC4zNCAzLjE4bC0uNjMgMS41OGEyLjQ2IDIuNDYgMCAwIDEtMy4yIDEuMzYgMi40OCAyLjQ4IDAgMCAxLTEuMzctMy4yMmwyLjczLTYuOGMuMDYtLjE2LjA5LS4zMS4wOS0uNDd2LTMuNzhMNC43MSA5LjgzYTIuNDggMi40OCAwIDAgMSAxLjUzLTQuN2w0LjQyIDEuNDNaTTI2IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTIuNjUtMi44NWEuNS41IDAgMCAwLS43IDBMMTggMjIuMjlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw1LTVhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eUNoZWNrbWFyazMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlDaGVja21hcmszMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDlhMy41IDMuNSAwIDEgMCAwLTcgMy41IDMuNSAwIDAgMCAwIDdaTTcuMDcgNi4xN2EzLjA3IDMuMDcgMCAxIDAtMiA1LjhsNS42IDEuOTNjLjIuMDcuMzMuMjYuMzMuNDh2My41MWEuNS41IDAgMCAxLS4wNS4yMkw3LjMgMjUuNThhMy4wNyAzLjA3IDAgMSAwIDUuNTIgMi43bDEuNDYtM2E5LjAyIDkuMDIgMCAwIDEgNi43NC0xMS4wNi41LjUgMCAwIDEgLjMtLjMybDUuNi0xLjkyYTMuMDcgMy4wNyAwIDAgMC0yLTUuODFsLTIuOTggMS4wMmMtLjUyLjE4LS45LjU1LTEuMTQuOTdhNS41IDUuNSAwIDAgMS05LjYyIDAgMi4xIDIuMSAwIDAgMC0xLjE0LS45N0w3LjA3IDYuMTdaTTIzIDE1LjVhNy41IDcuNSAwIDEgMSAwIDE1IDcuNSA3LjUgMCAwIDEgMC0xNVptNC41MyA0LjcyYS43NS43NSAwIDAgMC0xLjA2IDBsLTQuNzIgNC43Mi0xLjk3LTEuOTdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwyLjUgMi41Yy4zLjMuNzcuMyAxLjA2IDBsNS4yNS01LjI1Yy4zLS4zLjMtLjc3IDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlDaGVja21hcmszMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlDaGVja21hcmszMkxpZ2h0JywgXCIzMlwiLCBbXCJtNi41MyA3LjA5IDYuNTYgMS42NkEzLjk5IDMuOTkgMCAwIDEgMTYgMmE0IDQgMCAwIDEgMi45IDYuNzVsNi41Ny0xLjY2YTIuODMgMi44MyAwIDEgMSAxLjMyIDUuNTFMMjEgMTMuOXYuMzJjLS4zNC4wOC0uNjcuMTgtMSAuM1YxMy41YS41LjUgMCAwIDEgLjQtLjQ5bDYuMTctMS4zOGExLjgzIDEuODMgMCAxIDAtLjg1LTMuNTdsLTcuODcgMS45OWMtMS4yMS4zLTIuNDkuMy0zLjcgMGwtNy44Ny0yYTEuODMgMS44MyAwIDEgMC0uODUgMy41N2w2LjE4IDEuNGEuNS41IDAgMCAxIC40LjQ4VjE4YS41LjUgMCAwIDEtLjA2LjIybC0zLjkgNy44YTIuMDcgMi4wNyAwIDEgMCAzLjcgMS44NWwyLjI2LTQuNWMuMDIuNi4xIDEuMTguMjQgMS43NWwtMS42IDMuMmEzLjA3IDMuMDcgMCAxIDEtNS41LTIuNzVMMTEgMTcuODhWMTMuOWwtNS43OS0xLjNhMi44MyAyLjgzIDAgMSAxIDEuMzItNS41MVpNMTYgOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabTcgNi41YTcuNSA3LjUgMCAxIDEgMCAxNSA3LjUgNy41IDAgMCAxIDAtMTVabTQuNTMgNC43MmEuNzUuNzUgMCAwIDAtMS4wNiAwbC00LjcyIDQuNzItMS45Ny0xLjk3YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwbDUuMjUtNS4yNWMuMy0uMy4zLS43NyAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hlY2ttYXJrMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlDaGVja21hcmszMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMy41IDYuNWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpNMTYgMmE0LjUgNC41IDAgMCAwLTQuMzIgNS43NWwtNC42LTEuNThhMy4wNyAzLjA3IDAgMCAwLTIgNS44TDExIDE0LjAzdjMuNzZhMSAxIDAgMCAxLS4xLjQ0bC0zLjYgNy4zNmEzLjA3IDMuMDcgMCAwIDAgNS41MyAyLjdsMS40Ni0zYTkuMDIgOS4wMiAwIDAgMSAwLTQuNTNsLS4wOS4xNS0zLjE3IDYuNWExLjA3IDEuMDcgMCAxIDEtMS45Mi0uOTRsMy41OS03LjM3YTMgMyAwIDAgMCAuMy0xLjMxdi00LjEyYzAtLjY0LS40LTEuMi0xLjAxLTEuNDJMNS43MiAxMC4xYTEuMDcgMS4wNyAwIDEgMSAuNy0yLjAzbDcuNjMgMi42MmE2IDYgMCAwIDAgMy45IDBsNy42My0yLjYyYTEuMDcgMS4wNyAwIDEgMSAuNyAyLjAzTDIwIDEyLjI0Yy0uNi4yMS0xLjAxLjc4LTEuMDEgMS40MnYxLjI4Yy42My0uMzIgMS4zLS41NiAyLS43MnYtLjJsNS45My0yLjA0YTMuMDcgMy4wNyAwIDAgMC0yLTUuODFsLTQuNiAxLjU4QTQuNSA0LjUgMCAwIDAgMTYgMlptNyAxMy41YTcuNSA3LjUgMCAxIDEgMCAxNSA3LjUgNy41IDAgMCAxIDAtMTVabTQuNTMgNC43MmEuNzUuNzUgMCAwIDAtMS4wNiAwbC00LjcyIDQuNzItMS45Ny0xLjk3YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwbDUuMjUtNS4yNWMuMy0uMy4zLS43NyAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hlY2ttYXJrNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eUNoZWNrbWFyazQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgMTQuNUE1LjI1IDUuMjUgMCAxIDAgMjQgNGE1LjI1IDUuMjUgMCAwIDAgMCAxMC41Wm0tMTIuMjktNC4yNGE0LjI1IDQuMjUgMCAwIDAtMi45IDcuOThsNy44NiAyLjg3Yy4yLjA3LjMzLjI2LjMzLjQ3djQuNDRjMCAuMzUtLjA2LjctLjIgMS4wM2wtNC40OSAxMS4xMWE0LjI1IDQuMjUgMCAxIDAgNy44OCAzLjE4bDEuMjMtMy4wNEExMy4wMiAxMy4wMiAwIDAgMSAzMSAyMi4zNXYtLjc3YzAtLjIxLjE0LS40LjMzLS40N2w3Ljg4LTIuODdhNC4yNSA0LjI1IDAgMSAwLTIuOTEtNy45OGwtMy44MSAxLjM4Yy0uODIuMy0xLjQzLjktMS44IDEuNTVhNy43NSA3Ljc1IDAgMCAxLTEzLjM2IDAgMy41MiAzLjUyIDAgMCAwLTEuOC0xLjU1bC0zLjgyLTEuMzhaTTQ1IDM1YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTQuMy00LjdhMSAxIDAgMCAwLTEuNCAwTDMyIDM3LjU4bC0zLjMtMy4zYTEgMSAwIDAgMC0xLjQgMS40Mmw0IDRhMSAxIDAgMCAwIDEuNCAwbDgtOGExIDEgMCAwIDAgMC0xLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eUNoZWNrbWFyazQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5Q2hlY2ttYXJrNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjAgMTAuNWE0IDQgMCAwIDAgMi4yMyAzLjU5bC41LjE3Yy44Mi4zIDEuNzMuMyAyLjU2IDBsLjQ5LS4xN0E0IDQgMCAxIDAgMjAgMTAuNVptLTIuMiAxLjk4YTYuNSA2LjUgMCAxIDEgMTIuNCAwbDYuMS0yLjIyYTQuMjUgNC4yNSAwIDAgMSAyLjkgNy45OUwzMSAyMS4yM3YxLjEyYy0uODcuMi0xLjcuNS0yLjUuODd2LTIuMTdjMC0uOTQuNi0xLjc5IDEuNDktMi4xMWw4LjM2LTMuMDRhMS43NSAxLjc1IDAgMSAwLTEuMi0zLjNsLTEwLjQgMy44YTYuNDggNi40OCAwIDAgMS01LjUgMGwtMTAuNC0zLjhhMS43NSAxLjc1IDAgMCAwLTEuMiAzLjNsOC4zNyAzLjA0YTIuMjUgMi4yNSAwIDAgMSAxLjQ4IDIuMTF2NC45N2MwIC42Ny0uMTMgMS4zNC0uMzggMS45NkwxNC42MyAzOS4xYTEuNzUgMS43NSAwIDEgMCAzLjI1IDEuM2wzLjYtOC45YTEzLjAxIDEzLjAxIDAgMCAwLS4wNiA2LjhsLTEuMjMgMy4wNGE0LjI1IDQuMjUgMCAwIDEtNy44OC0zLjE4bDQuNS0xMS4xMWMuMTMtLjMzLjItLjY4LjItMS4wM3YtNC43OWwtOC4yLTIuOThhNC4yNSA0LjI1IDAgMSAxIDIuOS04bDYuMSAyLjIzWk00NSAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS00LjMtNC43YTEgMSAwIDAgMC0xLjQgMEwzMiAzNy41OGwtMy4zLTMuM2ExIDEgMCAwIDAtMS40IDEuNDJsNCA0YTEgMSAwIDAgMCAxLjQgMGw4LThhMSAxIDAgMCAwIDAtMS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlFcnJvcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlFcnJvcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTUuNDcgNC4xNWMtLjg4LS40LTEuOTIgMC0yLjMyLjg4LS40Ljg4IDAgMS45Mi44OCAyLjMxTDYuNyA4LjUzYy4xOC4wOC4zLjI2LjMuNDZ2MS44NmEuNS41IDAgMCAxLS4wNC4xOWwtMS44NCA0LjU1YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsLjA4LS4yMkE1LjQ4IDUuNDggMCAwIDEgMTMgOS4wMlY5YzAtLjIuMTItLjM4LjMtLjQ2bDIuNjctMS4xOWMuODgtLjQgMS4yOC0xLjQzLjg4LTIuMzFhMS43NiAxLjc2IDAgMCAwLTIuMzItLjg4bC0xLjI4LjU3Yy0uMjQuMS0uNDIuMy0uNTIuNTJhMyAzIDAgMCAxLTUuNDYgMGMtLjEtLjIxLS4yOC0uNDEtLjUyLS41MmwtMS4yOC0uNTdaTTE4IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTEzLjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eUVycm9yMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlFcnJvcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSA0LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQzIDMuMDhsLTIuMS0uOTNjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw3IDguNjZ2Mi4yOWwtMS44OCA0LjY0YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsLjA4LS4yMmE1LjQ2IDUuNDYgMCAwIDEtLjQyLTEuNjJsLS41OSAxLjQ2YS43NS43NSAwIDEgMS0xLjM5LS41NmwxLjg4LTQuNjVhMSAxIDAgMCAwIC4wNy0uMzdWOC42NmExIDEgMCAwIDAtLjYtLjkxTDQuNDUgNi40M2EuNzQuNzQgMCAwIDEtLjM3LS45OS43Ni43NiAwIDAgMSAxLS4zOGwzLjkxIDEuNzVhMi41IDIuNSAwIDAgMCAyLjA0IDBsMy45MS0xLjc1Yy4zOC0uMTcuODMgMCAxIC4zOC4xOC4zOCAwIC44Mi0uMzcuOTlMMTIuNiA3Ljc1YTEgMSAwIDAgMC0uNTkuOTF2LjU1Yy4zMi0uMS42Ni0uMTYgMS0uMTl2LS4zNmwyLjk3LTEuMzJjLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMi4xLjkzQTIuNSAyLjUgMCAwIDAgMTAgMlptOCAxMi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMy41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlFcnJvcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlFcnJvcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgNi41QTIuMjUgMi4yNSAwIDEgMCAxMiAyYTIuMjUgMi4yNSAwIDAgMCAwIDQuNVpNNi4xNSA0LjE4YTIuMjcgMi4yNyAwIDAgMC0yLjk2IDEuMTggMi4yNCAyLjI0IDAgMCAwIDEuMTggMi45Nkw3LjM5IDkuNmExIDEgMCAwIDEgLjYxLjkydjMuMDRsLTEuODggNS40NmEyLjI1IDIuMjUgMCAxIDAgNC4yNiAxLjQ2bC4xNC0uNDJBNi41IDYuNSAwIDAgMSAxNiAxMS4wMnYtLjVhMSAxIDAgMCAxIC42MS0uOTJsMy4wMi0xLjI4YTIuMjQgMi4yNCAwIDAgMCAxLjE4LTIuOTYgMi4yNyAyLjI3IDAgMCAwLTIuOTYtMS4xOGwtMS42LjY4Yy0uMzUuMTQtLjU4LjQyLS43LjczYTMuOCAzLjggMCAwIDEtNy4xIDBjLS4xMi0uMy0uMzUtLjU5LS43LS43M2wtMS42LS42OFpNMjIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWk0xNi41IDE0YS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAxIDAgMSAwdi00YS41LjUgMCAwIDAtLjUtLjVabTAgNy4xM2EuNjMuNjMgMCAxIDAgMC0xLjI2LjYzLjYzIDAgMCAwIDAgMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlFcnJvcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5RXJyb3IyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS40NyA2LjRhMS41IDEuNSAwIDEgMSAxLjA2IDBjLS4zNS4wOS0uNzEuMDktMS4wNiAwWk05IDVjMCAuMTQgMCAuMjcuMDMuNEw2LjE1IDQuMThhMi4yNyAyLjI3IDAgMCAwLTIuOTYgMS4xOCAyLjI0IDIuMjQgMCAwIDAgMS4xOCAyLjk2TDggOS44NnYzLjdsLTEuODggNS40NmEyLjI1IDIuMjUgMCAxIDAgNC4yNiAxLjQ2bC4xNC0uNDJhNi40OCA2LjQ4IDAgMCAxLS41LTMuMTdMOC45NyAyMGEuNzUuNzUgMCAwIDEtMS40Mi0uNDlsMS45LTUuNWMuMDQtLjEyLjA2LS4yNi4wNi0uNFY5LjdjMC0uNS0uMy0uOTYtLjc2LTEuMTZsLTMuNzgtMS42YS43NC43NCAwIDAgMS0uNC0uOTguNzcuNzcgMCAwIDEgMS0uNGw0Ljk4IDIuMWMuMTUuMDguMzIuMTMuNDguMThhMyAzIDAgMCAwIDEuOTYgMGMuMTYtLjA1LjMzLS4xLjQ5LS4xN2w0Ljk3LTIuMTFhLjc3Ljc3IDAgMCAxIDEgLjQuNzQuNzQgMCAwIDEtLjQuOThsLTMuNzggMS42Yy0uNDYuMi0uNzYuNjUtLjc2IDEuMTV2MS42MmMuNDgtLjE1Ljk4LS4yNSAxLjUtLjNWOS44N2wzLjYzLTEuNTRhMi4yNCAyLjI0IDAgMCAwIDEuMTgtMi45NiAyLjI3IDIuMjcgMCAwIDAtMi45Ni0xLjE4TDE0Ljk3IDUuNEEzLjAyIDMuMDIgMCAwIDAgMTIgMmEzIDMgMCAwIDAtMyAzWm0xMyAxMi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBaTTE2LjUgMTRhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0uNS0uNVptMCA3LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eU1vcmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5TW9yZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTEuMDYgOS4zNiAxLjY2IDMuMTMtLjIyLjJhMS45OSAxLjk5IDAgMCAwLTMgMGMtLjE0LS4xNi0uMy0uMjgtLjQ5LS40bC0uNzktMS40OGEuMjUuMjUgMCAwIDAtLjQ0IDBsLS43OSAxLjQ3QTIgMiAwIDAgMCA2IDE0bC4wMS4xMy0uMDEuMDNhMS42IDEuNiAwIDEgMS0yLjgxLTEuNWwxLjc1LTMuM0EuNS41IDAgMCAwIDUgOS4xM1Y3LjJhLjUuNSAwIDAgMC0uMzEtLjQ3bC0xLjctLjY4YTEuNTggMS41OCAwIDAgMS0uODctMi4wNyAxLjYgMS42IDAgMCAxIDIuMDgtLjg3bC43OC4zMWMuMjYuMS40NC4zLjU1LjUyYTIuNzUgMi43NSAwIDAgMCA0Ljk1IDBjLjEtLjIyLjI5LS40MS41NC0uNTJsLjc4LS4zMWExLjYgMS42IDAgMCAxIDIuMDguODdjLjMzLjgxLS4wNSAxLjc0LS44NyAyLjA3bC0xLjcuNjhhLjUuNSAwIDAgMC0uMy40N3YxLjkyYzAgLjA4LjAxLjE2LjA1LjIzWk04IDQuNUExLjc1IDEuNzUgMCAxIDAgOCAxYTEuNzUgMS43NSAwIDAgMCAwIDMuNVptNiA4LjVhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm0tNiAwYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptMyAwYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlNb3JlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlNb3JlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTEgNi44NyAyLS44MWMuODItLjMzIDEuMjEtMS4yNi44OC0yLjA3YTEuNiAxLjYgMCAwIDAtMi4wOC0uODhsLTEuNi42NmEyLjI2IDIuMjYgMCAxIDAtNC4zOSAwTDQuMiAzLjEyYTEuNiAxLjYgMCAwIDAtMi4wOC44N2MtLjMzLjgxLjA2IDEuNzQuODcgMi4wN2wyLjAxLjh2Mi40bC0xLjgxIDMuNGExLjYgMS42IDAgMSAwIDIuOCAxLjVsLjAzLS4wM0w2IDE0YTIgMiAwIDAgMSAxLTEuNzJsMS0xLjkgMS4wMiAxLjkxYy4xOC4xMS4zNC4yNC40OC40LjE3LS4yLjM4LS4zNS42LS40N0w4LjkgOS45MmExIDEgMCAwIDAtMS43NyAwbC0yIDMuNzdhLjYuNiAwIDEgMS0xLjA1LS41NmwxLjgxLTMuNDFBMSAxIDAgMCAwIDYgOS4yNVY2Ljg3YTEgMSAwIDAgMC0uNjItLjkzbC0yLjAxLS44MWEuNTguNTggMCAwIDEtLjMyLS43Ni42LjYgMCAwIDEgLjc4LS4zM2wzLjQyIDEuMzlhMiAyIDAgMCAwIDEuNSAwbDMuNDMtMS4zOWEuNi42IDAgMCAxIC43Ny4zM2MuMTMuMy0uMDEuNjQtLjMyLjc2bC0yIC44MWExIDEgMCAwIDAtLjYzLjkzdjIuMzhhMSAxIDAgMCAwIC4xMi40N2wxLjIzIDIuMzJhMiAyIDAgMCAxIDEuMTUuNjVjLjA3LS4wOC4xNS0uMTQuMjItLjJMMTEgOS4yNFY2Ljg3Wk04IDQuNUExLjI1IDEuMjUgMCAxIDEgOCAyYTEuMjUgMS4yNSAwIDAgMSAwIDIuNVpNOSAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTYgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0zIDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eU1vcmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5TW9yZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQuODcgMTUuNmMuMDUuMTEuMDguMjMuMS4zNWEyLjI0IDIuMjQgMCAwIDAtMS45Ny0xLjJjLS43NyAwLTEuNDMuNC0xLjg0IDFsLS45My0yLjNhLjI1LjI1IDAgMCAwLS40NyAwbC0uNTQgMS4zM2MtLjA3IDAtLjE0LS4wMy0uMjItLjAzYTIuMjUgMi4yNSAwIDAgMC0yLjAyIDMuMjMgMS43MyAxLjczIDAgMCAxLTEuODYtMi4zOWwxLjg0LTQuNTVhLjUuNSAwIDAgMCAuMDQtLjE5VjlhLjUuNSAwIDAgMC0uMy0uNDZMNC4wMyA3LjM0YTEuNzQgMS43NCAwIDAgMS0uODgtMi4zMSAxLjc2IDEuNzYgMCAwIDEgMi4zMi0uODhsMS4yNy41N2MuMjUuMS40My4zLjUyLjUyYTMgMyAwIDAgMCA1LjQ3IDBjLjEtLjIxLjI3LS40MS41Mi0uNTJsMS4yNy0uNTdjLjg5LS40IDEuOTIgMCAyLjMyLjg4LjQuODggMCAxLjkyLS44OCAyLjMxTDEzLjMgOC41M2EuNS41IDAgMCAwLS4zLjQ2djEuODdjMCAuMDcuMDIuMTMuMDQuMTlsMS44NCA0LjU0Wk0xMCA2YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFptLTEgOS43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm00IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVptNCAwYTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5TW9yZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5TW9yZTIwUmVndWxhcicsIFwiMjBcIiwgW1wibTkgMTIuNjgtLjkyIDIuMjdjLjI4LS4xMy42LS4yLjkyLS4yLjA4IDAgLjE1LjAzLjIzLjAzbC43LTEuNzJjMC0uMDMuMDEtLjA0LjAyLS4wNEwxMCAxM2guMDRsLjAzLjA1IDEuMSAyLjdjLjItLjMuNDYtLjU1Ljc4LS43M0wxMSAxMi42OGMtLjM3LS45LTEuNjQtLjktMiAwWm03Ljg0LTcuNjVhMS43NiAxLjc2IDAgMCAwLTIuMzEtLjg4bC0yLjEuOTRBMi41MSAyLjUxIDAgMCAwIDEwIDEuOTlhMi41IDIuNSAwIDAgMC0yLjQzIDMuMWwtMi4xLS45NGMtLjg4LS40LTEuOTIgMC0yLjMyLjg4LS40Ljg4IDAgMS45Mi44OCAyLjMxTDcgOC42NnYyLjI5TDUuMTIgMTUuNmExLjc1IDEuNzUgMCAwIDAgMS44NiAyLjM4Yy0uMTQtLjMtLjIzLS42My0uMjMtLjk4LS4xIDAtLjItLjAyLS4yOS0uMDVhLjc1Ljc1IDAgMCAxLS40MS0uOThsMS44OC00LjY0YTEgMSAwIDAgMCAuMDctLjM4VjguNjZhMSAxIDAgMCAwLS42LS45MUw0LjQ1IDYuNDNhLjc0Ljc0IDAgMCAxLS4zNy0uOTguNzYuNzYgMCAwIDEgMS0uMzhMOC45OCA2LjhhMi41IDIuNSAwIDAgMCAyLjA0IDBsMy45Mi0xLjc0Yy4zOC0uMTcuODIgMCAxIC4zOC4xNy4zNyAwIC44MS0uMzguOThMMTIuNiA3Ljc1YTEgMSAwIDAgMC0uNTkuOTF2Mi4zYTEgMSAwIDAgMCAuMDcuMzhsMS40MSAzLjQ4Yy42NS4xNSAxLjE5LjU2IDEuNSAxLjEzYTEuOCAxLjggMCAwIDAtLjEtLjM1TDEzIDEwLjk2di0yLjNsMi45Ny0xLjMyYy44OC0uNCAxLjI4LTEuNDMuODgtMi4zWk0xMCA2YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm0uMjUgMTFhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTMgMTguMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptNCAwYTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBY2Nlc3NpYmlsaXR5TW9yZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlNb3JlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy44OCAxOS4wMmMuMTIuMzYuMTQuNzMuMDggMS4wOUEyLjUgMi41IDAgMCAwIDE1LjUgMThhMi41IDIuNSAwIDAgMC0yLjI0IDEuNDJsLTEuMDItMi45NmEuMjUuMjUgMCAwIDAtLjQ4IDBsLS41NiAxLjY1QTIuNDYgMi40NiAwIDAgMCA4IDIwLjVjMCAuNTUuMTkgMS4wNi41IDEuNDhhMi4yNCAyLjI0IDAgMCAxLTIuMzgtMi45Nkw4IDEzLjU2di0zLjA0YTEgMSAwIDAgMC0uNi0uOTJMNC4zNiA4LjMyYTIuMjQgMi4yNCAwIDAgMS0xLjE4LTIuOTYgMi4yNyAyLjI3IDAgMCAxIDIuOTYtMS4xOGwxLjYuNjhjLjM1LjE0LjU4LjQyLjcuNzNhMy44IDMuOCAwIDAgMCA3LjEgMGMuMTItLjMuMzUtLjU4LjctLjczbDEuNi0uNjhhMi4yNiAyLjI2IDAgMCAxIDIuOTYgMS4xOCAyLjI0IDIuMjQgMCAwIDEtMS4xOCAyLjk2TDE2LjYxIDkuNmExIDEgMCAwIDAtLjYuOTJ2My4wNGwxLjg3IDUuNDZaTTEyIDYuNUEyLjI1IDIuMjUgMCAxIDAgMTIgMmEyLjI1IDIuMjUgMCAwIDAgMCA0LjVaTTEwLjUgMTlhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNabTUgMGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptNSAwYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eU1vcmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eU1vcmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xMS4wNyAxMy44Ny0xLjQ5IDQuM2EyLjUgMi41IDAgMCAxIDEuNjEtLjA3bC44LTIuMzMgMS4yNiAzLjY1YTIuNSAyLjUgMCAwIDEgMS4xOS0xLjE4bC0xLjUxLTQuMzdhLjk5Ljk5IDAgMCAwLTEuODYgMFptOS43NC04LjVhMi4yNyAyLjI3IDAgMCAwLTIuOTYtMS4yTDE0Ljk3IDUuNGEzIDMgMCAxIDAtNS45NSAwTDYuMTYgNC4xOEEyLjI2IDIuMjYgMCAwIDAgMy4yIDUuMzZhMi4yNCAyLjI0IDAgMCAwIDEuMTggMi45Nkw4IDkuODZ2My43bC0xLjg4IDUuNDZhMi4yNSAyLjI1IDAgMCAwIDIuMzggMi45NmMtLjMxLS40Mi0uNS0uOTMtLjUtMS40OHYtLjA0YS43NS43NSAwIDAgMS0uNDYtLjk2bDEuOS01LjVjLjA0LS4xMi4wNi0uMjYuMDYtLjRWOS43YzAtLjUxLS4zLS45Ni0uNzYtMS4xNmwtMy43OC0xLjZhLjc0Ljc0IDAgMCAxLS40LS45OC43Ny43NyAwIDAgMSAxLS40bDQuOTggMi4xYy4xNS4wOC4zMi4xMy40OC4xOGEyLjk5IDIuOTkgMCAwIDAgMS45NiAwYy4xNi0uMDUuMzMtLjEuNDktLjE3bDQuOTctMi4xMWEuNzcuNzcgMCAwIDEgMSAuNC43NC43NCAwIDAgMS0uNC45N2wtMy43OCAxLjZjLS40Ni4yLS43Ni42Ni0uNzYgMS4xNnYzLjkyYzAgLjE0LjAzLjI4LjA3LjQxbDEuMzkgNC4wMmEyLjUgMi41IDAgMCAxIDIgMi4wN2MuMDYtLjM2LjA0LS43My0uMDgtMS4xTDE2IDEzLjU3VjkuODZsMy42My0xLjU0YTIuMjQgMi4yNCAwIDAgMCAxLjE4LTIuOTZaTTEyLjUzIDYuNGMtLjM1LjA5LS43MS4wOS0xLjA2IDBhMS41IDEuNSAwIDEgMSAxLjA2IDBaTTEyIDIwLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTMuNSAxLjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTUgMGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlRdWVzdGlvbk1hcmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBY2Nlc3NpYmlsaXR5UXVlc3Rpb25NYXJrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpNNS40NyA0LjE1Yy0uODgtLjQtMS45MiAwLTIuMzIuODgtLjQuODggMCAxLjkyLjg4IDIuMzFMNi43IDguNTNjLjE4LjA4LjMuMjYuMy40NnYxLjg2YS41LjUgMCAwIDEtLjA0LjE5bC0xLjg0IDQuNTVhMS43NSAxLjc1IDAgMCAwIDMuMjUgMS4zMmwuMDgtLjIyQTUuNDggNS40OCAwIDAgMSAxMyA5LjAyVjljMC0uMi4xMi0uMzguMy0uNDZsMi42Ny0xLjE5Yy44OC0uNCAxLjI4LTEuNDMuODgtMi4zMWExLjc2IDEuNzYgMCAwIDAtMi4zMi0uODhsLTEuMjguNTdjLS4yNC4xLS40Mi4zLS41Mi41MmEzIDMgMCAwIDEtNS40NiAwYy0uMS0uMjEtLjI4LS40MS0uNTItLjUybC0xLjI4LS41N1pNMTggMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuNSAxLjg4YS42Mi42MiAwIDEgMCAwIDEuMjUuNjIuNjIgMCAwIDAgMC0xLjI1Wm0wLTQuODhjLTEuMDUgMC0xLjg2LjgyLTEuODUgMS45NmEuNS41IDAgMSAwIDEtLjAxYzAtLjU4LjM2LS45NS44NS0uOTUuNDcgMCAuODUuNC44NS45NSAwIC4yLS4wNy4zMi0uMzYuNTVsLS4yNy4yMWMtLjUxLjQtLjcyLjcyLS43MiAxLjI5YS41LjUgMCAwIDAgMSAuMDl2LS4xNmMuMDItLjE0LjEtLjI1LjM1LS40NGwuMjgtLjIyYy41LS40LjcyLS43My43Mi0xLjMyIDAtMS4xLS44Mi0xLjk1LTEuODUtMS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlRdWVzdGlvbk1hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eVF1ZXN0aW9uTWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSA0LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQzIDMuMDhsLTIuMS0uOTNjLS44OC0uNC0xLjkyIDAtMi4zMi44OC0uNC44OCAwIDEuOTIuODggMi4zMUw3IDguNjZ2Mi4yOWwtMS44OCA0LjY0YTEuNzUgMS43NSAwIDAgMCAzLjI1IDEuMzJsLjA4LS4yMmE1LjQ2IDUuNDYgMCAwIDEtLjQyLTEuNjJsLS41OSAxLjQ2YS43NS43NSAwIDEgMS0xLjM5LS41NmwxLjg4LTQuNjVhMSAxIDAgMCAwIC4wNy0uMzdWOC42NmExIDEgMCAwIDAtLjYtLjkxTDQuNDUgNi40M2EuNzQuNzQgMCAwIDEtLjM3LS45OS43Ni43NiAwIDAgMSAxLS4zOGwzLjkxIDEuNzVhMi41IDIuNSAwIDAgMCAyLjA0IDBsMy45MS0xLjc1Yy4zOC0uMTcuODMgMCAxIC4zOC4xOC4zOCAwIC44Mi0uMzcuOTlMMTIuNiA3Ljc1YTEgMSAwIDAgMC0uNTkuOTF2LjU1Yy4zMi0uMS42Ni0uMTYgMS0uMTl2LS4zNmwyLjk3LTEuMzJjLjg4LS40IDEuMjgtMS40My44OC0yLjMxYTEuNzYgMS43NiAwIDAgMC0yLjMyLS44OGwtMi4xLjkzQTIuNSAyLjUgMCAwIDAgMTAgMlptOCAxMi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgQWNjZXNzaWJpbGl0eVF1ZXN0aW9uTWFyazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FjY2Vzc2liaWxpdHlRdWVzdGlvbk1hcmsyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDYuNUEyLjI1IDIuMjUgMCAxIDAgMTIgMmEyLjI1IDIuMjUgMCAwIDAgMCA0LjVaTTYuMTUgNC4xOGEyLjI3IDIuMjcgMCAwIDAtMi45NiAxLjE4IDIuMjQgMi4yNCAwIDAgMCAxLjE4IDIuOTZMNy4zOSA5LjZhMSAxIDAgMCAxIC42MS45MnYzLjA0bC0xLjg4IDUuNDZhMi4yNSAyLjI1IDAgMSAwIDQuMjYgMS40NmwuMTQtLjQyQTYuNSA2LjUgMCAwIDEgMTYgMTEuMDJ2LS41YTEgMSAwIDAgMSAuNjEtLjkybDMuMDItMS4yOGEyLjI0IDIuMjQgMCAwIDAgMS4xOC0yLjk2IDIuMjcgMi4yNyAwIDAgMC0yLjk2LTEuMThsLTEuNi42OGMtLjM1LjE0LS41OC40Mi0uNy43M2EzLjggMy44IDAgMCAxLTcuMSAwYy0uMTItLjMtLjM1LS41OS0uNy0uNzNsLTEuNi0uNjhaTTExIDE3LjVhNS41IDUuNSAwIDEgMSAxMSAwIDUuNSA1LjUgMCAwIDEtMTEgMFptNC43NSAzLjI1YS43NS43NSAwIDEgMCAxLjUgMCAuNzUuNzUgMCAwIDAtMS41IDBaTTE0LjUgMTZhLjUuNSAwIDEgMCAxIDAgMSAxIDAgMSAxIDIgMGMwIC4zNy0uMDguNTgtLjM3LjlsLS4xMS4xMi0uMjcuMjdjLS41NC41Ny0uNzUuOTgtLjc1IDEuNzFhLjUuNSAwIDEgMCAxIDBjMC0uMzcuMDgtLjU4LjM3LS45bC4xMS0uMTIuMjctLjI3Yy41NC0uNTcuNzUtLjk4Ljc1LTEuNzFhMiAyIDAgMCAwLTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFjY2Vzc2liaWxpdHlRdWVzdGlvbk1hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWNjZXNzaWJpbGl0eVF1ZXN0aW9uTWFyazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjQ3IDYuNGExLjUgMS41IDAgMSAxIDEuMDYgMGMtLjM1LjA5LS43MS4wOS0xLjA2IDBaTTkgNWMwIC4xNCAwIC4yNy4wMy40TDYuMTUgNC4xOGEyLjI3IDIuMjcgMCAwIDAtMi45NiAxLjE4IDIuMjQgMi4yNCAwIDAgMCAxLjE4IDIuOTZMOCA5Ljg2djMuN2wtMS44OCA1LjQ2YTIuMjUgMi4yNSAwIDEgMCA0LjI2IDEuNDZsLjE0LS40MmE2LjQ4IDYuNDggMCAwIDEtLjUtMy4xN0w4Ljk3IDIwYS43NS43NSAwIDAgMS0xLjQyLS40OWwxLjktNS41Yy4wNC0uMTIuMDYtLjI2LjA2LS40VjkuN2MwLS41LS4zLS45Ni0uNzYtMS4xNmwtMy43OC0xLjZhLjc0Ljc0IDAgMCAxLS40LS45OC43Ny43NyAwIDAgMSAxLS40bDQuOTggMi4xYy4xNS4wOC4zMi4xMy40OC4xOGEzIDMgMCAwIDAgMS45NiAwYy4xNi0uMDUuMzMtLjEuNDktLjE3bDQuOTctMi4xMWEuNzcuNzcgMCAwIDEgMSAuNC43NC43NCAwIDAgMS0uNC45OGwtMy43OCAxLjZjLS40Ni4yLS43Ni42NS0uNzYgMS4xNXYxLjYyYy40OC0uMTUuOTgtLjI1IDEuNS0uM1Y5Ljg3bDMuNjMtMS41NGEyLjI0IDIuMjQgMCAwIDAgMS4xOC0yLjk2IDIuMjcgMi4yNyAwIDAgMC0yLjk2LTEuMThMMTQuOTcgNS40QTMuMDIgMy4wMiAwIDAgMCAxMiAyYTMgMyAwIDAgMC0zIDNabTIgMTIuNWE1LjUgNS41IDAgMSAxIDExIDAgNS41IDUuNSAwIDAgMS0xMSAwWm00Ljc1IDMuMjVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFpNMTQuNSAxNmEuNS41IDAgMCAwIDEgMCAxIDEgMCAwIDEgMiAwYzAgLjM3LS4wOC41OC0uMzcuOWwtLjExLjEyLS4yNy4yN2MtLjU0LjU3LS43NS45OC0uNzUgMS43MWEuNS41IDAgMCAwIDEgMGMwLS4zNy4wOC0uNTguMzctLjlsLjExLS4xMi4yNy0uMjdjLjU0LS41Ny43NS0uOTguNzUtMS43MWEyIDIgMCAxIDAtNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02LjUgMS43NWEuNzUuNzUgMCAwIDAtMS41IDBWNUgxLjc1YS43NS43NSAwIDAgMCAwIDEuNUg1djMuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjYuNWgzLjI1YS43NS43NSAwIDAgMCAwLTEuNUg2LjVWMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02IDEuNWEuNS41IDAgMCAwLTEgMFY1SDEuNWEuNS41IDAgMCAwIDAgMUg1djMuNWEuNS41IDAgMCAwIDEgMFY2aDMuNWEuNS41IDAgMCAwIDAtMUg2VjEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjdIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVIN3Y0LjI1YS43NS43NSAwIDAgMCAxLjUgMFY4LjVoNC4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIOC41VjIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyLjVhLjUuNSAwIDAgMC0xIDBWN0gyLjVhLjUuNSAwIDAgMCAwIDFIN3Y0LjVhLjUuNSAwIDAgMCAxIDBWOGg0LjVhLjUuNSAwIDAgMCAwLTFIOFYyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWOUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNUg5djYuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjEwLjVoNi4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTAuNVYyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDIuNWEuNS41IDAgMCAwLTEgMFY5SDIuNWEuNS41IDAgMCAwIDAgMUg5djYuNWEuNS41IDAgMCAwIDEgMFYxMGg2LjVhLjUuNSAwIDAgMCAwLTFIMTBWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMS44OCAzSDEyYTEgMSAwIDAgMSAxIC44OFYxMWg3YTEgMSAwIDAgMSAxIC44OFYxMmExIDEgMCAwIDEtLjg4IDFIMTN2N2ExIDEgMCAwIDEtLjg4IDFIMTJhMSAxIDAgMCAxLTEtLjg4VjEzSDRhMSAxIDAgMCAxLTEtLjg4VjEyYTEgMSAwIDAgMSAuODgtMUgxMVY0YTEgMSAwIDAgMSAuODgtMUgxMmgtLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjc1IDNjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjFWMTFoNy4yNWEuNzUuNzUgMCAwIDEgLjEgMS41SDEyLjV2Ny4yNWEuNzUuNzUgMCAwIDEtMS40OS4xVjEyLjVIMy43NGEuNzUuNzUgMCAwIDEtLjEtMS41SDExVjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjQgMTNoLTlWNGExIDEgMCAxIDAtMiAwdjlINGExIDEgMCAxIDAgMCAyaDl2OWExIDEgMCAxIDAgMiAwdi05aDlhMSAxIDAgMSAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNC41IDEzVjMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjEzSDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41SDEzdjkuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjE0LjVoOS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTYuMjUgM2MuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVYxNWgxMC43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjVIMTcuNXYxMC43NWExLjI1IDEuMjUgMCAxIDEtMi41IDBWMTcuNUg0LjI1YTEuMjUgMS4yNSAwIDEgMSAwLTIuNUgxNVY0LjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTYgM2EuNS41IDAgMCAwLTEgMHYxMkgzYS41LjUgMCAwIDAgMCAxaDEydjEyYS41LjUgMCAwIDAgMSAwVjE2aDEyYS41LjUgMCAwIDAgMC0xSDE2VjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTYgM2ExIDEgMCAwIDEgMSAxdjExaDExYTEgMSAwIDEgMSAwIDJIMTd2MTFhMSAxIDAgMSAxLTIgMFYxN0g0YTEgMSAwIDEgMSAwLTJoMTFWNGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yMy41IDVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMjJoMTUuNWExLjUgMS41IDAgMCAxIDAgM0gyNXYxNS41YTEuNSAxLjUgMCAwIDEtMyAwVjI1SDYuNWExLjUgMS41IDAgMCAxIDAtM0gyMlY2LjVjMC0uODMuNjctMS41IDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjMuNzUgNS41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjIyLjVoMTUuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDI1djE1Ljc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMFYyNUg2Ljc1YTEuMjUgMS4yNSAwIDEgMSAwLTIuNUgyMi41VjYuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRDaXJjbGUxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRDaXJjbGUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTEgNmE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMSA2Wm01LTIuNWEuNDIuNDIgMCAwIDAtLjQyLjQydjEuNjZIMy45MmEuNDIuNDIgMCAwIDAgMCAuODRoMS42NnYxLjY2YS40Mi40MiAwIDAgMCAuODQgMFY2LjQyaDEuNjZhLjQyLjQyIDAgMCAwIDAtLjg0SDYuNDJWMy45MkEuNDIuNDIgMCAwIDAgNiAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRDaXJjbGUxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkQ2lyY2xlMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNiAzLjVjLjIzIDAgLjQyLjE5LjQyLjQydjEuNjZoMS42NmEuNDIuNDIgMCAwIDEgMCAuODRINi40MnYxLjY2YS40Mi40MiAwIDAgMS0uODQgMFY2LjQySDMuOTJhLjQyLjQyIDAgMCAxIDAtLjg0aDEuNjZWMy45MmMwLS4yMy4xOS0uNDIuNDItLjQyWk0xIDZhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDEgNlptNS00LjE3YTQuMTcgNC4xNyAwIDEgMCAwIDguMzQgNC4xNyA0LjE3IDAgMCAwIDAtOC4zNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZENpcmNsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZENpcmNsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhabTYtM2EuNS41IDAgMCAwLS41LjV2MmgtMmEuNS41IDAgMCAwIDAgMWgydjJhLjUuNSAwIDAgMCAxIDB2LTJoMmEuNS41IDAgMCAwIDAtMWgtMnYtMkEuNS41IDAgMCAwIDggNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZENpcmNsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRDaXJjbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDVjLjI4IDAgLjUuMjIuNS41djJoMmEuNS41IDAgMCAxIDAgMWgtMnYyYS41LjUgMCAwIDEtMSAwdi0yaC0yYS41LjUgMCAwIDEgMC0xaDJ2LTJjMC0uMjguMjItLjUuNS0uNVpNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhabTYtNWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgOCAzWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkQ2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkQ2lyY2xlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFpNNiAxMGMwIC4yOC4yMi41LjUuNWgzdjNhLjUuNSAwIDAgMCAxIDB2LTNoM2EuNS41IDAgMCAwIDAtMWgtM3YtM2EuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZENpcmNsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDEwYzAtLjI4LjIyLS41LjUtLjVoM3YtM2EuNS41IDAgMCAxIDEgMHYzaDNhLjUuNSAwIDAgMSAwIDFoLTN2M2EuNS41IDAgMCAxLTEgMHYtM2gtM0EuNS41IDAgMCAxIDYgMTBabTQgOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMC0xYTcgNyAwIDEgMSAwLTE0IDcgNyAwIDAgMSAwIDE0WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkQ2lyY2xlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkQ2lyY2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptMCA1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjMuNWgtMy41YS43NS43NSAwIDAgMC0uMSAxLjVoMy42djMuNWEuNzUuNzUgMCAwIDAgMS41LjF2LTMuNmgzLjVhLjc1Ljc1IDAgMCAwIC4xLTEuNWgtMy42di0zLjVBLjc1Ljc1IDAgMCAwIDEyIDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRDaXJjbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkQ2lyY2xlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBabTAgMS41YTguNSA4LjUgMCAxIDAgMCAxNyA4LjUgOC41IDAgMCAwIDAtMTdaTTEyIDdjLjQxIDAgLjc1LjM0Ljc1Ljc1djMuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjV2My41YS43NS43NSAwIDAgMS0xLjUgMHYtMy41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNXYtMy41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRDaXJjbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRDaXJjbGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDJhMTIgMTIgMCAxIDEgMCAyNCAxMiAxMiAwIDAgMSAwLTI0Wm0wIDZjLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjF2NC41aC00LjVhLjc1Ljc1IDAgMCAwLS4xIDEuNWg0LjZ2NC41YS43NS43NSAwIDAgMCAxLjUuMXYtNC42aDQuNWEuNzUuNzUgMCAwIDAgLjEtMS41aC00LjZ2LTQuNUEuNzUuNzUgMCAwIDAgMTQgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZENpcmNsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRDaXJjbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCAyYTEyIDEyIDAgMSAxIDAgMjQgMTIgMTIgMCAwIDEgMC0yNFptMCAxLjVhMTAuNSAxMC41IDAgMSAwIDAgMjEgMTAuNSAxMC41IDAgMCAwIDAtMjFaTTE0IDhjLjQxIDAgLjc1LjM0Ljc1Ljc1djQuNWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjV2NC41YS43NS43NSAwIDAgMS0xLjUgMHYtNC41aC00LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDQuNXYtNC41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRDaXJjbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRDaXJjbGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDMwYTE0IDE0IDAgMSAwIDAtMjggMTQgMTQgMCAwIDAgMCAyOFptLTEtMjBhMSAxIDAgMSAxIDIgMHY1aDVhMSAxIDAgMSAxIDAgMmgtNXY1YTEgMSAwIDEgMS0yIDB2LTVoLTVhMSAxIDAgMSAxIDAtMmg1di01WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkQ2lyY2xlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZENpcmNsZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE1IDEwYTEgMSAwIDEgMSAyIDB2NWg1YTEgMSAwIDEgMSAwIDJoLTV2NWExIDEgMCAxIDEtMiAwdi01aC01YTEgMSAwIDEgMSAwLTJoNXYtNVptMTUgNmExNCAxNCAwIDEgMS0yOCAwIDE0IDE0IDAgMCAxIDI4IDBabS0yIDBhMTIgMTIgMCAxIDAtMjQgMCAxMiAxMiAwIDAgMCAyNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3F1YXJlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSAyIDExLjV2LTdabTYgMGEuNS41IDAgMCAwLS41LjV2Mi41SDVhLjUuNSAwIDAgMCAwIDFoMi41VjExYS41LjUgMCAwIDAgMSAwVjguNUgxMWEuNS41IDAgMCAwIDAtMUg4LjVWNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1pNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNOCA0LjVjLjI4IDAgLjUuMjIuNS41djIuNUgxMWEuNS41IDAgMCAxIDAgMUg4LjVWMTFhLjUuNSAwIDAgMS0xIDBWOC41SDVhLjUuNSAwIDAgMSAwLTFoMi41VjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptNy41LjVhLjUuNSAwIDAgMC0xIDB2M2gtM2EuNS41IDAgMCAwIDAgMWgzdjNhLjUuNSAwIDEgMCAxIDB2LTNoM2EuNS41IDAgMSAwIDAtMWgtM3YtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wk00IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2Wm02LjUuNWEuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMSAwIDEgMHYtM2gzYS41LjUgMCAxIDAgMC0xaC0zdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3F1YXJlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxMS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1Wm05Ljc1IDEuNWEuNzUuNzUgMCAwIDAtMS41IDB2My41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNXYzLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41di0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTcXVhcmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3F1YXJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgN2MuNDEgMCAuNzUuMzQuNzUuNzV2My41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNXYzLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0zLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMy41di0zLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTktLjc1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNVpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djExLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTEuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNi4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoMTQuNUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjYuNzVabTExIC43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djVoLTVhLjc1Ljc1IDAgMCAwIDAgMS41aDV2NWEuNzUuNzUgMCAwIDAgMS41IDB2LTVoNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTV2LTVBLjc1Ljc1IDAgMCAwIDE0IDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDE0LjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNINi43NVpNNC41IDYuNzVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoMTQuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYxNC41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDYuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1VjYuNzVabTkuNS43NWMuNDEgMCAuNzUuMzQuNzUuNzV2NWg1YS43NS43NSAwIDAgMSAwIDEuNWgtNXY1YS43NS43NSAwIDAgMS0xLjUgMHYtNWgtNWEuNzUuNzUgMCAwIDEgMC0xLjVoNXYtNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3F1YXJlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk03LjUgM0E0LjUgNC41IDAgMCAwIDMgNy41djE3QTQuNSA0LjUgMCAwIDAgNy41IDI5aDE3YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTdBNC41IDQuNSAwIDAgMCAyNC41IDNoLTE3Wk0xNiA4YTEgMSAwIDAgMSAxIDF2Nmg2YTEgMSAwIDEgMSAwIDJoLTZ2NmExIDEgMCAxIDEtMiAwdi02SDlhMSAxIDAgMSAxIDAtMmg2VjlhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0zIDcuNUE0LjUgNC41IDAgMCAxIDcuNSAzaDE3QTQuNSA0LjUgMCAwIDEgMjkgNy41djE3YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTdBNC41IDQuNSAwIDAgMSAzIDI0LjV2LTE3Wk03LjUgNUEyLjUgMi41IDAgMCAwIDUgNy41djE3QTIuNSAyLjUgMCAwIDAgNy41IDI3aDE3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTdBMi41IDIuNSAwIDAgMCAyNC41IDVoLTE3Wk0xNiA4YTEgMSAwIDAgMSAxIDF2Nmg2YTEgMSAwIDEgMSAwIDJoLTZ2NmExIDEgMCAxIDEtMiAwdi02SDlhMSAxIDAgMSAxIDAtMmg2VjlhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNiAxMi4yNUM2IDguOCA4LjggNiAxMi4yNSA2aDIzLjVDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXYyMy41QzQyIDM5LjIgMzkuMiA0MiAzNS43NSA0MmgtMjMuNUE2LjI1IDYuMjUgMCAwIDEgNiAzNS43NXYtMjMuNVpNMjQgMTRjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djcuNWgtNy41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg3LjV2Ny41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNy41aDcuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTcuNXYtNy41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xMi4yNSA2QTYuMjUgNi4yNSAwIDAgMCA2IDEyLjI1djIzLjVDNiAzOS4yIDguOCA0MiAxMi4yNSA0MmgyMy41QzM5LjIgNDIgNDIgMzkuMiA0MiAzNS43NXYtMjMuNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZoLTIzLjVaTTguNSAxMi4yNWEzLjc1IDMuNzUgMCAwIDEgMy43NS0zLjc1aDIzLjVhMy43NSAzLjc1IDAgMCAxIDMuNzUgMy43NXYyMy41YTMuNzUgMy43NSAwIDAgMS0zLjc1IDMuNzVoLTIzLjVhMy43NSAzLjc1IDAgMCAxLTMuNzUtMy43NXYtMjMuNVpNMjQgMTRjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2Ny41aDcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTcuNXY3LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi03LjVoLTcuNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVoNy41di03LjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTcXVhcmVNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFNxdWFyZU11bHRpcGxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0Wm00LjUgMi41aC0yYS41LjUgMCAwIDAgMCAxaDJ2MmEuNS41IDAgMCAwIDEgMHYtMmgyYS41LjUgMCAxIDAgMC0xaC0ydi0yYS41LjUgMCAwIDAtMSAwdjJabTQgNi41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYzLjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y1LjVhMy41IDMuNSAwIDAgMS0zLjUgMy41SDVhMiAyIDAgMCAxLTEuNzMtMWg3LjIzWlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlTXVsdGlwbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3F1YXJlTXVsdGlwbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDdjMC0uMjguMjItLjUuNS0uNWgydi0yYS41LjUgMCAwIDEgMSAwdjJoMmEuNS41IDAgMCAxIDAgMWgtMnYyYS41LjUgMCAwIDEtMSAwdi0yaC0yQS41LjUgMCAwIDEgNCA3Wm0wLTVhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0Wk0zIDRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0Wm03LjUgOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMy4yN2MuNi4zNCAxIC45OSAxIDEuNzN2NS41YTMuNSAzLjUgMCAwIDEtMy41IDMuNUg1YTIgMiAwIDAgMS0xLjczLTFoNy4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFNxdWFyZU11bHRpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3F1YXJlTXVsdGlwbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2IDUuMjdjLjYuMzQgMSAuOTkgMSAxLjczdjZhNCA0IDAgMCAxLTQgNEg3YTIgMiAwIDAgMS0xLjczLTFIMTNhMyAzIDAgMCAwIDMtM1Y1LjI3Wk0xNSA1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNVptLTMgNGEuNS41IDAgMCAxLS41LjVoLTJ2MmEuNS41IDAgMCAxLTEgMHYtMmgtMmEuNS41IDAgMSAxIDAtMWgydi0yYS41LjUgMCAxIDEgMSAwdjJoMmMuMjggMCAuNS4yMi41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTcXVhcmVNdWx0aXBsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmVNdWx0aXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE2IDUuMjdWMTNhMyAzIDAgMCAxLTMgM0g1LjI3Yy4zNC42Ljk5IDEgMS43MyAxaDZhNCA0IDAgMCAwIDQtNFY3YTIgMiAwIDAgMC0xLTEuNzNaTTExLjUgOS41YS41LjUgMCAwIDAgMC0xaC0ydi0yYS41LjUgMCAxIDAtMSAwdjJoLTJhLjUuNSAwIDAgMCAwIDFoMnYyYS41LjUgMCAwIDAgMSAwdi0yaDJaTTEzIDNhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg4Wm0xIDJhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3F1YXJlTXVsdGlwbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmVNdWx0aXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyA1LjI1QzMgNC4wMSA0IDMgNS4yNSAzaDExYzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djExYzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0xMWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTExWm04LjUgMmEuNzUuNzUgMCAwIDAtMS41IDBWMTBINy4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTB2Mi43NWEuNzUuNzUgMCAwIDAgMS41IDBWMTEuNWgyLjc1YS43NS43NSAwIDAgMCAwLTEuNUgxMS41VjcuMjVaTTcuNzUgMjFjLS45OCAwLTEuODEtLjYzLTIuMTItMS41aDEwLjYyYzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNS42M2MuODcuMyAxLjUgMS4xNCAxLjUgMi4xMnY4LjVBNC43NSA0Ljc1IDAgMCAxIDE2LjI1IDIxaC04LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTcXVhcmVNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTcXVhcmVNdWx0aXBsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuMjUgM0M0LjAxIDMgMyA0IDMgNS4yNXYxMWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxMWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMTFjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTExWk00LjUgNS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDExYy40MSAwIC43NS4zNC43NS43NXYxMWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0xMWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMTFaTTcuNzUgMjFjLS45OCAwLTEuODEtLjYzLTIuMTItMS41aDEwLjYyYzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNS42M2MuODcuMyAxLjUgMS4xNCAxLjUgMi4xMnY4LjVBNC43NSA0Ljc1IDAgMCAxIDE2LjI1IDIxaC04LjVabTMtMTQuNWMuNDEgMCAuNzUuMzQuNzUuNzVWMTBoMi43NWEuNzUuNzUgMCAwIDEgMCAxLjVIMTEuNXYyLjc1YS43NS43NSAwIDAgMS0xLjUgMFYxMS41SDcuMjVhLjc1Ljc1IDAgMCAxIDAtMS41SDEwVjcuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFN1YnRyYWN0Q2lyY2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3VidHJhY3RDaXJjbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkuNSAxMGEuNS41IDAgMCAwIDAgMUgxMmEuNS41IDAgMCAwIDAtMUg5LjVaTTggMTVBNyA3IDAgMSAwIDggMWE3IDcgMCAwIDAgMCAxNFptMC0xYTUuOTggNS45OCAwIDAgMS0zLjg3LTEuNDJsOC40NS04LjQ1QTYgNiAwIDAgMSA4IDE0Wk0zLjUgNmMwLS4yOC4yMi0uNS41LS41aDF2LTFhLjUuNSAwIDAgMSAxIDB2MWgxYS41LjUgMCAxIDEgMCAxSDZ2LjhhLjUuNSAwIDAgMS0xIDB2LS44SDRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFN1YnRyYWN0Q2lyY2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFN1YnRyYWN0Q2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOSAxMC41YzAtLjI4LjIyLS41LjUtLjVIMTJhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabS0zLTZhLjUuNSAwIDAgMC0xIDB2MUg0YS41LjUgMCAwIDAgMCAxaDF2LjhhLjUuNSAwIDAgMCAxIDB2LS44aDFhLjUuNSAwIDAgMCAwLTFINnYtMVpNOCAxNUE3IDcgMCAxIDAgOCAxYTcgNyAwIDAgMCAwIDE0Wm0wLTFhNS45OCA1Ljk4IDAgMCAxLTMuODctMS40Mmw4LjQ1LTguNDVBNiA2IDAgMCAxIDggMTRabS00LjU4LTIuMTNhNiA2IDAgMCAxIDguNDYtOC40NmwtOC40NiA4LjQ2WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3VidHJhY3RDaXJjbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTdWJ0cmFjdENpcmNsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTEuNSAxMmEuNS41IDAgMSAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptMC0xYTYuOTcgNi45NyAwIDAgMS00LjU4LTEuN2w5Ljg3LTkuODhBNyA3IDAgMCAxIDEwIDE3Wk01LjUgN2MwLS4yOC4yMi0uNS41LS41aDF2LTFhLjUuNSAwIDAgMSAxIDB2MWgxYS41LjUgMCAxIDEgMCAxSDh2MWEuNS41IDAgMCAxLTEgMHYtMUg2YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTdWJ0cmFjdENpcmNsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTdWJ0cmFjdENpcmNsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTExIDEyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabS0zLTdhLjUuNSAwIDAgMC0xIDB2MUg2YS41LjUgMCAxIDAgMCAxaDF2MWEuNS41IDAgMCAwIDEgMHYtMWgxYS41LjUgMCAxIDAgMC0xSDh2LTFaTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm0wLTFhNi45NyA2Ljk3IDAgMCAxLTQuNTgtMS43bDkuODctOS44OEE3IDcgMCAwIDEgMTAgMTdabS01LjMtMi40MmE3IDcgMCAwIDEgOS44Ny05Ljg3bC05Ljg2IDkuODdaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTdWJ0cmFjdENpcmNsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFN1YnRyYWN0Q2lyY2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMy43NSAxNC41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVaTTEyIDIyYTEwIDEwIDAgMSAwIDAtMjAgMTAgMTAgMCAwIDAgMCAyMFptNi41Mi0xNS40NkE4LjUgOC41IDAgMCAxIDYuNTUgMTguNTFMMTguNTEgNi41NVpNNiA4Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVIOFY2Ljc1YS43NS43NSAwIDAgMSAxLjUgMFY4aDEuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDkuNXYxLjI1YS43NS43NSAwIDAgMS0xLjUgMFY5LjVINi43NUEuNzUuNzUgMCAwIDEgNiA4Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWRkU3VidHJhY3RDaXJjbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3VidHJhY3RDaXJjbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMyAxNS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTMuNS04LjVhLjc1Ljc1IDAgMCAwLTEuNSAwVjhINi43NWEuNzUuNzUgMCAwIDAgMCAxLjVIOHYxLjI1YS43NS43NSAwIDAgMCAxLjUgMFY5LjVoMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIOS41VjYuNzVaTTEyIDIyYTEwIDEwIDAgMSAxIDAtMjAgMTAgMTAgMCAwIDEgMCAyMFptMC0xLjVhOC41IDguNSAwIDAgMCA2LjUyLTEzLjk2TDYuNTQgMTguNTJBOC40NyA4LjQ3IDAgMCAwIDEyIDIwLjVabS02LjUyLTMuMDRMMTcuNDYgNS40OEE4LjUgOC41IDAgMCAwIDUuNDkgMTcuNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTdWJ0cmFjdENpcmNsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFN1YnRyYWN0Q2lyY2xlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNS45NSAxNy4zYS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaTTE0IDI2YTEyIDEyIDAgMSAwIDAtMjQgMTIgMTIgMCAwIDAgMCAyNFptMC0xLjVjLTIuNjMgMC01LjAzLS45Ny02Ljg4LTIuNTZMMjEuOTQgNy4xMkExMC41IDEwLjUgMCAwIDEgMTQgMjQuNVpNNyAxMC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNzRWNy43YS43NS43NSAwIDEgMSAxLjUgMHYxLjhoMS43NmEuNzUuNzUgMCAwIDEgMCAxLjVIMTF2MS43NWEuNzUuNzUgMCAxIDEtMS41IDBWMTFINy43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFN1YnRyYWN0Q2lyY2xlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FkZFN1YnRyYWN0Q2lyY2xlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTUuMiAxOC4wNWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMTAuOTkgNy43YS43NS43NSAwIDEgMC0xLjUgMHYxLjhINy43NWEuNzUuNzUgMCAwIDAgMCAxLjVIOS41djEuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjExaDEuNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjc2VjcuN1pNMTQgMjZhMTIgMTIgMCAxIDEgMC0yNCAxMiAxMiAwIDAgMSAwIDI0Wm0wLTEuNWExMC41IDEwLjUgMCAwIDAgNy45NC0xNy4zOEw3LjEyIDIxLjk0QTEwLjQ2IDEwLjQ2IDAgMCAwIDE0IDI0LjVabS03Ljk0LTMuNjJMMjAuODggNi4wNkExMC41IDEwLjUgMCAwIDAgNi4wNyAyMC44N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFkZFN1YnRyYWN0Q2lyY2xlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWRkU3VidHJhY3RDaXJjbGU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI3LjI1IDI5LjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDcuNWExLjI1IDEuMjUgMCAwIDAgMC0yLjVoLTcuNVpNMjQgNDRhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDAgMCAwIDQwWm0wLTIuNWMtNC4zOCAwLTguMzktMS42MS0xMS40Ni00LjI3bDI0LjY5LTI0LjY5QTE3LjUgMTcuNSAwIDAgMSAyNCA0MS41Wk0xMi4yNSAxNy4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgzdi0yLjc1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMFYxNmgyLjc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNUgxOXYyLjc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMFYxOC41aC0zYy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBZGRTdWJ0cmFjdENpcmNsZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBZGRTdWJ0cmFjdENpcmNsZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI2IDMwLjc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTcuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wm0tNy0xNy41YTEuMjUgMS4yNSAwIDAgMC0yLjUgMFYxNmgtM2ExLjI1IDEuMjUgMCAxIDAgMCAyLjVoM3YyLjc1YTEuMjUgMS4yNSAwIDEgMCAyLjUgMFYxOC41aDIuNzVhMS4yNSAxLjI1IDAgMSAwIDAtMi41SDE5di0yLjc1Wk0yNCA0NGEyMCAyMCAwIDEgMSAwLTQwIDIwIDIwIDAgMCAxIDAgNDBabTAtMi41YTE3LjUgMTcuNSAwIDAgMCAxMy4yMy0yOC45NkwxMi41NCAzNy4yM0ExNy40MyAxNy40MyAwIDAgMCAyNCA0MS41Wm0tMTMuMjMtNi4wNCAyNC42OS0yNC42OWExNy41IDE3LjUgMCAwIDAtMjQuNjkgMjQuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjkgMUEuOS45IDAgMCAwIDcgMi4wNWwuNjkgNC40My0xLjg4LjE3TDQuNTcgNC41QS45Ni45NiAwIDAgMCAzLjczIDRjLS40IDAtLjczLjMzLS43My43M3YyLjE4TDEuOTcgN2ExIDEgMCAwIDAgMCAyTDMgOS4xdjIuMTdjMCAuNC4zMy43My43My43My4zNSAwIC42Ny0uMTkuODQtLjQ5TDUuOCA5LjM1bDEuODguMTctLjY4IDQuNDNBLjkuOSAwIDAgMCA3LjkgMTVjLjUxIDAgLjk4LS4zIDEuMi0uNzdsMi4wMi00LjRjLjYyLjA2IDEuMjUuMTcgMS44Ny4xN2EyIDIgMCAxIDAgMC00Yy0uNjIgMC0xLjI1LjExLTEuODcuMTdMOS4xIDEuNzdBMS4zMiAxLjMyIDAgMCAwIDcuOSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03LjA0IDIuMjhDNi45NCAxLjYxIDcuNDYgMSA4LjE0IDFjLjY4IDAgMS4zLjQgMS41NyAxbDEuODggNC4wN2MuNDctLjAzLjk0LS4wNyAxLjQxLS4wN2EyIDIgMCAxIDEgMCA0Yy0uNDcgMC0uOTQtLjA0LTEuNDEtLjA3TDkuNyAxNGMtLjI4LjYtLjkgMS0xLjU2IDEtLjY5IDAtMS4yLS42LTEuMS0xLjI4bC42LTMuOTctMS41My0uMDgtLjkyIDEuNjFjLS4yNS40NS0uNzMuNzItMS4yNC43MmEuOTYuOTYgMCAwIDEtLjk2LS45NlY5LjUybC0uNTEtLjAyYTEuNSAxLjUgMCAwIDEgMC0zTDMgNi40OFY0Ljk2YzAtLjUzLjQzLS45Ni45Ni0uOTYuNTEgMCAuOTkuMjcgMS4yNC43MmwuOTIgMS42IDEuNTQtLjA3LS42Mi0zLjk3Wk04LjE0IDJhLjExLjExIDAgMCAwLS4xLjEzTDguOCA3LjJsLTMuMjUuMTZMNC4zMyA1LjJhLjQzLjQzIDAgMCAwLS4zMy0uMnYyLjQybC0xLjQ5LjA3SDIuNWEuNS41IDAgMCAwIDAgMWguMDFMNCA4LjU3VjExYy4xNC0uMDEuMjYtLjEuMzMtLjIxbDEuMjMtMi4xNSAzLjI1LjE2LS43OCA1LjA3YzAgLjA3LjA1LjEzLjEyLjEzLjI4IDAgLjU0LS4xNi42NS0uNDJsMi4xNi00LjY4IDEuOTQuMWguMWExIDEgMCAxIDAtLjEtMmwtMS45NC4xTDguOCAyLjQyQS43My43MyAwIDAgMCA4LjE1IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDJjLjYgMCAxLjE2LjM2IDEuNC45MmwyLjM3IDUuNCAzLjIzLS4yYTEuODggMS44OCAwIDAgMSAyIDEuNzZWMTBjMCAxLjA0LS44NCAxLjg4LTEuODggMS44OEgxNmwtMy4yMy0uMi0yLjM3IDUuNGMtLjI0LjU2LS44LjkyLTEuNC45MmEuODguODggMCAwIDEtLjg4LS44OHYtLjA2bC43LTUuNjMtMi40Ni0uMTYtMS4xNCAyLjI4YS44LjggMCAwIDEtLjcyLjQ1LjUuNSAwIDAgMS0uNS0uNXYtMi4zOGwtMS4wNi0uMDZhMSAxIDAgMCAxLS45NC0xdi0uMTJhMSAxIDAgMCAxIC45NC0xTDQgOC44OFY2LjVjMC0uMjguMjItLjUuNS0uNS4zIDAgLjU5LjE3LjcyLjQ1bDEuMTQgMi4yOCAyLjQ2LS4xNkw4LjEyIDNBLjg4Ljg4IDAgMCAxIDkgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC43OCA4LjI5IDguMSAyLjgxYTEuMTYgMS4xNiAwIDAgMSAxLTEuM2guMDhsLjE3LS4wMWMuNiAwIDEuMTMuMzUgMS4zNy45bDIuNTEgNS43NCAyLjc1LS4wOWMxLjAzLS4wMyAxLjkuNzMgMiAxLjc0bC4wMi4xNVYxMGMwIDEuMDgtLjg3IDEuOTUtMS45NiAxLjk1bC0yLjgtLjEtMi41MiA1Ljc1Yy0uMjQuNTUtLjc4LjktMS4zNy45aC0uMWExLjE2IDEuMTYgMCAwIDEtMS4xNS0xLjNsLjY4LTUuNS0yLjE0LS4wNi0uOTYgMS42N2MtLjI0LjQzLS43LjY5LTEuMTguNjlhMSAxIDAgMCAxLTEtMXYtMS40N2gtLjE2YTEuNTMgMS41MyAwIDAgMSAwLTMuMDVsLjE2LS4wMVY3YTEgMSAwIDAgMSAxLTFjLjQ5IDAgLjk0LjI2IDEuMTguNjlsLjk2IDEuNjcgMi4xNC0uMDdabS41Ny01Ljc5aC0uMTJhLjE2LjE2IDAgMCAwLS4xNC4xOGwuODIgNi41Ny0zLjg0LjEzLTEuMjYtMi4yQS4zNi4zNiAwIDAgMCA0LjUgN3YyLjQzbC0uOTguMDRhLjUzLjUzIDAgMCAwIDAgMS4wNmwuOTguMDRWMTNoLjA4Yy4xLS4wMy4xOC0uMS4yMy0uMThsMS4yNi0yLjIgMy44NC4xMy0uODIgNi41OWMwIC4wOS4wNy4xNi4xNi4xNmguMWEuNS41IDAgMCAwIC40NS0uM2wyLjc5LTYuMzYgMy40Ni4xMWMuNTIgMCAuOTUtLjQyLjk1LS45NXYtLjAzYS45NS45NSAwIDAgMC0uOTgtLjkybC0zLjQzLjExTDkuOCAyLjhhLjUuNSAwIDAgMC0uNDUtLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS45OSAxMS45NWEyIDIgMCAwIDEtMi4wNSAxLjk5bC00Ljc0LS4xNC0zLjQ1IDcuMTRjLS4yOC41Ny0uODYuOTQtMS41Ljk0YS45My45MyAwIDAgMS0uOTItMS4wNGwuODYtNy4xOS0zLjc2LS4xLS41IDEuMzNjLS4xOC41MS0uNjYuODUtMS4yLjg1YS45LjkgMCAwIDEtLjktLjl2LTEuNDhMMyAxMy4xOGExLjI2IDEuMjYgMCAwIDEgMC0yLjQ3bC44Mi0uMTdWOS4wN2EuOS45IDAgMCAxIC43OC0uOWguMTJjLjU0IDAgMS4wMi4zMyAxLjIuODRsLjUgMS4zNCAzLjc1LS4xLS44NS03LjF2LS4xYzAtLjUxLjQtLjkzLjkyLS45My41OCAwIDEuMTIuMyAxLjQyLjhsLjA4LjE0IDMuNCA3LjA0IDQuNzktLjE0YTIgMiAwIDAgMSAyLjA1IDEuOTN2LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm05LjQ3IDkuNjQtLjctNS44N3YtLjA4YzAtLjg4LjcyLTEuNiAxLjYtMS42LjggMCAxLjU1LjQyIDEuOTggMS4xM2wuMS4xNiAyLjk0IDYuMDkgMy45NS0uMTJhMi42IDIuNiAwIDAgMSAyLjY4IDIuNTN2LjA3YTIuNiAyLjYgMCAwIDEtMi42MiAyLjZsLTMuOTctLjEyLTIuOTkgNi4xOWEyLjMgMi4zIDAgMCAxLTIuMDYgMS4zYy0uOSAwLTEuNjEtLjczLTEuNjEtMS42NHYtLjEybC43MS01LjktMi4xMy0uMDctLjI3Ljc0YTEuOTUgMS45NSAwIDAgMS0xLjgzIDEuMjhjLS44NyAwLTEuNTgtLjcxLTEuNTgtMS41OXYtLjc2bC0uMTYtLjAzYTEuOTIgMS45MiAwIDAgMSAwLTMuNzZsLjE2LS4wM3YtLjc2YzAtLjguNi0xLjQ4IDEuNDMtMS41OGguMTVjLjc1IDAgMS40My40MiAxLjc3IDEuMTJsLjA2LjE1LjI3Ljc0IDIuMTItLjA3Wm0uOS02LjA1Yy0uMDUgMC0uMS4wNC0uMS4wOGwuODggNy40Mi00Ljg0LjE1LS42Mi0xLjcyLS4wNC0uMDhjLS4wNy0uMTUtLjIzLS4yNS0uMzUtLjI1aC0uMDZhLjA5LjA5IDAgMCAwLS4wNy4wOXYxLjk4bC0xLjM1LjI4YS40Mi40MiAwIDAgMCAwIC44MmwxLjM1LjI4djEuOThjMCAuMDUuMDMuMDkuMDguMDkuMTkgMCAuMzYtLjEyLjQyLS4zbC42NC0xLjc1IDQuODYuMTUtLjkgNy40N3YuMDNjMCAuMDYuMDUuMS4xLjFhLjguOCAwIDAgMCAuNzItLjQ0bDMuNDItNy4wNyA0LjkuMTVjLjYxIDAgMS4xLS41IDEuMS0xLjA5di0uMDRhMS4xIDEuMSAwIDAgMC0xLjEyLTEuMDdsLTQuOTMuMTUtMy4zNS02LjkzLS4wNi0uMWEuOC44IDAgMCAwLS42Ny0uMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMi4zIDJjLS43OCAwLTEuMzcuNjgtMS4yOCAxLjQ0bDEgOC4xNC0yLjcuMTQtMS42NS0yLjg4QzcuMzcgOC4zMiA2LjggOCA2LjIgOCA1LjU0IDggNSA4LjU0IDUgOS4yMXYyLjc0TDMuOTggMTJhMiAyIDAgMCAwIDAgNGwxLjAyLjA1djIuNzRjMCAuNjcuNTQgMS4yMSAxLjIxIDEuMjEuNiAwIDEuMTYtLjMyIDEuNDYtLjg0bDEuNjQtMi44OCAyLjcuMTQtMSA4LjE0Yy0uMDguNzcuNTEgMS40NCAxLjI4IDEuNDQuNzIgMCAxLjM3LS40MiAxLjY2LTEuMDdsMy42OS04LjIxYzEuNzguMSAzLjU4LjI4IDUuMzYuMjhhMyAzIDAgMSAwIDAtNmMtMS43OCAwLTMuNTguMTktNS4zNi4yOGwtMy42OS04LjJBMS44MiAxLjgyIDAgMCAwIDEyLjMgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTEuMDQgMy45QTEuNyAxLjcgMCAwIDEgMTIuNzIgMmMxLjA0IDAgMS45OS42MSAyLjQxIDEuNTZsMy40IDcuNTZDMjAuMDIgMTEuMDggMjEuNSAxMSAyMyAxMWEzIDMgMCAxIDEgMCA2Yy0xLjQ5IDAtMi45OC0uMDgtNC40Ny0uMTJsLTMuNCA3LjU2QTIuNjQgMi42NCAwIDAgMSAxMi43MiAyNmExLjcgMS43IDAgMCAxLTEuNjgtMS45bC45LTcuNC0yLjgzLS4wNy0xLjE4IDIuMDZBMi42IDIuNiAwIDAgMSA1LjY4IDIwQzQuNzUgMjAgNCAxOS4yNSA0IDE4LjMydi0xLjg3YTIuNSAyLjUgMCAwIDEgMC00LjlWOS42OEM0IDguNzUgNC43NSA4IDUuNjggOGMuOTMgMCAxLjguNSAyLjI1IDEuMzFsMS4xOCAyLjA2IDIuODMtLjA3LS45LTcuNFptMS42OC0uNGEuMi4yIDAgMCAwLS4yLjIybDEuMTEgOS4wMy01LjM3LjE1LTEuNjMtMi44NWExLjEgMS4xIDAgMCAwLS45NS0uNTVjLS4xIDAtLjE4LjA4LS4xOC4xOHYzLjNsLS45OS4wMkg0LjVhMSAxIDAgMSAwIDAgMmguMDFsLjk5LjAzdjMuM2MwIC4xLjA4LjE3LjE4LjE3LjQgMCAuNzYtLjIxLjk1LS41NWwxLjYzLTIuODUgNS4zNy4xNS0xLjEgOS4wM2EuMi4yIDAgMCAwIC4xOS4yMmMuNDUgMCAuODYtLjI2IDEuMDQtLjY4bDMuOC04LjQ3IDUuMzYuMTVIMjNhMS41IDEuNSAwIDEgMC0uMDgtM2wtNS4zNS4xNS0zLjgtOC40N2MtLjItLjQyLS42LS42OC0xLjA1LS42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE0Ljc2IDJhMS44IDEuOCAwIDAgMC0xLjggMkwxNCAxMy41NmwtMy44LjE3LTEuNDYtMy40QTIuMiAyLjIgMCAwIDAgNi43IDlDNS43NyA5IDUgOS43NyA1IDEwLjcxdjMuMjVMMy45NyAxNGEyIDIgMCAwIDAgMCA0bDEuMDMuMDR2My4yNWMwIC45NC43NyAxLjcxIDEuNzEgMS43MWEyLjIgMi4yIDAgMCAwIDIuMDItMS4zM2wxLjQ2LTMuNCAzLjguMTdMMTIuOTYgMjhhMS44IDEuOCAwIDAgMCAxLjggMmMuOTQgMCAxLjc4LS41NiAyLjE1LTEuNDJsNC4yMi05LjgzYzEuOTUuMDggMy45Mi4yNSA1Ljg3LjI1YTMgMyAwIDEgMCAwLTZjLTEuOTUgMC0zLjkyLjE3LTUuODcuMjVMMTYuOSAzLjQyQTIuMzUgMi4zNSAwIDAgMCAxNC43NiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMi4wMiA0LjVjLS4xNS0xLjM0LjktMi41IDIuMjQtMi41YTMuMSAzLjEgMCAwIDEgMi44NSAxLjg4bDMuNTkgOC4zN2MxLjc2LS4wOCAzLjU0LS4yNSA1LjMtLjI1YTQgNCAwIDAgMSAwIDhjLTEuNzYgMC0zLjU0LS4xNy01LjMtLjI1bC0zLjU5IDguMzdBMy4xIDMuMSAwIDAgMSAxNC4yNiAzMGEyLjI2IDIuMjYgMCAwIDEtMi4yNC0yLjVsLjg3LTguMTItMi4xMy0uMS0uODMgMS45MUEyLjk5IDIuOTkgMCAwIDEgNy4yIDIzIDIuMiAyLjIgMCAwIDEgNSAyMC44VjE5aC0uMDNhMyAzIDAgMCAxIDAtNkg1di0xLjhDNSA5Ljk3IDUuOTggOSA3LjIgOWMxLjE5IDAgMi4yNi43MSAyLjczIDEuOGwuODMgMS45MiAyLjEzLS4xTDEyIDQuNVptMi4yNC0uNWEuMjYuMjYgMCAwIDAtLjI2LjI5bDEuMSAxMC4yMy01LjY0LjI3LTEuMzYtMy4yYS45OS45OSAwIDAgMC0uOS0uNTkuMi4yIDAgMCAwLS4yLjJ2My43bC0xLjk4LjFINWExIDEgMCAxIDAgMCAyaC4wMmwxLjk4LjF2My43YzAgLjExLjA5LjIuMi4yLjM5IDAgLjc0LS4yMy45LS42bDEuMzYtMy4xOSA1LjY0LjI3TDE0IDI3LjcxYy0uMDEuMTYuMS4yOS4yNi4yOS40NCAwIC44NC0uMjYgMS4wMS0uNjdsNC4xNC05LjY1IDYuNC4zMS4xOS4wMWEyIDIgMCAxIDAtLjItNGwtNi40LjMyLTQuMTMtOS42NWExLjEgMS4xIDAgMCAwLTEtLjY3WlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBaXJwbGFuZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjEuMDEgM2EyLjAyIDIuMDIgMCAwIDAtMiAyLjIybDEuNSAxNC45My00LjM2LjI4LTIuNS00LjM3QTQuMDkgNC4wOSAwIDAgMCAxMC4xIDE0IDIuMSAyLjEgMCAwIDAgOCAxNi4xdjQuODRMNi45NiAyMWEzIDMgMCAwIDAgMCA2bDEuMDQuMDZ2NC44NGMwIDEuMTYuOTQgMi4xIDIuMSAyLjEgMS40NyAwIDIuODItLjc5IDMuNTUtMi4wNmwyLjUtNC4zNyA0LjM2LjI4LTEuNSAxNC45M0EyLjAyIDIuMDIgMCAwIDAgMjEgNDVjMS41IDAgMi44NS0uODcgMy40Ny0yLjIzbDYuNS0xNC4yN2MyLjY2LjE3IDUuMzYuNSA4LjAyLjVhNSA1IDAgMCAwIDAtMTBjLTIuNjYgMC01LjM2LjMzLTguMDIuNWwtNi41LTE0LjI3QTMuODEgMy44MSAwIDAgMCAyMS4wMSAzWlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xOS4wMiA1LjU2QTIuMzMgMi4zMyAwIDAgMSAyMS4zMyAzYzEuOSAwIDMuNjIgMS4xIDQuNCAyLjgzbDUuOTMgMTNjMi4yNy0uMSA0LjU3LS4zMyA2Ljg0LS4zM2E1LjUgNS41IDAgMSAxIDAgMTFjLTIuMjcgMC00LjU3LS4yMi02Ljg0LS4zM2wtNS45MyAxM2E0Ljg0IDQuODQgMCAwIDEtNC40IDIuODMgMi4zMyAyLjMzIDAgMCAxLTIuMzEtMi41NmwxLjQtMTMuODMtMy43Ni0uMTgtMS42OCAyLjk0QTUuMjMgNS4yMyAwIDAgMSAxMC40NCAzNCAyLjQ0IDIuNDQgMCAwIDEgOCAzMS41NlYyOGgtLjAzYTQgNCAwIDAgMSAwLThIOHYtMy41NkM4IDE1LjEgOS4xIDE0IDEwLjQ0IDE0YzEuODggMCAzLjYxIDEgNC41NCAyLjYzbDEuNjggMi45NCAzLjc2LS4xOC0xLjQtMTMuODNabTIuNS0uMDUgMS42NSAxNi4yNS03LjkyLjM4LTIuNDQtNC4yN2EyLjczIDIuNzMgMCAwIDAtMi4zMS0xLjM3djUuODhsLTIuNDcuMTJIOGExLjUgMS41IDAgMCAwIDAgM2guMDNsMi40Ny4xMnY1Ljg4YTIuNzMgMi43MyAwIDAgMCAyLjMtMS4zN2wyLjQ1LTQuMjcgNy45Mi4zOC0xLjY1IDE2LjI1YTIuMzQgMi4zNCAwIDAgMCAxLjk0LTEuMzZsNi42My0xNC41NSA4LjExLjRhMyAzIDAgMSAwIDAtNS45N2wtOC4xMS40LTYuNjMtMTQuNTRhMi4zNCAyLjM0IDAgMCAwLTEuOTQtMS4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lTGFuZGluZzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lTGFuZGluZzE2RmlsbGVkJywgXCIxNlwiLCBbXCJtOC44NSAyLjg1IDEuMDcgMi4xOUg4Ljg5TDYgNHYtLjVjMC0xLjYgMi4xNS0yLjA4IDIuODUtLjY1Wm0zLjEyIDMuMTdhMyAzIDAgMCAxIDMuMDMgM3YuNDhhMS41IDEuNSAwIDAgMS0xLjk4IDEuNDJsLTIuMjUtLjc3LTUuMjMgMS43N2MtMS41NC41MS0yLjY5LTEuNDMtMS41LTIuNTNsMS4yMi0xLjEyLTMuMjQtMS4xYTEuNSAxLjUgMCAwIDEtLjczLTIuM0wzIDIuNDdjLjYzLS44OCAyLS40NCAyIC42M3YxLjZsMy41NCAxLjI5YTEgMSAwIDAgMCAuMzYuMDZsMy4wNy0uMDNaTTEgMTQuNWMwLS4yOC4yMi0uNS41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM2EuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmVMYW5kaW5nMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lTGFuZGluZzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgNS4wNlYzLjVjMC0xLjU5IDIuMTUtMi4wOSAyLjg1LS42NWwxLjU1IDMuMTggMS41Ny0uMDFhMyAzIDAgMCAxIDMuMDMgM3YuNDhhMS41IDEuNSAwIDAgMS0xLjk4IDEuNDJsLTIuMjUtLjc3LTUuMjMgMS43N2MtMS41NC41MS0yLjY5LTEuNDMtMS41LTIuNTNsMS4yMi0xLjEyLTMuMjQtMS4xYTEuNSAxLjUgMCAwIDEtLjczLTIuM0wzIDIuNDdjLjYzLS44OCAyLS40NCAyIC42M3YxLjZsMSAuMzZabTMuMy45OEw3Ljk1IDMuMjhjLS4yMy0uNDctLjk1LS4zLS45NS4yMnYxLjkzbDEuNTQuNTZhMSAxIDAgMCAwIC4zNi4wNmguNFpNMSAxNC41YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVabTEuMzQtOC4yOCAzLjI1IDEuMWExIDEgMCAwIDEgLjM1IDEuNjlsLTEuMjIgMS4xMmMtLjQuMzYtLjAxIDEuMDEuNS44NGw1LjIzLTEuNzZhMSAxIDAgMCAxIC42NSAwbDIuMjQuNzZBLjUuNSAwIDAgMCAxNCA5LjV2LS40OGEyIDIgMCAwIDAtMi4wMi0ybC0zLjA4LjAzYTIgMiAwIDAgMS0uNy0uMTJMNC4zMyA1LjUyQS41LjUgMCAwIDEgNCA1LjA1VjMuMWEuMS4xIDAgMCAwLS4xOC0uMDZMMi4xIDUuNDVhLjUuNSAwIDAgMCAuMjQuNzdaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZUxhbmRpbmcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBaXJwbGFuZUxhbmRpbmcyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTExLjg4IDYtMS4wMy0yLjE1QzEwLjE2IDIuNDEgOCAyLjkxIDggNC41di43NGwyLjc3Ljc2aDEuMTFabS0xLjExIDFhMSAxIDAgMCAxLS4yNy0uMDRMNiA1Ljc0VjQuMmMwLTEuMjItMS42MS0xLjY2LTIuMjMtLjZMMi4yNCA2LjE5Yy0uNTcuOTYtLjEgMi4yLjk2IDIuNTVsMy40MiAxLjEyLTEuNjggMS41MmMtMS4xNyAxLjA4LS4wOCAzIDEuNDUgMi41NWw2LjYtMS45OSAzLjA0IDFBMS41IDEuNSAwIDAgMCAxOCAxMS41VjExYTQgNCAwIDAgMC00LTRoLTMuMjNaTTIgMTcuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmVMYW5kaW5nMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lTGFuZGluZzIwUmVndWxhcicsIFwiMjBcIiwgW1wibTEyLjM2IDctMS41LTMuMTVDMTAuMTUgMi40MSA4IDIuOTEgOCA0LjV2MS43OGwtMi0uNTRWNC4yYzAtMS4yMi0xLjYxLTEuNjYtMi4yMy0uNkwyLjI0IDYuMTljLS41Ny45Ni0uMSAyLjIuOTYgMi41NWwzLjQyIDEuMTItMS42OCAxLjUyYy0xLjE3IDEuMDgtLjA4IDMgMS40NSAyLjU1bDYuNi0xLjk5IDMuMDQgMUExLjUgMS41IDAgMCAwIDE4IDExLjVWMTFhNCA0IDAgMCAwLTQtNGgtMS42NFptLTEuMSAwaC0uNWExIDEgMCAwIDEtLjI2LS4wNEw5IDYuNTZWNC41YzAtLjUzLjcyLS43Ljk1LS4yMUwxMS4yNSA3Wk0yIDE3LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVptMTEuNTktNi40MWEyIDIgMCAwIDAtMS4xOC0uMDFMNi4xIDEyLjk3Yy0uNTEuMTUtLjg3LS40OS0uNDgtLjg1bDEuNjctMS41M2ExIDEgMCAwIDAtLjM2LTEuNjhMMy41MiA3Ljc5YS43NS43NSAwIDAgMS0uNDItMS4xTDQuNjMgNC4xYy4xLS4xNy4zNy0uMS4zNy4xdjEuOTJjMCAuMjIuMTUuNDIuMzcuNDhsNC44NyAxLjMzYTIgMiAwIDAgMCAuNTMuMDdIMTRhMyAzIDAgMCAxIDMgM3YuNTFhLjUuNSAwIDAgMS0uNjYuNDhsLTIuMzktLjc5LS4zNi0uMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZUxhbmRpbmcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBaXJwbGFuZUxhbmRpbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwIDUuMDR2Ljc4bDMuMDMgMS4yaDIuMTJsLTEuMjUtMi44QzEzIDIuMiAxMCAyLjgzIDEwIDUuMDNabTIuNzIgMi45M0w4LjUgNi4zVjQuNzZhMS43NSAxLjc1IDAgMCAwLTMuMjEtLjk2TDMuMzggNi43YTIuMyAyLjMgMCAwIDAgMS4wNCAzLjRsMy41IDEuNDYtMi4wNSAxLjljLTEuNjIgMS41IDAgNC4xNiAyLjA5IDMuNGw2Ljc2LTIuNDYgMy40NiAxLjQ0QTIuMDQgMi4wNCAwIDAgMCAyMSAxMy45NnYtMS4yM2MwLTIuNi0yLjExLTQuNzEtNC43Mi00LjcxaC0zLjMyYS42NC42NCAwIDAgMS0uMjQtLjA1Wk0zIDIwLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTYuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMy43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lTGFuZGluZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBaXJwbGFuZUxhbmRpbmcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS41IDcuNDlWNS4wNGMwLS41OC43OS0uNzUgMS4wMy0uMjJsMS40MiAzLjJoLTFhLjY0LjY0IDAgMCAxLS4yMy0uMDVMMTEuNSA3LjVabTQuMS41My0xLjctMy44QzEzIDIuMiAxMCAyLjgzIDEwIDUuMDN2MS44NWwtMS41LS42VjQuNzdhMS43NSAxLjc1IDAgMCAwLTMuMjEtLjk2TDMuMzggNi43YTIuMyAyLjMgMCAwIDAgMS4wNCAzLjRsMy41IDEuNDYtMi4wNSAxLjljLTEuNjIgMS41IDAgNC4xNiAyLjA5IDMuNGw2Ljc2LTIuNDYgMy40NiAxLjQ0QTIuMDQgMi4wNCAwIDAgMCAyMSAxMy45NnYtMS4yM2MwLTIuNi0yLjExLTQuNzEtNC43Mi00LjcxaC0uNjlaTTcgNi45NWMwIC4yMi4xMy40Mi4zNC41bDQuODMgMS45MmMuMjUuMS41Mi4xNS43OS4xNWgzLjMyYTMuMjIgMy4yMiAwIDAgMSAzLjIyIDMuMjF2MS4yM2MwIC4zOS0uMzkuNjUtLjc0LjVsLTMuNjQtMS41MmExIDEgMCAwIDAtLjczLS4wMmwtNi45NSAyLjUzYy0uNTUuMi0uOTctLjUtLjU1LS45bDIuNjItMi40MmExIDEgMCAwIDAtLjMtMS42Nkw1IDguNzFhLjguOCAwIDAgMS0uMzYtMS4xOGwxLjkxLTIuOTFjLjE0LS4yLjQ2LS4xMS40Ni4xNHYyLjJabS00IDEzLjNjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWlycGxhbmVUYWtlT2ZmMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVUYWtlT2ZmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04LjYgMy43NGMtLjEyLjE0LS4yMS4yOC0uMy40MS0uMjguNDMtLjY2Ljc0LTEuMS44NmwtMy40My45LS42LTEuMjVDMi42NCAzLjU3IDEgMy45NSAxIDUuMTZWOGMwIDEuMTYgMS4xIDIgMi4yMiAxLjY4bDMuMTEtLjg3LS4zMSAxLjRjLS4zNiAxLjYxIDEuNzYgMi41NCAyLjcgMS4xOWwzLjEtNC40OCAyLjIzLS44Mi4xNS0uMDdjLjYyLS4zLjk4LTEuMDMuNzEtMS43VjQuM2MtLjA0LS4xLS4xLS4yLS4xNi0uMjlMMTQuNzIgNGE3LjIyIDcuMjIgMCAwIDAtLjIyLS4yOWMtLjYzLS43Ny0xLjY1LTEuNy0zLTEuNy0uMiAwLS4zOC4wMi0uNTcuMDYtLjU0LjExLTEuMDIuMzktMS40MS43LS4zNi4zLS42Ni42NC0uOTEuOTZsLS4wMi4wMlptLTQuMTYuOTYtLjEtLjEzYTEuNiAxLjYgMCAwIDEgMi4xNy0yLjI5bDEuMjcuODctLjMxLjQ1Yy0uMTkuMjgtLjM5LjQtLjUyLjQ0bC0yLjUuNjZaTTEuNSAxNGEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZVRha2VPZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVUYWtlT2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtNS4xIDUuNTYtLjc2LS45OWExLjYgMS42IDAgMCAxIDIuMTctMi4yOWwyLjEgMS40NGMuMjUtLjMyLjU1LS42Ni45LS45NS41My0uNDMgMS4yLS43NyAyLS43NyAxLjU0LjAxIDIuNjUgMS4yMSAzLjI0IDIuMDIuNTcuOC4xMSAxLjc4LS43IDIuMDhsLTIuMjMuODItMy4xIDQuNDhjLS45NCAxLjM1LTMuMDYuNDItMi43LTEuMThsLjMxLTEuNDEtMy4xLjg3QTEuNzUgMS43NSAwIDAgMSAxIDhWNS4xNmMwLTEuMjEgMS42NC0xLjU5IDIuMTctLjVsLjYgMS4yNSAxLjM0LS4zNVptLjAzLTEuNiAxLjAzIDEuMzIgMS4wNC0uMjdjLjMtLjA4LjU3LS4yNS44LS41bC0yLjA2LTEuNGEuNi42IDAgMCAwLS44Ljg1Wm00IC43NGEyLjk2IDIuOTYgMCAwIDEtMS42NyAxLjI4bC0zLjgzIDFhLjUuNSAwIDAgMS0uNTgtLjI2TDIuMjcgNS4xYy0uMDMtLjA1LS4wNS0uMDYtLjA3LS4wN2EuMTUuMTUgMCAwIDAtLjEgMCAuMTUuMTUgMCAwIDAtLjA3LjA0Yy0uMDEuMDEtLjAzLjA0LS4wMy4wOVY4YzAgLjUuNDcuODYuOTUuNzJsMy4xLS44N2ExIDEgMCAwIDEgMS4yNiAxLjE4bC0uMzIgMS40Yy0uMTIuNTQuNTkuODUuOS40bDMuMi00LjYxYS41LjUgMCAwIDEgLjI0LS4xOWwyLjM4LS44N2EuNDQuNDQgMCAwIDAgLjI3LS4yNi4zLjMgMCAwIDAtLjA1LS4zQzEzLjM3IDMuODQgMTIuNTIgMyAxMS41IDNjLS40OSAwLS45NC4yLTEuMzUuNTRBNS4yIDUuMiAwIDAgMCA5LjE0IDQuN1pNMS41IDE0YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFpcnBsYW5lVGFrZU9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FpcnBsYW5lVGFrZU9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTEuNjggNS4xNi0uMzguMzNjLS4yMy4yMS0uNDguMzgtLjc0LjQ2TDQuNzYgNy45bC0uNi0xLjIzYTEuMTkgMS4xOSAwIDAgMC0uMjQtLjM0Yy0uNjItLjYtMS43NC0uMjctMS45LjYyTDIgNy4xNnYyLjk5YzAgMS4yIDEuMTggMi4wNCAyLjMyIDEuNjVsMy4wMi0xLjA0LS4zIDEuNDZjLS4zIDEuNTYgMS43IDIuNDcgMi42NiAxLjIxbDMuMS00IDQuMTgtMS4zNWMuODQtLjI3IDEuMzMtMS4yOC43NC0yLjEtLjUyLS43LTEuNDMtMS42OC0yLjY3LTEuOTJhMi45OCAyLjk4IDAgMCAwLS44OC0uMDQgNC45IDQuOSAwIDAgMC0yLjUgMS4xNFptLTIuNTcuMjJMNS4zOCA2LjYybC0uMDQtLjA1YTEuNiAxLjYgMCAwIDEgMi4xNy0yLjI5bDEuNiAxLjFaTTIuNSAxN2EuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZVRha2VPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVUYWtlT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNSA0Yy0xLjQxLS4wMS0yLjYzLjk2LTMuMiAxLjQ5LS4yMy4yMS0uNDguMzgtLjc0LjQ2bC0uNDEuMTRMNy41IDQuMjhhMS42IDEuNiAwIDAgMC0yLjE3IDIuM2wuNy44OC0xLjI4LjQzLS42LTEuMjNDMy42NSA1LjU3IDIgNS45NSAyIDcuMTZ2Mi45OWMwIDEuMiAxLjE4IDIuMDQgMi4zMiAxLjY1bDMuMDItMS4wNC0uMyAxLjQ2Yy0uMyAxLjU2IDEuNyAyLjQ3IDIuNjYgMS4yMWwzLjEtNCA0LjE4LTEuMzVjLjg0LS4yNyAxLjMzLTEuMjguNzQtMi4xLS42LS44LTEuNy0xLjk3LTMuMjItMS45OFpNNy4wNCA3LjEzbC0uOS0xLjE3YS42LjYgMCAwIDEgLjgtLjg2TDguOTYgNi41bC0xLjkyLjY0Wm00Ljk0LS45MWMuNTUtLjUxIDEuNTEtMS4yMyAyLjUyLTEuMjIgMSAwIDEuODUuOCAyLjQxIDEuNTguMDcuMS4wOC4yLjA0LjMtLjA0LjEtLjEzLjItLjI4LjI1bC00LjMyIDEuNGEuNS41IDAgMCAwLS4yNS4xNmwtMy4xOSA0LjEzYy0uMzIuNDItLjk5LjEyLS44OC0uNGwuMjktMS40N2ExIDEgMCAwIDAtMS4zLTEuMTRsLTMuMDMgMS4wNGMtLjQ4LjE3LS45OS0uMTktLjk5LS43VjcuMTZjMC0uMDUuMDItLjA4LjAzLS4xYS4xNS4xNSAwIDAgMSAuMDgtLjA0bC4xLjAxLjA2LjA3Ljc4IDEuNjJjLjEuMjIuMzcuMzMuNi4yNWw2LjIzLTIuMDdjLjQzLS4xNC44LS40IDEuMS0uNjhaTTIuNSAxN2EuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZVRha2VPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBaXJwbGFuZVRha2VPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTEwLjUyIDQuNDEgMS44NyAxLjUyLS41LjU2Yy0uMTIuMTUtLjIzLjItLjI5LjIxbC0zLjQ2LjcyLS4zOC0uNjhhMS44NCAxLjg0IDAgMCAxIDIuNzYtMi4zM1ptNi4xNy4xYzIuMjQtLjE4IDMuOTEgMS4yNCA0Ljg2IDIuMzIuNDkuNTYuNTggMS4yNy4zNyAxLjg4LS4yLjYtLjY5IDEuMS0xLjM0IDEuMzJsLTUuMzcgMS44NS0zLjIzIDQuMzJhMiAyIDAgMCAxLTMuNDYtMS45N2wuNS0xLjIzLTMuMy42M0EyLjMgMi4zIDAgMCAxIDMgMTEuMzhWNy43YTEuNyAxLjcgMCAwIDEgMy4xOC0uOGwuOTYgMS43NiA0LjY3LS45N2MuMy0uMDYuNjEtLjI2Ljg1LS41NS4zOC0uNDUuOTMtMS4wNSAxLjYtMS41N0E0LjcgNC43IDAgMCAxIDE2LjcgNC41Wk0zLjc1IDE5LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDE2LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBaXJwbGFuZVRha2VPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWlycGxhbmVUYWtlT2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtOC4zMiA4LjQtLjc4LTEuMTJhMi4xIDIuMSAwIDAgMSAzLjA1LTIuODFsMi41OCAyLjA5Yy4zMS0uMzMuNjgtLjY4IDEuMS0xYTQuNyA0LjcgMCAwIDEgMi40Mi0xLjA2YzIuMjQtLjE3IDMuOTEgMS4yNSA0Ljg2IDIuMzMuNDkuNTYuNTggMS4yNy4zNyAxLjg4LS4yLjYtLjY5IDEuMS0xLjM0IDEuMzJsLTUuMzcgMS44NS0zLjE2IDQuMjJhMi4yNSAyLjI1IDAgMCAxLTQtMS43OGwuMjUtMS4yOC0yLjUzLjU0QTIuMjggMi4yOCAwIDAgMSAzIDExLjM1VjcuN2ExLjcgMS43IDAgMCAxIDMuMTgtLjhsLjk2IDEuNzYgMS4xOC0uMjRabS40Ni0xLjk3IDEuMTMgMS42NSAxLjktLjRjLjA5LS4wMi4xNy0uMDUuMjYtLjA5TDkuNjUgNS42M2EuNi42IDAgMCAwLS44Ny44Wk0xNi44MSA2Yy0uNS4wNC0xLjA3LjMyLTEuNjMuNzUtLjU1LjQyLTEuMDMuOTQtMS4zNiAxLjM0LS40Mi41LTEgLjkxLTEuNyAxLjA2TDYuOSAxMC4yM2EuNzUuNzUgMCAwIDEtLjgtLjM3TDQuODUgNy42YS4yLjIgMCAwIDAtLjM2LjF2My42NWMwIC41LjQ2Ljg3Ljk1Ljc3bDMuNjQtLjc5YS43NS43NSAwIDAgMSAuOS44OGwtLjQ3IDIuNGEuNzUuNzUgMCAwIDAgMS4zMy42bDMuMy00LjQxYS43NS43NSAwIDAgMSAuMzYtLjI2bDUuNTgtMS45M2EuNjQuNjQgMCAwIDAgLjQxLS4zOC40LjQgMCAwIDAtLjA4LS40MWMtLjg2LS45OC0yLjEtMS45NC0zLjYxLTEuODJaTTMuNzUgMTkuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTYuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsYnVtMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxidW0yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNmMwLTEuMS45LTIgMi0ydjEyYTIgMiAwIDAgMS0yLTJWNlptNyAyLjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtNGEuNS41IDAgMCAxLS41LS41di0xWk01IDE2VjRoMTFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINVptNC41LTlDOC42NyA3IDggNy42NyA4IDguNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGJ1bTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGJ1bTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTggOC41QzggNy42NyA4LjY3IDcgOS41IDdoNGMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDggOS41di0xWk05LjUgOGEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtNFpNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTQgOWgxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg2djEwWk01IDVINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxVjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQWxidW0yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGJ1bTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMXYxNkg0YTIgMiAwIDAgMS0yLTJWNlptMTQgMi41aC00YS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVY5YS41LjUgMCAwIDAtLjUtLjVaTTYuNSAyMEgyMGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2LjV2MTZaTTEyIDdoNGEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0yVjljMC0xLjEuOS0yIDItMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGJ1bTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGJ1bTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwIDljMC0xLjEuOS0yIDItMmg0YTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJWOVptMi0uNWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjVWOWEuNS41IDAgMCAwLS41LS41aC00Wk00IDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRabTE2IDEuNWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41SDcuNXYtMTNIMjBabS0xNiAwaDJ2MTNINGEuNS41IDAgMCAxLS41LS41VjZjMC0uMjguMjItLjUuNS0uNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGJ1bUFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsYnVtQWRkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDRhMiAyIDAgMCAwLTIgMnYzLjI2QTUuNDkgNS40OSAwIDAgMSA0IDguMlY0Wm0xMiAxMmgtNS42YTUuNDggNS40OCAwIDAgMCAwLTVoMy4xYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTRDOC42NyA3IDggNy42NyA4IDguNXYuMWE1LjQ4IDUuNDggMCAwIDAtMy0uNThWNGgxMWEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMlptLTIuNS02SDkuNzRBNS41MyA1LjUzIDAgMCAwIDkgOS4yNlY4LjVjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNVpNMTAgMTMuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxM0gzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTRoMS41YS41LjUgMCAwIDAgMC0xSDZ2LTEuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGJ1bUFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGJ1bUFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC01LjZjLjE2LS4zMi4zLS42NS40LTFIMTZhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINnYzLjAyYTUuNTcgNS41NyAwIDAgMC0xIDBWNUg0YTEgMSAwIDAgMC0xIDF2Mi42Yy0uMzYuMTgtLjcuNC0xIC42NlY2Wm0xMS41IDVoLTMuMWE1LjUgNS41IDAgMCAwLS42Ni0xaDMuNzZhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAtLjUuNXYuNzZhNS41IDUuNSAwIDAgMC0xLS42NnYtLjFDOCA3LjY3IDguNjcgNyA5LjUgN2g0Yy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41Wk0xMCAxMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjEzSDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNGgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFsYnVtQWRkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxidW1BZGQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgNmMwLTEuMS45LTIgMi0yaDF2Ny4xN2E2LjQ5IDYuNDkgMCAwIDAtMyAxLjY0VjZabTE0IDIuNWgtNGEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjVWOWEuNS41IDAgMCAwLS41LS41Wk0xMi41IDIwSDIwYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDYuNXY3YTYuNSA2LjUgMCAwIDEgNiA5Wk0xMCA5YzAtMS4xLjktMiAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0yVjlabS0zLjUgM2E1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0uNSA4LjVWMThoMi41YS41LjUgMCAwIDAgMC0xSDd2LTIuNWEuNS41IDAgMSAwLTEgMFYxN0gzLjVhLjUuNSAwIDAgMCAwIDFINnYyLjVhLjUuNSAwIDEgMCAxIDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQWxidW1BZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxidW1BZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJoLTcuNWMuMi0uNDcuMzQtLjk4LjQyLTEuNUgyMGEuNS41IDAgMCAwIC41LS41VjZhLjUuNSAwIDAgMC0uNS0uNUg3LjV2NS41OGE2LjU1IDYuNTUgMCAwIDAtMS41LS4wNlY1LjVINGEuNS41IDAgMCAwLS41LjV2NS43M2MtLjU1LjI5LTEuMDYuNjUtMS41IDEuMDhWNlptMTAgMWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0yaC00Wm00IDEuNWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNVY5YzAtLjI4LjIyLS41LjUtLjVoNFpNNi41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabS41IDguNVYxOGgyLjVhLjUuNSAwIDAgMCAwLTFIN3YtMi41YS41LjUgMCAxIDAtMSAwVjE3SDMuNWEuNS41IDAgMCAwIDAgMUg2djIuNWEuNS41IDAgMSAwIDEgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBbGVydDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0MTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02IDFhNCA0IDAgMCAwLTQgNHYxLjM4bC0uOTUgMS45QS41LjUgMCAwIDAgMS41IDloOWEuNS41IDAgMCAwIC40NS0uNzJMMTAgNi4zOFY1YTQgNCAwIDAgMC00LTRabTAgMTAuNUEyIDIgMCAwIDEgNC4wNiAxMGgzLjg4QTIgMiAwIDAgMSA2IDExLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTMgNXYxLjVhLjUuNSAwIDAgMS0uMDUuMjJMMi4zIDhoNy4zOGwtLjY0LTEuMjhBLjUuNSAwIDAgMSA5IDYuNVY1YTMgMyAwIDAgMC02IDBabTEgNEgxLjVhLjUuNSAwIDAgMS0uNDUtLjcyTDIgNi4zOFY1YTQgNCAwIDEgMSA4IDB2MS4zOGwuOTUgMS45YS41LjUgMCAwIDEtLjQ1LjcySDhhMiAyIDAgMSAxLTQgMFptMyAwSDVhMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMmE0LjUgNC41IDAgMCAwLTQuNSA0LjV2Mi40bC0uOTYgMi40MUEuNS41IDAgMCAwIDMgMTJoMTBhLjUuNSAwIDAgMCAuNDYtLjY5bC0uOTYtMi40VjYuNUE0LjUgNC41IDAgMCAwIDggMlptMCAxMi41QTIgMiAwIDAgMSA2LjA2IDEzaDMuODhBMiAyIDAgMCAxIDggMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYTQuNSA0LjUgMCAwIDAtNC41IDQuNXYyLjRsLS45NiAyLjQxQS41LjUgMCAwIDAgMyAxMmgzYTIgMiAwIDEgMCA0IDBoM2EuNS41IDAgMCAwIC40Ni0uNjlsLS45Ni0yLjRWNi41QTQuNSA0LjUgMCAwIDAgOCAyWm0xIDEwYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxLTEtMWgyWk00LjUgNi41YTMuNSAzLjUgMCAxIDEgNyAwVjljMCAuMDYuMDEuMTIuMDQuMThsLjcyIDEuODJIMy43NGwuNzItMS44MkEuNS41IDAgMCAwIDQuNSA5VjYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyLjQ1IDE2YTIuNSAyLjUgMCAwIDEtNC45IDBoNC45Wk0xMCAyYTUuOTIgNS45MiAwIDAgMSA1Ljk4IDUuMzZsLjAyLjIyVjExLjRsLjk1IDIuNi4wMy4wOC4wMS4wOXYuMDhjMCAuMzItLjE5LjYtLjUxLjcxbC0uMTIuMDMtLjExLjAxSDMuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNzZ2LS4xMmwuMDQtLjEyTDQgMTEuNFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMmE1LjkyIDUuOTIgMCAwIDEgNS45OCA1LjM2bC4wMi4yMlYxMS40bC45MiAyLjIyYTEgMSAwIDAgMSAuMDYuMTdsLjAxLjA4LjAxLjEzYTEgMSAwIDAgMS0uNzUuOTdsLS4xMS4wMkwxNiAxNWgtMy41di4xN2EyLjUgMi41IDAgMCAxLTUgMFYxNUg0YTEgMSAwIDAgMS0uMjYtLjAzbC0uMTMtLjA0YTEgMSAwIDAgMS0uNi0xLjA1bC4wMi0uMTMuMDUtLjEzTDQgMTEuNFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlptMS41IDEzaC0zdi4xNWExLjUgMS41IDAgMCAwIDEuMzYgMS4zNGwuMTQuMDFjLjc4IDAgMS40Mi0uNiAxLjUtMS4zNlYxNVpNMTAgM2E0LjkgNC45IDAgMCAwLTQuOTggNC4zOEw1IDcuNlYxMS41bC0uMDQuMkw0IDE0aDEybC0uOTYtMi4zLS4wNC0uMlY3LjYxQTQuOSA0LjkgMCAwIDAgMTAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuMDQgMTloNS45MmEzIDMgMCAwIDEtNS45MiAwWk0xMiAyYTcuNSA3LjUgMCAwIDEgNy41IDcuNXY0bDEuNDIgMy4xNmEuOTUuOTUgMCAwIDEtLjg3IDEuMzRIMy45NWEuOTUuOTUgMCAwIDEtLjg2LTEuMzRMNC41IDEzLjVWOS4yNEE3LjUgNy41IDAgMCAxIDEyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhNy41IDcuNSAwIDAgMSA3LjUgNy4yNXY0LjM1bDEuMzggMy4xNWExLjI1IDEuMjUgMCAwIDEtMS4xNSAxLjc1SDE1YTMgMyAwIDAgMS02IC4xOHYtLjE4SDQuMjdhMS4yNSAxLjI1IDAgMCAxLTEuMTQtMS43NUw0LjUgMTMuNlY5LjVDNC41IDUuMzUgNy44NSAyIDEyIDJabTEuNSAxNi41aC0zYTEuNSAxLjUgMCAwIDAgMyAuMTV2LS4xNVpNMTIgMy41Yy0zLjMyIDAtNiAyLjY3LTYgNnY0LjRMNC42NiAxN2gxNC43TDE4IDEzLjlWOS4yOWE1Ljk5IDUuOTkgMCAwIDAtNi01Ljc4WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTcuNDcgMjJhMy41IDMuNSAwIDAgMS02Ljk0IDBoNi45NFpNMTQgM2E4LjUgOC41IDAgMCAxIDguNSA4LjI1djQuMzZsMS40MSAzLjY1Yy4wNC4xLjA3LjIuMDguM2wuMDEuMTZjMCAuNjYtLjUgMS4yLTEuMTUgMS4yN2wtLjEzLjAxSDUuMjdhMS4yOCAxLjI4IDAgMCAxLTEuMjMtMS42MmwuMDQtLjEyTDUuNSAxNS42di00LjFDNS41IDYuOCA5LjMgMyAxNCAzWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCAzYTguNSA4LjUgMCAwIDEgOC41IDguMjV2NC44NmwxLjQxIDMuNjVjLjA0LjEuMDcuMi4wOC4zbC4wMS4xNmMwIC42Ni0uNSAxLjItMS4xNSAxLjI3bC0uMTMuMDFIMTcuNWEzLjUgMy41IDAgMCAxLTcgLjJ2LS4ySDUuMjdhMS4yOCAxLjI4IDAgMCAxLTEuMjMtMS42MmwuMDQtLjEyTDUuNSAxNi4xdi00LjZDNS41IDYuOCA5LjMgMyAxNCAzWm0yIDE4LjY1di0uMTVoLTRhMiAyIDAgMCAwIDQgLjE1Wk0xNCA0LjVhNyA3IDAgMCAwLTcgNi43NnY0Ljk5YzAgLjA3IDAgLjEzLS4wMi4xOWwtLjAzLjA5TDUuNiAyMGgxNi44bC0xLjM1LTMuNDhhLjc1Ljc1IDAgMCAxLS4wNC0uMTdWMTEuNWE3IDcgMCAwIDAtNy4wMS03WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNyAxM2E5IDkgMCAwIDEgMTggMHYzLjhsMS45MyA0LjgzQTEgMSAwIDAgMSAyNiAyM0g2YTEgMSAwIDAgMS0uOTMtMS4zN0w3IDE2LjhWMTNabTUuMTIgMTJhMy45OSAzLjk5IDAgMCAwIDcuNzYgMGgtNy43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTYgNGE5IDkgMCAwIDAtOSA5djQuOGwtMS45MyA0LjgzQTEgMSAwIDAgMCA2IDI0aDZhMy45OSAzLjk5IDAgMSAwIDggMGg2YTEgMSAwIDAgMCAuOTMtMS4zN0wyNSAxNy44VjEzYTkgOSAwIDAgMC05LTlabTIgMjBjMCAxLjExLS44OSAyLTIgMi0xLjExIDAtMi0uODktMi0yaDRaTTkgMTNhNyA3IDAgMSAxIDE0IDB2NWExIDEgMCAwIDAgLjA3LjM3TDI0LjUyIDIySDcuNDhsMS40NS0zLjYzQTEgMSAwIDAgMCA5IDE4di01WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNEExNSAxNSAwIDAgMCA5IDE5djguNDlsLTIuOCA2LjM1QTIuMjUgMi4yNSAwIDAgMCA4LjI1IDM3aDMxLjVhMi4yNSAyLjI1IDAgMCAwIDIuMDUtMy4xNkwzOSAyNy41VjE5QTE1IDE1IDAgMCAwIDI0IDRabTAgNDBhNiA2IDAgMCAxLTUuOTItNWgxMS44NEE2IDYgMCAwIDEgMjQgNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTExLjUgMTl2OC43NWMwIC4xNy0uMDQuMzUtLjEuNUw4LjYzIDM0LjVoMzAuNzJsLTIuNzUtNi4yNWMtLjA3LS4xNS0uMTEtLjMzLS4xMS0uNVYxOWExMi41IDEyLjUgMCAxIDAtMjUgMFpNMTggMzdIOC4yNWEyLjI1IDIuMjUgMCAwIDEtMi4wNS0zLjE2TDkgMjcuNVYxOWExNSAxNSAwIDAgMSAzMCAwdjguNDlsMi44IDYuMzVBMi4yNSAyLjI1IDAgMCAxIDM5Ljc1IDM3SDMwdjFhNiA2IDAgMCAxLTEyIDB2LTFabTkuNSAwaC03djFhMy41IDMuNSAwIDEgMCA3IDB2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydEJhZGdlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRCYWRnZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAyYTQuNSA0LjUgMCAwIDAtNC41IDQuNXYyLjRsLS45NiAyLjQxQS41LjUgMCAwIDAgMyAxMmgxMGEuNS41IDAgMCAwIC40Ni0uNjlsLS45Ni0yLjRWN2EyLjUgMi41IDAgMCAxLTEuODctNC4xNUE0LjQ4IDQuNDggMCAwIDAgOCAyWm0wIDEyLjVBMiAyIDAgMCAxIDYuMDYgMTNoMy44OEEyIDIgMCAwIDEgOCAxNC41Wk0xMi41IDZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydEJhZGdlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0QmFkZ2UxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDJhNC41IDQuNSAwIDAgMC00LjUgNC41djIuNGwtLjk2IDIuNDFBLjUuNSAwIDAgMCAzIDEyaDNhMiAyIDAgMSAwIDQgMGgzYS41LjUgMCAwIDAgLjQ2LS42OWwtLjk2LTIuNFY3Yy0uMzYgMC0uNy0uMDctMS0uMlY5YzAgLjA2LjAxLjEyLjA0LjE4bC43MiAxLjgySDMuNzRsLjcyLTEuODJBLjUuNSAwIDAgMCA0LjUgOVY2LjVhMy41IDMuNSAwIDAgMSA1LjYyLTIuNzhjLjExLS4zMy4yOC0uNjIuNS0uODdBNC40OCA0LjQ4IDAgMCAwIDggMlptMSAxMGExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMS0xLTFoMlptMi4zNy04LjQ4YTEuNSAxLjUgMCAwIDAtLjAzIDEuOTMgMS41IDEuNSAwIDEgMCAuMDMtMS45M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0QmFkZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydEJhZGdlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi40NSAxNmEyLjUgMi41IDAgMCAxLTQuOSAwaDQuOVpNMTAgMmMxLjA5IDAgMi4xMS4yOCAzIC43N2EzIDMgMCAwIDAgMyA1LjA2djMuNThsLjk1IDIuNTkuMDMuMDguMDEuMDl2LjA4YzAgLjMyLS4xOS42LS41MS43MWwtLjEyLjAzLS4xMS4wMUgzLjc1YS43NS43NSAwIDAgMS0uNzQtLjc2di0uMTJsLjA0LS4xMkw0IDExLjRWNy41N0E1LjkgNS45IDAgMCAxIDEwIDJabTUgNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGVydEJhZGdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0QmFkZ2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYzEuMDkgMCAyLjExLjI4IDMgLjc3LS4yNi4yMy0uNDcuNS0uNjQuOEE1LjE2IDUuMTYgMCAwIDAgMTAgM2E0LjkgNC45IDAgMCAwLTQuOTggNC4zOEw1IDcuNlYxMS41bC0uMDQuMkw0IDE0aDEybC0uOTYtMi4zLS4wNC0uMlY4YTMgMyAwIDAgMCAxLS4xN3YzLjU3bC45MiAyLjIyYTEgMSAwIDAgMSAuMDYuMTdsLjAxLjA4LjAxLjEzYTEgMSAwIDAgMS0uNzUuOTdsLS4xMS4wMkwxNiAxNWgtMy41di4xN2EyLjUgMi41IDAgMCAxLTUgMFYxNUg0YTEgMSAwIDAgMS0uMjYtLjAzbC0uMTMtLjA0YTEgMSAwIDAgMS0uNi0xLjA1bC4wMi0uMTMuMDUtLjEzTDQgMTEuNFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlptMS41IDEzaC0zdi4xNWExLjUgMS41IDAgMCAwIDEuMzYgMS4zNGwuMTQuMDFjLjc4IDAgMS40Mi0uNiAxLjUtMS4zNlYxNVptMS43LTEwLjg5QTIgMiAwIDAgMSAxNSAzYTIgMiAwIDEgMS0xLjggMS4xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0QmFkZ2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydEJhZGdlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOC41IDljLjM0IDAgLjY2LS4wNS45Ny0uMTQuMDIuMjEuMDMuNDMuMDMuNjR2NGwxLjQyIDMuMTZhLjk1Ljk1IDAgMCAxLS44NyAxLjM0SDMuOTVhLjk1Ljk1IDAgMCAxLS44Ni0xLjM0TDQuNSAxMy41VjkuMjRhNy41IDcuNSAwIDAgMSAxMS40NC02LjEyQTMuNDkgMy40OSAwIDAgMCAxOC41IDlabS0zLjU0IDEwYTMgMyAwIDAgMS01LjkyIDBoNS45MlpNMTguNSA4YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRCYWRnZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydEJhZGdlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTEuOTkgMmMxLjQ1IDAgMi44LjQgMy45NSAxLjExLS4zNS4zNy0uNjEuOC0uNzcgMS4yOWE2IDYgMCAwIDAtOS4yIDUuMXY0LjRMNC42NCAxN2gxNC43MkwxOCAxMy45VjkuMjhsLS4wMy0uMzJhMy41NCAzLjU0IDAgMCAwIDEuNS0uMWwuMDIuMzh2NC4zNWwxLjM5IDMuMTZhMS4yNSAxLjI1IDAgMCAxLTEuMTUgMS43NUgxNWEzIDMgMCAwIDEtNiAuMTd2LS4xOEg0LjI0YTEuMjUgMS4yNSAwIDAgMS0xLjE1LTEuNzRsMS4zOC0zLjE2VjkuNWE3LjUgNy41IDAgMCAxIDcuNS03LjVabTEuNSAxNi41aC0zYTEuNSAxLjUgMCAwIDAgMyAuMTR2LS4xNVptMi41NC0xMy40NUEyLjUgMi41IDAgMCAxIDE4LjUgM2EyLjUgMi41IDAgMSAxLTIuNDcgMi4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T2ZmMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTExLjMgMTIgMi44NSAyLjg1YS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN0wzLjkgNC42MkE0LjQ4IDQuNDggMCAwIDAgMy41IDYuNXYyLjRsLS45NiAyLjQxQS41LjUgMCAwIDAgMyAxMmg4LjNabTIuMTYtLjY5LjAyLjA1LTguMzQtOC4zNEE0LjUgNC41IDAgMCAxIDEyLjUgNi41djIuNGwuOTYgMi40MVpNOCAxNC41QTIgMiAwIDAgMSA2LjA2IDEzaDMuODhBMiAyIDAgMCAxIDggMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T2ZmMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0T2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTEuMyAxMiAyLjg1IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDMuOSA0LjYyQTQuNDggNC40OCAwIDAgMCAzLjUgNi41djIuNGwtLjk2IDIuNDFBLjUuNSAwIDAgMCAzIDEyaDNhMiAyIDAgMSAwIDQgMGgxLjNabS0xLTFIMy43M2wuNzItMS44MkEuNS41IDAgMCAwIDQuNSA5VjYuNWMwLS4zOS4wNi0uNzYuMTgtMS4xMUwxMC4zIDExWk04IDEzYTEgMSAwIDAgMS0xLTFoMmExIDEgMCAwIDEtMSAxWm0zLjY5LTMuNDMtLjE1LS4zOUEuNS41IDAgMCAxIDExLjUgOVY2LjVhMy41IDMuNSAwIDAgMC01LjY0LTIuNzdsLS43Mi0uN0E0LjUgNC41IDAgMCAxIDEyLjUgNi41djIuNGwuOTYgMi40LjAyLjA1LTEuNzktMS44WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCA3LjU3Yy4wNC0uODIuMjQtMS41OS41OC0yLjI4TDIuMTUgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN0wxNC4zIDE1SDMuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNzZ2LS4xMmwuMDQtLjEyTDQgMTEuNFY3LjU3Wm0xMyA2LjY4YzAgLjE4LS4wNi4zNC0uMTYuNDZMNS43OSAzLjY2QTYuMSA2LjEgMCAwIDEgOS45OSAyYTUuOTIgNS45MiAwIDAgMSA2IDUuMzZ2LjIybC4wMS4yMnYzLjZsLjk1IDIuNi4wMy4wOC4wMS4wOXYuMDhaTTEyLjQ1IDE2YTIuNSAyLjUgMCAwIDEtNC45IDBoNC45WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDcuNTdjLjA0LS44Mi4yNC0xLjU5LjU4LTIuMjhMMi4xNSAyLjg1YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43TDE0LjMgMTVoLTEuOHYuMTdhMi41IDIuNSAwIDAgMS01IDBWMTVINGExIDEgMCAwIDEtLjI2LS4wM2wtLjEzLS4wNGExIDEgMCAwIDEtLjYtMS4wNWwuMDItLjEzLjA1LS4xM0w0IDExLjRWNy41N1pNMTMuMyAxNCA1LjM0IDYuMDVhNC42IDQuNiAwIDAgMC0uMzIgMS4zM0w1IDcuNlYxMS41bC0uMDQuMkw0IDE0aDkuM1ptLTEuOCAxaC0zdi4xNGExLjUgMS41IDAgMCAwIDEuMzYgMS4zNGwuMTQuMDFjLjc4IDAgMS40Mi0uNiAxLjUtMS4zNlYxNVptMy41NC0zLjMyLjg3IDIuMS44Ni44NWMuMTUtLjE3LjIzLS40LjIzLS42NHYtLjEzbC0uMDItLjA4YTEgMSAwIDAgMC0uMDYtLjE3TDE2IDExLjRWNy41OGwtLjAyLS4yMkE1LjkyIDUuOTIgMCAwIDAgMTAgMmE2LjEgNi4xIDAgMCAwLTQuMjEgMS42NmwuNy43MUE1LjEgNS4xIDAgMCAxIDEwIDNhNC45IDQuOSAwIDAgMSA1IDQuNmwuMDEuMjF2My42OWwuMDQuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDMgM2MtLjQyLjktLjY4IDEuOS0uNzIgMi45NnY0LjI2bC0xLjQxIDMuMTZBLjk1Ljk1IDAgMCAwIDMuOTUgMThoMTNsMy43NyAzLjc4YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWk0yMSAxNy4wNWMwIC4yMi0uMDcuNDItLjIuNThMNy4wNiAzLjg3QTcuNSA3LjUgMCAwIDEgMTkuNSA5LjV2NGwxLjQyIDMuMTVjLjA1LjEyLjA4LjI2LjA4LjRaTTE0Ljk2IDE5YTMgMyAwIDAgMS01LjkyIDBoNS45MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T2ZmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0T2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtNS4yMiA2LjI4LTMtM2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDE4LjUgMTguNWEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0zLjI4LTMuMjhIMTVhMyAzIDAgMCAxLTYgLjE4di0uMThINC4yN2ExLjI1IDEuMjUgMCAwIDEtMS4xNC0xLjc1TDQuNSAxMy42VjkuNWMwLTEuMTUuMjYtMi4yNC43Mi0zLjIxWk0xNS45NCAxNyA2LjM2IDcuNDNBNi4wMiA2LjAyIDAgMCAwIDYgOS41djQuNEw0LjY2IDE3aDExLjI4Wm0tMi40NCAxLjVoLTNhMS41IDEuNSAwIDAgMCAzIC4xNXYtLjE1Wm00LjUtNC42LjcgMS42MyAyLjIgMi4xOGExLjI1IDEuMjUgMCAwIDAtLjAyLS45NmwtMS4zOC0zLjE2VjkuMjVBNy41IDcuNSAwIDAgMCA3LjA0IDMuODZsMS4wNyAxLjA2QTUuOTkgNS45OSAwIDAgMSAxOCA5LjI4VjEzLjkxWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRPZmYyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9mZjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsNC4yNiA0LjI2YTguNDYgOC40NiAwIDAgMC0uOTggMy45NnY0LjExbC0xLjQyIDMuNjUtLjA0LjEyQTEuMjggMS4yOCAwIDAgMCA1LjI3IDIxaDE0LjY3bDQuNzggNC43OGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptNS4wNiAyLjk0IDE1LjM3IDE1LjM3Yy4xOC0uMjIuMy0uNS4zLS44MWwtLjAyLS4xNmMtLjAxLS4xLS4wNC0uMi0uMDctLjNMMjIuNSAxNS42VjExLjI1YTguNSA4LjUgMCAwIDAtMTQuMTYtNi4xWk0xNy40NyAyMmEzLjUgMy41IDAgMCAxLTYuOTQgMGg2Ljk0WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRPZmYyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPZmYyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw0LjI2IDQuMjZhOC40NiA4LjQ2IDAgMCAwLS45OCAzLjk2djQuNjFsLTEuNDIgMy42NS0uMDQuMTJhMS4yOCAxLjI4IDAgMCAwIDEuMjMgMS42Mmg1LjIzdi4yYTMuNSAzLjUgMCAwIDAgNy0uMmgyLjk0bDQuMjggNC4yOGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTguOTQgMjBINS42bDEuMzUtMy40Ny4wMy0uMWEuNzUuNzUgMCAwIDAgLjAyLS4xOHYtNC45OWMuMDMtLjkyLjI0LTEuOC42LTIuNkwxOC45NCAyMFpNMTYgMjEuNjVhMiAyIDAgMCAxLTQtLjE1aDR2LjE1Wk04LjM0IDUuMTUgOS40IDYuMjNBNyA3IDAgMCAxIDIxIDExLjV2NC44NWwuMDUuMTcuODYgMi4yIDIgMmMuMDYtLjE1LjEtLjMyLjEtLjVsLS4wMi0uMTZjLS4wMS0uMS0uMDQtLjItLjA3LS4zTDIyLjUgMTYuMVYxMS4yNWE4LjUgOC41IDAgMCAwLTE0LjE2LTYuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9uMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0uNTggMi4yMmEuNS41IDAgMCAxIC43LS4xNGwxLjUgMWEuNS41IDAgMCAxLS41Ni44NGwtMS41LTFhLjUuNSAwIDAgMS0uMTQtLjdaTTggMmE0LjUgNC41IDAgMCAwLTQuNSA0LjV2Mi40bC0uOTYgMi40MUEuNS41IDAgMCAwIDMgMTJoMTBhLjUuNSAwIDAgMCAuNDYtLjY5bC0uOTYtMi40VjYuNUE0LjUgNC41IDAgMCAwIDggMlptMCAxMi41QTIgMiAwIDAgMSA2LjA2IDEzaDMuODhBMiAyIDAgMCAxIDggMTQuNVptNi43Mi0xMi40MmEuNS41IDAgMCAxIC41Ni44NGwtMS41IDFhLjUuNSAwIDAgMS0uNTYtLjg0bDEuNS0xWk0wIDYuNWMwLS4yOC4yMi0uNS41LS41SDJhLjUuNSAwIDAgMSAwIDFILjVhLjUuNSAwIDAgMS0uNS0uNVpNMTUuNSA2YS41LjUgMCAwIDEgMCAxSDE0YS41LjUgMCAwIDEgMC0xaDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTS41OCAyLjIyYS41LjUgMCAwIDEgLjctLjE0bDEuNSAxYS41LjUgMCAwIDEtLjU2Ljg0bC0xLjUtMWEuNS41IDAgMCAxLS4xNC0uN1pNOCAyYTQuNSA0LjUgMCAwIDAtNC41IDQuNXYyLjRsLS45NiAyLjQxQS41LjUgMCAwIDAgMyAxMmgzYTIgMiAwIDEgMCA0IDBoM2EuNS41IDAgMCAwIC40Ni0uNjlsLS45Ni0yLjRWNi41QTQuNSA0LjUgMCAwIDAgOCAyWm0xIDEwYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxLTEtMWgyWk00LjUgNi41YTMuNSAzLjUgMCAwIDEgNyAwVjljMCAuMDYuMDEuMTIuMDQuMThsLjcyIDEuODJIMy43NGwuNzItMS44MkEuNS41IDAgMCAwIDQuNSA5VjYuNVptMTAuMjItNC40MmEuNS41IDAgMCAxIC41Ni44NGwtMS41IDFhLjUuNSAwIDAgMS0uNTYtLjg0bDEuNS0xWk0wIDYuNWMwLS4yOC4yMi0uNS41LS41SDJhLjUuNSAwIDAgMSAwIDFILjVhLjUuNSAwIDAgMS0uNS0uNVpNMTUuNSA2YS41LjUgMCAwIDEgMCAxSDE0YS41LjUgMCAwIDEgMC0xaDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xLjggMi4xYS41LjUgMCAxIDAtLjYuOGwyIDEuNWEuNS41IDAgMSAwIC42LS44bC0yLTEuNVpNMSA3YS41LjUgMCAwIDAgMCAxaDEuNWEuNS41IDAgMCAwIDAtMUgxWm0xMS40NSA5YTIuNSAyLjUgMCAwIDEtNC45IDBoNC45Wk0xMCAyYTUuOTIgNS45MiAwIDAgMSA1Ljk4IDUuMzVsLjAyLjIzVjExLjRsLjk1IDIuNi4wMy4wOC4wMS4wOXYuMDhjMCAuMzItLjE5LjYtLjUxLjcxbC0uMTIuMDMtLjExLjAxSDMuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNzZ2LS4xMmwuMDQtLjEzLjk1LTIuNThWNy41N0E1LjkgNS45IDAgMCAxIDEwIDJabTguOS4yYS41LjUgMCAwIDAtLjctLjFsLTIgMS41YS41LjUgMCAwIDAgLjYuOGwyLTEuNWEuNS41IDAgMCAwIC4xLS43Wm0uNiA1LjNBLjUuNSAwIDAgMCAxOSA3aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTlhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEuOCAyLjFhLjUuNSAwIDEgMC0uNi44bDIgMS41YS41LjUgMCAxIDAgLjYtLjhsLTItMS41Wk0xIDdhLjUuNSAwIDAgMCAwIDFoMS41YS41LjUgMCAwIDAgMC0xSDFabTktNWE1LjkyIDUuOTIgMCAwIDEgNS45OCA1LjM1bC4wMi4yM1YxMS40bC45MiAyLjIyYTEgMSAwIDAgMSAuMDYuMTdsLjAxLjA4LjAxLjEzYTEgMSAwIDAgMS0uNzUuOTdsLS4xMS4wMkwxNiAxNWgtMy41di4xNmEyLjUgMi41IDAgMCAxLTUgMFYxNUg0YTEgMSAwIDAgMS0uMjYtLjAzbC0uMTMtLjA0YTEgMSAwIDAgMS0uNi0xLjA1bC4wMi0uMTMuMDUtLjEzTDQgMTEuNFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlptMS41IDEzaC0zdi4xNGExLjUgMS41IDAgMCAwIDEuMzYgMS4zNWwuMTQuMDFjLjc4IDAgMS40Mi0uNiAxLjUtMS4zNlYxNVpNMTAgM2E0LjkgNC45IDAgMCAwLTQuOTggNC4zOEw1IDcuNlYxMS41bC0uMDQuMkw0IDE0aDEybC0uOTYtMi4zLS4wNC0uMlY3LjYxQTQuOSA0LjkgMCAwIDAgMTAgM1ptOC45LS44YS41LjUgMCAwIDAtLjctLjFsLTIgMS41YS41LjUgMCAwIDAgLjYuOGwyLTEuNWEuNS41IDAgMCAwIC4xLS43Wm0uNiA1LjNBLjUuNSAwIDAgMCAxOSA3aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTlhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydE9uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjA0IDE5aDUuOTJhMyAzIDAgMCAxLTUuOTIgMFpNMTIgMmE3LjUgNy41IDAgMCAxIDcuNSA3LjV2NGwxLjQyIDMuMTZhLjk1Ljk1IDAgMCAxLS44NyAxLjM0SDMuOTVhLjk1Ljk1IDAgMCAxLS44Ni0xLjM0TDQuNSAxMy41VjkuMjRBNy41IDcuNSAwIDAgMSAxMiAyWm0xMSA2LjI1YS43NS43NSAwIDAgMSAuMSAxLjVIMjFhLjc1Ljc1IDAgMCAxLS4xLTEuNUgyM1ptLTIwIDBhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxYS43NS43NSAwIDAgMS0uMS0xLjVIM1ptMTkuNi01LjdjLjIzLjMuMi43Mi0uMDcuOThsLS4wOC4wNy0yIDEuNWEuNzUuNzUgMCAwIDEtLjk4LTEuMTNsLjA4LS4wNyAyLTEuNWEuNzUuNzUgMCAwIDEgMS4wNS4xNVpNMi40NSAyLjRsMiAxLjVhLjc1Ljc1IDAgMSAxLS45IDEuMmwtMi0xLjVhLjc1Ljc1IDAgMSAxIC45LTEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0T24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRPbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhNy41IDcuNSAwIDAgMSA3LjUgNy4yNXY0LjM1bDEuMzggMy4xNWExLjI1IDEuMjUgMCAwIDEtMS4xNSAxLjc1SDE1YTMgMyAwIDAgMS02IC4xOHYtLjE4SDQuMjdhMS4yNSAxLjI1IDAgMCAxLTEuMTQtMS43NUw0LjUgMTMuNlY5LjVDNC41IDUuMzUgNy44NSAyIDEyIDJabTEuNSAxNi41aC0zYTEuNSAxLjUgMCAwIDAgMyAuMTV2LS4xNVpNMTIgMy41Yy0zLjMyIDAtNiAyLjY3LTYgNnY0LjRMNC42NiAxN2gxNC43TDE4IDEzLjlWOS4yOWE1Ljk5IDUuOTkgMCAwIDAtNi01Ljc4Wm05IDQuNzVoMmEuNzUuNzUgMCAwIDEgLjEgMS41SDIxYS43NS43NSAwIDAgMS0uMS0xLjVoLjFabS0yMCAwaDJhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxYS43NS43NSAwIDAgMS0uMS0xLjVIMVptMjEuNi01LjdjLjIzLjMuMi43Mi0uMDcuOThsLS4wOC4wNy0yIDEuNWEuNzUuNzUgMCAwIDEtLjk4LTEuMTNsLjA4LS4wNyAyLTEuNWEuNzUuNzUgMCAwIDEgMS4wNS4xNVpNMi40NSAyLjRsMiAxLjVhLjc1Ljc1IDAgMSAxLS45IDEuMmwtMi0xLjVhLjc1Ljc1IDAgMSAxIC45LTEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0U25vb3plMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYuMDkgMUExLjUgMS41IDAgMCAwIDcuNSAzTDYuMyA0LjZBMS41IDEuNSAwIDAgMCA3LjUgN2gyLjhsLjY1IDEuMjhhLjUuNSAwIDAgMS0uNDUuNzJoLTlhLjUuNSAwIDAgMS0uNDUtLjcyTDIgNi4zOFY1YTQgNCAwIDAgMSA0LjA5LTRabS0yLjAzIDlhMiAyIDAgMCAwIDMuODggMEg0LjA2Wk03LjUgMWEuNS41IDAgMCAwIDAgMWgyTDcuMSA1LjJhLjUuNSAwIDAgMCAuNC44aDNhLjUuNSAwIDAgMCAwLTFoLTJsMi40LTMuMmEuNS41IDAgMCAwLS40LS44aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRTbm9vemUxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemUxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk03LjUgMWEuNS41IDAgMCAwIDAgMWgyTDcuMSA1LjJhLjUuNSAwIDAgMCAuNC44aDNhLjUuNSAwIDAgMCAwLTFoLTJsMi40LTMuMmEuNS41IDAgMCAwLS40LS44aC0zWm0yLjQ4IDZhLjUuNSAwIDAgMC0uNDMuNzJMOS43IDhIMi4zMWwuNjQtMS4yOEEuNS41IDAgMCAwIDMgNi41VjVhMyAzIDAgMCAxIDIuNTctMi45Ny41LjUgMCAxIDAtLjE0LS45OUE0IDQgMCAwIDAgMiA1djEuMzhsLS45NSAxLjlBLjUuNSAwIDAgMCAxLjUgOUg0YTIgMiAwIDAgMCA0IDBoMi41YS41LjUgMCAwIDAgLjQ1LS43MmwtLjUtMWEuNS41IDAgMCAwLS40My0uMjhoLS4wNFpNNSA5aDJhMSAxIDAgMSAxLTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0U25vb3plMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUgMS41YzAtLjI4LjIyLS41LjUtLjVoMy41YS41LjUgMCAwIDEgLjQxLjc5TDExLjk2IDZoMi41NGEuNS41IDAgMCAxIDAgMUgxMWEuNS41IDAgMCAxLS40MS0uNzlMMTMuNTQgMkgxMWEuNS41IDAgMCAxLS41LS41Wk02IDUuNWMwLS4yOC4yMi0uNS41LS41SDlhLjUuNSAwIDAgMSAuMzguODJMNy41NyA4SDlhLjUuNSAwIDAgMSAwIDFINi41YS41LjUgMCAwIDEtLjM4LS44Mkw3LjkzIDZINi41YS41LjUgMCAwIDEtLjUtLjVabTQuMzQtLjY3Ljk3LTEuMzhBNC40OSA0LjQ5IDAgMCAwIDMuNSA2LjV2Mi40bC0uOTYgMi40MUEuNS41IDAgMCAwIDMgMTJoMTBhLjUuNSAwIDAgMCAuNDYtLjY5bC0uOTYtMi40VjhIMTFhMS41IDEuNSAwIDAgMS0uNjUtLjE1QTEuNSAxLjUgMCAwIDEgOSAxMEg2LjVhMS41IDEuNSAwIDAgMS0xLjE1LTIuNDZsLjU1LS42NkExLjUgMS41IDAgMCAxIDYuNSA0SDljLjU3IDAgMS4wOS4zMiAxLjM0LjgzWk04IDE0LjVBMiAyIDAgMCAxIDYuMDYgMTNoMy44OEEyIDIgMCAwIDEgOCAxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRTbm9vemUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMSAxYS41LjUgMCAwIDAgMCAxaDIuNTRsLTIuOTUgNC4yMUEuNS41IDAgMCAwIDExIDdoMy41YS41LjUgMCAxIDAgMC0xaC0yLjU0bDIuOTUtNC4yMUEuNS41IDAgMCAwIDE0LjUgMUgxMVpNNi41IDVhLjUuNSAwIDAgMCAwIDFoMS40M0w2LjEyIDguMThBLjUuNSAwIDAgMCA2LjUgOUg5YS41LjUgMCAwIDAgMC0xSDcuNTdsMS44MS0yLjE4QS41LjUgMCAwIDAgOSA1SDYuNVpNOCAzYTMuNSAzLjUgMCAwIDAtMy41IDMuNVY5YS41LjUgMCAwIDEtLjA0LjE5TDMuNzQgMTFoOC41MmwtLjcyLTEuODFBLjUuNSAwIDAgMSAxMS41IDl2LS41YS41LjUgMCAwIDEgMSAwdi40bC45NiAyLjQxQS41LjUgMCAwIDEgMTMgMTJoLTNhMiAyIDAgMSAxLTQgMEgzYS41LjUgMCAwIDEtLjQ2LS42OWwuOTYtMi40VjYuNWE0LjUgNC41IDAgMCAxIDYuMTktNC4xNy41LjUgMCAxIDEtLjM4LjkyQzguOTEgMy4xIDguNDcgMyA4IDNabS0xIDlhMSAxIDAgMSAwIDIgMEg3WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRTbm9vemUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydFNub296ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmMuODkgMCAxLjc0LjE5IDIuNS41MkExLjUgMS41IDAgMCAwIDE0IDRoLjYzbC0xLjMgMS44M0ExLjQ3IDEuNDcgMCAwIDAgMTIgNUg5LjQ1bC0uMTguMDJoLS4wNGExLjUgMS41IDAgMCAwLS4zMyAyLjg2bC0uNTguNjktLjEuMTMtLjAxLjA0QTEuNSAxLjUgMCAwIDAgOS41IDExaDIuNTRsLjE4LS4wMmguMDVhMS41IDEuNSAwIDAgMCAxLjA5LTIuMTJjLjE5LjA5LjQuMTQuNjQuMTRoMnYyLjRsLjk1IDIuNi4wMy4wOC4wMS4wOXYuMDhjMCAuMzItLjE5LjYtLjUxLjcxbC0uMTIuMDMtLjExLjAxSDMuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNzZ2LS4xMmwuMDQtLjEyTDQgMTEuNFY3LjU3QTUuOSA1LjkgMCAwIDEgMTAgMlptMi40NSAxNGEyLjUgMi41IDAgMCAxLTQuOSAwaDQuOVpNMTQgMmgzLjVjLjM3IDAgLjYuNC40NS43MWwtLjA0LjA4TDE0Ljk2IDdoMi41NGEuNS41IDAgMCAxIC4wOSAxaC0zLjZhLjUuNSAwIDAgMS0uNDQtLjcxbC4wNC0uMDhMMTYuNTQgM0gxNGEuNS41IDAgMCAxLS4xLTFoLjFaTTkuNSA2SDEyYy40IDAgLjYyLjQzLjQzLjc1bC0uMDUuMDdMMTAuNTcgOUgxMmEuNS41IDAgMCAxIC4wOSAxaC0yLjZhLjUuNSAwIDAgMS0uNDItLjc1bC4wNC0uMDdMMTAuOTMgN0g5LjVhLjUuNSAwIDAgMS0uMS0xaC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRTbm9vemUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDExLjVWOC4wNWE1IDUgMCAwIDEgNi4zNi00Ljg3LjUuNSAwIDEgMCAuMjctLjk2QTYgNiAwIDAgMCA0IDh2My40bC0uOTIgMi4yMkExIDEgMCAwIDAgNCAxNWgzLjVhMi41IDIuNSAwIDAgMCA1IDBIMTZhMSAxIDAgMCAwIC45Mi0xLjM4TDE2IDExLjRWMTBhLjUuNSAwIDAgMC0xIDB2MS41YzAgLjA3LjAxLjEzLjA0LjJMMTYgMTRINGwuOTYtMi4zYS41LjUgMCAwIDAgLjA0LS4yWk04LjUgMTVoM2ExLjUgMS41IDAgMCAxLTMgMFpNMTQgMmgzLjVjLjM4IDAgLjYuNC40NS43MWwtLjA0LjA4TDE0Ljk2IDdoMi41NGEuNS41IDAgMCAxIC4wOSAxSDE0YS41LjUgMCAwIDEtLjQ1LS43MWwuMDQtLjA4TDE2LjU0IDNIMTRhLjUuNSAwIDAgMS0uMDktMUgxNFpNOS41IDZIMTJjLjQgMCAuNjIuNDMuNDMuNzVsLS4wNC4wN0wxMC41NyA5SDEyYS41LjUgMCAwIDEgLjEgMUg5LjVhLjUuNSAwIDAgMS0uNDMtLjc1bC4wNS0uMDdMMTAuOTMgN0g5LjVhLjUuNSAwIDAgMS0uMDktMWguMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0U25vb3plMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRTbm9vemUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1LjI1IDdoLTIuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDEuMDRsLTEuNjUgMi4zMS0uMDYuMWMtLjI1LjQ4LjEgMS4wOS42NyAxLjA5aDIuNmEuNzUuNzUgMCAwIDAtLjEtMS41aC0xLjA0bDEuNjUtMi4zMS4wNi0uMUEuNzUuNzUgMCAwIDAgMTUuMjUgN1ptNi01aC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgyLjEzbC0yLjc2IDQuMzUtLjA1LjA5QS43NS43NSAwIDAgMCAxNy43NSA5aDMuNmEuNzUuNzUgMCAwIDAtLjEtMS41aC0yLjEzbDIuNzYtNC4zNS4wNS0uMDlBLjc1Ljc1IDAgMCAwIDIxLjI1IDJaTTEyLjcgNS41aDIuNTVjLjUgMCAuOTYuMTYgMS4zMi40MmwuNjItLjk5YTIuMjUgMi4yNSAwIDAgMS0xLjY5LTIuMDYgNy41IDcuNSAwIDAgMC0xMSA2LjM3djQuMjZsLTEuNDEgMy4xNkEuOTUuOTUgMCAwIDAgMy45NSAxOGgxNi4xYS45NS45NSAwIDAgMCAuODctMS4zNEwxOS41IDEzLjV2LTNoLTEuNzVsLS4zOS0uMDNhMi4yNCAyLjI0IDAgMCAxLTEuOCAzbC0uMDYuMDItLjIuMDFoLTIuNTVhMi4yNSAyLjI1IDAgMCAxLTItMy4zbC4wMy0uMDQuMTEtLjE4LjM4LS41M2EyLjI0IDIuMjQgMCAwIDEgMS4xOC0zLjkzaC4wNWwuMi0uMDJaTTE0Ljk2IDE5YTMgMyAwIDAgMS01LjkyIDBoNS45MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0U25vb3plMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsZXJ0U25vb3plMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMy41Yy0zLjEgMC02IDIuNDMtNiA2LjI1djQuMTVMNC42OCAxN2gxNC42N0wxOCAxMy45di0yLjE1YS43NS43NSAwIDAgMSAxLjUgMHYxLjg0bDEuMzggMy4xNmMuMzYuODItLjI0IDEuNzUtMS4xNSAxLjc1SDE1YTMgMyAwIDAgMS02IDBINC4zYy0uOSAwLTEuNS0uOTEtMS4xNS0xLjc0TDQuNSAxMy42VjkuNzVhNy41MyA3LjUzIDAgMCAxIDEwLTcuMzIuNzUuNzUgMCAwIDEtLjUgMS40MiA1Ljk2IDUuOTYgMCAwIDAtMi0uMzVaTTEyIDIwYy44MyAwIDEuNS0uNjcgMS41LTEuNWgtM2MwIC44My42NyAxLjUgMS41IDEuNVptMy4yNS0xM2gtMi42YS43NS43NSAwIDAgMCAuMSAxLjVoMS4wNGwtMS42NSAyLjMxLS4wNi4xYy0uMjUuNDguMSAxLjA5LjY3IDEuMDloMi42YS43NS43NSAwIDAgMC0uMS0xLjVoLTEuMDRsMS42NS0yLjMxLjA2LS4xQS43NS43NSAwIDAgMCAxNS4yNSA3Wm02LTVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDIuMTNsLTIuNzYgNC4zNS0uMDUuMDlBLjc1Ljc1IDAgMCAwIDE3Ljc1IDloMy42YS43NS43NSAwIDAgMC0uMS0xLjVoLTIuMTNsMi43Ni00LjM1LjA1LS4wOUEuNzUuNzUgMCAwIDAgMjEuMjUgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0VXJnZW50MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRVcmdlbnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjA0IDEuM2EuNS41IDAgMCAxIC42Ni0uMjZBNy44IDcuOCAwIDAgMSAxNSA4LjQ4di4wM2EuNS41IDAgMCAxLTEtLjAxdi0uMDVjLjAyLS4zNC4xLTIuMTYtLjkzLTMuODZhNy4yMSA3LjIxIDAgMCAwLTIuNzctMi42My41LjUgMCAwIDEtLjI2LS42NlptLjA1IDIuNDFhLjUuNSAwIDAgMSAuNy0uMTFzLjI0LjE1LjUyLjRhNC41MSA0LjUxIDAgMCAxIDEuNDYgMy4xOXYuMDZhLjUuNSAwIDAgMS0xIDAgMy40OCAzLjQ4IDAgMCAwLTEuNTYtMi44NC41LjUgMCAwIDEtLjEyLS43Wm0tNy41NSA3YTQgNCAwIDAgMSA2LjkyLTRsLjgyIDEuNDJMMTIuMiA5LjVhLjUuNSAwIDAgMS0uMDQuODRsLTIuNTMgMS40Ni0yLjc0IDEuNTgtMi41MyAxLjQ2YS41LjUgMCAwIDEtLjc1LS4zOGwtLjI0LTIuMzQtLjgyLTEuNDJabTcuNzEgMS45LTMgMS43M2ExLjc1IDEuNzUgMCAwIDAgMy0xLjczWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRVcmdlbnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRVcmdlbnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMC43IDEuMDRhLjUuNSAwIDAgMC0uNC45MmwuMjguMTVhNy4yMSA3LjIxIDAgMCAxIDIuNDkgMi40OGMxLjAyIDEuNy45NSAzLjUyLjkzIDMuODZ2LjA1YS41LjUgMCAwIDAgMSAwdi0uMDJhNy44NyA3Ljg3IDAgMCAwLS4wNi0xLjQzIDcuOCA3LjggMCAwIDAtNC4yNC02Wm0uMSAyLjU2YS41LjUgMCAxIDAtLjU3LjgyIDMuNTMgMy41MyAwIDAgMSAxLjU0IDIuODMuNS41IDAgMCAwIDEgMHYtLjA2YTMuMzUgMy4zNSAwIDAgMC0uMDYtLjYxQTQuNiA0LjYgMCAwIDAgMTEuMzEgNGMtLjI4LS4yNi0uNTItLjQxLS41Mi0uNDFabS04LjI2IDcuMWE0IDQgMCAwIDEgNi45My00bC44MiAxLjQzIDEuOSAxLjM4YS41LjUgMCAwIDEtLjA0Ljg0bC0yLjUzIDEuNDYtMi43NCAxLjU4LTIuNTMgMS40NmEuNS41IDAgMCAxLS43NC0uMzhsLS4yNS0yLjM0LS44Mi0xLjQyWm0uODYtLjUuODggMS41MmEuNS41IDAgMCAxIC4wNi4ybC4xOCAxLjY4IDYuNDYtMy43My0xLjM3LTFhLjUuNSAwIDAgMS0uMTQtLjE1TDguNiA3LjJhMyAzIDAgMCAwLTUuMiAzWm0zLjg1IDQuMTRhMS43NSAxLjc1IDAgMCAwIDMtMS43NGwtMyAxLjc0WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRVcmdlbnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGVydFVyZ2VudDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi40NyAxMi4yNWE1LjE2IDUuMTYgMCAwIDEgOS40Mi00LjJsMS4yMiAyLjc1IDEuNjcgMS42MmMuMzguMzcuMjcgMS0uMjIgMS4yMmwtOS43MyA0LjMzYS43NS43NSAwIDAgMS0xLjA1LS42NUwzLjY4IDE1bC0xLjIxLTIuNzVabTYuMzYgNS4wOWExLjQ5IDEuNDkgMCAwIDAgMi42OC0xLjJsLTIuNjggMS4yWm0zLjI2LTEyLjYxYS41LjUgMCAwIDEgLjY5LS4xNCA2LjE3IDYuMTcgMCAwIDEgMi45MSA0LjkxLjUuNSAwIDEgMS0xIDBjMC0uMTMgMC0uMjYtLjAyLS4zOWE1LjE3IDUuMTcgMCAwIDAtMi40NS0zLjY5LjUuNSAwIDAgMS0uMTMtLjdabS40OS0yLjQ5YS41LjUgMCAwIDEgLjY4LS4xNmMyLjQ2IDEuNSA0LjU4IDMuOCA0Ljc0IDcuOWEuNS41IDAgMCAxLTEgLjA0Yy0uMTQtMy42OC0yLTUuNy00LjI2LTcuMDlhLjUuNSAwIDAgMS0uMTYtLjY5WlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRVcmdlbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRVcmdlbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMy4yNiAyLjA4YS41LjUgMCAxIDAtLjUyLjg1QzE1IDQuMzEgMTYuODYgNi4zNCAxNyAxMC4wMmEuNS41IDAgMCAwIDEtLjA0Yy0uMTYtNC4xLTIuMjgtNi40LTQuNzQtNy45Wk0xMi4xIDQuNzNhLjUuNSAwIDAgMSAuNjktLjE0IDYuMTcgNi4xNyAwIDAgMSAyLjkxIDQuOTEuNS41IDAgMCAxLTEgMGMwLS4xMyAwLS4yNi0uMDItLjM5YTUuMTcgNS4xNyAwIDAgMC0yLjQ1LTMuNjkuNS41IDAgMCAxLS4xMy0uN1ptLTcuMDEuN2E1LjE2IDUuMTYgMCAwIDAtMi42MSA2LjgyTDMuNjkgMTVsLjA5IDIuMzJjLjAyLjUzLjU3Ljg3IDEuMDUuNjVsOS43My00LjMzYy40OS0uMjEuNi0uODUuMjItMS4yMkwxMy4xIDEwLjggMTEuOSA4LjA1YTUuMTYgNS4xNiAwIDAgMC02LjgxLTIuNjFabS0xLjcgNi40MWE0LjE2IDQuMTYgMCAwIDEgNy42LTMuMzhsMS4zIDIuOTIgMS41NCAxLjUtOS4wNiA0LjAzLS4wOC0yLjE0LTEuMy0yLjkzWm03LjMgNi4wNGMtLjY4LjMtMS40Ni4wNS0xLjg1LS41NGwyLjY4LTEuMmMuMTkuNy0uMTYgMS40NC0uODMgMS43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsZXJ0VXJnZW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRVcmdlbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTEwLjQzIDE5LjkyIDMuNTYtMS41YTIgMiAwIDAgMS0zLjU2IDEuNVpNMTUuODYgMi4xYTExLjcyIDExLjcyIDAgMCAxIDQuNjggNC40QTExLjcyIDExLjcyIDAgMCAxIDIyIDEyLjcyYS43NS43NSAwIDAgMS0xLjUtLjA0Yy4wNS0yLjEtLjM3LTMuOTItMS4yNi01LjQ2YTEwLjIzIDEwLjIzIDAgMCAwLTQuMS0zLjgyLjc1Ljc1IDAgMSAxIC43Mi0xLjMyWk02LjcxIDYuNTJhNS44MiA1LjgyIDAgMCAxIDcuNiAyLjc0bC4xLjIxIDEuMjkgMi45IDEuNyAxLjQ2Yy4wOS4wOC4xNy4xOC4yNi4zM2wuMDYuMTFjLjI4LjYzIDAgMS4zNy0uNjQgMS42NUw2Ljc2IDIwLjQ5QTEuMjUgMS4yNSAwIDAgMSA1IDE5LjM1VjE3bC0xLjI0LTIuNzlhNS44MiA1LjgyIDAgMCAxIDIuOTUtNy43Wm04LjkxLS44M2MuOTcuNTMgMS43NSAxLjMgMi4zMiAyLjMuNTcuOTkuODUgMi4wNC44MiAzLjE0YS43NS43NSAwIDEgMS0xLjUtLjAzYy4wMi0uODItLjE4LTEuNi0uNjItMi4zN2E0LjQyIDQuNDIgMCAwIDAtMS43My0xLjcyLjc1Ljc1IDAgMCAxIC43MS0xLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgQWxlcnRVcmdlbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxlcnRVcmdlbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xMC40MyAxOS45MiAzLjU2LTEuNWEyIDIgMCAwIDEtMy41NiAxLjVaTTE1Ljg2IDIuMWExMS43MiAxMS43MiAwIDAgMSA0LjY4IDQuNEExMS43MiAxMS43MiAwIDAgMSAyMiAxMi43MmEuNzUuNzUgMCAwIDEtMS41LS4wNGMuMDUtMi4xLS4zNy0zLjkyLTEuMjYtNS40NmExMC4yMyAxMC4yMyAwIDAgMC00LjEtMy44Mi43NS43NSAwIDEgMSAuNzItMS4zMlpNNi43MSA2LjUyYTUuODIgNS44MiAwIDAgMSA3LjYgMi43NGwuMS4yMSAxLjI5IDIuOSAxLjcgMS40NmMuMDkuMDguMTcuMTguMjYuMzNsLjA2LjExYy4yOC42MyAwIDEuMzctLjY0IDEuNjVMNi43NiAyMC40OUExLjI1IDEuMjUgMCAwIDEgNSAxOS4zNVYxN2wtMS4yNC0yLjc5YTUuODIgNS44MiAwIDAgMSAyLjk1LTcuN1pNNS4xMyAxMy42IDYuNSAxNi43djIuMjdsOS42MS00LjI1LTEuNjUtMS40My0xLjQxLTMuMTktLjA5LS4xOGE0LjMyIDQuMzIgMCAwIDAtNy44MyAzLjdabTEwLjUtNy45Yy45Ni41MiAxLjc0IDEuMjkgMi4zMSAyLjI4LjU3IDEgLjg1IDIuMDUuODIgMy4xNWEuNzUuNzUgMCAxIDEtMS41LS4wM2MuMDItLjgyLS4xOC0xLjYtLjYyLTIuMzdhNC40MiA0LjQyIDAgMCAwLTEuNzMtMS43Mi43NS43NSAwIDAgMSAuNzEtMS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQm90dG9tMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Cb3R0b20xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNSAxNGEuNS41IDAgMCAxIDAtMWgxM2EuNS41IDAgMCAxIDAgMWgtMTNabS41LTMuNzVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMS41QzYuMjIgMTIgNyAxMS4yMiA3IDEwLjI1di02LjVDNyAyLjc4IDYuMjIgMiA1LjI1IDJoLTEuNUMyLjc4IDIgMiAyLjc4IDIgMy43NXY2LjVabTcgMGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00LjVDMTQgNC43OCAxMy4yMiA0IDEyLjI1IDRoLTEuNUM5Ljc4IDQgOSA0Ljc4IDkgNS43NXY0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkJvdHRvbTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkJvdHRvbTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEuNSAxNGEuNS41IDAgMCAxIDAtMWgxM2EuNS41IDAgMCAxIDAgMWgtMTNabS41LTMuNzVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMS41QzYuMjIgMTIgNyAxMS4yMiA3IDEwLjI1di02LjVDNyAyLjc4IDYuMjIgMiA1LjI1IDJoLTEuNUMyLjc4IDIgMiAyLjc4IDIgMy43NXY2LjVabTEuNzUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTYuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Ni41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTEuNVpNOSAxMC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00LjVDMTQgNC43OCAxMy4yMiA0IDEyLjI1IDRoLTEuNUM5Ljc4IDQgOSA0Ljc4IDkgNS43NXY0LjVabTEuNzUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTQuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWMuNDEgMCAuNzUuMzQuNzUuNzV2NC41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQm90dG9tMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Cb3R0b20yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNSAxN2EuNS41IDAgMCAxIDAtMWgxNWEuNS41IDAgMCAxIDAgMWgtMTVaTTQgMTNjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4Wm03IDBjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQm90dG9tMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQm90dG9tMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiAxNi41YzAgLjI4LjIyLjUuNS41aDE1YS41LjUgMCAwIDAgMC0xaC0xNWEuNS41IDAgMCAwLS41LjVabTktMy41YzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjVabTIgMWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxaC0xWm0tNyAxYTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINlptLTEtMmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjhaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkJvdHRvbTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQm90dG9tMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yLjc1IDIxYS43NS43NSAwIDAgMSAwLTEuNWgxOC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1Wk00IDE1Ljc1QzQgMTYuOTkgNSAxOCA2LjI1IDE4aDIuNUM5Ljk5IDE4IDExIDE3IDExIDE1Ljc1VjUuMjVDMTEgNC4wMSAxMCAzIDguNzUgM2gtMi41QzUuMDEgMyA0IDQgNCA1LjI1djEwLjVabTkgMGMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgyLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTdjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTIuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQm90dG9tMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQm90dG9tMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMi43NSAyMWEuNzUuNzUgMCAwIDEgMC0xLjVoMTguNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NVpNNCAxNS43NUM0IDE2Ljk5IDUgMTggNi4yNSAxOGgyLjVDOS45OSAxOCAxMSAxNyAxMSAxNS43NVY1LjI1QzExIDQuMDEgMTAgMyA4Ljc1IDNoLTIuNUM1LjAxIDMgNCA0IDQgNS4yNXYxMC41Wm0yLjI1Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1VjUuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djEwLjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtMi41Wm02Ljc1LS43NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgyLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTdjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTIuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2N1ptMi4yNS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtN2MwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzV2N2MwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkJvdHRvbTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQm90dG9tMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yLjc1IDI1YS43NS43NSAwIDAgMSAwLTEuNWgyMi41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1Wk01IDE5LjI1QTIuNzUgMi43NSAwIDAgMCA3Ljc1IDIyaDIuNUEyLjc1IDIuNzUgMCAwIDAgMTMgMTkuMjVWNS43NUEyLjc1IDIuNzUgMCAwIDAgMTAuMjUgM2gtMi41QTIuNzUgMi43NSAwIDAgMCA1IDUuNzV2MTMuNVptMTAgMEEyLjc1IDIuNzUgMCAwIDAgMTcuNzUgMjJoMi41QTIuNzUgMi43NSAwIDAgMCAyMyAxOS4yNXYtOGEyLjc1IDIuNzUgMCAwIDAtMi43NS0yLjc1aC0yLjVBMi43NSAyLjc1IDAgMCAwIDE1IDExLjI1djhaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkJvdHRvbTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkJvdHRvbTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIuNzUgMjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIyLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVaTTUgMTkuMjVBMi43NSAyLjc1IDAgMCAwIDcuNzUgMjJoMi41QTIuNzUgMi43NSAwIDAgMCAxMyAxOS4yNVY1Ljc1QTIuNzUgMi43NSAwIDAgMCAxMC4yNSAzaC0yLjVBMi43NSAyLjc1IDAgMCAwIDUgNS43NXYxMy41Wm0yLjc1IDEuMjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY1Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDIuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxMy41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMi41Wk0xNSAxOS4yNUEyLjc1IDIuNzUgMCAwIDAgMTcuNzUgMjJoMi41QTIuNzUgMi43NSAwIDAgMCAyMyAxOS4yNXYtOGEyLjc1IDIuNzUgMCAwIDAtMi43NS0yLjc1aC0yLjVBMi43NSAyLjc1IDAgMCAwIDE1IDExLjI1djhabTIuNzUgMS4yNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di04YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDIuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXY4YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25Cb3R0b20zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkJvdHRvbTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNCAyOWExIDEgMCAxIDEgMC0yaDI0YTEgMSAwIDEgMSAwIDJINFptMS03LjVBMy41IDMuNSAwIDAgMCA4LjUgMjVoM2EzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTE1QTMuNSAzLjUgMCAwIDAgMTEuNSAzaC0zQTMuNSAzLjUgMCAwIDAgNSA2LjV2MTVabTEyIDBhMy41IDMuNSAwIDAgMCAzLjUgMy41aDNhMy41IDMuNSAwIDAgMCAzLjUtMy41di05QTMuNSAzLjUgMCAwIDAgMjMuNSA5aC0zYTMuNSAzLjUgMCAwIDAtMy41IDMuNXY5WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25Cb3R0b20zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Cb3R0b20zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDI5YTEgMSAwIDEgMSAwLTJoMjRhMSAxIDAgMSAxIDAgMkg0Wm0xLTcuNUEzLjUgMy41IDAgMCAwIDguNSAyNWgzYTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtMTVBMy41IDMuNSAwIDAgMCAxMS41IDNoLTNBMy41IDMuNSAwIDAgMCA1IDYuNXYxNVpNOC41IDIzQTEuNSAxLjUgMCAwIDEgNyAyMS41di0xNUM3IDUuNjcgNy42NyA1IDguNSA1aDNjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zWm04LjUtMS41YTMuNSAzLjUgMCAwIDAgMy41IDMuNWgzYTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtOUEzLjUgMy41IDAgMCAwIDIzLjUgOWgtM2EzLjUgMy41IDAgMCAwLTMuNSAzLjV2OVptMy41IDEuNWExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTljMC0uODMuNjctMS41IDEuNS0xLjVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXY5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQm90dG9tNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Cb3R0b200OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTUuMjUgNDEuNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVoMzcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVINS4yNVpNMjYgMzIuMjVjMCAyLjM1IDEuOSA0LjI1IDQuMjUgNC4yNWg1LjVjMi4zNSAwIDQuMjUtMS45IDQuMjUtNC4yNXYtMTVDNDAgMTQuOSAzOC4xIDEzIDM1Ljc1IDEzaC01LjVBNC4yNSA0LjI1IDAgMCAwIDI2IDE3LjI1djE1Wk0xMi4yNSAzNi41aDUuNWMyLjM1IDAgNC4yNS0xLjkgNC4yNS00LjI1VjEwYzAtMi4zNS0xLjktNC4yNS00LjI1LTQuMjVoLTUuNUE0LjI1IDQuMjUgMCAwIDAgOCAxMHYyMi4yNWMwIDIuMzUgMS45IDQuMjUgNC4yNSA0LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25Cb3R0b200OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Cb3R0b200OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk01LjI1IDQxLjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDM3LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDUuMjVaTTI2IDMyLjI1YzAgMi4zNSAxLjkgNC4yNSA0LjI1IDQuMjVoNS41YzIuMzUgMCA0LjI1LTEuOSA0LjI1LTQuMjV2LTE1QzQwIDE0LjkgMzguMSAxMyAzNS43NSAxM2gtNS41QTQuMjUgNC4yNSAwIDAgMCAyNiAxNy4yNXYxNVpNMzAuMjUgMzRjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMTVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djE1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNS41Wm0tMTggMi41aDUuNWMyLjM1IDAgNC4yNS0xLjkgNC4yNS00LjI1VjEwYzAtMi4zNS0xLjktNC4yNS00LjI1LTQuMjVoLTUuNUE0LjI1IDQuMjUgMCAwIDAgOCAxMHYyMi4yNWMwIDIuMzUgMS45IDQuMjUgNC4yNSA0LjI1Wm01LjUtMi41aC01LjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVYxMGMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg1LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MjIuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNSA3LjVhLjUuNSAwIDAgMS0uNS41SDE0djEuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0xLjVDOS43OCAxMSA5IDEwLjIyIDkgOS4yNVY4SDd2Mi4yNUM3IDExLjIyIDYuMjIgMTIgNS4yNSAxMmgtMS41QzIuNzggMTIgMiAxMS4yMiAyIDEwLjI1VjhoLS41YS41LjUgMCAwIDEgMC0xSDJWNC43NUMyIDMuNzggMi43OCAzIDMuNzUgM2gxLjVDNi4yMiAzIDcgMy43OCA3IDQuNzVWN2gyVjUuNzVDOSA0Ljc4IDkuNzggNCAxMC43NSA0aDEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY3aC41Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlckhvcml6b250YWwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNSA3LjVhLjUuNSAwIDAgMS0uNS41SDE0djEuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0xLjVDOS43OCAxMSA5IDEwLjIyIDkgOS4yNVY4SDd2Mi4yNUM3IDExLjIyIDYuMjIgMTIgNS4yNSAxMmgtMS41QzIuNzggMTIgMiAxMS4yMiAyIDEwLjI1VjhoLS41YS41LjUgMCAwIDEgMC0xSDJWNC43NUMyIDMuNzggMi43OCAzIDMuNzUgM2gxLjVDNi4yMiAzIDcgMy43OCA3IDQuNzVWN2gyVjUuNzVDOSA0Ljc4IDkuNzggNCAxMC43NSA0aDEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY3aC41Yy4yOCAwIC41LjIyLjUuNVpNMyAxMC4yNWMwIC40MS4zNC43NS43NS43NWgxLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTUuNUEuNzUuNzUgMCAwIDAgNS4yNSA0aC0xLjVhLjc1Ljc1IDAgMCAwLS43NS43NXY1LjVabTctMWMwIC40MS4zNC43NS43NS43NWgxLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTMuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMS41YS43NS43NSAwIDAgMC0uNzUuNzV2My41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xOCA5LjVhLjUuNSAwIDAgMS0uNS41SDE2djJhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0ySDl2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNEgyLjVhLjUuNSAwIDAgMSAwLTFINFY1YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjRoMlY3YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjJoMS41Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlckhvcml6b250YWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOCA5LjVhLjUuNSAwIDAgMS0uNS41SDE2djJhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0ySDl2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNEgyLjVhLjUuNSAwIDAgMSAwLTFINFY1YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjRoMlY3YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjJoMS41Yy4yOCAwIC41LjIyLjUuNVpNNSAxNGExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjlabTctMmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFoLTFhMSAxIDAgMCAwLTEgMXY1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS4yNSAxMi43NWEuNzUuNzUgMCAwIDAgMC0xLjVIMjB2LTIuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtMi41Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNXYyLjVoLTJ2LTQuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtMi41QzUuMDEgNC41IDQgNS41IDQgNi43NXY0LjVIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVINHY0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMi41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di00LjVoMnYyLjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMi41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di0yLjVoMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlckhvcml6b250YWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMS4yNSAxMi43NWEuNzUuNzUgMCAwIDAgMC0xLjVIMjB2LTIuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtMi41Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNXYyLjVoLTJ2LTQuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtMi41QzUuMDEgNC41IDQgNS41IDQgNi43NXY0LjVIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVINHY0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMi41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di00LjVoMnYyLjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMi41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di0yLjVoMS4yNVptLTIuNzUtNHY2LjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1di02LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wm0tOS0ydjEwLjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yNiAxMy43NWMwIC40MS0uMzQuNzUtLjc1Ljc1SDIzVjE4YTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVoLTIuNUEyLjc1IDIuNzUgMCAwIDEgMTUgMTh2LTMuNWgtMnY2LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVoLTIuNUEyLjc1IDIuNzUgMCAwIDEgNSAyMC43NVYxNC41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41SDVWNy4yNUEyLjc1IDIuNzUgMCAwIDEgNy43NSA0LjVoMi41QTIuNzUgMi43NSAwIDAgMSAxMyA3LjI1VjEzaDJ2LTNhMi43NSAyLjc1IDAgMCAxIDIuNzUtMi43NWgyLjVBMi43NSAyLjc1IDAgMCAxIDIzIDEwdjNoMi4yNWMuNDEgMCAuNzUuMzQuNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlckhvcml6b250YWwyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjYgMTMuNzVjMCAuNDEtLjM0Ljc1LS43NS43NUgyM1YxOGEyLjc1IDIuNzUgMCAwIDEtMi43NSAyLjc1aC0yLjVBMi43NSAyLjc1IDAgMCAxIDE1IDE4di0zLjVoLTJ2Ni4yNWEyLjc1IDIuNzUgMCAwIDEtMi43NSAyLjc1aC0yLjVBMi43NSAyLjc1IDAgMCAxIDUgMjAuNzVWMTQuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNUg1VjcuMjVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNC41aDIuNUEyLjc1IDIuNzUgMCAwIDEgMTMgNy4yNVYxM2gydi0zYTIuNzUgMi43NSAwIDAgMSAyLjc1LTIuNzVoMi41QTIuNzUgMi43NSAwIDAgMSAyMyAxMHYzaDIuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wk0yMS41IDEwYzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMi41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXY4YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDIuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LThaTTEwLjI1IDZoLTIuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTMuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgyLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjcuMjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJIb3Jpem9udGFsMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0zMCAxNmExIDEgMCAwIDEtMSAxaC0ydjMuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTNhMy41IDMuNSAwIDAgMS0zLjUtMy41VjE3aC0ydjYuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTNBMy41IDMuNSAwIDAgMSA1IDIzLjVWMTdIM2ExIDEgMCAxIDEgMC0yaDJWOC41QTMuNSAzLjUgMCAwIDEgOC41IDVoM0EzLjUgMy41IDAgMCAxIDE1IDguNVYxNWgydi0zLjVBMy41IDMuNSAwIDAgMSAyMC41IDhoM2EzLjUgMy41IDAgMCAxIDMuNSAzLjVWMTVoMmExIDEgMCAwIDEgMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQ2VudGVySG9yaXpvbnRhbDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMwIDE2YTEgMSAwIDAgMS0xIDFoLTJ2My41YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtM2EzLjUgMy41IDAgMCAxLTMuNS0zLjVWMTdoLTJ2Ni41YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtM0EzLjUgMy41IDAgMCAxIDUgMjMuNVYxN0gzYTEgMSAwIDEgMSAwLTJoMlY4LjVBMy41IDMuNSAwIDAgMSA4LjUgNWgzQTMuNSAzLjUgMCAwIDEgMTUgOC41VjE1aDJ2LTMuNUEzLjUgMy41IDAgMCAxIDIwLjUgOGgzYTMuNSAzLjUgMCAwIDEgMy41IDMuNVYxNWgyYTEgMSAwIDAgMSAxIDFabS01LTQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNjLS44MyAwLTEuNS42Ny0xLjUgMS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTlaTTExLjUgN2gtM0M3LjY3IDcgNyA3LjY3IDcgOC41djE1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0xNWMwLS44My0uNjctMS41LTEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlckhvcml6b250YWw0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlckhvcml6b250YWw0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQ0IDI0LjI1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg0MHY2LjI1QzQwIDM0LjEgMzguMSAzNiAzNS43NSAzNmgtNS41QTQuMjUgNC4yNSAwIDAgMSAyNiAzMS43NVYyNS41aC00djEwLjI1QzIyIDM4LjEgMjAuMSA0MCAxNy43NSA0MGgtNS41QTQuMjUgNC4yNSAwIDAgMSA4IDM1Ljc1VjI1LjVINS4yNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVIOFYxMi4yNUM4IDkuOSA5LjkgOCAxMi4yNSA4aDUuNUMyMC4xIDggMjIgOS45IDIyIDEyLjI1VjIzaDR2LTYuNzVDMjYgMTMuOSAyNy45IDEyIDMwLjI1IDEyaDUuNUMzOC4xIDEyIDQwIDEzLjkgNDAgMTYuMjVWMjNoMi43NWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlckhvcml6b250YWw0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk00NCAyNC4yNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINDB2Ni4yNUM0MCAzNC4xIDM4LjEgMzYgMzUuNzUgMzZoLTUuNUE0LjI1IDQuMjUgMCAwIDEgMjYgMzEuNzVWMjUuNWgtNHYxMC4yNUMyMiAzOC4xIDIwLjEgNDAgMTcuNzUgNDBoLTUuNUE0LjI1IDQuMjUgMCAwIDEgOCAzNS43NVYyNS41SDUuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41SDhWMTIuMjVDOCA5LjkgOS45IDggMTIuMjUgOGg1LjVDMjAuMSA4IDIyIDkuOSAyMiAxMi4yNVYyM2g0di02Ljc1QzI2IDEzLjkgMjcuOSAxMiAzMC4yNSAxMmg1LjVDMzguMSAxMiA0MCAxMy45IDQwIDE2LjI1VjIzaDIuNzVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVabS02LjUtOGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTUuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MTUuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg1LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0xNS41Wk0xNy43NSAxMC41aC01LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djIzLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNS41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMjMuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC41IDE1YS41LjUgMCAwIDEtLjUtLjVWMTRINi43NUM1Ljc4IDE0IDUgMTMuMjIgNSAxMi4yNXYtMS41QzUgOS43OCA1Ljc4IDkgNi43NSA5SDhWN0g1Ljc1QzQuNzggNyA0IDYuMjIgNCA1LjI1di0xLjVDNCAyLjc4IDQuNzggMiA1Ljc1IDJIOHYtLjVhLjUuNSAwIDAgMSAxIDBWMmgyLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEuNUMxMyA2LjIyIDEyLjIyIDcgMTEuMjUgN0g5djJoMS4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDl2LjVhLjUuNSAwIDAgMS0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJWZXJ0aWNhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlclZlcnRpY2FsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC41IDE1YS41LjUgMCAwIDEtLjUtLjVWMTRINi43NUM1Ljc4IDE0IDUgMTMuMjIgNSAxMi4yNXYtMS41QzUgOS43OCA1Ljc4IDkgNi43NSA5SDhWN0g1Ljc1QzQuNzggNyA0IDYuMjIgNCA1LjI1di0xLjVDNCAyLjc4IDQuNzggMiA1Ljc1IDJIOHYtLjVhLjUuNSAwIDAgMSAxIDBWMmgyLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEuNUMxMyA2LjIyIDEyLjIyIDcgMTEuMjUgN0g5djJoMS4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDl2LjVhLjUuNSAwIDAgMS0uNS41Wk01Ljc1IDNhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoNS41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTUuNVptMSA3YS43NS43NSAwIDAgMC0uNzUuNzV2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNSAxOGEuNS41IDAgMCAxLS41LS41VjE2SDhhMiAyIDAgMCAxLTItMnYtMWMwLTEuMS45LTIgMi0yaDJWOUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDRWMi41YS41LjUgMCAwIDEgMSAwVjRoNGEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMmgtNHYyaDJhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJoLTJ2MS41YS41LjUgMCAwIDEtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVyVmVydGljYWwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjUgMThhLjUuNSAwIDAgMS0uNS0uNVYxNkg4YTIgMiAwIDAgMS0yLTJ2LTFjMC0xLjEuOS0yIDItMmgyVjlINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0VjIuNWEuNS41IDAgMCAxIDEgMFY0aDRhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJoLTR2MmgyYTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAyaC0ydjEuNWEuNS41IDAgMCAxLS41LjVaTTYgNWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg5YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDZabTIgN2ExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAwLTEtMUg4WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJWZXJ0aWNhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQ2VudGVyVmVydGljYWwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTExLjI1IDIxLjI1YS43NS43NSAwIDAgMCAxLjUgMFYyMGgyLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTIuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtMi41di0yaDQuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMi41YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC00LjVWMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWNGgtNC41QzUuNTEgNCA0LjUgNSA0LjUgNi4yNXYyLjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoNC41djJoLTIuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2Mi41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDIuNXYxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXJWZXJ0aWNhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkNlbnRlclZlcnRpY2FsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTEuMjUgMjEuMjVWMjBoLTIuNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTIuNWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNWgyLjV2LTJoLTQuNUM1LjUxIDExIDQuNSAxMCA0LjUgOC43NXYtMi41QzQuNSA1LjAxIDUuNSA0IDYuNzUgNGg0LjVWMi43NWEuNzUuNzUgMCAwIDEgMS41IDBWNGg0LjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Mi41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC00LjV2MmgyLjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Mi41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0yLjV2MS4yNWEuNzUuNzUgMCAwIDEtMS41IDBabTQtMi43NWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMi41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYyLjVjMCAuNDEuMzQuNzUuNzUuNzVoNi41Wm0yLTljLjQxIDAgLjc1LS4zNC43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDAtLjc1LS43NUg2Ljc1YS43NS43NSAwIDAgMC0uNzUuNzV2Mi41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEwLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuMjUgMjZhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMjNIMTBhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NXYtMi41QTIuNzUgMi43NSAwIDAgMSAxMCAxNWgzLjV2LTJINy4yNWEyLjc1IDIuNzUgMCAwIDEtMi43NS0yLjc1di0yLjVBMi43NSAyLjc1IDAgMCAxIDcuMjUgNWg2LjI1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwVjVoNS43NWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djIuNUEyLjc1IDIuNzUgMCAwIDEgMjAuNzUgMTNIMTV2MmgzYTIuNzUgMi43NSAwIDAgMSAyLjc1IDIuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAxOCAyM2gtM3YyLjI1YzAgLjQxLS4zNC43NS0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQ2VudGVyVmVydGljYWwyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNC4yNSAyNmEuNzUuNzUgMCAwIDEtLjc1LS43NVYyM0gxMGEyLjc1IDIuNzUgMCAwIDEtMi43NS0yLjc1di0yLjVBMi43NSAyLjc1IDAgMCAxIDEwIDE1aDMuNXYtMkg3LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzV2LTIuNUEyLjc1IDIuNzUgMCAwIDEgNy4yNSA1aDYuMjVWMi43NWEuNzUuNzUgMCAwIDEgMS41IDBWNWg1Ljc1YTIuNzUgMi43NSAwIDAgMSAyLjc1IDIuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAyMC43NSAxM0gxNXYyaDNhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NXYyLjVBMi43NSAyLjc1IDAgMCAxIDE4IDIzaC0zdjIuMjVjMCAuNDEtLjM0Ljc1LS43NS43NVpNMTggMjEuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTIuNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLThjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg4Wm00LTExLjI1di0yLjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDcuMjVDNi41NiA2LjUgNiA3LjA2IDYgNy43NXYyLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTMuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTYgMzBhMSAxIDAgMCAxLTEtMXYtMmgtMy41QTMuNSAzLjUgMCAwIDEgOCAyMy41di0zYTMuNSAzLjUgMCAwIDEgMy41LTMuNUgxNXYtMkg4LjVBMy41IDMuNSAwIDAgMSA1IDExLjV2LTNBMy41IDMuNSAwIDAgMSA4LjUgNUgxNVYzYTEgMSAwIDEgMSAyIDB2Mmg2LjVBMy41IDMuNSAwIDAgMSAyNyA4LjV2M2EzLjUgMy41IDAgMCAxLTMuNSAzLjVIMTd2MmgzLjVhMy41IDMuNSAwIDAgMSAzLjUgMy41djNhMy41IDMuNSAwIDAgMS0zLjUgMy41SDE3djJhMSAxIDAgMCAxLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVyVmVydGljYWwzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE2IDMwYTEgMSAwIDAgMS0xLTF2LTJoLTMuNUEzLjUgMy41IDAgMCAxIDggMjMuNXYtM2EzLjUgMy41IDAgMCAxIDMuNS0zLjVIMTV2LTJIOC41QTMuNSAzLjUgMCAwIDEgNSAxMS41di0zQTMuNSAzLjUgMCAwIDEgOC41IDVIMTVWM2ExIDEgMCAxIDEgMiAwdjJoNi41QTMuNSAzLjUgMCAwIDEgMjcgOC41djNhMy41IDMuNSAwIDAgMS0zLjUgMy41SDE3djJoMy41YTMuNSAzLjUgMCAwIDEgMy41IDMuNXYzYTMuNSAzLjUgMCAwIDEtMy41IDMuNUgxN3YyYTEgMSAwIDAgMS0xIDFabTQuNS01Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTljLS44MyAwLTEuNS42Ny0xLjUgMS41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoOVpNMjUgMTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTE1QzcuNjcgNyA3IDcuNjcgNyA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25DZW50ZXJWZXJ0aWNhbDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjMuNzUgNDRjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY0MGgtNi4yNUE0LjI1IDQuMjUgMCAwIDEgMTIgMzUuNzV2LTUuNUMxMiAyNy45IDEzLjkgMjYgMTYuMjUgMjZoNi4yNXYtNEgxMi4yNUE0LjI1IDQuMjUgMCAwIDEgOCAxNy43NXYtNS41QzggOS45IDkuOSA4IDEyLjI1IDhIMjIuNVY1LjI1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMFY4aDEwLjc1QzM4LjEgOCA0MCA5LjkgNDAgMTIuMjV2NS41QzQwIDIwLjEgMzguMSAyMiAzNS43NSAyMkgyNXY0aDYuNzVDMzQuMSAyNiAzNiAyNy45IDM2IDMwLjI1djUuNUMzNiAzOC4xIDM0LjEgNDAgMzEuNzUgNDBIMjV2Mi43NWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlclZlcnRpY2FsNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduQ2VudGVyVmVydGljYWw0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yMy43NSA0NGMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjQwaC02LjI1QTQuMjUgNC4yNSAwIDAgMSAxMiAzNS43NXYtNS41QzEyIDI3LjkgMTMuOSAyNiAxNi4yNSAyNmg2LjI1di00SDEyLjI1QTQuMjUgNC4yNSAwIDAgMSA4IDE3Ljc1di01LjVDOCA5LjkgOS45IDggMTIuMjUgOEgyMi41VjUuMjVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwVjhoMTAuNzVDMzguMSA4IDQwIDkuOSA0MCAxMi4yNXY1LjVDNDAgMjAuMSAzOC4xIDIyIDM1Ljc1IDIySDI1djRoNi43NUMzNC4xIDI2IDM2IDI3LjkgMzYgMzAuMjV2NS41QzM2IDM4LjEgMzQuMSA0MCAzMS43NSA0MEgyNXYyLjc1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNVptOC02LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di01LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xNS41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY1LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTUuNVptNS43NS0xOS43NXYtNS41YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMjMuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2NS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDIzLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25EaXN0cmlidXRlQm90dG9tMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25EaXN0cmlidXRlQm90dG9tMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNC41IDE1YS41LjUgMCAwIDAgMC0xaC0xM2EuNS41IDAgMCAwIDAgMWgxM1ptMC03YS41LjUgMCAwIDAgMC0xaC0xM2EuNS41IDAgMCAwIDAgMWgxM1pNMyAzLjVDMyAyLjY3IDMuNjcgMiA0LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyA0LjV2LTFaTTYuNSA5QzUuNjcgOSA1IDkuNjcgNSAxMC41djFjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25EaXN0cmlidXRlQm90dG9tMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduRGlzdHJpYnV0ZUJvdHRvbTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0LjUgMTVhLjUuNSAwIDAgMCAwLTFoLTEzYS41LjUgMCAwIDAgMCAxaDEzWm0wLTdhLjUuNSAwIDAgMCAwLTFoLTEzYS41LjUgMCAwIDAgMCAxaDEzWk0zIDMuNUMzIDIuNjcgMy42NyAyIDQuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDQuNXYtMVpNNC41IDNhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTdabTIgNkM1LjY3IDkgNSA5LjY3IDUgMTAuNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM1pNNiAxMC41YzAtLjI4LjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduRGlzdHJpYnV0ZUxlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkRpc3RyaWJ1dGVMZWZ0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDE0LjVhLjUuNSAwIDAgMCAxIDB2LTEzYS41LjUgMCAwIDAtMSAwdjEzWm03IDBhLjUuNSAwIDAgMCAxIDB2LTEzYS41LjUgMCAwIDAtMSAwdjEzWk00LjUgMTNBMS41IDEuNSAwIDAgMSAzIDExLjV2LTdDMyAzLjY3IDMuNjcgMyA0LjUgM2gxQzYuMzMgMyA3IDMuNjcgNyA0LjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTFaTTEwIDkuNWMwIC44My42NyAxLjUgMS41IDEuNWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTFjLS44MyAwLTEuNS42Ny0xLjUgMS41djNaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkRpc3RyaWJ1dGVMZWZ0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduRGlzdHJpYnV0ZUxlZnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDE0LjVhLjUuNSAwIDAgMCAxIDB2LTEzYS41LjUgMCAwIDAtMSAwdjEzWm03IDBhLjUuNSAwIDAgMCAxIDB2LTEzYS41LjUgMCAwIDAtMSAwdjEzWk00LjUgMTNBMS41IDEuNSAwIDAgMSAzIDExLjV2LTdDMyAzLjY3IDMuNjcgMyA0LjUgM2gxQzYuMzMgMyA3IDMuNjcgNyA0LjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTFaTTQgMTEuNWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2N1ptNi0yYzAgLjgzLjY3IDEuNSAxLjUgMS41aDFjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M1ptMS41LjVhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25EaXN0cmlidXRlUmlnaHQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkRpc3RyaWJ1dGVSaWdodDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTUgMS41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1ptLTcgMGEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNaTTMuNSAxM0ExLjUgMS41IDAgMCAxIDIgMTEuNXYtN0MyIDMuNjcgMi42NyAzIDMuNSAzaDFDNS4zMyAzIDYgMy42NyA2IDQuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMVpNOSA5LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xQzkuNjcgNSA5IDUuNjcgOSA2LjV2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduRGlzdHJpYnV0ZVJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduRGlzdHJpYnV0ZVJpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTUgMS41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1ptLTcgMGEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNaTTMuNSAxM0ExLjUgMS41IDAgMCAxIDIgMTEuNXYtN0MyIDMuNjcgMi42NyAzIDMuNSAzaDFDNS4zMyAzIDYgMy42NyA2IDQuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMVpNMyAxMS41YzAgLjI4LjIyLjUuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtN2EuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAtLjUuNXY3Wm02LTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xQzkuNjcgNSA5IDUuNjcgOSA2LjV2M1ptMS41LjVhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25EaXN0cmlidXRlVG9wMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25EaXN0cmlidXRlVG9wMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xLjUgMWEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTAgN2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTggNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zYy0uODMgMC0xLjUuNjctMS41IDEuNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNabTItN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03QzMuNjcgMyAzIDMuNjcgMyA0LjV2MUMzIDYuMzMgMy42NyA3IDQuNSA3aDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkRpc3RyaWJ1dGVUb3AxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25EaXN0cmlidXRlVG9wMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMS41IDFhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm0wIDdhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm04IDZjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM2MtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWMwIC44My42NyAxLjUgMS41IDEuNWgzWm0uNS0xLjVhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYxWk0xMS41IDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN0MzLjY3IDMgMyAzLjY3IDMgNC41djFDMyA2LjMzIDMuNjcgNyA0LjUgN2g3Wm0uNS0xLjVhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXYxWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25FbmRIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25FbmRIb3Jpem9udGFsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiAxNy41YS41LjUgMCAwIDAgMSAwdi0xNWEuNS41IDAgMCAwLTEgMHYxNVpcIiwgXCJNMTAgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25FbmRIb3Jpem9udGFsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduRW5kSG9yaXpvbnRhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE2LjUgMThhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41WlwiLCBcIk0xMCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTJaTTkgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVY2WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25FbmRWZXJ0aWNhbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduRW5kVmVydGljYWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgMTBjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMlpcIiwgXCJNMiAxNi41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnbkVuZFZlcnRpY2FsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduRW5kVmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDhhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJINlptLTEgMmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi0yWlwiLCBcIk0yIDE2LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduTGVmdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduTGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiAxLjVhLjUuNSAwIDAgMSAxIDB2MTNhLjUuNSAwIDAgMS0xIDB2LTEzWm0zLjc1LjVDNC43OCAyIDQgMi43OCA0IDMuNzV2MS41QzQgNi4yMiA0Ljc4IDcgNS43NSA3aDYuNUMxMy4yMiA3IDE0IDYuMjIgMTQgNS4yNXYtMS41QzE0IDIuNzggMTMuMjIgMiAxMi4yNSAyaC02LjVabTAgN0M0Ljc4IDkgNCA5Ljc4IDQgMTAuNzV2MS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDQuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTEuNUMxMiA5Ljc4IDExLjIyIDkgMTAuMjUgOWgtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduTGVmdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgMS41YS41LjUgMCAwIDEgMSAwdjEzYS41LjUgMCAwIDEtMSAwdi0xM1ptMy43NS41QzQuNzggMiA0IDIuNzggNCAzLjc1djEuNUM0IDYuMjIgNC43OCA3IDUuNzUgN2g2LjVDMTMuMjIgNyAxNCA2LjIyIDE0IDUuMjV2LTEuNUMxNCAyLjc4IDEzLjIyIDIgMTIuMjUgMmgtNi41Wk01IDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC02LjVBLjc1Ljc1IDAgMCAxIDUgNS4yNXYtMS41Wk01Ljc1IDlDNC43OCA5IDQgOS43OCA0IDEwLjc1djEuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg0LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0xLjVDMTIgOS43OCAxMS4yMiA5IDEwLjI1IDloLTQuNVpNNSAxMC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWMuNDEgMCAuNzUuMzQuNzUuNzV2MS41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25MZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjUgMmEuNS41IDAgMCAwLS41LjV2MTVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtLjUtLjVaTTcgMTFhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJIN1pNNSA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduTGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkxlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgMmEuNS41IDAgMCAwLS41LjV2MTVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtLjUtLjVaTTcgMTFhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJIN1ptLTEgMmExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xdi0xWk01IDZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2Wm0yLTFhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg3WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25MZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE4LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVaTTguMjUgNEM3LjAxIDQgNiA1IDYgNi4yNXYyLjVDNiA5Ljk5IDcgMTEgOC4yNSAxMWgxMC41QzE5Ljk5IDExIDIxIDEwIDIxIDguNzV2LTIuNUMyMSA1LjAxIDIwIDQgMTguNzUgNEg4LjI1Wm0wIDlDNy4wMSAxMyA2IDE0IDYgMTUuMjV2Mi41QzYgMTguOTkgNyAyMCA4LjI1IDIwaDdjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTIuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduTGVmdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkxlZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE4LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVaTTguMjUgNEM3LjAxIDQgNiA1IDYgNi4yNXYyLjVDNiA5Ljk5IDcgMTEgOC4yNSAxMWgxMC41QzE5Ljk5IDExIDIxIDEwIDIxIDguNzV2LTIuNUMyMSA1LjAxIDIwIDQgMTguNzUgNEg4LjI1Wk03LjUgNi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEwLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDguMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNVpNOC4yNSAxM0M3LjAxIDEzIDYgMTQgNiAxNS4yNXYyLjVDNiAxOC45OSA3IDIwIDguMjUgMjBoN2MxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMi41YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC03Wm0tLjc1IDIuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3Yy40MSAwIC43NS4zNC43NS43NXYyLjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtN2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25MZWZ0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVaTTguNzUgNUEyLjc1IDIuNzUgMCAwIDAgNiA3Ljc1djIuNUEyLjc1IDIuNzUgMCAwIDAgOC43NSAxM2gxMy41QTIuNzUgMi43NSAwIDAgMCAyNSAxMC4yNXYtMi41QTIuNzUgMi43NSAwIDAgMCAyMi4yNSA1SDguNzVabTAgMTBBMi43NSAyLjc1IDAgMCAwIDYgMTcuNzV2Mi41QTIuNzUgMi43NSAwIDAgMCA4Ljc1IDIzaDhhMi43NSAyLjc1IDAgMCAwIDIuNzUtMi43NXYtMi41QTIuNzUgMi43NSAwIDAgMCAxNi43NSAxNWgtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduTGVmdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnbkxlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVaTTguNzUgNUEyLjc1IDIuNzUgMCAwIDAgNiA3Ljc1djIuNUEyLjc1IDIuNzUgMCAwIDAgOC43NSAxM2gxMy41QTIuNzUgMi43NSAwIDAgMCAyNSAxMC4yNXYtMi41QTIuNzUgMi43NSAwIDAgMCAyMi4yNSA1SDguNzVaTTcuNSA3Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEzLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2Mi41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg4Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTIuNVpNOC43NSAxNUEyLjc1IDIuNzUgMCAwIDAgNiAxNy43NXYyLjVBMi43NSAyLjc1IDAgMCAwIDguNzUgMjNoOGEyLjc1IDIuNzUgMCAwIDAgMi43NS0yLjc1di0yLjVBMi43NSAyLjc1IDAgMCAwIDE2Ljc1IDE1aC04Wk03LjUgMTcuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoOGMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYyLjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1aC04Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduTGVmdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduTGVmdDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMyA0YTEgMSAwIDAgMSAyIDB2MjRhMSAxIDAgMSAxLTIgMFY0Wm03LjUgMUEzLjUgMy41IDAgMCAwIDcgOC41djNhMy41IDMuNSAwIDAgMCAzLjUgMy41aDE1YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtM0EzLjUgMy41IDAgMCAwIDI1LjUgNWgtMTVabTAgMTJBMy41IDMuNSAwIDAgMCA3IDIwLjV2M2EzLjUgMy41IDAgMCAwIDMuNSAzLjVoOWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTNhMy41IDMuNSAwIDAgMC0zLjUtMy41aC05WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduTGVmdDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMgNGExIDEgMCAwIDEgMiAwdjI0YTEgMSAwIDEgMS0yIDBWNFptNy41IDFBMy41IDMuNSAwIDAgMCA3IDguNXYzYTMuNSAzLjUgMCAwIDAgMy41IDMuNWgxNWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTNBMy41IDMuNSAwIDAgMCAyNS41IDVoLTE1Wk05IDguNWMwLS44My42Ny0xLjUgMS41LTEuNWgxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTVBMS41IDEuNSAwIDAgMSA5IDExLjV2LTNabTEuNSA4LjVBMy41IDMuNSAwIDAgMCA3IDIwLjV2M2EzLjUgMy41IDAgMCAwIDMuNSAzLjVoOWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTNhMy41IDMuNSAwIDAgMC0zLjUtMy41aC05Wk05IDIwLjVjMC0uODMuNjctMS41IDEuNS0xLjVoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDkgMjMuNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduTGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduTGVmdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNi41IDUuMjVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjM3LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjUuMjVaTTE1Ljc1IDI2YTQuMjUgNC4yNSAwIDAgMC00LjI1IDQuMjV2NS41YzAgMi4zNSAxLjkgNC4yNSA0LjI1IDQuMjVoMTVDMzMuMSA0MCAzNSAzOC4xIDM1IDM1Ljc1di01LjVDMzUgMjcuOSAzMy4xIDI2IDMwLjc1IDI2aC0xNVpNMTEuNSAxMi4yNXY1LjVjMCAyLjM1IDEuOSA0LjI1IDQuMjUgNC4yNUgzOGMyLjM1IDAgNC4yNS0xLjkgNC4yNS00LjI1di01LjVDNDIuMjUgOS45IDQwLjM1IDggMzggOEgxNS43NWE0LjI1IDQuMjUgMCAwIDAtNC4yNSA0LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduTGVmdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYuNSA1LjI1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYzNy41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMFY1LjI1Wk0xNS43NSAyNmE0LjI1IDQuMjUgMCAwIDAtNC4yNSA0LjI1djUuNWMwIDIuMzUgMS45IDQuMjUgNC4yNSA0LjI1aDE1QzMzLjEgNDAgMzUgMzguMSAzNSAzNS43NXYtNS41QzM1IDI3LjkgMzMuMSAyNiAzMC43NSAyNmgtMTVaTTE0IDMwLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDE1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djUuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTE1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTUuNVptLTIuNS0xOHY1LjVjMCAyLjM1IDEuOSA0LjI1IDQuMjUgNC4yNUgzOGMyLjM1IDAgNC4yNS0xLjkgNC4yNS00LjI1di01LjVDNDIuMjUgOS45IDQwLjM1IDggMzggOEgxNS43NWE0LjI1IDQuMjUgMCAwIDAtNC4yNSA0LjI1Wm0yLjUgNS41di01LjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVIMzhjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxNS43NWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25SaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE0IDEuNWEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNabS0zLjc1LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41QzEyIDYuMjIgMTEuMjIgNyAxMC4yNSA3aC02LjVDMi43OCA3IDIgNi4yMiAyIDUuMjV2LTEuNUMyIDIuNzggMi43OCAyIDMuNzUgMmg2LjVabTAgN2MuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDNC43OCAxNCA0IDEzLjIyIDQgMTIuMjV2LTEuNUM0IDkuNzggNC43OCA5IDUuNzUgOWg0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNCAxLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWm0tMy43NS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEuNUMxMiA2LjIyIDExLjIyIDcgMTAuMjUgN2gtNi41QzIuNzggNyAyIDYuMjIgMiA1LjI1di0xLjVDMiAyLjc4IDIuNzggMiAzLjc1IDJoNi41Wk0xMSAzLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoNi41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xLjVaTTEwLjI1IDljLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNC41QzQuNzggMTQgNCAxMy4yMiA0IDEyLjI1di0xLjVDNCA5Ljc4IDQuNzggOSA1Ljc1IDloNC41Wm0uNzUgMS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMC0uNzUuNzV2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDQuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25SaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2LjUgMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVaTTEzIDExYTIgMiAwIDAgMSAyIDJ2MWEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMnYtMWMwLTEuMS45LTIgMi0yaDVabTItNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNi41IDJjLjI4IDAgLjUuMjIuNS41djE1YS41LjUgMCAwIDEtMSAwdi0xNWMwLS4yOC4yMi0uNS41LS41Wk0xMyAxMWEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMkg4YTIgMiAwIDAgMS0yLTJ2LTFjMC0xLjEuOS0yIDItMmg1Wm0xIDJhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMVptMS03YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNlptLTItMWExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25SaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEgMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTguNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NVpNMTUuNzUgNEMxNi45OSA0IDE4IDUgMTggNi4yNXYyLjVDMTggOS45OSAxNyAxMSAxNS43NSAxMUg1LjI1QzQuMDEgMTEgMyAxMCAzIDguNzV2LTIuNUMzIDUuMDEgNCA0IDUuMjUgNGgxMC41Wm0wIDljMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Mi41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC03Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtMi41YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMSAyLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxOC41YS43NS43NSAwIDAgMCAxLjUgMFYyLjc1Wk0xNS43NSA0QzE2Ljk5IDQgMTggNSAxOCA2LjI1djIuNUMxOCA5Ljk5IDE3IDExIDE1Ljc1IDExSDUuMjVDNC4wMSAxMSAzIDEwIDMgOC43NXYtMi41QzMgNS4wMSA0IDQgNS4yNSA0aDEwLjVabS43NSAyLjI1YS43NS43NSAwIDAgMC0uNzUtLjc1SDUuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYyLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTAuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMi41Wk0xNS43NSAxM2MxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYyLjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTdjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di0yLjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoN1ptLjc1IDIuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTdhLjc1Ljc1IDAgMCAwLS43NS43NXYyLjVjMCAuNDEuMzQuNzUuNzUuNzVoN2MuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25SaWdodDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTI1IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVaTTE5LjI1IDVBMi43NSAyLjc1IDAgMCAxIDIyIDcuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAxOS4yNSAxM0g1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDEwLjI1di0yLjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgNWgxMy41Wm0wIDEwQTIuNzUgMi43NSAwIDAgMSAyMiAxNy43NXYyLjVBMi43NSAyLjc1IDAgMCAxIDE5LjI1IDIzaC04YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzV2LTIuNUEyLjc1IDIuNzUgMCAwIDEgMTEuMjUgMTVoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduUmlnaHQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25SaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTI1IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVaTTE5LjI1IDVBMi43NSAyLjc1IDAgMCAxIDIyIDcuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAxOS4yNSAxM0g1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDEwLjI1di0yLjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgNWgxMy41Wm0xLjI1IDIuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDUuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMy41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMi41Wk0xOS4yNSAxNUEyLjc1IDIuNzUgMCAwIDEgMjIgMTcuNzV2Mi41QTIuNzUgMi43NSAwIDAgMSAxOS4yNSAyM2gtOGEyLjc1IDIuNzUgMCAwIDEtMi43NS0yLjc1di0yLjVBMi43NSAyLjc1IDAgMCAxIDExLjI1IDE1aDhabTEuMjUgMi43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLThjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg4Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25SaWdodDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI5IDRhMSAxIDAgMSAwLTIgMHYyNGExIDEgMCAxIDAgMiAwVjRabS03LjUgMUEzLjUgMy41IDAgMCAxIDI1IDguNXYzYTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtMTVBMy41IDMuNSAwIDAgMSAzIDExLjV2LTNBMy41IDMuNSAwIDAgMSA2LjUgNWgxNVptMCAxMmEzLjUgMy41IDAgMCAxIDMuNSAzLjV2M2EzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTlBMy41IDMuNSAwIDAgMSA5IDIzLjV2LTNhMy41IDMuNSAwIDAgMSAzLjUtMy41aDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduUmlnaHQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yOSA0YTEgMSAwIDEgMC0yIDB2MjRhMSAxIDAgMSAwIDIgMFY0Wm0tNy41IDFBMy41IDMuNSAwIDAgMSAyNSA4LjV2M2EzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTE1QTMuNSAzLjUgMCAwIDEgMyAxMS41di0zQTMuNSAzLjUgMCAwIDEgNi41IDVoMTVaTTIzIDguNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTE1QzUuNjcgNyA1IDcuNjcgNSA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNaTTIxLjUgMTdhMy41IDMuNSAwIDAgMSAzLjUgMy41djNhMy41IDMuNSAwIDAgMS0zLjUgMy41aC05QTMuNSAzLjUgMCAwIDEgOSAyMy41di0zYTMuNSAzLjUgMCAwIDEgMy41LTMuNWg5Wm0xLjUgMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduUmlnaHQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblJpZ2h0NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00MS41IDUuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjM3LjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwVjUuMjVaTTMyLjI1IDI2YzIuMzUgMCA0LjI1IDEuOSA0LjI1IDQuMjV2NS41YzAgMi4zNS0xLjkgNC4yNS00LjI1IDQuMjVoLTE1QTQuMjUgNC4yNSAwIDAgMSAxMyAzNS43NXYtNS41QzEzIDI3LjkgMTQuOSAyNiAxNy4yNSAyNmgxNVptNC4yNS0xMy43NXY1LjVjMCAyLjM1LTEuOSA0LjI1LTQuMjUgNC4yNUgxMGE0LjI1IDQuMjUgMCAwIDEtNC4yNS00LjI1di01LjVDNS43NSA5LjkgNy42NSA4IDEwIDhoMjIuMjVjMi4zNSAwIDQuMjUgMS45IDQuMjUgNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduUmlnaHQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25SaWdodDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTQxLjUgNS4yNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2MzcuNWExLjI1IDEuMjUgMCAxIDAgMi41IDBWNS4yNVpNMzIuMjUgMjZjMi4zNSAwIDQuMjUgMS45IDQuMjUgNC4yNXY1LjVjMCAyLjM1LTEuOSA0LjI1LTQuMjUgNC4yNWgtMTVBNC4yNSA0LjI1IDAgMCAxIDEzIDM1Ljc1di01LjVDMTMgMjcuOSAxNC45IDI2IDE3LjI1IDI2aDE1Wk0zNCAzMC4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTE1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY1LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di01LjVabTIuNS0xOHY1LjVjMCAyLjM1LTEuOSA0LjI1LTQuMjUgNC4yNUgxMGE0LjI1IDQuMjUgMCAwIDEtNC4yNS00LjI1di01LjVDNS43NSA5LjkgNy42NSA4IDEwIDhoMjIuMjVjMi4zNSAwIDQuMjUgMS45IDQuMjUgNC4yNVptLTIuNSA1LjV2LTUuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIMTBjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djUuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyMi4yNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlQXJvdW5kSG9yaXpvbnRhbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRIb3Jpem9udGFsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDRhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2Wm0wIDdhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VBcm91bmRIb3Jpem9udGFsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRIb3Jpem9udGFsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiA0YTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINlpNNSA2YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNlptMSA1YTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDZabS0xIDJhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VBcm91bmRWZXJ0aWNhbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy41IDE2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOUM5IDQuNjcgOC4zMyA0IDcuNSA0aC0yQzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWgyWm03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OWMwIC44My42NyAxLjUgMS41IDEuNWgyWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUFyb3VuZFZlcnRpY2FsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VBcm91bmRWZXJ0aWNhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgNGgxYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJaTTUgNnY4YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDFabTgtMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0xWm0tMSAyYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtMWExIDEgMCAwIDEtMS0xVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlQmV0d2Vlbkhvcml6b250YWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlQmV0d2Vlbkhvcml6b250YWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWM2EyIDIgMCAwIDAtMi0ySDZabTAgMTNhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VCZXR3ZWVuSG9yaXpvbnRhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlQmV0d2Vlbkhvcml6b250YWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMkg2Wk01IDNhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVYzWm0xIDExYTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDZabS0xIDJhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VCZXR3ZWVuVmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlQmV0d2VlblZlcnRpY2FsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkgzWlwiLCBcIk0xNiA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlQmV0d2VlblZlcnRpY2FsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VCZXR3ZWVuVmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkgzWk0yIDZhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY2WlwiLCBcIk0xNiA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTFabS0xIDJhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VFdmVubHlIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TcGFjZUV2ZW5seUhvcml6b250YWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgMTZhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJIM2EyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxWlwiLCBcIk0xMCAxNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg5YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFaXCIsIFwiTTE2IDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlRXZlbmx5SG9yaXpvbnRhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlRXZlbmx5SG9yaXpvbnRhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgMTZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgzWm0tMS0yYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2OFptNyAyYTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIOVptLTEtMmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjhabTcgMmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0xWm0tMS0yYTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMWExIDEgMCAwIDAtMSAxdjhaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlRXZlbmx5SG9yaXpvbnRhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VFdmVubHlIb3Jpem9udGFsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDE3LjVBMi41IDIuNSAwIDAgMCA0LjUgMjBoMUEyLjUgMi41IDAgMCAwIDggMTcuNXYtMTFBMi41IDIuNSAwIDAgMCA1LjUgNGgtMUEyLjUgMi41IDAgMCAwIDIgNi41djExWm03IDBhMi41IDIuNSAwIDAgMCAyLjUgMi41aDFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDEyLjUgNGgtMUEyLjUgMi41IDAgMCAwIDkgNi41djExWm03IDBhMi41IDIuNSAwIDAgMCAyLjUgMi41aDFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDE5LjUgNGgtMUEyLjUgMi41IDAgMCAwIDE2IDYuNXYxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VFdmVubHlIb3Jpem9udGFsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VFdmVubHlIb3Jpem9udGFsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDE3LjVhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTExYTEgMSAwIDAgMC0xLTFoLTFhMSAxIDAgMCAwLTEgMXYxMVptMSAyLjVBMi41IDIuNSAwIDAgMSAyIDE3LjV2LTExQTIuNSAyLjUgMCAwIDEgNC41IDRoMUEyLjUgMi41IDAgMCAxIDggNi41djExQTIuNSAyLjUgMCAwIDEgNS41IDIwaC0xWm02LTIuNWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMXYtMTFhMSAxIDAgMCAwLTEtMWgtMWExIDEgMCAwIDAtMSAxdjExWm0xIDIuNUEyLjUgMi41IDAgMCAxIDkgMTcuNXYtMTFBMi41IDIuNSAwIDAgMSAxMS41IDRoMUEyLjUgMi41IDAgMCAxIDE1IDYuNXYxMWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTFabTctMS41YTEgMSAwIDAgMS0xLTF2LTExYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjExYTEgMSAwIDAgMS0xIDFoLTFabS0yLjUtMWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTExQTIuNSAyLjUgMCAwIDAgMTkuNSA0aC0xQTIuNSAyLjUgMCAwIDAgMTYgNi41djExWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TcGFjZUV2ZW5seVZlcnRpY2FsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TcGFjZUV2ZW5seVZlcnRpY2FsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMkg2WlwiLCBcIk02IDEzYTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDZaXCIsIFwiTTYgN2EyIDIgMCAwIDAtMiAydjFjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblNwYWNlRXZlbmx5VmVydGljYWwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TcGFjZUV2ZW5seVZlcnRpY2FsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCAzYzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWM1ptMi0xYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFINlpcIiwgXCJNNCAxNWMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xWm0yLTFhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMC0xLTFINlpcIiwgXCJNNiA3YTIgMiAwIDAgMC0yIDJ2MWMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJINlpNNSA5YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VFdmVubHlWZXJ0aWNhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VFdmVubHlWZXJ0aWNhbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYxQTIuNSAyLjUgMCAwIDAgNi41IDhoMTFBMi41IDIuNSAwIDAgMCAyMCA1LjV2LTFBMi41IDIuNSAwIDAgMCAxNy41IDJoLTExWm0wIDdBMi41IDIuNSAwIDAgMCA0IDExLjV2MUEyLjUgMi41IDAgMCAwIDYuNSAxNWgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNy41IDloLTExWm0wIDdBMi41IDIuNSAwIDAgMCA0IDE4LjV2MUEyLjUgMi41IDAgMCAwIDYuNSAyMmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VFdmVubHlWZXJ0aWNhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlRXZlbmx5VmVydGljYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjUgMy41YTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDExYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAwLTEtMWgtMTFaTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJoMTFBMi41IDIuNSAwIDAgMSAyMCA0LjV2MUEyLjUgMi41IDAgMCAxIDE3LjUgOGgtMTFBMi41IDIuNSAwIDAgMSA0IDUuNXYtMVptMi41IDZhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoMTFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDAtMS0xaC0xMVptLTIuNSAxQTIuNSAyLjUgMCAwIDEgNi41IDloMTFhMi41IDIuNSAwIDAgMSAyLjUgMi41djFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDQgMTIuNXYtMVptMS41IDdhMSAxIDAgMCAxIDEtMWgxMWExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMWgtMTFhMSAxIDAgMCAxLTEtMXYtMVptMS0yLjVBMi41IDIuNSAwIDAgMCA0IDE4LjV2MUEyLjUgMi41IDAgMCAwIDYuNSAyMmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VGaXRWZXJ0aWNhbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3BhY2VGaXRWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2NC41YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMkg2WlwiLCBcIk02IDEwLjVhMiAyIDAgMCAwLTIgMlYxN2MwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtNC41YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3BhY2VGaXRWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblNwYWNlRml0VmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnY0LjVjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWM2EyIDIgMCAwIDAtMi0ySDZaTTUgM2ExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY0LjVhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWM1pcIiwgXCJNNiAxMC41YTIgMiAwIDAgMC0yIDJWMTdjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTQuNWEyIDIgMCAwIDAtMi0ySDZabS0xIDJhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDFWMTdhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RhcnRIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdGFydEhvcml6b250YWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgMTcuNWEuNS41IDAgMCAwIDEgMHYtMTVhLjUuNSAwIDAgMC0xIDB2MTVaXCIsIFwiTTggNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0YXJ0SG9yaXpvbnRhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0YXJ0SG9yaXpvbnRhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuNSAxOGEuNS41IDAgMCAxLS41LS41di0xNWEuNS41IDAgMCAxIDEgMHYxNWEuNS41IDAgMCAxLS41LjVaXCIsIFwiTTggNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDhaTTcgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0YXJ0VmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0YXJ0VmVydGljYWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNSAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNNiA2YTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RhcnRWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0YXJ0VmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDMuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41WlwiLCBcIk02IDZhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMkg2Wk01IDhhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY4WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TdHJhaWdodGVuMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJhaWdodGVuMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjM1IDQuNTJBMyAzIDAgMCAwIDMuMDcgOC4xbC4xLjRoMTNsLS43LTMuMTVhMyAzIDAgMCAwLTMuNTctMi4yOEw1LjM1IDQuNTJabS0uODIgMTAuMTMtLjctMy4xNWgxMy4wMWwuMS40YTMgMyAwIDAgMS0yLjI5IDMuNThMOC4xIDE2LjkzYTMgMyAwIDAgMS0zLjU3LTIuMjhaTTEgMTBjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yQS41LjUgMCAwIDEgMSAxMFptNSAwYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDYgMTBabTUuNS0uNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWm00LjUuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyYWlnaHRlbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0cmFpZ2h0ZW4yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjA3IDguMWEzIDMgMCAwIDEgMi4yOC0zLjU4bDYuNTUtMS40NWEzIDMgMCAwIDEgMy41OCAyLjI4bC43IDMuMTVoLTEuMDNsLS42NS0yLjkzYTIgMiAwIDAgMC0yLjM4LTEuNTJMNS41NyA1LjVhMiAyIDAgMCAwLTEuNTIgMi4zOGwuMTMuNjJIMy4xNmwtLjA5LS40Wm0xMi43NSAzLjRoMS4wMmwuMDkuNGEzIDMgMCAwIDEtMi4yOCAzLjU4TDguMSAxNi45M2EzIDMgMCAwIDEtMy41OC0yLjI4bC0uNy0zLjE1aDEuMDNsLjY1IDIuOTNhMiAyIDAgMCAwIDIuMzkgMS41Mmw2LjU0LTEuNDVhMiAyIDAgMCAwIDEuNTItMi4zOGwtLjEzLS42MlpNMSAxMGMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSAxIDEwWm01IDBjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yQS41LjUgMCAwIDEgNiAxMFptNS41LS41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabTQuNS41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TdHJhaWdodGVuMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJhaWdodGVuMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01LjU1IDUuMTZhMy4yNSAzLjI1IDAgMCAwLTIuNDcgMy44OGwuMjcgMS4yMWgxNi41M2wtMS4wNC00LjdhMy4yNSAzLjI1IDAgMCAwLTMuODgtMi40N0w1LjU1IDUuMTZabS0uMzggMTMuMy0xLjA1LTQuNzFoMTYuNTRsLjI3IDEuMjFhMy4yNSAzLjI1IDAgMCAxLTIuNDcgMy44OGwtOS40MiAyLjA4YTMuMjUgMy4yNSAwIDAgMS0zLjg3LTIuNDdaTTEgMTJjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVBLjc1Ljc1IDAgMCAxIDEgMTJabTYgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgNyAxMlptNi43NS0uNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVpNMTkgMTJjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVBLjc1Ljc1IDAgMCAxIDE5IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQWxpZ25TdHJhaWdodGVuMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RyYWlnaHRlbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMDggOS4wNGEzLjI1IDMuMjUgMCAwIDEgMi40Ny0zLjg4bDkuNDEtMi4wOGEzLjI1IDMuMjUgMCAwIDEgMy44OCAyLjQ3bDEuMDQgNC43aC0xLjU0bC0uOTctNC4zOGExLjc1IDEuNzUgMCAwIDAtMi4wOC0xLjMzTDUuODcgNi42M2ExLjc1IDEuNzUgMCAwIDAtMS4zMyAyLjA5bC4zNCAxLjUzSDMuMzVsLS4yNy0xLjIxWm0xNi4wNCA0LjcxaDEuNTRsLjI2IDEuMjFhMy4yNSAzLjI1IDAgMCAxLTIuNDcgMy44OGwtOS40IDIuMDhhMy4yNSAzLjI1IDAgMCAxLTMuODktMi40N2wtMS4wNC00LjdoMS41NGwuOTcgNC4zOGMuMi45NCAxLjE0IDEuNTQgMi4wOSAxLjMzbDkuNDEtMi4wOWExLjc1IDEuNzUgMCAwIDAgMS4zMy0yLjA5bC0uMzQtMS41M1pNMSAxMmMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgMSAxMlptNiAwYzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41QS43NS43NSAwIDAgMSA3IDEyWm02Ljc1LS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wk0xOSAxMmMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNUEuNzUuNzUgMCAwIDEgMTkgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmV0Y2hIb3Jpem9udGFsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJldGNoSG9yaXpvbnRhbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAxLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWm0xMSAwYS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1ptLTEwIDNDNCAzLjY3IDQuNjcgMyA1LjUgM2g1Yy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgNCA1LjV2LTFabTAgNkM0IDkuNjcgNC42NyA5IDUuNSA5aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA0IDExLjV2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmV0Y2hIb3Jpem9udGFsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RyZXRjaEhvcml6b250YWwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDEuNWEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNabTExIDBhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWm0tMTAgM0M0IDMuNjcgNC42NyAzIDUuNSAzaDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA0IDUuNXYtMVpNNS41IDRhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTVabTAgNUM0LjY3IDkgNCA5LjY3IDQgMTAuNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVpNNSAxMC41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyZXRjaEhvcml6b250YWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0cmV0Y2hIb3Jpem9udGFsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk0xNiAxNy41YS41LjUgMCAwIDAgMSAwdi0xNWEuNS41IDAgMCAwLTEgMHYxNVpcIiwgXCJNMTMgMTZhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoNlpcIiwgXCJNMTUgN2EyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmV0Y2hIb3Jpem9udGFsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RyZXRjaEhvcml6b250YWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk0xNiAxNy41YS41LjUgMCAwIDAgMSAwdi0xNWEuNS41IDAgMCAwLTEgMHYxNVpcIiwgXCJNMTMgMTZhMiAyIDAgMCAwIDItMnYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYxYzAgMS4xLjkgMiAyIDJoNlptMS0yYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjFaXCIsIFwiTTE1IDdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxWm0tMiAxYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyZXRjaFZlcnRpY2FsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJldGNoVmVydGljYWwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNSAxM2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTAtMTFhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWm0zIDEwQTEuNSAxLjUgMCAwIDEgMyAxMC41di01QzMgNC42NyAzLjY3IDQgNC41IDRoMUM2LjMzIDQgNyA0LjY3IDcgNS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xWk05IDEwLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xQzkuNjcgNCA5IDQuNjcgOSA1LjV2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyZXRjaFZlcnRpY2FsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduU3RyZXRjaFZlcnRpY2FsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMS41IDEzYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1ptMC0xMWEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTMgMTBBMS41IDEuNSAwIDAgMSAzIDEwLjV2LTVDMyA0LjY3IDMuNjcgNCA0LjUgNGgxQzYuMzMgNCA3IDQuNjcgNyA1LjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFaTTQgMTAuNWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2NVptNSAwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDFjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMUM5LjY3IDQgOSA0LjY3IDkgNS41djVabTEuNS41YS41LjUgMCAwIDEtLjUtLjV2LTVjMC0uMjguMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduU3RyZXRjaFZlcnRpY2FsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25TdHJldGNoVmVydGljYWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNSAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNNCAxM2MwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjZaXCIsIFwiTTEzIDE1YTIgMiAwIDAgMS0yLTJWN2MwLTEuMS45LTIgMi0yaDFhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblN0cmV0Y2hWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblN0cmV0Y2hWZXJ0aWNhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuNSAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIiwgXCJNNCAxM2MwIDEuMS45IDIgMiAyaDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjZabTIgMWExIDEgMCAwIDEtMS0xVjdhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxSDZaXCIsIFwiTTEzIDE1aDFhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTFhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJabS0xLTJWN2ExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduVG9wMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Ub3AxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNSAyYS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1pNMiA1Ljc1QzIgNC43OCAyLjc4IDQgMy43NSA0aDEuNUM2LjIyIDQgNyA0Ljc4IDcgNS43NXY2LjVDNyAxMy4yMiA2LjIyIDE0IDUuMjUgMTRoLTEuNUMyLjc4IDE0IDIgMTMuMjIgMiAxMi4yNXYtNi41Wm03IDBDOSA0Ljc4IDkuNzggNCAxMC43NSA0aDEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0xLjVDOS43OCAxMiA5IDExLjIyIDkgMTAuMjV2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduVG9wMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMS41IDJhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWk0yIDUuNzVDMiA0Ljc4IDIuNzggNCAzLjc1IDRoMS41QzYuMjIgNCA3IDQuNzggNyA1Ljc1djYuNUM3IDEzLjIyIDYuMjIgMTQgNS4yNSAxNGgtMS41QzIuNzggMTQgMiAxMy4yMiAyIDEyLjI1di02LjVaTTMuNzUgNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djYuNWMwIC40MS4zNC43NS43NS43NWgxLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTYuNUEuNzUuNzUgMCAwIDAgNS4yNSA1aC0xLjVaTTkgNS43NUM5IDQuNzggOS43OCA0IDEwLjc1IDRoMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djQuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTEuNUM5Ljc4IDEyIDkgMTEuMjIgOSAxMC4yNXYtNC41Wk0xMC43NSA1YS43NS43NSAwIDAgMC0uNzUuNzV2NC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNC41YS43NS43NSAwIDAgMC0uNzUtLjc1aC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDMuNWMwLS4yOC4yMi0uNS41LS41aDE1YS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxLS41LS41Wk0xMSA3YzAtMS4xLjktMiAyLTJoMWEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0yVjdaTTYgNWEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblRvcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgMy41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVaTTExIDdjMC0xLjEuOS0yIDItMmgxYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJWN1ptMi0xYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFoLTFaTTYgNWEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgxYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDZaTTUgN2ExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yLjc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDE4LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTQgOC4yNUM0IDcuMDEgNSA2IDYuMjUgNmgyLjVDOS45OSA2IDExIDcgMTEgOC4yNXYxMC41QzExIDE5Ljk5IDEwIDIxIDguNzUgMjFoLTIuNUM1LjAxIDIxIDQgMjAgNCAxOC43NVY4LjI1Wm05IDBDMTMgNy4wMSAxNCA2IDE1LjI1IDZoMi41QzE4Ljk5IDYgMjAgNyAyMCA4LjI1djdjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTIuNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblRvcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIuNzUgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMTguNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpNNCA4LjI1QzQgNy4wMSA1IDYgNi4yNSA2aDIuNUM5Ljk5IDYgMTEgNyAxMSA4LjI1djEwLjVDMTEgMTkuOTkgMTAgMjEgOC43NSAyMWgtMi41QzUuMDEgMjEgNCAyMCA0IDE4Ljc1VjguMjVabTIuMjUtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTAuNWMwIC40MS4zNC43NS43NS43NWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWOC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41Wm02Ljc1Ljc1QzEzIDcuMDEgMTQgNiAxNS4yNSA2aDIuNUMxOC45OSA2IDIwIDcgMjAgOC4yNXY3YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0yLjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di03Wm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djdjMCAuNDEuMzQuNzUuNzUuNzVoMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1di03YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yLjc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDIyLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaTTUgOC43NUEyLjc1IDIuNzUgMCAwIDEgNy43NSA2aDIuNUEyLjc1IDIuNzUgMCAwIDEgMTMgOC43NXYxMy41QTIuNzUgMi43NSAwIDAgMSAxMC4yNSAyNWgtMi41QTIuNzUgMi43NSAwIDAgMSA1IDIyLjI1VjguNzVabTEwIDBBMi43NSAyLjc1IDAgMCAxIDE3Ljc1IDZoMi41QTIuNzUgMi43NSAwIDAgMSAyMyA4Ljc1djhhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NWgtMi41QTIuNzUgMi43NSAwIDAgMSAxNSAxNi43NXYtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduVG9wMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMi43NSAzYS43NS43NSAwIDAgMCAwIDEuNWgyMi41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wk01IDguNzVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNmgyLjVBMi43NSAyLjc1IDAgMCAxIDEzIDguNzV2MTMuNUEyLjc1IDIuNzUgMCAwIDEgMTAuMjUgMjVoLTIuNUEyLjc1IDIuNzUgMCAwIDEgNSAyMi4yNVY4Ljc1Wk03Ljc1IDcuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTMuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgyLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjguNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC0yLjVaTTE1IDguNzVBMi43NSAyLjc1IDAgMCAxIDE3Ljc1IDZoMi41QTIuNzUgMi43NSAwIDAgMSAyMyA4Ljc1djhhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NWgtMi41QTIuNzUgMi43NSAwIDAgMSAxNSAxNi43NXYtOFptMi43NS0xLjI1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXY4YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDIuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LThjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FsaWduVG9wMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk00IDNhMSAxIDAgMCAwIDAgMmgyNGExIDEgMCAxIDAgMC0ySDRabTEgNy41QTMuNSAzLjUgMCAwIDEgOC41IDdoM2EzLjUgMy41IDAgMCAxIDMuNSAzLjV2MTVhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0zQTMuNSAzLjUgMCAwIDEgNSAyNS41di0xNVptMTIgMEEzLjUgMy41IDAgMCAxIDIwLjUgN2gzYTMuNSAzLjUgMCAwIDEgMy41IDMuNXY5YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtM2EzLjUgMy41IDAgMCAxLTMuNS0zLjV2LTlaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblRvcDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgM2ExIDEgMCAwIDAgMCAyaDI0YTEgMSAwIDEgMCAwLTJINFptMSA3LjVBMy41IDMuNSAwIDAgMSA4LjUgN2gzYTMuNSAzLjUgMCAwIDEgMy41IDMuNXYxNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTNBMy41IDMuNSAwIDAgMSA1IDI1LjV2LTE1Wk04LjUgOUM3LjY3IDkgNyA5LjY3IDcgMTAuNXYxNWMwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWm04LjUgMS41QTMuNSAzLjUgMCAwIDEgMjAuNSA3aDNhMy41IDMuNSAwIDAgMSAzLjUgMy41djlhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0zYTMuNSAzLjUgMCAwIDEtMy41LTMuNXYtOVpNMjAuNSA5Yy0uODMgMC0xLjUuNjctMS41IDEuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFsaWduVG9wNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQWxpZ25Ub3A0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTUuMjUgNi41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgzNy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUg1LjI1Wk0yNiAxNS43NWMwLTIuMzUgMS45LTQuMjUgNC4yNS00LjI1aDUuNWMyLjM1IDAgNC4yNSAxLjkgNC4yNSA0LjI1djE1QzQwIDMzLjEgMzguMSAzNSAzNS43NSAzNWgtNS41QTQuMjUgNC4yNSAwIDAgMSAyNiAzMC43NXYtMTVaTTEyLjI1IDExLjVoNS41YzIuMzUgMCA0LjI1IDEuOSA0LjI1IDQuMjVWMzhjMCAyLjM1LTEuOSA0LjI1LTQuMjUgNC4yNWgtNS41QTQuMjUgNC4yNSAwIDAgMSA4IDM4VjE1Ljc1YzAtMi4zNSAxLjktNC4yNSA0LjI1LTQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBbGlnblRvcDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbGlnblRvcDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTUuMjUgNi41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgzNy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUg1LjI1Wk0yNiAxNS43NWMwLTIuMzUgMS45LTQuMjUgNC4yNS00LjI1aDUuNWMyLjM1IDAgNC4yNSAxLjkgNC4yNSA0LjI1djE1QzQwIDMzLjEgMzguMSAzNSAzNS43NSAzNWgtNS41QTQuMjUgNC4yNSAwIDAgMSAyNiAzMC43NXYtMTVaTTMwLjI1IDE0Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg1LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0xNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTUuNVptLTE4LTIuNWg1LjVjMi4zNSAwIDQuMjUgMS45IDQuMjUgNC4yNVYzOGMwIDIuMzUtMS45IDQuMjUtNC4yNSA0LjI1aC01LjVBNC4yNSA0LjI1IDAgMCAxIDggMzhWMTUuNzVjMC0yLjM1IDEuOS00LjI1IDQuMjUtNC4yNVptNS41IDIuNWgtNS41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVYzOGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg1LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbENhdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC42NiAxNUgzLjYzYTIuNjQgMi42NCAwIDAgMS0xLjkzLTQuNDRsLjgtLjg2YTIuMTggMi4xOCAwIDAgMC0uMDUtMy4wMmwtLjc5LS43OWEuNS41IDAgMCAxIC43MS0uN2wuNzguNzhhMy4xOCAzLjE4IDAgMCAxIC4wOCA0LjQxbC0uOC44NkExLjY0IDEuNjQgMCAwIDAgMy42NCAxNGguNWExNi42OCAxNi42OCAwIDAgMSAuMzYtMy41NyA3LjEgNy4xIDAgMCAxIDEuMzMtMi45MiAzLjc3IDMuNzcgMCAwIDEgMi41NC0xLjM5VjMuMmMwLTEuMjEuOTgtMi4xOSAyLjE5LTIuMTkuNSAwIC45Mi40MS45Mi45MnYuNDloMS4xOGMuNjYgMCAxLjI3LjM0IDEuNjIuOWwuNDMuN2ExLjkgMS45IDAgMCAxLTEuNDcgMi45djYuNTRjMCAuODUtLjcgMS41NS0xLjU2IDEuNTVoLS41NXYtMS41NWEyLjYgMi42IDAgMCAwLTIuNi0yLjYxaC0uODlhLjUuNSAwIDAgMCAwIDFoLjg4Yy44OSAwIDEuNjEuNzIgMS42MSAxLjZWMTVINC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbENhdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxDYXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjY0IDE1aDguMDRjLjg2IDAgMS41Ni0uNyAxLjU2LTEuNTVWNi45YTEuOSAxLjkgMCAwIDAgMS40Ny0yLjlsLS40My0uN2ExLjkgMS45IDAgMCAwLTEuNjItLjloLTEuMTh2LS40OWMwLS41LS40MS0uOTItLjkyLS45Mi0xLjIgMC0yLjE5Ljk4LTIuMTkgMi4xOXYyLjkzYy0xLjEuMTMtMS45My42NS0yLjU0IDEuMzlhNy4xIDcuMSAwIDAgMC0xLjMzIDIuOTJBMTQuODQgMTQuODQgMCAwIDAgNC4xNCAxNGgtLjVhMS42NCAxLjY0IDAgMCAxLTEuMi0yLjc2bC44LS44NmEzLjE4IDMuMTggMCAwIDAtLjA4LTQuNDFsLS43OC0uNzhhLjUuNSAwIDEgMC0uNy43bC43OC43OUEyLjE4IDIuMTggMCAwIDEgMi41IDkuN2wtLjguODZBMi42NCAyLjY0IDAgMCAwIDMuNjQgMTVabTYuODQtMTN2LjljMCAuMjguMjIuNS41LjVoMS42OGMuMzEgMCAuNi4xNy43Ny40M2wuNDMuN2EuOS45IDAgMCAxLS43NyAxLjM5aC0uMzVhLjUuNSAwIDAgMC0uNS41djcuMDNjMCAuMy0uMjUuNTUtLjU2LjU1aC0uNTV2LS41NWEyLjYgMi42IDAgMCAwLTIuNi0yLjYxaC0uODlhLjUuNSAwIDAgMCAwIDFoLjg4Yy44OSAwIDEuNjEuNzIgMS42MSAxLjZWMTRINS4xNGExNS42NiAxNS42NiAwIDAgMSAuMzQtMy4zNGMuMjItLjk1LjU3LTEuODUgMS4xMi0yLjUxYTIuOCAyLjggMCAwIDEgMi4yNy0xLjA2LjUuNSAwIDAgMCAuNS0uNVYzLjJjMC0uNjMuNS0xLjE1IDEuMTEtMS4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbENhdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC45NyAxOEgxM3YtMS41YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMWEuNS41IDAgMCAxIDAtMWgxYTMuNSAzLjUgMCAwIDEgMy41IDMuNVYxOGguMjVjLjQ3IDAgLjktLjIgMS4yMS0uNWguMDR2LS4wNGMuMjktLjMuNDctLjcyLjQ3LTEuMTh2LTcuNmEyLjEyIDIuMTIgMCAwIDAgMS43LTMuMjRsLS41LS44MWMtLjM4LS42My0xLjA2LTEtMS44LTFoLTEuNDN2LS42NGEuOTkuOTkgMCAwIDAtLjk5LS45OSAyLjQ1IDIuNDUgMCAwIDAtMi40NCAyLjQ1VjcuOWE0LjI4IDQuMjggMCAwIDAtMi45NSAxLjU4IDYuNjkgNi42OSAwIDAgMC0xLjA0IDEuOGMtLjIzLjQ2LS4zOS45Ni0uNDcgMS40OWwtLjAxLjA2QTE3LjA0IDE3LjA0IDAgMCAwIDUuNjMgMTdoLS42NmExLjk3IDEuOTcgMCAwIDEtMS40NC0zLjMybC45Mi0uOThhMy41OSAzLjU5IDAgMCAwLS4wOS00Ljk5bC0uOS0uOWEuNS41IDAgMSAwLS43LjdsLjkuOWEyLjU5IDIuNTkgMCAwIDEgLjA2IDMuNmwtLjkyIDFBMi45NyAyLjk3IDAgMCAwIDQuOTcgMThaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxDYXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsQ2F0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC45NyAxOGg5LjI4Yy45NSAwIDEuNzItLjc3IDEuNzItMS43MnYtNy42YTIuMTIgMi4xMiAwIDAgMCAxLjctMy4yNGwtLjUtLjgxYy0uMzgtLjYzLTEuMDYtMS0xLjgtMWgtMS40M3YtLjY0YS45OS45OSAwIDAgMC0uOTktLjk5IDIuNDUgMi40NSAwIDAgMC0yLjQ0IDIuNDVWNy45YTQuMjggNC4yOCAwIDAgMC0yLjk1IDEuNTggOC4xMSA4LjExIDAgMCAwLTEuNTIgMy4zNUExNy4wNCAxNy4wNCAwIDAgMCA1LjYzIDE3aC0uNjZhMS45NyAxLjk3IDAgMCAxLTEuNDQtMy4zMmwuOTItLjk4YTMuNTkgMy41OSAwIDAgMC0uMDktNC45OWwtLjktLjlhLjUuNSAwIDEgMC0uNy43bC45LjlhMi41OSAyLjU5IDAgMCAxIC4wNiAzLjZsLS45MiAxQTIuOTcgMi45NyAwIDAgMCA0Ljk3IDE4Wm03Ljk3LTE1djEuMTJjMCAuMjguMjIuNS41LjVoMS45M2MuNCAwIC43NS4yLjk2LjUzbC41LjgxYy40Ni43NS0uMDggMS43Mi0uOTUgMS43MmgtLjQxYS41LjUgMCAwIDAtLjUuNXY4LjFjMCAuNC0uMzIuNzItLjcyLjcyaC0uNzJ2LS43MmEyLjkzIDIuOTMgMCAwIDAtMi45My0yLjkzSDkuNmEuNS41IDAgMCAwIDAgMWgxLjAxYzEuMDcgMCAxLjkzLjg3IDEuOTMgMS45M1YxN2gtNS45QTE4IDE4IDAgMCAxIDcgMTMuMDVjLjI2LTEuMS42Ny0yLjE2IDEuMzItMi45M0EzLjMyIDMuMzIgMCAwIDEgMTEgOC44OGEuNS41IDAgMCAwIC41LS41VjQuNDVjMC0uOC42NC0xLjQ0IDEuNDMtMS40NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbENhdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy4yNSAyMkg1LjhhMy44IDMuOCAwIDAgMS0yLjc4LTYuMzlsMS4xNC0xLjIyYTMuMDYgMy4wNiAwIDAgMC0uMDgtNC4yNUwyLjk3IDkuMDNhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxLjExIDEuMTFhNC41NiA0LjU2IDAgMCAxIC4xMSA2LjM0bC0xLjEzIDEuMjFBMi4zIDIuMyAwIDAgMCA1LjggMjAuNWguNjdBMjMuODQgMjMuODQgMCAwIDEgNyAxNS40NWMuMzQtMS40Ni45MS0zIDEuOS00LjE3YTUuNCA1LjQgMCAwIDEgMy42LTEuOTlWNS4xNUEzLjE1IDMuMTUgMCAwIDEgMTUuNjQgMkMxNi40IDIgMTcgMi42IDE3IDMuMzVWNGgxLjY0Yy45NSAwIDEuODMuNSAyLjMzIDEuM2wuNjIgMWEyLjc1IDIuNzUgMCAwIDEtMi4wOSA0LjE5djkuMjZjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLS43NXYtMi4yNUEzLjc1IDMuNzUgMCAwIDAgMTIuNzQgMTZIMTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS4yNWMxLjI1IDAgMi4yNSAxIDIuMjUgMi4yNVYyMkg3LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsQ2F0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjUgMy41Yy0uODUuMDgtMS41Ljc5LTEuNSAxLjY1VjEwYzAgLjQxLS4zNC43NS0uNzYuNzUtMS40NCAwLTIuNDUuNTktMy4yIDEuNDlhOC42NyA4LjY3IDAgMCAwLTEuNiAzLjU2IDE5LjY2IDE5LjY2IDAgMCAwLS40NyA0LjdIMTV2LS43NWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxMS41YS43NS43NSAwIDAgMSAwLTEuNWgxLjI1YTMuNzUgMy43NSAwIDAgMSAzLjc1IDMuNzV2Ljc1aC43NWMuNDIgMCAuNzUtLjM0Ljc1LS43NXYtMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWguNWMuOTkgMCAxLjU4LTEuMDggMS4wNy0xLjlsLS42Mi0xYy0uMjMtLjM4LS42My0uNi0xLjA2LS42aC0yLjM5YS43NS43NSAwIDAgMS0uNzUtLjc1VjMuNTFabS05LjAzIDE3QTIzLjg1IDIzLjg1IDAgMCAxIDcgMTUuNDVjLjM0LTEuNDYuOTEtMyAxLjktNC4xN2E1LjQgNS40IDAgMCAxIDMuNi0xLjk5VjUuMTVBMy4xNSAzLjE1IDAgMCAxIDE1LjY0IDJDMTYuNCAyIDE3IDIuNiAxNyAzLjM1VjRoMS42NGMuOTUgMCAxLjgzLjUgMi4zMyAxLjNsLjYyIDFhMi43NSAyLjc1IDAgMCAxLTIuMDkgNC4xOXY5LjI2YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDUuOGEzLjggMy44IDAgMCAxLTIuNzgtNi4zOWwxLjE0LTEuMjJhMy4wNiAzLjA2IDAgMCAwLS4wOC00LjI1TDIuOTcgOS4wM2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDEuMTEgMS4xMWE0LjU2IDQuNTYgMCAwIDEgLjExIDYuMzRsLTEuMTMgMS4yMUEyLjMgMi4zIDAgMCAwIDUuOCAyMC41aC42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbENhdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTcuOCAyNkg2LjQ2YTQuNDYgNC40NiAwIDAgMS0zLjI2LTcuNWwxLjM4LTEuNDhhMy44OCAzLjg4IDAgMCAwLS4xLTUuNGwtMS4zNS0xLjM1QS43NS43NSAwIDAgMSA0LjIgOS4yMWwxLjM2IDEuMzZhNS4zOCA1LjM4IDAgMCAxIC4xMiA3LjQ3TDQuMyAxOS41MmEyLjk2IDIuOTYgMCAwIDAgMi4xNyA0Ljk4aC45OGEyOC41OCAyOC41OCAwIDAgMSAuNjItNi4yNmMuNDEtMS43NyAxLjEtMy42IDIuMjgtNS4wMWE2LjQyIDYuNDIgMCAwIDEgNC40Mi0yLjM4VjUuNjdBMy42NyAzLjY3IDAgMCAxIDE4LjQzIDJjLjgyIDAgMS40OC42NiAxLjQ4IDEuNDh2Ljk1aDIuMTVjMS4xIDAgMi4xMi41NyAyLjcgMS41bC43NiAxLjIyYTMuMTggMy4xOCAwIDAgMS0yLjU3IDQuODZ2MTEuNDJBMi41NyAyLjU3IDAgMCAxIDIwLjM4IDI2SDE5LjN2LTIuNTdhNC40IDQuNCAwIDAgMC00LjQtNC40SDEzLjRhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNTFjMS42IDAgMi45IDEuMyAyLjkgMi45VjI2WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsQ2F0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbENhdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTguNTIgMjZoMTEuODZhMi41NyAyLjU3IDAgMCAwIDIuNTctMi41N1YxMmEzLjE4IDMuMTggMCAwIDAgMi41Ny00Ljg2bC0uNzYtMS4yMWEzLjE4IDMuMTggMCAwIDAtMi43LTEuNWgtMi4xNXYtLjk2YzAtLjgyLS42Ni0xLjQ4LTEuNDgtMS40OGEzLjY3IDMuNjcgMCAwIDAtMy42NyAzLjY3djUuMThhNi40MiA2LjQyIDAgMCAwLTQuNDIgMi4zOCAxMi4xNyAxMi4xNyAwIDAgMC0yLjI4IDUgMjUuNTcgMjUuNTcgMCAwIDAtLjYyIDYuMjdoLS45OWEyLjk2IDIuOTYgMCAwIDEtMi4xNi00Ljk4bDEuMzgtMS40OGE1LjM4IDUuMzggMCAwIDAtLjEyLTcuNDdMNC4xOSA5LjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwxLjM2IDEuMzZhMy44OCAzLjg4IDAgMCAxIC4wOSA1LjRMMy4yIDE4LjVBNC40NiA0LjQ2IDAgMCAwIDYuNDUgMjZoMi4wN1ptOS44OS0yMi41djEuNjhjMCAuNDIuMzQuNzUuNzUuNzVoMi45Yy41OCAwIDEuMTIuMyAxLjQzLjhsLjc1IDEuMjFhMS42OCAxLjY4IDAgMCAxLTEuNDMgMi41N2gtLjYxYS43NS43NSAwIDAgMC0uNzUuNzV2MTIuMTdjMCAuNTktLjQ4IDEuMDctMS4wNyAxLjA3SDE5LjN2LTEuMDdhNC40IDQuNCAwIDAgMC00LjQtNC40SDEzLjRhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNTFjMS42IDAgMi45IDEuMyAyLjkgMi45djEuMDdIOC45NGEyNy4wMSAyNy4wMSAwIDAgMSAuNTgtNS45MmMuMzktMS42NiAxLTMuMjQgMS45Ny00LjRhNC45NyA0Ljk3IDAgMCAxIDQuMDItMS44NmMuNDIgMCAuNzUtLjM0Ljc1LS43NXYtNS45YzAtMS4yLjk2LTIuMTYgMi4xNS0yLjE3WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsRG9nMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsRG9nMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00IDE0Yy4zMSAwIC41Ni0uMTUuNzMtLjM3LjItLjI0LjI3LS41MS4yNy0uNjMgMC0uNy4wMy0xLjUuMTktMi4yNS4xNS0uNzUuNDItMS41Ljk0LTIuMDguNDUtLjUxLjkxLTEuMSAxLjI3LTEuOS4yMi0uNS40LTEuMTMuNTEtMS44OUExLjUgMS41IDAgMCAwIDEwIDMuNWEuNS41IDAgMCAwLTEgMCAuNS41IDAgMCAxLTEgMHYtMUM4IDEuNjcgOC42NyAxIDkuNSAxaDEuMjJjLjI3IDAgLjU0LjA3Ljc3LjIxbDEuNzggMS4wN2MuNDUuMjcuNzMuNzYuNzMgMS4yOXYuOTNjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEydjYuMDVhMi41IDIuNSAwIDAgMSAyIDIuNDUuNS41IDAgMCAxLS41LjVIMTF2LS41YzAtLjgyLS40LTEuNTQtMS0ydi0yYS41LjUgMCAwIDAtMSAwdjEuNTVhMi41IDIuNSAwIDAgMC0uNS0uMDVIOGEuNS41IDAgMCAwIDAgMWguNWExLjQ5IDEuNDkgMCAwIDEgMS41IDEuNXYuNUgzLjc1YTIuNzUgMi43NSAwIDAgMS0xLjUzLTUuMDQuNS41IDAgMSAxIC41Ni44M0ExLjc1IDEuNzUgMCAwIDAgMy43NSAxNEg0WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsRG9nMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbERvZzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkuNSAyYS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwIC41LjUgMCAwIDEgMSAwIDEuNSAxLjUgMCAwIDEtMi4wOCAxLjM4Yy0uMTEuOTEtLjMzIDEuNjYtLjYgMi4zLS40Mi45NC0uOTYgMS42LTEuNDUgMi4xNWEzLjQgMy40IDAgMCAwLS43IDEuNjFDNi4wMyAxMS42IDYgMTIuMzMgNiAxM2MwIC4zLS4xMS42Ny0uMzEgMUg5LjlhMS41IDEuNSAwIDAgMC0xLjQxLTFIOGEuNS41IDAgMCAxIDAtMWguNWMuMTcgMCAuMzQuMDIuNS4wNVYxMC41YS41LjUgMCAwIDEgMSAwdjJjLjQ4LjM2LjgzLjg5Ljk1IDEuNWgxLjk2Yy0uMi0uNTgtLjc2LTEtMS40MS0xYS41LjUgMCAwIDEtLjUtLjV2LTdjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDAgLjUtLjV2LS45M2EuNS41IDAgMCAwLS4yNC0uNDNsLTEuNzgtMS4wN2EuNS41IDAgMCAwLS4yNi0uMDdIOS41Wk00IDE0Yy4zMSAwIC41Ni0uMTUuNzMtLjM3LjItLjI0LjI3LS41MS4yNy0uNjMgMC0uNy4wMy0xLjUuMTktMi4yNS4xNS0uNzUuNDItMS41Ljk0LTIuMDguNDUtLjUxLjkxLTEuMSAxLjI3LTEuOS4zNS0uNzkuNi0xLjgzLjYtMy4yN3YtMUM4IDEuNjcgOC42NyAxIDkuNSAxaDEuMjJjLjI3IDAgLjU0LjA3Ljc3LjIxbDEuNzggMS4wN2MuNDUuMjcuNzMuNzYuNzMgMS4yOXYuOTNjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEydjYuMDVhMi41IDIuNSAwIDAgMSAyIDIuNDUuNS41IDAgMCAxLS41LjVIMy43NWEyLjc1IDIuNzUgMCAwIDEtMS41My01LjA0LjUuNSAwIDEgMSAuNTYuODNBMS43NSAxLjc1IDAgMCAwIDMuNzUgMTRINFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbERvZzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbERvZzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgMmMtLjMzIDAtLjgxLjEtMS4yMy40LS40NC4zMS0uNzcuODQtLjc3IDEuNnYxLjI1YzAgLjEzLjA0LjM0LjE2LjUuMDkuMTIuMjUuMjUuNTkuMjUuMzQgMCAuNS0uMTMuNi0uMjZhLjkuOSAwIDAgMCAuMTUtLjQ5LjUuNSAwIDEgMSAxIDBjMCAuMy0uMDguNzEtLjM1IDEuMDgtLjI4LjM5LS43NC42Ny0xLjQuNjctLjMyIDAtLjYtLjA2LS44Mi0uMThhNi41IDYuNSAwIDAgMS0xLjc4IDMuODMgNy40NyA3LjQ3IDAgMCAwLTEuODkgMy40OEE5LjMzIDkuMzMgMCAwIDAgNiAxNS45NXYuMDhhMS4zNCAxLjM0IDAgMCAxLS4xMy41LjgyLjgyIDAgMCAxLS4yOC4zMmMtLjEyLjA4LS4zLjE1LS41OS4xNWEyIDIgMCAwIDEtMS4yLTMuNi41LjUgMCAxIDAtLjYtLjhBMyAzIDAgMCAwIDUgMThoOHYtLjVjMC0uNC0uMTktMS4wNS0uNzMtMS4zMy0uMTktLjEtLjQ0LS4xNy0uNzctLjE3aC0xYS41LjUgMCAwIDEgMC0xaDFjLjE4IDAgLjM0LjAxLjUuMDRWMTIuNWEuNS41IDAgMCAxIDEgMHYyLjk1Yy43OS41NyAxIDEuNTIgMSAyLjA1di41aDIuNWEuNS41IDAgMCAwIC41LS41YzAtLjg3LS4zLTEuNTItLjgtMS45NS0uMzYtLjI5LS43OC0uNDUtMS4yLS41MVY3aC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY0LjI4YTEgMSAwIDAgMC0uNDktLjg1bC0xLjc4LTEuMDdBMi41IDIuNSAwIDAgMCAxMy40NSAySDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsRG9nMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbERvZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjc3IDIuNGMuNDItLjMuOS0uNCAxLjIzLS40aDEuNDVjLjQ1IDAgLjkuMTIgMS4yOC4zNmwxLjc4IDEuMDdjLjMuMTguNDkuNS40OS44NVY1LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1djguMDRjLjQyLjA2Ljg0LjIyIDEuMi41MS41LjQzLjggMS4wOC44IDEuOTVhLjUuNSAwIDAgMS0uNS41SDVhMyAzIDAgMCAxLTEuOC01LjQuNS41IDAgMCAxIC42LjhBMiAyIDAgMCAwIDUgMTdjLjI5IDAgLjQ3LS4wNy41OS0uMTUuMTItLjA4LjIxLS4yLjI4LS4zMkExLjM0IDEuMzQgMCAwIDAgNiAxNnYtLjA1YTQuNjkgNC42OSAwIDAgMSAuMDMtLjVjLjA0LS4zMy4xLS44LjIzLTEuMzIuMjctMS4wNS44LTIuNCAxLjg5LTMuNDhDOS45OSA4LjggMTAgNi4zMyAxMCA1LjVWNGMwLS43Ni4zMy0xLjI5Ljc3LTEuNlptLjE1IDQuNWE3LjUxIDcuNTEgMCAwIDEtMi4wNyA0LjQ1IDYuNDcgNi40NyAwIDAgMC0xLjYxIDMuMDIgOC4zMyA4LjMzIDAgMCAwLS4yNCAxLjZ2LjA2YTEuNzggMS43OCAwIDAgMS0uMDMuMjkgMi4zNCAyLjM0IDAgMCAxLS4yMi42OGg2LjE3Yy0uMS0uMzItLjMtLjY1LS42NS0uODMtLjE5LS4xLS40NC0uMTctLjc3LS4xN2gtMWEuNS41IDAgMCAxIDAtMWgxYy4xOCAwIC4zNC4wMS41LjA0VjEyLjVhLjUuNSAwIDAgMSAxIDB2Mi45NWMuNTguNDIuODUgMS4wNC45NSAxLjU1aDJhMS4yIDEuMiAwIDAgMC0uNC0uNjhBMS42NCAxLjY0IDAgMCAwIDE0LjUgMTZhLjUuNSAwIDAgMS0uNS0uNXYtOWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMCAuNS0uNVY0LjI4bC0xLjc4LTEuMDdhMS41IDEuNSAwIDAgMC0uNzctLjIxSDEyYy0uMTcgMC0uNDQuMDYtLjY1LjItLjE4LjE0LS4zNS4zNi0uMzUuOHYxLjVjMCAuMDkuMDMuMjMuMS4zMy4wNi4wOC4xNi4xNy40LjE3LjI0IDAgLjM0LS4wOS40LS4xNy4wNy0uMS4xLS4yNC4xLS4zM2EuNS41IDAgMCAxIDEgMGMwIC4yNS0uMDcuNi0uMy45Mi0uMjQuMzMtLjY0LjU4LTEuMi41OC0uMjIgMC0uNC0uMDQtLjU4LS4xWk03IDE2aC0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbERvZzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbERvZzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuODggOC42NmMuMzguMjIuODQuMzQgMS4zNy4zNC44NCAwIDEuNTUtLjMgMi4wNC0uODQuNDgtLjUzLjctMS4yMi43LTEuOTFhLjc1Ljc1IDAgMCAwLTEuNSAwYzAgLjM4LS4xMS42OS0uMy45LS4xOC4xOS0uNDguMzUtLjk0LjM1LS40NSAwLS43My0uMTYtLjkyLS4zNy0uMTgtLjIxLS4zLS41LS4zMy0uODRWNC4yNUMxMSAzLjAxIDEyIDIgMTMuMjUgMmgzLjE4Yy41MSAwIDEuMDEuMTQgMS40NS40bDIuNzYgMS43MWMuMjIuMTQuMzYuMzguMzYuNjR2MS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0uMjV2OS41M2MuOTIuMSAxLjYyLjM3IDIuMDUuOTcuMjUuMzYuMzYuNzYuNCAxLjEzLjA1LjM1LjA1LjczLjA1IDEuMDl2LjAzYzAgLjQxLS4zNC43NS0uNzUuNzVIMTd2LS43N2MwLS41OCAwLTIuMjEtMS41LTMuMTd2LTIuOGEuNzUuNzUgMCAwIDAtMS41IDB2Mi4yNmE0LjYyIDQuNjIgMCAwIDAtLjctLjAyaC0uMDlhLjc1Ljc1IDAgMSAwIC4wOCAxLjVIMTMuNWExLjk0IDEuOTQgMCAwIDEgLjkzLjE4YzEuMDQuNDggMS4wNyAxLjQ0IDEuMDcgMi4wN1YyMkg1LjgzYTMuODMgMy44MyAwIDAgMS0xLjk3LTcuMTIuNzUuNzUgMCAwIDEgLjc4IDEuMjggMi4zMyAyLjMzIDAgMCAwIDEuMiA0LjM0Yy4zMSAwIC41MS0uMDguNjQtLjE4LjE0LS4xLjI1LS4yMy4zMy0uNGExLjkzIDEuOTMgMCAwIDAgLjE5LS43di0uMDNhNy45NCA3Ljk0IDAgMCAxIC4wMy0uNjVjLjA0LS40My4xLTEuMDIuMjMtMS42OC4yNi0xLjI5LjgtMi45NyAxLjk2LTQuMTRhNi41MiA2LjUyIDAgMCAwIDEuNTQtMy4zNmwuMTItLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxEb2cyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsRG9nMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuMjUgMmgzLjE4Yy41MSAwIDEuMDEuMTQgMS40NS40bDIuNzYgMS43MWMuMjIuMTQuMzYuMzguMzYuNjR2MS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0uMjV2OS4wNWMxIC4xMyAxLjcuNTUgMi4xIDEuMjcuMjIuNC4zMS44NC4zNiAxLjI1LjA0LjM5LjA0LjguMDQgMS4xNXYuMDNjMCAuNDEtLjM0Ljc1LS43NS43NUg1LjgzYTMuODMgMy44MyAwIDAgMS0xLjk3LTcuMTIuNzUuNzUgMCAwIDEgLjc4IDEuMjggMi4zMyAyLjMzIDAgMCAwIDEuMiA0LjM0Yy4zMSAwIC41MS0uMDguNjQtLjE4LjE0LS4xLjI1LS4yMy4zMy0uNGExLjkzIDEuOTMgMCAwIDAgLjE5LS43di0uMDNhNy45NCA3Ljk0IDAgMCAxIC4wMy0uNjVjLjA0LS40My4xLTEuMDIuMjMtMS42OC4yNi0xLjI5LjgtMi45NyAxLjk2LTQuMTRhNi41MiA2LjUyIDAgMCAwIDEuNTQtMy4zNkMxMSA4LjEzIDExIDcgMTEgNi41VjQuMjVDMTEgMy4wMSAxMiAyIDEzLjI1IDJabS01LjUgMTcuMjUuNzUuMDN2LjA0YTIuNTcgMi41NyAwIDAgMS0uMDUuMzhjLS4wNC4yMS0uMTIuNS0uMjUuOGg3LjI1YTEuNyAxLjcgMCAwIDAtMS41LTEuNDUgNC43IDQuNyAwIDAgMC0uOTgtLjA1aC0uMmEuNzUuNzUgMCAxIDEtLjAzLTEuNWguNTFjLjIzIDAgLjUgMCAuNzUuMDR2LTIuMjlhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuOGEzLjI0IDMuMjQgMCAwIDEgMS40NiAyLjQ1aDIuNTNsLS4wMi0uMjdjLS4wNC0uMy0uMS0uNTItLjE5LS42OC0uMTMtLjIzLS40My0uNTUtMS41My0uNTVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDFjLjQxIDAgLjc1LS4zNC43NS0uNzVWNS4xN2wtMi40MS0xLjQ4Yy0uMi0uMTMtLjQyLS4xOS0uNjYtLjE5aC0zLjE4YS43NS43NSAwIDAgMC0uNzUuNzV2Mi4yM2MuMDEuMjMuMS40My4yLjU2LjEuMTEuMjcuMjEuNTUuMjEuMjkgMCAuNDUtLjEuNTYtLjIyLjExLS4xMy4xOS0uMzMuMTktLjU4YS43NS43NSAwIDAgMSAxLjUgMGMwIC41NS0uMTggMS4xMy0uNTcgMS41Ny0uNC40Ni0uOTguNzMtMS42OC43My0uMzEgMC0uNi0uMDUtLjg2LS4xNS0uMDMuMzMtLjA4LjY4LS4xNSAxLjA0YTggOCAwIDAgMS0xLjk2IDQuMTQgNi43OCA2Ljc4IDAgMCAwLTEuNTQgMy4zOCAxMi43IDEyLjcgMCAwIDAtLjI0IDIuMDZ2LjA2bC0uNzUtLjAzWm04LjUgMi43NXYtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsUmFiYml0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMC4yIDQgMTMuNCA3LjJhMi4xIDIuMSAwIDAgMS0xLjk2IDMuNTF2LjEyYzAgLjY1LS41MyAxLjE4LTEuMTggMS4xOEg4LjA2di0uNWMwLS44LS42NC0xLjUtMS41Ni0xLjVoLTFhLjUuNSAwIDEgMCAwIDFoMWMuMzcgMCAuNTYuMjUuNTYuNXYuNUg0LjE3QzMuNTMgMTIgMyAxMS40NyAzIDEwLjgyVjkuMkExLjc4IDEuNzggMCAxIDEgNS40MyA3TDUuNjcgN0g4LjhjLjM1IDAgLjcuMDYgMSAuMTguMDQtLjA2LjA4LS4xOC4xMi0uMy4wNi0uMTkuMTItLjM5LjItLjQ3TDguOTggNS4yNEEuODcuODcgMCAwIDEgMTAuMiA0WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdDE2UmVndWxhcicsIFwiMTZcIiwgW1wibTkuMzMgNi40LS45LS44OGExLjI1IDEuMjUgMCAwIDEgMC0xLjc3IDEuMjQgMS4yNCAwIDAgMSAxLjc2IDBsMy4xIDMuMUEyLjQ1IDIuNDUgMCAwIDEgMTEuNDcgMTFjLS4yNi41OC0uODUgMS0xLjU0IDFINC43QTEuNyAxLjcgMCAwIDEgMyAxMC4zVjkuMjRjMC0uMy4wNS0uNTguMTQtLjg1QTEuNzUgMS43NSAwIDEgMSA1LjQ4IDYuNWwuMjUtLjAxaDMuMTZjLjEyIDAgLjI0IDAgLjM1LjAybC4wOS0uMTJabS4xNi0xLjk0YS4yNC4yNCAwIDAgMC0uMzUgMGMtLjEuMS0uMS4yNSAwIC4zNWwxLjYgMS41OC0uNDcuNDVjLS4xNy4xOC0uMjYuMzItLjMyLjQ0bC0uMTcuNC0uNDItLjExYTEuNzMgMS43MyAwIDAgMC0uNDctLjA3SDUuNzNDNC43OCA3LjUgNCA4LjI4IDQgOS4yNHYxLjA3YzAgLjM5LjMxLjcuNjkuN0g3di0uNDVjMC0uMjUtLjI1LS41Ni0uNjgtLjU2SDUuNWEuNS41IDAgMCAxIDAtMWguODJDNy4yIDkgOCA5LjY2IDggMTAuNTZWMTFoMS45M2MuMzUgMCAuNjUtLjI2LjY5LS42bC4wNi0uNTcuNTUuMTRjLjQ3LjExLjk4LS4wMiAxLjM1LS4zOC41Ni0uNTcuNTYtMS40OCAwLTIuMDRsLTMuMS0zLjFaTTMuNjMgNy40OWMuMjQtLjI5LjUzLS41Mi44Ny0uN3YtLjA0YS43NS43NSAwIDEgMC0uODcuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxSYWJiaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxSYWJiaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTEyLjY4IDQuMzggNC4yMyA0LjIzYTIuNzggMi43OCAwIDAgMS0yLjYgNC42N3YuMTZjMCAuODYtLjcgMS41Ni0xLjU3IDEuNTZIMTF2LTEuMjVjMC0uNTQtLjI4LS45OC0uNjctMS4yOC0uMzgtLjMtLjktLjQ3LTEuNDMtLjQ3SDcuNWEuNS41IDAgMSAwIDAgMWgxLjRjLjMzIDAgLjYyLjEuODIuMjYuMi4xNS4yOC4zMy4yOC40OVYxNUg1LjU2QzQuNyAxNSA0IDE0LjMgNCAxMy40NHYtMi4yMUEyLjEyIDIuMTIgMCAxIDEgNi4wNSA4LjNDNi41IDguMTEgNyA4IDcuNTIgOGgzLjI4Yy40NyAwIC45Mi4xIDEuMzMuMjZsLjA4LS4xM2MuMTEtLjE5LjIzLS40LjM4LS41NWwtMS41NS0xLjU2YTEuMTYgMS4xNiAwIDEgMSAxLjY0LTEuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxSYWJiaXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsUmFiYml0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuNTEgMTUuMDFoMi4xMmMuOTEgMCAxLjY4LS41NyAxLjk5LTEuMzcuODguMDcgMS43OS0uMjMgMi40Ni0uOWEzLjE1IDMuMTUgMCAwIDAgMC00LjQ1bC00LjIyLTQuMjJjLS41OS0uNTktMS41NS0uNTktMi4xNCAwLS42LjYtLjYgMS41NiAwIDIuMTVsMS4zNCAxLjMzYy0uMTIuMTYtLjIyLjMzLS4zLjVhMy41NSAzLjU1IDAgMCAwLS41NC0uMDVINy41NGMtLjMzIDAtLjY1LjA1LS45NS4xM0EyLjUgMi41IDAgMSAwIDQgMTEuOTV2LjkzYzAgMS4xOC45NSAyLjEzIDIuMTIgMi4xM2g0LjM5Wm0xLjY0LTEwLjIzTDE2LjM4IDlhMi4xNSAyLjE1IDAgMCAxLTIgMy42bC0uNTYtLjEzLS4wNi41NmMtLjA3LjU2LS41NC45OS0xLjEyLjk5aC0xLjYydi0uMUMxMSAxMi43OCA5Ljk5IDEyIDguODkgMTJINy41YS41LjUgMCAwIDAgMCAxaDEuMzljLjY5IDAgMS4xMi40NiAxLjEyLjkxdi4xSDYuMTJjLS42MiAwLTEuMTItLjUtMS4xMi0xLjEzdi0xLjMzQTIuNTUgMi41NSAwIDAgMSA3LjU0IDloMy42OGMuMjMgMCAuNDYuMDMuNjguMWwuNDIuMTEuMTgtLjRjLjEtLjI2LjI2LS41Ny40Ny0uNzlsLjUtLjQ4LTIuMDQtMi4wMmEuNTIuNTIgMCAwIDEgMC0uNzRjLjItLjIuNTItLjIuNzIgMFptLTYuNSAzLjc3YTMuNTUgMy41NSAwIDAgMC0xLjYgMi4zOCAxLjUgMS41IDAgMSAxIDEuNi0yLjM4WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsUmFiYml0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xNS41MyA1LjQ0IDUuNDMgNS40M2EzLjU4IDMuNTggMCAwIDEtMy4zNSA2VjE3YTIgMiAwIDAgMS0yIDJoLTIuMXYtLjc1bC0uMDEtLjE3YTIuNzUgMi43NSAwIDAgMC0yLjU3LTIuNThIOS42NmEuNzUuNzUgMCAwIDAgMCAxLjVIMTAuODdjLjYuMDcgMS4wNi41MyAxLjEyIDEuMTJWMTlIN2EyIDIgMCAwIDEtMi0ydi0yLjVjMC0uMi4wMi0uMzkuMDQtLjU3YTIuNSAyLjUgMCAxIDEgMS44Ny0zLjEyQTQuNDYgNC40NiAwIDAgMSA5LjUgMTBoMy42Yy42IDAgMS4xOC4xMSAxLjcxLjMzLjE2LS4yOC4zNi0uNTQuNi0uNzhsLTItMmExLjUgMS41IDAgMCAxIDIuMTEtMi4xWlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcuNzUgMTlhMi43NSAyLjc1IDAgMCAxLTIuNzQtMi41OEw1IDE2LjI1VjE1YTMgMyAwIDEgMSAyLjU2LTQuNTZjLjUxLS4yNSAxLjA4LS40IDEuNjgtLjQzTDkuNSAxMGg0LjI1bC4yNC4wMy4xMy4wMS4xMS0uMTYuMTMtLjE4LTEuNzgtMS43OGEyIDIgMCAwIDEtLjIyLTIuNTdsLjEtLjEzLjEyLS4xM2EyIDIgMCAwIDEgMi43LS4xMmwuMTQuMTIgNS40IDUuNDFhNCA0IDAgMCAxLTIuNjMgNi44M0gxNy43OGwtLjAzLjA2YTIuNzUgMi43NSAwIDAgMS0yLjE0IDEuNTlsLS4xOS4wMS0uMTcuMDFoLTcuNVptNi42LTEyLjg1YS41LjUgMCAwIDAtLjc2LjY0bC4wNS4wNyAyLjgxIDIuODEtLjY0LjY0Yy0uMi4yMS0uMzguNDUtLjUyLjdsLS4xLjE5LS4yNi41OC0uNjItLjE3Yy0uMi0uMDUtLjQtLjA5LS42LS4xbC0uMjEtLjAxaC00Yy0uNyAwLTEuMzQuMjQtMS44NS42NGwtLjE1LjEyLS4xNi4xNi0uMS4xLS4xLjEzLS4xMy4xNy0uMDQuMDYtLjExLjItLjA2LjExLS4wNi4xNC0uMDQuMDgtLjA1LjE1LS4wNS4xOC0uMDYuMy0uMDIuMDgtLjAxLjE5LS4wMS4xOXYxLjc1YzAgLjY1LjUgMS4xOCAxLjEyIDEuMjRsLjEzLjAxSDEydi0uMjVjMC0uNjQtLjQ5LTEuMTgtMS4xMi0xLjI0SDkuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjFhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi41OFYxNy41aDEuNzVjLjYgMCAxLjEtLjQxIDEuMjItLjk4bC4wMi0uMTIuMS0uODQuODIuMmEyLjUgMi41IDAgMCAwIDIuNDgtNC4wN2wtLjEyLS4xMy01LjQxLTUuNFpNNSAxMC41YTEuNSAxLjUgMCAwIDAtLjE0IDNoLjI1di0uMDNsLjE0LS40NC4xLS4yNS4xLS4yNC4wNS0uMTEuMTQtLjI0LjA4LS4xNC4xNS0uMi4wNy0uMS4xMS0uMTQuMTMtLjE1LjE1LS4xNWExLjUgMS41IDAgMCAwLTEuMDQtLjc4bC0uMTUtLjAyTDUgMTAuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJtMTguMTggNS41NSA2LjU2IDYuNTZhNC4zIDQuMyAwIDAgMS00LjA0IDcuMjN2LjI1QTIuNDIgMi40MiAwIDAgMSAxOC4zIDIySDE1LjV2LS44M0EzLjE3IDMuMTcgMCAwIDAgMTIuMzQgMThoLTEuNmEuNzUuNzUgMCAwIDAgMCAxLjVoMS42Yy45MSAwIDEuNjYuNzUgMS42NiAxLjY3VjIySDcuNEEyLjQgMi40IDAgMCAxIDUgMTkuNnYtMy4xNWMwLS4yNC4wMS0uNDcuMDQtLjdsLS4xNy4wMWEyLjg4IDIuODggMCAxIDEgMi42OC0zLjkzIDUuMzkgNS4zOSAwIDAgMSAyLjg3LS44Mmg0Ljg1Yy43MyAwIDEuNDIuMTQgMi4wNi40LjItLjMzLjQzLS42MS43Mi0uOWwtMi40LTIuNGExLjggMS44IDAgMSAxIDIuNTMtMi41NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxSYWJiaXQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIm0xNyAxMC43Ny0xLjkyLTEuODlhMi4yNyAyLjI3IDAgMSAxIDMuMjEtMy4yMWw2LjMzIDYuMjlhNC43IDQuNyAwIDAgMS0zLjcgOCAzLjE4IDMuMTggMCAwIDEtMi45NyAyLjA1SDkuMkEzLjE5IDMuMTkgMCAwIDEgNiAxOC44M3YtMS44NmEzLjUgMy41IDAgMSAxIDIuNTUtNS4xOSA1LjMgNS4zIDAgMCAxIDIuNzctLjc4aDQuNWMuMzEgMCAuNjEuMDMuOS4wOGwuMjgtLjNabS4yMy00LjA0YS43Ny43NyAwIDAgMC0xLjEgMS4wOWguMDFMMTkuMzYgMTFsLTEgLjU4Yy0uMjUuMTUtLjUxLjQ2LS42NS43bC0uMjkuNTItLjU3LS4xNmMtLjMyLS4wOS0uNjctLjE0LTEuMDMtLjE0aC00LjVjLTIuMSAwLTMuODIgMS43LTMuODIgMy44djIuNTNjMCAuOTIuNzYgMS42OCAxLjcgMS42OEgxNHYtLjMzYzAtLjkyLS43NS0xLjY4LTEuNjgtMS42OGgtMS41N2EuNzUuNzUgMCAwIDEgMC0xLjVoMS41N2EzLjE4IDMuMTggMCAwIDEgMy4xOCAzLjE4di4zM2gyLjQ1Yy44NiAwIDEuNTctLjY1IDEuNjctMS40OGwuMS0uODQuODIuMmEzLjIgMy4yIDAgMCAwIDMuMDItNS4zN2wtNi4zMy02LjNabS05Ljg3IDYuMDRhMiAyIDAgMSAwLTEuMjkgMi42NWMuMTgtMS4wMS42My0xLjkyIDEuMy0yLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsUmFiYml0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNi4zNCA0LjkyYTMgMyAwIDAgMSA0LjMyIDBsNy4xNyA3LjQ2QTUuOTkgNS45OSAwIDAgMSAyNC4xMSAyM2E0IDQgMCAwIDEtNCA0SDE4di0yLjVhNC41IDQuNSAwIDAgMC00LjUtNC41SDEyYTEgMSAwIDEgMCAwIDJoMS41YTIuNSAyLjUgMCAwIDEgMi41IDIuNVYyN2gtNWE1IDUgMCAwIDEtNS01di0yLjFhNSA1IDAgMSAxIDUtNy45aDYuNmMuMTQtLjI2LjMtLjUyLjQ3LS43NmwtMS45LTIuMzVhMyAzIDAgMCAxIC4xNy0zLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExIDEyaDYuNmMuMTQtLjI2LjMtLjUyLjQ3LS43NmwtMS45LTIuMzVhMyAzIDAgMCAxIDQuNDktMy45N2w3LjE3IDcuNDZBNS45OSA1Ljk5IDAgMCAxIDI0LjExIDIzYTQgNCAwIDAgMS00IDRIMTFhNSA1IDAgMCAxLTUtNXYtMi4xYTUgNSAwIDEgMSA1LTcuOVptOC4yMi01LjY5YTEgMSAwIDAgMC0xLjUgMS4zM2wzIDMuNy0uNjUuNjRhMy41IDMuNSAwIDAgMC0uODcgMS4zNWwtLjI0LjY3aC03LjA5QTQgNCAwIDAgMCA4IDE4djRhMyAzIDAgMCAwIDMgM2g1di0uNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTJhMSAxIDAgMSAxIDAtMmgxLjVhNC41IDQuNSAwIDAgMSA0LjUgNC41di41aDIuMWEyIDIgMCAwIDAgMi0ydi0yLjI4bDEuMTguMjJhNCA0IDAgMCAwIDMuMjQtNy4wNGwtLjA1LS4wNC03LjI1LTcuNTVaTTYgMTcuODNhNiA2IDAgMCAxIDMuMDMtNS4wNEEzIDMgMCAxIDAgNiAxNy44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdE9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w3LjMgOC4wMWMtLjQ0LjAyLS44Ni4xMy0xLjI1LjNBMi4xMiAyLjEyIDAgMSAwIDQgMTEuMjJ2Mi4yMUM0IDE0LjMgNC43IDE1IDUuNTYgMTVIMTB2LTEuMjVjMC0uMTYtLjA4LS4zNC0uMjgtLjQ5LS4yLS4xNS0uNDktLjI2LS44Mi0uMjZINy41YS41LjUgMCAwIDEgMC0xaDEuNGMuNTQgMCAxLjA1LjE3IDEuNDMuNDcuMzkuMy42Ny43NC42NyAxLjI4VjE1aDEuNzRjLjQzIDAgLjgyLS4xOCAxLjEtLjQ1bDMuMyAzLjNhLjUuNSAwIDAgMCAuNzEtLjdsLTE1LTE1Wm0xNC4wNiAxMC4zOWMtLjQyLjQyLS45NC42Ny0xLjQ4Ljc3bC01LjMtNS4zaC42N2MuNDcgMCAuOTIuMDkgMS4zMy4yNWwuMDgtLjEzYy4xMS0uMTkuMjMtLjQuMzgtLjU1bC0xLjU1LTEuNTZhMS4xNiAxLjE2IDAgMSAxIDEuNjQtMS42NGw0LjIzIDQuMjNhMi43OCAyLjc4IDAgMCAxIDAgMy45M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdE9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxSYWJiaXRPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDcuMyA4LjAxYy0uMjQuMDItLjQ4LjA2LS43LjEyQTIuNSAyLjUgMCAxIDAgNCAxMS45NXYuOTNjMCAxLjE4Ljk1IDIuMTMgMi4xMiAyLjEzaDYuNTFjLjQ3IDAgLjktLjE1IDEuMjYtLjQxbDMuMjYgMy4yNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptMTAuMzIgMTEuNzNjLS4xNi4wOC0uMzQuMTMtLjU0LjEzaC0xLjYydi0uMUMxMSAxMi43OCA5Ljk5IDEyIDguODkgMTJINy41YS41LjUgMCAwIDAgMCAxaDEuMzljLjY5IDAgMS4xMi40NiAxLjEyLjkxdi4xSDYuMTJjLS42MiAwLTEuMTItLjUtMS4xMi0xLjEzdi0xLjMzQTIuNTUgMi41NSAwIDAgMSA3LjU0IDloLjc1bDQuODggNC44OFpNNS42NiA4LjU0YTMuNTUgMy41NSAwIDAgMC0xLjYgMi4zOCAxLjUgMS41IDAgMSAxIDEuNi0yLjM4Wm0xMC43MSAzLjQ4Yy0uNDQuNDQtMS4wMi42NS0xLjYuNjJsLjkuOWEzLjE1IDMuMTUgMCAwIDAgMS40MS01LjI2bC00LjIyLTQuMjJjLS41OS0uNTktMS41NS0uNTktMi4xNCAwLS42LjYtLjYgMS41NiAwIDIuMTVsMS4zNCAxLjMzYy0uMTIuMTYtLjIyLjMzLS4zLjVhMy41NSAzLjU1IDAgMCAwLS41NC0uMDVoLTEuMWwxIDFoLjFjLjIzIDAgLjQ2LjAzLjY4LjFsLjQyLjExLjE4LS40Yy4xLS4yNi4yNi0uNTcuNDctLjc5bC41LS40OC0yLjA0LTIuMDJhLjUyLjUyIDAgMCAxIDAtLjc0Yy4yLS4yLjUyLS4yLjcyIDBMMTYuMzggOWMuODQuODQuODQgMi4yIDAgMy4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFJhYmJpdE9mZjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdE9mZjMyRmlsbGVkJywgXCIzMlwiLCBbXCJtMjMuNTggMjQuOTkgNC43MSA0LjcyYTEgMSAwIDAgMCAxLjQyLTEuNDJsLTI2LTI2YTEgMSAwIDAgMC0xLjQyIDEuNDJMOSAxMC40QTQuOTggNC45OCAwIDAgMCAyIDE1YTUgNSAwIDAgMCA0IDQuOVYyMmE1IDUgMCAwIDAgNSA1aDV2LTIuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTJhMSAxIDAgMSAxIDAtMmgxLjVhNC41IDQuNSAwIDAgMSA0LjUgNC41VjI3aDIuMWE0IDQgMCAwIDAgMy40OC0yLjAxWk0zMCAxN2E2IDYgMCAwIDEtMy44NiA1LjZMMTUuNTQgMTJoMi4wNmMuMTMtLjI3LjMtLjUyLjQ3LS43NmwtMS45LTIuMzVhMyAzIDAgMCAxIDQuNDktMy45N2w3LjE3IDcuNDZBNS45OSA1Ljk5IDAgMCAxIDMwIDE3WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsUmFiYml0T2ZmMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFJhYmJpdE9mZjMyUmVndWxhcicsIFwiMzJcIiwgW1wibTIzLjU4IDI0Ljk5IDQuNzEgNC43MmExIDEgMCAwIDAgMS40Mi0xLjQybC0yNi0yNmExIDEgMCAwIDAtMS40MiAxLjQyTDkgMTAuNEE0Ljk4IDQuOTggMCAwIDAgMiAxNWE1IDUgMCAwIDAgNCA0LjlWMjJhNSA1IDAgMCAwIDUgNWg5LjFhNCA0IDAgMCAwIDMuNDgtMi4wMVptLTEuNTMtMS41MkEyIDIgMCAwIDEgMjAuMTEgMjVIMTh2LS41YTQuNSA0LjUgMCAwIDAtNC41LTQuNUgxMmExIDEgMCAxIDAgMCAyaDEuNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2LjVoLTVhMyAzIDAgMCAxLTMtM3YtNGE0IDQgMCAwIDEgMy44Ni00aC43M2w5LjQ2IDkuNDZaTTYgMTcuODJhMyAzIDAgMSAxIDMuMDItNS4wNEE2IDYgMCAwIDAgNiAxNy44M1pNMjggMTdhNCA0IDAgMCAxLTMuNSAzLjk3bDEuNjQgMS42NGE2IDYgMCAwIDAgMS43LTEwLjIzbC03LjE4LTcuNDZhMyAzIDAgMCAwLTQuNSAzLjk3bDEuOSAyLjM1Yy0uMTcuMjQtLjMzLjUtLjQ2Ljc2aC0yLjA2bDIgMmgxLjQybC4yNC0uNjdjLjE4LS41MS40OC0uOTcuODctMS4zNWwuNjUtLjYzLTMtMy43MmExIDEgMCAwIDEgMS41LTEuMzJsNy4yNSA3LjU1LjA1LjAzYy45Ljc0IDEuNDggMS44NiAxLjQ4IDMuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBbmltYWxUdXJ0bGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxUdXJ0bGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcuMzQgMy45OWMtMS44NSAwLTMuMDMgMS4zMS0zLjQ4IDIuOEwzLjggN0gyLjVhLjUuNSAwIDAgMC0uNS41YzAgLjcuMTkgMS4zMy41MiAxLjgyLjEyLjE3LjI2LjMzLjQxLjQ2bC0uMy43MkExLjEgMS4xIDAgMCAwIDMuNjYgMTJoMS4wN2MuNDIgMCAuODEtLjI0IDEtLjYzbC4zLS42NGMuOS4xMiAxLjgzLjEyIDIuNzQgMGwuMy42NGMuMTguMzkuNTcuNjMgMSAuNjNoMS4wNmExLjEgMS4xIDAgMCAwIDEtMS41bC0uMi0uNWguOTdjLjYyIDAgMS4xMS0uNTIgMS4xMS0xLjEzdi0uNjJjMC0uOTQtLjczLTEuNzUtMS42OS0xLjc1aC0xLjQ2YTMuNzYgMy43NiAwIDAgMC0zLjUtMi41MVpNMTEuNiA5bC0uNDQtMS41aDEuMTZjLjM2IDAgLjcuMzEuNy43NXYuNjJjMCAuMDMtLjAyLjA3LS4wNS4xTDEyLjkgOWgtMS4zWm0tMS44MSAxLjU1Yy4zOS0uMS43Ny0uMiAxLjE1LS4zM2wuMjcuNjVhLjEuMSAwIDAgMS0uMDguMTNoLTEuMDdhLjEuMSAwIDAgMS0uMDgtLjA1bC0uMi0uNFptLTUuOTUtLjM0Yy4zOC4xNC43Ny4yNSAxLjE2LjM0bC0uMTguNGEuMS4xIDAgMCAxLS4wOS4wNUgzLjY1YS4xLjEgMCAwIDEtLjA5LS4xM2wuMjctLjY2Wk0zLjUgOGwtLjIuNjdjLS4xMi0uMTktLjItLjQyLS4yNi0uNjdoLjQ2WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsVHVydGxlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFR1cnRsZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcuMzQgMy45OWMtMS44NSAwLTMuMDMgMS4zMS0zLjQ4IDIuOEwzLjggN0gyLjVhLjUuNSAwIDAgMC0uNS41YzAgLjcuMTkgMS4zMy41MiAxLjgyLjEyLjE3LjI2LjMzLjQxLjQ2bC0uMy43MkExLjEgMS4xIDAgMCAwIDMuNjYgMTJoMS4wN2MuNDIgMCAuODEtLjI0IDEtLjYzbC4zLS42NGMuOS4xMiAxLjgzLjEyIDIuNzQgMGwuMy42NGMuMTguMzkuNTcuNjMgMSAuNjNoMS4wNmExLjEgMS4xIDAgMCAwIDEtMS41bC0uMi0uNWguOTdjLjYyIDAgMS4xMS0uNTIgMS4xMS0xLjEzdi0uNjJjMC0uOTQtLjczLTEuNzUtMS42OS0xLjc1aC0xLjQ2YTMuNzYgMy43NiAwIDAgMC0zLjUtMi41MVpNMTEuNiA5bC0uNDQtMS41aDEuMTZjLjM2IDAgLjcuMzEuNy43NXYuNjJjMCAuMDMtLjAyLjA3LS4wNS4xTDEyLjkgOWgtMS4zWm0tLjY2IDEuMjIuMjcuNjVhLjEuMSAwIDAgMS0uMDguMTNoLTEuMDdhLjEuMSAwIDAgMS0uMDgtLjA1bC0uMi0uNGMuNC0uMS43OC0uMiAxLjE2LS4zM1pNNSAxMC41NWwtLjE4LjRhLjEuMSAwIDAgMS0uMDkuMDVIMy42NWEuMS4xIDAgMCAxLS4wOS0uMTNsLjI3LS42NmMuMzguMTQuNzcuMjUgMS4xNi4zNFpNMy41IDhsLS4yLjY3Yy0uMS0uMTktLjItLjQyLS4yNS0uNjdoLjQ2Wm0xLjMzLS45MWMuMzYtMS4yMiAxLjI0LTIuMSAyLjUyLTIuMSAxLjMgMCAyLjMuOSAyLjY1IDIuMWwuNjMgMi4xN2MtMi4xLjc0LTQuMzYuNzQtNi40NiAwbC42Ni0yLjE3WlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsVHVydGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsVHVydGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05LjEgNGMtMS40NyAwLTIuNS41NS0zLjIxIDEuMzhhNy41IDcuNSAwIDAgMC0xLjM2IDIuNzdMNC4yNyA5SDIuNWEuNS41IDAgMCAwLS41LjVjMCAxLjA4LjUgMi4xIDEuMyAyLjYzbC0uNDQgMS4wN2ExLjMxIDEuMzEgMCAwIDAgMS4yIDEuODFoMS40N2MuNSAwIC45Ny0uMyAxLjE5LS43NWwuNDctMWMxLjMxLjE4IDIuNjQuMTggMy45NSAwbC40OCAxYy4yMS40Ni42Ny43NSAxLjE4Ljc1aDEuNDVhMS4zMSAxLjMxIDAgMCAwIDEuMjEtMS44bC0uNS0xLjIxaDEuN2MuNjggMCAxLjM0LS41MiAxLjM0LTEuMjZWMTBjMC0xLjE0LS45OS0yLTIuMTItMkgxMy44YTYuOSA2LjkgMCAwIDAtMS40LTIuNjNBNC4yOCA0LjI4IDAgMCAwIDkuMSA0Wm01LjU3IDctLjU3LTJoMS43OGMuNjYgMCAxLjEyLjQ5IDEuMTIgMXYuNzRjMCAuMDktLjExLjI2LS4zMy4yNmgtMlptLTIuNSAyLjA4Yy42NS0uMTQgMS4zLS4zMiAxLjkzLS41NWwuNDQgMS4wNWEuMzEuMzEgMCAwIDEtLjI5LjQzSDEyLjhhLjMxLjMxIDAgMCAxLS4yOC0uMThsLS4zNS0uNzVabS03Ljk1LS41NWMuNjQuMjMgMS4yOS40MSAxLjk1LjU1bC0uMzYuNzVhLjMxLjMxIDAgMCAxLS4yOC4xOEg0LjA3YS4zLjMgMCAwIDEtLjI5LS40M2wuNDQtMS4wNVpNMy45NyAxMGwtLjM0IDEuMTJjLS4yNy0uMjYtLjUtLjY1LS41OC0xLjEyaC45MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFR1cnRsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxUdXJ0bGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjEgNGMtMS40NyAwLTIuNS41NS0zLjIxIDEuMzhhNy41IDcuNSAwIDAgMC0xLjM2IDIuNzdMNC4yNyA5SDIuNWEuNS41IDAgMCAwLS41LjVjMCAxLjA4LjUgMi4xIDEuMyAyLjYzbC0uNDQgMS4wN2ExLjMxIDEuMzEgMCAwIDAgMS4yIDEuODFoMS40N2MuNSAwIC45Ny0uMyAxLjE5LS43NWwuNDctMWMxLjMxLjE4IDIuNjQuMTggMy45NSAwbC40OCAxYy4yMS40Ni42Ny43NSAxLjE4Ljc1aDEuNDVhMS4zMSAxLjMxIDAgMCAwIDEuMjEtMS44bC0uNS0xLjIxaDEuN2MuNjggMCAxLjM0LS41MiAxLjM0LTEuMjZWMTBjMC0xLjE0LS45OS0yLTIuMTItMkgxMy44YTYuOSA2LjkgMCAwIDAtMS40LTIuNjNBNC4yOCA0LjI4IDAgMCAwIDkuMSA0Wm01LjU3IDctLjU3LTJoMS43OGMuNjYgMCAxLjEyLjQ5IDEuMTIgMXYuNzRjMCAuMDktLjExLjI2LS4zMy4yNmgtMlptLS41NyAxLjUzLjQ0IDEuMDVhLjMxLjMxIDAgMCAxLS4yOS40M0gxMi44YS4zMS4zMSAwIDAgMS0uMjgtLjE4bC0uMzUtLjc1Yy42NS0uMTQgMS4zLS4zMiAxLjkzLS41NVptLTcuOTMuNTUtLjM2Ljc1YS4zMS4zMSAwIDAgMS0uMjguMThINC4wN2EuMzEuMzEgMCAwIDEtLjI5LS40M2wuNDQtMS4wNWMuNjQuMjMgMS4yOS40MSAxLjk1LjU1Wm0tMi41NC0xLjk2Yy0uMjctLjI2LS41LS42NS0uNTgtMS4xMmguOTJsLS4zNCAxLjEyWk01LjUgOC40NGMuMjctLjkxLjYtMS43NyAxLjE1LTIuNEEzLjAzIDMuMDMgMCAwIDEgOS4xIDVjMS4yIDAgMiAuNDMgMi41NiAxLjA1LjU5LjYzLjk2IDEuNSAxLjIzIDIuMzlsLjkgMy4xM2MtMyAxLjEtNi4yNSAxLjEtOS4yNSAwbC45NS0zLjEzWlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsVHVydGxlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQW5pbWFsVHVydGxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMSA2YTYuMTQgNi4xNCAwIDAgMSA1LjggNC4xMmwuMDcuMjQuMDUuMTRoMi4zM2EyLjc1IDIuNzUgMCAwIDEgMi43NCAyLjU4djEuMTdjMCAuOTItLjcgMS42Ny0xLjYgMS43NGgtMS43N2wuMjQuNmMuMzUuODQtLjAxIDEuOC0uODEgMi4yMWwtLjE0LjA3Yy0uMTYuMDYtLjMyLjEtLjUuMTJoLTEuOTVjLS42MyAwLTEuMi0uMzMtMS41MS0uODZsLS4wOC0uMTQtLjUzLTEuMTRoLjA1Yy0xLjQuMTgtMi44Mi4yLTQuMjIuMDZsLS41LS4wNkw4LjE0IDE4Yy0uMy42MS0uOSAxLTEuNTkgMWgtMS44YTEuNzUgMS43NSAwIDAgMS0xLjYyLTIuNDFsLjQ0LTEuMDVBMy4yNCAzLjI0IDAgMCAxIDIgMTIuNzVjMC0uMzguMjgtLjcuNjQtLjc0bC4xLS4wMWgxLjg5bC41LTEuNjRBNi4xNCA2LjE0IDAgMCAxIDExIDZabTYuNzcgOS43Yy0uNzcuMy0xLjU1LjU2LTIuMzUuNzZsLS41NS4xMy4zNi43N2MuMDMuMDUuMDcuMDkuMTIuMTFsLjA1LjAyaDEuODRhLjI1LjI1IDAgMCAwIC4yNS0uMjdsLS4wMi0uMDdMMTcgMTZoLS4wNWwuNDItLjE1LjQtLjE2Wm0tMTMuNTUgMCAuNC4xNC4zOC4xNC0uNDggMS4xN2EuMjUuMjUgMCAwIDAgLjIzLjM0aDEuODZhLjI1LjI1IDAgMCAwIC4xNy0uMTRsLjM2LS43NmguMDRjLTEtLjItMi0uNTEtMi45Ni0uOVptLS4yLTEuNy4xNS0uNWgtLjVsLjAyLjA1Yy4wOS4xNy4yLjMyLjMzLjQ1Wm0xMy4zNS0yIC43NiAyLjVoMi4xMmMuMTEgMCAuMjEtLjA4LjI0LS4ydi0xLjA1YzAtLjY1LS40OS0xLjE4LTEuMTItMS4yNGgtLjEyTDE3LjM3IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQW5pbWFsVHVydGxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFR1cnRsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExIDZhNi4xNCA2LjE0IDAgMCAxIDUuOCA0LjEybC4wNy4yNC4wNS4xNGgyLjMzYTIuNzUgMi43NSAwIDAgMSAyLjc0IDIuNTh2MS4xN2MwIC45Mi0uNyAxLjY3LTEuNiAxLjc0aC0xLjc3bC4yNC42Yy4zNS44NC0uMDEgMS44LS44MSAyLjIxbC0uMTQuMDdjLS4xNi4wNi0uMzIuMS0uNS4xMmgtMS45NWMtLjYzIDAtMS4yLS4zMy0xLjUxLS44NmwtLjA4LS4xNC0uNTMtMS4xNGguMDVjLTEuNC4xOC0yLjgyLjItNC4yMi4wNmwtLjUtLjA2TDguMTQgMThjLS4zLjYxLS45IDEtMS41OSAxaC0xLjhhMS43NSAxLjc1IDAgMCAxLTEuNjItMi40MWwuNDQtMS4wNUEzLjI0IDMuMjQgMCAwIDEgMiAxMi43NWMwLS4zOC4yOC0uNy42NC0uNzRsLjEtLjAxaDEuODlsLjUtMS42NEE2LjE0IDYuMTQgMCAwIDEgMTEgNlptNi43NyA5LjdjLS43Ny4zLTEuNTUuNTYtMi4zNS43NmwtLjU1LjEzLjM2Ljc3Yy4wMy4wNS4wNy4wOS4xMi4xMWwuMDUuMDJoMS44NGEuMjUuMjUgMCAwIDAgLjI1LS4yN2wtLjAyLS4wN0wxNyAxNmgtLjA1bC40Mi0uMTUuNC0uMTZabS0xMy41NSAwIC40LjE0LjM4LjE0LS40OCAxLjE3YS4yNS4yNSAwIDAgMCAuMjMuMzRoMS44NmEuMjUuMjUgMCAwIDAgLjE3LS4xNGwuMzYtLjc2aC4wNGMtMS0uMi0yLS41MS0yLjk2LS45Wk0xMSA3LjVhNC42NCA0LjY0IDAgMCAwLTQuMzcgMy4wOGwtLjA3LjIxLTEuMTQgMy43NS4xNy4wNmExNi42NyAxNi42NyAwIDAgMCAxMC40MS4xM2wuNDEtLjEzLjE2LS4wNi0xLjEzLTMuNzVhNC42NCA0LjY0IDAgMCAwLTQtMy4yN2wtLjIzLS4wMkgxMVpNNC4wMiAxNGwuMTUtLjVoLS41bC4wMi4wNWMuMDkuMTcuMi4zMi4zMy40NVptMTMuMzUtMiAuNzYgMi41aDIuMTJjLjExIDAgLjIxLS4wOC4yNC0uMnYtMS4wNWMwLS42NS0uNDktMS4xOC0xLjEyLTEuMjRoLS4xMkwxNy4zNyAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFR1cnRsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FuaW1hbFR1cnRsZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTIuNzIgNWMtMi4xNyAwLTMuNy42Ni00LjgyIDEuNzZhOS4xNSA5LjE1IDAgMCAwLTIuMSAzLjkzTDUuMSAxM0gyLjc1YS43NS43NSAwIDAgMC0uNzUuNzVjMCAxLjM1Ljc3IDIuNDkgMS44NyAzLjFsLS41OCAxLjQzQTEuOTcgMS45NyAwIDAgMCA1LjEgMjFoMi4yYy43NiAwIDEuNDUtLjQ0IDEuNzgtMS4xM2wuNy0xLjVjMS45Ny4yNyAzLjk3LjI3IDUuOTQgMGwuNyAxLjVBMS45NyAxLjk3IDAgMCAwIDE4LjIgMjFoMi4xN2ExLjk2IDEuOTYgMCAwIDAgMS44Mi0yLjcyTDIxLjY2IDE3SDI0YzEuMDEgMCAyLS43OCAyLTEuODlWMTRjMC0xLjctMS40OC0zLTMuMTgtM2gtMi45NWwtLjEtLjNhOC45MyA4LjkzIDAgMCAwLTIuMTctMy45NUMxNi40NiA1LjY1IDE0Ljg5IDUgMTIuNzIgNVptOC41IDEwLjUtLjktM2gyLjVjLjk4IDAgMS42OC43MyAxLjY4IDEuNXYxLjExYzAgLjE0LS4xNy4zOS0uNS4zOWgtMi43N1ptLTMuOTYgMi42MWMuOTgtLjIgMS45NS0uNDcgMi45LS44MmwuNjQgMS41NmEuNDcuNDcgMCAwIDEtLjQzLjY1SDE4LjJhLjQ3LjQ3IDAgMCAxLS40Mi0uMjdsLS41Mi0xLjEyWm0tMTEuNzMtLjc3Yy45LjMxIDEuOC41NiAyLjcyLjc2bC0uNTMgMS4xM2EuNDcuNDcgMCAwIDEtLjQyLjI3SDUuMWEuNDcuNDcgMCAwIDEtLjQzLS42NWwuNjQtMS41My4yMi4wMlptLS44OC0yLjg0LS4yNy45YTIuMTQgMi4xNCAwIDAgMS0uNzMtLjloMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFuaW1hbFR1cnRsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBbmltYWxUdXJ0bGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMi43MiA1Yy0yLjE3IDAtMy43LjY2LTQuODIgMS43NmE5LjE1IDkuMTUgMCAwIDAtMi4xIDMuOTNMNS4xIDEzSDIuNzVhLjc1Ljc1IDAgMCAwLS43NS43NWMwIDEuMzUuNzcgMi40OSAxLjg3IDMuMWwtLjU4IDEuNDNBMS45NyAxLjk3IDAgMCAwIDUuMSAyMWgyLjJjLjc2IDAgMS40NS0uNDQgMS43OC0xLjEzbC43LTEuNWMxLjk3LjI3IDMuOTcuMjcgNS45NCAwbC43IDEuNUExLjk3IDEuOTcgMCAwIDAgMTguMiAyMWgyLjE3YTEuOTYgMS45NiAwIDAgMCAxLjgyLTIuNzJMMjEuNjYgMTdIMjRjMS4wMSAwIDItLjc4IDItMS44OVYxNGMwLTEuNy0xLjQ4LTMtMy4xOC0zaC0yLjk1bC0uMS0uM2E4LjkzIDguOTMgMCAwIDAtMi4xNy0zLjk1QzE2LjQ2IDUuNjUgMTQuODkgNSAxMi43MiA1Wm04LjUgMTAuNS0uOS0zaDIuNWMuOTggMCAxLjY4LjczIDEuNjggMS41djEuMTFjMCAuMTQtLjE3LjM5LS41LjM5aC0yLjc3Wm0tMS4wNiAxLjguNjQgMS41NWEuNDcuNDcgMCAwIDEtLjQzLjY1SDE4LjJhLjQ3LjQ3IDAgMCAxLS40Mi0uMjdsLS41Mi0xLjEyYy45OC0uMiAxLjk1LS40NyAyLjktLjgyWm0tMTEuOS44LS41NCAxLjEzYS40Ny40NyAwIDAgMS0uNDIuMjdINS4xYS40Ny40NyAwIDAgMS0uNDMtLjY1bC42NC0xLjUzLjIyLjAyYy45LjMxIDEuOC41NiAyLjcyLjc2Wm0tMy42MS0zLjYtLjI3LjlhMi4xNCAyLjE0IDAgMCAxLS43My0uOWgxWm0yLjU4LTMuMzdhNy43IDcuNyAwIDAgMSAxLjczLTMuM2MuNzktLjc5IDEuOTMtMS4zMyAzLjc2LTEuMzMgMS44NCAwIDMuMDIuNTQgMy44NCAxLjMzYTcuNDYgNy40NiAwIDAgMSAxLjc4IDMuM2wxLjQzIDQuNzFhMjAuNCAyMC40IDAgMCAxLTEzLjk2IDBsMS40Mi00LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwRm9sZGVyMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01IDRhMSAxIDAgMCAwLTEgMXYxLjVhMSAxIDAgMCAwIDEgMWgxLjVhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINVptMCA0LjVhMSAxIDAgMCAwLTEgMVYxMWExIDEgMCAwIDAgMSAxaDEuNWExIDEgMCAwIDAgMS0xVjkuNWExIDEgMCAwIDAtMS0xSDVaTTkuNSA0YTEgMSAwIDAgMC0xIDF2MS41YTEgMSAwIDAgMCAxIDFIMTFhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFIOS41Wm0wIDQuNWExIDEgMCAwIDAtMSAxVjExYTEgMSAwIDAgMCAxIDFIMTFhMSAxIDAgMCAwIDEtMVY5LjVhMSAxIDAgMCAwLTEtMUg5LjVaTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1pNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBGb2xkZXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDVhMSAxIDAgMCAxIDEtMWgxLjVhMSAxIDAgMCAxIDEgMXYxLjVhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWNVptMi41IDBINXYxLjVoMS41VjVaTTUgOC41YTEgMSAwIDAgMC0xIDFWMTFhMSAxIDAgMCAwIDEgMWgxLjVhMSAxIDAgMCAwIDEtMVY5LjVhMSAxIDAgMCAwLTEtMUg1Wm0wIDFoMS41VjExSDVWOS41Wk04LjUgNWExIDEgMCAwIDEgMS0xSDExYTEgMSAwIDAgMSAxIDF2MS41YTEgMSAwIDAgMS0xIDFIOS41YTEgMSAwIDAgMS0xLTFWNVpNMTEgNUg5LjV2MS41SDExVjVaTTkuNSA4LjVhMSAxIDAgMCAwLTEgMVYxMWExIDEgMCAwIDAgMSAxSDExYTEgMSAwIDAgMCAxLTFWOS41YTEgMSAwIDAgMC0xLTFIOS41Wm0wIDFIMTFWMTFIOS41VjkuNVpNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwRm9sZGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY2Wm0wIDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMlptNi02YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xVjZabTAgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMXYtMlpNMiA1YTMgMyAwIDAgMSAzLTNoMTBhMyAzIDAgMCAxIDMgM3YxMGEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y1Wm0zLTJhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBGb2xkZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSA2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNlptMyAwSDZ2MmgyVjZabS0zIDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMlptMyAwSDZ2Mmgydi0yWm00LTdhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMlptMCAxaDJ2MmgtMlY2Wm0tMSA2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xdi0yWm0zIDBoLTJ2Mmgydi0yWk01IDJhMyAzIDAgMCAwLTMgM3YxMGEzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWNWEzIDMgMCAwIDAtMy0zSDVaTTMgNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcEZvbGRlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEuNSAxNC4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTJjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djJjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMmMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJabTYuNSAwYzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMmMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MmMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyYy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMlptLTYuNS02LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0yQzYuNzggNiA2IDYuNzggNiA3Ljc1djJjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMmMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJabTYuNSAwQzE4IDYuNzggMTcuMiA2IDE2LjI1IDZoLTJjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djJjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMmMuOTYgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJaTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBGb2xkZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS41IDE0LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMmMtLjk2IDAtMS43NS43OC0xLjc1IDEuNzV2MkM2IDE3LjIyIDYuOCAxOCA3Ljc1IDE4aDJjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0yWk03Ljc1IDE0aDJjLjE0IDAgLjI1LjExLjI1LjI1djJjMCAuMTQtLjExLjI1LS4yNS4yNWgtMmEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMmMwLS4xNC4xMS0uMjUuMjUtLjI1Wm0xMC4yNS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTJjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djJjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMmMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJaTTE0LjI1IDE0aDJjLjE0IDAgLjI1LjExLjI1LjI1djJjMCAuMTQtLjExLjI1LS4yNS4yNWgtMmEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMmMwLS4xNC4xMS0uMjUuMjUtLjI1Wk0xMS41IDcuNzVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0yQzYuNzggNiA2IDYuNzggNiA3Ljc1djJjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMmMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJaTTcuNzUgNy41aDJjLjE0IDAgLjI1LjExLjI1LjI1djJjMCAuMTQtLjExLjI1LS4yNS4yNWgtMmEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMmMwLS4xNC4xMS0uMjUuMjUtLjI1Wk0xOCA3Ljc1QzE4IDYuNzggMTcuMiA2IDE2LjI1IDZoLTJjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djJjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMmMuOTYgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTJabS0zLjc1LS4yNWgyYy4xNCAwIC4yNS4xMS4yNS4yNXYyYzAgLjE0LS4xMS4yNS0uMjUuMjVoLTJhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTJjMC0uMTQuMTEtLjI1LjI1LS4yNVptLTgtNC41QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djExLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwRm9sZGVyMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk04LjUgNi41YTIgMiAwIDAgMC0yIDJWMTFjMCAxLjEuOSAyIDIgMkgxMWEyIDIgMCAwIDAgMi0yVjguNWEyIDIgMCAwIDAtMi0ySDguNVptMCA4LjVhMiAyIDAgMCAwLTIgMnYyLjVjMCAxLjEuOSAyIDIgMkgxMWEyIDIgMCAwIDAgMi0yVjE3YTIgMiAwIDAgMC0yLTJIOC41Wk0xNyA2LjVhMiAyIDAgMCAwLTIgMlYxMWMwIDEuMS45IDIgMiAyaDIuNWEyIDIgMCAwIDAgMi0yVjguNWEyIDIgMCAwIDAtMi0ySDE3Wm0wIDguNWEyIDIgMCAwIDAtMiAydjIuNWMwIDEuMS45IDIgMiAyaDIuNWEyIDIgMCAwIDAgMi0yVjE3YTIgMiAwIDAgMC0yLTJIMTdaTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk02Ljc1IDQuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2MTQuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxNC41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVINi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlcjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBGb2xkZXIyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02LjUgOC41YzAtMS4xLjktMiAyLTJIMTFhMiAyIDAgMCAxIDIgMlYxMWEyIDIgMCAwIDEtMiAySDguNWEyIDIgMCAwIDEtMi0yVjguNVptMi0uNWEuNS41IDAgMCAwLS41LjVWMTFjMCAuMjguMjIuNS41LjVIMTFhLjUuNSAwIDAgMCAuNS0uNVY4LjVBLjUuNSAwIDAgMCAxMSA4SDguNVptMCA3YTIgMiAwIDAgMC0yIDJ2Mi41YzAgMS4xLjkgMiAyIDJIMTFhMiAyIDAgMCAwIDItMlYxN2EyIDIgMCAwIDAtMi0ySDguNVpNOCAxN2MwLS4yOC4yMi0uNS41LS41SDExYy4yOCAwIC41LjIyLjUuNXYyLjVhLjUuNSAwIDAgMS0uNS41SDguNWEuNS41IDAgMCAxLS41LS41VjE3Wm03LTguNWMwLTEuMS45LTIgMi0yaDIuNWEyIDIgMCAwIDEgMiAyVjExYTIgMiAwIDAgMS0yIDJIMTdhMiAyIDAgMCAxLTItMlY4LjVabTItLjVhLjUuNSAwIDAgMC0uNS41VjExYzAgLjI4LjIyLjUuNS41aDIuNWEuNS41IDAgMCAwIC41LS41VjguNWEuNS41IDAgMCAwLS41LS41SDE3Wm0wIDdhMiAyIDAgMCAwLTIgMnYyLjVjMCAxLjEuOSAyIDIgMmgyLjVhMiAyIDAgMCAwIDItMlYxN2EyIDIgMCAwIDAtMi0ySDE3Wm0tLjUgMmMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNUgxN2EuNS41IDAgMCAxLS41LS41VjE3Wk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM2gxNC41QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1djE0LjVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1SDYuNzVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjVWNi43NVpNNi43NSA0LjVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djE0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMTQuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2Ljc1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBGb2xkZXIzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBGb2xkZXIzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTkuNSA3QTIuNSAyLjUgMCAwIDAgNyA5LjV2M0EyLjUgMi41IDAgMCAwIDkuNSAxNWgzYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM0EyLjUgMi41IDAgMCAwIDEyLjUgN2gtM1ptMCAxMEEyLjUgMi41IDAgMCAwIDcgMTkuNXYzQTIuNSAyLjUgMCAwIDAgOS41IDI1aDNhMi41IDIuNSAwIDAgMCAyLjUtMi41di0zYTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtM1ptMTAtMTBBMi41IDIuNSAwIDAgMCAxNyA5LjV2M2EyLjUgMi41IDAgMCAwIDIuNSAyLjVoM2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNBMi41IDIuNSAwIDAgMCAyMi41IDdoLTNabTAgMTBhMi41IDIuNSAwIDAgMC0yLjUgMi41djNhMi41IDIuNSAwIDAgMCAyLjUgMi41aDNhMi41IDIuNSAwIDAgMCAyLjUtMi41di0zYTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtM1pNMyA3LjVBNC41IDQuNSAwIDAgMSA3LjUgM2gxN0E0LjUgNC41IDAgMCAxIDI5IDcuNXYxN2E0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTE3QTQuNSA0LjUgMCAwIDEgMyAyNC41di0xN1pNNy41IDVBMi41IDIuNSAwIDAgMCA1IDcuNXYxN0EyLjUgMi41IDAgMCAwIDcuNSAyN2gxN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTE3QTIuNSAyLjUgMCAwIDAgMjQuNSA1aC0xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlcjMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyMzJMaWdodCcsIFwiMzJcIiwgW1wiTTcgOS41QTIuNSAyLjUgMCAwIDEgOS41IDdoM0EyLjUgMi41IDAgMCAxIDE1IDkuNXYzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtM0EyLjUgMi41IDAgMCAxIDcgMTIuNXYtM1pNOS41IDhDOC42NyA4IDggOC42NyA4IDkuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM1ptMCA5QTIuNSAyLjUgMCAwIDAgNyAxOS41djNBMi41IDIuNSAwIDAgMCA5LjUgMjVoM2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0zWk04IDE5LjVjMC0uODMuNjctMS41IDEuNS0xLjVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDggMjIuNXYtM1ptOS0xMEEyLjUgMi41IDAgMCAxIDE5LjUgN2gzQTIuNSAyLjUgMCAwIDEgMjUgOS41djNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0zYTIuNSAyLjUgMCAwIDEtMi41LTIuNXYtM1pNMTkuNSA4Yy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM1ptMCA5YTIuNSAyLjUgMCAwIDAtMi41IDIuNXYzYTIuNSAyLjUgMCAwIDAgMi41IDIuNWgzYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM2EyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTNaTTE4IDE5LjVjMC0uODMuNjctMS41IDEuNS0xLjVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM2ExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTNaTTcuNSAzQTQuNSA0LjUgMCAwIDAgMyA3LjV2MTdBNC41IDQuNSAwIDAgMCA3LjUgMjloMTdhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xN0E0LjUgNC41IDAgMCAwIDI0LjUgM2gtMTdabTE3IDFBMy41IDMuNSAwIDAgMSAyOCA3LjV2MTdhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0xN0EzLjUgMy41IDAgMCAxIDQgMjQuNXYtMTdBMy41IDMuNSAwIDAgMSA3LjUgNGgxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEZvbGRlcjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBGb2xkZXIzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk03IDkuNUEyLjUgMi41IDAgMCAxIDkuNSA3aDNBMi41IDIuNSAwIDAgMSAxNSA5LjV2M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTNBMi41IDIuNSAwIDAgMSA3IDEyLjV2LTNaTTkuNSA5YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zWm0wIDhBMi41IDIuNSAwIDAgMCA3IDE5LjV2M0EyLjUgMi41IDAgMCAwIDkuNSAyNWgzYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM2EyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTNaTTkgMTkuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTNabTgtMTBBMi41IDIuNSAwIDAgMSAxOS41IDdoM0EyLjUgMi41IDAgMCAxIDI1IDkuNXYzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtM2EyLjUgMi41IDAgMCAxLTIuNS0yLjV2LTNabTIuNS0uNWEuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1ptMCA4YTIuNSAyLjUgMCAwIDAtMi41IDIuNXYzYTIuNSAyLjUgMCAwIDAgMi41IDIuNWgzYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM2EyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTNabS0uNSAyLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zWk0zIDcuNUE0LjUgNC41IDAgMCAxIDcuNSAzaDE3QTQuNSA0LjUgMCAwIDEgMjkgNy41djE3YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTdBNC41IDQuNSAwIDAgMSAzIDI0LjV2LTE3Wk03LjUgNUEyLjUgMi41IDAgMCAwIDUgNy41djE3QTIuNSAyLjUgMCAwIDAgNy41IDI3aDE3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTdBMi41IDIuNSAwIDAgMCAyNC41IDVoLTE3WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwRm9sZGVyNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xNS41IDEyYTMuNSAzLjUgMCAwIDAtMy41IDMuNXY0YTMuNSAzLjUgMCAwIDAgMy41IDMuNWg0YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNGEzLjUgMy41IDAgMCAwLTMuNS0zLjVoLTRabTAgMTNhMy41IDMuNSAwIDAgMC0zLjUgMy41djRhMy41IDMuNSAwIDAgMCAzLjUgMy41aDRhMy41IDMuNSAwIDAgMCAzLjUtMy41di00YTMuNSAzLjUgMCAwIDAtMy41LTMuNWgtNFptMTMtMTNhMy41IDMuNSAwIDAgMC0zLjUgMy41djRhMy41IDMuNSAwIDAgMCAzLjUgMy41aDRhMy41IDMuNSAwIDAgMCAzLjUtMy41di00YTMuNSAzLjUgMCAwIDAtMy41LTMuNWgtNFptMCAxM2EzLjUgMy41IDAgMCAwLTMuNSAzLjV2NGEzLjUgMy41IDAgMCAwIDMuNSAzLjVoNGEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTRhMy41IDMuNSAwIDAgMC0zLjUtMy41aC00Wk02IDEyLjI1QzYgOC44IDguOCA2IDEyLjI1IDZoMjMuNUMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djIzLjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0yMy41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di0yMy41Wm02LjI1LTMuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NXYyMy41YTMuNzUgMy43NSAwIDAgMCAzLjc1IDMuNzVoMjMuNWEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1di0yMy41YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLTIzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBGb2xkZXI0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwRm9sZGVyNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTIgMTUuNWEzLjUgMy41IDAgMCAxIDMuNS0zLjVoNGEzLjUgMy41IDAgMCAxIDMuNSAzLjV2NGEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTRhMy41IDMuNSAwIDAgMS0zLjUtMy41di00Wm0zLjUtMWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtNFptMCAxMC41YTMuNSAzLjUgMCAwIDAtMy41IDMuNXY0YTMuNSAzLjUgMCAwIDAgMy41IDMuNWg0YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNGEzLjUgMy41IDAgMCAwLTMuNS0zLjVoLTRabS0xIDMuNWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXYtNFptMTAuNS0xM2EzLjUgMy41IDAgMCAxIDMuNS0zLjVoNGEzLjUgMy41IDAgMCAxIDMuNSAzLjV2NGEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTRhMy41IDMuNSAwIDAgMS0zLjUtMy41di00Wm0zLjUtMWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtNFptMCAxMC41YTMuNSAzLjUgMCAwIDAtMy41IDMuNXY0YTMuNSAzLjUgMCAwIDAgMy41IDMuNWg0YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtNGEzLjUgMy41IDAgMCAwLTMuNS0zLjVoLTRabS0xIDMuNWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXYtNFpNNiAxMi4yNUM2IDguOCA4LjggNiAxMi4yNSA2aDIzLjVDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXYyMy41QzQyIDM5LjIgMzkuMiA0MiAzNS43NSA0MmgtMjMuNUE2LjI1IDYuMjUgMCAwIDEgNiAzNS43NXYtMjMuNVptNi4yNS0zLjc1YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzV2MjMuNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aDIzLjVhMy43NSAzLjc1IDAgMCAwIDMuNzUtMy43NXYtMjMuNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwR2VuZXJpYzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcEdlbmVyaWMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNCA3aDEydjcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjVWN1ptMiAxYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMC0xLTFINlptMCAxaDJ2NUg2VjlabTQuNSAxYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTEwIDguNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEdlbmVyaWMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwR2VuZXJpYzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNVY2aDEydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTE2IDdINHY3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWN1pNNSA5YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOVptMyAwSDZ2NWgyVjlabTIgMS41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0uNS0yLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEdlbmVyaWMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBHZW5lcmljMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVaTTQuNSA4aDE1djkuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY4Wk02IDEwLjM1YzAtLjQ3LjM4LS44NS44NS0uODVoMy4zYy40NyAwIC44NS4zOC44NS44NXY2LjhjMCAuNDctLjM4Ljg1LS44NS44NWgtMy4zYS44NS44NSAwIDAgMS0uODUtLjg1di02LjhabTEuNS42NXY1LjVoMlYxMWgtMlptNS4yNS0xLjVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMSAwLTEuNVpNMTIgMTMuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBHZW5lcmljMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcEdlbmVyaWMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxMS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1Wk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2LjI1aDE1di0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDYuMjVaTTQuNSAxNy43NWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMS41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVY4aC0xNXY5Ljc1Wk02Ljg1IDkuNWgzLjNjLjQ3IDAgLjg1LjM4Ljg1Ljg1djYuOGMwIC40Ny0uMzguODUtLjg1Ljg1aC0zLjNhLjg1Ljg1IDAgMCAxLS44NS0uODV2LTYuOGMwLS40Ny4zOC0uODUuODUtLjg1Wm0uNjUgN2gyVjExaC0ydjUuNVptNC41LTYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSAyLjI1YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBHZW5lcmljMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwR2VuZXJpYzMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOSAxM2EyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMkg5Wm0wIDJoM3Y4SDl2LThabTctMWExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMSAxIDAgMmgtN2ExIDEgMCAwIDEtMS0xWm0xIDNhMSAxIDAgMSAwIDAgMmg1YTEgMSAwIDEgMCAwLTJoLTVaTTcuNSAzQTQuNSA0LjUgMCAwIDAgMyA3LjV2MTdBNC41IDQuNSAwIDAgMCA3LjUgMjloMTdhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xN0E0LjUgNC41IDAgMCAwIDI0LjUgM2gtMTdabTAgMjRBMi41IDIuNSAwIDAgMSA1IDI0LjVWMTFoMjJ2MTMuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTE3WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwR2VuZXJpYzMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwR2VuZXJpYzMyTGlnaHQnLCBcIjMyXCIsIFtcIk0yNC41IDI5YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTdBNC41IDQuNSAwIDAgMCAyNC41IDNoLTE3QTQuNSA0LjUgMCAwIDAgMyA3LjV2MTdBNC41IDQuNSAwIDAgMCA3LjUgMjloMTdaTTQgNy41QTMuNSAzLjUgMCAwIDEgNy41IDRoMTdBMy41IDMuNSAwIDAgMSAyOCA3LjVWMTBINFY3LjVabTAgMTdWMTFoMjR2MTMuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTE3QTMuNSAzLjUgMCAwIDEgNCAyNC41Wk05IDE0YTIgMiAwIDAgMC0yIDJ2N2MwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtN2EyIDIgMCAwIDAtMi0ySDlabS0xIDJhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2N2ExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMXYtN1ptOC0uNWMwLS4yOC4yMi0uNS41LS41aDhhLjUuNSAwIDAgMSAwIDFoLThhLjUuNSAwIDAgMS0uNS0uNVptLjUgMy41YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBHZW5lcmljMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcEdlbmVyaWMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk05IDEzYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtOGEyIDIgMCAwIDAtMi0ySDlabTAgMmgzdjhIOXYtOFptNy0xYTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAxIDEgMCAyaC03YTEgMSAwIDAgMS0xLTFabTEgM2ExIDEgMCAxIDAgMCAyaDVhMSAxIDAgMSAwIDAtMmgtNVpNMyA3LjVBNC41IDQuNSAwIDAgMSA3LjUgM2gxN0E0LjUgNC41IDAgMCAxIDI5IDcuNXYxN2E0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTE3QTQuNSA0LjUgMCAwIDEgMyAyNC41di0xN1pNNy41IDVBMi41IDIuNSAwIDAgMCA1IDcuNVY5aDIyVjcuNUEyLjUgMi41IDAgMCAwIDI0LjUgNWgtMTdaTTI3IDExSDV2MTMuNUEyLjUgMi41IDAgMCAwIDcuNSAyN2gxN2EyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBHZW5lcmljNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwR2VuZXJpYzQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjUuMjUgMjBhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDkuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTkuNVpNMjQgMjYuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoNi41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtNi41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTEyIDIzYTMgMyAwIDAgMSAzLTNoM2EzIDMgMCAwIDEgMyAzdjEwYTMgMyAwIDAgMS0zIDNoLTNhMyAzIDAgMCAxLTMtM1YyM1ptMi41LS41djExaDR2LTExaC00Wk0xMi4yNSA2QTYuMjUgNi4yNSAwIDAgMCA2IDEyLjI1djIzLjVDNiAzOS4yIDguOCA0MiAxMi4yNSA0MmgyMy41QzM5LjIgNDIgNDIgMzkuMiA0MiAzNS43NXYtMjMuNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZoLTIzLjVabTAgMzMuNWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1VjE2LjVoMzF2MTkuMjVhMy43NSAzLjc1IDAgMCAxLTMuNzUgMy43NWgtMjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcEdlbmVyaWM0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwR2VuZXJpYzQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI1LjI1IDIwYTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg5LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC05LjVaTTI0IDI2LjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDYuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTYuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wk0xMiAyM2EzIDMgMCAwIDEgMy0zaDNhMyAzIDAgMCAxIDMgM3YxMGEzIDMgMCAwIDEtMyAzaC0zYTMgMyAwIDAgMS0zLTNWMjNabTIuNS0uNXYxMWg0di0xMWgtNFpNMTIuMjUgNkE2LjI1IDYuMjUgMCAwIDAgNiAxMi4yNXYyMy41QzYgMzkuMiA4LjggNDIgMTIuMjUgNDJoMjMuNUMzOS4yIDQyIDQyIDM5LjIgNDIgMzUuNzV2LTIzLjVDNDIgOC44IDM5LjIgNiAzNS43NSA2aC0yMy41Wk04LjUgMTIuMjVhMy43NSAzLjc1IDAgMCAxIDMuNzUtMy43NWgyMy41YTMuNzUgMy43NSAwIDAgMSAzLjc1IDMuNzVWMTRoLTMxdi0xLjc1Wm0zLjc1IDI3LjI1YTMuNzUgMy43NSAwIDAgMS0zLjc1LTMuNzVWMTYuNWgzMXYxOS4yNWEzLjc1IDMuNzUgMCAwIDEtMy43NSAzLjc1aC0yMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwUmVjZW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwUmVjZW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1pNMiA2YzAtMS4xLjktMiAyLTJ2MTJhMiAyIDAgMCAxLTItMlY2Wm0xNCAxMFY0YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwUmVjZW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcFJlY2VudDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMWMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMmgxYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yLTJIN1ptOCAzaDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFoLTFWNVpNNSAxNUg0YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDF2MTBaTTYgNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY0WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwUmVjZW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwUmVjZW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOCAxOS43NWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxaC03LjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDYgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDguMjUgMmg3LjVjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNVpNMTkgNWguNzVjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2OS41YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFIMTlWNVpNNSAxOWgtLjc1Yy0xLjIgMC0yLjE3LS45My0yLjI0LTIuMUwyIDE2Ljc1di05LjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw0LjI1IDVINXYxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFJlY2VudDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBSZWNlbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1VjVoMS43NWMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXY5LjVjMCAxLjItLjkzIDIuMTctMi4xIDIuMjRsLS4xNS4wMUgxOHYuNzVjMCAxLjItLjkzIDIuMTctMi4xIDIuMjRsLS4xNS4wMWgtNy41Yy0xLjIgMC0yLjE3LS45My0yLjI0LTIuMUw2IDE5Ljc1VjE5SDQuMjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDIgMTYuNzV2LTkuNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDQuMjUgNUg2di0uNzVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw4LjI1IDJoNy41Wm0wIDEuNWgtNy41Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjE1LjVjMCAuMzguMjguNy42NS43NGwuMS4wMWg3LjVjLjM4IDAgLjctLjI4Ljc0LS42NWwuMDEtLjFWNC4yNWMwLS4zOC0uMjgtLjctLjY1LS43NGwtLjEtLjAxWk02IDYuNUg0LjI1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjkuNWMwIC4zOC4yOC43LjY1Ljc0bC4xLjAxSDZ2LTExWm0xMy43NSAwSDE4djExaDEuNzVjLjM4IDAgLjctLjI4Ljc0LS42NWwuMDEtLjF2LTkuNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFN0b3JlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwU3RvcmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3Ljc1IDNDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41Wk05LjM3IDE1LjI1SDcuNjNsLS4wNy4xMi0uMDQuMWEuNzUuNzUgMCAwIDAgMS4yOC43NGwuMDYtLjA4LjUtLjg4Wm0zLjkyLTUuMjMtLjg3IDEuNSAyLjY2IDQuNi4wNi4wOWEuNzUuNzUgMCAwIDAgMS4yOC0uNzRsLS4wNC0uMS0uNS0uODdoLjk3Yy4zNC0uMDUuNi0uMzEuNjQtLjY0bC4wMS0uMXYtLjFhLjc1Ljc1IDAgMCAwLS42NS0uNjVoLTEuODRsLTEuNzItMi45OVptLS4wMy0yLjkyYS43NS43NSAwIDAgMC0uOTcuMTlsLS4wNS4wOC0uMjQuNDEtLjI0LS40LS4wNS0uMDlhLjc1Ljc1IDAgMCAwLS44Ny0uMjRsLS4xLjA1LS4wOS4wNmEuNzUuNzUgMCAwIDAtLjIzLjg2bC4wNC4xLjY3IDEuMTVMOC45NSAxM2gtMS43bC0uMS4wMWEuNzUuNzUgMCAwIDAgMCAxLjQ5aDYuMTNMMTIuNCAxM2gtMS43M2wyLjg1LTQuODcuMDUtLjFhLjc1Ljc1IDAgMCAwLS4zMi0uOTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBTdG9yZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBTdG9yZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc1IDNDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41Wm0wIDEuNUg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxMS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDExLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1Wk05LjM3IDE1LjI1bC0uNTEuODhhLjc1Ljc1IDAgMCAxLTEuMzQtLjY3bC4wNC0uMDkuMDctLjEyaDEuNzRabTMuOTItNS4yM0wxNS4wMSAxM2gxLjc0Yy4zOCAwIC43LjI5Ljc1LjY1di4xYzAgLjM4LS4yOC43LS42NS43NWgtLjk3bC41Ljg3YS43NS43NSAwIDAgMS0xLjI0Ljg0bC0uMDYtLjA5LTIuNjYtNC42Ljg3LTEuNVptLS4wMy0yLjkyYy4zMy4yLjQ2LjYuMzIuOTRsLS4wNS4wOUwxMC42OCAxM2gxLjczbC44NyAxLjVINy4yNWEuNzUuNzUgMCAwIDEtLjEtMS40OWgxLjhsMi4xOC0zLjc0LS42Ny0xLjE1YS43NS43NSAwIDAgMSAuMi0uOTZsLjA4LS4wNmMuMzMtLjE5Ljc0LS4xLjk3LjE5bC4wNS4wOC4yNC40MS4yNC0uNGEuNzUuNzUgMCAwIDEgMS4wMi0uMjhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBUaXRsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcFRpdGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03IDNhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoNmEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g3Wk00LjUgMTdhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwVGl0bGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwVGl0bGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDZhMyAzIDAgMCAxIDMtM2g2YTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDdhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg3Wk00IDE3LjVjMC0uMjguMjItLjUuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFRpdGxlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwVGl0bGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQuNzUgMjAuNWgxNC41YS43NS43NSAwIDAgMSAuMSAxLjVINC43NWEuNzUuNzUgMCAwIDEtLjEtMS41aDE0LjYtMTQuNVpNMTYuMjUgM0EzLjc1IDMuNzUgMCAwIDEgMjAgNi43NXY4LjVBMy43NSAzLjc1IDAgMCAxIDE2LjI1IDE5aC04LjVBMy43NSAzLjc1IDAgMCAxIDQgMTUuMjV2LTguNUEzLjc1IDMuNzUgMCAwIDEgNy43NSAzaDguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcFRpdGxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcFRpdGxlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC43NSAyMC41aDE0LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTQuNi0xNC41Wk0xNi4yNSAzQTMuNzUgMy43NSAwIDAgMSAyMCA2Ljc1djguNUEzLjc1IDMuNzUgMCAwIDEgMTYuMjUgMTloLTguNUEzLjc1IDMuNzUgMCAwIDEgNCAxNS4yNXYtOC41QTMuNzUgMy43NSAwIDAgMSA3Ljc1IDNoOC41Wm0wIDEuNWgtOC41Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNXY4LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoOC41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di04LjVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHByb3ZhbHNBcHAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHByb3ZhbHNBcHAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguMzEuMjZhLjc1Ljc1IDAgMSAwLTEuMTIuOThsLjY4Ljc5QTYuNSA2LjUgMCAxIDAgMTUgOC41di0uMjVhLjc1Ljc1IDAgMSAwLTEuNSAwdi4yNWE1IDUgMCAxIDEtNS43LTQuOTVsLS42MS43YS43NS43NSAwIDEgMCAxLjEyIDFsMS43NS0yYS43NS43NSAwIDAgMCAwLTFsLTEuNzUtMlptMy41IDUuOTljLjI3LjMuMjUuNzgtLjA2IDEuMDVMOSA5LjhhLjc1Ljc1IDAgMCAxLTEuMDMtLjAyTDYuNzIgOC41M2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bC43NC43NCAyLjIzLTIuMDFhLjc1Ljc1IDAgMCAxIDEuMDUuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHByb3ZhbHNBcHAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy44NS4xNWEuNS41IDAgMSAwLS43LjdMOC4zIDJBNi41IDYuNSAwIDEgMCAxNSA4LjV2LS4wNGEuNDcuNDcgMCAwIDAtLjQ4LS40NmgtLjA0YS41LjUgMCAwIDAtLjQ4LjVBNS41IDUuNSAwIDEgMSA4LjI5IDNMNy4xNSA0LjE1YS41LjUgMCAxIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJabTQgNmMuMi4yLjIuNSAwIC43bC0zIDNhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjctLjdMOC41IDguNzlsMi42NS0yLjY0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05Ljc4LjcyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZMOS45NCAzSDkuNWE3LjUgNy41IDAgMSAwIDcuNSA3LjUuNzUuNzUgMCAwIDAtMS41IDAgNiA2IDAgMSAxLTYuMDYtNmwtLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi4yNS0yLjI1Yy4zLS4zLjMtLjc3IDAtMS4wNkw5Ljc4LjcyWm0zLjc0IDYuMjRjLjMuMjkuMy43Ni4wMiAxLjA2bC0zLjg1IDRhLjc1Ljc1IDAgMCAxLTEuMDggMGwtMS42NS0xLjcxYS43NS43NSAwIDEgMSAxLjA4LTEuMDRsMS4xMSAxLjE1IDMuMzEtMy40NGMuMjktLjMuNzYtLjMgMS4wNi0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHByb3ZhbHNBcHAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS44NSAxLjE1YS41LjUgMCAxIDAtLjcuN0wxMC4yOSAzSDkuNWE3LjUgNy41IDAgMSAwIDcuNSA3LjUuNS41IDAgMCAwLTEgMEE2LjUgNi41IDAgMSAxIDkuNSA0aC44TDkuMTQgNS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWm0zLjUgNS45OWMuMi4yLjIuNS4wMS43bC0zLjg1IDRhLjUuNSAwIDAgMS0uNzIgMGwtMS42NS0xLjdhLjUuNSAwIDAgMSAuNzItLjdsMS4yOSAxLjM0IDMuNDktMy42M2MuMi0uMi41LS4yLjctLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC41NCAxLjhhMSAxIDAgMCAxIDEuNDIgMGwyLjUgMi41YTEgMSAwIDAgMSAwIDEuNGwtMi41IDIuNWExIDEgMCAxIDEtMS40Mi0xLjRsLjc2LS43N2E3IDcgMCAxIDAgNy42NSA3Ljg1IDEgMSAwIDEgMSAxLjk4LjI0IDkgOSAwIDEgMS05LjU3LTEwLjFsLS44Mi0uODFhMSAxIDAgMCAxIDAtMS40MlptNS42NyA4YTEgMSAwIDAgMSAwIDEuNGwtNC41IDQuNWExIDEgMCAwIDEtMS40MiAwbC0yLTJhMSAxIDAgMSAxIDEuNDItMS40TDExIDEzLjU4bDMuOC0zLjhhMSAxIDAgMCAxIDEuNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHJvdmFsc0FwcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjc4IDEuNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwxMS45NCA0YTkgOSAwIDEgMCA5LjAyIDkuODIuNzUuNzUgMCAwIDAtMS41LS4xMyA3LjUgNy41IDAgMSAxLTcuNTItOC4xOWwtMS4yMiAxLjIyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi41LTIuNWEuNzUuNzUgMCAwIDAgMC0xLjA2bC0yLjUtMi41Wm00IDguNWMuMy4zLjMuNzcgMCAxLjA2bC00LjUgNC41YS43NS43NSAwIDAgMS0xLjA2IDBsLTItMmEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDEuNDcgMS40NyAzLjk3LTMuOTdjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMi4zIDIuM2ExIDEgMCAwIDEgMS40IDBsMy4wMSAzYTEgMSAwIDAgMSAwIDEuNDFsLTMgM2ExIDEgMCAxIDEtMS40Mi0xLjQybDEuMjktMS4yOGE4LjUgOC41IDAgMSAwIDguOSA4Ljk0IDEgMSAwIDEgMSAyIC4xQTEwLjUgMTAuNSAwIDEgMSAxMy42IDUuMDJsLTEuMy0xLjNhMSAxIDAgMCAxIDAtMS40MlptNS45IDEwYTEgMSAwIDAgMSAwIDEuNGwtNSA1YTEgMSAwIDAgMS0xLjQgMGwtMi0yYTEgMSAwIDEgMSAxLjQtMS40bDEuMyAxLjI5IDQuMy00LjNhMSAxIDAgMCAxIDEuNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHJvdmFsc0FwcDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEzLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjcgMS43YTEwLjUxIDEwLjUxIDAgMSAwIDEwLjU5IDEwLjc5Ljc1Ljc1IDAgMCAwLTEuNS0uMDQgOS4wMSA5LjAxIDAgMSAxLTkuMDYtOS4yNGwtMS43MyAxLjczYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMy0zYy4zLS4zLjMtLjc3IDAtMS4wNmwtMy0zWm01IDEwYy4zLjMuMy43NyAwIDEuMDZsLTUuMjUgNS4yNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTIuMjUtMi4yNWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDEuNzIgMS43MiA0LjcyLTQuNzJjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwcm92YWxzQXBwMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNS42My41MWExLjUgMS41IDAgMSAwLTIuMjYgMS45OGwxLjM4IDEuNTdBMTMgMTMgMCAxIDAgMjkgMTd2LS41YTEuNSAxLjUgMCAxIDAtMyAwdi41YTEwIDEwIDAgMSAxLTExLjM5LTkuOUwxMy4zNyA4LjVhMS41IDEuNSAwIDEgMCAyLjI2IDEuOThsMy41LTRjLjUtLjU3LjUtMS40MSAwLTEuOThsLTMuNS00Wk0yMi42IDEyLjVhMS41IDEuNSAwIDAgMS0uMSAyLjEybC01LjUgNWMtLjYuNTQtMS41LjUyLTIuMDctLjA1bC0yLjUtMi41YTEuNSAxLjUgMCAwIDEgMi4xMi0yLjEybDEuNDkgMS40OSA0LjQ0LTQuMDRhMS41IDEuNSAwIDAgMSAyLjEyLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHByb3ZhbHNBcHAzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwcm92YWxzQXBwMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTQuNy4zYTEgMSAwIDEgMC0xLjQgMS40TDE1LjYgNEExMyAxMyAwIDEgMCAyOSAxN3YtLjA4YS45NC45NCAwIDAgMC0uOTYtLjkyaC0uMDhhLjk4Ljk4IDAgMCAwLS45NiAxQTExIDExIDAgMSAxIDE1LjU4IDZsLTIuMjkgMi4zYTEgMSAwIDAgMCAxLjQyIDEuNGw0LTRhMSAxIDAgMCAwIDAtMS40bC00LTRabTggMTJhMSAxIDAgMCAxIDAgMS40bC02IDZhMSAxIDAgMCAxLTEuNCAwbC0zLTNhMSAxIDAgMCAxIDEuNC0xLjRsMi4zIDIuMjkgNS4zLTUuM2ExIDEgMCAwIDEgMS40IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTEuODEgMi40NWExLjUgMS41IDAgMCAwLTIuMTIgMEw3Ljk2IDQuMThBMS41IDEuNSAwIDAgMCA2LjUgM2gtM0MyLjY3IDMgMiAzLjY3IDIgNC41djhBMS41IDEuNSAwIDAgMCAzLjUgMTRoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uNy0uNDgtMS4yOS0xLjEzLTEuNDVsMS43MS0xLjdhMS41IDEuNSAwIDAgMCAwLTIuMTNsLTEuNzctMS43N1pNOCA2LjQyIDkuNTggOEg4VjYuNDJaTTcgOEgzVjQuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI3IDAgLjUuMjIuNS41VjhaTTMuMiAxMi45YS41LjUgMCAwIDEtLjIxLS40VjloNHY0SDMuNWEuNS41IDAgMCAxLS4yOS0uMVpNOCAxM1Y5aDMuNWMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHMxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTExLjgxIDIuNDVhMS41IDEuNSAwIDAgMC0yLjEyIDBMNy45NiA0LjE4QTEuNSAxLjUgMCAwIDAgNi41IDNoLTNDMi42NyAzIDIgMy42NyAyIDQuNXY4QTEuNSAxLjUgMCAwIDAgMy41IDE0aDhjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjctLjQ4LTEuMjktMS4xMy0xLjQ1bDEuNzEtMS43YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0xLjc3LTEuNzdaTTkuNTggOEg4VjYuNDJMOS41OCA4Wm0uODItNC44NGMuMi0uMi41LS4yLjcgMGwxLjc3IDEuNzdjLjIuMi4yLjUgMCAuN0wxMS4xIDcuNGEuNS41IDAgMCAxLS43IDBMOC42MyA1LjYzYS41LjUgMCAwIDEgMC0uN2wxLjc3LTEuNzdaTTcgNC41VjhIM1Y0LjVjMC0uMjguMjItLjUuNS0uNWgzYy4yNyAwIC41LjIyLjUuNVptLTQgOFY5aDR2NEgzLjVhLjUuNSAwIDAgMS0uNS0uNVpNOCA5aDMuNWMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVIOFY5WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNSAxN0ExLjUgMS41IDAgMCAxIDMgMTUuNjVWNC41YzAtLjc4LjYtMS40MiAxLjM2LTEuNUg5Yy43OCAwIDEuNDIuNiAxLjUgMS4zNnYuNGwyLjE5LTIuMjdhMS41IDEuNSAwIDAgMSAyLS4xNGwuMTIuMSAyLjc2IDIuNzJjLjU1LjU1LjYgMS40Mi4xMSAyLjAybC0uMS4xMS0yLjMxIDIuMmguMjNjLjc4IDAgMS40Mi42IDEuNSAxLjM2djQuNjRjMCAuNzgtLjYgMS40Mi0xLjM2IDEuNUg0LjVabTUtNi41SDR2NWMwIC4yMi4xNC40LjMzLjQ3bC4wOC4wMi4wOS4wMWg1di01LjVabTYgMGgtNVYxNmg1YS41LjUgMCAwIDAgLjUtLjRWMTFhLjUuNSAwIDAgMC0uNDEtLjVoLS4wOVptLTUtMi43OVY5LjVoMS43OUwxMC41IDcuNzFaTTkgNC4wMUg0LjVhLjUuNSAwIDAgMC0uNS40djUuMWg1LjV2LTVhLjUuNSAwIDAgMC0uMzMtLjQ4bC0uMDgtLjAySDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjY1VjQuNWMwLS43OC42LTEuNDIgMS4zNi0xLjVIOWMuNzggMCAxLjQyLjYgMS41IDEuMzZ2LjRsMi4xOS0yLjI3YTEuNSAxLjUgMCAwIDEgMi0uMTRsLjEyLjEgMi43NiAyLjcyYy41NS41NS42IDEuNDIuMTEgMi4wMmwtLjEuMTEtMi4zMSAyLjJoLjIzYy43OCAwIDEuNDIuNiAxLjUgMS4zNnY0LjY0YzAgLjc4LS42IDEuNDItMS4zNiAxLjVINC41Wm01LTYuNUg0djVjMCAuMjIuMTQuNC4zMy40N2wuMDguMDIuMDkuMDFoNXYtNS41Wm02IDBoLTVWMTZoNWEuNS41IDAgMCAwIC41LS40VjExYS41LjUgMCAwIDAtLjQxLS41aC0uMDlabS01LTIuNzlWOS41aDEuNzlMMTAuNSA3LjcxWk05IDQuMDFINC41YS41LjUgMCAwIDAtLjUuNHY1LjFoNS41di01YS41LjUgMCAwIDAtLjMzLS40OGwtLjA4LS4wMkg5Wm01LjEyLS44NGEuNS41IDAgMCAwLS42NC0uMDVsLS4wNy4wNi0yLjYyIDIuNzFhLjUuNSAwIDAgMC0uMDUuNjNsLjA2LjA3IDIuNjEgMi42MmMuMTcuMTcuNDMuMi42Mi4wN2wuMDgtLjA2IDIuNzYtMi42M2EuNS41IDAgMCAwIC4wNS0uNjRsLS4wNS0uMDYtMi43NS0yLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE4LjUgMi4zMyAzLjE3IDMuMThjLjg4Ljg4Ljg4IDIuMyAwIDMuMThsLTIuNTggMi41OUEyLjI1IDIuMjUgMCAwIDEgMjEgMTMuNXY1LjI1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDUuMjVDNC4wMSAyMSAzIDIwIDMgMTguNzVWNS4yNUMzIDQuMDEgNCAzIDUuMjUgM2g1LjI1YzEuMTMgMCAyLjA2LjgzIDIuMjMgMS45MmwyLjU4LTIuNTljLjg4LS44OCAyLjMtLjg4IDMuMTggMFptLTE0IDE2LjQyYzAgLjQxLjM0Ljc1Ljc1Ljc1aDZ2LTYuNzVINC41djZabTguMjUuNzVoNmMuNDEgMCAuNzUtLjM0Ljc1LS43NVYxMy41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02djYuNzVabS0yLjI1LTE1SDUuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXY2aDYuNzV2LTZhLjc1Ljc1IDAgMCAwLS43NS0uNzVabTIuMjUgNC44djEuOTVoMS45NEwxMi43NSA5LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xOC41IDIuMzMgMy4xNyAzLjE4Yy44OC44OC44OCAyLjMgMCAzLjE4bC0yLjU4IDIuNTlBMi4yNSAyLjI1IDAgMCAxIDIxIDEzLjV2NS4yNUMyMSAyMCAyMCAyMSAxOC43NSAyMUg1LjI1QzQuMDEgMjEgMyAyMCAzIDE4Ljc1VjUuMjVDMyA0LjAxIDQgMyA1LjI1IDNoNS4yNWMxLjEzIDAgMi4wNi44MyAyLjIzIDEuOTJsMi41OC0yLjU5Yy44OC0uODggMi4zLS44OCAzLjE4IDBabS0xNCAxNi40MmMwIC40MS4zNC43NS43NS43NWg2di02Ljc1SDQuNXY2Wm04LjI1Ljc1aDZjLjQxIDAgLjc1LS4zNC43NS0uNzVWMTMuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNnY2Ljc1Wm0tMi4yNS0xNUg1LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2Nmg2Ljc1di02YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0yLjI1IDQuODF2MS45NGgxLjk0bC0xLjk0LTEuOTRabTMuNjItNS45MkwxMy4yIDYuNTdjLS4zLjMtLjMuNzcgMCAxLjA2bDMuMTggMy4xOGMuMy4zLjc3LjMgMS4wNiAwbDMuMTgtMy4xOGMuMy0uMy4zLS43NyAwLTEuMDZsLTMuMTgtMy4xOGEuNzUuNzUgMCAwIDAtMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIwLjg0IDIuNjZhMi4yNSAyLjI1IDAgMCAwLTMuMTggMEwxMy41IDYuOHYtLjU2YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC03QzMuMDEgNCAyIDUuMDEgMiA2LjI1djE4YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDE4YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di03YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0uNTZsNC4xNi00LjE1Yy44OC0uODguODgtMi4zIDAtMy4xOWwtNC41LTQuNVptLTcuMzQgOC4wMyAzLjggMy44MWgtMy44di0zLjhaTTEyIDE0LjVIMy41VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3Yy40MSAwIC43NS4zNC43NS43NXY4LjI1Wk0zLjUgMTZIMTJ2OC41SDQuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMTZabTEwIDguNVYxNmg4LjI1Yy40MSAwIC43NS4zNC43NS43NXY3YzAgLjQyLS4zNC43NS0uNzUuNzVIMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHMyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwczI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIwLjg0IDIuNjZhMi4yNSAyLjI1IDAgMCAwLTMuMTggMEwxMy41IDYuOHYtLjU2YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC03QzMuMDEgNCAyIDUuMDEgMiA2LjI1djE4YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDE4YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di03YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0uNTZsNC4xNi00LjE1Yy44OC0uODguODgtMi4zIDAtMy4xOWwtNC41LTQuNVpNMTcuMzEgMTQuNUgxMy41di0zLjhsMy44IDMuOFptMS40MS0xMC43OGMuMy0uMy43Ny0uMyAxLjA2IDBsNC41IDQuNWMuMy4zLjMuNzcgMCAxLjA2bC00LjUgNC41MWMtLjMuMy0uNzcuMy0xLjA2IDBsLTQuNS00LjVhLjc1Ljc1IDAgMCAxIDAtMS4wN2w0LjUtNC41Wk0xMiA2LjI1djguMjVIMy41VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3Yy40MSAwIC43NS4zNC43NS43NVptLTguNSAxNy41VjE2SDEydjguNUg0LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0xMC03Ljc1aDguMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djdjMCAuNDItLjM0Ljc1LS43NS43NUgxMy41VjE2WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwczMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI0LjggMi45NWEzLjI1IDMuMjUgMCAwIDAtNC41OSAwTDE3IDYuMTdBMy4yNSAzLjI1IDAgMCAwIDEzLjc1IDNoLTcuNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djE5LjVDMyAyNy41NSA0LjQ2IDI5IDYuMjUgMjloMTkuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di03LjVjMC0xLjc2LTEuNC0zLjItMy4xNi0zLjI1bDMuMjEtMy4yYTMuMjUgMy4yNSAwIDAgMCAwLTQuNmwtNC4yNC00LjI1Wk0xNyAxMi44MiAxOS4xOCAxNUgxN3YtMi4xOFpNMTUgMTVINVY2LjI1QzUgNS41NiA1LjU2IDUgNi4yNSA1aDcuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVYxNVpNNSAxN2gxMHYxMEg2LjI1QzUuNTYgMjcgNSAyNi40NCA1IDI1Ljc1VjE3Wm0xMiAxMFYxN2g4Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djcuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVIMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yNC44IDIuOTVhMy4yNSAzLjI1IDAgMCAwLTQuNTkgMEwxNyA2LjE3QTMuMjUgMy4yNSAwIDAgMCAxMy43NSAzaC03LjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxOS41QzMgMjcuNTUgNC40NiAyOSA2LjI1IDI5aDE5LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNy41YzAtMS43Ni0xLjQtMy4yLTMuMTYtMy4yNWwzLjIxLTMuMmEzLjI1IDMuMjUgMCAwIDAgMC00LjZsLTQuMjQtNC4yNVpNMTkuMTkgMTVIMTd2LTIuMThMMTkuMTggMTVabTIuNDUtMTAuNjNhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMGw0LjI1IDQuMjRjLjQ4LjQ5LjQ4IDEuMjggMCAxLjc3bC00LjI1IDQuMjRjLS40OC40OS0xLjI4LjQ5LTEuNzYgMGwtNC4yNS00LjI0YTEuMjUgMS4yNSAwIDAgMSAwLTEuNzdsNC4yNS00LjI0Wk0xNSA2LjI1VjE1SDVWNi4yNUM1IDUuNTYgNS41NiA1IDYuMjUgNWg3LjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVaTTUgMjUuNzVWMTdoMTB2MTBINi4yNUM1LjU2IDI3IDUgMjYuNDQgNSAyNS43NVpNMTcgMTdoOC43NWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXY3LjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDE3VjE3WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwczQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHM0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1IDE5LjAxIDI4Ljk5IDIzSDI1di0zLjk5Wm01LjI0LTEzLjc2TDI1IDEwLjQ5di0uMjRDMjUgNy45IDIzLjEgNiAyMC43NSA2aC0xMC41QTQuMjUgNC4yNSAwIDAgMCA2IDEwLjI1djI3LjVDNiA0MC4xIDcuOSA0MiAxMC4yNSA0MmgyNy41QzQwLjEgNDIgNDIgNDAuMSA0MiAzNy43NXYtMTAuNUM0MiAyNC45IDQwLjEgMjMgMzcuNzUgMjNoLS4yNGw1LjI1LTUuMjRhNC4yNSA0LjI1IDAgMCAwIDAtNi4wMWwtNi41LTYuNWE0LjI1IDQuMjUgMCAwIDAtNi4wMiAwWk0zMy4zIDI1LjVoNC40NmMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMC41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgyNXYtMTRIMzMuM1ptLTIzLjA0LTE3aDEwLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWMjNoLTE0VjEwLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1Wm0xMi4yNSAxN3YxNEgxMC4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjI1LjVoMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHM0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIm0zMi4wMSA3LjAxLTYuNSA2LjVjLS42OC42OS0uNjggMS44IDAgMi40OGw2LjUgNi41Yy4zNC4zMy43Ny41IDEuMjEuNTFoLjA2Yy40NCAwIC44Ny0uMTggMS4yLS41MWw2LjUtNi41Yy43LS42OS43LTEuOCAwLTIuNDhsLTYuNS02LjVhMS43NSAxLjc1IDAgMCAwLTIuNDcgMFpNMjkgMjMgMjUgMTkuMDFWMjNoMy45OVpNMjUgMTAuNDlsNS4yNC01LjI0YTQuMjUgNC4yNSAwIDAgMSA2LjAyIDBsNi41IDYuNWE0LjI1IDQuMjUgMCAwIDEgMCA2TDM3LjUgMjNoLjI0QzQwLjEgMjMgNDIgMjQuOSA0MiAyNy4yNXYxMC41QzQyIDQwLjEgNDAuMSA0MiAzNy43NSA0MmgtMjcuNUE0LjI1IDQuMjUgMCAwIDEgNiAzNy43NXYtMjcuNUM2IDcuOSA3LjkgNiAxMC4yNSA2aDEwLjVDMjMuMSA2IDI1IDcuOSAyNSAxMC4yNXYuMjRabTguMiAxNS4wMUgyNXYxNGgxMi43NWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTEwLjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC00LjU0Wk04LjUgMTAuMjVWMjNoMTRWMTAuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xMC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVptMCAxNS4yNXYxMi4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUgyMi41di0xNGgtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzQWRkSW4xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzQWRkSW4xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzLjI1IDEuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjFoLTFhLjc1Ljc1IDAgMCAwIDAgMS41aDF2MWEuNzUuNzUgMCAwIDAgMS41IDB2LTFoMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTF2LTFaTTQgMmEyIDIgMCAwIDAtMiAydjcuNzVjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTIuNWEyIDIgMCAwIDAtMi0ySDguNzVWNGEyIDIgMCAwIDAtMi0ySDRabTMuMjUgNi43NXYzLjVINGEuNS41IDAgMCAxLS41LS41di0zaDMuNzVabTAtNC43NXYzLjI1SDMuNVY0YzAtLjI4LjIyLS41LjUtLjVoMi43NWMuMjggMCAuNS4yMi41LjVaTTEyIDEyLjI1SDguNzV2LTMuNUgxMmMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNBZGRJbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzQWRkSW4xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMyAxLjVhLjUuNSAwIDAgMC0xIDBWM2gtMS41YS41LjUgMCAwIDAgMCAxSDEydjEuNWEuNS41IDAgMCAwIDEgMFY0aDEuNWEuNS41IDAgMCAwIDAtMUgxM1YxLjVaTTMuNzUgMkMyLjc4IDIgMiAyLjc4IDIgMy43NXY4LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoOC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtM2MwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC41VjMuNzVDOC41IDIuNzggNy43MiAyIDYuNzUgMmgtM1pNNy41IDguNVYxM0gzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1VjguNWg0LjVabTAtNC43NVY3LjVIM1YzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoM2MuNDEgMCAuNzUuMzQuNzUuNzVaTTEyLjI1IDEzSDguNVY4LjVoMy43NWMuNDEgMCAuNzUuMzQuNzUuNzV2M2MwIC40MS0uMzQuNzUtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0FkZEluMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc0FkZEluMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNSAyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djEuNWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjV2MS41YS43NS43NSAwIDAgMS0xLjUgMHYtMS41aC0xLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNXYtMS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTQuNzUgM0MzLjc4IDMgMyAzLjc4IDMgNC43NXYxMC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEwLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00LjVDMTcgOS43OCAxNi4yMiA5IDE1LjI1IDloLTRhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTRDMTEgMy43OCAxMC4yMiAzIDkuMjUgM2gtNC41Wk00LjUgNC43NWMwLS4xNC4xMS0uMjUuMjUtLjI1aDQuNWMuMTQgMCAuMjUuMTEuMjUuMjV2NGMwIC4wOCAwIC4xNy4wMi4yNUg0LjVWNC43NVptNSA1Ljc1djVINC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYxMC41aDVabTEuNSA1di01LjAybC4yNS4wMmg0Yy4xNCAwIC4yNS4xMS4yNS4yNXY0LjVjMCAuMTQtLjExLjI1LS4yNS4yNUgxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNBZGRJbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzQWRkSW4yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNSAzYS41LjUgMCAwIDAtMSAwdjJoLTJhLjUuNSAwIDAgMCAwIDFoMnYyYS41LjUgMCAwIDAgMSAwVjZoMmEuNS41IDAgMCAwIDAtMWgtMlYzWk00LjUgMTdBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTExQzMgMy42NyAzLjY3IDMgNC41IDNIOWMuODMgMCAxLjUuNjcgMS41IDEuNXY1aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFabTYtNi41VjE2aDVhLjUuNSAwIDAgMCAuNS0uNVYxMWEuNS41IDAgMCAwLS41LS41aC01Wm0tMSA1LjV2LTUuNUg0djVhLjUuNSAwIDAgMCAuNS41aDVabTAtMTEuNUEuNS41IDAgMCAwIDkgNEg0LjVhLjUuNSAwIDAgMC0uNS41djVoNS41di01WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0FkZEluMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc0FkZEluMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC41IDNBMi41IDIuNSAwIDAgMSAxMyA1LjVWMTFoNS41YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY1YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTNBMi41IDIuNSAwIDAgMSAzIDE4LjV2LTEzQTIuNSAyLjUgMCAwIDEgNS41IDNoNVptLjUgMTBINXY1LjVjMCAuMjguMjIuNS41LjVIMTF2LTZabTcuNSAwSDEzdjZoNS41YS41LjUgMCAwIDAgLjUtLjV2LTVhLjUuNSAwIDAgMC0uNS0uNVptLTgtOGgtNWEuNS41IDAgMCAwLS41LjVWMTFoNlY1LjVhLjUuNSAwIDAgMC0uNS0uNVptNy4zOC0zSDE4YTEgMSAwIDAgMSAxIC44OFY1aDJhMSAxIDAgMCAxIDEgLjg4VjZhMSAxIDAgMCAxLS44OCAxSDE5djJhMSAxIDAgMCAxLS44OCAxSDE4YTEgMSAwIDAgMS0xLS44OFY3aC0yYTEgMSAwIDAgMS0xLS44OFY2YTEgMSAwIDAgMSAuODgtMUgxN1YzYTEgMSAwIDAgMSAuODgtMUgxOGgtLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0FkZEluMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNBZGRJbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjUgM2MxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY2aDZjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2NS4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg1LjI1QzQuMDEgMjEgMyAyMCAzIDE4Ljc1VjUuMjVDMyA0LjAxIDQgMyA1LjI1IDNoNS4yNVptLjc1IDkuNzVINC41djZjMCAuNDEuMzQuNzUuNzUuNzVoNnYtNi43NVptNy41IDBoLTZ2Ni43NWg2Yy40MSAwIC43NS0uMzQuNzUtLjc1VjEzLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaTTEwLjUgNC41SDUuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXY2aDYuNzV2LTZhLjc1Ljc1IDAgMCAwLS43NS0uNzVaTTE3LjkgMmguMWMuMzggMCAuNy4yOC43NC42NWwuMDEuMXYyLjVoMi41Yy4zOCAwIC43LjI4Ljc0LjY1TDIyIDZjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWgtMi41djIuNWMwIC4zOC0uMjguNy0uNjUuNzRMMTggMTBhLjc1Ljc1IDAgMCAxLS43NC0uNjVsLS4wMS0uMXYtMi41aC0yLjVhLjc1Ljc1IDAgMCAxLS43NC0uNjVMMTQgNmMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDIuNXYtMi41YzAtLjM4LjI4LS43LjY1LS43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNBZGRJbjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNBZGRJbjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjEgMmExIDEgMCAwIDEgMSAxdjNoM2ExIDEgMCAxIDEgMCAyaC0zdjNhMSAxIDAgMSAxLTIgMFY4aC0zYTEgMSAwIDEgMSAwLTJoM1YzYTEgMSAwIDAgMSAxLTFaTTYgM2EzIDMgMCAwIDAtMyAzdjE2YTMgMyAwIDAgMCAzIDNoMTZhMyAzIDAgMCAwIDMtM3YtNmEzIDMgMCAwIDAtMy0zaC03VjZhMyAzIDAgMCAwLTMtM0g2Wm03IDEwSDVWNmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY3Wm0yIDEwdi04aDdhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFoLTdabS0yIDBINmExIDEgMCAwIDEtMS0xdi03aDh2OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNBZGRJbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzQWRkSW4yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yMS4yNSAyYy40MSAwIC43NS4zNC43NS43NVY2aDMuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIydjMuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjcuNWgtMy4yNWEuNzUuNzUgMCAwIDEgMC0xLjVoMy4yNVYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTUuNzUgM0EyLjc1IDIuNzUgMCAwIDAgMyA1Ljc1djE2LjVBMi43NSAyLjc1IDAgMCAwIDUuNzUgMjVoMTYuNUEyLjc1IDIuNzUgMCAwIDAgMjUgMjIuMjVWMTZhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NWgtNy41di03LjVBMi43NSAyLjc1IDAgMCAwIDEyIDNINS43NVptNy41IDEwLjI1SDQuNXYtNy41YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1SDEyYy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djcuNVptMS41IDEwLjI1di04Ljc1aDcuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXY2LjI1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtNy41Wm0tMS41IDBoLTcuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di03LjVoOC43NXY4Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3QyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzTGlzdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOCA0LjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabTAgNmMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVptMCA2YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41Wm0tNi0xYzAtLjgzLjY3LTEuNSAxLjUtMS41aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTFabTAtNkMyIDguNjcgMi42NyA4IDMuNSA4aDFDNS4zMyA4IDYgOC42NyA2IDkuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMUExLjUgMS41IDAgMCAxIDIgMTAuNXYtMVptMC02QzIgMi42NyAyLjY3IDIgMy41IDJoMUM1LjMzIDIgNiAyLjY3IDYgMy41djFDNiA1LjMzIDUuMzMgNiA0LjUgNmgtMUExLjUgMS41IDAgMCAxIDIgNC41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc0xpc3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAyaDFDNS4zMyAyIDYgMi42NyA2IDMuNXYxQzYgNS4zMyA1LjMzIDYgNC41IDZoLTFBMS41IDEuNSAwIDAgMSAyIDQuNXYtMVpNMy41IDNhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFaTTIgOS41QzIgOC42NyAyLjY3IDggMy41IDhoMUM1LjMzIDggNiA4LjY3IDYgOS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xQTEuNSAxLjUgMCAwIDEgMiAxMC41di0xWk0zLjUgOWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMVpNMiAxNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSAyIDE2LjV2LTFabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMVpNOCA0LjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabTAgNmMwLS4yOC4yMi0uNS41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNVptMCA2YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3QyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzTGlzdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAxNkM3LjIgMTYgOCAxNi44IDggMTcuNzV2Mi41QzggMjEuMjIgNy4yIDIyIDYuMjUgMjJoLTIuNUMyLjc4IDIyIDIgMjEuMjIgMiAyMC4yNXYtMi41QzIgMTYuOCAyLjc4IDE2IDMuNzUgMTZoMi41Wm0zLjUgMmgxMS41YS43NS43NSAwIDAgMSAuMSAxLjVIOS43NWEuNzUuNzUgMCAwIDEtLjEtMS41aDExLjYtMTEuNVptLTMuNS05QzcuMiA5IDggOS43OCA4IDEwLjc1djIuNUM4IDE0LjIyIDcuMiAxNSA2LjI1IDE1aC0yLjVDMi43OCAxNSAyIDE0LjIyIDIgMTMuMjV2LTIuNUMyIDkuNzggMi43OCA5IDMuNzUgOWgyLjVabTMuNSAyaDExLjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg5Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTEuNi0xMS41Wm0tMy41LTlDNy4yIDIgOCAyLjc4IDggMy43NXYyLjVDOCA3LjIgNy4yIDggNi4yNSA4aC0yLjVDMi43OCA4IDIgNy4yIDIgNi4yNXYtMi41QzIgMi43OCAyLjc4IDIgMy43NSAyaDIuNVptMy41IDJoMTEuNWEuNzUuNzUgMCAwIDEgLjEgMS41SDkuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxMS42LTExLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzTGlzdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzTGlzdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjUgMTZDNy4yIDE2IDggMTYuOCA4IDE3Ljc1djIuNUM4IDIxLjIyIDcuMiAyMiA2LjI1IDIyaC0yLjVDMi43OCAyMiAyIDIxLjIyIDIgMjAuMjV2LTIuNUMyIDE2LjggMi43OCAxNiAzLjc1IDE2aDIuNVptMCAxLjVoLTIuNWEuMjUuMjUgMCAwIDAtLjI1LjI1djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgyLjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTIuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptMy41LjVoMTEuNWEuNzUuNzUgMCAwIDEgLjEgMS41SDkuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxMS42LTExLjVabS0zLjUtOUM3LjIgOSA4IDkuNzggOCAxMC43NXYyLjVDOCAxNC4yMiA3LjIgMTUgNi4yNSAxNWgtMi41QzIuNzggMTUgMiAxNC4yMiAyIDEzLjI1di0yLjVDMiA5Ljc4IDIuNzggOSAzLjc1IDloMi41Wm0wIDEuNWgtMi41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Mi41YzAgLjE0LjExLjI1LjI1LjI1aDIuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtMi41YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wm0zLjUuNWgxMS41YS43NS43NSAwIDAgMSAuMSAxLjVIOS43NWEuNzUuNzUgMCAwIDEtLjEtMS41aDExLjYtMTEuNVptLTMuNS05QzcuMiAyIDggMi43OCA4IDMuNzV2Mi41QzggNy4yIDcuMiA4IDYuMjUgOGgtMi41QzIuNzggOCAyIDcuMiAyIDYuMjV2LTIuNUMyIDIuNzggMi43OCAyIDMuNzUgMmgyLjVabTAgMS41aC0yLjVhLjI1LjI1IDAgMCAwLS4yNS4yNXYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMi41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVabTMuNS41aDExLjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg5Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTEuNi0xMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc0xpc3REZXRhaWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzTGlzdERldGFpbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXYyQzIgOC4zMyAyLjY3IDkgMy41IDloMkM2LjMzIDkgNyA4LjMzIDcgNy41di0yQzcgNC42NyA2LjMzIDQgNS41IDRoLTJabTYgMWEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptLTYgNGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJabTYgMWEuNS41IDAgMCAwIDAgMWg4YS41LjUgMCAwIDAgMC0xaC04Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNMaXN0RGV0YWlsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNMaXN0RGV0YWlsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy41IDRDMi42NyA0IDIgNC42NyAyIDUuNXYyQzIgOC4zMyAyLjY3IDkgMy41IDloMkM2LjMzIDkgNyA4LjMzIDcgNy41di0yQzcgNC42NyA2LjMzIDQgNS41IDRoLTJaTTMgNS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMlpNOS41IDVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabS02IDRjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWk0zIDEyLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0yWm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMWgtOFptMCAyYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzTGlzdERldGFpbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNMaXN0RGV0YWlsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00LjI1IDRDMy4wMSA0IDIgNSAyIDYuMjV2Mi41QzIgOS45OSAzIDExIDQuMjUgMTFoMi41QzcuOTkgMTEgOSAxMCA5IDguNzV2LTIuNUM5IDUuMDEgOCA0IDYuNzUgNGgtMi41Wm03IDFhLjc1Ljc1IDAgMCAwIDAgMS41aDEwYS43NS43NSAwIDAgMCAwLTEuNWgtMTBabTAgM2EuNzUuNzUgMCAwIDAgMCAxLjVoN2EuNzUuNzUgMCAwIDAgMC0xLjVoLTdabS03IDVDMy4wMSAxMyAyIDE0IDIgMTUuMjV2Mi41QzIgMTguOTkgMyAyMCA0LjI1IDIwaDIuNUM3Ljk5IDIwIDkgMTkgOSAxNy43NXYtMi41QzkgMTQuMDEgOCAxMyA2Ljc1IDEzaC0yLjVabTcgMWEuNzUuNzUgMCAwIDAgMCAxLjVoMTBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xMFptMCAzYS43NS43NSAwIDAgMCAwIDEuNWg3YS43NS43NSAwIDAgMCAwLTEuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNMaXN0RGV0YWlsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNMaXN0RGV0YWlsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC4yNSA0QzMuMDEgNCAyIDUgMiA2LjI1djIuNUMyIDkuOTkgMyAxMSA0LjI1IDExaDIuNUM3Ljk5IDExIDkgMTAgOSA4Ljc1di0yLjVDOSA1LjAxIDggNCA2Ljc1IDRoLTIuNVpNMy41IDYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNVpNMTEuMjUgNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xMFptMCAzYS43NS43NSAwIDAgMCAwIDEuNWg3YS43NS43NSAwIDAgMCAwLTEuNWgtN1ptLTcgNUMzLjAxIDEzIDIgMTQgMiAxNS4yNXYyLjVDMiAxOC45OSAzIDIwIDQuMjUgMjBoMi41QzcuOTkgMjAgOSAxOSA5IDE3Ljc1di0yLjVDOSAxNC4wMSA4IDEzIDYuNzUgMTNoLTIuNVptLS43NSAyLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NXYyLjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1di0yLjVaTTExLjI1IDE0YS43NS43NSAwIDAgMCAwIDEuNWgxMGEuNzUuNzUgMCAwIDAgMC0xLjVoLTEwWm0wIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDdhLjc1Ljc1IDAgMCAwIDAtMS41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc1NldHRpbmdzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc1NldHRpbmdzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMi44MSAxLjQ1YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDguOTYgMy4xOEExLjUgMS41IDAgMCAwIDcuNSAyaC0zQzMuNjcgMiAzIDIuNjcgMyAzLjV2Mi43Yy4zMi0uMDguNjUtLjE1IDEtLjE4VjMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI3IDAgLjUuMjIuNS41VjdoLS4zNGMuNTIuMzYuOTcuODIgMS4zNCAxLjMzVjhoMy41Yy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNUg5Ljk4Yy0uMDMuMzQtLjEuNjgtLjE5IDFoMi43MWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uNy0uNDgtMS4yOS0xLjEyLTEuNDVsMS43LTEuN2ExLjUgMS41IDAgMCAwIDAtMi4xM2wtMS43Ny0xLjc3Wk05IDUuNDIgMTAuNTggN0g5VjUuNDJaTTIuMDcgOC40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDcuMTJhNC43MSA0LjcxIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMiAxNC42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSA3IDguMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNi41NVpNNC41IDEyLjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc1NldHRpbmdzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNTZXR0aW5nczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEyLjgxIDEuNDVhMS41IDEuNSAwIDAgMC0yLjEyIDBMOC45NiAzLjE4QTEuNSAxLjUgMCAwIDAgNy41IDJoLTNDMy42NyAyIDMgMi42NyAzIDMuNXYyLjdjLjMyLS4wOC42NS0uMTUgMS0uMThWMy41YzAtLjI4LjIyLS41LjUtLjVoM2MuMjcgMCAuNS4yMi41LjVWN2gtLjM0Yy41Mi4zNi45Ny44MiAxLjM0IDEuMzNWOGgzLjVjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41SDkuOThjLS4wMy4zNC0uMS42OC0uMTkgMWgyLjcxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS43LS40OC0xLjI5LTEuMTItMS40NWwxLjctMS43YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0xLjc3LTEuNzdaTTEwLjU4IDdIOVY1LjQyTDEwLjU4IDdabS44Mi00Ljg0Yy4yLS4yLjUtLjIuNyAwbDEuNzcgMS43N2MuMi4yLjIuNSAwIC43TDEyLjEgNi40YS41LjUgMCAwIDEtLjcgMEw5LjYzIDQuNjNhLjUuNSAwIDAgMSAwLS43bDEuNzctMS43N1pNMi4wNyA4LjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcxIDQuNzEgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAyIDE0LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDcgOC4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wk00LjUgMTIuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzU2V0dGluZ3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzU2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE1LjUgMTdoLTUuMWMuMTYtLjMyLjMtLjY1LjQtMWg0LjdhLjUuNSAwIDAgMCAuNS0uNDFWMTFhLjUuNSAwIDAgMC0uNDEtLjVIMTAuNXYxLjdhNS41MSA1LjUxIDAgMCAwLTEtMS40N3YtLjIzaC0uMjJjLS40NC0uNC0uOTQtLjc1LTEuNDktMUg5LjV2LTVhLjUuNSAwIDAgMC0uMzMtLjQ3bC0uMDgtLjAyTDkgNEg0LjVhLjUuNSAwIDAgMC0uNS40MVY5LjJjLS4zNS4xLS42OC4yNC0xIC40VjQuNWMwLS43OC42LTEuNDIgMS4zNi0xLjVIOWMuNzggMCAxLjQyLjYgMS41IDEuMzZ2LjM5bDIuMTktMi4yNmExLjUgMS41IDAgMCAxIDItLjE0bC4xMi4xIDIuNzYgMi43MmMuNTUuNTUuNiAxLjQyLjExIDIuMDFsLS4xLjEyLTIuMzEgMi4yaC4yM2MuNzggMCAxLjQyLjYgMS41IDEuMzZ2NC42NGMwIC43OC0uNiAxLjQyLTEuMzYgMS41aC0uMTRabS01LTkuM3YxLjhoMS43OUwxMC41IDcuN1ptLTcuNDMgMy43NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDcuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDMgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgOCAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wk01LjUgMTUuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzU2V0dGluZ3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXBwc1NldHRpbmdzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTUuNSAxN2gtNS4xYy4xNi0uMzIuMy0uNjUuNC0xaDQuN2EuNS41IDAgMCAwIC41LS40MVYxMWEuNS41IDAgMCAwLS40MS0uNUgxMC41djEuN2E1LjUxIDUuNTEgMCAwIDAtMS0xLjQ3di0uMjNoLS4yMmMtLjQ0LS40LS45NC0uNzUtMS40OS0xSDkuNXYtNWEuNS41IDAgMCAwLS4zMy0uNDdsLS4wOC0uMDJMOSA0SDQuNWEuNS41IDAgMCAwLS41LjQxVjkuMmMtLjM1LjEtLjY4LjI0LTEgLjRWNC41YzAtLjc4LjYtMS40MiAxLjM2LTEuNUg5Yy43OCAwIDEuNDIuNiAxLjUgMS4zNnYuMzlsMi4xOS0yLjI2YTEuNSAxLjUgMCAwIDEgMi0uMTRsLjEyLjEgMi43NiAyLjcyYy41NS41NS42IDEuNDIuMTEgMi4wMWwtLjEuMTItMi4zMSAyLjJoLjIzYy43OCAwIDEuNDIuNiAxLjUgMS4zNnY0LjY0YzAgLjc4LS42IDEuNDItMS4zNiAxLjVoLS4xNFptLTUtOS4zdjEuOGgxLjc5TDEwLjUgNy43Wm0zLjYyLTQuNTNhLjUuNSAwIDAgMC0uNjQtLjA1bC0uMDcuMDYtMi42MiAyLjcxYS41LjUgMCAwIDAtLjA1LjYzbC4wNi4wNyAyLjYyIDIuNjJjLjE2LjE3LjQyLjIuNjEuMDdsLjA4LS4wNiAyLjc2LTIuNjNhLjUuNSAwIDAgMCAuMDYtLjY0bC0uMDYtLjA3LTIuNzUtMi43Wk0zLjA3IDExLjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ny4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMyAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSA4IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVaTTUuNSAxNS41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNTaGllbGQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzU2hpZWxkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMi44MSAxLjQ1YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDguOTYgMy4xOEExLjUgMS41IDAgMCAwIDcuNSAyaC0zQzMuNjcgMiAzIDIuNjcgMyAzLjV2Mi41OGMuMzItLjEuNjctLjEgMSAwVjMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI3IDAgLjUuMjIuNS41VjdINS4xOWMuNDMuMzQuOTUuNjQgMS41Mi43Mi4yNC4wNC40Ny4xMy42OC4yOGguNnYxLjFsLjAxLjFWMTJoLS4wMmMtLjAzLjM1LS4wOS42OS0uMTcgMWg0LjY5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS43LS40OC0xLjI5LTEuMTMtMS40NWwxLjcxLTEuN2ExLjUgMS41IDAgMCAwIDAtMi4xM2wtMS43Ny0xLjc3Wk05IDUuNDIgMTAuNTggN0g5VjUuNDJaTTkgMTJWOGgzLjVjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41SDlaTTMuODggNy4xNmMuNS41MyAxLjQ4IDEuMzggMi42OCAxLjU1QS41LjUgMCAwIDEgNyA5LjJ2Mi4zM2MwIDMuMTItMi43OCA0LjI1LTMuMzkgNC40NmEuMzQuMzQgMCAwIDEtLjIyIDBjLS42LS4yLTMuMzktMS4zNC0zLjM5LTQuNDZWOS4xOWMwLS4yNC4yLS40NC40NC0uNDhhNC45NSA0Ljk1IDAgMCAwIDIuNjgtMS41NWMuMi0uMjEuNTYtLjIxLjc2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcHBzU2hpZWxkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FwcHNTaGllbGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi44MSAxLjQ1YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDguOTYgMy4xOEExLjUgMS41IDAgMCAwIDcuNSAyaC0zQzMuNjcgMiAzIDIuNjcgMyAzLjV2Mi41OGMuMzItLjEuNjctLjEgMSAwVjMuNWMwLS4yOC4yMi0uNS41LS41aDNjLjI3IDAgLjUuMjIuNS41VjdINS4xOWMuNDMuMzQuOTUuNjQgMS41Mi43Mi4yNC4wNC40Ny4xMy42OC4yOGguNnYxLjFsLjAxLjFWMTJoLS4wMmMtLjAzLjM1LS4wOS42OS0uMTcgMWg0LjY5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS43LS40OC0xLjI5LTEuMTMtMS40NWwxLjcxLTEuN2ExLjUgMS41IDAgMCAwIDAtMi4xM2wtMS43Ny0xLjc3Wk0xMC41OCA3SDlWNS40MkwxMC41OCA3Wm0uODItNC44NGMuMi0uMi41LS4yLjcgMGwxLjc3IDEuNzdjLjIuMi4yLjUgMCAuN0wxMi4xIDYuNGEuNS41IDAgMCAxLS43IDBMOS42MyA0LjYzYS41LjUgMCAwIDEgMC0uN2wxLjc3LTEuNzdaTTkgOGgzLjVjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41SDlWOFptLTUuMTItLjg0Yy41LjUzIDEuNDggMS4zOCAyLjY4IDEuNTVBLjUuNSAwIDAgMSA3IDkuMnYyLjMzYzAgMy4xMi0yLjc4IDQuMjUtMy4zOSA0LjQ2YS4zNC4zNCAwIDAgMS0uMjIgMGMtLjYtLjItMy4zOS0xLjM0LTMuMzktNC40NlY5LjE5YzAtLjI0LjItLjQ0LjQ0LS40OGE0Ljk1IDQuOTUgMCAwIDAgMi42OC0xLjU1Yy4yLS4yMS41Ni0uMjEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFwcHNTaGllbGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzU2hpZWxkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS41IDE3SDguNDJjLjE2LS4zLjMtLjY0LjM5LTFoLjY5di01LjVINi45OGE0Ljc2IDQuNzYgMCAwIDEtMS4zNS0xSDkuNXYtNWEuNS41IDAgMCAwLS4zMy0uNDdsLS4wOC0uMDJMOSA0SDQuNWEuNS41IDAgMCAwLS41LjQxdjQuNjdjLS4yMi4wOC0uNDMuMi0uNi4zOWE1LjcgNS43IDAgMCAxLS40LjM4VjQuNWMwLS43OC42LTEuNDIgMS4zNi0xLjVIOWMuNzggMCAxLjQyLjYgMS41IDEuMzZ2LjM5bDIuMTktMi4yNmExLjUgMS41IDAgMCAxIDItLjE0bC4xMi4xIDIuNzYgMi43MmMuNTUuNTUuNiAxLjQyLjExIDIuMDFsLS4xLjEyLTIuMzEgMi4yaC4yM2MuNzggMCAxLjQyLjYgMS41IDEuMzZ2NC42NGMwIC43OC0uNiAxLjQyLTEuMzYgMS41aC0uMTRabTAtNi41aC01VjE2aDVhLjUuNSAwIDAgMCAuNS0uNDFWMTFhLjUuNSAwIDAgMC0uNDEtLjVoLS4wOVptLTUtMi44djEuOGgxLjc5TDEwLjUgNy43Wm0tNS42MiAyLjQ2Yy41LjUzIDEuNDggMS4zOCAyLjY4IDEuNTVhLjUuNSAwIDAgMSAuNDQuNDh2Mi4zM2MwIDMuMTItMi43OCA0LjI1LTMuMzkgNC40NmEuMzQuMzQgMCAwIDEtLjIyIDBjLS42LS4yLTMuMzktMS4zNC0zLjM5LTQuNDZ2LTIuMzNjMC0uMjQuMi0uNDQuNDQtLjQ4YTQuOTUgNC45NSAwIDAgMCAyLjY4LTEuNTVjLjItLjIxLjU2LS4yMS43NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXBwc1NoaWVsZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcHBzU2hpZWxkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTUuNSAxN0g4LjQyYy4xNi0uMy4zLS42NC4zOS0xaC42OXYtNS41SDYuOThhNC43NiA0Ljc2IDAgMCAxLTEuMzUtMUg5LjV2LTVhLjUuNSAwIDAgMC0uMzMtLjQ3bC0uMDgtLjAyTDkgNEg0LjVhLjUuNSAwIDAgMC0uNS40MXY0LjY3Yy0uMjIuMDgtLjQzLjItLjYuMzlhNS43IDUuNyAwIDAgMS0uNC4zOFY0LjVjMC0uNzguNi0xLjQyIDEuMzYtMS41SDljLjc4IDAgMS40Mi42IDEuNSAxLjM2di4zOWwyLjE5LTIuMjZhMS41IDEuNSAwIDAgMSAyLS4xNGwuMTIuMSAyLjc2IDIuNzJjLjU1LjU1LjYgMS40Mi4xMSAyLjAxbC0uMS4xMi0yLjMxIDIuMmguMjNjLjc4IDAgMS40Mi42IDEuNSAxLjM2djQuNjRjMCAuNzgtLjYgMS40Mi0xLjM2IDEuNWgtLjE0Wm0wLTYuNWgtNVYxNmg1YS41LjUgMCAwIDAgLjUtLjQxVjExYS41LjUgMCAwIDAtLjQxLS41aC0uMDlabS01LTIuOHYxLjhoMS43OUwxMC41IDcuN1ptMy42Mi00LjUzYS41LjUgMCAwIDAtLjY0LS4wNWwtLjA3LjA2LTIuNjIgMi43MWEuNS41IDAgMCAwLS4wNS42M2wuMDYuMDcgMi42MSAyLjYyYy4xNy4xNy40My4yLjYyLjA3bC4wOC0uMDYgMi43Ni0yLjYzYS41LjUgMCAwIDAgLjA1LS42NGwtLjA1LS4wNy0yLjc1LTIuN1ptLTkuMjQgNi45OWMuNS41MyAxLjQ4IDEuMzggMi42OCAxLjU1YS41LjUgMCAwIDEgLjQ0LjQ4djIuMzNjMCAzLjEyLTIuNzggNC4yNS0zLjM5IDQuNDZhLjM0LjM0IDAgMCAxLS4yMiAwYy0uNi0uMi0zLjM5LTEuMzQtMy4zOS00LjQ2di0yLjMzYzAtLjI0LjItLjQ0LjQ0LS40OGE0Ljk1IDQuOTUgMCAwIDAgMi42OC0xLjU1Yy4yLS4yMS41Ni0uMjEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWM1ptMSAzaDEydjUuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSAyIDExLjVWNlptNC41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYuNSA4YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTEgMy41QzEgMi42NyAxLjY3IDIgMi41IDJoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC42NS0uNDIgMS4yLTEgMS40MXY1LjU5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDIgMTEuNVY1LjkxYy0uNTgtLjItMS0uNzYtMS0xLjQxdi0xWk0yLjUgM2EuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTExWk0zIDZ2NS41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41VjZIM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDQuMjVDMiAzLjU2IDIuNTYgMyAzLjI1IDNoMTMuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxLjVDMTggNi40NCAxNy40NCA3IDE2Ljc1IDdIMy4yNUMyLjU2IDcgMiA2LjQ0IDIgNS43NXYtMS41Wk0zIDhoMTR2NmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y4Wm01LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDEwYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTIgNC43NUMyIDMuNzggMi43OCAzIDMuNzUgM2gxMi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEuNWMwIC43LS40IDEuMy0xIDEuNThWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNy44M2MtLjYtLjI4LTEtLjg4LTEtMS41OHYtMS41Wk0zLjc1IDRhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41YS43NS43NSAwIDAgMC0uNzUtLjc1SDMuNzVaTTQgOHY2YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjhINFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaDE1Yy44MyAwIDEuNS42NyAxLjUgMS41VjZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xNUExLjUgMS41IDAgMCAxIDMgNlY0LjVaTTQgOWgxNnY4LjI1QTMuNzUgMy43NSAwIDAgMSAxNi4yNSAyMWgtOC41QTMuNzUgMy43NSAwIDAgMSA0IDE3LjI1VjlabTYuMjUgMmEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuMjUgMTFhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVpNMyA1LjI1QzMgNC4wMSA0IDMgNS4yNSAzaDEzLjVDMTkuOTkgMyAyMSA0IDIxIDUuMjV2MS41YzAgLjc4LS40IDEuNDctMSAxLjg3djguNjNBMy43NSAzLjc1IDAgMCAxIDE2LjI1IDIxaC04LjVBMy43NSAzLjc1IDAgMCAxIDQgMTcuMjVWOC42MmMtLjYtLjQtMS0xLjA5LTEtMS44N3YtMS41Wk01LjUgOXY4LjI1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDguNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY5aC0xM1ptLS4yNS00LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTMuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41YS43NS43NSAwIDAgMC0uNzUtLjc1SDUuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2gxOWMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTlBMS41IDEuNSAwIDAgMSAzIDYuNXYtMlptMSA1aDIwdjEwLjc1QTQuNzUgNC43NSAwIDAgMSAxOS4yNSAyNUg4Ljc1QTQuNzUgNC43NSAwIDAgMSA0IDIwLjI1VjkuNVptNy43NSAzYS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMS43NSAxMi41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaTTMgNS4yNUMzIDQuMDEgNCAzIDUuMjUgM2gxNy41QzIzLjk5IDMgMjUgNCAyNSA1LjI1djJjMCAuNzgtLjQgMS40Ny0xIDEuODd2MTEuMTNBNC43NSA0Ljc1IDAgMCAxIDE5LjI1IDI1SDguNzVBNC43NSA0Ljc1IDAgMCAxIDQgMjAuMjVWOS4xMmMtLjYtLjQtMS0xLjA5LTEtMS44N3YtMlpNNS41IDkuNXYxMC43NWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDEwLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY5LjVoLTE3Wm0tLjI1LTVhLjc1Ljc1IDAgMCAwLS43NS43NXYyYzAgLjQxLjM0Ljc1Ljc1Ljc1aDE3LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTJhLjc1Ljc1IDAgMCAwLS43NS0uNzVINS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0zIDVjMC0xLjEuOS0yIDItMmgyMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNVptMSA2aDI0djEyLjVhNS41IDUuNSAwIDAgMS01LjUgNS41aC0xM0E1LjUgNS41IDAgMCAxIDQgMjMuNVYxMVptOSAzYTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0yaC02WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZTMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZTMyTGlnaHQnLCBcIjMyXCIsIFtcIk0xMiAxNC41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0xNi00LjI2VjIzLjVhNS41IDUuNSAwIDAgMS01LjUgNS41aC0xM0E1LjUgNS41IDAgMCAxIDQgMjMuNVYxMC4yNEEzIDMgMCAwIDEgMyA4VjZhMyAzIDAgMCAxIDMtM2gyMGEzIDMgMCAwIDEgMyAzdjJhMyAzIDAgMCAxLTEgMi4yNFpNNiA0YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDIwYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDZabTIxIDYuODNhMyAzIDAgMCAxLTEgLjE3SDZhMyAzIDAgMCAxLTEtLjE3VjIzLjVBNC41IDQuNSAwIDAgMCA5LjUgMjhoMTNhNC41IDQuNSAwIDAgMCA0LjUtNC41VjEwLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTMgMTRhMSAxIDAgMSAwIDAgMmg2YTEgMSAwIDEgMCAwLTJoLTZaTTMgNmEzIDMgMCAwIDEgMy0zaDIwYTMgMyAwIDAgMSAzIDN2MmEzIDMgMCAwIDEtMSAyLjI0VjIzLjVhNS41IDUuNSAwIDAgMS01LjUgNS41aC0xM0E1LjUgNS41IDAgMCAxIDQgMjMuNVYxMC4yNEEzIDMgMCAwIDEgMyA4VjZabTMgNXYxMi41QTMuNSAzLjUgMCAwIDAgOS41IDI3aDEzYTMuNSAzLjUgMCAwIDAgMy41LTMuNVYxMUg2Wm0wLTZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMjBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk02LjI1IDguNzVhMi41IDIuNSAwIDAgMSAyLjUtMi41aDMwLjVhMi41IDIuNSAwIDAgMSAyLjUgMi41djRhMi41IDIuNSAwIDAgMS0yLjUgMi41SDguNzVhMi41IDIuNSAwIDAgMS0yLjUtMi41di00Wm0yIDloMzEuNVYzNC41YzAgNC0zLjI1IDcuMjUtNy4yNSA3LjI1aC0xN2MtNCAwLTcuMjUtMy4yNS03LjI1LTcuMjVWMTcuNzVabTEyLjI1IDQuNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoN2ExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yMC41IDIyLjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg3YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtN1pNNi4yNSAxMEEzLjc1IDMuNzUgMCAwIDEgMTAgNi4yNWgyOEEzLjc1IDMuNzUgMCAwIDEgNDEuNzUgMTB2NGMwIDEuNDQtLjgxIDIuNjktMiAzLjMyVjM0LjVjMCA0LTMuMjUgNy4yNS03LjI1IDcuMjVoLTE3Yy00IDAtNy4yNS0zLjI1LTcuMjUtNy4yNVYxNy4zMmEzLjc1IDMuNzUgMCAwIDEtMi0zLjMydi00Wm00LjUgNy43NVYzNC41YTQuNzUgNC43NSAwIDAgMCA0Ljc1IDQuNzVoMTdhNC43NSA0Ljc1IDAgMCAwIDQuNzUtNC43NVYxNy43NWgtMjYuNVptLS43NS05Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXY0YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDI4Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNGMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVIMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFjazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiAyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDJabTAgNGg5LjVhNS41IDUuNSAwIDAgMC00LjkgOEg0LjVBMi41IDIuNSAwIDAgMSAyIDExLjVWNlptOS41IDEwYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTQgMTMuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDkuNzFsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43TDkuOSA4LjlhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZUFycm93QmFjazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlQXJyb3dCYWNrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSAzLjVDMSAyLjY3IDEuNjcgMiAyLjUgMmgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjY1LS40MiAxLjItMSAxLjQxdi42OWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY2SDN2NS41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuN2MuMS4zNS4yNC42OC40IDFINC41QTIuNSAyLjUgMCAwIDEgMiAxMS41VjUuOTFjLS41OC0uMi0xLS43Ni0xLTEuNDF2LTFaTTIuNSAzYS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDExYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMTFabTkgMTNhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNCAxMy4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOS43MWwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdMOS45IDguOWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA0LjI1QzIgMy41NiAyLjU2IDMgMy4yNSAzaDEzLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2MS41QzE4IDYuNDQgMTcuNDQgNyAxNi43NSA3SDMuMjVDMi41NiA3IDIgNi40NCAyIDUuNzV2LTEuNVpNMyA4aDE0djEuNmE1LjQ4IDUuNDggMCAwIDAtNS42Ni40SDguNWEuNS41IDAgMCAwIDAgMWgxLjc2YTUuNDggNS40OCAwIDAgMC0uNjYgNkg2YTMgMyAwIDAgMS0zLTNWOFptMTEuNSAxMWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVBcnJvd0JhY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFjazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSAxMGEuNS41IDAgMCAwIDAgMWgxLjc2Yy4zMS0uMzguNjctLjcyIDEuMDgtMUg4LjVaTTYgMTZoMy4yYy4xLjM1LjI0LjY4LjQgMUg2YTMgMyAwIDAgMS0zLTNWNy44M2MtLjYtLjI4LTEtLjg4LTEtMS41OHYtMS41QzIgMy43OCAyLjc4IDMgMy43NSAzaDEyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41YzAgLjctLjQgMS4zLTEgMS41OFY5LjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWOEg0djZjMCAxLjEuOSAyIDIgMlpNMy43NSA0YS43NS43NSAwIDAgMC0uNzUuNzV2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTEuNWEuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjc1Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZUFycm93QmFjazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVBcnJvd0JhY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoMTVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTE1QTEuNSAxLjUgMCAwIDEgMyA2VjQuNVpNNCA5aDE2djIuNWE2LjQ4IDYuNDggMCAwIDAtNS41LjIzYy0uMDEtLjQtLjM0LS43My0uNzUtLjczaC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuMWE2LjQ5IDYuNDkgMCAwIDAtMS4zMyA4LjVINy43NUEzLjc1IDMuNzUgMCAwIDEgNCAxNy4yNVY5Wm0xOSA4LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYuNjUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoMi4wNGMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC0yLjA0bC42NC0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVBcnJvd0JhY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC4yNSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoMy4xYy4zNS0uMy43NC0uNTUgMS4xNS0uNzctLjAxLS40LS4zNC0uNzMtLjc1LS43M2gtMy41Wm0tMi41IDguNWgzLjU2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg3Ljc1QTMuNzUgMy43NSAwIDAgMSA0IDE3LjI1VjguNjJjLS42LS40LTEtMS4wOS0xLTEuODd2LTEuNUMzIDQuMDEgNCAzIDUuMjUgM2gxMy41QzE5Ljk5IDMgMjEgNCAyMSA1LjI1djEuNWMwIC43OC0uNCAxLjQ3LTEgMS44N3YyLjg4Yy0uNDctLjItLjk4LS4zNC0xLjUtLjQyVjloLTEzdjguMjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVabS0yLjUtMTVhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTMuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMS41YS43NS43NSAwIDAgMC0uNzUtLjc1SDUuMjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYuNjUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoMi4wNGMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC0yLjA0bC42NC0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFjazI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2gxOWMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTlBMS41IDEuNSAwIDAgMSAzIDYuNXYtMlptMSA1aDIwdjQuMzdBNy41IDcuNSAwIDAgMCAxNC41IDI1SDguNzVBNC43NSA0Ljc1IDAgMCAxIDQgMjAuMjVWOS41Wm03Ljc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNVptMTUuMjUgOGE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tOC4xNS0yLjY1YS41LjUgMCAwIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMMTcuNzEgMjBoMi41NEEyLjc1IDIuNzUgMCAwIDEgMjMgMjIuNzVWMjNhLjUuNSAwIDAgMCAxIDB2LS4yNUEzLjc1IDMuNzUgMCAwIDAgMjAuMjUgMTloLTIuNTRsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZUFycm93QmFjazI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlQXJyb3dCYWNrMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTEuNzUgMTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41Wk0zIDUuMjVDMyA0LjAxIDQgMyA1LjI1IDNoMTcuNUMyMy45OSAzIDI1IDQgMjUgNS4yNXYyYzAgLjc4LS40IDEuNDctMSAxLjg3djQuNzVhNy40NSA3LjQ1IDAgMCAwLTEuNS0uNlY5LjVoLTE3djEwLjc1YzAgMS44IDEuNDYgMy4yNSAzLjI1IDMuMjVoNC44N2MuMjQuNTQuNTMgMS4wNC44OCAxLjVIOC43NUE0Ljc1IDQuNzUgMCAwIDEgNCAyMC4yNVY5LjEyYy0uNi0uNC0xLTEuMDktMS0xLjg3di0yWm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djJjMCAuNDEuMzQuNzUuNzUuNzVoMTcuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMmEuNzUuNzUgMCAwIDAtLjc1LS43NUg1LjI1Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS04LjE1LTIuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxNy43MSAyMGgyLjU0QTIuNzUgMi43NSAwIDAgMSAyMyAyMi43NVYyM2EuNS41IDAgMCAwIDEgMHYtLjI1QTMuNzUgMy43NSAwIDAgMCAyMC4yNSAxOWgtMi41NGwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZUFycm93QmFjazMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoMjJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVabTEgNmgyNHY0LjUyYTguOTYgOC45NiAwIDAgMC04LjEtLjk3QTEgMSAwIDAgMCAxOSAxNGgtNmExIDEgMCAxIDAgMCAyaDQuMzRhOC45OCA4Ljk4IDAgMCAwLTEuMDUgMTNIOS41QTUuNSA1LjUgMCAwIDEgNCAyMy41VjExWm0xOSAxOS41YTcuNSA3LjUgMCAxIDAgMC0xNSA3LjUgNy41IDAgMCAwIDAgMTVabS0xLjIyLTEwLjIyLTEuMjIgMS4yMmgyLjY5YzIuMzUgMCA0LjI1IDEuOSA0LjI1IDQuMjV2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNUEyLjc1IDIuNzUgMCAwIDAgMjMuMjUgMjNoLTIuNjlsMS4yMiAxLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLjUtMi41YS43NS43NSAwIDEgMSAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVBcnJvd0JhY2szMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMyAxNGExIDEgMCAxIDAgMCAyaDQuMzRhOC45OSA4Ljk5IDAgMCAxIDIuNTUtMS40NUExIDEgMCAwIDAgMTkgMTRoLTZaTTkuNSAyN2g1LjQ0Yy4zNi43My44MSAxLjQgMS4zNSAySDkuNUE1LjUgNS41IDAgMCAxIDQgMjMuNVYxMC4yNEEzIDMgMCAwIDEgMyA4VjZhMyAzIDAgMCAxIDMtM2gyMGEzIDMgMCAwIDEgMyAzdjJhMyAzIDAgMCAxLTEgMi4yNHY1LjI4YTguOTcgOC45NyAwIDAgMC0yLTFWMTFINnYxMi41QTMuNSAzLjUgMCAwIDAgOS41IDI3Wk02IDVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMjBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlptMTcgMjUuNWE3LjUgNy41IDAgMSAwIDAtMTUgNy41IDcuNSAwIDAgMCAwIDE1Wm0tMS4yMi0xMC4yMi0xLjIyIDEuMjJoMi42OWMyLjM1IDAgNC4yNSAxLjkgNC4yNSA0LjI1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVBMi43NSAyLjc1IDAgMCAwIDIzLjI1IDIzaC0yLjY5bDEuMjIgMS4yMmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMSAwLTEuMDZsMi41LTIuNWEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZUFycm93QmFjazQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVBcnJvd0JhY2s0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTYuMjUgOC43NWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoMzAuNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVIOC43NWEyLjUgMi41IDAgMCAxLTIuNS0yLjV2LTRabTIgOWgzMS41djUuMTVhMTIuOTcgMTIuOTcgMCAwIDAtMTEgLjd2LS4xYzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtN2ExLjI1IDEuMjUgMCAxIDAgMCAyLjVIMjdhMTIuOTggMTIuOTggMCAwIDAtMy4xMSAxN0gxNS41Yy00IDAtNy4yNS0zLjI1LTcuMjUtNy4yNVYxNy43NVpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTQuMy0zLjNhMSAxIDAgMCAwLTEuNC0xLjRsLTMgM2ExIDEgMCAwIDAgMCAxLjRsMyAzYTEgMSAwIDAgMCAxLjQtMS40TDMwLjQyIDM1SDM2YTQgNCAwIDAgMSA0IDQgMSAxIDAgMSAwIDIgMCA2IDYgMCAwIDAtNi02aC01LjU5bDEuMy0xLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlQXJyb3dCYWNrNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVBcnJvd0JhY2s0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yMC41IDIyLjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNUgyN2MuNTUtLjQzIDEuMTMtLjgxIDEuNzUtMS4xNXYtLjFjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC03Wm0tNSAxN2g3LjIxYy4zLjg4LjcgMS43MiAxLjE4IDIuNUgxNS41Yy00IDAtNy4yNS0zLjI1LTcuMjUtNy4yNVYxNy4zMmEzLjc1IDMuNzUgMCAwIDEtMi0zLjMydi00QTMuNzUgMy43NSAwIDAgMSAxMCA2LjI1aDI4QTMuNzUgMy43NSAwIDAgMSA0MS43NSAxMHY0YzAgMS40NC0uODEgMi42OS0yIDMuMzJ2NS41OGExMi45IDEyLjkgMCAwIDAtMi41LS43di00LjQ1aC0yNi41VjM0LjVhNC43NSA0Ljc1IDAgMCAwIDQuNzUgNC43NVpNMTAgOC43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2NGMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgyOGMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTRjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDEwWk00NiAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xNC4zLTMuM2ExIDEgMCAwIDAtMS40LTEuNGwtMyAzYTEgMSAwIDAgMCAwIDEuNGwzIDNhMSAxIDAgMCAwIDEuNC0xLjRMMzAuNDIgMzVIMzZhNCA0IDAgMCAxIDQgNCAxIDEgMCAxIDAgMiAwIDYgNiAwIDAgMC02LTZoLTUuNTlsMS4zLTEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVNdWx0aXBsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiAxYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDJabTAgNHY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjVIMlptMy41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxLS41LS41Wk0xMyA1LjA5Yy41OC4yIDEgLjc2IDEgMS40MVYxMmEzIDMgMCAwIDEtMyAzSDZhMiAyIDAgMCAxLTEuNzMtMUgxMWEyIDIgMCAwIDAgMi0yVjUuMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlTXVsdGlwbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZU11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiA2YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFINlpNMiAxYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxdjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNWExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgyWm0xIDEwVjVoOHY2YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xWk0yIDJoMTB2MkgyVjJabTEyIDQuNWMwLS42NS0uNDItMS4yLTEtMS40MVYxMmEyIDIgMCAwIDEtMiAySDQuMjdjLjM0LjYuOTkgMSAxLjczIDFoNWEzIDMgMCAwIDAgMy0zVjYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVNdWx0aXBsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXYxQzIgNS4zMyAyLjY3IDYgMy41IDZoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTE1IDdIM3Y1LjVBMy41IDMuNSAwIDAgMCA2LjUgMTZoNWEzLjUgMy41IDAgMCAwIDMuNS0zLjVWN1pNNyA4LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTguNSAxOGMtLjk1IDAtMS44Mi0uMzgtMi40NS0xaDYuNDVhMy41IDMuNSAwIDAgMCAzLjUtMy41VjcuMDljLjU4LjIgMSAuNzYgMSAxLjQxdjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVNdWx0aXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSA4YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabS00LTZDMi42NyAyIDIgMi42NyAyIDMuNXYyYzAgLjY2LjQyIDEuMjEgMSAxLjQyQS41LjUgMCAwIDAgMyA3djUuNUEzLjUgMy41IDAgMCAwIDYuNSAxNmg1YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY3YS41LjUgMCAwIDAgMC0uMDhjLjU4LS4yIDEtLjc2IDEtMS40MnYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWk00IDEyLjVWN2gxMHY1LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01QTIuNSAyLjUgMCAwIDEgNCAxMi41Wm0tMS05YzAtLjI4LjIyLS41LjUtLjVoMTFjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di0yWk04LjUgMThjLS45NSAwLTEuODItLjM4LTIuNDUtMWg2LjQ1YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY3LjA5Yy41OC4yIDEgLjc2IDEgMS40MXY1YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVNdWx0aXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVNdWx0aXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC43NSAyQzMuNzggMiAzIDIuNzggMyAzLjc1djEuNUMzIDYuMjIgMy43OCA3IDQuNzUgN2gxMy41QzE5LjIyIDcgMjAgNi4yMiAyMCA1LjI1di0xLjVDMjAgMi43OCAxOS4yMiAyIDE4LjI1IDJINC43NVpNMTkgOEg0djcuNzVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWg3LjVBMy43NSAzLjc1IDAgMCAwIDE5IDE1Ljc1VjhaTTkgMTEuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjQ4YS43NS43NSAwIDAgMSAwIDEuNUg5Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0xMi41LjVjMC0xLjIzLS41OS0yLjMyLTEuNS0zdjcuNWMwIDIuMzUtMS45IDQuMjUtNC4yNSA0LjI1aC04LjVjLjY4LjkxIDEuNzcgMS41IDMgMS41aDUuNWE1Ljc1IDUuNzUgMCAwIDAgNS43NS01Ljc1di00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlTXVsdGlwbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZU11bHRpcGxlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOS43NSAxMC41YS43NS43NSAwIDAgMCAwIDEuNWgzLjQ4YS43NS43NSAwIDAgMCAwLTEuNUg5Ljc1Wm0tNS04LjVDMy43OCAyIDMgMi43OCAzIDMuNzV2Mi41YzAgLjcuNCAxLjMgMSAxLjU4djcuOTJhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWg3LjVBMy43NSAzLjc1IDAgMCAwIDE5IDE1Ljc1VjcuODNjLjYtLjI4IDEtLjg4IDEtMS41OHYtMi41QzIwIDIuNzggMTkuMjIgMiAxOC4yNSAySDQuNzVabS43NSAxMy43NVY4aDEydjcuNzVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVabS0xLTEyYzAtLjE0LjExLS4yNS4yNS0uMjVoMTMuNWMuMTQgMCAuMjUuMTEuMjUuMjV2Mi41YzAgLjE0LS4xMS4yNS0uMjUuMjVINC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMi41Wm0xNyA4YzAtMS4yMy0uNTktMi4zMi0xLjUtM3Y3LjVjMCAyLjM1LTEuOSA0LjI1LTQuMjUgNC4yNWgtOC41Yy42OC45MSAxLjc3IDEuNSAzIDEuNWg1LjVhNS43NSA1Ljc1IDAgMCAwIDUuNzUtNS43NXYtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZVNldHRpbmdzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZVNldHRpbmdzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWM1ptNS42IDExSDQuNUEyLjUgMi41IDAgMCAxIDIgMTEuNVY2aDkuNWE1LjUgNS41IDAgMCAwLTQuOSA4Wm0yLjQ3LTUuNTZhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgOSAxNC42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNCA4LjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZVNldHRpbmdzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVTZXR0aW5nczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuNSAyQzEuNjcgMiAxIDIuNjcgMSAzLjV2MWMwIC42NS40MiAxLjIgMSAxLjQxdjUuNTlBMi41IDIuNSAwIDAgMCA0LjUgMTRoMi4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTEuNVY2aDEwLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTIgMy41YzAtLjI4LjIyLS41LjUtLjVoMTFjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di0xWm03LjA3IDQuOTRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgOSAxNC42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNCA4LjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJjaGl2ZVNldHRpbmdzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZVNldHRpbmdzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDQuMjVDMiAzLjU2IDIuNTYgMyAzLjI1IDNoMTMuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxLjVDMTggNi40NCAxNy40NCA3IDE2Ljc1IDdIMy4yNUMyLjU2IDcgMiA2LjQ0IDIgNS43NXYtMS41Wk0zIDhoMTR2MS42YTUuNDggNS40OCAwIDAgMC01LjY2LjRIOC41YS41LjUgMCAwIDAgMCAxaDEuNzZhNS40OCA1LjQ4IDAgMCAwLS42NiA2SDZhMyAzIDAgMCAxLTMtM1Y4Wm05LjA3IDMuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4yOS4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlU2V0dGluZ3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJjaGl2ZVNldHRpbmdzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA0Ljc1QzIgMy43OCAyLjc4IDMgMy43NSAzaDEyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41YzAgLjctLjQgMS4zLTEgMS41OFY5LjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWOEg0djZjMCAxLjEuOSAyIDIgMmgzLjJjLjEuMzUuMjQuNjguNCAxSDZhMyAzIDAgMCAxLTMtM1Y3LjgzYy0uNi0uMjgtMS0uODgtMS0xLjU4di0xLjVaTTMuNzUgNGEuNzUuNzUgMCAwIDAtLjc1Ljc1djEuNWMwIC40MS4zNC43NS43NS43NWgxMi41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVIMy43NVptNC43NSA2aDIuODRjLS40LjI4LS43Ny42Mi0xLjA4IDFIOC41YS41LjUgMCAwIDEgMC0xWm0zLjU3IDEuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4yOS4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlU2V0dGluZ3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlU2V0dGluZ3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoMTVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTE1QTEuNSAxLjUgMCAwIDEgMyA2VjQuNVpNNCA5aDE2djIuNWE2LjQ4IDYuNDggMCAwIDAtNS41LjIzYy0uMDEtLjQtLjM0LS43My0uNzUtLjczaC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuMWE2LjQ5IDYuNDkgMCAwIDAtMS4zMyA4LjVINy43NUEzLjc1IDMuNzUgMCAwIDEgNCAxNy4yNVY5Wm0xMC4yOCA0Ljk4YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjlsLS4yLS43YTIgMiAwIDAgMSAxLjQ0LTIuNWwuNTktLjE0YTUuNzMgNS43MyAwIDAgMC0uMDEtMS44bC0uNTQtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS4zOS0uOTQtLjctMS40OS0uOTNsLS40OS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjU0LjIyLTEuMDQuNTMtMS40OC45MWwuMi42OVpNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVTZXR0aW5nczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlU2V0dGluZ3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDUuMjVDMyA0LjAxIDQgMyA1LjI1IDNoMTMuNUMxOS45OSAzIDIxIDQgMjEgNS4yNXYxLjVjMCAuNzgtLjQgMS40Ny0xIDEuODd2Mi44OGMtLjQ3LS4yLS45OC0uMzQtMS41LS40MlY5aC0xM3Y4LjI1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDMuNTZjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDcuNzVBMy43NSAzLjc1IDAgMCAxIDQgMTcuMjVWOC42MmMtLjYtLjQtMS0xLjA5LTEtMS44N3YtMS41Wm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEuNWMwIC40MS4zNC43NS43NS43NWgxMy41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVINS4yNVptOC41IDYuNWMuNCAwIC43NC4zMy43NS43My0uNDEuMjItLjguNDgtMS4xNS43N2gtMy4xYS43NS43NSAwIDAgMSAwLTEuNWgzLjVabS41MyAyLjk4YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjlsLS4yLS43YTIgMiAwIDAgMSAxLjQ0LTIuNWwuNTktLjE0YTUuNzMgNS43MyAwIDAgMC0uMDEtMS44bC0uNTQtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS4zOS0uOTQtLjctMS40OS0uOTNsLS40OS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjU0LjIyLTEuMDQuNTMtMS40OC45MWwuMi42OVpNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVTZXR0aW5nczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVTZXR0aW5nczI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYyQzMgNy4zMyAzLjY3IDggNC41IDhoMTljLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTlaTTI0IDkuNUg0djEwLjc1QTQuNzUgNC43NSAwIDAgMCA4Ljc1IDI1aDUuNzVBNy41IDcuNSAwIDAgMSAyNCAxMy44N1Y5LjVabS0xMyAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm00LjM2IDUuOTQtMS4wMy4yNmE2LjggNi44IDAgMCAwIDAgMi4xNWwuOTguMjNhMiAyIDAgMCAxIDEuNDUgMi41MmwtLjMyIDEuMWMuNTIuNDUgMS4xMS44MyAxLjc1IDEuMWwuODUtLjlhMiAyIDAgMCAxIDIuOSAwbC44NS45YTYuMiA2LjIgMCAwIDAgMS43NS0xLjA5bC0uMzQtMS4xNmEyIDIgMCAwIDEgMS40NC0yLjVsMS4wMy0uMjVhNi44IDYuOCAwIDAgMCAwLTIuMTVsLS45OS0uMjNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMzMtMS4xYTYuMiA2LjIgMCAwIDAtMS43NS0xLjFsLS44NS44OGEyIDIgMCAwIDEtMi45IDBsLS44NS0uOWE2LjIgNi4yIDAgMCAwLTEuNzUgMS4xbC4zNCAxLjE2YTIgMiAwIDAgMS0xLjQ1IDIuNVpNMjIgMjAuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVTZXR0aW5nczI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlU2V0dGluZ3MyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMSAxMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNS4yNSAzQzQuMDEgMyAzIDQgMyA1LjI1djJjMCAuNzguNCAxLjQ3IDEgMS44N3YxMS4xM0E0Ljc1IDQuNzUgMCAwIDAgOC43NSAyNWg1Ljc1YTcuNDkgNy40OSAwIDAgMS0uODgtMS41SDguNzVhMy4yNSAzLjI1IDAgMCAxLTMuMjUtMy4yNVY5LjVoMTd2My43N2MuNTMuMTQgMS4wMy4zNSAxLjUuNlY5LjEyYy42LS40IDEtMS4wOSAxLTEuODd2LTJDMjUgNC4wMSAyNCAzIDIyLjc1IDNINS4yNVpNNC41IDUuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNy41Yy40MSAwIC43NS4zNC43NS43NXYyYzAgLjQxLS4zNC43NS0uNzUuNzVINS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMlptMTAuODYgMTMuOTRhMiAyIDAgMCAwIDEuNDQtMi41bC0uMzQtMS4xNWE2LjIgNi4yIDAgMCAxIDEuNzUtMS4xbC44NS45YTIgMiAwIDAgMCAyLjkgMGwuODUtLjg4YTYuMiA2LjIgMCAwIDEgMS43NSAxLjFsLS4zMyAxLjFhMiAyIDAgMCAwIDEuNDUgMi41bC45OC4yNGE2LjggNi44IDAgMCAxIDAgMi4xNWwtMS4wMi4yNmEyIDIgMCAwIDAtMS40NCAyLjVsLjM0IDEuMTVhNi4yIDYuMiAwIDAgMS0xLjc1IDEuMWwtLjg1LS45YTIgMiAwIDAgMC0yLjkgMGwtLjg1Ljg4YTYuMiA2LjIgMCAwIDEtMS43NS0xLjFsLjMyLTEuMWEyIDIgMCAwIDAtMS40NS0yLjVsLS45Ny0uMjRhNi44IDYuOCAwIDAgMSAwLTIuMTVsMS4wMi0uMjZaTTIyIDIwLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlU2V0dGluZ3MzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlU2V0dGluZ3MzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDIyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1Wm0xIDZoMjR2NC41MmE4Ljk2IDguOTYgMCAwIDAtOC4xLS45N0ExIDEgMCAwIDAgMTkgMTRoLTZhMSAxIDAgMSAwIDAgMmg0LjM0YTguOTggOC45OCAwIDAgMC0xLjA1IDEzSDkuNUE1LjUgNS41IDAgMCAxIDQgMjMuNVYxMVptMTQuMzQgOC4wNGMuMjYuODQtLjI1IDEuNzMtMS4xMSAxLjkybC0xLjU0LjM1YTcuNTIgNy41MiAwIDAgMC0uMDQgMy4ybDEuNy40MmMuODMuMiAxLjMzIDEuMDYgMS4xIDEuODlsLS41IDEuNzJhNy41IDcuNSAwIDAgMCAyLjc1IDEuNmwxLjI2LTEuM2MuNi0uNjIgMS42LS42MiAyLjIgMGwxLjIzIDEuMjdhNy41IDcuNSAwIDAgMCAyLjczLTEuNjNsLS40Ni0xLjUyYTEuNTIgMS41MiAwIDAgMSAxLjExLTEuOTJsMS41NC0uMzVhNy41MiA3LjUyIDAgMCAwIC4wNC0zLjJsLTEuNy0uNDJhMS41MiAxLjUyIDAgMCAxLTEuMS0xLjg5bC41LTEuNzJhNy41IDcuNSAwIDAgMC0yLjc1LTEuNmwtMS4yNiAxLjNjLS42LjYyLTEuNi42Mi0yLjIgMGwtMS4yMy0xLjI3YTcuNSA3LjUgMCAwIDAtMi43MyAxLjYzbC40NiAxLjUyWk0yNSAyM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcmNoaXZlU2V0dGluZ3MzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0FyY2hpdmVTZXR0aW5nczMyTGlnaHQnLCBcIjMyXCIsIFtcIk0zIDhWNmEzIDMgMCAwIDEgMy0zaDIwYTMgMyAwIDAgMSAzIDN2MmEzIDMgMCAwIDEtMSAyLjI0djUuMjhhOSA5IDAgMCAwLTEtLjU4di00LjExYTMgMyAwIDAgMS0xIC4xN0g2YTMgMyAwIDAgMS0xLS4xN1YyMy41QTQuNSA0LjUgMCAwIDAgOS41IDI4aDYuMDJjLjIzLjM1LjQ5LjY5Ljc3IDFIOS41QTUuNSA1LjUgMCAwIDEgNCAyMy41VjEwLjI0QTMgMyAwIDAgMSAzIDhabTMtNGEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgyMGEyIDIgMCAwIDAgMS4yLS40QTIgMiAwIDAgMCAyOCA4VjZhMiAyIDAgMCAwLTItMkg2Wm0xMi44NyAxMWMuMzYtLjE5Ljc0LS4zNSAxLjEzLS40OXYtLjAxYS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMCAwIDFoNi4zN1ptLS41MyA0LjA0Yy4yNi44NC0uMjUgMS43My0xLjExIDEuOTJsLTEuNTQuMzVhNy41MiA3LjUyIDAgMCAwLS4wNCAzLjJsMS43LjQyYy44My4yIDEuMzMgMS4wNiAxLjEgMS44OWwtLjUgMS43MmE3LjUgNy41IDAgMCAwIDIuNzUgMS42bDEuMjYtMS4zYy42LS42MiAxLjYtLjYyIDIuMiAwbDEuMjMgMS4yN2E3LjUgNy41IDAgMCAwIDIuNzMtMS42M2wtLjQ2LTEuNTJhMS41MiAxLjUyIDAgMCAxIDEuMTEtMS45MmwxLjU0LS4zNWE3LjUyIDcuNTIgMCAwIDAgLjA0LTMuMmwtMS43LS40MmExLjUyIDEuNTIgMCAwIDEtMS4xLTEuODlsLjUtMS43MmE3LjUgNy41IDAgMCAwLTIuNzUtMS42bC0xLjI2IDEuM2MtLjYuNjItMS42LjYyLTIuMiAwbC0xLjIzLTEuMjdhNy41IDcuNSAwIDAgMC0yLjczIDEuNjNsLjQ2IDEuNTJaTTI1IDIzYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFyY2hpdmVTZXR0aW5nczMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcmNoaXZlU2V0dGluZ3MzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMyAxNGExIDEgMCAxIDAgMCAyaDQuMzRhOC45OSA4Ljk5IDAgMCAxIDIuNTUtMS40NUExIDEgMCAwIDAgMTkgMTRoLTZaTTkuNSAyN2g1LjQ0Yy4zNi43My44MSAxLjQgMS4zNSAySDkuNUE1LjUgNS41IDAgMCAxIDQgMjMuNVYxMC4yNEEzIDMgMCAwIDEgMyA4VjZhMyAzIDAgMCAxIDMtM2gyMGEzIDMgMCAwIDEgMyAzdjJhMyAzIDAgMCAxLTEgMi4yNHY1LjI4YTguOTcgOC45NyAwIDAgMC0yLTFWMTFINnYxMi41QTMuNSAzLjUgMCAwIDAgOS41IDI3Wk02IDVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMjBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlptMTIuMzQgMTQuMDRjLjI2Ljg0LS4yNSAxLjczLTEuMTEgMS45MmwtMS41NC4zNWE3LjUyIDcuNTIgMCAwIDAtLjA0IDMuMmwxLjcuNDJjLjgzLjIgMS4zMyAxLjA2IDEuMSAxLjg5bC0uNSAxLjcyYTcuNSA3LjUgMCAwIDAgMi43NSAxLjZsMS4yNi0xLjNjLjYtLjYyIDEuNi0uNjIgMi4yIDBsMS4yMyAxLjI3YTcuNSA3LjUgMCAwIDAgMi43My0xLjYzbC0uNDYtMS41MmExLjUyIDEuNTIgMCAwIDEgMS4xMS0xLjkybDEuNTQtLjM1YTcuNTIgNy41MiAwIDAgMCAuMDQtMy4ybC0xLjctLjQyYTEuNTIgMS41MiAwIDAgMS0xLjEtMS44OWwuNS0xLjcyYTcuNSA3LjUgMCAwIDAtMi43NS0xLjZsLTEuMjYgMS4zYy0uNi42Mi0xLjYuNjItMi4yIDBsLTEuMjMtMS4yN2E3LjUgNy41IDAgMCAwLTIuNzMgMS42M2wuNDYgMS41MlpNMjUgMjNhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0Q29udGVudDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdENvbnRlbnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuMzUgMy42NWMuMi4yLjIuNSAwIC43TDQuNzEgNUg3LjVhLjUuNSAwIDAgMSAwIDFINC43bC42NS42NWEuNS41IDAgMSAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBaTTUuNSA5QTIuNSAyLjUgMCAwIDAgMyAxMS41djNBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNBMi41IDIuNSAwIDAgMCAxNC41IDloLTlabS41IDMuNWg4YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMSAwLTFabTguNjUtOC4xNWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVjLjIuMi4yLjUgMCAuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43LS43bC42NC0uNjVIMTIuNWEuNS41IDAgMCAxIDAtMWgyLjhsLS42NS0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRDb250ZW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdENvbnRlbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjM1IDMuNjVjLjIuMi4yLjUgMCAuN0w0LjcxIDVINy41YS41LjUgMCAwIDEgMCAxSDQuN2wuNjUuNjVhLjUuNSAwIDEgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41Yy4yLS4yLjUtLjIuNyAwWk01LjUgOUEyLjUgMi41IDAgMCAwIDMgMTEuNXYzQTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0zQTIuNSAyLjUgMCAwIDAgMTQuNSA5aC05Wk00IDExLjVjMC0uODMuNjctMS41IDEuNS0xLjVoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtM1ptMiAxYS41LjUgMCAwIDAgMCAxaDhhLjUuNSAwIDAgMCAwLTFINlptOC42NS04LjE1YS41LjUgMCAwIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjctLjdsLjY0LS42NUgxMi41YS41LjUgMCAwIDEgMC0xaDIuOGwtLjY1LS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdENvbnRlbnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRDb250ZW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjA2IDUuMjRhLjc1Ljc1IDAgMSAwLTEuMTItLjk4bC0xLjc1IDJhLjc1Ljc1IDAgMCAwIDAgLjk4bDEuNzUgMmEuNzUuNzUgMCAwIDAgMS4xMi0uOThMNS40IDcuNWgyLjg2YS43NS43NSAwIDAgMCAwLTEuNUg1LjRsLjY2LS43NlpNMTguMDIgNC4yYS43NS43NSAwIDAgMC0uMDcgMS4wNWwuNjYuNzZoLTIuODZhLjc1Ljc1IDAgMCAwIDAgMS41aDIuODZsLS42Ni43NmEuNzUuNzUgMCAwIDAgMS4xMy45OGwxLjc1LTJhLjc1Ljc1IDAgMCAwIDAtLjk4bC0xLjc1LTJhLjc1Ljc1IDAgMCAwLTEuMDYtLjA3Wk01Ljc1IDExQTIuNzUgMi43NSAwIDAgMCAzIDEzLjc1djRhMi43NSAyLjc1IDAgMCAwIDIuNzUgMi43NWgxMi41QTIuNzUgMi43NSAwIDAgMCAyMSAxNy43NXYtNEEyLjc1IDIuNzUgMCAwIDAgMTguMjUgMTFINS43NVpNNiAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEwLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDYuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRDb250ZW50MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdENvbnRlbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02IDQuMTljLjMuMjcuMzQuNzQuMDYgMS4wNUw1LjQgNmgyLjg2YS43NS43NSAwIDAgMSAwIDEuNUg1LjRsLjY2Ljc2YS43NS43NSAwIDAgMS0xLjEyLjk4bC0xLjc1LTJhLjc1Ljc1IDAgMCAxIDAtLjk4bDEuNzUtMmEuNzUuNzUgMCAwIDEgMS4wNS0uMDdabTExLjk1IDEuMDVhLjc1Ljc1IDAgMCAxIDEuMTMtLjk4bDEuNzUgMmMuMjUuMjguMjUuNyAwIC45OGwtMS43NSAyYS43NS43NSAwIDAgMS0xLjEzLS45OGwuNjYtLjc2aC0yLjg2YS43NS43NSAwIDAgMSAwLTEuNWgyLjg2bC0uNjYtLjc2Wk02IDE1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTAuNWEuNzUuNzUgMCAwIDEgMCAxLjVINi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNS43NSAxMUEyLjc1IDIuNzUgMCAwIDAgMyAxMy43NXY0YTIuNzUgMi43NSAwIDAgMCAyLjc1IDIuNzVoMTIuNUEyLjc1IDIuNzUgMCAwIDAgMjEgMTcuNzV2LTRBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDExSDUuNzVaTTQuNSAxMy43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djRjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDUuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdERvd24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXREb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xNS43MSAxNC43Ny0uNy43M1YyLjc1YS43NS43NSAwIDEgMC0xLjUgMHYxMi43NmwtLjcyLS43NGEuNzUuNzUgMCAwIDAtMS4wOCAxLjA0bDEuODIgMS44OGExIDEgMCAwIDAgMS40NCAwbDEuODItMS44OGEuNzUuNzUgMCAwIDAtMS4wOC0xLjA0Wk01IDE3YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDYuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXREb3duMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdERvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNi4xNCAxNS4yIDE1IDE2LjM2VjIuNWEuNS41IDAgMSAwLTEgMHYxMy44N2wtMS4xNC0xLjE4YS41LjUgMCAxIDAtLjcyLjdsMS44MiAxLjg4Yy4zLjMuNzkuMyAxLjA4IDBsMS44Mi0xLjg4YS41LjUgMCAxIDAtLjcyLS43Wk01IDE3YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDYuNWEuNS41IDAgMCAxIDAgMUg1YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg0LjVhLjUuNSAwIDEgMSAwIDFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdERvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXREb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xMi45NSAxOC4xLjA5LjEgMi4zNSAyLjM2Yy4xOC4yNy41LjQ0Ljg2LjQ0LjMyIDAgLjYyLS4xNC44LS4zN2guMDFsLjA1LS4wNyAyLjM2LTIuMzYuMDgtLjFhMSAxIDAgMCAwIC4wMS0xLjE4di0uMDFsLS4xLS4xMi0uMS0uMDloLS4wMWExIDEgMCAwIDAtMS4xOC0uMDFsLS4xMi4xLS44LjhWMy43OWwtLjAxLS4wMWMtLjA3LS40Ny0uNTEtLjc4LS45OS0uNzhzLS45Mi4zMS0uOTkuNzhsLS4wMS4xMnYxMy42OWwtLjgtLjgtLjEtLjA5YTEgMSAwIDAgMC0xLjQgMS40Wk00IDE3LjVBMi41IDIuNSAwIDAgMCA2LjUgMjBoNGExIDEgMCAxIDAgMC0yaC00YS41LjUgMCAwIDEtLjUtLjV2LTExYzAtLjI3LjIyLS41LjUtLjVoNmExIDEgMCAxIDAgMC0yaC02QTIuNSAyLjUgMCAwIDAgNCA2LjV2MTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXREb3duMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdERvd24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy4yMiAxNy4yMmEuNzUuNzUgMCAwIDAtLjA3Ljk4bC4wNy4wOCAyLjM3IDIuMzdjLjEyLjIuMzcuMzUuNjYuMzUuMjUgMCAuNDgtLjEuNjEtLjI4bC4wNS0uMDcgMi4zNy0yLjM3LjA3LS4wOGMuMi0uMjcuMi0uNjIuMDEtLjg5bC0uMDgtLjEtLjA4LS4wNmEuNzUuNzUgMCAwIDAtLjg4LS4wMWwtLjEuMDhMMTcgMTguNDRWMy41NmMtLjA2LS4zMS0uMzctLjU2LS43NS0uNTZzLS43LjI1LS43NC41N2wtLjAxLjA5djE0Ljc4bC0xLjIyLTEuMjItLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4LjA3Wk02LjI1IDIwQzUuMDEgMjAgNCAxOSA0IDE3Ljc2VjYuMjZDNCA1LjAyIDUgNCA2LjI1IDRoNmEuNzUuNzUgMCAwIDEgMCAxLjVoLTZhLjc1Ljc1IDAgMCAwLS43NS43NXYxMS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDRhLjc1Ljc1IDAgMCAxIDAgMS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xNSA0LjUuNzEuNzNBLjc1Ljc1IDAgMCAwIDE2LjggNC4ybC0xLjgyLTEuODhhMSAxIDAgMCAwLTEuNDQgMGwtMS44MiAxLjg4YS43NS43NSAwIDAgMCAxLjA4IDEuMDRsLjcxLS43NHYyLjc2YS43NS43NSAwIDAgMCAxLjUgMFY0LjVaTTMgNWMwLTEuMS45LTIgMi0yaDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDVhMiAyIDAgMCAxLTItMlY1Wm0xMi43MSA5Ljc3LS43Ljczdi0yLjc1YS43NS43NSAwIDEgMC0xLjUgMHYyLjc2bC0uNzItLjc0YS43NS43NSAwIDAgMC0xLjA4IDEuMDRsMS44MiAxLjg4YTEgMSAwIDAgMCAxLjQ0IDBsMS44Mi0xLjg4YS43NS43NSAwIDAgMC0xLjA4LTEuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRIZWlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTUgMy42MyAxLjE0IDEuMThhLjUuNSAwIDEgMCAuNzItLjdsLTEuODItMS44OGEuNzUuNzUgMCAwIDAtMS4wOCAwTDEyLjE0IDQuMWEuNS41IDAgMSAwIC43Mi43TDE0IDMuNjNWNy41YS41LjUgMCAwIDAgMSAwVjMuNjNaTTMgNWMwLTEuMS45LTIgMi0yaDQuNWEuNS41IDAgMCAxIDAgMUg1YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg0LjVhLjUuNSAwIDAgMSAwIDFINWEyIDIgMCAwIDEtMi0yVjVabTEzLjE0IDEwLjJMMTUgMTYuMzZWMTIuNWEuNS41IDAgMSAwLTEgMHYzLjg3bC0xLjE0LTEuMThhLjUuNSAwIDEgMC0uNzIuN2wxLjgyIDEuODhjLjMuMy43OS4zIDEuMDggMGwxLjgyLTEuODhhLjUuNSAwIDEgMC0uNzItLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRIZWlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRIZWlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTEyLjk1IDUuOS4wOS0uMSAyLjM1LTIuMzZjLjE4LS4yNy41LS40NC44Ni0uNDQuMzIgMCAuNjIuMTQuOC4zN2guMDFsLjA1LjA3IDIuMzYgMi4zNi4wOC4xYTEgMSAwIDAgMSAuMDEgMS4xOHYuMDFsLS4xLjEyLS4xLjA5aC0uMDFhMSAxIDAgMCAxLTEuMTguMDFsLS4xMi0uMS0uOC0uOFY5LjcxbC0uMDEuMDFjLS4wNy40Ny0uNTEuNzgtLjk5Ljc4cy0uOTItLjMxLS45OS0uNzhsLS4wMS0uMTJWNi40MWwtLjguOC0uMS4wOWExIDEgMCAwIDEtMS40LTEuNFpNNCA2LjVBMi41IDIuNSAwIDAgMSA2LjUgNGg0YTEgMSAwIDEgMSAwIDJoLTRhLjUuNSAwIDAgMC0uNS41djExYzAgLjI3LjIyLjUuNS41aDRhMSAxIDAgMSAxIDAgMmgtNEEyLjUgMi41IDAgMCAxIDQgMTcuNXYtMTFabTEwLjQ1IDEwLjI5LS4xLS4wOWExIDEgMCAwIDAtMS4zIDEuNWwyLjM0IDIuMzZjLjE4LjI3LjUuNDQuODYuNDRzLjY4LS4xNy44Ni0uNDRsMi4zNi0yLjM2LjA4LS4xYTEgMSAwIDAgMC0uMDktMS4zdi0uMDFsLS4xLS4wOWgtLjAxYTEgMSAwIDAgMC0xLjMuMWwtLjguNzl2LTMuMzFjLS4wOC0uNDctLjUyLS43OC0xLS43OC0uNTIgMC0xIC4zOC0xIC45djMuMTlsLS44LS44WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdEhlaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjIyIDYuNzhhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOCAyLjM3LTIuMzdjLjEyLS4yLjM3LS4zNS42Ni0uMzUuMjUgMCAuNDguMS42MS4yOGwuMDUuMDcgMi4zNyAyLjM3LjA3LjA4Yy4yLjI3LjIuNjIuMDEuODlsLS4wOC4xLS4wOC4wNmMtLjI2LjItLjYyLjItLjg4LjAxbC0uMS0uMDhMMTcgNS41NnYzLjg4Yy0uMDYuMzEtLjM3LjU2LS43NS41NnMtLjctLjI1LS43NC0uNTdsLS4wMS0uMDlWNS41NmwtMS4yMiAxLjIyLS4wOC4wN2MtLjMuMjItLjcxLjItLjk4LS4wN1ptMCAxMC40NGEuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDcgMS4yMiAxLjIydi0zLjc4YzAtLjM3LjM0LS42Ni43NS0uNjYuMzggMCAuNy4yNS43NS41N1YxOC40NGwxLjIyLTEuMjJhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY4LjA4Ljk4bC0uMDguMDgtMi4zNiAyLjM3YS43Ny43NyAwIDAgMS0uNjcuMzUuNzcuNzcgMCAwIDEtLjY2LS4zNWwtMi4zNy0yLjM3YS43NS43NSAwIDAgMSAwLTEuMDZaTTYuMjUgMy45OUM1LjAxIDQgNCA1IDQgNi4yNHYxMS41QzQgMTguOTggNSAyMCA2LjI1IDIwaDRhLjc1Ljc1IDAgMCAwIDAtMS41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjRjMC0uNDEuMzQtLjc1Ljc1LS43NWg0YS43NS43NSAwIDAgMCAwLTEuNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdEhlaWdodERvdHRlZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdEhlaWdodERvdHRlZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTUuNzEgNS4yMy0xLjQ2LTEuNTEtMS40NiAxLjUxYS43NS43NSAwIDAgMS0xLjA4LTEuMDRsMS44Mi0xLjg4YTEgMSAwIDAgMSAxLjQ0IDBsMS44MiAxLjg4YS43NS43NSAwIDAgMS0xLjA4IDEuMDRabTAgOS41NC0xLjQ2IDEuNTEtMS40Ni0xLjUxYS43NS43NSAwIDAgMC0xLjA4IDEuMDRsMS44MiAxLjg4YTEgMSAwIDAgMCAxLjQ0IDBsMS44Mi0xLjg4YS43NS43NSAwIDAgMC0xLjA4LTEuMDRaTTE0LjI1IDEyYy40MiAwIC43NS4zNC43NS43NXYuNWEuNzUuNzUgMCAxIDEtMS41IDB2LS41YzAtLjQxLjM0LS43NS43NS0uNzVabS43NS0xLjc1YS43NS43NSAwIDEgMS0xLjUgMHYtLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41Wk0xNC4yNSA4Yy40MiAwIC43NS0uMzQuNzUtLjc1di0uNWEuNzUuNzUgMCAxIDAtMS41IDB2LjVjMCAuNDEuMzQuNzUuNzUuNzVaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNC4yNWEuNzUuNzUgMCAwIDAgMC0xLjVINWEuNS41IDAgMCAxLS41LS41VjVjMC0uMjguMjItLjUuNS0uNWg0LjI1YS43NS43NSAwIDAgMCAwLTEuNUg1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0RG90dGVkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdEhlaWdodERvdHRlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE2LjE0IDQuOCAxNC41IDMuMTJsLTEuNjQgMS43YS41LjUgMCAwIDEtLjcyLS43bDEuODItMS44OGMuMy0uMy43OS0uMyAxLjA4IDBsMS44MiAxLjg4YS41LjUgMCAxIDEtLjcyLjdaTTUgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNC41YS41LjUgMCAwIDAgMC0xSDVhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoNC41YS41LjUgMCAwIDAgMC0xSDVabTkuNSAyYy4yOCAwIC41LjIyLjUuNVY3YS41LjUgMCAxIDEtMSAwVjUuNWMwLS4yOC4yMy0uNS41LS41Wm0uNSA4YS41LjUgMCAxIDAtMSAwdjEuNWEuNS41IDAgMCAwIDEgMFYxM1ptLS41LTRjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDEgMS0xIDB2LTFjMC0uMjguMjMtLjUuNS0uNVptMS42NCA2LjItMS42NCAxLjY5LTEuNjQtMS43YS41LjUgMCAxIDAtLjcyLjdsMS44MiAxLjg4Yy4zLjMuNzkuMyAxLjA4IDBsMS44Mi0xLjg4YS41LjUgMCAxIDAtLjcyLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0RG90dGVkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0RG90dGVkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy4yIDMuM2ExIDEgMCAwIDAtMS40IDBsLTIuNSAyLjVhMSAxIDAgMCAwIDEuNCAxLjRsMS44LTEuNzkgMS44IDEuOGExIDEgMCAxIDAgMS40LTEuNDJsLTIuNS0yLjVaTTYuNSA0QTIuNSAyLjUgMCAwIDAgNCA2LjV2MTFBMi41IDIuNSAwIDAgMCA2LjUgMjBoNGExIDEgMCAxIDAgMC0yaC00YS41LjUgMCAwIDEtLjUtLjV2LTExYzAtLjI4LjIyLS41LjUtLjVoNGExIDEgMCAxIDAgMC0yaC00Wm0xMC43IDE2LjcgMi41LTIuNWExIDEgMCAwIDAtMS40LTEuNGwtMS44IDEuNzktMS44LTEuOGExIDEgMCAwIDAtMS40IDEuNDJsMi41IDIuNWExIDEgMCAwIDAgMS40IDBabS4zLTguN2ExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS0xIDJhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDEgMS0yIDB2LTFhMSAxIDAgMCAxIDEtMVptMC03YTEgMSAwIDAgMC0xIDF2MWExIDEgMCAxIDAgMiAwVjhhMSAxIDAgMCAwLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdEhlaWdodERvdHRlZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRIZWlnaHREb3R0ZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi43OCAzLjIyYS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwxLjk3LTEuOTcgMS45NyAxLjk3YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVaTTQgNi4yNEM0IDUgNSA0IDYuMjUgNGg0YS43NS43NSAwIDAgMSAwIDEuNWgtNGEuNzUuNzUgMCAwIDAtLjc1Ljc1djExLjVjMCAuNDIuMzQuNzUuNzUuNzVoNGEuNzUuNzUgMCAwIDEgMCAxLjVoLTRDNS4wMSAyMCA0IDE5IDQgMTcuNzRWNi4yNFptMTIuNzggMTQuNTQgMi41LTIuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjk3IDEuOTctMS45Ny0xLjk3YS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwWk0xNi4yNSAxMWEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabS0uNzUgNC4yNWEuNzUuNzUgMCAwIDEgMS41IDB2MWEuNzUuNzUgMCAwIDEtMS41IDB2LTFaTTE2LjI1IDdhLjc1Ljc1IDAgMCAwLS43NS43NXYxYS43NS43NSAwIDAgMCAxLjUgMHYtMWEuNzUuNzUgMCAwIDAtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdEhlaWdodEluMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0SW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljc4IDcuNzggMi0yYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLS43Mi43MlYyLjc1YS43NS43NSAwIDAgMC0xLjUgMHYyLjY5bC0uNzItLjcyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMiAyYy4zLjMuNzcuMyAxLjA2IDBaTTMgNWMwLTEuMS45LTIgMi0yaDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDVhMiAyIDAgMCAxLTItMlY1Wm0xMy43OCA5LjIyLTItMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwuNzItLjcydjIuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjY5bC43Mi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0SW4yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0SGVpZ2h0SW4yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xNC44NSA3Ljg1IDItMmEuNS41IDAgMCAwLS43LS43TDE1IDYuMjlWMi41YS41LjUgMCAwIDAtMSAwdjMuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwWk0zIDVjMC0xLjEuOS0yIDItMmg0LjVhLjUuNSAwIDAgMSAwIDFINWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoNC41YS41LjUgMCAwIDEgMCAxSDVhMiAyIDAgMCAxLTItMlY1Wm0xMy44NSA5LjE1LTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMCAwIC43LjdMMTQgMTMuNzF2My43OWEuNS41IDAgMCAwIDEgMHYtMy44bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0SGVpZ2h0SW4yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRIZWlnaHRJbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTYuOTYgMTAuMiAyLjUtMi41YTEgMSAwIDAgMC0xLjQyLTEuNGwtLjc5Ljc5VjRhMSAxIDAgMSAwLTIgMHYzLjA5bC0uOC0uOGExIDEgMCAxIDAtMS40IDEuNDJsMi41IDIuNWExIDEgMCAwIDAgMS40IDBaTTQgNi41QTIuNSAyLjUgMCAwIDEgNi41IDRoNGExIDEgMCAxIDEgMCAyaC00YS41LjUgMCAwIDAtLjUuNXYxMWMwIC4yOC4yMi41LjUuNWg0YTEgMSAwIDEgMSAwIDJoLTRBMi41IDIuNSAwIDAgMSA0IDE3LjV2LTExWm0xNS40NiA5LjgtMi41LTIuNWExIDEgMCAwIDAtMS40MiAwbC0yLjUgMi41YTEgMSAwIDAgMCAxLjQyIDEuNGwuNzktLjc5VjIwYTEgMSAwIDEgMCAyIDB2LTMuMDlsLjguOGExIDEgMCAwIDAgMS40LTEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRIZWlnaHRJbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRIZWlnaHRJbjI0UmVndWxhcicsIFwiMjRcIiwgW1wibTE2Ljc4IDkuNzggMi41LTIuNWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDE3IDcuNDRWMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2My42OWwtMS4yMi0xLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwWk00IDYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoNGEuNzUuNzUgMCAwIDEgMCAxLjVoLTRhLjc1Ljc1IDAgMCAwLS43NS43NXYxMS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDRhLjc1Ljc1IDAgMCAxIDAgMS41aC00QzUuMDEgMjAgNCAxOSA0IDE3Ljc1VjYuMjVabTE1LjI4IDEwLjQ3LTIuNS0yLjVhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMi41IDIuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDEuMjItMS4yMnYzLjY5YS43NS43NSAwIDAgMCAxLjUgMHYtMy42OWwxLjIyIDEuMjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0VXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE1LjcxIDUuMjMtLjctLjczdjEyLjc1YS43NS43NSAwIDEgMS0xLjUgMFY0LjQ5bC0uNzIuNzRhLjc1Ljc1IDAgMCAxLTEuMDgtMS4wNGwxLjgyLTEuODhhMSAxIDAgMCAxIDEuNDQgMGwxLjgyIDEuODhhLjc1Ljc1IDAgMCAxLTEuMDggMS4wNFpNNSAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg2LjI1YS43NS43NSAwIDAgMCAwLTEuNUg1YS41LjUgMCAwIDEtLjUtLjVWNWMwLS4yOC4yMi0uNS41LS41aDQuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRVcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE2LjE0IDQuOCAxNSAzLjY0VjE3LjVhLjUuNSAwIDEgMS0xIDBWMy42M0wxMi44NiA0LjhhLjUuNSAwIDAgMS0uNzItLjdsMS44Mi0xLjg4Yy4zLS4zLjc5LS4zIDEuMDggMGwxLjgyIDEuODhhLjUuNSAwIDEgMS0uNzIuN1pNNSAzYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg2LjVhLjUuNSAwIDAgMCAwLTFINWExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg0LjVhLjUuNSAwIDAgMCAwLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFVwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0VXAyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTEyLjk1IDUuOS4wOS0uMSAyLjM1LTIuMzZjLjE4LS4yNy41LS40NC44Ni0uNDQuMzIgMCAuNjIuMTQuOC4zN2guMDFsLjA1LjA3IDIuMzYgMi4zNi4wOC4xYTEgMSAwIDAgMSAuMDEgMS4xOHYuMDFsLS4xLjEyLS4xLjA5aC0uMDFhMSAxIDAgMCAxLTEuMTguMDFsLS4xMi0uMS0uOC0uOFYyMC4yMWwtLjAxLjAxYy0uMDcuNDctLjUxLjc4LS45OS43OHMtLjkyLS4zMS0uOTktLjc4bC0uMDEtLjEyVjYuNDFsLS44LjgtLjEuMDlhMSAxIDAgMCAxLTEuNC0xLjRaTTQgNi41QTIuNSAyLjUgMCAwIDEgNi41IDRoNGExIDEgMCAxIDEgMCAyaC00YS41LjUgMCAwIDAtLjUuNXYxMWMwIC4yNy4yMi41LjUuNWg2YTEgMSAwIDEgMSAwIDJoLTZBMi41IDIuNSAwIDAgMSA0IDE3LjV2LTExWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0VXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0VXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy4yMiA2Ljc4YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDggMi4zNy0yLjM3Yy4xMi0uMi4zNy0uMzUuNjYtLjM1LjI1IDAgLjQ4LjEuNjEuMjhsLjA1LjA3IDIuMzcgMi4zNy4wNy4wOGMuMi4yNy4yLjYyLjAxLjg5bC0uMDguMS0uMDguMDZjLS4yNi4yLS42Mi4yLS44OC4wMWwtLjEtLjA4TDE3IDUuNTZWMjAuNDRjLS4wNi4zMS0uMzcuNTYtLjc1LjU2cy0uNy0uMjUtLjc0LS41N2wtLjAxLS4wOVY1LjU2bC0xLjIyIDEuMjItLjA4LjA3Yy0uMy4yMi0uNzEuMi0uOTgtLjA3Wk02LjI1IDRDNS4wMSA0IDQgNSA0IDYuMjR2MTEuNUM0IDE4Ljk4IDUgMjAgNi4yNSAyMGg2YS43NS43NSAwIDAgMCAwLTEuNWgtNmEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI0YzAtLjQxLjM0LS43NS43NS0uNzVoNGEuNzUuNzUgMCAwIDAgMC0xLjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRXaWR0aDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdFdpZHRoMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xNS41IDE1LS43My43MWEuNzUuNzUgMCAxIDAgMS4wNCAxLjA4bDEuODktMS44MmExIDEgMCAwIDAgMC0xLjQ0bC0xLjg5LTEuODJhLjc1Ljc1IDAgMCAwLTEuMDQgMS4wOGwuNzQuNzFoLTIuNzZhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNzVaTTE1IDNhMiAyIDAgMCAxIDIgMnY0LjI1YS43NS43NSAwIDAgMS0xLjUgMFY1YS41LjUgMCAwIDAtLjUtLjVINWEuNS41IDAgMCAwLS41LjV2NC4yNWEuNzUuNzUgMCAwIDEtMS41IDBWNWMwLTEuMS45LTIgMi0yaDEwWk01LjIzIDE1LjcxbC0uNzMtLjdoMi43NWEuNzUuNzUgMCAxIDAgMC0xLjVINC41bC43My0uNzJhLjc1Ljc1IDAgMCAwLTEuMDQtMS4wOGwtMS44OCAxLjgyYTEgMSAwIDAgMCAwIDEuNDRsMS44OCAxLjgyYS43NS43NSAwIDAgMCAxLjA0LTEuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0F1dG9maXRXaWR0aDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0F1dG9maXRXaWR0aDIwUmVndWxhcicsIFwiMjBcIiwgW1wibTE2LjM3IDE1LTEuMTggMS4xNGEuNS41IDAgMSAwIC43LjcybDEuODgtMS44MmMuMy0uMy4zLS43OCAwLTEuMDhsLTEuODgtMS44MmEuNS41IDAgMSAwLS43LjcyTDE2LjM4IDE0SDEyLjVhLjUuNSAwIDEgMCAwIDFoMy44N1pNMTUgM2EyIDIgMCAwIDEgMiAydjQuNWEuNS41IDAgMCAxLTEgMFY1YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjQuNWEuNS41IDAgMCAxLTEgMFY1YzAtMS4xLjktMiAyLTJoMTBaTTQuODEgMTYuMTQgMy42MyAxNUg3LjVhLjUuNSAwIDEgMCAwLTFIMy42M2wxLjE4LTEuMTRhLjUuNSAwIDAgMC0uNy0uNzJsLTEuODggMS44MmMtLjMuMy0uMy43OSAwIDEuMDhsMS44OSAxLjgyYS41LjUgMCAxIDAgLjY5LS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0V2lkdGgyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjUgNEEyLjUgMi41IDAgMCAxIDIwIDYuNXY0YTEgMSAwIDEgMS0yIDB2LTRhLjUuNSAwIDAgMC0uNS0uNWgtMTFhLjUuNSAwIDAgMC0uNS41djRhMSAxIDAgMSAxLTIgMHYtNEEyLjUgMi41IDAgMCAxIDYuNSA0aDExWm0uNyA5LjA0LS4xLS4wOWExIDEgMCAwIDAtMS40IDEuNGwuMDkuMS44LjhIMTQuMjlsLS4wMS4wMWMtLjQ3LjA3LS43OC41MS0uNzguOTlzLjMxLjkyLjc4Ljk5bC4xMi4wMWgzLjE5bC0uOC44LS4xLjExdi4wMWExIDEgMCAwIDAgMCAxLjE4aC4wMWwuMS4xMS4xLjFoLjAyYTEgMSAwIDAgMCAxLjE3IDBsLjAxLS4wMS4xLS4wOCAyLjM2LTIuMzYuMDctLjA1Yy4yMy0uMTkuMzctLjQ5LjM3LS44IDAtLjM3LS4xNy0uNjktLjQ0LS44N2wtMi4zNi0yLjM1Wk03LjI3IDE0LjM2bC0uMDguMS0uOC44aDMuMThjLjUzIDAgLjkuNDcuOSAxIDAgLjQ3LS4zMS45MS0uNzcuOThoLS4wMWwtLjExLjAxaC0zLjJsLjguOGExIDEgMCAwIDEgLjEgMS4zbC0uMS4xdi4wMWExIDEgMCAwIDEtMS4zLjFsLS4xLS4xLTIuMzYtMi4zNWMtLjI4LS4xNy0uNDUtLjUtLjQ1LS44NiAwLS4zNS4xNy0uNjguNDUtLjg2bDIuMzUtMi4zNGExIDEgMCAwIDEgMS41IDEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdFdpZHRoMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAgNi4yNEMyMCA1IDE5IDQgMTcuNzUgNEg2LjI1QzUuMDEgNCA0IDUgNCA2LjI0djRhLjc1Ljc1IDAgMCAwIDEuNSAwdi00YzAtLjQxLjM0LS43NS43NS0uNzVoMTEuNWMuNDEgMCAuNzUuMzQuNzUuNzV2NGEuNzUuNzUgMCAwIDAgMS41IDB2LTRabS0yLjc4IDYuOThhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDIuMzcgMi4zN2MuMi4xMi4zNS4zNy4zNS42NiAwIC4yNS0uMS40OC0uMjguNjFsLS4wNy4wNS0yLjM3IDIuMzctLjA4LjA3Yy0uMjcuMi0uNjIuMi0uODkuMDFsLS4xLS4wOC0uMDYtLjA4YS43NS43NSAwIDAgMS0uMDEtLjg4bC4wOC0uMUwxOC40NCAxN2gtMy44OGMtLjMxLS4wNi0uNTYtLjM3LS41Ni0uNzVzLjI1LS43LjU3LS43NGwuMDktLjAxaDMuNzhsLTEuMjItMS4yMi0uMDctLjA4YS43NS43NSAwIDAgMSAuMDctLjk4Wm0tMTAuNDQgMGMuMjcuMjcuMy42OS4wNy45OGwtLjA3LjA4LTEuMjIgMS4yMmgzLjc4Yy4zNyAwIC42Ni4zNC42Ni43NSAwIC4zOC0uMjUuNy0uNTcuNzVINS41NmwxLjIyIDEuMjJjLjI3LjI3LjMuNjkuMDcuOThsLS4wNy4wOGEuNzUuNzUgMCAwIDEtLjk4LjA4bC0uMDgtLjA4LTIuMzctMi4zNmEuNzcuNzcgMCAwIDEtLjM1LS42N2MwLS4yOC4xNC0uNTMuMzUtLjY2bDIuMzctMi4zN2MuMy0uMjkuNzctLjI5IDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoRG90dGVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0V2lkdGhEb3R0ZWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljc3IDE1LjcxIDEuNTEtMS40Ni0xLjUxLTEuNDZhLjc1Ljc1IDAgMSAxIDEuMDQtMS4wOGwxLjg5IDEuODJhMSAxIDAgMCAxIDAgMS40NGwtMS44OSAxLjgyYS43NS43NSAwIDAgMS0xLjA0LTEuMDhabS05LjU0IDAtMS41LTEuNDYgMS41LTEuNDZhLjc1Ljc1IDAgMCAwLTEuMDQtMS4wOGwtMS44OCAxLjgyYTEgMSAwIDAgMCAwIDEuNDRsMS44OCAxLjgyYS43NS43NSAwIDAgMCAxLjA0LTEuMDhaTTggMTQuMjVjMCAuNDItLjMzLjc1LS43NS43NWgtLjVhLjc1Ljc1IDAgMSAxIDAtMS41aC41Yy40MiAwIC43NS4zNC43NS43NVptMS43NS43NWEuNzUuNzUgMCAxIDEgMC0xLjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNVptMi4yNS0uNzVjMCAuNDIuMzQuNzUuNzUuNzVoLjVhLjc1Ljc1IDAgMSAwIDAtMS41aC0uNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk0xNyA1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjQuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjVjMC0uMjguMjItLjUuNS0uNWgxMGMuMjggMCAuNS4yMi41LjV2NC4yNWEuNzUuNzUgMCAxIDAgMS41IDBWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoRG90dGVkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QXV0b2ZpdFdpZHRoRG90dGVkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTUuMiAxNi4xNCAxLjctMS42NC0xLjctMS42NGEuNS41IDAgMCAxIC42OS0uNzJsMS44OCAxLjgyYy4zLjMuMy43OSAwIDEuMDhsLTEuODggMS44MmEuNS41IDAgMSAxLS43LS43MlpNMTcgNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY0LjVhLjUuNSAwIDAgMCAxIDBWNWExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NC41YS41LjUgMCAxIDAgMSAwVjVabS0yIDkuNWEuNS41IDAgMCAxLS41LjVIMTNhLjUuNSAwIDEgMSAwLTFoMS41Yy4yOCAwIC41LjIzLjUuNVpNNyAxNWEuNS41IDAgMSAwIDAtMUg1LjVhLjUuNSAwIDAgMCAwIDFIN1ptNC0uNWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDEgMSAwLTFoMWMuMjggMCAuNS4yMy41LjVabS02LjE5IDEuNjQtMS43LTEuNjQgMS43LTEuNjRhLjUuNSAwIDAgMC0uNy0uNzJsLTEuODggMS44MmMtLjMuMy0uMy43OSAwIDEuMDhsMS44OSAxLjgyYS41LjUgMCAxIDAgLjY5LS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QXV0b2ZpdFdpZHRoRG90dGVkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0V2lkdGhEb3R0ZWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwIDYuNUEyLjUgMi41IDAgMCAwIDE3LjUgNGgtMTFBMi41IDIuNSAwIDAgMCA0IDYuNXY0YTEgMSAwIDEgMCAyIDB2LTRjMC0uMjguMjMtLjUuNS0uNWgxMWMuMjggMCAuNS4yMi41LjV2NGExIDEgMCAxIDAgMiAwdi00Wm0tMS44IDEzLjIgMi41LTIuNWExIDEgMCAwIDAgMC0xLjRsLTIuNS0yLjVhMSAxIDAgMCAwLTEuNCAxLjRsMS43OSAxLjgtMS44IDEuOGExIDEgMCAwIDAgMS40MiAxLjRaTTMuMyAxNS44YTEgMSAwIDAgMCAwIDEuNGwyLjUgMi41YTEgMSAwIDAgMCAxLjQtMS40bC0xLjc5LTEuOCAxLjgtMS44YTEgMSAwIDEgMC0xLjQyLTEuNGwtMi41IDIuNVptOS43LjdhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tNC0xYTEgMSAwIDEgMSAwIDJIOGExIDEgMCAxIDEgMC0yaDFabTggMWExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDEgMCAwIDJoMWExIDEgMCAwIDAgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dBdXRvZml0V2lkdGhEb3R0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dBdXRvZml0V2lkdGhEb3R0ZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy43NiA0QzE5IDQgMjAgNSAyMCA2LjI1djRhLjc1Ljc1IDAgMCAxLTEuNSAwdi00YS43NS43NSAwIDAgMC0uNzUtLjc1SDYuMjZhLjc1Ljc1IDAgMCAwLS43NS43NXY0YS43NS43NSAwIDAgMS0xLjUgMHYtNEM0IDUuMDEgNSA0IDYuMjYgNGgxMS41Wm0uNTIgMTUuMjggMi41LTIuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwxLjk3IDEuOTctMS45NyAxLjk3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZaTTMuMjIgMTUuNzJjLS4zLjMtLjMuNzcgMCAxLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMS45Ny0xLjk3IDEuOTctMS45N2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0yLjUgMi41Wm05Ljc4LjUzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0uNWEuNzUuNzUgMCAwIDAgMCAxLjVoLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVabS0zIDBjMCAuNDEtLjM0Ljc1LS43NS43NWgtMS41YS43NS43NSAwIDAgMSAwLTEuNWgxLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wm03IDBhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41Yy40MSAwIC43NS0uMzQuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCZXR3ZWVuRG93bjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmV0d2VlbkRvd24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgMS43NWEuNzUuNzUgMCAwIDAtMS41IDB2LjVDMy41IDMuMjIgNC4yOCA0IDUuMjUgNGg5QzE1LjIyIDQgMTYgMy4yMiAxNiAyLjI1di0uNWEuNzUuNzUgMCAwIDAtMS41IDB2LjVjMCAuMTQtLjExLjI1LS4yNS4yNWgtOUEuMjUuMjUgMCAwIDEgNSAyLjI1di0uNVpNOS43NSA1Yy40MSAwIC43NS4zNC43NS43NXY2LjY5bDIuOTctMi45N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC00LjI1IDQuMjVjLS4zLjMtLjc3LjMtMS4wNiAwbC00LjI1LTQuMjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw5IDEyLjQ0VjUuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMy41IDE3Ljc1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDljLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtOWEuMjUuMjUgMCAwIDAtLjI1LjI1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JldHdlZW5Eb3duMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmV0d2VlbkRvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDJhLjUuNSAwIDAgMC0xIDB2LjVDMyAzLjMzIDMuNjcgNCA0LjUgNGgxMGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMmEuNS41IDAgMCAwLTEgMHYuNWEuNS41IDAgMCAxLS41LjVoLTEwYS41LjUgMCAwIDEtLjUtLjVWMlptNS41IDNjLjI4IDAgLjUuMjIuNS41djcuOGwzLjY1LTMuNjVhLjUuNSAwIDAgMSAuNy43bC00LjUgNC41YS41LjUgMCAwIDEtLjcgMGwtNC41LTQuNWEuNS41IDAgMCAxIC43LS43TDkgMTMuMjlWNS41YzAtLjI4LjIyLS41LjUtLjVaTTMgMTcuNWMwLS44My42Ny0xLjUgMS41LTEuNWgxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWEuNS41IDAgMCAxLTEgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMTBhLjUuNSAwIDAgMC0uNS41di41YS41LjUgMCAwIDEtMSAwdi0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmV0d2VlbkRvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JldHdlZW5Eb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjUgMi4yNWExIDEgMCAwIDAtMiAwdi4yNUEyLjUgMi41IDAgMCAwIDcgNWgxMGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LS4yNWExIDEgMCAxIDAtMiAwdi4yNWEuNS41IDAgMCAxLS41LjVIN2EuNS41IDAgMCAxLS41LS41di0uMjVabTUuNSA0YTEgMSAwIDAgMSAxIDF2Ny4wOWwyLjgtMi44YTEgMSAwIDAgMSAxLjQgMS40MmwtNC41IDQuNWExIDEgMCAwIDEtMS40IDBsLTQuNS00LjVhMSAxIDAgMSAxIDEuNC0xLjQybDIuOCAyLjhWNy4yNWExIDEgMCAwIDEgMS0xWk00LjUgMjEuNUEyLjUgMi41IDAgMCAxIDcgMTloMTBhMi41IDIuNSAwIDAgMSAyLjUgMi41di4yNWExIDEgMCAxIDEtMiAwdi0uMjVhLjUuNSAwIDAgMC0uNS0uNUg3YS41LjUgMCAwIDAtLjUuNXYuMjVhMSAxIDAgMSAxLTIgMHYtLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCZXR3ZWVuRG93bjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JldHdlZW5Eb3duMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAxLjc1YS43NS43NSAwIDAgMC0xLjUgMHYuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxMGMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTEwQS43NS43NSAwIDAgMSA2IDIuMjV2LS41Wk0xMS43NSA2Yy40MSAwIC43NS4zNC43NS43NXY4LjY5bDMuNzItMy43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC01IDVjLS4zLjMtLjc3LjMtMS4wNiAwbC01LTVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkwxMSAxNS40NFY2Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTQuNSAyMS43NWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNWgxMGMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC0xMGEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JldHdlZW5VcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmV0d2VlblVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDE4LjI1YS43NS43NSAwIDAgMS0xLjUgMHYtLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoOWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC05YS4yNS4yNSAwIDAgMC0uMjUuMjV2LjVaTTkuNzUgMTVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNy41NmwyLjk3IDIuOTdhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtNC4yNS00LjI1YS43NS43NSAwIDAgMC0xLjA2IDBMNC45NyA5LjQ3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZMOSA3LjU2djYuNjljMCAuNDEuMzQuNzUuNzUuNzVaTTMuNSAyLjI1QzMuNSAzLjIyIDQuMjggNCA1LjI1IDRoOUMxNS4yMiA0IDE2IDMuMjIgMTYgMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTlBLjI1LjI1IDAgMCAxIDUgMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCZXR3ZWVuVXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCZXR3ZWVuVXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDE4YS41LjUgMCAwIDEtMSAwdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgxMGMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWEuNS41IDAgMCAxLTEgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMTBhLjUuNSAwIDAgMC0uNS41di41Wm01LjUtM2EuNS41IDAgMCAwIC41LS41VjYuN2wzLjY1IDMuNjVhLjUuNSAwIDAgMCAuNy0uN2wtNC41LTQuNWEuNS41IDAgMCAwLS43IDBsLTQuNSA0LjVhLjUuNSAwIDAgMCAuNy43TDkgNi43MXY3Ljc5YzAgLjI4LjIyLjUuNS41Wk0zIDIuNUMzIDMuMzMgMy42NyA0IDQuNSA0aDEwYy44MyAwIDEuNS0uNjcgMS41LTEuNVYyYS41LjUgMCAwIDAtMSAwdi41YS41LjUgMCAwIDEtLjUuNWgtMTBhLjUuNSAwIDAgMS0uNS0uNVYyYS41LjUgMCAwIDAtMSAwdi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk02LjAzIDUuMjJjLjMuMy4zLjc3IDAgMS4wNkw0LjU2IDcuNzVoNi44OEw5Ljk3IDYuMjhhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwyLjc1IDIuNzVjLjMuMy4zLjc3IDAgMS4wNmwtMi43NSAyLjc1YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMS40Ny0xLjQ3SDQuNTZsMS40NyAxLjQ3YS43NS43NSAwIDEgMS0xLjA2IDEuMDZMMi4yMiA5LjAzYS43NS43NSAwIDAgMSAwLTEuMDZsMi43NS0yLjc1Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxMZWZ0UmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yLjE1IDguODVhLjUuNSAwIDAgMSAwLS43bDMtM2EuNS41IDAgMSAxIC43LjdMMy43MSA4aDguNThsLTIuMTQtMi4xNWEuNS41IDAgMCAxIC43LS43bDMgM2MuMi4yLjIuNSAwIC43bC0zIDNhLjUuNSAwIDAgMS0uNy0uN0wxMi4yOSA5SDMuNzFsMi4xNCAyLjE1YS41LjUgMCAxIDEtLjcuN2wtMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03Ljc4IDUuNzJjLjMuMy4zLjc3IDAgMS4wNkw1LjU2IDloOC44OGwtMi4yMi0yLjIyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMy41IDMuNWMuMy4zLjMuNzcgMCAxLjA2bC0zLjUgMy41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMi4yMi0yLjIySDUuNTZsMi4yMiAyLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTMuNS0zLjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmwzLjUtMy41Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxMZWZ0UmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjM1IDUuNjVjLjIuMi4yLjUgMCAuN0w0LjcxIDloMTAuNThsLTIuNjQtMi42NWEuNS41IDAgMCAxIC43LS43bDMuNSAzLjVjLjIuMi4yLjUgMCAuN2wtMy41IDMuNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDEwSDQuNzFsMi42NCAyLjY1YS41LjUgMCAwIDEtLjcuN2wtMy41LTMuNWEuNS41IDAgMCAxIDAtLjdsMy41LTMuNWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOS40NiA2LjU0YTEgMSAwIDAgMSAwIDEuNDJMNi40IDExSDE3LjZsLTMuMDUtMy4wNGExIDEgMCAwIDEgMS40Mi0xLjQybDQuNzUgNC43NWExIDEgMCAwIDEgMCAxLjQybC00Ljc1IDQuNzVhMSAxIDAgMCAxLTEuNDItMS40MkwxNy42IDEzSDYuNGwzLjA1IDMuMDRhMSAxIDAgMSAxLTEuNDIgMS40MkwzLjMgMTIuN2ExIDEgMCAwIDEgMC0xLjQybDQuNzUtNC43NWExIDEgMCAwIDEgMS40MiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsTGVmdFJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuMDMgNi40N2MuMy4zLjMuNzcgMCAxLjA2TDUuNTYgMTFoMTIuODhsLTMuNDctMy40N2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDQuNzUgNC43NWMuMy4zLjMuNzcgMCAxLjA2bC00Ljc1IDQuNzVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwzLjQ3LTMuNDdINS41NmwzLjQ3IDMuNDdhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtNC43NS00Ljc1YS43NS43NSAwIDAgMSAwLTEuMDZsNC43NS00Ljc1Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTAuNyA3LjNhMSAxIDAgMCAxIDAgMS40TDYuNDIgMTNIMjEuNmwtNC4zLTQuM2ExIDEgMCAwIDEgMS40Mi0xLjRsNiA2YTEgMSAwIDAgMSAwIDEuNGwtNiA2YTEgMSAwIDAgMS0xLjQyLTEuNGw0LjMtNC4zSDYuNGw0LjMgNC4zYTEgMSAwIDAgMS0xLjQyIDEuNGwtNi02YTEgMSAwIDAgMSAwLTEuNGw2LTZhMSAxIDAgMCAxIDEuNDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbExlZnRSaWdodDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxMZWZ0UmlnaHQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC4yOCA3LjIyYy4zLjMuMy43NyAwIDEuMDZMNS41NiAxM2gxNi44OGwtNC43Mi00LjcyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsNiA2YS43NS43NSAwIDAgMSAwIDEuMDZsLTYgNmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDQuNzItNC43Mkg1LjU2bDQuNzIgNC43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC02LTZhLjc1Ljc1IDAgMCAxIDAtMS4wNmw2LTZjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0zLjc4IDQuNTNhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwyLjUtMi41Yy4zLS4zLjc3LS4zIDEuMDYgMGwyLjUgMi41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMNi41IDMuMzFWOC43bDEuMjItMS4yMmEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0yLjUgMi41Yy0uMy4zLS43Ny4zLTEuMDYgMGwtMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2TDUgOC42OVYzLjNMMy43OCA0LjUzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbFVwRG93bjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTMuMzUgNC4zNWEuNS41IDAgMSAxLS43LS43bDIuNS0yLjVjLjItLjIuNS0uMi43IDBsMi41IDIuNWEuNS41IDAgMSAxLS43LjdMNiAyLjcxdjYuNThsMS42NS0xLjY0YS41LjUgMCAxIDEgLjcuN2wtMi41IDIuNWEuNS41IDAgMCAxLS43IDBsLTIuNS0yLjVhLjUuNSAwIDEgMSAuNy0uN0w1IDkuMjlWMi43MUwzLjM1IDQuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JpZGlyZWN0aW9uYWxVcERvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxVcERvd24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuMjggNi4yOGEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDMtM2MuMy0uMy43Ny0uMyAxLjA2IDBsMyAzYS43NS43NSAwIDAgMS0xLjA2IDEuMDZMOC41IDQuNTZ2Ni44OGwxLjcyLTEuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMyAzYy0uMy4zLS43Ny4zLTEuMDYgMGwtMy0zYS43NS43NSAwIDEgMSAxLjA2LTEuMDZMNyAxMS40NFY0LjU2TDUuMjggNi4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbFVwRG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxVcERvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00Ljg1IDUuODVhLjUuNSAwIDEgMS0uNy0uN2wzLTNjLjItLjIuNS0uMi43IDBsMyAzYS41LjUgMCAwIDEtLjcuN0w4IDMuNzF2OC41OGwyLjE1LTIuMTRhLjUuNSAwIDAgMSAuNy43bC0zIDNhLjUuNSAwIDAgMS0uNyAwbC0zLTNhLjUuNSAwIDAgMSAuNy0uN0w3IDEyLjI5VjMuNzFMNC44NSA1Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02Ljc4IDcuNzhhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwzLjUtMy41Yy4zLS4zLjc3LS4zIDEuMDYgMGwzLjUgMy41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMMTAuNSA1LjU2djguODhsMi4yMi0yLjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTMuNSAzLjVjLS4zLjMtLjc3LjMtMS4wNiAwbC0zLjUtMy41YS43NS43NSAwIDEgMSAxLjA2LTEuMDZMOSAxNC40NFY1LjU2TDYuNzggNy43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93QmlkaXJlY3Rpb25hbFVwRG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JpZGlyZWN0aW9uYWxVcERvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02LjM1IDcuMzVhLjUuNSAwIDEgMS0uNy0uN2wzLjUtMy41Yy4yLS4yLjUtLjIuNyAwbDMuNSAzLjVhLjUuNSAwIDAgMS0uNy43TDEwIDQuNzF2MTAuNThsMi42NS0yLjY0YS41LjUgMCAwIDEgLjcuN2wtMy41IDMuNWEuNS41IDAgMCAxLS43IDBsLTMuNS0zLjVhLjUuNSAwIDAgMSAuNy0uN0w5IDE1LjI5VjQuNzFMNi4zNSA3LjM1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk03Ljk3IDkuNjlBMSAxIDAgMSAxIDYuNTQgOC4zbDQuNzUtNWExIDEgMCAwIDEgMS40NSAwbDQuNzUgNWExIDEgMCAxIDEtMS40NiAxLjM4TDEzIDYuNXYxMWwzLjAyLTMuMTlhMSAxIDAgMSAxIDEuNDYgMS4zOGwtNC43NiA1YTEgMSAwIDAgMS0xLjQ1IDBsLTQuNzQtNWExIDEgMCAxIDEgMS40NC0xLjM4TDExIDE3LjV2LTExTDcuOTcgOS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCaWRpcmVjdGlvbmFsVXBEb3duMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93QmlkaXJlY3Rpb25hbFVwRG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjI1IDUuNjN2MTIuNzRsLTMuNDYtMy42NGEuNzUuNzUgMCAwIDAtMS4wOCAxLjA0bDQuNzUgNWEuNzUuNzUgMCAwIDAgMS4wOCAwbDQuNzUtNWEuNzUuNzUgMCAwIDAtMS4wOC0xLjA0bC0zLjQ2IDMuNjRWNS42M2wzLjQ2IDMuNjRhLjc1Ljc1IDAgMSAwIDEuMDgtMS4wNGwtNC43NS01YS43NS43NSAwIDAgMC0xLjA4IDBsLTQuNzUgNWEuNzUuNzUgMCAxIDAgMS4wOCAxLjA0bDMuNDYtMy42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Qm91bmNlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCb3VuY2UxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggNC43NUEuNzUuNzUgMCAwIDAgNy4yNSA0aC01LjVhLjc1Ljc1IDAgMCAwLS43NS43NXY1LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjYuNTZsNS43MiA1LjcyYS43NS43NSAwIDAgMCAxLjA2IDBsNS41LTUuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC00Ljk3IDQuOTdMMy41NiA1LjVoMy43Yy40IDAgLjc0LS4zNC43NC0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JvdW5jZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JvdW5jZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggNC41YS41LjUgMCAwIDAtLjUtLjVoLTZhLjUuNSAwIDAgMC0uNS41djZhLjUuNSAwIDAgMCAxIDBWNS43bDYuNCA2LjRjLjIuMi41LjIuNyAwbDUuNzUtNS43NWEuNS41IDAgMCAwLS43LS43bC01LjQgNS40TDIuNzEgNUg3LjVhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Qm91bmNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dCb3VuY2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNzUgNmEuNzUuNzUgMCAwIDAtLjc1Ljc1djYuNWEuNzUuNzUgMCAwIDAgMS41IDBWOC41Nmw2LjQ3IDYuNDdjLjMuMy43Ny4zIDEuMDYgMGw2Ljc1LTYuNzVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNi4yMiA2LjIyTDQuNTYgNy41aDQuNjlhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JvdW5jZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JvdW5jZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuNSA2YS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAwIDAgMSAwVjcuN2w3LjE1IDcuMTVjLjIuMi41LjIuNyAwbDctN2EuNS41IDAgMCAwLS43LS43bC02LjY1IDYuNjRMMy43IDdoNS44YS41LjUgMCAwIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dCb3VuY2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JvdW5jZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEgN2ExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDEgMCAyIDBWOS40MWw4LjA0IDguMDVhMSAxIDAgMCAwIDEuNDIgMEwyMS43IDkuMmExIDEgMCAwIDAtMS40Mi0xLjQybC03LjU0IDcuNTVMNS40MSA4SDEwYTEgMSAwIDAgMCAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0JvdW5jZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0JvdW5jZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExIDYuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djcuNWEuNzUuNzUgMCAwIDAgMS41IDBWOC41Nmw4LjcyIDguNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMGw4LjUtOC41YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTcuOTcgNy45N0w0LjU2IDcuNWg1LjdjLjQgMCAuNzQtLjM0Ljc0LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bjEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMTEgNkE1IDUgMCAxIDEgMSA2YTUgNSAwIDAgMSAxMCAwWm0tMi42NS4xYS41LjUgMCAwIDAtLjcgMEw2LjUgNy4yNFYzLjVhLjUuNSAwIDAgMC0xIDB2My43NEw0LjM1IDYuMWEuNS41IDAgMSAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTguMzUgNi4xYS41LjUgMCAwIDAtLjcgMEw2LjUgNy4yNFYzLjVhLjUuNSAwIDAgMC0xIDB2My43NEw0LjM1IDYuMWEuNS41IDAgMSAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMCAwLS43Wk02IDExQTUgNSAwIDEgMCA2IDFhNSA1IDAgMCAwIDAgMTBabTQtNWE0IDQgMCAxIDEtOCAwIDQgNCAwIDAgMSA4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgOGE3IDcgMCAxIDAgMTQgMEE3IDcgMCAwIDAgMSA4Wm02LjggMy40NmEuNS41IDAgMCAxLS4xNS0uMWwtMi41LTIuNWEuNS41IDAgMSAxIC43LS43MUw3LjUgOS43OVY1YS41LjUgMCAwIDEgMSAwdjQuOGwxLjY1LTEuNjVhLjUuNSAwIDAgMSAuNy43bC0yLjUgMi41YS41LjUgMCAwIDEtLjU0LjExWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjE2UmVndWxhcicsIFwiMTZcIiwgW1wibTUuMTUgOC44NSAyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdMOC41IDkuNzlWNWEuNS41IDAgMCAwLTEgMHY0LjhMNS44NSA4LjE0YS41LjUgMCAxIDAtLjcuN1pNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0Wk0yIDhhNiA2IDAgMSAwIDEyIDBBNiA2IDAgMCAwIDIgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabS00LjY1Ljg1YS41LjUgMCAwIDAtLjctLjdsLTIuMTUgMi4xNFY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy43bDMgM2MuMi4yLjUuMi43IDBsMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wibTEzLjM1IDEwLjg1LTMgM2EuNS41IDAgMCAxLS43IDBsLTMtM2EuNS41IDAgMCAxIC43LS43bDIuMTUgMi4xNFY2LjVhLjUuNSAwIDAgMSAxIDB2NS44bDIuMTUtMi4xNWEuNS41IDAgMCAxIC43LjdaTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm03LThhNyA3IDAgMSAxLTE0IDAgNyA3IDAgMCAxIDE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgMTJhMTAgMTAgMCAxIDAgMjAgMCAxMCAxMCAwIDAgMC0yMCAwWm0xNC41My0uMjhjLjI3LjI3LjI5LjY4LjA3Ljk4bC0uMDcuMDgtNCA0YS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDctNC00YS43NS43NSAwIDAgMSAuOTctMS4xM2wuMDkuMDcgMi43MiAyLjcyVjcuNzVjMC0uMzguMjgtLjcuNjUtLjc0TDEyIDdjLjM4IDAgLjcuMjguNzQuNjV2LjFsLjAxIDYuNjkgMi43Mi0yLjcyYy4yNy0uMjcuNjgtLjMuOTgtLjA3bC4wOC4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xNi41MyAxMS43Mi0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTguMDdsLTIuNzIgMi43MlY3LjY1QS43NS43NSAwIDAgMCAxMiA3aC0uMWEuNzUuNzUgMCAwIDAtLjY1Ljc1djYuN2wtMi43Mi0yLjczLS4wOS0uMDdhLjc1Ljc1IDAgMCAwLS45NyAxLjEzbDQgNCAuMDguMDdjLjMuMjIuNzEuMi45OC0uMDdsNC00IC4wNy0uMDhjLjIyLS4zLjItLjcxLS4wNy0uOThaTTIgMTJhMTAgMTAgMCAxIDAgMjAgMCAxMCAxMCAwIDAgMC0yMCAwWm0xOC41IDBhOC41IDguNSAwIDEgMS0xNyAwIDguNSA4LjUgMCAwIDEgMTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMmExMiAxMiAwIDEgMCAwIDI0IDEyIDEyIDAgMCAwIDAtMjRaTTguOTcgMTQuMjJjLjMtLjMuNzctLjMgMS4wNiAwbDMuMjIgMy4yMlY4Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY4LjY5bDMuMjItMy4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC00LjUgNC41Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNC41LTQuNWEuNzUuNzUgMCAwIDEgMC0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTguOTcgMTQuMjJjLjMtLjMuNzctLjMgMS4wNiAwbDMuMjIgMy4yMlY4Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY4LjY5bDMuMjItMy4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC00LjUgNC41Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNC41LTQuNWEuNzUuNzUgMCAwIDEgMC0xLjA2Wk0yIDE0YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFpNMTQgMy41YTEwLjUgMTAuNSAwIDEgMCAwIDIxIDEwLjUgMTAuNSAwIDAgMCAwLTIxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNiAyYTE0IDE0IDAgMSAwIDAgMjggMTQgMTQgMCAwIDAgMC0yOFpNOS4zIDE1LjNhMSAxIDAgMCAxIDEuNCAwbDQuMyA0LjI5VjEwYTEgMSAwIDEgMSAyIDB2OS41OWw0LjMtNC4zYTEgMSAwIDAgMSAxLjQgMS40MmwtNiA2YTEgMSAwIDAgMS0xLjQgMGwtNi02YTEgMSAwIDAgMSAwLTEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd24zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOS4zIDE1LjNhMSAxIDAgMCAxIDEuNCAwbDQuMyA0LjI5VjEwYTEgMSAwIDEgMSAyIDB2OS41OWw0LjMtNC4zYTEgMSAwIDAgMSAxLjQgMS40MmwtNiA2YTEgMSAwIDAgMS0xLjQgMGwtNi02YTEgMSAwIDAgMSAwLTEuNDJaTTIgMTZhMTQgMTQgMCAxIDEgMjggMCAxNCAxNCAwIDAgMS0yOCAwWk0xNiA0YTEyIDEyIDAgMSAwIDAgMjQgMTIgMTIgMCAwIDAgMC0yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93bjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMCAwIDAtNDBabS04LjYzIDE5Ljg3YTEuMjUgMS4yNSAwIDAgMSAxLjc2IDBsNS42MiA1LjYxVjE1LjI1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYxNC4yM2w1LjYyLTUuNjFhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMS43NmwtNy43NSA3Ljc1Yy0uNDguNS0xLjI4LjUtMS43NiAwbC03Ljc1LTcuNzVhMS4yNSAxLjI1IDAgMCAxIDAtMS43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNS4zNyAyMy44N2ExLjI1IDEuMjUgMCAwIDEgMS43NiAwbDUuNjIgNS42MVYxNS4yNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2MTQuMjNsNS42Mi01LjYxYTEuMjUgMS4yNSAwIDAgMSAxLjc2IDEuNzZsLTcuNzUgNy43NWMtLjQ4LjUtMS4yOC41LTEuNzYgMGwtNy43NS03Ljc1YTEuMjUgMS4yNSAwIDAgMSAwLTEuNzZaTTQgMjRhMjAgMjAgMCAxIDEgNDAgMCAyMCAyMCAwIDAgMS00MCAwWk0yNCA2LjVhMTcuNSAxNy41IDAgMSAwIDAgMzUgMTcuNSAxNy41IDAgMCAwIDAtMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25Eb3VibGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25Eb3VibGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMzUgMTMuODUgOSAxMi4yMWEuNS41IDAgMSAwLS43LS43MWwtLjguOFY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0uOC0uOGEuNS41IDAgMSAwLS43LjdsMS42NSAxLjY1Yy4yLjIuNS4yLjcgMFpNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabS00LjY1IDMuODVMMTUgMTIuMjFhLjUuNSAwIDEgMC0uNy0uNzFsLS44LjhWNi41YS41LjUgMCAwIDAtMSAwdjUuOGwtLjgtLjhhLjUuNSAwIDEgMC0uNy43bDEuNjUgMS42NWMuMi4yLjUuMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25Eb3VibGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duRG91YmxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtOSAxMi4yLTEuNjUgMS42NWEuNS41IDAgMCAxLS43IDBMNSAxMi4yMWEuNS41IDAgMSAxIC43LS43MWwuOC44VjYuNWEuNS41IDAgMCAxIDEgMHY1LjhsLjgtLjhhLjUuNSAwIDEgMSAuNy43Wm0xIDUuOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptNy04YTcgNyAwIDEgMS0xNCAwIDcgNyAwIDAgMSAxNCAwWm0tMy42NSAzLjg1TDE1IDEyLjIxYS41LjUgMCAxIDAtLjctLjcxbC0uOC44VjYuNWEuNS41IDAgMCAwLTEgMHY1LjhsLS44LS44YS41LjUgMCAxIDAtLjcuN2wxLjY1IDEuNjVjLjIuMi41LjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duRG91YmxlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duRG91YmxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMS4yNSAxMy43NWMuMjcuMjcuMjkuNjguMDcuOThsLS4wNy4wOC0xLjk3IDEuOTdhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0xLjk3LTEuOTdhLjc1Ljc1IDAgMCAxIC45OC0xLjEzbC4wOC4wNy42OS43di02LjdjMC0uMzguMjgtLjcuNjUtLjc0bC4xLS4wMWMuMzggMCAuNy4yOC43NC42NXYuMWwuMDEgNi42OS42OS0uNjlhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3Wk0yIDEyYTEwIDEwIDAgMSAwIDIwIDAgMTAgMTAgMCAwIDAtMjAgMFptMTUuNjcgMS42OC4wOC4wN2MuMjcuMjcuMjkuNjguMDcuOThsLS4wNy4wOC0xLjk3IDEuOTdhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0xLjk3LTEuOTdhLjc1Ljc1IDAgMCAxIC45OC0xLjEzbC4wOC4wNy42OS43di02LjdjMC0uMzguMjgtLjcuNjUtLjc0bC4xLS4wMWMuMzggMCAuNy4yOC43NC42NXY2Ljc5bC43LS42OWEuNzUuNzUgMCAwIDEgLjk4LS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93bkRvdWJsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25Eb3VibGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xMS4yNSAxMy43NS0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTguMDdsLS42OS42OVY3LjY1QS43NS43NSAwIDAgMCA4Ljc0IDdoLS4xYS43NS43NSAwIDAgMC0uNjUuNzV2Ni43bC0uNjktLjctLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4IDEuMTNsMS45NyAxLjk3LjA4LjA3Yy4zLjIyLjcxLjIuOTgtLjA3bDEuOTctMS45Ny4wNy0uMDhjLjIyLS4zLjItLjcxLS4wNy0uOThaTTIgMTJhMTAgMTAgMCAxIDAgMjAgMCAxMCAxMCAwIDAgMC0yMCAwWm0xOC41IDBhOC41IDguNSAwIDEgMS0xNyAwIDguNSA4LjUgMCAwIDEgMTcgMFptLTIuNzUgMS43NS0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTguMDdsLS43LjY5di02LjhhLjc1Ljc1IDAgMCAwLS43NC0uNjRoLS4xYS43NS43NSAwIDAgMC0uNjUuNzV2Ni43bC0uNjktLjctLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4IDEuMTNsMS45NyAxLjk3LjA4LjA3Yy4zLjIyLjcxLjIuOTgtLjA3bDEuOTctMS45Ny4wNy0uMDhjLjIyLS4zLjItLjcxLS4wNy0uOThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25SaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blJpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMS41IDRoLS4wOWEuNS41IDAgMCAwLS40LjRWOC4zTDYuODQgNi4xNGwtLjA2LS4wNmEuNS41IDAgMCAwLS41NyAwbC0uMDcuMDYtLjA2LjA2YS41LjUgMCAwIDAgMCAuNTdsLjA2LjA3TDguMjkgOUg2LjQxYS41LjUgMCAwIDAgMCAxaDMuMTVsLjA1LS4wMS4wNi0uMDIuMDQtLjAyLjA4LS4wNC4wNi0uMDYuMDUtLjA1LjAzLS4wNS4wMi0uMDQuMDMtLjA2LjAxLS4wNC4wMS0uMDlWNi40YS41LjUgMCAwIDAtLjQtLjRIOS40aC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duUmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duUmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA4IDNabTEuNDEgM2guMWEuNS41IDAgMCAxIC40OC40bC4wMS4xdjMuMDJsLS4wMS4wOS0uMDIuMDYtLjAzLjA4LS4wNi4wNy0uMDQuMDUtLjA3LjA1LS4wNi4wMy0uMDQuMDItLjA2LjAyLS4wOS4wMUg2LjVhLjUuNSAwIDAgMS0uMDktMUg4LjNMNi4xNSA2Ljg1YS41LjUgMCAwIDEtLjA2LS42NGwuMDYtLjA2YS41LjUgMCAwIDEgLjY0LS4wNmwuMDYuMDZMOSA4LjI5VjYuNWEuNS41IDAgMCAxIC40MS0uNDhsLjEtLjAxaC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabTIuODUgMTAuODZhLjUuNSAwIDAgMS0uMzUuMTRoLTVhLjUuNSAwIDAgMSAwLTFoMy44TDcuMTQgNy44NWEuNS41IDAgMSAxIC43LS43TDEyIDExLjI5VjcuNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtLjE0LjM1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVEb3duUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMi44NSAxMi44NmEuNS41IDAgMCAxLS4zNS4xNGgtNWEuNS41IDAgMCAxIDAtMWgzLjhMNy4xNCA3Ljg1YS41LjUgMCAxIDEgLjctLjdMMTIgMTEuMjlWNy41YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0uMTQuMzVaTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm03LThhNyA3IDAgMSAxLTE0IDAgNyA3IDAgMCAxIDE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25SaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyMmExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBabTIuNS0xMy4yNWEuNzUuNzUgMCAwIDEgMS41IDB2Ni41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTYuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNC43NEw4LjIyIDkuMjhhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmw1LjIyIDUuMTdWOC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuNSAxNC41SDguNzRhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNi41YS43NS43NSAwIDAgMC0xLjUgMHY0LjY0TDkuMjggOC4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDUuMjcgNS4yMlpNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBabTEwLTguNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVEb3duU3BsaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25TcGxpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabS05LjIgMi40MWEuNS41IDAgMSAwLS43MS0uN2wtLjU5LjU4VjloNXYzLjNsLS41OS0uNmEuNS41IDAgMCAwLS43LjcxbDEuNDQgMS40NGMuMi4yLjUuMi43IDBsMS40NC0xLjQ0YS41LjUgMCAwIDAtLjctLjdsLS41OS41OFY4LjVBLjUuNSAwIDAgMCAxMyA4aC0yLjVWNS41YS41LjUgMCAwIDAtMSAwVjhIN2EuNS41IDAgMCAwLS41LjV2My44bC0uNTktLjZhLjUuNSAwIDAgMC0uNy43MWwxLjQ0IDEuNDRjLjIuMi41LjIuNyAwbDEuNDQtMS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blNwbGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blNwbGl0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtOC44IDEyLjQxLTEuNDUgMS40NGEuNS41IDAgMCAxLS43IDBMNS4yIDEyLjQxYS41LjUgMCAwIDEgLjctLjdsLjU5LjU4VjguNWMwLS4yOC4yMi0uNS41LS41aDIuNVY1LjVhLjUuNSAwIDAgMSAxIDBWOEgxM2MuMjggMCAuNS4yMi41LjV2My44bC41OS0uNmEuNS41IDAgMCAxIC43LjcxbC0xLjQ0IDEuNDRhLjUuNSAwIDAgMS0uNyAwbC0xLjQ0LTEuNDRhLjUuNSAwIDAgMSAuNy0uN2wuNTkuNThWOWgtNXYzLjNsLjU5LS42YS41LjUgMCAxIDEgLjcuNzFaTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm03LThhNyA3IDAgMSAxLTE0IDAgNyA3IDAgMCAxIDE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25TcGxpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blNwbGl0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyMmExMCAxMCAwIDEgMSAwLTIwIDEwIDEwIDAgMCAxIDAgMjBabS0xLTgtLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4LjA3bC0uNDQuNDRWMTAuNWg1djMuOTRsLS41MS0uNDQtLjA5LS4wN2EuNzUuNzUgMCAwIDAtLjk3IDEuMTNsMS43OSAxLjcyLjA4LjA3Yy4zLjIyLjcxLjIuOTgtLjA3bDEuNzItMS43Mi4wNy0uMDhjLjIyLS4zLjItLjcyLS4wNy0uOThsLS4wOC0uMDdhLjc1Ljc1IDAgMCAwLS45OC4wN2wtLjQ0LjQ0di00LjhhLjc1Ljc1IDAgMCAwLS43NS0uNjRoLTIuNVY1LjY1QS43NS43NSAwIDAgMCAxMiA1aC0uMWEuNzUuNzUgMCAwIDAtLjY1Ljc1VjloLTIuNmEuNzUuNzUgMCAwIDAtLjY1Ljc1djQuNjlMNy41NiAxNGwtLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4IDEuMTNsMS43MiAxLjcyLjA4LjA3Yy4zLjIyLjcxLjIuOTgtLjA3TDExIDE1LjA2bC4wNy0uMDljLjIyLS4yOS4yLS43LS4wNy0uOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25TcGxpdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZURvd25TcGxpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wibTExIDE0LS4wOC0uMDdhLjc1Ljc1IDAgMCAwLS45OC4wN2wtLjQ0LjQ0VjEwLjVoNXYzLjk0bC0uNTEtLjQ0LS4wOS0uMDdhLjc1Ljc1IDAgMCAwLS45NyAxLjEzbDEuNzkgMS43Mi4wOC4wN2MuMy4yMi43MS4yLjk4LS4wN2wxLjcyLTEuNzIuMDctLjA4Yy4yMi0uMy4yLS43Mi0uMDctLjk4bC0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTguMDdsLS40NC40NHYtNC44YS43NS43NSAwIDAgMC0uNzUtLjY0aC0yLjVWNS42NUEuNzUuNzUgMCAwIDAgMTIgNWgtLjFhLjc1Ljc1IDAgMCAwLS42NS43NVY5aC0yLjZhLjc1Ljc1IDAgMCAwLS42NS43NXY0LjY5TDcuNTYgMTRsLS4wOC0uMDdhLjc1Ljc1IDAgMCAwLS45OCAxLjEzbDEuNzIgMS43Mi4wOC4wN2MuMy4yMi43MS4yLjk4LS4wN0wxMSAxNS4wNmwuMDctLjA5Yy4yMi0uMjkuMi0uNy0uMDctLjk3Wm0tOS0yYTEwIDEwIDAgMSAwIDIwIDAgMTAgMTAgMCAwIDAtMjAgMFptMTguNSAwYTguNSA4LjUgMCAxIDEtMTcgMCA4LjUgOC41IDAgMCAxIDE3IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZURvd25VcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlptLTEtNS44LTEuNjUgMS42NWEuNS41IDAgMCAxLS43IDBMNSAxMi4yMWEuNS41IDAgMSAxIC43LS43MWwuOC44VjYuNWEuNS41IDAgMCAxIDEgMHY1LjhsLjgtLjhhLjUuNSAwIDEgMSAuNy43Wm02LTQuNGEuNS41IDAgMCAxLS43LjdsLS44LS44djUuOGEuNS41IDAgMCAxLTEgMFY3LjdsLS44LjhhLjUuNSAwIDEgMS0uNy0uN2wxLjY1LTEuNjVjLjItLjIuNS0uMi43IDBMMTUgNy43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlRG93blVwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlRG93blVwMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy4zNSAxMy44NSA5IDEyLjIxYS41LjUgMCAxIDAtLjctLjcxbC0uOC44VjYuNWEuNS41IDAgMCAwLTEgMHY1LjhsLS44LS44YS41LjUgMCAxIDAtLjcuN2wxLjY1IDEuNjVjLjIuMi41LjIuNyAwWk0xNSA3LjhsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43IDBMMTEgNy43OWEuNS41IDAgMSAwIC43LjcxbC44LS44djUuOGEuNS41IDAgMSAwIDEgMFY3LjdsLjguOGEuNS41IDAgMSAwIC43LS43Wk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFptLTggN2E3IDcgMCAxIDAgMC0xNCA3IDcgMCAwIDAgMCAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlTGVmdDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA2IDFabS0uMSAyLjY1Yy4yLjIuMi41IDAgLjdMNC43NiA1LjVIOC41YS41LjUgMCAwIDEgMCAxSDQuNzZMNS45IDcuNjVhLjUuNSAwIDEgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZUxlZnQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk01LjkgMy42NWMuMi4yLjIuNSAwIC43TDQuNzYgNS41SDguNWEuNS41IDAgMCAxIDAgMUg0Ljc2TDUuOSA3LjY1YS41LjUgMCAxIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJjLjItLjIuNS0uMi43IDBaTTEgNmE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMSA2Wm01LTRhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVMZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVMZWZ0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTRaTTQuNTQgOC4yYS41LjUgMCAwIDAgLjEuMTVsMi41IDIuNWEuNS41IDAgMCAwIC43MS0uN0w2LjIxIDguNUgxMWEuNS41IDAgMCAwIDAtMUg2LjJsMS42NS0xLjY1YS41LjUgMCAxIDAtLjctLjdsLTIuNSAyLjVhLjUuNSAwIDAgMC0uMTEuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZUxlZnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtNy4xNSAxMC44NS0yLjUtMi41YS41LjUgMCAwIDEgMC0uN2wyLjUtMi41YS41LjUgMCAxIDEgLjcuN0w2LjIxIDcuNUgxMWEuNS41IDAgMCAxIDAgMUg2LjJsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN1pNMSA4YTcgNyAwIDEgMCAxNCAwQTcgNyAwIDAgMCAxIDhabTcgNkE2IDYgMCAxIDEgOCAyYTYgNiAwIDAgMSAwIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAxOGE4IDggMCAxIDEgMC0xNiA4IDggMCAwIDEgMCAxNlptLS44NS00LjY1YS41LjUgMCAwIDAgLjctLjdMNy43MSAxMC41aDUuNzlhLjUuNSAwIDAgMCAwLTFINy43bDIuMTUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0zIDNhLjUuNSAwIDAgMCAwIC43bDMgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZUxlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm05LjE1IDEzLjM1LTMtM2EuNS41IDAgMCAxIDAtLjdsMy0zYS41LjUgMCAxIDEgLjcuN0w3LjcxIDkuNWg1Ljc5YS41LjUgMCAwIDEgMCAxSDcuN2wyLjE1IDIuMTVhLjUuNSAwIDAgMS0uNy43Wk0yIDEwYTggOCAwIDEgMCAxNiAwIDggOCAwIDAgMC0xNiAwWm04IDdhNyA3IDAgMSAxIDAtMTQgNyA3IDAgMCAxIDAgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZUxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZUxlZnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWm0uMjggMTQuNTNhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy00LTRhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOCA0LTRhLjc1Ljc1IDAgMCAxIDEuMTMuOThsLS4wNy4wOC0yLjcyIDIuNzJoNi42OWMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxSDkuNTZsMi43MiAyLjcyYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZUxlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVMZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTIuMjggMTYuNTMuMDctLjA4Yy4yMi0uMy4yLS43MS0uMDctLjk4bC0yLjcyLTIuNzJoNi43OUEuNzUuNzUgMCAwIDAgMTcgMTJ2LS4xYS43NS43NSAwIDAgMC0uNzUtLjY1aC02LjdsMi43My0yLjcyLjA3LS4wOGEuNzUuNzUgMCAwIDAtMS4xMy0uOThsLTQgNC0uMDcuMDhjLS4yMi4zLS4yLjcxLjA3Ljk4bDQgNCAuMDguMDdjLjMuMjIuNzEuMi45OC0uMDdaTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWm0wIDE4LjVhOC41IDguNSAwIDEgMSAwLTE3IDguNSA4LjUgMCAwIDEgMCAxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlTGVmdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjYgMTRhMTIgMTIgMCAxIDEtMjQgMCAxMiAxMiAwIDAgMSAyNCAwWm0tMTIuMjIgNS4wM2MuMy0uMy4zLS43NyAwLTEuMDZsLTMuMjItMy4yMmg4LjY5YS43NS43NSAwIDAgMCAwLTEuNWgtOC42OWwzLjIyLTMuMjJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtNC41IDQuNWMtLjMuMy0uMy43NyAwIDEuMDZsNC41IDQuNWMuMy4zLjc3LjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVMZWZ0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlTGVmdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEzLjc4IDE5LjAzYy4zLS4zLjMtLjc3IDAtMS4wNmwtMy4yMi0zLjIyaDguNjlhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjY5bDMuMjItMy4yMmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC00LjUgNC41Yy0uMy4zLS4zLjc3IDAgMS4wNmw0LjUgNC41Yy4zLjMuNzcuMyAxLjA2IDBaTTE0IDI2YTEyIDEyIDAgMSAwIDAtMjQgMTIgMTIgMCAwIDAgMCAyNFptMTAuNS0xMmExMC41IDEwLjUgMCAxIDEtMjEgMCAxMC41IDEwLjUgMCAwIDEgMjEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlTGVmdDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMzAgMTZhMTQgMTQgMCAxIDEtMjggMCAxNCAxNCAwIDAgMSAyOCAwWm0tMTMuMyA2LjdhMSAxIDAgMCAwIDAtMS40TDEyLjQyIDE3SDIyYTEgMSAwIDEgMCAwLTJoLTkuNTlsNC4zLTQuM2ExIDEgMCAwIDAtMS40Mi0xLjRsLTYgNmExIDEgMCAwIDAgMCAxLjRsNiA2YTEgMSAwIDAgMCAxLjQyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZUxlZnQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVMZWZ0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTYuNyAyMi43YTEgMSAwIDAgMCAwLTEuNEwxMi40MiAxN0gyMmExIDEgMCAxIDAgMC0yaC05LjU5bDQuMy00LjNhMSAxIDAgMCAwLTEuNDItMS40bC02IDZhMSAxIDAgMCAwIDAgMS40bDYgNmExIDEgMCAwIDAgMS40MiAwWk0xNiAzMGExNCAxNCAwIDEgMCAwLTI4IDE0IDE0IDAgMCAwIDAgMjhabTEyLTE0YTEyIDEyIDAgMSAxLTI0IDAgMTIgMTIgMCAwIDEgMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlTGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlTGVmdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDQgMjRhMjAgMjAgMCAxIDEtNDAgMCAyMCAyMCAwIDAgMSA0MCAwWm0tMTkuODcgOC42M2MuNS0uNDguNS0xLjI4IDAtMS43NmwtNS42MS01LjYyaDE0LjIzYTEuMjUgMS4yNSAwIDEgMCAwLTIuNUgxOC41Mmw1LjYxLTUuNjJhMS4yNSAxLjI1IDAgMCAwLTEuNzYtMS43NmwtNy43NSA3Ljc1YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsNy43NSA3Ljc1Yy40OC41IDEuMjguNSAxLjc2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZUxlZnQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVMZWZ0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQuMTMgMzIuNjNjLjUtLjQ4LjUtMS4yOCAwLTEuNzZsLTUuNjEtNS42MmgxNC4yM2ExLjI1IDEuMjUgMCAxIDAgMC0yLjVIMTguNTJsNS42MS01LjYyYTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZsLTcuNzUgNy43NWExLjI1IDEuMjUgMCAwIDAgMCAxLjc2bDcuNzUgNy43NWMuNDguNSAxLjI4LjUgMS43NiAwWk0yNCA0NGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMCAwIDAgNDBabTE3LjUtMjBhMTcuNSAxNy41IDAgMSAxLTM1IDAgMTcuNSAxNy41IDAgMCAxIDM1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVSaWdodDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxYTUgNSAwIDEgMSAwIDEwQTUgNSAwIDAgMSA2IDFabS4xIDIuNjVhLjUuNSAwIDAgMCAwIC43TDcuMjQgNS41SDMuNWEuNS41IDAgMCAwIDAgMWgzLjc0TDYuMSA3LjY1YS41LjUgMCAxIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVSaWdodDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVJpZ2h0MTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNi4xIDMuNjVhLjUuNSAwIDAgMCAwIC43TDcuMjQgNS41SDMuNWEuNS41IDAgMCAwIDAgMWgzLjc0TDYuMSA3LjY1YS41LjUgMCAxIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNyAwWk0xMSA2QTUgNSAwIDEgMCAxIDZhNSA1IDAgMCAwIDEwIDBaTTYgMmE0IDQgMCAxIDEgMCA4IDQgNCAwIDAgMSAwLThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVSaWdodDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxNUE3IDcgMCAxIDAgOCAxYTcgNyAwIDAgMCAwIDE0Wm0zLjQ2LTYuOGEuNS41IDAgMCAxLS4xLjE1bC0yLjUgMi41YS41LjUgMCAwIDEtLjcxLS43TDkuNzkgOC41SDVhLjUuNSAwIDAgMSAwLTFoNC44TDguMTQgNS44NWEuNS41IDAgMSAxIC43LS43bDIuNSAyLjVhLjUuNSAwIDAgMSAuMTEuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlUmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm04Ljg1IDEwLjg1IDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAxIDAtLjcuN0w5Ljc5IDcuNUg1YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN1pNMTUgOEE3IDcgMCAxIDEgMSA4YTcgNyAwIDAgMSAxNCAwWm0tNyA2QTYgNiAwIDEgMCA4IDJhNiA2IDAgMCAwIDAgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZabS44NS00LjY1YS41LjUgMCAwIDEtLjctLjdsMi4xNC0yLjE1SDYuNWEuNS41IDAgMCAxIDAtMWg1LjhsLTIuMTUtMi4xNWEuNS41IDAgMCAxIC43LS43bDMgM2MuMi4yLjIuNSAwIC43bC0zIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xMC44NSAxMy4zNSAzLTNhLjUuNSAwIDAgMCAwLS43bC0zLTNhLjUuNSAwIDAgMC0uNy43bDIuMTQgMi4xNUg2LjVhLjUuNSAwIDAgMCAwIDFoNS44bC0yLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy43Wk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFptLTggN2E3IDcgMCAxIDAgMC0xNCA3IDcgMCAwIDAgMCAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptLjc4IDUuNDctLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjg5LS4wMWwtLjA5LjA4LS4wNy4wOGMtLjIuMjYtLjIuNjIgMCAuODlsLjA3LjA5IDIuNzIgMi43Mkg3LjY1Yy0uMzMuMDUtLjYuMzEtLjY0LjY1TDcgMTJ2LjFjLjA1LjMzLjMyLjYuNjUuNjRoNi43OWwtMi43MiAyLjczLS4wNy4wOGEuNzUuNzUgMCAwIDAgMS4wNSAxLjA1bC4wOC0uMDcgNC00IC4wNy0uMDhjLjItLjI2LjItLjYyLjAxLS44OWwtLjA4LS4wOS00LTQtLjA4LS4wNy4wOC4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlUmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wm0tLjM1IDQuMDUuMDctLjA4YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyA0IDRjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOC00IDRhLjc1Ljc1IDAgMCAxLTEuMTMtLjk4bC4wNy0uMDggMi43Mi0yLjcySDcuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNjVMNyAxMmMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDYuNjlsLTIuNzItMi43MmEuNzUuNzUgMCAwIDEtLjA3LS45OGwuMDctLjA4LS4wNy4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlUmlnaHQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVJpZ2h0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDE0YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFptMTIuMjItNS4wM2MtLjMuMy0uMy43NyAwIDEuMDZsMy4yMiAzLjIySDguNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNjlsLTMuMjIgMy4yMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQuNS00LjVjLjMtLjMuMy0uNzcgMC0xLjA2bC00LjUtNC41YS43NS43NSAwIDAgMC0xLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlUmlnaHQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNC4yMiA4Ljk3Yy0uMy4zLS4zLjc3IDAgMS4wNmwzLjIyIDMuMjJIOC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoOC42OWwtMy4yMiAzLjIyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNC41LTQuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTQuNS00LjVhLjc1Ljc1IDAgMCAwLTEuMDYgMFpNMTQgMmExMiAxMiAwIDEgMCAwIDI0IDEyIDEyIDAgMCAwIDAtMjRaTTMuNSAxNGExMC41IDEwLjUgMCAxIDEgMjEgMCAxMC41IDEwLjUgMCAwIDEtMjEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlUmlnaHQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVJpZ2h0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDE2YTE0IDE0IDAgMSAxIDI4IDAgMTQgMTQgMCAwIDEtMjggMFptMTMuMy02LjdhMSAxIDAgMCAwIDAgMS40bDQuMjkgNC4zSDEwYTEgMSAwIDEgMCAwIDJoOS41OWwtNC4zIDQuM2ExIDEgMCAwIDAgMS40MiAxLjRsNi02YTEgMSAwIDAgMCAwLTEuNGwtNi02YTEgMSAwIDAgMC0xLjQyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVJpZ2h0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlUmlnaHQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNS4zIDkuM2ExIDEgMCAwIDAgMCAxLjRsNC4yOSA0LjNIMTBhMSAxIDAgMSAwIDAgMmg5LjU5bC00LjMgNC4zYTEgMSAwIDAgMCAxLjQyIDEuNGw2LTZhMSAxIDAgMCAwIDAtMS40bC02LTZhMSAxIDAgMCAwLTEuNDIgMFpNMTYgMmExNCAxNCAwIDEgMCAwIDI4IDE0IDE0IDAgMCAwIDAtMjhaTTQgMTZhMTIgMTIgMCAxIDEgMjQgMCAxMiAxMiAwIDAgMS0yNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVSaWdodDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlUmlnaHQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMjRhMjAgMjAgMCAxIDEgNDAgMCAyMCAyMCAwIDAgMS00MCAwWm0xOS44Ny04LjYzYTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsNS42MSA1LjYySDE1LjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxNC4yM2wtNS42MSA1LjYyYTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZsNy43NS03Ljc1Yy41LS40OC41LTEuMjggMC0xLjc2bC03Ljc1LTcuNzVhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlUmlnaHQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVSaWdodDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTIzLjg3IDE1LjM3YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsNS42MSA1LjYySDE1LjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxNC4yM2wtNS42MSA1LjYyYTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZsNy43NS03Ljc1Yy41LS40OC41LTEuMjggMC0xLjc2bC03Ljc1LTcuNzVhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMFpNMjQgNGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMCAwIDAtNDBaTTYuNSAyNGExNy41IDE3LjUgMCAxIDEgMzUgMCAxNy41IDE3LjUgMCAwIDEtMzUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXAxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xIDZhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDEgNlptMi42NS0uMWMuMi4yLjUuMi43IDBMNS41IDQuNzZWOC41YS41LjUgMCAwIDAgMSAwVjQuNzZMNy42NSA1LjlhLjUuNSAwIDEgMCAuNy0uN2wtMi0yYS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAwIDAgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXAxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVVcDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTMuNjUgNS45Yy4yLjIuNS4yLjcgMEw1LjUgNC43NlY4LjVhLjUuNSAwIDAgMCAxIDBWNC43Nkw3LjY1IDUuOWEuNS41IDAgMSAwIC43LS43bC0yLTJhLjUuNSAwIDAgMC0uNyAwbC0yIDJhLjUuNSAwIDAgMCAwIC43Wk02IDFhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDYgMVpNMiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDhhNyA3IDAgMSAxIDE0IDBBNyA3IDAgMCAxIDEgOFptNi44LTMuNDZhLjUuNSAwIDAgMC0uMTUuMWwtMi41IDIuNWEuNS41IDAgMSAwIC43LjcxTDcuNSA2LjIxVjExYS41LjUgMCAwIDAgMSAwVjYuMmwxLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS41NC0uMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXAxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm01LjE1IDcuMTUgMi41LTIuNWMuMi0uMi41LS4yLjcgMGwyLjUgMi41YS41LjUgMCAwIDEtLjcuN0w4LjUgNi4yMVYxMWEuNS41IDAgMCAxLTEgMFY2LjJMNS44NSA3Ljg2YS41LjUgMCAxIDEtLjctLjdaTTggMWE3IDcgMCAxIDAgMCAxNEE3IDcgMCAwIDAgOCAxWk0yIDhhNiA2IDAgMSAxIDEyIDBBNiA2IDAgMCAxIDIgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm00LjY1LS44NWEuNS41IDAgMSAwIC43LjdMOS41IDcuNzF2NS43OWEuNS41IDAgMCAwIDEgMFY3LjdsMi4xNSAyLjE1YS41LjUgMCAwIDAgLjctLjdsLTMtM2EuNS41IDAgMCAwLS43IDBsLTMgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wibTYuNjUgOS4xNSAzLTNjLjItLjIuNS0uMi43IDBsMyAzYS41LjUgMCAwIDEtLjcuN0wxMC41IDcuNzF2NS43OWEuNS41IDAgMCAxLTEgMFY3LjdMNy4zNSA5Ljg2YS41LjUgMCAwIDEtLjctLjdaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVVcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWm0tMTQuNTMuMjhhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOCA0LTRhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDQgNGEuNzUuNzUgMCAwIDEtLjk3IDEuMTNsLS4wOS0uMDctMi43Mi0yLjcydjYuNjljMCAuMzgtLjI4LjctLjY1Ljc0TDEyIDE3YS43NS43NSAwIDAgMS0uNzQtLjY1di0uMWwtLjAxLTYuNjktMi43MiAyLjcyYS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm03LjQ3IDEyLjI4LjA4LjA3Yy4zLjIyLjcxLjIuOTgtLjA3bDIuNzItMi43MnY2Ljc5Yy4wNi4zNy4zNy42NS43NS42NWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NXYtNi43bDIuNzIgMi43My4wOS4wN2EuNzUuNzUgMCAwIDAgLjk3LTEuMTNsLTQtNC0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTguMDdsLTQgNC0uMDcuMDhjLS4yMi4zLS4yLjcxLjA3Ljk4Wk0yMiAxMmExMCAxMCAwIDEgMC0yMCAwIDEwIDEwIDAgMCAwIDIwIDBaTTMuNSAxMmE4LjUgOC41IDAgMSAxIDE3IDAgOC41IDguNSAwIDAgMS0xNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXAyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDI2YTEyIDEyIDAgMSAxIDAtMjQgMTIgMTIgMCAwIDEgMCAyNFpNOC45NyAxMy43OGMuMy4zLjc3LjMgMS4wNiAwbDMuMjItMy4yMnY4LjY5YS43NS43NSAwIDAgMCAxLjUgMHYtOC42OWwzLjIyIDMuMjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtNC41LTQuNWEuNzUuNzUgMCAwIDAtMS4wNiAwbC00LjUgNC41Yy0uMy4zLS4zLjc3IDAgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXAyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVVcDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTguOTcgMTMuNzhjLjMuMy43Ny4zIDEuMDYgMGwzLjIyLTMuMjJ2OC42OWEuNzUuNzUgMCAwIDAgMS41IDB2LTguNjlsMy4yMiAzLjIyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTQuNS00LjVhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNC41IDQuNWMtLjMuMy0uMy43NyAwIDEuMDZaTTIgMTRhMTIgMTIgMCAxIDAgMjQgMCAxMiAxMiAwIDAgMC0yNCAwWm0xMiAxMC41YTEwLjUgMTAuNSAwIDEgMSAwLTIxIDEwLjUgMTAuNSAwIDAgMSAwIDIxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXAzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDMwYTE0IDE0IDAgMSAxIDAtMjggMTQgMTQgMCAwIDEgMCAyOFpNOS4zIDE2LjdhMSAxIDAgMCAwIDEuNCAwbDQuMy00LjI5VjIyYTEgMSAwIDEgMCAyIDB2LTkuNTlsNC4zIDQuM2ExIDEgMCAwIDAgMS40LTEuNDJsLTYtNmExIDEgMCAwIDAtMS40IDBsLTYgNmExIDEgMCAwIDAgMCAxLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOS4zIDE2LjdhMSAxIDAgMCAwIDEuNCAwbDQuMy00LjI5VjIyYTEgMSAwIDEgMCAyIDB2LTkuNTlsNC4zIDQuM2ExIDEgMCAwIDAgMS40LTEuNDJsLTYtNmExIDEgMCAwIDAtMS40IDBsLTYgNmExIDEgMCAwIDAgMCAxLjQyWk0yIDE2YTE0IDE0IDAgMSAwIDI4IDAgMTQgMTQgMCAwIDAtMjggMFptMTQgMTJhMTIgMTIgMCAxIDEgMC0yNCAxMiAxMiAwIDAgMSAwIDI0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXA0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDQ0YTIwIDIwIDAgMSAxIDAtNDAgMjAgMjAgMCAwIDEgMCA0MFptLTguNjMtMTkuODdjLjQ4LjUgMS4yOC41IDEuNzYgMGw1LjYyLTUuNjF2MTQuMjNhMS4yNSAxLjI1IDAgMSAwIDIuNSAwVjE4LjUybDUuNjIgNS42MWExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2bC03Ljc1LTcuNzVhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMGwtNy43NSA3Ljc1YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXA0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNS4zNyAyNC4xM2MuNDguNSAxLjI4LjUgMS43NiAwbDUuNjItNS42MXYxNC4yM2ExLjI1IDEuMjUgMCAxIDAgMi41IDBWMTguNTJsNS42MiA1LjYxYTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZsLTcuNzUtNy43NWExLjI1IDEuMjUgMCAwIDAtMS43NiAwbC03Ljc1IDcuNzVhMS4yNSAxLjI1IDAgMCAwIDAgMS43NlpNNCAyNGEyMCAyMCAwIDEgMCA0MCAwIDIwIDIwIDAgMCAwLTQwIDBabTIwIDE3LjVhMTcuNSAxNy41IDAgMSAxIDAtMzUgMTcuNSAxNy41IDAgMCAxIDAgMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXBMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAxOGE4IDggMCAxIDAgMC0xNiA4IDggMCAwIDAgMCAxNlpNNy4xNSA3LjE0QS41LjUgMCAwIDEgNy41IDdoNWEuNS41IDAgMCAxIDAgMUg4LjdsNC4xNSA0LjE1YS41LjUgMCAwIDEtLjcuN0w4IDguNzF2My43OWEuNS41IDAgMCAxLTEgMHYtNWEuNS41IDAgMCAxIC4xNC0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwTGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMTUgNy4xNEEuNS41IDAgMCAxIDcuNSA3aDVhLjUuNSAwIDAgMSAwIDFIOC43bDQuMTUgNC4xNWEuNS41IDAgMCAxLS43LjdMOCA4LjcxdjMuNzlhLjUuNSAwIDAgMS0xIDB2LTVhLjUuNSAwIDAgMSAuMTQtLjM1Wk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcExlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMjJhMTAgMTAgMCAxIDAgMC0yMCAxMCAxMCAwIDAgMCAwIDIwWm0zLjI1LTEyLjVoLTQuNzRsNS4yNyA1LjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZMOS41IDEwLjYxdjQuNjRhLjc1Ljc1IDAgMCAxLTEuNSAwdi02LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcExlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDaXJjbGVVcExlZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC41IDkuNWg0Ljc1YS43NS43NSAwIDAgMCAwLTEuNWgtNi41YS43NS43NSAwIDAgMC0uNzUuNzV2Ni41YS43NS43NSAwIDAgMCAxLjUgMHYtNC42NGw1LjIyIDUuMTdhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwxMC41IDkuNVpNMjIgMTJhMTAgMTAgMCAxIDEtMjAgMCAxMCAxMCAwIDAgMSAyMCAwWm0tMTAgOC41YTguNSA4LjUgMCAxIDAgMC0xNyA4LjUgOC41IDAgMCAwIDAgMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NpcmNsZVVwUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDE4YTggOCAwIDEgMSAwLTE2IDggOCAwIDAgMSAwIDE2Wm0yLjg1LTEwLjg2QS41LjUgMCAwIDAgMTIuNSA3aC01YS41LjUgMCAwIDAgMCAxaDMuOGwtNC4xNSA0LjE1YS41LjUgMCAwIDAgLjcuN0wxMiA4LjcxdjMuNzlhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0uMTQtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDaXJjbGVVcFJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXBSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyLjg1IDcuMTRBLjUuNSAwIDAgMCAxMi41IDdoLTVhLjUuNSAwIDAgMCAwIDFoMy44bC00LjE1IDQuMTVhLjUuNSAwIDAgMCAuNy43TDEyIDguNzF2My43OWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLS4xNC0uMzVaTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTcgOGE3IDcgMCAxIDAtMTQgMCA3IDcgMCAwIDAgMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXBSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2lyY2xlVXBSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMjJhMTAgMTAgMCAxIDEgMC0yMCAxMCAxMCAwIDAgMSAwIDIwWk04Ljc1IDkuNWg0Ljc0bC01LjI3IDUuMjJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmw1LjIyLTUuMTd2NC42NGEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNi41YS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2lyY2xlVXBSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NpcmNsZVVwUmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy41IDkuNUg4Ljc0YS43NS43NSAwIDAgMSAwLTEuNWg2LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTQuNjRsLTUuMjIgNS4xN2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDEzLjUgOS41Wk0yIDEyYTEwIDEwIDAgMSAwIDIwIDAgMTAgMTAgMCAwIDAtMjAgMFptMTAgOC41YTguNSA4LjUgMCAxIDEgMC0xNyA4LjUgOC41IDAgMCAxIDAgMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xMC41IDJBLjc1Ljc1IDAgMCAwIDkgMnYuNjVhNC41IDQuNSAwIDEgMCAxLjQyIDQuMmMuMDktLjQ2LS4zLS44NS0uNzgtLjg1LS4zNSAwLS42My4zLS43LjY0QTMgMyAwIDEgMSA3LjY2IDMuNWgtLjQyYS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zMy43NS0uNzVWMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNOC45NyA2LjQ1QzkgNi4yIDkuMiA2IDkuNDUgNmMuMyAwIC41NS4yNS41MS41NEE0IDQgMCAxIDEgOSAzLjM1VjIuNWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWguNzRBMyAzIDAgMCAwIDMgNmEzIDMgMCAwIDAgNS45Ny40NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2UxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNSA4YTQuNSA0LjUgMCAwIDEgNy44NS0zaC0xLjZhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTNhLjc1Ljc1IDAgMCAwLTEuNSAwdi43OGE2IDYgMCAxIDAgMS45NCA1LjMyLjc1Ljc1IDAgMCAwLTEuNDktLjJBNC41IDQuNSAwIDAgMSAzLjUgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMyA4YTUgNSAwIDAgMSA5LTNoLTJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtMSAwdjEuNTNBNS45OSA1Ljk5IDAgMCAwIDIgOGE2IDYgMCAwIDAgMTEuOTguNTQuNS41IDAgMCAwLTEtLjA4QTUgNSAwIDAgMSAzIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDEwYTYgNiAwIDAgMSA5Ljk3LTQuNWgtMS4yMmEuNzUuNzUgMCAwIDAgMCAxLjVoM2MuNDEgMCAuNzUtLjM0Ljc1LS43NXYtM2EuNzUuNzUgMCAwIDAtMS41IDB2MS4xNmE3LjUgNy41IDAgMSAwIDIuNSA1LjMxLjc1Ljc1IDAgMCAwLTEuNS4wNlYxMGE2IDYgMCAwIDEtMTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCAxMGE2IDYgMCAwIDEgMTAuNDctNEgxMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLTEgMHYxLjZhNyA3IDAgMSAwIDEuOTggNC4zNi41LjUgMCAxIDAtMSAuMDhMMTYgMTBhNiA2IDAgMCAxLTEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01IDEyYTcgNyAwIDAgMSAxMC42LTZIMTVhMSAxIDAgMSAwIDAgMmgzYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAxIDAtMiAwdi41MmE5IDkgMCAxIDAgMy45MyA2LjM2IDEgMSAwIDEgMC0xLjk4LjI0QTcgNyAwIDEgMSA1IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA0LjVhNy41IDcuNSAwIDEgMCA3LjQyIDYuNGMtLjA3LS40Ni4yNi0uOS43Mi0uOS4zNyAwIC43LjI2Ljc2LjYyQTkgOSAwIDEgMSAxOCA1LjNWNC4yNWEuNzUuNzUgMCAwIDEgMS41IDB2M2MwIC40MS0uMzQuNzUtLjc1Ljc1aC0zYS43NS43NSAwIDAgMSAwLTEuNWgxLjM1YTcuNDcgNy40NyAwIDAgMC01LjEtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2UyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE5LjY2IDdhOSA5IDAgMSAwIDMuMyA2LjEgMSAxIDAgMCAxIDEuOTktLjJBMTEgMTEgMCAxIDEgMjEgNS41MVY0YTEgMSAwIDEgMSAyIDB2NC4wM0ExIDEgMCAwIDEgMjIgOWgtNGExIDEgMCAxIDEgMC0yaDEuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Nsb2Nrd2lzZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQuNSAxNGE5LjUgOS41IDAgMCAxIDE2LjQzLTYuNWgtMi42OGEuNzUuNzUgMCAwIDAgMCAxLjVoNGMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNGEuNzUuNzUgMCAwIDAtMS41IDB2MS43YTExIDExIDAgMSAwIDMuNDIgNi43Ljc1Ljc1IDAgMSAwLTEuNDkuMkE5LjUgOS41IDAgMSAxIDQuNSAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2UzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTUuNSAxNmExMC41IDEwLjUgMCAwIDEgMTcuMy04aC0yLjA1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg1Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2MS45MWExMyAxMyAwIDEgMCA0LjQ3IDkgMS4yNSAxLjI1IDAgMSAwLTIuNS4xN0ExMC41IDEwLjUgMCAxIDEgNS41IDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2UzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMzJMaWdodCcsIFwiMzJcIiwgW1wiTTQgMTZhMTIgMTIgMCAwIDEgMjEuNzUtN0gyMC41YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLTEgMHY0LjJhMTMgMTMgMCAxIDAgMi45IDYuNzMuNDguNDggMCAwIDAtLjQ4LS40M2MtLjMgMC0uNTQuMjgtLjUuNThBMTIgMTIgMCAxIDEgNCAxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNSAxNmExMSAxMSAwIDAgMSAxOC41NS04SDIxYTEgMSAwIDEgMCAwIDJoNWExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMSAwLTIgMHYyLjYyYTEzIDEzIDAgMSAwIDMuOTYgOC4zIDEgMSAwIDAgMC0yIC4xNkExMSAxMSAwIDEgMSA1IDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2U0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Nsb2Nrd2lzZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNOSAyNGExNSAxNSAwIDAgMSAyNS4yLTExaC0zLjdhMS41IDEuNSAwIDAgMCAwIDNoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdhMS41IDEuNSAwIDAgMC0zIDB2My4wOGExOCAxOCAwIDEgMCA1LjggMTAuNyAxLjUgMS41IDAgMSAwLTIuOTcuNDVBMTUgMTUgMCAxIDEgOSAyNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNOC41IDI0YTE1LjUgMTUuNSAwIDAgMSAyNi45LTEwLjVoLTQuMTVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDYuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTYuNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2Mi44YTE4IDE4IDAgMSAwIDUuMjYgMTAgMS4yNSAxLjI1IDAgMCAwLTIuNDcuNEExNS41IDE1LjUgMCAxIDEgOC41IDI0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2VEYXNoZXMxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Nsb2Nrd2lzZURhc2hlczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC45NiAyLjA4YTYuMDQgNi4wNCAwIDAgMC0xLjkyIDAgLjY2LjY2IDAgMCAwLS41NC42NmMwIC41LjUuODUuOTguNzlhNC41NSA0LjU1IDAgMCAxIDEuMDQgMGMuNDkuMDYuOTgtLjMuOTgtLjc5YS42Ni42NiAwIDAgMC0uNTQtLjY2Wm0tLjQ0IDEwLjRhNC41NSA0LjU1IDAgMCAxLTEuMDQgMGMtLjQ5LS4wNy0uOTguMjgtLjk4Ljc4IDAgLjMyLjIyLjYxLjU0LjY2YTYuMDUgNi4wNSAwIDAgMCAxLjkyIDAgLjY2LjY2IDAgMCAwIC41NC0uNjZjMC0uNS0uNS0uODUtLjk4LS43OVptMS45OC0uM2MwLS4yNy4xNC0uNTMuMzUtLjcuMjMtLjE5LjQ0LS40LjYzLS42M2EuOTEuOTEgMCAwIDEgLjctLjM1Yy42IDAgLjk4LjYyLjYyIDEuMS0uMzQuNDUtLjc1Ljg2LTEuMiAxLjItLjQ4LjM2LTEuMS0uMDItMS4xLS42MlptMC04LjM2YzAtLjYuNjItLjk4IDEuMS0uNjJsLjQuMzN2LS43OGEuNzUuNzUgMCAwIDEgMS41IDB2M2MwIC40MS0uMzQuNzUtLjc1Ljc1aC0zYS43NS43NSAwIDAgMSAwLTEuNWgxLjZhNC41NCA0LjU0IDAgMCAwLS41LS40OC45MS45MSAwIDAgMS0uMzUtLjdabS03LjMuNTljLS4zNi40Ny4wMiAxLjA5LjYyIDEuMDkuMjcgMCAuNTItLjE0LjctLjM1LjE5LS4yMy40LS40NC42My0uNjNhLjkxLjkxIDAgMCAwIC4zNS0uN2MwLS42LS42Mi0uOTgtMS4xLS42Mi0uNDUuMzQtLjg2Ljc1LTEuMiAxLjJaTTIuMDggNy4wNGEuNjYuNjYgMCAwIDEgLjY2LS41NGMuNSAwIC44NS41Ljc5Ljk4YTQuNTUgNC41NSAwIDAgMCAwIDEuMDRjLjA2LjQ5LS4zLjk4LS43OS45OGEuNjYuNjYgMCAwIDEtLjY2LS41NCA2LjA0IDYuMDQgMCAwIDEgMC0xLjkyWk0zLjIgMTEuNmMtLjM2LS40Ny4wMi0xLjA5LjYyLTEuMDkuMjcgMCAuNTIuMTQuNy4zNS4xOS4yMy40LjQ0LjYzLjYzLjIxLjE3LjM1LjQzLjM1LjcgMCAuNi0uNjIuOTgtMS4xLjYyYTYuMDQgNi4wNCAwIDAgMS0xLjItMS4yWm0xMC43Mi0yLjYzYS42Ni42NiAwIDAgMS0uNjYuNTRoLS4xM2MtLjQzIDAtLjc0LS40My0uNjgtLjg2YS43NS43NSAwIDAgMSAxLjQ5LjIxbC0uMDIuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlRGFzaGVzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q2xvY2t3aXNlRGFzaGVzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOS4xMyAyLjFhNi4wMyA2LjAzIDAgMCAwLTIuMjYgMCAuNDYuNDYgMCAwIDAtLjM3LjQ3YzAgLjMyLjMyLjU2LjY0LjVhNS4wMyA1LjAzIDAgMCAxIDEuNzIgMGMuMzIuMDYuNjQtLjE4LjY0LS41YS40Ni40NiAwIDAgMC0uMzctLjQ2Wm0tLjI3IDEwLjgzYTUuMDIgNS4wMiAwIDAgMS0xLjcyIDBjLS4zMi0uMDYtLjY0LjE4LS42NC41IDAgLjIzLjE1LjQyLjM3LjQ2YTYuMDMgNi4wMyAwIDAgMCAyLjI2IDAgLjQ2LjQ2IDAgMCAwIC4zNy0uNDZjMC0uMzItLjMyLS41Ni0uNjQtLjVabTEuNjQtLjNjMC0uMTguMS0uMzYuMjYtLjQ2YTUuMDMgNS4wMyAwIDAgMCAxLjQxLTEuNDFjLjEtLjE2LjI4LS4yNi40Ni0uMjYuMzkgMCAuNjQuNC40My43MmE2LjAzIDYuMDMgMCAwIDEtMS44NCAxLjg0Yy0uMzIuMjEtLjcyLS4wNC0uNzItLjQzWm0wLTkuMjZjMC0uMzkuNC0uNjQuNzItLjQzLjQ4LjMuOS42NyAxLjI4IDEuMVYyLjVhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMSAwLTFoMmE1LjAzIDUuMDMgMCAwIDAtMS4yNC0xLjE3LjU2LjU2IDAgMCAxLS4yNi0uNDZaTTIuOTQgNC43OGMtLjIxLjMyLjA0LjcyLjQzLjcyLjE4IDAgLjM2LS4xLjQ2LS4yNi4zNy0uNTYuODUtMS4wNCAxLjQxLTEuNDEuMTYtLjEuMjYtLjI4LjI2LS40NiAwLS4zOS0uNC0uNjQtLjcyLS40M2E2LjAzIDYuMDMgMCAwIDAtMS44NCAxLjg0Wk0yLjEgNi44N2EuNDYuNDYgMCAwIDEgLjQ2LS4zN2MuMzIgMCAuNTYuMzIuNS42NGE1LjAzIDUuMDMgMCAwIDAgMCAxLjcyYy4wNi4zMi0uMTguNjQtLjUuNjRhLjQ2LjQ2IDAgMCAxLS40Ni0uMzcgNi4wMyA2LjAzIDAgMCAxIDAtMi4yNlptLjgzIDQuMzVjLS4yMS0uMzIuMDQtLjcyLjQzLS43Mi4xOCAwIC4zNi4xLjQ2LjI2LjM3LjU2Ljg1IDEuMDQgMS40MSAxLjQxLjE2LjEuMjYuMjguMjYuNDYgMCAuMzktLjQuNjQtLjcyLjQzYTYuMDMgNi4wMyAwIDAgMS0xLjg0LTEuODRabTEwLjk1LTIuMDlhLjQ2LjQ2IDAgMCAxLS40Ni4zN2MtLjMyIDAtLjU2LS4zMi0uNS0uNjRhNSA1IDAgMCAwIC4wNS0uNC41LjUgMCAwIDEgMSAuMDggNiA2IDAgMCAxLS4wOS42WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2VEYXNoZXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Nsb2Nrd2lzZURhc2hlczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTEuNDYgMi42NGMuMzIuMDcuNTQuMzUuNTQuNjggMCAuNS0uNS44NS0uOTkuNzdhNi4wNCA2LjA0IDAgMCAwLTIuMDIgMGMtLjUuMDgtLjk5LS4yNy0uOTktLjc3IDAtLjMzLjIyLS42MS41NC0uNjhhNy41NCA3LjU0IDAgMCAxIDIuOTIgMFptLS40NSAxMy4yN2MuNS0uMDguOTkuMjcuOTkuNzcgMCAuMzMtLjIyLjYxLS41NC42OGE3LjU0IDcuNTQgMCAwIDEtMi45MiAwIC42OC42OCAwIDAgMS0uNTQtLjY4YzAtLjUuNS0uODUuOTktLjc3YTYuMDQgNi4wNCAwIDAgMCAyLjAyIDBabTEuOTktLjI1YzAgLjU3LjU5Ljk1IDEuMDcuNjRhNy41NCA3LjU0IDAgMCAwIDIuMjMtMi4yM2MuMzEtLjQ4LS4wNy0xLjA3LS42NC0xLjA3YS44Ni44NiAwIDAgMC0uNy4zOSA2LjAzIDYuMDMgMCAwIDEtMS41NyAxLjU2Ljg2Ljg2IDAgMCAwLS4zOS43Wm0wLTExLjMyYzAgLjI5LjE1LjU1LjM5LjcuMi4xNS40LjMuNTguNDZoLTEuMjJhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTNhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMTZjLS4yOS0uMjYtLjYtLjUtLjkzLS43LS40OC0uMzItMS4wNy4wNi0xLjA3LjYzWk01LjkzIDMuN0M2LjQgMy40IDcgMy43NyA3IDQuMzRjMCAuMjktLjE1LjU1LS4zOS43QzYgNS40OCA1LjQ3IDYgNS4wNSA2LjYyYS44Ni44NiAwIDAgMS0uNy4zOWMtLjU4IDAtLjk2LS41OS0uNjUtMS4wN0E3LjU0IDcuNTQgMCAwIDEgNS45MyAzLjdaTTIuNjQgOC41NGE3LjU0IDcuNTQgMCAwIDAgMCAyLjkyYy4wNy4zMi4zNS41NC42OC41NC41IDAgLjg1LS41Ljc3LS45OWE2LjA0IDYuMDQgMCAwIDEgMC0yLjAyYy4wOC0uNS0uMjctLjk5LS43Ny0uOTlhLjY4LjY4IDAgMCAwLS42OC41NFptMy4yOSA3Ljc2Yy40OC4zMSAxLjA3LS4wNyAxLjA3LS42NGEuODYuODYgMCAwIDAtLjM5LS43IDYuMDMgNi4wMyAwIDAgMS0xLjU2LTEuNTcuODYuODYgMCAwIDAtLjctLjM5Yy0uNTggMC0uOTYuNTktLjY1IDEuMDdhNy41NCA3LjU0IDAgMCAwIDIuMjMgMi4yM1ptMTEuNTMtNS41NWMuMDQtLjQxLS4zLS43NS0uNzEtLjc1cy0uNzUuMzQtLjguNzVjMCAuMDktLjAyLjE3LS4wNC4yNi0uMDguNS4yNy45OS43Ny45OS4zMyAwIC42MS0uMjIuNjgtLjU0LjA0LS4yMy4wOC0uNDcuMS0uNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZURhc2hlczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Nsb2Nrd2lzZURhc2hlczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTExLjY1IDMuMmMuMi4wNS4zNS4yNC4zNS40NSAwIC4zNC0uMzMuNTctLjY2LjVhNi4wMiA2LjAyIDAgMCAwLTIuNjggMGMtLjMzLjA3LS42Ni0uMTYtLjY2LS41IDAtLjIxLjE0LS40LjM1LS40NWE3LjAyIDcuMDIgMCAwIDEgMy4zIDBabS0uMzEgMTIuNjVjLjMzLS4wNy42Ni4xNi42Ni41IDAgLjIxLS4xNC40LS4zNS40NWE3LjAyIDcuMDIgMCAwIDEtMy4zIDAgLjQ3LjQ3IDAgMCAxLS4zNS0uNDVjMC0uMzQuMzMtLjU3LjY2LS41YTYuMDIgNi4wMiAwIDAgMCAyLjY4IDBaTTEzIDE1LjVjMCAuMzguNC42My43Mi40M2E3LjA0IDcuMDQgMCAwIDAgMi4yLTIuMmMuMjEtLjMzLS4wNC0uNzMtLjQyLS43My0uMTkgMC0uMzYuMS0uNDYuMjZhNi4wMyA2LjAzIDAgMCAxLTEuNzggMS43OC41NS41NSAwIDAgMC0uMjYuNDZabTAtMTFjMCAuMTkuMS4zNi4yNi40Ni40NS4zLjg2LjY0IDEuMjEgMS4wNEgxMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLTEgMHYxLjZhNy4wMyA3LjAzIDAgMCAwLTEuMjgtMS4wM2MtLjMyLS4yLS43Mi4wNS0uNzIuNDNabS02LjcyLS40M2MuMzItLjIuNzIuMDUuNzIuNDMgMCAuMTktLjEuMzYtLjI2LjQ2YTYuMDMgNi4wMyAwIDAgMC0xLjc4IDEuNzguNTUuNTUgMCAwIDEtLjQ2LjI2Yy0uMzggMC0uNjMtLjQtLjQzLS43MmE3LjA0IDcuMDQgMCAwIDEgMi4yLTIuMlpNMy4yIDguMzVhNy4wMiA3LjAyIDAgMCAwIDAgMy4zYy4wNS4yLjI0LjM1LjQ1LjM1LjM0IDAgLjU3LS4zMy41LS42NmE2LjAyIDYuMDIgMCAwIDEgMC0yLjY4Yy4wNy0uMzMtLjE2LS42Ni0uNS0uNjYtLjIxIDAtLjQuMTQtLjQ1LjM1Wm0zLjA4IDcuNThjLjMyLjIuNzItLjA1LjcyLS40MyAwLS4xOS0uMS0uMzYtLjI2LS40NmE2LjAzIDYuMDMgMCAwIDEtMS43OC0xLjc4LjU1LjU1IDAgMCAwLS40Ni0uMjZjLS4zOCAwLS42My40LS40My43MmE3LjA0IDcuMDQgMCAwIDAgMi4yIDIuMlptMTAuNy01LjQzYS40Ny40NyAwIDAgMC0uNDgtLjVjLS4yOCAwLS41LjIyLS41Mi41YTYgNiAwIDAgMS0uMTMuODRjLS4wNy4zMy4xNi42Ni41LjY2LjIxIDAgLjQtLjE0LjQ1LS4zNS4xLS4zNy4xNS0uNzYuMTgtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlRGFzaGVzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VEYXNoZXMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjI0IDMuMDhBLjkuOSAwIDAgMSAxNCA0YzAgLjY1LS42MyAxLjExLTEuMjcgMS4wNWE3LjA5IDcuMDkgMCAwIDAtMS40NiAwYy0uNjQuMDYtMS4yNy0uNC0xLjI3LTEuMDVhLjkuOSAwIDAgMSAuNzYtLjkgOS4wOCA5LjA4IDAgMCAxIDIuNDggMFptLS41IDE1Ljg4Yy42My0uMDYgMS4yNi40IDEuMjYgMS4wNWEuOS45IDAgMCAxLS43Ni45IDkuMDggOS4wOCAwIDAgMS0yLjQ4IDAgLjkuOSAwIDAgMS0uNzYtLjljMC0uNjUuNjMtMS4xMSAxLjI3LTEuMDVhNy4xIDcuMSAwIDAgMCAxLjQ2IDBabTIuNzYtLjI4YzAgLjc3Ljc4IDEuMjggMS40Mi44NmE5LjA1IDkuMDUgMCAwIDAgMi42Mi0yLjYyYy40Mi0uNjQtLjEtMS40Mi0uODYtMS40Mi0uMzggMC0uNzMuMi0uOTUuNTJhNy4wNCA3LjA0IDAgMCAxLTEuNzEgMS43MWMtLjMxLjIyLS41Mi41Ny0uNTIuOTVaTTE5IDYuNzFWN2ExIDEgMCAwIDEtMSAxaC0zYTEgMSAwIDEgMSAwLTJoLjc0Yy0uMTUtLjItLjI0LS40My0uMjQtLjY4IDAtLjc3Ljc4LTEuMjggMS40Mi0uODZsLjA4LjA2VjRhMSAxIDAgMSAxIDIgMHYyLjcxWk03LjA4IDQuNDZjLjY0LS40MiAxLjQyLjEgMS40Mi44NiAwIC4zOC0uMi43My0uNTIuOTVhNy4wNCA3LjA0IDAgMCAwLTEuNzEgMS43MWMtLjIyLjMxLS41Ny41Mi0uOTUuNTItLjc3IDAtMS4yOC0uNzgtLjg2LTEuNDJhOS4wNSA5LjA1IDAgMCAxIDIuNjItMi42MlptLTQgNi4zYTkuMDggOS4wOCAwIDAgMCAwIDIuNDhBLjkuOSAwIDAgMCA0IDE0Yy42NSAwIDEuMTEtLjYzIDEuMDUtMS4yN2E3LjA4IDcuMDggMCAwIDEgMC0xLjQ2Yy4wNi0uNjQtLjQtMS4yNy0xLjA1LTEuMjdhLjkuOSAwIDAgMC0uOS43NlptNCA4Ljc4Yy42NC40MiAxLjQyLS4xIDEuNDItLjg2IDAtLjM4LS4yLS43My0uNTItLjk1YTcuMDQgNy4wNCAwIDAgMS0xLjcxLTEuNzEgMS4xNyAxLjE3IDAgMCAwLS45NS0uNTJjLS43NyAwLTEuMjguNzgtLjg2IDEuNDJhOS4wNSA5LjA1IDAgMCAwIDIuNjIgMi42MlpNMjAuOTUgMTNjLjA2LS41NS0uNC0xLS45NS0xaC0uMTNjLS40OCAwLS44Ny40LS45Mi44OC0uMDguNTcuMzQgMS4xMi45MiAxLjEyaC4xNGEuOS45IDAgMCAwIC45LS43NmwuMDQtLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDbG9ja3dpc2VEYXNoZXMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VEYXNoZXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy45NyAzLjIyYy4zMi4wNy41My4zNS41My42OCAwIC41LS41Ljg1LS45OS43NWE3LjU0IDcuNTQgMCAwIDAtMy4wMiAwYy0uNS4xLS45OS0uMjUtLjk5LS43NSAwLS4zMy4yMS0uNjEuNTMtLjY4YTkuMDMgOS4wMyAwIDAgMSAzLjk0IDBabS0uNDYgMTYuMTNjLjUtLjEuOTkuMjUuOTkuNzUgMCAuMzMtLjIxLjYxLS41My42OGE5LjAzIDkuMDMgMCAwIDEtMy45NCAwIC42OS42OSAwIDAgMS0uNTMtLjY4YzAtLjUuNS0uODUuOTktLjc1YTcuNTMgNy41MyAwIDAgMCAzLjAyIDBabTIuNDktLjU3YzAgLjYuNjIuOTcgMS4xLjYzLjktLjYyIDEuNy0xLjQgMi4zMS0yLjMuMzQtLjUtLjA0LTEuMTEtLjYzLTEuMTFhLjg1Ljg1IDAgMCAwLS42OC4zNiA3LjU0IDcuNTQgMCAwIDEtMS43NCAxLjc0Ljg1Ljg1IDAgMCAwLS4zNi42OFptMC0xMy41NmMwIC4yNy4xNC41Mi4zNi42OC4yNi4xOC41LjM4Ljc0LjZoLTEuMzVhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTNhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMDRhOS4wNCA5LjA0IDAgMCAwLS45LS43Yy0uNDgtLjM0LTEuMS4wNC0xLjEuNjNabS05LjEtLjYzYy40OC0uMzQgMS4xLjA0IDEuMS42MyAwIC4yNy0uMTQuNTItLjM2LjY4QTcuNTQgNy41NCAwIDAgMCA1LjkgNy42NGEuODUuODUgMCAwIDEtLjY4LjM2Yy0uNiAwLS45Ny0uNjItLjYzLTEuMS42Mi0uOSAxLjQtMS43IDIuMy0yLjMxWm0tMy42OCA1LjQ0YTkuMDMgOS4wMyAwIDAgMCAwIDMuOTRjLjA3LjMyLjM1LjUzLjY4LjUzLjUgMCAuODUtLjUuNzUtLjk5YTcuNTMgNy41MyAwIDAgMSAwLTMuMDJjLjEtLjUtLjI1LS45OS0uNzUtLjk5YS42OS42OSAwIDAgMC0uNjguNTNabTMuNjggOS4zOGMuNDguMzQgMS4xLS4wNCAxLjEtLjYzYS44NS44NSAwIDAgMC0uMzYtLjY4IDcuNTQgNy41NCAwIDAgMS0xLjc0LTEuNzQuODUuODUgMCAwIDAtLjY4LS4zNmMtLjYgMC0uOTcuNjItLjYzIDEuMS42Mi45IDEuNCAxLjcgMi4zIDIuMzFabTE0LjA3LTYuNjZhLjcuNyAwIDAgMC0uNzItLjc1LjgxLjgxIDAgMCAwLS43OS43NSA3LjUgNy41IDAgMCAxLS4xMS43NmMtLjEuNS4yNS45OS43NS45OS4zMyAwIC42MS0uMjEuNjgtLjUzYTkgOSAwIDAgMCAuMTktMS4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q2xvY2t3aXNlRGFzaGVzMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDbG9ja3dpc2VEYXNoZXMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE5LjE2IDMuMzljLjUuMTIuODQuNTkuODQgMS4xIDAgLjg2LS44NyAxLjQ1LTEuNyAxLjI2YTEwLjU0IDEwLjU0IDAgMCAwLTQuNiAwYy0uODMuMTktMS43LS40LTEuNy0xLjI1IDAtLjUyLjMzLS45OS44NC0xLjExYTEzLjAzIDEzLjAzIDAgMCAxIDYuMzIgMFptLS44NiAyMi44NmMuODMtLjE5IDEuNy40IDEuNyAxLjI1IDAgLjUyLS4zMy45OS0uODQgMS4xMWExMy4wMyAxMy4wMyAwIDAgMS02LjMyIDBjLS41LS4xMi0uODQtLjU5LS44NC0xLjEgMC0uODYuODctMS40NSAxLjctMS4yNmExMC41NCAxMC41NCAwIDAgMCA0LjYgMFptMy43LS45M2MwIDEgMS4wNyAxLjY0IDEuODcgMS4wMy45My0uNzEgMS43Ny0xLjU1IDIuNDgtMi40OC42MS0uOC0uMDItMS44Ny0xLjAzLTEuODctLjQ0IDAtLjg1LjIyLTEuMTIuNTYtLjQ5LjYtMS4wMyAxLjE1LTEuNjQgMS42NC0uMzQuMjctLjU2LjY4LS41NiAxLjEyWm0wLTE4LjY0YzAgLjQ0LjIyLjg1LjU2IDEuMTJsLjI0LjJoLTIuMDVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di01YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHYxLjkxbC0uNjMtLjVjLS44LS42Mi0xLjg3LjAxLTEuODcgMS4wMlpNOC4xMyA1LjY1Yy44LS42MSAxLjg3LjAyIDEuODcgMS4wMyAwIC40NC0uMjIuODUtLjU2IDEuMTItLjYuNDktMS4xNSAxLjAzLTEuNjQgMS42NC0uMjcuMzQtLjY4LjU2LTEuMTIuNTYtMSAwLTEuNjQtMS4wNy0xLjAzLTEuODcuNzEtLjkzIDEuNTUtMS43NyAyLjQ4LTIuNDhaTTMuNCAxMi44NGExMy4wMyAxMy4wMyAwIDAgMCAwIDYuMzJjLjEyLjUuNTkuODQgMS4xLjg0Ljg2IDAgMS40NS0uODcgMS4yNi0xLjdhMTAuNTQgMTAuNTQgMCAwIDEgMC00LjZjLjE5LS44My0uNC0xLjctMS4yNS0xLjctLjUyIDAtLjk5LjMzLTEuMTEuODRabTQuNzQgMTMuNWMuOC42MiAxLjg3LS4wMSAxLjg3LTEuMDIgMC0uNDQtLjIyLS44NS0uNTYtMS4xMi0uNi0uNDktMS4xNS0xLjAzLTEuNjQtMS42NEExLjQ1IDEuNDUgMCAwIDAgNi42OCAyMmMtMSAwLTEuNjQgMS4wNy0xLjAzIDEuODcuNzEuOTMgMS41NSAxLjc3IDIuNDggMi40OFptMjAuODEtOS4xYy4wNy0uNjgtLjUtMS4yNC0xLjE5LTEuMjRzLTEuMjQuNTYtMS4zMiAxLjI1Yy0uMDUuMzUtLjEuNy0uMTggMS4wNS0uMTkuODMuNCAxLjcgMS4yNSAxLjcuNTIgMCAuOTktLjMzIDEuMTEtLjg0LjE2LS42Mi4yNy0xLjI2LjMzLTEuOTFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Nsb2Nrd2lzZURhc2hlczMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Nsb2Nrd2lzZURhc2hlczMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE5LjMyIDMuNDNjLjQxLjEuNjguNDguNjguOSAwIC42OC0uNjkgMS4xNS0xLjM1IDFhMTEuMDMgMTEuMDMgMCAwIDAtNS4zIDBDMTIuNyA1LjQ3IDEyIDUgMTIgNC4zMmMwLS40Mi4yNy0uOC42OC0uOWExMy4wMiAxMy4wMiAwIDAgMSA2LjY0IDBabS0uNjcgMjMuMjVjLjY2LS4xNiAxLjM1LjMgMS4zNS45OSAwIC40Mi0uMjcuOC0uNjguOWExMy4wMiAxMy4wMiAwIDAgMS02LjY0IDAgLjkyLjkyIDAgMCAxLS42OC0uOWMwLS42OC42OS0xLjE1IDEuMzUtMWExMS4wMiAxMS4wMiAwIDAgMCA1LjMgMFptMy4zNS0uODljMCAuOC44NCAxLjMgMS40OS44NGExMy4wNyAxMy4wNyAwIDAgMCAzLjE0LTMuMTRjLjQ2LS42NS0uMDQtMS40OS0uODQtMS40OS0uMzUgMC0uNjguMTgtLjkuNDctLjY3LjkzLTEuNDkgMS43NS0yLjQyIDIuNDMtLjI5LjItLjQ3LjU0LS40Ny45Wm0wLTE5LjU4YzAgLjM1LjE4LjY4LjQ3LjkuMzguMjcuNzQuNTcgMS4wOC44OUgyMWExIDEgMCAxIDAgMCAyaDVhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDEgMC0yIDB2Mi42MmMtLjQ3LS40NS0uOTgtLjg3LTEuNTEtMS4yNS0uNjUtLjQ2LTEuNDkuMDQtMS40OS44NFpNOC41MSA1LjM3Yy42NS0uNDYgMS40OS4wNCAxLjQ5Ljg0IDAgLjM1LS4xOC42OC0uNDcuOS0uOTMuNjctMS43NSAxLjQ5LTIuNDMgMi40Mi0uMi4yOS0uNTQuNDctLjkuNDctLjc5IDAtMS4yOS0uODQtLjgzLTEuNDlhMTMuMDcgMTMuMDcgMCAwIDEgMy4xNC0zLjE0Wm0tNS4wOCA3LjNhMTMuMDIgMTMuMDIgMCAwIDAgMCA2LjY1Yy4xLjQxLjQ4LjY4LjkuNjguNjggMCAxLjE1LS42OSAxLTEuMzVhMTEuMDMgMTEuMDMgMCAwIDEgMC01LjNDNS40NyAxMi43IDUgMTIgNC4zMiAxMmMtLjQyIDAtLjguMjctLjkuNjhaTTguNSAyNi42NGMuNjUuNDYgMS40OS0uMDQgMS40OS0uODQgMC0uMzUtLjE4LS42OC0uNDctLjktLjkzLS42Ny0xLjc1LTEuNDktMi40My0yLjQyYTEuMTIgMS4xMiAwIDAgMC0uOS0uNDdjLS43OSAwLTEuMjkuODQtLjgzIDEuNDlhMTMuMDcgMTMuMDcgMCAwIDAgMy4xNCAzLjE0Wk0yOC45NiAxN2EuOTQuOTQgMCAwIDAtLjk2LTFjLS41NSAwLTEgLjQ1LTEuMDQgMS0uMDYuNTYtLjE1IDEuMTEtLjI4IDEuNjUtLjE2LjY2LjMgMS4zNS45OSAxLjM1LjQyIDAgLjgtLjI3LjktLjY4LjItLjc1LjMzLTEuNTIuNC0yLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb2xsYXBzZUFsbDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q29sbGFwc2VBbGwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEyLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDEuNzVBLjc1Ljc1IDAgMCAxIDEgMy43NVptNyAzYzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41QS43NS43NSAwIDAgMSA4IDYuNzVabS0zLjIyLS41M2EuNzUuNzUgMCAwIDAtMS4wNiAwbC0yIDJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwuNzItLjcydjQuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjguNTZsLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q29sbGFwc2VBbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb2xsYXBzZUFsbDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgMy41YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVabTMuMTUgMi42NWMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDEgMS0uNy43TDUgNy43MXY0Ljc5YS41LjUgMCAwIDEtMSAwVjcuN0wyLjg1IDguODZhLjUuNSAwIDEgMS0uNy0uN2wyLTJaTTE0LjUgNmgtNmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb2xsYXBzZUFsbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q29sbGFwc2VBbGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE0LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNC43NVptOCAzYzAtLjQxLjM0LS43NS43NS0uNzVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0tMy43Mi0uNTNhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMi41IDIuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2TDUgOS41NnY1LjY5YS43NS43NSAwIDAgMCAxLjUgMFY5LjU2bDEuMjIgMS4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjUtMi41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q29sbGFwc2VBbGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb2xsYXBzZUFsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTMuMTUgMi42NWMuMi0uMi41LS4yLjcgMGwyLjUgMi41YS41LjUgMCAwIDEtLjcuN0w2IDguNzF2Ni43OWEuNS41IDAgMCAxLTEgMFY4LjdsLTEuNjUgMS42NWEuNS41IDAgMCAxLS43LS43bDIuNS0yLjVaTTE3LjUgOGgtN2EuNS41IDAgMCAxIDAtMWg3YS41LjUgMCAwIDEgMCAxWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q29sbGFwc2VBbGwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvbGxhcHNlQWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDVhMSAxIDAgMCAxIDEtMWgxOGExIDEgMCAxIDEgMCAySDNhMSAxIDAgMCAxLTEtMVptNC4zIDMuM2ExIDEgMCAwIDEgMS40IDBsMyAzYTEgMSAwIDAgMS0xLjQgMS40TDggMTEuNDJWMTlhMSAxIDAgMSAxLTIgMHYtNy41OWwtMS4zIDEuM2ExIDEgMCAwIDEtMS40LTEuNDJsMy0zWk0yMSAxMGgtOWExIDEgMCAxIDEgMC0yaDlhMSAxIDAgMSAxIDAgMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvbGxhcHNlQWxsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q29sbGFwc2VBbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yIDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxOC41YS43NS43NSAwIDAgMSAwIDEuNUgyLjc1QS43NS43NSAwIDAgMSAyIDQuNzVabTEwIDRjMC0uNDEuMzQtLjc1Ljc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS00LjcyLS41M2EuNzUuNzUgMCAwIDAtMS4wNiAwbC0zIDNhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkw2IDEwLjU2djguNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi04LjY5bDEuNzIgMS43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0zLTNaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xLjUgMkEuNzUuNzUgMCAwIDEgMyAydi42NWE0LjUgNC41IDAgMSAxLTEuNDIgNC4yYy0uMDktLjQ2LjMtLjg1Ljc4LS44NS4zNSAwIC42My4zLjcuNjRBMyAzIDAgMSAwIDQuMzQgMy41aC40MmEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q291bnRlcmNsb2Nrd2lzZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTIgMi41YS41LjUgMCAwIDEgMSAwdi44NUEzLjk5IDMuOTkgMCAwIDEgMTAgNmE0IDQgMCAwIDEtNy45Ni41NGMtLjA0LS4zLjItLjU0LjUtLjU0LjI2IDAgLjQ2LjIuNS40NUEzIDMgMCAxIDAgMy43NSA0aC43NGEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMi41IDhhNC41IDQuNSAwIDAgMC03Ljg1LTNoMS42YS43NS43NSAwIDAgMSAwIDEuNWgtM2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtM2EuNzUuNzUgMCAxIDEgMS41IDB2Ljc4YTYgNiAwIDEgMS0xLjk0IDUuMzIuNzUuNzUgMCAxIDEgMS40OS0uMkE0LjUgNC41IDAgMCAwIDEyLjUgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q291bnRlcmNsb2Nrd2lzZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2UxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMyA4YTUgNSAwIDAgMC05LTNoMmEuNS41IDAgMSAxIDAgMUgyLjk5YS41LjUgMCAwIDEtLjUtLjV2LTNhLjUuNSAwIDAgMSAxIDB2MS41M0E1Ljk5IDUuOTkgMCAwIDEgMTQgOGE2IDYgMCAwIDEtMTEuOTcuNTQuNS41IDAgMCAxIDEtLjA4QTUgNSAwIDAgMCAxMyA4WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiAxMGE2IDYgMCAwIDAtOS45Ny00LjVoMS4yMmEuNzUuNzUgMCAwIDEgMCAxLjVoLTNhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTNhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuMTZhNy41IDcuNSAwIDEgMS0yLjUgNS4zMS43NS43NSAwIDEgMSAxLjUuMDZWMTBhNiA2IDAgMCAwIDEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYgMTBBNiA2IDAgMCAwIDUuNTMgNkg3LjVhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYxLjZhNyA3IDAgMSAxLTEuOTggNC4zNi41LjUgMCAwIDEgMSAuMDhMNCAxMGE2IDYgMCAwIDAgMTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q291bnRlcmNsb2Nrd2lzZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q291bnRlcmNsb2Nrd2lzZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTkgMTJBNyA3IDAgMCAwIDguNCA2SDlhMSAxIDAgMCAxIDAgMkg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMiAwdi41MmE5IDkgMCAxIDEtMy45MyA2LjM2IDEgMSAwIDEgMSAxLjk4LjI0QTcgNyAwIDEgMCAxOSAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q291bnRlcmNsb2Nrd2lzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA0LjVhNy41IDcuNSAwIDEgMS03LjQyIDYuNGMuMDctLjQ2LS4yNi0uOS0uNzItLjktLjM3IDAtLjcuMjYtLjc2LjYyQTkgOSAwIDEgMCA2IDUuM1Y0LjI1YS43NS43NSAwIDAgMC0xLjUgMHYzYzAgLjQxLjM0Ljc1Ljc1Ljc1aDNhLjc1Ljc1IDAgMCAwIDAtMS41SDYuOWE3LjQ3IDcuNDcgMCAwIDEgNS4xLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2UyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2UyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTguMzQgN2E5IDkgMCAxIDEtMy4zIDYuMSAxIDEgMCAwIDAtMS45OS0uMkExMSAxMSAwIDEgMCA3IDUuNTFWNGExIDEgMCAwIDAtMiAwdjMuOTlBMSAxIDAgMCAwIDYgOWg0YTEgMSAwIDEgMCAwLTJIOC4zNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q291bnRlcmNsb2Nrd2lzZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2UyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yMy41IDE0QTkuNSA5LjUgMCAwIDAgNy4wNyA3LjVoMi42OGEuNzUuNzUgMCAwIDEgMCAxLjVoLTRBLjc1Ljc1IDAgMCAxIDUgOC4yNXYtNGEuNzUuNzUgMCAwIDEgMS41IDB2MS43YTExIDExIDAgMSAxLTMuNDIgNi43Ljc1Ljc1IDAgMSAxIDEuNDkuMkE5LjUgOS41IDAgMSAwIDIzLjUgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2UzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2UzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI2LjUgMTZBMTAuNSAxMC41IDAgMCAwIDkuMiA4aDIuMDVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC01QzUuNTYgMTAuNSA1IDkuOTQgNSA5LjI1di01YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYxLjkxYTEzIDEzIDAgMSAxLTQuNDcgOSAxLjI1IDEuMjUgMCAxIDEgMi41LjE3QTEwLjUgMTAuNSAwIDEgMCAyNi41IDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q291bnRlcmNsb2Nrd2lzZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTI3IDE2QTExIDExIDAgMCAwIDguNDUgOEgxMWExIDEgMCAxIDEgMCAySDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAyIDB2Mi42MmExMyAxMyAwIDEgMS0zLjk2IDguMyAxIDEgMCAwIDEgMiAuMTZBMTEgMTEgMCAxIDAgMjcgMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2U0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2U0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTM5IDI0YTE1IDE1IDAgMCAwLTI1LjItMTFoMy43YTEuNSAxLjUgMCAwIDEgMCAzaC03QTEuNSAxLjUgMCAwIDEgOSAxNC41di03YTEuNSAxLjUgMCAxIDEgMyAwdjMuMDhhMTggMTggMCAxIDEtNS44IDEwLjcgMS41IDEuNSAwIDEgMSAyLjk3LjQ1QTE1IDE1IDAgMSAwIDM5IDI0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q291bnRlcmNsb2Nrd2lzZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM5LjUgMjRhMTUuNSAxNS41IDAgMCAwLTI2LjktMTAuNWg0LjE1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtNi41QzkuNTYgMTYgOSAxNS40NCA5IDE0Ljc1di02LjVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjIuOGExOCAxOCAwIDEgMS01LjI2IDEwIDEuMjUgMS4yNSAwIDAgMSAyLjQ3LjRBMTUuNSAxNS41IDAgMSAwIDM5LjUgMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2VEYXNoZXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2VEYXNoZXMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNTMgMi42NGEuNjguNjggMCAwIDAtLjUzLjY4YzAgLjUuNS44NS45OS43N2E2LjA0IDYuMDQgMCAwIDEgMi4wMiAwYy41LjA4Ljk5LS4yNy45OS0uNzdhLjY4LjY4IDAgMCAwLS41NC0uNjggNy41NCA3LjU0IDAgMCAwLTIuOTMgMFpNOSAxNS45MWMtLjUtLjA4LS45OS4yNy0uOTkuNzcgMCAuMzMuMjIuNjEuNTMuNjhhNy41NCA3LjU0IDAgMCAwIDIuOTMgMCAuNjguNjggMCAwIDAgLjU0LS42OGMwLS41LS41LS44NS0uOTktLjc3YTYuMDQgNi4wNCAwIDAgMS0yLjAyIDBaTTcgMTUuNjZjMCAuNTctLjU5Ljk1LTEuMDcuNjRhNy41NCA3LjU0IDAgMCAxLTIuMjMtMi4yM2MtLjMxLS40OC4wNy0xLjA3LjY0LTEuMDcuMjkgMCAuNTUuMTUuNy4zOS40My42MS45NiAxLjE0IDEuNTcgMS41Ni4yNC4xNi4zOS40Mi4zOS43Wk03IDQuMzRjMCAuMjktLjE1LjU1LS4zOS43LS4yLjE1LS40LjMtLjU4LjQ2aDEuMjJhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMS0uNzUtLjc1di0zYS43NS43NSAwIDAgMSAxLjUgMHYxLjE2Yy4yOS0uMjYuNi0uNS45My0uNy40OC0uMzIgMS4wNy4wNiAxLjA3LjYzWm03LjA3LS42NGMtLjQ4LS4zMS0xLjA3LjA3LTEuMDcuNjQgMCAuMjkuMTUuNTUuMzkuNy42MS40MyAxLjE0Ljk2IDEuNTYgMS41Ny4xNi4yNC40Mi4zOS43LjM5LjU4IDAgLjk2LS41OS42NS0xLjA3YTcuNTQgNy41NCAwIDAgMC0yLjIzLTIuMjNabTMuMjkgNC44NGE3LjU0IDcuNTQgMCAwIDEgMCAyLjkyLjY4LjY4IDAgMCAxLS42OC41NGMtLjUgMC0uODUtLjUtLjc3LS45OWE2LjA0IDYuMDQgMCAwIDAgMC0yLjAyYy0uMDgtLjUuMjctLjk5Ljc3LS45OS4zMiAwIC42MS4yMi42OC41NFptLTMuMjkgNy43NmMtLjQ4LjMxLTEuMDctLjA3LTEuMDctLjY0IDAtLjI5LjE1LS41NS4zOS0uN2E2LjA0IDYuMDQgMCAwIDAgMS41Ni0xLjU3Ljg2Ljg2IDAgMCAxIC43LS4zOWMuNTggMCAuOTYuNTkuNjUgMS4wN2E3LjU0IDcuNTQgMCAwIDEtMi4yMyAyLjIzWk0yLjU0IDEwLjc1Yy0uMDQtLjQxLjMtLjc1LjcxLS43NXMuNzQuMzQuOC43NWMwIC4wOS4wMi4xNy4wMy4yNi4wOS41LS4yNi45OS0uNzYuOTlhLjY4LjY4IDAgMCAxLS42OC0uNTQgNy41IDcuNSAwIDAgMS0uMS0uNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0NvdW50ZXJjbG9ja3dpc2VEYXNoZXMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlRGFzaGVzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC4zNSAzLjJhLjQ3LjQ3IDAgMCAwLS4zNS40NWMwIC4zNC4zMy41Ny42Ni41YTYuMDIgNi4wMiAwIDAgMSAyLjY4IDBjLjMzLjA3LjY2LS4xNi42Ni0uNSAwLS4yMS0uMTQtLjQtLjM1LS40NWE3LjAyIDcuMDIgMCAwIDAtMy4zIDBabS4zMSAxMi42NWMtLjMzLS4wNy0uNjYuMTYtLjY2LjUgMCAuMjEuMTQuNC4zNS40NWE3LjAyIDcuMDIgMCAwIDAgMy4zIDBjLjItLjA1LjM1LS4yNC4zNS0uNDUgMC0uMzQtLjMzLS41Ny0uNjYtLjVhNi4wMiA2LjAyIDAgMCAxLTIuNjggMFpNNyAxNS41YzAgLjM4LS40LjYzLS43My40M2E3LjA0IDcuMDQgMCAwIDEtMi4yLTIuMmMtLjItLjMzLjA1LS43My40My0uNzMuMTkgMCAuMzYuMS40Ni4yNmE2LjAzIDYuMDMgMCAwIDAgMS43OCAxLjc4Yy4xNi4xLjI2LjI3LjI2LjQ2Wm0wLTExYzAgLjE5LS4xLjM2LS4yNi40Ni0uNDUuMy0uODYuNjQtMS4yMSAxLjA0SDcuNWEuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAxIDEgMSAwdjEuNmMuMzgtLjM5LjgxLS43NCAxLjI3LTEuMDMuMzMtLjIuNzMuMDUuNzMuNDNabTYuNzItLjQzYy0uMzItLjItLjcyLjA1LS43Mi40MyAwIC4xOS4xLjM2LjI2LjQ2YTYuMDMgNi4wMyAwIDAgMSAxLjc4IDEuNzhjLjEuMTYuMjcuMjYuNDYuMjYuMzggMCAuNjMtLjQuNDMtLjcyYTcuMDQgNy4wNCAwIDAgMC0yLjItMi4yWm0zLjA4IDQuMjhhNy4wMiA3LjAyIDAgMCAxIDAgMy4zLjQ3LjQ3IDAgMCAxLS40NS4zNWMtLjM0IDAtLjU4LS4zMy0uNS0uNjZhNi4wMiA2LjAyIDAgMCAwIDAtMi42OGMtLjA4LS4zMy4xNi0uNjYuNS0uNjYuMjEgMCAuNC4xNC40NS4zNVptLTMuMDggNy41OGMtLjMyLjItLjcyLS4wNS0uNzItLjQzIDAtLjE5LjEtLjM2LjI2LS40NmE2LjAzIDYuMDMgMCAwIDAgMS43OC0xLjc4Yy4xLS4xNi4yNy0uMjYuNDYtLjI2LjM4IDAgLjYzLjQuNDMuNzJhNy4wNCA3LjA0IDAgMCAxLTIuMiAyLjJaTTMuMDIgMTAuNWMtLjAyLS4yOC4yLS41LjQ4LS41LjI4IDAgLjUuMjIuNTIuNWE2IDYgMCAwIDAgLjEzLjg0Yy4wNy4zMy0uMTYuNjYtLjUuNjZhLjQ3LjQ3IDAgMCAxLS40Ni0uMzUgNyA3IDAgMCAxLS4xNy0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDb3VudGVyY2xvY2t3aXNlRGFzaGVzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDb3VudGVyY2xvY2t3aXNlRGFzaGVzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC43NiAzLjA4QS45LjkgMCAwIDAgMTAgNGMwIC42NS42MyAxLjExIDEuMjcgMS4wNWE3LjA5IDcuMDkgMCAwIDEgMS40NiAwYy42NC4wNiAxLjI3LS40IDEuMjctMS4wNWEuOS45IDAgMCAwLS43Ni0uOSA5LjA4IDkuMDggMCAwIDAtMi40OCAwWm0uNSAxNS44OGMtLjYzLS4wNi0xLjI2LjQtMS4yNiAxLjA1IDAgLjQ1LjMxLjg0Ljc2LjlhOS4wNyA5LjA3IDAgMCAwIDIuNDggMCAuOS45IDAgMCAwIC43Ni0uOWMwLS42NS0uNjMtMS4xMS0xLjI3LTEuMDVhNy4xIDcuMSAwIDAgMS0xLjQ2IDBabS0yLjc2LS4yOGMwIC43Ny0uNzggMS4yOC0xLjQyLjg2YTkuMDUgOS4wNSAwIDAgMS0yLjYyLTIuNjJjLS40Mi0uNjQuMS0xLjQyLjg2LTEuNDIuMzggMCAuNzMuMi45NS41MmE3LjA0IDcuMDQgMCAwIDAgMS43MSAxLjcxYy4zMS4yMi41Mi41Ny41Mi45NVpNNSA2LjcxVjdhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAwLTJoLS43NGMuMTUtLjIuMjQtLjQzLjI0LS42OCAwLS43Ny0uNzgtMS4yOC0xLjQyLS44NmE4LjkgOC45IDAgMCAwLS4wOC4wNlY0YTEgMSAwIDAgMC0yIDB2Mi43MVptMTEuOTItMi4yNWMtLjY0LS40Mi0xLjQyLjEtMS40Mi44NiAwIC4zOC4yLjczLjUyLjk1YTcuMDQgNy4wNCAwIDAgMSAxLjcxIDEuNzFjLjIyLjMxLjU3LjUyLjk1LjUyLjc3IDAgMS4yNy0uNzguODYtMS40MmE5LjA1IDkuMDUgMCAwIDAtMi42Mi0yLjYyWm00IDYuM2E5LjEgOS4xIDAgMCAxIDAgMi40OC45LjkgMCAwIDEtLjkxLjc2Yy0uNjUgMC0xLjExLS42My0xLjA1LTEuMjdhNy4wNyA3LjA3IDAgMCAwIDAtMS40NmMtLjA2LS42NC40LTEuMjcgMS4wNS0xLjI3YS45LjkgMCAwIDEgLjkuNzZabS00IDguNzhjLS42NC40Mi0xLjQyLS4xLTEuNDItLjg2IDAtLjM4LjItLjczLjUyLS45NWE3LjA0IDcuMDQgMCAwIDAgMS43MS0xLjcxYy4yMi0uMzEuNTctLjUyLjk1LS41Mi43NyAwIDEuMjcuNzguODYgMS40MmE5LjA1IDkuMDUgMCAwIDEtMi42MiAyLjYyWk0zLjA1IDEzYy0uMDYtLjU1LjQtMSAuOTUtMWguMTNjLjQ4IDAgLjg2LjQuOTIuODguMDguNTctLjM0IDEuMTItLjkyIDEuMTJoLS4xNGEuOS45IDAgMCAxLS45LS43NiA5LjA0IDkuMDQgMCAwIDEtLjA0LS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q291bnRlcmNsb2Nrd2lzZURhc2hlczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0NvdW50ZXJjbG9ja3dpc2VEYXNoZXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC4wMyAzLjIyYS42OS42OSAwIDAgMC0uNTMuNjhjMCAuNS41Ljg1IDEgLjc1YTcuNTQgNy41NCAwIDAgMSAzLjAxIDBjLjUuMSAxLS4yNSAxLS43NWEuNjkuNjkgMCAwIDAtLjU0LS42OCA5LjAzIDkuMDMgMCAwIDAtMy45NCAwWm0uNDYgMTYuMTNjLS41LS4xLS45OS4yNS0uOTkuNzUgMCAuMzMuMjEuNjEuNTMuNjhhOS4wMyA5LjAzIDAgMCAwIDMuOTQgMCAuNjkuNjkgMCAwIDAgLjUzLS42OGMwLS41LS41LS44NS0uOTktLjc1YTcuNTMgNy41MyAwIDAgMS0zLjAyIDBaTTggMTguNzhjMCAuNi0uNjIuOTctMS4xLjYzYTkuMDUgOS4wNSAwIDAgMS0yLjMxLTIuM2MtLjM0LS41LjA0LTEuMTEuNjMtMS4xMS4yNyAwIC41Mi4xNC42OC4zNmE3LjU0IDcuNTQgMCAwIDAgMS43NCAxLjc0Yy4yMi4xNi4zNi40MS4zNi42OFpNOCA1LjIyYzAgLjI3LS4xNC41Mi0uMzYuNjgtLjI2LjE4LS41LjM4LS43NC42aDEuMzVhLjc1Ljc1IDAgMSAxIDAgMS41aC0zYS43NS43NSAwIDAgMS0uNzUtLjc1di0zYS43NS43NSAwIDAgMSAxLjUgMHYxLjA0Yy4yOC0uMjUuNTgtLjQ5LjktLjcuNDgtLjM0IDEuMS4wNCAxLjEuNjNabTkuMS0uNjNjLS40OC0uMzQtMS4xLjA0LTEuMS42MyAwIC4yNy4xNC41Mi4zNi42OGE3LjU0IDcuNTQgMCAwIDEgMS43NCAxLjc0Yy4xNi4yMi40MS4zNi42OC4zNi42IDAgLjk3LS42Mi42NC0xLjFhOS4wNSA5LjA1IDAgMCAwLTIuMzItMi4zMVptMy42OCA1LjQ0YTkuMDMgOS4wMyAwIDAgMSAwIDMuOTQuNjkuNjkgMCAwIDEtLjY4LjUzYy0uNSAwLS44NS0uNS0uNzUtLjk5YTcuNTMgNy41MyAwIDAgMCAwLTMuMDJjLS4xLS41LjI1LS45OS43NS0uOTkuMzMgMCAuNjEuMjEuNjguNTNabS0zLjY4IDkuMzhjLS40OC4zNC0xLjEtLjA0LTEuMS0uNjMgMC0uMjcuMTQtLjUyLjM2LS42OGE3LjU0IDcuNTQgMCAwIDAgMS43NC0xLjc0Ljg1Ljg1IDAgMCAxIC42OC0uMzZjLjYgMCAuOTcuNjIuNjQgMS4xLS42My45LTEuNDEgMS43LTIuMzIgMi4zMVpNMy4wMyAxMi43NWEuNy43IDAgMCAxIC43Mi0uNzVjLjQyIDAgLjc1LjM0Ljc5Ljc1LjAyLjI2LjA2LjUxLjExLjc2LjEuNS0uMjUuOTktLjc1Ljk5YS42OS42OSAwIDAgMS0uNjgtLjUzYy0uMS0uNC0uMTUtLjgtLjE5LTEuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93bkxlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlRG93bkxlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTExLjE1IDEuMzhjLjIuMzYuMDguODItLjI4IDEuMDJDOC40NiAzLjc4IDguMjUgNi4wMyA4LjI1IDh2NC40NGwyLjIyLTIuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMy41IDMuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC0zLjUtMy41YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi4yMiAyLjIyVjhjMC0yLjAzLjItNS4wOCAzLjM4LTYuOWEuNzUuNzUgMCAwIDEgMS4wMi4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVEb3duTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlRG93bkxlZnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMC45MyAxLjI1YS41LjUgMCAwIDEtLjE4LjY4QzguMiAzLjM4IDggNiA4IDh2NS4zbDIuNjUtMi42NWEuNS41IDAgMCAxIC43LjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNyAwbC0zLjUtMy41YS41LjUgMCAxIDEgLjctLjdMNyAxMy4yOVY4YzAtMiAuMTktNS4xOCAzLjI1LTYuOTNhLjUuNSAwIDAgMSAuNjguMThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93bkxlZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlRG93bkxlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzLjM5IDMuMTRhLjc1Ljc1IDAgMSAwLS43OC0xLjI4IDcuMiA3LjIgMCAwIDAtMi45OCAzLjEzQTExLjYgMTEuNiAwIDAgMCA4Ljc1IDEwdjUuNDRsLTIuNzItMi43MmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDQgNGMuMy4zLjc3LjMgMS4wNiAwbDQtNGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjcyIDIuNzJWMTBjMC0xLjk1LjI1LTMuMzIuNzQtNC4zN2E1LjcxIDUuNzEgMCAwIDEgMi40LTIuNDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93bkxlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZURvd25MZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuMjYgMi45M2EuNS41IDAgMCAwLS41Mi0uODZBNi45NSA2Ljk1IDAgMCAwIDkuODYgNS4xQzkuMjYgNi4zOCA5IDcuOTYgOSAxMHY2LjNsLTMuMTUtMy4xNWEuNS41IDAgMSAwLS43LjdsNCA0Yy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMC0uNy0uN0wxMCAxNi4yOVYxMGMwLTEuOTYuMjUtMy4zOC43Ni00LjQ3YTUuOTYgNS45NiAwIDAgMSAyLjUtMi42WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDdXJ2ZURvd25MZWZ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZURvd25MZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi44NyAzLjI1YTEgMSAwIDAgMS0uMzcgMS4zNyA2LjE4IDYuMTggMCAwIDAtMy4xMiAzLjcgMTMuODcgMTMuODcgMCAwIDAtLjM4IDQuMDZ2NS40NmwzLjMtMy4zYTEgMSAwIDEgMSAxLjQgMS40MmwtNSA1YTEgMSAwIDAgMS0xLjQgMGwtNS01YTEgMSAwIDEgMSAxLjQtMS40MmwzLjMgMy4zdi01LjQ5YzAtMS4zNy0uMDEtMy4wMi40Ny00LjYxYTguMTcgOC4xNyAwIDAgMSA0LjAzLTQuODYgMSAxIDAgMCAxIDEuMzcuMzdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93bkxlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZURvd25MZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuNCAzLjM4YS43NS43NSAwIDAgMC0xLjAyLS4yOCA3LjkyIDcuOTIgMCAwIDAtMy45MiA0LjcgMTUuNCAxNS40IDAgMCAwLS40NiA0LjU1VjE4LjQ0bC0zLjcyLTMuNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw1IDVjLjMuMy43Ny4zIDEuMDYgMGw1LTVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMy43MiAzLjcydi02LjA3YzAtMS40MSAwLTIuOC40LTQuMTNhNi40MyA2LjQzIDAgMCAxIDMuMjItMy44NGMuMzYtLjIuNDktLjY2LjI4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93bkxlZnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0N1cnZlRG93bkxlZnQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE5Ljg3IDMuNWExIDEgMCAwIDEtLjM3IDEuMzdDMTUuMTQgNy4zNiAxNSAxMS40NyAxNSAxNXY3LjA5bDQuMy00LjNhMSAxIDAgMSAxIDEuNCAxLjQybC02IDZhMSAxIDAgMCAxLTEuNCAwbC02LTZhMSAxIDAgMSAxIDEuNC0xLjQybDQuMyA0LjNWMTVjMC0zLjQ4LjA2LTguNzYgNS41LTExLjg3YTEgMSAwIDAgMSAxLjM3LjM3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDdXJ2ZURvd25MZWZ0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVEb3duTGVmdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE5LjQgMy4zOGEuNzUuNzUgMCAwIDAtMS4wMi0uMjhDMTMuMDggNi4xMyAxMyAxMS4yNyAxMyAxNC43NXY3LjY5bC00LjcyLTQuNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw2IDZjLjMuMy43Ny4zIDEuMDYgMGw2LTZhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNC43MiA0Ljcydi03LjY5YzAtMy41Mi4xMy03Ljc4IDQuNjItMTAuMzUuMzYtLjIuNDktLjY2LjI4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93blJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZURvd25SaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNi42MSAzLjE0YS43NS43NSAwIDEgMSAuNzgtMS4yOCA3LjIgNy4yIDAgMCAxIDIuOTggMy4xM2MuNjMgMS4zMy44OCAyLjk2Ljg4IDUuMDF2NS40NGwyLjcyLTIuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNCA0Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNC00YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi43MiAyLjcyVjEwYzAtMS45NS0uMjUtMy4zMi0uNzQtNC4zN2E1LjcxIDUuNzEgMCAwIDAtMi40LTIuNDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0N1cnZlRG93blJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVEb3duUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02Ljc0IDIuOTNhLjUuNSAwIDEgMSAuNTItLjg2IDYuOTUgNi45NSAwIDAgMSAyLjg4IDMuMDNjLjYgMS4yOC44NiAyLjg2Ljg2IDQuOXY2LjNsMy4xNS0zLjE1YS41LjUgMCAwIDEgLjcuN2wtNCA0YS41LjUgMCAwIDEtLjcgMGwtNC00YS41LjUgMCAxIDEgLjctLjdMMTAgMTYuMjlWMTBjMC0xLjk2LS4yNS0zLjM4LS43Ni00LjQ3YTUuOTYgNS45NiAwIDAgMC0yLjUtMi42WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDdXJ2ZVVwTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Q3VydmVVcExlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYuMDMgNy4wM2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDQtNGMuMy0uMy43Ny0uMyAxLjA2IDBsNCA0YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTIuNzItMi43MnY1LjQ0YzAgMS45NS4yNSAzLjMyLjc0IDQuMzdhNS43MSA1LjcxIDAgMCAwIDIuNCAyLjQ5Ljc1Ljc1IDAgMSAxLS43OCAxLjI4IDcuMiA3LjIgMCAwIDEtMi45OC0zLjEzIDExLjYgMTEuNiAwIDAgMS0uODgtNS4wMVY0LjMxTDYuMDMgNy4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVVcExlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZVVwTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuODUgNi44NWEuNS41IDAgMSAxLS43LS43bDQtNGMuMi0uMi41LS4yLjcgMGw0IDRhLjUuNSAwIDAgMS0uNy43TDEwIDMuNzFWMTBjMCAxLjk2LjI1IDMuMzguNzYgNC40N2E1Ljk2IDUuOTYgMCAwIDAgMi41IDIuNi41LjUgMCAwIDEtLjUyLjg2IDYuOTUgNi45NSAwIDAgMS0yLjg4LTMuMDNDOS4yNiAxMy42MiA5IDEyLjA0IDkgMTBWMy43TDUuODUgNi44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Q3VydmVVcFJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZVVwUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzLjk3IDcuMDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtNC00YS43NS43NSAwIDAgMC0xLjA2IDBsLTQgNGEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDIuNzItMi43MnY1LjQ0YzAgMS45NS0uMjUgMy4zMi0uNzQgNC4zN2E1LjcxIDUuNzEgMCAwIDEtMi40IDIuNDkuNzUuNzUgMCAxIDAgLjc4IDEuMjggNy4yIDcuMiAwIDAgMCAyLjk4LTMuMTNjLjYzLTEuMzMuODgtMi45Ni44OC01LjAxVjQuMzFsMi43MiAyLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dDdXJ2ZVVwUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dDdXJ2ZVVwUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC4xNSA2Ljg1YS41LjUgMCAwIDAgLjctLjdsLTQtNGEuNS41IDAgMCAwLS43IDBsLTQgNGEuNS41IDAgMSAwIC43LjdMMTAgMy43MVYxMGMwIDEuOTYtLjI1IDMuMzgtLjc2IDQuNDdhNS45NiA1Ljk2IDAgMCAxLTIuNSAyLjYuNS41IDAgMCAwIC41Mi44NiA2Ljk1IDYuOTUgMCAwIDAgMi44OC0zLjAzYy42LTEuMjguODYtMi44Ni44Ni00LjlWMy43bDMuMTUgMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bjEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djUuOTRsMS45Ny0xLjk3YS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLTMuMjUgMy4yNWMtLjMuMy0uNzcuMy0xLjA2IDBMMi4yMiA3LjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMS45NyAxLjk3VjIuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd24xMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02IDEuNWMuMjggMCAuNS4yMi41LjV2Ni44bDIuNjUtMi42NWEuNS41IDAgMSAxIC43LjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNyAwbC0zLjUtMy41YS41LjUgMCAxIDEgLjctLjdMNS41IDguNzlWMmMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djguNzlsMi45NC0zLjI5YS43NS43NSAwIDEgMSAxLjEyIDFMOC41NiAxNGEuNzUuNzUgMCAwIDEtMS4xMiAwTDMuMiA5LjI1YS43NS43NSAwIDEgMSAxLjEyLTFsMi45NCAzLjI5VjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjUgMi41YS41LjUgMCAxIDAtMSAwdjkuN0wzLjg3IDguMTdhLjUuNSAwIDEgMC0uNzQuNjZsNC41IDVhLjUuNSAwIDAgMCAuNzQgMGw0LjUtNWEuNS41IDAgMCAwLS43NC0uNjZMOC41IDEyLjJWMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNi44IDExLjI3YS43NS43NSAwIDAgMC0xLjEtMS4wNGwtNC45NSA1LjI0VjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEyLjczbC00Ljk2LTUuMjVhLjc1Ljc1IDAgMCAwLTEuMDkgMS4wNGw2LjA3IDYuNDFhMSAxIDAgMCAwIDEuNDUgMGw2LjA3LTYuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuODcgMTAuODRhLjUuNSAwIDEgMC0uNzQtLjY4bC01LjYzIDYuMTdWMi41YS41LjUgMCAwIDAtMSAwdjEzLjgzbC01LjYzLTYuMTdhLjUuNSAwIDAgMC0uNzQuNjhsNi4zMSA2LjkxYS43NS43NSAwIDAgMCAxLjExIDBsNi4zMi02LjkxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOS43MiAxMy43YTEgMSAwIDAgMC0xLjQzLTEuNEwxMyAxNy42N1Y0YTEgMSAwIDEgMC0yIDB2MTMuNjZMNS43MiAxMi4zYTEgMSAwIDAgMC0xLjQzIDEuNGw2LjgyIDYuOTNjLjUuNSAxLjMuNSAxLjc4IDBsNi44My02LjkzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE5LjggMTMuMjdhLjc1Ljc1IDAgMCAwLTEuMS0xLjA0bC01Ljk1IDYuMjVWMy43NWEuNzUuNzUgMCAxIDAtMS41IDB2MTQuNzNMNS4zIDEyLjIzYS43NS43NSAwIDEgMC0xLjEgMS4wNGw3LjA4IDcuNDJhMSAxIDAgMCAwIDEuNDQgMGw3LjA3LTcuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd24yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIzLjcxIDE1LjdhMSAxIDAgMCAwLTEuNDItMS40TDE1IDIxLjY3VjRhMSAxIDAgMSAwLTIgMHYxNy42N0w1LjcxIDE0LjNhMSAxIDAgMCAwLTEuNDIgMS40bDguODIgOC45M2MuNS41IDEuMy41IDEuNzggMGw4LjgyLTguOTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjMuOCAxNS4yN2EuNzUuNzUgMCAxIDAtMS4wOS0xLjA0bC03Ljk2IDguMjdWMy43NWEuNzUuNzUgMCAwIDAtMS41IDBWMjIuNUw1LjMgMTQuMjNhLjc1Ljc1IDAgMCAwLTEuMDggMS4wNGw5LjA3IDkuNDJhMSAxIDAgMCAwIDEuNDQgMGw5LjA3LTkuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDNjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2MjAuNTRsNy42My03LjQ0YTEuMjUgMS4yNSAwIDEgMSAxLjc0IDEuOGwtOS43NCA5LjVhMS4yNSAxLjI1IDAgMCAxLS4zOS4yNWgtLjAyYTEuMjUgMS4yNSAwIDAgMS0xLjM1LS4yNmwtOS43NC05LjVhMS4yNSAxLjI1IDAgMCAxIDEuNzQtMS43OWw3LjYzIDcuNDRWNC4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bjMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duMzJMaWdodCcsIFwiMzJcIiwgW1wiTTE2LjUgMy41YS41LjUgMCAwIDAtMSAwdjIzLjgzbC05LjY2LTkuMmEuNS41IDAgMCAwLS42OC43M2wxMC41IDEwYy4xOS4xOS41LjE5LjY4IDBsMTAuNS0xMGEuNS41IDAgMCAwLS42OC0uNzJsLTkuNjYgOS4yVjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd24zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiAzYTEgMSAwIDAgMSAxIDF2MjEuNTlsOC4zLTguM2ExIDEgMCAwIDEgMS40IDEuNDJsLTEwIDEwYTEgMSAwIDAgMS0xLjQgMGwtMTAtMTBhMSAxIDAgMSAxIDEuNC0xLjQybDguMyA4LjNWNGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNS41IDUuMjVhMS41IDEuNSAwIDAgMC0zIDB2MzEuODRsLTEyLjE4LTEyLjRhMS41IDEuNSAwIDEgMC0yLjE0IDIuMTFsMTQuNzUgMTVhMS40OCAxLjQ4IDAgMCAwIDEuMDcuNDUgMS41IDEuNSAwIDAgMCAxLjA3LS40NWwxNC43NS0xNWExLjUgMS41IDAgMSAwLTIuMTQtMi4xTDI1LjUgMzcuMDlWNS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNS4yNSA1LjI1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMFYzNy43bC0xMi42LTEyLjgzYTEuMjUgMS4yNSAwIDEgMC0xLjggMS43NmwxNC43NiAxNWExLjI1IDEuMjUgMCAwIDAgMS43OCAwbDE0Ljc1LTE1YTEuMjUgMS4yNSAwIDEgMC0xLjc4LTEuNzZMMjUuMjUgMzcuN1Y1LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duRXhjbGFtYXRpb24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25FeGNsYW1hdGlvbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDFBMi41IDIuNSAwIDAgMCAyIDMuNWMwIDIuMzIuNjcgNC43NyAxLjA0IDUuOTQuMi42NS44IDEuMDYgMS40NiAxLjA2LjY2IDAgMS4yNi0uNDEgMS40Ni0xLjA2QTIxLjQzIDIxLjQzIDAgMCAwIDcgMy41IDIuNSAyLjUgMCAwIDAgNC41IDFaTTIuNzUgMTMuMjVhMS43NSAxLjc1IDAgMSAxIDMuNSAwIDEuNzUgMS43NSAwIDAgMS0zLjUgMFpNMTIgMS41YS41LjUgMCAwIDAtMSAwdjExLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxMiAxMy4yOVYxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25FeGNsYW1hdGlvbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25FeGNsYW1hdGlvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMgMy41YTEuNSAxLjUgMCAxIDEgMyAwYzAgMi4xNi0uNjMgNC41LS45OSA1LjY0YS41Mi41MiAwIDAgMS0uNTEuMzYuNTIuNTIgMCAwIDEtLjUxLS4zNkEyMC40NiAyMC40NiAwIDAgMSAzIDMuNVpNNC41IDFBMi41IDIuNSAwIDAgMCAyIDMuNWMwIDIuMzIuNjcgNC43NyAxLjA0IDUuOTQuMi42NS44IDEuMDYgMS40NiAxLjA2LjY2IDAgMS4yNi0uNDEgMS40Ni0xLjA2QTIxLjQzIDIxLjQzIDAgMCAwIDcgMy41IDIuNSAyLjUgMCAwIDAgNC41IDFabTcgMGMuMjggMCAuNS4yMi41LjV2MTEuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN0wxMSAxMy4yOVYxLjVjMC0uMjguMjItLjUuNS0uNVptLTcgMTEuNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVabS0xLjc1Ljc1YTEuNzUgMS43NSAwIDEgMSAzLjUgMCAxLjc1IDEuNzUgMCAwIDEtMy41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25FeGNsYW1hdGlvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bkV4Y2xhbWF0aW9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDVhMyAzIDAgMCAxIDYgMGMwIDIuMjUtLjc5IDUuMjEtMS4yMiA2LjY5QzcuNTQgMTIuNDkgNi44IDEzIDYgMTNzLTEuNTQtLjUyLTEuNzgtMS4zMUMzLjggMTAuMiAzIDcuMjMgMyA1Wm0xIDExYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFpNMTUgMi41YS41LjUgMCAwIDAtMSAwdjEzLjhsLTIuMTUtMi4xNWEuNS41IDAgMCAwLS43LjdsMyAzYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN0wxNSAxNi4yOVYyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25FeGNsYW1hdGlvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25FeGNsYW1hdGlvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNWEyIDIgMCAxIDEgNCAwYzAgMi4wOS0uNzUgNC45My0xLjE4IDYuNC0uMS4zNi0uNDMuNi0uODIuNmEuODQuODQgMCAwIDEtLjgyLS42QzQuNzUgOS45MSA0IDcuMDcgNCA1Wm0yLTNhMyAzIDAgMCAwLTMgM2MwIDIuMjMuNzkgNS4yIDEuMjIgNi42OUM0LjQ2IDEyLjQ4IDUuMiAxMyA2IDEzczEuNTQtLjUyIDEuNzgtMS4zMUM4LjIgMTAuMiA5IDcuMjUgOSA1YTMgMyAwIDAgMC0zLTNaTTUgMTZhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xLTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm05LTExLjVhLjUuNSAwIDAgMC0xIDB2MTMuOGwtMi4xNS0yLjE1YS41LjUgMCAwIDAtLjcuN2wzIDNjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43TDE1IDE2LjI5VjIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkV4Y2xhbWF0aW9uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duRXhjbGFtYXRpb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE4IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE2LjY5bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwzLjUgMy41Yy4zLjMuNzcuMyAxLjA2IDBsMy41LTMuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDE4IDE5LjQ0VjIuNzVaTTMuMTIgNS44OGEzLjg4IDMuODggMCAxIDEgNy43NiAwYzAgMi45NS0xLjIgNi41Ni0xLjgyIDguMkEyLjE5IDIuMTkgMCAwIDEgNyAxNS41Yy0uOSAwLTEuNzQtLjU1LTIuMDYtMS40Mi0uNi0xLjY1LTEuODItNS4yOC0xLjgyLTguMlpNNC41IDE5LjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25FeGNsYW1hdGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25FeGNsYW1hdGlvbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE2LjY5bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwzLjUgMy41Yy4zLjMuNzcuMyAxLjA2IDBsMy41LTMuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDE4IDE5LjQ0VjIuNzVaTTMuMTIgNS44OGEzLjg4IDMuODggMCAxIDEgNy43NiAwYzAgMi45NS0xLjIgNi41Ni0xLjgyIDguMkEyLjE5IDIuMTkgMCAwIDEgNyAxNS41Yy0uOSAwLTEuNzQtLjU1LTIuMDYtMS40Mi0uNi0xLjY1LTEuODItNS4yOC0xLjgyLTguMlpNNyAzLjVhMi4zOCAyLjM4IDAgMCAwLTIuMzggMi4zOGMwIDIuNjIgMS4xMiA2LjAzIDEuNzMgNy42OC4xLjI2LjM1LjQ0LjY1LjQ0LjMgMCAuNTYtLjE4LjY2LS40NC42LTEuNjQgMS43Mi01LjAzIDEuNzItNy42OEEyLjM4IDIuMzggMCAwIDAgNyAzLjVabS0yLjUgMTZhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBabTIuNS0xYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkxlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25MZWZ0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDEzLjI1YzAgLjQxLS4zNC43NS0uNzUuNzVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNS41YS43NS43NSAwIDAgMSAxLjUgMHYzLjY5bDkuMjItOS4yMmEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2TDQuNTYgMTIuNWgzLjY5Yy40MSAwIC43NS4zNC43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkxlZnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duTGVmdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTguNSAxM2EuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41di02YS41LjUgMCAwIDEgMSAwdjQuOEwxMy4xNSAyLjE0YS41LjUgMCAxIDEgLjcuN0wzLjcxIDEzSDguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkxlZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25MZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMiAxNi4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTcuNWEuNzUuNzUgMCAxIDEgMS41IDB2NS42OUwxNS43MiAzLjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZMNS41NiAxNS41aDUuN2MuNCAwIC43NC4zNC43NC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkxlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTExLjUgMTZhLjUuNSAwIDAgMSAwIDFoLThhLjUuNSAwIDAgMS0uNS0uNXYtOGEuNS41IDAgMCAxIDEgMHY2LjhMMTYuMTUgMy4xNGEuNS41IDAgMSAxIC43LjdMNC43MSAxNmg2Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duTGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bkxlZnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzIDIxYTEgMSAwIDAgMCAwLTJINi40MWwxNC4zLTE0LjNhMSAxIDAgMCAwLTEuNDItMS40TDUgMTcuNThWMTFhMSAxIDAgMSAwLTIgMHY5YTEgMSAwIDAgMCAxIDFoOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkxlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3duTGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjI1IDIxYS43NS43NSAwIDEgMCAwLTEuNUg1LjU4bDE1LjItMTUuMmEuNzYuNzYgMCAwIDAtMS4wOC0xLjA4TDQuNSAxOC40MnYtNy42N2EuNzUuNzUgMCAwIDAtMS41IDB2OS41YzAgLjQyLjMzLjc1Ljc1Ljc1aDkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkxlZnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25MZWZ0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNi43NSAyOWExLjI1IDEuMjUgMCAxIDAgMC0yLjVINy4yN0wyOC42MyA1LjEzYTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZMNS41IDI0Ljczdi05LjQ4YTEuMjUgMS4yNSAwIDAgMC0yLjUgMHYxMi41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDEyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25MZWZ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bkxlZnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNyAyOWExIDEgMCAxIDAgMC0ySDYuNDJMMjguNyA0LjdhMSAxIDAgMCAwLTEuNDItMS40TDUgMjUuNTdWMTVhMSAxIDAgMSAwLTIgMHYxM2ExIDEgMCAwIDAgMSAxaDEzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3duTGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bkxlZnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1LjUgNDJhMS41IDEuNSAwIDAgMCAwLTNIMTEuMTJMNDEuNTYgOC41NmExLjUgMS41IDAgMCAwLTIuMTItMi4xMkw5IDM2Ljg4VjIyLjVhMS41IDEuNSAwIDAgMC0zIDB2MThjMCAuODMuNjcgMS41IDEuNSAxLjVoMThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25MZWZ0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bkxlZnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNS43NSA0MmExLjI1IDEuMjUgMCAxIDAgMC0yLjVIMTAuMjdMNDEuNjMgOC4xM2ExLjI1IDEuMjUgMCAwIDAtMS43Ni0xLjc2TDguNSAzNy43M1YyMi4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDB2MTguNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxOC41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNSAxM2g5YS43NS43NSAwIDAgMSAuMSAxLjVIMy41YS43NS43NSAwIDAgMS0uMS0xLjVoOS4xLTlaTTcuOSAxSDhjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2Ny42OWwyLjI2LTIuMjZhLjc1Ljc1IDAgMCAxIC45Ny0uMDdsLjA5LjA3Yy4yNi4yNy4yOS42OS4wNy45OGwtLjA3LjA4LTMuNTQgMy41NGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTMuNTQtMy41NGEuNzUuNzUgMCAwIDEgLjk4LTEuMTNsLjA4LjA3IDIuMjYgMi4yNlYxLjc1YzAtLjM4LjI4LS43LjY1LS43NEw4IDFoLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMy41IDEzaDlhLjUuNSAwIDAgMSAuMDkgMUgzLjVhLjUuNSAwIDAgMS0uMDktMWg5LjA5LTlaTTcuOTEgMUg4YS41LjUgMCAwIDEgLjUuNDF2OC44OWwyLjY4LTIuNjlhLjUuNSAwIDAgMSAuNjQtLjA2bC4wNy4wNmMuMTcuMTcuMi40NC4wNi42NGwtLjA2LjA3LTMuNTQgMy41M2EuNS41IDAgMCAxLS42My4wNmwtLjA3LS4wNkw0LjEgOC4zMmEuNS41IDAgMCAxIC42NC0uNzdsLjA3LjA2TDcuNSAxMC4zVjEuNWEuNS41IDAgMCAxIC40MS0uNUg4aC0uMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTUuMjQgMTYuNWEuNzUuNzUgMCAwIDEgLjEgMS41SDQuNzZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxMC42Wk0xMCAyYy4zOCAwIC43LjI4Ljc1LjY1VjEyLjk1bDIuOTctMi45OGMuMjctLjI2LjY4LS4yOS45OC0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtNC4yNCA0LjI1LS4wNy4wNy0uMS4wNS0uMDMuMDMtLjEuMDMtLjExLjAzLS4wNy4wMUgxMGwtLjE1LS4wMS0uMDgtLjAzYS43My43MyAwIDAgMS0uMjYtLjE0bC00LjI5LTQuMjlBLjc1Ljc1IDAgMCAxIDYuMiA5LjlsLjA4LjA3IDIuOTcgMi45N1YyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNS41IDE3YS41LjUgMCAwIDEgLjA5IDFINC41YS41LjUgMCAwIDEtLjA5LTFIMTUuNVpNMTAgMmEuNS41IDAgMCAxIC41LjQxVjE0LjNsMy42NC0zLjY1YS41LjUgMCAwIDEgLjY0LS4wNmwuMDcuMDZjLjE3LjE3LjIuNDQuMDYuNjNsLS4wNi4wNy00LjUgNC41YS41LjUgMCAwIDEtLjI1LjE0TDEwIDE2YS41LjUgMCAwIDEtLjQtLjJsLTQuNDYtNC40NWEuNS41IDAgMCAxIC42NC0uNzZsLjA3LjA2IDMuNjUgMy42NFYyLjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMyAzYTEgMSAwIDEgMC0yIDB2MTIuMDlsLTMuMy0zLjNhMSAxIDAgMCAwLTEuNCAxLjQybDUgNWExIDEgMCAwIDAgMS40IDBsNS01YTEgMSAwIDAgMC0xLjQtMS40MkwxMyAxNS4xVjNaTTUgMjBhMSAxIDAgMSAwIDAgMmgxNGExIDEgMCAxIDAgMC0ySDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC4yNSAyMC41YS43NS43NSAwIDEgMSAwIDEuNWgtMTNhLjc1Ljc1IDAgMSAxIDAtMS41aDEzWm0tNi42LTE4LjQ5aC4xYy4zOCAwIC43LjI4Ljc0LjY0bC4wMS4xdjEzLjdsMy43Mi0zLjczYS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wN2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4LTUgNWEuNzUuNzUgMCAwIDEtLjk3LjA3bC0uMDktLjA3LTUtNWEuNzUuNzUgMCAwIDEgLjk4LTEuMTNsLjA4LjA3TDExIDE2LjQzVjIuNzZjMC0uMzguMjgtLjcuNjUtLjc1aC4xLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE1IDRhMSAxIDAgMSAwLTIgMHYxMy41OWwtNC4zLTQuM2ExIDEgMCAwIDAtMS40IDEuNDJsNiA2YTEgMSAwIDAgMCAxLjQgMGw2LTZhMSAxIDAgMCAwLTEuNC0xLjQyTDE1IDE3LjZWNFpNNiAyM2ExIDEgMCAxIDAgMCAyaDE2YTEgMSAwIDEgMCAwLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0Ljc1IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjY5bC00Ljk3LTQuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw2LjI1IDYuMjVjLjMuMy43Ny4zIDEuMDYgMGw2LjI1LTYuMjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtNC45NyA0Ljk3VjMuNzVabS05IDE5Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgxNi41YS43NS43NSAwIDAgMCAwLTEuNUg1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3LjI1IDQuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjE1LjQ4bC00LjYyLTQuNjFhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMS43Nmw2Ljc1IDYuNzVjLjQ4LjUgMS4yOC41IDEuNzYgMGw2Ljc1LTYuNzVhMS4yNSAxLjI1IDAgMCAwLTEuNzYtMS43NmwtNC42MiA0LjYxVjQuMjVabS0xMSAyMi4yNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMTkuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVINi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTYgM2MuMjggMCAuNS4yMi41LjV2MTguM2w2LjY1LTYuNjVhLjUuNSAwIDAgMSAuNy43bC03LjUgNy41YS41LjUgMCAwIDEtLjcgMGwtNy41LTcuNWEuNS41IDAgMCAxIC43LS43bDYuNjUgNi42NFYzLjVjMC0uMjguMjItLjUuNS0uNVpNNi41IDI4LjVhLjUuNSAwIDAgMSAwLTFoMTlhLjUuNSAwIDAgMSAwIDFoLTE5WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTcgNGExIDEgMCAxIDAtMiAwdjE2LjU5bC01LjMtNS4zYTEgMSAwIDAgMC0xLjQgMS40Mmw3IDdhMSAxIDAgMCAwIDEuNCAwbDctN2ExIDEgMCAwIDAtMS40LTEuNDJMMTcgMjAuNlY0Wk03IDI3YTEgMSAwIDEgMCAwIDJoMThhMSAxIDAgMSAwIDAtMkg3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1LjUgNi41YTEuNSAxLjUgMCAwIDAtMyAwdjI1LjM4bC03Ljk0LTcuOTRhMS41IDEuNSAwIDAgMC0yLjEyIDIuMTJsMTAuNSAxMC41YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDEwLjUtMTAuNWExLjUgMS41IDAgMCAwLTIuMTItMi4xMmwtNy45NCA3Ljk0VjYuNVpNMTAuNSA0MGExLjUgMS41IDAgMCAwIDAgM2gyN2ExLjUgMS41IDAgMCAwIDAtM2gtMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNS4yNSA2LjI1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHYyNi40OGwtOC4zNy04LjM2YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDEuNzZsMTAuNSAxMC41Yy40OC41IDEuMjguNSAxLjc2IDBsMTAuNS0xMC41YTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZsLTguMzcgOC4zNlY2LjI1Wm0tMTQgMzQuMjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDI1LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC0yNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZE9mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RG93bmxvYWRPZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTkuOCAxMC41LTEuMjcgMS4yOGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTMuNTQtMy41NGEuNzUuNzUgMCAwIDEgLjk4LTEuMTNsLjA4LjA3IDIuMjYgMi4yNlY3Ljk2bC02LjEtNi4xYS41LjUgMCAxIDEgLjctLjcxbDEzIDEzYS41LjUgMCAwIDEtLjcuN2wtLjkyLS45MmEuNzUuNzUgMCAwIDEtLjYzLjU2bC0uMS4wMWgtOWEuNzUuNzUgMCAwIDEtLjEtMS41aDguOWwtMi41LTIuNVptMS40Mi0xLjQtMS4wNy0xLjA3Ljg2LS44NWEuNzUuNzUgMCAwIDEgLjk3LS4wN2wuMDkuMDdjLjI2LjI3LjI5LjY5LjA3Ljk4bC0uMDcuMDgtLjg1Ljg1Wk03LjI1IDEuNzR2My4zOGwxLjUgMS41VjEuNjVBLjc1Ljc1IDAgMCAwIDggMWgtLjFhLjc1Ljc1IDAgMCAwLS42NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcuNSA4LjJ2Mi4xTDQuODIgNy42bC0uMDctLjA2YS41LjUgMCAwIDAtLjY0Ljc3bDMuNTQgMy41My4wNy4wNmMuMi4xNC40Ni4xMi42My0uMDZsMS40LTEuNEwxMi4yOSAxM0gzLjQxYS41LjUgMCAwIDAgLjA5IDFoOS4wOWEuNS41IDAgMCAwIC4zOC0uMzJsMS4xOCAxLjE3YS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN0w3LjUgOC4yMVptMS41NCAxLjU1LS41NC41NFY5LjIxbC41NC41NFptMi4xMi0uNy0uNy0uNzEuNzItLjczYS41LjUgMCAwIDEgLjY0LS4wNmwuMDcuMDZjLjE3LjE3LjIuNDQuMDYuNjRsLS4wNi4wNy0uNzMuNzJaTTcuNSAxLjV2My44OGwxIDFWMS40QS41LjUgMCAwIDAgOCAxaC0uMDlhLjUuNSAwIDAgMC0uNDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkT2ZmMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm05LjI1IDkuOTYtNy4xLTcuMWEuNS41IDAgMSAxIC43LS43MWwxNSAxNWEuNS41IDAgMCAxLS43LjdsLTQuNi00LjU5LTIuMDEgMi4wMi0uMDcuMDYtLjEuMDYtLjAzLjAyLS4xLjA0LS4xMS4wMy0uMDcuMDFIMTBsLS4xNS0uMDEtLjA4LS4wM2EuNzMuNzMgMCAwIDEtLjI2LS4xNGwtNC4yOS00LjI5QS43NS43NSAwIDAgMSA2LjIgOS45bC4wOC4wNyAyLjk3IDIuOTdWOS45NlptMi4yNCAyLjI0LS43NC0uNzR2MS40OGwuNzQtLjc0Wm0yLjQ4LS4zNS0xLjA2LTEuMDYuOC0uODJjLjI3LS4yNi43LS4yOS45OS0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtLjgxLjgyWk05LjI1IDcuMTNsMS41IDEuNVYyLjY1YS43NS43NSAwIDAgMC0xLjUuMXY0LjM4Wm02IDkuMzdhLjc1Ljc1IDAgMCAxIC4xIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTAuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMOS41IDEwLjJ2NC4wOWwtMy42NS0zLjY0LS4wNy0uMDZhLjUuNSAwIDAgMC0uNjQuNzZsNC40NiA0LjQ2Yy4xLjExLjI0LjE5LjQuMTlsLjEtLjAxYS41LjUgMCAwIDAgLjI2LS4xNGwyLjM5LTIuNCA0LjQgNC40YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm05LjIgMTAuNi0xLjU1IDEuNTRWMTEuMmwxLjU0IDEuNTVabTIuMTEtLjctLjctLjcyLjY4LS42OGEuNS41IDAgMCAxIC42NC0uMDZsLjA3LjA2Yy4xNy4xNy4yLjQ0LjA2LjYzbC0uMDYuMDctLjY5LjdaTTkuNSA3LjM3bDEgMVYyLjRhLjUuNSAwIDAgMC0xIC4xdjQuODdabTYgOS42MmEuNS41IDAgMCAxIC4wOSAxSDQuNWEuNS41IDAgMCAxLS4wOS0xSDE1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEgMTIuMDZ2My4wM2wtMy4zLTMuM2ExIDEgMCAwIDAtMS40IDEuNDJsNSA1YTEgMSAwIDAgMCAxLjQgMGwyLjIzLTIuMjIgNCA0LjAxSDVhMSAxIDAgMSAwIDAgMmgxNGExIDEgMCAwIDAgMS0uOTRsLjcyLjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMTEgMTIuMDZabTIuNTEgMi41MS0uNTEuNTJ2LTEuMDNsLjUxLjUxWm0zLjU0LS43LTEuNDItMS40Mi42Ni0uNjZhMSAxIDAgMCAxIDEuNDIgMS40MmwtLjY2LjY2Wk0xMSA3LjgybDIgMlYzYTEgMSAwIDEgMC0yIDB2NC44MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDExIDEyLjA2djQuMzdsLTMuNzItMy43MS0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTggMS4xM2w1IDUgLjA5LjA3Yy4zLjIyLjcuMi45Ny0uMDdMMTUgMTYuMDZsNS43MiA1LjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWk0xMy45NCAxNWwtMS40NCAxLjQ0di0yLjg4TDEzLjk0IDE1Wm0zLjE4LTEuMDYtMS4wNi0xLjA2LjE2LS4xNmEuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDdjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOC0uMTYuMTZaTTExIDcuODJsMS41IDEuNVYyLjY1YS43NS43NSAwIDAgMC0uNzUtLjY1bC0uMS4wMWEuNzUuNzUgMCAwIDAtLjY1Ljc0djUuMDdabTcuMjUgMTIuNjhhLjc1Ljc1IDAgMSAxIDAgMS41aC0xM2EuNzUuNzUgMCAxIDEgMC0xLjVoMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkT2ZmMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMTMgMTQuMDZ2My41M2wtNC4zLTQuM2ExIDEgMCAwIDAtMS40IDEuNDJsNiA2YTEgMSAwIDAgMCAxLjQgMGwyLjQ4LTIuNDdMMjEuOTQgMjNINmExIDEgMCAxIDAgMCAyaDE2YTEgMSAwIDAgMCAxLS45NGwxLjcyIDEuNzJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTEyLjQ4IDE0LjYtLjc2Ljc3di0xLjUzbC43Ni43NlptLTIuNzYtNyAyIDJWNGExIDEgMCAxIDAtMiAwdjUuODJabTYuMyA2LjMtMS40Mi0xLjQyIDEuNDEtMS40YTEgMSAwIDAgMSAxLjQyIDEuNGwtMS40MSAxLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZE9mZjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkT2ZmMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMTEuMDMgMTEuMDN2NC4xM2wtNC45Ny00Ljk3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsNi4yNSA2LjI1Yy4zLjMuNzcuMyAxLjA2IDBsMi42LTIuNiA1LjM0IDUuMzVhLjc1Ljc1IDAgMCAwLS4yMi0uMDNINS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTYuNWEuNzUuNzUgMCAwIDAgLjcyLS45N2wxLjc1IDEuNzVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTEyLjc4IDE0LjktMS4zMSAxLjMyVjE1LjhsMS4zMSAxLjMyWm0tMi44MS03LjA1IDEuNSAxLjVWMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ni4zMlptNiA2TDE4LjE5IDE1bDEuNTMtMS41M2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0xLjUzIDEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkT2ZmMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjMyRmlsbGVkJywgXCIzMlwiLCBbXCJtMjYuODggMjguMyAxLjQxIDEuNGExIDEgMCAwIDAgMS40Mi0xLjRsLTI2LTI2YTEgMSAwIDAgMC0xLjQyIDEuNGwxMi40NiAxMi40NnYzLjU3bC00LjYyLTQuNjFhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMS43Nmw2Ljc1IDYuNzVjLjQ4LjUgMS4yOC41IDEuNzYgMGwyLjY3LTIuNjYgNS41NCA1LjUzSDYuMjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDE5LjVjLjUgMCAuOTMtLjI5IDEuMTMtLjdabS05LjEtOS4xLS41My41M3YtMS4wN2wuNTMuNTRabTQuMjUtLjctMS43Ny0xLjc4IDEuNi0xLjZhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMS43NmwtMS42IDEuNjFaTTE0Ljc1IDQuMjR2Ni45N2wyLjUgMi41VjQuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dEb3dubG9hZE9mZjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Rvd25sb2FkT2ZmMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJtMTkuNSAyMC45MSA4LjggOC44YTEgMSAwIDAgMCAxLjQtMS40MmwtMjYtMjZhMSAxIDAgMCAwLTEuNCAxLjQyTDE1IDE2LjR2NC4xOGwtNS4zLTUuM2ExIDEgMCAwIDAtMS40IDEuNDJsNyA3YTEgMSAwIDAgMCAxLjQgMGwyLjgtMi44Wm0tMS40MS0xLjQxTDE3IDIwLjU5VjE4LjRsMS4wOSAxLjA5Wm0zLjg4LTEuMDYtMS40LTEuNDEgMS43Mi0xLjc0YTEgMSAwIDAgMSAxLjQyIDEuNDJsLTEuNzQgMS43M1pNMTUgNHY3LjQ3bDIgMlY0YTEgMSAwIDEgMC0yIDBaTTcgMjdhMSAxIDAgMSAwIDAgMmgxOGExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0Rvd25sb2FkT2ZmNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJtMjkuOTMgMzEuNyAxMS45NCAxMS45M2ExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2TDYuMTMgNC4zN2ExLjI1IDEuMjUgMCAxIDAtMS43NiAxLjc2TDIyLjUgMjQuMjd2Ny42bC03Ljk0LTcuOTNhMS41IDEuNSAwIDAgMC0yLjEyIDIuMTJsMTAuNSAxMC41YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDQuODctNC44N1ptLTIuMTItMi4xMy0yLjMxIDIuM3YtNC42bDIuMyAyLjNabTcuNzUtMy41LTIuNDUgMi40NC0yLjEyLTIuMTIgMi40NS0yLjQ1YTEuNSAxLjUgMCAwIDEgMi4xMiAyLjEyWk0yNS41IDYuNXYxNC40bC0zLTNWNi41YTEuNSAxLjUgMCAwIDEgMyAwWk0xMC41IDQwYTEuNSAxLjUgMCAwIDAgMCAzaDI3YTEuNSAxLjUgMCAwIDAgMC0zaC0yN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RG93bmxvYWRPZmY0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dEb3dubG9hZE9mZjQ4UmVndWxhcicsIFwiNDhcIiwgW1wibTI5Ljg4IDMxLjY0IDExLjk5IDEyYTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzdMNi4xMyA0LjM3YTEuMjUgMS4yNSAwIDEgMC0xLjc2IDEuNzZsMTguMzggMTguMzl2OC4yMWwtOC4zNy04LjM2YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDEuNzZsMTAuNSAxMC41Yy40OC41IDEuMjguNSAxLjc2IDBsNS00Ljk5Wm0tMS43Ny0xLjc3LTIuODYgMi44NnYtNS43MWwyLjg2IDIuODZabTcuMjctMy43NC0yLjMyIDIuMzMtMS43Ny0xLjc3IDIuMzMtMi4zMmExLjI1IDEuMjUgMCAwIDEgMS43NiAxLjc2Wk0yNS4yNSA2LjI1djE0LjRsLTIuNS0yLjVWNi4yNWExLjI1IDEuMjUgMCAxIDEgMi41IDBabS0xNCAzNC4yNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMjUuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTI1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0VqZWN0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFamVjdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTEuMiA0LjZjLS42LS44LTEuOC0uOC0yLjQgMGwtNC41IDZBMS41IDEuNSAwIDAgMCA1LjUgMTNoOWExLjUgMS41IDAgMCAwIDEuMi0yLjRsLTQuNS02Wk00IDE1YS41LjUgMCAwIDAgMCAxaDEyYS41LjUgMCAwIDAgMC0xSDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0VqZWN0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RWplY3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjYgNS4yYS41LjUgMCAwIDEgLjggMGw0LjUgNmEuNS41IDAgMCAxLS40LjhoLTlhLjUuNSAwIDAgMS0uNC0uOGw0LjUtNlptMS42LS42Yy0uNi0uOC0xLjgtLjgtMi40IDBsLTQuNSA2QTEuNSAxLjUgMCAwIDAgNS41IDEzaDlhMS41IDEuNSAwIDAgMCAxLjItMi40bC00LjUtNlpNNCAxNWEuNS41IDAgMCAwIDAgMWgxMmEuNS41IDAgMCAwIDAtMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNzUgMS41YS43NS43NSAwIDAgMCAwIDEuNWg0Ljc1Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41SDYuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNzVhMyAzIDAgMCAwIDMtM3YtN2EzIDMgMCAwIDAtMy0zSDYuNzVabTMuMDMgNS45Ny0yLjUtMi41YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMS4yMiAxLjIySDEuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNjlMNi4yMiA5Ljk3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi41LTIuNWEuNzUuNzUgMCAwIDAgMC0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi41IDJhLjUuNSAwIDAgMCAwIDFoNWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNWEuNS41IDAgMCAwIDAgMWg1YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMmgtNVptMy4zNSA1LjY1LTMtM2EuNS41IDAgMSAwLS43LjdMOC4yOSA3LjVIMS41YS41LjUgMCAwIDAgMCAxaDYuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN2wzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuNzUgMTcuNWEuNzUuNzUgMCAwIDEgMC0xLjVIMTRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINy43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTRBMy41IDMuNSAwIDAgMSAxNy41IDZ2OGEzLjUgMy41IDAgMCAxLTMuNSAzLjVINy43NVptMC0xMS4zYS43NS43NSAwIDAgMSAxLjA1LjA0bDMgMy4yNWMuMjcuMjkuMjcuNzMgMCAxLjAybC0zIDMuMjVhLjc1Ljc1IDAgMSAxLTEuMS0xLjAybDEuODQtMS45OUgxLjc1YS43NS43NSAwIDAgMSAwLTEuNWg3Ljc5bC0xLjg0LTJhLjc1Ljc1IDAgMCAxIC4wNC0xLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDE3YS41LjUgMCAwIDEgMC0xSDE0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDcuNWEuNS41IDAgMCAxIDAtMUgxNGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g3LjVabS4xNS0xMC44NWMuMi0uMi41LS4yLjcgMGwzLjUgMy41Yy4yLjIuMi41IDAgLjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNy0uN2wyLjY0LTIuNjVIMS41YS41LjUgMCAwIDEgMC0xaDguOEw3LjY0IDYuODVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlckxlZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyTGVmdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJtNC42NCAxMi41IDIuODcgMi43YS43NS43NSAwIDAgMS0xLjAyIDEuMWwtNC4yNS00YS43NS43NSAwIDAgMSAwLTEuMWw0LjI1LTRBLjc1Ljc1IDAgMSAxIDcuNSA4LjNMNC42NCAxMWgxMC4xMWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTQuNWEuNzUuNzUgMCAwIDEgMS41IDB2NC41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINC42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RW50ZXJMZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXJMZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMy43NiAxMiAzLjMzIDMuMTRhLjUuNSAwIDAgMS0uNjguNzJsLTQuMjUtNGEuNS41IDAgMCAxIDAtLjcybDQuMjUtNGEuNS41IDAgMSAxIC42OC43MkwzLjc2IDExSDE1YTIgMiAwIDAgMCAyLTJWNC41YS41LjUgMCAwIDEgMSAwVjlhMyAzIDAgMCAxLTMgM0gzLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlckxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEgNGExIDEgMCAwIDEgMSAuODh2Ni42MmEzLjUgMy41IDAgMCAxLTMuMyAzLjVINS40bDMuMyAzLjNhMSAxIDAgMCAxIC4wOCAxLjMxbC0uMDguMWExIDEgMCAwIDEtMS4zMi4wOGwtLjEtLjA4LTUtNWExLjAxIDEuMDEgMCAwIDEtLjEtLjExbC0uMDctLjEyLS4wNS0uMS0uMDMtLjExLS4wMy0uMTJ2LS4wNkwyIDE0di0uMDhsLjAyLS4xMi4wMy0uMTEuMDQtLjExLjA2LS4xLjA2LS4xLjA4LS4wOSA1LTVhMSAxIDAgMCAxIDEuNSAxLjMybC0uMDguMUw1LjQgMTNIMTguNWMuNzggMCAxLjQyLS42IDEuNS0xLjM2VjVhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RW50ZXJMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXJMZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEuMjUgNGMuNDEgMCAuNzUuMzQuNzUuNzV2Ni41QTMuNzUgMy43NSAwIDAgMSAxOC4yNSAxNUg0LjZsMy43MiAzLjcyYy4yNi4yNy4yOS42OC4wNy45OGwtLjA3LjA4YS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDctNS01YS43NS43NSAwIDAgMS0uMDgtLjk4bC4wOC0uMDggNS01YS43NS43NSAwIDAgMSAxLjEzLjk4bC0uMDcuMDgtMy43MiAzLjcyaDEzLjY2YzEuMiAwIDIuMTctLjkzIDIuMjUtMi4xVjQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RW50ZXJVcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXJVcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC44IDIuMjRhLjc1Ljc1IDAgMCAwLTEuMSAwbC00IDQuMjVBLjc1Ljc1IDAgMSAwIDQuOCA3LjVsMi43LTIuODd2MTAuMTFjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY0LjY1bDIuNyAyLjg2YS43NS43NSAwIDEgMCAxLjEtMS4wMmwtNC00LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFbnRlclVwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RW50ZXJVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguODYgMi4xNmEuNS41IDAgMCAwLS43MiAwbC00IDQuMjVhLjUuNSAwIDAgMCAuNzIuNjhMOCAzLjc2VjE1YTMgMyAwIDAgMCAzIDNoNC41YS41LjUgMCAwIDAgMC0xSDExYTIgMiAwIDAgMS0yLTJWMy43NmwzLjE0IDMuMzNhLjUuNSAwIDAgMCAuNzItLjY4bC00LTQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0VudGVyVXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyVXAyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwIDIxYTEgMSAwIDAgMS0uODggMUgxMi41QTMuNSAzLjUgMCAwIDEgOSAxOC43VjUuNGwtMy4zIDMuM2ExIDEgMCAwIDEtMS4zMS4wOGwtLjEtLjA4YTEgMSAwIDAgMS0uMDgtMS4zMmwuMDgtLjEgNS01YTEgMSAwIDAgMSAuMTEtLjFsLjEyLS4wNy4xLS4wNS4xMS0uMDMuMTItLjAzaC4wNkwxMCAyaC4wOGwuMTIuMDIuMTEuMDMuMTEuMDQuMS4wNi4xLjA2LjA5LjA4IDUgNWExIDEgMCAwIDEtMS4zMiAxLjVsLS4xLS4wOEwxMSA1LjRWMTguNWMwIC43OC42IDEuNDIgMS4zNiAxLjVIMTlhMSAxIDAgMCAxIDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RW50ZXJVcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0VudGVyVXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMCAyMS4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC02LjVBMy43NSAzLjc1IDAgMCAxIDkgMTguMjVWNC42TDUuMjggOC4zYS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDdhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOCA1LTVhLjc1Ljc1IDAgMCAxIC45OC0uMDhsLjA4LjA4IDUgNWEuNzUuNzUgMCAwIDEtLjk4IDEuMTNsLS4wOC0uMDctMy43Mi0zLjcydjEzLjY2YzAgMS4yLjkzIDIuMTcgMi4xIDIuMjVoNi42NWMuNDEgMCAuNzUuMzQuNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4aXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4aXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyLjc1IDE3LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDYuNWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg2LjI1YS43NS43NSAwIDAgMCAwLTEuNUg2LjVBMy41IDMuNSAwIDAgMCAzIDZ2OGEzLjUgMy41IDAgMCAwIDMuNSAzLjVoNi4yNVptMS0xMS4zYS43NS43NSAwIDAgMSAxLjA1LjA0bDMgMy4yNWMuMjcuMjkuMjcuNzMgMCAxLjAybC0zIDMuMjVhLjc1Ljc1IDAgMSAxLTEuMS0xLjAybDEuODQtMS45OUg3Ljc1YS43NS43NSAwIDAgMSAwLTEuNWg3Ljc5bC0xLjg0LTJhLjc1Ljc1IDAgMCAxIC4wNC0xLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhpdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyLjUgMTdhLjUuNSAwIDAgMCAwLTFINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg2LjVhLjUuNSAwIDAgMCAwLTFINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g2LjVabTEuMTUtMTAuODVjLjItLjIuNS0uMi43IDBsMy41IDMuNWMuMi4yLjIuNSAwIC43bC0zLjUgMy41YS41LjUgMCAwIDEtLjctLjdsMi42NC0yLjY1SDcuNWEuNS41IDAgMCAxIDAtMWg4LjhsLTIuNjUtMi42NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cGFuZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01LjI1IDMuNWgtLjY5bDEuNzIgMS43MmEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2TDMuNSA0LjU2di42OWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVaTTMuNSAxMS40NGwxLjcyLTEuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkw0LjU2IDEyLjVoLjY5YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1di0yLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi42OVpNMTMuMjUgMTBhLjc1Ljc1IDAgMCAwLS43NS43NXYuNjlsLTEuNzItMS43MmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDEuNzIgMS43MmgtLjY5YS43NS43NSAwIDAgMCAwIDEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDAtLjc1LS43NVptLTIuNS04aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtLjY5bC0xLjcyIDEuNzJhLjc0Ljc0IDAgMCAxLTEuMDYgMCAuNzUuNzUgMCAwIDEgMC0xLjA2bDEuNzItMS43MmgtLjY5YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwYW5kMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxSDMuN2wyLjY1IDIuNjVhLjUuNSAwIDAgMS0uNy43TDMgMy43MVY1LjVhLjUuNSAwIDAgMS0xIDB2LTNaTTEzLjUgMmMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLTEgMFYzLjdsLTIuNjUgMi42NWEuNS41IDAgMCAxLS43LS43TDEyLjI5IDNIMTAuNWEuNS41IDAgMCAxIDAtMWgzWm0wIDEyYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0xIDB2MS44bC0yLjY1LTIuNjVhLjUuNSAwIDEgMC0uNy43TDEyLjI5IDEzSDEwLjVhLjUuNSAwIDAgMCAwIDFoM1ptLTExIDBhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYxLjhsMi42NS0yLjY1YS41LjUgMCAwIDEgLjcuN0wzLjcxIDEzSDUuNWEuNS41IDAgMCAxIDAgMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwYW5kMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBhbmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNzUgM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djMuNWEuNzUuNzUgMCAwIDAgMS41IDBWNS41NmwyLjIyIDIuMjJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw1LjU2IDQuNWgxLjY5YS43NS43NSAwIDAgMCAwLTEuNWgtMy41Wm0wIDE0YS43NS43NSAwIDAgMS0uNzUtLjc1di0zLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNjlsMi4yMi0yLjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZMNS41NiAxNS41aDEuNjlhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVaTTE3IDMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS42OWwtMi4yMiAyLjIyYS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi4yMi0yLjIydjEuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zLjVaTTE2LjI1IDE3Yy40MSAwIC43NS0uMzQuNzUtLjc1di0zLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuNjlsLTIuMjItMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIuMjIgMi4yMmgtMS42OWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBhbmQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBhbmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgM2EuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAwIDEgMFY0LjdsMy4xNSAzLjE1YS41LjUgMCAxIDAgLjctLjdMNC43MSA0SDcuNWEuNS41IDAgMCAwIDAtMWgtNFptMCAxNGEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgMSAwdjIuOGwzLjE1LTMuMTVhLjUuNSAwIDAgMSAuNy43TDQuNzEgMTZINy41YS41LjUgMCAwIDEgMCAxaC00Wk0xNyAzLjVhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWgyLjhsLTMuMTUgMy4xNWEuNS41IDAgMCAwIC43LjdMMTYgNC43MVY3LjVhLjUuNSAwIDAgMCAxIDB2LTRaTTE2LjUgMTdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLTEgMHYyLjhsLTMuMTUtMy4xNWEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTZIMTIuNWEuNS41IDAgMCAwIDAgMWg0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBhbmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cGFuZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy42NyAxNC45MmExIDEgMCAwIDEgMS40MSAxLjQyTDYuNDEgMTlIOGExIDEgMCAwIDEgMSAuODlWMjBhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMSAxIDIgMHYxLjZsMi42Ny0yLjY4Wk0xNiAyMWExIDEgMCAxIDEgMC0yaDEuNTlsLTIuNjctMi42NmExIDEgMCAwIDEtLjA4LTEuMzJsLjA4LS4xYTEgMSAwIDAgMSAxLjQyIDBMMTkgMTcuNlYxNmExIDEgMCAwIDEgLjg5LS45OUgyMGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtNFpNOCAzYTEgMSAwIDAgMSAwIDJINi40MmwyLjY2IDIuNjdhMSAxIDAgMCAxIC4wOSAxLjMybC0uMDkuMWExIDEgMCAwIDEtMS40MSAwTDUgNi40VjhhMSAxIDAgMCAxLS44OCAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNFptMTIgMGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMSAxLTIgMFY2LjQxbC0yLjY2IDIuNjdhMSAxIDAgMCAxLTEuMzIuMDlsLS4xLS4wOWExIDEgMCAwIDEgMC0xLjQxTDE3LjYgNUgxNmExIDEgMCAwIDEtLjk5LS44OFY0YTEgMSAwIDAgMSAxLTFoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwYW5kMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNy42IDE1LjM1YS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLTMuMSAzLjFoMi4xOWMuMzggMCAuNy4yOC43NC42NGwuMDEuMWMwIC40Mi0uMzQuNzUtLjc1Ljc1aC00YS43NS43NSAwIDAgMS0uNzUtLjc1di00YS43NS43NSAwIDAgMSAxLjUgMHYyLjJsMy4xLTMuMVpNMTYuMjUgMjFhLjc1Ljc1IDAgMCAxIDAtMS41aDIuMmwtMy4xLTMuMDlhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOGMuMy0uMy43Ny0uMyAxLjA2IDBsMy4xIDMuMXYtMi4yYzAtLjM4LjI4LS42OS42NC0uNzRoLjFjLjQyIDAgLjc1LjMzLjc1Ljc0djRjMCAuNDItLjMzLjc1LS43NS43NWgtNFpNNy43NSAzYS43NS43NSAwIDAgMSAwIDEuNUg1LjU2bDMuMSAzLjFjLjI2LjI2LjI5LjY4LjA3Ljk3bC0uMDcuMDljLS4zLjI5LS43Ny4yOS0xLjA3IDBMNC41IDUuNTZ2Mi4xOWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxQS43NS43NSAwIDAgMSAzIDcuNzV2LTRjMC0uNDEuMzQtLjc1Ljc1LS43NWg0Wm0xMi41IDBjLjQyIDAgLjc1LjM0Ljc1Ljc1djRhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjJsLTMuMDkgMy4xYS43NS43NSAwIDAgMS0uOTguMDhsLS4wOC0uMDdhLjc1Ljc1IDAgMCAxIDAtMS4wN2wzLjEtMy4wOWgtMi4yYS43NS43NSAwIDAgMS0uNzQtLjY1di0uMWMwLS40MS4zMy0uNzUuNzQtLjc1aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cGFuZEFsbDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kQWxsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgxLjc1QS43NS43NSAwIDAgMSAxIDMuNzVabTcgM2MwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNUEuNzUuNzUgMCAwIDEgOCA2Ljc1Wm0tMS4yMiA1LjAzLTIgMmMtLjMuMy0uNzcuMy0xLjA2IDBsLTItMmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bC43Mi43MlY2Ljc1YS43NS43NSAwIDAgMSAxLjUgMHY0LjY5bC43Mi0uNzJhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwYW5kQWxsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kQWxsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSAzLjVjMC0uMjguMjItLjUuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNVptMy44NSA5LjM1IDItMmEuNS41IDAgMCAwLS43LS43TDUgMTEuMjlWNi41YS41LjUgMCAwIDAtMSAwdjQuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwWk04LjUgNmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBhbmRBbGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cGFuZEFsbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NUEuNzUuNzUgMCAwIDEgMiA0Ljc1Wm04IDNjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS0xLjIyIDUuNTMtMi41IDIuNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw1IDEzLjQ0VjcuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjUuNjlsMS4yMi0xLjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cGFuZEFsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cGFuZEFsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNC41YzAtLjI4LjIyLS41LjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFoLTE1YS41LjUgMCAwIDEtLjUtLjVabTMuMTUgMTEuMzVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0w2IDE0LjI5VjcuNWEuNS41IDAgMCAwLTEgMHY2LjhsLTEuNjUtMS42NWEuNS41IDAgMCAwLS43LjdsMi41IDIuNVpNMTcuNSA4aC03YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cGFuZEFsbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwYW5kQWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDVhMSAxIDAgMCAxIDEtMWgxOGExIDEgMCAxIDEgMCAySDNhMSAxIDAgMCAxLTEtMVptMTAgNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMSAxIDAgMmgtOGExIDEgMCAwIDEtMS0xWk03LjcgMTkuN2ExIDEgMCAwIDEtMS40IDBsLTMtM2ExIDEgMCAxIDEgMS40LTEuNEw2IDE2LjU4VjlhMSAxIDAgMSAxIDIgMHY3LjU5bDEuMy0xLjNhMSAxIDAgMCAxIDEuNCAxLjQybC0zIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cGFuZEFsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cGFuZEFsbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDE4LjVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVBLjc1Ljc1IDAgMCAxIDIgNC43NVptMTAgNGMwLS40MS4zNC0uNzUuNzUtLjc1aDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNy4yOCAxOS43OGEuNzUuNzUgMCAwIDEtMS4wNiAwbC0zLTNhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw2IDE3LjQ0VjguNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjguNjlsMS43Mi0xLjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTMgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNzUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2OC41YS43NS43NSAwIDAgMS0xLjUgMHYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVabTguNDcuNzJjLjMtLjMuNzctLjMgMS4wNiAwbDMuNSAzLjVjLjMuMy4zLjc3IDAgMS4wNmwtMy41IDMuNWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDIuMjItMi4yMkg0Ljc1YS43NS43NSAwIDAgMSAwLTEuNWg3LjY5bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEuNSAzYy4yOCAwIC41LjIyLjUuNVYxMmEuNS41IDAgMCAxLTEgMFYzLjVjMC0uMjguMjItLjUuNS0uNVptOS4xNS42NWMuMi0uMi41LS4yLjcgMGwzLjUgMy41Yy4yLjIuMi41IDAgLjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNy0uN0wxMy4yOSA4SDQuNWEuNS41IDAgMCAxIDAtMWg4LjhsLTIuNjUtMi42NWEuNS41IDAgMCAxIDAtLjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi43NSAzLjc1Yy40MSAwIC43NS4zNC43NS43NXYxMWEuNzUuNzUgMCAwIDEtMS41IDB2LTExYzAtLjQxLjM0LS43NS43NS0uNzVaTTUgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC4xOWwtMi43Mi0yLjcyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsNCA0YS43Ny43NyAwIDAgMSAuMTUuMjIuNzUuNzUgMCAwIDEtLjE1Ljg0bC00IDRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwyLjcyLTIuNzJINS43NUEuNzUuNzUgMCAwIDEgNSAxMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuNSA0Yy4yOCAwIC41LjIyLjUuNXYxMWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVpNNSAxMGMwLS4yOC4yMi0uNS41LS41aDEwLjhsLTMuMTUtMy4xNWEuNS41IDAgMCAxIC43LS43bDQgNGEuNS41IDAgMCAxIDAgLjdsLTQgNGEuNS41IDAgMCAxLS43LS43bDMuMTQtMy4xNUg1LjVBLjUuNSAwIDAgMSA1IDEwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIuNzUgNC41Yy4zOCAwIC43LjI5Ljc0LjY1bC4wMS4xdjEzLjVhLjc1Ljc1IDAgMCAxLTEuNS4xVjUuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTUuMjEgNi40bC4wOC0uMWExIDEgMCAwIDEgMS4zMi0uMDhsLjEuMDggNSA1YTEgMSAwIDAgMSAuMDggMS4zMmwtLjA5LjEtNSA1YTEgMSAwIDAgMS0xLjUtMS4zMmwuMS0uMUwxOC41NyAxM0g2YTEgMSAwIDAgMS0xLS44OFYxMmExIDEgMCAwIDEgLjg4LTFoMTIuN0wxNS4zIDcuN2ExIDEgMCAwIDEtLjA4LTEuMzFsLjA4LS4xLS4wOC4xWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwb3J0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMi43NSA0LjVjLjM4IDAgLjcuMjguNzUuNjV2MTMuMWEuNzUuNzUgMCAwIDEtMS41LjFWNS4yNmMwLS40MS4zNC0uNzUuNzUtLjc1Wm0xMi45IDEuOC4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDUgNWMuMjYuMjYuMjkuNjguMDcuOTdsLS4wNy4wOS01IDVhLjc1Ljc1IDAgMCAxLTEuMTMtLjk3bC4wNy0uMDkgMy43MS0zLjcySDUuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNjR2LS4xYzAtLjM4LjI4LS43LjY0LS43NUgxOS40NWwtMy43My0zLjczYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDgtLjA3LjA4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0THRyMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRMdHIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNzUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2OC41YS43NS43NSAwIDAgMS0xLjUgMHYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVabTguNDcuNzJjLjMtLjMuNzctLjMgMS4wNiAwbDMuNSAzLjVjLjMuMy4zLjc3IDAgMS4wNmwtMy41IDMuNWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDIuMjItMi4yMkg0Ljc1YS43NS43NSAwIDAgMSAwLTEuNWg3LjY5bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0THRyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwb3J0THRyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMS41IDNjLjI4IDAgLjUuMjIuNS41VjEyYS41LjUgMCAwIDEtMSAwVjMuNWMwLS4yOC4yMi0uNS41LS41Wm05LjE1LjY1Yy4yLS4yLjUtLjIuNyAwbDMuNSAzLjVjLjIuMi4yLjUgMCAuN2wtMy41IDMuNWEuNS41IDAgMCAxLS43LS43TDEzLjI5IDhINC41YS41LjUgMCAwIDEgMC0xaDguOGwtMi42NS0yLjY1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0THRyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRMdHIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNzUgMy43NWMuNDEgMCAuNzUuMzQuNzUuNzV2MTFhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xMWMwLS40MS4zNC0uNzUuNzUtLjc1Wk01IDEwYzAtLjQxLjM0LS43NS43NS0uNzVoMTAuMTlsLTIuNzItMi43MmEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDQgNGEuNzcuNzcgMCAwIDEgLjE1LjIyLjc1Ljc1IDAgMCAxLS4xNS44NGwtNCA0YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMi43Mi0yLjcySDUuNzVBLjc1Ljc1IDAgMCAxIDUgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydEx0cjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydEx0cjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuNSA0Yy4yOCAwIC41LjIyLjUuNXYxMWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVpNNSAxMGMwLS4yOC4yMi0uNS41LS41aDEwLjhsLTMuMTUtMy4xNWEuNS41IDAgMCAxIC43LS43bDQgNGEuNS41IDAgMCAxIDAgLjdsLTQgNGEuNS41IDAgMCAxLS43LS43bDMuMTQtMy4xNUg1LjVBLjUuNSAwIDAgMSA1IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRMdHIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydEx0cjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMi43NSA0LjVjLjM4IDAgLjcuMjkuNzQuNjVsLjAxLjF2MTMuNWEuNzUuNzUgMCAwIDEtMS41LjFWNS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk0xNS4yMSA2LjRsLjA4LS4xYTEgMSAwIDAgMSAxLjMyLS4wOGwuMS4wOCA1IDVhMSAxIDAgMCAxIC4wOCAxLjMybC0uMDkuMS01IDVhMSAxIDAgMCAxLTEuNS0xLjMybC4xLS4xTDE4LjU3IDEzSDZhMSAxIDAgMCAxLTEtLjg4VjEyYTEgMSAwIDAgMSAuODgtMWgxMi43TDE1LjMgNy43YTEgMSAwIDAgMS0uMDgtMS4zMWwuMDgtLjEtLjA4LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydEx0cjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydEx0cjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIuNzUgNC41Yy4zOCAwIC43LjI4Ljc1LjY1djEzLjFhLjc1Ljc1IDAgMCAxLTEuNS4xVjUuMjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptMTIuOSAxLjguMDctLjA4YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyA1IDVjLjI2LjI2LjI5LjY4LjA3Ljk3bC0uMDcuMDktNSA1YS43NS43NSAwIDAgMS0xLjEzLS45N2wuMDctLjA5IDMuNzEtMy43Mkg1Ljc1YS43NS43NSAwIDAgMS0uNzQtLjY0di0uMWMwLS4zOC4yOC0uNy42NC0uNzVIMTkuNDVsLTMuNzMtMy43M2EuNzUuNzUgMCAwIDEtLjA3LS45OGwuMDctLjA4LS4wNy4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0UnRsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRSdGwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE0LjI1IDNhLjc1Ljc1IDAgMCAwLS43NS43NXY4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi04LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabS04LjQ3LjcyYS43NS43NSAwIDAgMC0xLjA2IDBsLTMuNSAzLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDMuNSAzLjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjU2IDguNWg3LjY5YS43NS43NSAwIDAgMCAwLTEuNUgzLjU2bDIuMjItMi4yMmMuMy0uMy4zLS43NyAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydFJ0bDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFJ0bDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0LjUgM2EuNS41IDAgMCAwLS41LjVWMTJhLjUuNSAwIDAgMCAxIDBWMy41YS41LjUgMCAwIDAtLjUtLjVabS05LjE1LjY1YS41LjUgMCAwIDAtLjcgMGwtMy41IDMuNWEuNS41IDAgMCAwIDAgLjdsMy41IDMuNWEuNS41IDAgMCAwIC43LS43TDIuNzEgOGg4Ljc5YS41LjUgMCAwIDAgMC0xSDIuN2wyLjY1LTIuNjVhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRSdGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFJ0bDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTcuMjUgMy43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djExYS43NS43NSAwIDAgMCAxLjUgMHYtMTFhLjc1Ljc1IDAgMCAwLS43NS0uNzVaTTE1IDEwYS43NS43NSAwIDAgMC0uNzUtLjc1SDQuMDZsMi43Mi0yLjcyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTQgNGEuNzYuNzYgMCAwIDAtLjIyLjUzLjc1Ljc1IDAgMCAwIC4yMi41M2w0IDRhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi43Mi0yLjcyaDEwLjE5Yy40MSAwIC43NS0uMzQuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRSdGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRSdGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy41IDRhLjUuNSAwIDAgMC0uNS41djExYS41LjUgMCAwIDAgMSAwdi0xMWEuNS41IDAgMCAwLS41LS41Wk0xNSAxMGEuNS41IDAgMCAwLS41LS41SDMuN2wzLjE1LTMuMTVhLjUuNSAwIDAgMC0uNy0uN2wtNCA0YS41LjUgMCAwIDAgMCAuN2w0IDRhLjUuNSAwIDAgMCAuNy0uN0wzLjcxIDEwLjVIMTQuNWEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRSdGwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFJ0bDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEuMjUgNC41Yy0uMzggMC0uNy4yOS0uNzUuNjV2MTMuNmEuNzUuNzUgMCAwIDAgMS40OS4xVjUuMjVhLjc1Ljc1IDAgMCAwLS43NC0uNzVaTTguNzkgNi40bC0uMDktLjFhMSAxIDAgMCAwLTEuMzItLjA4bC0uMS4wOC00Ljk5IDVhMSAxIDAgMCAwLS4wOCAxLjMybC4wOC4xIDUgNWExIDEgMCAwIDAgMS41LTEuMzJsLS4wOS0uMUw1LjQyIDEzSDE4YTEgMSAwIDAgMCAuOTktLjg4VjEyYTEgMSAwIDAgMC0uODgtMUg1LjQxbDMuMy0zLjNhMSAxIDAgMCAwIC4wOC0xLjMxbC0uMDktLjEuMDkuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0UnRsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwb3J0UnRsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEuMjQgNC41Yy0uMzggMC0uNjkuMjgtLjc0LjY1djEzLjFhLjc1Ljc1IDAgMCAwIDEuNDkuMVY1LjI2YS43NS43NSAwIDAgMC0uNzUtLjc1Wk04LjM0IDYuM2wtLjA2LS4wOGEuNzUuNzUgMCAwIDAtLjk4LS4wN2wtLjA4LjA3LTUgNWEuNzUuNzUgMCAwIDAtLjA3Ljk3bC4wNy4wOSA1IDVhLjc1Ljc1IDAgMCAwIDEuMTMtLjk3bC0uMDctLjA5LTMuNzEtMy43MmgxMy42N2MuMzggMCAuNy0uMjguNzUtLjY0di0uMWMwLS4zOC0uMjgtLjctLjY1LS43NUg0LjU1bDMuNzMtMy43M2EuNzUuNzUgMCAwIDAgLjA3LS45OGwtLjA3LS4wOC4wNy4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0VXAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFVwMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zIDE0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uOTctOS41M2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuMjItMi4yMnY3LjY5YS43NS43NSAwIDAgMCAxLjUgMFYzLjU2bDIuMjIgMi4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0zLjUtMy41YS43NS43NSAwIDAgMC0xLjA2IDBsLTMuNSAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0V4cG9ydFVwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwb3J0VXAxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDE0LjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabTEuMTUtOS4xNWEuNS41IDAgMCAxIDAtLjdsMy41LTMuNWMuMi0uMi41LS4yLjcgMGwzLjUgMy41YS41LjUgMCAwIDEtLjcuN0w4LjUgMi43MXY4Ljc5YS41LjUgMCAwIDEtMSAwVjIuN0w0Ljg1IDUuMzZhLjUuNSAwIDAgMS0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRVcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93RXhwb3J0VXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUzIDEuNzJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNCA0YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi43Mi0yLjcydjEwLjE5YS43NS43NSAwIDAgMCAxLjUgMFY0LjA2bDIuNzIgMi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC00LTRaTTQuNSAxNi41YS43NS43NSAwIDAgMCAwIDEuNWgxMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTExWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0VXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dFeHBvcnRVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuNjUgMi4xNWMuMi0uMi41LS4yLjcgMGw0IDRhLjUuNSAwIDAgMS0uNy43TDEwLjUgMy43MVYxNC41YS41LjUgMCAwIDEtMSAwVjMuN0w2LjM1IDYuODZhLjUuNSAwIDEgMS0uNy0uN2w0LTRaTTQgMTcuNWMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93RXhwb3J0VXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFVwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMi43IDIuM2ExIDEgMCAwIDAtMS40IDBsLTUgNWExIDEgMCAwIDAgMS40IDEuNEwxMSA1LjQyVjE4YTEgMSAwIDEgMCAyIDBWNS40MWwzLjMgMy4zYTEgMSAwIDEgMCAxLjQtMS40MmwtNS01Wk01LjI2IDIwLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEzLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDUuMjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dFeHBvcnRVcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0V4cG9ydFVwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuMjggMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC01IDVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkwxMSA0LjU2djEzLjY5YS43NS43NSAwIDAgMCAxLjUgMFY0LjU2bDMuNzIgMy43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC01LTVaTTUuMjUgMjAuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTNhLjc1Ljc1IDAgMCAwIDAtMS41aC0xM1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjI4IDUuMjJjLjMuMy4zLjc3IDAgMS4wNkwzLjU2IDdoMi42OWEuNzUuNzUgMCAwIDEgMCAxLjVIMy41NmwuNzIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi0yYS43NS43NSAwIDAgMSAwLTEuMDZsMi0yYy4zLS4zLjc3LS4zIDEuMDYgMFptNy40NCAwYy4zLS4zLjc3LS4zIDEuMDYgMGwyIDJjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsLjcyLS43Mkg5Ljc1YS43NS43NSAwIDAgMSAwLTEuNWgyLjY5bC0uNzItLjcyYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZpdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuODUgNS4xNWMuMi4yLjIuNSAwIC43TDIuNzEgN0g2LjVhLjUuNSAwIDAgMSAwIDFIMi43bDEuMTUgMS4xNWEuNS41IDAgMSAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYy4yLS4yLjUtLjIuNyAwWm04LjMgMGMuMi0uMi41LS4yLjcgMGwyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMMTMuMjkgOEg5LjVhLjUuNSAwIDAgMSAwLTFoMy44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dGaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS44IDYuNzJjLjI4LjMuMjguNzctLjAxIDEuMDZMNC41NyA5aDMuNjhhLjc1Ljc1IDAgMCAxIDAgMS41SDQuNTZsMS4yMiAxLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLjUxLTIuNWMuMy0uMy43Ny0uMyAxLjA2IDBabTguNDIgMGMuMy0uMy43Ny0uMyAxLjA2IDBsMi41IDIuNWMuMy4zLjMuNzcgMCAxLjA2bC0yLjUgMi41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMS4yMi0xLjIyaC0zLjY5YS43NS43NSAwIDAgMSAwLTEuNWgzLjY5bC0xLjIyLTEuMjJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rml0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS4zNSA2LjY1Yy4yLjIuMi41IDAgLjdMMy43MSA5SDguNWEuNS41IDAgMCAxIDAgMUgzLjdsMS42NSAxLjY1YS41LjUgMCAwIDEtLjcuN2wtMi41LTIuNWEuNS41IDAgMCAxIDAtLjdsMi41LTIuNWMuMi0uMi41LS4yLjcgMFptOS4zIDBjLjItLjIuNS0uMi43IDBsMi41IDIuNWMuMi4yLjIuNSAwIC43bC0yLjUgMi41YS41LjUgMCAwIDEtLjctLjdMMTYuMjkgMTBIMTEuNWEuNS41IDAgMCAxIDAtMWg0LjhsLTEuNjUtMS42NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk03LjE4IDcuNTJhMSAxIDAgMCAxIC4wNSAxLjQxTDUuMyAxMUgxMGExIDEgMCAxIDEgMCAySDUuM2wxLjkzIDIuMDdhMSAxIDAgMCAxLTEuNDYgMS4zNmwtMy41LTMuNzVBLjk5Ljk5IDAgMCAxIDIgMTJhMSAxIDAgMCAxIC4yNy0uNjhsMy41LTMuNzVhMSAxIDAgMCAxIDEuNDEtLjA1Wm05LjY0IDBhMSAxIDAgMCAwLS4wNSAxLjQxTDE4LjcgMTFIMTRhMSAxIDAgMSAwIDAgMmg0LjdsLTEuOTMgMi4wN2ExIDEgMCAwIDAgMS40NiAxLjM2bDMuNS0zLjc1YTEuMDQgMS4wNCAwIDAgMCAuMTUtLjIgMSAxIDAgMCAwLS4xNS0xLjE2bC0zLjUtMy43NWExIDEgMCAwIDAtMS40MS0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuNzYgNy40NWMuMy4yOC4zMi43Ni4wNCAxLjA2TDQuNDggMTFoNS43N2EuNzUuNzUgMCAwIDEgMCAxLjVINC40OGwyLjMyIDIuNDlBLjc1Ljc1IDAgMSAxIDUuNyAxNmwtMy41LTMuNzVhLjc1Ljc1IDAgMCAxIDAtMS4wMmwzLjUtMy43NWEuNzUuNzUgMCAwIDEgMS4wNi0uMDRabTEwLjQ4IDBhLjc1Ljc1IDAgMCAwLS4wNCAxLjA2TDE5LjUyIDExaC01Ljc3YS43NS43NSAwIDAgMCAwIDEuNWg1Ljc3bC0yLjMyIDIuNDlBLjc1Ljc1IDAgMSAwIDE4LjMgMTZsMy41LTMuNzVhLjc1Ljc1IDAgMCAwIDAtMS4wMmwtMy41LTMuNzVhLjc1Ljc1IDAgMCAwLTEuMDYtLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dGaXRJbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0SW4xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNzIgNi4yOGEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDIgMmMuMy4zLjMuNzcgMCAxLjA2bC0yIDJhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuNzItLjcySDEuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNjlsLS43Mi0uNzJabTguNTYgMGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yIDJjLS4zLjMtLjMuNzcgMCAxLjA2bDIgMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0uNzItLjcyaDIuNjlhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjY5bC43Mi0uNzJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdEluMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0SW4xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00Ljg1IDUuMTVhLjUuNSAwIDEgMC0uNy43TDUuMjkgN0gxLjVhLjUuNSAwIDAgMCAwIDFoMy44TDQuMTQgOS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yWm03IC43YS41LjUgMCAwIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMMTAuNzEgOGgzLjc5YS41LjUgMCAwIDAgMC0xaC0zLjhsMS4xNS0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dGaXRJbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rml0SW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuMjEgNy43OGEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMCAxIC4wMSAxLjA2bC0yLjUgMi41YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMS4yMi0xLjIySDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNjhMNS4yMSA3Ljc4Wm05LjU4IDBhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi41IDIuNWEuNzUuNzUgMCAwIDAtLjAxIDEuMDZsMi41IDIuNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjIyLTEuMjJoMy42OWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNjhsMS4yMi0xLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dGaXRJbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZpdEluMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS42NSA3LjM1YS41LjUgMCAxIDEgLjctLjdsMi41IDIuNWMuMi4yLjIuNSAwIC43bC0yLjUgMi41YS41LjUgMCAwIDEtLjctLjdMNy4yOSAxMEgyLjVhLjUuNSAwIDAgMSAwLTFoNC44TDUuNjQgNy4zNVptOC43IDBhLjUuNSAwIDAgMC0uNy0uN2wtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDEyLjcxIDEwaDQuNzlhLjUuNSAwIDAgMCAwLTFoLTQuOGwxLjY1LTEuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZpdEluMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGaXRJbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNS44MiA3LjUyYTEgMSAwIDAgMC0uMDUgMS40MUw3LjcgMTFIM2ExIDEgMCAxIDAgMCAyaDQuN2wtMS45MyAyLjA3YTEgMSAwIDAgMCAxLjQ2IDEuMzZsMy41LTMuNzVhMS4wNCAxLjA0IDAgMCAwIC4xNS0uMiAxIDEgMCAwIDAtLjE1LTEuMTZsLTMuNS0zLjc1YTEgMSAwIDAgMC0xLjQxLS4wNVptMTIuMzYgMGExIDEgMCAwIDEgLjA1IDEuNDFMMTYuMyAxMUgyMWExIDEgMCAxIDEgMCAyaC00LjdsMS45MyAyLjA3YTEgMSAwIDAgMS0xLjQ2IDEuMzZsLTMuNS0zLjc1YS45Ni45NiAwIDAgMS0uMTUtLjIgMSAxIDAgMCAxIC4xNS0xLjE2bDMuNS0zLjc1YTEgMSAwIDAgMSAxLjQxLS4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rml0SW4yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGaXRJbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjQgNy40NWEuNzUuNzUgMCAwIDAtLjA0IDEuMDZMOC41MiAxMUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg1Ljc3TDYuMiAxNC45OUEuNzUuNzUgMCAxIDAgNy4zIDE2bDMuNS0zLjc1YS43NS43NSAwIDAgMCAwLTEuMDJMNy4zIDcuNDlhLjc1Ljc1IDAgMCAwLTEuMDYtLjA0Wm0xMS41MiAwYy4zLjI4LjMyLjc2LjA0IDEuMDZMMTUuNDggMTFoNS43N2EuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNzdsMi4zMiAyLjQ5QS43NS43NSAwIDEgMSAxNi43IDE2bC0zLjUtMy43NWEuNzUuNzUgMCAwIDEgMC0xLjAybDMuNS0zLjc1YS43NS43NSAwIDAgMSAxLjA2LS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd0RpYWdvbmFsVXBSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd0RpYWdvbmFsVXBSaWdodDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC41IDNhLjUuNSAwIDAgMCAwIDFoMi44TDUuODcgOS40MWEyLjUgMi41IDAgMSAwIC43LjdMMTIgNC43MlY3LjVhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0uNS0uNWgtNFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93RGlhZ29uYWxVcFJpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC41IDNhLjUuNSAwIDAgMCAwIDFoMi44TDUuODcgOS40MWEyLjUgMi41IDAgMSAwIC43LjdMMTIgNC43MlY3LjVhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0uNS0uNWgtNFpNMyAxMS41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd0RpYWdvbmFsVXBSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd0RpYWdvbmFsVXBSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNSA0YS41LjUgMCAwIDAgMCAxaDMuOGwtNi41NiA2LjU1YTMgMyAwIDEgMCAuNy43TDE1IDUuNzJWOS41YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtLjUtLjVoLTVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93RGlhZ29uYWxVcFJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd0RpYWdvbmFsVXBSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjUgNGEuNS41IDAgMCAwIDAgMWgzLjhsLTYuNTYgNi41NWEzIDMgMCAxIDAgLjcuN0wxNSA1LjcyVjkuNWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLS41LS41aC01Wk00IDE0YTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyLjc1IDRhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNjlsLTguMiA4LjJhNCA0IDAgMSAwIDEuMDYgMS4wNmw4LjItOC4ydjQuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTYuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93RGlhZ29uYWxVcFJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuNzUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoNC42OWwtOC4yIDguMmE0IDQgMCAxIDAgMS4wNiAxLjA2bDguMi04LjJ2NC42OWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNi41Wk00LjUgMTdhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93RGlhZ29uYWxVcFJpZ2h0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93RGlhZ29uYWxVcFJpZ2h0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyA1YTEgMSAwIDEgMCAwIDJoNi41OUwxMS42MiAxOC45N2E1LjUgNS41IDAgMSAwIDEuNDEgMS40MUwyNSA4LjQxVjE1YTEgMSAwIDEgMCAyIDBWNmExIDEgMCAwIDAtMS0xaC05WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd0RpYWdvbmFsVXBSaWdodDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dEaWFnb25hbFVwUmlnaHQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNyA1YTEgMSAwIDEgMCAwIDJoNi41OUwxMS42MiAxOC45N2E1LjUgNS41IDAgMSAwIDEuNDEgMS40MUwyNSA4LjQxVjE1YTEgMSAwIDEgMCAyIDBWNmExIDEgMCAwIDAtMS0xaC05Wk01IDIzLjVhMy41IDMuNSAwIDEgMSA3IDAgMy41IDMuNSAwIDAgMS03IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93VXBSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd1VwUmlnaHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTExLjg1IDIuMTVhLjUuNSAwIDAgMC0uNy43TDEzLjI5IDVIOS41YTIgMiAwIDAgMC0yIDJ2MmExIDEgMCAwIDEtMSAxaC0uNTVhMi41IDIuNSAwIDEgMCAwIDFoLjU1YTIgMiAwIDAgMCAyLTJWN2ExIDEgMCAwIDEgMS0xaDMuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN2wzLTNhLjUuNSAwIDAgMCAwLS43bC0zLTNaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93VXBSaWdodDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dVcFJpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTEuODUgMi4xNWEuNS41IDAgMCAwLS43LjdMMTMuMjkgNUg5LjVhMiAyIDAgMCAwLTIgMnYyYTEgMSAwIDAgMS0xIDFoLS41NWEyLjUgMi41IDAgMSAwIDAgMWguNTVhMiAyIDAgMCAwIDItMlY3YTEgMSAwIDAgMSAxLTFoMy44bC0yLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy43bDMtM2EuNS41IDAgMCAwIDAtLjdsLTMtM1pNNSAxMC41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd1VwUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dVcFJpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC4zMSAzLjE1YS41LjUgMCAwIDAtLjcuN2wyLjY0IDIuNjVIMTJBMi41IDIuNSAwIDAgMCA5LjUgOXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtLjA0YTMgMyAwIDEgMCAwIDFIOGEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOWMwLS44My42Ny0xLjUgMS41LTEuNWg0LjI1bC0yLjY0IDIuNjVhLjUuNSAwIDEgMCAuNy43bDMuNS0zLjVhLjUuNSAwIDAgMCAwLS43bC0zLjUtMy41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd1VwUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93VXBSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjMxIDMuMTVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NUgxMkEyLjUgMi41IDAgMCAwIDkuNSA5djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0uMDRhMyAzIDAgMSAwIDAgMUg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5YzAtLjgzLjY3LTEuNSAxLjUtMS41aDQuMjVsLTIuNjQgMi42NWEuNS41IDAgMSAwIC43LjdsMy41LTMuNWEuNS41IDAgMCAwIDAtLjdsLTMuNS0zLjVaTTcgMTNhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd1VwUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dVcFJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy41MyAzLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi45NyAyLjk3SDE0LjVhMy4yNSAzLjI1IDAgMCAwLTMuMjUgMy4yNXYzYzAgLjgyLS41NyAxLjUxLTEuMzMgMS43YTQgNCAwIDEgMCAuMDIgMS41MiAzLjI1IDMuMjUgMCAwIDAgMi44MS0zLjIydi0zYzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDQuOTRsLTIuOTcgMi45N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQuMjUtNC4yNWMuMy0uMy4zLS43NyAwLTEuMDZsLTQuMjUtNC4yNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0Zsb3dVcFJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd1VwUmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy41MyAzLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi45NyAyLjk3SDE0LjVhMy4yNSAzLjI1IDAgMCAwLTMuMjUgMy4yNXYzYzAgLjgyLS41NyAxLjUxLTEuMzMgMS43YTQgNCAwIDEgMCAuMDIgMS41MiAzLjI1IDMuMjUgMCAwIDAgMi44MS0zLjIydi0zYzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDQuOTRsLTIuOTcgMi45N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQuMjUtNC4yNWMuMy0uMy4zLS43NyAwLTEuMDZsLTQuMjUtNC4yNVpNMy41IDE2YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd1VwUmlnaHQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dVcFJpZ2h0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMy4yIDIuM2ExIDEgMCAxIDAtMS40IDEuNGw0Ljc5IDQuOEgxOWE0IDQgMCAwIDAtNCA0djdhMiAyIDAgMCAxLTIgMmgtLjFhNS41IDUuNSAwIDEgMCAwIDJoLjFhNCA0IDAgMCAwIDQtNHYtN2MwLTEuMS45LTIgMi0yaDcuNTlsLTQuOCA0LjhhMSAxIDAgMCAwIDEuNDIgMS40bDYuNS02LjVhMSAxIDAgMCAwIDAtMS40bC02LjUtNi41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd1VwUmlnaHQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93VXBSaWdodDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIzLjIgMi4zYTEgMSAwIDEgMC0xLjQgMS40bDQuNzkgNC44SDE5YTQgNCAwIDAgMC00IDR2N2EyIDIgMCAwIDEtMiAyaC0uMWE1LjUgNS41IDAgMSAwIDAgMmguMWE0IDQgMCAwIDAgNC00di03YzAtMS4xLjktMiAyLTJoNy41OWwtNC44IDQuOGExIDEgMCAwIDAgMS40MiAxLjRsNi41LTYuNWExIDEgMCAwIDAgMC0xLjRsLTYuNS02LjVaTTExIDIyLjVhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93VXBSaWdodFJlY3RhbmdsZU11bHRpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93VXBSaWdodFJlY3RhbmdsZU11bHRpcGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMSAxMi41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtNFptOCAyYS41LjUgMCAwIDAtMSAwVjE3YTEgMSAwIDAgMS0xIDFoLTMuNWEuNS41IDAgMCAwIDAgMUgxN2EyIDIgMCAwIDAgMi0ydi0yLjVaTTE0LjMxIDMuMTVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NUgxMkEyLjUgMi41IDAgMCAwIDkuNSA5djJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0uMDRhMyAzIDAgMSAwIDAgMUg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5YzAtLjgzLjY3LTEuNSAxLjUtMS41aDQuMjVsLTIuNjQgMi42NWEuNS41IDAgMSAwIC43LjdsMy41LTMuNWEuNS41IDAgMCAwIDAtLjdsLTMuNS0zLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93VXBSaWdodFJlY3RhbmdsZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rmxvd1VwUmlnaHRSZWN0YW5nbGVNdWx0aXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTExIDEyLjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di00Wm04IDJhLjUuNSAwIDAgMC0xIDBWMTdhMSAxIDAgMCAxLTEgMWgtMy41YS41LjUgMCAwIDAgMCAxSDE3YTIgMiAwIDAgMCAyLTJ2LTIuNVpNMTQuMzEgMy4xNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1SDEyQTIuNSAyLjUgMCAwIDAgOS41IDl2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLS4wNGEzIDMgMCAxIDAgMCAxSDhhMi41IDIuNSAwIDAgMCAyLjUtMi41VjljMC0uODMuNjctMS41IDEuNS0xLjVoNC4yNWwtMi42NCAyLjY1YS41LjUgMCAxIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNVpNNyAxM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGbG93VXBSaWdodFJlY3RhbmdsZU11bHRpcGxlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGbG93VXBSaWdodFJlY3RhbmdsZU11bHRpcGxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNCAxNmExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtNFptOSAxLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTRhLjUuNSAwIDAgMCAwIDFoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNaTTE3LjUzIDMuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwyLjk3IDIuOTdIMTQuNWEzLjI1IDMuMjUgMCAwIDAtMy4yNSAzLjI1djNjMCAuODItLjU3IDEuNTEtMS4zMyAxLjdhNCA0IDAgMSAwIC4wMiAxLjUyIDMuMjUgMy4yNSAwIDAgMCAyLjgxLTMuMjJ2LTNjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNC45NGwtMi45NyAyLjk3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNC4yNS00LjI1Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNC4yNS00LjI1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rmxvd1VwUmlnaHRSZWN0YW5nbGVNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0Zsb3dVcFJpZ2h0UmVjdGFuZ2xlTXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNCAxNmExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtNFptOSAxLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTRhLjUuNSAwIDAgMCAwIDFoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNaTTE3LjUzIDMuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwyLjk3IDIuOTdIMTQuNWEzLjI1IDMuMjUgMCAwIDAtMy4yNSAzLjI1djNjMCAuODItLjU3IDEuNTEtMS4zMyAxLjdhNCA0IDAgMSAwIC4wMiAxLjUyIDMuMjUgMy4yNSAwIDAgMCAyLjgxLTMuMjJ2LTNjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNC45NGwtMi45NyAyLjk3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNC4yNS00LjI1Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNC4yNS00LjI1Wk0zLjUgMTZhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm0xMS42OSA4LTIuMjYgMi4yNmEuNzUuNzUgMCAwIDAgLjk4IDEuMTNsLjA4LS4wNyAzLjU0LTMuNTQuMDctLjA4LjA0LS4wNi4wNS0uMS4wMy0uMDguMDItLjA3di0uMDZsLjAxLS4xdi0uMDZsLS4wMi0uMDktLjAzLS4xLS4wNS0uMS0uMDMtLjA1YS43NS43NSAwIDAgMC0uMDktLjExbC4wNy4wOGEuNzQuNzQgMCAwIDAtLjA3LS4wOGwtMy41NC0zLjU0YS43NS43NSAwIDAgMC0xLjEzLjk4bC4wNy4wOUwxMS43IDYuNUg4Yy0zLjY1IDAtNi4xMyAyLjA4LTYuMjUgNS4wNHYuMjFhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtMi4xMyAxLjctMy42NiA0LjUtMy43NWgzLjk0WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi4zIDggOS42IDEwLjY4YS41LjUgMCAwIDAgLjY0Ljc3bC4wNy0uMDYgMy41Ni0zLjU3LjA1LS4wNy4wMy0uMDYuMDItLjA2VjcuNkEuNS41IDAgMCAwIDE0IDcuNXYuMDctLjExbC0uMDItLjA5LS4wMi0uMDYtLjA0LS4wOC0uMDUtLjA3LTMuNTUtMy41NWEuNS41IDAgMCAwLS43Ny42NGwuMDYuMDdMMTIuMyA3SDhjLTMuNTIgMC01Ljg5IDEuOTgtNiA0Ljh2LjJhLjUuNSAwIDAgMCAxIDBjMC0yLjI3IDEuOC0zLjkgNC43NC00aDQuNTZaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xNS42OSA5LjUtMi45NiAyLjk2YS43NS43NSAwIDAgMCAuOTcgMS4xNGwuMDktLjA4IDQuMjQtNC4yNGEuNzUuNzUgMCAwIDAgLjA3LS45OGwtLjA3LS4wOC00LjI0LTQuMjRhLjc1Ljc1IDAgMCAwLTEuMTQuOTdsLjA4LjA5TDE1LjY5IDhIMTBhNy43NSA3Ljc1IDAgMCAwLTcuNzUgNy41di4yNWEuNzUuNzUgMCAwIDAgMS41IDBBNi4yNSA2LjI1IDAgMCAxIDkuNzcgOS41SDE1LjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rm9yd2FyZDIwUmVndWxhcicsIFwiMjBcIiwgW1wibTE2LjMgOS0zLjQgMy4zOWEuNS41IDAgMCAwIC42NC43NmwuMDctLjA1IDQuMjQtNC4yNWEuNS41IDAgMCAwIC4wNi0uNjNsLS4wNi0uMDctNC4yNC00LjI1YS41LjUgMCAwIDAtLjc2LjY0bC4wNS4wN0wxNi4zIDhIMTBhNy41IDcuNSAwIDAgMC03LjUgNy4yNnYuMjRhLjUuNSAwIDAgMCAxIDBBNi41IDYuNSAwIDAgMSA5Ljc3IDloNi41M1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZvcndhcmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE0LjMgMTYuM2ExIDEgMCAxIDAgMS40MSAxLjRsNS01YTEgMSAwIDAgMCAwLTEuNGwtNS01YTEgMSAwIDAgMC0xLjQxIDEuNGwzLjI5IDMuM0gxMWE4IDggMCAwIDAtOCA3Ljc1VjE5YTEgMSAwIDEgMCAyIDAgNiA2IDAgMCAxIDUuNzgtNmg2LjgxbC0zLjMgMy4zWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNC43MiAxNi4yMmEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDUtNWMuMy0uMy4zLS43NyAwLTEuMDZsLTUtNWEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2TDE4LjQ0IDExSDEwLjZjLTEuNiAwLTIuODEuMjQtMy44OS43NmwtLjI0LjEzYTYuMiA2LjIgMCAwIDAtMi41OCAyLjU4QTguNCA4LjQgMCAwIDAgMyAxOC42YS43NS43NSAwIDAgMCAxLjUgMGMwLTEuNDguMjMtMi41Mi43MS0zLjQzYTQuNyA0LjcgMCAwIDEgMS45Ni0xLjk2IDYuNjMgNi42MyAwIDAgMSAzLjEtLjdsLjMzLS4wMWg3Ljg0bC0zLjcyIDMuNzJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNy41NCA2Ljk2YTEgMSAwIDAgMSAxLjQyLTEuNDJsNS43NSA1Ljc1YTEgMSAwIDAgMSAwIDEuNDJsLTUuNzUgNS43NWExIDEgMCAwIDEtMS40Mi0xLjQyTDIxLjYgMTNoLTcuODRhOSA5IDAgMCAwLTkgOSAxIDEgMCAxIDEtMiAwIDExIDExIDAgMCAxIDExLTExaDcuODRsLTQuMDUtNC4wNFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZvcndhcmQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTcuOTcgNi41M2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDUuNzUgNS43NWMuMy4zLjMuNzcgMCAxLjA2bC01Ljc1IDUuNzVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmw0LjQ3LTQuNDdoLTguNjlhOS4yNSA5LjI1IDAgMCAwLTkuMjUgOS4yNS43NS43NSAwIDAgMS0xLjUgMEMzIDE1LjgxIDcuODEgMTEgMTMuNzUgMTFoOC42OWwtNC40Ny00LjQ3WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rm9yd2FyZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjAuMTIgNi44OGExLjI1IDEuMjUgMCAwIDEgMS43Ni0xLjc2bDcgN2MuNS40OC41IDEuMjggMCAxLjc2bC03IDdhMS4yNSAxLjI1IDAgMCAxLTEuNzYtMS43Nmw0Ljg2LTQuODdIMTZBMTAuNzUgMTAuNzUgMCAwIDAgNS4yNSAyNWExLjI1IDEuMjUgMCAxIDEtMi41IDBjMC03LjMyIDUuOTMtMTMuMjUgMTMuMjUtMTMuMjVoOC45OGwtNC44Ni00Ljg3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMjEuMTUgNi44NWEuNS41IDAgMCAxIC43LS43bDcgN2MuMi4yLjIuNSAwIC43bC03IDdhLjUuNSAwIDAgMS0uNy0uN0wyNy4yOSAxNEgxNS41QTExLjUgMTEuNSAwIDAgMCA0IDI1LjVhLjUuNSAwIDAgMS0xIDBDMyAxOC42IDguNiAxMyAxNS41IDEzaDExLjhsLTYuMTUtNi4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yMC4zIDYuN2ExIDEgMCAwIDEgMS40LTEuNGw3IDdhMSAxIDAgMCAxIDAgMS40bC03IDdhMSAxIDAgMCAxLTEuNC0xLjRsNS4yOS01LjNIMTZBMTEgMTEgMCAwIDAgNSAyNWExIDEgMCAxIDEtMiAwIDEzIDEzIDAgMCAxIDEzLTEzaDkuNTlsLTUuMy01LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZvcndhcmQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wibTMzLjc4IDIzLTYuMjEgNi4yYTEuNzUgMS43NSAwIDAgMCAyLjM1IDIuNmwuMTMtLjEyIDkuMTktOS4xOWMuNjQtLjY0LjY4LTEuNjYuMTEtMi4zNWwtLjExLS4xMi05LjItOS4yYTEuNzUgMS43NSAwIDAgMC0yLjU4IDIuMzVsLjExLjEzIDYuMiA2LjJIMjZjLTMuMzQgMC02LjQ1Ljc0LTkuMTYgMi4xN2wtLjQuMjJjLTIuNzYgMS41NS01IDMuNzktNi41NSA2LjU1QTE5LjQyIDE5LjQyIDAgMCAwIDcuNSAzOGExLjc1IDEuNzUgMCAxIDAgMy41IDBjMC0yLjkyLjY3LTUuNTkgMS45NC03Ljg1YTEzLjUxIDEzLjUxIDAgMCAxIDUuMjEtNS4yMUExNS43OCAxNS43OCAwIDAgMSAyNS41MiAyM0wyNiAyM2g3Ljc4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIm0zNC45OCAyMi41LTcuMDYgNy4wNmExLjI1IDEuMjUgMCAwIDAgMS42NyAxLjg2bC4xLS4xIDkuMi05LjE4Yy40NS0uNDYuNDgtMS4xOC4wOS0xLjY3bC0uMS0uMS05LjE5LTkuMmExLjI1IDEuMjUgMCAwIDAtMS44NiAxLjY3bC4xLjFMMzQuOTcgMjBIMjZjLTMuMjUgMC02LjI4LjcyLTguOSAyLjFsLS40MS4yMmExNi41MSAxNi41MSAwIDAgMC02LjM3IDYuMzdBMTguOTIgMTguOTIgMCAwIDAgOCAzOGExLjI1IDEuMjUgMCAxIDAgMi41IDBjMC0zIC43LTUuNzUgMi04LjFhMTQuMDEgMTQuMDEgMCAwIDEgNS40LTUuNCAxNi4yOCAxNi4yOCAwIDAgMSA3LjYtMmg5LjQ4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZERvd25MaWdodG5pbmcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmREb3duTGlnaHRuaW5nMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy40MyA0Ljc1IDE1LjcgN2gtMy45NWMtMi44LS4xLTQuNDktMS42Mi00LjQ5LTMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdi4yMUM1Ljg3IDYuNDIgOC4zNSA4LjUgMTIgOC41aDMuNjlsLTIuMjYgMi4yNi0uMDcuMDhhLjc1Ljc1IDAgMCAwIDEuMTQuOThsMy41My0zLjU0YS43NS43NSAwIDAgMCAuMDktLjFsLjAzLS4wNi4wNS0uMS4wMy0uMS4wMi0uMVY3LjY4bC0uMDEtLjA2LS4wMi0uMDctLjAzLS4wOS0uMDUtLjEtLjA0LS4wNS0uMDctLjA4LTMuNTMtMy41NC0uMDktLjA3YS43NS43NSAwIDAgMC0uOTggMS4xNFpNMi41IDE2aDEuNzVsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2SDQuNTlhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93bkxpZ2h0bmluZzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmREb3duTGlnaHRuaW5nMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuNjEgNC4zMiAxNi4zIDdoLTQuNTVDOC44IDYuOSA3IDUuMjcgNyAzYS41LjUgMCAwIDAtMSAwdi4yQzYuMTIgNi4wMyA4LjQ4IDggMTIgOGg0LjNsLTIuNjkgMi42OC0uMDYuMDdhLjUuNSAwIDAgMCAuNzcuNjRsMy41NS0zLjU1LjA1LS4wNy4wNC0uMDguMDItLjA2LjAyLS4wOXYtLjA2LjAyYS41LjUgMCAwIDAtLjAxLS4xdi0uMDNsLS4wMy0uMDYtLjAzLS4wNi0uMDUtLjA3LTMuNTYtMy41Ny0uMDctLjA2YS41LjUgMCAwIDAtLjY0Ljc3Wk0yLjUxIDE2aDEuNzRsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2SDQuNTlhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93bkxpZ2h0bmluZzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rm9yd2FyZERvd25MaWdodG5pbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjMgNS43YTEgMSAwIDAgMSAxLjQxLTEuNGw1IDVhMSAxIDAgMCAxIDAgMS40MWwtNSA1YTEgMSAwIDAgMS0xLjQxLTEuNDJMMTkuNTkgMTFIMTNhOCA4IDAgMCAxLTgtNy43NVYzYTEgMSAwIDAgMSAyIDAgNiA2IDAgMCAwIDUuNzggNmg2LjgxbC0zLjMtMy4zWk01LjMyIDEyaDQuODNhLjUuNSAwIDAgMSAuNDMuNzVMOC43NSAxNmgxLjVjLjY0IDAgLjk5Ljc2LjU2IDEuMjRsLTQuODIgNS41MWMtLjUuNTgtMS40NS4wOS0xLjI2LS42Nkw1LjUgMTloLTNhLjUuNSAwIDAgMS0uNDUtLjcxbDIuODItNmEuNS41IDAgMCAxIC40NS0uMjlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93bkxpZ2h0bmluZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmREb3duTGlnaHRuaW5nMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTkuNTkgOS41LTIuOTctMi45NmEuNzUuNzUgMCAwIDEgLjk4LTEuMTRsLjA4LjA4IDQuMjUgNC4yNGMuMjYuMjcuMjkuNjguMDcuOThsLS4wNy4wOC00LjI1IDQuMjRhLjc1Ljc1IDAgMCAxLTEuMTMtLjk3bC4wNy0uMDlMMTkuNiAxMWgtNS43YTcuNzUgNy43NSAwIDAgMS03Ljc0LTcuNXYtLjI1YS43NS43NSAwIDEgMSAxLjUgMCA2LjI1IDYuMjUgMCAwIDAgNi4wMiA2LjI1SDE5LjU5Wk01LjMyIDEyaDQuODNhLjUuNSAwIDAgMSAuNDMuNzVMOC43NSAxNmgxLjVjLjY0IDAgLjk5Ljc2LjU2IDEuMjRsLTQuODIgNS41MWMtLjUuNTgtMS40NS4wOS0xLjI2LS42Nkw1LjUgMTloLTNhLjUuNSAwIDAgMS0uNDUtLjcxbDIuODItNmEuNS41IDAgMCAxIC40NS0uMjlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93blBlcnNvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Rm9yd2FyZERvd25QZXJzb24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzLjQzIDQuNzQgMTUuNyA3aC0zLjk1Yy0yLjgtLjEtNC40OS0xLjYyLTQuNDktMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2LjIxQzUuODcgNi40MiA4LjM1IDguNSAxMiA4LjVoMy42OWwtMi4yNiAyLjI2LS4wNy4wOGEuNzUuNzUgMCAwIDAgMS4xMy45OGwzLjU0LTMuNTRhLjc1Ljc1IDAgMCAwIC4wOS0uMWwuMDMtLjA2LjA1LS4xLjAzLS4xLjAyLS4xVjcuNjhsLS4wMS0uMDYtLjAyLS4wNy0uMDMtLjA5LS4wNS0uMS0uMDQtLjA1LS4wNy0uMDgtMy41NC0zLjU0LS4wOC0uMDdhLjc1Ljc1IDAgMCAwLS45OCAxLjEzWk03LjUgMTFhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk05IDE1LjVDOSAxNi43NCA4IDE4IDUuNSAxOFMyIDE2Ljc1IDIgMTUuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Rm9yd2FyZERvd25QZXJzb24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkRG93blBlcnNvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEzLjYxIDQuMzIgMTYuMyA3aC00LjU1QzguOCA2LjkgNyA1LjI3IDcgM2EuNS41IDAgMCAwLTEgMHYuMkM2LjExIDYuMDMgOC40OCA4IDEyIDhoNC4zbC0yLjY5IDIuNjgtLjA2LjA3YS41LjUgMCAwIDAgLjc3LjY0bDMuNTUtMy41NS4wNS0uMDcuMDQtLjA4LjAyLS4wNi4wMi0uMDl2LS4wNi4wMmEuNS41IDAgMCAwLS4wMS0uMXYtLjAzbC0uMDMtLjA2LS4wMy0uMDYtLjA1LS4wNy0zLjU2LTMuNTctLjA3LS4wNmEuNS41IDAgMCAwLS42NC43N1pNNy41IDExYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpNOSAxNS41QzkgMTYuNzQgOCAxOCA1LjUgMThTMiAxNi43NSAyIDE1LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ZvcndhcmREb3duUGVyc29uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dGb3J3YXJkRG93blBlcnNvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTYuMyA1LjdhMSAxIDAgMSAxIDEuNDEtMS40bDUgNWExIDEgMCAwIDEgMCAxLjRsLTUgNWExIDEgMCAxIDEtMS40MS0xLjRsMy4yOS0zLjNIMTNhOCA4IDAgMCAxLTgtNy43NVYzYTEgMSAwIDAgMSAyIDAgNiA2IDAgMCAwIDUuNzggNmg2LjgxbC0zLjMtMy4zWk05IDEzLjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgNS4zOEMxMSAyMC40MyA5LjcxIDIyIDYuNSAyMlMyIDIwLjQ0IDIgMTguODd2LS4xQzIgMTcuOCAyLjggMTcgMy43NyAxN2g1LjQ2Yy45OCAwIDEuNzcuOCAxLjc3IDEuNzd2LjFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dGb3J3YXJkRG93blBlcnNvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ZvcndhcmREb3duUGVyc29uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTkuNjkgOS41LTIuOTYtMi45NmEuNzUuNzUgMCAwIDEgLjk3LTEuMTRsLjA5LjA4IDQuMjQgNC4yNGMuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4LTQuMjQgNC4yNGEuNzUuNzUgMCAwIDEtMS4xNC0uOTdsLjA4LS4wOUwxOS42OSAxMUgxNGE3Ljc1IDcuNzUgMCAwIDEtNy43NS03LjV2LS4yNWEuNzUuNzUgMCAwIDEgMS41IDAgNi4yNSA2LjI1IDAgMCAwIDYuMDIgNi4yNUgxOS43Wk05IDEzLjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgNS4zOEMxMSAyMC40MyA5LjcxIDIyIDYuNSAyMlMyIDIwLjQ0IDIgMTguODh2LS4xYzAtLjk5LjgtMS43OCAxLjc3LTEuNzhoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va0Rvd25MZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93bkxlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDNjMS4xOCAwIDIuMTMuNDEgMi43OSAxLjA5LjY1LjY2Ljk2IDEuNTQuOTYgMi40MSAwIC44Ny0uMzEgMS43NS0uOTYgMi40MUEzLjc4IDMuNzggMCAwIDEgOC43NSAxMUg1LjU2bC43Mi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0yLTJhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLTJhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNmwtLjcyLjcyaDMuMTljLjgyIDAgMS4zNy0uMjggMS43MS0uNjMuMzUtLjM3LjU0LS44Ni41NC0xLjM3IDAtLjUtLjE5LTEtLjU0LTEuMzctLjM0LS4zNS0uOS0uNjMtMS43MS0uNjNoLTNBLjc1Ljc1IDAgMCAxIDUgNC43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tEb3duTGVmdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUgNC41YzAtLjI4LjIyLS41LjUtLjVoM2EzLjQgMy40IDAgMCAxIDIuNjIgMS4xYy42LjY3Ljg4IDEuNTQuODggMi40YTMuNiAzLjYgMCAwIDEtLjg4IDIuNEEzLjQgMy40IDAgMCAxIDguNSAxMUg0LjdsMS4xNSAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJhLjUuNSAwIDEgMSAuNy43TDQuNzEgMTBIOC41YTIuNCAyLjQgMCAwIDAgMS44OC0uNzdjLjQtLjQ2LjYyLTEuMDkuNjItMS43M2EyLjYgMi42IDAgMCAwLS42Mi0xLjczQTIuNCAyLjQgMCAwIDAgOC41IDVoLTNhLjUuNSAwIDAgMS0uNS0uNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va0Rvd25MZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjVjMS41OSAwIDIuNy42MiAzLjUzIDEuNTlDMTUuNiA2LjU0IDE2IDcuNzkgMTYgOWMwIDEuMjItLjMgMi40Ni0xLjEyIDMuNDFBNC42MiA0LjYyIDAgMCAxIDExLjI1IDE0SDYuNTZsMi4yMiAyLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTMuNS0zLjVhLjc1Ljc1IDAgMCAxIC4wMi0xLjA4bDMuNS0zLjI1YS43NS43NSAwIDAgMSAxLjAyIDEuMWwtMi4xIDEuOTVoNC41OWMxLjE2IDAgMS44Ni0uNDQgMi40LTEuMDcuNTUtLjY0Ljg1LTEuNTIuODUtMi40MyAwLS45LS4zLTEuNzktLjg1LTIuNDNhMi45MiAyLjkyIDAgMCAwLTIuNC0xLjA3aC00LjVBLjc1Ljc1IDAgMCAxIDYgNC43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duTGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tEb3duTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgNC41YzAtLjI4LjIyLS41LjUtLjVIMTFjMS42NCAwIDIuOS42MiAzLjc1IDEuNTdDMTUuNTkgNi41MiAxNiA3Ljc3IDE2IDlzLS40MSAyLjQ4LTEuMjUgMy40M0E0Ljg1IDQuODUgMCAwIDEgMTEgMTRINS43bDIuNjUgMi42NWEuNS41IDAgMCAxLS43LjdsLTMuNS0zLjVhLjUuNSAwIDAgMSAwLS43bDMuNS0zLjVhLjUuNSAwIDEgMSAuNy43TDUuNzEgMTNIMTFjMS4zNiAwIDIuMzUtLjUgMy0xLjI0LjY2LS43NCAxLTEuNzQgMS0yLjc2IDAtMS4wMi0uMzQtMi4wMi0xLTIuNzZBMy44NiAzLjg2IDAgMCAwIDExIDVINi41YS41LjUgMCAwIDEtLjUtLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93bkxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tEb3duTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNyA1YTEgMSAwIDAgMSAxLTFoNWMyLjI0IDAgNC4wMS43OCA1LjIyIDIuMDJBNi40MiA2LjQyIDAgMCAxIDIwIDEwLjVjMCAxLjYxLS41OSAzLjI0LTEuNzggNC40OEE3LjA2IDcuMDYgMCAwIDEgMTMgMTdIOC40MWwyLjA1IDIuMDRhMSAxIDAgMCAxLTEuNDIgMS40Mkw1LjMgMTYuN2ExIDEgMCAwIDEgMC0xLjQybDMuNzUtMy43NWExIDEgMCAwIDEgMS40MiAxLjQyTDguNCAxNUgxM2MxLjc2IDAgMi45OS0uNiAzLjc4LTEuNDFBNC40MiA0LjQyIDAgMCAwIDE4IDEwLjVjMC0xLjE0LS40MS0yLjI2LTEuMjItMy4wOUE1LjA3IDUuMDcgMCAwIDAgMTMgNkg4YTEgMSAwIDAgMS0xLTFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93bkxlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93bkxlZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NUgxNGMxLjk4IDAgMy41LjgyIDQuNTIgMi4wN0E3LjA1IDcuMDUgMCAwIDEgMjAgMTAuNWMwIDEuNTgtLjQ4IDMuMi0xLjQ4IDQuNDNBNS42MyA1LjYzIDAgMCAxIDE0IDE3SDcuNTZsMi40NyAyLjQ3YS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTMuNzUtMy43NWEuNzUuNzUgMCAwIDEgMC0xLjA2bDMuNzUtMy43NWEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2TDcuNTYgMTUuNUgxNGMxLjUyIDAgMi42Mi0uNjEgMy4zNi0xLjUyYTUuNTYgNS41NiAwIDAgMCAxLjE0LTMuNDhjMC0xLjMtLjQtMi41Ni0xLjE0LTMuNDhBNC4xMyA0LjEzIDAgMCAwIDE0IDUuNUg3Ljc1QS43NS43NSAwIDAgMSA3IDQuNzVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93bkxlZnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tEb3duTGVmdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjEuMjIgOC4wMkE3LjA2IDcuMDYgMCAwIDAgMTYgNkg5YTEgMSAwIDEgMCAwIDJoN2MxLjc2IDAgMi45OS42IDMuNzggMS40MS44LjgzIDEuMjIgMS45NSAxLjIyIDMuMDlzLS40MSAyLjI2LTEuMjIgMy4wOUE1LjA3IDUuMDcgMCAwIDEgMTYgMTdIOC40MWwzLjMtMy4zYTEgMSAwIDEgMC0xLjQyLTEuNGwtNSA1YTEgMSAwIDAgMCAwIDEuNGw1IDVhMSAxIDAgMCAwIDEuNDItMS40TDguNCAxOUgxNmMyLjI0IDAgNC4wMS0uNzggNS4yMi0yLjAyQTYuNDIgNi40MiAwIDAgMCAyMyAxMi41YzAtMS42MS0uNTktMy4yNC0xLjc4LTQuNDhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93bkxlZnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93bkxlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk04IDYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3YzIuMzQgMCA0LjI2Ljc4IDUuNSAyLjAyQTYuMjIgNi4yMiAwIDAgMSAyMyAxMi41YzAgMS42Mi0uNTIgMy4yNi0xLjc1IDQuNDhhNy42OSA3LjY5IDAgMCAxLTUuNSAyLjAySDcuNTZsMy4yMiAzLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTQuNS00LjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LjUtNC41YS43NS43NSAwIDEgMSAxLjA2IDEuMDZMNy41NiAxNy41aDguMTljMS45OSAwIDMuNDMtLjY2IDQuMzUtMS41OGE0LjgxIDQuODEgMCAwIDAgMS40LTMuNDJjMC0xLjI1LS40Ny0yLjUtMS40LTMuNDJhNS45NyA1Ljk3IDAgMCAwLTQuMzUtMS41OGgtN0EuNzUuNzUgMCAwIDEgOCA2Ljc1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va0Rvd25SaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va0Rvd25SaWdodDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC40NiA1LjA5QTMuNzggMy43OCAwIDAgMSA3LjI1IDRoM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTNjLS44MiAwLTEuMzcuMjgtMS43MS42M0M1LjE5IDYuNSA1IDcgNSA3LjVjMCAuNS4xOSAxIC41NCAxLjM3LjM0LjM1LjkuNjMgMS43MS42M2gzLjE5bC0uNzItLjcyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMiAyYy4zLjMuMy43NyAwIDEuMDZsLTIgMmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bC43Mi0uNzJINy4yNWEzLjc4IDMuNzggMCAwIDEtMi43OS0xLjA5QTMuNDYgMy40NiAwIDAgMSAzLjUgNy41YzAtLjg3LjMxLTEuNzUuOTYtMi40MVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duUmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93blJpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC44OCA1LjFBMy40IDMuNCAwIDAgMSA3LjUgNGgzYS41LjUgMCAwIDEgMCAxaC0zYTIuNCAyLjQgMCAwIDAtMS44OC43N0EyLjYgMi42IDAgMCAwIDUgNy41YzAgLjY0LjIyIDEuMjcuNjIgMS43My40LjQ1IDEuMDIuNzcgMS44OC43N2gzLjhsLTEuMTUtMS4xNWEuNS41IDAgMSAxIC43LS43bDIgMmMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0wxMS4yOSAxMUg3LjVhMy40IDMuNCAwIDAgMS0yLjYyLTEuMUEzLjYgMy42IDAgMCAxIDQgNy41YzAtLjg2LjI4LTEuNzMuODgtMi40WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va0Rvd25SaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va0Rvd25SaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOSAxNGMuMDYgMC0uMDYgMCAwIDBoNC42NWwtMi4yNyAyLjI3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMy4zNS0zLjM1YS43NS43NSAwIDAgMCAuMjEtLjY0Ljc1Ljc1IDAgMCAwLS4yMS0uNDVsLTMuMjUtMy4yNGEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDEuOCAxLjc5SDlhMy41IDMuNSAwIDEgMSAwLTdoNC4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIOWE1IDUgMCAwIDAgMCAxMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tEb3duUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93blJpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA5YTUgNSAwIDAgMSA1LTVoNC41YS41LjUgMCAwIDEgMCAxSDlhNCA0IDAgMSAwIDAgOGg1LjNsLTIuNy0yLjdhLjUuNSAwIDEgMSAuNy0uN2wzLjU0IDMuNTNhLjUuNSAwIDAgMSAuMTMuNS41LjUgMCAwIDEtLjE0LjI1TDEyLjMgMTcuNGEuNS41IDAgMCAxLS43MS0uN2wyLjctMi43MUg5YTUgNSAwIDAgMS01LTVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93blJpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93blJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC41IDZIMTZhMSAxIDAgMSAwIDAtMmgtNS41YTYuNSA2LjUgMCAwIDAgMCAxM2g1LjE0bC0xLjkzIDEuOTNhMSAxIDAgMCAwIDEuNDEgMS40MmwzLjUzLTMuNTNhMSAxIDAgMCAwIC4yMS0uMzEgMSAxIDAgMCAwLS4xOC0xLjI0bC0uMDMtLjAzLTMuNTMtMy41M2ExIDEgMCAwIDAtMS40MSAxLjQxTDE1LjU5IDE1SDEwLjVhNC41IDQuNSAwIDEgMSAwLTlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93blJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va0Rvd25SaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjUgNS41SDE2QS43NS43NSAwIDAgMCAxNiA0aC01LjVhNi41IDYuNSAwIDAgMCAwIDEzaDUuOTVsLTIuNjIgMi42MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDMuODktMy44OGMuMS0uMS4xNi0uMjMuMi0uMzVhLjc1Ljc1IDAgMCAwLS4yMS0uNzRsLTMuODgtMy44OGEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIuNiAyLjYxSDEwLjVhNSA1IDAgMCAxIDAtMTBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93blJpZ2h0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rRG93blJpZ2h0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk02Ljc4IDguMDJBNy4wNiA3LjA2IDAgMCAxIDEyIDZoN2ExIDEgMCAxIDEgMCAyaC03Yy0xLjc2IDAtMi45OS42LTMuNzggMS40MUE0LjQyIDQuNDIgMCAwIDAgNyAxMi41YzAgMS4xNC40MSAyLjI2IDEuMjIgMy4wOS44LjgxIDIuMDIgMS40MSAzLjc4IDEuNDFoNy41OWwtMy4zLTMuM2ExIDEgMCAxIDEgMS40Mi0xLjRsNSA1YTEgMSAwIDAgMSAwIDEuNGwtNSA1YTEgMSAwIDAgMS0xLjQyLTEuNGwzLjMtMy4zSDEyYTcuMDYgNy4wNiAwIDAgMS01LjIyLTIuMDJBNi40MiA2LjQyIDAgMCAxIDUgMTIuNWMwLTEuNjEuNTktMy4yNCAxLjc4LTQuNDhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rRG93blJpZ2h0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va0Rvd25SaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuODQgOC4wMkE3LjQ2IDcuNDYgMCAwIDEgMTIuMjUgNmg3YS43NS43NSAwIDAgMSAwIDEuNWgtN2MtMS45OSAwLTMuNDMuNjYtNC4zNSAxLjU4YTQuODEgNC44MSAwIDAgMC0xLjQgMy40MmMwIDEuMjUuNDcgMi41IDEuNCAzLjQyYTUuOTcgNS45NyAwIDAgMCA0LjM1IDEuNThoOC4xOWwtMy4yMi0zLjIyYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsNC41IDQuNWEuNzUuNzUgMCAwIDEgMCAxLjA2bC00LjUgNC41YS43NS43NSAwIDEgMS0xLjA2LTEuMDZMMjAuNDQgMTloLTguMTlhNy40NiA3LjQ2IDAgMCAxLTUuNDEtMi4wMkE2LjMxIDYuMzEgMCAwIDEgNSAxMi41YzAtMS42Mi42LTMuMjYgMS44NC00LjQ4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwTGVmdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwTGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNSAxMS4yNWMwIC40MS4zNC43NS43NS43NWgzYzEuMTggMCAyLjEzLS40MSAyLjc5LTEuMDkuNjUtLjY2Ljk2LTEuNTQuOTYtMi40MSAwLS44Ny0uMzEtMS43NS0uOTYtMi40MUEzLjc4IDMuNzggMCAwIDAgOC43NSA1SDUuNTZsLjcyLS43MmEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yIDJjLS4zLjMtLjMuNzcgMCAxLjA2bDIgMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2bC0uNzItLjcyaDMuMTljLjgyIDAgMS4zNy4yOCAxLjcxLjYzLjM1LjM3LjU0Ljg2LjU0IDEuMzcgMCAuNS0uMTkgMS0uNTQgMS4zNy0uMzQuMzUtLjkuNjMtMS43MS42M2gtM2EuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcExlZnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDExLjVjMCAuMjguMjIuNS41LjVoM2EzLjQgMy40IDAgMCAwIDIuNjItMS4xYy42LS42Ny44OC0xLjU0Ljg4LTIuNGEzLjYgMy42IDAgMCAwLS44OC0yLjRBMy40IDMuNCAwIDAgMCA4LjUgNUg0LjdsMS4xNS0xLjE1YS41LjUgMCAxIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAxIDAgLjctLjdMNC43MSA2SDguNWMuODYgMCAxLjQ4LjMyIDEuODguNzcuNC40Ni42MiAxLjA5LjYyIDEuNzNhMi42IDIuNiAwIDAgMS0uNjIgMS43M0EyLjQgMi40IDAgMCAxIDguNSAxMWgtM2EuNS41IDAgMCAwLS41LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rVXBMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDE1LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDQuNWE0LjQgNC40IDAgMCAwIDMuNTMtMS41OUE1LjI0IDUuMjQgMCAwIDAgMTYgMTFjMC0xLjIyLS4zLTIuNDYtMS4xMi0zLjQxQTQuNjIgNC42MiAwIDAgMCAxMS4yNSA2SDYuNTZsMi4yMi0yLjIyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTMuNSAzLjVhLjc1Ljc1IDAgMCAwIC4wMiAxLjA4bDMuNSAzLjI1YS43NS43NSAwIDAgMCAxLjAyLTEuMUw2LjY2IDcuNWg0LjU5YzEuMTYgMCAxLjg2LjQ0IDIuNCAxLjA3LjU1LjY0Ljg1IDEuNTIuODUgMi40MyAwIC45LS4zIDEuNzktLjg1IDIuNDNhMi45MiAyLjkyIDAgMCAxLTIuNCAxLjA3aC00LjVhLjc1Ljc1IDAgMCAwLS43NS43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tVcExlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rVXBMZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAxNS41YzAgLjI4LjIyLjUuNS41SDExYzEuNjQgMCAyLjktLjYyIDMuNzUtMS41N0E1LjE2IDUuMTYgMCAwIDAgMTYgMTFjMC0xLjIzLS40MS0yLjQ4LTEuMjUtMy40M0E0Ljg1IDQuODUgMCAwIDAgMTEgNkg1LjdsMi42NS0yLjY1YS41LjUgMCAxIDAtLjctLjdsLTMuNSAzLjVhLjUuNSAwIDAgMCAwIC43bDMuNSAzLjVhLjUuNSAwIDAgMCAuNy0uN0w1LjcxIDdIMTFjMS4zNiAwIDIuMzUuNSAzIDEuMjQuNjYuNzQgMSAxLjc0IDEgMi43NiAwIDEuMDItLjM0IDIuMDItMSAyLjc2QTMuODYgMy44NiAwIDAgMSAxMSAxNUg2LjVhLjUuNSAwIDAgMC0uNS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwTGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNyAxOWExIDEgMCAwIDAgMSAxaDVjMi4yNCAwIDQuMDEtLjc4IDUuMjItMi4wMkE2LjQyIDYuNDIgMCAwIDAgMjAgMTMuNWMwLTEuNjEtLjU5LTMuMjQtMS43OC00LjQ4QTcuMDYgNy4wNiAwIDAgMCAxMyA3SDguNDFsMi4wNS0yLjA0YTEgMSAwIDAgMC0xLjQyLTEuNDJMNS4zIDcuM2ExIDEgMCAwIDAgMCAxLjQybDMuNzUgMy43NWExIDEgMCAwIDAgMS40Mi0xLjQyTDguNCA5SDEzYzEuNzYgMCAyLjk5LjYgMy43OCAxLjQxLjguODMgMS4yMiAxLjk1IDEuMjIgMy4wOXMtLjQxIDIuMjYtMS4yMiAzLjA5QTUuMDcgNS4wNyAwIDAgMSAxMyAxOEg4YTEgMSAwIDAgMC0xIDFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwTGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcgMTkuMjVjMCAuNDEuMzQuNzUuNzUuNzVIMTRjMS45OCAwIDMuNS0uODIgNC41Mi0yLjA3QTcuMDUgNy4wNSAwIDAgMCAyMCAxMy41YzAtMS41OC0uNDgtMy4yLTEuNDgtNC40M0E1LjYzIDUuNjMgMCAwIDAgMTQgN0g3LjU2bDIuNDctMi40N2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDUuMjIgNy4yMmMtLjMuMy0uMy43NyAwIDEuMDZsMy43NSAzLjc1YS43NS43NSAwIDEgMCAxLjA2LTEuMDZMNy41NiA4LjVIMTRjMS41MiAwIDIuNjIuNjEgMy4zNiAxLjUyYTUuNTYgNS41NiAwIDAgMSAxLjE0IDMuNDhjMCAxLjMtLjQgMi41Ni0xLjE0IDMuNDhBNC4xMyA0LjEzIDAgMCAxIDE0IDE4LjVINy43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwTGVmdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwTGVmdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjEuMjIgMTkuOThBNy4wNiA3LjA2IDAgMCAxIDE2IDIySDlhMSAxIDAgMSAxIDAtMmg3YzEuNzYgMCAyLjk5LS42IDMuNzgtMS40MUE0LjQyIDQuNDIgMCAwIDAgMjEgMTUuNWMwLTEuMTQtLjQxLTIuMjYtMS4yMi0zLjA5QTUuMDcgNS4wNyAwIDAgMCAxNiAxMUg4LjQxbDMuMyAzLjNhMSAxIDAgMSAxLTEuNDIgMS40bC01LTVhMSAxIDAgMCAxIDAtMS40bDUtNWExIDEgMCAxIDEgMS40MiAxLjRMOC40IDlIMTZjMi4yNCAwIDQuMDEuNzggNS4yMiAyLjAyQTYuNDIgNi40MiAwIDAgMSAyMyAxNS41YzAgMS42MS0uNTkgMy4yNC0xLjc4IDQuNDhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBMZWZ0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwTGVmdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTggMjEuMjVjMCAuNDEuMzQuNzUuNzUuNzVoN2MyLjM0IDAgNC4yNi0uNzggNS41LTIuMDJBNi4yMiA2LjIyIDAgMCAwIDIzIDE1LjVjMC0xLjYyLS41Mi0zLjI2LTEuNzUtNC40OEE3LjY5IDcuNjkgMCAwIDAgMTUuNzUgOUg3LjU2bDMuMjItMy4yMmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC00LjUgNC41YS43NS43NSAwIDAgMCAwIDEuMDZsNC41IDQuNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2TDcuNTYgMTAuNWg4LjE5YzEuOTkgMCAzLjQzLjY2IDQuMzUgMS41OC45My45MyAxLjQgMi4xNyAxLjQgMy40MnMtLjQ3IDIuNS0xLjQgMy40MmE1Ljk3IDUuOTcgMCAwIDEtNC4zNSAxLjU4aC03YS43NS43NSAwIDAgMC0uNzUuNzVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBMZWZ0MzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcExlZnQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTIuODUgNS4xNWMuMi4yLjIuNSAwIC43TDcuNzEgMTFIMTlhNyA3IDAgMSAxIDAgMTRIOS41YS41LjUgMCAwIDEgMC0xSDE5YTYgNiAwIDAgMCAwLTEySDcuN2w1LjE1IDUuMTVhLjUuNSAwIDAgMS0uNy43bC02LTZhLjUuNSAwIDAgMSAwLS43bDYtNmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwUmlnaHQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcFJpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjQ2IDEwLjkxYy42Ni42OCAxLjYgMS4wOSAyLjc5IDEuMDloM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNjLS44MiAwLTEuMzctLjI4LTEuNzEtLjYzQTEuOTYgMS45NiAwIDAgMSA1IDguNWMwLS41LjE5LTEgLjU0LTEuMzcuMzQtLjM1LjktLjYzIDEuNzEtLjYzaDMuMTlsLS43Mi43MmEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDItMmMuMy0uMy4zLS43NyAwLTEuMDZsLTItMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bC43Mi43Mkg3LjI1Yy0xLjE4IDAtMi4xMy40MS0yLjc5IDEuMDlBMy40NiAzLjQ2IDAgMCAwIDMuNSA4LjVjMCAuODcuMzEgMS43NS45NiAyLjQxWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwUmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rVXBSaWdodDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuODggMTAuOUEzLjQgMy40IDAgMCAwIDcuNSAxMmgzYS41LjUgMCAwIDAgMC0xaC0zYTIuNCAyLjQgMCAwIDEtMS44OC0uNzdBMi42IDIuNiAwIDAgMSA1IDguNWMwLS42NC4yMi0xLjI3LjYyLTEuNzNBMi40IDIuNCAwIDAgMSA3LjUgNmgzLjhsLTEuMTUgMS4xNWEuNS41IDAgMSAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAxIDAtLjcuN0wxMS4yOSA1SDcuNWEzLjQgMy40IDAgMCAwLTIuNjIgMS4xQTMuNiAzLjYgMCAwIDAgNCA4LjVjMCAuODYuMjggMS43My44OCAyLjRaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkgNmMuMDYgMC0uMDYgMCAwIDBoNC42NWwtMi4yNy0yLjI3YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMy4zNSAzLjM1Yy4xNy4xOC4yNC40Mi4yMS42NGEuNzUuNzUgMCAwIDEtLjIxLjQ1bC0zLjI1IDMuMjRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjgtMS43OUg5YTMuNSAzLjUgMCAxIDAgMCA3aDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDlBNSA1IDAgMCAxIDkgNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tVcFJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SG9va1VwUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDExYTUgNSAwIDAgMCA1IDVoNC41YS41LjUgMCAwIDAgMC0xSDlhNCA0IDAgMCAxIDAtOGg1LjNsLTIuNyAyLjdhLjUuNSAwIDEgMCAuNy43bDMuNTQtMy41M2EuNS41IDAgMCAwIC4xMy0uNS41LjUgMCAwIDAtLjE0LS4yNUwxMi4zIDIuNmEuNS41IDAgMSAwLS43MS43TDE0LjI5IDZIOWE1IDUgMCAwIDAtNSA1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SG9va1VwUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcFJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC41IDE4SDE2YTEgMSAwIDEgMSAwIDJoLTUuNWE2LjUgNi41IDAgMSAxIDAtMTNoNS4xNGwtMS45My0xLjkzYTEgMSAwIDAgMSAxLjQxLTEuNDJsMy41MyAzLjUzYy4xLjEuMTYuMi4yMS4zMWExIDEgMCAwIDEtLjE4IDEuMjRsLS4wMy4wMy0zLjUzIDMuNTNhMSAxIDAgMCAxLTEuNDEtMS40MUwxNS41OSA5SDEwLjVhNC41IDQuNSAwIDEgMCAwIDlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcFJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuNSAxOC41aDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDEwLjVhNi41IDYuNSAwIDEgMSAwLTEzaDUuOTVsLTIuNjItMi42MmEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDMuODkgMy44OGMuMS4xLjE2LjIzLjIuMzVhLjc1Ljc1IDAgMCAxLS4yMS43NGwtMy44OCAzLjg4YS43NS43NSAwIDEgMS0xLjA2LTEuMDZsMi42LTIuNjFIMTAuNWE1IDUgMCAwIDAgMCAxMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0hvb2tVcFJpZ2h0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dIb29rVXBSaWdodDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNi43OCAxOS45OEE3LjA2IDcuMDYgMCAwIDAgMTIgMjJoN2ExIDEgMCAxIDAgMC0yaC03Yy0xLjc2IDAtMi45OS0uNi0zLjc4LTEuNDFBNC40MiA0LjQyIDAgMCAxIDcgMTUuNWMwLTEuMTQuNDEtMi4yNiAxLjIyLTMuMDlBNS4wNyA1LjA3IDAgMCAxIDEyIDExaDcuNTlsLTMuMyAzLjNhMSAxIDAgMSAwIDEuNDIgMS40bDUtNWExIDEgMCAwIDAgMC0xLjRsLTUtNWExIDEgMCAxIDAtMS40MiAxLjRMMTkuNiA5SDEyYy0yLjI0IDAtNC4wMS43OC01LjIyIDIuMDJBNi40MiA2LjQyIDAgMCAwIDUgMTUuNWMwIDEuNjEuNTkgMy4yNCAxLjc4IDQuNDhaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dIb29rVXBSaWdodDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0hvb2tVcFJpZ2h0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNi44NCAxOS45OEE3LjQ2IDcuNDYgMCAwIDAgMTIuMjUgMjJoN2EuNzUuNzUgMCAwIDAgMC0xLjVoLTdhNS45NyA1Ljk3IDAgMCAxLTQuMzUtMS41OCA0LjgxIDQuODEgMCAwIDEtMS40LTMuNDJjMC0xLjI1LjQ3LTIuNSAxLjQtMy40MmE1Ljk3IDUuOTcgMCAwIDEgNC4zNS0xLjU4aDguMTlsLTMuMjIgMy4yMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQuNS00LjVhLjc1Ljc1IDAgMCAwIDAtMS4wNmwtNC41LTQuNWEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDIwLjQ0IDloLTguMTljLTIuMzQgMC00LjE3Ljc4LTUuNDEgMi4wMkE2LjMxIDYuMzEgMCAwIDAgNSAxNS41YzAgMS42Mi42IDMuMjYgMS44NCA0LjQ4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SW1wb3J0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dJbXBvcnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcuMjIgNC4yMmMuMy0uMy43Ny0uMyAxLjA2IDBsMy41IDMuNWMuMy4zLjMuNzcgMCAxLjA2bC0zLjUgMy41YS43NS43NSAwIDAgMS0xLjA2LTEuMDZMOS40NCA5SDEuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDcuNjlMNy4yMiA1LjI4YS43NS43NSAwIDAgMSAwLTEuMDZabTcuMjgtLjQ3YS43NS43NSAwIDAgMC0xLjUgMHY4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi04LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ltcG9ydDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ltcG9ydDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzIDEyLjV2LTlhLjUuNSAwIDAgMSAxLS4wOXY5LjA5YS41LjUgMCAwIDEtMSAuMDl2LS4wOVpNMSA4LjA5VjhhLjUuNSAwIDAgMSAuNDEtLjVoOC44OUw3LjYgNC44MmEuNS41IDAgMCAxLS4wNi0uNjRsLjA2LS4wN2EuNS41IDAgMCAxIC42NC0uMDZsLjA3LjA2IDMuNTMgMy41NGEuNS41IDAgMCAxIC4wNi42M2wtLjA2LjA3LTMuNTMgMy41NGEuNS41IDAgMCAxLS43Ny0uNjRsLjA2LS4wN0wxMC4zIDguNUgxLjVhLjUuNSAwIDAgMS0uNS0uNDFWOHYuMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0ltcG9ydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SW1wb3J0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNy4yNSAzLjc1Yy40MSAwIC43NS4zNC43NS43NXYxMWEuNzUuNzUgMCAwIDEtMS41IDB2LTExYzAtLjQxLjM0LS43NS43NS0uNzVaTTIgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC4xOWwtMi43Mi0yLjcyYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsNCA0YS43Ny43NyAwIDAgMSAuMTUuMjIuNzUuNzUgMCAwIDEtLjE1Ljg0bC00IDRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwyLjcyLTIuNzJIMi43NUEuNzUuNzUgMCAwIDEgMiAxMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd0ltcG9ydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ltcG9ydDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjUgNGMuMjggMCAuNS4yMi41LjV2MTFhLjUuNSAwIDAgMS0xIDB2LTExYzAtLjI4LjIyLS41LjUtLjVaTTIgMTBjMC0uMjguMjItLjUuNS0uNWgxMC44bC0zLjE1LTMuMTVhLjUuNSAwIDAgMSAuNy0uN2w0IDRBLjUuNSAwIDAgMSAxNSAxMGEuNS41IDAgMCAxLS4xNS4zNWwtNCA0YS41LjUgMCAwIDEtLjctLjdsMy4xNC0zLjE1SDIuNUEuNS41IDAgMCAxIDIgMTBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dJbXBvcnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0ltcG9ydDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEuMjUgNC41Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjEzLjVhLjc1Ljc1IDAgMCAxLTEuNS4xVjUuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTkuMDQgMS44OS4wOC0uMWExIDEgMCAwIDEgMS4zMi0uMDhsLjEuMDggNSA1YTEgMSAwIDAgMSAuMDggMS4zMmwtLjA5LjEtNSA1YTEgMSAwIDAgMS0xLjUtMS4zMmwuMS0uMUwxNS41NyAxM0gzYTEgMSAwIDAgMS0xLS44OFYxMmExIDEgMCAwIDEgLjg4LTFoMTIuN0wxMi4zIDcuN2ExIDEgMCAwIDEtLjA4LTEuMzFsLjA4LS4xLS4wOC4xWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93SW1wb3J0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93SW1wb3J0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEuMjUgNC41Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjEzYS43NS43NSAwIDAgMS0xLjUuMVY1LjI2YzAtLjQxLjM0LS43NS43NS0uNzVabS04LjYgMS44LjA3LS4wOGEuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDcgNSA1Yy4yNi4yNi4yOS42OC4wNy45N2wtLjA3LjA5LTUgNWEuNzUuNzUgMCAwIDEtMS4xMy0uOTdsLjA3LS4wOSAzLjcxLTMuNzJIMi43NWEuNzUuNzUgMCAwIDEtLjc0LS42NGwtLjAxLS4xYzAtLjM4LjI4LS43LjY1LS43NUgxNi40NWwtMy43My0zLjczYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDgtLjA3LjA4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93Sm9pbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93Sm9pbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDJjLjI4IDAgLjUuMjIuNS41QzUgNi4xMiA3Ljg4IDkgMTEuNSA5aC44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMMTIuMjkgMTBoLS43OUE2LjQ2IDYuNDYgMCAwIDAgNSAxNi41YS41LjUgMCAwIDEtMSAwIDcuNDUgNy40NSAwIDAgMSA0Ljc4LTdBNy40NSA3LjQ1IDAgMCAxIDQgMi41YzAtLjI4LjIyLS41LjUtLjVabTUuNTMgOS4yQTUuNDMgNS40MyAwIDAgMCA3IDEzLjN2LjdjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDlhMiAyIDAgMCAwLTIgMnYuN2E1LjQzIDUuNDMgMCAwIDAgMy4wMyAyLjEgMS41IDEuNSAwIDAgMSAyLjUzLTEuMzZsMiAyYTEuNSAxLjUgMCAwIDEgMCAyLjEybC0yIDJhMS41IDEuNSAwIDAgMS0yLjUzLTEuMzdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0pvaW4yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dKb2luMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSAyLjVhLjUuNSAwIDAgMC0xIDAgNy40NSA3LjQ1IDAgMCAwIDQuNzggNyA3LjQ1IDcuNDUgMCAwIDAtNC43OCA3IC41LjUgMCAwIDAgMSAwYzAtMy42MiAyLjg4LTYuNSA2LjUtNi41aC44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTIuMjkgOWgtLjc5QTYuNDYgNi40NiAwIDAgMSA1IDIuNVpNOC41IDRhLjUuNSAwIDAgMCAwIDFIMTVjLjUyIDAgMSAuNDggMSAxdjdjMCAuNTItLjQ4IDEtMSAxSDguNWEuNS41IDAgMCAwIDAgMUgxNWMxLjA4IDAgMi0uOTIgMi0yVjZjMC0xLjA4LS45Mi0yLTItMkg4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnQxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd0xlZnQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTEwLjUgNmEuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjgxbDEuOTctMS45N2EuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDEuNDcgNS40N2MtLjMuMy0uMy43NyAwIDEuMDZsMy4yNSAzLjI1YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy44MSA2Ljc1aDUuOTRjLjQxIDAgLjc1LS4zNC43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnQxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMTAuNSA2YS41LjUgMCAwIDAtLjUtLjVIMy4ybDIuNjUtMi42NWEuNS41IDAgMSAwLS43LS43bC0zLjUgMy41YS41LjUgMCAwIDAgMCAuN2wzLjUgMy41YS41LjUgMCAwIDAgLjctLjdMMy4yMSA2LjVIMTBhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TGVmdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQgOGMwIC40MS0uMzQuNzUtLjc1Ljc1SDQuNDZsMy4yOSAyLjk0YS43NS43NSAwIDEgMS0xIDEuMTJMMiA4LjU2YS43NS43NSAwIDAgMSAwLTEuMTJMNi43NSAzLjJhLjc1Ljc1IDAgMSAxIDEgMS4xMkw0LjQ2IDcuMjVoOC43OWMuNDEgMCAuNzUuMzQuNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTMuNSA4LjVhLjUuNSAwIDAgMCAwLTFIMy44bDQuMDMtMy42M2EuNS41IDAgMSAwLS42Ni0uNzRsLTUgNC41YS41LjUgMCAwIDAgMCAuNzRsNSA0LjVhLjUuNSAwIDEgMCAuNjYtLjc0TDMuOCA4LjVoOS43WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjczIDE2LjhhLjc1Ljc1IDAgMCAwIDEuMDMtMS4xbC01LjI0LTQuOTVoMTIuNzNhLjc1Ljc1IDAgMCAwIDAtMS41SDQuNTJsNS4yNC00Ljk2QS43NS43NSAwIDEgMCA4LjczIDMuMkwyLjMxIDkuMjdhMSAxIDAgMCAwIDAgMS40Nmw2LjQyIDYuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4xNiAxNi44N2EuNS41IDAgMSAwIC42Ny0uNzRMMy42NyAxMC41SDE3LjVhLjUuNSAwIDAgMCAwLTFIMy42N2w2LjE2LTUuNjNhLjUuNSAwIDAgMC0uNjctLjc0TDIuMjQgOS40NGEuNzUuNzUgMCAwIDAgMCAxLjExbDYuOTIgNi4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMyAxOS43MmExIDEgMCAwIDAgMS40LTEuNDNMNi4zMyAxM0gyMGExIDEgMCAwIDAgMC0ySDYuMzNsNS4zNy01LjI4YTEgMSAwIDAgMC0xLjQtMS40MmwtNi45MyA2LjgyYy0uNS41LS41IDEuMyAwIDEuNzhsNi45MiA2LjgzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjczIDE5LjhhLjc1Ljc1IDAgMCAwIDEuMDQtMS4xbC02LjI1LTUuOTVoMTQuNzNhLjc1Ljc1IDAgMCAwIDAtMS41SDUuNTJsNi4yNS01Ljk1YS43NS43NSAwIDAgMC0xLjA0LTEuMWwtNy40MiA3LjA4YTEgMSAwIDAgMCAwIDEuNDRsNy40MiA3LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMi4zIDQuMjlhMSAxIDAgMCAxIDEuNCAxLjQyTDYuMzMgMTNIMjRhMSAxIDAgMSAxIDAgMkg2LjMzbDcuMzcgNy4yOWExIDEgMCAwIDEtMS40IDEuNDJsLTguOTMtOC44MmMtLjUtLjUtLjUtMS4zIDAtMS43OGw4LjkzLTguODJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTIuNzMgNC4yYS43NS43NSAwIDAgMSAxLjA0IDEuMUw1LjUgMTMuMjRoMTguNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDUuNWw4LjI3IDcuOTZhLjc1Ljc1IDAgMCAxLTEuMDQgMS4wOGwtOS40Mi05LjA3YTEgMSAwIDAgMSAwLTEuNDRsOS40Mi05LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yOSAxNmMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINy4yMWw3LjQ0IDcuNjNhMS4yNSAxLjI1IDAgMSAxLTEuOCAxLjc0bC05LjUtOS43NGExLjI1IDEuMjUgMCAwIDEgMC0xLjc2bDkuNS05Ljc0YTEuMjUgMS4yNSAwIDAgMSAxLjggMS43NEw3LjIgMTQuNzVoMjAuNTRjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd0xlZnQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjkgMTZhMSAxIDAgMCAxLTEgMUg2LjQxbDguMyA4LjNhMSAxIDAgMCAxLTEuNDIgMS40bC0xMC0xMGExIDEgMCAwIDEgMC0xLjRsMTAtMTBhMSAxIDAgMSAxIDEuNDIgMS40TDYuNCAxNUgyOGExIDEgMCAwIDEgMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dMZWZ0NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00NC4yNSAyNGMwIC44My0uNjcgMS41LTEuNSAxLjVIMTAuOTFsMTIuNCAxMi4xOGExLjUgMS41IDAgMSAxLTIuMTEgMi4xNGwtMTUtMTQuNzVhLjYxLjYxIDAgMCAxLS4wMi0uMDIgMS41IDEuNSAwIDAgMSAuMDQtMi4xNEwyMS4yIDguMThhMS41IDEuNSAwIDEgMSAyLjEgMi4xNEwxMC45MSAyMi41aDMxLjg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TGVmdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTQ0IDI0YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUgxMC4zbDEyLjgzIDEyLjZhMS4yNSAxLjI1IDAgMSAxLTEuNzYgMS44TDYuNCAyNC45bC0uMDMtLjAyYTEuMjQgMS4yNCAwIDAgMSAuMDQtMS44TDIxLjM3IDguMzZhMS4yNSAxLjI1IDAgMSAxIDEuNzYgMS43OEwxMC4zIDIyLjc1aDMyLjQ1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWF4aW1pemUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguNDggMmEuNzUuNzUgMCAwIDAgMCAxLjVoMi45NkwzLjUgMTEuNDRWOC40OGEuNzUuNzUgMCAwIDAtMS41IDB2NC42N2MwIC40Ny4zOC44NS44NS44NWg0LjY3YS43NS43NSAwIDAgMCAwLTEuNUg0LjU2bDcuOTQtNy45NHYyLjk2YS43NS43NSAwIDAgMCAxLjUgMFYyLjg1YS44NS44NSAwIDAgMC0uODUtLjg1SDguNDhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWF4aW1pemUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjUgMmEuNS41IDAgMCAwIDAgMWgzLjhMMyAxMi4zVjguNWEuNS41IDAgMCAwLTEgMHY0LjljMCAuMzMuMjcuNi42LjZoNC45YS41LjUgMCAwIDAgMC0xSDMuN0wxMyAzLjd2My44YS41LjUgMCAwIDAgMSAwVjIuNmEuNi42IDAgMCAwLS42LS42SDguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiAzYTEgMSAwIDAgMSAxIDF2NS4yNWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuN0w1LjU2IDE1LjVoMy42OWEuNzUuNzUgMCAwIDEgMCAxLjVINGExIDEgMCAwIDEtMS0xdi01LjI1YS43NS43NSAwIDAgMSAxLjUgMHYzLjY5bDkuOTQtOS45NGgtMy42OWEuNzUuNzUgMCAwIDEgMC0xLjVIMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWF4aW1pemUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC41IDNoNi4wNGwuMDkuMDIuMDYuMDIuMDguMDQuMDUuMDQuMDYuMDYuMDMuMDQuMDQuMDcuMDMuMDguMDIuMDhWOS41YS41LjUgMCAwIDEtMSAuMDlWNC43TDQuNyAxNmg0LjhhLjUuNSAwIDAgMSAuNS40MXYuMDlhLjUuNSAwIDAgMS0uNDEuNUgzLjQxbC0uMS0uMDQtLjA4LS4wNC0uMDUtLjA0LS4wNi0uMDYtLjAzLS4wNC0uMDQtLjA3LS4wMy0uMDh2LS4wMkEuNS41IDAgMCAxIDMgMTYuNXYuMDctNi4wN2EuNS41IDAgMCAxIDEtLjA5djQuODlMMTUuMyA0aC00LjhhLjUuNSAwIDAgMS0uNS0uNDFWMy41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNSAzaDcuNTVsLjEyLjAyLjA5LjAyLjEuMDMuMS4wNC4wNi4wNC4wNi4wNC4wNi4wNS4wNy4wNi4xLjEuMDYuMTIuMDYuMTEuMDMuMS4wMi4wN3YuMDVMMjEgNHY3LjVhMSAxIDAgMCAxLTIgLjEyVjYuNDFMNi40IDE5aDUuMDlhMSAxIDAgMCAxIDEgLjg4VjIwYTEgMSAwIDAgMS0uODggMUgzLjk0bC0uMS0uMDEtLjA3LS4wMi0uMDgtLjAyLS4wNy0uMDItLjA5LS4wNS0uMDktLjA1LS4xLS4wNy4wNC4wM2ExIDEgMCAwIDEtLjE3LS4xN2wtLjA1LS4wNy0uMDQtLjA2LS4wMy0uMDctLjAzLS4wOC0uMDMtLjA4LS4wMi0uMXYtLjA3TDMgMjB2LTcuNWExIDEgMCAwIDEgMi0uMTJ2NS4yMUwxNy41OCA1SDEyLjVhMSAxIDAgMCAxLTEtLjg4VjRhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc1IDNoNy41NWwuMS4wMi4xLjAyLjA2LjAzYy4wOC4wMy4xNS4wOS4yMi4xNWwuMDQuMDQuMDYuMDkuMDQuMDYuMDQuMS4wMi4wNi4wMS4wNnYuMWwuMDEgNy41M2EuNzUuNzUgMCAwIDEtMS41LjF2LTUuOEw1LjU2IDE5LjVoNS42OWMuMzggMCAuNy4yOS43NC42NWwuMDEuMWMwIC4zOS0uMjguNy0uNjUuNzVIMy42OGEuNy43IDAgMCAxLS4xOC0uMDRsLS4xLS4wNEgzLjRhLjc1Ljc1IDAgMCAxLS4zOC0uNTZsLS4wMS0uMXYtNy41YS43NS43NSAwIDAgMSAxLjUtLjExdjUuOEwxOC40NCA0LjVoLTUuN2EuNzUuNzUgMCAwIDEtLjc0LS42NXYtLjFjMC0uMzguMjgtLjcuNjUtLjc0aC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWF4aW1pemUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE2LjUgM0gyNGExIDEgMCAwIDEgMSAuODh2Ny42MmExIDEgMCAwIDEtMiAuMTJWNi40TDYuNDEgMjNoNS4wOWExIDEgMCAwIDEgMSAuODhWMjRhMSAxIDAgMCAxLS44OCAxSDRhMSAxIDAgMCAxLTEtLjg4VjE2LjVhMSAxIDAgMCAxIDItLjEydjUuMjFMMjEuNTkgNUgxNi41YTEgMSAwIDAgMS0xLS44OFY0YTEgMSAwIDAgMSAuODgtMUgyNGgtNy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTYuMjUgM2g4Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjhhLjc1Ljc1IDAgMCAxLTEuNS4xVjUuNTZMNS41NiAyMy41aDYuMTljLjM4IDAgLjcuMjguNzQuNjVsLjAxLjFjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWgtOGEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xdi04YS43NS43NSAwIDAgMSAxLjUtLjF2Ni4yOUwyMi40NCA0LjVoLTYuMTlhLjc1Ljc1IDAgMCAxLS43NC0uNjVsLS4wMS0uMWMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDgtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyA0LjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDkuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXY5LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjcuMjdMNy4yNyAyNi41aDYuNDhhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC05LjVDMy41NiAyOSAzIDI4LjQ0IDMgMjcuNzV2LTkuNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2Ni40OEwyNC43MyA1LjVoLTYuNDhjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTI4IDNhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAxIDEtMiAwVjYuNDFMNi40MSAyN0gxNGExIDEgMCAxIDEgMCAySDRhMSAxIDAgMCAxLTEtMVYxOGExIDEgMCAxIDEgMiAwdjcuNTlMMjUuNTkgNUgxOGExIDEgMCAxIDEgMC0yaDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWF4aW1pemU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQwLjUgMjRhMS41IDEuNSAwIDAgMS0xLjUtMS41VjExLjEyTDExLjEyIDM5SDIyLjVhMS41IDEuNSAwIDAgMSAwIDNoLTE1QTEuNSAxLjUgMCAwIDEgNiA0MC41di0xNWExLjUgMS41IDAgMCAxIDMgMHYxMS4zOEwzNi44OCA5SDI1LjVhMS41IDEuNSAwIDAgMSAwLTNoMTVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTVjMCAuODMtLjY3IDEuNS0xLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNDAuNzUgMjRjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVYxMC4yN0wxMC4yNyAzOS41aDEyLjQ4YTEuMjUgMS4yNSAwIDEgMSAwIDIuNUg3LjI1QzYuNTYgNDIgNiA0MS40NCA2IDQwLjc1di0xNS41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYxMi40OEwzNy43MyA4LjVIMjUuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDE1LjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2MTUuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplVmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplVmVydGljYWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkuNTggMS4zM2EuNi42IDAgMCAxIC44NCAwbDIuMTMgMi4xM2EuNi42IDAgMCAxLS44NS44NGwtMS4xLTEuMXY0LjNhLjYuNiAwIDEgMS0xLjIgMFYzLjJMOC4zIDQuM2EuNi42IDAgMCAxLS44NS0uODRsMi4xMy0yLjEzWk0zLjkgMTBjMC0uMzMuMjctLjYuNi0uNmgxMWEuNi42IDAgMSAxIDAgMS4yaC0xMWEuNi42IDAgMCAxLS42LS42Wm02LjcgNi44di00LjNhLjYuNiAwIDAgMC0xLjIgMHY0LjNsLTEuMS0xLjFhLjYuNiAwIDAgMC0uODUuODVsMi4xMyAyLjEyYS42LjYgMCAwIDAgLjg0IDBsMi4xMy0yLjEyYS42LjYgMCAxIDAtLjg1LS44NWwtMS4xIDEuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemVWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplVmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjY1IDEuNGMuMi0uMi41LS4yLjcgMGwyLjEyIDIuMTNhLjUuNSAwIDAgMS0uNy43TDEwLjUgMi45NlY3LjVhLjUuNSAwIDAgMS0xIDBWMi45Nkw4LjIzIDQuMjNhLjUuNSAwIDEgMS0uNy0uN0w5LjY1IDEuNFpNNCAxMGMwLS4yOC4yMi0uNS41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMUEuNS41IDAgMCAxIDQgMTBabTYuNSA3LjA0VjEyLjVhLjUuNSAwIDAgMC0xIDB2NC41NGwtMS4yNy0xLjI3YS41LjUgMCAxIDAtLjcuN2wyLjEyIDIuMTNjLjIuMi41LjIuNyAwbDIuMTItMi4xMmEuNS41IDAgMCAwLS43LS43MWwtMS4yNyAxLjI3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZVZlcnRpY2FsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZVZlcnRpY2FsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS4yIDYuMmExIDEgMCAwIDEtMS40IDBsLS44LS43OVY5YTEgMSAwIDEgMS0yIDBWNS40MWwtLjguOGExIDEgMCAwIDEtMS40LTEuNDJsMi41LTIuNUExIDEgMCAwIDEgMTIgMmExIDEgMCAwIDEgLjcuM2wyLjUgMi41YTEgMSAwIDAgMSAwIDEuNFpcIiwgXCJNNSAxMWExIDEgMCAxIDAgMCAyaDE0YTEgMSAwIDEgMCAwLTJINVpcIiwgXCJNMTIgMjJhMSAxIDAgMCAwIC43LS4zbDIuNS0yLjVhMSAxIDAgMCAwLTEuNC0xLjRsLS44Ljc5VjE1YTEgMSAwIDEgMC0yIDB2My41OWwtLjgtLjhhMSAxIDAgMCAwLTEuNCAxLjQybDIuNSAyLjVjLjE5LjE5LjQ0LjI5LjcuMjlcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWF4aW1pemVWZXJ0aWNhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01heGltaXplVmVydGljYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy43MiA1Ljc4YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMi41IDIuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2TDExIDQuNTZ2NC4xOWEuNzUuNzUgMCAwIDAgMS41IDBWNC41NmwxLjIyIDEuMjJaTTQgMTEuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm04LjUgM2EuNzUuNzUgMCAwIDAtMS41IDB2NC42OWwtMS4yMi0xLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwbDIuNS0yLjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMS4yMiAxLjIydi00LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNYXhpbWl6ZVZlcnRpY2FsNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZVZlcnRpY2FsNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yMi41IDQuMTNhMS41IDEuNSAwIDAgMSAyIDBsNS4wNiA0LjVhMS41IDEuNSAwIDAgMS0xLjk5IDIuMjRMMjUgOC42djkuMTZhMS41IDEuNSAwIDAgMS0zIDBWOC41OWwtMi41NyAyLjI4YTEuNSAxLjUgMCAxIDEtMi0yLjI0bDUuMDctNC41Wm0yIDM5LjczYTEuNSAxLjUgMCAwIDEtMiAwbC01LTQuNWExLjUgMS41IDAgMCAxIDItMi4yMmwyLjUgMi4yNHYtOS4xM2ExLjUgMS41IDAgMSAxIDMgMHY5LjEzbDIuNS0yLjI0YTEuNSAxLjUgMCAxIDEgMiAyLjIybC01IDQuNVpNOC4yNSAyMi4yNWExLjUgMS41IDAgMCAwIDAgM2gzMS41YTEuNSAxLjUgMCAwIDAgMC0zSDguMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01heGltaXplVmVydGljYWw0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNYXhpbWl6ZVZlcnRpY2FsNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjIuNjkgNC4zYy40Ny0uNCAxLjE2LS40IDEuNjIgMGw1LjI1IDQuNWExLjI1IDEuMjUgMCAwIDEtMS42MyAxLjlsLTMuMTgtMi43M3Y5Ljc4YTEuMjUgMS4yNSAwIDEgMS0yLjUgMFY3Ljk3bC0zLjE5IDIuNzNhMS4yNSAxLjI1IDAgMSAxLTEuNjItMS45bDUuMjUtNC41Wm0yLjA2IDM1LjczIDMuMTgtMi43M2ExLjI1IDEuMjUgMCAxIDEgMS42MyAxLjlsLTUuMjUgNC41Yy0uNDcuNC0xLjE2LjQtMS42MyAwbC01LjI0LTQuNWExLjI1IDEuMjUgMCAwIDEgMS42Mi0xLjlsMy4xOSAyLjczdi05Ljc4YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHY5Ljc4Wk03IDIzLjc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDMxLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDguMjVDNy41NiAyNSA3IDI0LjQ0IDcgMjMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01pbmltaXplMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNaW5pbWl6ZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTMuNzggMy4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDEwLjUgNC40NFYzLjI1YS43NS43NSAwIDAgMC0xLjUgMFY2LjJhLjc1Ljc1IDAgMCAwIC44LjhIMTIuNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjE5bDIuMjItMi4yMlpNNi4yNSAxMy41YS43NS43NSAwIDAgMS0uNzUtLjc1di0xLjE5bC0yLjIyIDIuMjJhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwyLjIyLTIuMjJIMy4yNWEuNzUuNzUgMCAwIDEgMC0xLjVINi4yYS43NS43NSAwIDAgMSAuOC44VjEyLjc1YzAgLjQxLS4zNC43NS0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01pbmltaXplMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMy44NSAyLjg1YS41LjUgMCAwIDAtLjctLjdMMTAgNS4yOVYzLjVhLjUuNSAwIDAgMC0xIDB2Mi45YzAgLjMzLjI3LjYuNi42aDIuOWEuNS41IDAgMCAwIDAtMWgtMS44bDMuMTUtMy4xNVpNNi41IDEzYS41LjUgMCAwIDEtLjUtLjV2LTEuOGwtMy4xNSAzLjE1YS41LjUgMCAwIDEtLjctLjdMNS4yOSAxMEgzLjVhLjUuNSAwIDAgMSAwLTFoMi45Yy4zMyAwIC42LjI3LjYuNnYyLjlhLjUuNSAwIDAgMS0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNzUgMTFoNC41Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTIuNzlsLTQuNDcgNC40N2EuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOCA0LjQ3LTQuNDdIMy43NWEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xYzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFoNC41LTQuNVptMTQuMjgtOS4wM2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4TDEzLjA2IDhoMy4xOWMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxaC01YS43NS43NSAwIDAgMS0uNzQtLjY1bC0uMDEtLjF2LTVhLjc1Ljc1IDAgMCAxIDEuNS0uMXYzLjI5bDQuOTctNC45N2MuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01pbmltaXplMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgMTFoNWEuNS41IDAgMCAxIC41LjQxdjUuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMi43bC01LjE1IDUuMTVhLjUuNSAwIDAgMS0uNzYtLjYzbC4wNi0uMDdMNy4yOSAxMkgzLjVhLjUuNSAwIDAgMS0uNS0uNDF2LS4wOWEuNS41IDAgMCAxIC40MS0uNUg4LjVoLTVabTE0LjM1LTguODVjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN0wxMi43MSA4aDMuNzlhLjUuNSAwIDAgMSAuNS40MXYuMDlhLjUuNSAwIDAgMS0uNDEuNWgtNS4xOGwtLjEtLjA0LS4wOC0uMDQtLjA1LS4wNC0uMDMtLjAzLS4wNC0uMDQtLjA0LS4wNi0uMDMtLjA2LS4wMi0uMDZWOC42YS41LjUgMCAwIDEtLjAyLS4xdi4wN1YzLjVhLjUuNSAwIDAgMSAxLS4wOVY3LjNsNS4xNS01LjE1Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjUgMTIuNWExIDEgMCAwIDEgMSAuODlWMjFhMSAxIDAgMCAxLTIgLjEyVjE1LjlsLTUuOCA1LjhhMSAxIDAgMCAxLTEuMzEuMDhsLS4xLS4wOGExIDEgMCAwIDEtLjA4LTEuMzJsLjA4LS4xIDUuNzktNS43OEgzYTEgMSAwIDAgMS0uMTItMmg3LjYyWm0zLTEwLjVhMSAxIDAgMCAxIDEgLjg4VjguMWw1LjgtNS44YTEgMSAwIDAgMSAxLjMxLS4wOGwuMS4wOGExIDEgMCAwIDEgLjA4IDEuMzJsLS4wOC4xLTUuOCA1LjhIMjFhMSAxIDAgMCAxIC4xMiAxLjk5SDEzLjVhMSAxIDAgMCAxLTEtLjg4VjNhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWluaW1pemUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNaW5pbWl6ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIxLjc4IDIuMjJjLjI2LjI3LjI5LjY4LjA3Ljk4bC0uMDcuMDgtNi4yMyA2LjIzaDUuN2MuMzggMCAuNy4yOC43NC42NXYuMWMwIC4zOC0uMjcuNjktLjY0Ljc0SDEzLjY4YS43My43MyAwIDAgMS0uMi0uMDRsLS4xLS4wNGEuNzUuNzUgMCAwIDEtLjM4LS41NnYtNy42YS43NS43NSAwIDAgMSAxLjQ5LS4xVjguNDNsNi4yMy02LjIyYy4yOS0uMy43Ni0uMyAxLjA2IDBaTTExIDEzLjc1djcuNWEuNzUuNzUgMCAwIDEtMS41LjExdi01LjhsLTYuMjIgNi4yMmEuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOCA2LjIyLTYuMjJIMi43NWEuNzUuNzUgMCAwIDEtLjc0LS42NHYtLjFjMC0uNDIuMzMtLjc2Ljc0LS43Nmg3LjU2bC4wNy4wMS4xLjAzLjA1LjAyLjA5LjA0LjA4LjA2Yy4wNi4wNC4xMS4wOS4xNS4xNGwuMDcuMS4wNC4xLjAyLjA3LjAxLjA2di4wNi0uMDFsLjAxLjA3WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTQgMTVoOGExIDEgMCAwIDEgMSAuODhWMjRhMSAxIDAgMCAxLTIgLjEyVjE4LjRsLTcuMyA3LjNhMSAxIDAgMCAxLTEuNDktMS4zMmwuMDgtLjFMOS42IDE3SDRhMSAxIDAgMCAxLTEtLjg4VjE2YTEgMSAwIDAgMSAuODgtMUgxMiA0Wk0yNS43IDIuM2ExIDEgMCAwIDEgLjA5IDEuMzFsLS4wOC4xTDE4LjQgMTFIMjRhMSAxIDAgMCAxIDEgLjg4VjEyYTEgMSAwIDAgMS0uODggMUgxNmExIDEgMCAwIDEtMS0uODhWNGExIDEgMCAwIDEgMi0uMTJWOS42bDcuMy03LjNhMSAxIDAgMCAxIDEuNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01pbmltaXplMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNC4yNSAxNWg4Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjhhLjc1Ljc1IDAgMCAxLTEuNS4xdi02LjI5bC03Ljk3IDcuOTdhLjc1Ljc1IDAgMCAxLTEuMTMtLjk4bC4wNy0uMDggNy45Ny03Ljk3SDQuMjVhLjc1Ljc1IDAgMCAxLS43NC0uNjVsLS4wMS0uMWMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDgtOFpNMjUuNTMgMi40N2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4LTcuOTcgNy45N2g2LjE5Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xYzAgLjM4LS4yOC43LS42NS43NGwtLjEuMDFoLThhLjc1Ljc1IDAgMCAxLS43NC0uNjVsLS4wMS0uMXYtOGEuNzUuNzUgMCAwIDEgMS41LS4xdjYuMjlsNy45Ny03Ljk3Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWluaW1pemVWZXJ0aWNhbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemVWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS43NSAxLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNjlsLjcyLS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yIDJjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwuNzIuNzJWMi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk0zLjUgOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDExYS43NS43NSAwIDAgMSAwIDEuNWgtMTFhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTguNzggNC40Ny0yLTJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMiAyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjcyLS43MnYyLjY5YS43NS43NSAwIDAgMCAxLjUgMHYtMi42OWwuNzIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWluaW1pemVWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01pbmltaXplVmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjUgMWMuMjggMCAuNS4yMi41LjV2My44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMSAxIC43LS43TDkgNS4yOVYxLjVjMC0uMjguMjItLjUuNS0uNVptLTYgOC41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFINGEuNS41IDAgMCAxLS41LS41Wm02LjUgNC4ydjMuOGEuNS41IDAgMCAxLTEgMHYtMy44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy0uN2wyLTJjLjItLjIuNS0uMi43IDBsMiAyYS41LjUgMCAwIDEtLjcuN0wxMCAxMy43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TWluaW1pemVWZXJ0aWNhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemVWZXJ0aWNhbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuOCAxOC43YTEgMSAwIDEgMCAxLjQtMS40bC0yLjUtMi41YTEgMSAwIDAgMC0xLjQgMGwtMi41IDIuNWExIDEgMCAxIDAgMS40IDEuNGwuOC0uNzlWMjFhMSAxIDAgMSAwIDIgMHYtMy4wOWwuOC44Wk00IDEyYTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMSAxIDAgMkg1YTEgMSAwIDAgMS0xLTFabTktOWExIDEgMCAxIDAtMiAwdjMuMDlsLS44LS44YTEgMSAwIDAgMC0xLjQgMS40MmwyLjUgMi41YTEgMSAwIDAgMCAxLjQgMGwyLjUtMi41YTEgMSAwIDAgMC0xLjQtMS40MmwtLjguOFYzWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNaW5pbWl6ZVZlcnRpY2FsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TWluaW1pemVWZXJ0aWNhbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjc1IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djQuMTlsMS4yMi0xLjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIuNSAyLjVjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLjUtMi41YS43NS43NSAwIDAgMSAxLjA2LTEuMDZMMTEgNi45NFYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCIsIFwiTTQgMTEuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxNC41YS43NS43NSAwIDAgMSAwIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiLCBcIk0xMy43MiAxNy43OGEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxMSAxNi41NnY0LjY5YS43NS43NSAwIDAgMCAxLjUgMHYtNC42OWwxLjIyIDEuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01vdmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01vdmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUzIDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMEw3LjIyIDQuNDdhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwuOTctLjk3djIuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNTZsLjk3Ljk3YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuMjUtMi4yNVpNMi4yMiA5LjQ3Yy0uMy4zLS4zLjc3IDAgMS4wNmwyLjI1IDIuMjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtLjk3LS45N2gyLjY5YS43NS43NSAwIDAgMCAwLTEuNUg0LjU2bC45Ny0uOTdhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwyLjIyIDkuNDdabTguMzEgOC4zMSAyLjI1LTIuMjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtLjk3Ljk3di0yLjY5YS43NS43NSAwIDAgMC0xLjUgMHYyLjY5bC0uOTctLjk3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi4yNSAyLjI1Yy4zLjMuNzcuMyAxLjA2IDBabTUtMTAuNTYgMi4yNSAyLjI1Yy4zLjMuMy43NyAwIDEuMDZsLTIuMjUgMi4yNWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bC45Ny0uOTdoLTIuNjlhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNjlsLS45Ny0uOTdhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TW92ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01vdmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC4zNSAyLjE1YS41LjUgMCAwIDAtLjcgMGwtMi41IDIuNWEuNS41IDAgMSAwIC43LjdMOS41IDMuNzFWNy41YS41LjUgMCAwIDAgMSAwVjMuN2wxLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMi41LTIuNVptLTguMiA3LjVhLjUuNSAwIDAgMCAwIC43bDIuNSAyLjVhLjUuNSAwIDAgMCAuNy0uN0wzLjcxIDEwLjVINy41YS41LjUgMCAwIDAgMC0xSDMuN2wxLjY1LTEuNjVhLjUuNSAwIDEgMC0uNy0uN2wtMi41IDIuNVpNMTAgMThhLjUuNSAwIDAgMS0uMzUtLjE1bC0yLjUtMi41YS41LjUgMCAwIDEgLjctLjdsMS42NSAxLjY0VjEyLjVhLjUuNSAwIDAgMSAxIDB2My44bDEuNjUtMS42NWEuNS41IDAgMCAxIC43LjdsLTIuNSAyLjVBLjUuNSAwIDAgMSAxMCAxOFptNy44NS03LjY1YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdsMS42NCAxLjY1SDEyLjVhLjUuNSAwIDAgMCAwIDFoMy44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01vdmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01vdmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1LjQ2IDYuNDZhMSAxIDAgMCAxLTEuNDIgMEwxMyA1LjR2Mi44NGExIDEgMCAxIDEtMiAwVjUuNDFMOS45NiA2LjQ2YTEgMSAwIDAgMS0xLjQyLTEuNDJMMTEuMyAyLjNhMSAxIDAgMCAxIDEuNDIgMGwyLjc1IDIuNzVhMSAxIDAgMCAxIDAgMS40MlptLTkgNy41OGExIDEgMCAxIDEtMS40MiAxLjQyTDIuMyAxMi43YTEgMSAwIDAgMSAwLTEuNDJsMi43NS0yLjc1YTEgMSAwIDAgMSAxLjQyIDEuNDJMNS40IDExaDIuODRhMSAxIDAgMSAxIDAgMkg1LjQxbDEuMDUgMS4wNFptMTIuNSAxLjQyYTEgMSAwIDAgMS0xLjQyLTEuNDJMMTguNiAxM2gtMi44NGExIDEgMCAxIDEgMC0yaDIuODRsLTEuMDUtMS4wNGExIDEgMCAwIDEgMS40Mi0xLjQybDIuNzUgMi43NWExIDEgMCAwIDEgMCAxLjQybC0yLjc1IDIuNzVaTTExIDE4LjU5di0yLjg0YTEgMSAwIDEgMSAyIDB2Mi44NGwxLjA0LTEuMDVhMSAxIDAgMCAxIDEuNDIgMS40MkwxMi43IDIxLjdhMSAxIDAgMCAxLTEuNDIgMGwtMi43NS0yLjc1YTEgMSAwIDEgMSAxLjQyLTEuNDJMMTEgMTguNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93TW92ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd01vdmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS4yOCA2LjAzYy0uMy4zLS43Ny4zLTEuMDYgMGwtMS40Ny0xLjQ3djMuNjlhLjc1Ljc1IDAgMCAxLTEuNSAwVjQuNTZMOS43OCA2LjAzYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMi43NS0yLjc1YS43NS43NSAwIDAgMSAxLjA2IDBsMi43NSAyLjc1Yy4zLjMuMy43NyAwIDEuMDZabS05LjI1IDguMTlhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi43NS0yLjc1YS43NS43NSAwIDAgMSAwLTEuMDZsMi43NS0yLjc1YS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLTEuNDcgMS40N2gzLjY5YS43NS43NSAwIDAgMSAwIDEuNUg0LjU2bDEuNDcgMS40N1ptMTEuOTQgMS4wNmEuNzUuNzUgMCAwIDEgMC0xLjA2bDEuNDctMS40N2gtMy42OWEuNzUuNzUgMCAwIDEgMC0xLjVoMy42OWwtMS40Ny0xLjQ3YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi43NSAyLjc1YS43NS43NSAwIDAgMSAwIDEuMDZsLTIuNzUgMi43NWMtLjMuMy0uNzcuMy0xLjA2IDBabS0yLjY5IDIuNjlhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS40NyAxLjQ3di0zLjY5YS43NS43NSAwIDAgMC0xLjUgMHYzLjY5bC0xLjQ3LTEuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjc1IDIuNzVhLjc1Ljc1IDAgMCAwIDEuMDYgMGwyLjc1LTIuNzVjLjMtLjMuMy0uNzcgMC0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dNb3ZlSW53YXJkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNb3ZlSW53YXJkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy4wMyAzLjcyYy4zLjMuMy43NyAwIDEuMDZsLTIuNSAyLjVjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLjUtMi41YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMS4yMiAxLjIyVjEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuMTlsMS4yMi0xLjIyYy4zLS4zLjc3LS4zIDEuMDYgMFpNMy43MiA2Ljk3Yy4zLS4zLjc3LS4zIDEuMDYgMGwyLjUgMi41Yy4zLjMuMy43NyAwIDEuMDZsLTIuNSAyLjVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjIyLTEuMjJIMS43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMy4xOUwzLjcyIDguMDNhLjc1Ljc1IDAgMCAxIDAtMS4wNlptMTEuNSAwYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTEuMjIgMS4yMmgzLjE5YS43NS43NSAwIDAgMSAwIDEuNWgtMy4xOWwxLjIyIDEuMjJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi41LTIuNWEuNzUuNzUgMCAwIDEgMC0xLjA2bDIuNS0yLjVabS0yLjE5IDkuMzFjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwxLjIyLTEuMjJ2My4xOWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuMTlsMS4yMiAxLjIyYy4zLjMuNzcuMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd01vdmVJbndhcmQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dNb3ZlSW53YXJkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy4xNSAxNi4zNWMuMi4yLjUuMi43IDBsMS42NS0xLjY0djMuNzlhLjUuNSAwIDAgMCAxIDB2LTMuOGwxLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43IDBsLTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43Wm05LjItOC41YS41LjUgMCAwIDAtLjctLjdsLTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43bDIuNSAyLjVhLjUuNSAwIDAgMCAuNy0uN2wtMS42NC0xLjY1aDMuNzlhLjUuNSAwIDAgMCAwLTFoLTMuOGwxLjY1LTEuNjVabS0xMi43IDBhLjUuNSAwIDEgMSAuNy0uN2wyLjUgMi41Yy4yLjIuMi41IDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN2wxLjY0LTEuNjVIMS41YS41LjUgMCAwIDEgMC0xaDMuOEwzLjY0IDcuODVabTQuMi00LjJhLjUuNSAwIDEgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0wxMC41IDUuMjlWMS41YS41LjUgMCAwIDAtMSAwdjMuOEw3Ljg1IDMuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd05leHQxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd05leHQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTIuNDcgMy4yOGEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDMuMjUgMy4yNWMuMy4zLjMuNzcgMCAxLjA2TDMuNTMgOS43OGEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDUuMTkgNiAyLjQ3IDMuMjhaTTkuNzUgMTBjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTYuNWEuNzUuNzUgMCAwIDAtMS41IDB2Ni41YzAgLjQxLjM0Ljc1Ljc1Ljc1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93TmV4dDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd05leHQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0yLjY1IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wzLjUgMy41Yy4yLjIuMi41IDAgLjdsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNy0uN0w1Ljc5IDYgMi42NSAyLjg1Wk0xMCAyLjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd05leHQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd05leHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNyAxMS43NGEuNzUuNzUgMCAxIDAgMS4xIDEuMDJsNC00LjI1YS43NS43NSAwIDAgMCAwLTEuMDJsLTQtNC4yNWEuNzUuNzUgMCAxIDAtMS4xIDEuMDJMNy4yMiA4IDMuNyAxMS43NFpNMTEuMjUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2OC41YS43NS43NSAwIDAgMS0xLjUgMHYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dOZXh0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TmV4dDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNjUgMy44NWEuNS41IDAgMSAxIC43LS43bDQuNSA0LjVjLjIuMi4yLjUgMCAuN2wtNC41IDQuNWEuNS41IDAgMCAxLS43LS43TDcuNzkgOCAzLjY1IDMuODVaTTEyIDMuNWEuNS41IDAgMCAwLTEgMHY5YS41LjUgMCAwIDAgMSAwdi05WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93TmV4dDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TmV4dDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMuNzUgNC43NWMuMzggMCAuNy4yOC43NC42NWwuMDEuMXY5YS43NS43NSAwIDAgMS0xLjUuMVY1LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTguMjguMjJhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDQuNSA0LjVjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOC00LjUgNC41YS43NS43NSAwIDAgMS0xLjEzLS45OGwuMDctLjA4TDkuNDQgMTAgNS40NyA2LjAzYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dOZXh0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93TmV4dDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEzLjUgNWEuNS41IDAgMCAxIC41LjQxdjkuMDlhLjUuNSAwIDAgMS0xIC4wOVY1LjVjMC0uMjguMjItLjUuNS0uNVptLTcuODUuMTVhLjUuNSAwIDAgMSAuNjMtLjA2bC4wNy4wNiA0LjUgNC41Yy4xOC4xNy4yLjQ0LjA2LjYzbC0uMDYuMDctNC41IDQuNWEuNS41IDAgMCAxLS43Ni0uNjNsLjA2LS4wN0w5Ljc5IDEwIDUuNjUgNS44NWEuNS41IDAgMCAxIDAtLjdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dOZXh0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dOZXh0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOCAzYTEgMSAwIDAgMSAxIC44OFYyMGExIDEgMCAwIDEtMiAuMTJWNGExIDEgMCAwIDEgMS0xWm0tMTIuNy4zQTEgMSAwIDAgMSA2LjYgMy4ybC4xLjA4IDggOGExIDEgMCAwIDEgLjA4IDEuMzJsLS4wOC4xLTggOGExIDEgMCAwIDEtMS41LTEuMzJsLjA4LS4xTDEyLjYgMTJsLTcuMy03LjNhMSAxIDAgMCAxIDAtMS40WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93TmV4dDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd05leHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC4yNSAzYy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjE2LjVhLjc1Ljc1IDAgMCAxLTEuNS4xVjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTEzLjAzLjIyYS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyA4LjI1IDguMjVjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOC04LjI1IDguMjVhLjc1Ljc1IDAgMCAxLTEuMTMtLjk4bC4wNy0uMDhMMTIuOTQgMTIgNS4yMiA0LjI4YS43NS43NSAwIDAgMSAwLTEuMDZaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lRG93bkxlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd091dGxpbmVEb3duTGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTEuMTUgMS40NGExLjUgMS41IDAgMCAwLTIuMTIgMEw1IDUuNDdsLTEuMS0xLjFhMS4yNSAxLjI1IDAgMCAwLTIuMTIuNzdMMSAxMy42NGMtLjA4Ljc4LjU4IDEuNDMgMS4zNSAxLjM2bDguNS0uNzhhMS4yNSAxLjI1IDAgMCAwIC43Ny0yLjEzbC0xLjEtMS4xIDQuMDMtNC4wMmExLjUgMS41IDAgMCAwIDAtMi4xMmwtMy40LTMuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVEb3duTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd091dGxpbmVEb3duTGVmdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkuMDMgMS40NGExLjUgMS41IDAgMCAxIDIuMTIgMGwzLjQxIDMuNGExLjUgMS41IDAgMCAxIDAgMi4xM0wxMC41MyAxMWwxLjEgMS4xYy43NS43NC4yOSAyLjAzLS43NyAyLjEybC04LjUuNzhhMS4yNSAxLjI1IDAgMCAxLTEuMzUtMS4zNmwuNzctOC41YTEuMjUgMS4yNSAwIDAgMSAyLjEzLS43N0w1IDUuNDdsNC4wMi00LjAzWm0xLjQxLjdhLjUuNSAwIDAgMC0uNyAwTDUuMzYgNi41NGEuNS41IDAgMCAxLS43MSAwTDMuMiA1LjA4YS4yNS4yNSAwIDAgMC0uNDMuMTVMMiAxMy43M2MtLjAxLjE1LjEyLjI4LjI3LjI3bDguNS0uNzdjLjIxLS4wMi4zLS4yOC4xNi0uNDNsLTEuNDYtMS40NWEuNS41IDAgMCAxIDAtLjdsNC4zOC00LjM5YS41LjUgMCAwIDAgMC0uN2wtMy40LTMuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVEb3duTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZURvd25MZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjY3IDE3Ljk5QTEuNSAxLjUgMCAwIDEgMiAxNi4zM2wxLjA4LTkuN2ExLjUgMS41IDAgMCAxIDIuNTUtLjlMNi43IDYuOGw0LjM2LTQuMzZhMS41IDEuNSAwIDAgMSAyLjEyIDBsNC4zNyA0LjM3YTEuNSAxLjUgMCAwIDEgMCAyLjEybC00LjM2IDQuMzYgMS4wNiAxLjA3YTEuNSAxLjUgMCAwIDEtLjkgMi41NUwzLjY3IDE4WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lRG93bkxlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lRG93bkxlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDE2LjQ0YS41LjUgMCAwIDAgLjU2LjU2bDkuNy0xLjA4YS41LjUgMCAwIDAgLjMtLjg1bC0xLjQyLTEuNDJhLjUuNSAwIDAgMSAwLS43MWw0LjcxLTQuNzJhLjUuNSAwIDAgMCAwLS43bC00LjM3LTQuMzdhLjUuNSAwIDAgMC0uNyAwTDcuMDYgNy44NmEuNS41IDAgMCAxLS43IDBMNC45MiA2LjQ0YS41LjUgMCAwIDAtLjg1LjNMMyAxNi40NFpNMy42NyAxOEExLjUgMS41IDAgMCAxIDIgMTYuMzNsMS4wOC05LjdhMS41IDEuNSAwIDAgMSAyLjU1LS45TDYuNyA2LjhsNC4zNi00LjM2YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDQuMzcgNC4zN2ExLjUgMS41IDAgMCAxIDAgMi4xMmwtNC4zNiA0LjM2IDEuMDYgMS4wN2ExLjUgMS41IDAgMCAxLS45IDIuNTVMMy42NyAxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZURvd25MZWZ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lRG93bkxlZnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQuMTcgMjEuOTlBMS45NSAxLjk1IDAgMCAxIDIgMTkuODNMMy4zNSA3Ljc3YTEuOTUgMS45NSAwIDAgMSAzLjMyLTEuMTZsMS4yNyAxLjI2IDUuMy01LjNjLjc2LS43NiAyLS43NiAyLjc2IDBMMjEuNDMgOGMuNzYuNzYuNzYgMiAwIDIuNzZsLTUuMyA1LjMgMS4yNiAxLjI3YTEuOTUgMS45NSAwIDAgMS0xLjE2IDMuMzJMNC4xNyAyMS45OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZURvd25MZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZURvd25MZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDIwYy0uMDMuMjkuMjEuNTMuNS41bDEyLjA2LTEuMzRjLjM4LS4wNS41NC0uNS4yNy0uNzdsLTEuOC0xLjhhLjc1Ljc1IDAgMCAxIDAtMS4wNmw1Ljg0LTUuODNhLjQ1LjQ1IDAgMCAwIDAtLjY0bC01LjQzLTUuNDNhLjQ1LjQ1IDAgMCAwLS42NCAwTDguNDcgOS40N2MtLjMuMjktLjc3LjI5LTEuMDYgMGwtMS44LTEuOGEuNDUuNDUgMCAwIDAtLjc3LjI3TDMuNSAyMFptLjY3IDEuOTlBMS45NSAxLjk1IDAgMCAxIDIgMTkuODNMMy4zNSA3Ljc3YTEuOTUgMS45NSAwIDAgMSAzLjMyLTEuMTZsMS4yNyAxLjI2IDUuMy01LjNjLjc2LS43NiAyLS43NiAyLjc2IDBMMjEuNDMgOGMuNzYuNzYuNzYgMiAwIDIuNzZsLTUuMyA1LjMgMS4yNiAxLjI3YTEuOTUgMS45NSAwIDAgMS0xLjE2IDMuMzJMNC4xNyAyMS45OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZURvd25MZWZ0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lRG93bkxlZnQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4LjU0IDIuNjZhMi4yNSAyLjI1IDAgMCAwLTMuMTggMGwtNi42IDYuNi0xLjYtMS42YTIuMjUgMi4yNSAwIDAgMC0zLjgzIDEuMzlMMiAyMy41NWEyLjI1IDIuMjUgMCAwIDAgMi40NCAyLjQ0bDE0LjUtMS4zMmEyLjI1IDIuMjUgMCAwIDAgMS40LTMuODNsLTEuNjEtMS42IDYuNi02LjZjLjg4LS44OC44OC0yLjMgMC0zLjE4bC02LjgtNi44WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lRG93bkxlZnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lRG93bkxlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNS4zNiAyLjY2Yy44OC0uODggMi4zLS44OCAzLjE4IDBsNi44IDYuOGMuODguODguODggMi4zIDAgMy4xOGwtNi42IDYuNiAxLjYgMS42YTIuMjUgMi4yNSAwIDAgMS0xLjM5IDMuODNMNC40NSAyNmEyLjI1IDIuMjUgMCAwIDEtMi40NC0yLjQ0bDEuMzItMTQuNWEyLjI1IDIuMjUgMCAwIDEgMy44My0xLjM5bDEuNiAxLjYgNi42LTYuNlptMi4xMiAxLjA2YS43NS43NSAwIDAgMC0xLjA2IDBMOS4zIDEwLjg1Yy0uMy4zLS43Ny4zLTEuMDYgMEw2LjEgOC43MmEuNzUuNzUgMCAwIDAtMS4yOC40N0wzLjUgMjMuNjljLS4wNC40Ni4zNS44NS44Mi44bDE0LjUtMS4zMWEuNzUuNzUgMCAwIDAgLjQ2LTEuMjhsLTIuMTMtMi4xM2EuNzUuNzUgMCAwIDEgMC0xLjA2bDcuMTMtNy4xM2MuMy0uMy4zLS43NyAwLTEuMDZsLTYuOC02LjhaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVEb3duTGVmdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZURvd25MZWZ0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMi4wNCAyLjg4YTMgMyAwIDAgMC00LjI1IDBsLTYuOSA2LjktMS43NS0xLjc1YTMuNSAzLjUgMCAwIDAtNS45NyAyLjIzTDIuMDEgMjYuOEEzIDMgMCAwIDAgNS4yIDMwbDE2LjUzLTEuMTZhMy41IDMuNSAwIDAgMCAyLjIzLTUuOTdsLTEuNzUtMS43NSA2LjktNi45YTMgMyAwIDAgMCAwLTQuMjRsLTcuMDgtNy4xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lRG93bkxlZnQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lRG93bkxlZnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNy44IDIuODhhMyAzIDAgMCAxIDQuMjQgMGw3LjA5IDcuMDlhMyAzIDAgMCAxIDAgNC4yNGwtNi45IDYuOSAxLjc0IDEuNzVhMy41IDMuNSAwIDAgMS0yLjIzIDUuOTdMNS4yMSAzMGEzIDMgMCAwIDEtMy4yLTMuMmwxLjE2LTE2LjU0YTMuNSAzLjUgMCAwIDEgNS45Ny0yLjIzbDEuNzUgMS43NSA2LjktNi45Wm0yLjgyIDEuNDFhMSAxIDAgMCAwLTEuNDEgMEwxMS42IDExLjlhMSAxIDAgMCAxLTEuNDIgMEw3LjczIDkuNDVhMS41IDEuNSAwIDAgMC0yLjU2Ljk1TDQgMjYuOTNBMSAxIDAgMCAwIDUuMDcgMjhsMTYuNTMtMS4xN2ExLjUgMS41IDAgMCAwIC45Ni0yLjU1bC0yLjQ2LTIuNDZhMSAxIDAgMCAxIDAtMS40MWw3LjYxLTcuNjFhMSAxIDAgMCAwIDAtMS40MkwyMC42MiA0LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVEb3duTGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZURvd25MZWZ0NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00LjA0IDM4LjE2YTUuMjUgNS4yNSAwIDAgMCA1LjgyIDUuOGwyMy4zOS0yLjcyYTQuMjUgNC4yNSAwIDAgMCAyLjUxLTcuMjJsLTIuNzUtMi43NSA5LjQ2LTkuNDVhNS4yNSA1LjI1IDAgMCAwIDAtNy40M2wtOC44My04Ljg0YTUuMjUgNS4yNSAwIDAgMC03LjQzIDBMMTYuNzQgMTVsLTIuODQtMi43OWE0LjI1IDQuMjUgMCAwIDAtNy4yIDIuNTZMNC4wNCAzOC4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZURvd25MZWZ0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZURvd25MZWZ0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNOS44NiA0My45N2E1LjI1IDUuMjUgMCAwIDEtNS44Mi01LjgxbDIuNjYtMjMuNGE0LjI1IDQuMjUgMCAwIDEgNy4yLTIuNTRMMTYuNzQgMTVsOS40Ny05LjQ2YTUuMjUgNS4yNSAwIDAgMSA3LjQzIDBsOC44MyA4Ljg1YTUuMjUgNS4yNSAwIDAgMSAwIDcuNDNMMzMgMzEuMjdsMi43NSAyLjc1YTQuMjUgNC4yNSAwIDAgMS0yLjUxIDcuMjJMOS44NiA0My45N1ptLTMuMzQtNS41M2EyLjc1IDIuNzUgMCAwIDAgMy4wNSAzLjA0bDIzLjM5LTIuNzJhMS43NSAxLjc1IDAgMCAwIDEuMDMtMi45N2wtMy42My0zLjY0YTEuMjUgMS4yNSAwIDAgMSAwLTEuNzdMNDAuNyAyMC4wNWEyLjc1IDIuNzUgMCAwIDAgMC0zLjg5bC04LjgzLTguODVhMi43NSAyLjc1IDAgMCAwLTMuOSAwTDE3LjY1IDE3LjY1Yy0uNDkuNDgtMS4yNy40OC0xLjc2IDBMMTIuMTUgMTRhMS43NSAxLjc1IDAgMCAwLTIuOTYgMS4wNUw2LjUyIDM4LjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lVXBSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZVVwUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2LjMzIDJjLjk2LS4xIDEuNzcuNzEgMS42NiAxLjY3bC0xLjA4IDkuN2ExLjUgMS41IDAgMCAxLTIuNTUuOUwxMy4zIDEzLjJsLTQuMzYgNC4zNmExLjUgMS41IDAgMCAxLTIuMTIgMGwtNC4zNy00LjM3YTEuNSAxLjUgMCAwIDEgMC0yLjEyTDYuOCA2LjcgNS43NCA1LjY0YTEuNSAxLjUgMCAwIDEgLjg5LTIuNTVMMTYuMzMgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZVVwUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lVXBSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDMuNTZhLjUuNSAwIDAgMC0uNTYtLjU2bC05LjcgMS4wOGEuNS41IDAgMCAwLS4zLjg1bDEuNDIgMS40MmEuNS41IDAgMCAxIDAgLjcxbC00LjcxIDQuNzJhLjUuNSAwIDAgMCAwIC43bDQuMzcgNC4zN2MuMi4yLjUuMi43IDBsNC43Mi00LjcxYy4yLS4yLjUxLS4yLjcgMGwxLjQzIDEuNDJjLjMuMy44LjEyLjg1LS4zTDE3IDMuNTZaTTE2LjMzIDJjLjk2LS4xIDEuNzcuNyAxLjY2IDEuNjZsLTEuMDggOS43YTEuNSAxLjUgMCAwIDEtMi41NS45TDEzLjMgMTMuMmwtNC4zNiA0LjM2YTEuNSAxLjUgMCAwIDEtMi4xMiAwbC00LjM3LTQuMzdhMS41IDEuNSAwIDAgMSAwLTIuMTJMNi44IDYuNyA1Ljc0IDUuNjRhMS41IDEuNSAwIDAgMSAuODktMi41NUwxNi4zMyAyWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lVXBSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZVVwUmlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE5LjgzIDIuMDFjMS4yNC0uMTQgMi4zLjkxIDIuMTYgMi4xNmwtMS4zNCAxMi4wNmExLjk1IDEuOTUgMCAwIDEtMy4zMiAxLjE2bC0xLjI3LTEuMjctNS4zIDUuM2MtLjc2Ljc3LTIgLjc3LTIuNzYgMEwyLjU3IDE2Yy0uNzYtLjc2LS43Ni0yIDAtMi43Nmw1LjMtNS4zLTEuMjYtMS4yN2ExLjk1IDEuOTUgMCAwIDEgMS4xNi0zLjMybDEyLjA2LTEuMzRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVVcFJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZVVwUmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMC41IDRhLjQ1LjQ1IDAgMCAwLS41LS41TDcuOTQgNC44NGEuNDUuNDUgMCAwIDAtLjI3Ljc3bDEuOCAxLjhjLjI5LjI5LjI5Ljc2IDAgMS4wNkwzLjYzIDE0LjNhLjQ1LjQ1IDAgMCAwIDAgLjY0bDUuNDMgNS40M2MuMTguMTcuNDYuMTcuNjQgMGw1LjgzLTUuODRjLjMtLjI5Ljc3LS4yOSAxLjA2IDBsMS44IDEuOGMuMjcuMjcuNzIuMS43Ni0uMjdMMjAuNSA0Wm0tLjY3LTEuOTljMS4yNC0uMTQgMi4zLjkxIDIuMTYgMi4xNmwtMS4zNCAxMi4wNmExLjk1IDEuOTUgMCAwIDEtMy4zMiAxLjE2bC0xLjI3LTEuMjctNS4zIDUuM2MtLjc2Ljc3LTIgLjc3LTIuNzYgMEwyLjU3IDE2Yy0uNzYtLjc2LS43Ni0yIDAtMi43Nmw1LjMtNS4zLTEuMjYtMS4yN2ExLjk1IDEuOTUgMCAwIDEgMS4xNi0zLjMybDEyLjA2LTEuMzRaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd091dGxpbmVVcFJpZ2h0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lVXBSaWdodDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOS45NyAyOS4xMmEzIDMgMCAwIDAgNC4yNCAwbDYuOS02LjkgMS43NSAxLjc1YTMuNSAzLjUgMCAwIDAgNS45Ny0yLjIzTDMwIDUuMjFhMyAzIDAgMCAwLTMuMi0zLjJMMTAuMjUgMy4xOGEzLjUgMy41IDAgMCAwLTIuMjMgNS45NmwxLjc1IDEuNzUtNi45IDYuOWEzIDMgMCAwIDAgMCA0LjI0bDcuMDkgNy4xWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lVXBSaWdodDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd091dGxpbmVVcFJpZ2h0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTQuMjEgMjkuMTJhMyAzIDAgMCAxLTQuMjQgMGwtNy4xLTcuMDlhMyAzIDAgMCAxIDAtNC4yNGw2LjkxLTYuOS0xLjc1LTEuNzVhMy41IDMuNSAwIDAgMSAyLjIzLTUuOTZMMjYuNzkgMkEzIDMgMCAwIDEgMzAgNS4ybC0xLjE2IDE2LjUzYTMuNSAzLjUgMCAwIDEtNS45NyAyLjIzbC0xLjc1LTEuNzUtNi45IDYuOVptLTIuODMtMS40MWExIDEgMCAwIDAgMS40MiAwbDcuNi03LjYxYTEgMSAwIDAgMSAxLjQyIDBsMi40NiAyLjQ2Yy45LjkgMi40Ni4zMiAyLjU1LS45NkwyOCA1LjA3QTEgMSAwIDAgMCAyNi45MyA0TDEwLjQgNS4xN2ExLjUgMS41IDAgMCAwLS45NSAyLjU2bDIuNDUgMi40NWExIDEgMCAwIDEgMCAxLjQybC03LjYgNy42YTEgMSAwIDAgMCAwIDEuNDJsNy4wOCA3LjA5WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dPdXRsaW5lVXBSaWdodDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93T3V0bGluZVVwUmlnaHQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQzLjk3IDkuODVhNS4yNSA1LjI1IDAgMCAwLTUuODItNS44TDE0Ljc2IDYuNzVBNC4yNSA0LjI1IDAgMCAwIDEyLjI0IDE0TDE1IDE2Ljc0bC05LjQ1IDkuNDVhNS4yNSA1LjI1IDAgMCAwIDAgNy40Mmw4LjgzIDguODVhNS4yNSA1LjI1IDAgMCAwIDcuNDMgMEwzMS4yNiAzM2wyLjg1IDIuOGE0LjI1IDQuMjUgMCAwIDAgNy4yLTIuNTZsMi42Ni0yMy4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93T3V0bGluZVVwUmlnaHQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dPdXRsaW5lVXBSaWdodDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM4LjE1IDQuMDRhNS4yNSA1LjI1IDAgMCAxIDUuODIgNS44MUw0MS4zIDMzLjI0YTQuMjUgNC4yNSAwIDAgMS03LjIgMi41NUwzMS4yNyAzM2wtOS40NiA5LjQ3YTUuMjUgNS4yNSAwIDAgMS03LjQzIDBMNS41NCAzMy42YTUuMjUgNS4yNSAwIDAgMSAwLTcuNDJMMTUgMTYuNzRsLTIuNzUtMi43NWE0LjI1IDQuMjUgMCAwIDEgMi41Mi03LjIzbDIzLjM5LTIuNzJabTMuMzMgNS41M2EyLjc1IDIuNzUgMCAwIDAtMy4wNS0zLjA0TDE1LjA1IDkuMjVBMS43NSAxLjc1IDAgMCAwIDE0IDEyLjIybDMuNjQgMy42NGMuNDguNDguNDggMS4yOCAwIDEuNzZMNy4zIDI3Ljk2YTIuNzUgMi43NSAwIDAgMCAwIDMuODlsOC44MyA4Ljg0YTIuNzUgMi43NSAwIDAgMCAzLjkgMGwxMC4zMy0xMC4zM2ExLjI1IDEuMjUgMCAwIDEgMS43NiAwTDM1Ljg2IDM0YzEuMDQgMS4wMiAyLjguNCAyLjk2LTEuMDVsMi42Ni0yMy40WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dQYXJhZ3JhcGgxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1BhcmFncmFwaDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTMuMjUgMmEuNzUuNzUgMCAwIDAtLjc1Ljc1djJjMCAuNDEtLjM0Ljc1LS43NS43NUg5LjU2bC43Mi0uNzJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMiAyYy0uMy4zLS4zLjc3IDAgMS4wNmwyIDJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkw5LjU2IDdoMi4xOUMxMi45OSA3IDE0IDYgMTQgNC43NXYtMmEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNS43MiA4LjIyYy4zLS4zLjc3LS4zIDEuMDYgMGwyIDJjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsLjcyLS43MkgxLjc1YS43NS43NSAwIDAgMSAwLTEuNWg0LjY5bC0uNzItLjcyYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1BhcmFncmFwaDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1BhcmFncmFwaDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzLjUgMmEuNS41IDAgMCAwLS41LjVWNWExIDEgMCAwIDEtMSAxSDguN2wxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDEgMCAuNy0uN0w4LjcxIDdIMTJhMiAyIDAgMCAwIDItMlYyLjVhLjUuNSAwIDAgMC0uNS0uNVpNNS42NSA4LjE1Yy4yLS4yLjUtLjIuNyAwbDIgMmMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0w2Ljc5IDExSDEuNWEuNS41IDAgMCAxIDAtMWg1LjNMNS42NCA4Ljg1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93UGFyYWdyYXBoMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQYXJhZ3JhcGgyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3LjI1IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgOGgtMy44bDEuMzYgMS41YS43NS43NSAwIDAgMS0xLjEyIDFMOS4yIDcuNzVhLjc1Ljc1IDAgMCAxIDAtMUwxMS43IDRhLjc1Ljc1IDAgMCAxIDEuMTIgMWwtMS4zNiAxLjVoMy44Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMi41YzAtLjQxLjM0LS43NS43NS0uNzVaTTguMyA5LjVhLjc1Ljc1IDAgMSAwLTEuMSAxTDguNTUgMTJoLTUuOGEuNzUuNzUgMCAwIDAgMCAxLjVoNS44TDcuMiAxNWEuNzUuNzUgMCAwIDAgMS4xIDFsMi41LTIuNzVhLjc1Ljc1IDAgMCAwIDAtMUw4LjMgOS41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dQYXJhZ3JhcGgyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQYXJhZ3JhcGgyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMi4xNSAxMC44NWEuNS41IDAgMCAwIC43LS43TDEwLjcxIDhoNC43OUEyLjUgMi41IDAgMCAwIDE4IDUuNXYtM3MwLS41LS41LS41LS41LjUtLjUuNXYzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNC44bDIuMTUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0zIDNhLjUuNSAwIDAgMCAwIC43bDMgM1ptLTQuMy0xLjdhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTJIMi41cy0uNSAwLS41LjUuNS41LjUuNWg2LjhsLTIuMTUgMi4xNWEuNS41IDAgMCAwIC43LjdsMy0zYS41LjUgMCAwIDAgMC0uN2wtMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dQYXJhZ3JhcGgyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1BhcmFncmFwaDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLTMgM2gtNC41OWwyLjMgMi4zYTEgMSAwIDAgMS0xLjQyIDEuNGwtNC00YTEgMSAwIDAgMSAwLTEuNGw0LTRhMSAxIDAgMSAxIDEuNDIgMS40TDE0LjQgOEgxOWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAxIDEtMVpNNy4zIDExLjNhMSAxIDAgMCAwIDAgMS40TDkuNTggMTVIM2ExIDEgMCAxIDAgMCAyaDYuNTlsLTIuMyAyLjNhMSAxIDAgMSAwIDEuNDIgMS40bDQtNEExIDEgMCAwIDAgMTMgMTZhMSAxIDAgMCAwLS4zLS43MWwtNC00YTEgMSAwIDAgMC0xLjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93UGFyYWdyYXBoMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UGFyYWdyYXBoMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEuMjUgMmMuNDEgMCAuNzUuMzQuNzUuNzV2NGEyLjc1IDIuNzUgMCAwIDEtMi43NSAyLjc1aC01LjY5bDIuNzIgMi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC00LTRhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LTRhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkwxMy41NiA4aDUuNjljLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di00YzAtLjQxLjM0LS43NS43NS0uNzVaTTcuNzIgMTEuMjJjLS4zLjMtLjMuNzcgMCAxLjA2TDEwLjQ0IDE1SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDcuNjlsLTIuNzIgMi43MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQtNGMuMy0uMy4zLS43NyAwLTEuMDZsLTQtNGEuNzUuNzUgMCAwIDAtMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dQcmV2aW91czEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UHJldmlvdXMxMkZpbGxlZCcsIFwiMTJcIiwgW1wibTYuODEgNiAyLjcyLTIuNzJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkw1LjIyIDUuNDdjLS4zLjMtLjMuNzcgMCAxLjA2bDMuMjUgMy4yNWEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDYuODEgNlpNMyAyLjc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dQcmV2aW91czEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1ByZXZpb3VzMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJtNi4yIDYgMy4xNS0zLjE1YS41LjUgMCAxIDAtLjctLjdsLTMuNSAzLjVhLjUuNSAwIDAgMCAwIC43bDMuNSAzLjVhLjUuNSAwIDAgMCAuNy0uN0w2LjIxIDZaTTMgMi41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dQcmV2aW91czE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UHJldmlvdXMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEyLjMgMTEuNzRhLjc1Ljc1IDAgMSAxLTEuMSAxLjAybC00LTQuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wMmw0LTQuMjVhLjc1Ljc1IDAgMSAxIDEuMSAxLjAyTDguNzggOGwzLjUyIDMuNzRaTTQuNzUgM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djguNWEuNzUuNzUgMCAwIDAgMS41IDB2LTguNUEuNzUuNzUgMCAwIDAgNC43NSAzWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UHJldmlvdXMxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQcmV2aW91czE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEyLjM1IDMuODVhLjUuNSAwIDAgMC0uNy0uN2wtNC41IDQuNWEuNS41IDAgMCAwIDAgLjdsNC41IDQuNWEuNS41IDAgMCAwIC43LS43TDguMjEgOGw0LjE0LTQuMTVaTTQgMy41YS41LjUgMCAwIDEgMSAwdjlhLjUuNSAwIDAgMS0xIDB2LTlaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dQcmV2aW91czIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UHJldmlvdXMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgNC43NWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXY5YS43NS43NSAwIDAgMCAxLjUuMVY1LjVBLjc1Ljc1IDAgMCAwIDYgNC43NVptOC4yOC4yMmEuNzUuNzUgMCAwIDAtLjk4LS4wN2wtLjA4LjA3LTQuNSA0LjVhLjc1Ljc1IDAgMCAwLS4wNy45OGwuMDcuMDggNC41IDQuNWEuNzUuNzUgMCAwIDAgMS4xMy0uOThsLS4wNy0uMDhMMTAuMzEgMTBsMy45Ny0zLjk3Yy4zLS4zLjMtLjc3IDAtMS4wNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1ByZXZpb3VzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UHJldmlvdXMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDVhLjUuNSAwIDAgMC0uNS40MXY5LjA5YS41LjUgMCAwIDAgMSAuMDlWNS41QS41LjUgMCAwIDAgNiA1Wm03Ljg1LjE1YS41LjUgMCAwIDAtLjYzLS4wNmwtLjA3LjA2LTQuNSA0LjVhLjUuNSAwIDAgMC0uMDYuNjNsLjA2LjA3IDQuNSA0LjVhLjUuNSAwIDAgMCAuNzYtLjYzbC0uMDYtLjA3TDkuNzEgMTBsNC4xNC00LjE1YS41LjUgMCAwIDAgMC0uN1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1ByZXZpb3VzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQcmV2aW91czI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNiAzYTEgMSAwIDAgMC0xIC44OFYyMGExIDEgMCAwIDAgMiAuMTJWNGExIDEgMCAwIDAtMS0xWm0xMi43LjNhMSAxIDAgMCAwLTEuMzEtLjA5bC0uMS4wOC04IDhhMSAxIDAgMCAwLS4wOCAxLjMybC4wOC4xIDggOGExIDEgMCAwIDAgMS41LTEuMzJsLS4wOC0uMUwxMS40IDEybDcuMy03LjNhMSAxIDAgMCAwIDAtMS40WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UHJldmlvdXMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dQcmV2aW91czI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNzUgM2MtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxNi41YS43NS43NSAwIDAgMCAxLjUuMVYzLjc1QS43NS43NSAwIDAgMCA1Ljc1IDNabTEzLjAzLjIyYS43NS43NSAwIDAgMC0uOTgtLjA3bC0uMDguMDctOC4yNSA4LjI1YS43NS43NSAwIDAgMC0uMDcuOThsLjA3LjA4IDguMjUgOC4yNWEuNzUuNzUgMCAwIDAgMS4xMy0uOThsLS4wNy0uMDhMMTEuMDYgMTJsNy43Mi03LjcyYy4zLS4zLjMtLjc3IDAtMS4wNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlZG8xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlZG8xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzIDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjMuMUw4LjgzIDMuMTZhNCA0IDAgMCAwLTUuNjYgNS42Nmw0Ljk1IDQuOTVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkw0LjIzIDcuNzdhMi41IDIuNSAwIDAgMSAzLjU0LTMuNTRsMi4yNyAyLjI3SDcuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNGMuNDcgMCAuODUtLjM4Ljg1LS44NXYtNC40WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVkbzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlZG8xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMyAyLjVhLjUuNSAwIDAgMC0xIDB2My44NEw4LjgzIDMuMTdhNCA0IDAgMCAwLTUuNjYgNS42Nmw1LjAzIDUuMDJhLjUuNSAwIDAgMCAuNy0uN0wzLjg4IDguMTJhMyAzIDAgMCAxIDQuMjQtNC4yNEwxMS4yNCA3SDcuNWEuNS41IDAgMCAwIDAgMWg0LjlhLjYuNiAwIDAgMCAuNi0uNlYyLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZWRvMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZWRvMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy4xNCA2LjVoLTIuMzlhLjc1Ljc1IDAgMSAwIDAgMS41aDQuNGMuNDcgMCAuODUtLjM4Ljg1LS44NXYtNC40YS43NS43NSAwIDAgMC0xLjUgMFY1LjdsLTMuMDYtMi42NmE1LjI1IDUuMjUgMCAwIDAtNi44OCA3LjkybDguMTcgNy4xYS43NS43NSAwIDEgMCAuOTgtMS4xM2wtOC4xNy03LjFhMy43NSAzLjc1IDAgMSAxIDQuOTItNS42NmwyLjY4IDIuMzNaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZWRvMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVkbzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE1IDIuNWEuNS41IDAgMCAxIDEgMHY0LjlhLjYuNiAwIDAgMS0uNi42aC00LjlhLjUuNSAwIDAgMSAwLTFoMy42bC0zLjQ4LTMuMDJhNCA0IDAgMSAwLTUuMjQgNi4wNGw4LjE3IDcuMWEuNS41IDAgMSAxLS42Ni43NmwtOC4xNy03LjFhNSA1IDAgMSAxIDYuNTYtNy41NUwxNSA2LjQ2VjIuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlZG8yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlZG8yNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE4IDcuNTktMy42NC0zLjY0YTYuNjYgNi42NiAwIDEgMC05LjQyIDkuNDJsOC4zNCA4LjM0YTEgMSAwIDAgMCAxLjQxLTEuNDJsLTguMzQtOC4zM2E0LjY2IDQuNjYgMCAwIDEgNi40Mi02Ljc2bC4xOC4xN0wxNi41OSA5SDEyYTEgMSAwIDAgMC0xIC44OFYxMGExIDEgMCAwIDAgLjg4IDFIMTlhMSAxIDAgMCAwIDEtLjg4VjNhMSAxIDAgMCAwLTItLjExdjQuN2wtMy42NC0zLjY0TDE4IDcuNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlZG8yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZWRvMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTkuMjUgMmMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXY1LjY5bC00LjU3LTQuNTZhNi40MSA2LjQxIDAgMCAwLTguODgtLjE4bC0uMTkuMThhNi40IDYuNCAwIDAgMCAwIDkuMDZsOC44NSA4Ljg0YS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTguODUtOC44NGE0LjkgNC45IDAgMCAxIDYuNzctNy4xbC4xOC4xNiA0LjU3IDQuNTZoLTUuNjljLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjFjMCAuMzguMjguNy42NS43NGwuMS4wMWg3LjVjLjM4IDAgLjctLjI4Ljc0LS42NWwuMDEtLjF2LTcuNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlZG8yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlZG8yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTcuMDEgNS40NGE1Ljc2IDUuNzYgMCAwIDEgNy44My4xMUwyMC41NSAxMUgxNGExIDEgMCAwIDAgMCAyaDlhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDEgMC0yIDB2Ni42MkwxNi4yMyA0LjFhNy43NiA3Ljc2IDAgMCAwLTEwLjggMTEuMTVsMTAuNjMgMTAuNDZhMSAxIDAgMCAwIDEuNC0xLjQyTDYuODIgMTMuODNhNS43NiA1Ljc2IDAgMCAxIC4yLTguNFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlZG8yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZWRvMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNy4xMyA0LjY1YTYuMjYgNi4yNiAwIDAgMSA4LjAzLjY1bDYuMjcgNi4yaC03LjY4YS43NS43NSAwIDAgMCAwIDEuNWg5LjVhLjc1Ljc1IDAgMCAwIC43NS0uNzV2LTkuNWEuNzUuNzUgMCAwIDAtMS41IDB2Ny43bC02LjI4LTYuMjFBNy43NiA3Ljc2IDAgMSAwIDUuNDQgMTUuNEwxNi41IDI1LjhhLjc1Ljc1IDAgMCAwIDEuMDItMS4xTDYuNDcgMTQuMzFhNi4yNiA2LjI2IDAgMCAxIC42Ni05LjY2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVkbzMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVkbzMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjcgNC4yNmExLjI1IDEuMjUgMCAxIDAtMi41IDB2Ni4xOGwtNC42LTQuOGE4LjkyIDguOTIgMCAwIDAtNS40OC0yLjU0QTguNDQgOC40NCAwIDAgMCA3LjUgNS42MiA4LjMgOC4zIDAgMCAwIDUgMTIuNDVhOC40NyA4LjQ3IDAgMCAwIDIuMTEgNC45M2wxMS4yMSAxMS4zYTEuMjUgMS4yNSAwIDEgMCAxLjc4LTEuNzZMOC44OSAxNS42MmE2LjA0IDYuMDQgMCAwIDEtMS40LTMuNDEgNS44IDUuOCAwIDAgMSAxLjc3LTQuODMgNS45NSA1Ljk1IDAgMCAxIDQuOTItMS44YzEuNjcuMTcgMy4xMy45NSAzLjkxIDEuNzhsNC45NSA1LjE2SDE2LjZhMS4yNSAxLjI1IDAgMCAwIDAgMi41aDkuMTVjLjcgMCAxLjI1LS41NiAxLjI1LTEuMjVWNC4yNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlZG8zMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVkbzMyTGlnaHQnLCBcIjMyXCIsIFtcIk0yNiAzLjVhLjUuNSAwIDAgMSAxIDB2MTJhLjUuNSAwIDAgMS0uNS41aC0xMmEuNS41IDAgMCAxIDAtMWgxMC43OWwtOS4wNy05LjA3YTYuNTcgNi41NyAwIDEgMC05LjMgOS4zbDEyLjkzIDEyLjkyYS41LjUgMCAwIDEtLjcuN0w2LjIxIDE1LjkzYTcuNTcgNy41NyAwIDAgMSAxMC43LTEwLjdMMjYgMTQuMjhWMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZWRvMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVkbzMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTguNjMgNy4wNGE1LjkgNS45IDAgMCAxIDQuNjEtMi4xIDcgNyAwIDAgMSA1IDIuNTdMMjMuNjIgMTRIMTVhMSAxIDAgMCAwIDAgMmgxMWExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMSAwLTIgMHY4LjU0TDE5Ljc2IDYuMmwtLjAxLS4wMWE5IDkgMCAwIDAtNi40NS0zLjI1IDcuOSA3LjkgMCAwIDAtNi4xNyAyLjc3IDguNDIgOC40MiAwIDAgMCAuMDEgMTEuMmw1LjU5IDUuODMgNS40MyA1LjYzLjMyLjMyYTEgMSAwIDAgMCAxLjQzLTEuNGwtLjMxLS4zMS01LjQzLTUuNjItNS41Ni01LjgyYTYuNDIgNi40MiAwIDAgMSAuMDItOC41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVkbzQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVkbzQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDEgNS41YTEuNSAxLjUgMCAwIDAtMyAwdjExLjQ4bC03LjktOC4wNmMtNS41Ny02LjMtMTQuOTUtNi4xNi0xOS45My0uNjctNSA1LjUyLTMuMzggMTMuMzEtLjAzIDE3LjIzaC4wMWwyLjI2IDIuNTUgMi41NCAyLjU0IDQuMjQgNC4xNiA4LjI1IDguMzMuNS41YTEuNSAxLjUgMCAxIDAgMi4xMi0yLjEybC0uNS0uNS04LjI1LTguMzQtNC4yNS00LjE3LTIuNDctMi40Ni0yLjE4LTIuNDZjLTIuNjMtMy4wOS0zLjc0LTkuMTQtLjAyLTEzLjI0IDMuNzQtNC4xMiAxMS4wNS00LjM3IDE1LjQ5LjY3bC4wMi4wM0wzNS43OCAxOUgyNC41YTEuNSAxLjUgMCAwIDAgMCAzaDE1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZWRvNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVkbzQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjE1IDkuODRjNC4xNy00LjYgMTEuMy00LjUgMTUuODYuNjdsLjAxLjAyIDguNTYgOC45NkgyNC4yYTEuMjUgMS4yNSAwIDAgMCAwIDIuNWgxNS41NWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWNS4yN2ExLjI1IDEuMjUgMCAwIDAtMi41IDB2MTIuNmwtOC42NC05LjAzYy01LjQ0LTYuMTgtMTQuMy02LjQ4LTE5LjU2LS42OC01LjI0IDUuNzgtMy42MiAxMy4zMi4wMSAxNy4yaC4wMWw4Ljk4IDkuMTggOC43NiA4Ljg0LjI1LjI1YTEuMjUgMS4yNSAwIDEgMCAxLjc3LTEuNzZsLS4yNS0uMjUtOC43NC04LjgzLTguOTYtOS4xNWExMC4yMSAxMC4yMSAwIDAgMSAuMDItMTMuOFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdDExNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdDExNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEyLjc1IDUuNTFjLjI2IDAgLjQ4LjEzLjYyLjMzbC4wNC4wNmEzLjk4IDMuOTggMCAwIDEgLjU4IDIuMzVBNC41IDQuNSAwIDAgMCAxMi41IDhjMC0uNS0uMTQtLjk2LS40LTEuMzRhLjc1Ljc1IDAgMCAxIC42NC0xLjE0Wk04IDEyLjV2LS4wNkw3LjU1IDEyaC40OGMuMDYtLjUzLjItMS4wNC40NC0xLjVoLS45MWwuNzItLjcyLjA3LS4wOWEuNzUuNzUgMCAwIDAtMS4xMy0uOTdsLTIgMi0uMDguMDhjLS4yMi4zLS4yLjcxLjA4Ljk4bDIgMiAuMDguMDdjLjI3LjIuNjQuMi45IDBBNC41IDQuNSAwIDAgMSA4IDEyLjVaTTcuNzIgMi4yMmEuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDcgMiAyIC4wNy4wOGMuMi4yNi4yLjYyLjAxLjg5bC0uMDguMDktMiAyLS4wOC4wN2MtLjI2LjItLjYyLjItLjg5LjAxbC0uMDktLjA4LS4wNy0uMDhhLjc1Ljc1IDAgMCAxLS4wMS0uODhsLjA4LS4xLjcyLS43Mkg2YTIuNSAyLjUgMCAwIDAtMi41IDIuMzRWOGMwIC40Mi4xLjgyLjI5IDEuMTdsLjEuMThjLjA3LjExLjExLjI0LjExLjM4YS43NS43NSAwIDAgMS0xLjM5LjRBNCA0IDAgMCAxIDUuOCA0TDYgNGgyLjQ0bC0uNzItLjcyLS4wNy0uMDlhLjc1Ljc1IDAgMCAxIC4wNy0uOTdaTTE2IDEyLjVhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBabS0yLjk1LTIuNjZhLjYyLjYyIDAgMCAwLS42OC4yM2MtLjIxLjMtLjU4LjczLTEuMS45OGEuNS41IDAgMSAwIC40NS45Yy4zLS4xNS41Ni0uMzQuNzgtLjUzdjMuMDhhLjUuNSAwIDAgMCAxIDB2LTQuMDhhLjYxLjYxIDAgMCAwLS40NS0uNThaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdDExNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXQxMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTIuOSA1LjI0QTMuOTkgMy45OSAwIDAgMSAxNCA4LjI1YTQuNDcgNC40NyAwIDAgMC0xLS4yMlY4YTMgMyAwIDAgMC0uODctMi4xLjUuNSAwIDAgMSAuNjktLjcybC4wNy4wNlpNOC4yNSAxMWMtLjEyLjMyLS4yLjY1LS4yMyAxSDYuN2wxLjE1IDEuMTVjLjE3LjE3LjE5LjQ0LjA1LjY0bC0uMDUuMDdhLjUuNSAwIDAgMS0uNjQuMDVsLS4wNy0uMDUtMi0yYS41LjUgMCAwIDEtLjA2LS42NGwuMDYtLjA3IDItMmEuNS41IDAgMCAxIC43Ni42M2wtLjA1LjA3TDYuNyAxMWgxLjU1Wm0uNTItOC45MS4wNy4wNSAyIDIgLjA2LjA4YS41LjUgMCAwIDEgMCAuNTZsLS4wNS4wNy0yIDItLjA4LjA2YS41LjUgMCAwIDEtLjU2IDBsLS4wNy0uMDUtLjA2LS4wN2EuNS41IDAgMCAxIDAtLjU3bC4wNi0uMDdMOS4yOSA1SDZhMyAzIDAgMCAwLTMgMi44MlY4YzAgLjgyLjMzIDEuNTYuODYgMi4xYS41LjUgMCAwIDEtLjcxLjdBNCA0IDAgMCAxIDUuOCA0aDMuNUw4LjE0IDIuODVsLS4wNi0uMDdhLjUuNSAwIDAgMSAuNy0uN1pNMTYgMTIuNWEzLjUgMy41IDAgMSAxLTcgMCAzLjUgMy41IDAgMCAxIDcgMFptLTIuOTUtMi42NmEuNjIuNjIgMCAwIDAtLjY4LjIzYy0uMjEuMy0uNTguNzMtMS4xLjk4YS41LjUgMCAxIDAgLjQ1LjljLjMtLjE1LjU2LS4zNC43OC0uNTN2My4wOGEuNS41IDAgMCAwIDEgMHYtNC4wOGEuNjEuNjEgMCAwIDAtLjQ1LS41OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0MTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0MTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTUuNzUgNi4wMWMuMTggMCAuMzUuMDYuNDguMTdhNC45OCA0Ljk4IDAgMCAxIDEuNzQgNC40Yy0uNDYtLjIzLS45NS0uNC0xLjQ3LS40OVYxMGEzLjUgMy41IDAgMCAwLTEuMjYtMi42OS43NS43NSAwIDAgMSAuNS0xLjNabS01LjM4IDcuNDljLS4xOC40Ny0uMy45OC0uMzUgMS41SDguNTZsMS4yMiAxLjIyYy4yNy4yNy4zLjY4LjA4Ljk4bC0uMDguMDhhLjc1Ljc1IDAgMCAxLS45Ny4wN2wtLjA5LS4wNy0yLjUtMi41YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDggMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4xNC45OGwtLjA4LjA4LTEuMjIgMS4yMmgxLjgxWm0tLjE1LTEwLjc4YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyAyLjUgMi41LjA4LjA4Yy4xOS4yNi4yLjYyIDAgLjg5bC0uMDguMDktMi41IDIuNS0uMDguMDdjLS4yNi4yLS42Mi4yLS44OC4wMWwtLjEtLjA4LS4wNy0uMDhhLjc1Ljc1IDAgMCAxIDAtLjg5bC4wNy0uMDkgMS4yMi0xLjIySDdhMy41IDMuNSAwIDAgMC0zLjUgMy4zdi4yYzAgMS4wOC41IDIuMDUgMS4yNiAyLjcuMTUuMTMuMjQuMzIuMjQuNTRhLjc1Ljc1IDAgMCAxLTEuMjUuNTZBNSA1IDAgMCAxIDYuNzggNWg0LjY2bC0xLjIyLTEuMjItLjA3LS4wOGEuNzUuNzUgMCAwIDEgLjA3LS45OFpNMjAgMTUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTMuOTUtMi42NmEuNjIuNjIgMCAwIDAtLjY4LjIzYy0uMjEuMy0uNTguNzMtMS4xLjk4YS41LjUgMCAxIDAgLjQ1LjljLjMtLjE1LjU2LS4zNC43OC0uNTN2My4wOGEuNS41IDAgMCAwIDEgMHYtNC4wOGEuNjEuNjEgMCAwIDAtLjQ1LS41OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0MTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdDEyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNi41IDYuNjdhLjUuNSAwIDAgMSAuMy4xbC4wOC4wNy4wMS4wMmE0Ljk4IDQuOTggMCAwIDEgMS4wOCAzLjcyYy0uMzEtLjE1LS42NC0uMjgtLjk4LS4zN2E0IDQgMCAwIDAtLjg4LTIuNzMuNS41IDAgMCAxIC4zOS0uODFaTTEwLjIgMTRjLS4wOC4zMi0uMTUuNjYtLjE4IDFINi43bDEuNjUgMS42NWMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2LTIuNS0yLjVhLjUuNSAwIDAgMS0uMDYtLjYzbC4wNi0uMDcgMi41LTIuNWEuNS41IDAgMCAxIC43Ni42M2wtLjA2LjA3TDYuNzIgMTRoLjE0TDcgMTRoMy4yWm0xLjQ1LTExLjM1YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDYgMi41IDIuNS4wNi4wN2EuNS41IDAgMCAxIDAgLjU2bC0uMDYuMDctMi41IDIuNS0uMDcuMDZhLjUuNSAwIDAgMS0uNTYgMGwtLjA3LS4wNi0uMDYtLjA3YS41LjUgMCAwIDEgMC0uNTZsLjA2LS4wN0wxMy4yOCA2aC0uMTRMMTMgNkg3YTQgNCAwIDAgMC0zLjEgNi41MmMuMDYuMDkuMS4yLjEuMzFhLjUuNSAwIDAgMS0uOS4zQTQuOTkgNC45OSAwIDAgMSA2Ljc3IDVoNi41MmwtMS42NS0xLjY1LS4wNi0uMDdhLjUuNSAwIDAgMSAuMDYtLjYzWk0yMCAxNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy45NS0yLjY2YS42Mi42MiAwIDAgMC0uNjguMjNjLS4yMS4zLS41OC43My0xLjEuOThhLjUuNSAwIDEgMCAuNDUuOWMuMy0uMTUuNTYtLjM0Ljc4LS41M3YzLjA4YS41LjUgMCAwIDAgMSAwdi00LjA4YS42MS42MSAwIDAgMC0uNDUtLjU4WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXQxMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXQxMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xNC43MSAyLjI5LS4wOC0uMDhhMSAxIDAgMCAwLTEuMzMuMDhsLS4wOC4wOWExIDEgMCAwIDAgLjA4IDEuMzJMMTQuNiA1SDguNzZhNyA3IDAgMCAwLTUuNTcgMTAuOSAxIDEgMCAwIDAgMS42My0xLjE3bC0uMTQtLjIyQTUgNSAwIDAgMSA5IDdoNS42bC0xLjMgMS4zLS4wOC4wOGExIDEgMCAwIDAgMS41IDEuMzNsMy0zIC4wOC0uMWExIDEgMCAwIDAtLjA4LTEuMzJsLTMtM1ptNi4wOCA1Ljc3YTEgMSAwIDAgMC0xLjYyIDEuMThjLjQ0LjY2LjcyIDEuNDIuOCAyLjI1Ljc0LjMgMS40MS43NCAxLjk5IDEuMjhhNy4wNyA3LjA3IDAgMCAwLTEuMTctNC43MVpNOS40IDE2Ljk5aDEuNjFhNi42IDYuNiAwIDAgMCAuMTUgMkg5LjRsMS4zIDEuMy4wOS4wOWExIDEgMCAwIDEtMS40IDEuNGwtLjEtLjA4LTMtMy0uMDgtLjA5YTEgMSAwIDAgMSAwLTEuMjNsLjA4LS4xIDMtMyAuMS0uMDdhMSAxIDAgMCAxIDEuMjItLjAxbC4xLjA4LjA4LjFhMSAxIDAgMCAxIDAgMS4yMmwtLjA4LjEtMS4zIDEuMjlaTTIzIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTQuODktMy40OWEuNS41IDAgMCAwLS41Ni4yN2MtLjA1LjExLS4yNy40NS0uNjEuODItLjMzLjM4LS43NC43NC0xLjE2Ljk1YS41LjUgMCAxIDAgLjQ0LjljLjUtLjI1LjkzLS42MiAxLjI4LS45OHY0LjUzYS41LjUgMCAwIDAgMSAwdi02YS41LjUgMCAwIDAtLjM5LS40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0MTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdDEyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xNC42MSAyLjQ3LS4wOC0uMDdhLjc1Ljc1IDAgMCAwLS45OC4wN2wtLjA3LjA4Yy0uMjIuMy0uMi43Mi4wNy45OGwxLjk3IDEuOThIOC4yN2E2LjUxIDYuNTEgMCAwIDAtNC41OCAxMC45MmwuMDcuMDZhLjc1Ljc1IDAgMCAwIDEuMDgtMS4wM2wtLjItLjIzQTUgNSAwIDAgMSA4LjUgNy4wMmg2Ljg4bC0xLjgzIDEuODQtLjA3LjA3Yy0uMjIuMy0uMi43Mi4wNyAxIC4zLjI5Ljc3LjI5IDEuMDYgMGwzLjE4LTMuMi4wNy0uMDhjLjIyLS4zLjItLjcyLS4wNy0uOTlsLTMuMTgtMy4xOVptNS42MiA1LjFhLjc1Ljc1IDAgMCAwLTEuMDUgMS4wNyA1IDUgMCAwIDEgMS4zMSAzLjA5Yy41NC4yOCAxLjAzLjYzIDEuNDcgMS4wNGE2LjY0IDYuNjQgMCAwIDAtMS42Ni01LjEzbC0uMDctLjA3Wk04LjU2IDE3LjA1aDIuNDZhNi42IDYuNiAwIDAgMCAuMDcgMS41SDguNTZsMS45IDEuOTEuMDcuMDhjLjIyLjMuMi43Mi0uMDcuOTlhLjc1Ljc1IDAgMCAxLS45Ny4wN2wtLjA5LS4wNy0zLjE4LTMuMi0uMDctLjA3YS43Ni43NiAwIDAgMSAwLS45bC4wNy0uMDkgMy4xOC0zLjIuMDgtLjA2Yy4yNi0uMi42My0uMi45IDBsLjA4LjA3LjA3LjA3Yy4yLjI3LjIuNjQgMCAuOWwtLjA3LjEtMS45IDEuOVpNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNC44OS0zLjQ5YS41LjUgMCAwIDAtLjU2LjI3Yy0uMDUuMTEtLjI3LjQ1LS42MS44Mi0uMzMuMzgtLjc0Ljc0LTEuMTYuOTVhLjUuNSAwIDEgMCAuNDQuOWMuNS0uMjUuOTMtLjYyIDEuMjgtLjk4djQuNTNhLjUuNSAwIDAgMCAxIDB2LTZhLjUuNSAwIDAgMC0uMzktLjQ5WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXRBbGwxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdEFsbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTIuNzUgNS41MWMuMjYgMCAuNDguMTMuNjIuMzNsLjA0LjA2YTQgNCAwIDAgMS0zLjIgNi4xSDcuNTRsLjczLjcyYy4yNi4yNy4yOS42OC4wNy45OGwtLjA3LjA4YS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDctMi0yYS43NS43NSAwIDAgMS0uMDgtLjk4bC4wOC0uMDggMi0yYS43NS43NSAwIDAgMSAxLjEzLjk3bC0uMDcuMDktLjcyLjcySDEwYTIuNSAyLjUgMCAwIDAgMi41LTIuMzRWOGMwLS41LS4xNC0uOTYtLjQtMS4zNGEuNzUuNzUgMCAwIDEgLjY0LTEuMTRabS01LjAzLTMuM2EuNzUuNzUgMCAwIDEgLjk4LS4wNmwuMDguMDcgMiAyIC4wNy4wOGMuMi4yNi4yLjYyLjAxLjg5bC0uMDguMDktMiAyLS4wOC4wN2MtLjI2LjItLjYyLjItLjg5LjAxbC0uMDktLjA4LS4wNy0uMDhhLjc1Ljc1IDAgMCAxLS4wMS0uODhsLjA4LS4xLjcyLS43Mkg2YTIuNSAyLjUgMCAwIDAtMi41IDIuMzRWOGMwIC40Mi4xLjgyLjI5IDEuMTdsLjEuMThjLjA3LjExLjExLjI0LjExLjM4YS43NS43NSAwIDAgMS0xLjM5LjRBNCA0IDAgMCAxIDUuOCA0TDYgNGgyLjQ0bC0uNzItLjcyLS4wNy0uMDlhLjc1Ljc1IDAgMCAxIC4wNy0uOTdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXRBbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXRBbGwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi45IDUuMjRhMy45OSAzLjk5IDAgMCAxLTIuNyA2Ljc1TDEwIDEySDYuN2wxLjE2IDEuMTVjLjE3LjE3LjE5LjQ0LjA1LjY0bC0uMDUuMDdhLjUuNSAwIDAgMS0uNjQuMDVsLS4wNy0uMDUtMi0yYS41LjUgMCAwIDEtLjA2LS42NGwuMDYtLjA3IDItMmEuNS41IDAgMCAxIC43Ni42M2wtLjA1LjA3TDYuNyAxMUgxMGEzIDMgMCAwIDAgMy0yLjgyVjhhMyAzIDAgMCAwLS44Ny0yLjEuNS41IDAgMCAxIC42OS0uNzJsLjA3LjA2Wk04Ljc3IDIuMDlsLjA3LjA1IDIgMiAuMDYuMDhhLjUuNSAwIDAgMSAwIC41NmwtLjA1LjA3LTIgMi0uMDguMDZhLjUuNSAwIDAgMS0uNTYgMGwtLjA3LS4wNS0uMDYtLjA3YS41LjUgMCAwIDEgMC0uNTdsLjA2LS4wN0w5LjI5IDVINmEzIDMgMCAwIDAtMyAyLjgyVjhjMCAuODIuMzMgMS41Ni44NiAyLjFhLjUuNSAwIDAgMS0uNzEuN0E0IDQgMCAwIDEgNS44IDRoMy41TDguMTQgMi44NWwtLjA2LS4wN2EuNS41IDAgMCAxIC43LS43WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0QWxsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXRBbGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE1Ljc1IDYuMDFjLjE4IDAgLjM0LjA2LjQ3LjE3YTUgNSAwIDAgMS0zIDguODJIOC41NmwxLjIyIDEuMjJjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTIuNS0yLjVhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOCAyLjUtMi41YS43NS43NSAwIDAgMSAxLjEzLjk4bC0uMDcuMDgtMS4yMiAxLjIySDEzYTMuNSAzLjUgMCAwIDAgMy41LTMuM1YxMGEzLjUgMy41IDAgMCAwLTEuMjYtMi42OS43NS43NSAwIDAgMSAuNS0xLjNabS01LjUzLTMuMjlhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDIuNSAyLjUuMDcuMDhjLjIuMjYuMi42Mi4wMS44OWwtLjA4LjA5LTIuNSAyLjUtLjA4LjA3Yy0uMjYuMi0uNjIuMi0uODkuMDFsLS4wOS0uMDgtLjA3LS4wOGEuNzUuNzUgMCAwIDEtLjAxLS44OWwuMDgtLjA5IDEuMjItMS4yMkg3YTMuNSAzLjUgMCAwIDAtMy41IDMuM3YuMmMwIDEuMDguNDkgMi4wNSAxLjI2IDIuNy4xNS4xMy4yNC4zMi4yNC41NGEuNzUuNzUgMCAwIDEtMS4yNS41NkE1IDUgMCAwIDEgNi43OCA1aDQuNjZsLTEuMjItMS4yMi0uMDctLjA4YS43NS43NSAwIDAgMSAuMDctLjk4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0QWxsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0QWxsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuNSA2LjY3YS41LjUgMCAwIDEgLjMuMWwuMDguMDcuMDEuMDJBNSA1IDAgMCAxIDEzLjIyIDE1TDEzIDE1SDYuN2wxLjY1IDEuNjVjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN2EuNS41IDAgMCAxLS42My4wNmwtLjA3LS4wNi0yLjUtMi41YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3IDIuNS0yLjVhLjUuNSAwIDAgMSAuNzYuNjNsLS4wNi4wN0w2LjcyIDE0aC4xNEw3IDE0aDZhNCA0IDAgMCAwIDMuMTEtNi41Mi41LjUgMCAwIDEgLjM5LS44MVptLTQuODUtNC4wMmEuNS41IDAgMCAxIC42My0uMDZsLjA3LjA2IDIuNSAyLjUuMDYuMDdhLjUuNSAwIDAgMSAwIC41NmwtLjA2LjA3LTIuNSAyLjUtLjA3LjA2YS41LjUgMCAwIDEtLjU2IDBsLS4wNy0uMDYtLjA2LS4wN2EuNS41IDAgMCAxIDAtLjU2bC4wNi0uMDdMMTMuMjggNmgtLjE0TDEzIDZIN2E0IDQgMCAwIDAtMy4xIDYuNTJjLjA2LjA5LjEuMi4xLjMxYS41LjUgMCAwIDEtLjkuM0E0Ljk5IDQuOTkgMCAwIDEgNi43NyA1aDYuNTJsLTEuNjUtMS42NS0uMDYtLjA3YS41LjUgMCAwIDEgLjA2LS42M1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdEFsbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0QWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xNC43MSAyLjI5LS4wOC0uMDhhMSAxIDAgMCAwLTEuMzMuMDhsLS4wOC4wOWExIDEgMCAwIDAgLjA4IDEuMzJMMTQuNiA1SDguNzZhNyA3IDAgMCAwLTUuNTcgMTAuOSAxIDEgMCAwIDAgMS42My0xLjE3bC0uMTQtLjIyQTUgNSAwIDAgMSA5IDdoNS42bC0xLjMgMS4zLS4wOC4wOGExIDEgMCAwIDAgMS41IDEuMzNsMy0zIC4wOC0uMWExIDEgMCAwIDAtLjA4LTEuMzJsLTMtM1ptNi4wOCA1Ljc3YTEgMSAwIDAgMC0xLjYyIDEuMThBNSA1IDAgMCAxIDE1IDE2Ljk5SDkuNDFsMS4zLTEuMy4wOC0uMDlhMSAxIDAgMCAwIDAtMS4yM2wtLjA4LS4wOS0uMS0uMDhhMSAxIDAgMCAwLTEuMjMgMGwtLjA5LjA4LTMgMy0uMDguMWExIDEgMCAwIDAgMCAxLjIzbC4wOC4wOSAzIDMgLjEuMDlhMSAxIDAgMCAwIDEuNC0xLjQxbC0uMDgtLjA5LTEuMy0xLjNoNS44M0E3IDcgMCAwIDAgMjAuOCA4LjA1WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0QWxsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0QWxsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTQuNjEgMi40Ny0uMDgtLjA3YS43NS43NSAwIDAgMC0uOTguMDdsLS4wNy4wOGMtLjIyLjMtLjIuNzIuMDcuOThsMS45NyAxLjk4SDguMjdhNi41MSA2LjUxIDAgMCAwLTQuNTggMTAuOTJsLjA3LjA2YS43NS43NSAwIDAgMCAxLjA4LTEuMDNsLS4yLS4yM0E1IDUgMCAwIDEgOC41IDcuMDJoNi44OGwtMS44MyAxLjg0LS4wNy4wN2MtLjIyLjMtLjIuNzIuMDcgMSAuMy4yOS43Ny4yOSAxLjA2IDBsMy4xOC0zLjIuMDctLjA4Yy4yMi0uMy4yLS43Mi0uMDctLjk5bC0zLjE4LTMuMTlabTUuNjIgNS4xYS43NS43NSAwIDAgMC0xLjA1IDEuMDcgNS4wMSA1LjAxIDAgMCAxLTMuNjggOC40MUg4LjU2bDEuOS0xLjkuMDgtLjFjLjItLjI2LjItLjYzIDAtLjlsLS4wOC0uMDctLjA4LS4wOGEuNzUuNzUgMCAwIDAtLjkuMDFsLS4wOC4wNy0zLjE4IDMuMi0uMDcuMDhjLS4yLjI2LS4yLjYzIDAgLjlsLjA3LjA4IDMuMTggMy4xOS4wOS4wN2MuMjkuMjIuNy4yLjk3LS4wN3MuMy0uNy4wNy0uOTlsLS4wNy0uMDctMS45LTEuOTFIMTUuNzNBNi41MSA2LjUxIDAgMCAwIDIwLjMgNy42M2wtLjA3LS4wN1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdEFsbE9mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0QWxsT2ZmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yLjIyIDIuMjJhLjc1Ljc1IDAgMCAxIC45Ny0uMDdsLjA5LjA3IDEwLjUgMTAuNS4wNy4wOGEuNzUuNzUgMCAwIDEtMS4wNSAxLjA1bC0uMDgtLjA3LTEuODctMS44N2MtLjE5LjA0LS4zNy4wNy0uNTYuMDhMMTAgMTJINy41NmwuNzIuNzJjLjI2LjI3LjI5LjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLTJhLjc1Ljc1IDAgMCAxLS4wOC0uOThsLjA4LS4wOCAyLTJhLjc1Ljc1IDAgMCAxIC4yNi0uMTdMNC43NiA1LjgzYTIuNSAyLjUgMCAwIDAtLjk3IDMuMzRsLjEuMThjLjA3LjExLjExLjI0LjExLjM4YS43NS43NSAwIDAgMS0xLjM4LjQgNCA0IDAgMCAxIDEuMDYtNS4zOUwyLjIyIDMuMjhsLS4wNy0uMDhhLjc1Ljc1IDAgMCAxIC4wNy0uOThabTEwLjUzIDMuM2MuMjYgMCAuNDguMTIuNjIuMzJsLjA0LjA2YTMuOTggMy45OCAwIDAgMS0uMzYgNC42OWwtMS4wNy0xLjA3YTIuNDkgMi40OSAwIDAgMCAuMTMtMi44Ni43NS43NSAwIDAgMSAuNjQtMS4xNFptLTQuNCA0LjE3LS4wNy4wOS0uNzIuNzJoMS44OGwtLjk5LS45OWEuNzUuNzUgMCAwIDEtLjEuMThabS0uNjMtNy40N2EuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDcgMiAyIC4wOC4wOGMuMi4yNi4yLjYyIDAgLjg5bC0uMDcuMDlMOS4yNiA2LjggOC4yIDUuNzRsLjI1LS4yNGgtLjVMNi40NiA0aDJsLS43My0uNzItLjA3LS4wOWEuNzUuNzUgMCAwIDEgLjA3LS45N1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGVhdEFsbE9mZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdEFsbE9mZjE2UmVndWxhcicsIFwiMTZcIiwgW1wibTIuNzggMi4wOS4wNy4wNiAxMSAxMWEuNS41IDAgMCAxLS42My43NmwtLjA3LS4wNi0yLjAyLTIuMDFjLS4yOS4wOC0uNTkuMTQtLjkuMTVMMTAgMTJINi43bDEuMTYgMS4xNWMuMTcuMTcuMTkuNDQuMDUuNjRsLS4wNS4wN2EuNS41IDAgMCAxLS42NC4wNWwtLjA3LS4wNS0yLTJhLjUuNSAwIDAgMS0uMDYtLjY0bC4wNi0uMDcgMi0yYS41LjUgMCAwIDEgLjc2LjYzbC0uMDUuMDdMNi43IDExSDEwbC4yOC0uMDEtNS42NS01LjY2YTMgMyAwIDAgMC0uNzcgNC43Ny41LjUgMCAwIDEtLjcxLjcgMy45OCAzLjk4IDAgMCAxIC43NC02LjJMMi4xNSAyLjg1YS41LjUgMCAwIDEgLjYzLS43NlptOS43MiAyLjk2YS41LjUgMCAwIDEgLjMyLjEybC4wNy4wN2EzLjk5IDMuOTkgMCAwIDEgMCA1LjUzbC0uNzItLjdhMi45OSAyLjk5IDAgMCAwLS4wNC00LjE4LjUuNSAwIDAgMSAuMzctLjg0Wm0tNC4zNS0yLjlhLjUuNSAwIDAgMSAuNjMtLjA2bC4wNy4wNSAyIDIgLjA2LjA4YS41LjUgMCAwIDEgMCAuNTZsLS4wNS4wN0w4LjkgNi44bC0uNzEtLjdMOS4zIDVINy4xbC0xLTFoMy4yTDguMTQgMi44NWwtLjA2LS4wN2EuNS41IDAgMCAxIC4wNi0uNjRaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXRBbGxPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGVhdEFsbE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi4yMiAyLjIyYS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyAxNC41IDE0LjUuMDcuMDhhLjc1Ljc1IDAgMCAxLTEuMDUgMS4wNWwtLjA4LS4wNy0yLjg2LTIuODVjLS4xOC4wMy0uMzcuMDUtLjU3LjA2TDEzIDE1SDguNTZsMS4yMiAxLjIyYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjUtMi41YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDggMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4xMy45OGwtLjA3LjA4LTEuMjIgMS4yMmgzLjg4TDUuNjkgNi43NUEzLjUgMy41IDAgMCAwIDMuNSA5LjgxVjEwYzAgMS4wOC40OSAyLjA1IDEuMjYgMi43LjE1LjEzLjI0LjMyLjI0LjU0YS43NS43NSAwIDAgMS0xLjI1LjU2IDQuOTggNC45OCAwIDAgMSAuODItOC4xN0wyLjIyIDMuMjhsLS4wNy0uMDhhLjc1Ljc1IDAgMCAxIC4wNy0uOThabTEzLjUzIDMuNzljLjE4IDAgLjM0LjA2LjQ3LjE3YTQuOTggNC45OCAwIDAgMSAuMDMgNy42MmwtMS4wNi0xLjA3YTMuNSAzLjUgMCAwIDAgLjA1LTUuNDIuNzUuNzUgMCAwIDEgLjUtMS4zWm0tNS41My0zLjNhLjc1Ljc1IDAgMCAxIC45OC0uMDZsLjA4LjA3IDIuNSAyLjUuMDcuMDhjLjIuMjYuMi42Mi4wMS44OWwtLjA4LjA5LTIuNSAyLjUtLjAyLjAyLTEuMDYtMS4wNi4wMi0uMDIgMS4yMi0xLjIySDguOTVMNy40NSA1aDMuOTlsLTEuMjItMS4yMi0uMDctLjA4YS43NS43NSAwIDAgMSAuMDctLjk4WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0QWxsT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwZWF0QWxsT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi4xNSAyLjE1YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDYgMTUgMTUgLjA2LjA3YS41LjUgMCAwIDEtLjcuN2wtLjA2LS4wNy0zLTIuOThhNSA1IDAgMCAxLS44NS4xMkwxMyAxNUg2LjdsMS42NSAxLjY1Yy4xOC4xNy4yLjQ0LjA2LjYzbC0uMDYuMDdhLjUuNSAwIDAgMS0uNjMuMDZsLS4wNy0uMDYtMi41LTIuNWEuNS41IDAgMCAxLS4wNi0uNjNsLjA2LS4wNyAyLjUtMi41YS41LjUgMCAwIDEgLjc2LjYzbC0uMDYuMDdMNi43MiAxNGguMTRMNyAxNGg2bC4yOC0uMDEtNy43Mi03LjcyYTQgNCAwIDAgMC0xLjY2IDYuMjVjLjA2LjA5LjEuMi4xLjMxYS41LjUgMCAwIDEtLjkuM0E0Ljk5IDQuOTkgMCAwIDEgNC44IDUuNUwyLjE1IDIuODVsLS4wNi0uMDdhLjUuNSAwIDAgMSAuMDYtLjYzWk0xNi41IDYuNjdhLjUuNSAwIDAgMSAuMy4xbC4wOC4wNy4wMS4wMmE0Ljk4IDQuOTggMCAwIDEtLjgzIDcuMWwtLjcxLS43MmE0IDQgMCAwIDAgLjc2LTUuNzYuNS41IDAgMCAxIC4zOS0uODFaTTEyLjI4IDIuNmwuMDcuMDYgMi41IDIuNWMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3LTIuNSAyLjVhLjUuNSAwIDAgMS0uNzYtLjYzbC4wNi0uMDdMMTMuMjggNmgtLjE0TDEzIDZIOC4xbC0xLTFoNi4ybC0xLjY1LTEuNjVhLjUuNSAwIDAgMS0uMDYtLjYzbC4wNi0uMDdhLjUuNSAwIDAgMSAuNjMtLjA2WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwZWF0QWxsT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXRBbGxPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTMuNjEgMi4yLjEuMSAxOCAxOGExIDEgMCAwIDEtMS4zMiAxLjQ5bC0uMS0uMDgtMy4wNy0zLjA3Yy0uNi4yLTEuMjMuMzItMS44OS4zNUwxNSAxOUg5LjRsMS4zIDEuMy4wOS4wOWExIDEgMCAwIDEtMS40IDEuNDFsLS4xLS4wOC0zLTMtLjA4LS4xYTEgMSAwIDAgMSAwLTEuMjNsLjA4LS4xIDMtMyAuMS0uMDhhMSAxIDAgMCAxIDEuMjIgMGwuMS4wOC4wOC4wOWExIDEgMCAwIDEgMCAxLjIzbC0uMDguMUw5LjQgMTdoNS42bC41NC0uMDMtOS4yLTkuMmE1IDUgMCAwIDAtMS42NyA2Ljc1bC4xNC4yMmExIDEgMCAwIDEtMS42MyAxLjE2QTYuOTkgNi45OSAwIDAgMSA0LjkgNi4zMkwyLjI5IDMuNzFhMSAxIDAgMCAxIDEuMzItMS41Wk0yMCA3LjY5YTEgMSAwIDAgMSAuNzkuMzhsLjA1LjA4LjAyLjAzYTYuOTYgNi45NiAwIDAgMS0xIDguODdsLTEuNDEtMS40MmE0Ljk5IDQuOTkgMCAwIDAgLjg2LTYuMTZsLS4xNC0uMjJBMSAxIDAgMCAxIDIwIDcuNjhabS01LjM3LTUuNDcuMDguMDggMyAzYTEgMSAwIDAgMSAuMDkgMS4zM2wtLjA4LjA5LTMgM2ExIDEgMCAwIDEtMS41LTEuMzJsLjA4LS4xTDE0LjYgN0g5LjgzTDcuOSA1LjFjLjI4LS4wNS41Ni0uMDcuODUtLjA4aDUuODRsLTEuMy0xLjNhMSAxIDAgMCAxLS4wOC0xLjMzbC4wOC0uMWExIDEgMCAwIDEgMS4zMy0uMDdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBlYXRBbGxPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBlYXRBbGxPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0zLjIgMi4xNS4wOC4wNyAxOC41IDE4LjVhLjc1Ljc1IDAgMCAxLS45OCAxLjEzbC0uMDgtLjA3LTMuNS0zLjVjLS40NS4xMS0uOS4xOS0xLjM3LjIxbC0uMzUuMDFIOC41NmwxLjkgMS45LjA3LjA4YS43NS43NSAwIDAgMS0xLjA0IDEuMDVsLS4wOS0uMDctMy4xOC0zLjE4LS4wNy0uMDhhLjc1Ljc1IDAgMCAxIDAtLjlsLjA3LS4wOCAzLjE4LTMuMTguMDgtLjA3Yy4yNi0uMi42My0uMi45IDBsLjA4LjA3LjA3LjA3Yy4yLjI3LjIuNjMgMCAuOWwtLjA3LjA5LTEuOSAxLjloNi45NGMuMTQgMCAuMjggMCAuNDItLjAyTDYuNCA3LjQ2YTUgNSAwIDAgMC0xLjYgNy45Ljc1Ljc1IDAgMSAxLTEuMTEgMUE2LjQ3IDYuNDcgMCAwIDEgNS4zIDYuMzZMMi4yMiAzLjI4YS43NS43NSAwIDAgMSAuOTgtMS4xM1ptMTYuNTUgNS4yM2MuMjIgMCAuNDIuMS41NS4yNGE2LjQ3IDYuNDcgMCAwIDEtLjc1IDkuNDZsLTEuMDYtMS4wN2E1IDUgMCAwIDAgLjY5LTcuNC43NS43NSAwIDAgMSAuNTctMS4yNFpNMTQuNTMgMi40bC4wOC4wNyAzLjE4IDMuMThjLjI3LjI3LjMuNy4wNy45OWwtLjA3LjA3LTMuMTggMy4xOGEuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOEwxNS4zOCA3aC01LjlMNy45OCA1LjUybC4yOC0uMDJoNy4yNWwtMS45Ny0xLjk3YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDhjLjI3LS4yNy42OS0uMy45OC0uMDdaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNzggNC4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0zLjUgMy41Yy0uMy4zLS4zLjc3IDAgMS4wNmwzLjUgMy41YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMNC41NiA4aDMuNjljMi4zNSAwIDQuMjUgMS45IDQuMjUgNC4yNWEuNzUuNzUgMCAwIDAgMS41IDBBNS43NSA1Ljc1IDAgMCAwIDguMjUgNi41SDQuNTZsMi4yMi0yLjIyWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHkxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYuMzUgMy42NWMuMi4yLjIuNSAwIC43TDMuNzEgN0g4LjVhNS41IDUuNSAwIDAgMSA1LjUgNS41LjUuNSAwIDAgMS0xIDBBNC41IDQuNSAwIDAgMCA4LjUgOEgzLjdsMi42NSAyLjY1YS41LjUgMCAwIDEtLjcuN2wtMy41LTMuNWEuNS41IDAgMCAxIDAtLjdsMy41LTMuNWMuMi0uMi41LS4yLjcgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy43OCA0Ljc4YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTQuNSA0LjVjLS4zLjMtLjMuNzcgMCAxLjA2bDQuNSA0LjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw0LjU2IDkuNWg2LjE5YTUuNzUgNS43NSAwIDAgMSA1Ljc1IDUuNzUuNzUuNzUgMCAwIDAgMS41IDBjMC00LTMuMjUtNy4yNS03LjI1LTcuMjVINC41NmwzLjIyLTMuMjJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy4zNSAzLjY1Yy4yLjIuMi41IDAgLjdMMy43MSA4aDYuNzlhNy41IDcuNSAwIDAgMSA3LjUgNy41LjUuNSAwIDAgMS0xIDBBNi41IDYuNSAwIDAgMCAxMC41IDlIMy43bDMuNjUgMy42NWEuNS41IDAgMCAxLS43LjdsLTQuNS00LjVhLjUuNSAwIDAgMSAwLS43bDQuNS00LjVjLjItLjIuNS0uMi43IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuNyA2LjdhMSAxIDAgMCAwLTEuNC0xLjRsLTUgNWExIDEgMCAwIDAgMCAxLjRsNSA1YTEgMSAwIDAgMCAxLjQtMS40TDYuNDIgMTJIMTNhNiA2IDAgMCAxIDYgNiAxIDEgMCAxIDAgMiAwIDggOCAwIDAgMC04LThINi40MWwzLjMtMy4zWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuMjggNi4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC01IDVjLS4zLjMtLjMuNzcgMCAxLjA2bDUgNWEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDUuNTYgMTEuNWg3LjY5YzMuNDUgMCA2LjI1IDIuOCA2LjI1IDYuMjV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNUE3Ljc1IDcuNzUgMCAwIDAgMTMuMjUgMTBINS41NmwzLjcyLTMuNzJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHkyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTEwLjcgNS4zYTEgMSAwIDAgMSAwIDEuNEw2LjQyIDExSDE1YTEwIDEwIDAgMCAxIDEwIDEwIDEgMSAwIDEgMS0yIDAgOCA4IDAgMCAwLTgtOEg2LjQxbDQuMyA0LjNhMSAxIDAgMCAxLTEuNDIgMS40bC02LTZhMSAxIDAgMCAxIDAtMS40bDYtNmExIDEgMCAwIDEgMS40MiAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHkyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEwLjI4IDYuMjhhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtNiA2Yy0uMy4zLS4zLjc3IDAgMS4wNmw2IDZhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkw1LjU2IDEyLjVoOS4xOWE4Ljc1IDguNzUgMCAwIDEgOC43NSA4Ljc1Ljc1Ljc1IDAgMCAwIDEuNSAwQzI1IDE1LjU5IDIwLjQxIDExIDE0Ljc1IDExSDUuNTZsNC43Mi00LjcyWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHkzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xMi4xMyA2LjM3Yy41LjQ4LjUgMS4yOCAwIDEuNzZMNy4yNyAxM2g5LjQ4QzIzLjUyIDEzIDI5IDE4LjQ4IDI5IDI1LjI1di41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtLjVhOS43NSA5Ljc1IDAgMCAwLTkuNzUtOS43NUg3LjI3bDQuODYgNC44N2ExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2bC03LTdhMS4yNSAxLjI1IDAgMCAxIDAtMS43Nmw3LTdhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHkzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHkzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTAuODUgNi44NWEuNS41IDAgMCAwLS43LS43bC03IDdhLjUuNSAwIDAgMCAwIC43bDcgN2EuNS41IDAgMCAwIC43LS43TDQuNzEgMTRIMTYuNUExMS41IDExLjUgMCAwIDEgMjggMjUuNWEuNS41IDAgMCAwIDEgMEMyOSAxOC42IDIzLjQgMTMgMTYuNSAxM0g0LjdsNi4xNS02LjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTEuNyA2LjNhMSAxIDAgMCAxIDAgMS40TDYuNDIgMTNIMTdhMTIgMTIgMCAwIDEgMTIgMTIgMSAxIDAgMSAxLTIgMCAxMCAxMCAwIDAgMC0xMC0xMEg2LjQxbDUuMyA1LjNhMSAxIDAgMCAxLTEuNDIgMS40bC03LTdhMSAxIDAgMCAxIDAtMS40bDctN2ExIDEgMCAwIDEgMS40MiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHk0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTE3LjU2IDEwLjU2YTEuNSAxLjUgMCAwIDAtMi4xMi0yLjEybC0xMSAxMWExLjUgMS41IDAgMCAwIDAgMi4xMmwxMSAxMWExLjUgMS41IDAgMCAwIDIuMTItMi4xMkw5LjEyIDIySDI0LjVBMTYuNSAxNi41IDAgMCAxIDQxIDM4LjVhMS41IDEuNSAwIDAgMCAzIDBBMTkuNSAxOS41IDAgMCAwIDI0LjUgMTlIOS4xMmw4LjQ0LTguNDRaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTcuMTMgMTAuMTNhMS4yNSAxLjI1IDAgMCAwLTEuNzYtMS43NmwtMTEgMTFhMS4yNSAxLjI1IDAgMCAwIDAgMS43NmwxMSAxMWExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2TDguMjcgMjEuNWgxNi45OGM4Ljk3IDAgMTYuMjUgNy4yOCAxNi4yNSAxNi4yNWExLjI1IDEuMjUgMCAxIDAgMi41IDBDNDQgMjcuMzkgMzUuNiAxOSAyNS4yNSAxOUg4LjI3bDguODYtOC44N1pcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUFsbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi4yOCAzLjIyYy4zLjMuMy43NyAwIDEuMDZMMy4zMSA3LjI1bDIuOTcgMi45N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0zLjUtMy41YS43NS43NSAwIDAgMSAwLTEuMDZsMy41LTMuNWMuMy0uMy43Ny0uMyAxLjA2IDBabTMuNSAwYy4zLjMuMy43NyAwIDEuMDZMNy41NiA2LjVoMi4xOWE0Ljc1IDQuNzUgMCAwIDEgNC43NSA0Ljc1djFhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xQzEzIDkuNDUgMTEuNTQgOCA5Ljc1IDhINy41NmwyLjIyIDIuMjJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMy41LTMuNWEuNzUuNzUgMCAwIDEgMC0xLjA2bDMuNS0zLjVjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHlBbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUFsbDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYuMzUgMy42NWMuMi4yLjIuNSAwIC43TDMuMjEgNy41bDMuMTQgMy4xNWEuNS41IDAgMCAxLS43LjdsLTMuNS0zLjVhLjUuNSAwIDAgMSAwLS43bDMuNS0zLjVjLjItLjIuNS0uMi43IDBabTMgMGMuMi4yLjIuNSAwIC43TDYuNzEgN0g5LjVhNC41IDQuNSAwIDAgMSA0LjUgNC41djFhLjUuNSAwIDAgMS0xIDB2LTFBMy41IDMuNSAwIDAgMCA5LjUgOEg2LjdsMi42NSAyLjY1YS41LjUgMCAwIDEtLjcuN2wtMy41LTMuNWEuNS41IDAgMCAxIDAtLjdsMy41LTMuNWMuMi0uMi41LS4yLjcgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUFsbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4yOCAzLjcyYy4zLjMuMy43NyAwIDEuMDZMMy4zMSA4Ljc1bDMuOTcgMy45N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC00LjUtNC41YS43NS43NSAwIDAgMSAwLTEuMDZsNC41LTQuNWMuMy0uMy43Ny0uMyAxLjA2IDBabTQgMGMuMy4zLjMuNzcgMCAxLjA2TDguMDYgOGgzLjE5YzQgMCA3LjI1IDMuMjUgNy4yNSA3LjI1YS43NS43NSAwIDAgMS0xLjUgMCA1Ljc1IDUuNzUgMCAwIDAtNS43NS01Ljc1SDguMDZsMy4yMiAzLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTQuNS00LjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LjUtNC41Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHlBbGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjM1IDMuNjVjLjIuMi4yLjUgMCAuN0wzLjIxIDguNWw0LjE0IDQuMTVhLjUuNSAwIDAgMS0uNy43bC00LjUtNC41YS41LjUgMCAwIDEgMC0uN2w0LjUtNC41Yy4yLS4yLjUtLjIuNyAwWm0zIDBjLjIuMi4yLjUgMCAuN0w2LjcxIDhoMy43OWE3LjUgNy41IDAgMCAxIDcuNSA3LjUuNS41IDAgMCAxLTEgMEE2LjUgNi41IDAgMCAwIDEwLjUgOUg2LjdsMy42NSAzLjY1YS41LjUgMCAwIDEtLjcuN2wtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdsNC41LTQuNWMuMi0uMi41LS4yLjcgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUFsbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOC43IDUuM2ExIDEgMCAwIDEgMCAxLjRMNC40MiAxMWw0LjMgNC4zYTEgMSAwIDEgMS0xLjQyIDEuNGwtNS01YTEgMSAwIDAgMSAwLTEuNGw1LTVhMSAxIDAgMCAxIDEuNDIgMFptNSAwYTEgMSAwIDAgMSAwIDEuNEwxMC40MiAxMEgxNGE4IDggMCAwIDEgOCA4IDEgMSAwIDEgMS0yIDAgNiA2IDAgMCAwLTYtNmgtMy41OWwzLjMgMy4zYTEgMSAwIDAgMS0xLjQyIDEuNGwtNS01YTEgMSAwIDAgMSAwLTEuNGw1LTVhMSAxIDAgMCAxIDEuNDIgMFpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHlBbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjI4IDUuMjJjLjMuMy4zLjc3IDAgMS4wNmwtNC40NyA0LjQ3IDQuNDcgNC40N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC01LTVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw1LTVjLjMtLjMuNzctLjMgMS4wNiAwWm00IDBjLjMuMy4zLjc3IDAgMS4wNkw5LjU2IDEwaDMuNjlBNy43NSA3Ljc1IDAgMCAxIDIxIDE3Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVjMC0zLjQ1LTIuOC02LjI1LTYuMjUtNi4yNUg5LjU2bDMuNzIgMy43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC01LTVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw1LTVjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHlBbGwyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdBcnJvd1JlcGx5QWxsMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk05LjcgNS4zYTEgMSAwIDAgMSAwIDEuNEw0LjQyIDEybDUuMyA1LjNhMSAxIDAgMCAxLTEuNDIgMS40bC02LTZhMSAxIDAgMCAxIDAtMS40bDYtNmExIDEgMCAwIDEgMS40MiAwWm01LjUgMGExIDEgMCAwIDEgMCAxLjRMMTAuOTIgMTFIMTZhMTAgMTAgMCAwIDEgMTAgMTAgMSAxIDAgMSAxLTIgMCA4IDggMCAwIDAtOC04aC01LjA5bDQuMyA0LjNhMSAxIDAgMCAxLTEuNDIgMS40bC02LTZhMSAxIDAgMCAxIDAtMS40bDYtNmExIDEgMCAwIDEgMS40MiAwWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEFycm93UmVwbHlBbGwyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUFsbDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEwLjI4IDUuMjJjLjMuMy4zLjc3IDAgMS4wNmwtNS40NyA1LjQ3IDUuNDcgNS40N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC02LTZhLjc1Ljc1IDAgMCAxIDAtMS4wNmw2LTZjLjMtLjMuNzctLjMgMS4wNiAwWm00LjUgMGMuMy4zLjMuNzcgMCAxLjA2TDEwLjA2IDExaDQuNjlDMjAuNDEgMTEgMjUgMTUuNTkgMjUgMjEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwIDguNzUgOC43NSAwIDAgMC04Ljc1LTguNzVoLTQuNjlsNC43MiA0LjcyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTYtNmEuNzUuNzUgMCAwIDEgMC0xLjA2bDYtNmMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseUFsbDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHlBbGwzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTExLjEzIDYuMzdjLjUuNDguNSAxLjI4IDAgMS43NmwtNi4xMSA2LjEyIDYuMTEgNi4xMmExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2bC03LTdhMS4yNSAxLjI1IDAgMCAxIDAtMS43Nmw3LTdhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMFptNyAwYy41LjQ4LjUgMS4yOCAwIDEuNzZMMTMuMjcgMTNoNC40OEMyNC41MiAxMyAzMCAxOC40OCAzMCAyNS4yNXYuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LS41YTkuNzUgOS43NSAwIDAgMC05Ljc1LTkuNzVoLTQuNDhsNC44NiA0Ljg3YTEuMjUgMS4yNSAwIDAgMS0xLjc2IDEuNzZsLTctN2ExLjI1IDEuMjUgMCAwIDEgMC0xLjc2bDctN2ExLjI1IDEuMjUgMCAwIDEgMS43NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQXJyb3dSZXBseUFsbDMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQXJyb3dSZXBseUFsbDMyTGlnaHQnLCBcIjMyXCIsIFtcIk0xMC44NSA2LjE1Yy4yLjIuMi41IDAgLjdMNC4yMSAxMy41bDYuNjQgNi42NWEuNS41IDAgMCAxLS43LjdsLTctN2EuNS41IDAgMCAxIDAtLjdsNy03Yy4yLS4yLjUtLjIuNyAwWm02IDBjLjIuMi4yLjUgMCAuN0wxMC43MSAxM2g1Ljc5QzIzLjQgMTMgMjkgMTguNiAyOSAyNS41YS41LjUgMCAwIDEtMSAwQTExLjUgMTEuNSAwIDAgMCAxNi41IDE0aC01LjhsNi4xNSA2LjE1YS41LjUgMCAwIDEtLjcuN2wtNy03YS41LjUgMCAwIDEgMC0uN2w3LTdjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBBcnJvd1JlcGx5QWxsMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Fycm93UmVwbHlBbGwzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMS43IDYuM2ExIDEgMCAwIDEgMCAxLjRMNS40MiAxNGw2LjMgNi4zYTEgMSAwIDAgMS0xLjQyIDEuNGwtNy03YTEgMSAwIDAgMSAwLTEuNGw3LTdhMSAxIDAgMCAxIDEuNDIgMFptNiAwYTEgMSAwIDAgMSAwIDEuNEwxMi40MiAxM0gxN2ExMiAxMiAwIDAgMSAxMiAxMiAxIDEgMCAxIDEtMiAwIDEwIDEwIDAgMCAwLTEwLTEwaC00LjU5bDUuMyA1LjNhMSAxIDAgMCAxLTEuNDIgMS40bC03LTdhMSAxIDAgMCAxIDAtMS40bDctN2ExIDEgMCAwIDEgMS40MiAwWlwiXSk7IiwiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZsdWVudEljb24gfSBmcm9tIFwiLi4vdXRpbHMvY3JlYXRlRmx1ZW50SWNvblwiO1xuZXhwb3J0IGNvbnN0IENhc3RNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXN0TXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDUgNi4yNXYzLjc2Yy0xLjY4LjEzLTMgMS41My0zIDMuMjR2NC41QzIgMTkuNTUgMy40NiAyMSA1LjI1IDIxaDVhMy4yNSAzLjI1IDAgMCAwIDMuMjQtM2g1LjI2YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTguNUMyMiA0LjQ1IDIwLjU0IDMgMTguNzUgM0g4LjI1Wm0tMyA4LjVoMmEuNzUuNzUgMCAwIDAgMC0xLjVINi41VjYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTAuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY4LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDEzLjV2LS43NWEuNzUuNzUgMCAwIDAtMS41IDB2MmMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtNC41YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1Wk0xMC41IDE0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLS4yNS01YS43NS43NSAwIDAgMCAwIDEuNUEyLjc1IDIuNzUgMCAwIDEgMTMgMTMuMjZhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtMi4zNC0xLjktNC4yNC00LjI1LTQuMjRabTAtM2EuNzUuNzUgMCAwIDAgMCAxLjVBNS43NSA1Ljc1IDAgMCAxIDE2IDEzLjI1YS43NS43NSAwIDAgMCAxLjUgMGMwLTQtMy4yNC03LjI1LTcuMjUtNy4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENhc3RNdWx0aXBsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nhc3RNdWx0aXBsZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNyA2Ljc1QTMuNzUgMy43NSAwIDAgMSAxMC43NSAzaDExLjVBMy43NSAzLjc1IDAgMCAxIDI2IDYuNzV2OS41QTMuNzUgMy43NSAwIDAgMSAyMi4yNSAyMEgxN3YtMS43NWEuNzUuNzUgMCAwIDAtMS41IDB2M0EzLjc1IDMuNzUgMCAwIDEgMTEuNzUgMjVoLTZBMy43NSAzLjc1IDAgMCAxIDIgMjEuMjV2LTUuNUEzLjc1IDMuNzUgMCAwIDEgNS43NSAxMmgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDdWNi43NVptNC41IDRjMCAuNDEuMzQuNzUuNzUuNzVBMy43NSAzLjc1IDAgMCAxIDE2IDE1LjI1YS43NS43NSAwIDAgMCAxLjUgMGMwLTIuOS0yLjM1LTUuMjUtNS4yNS01LjI1YS43NS43NSAwIDAgMC0uNzUuNzVabS43NS00LjI1YS43NS43NSAwIDAgMCAwIDEuNWM0IDAgNy4yNSAzLjI0IDcuMjUgNy4yNWEuNzUuNzUgMCAwIDAgMS41IDAgOC43NSA4Ljc1IDAgMCAwLTguNzUtOC43NVpNMTQgMTQuNzVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhc3RNdWx0aXBsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXN0TXVsdGlwbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC43NSAzQTMuNzUgMy43NSAwIDAgMCA3IDYuNzVWMTJINS43NUEzLjc1IDMuNzUgMCAwIDAgMiAxNS43NXY1LjVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjVoNmEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1VjIwaDYuNzVBMy43NSAzLjc1IDAgMCAwIDI2IDE2LjI1di05LjVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDNoLTExLjVaTTE0IDE3Ljc1djMuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNmMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTUuNWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDguNVY2Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDExLjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2OS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDE1LjV2LS43NWEuNzUuNzUgMCAwIDAtMS41IDBaTTEyLjI1IDEwYS43NS43NSAwIDAgMCAwIDEuNUEzLjc1IDMuNzUgMCAwIDEgMTYgMTUuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtMi45LTIuMzUtNS4yNS01LjI1LTUuMjVabS0uNzUtMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1QTguNzUgOC43NSAwIDAgMSAyMSAxNS4yNWEuNzUuNzUgMCAwIDEtMS41IDBjMC00LTMuMjQtNy4yNS03LjI1LTcuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTEyLjc1IDE2YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXRjaFVwMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2F0Y2hVcDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi43NCA2LjY3YS4yNS4yNSAwIDAgMC0uNDggMGwtLjMyLjkxYy0uMjQuNy0uOSAxLjE3LTEuNjUgMS4xN0gzLjI1YTEuMjUgMS4yNSAwIDEgMSAwLTEuNWgxLjA0Yy4xIDAgLjItLjA3LjI0LS4xN2wuMzItLjkxYTEuNzUgMS43NSAwIDAgMSAzLjMgMGwxLjExIDMuMTZjLjA4LjIyLjQuMjIuNDggMGwuMzItLjkxYy4yNC0uNy45LTEuMTcgMS42NS0xLjE3aDEuMDRhMS4yNSAxLjI1IDAgMSAxIDAgMS41SDExLjdjLS4xIDAtLjIuMDctLjI0LjE3bC0uMzIuOWExLjc1IDEuNzUgMCAwIDEtMy4zIDBMNi43NCA2LjY4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2F0Y2hVcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXRjaFVwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi44NCA2LjMyYS41LjUgMCAwIDAtLjkyLS4wNWwtLjcgMS40Yy0uMjUuNS0uNzcuODMtMS4zNC44M0gyLjg3YTEgMSAwIDEgMSAwLTFoMS4wMWEuNS41IDAgMCAwIC40NS0uMjhsLjctMS40YTEuNSAxLjUgMCAwIDEgMi43NC4xNWwxLjQgMy43Yy4xNS40Mi43MS40NS45LjA2bC43LTEuNGMuMjYtLjUuNzgtLjgzIDEuMzUtLjgzaDEuMDFhMSAxIDAgMSAxIDAgMWgtMS4wMWEuNS41IDAgMCAwLS40NS4yOGwtLjcgMS40YTEuNSAxLjUgMCAwIDEtMi43NC0uMTVsLTEuNC0zLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXRjaFVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2F0Y2hVcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy42NyA3LjE0Yy4xLS4yLjM4LS4xOC40Ni4wMmwyLjMzIDYuMmExLjc1IDEuNzUgMCAwIDAgMy4yMy4xNGwxLjIyLTIuNmEuMjUuMjUgMCAwIDEgLjIzLS4xNWgxLjA2YTEuNSAxLjUgMCAxIDAgMC0xLjVoLTEuMDZjLS42OCAwLTEuMy40LTEuNTkgMWwtMS4yMiAyLjZjLS4xLjItLjM4LjItLjQ2LS4wMWwtMi4zMy02LjJBMS43NSAxLjc1IDAgMCAwIDYuMyA2LjVMNS4xIDkuMWEuMjUuMjUgMCAwIDEtLjIyLjE0SDMuOGExLjUgMS41IDAgMSAwIDAgMS41aDEuMDdjLjY3IDAgMS4yOS0uNCAxLjU4LTFsMS4yMi0yLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDYXRjaFVwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NhdGNoVXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjQ1IDcuMjdhLjUuNSAwIDAgMSAuOTEuMDRsMi4zNSA1Ljc2YTEuNSAxLjUgMCAwIDAgMi43My4xMWwxLjIzLTIuNGEuNS41IDAgMCAxIC40NC0uMjhoLjk4YTEuNSAxLjUgMCAxIDAgMC0xaC0uOThhMS41IDEuNSAwIDAgMC0xLjMzLjgybC0xLjIzIDIuNGEuNS41IDAgMCAxLS45MS0uMDNMOS4yOSA2LjkzYTEuNSAxLjUgMCAwIDAtMi43My0uMTFsLTEuMjMgMi40YS41LjUgMCAwIDEtLjQ0LjI4SDMuOWExLjUgMS41IDAgMSAwIDAgMWguOThhMS41IDEuNSAwIDAgMCAxLjMzLS44MmwxLjIzLTIuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENhdGNoVXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDYXRjaFVwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMS4zNyA3LjI3YTIgMiAwIDAgMC0zLjczLjAxbC0xLjIgMy4xNWEuNS41IDAgMCAxLS40Ny4zMmgtMS40YTIgMiAwIDEgMCAuMjggMmgxLjEyYTIuNSAyLjUgMCAwIDAgMi4zMy0xLjZMOS41MSA4bDMuMjIgOC4yM2EyIDIgMCAwIDAgMy42Ny4xM2wxLjYtMy4zMmEuNS41IDAgMCAxIC40NC0uMjloLjdhMiAyIDAgMSAwIC4zLTJoLTFhMi41IDIuNSAwIDAgMC0yLjI1IDEuNDJsLTEuNiAzLjMzLTMuMjItOC4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENhdGNoVXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2F0Y2hVcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuMjggOC4xNmMuMDgtLjIuMzctLjIxLjQ2IDBsMy4yNCA3Ljc2YTEuNzUgMS43NSAwIDAgMCAzLjE3LjEybDEuNi0zLjEzYy4xMy0uMjUuMzktLjQxLjY3LS40MWguNjRhMiAyIDAgMSAwIC4yLTEuNWgtLjg0Yy0uODUgMC0xLjYyLjQ3LTIgMS4yM2wtMS42IDMuMTNhLjI1LjI1IDAgMCAxLS40Ni0uMDFsLTMuMjQtNy43N2ExLjc1IDEuNzUgMCAwIDAtMy4yMy4wMWwtMS4yIDIuOTRhLjc1Ljc1IDAgMCAxLS43LjQ3SDQuNzNhMiAyIDAgMSAwIC4yIDEuNUg2Yy45MiAwIDEuNzQtLjU1IDIuMDktMS40bDEuMi0yLjk0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2QxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCA2YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptMCAzYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMC03YTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggNmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRaTTcgOGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTEtNmE2IDYgMCAxIDAgMCAxMkE2IDYgMCAwIDAgOCAyWk0zIDhhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyM0cyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcjNHMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00LjAzIDNjLS4zMiAwLS43NC4xNC0xLjE2LjZhLjUuNSAwIDEgMS0uNzQtLjY2QTIuNTcgMi41NyAwIDAgMSA0LjAzIDJjLjY0IDAgMS4yLjI4IDEuNTcuN0ExLjUgMS41IDAgMCAxIDUuMjggNWMuMjcuMi40Ny40Mi42LjY5LjI2LjU5LjA4IDEuMi0uMjggMS42MS0uMzYuNDItLjkzLjctMS41Ni43LS42NSAwLTEuMzMtLjI5LTEuOTEtLjk0YS41LjUgMCAwIDEgLjc0LS42NmMuNDIuNDYuODQuNiAxLjE3LjYuMzQgMCAuNjMtLjE1LjgtLjM1LjE3LS4yLjItLjQuMTItLjU1LS4wNy0uMTctLjMzLS40NC0xLjA3LS42MWEuNS41IDAgMCAxIDAtLjk4Yy43NC0uMTcgMS0uNDQgMS4wNy0uNjEuMDctLjE1LjA1LS4zNS0uMTItLjU1LS4xNy0uMi0uNDYtLjM1LS44LS4zNVptLjcyIDEwYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMTF2LTIuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMTF2LTQuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Ni41YS43NS43NSAwIDAgMS0xLjUuMTFWOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY4LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMVY3Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzcgMCAuNjguMjcuNzQuNjNsLjAxLjEtLjAxIDEwLjUyYS43NC43NCAwIDAgMS0xLjQ4LjEybC0uMDEtLjEuMDEtMTAuNTJjMC0uNDEuMzMtLjc1Ljc0LS43NVptLTcuNS0yaC4yNXMuMTMgMCAuMjguMDZjLjE3LjA3LjM2LjE4LjQ4LjQyYS41LjUgMCAwIDAgLjg5LS40NkMxMC42MiAyIDkuNTMgMiA5LjUgMmgtLjI1QzguMDEgMiA3IDMgNyA0LjI1djEuNWEyLjI1IDIuMjUgMCAwIDAgNC41IDB2LS41YS41LjUgMCAwIDAtLjUtLjVIOS41YS41LjUgMCAxIDAgMCAxaDFhMS4yNSAxLjI1IDAgMCAxLTIuNSAwdi0xLjVDOCAzLjU2IDguNTYgMyA5LjI1IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcjNHMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyM0cyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjAzIDNjLS4zMiAwLS43NC4xNC0xLjE2LjZhLjUuNSAwIDEgMS0uNzQtLjY2QTIuNTcgMi41NyAwIDAgMSA0LjAzIDJjLjY0IDAgMS4yLjI4IDEuNTcuN0ExLjUgMS41IDAgMCAxIDUuMjggNWMuMjcuMi40Ny40Mi42LjY5LjI2LjU5LjA4IDEuMi0uMjggMS42MS0uMzYuNDItLjkzLjctMS41Ni43LS42NSAwLTEuMzMtLjI5LTEuOTEtLjk0YS41LjUgMCAwIDEgLjc0LS42NmMuNDIuNDYuODQuNiAxLjE3LjYuMzQgMCAuNjMtLjE1LjgtLjM1LjE3LS4yLjItLjQuMTItLjU1LS4wNy0uMTctLjMzLS40NC0xLjA3LS42MWEuNS41IDAgMCAxIDAtLjk4Yy43NC0uMTcgMS0uNDQgMS4wNy0uNjEuMDctLjE1LjA1LS4zNS0uMTItLjU1LS4xNy0uMi0uNDYtLjM1LS44LS4zNVpNMTYuNSA1YS41LjUgMCAwIDEgLjUuNDF2MTEuMWEuNS41IDAgMCAxLS45OS4wOFY1LjVjMC0uMjguMjItLjUuNS0uNVptLTkgNmEuNS41IDAgMCAxIC41LjQxdjUuMDlhLjUuNSAwIDAgMS0uOTkuMDlWMTEuNWMwLS4yOC4yMi0uNS41LS41Wm0tMyAyYS41LjUgMCAwIDEgLjUuNDF2My4wOWEuNS41IDAgMCAxLTEgLjA5VjEzLjVjMC0uMjguMjItLjUuNS0uNVptNi00YS41LjUgMCAwIDEgLjUuNHY3LjFhLjUuNSAwIDAgMS0xIC4wOVY5LjVjMC0uMjguMjItLjUuNS0uNVptMy0yYS41LjUgMCAwIDEgLjUuNDF2OS4wOWEuNS41IDAgMCAxLTEgLjA5VjcuNWMwLS4yNy4yMi0uNS41LS41Wk05LjI1IDNoLjI1cy4xMyAwIC4yOC4wNmMuMTcuMDcuMzYuMTguNDguNDJhLjUuNSAwIDAgMCAuODktLjQ2QzEwLjYyIDIgOS41MyAyIDkuNSAyaC0uMjVDOC4wMSAyIDcgMyA3IDQuMjV2MS41YTIuMjUgMi4yNSAwIDAgMCA0LjUgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNUg5LjVhLjUuNSAwIDEgMCAwIDFoMWExLjI1IDEuMjUgMCAwIDEtMi41IDB2LTEuNUM4IDMuNTYgOC41NiAzIDkuMjUgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyM0cyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcjNHMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xMi45IDMuNjItLjAxLS4wMmExLjAzIDEuMDMgMCAwIDAtLjA2LS4wOGwtLjEzLS4xNmEyLjEzIDIuMTMgMCAwIDAtLjUyLS40IDMuMDMgMy4wMyAwIDAgMC0yLjA3LS4yNWMtMS4wOS4yLTEuNjMuOTctMS44NyAxLjZBMy42IDMuNiAwIDAgMCA4IDUuNDV2MS4yOWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoLjI1YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTEuMjVhLjc1Ljc1IDAgMCAwIDAgMS41aC40N2ExIDEgMCAwIDEtLjk3Ljc1aC0uMjVhMSAxIDAgMCAxLTEtMVY1LjVhMS4wOSAxLjA5IDAgMCAxIC4wMi0uMThjLjAxLS4xMy4wNS0uMy4xMi0uNDcuMTMtLjM0LjM0LS42Ljc1LS42Ny42LS4xLjkxLjAxIDEuMDYuMWEuNjQuNjQgMCAwIDEgLjE3LjEzLjc1Ljc1IDAgMCAwIDEuMjgtLjc5WlwiLCBcIk00LjQ0IDQuNjFhLjguOCAwIDAgMCAuMDUtLjA0bC4wMi0uMDIuMDItLjAxYTEuMSAxLjEgMCAwIDEgLjItLjE1Yy4xMy0uMDcuMy0uMTQuNTItLjE0LjE2IDAgLjI2LjA1LjMyLjEuMDguMDYuMTQuMTYuMTcuMjguMDQuMTggMCAuMzQtLjA2LjQ0LS4wNS4wOC0uMTUuMTgtLjQzLjE4YS43NS43NSAwIDEgMCAwIDEuNWMuMjUgMCAuMzYuMDguNC4xNC4wNy4wOC4xMi4yLjEuMzZhLjU5LjU5IDAgMCAxLS4xNC4zNmMtLjA3LjA4LS4xOC4xNC0uMzYuMTQtLjQgMC0uNjctLjI0LS43NS0uM2wtLjAxLS4wMmEuNzUuNzUgMCAxIDAtLjk4IDEuMTRjLS4wMS0uMDEuMTguMTcuNDcuMzQuMy4xNy43My4zNCAxLjI3LjM0IDEuMjYgMCAxLjk0LS45OSAyLTEuOS4wMy0uNDYtLjA4LS45NS0uMzktMS4zNWwuMDctLjFjLjMzLS41LjQtMS4xLjI2LTEuNjQtLjItLjc5LS44OC0xLjUxLTEuOTQtMS41MS0xLjA1IDAtMS43Ni43LTEuNjkuNjRhLjc1Ljc1IDAgMSAwIC44OCAxLjIyWlwiLCBcIk0yMSA3YTEgMSAwIDAgMC0yIDB2MTNhMSAxIDAgMCAwIDIgMFY3WlwiLCBcIk0xNyAxMGExIDEgMCAwIDAtMiAwdjEwYTEgMSAwIDAgMCAyIDBWMTBaXCIsIFwiTTEzIDEzYTEgMSAwIDEgMC0yIDB2N2ExIDEgMCAxIDAgMiAwdi03WlwiLCBcIk05IDE2YTEgMSAwIDAgMC0xLTEgMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDEgMSAxIDAgMCAwIDEtMXYtNFpcIiwgXCJNNSAxOC45OEExIDEgMCAwIDAgNCAxOGExIDEgMCAwIDAtMSAuOTh2MS4wNEExIDEgMCAwIDAgNCAyMWExIDEgMCAwIDAgMS0uOTh2LTEuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcjNHMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyM0cyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi45IDMuNjJhLjc1Ljc1IDAgMCAxLTEuMjguNzlsLS4wMi0uMDJhLjY0LjY0IDAgMCAwLS4xNS0uMTJjLS4xNS0uMDgtLjQ3LS4yLTEuMDYtLjA5LS40MS4wOC0uNjIuMzMtLjc1LjY3YTIuMSAyLjEgMCAwIDAtLjE0LjY1djEuMjVhMSAxIDAgMCAwIDEgMWguMjVhMSAxIDAgMCAwIC45Ny0uNzVoLS40N2EuNzUuNzUgMCAwIDEgMC0xLjVoMS4yNWMuNDEgMCAuNzUuMzQuNzUuNzV2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0uMjVBMi41IDIuNSAwIDAgMSA4IDYuNzVWNS40NmEyLjU3IDIuNTcgMCAwIDEgLjAzLS4zNGMuMDMtLjIyLjA5LS41LjItLjgyLjI1LS42Mi44LTEuNCAxLjg4LTEuNi45Mi0uMTYgMS42IDAgMi4wNy4yNmEyLjEzIDIuMTMgMCAwIDEgLjcuNjRsLjAxLjAxWlwiLCBcIm00LjUgNC41Ny0uMDYuMDRhLjc1Ljc1IDAgMSAxLS44OC0xLjIyYy0uMDcuMDYuNjQtLjY0IDEuNjktLjY0IDEuMDYgMCAxLjc0LjcyIDEuOTQgMS41QTIuMDcgMi4wNyAwIDAgMSA2Ljg2IDZjLjMuNC40Mi45LjQgMS4zNS0uMDcuOTEtLjc1IDEuOS0yLjAxIDEuOS0uNTQgMC0uOTctLjE3LTEuMjctLjM0LS4yOS0uMTctLjQ4LS4zNS0uNDctLjM0YS43NS43NSAwIDAgMSAuOTgtMS4xNGwuMDEuMDFjLjA4LjA3LjM0LjMxLjc1LjMxLjE4IDAgLjI5LS4wNi4zNi0uMTRhLjU5LjU5IDAgMCAwIC4xNS0uMzYuNS41IDAgMCAwLS4xLS4zNmMtLjA1LS4wNi0uMTYtLjE0LS40MS0uMTRhLjc1Ljc1IDAgMSAxIDAtMS41Yy4yOCAwIC4zOC0uMS40My0uMTguMDctLjEuMS0uMjYuMDYtLjQ0YS41My41MyAwIDAgMC0uMTctLjI4LjQ3LjQ3IDAgMCAwLS4zMi0uMSAxLjA2IDEuMDYgMCAwIDAtLjY4LjI1IDEuMSAxLjEgMCAwIDAtLjA0LjA0bC0uMDIuMDEtLjAyLjAyWlwiLCBcIk0xMS43NSAxMmMuMzggMCAuNy4yOC43NC42NWwuMDEuMXY3LjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi03LjZjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIiwgXCJNMTUuNzUgOWMuMzggMCAuNy4yOC43NC42NWwuMDEuMXYxMC41YS43NS43NSAwIDAgMS0xLjUuMVY5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCIsIFwiTTMuNzUgMThjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MS41YS43NS43NSAwIDAgMS0xLjUuMXYtMS42YzAtLjQxLjM0LS43NS43NS0uNzVaXCIsIFwiTTE5Ljc0IDZjLjM4IDAgLjcuMjguNzUuNjRsLjAxLjF2MTMuNWEuNzUuNzUgMCAwIDEtMS41LjEyVjYuNzZjMC0uNDIuMzMtLjc2Ljc0LS43NlpcIiwgXCJNNy43NSAxNWMuMzggMCAuNy4yOC43NC42NWwuMDEuMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi00LjZjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyNEcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcjRHMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05LjUgM2gtLjI1QzguNTYgMyA4IDMuNTYgOCA0LjI1djEuNWExLjI1IDEuMjUgMCAwIDAgMi41IDBoLTFhLjUuNSAwIDEgMSAwLTFIMTFjLjI4IDAgLjUuMjIuNS41di41YTIuMjUgMi4yNSAwIDEgMS00LjUgMHYtMS41QzcgMy4wMSA4IDIgOS4yNSAyaC4yNWMuMDMgMCAxLjEyIDAgMS42NSAxLjAyYS41LjUgMCAxIDEtLjg5LjQ2Ljg2Ljg2IDAgMCAwLS40OC0uNDJDOS42MyAzLjAxIDkuNTEgMyA5LjUgM1pNNC43NSAxM2MuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjIuNWEuNzUuNzUgMCAwIDEtMS41LjExdi0yLjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjQuNWEuNzUuNzUgMCAwIDEtMS41LjExdi00LjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjYuNWEuNzUuNzUgMCAwIDEtMS41LjExVjkuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2OC41YS43NS43NSAwIDAgMS0xLjUuMTFWNy43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM3IDAgLjY4LjI3Ljc0LjYzbC4wMS4xLS4wMSAxMC41MmEuNzQuNzQgMCAwIDEtMS40OC4xMmwtLjAxLS4xLjAxLTEwLjUyYzAtLjQxLjMzLS43NS43NC0uNzVaTTQuOTUgMi43YS43LjcgMCAwIDAtMS4yNi0uNEwxLjEzIDUuOUEuNy43IDAgMCAwIDEuNyA3aDIuMjZ2LjVhLjUuNSAwIDEgMCAxIDBWN2guNTRhLjUuNSAwIDAgMCAwLTFoLS41NFYyLjdabS0xIC45NFY2SDIuMjlsMS42OC0yLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXI0RzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcjRHMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS41IDNoLS4yNUM4LjU2IDMgOCAzLjU2IDggNC4yNXYxLjVhMS4yNSAxLjI1IDAgMCAwIDIuNSAwaC0xYS41LjUgMCAxIDEgMC0xSDExYy4yOCAwIC41LjIyLjUuNXYuNWEyLjI1IDIuMjUgMCAxIDEtNC41IDB2LTEuNUM3IDMuMDEgOCAyIDkuMjUgMmguMjVjLjAzIDAgMS4xMiAwIDEuNjUgMS4wMmEuNS41IDAgMSAxLS44OS40Ni44Ni44NiAwIDAgMC0uNDgtLjQyQzkuNjMgMy4wMSA5LjUxIDMgOS41IDNabTcgMmEuNS41IDAgMCAxIC41LjQxdjExLjFhLjUuNSAwIDAgMS0uOTkuMDhWNS41YzAtLjI4LjIyLS41LjUtLjVabS05IDZhLjUuNSAwIDAgMSAuNS40MXY1LjA5YS41LjUgMCAwIDEtLjk5LjA5VjExLjVjMC0uMjguMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjQxdjMuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMy41YzAtLjI4LjIyLS41LjUtLjVabTYtNGEuNS41IDAgMCAxIC41LjR2Ny4xYS41LjUgMCAwIDEtMSAuMDlWOS41YzAtLjI4LjIyLS41LjUtLjVabTMtMmEuNS41IDAgMCAxIC41LjQxdjkuMDlhLjUuNSAwIDAgMS0xIC4wOVY3LjVjMC0uMjcuMjItLjUuNS0uNVpNNC45NiAyLjdhLjcuNyAwIDAgMC0xLjI3LS40TDEuMTMgNS45QS43LjcgMCAwIDAgMS43IDdoMi4yNnYuNWEuNS41IDAgMSAwIDEgMFY3aC41NGEuNS41IDAgMCAwIDAtMWgtLjU0VjIuN1ptLTEgLjk0VjZIMi4yOGwxLjY4LTIuMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcjRHMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXI0RzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuOSAzLjYyYS43NS43NSAwIDAgMS0xLjI4Ljc5bC0uMDItLjAyYS42NC42NCAwIDAgMC0uMTUtLjEyYy0uMTUtLjA4LS40Ny0uMi0xLjA2LS4wOS0uNDEuMDgtLjYyLjMzLS43NS42N2EyLjEgMi4xIDAgMCAwLS4xNC42NXYxLjI1YTEgMSAwIDAgMCAxIDFoLjI1YTEgMSAwIDAgMCAuOTctLjc1aC0uNDdhLjc1Ljc1IDAgMSAxIDAtMS41aDEuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1di41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtLjI1QTIuNSAyLjUgMCAwIDEgOCA2Ljc1VjUuNDZhMi42IDIuNiAwIDAgMSAuMDMtLjM0Yy4wMy0uMjIuMDktLjUuMi0uODIuMjUtLjYyLjgtMS40IDEuODgtMS42LjkyLS4xNiAxLjYgMCAyLjA3LjI2YTIuMTMgMi4xMyAwIDAgMSAuNy42NGwuMDEuMDFaXCIsIFwiTTQuNzMgMy4wNmExIDEgMCAwIDEgMS43Ny42NHYyLjhoLjI1YS43NS43NSAwIDAgMSAwIDEuNUg2LjV2LjVhLjc1Ljc1IDAgMSAxLTEuNSAwVjhIMy4yYTEuMiAxLjIgMCAwIDEtLjkyLTEuOTZsMi40NS0yLjk4Wk01IDYuNVY1LjA5TDMuODQgNi41SDVaXCIsIFwiTTIwIDZhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMiAwVjdhMSAxIDAgMCAxIDEtMVpcIiwgXCJNMTYgOWExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0yIDBWMTBhMSAxIDAgMCAxIDEtMVpcIiwgXCJNMTIgMTJhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDEgMS0yIDB2LTdhMSAxIDAgMCAxIDEtMVpcIiwgXCJNOCAxNWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFaXCIsIFwiTTQgMThhMSAxIDAgMCAxIDEgLjk4djEuMDRBMSAxIDAgMCAxIDQgMjFhMSAxIDAgMCAxLTEtLjk4di0xLjA0QTEgMSAwIDAgMSA0IDE4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXI0RzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcjRHMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuOSAzLjYyYS43NS43NSAwIDAgMS0xLjI4Ljc5bC0uMDItLjAyYS42NC42NCAwIDAgMC0uMTUtLjEyYy0uMTUtLjA4LS40Ny0uMi0xLjA2LS4wOS0uNDEuMDgtLjYyLjMzLS43NS42N2EyLjEgMi4xIDAgMCAwLS4xNC42NXYxLjI1YTEgMSAwIDAgMCAxIDFoLjI1YTEgMSAwIDAgMCAuOTctLjc1aC0uNDdhLjc1Ljc1IDAgMSAxIDAtMS41aDEuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1di41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtLjI1QTIuNSAyLjUgMCAwIDEgOCA2Ljc1VjUuNDZhMi42IDIuNiAwIDAgMSAuMDMtLjM0Yy4wMy0uMjIuMDktLjUuMi0uODIuMjUtLjYyLjgtMS40IDEuODgtMS42LjkyLS4xNiAxLjYgMCAyLjA3LjI2YTIuMTMgMi4xMyAwIDAgMSAuNy42NGwuMDEuMDFaXCIsIFwiTTQuNzMgMy4wNmExIDEgMCAwIDEgMS43Ny42NHYyLjhoLjI1YS43NS43NSAwIDAgMSAwIDEuNUg2LjV2LjVhLjc1Ljc1IDAgMSAxLTEuNSAwVjhIMy4yYTEuMiAxLjIgMCAwIDEtLjkyLTEuOTZsMi40NS0yLjk4Wk01IDYuNVY1LjA5TDMuODQgNi41SDVaXCIsIFwiTTExLjc1IDEyYy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjcuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTcuNmMwLS40MS4zNC0uNzUuNzUtLjc1WlwiLCBcIk0xNS43NSA5Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjEwLjVhLjc1Ljc1IDAgMCAxLTEuNS4xVjkuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIiwgXCJNMy43NSAxOGMuMzggMCAuNy4yOC43NC42NWwuMDEuMXYxLjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi0xLjZjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIiwgXCJNMTkuNzQgNmMuMzggMCAuNy4yOC43NS42NGwuMDEuMXYxMy41YS43NS43NSAwIDAgMS0xLjUuMTJWNi43NmMwLS40Mi4zMy0uNzYuNzQtLjc2WlwiLCBcIk03Ljc1IDE1Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTQuNmMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXI1RzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyNUcyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkuNSAzaC0uMjVDOC41NiAzIDggMy41NiA4IDQuMjV2MS41YTEuMjUgMS4yNSAwIDAgMCAyLjUgMGgtMWEuNS41IDAgMCAxIDAtMUgxMWMuMjggMCAuNS4yMi41LjV2LjVhMi4yNSAyLjI1IDAgMCAxLTQuNSAwdi0xLjVDNyAzLjAxIDggMiA5LjI1IDJoLjI1Yy4wMyAwIDEuMTIgMCAxLjY1IDEuMDJhLjUuNSAwIDEgMS0uODkuNDYuODYuODYgMCAwIDAtLjQ4LS40MkM5LjYzIDMuMDEgOS41MSAzIDkuNSAzWk00Ljc1IDEzYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMTF2LTIuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMTF2LTQuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Ni41YS43NS43NSAwIDAgMS0xLjUuMTFWOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXY4LjVhLjc1Ljc1IDAgMCAxLTEuNS4xMVY3Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzcgMCAuNjguMjcuNzQuNjNsLjAxLjEtLjAxIDEwLjUyYS43NC43NCAwIDAgMS0xLjQ4LjEybC0uMDEtLjEuMDEtMTAuNTJjMC0uNDEuMzMtLjc1Ljc0LS43NVptLTE0LTNhLjUuNSAwIDAgMC0uNS40NGwtLjI1IDJhLjUuNSAwIDAgMCAuNTQuNTZsLjE4LS4wMiAxLjM3LS4xMWMuNDktLjA0LjkxLjM1LjkxLjg0di4yMkM1IDYuNTIgNC41MiA3IDMuOTMgN2EuOTguOTggMCAwIDEtLjc1LS4zMiAxLjIzIDEuMjMgMCAwIDEtLjItLjNsLS4wMS0uMDJhLjUuNSAwIDAgMC0uOTQuMzZsLjAxLjAyYTEuNDQgMS40NCAwIDAgMCAuMS4yQTEuOTggMS45OCAwIDAgMCAzLjkzIDhDNS4wNyA4IDYgNy4wNyA2IDUuOTNWNS43YzAtMS4wOC0uOTItMS45My0yLTEuODRsLS45My4wOEwzLjIgM0g1LjVhLjUuNSAwIDAgMCAwLTFIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyNUcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXI1RzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuNSAzaC0uMjVDOC41NiAzIDggMy41NiA4IDQuMjV2MS41YTEuMjUgMS4yNSAwIDAgMCAyLjUgMGgtMWEuNS41IDAgMCAxIDAtMUgxMWMuMjggMCAuNS4yMi41LjV2LjVhMi4yNSAyLjI1IDAgMCAxLTQuNSAwdi0xLjVDNyAzLjAxIDggMiA5LjI1IDJoLjI1Yy4wMyAwIDEuMTIgMCAxLjY1IDEuMDJhLjUuNSAwIDEgMS0uODkuNDYuODYuODYgMCAwIDAtLjQ4LS40MkM5LjYzIDMuMDEgOS41MSAzIDkuNSAzWm03IDJhLjUuNSAwIDAgMSAuNS40MXYxMS4xYS41LjUgMCAwIDEtLjk5LjA4VjUuNWMwLS4yOC4yMi0uNS41LS41Wm0tOSA2YS41LjUgMCAwIDEgLjUuNDF2NS4wOWEuNS41IDAgMCAxLS45OS4wOVYxMS41YzAtLjI4LjIyLS41LjUtLjVabS0zIDJhLjUuNSAwIDAgMSAuNS40MXYzLjA5YS41LjUgMCAwIDEtMSAuMDlWMTMuNWMwLS4yOC4yMi0uNS41LS41Wm02LTRhLjUuNSAwIDAgMSAuNS40djcuMWEuNS41IDAgMCAxLTEgLjA5VjkuNWMwLS4yOC4yMi0uNS41LS41Wm0zLTJhLjUuNSAwIDAgMSAuNS40MXY5LjA5YS41LjUgMCAwIDEtMSAuMDlWNy41YzAtLjI3LjIyLS41LjUtLjVaTTIuNzUgMmEuNS41IDAgMCAwLS41LjQ0bC0uMjUgMmEuNS41IDAgMCAwIC41NC41NmwuMTgtLjAyIDEuMzctLjExYy40OS0uMDQuOTEuMzUuOTEuODR2LjIyQzUgNi41MiA0LjUyIDcgMy45MyA3YS45OC45OCAwIDAgMS0uNzUtLjMyIDEuMjMgMS4yMyAwIDAgMS0uMi0uM2wtLjAxLS4wMmEuNS41IDAgMCAwLS45NC4zNmwuMDEuMDJhMS40NCAxLjQ0IDAgMCAwIC4xLjJBMS45OCAxLjk4IDAgMCAwIDMuOTMgOEM1LjA3IDggNiA3LjA3IDYgNS45M1Y1LjdjMC0xLjA4LS45Mi0xLjkzLTItMS44NGwtLjkzLjA4TDMuMiAzSDUuNWEuNS41IDAgMCAwIDAtMUgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXI1RzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyNUcyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTEyLjkgMy42Mi0uMDEtLjAyYTEuMDMgMS4wMyAwIDAgMC0uMDYtLjA4bC0uMTMtLjE2YTIuMTMgMi4xMyAwIDAgMC0uNTItLjQgMy4wMyAzLjAzIDAgMCAwLTIuMDctLjI1Yy0xLjA5LjItMS42My45Ny0xLjg3IDEuNkEzLjYgMy42IDAgMCAwIDggNS40NXYxLjI5YTIuNSAyLjUgMCAwIDAgMi41IDIuNWguMjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di0uNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoLjQ3YTEgMSAwIDAgMS0uOTcuNzVoLS4yNWExIDEgMCAwIDEtMS0xVjUuNWExLjA5IDEuMDkgMCAwIDEgLjAyLS4xOGMuMDEtLjEzLjA1LS4zLjEyLS40Ny4xMy0uMzQuMzQtLjYuNzUtLjY3LjYtLjEuOTEuMDEgMS4wNi4xYS42NC42NCAwIDAgMSAuMTcuMTMuNzUuNzUgMCAwIDAgMS4yOC0uNzlaXCIsIFwiTTQgMi43NWMtLjM4IDAtLjcuMjktLjc1LjY3TDMgNS42N2EuNzUuNzUgMCAwIDAgLjg4LjgyTDQuOSA2LjNhLjczLjczIDAgMSAxIC4xMyAxLjQ1SDQuOGEuNzUuNzUgMCAwIDEtLjYyLS4zM2wtLjA2LS4wOWEuNzUuNzUgMCAwIDAtMS4yNC44NGwuMDUuMDhjLjQyLjYyIDEuMTIgMSAxLjg3IDFoLjIyYTIuMjMgMi4yMyAwIDEgMC0uNC00LjQyaC0uMDFsLjA2LS41OEg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDRaXCIsIFwiTTIxIDdhMSAxIDAgMCAwLTIgMHYxM2ExIDEgMCAwIDAgMiAwVjdaXCIsIFwiTTE3IDEwYTEgMSAwIDAgMC0yIDB2MTBhMSAxIDAgMCAwIDIgMFYxMFpcIiwgXCJNMTMgMTNhMSAxIDAgMSAwLTIgMHY3YTEgMSAwIDEgMCAyIDB2LTdaXCIsIFwiTTkgMTZhMSAxIDAgMCAwLTEtMSAxIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMSAxIDEgMCAwIDAgMS0xdi00WlwiLCBcIk01IDE4Ljk4QTEgMSAwIDAgMCA0IDE4YTEgMSAwIDAgMC0xIC45OHYxLjA0QTEgMSAwIDAgMCA0IDIxYTEgMSAwIDAgMCAxLS45OHYtMS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyNUcyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXI1RzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjkgMy42MmEuNzUuNzUgMCAwIDEtMS4yOC43OWwtLjAyLS4wMmEuNjQuNjQgMCAwIDAtLjE1LS4xMmMtLjE1LS4wOC0uNDctLjItMS4wNi0uMDktLjQxLjA4LS42Mi4zMy0uNzUuNjdhMi4xIDIuMSAwIDAgMC0uMTQuNjV2MS4yNWExIDEgMCAwIDAgMSAxaC4yNWExIDEgMCAwIDAgLjk3LS43NWgtLjQ3YS43NS43NSAwIDAgMSAwLTEuNWgxLjI1Yy40MSAwIC43NS4zNC43NS43NXYuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLS4yNUEyLjUgMi41IDAgMCAxIDggNi43NVY1LjQ2YTIuNTcgMi41NyAwIDAgMSAuMDMtLjM0Yy4wMy0uMjIuMDktLjUuMi0uODIuMjUtLjYyLjgtMS40IDEuODgtMS42LjkyLS4xNiAxLjYgMCAyLjA3LjI2YTIuMTMgMi4xMyAwIDAgMSAuNy42NGwuMDEuMDFaXCIsIFwiTTMuMjUgMy40MkEuNzUuNzUgMCAwIDEgNCAyLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVINC42N2wtLjA2LjU4aC4wMWEyLjIzIDIuMjMgMCAxIDEgLjQgNC40Mkg0LjhjLS43NSAwLTEuNDUtLjM4LTEuODctMWwtLjA1LS4wOGEuNzUuNzUgMCAwIDEgMS4yNC0uODRsLjA2LjA5Yy4xNC4yLjM3LjMzLjYyLjMzaC4yMkEuNzMuNzMgMCAxIDAgNC45IDYuM2wtMSAuMTlBLjc1Ljc1IDAgMCAxIDMgNS42N2wuMjUtMi4yNVpcIiwgXCJNMTEuNzUgMTJjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2Ny41YS43NS43NSAwIDAgMS0xLjUuMXYtNy42YzAtLjQxLjM0LS43NS43NS0uNzVaXCIsIFwiTTE1Ljc1IDljLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MTAuNWEuNzUuNzUgMCAwIDEtMS41LjFWOS43NWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiLCBcIk0zLjc1IDE4Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjEuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTEuNmMwLS40MS4zNC0uNzUuNzUtLjc1WlwiLCBcIk0xOS43NCA2Yy4zOCAwIC43LjI4Ljc1LjY0bC4wMS4xdjEzLjVhLjc1Ljc1IDAgMCAxLTEuNS4xMlY2Ljc2YzAtLjQyLjMzLS43Ni43NC0uNzZaXCIsIFwiTTcuNzUgMTVjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2NC41YS43NS43NSAwIDAgMS0xLjUuMXYtNC42YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGExMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhMTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC43NSAxMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjIuNWEuNzUuNzUgMCAwIDEtMS41LjExdi0yLjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjQuNWEuNzUuNzUgMCAwIDEtMS41LjExdi00LjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjYuNWEuNzUuNzUgMCAwIDEtMS41LjExVjguNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2OC41YS43NS43NSAwIDAgMS0xLjUuMTFWNi43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLTJjLjM3IDAgLjY4LjI3Ljc0LjYzbC4wMS4xLS4wMSAxMC41MmEuNzQuNzQgMCAwIDEtMS40OC4xMmwtLjAxLS4xLjAxLTEwLjUyYzAtLjQxLjMzLS43NS43NC0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGExMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTEyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNi41IDRhLjUuNSAwIDAgMSAuNS40MVYxNS41YS41LjUgMCAwIDEtLjk5LjA5VjQuNWMwLS4yOC4yMi0uNS41LS41Wm0tOSA2YS41LjUgMCAwIDEgLjUuNHY1LjFhLjUuNSAwIDAgMS0uOTkuMDl2LTUuMWMwLS4yNy4yMi0uNS41LS41Wm0tMyAyYS41LjUgMCAwIDEgLjUuNHYzLjFhLjUuNSAwIDAgMS0xIC4wOXYtMy4xYzAtLjI3LjIyLS41LjUtLjVabTYtNGEuNS41IDAgMCAxIC41LjR2Ny4xYS41LjUgMCAwIDEtMSAuMDl2LTcuMWMwLS4yNy4yMi0uNS41LS41Wm0zLTJhLjUuNSAwIDAgMSAuNS40MXY5LjA5YS41LjUgMCAwIDEtMSAuMDlWNi41YzAtLjI3LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGExMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhMTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjAgNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0yIDBWNmExIDEgMCAwIDEgMS0xWm0tNCAzYTEgMSAwIDAgMSAxIDF2MTBhMSAxIDAgMCAxLTIgMFY5YTEgMSAwIDAgMSAxLTFabS00IDNhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDEgMS0yIDB2LTdhMSAxIDAgMCAxIDEtMVptLTQgM2ExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFabS00IDNhMSAxIDAgMCAxIDEgLjk4djEuMDRBMSAxIDAgMCAxIDQgMjBhMSAxIDAgMCAxLTEtLjk4di0xLjA0QTEgMSAwIDAgMSA0IDE3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGExMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy43NSAxN2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXYxLjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi0xLjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptOC02Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjcuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTcuNmMwLS40MS4zNC0uNzUuNzUtLjc1Wm00LTNjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MTAuNWEuNzUuNzUgMCAwIDEtMS41LjFWOC43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm00LTNjLjM3IDAgLjY5LjI4Ljc0LjY0bC4wMS4xdjEzLjVhLjc1Ljc1IDAgMCAxLTEuNS4xMlY1Ljc2YzAtLjQyLjMzLS43Ni43NC0uNzZabS0xMiA5Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTQuNmMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNzUgMTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYyLjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi0yLjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMXYtNC42YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjR2Ni42MWEuNzUuNzUgMCAwIDEtMS40OC4xMWwtLjAxLS4xMXYtNi41YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjR2OC42MWEuNzUuNzUgMCAwIDEtMS40OC4xMWwtLjAxLS4xMXYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGEyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjUgMTBhLjUuNSAwIDAgMSAuNS40MXY1LjA5YS41LjUgMCAwIDEtLjk5LjA5VjEwLjVjMC0uMjguMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjQxdjMuMDlhLjUuNSAwIDAgMS0xIC4wOVYxMi41YzAtLjI4LjIyLS41LjUtLjVabTYtNGEuNS41IDAgMCAxIC41LjR2Ny4xYS41LjUgMCAwIDEtMSAuMDlWOC41YzAtLjI4LjIyLS41LjUtLjVabTMtMmEuNS41IDAgMCAxIC41LjQxdjkuMDlhLjUuNSAwIDAgMS0xIC4wOVY2LjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGEyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNiA4YTEgMSAwIDAgMSAxIDF2MTBhMSAxIDAgMCAxLTIgMFY5YTEgMSAwIDAgMSAxLTFabS00IDNhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDEgMS0yIDB2LTdhMSAxIDAgMCAxIDEtMVptLTQgM2ExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFabS00IDNhMSAxIDAgMCAxIDEgLjk4djEuMDRBMSAxIDAgMCAxIDQgMjBhMSAxIDAgMCAxLTEtLjk4di0xLjA0QTEgMSAwIDAgMSA0IDE3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGEyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy43NSAxN2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXYxLjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi0xLjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptOC02Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjcuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTcuNmMwLS40MS4zNC0uNzUuNzUtLjc1Wm00LTNjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MTAuNWEuNzUuNzUgMCAwIDEtMS41LjFWOC43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0tOCA2Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTQuNmMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNzUgMTJjLjM4IDAgLjY5LjI4Ljc0LjY0bC4wMS4xMXYyLjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi0yLjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMXYtNC42YzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjYuNWEuNzUuNzUgMCAwIDEtMS41LjExVjguNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhMzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSAxMGEuNS41IDAgMCAxIC41LjQxdjUuMDlhLjUuNSAwIDAgMS0uOTkuMDlWMTAuNWMwLS4yOC4yMi0uNS41LS41Wm0tMyAyYS41LjUgMCAwIDEgLjUuNDF2My4xYS41LjUgMCAwIDEtMSAuMDhWMTIuNWMwLS4yOC4yMi0uNS41LS41Wm02LTRhLjUuNSAwIDAgMSAuNS40djcuMWEuNS41IDAgMCAxLTEgLjA5VjguNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhMzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDExYTEgMSAwIDAgMSAxIDF2N2ExIDEgMCAxIDEtMiAwdi03YTEgMSAwIDAgMSAxLTFabS00IDNhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xWm0tNCAzYTEgMSAwIDAgMSAxIC45OHYxLjA0QTEgMSAwIDAgMSA0IDIwYTEgMSAwIDAgMS0xLS45OHYtMS4wNEExIDEgMCAwIDEgNCAxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhMzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNzUgMTdjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MS41YS43NS43NSAwIDAgMS0xLjUuMXYtMS42YzAtLjQxLjM0LS43NS43NS0uNzVabTgtNmMuMzggMCAuNy4yOC43NC42NWwuMDEuMXY3LjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi03LjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTQgM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi00LjZjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGE0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00Ljc1IDEyYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2Mi41YS43NS43NSAwIDAgMS0xLjUuMTF2LTIuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy0yYy4zOCAwIC42OS4yOC43NC42NGwuMDEuMTF2NC41YS43NS43NSAwIDAgMS0xLjUuMTF2LTQuNjFjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhNDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSAxMGEuNS41IDAgMCAxIC41LjQxdjUuMDlhLjUuNSAwIDAgMS0uOTkuMDlWMTAuNWMwLS4yOC4yMi0uNS41LS41Wm0tMyAyYS41LjUgMCAwIDEgLjUuNDF2My4wOWEuNS41IDAgMCAxLTEgLjA5VjEyLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyRGF0YTQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGE0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk04IDE0YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMVptLTQgM2ExIDEgMCAwIDEgMSAuOTh2MS4wNEExIDEgMCAwIDEgNCAyMGExIDEgMCAwIDEtMS0uOTh2LTEuMDRBMSAxIDAgMCAxIDQgMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGE0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjc1IDE3Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjEuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTEuNmMwLS40MS4zNC0uNzUuNzUtLjc1Wm00LTNjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2NC41YS43NS43NSAwIDAgMS0xLjUuMXYtNC42YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGE1MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJEYXRhNTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC43NSAxMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjIuNWEuNzUuNzUgMCAwIDEtMS41LjExdi0yLjYxYzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhckRhdGE1MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgMTJhLjUuNSAwIDAgMSAuNS40MXYzLjA5YS41LjUgMCAwIDEtMSAuMDlWMTIuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhNTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyRGF0YTUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgMTdhMSAxIDAgMCAxIDEgLjk4djEuMDRBMSAxIDAgMCAxIDQgMjBhMSAxIDAgMCAxLTEtLjk4di0xLjA0QTEgMSAwIDAgMSA0IDE3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJEYXRhNTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhckRhdGE1MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyAxNy43NXYxLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xLjVhLjc1Ljc1IDAgMCAwLTEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhck9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0wxMCAxMC43MXY0LjY1YS43NS43NSAwIDAgMCAxLjUtLjExdi0zLjA0bDEuNSAxLjVWMTUuMzZhLjc1Ljc1IDAgMCAwIDEuNS0uMTF2LS4wNGwyLjY1IDIuNjRhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEzIDEwLjg4VjYuNzVhLjc1Ljc1IDAgMCAxIDEuNS0uMTF2NS43NGwtMS41LTEuNVptNC40OCA0LjQ4TDE2IDEzLjg4bC4wMS05LjEzYS43NC43NCAwIDAgMSAxLjQ4LS4xMmwuMDEuMS0uMDEgMTAuNTItLjAxLjFaTTUuNDkgMTIuNjRhLjc1Ljc1IDAgMCAwLTEuNDkuMTF2Mi42MWEuNzUuNzUgMCAwIDAgMS41LS4xMXYtMi42MVptMy0yYS43NS43NSAwIDAgMC0xLjQ5LjExdjQuNjFhLjc1Ljc1IDAgMCAwIDEuNS0uMTF2LTQuNjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhck9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhck9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMMTAgMTAuNzF2NC44OGEuNS41IDAgMCAwIDEtLjA5di0zLjhsMiAyVjE1LjZhLjUuNSAwIDAgMCAxLS4wOXYtLjhsMy4xNSAzLjE1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xMyAxMC44OFY2LjVhLjUuNSAwIDAgMSAxLS4wOXY1LjQ3bC0xLTFabTMgM1Y0LjVhLjUuNSAwIDAgMSAxLS4wOVYxNC44OGwtMS0xWm0tOC0zLjQ3YS41LjUgMCAwIDAtMSAuMDl2NWwuMDEuMDlhLjUuNSAwIDAgMCAxLS4wOXYtNUw4IDEwLjQxWm0tMyAyYS41LjUgMCAwIDAtMSAuMDl2My4wOWEuNS41IDAgMCAwIDEtLjA5di0zLjA5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhck9mZjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMTEgMTIuMDZWMTlhMSAxIDAgMSAwIDIgMHYtNC45NGwyIDJWMTlhMSAxIDAgMCAwIDIgMHYtLjk0bDMuNzIgMy43MmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTkgMTUuODJsMiAyVjZhMSAxIDAgMCAwLTIgMHY5LjgyWm0tNC00IDIgMlY5YTEgMSAwIDAgMC0yIDB2Mi44MlpNOCAxNGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFabS00IDNhMSAxIDAgMCAxIDEgLjk4djEuMDRBMSAxIDAgMCAxIDQgMjBhMSAxIDAgMCAxLTEtLjk4di0xLjA0QTEgMSAwIDAgMSA0IDE3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VsbHVsYXJPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwxMSAxMi4wNnY3LjI5YS43NS43NSAwIDAgMCAxLjUtLjF2LTUuNjlsMi41IDIuNXYzLjI5YS43NS43NSAwIDAgMCAxLjUtLjF2LTEuNjlsNC4yMiA0LjIyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWk0xOSAxNS44MmwxLjUgMS41VjUuNjRhLjc1Ljc1IDAgMCAwLTEuNS4xMnYxMC4wNlptLTQtNCAxLjUgMS41VjguNjVhLjc1Ljc1IDAgMCAwLTEuNS4xdjMuMDdaTTMuNzUgMTdjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MS41YS43NS43NSAwIDAgMS0xLjUuMXYtMS42YzAtLjQxLjM0LS43NS43NS0uNzVabTQtM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi00LjZjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyV2FybmluZzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbGx1bGFyV2FybmluZzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC43NSAxMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjIuNWEuNzUuNzUgMCAwIDEtMS41LjExdi0yLjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjQuNWEuNzUuNzUgMCAwIDEtMS41LjExdi00LjYxYzAtLjQxLjM0LS43NS43NS0uNzVabTMtMmMuMzggMCAuNjkuMjguNzQuNjRsLjAxLjExdjMuNzlsLTEuNDcgMi45M2EuNzUuNzUgMCAwIDEtLjAyLS4xbC0uMDEtLjEydi02LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTMgOS42OGMuNC0uNDUuOTUtLjY4IDEuNS0uNjhWNi42NGEuNzUuNzUgMCAwIDAtMS41LjExdjIuOTNabTMuMy40MyAxLjE5IDIuMzkuMDEtNy43NnYtLjExYS43NC43NCAwIDAgMC0xLjQ5LjEydjQuOTNjLjEuMTIuMi4yNy4yOC40M1ptLTIuNy40NC0zLjUgN0ExIDEgMCAwIDAgMTEgMTloN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNSAxMi41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDAgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcldhcm5pbmcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VsbHVsYXJXYXJuaW5nMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuNSA0YS41LjUgMCAwIDEgLjUuNDF2Ny4xMmwtLjctMS40MmMtLjA5LS4xNy0uMTktLjMxLS4zLS40NFY0LjVjMC0uMjguMjMtLjUuNS0uNVpNMTAgMTUuNTNsMS0yVjguNGEuNS41IDAgMCAwLTEgLjF2Ny4wM1ptMy01Ljg1Yy4yNy0uMzIuNjItLjUyIDEtLjYyVjYuNDFhLjUuNSAwIDAgMC0xIC4xdjMuMTdaTTcuNSAxMGEuNS41IDAgMCAxIC41LjR2NS4xYS41LjUgMCAwIDEtLjk5LjA5di01LjFjMC0uMjcuMjItLjUuNS0uNVptLTMgMmEuNS41IDAgMCAxIC41LjR2My4xYS41LjUgMCAwIDEtMSAuMDl2LTMuMWMwLS4yNy4yMi0uNS41LS41Wm05LjEtMS40NS0zLjUgN0ExIDEgMCAwIDAgMTEgMTloN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNSAxMi41djNhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDZWxsdWxhcldhcm5pbmcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcldhcm5pbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2IDlhMSAxIDAgMCAxIDEgMXYxLjA1Yy0uNy4xNC0xLjM2LjU5LTEuNzQgMS4zM2wtLjI2LjUzVjEwYTEgMSAwIDAgMSAxLTFabTMtMnY0LjVjLjMuMjEuNTUuNTEuNzQuODhMMjEgMTQuOTFWN2ExIDEgMCAwIDAtMiAwWm0tNy43MyAxMy4zOEwxMyAxNi45MVYxM2ExIDEgMCAxIDAtMiAwdjdhMSAxIDAgMCAwIC4xOC41N2wuMDktLjE5Wk04IDE1YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMVptLTQgM2ExIDEgMCAwIDEgMSAuOTh2MS4wNEExIDEgMCAwIDEgNCAyMWExIDEgMCAwIDEtMS0uOTh2LTEuMDRBMSAxIDAgMCAxIDQgMThabTEyLjE2LTUuMTctNCA4QTEuNSAxLjUgMCAwIDAgMTMuNSAyM2g4YTEuNSAxLjUgMCAwIDAgMS4zNC0yLjE3bC00LThhMS41IDEuNSAwIDAgMC0yLjY4IDBaTTE4IDE1LjV2M2EuNS41IDAgMCAxLTEgMHYtM2EuNS41IDAgMCAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbGx1bGFyV2FybmluZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZWxsdWxhcldhcm5pbmcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjc1IDE4Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjEuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTEuNmMwLS40MS4zNC0uNzUuNzUtLjc1Wm04LTZjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2NS4xNmwtMS4yMyAyLjQ3Yy0uMDUuMS0uMS4yLS4xMy4zYS43NS43NSAwIDAgMS0uMTMtLjMzbC0uMDEtLjF2LTcuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLjUxLjM4Yy4yOS0uNTcuNzMtLjk2IDEuMjQtMS4xOFY5LjY1YS43NS43NSAwIDAgMC0xLjUuMXYzLjE2bC4yNi0uNTNabTQuNDggMCAuNzUgMS41MlY2Ljc0bC0uMDItLjFhLjc0Ljc0IDAgMCAwLS43NC0uNjRjLS40IDAtLjczLjM0LS43My43NnY0Ljc0Yy4zLjIyLjU1LjUxLjc0Ljg4Wk03Ljc1IDE1Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjQuNWEuNzUuNzUgMCAwIDEtMS41LjF2LTQuNmMwLS40Mi4zNC0uNzUuNzUtLjc1Wm04LjQtMi4xNy0zLjk5IDhBMS41IDEuNSAwIDAgMCAxMy41IDIzaDhhMS41IDEuNSAwIDAgMCAxLjM0LTIuMTdsLTQtOGExLjUgMS41IDAgMCAwLTIuNjggMFpNMTggMTUuNDl2M2EuNS41IDAgMSAxLTEgMHYtM2EuNS41IDAgMCAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbnRlckhvcml6b250YWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZW50ZXJIb3Jpem9udGFsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjUgMThhLjUuNSAwIDAgMS0uNS0uNXYtMTVhLjUuNSAwIDAgMSAxIDB2MTVhLjUuNSAwIDAgMS0uNS41WlwiLCBcIk0xNiAxNy41YS41LjUgMCAwIDAgMSAwdi0xNWEuNS41IDAgMCAwLTEgMHYxNVpcIiwgXCJNOSA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJIOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbnRlckhvcml6b250YWwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VudGVySG9yaXpvbnRhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuNSAxOGEuNS41IDAgMCAxLS41LS41di0xNWEuNS41IDAgMCAxIDEgMHYxNWEuNS41IDAgMCAxLS41LjVaXCIsIFwiTTE2IDE3LjVhLjUuNSAwIDAgMCAxIDB2LTE1YS41LjUgMCAwIDAtMSAwdjE1WlwiLCBcIk05IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg5Wk04IDZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMVY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VudGVySG9yaXpvbnRhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbnRlckhvcml6b250YWwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuNzUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2MTYuNWEuNzUuNzUgMCAwIDEtMS41IDBWMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0xNi41IDBjLjQxIDAgLjc1LjM0Ljc1Ljc1djE2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTEwIDJDOS4wMSA1IDggNiA4IDcuMjV2OS41QzggMTcuOTkgOSAxOSAxMC4yNSAxOWgzLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTkuNUMxNiA2LjAxIDE1IDUgMTMuNzUgNWgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VudGVySG9yaXpvbnRhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZW50ZXJIb3Jpem9udGFsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC41IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjMuNzVabTE1IDBhLjc1Ljc1IDAgMCAxIDEuNSAwdjE2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjMuNzVaTTEwLjI1IDVDOS4wMSA1IDggNiA4IDcuMjV2OS41QzggMTcuOTkgOSAxOSAxMC4yNSAxOWgzLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTkuNUMxNiA2LjAxIDE1IDUgMTMuNzUgNWgtMy41Wk05LjUgNy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDMuNWMuNDEgMCAuNzUuMzQuNzUuNzV2OS41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VudGVyVmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZW50ZXJWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi41IDNhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFoLTE1Wk0yIDE2LjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpNNiA3YTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbnRlclZlcnRpY2FsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlbnRlclZlcnRpY2FsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiAzLjVjMC0uMjguMjItLjUuNS0uNWgxNWEuNS41IDAgMCAxIDAgMWgtMTVhLjUuNSAwIDAgMS0uNS0uNVpNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpNNiA3YTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJINlpNNSA5YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENlbnRlclZlcnRpY2FsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VudGVyVmVydGljYWwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIxIDMuNzVjMCAuNDEtLjM0Ljc1LS43NS43NUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxNi41Yy40MSAwIC43NS4zNC43NS43NVptMCAxNi41YzAgLjQxLS4zNC43NS0uNzUuNzVIMy43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMTYuNWMuNDEgMCAuNzUuMzQuNzUuNzVaTTcuMjUgOEM2LjAxIDggNSA5IDUgMTAuMjV2My41QzUgMTQuOTkgNiAxNiA3LjI1IDE2aDkuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMy41QzE5IDkuMDEgMTggOCAxNi43NSA4aC05LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZW50ZXJWZXJ0aWNhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZW50ZXJWZXJ0aWNhbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIxIDMuNzVjMCAuNDEtLjM0Ljc1LS43NS43NUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxNi41Yy40MSAwIC43NS4zNC43NS43NVptMCAxNi41YzAgLjQxLS4zNC43NS0uNzUuNzVIMy43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMTYuNWMuNDEgMCAuNzUuMzQuNzUuNzVaTTcuMjUgOEM2LjAxIDggNSA5IDUgMTAuMjV2My41QzUgMTQuOTkgNiAxNiA3LjI1IDE2aDkuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMy41QzE5IDkuMDEgMTggOCAxNi43NSA4aC05LjVabS0uNzUgMi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDkuNWMuNDEgMCAuNzUuMzQuNzUuNzV2My41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTkuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VydGlmaWNhdGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAyaDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDYuNjJhMy45NyAzLjk3IDAgMCAwIDAtNmg0Ljg4YS41LjUgMCAwIDAgMC0xSDRjLTEuMiAwLTIuMjcuNTQtMyAxLjM4VjRjMC0xLjEuOS0yIDItMlptNi41IDdoMmEuNS41IDAgMCAwIDAtMWgtMmEuNS41IDAgMCAwIDAgMVpNNCAxMmEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabS0yIDIuNXYtMi4wNmMuNi4zNSAxLjI3LjU2IDIgLjU2czEuNC0uMjEgMi0uNTZ2Mi4wNmEuNS41IDAgMCAxLS4yNi40NC41LjUgMCAwIDEtLjUyLS4wMkw0IDE0LjFsLTEuMjIuODFBLjUuNSAwIDAgMSAyIDE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDZXJ0aWZpY2F0ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgNGMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDd2LS4zNWE0IDQgMCAwIDAgLjQ2LS42NUgxM2ExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MS41NGMtLjM4LjIxLS43MS40OS0xIC44MVY0Wm01LjY1IDJjLS42Mi0uNTUtMS40MS0uOS0yLjI4LS45OEEuNS41IDAgMCAxIDQuNSA1aDdhLjUuNSAwIDAgMSAwIDFINi42NVpNOC41IDhhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNyA5YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFptLTUgMy40NHYyLjA2YS41LjUgMCAwIDAgLjI2LjQ0LjUuNSAwIDAgMCAuNTItLjAzTDQgMTQuMWwxLjIyLjgyYS41LjUgMCAwIDAgLjctLjE2LjUuNSAwIDAgMCAuMDgtLjI2di0yLjA2Yy0uNi4zNS0xLjI3LjU2LTIgLjU2cy0xLjQtLjIxLTItLjU2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VydGlmaWNhdGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCAzYTIgMiAwIDAgMC0yIDJ2My42N2E0LjUgNC41IDAgMSAxIDcgNS42NlYxNWg3YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDRabTEuNSA0YS41LjUgMCAwIDEgMC0xaDlhLjUuNSAwIDAgMSAwIDFoLTlabTUuNSAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSAxNWEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1ptLTIuNS4yNGE0LjQ4IDQuNDggMCAwIDAgNSAwVjE4YS41LjUgMCAwIDEtLjguNGwtMS40LTEuMDVhLjUuNSAwIDAgMC0uNiAwTDMuOCAxOC40QS41LjUgMCAwIDEgMyAxOHYtMi43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENlcnRpZmljYXRlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NlcnRpZmljYXRlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCAzYTIgMiAwIDAgMC0yIDJ2My42N2MuMjktLjM1LjYyLS42NiAxLS45MVY1YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIOS4yNGwtLjI0LjMzVjE1aDdhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINFptMSAzLjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabS41IDguNWEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1ptLTIuNS4yNGE0LjQ4IDQuNDggMCAwIDAgNSAwVjE4YS41LjUgMCAwIDEtLjguNGwtMS40LTEuMDVhLjUuNSAwIDAgMC0uNiAwTDMuOCAxOC40QS41LjUgMCAwIDEgMyAxOHYtMi43NlpNMTAuNSAxMGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2VydGlmaWNhdGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC43NSAzQTIuNzUgMi43NSAwIDAgMCAyIDUuNzVWMTFhNSA1IDAgMSAxIDggNnYxaDkuMjVBMi43NSAyLjc1IDAgMCAwIDIyIDE1LjI1di05LjVBMi43NSAyLjc1IDAgMCAwIDE5LjI1IDNINC43NVptMiA0aDEwLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDYuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xMiAxMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNiAxMGE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabTMgOGE0Ljk4IDQuOTggMCAwIDEtNiAwdjMuMjVjMCAuNTcuNi45MiAxLjA5LjY3bC4wOS0uMDZMNiAyMC42bDEuODIgMS4yN2EuNzUuNzUgMCAwIDAgMS4xNy0uNXYtLjExTDkgMThaXCJdKTtcbmV4cG9ydCBjb25zdCBDZXJ0aWZpY2F0ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIgNS43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSAzaDE0LjVBMi43NSAyLjc1IDAgMCAxIDIyIDUuNzV2OS41QTIuNzUgMi43NSAwIDAgMSAxOS4yNSAxOEgxMHYtMWE1IDUgMCAwIDAgLjMzLS41aDguOTJjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di05LjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDQuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djMuOTJjLS41OS4zNC0xLjEuOC0xLjUgMS4zM1Y1Ljc1Wk02Ljc1IDdhLjc1Ljc1IDAgMCAwIDAgMS41aDEwLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDYuNzVabTYgNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41Wk02IDEwYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFptMyA4YTQuOTggNC45OCAwIDAgMS02IDB2My4yNWMwIC41Ny42LjkyIDEuMDkuNjdsLjA5LS4wNkw2IDIwLjZsMS44MiAxLjI3YS43NS43NSAwIDAgMCAxLjE3LS41di0uMTFMOSAxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENlcnRpZmljYXRlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2VydGlmaWNhdGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTUuMjUgNEEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djcuOTJhNi45OSA2Ljk5IDAgMCAxIDExLjUgNy45NFYyNWgxMy4yNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjcuMjVDMzAgNS40NSAyOC41NCA0IDI2Ljc1IDRINS4yNVpNOSAxMGgxNGExIDEgMCAxIDEgMCAySDlhMSAxIDAgMSAxIDAtMlptNyA4YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAxIDEgMCAyaC02YTEgMSAwIDAgMS0xLTFabS0zIDEuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMSA1LjM2YTYuOTcgNi45NyAwIDAgMS05IDBWMjlhMSAxIDAgMCAwIDEuNTMuODVMNy41IDI4bDIuOTcgMS44NUExIDEgMCAwIDAgMTIgMjl2LTQuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDZXJ0aWZpY2F0ZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDZXJ0aWZpY2F0ZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIgNy4yNUMyIDUuNDUgMy40NiA0IDUuMjUgNGgyMS41QzI4LjU1IDQgMzAgNS40NiAzMCA3LjI1djE0LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUgxMy41di0xLjlsLjA2LS4xaDEzLjE5Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVY3LjI1QzI4IDYuNTYgMjcuNDQgNiAyNi43NSA2SDUuMjVDNC41NiA2IDQgNi41NiA0IDcuMjV2Ni4xOWE3LjAzIDcuMDMgMCAwIDAtMiAxLjczVjcuMjVaTTEzIDE5LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTEgNS4zNmE2Ljk3IDYuOTcgMCAwIDEtOSAwVjI5YTEgMSAwIDAgMCAxLjUzLjg1TDcuNSAyOGwyLjk3IDEuODVBMSAxIDAgMCAwIDEyIDI5di00LjE0Wk04IDExYTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMSAxIDAgMkg5YTEgMSAwIDAgMS0xLTFabTkgNmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMmgtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWwxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yLjUgNC41NWExIDEgMCAwIDAtMSAxIDEgMSAwIDEgMCAxLTFabTAtMWMtLjExIDAtLjIyLjAxLS4zMi4wM0EyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSAyIDExLjVWNy40OWEyIDIgMCAxIDAgLjUtMy45NFptMyAyLjk1YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDEgMCAwLTFINmEuNS41IDAgMCAwLS41LjVabTAgM2MwIC4yOC4yMi41LjUuNWgyLjYxYS41LjUgMCAwIDAgMC0xSDZhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMi41IDYuNTVhMSAxIDAgMCAxLTEtMSAxIDEgMCAxIDEgMSAxWm0tLjMyLTIuOTdhMi4wMSAyLjAxIDAgMCAxIDEuMDYuMTFDMy41IDMuMjggMy45NyAzIDQuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDExLjVWNy40OWEyIDIgMCAwIDEtMSAwdjQuMDFBMi41IDIuNSAwIDAgMCA0LjUgMTRoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdhMi41IDIuNSAwIDAgMC0yLjMyIDEuNThaTTYgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAxIDAgMC0xSDZabTAgM2EuNS41IDAgMCAwIDAgMWgyLjYxYS41LjUgMCAwIDAgMC0xSDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNhMi41IDIuNSAwIDAgMC0yLjMgMS41MmwuMy0uMDJBMiAyIDAgMSAxIDMgOC40NHY2LjA2QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFabS00LTUuNWExIDEgMCAwIDAtMSAxIDEgMSAwIDEgMCAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgNS41YTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptMC0xYy0uMSAwLS4yIDAtLjMuMDJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41VjguNDRhMiAyIDAgMCAwIDEgMHY2LjA2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjUxIDAtLjk3LjI2LTEuMjQuNjVhMiAyIDAgMCAwLS43Ni0uMTVabTMuNSA0YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy43NSAzQzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NSAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjkuMzdhMi4yNSAyLjI1IDAgMSAwIC4yMi00LjNBMy4yNSAzLjI1IDAgMCAxIDYuMjUgM2gxMS41Wm0tNC41IDEwaC00LjVsLS4xLjAxYS43NS43NSAwIDAgMCAwIDEuNDlIMTMuMzVhLjc1Ljc1IDAgMCAwLS4xLTEuNVptMi0zLjVoLTYuNmEuNzUuNzUgMCAwIDAgMCAxLjQ5SDE1LjM1YS43NS43NSAwIDAgMC0uMS0xLjVaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNzUgM0EzLjI1IDMuMjUgMCAwIDEgMjEgNi4wN3YxMS42OGEzLjI1IDMuMjUgMCAwIDEtMy4wNyAzLjI0bC0uMTguMDFINi4yNWEzLjI1IDMuMjUgMCAwIDEtMy4yNC0zLjA3TDMgMTcuNzVWOS4zN2EyLjI1IDIuMjUgMCAwIDAgMS41IDB2OC4zOGMwIC45Mi43IDEuNjcgMS42IDEuNzRsLjE1LjAxaDExLjVjLjkyIDAgMS42Ny0uNyAxLjc0LTEuNmwuMDEtLjE1VjYuMjVjMC0uOTItLjctMS42Ny0xLjYtMS43NGwtLjE1LS4wMUg2LjI1Yy0uNiAwLTEuMTMuMy0xLjQ0Ljc2YTIuMjMgMi4yMyAwIDAgMC0xLjU5LS4yIDMuMjUgMy4yNSAwIDAgMSAyLjg1LTIuMDVMNi4yNSAzaDExLjVabS00LjUgMTBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtNC42YS43NS43NSAwIDAgMS0uMS0xLjQ5aDQuNlptMi0zLjVhLjc1Ljc1IDAgMCAxIC4xIDEuNDloLTYuNmEuNzUuNzUgMCAwIDEtLjEtMS40OWg2LjZaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWwyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMgNy4xN2ExLjc1IDEuNzUgMCAxIDAgMS41IDMuMTZBMS43NSAxLjc1IDAgMCAwIDMgNy4xN1ptLjE3LTEuMUEyLjc2IDIuNzYgMCAwIDEgNi41IDguNzQgMi43NSAyLjc1IDAgMCAxIDMgMTEuNHY5LjM1QzMgMjMuMSA0LjkgMjUgNy4yNSAyNWgxMy41QzIzLjEgMjUgMjUgMjMuMSAyNSAyMC43NVY3LjI1QzI1IDQuOSAyMy4xIDMgMjAuNzUgM0g3LjI1YTQuMjUgNC4yNSAwIDAgMC00LjA4IDMuMDZaTTkuNzUgMTFoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMSAwLTEuNVpNOSAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDkuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWwyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yIDguNzVhMS43NSAxLjc1IDAgMSAwIDMuNSAwIDEuNzUgMS43NSAwIDAgMC0zLjUgMFptMSAyLjY1djkuMzVDMyAyMy4xIDQuOSAyNSA3LjI1IDI1aDEzLjVDMjMuMSAyNSAyNSAyMy4xIDI1IDIwLjc1VjcuMjVDMjUgNC45IDIzLjEgMyAyMC43NSAzSDcuMjVhNC4yNSA0LjI1IDAgMCAwLTQuMDggMy4wNiAyLjc2IDIuNzYgMCAwIDEgMS41NS4xMkEyLjc1IDIuNzUgMCAwIDEgNy4yNSA0LjVoMTMuNWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djEzLjVhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NUg3LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzVWMTEuNGEyLjc1IDIuNzUgMCAwIDEtMS41IDBabTYuNzUtLjRhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVpNOSAxNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDkuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNiAxMi41YTIuNSAyLjUgMCAxIDAgMyA0IDIuNSAyLjUgMCAwIDAtMy00Wm0uMTktMS43OEE0IDQgMCAxIDEgNiAxOC4yMXYxNy41NEM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDIzLjVDMzkuMiA0MiA0MiAzOS4yIDQyIDM1Ljc1di0yMy41QzQyIDguOCAzOS4yIDYgMzUuNzUgNmgtMjMuNWMtMi45MiAwLTUuMzggMi02LjA2IDQuNzJaTTE2IDIwLjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEzLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xMy41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTE3LjI1IDI2aDkuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTkuNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWw0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02LjE5IDEwLjcyQTYuMjUgNi4yNSAwIDAgMSAxMi4yNSA2aDIzLjVDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXYyMy41QzQyIDM5LjIgMzkuMiA0MiAzNS43NSA0MmgtMjMuNUE2LjI1IDYuMjUgMCAwIDEgNiAzNS43NVYxOC4yMWEzLjk5IDMuOTkgMCAwIDAgMi41LjE2djE3LjM4YTMuNzUgMy43NSAwIDAgMCAzLjc1IDMuNzVoMjMuNWEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1di0yMy41YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLTIzLjVjLTEuNTMgMC0yLjg0LjkxLTMuNDMgMi4yMmE0IDQgMCAwIDAtMi42MyAwWk02IDEyLjVhMi41IDIuNSAwIDEgMCAzIDQgMi41IDIuNSAwIDAgMC0zLTRaTTE3LjI1IDE5YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxMy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMTMuNVpNMTYgMjcuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoOS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtOS41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMS42MyAyLjI5QTEuNzYgMS43NiAwIDAgMSAzLjc1IDQgMS43NSAxLjc1IDAgMCAxIDEuNSA1LjY4VjhjMCAxLjEuOSAyIDIgMmgxLjUyYy4yNi0yLjggMi42MS01IDUuNDgtNVYzYTIgMiAwIDAgMC0yLTJoLTVhMiAyIDAgMCAwLTEuODcgMS4yOVpNNCA0LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQuNSA3YS41LjUgMCAwIDEgMC0xSDZhLjUuNSAwIDAgMSAwIDFINC41Wk0yLjc1IDRhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTUgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxMEg4LjVhLjUuNSAwIDAgMCAwIDFIMTB2MS41YS41LjUgMCAwIDAgMSAwVjExaDEuNWEuNS41IDAgMCAwIDAtMUgxMVY4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBZGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDIuMjVjLS4xMyAwLS4yNS4wMS0uMzcuMDRBMiAyIDAgMCAxIDMuNSAxaDVhMiAyIDAgMCAxIDIgMnYyYy0uMzQgMC0uNjguMDMtMSAuMVYzYTEgMSAwIDAgMC0xLTFoLTVhMSAxIDAgMCAwLS44LjRjLS4yMS0uMS0uNDUtLjE1LS43LS4xNVpNNS4yIDlIMy41YTEgMSAwIDAgMS0xLTFWNS42OGExLjc1IDEuNzUgMCAwIDEtMSAwVjhjMCAxLjEuOSAyIDIgMmgxLjUyYy4wMy0uMzQuMS0uNjguMTktMVpNNCA0LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQuNSA2YS41LjUgMCAwIDAgMCAxSDZhLjUuNSAwIDAgMCAwLTFINC41Wk0yLjc1IDRhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpNMTUgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxMEg4LjVhLjUuNSAwIDAgMCAwIDFIMTB2MS41YS41LjUgMCAwIDAgMSAwVjExaDEuNWEuNS41IDAgMCAwIDAtMUgxMVY4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNhMi41IDIuNSAwIDAgMC0yLjMgMS41MmwuMy0uMDJBMiAyIDAgMSAxIDMgOC40NHY2LjA2QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWE1LjQ4IDUuNDggMCAwIDEgMC01SDcuNWEuNS41IDAgMCAxIDAtMWgyLjc2QTUuNDkgNS40OSAwIDAgMSAxNyA5LjZWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLTMuNS0zYTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptMTUuNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy41IDQuNWMtLjEgMC0uMiAwLS4zLjAyQTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjFjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjUxIDAtLjk3LjI2LTEuMjQuNjVhMiAyIDAgMCAwLS43Ni0uMTVaTTkuMiAxNmMuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjguNDRhMiAyIDAgMCAwIDEgMHY2LjA2YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN1ptLjQtNGMuMTgtLjM2LjQtLjcuNjYtMUg3LjVhLjUuNSAwIDAgMCAwIDFoMi4xWk0zLjUgNS41YTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptNCAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy43NSAzQzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djUuNzdhNi40NyA2LjQ3IDAgMCAwLTguMi45OEg4Ljc2bC0uMS4wMWEuNzUuNzUgMCAwIDAgMCAxLjQ5aDMuMDhhNi40NyA2LjQ3IDAgMCAwIC4zIDYuNUg2LjI0QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjkuMzdhMi4yNSAyLjI1IDAgMSAwIC4yMi00LjNBMy4yNSAzLjI1IDAgMCAxIDYuMjUgM2gxMS41Wm0tMi41IDYuNWgtNi42YS43NS43NSAwIDAgMCAwIDEuNDlIMTUuMzVhLjc1Ljc1IDAgMCAwLS4xLTEuNVpNMy43NSA2YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy43NSAzQTMuMjUgMy4yNSAwIDAgMSAyMSA2LjA3VjEyLjAyYy0uNDYtLjMtLjk3LS41My0xLjUtLjdWNi4yNGMwLS45Mi0uNy0xLjY3LTEuNi0xLjc0bC0uMTUtLjAxSDYuMjVjLS42IDAtMS4xMy4zLTEuNDQuNzZhMi4yMyAyLjIzIDAgMCAwLTEuNTktLjIgMy4yNSAzLjI1IDAgMCAxIDIuODUtMi4wNUw2LjI1IDNoMTEuNVptLTYuNDQgMTYuNWMuMTguNTMuNDIgMS4wNC43MSAxLjVINi4yNWEzLjI1IDMuMjUgMCAwIDEtMy4yNC0zLjA3TDMgMTcuNzVWOS4zN2EyLjI1IDIuMjUgMCAwIDAgMS41IDB2OC4zOGMwIC45Mi43IDEuNjcgMS42IDEuNzRsLjE1LjAxaDUuMDZabS40Mi01Yy4yOS0uNTUuNjUtMS4wNSAxLjA4LTEuNUg4Ljc1bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41aDIuOThabTMuNTItNWEuNzUuNzUgMCAwIDEgLjEgMS40OWgtNi42YS43NS43NSAwIDAgMS0uMS0xLjQ5aDYuNlpNMy43NSA2YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFkZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMy4xNyA2LjA2QTIuNzYgMi43NiAwIDAgMSA2LjUgOC43NSAyLjc1IDIuNzUgMCAwIDEgMyAxMS40djkuMzVDMyAyMy4xIDQuOSAyNSA3LjI1IDI1aDcuMjVhNy40NyA3LjQ3IDAgMCAxLS4zNS04LjVoLTQuNGEuNzUuNzUgMCAwIDEgMC0xLjVoNS42NWE3LjQ3IDcuNDcgMCAwIDEgOS42LS41VjcuMjVDMjUgNC45IDIzLjEgMyAyMC43NSAzSDcuMjVhNC4yNSA0LjI1IDAgMCAwLTQuMDggMy4wNlpNOS43NSAxMWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0zIDcuMTdhMS43NSAxLjc1IDAgMSAwIDEuNSAzLjE2QTEuNzUgMS43NSAwIDAgMCAzIDcuMTdaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYyMGgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMCAwIDEgMFYyMWgzLjVhLjUuNSAwIDAgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBZGQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFkZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgMTEuNHY5LjM1QzMgMjMuMSA0LjkgMjUgNy4yNSAyNWg3LjI1YTcuNDkgNy40OSAwIDAgMS0uODgtMS41SDcuMjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NVYxMS40YTIuNzUgMi43NSAwIDAgMS0xLjUgMFptMjItNC4xNXY3LjI1YTcuNDkgNy40OSAwIDAgMC0xLjUtLjg4VjcuMjVhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NUg3LjI1Yy0xLjE0IDAtMi4xMS43LTIuNTMgMS42OGEyLjc0IDIuNzQgMCAwIDAtMS41NS0uMTJBNC4yNSA0LjI1IDAgMCAxIDcuMjUgM2gxMy41QzIzLjEgMyAyNSA0LjkgMjUgNy4yNVpNOS43NSAxNWg1LjY1Yy0uNDguNDQtLjkuOTUtMS4yNSAxLjVoLTQuNGEuNzUuNzUgMCAwIDEgMC0xLjVaTTIgOC43NWExLjc1IDEuNzUgMCAxIDAgMy41IDAgMS43NSAxLjc1IDAgMCAwLTMuNSAwWk05Ljc1IDExYS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYyMGgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMCAwIDEgMFYyMWgzLjVhLjUuNSAwIDAgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBZGQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWRkNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMi4yNSA2Yy0yLjkyIDAtNS4zOCAyLTYuMDYgNC43MkE0IDQgMCAxIDEgNiAxOC4yMXYxNy41NEM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDExLjhhMTIuOTQgMTIuOTQgMCAwIDEtLjMxLTEzLjVoLTYuNDlhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDguMzdBMTIuOTYgMTIuOTYgMCAwIDEgNDIgMjQuMDRWMTIuMjVDNDIgOC44IDM5LjIgNiAzNS43NSA2aC0yMy41Wk0xNiAyMC4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMy41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMTMuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wk03LjUgMTJBMi40OSAyLjQ5IDAgMCAwIDUgMTQuNSAyLjUgMi41IDAgMSAwIDcuNSAxMlpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTAtN2ExIDEgMCAxIDAtMiAwdjZoLTZhMSAxIDAgMSAwIDAgMmg2djZhMSAxIDAgMSAwIDIgMHYtNmg2YTEgMSAwIDEgMCAwLTJoLTZ2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWRkNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBZGQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk03LjUgMTAuNWE0IDQgMCAwIDAtMS4zMS4yMkE2LjI1IDYuMjUgMCAwIDEgMTIuMjUgNmgyMy41QzM5LjIgNiA0MiA4LjggNDIgMTIuMjV2MTEuOGMtLjc4LS41LTEuNjItLjkyLTIuNS0xLjI1VjEyLjI1YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLTIzLjVjLTEuNTMgMC0yLjg0LjkxLTMuNDMgMi4yMmE0IDQgMCAwIDAtMS4zMi0uMjJabTE1LjMgMjljLjMzLjg4Ljc0IDEuNzIgMS4yNCAyLjVIMTIuMjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzVWMTguMjFhMy45OSAzLjk5IDAgMCAwIDIuNS4xNnYxNy4zOGEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDIyLjhabS45NC0xMWMuNTItLjkgMS4xNi0xLjc1IDEuODgtMi41aC04LjM3YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg2LjQ5Wk03LjUgMTJBMi40OSAyLjQ5IDAgMCAwIDUgMTQuNSAyLjUgMi41IDAgMSAwIDcuNSAxMlptOS43NSA3YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxMy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMTMuNVpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTAtN2ExIDEgMCAxIDAtMiAwdjZoLTZhMSAxIDAgMSAwIDAgMmg2djZhMSAxIDAgMSAwIDIgMHYtNmg2YTEgMSAwIDEgMCAwLTJoLTZ2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWxlcnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWxlcnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNjMgMi4yOUExLjc2IDEuNzYgMCAwIDEgMy43NSA0IDEuNzUgMS43NSAwIDAgMSAxLjUgNS42OFY4YzAgMS4xLjkgMiAyIDJoMS41MmMuMjYtMi44IDIuNjEtNSA1LjQ4LTVWM2EyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0xLjg3IDEuMjlaTTQgNC41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk00LjUgN2EuNS41IDAgMCAxIDAtMUg2YS41LjUgMCAwIDEgMCAxSDQuNVpNMi43NSA0YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTE1IDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTEyLjUgOWEyIDIgMCAxIDAtNCAwdjEuOGwtLjM1LjM1YS41LjUgMCAwIDAgLjM1Ljg1aDRhLjUuNSAwIDAgMCAuMzUtLjg1bC0uMzUtLjM2VjlabS0zLjQxIDRhMS41IDEuNSAwIDAgMCAyLjgyIDBIOS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFsZXJ0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBbGVydDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgMi4yNWMtLjEzIDAtLjI1LjAxLS4zNy4wNEEyIDIgMCAwIDEgMy41IDFoNWEyIDIgMCAwIDEgMiAydjJjLS4zNCAwLS42OC4wMy0xIC4xVjNhMSAxIDAgMCAwLTEtMWgtNWExIDEgMCAwIDAtLjguNGMtLjIxLS4xLS40NS0uMTUtLjctLjE1Wk01LjIgOUgzLjVhMSAxIDAgMCAxLTEtMVY1LjY4YTEuNzUgMS43NSAwIDAgMS0xIDBWOGMwIDEuMS45IDIgMiAyaDEuNTJjLjAzLS4zNC4xLS42OC4xOS0xWk00IDQuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNC41IDZhLjUuNSAwIDAgMCAwIDFINmEuNS41IDAgMCAwIDAtMUg0LjVaTTIuNzUgNGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk0xNSAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMi41IDlhMiAyIDAgMSAwLTQgMHYxLjhsLS4zNS4zNWEuNS41IDAgMCAwIC4zNS44NWg0YS41LjUgMCAwIDAgLjM1LS44NWwtLjM1LS4zNlY5Wm0tMy40MSA0YTEuNSAxLjUgMCAwIDAgMi44MiAwSDkuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBbGVydDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNhMi41IDIuNSAwIDAgMC0yLjMgMS41MmwuMy0uMDJBMiAyIDAgMSAxIDMgOC40NHY2LjA2QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWE1LjQ4IDUuNDggMCAwIDEgMC01SDcuNWEuNS41IDAgMCAxIDAtMWgyLjc2QTUuNDkgNS40OSAwIDAgMSAxNyA5LjZWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLTMuNS0zYTEgMSAwIDAgMC0xIDEgMSAxIDAgMSAwIDEtMVptMTUuNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNi41IDEzYTIgMiAwIDEgMC00IDB2MS44bC0uMzUuMzVhLjUuNSAwIDAgMCAuMzUuODVoNGEuNS41IDAgMCAwIC4zNS0uODVsLS4zNS0uMzZWMTNabS0zLjQxIDRhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWxlcnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgNC41Yy0uMSAwLS4yIDAtLjMuMDJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Yy0uNTEgMC0uOTcuMjYtMS4yNC42NWEyIDIgMCAwIDAtLjc2LS4xNVpNOS4yIDE2Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOC40NGEyIDIgMCAwIDAgMSAwdjYuMDZjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Wm0uNC00Yy4xOC0uMzYuNC0uNy42Ni0xSDcuNWEuNS41IDAgMCAwIDAgMWgyLjFaTTMuNSA1LjVhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm00IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNi41IDEzYTIgMiAwIDEgMC00IDB2MS44bC0uMzUuMzVhLjUuNSAwIDAgMCAuMzUuODVoNGEuNS41IDAgMCAwIC4zNS0uODVsLS4zNS0uMzZWMTNabS0zLjQxIDRhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBbGVydDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0uMjUtOUEzLjI1IDMuMjUgMCAwIDEgMjEgNi4wN1YxMi4wMmE2LjQ3IDYuNDcgMCAwIDAtOC4yLjk4SDguNzZsLS4xLjAxYS43NS43NSAwIDAgMCAwIDEuNDloMy4wOGE2LjQ3IDYuNDcgMCAwIDAgLjMgNi41SDYuMjRhMy4yNSAzLjI1IDAgMCAxLTMuMjQtMy4wN0wzIDE3Ljc1VjkuMzdhMi4yNSAyLjI1IDAgMSAwIC4yMi00LjNBMy4yNSAzLjI1IDAgMCAxIDYuMDUgM2wuMi0uMDFoMTEuNVptLjc1IDE3aC0ydi4xMmExIDEgMCAwIDAgMi0uMTJabS0xLTZoLS4xNmMtLjk0LjEtMS42Ny43Ny0xLjgxIDEuNjRsLS4wMi4xNnYxLjVsLS44Ni44NWEuNS41IDAgMCAwIC4yNi44NEwxNSAxOWg1YS41LjUgMCAwIDAgLjQxLS43OWwtLjA2LS4wNi0uODUtLjg1di0xLjVhMS45OCAxLjk4IDAgMCAwLTItMS44Wm0tMi4yNS00LjVoLTYuNmEuNzUuNzUgMCAwIDAgMCAxLjQ5SDE1LjM1YS43NS43NSAwIDAgMC0uMS0xLjVaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFsZXJ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBbGVydDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTEzLTIuNjN2OC4zOGMwIC45Mi43IDEuNjcgMS42IDEuNzRsLjE1LjAxaDUuMDZjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDYuMjVhMy4yNSAzLjI1IDAgMCAxLTMuMjQtMy4wN0wzIDE3Ljc1VjkuMzdhMi4yNSAyLjI1IDAgMCAwIDEuNSAwWk0xOC41IDIwaC0ydi4xMmExIDEgMCAwIDAgMi0uMTJabS0xLTZoLS4xNmMtLjk0LjEtMS42Ny43Ny0xLjgxIDEuNjRsLS4wMi4xNnYxLjVsLS44Ni44NWEuNS41IDAgMCAwIC4yNi44NEwxNSAxOWg1YS41LjUgMCAwIDAgLjQxLS43OWwtLjA2LS4wNi0uODUtLjg1di0xLjVhMS45OCAxLjk4IDAgMCAwLTItMS44Wm0tNC43LTFjLS40Mi40NS0uNzguOTUtMS4wNyAxLjVIOC43NWEuNzUuNzUgMCAwIDEtLjEtMS40OUgxMi44Wm00Ljk1LTEwQTMuMjUgMy4yNSAwIDAgMSAyMSA2LjA3VjEyLjAyYy0uNDYtLjMtLjk3LS41My0xLjUtLjdWNi4yNGMwLS45Mi0uNy0xLjY3LTEuNi0xLjc0bC0uMTUtLjAxSDYuMjVjLS42IDAtMS4xMy4zLTEuNDQuNzZhMi4yMyAyLjIzIDAgMCAwLTEuNTktLjIgMy4yNSAzLjI1IDAgMCAxIDIuODUtMi4wNUw2LjI1IDNoMTEuNVptLTIuNSA2LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNDloLTYuNmEuNzUuNzUgMCAwIDEtLjEtMS40OWg2LjZaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFsZXJ0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFsZXJ0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDcuMTdhMS43NSAxLjc1IDAgMSAwIDEuNSAzLjE2QTEuNzUgMS43NSAwIDAgMCAzIDcuMTdabS4xNy0xLjFBMi43NiAyLjc2IDAgMCAxIDYuNSA4Ljc0IDIuNzUgMi43NSAwIDAgMSAzIDExLjR2OS4zNUMzIDIzLjEgNC45IDI1IDcuMjUgMjVoNy4yNWE3LjQ3IDcuNDcgMCAwIDEtLjM1LTguNWgtNC40YS43NS43NSAwIDAgMSAwLTEuNWg1LjY1YTcuNDcgNy40NyAwIDAgMSA5LjYtLjVWNy4yNUMyNSA0LjkgMjMuMSAzIDIwLjc1IDNINy4yNWE0LjI1IDQuMjUgMCAwIDAtNC4wOCAzLjA2Wk05Ljc1IDExaDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFpNMjAuNSAxNmEyLjUgMi41IDAgMCAwLTIuNSAyLjV2Mi44bC0uODUuODVhLjUuNSAwIDAgMCAuMzUuODVoNmEuNS41IDAgMCAwIC4zNS0uODVsLS44NS0uODZWMTguNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVabS0xLjQxIDhhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTkuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWxlcnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDExLjR2OS4zNUMzIDIzLjEgNC45IDI1IDcuMjUgMjVoNy4yNWE3LjQ5IDcuNDkgMCAwIDEtLjg4LTEuNUg3LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzVWMTEuNGEyLjc1IDIuNzUgMCAwIDEtMS41IDBabTIyLTQuMTV2Ny4yNWE3LjQ5IDcuNDkgMCAwIDAtMS41LS44OFY3LjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVINy4yNWMtMS4xNCAwLTIuMTEuNy0yLjUzIDEuNjhhMi43NCAyLjc0IDAgMCAwLTEuNTUtLjEyQTQuMjUgNC4yNSAwIDAgMSA3LjI1IDNoMTMuNUMyMy4xIDMgMjUgNC45IDI1IDcuMjVaTTkuNzUgMTVoNS42NWMtLjQ4LjQ0LS45Ljk1LTEuMjUgMS41aC00LjRhLjc1Ljc1IDAgMCAxIDAtMS41Wk0yIDguNzVhMS43NSAxLjc1IDAgMSAwIDMuNSAwIDEuNzUgMS43NSAwIDAgMC0zLjUgMFpNOS43NSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBaTTIwLjUgMTZhMi41IDIuNSAwIDAgMC0yLjUgMi41djIuOGwtLjg1Ljg1YS41LjUgMCAwIDAgLjM1Ljg1aDZhLjUuNSAwIDAgMCAuMzUtLjg1bC0uODUtLjg2VjE4LjVhMi41IDIuNSAwIDAgMC0yLjUtMi41Wm0tMS40MSA4YTEuNSAxLjUgMCAwIDAgMi44MiAwSDE5LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQWxlcnQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWxlcnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTEyLjI1IDZjLTIuOTIgMC01LjM4IDItNi4wNiA0LjcyQTQgNCAwIDEgMSA2IDE4LjIxdjE3LjU0QzYgMzkuMiA4LjggNDIgMTIuMjUgNDJoMTEuOGExMi45NCAxMi45NCAwIDAgMS0uMzEtMTMuNWgtNi40OWExLjI1IDEuMjUgMCAxIDEgMC0yLjVoOC4zN0ExMi45NiAxMi45NiAwIDAgMSA0MiAyNC4wNFYxMi4yNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZoLTIzLjVaTTE2IDIwLjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEzLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xMy41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTcuNSAxMkEyLjQ5IDIuNDkgMCAwIDAgNSAxNC41IDIuNSAyLjUgMCAxIDAgNy41IDEyWk00NiAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMS03YTUgNSAwIDAgMC01IDV2My4zOGwtLjk1IDEuOWEuNS41IDAgMCAwIC40NS43MmgxMWEuNS41IDAgMCAwIC40NS0uNzJsLS45NS0xLjlWMzNhNSA1IDAgMCAwLTUtNVptLTIgMTJhMiAyIDAgMSAwIDQgMGgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBbGVydDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQWxlcnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk03LjUgMTAuNWE0IDQgMCAwIDAtMS4zMS4yMkE2LjI1IDYuMjUgMCAwIDEgMTIuMjUgNmgyMy41QzM5LjIgNiA0MiA4LjggNDIgMTIuMjV2MTEuOGMtLjc4LS41LTEuNjItLjkyLTIuNS0xLjI1VjEyLjI1YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLTIzLjVjLTEuNTMgMC0yLjg0LjkxLTMuNDMgMi4yMmE0IDQgMCAwIDAtMS4zMi0uMjJabTE1LjMgMjljLjMzLjg4Ljc0IDEuNzIgMS4yNCAyLjVIMTIuMjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzVWMTguMjFhMy45OSAzLjk5IDAgMCAwIDIuNS4xNnYxNy4zOGEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDIyLjhabS45NC0xMWMuNTItLjkgMS4xNi0xLjc1IDEuODgtMi41aC04LjM3YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg2LjQ5Wk03LjUgMTJBMi40OSAyLjQ5IDAgMCAwIDUgMTQuNSAyLjUgMi41IDAgMSAwIDcuNSAxMlptOS43NSA3YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxMy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMTMuNVpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTEtN2E1IDUgMCAwIDAtNSA1djMuMzhsLS45NSAxLjlhLjUuNSAwIDAgMCAuNDUuNzJoMTFhLjUuNSAwIDAgMCAuNDUtLjcybC0uOTUtMS45VjMzYTUgNSAwIDAgMC01LTVabS0yIDEyYTIgMiAwIDEgMCA0IDBoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQXJyb3dMZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbEFycm93TGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiAyLjI1Yy0uMTMgMC0uMjUuMDEtLjM3LjA0QTIgMiAwIDAgMSAzLjUgMWg1YTIgMiAwIDAgMSAyIDJ2MmE1LjUgNS41IDAgMCAwLTUuNDggNUgzLjVhMiAyIDAgMCAxLTItMlY1LjY4QTEuNzUgMS43NSAwIDEgMCAyIDIuMjVaTTQuNSA0YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQgNi41YzAgLjI4LjIyLjUuNS41SDZhLjUuNSAwIDAgMCAwLTFINC41YS41LjUgMCAwIDAtLjUuNVpNMiA0Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMTMgNS43NWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMOS43MSAxMWgyLjc5YS41LjUgMCAwIDAgMC0xSDkuN2wxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFycm93TGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQXJyb3dMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiAyLjI1Yy0uMTMgMC0uMjUuMDEtLjM3LjA0QTIgMiAwIDAgMSAzLjUgMWg1YTIgMiAwIDAgMSAyIDJ2MmMtLjM0IDAtLjY4LjAzLTEgLjFWM2ExIDEgMCAwIDAtMS0xaC01YTEgMSAwIDAgMC0uOC40Yy0uMjEtLjEtLjQ1LS4xNS0uNy0uMTVaTTUuMiA5SDMuNWExIDEgMCAwIDEtMS0xVjUuNjhhMS43NSAxLjc1IDAgMCAxLTEgMFY4YzAgMS4xLjkgMiAyIDJoMS41MmMuMDMtLjM0LjEtLjY4LjE5LTFabS0uNy01YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTAgMmEuNS41IDAgMCAwIDAgMUg2YS41LjUgMCAwIDAgMC0xSDQuNVpNMiA0Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMTMgNS43NWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMOS43MSAxMWgyLjc5YS41LjUgMCAwIDAgMC0xSDkuN2wxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFycm93TGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBcnJvd0xlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAzYTIuNSAyLjUgMCAwIDAtMi4zIDEuNTJsLjMtLjAyQTIgMiAwIDEgMSAzIDguNDR2Ni4wNkEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFhNS40OCA1LjQ4IDAgMCAxIDAtNUg3LjVhLjUuNSAwIDAgMSAwLTFoMi43NkE1LjQ5IDUuNDkgMCAwIDEgMTcgOS42VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVpNNyA4LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS0zLjUtM2ExIDEgMCAwIDAtMSAxIDEgMSAwIDEgMCAxLTFabTE1LjUgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQXJyb3dMZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBcnJvd0xlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgNC41Yy0uMSAwLS4yIDAtLjMuMDJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Yy0uNTEgMC0uOTcuMjYtMS4yNC42NWEyIDIgMCAwIDAtLjc2LS4xNVpNOS4yIDE2Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOC40NGEyIDIgMCAwIDAgMSAwdjYuMDZjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Wm0uNC00Yy4xOC0uMzYuNC0uNy42Ni0xSDcuNWEuNS41IDAgMCAwIDAgMWgyLjFaTTMuNSA1LjVhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm00IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxNWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBcnJvd0xlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQXJyb3dMZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabS4yNS05QTMuMjUgMy4yNSAwIDAgMSAyMSA2LjA3VjEyLjAyYTYuNDcgNi40NyAwIDAgMC04LjIuOThIOC43NmwtLjEuMDFhLjc1Ljc1IDAgMCAwIDAgMS40OWgzLjA4YTYuNDcgNi40NyAwIDAgMCAuMyA2LjVINi4yNGEzLjI1IDMuMjUgMCAwIDEtMy4yNC0zLjA3TDMgMTcuNzVWOS4zN2EyLjI1IDIuMjUgMCAxIDAgLjIyLTQuM0EzLjI1IDMuMjUgMCAwIDEgNi4wNSAzbC4yLS4wMWgxMS41Wm0tMS4wMyAxMS41OS0uMDcuMDYtMi41MiAyLjUxLS4wNC4wNS0uMDQuMDgtLjAyLjA2LS4wMi4wOHYuMTFsLjAxLjA5LjAzLjA4LjAzLjA2LjA1LjA3IDIuNTIgMi41MWEuNS41IDAgMCAwIC43Ny0uNjNsLS4wNi0uMDdMMTUuNyAxOGg0Ljc5YS41LjUgMCAwIDAgLjUtLjQxdi0uMDlhLjUuNSAwIDAgMC0uNDEtLjVoLTQuODhsMS42NS0xLjY1YS41LjUgMCAwIDAgLjA1LS42M2wtLjA1LS4wN2EuNS41IDAgMCAwLS42NC0uMDZabS0xLjQ3LTUuMWgtNi41bC0uMS4wMWEuNzUuNzUgMCAwIDAgMCAxLjQ5SDE1LjM1YS43NS43NSAwIDAgMC0uMS0xLjVaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFycm93TGVmdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQXJyb3dMZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tMTMtMi42M3Y4LjM4YzAgLjkyLjcgMS42NyAxLjYgMS43NGwuMTUuMDFoNS4wNmMuMTguNTMuNDIgMS4wNC43MSAxLjVINi4yNWEzLjI1IDMuMjUgMCAwIDEtMy4yNC0zLjA3TDMgMTcuNzVWOS4zN2EyLjI1IDIuMjUgMCAwIDAgMS41IDBabTEyLjIyIDUuMjItLjA3LjA2LTIuNTIgMi41MS0uMDQuMDUtLjA0LjA4LS4wMi4wNi0uMDIuMDh2LjExbC4wMS4wOS4wMy4wOC4wMy4wNi4wNS4wNyAyLjUyIDIuNTFhLjUuNSAwIDAgMCAuNzctLjYzbC0uMDYtLjA3TDE1LjcgMThoNC43OWEuNS41IDAgMCAwIC41LS40MXYtLjA5YS41LjUgMCAwIDAtLjQxLS41aC00Ljg4bDEuNjUtMS42NWEuNS41IDAgMCAwIC4wNS0uNjNsLS4wNS0uMDdhLjUuNSAwIDAgMC0uNjQtLjA2Wk0xMi44IDEzYy0uNDMuNDUtLjguOTUtMS4wOCAxLjVIOC43NWEuNzUuNzUgMCAwIDEtLjEtMS40OUgxMi44Wm00Ljk0LTEwQTMuMjUgMy4yNSAwIDAgMSAyMSA2LjA3VjEyLjAyYy0uNDYtLjMtLjk3LS41My0xLjUtLjdWNi4yNGMwLS45Mi0uNy0xLjY3LTEuNi0xLjc0bC0uMTUtLjAxSDYuMjVjLS42IDAtMS4xMy4zLTEuNDQuNzZhMi4yMyAyLjIzIDAgMCAwLTEuNTktLjIgMy4yNSAzLjI1IDAgMCAxIDIuODUtMi4wNUw2LjI1IDNoMTEuNVptLTIuNSA2LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNDloLTYuNmEuNzUuNzUgMCAwIDEtLjEtMS40OWg2LjZaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFycm93TGVmdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBcnJvd0xlZnQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMgNy4xN2ExLjc1IDEuNzUgMCAxIDAgMS41IDMuMTZBMS43NSAxLjc1IDAgMCAwIDMgNy4xN1ptLjE3LTEuMUEyLjc2IDIuNzYgMCAwIDEgNi41IDguNzQgMi43NSAyLjc1IDAgMCAxIDMgMTEuNHY5LjM1QzMgMjMuMSA0LjkgMjUgNy4yNSAyNWg3LjI1YTcuNDcgNy40NyAwIDAgMS0uMzUtOC41aC00LjRhLjc1Ljc1IDAgMCAxIDAtMS41aDUuNjVhNy40NyA3LjQ3IDAgMCAxIDkuNi0uNVY3LjI1QzI1IDQuOSAyMy4xIDMgMjAuNzUgM0g3LjI1YTQuMjUgNC4yNSAwIDAgMC00LjA4IDMuMDZaTTkuNzUgMTFoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMSAwLTEuNVpNMjcgMjAuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tMi41LjVhLjUuNSAwIDAgMCAwLTFoLTYuOGwyLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMyAzYS41LjUgMCAwIDAtLjE1LjM1YzAgLjEzLjA1LjI2LjE1LjM1bDMgM2EuNS41IDAgMCAwIC43LS43TDE3LjcxIDIxaDYuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQXJyb3dMZWZ0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxBcnJvd0xlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDExLjR2OS4zNUMzIDIzLjEgNC45IDI1IDcuMjUgMjVoNy4yNWE3LjQ5IDcuNDkgMCAwIDEtLjg4LTEuNUg3LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzVWMTEuNGEyLjc1IDIuNzUgMCAwIDEtMS41IDBabTIyLTQuMTV2Ny4yNWE3LjQ5IDcuNDkgMCAwIDAtMS41LS44OFY3LjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVINy4yNWMtMS4xNCAwLTIuMTEuNy0yLjUzIDEuNjhhMi43NCAyLjc0IDAgMCAwLTEuNTUtLjEyQTQuMjUgNC4yNSAwIDAgMSA3LjI1IDNoMTMuNUMyMy4xIDMgMjUgNC45IDI1IDcuMjVaTTkuNzUgMTVoNS42NWMtLjQ4LjQ0LS45Ljk1LTEuMjUgMS41aC00LjRhLjc1Ljc1IDAgMCAxIDAtMS41Wk0yIDguNzVhMS43NSAxLjc1IDAgMSAwIDMuNSAwIDEuNzUgMS43NSAwIDAgMC0zLjUgMFpNOS43NSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS0yLjUuNWEuNS41IDAgMCAwIDAtMWgtNi44bDIuMTUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0zIDNhLjUuNSAwIDAgMC0uMTUuMzVjMCAuMTMuMDUuMjYuMTUuMzVsMyAzYS41LjUgMCAwIDAgLjctLjdMMTcuNzEgMjFoNi43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxBcnJvd0xlZnQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQXJyb3dMZWZ0NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMi4yNSA2Yy0yLjkyIDAtNS4zOCAyLTYuMDYgNC43MkE0IDQgMCAxIDEgNiAxOC4yMXYxNy41NEM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDExLjhhMTIuOTQgMTIuOTQgMCAwIDEtLjMxLTEzLjVoLTYuNDlhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDguMzdBMTIuOTYgMTIuOTYgMCAwIDEgNDIgMjQuMDRWMTIuMjVDNDIgOC44IDM5LjIgNiAzNS43NSA2aC0yMy41Wk0xNiAyMC4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMy41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMTMuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wk03LjUgMTJBMi40OSAyLjQ5IDAgMCAwIDUgMTQuNSAyLjUgMi41IDAgMSAwIDcuNSAxMlpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTIuMy01LjdhMSAxIDAgMCAwLTEuNCAwbC01IDVhMSAxIDAgMCAwIDAgMS40bDUgNWExIDEgMCAwIDAgMS40LTEuNEwzMC40MiAzNkg0MmExIDEgMCAxIDAgMC0ySDMwLjQxbDMuMy0zLjNhMSAxIDAgMCAwIDAtMS40WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEFycm93TGVmdDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsQXJyb3dMZWZ0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNy41IDEwLjVhNCA0IDAgMCAwLTEuMzEuMjJBNi4yNSA2LjI1IDAgMCAxIDEyLjI1IDZoMjMuNUMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djExLjhjLS43OC0uNS0xLjYyLS45Mi0yLjUtMS4yNVYxMi4yNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yMy41Yy0xLjUzIDAtMi44NC45MS0zLjQzIDIuMjJhNCA0IDAgMCAwLTEuMzItLjIyWm0xNS4zIDI5Yy4zMy44OC43NCAxLjcyIDEuMjQgMi41SDEyLjI1QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1VjE4LjIxYTMuOTkgMy45OSAwIDAgMCAyLjUuMTZ2MTcuMzhhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NUgyMi44Wm0uOTQtMTFjLjUyLS45IDEuMTYtMS43NSAxLjg4LTIuNWgtOC4zN2ExLjI1IDEuMjUgMCAxIDAgMCAyLjVoNi40OVpNNy41IDEyQTIuNDkgMi40OSAwIDAgMCA1IDE0LjUgMi41IDIuNSAwIDEgMCA3LjUgMTJabTkuNzUgN2ExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMTMuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTEzLjVaTTQ2IDM1YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTEyLjMtNS43YTEgMSAwIDAgMC0xLjQgMGwtNSA1YTEgMSAwIDAgMCAwIDEuNGw1IDVhMSAxIDAgMCAwIDEuNC0xLjRMMzAuNDIgMzZINDJhMSAxIDAgMSAwIDAtMkgzMC40MWwzLjMtMy4zYTEgMSAwIDAgMCAwLTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxEaXNtaXNzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbERpc21pc3MxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEuNjMgMi4yOUExLjc2IDEuNzYgMCAwIDEgMy43NSA0IDEuNzUgMS43NSAwIDAgMSAxLjUgNS42OFY4YzAgMS4xLjkgMiAyIDJoMS41MmMuMjYtMi44IDIuNjEtNSA1LjQ4LTVWM2EyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0xLjg3IDEuMjlaTTQgNC41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk00LjUgN2EuNS41IDAgMCAxIDAtMUg2YS41LjUgMCAwIDEgMCAxSDQuNVpNMi43NSA0YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTE1IDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMC41IDkuNzkgOS4zNSA4LjY1YS41LjUgMCAxIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsRGlzbWlzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsRGlzbWlzczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgMi4yNWMtLjEzIDAtLjI1LjAxLS4zNy4wNEEyIDIgMCAwIDEgMy41IDFoNWEyIDIgMCAwIDEgMiAydjJjLS4zNCAwLS42OC4wMy0xIC4xVjNhMSAxIDAgMCAwLTEtMWgtNWExIDEgMCAwIDAtLjguNGMtLjIxLS4xLS40NS0uMTUtLjctLjE1Wk01LjIgOUgzLjVhMSAxIDAgMCAxLTEtMVY1LjY4YTEuNzUgMS43NSAwIDAgMS0xIDBWOGMwIDEuMS45IDIgMiAyaDEuNTJjLjAzLS4zNC4xLS42OC4xOS0xWk00IDQuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNC41IDZhLjUuNSAwIDAgMCAwIDFINmEuNS41IDAgMCAwIDAtMUg0LjVaTTIuNzUgNGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk0xNSAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTAuNSA5Ljc5IDkuMzUgOC42NWEuNS41IDAgMSAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsRGlzbWlzczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM2EyLjUgMi41IDAgMCAwLTIuMyAxLjUybC4zLS4wMkEyIDIgMCAxIDEgMyA4LjQ0djYuMDZBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYTUuNDggNS40OCAwIDAgMSAwLTVINy41YS41LjUgMCAwIDEgMC0xaDIuNzZBNS40OSA1LjQ5IDAgMCAxIDE3IDkuNlY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlaTTcgOC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0tMy41LTNhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm0xNS41IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbERpc21pc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbERpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgNC41Yy0uMSAwLS4yIDAtLjMuMDJBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Yy0uNTEgMC0uOTcuMjYtMS4yNC42NWEyIDIgMCAwIDAtLjc2LS4xNVpNOS4yIDE2Yy4xLjM1LjI0LjY4LjQgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOC40NGEyIDIgMCAwIDAgMSAwdjYuMDZjMCAuODMuNjcgMS41IDEuNSAxLjVoMy43Wm0uNC00Yy4xOC0uMzYuNC0uNy42Ni0xSDcuNWEuNS41IDAgMCAwIDAgMWgyLjFaTTMuNSA1LjVhMSAxIDAgMCAwLTEgMSAxIDEgMCAxIDAgMS0xWm00IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxEaXNtaXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbERpc21pc3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLjI1LTlBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMDdWMTIuMDJhNi40NyA2LjQ3IDAgMCAwLTguMi45OEg4Ljc2bC0uMS4wMWEuNzUuNzUgMCAwIDAgMCAxLjQ5aDMuMDhhNi40NyA2LjQ3IDAgMCAwIC4zIDYuNUg2LjI0YTMuMjUgMy4yNSAwIDAgMS0zLjI0LTMuMDdMMyAxNy43NVY5LjM3YTIuMjUgMi4yNSAwIDEgMCAuMjItNC4zQTMuMjUgMy4yNSAwIDAgMSA2LjA1IDNsLjItLjAxaDExLjVabS0yLjY2IDExLjk3LS4wNy4wNS0uMDUuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDUuMDcgMS43NyAxLjc3LTEuNzYgMS43Ny0uMDYuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDYuMDYuMDcuMDZjLjE3LjEyLjQuMTIuNTYgMGwuMDctLjA2IDEuNzctMS43NiAxLjc3IDEuNzcuMDcuMDVjLjE3LjEyLjQuMTIuNTcgMGwuMDctLjA1LjA1LS4wN2EuNS41IDAgMCAwIDAtLjU3bC0uMDUtLjA3LTEuNzctMS43NyAxLjc3LTEuNzcuMDYtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNi0uMDctLjA3LS4wNWEuNS41IDAgMCAwLS41NyAwbC0uMDcuMDUtMS43NyAxLjc3LTEuNzctMS43Ny0uMDctLjA1YS41LjUgMCAwIDAtLjUtLjA1bC0uMDcuMDVabS4xNi01LjQ3aC02LjZhLjc1Ljc1IDAgMCAwIDAgMS40OUgxNS4zNWEuNzUuNzUgMCAwIDAtLjEtMS41Wk0zLjc1IDZhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxEaXNtaXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxEaXNtaXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tMTMtMi42M3Y4LjM4YzAgLjkyLjcgMS42NyAxLjYgMS43NGwuMTUuMDFoNS4wNmMuMTguNTMuNDIgMS4wNC43MSAxLjVINi4yNWEzLjI1IDMuMjUgMCAwIDEtMy4yNC0zLjA3TDMgMTcuNzVWOS4zN2EyLjI1IDIuMjUgMCAwIDAgMS41IDBabTEwLjYgNS42LS4wOC4wNS0uMDUuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDUuMDcgMS43NyAxLjc3LTEuNzYgMS43Ny0uMDYuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDYuMDYuMDcuMDZjLjE3LjEyLjQuMTIuNTYgMGwuMDctLjA2IDEuNzctMS43NiAxLjc3IDEuNzcuMDcuMDVjLjE3LjEyLjQuMTIuNTcgMGwuMDctLjA1LjA1LS4wN2EuNS41IDAgMCAwIDAtLjU3bC0uMDUtLjA3LTEuNzctMS43NyAxLjc3LTEuNzcuMDYtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNi0uMDctLjA3LS4wNWEuNS41IDAgMCAwLS41NyAwbC0uMDcuMDUtMS43NyAxLjc3LTEuNzctMS43Ny0uMDctLjA1YS41LjUgMCAwIDAtLjUtLjA1bC0uMDcuMDVaTTEyLjggMTNjLS40Mi40NS0uNzguOTUtMS4wNyAxLjVIOC43NWEuNzUuNzUgMCAwIDEtLjEtMS40OUgxMi44Wm00Ljk1LTEwQTMuMjUgMy4yNSAwIDAgMSAyMSA2LjA3VjEyLjAyYy0uNDYtLjMtLjk3LS41My0xLjUtLjdWNi4yNGMwLS45Mi0uNy0xLjY3LTEuNi0xLjc0bC0uMTUtLjAxSDYuMjVjLS42IDAtMS4xMy4zLTEuNDQuNzZhMi4yMyAyLjIzIDAgMCAwLTEuNTktLjIgMy4yNSAzLjI1IDAgMCAxIDIuODUtMi4wNUw2LjI1IDNoMTEuNVptLTIuNSA2LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNDloLTYuNmEuNzUuNzUgMCAwIDEtLjEtMS40OWg2LjZaTTMuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbERpc21pc3MyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsRGlzbWlzczI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA3LjE3YTEuNzUgMS43NSAwIDEgMCAxLjUgMy4xNkExLjc1IDEuNzUgMCAwIDAgMyA3LjE3Wm0uMTctMS4xQTIuNzYgMi43NiAwIDAgMSA2LjUgOC43NCAyLjc1IDIuNzUgMCAwIDEgMyAxMS40djkuMzVDMyAyMy4xIDQuOSAyNSA3LjI1IDI1aDcuMjVhNy40NyA3LjQ3IDAgMCAxLS4zNS04LjVoLTQuNGEuNzUuNzUgMCAwIDEgMC0xLjVoNS42NWE3LjQ3IDcuNDcgMCAwIDEgOS42LS41VjcuMjVDMjUgNC45IDIzLjEgMyAyMC43NSAzSDcuMjVhNC4yNSA0LjI1IDAgMCAwLTQuMDggMy4wNlpNOS43NSAxMWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS05LjE1LTMuMzVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NS0yLjY0IDIuNjVhLjUuNSAwIDAgMCAuNy43bDIuNjUtMi42NCAyLjY1IDIuNjRhLjUuNSAwIDAgMCAuNy0uN2wtMi42NC0yLjY1IDIuNjQtMi42NWEuNS41IDAgMCAwLS43LS43bC0yLjY1IDIuNjQtMi42NS0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbERpc21pc3MyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbERpc21pc3MyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDExLjR2OS4zNUMzIDIzLjEgNC45IDI1IDcuMjUgMjVoNy4yNWE3LjQ5IDcuNDkgMCAwIDEtLjg4LTEuNUg3LjI1YTIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzVWMTEuNGEyLjc1IDIuNzUgMCAwIDEtMS41IDBabTIyLTQuMTV2Ny4yNWE3LjQ5IDcuNDkgMCAwIDAtMS41LS44OFY3LjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVINy4yNWMtMS4xNCAwLTIuMTEuNy0yLjUzIDEuNjhhMi43NCAyLjc0IDAgMCAwLTEuNTUtLjEyQTQuMjUgNC4yNSAwIDAgMSA3LjI1IDNoMTMuNUMyMy4xIDMgMjUgNC45IDI1IDcuMjVaTTkuNzUgMTVoNS42NWMtLjQ4LjQ0LS45Ljk1LTEuMjUgMS41aC00LjRhLjc1Ljc1IDAgMCAxIDAtMS41Wk0yIDguNzVhMS43NSAxLjc1IDAgMSAwIDMuNSAwIDEuNzUgMS43NSAwIDAgMC0zLjUgMFpNOS43NSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS05LjE1LTMuMzVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NS0yLjY0IDIuNjVhLjUuNSAwIDAgMCAuNy43bDIuNjUtMi42NCAyLjY1IDIuNjRhLjUuNSAwIDAgMCAuNy0uN2wtMi42NC0yLjY1IDIuNjQtMi42NWEuNS41IDAgMCAwLS43LS43bC0yLjY1IDIuNjQtMi42NS0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbERpc21pc3M0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsRGlzbWlzczQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTIuMjUgNmMtMi45MiAwLTUuMzggMi02LjA2IDQuNzJBNCA0IDAgMSAxIDYgMTguMjF2MTcuNTRDNiAzOS4yIDguOCA0MiAxMi4yNSA0MmgxMS44YTEyLjk0IDEyLjk0IDAgMCAxLS4zMS0xMy41aC02LjQ5YTEuMjUgMS4yNSAwIDEgMSAwLTIuNWg4LjM3QTEyLjk2IDEyLjk2IDAgMCAxIDQyIDI0LjA0VjEyLjI1QzQyIDguOCAzOS4yIDYgMzUuNzUgNmgtMjMuNVpNMTYgMjAuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTMuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTEzLjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpNNy41IDEyQTIuNDkgMi40OSAwIDAgMCA1IDE0LjUgMi41IDIuNSAwIDEgMCA3LjUgMTJaTTQ2IDM1YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTUuMy00LjNhMSAxIDAgMCAwLTEuNC0xLjRMMzUgMzMuNThsLTQuMy00LjNhMSAxIDAgMCAwLTEuNCAxLjQyTDMzLjU4IDM1bC00LjMgNC4zYTEgMSAwIDAgMCAxLjQyIDEuNEwzNSAzNi40Mmw0LjMgNC4zYTEgMSAwIDAgMCAxLjQtMS40MkwzNi40MiAzNWw0LjMtNC4zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbERpc21pc3M0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbERpc21pc3M0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk03LjUgMTAuNWE0IDQgMCAwIDAtMS4zMS4yMkE2LjI1IDYuMjUgMCAwIDEgMTIuMjUgNmgyMy41QzM5LjIgNiA0MiA4LjggNDIgMTIuMjV2MTEuOGMtLjc4LS41LTEuNjItLjkyLTIuNS0xLjI1VjEyLjI1YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLTIzLjVjLTEuNTMgMC0yLjg0LjkxLTMuNDMgMi4yMmE0IDQgMCAwIDAtMS4zMi0uMjJabTE1LjMgMjljLjMzLjg4Ljc0IDEuNzIgMS4yNCAyLjVIMTIuMjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzVWMTguMjFhMy45OSAzLjk5IDAgMCAwIDIuNS4xNnYxNy4zOGEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDIyLjhabS45NC0xMWMuNTItLjkgMS4xNi0xLjc1IDEuODgtMi41aC04LjM3YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg2LjQ5Wk03LjUgMTJBMi40OSAyLjQ5IDAgMCAwIDUgMTQuNSAyLjUgMi41IDAgMSAwIDcuNSAxMlptOS43NSA3YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxMy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMTMuNVpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tNS4zLTQuM2ExIDEgMCAwIDAtMS40LTEuNEwzNSAzMy41OGwtNC4zLTQuM2ExIDEgMCAwIDAtMS40IDEuNDJMMzMuNTggMzVsLTQuMyA0LjNhMSAxIDAgMCAwIDEuNDIgMS40TDM1IDM2LjQybDQuMyA0LjNhMSAxIDAgMCAwIDEuNC0xLjQyTDM2LjQyIDM1bDQuMy00LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU2hhcmUxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU2hhcmUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTMgMWEyIDIgMCAwIDAtMiAydjNjMCAxLjEuOSAyIDIgMmgzLjA5YTEuNSAxLjUgMCAxIDAgMC0xSDNhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxaDFhMiAyIDAgMCAwLTItMkgzWm02IDEwYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDUuOTFhMS41IDEuNSAwIDEgMCAwIDFIOWExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFINGMwIDEuMS45IDIgMiAyaDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU2hhcmUxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMyAxYTIgMiAwIDAgMC0yIDJ2M2MwIDEuMS45IDIgMiAyaDMuMDlhMS41IDEuNSAwIDEgMCAwLTFIM2ExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDFoMWEyIDIgMCAwIDAtMi0ySDNabTUgNi41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk05IDExYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDUuOTFhMS41IDEuNSAwIDEgMCAwIDFIOWExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFINGMwIDEuMS45IDIgMiAyaDNaTTQuNSA1YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDMuNUEyLjUgMi41IDAgMCAxIDMuNSAxaDRBMi41IDIuNSAwIDAgMSAxMCAzLjVWNEg5di0uNUM5IDIuNjcgOC4zMyAyIDcuNSAyaC00QzIuNjcgMiAyIDIuNjcgMiAzLjV2NEMyIDguMzMgMi42NyA5IDMuNSA5aDUuNTlhMS41IDEuNSAwIDEgMSAwIDFIMy41QTIuNSAyLjUgMCAwIDEgMSA3LjV2LTRaTTYgMTF2LjVBMi41IDIuNSAwIDAgMCA4LjUgMTRoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTRBMi41IDIuNSAwIDAgMCAxMi41IDVINi45MWExLjUgMS41IDAgMSAwIDAgMWg1LjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNyAxMS41VjExSDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU2hhcmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSAzLjVBMi41IDIuNSAwIDAgMSAzLjUgMWg0QTIuNSAyLjUgMCAwIDEgMTAgMy41VjRIOXYtLjVDOSAyLjY3IDguMzMgMiA3LjUgMmgtNEMyLjY3IDIgMiAyLjY3IDIgMy41djRDMiA4LjMzIDIuNjcgOSAzLjUgOWg1LjU5YTEuNSAxLjUgMCAxIDEgMCAxSDMuNUEyLjUgMi41IDAgMCAxIDEgNy41di00Wm05IDZhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBaTTYgMTF2LjVBMi41IDIuNSAwIDAgMCA4LjUgMTRoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTRBMi41IDIuNSAwIDAgMCAxMi41IDVINi45MWExLjUgMS41IDAgMSAwIDAgMWg1LjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNyAxMS41VjExSDZabS0uNS02YS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDVBMi41IDIuNSAwIDAgMSAxMyA1LjVhLjUuNSAwIDAgMS0xIDBjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01QzQuNjcgNCA0IDQuNjcgNCA1LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg0LjUxYTIuMjUgMi4yNSAwIDEgMSAuMTIgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDEwLjV2LTVaTTcuNSAxNGEuNS41IDAgMCAwLS41LjVBMi41IDIuNSAwIDAgMCA5LjUgMTdoNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNC41IDdIOS44N0EyLjI1IDIuMjUgMCAxIDAgMTAgOGg0LjUxYy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgOCAxNC41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU2hhcmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g1QTIuNSAyLjUgMCAwIDEgMTMgNS41YS41LjUgMCAwIDEtMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUM0LjY3IDQgNCA0LjY3IDQgNS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoNC41MWEyLjI1IDIuMjUgMCAxIDEgLjEyIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxMC41di01Wm04IDYuNzVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMFpNNy41IDE0YS41LjUgMCAwIDAtLjUuNUEyLjUgMi41IDAgMCAwIDkuNSAxN2g1YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNUEyLjUgMi41IDAgMCAwIDE0LjUgN0g5Ljg3QTIuMjUgMi4yNSAwIDEgMCAxMCA4aDQuNTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA4IDE0LjVhLjUuNSAwIDAgMC0uNS0uNVptLjI1LTcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoNmMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1YS43NS43NSAwIDAgMS0xLjUgMGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTZjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djZjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNS44NWEyLjc1IDIuNzUgMCAxIDEgMCAxLjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxMi4yNXYtNlpNMTcuNzUgMTBjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NmMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTZjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NWEuNzUuNzUgMCAwIDAtMS41IDBjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWg2YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTZjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNUgxMS45YTIuNzUgMi43NSAwIDEgMCAwIDEuNWg1Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTaGFyZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2g2YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwYzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNmMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2NmMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg1Ljg1YTIuNzUgMi43NSAwIDEgMSAwIDEuNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDEyLjI1di02Wm0xMC41IDguNWExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwWk0xNy43NSAxMGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY2YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNmMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1YS43NS43NSAwIDAgMC0xLjUgMGMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDZjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNmMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1SDExLjlhMi43NSAyLjc1IDAgMSAwIDAgMS41aDUuODVabS04LjUtMmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFNoYXJlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXY3LjVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMThoNy40MmEzIDMgMCAxIDAtLjEzLTEuNUg2Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNy41YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDcuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41QTMuNzUgMy43NSAwIDAgMCAxNC4yNSAzaC03LjVabTcuMDggN2EzIDMgMCAxIDAgLjEzIDEuNWg3LjI5YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djcuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41QTMuNzUgMy43NSAwIDAgMCAxMy43NSAyNWg3LjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1di03LjVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDEwaC03LjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTaGFyZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNzUgM0EzLjc1IDMuNzUgMCAwIDAgMyA2Ljc1djcuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSAxOGg3LjQyYTMgMyAwIDEgMC0uMTMtMS41SDYuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di03LjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoNy41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVBMy43NSAzLjc1IDAgMCAwIDE0LjI1IDNoLTcuNVpNMTcgMTUuNWExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptLTMuMDQtNGg3LjI5YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djcuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41QTMuNzUgMy43NSAwIDAgMCAxMy43NSAyNWg3LjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1di03LjVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDEwaC03LjQyYTMgMyAwIDEgMCAuMTMgMS41Wk05LjUgMTFhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU2hhcmU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU2hhcmU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTEyLjQ3IDZBNi40OCA2LjQ4IDAgMCAwIDYgMTIuNDd2MTIuMDVDNiAyOC4xIDguOSAzMSAxMi40NyAzMWgxMS43NGE1LjUgNS41IDAgMSAwLS4xMi0yLjVIMTIuNDdhMy45OCAzLjk4IDAgMCAxLTMuOTctMy45OFYxMi40OGMwLTIuMiAxLjc4LTMuOTggMy45Ny0zLjk4aDEyLjA1YzIuMiAwIDMuOTggMS43OCAzLjk4IDMuOTd2LjI4YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtLjI4QzMxIDguOSAyOC4xIDYgMjQuNTIgNkgxMi40OFpNMTcgMzUuNzV2LS41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYuNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aDEyLjVhMy43NSAzLjc1IDAgMCAwIDMuNzUtMy43NXYtMTIuNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1SDIzLjkxYTUuNSA1LjUgMCAxIDEtLjEyLTIuNWgxMS45NkMzOS4yIDE3IDQyIDE5LjggNDIgMjMuMjV2MTIuNUM0MiAzOS4yIDM5LjIgNDIgMzUuNzUgNDJoLTEyLjVBNi4yNSA2LjI1IDAgMCAxIDE3IDM1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFNoYXJlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTaGFyZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjQ3IDZoMTIuMDVDMjguMSA2IDMxIDguOSAzMSAxMi40N3YuMjhhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi0uMjhjMC0yLjE5LTEuNzgtMy45Ny0zLjk4LTMuOTdIMTIuNDhhMy45OCAzLjk4IDAgMCAwLTMuOTggMy45N3YxMi4wNWMwIDIuMiAxLjc4IDMuOTggMy45NyAzLjk4SDI0LjFhNS41IDUuNSAwIDEgMSAuMTIgMi41SDEyLjQ3QTYuNDggNi40OCAwIDAgMSA2IDI0LjUyVjEyLjQ4QzYgOC45IDguOSA2IDEyLjQ3IDZaTTI2LjUgMjkuNWEzIDMgMCAxIDAgNiAwIDMgMyAwIDAgMC02IDBaTTE3IDM1Ljc1di0uNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2LjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWgxMi41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTEyLjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NUgyMy45MWE1LjUgNS41IDAgMSAxLS4xMi0yLjVoMTEuOTZDMzkuMiAxNyA0MiAxOS44IDQyIDIzLjI1djEyLjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0xMi41QTYuMjUgNi4yNSAwIDAgMSAxNyAzNS43NVptMS41LTIwLjI1YTMgMyAwIDEgMCAwIDYgMyAzIDAgMCAwIDAtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxTdWJ0cmFjdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTdWJ0cmFjdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiAyLjI1Yy0uMTMgMC0uMjUuMDEtLjM3LjA0QTIgMiAwIDAgMSAzLjUgMWg1YTIgMiAwIDAgMSAyIDJ2MmE1LjUgNS41IDAgMCAwLTUuNDggNUgzLjVhMiAyIDAgMCAxLTItMlY1LjY4QTEuNzUgMS43NSAwIDEgMCAyIDIuMjVaTTQuNSA0YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQgNi41YzAgLjI4LjIyLjUuNS41SDZhLjUuNSAwIDAgMCAwLTFINC41YS41LjUgMCAwIDAtLjUuNVpNMiA0Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTAuNSAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi00aC00YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU3VidHJhY3QxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFN1YnRyYWN0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMS42MyAyLjI5YTEuNzYgMS43NiAwIDAgMSAxLjA3LjFBMSAxIDAgMCAxIDMuNSAyaDVhMSAxIDAgMCAxIDEgMXYyLjFjLjMyLS4wNy42Ni0uMSAxLS4xVjNhMiAyIDAgMCAwLTItMmgtNWEyIDIgMCAwIDAtMS44NyAxLjI5Wk01LjAzIDEwYy4wMi0uMzQuMDktLjY4LjE4LTFIMy41YTEgMSAwIDAgMS0xLTFWNS42OGExLjc1IDEuNzUgMCAwIDEtMSAwVjhjMCAxLjEuOSAyIDIgMmgxLjUyWk00LjUgNGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk00IDYuNWMwLS4yOC4yMi0uNS41LS41SDZhLjUuNSAwIDAgMSAwIDFINC41YS41LjUgMCAwIDEtLjUtLjVaTTIgNC43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTEwLjUgMTVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTItNGgtNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFN1YnRyYWN0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFN1YnRyYWN0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjIgNC41MkEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYTUuNDggNS40OCAwIDAgMC02Ljc0IDEuNEg3LjVhLjUuNSAwIDAgMCAwIDFoMi4xYTUuNDggNS40OCAwIDAgMCAwIDVINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjguNDRhMiAyIDAgMSAwIC4yLTMuOTJaTTcuNSA4YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTMgNS42M2ExIDEgMCAxIDEgMSAxLjczIDEgMSAwIDAgMS0xLTEuNzNaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTItNGgtNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFN1YnRyYWN0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTdWJ0cmFjdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuMiA0LjUyYTIuMDIgMi4wMiAwIDAgMSAxLjA2LjEzQzQuNTMgNC4yNSA1IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYzLjdjLjM1LjEuNjguMjQgMSAuNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlhMi41IDIuNSAwIDAgMC0yLjMgMS41MlpNOS42IDE3Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVY4LjQ0YTIgMiAwIDAgMS0xIDB2Ni4wNkEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjFabTAtNWMuMTgtLjM2LjQtLjcuNjYtMUg3LjVhLjUuNSAwIDAgMCAwIDFoMi4xWk0zIDUuNjNhMSAxIDAgMCAxIDEgMCAxIDEgMCAxIDEtMSAwWk03IDguNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi00aC00YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFubmVsU3VidHJhY3QyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU3VidHJhY3QyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIxIDYuMjVDMjEgNC40NSAxOS41NSAzIDE3Ljc1IDNINi4yNWMtMS4zOCAwLTIuNTUuODUtMy4wMyAyLjA2QTIuMjYgMi4yNiAwIDEgMSAzIDkuMzd2OC4zOEMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWg1Ljc3YTYuNDcgNi40NyAwIDAgMS0uMjktNi41SDguNjVhLjc1Ljc1IDAgMCAxIDAtMS40OUgxMi44YTYuNDggNi40OCAwIDAgMSA4LjE5LS45OVY2LjI1Wk04Ljc1IDkuNWg2LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNDlIOC42NWEuNzUuNzUgMCAwIDEgMC0xLjQ5aC4xWk01IDcuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFpNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0zIDZhLjUuNSAwIDAgMCAwLTFoLTZhLjUuNSAwIDAgMCAwIDFoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxTdWJ0cmFjdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFubmVsU3VidHJhY3QyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMSA2LjA3QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzSDYuMDdjLTEuMy4wOC0yLjQuOS0yLjg1IDIuMDZhMi4yNiAyLjI2IDAgMCAxIDEuNTkuMmMuMzEtLjQ2Ljg0LS43NiAxLjQ0LS43NmgxMS42NGMuOS4wOCAxLjYxLjgzIDEuNjEgMS43NXY1LjA2Yy41My4xOCAxLjA0LjQyIDEuNS43MVY2LjA3Wk0xMi4wMiAyMWMtLjMtLjQ2LS41My0uOTctLjctMS41SDYuMWMtLjktLjA4LTEuNjEtLjgzLTEuNjEtMS43NVY5LjM3YTIuMjUgMi4yNSAwIDAgMS0xLjUgMHY4LjU2QTMuMjUgMy4yNSAwIDAgMCA2LjI2IDIxaDUuNzdabS0uMjktNi41Yy4yOS0uNTUuNjUtMS4wNSAxLjA4LTEuNUg4Ljc1bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41aDIuOThaTTE2IDEwLjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWg2LjVsLjEtLjAxYS43NS43NSAwIDAgMCAuNjUtLjc0Wm0tMTEtM2ExLjI1IDEuMjUgMCAxIDAtMi41IDAgMS4yNSAxLjI1IDAgMCAwIDIuNSAwWk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabTMgNmEuNS41IDAgMCAwIDAtMWgtNmEuNS41IDAgMCAwIDAgMWg2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFN1YnRyYWN0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhbm5lbFN1YnRyYWN0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zLjE3IDYuMDZBMi43NiAyLjc2IDAgMCAxIDYuNSA4Ljc1IDIuNzUgMi43NSAwIDAgMSAzIDExLjR2OS4zNUMzIDIzLjEgNC45IDI1IDcuMjUgMjVoNy4yNWE3LjQ3IDcuNDcgMCAwIDEtLjM1LTguNWgtNC40YS43NS43NSAwIDAgMSAwLTEuNWg1LjY1YTcuNDcgNy40NyAwIDAgMSA5LjYtLjVWNy4yNUMyNSA0LjkgMjMuMSAzIDIwLjc1IDNINy4yNWE0LjI1IDQuMjUgMCAwIDAtNC4wOCAzLjA2Wk05Ljc1IDExaDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTMgNy4xN2ExLjc1IDEuNzUgMCAxIDAgMS41IDMuMTZBMS43NSAxLjc1IDAgMCAwIDMgNy4xN1pNMjcgMjAuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tMiAwYS41LjUgMCAwIDAtLjUtLjVoLThhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFN1YnRyYWN0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTdWJ0cmFjdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgMTEuNHY5LjM1QzMgMjMuMSA0LjkgMjUgNy4yNSAyNWg3LjI1YTcuNDkgNy40OSAwIDAgMS0uODgtMS41SDcuMjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NVYxMS40YTIuNzUgMi43NSAwIDAgMS0xLjUgMFptMjItNC4xNXY3LjI1YTcuNDkgNy40OSAwIDAgMC0xLjUtLjg4VjcuMjVhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NUg3LjI1Yy0xLjE0IDAtMi4xMS43LTIuNTMgMS42OGEyLjc0IDIuNzQgMCAwIDAtMS41NS0uMTJBNC4yNSA0LjI1IDAgMCAxIDcuMjUgM2gxMy41QzIzLjEgMyAyNSA0LjkgMjUgNy4yNVpNOS43NSAxNWg1LjY1Yy0uNDguNDQtLjkuOTUtMS4yNSAxLjVoLTQuNGEuNzUuNzUgMCAwIDEgMC0xLjVaTTIgOC43NWExLjc1IDEuNzUgMCAxIDAgMy41IDAgMS43NSAxLjc1IDAgMCAwLTMuNSAwWk05Ljc1IDExYS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTIgMGEuNS41IDAgMCAwLS41LS41aC04YS41LjUgMCAwIDAgMCAxaDhhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYW5uZWxTdWJ0cmFjdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTdWJ0cmFjdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNiAxMi41YTIuNSAyLjUgMCAxIDAgMyA0IDIuNSAyLjUgMCAwIDAtMy00Wm0uMTktMS43OEE0IDQgMCAxIDEgNiAxOC4yMXYxNy41NEM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDExLjhhMTIuOTQgMTIuOTQgMCAwIDEtLjMxLTEzLjVoLTYuNDlhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDguMzdBMTIuOTYgMTIuOTYgMCAwIDEgNDIgMjQuMDRWMTIuMjVDNDIgOC44IDM5LjIgNiAzNS43NSA2aC0yMy41Yy0yLjkyIDAtNS4zOCAyLTYuMDYgNC43MlpNMTYgMjAuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTMuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTEzLjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMyAwYTEgMSAwIDAgMC0xLTFIMjhhMSAxIDAgMSAwIDAgMmgxNGExIDEgMCAwIDAgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbFN1YnRyYWN0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYW5uZWxTdWJ0cmFjdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYuMTkgMTAuNzJBNi4yNSA2LjI1IDAgMCAxIDEyLjI1IDZoMjMuNUMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djExLjhjLS43OC0uNS0xLjYyLS45Mi0yLjUtMS4yNVYxMi4yNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yMy41Yy0xLjUzIDAtMi44NC45MS0zLjQzIDIuMjJhNCA0IDAgMCAwLTIuNjMgMFpNMjIuOCAzOS41Yy4zMy44OC43NCAxLjcyIDEuMjQgMi41SDEyLjI1QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1VjE4LjIxYTMuOTkgMy45OSAwIDAgMCAyLjUuMTZ2MTcuMzhhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NUgyMi44Wm0uOTQtMTFjLjUyLS45IDEuMTYtMS43NSAxLjg4LTIuNWgtOC4zN2ExLjI1IDEuMjUgMCAxIDAgMCAyLjVoNi40OVpNNiAxMi41YTIuNSAyLjUgMCAxIDAgMyA0IDIuNSAyLjUgMCAwIDAtMy00Wk0xNy4yNSAxOWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMTMuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTEzLjVaTTQ2IDM1YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTMgMGExIDEgMCAwIDAtMS0xSDI4YTEgMSAwIDEgMCAwIDJoMTRhMSAxIDAgMCAwIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXJ0TXVsdGlwbGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydE11bHRpcGxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjUgMS4wMlY4YzAgLjI4LjIyLjUuNS41aDIuNjhBMiAyIDAgMCAwIDEwIDEwdi4yN0EyIDIgMCAwIDAgNyAxMnYyLjkzYTcgNyAwIDAgMSAuNS0xMy45MVptNi44NSA1LjA5YTIgMiAwIDAgMSAuMzctLjA5IDcgNyAwIDAgMC02LjIyLTVWNy41aDQuNTZhMiAyIDAgMCAxIDEuMy0xLjRabS4zMy45NEExIDEgMCAwIDAgMTQgOHY3YTEgMSAwIDEgMCAyIDBWOGExIDEgMCAwIDAtMS4zMi0uOTVaTTEyIDlhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDEgMS0yIDB2LTVhMSAxIDAgMCAxIDEtMVptLTMgMmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMSAxLTIgMHYtM2ExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRNdWx0aXBsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydE11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy41IDIuMDJhNiA2IDAgMCAwLS41IDExLjl2MWE3IDcgMCAxIDEgNy43Mi04LjkgMiAyIDAgMCAwLS45My4zOUE2IDYgMCAwIDAgOC41IDIuMDJWNy41aDQuNTZBMiAyIDAgMCAwIDEzIDh2LjI3YTIgMiAwIDAgMC0yLjMyLjIzSDhhLjUuNSAwIDAgMS0uNS0uNVYyLjAyWm03LjE4IDUuMDNBMSAxIDAgMCAwIDE0IDh2N2ExIDEgMCAxIDAgMiAwVjhhMSAxIDAgMCAwLTEuMzItLjk1Wk0xMiA5YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAxIDEtMiAwdi01YTEgMSAwIDAgMSAxLTFabS0zIDJhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDEgMS0yIDB2LTNhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXJ0TXVsdGlwbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydE11bHRpcGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNSAxMWMwLS4zNi4xLS43LjI3LTFIMTAuNUExLjUgMS41IDAgMCAxIDkgOC41VjIuMDJhNy41IDcuNSAwIDAgMCAwIDE0Ljk2VjE1YTIgMiAwIDAgMSAzLTEuNzNWMTNhMiAyIDAgMCAxIDMtMS43M1YxMVptLTUtOC45OFY4LjVjMCAuMjguMjIuNS41LjVoNi40OEE3LjUgNy41IDAgMCAwIDEwIDIuMDJaTTE2IDExYTEgMSAwIDEgMSAyIDB2N2ExIDEgMCAxIDEtMiAwdi03Wm0tNiA0YTEgMSAwIDEgMSAyIDB2M2ExIDEgMCAxIDEtMiAwdi0zWm0zLTJhMSAxIDAgMSAxIDIgMHY1YTEgMSAwIDEgMS0yIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFydE11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXJ0TXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDkuNWE2LjUgNi41IDAgMCAwIDYgNi40OHYxQTcuNSA3LjUgMCAxIDEgMTYuOTggOWEyIDIgMCAwIDAtMS43MSAxSDEwLjVBMS41IDEuNSAwIDAgMSA5IDguNVYzLjAyQTYuNSA2LjUgMCAwIDAgMyA5LjVaTTE1Ljk4IDlBNi41IDYuNSAwIDAgMCAxMCAzLjAyVjguNWMwIC4yOC4yMi41LjUuNWg1LjQ4Wm0uMDIgMmExIDEgMCAxIDEgMiAwdjdhMSAxIDAgMSAxLTIgMHYtN1ptLTYgNGExIDEgMCAxIDEgMiAwdjNhMSAxIDAgMSAxLTIgMHYtM1ptMy0yYTEgMSAwIDEgMSAyIDB2NWExIDEgMCAxIDEtMiAwdi01WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRNdWx0aXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXJ0TXVsdGlwbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE5IDEzLjVjMC0uNjguMjctMS4zLjcxLTEuNzVIMTNjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVYyQTkuNSA5LjUgMCAwIDAgMTEgMjFWMTkuNWEyLjUgMi41IDAgMCAxIDQtMnYtMWEyLjUgMi41IDAgMCAxIDQtMnYtMVpNMTIuNzUgMi4wOFYxMGMwIC4xNC4xMS4yNS4yNS4yNWg3LjkyYTkuNSA5LjUgMCAwIDAtOC4xNy04LjE3Wk0yMS41IDEyYy0uODMgMC0xLjUuNjctMS41IDEuNXY4YTEuNSAxLjUgMCAwIDAgMyAwdi04YzAtLjgzLS42Ny0xLjUtMS41LTEuNVptLTggNmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmExLjUgMS41IDAgMCAwIDMgMHYtMmMwLS44My0uNjctMS41LTEuNS0xLjVabTIuNS0xLjVhMS41IDEuNSAwIDAgMSAzIDB2NWExLjUgMS41IDAgMCAxLTMgMHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXJ0TXVsdGlwbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhcnRNdWx0aXBsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzIDEwLjc1aDYuNzFjLjM0LS4zNS43OS0uNiAxLjI4LS43QTkuNSA5LjUgMCAxIDAgMTEgMjB2LTEuNTFhOCA4IDAgMCAxIC4yNS0xNS45OFY5YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1Wm0wLTEuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYyLjZhOCA4IDAgMCAxIDYuNjUgNi42NUgxM1pNMjEuNSAxMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OGExLjUgMS41IDAgMCAwIDMgMHYtOGMwLS44My0uNjctMS41LTEuNS0xLjVabS04IDZjLS44MyAwLTEuNS42Ny0xLjUgMS41djJhMS41IDEuNSAwIDAgMCAzIDB2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0yLjUtMS41YTEuNSAxLjUgMCAwIDEgMyAwdjVhMS41IDEuNSAwIDAgMS0zIDB2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFydFBlcnNvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXJ0UGVyc29uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMSAwLTEgMFYzSDQuNzVBMi43NSAyLjc1IDAgMCAwIDIgNS43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTVoMS44MmwtMS40OSAyLjIzYS41LjUgMCAwIDAgLjg0LjU1TDcuNzcgMTVIMTEuNWEyLjUgMi41IDAgMCAxIDEuNzctLjk5QTIuOTkgMi45OSAwIDAgMSAxNS41IDlhMyAzIDAgMCAxIDIuNSAxLjM0VjUuNzVBMi43NSAyLjc1IDAgMCAwIDE1LjI1IDNIMTAuNXYtLjVaTTUgNi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0uNSA0LjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVptMC0yLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVptMTIgMy41YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFydFBlcnNvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydFBlcnNvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJjLjI4IDAgLjUuMjIuNS41VjNoNC43NUEyLjc1IDIuNzUgMCAwIDEgMTggNS43NXY0LjZjLS4yNi0uNC0uNi0uNzItMS0uOTVWNS43NWMwLS42NS0uMzUtMS4yMi0uODgtMS41MmwtLjAyLS4wMWExLjc0IDEuNzQgMCAwIDAtLjg1LS4yMkg0Ljc1QzMuNzggNCAzIDQuNzggMyA1Ljc1djYuNTVjLjAzLjk0LjggMS43IDEuNzUgMS43aDguNTFsLjAxLjAxYTIuNSAyLjUgMCAwIDAtMS43Ny45OUg3Ljc3bC0xLjg1IDIuNzhhLjUuNSAwIDEgMS0uODQtLjU1TDYuNTcgMTVINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMi4yNXYtNi41QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDNIOS41di0uNWMwLS4yOC4yMi0uNS41LS41Wk01IDYuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptLjUgNC41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaTTUgOWMwLS4yNy4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVBLjUuNSAwIDAgMSA1IDlabTEyLjUgM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTIgMTcuNzUgMTIgMTYuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRQZXJzb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydFBlcnNvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNSAyLjc1YS43NS43NSAwIDAgMC0xLjUgMFYzSDUuMjVBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNXY5LjVDMiAxNy41NSAzLjQ2IDE5IDUuMjUgMTloMi40bC0xLjQ4IDEuNzdhLjc1Ljc1IDAgMCAwIDEuMTYuOTZMOS42IDE5aDMuNWMuMzQtMS4xNiAxLjQxLTIgMi42Ny0yaC4yOGEzLjQ5IDMuNDkgMCAwIDEgMi40NS02IDMuNSAzLjUgMCAwIDEgMy41IDMuNVY2LjI1QzIyIDQuNDUgMjAuNTQgMyAxOC43NSAzSDEyLjV2LS4yNVptLTYuNSA1YzAtLjQxLjM0LS43NS43NS0uNzVoNGEuNzUuNzUgMCAwIDEgMCAxLjVoLTRBLjc1Ljc1IDAgMCAxIDYgNy43NVpNNi43NSAxMGg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wIDNoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMSAwLTEuNVpNMjEgMTQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTQgMjEuNDQgMTQgMTkuODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRQZXJzb24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhcnRQZXJzb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjNINS4yNUEzLjI1IDMuMjUgMCAwIDAgMiA2LjI1djkuNUMyIDE3LjU1IDMuNDYgMTkgNS4yNSAxOWgyLjRsLTEuNDggMS43N2EuNzUuNzUgMCAwIDAgMS4xNi45Nkw5LjYgMTloMy41Yy4xOS0uNjEuNTctMS4xNCAxLjA4LTEuNUg1LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTkuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMy41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djUuMzhBMy41IDMuNSAwIDAgMSAyMiAxNC41VjYuMjVDMjIgNC40NSAyMC41NCAzIDE4Ljc1IDNIMTIuNXYtLjI1Wm0tNi41IDVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0YS43NS43NSAwIDAgMSAwIDEuNWgtNEEuNzUuNzUgMCAwIDEgNiA3Ljc1Wk02Ljc1IDEwYS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVaTTYgMTMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTE1IC43NWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTQgMjEuNDQgMTQgMTkuODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRQZXJzb24yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGFydFBlcnNvbjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuMjUgMmMuNDEgMCAuNzUuMzQuNzUuNzVWM2g3Ljc1YTMuMjkgMy4yOSAwIDAgMSAxLjIuMjNBMy4yNSAzLjI1IDAgMCAxIDI2IDYuMjV2MTAuNWMwIC4xNC0uMTEuMjUtLjI1LjI1YS4yNi4yNiAwIDAgMS0uMjYtLjI1QTQgNCAwIDEgMCAxOC44NSAyMGgtLjhjLTEuMzIgMC0yLjQ0LjgzLTIuODcgMmgtNC42bC0zLjI3IDMuNzRhLjc1Ljc1IDAgMCAxLTEuMTMtLjk4TDguNiAyMkg1LjI1bC0uNDUtLjAzQTMuMjUgMy4yNSAwIDAgMSAyIDE4Ljc1VjYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoOC4yNXYtLjI1YzAtLjQxLjMzLS43NS43NS0uNzVabS03LjUgNS41YS43NS43NSAwIDEgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMSAwIDAtMS41aC01LjVaTTYgMTIuMjVjMCAuNDEuMzMuNzUuNzUuNzVoMTAuNWEuNzUuNzUgMCAwIDAgMC0xLjVINi43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0wIDRjMCAuNDEuMzMuNzUuNzUuNzVoOC41YS43NS43NSAwIDEgMCAwLTEuNWgtOC41YS43NS43NSAwIDAgMC0uNzUuNzVabTE4LjUuNzVhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0yLjUgNi4yNWMwIDEuODctMS41NyAzLjc1LTUuNSAzLjc1LTMuOTMgMC01LjUtMS44OC01LjUtMy43NXYtLjJjMC0xLjEzLjkyLTIuMDUgMi4wNS0yLjA1aDYuOWMxLjEzIDAgMi4wNS45MiAyLjA1IDIuMDR2LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRQZXJzb24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhcnRQZXJzb24yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNC4yNSAyYy40MSAwIC43NS4zNC43NS43NVYzaDcuNzVDMjQuNTUgMyAyNiA0LjQ2IDI2IDYuMjV2MTAuNWMwIC4xNC0uMTEuMjUtLjI1LjI1YS4yNi4yNiAwIDAgMS0uMjYtLjI1IDMuOTggMy45OCAwIDAgMC0uOTktMi40di04LjFjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djEyLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTEuMTJjLS41NC4zNi0uOTYuODgtMS4xOSAxLjVoLTQuNmwtMy4yNyAzLjc0YS43NS43NSAwIDAgMS0xLjEzLS45OUw4LjU5IDIySDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTguNzVWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2g4LjI1di0uMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTcuNSA1LjVhLjc1Ljc1IDAgMSAwIDAgMS41aDUuNWEuNzUuNzUgMCAxIDAgMC0xLjVoLTUuNVptMCA0YS43NS43NSAwIDEgMCAwIDEuNWgxMC41YS43NS43NSAwIDAgMCAwLTEuNUg2Ljc1Wm0wIDRhLjc1Ljc1IDAgMSAwIDAgMS41aDguNWEuNzUuNzUgMCAxIDAgMC0xLjVoLTguNVpNMjQuNSAxN2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabTIuNSA2LjI1YzAgMS44Ny0xLjU3IDMuNzUtNS41IDMuNzUtMy45MyAwLTUuNS0xLjg4LTUuNS0zLjc1di0uMmMwLTEuMTMuOTItMi4wNSAyLjA1LTIuMDVoNi45YzEuMTMgMCAyLjA1LjkyIDIuMDUgMi4wNHYuMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGFydFBlcnNvbjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXJ0UGVyc29uNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yMy43NSA0Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjZoMTMuNzVDNDEuNjUgNiA0NCA4LjM1IDQ0IDExLjI1VjI5YTcgNyAwIDEgMC0xMS45IDVIMzFhNSA1IDAgMCAwLTQuNTggM2gtNy4xN2wtLjA4LjEtNiA2LjVhMS4yNSAxLjI1IDAgMSAxLTEuODQtMS43bDQuNTMtNC45SDkuMjVBNS4yNSA1LjI1IDAgMCAxIDQgMzEuNzV2LTIwLjVDNCA4LjM1IDYuMzUgNiA5LjI1IDZIMjIuNXYtLjc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1Wm0tMTEuNSA5LjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDkuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTkuNVpNMTEgMjEuNzVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTQuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTE0LjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1Wm0wIDdjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTEuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTExLjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1Wk00MiAyOWE1IDUgMCAxIDEtMTAgMCA1IDUgMCAwIDEgMTAgMFptNCAxMC41YzAgMy41LTMuMTUgNi41LTkgNi41cy05LTMtOS02LjVWMzlhMyAzIDAgMCAxIDMtM2gxMmEzIDMgMCAwIDEgMyAzdi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhcnRQZXJzb240OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhcnRQZXJzb240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNSA1LjI1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMFY2SDkuMjVBNS4yNSA1LjI1IDAgMCAwIDQgMTEuMjV2MjAuNUM0IDM0LjY1IDYuMzUgMzcgOS4yNSAzN2g2LjZsLTQuNTIgNC45YTEuMjUgMS4yNSAwIDEgMCAxLjg0IDEuN2w2LTYuNS4wOC0uMWg3LjE3YTUuMDIgNS4wMiAwIDAgMSAyLjQtMi41SDkuMjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NXYtMjAuNUEyLjc1IDIuNzUgMCAwIDEgOS4yNSA4LjVoMjkuNWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djEyLjM5QTYuOTggNi45OCAwIDAgMSA0NCAyOVYxMS4yNUM0NCA4LjM1IDQxLjY1IDYgMzguNzUgNkgyNXYtLjc1Wk0xMi4yNSAxMy41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg5LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC05LjVaTTExIDIxLjc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDE0LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xNC41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVabTAgN2MwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMTEuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wk00MiAyOWE1IDUgMCAxIDEtMTAgMCA1IDUgMCAwIDEgMTAgMFptNCAxMC41YzAgMy41LTMuMTUgNi41LTkgNi41cy05LTMtOS02LjVWMzlhMyAzIDAgMCAxIDMtM2gxMmEzIDMgMCAwIDEgMyAzdi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTEgNmE1IDUgMCAxIDEgMi42IDQuMzhsLTEuOTUuNmEuNS41IDAgMCAxLS42My0uNjNsLjYtMS45NUE0Ljk4IDQuOTggMCAwIDEgMSA2Wm0zLS41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wk00LjUgN2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0MTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNCA1LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAxIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQuNSA3YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTEgNmE1IDUgMCAxIDEgMi42IDQuMzhsLTEuOTUuNmEuNS41IDAgMCAxLS42My0uNjNsLjYtMS45NUE0Ljk4IDQuOTggMCAwIDEgMSA2Wm01LTRhNCA0IDAgMCAwLTMuNDIgNi4wOGMuMDguMTIuMS4yNy4wNS40bC0uMzggMS4yNiAxLjI2LS4zOGEuNS41IDAgMCAxIC40LjA1QTQgNCAwIDEgMCA2IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDAgMC01LjI3IDguODdsLS43MSAyLjVhLjUuNSAwIDAgMCAuNjQuNkw1IDEzLjJBNiA2IDAgMSAwIDggMlpNNiA3YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM0EuNS41IDAgMCAxIDYgN1ptLjUgMS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDdjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zQS41LjUgMCAwIDEgNiA3Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNMiA4YTYgNiAwIDEgMSAzIDUuMmwtMi4zNC43N2EuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAyIDhabTYtNWE1IDUgMCAwIDAtNC4zIDcuNTUuNS41IDAgMCAxIC4wNS40bC0uNSAxLjc4IDEuNjUtLjU2YS41LjUgMCAwIDEgLjQzLjA2QTUgNSAwIDEgMCA4IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDEtMy42MSAxNS4xNGwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFptLjUgOUg3LjQxYS41LjUgMCAwIDAgMCAxSDEwLjU5YS41LjUgMCAwIDAgMC0xaC0uMDlabTItM0g3LjQxYS41LjUgMCAwIDAgMCAxaDUuMThhLjUuNSAwIDAgMCAwLTFoLS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTMuNjEgMTUuMTRsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTAgMWE3IDcgMCAwIDAtNi4xIDEwLjQyLjUuNSAwIDAgMSAuMDYuMjhsLS4wMi4xLS43NSAzLjAxIDMuMDItLjc1YS41LjUgMCAwIDEgLjE5LS4wMWwuMDkuMDIuMDkuMDRBNyA3IDAgMSAwIDEwIDNabS41IDhhLjUuNSAwIDAgMSAuMDkgMUg3LjVhLjUuNSAwIDAgMS0uMDktMWgzLjA5Wm0yLTNhLjUuNSAwIDAgMSAuMDkgMUg3LjVhLjUuNSAwIDAgMS0uMDktMWg1LjA5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEtNC42NCAxOC44NmwtNC4zIDEuMTJhLjg1Ljg1IDAgMCAxLTEuMDMtMS4wNGwxLjExLTQuMjlBMTAgMTAgMCAwIDEgMTIgMlptMS4yNSAxMWgtNC42YS43NS43NSAwIDAgMCAwIDEuNUgxMy4zNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWm0yLTMuNWgtNi42YS43NS43NSAwIDAgMCAwIDEuNUgxNS4zNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMS00LjU5IDE4Ljg5TDMuNiAyMS45NmExLjI1IDEuMjUgMCAwIDEtMS41NC0xLjU0bDEuMDYtMy44M0ExMCAxMCAwIDAgMSAxMiAyWm0wIDEuNWE4LjUgOC41IDAgMCAwLTcuNDMgMTIuNjRsLjE1LjI3LTEuMSAzLjk4IDMuOTgtMS4xMS4yNy4xNUE4LjUgOC41IDAgMSAwIDEyIDMuNVpNOC43NSAxM2g0LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtNC42YS43NS43NSAwIDAgMS0uMS0xLjVoNC42LTQuNVptMC0zLjVoNi41YS43NS43NSAwIDAgMSAuMSAxLjVoLTYuNmEuNzUuNzUgMCAwIDEtLjEtMS41aDYuNi02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMiAxNGExMiAxMiAwIDEgMSA2LjM2IDEwLjZMMy42IDI1Ljk1Yy0uOTQuMjctMS44LS42LTEuNTQtMS41NGwxLjM2LTQuNzdDMi41IDE3Ljk2IDIgMTYuMDQgMiAxNFptNy41LTIuMjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzVabS43NSAzLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk05LjA3IDIzLjI3YTEwLjUgMTAuNSAwIDEgMC00LjM0LTQuMzRjLjE4LjM1LjIyLjc1LjEyIDEuMTJMMy42IDI0LjM5bDQuMzQtMS4yNGMuMzgtLjEuNzgtLjA2IDEuMTIuMTJaTTE0IDI2Yy0yLjA0IDAtMy45Ni0uNS01LjY0LTEuNEwzLjYgMjUuOTVjLS45NC4yNy0xLjgtLjYtMS41NC0xLjU0bDEuMzYtNC43N0ExMiAxMiAwIDEgMSAxNCAyNlpNOS41IDExLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNy41YS43NS43NSAwIDAgMSAwIDEuNWgtNy41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0wIDQuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDE2YTE0IDE0IDAgMSAxIDcuNDQgMTIuMzdsLTUuNTMgMS41N2ExLjUgMS41IDAgMCAxLTEuODUtMS44NWwxLjU3LTUuNTNBMTMuOTQgMTMuOTQgMCAwIDEgMiAxNlptOC0zYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMSAwIDAtMkgxMWExIDEgMCAwIDAtMSAxWm0xIDVhMSAxIDAgMSAwIDAgMmg2YTEgMSAwIDEgMCAwLTJoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0MzJMaWdodCcsIFwiMzJcIiwgW1wiTTE2IDJBMTQgMTQgMCAwIDAgMy42MyAyMi41NkwyLjA2IDI4LjFhMS41IDEuNSAwIDAgMCAxLjg1IDEuODVsNS41My0xLjU3QTE0IDE0IDAgMSAwIDE2IDJabTAgMjdjLTIuMTIgMC00LjIzLS41Mi02LjA5LTEuNTFsLS4zNi0uMkwzLjY0IDI5YS41Mi41MiAwIDAgMS0uMTUuMDEuNS41IDAgMCAxLS40Ny0uNjRsMS42OC01LjkxLS4xOS0uMzZBMTMuMDIgMTMuMDIgMCAwIDEgMTYgM2ExMy4wMSAxMy4wMSAwIDAgMSAwIDI2Wm01LjUtMTZoLTExYS41LjUgMCAwIDEgMC0xaDExYS41LjUgMCAwIDEgMCAxWm0tNCA2aC03YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiA0QTEyIDEyIDAgMCAwIDUuNTcgMjEuOTRhMSAxIDAgMCAxIC4xLjc3bC0xLjQ0IDUuMDYgNS4wNi0xLjQ0YTEgMSAwIDAgMSAuNzcuMUExMiAxMiAwIDEgMCAxNiA0Wk0yIDE2YTE0IDE0IDAgMSAxIDcuNDQgMTIuMzdsLTUuNTMgMS41N2ExLjUgMS41IDAgMCAxLTEuODUtMS44NWwxLjU3LTUuNTNBMTMuOTQgMTMuOTQgMCAwIDEgMiAxNlptOC0zYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMSAxIDAgMkgxMWExIDEgMCAwIDEtMS0xWm0xIDVhMSAxIDAgMSAwIDAgMmg2YTEgMSAwIDEgMCAwLTJoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNCAyNGEyMCAyMCAwIDEgMSAxMC40NyAxNy41OWwtOC4yNCAyLjM0YTEuNzUgMS43NSAwIDAgMS0yLjE2LTIuMTZsMi4zNC04LjI0QTE5LjkyIDE5LjkyIDAgMCAxIDQgMjRabTEyLTMuNzVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTMuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTEzLjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1Wm0xLjI1IDYuMjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDkuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI0IDYuNUExNy41IDE3LjUgMCAwIDAgOC44NCAzMi43NGMuMTcuMy4yMS42NS4xMi45N2wtMi4xMiA3LjQ0IDcuNDQtMi4xMWMuMzMtLjEuNjgtLjA1Ljk3LjEyQTE3LjUgMTcuNSAwIDEgMCAyNCA2LjVaTTQgMjRhMjAgMjAgMCAxIDEgMTAuNDcgMTcuNTlsLTguMjQgMi4zNGExLjc1IDEuNzUgMCAwIDEtMi4xNi0yLjE2bDIuMzQtOC4yNEExOS45MiAxOS45MiAwIDAgMSA0IDI0Wm0xMi0zLjc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEzLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xMy41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVabTEuMjUgNi4yNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoOS41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFkZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBZGQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMmE2IDYgMCAxIDEtMyAxMS4ybC0yLjM0Ljc3YS41LjUgMCAwIDEtLjY0LS42bC43MS0yLjVBNiA2IDAgMCAxIDggMlptLjUgMy41YS41LjUgMCAwIDAtMSAwdjJoLTJhLjUuNSAwIDAgMCAwIDFoMnYyYS41LjUgMCAwIDAgMSAwdi0yaDJhLjUuNSAwIDAgMCAwLTFoLTJ2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QWRkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBZGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjUgNS41YS41LjUgMCAwIDAtMSAwdjJoLTJhLjUuNSAwIDAgMCAwIDFoMnYyYS41LjUgMCAwIDAgMSAwdi0yaDJhLjUuNSAwIDAgMCAwLTFoLTJ2LTJaTTggMmE2IDYgMCAwIDAtNS4yNyA4Ljg3bC0uNzEgMi41YS41LjUgMCAwIDAgLjY0LjZMNSAxMy4yQTYgNiAwIDEgMCA4IDJaTTMgOGE1IDUgMCAxIDEgMi4zMyA0LjIzLjUuNSAwIDAgMC0uNDMtLjA2bC0xLjY2LjU2LjUxLTEuNzlhLjUuNSAwIDAgMC0uMDUtLjM5QTQuOTcgNC45NyAwIDAgMSAzIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDEtMy42MSAxNS4xNGwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFpNNi41IDkuNWEuNS41IDAgMCAwIDAgMWgzdjNhLjUuNSAwIDAgMCAxIDB2LTNoM2EuNS41IDAgMCAwIDAtMWgtM3YtM2EuNS41IDAgMCAwLTEgMHYzaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi41IDkuNWEuNS41IDAgMCAwIDAgMWgzdjNhLjUuNSAwIDAgMCAxIDB2LTNoM2EuNS41IDAgMCAwIDAtMWgtM3YtM2EuNS41IDAgMCAwLTEgMHYzaC0zWk0xOCAxMGE4IDggMCAxIDAtMTYgMHYuMzVsLjAzLjM4Yy4xIDEuMDEuMzggMS45OS44MyAyLjg5bC4wNi4xMi0uOSAzLjY0LS4wMi4wOHYuMDhjLjAzLjMuMzEuNTIuNjIuNDVsMy42NS0uOTEuMTIuMDZBOCA4IDAgMCAwIDE4IDEwWk0zIDEwYTcgNyAwIDEgMSAzLjU4IDYuMWwtLjA5LS4wMy0uMS0uMDJhLjUuNSAwIDAgMC0uMTggMGwtMy4wMi43Ni43NS0zLjAyLjAyLS4xYS41LjUgMCAwIDAtLjA3LS4yN0E2Ljk3IDYuOTcgMCAwIDEgMyAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxLTQuNjQgMTguODZsLTQuMyAxLjEyYS44NS44NSAwIDAgMS0xLjAzLTEuMDRsMS4xMS00LjI5QTEwIDEwIDAgMCAxIDEyIDJabS43NSA1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYzLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41djMuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjV2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc1IDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjMuNWgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjV2My41YS43NS43NSAwIDAgMCAxLjUgMHYtMy41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNXYtMy41Wk0yMiAxMmExMCAxMCAwIDEgMC0xOC44OSA0LjZsLTEuMDYgMy44MmExLjI1IDEuMjUgMCAwIDAgMS41NCAxLjU0bDMuODItMS4wN0ExMCAxMCAwIDAgMCAyMiAxMlpNMy41IDEyYTguNSA4LjUgMCAxIDEgNC4zNyA3LjQzbC0uMjctLjE1LTMuOTkgMS4xMSAxLjExLTMuOTgtLjE1LS4yN0E4LjQ2IDguNDYgMCAwIDEgMy41IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFkZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBZGQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDJhMTIgMTIgMCAxIDEtNS42NCAyMi42TDMuNiAyNS45NWMtLjk0LjI3LTEuOC0uNi0xLjU0LTEuNTRsMS4zNi00Ljc3QTEyIDEyIDAgMCAxIDE0IDJabS43NSA2Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY0LjVoLTQuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41djQuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTQuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjV2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBZGQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFkZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0Ljc1IDguNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjQuNWgtNC41YS43NS43NSAwIDAgMCAwIDEuNWg0LjV2NC41YS43NS43NSAwIDAgMCAxLjUgMHYtNC41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNXYtNC41Wk0xNCAyQTEyIDEyIDAgMCAwIDMuNCAxOS42NGwtMS4zNSA0Ljc3Yy0uMjcuOTQuNiAxLjgxIDEuNTQgMS41NGw0Ljc3LTEuMzVBMTIgMTIgMCAxIDAgMTQgMlpNMy41IDE0YTEwLjUgMTAuNSAwIDEgMSA1LjMyIDkuMTQuNzUuNzUgMCAwIDAtLjU3LS4wN0wzLjYgMjQuMzlsMS4zMi00LjY0Yy4wNi0uMTkuMDMtLjQtLjA3LS41N0ExMC40NSAxMC40NSAwIDAgMSAzLjUgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QWRkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFkZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTYgMmExNCAxNCAwIDEgMS02LjU2IDI2LjM3bC01LjUzIDEuNTdhMS41IDEuNSAwIDAgMS0xLjg1LTEuODVsMS41Ny01LjUzQTE0IDE0IDAgMCAxIDE2IDJabTAgN2ExIDEgMCAwIDAtMSAxdjVoLTVhMSAxIDAgMSAwIDAgMmg1djVhMSAxIDAgMSAwIDIgMHYtNWg1YTEgMSAwIDEgMCAwLTJoLTV2LTVhMSAxIDAgMCAwLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBZGQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFkZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE2IDlhMSAxIDAgMCAwLTEgMXY1aC01YTEgMSAwIDEgMCAwIDJoNXY1YTEgMSAwIDEgMCAyIDB2LTVoNWExIDEgMCAxIDAgMC0yaC01di01YTEgMSAwIDAgMC0xLTFabTAtN0ExNCAxNCAwIDAgMCAzLjYzIDIyLjU2TDIuMDYgMjguMWExLjUgMS41IDAgMCAwIDEuODUgMS44NWw1LjUzLTEuNTdBMTQgMTQgMCAxIDAgMTYgMlpNNCAxNmExMiAxMiAwIDEgMSA2LjA2IDEwLjQzIDEgMSAwIDAgMC0uNzctLjFsLTUuMDYgMS40NCAxLjQ0LTUuMDZhMSAxIDAgMCAwLS4xLS43N0M0LjU3IDIwLjIgNCAxOC4xNiA0IDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFkZDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBZGQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRhMjAgMjAgMCAxIDEtOS41MyAzNy41OWwtOC4yNCAyLjM0YTEuNzUgMS43NSAwIDAgMS0yLjE2LTIuMTZsMi4zNC04LjI0QTIwIDIwIDAgMCAxIDI0IDRabTEuMjUgMTEuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjcuNWgtNy41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg3LjV2Ny41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNy41aDcuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTcuNXYtNy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFkZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QWRkNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjUuMjUgMTUuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjcuNWgtNy41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg3LjV2Ny41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNy41aDcuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTcuNXYtNy41Wk0yNCA0QTIwIDIwIDAgMCAwIDYuNDEgMzMuNTNsLTIuMzQgOC4yNGExLjc1IDEuNzUgMCAwIDAgMi4xNiAyLjE2bDguMjQtMi4zNEEyMCAyMCAwIDEgMCAyNCA0Wk02LjUgMjRhMTcuNSAxNy41IDAgMSAxIDguNzUgMTUuMTZjLS4zLS4xNy0uNjQtLjIxLS45Ny0uMTJsLTcuNDQgMi4xMSAyLjEyLTcuNDRjLjEtLjMyLjA1LS42Ny0uMTItLjk3QTE3LjQxIDE3LjQxIDAgMCAxIDYuNSAyNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2sxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDQgMTIuMmMuNDYuMjguOTcuNDkgMS41LjYyYTUuNSA1LjUgMCAwIDEgNy4zLTcuM0E2IDYgMCAwIDAgNy4wMSAxWm0zLjUgMTRhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxMyAxMi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC43MWwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdMOC45IDcuOWEuNS41IDAgMSAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBcnJvd0JhY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDQgMTIuMmMuNDYuMjguOTcuNDkgMS41LjYyLS4xNi0uMzctLjMtLjc2LS4zOC0xLjE4YTQuOTcgNC45NyAwIDAgMS0uOC0uNC41LjUgMCAwIDAtLjQyLS4wNmwtMS42Ni41Ni41MS0xLjc5YS41LjUgMCAwIDAtLjA1LS4zOSA1IDUgMCAxIDEgOC45My00LjQzYy40Mi4wOC44MS4yMiAxLjE4LjM5QTYgNiAwIDAgMCA3IDFabTggOS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk05LjYgNy45YS41LjUgMCAwIDAtLjcgMEw3LjE1IDkuNjVhLjUuNSAwIDAgMCAwIC43TDguOSAxMi4xYS41LjUgMCAwIDAgLjctLjdsLS45LS45aDEuNTVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NUg4LjcxbC45LS45YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDAgMSA4IDguMjVBNS41IDUuNSAwIDAgMCAxMC4yNiAxOGE3LjkzIDcuOTMgMCAwIDEtMy44Ny0uODVsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTQuNSAxN2E0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93QmFjazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMCAxIDggOC4yNSA1LjUgNS41IDAgMCAwLTEuMDEtLjY2IDcgNyAwIDEgMC0xMy4xIDMuODMuNS41IDAgMCAxIC4wNy4yOGwtLjAyLjEtLjc1IDMuMDEgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMTktLjAxbC4wOS4wMi4wOS4wNGMuOTIuNTEgMS45NC44MiAzLjAxLjg4LjE5LjM2LjQuNy42NiAxYTcuOTMgNy45MyAwIDAgMS0zLjg2LS44NWwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFptNC41IDE3YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93QmFja0Rvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMSA3YTYgNiAwIDAgMSAxMS44MS0xLjUgNS41IDUuNSAwIDAgMC03LjMgNy4zIDUuOTcgNS45NyAwIDAgMS0xLjUxLS42bC0yLjM0Ljc3YS41LjUgMCAwIDEtLjY0LS42bC43MS0yLjVBNS45OCA1Ljk4IDAgMCAxIDEgN1ptOS41LTFhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabS0uOSA2LjQtLjktLjloMS41NUEyLjc1IDIuNzUgMCAwIDAgMTMgOC43NVY4LjVhLjUuNSAwIDAgMC0xIDB2LjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg4LjcxbC45LS45YS41LjUgMCAxIDAtLjcxLS43bC0xLjc2IDEuNzVhLjUuNSAwIDAgMCAwIC43TDguOSAxMy4xYS41LjUgMCAwIDAgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrRG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgN2E2IDYgMCAwIDEgMTEuODEtMS41Yy0uMzctLjE2LS43Ni0uMy0xLjE4LS4zOEE1IDUgMCAxIDAgMi43IDkuNTVhLjUuNSAwIDAgMSAuMDUuNGwtLjUgMS43OCAxLjY1LS41NmEuNS41IDAgMCAxIC40My4wNmMuMjUuMTUuNTEuMy43OS40LjA4LjQyLjIyLjgxLjM5IDEuMThBNS45NyA1Ljk3IDAgMCAxIDQgMTIuMmwtMi4zNC43OGEuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAxIDdabTkuNS0xYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0tLjkgNi40LS45LS45aDEuNTVBMi43NSAyLjc1IDAgMCAwIDEzIDguNzVWOC41YS41LjUgMCAwIDAtMSAwdi4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIOC43MWwuOS0uOWEuNS41IDAgMSAwLS43MS0uN2wtMS43NiAxLjc1YS41LjUgMCAwIDAgMCAuN0w4LjkgMTMuMWEuNS41IDAgMCAwIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93QmFja0Rvd24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDB2LjM1bC4wMy4zOGMuMSAxLjAxLjM4IDEuOTkuODMgMi44OWwuMDYuMTItLjkgMy42NC0uMDIuMDh2LjA4Yy4wMy4zLjMxLjUyLjYyLjQ1bDMuNjUtLjkxLjEyLjA2YTcuOTcgNy45NyAwIDAgMCAzLjg2Ljg2QTUuNSA1LjUgMCAwIDEgMTggMTAuMjZMMTggMTBabS0zLjUgMGE0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptLS45IDYuNC0uOS0uOWgxLjU1QTIuNzUgMi43NSAwIDAgMCAxNyAxMi43NXYtLjI1YS41LjUgMCAwIDAtMSAwdi4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTEuNTRsLjktLjlhLjUuNSAwIDAgMC0uNzEtLjdsLTEuNzYgMS43NWEuNS41IDAgMCAwIDAgLjdsMS43NiAxLjc1YS41LjUgMCAwIDAgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrRG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMCAxIDggOC4yNSA1LjUgNS41IDAgMCAwLTEuMDEtLjY2IDcgNyAwIDEgMC0xMy4xIDMuODMuNS41IDAgMCAxIC4wNy4yOGwtLjAyLjEtLjc1IDMuMDEgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMTktLjAxbC4wOS4wMi4wOS4wNGMuOTIuNTEgMS45NC44MiAzLjAxLjg4LjE5LjM2LjQuNy42NiAxYTcuOTMgNy45MyAwIDAgMS0zLjg2LS44NWwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFptNC41IDhhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabS0uOSA2LjQtLjktLjloMS41NUEyLjc1IDIuNzUgMCAwIDAgMTcgMTIuNzV2LS4yNWEuNS41IDAgMCAwLTEgMHYuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0xLjU0bC45LS45YS41LjUgMCAwIDAtLjcxLS43bC0xLjc2IDEuNzVhLjUuNSAwIDAgMCAwIC43bDEuNzYgMS43NWEuNS41IDAgMCAwIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93QmFja0Rvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMTguODYgNC42NWwtMS4xMSA0LjI5YS44NS44NSAwIDAgMCAxLjA0IDEuMDRsNC4yOS0xLjEyYTkuOTYgOS45NiAwIDAgMCA1LjQyIDEuMTEgNi41IDYuNSAwIDAgMSA5LjE5LTkuMTlMMjIgMTJabTEgNS41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS02LjY1IDIuMTVhLjUuNSAwIDAgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41YS41LjUgMCAwIDEgLjcuN2wtLjY0LjY1aDIuMDRjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LS4yNWEuNS41IDAgMCAxIDEgMHYuMjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtMi4wNGwuNjQuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrRG93bjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAwIDEgOS45NyAxMC43OCA2LjUyIDYuNTIgMCAwIDAtMS40Ny0xLjA1IDguNSA4LjUgMCAxIDAtMTUuOTMgNC40bC4xNS4yOC0xLjEgMy45OCAzLjk4LTEuMTEuMjcuMTVhOC40NSA4LjQ1IDAgMCAwIDMuODYgMS4wN2MuMjguNTQuNjQgMS4wMyAxLjA1IDEuNDdhMTAuMTQgMTAuMTQgMCAwIDEtNS4zNy0xLjA4TDMuNiAyMS45NmExLjI1IDEuMjUgMCAwIDEtMS41NC0xLjU0bDEuMDYtMy44M0ExMCAxMCAwIDAgMSAxMiAyWm0xMSAxNS41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS02LjY1IDIuMTVhLjUuNSAwIDAgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41YS41LjUgMCAwIDEgLjcuN2wtLjY0LjY1aDIuMDRjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LS4yNWEuNS41IDAgMCAxIDEgMHYuMjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtMi4wNGwuNjQuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrRG93bjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBcnJvd0JhY2tEb3duMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDE0YTEyIDEyIDAgMSAxIDIzLjkzIDEuMzIgNy41IDcuNSAwIDEgMC0xMC42IDEwLjYgMTIuMTQgMTIuMTQgMCAwIDEtNi45Ny0xLjMyTDMuNiAyNS45NWMtLjk0LjI3LTEuOC0uNi0xLjU0LTEuNTRsMS4zNi00Ljc3QzIuNSAxNy45NiAyIDE2LjA0IDIgMTRabTI1IDYuNWE2LjUgNi41IDAgMSAwLTEzIDAgNi41IDYuNSAwIDAgMCAxMyAwWm0tOC4xNSAyLjY1YS41LjUgMCAwIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJhLjUuNSAwIDAgMSAuNy43TDE3LjcxIDIxaDIuNTRBMi43NSAyLjc1IDAgMCAwIDIzIDE4LjI1VjE4YS41LjUgMCAwIDEgMSAwdi4yNUEzLjc1IDMuNzUgMCAwIDEgMjAuMjUgMjJoLTIuNTRsMS4xNCAxLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93QmFja0Rvd24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93QmFja0Rvd24yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCAzLjVhMTAuNSAxMC41IDAgMCAwLTkuMTQgMTUuNjhjLjEuMTcuMTMuMzguMDcuNTdMMy42MSAyNC40bDQuNjQtMS4zMmMuMi0uMDYuNC0uMDMuNTcuMDdhMTAuNDUgMTAuNDUgMCAwIDAgNS4zMyAxLjM2Yy4zMy41Mi43MyAxIDEuMTcgMS40M2ExMi4xNCAxMi4xNCAwIDAgMS02Ljk2LTEuMzNMMy42IDI1Ljk1Yy0uOTQuMjctMS44LS42LTEuNTQtMS41NGwxLjM2LTQuNzdhMTIgMTIgMCAxIDEgMjIuNTItNC4zMmMtLjQzLS40NC0uOS0uODQtMS40My0xLjE3VjE0YzAtNS44LTQuNy0xMC41LTEwLjUtMTAuNVptMTMgMTdhNi41IDYuNSAwIDEgMC0xMyAwIDYuNSA2LjUgMCAwIDAgMTMgMFptLTguMTUgMi42NWEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYS41LjUgMCAwIDEgLjcuN0wxNy43MSAyMWgyLjU0QTIuNzUgMi43NSAwIDAgMCAyMyAxOC4yNVYxOGEuNS41IDAgMCAxIDEgMHYuMjVBMy43NSAzLjc1IDAgMCAxIDIwLjI1IDIyaC0yLjU0bDEuMTQgMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2tEb3duMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93QmFja0Rvd24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgMTZhMTQgMTQgMCAxIDEgMjcuOTUgMS4yMiA5IDkgMCAxIDAtMTIuNzMgMTIuNzMgMTQuMTYgMTQuMTYgMCAwIDEtNy43OC0xLjU4bC01LjUzIDEuNTdhMS41IDEuNSAwIDAgMS0xLjg1LTEuODVsMS41Ny01LjUzQTEzLjk0IDEzLjk0IDAgMCAxIDIgMTZabTIxLjUgMGE3LjUgNy41IDAgMSAxIDAgMTUgNy41IDcuNSAwIDAgMSAwLTE1Wm0tMS4yMiAxMC4yMkwyMS4wNiAyNWgyLjY5QzI2LjEgMjUgMjggMjMuMSAyOCAyMC43NXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVoLTIuNjlsMS4yMi0xLjIyYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTIuNSAyLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2tEb3duMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRBcnJvd0JhY2tEb3duMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTYgNEExMiAxMiAwIDAgMCA1LjU3IDIxLjk0YTEgMSAwIDAgMSAuMS43N2wtMS40NCA1LjA2IDUuMDYtMS40NGExIDEgMCAwIDEgLjc3LjFjMS42Ny45NSAzLjU5IDEuNTIgNS42NCAxLjU3LjQyLjcyLjkzIDEuMzcgMS41MiAxLjk1YTE0LjE2IDE0LjE2IDAgMCAxLTcuNzgtMS41OGwtNS41MyAxLjU3YTEuNSAxLjUgMCAwIDEtMS44NS0xLjg1bDEuNTctNS41M2ExNCAxNCAwIDEgMSAyNi4zMi01LjM0QTkuMDQgOS4wNCAwIDAgMCAyOCAxNS43IDEyIDEyIDAgMCAwIDE2IDRabTcuNSAxMmE3LjUgNy41IDAgMSAxIDAgMTUgNy41IDcuNSAwIDAgMSAwLTE1Wm0tMS4yMiAxMC4yMkwyMS4wNiAyNWgyLjY5QzI2LjEgMjUgMjggMjMuMSAyOCAyMC43NXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVoLTIuNjlsMS4yMi0xLjIyYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTIuNSAyLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0JhY2tEb3duNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93QmFja0Rvd240OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMjRhMjAgMjAgMCAxIDEgMzkuOTQgMS42MiAxMyAxMyAwIDEgMC0xOC4zMiAxOC4zMiAxOS45MiAxOS45MiAwIDAgMS0xMS4xNS0yLjM1bC04LjI0IDIuMzRhMS43NSAxLjc1IDAgMCAxLTIuMTYtMi4xNmwyLjM0LTguMjRBMTkuOTIgMTkuOTIgMCAwIDEgNCAyNFptNDEgMTBhMTEgMTEgMCAxIDAtMjIgMCAxMSAxMSAwIDAgMCAyMiAwWm0tMTQuMyAzLjNhMSAxIDAgMCAxLTEuNCAxLjRsLTMtM2ExIDEgMCAwIDEgMC0xLjRsMy0zYTEgMSAwIDAgMSAxLjQgMS40TDI5LjQyIDM0SDM1YTQgNCAwIDAgMCA0LTQgMSAxIDAgMSAxIDIgMCA2IDYgMCAwIDEtNiA2aC01LjU5bDEuMyAxLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dCYWNrRG93bjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dCYWNrRG93bjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI0IDYuNUExNy41IDE3LjUgMCAwIDAgOC44NCAzMi43NGMuMTcuMy4yMS42NS4xMi45N2wtMi4xMiA3LjQ0IDcuNDQtMi4xMWMuMzMtLjEuNjgtLjA1Ljk3LjEyYTE3LjQgMTcuNCAwIDAgMCA4LjEyIDIuMzNjLjY0LjkgMS40IDEuNzMgMi4yNSAyLjQ1YTE5LjkyIDE5LjkyIDAgMCAxLTExLjE1LTIuMzVsLTguMjQgMi4zNGExLjc1IDEuNzUgMCAwIDEtMi4xNi0yLjE2bDIuMzQtOC4yNGEyMCAyMCAwIDEgMSAzNy41Mi03LjkxYy0uNzEtLjg1LTEuNTMtMS42LTIuNDQtMi4yNUExNy41IDE3LjUgMCAwIDAgMjQgNi41Wk00NSAzNGExMSAxMSAwIDEgMC0yMiAwIDExIDExIDAgMCAwIDIyIDBabS0xNC4zIDMuM2ExIDEgMCAwIDEtMS40IDEuNGwtMy0zYTEgMSAwIDAgMSAwLTEuNGwzLTNhMSAxIDAgMCAxIDEuNCAxLjRMMjkuNDIgMzRIMzVhNCA0IDAgMCAwIDQtNCAxIDEgMCAxIDEgMiAwIDYgNiAwIDAgMS02IDZoLTUuNTlsMS4zIDEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRBcnJvd0RvdWJsZUJhY2sxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dEb3VibGVCYWNrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDQgMTIuMmMuNDYuMjguOTcuNDkgMS41LjYyYTUuNSA1LjUgMCAwIDEgNy4zLTcuM0E2IDYgMCAwIDAgNy4wMSAxWm04IDkuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNOS4zNSA5LjM1YS41LjUgMCAwIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDEgMCAuNy0uN0w4LjIxIDEwLjVsMS4xNC0xLjE1Wm0xLjg2LjY1LjY0LS42NWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIMTN2LjVhLjUuNSAwIDAgMCAxIDBWMTFhMSAxIDAgMCAwLTEtMWgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93RG91YmxlQmFjazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dEb3VibGVCYWNrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSA3YTYgNiAwIDAgMSAxMS44MS0xLjVjLS4zNy0uMTYtLjc2LS4zLTEuMTgtLjM4QTUgNSAwIDEgMCAyLjcgOS41NWEuNS41IDAgMCAxIC4wNS40bC0uNSAxLjc4IDEuNjUtLjU2YS41LjUgMCAwIDEgLjQzLjA2Yy4yNS4xNS41MS4zLjc5LjQuMDguNDIuMjIuODEuMzkgMS4xOEE1Ljk3IDUuOTcgMCAwIDEgNCAxMi4ybC0yLjM0Ljc4YS41LjUgMCAwIDEtLjY0LS42bC43MS0yLjVBNS45OCA1Ljk4IDAgMCAxIDEgN1ptMTQgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk05LjM1IDkuMzVhLjUuNSAwIDAgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMSAwIC43LS43TDguMjEgMTAuNWwxLjE0LTEuMTVabTEuODYuNjUuNjQtLjY1YS41LjUgMCAwIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDAgMCAuNy0uN2wtLjY0LS42NUgxM3YuNWEuNS41IDAgMCAwIDEgMFYxMWExIDEgMCAwIDAtMS0xaC0xLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QXJyb3dEb3VibGVCYWNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEFycm93RG91YmxlQmFjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1QTUuNSA1LjUgMCAwIDAgMTAuMjYgMThhNy45MyA3LjkzIDAgMCAxLTMuODctLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm05IDEyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS01LjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1Wm0xLjg2LjY1LjY0LS42NWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIMTd2LjVhLjUuNSAwIDAgMCAxIDBWMTVhMSAxIDAgMCAwLTEtMWgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEFycm93RG91YmxlQmFjazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QXJyb3dEb3VibGVCYWNrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjI1IDUuNSA1LjUgMCAwIDAtMS4wMS0uNjYgNyA3IDAgMSAwLTEzLjEgMy44My41LjUgMCAwIDEgLjA3LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0Yy45Mi41MSAxLjk0LjgyIDMuMDEuODguMTkuMzYuNC43LjY2IDFhNy45MyA3LjkzIDAgMCAxLTMuODYtLjg1bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm05IDEyLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS01LjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1Wm0xLjg2LjY1LjY0LS42NWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIMTd2LjVhLjUuNSAwIDAgMCAxIDBWMTVhMSAxIDAgMCAwLTEtMWgtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEJ1YmJsZXNRdWVzdGlvbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRCdWJibGVzUXVlc3Rpb24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuODYgMTIuOWE0Ljk4IDQuOTggMCAwIDAgNS4yNS42M2wyLjMuNDZhLjUuNSAwIDAgMCAuNTgtLjU5bC0uNDYtMi4yOWE0Ljk4IDQuOTggMCAwIDAtLjY0LTUuMjUgNi4wNCA2LjA0IDAgMCAxIDAgMi4yNCA0LjAxIDQuMDEgMCAwIDEtLjMzIDIuNzIuNS41IDAgMCAwLS4wNC4zMmwuMzQgMS43Mi0xLjcyLS4zNGEuNS41IDAgMCAwLS4zMi4wNCAzLjk4IDMuOTggMCAwIDEtMi43Mi4zNCA2LjAzIDYuMDMgMCAwIDEtMi4yNCAwWk0yIDdhNSA1IDAgMSAxIDIuODkgNC41M2wtMi4zLjQ2YS41LjUgMCAwIDEtLjU4LS41OWwuNDYtMi4yOUE0Ljk4IDQuOTggMCAwIDEgMiA3Wm01IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVaTTcgNGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzJDOC44NSA0Ljg1IDguMDMgNCA3IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QnViYmxlc1F1ZXN0aW9uMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRCdWJibGVzUXVlc3Rpb24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03IDguODhhLjYyLjYyIDAgMSAxIDAgMS4yNS42Mi42MiAwIDAgMSAwLTEuMjVaTTcgNGMxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NUM3Ljg1IDUuNCA3LjQ3IDUgNyA1Yy0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDAgMS0xIDBDNS4xNCA0LjgzIDUuOTUgNCA3IDRaTTIgN2E1IDUgMCAxIDEgMi44OSA0LjUzbC0yLjMuNDZhLjUuNSAwIDAgMS0uNTgtLjU5bC40Ni0yLjI5QTQuOTggNC45OCAwIDAgMSAyIDdabTUtNGE0IDQgMCAwIDAtMy41NiA1LjgyYy4wNS4xLjA2LjIxLjA0LjMybC0uMzQgMS43MiAxLjcyLS4zNGEuNS41IDAgMCAxIC4zMi4wNEE0IDQgMCAxIDAgNyAzWm0tMS4xNCA5LjlhNC45OCA0Ljk4IDAgMCAwIDUuMjUuNjNsMi4zLjQ2YS41LjUgMCAwIDAgLjU4LS41OWwtLjQ2LTIuMjlhNC45OCA0Ljk4IDAgMCAwLS42NC01LjI1IDYuMDMgNi4wMyAwIDAgMSAwIDIuMjQgNC4wMSA0LjAxIDAgMCAxLS4zMyAyLjcyLjUuNSAwIDAgMC0uMDQuMzJsLjM0IDEuNzItMS43Mi0uMzRhLjUuNSAwIDAgMC0uMzIuMDQgMy45OCAzLjk4IDAgMCAxLTIuNzIuMzQgNi4wMyA2LjAzIDAgMCAxLTIuMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRCdWJibGVzUXVlc3Rpb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QnViYmxlc1F1ZXN0aW9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgMWE2LjUgNi41IDAgMCAwLTUuNjggOS42N2wtLjggMi4wOGExIDEgMCAwIDAgMS4yMSAxLjMybDIuNDktLjdBNi41IDYuNSAwIDEgMCA4LjUgMVptMCAzLjljLS4zNy4wNy0uNzYuMy0xLjA3Ljg1YS41LjUgMCAxIDEtLjg3LS41QTIuNTcgMi41NyAwIDAgMSA4LjMgMy45MmMuNjUtLjEzIDEuMy4wNCAxLjguMzYuNDguMzIuODcuODQuODggMS40Ny4wMS42Ni0uMzkgMS4yNS0xLjEyIDEuNjgtLjUuMy0uNy41LS43Ny42My0uMDcuMTEtLjEuMjEtLjEuNDRhLjUuNSAwIDAgMS0xIDBjMC0uMjcuMDItLjYxLjI1LS45Ny4yLS4zNC41Ni0uNjQgMS4xMS0uOTYuNTQtLjMyLjYzLS42Mi42My0uOCAwLS4yLS4xNC0uNDYtLjQ0LS42NS0uMy0uMi0uNjgtLjMtMS4wNS0uMjJabS4yNSA2LjZhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0tMi4yMSAzLjI0YTYuNDkgNi40OSAwIDAgMCA3LjcgMS42NGwyLjQ5LjdhMSAxIDAgMCAwIDEuMi0xLjMzbC0uOC0yLjA4YTYuNDcgNi40NyAwIDAgMC0xLjM3LTguMDRjLjE1LjU2LjIzIDEuMTUuMjQgMS43NmE1LjQ3IDUuNDcgMCAwIDEgLjE2IDUuOThsLS4xMy4yLjk3IDIuNTQtMi44Ni0uOC0uMTguMDlBNS40NyA1LjQ3IDAgMCAxIDguMyAxNWE3LjUgNy41IDAgMCAxLTEuNzUtLjI2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEJ1YmJsZXNRdWVzdGlvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QnViYmxlc1F1ZXN0aW9uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDQuOWMtLjM3LjA3LS43Ni4zLTEuMDcuODVhLjUuNSAwIDEgMS0uODctLjVBMi41NyAyLjU3IDAgMCAxIDguMyAzLjkyYy42NS0uMTMgMS4zLjA0IDEuOC4zNi40OC4zMi44Ny44NC44OCAxLjQ3LjAxLjY2LS4zOSAxLjI1LTEuMTIgMS42OC0uNS4zLS43LjUtLjc3LjYzLS4wNy4xMS0uMS4yMS0uMS40NGEuNS41IDAgMCAxLTEgMGMwLS4yNy4wMi0uNjEuMjUtLjk3LjItLjM0LjU2LS42NCAxLjExLS45Ni41NC0uMzIuNjMtLjYyLjYzLS44IDAtLjItLjE0LS40Ni0uNDQtLjY1LS4zLS4yLS42OC0uMy0xLjA1LS4yMlptLjI1IDYuNmEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTguNSAxYTYuNSA2LjUgMCAwIDAtNS42OCA5LjY3bC0uOCAyLjA4YTEgMSAwIDAgMCAxLjIxIDEuMzJsMi40OS0uN0E2LjUgNi41IDAgMSAwIDguNSAxWk0zIDcuNWE1LjUgNS41IDAgMSAxIDMgNC45bC0uMTgtLjA5LTIuODYuOC45Ny0yLjUzLS4xMy0uMjFBNS40NyA1LjQ3IDAgMCAxIDMgNy41Wm04LjQ2IDkuNWE2LjQ5IDYuNDkgMCAwIDEtNC45Mi0yLjI2IDcuNSA3LjUgMCAwIDAgMS43NS4yNiA1LjQ3IDUuNDcgMCAwIDAgNS42Ny40bC4xOC0uMDkgMi44Ni44LS45Ny0yLjUzLjEzLS4yMUE1LjQ3IDUuNDcgMCAwIDAgMTYgNy4zOWMtLjAxLS42LS4xLTEuMi0uMjQtMS43NmE2LjQ4IDYuNDggMCAwIDEgMS4zOCA4LjA0bC44IDIuMDhhMSAxIDAgMCAxLTEuMjEgMS4zMmwtMi40OS0uN2MtLjg0LjQtMS43OC42My0yLjc4LjYzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEJ1YmJsZXNRdWVzdGlvbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRCdWJibGVzUXVlc3Rpb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuNSAzYTcuNSA3LjUgMCAwIDAtNi44IDEwLjY3IDY4LjEgNjguMSAwIDAgMC0uNjggMy4xNSAxIDEgMCAwIDAgMS4xNSAxLjE3Yy42My0uMTEgMS45OC0uMzYgMy4yNC0uNjVBNy41IDcuNSAwIDEgMCA5LjUgM1pNNy4xIDcuNGMuMjUtLjQ5LjYtLjg2IDEuMDQtMS4xYTIuODMgMi44MyAwIDAgMSAzIC4yOGMuNS40Mi44NiAxLjA3Ljg2IDEuOTIgMCAuOTctLjY5IDEuNS0xLjA4IDEuOGE4LjQgOC40IDAgMCAwLS4wOC4wN2MtLjQzLjMzLS41OS41MS0uNTkuODhhLjc1Ljc1IDAgMCAxLTEuNSAwYzAtMS4xMy43MS0xLjcgMS4xNi0yLjA2LjUxLS40LjU5LS41LjU5LS42OSAwLS40LS4xNS0uNjItLjMyLS43Ni0uMi0uMTYtLjQ2LS4yNC0uNjgtLjI0LS4zIDAtLjUuMDUtLjY1LjEzLS4xNC4wOC0uMy4yMS0uNDQuNDhhLjc1Ljc1IDAgMSAxLTEuMzItLjcxWk05LjUgMTNhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0tLjEgNmE3LjQ3IDcuNDcgMCAwIDAgOC4xOSAxLjM0YzEuMDQuMjQgMi4xOC40OCAyLjkxLjY0LjkuMTggMS42Ny0uNjIgMS40Ny0xLjUtLjE2LS43LS40Mi0xLjgtLjY3LTIuOGE3LjUgNy41IDAgMCAwLTQuMzQtMTAuMjZjLjM0LjYzLjYxIDEuMzEuOCAyLjA0YTYgNiAwIDAgMSAyLjA4IDcuNzlsLS4xMy4yNS4wNy4yOC42NCAyLjY1LTIuNzQtLjYxLS4yNy0uMDctLjI0LjEyYTUuOTcgNS45NyAwIDAgMS01LjU5LS4xM0E4LjUyIDguNTIgMCAwIDEgOS40IDE5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEJ1YmJsZXNRdWVzdGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0QnViYmxlc1F1ZXN0aW9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC4xNCA2LjNhMi44MyAyLjgzIDAgMCAxIDIuOTkuMjhjLjUyLjQyLjg3IDEuMDcuODcgMS45MiAwIC45Ny0uNjkgMS41LTEuMDggMS44bC0uMDguMDdjLS40My4zMy0uNi41MS0uNi44OGEuNzUuNzUgMCAxIDEtMS41IDBjMC0xLjEzLjcyLTEuNyAxLjE3LTIuMDYuNTEtLjQuNTktLjUuNTktLjY5IDAtLjQtLjE1LS42Mi0uMzItLjc2LS4yLS4xNi0uNDYtLjI0LS42OC0uMjQtLjMgMC0uNS4wNS0uNjUuMTMtLjE0LjA4LS4zLjIxLS40NC40OGEuNzUuNzUgMCAwIDEtMS4zMi0uNzFjLjI2LS40OS42MS0uODYgMS4wNS0xLjFaTTkuNSAxNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTAtMTJhNy41IDcuNSAwIDAgMC02LjggMTAuNjdsLS43MiAyLjg0Yy0uMjQuOTIuNTkgMS43NSAxLjUgMS41M2wyLjkzLS43QTcuNSA3LjUgMCAxIDAgOS41IDNabS02IDcuNWE2IDYgMCAxIDEgMy4zMyA1LjM3bC0uMjQtLjEyLS4yNy4wNy0yLjc5LjY2LjctMi43LjA2LS4yOC0uMTMtLjI1YTUuOTcgNS45NyAwIDAgMS0uNjYtMi43NVptMTEgMTAuNWE3LjQ3IDcuNDcgMCAwIDEtNS4xLTIgOC4yOCA4LjI4IDAgMCAwIDIuMTgtLjI2IDUuOTcgNS45NyAwIDAgMCA1LjU5LjEzbC4yNC0uMTIuMjcuMDdjLjkyLjIyIDEuOTYuNDQgMi43NC42LS4xOC0uNzQtLjQyLTEuNzUtLjY1LTIuNjRsLS4wNy0uMjguMTQtLjI1YTUuOTcgNS45NyAwIDAgMC0yLjA5LTcuOCA4LjQ0IDguNDQgMCAwIDAtLjgtMi4wNCA3LjUgNy41IDAgMCAxIDQuMzUgMTAuMjZsLjY3IDIuOGMuMi45LS41OCAxLjctMS40NyAxLjUtLjczLS4xNS0xLjg3LS4zOS0yLjkxLS42My0uOTUuNDItMiAuNjYtMy4xLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEJ1YmJsZXNRdWVzdGlvbjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRCdWJibGVzUXVlc3Rpb24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTExIDNhOSA5IDAgMCAwLTguMDUgMTMuMDNsLS45IDMuNGMtLjI2LjkyLjYgMS43NyAxLjUyIDEuNTJsMy40LS45QTkgOSAwIDEgMCAxMSAzWm0wIDE0LjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWk05LjUgOS4yNkEuNzUuNzUgMCAwIDEgOCA5LjI1di0uMDJhMS42MSAxLjYxIDAgMCAxIDAtLjEzIDIuOTQgMi45NCAwIDAgMSAuMzgtMS4yMkM4Ljc4IDcuMTUgOS42IDYuNSAxMSA2LjVjMS40IDAgMi4yMS42NSAyLjYyIDEuMzhBMy4wMiAzLjAyIDAgMCAxIDE0IDkuMnYuMDVjMCAxLjEyLS43IDEuODgtMS4yIDIuNDNsLS4xMi4xM2MtLjU0LjYxLS45MyAxLjExLS45MyAxLjk0YS43NS43NSAwIDAgMS0xLjUgMGMwLTEuNDIuNzQtMi4zIDEuMzItMi45NGwuMDItLjAyYy42LS42OC45LTEuMDEuOTEtMS41M2ExLjUzIDEuNTMgMCAwIDAtLjE4LS42NEMxMi4xNiA4LjM1IDExLjg1IDggMTEgOGMtLjg1IDAtMS4xNi4zNS0xLjMyLjYyYTEuNTIgMS41MiAwIDAgMC0uMTguNjRaTTE3IDI1YTguOTggOC45OCAwIDAgMS02LjczLTMuMDMgMTAuMDggMTAuMDggMCAwIDAgMi4xLS4wNiA3LjQ3IDcuNDcgMCAwIDAgOC4yMi42OGMuMTctLjEuMzctLjEyLjU1LS4wN2wzLjI1Ljg3LS44Ny0zLjI1YS43NS43NSAwIDAgMSAuMDctLjU1IDcuNSA3LjUgMCAwIDAtMi45MS0xMC4xMiA5LjkzIDkuOTMgMCAwIDAtLjc1LTEuOTggOSA5IDAgMCAxIDUuMTIgMTIuNTRsLjkgMy40Yy4yNS45Mi0uNiAxLjc3LTEuNTIgMS41MmwtMy40LS45QTguOTcgOC45NyAwIDAgMSAxNyAyNVpNMTIuNSA5LjI2XCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QnViYmxlc1F1ZXN0aW9uMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRCdWJibGVzUXVlc3Rpb24yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgMTJhNy41IDcuNSAwIDEgMSAzLjkgNi41OS43NS43NSAwIDAgMC0uNTQtLjA3bC0zLjI2Ljg3Ljg4LTMuMjVhLjc1Ljc1IDAgMCAwLS4wNy0uNTVBNy40NiA3LjQ2IDAgMCAxIDMuNSAxMlpNMTEgM2E5IDkgMCAwIDAtOC4wNSAxMy4wM2wtLjkgMy40Yy0uMjYuOTIuNiAxLjc3IDEuNTIgMS41MmwzLjQtLjlBOSA5IDAgMSAwIDExIDNabTYgMjJhOC45OCA4Ljk4IDAgMCAxLTYuNzMtMy4wMyAxMC4wOCAxMC4wOCAwIDAgMCAyLjEtLjA2IDcuNDcgNy40NyAwIDAgMCA4LjIyLjY4Yy4xNy0uMS4zNy0uMTIuNTUtLjA3bDMuMjUuODctLjg3LTMuMjVhLjc1Ljc1IDAgMCAxIC4wNy0uNTUgNy41IDcuNSAwIDAgMC0yLjkxLTEwLjEyIDkuOTMgOS45MyAwIDAgMC0uNzUtMS45OCA5IDkgMCAwIDEgNS4xMiAxMi41NGwuOSAzLjRjLjI1LjkyLS42IDEuNzctMS41MiAxLjUybC0zLjQtLjlBOC45NyA4Ljk3IDAgMCAxIDE3IDI1Wm0tNS04LjVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWk05LjUgOS4yNnYtLjA0bC4wMi0uMTRjLjAzLS4xNC4wOC0uMy4xNi0uNDYuMTYtLjI3LjQ3LS42MiAxLjMyLS42Mi44NSAwIDEuMTYuMzUgMS4zMi42MmExLjUyIDEuNTIgMCAwIDEgLjE4LjYzYzAgLjUzLS4zLjg2LS45MSAxLjU0bC0uMDIuMDJhNC4xOSA0LjE5IDAgMCAwLTEuMzIgMi45NC43NS43NSAwIDAgMCAxLjUgMGMwLS44My4zOS0xLjMzLjkzLTEuOTRsLjEzLS4xM2MuNS0uNTUgMS4xOS0xLjMgMS4xOS0yLjQzVjkuMmEyLjIyIDIuMjIgMCAwIDAtLjA1LS40IDMuMDIgMy4wMiAwIDAgMC0uMzMtLjkyQzEzLjIyIDcuMTUgMTIuNCA2LjUgMTEgNi41Yy0xLjQgMC0yLjIxLjY1LTIuNjIgMS4zOEEzLjAyIDMuMDIgMCAwIDAgOCA5LjIzdi4wMmEuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QnViYmxlc1F1ZXN0aW9uMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEJ1YmJsZXNRdWVzdGlvbjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTIuNSAzYTEwLjUgMTAuNSAwIDAgMC05LjQgMTUuMTlMMi4wNSAyMi4xYTEuNSAxLjUgMCAwIDAgMS44NCAxLjgzTDcuOCAyMi45QTEwLjUgMTAuNSAwIDEgMCAxMi41IDNabTEuOTUgMjIuMzRhMTIuMDggMTIuMDggMCAwIDEtMi44LjEzIDEwLjQ3IDEwLjQ3IDAgMCAwIDEyLjU1IDIuNDJsMy45MSAxLjA1YTEuNSAxLjUgMCAwIDAgMS44NC0xLjgzbC0xLjA1LTMuOTJBMTAuNDQgMTAuNDQgMCAwIDAgMzAgMTguNWMwLTQuMzYtMi42Ni04LjEtNi40NS05LjcuMzYuODYuNjMgMS43Ny43OSAyLjdhOC41IDguNSAwIDAgMSAyLjYxIDExLjA5IDEgMSAwIDAgMC0uMDkuNzRsLjkzIDMuNDYtMy40NS0uOTNhMSAxIDAgMCAwLS43NS4xIDguNDYgOC40NiAwIDAgMS05LjE0LS42MlpNMTEuNSAxNWMwLTEuNjYuODgtMi42NiAxLjYtMy40OGwuMDItLjAyYy41Ni0uNjQuODgtMS4wMi44OC0xLjUtLjAxLS4yOS0uMTgtMS0xLjUtMS0xLjQzIDAtMS41LjgzLTEuNSAxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxLTEtMWMwLTEuMjEuOTMtMyAzLjUtM1MxNiA4Ljc5IDE2IDEwcy0uNzMgMi4wOS0xLjM4IDIuODNsLS4wMi4wMmMtLjU5LjY3LTEuMSAxLjI1LTEuMSAyLjE1YTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxLTEtMVptMi4yNSAzLjc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0QnViYmxlc1F1ZXN0aW9uMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRCdWJibGVzUXVlc3Rpb24zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMi41IDNhMTAuNSAxMC41IDAgMCAwLTkuNCAxNS4xOUwyLjA1IDIyLjFhMS41IDEuNSAwIDAgMCAxLjg0IDEuODNMNy44IDIyLjlBMTAuNSAxMC41IDAgMSAwIDEyLjUgM1pNNS4wNSAxNy41OWE4LjUgOC41IDAgMSAxIDMuMzYgMy4zNiAxIDEgMCAwIDAtLjc1LS4wOWwtMy40NS45My45My0zLjQ2YTEgMSAwIDAgMC0uMS0uNzRabTkuNCA3Ljc1YTEyLjA4IDEyLjA4IDAgMCAxLTIuOC4xMyAxMC40NyAxMC40NyAwIDAgMCAxMi41NSAyLjQybDMuOTEgMS4wNWExLjUgMS41IDAgMCAwIDEuODQtMS44M2wtMS4wNS0zLjkyQTEwLjQ0IDEwLjQ0IDAgMCAwIDMwIDE4LjVjMC00LjM2LTIuNjYtOC4xLTYuNDUtOS43LjM2Ljg2LjYzIDEuNzcuNzkgMi43YTguNSA4LjUgMCAwIDEgMi42MSAxMS4wOSAxIDEgMCAwIDAtLjA5Ljc0bC45MyAzLjQ2LTMuNDUtLjkzYTEgMSAwIDAgMC0uNzUuMSA4LjQ2IDguNDYgMCAwIDEtOS4xNC0uNjJaTTExLjUgMTVhMSAxIDAgMCAwIDEgMSAxIDEgMCAwIDAgMS0xYzAtLjkuNTEtMS40OCAxLjEtMi4xNWwuMDItLjAyQzE1LjI3IDEyLjA5IDE2IDExLjIxIDE2IDEwcy0uOTMtMy0zLjUtM1M5IDguNzkgOSAxMGExIDEgMCAwIDAgMSAxIDEgMSAwIDAgMCAxLTFjMC0uMTcuMDctMSAxLjUtMSAxLjMyIDAgMS40OS43MSAxLjUgMSAwIC40OC0uMzIuODYtLjg4IDEuNWwtLjAyLjAyYy0uNzIuODItMS42IDEuODItMS42IDMuNDhabTIuMjUgMy43NWExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEN1cnNvcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRDdXJzb3IxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgNmE1IDUgMCAxIDEgOS44OSAxLjA2TDkuODYgNS40QTEuNzUgMS43NSAwIDAgMCA3IDYuNzVWMTFjLS44NyAwLTEuNy0uMjItMi40LS42MmwtMS45NS42YS41LjUgMCAwIDEtLjYzLS42M2wuNi0xLjk1QTQuOTggNC45OCAwIDAgMSAyIDZabTcuMjMuMTcgNS41IDQuNWEuNzUuNzUgMCAwIDEtLjQ4IDEuMzNoLTIuOTlhLjUuNSAwIDAgMC0uNC4ybC0xLjUxIDJBLjc1Ljc1IDAgMCAxIDggMTMuNzV2LTdsLjAxLS4xMWEuNzUuNzUgMCAwIDEgMS4yMi0uNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0Q3Vyc29yMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRDdXJzb3IxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDZhNSA1IDAgMSAxIDkuODkgMS4wNmwtLjktLjc0TDExIDZhNCA0IDAgMSAwLTcuNDIgMi4wOGMuMDguMTIuMS4yNy4wNS40bC0uMzggMS4yNiAxLjI2LS4zOGEuNS41IDAgMCAxIC40LjA1QzUuNTIgOS44IDYuMjMgMTAgNyAxMHYxYy0uODcgMC0xLjctLjIyLTIuNC0uNjJsLTEuOTUuNmEuNS41IDAgMCAxLS42My0uNjNsLjYtMS45NUE0Ljk4IDQuOTggMCAwIDEgMiA2Wm0xMi43MiA0LjY3YS43NS43NSAwIDAgMS0uNDcgMS4zM2gtM2EuNS41IDAgMCAwLS4zOS4ybC0xLjUxIDJBLjc1Ljc1IDAgMCAxIDggMTMuNzV2LTdjMC0uNjMuNzMtLjk4IDEuMjItLjU4bDUuNSA0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0Q3Vyc29yMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEN1cnNvcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOCAxYTYgNiAwIDAgMC01LjI3IDguODdsLS43MSAyLjVhLjUuNSAwIDAgMCAuNjQuNkw1IDEyLjJhNS45NyA1Ljk3IDAgMCAwIDQgLjczVjguNzVjMC0xLjUgMS43NC0yLjMgMi44OC0xLjM0bDEuOCAxLjUzQTYgNiAwIDAgMCA4IDFabTIgNy43NXY5YS43NS43NSAwIDAgMCAxLjM3LjQybDEuOTgtMi45NWEuNS41IDAgMCAxIC40Mi0uMjJoMy40OGMuNyAwIDEuMDItLjg3LjQ5LTEuMzJsLTYuNS01LjVhLjc1Ljc1IDAgMCAwLTEuMjQuNTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0Q3Vyc29yMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRDdXJzb3IyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDUgMTIuMmE1Ljk3IDUuOTcgMCAwIDAgNCAuNzNWMTEuOWE1LjAyIDUuMDIgMCAwIDEtMy42Ny0uNjcuNS41IDAgMCAwLS40My0uMDZsLTEuNjYuNTYuNTEtMS43OWEuNS41IDAgMCAwLS4wNS0uMzkgNSA1IDAgMSAxIDkuMTUtMS4zMmwuODMuN0E2IDYgMCAwIDAgOCAxWm0yIDcuNzV2OWEuNzUuNzUgMCAwIDAgMS4zNy40MmwxLjk4LTIuOTVhLjUuNSAwIDAgMSAuNDItLjIyaDMuNDhjLjcgMCAxLjAyLS44Ny40OS0xLjMybC02LjUtNS41YS43NS43NSAwIDAgMC0xLjI0LjU3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEN1cnNvcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRDdXJzb3IyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwIDFhOCA4IDAgMCAxIDcuNDggMTAuODZMMTQuMiA5LjRBMiAyIDAgMCAwIDExIDExdjUuOTRhOC4wNyA4LjA3IDAgMCAxLTQuNjEtLjhsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDlhOCA4IDAgMCAxIDgtOFptMy42IDkuMiA4IDZBMSAxIDAgMCAxIDIxIDE4aC00LjRhMSAxIDAgMCAwLS44OC41M2wtMS44NCAzLjQ0Yy0uNDkuOTItMS44OC41Ny0xLjg4LS40N1YxMWExLjA1IDEuMDUgMCAwIDEgLjEyLS40NyAxIDEgMCAwIDEgMS40OC0uMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0Q3Vyc29yMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRDdXJzb3IyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMCAxYTggOCAwIDAgMSA3LjQ4IDEwLjg2bC0uODQtLjYzYTcgNyAwIDEgMC0xMi43NSAxLjIuNS41IDAgMCAxIC4wNy4yN2wtLjAyLjEtLjc1IDMuMDEgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMTktLjAxbC4wOS4wMi4wOS4wNGE2Ljk3IDYuOTcgMCAwIDAgNC40Mi44MnYxYTguMDcgOC4wNyAwIDAgMS00LjYxLS44bC0uMTItLjA1LTMuNjUuOWEuNS41IDAgMCAxLS42Mi0uNDR2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDlhOCA4IDAgMCAxIDgtOFptMTEuNiAxNS4yQTEgMSAwIDAgMSAyMSAxOGgtNC40YTEgMSAwIDAgMC0uODguNTNsLTEuODQgMy40NGMtLjQ5LjkyLTEuODguNTctMS44OC0uNDdWMTFhMSAxIDAgMCAxIDEuNi0uOGw4IDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RGlzbWlzczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXREaXNtaXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDhhNiA2IDAgMSAxIDMgNS4ybC0yLjM0Ljc3YS41LjUgMCAwIDEtLjY0LS42bC43MS0yLjVBNS45OCA1Ljk4IDAgMCAxIDIgOFptMy45LTIuMS0uMDYuMDdhLjUuNSAwIDAgMCAuMDYuNjNMNy4zIDggNS45IDkuNGwtLjA2LjA3YS41LjUgMCAwIDAgLjA2LjYzbC4wNy4wNmMuMi4xNC40Ni4xMi42My0uMDZMOCA4LjdsMS40IDEuNC4wNy4wNmMuMi4xNC40Ni4xMi42My0uMDZsLjA2LS4wN2EuNS41IDAgMCAwLS4wNi0uNjNMOC43IDhsMS40LTEuNC4wNi0uMDdhLjUuNSAwIDAgMC0uMDYtLjYzbC0uMDctLjA2YS41LjUgMCAwIDAtLjYzLjA2TDggNy4zIDYuNiA1LjlsLS4wNy0uMDZhLjUuNSAwIDAgMC0uNjMuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RGlzbWlzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RGlzbWlzczE2UmVndWxhcicsIFwiMTZcIiwgW1wibTUuOSA1LjktLjA2LjA3YS41LjUgMCAwIDAgLjA2LjYzTDcuMyA4IDUuOSA5LjRsLS4wNi4wN2EuNS41IDAgMCAwIC4wNi42M2wuMDcuMDZjLjIuMTQuNDYuMTIuNjMtLjA2TDggOC43bDEuNCAxLjQuMDcuMDZjLjIuMTQuNDYuMTIuNjMtLjA2bC4wNi0uMDdhLjUuNSAwIDAgMC0uMDYtLjYzTDguNyA4bDEuNC0xLjQuMDYtLjA3YS41LjUgMCAwIDAtLjA2LS42M2wtLjA3LS4wNmEuNS41IDAgMCAwLS42My4wNkw4IDcuMyA2LjYgNS45bC0uMDctLjA2YS41LjUgMCAwIDAtLjYzLjA2Wk04IDJhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDUgMTMuMkE2IDYgMCAxIDAgOCAyWk0zIDhhNSA1IDAgMSAxIDIuMzMgNC4yMy41LjUgMCAwIDAtLjQzLS4wNmwtMS42Ni41Ni41MS0xLjc5YS41LjUgMCAwIDAtLjA1LS4zOUE0Ljk3IDQuOTcgMCAwIDEgMyA4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdERpc21pc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RGlzbWlzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDB2LjM1bC4wMy4zOGMuMSAxLjAxLjM4IDEuOTkuODMgMi44OWwuMDYuMTItLjkgMy42NC0uMDIuMDh2LjA4Yy4wMy4zLjMxLjUyLjYyLjQ1bDMuNjUtLjkxLjEyLjA2QTggOCAwIDAgMCAxOCAxMFpNNy44NSA3LjE1IDEwIDkuMjlsMi4xNS0yLjE0YS41LjUgMCAwIDEgLjcuN0wxMC43MSAxMGwyLjE0IDIuMTVhLjUuNSAwIDAgMS0uNy43TDEwIDEwLjcxbC0yLjE1IDIuMTRhLjUuNSAwIDAgMS0uNy0uN0w5LjI5IDEwIDcuMTUgNy44NWEuNS41IDAgMSAxIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdERpc21pc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdERpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03Ljg1IDcuMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTIuMTQgMi4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMi4xNSAyLjE0YS41LjUgMCAwIDAgLjctLjdMMTAuNzEgMTBsMi4xNC0yLjE1YS41LjUgMCAwIDAtLjctLjdMMTAgOS4yOSA3Ljg1IDcuMTVaTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNkE4IDggMCAwIDAgMTggMTBaTTMgMTBhNyA3IDAgMSAxIDMuNTggNi4xbC0uMDktLjAzLS4xLS4wMmEuNS41IDAgMCAwLS4xOCAwbC0zLjAyLjc2Ljc1LTMuMDIuMDItLjFhLjUuNSAwIDAgMC0uMDctLjI3QTYuOTcgNi45NyAwIDAgMSAzIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdERpc21pc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMTguODkgNC42bC0xLjA2IDMuODJhMS4yNSAxLjI1IDAgMCAwIDEuNTQgMS41NGwzLjgyLTEuMDdBMTAgMTAgMCAwIDAgMjIgMTJaTTkuMjggOC4yMiAxMiAxMC45NGwyLjcyLTIuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkwxMy4wNiAxMmwyLjcyIDIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwxMiAxMy4wNmwtMi43MiAyLjcyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTAuOTQgMTIgOC4yMiA5LjI4YS43NS43NSAwIDAgMSAxLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RGlzbWlzczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuMjggOC4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2TDEwLjk0IDEybC0yLjcyIDIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxMiAxMy4wNmwyLjcyIDIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMy4wNiAxMmwyLjcyLTIuNzJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwxMiAxMC45NCA5LjI4IDguMjJaTTIyIDEyYTEwIDEwIDAgMSAwLTE4Ljg5IDQuNmwtMS4wNiAzLjgyYTEuMjUgMS4yNSAwIDAgMCAxLjU0IDEuNTRsMy44Mi0xLjA3QTEwIDEwIDAgMCAwIDIyIDEyWk0zLjUgMTJhOC41IDguNSAwIDEgMSA0LjM3IDcuNDNsLS4yNy0uMTUtMy45OSAxLjExIDEuMTEtMy45OC0uMTUtLjI3QTguNDYgOC40NiAwIDAgMSAzLjUgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RW1wdHkxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYgMWE1IDUgMCAwIDAtNC4zOSA3LjRsLS41OSAxLjk1YS41LjUgMCAwIDAgLjYzLjYybDEuOTQtLjU5QTUgNSAwIDEgMCA2IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEVtcHR5MTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMSA2YTUgNSAwIDEgMSAyLjYgNC4zOGwtMS45NS42YS41LjUgMCAwIDEtLjYzLS42M2wuNi0xLjk1QTQuOTggNC45OCAwIDAgMSAxIDZabTUtNGE0IDQgMCAwIDAtMy40MiA2LjA4Yy4wOC4xMi4xLjI3LjA1LjRsLS4zOCAxLjI2IDEuMjYtLjM4YS41LjUgMCAwIDEgLjQuMDVBNCA0IDAgMSAwIDYgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRFbXB0eTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRFbXB0eTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAzIDUuMmwtMi4zNC43N2EuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAyIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEVtcHR5MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAzIDUuMmwtMi4zNC43N2EuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAyIDhabTYtNWE1IDUgMCAwIDAtNC4zIDcuNTUuNS41IDAgMCAxIC4wNS40bC0uNSAxLjc4IDEuNjUtLjU2YS41LjUgMCAwIDEgLjQzLjA2QTUgNSAwIDEgMCA4IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RW1wdHkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNkE4IDggMCAwIDAgMTggMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEVtcHR5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDEtMy42MSAxNS4xNGwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBhOCA4IDAgMCAxIDgtOFptMCAxYTcgNyAwIDAgMC02LjEgMTAuNDIuNS41IDAgMCAxIC4wNi4yOGwtLjAyLjEtLjc1IDMuMDEgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMTktLjAxbC4wOS4wMi4wOS4wNEE3IDcgMCAxIDAgMTAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRFbXB0eTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRFbXB0eTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMTguODYgNC42NWwtMS4xMSA0LjI5YS44NS44NSAwIDAgMCAxLjA0IDEuMDRsNC4yOS0xLjEyQTEwIDEwIDAgMCAwIDIyIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEVtcHR5MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRFbXB0eTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEtNC41OSAxOC44OUwzLjYgMjEuOTZhMS4yNSAxLjI1IDAgMCAxLTEuNTQtMS41NGwxLjA2LTMuODNBMTAgMTAgMCAwIDEgMTIgMlptMCAxLjVhOC41IDguNSAwIDAgMC03LjQzIDEyLjY0bC4xNS4yNy0xLjEgMy45OCAzLjk4LTEuMTEuMjcuMTVBOC41IDguNSAwIDEgMCAxMiAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RW1wdHkyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgMTRhMTIgMTIgMCAxIDEgNi4zNiAxMC42TDMuNiAyNS45NWMtLjk0LjI3LTEuOC0uNi0xLjU0LTEuNTRsMS4zNi00Ljc3QzIuNSAxNy45NiAyIDE2LjA0IDIgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEVtcHR5MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTQgMy41YTEwLjUgMTAuNSAwIDAgMC05LjE0IDE1LjY4Yy4xLjE3LjEzLjM4LjA3LjU3TDMuNjEgMjQuNGw0LjY0LTEuMzJjLjItLjA2LjQtLjAzLjU3LjA3QTEwLjUgMTAuNSAwIDEgMCAxNCAzLjVaTTIgMTRhMTIgMTIgMCAxIDEgNi4zNiAxMC42TDMuNiAyNS45NWMtLjk0LjI3LTEuOC0uNi0xLjU0LTEuNTRsMS4zNi00Ljc3QzIuNSAxNy45NiAyIDE2LjA0IDIgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0RW1wdHkzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RW1wdHkzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgMTZhMTQgMTQgMCAxIDEgNy40NCAxMi4zN2wtNS41MyAxLjU3YTEuNSAxLjUgMCAwIDEtMS44NS0xLjg1bDEuNTctNS41M0ExMy45NCAxMy45NCAwIDAgMSAyIDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEVtcHR5MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRFbXB0eTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE2IDRBMTIgMTIgMCAwIDAgNS41NyAyMS45NGExIDEgMCAwIDEgLjEuNzdsLTEuNDQgNS4wNiA1LjA2LTEuNDRhMSAxIDAgMCAxIC43Ny4xQTEyIDEyIDAgMSAwIDE2IDRaTTIgMTZhMTQgMTQgMCAxIDEgNy40NCAxMi4zN2wtNS41MyAxLjU3YTEuNSAxLjUgMCAwIDEtMS44NS0xLjg1bDEuNTctNS41M0ExMy45NCAxMy45NCAwIDAgMSAyIDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdEVtcHR5NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEVtcHR5NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00IDI0YTIwIDIwIDAgMSAxIDEwLjQ3IDE3LjU5bC04LjI0IDIuMzRhMS43NSAxLjc1IDAgMCAxLTIuMTYtMi4xNmwyLjM0LTguMjRBMTkuOTIgMTkuOTIgMCAwIDEgNCAyNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRFbXB0eTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0RW1wdHk0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCA2LjVBMTcuNSAxNy41IDAgMCAwIDguODQgMzIuNzRjLjE3LjMuMjEuNjUuMTIuOTdsLTIuMTIgNy40NCA3LjQ0LTIuMTFjLjMzLS4xLjY4LS4wNS45Ny4xMkExNy41IDE3LjUgMCAxIDAgMjQgNi41Wk00IDI0YTIwIDIwIDAgMSAxIDEwLjQ3IDE3LjU5bC04LjI0IDIuMzRhMS43NSAxLjc1IDAgMCAxLTIuMTYtMi4xNmwyLjM0LTguMjRBMTkuOTIgMTkuOTIgMCAwIDEgNCAyNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRIZWxwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdEhlbHAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDQuMjYgNy4wN0wyLjYyIDE4YS41LjUgMCAwIDEtLjYtLjYxbC45LTMuNjRBNy45NyA3Ljk3IDAgMCAxIDIgMTBabTcuMjUtMi43Yy4xNS0uMTcuMzktLjMuNzUtLjNzLjYuMTMuNzUuM2MuMTYuMi4yNS40NC4yNS43IDAgLjMyLS4wNy41Mi0uMTcuNjktLjEuMTctLjIzLjMtLjQyLjVsLS4wMi4wM2MtLjE5LjItLjQyLjQ0LS42Ljc4LS4xOC4zNS0uMjkuNzYtLjI5IDEuM2EuNS41IDAgMSAwIDEgMGMwLS40LjA4LS42NC4xOC0uODQuMS0uMi4yNC0uMzUuNDMtLjU1bC4wNC0uMDRjLjE3LS4xOC4zOC0uNC41NS0uNjguMTgtLjMyLjMtLjcuMy0xLjE5YTEuOTUgMS45NSAwIDAgMC0yLTIgMS45NSAxLjk1IDAgMCAwLTIgMiAuNS41IDAgMCAwIDEgMGMwLS4yNi4wOS0uNS4yNS0uN1ptMS40NSA2LjIxYS43LjcgMCAxIDAtMS40IDAgLjcuNyAwIDAgMCAxLjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRIZWxwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRIZWxwMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4yNSA3LjNjLS4xNi4yLS4yNS40NC0uMjUuN2EuNS41IDAgMCAxLTEgMCAxLjk1IDEuOTUgMCAwIDEgMi0yIDEuOTUgMS45NSAwIDAgMSAyIDJjMCAuNDktLjEyLjg3LS4zIDEuMTktLjE3LjI4LS4zOC41LS41NS42OGwtLjA0LjA0Yy0uMTkuMi0uMzMuMzUtLjQzLjU1LS4xLjItLjE4LjQ1LS4xOC44M2EuNS41IDAgMSAxLTEgMCAyLjcxIDIuNzEgMCAwIDEgLjg5LTIuMDdsLjAyLS4wMmMuMTktLjIuMzItLjM0LjQyLS41MS4xLS4xNy4xNy0uMzcuMTctLjY5IDAtLjI2LS4wOS0uNS0uMjUtLjdBLjk1Ljk1IDAgMCAwIDEwIDdjLS4zNiAwLS42LjEzLS43NS4zWm0uNzUgNi45MWEuNy43IDAgMSAwIDAtMS40LjcuNyAwIDAgMCAwIDEuNFpNMiAxMGE4IDggMCAxIDEgNC4yNiA3LjA3TDIuNjIgMThhLjUuNSAwIDAgMS0uNi0uNjFsLjktMy42NEE3Ljk3IDcuOTcgMCAwIDEgMiAxMFptOC03YTcgNyAwIDAgMC02LjEgMTAuNDIuNS41IDAgMCAxIC4wNC4zN2wtLjc1IDMuMDIgMy4wMi0uNzVhLjUuNSAwIDAgMSAuMzcuMDVBNyA3IDAgMSAwIDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0SGVscDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRIZWxwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxLTQuNjQgMTguODZsLTQuMyAxLjEyYS44NS44NSAwIDAgMS0xLjAzLTEuMDRsMS4xMS00LjI5QTEwIDEwIDAgMCAxIDEyIDJabTAgMTMuNWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTAtOC43NUEyLjc1IDIuNzUgMCAwIDAgOS4yNSA5LjVhLjc1Ljc1IDAgMCAwIDEuNS4xdi0uMjNhMS4yNSAxLjI1IDAgMCAxIDIuNS4xM2MwIC41NC0uMTMuOC0uNjQgMS4zM2wtLjMuMzFjLS43Ni43OS0xLjA2IDEuMzUtMS4wNiAyLjM2YS43NS43NSAwIDAgMCAxLjUgMGMwLS41NC4xMy0uOC42NC0xLjMzbC4zLS4zMWMuNzYtLjc5IDEuMDYtMS4zNSAxLjA2LTIuMzZBMi43NSAyLjc1IDAgMCAwIDEyIDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0SGVscDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0SGVscDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEtNC41OSAxOC44OUwzLjYgMjEuOTZhMS4yNSAxLjI1IDAgMCAxLTEuNTQtMS41NGwxLjA2LTMuODNBMTAgMTAgMCAwIDEgMTIgMlptMCAxLjVhOC41IDguNSAwIDAgMC03LjQzIDEyLjY0bC4xNS4yNy0xLjEgMy45OCAzLjk4LTEuMTEuMjcuMTVBOC41IDguNSAwIDEgMCAxMiAzLjVabTAgMTJhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0wLTguNzVhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NWMwIDEuMDEtLjMgMS41Ny0xLjA1IDIuMzZsLS4xNy4xN2MtLjYyLjYyLS43OC44OS0uNzggMS40N2EuNzUuNzUgMCAwIDEtMS41IDBjMC0xLjAxLjMtMS41NyAxLjA1LTIuMzZsLjE3LS4xN2MuNjItLjYyLjc4LS44OS43OC0xLjQ3YTEuMjUgMS4yNSAwIDAgMC0yLjUtLjEzdi4xM2EuNzUuNzUgMCAwIDEtMS41IDBBMi43NSAyLjc1IDAgMCAxIDEyIDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TG9jazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRMb2NrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDQgMTIuMmMuODguNTIgMS45LjgxIDMgLjgxdi0zYTIgMiAwIDAgMSAxLjUtMS45NFY4YTMgMyAwIDAgMSA0LjI1LTIuNzNBNiA2IDAgMCAwIDcgMVptMi41IDhWOGEyIDIgMCAxIDEgNCAwdjFoLjVhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoLjVabTEtMXYxaDJWOGExIDEgMCAxIDAtMiAwWm0xLjc1IDRhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRMb2NrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRMb2NrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNyAxMmMtLjk4IDAtMS45LS4yOC0yLjY3LS43N2EuNS41IDAgMCAwLS40My0uMDZsLTEuNjYuNTYuNTEtMS43OWEuNS41IDAgMCAwLS4wNS0uMzlBNSA1IDAgMSAxIDExLjU5IDVjLjQuMDEuOC4xIDEuMTYuMjdhNiA2IDAgMSAwLTExLjAyIDQuNmwtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDQgMTIuMmMuODguNTIgMS45LjgxIDMgLjgxdi0xWm0yLjUtNHYxSDlhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41VjhhMiAyIDAgMSAwLTQgMFptMSAxVjhhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdExvY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggMTBhOCA4IDAgMSAwLTE2IDB2LjM1bC4wMy4zOGMuMSAxLjAxLjM4IDEuOTkuODMgMi44OWwuMDYuMTItLjkgMy42NC0uMDIuMDh2LjA4Yy4wMy4zLjMxLjUyLjYyLjQ1bDMuNjUtLjkxLjEyLjA2YTcuOTcgNy45NyAwIDAgMCA0LjYxLjhWMTRhMiAyIDAgMCAxIDEuNS0xLjk0VjEyYTMgMyAwIDAgMSA1LjUtMS42N1YxMFptLTQuNSAydjFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TG9jazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TG9jazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNmE3Ljk3IDcuOTcgMCAwIDAgNC42MS44di0xLjAxYTcuMDYgNy4wNiAwIDAgMS00LjQyLS44MmwtLjA5LS4wNC0uMS0uMDJhLjUuNSAwIDAgMC0uMTggMGwtMy4wMi43Ni43NS0zLjAyLjAyLS4xYS41LjUgMCAwIDAtLjA3LS4yNyA3IDcgMCAxIDEgMTMuMDgtNC4wNGMuNDEuMjQuNzYuNTYgMS4wMi45NUwxOCAxMFptLTQuNSAydjFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TG9jazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRMb2NrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiAxMmExMCAxMCAwIDEgMC0xOC44NiA0LjY1bC0xLjExIDQuMjlhLjg1Ljg1IDAgMCAwIDEuMDQgMS4wNGw0LjI5LTEuMTJhOS45NiA5Ljk2IDAgMCAwIDUuNjggMS4wOSAyLjUgMi41IDAgMCAxLS4wNC0uNDV2LTVhMi41IDIuNSAwIDAgMSAyLTIuNDVWMTRhMy41IDMuNSAwIDAgMSA2LjkyLS43NGMuMDUtLjQxLjA4LS44My4wOC0xLjI2Wm0tNiAzaC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVIMjF2LTFhMi41IDIuNSAwIDAgMC01IDB2MVptMS41LTFhMSAxIDAgMSAxIDIgMHYxaC0ydi0xWm0yIDVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdExvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdExvY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMiAxMmExMCAxMCAwIDEgMC0xOC44OSA0LjZsLTEuMDYgMy44MmExLjI1IDEuMjUgMCAwIDAgMS41NCAxLjU0bDMuODItMS4wN2E5Ljk2IDkuOTYgMCAwIDAgNS42MyAxLjA2IDIuNSAyLjUgMCAwIDEtLjA0LS40NXYtMS4wNmE4LjYgOC42IDAgMCAxLTUuMTMtMS4wMWwtLjI3LS4xNS0zLjk5IDEuMTEgMS4xMS0zLjk4LS4xNS0uMjdhOC41IDguNSAwIDEgMSAxNS44OC01LjA0IDMuNSAzLjUgMCAwIDEgMS40NyAyLjE2Yy4wNS0uNDEuMDgtLjgzLjA4LTEuMjZabS02IDNoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgyMXYtMWEyLjUgMi41IDAgMCAwLTUgMHYxWm0xLjUtMWExIDEgMCAxIDEgMiAwdjFoLTJ2LTFabTIgNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TG9jazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRMb2NrMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAyQTEyIDEyIDAgMCAwIDMuNCAxOS42NGwtMS4zNSA0Ljc3Yy0uMjcuOTQuNiAxLjgxIDEuNTQgMS41NGw0Ljc3LTEuMzVhMTEuOTUgMTEuOTUgMCAwIDAgNi44IDEuMzVBMyAzIDAgMCAxIDE1IDI1di01YTMgMyAwIDAgMSAyLjUtMi45NlYxN2E0IDQgMCAwIDEgOCAwdi4wNGwuMS4wMkExMi4wMiAxMi4wMiAwIDAgMCAxNCAyWm00LjUgMTZIMThhMiAyIDAgMCAwLTIgMnY1YzAgMS4xLjkgMiAyIDJoN2EyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC0yLTJoLS41di0xYTMgMyAwIDEgMC02IDB2MVptMS41LTFhMS41IDEuNSAwIDAgMSAzIDB2MWgtM3YtMVptMyA1LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TG9jazI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TG9jazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDI0LjVjLTEuNzggMC0zLjQ2LS40NC00LjkzLTEuMjNhMS41IDEuNSAwIDAgMC0xLjEyLS4xMkwzLjYxIDI0LjRsMS4yNC00LjM0Yy4xLS4zNy4wNi0uNzctLjEyLTEuMTJhMTAuNSAxMC41IDAgMSAxIDE5Ljc3LTQuNTljLjYyLjcxIDEgMS42NCAxIDIuNjZ2LjA0bC4xLjAyQTEyLjAyIDEyLjAyIDAgMCAwIDE0IDIgMTIgMTIgMCAwIDAgMy40IDE5LjY0bC0xLjM1IDQuNzdjLS4yNy45NC42IDEuODEgMS41NCAxLjU0bDQuNzctMS4zNWExMS45NSAxMS45NSAwIDAgMCA2LjggMS4zNUEzIDMgMCAwIDEgMTUgMjV2LS41NWMtLjMzLjAzLS42Ni4wNS0xIC4wNVptNC41LTYuNUgxOGEyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMmgtLjV2LTFhMyAzIDAgMSAwLTYgMHYxWm0xLjUtMWExLjUgMS41IDAgMCAxIDMgMHYxaC0zdi0xWm0zIDUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNYWlsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE1haWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgN2E2IDYgMCAxIDEgMyA1LjJsLTIuMzQuNzdhLjUuNSAwIDAgMS0uNjQtLjZsLjcxLTIuNUE1Ljk4IDUuOTggMCAwIDEgMiA3Wm00LjUtMS41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTIgMmgtMmEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xWlwiLCBcIm0xMi4yOCAxNC45NS0yLjQtMS4yYy40My0uMTMuODYtLjI5IDEuMjYtLjVsMS4zNi43IDQuNS0yLjI2VjExYTEgMSAwIDAgMC0xLTFoLTEuNjdjLjE1LS4zMi4yOC0uNjUuMzgtMUgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJ2LTIuMDdjLjMzLjA1LjY2LjA3IDEgLjA3djJhMSAxIDAgMCAwIDEgMWg3YTEgMSAwIDAgMCAxLTF2LTMuMmwtNC4yOCAyLjE1YS41LjUgMCAwIDEtLjQ0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TWFpbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TWFpbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgNmMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNBLjUuNSAwIDAgMSA2IDZabS41IDEuNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk04IDFhNiA2IDAgMCAwLTUuMjcgOC44N2wtLjcxIDIuNWEuNS41IDAgMCAwIC42NC42TDUgMTIuMkE2IDYgMCAxIDAgOCAxWk0zIDdhNSA1IDAgMSAxIDIuMzMgNC4yMy41LjUgMCAwIDAtLjQzLS4wNmwtMS42Ni41Ni41MS0xLjc5YS41LjUgMCAwIDAtLjA1LS4zOUE0Ljk3IDQuOTcgMCAwIDEgMyA3Wm05LjI4IDcuOTUtMi40LTEuMmMuNDMtLjEzLjg2LS4yOSAxLjI2LS41bDEuMzYuNyA0LjUtMi4yNlYxMWExIDEgMCAwIDAtMS0xaC0xLjY3Yy4xNS0uMzIuMjgtLjY1LjM4LTFIMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0ydi0yLjA3Yy4zMy4wNS42Ni4wNyAxIC4wN3YyYTEgMSAwIDAgMCAxIDFoN2ExIDEgMCAwIDAgMS0xdi0zLjJsLTQuMjggMi4xNWEuNS41IDAgMCAxLS40NCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01Ljg2IDEyLjlhNC45OCA0Ljk4IDAgMCAwIDUuMjUuNjNsMi4zLjQ2YS41LjUgMCAwIDAgLjU4LS41OWwtLjQ2LTIuMjlhNC45OCA0Ljk4IDAgMCAwLS42NC01LjI1IDYuMDQgNi4wNCAwIDAgMSAwIDIuMjQgNC4wMSA0LjAxIDAgMCAxLS4zMyAyLjcyLjUuNSAwIDAgMC0uMDQuMzJsLjM0IDEuNzItMS43Mi0uMzRhLjUuNSAwIDAgMC0uMzIuMDQgMy45OCAzLjk4IDAgMCAxLTIuNzIuMzQgNi4wMyA2LjAzIDAgMCAxLTIuMjQgMFpNNyAyYTUgNSAwIDAgMC00LjUzIDcuMTFMMiAxMS40MWEuNS41IDAgMCAwIC41OS41OGwyLjI5LS40NkE0Ljk4IDQuOTggMCAwIDAgMTIgN2E1IDUgMCAwIDAtNS01WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNdWx0aXBsZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcgMmE1IDUgMCAwIDAtNC41MyA3LjExTDIgMTEuNDFhLjUuNSAwIDAgMCAuNTkuNThsMi4yOS0uNDZBNC45OCA0Ljk4IDAgMCAwIDEyIDdhNSA1IDAgMCAwLTUtNVpNMyA3YTQgNCAwIDEgMSAyLjE4IDMuNTYuNS41IDAgMCAwLS4zMi0uMDRsLTEuNzIuMzQuMzQtMS43MmEuNS41IDAgMCAwLS4wNC0uMzJBMy45OCAzLjk4IDAgMCAxIDMgN1ptNiA3YTQuOTggNC45OCAwIDAgMS0zLjE0LTEuMSA2LjAyIDYuMDIgMCAwIDAgMi4yNCAwIDQgNCAwIDAgMCAyLjcyLS4zNC41LjUgMCAwIDEgLjMyLS4wNGwxLjcyLjM0LS4zNC0xLjcyYS41LjUgMCAwIDEgLjA0LS4zMiAzLjk4IDMuOTggMCAwIDAgLjM0LTIuNzIgNi4wMyA2LjAzIDAgMCAwIDAtMi4yNCA0Ljk4IDQuOTggMCAwIDEgLjYzIDUuMjVsLjQ2IDIuM2EuNS41IDAgMCAxLS41OS41OGwtMi4yOS0uNDZjLS42NC4zLTEuMzYuNDctMi4xMS40N1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC41NCAyYTYuNSA2LjUgMCAwIDAtNS42OCA5LjY3bC0uOCAyLjA4YTEgMSAwIDAgMCAxLjIxIDEuMzJsMi40OS0uN0E2LjUgNi41IDAgMSAwIDguNTQgMlpNNi41NyAxNS43NGE2LjQ5IDYuNDkgMCAwIDAgNy43MSAxLjY0bDIuNDkuN2ExIDEgMCAwIDAgMS4yLTEuMzNsLS44LTIuMDhhNi40NyA2LjQ3IDAgMCAwLTEuMzctOC4wNGMuMTUuNTYuMjMgMS4xNS4yNCAxLjc2YTUuNDcgNS40NyAwIDAgMSAuMTYgNS45OGwtLjEzLjIuOTcgMi41NC0yLjg2LS44LS4xOC4wOWE1LjQ3IDUuNDcgMCAwIDEtNS42Ny0uNCA3LjUgNy41IDAgMCAxLTEuNzYtLjI2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNdWx0aXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNTQgMmE2LjUgNi41IDAgMCAwLTUuNjggOS42N2wtLjggMi4wOGExIDEgMCAwIDAgMS4yMSAxLjMybDIuNDktLjdBNi41IDYuNSAwIDEgMCA4LjU0IDJabS01LjUgNi41YTUuNSA1LjUgMCAxIDEgMyA0LjlsLS4xOC0uMDktMi44Ni44Ljk3LTIuNTMtLjEzLS4yMWE1LjQ3IDUuNDcgMCAwIDEtLjgtMi44N1pNMTEuNSAxOGE2LjQ5IDYuNDkgMCAwIDEtNC45My0yLjI2IDcuNSA3LjUgMCAwIDAgMS43Ni4yNiA1LjQ3IDUuNDcgMCAwIDAgNS42Ny40bC4xOC0uMDkgMi44Ni44LS45Ny0yLjUzLjEzLS4yMWE1LjQ3IDUuNDcgMCAwIDAtLjE2LTUuOThjLS4wMS0uNi0uMS0xLjItLjI0LTEuNzZhNi40OCA2LjQ4IDAgMCAxIDEuMzggOC4wNGwuOCAyLjA4YTEgMSAwIDAgMS0xLjIxIDEuMzJsLTIuNDktLjdjLS44NC40LTEuNzkuNjMtMi43OC42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNdWx0aXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOS41IDNhNy41IDcuNSAwIDAgMC02LjggMTAuNjcgNjguMSA2OC4xIDAgMCAwLS42OCAzLjE1IDEgMSAwIDAgMCAxLjE1IDEuMTdjLjYzLS4xMSAxLjk4LS4zNiAzLjI0LS42NUE3LjUgNy41IDAgMSAwIDkuNSAzWm0tLjA0IDE2YTcuNDcgNy40NyAwIDAgMCA4LjE5IDEuMzRjMS4wNC4yNCAyLjE5LjQ4IDIuOTEuNjQuOS4xOCAxLjY3LS42MiAxLjQ3LTEuNS0uMTYtLjctLjQyLTEuOC0uNjctMi44YTcuNSA3LjUgMCAwIDAtNC4zNC0xMC4yNmMuMzUuNjMuNjIgMS4zMS44IDIuMDRhNiA2IDAgMCAxIDIuMDggNy43OWwtLjEzLjI1LjA3LjI4Yy4yMy45LjQ2IDEuOS42NCAyLjY1bC0yLjc0LS42MS0uMjYtLjA3LS4yNS4xM2E1Ljk3IDUuOTcgMCAwIDEtNS41OS0uMTQgOC41MiA4LjUyIDAgMCAxLTIuMTguMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOS41NiAzYTcuNSA3LjUgMCAwIDAtNi44IDEwLjY3bC0uNzIgMi44NGMtLjIzLjkyLjU5IDEuNzUgMS41IDEuNTNsMi45My0uN0E3LjUgNy41IDAgMSAwIDkuNTYgM1ptLTYgNy41YTYgNiAwIDEgMSAzLjMzIDUuMzdsLS4yNC0uMTItLjI3LjA3LTIuNzguNjYuNjktMi43LjA3LS4yOC0uMTMtLjI1YTUuOTcgNS45NyAwIDAgMS0uNjctMi43NVptMTEgMTAuNWE3LjQ3IDcuNDcgMCAwIDEtNS4xLTIgOC4yOCA4LjI4IDAgMCAwIDIuMTgtLjI2IDUuOTcgNS45NyAwIDAgMCA1LjYuMTNsLjI0LS4xMi4yNi4wN2MuOTIuMjIgMS45Ni40NCAyLjc0LjYtLjE4LS43NC0uNDEtMS43NS0uNjQtMi42NGwtLjA3LS4yOC4xMy0uMjVhNS45NyA1Ljk3IDAgMCAwLTIuMDktNy44IDguNDQgOC40NCAwIDAgMC0uOC0yLjA0IDcuNSA3LjUgMCAwIDEgNC4zNSAxMC4yNmwuNjcgMi44Yy4yLjktLjU3IDEuNy0xLjQ3IDEuNS0uNzItLjE1LTEuODctLjM5LTIuOTEtLjYzLS45NC40Mi0xLjk5LjY2LTMuMDkuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTExIDNhOSA5IDAgMCAwLTguMDUgMTMuMDNsLS45IDMuNGMtLjI2LjkyLjYgMS43NyAxLjUyIDEuNTJsMy40LS45QTkgOSAwIDEgMCAxMSAzWm02IDIyYTguOTggOC45OCAwIDAgMS02LjczLTMuMDMgMTAuMDggMTAuMDggMCAwIDAgMi4xLS4wNiA3LjQ3IDcuNDcgMCAwIDAgOC4yMi42OGMuMTctLjEuMzctLjEyLjU1LS4wN2wzLjI1Ljg3LS44Ny0zLjI1YS43NS43NSAwIDAgMSAuMDctLjU1IDcuNSA3LjUgMCAwIDAtMi45MS0xMC4xMiA5LjkzIDkuOTMgMCAwIDAtLjc1LTEuOTggOSA5IDAgMCAxIDUuMTIgMTIuNTRsLjkgMy40Yy4yNS45Mi0uNiAxLjc3LTEuNTIgMS41MmwtMy40LS45QTguOTcgOC45NyAwIDAgMSAxNyAyNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgMTJhNy41IDcuNSAwIDEgMSAzLjkgNi41OS43NS43NSAwIDAgMC0uNTQtLjA3bC0zLjI2Ljg3Ljg4LTMuMjVhLjc1Ljc1IDAgMCAwLS4wNy0uNTVBNy40NiA3LjQ2IDAgMCAxIDMuNSAxMlpNMTEgM2E5IDkgMCAwIDAtOC4wNSAxMy4wM2wtLjkgMy40Yy0uMjYuOTIuNiAxLjc3IDEuNTIgMS41MmwzLjQtLjlBOSA5IDAgMSAwIDExIDNabTYgMjJhOC45OCA4Ljk4IDAgMCAxLTYuNzMtMy4wMyAxMC4wOCAxMC4wOCAwIDAgMCAyLjEtLjA2IDcuNDcgNy40NyAwIDAgMCA4LjIyLjY4Yy4xNy0uMS4zNy0uMTIuNTUtLjA3bDMuMjUuODctLjg3LTMuMjVhLjc1Ljc1IDAgMCAxIC4wNy0uNTUgNy41IDcuNSAwIDAgMC0yLjkxLTEwLjEyIDkuOTMgOS45MyAwIDAgMC0uNzUtMS45OCA5IDkgMCAwIDEgNS4xMiAxMi41NGwuOSAzLjRjLjI1LjkyLS42IDEuNzctMS41MiAxLjUybC0zLjQtLjlBOC45NyA4Ljk3IDAgMCAxIDE3IDI1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDEzLjVhMTAuNSAxMC41IDAgMSAxIDUuOCA5LjRMMy45IDIzLjkzYTEuNSAxLjUgMCAwIDEtMS44NC0xLjgzbDEuMDUtMy45MkExMC40MyAxMC40MyAwIDAgMSAyIDEzLjVabTEwLjUgMTJjLjY3IDAgMS4zMi0uMDUgMS45NS0uMTZhOC40NiA4LjQ2IDAgMCAwIDkuMTQuNjEgMSAxIDAgMCAxIC43NS0uMDlsMy40NS45My0uOTMtMy40NmExIDEgMCAwIDEgLjEtLjc0IDguNSA4LjUgMCAwIDAtMi42Mi0xMS4wOGMtLjE2LS45NC0uNDMtMS44NS0uOC0yLjdhMTAuNSAxMC41IDAgMCAxIDUuMzYgMTQuMzhsMS4wNSAzLjkyYTEuNSAxLjUgMCAwIDEtMS44NCAxLjgzTDI0LjIgMjcuOWExMC40NiAxMC40NiAwIDAgMS0xMi41NS0yLjQyYy4yOC4wMi41Ni4wMy44NS4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yIDEzLjVhMTAuNSAxMC41IDAgMSAxIDUuOCA5LjRMMy45IDIzLjkzYTEuNSAxLjUgMCAwIDEtMS44NC0xLjgzbDEuMDUtMy45MkExMC40MyAxMC40MyAwIDAgMSAyIDEzLjVabTIgMGMwIDEuNDguMzggMi44OCAxLjA1IDQuMDlhMSAxIDAgMCAxIC4wOS43NGwtLjkzIDMuNDYgMy40NS0uOTNhMSAxIDAgMCAxIC43NS4xQTguNSA4LjUgMCAxIDAgNCAxMy41Wm04LjUgMTJjLjY3IDAgMS4zMi0uMDUgMS45NS0uMTZhOC40NiA4LjQ2IDAgMCAwIDkuMTQuNjEgMSAxIDAgMCAxIC43NS0uMDlsMy40NS45My0uOTMtMy40NmExIDEgMCAwIDEgLjEtLjc0IDguNSA4LjUgMCAwIDAtMi42Mi0xMS4wOGMtLjE2LS45NC0uNDMtMS44NS0uOC0yLjdhMTAuNSAxMC41IDAgMCAxIDUuMzYgMTQuMzhsMS4wNSAzLjkyYTEuNSAxLjUgMCAwIDEtMS44NCAxLjgzTDI0LjIgMjcuOWExMC40NiAxMC40NiAwIDAgMS0xMi41NS0yLjQyYy4yOC4wMi41Ni4wMy44NS4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZUhlYXJ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlSGVhcnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMTRhNC45OCA0Ljk4IDAgMCAxLTMuMTQtMS4xIDYuMDIgNi4wMiAwIDAgMCAyLjI0IDAgNCA0IDAgMCAwIDIuNzItLjM0LjUuNSAwIDAgMSAuMzItLjA0bDEuNzIuMzQtLjM0LTEuNzJhLjUuNSAwIDAgMSAuMDQtLjMyIDMuOTggMy45OCAwIDAgMCAuMzQtMi43MiA2LjA0IDYuMDQgMCAwIDAgMC0yLjI0IDQuOTggNC45OCAwIDAgMSAuNjMgNS4yNWwuNDYgMi4zYS41LjUgMCAwIDEtLjU5LjU4bC0yLjI5LS40NmMtLjY0LjMtMS4zNi40Ny0yLjExLjQ3Wk0yIDdhNSA1IDAgMSAxIDIuODkgNC41M2wtMi4zLjQ2YS41LjUgMCAwIDEtLjU4LS41OWwuNDYtMi4yOUE0Ljk4IDQuOTggMCAwIDEgMiA3Wm0yLjktMS42YTEuMzUgMS4zNSAwIDAgMCAwIDEuOWwxLjk2IDEuOTdhLjIuMiAwIDAgMCAuMyAwTDkuMSA3LjMyQTEuMzUgMS4zNSAwIDAgMCA3LjE5IDUuNGwtLjIuMTktLjE4LS4yYTEuMzUgMS4zNSAwIDAgMC0xLjkyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGVIZWFydDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVIZWFydDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuOSA1LjRhMS4zNSAxLjM1IDAgMCAxIDEuOSAwbC4yLjE5LjE4LS4xOWExLjM2IDEuMzYgMCAwIDEgMS45MyAxLjkyTDcuMTUgOS4yN2EuMi4yIDAgMCAxLS4yOSAwTDQuOSA3LjMxYTEuMzUgMS4zNSAwIDAgMSAwLTEuOTJaTTIgN2E1IDUgMCAxIDEgMi44OSA0LjUzbC0yLjMuNDZhLjUuNSAwIDAgMS0uNTgtLjU5bC40Ni0yLjI5QTQuOTggNC45OCAwIDAgMSAyIDdabTUtNGE0IDQgMCAwIDAtMy41NiA1LjgyYy4wNS4xLjA2LjIxLjA0LjMybC0uMzQgMS43MiAxLjcyLS4zNGEuNS41IDAgMCAxIC4zMi4wNEE0IDQgMCAxIDAgNyAzWm0tMS4xNCA5LjlhNC45OCA0Ljk4IDAgMCAwIDUuMjUuNjNsMi4zLjQ2YS41LjUgMCAwIDAgLjU4LS41OWwtLjQ2LTIuMjlhNC45OCA0Ljk4IDAgMCAwLS42NC01LjI1IDYuMDMgNi4wMyAwIDAgMSAwIDIuMjQgNC4wMSA0LjAxIDAgMCAxLS4zMyAyLjcyLjUuNSAwIDAgMC0uMDQuMzJsLjM0IDEuNzItMS43Mi0uMzRhLjUuNSAwIDAgMC0uMzIuMDQgMy45OCAzLjk4IDAgMCAxLTIuNzIuMzQgNi4wMyA2LjAzIDAgMCAxLTIuMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZUhlYXJ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlSGVhcnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuMDQgOC41YTYuNSA2LjUgMCAxIDEgMy43MiA1Ljg4bC0yLjQ5LjdhMSAxIDAgMCAxLTEuMi0xLjMzbC44LTIuMDhhNi40NyA2LjQ3IDAgMCAxLS44My0zLjE3Wm0zLjUxLTIuMDFhMS45IDEuOSAwIDAgMCAwIDIuNjhMOC4zIDExLjljLjEyLjEyLjMuMTIuNDIgMGwyLjczLTIuNzNhMS45IDEuOSAwIDAgMC0yLjctMi42OWwtLjI1LjI3LS4yNy0uMjdhMS45IDEuOSAwIDAgMC0yLjY4IDBaTTExLjUgMThhNi40OSA2LjQ5IDAgMCAxLTQuOTMtMi4yNiA3LjUgNy41IDAgMCAwIDEuNzYuMjYgNS40NyA1LjQ3IDAgMCAwIDUuNjcuNGwuMTgtLjA5IDIuODYuOC0uOTctMi41My4xMy0uMjFhNS40NyA1LjQ3IDAgMCAwLS4xNi01Ljk4Yy0uMDEtLjYtLjEtMS4yLS4yNC0xLjc2YTYuNDggNi40OCAwIDAgMSAxLjM4IDguMDRsLjggMi4wOGExIDEgMCAwIDEtMS4yMSAxLjMybC0yLjQ5LS43Yy0uODQuNC0xLjc5LjYzLTIuNzguNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGVIZWFydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVIZWFydDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNTUgNi40OWExLjkgMS45IDAgMCAxIDIuNjggMGwuMjcuMjcuMjYtLjI2YTEuOSAxLjkgMCAwIDEgMi42OSAyLjY4bC0yLjczIDIuNzNhLjMuMyAwIDAgMS0uNDIgMEw1LjU2IDkuMTdhMS45IDEuOSAwIDAgMSAwLTIuNjhaTTIuMDQgOC41YTYuNSA2LjUgMCAxIDEgMy43MiA1Ljg4bC0yLjQ5LjdhMSAxIDAgMCAxLTEuMi0xLjMzbC44LTIuMDhhNi40NyA2LjQ3IDAgMCAxLS44My0zLjE3Wk04LjU0IDNhNS41IDUuNSAwIDAgMC00LjcgOC4zN2wuMTMuMkwzIDE0LjEybDIuODYtLjguMTguMDlBNS41IDUuNSAwIDEgMCA4LjU0IDNaTTYuNTcgMTUuNzRhNi40OSA2LjQ5IDAgMCAwIDcuNzEgMS42NGwyLjQ5LjdhMSAxIDAgMCAwIDEuMi0xLjMzbC0uOC0yLjA4YTYuNDcgNi40NyAwIDAgMC0xLjM3LTguMDRjLjE1LjU2LjIzIDEuMTUuMjQgMS43NmE1LjQ3IDUuNDcgMCAwIDEgLjE2IDUuOThsLS4xMy4yLjk3IDIuNTQtMi44Ni0uOC0uMTguMDlhNS40NyA1LjQ3IDAgMCAxLTUuNjctLjQgNy41IDcuNSAwIDAgMS0xLjc2LS4yNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRNdWx0aXBsZUhlYXJ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlSGVhcnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgMTAuNWE3LjUgNy41IDAgMSAxIDQuNDEgNi44NGMtMS4yNi4yOS0yLjYxLjU0LTMuMjQuNjVhMSAxIDAgMCAxLTEuMTUtMS4xN2MuMTItLjYxLjM4LTEuOTIuNjgtMy4xNUE3LjQ3IDcuNDcgMCAwIDEgMiAxMC41Wm00LjM0LTIuMTZjLS43OS44LS43OSAyLjA4IDAgMi44N2wyLjk1IDIuOTVjLjEyLjEyLjMyLjEyLjQ0IDBsMi45My0yLjkzYTIuMDMgMi4wMyAwIDAgMC0yLjg4LTIuODhsLS4yOC4yOC0uMjktLjI4Yy0uOC0uOC0yLjA4LS44LTIuODcgMFpNMTQuNTYgMjFhNy40NyA3LjQ3IDAgMCAxLTUuMS0yIDguMjggOC4yOCAwIDAgMCAyLjE4LS4yNiA1Ljk3IDUuOTcgMCAwIDAgNS42LjE0bC4yNC0uMTMuMjYuMDdjLjkyLjIyIDEuOTYuNDQgMi43NC42LS4xOC0uNzQtLjQxLTEuNzUtLjY0LTIuNjRsLS4wNy0uMjguMTMtLjI1YTUuOTcgNS45NyAwIDAgMC0yLjA5LTcuOCA4LjQ0IDguNDQgMCAwIDAtLjgtMi4wNCA3LjUgNy41IDAgMCAxIDQuMzUgMTAuMjZsLjY3IDIuOGMuMi45LS41NyAxLjctMS40NyAxLjUtLjcyLS4xNS0xLjg3LS4zOS0yLjkxLS42My0uOTQuNDItMS45OS42Ni0zLjA5LjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlSGVhcnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE11bHRpcGxlSGVhcnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjM0IDguMzRjLjgtLjc5IDIuMDgtLjc5IDIuODcgMGwuMjkuMy4yOC0uMjlhMi4wMyAyLjAzIDAgMCAxIDIuODggMi44OGwtMi45MyAyLjkzYS4zMS4zMSAwIDAgMS0uNDQgMEw2LjM1IDExLjJjLS44LS44LS44LTIuMDggMC0yLjg3Wk0yLjA2IDEwLjVhNy41IDcuNSAwIDEgMSA0LjQxIDYuODRsLTIuOTMuN2ExLjI1IDEuMjUgMCAwIDEtMS41LTEuNTNsLjcyLTIuODRhNy40NyA3LjQ3IDAgMCAxLS43LTMuMTdabTcuNS02YTYgNiAwIDAgMC01LjMzIDguNzVsLjEzLjI1LS4wNy4yOC0uNyAyLjcgMi44LS42Ni4yNi0uMDcuMjQuMTJBNiA2IDAgMSAwIDkuNTYgNC41Wk05LjQ2IDE5YTcuNDcgNy40NyAwIDAgMCA4LjE5IDEuMzRjMS4wNC4yNCAyLjE5LjQ4IDIuOTEuNjQuOS4xOCAxLjY3LS42MiAxLjQ3LTEuNS0uMTYtLjctLjQyLTEuOC0uNjctMi44YTcuNSA3LjUgMCAwIDAtNC4zNC0xMC4yNmMuMzUuNjMuNjIgMS4zMS44IDIuMDRhNiA2IDAgMCAxIDIuMDggNy43OWwtLjEzLjI1LjA3LjI4Yy4yMy45LjQ2IDEuOS42NCAyLjY1bC0yLjc0LS42MS0uMjYtLjA3LS4yNS4xMmE1Ljk3IDUuOTcgMCAwIDEtNS41OS0uMTMgOC41MiA4LjUyIDAgMCAxLTIuMTguMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGVIZWFydDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRNdWx0aXBsZUhlYXJ0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDEyYTkgOSAwIDEgMSA0Ljk2IDguMDRsLTMuMzkuOTFjLS45Mi4yNS0xLjc4LS42LTEuNTMtMS41M2wuOTEtMy4zOUE4Ljk3IDguOTcgMCAwIDEgMiAxMlptNC43OS0zLjJhMi43NSAyLjc1IDAgMCAwIDAgMy44NmwzLjkzIDMuOTdjLjE2LjE2LjQzLjE2LjU5IDBsMy45LTMuOTRhMi43NiAyLjc2IDAgMCAwIDAtMy44NyAyLjcgMi43IDAgMCAwLTMuODQtLjAxbC0uMzcuMzgtLjM4LS4zOGEyLjY5IDIuNjkgMCAwIDAtMy44My0uMDFabTMuNDggMTMuMTdhOC45OCA4Ljk4IDAgMCAwIDEwLjc3IDIuMDdsMy4zOS45MWMuOTIuMjUgMS43Ny0uNiAxLjUzLTEuNTNsLS45MS0zLjM5YTkgOSAwIDAgMC01LjEyLTEyLjU1Yy4zMS42My41NiAxLjMuNzQgMS45OGE3LjUgNy41IDAgMCAxIDIuOTIgMTAuMTMuNzUuNzUgMCAwIDAtLjA3LjU1bC44OCAzLjI1LTMuMjYtLjg3YS43NS43NSAwIDAgMC0uNTUuMDcgNy40NiA3LjQ2IDAgMCAxLTguMjEtLjY4IDEwLjA5IDEwLjA5IDAgMCAxLTIuMTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGVIZWFydDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVIZWFydDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNzkgOC44YTIuNjkgMi42OSAwIDAgMSAzLjgzIDBsLjM4LjM5LjM3LS4zOGEyLjcgMi43IDAgMCAxIDMuODMuMDEgMi43NiAyLjc2IDAgMCAxIC4wMSAzLjg3bC0zLjkgMy45NGEuNDEuNDEgMCAwIDEtLjU5IDBMNi44IDEyLjY2YTIuNzUgMi43NSAwIDAgMS0uMDEtMy44NlpNMiAxMmMwIDEuNDUuMzQgMi44Mi45NSA0LjAzbC0uOSAzLjRjLS4yNi45Mi42IDEuNzcgMS41MiAxLjUybDMuNC0uOUE5IDkgMCAxIDAgMiAxMlptOS03LjVhNy41IDcuNSAwIDEgMS0zLjYgMTQuMDkuNzUuNzUgMCAwIDAtLjU0LS4wN2wtMy4yNi44Ny44OC0zLjI1YS43NS43NSAwIDAgMC0uMDctLjU1QTcuNSA3LjUgMCAwIDEgMTEgNC41Wm0tLjczIDE3LjQ3YTguOTggOC45OCAwIDAgMCAxMC43NyAyLjA3bDMuMzkuOTFjLjkyLjI1IDEuNzctLjYgMS41My0xLjUzbC0uOTEtMy4zOWE5IDkgMCAwIDAtNS4xMi0xMi41NWMuMzEuNjMuNTYgMS4zLjc0IDEuOThhNy41IDcuNSAwIDAgMSAyLjkyIDEwLjEzLjc1Ljc1IDAgMCAwLS4wNy41NWwuODggMy4yNS0zLjI2LS44N2EuNzUuNzUgMCAwIDAtLjU1LjA3IDcuNDYgNy40NiAwIDAgMS04LjIxLS42OCAxMC4wOSAxMC4wOSAwIDAgMS0yLjExLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdE11bHRpcGxlSGVhcnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVIZWFydDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTIuNSAzYTEwLjUgMTAuNSAwIDAgMC05LjQgMTUuMTlMMi4wNSAyMi4xYTEuNSAxLjUgMCAwIDAgMS44NCAxLjgzTDcuOCAyMi45QTEwLjUgMTAuNSAwIDEgMCAxMi41IDNabTEuOTUgMjIuMzRhMTIuMDggMTIuMDggMCAwIDEtMi44LjEzIDEwLjQ3IDEwLjQ3IDAgMCAwIDEyLjU1IDIuNDJsMy45MSAxLjA1YTEuNSAxLjUgMCAwIDAgMS44NC0xLjgzbC0xLjA1LTMuOTJBMTAuNDQgMTAuNDQgMCAwIDAgMzAgMTguNWMwLTQuMzYtMi42Ni04LjEtNi40NS05LjcuMzYuODYuNjMgMS43Ny43OSAyLjdhOC41IDguNSAwIDAgMSAyLjYxIDExLjA5IDEgMSAwIDAgMC0uMDkuNzRsLjkzIDMuNDYtMy40NS0uOTNhMSAxIDAgMCAwLS43NS4xIDguNDYgOC40NiAwIDAgMS05LjE0LS42MlptLTIuMzctMTQuOTYuNDIuNC40LS40YTIuOTkgMi45OSAwIDAgMSA0LjIzIDQuMmwtNC4yOSA0LjI5YS40Ni40NiAwIDAgMS0uNjUgMGwtNC4zMS00LjNhMi45NiAyLjk2IDAgMSAxIDQuMi00LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0TXVsdGlwbGVIZWFydDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0TXVsdGlwbGVIZWFydDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTEyLjUgM2ExMC41IDEwLjUgMCAwIDAtOS40IDE1LjE5TDIuMDUgMjIuMWExLjUgMS41IDAgMCAwIDEuODQgMS44M0w3LjggMjIuOUExMC41IDEwLjUgMCAxIDAgMTIuNSAzWk01LjA1IDE3LjU5YTguNSA4LjUgMCAxIDEgMy4zNiAzLjM2IDEgMSAwIDAgMC0uNzUtLjA5bC0zLjQ1LjkzLjkzLTMuNDZhMSAxIDAgMCAwLS4xLS43NFptOS40IDcuNzVhMTIuMDggMTIuMDggMCAwIDEtMi44LjEzIDEwLjQ3IDEwLjQ3IDAgMCAwIDEyLjU1IDIuNDJsMy45MSAxLjA1YTEuNSAxLjUgMCAwIDAgMS44NC0xLjgzbC0xLjA1LTMuOTJBMTAuNDQgMTAuNDQgMCAwIDAgMzAgMTguNWMwLTQuMzYtMi42Ni04LjEtNi40NS05LjcuMzYuODYuNjMgMS43Ny43OSAyLjdhOC41IDguNSAwIDAgMSAyLjYxIDExLjA5IDEgMSAwIDAgMC0uMDkuNzRsLjkzIDMuNDYtMy40NS0uOTNhMSAxIDAgMCAwLS43NS4xIDguNDYgOC40NiAwIDAgMS05LjE0LS42MlptLTIuMzctMTQuOTZhMi45NiAyLjk2IDAgMSAwLTQuMiA0LjE5bDQuMzEgNC4zYy4xOC4xNy40Ny4xNy42NSAwbDQuMy00LjI4YTIuOTkgMi45OSAwIDAgMC00LjIzLTQuMmwtLjQxLjQtLjQyLS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0T2ZmMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDQuNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN0w0LjcxIDQgMTYgMTUuM2wxLjg1IDEuODVhLjUuNSAwIDAgMS0uNy43TDE1LjI5IDE2YTcuOTcgNy45NyAwIDAgMS04LjkgMS4xNGwtLjEyLS4wNy0zLjY1LjkyYS41LjUgMCAwIDEtLjYyLS40NXYtLjA4bC4wMS0uMDguOTItMy42NC0uMDctLjEyYTcuOTUgNy45NSAwIDAgMS0uODMtMi45bC0uMDItLjM3TDIgMTBjMC0yLjAzLjc2LTMuODggMi01LjNabTYuOTcgNi45OC0uNjgtLjY4SDcuNDFhLjUuNSAwIDAgMCAwIDFIMTAuNTlhLjUuNSAwIDAgMCAuMzgtLjMyWk04LjI5IDlsLS45Ny0uOTdhLjUuNSAwIDAgMCAuMDkuOTZMNy41IDloLjhaXCIsIFwiTTEyLjUgOWgtMS4zOGw1LjUgNS41QTggOCAwIDAgMCA1LjUgMy4zOUwxMC4xMSA4SDEyLjZhLjUuNSAwIDAgMSAwIDFoLS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNC43IDIuMTUgMi44NmEuNS41IDAgMSAxIC43LS43TDQuNzEgNGwuNy43IDkuODggOS44OC43LjcxIDEuODYgMS44NmEuNS41IDAgMCAxLS43LjdMMTUuMjkgMTZhNy45NyA3Ljk3IDAgMCAxLTguOSAxLjE0bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGMwLTIuMDMuNzYtMy44OCAyLTUuM1ptMTAuNTggMTAuNi0zLjYxLTMuNjJhLjUuNSAwIDAgMS0uMzguMzFsLS4wOS4wMWgtM2EuNS41IDAgMCAxLS4wOS0xSDEwLjNsLTItMmgtLjhhLjUuNSAwIDAgMS0uMTgtLjk3TDQuNzEgNS40MmE2Ljk3IDYuOTcgMCAwIDAtLjgyIDggLjUuNSAwIDAgMSAuMDcuMjhsLS4wMi4xLS43NSAzLjAxIDMuMDItLjc1YS41LjUgMCAwIDEgLjE5LS4wMWwuMDkuMDIuMDkuMDRhNi45NyA2Ljk3IDAgMCAwIDgtLjgyWlwiLCBcIm0xNi42MiAxNC41LS43Mi0uNzNBNyA3IDAgMCAwIDYuMjMgNC4xbC0uNzMtLjcyQTggOCAwIDAgMSAxNi42MSAxNC41WlwiLCBcIk0xMi41IDloLTEuMzhsLTEtMWgyLjM4YS41LjUgMCAwIDEgLjA5IDFoLS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0T2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwyLjIgMi4yYTkuOTYgOS45NiAwIDAgMC0xLjI4IDExLjE3bC0xLjExIDQuMjlhLjg1Ljg1IDAgMCAwIDEuMDQgMS4wNGw0LjI5LTEuMTJhOS45NiA5Ljk2IDAgMCAwIDExLjE2LTEuMjhsMi4yIDIuMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptMTAuMTQgMTIuMjYtLjA3LjAxLS4xLjAxaC00LjZhLjc1Ljc1IDAgMCAxIDAtMS41aDMuMjlsMS40OCAxLjQ4Wk05Ljk0IDExSDguNjVhLjc1Ljc1IDAgMCAxLS4xNi0xLjQ1TDkuOTQgMTFaXCIsIFwiTTE1LjI1IDExaC0xLjA3bDYuMyA2LjNBMTAgMTAgMCAwIDAgNi43IDMuNTJsNS45OCA1Ljk4aDIuNjdhLjc1Ljc1IDAgMCAxIDAgMS41aC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIuMiAyLjJhOS45NiA5Ljk2IDAgMCAwLTEuMyAxMS4xMWwtMS4wNyAzLjgzYTEuMjUgMS4yNSAwIDAgMCAxLjU0IDEuNTRsMy44Mi0xLjA3YTkuOTYgOS45NiAwIDAgMCAxMS4xMS0xLjNsMi4yIDIuMTlhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTE0LjE4IDE2LjNhOC40NyA4LjQ3IDAgMCAxLTkuNi45MWwtLjI2LS4xNS0zLjk5IDEuMTEgMS4xMS0zLjk4LS4xNS0uMjdhOC40NiA4LjQ2IDAgMCAxIC45MS05LjZsMyAzQS43NS43NSAwIDAgMCA4Ljc2IDExaDEuMTlsMiAySDguNjVhLjc1Ljc1IDAgMCAwIC4xIDEuNWg0LjZsLjA3LS4wMiA0LjA0IDQuMDRaXCIsIFwiTTE1LjI1IDkuNWgtMi41N2wxLjUgMS41SDE1LjM1YS43NS43NSAwIDAgMC0uMS0xLjVaXCIsIFwiTTIwLjUgMTJjMCAxLjUzLS40IDIuOTctMS4xMSA0LjJsMS4xIDEuMUExMCAxMCAwIDAgMCA2LjcgMy41MmwxLjA4IDEuMUE4LjUgOC41IDAgMCAxIDIwLjUgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0U2V0dGluZ3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U2V0dGluZ3MxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgN2E2IDYgMCAwIDEgMTEuODEtMS41IDUuNSA1LjUgMCAwIDAtNy4zIDcuMyA1Ljk3IDUuOTcgMCAwIDEtMS41MS0uNmwtMi4zNC43N2EuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAxIDdabTcuMDcuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgOCAxMy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxMyA3LjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNldHRpbmdzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRTZXR0aW5nczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgN2E2IDYgMCAwIDEgMTEuODEtMS41Yy0uMzctLjE2LS43Ni0uMy0xLjE4LS4zOEE1IDUgMCAxIDAgMi43IDkuNTVhLjUuNSAwIDAgMSAuMDUuNGwtLjUgMS43OCAxLjY1LS41NmEuNS41IDAgMCAxIC40My4wNmMuMjUuMTUuNTEuMy43OS40LjA4LjQyLjIyLjgxLjM5IDEuMThBNS45NyA1Ljk3IDAgMCAxIDQgMTIuMmwtMi4zNC43OGEuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAxIDdabTcuMDcuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgMCAxLjAybC4zNS4wOEEyIDIgMCAwIDEgOCAxMy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxMyA3LjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNldHRpbmdzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFNldHRpbmdzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDAgMSA4IDguMjVBNS41IDUuNSAwIDAgMCAxMC4yNiAxOGE3LjkzIDcuOTMgMCAwIDEtMy44Ny0uODVsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTIuMDcgOS40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNldHRpbmdzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRTZXR0aW5nczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDNhNyA3IDAgMCAwLTYuMSAxMC40Mi41LjUgMCAwIDEgLjA0LjM3bC0uNzUgMy4wMiAzLjAyLS43NWEuNS41IDAgMCAxIC4zNy4wNWMuOS41IDEuOTIuODIgMy4wMS44OC4xOS4zNi40LjcuNjYgMWE3LjkzIDcuOTMgMCAwIDEtMy45OS0uOTJMMi42MiAxOGEuNS41IDAgMCAxLS42LS42MWwuOS0zLjY0QTggOCAwIDEgMSAxOCAxMC4yNmMtLjMtLjI2LS42NC0uNDgtMS0uNjdBNyA3IDAgMCAwIDEwIDNabTIuMDcgOC40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNldHRpbmdzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFNldHRpbmdzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMCAxIDkuOTcgMTAuNzggNi41IDYuNSAwIDAgMC05LjE5IDkuMTkgMTAuMTQgMTAuMTQgMCAwIDEtNS40Mi0xLjExbC00LjMgMS4xMmEuODUuODUgMCAwIDEtMS4wMy0xLjA0bDEuMTEtNC4yOUExMCAxMCAwIDAgMSAxMiAyWm0yLjI4IDExLjk4YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjkxbC0uMi0uNjlhMiAyIDAgMCAxIDEuNDQtMi41bC41OS0uMTRhNS43MiA1LjcyIDAgMCAwIDAtMS44bC0uNTUtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS40LS45NC0uNy0xLjQ5LS45M2wtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjlsLjIuN1pNMTcuNSAxNmMuOCAwIDEuNDUuNjcgMS40NSAxLjVTMTguMyAxOSAxNy41IDE5Yy0uOCAwLTEuNDUtLjY3LTEuNDUtMS41UzE2LjcgMTYgMTcuNSAxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTZXR0aW5nczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U2V0dGluZ3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMiAxMmExMCAxMCAwIDEgMC0xOC44OSA0LjZsLTEuMDYgMy44MmExLjI1IDEuMjUgMCAwIDAgMS41NCAxLjU0bDMuODItMS4wN2E5Ljk2IDkuOTYgMCAwIDAgNS4zNyAxLjA4IDYuNTIgNi41MiAwIDAgMS0xLjA1LTEuNDcgOC40NSA4LjQ1IDAgMCAxLTMuODYtMS4wN2wtLjI3LS4xNS0zLjk5IDEuMTEgMS4xMS0zLjk4LS4xNS0uMjdhOC41IDguNSAwIDEgMSAxNS45Mi00LjRjLjU1LjI3IDEuMDQuNjMgMS40OCAxLjA0TDIyIDEyWm0tOS4xNiA0LjQ3YTIgMiAwIDAgMCAxLjQ0LTIuNWwtLjItLjY4Yy40NC0uMzguOTQtLjcgMS40OC0uOTFsLjUuNTJhMiAyIDAgMCAwIDIuOSAwbC41LS41MmMuNTQuMjMgMS4wNC41NCAxLjQ4LjkzbC0uMTkuNjNhMiAyIDAgMCAwIDEuNDUgMi41bC41NC4xNGE1LjczIDUuNzMgMCAwIDEgMCAxLjhsLS41OC4xNWEyIDIgMCAwIDAtMS40NCAyLjVsLjIuNjhjLS40NC4zOC0uOTQuNy0xLjQ4LjkxbC0uNS0uNTJhMiAyIDAgMCAwLTIuOSAwbC0uNS41MmE1LjI4IDUuMjggMCAwIDEtMS40OC0uOTJsLjE5LS42NGEyIDIgMCAwIDAtMS40NS0yLjVsLS41NC0uMTRhNS43MiA1LjcyIDAgMCAxIDAtMS44bC41OC0uMTVabTYuMTEgMS4wM2MwLS44My0uNjUtMS41LTEuNDUtMS41LS44IDAtMS40NS42Ny0xLjQ1IDEuNVMxNi43IDE5IDE3LjUgMTljLjggMCAxLjQ1LS42NyAxLjQ1LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTcGFya2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFNwYXJrbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTEwLjg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMiAyLjIgMCAwIDAtMS40LTEuNEw3LjI4IDMuOWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWm0tMy41IDIuOTRjLjA5LjIzLjIzLjQyLjQyLjU4QTUuOTkgNS45OSAwIDAgMSA1IDEzLjE5bC0yLjM0Ljc4YS41LjUgMCAwIDEtLjY0LS42bC43MS0yLjVhNiA2IDAgMCAxIDQuNTgtOC44M2wtLjM2LjExQTEuNDMgMS40MyAwIDAgMCA2IDMuNWExLjQxIDEuNDEgMCAwIDAgLjk3IDEuMzVsMS4wNi4zNWMuMTUuMDUuMy4xMy40Ny4yOS4xMS4xLjIuMjQuMy40N2wuMzUgMS4xYy4xLjI0LjI1LjQ3LjUyLjY4LjE0LjEuMy4xNy40NS4yMWExLjMgMS4zIDAgMCAwIC43NyAxLjc5bC43Ny4yNWMuMDguMDMuMTYuMDguMjIuMTQuMDcuMDYuMS4xNC4xNC4yMmwuMjYuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTcGFya2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRTcGFya2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTAuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yIDIuMiAwIDAgMC0xLjQtMS40TDcuMjggMy45YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJabS0zLjUgMi45NGMuMDkuMjMuMjMuNDIuNDIuNThBNS45OSA1Ljk5IDAgMCAxIDUgMTMuMTlsLTIuMzQuNzhhLjUuNSAwIDAgMS0uNjQtLjZsLjcxLTIuNWE2IDYgMCAwIDEgNC41OC04LjgzbC0uMzYuMTFBMS40MyAxLjQzIDAgMCAwIDYgMy40MWE1IDUgMCAwIDAtMi4zIDcuMTQuNS41IDAgMCAxIC4wNS40bC0uNSAxLjc4IDEuNjUtLjU2YS41LjUgMCAwIDEgLjQzLjA2IDQuOTcgNC45NyAwIDAgMCA2LjgzLTEuNDVsLjEyLjM3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNwYXJrbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTE3LjUgMTJjLS4yNyAwLS41Mi0uMDgtLjc0LS4yM2ExLjQgMS40IDAgMCAxLS40OC0uNjJsLS4yNi0uOGEuNTIuNTIgMCAwIDAtLjE0LS4yMi42NC42NCAwIDAgMC0uMjItLjE0bC0uNzctLjI1Yy0uMjctLjEtLjQ5LS4yNi0uNjUtLjQ4YTEuMyAxLjMgMCAwIDEtLjEyLTEuMyAxLjMyIDEuMzIgMCAwIDEtLjQ1LS4yMiAxLjUxIDEuNTEgMCAwIDEtLjUyLS42OWwtLjM2LTEuMDlhMS4yNyAxLjI3IDAgMCAwLS4yOS0uNDcgMS4zIDEuMyAwIDAgMC0uNDctLjNsLTEuMDYtLjM0QTEuNDEgMS40MSAwIDAgMSAxMCAzLjVhMS40IDEuNCAwIDAgMSAuOTUtMS4zNWwuMjItLjA3QTggOCAwIDAgMCAyIDEwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNmE4IDggMCAwIDAgMTEuMzctNS4xNmwtLjI2LjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNwYXJrbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFNwYXJrbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTcuNSAxMmMtLjI2IDAtLjUxLS4wOC0uNzMtLjIyYTcgNyAwIDAgMS0xMC4yIDQuMzNsLS4wOC0uMDQtLjEtLjAyYS41LjUgMCAwIDAtLjE4IDBsLTMuMDIuNzYuNzUtMy4wMi4wMi0uMWEuNS41IDAgMCAwLS4wNy0uMjdBNyA3IDAgMCAxIDEwLjEgM2ExLjQyIDEuNDIgMCAwIDEgLjg2LS44NWwuMjItLjA3QTggOCAwIDAgMCAyIDEwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNmE4IDggMCAwIDAgMTEuMzctNS4xNmwtLjI2LjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNwYXJrbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTYuMDkgNi40MWEyLjg0IDIuODQgMCAwIDAtMS4zNS0uOTVMMTMuMzYgNWEuNTQuNTQgMCAwIDEgMC0xLjAzbDEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMCAxLjc2LTEuNzdsLjAxLS4wMy40NS0xLjM4YS41NC41NCAwIDAgMSAxLjAzIDBsLjQ0IDEuMzhhMi44NCAyLjg0IDAgMCAwIDEuOCAxLjhsMS4zOC40NC4wMy4wMWEuNTQuNTQgMCAwIDEgMCAxLjAzbC0xLjM4LjQ0YTIuODQgMi44NCAwIDAgMC0xLjggMS44bC0uNDUgMS4zOGEuNTQuNTQgMCAwIDEtMS4wMyAwbC0uNDQtMS4zOGMtLjEtLjMtLjI1LS42LS40NS0uODVabTcuNyAzLjgtLjc3LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTIgMmExMCAxMCAwIDAgMSAyLjc2LjM5Yy0uMTIuMDctLjI0LjEzLS4zNy4xN0wxMy4wNSAzYy0uMy4xLS41OC4zLS43Ny41N2ExLjU3IDEuNTcgMCAwIDAgMCAxLjc5Yy4xNy4yOC40Mi41LjcyLjY0bDEuNC40NmMuMjcuMDkuNTIuMjQuNzIuNDRsLjE4LjFjLjEzLjE3LjIyLjM1LjI5LjU1TDE2IDljLjEuMy4zLjU4LjU3Ljc3YTEuNTcgMS41NyAwIDAgMCAxLjU3LjEyIDEuMjggMS4yOCAwIDAgMCAuMDYgMS40Yy4xNi4yMy4zOC40LjYzLjQ5bC43OS4yNWEuNTkuNTkgMCAwIDEgLjM2LjM3bC4yNC43NmMuMS4yNi4yNi40OS40OS42NWExLjI5IDEuMjkgMCAwIDAgMS4wOS4yIDEwIDEwIDAgMCAxLTE0LjQ0IDYuODVsLTQuMyAxLjEyYS44NS44NSAwIDAgMS0xLjAzLTEuMDRsMS4xMS00LjI5QTEwIDEwIDAgMCAxIDEyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0U3BhcmtsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE2LjA5IDYuNDFhMi44NCAyLjg0IDAgMCAwLTEuMzUtLjk1TDEzLjM2IDVhLjU0LjU0IDAgMCAxIDAtMS4wM2wxLjM4LS40NGEyLjg0IDIuODQgMCAwIDAgMS43Ni0xLjc3bC4wMS0uMDMuNDUtMS4zOGEuNTQuNTQgMCAwIDEgMS4wMyAwbC40NCAxLjM4YTIuODQgMi44NCAwIDAgMCAxLjggMS44bDEuMzguNDQuMDMuMDFhLjU0LjU0IDAgMCAxIDAgMS4wM2wtMS4zOC40NGEyLjg0IDIuODQgMCAwIDAtMS44IDEuOGwtLjQ1IDEuMzhhLjU0LjU0IDAgMCAxLTEuMDMgMGwtLjQ0LTEuMzhjLS4xLS4zLS4yNS0uNi0uNDUtLjg1Wm03LjcgMy44LS43Ny0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEyIDJhMTAgMTAgMCAwIDEgMi43Ni4zOWMtLjEyLjA3LS4yNC4xMy0uMzcuMTdMMTMuMDUgM2MtLjI4LjEtLjUzLjI4LS43Mi41SDEyYTguNSA4LjUgMCAwIDAtNy40MyAxMi42NGwuMTUuMjctMS4xIDMuOTggMy45OC0xLjExLjI3LjE1YTguNSA4LjUgMCAwIDAgMTIuNS01Ljk2Yy4xLjEzLjIuMjQuMzQuMzRhMS4yOSAxLjI5IDAgMCAwIDEuMDkuMkExMCAxMCAwIDAgMSA3LjQgMjAuODhMMy42IDIxLjk2YTEuMjUgMS4yNSAwIDAgMS0xLjU0LTEuNTRsMS4wNi0zLjgzQTEwIDEwIDAgMCAxIDEyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0U3BhcmtsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRTcGFya2xlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xOC4xNyA2LjgzYTMuMTYgMy4xNiAwIDAgMSAuNzYgMS4yNGwuNSAxLjUzYS42LjYgMCAwIDAgMS4xNCAwbC41LTEuNTNhMy4xNSAzLjE1IDAgMCAxIDItMmwxLjUzLS41YS42LjYgMCAwIDAgMC0xLjE0aC0uMDNsLTEuNTQtLjVhMy4xNSAzLjE1IDAgMCAxLTItMkwyMC41NS40YS42LjYgMCAwIDAtMS4xNCAwbC0uNSAxLjUzLS4wMS4wNGEzLjE1IDMuMTUgMCAwIDEtMS45NiAxLjk2bC0xLjUzLjVhLjYuNiAwIDAgMCAwIDEuMTRsMS41My41Yy40Ny4xNS45LjQxIDEuMjQuNzZabTguNjUgMy41My45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaTTE0IDJhMTIgMTIgMCAwIDEgMy40NS41Yy0uMjQuMjMtLjUzLjQtLjg0LjVsLTEuNTIuNWMtLjMyLjEtLjYuMzEtLjguNTlhMS41OCAxLjU4IDAgMCAwIDAgMS44NWMuMi4yNy40Ny40OC43OC41OWwxLjU2LjVhMi4yNSAyLjI1IDAgMCAxIDEgLjczYy4xNi4xOS4yOC40LjM1LjY0bC41IDEuNTNjLjExLjMyLjMyLjYuNTkuOGExLjY0IDEuNjQgMCAwIDAgMS44NiAwbC4xMy0uMTFhMS4zNCAxLjM0IDAgMCAwIC44NSAxLjY2bC45NC4zYy4xMy4wNS4yNC4xMi4zNC4yMi4xLjEuMTcuMjIuMjIuMzVsLjMuOTJBMS4zNCAxLjM0IDAgMCAwIDI1IDE1YTEuMzcgMS4zNyAwIDAgMCAuOTktLjQyQTEyIDEyIDAgMCAxIDguMzYgMjQuNkwzLjYgMjUuOTVjLS45NC4yNy0xLjgtLjYtMS41NC0xLjU0bDEuMzYtNC43N0ExMiAxMiAwIDAgMSAxNCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNwYXJrbGUyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFNwYXJrbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xOC4xNyA2LjgzYTMuMTYgMy4xNiAwIDAgMSAuNzYgMS4yNGwuNSAxLjUzYS42LjYgMCAwIDAgMS4xNCAwbC41LTEuNTNhMy4xNSAzLjE1IDAgMCAxIDItMmwxLjUzLS41YS42LjYgMCAwIDAgMC0xLjE0aC0uMDNsLTEuNTQtLjVhMy4xNSAzLjE1IDAgMCAxLTItMkwyMC41NS40YS42LjYgMCAwIDAtMS4xNCAwbC0uNSAxLjUzLS4wMS4wNGEzLjE1IDMuMTUgMCAwIDEtMS45NiAxLjk2bC0xLjUzLjVhLjYuNiAwIDAgMCAwIDEuMTRsMS41My41Yy40Ny4xNS45LjQxIDEuMjQuNzZabTguNjUgMy41My45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaTTE0IDJhMTIgMTIgMCAwIDEgMy40NS41Yy0uMjQuMjMtLjUzLjQtLjg0LjVsLTEuNTIuNS0uMTIuMDRhMTAuNSAxMC41IDAgMCAwLTEwLjEgMTUuNjNjLjEuMTguMTIuMzkuMDYuNThMMy42MSAyNC40bDQuNjQtMS4zMmMuMi0uMDYuNC0uMDMuNTcuMDdhMTAuNSAxMC41IDAgMCAwIDE1LjY0LTguMjUgMS4zNyAxLjM3IDAgMCAwIDEuNTMtLjMxQTEyIDEyIDAgMCAxIDguMzYgMjQuNkwzLjYgMjUuOTVjLS45NC4yNy0xLjgtLjYtMS41NC0xLjU0bDEuMzYtNC43N0ExMiAxMiAwIDAgMSAxNCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNwYXJrbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjEuNDkgOC41MWEzLjQ5IDMuNDkgMCAwIDEgLjg0IDEuMzZsLjU0IDEuNjlhLjY2LjY2IDAgMCAwIDEuMjYgMGwuNTQtMS42OWEzLjQ3IDMuNDcgMCAwIDEgMi4yLTIuMmwxLjY5LS41NGEuNjcuNjcgMCAwIDAgMC0xLjI1bC0uMDQtLjAxLTEuNjgtLjU1YTMuNDcgMy40NyAwIDAgMS0yLjItMi4ybC0uNTUtMS42OGEuNjYuNjYgMCAwIDAtMS4yNSAwbC0uNTUgMS42OS0uMDEuMDRhMy40NyAzLjQ3IDAgMCAxLTIuMTUgMi4xNWwtMS42OS41NWEuNjcuNjcgMCAwIDAgMCAxLjI1bDEuNjkuNTVjLjUxLjE3Ljk4LjQ2IDEuMzYuODRabTkuMzMgNC44NS45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaTTE2IDJjMS42OCAwIDMuMy4zIDQuNzkuODQtLjEuMi0uMjMuNC0uMzkuNTYtLjIxLjIyLS40Ny4zOC0uNzYuNDhMMTggNC40NGEyLjE3IDIuMTcgMCAwIDAtMS41IDIuMDYgMi4xNyAyLjE3IDAgMCAwIDEuNDUgMmwxLjcxLjU2Yy4zNi4xMi43MS4zNS45My42Ni4xNC4xNy4yNC4zNy4zMS41OGwuNTUgMS43YTIuMTYgMi4xNiAwIDAgMCAzLjMgMS4wOCAxLjkgMS45IDAgMCAwLS4yNS45IDEuODQgMS44NCAwIDAgMCAxLjI0IDEuNzVsMSAuMy4xNC4xMWMuMDQuMDQuMDguMS4wOS4xNWwuMy45MWEyIDIgMCAwIDAgLjY5Ljk0IDEuODkgMS44OSAwIDAgMCAxLjg1LjE3QTE0IDE0IDAgMCAxIDkuNDQgMjguMzdsLTUuNTMgMS41N2ExLjUgMS41IDAgMCAxLTEuODUtMS44NWwxLjU3LTUuNTNBMTQgMTQgMCAwIDEgMTYgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRTcGFya2xlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRTcGFya2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjEuNDkgOC41MWEzLjQ5IDMuNDkgMCAwIDEgLjg0IDEuMzZsLjU0IDEuNjlhLjY2LjY2IDAgMCAwIDEuMjYgMGwuNTQtMS42OWEzLjQ3IDMuNDcgMCAwIDEgMi4yLTIuMmwxLjY5LS41NGEuNjcuNjcgMCAwIDAgMC0xLjI1bC0uMDQtLjAxLTEuNjgtLjU1YTMuNDcgMy40NyAwIDAgMS0yLjItMi4ybC0uNTUtMS42OGEuNjYuNjYgMCAwIDAtMS4yNSAwbC0uNTUgMS42OS0uMDEuMDRhMy40NyAzLjQ3IDAgMCAxLTIuMTUgMi4xNWwtMS42OS41NWEuNjcuNjcgMCAwIDAgMCAxLjI1bDEuNjkuNTVjLjUxLjE3Ljk4LjQ2IDEuMzYuODRabTkuMzMgNC44NS45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaTTE2IDJjMS42OCAwIDMuMy4zIDQuNzkuODQtLjEuMi0uMjMuNC0uMzkuNTYtLjIxLjIyLS40Ny4zOC0uNzYuNDhsLTEuMTMuMzhBMTIgMTIgMCAwIDAgNS41NyAyMS45NGExIDEgMCAwIDEgLjEuNzdsLTEuNDQgNS4wNiA1LjA2LTEuNDRhMSAxIDAgMCAxIC43Ny4xIDEyIDEyIDAgMCAwIDE3Ljc3LTguNGwuMTMuMTFhMS44OSAxLjg5IDAgMCAwIDEuODUuMTdBMTQgMTQgMCAwIDEgOS40NCAyOC4zN2wtNS41MyAxLjU3YTEuNSAxLjUgMCAwIDEtMS44NS0xLjg1bDEuNTctNS41M0ExNCAxNCAwIDAgMSAxNiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFNwYXJrbGU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzEuODMgMTMuMTFhNS4zNiA1LjM2IDAgMCAwLTIuNTQtMS44bC0yLjYtLjg1YTEuMDMgMS4wMyAwIDAgMSAwLTEuOTRsMi42LS44NGE1LjM2IDUuMzYgMCAwIDAgMy4zMi0zLjMzbC4wMi0uMDYuODUtMi42YTEuMDMgMS4wMyAwIDAgMSAxLjk0IDBsLjg0IDIuNmE1LjM2IDUuMzYgMCAwIDAgMy40IDMuMzlsMi42Ljg0LjA1LjAyYTEuMDMgMS4wMyAwIDAgMSAwIDEuOTRsLTIuNi44NGE1LjM2IDUuMzYgMCAwIDAtMy40IDMuNGwtLjg0IDIuNi0uMDMuMDZhMS4wMyAxLjAzIDAgMCAxLTEuOS0uMDdsLS44Ni0yLjZhNS4zNSA1LjM1IDAgMCAwLS44NS0xLjZabTE0Ljc4IDYuODctMS4zOC0uNDRhMi44NCAyLjg0IDAgMCAxLTEuOC0xLjhMNDMgMTYuMzZhLjU0LjU0IDAgMCAwLTEuMDMgMGwtLjQ1IDEuMzhhMi44NCAyLjg0IDAgMCAxLTEuNzcgMS44bC0xLjM4LjQ0YS41NC41NCAwIDAgMCAwIDEuMDNsMS4zOC40NWMuMTUuMDUuMy4xMS40NC4xOHYuMDJhMi44NCAyLjg0IDAgMCAxIDEuMzYgMS42MWwuNDUgMS4zOGEuNTQuNTQgMCAwIDAgMSAuMDR2LS4wMWEuNS41IDAgMCAwIC4wMi0uMDRsLjQ1LTEuMzhhMi44NCAyLjg0IDAgMCAxIDEuOC0xLjhsMS4zOC0uNDRhLjU0LjU0IDAgMCAwIDAtMS4wM2gtLjAzWk0yOS45MyA1bC4wOC0uMDhhMjAgMjAgMCAwIDAtMjMuNiAyOC42bC0yLjM0IDguMjVhMS43NSAxLjc1IDAgMCAwIDIuMTYgMi4xNmw4LjI0LTIuMzRhMjAgMjAgMCAwIDAgMjkuMzYtMTQuOTcgMi41NSAyLjU1IDAgMCAxLTIuODMtLjA4IDIuNTQgMi41NCAwIDAgMS0uODktMS4zNWwtLjQ0LTEuMzdhLjg2Ljg2IDAgMCAwLS40LS40OGwtLjEyLS4wNi0xLjQyLS40NmEyLjU1IDIuNTUgMCAwIDEtMS43LTIuNGMwLS4zNC4wOC0uNjkuMjItMWEzIDMgMCAwIDEtNC41OS0xLjUxbC0uODQtMi41OWEzLjI0IDMuMjQgMCAwIDAtMi4xNy0yLjExTDI2IDEyLjM1YTMgMyAwIDAgMS0xLjQ0LTQuNThjLjM3LS41Mi45LS45MSAxLjUxLTEuMTJsMi41Ny0uODNjLjQ5LS4xNy45My0uNDUgMS4yOS0uODJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0U3BhcmtsZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0U3BhcmtsZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTMxLjgzIDEzLjExYTUuMzYgNS4zNiAwIDAgMC0yLjU0LTEuOGwtMi42LS44NWExLjAzIDEuMDMgMCAwIDEgMC0xLjk0bDIuNi0uODRhNS4zNiA1LjM2IDAgMCAwIDMuMzItMy4zM2wuMDItLjA2Ljg1LTIuNmExLjAzIDEuMDMgMCAwIDEgMS45NCAwbC44NCAyLjZhNS4zNiA1LjM2IDAgMCAwIDMuNCAzLjM5bDIuNi44NC4wNS4wMmExLjAzIDEuMDMgMCAwIDEgMCAxLjk0bC0yLjYuODRhNS4zNiA1LjM2IDAgMCAwLTMuNCAzLjRsLS44NCAyLjYtLjAzLjA2YTEuMDMgMS4wMyAwIDAgMS0xLjktLjA3bC0uODYtMi42YTUuMzUgNS4zNSAwIDAgMC0uODUtMS42Wm0xNC43OCA2Ljg3LTEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMS0xLjgtMS44TDQzIDE2LjM2YS41NC41NCAwIDAgMC0xLjAzIDBsLS40NSAxLjM4YTIuODQgMi44NCAwIDAgMS0xLjc3IDEuOGwtMS4zOC40NGEuNTQuNTQgMCAwIDAgMCAxLjAzbDEuMzguNDVjLjE1LjA1LjMuMTEuNDQuMTh2LjAyYTIuODQgMi44NCAwIDAgMSAxLjM2IDEuNjFsLjQ1IDEuMzhhLjU0LjU0IDAgMCAwIDEgLjA0di0uMDFhLjUuNSAwIDAgMCAuMDItLjA0bC40NS0xLjM4YTIuODQgMi44NCAwIDAgMSAxLjgtMS44bDEuMzgtLjQ0YS41NC41NCAwIDAgMCAwLTEuMDNoLS4wM1pNMjQgNGEyMCAyMCAwIDAgMSA2LjAxLjkybC0uMDguMDhjLS4zNi4zNy0uOC42NS0xLjI5LjgybC0yLjUuOGExNy41IDE3LjUgMCAwIDAtMTcuMyAyNi4xMmMuMTcuMy4yMS42NS4xMi45N2wtMi4xMiA3LjQ0IDcuNDQtMi4xMWMuMzMtLjEuNjgtLjA1Ljk3LjEyYTE3LjUgMTcuNSAwIDAgMCAyNi4wNC0xMi40NCAyLjU1IDIuNTUgMCAwIDAgMi41NC0uMSAyMCAyMCAwIDAgMS0yOS4zNiAxNC45N2wtOC4yNCAyLjM0YTEuNzUgMS43NSAwIDAgMS0yLjE2LTIuMTZsMi4zNC04LjI0QTIwIDIwIDAgMCAxIDI0IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0VmlkZW8yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0VmlkZW8yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwdi4zNWwuMDMuMzhjLjEgMS4wMS4zOCAxLjk5LjgzIDIuODlsLjA2LjEyLS45IDMuNjQtLjAyLjA4di4wOGMuMDMuMy4zMS41Mi42Mi40NWwzLjY1LS45MS4xMi4wNkE4IDggMCAwIDAgMTggMTBaTTYgOGExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjhabTcuMTUtLjE1YS41LjUgMCAwIDEgLjg1LjM2djMuNThhLjUuNSAwIDAgMS0uODUuMzZMMTIgMTFWOWwxLjE1LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0VmlkZW8yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFZpZGVvMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiA4YTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWOFptNiAxIDEuMTUtMS4xNWEuNS41IDAgMCAxIC44NS4zNnYzLjU4YS41LjUgMCAwIDEtLjg1LjM2TDEyIDExVjlabS0yLTdhOCA4IDAgMSAxLTMuNjEgMTUuMTRsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTAgMWE3IDcgMCAwIDAtNi4xIDEwLjQyLjUuNSAwIDAgMSAuMDYuMjhsLS4wMi4xLS43NSAzLjAxIDMuMDItLjc1YS41LjUgMCAwIDEgLjE5LS4wMWwuMDkuMDIuMDkuMDRBNyA3IDAgMSAwIDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGF0VmlkZW8yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0VmlkZW8yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDEyYTEwIDEwIDAgMSAwLTE4Ljg2IDQuNjVsLTEuMTEgNC4yOWEuODUuODUgMCAwIDAgMS4wNCAxLjA0bDQuMjktMS4xMkExMCAxMCAwIDAgMCAyMiAxMlpNMTIgOGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJ2LTRjMC0xLjEuOS0yIDItMmgzWm0zIDUuMTZ2LTIuMzJsMS43My0xLjY0YS43NS43NSAwIDAgMSAxLjI3LjU0djQuNTJjMCAuNjYtLjc5IDEtMS4yNy41NEwxNSAxMy4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRWaWRlbzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0VmlkZW8yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA4YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDlhMiAyIDAgMCAxLTItMnYtNGMwLTEuMS45LTIgMi0yaDNabTMgNS4xNnYtMi4zMmwxLjczLTEuNjRhLjc1Ljc1IDAgMCAxIDEuMjcuNTR2NC41MmMwIC42Ni0uNzkgMS0xLjI3LjU0TDE1IDEzLjE2Wk0yMiAxMmExMCAxMCAwIDEgMC0xOC44OSA0LjZsLTEuMDYgMy44MmExLjI1IDEuMjUgMCAwIDAgMS41NCAxLjU0bDMuODItMS4wN0ExMCAxMCAwIDAgMCAyMiAxMlpNMy41IDEyYTguNSA4LjUgMCAxIDEgNC4zNyA3LjQzbC0uMjctLjE1LTMuOTkgMS4xMSAxLjExLTMuOTgtLjE1LS4yN0E4LjQ2IDguNDYgMCAwIDEgMy41IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFdhcm5pbmcxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGF0V2FybmluZzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAzIDUuMmwtMi4zNC43N2EuNS41IDAgMCAxLS42NC0uNmwuNzEtMi41QTUuOTggNS45OCAwIDAgMSAyIDhabTYuNzUgMi43NWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tLjI2LTUuODRBLjUuNSAwIDAgMCA3LjUgNXYzLjU5YS41LjUgMCAwIDAgMS0uMDlWNC45MVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRXYXJuaW5nMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoYXRXYXJuaW5nMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC43NSAxMC43NWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tLjI2LTUuODRBLjUuNSAwIDAgMCA3LjUgNXYzLjU5YS41LjUgMCAwIDAgMS0uMDlWNC45MVpNOCAyYTYgNiAwIDAgMC01LjI3IDguODdsLS43MSAyLjVhLjUuNSAwIDAgMCAuNjQuNkw1IDEzLjJBNiA2IDAgMSAwIDggMlpNMyA4YTUgNSAwIDEgMSAyLjMzIDQuMjMuNS41IDAgMCAwLS40My0uMDZsLTEuNjYuNTYuNTEtMS43OWEuNS41IDAgMCAwLS4wNS0uMzlBNC45NyA0Ljk3IDAgMCAxIDMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRXYXJuaW5nMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFdhcm5pbmcyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTMuNjEgMTUuMTRsLS4xMi0uMDctMy42NS45MmEuNS41IDAgMCAxLS42Mi0uNDV2LS4wOGwuMDEtLjA4LjkyLTMuNjQtLjA3LS4xMmE3Ljk1IDcuOTUgMCAwIDEtLjgzLTIuOWwtLjAyLS4zN0wyIDEwYTggOCAwIDAgMSA4LThabTAgMy41YS41LjUgMCAwIDAtLjUuNXY1LjVhLjUuNSAwIDAgMCAxIDBWNmEuNS41IDAgMCAwLS41LS41Wm0wIDlhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFdhcm5pbmcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFdhcm5pbmcyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMS0zLjYxIDE1LjE0bC0uMTItLjA3LTMuNjUuOTJhLjUuNSAwIDAgMS0uNjItLjQ1di0uMDhsLjAxLS4wOC45Mi0zLjY0LS4wNy0uMTJhNy45NSA3Ljk1IDAgMCAxLS44My0yLjlsLS4wMi0uMzdMMiAxMGE4IDggMCAwIDEgOC04Wm0wIDFhNyA3IDAgMCAwLTYuMSAxMC40Mi41LjUgMCAwIDEgLjA2LjI4bC0uMDIuMS0uNzUgMy4wMSAzLjAyLS43NWEuNS41IDAgMCAxIC4xOS0uMDFsLjA5LjAyLjA5LjA0QTcgNyAwIDEgMCAxMCAzWm0wIDIuNWMuMjggMCAuNS4yMi41LjV2NS41YS41LjUgMCAwIDEtMSAwVjZjMC0uMjguMjItLjUuNS0uNVptMCA5YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoYXRXYXJuaW5nMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFdhcm5pbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDEyYTEwIDEwIDAgMSAwLTE4Ljg2IDQuNjVsLTEuMTEgNC4yOWEuODUuODUgMCAwIDAgMS4wNCAxLjAzbDQuMjktMS4xMUExMCAxMCAwIDAgMCAyMiAxMlpNMTIgNi41Yy40MSAwIC43NS4zNC43NS43NXY2LjI1YS43NS43NSAwIDAgMS0xLjUgMFY3LjI1YzAtLjQxLjM0LS43NS43NS0uNzVabTEgMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hhdFdhcm5pbmcyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hhdFdhcm5pbmcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA2LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjcuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMCAxMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTEyIDJhMTAgMTAgMCAxIDEtNC41OSAxOC44OUwzLjYgMjEuOTZhMS4yNSAxLjI1IDAgMCAxLTEuNTQtMS41NGwxLjA2LTMuODNBMTAgMTAgMCAwIDEgMTIgMlptMCAxLjVhOC41IDguNSAwIDAgMC03LjQzIDEyLjY0bC4xNS4yNy0xLjEgMy45OCAzLjk4LTEuMTEuMjcuMTVBOC41IDguNSAwIDEgMCAxMiAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVjazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS44OCA1SDRhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY3LjEybC00LjQ0IDQuNDRhMS41IDEuNSAwIDAgMS0yLjEyLTIuMTJMMTUuODggNVpNNCA4LjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDlhLjUuNSAwIDAgMSAwIDFINC41YS41LjUgMCAwIDEtLjUtLjVabTEzLjg1LTUuNjVhLjUuNSAwIDAgMC0uNy0uN2wtNSA1YS41LjUgMCAwIDAgLjcuN2w1LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVjazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVjazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE4IDcuMTJWMTNhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWN2MwLTEuMS45LTIgMi0yaDExLjg4bC0xIDFINGExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjguMTJsMS0xWk00IDguNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVIOWEuNS41IDAgMCAxIDAgMUg0LjVhLjUuNSAwIDAgMS0uNS0uNVptMTMuODUtNi4zNWMuMi4yLjIuNSAwIC43bC02IDZhLjUuNSAwIDAgMS0uNy0uN2w2LTZjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVjazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS43NyA1Ljc5YS43NS43NSAwIDEgMC0xLjA0LTEuMDhsLTYuNzUgNi41YS43NS43NSAwIDEgMCAxLjA0IDEuMDhsNi43NS02LjVaTTE4Ljk5IDVINC41NUEyLjU1IDIuNTUgMCAwIDAgMiA3LjU1djYuOUMyIDE1Ljg1IDMuMTQgMTcgNC41NSAxN2gxNC45YzEuNCAwIDIuNTUtMS4xNCAyLjU1LTIuNTV2LTYuOWMwLS4xOC0uMDItLjM2LS4wNi0uNTRsLTYuMjMgNmExLjc1IDEuNzUgMCAwIDEtMi40Mi0yLjUyTDE4Ljk5IDVaTTQuNSA5LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMmEuNzUuNzUgMCAwIDEgMCAxLjVoLTJhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAgMy41YzAtLjQxLjM0LS43NS43NS0uNzVoNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVjazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVjazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIxLjc4IDUuNzhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtNy41IDcuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDcuNS03LjVabS4xNyAxLjI1Yy4wMy4xNy4wNS4zNC4wNS41MnY2LjljMCAxLjQtMS4xNCAyLjU1LTIuNTUgMi41NUg0LjU1QTIuNTUgMi41NSAwIDAgMSAyIDE0LjQ1di02LjlDMiA2LjE1IDMuMTQgNSA0LjU1IDVoMTQuNDhsLTEuNSAxLjVINC41NWMtLjU4IDAtMS4wNS40Ny0xLjA1IDEuMDV2Ni45YzAgLjU4LjQ3IDEuMDUgMS4wNSAxLjA1aDE0LjljLjU4IDAgMS4wNS0uNDcgMS4wNS0xLjA1VjguNDdsMS40NS0xLjQ0Wk00LjUgOS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDJhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMS0uNzUtLjc1Wm0wIDMuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDVhLjc1Ljc1IDAgMCAxIDAgMS41aC01YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3gxMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3gxMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGMuNzcgMCAxLjQ3LS4yOSAyLS43NnYtLjgzYTEuNSAxLjUgMCAwIDEtMS40LTIuNjFsMi0xLjVjLjEyLS4xLjI2LS4xNi40LS4yMVY2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1LTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRhLjUuNSAwIDAgMSAuNy43Wm0zLjg3IDQuMmEuNS41IDAgMCAxIC4yOC40NXY1YS41LjUgMCAwIDEtMSAwdi00bC0xLjIuOWEuNS41IDAgMCAxLS42LS44bDItMS41YS41LjUgMCAwIDEgLjUyLS4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94MTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveDEyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGMuNzcgMCAxLjQ3LS4yOSAyLS43NnYtLjgzYy0uMjIuMDgtLjQ0LjEtLjY3LjA4QTIgMiAwIDAgMSAxNCAxNkg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY1Ljc1bC42LS40NWMuMTItLjEuMjYtLjE2LjQtLjIxVjZhMyAzIDAgMCAwLTMtM0g2Wm03Ljg1IDQuODVhLjUuNSAwIDAgMC0uNy0uN0w4LjUgMTEuNzlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw1LTVabTMuODcgNC4yYS41LjUgMCAwIDEgLjI4LjQ1djVhLjUuNSAwIDAgMS0xIDB2LTRsLTEuMi45YS41LjUgMCAwIDEtLjYtLjhsMi0xLjVhLjUuNSAwIDAgMSAuNTItLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3gxMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3gxMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjLjY0IDAgMS4yNC0uMTkgMS43NS0uNTF2LTEuNjZhMS43NSAxLjc1IDAgMCAxLTEuODQtMi45NWwyLjUtMmExLjc1IDEuNzUgMCAwIDEgLjg0LS4zNlY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVabTExLjAzIDYuMjgtNi43NSA2Ljc1Yy0uMy4yOS0uNzcuMjktMS4wNiAwbC0yLjc1LTIuNzVhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNkwxMCAxNC40NGw2LjIyLTYuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpNMjEgMTQuNTRhLjc1Ljc1IDAgMCAwLS4yMi4xMmwtMi41IDJhLjc1Ljc1IDAgMSAwIC45NCAxLjE4bDEuMjgtMS4wM3Y0LjQ0YS43NS43NSAwIDAgMCAxLjUgMHYtNmEuNzUuNzUgMCAwIDAtMS0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94MTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveDEyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjLjY0IDAgMS4yNC0uMTkgMS43NS0uNTF2LTEuNjZjLS4xNi4wOC0uMzMuMTMtLjUuMTUtLjMzLjMyLS43Ni41Mi0xLjI1LjUySDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2OC4xNmwuNjYtLjUzYTEuNzUgMS43NSAwIDAgMSAuODQtLjM2VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVptMTEuMDMgNi4yOGEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDEwIDE0LjQ0bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjc1IDIuNzVjLjI5LjI5Ljc2LjI5IDEuMDYgMGw2Ljc1LTYuNzVaTTIxIDE0LjU0YS43NS43NSAwIDAgMC0uMjIuMTJsLTIuNSAyYS43NS43NSAwIDEgMCAuOTQgMS4xOGwxLjI4LTEuMDN2NC40NGEuNzUuNzUgMCAwIDAgMS41IDB2LTZhLjc1Ljc1IDAgMCAwLTEtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveDIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveDIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g3LjA1Yy4wNi0uMy4xOC0uNjMuNC0xIC4yMy0uNC41Ny0uOCAxLjA0LTEuMjNhMS41IDEuNSAwIDAgMS0xLjEyLTIuNDhBMy41MSAzLjUxIDAgMCAxIDE1LjgyIDExYy40Mi0uMDIuODIuMDUgMS4xOC4xN1Y2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1LTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRhLjUuNSAwIDAgMSAuNy43Wk0xNS45MyAxM2MtLjMuMDItLjY3LjE2LTEuMDUuNmEuNS41IDAgMSAxLS43Ni0uNjVjLjU0LS42MSAxLjE1LS45MSAxLjc2LS45NS42LS4wMyAxLjE0LjIgMS41Mi41Ny4zOC4zNi42My44OC41OSAxLjQzLS4wNC41Ny0uMzggMS4xLS45OSAxLjQ1LTEuMS42NC0xLjYgMS4yLTEuODIgMS41NWgyLjMyYS41LjUgMCAxIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjQ1IDEuNDMgMS40MyAwIDAgMSAuMDMtLjM0Yy4wNC0uMTkuMTItLjQyLjI4LS43YTUuOCA1LjggMCAwIDEgMi4yLTEuOTNjLjM2LS4yMS40Ny0uNDYuNDgtLjY1YS44NC44NCAwIDAgMC0uMjgtLjY0Yy0uMi0uMTktLjQ4LS4zLS43OC0uMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveDIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3gyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDcuMDVjLjA2LS4zLjE4LS42My40LTFINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NWMuMzUgMCAuNjkuMDYgMSAuMTdWNmEzIDMgMCAwIDAtMy0zSDZabTcuODUgNC44NWEuNS41IDAgMCAwLS43LS43TDguNSAxMS43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDUtNVpNMTUuOTMgMTNjLS4zLjAyLS42Ny4xNi0xLjA1LjZhLjUuNSAwIDEgMS0uNzYtLjY1Yy41NC0uNjEgMS4xNS0uOTEgMS43Ni0uOTUuNi0uMDMgMS4xNC4yIDEuNTIuNTcuMzguMzYuNjMuODguNTkgMS40My0uMDQuNTctLjM4IDEuMS0uOTkgMS40NS0xLjEuNjQtMS42IDEuMi0xLjgyIDEuNTVoMi4zMmEuNS41IDAgMSAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS40NSAxLjQzIDEuNDMgMCAwIDEgLjAzLS4zNGMuMDQtLjE5LjEyLS40Mi4yOC0uN2E1LjggNS44IDAgMCAxIDIuMi0xLjkzYy4zNi0uMjEuNDctLjQ2LjQ4LS42NWEuODQuODQgMCAwIDAtLjI4LS42NGMtLjItLjE5LS40OC0uMy0uNzgtLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3gyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3gyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDEwYy4xMS0xLjg2IDEuMzgtMi44NSAyLjEtMy4zOGExLjc1IDEuNzUgMCAwIDEtMS42NS0yLjg4IDMuOCAzLjggMCAwIDEgMy40Ny0xLjE4Yy4yOC4wNi41Ni4xNS44My4yOXYtNy42QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVabTEyLjgxIDE1LjM1Yy0uNy41LTEuNyAxLjIzLTEuOCAyLjY1bC0uMDEuMjVjMCAuNDEuMzQuNzUuNzUuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTIuMDZhMy40NSAzLjQ1IDAgMCAxIDEuMDktMWwuMDQtLjAzYy4yMi0uMTYuNDctLjM0LjcyLS41Ni41LS40Ni45Ni0xLjA4Ljk2LTIgMC0uNjMtLjE3LTEuMTgtLjUtMS42YTIuMDUgMi4wNSAwIDAgMC0xLjI3LS43NiAyLjggMi44IDAgMCAwLTIuNTQuODYuNzUuNzUgMCAxIDAgMS4xMiAxYy4yNy0uMy43Ni0uNDcgMS4xMy0uNC4xNy4wNC4zLjEyLjM4LjIyLjA5LjExLjE4LjMxLjE4LjY4IDAgLjU1LS4zNS44My0xLjE5IDEuNDRabS0xLjc4LTkuMDctNi43NSA2Ljc1Yy0uMy4yOS0uNzcuMjktMS4wNiAwbC0yLjc1LTIuNzVhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNkwxMCAxNC40NGw2LjIyLTYuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94MjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveDIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDEwYy4wNC0uNTguMTktMS4wOC40LTEuNUg2LjI0Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djcuMjVhMy41IDMuNSAwIDAgMSAxLjUuMzV2LTcuNkMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wm0xMS41NiAxNi41YTIuODYgMi44NiAwIDAgMC0uNTYgMS43NWMwIC40MS4zNC43NS43NS43NWgzYS43NS43NSAwIDAgMCAwLTEuNWgtMi4wNmEzLjQ1IDMuNDUgMCAwIDEgMS4wOS0xbC4wNC0uMDNjLjIyLS4xNi40Ny0uMzQuNzItLjU2LjUtLjQ2Ljk2LTEuMDguOTYtMiAwLS42My0uMTctMS4xOC0uNS0xLjZhMi4wNSAyLjA1IDAgMCAwLTEuMjctLjc2IDIuODIgMi44MiAwIDAgMC0yLjU0Ljg2Ljc1Ljc1IDAgMSAwIDEuMTIgMSAxLjMyIDEuMzIgMCAwIDEgMS4xMy0uNGMuMTcuMDQuMy4xMi4zOC4yMi4wOS4xMS4xOC4zMS4xOC42OCAwIC40NS0uMjMuNzItLjc3IDEuMTMtLjEzLjEtLjI2LjItLjQyLjMtLjQuMy0uODguNjUtMS4yNSAxLjE2Wm0tLjUzLTEwLjIyYS43NS43NSAwIDEgMC0xLjA2LTEuMDZMMTAgMTQuNDRsLTIuMjItMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNzUgMi43NWMuMjkuMjkuNzYuMjkgMS4wNiAwbDYuNzUtNi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94QXJyb3dSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94QXJyb3dSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSAyYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDQuMkE1LjUgNS41IDAgMCAxIDE2IDkuMlY1YTMgMyAwIDAgMC0zLTNINVptNy44NSA0Ljg1LTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMSAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRhLjUuNSAwIDAgMSAuNy43Wk0xNC41IDEwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94QXJyb3dSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveEFycm93UmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNC4yYy0uMDgtLjMyLS4xNS0uNjYtLjE4LTFINWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NC4wMmMuMzQuMDMuNjguMSAxIC4xOVY1YTMgMyAwIDAgMC0zLTNINVptNy44NSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMNy41IDEwLjc5IDUuODUgOS4xNWEuNS41IDAgMSAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw1LTVaTTE0LjUgMTBhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hBcnJvd1JpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hBcnJvd1JpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01LjI1IDJBMy4yNSAzLjI1IDAgMCAwIDIgNS4yNXYxMS41QzIgMTguNTUgMy40NiAyMCA1LjI1IDIwaDYuMjVhNi41IDYuNSAwIDAgMSA4LjUtOC41VjUuMjVDMjAgMy40NSAxOC41NCAyIDE2Ljc1IDJINS4yNVptMTEuMDMgNi4yOC02Ljc1IDYuNzVjLS4zLjI5LS43Ny4yOS0xLjA2IDBsLTIuNzUtMi43NWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2TDkgMTMuNDRsNi4yMi02LjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZaTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTMgNWEuNS41IDAgMCAwIDAgMWg0LjhsLTEuNjUgMS42NWEuNS41IDAgMCAwIC43LjdsMi41LTIuNWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNy43TDE5LjI5IDE3SDE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveEFycm93UmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hBcnJvd1JpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS4yNSAyQTMuMjUgMy4yNSAwIDAgMCAyIDUuMjV2MTEuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGg2LjI1Yy0uMi0uNDctLjM0LS45OC0uNDItMS41SDUuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY1LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NS44M2MuNTIuMDggMS4wMy4yMiAxLjUuNDJWNS4yNUMyMCAzLjQ1IDE4LjU0IDIgMTYuNzUgMkg1LjI1Wm0xMS4wMyA2LjI4YS43NS43NSAwIDEgMC0xLjA2LTEuMDZMOSAxMy40NGwtMi4yMi0yLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi43NSAyLjc1Yy4yOS4yOS43Ni4yOSAxLjA2IDBsNi43NS02Ljc1Wk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabS0zIDVhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcuN0wxOS4yOSAxN0gxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hDaGVja2VkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdabTYuMzUgNC44NS0zLjUgMy41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMSAxIC43LS43TDcgOS4yOWwzLjE1LTMuMTRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94Q2hlY2tlZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMmgtN1pNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxMS41di03Wm03Ljg1IDIuMzVhLjUuNSAwIDAgMC0uNy0uN0w3IDkuMjkgNS44NSA4LjE1YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLjUtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hDaGVja2VkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm03Ljg1IDQuODUtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveENoZWNrZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hDaGVja2VkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlptOS44NSAxLjg1YS41LjUgMCAwIDAtLjctLjdMOC41IDExLjc5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hDaGVja2VkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVabTExLjAzIDYuMjgtNi43NSA2Ljc1Yy0uMy4yOS0uNzcuMjktMS4wNiAwbC0yLjc1LTIuNzVhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNkwxMCAxNC40NGw2LjIyLTYuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94Q2hlY2tlZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveENoZWNrZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVaTTQuNSA2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MTEuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjYuMjVabTEyLjc4IDMuMDNhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkwxMCAxNC40NGwtMi4yMi0yLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi43NSAyLjc1Yy4yOS4yOS43Ni4yOSAxLjA2IDBsNi43NS02Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkU3luYzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94Q2hlY2tlZFN5bmMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2N0EyLjUgMi41IDAgMCAwIDIuNSAxMmgzLjUyQTUuNSA1LjUgMCAwIDEgMTIgNi4wMlYyLjVBMi41IDIuNSAwIDAgMCA5LjUgMGgtN1ptNi4zNSA0Ljg1LTMuNSAzLjVhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjctLjdMNSA3LjI5bDMuMTUtMy4xNGEuNS41IDAgMSAxIC43LjdaTTcgMTEuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTJhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTggMS45OCAwIDAgMC0xLjcyLS4xIDIgMiAwIDAgMC0uNjYuNDQuNS41IDAgMCAxLS43MS0uNzFBMyAzIDAgMCAxIDEzIDkuMTVWOWMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE0YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxMWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hDaGVja2VkU3luYzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveENoZWNrZWRTeW5jMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXY3QTIuNSAyLjUgMCAwIDAgMi41IDEyaDMuNTJhNS41NyA1LjU3IDAgMCAxIDAtMUgyLjVBMS41IDEuNSAwIDAgMSAxIDkuNXYtN0MxIDEuNjcgMS42NyAxIDIuNSAxaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2My41MmE1LjU3IDUuNTcgMCAwIDEgMSAwVjIuNUEyLjUgMi41IDAgMCAwIDkuNSAwaC03Wm02LjM1IDQuODVhLjUuNSAwIDEgMC0uNy0uN0w1IDcuMjkgMy44NSA2LjE1YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLjUtMy41Wk03IDExLjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDEyYS41LjUgMCAwIDEgMC0xaC40N2ExLjk4IDEuOTggMCAwIDAtMS43Mi0uMSAyIDIgMCAwIDAtLjY2LjQ0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSAxMyA5LjE1VjljMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxNGEuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTFhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94Q2hlY2tlZFN5bmMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveENoZWNrZWRTeW5jMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNC4yQTUuNSA1LjUgMCAwIDEgMTYgOS4yVjVhMyAzIDAgMCAwLTMtM0g1Wm03Ljg1IDQuODUtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAxIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94Q2hlY2tlZFN5bmMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hDaGVja2VkU3luYzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g0LjJjLS4wOC0uMzItLjE1LS42Ni0uMTgtMUg1YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY0LjAyYy4zNC4wMy42OC4xIDEgLjE5VjVhMyAzIDAgMCAwLTMtM0g1Wm03Ljg1IDQuODVhLjUuNSAwIDAgMC0uNy0uN0w3LjUgMTAuNzkgNS44NSA5LjE1YS41LjUgMCAxIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDUtNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hJbmRldGVybWluYXRlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hJbmRldGVybWluYXRlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdabS0xIDIuNWExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0xIDFoLTdhMSAxIDAgMCAxLTEtMXYtN1ptMiAuNWEuNS41IDAgMCAwLS41LjV2NWMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgLjUtLjV2LTVhLjUuNSAwIDAgMC0uNS0uNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94SW5kZXRlcm1pbmF0ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveEluZGV0ZXJtaW5hdGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdaTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTEuNXYtN1pNNSA0YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94SW5kZXRlcm1pbmF0ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94SW5kZXRlcm1pbmF0ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNC41IDZjMC0uODMuNjctMS41IDEuNS0xLjVoOGMuODMgMCAxLjUuNjcgMS41IDEuNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNUg2QTEuNSAxLjUgMCAwIDEgNC41IDE0VjZaTTcgNmExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveEluZGV0ZXJtaW5hdGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hJbmRldGVybWluYXRlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlptMi41LTFDNS42NyA1IDUgNS42NyA1IDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94SW5kZXRlcm1pbmF0ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94SW5kZXRlcm1pbmF0ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk01IDYuMjVDNSA1LjU2IDUuNTYgNSA2LjI1IDVoMTEuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxMS41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg2LjI1QzUuNTYgMTkgNSAxOC40NCA1IDE3Ljc1VjYuMjVabTIuNS4yNWExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWg5YTEgMSAwIDAgMCAxLTF2LTlhMSAxIDAgMCAwLTEtMWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94SW5kZXRlcm1pbmF0ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveEluZGV0ZXJtaW5hdGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVaTTQuNSA2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MTEuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjYuMjVaTTcuMjUgNkM2LjU2IDYgNiA2LjU2IDYgNy4yNXY5LjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoOS41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtOS41QzE4IDYuNTYgMTcuNDQgNiAxNi43NSA2aC05LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveFBlcnNvbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94UGVyc29uMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgMUEyLjUgMi41IDAgMCAwIDEgMy41djdBMi41IDIuNSAwIDAgMCAzLjUgMTNoNC41NWEyLjUgMi41IDAgMCAxIDIuMjItMS45OUEzIDMgMCAwIDEgMTMgNi4wNFYzLjVBMi41IDIuNSAwIDAgMCAxMC41IDFoLTdabTYuMzUgNC44NS0zLjUgMy41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMSAxIC43LS43TDYgOC4yOWwzLjE1LTMuMTRhLjUuNSAwIDEgMSAuNy43Wk0xNC41IDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzkgMTQuNzUgOSAxMy41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveFBlcnNvbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveFBlcnNvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNSAxQTIuNSAyLjUgMCAwIDAgMSAzLjV2N0EyLjUgMi41IDAgMCAwIDMuNSAxM2g0LjU1Yy4wNy0uMzcuMjMtLjcuNDUtMWgtNUExLjUgMS41IDAgMCAxIDIgMTAuNXYtN0MyIDIuNjcgMi42NyAyIDMuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi41NGEzLjAyIDMuMDIgMCAwIDEgMSAwVjMuNUEyLjUgMi41IDAgMCAwIDEwLjUgMWgtN1ptNi4zNSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMNiA4LjI5IDQuODUgNy4xNWEuNS41IDAgMSAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMy41LTMuNVpNMTQuNSA5YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVM5IDE0Ljc1IDkgMTMuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hQZXJzb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveFBlcnNvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDUuMDRhMi41IDIuNSAwIDAgMSAyLjIzLTIuOTlBMi45OSAyLjk5IDAgMCAxIDE1LjUgOWMuNTUgMCAxLjA2LjE1IDEuNS40VjZhMyAzIDAgMCAwLTMtM0g2Wm03Ljg1IDQuODUtNSA1YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS42NSAxLjY0IDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94UGVyc29uMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94UGVyc29uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDUuMDRhMy4zIDMuMyAwIDAgMSAuMDEtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjA0Yy4zNi4wNi43LjE5IDEgLjM2VjZhMyAzIDAgMCAwLTMtM0g2Wm03Ljg1IDQuODVhLjUuNSAwIDAgMC0uNy0uN0w4LjUgMTEuNzlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw1LTVaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94UGVyc29uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hQZXJzb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoNi45MmEzLjc0IDMuNzQgMCAwIDEtLjE3LTEuMTN2LS4xQTIuNzcgMi43NyAwIDAgMSAxNS43NyAxN2guMjhhMy40OSAzLjQ5IDAgMCAxIDIuNDUtNmMuOTggMCAxLjg2LjQgMi41IDEuMDV2LTUuOEMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wm0xMS4wMyA2LjI4LTYuNzUgNi43NWMtLjMuMjktLjc3LjI5LTEuMDYgMGwtMi43NS0yLjc1YS43NS43NSAwIDAgMSAxLjA2LTEuMDZMMTAgMTQuNDRsNi4yMi02LjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZaTTIxIDE0LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgNS4zOGMwIDEuNTUtMS4yOSAzLjEyLTQuNSAzLjEyUzE0IDIxLjQ0IDE0IDE5Ljg3di0uMWMwLS45OC44LTEuNzcgMS43Ny0xLjc3aDUuNDZjLjk4IDAgMS43Ny44IDEuNzcgMS43N3YuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94UGVyc29uMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94UGVyc29uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWg2LjkyYTMuNzQgMy43NCAwIDAgMS0uMTctMS4xM3YtLjFsLjAxLS4yN0g2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djQuOWEzLjUgMy41IDAgMCAxIDEuNS45di01LjhDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVptMTEuMDMgNi4yOGEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDEwIDE0LjQ0bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjc1IDIuNzVjLjI5LjI5Ljc2LjI5IDEuMDYgMGw2Ljc1LTYuNzVaTTIxIDE0LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgNS4zOGMwIDEuNTUtMS4yOSAzLjEyLTQuNSAzLjEyUzE0IDIxLjQ0IDE0IDE5Ljg3di0uMWMwLS45OC44LTEuNzcgMS43Ny0xLjc3aDUuNDZjLjk4IDAgMS43Ny44IDEuNzcgMS43N3YuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94VW5jaGVja2VkMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hVbmNoZWNrZWQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDRhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRabTItLjVhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41VjRhLjUuNSAwIDAgMC0uNS0uNUg0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hVbmNoZWNrZWQxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hVbmNoZWNrZWQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmg0YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hVbmNoZWNrZWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveFVuY2hlY2tlZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wm0yLjUtMWExIDEgMCAwIDAtMSAxdjdhMSAxIDAgMCAwIDEgMWg3YTEgMSAwIDAgMCAxLTF2LTdhMSAxIDAgMCAwLTEtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94VW5jaGVja2VkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94VW5jaGVja2VkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hVbmNoZWNrZWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveFVuY2hlY2tlZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0xLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djhjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNmMwLS44My0uNjctMS41LTEuNS0xLjVINlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94VW5jaGVja2VkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94VW5jaGVja2VkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptMy0yYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94VW5jaGVja2VkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hVbmNoZWNrZWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTYuMjUgNUM1LjU2IDUgNSA1LjU2IDUgNi4yNXYxMS41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDExLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjYuMjVDMTkgNS41NiAxOC40NCA1IDE3Ljc1IDVINi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94VW5jaGVja2VkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94VW5jaGVja2VkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNVpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djExLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTEuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNi4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94V2FybmluZzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrYm94V2FybmluZzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuMjdsMy40NC02LjlhMiAyIDAgMCAxIDMuNTggMGwuNzEgMS40MlY2YTMgMyAwIDAgMC0zLTNINlptNy44NSA0Ljg1LTUgNWEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCA0LjY1LTQuNjRhLjUuNSAwIDAgMSAuNy43Wm0tLjI1IDIuNy0zLjUgN0ExIDEgMCAwIDAgMTEgMTloN2ExIDEgMCAwIDAgLjktMS40NWwtMy41LTdhMSAxIDAgMCAwLTEuOCAwWk0xNSAxMi41djNhLjUuNSAwIDEgMS0xIDB2LTNhLjUuNSAwIDEgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja2JveFdhcm5pbmcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hXYXJuaW5nMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuMjdsLjUtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjY3Yy4xMS4xMy4yMS4yNy4zLjQ0bC43IDEuNDFWNmEzIDMgMCAwIDAtMy0zSDZabTcuODUgNC44NWEuNS41IDAgMCAwLS43LS43TDguNSAxMS43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDUtNVptLS4yNSAyLjctMy41IDdBMSAxIDAgMCAwIDExIDE5aDdhMSAxIDAgMCAwIC45LTEuNDVsLTMuNS03YTEgMSAwIDAgMC0xLjggMFpNMTUgMTIuNXYzYS41LjUgMCAxIDEtMSAwdi0zYS41LjUgMCAxIDEgMSAwWm0tLjUgNS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2tib3hXYXJuaW5nMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2tib3hXYXJuaW5nMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDQuOGMuMDUtLjIuMTItLjQyLjIyLS42Mmw0LThhMi41IDIuNSAwIDAgMSA0LjQ3IDBMMjEgMTQuOVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVabTExLjAzIDYuMjgtNi43NSA2Ljc1Yy0uMy4yOS0uNzcuMjktMS4wNiAwbC0yLjc1LTIuNzVhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNkwxMCAxNC40NGw2LjIyLTYuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlptLTEuMTIgMy41NS00IDhBMS41IDEuNSAwIDAgMCAxMy41MSAyM2g4YTEuNSAxLjUgMCAwIDAgMS4zMy0yLjE3bC00LThhMS41IDEuNSAwIDAgMC0yLjY4IDBaTTE4IDE1LjV2M2EuNS41IDAgMCAxLTEgMHYtM2EuNS41IDAgMCAxIDEgMFptLS41IDUuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrYm94V2FybmluZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja2JveFdhcm5pbmcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDQuOGMuMDUtLjIuMTItLjQyLjIyLS42MmwuNDQtLjg4SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NS43NGMuMDkuMTIuMTcuMjUuMjQuNEwyMSAxNC45VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVptMTEuMDMgNi4yOGEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDEwIDE0LjQ0bC0yLjIyLTIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjc1IDIuNzVjLjI5LjI5Ljc2LjI5IDEuMDYgMGw2Ljc1LTYuNzVabS0xLjEyIDMuNTUtNCA4QTEuNSAxLjUgMCAwIDAgMTMuNTEgMjNoOGExLjUgMS41IDAgMCAwIDEuMzMtMi4xN2wtNC04YTEuNSAxLjUgMCAwIDAtMi42OCAwWk0xOCAxNS41djNhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMSAxIDBabS0uNSA1LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmsxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmsxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTkuNzYgMy4yYy4zLjI5LjMyLjc2LjA0IDEuMDZsLTQuMjUgNC41YS43NS43NSAwIDAgMS0xLjA4LjAyTDIuMjIgNi41M2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bDEuNyAxLjdMOC43IDMuMjRhLjc1Ljc1IDAgMCAxIDEuMDYtLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFyazEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTkuODUgMy4xNWMuMi4yLjIuNSAwIC43bC00LjUgNC41YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAxIDEgLjctLjdMNSA3LjI5bDQuMTUtNC4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFyazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFyazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQuMDUgMy40OWMuMjguMy4yNy43Ny0uMDQgMS4wNmwtNy45MyA3LjQ3QS44NS44NSAwIDAgMSA0LjkgMTJMMi4yMiA5LjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4yNCAyLjI3IDcuNDctNy4wNGEuNzUuNzUgMCAwIDEgMS4wNi4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFyazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmsxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMy44NiAzLjY2YS41LjUgMCAwIDEtLjAyLjdsLTcuOTMgNy40OGEuNi42IDAgMCAxLS44NC0uMDJMMi40IDkuMWEuNS41IDAgMCAxIC43Mi0uN2wyLjQgMi40NCA3LjY1LTcuMmEuNS41IDAgMCAxIC43LjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjAzIDEzLjkgMy41NiAxMGEuNzUuNzUgMCAwIDAtMS4xMiAxbDQgNC41Yy4yOS4zMi43OS4zNCAxLjA5LjAzbDEwLjUtMTAuNWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC05Ljk0IDkuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy4zNyAxMC4xN2EuNS41IDAgMCAwLS43NC42Nmw0IDQuNWMuMTkuMjIuNTIuMjMuNzIuMDJsMTAuNS0xMC41YS41LjUgMCAwIDAtLjctLjdMNy4wMiAxNC4yN2wtMy42NS00LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmsyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTguNSAxNi41OS0zLjgtMy44YTEgMSAwIDAgMC0xLjQgMS40Mmw0LjUgNC41YTEgMSAwIDAgMCAxLjQgMGwxMS0xMWExIDEgMCAwIDAtMS40LTEuNDJMOC41IDE2LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC41MyAxMi45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDQuNSA0LjVjLjMuMy43Ny4zIDEuMDYgMGwxMS0xMWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDguNSAxNi45NGwtMy45Ny0zLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrMjhGaWxsZWQnLCBcIjI4XCIsIFtcIm0xMC41IDE5LjU5LTYuMy02LjNhMSAxIDAgMCAwLTEuNCAxLjQybDcgN2ExIDEgMCAwIDAgMS40IDBsMTQtMTRhMSAxIDAgMCAwLTEuNC0xLjQyTDEwLjUgMTkuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFyazI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmsyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk00LjAzIDEzLjQ3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsNyA3Yy4zLjMuNzcuMyAxLjA2IDBsMTQtMTRhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwxMC41IDE5Ljk0bC02LjQ3LTYuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmszMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmszMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI5LjkgNS4xNGMuNDguNS40NiAxLjMtLjA0IDEuNzdsLTE5IDE4YTEuMjUgMS4yNSAwIDAgMS0xLjc3LS4wNkwyLjM0IDE3LjZhMS4yNSAxLjI1IDAgMCAxIDEuODItMS43bDUuOSA2LjMzTDI4LjE0IDUuMDljLjUtLjQ3IDEuMy0uNDUgMS43Ny4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFyazMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrMzJMaWdodCcsIFwiMzJcIiwgW1wiTTI5Ljg1IDUuMTVjLjIuMi4yLjUgMCAuN2wtMTkgMTlhLjUuNSAwIDAgMS0uNyAwbC04LThhLjUuNSAwIDAgMSAuNy0uN2w3LjY1IDcuNjRMMjkuMTUgNS4xNWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFyazMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmszMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yOS43MyA1LjMxYTEgMSAwIDAgMS0uMDQgMS40MmwtMTkgMThhMSAxIDAgMCAxLTEuNDItLjA1bC03LTcuNWExIDEgMCAxIDEgMS40Ni0xLjM2bDYuMzEgNi43NiAxOC4yNy0xNy4zYTEgMSAwIDAgMSAxLjQyLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00MC4zMiAxMi43YTEuNSAxLjUgMCAwIDEtLjAyIDIuMTJsLTIyLjI1IDIyYTEuNSAxLjUgMCAwIDEtMi4xIDBsLTkuMjUtOWExLjUgMS41IDAgMSAxIDIuMS0yLjE1bDguMiA3Ljk4IDIxLjItMjAuOTdhMS41IDEuNSAwIDAgMSAyLjEyLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFyazQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTQwLjE0IDEyLjg3Yy40OC41LjQ4IDEuMjgtLjAxIDEuNzdsLTIyLjI1IDIyYy0uNDkuNDgtMS4yNi40OC0xLjc1IDBsLTkuMjUtOWExLjI1IDEuMjUgMCAxIDEgMS43NC0xLjc5TDE3IDM0bDIxLjM4LTIxLjE0Yy41LS40OCAxLjI4LS40OCAxLjc3LjAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xIDZhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDEgNlptNy4zNS0uOWEuNS41IDAgMSAwLS43LS43TDUuNSA2LjU0IDQuMzUgNS40YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwyLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTguMzUgNS4xYS41LjUgMCAxIDAtLjctLjdMNS41IDYuNTQgNC4zNSA1LjRhLjUuNSAwIDEgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVaTTYgMWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgNiAxWk0yIDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMi4xMiA0LjE2TDcuMjUgOS4wNGwtMS40LTEuNGEuNS41IDAgMSAwLS43LjcxTDYuOSAxMC4xYy4yLjIuNS4yLjcgMGwzLjIzLTMuMjNhLjUuNSAwIDAgMC0uNzEtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDEgMSAwIDEyQTYgNiAwIDAgMSA4IDJabTAgMWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgOCAzWm0tLjc1IDYuMDQgMi44Ny0yLjg4YS41LjUgMCAwIDEgLjc3LjY0bC0uMDYuMDdMNy42IDEwLjFhLjUuNSAwIDAgMS0uNjMuMDZsLS4wNy0uMDYtMS43NS0xLjc1YS41LjUgMCAwIDEgLjYzLS43NmwuMDcuMDYgMS40IDEuNCAyLjg3LTIuODktMi44NyAyLjg4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0zLjM2IDUuNjVhLjUuNSAwIDAgMC0uNjQtLjA2bC0uMDcuMDZMOSAxMS4zIDcuMzUgOS42NWwtLjA3LS4wNmEuNS41IDAgMCAwLS43LjdsLjA3LjA3IDIgMiAuMDcuMDZjLjE3LjExLjQuMTEuNTYgMGwuMDctLjA2IDQtNCAuMDctLjA4YS41LjUgMCAwIDAtLjA2LS42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabTMuMzYgNC42NWMuMTcuMTcuMi40NC4wNi42M2wtLjA2LjA3LTQgNGEuNS41IDAgMCAxLS42NC4wN2wtLjA3LS4wNi0yLTJhLjUuNSAwIDAgMSAuNjMtLjc3bC4wNy4wNkw5IDExLjNsMy42NS0zLjY1Yy4yLS4yLjUxLS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBabTMuMjIgNi45Ny00LjQ3IDQuNDctMS45Ny0xLjk3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwbDUtNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wm0tMS4yNSA5Ljk0IDQuNDctNC40N2EuNzUuNzUgMCAwIDEgMS4xMy45OGwtLjA3LjA4LTUgNWEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTIuNS0yLjVhLjc1Ljc1IDAgMCAxIC45OC0xLjEzbC4wOC4wNyAxLjk3IDEuOTcgNC40Ny00LjQ3LTQuNDcgNC40N1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiAxNmExNCAxNCAwIDEgMSAyOCAwIDE0IDE0IDAgMCAxLTI4IDBabTIwLjctMy4zYTEgMSAwIDAgMC0xLjQtMS40bC02LjggNi43OS0zLjMtMy4zYTEgMSAwIDAgMC0xLjQgMS40Mmw0IDRhMSAxIDAgMCAwIDEuNCAwbDcuNS03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGUzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZTMyTGlnaHQnLCBcIjMyXCIsIFtcIk0zIDE2YTEzIDEzIDAgMSAxIDI2IDAgMTMgMTMgMCAwIDEtMjYgMFpNMTYgMmExNCAxNCAwIDEgMCAwIDI4IDE0IDE0IDAgMCAwIDAtMjhabTYuODUgMTAuMzVhLjUuNSAwIDAgMC0uNy0uN2wtNy42NSA3LjY0LTMuNjUtMy42NGEuNS41IDAgMCAwLS43LjdsNCA0Yy4yLjIuNS4yLjcgMGw4LThaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjIuNyAxMi43YTEgMSAwIDAgMC0xLjQtMS40bC02LjggNi43OS0zLjMtMy4zYTEgMSAwIDAgMC0xLjQgMS40Mmw0IDRhMSAxIDAgMCAwIDEuNCAwbDcuNS03LjVaTTE2IDJhMTQgMTQgMCAxIDAgMCAyOCAxNCAxNCAwIDAgMCAwLTI4Wk00IDE2YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMCAxIDAtNDBabTguNjMgMTMuNjJhMS4yNSAxLjI1IDAgMCAwLTEuNjYtLjFsLS4xLjEtMTAuMTIgMTAuMTEtMy42Mi0zLjYxYTEuMjUgMS4yNSAwIDAgMC0xLjg1IDEuNjZsLjA5LjEgNC41IDQuNWMuNDUuNDYgMS4xNy40OSAxLjY2LjFsLjEtLjEgMTEtMTFjLjUtLjQ4LjUtMS4yOCAwLTEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMCAxIDAtNDBabTAgMi41YTE3LjUgMTcuNSAwIDEgMCAwIDM1IDE3LjUgMTcuNSAwIDAgMCAwLTM1Wm04LjYzIDExLjEyYy41LjQ4LjUgMS4yOCAwIDEuNzZsLTExIDExYy0uNDguNS0xLjI4LjUtMS43NiAwbC00LjUtNC41YTEuMjUgMS4yNSAwIDAgMSAxLjc2LTEuNzZsMy42MiAzLjYxIDEwLjEyLTEwLjExYTEuMjUgMS4yNSAwIDAgMSAxLjc2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtDaXJjbGVTcXVhcmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVTcXVhcmUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS01LjE1LTIgMmEuNS41IDAgMCAxLS43IDBsLTEtMWEuNS41IDAgMSAxIC43LS43bC42NS42NCAxLjY1LTEuNjRhLjUuNSAwIDEgMSAuNy43Wk02IDEwLjk4djEuNTJBMi41IDIuNSAwIDAgMCA4LjUgMTVoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTRBMi41IDIuNSAwIDAgMCAxMi41IDZoLTEuNTJjLS4wMy4zNC0uMS42OC0uMTkgMWgxLjcxYy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNyAxMi41di0xLjdjLS4zMi4wOC0uNjYuMTUtMSAuMThabTYuMzUtMS4xM2EuNS41IDAgMCAwLS43LS43TDEwIDEwLjc5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVNxdWFyZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVTcXVhcmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk05IDUuNWEzLjUgMy41IDAgMSAwLTcgMCAzLjUgMy41IDAgMCAwIDcgMFptMSAwYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNCA3di0xLjUyYy4zNC0uMDMuNjgtLjEgMS0uMTl2MS43MWMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuN2MuMDktLjMyLjE1LS42Ni4xOC0xaDEuNTJBMi41IDIuNSAwIDAgMSAxNSA4LjV2NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTRBMi41IDIuNSAwIDAgMSA2IDEyLjVabTEuMzUtOC4zNWMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDEgMSAuNy0uN2wuNjUuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWm01IDUuN2EuNS41IDAgMCAwLS43LS43TDEwIDEwLjc5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVNxdWFyZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVNxdWFyZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNyAxM0E2IDYgMCAxIDAgNyAxYTYgNiAwIDAgMCAwIDEyWm0yLjg1LTcuMTUtMyAzYS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMSAxIC43LS43TDYuNSA3Ljc5bDIuNjUtMi42NGEuNS41IDAgMSAxIC43LjdaTTggMTMuOTNWMTZhMyAzIDAgMCAwIDMgM2g1YTMgMyAwIDAgMCAzLTN2LTVhMyAzIDAgMCAwLTMtM2gtMi4wN2MtLjA1LjM0LS4xMi42OC0uMjIgMUgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi0yLjI5Yy0uMzIuMS0uNjYuMTctMSAuMjJabTguMzUtMS41OGEuNS41IDAgMCAwLS43LS43TDEzIDE0LjI5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDMtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVNxdWFyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVTcXVhcmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMiA3QTUgNSAwIDEgMCAyIDdhNSA1IDAgMCAwIDEwIDBabTEgMEE2IDYgMCAxIDEgMSA3YTYgNiAwIDAgMSAxMiAwWm0tNSA5di0yLjA3Yy4zNC0uMDUuNjgtLjEyIDEtLjIyVjE2YzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC0yLTJoLTIuMjljLjEtLjMyLjE3LS42Ni4yMi0xSDE2YTMgMyAwIDAgMSAzIDN2NWEzIDMgMCAwIDEtMyAzaC01YTMgMyAwIDAgMS0zLTNaTTkuODUgNS4xNWMuMi4yLjIuNSAwIC43bC0zIDNhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjctLjdMNi41IDcuNzlsMi42NS0yLjY0Yy4yLS4yLjUtLjIuNyAwWm0zLjUgMTAuMiAzLTNhLjUuNSAwIDAgMC0uNy0uN0wxMyAxNC4yOWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVNxdWFyZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVNxdWFyZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOC41IDE2YTcuNSA3LjUgMCAxIDAgMC0xNSA3LjUgNy41IDAgMCAwIDAgMTVabTMuNzgtOS4yMi00IDRjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxLjQ3IDEuNDcgMy40Ny0zLjQ3YS43NS43NSAwIDEgMSAxLjA2IDEuMDZabTggNi45NGMuMy4zLjMuNzcgMCAxLjA2bC00IDRjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwxLjQ3IDEuNDcgMy40Ny0zLjQ3Yy4zLS4zLjc3LS4zIDEuMDYgMFpNOS43NSAyMHYtMy4xYy41Mi0uMDcgMS4wMi0uMTkgMS41LS4zNVYyMGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg3Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtN2MwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTMuNDVjLjE2LS40OC4yOC0uOTguMzYtMS41SDIwYzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2N2MwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC03QTMuMjUgMy4yNSAwIDAgMSA5Ljc1IDIwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlU3F1YXJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVNxdWFyZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0LjUgOC41YTYgNiAwIDEgMC0xMiAwIDYgNiAwIDAgMCAxMiAwWm0xLjUgMGE3LjUgNy41IDAgMSAxLTE1IDAgNy41IDcuNSAwIDAgMSAxNSAwWm00LjI4IDYuMjhhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMy40NyAzLjQ3LTEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIgMmMuMy4zLjc3LjMgMS4wNiAwbDQtNFptLTgtOS4wNmMuMy4zLjMuNzcgMCAxLjA2bC00IDRjLS4zLjMtLjc3LjMtMS4wNiAwbC0yLTJhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxLjQ3IDEuNDcgMy40Ny0zLjQ3Yy4zLS4zLjc3LS4zIDEuMDYgMFpNOS43NSAyMHYtMy4xYy41Mi0uMDcgMS4wMi0uMTkgMS41LS4zNVYyMGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg3Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtN2MwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTMuNDVjLjE2LS40OC4yOC0uOTguMzYtMS41SDIwYzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2N2MwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC03QTMuMjUgMy4yNSAwIDAgMSA5Ljc1IDIwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlV2FybmluZzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0NpcmNsZVdhcm5pbmcxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcgMWE2IDYgMCAwIDEgNiA1LjY2IDIgMiAwIDAgMC0zLjI5LjQ1TDYuNzcgMTNBNiA2IDAgMCAxIDcgMVptMi4xMiA0LjE2TDYuMjUgOC4wNGwtMS40LTEuNGEuNS41IDAgMSAwLS43LjcxTDUuOSA5LjFjLjIuMi41LjIuNyAwbDMuMjMtMy4yM2EuNS41IDAgMCAwLS43MS0uN1ptMS40OCAyLjRhMSAxIDAgMCAxIDEuOCAwbDMuNSA3QTEgMSAwIDAgMSAxNSAxNkg4YTEgMSAwIDAgMS0uOS0xLjQ1bDMuNS03Wk0xMiA5LjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMSAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVdhcm5pbmcxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlV2FybmluZzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcgMWE2IDYgMCAwIDEgNiA1LjY2Yy0uMy0uMzMtLjY5LS41NC0xLjEtLjYyQTUgNSAwIDEgMCA3LjI4IDEybC0uNSAxQTYgNiAwIDAgMSA3IDFabS0uNzUgNy4wNCAyLjg3LTIuODhhLjUuNSAwIDAgMSAuNzcuNjRsLS4wNi4wN0w2LjYgOS4xYS41LjUgMCAwIDEtLjYzLjA2TDUuOSA5LjEgNC4xNSA3LjM1YS41LjUgMCAwIDEgLjYzLS43NmwuMDcuMDYgMS40IDEuNFptNC4zNS0uNDlhMSAxIDAgMCAxIDEuOCAwbDMuNSA3QTEgMSAwIDAgMSAxNSAxNkg4YTEgMSAwIDAgMS0uOS0xLjQ1bDMuNS03Wk0xMiA5LjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMSAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVdhcm5pbmcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVXYXJuaW5nMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDAgMSA3Ljc0IDEwLjAxbC0uNDUtLjlhMiAyIDAgMCAwLTMuNTggMEwxMC4yNyAxOEgxMGE4IDggMCAxIDEgMC0xNlptMy4zNiA1LjY1YS41LjUgMCAwIDAtLjY0LS4wNmwtLjA3LjA2TDkgMTEuMyA3LjM1IDkuNjVsLS4wNy0uMDZhLjUuNSAwIDAgMC0uNy43bC4wNy4wNyAyIDIgLjA3LjA2Yy4xNy4xMS40LjExLjU2IDBsLjA3LS4wNiA0LTQgLjA3LS4wOGEuNS41IDAgMCAwLS4wNi0uNjNabTEuMjQgMy45YTEgMSAwIDAgMSAxLjggMGwzLjUgN0ExIDEgMCAwIDEgMTkgMjBoLTdhMSAxIDAgMCAxLS45LTEuNDVsMy41LTdaTTE2IDEzLjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMSAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVdhcm5pbmcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrQ2lyY2xlV2FybmluZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMCAxIDcuNzQgMTAuMDFsLS40NS0uOWMtLjA5LS4xOC0uMi0uMzQtLjMyLS40N2E3IDcgMCAxIDAtNi4xOCA2LjMyTDEwLjI3IDE4SDEwYTggOCAwIDEgMSAwLTE2Wm0zLjM2IDUuNjVjLjE3LjE3LjIuNDQuMDYuNjNsLS4wNi4wNy00IDRhLjUuNSAwIDAgMS0uNjQuMDdsLS4wNy0uMDYtMi0yYS41LjUgMCAwIDEgLjYzLS43N2wuMDcuMDZMOSAxMS4zbDMuNjUtMy42NWMuMi0uMi41MS0uMi43IDBabTEuMjQgMy45YTEgMSAwIDAgMSAxLjggMGwzLjUgN0ExIDEgMCAwIDEgMTkgMjBoLTdhMSAxIDAgMCAxLS45LTEuNDVsMy41LTdaTTE2IDEzLjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMSAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0NpcmNsZVdhcm5pbmcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVXYXJuaW5nMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMCAxIDkuNTQgMTNsLS44LTEuNjJhMi41IDIuNSAwIDAgMC00LjQ3IDBsLTQgOGMtLjEuMi0uMTcuNDEtLjIxLjYySDEyYTEwIDEwIDAgMCAxIDAtMjBabTMuMjIgNi45Ny00LjQ3IDQuNDctMS45Ny0xLjk3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi41IDIuNWMuMy4zLjc3LjMgMS4wNiAwbDUtNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2Wm0xLjk0IDQuODZhMS41IDEuNSAwIDAgMSAyLjY5IDBsNCA4Yy41IDEtLjIzIDIuMTctMS4zNSAyLjE3aC04YTEuNSAxLjUgMCAwIDEtMS4zNC0yLjE3bDQtOFpNMTkgMTYuNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWm0tLjUgNS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrQ2lyY2xlV2FybmluZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtDaXJjbGVXYXJuaW5nMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDAgMSA5LjU0IDEzbC0uOC0xLjYyYTIuNTggMi41OCAwIDAgMC0uMjktLjQ1IDguNSA4LjUgMCAxIDAtNy43MiA3LjU0bC0uNDYuOTFjLS4xLjItLjE3LjQxLS4yMS42MkgxMmExMCAxMCAwIDAgMSAwLTIwWm0tMS4yNSAxMS40NCA0LjQ3LTQuNDdhLjc1Ljc1IDAgMCAxIDEuMTMuOThsLS4wNy4wOC01IDVhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjUtMi41YS43NS43NSAwIDAgMSAuOTgtMS4xM2wuMDguMDcgMS45NyAxLjk3Wm02LjQxLjM5YTEuNSAxLjUgMCAwIDEgMi42OSAwbDQgOGMuNSAxLS4yMyAyLjE3LTEuMzUgMi4xN2gtOGExLjUgMS41IDAgMCAxLTEuMzQtMi4xN2w0LThaTTE5IDE2LjVhLjUuNSAwIDAgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM1ptLS41IDUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0xvY2sxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtMb2NrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03IDFhNiA2IDAgMCAxIDYgNi4yIDIuNSAyLjUgMCAwIDAtMy40NiAxLjg1QTIgMiAwIDAgMCA4IDExdjEuOTJBNiA2IDAgMSAxIDcgMVptMi4xMiA0LjE2TDYuMjUgOC4wNGwtMS40LTEuNGEuNS41IDAgMSAwLS43LjcxTDUuOSA5LjFjLjIuMi41LjIuNyAwbDMuMjMtMy4yM2EuNS41IDAgMCAwLS43MS0uN1ptMS4zIDQuODRoLjA4di0uNWExLjUgMS41IDAgMSAxIDMgMHYuNWguNWExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xdi0zYTEgMSAwIDAgMSAxLTFoLjQzWk0xMiA5YS41LjUgMCAwIDAtLjUuNXYuNWgxdi0uNUEuNS41IDAgMCAwIDEyIDlabS41IDMuNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0xvY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrTG9jazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcgMWE2IDYgMCAwIDEgNiA2LjIxIDIuNSAyLjUgMCAwIDAtMS0uMlY3YTUgNSAwIDEgMC00IDQuOXYxLjAyQTYgNiAwIDEgMSA3IDFabS0uNzUgNy4wNCAyLjg3LTIuODhhLjUuNSAwIDAgMSAuNzcuNjRsLS4wNi4wN0w2LjYgOS4xYS41LjUgMCAwIDEtLjYzLjA2TDUuOSA5LjEgNC4xNSA3LjM1YS41LjUgMCAwIDEgLjYzLS43NmwuMDcuMDYgMS40IDEuNFpNMTAuNSAxMEgxMGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMWgtLjV2LS41YTEuNSAxLjUgMCAwIDAtMyAwdi41Wm0xLS41YS41LjUgMCAwIDEgMSAwdi41aC0xdi0uNVpNMTIgMTNhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtMb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrTG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAwIDEgOCA4LjMzQTMgMyAwIDAgMCAxMi41IDEydi4wNkEyIDIgMCAwIDAgMTEgMTR2My45NEE4IDggMCAxIDEgMTAgMlptMy4zNiA1LjY1YS41LjUgMCAwIDAtLjY0LS4wNmwtLjA3LjA2TDkgMTEuMyA3LjM1IDkuNjVsLS4wNy0uMDZhLjUuNSAwIDAgMC0uNy43bC4wNy4wNyAyIDIgLjA3LjA2Yy4xNy4xMS40LjExLjU2IDBsLjA3LS4wNiA0LTQgLjA3LS4wOGEuNS41IDAgMCAwLS4wNi0uNjNaTTE1LjUgMTBhMiAyIDAgMCAxIDIgMnYxaC41YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWguNXYtMWMwLTEuMS45LTIgMi0yWm0tLjY1IDYuMzdhLjc1Ljc1IDAgMSAwIDEuMy0uNzQuNzUuNzUgMCAwIDAtMS4zLjc0Wk0xNS41IDExYTEgMSAwIDAgMC0xIDF2MWgydi0xYTEgMSAwIDAgMC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtMb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya0xvY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDAgMSA4IDguMzMgMy4wMiAzLjAyIDAgMCAwLTEuMDMtLjk0QTcgNyAwIDEgMCAxMSAxNi45M3YxQTggOCAwIDEgMSAxMCAyWm02Ljk3IDguNjRBMiAyIDAgMCAxIDE3LjUgMTJ2MWguNWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoLjV2LTFhMiAyIDAgMCAxIDMuNDctMS4zNlpNMTQuNSAxM2gydi0xYTEgMSAwIDEgMC0yIDB2MVptLjM1IDMuMzdhLjc1Ljc1IDAgMSAwIDEuMy0uNzQuNzUuNzUgMCAwIDAtMS4zLjc0Wm0tMS41LTguNzJjLjE4LjE3LjIuNDQuMDcuNjNsLS4wNi4wNy00IDRhLjUuNSAwIDAgMS0uNjQuMDdsLS4wNy0uMDYtMi0yYS41LjUgMCAwIDEgLjYzLS43N2wuMDcuMDZMOSAxMS4zbDMuNjUtMy42NWMuMi0uMi41MS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtMb2NrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrTG9jazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDAgMSA5LjkyIDExLjI2QTMuNSAzLjUgMCAwIDAgMTUgMTR2LjA1YTIuNSAyLjUgMCAwIDAtMiAyLjQ1djVjMCAuMTUuMDEuMy4wNC40NUExMCAxMCAwIDEgMSAxMiAyWm0zLjIyIDYuOTctNC40NyA0LjQ3LTEuOTctMS45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNSAyLjVjLjMuMy43Ny4zIDEuMDYgMGw1LTVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNlptMy4yOCAyLjUzQTIuNSAyLjUgMCAwIDEgMjEgMTR2MWguNTRjLjgxLjAyIDEuNDYuNjkgMS40NiAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di01YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41di0xYTIuNSAyLjUgMCAwIDEgMi41LTIuNVptLS40IDguNDJhMSAxIDAgMCAwIDEuMzUtMS4yNCAxIDEgMCAxIDAtMS4zNCAxLjI0Wk0xNy41IDE0djFoMnYtMWExIDEgMCAxIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrTG9jazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtMb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDAgMSA5LjkyIDExLjI2IDMuNSAzLjUgMCAwIDAtMS40Ny0yLjE3QTguNSA4LjUgMCAxIDAgMTMgMjAuNDR2MS4wNmMwIC4xNS4wMS4zLjA0LjQ1QTEwIDEwIDAgMSAxIDEyIDJabTguNDkgMTAuNDhBMi41IDIuNSAwIDAgMCAxNiAxNHYxaC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NWwuMDMuM2MuMTQuNjguNzQgMS4yIDEuNDcgMS4yaDZjLjgzIDAgMS41LS42NyAxLjUtMS41di01YTEuNSAxLjUgMCAwIDAtMS41LTEuNUgyMXYtMWMwLS41Ny0uMi0xLjEtLjUxLTEuNTJabS0yLjM4IDcuNDRhMSAxIDAgMSAxIC43OC0xLjg0IDEgMSAwIDAgMS0uNzggMS44NFpNMTcuNSAxNGExIDEgMCAxIDEgMiAwdjFoLTJ2LTFabS02Ljc1LS41NiA0LjQ3LTQuNDdhLjc1Ljc1IDAgMCAxIDEuMTMuOThsLS4wNy4wOC01IDVhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjUtMi41YS43NS43NSAwIDAgMSAuOTgtMS4xM2wuMDguMDcgMS45NyAxLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrTm90ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya05vdGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYuMDMgMTIuOSAyLjU2IDlhLjc1Ljc1IDAgMSAwLTEuMTIgMWw0IDQuNWMuMjkuMzIuNzkuMzQgMS4wOS4wM2wxMC41LTEwLjVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtOS45NCA5Ljk0Wk0xMSAxM2MwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtNFptNi41IDNoLTRhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMSAwIDAtMVptLTQtM2EuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrTm90ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtOb3RlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMS42NyA5LjEzYS41LjUgMCAwIDEgLjcuMDRsMy42NSA0LjFMMTYuMTUgMy4xNWEuNS41IDAgMSAxIC43LjdsLTEwLjUgMTAuNWEuNS41IDAgMCAxLS43Mi0uMDJsLTQtNC41YS41LjUgMCAwIDEgLjA0LS43Wk0xMSAxM2MwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtNFptNi41IDNoLTRhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMSAwIDAtMVptLTQtM2EuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrU3F1YXJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrU3F1YXJlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm03LjM1IDUuMzUtNCA0YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgLjctLjdMOSAxMS4yOWwzLjY1LTMuNjRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrU3F1YXJlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1NxdWFyZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTkuMzUgMi4zNWEuNS41IDAgMCAwLS43LS43TDkgMTEuMjkgNy4zNSA5LjY1YS41LjUgMCAxIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1NxdWFyZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1NxdWFyZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wm0xMC4wMyA2Ljc4LTUgNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTItMmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDEuNDcgMS40NyA0LjQ3LTQuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1NxdWFyZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtTcXVhcmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi4yOCA5Ljc4YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTQuNDcgNC40Ny0xLjQ3LTEuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyIDJjLjMuMy43Ny4zIDEuMDYgMGw1LTVaTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1N0YXJidXJzdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1N0YXJidXJzdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTEuMzMgMi4wNi4wOC4xNi41OCAxLjUzYy4wNC4xMi4xNC4yMi4yNi4yNmwxLjQ4LjU2Yy42NS4yNCAxIC45My44MiAxLjZsLS4wNC4xMi0uNjkgMS41MmEuNDUuNDUgMCAwIDAgMCAuMzdsLjY2IDEuNDRjLjI4LjYzLjA0IDEuMzctLjU1IDEuNzFsLS4xNS4wOC0xLjUzLjU4YS40NS40NSAwIDAgMC0uMjYuMjZsLS41NiAxLjQ4Yy0uMjQuNjUtLjk0IDEtMS42LjgybC0uMTItLjA0LTEuNTMtLjY5YS40NS40NSAwIDAgMC0uMzcgMGwtMS40My42NmMtLjY0LjI4LTEuMzcuMDQtMS43Mi0uNTVsLS4wNy0uMTVMNCAxMi4yNWEuNDUuNDUgMCAwIDAtLjI2LS4yNmwtMS40OC0uNTZjLS42NS0uMjQtMS0uOTQtLjgzLTEuNmwuMDUtLjEyLjY4LTEuNTNhLjQ1LjQ1IDAgMCAwIDAtLjM3bC0uNjUtMS40M2ExLjM0IDEuMzQgMCAwIDEgLjU0LTEuNzJsLjE2LS4wN0wzLjc1IDRhLjQ1LjQ1IDAgMCAwIC4yNi0uMjZsLjU2LTEuNDhjLjI0LS42NS45My0xIDEuNi0uODNsLjEyLjA1IDEuNTIuNjhjLjEyLjA2LjI2LjA2LjM3IDBsMS40NC0uNjVhMS4zNCAxLjM0IDAgMCAxIDEuNzEuNTRabS0xLjE3IDMuNjVMNi45OCA5LjM1IDUuOCA4LjE4YS40NS40NSAwIDAgMC0uNjMuNjNsMS41IDEuNWMuMTkuMTkuNDkuMTguNjYtLjAybDMuNS00YS40NS40NSAwIDAgMC0uNjgtLjU4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrU3RhcmJ1cnN0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1N0YXJidXJzdDE2UmVndWxhcicsIFwiMTZcIiwgW1wibTExLjMzIDIuMDYuMDguMTYuNTggMS41M2MuMDQuMTIuMTQuMjIuMjYuMjZsMS40OC41NmMuNjUuMjQgMSAuOTMuODIgMS42bC0uMDQuMTItLjY5IDEuNTJhLjQ1LjQ1IDAgMCAwIDAgLjM3bC42NiAxLjQ0Yy4yOC42My4wNCAxLjM3LS41NSAxLjcxbC0uMTUuMDgtMS41My41OGEuNDUuNDUgMCAwIDAtLjI2LjI2bC0uNTYgMS40OGMtLjI0LjY1LS45NCAxLTEuNi44MmwtLjEyLS4wNC0xLjUzLS42OWEuNDUuNDUgMCAwIDAtLjM3IDBsLTEuNDMuNjZjLS42NC4yOC0xLjM3LjA0LTEuNzItLjU1bC0uMDctLjE1TDQgMTIuMjVhLjQ1LjQ1IDAgMCAwLS4yNi0uMjZsLTEuNDgtLjU2Yy0uNjUtLjI0LTEtLjk0LS44My0xLjZsLjA1LS4xMi42OC0xLjUzYS40NS40NSAwIDAgMCAwLS4zN2wtLjY1LTEuNDNhMS4zNCAxLjM0IDAgMCAxIC41NC0xLjcybC4xNi0uMDdMMy43NSA0YS40NS40NSAwIDAgMCAuMjYtLjI2bC41Ni0xLjQ4Yy4yNC0uNjUuOTMtMSAxLjYtLjgzbC4xMi4wNSAxLjUyLjY4Yy4xMi4wNi4yNi4wNi4zNyAwbDEuNDQtLjY1YTEuMzQgMS4zNCAwIDAgMSAxLjcxLjU0Wm0tNS45My41Mi0uNTUgMS40OGMtLjE0LjM3LS40Mi42NS0uNzkuNzlsLTEuNDguNTUtLjEuMDVhLjQ1LjQ1IDAgMCAwLS4xNS41NkwzIDcuNDRjLjE2LjM2LjE2Ljc2IDAgMS4xMWwtLjY2IDEuNDYtLjAzLjA5Yy0uMDQuMi4wOC40Mi4yOC41bDEuNDguNTVjLjM3LjE0LjY1LjQyLjc5Ljc4bC41NSAxLjQ4LjA1LjFjLjEyLjE4LjM2LjI1LjU2LjE1bDEuNDMtLjY1Yy4zNi0uMTYuNzYtLjE2IDEuMTEgMGwxLjQ2LjY2LjA5LjAzYy4yLjA0LjQyLS4wOC41LS4yOWwuNTUtMS40OGMuMTQtLjM2LjQyLS42NC43OC0uNzhsMS40OC0uNTUuMS0uMDZhLjQ1LjQ1IDAgMCAwIC4xNS0uNTVsLS42NS0xLjQ0YTEuMzQgMS4zNCAwIDAgMSAwLTEuMWwuNjYtMS40Ni4wMy0uMDlhLjQ1LjQ1IDAgMCAwLS4yOS0uNWwtMS40OC0uNTVhMS4zNCAxLjM0IDAgMCAxLS43OC0uNzlsLS41NS0xLjQ4LS4wNi0uMWEuNDUuNDUgMCAwIDAtLjU1LS4xNUw4LjU1IDNjLS4zNS4xNi0uNzUuMTYtMS4xIDBMNiAyLjMzaC0uMDNhLjQ1LjQ1IDAgMCAwLS41OC4yNVptMS41OCA2Ljc3IDMuMTgtMy42NGEuNDUuNDUgMCAwIDEgLjczLjUxbC0uMDUuMDctMy41IDRjLS4xNS4xNy0uNC4yLS41OC4wOGwtLjA4LS4wNS0xLjUtMS41YS40NS40NSAwIDAgMSAuNTYtLjdsLjA3LjA2IDEuMTcgMS4xNyAzLjE4LTMuNjQtMy4xOCAzLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrU3RhcmJ1cnN0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrU3RhcmJ1cnN0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIm04LjQ2IDEuOS45OS4zOWMuMzUuMTQuNzUuMTQgMS4xIDBsLjk5LS40YzEuMjEtLjQ3IDIuNTguMSAzLjEgMS4zbC40Mi45N2MuMTYuMzUuNDMuNjIuNzguNzdsLjk4LjQzYzEuMi41MiAxLjc2IDEuODkgMS4yOCAzLjFsLS4zOS45OWExLjUgMS41IDAgMCAwIDAgMS4xbC40Ljk5YTIuNDIgMi40MiAwIDAgMS0xLjMgMy4xbC0uOTcuNDJhMS41IDEuNSAwIDAgMC0uNzguNzhsLS40Mi45OGEyLjQyIDIuNDIgMCAwIDEtMy4xIDEuMjhsLTEtLjM5YTEuNSAxLjUgMCAwIDAtMS4wOSAwbC0uOTkuNGEyLjQyIDIuNDIgMCAwIDEtMy4xLTEuM2wtLjQzLS45N2ExLjUgMS41IDAgMCAwLS43Ny0uNzhsLS45OC0uNDJhMi40MiAyLjQyIDAgMCAxLTEuMjgtMy4xbC4zOS0xYTEuNSAxLjUgMCAwIDAgMC0xLjA5bC0uNC0uOTlhMi40MiAyLjQyIDAgMCAxIDEuMy0zLjFsLjk3LS40M2MuMzUtLjE1LjYyLS40Mi43Ny0uNzdsLjQzLS45OGEyLjQyIDIuNDIgMCAwIDEgMy4xLTEuMjhabTQuMTcgNS43Ny0zLjY1IDQuMS0xLjYzLTEuNjJhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUzLjIuNzItLjAybDQtNC41YS41LjUgMCAwIDAtLjc0LS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1N0YXJidXJzdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtTdGFyYnVyc3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm04LjQ2IDEuOS45OS4zOWMuMzUuMTQuNzUuMTQgMS4xIDBsLjk5LS40YzEuMjEtLjQ3IDIuNTguMSAzLjEgMS4zbC40Mi45N2MuMTYuMzUuNDMuNjIuNzguNzdsLjk4LjQzYzEuMi41MiAxLjc2IDEuODkgMS4yOCAzLjFsLS4zOS45OWExLjUgMS41IDAgMCAwIDAgMS4xbC40Ljk5YTIuNDIgMi40MiAwIDAgMS0xLjMgMy4xbC0uOTcuNDJhMS41IDEuNSAwIDAgMC0uNzguNzhsLS40Mi45OGEyLjQyIDIuNDIgMCAwIDEtMy4xIDEuMjhsLTEtLjM5YTEuNSAxLjUgMCAwIDAtMS4wOSAwbC0uOTkuNGEyLjQyIDIuNDIgMCAwIDEtMy4xLTEuM2wtLjQzLS45N2ExLjUgMS41IDAgMCAwLS43Ny0uNzhsLS45OC0uNDJhMi40MiAyLjQyIDAgMCAxLTEuMjgtMy4xbC4zOS0xYTEuNSAxLjUgMCAwIDAgMC0xLjA5bC0uNC0uOTlhMi40MiAyLjQyIDAgMCAxIDEuMy0zLjFsLjk3LS40M2MuMzUtLjE1LjYyLS40Mi43Ny0uNzdsLjQzLS45OGEyLjQyIDIuNDIgMCAwIDEgMy4xLTEuMjhabTMuNDQuOTMtLjk5LjM5YTIuNSAyLjUgMCAwIDEtMS44MyAwbC0uOTktLjRhMS40MiAxLjQyIDAgMCAwLTEuODEuNzZsLS40My45OGEyLjUgMi41IDAgMCAxLTEuMyAxLjNsLS45Ny40MmMtLjcuMy0xLjAzIDEuMS0uNzUgMS44MWwuMzkgMWEyLjUgMi41IDAgMCAxIDAgMS44MmwtLjQgMWMtLjI3LjcuMDYgMS41Ljc2IDEuODFsLjk4LjQzYTIuNSAyLjUgMCAwIDEgMS4zIDEuM2wuNDIuOTdjLjMuNyAxLjEgMS4wMyAxLjgxLjc1bDEtLjM5YTIuNSAyLjUgMCAwIDEgMS44MiAwbDEgLjRjLjcuMjcgMS41LS4wNiAxLjgxLS43NmwuNDMtLjk4YTIuNSAyLjUgMCAwIDEgMS4zLTEuM2wuOTctLjQyYy43LS4zIDEuMDMtMS4xLjc1LTEuODJsLS4zOS0uOTlhMi41IDIuNSAwIDAgMSAwLTEuODNsLjQtLjk5YTEuNDIgMS40MiAwIDAgMC0uNzYtMS44MWwtLjk4LS40M2EyLjUgMi41IDAgMCAxLTEuMy0xLjNsLS40Mi0uOTdjLS4zLS43LTEuMS0xLjAzLTEuODItLjc1Wm0tMi45MiA4Ljk0IDMuNjUtNC4xYS41LjUgMCAwIDEgLjguNTlsLS4wNi4wNy00IDQuNWEuNS41IDAgMCAxLS42NS4wOGwtLjA3LS4wNi0yLTJhLjUuNSAwIDAgMSAuNjMtLjc2bC4wNy4wNiAxLjYzIDEuNjIgMy42NS00LjEtMy42NSA0LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtTdGFyYnVyc3QyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtTdGFyYnVyc3QyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTkuODQgMi4wMy4zMi4xNCAxLjI5LjYzYy4zNS4xNy43NS4xNyAxLjEgMGwxLjI4LS42M2EyLjc1IDIuNzUgMCAwIDEgMy42OSAxLjI1bC4wNy4xNy4wNi4xNi40NiAxLjM2Yy4xMy4zNi40Mi42NS43OC43OGwxLjM2LjQ2YTIuNzUgMi43NSAwIDAgMSAxLjU4IDMuODFsLS42MyAxLjI5Yy0uMTcuMzUtLjE3Ljc1IDAgMS4xbC42MyAxLjI4YTIuNzUgMi43NSAwIDAgMS0xLjU4IDMuODJsLTEuMzYuNDZjLS4zNi4xMy0uNjUuNDItLjc4Ljc4bC0uNDYgMS4zNmEyLjc1IDIuNzUgMCAwIDEtMy44MiAxLjU4bC0xLjI4LS42M2ExLjI1IDEuMjUgMCAwIDAtMS4xIDBsLTEuMjkuNjNhMi43NSAyLjc1IDAgMCAxLTMuODEtMS41OGwtLjQ2LTEuMzZhMS4yNSAxLjI1IDAgMCAwLS43OC0uNzhsLTEuMzYtLjQ2YTIuNzUgMi43NSAwIDAgMS0xLjU4LTMuODJsLjYzLTEuMjhjLjE3LS4zNS4xNy0uNzUgMC0xLjFsLS42My0xLjI5YTIuNzUgMi43NSAwIDAgMSAxLjU4LTMuODFsMS4zNi0uNDZjLjM2LS4xMy42NS0uNDIuNzgtLjc4bC40Ni0xLjM2YTIuNzUgMi43NSAwIDAgMSAzLjQ5LTEuNzJabTUuNjMgNi45NC01LjQyIDUuNDItMS45Ny0yLjM3YS43NS43NSAwIDEgMC0xLjE2Ljk2bDIuNSAzYy4yOS4zNC44LjM2IDEuMTEuMDVsNi02YS43NS43NSAwIDEgMC0xLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtTdGFyYnVyc3QyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrU3RhcmJ1cnN0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtOS44NCAyLjAzLjMyLjE0IDEuMjkuNjNjLjM1LjE3Ljc1LjE3IDEuMSAwbDEuMjgtLjYzYTIuNzUgMi43NSAwIDAgMSAzLjY5IDEuMjVsLjA3LjE3LjA2LjE2LjQ2IDEuMzZjLjEzLjM2LjQyLjY1Ljc4Ljc4bDEuMzYuNDZhMi43NSAyLjc1IDAgMCAxIDEuNTggMy44MWwtLjYzIDEuMjljLS4xNy4zNS0uMTcuNzUgMCAxLjFsLjYzIDEuMjhhMi43NSAyLjc1IDAgMCAxLTEuNTggMy44MmwtMS4zNi40NmMtLjM2LjEzLS42NS40Mi0uNzguNzhsLS40NiAxLjM2YTIuNzUgMi43NSAwIDAgMS0zLjgyIDEuNThsLTEuMjgtLjYzYTEuMjUgMS4yNSAwIDAgMC0xLjEgMGwtMS4yOS42M2EyLjc1IDIuNzUgMCAwIDEtMy44MS0xLjU4bC0uNDYtMS4zNmExLjI1IDEuMjUgMCAwIDAtLjc4LS43OGwtMS4zNi0uNDZhMi43NSAyLjc1IDAgMCAxLTEuNTgtMy44MmwuNjMtMS4yOGMuMTctLjM1LjE3LS43NSAwLTEuMWwtLjYzLTEuMjlhMi43NSAyLjc1IDAgMCAxIDEuNTgtMy44MWwxLjM2LS40NmMuMzYtLjEzLjY1LS40Mi43OC0uNzhsLjQ2LTEuMzZhMi43NSAyLjc1IDAgMCAxIDMuNDktMS43MlptLTIuMDcgMi4yTDcuMyA1LjZjLS4yOC44LS45MSAxLjQ0LTEuNzIgMS43MmwtMS4zNi40NmExLjI1IDEuMjUgMCAwIDAtLjcxIDEuNzNsLjYzIDEuMjljLjM3Ljc2LjM3IDEuNjYgMCAyLjQybC0uNjMgMS4yOS0uMDcuMTVjLS4yMi42NS4xMyAxLjM2Ljc4IDEuNThsMS4zNi40NmMuOC4yOCAxLjQ0LjkxIDEuNzIgMS43MmwuNDYgMS4zNWExLjI1IDEuMjUgMCAwIDAgMS43My43MmwxLjI5LS42M2EyLjc1IDIuNzUgMCAwIDEgMi40MiAwbDEuMjkuNjMuMTUuMDdjLjY1LjIyIDEuMzYtLjEzIDEuNTgtLjc5bC40Ni0xLjM1Yy4yOC0uOC45MS0xLjQ0IDEuNzItMS43MmwxLjM1LS40NmMuMDYtLjAxLjEtLjA0LjE1LS4wNi42Mi0uMy44OC0xLjA1LjU3LTEuNjdsLS42My0xLjI5YTIuNzUgMi43NSAwIDAgMSAwLTIuNDJsLjYzLTEuMjkuMDctLjE1YTEuMjUgMS4yNSAwIDAgMC0uNzktMS41OGwtMS4zNS0uNDZhMi43NSAyLjc1IDAgMCAxLTEuNzItMS43MmwtLjQ2LTEuMzYtLjAzLS4wNy0uMDMtLjA3LS4wNi0uMTJhMS4yNSAxLjI1IDAgMCAwLTEuNjEtLjQ1bC0xLjI5LjYzYy0uNzYuMzctMS42Ni4zNy0yLjQyIDBMOS41IDMuNTJhMS4yNSAxLjI1IDAgMCAwLTEuNzMuNzFabTIuMjggMTAuMTYgNS40Mi01LjQyYS43NS43NSAwIDAgMSAxLjEzLjk4bC0uMDcuMDgtNiA2YS43NS43NSAwIDAgMS0xLjAzLjAzbC0uMDgtLjA4LTIuNS0zQS43NS43NSAwIDAgMSA4IDExLjk0bC4wOC4wOCAxLjk3IDIuMzcgNS40Mi01LjQyLTUuNDIgNS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1VuZGVybGluZUNpcmNsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1VuZGVybGluZUNpcmNsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxNEE2IDYgMCAxIDAgOCAyYTYgNiAwIDAgMCAwIDEyWm0yLjg2LTguODVjLjE5LjIuMTkuNTIgMCAuNzJMNy45NyA4Ljg1YS40OC40OCAwIDAgMS0uNyAwTDYuMTUgNy42OGEuNTIuNTIgMCAwIDEgMC0uNzJjLjItLjIuNS0uMi43IDBsLjc4LjgxIDIuNTQtMi42MmMuMi0uMi41LS4yLjcgMFpNNi41IDEwaDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGVja21hcmtVbmRlcmxpbmVDaXJjbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrVW5kZXJsaW5lQ2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAxM0E1IDUgMCAxIDEgOCAzYTUgNSAwIDAgMSAwIDEwWm0wIDFBNiA2IDAgMSAwIDggMmE2IDYgMCAwIDAgMCAxMlptMi44Ni04Ljg1Yy4xOS4yLjE5LjUyIDAgLjcyTDcuOTcgOC44NWEuNDguNDggMCAwIDEtLjcgMEw2LjE1IDcuNjhhLjUyLjUyIDAgMCAxIDAtLjcyYy4yLS4yLjUtLjIuNyAwbC43OC44MSAyLjU0LTIuNjJjLjItLjIuNS0uMi43IDBaTTYgMTAuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1VuZGVybGluZUNpcmNsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1VuZGVybGluZUNpcmNsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMThhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZabTMuODUtMTEuODVjLjIuMi4yLjUgMCAuN2wtNCA0YS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAxIDEgLjctLjdMOS41IDkuNzlsMy42NS0zLjY0Yy4yLS4yLjUtLjIuNyAwWk03LjUgMTNoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya1VuZGVybGluZUNpcmNsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGVja21hcmtVbmRlcmxpbmVDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAxN2E3IDcgMCAxIDEgMC0xNCA3IDcgMCAwIDEgMCAxNFptMCAxYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wm0zLjg1LTExLjg1Yy4yLjIuMi41IDAgLjdsLTQgNGEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMSAxIC43LS43TDkuNSA5Ljc5bDMuNjUtMy42NGMuMi0uMi41LS4yLjcgMFpNNyAxMy41YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrVW5kZXJsaW5lQ2lyY2xlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlY2ttYXJrVW5kZXJsaW5lQ2lyY2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFptLTEuMjUgOS40NCA0LjQ3LTQuNDdhLjc1Ljc1IDAgMCAxIDEuMTMuOThsLS4wNy4wOC01IDVhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjUtMi41QS43NS43NSAwIDAgMSA4LjcgOS40bC4wOC4wNyAxLjk3IDEuOTdaTTguNSAxNWg2Ljc1YS43NS43NSAwIDAgMSAwIDEuNUg4LjVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlY2ttYXJrVW5kZXJsaW5lQ2lyY2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZWNrbWFya1VuZGVybGluZUNpcmNsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wibTEwLjc1IDExLjQ0IDQuNDctNC40N2EuNzUuNzUgMCAwIDEgMS4xMy45OGwtLjA3LjA4LTUgNWEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTIuNS0yLjVBLjc1Ljc1IDAgMCAxIDguNyA5LjRsLjA4LjA3IDEuOTcgMS45N1pNOC41IDE1YS43NS43NSAwIDAgMCAwIDEuNWg2Ljc1YS43NS43NSAwIDAgMCAwLTEuNUg4LjVaTTIgMTJhMTAgMTAgMCAxIDEgMjAgMCAxMCAxMCAwIDAgMS0yMCAwWm0xMC04LjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlc3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUgMmEuNS41IDAgMCAwLS41LjV2Mi42YTMgMyAwIDAgMCAyLjIgMi44OSAxNi4wMyAxNi4wMyAwIDAgMS0xLjY3IDYuMDVjLjE4LjIxLjM2LjM3LjUuNDkuNTEuNDMuOTcgMS4xNC45NyAyLjAyIDAgLjU0LS4xOCAxLjA0LS40OCAxLjQ1SDE3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtLjNjMC0uMzUtLjEyLS42OC0uMy0uOTRBMTUuMDMgMTUuMDMgMCAwIDEgMTUuOCA4IDMgMyAwIDAgMCAxOCA1LjFWMi41YS41LjUgMCAwIDAtLjUtLjVoLS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1di43NWEuNS41IDAgMCAxLTEgMHYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0uNWEuNzUuNzUgMCAwIDAtLjc1Ljc1di43NWEuNS41IDAgMCAxLTEgMHYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0uNzVabS00IDNhMyAzIDAgMCAwLTIuMjQgNUg0YTEgMSAwIDEgMCAwIDJoLjUyYTUuNzYgNS43NiAwIDAgMS0xLjkgMy4zYy0uMzUuMjgtLjYyLjczLS42MiAxLjI1IDAgLjguNjUgMS40NSAxLjQ1IDEuNDVoNi4xYy44IDAgMS40NS0uNjUgMS40NS0xLjQ1IDAtLjUyLS4yNy0uOTctLjYyLTEuMjZBNS43NiA1Ljc2IDAgMCAxIDguNDggMTJIOWExIDEgMCAxIDAgMC0yaC0uMjZBMyAzIDAgMCAwIDYuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hlc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hlc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAzYTEgMSAwIDAgMSAxLTFoLjVjLjM5IDAgLjc0LjE1IDEgLjM4YTEuNSAxLjUgMCAwIDEgMS0uMzhoMWMuMzggMCAuNzMuMTUgMSAuMzhhMS41IDEuNSAwIDAgMSAxLS4zOGguNWExIDEgMCAwIDEgMSAxdjIuNWEyLjUgMi41IDAgMCAxLTEuOTUgMi40NGMuMjggNC4wNCAxLjcgNi41OCAyLjE5IDcuMzUuMTYuMjUuMjYuNTUuMjYuODh2LjMzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNS40OGMuMjItLjMuMzctLjYzLjQ0LTFIMTdhLjUuNSAwIDAgMCAuNS0uNXYtLjMzYzAtLjExLS4wMy0uMjMtLjEtLjM0LS41OC0uOS0yLjE2LTMuNzgtMi4zOC04LjNhLjUuNSAwIDAgMSAuNS0uNTNBMS41IDEuNSAwIDAgMCAxNyA1LjVWM2gtLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMS0xIDB2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWEuNS41IDAgMCAwLS41LS41SDExdjIuNWMwIC44Mi42NiAxLjQ5IDEuNDggMS41YS41LjUgMCAwIDEgLjUuNTIgMTguMzIgMTguMzIgMCAwIDEtMS43NiA3LjIgMi44MiAyLjgyIDAgMCAwLS4yLS4yIDQuMiA0LjIgMCAwIDEtLjU1LS41NSAxNy4zOCAxNy4zOCAwIDAgMCAxLjQ4LTYuMDNBMi41IDIuNSAwIDAgMSAxMCA1LjVWM1pNNC41IDhhMiAyIDAgMSAxIDMuNiAxLjIuNS41IDAgMCAwIC40LjhIOWEuNS41IDAgMCAxIDAgMUg3LjlhLjUuNSAwIDAgMC0uNS41NiA2Ljg2IDYuODYgMCAwIDAgMi4zNCA0LjVjLjE3LjE1LjI2LjMzLjI2LjQ5IDAgLjI1LS4yLjQ1LS40NS40NWgtNi4xYS40NS40NSAwIDAgMS0uNDUtLjQ1YzAtLjE2LjA5LS4zNC4yNi0uNDlhNi44NiA2Ljg2IDAgMCAwIDIuMzQtNC41LjUuNSAwIDAgMC0uNS0uNTZINGEuNS41IDAgMCAxIDAtMWguNWEuNS41IDAgMCAwIC40LS44Yy0uMjUtLjMzLS40LS43NS0uNC0xLjJabTItM2EzIDMgMCAwIDAtMi44MiA0LjAzQTEuNSAxLjUgMCAwIDAgNCAxMmguNTJhNS43NiA1Ljc2IDAgMCAxLTEuOSAzLjNjLS4zNS4yOC0uNjIuNzMtLjYyIDEuMjUgMCAuOC42NSAxLjQ1IDEuNDUgMS40NWg2LjFjLjggMCAxLjQ1LS42NSAxLjQ1LTEuNDUgMC0uNTItLjI3LS45Ny0uNjItMS4yNkE1Ljc2IDUuNzYgMCAwIDEgOC40OCAxMkg5YTEuNSAxLjUgMCAwIDAgLjMyLTIuOTdBMyAzIDAgMCAwIDYuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24xMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlRG93bjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxYTUgNSAwIDEgMSAwIDEwQTUgNSAwIDAgMSA2IDFabTEuODUgNC44NWEuNS41IDAgMSAwLS43LS43TDYgNi4yOSA0Ljg1IDUuMTVhLjUuNSAwIDEgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlRG93bjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlRG93bjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTcuODUgNS44NWEuNS41IDAgMSAwLS43LS43TDYgNi4yOSA0Ljg1IDUuMTVhLjUuNSAwIDEgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVaTTExIDZBNSA1IDAgMSAwIDEgNmE1IDUgMCAwIDAgMTAgMFpNNiAyYTQgNCAwIDEgMSAwIDggNCA0IDAgMCAxIDAtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVEb3duMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgOGE2IDYgMCAxIDAgMTIgMEE2IDYgMCAwIDAgMiA4Wm04Ljg1LS42NS0yLjUgMi41YS41LjUgMCAwIDEtLjcgMGwtMi41LTIuNWEuNS41IDAgMSAxIC43LS43TDggOC43OWwyLjE1LTIuMTRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDhhNSA1IDAgMSAwIDEwIDBBNSA1IDAgMCAwIDMgOFptNSA2QTYgNiAwIDEgMSA4IDJhNiA2IDAgMCAxIDAgMTJabTIuODUtNi42NS0yLjUgMi41YS41LjUgMCAwIDEtLjcgMGwtMi41LTIuNWEuNS41IDAgMSAxIC43LS43TDggOC43OWwyLjE1LTIuMTRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlRG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNC44NS0xLjg1YS41LjUgMCAxIDAtLjcuN2wzLjUgMy41YS41LjUgMCAwIDAgLjcgMGwzLjUtMy41YS41LjUgMCAwIDAtLjctLjdMMTAgMTEuMjkgNi44NSA4LjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDEwYTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWm03LThhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaTTYuODUgOC4xNWEuNS41IDAgMSAwLS43LjdsMy41IDMuNWEuNS41IDAgMCAwIC43IDBsMy41LTMuNWEuNS41IDAgMCAwLS43LS43TDEwIDExLjI5IDYuODUgOC4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVEb3duMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWk03LjQ3IDkuOTdjLS4zLjMtLjMuNzcgMCAxLjA2bDQgNGMuMy4zLjc3LjMgMS4wNiAwbDQtNGEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDEyIDEzLjQ0IDguNTMgOS45N2EuNzUuNzUgMCAwIDAtMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptMCAxLjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN1pNNy40NyA5Ljk3Yy4zLS4zLjc3LS4zIDEuMDYgMEwxMiAxMy40NGwzLjQ3LTMuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNCA0Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNC00YS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlRG93bjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVEb3duMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDE0YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFptNy4wMy0yLjc4YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsNS41IDUuNWMuMy4zLjc3LjMgMS4wNiAwbDUuNS01LjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkwxNCAxNi4xOWwtNC45Ny00Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd24yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgMTRhMTAuNSAxMC41IDAgMSAxIDIxIDAgMTAuNSAxMC41IDAgMCAxLTIxIDBaTTE0IDJhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0Wm0tNC45NyA5LjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsNS41IDUuNWMuMy4zLjc3LjMgMS4wNiAwbDUuNS01LjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkwxNCAxNi4xOWwtNC45Ny00Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlRG93bjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTYgMmExNCAxNCAwIDEgMSAwIDI4IDE0IDE0IDAgMCAxIDAtMjhabTYuNyAxMi43YTEgMSAwIDAgMC0xLjQtMS40TDE2IDE4LjU4bC01LjMtNS4zYTEgMSAwIDAgMC0xLjQgMS40Mmw1Ljg3IDUuODguMDMuMDIuMDguMDhjLjIuMi40Ni4zLjcyLjI5LjI2IDAgLjQ4LS4xLjcyLS4zLjA1LS4wMy4wNi0uMDQuMS0uMWw1Ljg5LTUuODdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlRG93bjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlRG93bjMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIyLjcgMTQuN2ExIDEgMCAwIDAtMS40LTEuNEwxNiAxOC41OGwtNS4zLTUuM2ExIDEgMCAwIDAtMS40IDEuNDJsNS44NyA1Ljg4LjAzLjAyLjA4LjA4Yy4yLjIuNDYuMy43Mi4yOS4yNiAwIC40OC0uMS43Mi0uMy4wNS0uMDMuMDYtLjA0LjEtLjFsNS44OS01Ljg3Wk0zMCAxNmExNCAxNCAwIDEgMC0yOCAwIDE0IDE0IDAgMCAwIDI4IDBaTTE2IDRhMTIgMTIgMCAxIDEgMCAyNCAxMiAxMiAwIDAgMSAwLTI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd240OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlRG93bjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNDRhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDAgMCAwIDQwWm0tOC42Mi0yMy42M0wyNCAyOC45OGw4LjYyLTguNjFhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMS43NmwtOS41IDkuNWMtLjQ4LjUtMS4yOC41LTEuNzYgMGwtOS41LTkuNWExLjI1IDEuMjUgMCAwIDEgMS43Ni0xLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZURvd240OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZURvd240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02LjUgMjRhMTcuNSAxNy41IDAgMSAxIDM1IDAgMTcuNSAxNy41IDAgMCAxLTM1IDBaTTI0IDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDAgMCAwLTQwWm0tOC42MiAxNi4zN2ExLjI1IDEuMjUgMCAwIDAtMS43NiAxLjc2bDkuNSA5LjVjLjQ4LjUgMS4yOC41IDEuNzYgMGw5LjUtOS41YTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZMMjQgMjguOThsLTguNjItOC42MVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTExIDZBNSA1IDAgMSAxIDEgNmE1IDUgMCAwIDEgMTAgMFpNNi4xNSA3Ljg1YS41LjUgMCAxIDAgLjctLjdMNS43MSA2bDEuMTQtMS4xNWEuNS41IDAgMSAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZUxlZnQxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02LjE1IDcuODVhLjUuNSAwIDEgMCAuNy0uN0w1LjcxIDZsMS4xNC0xLjE1YS41LjUgMCAxIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVaTTYgMTFBNSA1IDAgMSAwIDYgMWE1IDUgMCAwIDAgMCAxMFptNC01YTQgNCAwIDEgMS04IDAgNCA0IDAgMCAxIDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMTRBNiA2IDAgMSAxIDggMmE2IDYgMCAwIDEgMCAxMlptLjY1LTguODUtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDcuMjEgOGwyLjE0LTIuMTVhLjUuNSAwIDEgMC0uNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAxM0E1IDUgMCAxIDEgOCAzYTUgNSAwIDAgMSAwIDEwWk0yIDhhNiA2IDAgMSAwIDEyIDBBNiA2IDAgMCAwIDIgOFptNi42NS0yLjg1LTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43bDIuNSAyLjVhLjUuNSAwIDAgMCAuNy0uN0w3LjIxIDhsMi4xNC0yLjE1YS41LjUgMCAxIDAtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0xLjg1IDQuODVhLjUuNSAwIDAgMC0uNy0uN2wtMy41IDMuNWEuNS41IDAgMCAwIDAgLjdsMy41IDMuNWEuNS41IDAgMCAwIC43LS43TDguNzEgMTBsMy4xNC0zLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZUxlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAzYTcgNyAwIDEgMSAwIDE0IDcgNyAwIDAgMSAwLTE0Wm04IDdhOCA4IDAgMSAwLTE2IDAgOCA4IDAgMCAwIDE2IDBabS02LjE1LTMuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMy41IDMuNWEuNS41IDAgMCAwIDAgLjdsMy41IDMuNWEuNS41IDAgMCAwIC43LS43TDguNzEgMTBsMy4xNC0zLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZUxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDEtMjAgMCAxMCAxMCAwIDAgMSAyMCAwWm0tNy45Ny00LjUzYS43NS43NSAwIDAgMC0xLjA2IDBsLTQgNGMtLjMuMy0uMy43NyAwIDEuMDZsNCA0YS43NS43NSAwIDEgMCAxLjA2LTEuMDZMMTAuNTYgMTJsMy40Ny0zLjQ3Yy4zLS4zLjMtLjc3IDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWm0tMS41IDBhOC41IDguNSAwIDEgMS0xNyAwIDguNSA4LjUgMCAwIDEgMTcgMFptLTYuNDcgNC41M2MuMy0uMy4zLS43NyAwLTEuMDZMMTAuNTYgMTJsMy40Ny0zLjQ3YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTQgNGMtLjMuMy0uMy43NyAwIDEuMDZsNCA0Yy4zLjMuNzcuMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlTGVmdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAyYTEyIDEyIDAgMSAxIDAgMjQgMTIgMTIgMCAwIDEgMC0yNFptMi43OCA3LjAzYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTUuNSA1LjVjLS4zLjMtLjMuNzcgMCAxLjA2bDUuNSA1LjVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMS44MSAxNGw0Ljk3LTQuOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlTGVmdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlTGVmdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDMuNWExMC41IDEwLjUgMCAxIDEgMCAyMSAxMC41IDEwLjUgMCAwIDEgMC0yMVpNMjYgMTRhMTIgMTIgMCAxIDAtMjQgMCAxMiAxMiAwIDAgMCAyNCAwWm0tOS4yMi00Ljk3YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTUuNSA1LjVjLS4zLjMtLjMuNzcgMCAxLjA2bDUuNSA1LjVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMS44MSAxNGw0Ljk3LTQuOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlTGVmdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0zMCAxNmExNCAxNCAwIDEgMS0yOCAwIDE0IDE0IDAgMCAxIDI4IDBabS0xMi43IDYuN2ExIDEgMCAwIDAgMS40LTEuNEwxMy40MiAxNmw1LjMtNS4zYTEgMSAwIDAgMC0xLjQyLTEuNGwtNS44OCA1Ljg3LS4wMi4wMy0uMDguMDhhMSAxIDAgMCAwLS4yOS43MmMwIC4yNi4xLjQ4LjMuNzIuMDMuMDUuMDQuMDYuMS4xbDUuODcgNS44OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVMZWZ0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTcuMyAyMi43YTEgMSAwIDAgMCAxLjQtMS40TDEzLjQyIDE2bDUuMy01LjNhMSAxIDAgMCAwLTEuNDItMS40bC01Ljg4IDUuODctLjAyLjAzLS4wOC4wOGExIDEgMCAwIDAtLjI5LjcyYzAgLjI2LjEuNDguMy43Mi4wMy4wNS4wNC4wNi4xLjFsNS44NyA1Ljg5Wk0xNiAzMGExNCAxNCAwIDEgMCAwLTI4IDE0IDE0IDAgMCAwIDAgMjhabTEyLTE0YTEyIDEyIDAgMSAxLTI0IDAgMTIgMTIgMCAwIDEgMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVMZWZ0NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDAgMCAwLTQwWm0zLjYzIDI4LjYyYTEuMjUgMS4yNSAwIDAgMS0xLjc2IDEuNzZsLTkuNS05LjVhMS4yNSAxLjI1IDAgMCAxIDAtMS43Nmw5LjUtOS41YTEuMjUgMS4yNSAwIDAgMSAxLjc2IDEuNzZMMTkuMDIgMjRsOC42MSA4LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZUxlZnQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZUxlZnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCA0MS41YTE3LjUgMTcuNSAwIDEgMCAwLTM1IDE3LjUgMTcuNSAwIDAgMCAwIDM1Wk00NCAyNGEyMCAyMCAwIDEgMS00MCAwIDIwIDIwIDAgMCAxIDQwIDBabS0xNi4zNyA4LjYyYTEuMjUgMS4yNSAwIDAgMS0xLjc2IDEuNzZsLTkuNS05LjVhMS4yNSAxLjI1IDAgMCAxIDAtMS43Nmw5LjUtOS41YTEuMjUgMS4yNSAwIDAgMSAxLjc2IDEuNzZMMTkuMDIgMjRsOC42MSA4LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVJpZ2h0MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVJpZ2h0MTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xIDZhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDEgNlptNC44NS0xLjg1YS41LjUgMCAxIDAtLjcuN0w2LjI5IDYgNS4xNSA3LjE1YS41LjUgMCAxIDAgLjcuN2wxLjUtMS41YS41LjUgMCAwIDAgMC0uN2wtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlUmlnaHQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk01Ljg1IDQuMTVhLjUuNSAwIDEgMC0uNy43TDYuMjkgNiA1LjE1IDcuMTVhLjUuNSAwIDEgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41Wk02IDFhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDYgMVpNMiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxNEE2IDYgMCAxIDAgOCAyYTYgNiAwIDAgMCAwIDEyWm0tLjY1LTguODUgMi41IDIuNWMuMi4yLjIuNSAwIC43bC0yLjUgMi41YS41LjUgMCAwIDEtLjctLjdMOC43OSA4IDYuNjUgNS44NWEuNS41IDAgMSAxIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggMTNBNSA1IDAgMSAwIDggM2E1IDUgMCAwIDAgMCAxMFptNi01QTYgNiAwIDEgMSAyIDhhNiA2IDAgMCAxIDEyIDBaTTcuMzUgNS4xNWwyLjUgMi41Yy4yLjIuMi41IDAgLjdsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNy0uN0w4Ljc5IDggNi42NSA1Ljg1YS41LjUgMCAxIDEgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDE4YTggOCAwIDEgMSAwLTE2IDggOCAwIDAgMSAwIDE2Wm0tMS44NS00Ljg1YS41LjUgMCAwIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNWEuNS41IDAgMSAwLS43LjdMMTEuMjkgMTBsLTMuMTQgMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAxN2E3IDcgMCAxIDEgMC0xNCA3IDcgMCAwIDEgMCAxNFptLTgtN2E4IDggMCAxIDAgMTYgMCA4IDggMCAwIDAtMTYgMFptNi4xNSAzLjE1YS41LjUgMCAwIDAgLjcuN2wzLjUtMy41YS41LjUgMCAwIDAgMC0uN2wtMy41LTMuNWEuNS41IDAgMSAwLS43LjdMMTEuMjkgMTBsLTMuMTQgMy4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBabTcuOTcgNC41M2MuMy4zLjc3LjMgMS4wNiAwbDQtNGMuMy0uMy4zLS43NyAwLTEuMDZsLTQtNGEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDEzLjQ0IDEybC0zLjQ3IDMuNDdjLS4zLjMtLjMuNzcgMCAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIgMTJhMTAgMTAgMCAxIDEgMjAgMCAxMCAxMCAwIDAgMS0yMCAwWm0xLjUgMGE4LjUgOC41IDAgMSAwIDE3IDAgOC41IDguNSAwIDAgMC0xNyAwWm02LjQ3IDQuNTNhLjc1Ljc1IDAgMCAxIDAtMS4wNkwxMy40NCAxMiA5Ljk3IDguNTNhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmw0IDRjLjMuMy4zLjc3IDAgMS4wNmwtNCA0Yy0uMy4zLS43Ny4zLTEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMjZhMTIgMTIgMCAxIDEgMC0yNCAxMiAxMiAwIDAgMSAwIDI0Wm0tMi43OC03LjAzYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNS41LTUuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTUuNS01LjVhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwxNi4xOSAxNGwtNC45NyA0Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVJpZ2h0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDI0LjVhMTAuNSAxMC41IDAgMSAxIDAtMjEgMTAuNSAxMC41IDAgMCAxIDAgMjFaTTIgMTRhMTIgMTIgMCAxIDAgMjQgMCAxMiAxMiAwIDAgMC0yNCAwWm05LjIyIDQuOTdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmw1LjUtNS41Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNS41LTUuNWEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDE2LjE5IDE0bC00Ljk3IDQuOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlUmlnaHQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlUmlnaHQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgMTZhMTQgMTQgMCAxIDEgMjggMCAxNCAxNCAwIDAgMS0yOCAwWm0xMi43LTYuN2ExIDEgMCAxIDAtMS40IDEuNGw1LjI5IDUuMy01LjMgNS4zYTEgMSAwIDAgMCAxLjQyIDEuNGw1Ljg4LTUuODcuMDItLjAzLjA4LS4wOGExIDEgMCAwIDAgLjI5LS43MmMwLS4yNi0uMS0uNDgtLjMtLjcyYTEuMjMgMS4yMyAwIDAgMC0uMS0uMWwtNS44Ny01Ljg5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVJpZ2h0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE0LjcgOS4zYTEgMSAwIDEgMC0xLjQgMS40bDUuMjkgNS4zLTUuMyA1LjNhMSAxIDAgMCAwIDEuNDIgMS40bDUuODgtNS44Ny4wMi0uMDMuMDgtLjA4YTEgMSAwIDAgMCAuMjktLjcyYzAtLjI2LS4xLS40OC0uMy0uNzJhMS4yMyAxLjIzIDAgMCAwLS4xLS4xbC01Ljg3LTUuODlaTTE2IDJhMTQgMTQgMCAxIDAgMCAyOCAxNCAxNCAwIDAgMCAwLTI4Wk00IDE2YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVSaWdodDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVSaWdodDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMCAxIDAtNDBabS0zLjYzIDI4LjYyYTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZsOS41LTkuNWMuNS0uNDguNS0xLjI4IDAtMS43NmwtOS41LTkuNWExLjI1IDEuMjUgMCAwIDAtMS43NiAxLjc2TDI4Ljk4IDI0bC04LjYxIDguNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlUmlnaHQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVJpZ2h0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQgNDEuNWExNy41IDE3LjUgMCAxIDEgMC0zNSAxNy41IDE3LjUgMCAwIDEgMCAzNVpNNCAyNGEyMCAyMCAwIDEgMCA0MCAwIDIwIDIwIDAgMCAwLTQwIDBabTE2LjM3IDguNjJhMS4yNSAxLjI1IDAgMCAwIDEuNzYgMS43Nmw5LjUtOS41Yy41LS40OC41LTEuMjggMC0xLjc2bC05LjUtOS41YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDEuNzZMMjguOTggMjRsLTguNjEgOC42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVVcDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVVcDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxMUE1IDUgMCAxIDEgNiAxYTUgNSAwIDAgMSAwIDEwWk00LjE1IDYuMTVhLjUuNSAwIDEgMCAuNy43TDYgNS43MWwxLjE1IDEuMTRhLjUuNSAwIDEgMCAuNy0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBsLTEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlVXAxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVVwMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNC4xNSA2LjE1YS41LjUgMCAxIDAgLjcuN0w2IDUuNzFsMS4xNSAxLjE0YS41LjUgMCAxIDAgLjctLjdsLTEuNS0xLjVhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41Wk0xIDZhNSA1IDAgMSAwIDEwIDBBNSA1IDAgMCAwIDEgNlptNSA0YTQgNCAwIDEgMSAwLTggNCA0IDAgMCAxIDAgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVVcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVVcDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhabTguODUuNjUtMi41LTIuNWEuNS41IDAgMCAwLS43IDBsLTIuNSAyLjVhLjUuNSAwIDEgMCAuNy43TDggNy4yMWwyLjE1IDIuMTRhLjUuNSAwIDAgMCAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVVcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlVXAxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDhhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDMgOFptNS02YTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJabTIuODUgNi42NS0yLjUtMi41YS41LjUgMCAwIDAtLjcgMGwtMi41IDIuNWEuNS41IDAgMSAwIC43LjdMOCA3LjIxbDIuMTUgMi4xNGEuNS41IDAgMCAwIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDEgMCAxNiAwIDggOCAwIDAgMC0xNiAwWm00Ljg1IDEuODVhLjUuNSAwIDAgMS0uNy0uN2wzLjUtMy41YS41LjUgMCAwIDEgLjcgMGwzLjUgMy41YS41LjUgMCAwIDEtLjcuN0wxMCA4LjcxbC0zLjE1IDMuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlVXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVVwMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyAxMGE3IDcgMCAxIDAgMTQgMCA3IDcgMCAwIDAtMTQgMFptNyA4YTggOCAwIDEgMSAwLTE2IDggOCAwIDAgMSAwIDE2Wm0tMy4xNS02LjE1YS41LjUgMCAwIDEtLjctLjdsMy41LTMuNWEuNS41IDAgMCAxIC43IDBsMy41IDMuNWEuNS41IDAgMCAxLS43LjdMMTAgOC43MWwtMy4xNSAzLjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVVwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVVwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyMmExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBabS00LjUzLTcuOTdhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LTRjLjMtLjMuNzctLjMgMS4wNiAwbDQgNGEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2TDEyIDEwLjU2bC0zLjQ3IDMuNDdjLS4zLjMtLjc3LjMtMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVVwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVVcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDIyYTEwIDEwIDAgMSAwIDAtMjAgMTAgMTAgMCAwIDAgMCAyMFptMC0xLjVhOC41IDguNSAwIDEgMSAwLTE3IDguNSA4LjUgMCAwIDEgMCAxN1ptLTQuNTMtNi40N2MuMy4zLjc3LjMgMS4wNiAwTDEyIDEwLjU2bDMuNDcgMy40N2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC00LTRhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNCA0Yy0uMy4zLS4zLjc3IDAgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVVcDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVVcDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMiAxNGExMiAxMiAwIDEgMCAyNCAwIDEyIDEyIDAgMCAwLTI0IDBabTcuMDMgMi43OGEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDUuNS01LjVjLjMtLjMuNzctLjMgMS4wNiAwbDUuNSA1LjVhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwxNCAxMS44MWwtNC45NyA0Ljk3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkNpcmNsZVVwMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25DaXJjbGVVcDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMuNSAxNGExMC41IDEwLjUgMCAxIDAgMjEgMCAxMC41IDEwLjUgMCAwIDAtMjEgMFpNMTQgMjZhMTIgMTIgMCAxIDEgMC0yNCAxMiAxMiAwIDAgMSAwIDI0Wm0tNC45Ny05LjIyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNS41LTUuNWMuMy0uMy43Ny0uMyAxLjA2IDBsNS41IDUuNWEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2TDE0IDExLjgxbC00Ljk3IDQuOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlVXAzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlVXAzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDMwYTE0IDE0IDAgMSAxIDAtMjggMTQgMTQgMCAwIDEgMCAyOFpNOS4zIDE3LjNhMSAxIDAgMSAwIDEuNCAxLjRsNS4zLTUuMjkgNS4zIDUuM2ExIDEgMCAwIDAgMS40LTEuNDJsLTUuODctNS44OC0uMDMtLjAyYTEuNjYgMS42NiAwIDAgMS0uMDgtLjA4IDEgMSAwIDAgMC0uNzItLjI5Yy0uMjYgMC0uNDguMS0uNzIuMy0uMDUuMDMtLjA2LjA0LS4xLjFsLTUuODkgNS44N1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25DaXJjbGVVcDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlVXAzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDE2YTEyIDEyIDAgMSAwIDI0IDAgMTIgMTIgMCAwIDAtMjQgMFptMTIgMTRhMTQgMTQgMCAxIDEgMC0yOCAxNCAxNCAwIDAgMSAwIDI4Wk05LjMgMTguN2ExIDEgMCAwIDEgMC0xLjRsNS44Ny01Ljg5LjExLS4xYy4yNC0uMi40Ni0uMy43Mi0uMjlhMSAxIDAgMCAxIC43Mi4zbC4xLjEgNS44OSA1Ljg3YTEgMSAwIDAgMS0xLjQyIDEuNDJMMTYgMTMuNGwtNS4zIDUuM2ExIDEgMCAwIDEtMS40IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlVXA0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uQ2lyY2xlVXA0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDAgMSAwLTQwWm0tOC42MiAyMy42M0wyNCAxOS4wMmw4LjYyIDguNjFhMS4yNSAxLjI1IDAgMCAwIDEuNzYtMS43NmwtOS41LTkuNWExLjI1IDEuMjUgMCAwIDAtMS43NiAwbC05LjUgOS41YTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uQ2lyY2xlVXA0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkNpcmNsZVVwNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNi41IDI0YTE3LjUgMTcuNSAwIDEgMCAzNSAwIDE3LjUgMTcuNSAwIDAgMC0zNSAwWk0yNCA0NGEyMCAyMCAwIDEgMSAwLTQwIDIwIDIwIDAgMCAxIDAgNDBabS04LjYyLTE2LjM3YTEuMjUgMS4yNSAwIDAgMS0xLjc2LTEuNzZsOS41LTkuNWExLjI1IDEuMjUgMCAwIDEgMS43NiAwbDkuNSA5LjVhMS4yNSAxLjI1IDAgMCAxLTEuNzYgMS43NkwyNCAxOS4wMmwtOC42MiA4LjYxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZURvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlRG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTEuNzQgNy43YS43NS43NSAwIDEgMSAxLjAyIDEuMWwtNC4yNSA0YS43NS43NSAwIDAgMS0xLjAyIDBsLTQuMjUtNGEuNzUuNzUgMCAxIDEgMS4wMi0xLjFMOCAxMS4yM2wzLjc0LTMuNTNabTAtNGEuNzUuNzUgMCAxIDEgMS4wMiAxLjFsLTQuMjUgNGEuNzUuNzUgMCAwIDEtMS4wMiAwbC00LjI1LTRhLjc1Ljc1IDAgMSAxIDEuMDItMS4xTDggNy4yM2wzLjc0LTMuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlRG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlRG93bjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEyLjE1IDcuMTVhLjUuNSAwIDAgMSAuNy43bC00LjUgNC41YS41LjUgMCAwIDEtLjcgMGwtNC41LTQuNWEuNS41IDAgMSAxIC43LS43TDggMTEuMjlsNC4xNS00LjE0Wm0wLTRhLjUuNSAwIDAgMSAuNy43bC00LjUgNC41YS41LjUgMCAwIDEtLjcgMGwtNC41LTQuNWEuNS41IDAgMSAxIC43LS43TDggNy4yOWw0LjE1LTQuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlRG93bjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3VibGVEb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS44IDguNzNjLjI4LjMuMjcuNzgtLjAzIDEuMDZsLTUuMjUgNWEuNzUuNzUgMCAwIDEtMS4wNCAwbC01LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQtMS4wOEwxMCAxMy4ybDQuNzMtNC41YS43NS43NSAwIDAgMSAxLjA2LjAyWm0wLTRjLjI4LjMuMjcuNzgtLjAzIDEuMDZsLTUuMjUgNWEuNzUuNzUgMCAwIDEtMS4wNCAwbC01LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQtMS4wOEwxMCA5LjJsNC43My00LjVhLjc1Ljc1IDAgMCAxIDEuMDYuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlRG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlRG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE1Ljg1IDguNjVjLjIuMi4yLjUgMCAuN2wtNS40NiA1LjQ5YS41NS41NSAwIDAgMS0uNzggMEw0LjE1IDkuMzVhLjUuNSAwIDEgMSAuNy0uN0wxMCAxMy44bDUuMTUtNS4xNmMuMi0uMi41LS4yLjcgMFptMC00Yy4yLjIuMi41IDAgLjdsLTUuNDYgNS40OWEuNTUuNTUgMCAwIDEtLjc4IDBMNC4xNSA1LjM1YS41LjUgMCAxIDEgLjctLjdMMTAgOS44bDUuMTUtNS4xNmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVMZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZUxlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguMyAxMS43NGEuNzUuNzUgMCAxIDEtMS4xIDEuMDJsLTQtNC4yNWEuNzUuNzUgMCAwIDEgMC0xLjAybDQtNC4yNWEuNzUuNzUgMCAxIDEgMS4xIDEuMDJMNC43NyA4bDMuNTMgMy43NFptNCAwYS43NS43NSAwIDEgMS0xLjEgMS4wMmwtNC00LjI1YS43NS43NSAwIDAgMSAwLTEuMDJsNC00LjI1YS43NS43NSAwIDEgMSAxLjEgMS4wMkw4Ljc3IDhsMy41MyAzLjc0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZUxlZnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZUxlZnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjM1IDEyLjE1YS41LjUgMCAwIDEtLjcuN2wtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdsNC41LTQuNWEuNS41IDAgMSAxIC43LjdMNC4yMSA4bDQuMTQgNC4xNVptNCAwYS41LjUgMCAwIDEtLjcuN2wtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdsNC41LTQuNWEuNS41IDAgMCAxIC43LjdMOC4yMSA4bDQuMTQgNC4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZUxlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExLjI3IDE1LjhhLjc1Ljc1IDAgMCAxLTEuMDYtLjAzbC01LTUuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wNGw1LTUuMjVhLjc1Ljc1IDAgMSAxIDEuMDggMS4wNEw2LjggMTBsNC41IDQuNzNjLjI5LjMuMjguNzgtLjAyIDEuMDZabTQgMGEuNzUuNzUgMCAwIDEtMS4wNi0uMDNsLTUtNS4yNWEuNzUuNzUgMCAwIDEgMC0xLjA0bDUtNS4yNWEuNzUuNzUgMCAxIDEgMS4wOSAxLjA0TDEwLjc5IDEwbDQuNSA0LjczYy4zLjMuMjguNzgtLjAyIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlTGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTExLjM1IDE1Ljg1YS41LjUgMCAwIDEtLjcgMEw1LjE2IDEwLjRhLjU1LjU1IDAgMCAxIDAtLjc4bDUuNDktNS40NmEuNS41IDAgMSAxIC43LjdMNi4yIDEwbDUuMTYgNS4xNWMuMi4yLjIuNSAwIC43Wm00IDBhLjUuNSAwIDAgMS0uNyAwTDkuMTYgMTAuNGEuNTUuNTUgMCAwIDEgMC0uNzhsNS40OS01LjQ2YS41LjUgMCAxIDEgLjcuN0wxMC4yIDEwbDUuMTYgNS4xNWMuMi4yLjIuNSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZVJpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZVJpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjcgNC4yNmEuNzUuNzUgMCAxIDEgMS4xLTEuMDJsNCA0LjI1Yy4yNy4yOS4yNy43MyAwIDEuMDJsLTQgNC4yNWEuNzUuNzUgMCAxIDEtMS4xLTEuMDJMMTEuMjMgOCA3LjcgNC4yNlptLTQgMGEuNzUuNzUgMCAxIDEgMS4xLTEuMDJsNCA0LjI1Yy4yNy4yOS4yNy43MyAwIDEuMDJsLTQgNC4yNWEuNzUuNzUgMCAxIDEtMS4xLTEuMDJMNy4yMyA4IDMuNyA0LjI2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZVJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3VibGVSaWdodDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcuNjUgMy44NWEuNS41IDAgMSAxIC43LS43bDQuNSA0LjVjLjIuMi4yLjUgMCAuN2wtNC41IDQuNWEuNS41IDAgMCAxLS43LS43TDExLjc5IDggNy42NSAzLjg1Wm0tNCAwYS41LjUgMCAxIDEgLjctLjdsNC41IDQuNWMuMi4yLjIuNSAwIC43bC00LjUgNC41YS41LjUgMCAwIDEtLjctLjdMNy43OSA4IDMuNjUgMy44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3VibGVSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC43MyA0LjJhLjc1Ljc1IDAgMCAxIDEuMDYuMDNsNSA1LjI1Yy4yOC4zLjI4Ljc1IDAgMS4wNGwtNSA1LjI1YS43NS43NSAwIDEgMS0xLjA4LTEuMDRMMTMuMiAxMGwtNC41LTQuNzNhLjc1Ljc1IDAgMCAxIC4wMi0xLjA2Wm0tNCAwYS43NS43NSAwIDAgMSAxLjA2LjAzbDUgNS4yNWMuMjguMy4yOC43NSAwIDEuMDRsLTUgNS4yNWEuNzUuNzUgMCAxIDEtMS4wOC0xLjA0TDkuMiAxMGwtNC41LTQuNzNhLjc1Ljc1IDAgMCAxIC4wMi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZVJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3VibGVSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNjUgNC4xNWMuMi0uMi41LS4yLjcgMGw1LjQ5IDUuNDZjLjIxLjIyLjIxLjU3IDAgLjc4bC01LjQ5IDUuNDZhLjUuNSAwIDAgMS0uNy0uN0wxMy44IDEwIDguNjUgNC44NWEuNS41IDAgMCAxIDAtLjdabS00IDBjLjItLjIuNS0uMi43IDBsNS40OSA1LjQ2Yy4yMS4yMi4yMS41NyAwIC43OGwtNS40OSA1LjQ2YS41LjUgMCAwIDEtLjctLjdMOS44IDEwIDQuNjUgNC44NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlVXAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlVXAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuMjYgOC4zYS43NS43NSAwIDEgMS0xLjAyLTEuMWw0LjI1LTRhLjc1Ljc1IDAgMCAxIDEuMDIgMGw0LjI1IDRhLjc1Ljc1IDAgMSAxLTEuMDIgMS4xTDggNC43NyA0LjI2IDguM1ptMCA0YS43NS43NSAwIDAgMS0xLjAyLTEuMWw0LjI1LTRhLjc1Ljc1IDAgMCAxIDEuMDIgMGw0LjI1IDRhLjc1Ljc1IDAgMSAxLTEuMDIgMS4xTDggOC43NyA0LjI2IDEyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG91YmxlVXAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZVVwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMy44NSA4LjM1YS41LjUgMCAxIDEtLjctLjdsNC41LTQuNWMuMi0uMi41LS4yLjcgMGw0LjUgNC41YS41LjUgMCAwIDEtLjcuN0w4IDQuMjEgMy44NSA4LjM1Wm0wIDRhLjUuNSAwIDAgMS0uNy0uN2w0LjUtNC41Yy4yLS4yLjUtLjIuNyAwbDQuNSA0LjVhLjUuNSAwIDAgMS0uNy43TDggOC4yMWwtNC4xNSA0LjE0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvdWJsZVVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvdWJsZVVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00LjIgMTUuMjdhLjc1Ljc1IDAgMCAxIC4wMy0xLjA2bDUuMjUtNWEuNzUuNzUgMCAwIDEgMS4wNCAwbDUuMjUgNWEuNzUuNzUgMCAwIDEtMS4wNCAxLjA4TDEwIDEwLjhsLTQuNzMgNC41YS43NS43NSAwIDAgMS0xLjA2LS4wMlptMC01YS43NS43NSAwIDAgMSAuMDMtMS4wNmw1LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQgMGw1LjI1IDVhLjc1Ljc1IDAgMCAxLTEuMDQgMS4wOEwxMCA1LjhsLTQuNzMgNC41YS43NS43NSAwIDAgMS0xLjA2LS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3VibGVVcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG91YmxlVXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjE1IDkuNjVhLjUuNSAwIDAgMCAuNy43TDEwIDUuMmw1LjE1IDUuMTZhLjUuNSAwIDEgMCAuNy0uN0wxMC40IDQuMTZhLjU1LjU1IDAgMCAwLS43OCAwTDQuMTUgOS42NVptMCA1YS41LjUgMCAwIDAgLjcuN0wxMCAxMC4ybDUuMTUgNS4xNmEuNS41IDAgMSAwIC43LS43TDEwLjQgOS4xNmEuNTUuNTUgMCAwIDAtLjc4IDBsLTUuNDYgNS40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd24xMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTIuMjIgNC40N2MuMy0uMy43Ny0uMyAxLjA2IDBMNiA3LjE5bDIuNzItMi43MmEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2TDYuNTMgOC43OGMtLjMuMy0uNzcuMy0xLjA2IDBMMi4yMiA1LjUzYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93bjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93bjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTIuMTUgNC42NWMuMi0uMi41LS4yLjcgMEw2IDcuNzlsMy4xNS0zLjE0YS41LjUgMCAxIDEgLjcuN2wtMy41IDMuNWEuNS41IDAgMCAxLS43IDBsLTMuNS0zLjVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy4yIDUuNzRhLjc1Ljc1IDAgMCAxIDEuMDYtLjA0TDggOS4yM2wzLjc0LTMuNTNhLjc1Ljc1IDAgMSAxIDEuMDIgMS4xbC00LjI1IDRhLjc1Ljc1IDAgMCAxLTEuMDIgMGwtNC4yNS00YS43NS43NSAwIDAgMS0uMDQtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3duMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMy4xNSA1LjY1Yy4yLS4yLjUtLjIuNyAwTDggOS43OWw0LjE1LTQuMTRhLjUuNSAwIDAgMSAuNy43bC00LjUgNC41YS41LjUgMCAwIDEtLjcgMGwtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93bjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS44IDcuNzNjLjI4LjMuMjcuNzgtLjAzIDEuMDZsLTUuMjUgNWEuNzUuNzUgMCAwIDEtMS4wNCAwbC01LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQtMS4wOEwxMCAxMi4ybDQuNzMtNC41YS43NS43NSAwIDAgMSAxLjA2LjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNS44NSA3LjY1Yy4yLjIuMi41IDAgLjdsLTUuNDYgNS40OWEuNTUuNTUgMCAwIDEtLjc4IDBMNC4xNSA4LjM1YS41LjUgMCAxIDEgLjctLjdMMTAgMTIuOGw1LjE1LTUuMTZjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93bjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00LjMgOC4zYTEgMSAwIDAgMSAxLjQgMGw2LjMgNi4yOSA2LjMtNi4zYTEgMSAwIDEgMSAxLjQgMS40MmwtNyA3YTEgMSAwIDAgMS0xLjQgMGwtNy03YTEgMSAwIDAgMSAwLTEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93bjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuMjIgOC40N2MuMy0uMy43Ny0uMyAxLjA2IDBMMTIgMTUuMTlsNi43Mi02LjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTcuMjUgNy4yNWMtLjMuMy0uNzcuMy0xLjA2IDBMNC4yMiA5LjUzYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93bjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25Eb3duMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk00LjMgOS4zYTEgMSAwIDAgMSAxLjQgMGw4LjMgOC4yOSA4LjMtOC4zYTEgMSAwIDEgMSAxLjQgMS40MmwtOSA5YTEgMSAwIDAgMS0xLjQgMGwtOS05YTEgMSAwIDAgMSAwLTEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93bjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93bjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQuMjIgOS40N2MuMy0uMy43Ny0uMyAxLjA2IDBMMTQgMTguMTlsOC43Mi04LjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTkuMjUgOS4yNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTkuMjUtOS4yNWEuNzUuNzUgMCAwIDEgMC0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93bjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNS4zNyAxMS4xMmExLjI1IDEuMjUgMCAwIDEgMS43NiAwTDE2IDE5Ljk4bDguODctOC44NmExLjI1IDEuMjUgMCAwIDEgMS43NiAxLjc2bC05Ljc1IDkuNzVjLS40OC41LTEuMjguNS0xLjc2IDBsLTkuNzUtOS43NWExLjI1IDEuMjUgMCAwIDEgMC0xLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd24zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd24zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk01LjMgMTEuM2ExIDEgMCAwIDEgMS40IDBsOS4zIDkuMjkgOS4zLTkuM2ExIDEgMCAwIDEgMS40IDEuNDJsLTEwIDEwYTEgMSAwIDAgMS0xLjQgMGwtMTAtMTBhMSAxIDAgMCAxIDAtMS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd240OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTguNDQgMTUuOTRhMS41IDEuNSAwIDAgMSAyLjEyIDBMMjQgMjkuMzhsMTMuNDQtMTMuNDRhMS41IDEuNSAwIDAgMSAyLjEyIDIuMTJsLTE0LjUgMTQuNWExLjUgMS41IDAgMCAxLTIuMTIgMGwtMTQuNS0xNC41YTEuNSAxLjUgMCAwIDEgMC0yLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd240OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk04LjM3IDE2LjEyYTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsMTQuNzUgMTQuNzVjLjQ4LjUgMS4yOC41IDEuNzYgMGwxNC43NS0xNC43NWExLjI1IDEuMjUgMCAwIDAtMS43Ni0xLjc2TDI0IDI5Ljk4IDEwLjEzIDE2LjEyYTEuMjUgMS4yNSAwIDAgMC0xLjc2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uRG93blVwMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd25VcDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTEuNzggMy41MyA4LjUzIDYuNzhjLS4zLjMtLjc3LjMtMS4wNiAwTDQuMjIgMy41M2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2TDggNS4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpNOC41MyA5LjIyYS43NS43NSAwIDAgMC0xLjA2IDBsLTMuMjUgMy4yNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2TDggMTAuODFsMi43MiAyLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZMOC41MyA5LjIyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd25VcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93blVwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTEuODUgMy4zNS0zLjUgMy41YS41LjUgMCAwIDEtLjcgMGwtMy41LTMuNWEuNS41IDAgMSAxIC43LS43TDggNS43OWwzLjE1LTMuMTRhLjUuNSAwIDAgMSAuNy43Wm0wIDkuMy0zLjUtMy41YS41LjUgMCAwIDAtLjcgMGwtMy41IDMuNWEuNS41IDAgMCAwIC43LjdMOCAxMC4yMWwzLjE1IDMuMTRhLjUuNSAwIDAgMCAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duVXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93blVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02LjI4IDIuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw0LjI1IDQuMjVjLjMuMy43Ny4zIDEuMDYgMGw0LjI1LTQuMjVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwxMCA2LjY5IDYuMjggMi45N1ptOC41IDEzLTQuMjUtNC4yNWEuNzUuNzUgMCAwIDAtMS4wNiAwbC00LjI1IDQuMjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxMCAxMy4zMWwzLjcyIDMuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duVXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd25VcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuODUgMy4xNWEuNS41IDAgMSAwLS43LjdsNC41IDQuNWMuMi4yLjUuMi43IDBsNC41LTQuNWEuNS41IDAgMCAwLS43LS43TDEwIDcuMjkgNS44NSAzLjE1Wm05IDEzLTQuNS00LjVhLjUuNSAwIDAgMC0uNyAwbC00LjUgNC41YS41LjUgMCAwIDAgLjcuN0wxMCAxMi43MWw0LjE1IDQuMTRhLjUuNSAwIDAgMCAuNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duVXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uRG93blVwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjcgMi44YTEgMSAwIDAgMC0xLjQgMS40bDYgNmExIDEgMCAwIDAgMS40IDBsNi02YTEgMSAwIDAgMC0xLjQtMS40TDEyIDguMDhsLTUuMy01LjNabTAgMTguNGExIDEgMCAwIDEtMS40LTEuNGw2LTZhMSAxIDAgMCAxIDEuNCAwbDYgNmExIDEgMCAwIDEtMS40IDEuNEwxMiAxNS45MmwtNS4zIDUuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duVXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkRvd25VcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjggMi45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDYuMjUgNi4yNWMuMy4zLjc3LjMgMS4wNiAwbDYuMjUtNi4yNWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDEyIDguNjkgNi4yOCAyLjk3Wm0wIDE4LjA2YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNi4yNS02LjI1Yy4zLS4zLjc3LS4zIDEuMDYgMGw2LjI1IDYuMjVhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwxMiAxNS4zMWwtNS43MiA1LjcyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkxlZnQxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNy41MyAyLjIyYy4zLjMuMy43NyAwIDEuMDZMNC44MSA2bDIuNzIgMi43MmEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2TDMuMjIgNi41M2EuNzUuNzUgMCAwIDEgMC0xLjA2bDMuMjUtMy4yNWMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTcuMzUgMi4xNWMuMi4yLjIuNSAwIC43TDQuMjEgNmwzLjE0IDMuMTVhLjUuNSAwIDEgMS0uNy43bC0zLjUtMy41YS41LjUgMCAwIDEgMC0uN2wzLjUtMy41Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkxlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAuMjYgMy4yYy4zLjI4LjMyLjc2LjA0IDEuMDZMNi43NyA4bDMuNTMgMy43NGEuNzUuNzUgMCAxIDEtMS4xIDEuMDJsLTQtNC4yNWEuNzUuNzUgMCAwIDEgMC0xLjAybDQtNC4yNWEuNzUuNzUgMCAwIDEgMS4wNi0uMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEwLjM1IDMuMTVjLjIuMi4yLjUgMCAuN0w2LjIxIDhsNC4xNCA0LjE1YS41LjUgMCAwIDEtLjcuN2wtNC41LTQuNWEuNS41IDAgMCAxIDAtLjdsNC41LTQuNWMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25MZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkxlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyLjI3IDE1LjhhLjc1Ljc1IDAgMCAxLTEuMDYtLjAzbC01LTUuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wNGw1LTUuMjVhLjc1Ljc1IDAgMSAxIDEuMDggMS4wNEw3LjggMTBsNC41IDQuNzNjLjI5LjMuMjguNzgtLjAyIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyLjM1IDE1Ljg1YS41LjUgMCAwIDEtLjcgMEw2LjE2IDEwLjRhLjU1LjU1IDAgMCAxIDAtLjc4bDUuNDktNS40NmEuNS41IDAgMSAxIC43LjdMNy4yIDEwbDUuMTYgNS4xNWMuMi4yLjIuNSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNyA0LjNhMSAxIDAgMCAxIDAgMS40TDkuNDIgMTJsNi4zIDYuM2ExIDEgMCAwIDEtMS40MiAxLjRsLTctN2ExIDEgMCAwIDEgMC0xLjRsNy03YTEgMSAwIDAgMSAxLjQyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjUzIDQuMjJjLjMuMy4zLjc3IDAgMS4wNkw4LjgxIDEybDYuNzIgNi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC03LjI1LTcuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw3LjI1LTcuMjVjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkxlZnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTguNDYgMjMuMmExIDEgMCAwIDEtMS40MiAwTDguMyAxNC40N2ExIDEgMCAwIDEgMC0xLjQybDguNzUtOC43NWExIDEgMCAxIDEgMS40MiAxLjQybC04LjA1IDguMDQgOC4wNSA4LjA0YTEgMSAwIDAgMSAwIDEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE4LjAzIDIyLjc4Yy0uMy4zLS43Ny4zLTEuMDYgMGwtOC43NS04Ljc1YS43NS43NSAwIDAgMSAwLTEuMDZsOC43NS04Ljc1YS43NS43NSAwIDEgMSAxLjA2IDEuMDZMOS44MSAxMy41bDguMjIgOC4yMmMuMy4zLjMuNzcgMCAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvbkxlZnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjAuODggNS4zN2MuNS40OC41IDEuMjggMCAxLjc2TDEyLjAyIDE2bDguODYgOC44N2ExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2bC05Ljc1LTkuNzVhMS4yNSAxLjI1IDAgMCAxIDAtMS43Nmw5Ljc1LTkuNzVhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25MZWZ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25MZWZ0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjAuNyA1LjNhMSAxIDAgMCAxIDAgMS40TDExLjQyIDE2bDkuMyA5LjNhMSAxIDAgMCAxLTEuNDIgMS40bC0xMC0xMGExIDEgMCAwIDEgMC0xLjRsMTAtMTBhMSAxIDAgMCAxIDEuNDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25MZWZ0NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvbkxlZnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTMyLjA2IDguMTlhMS41IDEuNSAwIDAgMSAwIDIuMTJMMTguNjIgMjMuNzVsMTMuNDQgMTMuNDRhMS41IDEuNSAwIDAgMS0yLjEyIDIuMTJsLTE0LjUtMTQuNWExLjUgMS41IDAgMCAxIDAtMi4xMmwxNC41LTE0LjVhMS41IDEuNSAwIDAgMSAyLjEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uTGVmdDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uTGVmdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTMxLjg4IDguMzdjLjUuNDguNSAxLjI4IDAgMS43NkwxOC4wMiAyNGwxMy44NiAxMy44N2ExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2TDE1LjM3IDI0Ljg4YTEuMjUgMS4yNSAwIDAgMSAwLTEuNzZMMzAuMTIgOC4zN2ExLjI1IDEuMjUgMCAwIDEgMS43NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0MTJGaWxsZWQnLCBcIjEyXCIsIFtcIk00LjQ3IDIuMjJjLS4zLjMtLjMuNzcgMCAxLjA2TDcuMTkgNiA0LjQ3IDguNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwzLjI1LTMuMjVjLjMtLjMuMy0uNzcgMC0xLjA2TDUuNTMgMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0MTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTQuNjUgMi4xNWEuNS41IDAgMCAwIDAgLjdMNy43OSA2IDQuNjUgOS4xNWEuNS41IDAgMSAwIC43LjdsMy41LTMuNWEuNS41IDAgMCAwIDAtLjdsLTMuNS0zLjVhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01Ljc0IDMuMmEuNzUuNzUgMCAwIDAtLjA0IDEuMDZMOS4yMyA4IDUuNyAxMS43NGEuNzUuNzUgMCAxIDAgMS4xIDEuMDJsNC00LjI1YS43NS43NSAwIDAgMCAwLTEuMDJsLTQtNC4yNWEuNzUuNzUgMCAwIDAtMS4wNi0uMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uUmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS42NSAzLjE1YS41LjUgMCAwIDAgMCAuN0w5Ljc5IDhsLTQuMTQgNC4xNWEuNS41IDAgMCAwIC43LjdsNC41LTQuNWEuNS41IDAgMCAwIDAtLjdsLTQuNS00LjVhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjczIDQuMmEuNzUuNzUgMCAwIDEgMS4wNi4wM2w1IDUuMjVjLjI4LjMuMjguNzUgMCAxLjA0bC01IDUuMjVhLjc1Ljc1IDAgMSAxLTEuMDgtMS4wNEwxMi4yIDEwbC00LjUtNC43M2EuNzUuNzUgMCAwIDEgLjAyLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy42NSA0LjE1Yy4yLS4yLjUtLjIuNyAwbDUuNDkgNS40NmMuMjEuMjIuMjEuNTcgMCAuNzhsLTUuNDkgNS40NmEuNS41IDAgMCAxLS43LS43TDEyLjggMTAgNy42NSA0Ljg1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25SaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOC4zIDQuM2ExIDEgMCAwIDAgMCAxLjRsNi4yOSA2LjMtNi4zIDYuM2ExIDEgMCAxIDAgMS40MiAxLjRsNy03YTEgMSAwIDAgMCAwLTEuNGwtNy03YTEgMSAwIDAgMC0xLjQyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uUmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC40NyA0LjIyYy0uMy4zLS4zLjc3IDAgMS4wNkwxNS4xOSAxMmwtNi43MiA2LjcyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNy4yNS03LjI1Yy4zLS4zLjMtLjc3IDAtMS4wNkw5LjUzIDQuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25SaWdodDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNOS41NCA0LjNhMSAxIDAgMCAxIDEuNDIgMGw4Ljc1IDguNzRhMSAxIDAgMCAxIDAgMS40MmwtOC43NSA4Ljc1YTEgMSAwIDAgMS0xLjQyLTEuNDJsOC4wNS04LjA0LTguMDUtOC4wNGExIDEgMCAwIDEgMC0xLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTkuOTcgNC4yMmMuMy0uMy43Ny0uMyAxLjA2IDBsOC43NSA4Ljc1YS43NS43NSAwIDAgMSAwIDEuMDZsLTguNzUgOC43NWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDguMjItOC4yMi04LjIyLTguMjJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25SaWdodDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTEuMTIgMjYuNjNhMS4yNSAxLjI1IDAgMCAxIDAtMS43NkwxOS45OCAxNmwtOC44Ni04Ljg3YTEuMjUgMS4yNSAwIDAgMSAxLjc2LTEuNzZsOS43NSA5Ljc1Yy41LjQ4LjUgMS4yOCAwIDEuNzZsLTkuNzUgOS43NWMtLjQ4LjUtMS4yOC41LTEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25SaWdodDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uUmlnaHQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMS4zIDI2LjdhMSAxIDAgMCAxIDAtMS40bDkuMjktOS4zLTkuMy05LjNhMSAxIDAgMCAxIDEuNDItMS40bDEwIDEwYTEgMSAwIDAgMSAwIDEuNGwtMTAgMTBhMSAxIDAgMCAxLTEuNDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25SaWdodDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25SaWdodDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTUuOTQgMzkuMzFhMS41IDEuNSAwIDAgMSAwLTIuMTJsMTMuNDQtMTMuNDQtMTMuNDQtMTMuNDRhMS41IDEuNSAwIDAgMSAyLjEyLTIuMTJsMTQuNSAxNC41YTEuNSAxLjUgMCAwIDEgMCAyLjEybC0xNC41IDE0LjVhMS41IDEuNSAwIDAgMS0yLjEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uUmlnaHQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblJpZ2h0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTYuMTIgMzkuNjNhMS4yNSAxLjI1IDAgMCAxIDAtMS43NkwyOS45OCAyNCAxNi4xMiAxMC4xM2ExLjI1IDEuMjUgMCAwIDEgMS43Ni0xLjc2bDE0Ljc1IDE0Ljc1Yy41LjQ4LjUgMS4yOCAwIDEuNzZMMTcuODggMzkuNjNjLS40OC41LTEuMjguNS0xLjc2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXAxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTIuMjIgNy41M2MuMy4zLjc3LjMgMS4wNiAwTDYgNC44MWwyLjcyIDIuNzJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw2LjUzIDMuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMEwyLjIyIDYuNDdjLS4zLjMtLjMuNzcgMCAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblVwMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTIuMTUgNy4zNWMuMi4yLjUuMi43IDBMNiA0LjIxbDMuMTUgMy4xNGEuNS41IDAgMSAwIC43LS43bC0zLjUtMy41YS41LjUgMCAwIDAtLjcgMGwtMy41IDMuNWEuNS41IDAgMCAwIDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuMiAxMC4yNmMuMjguMy43Ni4zMiAxLjA2LjA0TDggNi43N2wzLjc0IDMuNTNhLjc1Ljc1IDAgMSAwIDEuMDItMS4xbC00LjI1LTRhLjc1Ljc1IDAgMCAwLTEuMDIgMGwtNC4yNSA0YS43NS43NSAwIDAgMC0uMDQgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjE1IDEwLjM1Yy4yLjIuNS4yLjcgMEw4IDYuMjFsNC4xNSA0LjE0YS41LjUgMCAwIDAgLjctLjdsLTQuNS00LjVhLjUuNSAwIDAgMC0uNyAwbC00LjUgNC41YS41LjUgMCAwIDAgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC4yIDEyLjI3YS43NS43NSAwIDAgMSAuMDMtMS4wNmw1LjI1LTVhLjc1Ljc1IDAgMCAxIDEuMDQgMGw1LjI1IDVhLjc1Ljc1IDAgMCAxLTEuMDQgMS4wOEwxMCA3LjhsLTQuNzMgNC41YS43NS43NSAwIDAgMS0xLjA2LS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjE1IDEyLjM1YS41LjUgMCAwIDEgMC0uN0w5LjYgNi4xNmEuNTUuNTUgMCAwIDEgLjc4IDBsNS40NiA1LjQ5YS41LjUgMCAwIDEtLjcuN0wxMCA3LjJsLTUuMTUgNS4xNmEuNS41IDAgMCAxLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQuMyAxNS43YTEgMSAwIDAgMCAxLjQgMEwxMiA5LjQybDYuMyA2LjNhMSAxIDAgMCAwIDEuNC0xLjQybC03LTdhMSAxIDAgMCAwLTEuNCAwbC03IDdhMSAxIDAgMCAwIDAgMS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjIyIDE1LjUzYy4zLjMuNzcuMyAxLjA2IDBMMTIgOC44MWw2LjcyIDYuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtNy4yNS03LjI1YS43NS43NSAwIDAgMC0xLjA2IDBsLTcuMjUgNy4yNWMtLjMuMy0uMy43NyAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXAyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIzLjcgMTguN2ExIDEgMCAwIDEtMS40IDBMMTQgMTAuNDJsLTguMyA4LjNhMSAxIDAgMCAxLTEuNC0xLjQybDktOWExIDEgMCAwIDEgMS40IDBsOSA5YTEgMSAwIDAgMSAwIDEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXAyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblVwMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjMuNzggMTguNTNjLS4zLjMtLjc3LjMtMS4wNiAwTDE0IDkuODFsLTguNzIgOC43MmEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDkuMjUtOS4yNWMuMy0uMy43Ny0uMyAxLjA2IDBsOS4yNSA5LjI1Yy4zLjMuMy43NyAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXAzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXAzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTUuMzcgMjAuODhjLjQ4LjUgMS4yOC41IDEuNzYgMEwxNiAxMi4wMmw4Ljg3IDguODZhMS4yNSAxLjI1IDAgMCAwIDEuNzYtMS43NmwtOS43NS05Ljc1YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDBsLTkuNzUgOS43NWExLjI1IDEuMjUgMCAwIDAgMCAxLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblVwMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTUuMyAyMC43YTEgMSAwIDAgMCAxLjQgMGw5LjMtOS4yOSA5LjMgOS4zYTEgMSAwIDAgMCAxLjQtMS40MmwtMTAtMTBhMSAxIDAgMCAwLTEuNCAwbC0xMCAxMGExIDEgMCAwIDAgMCAxLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblVwNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblVwNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0zOS41NiAzMi4wNmExLjUgMS41IDAgMCAxLTIuMTIgMEwyNCAxOC42MiAxMC41NiAzMi4wNmExLjUgMS41IDAgMCAxLTIuMTItMi4xMmwxNC41LTE0LjVhMS41IDEuNSAwIDAgMSAyLjEyIDBsMTQuNSAxNC41YTEuNSAxLjUgMCAwIDEgMCAyLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblVwNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM5LjYzIDMxLjg4Yy0uNDguNS0xLjI4LjUtMS43NiAwTDI0IDE4LjAyIDEwLjEzIDMxLjg4YTEuMjUgMS4yNSAwIDAgMS0xLjc2LTEuNzZsMTQuNzUtMTQuNzVhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMGwxNC43NSAxNC43NWMuNS40OC41IDEuMjggMCAxLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblVwRG93bjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NoZXZyb25VcERvd24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuMjIgNi41M2MuMy4zLjc3LjMgMS4wNiAwTDggMy44MWwyLjcyIDIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkw4LjUzIDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMEw0LjIyIDUuNDdjLS4zLjMtLjMuNzcgMCAxLjA2Wm0wIDIuOTRjLjMtLjMuNzctLjMgMS4wNiAwTDggMTIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTMuMjUgMy4yNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTMuMjUtMy4yNWEuNzUuNzUgMCAwIDEgMC0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2hldnJvblVwRG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXBEb3duMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC4xNSA2LjM1Yy4yLjIuNS4yLjcgMEw4IDMuMjFsMy4xNSAzLjE0YS41LjUgMCAwIDAgLjctLjdsLTMuNS0zLjVhLjUuNSAwIDAgMC0uNyAwbC0zLjUgMy41YS41LjUgMCAwIDAgMCAuN1ptMCAzLjNjLjItLjIuNS0uMi43IDBMOCAxMi43OWwzLjE1LTMuMTRhLjUuNSAwIDAgMSAuNy43bC0zLjUgMy41YS41LjUgMCAwIDEtLjcgMGwtMy41LTMuNWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaGV2cm9uVXBEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblVwRG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNTMgMi43MmEuNzUuNzUgMCAwIDAtMS4wNiAwTDUuMjIgNi45N2EuNzUuNzUgMCAwIDAgMS4wNiAxLjA2TDEwIDQuMzFsMy43MiAzLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTQuMjUtNC4yNVptNC4yNSAxMC4zMS00LjI1IDQuMjVjLS4zLjMtLjc3LjMtMS4wNiAwbC00LjI1LTQuMjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkwxMCAxNS42OWwzLjcyLTMuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcERvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblVwRG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjkxIDcuMjJhLjUuNSAwIDAgMS0uNzYuNjNMMTAgMy43MSA1Ljg1IDcuODVsLS4wNy4wNmEuNS41IDAgMCAxLS42My0uNzZsNC41LTQuNS4wNy0uMDZhLjUuNSAwIDAgMSAuNjMuMDZsNC41IDQuNS4wNi4wN1pNNS4xIDEyLjc4YS41LjUgMCAwIDEgLjc2LS42M0wxMCAxNi4yOWw0LjE1LTQuMTQuMDctLjA2YS41LjUgMCAwIDEgLjYzLjc2bC00LjUgNC41LS4wNy4wNmEuNS41IDAgMCAxLS42My0uMDZsLTQuNS00LjUtLjA2LS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcERvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaGV2cm9uVXBEb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOC43OSA4LjM5YTEgMSAwIDAgMS0xLjUgMS4zMkwxMiA0LjRsLTUuMyA1LjMtLjA5LjA4YTEgMSAwIDAgMS0xLjMyLTEuNWw2LTYgLjEtLjA4YTEgMSAwIDAgMSAxLjMyLjA4bDYgNiAuMDguMVpNNS4yMSAxNS42YTEgMSAwIDAgMSAxLjUtMS4zMkwxMiAxOS42bDUuMy01LjMuMDktLjA4YTEgMSAwIDAgMSAxLjMyIDEuNWwtNiA2LS4xLjA4YTEgMSAwIDAgMS0xLjMyLS4wOGwtNi02LS4wOC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcERvd24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2hldnJvblVwRG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjU0IDIuMjNhLjc1Ljc1IDAgMCAwLTEuMDggMEw1LjIgOC43M2EuNzUuNzUgMCAxIDAgMS4wOCAxLjA0TDEyIDMuODNsNS43IDUuOTRhLjc1Ljc1IDAgMSAwIDEuMS0xLjA0bC02LjI2LTYuNVptMCAxOS41NGEuNzUuNzUgMCAwIDEtMS4wOCAwbC02LjI1LTYuNWEuNzUuNzUgMCAxIDEgMS4wOC0xLjA0TDEyIDIwLjE3bDUuNy01Ljk0YS43NS43NSAwIDEgMSAxLjEgMS4wNGwtNi4yNiA2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGUxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYgMWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgNiAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTYgMmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTEgNmE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMSA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDE0QTYgNiAwIDEgMCA4IDJhNiA2IDAgMCAwIDAgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAxNEE2IDYgMCAxIDAgOCAyYTYgNiAwIDAgMCAwIDEyWm0wLTFBNSA1IDAgMSAxIDggM2E1IDUgMCAwIDEgMCAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAzYTcgNyAwIDEgMCAwIDE0IDcgNyAwIDAgMCAwLTE0Wm0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDEyYTEwIDEwIDAgMSAxIDIwIDAgMTAgMTAgMCAwIDEtMjAgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAzLjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN1pNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDJhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDMuNWExMC41IDEwLjUgMCAxIDAgMCAyMSAxMC41IDEwLjUgMCAwIDAgMC0yMVpNMiAxNGExMiAxMiAwIDEgMSAyNCAwIDEyIDEyIDAgMCAxLTI0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDJhMTQgMTQgMCAxIDAgMCAyOCAxNCAxNCAwIDAgMCAwLTI4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE2IDRhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0Wk0yIDE2YTE0IDE0IDAgMSAxIDI4IDAgMTQgMTQgMCAwIDEtMjggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDQgMjRhMjAgMjAgMCAxIDEtNDAgMCAyMCAyMCAwIDAgMSA0MCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI0IDYuNWExNy41IDE3LjUgMCAxIDAgMCAzNSAxNy41IDE3LjUgMCAwIDAgMC0zNVpNNCAyNGEyMCAyMCAwIDEgMSA0MCAwIDIwIDIwIDAgMCAxLTQwIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVFZGl0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlRWRpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAwIDAtMSAxNS45NGMuMDItLjEuMDMtLjIuMDYtLjI5bC4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OGw0LjgzLTQuODNhMi44NyAyLjg3IDAgMCAxIDIuODUtLjcyQTggOCAwIDAgMCAxMCAyWm0uOTggMTMuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVFZGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUVkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAzYTcgNyAwIDAgMC0uNzcgMTMuOTZsLS4xNy43Yy0uMDMuMDktLjA0LjE4LS4wNS4yOGE4IDggMCAxIDEgOC45NC04LjgyYy0uMzMtLjEtLjY4LS4xNC0xLjAyLS4xMUE3IDcgMCAwIDAgMTAgM1ptLjk4IDEyLjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlRWRpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUVkaXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwLjcyIDExYy40MiAwIC44NS4wOCAxLjI1LjI1QTEwIDEwIDAgMSAwIDExIDIxLjk1YzAtLjE4LjAyLS4zNi4wNi0uNTRsLjQ2LTEuODNjLjE2LS42NS41LTEuMjQuOTctMS43Mmw1LjktNS45YTMuMjggMy4yOCAwIDAgMSAyLjMyLS45NlpcIiwgXCJNMjAuNzIgMTJjLS42IDAtMS4xOC4yMi0xLjYyLjY3bC01LjkgNS45Yy0uMzUuMzUtLjYuNzgtLjcxIDEuMjVsLS40NiAxLjgzYy0uMi44LjUyIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w1LjktNS45QTIuMjkgMi4yOSAwIDAgMCAyMC43MiAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUVkaXQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlRWRpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDMuNWE4LjUgOC41IDAgMCAwLS43IDE2Ljk3bC0uMjQuOTRjLS4wNC4xOC0uMDcuMzYtLjA2LjU0YTEwIDEwIDAgMSAxIDEwLjk3LTEwLjcgMy4yOSAzLjI5IDAgMCAwLTEuNTMtLjI0QTguNSA4LjUgMCAwIDAgMTIgMy41WlwiLCBcIk0yMC43MiAxMmMtLjYgMC0xLjE4LjIyLTEuNjIuNjdsLTUuOSA1LjljLS4zNS4zNS0uNi43OC0uNzEgMS4yNWwtLjQ2IDEuODNjLS4yLjguNTIgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlBMi4yOSAyLjI5IDAgMCAwIDIwLjcyIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlRXJhc2VyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlRXJhc2VyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjczIDE3LjE3YTIuNSAyLjUgMCAwIDEgMC0zLjUzbDQuOS00LjlhMi41IDIuNSAwIDAgMSAzLjU0IDBsLjguOGE4IDggMCAxIDAtOC40NCA4LjQ0bC0uOC0uOFptNy43NC03LjczIDIuMSAyLjFhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTMuNiAzLjYtNC4yMi00LjIyIDMuNi0zLjZhMS41IDEuNSAwIDAgMSAyLjEyIDBabS0yLjIxIDguNTItNC4yMi00LjIxLS42LjZhMS41IDEuNSAwIDAgMCAwIDIuMTJsMi4xIDIuMWExLjUgMS41IDAgMCAwIDEuMTIuNDNoNC4wOWEuNS41IDAgMCAwIDAtMWgtMi41M2wuMDQtLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlRXJhc2VyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUVyYXNlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNzMgMTcuMTdjLS4xLS4xLS4yLS4yMi0uMjktLjM1QTcgNyAwIDAgMSAxMCAzYTcgNyAwIDAgMSA2LjgyIDUuNDRjLjEzLjA5LjI0LjE4LjM1LjNsLjguOGE4IDggMCAxIDAtOC40MyA4LjQ0bC0uOC0uOFptLjctLjdhMS41IDEuNSAwIDAgMSAwLTIuMTNsNC45LTQuOWExLjUgMS41IDAgMCAxIDIuMTMgMGwyLjEgMi4xYTEuNSAxLjUgMCAwIDEgMCAyLjEyTDE0LjIyIDE4aDIuNTNhLjUuNSAwIDAgMSAwIDFoLTQuMWExLjUgMS41IDAgMCAxLTEuMTItLjQ0bC0yLjEtMi4xWm01LjYyLTYuMzItMy42IDMuNiAyLjggMi44IDMuNi0zLjZhLjUuNSAwIDAgMCAwLS43MWwtMi4xLTIuMWEuNS41IDAgMCAwLS43IDBabS0xLjUgNy4xLTIuOC0yLjgtLjYuNmEuNS41IDAgMCAwIDAgLjcxbDIuMSAyLjFhLjUuNSAwIDAgMCAuNyAwbC42LS42WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGFsZkZpbGwxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIYWxmRmlsbDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMSA2YTUgNSAwIDEgMSAxMCAwQTUgNSAwIDAgMSAxIDZabTEuNSAwaDdhMy41IDMuNSAwIDEgMC03IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIYWxmRmlsbDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIYWxmRmlsbDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTIgNmE0IDQgMCAxIDEgOCAwSDJabTQtNWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgNiAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGFsZkZpbGwxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIYWxmRmlsbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQgOEE2IDYgMCAxIDEgMiA4YTYgNiAwIDAgMSAxMiAwWk0zLjUgOGg5YTQuNSA0LjUgMCAxIDAtOSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGFsZkZpbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGFsZkZpbGwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNCA4QTYgNiAwIDEgMSAyIDhhNiA2IDAgMCAxIDEyIDBaTTMgOGgxMEE1IDUgMCAwIDAgMyA4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGFsZkZpbGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIYWxmRmlsbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDEwYTYuNSA2LjUgMCAwIDEgMTMgMGgtMTNaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIYWxmRmlsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIYWxmRmlsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgMTBhNyA3IDAgMCAxIDE0IDBIM1ptNy04YTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGFsZkZpbGwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIYWxmRmlsbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCAxMmE4IDggMCAxIDEgMTYgMEg0Wm04LTEwYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhhbGZGaWxsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhhbGZGaWxsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDEyYTguNSA4LjUgMCAwIDEgMTcgMGgtMTdaTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGlnaGxpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGlnaGxpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDQuN2MtLjI1LjI5LS40OC41OS0uNjkuOWwzLjMgMy4zYS41LjUgMCAxIDEtLjcxLjdMMi44IDYuNWMtLjE4LjM3LS4zMy43NS0uNDUgMS4xNUw1LjYgMTAuOWEuNS41IDAgMCAxLS43LjdMMi4wOSA4LjhhOC4wNiA4LjA2IDAgMCAwLS4wOCAxLjVsMy4zNCAzLjM1YS41LjUgMCAwIDEtLjcuN2wtMi40MS0yLjRhOCA4IDAgMSAwIDkuNy05LjcxbDIuNDEgMi40YS41LjUgMCAwIDEtLjcuNzFMMTAuMyAyLjAxYTguMTQgOC4xNCAwIDAgMC0xLjUuMDhsMi44IDIuOGEuNS41IDAgMCAxLS43LjcxTDcuNjUgMi4zNWMtLjQuMTItLjc4LjI3LTEuMTQuNDVsMy4xIDMuMWEuNS41IDAgMSAxLS43MS43TDUuNiAzLjMxYy0uMzEuMjEtLjYxLjQ0LS45LjdsMy4xNSAzLjE0YS41LjUgMCAxIDEtLjcuN0w0IDQuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaWdobGlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGlnaGxpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS43MSAzYTcuMSA3LjEgMCAwIDEgMS43My4xNWwyLjIgMi4yYS41LjUgMCAwIDAgLjcyLS43bC0uNDctLjQ3YTcgNyAwIDEgMS05LjcyIDkuN2wuNDguNDdhLjUuNSAwIDEgMCAuNy0uN2wtMi4yLTIuMjFBNy4wMyA3LjAzIDAgMCAxIDMgOS43bDEuODkgMS45YS41LjUgMCAxIDAgLjctLjcxTDMuMTggOC40NmMuMS0uNDEuMjItLjgyLjM5LTEuMkw1LjkgOS42YS41LjUgMCAxIDAgLjctLjdMNC4wNSA2LjMzYy4yLS4zMi40Mi0uNjMuNjctLjkxbDIuNDQgMi40M2EuNS41IDAgMSAwIC43LS43TDUuNDMgNC43Yy4yOC0uMjUuNTktLjQ3LjkxLS42N0w4LjkgNi42YS41LjUgMCAxIDAgLjctLjdMNy4yNyAzLjU1Yy4zOS0uMTYuNzktLjI5IDEuMi0uMzhMMTAuOSA1LjZhLjUuNSAwIDAgMCAuNy0uN0w5LjcyIDNaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaWdobGlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaWdobGlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuMyAyLjM3Yy0uNDcuMTMtLjkzLjMtMS4zNy41bDMuODUgMy44NWEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2TDYuNTUgMy42MWMtLjM3LjI1LS43My41Mi0xLjA3LjhsMy44IDMuODFhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtMy44LTMuOGMtLjMuMzQtLjU2LjctLjggMS4wN2w0LjE2IDQuMTdhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwyLjg2IDcuOTNjLS4yLjQ0LS4zNi45LS41IDEuMzhsNC40MiA0LjQxYS43NS43NSAwIDEgMS0xLjA2IDEuMDZMMi4wNCAxMS4xYTEwLjEzIDEwLjEzIDAgMCAwIDAgMS44OWw0LjQ5IDQuNDhhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi43Mi0yLjcyQTEwIDEwIDAgMSAwIDE1LjgxIDIuNzVsMi43MiAyLjcyYS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTQuNDgtNC40OGExMC4xMiAxMC4xMiAwIDAgMC0xLjg5LS4wMWwzLjY4IDMuNjhhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNkw5LjMxIDIuMzdaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaWdobGlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGlnaGxpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTAuNTYgMy42MiAzLjE2IDMuMTZhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMi4yLTIuMmMuODMuMDYgMS42NC4yMyAyLjQuNTFsMi40OSAyLjVjLjI5LjI5Ljc1LjMgMS4wNS4wMUE4LjUgOC41IDAgMCAxIDYuNTUgMTguNTFhLjc1Ljc1IDAgMCAwLS4wMi0xLjA0bC0yLjUtMi41YTguNDYgOC40NiAwIDAgMS0uNTEtMi4zOWwyLjIgMi4yYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTMuMTYtMy4xNmMuMDktLjUuMjItMSAuNC0xLjQ4bDIuNyAyLjdhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw0LjcgNy42NGMuMjMtLjM4LjUtLjc1Ljc4LTEuMWwyLjc0IDIuNzRhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw2LjU0IDUuNDhjLjM1LS4yOC43MS0uNTUgMS4xLS43OGwzLjA4IDMuMDhhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMi43LTIuN2MuNDctLjE4Ljk3LS4zMSAxLjQ4LS40Wk0xMiAyYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpbnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjEyIDIuMDZhNi4xMyA2LjEzIDAgMCAxIDEuNzYgMCAuNzUuNzUgMCAxIDEtLjIyIDEuNDljLS40My0uMDctLjg5LS4wNy0xLjMyIDBhLjc1Ljc1IDAgMCAxLS4yMi0xLjQ5Wm0zLjQgMS4yOGEuNzUuNzUgMCAwIDEgMS4wNi0uMTZjLjQ3LjM1Ljg5Ljc3IDEuMjQgMS4yNWEuNzUuNzUgMCAxIDEtMS4yLjg5IDQuNTMgNC41MyAwIDAgMC0uOTQtLjk0Ljc1Ljc1IDAgMCAxLS4xNS0xLjA0Wm0tNS4wNSAwYy4yNS4zMy4xOC44LS4xNSAxLjA0LS4zNi4yNy0uNjcuNTgtLjkzLjk0YS43NS43NSAwIDEgMS0xLjItLjljLjM0LS40Ny43Ni0uODkgMS4yNC0xLjI0YS43NS43NSAwIDAgMSAxLjA0LjE2Wm03LjYyIDMuMTVjLjQtLjA2Ljc5LjIyLjg1LjYzLjA4LjU4LjA4IDEuMTggMCAxLjc2YS43NS43NSAwIDEgMS0xLjQ5LS4yMmMuMDctLjQzLjA3LS45IDAtMS4zMmEuNzUuNzUgMCAwIDEgLjY0LS44NVptLTEwLjE3IDBjLjQuMDYuNjkuNDQuNjMuODUtLjA2LjQzLS4wNi44OSAwIDEuMzJhLjc1Ljc1IDAgMSAxLTEuNDkuMjIgNi4xMyA2LjEzIDAgMCAxIDAtMS43NmMuMDYtLjQxLjQ1LS43Ljg2LS42M1ptOS43NCA0LjA0Yy4zNC4yNC40LjcxLjE2IDEuMDQtLjM1LjQ4LS43Ny45LTEuMjQgMS4yNWEuNzUuNzUgMCAwIDEtLjktMS4yYy4zNi0uMjcuNjctLjU4Ljk0LS45NGEuNzUuNzUgMCAwIDEgMS4wNC0uMTVabS05LjMyIDBhLjc1Ljc1IDAgMCAxIDEuMDUuMTVjLjI2LjM2LjU3LjY3LjkzLjk0YS43NS43NSAwIDEgMS0uOSAxLjJjLS40Ny0uMzUtLjg5LS43Ny0xLjI0LTEuMjVhLjc1Ljc1IDAgMCAxIC4xNi0xLjA0Wm0zLjE1IDIuNTVjLjA2LS40LjQ0LS42OS44NS0uNjMuNDMuMDcuOS4wNyAxLjMyIDBhLjc1Ljc1IDAgMCAxIC4yMiAxLjQ5Yy0uNTguMDgtMS4xOC4wOC0xLjc2IDBhLjc1Ljc1IDAgMCAxLS42My0uODZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhpbnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjgzIDIuMTFhNi4xNSA2LjE1IDAgMCAxIDIuMzQgMCAuNS41IDAgMCAxLS4yLjk5IDUuMTQgNS4xNCAwIDAgMC0xLjk1IDAgLjUuNSAwIDEgMS0uMTktLjk5Wm0zLjgxIDEuMDRhLjUuNSAwIDAgMSAuNy0uMTRjLjY1LjQ0IDEuMjEgMSAxLjY1IDEuNjZhLjUuNSAwIDAgMS0uODMuNTUgNS4wMyA1LjAzIDAgMCAwLTEuMzgtMS4zOC41LjUgMCAwIDEtLjE0LS43Wm0tNS4yOCAwYS41LjUgMCAwIDEtLjE0LjdjLS41NC4zNi0xLjAxLjgzLTEuMzggMS4zN2EuNS41IDAgMCAxLS44My0uNTVDMy40NSA0IDQuMDEgMy40NSA0LjY3IDNhLjUuNSAwIDAgMSAuNjkuMTRabTcuOTQgMy4yOWEuNS41IDAgMCAxIC41OS4zOWMuMTUuNzYuMTUgMS41OCAwIDIuMzRhLjUuNSAwIDEgMS0uOTktLjJjLjEzLS42Mi4xMy0xLjMyIDAtMS45NWEuNS41IDAgMCAxIC40LS41OFptLTEwLjYgMGEuNS41IDAgMCAxIC40LjU4IDUuMTQgNS4xNCAwIDAgMCAwIDEuOTYuNS41IDAgMSAxLS45OS4xOSA2LjE1IDYuMTUgMCAwIDEgMC0yLjM0LjUuNSAwIDAgMSAuNi0uNFptMTAuMTUgNC4yYy4yMy4xNS4zLjQ2LjE0LjctLjQ0LjY1LTEgMS4yMS0xLjY2IDEuNjVhLjUuNSAwIDAgMS0uNTUtLjgzIDUuMDMgNS4wMyAwIDAgMCAxLjM4LTEuMzguNS41IDAgMCAxIC43LS4xNFptLTkuNyAwYS41LjUgMCAwIDEgLjcuMTRjLjM2LjU0LjgzIDEuMDEgMS4zNyAxLjM4YS41LjUgMCAxIDEtLjU1LjgzYy0uNjYtLjQ0LTEuMjItMS0xLjY2LTEuNjZhLjUuNSAwIDAgMSAuMTQtLjY5Wm0zLjI5IDIuNjZhLjUuNSAwIDAgMSAuNTgtLjRjLjYzLjEzIDEuMzMuMTMgMS45NiAwYS41LjUgMCAwIDEgLjIuOTljLS43Ny4xNS0xLjYuMTUtMi4zNSAwYS41LjUgMCAwIDEtLjQtLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGludDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC43IDIuMWE4LjE4IDguMTggMCAwIDEgMi42IDAgLjc1Ljc1IDAgMCAxLS4yNCAxLjQ5IDYuNjggNi42OCAwIDAgMC0yLjEyIDBBLjc1Ljc1IDAgMSAxIDguNyAyLjFaTTYuMzkgMy42OGMuMjQuMzQuMTYuOC0uMTggMS4wNS0uNTcuNDEtMS4wOC45Mi0xLjUgMS41YS43NS43NSAwIDAgMS0xLjIxLS44OEE4LjA0IDguMDQgMCAwIDEgNS4zNCAzLjVhLjc1Ljc1IDAgMCAxIDEuMDUuMTdabTcuMjIgMGEuNzUuNzUgMCAwIDEgMS4wNS0uMTcgOC4wNCA4LjA0IDAgMCAxIDEuODQgMS44NC43NS43NSAwIDAgMS0xLjIyLjg3IDYuNTQgNi41NCAwIDAgMC0xLjUtMS41Ljc1Ljc1IDAgMCAxLS4xNy0xLjA0Wk0yLjk3IDguMDdjLjQuMDguNjguNDYuNjIuODdhNi42OCA2LjY4IDAgMCAwIDAgMi4xMi43NS43NSAwIDAgMS0xLjQ4LjI0IDguMTkgOC4xOSAwIDAgMSAwLTIuNmMuMDYtLjQxLjQ1LS42OS44Ni0uNjJabTE0LjA2IDBjLjQxLS4wNi44LjIyLjg2LjYzLjE0Ljg1LjE0IDEuNzUgMCAyLjZhLjc1Ljc1IDAgMCAxLTEuNDgtLjI0Yy4xMi0uNjkuMTItMS40MyAwLTIuMTItLjA2LS40LjIxLS44LjYyLS44NlpNMy42NyAxMy42MmEuNzUuNzUgMCAwIDEgMS4wNS4xOGMuNDEuNTcuOTIgMS4wOCAxLjUgMS41YS43NS43NSAwIDEgMS0uODggMS4yMSA4LjA0IDguMDQgMCAwIDEtMS44NC0xLjg0Ljc1Ljc1IDAgMCAxIC4xNy0xLjA1Wm0xMi42NiAwYy4zNC4yNS40MS43MS4xNyAxLjA1YTguMDQgOC4wNCAwIDAgMS0xLjg0IDEuODQuNzUuNzUgMCAwIDEtLjg3LTEuMjIgNi41NCA2LjU0IDAgMCAwIDEuNS0xLjUuNzUuNzUgMCAwIDEgMS4wNC0uMTdabS04LjI1IDMuNDJjLjA3LS40LjQ1LS42OC44Ni0uNjIuNjkuMTIgMS40My4xMiAyLjEyIDBhLjc1Ljc1IDAgMCAxIC4yNCAxLjQ4Yy0uODUuMTQtMS43NS4xNC0yLjYgMGEuNzUuNzUgMCAwIDEtLjYyLS44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGludDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNDQgMi4xNWE4LjIgOC4yIDAgMCAxIDMuMTIgMCAuNS41IDAgMCAxLS4yLjk4IDcuMiA3LjIgMCAwIDAtMi43MyAwIC41LjUgMCAwIDEtLjItLjk4Wm01LjMxIDEuMzRhLjUuNSAwIDAgMSAuNy0uMTQgOC4wNCA4LjA0IDAgMCAxIDIuMiAyLjIuNS41IDAgMSAxLS44My41NiA3LjA0IDcuMDQgMCAwIDAtMS45My0xLjkzLjUuNSAwIDAgMS0uMTQtLjdabS03LjUgMGEuNS41IDAgMCAxLS4xNC42OUE3LjA0IDcuMDQgMCAwIDAgNC4xOCA2LjFhLjUuNSAwIDAgMS0uODMtLjU2IDguMDQgOC4wNCAwIDAgMSAyLjItMi4yLjUuNSAwIDAgMSAuNy4xNFpNMi43NCA4LjA1YS41LjUgMCAwIDEgLjQuNTggNy4yIDcuMiAwIDAgMCAwIDIuNzQuNS41IDAgMCAxLS45OS4yIDguMiA4LjIgMCAwIDEgMC0zLjEzLjUuNSAwIDAgMSAuNTktLjRabTE0LjUyIDBhLjUuNSAwIDAgMSAuNTkuMzkgOC4yIDguMiAwIDAgMSAwIDMuMTIuNS41IDAgMSAxLS45OC0uMiA3LjIgNy4yIDAgMCAwIDAtMi43My41LjUgMCAwIDEgLjM5LS41OFptLTEzLjc4IDUuN2EuNS41IDAgMCAxIC43LjE0IDcuMDQgNy4wNCAwIDAgMCAxLjkzIDEuOTMuNS41IDAgMCAxLS41Ni44MyA4LjA0IDguMDQgMCAwIDEtMi4yLTIuMi41LjUgMCAwIDEgLjEzLS43Wm0xMy4wMyAwYy4yMy4xNi4zLjQ3LjE0LjdhOC4wNCA4LjA0IDAgMCAxLTIuMiAyLjIuNS41IDAgMCAxLS41Ni0uODMgNy4wNCA3LjA0IDAgMCAwIDEuOTMtMS45My41LjUgMCAwIDEgLjctLjE0Wm0tOC40NiAzLjUxYS41LjUgMCAwIDEgLjU4LS40Yy44OS4xOCAxLjg1LjE4IDIuNzQgMGEuNS41IDAgMCAxIC4xOS45OSA4LjIgOC4yIDAgMCAxLTMuMTIgMCAuNS41IDAgMCAxLS40LS41OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpbnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy40MyAyMC40Yy0uNS4zMi0xLjE0LjA3LTEuMzYtLjQ3LS4yLS40OC4wMS0xLjAzLjQ0LTEuMzIuNS0uMzUuOTctLjc1IDEuMzktMS4yLjMzLS4zNi44Ni0uNSAxLjMtLjI4LjU2LjI3Ljc0Ljk4LjMzIDEuNDUtLjYuNy0xLjMyIDEuMzEtMi4xIDEuODJabTIuOS01LjIzYy41My4yNiAxLjE3LjAxIDEuMzItLjU1YTEwLjAyIDEwLjAyIDAgMCAwIC4xOS00LjQyYy0uMTEtLjYxLS43OC0uOS0xLjM1LS42NC0uNDQuMjEtLjY2LjcxLS41OSAxLjJhOC4wNSA4LjA1IDAgMCAxLS4xMyAzLjE0Yy0uMTIuNS4xIDEuMDUuNTYgMS4yN1pNNC4zNyA3LjRjLjQ3LjIzIDEuMDMuMDYgMS4zNS0uMzQuMzgtLjQ5LjgyLS45MyAxLjMtMS4zMS4zOS0uMy41Ni0uODIuMzctMS4yOC0uMjMtLjU4LS45Mi0uODEtMS40Mi0uNDRDNS4yMiA0LjYgNC41NiA1LjI1IDQgNmMtLjM2LjQ3LS4xNiAxLjEzLjM3IDEuNFptOC40IDEyLjU3Yy40OS0uMDQuOTcuMiAxLjE1LjY2LjI0LjU4LS4xIDEuMjMtLjcxIDEuM2ExMC4xIDEwLjEgMCAwIDEtMi40MyAwYy0uNjItLjA3LS45NS0uNzItLjcyLTEuMy4xOS0uNDUuNjctLjcgMS4xNi0uNjZhOC4xMSA4LjExIDAgMCAwIDEuNTUgMFpNMi4zNCAxNC42MWMuMTYuNTcuOC44MiAxLjMzLjU2LjQ3LS4yMy42OC0uNzcuNTYtMS4yOGE4LjAyIDguMDIgMCAwIDEtLjEzLTMuMTNjLjA3LS40OS0uMTUtLjk5LS42LTEuMi0uNTYtLjI3LTEuMjMuMDMtMS4zNC42NGExMC4wNiAxMC4wNiAwIDAgMCAuMTggNC40MVptMTUuOTQtNy41N2MuMzIuNC44OC41OCAxLjM0LjM1LjUzLS4yNi43My0uOTIuMzgtMS40YTEwLjA2IDEwLjA2IDAgMCAwLTEuOTgtMS45OGMtLjUtLjM3LTEuMTktLjEzLTEuNDIuNDQtLjE5LjQ2LS4wMS45OC4zNyAxLjI4LjQ5LjM5LjkyLjgzIDEuMyAxLjMxWk03LjkyIDE5LjkyYy4yLS40OCAwLTEuMDItLjQ0LTEuMzItLjUtLjM0LS45Ny0uNzUtMS4zOC0xLjItLjMzLS4zNi0uODYtLjUtMS4zLS4yOC0uNTYuMjctLjc1Ljk4LS4zNCAxLjQ1LjYxLjcgMS4zMiAxLjMxIDIuMSAxLjgyLjUuMzIgMS4xNC4wOCAxLjM2LS40N1ptNi41NS0xNi40OGMuMjItLjU1LS4wOS0xLjE3LS42Ny0xLjI4YTEwLjA2IDEwLjA2IDAgMCAwLTMuNiAwYy0uNTguMS0uODguNzMtLjY3IDEuMjguMTkuNDguNzEuNzQgMS4yMi42NmE4LjA2IDguMDYgMCAwIDEgMi41IDBjLjUuMDggMS4wMy0uMTggMS4yMi0uNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhpbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy40MSAyMS4xYS43MS43MSAwIDAgMS0xLjAxLS4zNi44LjggMCAwIDEgLjM1LS45OCA4LjggOC44IDAgMCAwIDIuMy0yIC44LjggMCAwIDEgLjk3LS4yM2MuNDEuMi41Ni43Mi4yNyAxLjA4LS44IDEtMS43NyAxLjg1LTIuODggMi41Wm0zLjY4LTUuNTZjLjQuMi44OCAwIDEtLjQyYTEwLjI1IDEwLjI1IDAgMCAwIC4wOS01LjQzLjcxLjcxIDAgMCAwLTEuMDEtLjQ1LjguOCAwIDAgMC0uNDIuOTMgOC43NyA4Ljc3IDAgMCAxLS4wNyA0LjQzLjguOCAwIDAgMCAuNC45NFpNNC4yMiA3LjMyYS44LjggMCAwIDAgMS0uMjcgOC44IDguOCAwIDAgMSAxLjgyLTEuODMuOC44IDAgMCAwIC4yOC0uOTRjLS4xOC0uNDQtLjctLjYxLTEuMDgtLjM0YTEwLjMgMTAuMyAwIDAgMC0yLjMxIDIuMzIuNzEuNzEgMCAwIDAgLjI5IDEuMDZabTkuMTYgMTMuNmEuOC44IDAgMCAxIC44Ni40OWMuMTguNDMtLjA4LjkyLS41NC45OWExMC4zMyAxMC4zMyAwIDAgMS0zLjQyLS4wOS43MS43MSAwIDAgMS0uNS0uOTguOC44IDAgMCAxIC45LS40NyA4LjggOC44IDAgMCAwIDIuNy4wN1pNMi4zNCAxNC45Yy4xMi40My42LjYzIDEuMDEuNDNhLjguOCAwIDAgMCAuNDEtLjkzIDguNzcgOC43NyAwIDAgMS0uMDYtNC4wMy44LjggMCAwIDAtLjQyLS45LjcxLjcxIDAgMCAwLTEuMDEuNDYgMTAuMjggMTAuMjggMCAwIDAgLjA3IDQuOTdabTE2LjgyLThjLjI0LjMuNjUuNDEuOTkuMjQuNC0uMi41NS0uNy4yOC0xLjA2YTEwLjMgMTAuMyAwIDAgMC0yLjYtMi40Mi43MS43MSAwIDAgMC0xLjA1LjM1LjguOCAwIDAgMCAuMzIuOTcgOC44IDguOCAwIDAgMSAyLjA2IDEuOTFaTTcuNyAyMC40OGEuOC44IDAgMCAwLS4zMS0uOTcgOC44IDguOCAwIDAgMS0yLjA2LTEuOTIuOC44IDAgMCAwLS45OC0uMjVjLS40LjItLjU1LjctLjI4IDEuMDYuNzEuOTUgMS42IDEuNzcgMi41OSAyLjQzLjM4LjI0Ljg3LjA2IDEuMDQtLjM2Wm02LjktMTcuMzZhLjcxLjcxIDAgMCAwLS41Mi0uOTcgMTAuMzEgMTAuMzEgMCAwIDAtNC4xNC4xLjcxLjcxIDAgMCAwLS40OC45Ny44LjggMCAwIDAgLjkzLjQ3IDguNzggOC43OCAwIDAgMSAzLjMyLS4wOC44LjggMCAwIDAgLjg5LS40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpbnRIYWxmVmVydGljYWwxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50SGFsZlZlcnRpY2FsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAwIC44OCAxMS45NC43NS43NSAwIDEgMC0uMjItMS40OSA0LjQ4IDQuNDggMCAwIDEtNS4xMS01LjEzIDQuNDggNC40OCAwIDAgMSA1LjExLTMuNzcuNzUuNzUgMCAwIDAgLjIyLTEuNDlBNi4wNyA2LjA3IDAgMCAwIDggMlptMy41OCAxLjE4YS43NS43NSAwIDAgMC0uOSAxLjJjLjM2LjI3LjY3LjU4Ljk0Ljk0YS43NS43NSAwIDEgMCAxLjItLjljLS4zNS0uNDctLjc3LS44OS0xLjI0LTEuMjRabTIuMzYgMy45NGEuNzUuNzUgMCAxIDAtMS40OS4yMmMuMDcuNDMuMDcuODkgMCAxLjMyYS43NS43NSAwIDAgMCAxLjQ5LjIyYy4wOC0uNTguMDgtMS4xOCAwLTEuNzZabS0xLjEyIDQuNDVhLjc1Ljc1IDAgMCAwLTEuMi0uODljLS4yNy4zNi0uNTguNjctLjk0Ljk0YS43NS43NSAwIDAgMCAuOSAxLjJjLjQ3LS4zNS44OS0uNzcgMS4yNC0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGludEhhbGZWZXJ0aWNhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50SGFsZlZlcnRpY2FsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDEgMCAwIDEyYy40IDAgLjgtLjA0IDEuMTctLjExYS41LjUgMCAxIDAtLjItLjk5IDUuMTUgNS4xNSAwIDAgMS0zLjc1LS43NCA1LjAzIDUuMDMgMCAwIDEtMS4zOC0xLjM4di0uMDFhNC45NyA0Ljk3IDAgMCAxIDEuMzktNi45MyA0Ljk3IDQuOTcgMCAwIDEgMy43NS0uNzQuNS41IDAgMCAwIC4yLS45OUE2LjA2IDYuMDYgMCAwIDAgOCAyLjAxWm0zLjMzIDEuMDFhLjUuNSAwIDAgMC0uNTUuODNjLjU0LjM3IDEuMDEuODQgMS4zOCAxLjM4YS41LjUgMCAwIDAgLjgzLS41NWMtLjQ0LS42Ni0xLTEuMjItMS42Ni0xLjY2Wm0yLjU2IDMuODJhLjUuNSAwIDEgMC0uOTkuMmMuMTMuNjIuMTMgMS4zMiAwIDEuOTVhLjUuNSAwIDAgMCAuOTkuMTljLjE1LS43Ni4xNS0xLjU4IDAtMi4zNFptLS45IDQuNWEuNS41IDAgMCAwLS44My0uNTUgNS4wMyA1LjAzIDAgMCAxLTEuMzggMS4zOC41LjUgMCAwIDAgLjU1LjgzYy42Ni0uNDQgMS4yMi0xIDEuNjYtMS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUhpbnRIYWxmVmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50SGFsZlZlcnRpY2FsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTcuOTYgNy45NiAwIDAgMC04IDggOC4wOCA4LjA4IDAgMCAwIDEuNSA0LjY2QTguMDQgOC4wNCAwIDAgMCAxMCAxOGMuNDQgMCAuODgtLjA0IDEuMy0uMWEuNzUuNzUgMCAwIDAtLjI0LTEuNDkgNi41IDYuNSAwIDEgMSAwLTEyLjgzLjc1Ljc1IDAgMCAwIC4yNC0xLjQ3Yy0uNDItLjA3LS44Ni0uMS0xLjMtLjFabTQuNjYgMS41YS43NS43NSAwIDAgMC0uODcgMS4yMmMuNTcuNDEgMS4wOC45MiAxLjUgMS41YS43NS43NSAwIDAgMCAxLjIxLS44OCA4LjA0IDguMDQgMCAwIDAtMS44NC0xLjg0Wm0zLjIzIDUuMmEuNzUuNzUgMCAwIDAtMS40OC4yNGMuMTIuNjkuMTIgMS40MyAwIDIuMTJhLjc1Ljc1IDAgMCAwIDEuNDguMjRjLjE0LS44NS4xNC0xLjc1IDAtMi42Wm0tMS4zOSA1Ljk2YS43NS43NSAwIDAgMC0xLjIyLS44NyA2LjU0IDYuNTQgMCAwIDEtMS41IDEuNS43NS43NSAwIDEgMCAuODggMS4yMSA4LjA0IDguMDQgMCAwIDAgMS44NC0xLjg0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSGludEhhbGZWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVIaW50SGFsZlZlcnRpY2FsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC40NCAyLjE1YTcuOTUgNy45NSAwIDAgMC02LjM0IDYuNiA4LjA2IDguMDYgMCAwIDAgMy40NiA3LjkgOC4wOCA4LjA4IDAgMCAwIDYgMS4xOS41LjUgMCAwIDAtLjItLjk3IDcgNyAwIDEgMSAwLTEzLjczLjUuNSAwIDAgMCAuMi0uOTkgOC4wNCA4LjA0IDAgMCAwLTMuMTIgMFptNiAxLjJhLjUuNSAwIDAgMC0uNTUuODMgNy4wNCA3LjA0IDAgMCAxIDEuOTMgMS45My41LjUgMCAxIDAgLjgzLS41NiA4LjA0IDguMDQgMCAwIDAtMi4yLTIuMlptMy40IDUuMDlhLjUuNSAwIDEgMC0uOTcuMiA3LjIgNy4yIDAgMCAxIDAgMi43My41LjUgMCAxIDAgLjk4LjIgOC4yIDguMiAwIDAgMCAwLTMuMTNabS0xLjE5IDZhLjUuNSAwIDEgMC0uODMtLjU1IDcuMDQgNy4wNCAwIDAgMS0xLjkzIDEuOTMuNS41IDAgMSAwIC41NS44MyA4LjA0IDguMDQgMCAwIDAgMi4yMS0yLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50SGFsZlZlcnRpY2FsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSGludEhhbGZWZXJ0aWNhbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEuOCA0QTcuOTcgNy45NyAwIDAgMCA0IDEyLjJhOCA4IDAgMCAwIDkuNTYgNy42NSAxIDEgMCAxIDEgLjM5IDEuOTYgMTAuMDUgMTAuMDUgMCAwIDEtOS4zNi0zLjEgOS45NiA5Ljk2IDAgMCAxIC40My0xMy44NyA5Ljk3IDkuOTcgMCAwIDEgOC45My0yLjY1IDEgMSAwIDEgMS0uMzkgMS45NkE4LjA0IDguMDQgMCAwIDAgMTEuOCA0Wm01Ljc2LS4zMmExIDEgMCAwIDAtMS4xMiAxLjY3IDguMDUgOC4wNSAwIDAgMSAyLjIxIDIuMiAxIDEgMCAwIDAgMS42Ny0xLjEgMTAuMDUgMTAuMDUgMCAwIDAtMi43Ni0yLjc3Wm00LjI1IDYuMzdhMSAxIDAgMCAwLTEuOTYuMzkgOC4wNCA4LjA0IDAgMCAxIDAgMy4xMiAxIDEgMCAxIDAgMS45Ni4zOSAxMC4wNSAxMC4wNSAwIDAgMCAwLTMuOVptLTEuNSA3LjVhMSAxIDAgMCAwLTEuNjYtMS4xIDguMDUgOC4wNSAwIDAgMS0yLjIgMi4yIDEgMSAwIDAgMCAxLjEgMS42NyAxMC4wNSAxMC4wNSAwIDAgMCAyLjc3LTIuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVIaW50SGFsZlZlcnRpY2FsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZUhpbnRIYWxmVmVydGljYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS43OCAzLjI1YTguNzUgOC43NSAwIDEgMCAxLjkzIDE3LjMzLjc1Ljc1IDAgMCAxIC4yOSAxLjQ3IDEwLjMgMTAuMyAwIDAgMS05LjYtMy4xN0ExMC4yNSAxMC4yNSAwIDAgMSAxNCAxLjk0YS43NS43NSAwIDAgMS0uMyAxLjQ4IDguOCA4LjggMCAwIDAtMS45Mi0uMTdabTUuOTIuMjNhLjc1Ljc1IDAgMCAwLS44NCAxLjI0IDguOCA4LjggMCAwIDEgMi40MiAyLjQyLjc1Ljc1IDAgMCAwIDEuMjQtLjg0IDEwLjMgMTAuMyAwIDAgMC0yLjgyLTIuODJaTTIyLjA1IDEwYS43NS43NSAwIDEgMC0xLjQ3LjMgOC44IDguOCAwIDAgMSAwIDMuNC43NS43NSAwIDAgMCAxLjQ3LjMgMTAuMyAxMC4zIDAgMCAwIDAtNFptLTEuNTMgNy43YS43NS43NSAwIDAgMC0xLjI0LS44NCA4LjggOC44IDAgMCAxLTIuNDIgMi40Mi43NS43NSAwIDAgMCAuODQgMS4yNCAxMC4zIDEwLjMgMCAwIDAgMi44Mi0yLjgyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVJbWFnZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCA1aDIuNzRBNC41IDQuNSAwIDEgMCA1IDEwLjc0VjhhMyAzIDAgMCAxIDMtM1ptMCAxYTIgMiAwIDAgMC0yIDJ2NGMwIC4zNy4xLjcyLjI4IDEuMDJsMi40OC0yLjQ5Yy42OS0uNjggMS44LS42OCAyLjQ4IDBsMi40OCAyLjQ5QTIgMiAwIDAgMCAxNCAxMlY4YTIgMiAwIDAgMC0yLTJIOFptMCA4YTIgMiAwIDAgMS0xLjAyLS4yOGwyLjQ5LTIuNDhjLjMtLjMuNzctLjMgMS4wNiAwbDIuNDkgMi40OEEyIDIgMCAwIDEgMTIgMTRIOFptMy41LTQuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSW1hZ2UxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjUgM0EzLjUgMy41IDAgMCAwIDUgOS42NnYxLjA4QTQuNSA0LjUgMCAxIDEgMTAuNzQgNUg5LjY2QTMuNSAzLjUgMCAwIDAgNi41IDNaTTggNmEyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0ySDhaTTcgOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0uMDMuMjZsLTEuNzMtMS43M2ExLjc1IDEuNzUgMCAwIDAtMi40OCAwbC0xLjczIDEuNzNBMSAxIDAgMCAxIDcgMTJWOFptLjc0IDQuOTcgMS43My0xLjczYy4zLS4zLjc3LS4zIDEuMDYgMGwxLjczIDEuNzNBMSAxIDAgMCAxIDEyIDEzSDhhMSAxIDAgMCAxLS4yNi0uMDNabTQuNTEtNC40N2EuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVJbWFnZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNSA3aDIuNDhBNS41IDUuNSAwIDEgMCA3IDEyLjk4VjEwLjVBMy41IDMuNSAwIDAgMSAxMC41IDdabTAgMUEyLjUgMi41IDAgMCAwIDggMTAuNXY1YzAgLjUuMTUuOTguNDEgMS4zOGwzLjE4LTMuMTdhMiAyIDAgMCAxIDIuODIgMGwzLjE4IDMuMTdjLjI2LS40LjQxLS44Ny40MS0xLjM4di01QTIuNSAyLjUgMCAwIDAgMTUuNSA4aC01Wm01LjUgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS44OCA2LjU5TDEzLjcgMTQuNGExIDEgMCAwIDAtMS40MiAwTDkuMTIgMTcuNmMuNC4yNi44Ny40MSAxLjM4LjQxaDVjLjUgMCAuOTgtLjE1IDEuMzgtLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSW1hZ2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjUgM2E0LjUgNC41IDAgMCAwLS41IDguOTd2MUE1LjUgNS41IDAgMSAxIDEyLjk4IDdoLTFBNC41IDQuNSAwIDAgMCA3LjUgM1ptOC41IDhhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tNS41LTNBMi41IDIuNSAwIDAgMCA4IDEwLjV2NWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNS41IDhoLTVaTTkgMTAuNWMwLS44My42Ny0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuMjMtLjA1LjQ1LS4xNS42NWwtMi40NC0yLjQ0YTIgMiAwIDAgMC0yLjgyIDBsLTIuNDQgMi40NEExLjUgMS41IDAgMCAxIDkgMTUuNXYtNVptLjg1IDYuMzUgMi40NC0yLjQ0YTEgMSAwIDAgMSAxLjQyIDBsMi40NCAyLjQ0Yy0uMi4xLS40Mi4xNS0uNjUuMTVoLTVhMS41IDEuNSAwIDAgMS0uNjUtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVJbWFnZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuMjUgOGgzLjY4QTcgNyAwIDEgMCA4IDE1Ljkzdi0zLjY4QzggOS45IDkuOSA4IDEyLjI1IDhabTAgMUEzLjI1IDMuMjUgMCAwIDAgOSAxMi4yNXY2LjVjMCAuNjMuMTggMS4yMS40OCAxLjdsNC4yNS00LjI0YTIuNSAyLjUgMCAwIDEgMy41NCAwbDQuMjUgNC4yNWMuMy0uNS40OC0xLjA4LjQ4LTEuNzF2LTYuNUMyMiAxMC40NSAyMC41NCA5IDE4Ljc1IDloLTYuNVptOC4yIDEyLjUyLTQuMjQtNC4yNWExIDEgMCAwIDAtMS40MiAwbC00LjI1IDQuMjVjLjUuMyAxLjA4LjQ4IDEuNzEuNDhoNi41Yy42MyAwIDEuMjEtLjE4IDEuNy0uNDhaTTE5LjI2IDEzYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVJbWFnZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVJbWFnZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkgMy41YTUuNSA1LjUgMCAwIDAtMSAxMC45djEuNTNBNyA3IDAgMSAxIDE1LjkzIDhIMTQuNEE1LjUgNS41IDAgMCAwIDkgMy41Wm01LjggMTMuNzdhMSAxIDAgMCAxIDEuNCAwbDMuMTQgMy4xM2MtLjE5LjA2LS4zOC4xLS41OS4xaC02LjVjLS4yIDAtLjQtLjA0LS41OS0uMWwzLjEzLTMuMTNabS00LjIgMi4wN2MtLjA2LS4xOS0uMS0uMzgtLjEtLjU5di02LjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djYuNWMwIC4yLS4wNC40LS4xLjU5bC0zLjEzLTMuMTNhMi41IDIuNSAwIDAgMC0zLjU0IDBsLTMuMTMgMy4xM1pNMTkuMjUgMTNhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFptLTctNEEzLjI1IDMuMjUgMCAwIDAgOSAxMi4yNXY2LjVjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWg2LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNi41QzIyIDEwLjQ1IDIwLjU0IDkgMTguNzUgOWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVJbWFnZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuMjUgMTBoMy43M0E3LjUgNy41IDAgMSAwIDEwIDE3Ljk4di0zLjczQzEwIDExLjkgMTEuOSAxMCAxNC4yNSAxMFptMCAxQTMuMjUgMy4yNSAwIDAgMCAxMSAxNC4yNXY3LjVjMCAuNjMuMTggMS4yMS40OCAxLjdsNC43NS00Ljc0YTIuNSAyLjUgMCAwIDEgMy41NCAwbDQuNzUgNC43NWMuMy0uNS40OC0xLjA4LjQ4LTEuNzF2LTcuNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC03LjVabTkuMiAxMy41Mi00Ljc0LTQuNzVhMSAxIDAgMCAwLTEuNDIgMGwtNC43NSA0Ljc1Yy41LjMgMS4wOC40OCAxLjcxLjQ4aDcuNWMuNjMgMCAxLjIxLS4xOCAxLjctLjQ4Wk0yMiAxNS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlSW1hZ2UyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlSW1hZ2UyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC41IDQuNWE2IDYgMCAwIDAtLjUgMTEuOTh2MS41QTcuNSA3LjUgMCAxIDEgMTcuOTggMTBoLTEuNWE2IDYgMCAwIDAtNS45OC01LjVabTMuNzUgNi41QTMuMjUgMy4yNSAwIDAgMCAxMSAxNC4yNXY3LjVjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWg3LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNy41YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTcuNVptLTEuNzUgMy4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg3LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ny41YzAgLjItLjA0LjQtLjEuNTlsLTMuNjMtMy42M2EyLjUgMi41IDAgMCAwLTMuNTQgMGwtMy42MyAzLjYzYy0uMDYtLjE5LS4xLS4zOC0uMS0uNTl2LTcuNVptMS4xNiA5LjE1IDMuNjMtMy42M2ExIDEgMCAwIDEgMS40MiAwbDMuNjMgMy42M2MtLjE5LjA2LS4zOC4xLS41OS4xaC03LjVjLS4yIDAtLjQtLjA0LS41OS0uMVpNMjIgMTUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUxpbmUxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xIDZhNSA1IDAgMCAxIDEwIDBIMVptLjEgMWE1IDUgMCAwIDAgOS44IDBIMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTGluZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNiAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA2IDFaTTIgNmE0IDQgMCAxIDEgOCAwSDJabS4xMyAxaDcuNzRhNCA0IDAgMCAxLTcuNzQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUxpbmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMy45OCA4LjVhNiA2IDAgMCAxLTExLjk2IDBoMTEuOTZabTAtMUgyLjAyYTYgNiAwIDAgMSAxMS45NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTGluZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTQgOEE2IDYgMCAxIDEgMiA4YTYgNiAwIDAgMSAxMiAwWm0tMS4wMi41SDMuMDJhNSA1IDAgMCAwIDkuOTYgMFptMC0xYTUgNSAwIDAgMC05Ljk2IDBoOS45NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUxpbmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNy45OCAxMC41SDIuMDJhOCA4IDAgMCAwIDE1Ljk2IDBabTAtMUgyLjAyYTggOCAwIDAgMSAxNS45NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTGluZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy4wMiA5LjVoMTMuOTZhNyA3IDAgMCAwLTEzLjk2IDBaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTE0Ljk4LjVIMy4wMmE3IDcgMCAwIDAgMTMuOTYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUxpbmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVMaW5lMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS45NyAxMi43NUgyLjAzYTEwIDEwIDAgMCAwIDE5Ljk0IDBabTAtMS41SDIuMDNhMTAgMTAgMCAwIDEgMTkuOTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZUxpbmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlTGluZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNTMgMTEuMjVoMTYuOTRhOC41IDguNSAwIDAgMC0xNi45NCAwWm0xNi45NCAxLjVIMy41M2E4LjUgOC41IDAgMCAwIDE2Ljk0IDBaTTIgMTJhMTAgMTAgMCAxIDEgMjAgMCAxMCAxMCAwIDAgMS0yMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTXVsdGlwbGVTdWJ0cmFjdENoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZU11bHRpcGxlU3VidHJhY3RDaGVja21hcmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyLjkyIDZBNyA3IDAgMCAwIDYgMTIuOTIgNiA2IDAgMSAxIDEyLjkyIDZabS0zLjggMEg0LjVhLjUuNSAwIDAgMCAwIDFoMy4yYy40NC0uMzguOTItLjcyIDEuNDItMVpNMTkgMTNhNiA2IDAgMSAxLTEyIDAgNiA2IDAgMCAxIDEyIDBabS0zLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlTXVsdGlwbGVTdWJ0cmFjdENoZWNrbWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVNdWx0aXBsZVN1YnRyYWN0Q2hlY2ttYXJrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyAyYTUgNSAwIDAgMSA0LjkyIDQuMDhjLjMyLS4wNS42Ni0uMDggMS0uMDhBNiA2IDAgMSAwIDYgMTIuOTJjMC0uMzQuMDMtLjY4LjA4LTFBNSA1IDAgMCAxIDcgMlpNNC41IDZhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMTEuMzUgNS44NWEuNS41IDAgMCAwLS43LS43bC0yLjY1IDIuNjQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNaTTEzIDE5YTYgNiAwIDEgMCAwLTEyIDYgNiAwIDAgMCAwIDEyWm0wLTFhNSA1IDAgMSAxIDAtMTAgNSA1IDAgMCAxIDAgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVPZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVPZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTExLjg3IDEyLjU4IDIuMjggMi4yN2EuNS41IDAgMCAwIC43LS43bC0xMy0xM2EuNS41IDAgMSAwLS43LjdsMi4yNyAyLjI4YTYgNiAwIDAgMCA4LjQ2IDguNDZaTTE0IDhjMCAxLjExLS4zIDIuMTUtLjgzIDMuMDVMNC45NSAyLjgzQTYgNiAwIDAgMSAxNCA4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlT2ZmMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZU9mZjE2UmVndWxhcicsIFwiMTZcIiwgW1wibTExLjg3IDEyLjU4IDIuMjggMi4yN2EuNS41IDAgMCAwIC43LS43bC0xMy0xM2EuNS41IDAgMSAwLS43LjdsMi4yNyAyLjI4YTYgNiAwIDAgMCA4LjQ2IDguNDZabS0uNy0uN2E1IDUgMCAwIDEtNy4wNC03LjA0bDcuMDMgNy4wM1pNMTMgOGMwIC44My0uMiAxLjYyLS41NyAyLjMxbC43NC43NGE2IDYgMCAwIDAtOC4yMi04LjIybC43NC43NEE1IDUgMCAwIDEgMTMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZU9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZU9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTUuMyAxNiAxLjg1IDEuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDEgMC0uNy43TDQgNC43MUE4IDggMCAwIDAgMTUuMyAxNlptMi43LTZjMCAxLjY3LS41MSAzLjIxLTEuMzggNC41TDUuNSAzLjM4QTggOCAwIDAgMSAxOCAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZU9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDQuNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTUuMjkgMTZBOCA4IDAgMCAxIDQgNC43Wm0xMC41OCAxMC42TDQuNzEgNS40MWE3IDcgMCAwIDAgOS44NyA5Ljg3Wk0xNyAxMGMwIDEuMzktLjQgMi42OS0xLjEgMy43N2wuNzIuNzNBOCA4IDAgMCAwIDUuNSAzLjM5bC43Mi43MUE3IDcgMCAwIDEgMTcgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVTaGFkb3cyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVTaGFkb3cyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2IDE1LjNjLjI1LS4yOS40OC0uNi42OS0uOWwtMy4zLTMuM2EuNS41IDAgMCAxIC43MS0uN2wzLjEgMy4xYy4xOC0uMzcuMzMtLjc1LjQ1LTEuMTVMMTQuNCA5LjFhLjUuNSAwIDAgMSAuNy0uN2wyLjgxIDIuOGE4LjA2IDguMDYgMCAwIDAgLjA4LTEuNWwtMy4zNC0zLjM1YS41LjUgMCAwIDEgLjctLjdsMi40MSAyLjRhOCA4IDAgMSAwLTkuNyA5LjcxbC0yLjQxLTIuNGEuNS41IDAgMCAxIC43LS43MWwzLjM1IDMuMzRhNy45OSA3Ljk5IDAgMCAwIDEuNS0uMDhsLTIuOC0yLjhhLjUuNSAwIDAgMSAuNy0uNzFsMy4yNSAzLjI1Yy40LS4xMi43OC0uMjcgMS4xNC0uNDVsLTMuMS0zLjFhLjUuNSAwIDAgMSAuNzEtLjdsMy4zIDMuMjljLjMtLjIxLjYxLS40NC45LS43bC0zLjE1LTMuMTRhLjUuNSAwIDAgMSAuNy0uN0wxNiAxNS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZVNoYWRvdzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVTaGFkb3cyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC4yOSAxN2E3LjEgNy4xIDAgMCAxLTEuNzMtLjE1bC0yLjItMi4yYS41LjUgMCAxIDAtLjcyLjdsLjQ3LjQ3YTcgNyAwIDEgMSA5LjcyLTkuN2wtLjQ4LS40N2EuNS41IDAgMCAwLS43LjdsMi4yIDIuMjFBNy4wMyA3LjAzIDAgMCAxIDE3IDEwLjNsLTEuODktMS45YS41LjUgMCAwIDAtLjcuNzFsMi40MyAyLjQ0Yy0uMS40MS0uMjIuODItLjM5IDEuMkwxNC4xIDEwLjRhLjUuNSAwIDAgMC0uNy43bDIuNTYgMi41N2MtLjIuMzItLjQyLjYzLS42Ny45MWwtMi40NC0yLjQzYS41LjUgMCAwIDAtLjcuN2wyLjQzIDIuNDRjLS4yOC4yNS0uNTkuNDctLjkxLjY3TDExLjEgMTMuNGEuNS41IDAgMCAwLS43LjdsMi4zNCAyLjM1Yy0uMzkuMTYtLjc5LjI5LTEuMi4zOEw5LjEgMTQuNGEuNS41IDAgMSAwLS43LjdsMS44OSAxLjlaTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlU2hhZG93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlU2hhZG93MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNC43IDIxLjYzYy40Ny0uMTMuOTMtLjMgMS4zNy0uNWwtMy44NS0zLjg1YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsNC4xNyA0LjE3Yy4zNy0uMjUuNzMtLjUyIDEuMDctLjhsLTMuOC0zLjgxYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMy44IDMuOGMuMy0uMzQuNTYtLjcuOC0xLjA3bC00LjE2LTQuMTdhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwzLjg2IDMuODVjLjItLjQ0LjM2LS45LjUtMS4zOGwtNC40Mi00LjQxYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMy42OCAzLjY4YTEwLjEzIDEwLjEzIDAgMCAwIDAtMS44OWwtNC40OS00LjQ4YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi43MiAyLjcyQTEwIDEwIDAgMSAwIDguMTkgMjEuMjVsLTIuNzItMi43MmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDQuNDggNC40OGExMC4xNCAxMC4xNCAwIDAgMCAxLjg5LjAxbC0zLjY4LTMuNjhhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmw0LjQxIDQuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVTaGFkb3cyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlU2hhZG93MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTMuNDQgMjAuMzgtMy4xNi0zLjE2YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi4yIDIuMmE4LjQ2IDguNDYgMCAwIDEtMi40LS41MWwtMi40OS0yLjVhLjc1Ljc1IDAgMCAwLTEuMDUtLjAxQTguNSA4LjUgMCAwIDEgMTcuNDUgNS40OWMtLjI3LjI5LS4yNy43NS4wMiAxLjA0bDIuNSAyLjVjLjI4Ljc1LjQ1IDEuNTUuNTEgMi4zOWwtMi4yLTIuMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDMuMTYgMy4xNmMtLjA5LjUtLjIyIDEtLjQgMS40OGwtMi43LTIuN2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDMuMDggMy4wOGMtLjIzLjM4LS41Ljc1LS43OCAxLjFsLTIuNzQtMi43NGEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNzQgMi43NGMtLjM1LjI4LS43MS41NS0xLjEuNzhsLTMuMDgtMy4wOGEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNyAyLjdjLS40Ny4xOC0uOTcuMzEtMS40OC40Wk0xMiAyMmExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVTbWFsbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpcmNsZVNtYWxsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMyAxMGEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXJjbGVTbWFsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXJjbGVTbWFsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDEyYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNFptMCAxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENpcmNsZVNtYWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlU21hbGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTggMTJhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2lyY2xlU21hbGwyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2lyY2xlU21hbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA5LjVhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaTTggMTJhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2l0eTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpdHkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguNSAxLjVhLjUuNSAwIDAgMC0xIDBWMmgtMUM1LjY3IDIgNSAyLjY3IDUgMy41VjRhMiAyIDAgMCAxIDIgMnY4aDJWNy41YzAtMS4yLjg2LTIuMjEgMi0yLjQ1VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTF2LS41Wm00IDEyLjVIMTBWNy41YzAtLjgyLjY3LTEuNSAxLjUtMS41aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVaTTQuODQgNS4xM0EuNzUuNzUgMCAwIDEgNiA1Ljc2djcuNzRhLjUuNSAwIDAgMS0uNS41aC0yQTEuNSAxLjUgMCAwIDEgMiAxMi41VjcuOGMwLS41MS4yNi0uOTkuNjgtMS4yN2wyLjE2LTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENpdHkxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2l0eTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggMWMuMjggMCAuNS4yMi41LjVWMmgxYy44MyAwIDEuNS42NyAxLjUgMS41VjZoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgMiAxMi41VjcuOGMwLS41MS4yNi0uOTkuNjgtMS4yN2wyLTEuM2MuMS0uMDYuMjEtLjExLjMyLS4xNVYzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmgxdi0uNWMwLS4yOC4yMi0uNS41LS41Wk02IDUuMDhjLjU2LjIgMSAuNzMgMSAxLjQyVjEzaDJWNy41YzAtLjY1LjQyLTEuMiAxLTEuNDFWMy41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41djEuNThaTTEwLjUgN2EuNS41IDAgMCAwLS41LjVWMTNoMi41YS41LjUgMCAwIDAgLjUtLjV2LTVhLjUuNSAwIDAgMC0uNS0uNWgtMlptLTUuMjctLjkyLTIgMS4zYS41LjUgMCAwIDAtLjIzLjQxdjQuNzFjMCAuMjguMjIuNS41LjVINlY2LjVhLjUuNSAwIDAgMC0uNzctLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2l0eTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpdHkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExIDJjLjI4IDAgLjUuMjIuNS41VjRoMWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjU1YTIuNSAyLjUgMCAwIDAtMiAyLjQ1VjE4aC0yVjhhMiAyIDAgMCAwLTItMnYtLjVDOCA0LjY3IDguNjcgNCA5LjUgNGgxVjIuNWMwLS4yOC4yMi0uNS41LS41Wk04LjY0IDcuMjRjLS4yOC0uMi0uNDgtLjItLjY0LS4xNWEuNzcuNzcgMCAwIDAtLjE0LjA2TDQuNzMgOS4wM0ExLjUgMS41IDAgMCAwIDQgMTAuMzJ2Ni4xOGMwIC44My42NyAxLjUgMS41IDEuNUg5VjhhMSAxIDAgMCAwLS4zNi0uNzZaTTE1LjUgOWgtMWMtLjgzIDAtMS41LjY4LTEuNSAxLjVWMThoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXR5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NpdHkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYy4yOCAwIC41LjIyLjUuNVY0aDFjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgyLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxNi41di02LjE4YzAtLjUzLjI4LTEuMDIuNzMtMS4yOWwzLTEuOGMuMDktLjA1LjE4LS4xLjI3LS4xM1Y1LjVDNyA0LjY3IDcuNjcgNCA4LjUgNGgxVjIuNWMwLS4yOC4yMi0uNS41LS41Wk04IDcuMWMuNTYuMiAxIC43MyAxIDEuNDJWMTdoMnYtNi41YzAtLjY1LjQyLTEuMiAxLTEuNDFWNS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41djEuNlptNC41IDIuOWEuNS41IDAgMCAwLS41LjVWMTdoMy41YS41LjUgMCAwIDAgLjUtLjV2LTZhLjUuNSAwIDAgMC0uNS0uNWgtM1pNNy4yNCA4LjA5bC0zIDEuOGEuNS41IDAgMCAwLS4yNC40M3Y2LjE4YzAgLjI4LjIyLjUuNS41SDhWOC41MmEuNS41IDAgMCAwLS43Ni0uNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBDaXR5MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2l0eTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNzUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWNGgtMmMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWNy45YzEuNTItLjEzIDMgMS4wNCAzIDIuNzVWMjJoM3YtOC43NWEyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aC4yNVY1Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMlYyLjc1Wk0xNC41IDIyaDQuMjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di03YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMi41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVYyMlptLTUtMS4yNVYyMkg1LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTcuOTZjMC0uNTkuMy0xLjE0Ljc5LTEuNDZsMi41LTEuNjVhMS43NSAxLjc1IDAgMCAxIDIuNzEgMS40N3YxMC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2l0eTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDaXR5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmMuNDEgMCAuNzUuMzMuNzUuNzVWNGgyYy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjExaDIuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ny41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg1LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTguNDNjMC0uNjIuMzMtMS4yLjg2LTEuNUw3LjUgOC40NVY1Ljc1QzcuNSA0Ljc4IDguMjggNCA5LjI1IDRoMlYyLjc1YzAtLjQyLjM0LS43NS43NS0uNzVaTTkgOC4wMmMuODEuMTIgMS41LjggMS41IDEuNzNWMjAuNWgzdi03Ljc1YzAtLjg4LjY1LTEuNjEgMS41LTEuNzNWNS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtNS41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Mi4yN1ptNi4yNSA0LjQ4YS4yNS4yNSAwIDAgMC0uMjUuMjV2Ny43NWgzLjc1Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di03LjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTMuNVpNOC42MiA5LjU0bC0zLjUgMi4wNmEuMjUuMjUgMCAwIDAtLjEyLjIydjguNDNjMCAuMTQuMTEuMjUuMjUuMjVIOVY5Ljc1YzAtLjItLjIxLS4zMS0uMzgtLjIxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xhc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0yaC0zdjYuNWEuNS41IDAgMCAxLS44LjRMOC41IDcuNjIgNi44IDguOWEuNS41IDAgMCAxLS44LS40VjJabTQgMEg3djUuNWwxLjItLjlhLjUuNSAwIDAgMSAuNiAwbDEuMi45VjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGFzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGEyIDIgMCAwIDEgMS0xLjczVjE2YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMWgtMlYyaDJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0yLTJ2Ni41YS41LjUgMCAwIDAgLjguNGwxLjctMS4yOCAxLjcgMS4yOGEuNS41IDAgMCAwIC44LS40VjJINlptMSA1LjVWM2gzdjQuNWwtMS4yLS45YS41LjUgMCAwIDAtLjYgMEw3IDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xhc3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjI1IDJBMi43NSAyLjc1IDAgMCAxIDIwIDQuNzV2MTQuNUEyLjc1IDIuNzUgMCAwIDEgMTcuMjUgMjJINi43NUEyLjc1IDIuNzUgMCAwIDEgNCAxOS4yNVY0Ljc1QTIuNzUgMi43NSAwIDAgMSA2Ljc1IDJoLjN2OC4xN2MwIC43NS43OCAxLjAxIDEuMzEuNzRsLjA5LS4wNiAyLjEtMS4yIDIuMTMgMS4yM2MuNDUuMzEgMS4yNi4xIDEuMzUtLjU5bC4wMS0uMTJWMmgzLjIxWm0tNC43IDB2Ny4wOGwtMS42My0uOTRhLjkzLjkzIDAgMCAwLS44LjAzbC0uMS4wNi0xLjQ4Ljg1VjJoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsYXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuMjUgMkEyLjc1IDIuNzUgMCAwIDEgMjAgNC43NXYxNC41QTIuNzUgMi43NSAwIDAgMSAxNy4yNSAyMkg2Ljc1QTIuNzUgMi43NSAwIDAgMSA0IDE5LjI1VjQuNzVjMC0xLjI2Ljg1LTIuMzIgMi0yLjY1djEuNjVjLS4zLjIzLS41LjYtLjUgMXYxNC41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDEwLjVjLjcgMCAxLjI1LS41NiAxLjI1LTEuMjVWNC43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVIMTVWMmgyLjI1Wk0xNCAydjguMTRjMCAuNzUtLjggMS4wMy0xLjI5Ljc2bC0uMDgtLjA1LTIuMTMtMS4yOC0yLjA4IDEuMjVjLS41LjM2LTEuMzMuMTQtMS40MS0uNTZMNyAxMC4xNFYyaDdabS0xLjUgMS41aC00djUuNTJsMS41Ny0uOTVhLjkyLjkyIDAgMCAxIC44Mi0uMDJsMS42MS45N1YzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGFzc2lmaWNhdGlvbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsYXNzaWZpY2F0aW9uMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMC44NSA0LjFjLjIxLjAyLjQ1LjEzLjY5LjM3LjIzLjIzLjM0LjQ3LjM2LjY4LjAyLjE5LS4wNC40LS4yNy42My0uNTMuNTMtMS40MyAxLjEyLTIuNTEgMS44MmwtLjA2LjA0LS43LS43LjA0LS4wNmMuNy0xLjA4IDEuMjktMS45OCAxLjgyLTIuNTEuMjItLjIzLjQ0LS4yOS42My0uMjdaTTkuNzggOC4zN2ExNy4xIDE3LjEgMCAwIDAgMi41Ni0xLjg4Yy40Mi0uNDIuNi0uOTIuNTYtMS40My0uMDUtLjUtLjMtLjk1LS42Ni0xLjMtLjM1LS4zNi0uOC0uNjEtMS4zLS42NmExLjc3IDEuNzcgMCAwIDAtMS40My41NmMtLjU5LjYtMS4yMiAxLjU1LTEuODggMi41Nkw2LjYgNS4xN2EyIDIgMCAwIDAtMi44MyAwbC0uNzEuNzFhMSAxIDAgMCAwIDAgMS40MWwtLjUzLjUzYTEuMjUgMS4yNSAwIDAgMCAwIDEuNzdsMy44OSAzLjljLjQ5LjQ4IDEuMjguNDggMS43NyAwbC41My0uNTRhMSAxIDAgMCAwIDEuNDEgMGwuNy0uN2EyIDIgMCAwIDAgMC0yLjgzTDkuNzkgOC4zN1pNMy43NiA4IDggMTIuMjRsLS41My41M2MtLjEuMS0uMjYuMS0uMzUgMGwtMy45LTMuODlhLjI1LjI1IDAgMCAxIDAtLjM1TDMuNzcgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzaWZpY2F0aW9uMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsYXNzaWZpY2F0aW9uMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTAuODUgNC4xYy4yMS4wMi40NS4xMy42OS4zNy4yMy4yMy4zNC40Ny4zNi42OC4wMi4xOS0uMDQuNC0uMjcuNjMtLjUzLjUzLTEuNDMgMS4xMi0yLjUxIDEuODJsLS4wNi4wNC0uNy0uNy4wNC0uMDZjLjctMS4wOCAxLjI5LTEuOTggMS44Mi0yLjUxLjIyLS4yMy40NC0uMjkuNjMtLjI3Wk05Ljc4IDguMzdhMTcuMSAxNy4xIDAgMCAwIDIuNTYtMS44OGMuNDItLjQyLjYtLjkyLjU2LTEuNDMtLjA1LS41LS4zLS45NS0uNjYtMS4zLS4zNS0uMzYtLjgtLjYxLTEuMy0uNjZhMS43NyAxLjc3IDAgMCAwLTEuNDMuNTZjLS41OS42LTEuMjIgMS41NS0xLjg4IDIuNTZMNi42IDUuMTdhMiAyIDAgMCAwLTIuODMgMGwtLjcxLjcxYTEgMSAwIDAgMCAwIDEuNDFsLS41My41M2ExLjI1IDEuMjUgMCAwIDAgMCAxLjc3bDMuODkgMy45Yy40OS40OCAxLjI4LjQ4IDEuNzcgMGwuNTMtLjU0YTEgMSAwIDAgMCAxLjQxIDBsLjctLjdhMiAyIDAgMCAwIDAtMi44M0w5Ljc5IDguMzdabS0uODYuNTUgMS4yIDEuMmExIDEgMCAwIDEgMCAxLjQybC0uNy43TDMuNzUgNi42bC43LS43MWExIDEgMCAwIDEgMS40MiAwbDEuMiAxLjIgMS41NiAxLjU2LjI4LjI4Wk0zLjc2IDggOCAxMi4yNGwtLjUzLjUzYy0uMS4xLS4yNi4xLS4zNSAwbC0zLjktMy44OWEuMjUuMjUgMCAwIDEgMC0uMzVMMy43NyA4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xhc3NpZmljYXRpb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzc2lmaWNhdGlvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMuNzMgMi43M2MtLjIzLjIzLS41MS42LS43OSAxLjAxYTM0LjQ3IDM0LjQ3IDAgMCAwLTEuNyAyLjcyTDkuNjUgNC44OGEzIDMgMCAwIDAtNC4yNCAwTDMuNSA2Ljc5YTEgMSAwIDAgMCAwIDEuNDFsLjMzLjM0LTEuNCAxLjRhMS41IDEuNSAwIDAgMCAwIDIuMTFsNS41MiA1LjUxYTEuNSAxLjUgMCAwIDAgMi4xMiAwbDEuNC0xLjQuMzIuMzRhMSAxIDAgMCAwIDEuNDIgMGwxLjktMS45MWEzIDMgMCAwIDAgMC00LjI1bC0xLjU3LTEuNThhNTkuMyA1OS4zIDAgMCAwIDIuNzItMS43Yy40LS4yOC43OC0uNTYgMS0uOGEyLjUgMi41IDAgMCAwLTMuNTMtMy41M1ptLTIuOTggMTIuNzMtMS4zOSAxLjRhLjUuNSAwIDAgMS0uNyAwbC01LjUxLTUuNTFhLjUuNSAwIDAgMSAwLS43MWwxLjQtMS40IDYuMiA2LjIyWm0yLjA2LTcuNDMtLjg0LS44NC4wNC0uMDdhNTguOTcgNTguOTcgMCAwIDEgMS43NS0yLjhjLjI4LS40MS41Mi0uNzIuNjgtLjg4YTEuNSAxLjUgMCAxIDEgMi4xMiAyLjEyYy0uMTYuMTYtLjQ3LjQtLjg3LjY4YTMzLjQgMzMuNCAwIDAgMS0yLjQ0IDEuNTRsLS4zNy4yLS4wNy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzaWZpY2F0aW9uMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsYXNzaWZpY2F0aW9uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIuOTQgMy43NGMuMjgtLjQuNTYtLjc4LjgtMWEyLjUgMi41IDAgMSAxIDMuNTMgMy41M2MtLjIzLjIzLS42LjUxLTEuMDEuNzlhMzQuMzMgMzQuMzMgMCAwIDEtMi43MiAxLjdsMS41OCAxLjU4YTMgMyAwIDAgMSAwIDQuMjVsLTEuOTEgMS45YTEgMSAwIDAgMS0xLjQyIDBsLS4zMy0uMzItMS40IDEuMzlhMS41IDEuNSAwIDAgMS0yLjExIDBsLTUuNTEtNS41YTEuNSAxLjUgMCAwIDEgMC0yLjEzbDEuNC0xLjQtLjM0LS4zM2ExIDEgMCAwIDEgMC0xLjQxbDEuOTEtMS45MWEzIDMgMCAwIDEgNC4yNCAwbDEuNTkgMS41OGE3NS4xNSA3NS4xNSAwIDAgMSAxLjctMi43MlptLTguNCA1LjUtMS40IDEuNGEuNS41IDAgMCAwIDAgLjdsNS41MSA1LjUxYy4yLjIuNTEuMi43MSAwbDEuNC0xLjQtNi4yMi02LjJaTTEyLjg4IDhhNjIuOTUgNjIuOTUgMCAwIDAgMi44LTEuNzVjLjQxLS4yOC43Mi0uNTIuODgtLjY4YTEuNSAxLjUgMCAxIDAtMi4xMi0yLjEyYy0uMTYuMTYtLjQuNDctLjY4Ljg3YTMzLjM0IDMzLjM0IDAgMCAwLTEuNTQgMi40NGwtLjIuMzctLjA1LjA3Ljg0Ljg0LjA3LS4wNFptLTMuOTMtMi40YTIgMiAwIDAgMC0yLjgzIDBMNC4yIDcuNDlsOC4yOSA4LjMgMS45MS0xLjkxYTIgMiAwIDAgMCAwLTIuODNMOC45NSA1LjU5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xhc3NpZmljYXRpb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGFzc2lmaWNhdGlvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQuNTcgNS4xOGMuNDctLjgzIDEtMS43IDEuNDYtMi4xNWEzLjUgMy41IDAgMSAxIDQuOTQgNC45NGMtLjQ1LjQ2LTEuMzIgMS0yLjE1IDEuNDYtLjY3LjM3LTEuMzguNzMtMS45OCAxLjAybDIuMjEgMi4yMWEzLjI1IDMuMjUgMCAwIDEgMCA0LjZsLTIuMzggMi4zOGMtLjQ5LjQ4LTEuMjguNDgtMS43NyAwbC0uNC0uNC0yLjExIDIuMWMtLjg4Ljg4LTIuMy44OC0zLjE5IDBMMi42NiAxNC44YTIuMjUgMi4yNSAwIDAgMSAwLTMuMThMNC43NyA5LjVsLS40LS40YTEuMjUgMS4yNSAwIDAgMSAwLTEuNzdsMi4zNy0yLjM4YTMuMjUgMy4yNSAwIDAgMSA0LjYgMGwyLjIgMi4yYy4zLS42LjY2LTEuMyAxLjAzLTEuOTdabS04Ljc0IDUuMzgtMi4xMSAyLjEyYy0uMy4yOS0uMy43NiAwIDEuMDZsNi41NSA2LjU0Yy4yOS4zLjc2LjMgMS4wNiAwbDIuMS0yLjExLTcuNi03LjZaTTE4LjEgOC4xMmE5Ljg3IDkuODcgMCAwIDAgMS44Mi0xLjIgMiAyIDAgMCAwLTIuODItMi44M2MtLjMuMjgtLjczLjk2LTEuMiAxLjgyLS40Ni44MS0uOSAxLjctMS4yMiAyLjM3bDEuMDUgMS4wNWMuNjctLjMyIDEuNTYtLjc2IDIuMzctMS4yMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzaWZpY2F0aW9uMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsYXNzaWZpY2F0aW9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTQuNTcgNS4xOGMuNDctLjgzIDEtMS43IDEuNDYtMi4xNWEzLjUgMy41IDAgMSAxIDQuOTQgNC45NGMtLjQ1LjQ2LTEuMzIgMS0yLjE1IDEuNDYtLjY3LjM3LTEuMzguNzMtMS45OCAxLjAybDIuMjEgMi4yMWEzLjI1IDMuMjUgMCAwIDEgMCA0LjZsLTIuMzggMi4zOGMtLjQ5LjQ4LTEuMjguNDgtMS43NyAwbC0uNC0uNDEtMi4xMSAyLjExYy0uODguODgtMi4zLjg4LTMuMTkgMEwyLjY2IDE0LjhhMi4yNSAyLjI1IDAgMCAxIDAtMy4xOEw0Ljc3IDkuNWwtLjQtLjRhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wyLjM3LTIuMzhhMy4yNSAzLjI1IDAgMCAxIDQuNiAwbDIuMiAyLjJjLjMtLjYuNjYtMS4zIDEuMDMtMS45N1ptLTguNzQgNS4zOC0yLjExIDIuMTJjLS4zLjI5LS4zLjc2IDAgMS4wNmw2LjU1IDYuNTRjLjI5LjMuNzYuMyAxLjA2IDBsMi4xLTIuMTEtNy42LTcuNlpNMTguMSA4LjEyYTkuODcgOS44NyAwIDAgMCAxLjgyLTEuMiAyIDIgMCAwIDAtMi44Mi0yLjgzYy0uMy4yOC0uNzMuOTYtMS4yIDEuODItLjQ2LjgxLS45IDEuNy0xLjIyIDIuMzdsMS4wNSAxLjA1Yy42Ny0uMzIgMS41Ni0uNzYgMi4zNy0xLjIxWm0tNy44MS0yLjFhMS43NSAxLjc1IDAgMCAwLTIuNDcgMGwtMi4yIDIuMkwxNS43OCAxOC40bDIuMi0yLjJjLjY4LS42OS42OC0xLjggMC0yLjQ4bC03LjcxLTcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsYXNzaWZpY2F0aW9uMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xhc3NpZmljYXRpb24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIyLjE3IDQuMTdjLS42NS42Ni0yLjA1IDIuNTEtMy4yMyA0LjEybC0xLjM2IDEuODgtMi45LTIuOWE0LjUgNC41IDAgMCAwLTYuMzYgMGwtMy4xNyAzLjE3YTEuNSAxLjUgMCAwIDAgMCAyLjEybC44OC44OC0yLjMgMi4zYTIuNSAyLjUgMCAwIDAgMCAzLjUzbDkgOWEyLjUgMi41IDAgMCAwIDMuNTQgMGwyLjMtMi4zLjg3Ljg4YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDMuMTctMy4xN2E0LjUgNC41IDAgMCAwIDAtNi4zNmwtMi45LTIuOSAxLjg4LTEuMzZhNTAuODUgNTAuODUgMCAwIDAgNC4xMi0zLjIzIDQgNCAwIDAgMC01LjY2LTUuNjZabS01LjAyIDIwLjQtMi4zIDIuMjlhLjUuNSAwIDAgMS0uNyAwbC05LTlhLjUuNSAwIDAgMSAwLS43MWwyLjI5LTIuMyA5LjcgOS43MVptMy4yNS0xMS41OC0xLjM5LTEuMzkgMS41NS0yLjEzYTUxLjM2IDUxLjM2IDAgMCAxIDMuMDMtMy44OEEyIDIgMCAxIDEgMjYuNCA4LjRjLS41MS41Mi0yLjIxIDEuODEtMy44OCAzLjAzTDIwLjQgMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGFzc2lmaWNhdGlvbjMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xhc3NpZmljYXRpb24zMkxpZ2h0JywgXCIzMlwiLCBbXCJNMjIuMTcgNC4xN2E0IDQgMCAxIDEgNS42NiA1LjY2Yy0uNzMuNzItMi40IDEuODgtMy44MyAyLjg0YTExNC4xIDExNC4xIDAgMCAxLTIuMiAxLjQybDMuMjIgMy4yM2E0LjUgNC41IDAgMCAxIDAgNi4zNmwtMy40NiAzLjQ3YTEuNSAxLjUgMCAwIDEtMi4xMiAwbC0uOTQtLjk0LTIuOTQgMi45NGExLjUgMS41IDAgMCAxLTIuMTIgMEwyLjg1IDE4LjU2YTEuNSAxLjUgMCAwIDEgMC0yLjEyTDUuOCAxMy41bC0uOTQtLjk0YTEuNSAxLjUgMCAwIDEgMC0yLjEybDMuNDctMy40N2E0LjUgNC41IDAgMCAxIDYuMzYgMGwzLjIzIDMuMjNBMTE5LjcgMTE5LjcgMCAwIDEgMTkuMzMgOGMuOTYtMS40NCAyLjEyLTMuMSAyLjg0LTMuODNabS0xLjEgOS4yYTEwOS4xMiAxMDkuMTIgMCAwIDAgMi4zOC0xLjU0IDMwLjU4IDMwLjU4IDAgMCAwIDMuNjctMi43IDMgMyAwIDEgMC00LjI0LTQuMjVjLS42NC42NC0xLjc0IDIuMjEtMi43MSAzLjY3YTExMy44MSAxMTMuODEgMCAwIDAtMS41NCAyLjM4bDIuNDQgMi40NFptLTcuMS01LjY5YTMuNSAzLjUgMCAwIDAtNC45NSAwbC0zLjQ2IDMuNDdhLjUuNSAwIDAgMCAwIC43bDE0LjU5IDE0LjU5Yy4yLjIuNS4yLjcgMGwzLjQ3LTMuNDdhMy41IDMuNSAwIDAgMCAwLTQuOTRMMTMuOTcgNy42OFptLTEwLjQgOS40N2EuNS41IDAgMCAwIDAgLjdsMTAuNTggMTAuNTljLjIuMi41LjIuNyAwbDIuOTQtMi45NEw2LjUgMTQuMmwtMi45NCAyLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xhc3NpZmljYXRpb24zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xhc3NpZmljYXRpb24zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xOC45NCA4LjI5YTUwLjg2IDUwLjg2IDAgMCAxIDMuMjMtNC4xMiA0IDQgMCAxIDEgNS42NiA1LjY2Yy0uNjYuNjUtMi41MSAyLjA1LTQuMTIgMy4yM2wtMS44OCAxLjM2IDIuOSAyLjlhNC41IDQuNSAwIDAgMSAwIDYuMzZsLTMuMTcgMy4xN2ExLjUgMS41IDAgMCAxLTIuMTIgMGwtLjg4LS44OC0yLjI5IDIuM2EyLjUgMi41IDAgMCAxLTMuNTQgMGwtOS05YTIuNSAyLjUgMCAwIDEgMC0zLjU0bDIuMy0yLjI5LS44OC0uODhhMS41IDEuNSAwIDAgMSAwLTIuMTJsMy4xNy0zLjE3YTQuNSA0LjUgMCAwIDEgNi4zNiAwbDIuOSAyLjkgMS4zNi0xLjg4Wm0tMTEuNSA2LjU2LTIuMyAyLjNhLjUuNSAwIDAgMCAwIC43bDkgOWMuMi4yLjUyLjIuNzIgMGwyLjI5LTIuMjktOS43MS05LjdabTE1LjA5LTMuNGE1MS4zNyA1MS4zNyAwIDAgMCAzLjg4LTMuMDRBMiAyIDAgMCAwIDIzLjYgNS42Yy0uNTIuNTEtMS44MSAyLjIyLTMuMDMgMy44OEwxOSAxMS42bDEuMzkgMS4zOSAyLjEzLTEuNTVabS0xNS42Mi4wNUwyMC41IDI1LjA5bDIuODItMi44M2EyLjUgMi41IDAgMCAwIDAtMy41M0wxMy4yNyA4LjY4YTIuNSAyLjUgMCAwIDAtMy41NCAwTDYuOTEgMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsZWFyRm9ybWF0dGluZzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsZWFyRm9ybWF0dGluZzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi45NiAyYS43NS43NSAwIDAgMC0uNzMuNTdMMiAzLjVhLjc1Ljc1IDAgMCAwIDEuNDYuMzdsLjEtLjM4aDIuMDJsLTEuMjMgN2gtLjM4YS43NS43NSAwIDAgMCAwIDEuNWgyLjA2YTUuNTcgNS41NyAwIDAgMSAuMDctMS41aC0uMjJsMS4yMi03aDIuMjN2LjAxYS43NS43NSAwIDAgMCAxLjQ1LjM3bC4yNC0uOTVhLjc1Ljc1IDAgMCAwLS43My0uOTNIMi45NlpNMS43NSAxMi41aDQuMzRjLjEuNTMuMjcgMS4wMy41MSAxLjVIMS43NWEuNzUuNzUgMCAwIDEgMC0xLjVabTE0LjI1LTFhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xlYXJGb3JtYXR0aW5nMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsZWFyRm9ybWF0dGluZzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuNzUgMmEuNS41IDAgMCAwLS40OS4zOGwtLjI1IDFhLjUuNSAwIDEgMCAuOTguMjRMMy4xNCAzaDIuNzJsLTEuNCA4aC0uNzNhLjUuNSAwIDAgMCAwIDFoMi4zYTUuNTcgNS41NyAwIDAgMSAwLTFoLS41NWwxLjQtOGgyLjk4bC0uMS4zOGEuNS41IDAgMSAwIC45OC4yNGwuMjUtMUEuNS41IDAgMCAwIDEwLjUgMkgyLjc1Wk0xLjUgMTNoNC43Yy4xLjM1LjI0LjY4LjQgMUgxLjVhLjUuNSAwIDAgMSAwLTFaTTE2IDExLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xlYXJGb3JtYXR0aW5nMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xlYXJGb3JtYXR0aW5nMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00LjQ3IDNjLS4zOCAwLS43LjI4LS43NS42NWwtLjEzIDFhLjc1Ljc1IDAgMSAwIDEuNDkuMmwuMDQtLjM1SDcuOWwtMS41NyA5aC0uNThhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS40bDEuNTctOWgyLjY5bC0uMDIuMTZhLjc1Ljc1IDAgMSAwIDEuNDguMmwuMTQtMS4wMWEuNzUuNzUgMCAwIDAtLjc1LS44NWgtOC41Wk0yLjc1IDE1LjVhLjc1Ljc1IDAgMCAwIDAgMS41SDkuNmE1LjQ2IDUuNDYgMCAwIDEtLjUtMS41SDIuNzRabTE2LjI1LTFhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xlYXJGb3JtYXR0aW5nMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsZWFyRm9ybWF0dGluZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuMjUgM2EuNS41IDAgMCAwLS41LjQybC0uMjQgMS41YS41LjUgMCAwIDAgLjk4LjE2TDQuNjcgNGgzLjU3bC0xLjczIDkuOTFhLjUuNSAwIDAgMC0uMDEuMDloLTFhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtMWwxLjc0LTkuOTFBLjUuNSAwIDAgMCA5LjI1IDRoMy40MWwtLjE1LjkyYS41LjUgMCAxIDAgLjk4LjE2bC4yNS0xLjVhLjUuNSAwIDAgMC0uNDktLjU4aC05Wk05LjYgMTdjLS4xNi0uMzItLjMtLjY1LS40LTFIMi41YS41LjUgMCAwIDAgMCAxaDcuMVptOS40LTIuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGVhckZvcm1hdHRpbmcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGVhckZvcm1hdHRpbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVpNMyAxOWg4LjE3Yy4xNy43Mi40NiAxLjQuODUgMkgzYTEgMSAwIDAgMS0uMTItMkgzWm0xMi4xLTQuMDMtLjA4LjA1LS4wNS4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNS4wNyAxLjc3IDEuNzctMS43NiAxLjc3LS4wNi4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNi4wNi4wNy4wNmMuMTcuMTIuNC4xMi41NiAwbC4wNy0uMDYgMS43Ny0xLjc2IDEuNzcgMS43Ny4wNy4wNWMuMTcuMTIuNC4xMi41NyAwbC4wNy0uMDUuMDUtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNS0uMDctMS43Ny0xLjc3IDEuNzctMS43Ny4wNi0uMDdhLjUuNSAwIDAgMCAwLS41N2wtLjA2LS4wNy0uMDctLjA1YS41LjUgMCAwIDAtLjU3IDBsLS4wNy4wNS0xLjc3IDEuNzctMS43Ny0xLjc3LS4wNy0uMDVhLjUuNSAwIDAgMC0uNS0uMDVsLS4wNy4wNVpNMTYgM2ExIDEgMCAwIDEgMSAxLjA1bC0uMDEuMTEtLjI1IDEuNWExIDEgMCAwIDEtMS45OC0uMnYtLjEybC4wNi0uMzRoLTMuMzlMOS42NyAxNkgxMGExIDEgMCAwIDEgMSAuODhWMTdhMSAxIDAgMCAxLS44OCAxSDdhMSAxIDAgMCAxLS4xMi0yaC43N0w5LjQgNUg1Ljg1bC0uMTEuNjZhMSAxIDAgMCAxLTEuOTktLjJsLjAxLS4xMi4yNS0xLjVBMSAxIDAgMCAxIDQuODggM0w1IDNoMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGVhckZvcm1hdHRpbmcyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xlYXJGb3JtYXR0aW5nMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tNi4xOSA3LjVjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDIuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNWg4LjY2Wm0zLjc4LTQuNTMtLjA3LjA1LS4wNS4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNS4wNyAxLjc3IDEuNzctMS43NiAxLjc3LS4wNi4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNi4wNi4wNy4wNmMuMTcuMTIuNC4xMi41NiAwbC4wNy0uMDYgMS43Ny0xLjc2IDEuNzcgMS43Ny4wNy4wNWMuMTcuMTIuNC4xMi41NyAwbC4wNy0uMDUuMDUtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNS0uMDctMS43Ny0xLjc3IDEuNzctMS43Ny4wNi0uMDdhLjUuNSAwIDAgMCAwLS41N2wtLjA2LS4wNy0uMDctLjA1YS41LjUgMCAwIDAtLjU3IDBsLS4wNy4wNS0xLjc3IDEuNzctMS43Ny0xLjc3LS4wNy0uMDVhLjUuNSAwIDAgMC0uNS0uMDVsLS4wNy4wNVptLjY2LTExLjQ3Yy40MyAwIC43Ni4zNi43NS43N2wtLjAxLjEtLjI1IDEuNWEuNzUuNzUgMCAwIDEtMS40OS0uMTRsLjAxLS4xLjEtLjYzaC0zLjg1TDkgMTYuNWguNzRjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjFjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWgtM2EuNzUuNzUgMCAwIDEtLjEtMS41aC44M2wyLTExLjVoLTQuMWwtLjE0Ljg3YS43NS43NSAwIDAgMS0xLjQ5LS4xNGwuMDEtLjEuMjUtMS41YS43NS43NSAwIDAgMSAuNjMtLjYybC4xMS0uMDFoMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTcuOTEgMmguNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSAyIDkuNXYtNkMyIDIuNjcgMi42NyAyIDMuNSAyaC41OWMuMi0uNTguNzYtMSAxLjQxLTFoMWMuNjUgMCAxLjIuNDIgMS40MSAxWk01IDIuNWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgMC0xaC0xYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk00LjA5IDNIMy41YS41LjUgMCAwIDAtLjUuNXY2YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLS41LS41aC0uNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtMWExLjUgMS41IDAgMCAxLTEuNDEtMVpNNy45IDJoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgMiA5LjV2LTZDMiAyLjY3IDIuNjcgMiAzLjUgMmguNTljLjItLjU4Ljc2LTEgMS40MS0xaDFjLjY1IDAgMS4yLjQyIDEuNDEgMVpNNSAyLjVjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIDAtMWgtMWEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01LjA5IDNINC41YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEwYS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS45OSA0aDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2MTMuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMiAxLjA4LTIgMi4yNC0yaDMuNWMxLjE2IDAgMi4xMS44OCAyLjI0IDJabS02LjQ5LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguMzggNS41SDYuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMy41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDExLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNi4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi4xM2MtLjQuNi0xLjA5IDEtMS44NyAxaC0zLjVjLS43OCAwLTEuNDctLjQtMS44Ny0xWm03LjYtMS41aDEuNzdDMTguOTkgNCAyMCA1IDIwIDYuMjV2MTMuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMiAxLjA4LTIgMi4yNC0yaDMuNWMxLjE2IDAgMi4xMS44OCAyLjI0IDJabS02LjQ4LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xOC40NSA0aDEuOEEyLjc1IDIuNzUgMCAwIDEgMjMgNi43NXYxNi41QTIuNzUgMi43NSAwIDAgMSAyMC4yNSAyNkg3Ljc1QTIuNzUgMi43NSAwIDAgMSA1IDIzLjI1VjYuNzVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNGgxLjhBMi41IDIuNSAwIDAgMSAxMiAyaDRjMS4yIDAgMi4yMi44NiAyLjQ1IDJaTTExIDQuNWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMSAwIDAtMmgtNGExIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTkuNyA1LjVINy43NmMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTYuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMi41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVY2Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMS45NkEyLjUgMi41IDAgMCAxIDE2IDdoLTRhMi41IDIuNSAwIDAgMS0yLjMtMS41Wk0xOC40NiA0aDEuOEEyLjc1IDIuNzUgMCAwIDEgMjMgNi43NXYxNi41QTIuNzUgMi43NSAwIDAgMSAyMC4yNSAyNkg3Ljc1QTIuNzUgMi43NSAwIDAgMSA1IDIzLjI1VjYuNzVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNGgxLjhBMi41IDIuNSAwIDAgMSAxMiAyaDRjMS4yIDAgMi4yMi44NiAyLjQ1IDJaTTExIDQuNWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMSAwIDAtMmgtNGExIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMy41IDRoLTEuNjdBMyAzIDAgMCAwIDE5IDJoLTZhMyAzIDAgMCAwLTIuODMgMkg4LjVBMy41IDMuNSAwIDAgMCA1IDcuNXYxOUEzLjUgMy41IDAgMCAwIDguNSAzMGgxNWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTE5QTMuNSAzLjUgMCAwIDAgMjMuNSA0Wk0xMyA0aDZhMSAxIDAgMSAxIDAgMmgtNmExIDEgMCAxIDEgMC0yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE5IDJhMyAzIDAgMCAxIDIuODMgMmgxLjY3QTMuNSAzLjUgMCAwIDEgMjcgNy41djE5YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtMTVBMy41IDMuNSAwIDAgMSA1IDI2LjV2LTE5QTMuNSAzLjUgMCAwIDEgOC41IDRoMS42N0EzIDMgMCAwIDEgMTMgMmg2Wm0tNiAyYTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0yaC02Wk04LjUgNkM3LjY3IDYgNyA2LjY3IDcgNy41djE5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDE1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTljMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjY3QTMgMyAwIDAgMSAxOSA4aC02YTMgMyAwIDAgMS0yLjgzLTJIOC41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkM0RheTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDNEYXkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNSAxYy0uNjUgMC0xLjIuNDItMS40MSAxSDQuNUMzLjY3IDIgMyAyLjY3IDMgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMGMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNiAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabS0xIDh2LTRhLjUuNSAwIDAgMSAxIDB2NGEuNS41IDAgMCAxLTEgMFptMyAuNWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMS0uNS41Wm0yLS41di00YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMS0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQzRGF5MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDNEYXkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDEwLjVhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0xIDB2NFptMyAuNWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMS0uNS41Wm0yLS41YS41LjUgMCAwIDAgMSAwdi00YS41LjUgMCAwIDAtMSAwdjRaTTYuNSAxYy0uNjUgMC0xLjIuNDItMS40MSAxSDQuNUMzLjY3IDIgMyAyLjY3IDMgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMGMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNiAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQuNSAzaC41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaC41OWMuMjggMCAuNS4yMi41LjV2MTBhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTEwYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQzRGF5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkM0RheTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabS0xIDEwdi02YS41LjUgMCAwIDEgMSAwdjZhLjUuNSAwIDAgMS0xIDBabTUuNS41YS41LjUgMCAwIDEtLjUtLjV2LTZhLjUuNSAwIDAgMSAxIDB2NmEuNS41IDAgMCAxLS41LjVabS0zLS41di02YS41LjUgMCAwIDEgMSAwdjZhLjUuNSAwIDAgMS0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQzRGF5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDNEYXkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03IDE0LjVhLjUuNSAwIDAgMCAxIDB2LTZhLjUuNSAwIDAgMC0xIDB2NlptNS41LjVhLjUuNSAwIDAgMS0uNS0uNXYtNmEuNS41IDAgMCAxIDEgMHY2YS41LjUgMCAwIDEtLjUuNVptLTMtLjVhLjUuNSAwIDAgMCAxIDB2LTZhLjUuNSAwIDAgMC0xIDB2NlpNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA0aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYxMmEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZDNEYXkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQzRGF5MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMy43NSAyaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djEzLjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoMTEuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJabS0zLjUgMS41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTggMTcuMjV2LTcuNWEuNzUuNzUgMCAwIDEgMS41IDB2Ny41YS43NS43NSAwIDAgMS0xLjUgMFptNy4yNS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41YS43NS43NSAwIDAgMSAxLjUgMHY3LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptLTQtLjc1di03LjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjcuNWEuNzUuNzUgMCAwIDEtMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQzRGF5MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZDNEYXkyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04IDE3LjI1YS43NS43NSAwIDAgMCAxLjUgMHYtNy41YS43NS43NSAwIDAgMC0xLjUgMHY3LjVabTcuMjUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTcuNWEuNzUuNzUgMCAwIDEgMS41IDB2Ny41YzAgLjQxLS4zNC43NS0uNzUuNzVabS00LS43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTcuNWEuNzUuNzUgMCAwIDAtMS41IDB2Ny41Wk0xNS45OSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZabTAgLjEuMDEuMTVWNC4xWm0tNS43NCAyLjRoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djEzLjVjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMVptMC0zaDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTMxLjgxIDdoMy45NEMzOC4xIDcgNDAgOC45IDQwIDExLjI1djI4LjVDNDAgNDIuMSAzOC4xIDQ0IDM1Ljc1IDQ0aC0yMy41QTQuMjUgNC4yNSAwIDAgMSA4IDM5Ljc1di0yOC41QzggOC45IDkuOSA3IDEyLjI1IDdoMy45NGMuNTMtMS43NCAyLjE1LTMgNC4wNi0zaDcuNWE0LjI1IDQuMjUgMCAwIDEgNC4wNiAzWk0xOC41IDguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNy41YTEuNzUgMS43NSAwIDEgMCAwLTMuNWgtNy41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNi4xOSA5LjVoLTMuOTRjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djI4LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMjMuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTI4LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0zLjk0YTQuMjUgNC4yNSAwIDAgMS00LjA2IDNoLTcuNWE0LjI1IDQuMjUgMCAwIDEtNC4wNi0zWk0zMS44IDdoMy45NEMzOC4xIDcgNDAgOC45IDQwIDExLjI1djI4LjVDNDAgNDIuMSAzOC4xIDQ0IDM1Ljc1IDQ0aC0yMy41QTQuMjUgNC4yNSAwIDAgMSA4IDM5Ljc1di0yOC41QzggOC45IDkuOSA3IDEyLjI1IDdoMy45NGMuNTMtMS43NCAyLjE1LTMgNC4wNi0zaDcuNWE0LjI1IDQuMjUgMCAwIDEgNC4wNiAzWk0xOC41IDguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNy41YTEuNzUgMS43NSAwIDEgMCAwLTMuNWgtNy41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEFycm93UmlnaHQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRBcnJvd1JpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01LjA5IDJjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWguNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xQTUuNSA1LjUgMCAwIDAgNy4zNCAxNUg0LjVBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm04LjUgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTEuMjkgMTBIOC41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRBcnJvd1JpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEFycm93UmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjA5IDJjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWguNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy0uMzItLjE2LS42NS0uMy0xLS40VjMuNWEuNS41IDAgMCAwLS41LS41aC0uNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg0LjVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDEuNzZjLjMxLjM4LjY3LjcyIDEuMDggMUg0LjVBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm04LjUgOC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTEuMjkgMTBIOC41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRBcnJvd1JpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQXJyb3dSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdhNS41IDUuNSAwIDAgMC01Ljc0IDguOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDE0SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEFycm93UmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQXJyb3dSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43Yy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSAxNEgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRBcnJvd1JpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQXJyb3dSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMjUgMmgzLjVjMS4xNiAwIDIuMTEuODcgMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2NS4yNUE2LjUgNi41IDAgMCAwIDEyLjgxIDIySDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJabTMuNSAxLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNVptOS4yNSAxNGE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tOC41LS41YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMMTkuMjkgMTdIMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEFycm93UmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQXJyb3dSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjc1IDJjMS4xNiAwIDIuMTEuODggMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2NS4yNWMtLjQ3LS4yLS45OC0uMzQtMS41LS40MlY2LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDEuMzQuNzUuNzUuNzVoNS40OGMuMjkuNTUuNjUgMS4wNiAxLjA4IDEuNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMyAxLjA4LTIgMi4yNC0yaDMuNVptMi4yNCAyLjEuMDEuMTVWNC4xWm0tMi4yNC0uNmgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wm05LjI1IDE0YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS04LjUtLjVhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcuN0wxOS4yOSAxN0gxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnJ1c2gxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCcnVzaDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djMuNzdhMiAyIDAgMCAwLS40MS4zMmwtMS40NyAxLjQ2YTMuNSAzLjUgMCAwIDAtMy44MiAyLjAybC0uMTUuMzJjLS4wMy4wOC0uMDUuMTEtLjEuMThhLjQxLjQxIDAgMCAxLS4xNC4xNGMtLjExLjA4LS4zNS4yLS44NC4zNWExLjUgMS41IDAgMCAwLS43NSAyLjM3Yy4xNi4yLjM0LjQuNTIuNTdINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOC4yIDYuM2ExIDEgMCAwIDEgMCAxLjRsLTEuODcgMS44OWMuMzUuOS4xNiAxLjk1LS41NiAyLjY4YTQuMTIgNC4xMiAwIDAgMS02LjE2LS40Ni41LjUgMCAwIDEgLjI1LS43OWMxLjA3LS4zMiAxLjM4LS42NSAxLjU1LS45My4wNy0uMTEuMTItLjIyLjE4LS4zNWwuMS0uMjNhMi41IDIuNSAwIDAgMSAzLjIyLTEuMzRMMTMuMyA4LjNhMSAxIDAgMCAxIDEuNDIgMFptLTMuMTQgMy4xNGExLjUgMS41IDAgMCAwLTIuMTIgMGMtLjE2LjE2LS4yNS4zMi0uMzQuNWwtLjA3LjE1YTIuNzUgMi43NSAwIDAgMS0xLjYzIDEuNjIgMy4xIDMuMSAwIDAgMCA0LjE2LS4xNSAxLjUgMS41IDAgMCAwIDAtMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJydXNoMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJydXNoMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djMuNzdhMiAyIDAgMCAwLS40MS4zMmwtLjU5LjU4VjMuNWEuNS41IDAgMCAwLS41LS41aC0uNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg0LjVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aC41OWMuMDUuMTUuMTMuMy4yMy40My4xNi4yLjM0LjQuNTIuNTdINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOC4yIDYuM2ExIDEgMCAwIDEgMCAxLjRsLTEuODcgMS44OWMuMzUuOS4xNiAxLjk1LS41NiAyLjY4YTQuMTIgNC4xMiAwIDAgMS02LjE2LS40Ni41LjUgMCAwIDEgLjI1LS43OWMxLjA3LS4zMiAxLjM4LS42NSAxLjU1LS45My4wNy0uMTEuMTItLjIyLjE4LS4zNWwuMS0uMjNhMi41IDIuNSAwIDAgMSAzLjIyLTEuMzRMMTMuMyA4LjNhMSAxIDAgMCAxIDEuNDIgMFptLTMuMTQgMy4xNGExLjUgMS41IDAgMCAwLTIuMTIgMGMtLjE2LjE2LS4yNS4zMi0uMzQuNWwtLjA3LjE1YTIuNzUgMi43NSAwIDAgMS0xLjYzIDEuNjIgMy4xIDMuMSAwIDAgMCA0LjE2LS4xNSAxLjUgMS41IDAgMCAwIDAtMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJydXNoMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnJ1c2gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43N2EyIDIgMCAwIDAtLjQxLjMybC0yLjQ3IDIuNDZhMy41IDMuNSAwIDAgMC0zLjgyIDIuMDJsLS4xNS4zMmMtLjAzLjA4LS4wNS4xMS0uMS4xOGEuNDEuNDEgMCAwIDEtLjE0LjE0Yy0uMTEuMDgtLjM1LjItLjg0LjM1YTEuNSAxLjUgMCAwIDAtLjc1IDIuMzdjLjE2LjIuMzQuNC41Mi41N0g1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOS4yIDcuM2ExIDEgMCAwIDEgMCAxLjRsLTIuODcgMi44OWMuMzUuOS4xNiAxLjk1LS41NiAyLjY4YTQuMTIgNC4xMiAwIDAgMS02LjE2LS40Ni41LjUgMCAwIDEgLjI1LS43OWMxLjA3LS4zMiAxLjM4LS42NSAxLjU1LS45My4wNy0uMTEuMTItLjIyLjE4LS4zNWwuMS0uMjNhMi41IDIuNSAwIDAgMSAzLjIyLTEuMzRsMi44OC0yLjg4YTEgMSAwIDAgMSAxLjQyIDBabS00LjE0IDQuMTRhMS41IDEuNSAwIDAgMC0yLjEyIDBjLS4xNi4xNi0uMjUuMzItLjM0LjVsLS4wNy4xNWEyLjc1IDIuNzUgMCAwIDEtMS42MyAxLjYyIDMuMSAzLjEgMCAwIDAgNC4xNi0uMTUgMS41IDEuNSAwIDAgMCAwLTIuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCcnVzaDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCcnVzaDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43N2EyIDIgMCAwIDAtLjQxLjMybC0uNTkuNThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDEuNTljLjA1LjE1LjEzLjMuMjMuNDMuMTYuMi4zNC40LjUyLjU3SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm05LjIgNy4zYTEgMSAwIDAgMSAwIDEuNGwtMi44NyAyLjg5Yy4zNS45LjE2IDEuOTUtLjU2IDIuNjhhNC4xMiA0LjEyIDAgMCAxLTYuMTYtLjQ2LjUuNSAwIDAgMSAuMjUtLjc5YzEuMDctLjMyIDEuMzgtLjY1IDEuNTUtLjkzLjA3LS4xMS4xMi0uMjIuMTgtLjM1bC4xLS4yM2EyLjUgMi41IDAgMCAxIDMuMjItMS4zNGwyLjg4LTIuODhhMSAxIDAgMCAxIDEuNDIgMFptLTQuMTQgNC4xNGExLjUgMS41IDAgMCAwLTIuMTIgMGMtLjE2LjE2LS4yNS4zMi0uMzQuNWwtLjA3LjE1YTIuNzUgMi43NSAwIDAgMS0xLjYzIDEuNjIgMy4xIDMuMSAwIDAgMCA0LjE2LS4xNSAxLjUgMS41IDAgMCAwIDAtMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJydXNoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnJ1c2gyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1Ljk5IDRoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXY1Ljg4Yy0uMy4xLS42LjI4LS44NC41M0wxNi43IDE1LjFhNC4yNSA0LjI1IDAgMCAwLTUuMDQgMi45M2MtLjA0LjEtLjA2LjE2LS4xMi4yNy0uMDQuMDgtLjE5LjM5LTEuMzUuNzhBMS43NSAxLjc1IDAgMCAwIDkuNTMgMjJINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZjLjEzLTEuMTIgMS4wOC0yIDIuMjQtMmgzLjVjMS4xNiAwIDIuMTEuODggMi4yNCAyWm0tNi40OS4yNWMwIC40MS4zNC43NS43NS43NWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVhLjc1Ljc1IDAgMCAwLS43NS43NVptMTIuMTMgOS4xMmMuNS40OC41IDEuMjggMCAxLjc2bC0yLjg3IDIuODhhMy4yNSAzLjI1IDAgMCAxLS43MSAzLjUzIDUuMTQgNS4xNCAwIDAgMS00IDEuNDIgNS44MiA1LjgyIDAgMCAxLTMuODQtMS43Ljc1Ljc1IDAgMCAxIC4zLTEuMjNjMS4zOC0uNDYgMS43NC0uOTEgMS45Mi0xLjI1bC4yLS40My4xMy0uMzVBMy4yNSAzLjI1IDAgMCAxIDE3IDE2LjI0bDIuODgtMi44N2ExLjI1IDEuMjUgMCAwIDEgMS43NiAwWk0xNyAxOGExLjc1IDEuNzUgMCAwIDAtMi40OCAwIDEuNyAxLjcgMCAwIDAtLjM3LjU4bC0uMDguMmMtLjA4LjItLjE4LjQ3LS4zLjctLjMuNTQtLjc0IDEuMDItMS41MyAxLjQ0LjU3LjMgMS4yMy41IDEuOS41NCAxLjEuMDYgMi4xNS0uMjYgMi44NS0uOTguNy0uNy43LTEuOCAwLTIuNDhaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCcnVzaDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCcnVzaDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguMzggNS41SDYuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMy41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDIuNzdhMS43NSAxLjc1IDAgMCAwIC41IDEuNUg2LjI2QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMiAxLjA4LTIgMi4yNC0yaDMuNWMxLjE2IDAgMi4xMS44OCAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXY1Ljg4Yy0uMy4xLS42LjI4LS44NC41M2wtLjY2LjY2VjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuMTNjLS40LjYtMS4wOSAxLTEuODcgMWgtMy41Yy0uNzggMC0xLjQ3LS40LTEuODctMVpNOS41IDQuMjVjMCAuNDEuMzQuNzUuNzUuNzVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41YS43NS43NSAwIDAgMC0uNzUuNzVabTEyLjEzIDkuMTJjLjUuNDguNSAxLjI4IDAgMS43NmwtMi44NyAyLjg4YTMuMjUgMy4yNSAwIDAgMS0uNzEgMy41MyA1LjE0IDUuMTQgMCAwIDEtNCAxLjQyIDUuODIgNS44MiAwIDAgMS0zLjg0LTEuNy43NS43NSAwIDAgMSAuMy0xLjIzYzEuMzgtLjQ2IDEuNzQtLjkxIDEuOTItMS4yNWwuMi0uNDMuMTMtLjM1QTMuMjUgMy4yNSAwIDAgMSAxNyAxNi4yNGwyLjg4LTIuODdhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMFpNMTcgMThhMS43NSAxLjc1IDAgMCAwLTIuNDggMCAxLjcgMS43IDAgMCAwLS4zNy41OGwtLjA4LjJjLS4wOC4yLS4xOC40Ny0uMy43LS4zLjU0LS43NCAxLjAyLTEuNTMgMS40NC41Ny4zIDEuMjMuNSAxLjkuNTQgMS4xLjA2IDIuMTUtLjI2IDIuODUtLjk4LjctLjcuNy0xLjggMC0yLjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnJ1c2gyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCcnVzaDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTguNDUgNGgxLjhBMi43NSAyLjc1IDAgMCAxIDIzIDYuNzV2Ny43NWMtLjEuMDctLjE4LjE1LS4yNy4yM2wtMy40IDMuNGE0Ljc1IDQuNzUgMCAwIDAtNS40IDIuNjJsLS4xOC40Yy0uMDguMTYtLjEzLjI3LS4yMi40Mi0uMTYuMjYtLjUuNzItMS45NCAxLjNhMS43NSAxLjc1IDAgMCAwLS4yNSAzLjEzSDcuNzVBMi43NSAyLjc1IDAgMCAxIDUgMjMuMjVWNi43NUEyLjc1IDIuNzUgMCAwIDEgNy43NSA0aDEuOEEyLjUgMi41IDAgMCAxIDEyIDJoNGMxLjIgMCAyLjIyLjg2IDIuNDUgMlpNMTEgNC41YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAxIDAgMC0yaC00YTEgMSAwIDAgMC0xIDFabTE0LjU2IDEwLjk0YTEuNSAxLjUgMCAwIDEgMCAyLjEybC0zLjgyIDMuODJhMy43NSAzLjc1IDAgMCAxLS44NCA0LjAyIDUuNiA1LjYgMCAwIDEtMy42IDEuNjJjLTEuNTguMS0zLjQ0LS40LTUuNS0xLjkyYS43NS43NSAwIDAgMSAuMTctMS4zYzEuNTgtLjY0IDIuMS0xLjIyIDIuNC0xLjcuMTMtLjIuMi0uMzcuMy0uNThsLjE2LS4zMmEzLjc1IDMuNzUgMCAwIDEgNC43OS0xLjk0bDMuODItMy44MmExLjUgMS41IDAgMCAxIDIuMTIgMFpNMTMuNzggMjQuNmE2LjEgNi4xIDAgMCAwIDMuNDIuOTIgNC4xMSA0LjExIDAgMCAwIDIuNjQtMS4xOCAyLjI1IDIuMjUgMCAxIDAtMy42Ny0yLjQ3bC0uMS4yMmE0LjkyIDQuOTIgMCAwIDEtMi4zIDIuNTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCcnVzaDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCcnVzaDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTkuNyA1LjVINy43NmMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTYuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgyLjc1YTEuNzUgMS43NSAwIDAgMCAuODQgMS41SDcuNzVBMi43NSAyLjc1IDAgMCAxIDUgMjMuMjVWNi43NUEyLjc1IDIuNzUgMCAwIDEgNy43NSA0aDEuOEEyLjUgMi41IDAgMCAxIDEyIDJoNGMxLjIgMCAyLjIyLjg2IDIuNDUgMmgxLjhBMi43NSAyLjc1IDAgMCAxIDIzIDYuNzV2Ny43NWMtLjEuMDctLjE4LjE1LS4yNy4yM2wtMS4yMyAxLjIzVjYuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC0xLjk2QTIuNSAyLjUgMCAwIDEgMTYgN2gtNGEyLjUgMi41IDAgMCAxLTIuMy0xLjVabTEuMy0xYTEgMSAwIDAgMCAxIDFoNGExIDEgMCAxIDAgMC0yaC00YTEgMSAwIDAgMC0xIDFabTE0LjU2IDEwLjk0YTEuNSAxLjUgMCAwIDEgMCAyLjEybC0zLjgyIDMuODJhMy43NSAzLjc1IDAgMCAxLS44NCA0LjAyIDUuNiA1LjYgMCAwIDEtMy42IDEuNjJjLTEuNTguMS0zLjQ0LS40LTUuNS0xLjkyYS43NS43NSAwIDAgMSAuMTctMS4zYzEuNTgtLjY0IDIuMS0xLjIyIDIuNC0xLjcuMTMtLjIuMi0uMzcuMy0uNThsLjE2LS4zMmEzLjc1IDMuNzUgMCAwIDEgNC43OS0xLjk0bDMuODItMy44MmExLjUgMS41IDAgMCAxIDIuMTIgMFpNMTMuNzggMjQuNmE2LjEgNi4xIDAgMCAwIDMuNDIuOTIgNC4xMSA0LjExIDAgMCAwIDIuNjQtMS4xOCAyLjI1IDIuMjUgMCAxIDAtMy42Ny0yLjQ3bC0uMS4yMmE0LjkyIDQuOTIgMCAwIDEtMi4zIDIuNTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCcnVzaDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJydXNoMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMy41IDRoLTEuNjdBMyAzIDAgMCAwIDE5IDJoLTZhMyAzIDAgMCAwLTIuODMgMkg4LjVBMy41IDMuNSAwIDAgMCA1IDcuNXYxOUEzLjUgMy41IDAgMCAwIDguNSAzMGg1LjYxbC0uNzYtLjYyYTIuNSAyLjUgMCAwIDEgLjUzLTQuMTFjMS4wNi0uNTQgMS4zOC0uOTggMS42LTEuMzUuMTMtLjIuMi0uMzEuMjctLjQ1cy4xNS0uMy4zMi0uNTljLjI3LS40Ny42My0xLjAyIDEuMTktMS41OGE2IDYgMCAwIDEgNS40Ny0xLjYzbDMuMjItMy4yMmMuMzEtLjMuNjctLjU0IDEuMDUtLjdWNy41QTMuNSAzLjUgMCAwIDAgMjMuNSA0Wk0xMyA0aDZhMSAxIDAgMSAxIDAgMmgtNmExIDEgMCAxIDEgMC0yWm0xNi40OSAxMy41MWMuNjguNjkuNjggMS44IDAgMi40OGwtMy44MyAzLjgzYTQuNSA0LjUgMCAwIDEtLjk4IDQuOSA2LjcyIDYuNzIgMCAwIDEtNC4xNyAxLjljLTEuODYuMTUtNC0uNDYtNi4xNy0yLjM3YTEgMSAwIDAgMSAuMjEtMS42NCA0LjkzIDQuOTMgMCAwIDAgMi4yMS0xLjljLjE0LS4yMi4yMy0uMzkuMzMtLjU4bC4yOC0uNWMuMjMtLjQuNTItLjg0Ljk1LTEuMjdhNC41IDQuNSAwIDAgMSA0Ljg0LTFsMy44NS0zLjg1Yy42OS0uNjggMS44LS42OCAyLjQ4IDBaTTE2Ljc3IDI3LjZhNS42OSA1LjY5IDAgMCAwIDMuNTggMS4wNCA0LjcyIDQuNzIgMCAwIDAgMi45Mi0xLjMyIDIuNSAyLjUgMCAxIDAtMy41NC0zLjUzIDMuOSAzLjkgMCAwIDAtLjYzLjg1bC0uMi4zNS0uNDMuNzhhNi4yOSA2LjI5IDAgMCAxLTEuNyAxLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnJ1c2gzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnJ1c2gzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yMS44MyA0QTMgMyAwIDAgMCAxOSAyaC02YTMgMyAwIDAgMC0yLjgzIDJIOC41QTMuNSAzLjUgMCAwIDAgNSA3LjV2MTlBMy41IDMuNSAwIDAgMCA4LjUgMzBoNS42MWwtLjc2LS42MmEyLjUgMi41IDAgMCAxLS44LTEuMzhIOC41QTEuNSAxLjUgMCAwIDEgNyAyNi41di0xOUM3IDYuNjcgNy42NyA2IDguNSA2aDEuNjdBMyAzIDAgMCAwIDEzIDhoNmEzIDMgMCAwIDAgMi44My0yaDEuNjdjLjgzIDAgMS41LjY3IDEuNSAxLjV2OS45bC45NS0uOTVjLjMxLS4zLjY3LS41NCAxLjA1LS43VjcuNUEzLjUgMy41IDAgMCAwIDIzLjUgNGgtMS42N1pNMTIgNWExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMSAxIDAgMmgtNmExIDEgMCAwIDEtMS0xWm0xNy40OSAxMi41MWMuNjguNjkuNjggMS44IDAgMi40OGwtMy44MyAzLjgzYTQuNSA0LjUgMCAwIDEtLjk4IDQuOSA2LjcyIDYuNzIgMCAwIDEtNC4xNyAxLjljLTEuODYuMTUtNC0uNDYtNi4xNy0yLjM3YTEgMSAwIDAgMSAuMjEtMS42NCA0LjkzIDQuOTMgMCAwIDAgMi4yMS0xLjljLjE0LS4yMi4yMy0uMzkuMzMtLjU4bC4yOC0uNWMuMjMtLjQuNTItLjg0Ljk1LTEuMjdhNC41IDQuNSAwIDAgMSA0Ljg0LTFsMy44NS0zLjg1Yy42OS0uNjggMS44LS42OCAyLjQ4IDBaTTE2Ljc3IDI3LjZhNS42OSA1LjY5IDAgMCAwIDMuNTggMS4wNCA0LjcyIDQuNzIgMCAwIDAgMi45Mi0xLjMyIDIuNSAyLjUgMCAxIDAtMy41NC0zLjUzIDMuOSAzLjkgMCAwIDAtLjYzLjg1bC0uMi4zNS0uNDMuNzhhNi4yOSA2LjI5IDAgMCAxLTEuNyAxLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJ1bGxldExpc3QxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03IDcuNWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAtLjUuNVptMCAzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wk01LjUgOGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMCAzYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJ1bGxldExpc3QxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnVsbGV0TGlzdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcgNy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA4YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0wIDNhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabS0uNDEtOWMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01LjA5IDNINC41YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEwYS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJ1bGxldExpc3QyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjA5IDNINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM2MtLjY1IDAtMS4yLjQyLTEuNDEgMVpNOC41IDNoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMVpNOSA4LjVjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0tMS02YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTAgM2EuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjc1IDMuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJ1bGxldExpc3QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnVsbGV0TGlzdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkgOC41YzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptLTEtNmEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdEx0cjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJ1bGxldExpc3RMdHIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03IDcuNWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAtLjUuNVptMCAzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wk01LjUgOGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMCAzYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdEx0cjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0THRyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNyA3LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDhhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTAgM2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptLS40MS05Yy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEwYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTMuNXYtMTBDMyAyLjY3IDMuNjcgMiA0LjUgMmguNTlaTTYuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTUuMDkgM0g0LjVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtMTBhLjUuNSAwIDAgMC0uNS0uNWgtLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCdWxsZXRMaXN0THRyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnVsbGV0TGlzdEx0cjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNjLS42NSAwLTEuMi40Mi0xLjQxIDFaTTguNSAzaDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaTTkgOC41YzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptLTEtNmEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzLjc1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEJ1bGxldExpc3RMdHIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnVsbGV0TGlzdEx0cjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkgOC41YzAtLjI4LjIyLS41LjUtLjVIMTNhLjUuNSAwIDAgMSAwIDFIOS41YS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41SDEzYS41LjUgMCAwIDEgMCAxSDkuNWEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNUgxM2EuNS41IDAgMCAxIDAgMUg5LjVhLjUuNSAwIDAgMS0uNS0uNVptLTEtNmEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NSAzLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCdWxsZXRMaXN0UnRsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQnVsbGV0TGlzdFJ0bDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEwYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTMuNXYtMTBDMyAyLjY3IDMuNjcgMiA0LjUgMmguNTlaTTYuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTUgNy41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wm0wIDNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaTTEwLjUgOGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMCAzYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdFJ0bDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRCdWxsZXRMaXN0UnRsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNSA3LjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTAgM2MwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNMTAuNSA4YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0wIDNhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01LjA5IDNINC41YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEwYS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQnVsbGV0TGlzdFJ0bDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJ1bGxldExpc3RSdGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAyaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Yy4yLS41OC43Ni0xIDEuNDEtMVpNOCAzLjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVabTQuNzUgNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTAgM2EuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTEyIDE0LjVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptLTEtNmEuNS41IDAgMCAwLS41LS41SDdhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgLjUtLjVabTAgM2EuNS41IDAgMCAwLS41LS41SDdhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgLjUtLjVabTAgM2EuNS41IDAgMCAwLS41LS41SDdhLjUuNSAwIDAgMCAwIDFoMy41YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRCdWxsZXRMaXN0UnRsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEJ1bGxldExpc3RSdGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMi43NSA5LjI1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptMCAzYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNMTIgMTQuNWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWm0tMS02YS41LjUgMCAwIDAtLjUtLjVIN2EuNS41IDAgMCAwIDAgMWgzLjVhLjUuNSAwIDAgMCAuNS0uNVptMCAzYS41LjUgMCAwIDAtLjUtLjVIN2EuNS41IDAgMCAwIDAgMWgzLjVhLjUuNSAwIDAgMCAuNS0uNVptMCAzYS41LjUgMCAwIDAtLjUtLjVIN2EuNS41IDAgMCAwIDAgMWgzLjVhLjUuNSAwIDAgMCAuNS0uNVpNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA0aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYxMmEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENoZWNrbWFyazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZENoZWNrbWFyazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuN0E1LjUgNS41IDAgMCAwIDcuMjYgMTVINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOS41IDkuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDaGVja21hcmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ2hlY2ttYXJrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjMuNWEuNS41IDAgMCAwLS41LS41aC0uNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg0LjVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDIuMWMuMTguMzYuNC43LjY2IDFINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOS41IDkuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDaGVja21hcmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRDaGVja21hcmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43YTUuNSA1LjUgMCAwIDAtNS43NCA4LjhINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ2hlY2ttYXJrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZENoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43Yy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ2hlY2ttYXJrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ2hlY2ttYXJrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC4yNSAyaDMuNWMxLjE2IDAgMi4xMS44NyAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXY1LjI1QTYuNSA2LjUgMCAwIDAgMTIuODEgMjJINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZjLjEzLTEuMTMgMS4wOC0yIDIuMjQtMlptMy41IDEuNWgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wm05LjI1IDE0YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwbC0zLjY1IDMuNjQtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDaGVja21hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ2hlY2ttYXJrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuNzUgMmMxLjE2IDAgMi4xMS44OCAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXY1LjI1Yy0uNDctLjItLjk4LS4zNC0xLjUtLjQyVjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuMTNjLS40LjYtMS4wOSAxLTEuODcgMWgtMy41Yy0uNzggMC0xLjQ3LS40LTEuODctMUg2LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTMuNWMwIC40MS4zNC43NS43NS43NWg1LjQ4Yy4yOS41NS42NSAxLjA2IDEuMDggMS41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJoMy41Wm0yLjI0IDIuMS4wMS4xNVY0LjFabS0yLjI0LS42aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVabTkuMjUgMTRhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTIuMTUtMi4zNWEuNS41IDAgMCAwLS43IDBsLTMuNjUgMy42NC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNC00YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENsb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ2xvY2syMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUgOS41YS41LjUgMCAwIDAtMSAwVjExYzAgLjI4LjIyLjUuNS41aDEuNWEuNS41IDAgMCAwIDAtMWgtMXYtMVpNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS41IDhhNCA0IDAgMSAwLTggMCA0IDQgMCAwIDAgOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ2xvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ2xvY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC41IDkuNWEuNS41IDAgMCAwLTEgMFYxMWMwIC4yOC4yMi41LjUuNWgxLjVhLjUuNSAwIDAgMCAwLTFoLTF2LTFaTTEwIDE1YTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFptMC0xYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDbG9jazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZENsb2NrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMS4zOCAxMy42MmMwIC4zNC4yNy42My42Mi42M2gxLjM4YS42My42MyAwIDAgMCAwLTEuMjVoLS43NnYtMS42M2EuNjMuNjMgMCAwIDAtMS4yNCAwdjIuMjVaTTEzLjc1IDJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZhMi4yNSAyLjI1IDAgMCAwLTIuMjQtMlptLTMuNSAxLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVpNMTIgOC4yNWE0Ljc1IDQuNzUgMCAxIDEgMCA5LjUgNC43NSA0Ljc1IDAgMCAxIDAtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ2xvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ2xvY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi42MyAxM3YtMS42M2EuNjIuNjIgMCAxIDAtMS4yNiAwdjIuMjVhLjYyLjYyIDAgMCAwIC43LjYyaDEuMzFhLjYyLjYyIDAgMSAwIDAtMS4yNGgtLjc2Wm0tNS4zOCAwYTQuNzUgNC43NSAwIDEgMSA5LjUgMCA0Ljc1IDQuNzUgMCAwIDEtOS41IDBaTTEyIDkuNWEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN1ptNC01LjQyQTIuMjUgMi4yNSAwIDAgMCAxMy43NCAyaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djEzLjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoMTEuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2di4wOFptMCAuMDJ2LjE1LS4xNVptLTUuNzUgMi40aDMuNWMuNzggMCAxLjQ3LS40IDEuODctMWgyLjEzYy40MSAwIC43NS4zNC43NS43NXYxMy41YzAgLjQxLS4zNC43NS0uNzUuNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi4xM2MuNC42IDEuMDkgMSAxLjg3IDFabTAtM2gzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkQ29kZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZENvZGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0Yy0uMTcgMC0uMzQuMDItLjUuMDhhMS41IDEuNSAwIDAgMC0yLjk0LS41bC0uMzMgMS4xN0g4LjNhMS41IDEuNSAwIDAgMC0yLjQ0LS4yM2wtMS41IDEuNzVhMS41IDEuNSAwIDAgMCAwIDEuOTVsMS41IDEuNzVhMS41IDEuNSAwIDAgMCAxLjc3LjM5bC0uMDcuMjNjLS4wOS4zMS0uMDcuNjMuMDMuOTFINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptLS4zNCA4Ljc1IDEuMjIgMS40MmEuNS41IDAgMCAxLS43Ni42NWwtMS41LTEuNzVhLjUuNSAwIDAgMSAwLS42NWwxLjUtMS43NWEuNS41IDAgMCAxIC43Ni42NWwtMS4yMiAxLjQzWm01LjMzLTMuMTF2LS4wNWEuNS41IDAgMCAwLS45Ny0uMjNsLTIgN2EuNS41IDAgMCAwIC45Ny4yOGwyLTdabTEuMTggNS4yNGEuNS41IDAgMCAxLS4wNS0uNzFsMS4yMi0xLjQyLTEuMjItMS40M2EuNS41IDAgMSAxIC43Ni0uNjVsMS41IDEuNzVhLjUuNSAwIDAgMSAwIC42NWwtMS41IDEuNzVhLjUuNSAwIDAgMS0uNy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENvZGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ29kZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0Yy0uMTcgMC0uMzQuMDItLjUuMDhhMS41IDEuNSAwIDAgMC0uNS0xLjJWMy41YS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDQuNWEuNS41IDAgMCAwLS41LjV2MTBjMCAuMjguMjIuNS41LjVoMy4wOWwtLjAzLjA5Yy0uMDkuMzEtLjA3LjYzLjAzLjkxSDQuNUExLjUgMS41IDAgMCAxIDMgMTMuNXYtMTBDMyAyLjY3IDMuNjcgMiA0LjUgMmguNTlaTTYuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTIuODcgMTIuODRhLjUuNSAwIDAgMS0uODItLjEzLjUuNSAwIDAgMS0uMDMtLjM1bDItN2EuNS41IDAgMSAxIC45Ny4yOGwtMiA3YS41LjUgMCAwIDEtLjEyLjJaTTcuMzggOS4zMmEuNS41IDAgMSAwLS43Ni0uNjVsLTEuNSAxLjc1YS41LjUgMCAwIDAgMCAuNjVsMS41IDEuNzVhLjUuNSAwIDEgMCAuNzYtLjY1bC0xLjIyLTEuNDIgMS4yMi0xLjQzWm01LjMgMy41NmEuNS41IDAgMCAxLS4wNi0uNzFsMS4yMi0xLjQyLTEuMjItMS40M2EuNS41IDAgMSAxIC43Ni0uNjVsMS41IDEuNzVhLjUuNSAwIDAgMSAwIC42NWwtMS41IDEuNzVhLjUuNSAwIDAgMS0uNy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENvZGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRDb2RlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djUuODhhMS41IDEuNSAwIDAgMC0yLjQ0LjcxbC0uNCAxLjQxaC0uNzRhMS41IDEuNSAwIDAgMC0yLjU1LS40OGwtMS41IDEuNzVhMS41IDEuNSAwIDAgMCAwIDEuOTVsMS41IDEuNzVjLjI5LjM1LjcuNTMgMS4xMy41M0g1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMi44OCAxMC4zMmEuNS41IDAgMSAwLS43Ni0uNjVsLTEuNSAxLjc1YS41LjUgMCAwIDAgMCAuNjVsMS41IDEuNzVhLjUuNSAwIDAgMCAuNy4wNi41LjUgMCAwIDAgLjA2LS43MWwtMS4yMi0xLjQyIDEuMjItMS40M1ptNC4xLTEuNjhhLjUuNSAwIDEgMC0uOTYtLjI4bC0yIDdhLjUuNSAwIDEgMCAuOTcuMjhsMi03Wm0xLjIgNS4yNGEuNS41IDAgMCAxLS4wNi0uNzFsMS4yMi0xLjQyLTEuMjItMS40M2EuNS41IDAgMCAxIC43Ni0uNjVsMS41IDEuNzVhLjUuNSAwIDAgMSAwIC42NWwtMS41IDEuNzVhLjUuNSAwIDAgMS0uNy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZENvZGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ29kZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NS44OGExLjUgMS41IDAgMCAwLTEtLjM4VjQuNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFINS41YS41LjUgMCAwIDAtLjUuNXYxMmMwIC4yOC4yMi41LjUuNWgzLjk2bC40LjQ3Yy4zLjM1LjcyLjUzIDEuMTQuNTNINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTYuOTkgOC42NGEuNS41IDAgMSAwLS45Ny0uMjhsLTIgN2EuNS41IDAgMSAwIC45Ny4yOGwyLTdabS00LjExIDEuNjhhLjUuNSAwIDEgMC0uNzYtLjY1bC0xLjUgMS43NWEuNS41IDAgMCAwIDAgLjY1bDEuNSAxLjc1YS41LjUgMCAxIDAgLjc2LS42NWwtMS4yMi0xLjQyIDEuMjItMS40M1ptNS4zIDMuNTZhLjUuNSAwIDAgMS0uMDYtLjcxbDEuMjItMS40Mi0xLjIyLTEuNDNhLjUuNSAwIDAgMSAuNzYtLjY1bDEuNSAxLjc1YS41LjUgMCAwIDEgMCAuNjVsLTEuNSAxLjc1YS41LjUgMCAwIDEtLjcuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDb2RlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkQ29kZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMjUgMmgzLjVjMS4xNiAwIDIuMTEuODcgMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2Ny40NmExLjc1IDEuNzUgMCAwIDAtMy40My0uNDVMMTYuMDYgMTVoLS43M2ExLjc1IDEuNzUgMCAwIDAtMi44OS0uNDFsLTIgMi4yNWExLjc1IDEuNzUgMCAwIDAgMCAyLjMybDIgMi4yNWMuMzUuMzkuODIuNTkgMS4zLjU5SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJabTMuNSAxLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNVptLTIuNTYgMTUgMiAyLjI1YS43NS43NSAwIDEgMCAxLjEyLTFMMTIuNzUgMThsMS41Ni0xLjc1YS43NS43NSAwIDAgMC0xLjEyLTFsLTIgMi4yNWEuNzUuNzUgMCAwIDAgMCAxWm02LjM0LTQuOTZhLjc1Ljc1IDAgMCAxIDEuNDQuNDJsLTIuNSA4LjVhLjc1Ljc1IDAgMSAxLTEuNDQtLjQybDIuNS04LjVabTIuMjIgNy4yN2EuNzUuNzUgMCAwIDEtLjA2LTEuMDZMMjEuMjUgMThsLTEuNTYtMS43NWEuNzUuNzUgMCAwIDEgMS4xMi0xbDIgMi4yNWMuMjUuMjkuMjUuNzEgMCAxbC0yIDIuMjVhLjc1Ljc1IDAgMCAxLTEuMDYuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRDb2RlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZENvZGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy43NSAyYzEuMTYgMCAyLjExLjg4IDIuMjQgMmgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1djcuNDZhMS43NSAxLjc1IDAgMCAwLTEuNS0xLjdWNi4yNmEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi4xM2MtLjQuNi0xLjA5IDEtMS44NyAxaC0zLjVjLS43OCAwLTEuNDctLjQtMS44Ny0xSDYuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMy41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuMzhsLjgxLjkxYy4zNS4zOS44Mi41OSAxLjMuNTlINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZjLjEzLTEuMTMgMS4wOC0yIDIuMjQtMmgzLjVabTIuMjQgMi4xLjAxLjE1VjQuMVptLTIuMjQtLjZoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNVpNMTkgMTMuNzVsLS4wMy4yMS0yLjUgOC41YS43NS43NSAwIDEgMS0xLjQ0LS40MmwyLjUtOC41YS43NS43NSAwIDAgMSAxLjQ3LjIxWm0tNy44MSA0Ljc1YS43NS43NSAwIDAgMSAwLTFsMi0yLjI1YS43NS43NSAwIDAgMSAxLjEyIDFMMTIuNzUgMThsMS41NiAxLjc1YS43NS43NSAwIDAgMS0xLjEyIDFsLTItMi4yNVptOC41NiAyLjMxYS43NS43NSAwIDAgMS0uMDYtMS4wNkwyMS4yNSAxOGwtMS41Ni0xLjc1YS43NS43NSAwIDAgMSAxLjEyLTFsMiAyLjI1Yy4yNS4yOS4yNS43MSAwIDFsLTIgMi4yNWEuNzUuNzUgMCAwIDEtMS4wNi4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZERhdGFCYXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXRhQmFyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNSA4LjV2Mi41YS41LjUgMCAwIDEtMSAwVjEyYS41LjUgMCAwIDEgMSAwWm0tMy0zYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVaTTggNy41djdhLjUuNSAwIDAgMS0xIDB2LTdhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmREYXRhQmFyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZERhdGFCYXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDRoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djEyYS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41Wm03LjUgOGEuNS41IDAgMCAwLTEgMHYyLjVhLjUuNSAwIDAgMCAxIDBWMTJabS0zLTNjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNOCA3LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZERhdGFCYXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXRhQmFyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC4yNSAzLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVptMy41LTEuNWgtMy41Yy0xLjE2IDAtMi4xMS44Ny0yLjI0IDJINi4yNUM1LjAxIDQgNCA1IDQgNi4yNXYxMy41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDExLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNGgtMS43NmEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yWm0yLjc1IDExLjc1djMuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuNWEuNzUuNzUgMCAwIDEgMS41IDBaTTEyIDExYy40MSAwIC43NS4zNC43NS43NXY1LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNOSA5Ljc1djcuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTcuNWEuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmREYXRhQmFyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZERhdGFCYXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS45OSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZabTAgLjEuMDEuMTVWNC4xWm0tNS43NCAyLjRoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djEzLjVjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMVptMC0zaDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTYuMjUgMTAuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjNhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zWk0xMiAxMWMuNDEgMCAuNzUuMzQuNzUuNzV2NS41YS43NS43NSAwIDAgMS0xLjUgMHYtNS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTkgOS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Ny41YS43NS43NSAwIDAgMCAxLjUgMHYtNy41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRGF0YUJhcjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZERhdGFCYXIzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIzLjUgNGgtMS42N0EzIDMgMCAwIDAgMTkgMmgtNmEzIDMgMCAwIDAtMi44MyAySDguNUEzLjUgMy41IDAgMCAwIDUgNy41djE5QTMuNSAzLjUgMCAwIDAgOC41IDMwaDE1YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtMTlBMy41IDMuNSAwIDAgMCAyMy41IDRaTTEzIDRoNmExIDEgMCAxIDEgMCAyaC02YTEgMSAwIDEgMSAwLTJabS0yLjUgOGMuODMgMCAxLjUuNjcgMS41IDEuNXY5YTEuNSAxLjUgMCAwIDEtMyAwdi05YzAtLjgzLjY3LTEuNSAxLjUtMS41Wm00IDMuNWExLjUgMS41IDAgMCAxIDMgMHY3YTEuNSAxLjUgMCAwIDEtMyAwdi03Wm03IDIuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzYTEuNSAxLjUgMCAwIDEtMyAwdi0zYzAtLjgzLjY3LTEuNSAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRGF0YUJhcjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXRhQmFyMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTAuNSAxMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2OWExLjUgMS41IDAgMCAwIDMgMHYtOWMwLS44My0uNjctMS41LTEuNS0xLjVabTQgMy41YTEuNSAxLjUgMCAwIDEgMyAwdjdhMS41IDEuNSAwIDAgMS0zIDB2LTdabTcgMi41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYzYTEuNSAxLjUgMCAwIDAgMyAwdi0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNMTkgMmEzIDMgMCAwIDEgMi44MyAyaDEuNjdBMy41IDMuNSAwIDAgMSAyNyA3LjV2MTlhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0xNUEzLjUgMy41IDAgMCAxIDUgMjYuNXYtMTlBMy41IDMuNSAwIDAgMSA4LjUgNGgxLjY3QTMgMyAwIDAgMSAxMyAyaDZabS02IDJhMSAxIDAgMSAwIDAgMmg2YTEgMSAwIDEgMCAwLTJoLTZaTTguNSA2QzcuNjcgNiA3IDYuNjcgNyA3LjV2MTljMCAuODMuNjcgMS41IDEuNSAxLjVoMTVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNjdBMyAzIDAgMCAxIDE5IDhoLTZhMyAzIDAgMCAxLTIuODMtMkg4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmREYXkxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgOWg0djJINlY5Wm0tLjkxLTdINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zYy0uNjUgMC0xLjIuNDItMS40MSAxWk02LjUgMmgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xWk01IDYuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpNNSA5YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZERheTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDYuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpNNSA5YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWOVptMSAwdjJoNFY5SDZabS0uOTEtN2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01LjA5IDNINC41YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEwYS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRGF5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRGF5MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04IDExaDR2M0g4di0zWm0tLjkxLThjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03IDcuNWMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVpNNyAxMXYzYTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFIOGExIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRGF5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZERheTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcgNy41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk03IDExYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LTNabTEgMHYzaDR2LTNIOFptLS45MS04Yy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNy4wOSA0SDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmREYXkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmREYXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuNSAxMy43NWMwLS4xNC4xMS0uMjUuMjUtLjI1aDQuNWMuMTQgMCAuMjUuMTEuMjUuMjV2Mi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTQuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMi41Wk0xMC4yNSAyaDMuNWMxLjE2IDAgMi4xMS44NyAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXYxMy41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJabTMuNSAxLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNVpNOCA5Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTYuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk05Ljc1IDEyQzguNzggMTIgOCAxMi43OCA4IDEzLjc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg0LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0yLjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmREYXkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRGF5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOCA5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41QS43NS43NSAwIDAgMSA4IDkuNzVaTTkuNzUgMTJDOC43OCAxMiA4IDEyLjc4IDggMTMuNzV2Mi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDQuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTIuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTQuNVptLS4yNSAxLjc1YzAtLjE0LjExLS4yNS4yNS0uMjVoNC41Yy4xNCAwIC4yNS4xMS4yNS4yNXYyLjVjMCAuMTQtLjExLjI1LS4yNS4yNWgtNC41YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0yLjVaTTEzLjc1IDJjMS4xNiAwIDIuMTEuODggMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2MTMuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMyAxLjA4LTIgMi4yNC0yaDMuNVptMi4yNCAyLjEuMDEuMTVWNC4xWm0tMi4yNCAyLjRoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTEuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVY2LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFabTAtM2gtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRWRpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEVkaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41SDhsLjA2LS4zNS4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OGw0LjgzLTQuODNjLjUzLS41MyAxLjIxLS44IDEuOS0uODRWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTEuOTggMTEuODggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRFZGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEVkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNUg4bC4wNi0uMzUuMTYtLjY1SDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXY0LjczYy4zMi0uMTQuNjYtLjIxIDEtLjIzVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0xLjk4IDExLjg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRXJyb3IxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRFcnJvcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuMUE1LjUgNS41IDAgMCAwIDcuMzQgMTVINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOC41IDguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTAuNSA4YS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEVycm9yMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEVycm9yMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djIuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFYzLjVhLjUuNSAwIDAgMC0uNS0uNWgtLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFINC41YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWgxLjc2Yy4zMS4zOC42Ny43MiAxLjA4IDFINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMEMzIDIuNjcgMy42NyAyIDQuNSAyaC41OVpNNi41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOC41IDguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTAuNSA4YS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEVycm9yMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRXJyb3IyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43YTUuNSA1LjUgMCAwIDAtNS43NCA4LjhINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTE0LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkRXJyb3IyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRXJyb3IyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djQuN2MtLjMyLS4wOC0uNjYtLjE1LTEtLjE4VjQuNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFINS41YS41LjUgMCAwIDAtLjUuNXYxMmMwIC4yOC4yMi41LjUuNWg0LjFjLjE4LjM2LjQuNy42NiAxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDEyYS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTAgNS4xM2EuNjIuNjIgMCAxIDAgMC0xLjI1LjYyLjYyIDAgMCAwIDAgMS4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEVycm9yMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkRXJyb3IyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjI1IDJoMy41YzEuMTYgMCAyLjExLjg3IDIuMjQgMmgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1djUuMjVBNi41IDYuNSAwIDAgMCAxMi44MSAyMkg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMyAxLjA4LTIgMi4yNC0yWm0zLjUgMS41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVabTkuMjUgMTRhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFpNMTcuNSAxNGEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLS41LS41Wm0wIDcuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRFcnJvcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRFcnJvcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjc1IDJjMS4xNiAwIDIuMTEuODggMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2NS4yNWMtLjQ3LS4yLS45OC0uMzQtMS41LS40MlY2LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDEuMzQuNzUuNzUuNzVoNS40OGMuMjkuNTUuNjUgMS4wNiAxLjA4IDEuNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMyAxLjA4LTIgMi4yNC0yaDMuNVptMi4yNCAyLjEuMDEuMTVWNC4xWm0tMi4yNC0uNmgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wm05LjI1IDE0YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBaTTE3LjUgMTRhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0uNS0uNVptMCA3LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkSGVhcnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRIZWFydDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNVY5Yy0uNy4wMy0xLjQuMjUtMiAuNjZhMy44NSAzLjg1IDAgMCAwLTQuODcgNS45MUwxMS41NSAxOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS4xNSAxNS42OGEuNS41IDAgMCAwIC43IDBsMy44Mi0zLjgxYTIuODUgMi44NSAwIDEgMC00LjAzLTQuMDRsLS4xNC4xNC0uMTMtLjE0YTIuODUgMi44NSAwIDEgMC00LjA0IDQuMDRsMy44MiAzLjgxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkSGVhcnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkSGVhcnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjljLS4zNC4wMi0uNjcuMDctMSAuMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDUuMDVsMSAxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0xLjMzIDcuODNhMi44NSAyLjg1IDAgMCAxIDQuMDQgMGwuMTMuMTQuMTQtLjE0YTIuODUgMi44NSAwIDAgMSA0LjAzIDQuMDRsLTMuODEgMy44MWEuNS41IDAgMCAxLS43MSAwbC0zLjgyLTMuODFhMi44NSAyLjg1IDAgMCAxIDAtNC4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEhlYXJ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkSGVhcnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjI1IDJoMy41YzEuMTYgMCAyLjExLjg3IDIuMjQgMmgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1djQuOThhNC40NiA0LjQ2IDAgMCAwLTIuOTkuNzMgNC40NyA0LjQ3IDAgMCAwLTUuNjQgNi44N0wxNC41NCAyMkg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMyAxLjA4LTIgMi4yNC0yWm0zLjUgMS41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVabTMuMjYgMTkuMjVhLjc1Ljc1IDAgMCAxLS41My0uMjJsLTQuNC00LjRhMy40NyAzLjQ3IDAgMSAxIDQuOS00LjkxbC4wMy4wNC4wNC0uMDRhMy40NyAzLjQ3IDAgMSAxIDQuOSA0LjlsLTQuNCA0LjQxYS43NS43NSAwIDAgMS0uNTQuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRIZWFydDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRIZWFydDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIwIDYuMjV2NC45OGMtLjUtLjA1LTEtLjAzLTEuNS4wOVY2LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDEuMzQuNzUuNzUuNzVoNi43OWwxLjUgMS41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJoMy41YzEuMTYgMCAyLjExLjg3IDIuMjQgMmgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1Wk0xNiA0LjF2LjE1LS4xNVptLTUuNzUtLjZhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVptNi4yMyAxOS4wM2EuNzUuNzUgMCAwIDAgMS4wNiAwbDQuNDEtNC40YTMuNDcgMy40NyAwIDEgMC00LjktNC45MWwtLjA0LjA0LS4wMy0uMDRhMy40NyAzLjQ3IDAgMSAwLTQuOSA0LjlsNC40IDQuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRJbWFnZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZEltYWdlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjloLTMuNUEzLjUgMy41IDAgMCAwIDkgMTIuNXY0YzAgLjU0LjEyIDEuMDUuMzQgMS41SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0xLjUgOS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTMuMDMgMy4wM2MtLjI2LS40LS40MS0uODctLjQxLTEuMzh2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41IDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMGwtMy4wMyAzLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkSW1hZ2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkSW1hZ2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjloLTFWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDMuNTRjLjA1LjM1LjE1LjY5LjMgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMS41IDkuNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0zLjAzIDMuMDNjLS4yNi0uNC0uNDEtLjg3LS40MS0xLjM4di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBsLTMuMDMgMy4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZEltYWdlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkSW1hZ2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjc1IDMuNWgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wk0xMC4yNSAyaDMuNWMxLjE2IDAgMi4xMS44NyAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNVYxMWgtNWE0IDQgMCAwIDAtNCA0djVjMCAuNzMuMiAxLjQxLjU0IDJINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZjLjEzLTEuMTMgMS4wOC0yIDIuMjQtMlpNMTUgMTJhMyAzIDAgMCAwLTMgM3Y1YzAgLjU2LjE1IDEuMDguNDIgMS41MmwzLjQ5LTMuNDljLjg4LS44OCAyLjMtLjg4IDMuMTggMGwzLjUgMy41Yy4yNi0uNDUuNDEtLjk3LjQxLTEuNTN2LTVhMyAzIDAgMCAwLTMtM2gtNVptMCAxMWMtLjU2IDAtMS4wOC0uMTUtMS41Mi0uNDJsMy40OS0zLjQ5Yy4zLS4zLjc3LS4zIDEuMDYgMGwzLjUgMy41Yy0uNDUuMjYtLjk3LjQxLTEuNTMuNDFoLTVabTUtN2ExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRJbWFnZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRJbWFnZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjc1IDJjMS4xNiAwIDIuMTEuODggMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjVWMTFoLTEuNVY2LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDEuMzQuNzUuNzUuNzVoNC43OGMuMDcuNTQuMjQgMS4wNS41IDEuNUg2LjI2QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMyAxLjA4LTIgMi4yNC0yaDMuNVptMi4yNCAyLjEuMDEuMTVWNC4xWm0tMi4yNC0uNmgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wk0xNSAxMmEzIDMgMCAwIDAtMyAzdjVjMCAuNTYuMTUgMS4wOC40MiAxLjUybDMuNDktMy40OWMuODgtLjg4IDIuMy0uODggMy4xOCAwbDMuNSAzLjVjLjI2LS40NS40MS0uOTcuNDEtMS41M3YtNWEzIDMgMCAwIDAtMy0zaC01Wm0wIDExYy0uNTYgMC0xLjA4LS4xNS0xLjUyLS40MmwzLjQ5LTMuNDljLjMtLjMuNzctLjMgMS4wNiAwbDMuNSAzLjVjLS40NS4yNi0uOTcuNDEtMS41My40MWgtNVptNS03YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExldHRlcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZExldHRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djMuNzJsLS4xMy0uM2ExLjUgMS41IDAgMCAwLTIuNzYgMGwtMi4xIDQuOWExLjUgMS41IDAgMCAwLS4wOC4xOGwtLjgxIDEuOTFBMS41IDEuNSAwIDAgMCA3LjA4IDE1SDQuNUExLjUgMS41IDAgMCAxIDMgMTMuNXYtMTBDMyAyLjY3IDMuNjcgMiA0LjUgMmguNTlaTTYuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCIsIFwiTTExLjQ5IDdhLjUuNSAwIDAgMC0uNDYuM2wtMi4xMSA0Ljk1YS41LjUgMCAwIDAtLjA1LjFsLS44MyAxLjk2YS41LjUgMCAxIDAgLjkyLjRMOS42OCAxM2gzLjYzbC43MyAxLjdhLjUuNSAwIDAgMCAuOTEtLjRsLS44My0xLjk0YS41LjUgMCAwIDAtLjA1LS4xTDExLjk1IDcuM2EuNS41IDAgMCAwLS40Ni0uM20wIDEuNzZMMTIuODggMTJIMTAuMWwxLjM4LTMuMjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRMZXR0ZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGV0dGVyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djMuNzJsLS4xMy0uM2ExLjUgMS41IDAgMCAwLS44Ny0uODNWMy41YS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDQuNWEuNS41IDAgMCAwLS41LjV2MTBjMCAuMjguMjIuNS41LjVoMi41OGExLjUgMS41IDAgMCAwIDAgMUg0LjVBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU5Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm01LjQ1IDUuM2EuNS41IDAgMCAwLS45MiAwbC0yLjExIDQuOTVhLjUuNSAwIDAgMC0uMDUuMWwtLjgzIDEuOTZhLjUuNSAwIDEgMCAuOTIuNEw5LjY4IDEzaDMuNjNsLjczIDEuN2EuNS41IDAgMCAwIC45MS0uNGwtLjgzLTEuOTRhLjUuNSAwIDAgMC0uMDUtLjFMMTEuOTUgNy4zWm0uOTMgNC43SDEwLjFsMS4zOC0zLjIzTDEyLjg4IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTGV0dGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGV0dGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgzLjU5YTEuNSAxLjUgMCAwIDEgLjA0LTEuMWwzLjUtOGExLjUgMS41IDAgMCAxIDIuNzQgMGwuNjMgMS40NFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWm0zIDFhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFoM1ptMi45NSA2LjNhLjUuNSAwIDAgMC0uOTEgMGwtMy41IDhhLjUuNSAwIDEgMCAuOTIuNGwxLjE4LTIuN2gzLjcybDEuMTggMi43YS41LjUgMCAwIDAgLjkyLS40bC0zLjUtOFptLjk3IDQuN2gtMi44NEwxNCAxMC43NSAxNS40MiAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExldHRlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRMZXR0ZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djUuODRsLS42My0xLjQ0YTEuNSAxLjUgMCAwIDAtLjM3LS41MVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoMy41OWExLjUgMS41IDAgMCAwIDAgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS45NSA2LjNhLjUuNSAwIDAgMC0uOTEgMGwtMy41IDhhLjUuNSAwIDAgMCAuOTIuNGwxLjE4LTIuN2gzLjcybDEuMTggMi43YS41LjUgMCAwIDAgLjkyLS40bC0zLjUtOFptLjk3IDQuN2gtMi44NUwxNCAxMC43NSAxNS40MiAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExldHRlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZExldHRlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMjUgMy41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTMuNS0xLjVoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmg0LjkyYTEuNzUgMS43NSAwIDAgMS0uMDItMS40NmwxLjU1LTMuNDcuMDMtLjA3IDIuNjctNS45NmExLjc1IDEuNzUgMCAwIDEgMy4yIDBsMS40IDMuMTNWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNGgtMS43NmEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yWm0zLjkzIDkuNDRhLjc1Ljc1IDAgMCAwLTEuMzYgMGwtMi42OCA1Ljk5LS4wMi4wMy0xLjU1IDMuNDhhLjc1Ljc1IDAgMSAwIDEuMzYuNjJsMS4zNy0zLjA2aDQuNGwxLjM3IDMuMDZhLjc1Ljc1IDAgMSAwIDEuMzYtLjYybC0xLjU1LTMuNDgtLjAyLS4wMy0yLjY4LTUuOTlaTTE3IDEzLjYgMTguNTMgMTdoLTMuMDZMMTcgMTMuNTlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRMZXR0ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGV0dGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuOTkgNGEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djEzLjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoNC45MmExLjc1IDEuNzUgMCAwIDEtLjAyLTEuNDZsLjAyLS4wNEg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMWgzLjVjLjc4IDAgMS40Ny0uNCAxLjg3LTFoMi4xM2MuNDEgMCAuNzUuMzQuNzUuNzV2NC42bC4xLjE5IDEuNCAzLjEzVjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZabTAgLjEuMDEuMTVWNC4xWm0tNS43NC0uNmgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wm03LjQzIDcuOTRhLjc1Ljc1IDAgMCAwLTEuMzYgMGwtMi42OCA1Ljk5LS4wMi4wMy0xLjU1IDMuNDhhLjc1Ljc1IDAgMSAwIDEuMzYuNjJsMS4zNy0zLjA2aDQuNGwxLjM3IDMuMDZhLjc1Ljc1IDAgMSAwIDEuMzYtLjYybC0xLjU1LTMuNDgtLjAyLS4wMy0yLjY4LTUuOTlaTTE3IDEzLjYgMTguNTMgMTdoLTMuMDZMMTcgMTMuNTlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRMaW5rMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGluazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjdIOC41YTQuNSA0LjUgMCAwIDAtMi44MyA4SDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtMTBDMiAyLjY3IDIuNjcgMiAzLjUgMmguNTlaTTUuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTkuNSA5LjVBMy41IDMuNSAwIDAgMCAxMS41IDhoLS4wOWEuNS41IDAgMCAwIC4wOSAxaC4xNmEyLjUgMi41IDAgMCAxLS4xNiA1bC0uMS4wMWEuNS41IDAgMCAwIC4xIDFWMTVoLjJhMy41IDMuNSAwIDAgMCAzLjMtMy41Wm0tNi0zYS41LjUgMCAwIDAtLjUtLjVoLS4yYTMuNSAzLjUgMCAwIDAgLjIgN2guMDlhLjUuNSAwIDAgMC0uMDktMWgtLjE2YTIuNSAyLjUgMCAwIDEgLjE2LTVoLjA5QS41LjUgMCAwIDAgOSA4LjVabTIuNSAyLjVIOC40MWEuNS41IDAgMCAwIC4wOSAxaDMuMDlhLjUuNSAwIDAgMC0uMDktMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExpbmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGluazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuMDkgMmMuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNVY3aC0xVjMuNWEuNS41IDAgMCAwLS41LS41aC0uNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUgzLjVhLjUuNSAwIDAgMC0uNS41djEwYzAgLjI4LjIyLjUuNS41aDEuMjZjLjI1LjM4LjU2LjcxLjkxIDFIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di0xMEMyIDIuNjcgMi42NyAyIDMuNSAyaC41OVpNNS41IDJhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOS41IDkuNUEzLjUgMy41IDAgMCAwIDExLjUgOGgtLjA5YS41LjUgMCAwIDAgLjA5IDFoLjE2YTIuNSAyLjUgMCAwIDEtLjE2IDVsLS4xLjAxYS41LjUgMCAwIDAgLjEgMVYxNWguMmEzLjUgMy41IDAgMCAwIDMuMy0zLjVabS02LTNhLjUuNSAwIDAgMC0uNS0uNWgtLjJhMy41IDMuNSAwIDAgMCAuMiA3aC4wOWEuNS41IDAgMCAwLS4wOS0xaC0uMTZhMi41IDIuNSAwIDAgMSAuMTYtNWguMDlBLjUuNSAwIDAgMCA5IDguNVptMi41IDIuNUg4LjQxYS41LjUgMCAwIDAgLjA5IDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTGluazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZExpbmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjVWMTFoLTMuNWE0LjUgNC41IDAgMCAwLTMuNzQgN0g1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTUuNWEzLjUgMy41IDAgMCAwLTMuNS0zLjVoLS4wOWEuNS41IDAgMCAwIC4wOSAxaC4xNmEyLjUgMi41IDAgMCAxLS4xNiA1bC0uMS4wMWEuNS41IDAgMCAwIC4xIDFWMTloLjJhMy41IDMuNSAwIDAgMCAzLjMtMy41Wm0tNi0zYS41LjUgMCAwIDAtLjUtLjVoLS4yYTMuNSAzLjUgMCAwIDAgLjIgN2guMDlhLjUuNSAwIDAgMC0uMDktMWgtLjE2YTIuNSAyLjUgMCAwIDEgLjE2LTVoLjA5YS41LjUgMCAwIDAgLjQxLS41Wm0yLjUgMi41aC0zLjA5YS41LjUgMCAwIDAgLjA5IDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTGluazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRMaW5rMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNVYxMWgtMVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoMi43NmMuMTIuMzYuMy43LjUgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTkgMTUuNWEzLjUgMy41IDAgMCAwLTMuNS0zLjVoLS4wOWEuNS41IDAgMCAwIC4wOSAxaC4xNmEyLjUgMi41IDAgMCAxLS4xNiA1bC0uMS4wMWEuNS41IDAgMCAwIC4xIDFWMTloLjJhMy41IDMuNSAwIDAgMCAzLjMtMy41Wm0tNi0zYS41LjUgMCAwIDAtLjUtLjVoLS4yYTMuNSAzLjUgMCAwIDAgLjIgN2guMDlhLjUuNSAwIDAgMC0uMDktMWgtLjE2YTIuNSAyLjUgMCAwIDEgLjE2LTVoLjA5YS41LjUgMCAwIDAgLjQxLS41Wm0yLjUgMi41aC0zLjA5YS41LjUgMCAwIDAgLjA5IDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTGluazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZExpbmsyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjI1IDJoMy41YzEuMTYgMCAyLjExLjg3IDIuMjQgMmgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1VjE0aC01YTUgNSAwIDAgMC00IDhINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZjLjEzLTEuMTMgMS4wOC0yIDIuMjQtMlptMy41IDEuNWgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wk0yMyAxOWE0IDQgMCAwIDAtNC00aC0uMWEuNzUuNzUgMCAwIDAgLjEgMS41aC4xNmEyLjUgMi41IDAgMCAxLS4xNiA1aC0uMUEuNzUuNzUgMCAwIDAgMTkgMjNoLjJhNCA0IDAgMCAwIDMuOC00Wm0tNy4yNS0zLjI1QS43NS43NSAwIDAgMCAxNSAxNWgtLjJhNCA0IDAgMCAwIC4yIDhoLjFhLjc1Ljc1IDAgMCAwLS4xLTEuNWgtLjE2YTIuNSAyLjUgMCAwIDEgLjE2LTVoLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVabTMgMi41aC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgzLjZhLjc1Ljc1IDAgMCAwLS4xLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZExpbmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTGluazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1Ljk5IDRhMi4yNSAyLjI1IDAgMCAwLTIuMjQtMmgtMy41Yy0xLjE2IDAtMi4xMS44Ny0yLjI0IDJINi4yNUM1LjAxIDQgNCA1IDQgNi4yNXYxMy41QzQgMjAuOTkgNSAyMiA2LjI1IDIySDExYy0uMzQtLjQ1LS42LS45NS0uNzctMS41SDYuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuMTNjLjQuNiAxLjA5IDEgMS44NyAxaDMuNWMuNzggMCAxLjQ2LS40IDEuODctMWgyLjEzYy40MSAwIC43NS4zNC43NS43NVYxNEgyMFY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2Wm0tNS43NC0uNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xOSAxNWE0IDQgMCAwIDEgLjIgOEgxOWEuNzUuNzUgMCAwIDEtLjEtMS41aC4xYTIuNSAyLjUgMCAwIDAgLjE2LTVIMTlhLjc1Ljc1IDAgMCAxLS4xLTEuNWguMVptLTQgMGEuNzUuNzUgMCAwIDEgLjEgMS41SDE1YTIuNSAyLjUgMCAwIDAtLjE2IDVIMTVhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxNWE0IDQgMCAwIDEtLjItOGguMlptLjI1IDMuMjVoMy41YS43NS43NSAwIDAgMSAuMSAxLjVoLTMuNmEuNzUuNzUgMCAwIDEtLjEtMS41aC4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGExNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNYXRoRm9ybXVsYTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoMS42NWExLjUgMS41IDAgMCAxIDEuOTItMi4wNUw4LjIgMTFhMS41IDEuNSAwIDAgMSAuMjItMi45OGwuMDItLjMyYTIuOTIgMi45MiAwIDAgMSA0LjIzLTIuMzhjLjEyLjA2LjIzLjEzLjMyLjIxVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNiAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTMuNDUgNS4yOGExLjkyIDEuOTIgMCAwIDEgMi43OC0xLjU3LjUuNSAwIDAgMS0uNDUuOS45Mi45MiAwIDAgMC0xLjMzLjc0bC0uMDkgMS4xN2gxLjE0YS41LjUgMCAwIDEgMCAxaC0xLjIxbC0uMjQgMy4yYTEuOTIgMS45MiAwIDAgMS0yLjc4IDEuNTcuNS41IDAgMSAxIC40Ni0uOS45Mi45MiAwIDAgMCAxLjMyLS43NGwuMjQtMy4xM0g4LjVhLjUuNSAwIDEgMSAwLTFoLjg2bC4xLTEuMjRabTUuNCA0LjA3YS41LjUgMCAwIDAtLjctLjdsLTEuMDYgMS4wNS0uNDYtLjczYTEgMSAwIDAgMC0xLjQyLS4yOC41LjUgMCAwIDAgLjU4LjgxbC41Ny45My0xLjIxIDEuMjJhLjUuNSAwIDAgMCAuNy43bDEuMDYtMS4wNS40NS43NGMuMzEuNS45OC42MSAxLjQ0LjI2YS41LjUgMCAwIDAtLjYtLjhsLS41Ny0uOTIgMS4yMi0xLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGExNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTWF0aEZvcm11bGExNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjUgMWMtLjY1IDAtMS4yLjQyLTEuNDEgMUg0LjVDMy42NyAyIDMgMi42NyAzIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNWgxLjY1YTEuNSAxLjUgMCAwIDEtLjExLTFINC41YS41LjUgMCAwIDEtLjUtLjV2LTEwYzAtLjI4LjIyLS41LjUtLjVoLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoLjU5Yy4yOCAwIC41LjIyLjUuNXYxLjU3Yy4yMy4wNS40Ni4xMy42OC4yNS4xMi4wNi4yMy4xMy4zMi4yMVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0uNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTYgMi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0zLjQ1IDUuMjhhMS45MiAxLjkyIDAgMCAxIDIuNzgtMS41Ny41LjUgMCAwIDEtLjQ1LjkuOTIuOTIgMCAwIDAtMS4zMy43NGwtLjA5IDEuMTdoMS4xNGEuNS41IDAgMCAxIDAgMWgtMS4yMWwtLjI0IDMuMmExLjkyIDEuOTIgMCAwIDEtMi43OCAxLjU3LjUuNSAwIDEgMSAuNDYtLjkuOTIuOTIgMCAwIDAgMS4zMi0uNzRsLjI0LTMuMTNIOC41YS41LjUgMCAxIDEgMC0xaC44NmwuMS0xLjI0Wm01LjQgNC4wN2EuNS41IDAgMCAwLS43LS43bC0xLjA2IDEuMDUtLjQ2LS43M2ExIDEgMCAwIDAtMS40Mi0uMjguNS41IDAgMCAwIC41OC44MWwuNTcuOTMtMS4yMSAxLjIyYS41LjUgMCAwIDAgLjcuN2wxLjA2LTEuMDUuNDUuNzRjLjMxLjUuOTguNjEgMS40NC4yNmEuNS41IDAgMCAwLS42LS44bC0uNTctLjkyIDEuMjItMS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1hdGhGb3JtdWxhMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTWF0aEZvcm11bGEyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuNjVhMS41IDEuNSAwIDAgMSAxLjkyLTIuMDVMMTEuMiAxNGExLjUgMS41IDAgMCAxIC4yMi0yLjk4bC4wMi0uMzJhMi45MiAyLjkyIDAgMCAxIDQuMjMtMi4zOGMuMTIuMDYuMjMuMTMuMzIuMjFWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTQuNDUgNy4yOGExLjkyIDEuOTIgMCAwIDEgMi43OC0xLjU3LjUuNSAwIDAgMS0uNDUuOS45Mi45MiAwIDAgMC0xLjMzLjc0bC0uMDkgMS4xN2gxLjE0YS41LjUgMCAxIDEgMCAxaC0xLjIxbC0uMjQgMy4yYTEuOTIgMS45MiAwIDAgMS0yLjc4IDEuNTcuNS41IDAgMSAxIC40Ni0uOS45Mi45MiAwIDAgMCAxLjMyLS43NGwuMjQtMy4xM2gtLjc5YS41LjUgMCAwIDEgMC0xaC44NmwuMS0xLjI0Wm01LjQgNC4wN2EuNS41IDAgMCAwLS43LS43bC0xLjA2IDEuMDUtLjQ2LS43M2ExIDEgMCAwIDAtMS40Mi0uMjguNS41IDAgMCAwIC41OC44MWwuNTcuOTMtMS4yMSAxLjIyYS41LjUgMCAwIDAgLjcuN2wxLjA2LTEuMDUuNDUuNzRjLjMxLjUuOTguNjEgMS40NC4yNmEuNS41IDAgMCAwLS42LS44bC0uNTctLjkyIDEuMjItMS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1hdGhGb3JtdWxhMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE1hdGhGb3JtdWxhMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMy42NWExLjUgMS41IDAgMCAxLS4xMS0xSDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYzLjU3Yy4yMy4wNS40Ni4xMy42OC4yNS4xMi4wNi4yMy4xMy4zMi4yMVY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNC40NSA3LjI4YTEuOTIgMS45MiAwIDAgMSAyLjc4LTEuNTcuNS41IDAgMCAxLS40NS45LjkyLjkyIDAgMCAwLTEuMzMuNzRsLS4wOSAxLjE3aDEuMTRhLjUuNSAwIDEgMSAwIDFoLTEuMjFsLS4yNCAzLjJhMS45MiAxLjkyIDAgMCAxLTIuNzggMS41Ny41LjUgMCAxIDEgLjQ2LS45LjkyLjkyIDAgMCAwIDEuMzItLjc0bC4yNC0zLjEzaC0uNzlhLjUuNSAwIDAgMSAwLTFoLjg2bC4xLTEuMjRabTUuNCA0LjA3YS41LjUgMCAwIDAtLjctLjdsLTEuMDYgMS4wNS0uNDYtLjczYTEgMSAwIDAgMC0xLjQyLS4yOC41LjUgMCAwIDAgLjU4LjgxbC41Ny45My0xLjIxIDEuMjJhLjUuNSAwIDAgMCAuNy43bDEuMDYtMS4wNS40NS43NGMuMzEuNS45OC42MSAxLjQ0LjI2YS41LjUgMCAwIDAtLjYtLjhsLS41Ny0uOTIgMS4yMi0xLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGEyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNYXRoRm9ybXVsYTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuOTkgNGgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1djYuMjVoLS4wNmMtLjEyLS40OC0uNDQtLjktLjkyLTEuMTRhMy41IDMuNSAwIDAgMC01IDIuNjRoLS4yN2ExLjc1IDEuNzUgMCAwIDAgMCAzLjVsLS4yMyAzQTEuNzUgMS43NSAwIDAgMCAxMSAyMkg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMiAxLjA4LTIgMi4yNC0yaDMuNWMxLjE2IDAgMi4xMS44OCAyLjI0IDJabS02LjQ5LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0xMi4yOCAxNC4wM2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjA5IDEuMDgtLjQyLS42N2ExLjMzIDEuMzMgMCAwIDAtMS45LS4zOC43NS43NSAwIDAgMCAuNzEgMS4zbC41Mi44NC0xLjMyIDEuMzNhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwxLjA4LTEuMDguNDIuNjhjLjQxLjY2IDEuMy44MiAxLjkyLjM1YS43NS43NSAwIDAgMC0uNzQtMS4yOWwtLjUxLS44MyAxLjMzLTEuMzNabS02LjgtMy45N2EyLjUgMi41IDAgMCAxIDMuNi0yLjA1Ljc1Ljc1IDAgMSAxLS42NiAxLjM1IDEgMSAwIDAgMC0xLjQzLjgxbC0uMDUuNThoLjgxYS43NS43NSAwIDAgMSAwIDEuNWgtLjkyTDE2IDIwLjdhMi41IDIuNSAwIDAgMS0zLjYgMi4wNC43NS43NSAwIDEgMSAuNjctMS4zNSAxIDEgMCAwIDAgMS40My0uODFsLjMxLTQuMDhoLTEuMDdhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMTlsLjA1LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGEyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTWF0aEZvcm11bGEyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjM4IDUuNUg2LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTMuNWMwIC40MS4zNC43NS43NS43NWg1LjcyQTEuNzQgMS43NCAwIDAgMCAxMSAyMkg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjYuMjVDNCA1LjAxIDUgNCA2LjI1IDRoMS43NmMuMTMtMS4xMiAxLjA4LTIgMi4yNC0yaDMuNWMxLjE2IDAgMi4xMS44OCAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNVYxM2ExLjc1IDEuNzUgMCAwIDAtLjk4LTEuNjQgMy41OCAzLjU4IDAgMCAwLS41Mi0uMlY2LjI0YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFaTTkuNSA0LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0xMi4yOCAxNC4wM2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjA5IDEuMDgtLjQyLS42N2ExLjMzIDEuMzMgMCAwIDAtMS45LS4zOC43NS43NSAwIDAgMCAuNzEgMS4zbC41Mi44NC0xLjMyIDEuMzNhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwxLjA4LTEuMDguNDIuNjhjLjQxLjY2IDEuMy44MiAxLjkyLjM1YS43NS43NSAwIDAgMC0uNzQtMS4yOWwtLjUxLS44MyAxLjMzLTEuMzNabS02LjgtMy45N2EyLjUgMi41IDAgMCAxIDMuNi0yLjA1Ljc1Ljc1IDAgMSAxLS42NiAxLjM1IDEgMSAwIDAgMC0xLjQzLjgxbC0uMDUuNThoLjgxYS43NS43NSAwIDAgMSAwIDEuNWgtLjkyTDE2IDIwLjdhMi41IDIuNSAwIDAgMS0zLjYgMi4wNC43NS43NSAwIDEgMSAuNjctMS4zNSAxIDEgMCAwIDAgMS40My0uODFsLjMxLTQuMDhoLTEuMDdhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMTlsLjA1LS43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGEyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNYXRoRm9ybXVsYTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTguNDUgNGgxLjhBMi43NSAyLjc1IDAgMCAxIDIzIDYuNzV2OC4xNGExLjc1IDEuNzUgMCAwIDAtLjk2LTEuNDVsLS4wNy0uMDRhMy43NSAzLjc1IDAgMCAwLTUuMzYgMi42aC0uMzZhMS43NSAxLjc1IDAgMSAwIDAgMy41aC4wN2wtLjM1IDQuNzdhLjI1LjI1IDAgMCAxLS4zNy4ybC0uMDYtLjAzQTEuNzUgMS43NSAwIDAgMCAxMyAyNkg3Ljc1QTIuNzUgMi43NSAwIDAgMSA1IDIzLjI1VjYuNzVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNGgxLjhBMi41IDIuNSAwIDAgMSAxMiAyaDRjMS4yIDAgMi4yMi44NiAyLjQ1IDJaTTExIDQuNWExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMSAwIDAtMmgtNGExIDEgMCAwIDAtMSAxWm0xMS4wNyAxNS43NGExLjU3IDEuNTcgMCAwIDAtMi4yNi0uNDQuNzUuNzUgMCAxIDAgLjg4IDEuMjEuMDcuMDcgMCAwIDEgLjEuMDJsMSAxLjYxLTIuMDcgMi4wN2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDEuODMtMS44Mi44MSAxLjMxYy40OS43OSAxLjU1Ljk4IDIuMjguNDJhLjc1Ljc1IDAgMSAwLS45LTEuMi4wNy4wNyAwIDAgMS0uMS0uMDFsLTEtMS42MSAyLjA3LTIuMDhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMS44MyAxLjgzLS44MS0xLjNabS00LjUzLTMuN2EyLjc1IDIuNzUgMCAwIDEgMy45OC0yLjI0bC4wNy4wM2EuNzUuNzUgMCAxIDEtLjY3IDEuMzRsLS4wNy0uMDNjLS44LS40LTEuNzQuMTMtMS44IDEuMDJsLS4wMy4zNGgxLjIzYS43NS43NSAwIDAgMSAwIDEuNUgxOC45bC0uNDQgNS45NWEyLjc1IDIuNzUgMCAwIDEtMy45OCAyLjI1bC0uMDctLjAzYS43NS43NSAwIDEgMSAuNjgtMS4zNGwuMDcuMDNjLjguNCAxLjc0LS4xMyAxLjgtMS4wMmwuNDQtNS44NGgtMS4xNWEuNzUuNzUgMCAwIDEgMC0xLjVoMS4yNmwuMDMtLjQ1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGEyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTWF0aEZvcm11bGEyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk05LjcgNS41SDcuNzZjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djE2LjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoNi4xQTEuNzQgMS43NCAwIDAgMCAxMyAyNkg3Ljc1QTIuNzUgMi43NSAwIDAgMSA1IDIzLjI1VjYuNzVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNGgxLjhBMi41IDIuNSAwIDAgMSAxMiAyaDRjMS4yIDAgMi4yMi44NiAyLjQ1IDJoMS44QTIuNzUgMi43NSAwIDAgMSAyMyA2Ljc1djguMTRhMS43NSAxLjc1IDAgMCAwLS45Ni0xLjQ1bC0uMDctLjA0YTMuODYgMy44NiAwIDAgMC0uNDctLjJWNi43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTEuOTZBMi41IDIuNSAwIDAgMSAxNiA3aC00YTIuNSAyLjUgMCAwIDEtMi4zLTEuNVptMS4zLTFhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDEgMCAwLTJoLTRhMSAxIDAgMCAwLTEgMVptMTEuMDcgMTUuNzRhMS41NyAxLjU3IDAgMCAwLTIuMjYtLjQ0Ljc1Ljc1IDAgMSAwIC44OCAxLjIxLjA3LjA3IDAgMCAxIC4xLjAybDEgMS42MS0yLjA3IDIuMDdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwxLjgzLTEuODIuODEgMS4zMWMuNDkuNzkgMS41NS45OCAyLjI4LjQyYS43NS43NSAwIDEgMC0uOS0xLjIuMDcuMDcgMCAwIDEtLjEtLjAxbC0xLTEuNjEgMi4wNy0yLjA4YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTEuODMgMS44My0uODEtMS4zWm0tNC41My0zLjdhMi43NSAyLjc1IDAgMCAxIDMuOTgtMi4yNGwuMDcuMDNhLjc1Ljc1IDAgMSAxLS42NyAxLjM0bC0uMDctLjAzYy0uOC0uNC0xLjc0LjEzLTEuOCAxLjAybC0uMDMuMzRoMS4yM2EuNzUuNzUgMCAwIDEgMCAxLjVIMTguOWwtLjQ0IDUuOTVhMi43NSAyLjc1IDAgMCAxLTMuOTggMi4yNWwtLjA3LS4wM2EuNzUuNzUgMCAxIDEgLjY4LTEuMzRsLjA3LjAzYy44LjQgMS43NC0uMTMgMS44LTEuMDJsLjQ0LTUuODRoLTEuMTVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMjZsLjAzLS40NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1hdGhGb3JtdWxhMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTWF0aEZvcm11bGEzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIxLjgzIDRoMS42N0EzLjUgMy41IDAgMCAxIDI3IDcuNXY4LjM1YTIuNSAyLjUgMCAwIDAtLjg0LS43TDI1LjkgMTVhNC41IDQuNSAwIDAgMC02LjU2IDMuNTggMi41IDIuNSAwIDAgMC0uMzQgNC43bC0uMjkgMy45NmEyLjUgMi41IDAgMCAwLTMuMiAyLjc1SDguNUEzLjUgMy41IDAgMCAxIDUgMjYuNXYtMTlBMy41IDMuNSAwIDAgMSA4LjUgNGgxLjY3QTMgMyAwIDAgMSAxMyAyaDZhMyAzIDAgMCAxIDIuODMgMlpNMTkgNGgtNmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMlptNi4yMiAxMi4zNGEzIDMgMCAwIDAtNC4zOCAyLjQ1TDIwLjc1IDIwSDIwYTEgMSAwIDAgMCAwIDJoLjZsLS40MyA2LjA3YTEgMSAwIDAgMS0xLjQ2LjgxbC0uMjUtLjEzYTEgMSAwIDEgMC0uOTIgMS43OGwuMjUuMTJhMyAzIDAgMCAwIDQuMzctMi40NGwuNDUtNi4yMUgyNGExIDEgMCAwIDAgMC0yaC0xLjI0bC4wNy0xLjA3YTEgMSAwIDAgMSAxLjQ2LS44MWwuMjUuMTNhMSAxIDAgMSAwIC45Mi0xLjc4bC0uMjQtLjEzWm01LjQ4IDguMzdhMSAxIDAgMSAwLTEuNDEtMS40MmwtMS42MSAxLjYxLS42NS0xLjA0YTEuODIgMS44MiAwIDAgMC0yLjYxLS41MSAxIDEgMCAwIDAgMSAxLjcxbC44IDEuMy0xLjkzIDEuOTNhMSAxIDAgMCAwIDEuNDIgMS40MWwxLjYtMS42LjY1IDEuMDVjLjU3LjkgMS44IDEuMTMgMi42NS40OGExIDEgMCAwIDAtMS4wNS0xLjdsLS44LTEuMjggMS45NC0xLjk0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTWF0aEZvcm11bGEzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTWF0aEZvcm11bGEzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xOSAyYTMgMyAwIDAgMSAyLjgzIDJoMS42N0EzLjUgMy41IDAgMCAxIDI3IDcuNXY4LjM1Yy0uMjItLjI4LS41LS41My0uODQtLjdMMjUuOSAxNWMtLjMtLjE1LS42LS4yNy0uOTEtLjM2VjcuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNjdBMyAzIDAgMCAxIDE5IDhoLTZhMyAzIDAgMCAxLTIuODMtMkg4LjVDNy42NyA2IDcgNi42NyA3IDcuNXYxOWMwIC44My42NyAxLjUgMS41IDEuNWg3LjYxYTIuNSAyLjUgMCAwIDAtLjU4IDJIOC41QTMuNSAzLjUgMCAwIDEgNSAyNi41di0xOUEzLjUgMy41IDAgMCAxIDguNSA0aDEuNjdBMyAzIDAgMCAxIDEzIDJoNlptLTYgMmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMmgtNlptMTcuNyAyMC43YTEgMSAwIDEgMC0xLjQxLTEuNGwtMS42MSAxLjYtLjY1LTEuMDRhMS44MiAxLjgyIDAgMCAwLTIuNjEtLjUxIDEgMSAwIDAgMCAxIDEuNzFsLjggMS4zLTEuOTMgMS45M2ExIDEgMCAwIDAgMS40MiAxLjQxbDEuNi0xLjYuNjUgMS4wNWMuNTcuOSAxLjggMS4xMyAyLjY1LjQ4YTEgMSAwIDAgMC0xLjA1LTEuN2wtLjgtMS4yOCAxLjk0LTEuOTRabS05Ljg2LTUuOTFhMyAzIDAgMCAxIDQuMzgtMi40NWwuMjQuMTNhMSAxIDAgMSAxLS45MiAxLjc4bC0uMjUtLjEzYTEgMSAwIDAgMC0xLjQ2LjgxTDIyLjc2IDIwSDI0YTEgMSAwIDAgMSAwIDJoLTEuMzlsLS40NSA2LjJhMyAzIDAgMCAxLTQuMzcgMi40NWwtLjI1LS4xMmExIDEgMCAxIDEgLjkyLTEuNzhsLjI1LjEzYTEgMSAwIDAgMCAxLjQ2LS44MWwuNDQtNi4wN0gyMGExIDEgMCAxIDEgMC0yaC43NWwuMDktMS4yMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1vbnRoMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9udGgxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNSAxYy0uNjUgMC0xLjIuNDItMS40MSAxSDQuNUMzLjY3IDIgMyAyLjY3IDMgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMGMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNiAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNzUgOGEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVabS43NSAxLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTEwLjI1IDhhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0tMS41LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk04IDEwLjVBLjc1Ljc1IDAgMSAxIDggOWEuNzUuNzUgMCAwIDEgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb250aDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNb250aDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUuNzUgOGEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS43NSAxLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTEwLjI1IDhhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tMS41LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk04IDEwLjVBLjc1Ljc1IDAgMSAwIDggOWEuNzUuNzUgMCAwIDAgMCAxLjVaTTYuNSAxYy0uNjUgMC0xLjIuNDItMS40MSAxSDQuNUMzLjY3IDIgMyAyLjY3IDMgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMGMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNiAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTQuNSAzaC41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaC41OWMuMjggMCAuNS4yMi41LjV2MTBhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTEwYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb250aDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE1vbnRoMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNyAxMGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTEgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTUtMmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabS0yIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMS0yYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1vbnRoMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE1vbnRoMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyAxMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTUtMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabS0yIDJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMS0yYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA0aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYxMmEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE1vbnRoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9udGgyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjc1IDJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZhMi4yNSAyLjI1IDAgMCAwLTIuMjQtMlptLTMuNSAxLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVptLTIgOWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41Wm0wIDRhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVptOS4yNS01LjI1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabS01LjI1IDEuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNVptMS4yNSAyLjc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb250aDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNb250aDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguMjUgMTIuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm0wIDRhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptOS4yNS01LjI1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabS01LjI1IDEuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptMS4yNSAyLjc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTE2IDQuMDhBMi4yNSAyLjI1IDAgMCAwIDEzLjc0IDJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZ2LjA4Wm0wIC4wMnYuMTUtLjE1Wm0tNS43NSAyLjRoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djEzLjVjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMVptMC0zaDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb3JlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9yZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMC40OGMtLjQzLjIyLS43OC41Ni0xIC45OWEyLjI1IDIuMjUgMCAwIDAtNCAwQTIuMjUgMi4yNSAwIDAgMCA2Ljk4IDE4SDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm0xLjc1IDE0YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTEzIDE4LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTQgMGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTW9yZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNb3JlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMC40OGMtLjQzLjIyLS43OC41Ni0xIC45OVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDUuNWEuNS41IDAgMCAwLS41LjV2MTJjMCAuMjguMjIuNS41LjVoMS4yNWMwIC4zNi4wOC43LjIzIDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTEuNzUgMTRhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTMgMTguMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptNCAwYTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRNb3JlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTW9yZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMjUgMy41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTMuNS0xLjVoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMkg4LjVhMi41IDIuNSAwIDEgMSA0LjUtMS41IDIuNSAyLjUgMCAwIDEgNSAwYzAtMS4yLjg2LTIuMjIgMi0yLjQ1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZhMi4yNSAyLjI1IDAgMCAwLTIuMjQtMlpNMTIgMjAuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMy41IDEuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptNSAwYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTW9yZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNb3JlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuOTkgNGEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djEzLjVDNCAyMC45OSA1IDIyIDYuMjUgMjJIOC41Yy0uMzEtLjQyLS41LS45NC0uNS0xLjVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi4xM2MuNC42IDEuMDkgMSAxLjg3IDFoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1VjE5YTIuNSAyLjUgMCAwIDEgMS41LS45NVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2Wm0wIC4xLjAxLjE1VjQuMVptLTUuNzQtLjZoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVptMS43NSAxN2ExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMy41IDEuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptNSAwYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTXVsdGlwbGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRNdWx0aXBsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQyIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOGMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtMlpNNiAyLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVabTcgOVYzLjI3QTIgMiAwIDAgMSAxNCA1djYuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVINmEyIDIgMCAwIDEtMS43My0xaDYuMjNhMi41IDIuNSAwIDAgMCAyLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTXVsdGlwbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTXVsdGlwbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjUgMWMtLjY1IDAtMS4yLjQyLTEuNDIgMUg0LjVDMy42NyAyIDMgMi42NyAzIDMuNXY4YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di04YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0yWk02IDIuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVpNNC41IDNoLjU4Yy4yMS41OC43NyAxIDEuNDIgMWgyYy42NSAwIDEuMi0uNDIgMS40MS0xaC41OWMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVoLTZhLjUuNSAwIDAgMS0uNS0uNXYtOGMwLS4yOC4yMi0uNS41LS41Wm04LjUgOC41VjMuMjdBMiAyIDAgMCAxIDE0IDV2Ni41YTMuNSAzLjUgMCAwIDEtMy41IDMuNUg2YTIgMiAwIDAgMS0xLjczLTFoNi4yM2EyLjUgMi41IDAgMCAwIDIuNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROb3RlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTm90ZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjZIOGEzIDMgMCAwIDAtMyAzdjRjMCAuNzcuMjkgMS40Ny43NiAySDQuNUExLjUgMS41IDAgMCAxIDMgMTMuNXYtMTBDMyAyLjY3IDMuNjcgMiA0LjUgMmguNTlaTTYuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTggN2EyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDhabS41IDJoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVpNOCAxMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTm90ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROb3RlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS4wOSAyYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjZoLTFWMy41YS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xSDQuNWEuNS41IDAgMCAwLS41LjV2MTBjMCAuMjguMjIuNS41LjVoLjY3YTMgMyAwIDAgMCAuNiAxSDQuNUExLjUgMS41IDAgMCAxIDMgMTMuNXYtMTBDMyAyLjY3IDMuNjcgMiA0LjUgMmguNTlaTTYuNSAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTggN2EyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0ySDhabS41IDJoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVpNOCAxMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTm90ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE5vdGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjVWMTBoLTRhMyAzIDAgMCAwLTMgM3Y0YTMgMyAwIDAgMCAuMTcgMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMy41IDhhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTVabTAgNS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMSAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0wLTNjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROb3RlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE5vdGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgzLjg0YTMuNDggMy40OCAwIDAgMS0uMy0xSDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNVYxMGgxVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm00IDcuNWEyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg1YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtNVptMCA1LjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabTAtM2MwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE51bWJlcjEyMzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE51bWJlcjEyMzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFIMy41QzIuNjcgMiAyIDIuNjcgMiAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoMS41OWExLjUgMS41IDAgMCAxLS4wOS0uNVYxM2ExLjUgMS41IDAgMCAxLS42Mi0yLjg3Yy4yOC0uMTIuNDctLjMxLjYtLjQ3YTEuNjggMS42OCAwIDAgMSAxLjc4LS41OSAxLjczIDEuNzMgMCAwIDEgLjk3LjdBMi45OCAyLjk4IDAgMCAxIDkuNTQgOWEyLjc0IDIuNzQgMCAwIDEgMi4xMi44NGMuMS0uMS4yMi0uMi4zNC0uMjhWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk01IDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptMiA4LjE1YzAtLjItLjEtLjM1LS4yLS40NWEuNzMuNzMgMCAwIDAtLjMtLjE2Yy0uMTYtLjA1LS41LS4wNy0uNzMuMjItLjIuMjYtLjUxLjU3LS45OC43OGEuNS41IDAgMCAwIC40Mi45MmMuMy0uMTUuNTctLjMyLjc5LS41djMuMDRhLjUuNSAwIDAgMCAxIDB2LTMuODVabTYuNzMuMzVjLS4yMyAwLS41NC4xLS44Ni40NWEuNS41IDAgMCAxLS43NC0uNjcgMi4xNSAyLjE1IDAgMCAxIDEuNi0uNzhjLjUzIDAgMS4wMi4yNCAxLjMyLjZhMS4zIDEuMyAwIDAgMS0uMTYgMS45Yy4xOC4xNC4zMS4zMS40LjVhMS4zIDEuMyAwIDAgMS0uMjQgMS40Yy0uMy4zNi0uNzkuNi0xLjMyLjYtLjU1IDAtMS4xMi0uMjUtMS42LS43OGEuNS41IDAgMCAxIC43NC0uNjdjLjMyLjM1LjYzLjQ1Ljg2LjQ1LjI0IDAgLjQ1LS4xLjU3LS4yNS4xMS0uMTMuMTEtLjI1LjA4LS4zMy0uMDQtLjEtLjIyLS4zLS44LS40M2EuNS41IDAgMCAxIDAtLjk4Yy41OC0uMTMuNzYtLjM0LjgtLjQzLjAzLS4wOC4wMy0uMi0uMDgtLjMzYS43Ni43NiAwIDAgMC0uNTctLjI1Wm0tNC44NS40NWMuMjktLjM0LjU3LS40NC43Ny0uNDUuMjEtLjAxLjQuMDcuNTUuMi4xNC4xNC4yLjMuMi40NC0uMDEuMTEtLjA4LjI4LS4zNS40NGE0LjczIDQuNzMgMCAwIDAtMS44IDEuNTggMS45IDEuOSAwIDAgMC0uMjUuNzguOS45IDAgMCAwIDAgLjF2LjAxYS41LjUgMCAwIDAgLjUuNDVoMi40YS41LjUgMCAwIDAgMC0xSDkuMjNjLjItLjI3LjYtLjY0IDEuMzItMS4wNi41Mi0uMy44LS43NC44NC0xLjIzLjAzLS40OC0uMTgtLjkyLS41LTEuMjMtLjMyLS4zLS43OC0uNS0xLjMtLjQ4LS41MS4wMy0xLjAzLjI5LTEuNDcuOGEuNS41IDAgMSAwIC43Ni42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE51bWJlcjEyMzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjUgMWMtLjY1IDAtMS4yLjQyLTEuNDEgMUgzLjVDMi42NyAyIDIgMi42NyAyIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNWgxLjU5YTEuNSAxLjUgMCAwIDEtLjA5LS41VjE0SDMuNWEuNS41IDAgMCAxLS41LS41di0xMGMwLS4yOC4yMi0uNS41LS41aC41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaC41OWMuMjggMCAuNS4yMi41LjV2NS44NGEyLjc2IDIuNzYgMCAwIDEgLjY2LjVjLjEtLjEuMjItLjIuMzQtLjI4VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNSAyLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTIgOC4xNWMwLS4yLS4xLS4zNS0uMi0uNDVhLjczLjczIDAgMCAwLS4zLS4xNmMtLjE2LS4wNS0uNS0uMDctLjczLjIyLS4yLjI2LS41MS41Ny0uOTguNzhhLjUuNSAwIDAgMCAuNDIuOTJjLjMtLjE1LjU3LS4zMi43OS0uNXYzLjA0YS41LjUgMCAwIDAgMSAwdi0zLjg1Wm02LjczLjM1Yy0uMjMgMC0uNTQuMS0uODYuNDVhLjUuNSAwIDAgMS0uNzQtLjY3IDIuMTUgMi4xNSAwIDAgMSAxLjYtLjc4Yy41MyAwIDEuMDIuMjQgMS4zMi42YTEuMyAxLjMgMCAwIDEtLjE2IDEuOWMuMTguMTQuMzEuMzEuNC41YTEuMyAxLjMgMCAwIDEtLjI0IDEuNGMtLjMuMzYtLjc5LjYtMS4zMi42LS41NSAwLTEuMTItLjI1LTEuNi0uNzhhLjUuNSAwIDAgMSAuNzQtLjY3Yy4zMi4zNS42My40NS44Ni40NS4yNCAwIC40NS0uMS41Ny0uMjUuMTEtLjEzLjExLS4yNS4wOC0uMzMtLjA0LS4xLS4yMi0uMy0uOC0uNDNhLjUuNSAwIDAgMSAwLS45OGMuNTgtLjEzLjc2LS4zNC44LS40My4wMy0uMDguMDMtLjItLjA4LS4zM2EuNzYuNzYgMCAwIDAtLjU3LS4yNVptLTQuODUuNDVjLjI5LS4zNC41Ny0uNDQuNzctLjQ1LjIxLS4wMS40LjA3LjU1LjIuMTQuMTQuMi4zLjIuNDQtLjAxLjExLS4wOC4yOC0uMzUuNDRhNC43MyA0LjczIDAgMCAwLTEuOCAxLjU4IDEuOSAxLjkgMCAwIDAtLjI1Ljc4LjkuOSAwIDAgMCAwIC4xdi4wMWEuNS41IDAgMCAwIC41LjQ1aDIuNGEuNS41IDAgMCAwIDAtMUg5LjIzYy4yLS4yNy42LS42NCAxLjMyLTEuMDYuNTItLjMuOC0uNzQuODQtMS4yMy4wMy0uNDgtLjE4LS45Mi0uNS0xLjIzLS4zMi0uMy0uNzgtLjUtMS4zLS40OC0uNTEuMDMtMS4wMy4yOS0xLjQ3LjhhLjUuNSAwIDEgMCAuNzYuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROdW1iZXIxMjMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuNTlhMS41IDEuNSAwIDAgMS0uMDktLjV2LTJhMS41IDEuNSAwIDAgMS0uNzMtMi44MWMuMjctLjE1LjUtLjQ2LjY2LS43OS40Ny0uOTYgMS40Ni0uOTIgMS43Ni0uODZhMS42NCAxLjY0IDAgMCAxIDEuMTIuODFjLjYtLjUgMS4yOC0uOCAyLjAxLS44NWEzLjA1IDMuMDUgMCAwIDEgMi42IDEuMjJjLjQ3LS41IDEtLjg2IDEuNTgtMS4wNVY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNy44NyAxMC4xYy40Mi0uNDYuODQtLjYgMS4xNi0uNi4zNSAwIC42NC4xNS44MS4zNS4xNy4yLjIuNC4xMi41NS0uMDcuMTctLjMzLjQ0LTEuMDcuNjFhLjUuNSAwIDAgMCAwIC45OGMuNzQuMTcgMSAuNDQgMS4wNy42MS4wNy4xNi4wNS4zNS0uMTIuNTUtLjE3LjItLjQ2LjM1LS44LjM1LS4zMyAwLS43NS0uMTQtMS4xNy0uNmEuNS41IDAgMCAwLS43NC42NmMuNTguNjUgMS4yNi45NCAxLjkuOTQuNjQgMCAxLjItLjI4IDEuNTctLjdhMS41IDEuNSAwIDAgMC0uMzItMi4zYy4yNy0uMTkuNDctLjQyLjYtLjY5YTEuNSAxLjUgMCAwIDAtLjI4LTEuNjFjLS4zNi0uNDItLjkzLS43LTEuNTYtLjctLjY1IDAtMS4zMy4yOS0xLjkxLjk0YS41LjUgMCAwIDAgLjc0LjY3Wm0tMy45NC0uNmMtLjMuMDItLjY3LjE2LTEuMDUuNmEuNS41IDAgMSAxLS43Ni0uNjVjLjU0LS42MSAxLjE1LS45MSAxLjc2LS45NS42LS4wMyAxLjE0LjIgMS41Mi41Ny4zOC4zNi42My44OC41OSAxLjQzLS4wNC41Ny0uMzggMS4xLS45OSAxLjQ1LTEuMS42NC0xLjYgMS4yLTEuODIgMS41NWgyLjMyYS41LjUgMCAxIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjQ1di0uMDJhLjc5Ljc5IDAgMCAxIDAtLjFsLjAzLS4yM2MuMDQtLjE4LjEyLS40MS4yOC0uNjlhNS44IDUuOCAwIDAgMSAyLjItMS45M2MuMzYtLjIxLjQ3LS40Ni40OC0uNjVhLjg0Ljg0IDAgMCAwLS4yOC0uNjRjLS4yLS4xOS0uNDgtLjMtLjc4LS4yOVpNOSAxMi42YzAtLjItLjEtLjM1LS4yLS40NGEuNjQuNjQgMCAwIDAtLjMtLjE0Yy0uMTMtLjAzLS41LS4wMy0uNjcuMzItLjIuNDEtLjU0LjkzLTEuMDcgMS4yMmEuNS41IDAgMSAwIC40OC44OGMuMy0uMTcuNTUtLjM3Ljc2LS42djMuNjZhLjUuNSAwIDAgMCAxIDB2LTQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE51bWJlcjEyMzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgxLjU5YTEuNSAxLjUgMCAwIDEtLjA5LS41VjE3SDUuNWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXY3LjJhMy42IDMuNiAwIDAgMSAxLS41M1Y0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptMiAxNC4wNXYtLjAyYS43OS43OSAwIDAgMSAwLS4xbC4wMy0uMjNjLjA0LS4xOC4xMi0uNDEuMjgtLjY5YTUuOCA1LjggMCAwIDEgMi4yLTEuOTNjLjM2LS4yMS40Ny0uNDYuNDgtLjY1YS44NC44NCAwIDAgMC0uMjgtLjY0Yy0uMi0uMTktLjQ4LS4zLS43OC0uMjktLjMuMDItLjY3LjE2LTEuMDUuNmEuNS41IDAgMSAxLS43Ni0uNjVjLjU0LS42MSAxLjE1LS45MSAxLjc2LS45NS42LS4wMyAxLjE0LjIgMS41Mi41Ny4zOC4zNi42My44OC41OSAxLjQzLS4wNC41Ny0uMzggMS4xLS45OSAxLjQ1LTEuMS42NC0xLjYgMS4yLTEuODIgMS41NWgyLjMyYS41LjUgMCAxIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjQ1Wm01Ljg3LTMuOTVjLjQyLS40Ni44NC0uNiAxLjE2LS42LjM1IDAgLjY0LjE1LjgxLjM1LjE3LjIuMi40LjEyLjU1LS4wNy4xNy0uMzMuNDQtMS4wNy42MWEuNS41IDAgMCAwIDAgLjk4Yy43NC4xNyAxIC40NCAxLjA3LjYxLjA3LjE2LjA1LjM1LS4xMi41NS0uMTcuMi0uNDYuMzUtLjguMzUtLjMzIDAtLjc1LS4xNC0xLjE3LS42YS41LjUgMCAwIDAtLjc0LjY2Yy41OC42NSAxLjI2Ljk0IDEuOS45NC42NCAwIDEuMi0uMjggMS41Ny0uN2ExLjUgMS41IDAgMCAwLS4zMi0yLjNjLjI3LS4xOS40Ny0uNDIuNi0uNjlhMS41IDEuNSAwIDAgMC0uMjgtMS42MWMtLjM2LS40Mi0uOTMtLjctMS41Ni0uNy0uNjUgMC0xLjMzLjI5LTEuOTEuOTRhLjUuNSAwIDAgMCAuNzQuNjdaTTkgMTIuNmMwLS4yLS4xLS4zNS0uMi0uNDRhLjY0LjY0IDAgMCAwLS4zLS4xNGMtLjEzLS4wMy0uNS0uMDMtLjY3LjMyLS4yLjQxLS41NC45My0xLjA3IDEuMjJhLjUuNSAwIDEgMCAuNDguODhjLjMtLjE3LjU1LS4zNy43Ni0uNnYzLjY2YS41LjUgMCAwIDAgMSAwdi00LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROdW1iZXIxMjMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3Ljc1IDRoLTEuNzZhMi4yNSAyLjI1IDAgMCAwLTIuMjQtMmgtMy41Yy0xLjE2IDAtMi4xMS44OC0yLjI0IDJINi4yNUM1LjAxIDQgNCA1IDQgNi4yNXYxMy41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDIuNDJjLS4xLS4yMy0uMTctLjQ4LS4xNy0uNzV2LTIuMjdhMS43NSAxLjc1IDAgMCAxLTEuMTQtMy4yNGMuMzUtLjIuNy0uNTcuOTctLjk2YTIuMDIgMi4wMiAwIDAgMSAyLjItLjc2Yy40MS4xMi45OC40NiAxLjI4IDEuMDZBNC4wMyA0LjAzIDAgMCAxIDE0LjMgMTRhMy42MiAzLjYyIDAgMCAxIDMuMSAxLjQ4bC4wOS0uMUE0LjMzIDQuMzMgMCAwIDEgMjAgMTQuMDVWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNFptLTcuNSAxYS43NS43NSAwIDAgMSAwLTEuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVaTTExIDE1Ljk0YTEgMSAwIDAgMC0uNzQtLjk1Yy0uMzEtLjA5LS44LS4wNi0xLjExLjM3LS4zMi40NC0uNzYuOTQtMS4yOCAxLjI0YS43NS43NSAwIDAgMCAuNzYgMS4zYy4zMi0uMi42MS0uNDMuODctLjY3djQuMDJhLjc1Ljc1IDAgMCAwIDEuNSAwdi01LjMxWm0zLjQzLjU2Yy0uMzEuMDItLjcuMTYtMS4xMy42MWEuNzUuNzUgMCAwIDEtMS4xLTEuMDJjLjY1LS43IDEuNC0xLjA1IDIuMTUtMS4wOS43My0uMDMgMS40LjI0IDEuODguNjcuNDcuNDIuOCAxLjA1Ljc2IDEuNzUtLjA1LjcyLS41IDEuMzUtMS4yNiAxLjc1LS45NS41Mi0xLjUuOTgtMS44IDEuMzNoMi4zMmEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc0LS42N3YtLjAzYS45Ni45NiAwIDAgMSAwLS4xNGMwLS4wOCAwLS4xNy4wMy0uMjkuMDUtLjIyLjE1LS41LjM1LS44MmE2LjggNi44IDAgMCAxIDIuNjMtMi4yYy40LS4yMS40Ni0uNDMuNDctLjU0LjAxLS4xNC0uMDYtLjM0LS4yNi0uNTMtLjItLjE4LS40OS0uMy0uOC0uMjhabTQuODYuNjJjLjg4LS45MiAxLjc2LS42MyAyLjA4LS4yOS4xNi4xOC4xNC4zLjEuMzYtLjA0LjEtLjI4LjQtMS4xMy41OGEuNzUuNzUgMCAwIDAgMCAxLjQ2Yy44NS4xOCAxLjA5LjQ4IDEuMTQuNTguMDMuMDYuMDUuMTgtLjExLjM2LS4zMi4zNC0xLjIuNjMtMi4wOC0uMjlhLjc1Ljc1IDAgMCAwLTEuMDggMS4wNGMxLjQ1IDEuNTIgMy4zNCAxLjI3IDQuMjcuMjZhMS44IDEuOCAwIDAgMC0uMTctMi42OCAxLjggMS44IDAgMCAwIC4xNy0yLjY4Yy0uOTMtMS4wMS0yLjgyLTEuMjYtNC4yNy4yNmEuNzUuNzUgMCAxIDAgMS4wOCAxLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkTnVtYmVyMTIzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZE51bWJlcjEyMzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjUgNS41aDIuMTNjLjQuNiAxLjA5IDEgMS44NyAxaDMuNWMuNzggMCAxLjQ3LS40IDEuODctMWgyLjEzYy40MSAwIC43NS4zNC43NS43NXY4LjMyYy40OS0uMjggMS0uNDYgMS41LS41M1Y2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODgtMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgyLjQyYy0uMS0uMjMtLjE3LS40OC0uMTctLjc1di0uNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVabTQtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNVpNMTEgMTUuOTRhMSAxIDAgMCAwLS43NC0uOTVjLS4zMS0uMDktLjgtLjA2LTEuMTEuMzctLjMyLjQ0LS43Ni45NC0xLjI4IDEuMjRhLjc1Ljc1IDAgMCAwIC43NiAxLjNjLjMyLS4yLjYxLS40My44Ny0uNjd2NC4wMmEuNzUuNzUgMCAwIDAgMS41IDB2LTUuMzFabTMuNDMuNTZjLS4zMS4wMi0uNy4xNi0xLjEzLjYxYS43NS43NSAwIDAgMS0xLjEtMS4wMmMuNjUtLjcgMS40LTEuMDUgMi4xNS0xLjA5LjczLS4wMyAxLjQuMjQgMS44OC42Ny40Ny40Mi44IDEuMDUuNzYgMS43NS0uMDUuNzItLjUgMS4zNS0xLjI2IDEuNzUtLjk1LjUyLTEuNS45OC0xLjggMS4zM2gyLjMyYS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMS0uNzQtLjY3di0uMDNhLjk2Ljk2IDAgMCAxIDAtLjE0YzAtLjA4IDAtLjE3LjAzLS4yOS4wNS0uMjIuMTUtLjUuMzUtLjgyYTYuOCA2LjggMCAwIDEgMi42My0yLjJjLjQtLjIxLjQ2LS40My40Ny0uNTQuMDEtLjE0LS4wNi0uMzQtLjI2LS41My0uMi0uMTgtLjQ5LS4zLS44LS4yOFptNC44Ni42MmMuODgtLjkyIDEuNzYtLjYzIDIuMDgtLjI5LjE2LjE4LjE0LjMuMS4zNi0uMDQuMS0uMjguNC0xLjEzLjU4YS43NS43NSAwIDAgMCAwIDEuNDZjLjg1LjE4IDEuMDkuNDggMS4xNC41OC4wMy4wNi4wNS4xOC0uMTEuMzYtLjMyLjM0LTEuMi42My0yLjA4LS4yOWEuNzUuNzUgMCAwIDAtMS4wOCAxLjA0YzEuNDUgMS41MiAzLjM0IDEuMjcgNC4yNy4yNmExLjggMS44IDAgMCAwLS4xNy0yLjY4IDEuOCAxLjggMCAwIDAgLjE3LTIuNjhjLS45My0xLjAxLTIuODItMS4yNi00LjI3LjI2YS43NS43NSAwIDEgMCAxLjA4IDEuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROdW1iZXIxMjMyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIwLjI1IDRoLTEuOEEyLjUgMi41IDAgMCAwIDE2IDJoLTRhMi41IDIuNSAwIDAgMC0yLjQ1IDJoLTEuOEEyLjc1IDIuNzUgMCAwIDAgNSA2Ljc1djE2LjVBMi43NSAyLjc1IDAgMCAwIDcuNzUgMjZoMS45MmExLjcyIDEuNzIgMCAwIDEtLjE3LS43NXYtMi45OWExLjc1IDEuNzUgMCAwIDEtMS4zOS0zLjE4Yy40LS4yNC44My0uNjcgMS4yMi0xLjIzYTIgMiAwIDAgMSAyLjI2LS43NSAyIDIgMCAwIDEgMS4zMSAxLjI4IDQuMzggNC4zOCAwIDAgMSA0LjU5LTEuMTRjLjc5LjI5IDEuNDUuNzkgMS44OSAxLjQybC4xMi0uMTRjMS0xIDIuMjYtMS41MyAzLjUtMS41MVY2Ljc1QTIuNzUgMi43NSAwIDAgMCAyMC4yNSA0Wk0xMiA1LjVhMSAxIDAgMCAxLTEtMSAxIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMSAxIDEgMCAwIDEtMSAxaC00Wk0xNCAyNmg0LjIyYy40MSAwIC43NS0uMzQuNzUtLjc1YS43Ni43NiAwIDAgMC0uNzUtLjc1aC0zLjE0YTcuNTIgNy41MiAwIDAgMSAyLjQzLTEuODJjLjk5LS41MiAxLjUyLTEuMzUgMS40NS0yLjI3LS4wNi0uOTYtLjgtMS44Ni0xLjgzLTIuMjMtMS4yNS0uNDUtMi42My0uMDUtMy42OSAxLjA2LS4yOC4zLS4yNy43Ny4wMyAxLjA2LjMuMjguNzcuMjcgMS4wNi0uMDMuNjUtLjY4IDEuNDItLjkzIDIuMS0uNjguNDcuMTcuODIuNTYuODUuOTMuMDMuNC0uMzQuNjctLjY1Ljg0LTMuNjIgMS45MS0zLjYyIDMuNjUtMy41OCAzLjk4LjA1LjM3LjM3LjY2Ljc1LjY2Wm04LjkxIDBjLS44NSAwLTEuODItLjMzLTIuNy0xLjIzYS43NS43NSAwIDAgMSAwLTEuMDYuNzYuNzYgMCAwIDEgMS4wNiAwYy44Ni44OCAxLjc5Ljg5IDIuMzguNjIuMzctLjE4LjYyLS40OC41OS0uNzItLjAzLS4yNi0uNDUtLjY1LTEuNTMtLjg4YS43NS43NSAwIDAgMS0uNi0uNzNjMC0uMzUuMjUtLjY2LjYtLjczIDEuMDctLjIyIDEuNDktLjYxIDEuNTMtLjg4LjAzLS4yNC0uMjItLjU0LS41OC0uNzItLjU4LS4yOC0xLjUxLS4yNy0yLjM4LjYxYS43NS43NSAwIDAgMS0xLjA2IDAgLjc0Ljc0IDAgMCAxIDAtMS4wNmMxLjQyLTEuNDUgMy4wNS0xLjQyIDQuMS0uOTEuOTcuNDcgMS41MyAxLjM2IDEuNDIgMi4yNi0uMDUuMzgtLjI0Ljk1LS45IDEuNDMuNjYuNDkuODUgMS4wNS45IDEuNDMuMTEuOS0uNDUgMS43OS0xLjQzIDIuMjYtLjQuMTktLjg4LjMxLTEuNC4zMVptLTExLjY3IDBoLjAxLS4wMVptLS43NC0uNzVjMCAuNC4zNC43NS43NC43NS40MSAwIC43NS0uMzQuNzUtLjc1di02LjI2YTEgMSAwIDAgMC0uNzEtLjk0IDEgMSAwIDAgMC0xLjE0LjM3IDUuMjYgNS4yNiAwIDAgMS0xLjUzIDEuNTIuNzYuNzYgMCAwIDAtLjI2IDEuMDNjLjIxLjM1LjY3LjQ3IDEuMDMuMjYuNDItLjI1LjgtLjU3IDEuMTItLjg5djQuOTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROdW1iZXIxMjMyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkTnVtYmVyMTIzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNy43NSA1LjVoMS45NkEyLjUgMi41IDAgMCAwIDEyIDdoNGMxLjAyIDAgMS45LS42MiAyLjI5LTEuNWgxLjk2Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djEwLjVjLjQ5LS4xNiAxLS4yNCAxLjUtLjI0VjYuNzVBMi43NSAyLjc1IDAgMCAwIDIwLjI1IDRoLTEuOEEyLjUgMi41IDAgMCAwIDE2IDJoLTRhMi41IDIuNSAwIDAgMC0yLjQ1IDJoLTEuOEEyLjc1IDIuNzUgMCAwIDAgNSA2Ljc1djE2LjVBMi43NSAyLjc1IDAgMCAwIDcuNzUgMjZoMS45MmExLjcyIDEuNzIgMCAwIDEtLjE3LS43NXYtLjc1SDcuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY2Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1Wm00LjI1IDBhMSAxIDAgMCAxLTEtMSAxIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMSAxIDEgMCAwIDEtMSAxaC00Wk0xNCAyNmg0LjIyYy40MSAwIC43NS0uMzQuNzUtLjc1YS43Ni43NiAwIDAgMC0uNzUtLjc1aC0zLjE0YTcuNTIgNy41MiAwIDAgMSAyLjQzLTEuODJjLjk5LS41MiAxLjUyLTEuMzUgMS40NS0yLjI3LS4wNi0uOTYtLjgtMS44Ni0xLjgzLTIuMjMtMS4yNS0uNDUtMi42My0uMDUtMy42OSAxLjA2LS4yOC4zLS4yNy43Ny4wMyAxLjA2LjMuMjguNzcuMjcgMS4wNi0uMDMuNjUtLjY4IDEuNDItLjkzIDIuMS0uNjguNDcuMTcuODIuNTYuODUuOTMuMDMuNC0uMzQuNjctLjY1Ljg0LTMuNjIgMS45MS0zLjYyIDMuNjUtMy41OCAzLjk4LjA1LjM3LjM3LjY2Ljc1LjY2Wm04LjkxIDBjLS44NSAwLTEuODItLjMzLTIuNy0xLjIzYS43NS43NSAwIDAgMSAwLTEuMDYuNzYuNzYgMCAwIDEgMS4wNiAwYy44Ni44OCAxLjc5Ljg5IDIuMzguNjIuMzctLjE4LjYyLS40OC41OS0uNzItLjAzLS4yNi0uNDUtLjY1LTEuNTMtLjg4YS43NS43NSAwIDAgMS0uNi0uNzNjMC0uMzUuMjUtLjY2LjYtLjczIDEuMDctLjIyIDEuNDktLjYxIDEuNTMtLjg4LjAzLS4yNC0uMjItLjU0LS41OC0uNzItLjU4LS4yOC0xLjUxLS4yNy0yLjM4LjYxYS43NS43NSAwIDAgMS0xLjA2IDAgLjc0Ljc0IDAgMCAxIDAtMS4wNmMxLjQyLTEuNDUgMy4wNS0xLjQyIDQuMS0uOTEuOTcuNDcgMS41MyAxLjM2IDEuNDIgMi4yNi0uMDUuMzgtLjI0Ljk1LS45IDEuNDMuNjYuNDkuODUgMS4wNS45IDEuNDMuMTEuOS0uNDUgMS43OS0xLjQzIDIuMjYtLjQuMTktLjg4LjMxLTEuNC4zMVptLTExLjY3IDBoLjAxLS4wMVptLS43NC0uNzVjMCAuNC4zNC43NS43NC43NS40MSAwIC43NS0uMzQuNzUtLjc1di02LjI2YTEgMSAwIDAgMC0uNzEtLjk0IDEgMSAwIDAgMC0xLjE0LjM3IDUuMjYgNS4yNiAwIDAgMS0xLjUzIDEuNTIuNzYuNzYgMCAwIDAtLjI2IDEuMDNjLjIxLjM1LjY3LjQ3IDEuMDMuMjYuNDItLjI1LjgtLjU3IDEuMTItLjg5djQuOTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmROdW1iZXIxMjMzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIxLjgzIDRoMS42N0EzLjUgMy41IDAgMCAxIDI3IDcuNXYxMmE1LjY3IDUuNjcgMCAwIDAtNC4zOCAxLjkzIDQuOTEgNC45MSAwIDAgMC00LjE0LTEuOTJjLTEuMi4wNi0yLjM0LjU0LTMuMzIgMS40YTIuODggMi44OCAwIDAgMC0xLjY1LTEuMyAyLjc2IDIuNzYgMCAwIDAtMy4wMiAxLjA0Yy0uMzQuNDctLjguOTctMS4yNiAxLjI1YTIuNSAyLjUgMCAwIDAgMS4yNyA0LjY1VjI5YzAgLjM2LjA4LjcuMjEgMUg4LjVBMy41IDMuNSAwIDAgMSA1IDI2LjV2LTE5QTMuNSAzLjUgMCAwIDEgOC41IDRoMS42N0EzIDMgMCAwIDEgMTMgMmg2YTMgMyAwIDAgMSAyLjgzIDJaTTE5IDRoLTZhMSAxIDAgMSAwIDAgMmg2YTEgMSAwIDEgMCAwLTJabS0xLjc3IDE5Ljc3Yy41My0uNTcgMS4wNC0uNzUgMS40My0uNzcuNC0uMDIuNzYuMTMgMSAuMzUuMjYuMjMuMzQuNDcuMzMuNjMtLjAxLjEyLS4wOC4zOC0uNTkuNjYtMS44OCAxLTIuODcgMS45OC0zLjM5IDIuOGEzLjM2IDMuMzYgMCAwIDAtLjUgMS40NCAxLjY4IDEuNjggMCAwIDAgMCAuMnYuMDNhMSAxIDAgMCAwIDEgLjg5SDIxYTEgMSAwIDEgMCAwLTJoLTIuOWMuNDItLjQzIDEuMS0uOTggMi4yNS0xLjYuOTctLjUyIDEuNTctMS4zMyAxLjYzLTIuMjhhMi44IDIuOCAwIDAgMC0uOTgtMi4yNiAzLjQxIDMuNDEgMCAwIDAtMi40NC0uODYgNC4xIDQuMSAwIDAgMC0yLjc5IDEuNCAxIDEgMCAwIDAgMS40NiAxLjM3Wm0xMC42MS0uMzZjLS4zOS0uNDItMS41LS44LTIuNjIuMzZhMSAxIDAgMSAxLTEuNDQtMS4zOWMxLjg5LTEuOTUgNC4zMy0xLjYzIDUuNTMtLjMyYTIuMzMgMi4zMyAwIDAgMS0uMTcgMy40NCAyLjMzIDIuMzMgMCAwIDEgLjE3IDMuNDRjLTEuMiAxLjMtMy42NSAxLjYzLTUuNTMtLjMzYTEgMSAwIDAgMSAxLjQ0LTEuMzhjMS4xMiAxLjE1IDIuMjMuNzggMi42Mi4zNi4yLS4yMi4xNi0uMzUuMTQtLjQtLjA2LS4xMS0uMzUtLjQ4LTEuNDQtLjcxYTEgMSAwIDAgMSAwLTEuOTZjMS4xLS4yMyAxLjM4LS42IDEuNDQtLjcxLjAyLS4wNS4wNi0uMTgtLjE0LS40Wk0xNCAyMi4yNGMwLS43LS41Mi0xLjA4LS45LTEuMTktLjQtLjExLTEtLjA2LTEuMzkuNDctLjM5LjU1LS45OSAxLjI0LTEuNzIgMS42N2ExIDEgMCAwIDAgMS4wMiAxLjcyYy4zNi0uMjEuNy0uNDYgMS0uNzNWMjlhMSAxIDAgMSAwIDIgMHYtNi43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZE51bWJlcjEyMzMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmROdW1iZXIxMjMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yMS44MyA0QTMgMyAwIDAgMCAxOSAyaC02YTMgMyAwIDAgMC0yLjgzIDJIOC41QTMuNSAzLjUgMCAwIDAgNSA3LjV2MTlBMy41IDMuNSAwIDAgMCA4LjUgMzBoMi4yMWEyLjUgMi41IDAgMCAxLS4yLTF2LTFIOC41QTEuNSAxLjUgMCAwIDEgNyAyNi41di0xOUM3IDYuNjcgNy42NyA2IDguNSA2aDEuNjdBMyAzIDAgMCAwIDEzIDhoNmEzIDMgMCAwIDAgMi44My0yaDEuNjdjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTIuMzJhNS4zIDUuMyAwIDAgMSAyLS4zMnYtMTJBMy41IDMuNSAwIDAgMCAyMy41IDRoLTEuNjdaTTEyIDVhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDEgMSAwIDJoLTZhMSAxIDAgMCAxLTEtMVptNS4yMyAxOC43N2MuNTMtLjU3IDEuMDQtLjc1IDEuNDMtLjc3LjQtLjAyLjc2LjEzIDEgLjM1LjI2LjIzLjM0LjQ3LjMzLjYzLS4wMS4xMi0uMDguMzgtLjU5LjY2LTEuODggMS0yLjg3IDEuOTgtMy4zOSAyLjhhMy4zNiAzLjM2IDAgMCAwLS41IDEuNDQgMS42OCAxLjY4IDAgMCAwIDAgLjJ2LjAzYTEgMSAwIDAgMCAxIC44OUgyMWExIDEgMCAxIDAgMC0yaC0yLjljLjQyLS40MyAxLjEtLjk4IDIuMjUtMS42Ljk3LS41MiAxLjU3LTEuMzMgMS42My0yLjI4YTIuOCAyLjggMCAwIDAtLjk4LTIuMjYgMy40MSAzLjQxIDAgMCAwLTIuNDQtLjg2IDQuMSA0LjEgMCAwIDAtMi43OSAxLjQgMSAxIDAgMCAwIDEuNDYgMS4zN1ptMTAuNjEtLjM2Yy0uMzktLjQyLTEuNS0uOC0yLjYyLjM2YTEgMSAwIDEgMS0xLjQ0LTEuMzljMS44OS0xLjk1IDQuMzMtMS42MyA1LjUzLS4zMmEyLjMzIDIuMzMgMCAwIDEtLjE3IDMuNDQgMi4zMyAyLjMzIDAgMCAxIC4xNyAzLjQ0Yy0xLjIgMS4zLTMuNjUgMS42My01LjUzLS4zM2ExIDEgMCAwIDEgMS40NC0xLjM4YzEuMTIgMS4xNSAyLjIzLjc4IDIuNjIuMzYuMi0uMjIuMTYtLjM1LjE0LS40LS4wNi0uMTEtLjM1LS40OC0xLjQ0LS43MWExIDEgMCAwIDEgMC0xLjk2YzEuMS0uMjMgMS4zOC0uNiAxLjQ0LS43MS4wMi0uMDUuMDYtLjE4LS4xNC0uNFpNMTQgMjIuMjRjMC0uNy0uNTItMS4wOC0uOS0xLjE5LS40LS4xMS0xLS4wNi0xLjM5LjQ3LS4zOS41NS0uOTkgMS4yNC0xLjcyIDEuNjdhMSAxIDAgMCAwIDEuMDIgMS43MmMuMzYtLjIxLjctLjQ2IDEtLjczVjI5YTEgMSAwIDEgMCAyIDB2LTYuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQYXN0ZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFBhc3RlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgMmguNTljLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWguNTlBMS41IDEuNSAwIDAgMSAxMiAzLjVWNWgtMVYzLjVhLjUuNSAwIDAgMC0uNS0uNWgtLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFIMy41YS41LjUgMCAwIDAtLjUuNXYxMGEuNS41IDAgMCAwIC41LjVoMi42MXYxSDMuNUExLjUgMS41IDAgMCAxIDIgMTMuNXYtMTBBMS41IDEuNSAwIDAgMSAzLjUgMlptMiAwYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTMgNEM3LjY3IDYgNyA2LjY3IDcgNy41djZjMCAuODMuNjcgMS41IDEuNSAxLjVoNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUGFzdGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkUGFzdGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00LjA5IDJIMy41QTEuNSAxLjUgMCAwIDAgMiAzLjV2MTBBMS41IDEuNSAwIDAgMCAzLjUgMTVoMi42MXYtMUgzLjVhLjUuNSAwIDAgMS0uNS0uNXYtMTBhLjUuNSAwIDAgMSAuNS0uNWguNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWguNTlhLjUuNSAwIDAgMSAuNS41VjVoMVYzLjVBMS41IDEuNSAwIDAgMCAxMC41IDJoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM2MtLjY1IDAtMS4yLjQyLTEuNDEgMVptLjkxLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTguNSA2QzcuNjcgNiA3IDYuNjcgNyA3LjV2NmMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTRaTTggNy41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2NmEuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFBhc3RlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkUGFzdGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNSA0aDEuNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWgxLjU5Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM2MtLjY1IDAtMS4yLjQyLTEuNDEgMUg0LjVDMy42NyAzIDMgMy42NyAzIDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVabTMgMGEuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxaC0zWm0zIDNDOS42NyA3IDkgNy42NyA5IDguNXY4YzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di04YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFBhc3RlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFBhc3RlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC41IDRoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMCAxIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zYy0uNjUgMC0xLjIuNDItMS40MSAxSDQuNUMzLjY3IDMgMyAzLjY3IDMgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNVptMyAwYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFoLTNabTMgM0M5LjY3IDcgOSA3LjY3IDkgOC41djhjMCAuODMuNjcgMS41IDEuNSAxLjVoNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LThjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wk0xMCA4LjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di04WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUGFzdGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRQYXN0ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNzUgMmMxLjE2IDAgMi4xMS44OCAyLjI0IDJoMS43NmMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNWMwIC4zOC0uMjguNy0uNjUuNzRoLS4xYS43NS43NSAwIDAgMS0uNzQtLjY0bC0uMDEtLjFjMC0uMzgtLjI4LS43LS42NS0uNzRsLS4xLS4wMWgtMi4xM2MtLjQuNi0xLjA5IDEtMS44NyAxaC0zLjVjLS43OCAwLTEuNDYtLjQtMS44Ny0xSDUuMjVjLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjF2MTMuNWMwIC4zOC4yOC43LjY1Ljc1aDMuMWMuMzggMCAuNy4yOS43NC42NWwuMDEuMWMwIC40Mi0uMzQuNzUtLjc1Ljc1aC0zYy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwzIDE5Ljc2VjYuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw1LjI1IDRoMS43NmMuMTMtMS4xMiAxLjA4LTIgMi4yNC0yaDMuNVptNiA2YzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djkuNWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxaC02LjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xbC0uMDEtLjE1di05LjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNGwuMTUtLjAxaDYuNVptLTYtNC41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAxIDAgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQYXN0ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRQYXN0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc1IDJjMS4xNiAwIDIuMTEuODggMi4yNCAyaDEuNzZjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTVjMCAuMzgtLjI4LjctLjY1Ljc0aC0uMWEuNzUuNzUgMCAwIDEtLjc0LS42NGwtLjAxLS4xYzAtLjM4LS4yOC0uNy0uNjUtLjc0bC0uMS0uMDFoLTIuMTNjLS40LjYtMS4wOSAxLTEuODcgMWgtMy41Yy0uNzggMC0xLjQ2LS40LTEuODctMUg1LjI1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjEzLjVjMCAuMzguMjguNy42NS43NWgzLjFjLjM4IDAgLjcuMjkuNzQuNjVsLjAxLjFjMCAuNDItLjM0Ljc1LS43NS43NWgtM2MtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjFMMyAxOS43NlY2LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNS4yNSA0aDEuNzZjLjEzLTEuMTIgMS4wOC0yIDIuMjQtMmgzLjVabTYgNmMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXY5LjVjMCAxLjItLjkzIDIuMTctMi4xIDIuMjRsLS4xNS4wMWgtNi41Yy0xLjIgMC0yLjE3LS45My0yLjI0LTIuMWwtLjAxLS4xNXYtOS41YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRsLjE1LS4wMWg2LjVabTAgMS41aC02LjVjLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjF2OS41YzAgLjM4LjI4LjcuNjUuNzRsLjEuMDFoNi41Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi05LjVjMC0uMzgtLjI4LS43LS42NS0uNzRsLS4xLS4wMVptLTYtNmgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMSAwIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUGFzdGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRQYXN0ZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOS4xNyA2SDcuNUM2LjY3IDYgNiA2LjY3IDYgNy41djE5YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEyYTEgMSAwIDEgMSAwIDJINy41QTMuNSAzLjUgMCAwIDEgNCAyNi41di0xOUEzLjUgMy41IDAgMCAxIDcuNSA0aDEuNjdBMyAzIDAgMCAxIDEyIDJoNmEzIDMgMCAwIDEgMi44MyAyaDEuNjdBMy41IDMuNSAwIDAgMSAyNiA3LjVhMSAxIDAgMSAxLTIgMGMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNjdBMyAzIDAgMCAxIDE4IDhoLTZhMyAzIDAgMCAxLTIuODMtMlpNMTEgNWExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMSAwIDAtMmgtNmExIDEgMCAwIDAtMSAxWm0zIDguNWEzLjUgMy41IDAgMCAxIDMuNS0zLjVoOGEzLjUgMy41IDAgMCAxIDMuNSAzLjV2MTNhMy41IDMuNSAwIDAgMS0zLjUgMy41aC04YTMuNSAzLjUgMCAwIDEtMy41LTMuNXYtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQYXN0ZTMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkUGFzdGUzMkxpZ2h0JywgXCIzMlwiLCBbXCJNOS4wNSA0YTIuNSAyLjUgMCAwIDEgMi40NS0yaDdjMS4yIDAgMi4yMi44NiAyLjQ1IDJoMS44QzI0LjU1IDQgMjYgNS40NiAyNiA3LjI1djEuMjZsLS4yNS0uMDFIMjVWNy4yNUMyNSA2LjAxIDI0IDUgMjIuNzUgNWgtMS44YTIuNSAyLjUgMCAwIDEtMi40NSAyaC03YTIuNSAyLjUgMCAwIDEtMi40NS0yaC0xLjhDNi4wMSA1IDUgNiA1IDcuMjV2MTkuNUM1IDI3Ljk5IDYgMjkgNy4yNSAyOWg1LjgyYy4yLjM2LjQzLjcuNzIgMUg3LjI1QTMuMjUgMy4yNSAwIDAgMSA0IDI2Ljc1VjcuMjVDNCA1LjQ1IDUuNDYgNCA3LjI1IDRoMS44Wk0yMCA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03YTEuNSAxLjUgMCAwIDAgMCAzaDdjLjgzIDAgMS41LS42NyAxLjUtMS41Wm0tNiA4Ljc1YzAtMS44IDEuNDYtMy4yNSAzLjI1LTMuMjVoOC41YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2MTMuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC04LjVBMy4yNSAzLjI1IDAgMCAxIDE0IDI2Ljc1di0xMy41Wk0xNy4yNSAxMUMxNi4wMSAxMSAxNSAxMiAxNSAxMy4yNXYxMy41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDguNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMTMuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtOC41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUGFzdGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkUGFzdGUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk03LjUgNmgxLjY3QTMgMyAwIDAgMCAxMiA4aDZhMyAzIDAgMCAwIDIuODMtMmgxLjY3Yy44MyAwIDEuNS42NyAxLjUgMS41YTEgMSAwIDEgMCAyIDBBMy41IDMuNSAwIDAgMCAyMi41IDRoLTEuNjdBMyAzIDAgMCAwIDE4IDJoLTZhMyAzIDAgMCAwLTIuODMgMkg3LjVBMy41IDMuNSAwIDAgMCA0IDcuNXYxOUEzLjUgMy41IDAgMCAwIDcuNSAzMEgxMmExIDEgMCAxIDAgMC0ySDcuNUExLjUgMS41IDAgMCAxIDYgMjYuNXYtMTlDNiA2LjY3IDYuNjcgNiA3LjUgNlpNMTIgNGg2YTEgMSAwIDEgMSAwIDJoLTZhMSAxIDAgMSAxIDAtMlptNS41IDZhMy41IDMuNSAwIDAgMC0zLjUgMy41djEzYTMuNSAzLjUgMCAwIDAgMy41IDMuNWg4YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtMTNhMy41IDMuNSAwIDAgMC0zLjUtMy41aC04Wk0xNiAxMy41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDhjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQdWxzZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFB1bHNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjEwaC0xLjU3bC0uNTktMS4xN2ExLjUgMS41IDAgMCAwLTIuNjggMGwtLjMzLjY1LS45LTIuOTJhMS41IDEuNSAwIDAgMC0yLjgtLjE3TDUuNTMgMTBINFY0LjVDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWm01IDEwSDE2djMuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjVWMTNoMi41Yy42IDAgMS4xMy0uMzUgMS4zNy0uOWwuMzctLjgzLjgzIDIuNjdhMS41IDEuNSAwIDAgMCAyLjc3LjIzbC43NC0xLjQ4Yy4yNi4yLjU4LjMxLjkyLjMxWk04Ljk4IDYuODVhLjUuNSAwIDAgMC0uOTQtLjA1TDYuMTggMTFIMi41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAuNDYtLjNMOC40IDguNDJsMS42MSA1LjIzYS41LjUgMCAwIDAgLjkzLjA3bDEuNTUtMy4xLjU1IDEuMWEuNS41IDAgMCAwIC40NS4yOGg0YS41LjUgMCAwIDAgMC0xaC0zLjdsLS44NS0xLjcyYS41LjUgMCAwIDAtLjkgMGwtMS40NCAyLjg4LTEuNjMtNS4zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkUHVsc2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkUHVsc2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41VjEwaC0xVjQuNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uMi41OC0uNzYgMS0xLjQxIDFoLTNhMS41IDEuNSAwIDAgMS0xLjQxLTFINS41YS41LjUgMCAwIDAtLjUuNVYxMEg0VjQuNUM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTE1IDEzaDF2My41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNVYxM2gxdjMuNWMwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjVWMTNaTTguOTggNi44NWEuNS41IDAgMCAwLS45NC0uMDVMNi4xOCAxMUgyLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIC40Ni0uM0w4LjQgOC40MmwxLjYxIDUuMjNhLjUuNSAwIDAgMCAuOTMuMDdsMS41NS0zLjEuNTUgMS4xYS41LjUgMCAwIDAgLjQ1LjI4aDRhLjUuNSAwIDAgMCAwLTFoLTMuN2wtLjg1LTEuNzJhLjUuNSAwIDAgMC0uOSAwbC0xLjQ0IDIuODgtMS42My01LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQdWxzZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFB1bHNlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC4yNSAyaDMuNWMxLjE2IDAgMi4xMS44NyAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNVYxM2gtMi4yNmwtLjk5LTEuNjVhMS43NSAxLjc1IDAgMCAwLTMuMDcuMTJsLS41IDEuMDItMS4yNS00LjIzYTEuNzUgMS43NSAwIDAgMC0zLjI1LS4zTDYuMTcgMTNINFY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZjLjEzLTEuMTMgMS4wOC0yIDIuMjQtMlptMy41IDEuNWgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wm0zIDEzSDIwdjMuMjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVYxNi41aDMuMjVjLjY2IDAgMS4yNy0uMzcgMS41Ny0uOTdsMS0yLjAyIDEuMjUgNC4yM2ExLjc1IDEuNzUgMCAwIDAgMy4yNS4zbDEuMDgtMi4xOGMuMzMuNC44Mi42NCAxLjM1LjY0Wm0tNS43OC03Ljk2YS43NS43NSAwIDAgMC0xLjQtLjEzTDYuOCAxNEgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjI4IDAgLjU0LS4xNi42Ny0uNDFsMi4xNS00LjMgMS45NiA2LjY3YS43NS43NSAwIDAgMCAxLjQuMTNsMS44OC0zLjc4LjggMS4zM2MuMTMuMjIuMzguMzYuNjQuMzZoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC4wOGwtMS4yOC0yLjE0YS43NS43NSAwIDAgMC0xLjMxLjA1bC0xLjY1IDMuMy0xLjk2LTYuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRQdWxzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRQdWxzZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjc1IDJjMS4xNiAwIDIuMTEuODggMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjVWMTNoLTEuNVY2LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjEzYy0uNC42LTEuMDkgMS0xLjg3IDFoLTMuNWMtLjc4IDAtMS40Ny0uNC0xLjg3LTFINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjEzSDRWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJoMy41Wm0yLjI0IDIuMS4wMS4xNVY0LjFabS0yLjI0LS42aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVabTQuNzUgMTNIMjB2My4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjE2LjVoMS41djMuMjVjMCAuNDEuMzQuNzUuNzUuNzVoMTEuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVYxNi41Wm0tNy41My03Ljk2YS43NS43NSAwIDAgMC0xLjQtLjEzTDYuOCAxNEgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjVjLjI4IDAgLjU0LS4xNi42Ny0uNDFsMi4xNS00LjMgMS45NiA2LjY3YS43NS43NSAwIDAgMCAxLjQuMTNsMS44OC0zLjc4LjggMS4zM2MuMTMuMjIuMzguMzYuNjQuMzZoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC4wOGwtMS4yOC0yLjE0YS43NS43NSAwIDAgMC0xLjMxLjA1bC0xLjY1IDMuMy0xLjk2LTYuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRTZWFyY2gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRTZWFyY2gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djMuNzZhNC41IDQuNSAwIDAgMSA1LjU2IDYuMThsMiAyYy40Mi40Mi41NCAxLjAzLjM1IDEuNTZoMi41OWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1ptMyAxYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xaDNaTTguMyAxNC42YTMuNSAzLjUgMCAxIDAtLjcuN2wyLjU1IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w4LjMgMTQuNlptLTIuOC40YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkU2VhcmNoMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFNlYXJjaDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djMuNzZjLjMyLS4xMi42NS0uMiAxLS4yM1Y0LjVjMC0uMjguMjItLjUuNS0uNWgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC0yLjU5Yy4xMi4zMi4xMi42OCAwIDFoMi41OWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1ptMyAxYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEgMC0xaDNaTTguMyAxNC42YTMuNSAzLjUgMCAxIDAtLjcuN2wyLjU1IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w4LjMgMTQuNlptLTIuOC40YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkU2VhcmNoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkU2VhcmNoMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMy43NSAyaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djMuODVhNS41IDUuNSAwIDAgMSA3LjI1IDcuNjdsMi4yNCAyLjI0Yy41My41NC42NSAxLjM0LjM0IDEuOTloMy45MmMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJabS0zLjUgMS41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabS0uMyAxNC4zOWE0LjUgNC41IDAgMSAwLTEuMTUuOThsMi45MiAyLjkxYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuODMtMi44M1pNNi41IDE4YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFNlYXJjaDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRTZWFyY2gyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS45OSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2My44NWMuNDctLjI0Ljk3LS40MSAxLjUtLjVWNi4yNGMwLS40MS4zNC0uNzUuNzUtLjc1aDIuMTNjLjQuNiAxLjA5IDEgMS44NyAxaDMuNWMuNzggMCAxLjQ3LS40IDEuODctMWgyLjEzYy40MSAwIC43NS4zNC43NS43NXYxMy41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTMuOTJjLjIzLjQ3LjIzIDEuMDMgMCAxLjVoMy45MmMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2Wm0wIC4xLjAxLjE1VjQuMVptLTUuNzQtLjZoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVptLS4zIDE0LjM5YTQuNSA0LjUgMCAxIDAtMS4xNS45OGwyLjkyIDIuOTFhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi44My0yLjgzWk02LjUgMThhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkU2V0dGluZ3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRTZXR0aW5nczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjdhNS41IDUuNSAwIDAgMC01Ljc0IDguOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptMy41NyA4LjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVabTIuNDMgNC4wNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRTZXR0aW5nczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRTZXR0aW5nczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMDkgM2MuMi0uNTguNzYtMSAxLjQxLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaDEuNTljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC43Yy0uMzItLjA4LS42Ni0uMTUtMS0uMThWNC41YS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMUg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlaTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTMuNTcgOC40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43NCA0Ljc0IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkU2V0dGluZ3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRTZXR0aW5nczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMjUgMmgzLjVjMS4xNiAwIDIuMTEuODcgMi4yNCAyaDEuNzZDMTguOTkgNCAyMCA1IDIwIDYuMjV2NS4yNUE2LjUgNi41IDAgMCAwIDEyLjgxIDIySDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJabTMuNSAxLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNVptLjUzIDEwLjQ4YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjkxbC0uMi0uNjlhMiAyIDAgMCAxIDEuNDQtMi41bC41OS0uMTRhNS43MyA1LjczIDAgMCAwIDAtMS44bC0uNTUtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS40LS45NC0uNy0xLjQ5LS45M2wtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjlsLjIuN1pNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFNldHRpbmdzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFNldHRpbmdzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuNzUgMmMxLjE2IDAgMi4xMS44NyAyLjI0IDJoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXY1LjI1Yy0uNDctLjItLjk4LS4zNC0xLjUtLjQyVjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuMTNjLS40LjYtMS4wOSAxLTEuODcgMWgtMy41Yy0uNzggMC0xLjQ3LS40LTEuODctMUg2LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTMuNWMwIC40MS4zNC43NS43NS43NWg1LjQ4Yy4yOS41NS42NSAxLjA2IDEuMDggMS41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2Yy4xMy0xLjEzIDEuMDgtMiAyLjI0LTJoMy41Wm0yLjI0IDIuMDNWNHYuMDNabTAgLjA3LjAxLjE1di0uMTcuMDJabS0yLjI0LS42aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVabS41MyAxMC40OGEyIDIgMCAwIDEtMS40NCAyLjVsLS41OS4xNGE1LjczIDUuNzMgMCAwIDAgMCAxLjhsLjU1LjEzYTIgMiAwIDAgMSAxLjQ1IDIuNTFsLS4xOS42NGMuNDQuMzguOTQuNyAxLjQ5LjkybC40OS0uNTJhMiAyIDAgMCAxIDIuOSAwbC41LjUyYTUuMjggNS4yOCAwIDAgMCAxLjQ4LS45MWwtLjItLjY5YTIgMiAwIDAgMSAxLjQ0LTIuNWwuNTktLjE0YTUuNzMgNS43MyAwIDAgMCAwLTEuOGwtLjU1LS4xM2EyIDIgMCAwIDEtMS40NS0yLjUxbC4xOS0uNjNjLS40NC0uNC0uOTQtLjctMS40OS0uOTNsLS40OS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjU0LjIyLTEuMDQuNTMtMS40OC45bC4yLjdaTTE3LjUgMTljLS44IDAtMS40NS0uNjctMS40NS0xLjVTMTYuNyAxNiAxNy41IDE2Yy44IDAgMS40NS42NyAxLjQ1IDEuNVMxOC4zIDE5IDE3LjUgMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFzazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk02IDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptNC44NSA1LjM1LTMgM2EuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNy0uN0w3LjUgOS43OWwyLjY1LTIuNjRhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFzazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk02IDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNC41IDNoLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoLjU5Yy4yOCAwIC41LjIyLjUuNXYxMGEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMTBjMC0uMjguMjItLjUuNS0uNVptNi4zNSA0Ljg1YS41LjUgMCAwIDAtLjctLjdMNy41IDkuNzkgNi4zNSA4LjY1YS41LjUgMCAxIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwzLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFzazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFINS41QzQuNjcgMyA0IDMuNjcgNCA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNOCAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTQuODUgNi4zNS0zLjUgMy41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIC43LS43TDkgMTIuMjlsMy4xNS0zLjE0YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRhc2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFzazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyLjg1IDkuODVhLjUuNSAwIDAgMC0uNy0uN0w5IDEyLjI5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDMuNS0zLjVaTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk01LjUgNGgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFzazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuNzUgMmgtMy41Yy0xLjE2IDAtMi4xMS44Ny0yLjI0IDJINi4yNUM1LjAxIDQgNCA1IDQgNi4yNXYxMy41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDExLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNGgtMS43NmEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yWm0tMy41IDEuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wm02Ljc4IDcuNTMtNS41IDUuNWMtLjMuMy0uNzcuMy0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkwxMSAxNC45NGw0Ljk3LTQuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRhc2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFzazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3LjAzIDExLjAzYS43NS43NSAwIDEgMC0xLjA2LTEuMDZMMTEgMTQuOTRsLTEuOTctMS45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNSAyLjVjLjMuMy43Ny4zIDEuMDYgMGw1LjUtNS41Wm0tMS4wNC02Ljk1QTIuMjUgMi4yNSAwIDAgMCAxMy43NSAyaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djEzLjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoMTEuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2di4wOFptMCAuMDIuMDEuMTVWNC4xWm0tNS43NCAyLjRoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djEzLjVjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMVptMC0zaDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0FkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNi41IDJjLS42NSAwLTEuMi40Mi0xLjQxIDFIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoNi43NkE1LjUgNS41IDAgMCAxIDE0IDkuMDJWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM1pNNiAzLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVabTQuODUgNi4zNS0zLjUgMy41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIC43LS43TDcgMTIuMjlsMy4xNS0zLjE0YS41LjUgMCAwIDEgLjcuN1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRhc2tBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0FkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDMuNUMyLjY3IDMgMiAzLjY3IDIgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuNzZhNS41IDUuNSAwIDAgMS0uNjYtMUgzLjVhLjUuNSAwIDAgMS0uNS0uNXYtMTJjMC0uMjguMjItLjUuNS0uNWgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2NC43Yy4zMi0uMDguNjYtLjE1IDEtLjE4VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTYgMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm00Ljg1IDYuMzVhLjUuNSAwIDAgMC0uNy0uN0w3IDEyLjI5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDMuNS0zLjVaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrQWRkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0FkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEuNzUgMmgtMy41Yy0xLjE2IDAtMi4xMS44Ny0yLjI0IDJINC4yNUMzLjAxIDQgMiA1IDIgNi4yNXYxMy41QzIgMjAuOTkgMyAyMiA0LjI1IDIyaDguNTZhNi40OCA2LjQ4IDAgMCAxLS44NS03LjlsLTIuNDMgMi40M2MtLjMuMy0uNzcuMy0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw5IDE0Ljk0bDQuOTctNC45N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0uOTMuOTNhNi40NyA2LjQ3IDAgMCAxIDMuOS0uOTRWNi4yNUMxOCA1LjAxIDE3IDQgMTUuNzUgNGgtMS43NmEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yWm0tMy41IDEuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS01IC41djIuNWEuNS41IDAgMSAxLTEgMFYxOGgtMi41YS41LjUgMCAwIDEgMC0xSDE3di0yLjVhLjUuNSAwIDEgMSAxIDBWMTdoMi41YS41LjUgMCAwIDEgMCAxSDE4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0FkZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrQWRkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuOTkgNGEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yaC0zLjVjLTEuMTYgMC0yLjExLjg3LTIuMjQgMkg0LjI1QzMuMDEgNCAyIDUgMiA2LjI1djEzLjVDMiAyMC45OSAzIDIyIDQuMjUgMjJoOC41NmE2LjUyIDYuNTIgMCAwIDEtMS4wOC0xLjVINC4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi4xM2MuNC42IDEuMDkgMSAxLjg3IDFoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djQuODNhNi41NSA2LjU1IDAgMCAxIDEuNS0uMDZWNi4yNUMxOCA1LjAxIDE3IDQgMTUuNzUgNGgtMS43NlptMCAuMS4wMS4xNVY0LjFabS01Ljc0LS42aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTMuNyAxMC42YTYuNTQgNi41NCAwIDAgMSAyLjE1LTIuMTRsLjkzLS45M2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDkgMTQuOTRsLTEuOTctMS45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNSAyLjVjLjMuMy43Ny4zIDEuMDYgMGwyLjQzLTIuNDNaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrTGlzdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRhc2tMaXN0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMS41IDJoLS41OWMtLjItLjU4LS43Ni0xLTEuNDEtMWgtM2MtLjY1IDAtMS4yLjQyLTEuNDIgMUg0LjVDMy42NyAyIDMgMi42NyAzIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTBjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0tNSAwaDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFabS44NSA4LjM1LTEuNSAxLjVhLjUuNSAwIDAgMS0uNyAwbC0uNS0uNWEuNS41IDAgMCAxIC43LS43bC4xNS4xNCAxLjE0LTEuMTRhLjUuNSAwIDAgMSAuNzEuN1ptMC00LTEuNSAxLjVhLjUuNSAwIDAgMS0uNyAwbC0uNS0uNWEuNS41IDAgMCAxIC43LS43bC4xNS4xNCAxLjE0LTEuMTRhLjUuNSAwIDAgMSAuNzEuN1pNMTAuNSAxMUg5YS41LjUgMCAwIDEgMC0xaDEuNWEuNS41IDAgMCAxIDAgMVptMC00SDlhLjUuNSAwIDAgMSAwLTFoMS41YS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0xpc3QxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3QxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjUgNi41YzAtLjI4LjIyLS41LjUtLjVoMS41YS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVptMCA0YzAtLjI4LjIyLS41LjUtLjVoMS41YS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDhhLjUuNSAwIDAgMS0uMzUtLjE1bC0uNS0uNWEuNS41IDAgMCAxIC43LS43bC4xNS4xNCAxLjE1LTEuMTRhLjUuNSAwIDAgMSAuNy43bC0xLjUgMS41QS41LjUgMCAwIDEgNS41IDhabS0uMzUgMy44NWEuNS41IDAgMCAwIC43IDBsMS41LTEuNWEuNS41IDAgMCAwLS43LS43TDUuNSAxMC43OWwtLjE1LS4xNGEuNS41IDAgMCAwLS43LjdsLjUuNVpNNS4wOCAyYy4yMS0uNTguNzctMSAxLjQyLTFoM2MuNjUgMCAxLjIuNDIgMS40MSAxaC41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTEwQzMgMi42NyAzLjY3IDIgNC41IDJoLjU4Wk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk01LjA4IDNINC41YS41LjUgMCAwIDAtLjUuNXYxMGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEwYS41LjUgMCAwIDAtLjUtLjVoLS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40Mi0xWm0uNDIgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRhc2tMaXN0THRyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RMdHIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAyYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTggMy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0xLjM1IDQuMzVMNy42IDkuNmEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMSAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFhLjUuNSAwIDEgMSAuNzEuN1ptMCA0LjNjLjIuMi4yLjUgMCAuN0w3LjYgMTQuNmEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFptMS42NS42aDIuNWEuNS41IDAgMCAxIDAgMUgxMWEuNS41IDAgMCAxIDAtMVptLS41LTQuNWMwLS4yOC4yMi0uNS41LS41aDIuNWEuNS41IDAgMCAxIDAgMUgxMWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0xpc3RMdHIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RMdHIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjM1IDcuODVhLjUuNSAwIDAgMC0uNy0uN2wtMS40MiAxLjQtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAybDEuNzQtMS43NVptMCA0LjNjLjIuMi4yLjUgMCAuN0w3LjYgMTQuNmEuNS41IDAgMCAxLS42OS4wMmwtLjc1LS42OWEuNS41IDAgMCAxIC42OC0uNzNsLjQuMzYgMS40LTEuNDFjLjItLjIuNTItLjIuNzEgMFptMS42NS42YS41LjUgMCAwIDAgMCAxaDIuNWEuNS41IDAgMCAwIDAtMUgxMVptLS41LTQuNWMwLS4yOC4yMi0uNS41LS41aDIuNWEuNS41IDAgMCAxIDAgMUgxMWEuNS41IDAgMCAxLS41LS41Wk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk04IDMuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDRoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djEyYS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di0xMmMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0xpc3RMdHIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrTGlzdEx0cjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuNzUgMmgtMy41Yy0xLjE2IDAtMi4xMS44Ny0yLjI0IDJINi4yNUM1LjAxIDQgNCA1IDQgNi4yNXYxMy41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDExLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNGgtMS43NmEyLjI1IDIuMjUgMCAwIDAtMi4yNC0yWm0tMy41IDEuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0yLjI1IDYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSA0Ljc1aDMuNWEuNzUuNzUgMCAxIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAxIDEgMC0xLjVabS0yLjQ3LTUuMjItMiAyYy0uMy4zLS43Ny4zLTEuMDYgMGwtMS0xYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjQ3LjQ3IDEuNDctMS40N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2Wm0wIDQuNDRjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYy0uMy4zLS43Ny4zLTEuMDYgMGwtMS0xYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjQ3LjQ3IDEuNDctMS40N2MuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrTGlzdEx0cjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrTGlzdEx0cjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjUgMTAuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSA0Ljc1YS43NS43NSAwIDEgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMSAwIDAtMS41aC0zLjVabS0yLjQ3LTUuMjJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMS40NyAxLjQ3LS40Ny0uNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxIDFjLjMuMy43Ny4zIDEuMDYgMGwyLTJabTAgNC40NGMuMy4zLjMuNzcgMCAxLjA2bC0yIDJjLS4zLjMtLjc3LjMtMS4wNiAwbC0xLTFhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwuNDcuNDcgMS40Ny0xLjQ3Yy4zLS4zLjc3LS4zIDEuMDYgMFptNS4yMS0xMC4xNEEyLjI1IDIuMjUgMCAwIDAgMTMuNzUgMmgtMy41Yy0xLjE2IDAtMi4xMS44Ny0yLjI0IDJINi4yNUM1LjAxIDQgNCA1IDQgNi4yNXYxMy41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDExLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNGgtMS43NnYuMDhabTAgLjAyLjAxLjE1VjQuMVptLTUuNzQgMi40aDMuNWMuNzggMCAxLjQ3LS40IDEuODctMWgyLjEzYy40MSAwIC43NS4zNC43NS43NXYxMy41YzAgLjQxLS4zNC43NS0uNzUuNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi4xM2MuNC42IDEuMDkgMSAxLjg3IDFabTAtM2gzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0xpc3RSdGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrTGlzdFJ0bDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVpNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS4zNSA0LjE1YS41LjUgMCAwIDAtLjcgMGwtMS40MiAxLjQtLjQtLjM1YS41LjUgMCAwIDAtLjY3LjczbC43NS42OWMuMi4xOC41LjE3LjctLjAybDEuNzQtMS43NWEuNS41IDAgMCAwIDAtLjdabTAgNS43YS41LjUgMCAwIDAtLjctLjdsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVaTTYuNSA4YS41LjUgMCAwIDAgMCAxSDlhLjUuNSAwIDAgMCAwLTFINi41Wk02IDEzLjVjMCAuMjguMjIuNS41LjVIOWEuNS41IDAgMCAwIDAtMUg2LjVhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGFza0xpc3RSdGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RSdGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMy44NSA3LjE1Yy4yLjIuMi41IDAgLjdMMTIuMSA5LjZhLjUuNSAwIDAgMS0uNjkuMDJsLS43NS0uNjlhLjUuNSAwIDAgMSAuNjgtLjczbC40LjM2IDEuNC0xLjQxYy4yLS4yLjUyLS4yLjcxIDBabTAgNS43YS41LjUgMCAwIDAtLjctLjdsLTEuNDIgMS40LS40LS4zNWEuNS41IDAgMCAwLS42Ny43M2wuNzUuNjljLjIuMTguNS4xNy43LS4wMmwxLjc0LTEuNzVaTTYuNSA4YS41LjUgMCAwIDAgMCAxSDlhLjUuNSAwIDAgMCAwLTFINi41Wk02IDEzLjVjMC0uMjguMjItLjUuNS0uNUg5YS41LjUgMCAwIDEgMCAxSDYuNWEuNS41IDAgMCAxLS41LS41Wk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wk04LjUgM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03LjA5IDRINS41YS41LjUgMCAwIDAtLjUuNXYxMmMwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTEyYS41LjUgMCAwIDAtLjUtLjVoLTEuNTljLS4yLjU4LS43NiAxLTEuNDEgMWgtM2ExLjUgMS41IDAgMCAxLTEuNDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRhc2tMaXN0UnRsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGFza0xpc3RSdGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjc1IDJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZhMi4yNSAyLjI1IDAgMCAwLTIuMjQtMlptLTMuNSAxLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVptNy4wMyA1LjIyYy4zLjMuMy43NyAwIDEuMDZsLTIgMmMtLjMuMy0uNzcuMy0xLjA2IDBsLTEtMWEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bC40Ny40NyAxLjQ3LTEuNDdjLjMtLjMuNzctLjMgMS4wNiAwWm0wIDYuNTYtMiAyYy0uMy4zLS43Ny4zLTEuMDYgMGwtMS0xYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjQ3LjQ3IDEuNDctMS40N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2Wk03IDEwLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk03Ljc1IDE1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUYXNrTGlzdFJ0bDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUYXNrTGlzdFJ0bDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3LjI4IDguNzJjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYy0uMy4zLS43Ny4zLTEuMDYgMGwtMS0xYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjQ3LjQ3IDEuNDctMS40N2MuMy0uMy43Ny0uMyAxLjA2IDBabTAgNi41NmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjQ3IDEuNDctLjQ3LS40N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDEgMWMuMy4zLjc3LjMgMS4wNiAwbDItMlpNNyAxMC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNy43NSAxNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41Wm04LjI0LTExYTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZabS01Ljc0IDIuNWgzLjVjLjc4IDAgMS40Ny0uNCAxLjg3LTFoMi4xM2MuNDEgMCAuNzUuMzQuNzUuNzV2MTMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDYuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuMTNjLjQuNiAxLjA5IDEgMS44NyAxWm0wLTNoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMS44MyA0aDEuNjdBMy41IDMuNSAwIDAgMSAyNyA3LjV2MTlhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0xNUEzLjUgMy41IDAgMCAxIDUgMjYuNXYtMTlBMy41IDMuNSAwIDAgMSA4LjUgNGgxLjY3QTMgMyAwIDAgMSAxMyAyaDZhMyAzIDAgMCAxIDIuODMgMlpNMTkgNGgtNmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMlptLTggOGExIDEgMCAxIDAgMCAyaDEwYTEgMSAwIDEgMCAwLTJIMTFabS0xIDZhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDEgMCAwLTJoLTVhMSAxIDAgMCAwLTEgMVptMSA0YTEgMSAwIDEgMCAwIDJoOGExIDEgMCAxIDAgMC0yaC04WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExIDEyYTEgMSAwIDEgMCAwIDJoMTBhMSAxIDAgMSAwIDAtMkgxMVptLTEgNmExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMSAxIDAgMmgtNWExIDEgMCAwIDEtMS0xWm0xIDRhMSAxIDAgMSAwIDAgMmg4YTEgMSAwIDEgMCAwLTJoLThaTTIxLjgzIDRBMyAzIDAgMCAwIDE5IDJoLTZhMyAzIDAgMCAwLTIuODMgMkg4LjVBMy41IDMuNSAwIDAgMCA1IDcuNXYxOUEzLjUgMy41IDAgMCAwIDguNSAzMGgxNWEzLjUgMy41IDAgMCAwIDMuNS0zLjV2LTE5QTMuNSAzLjUgMCAwIDAgMjMuNSA0aC0xLjY3Wk0xMiA1YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAxIDEgMCAyaC02YTEgMSAwIDAgMS0xLTFaTTcgNy41QzcgNi42NyA3LjY3IDYgOC41IDZoMS42N0EzIDMgMCAwIDAgMTMgOGg2YTMgMyAwIDAgMCAyLjgzLTJoMS42N2MuODMgMCAxLjUuNjcgMS41IDEuNXYxOWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTE1QTEuNSAxLjUgMCAwIDEgNyAyNi41di0xOVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0RWRpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRFZGl0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djQuNzNjLS4zMy4xNC0uNjMuMzQtLjkuNjFMMTAuOTQgMTRINi41YS41LjUgMCAwIDAgMCAxaDMuNDlhMy4yIDMuMiAwIDAgMC0uNTYgMS4xNmwtLjM3IDEuNWMtLjAzLjExLS4wNS4yMy0uMDYuMzRINS41QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xMkM0IDMuNjcgNC42NyAzIDUuNSAzaDEuNTlabTQuOTEuNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNVpNMTMuNSA4aC03YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFaTTEwIDExLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVabS45OCAzLjg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEVkaXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEVkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDguNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptLjUgMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTYgMTQuNWMwLS4yOC4yMi0uNS41LS41aDQuNDRsLS42Ny42N2MtLjEuMS0uMi4yMS0uMjguMzNINi41YS41LjUgMCAwIDEtLjUtLjVaTTkuMjIgMTdINS41YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVoMS41OWMuMi41OC43NiAxIDEuNDEgMWgzYy42NSAwIDEuMi0uNDIgMS40MS0xaDEuNTljLjI4IDAgLjUuMjIuNS41djUuNDRsLjEtLjFjLjI3LS4yNy41Ny0uNDcuOS0uNlY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zYy0uNjUgMC0xLjIuNDItMS40MSAxSDUuNUM0LjY3IDMgNCAzLjY3IDQgNC41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41SDlsLjA2LS4zNS4xNi0uNjVaTTEyIDMuNWEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMSAwLTFoM2MuMjggMCAuNS4yMi41LjVabS0xLjAyIDExLjg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEVkaXQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0RWRpdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuOTggMy45NEEyLjI1IDIuMjUgMCAwIDAgMTMuNzUgMmgtMy41Yy0xLjE0IDAtMi4wOC44NS0yLjIzIDEuOTRsLS4wMS4xNFY0SDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMkgxMWMwLS4yLjAxLS40LjA2LS42bC40Ni0xLjgyYy4xLS4zOS4yNS0uNzUuNDYtMS4wOEg4QS43NS43NSAwIDAgMSA4IDE3aDUuMzZsNS4wMy01LjA0YTMuMjcgMy4yNyAwIDAgMSAxLjYxLS44OFY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2di4wOGwtLjAxLS4xNFptLTUuNzMtLjQ0aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTggMTNoNGEuNzUuNzUgMCAwIDEgMCAxLjVIOEEuNzUuNzUgMCAwIDEgOCAxM1ptMC00aDhhLjc1Ljc1IDAgMCAxIDAgMS41SDhBLjc1Ljc1IDAgMCAxIDggOVptMTEuMSAzLjY3LTUuOSA1LjljLS4zNS4zNS0uNi43OC0uNyAxLjI1bC0uNDcgMS44M2MtLjIuOC41MyAxLjUyIDEuMzIgMS4zMmwxLjgzLS40NmMuNDctLjEyLjktLjM2IDEuMjUtLjdsNS45LTUuOWEyLjI5IDIuMjkgMCAwIDAtMy4yMy0zLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEVkaXQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEVkaXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS45OSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMkgxMWMwLS4yLjAxLS40LjA2LS42bC4yMy0uOUg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMWgzLjVjLjc4IDAgMS40Ny0uNCAxLjg3LTFoMi4xM2MuNDEgMCAuNzUuMzQuNzUuNzV2NS42MWMuNDQtLjQuOTYtLjY2IDEuNS0uNzhWNi4yNUMyMCA1LjAxIDE5IDQgMTcuNzUgNGgtMS43NlptMCAuMS4wMS4xNVY0LjFabS01Ljc0LS42aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTMuMSAxMy41SDhhLjc1Ljc1IDAgMCAwIDAgMS41aDMuOThjLjE1LS4yMy4zMi0uNDQuNTEtLjY0bC44Ny0uODZaTTEyIDE0LjVIOEEuNzUuNzUgMCAwIDEgOCAxM2g0YS43NS43NSAwIDAgMSAwIDEuNVptNC00SDhBLjc1Ljc1IDAgMCAxIDggOWg4YS43NS43NSAwIDAgMSAwIDEuNVptMy4xIDIuMTctNS45IDUuOWMtLjM1LjM1LS42Ljc4LS43IDEuMjVsLS40NyAxLjgzYy0uMi44LjUzIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w1LjktNS45YTIuMjkgMi4yOSAwIDAgMC0zLjIzLTMuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0RWRpdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRFZGl0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMy41IDRoLTEuNjdBMyAzIDAgMCAwIDE5IDJoLTZhMyAzIDAgMCAwLTIuODMgMkg4LjVBMy41IDMuNSAwIDAgMCA1IDcuNXYxOUEzLjUgMy41IDAgMCAwIDguNSAzMGg1LjU1YTIuNSAyLjUgMCAwIDEgLjAzLTEuMTNsLjc5LTMuMDVjLjE4LS42OC41Mi0xLjMgMS0xLjgySDExYTEgMSAwIDEgMSAwLTJoNi44Nmw2LjY1LTYuN2MuNy0uNzEgMS41OC0xLjEzIDIuNDktMS4yNlY3LjVBMy41IDMuNSAwIDAgMCAyMy41IDRaTTEzIDRoNmExIDEgMCAxIDEgMCAyaC02YTEgMSAwIDEgMSAwLTJabS0zIDlhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAxIDEgMCAySDExYTEgMSAwIDAgMS0xLTFabTEgNGg1YTEgMSAwIDEgMSAwIDJoLTVhMSAxIDAgMSAxIDAtMlptMTguNjUgMy40Mi04LjYxIDguNTVjLS4zNS4zNS0uOC42LTEuMjcuNzJsLTMuMDIuNzhhMSAxIDAgMCAxLTEuMjItMS4yMmwuOC0zLjA1Yy4xMS0uNDYuMzUtLjg4LjY4LTEuMjFsOC41Ny04LjY0YTIuODggMi44OCAwIDEgMSA0LjA3IDQuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0RWRpdDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0RWRpdDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE5IDJhMyAzIDAgMCAxIDIuODMgMmgxLjY3QTMuNSAzLjUgMCAwIDEgMjcgNy41djYuNTRjLS43LjEtMS40LjM4LTIgLjgzVjcuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNjdBMyAzIDAgMCAxIDE5IDhoLTZhMyAzIDAgMCAxLTIuODMtMkg4LjVDNy42NyA2IDcgNi42NyA3IDcuNXYxOWMwIC44My42NyAxLjUgMS41IDEuNWg1LjhsLS4yMi44N2MtLjEuNC0uMS43Ny0uMDMgMS4xM0g4LjVBMy41IDMuNSAwIDAgMSA1IDI2LjV2LTE5QTMuNSAzLjUgMCAwIDEgOC41IDRoMS42N0EzIDMgMCAwIDEgMTMgMmg2Wm0tNiAyYTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0yaC02Wm00Ljg2IDE4LTEuOTIgMS45M2E0IDQgMCAwIDAtLjA2LjA3SDExYTEgMSAwIDEgMSAwLTJoNi44NlpNMTAgMTNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAxIDEgMCAySDExYTEgMSAwIDAgMS0xLTFabTEgNGExIDEgMCAxIDAgMCAyaDVhMSAxIDAgMSAwIDAtMmgtNVptMTguNjUgMy40Mi04LjYxIDguNTVjLS4zNS4zNS0uOC42LTEuMjcuNzJsLTMuMDIuNzhhMSAxIDAgMCAxLTEuMjItMS4yMmwuOC0zLjA1Yy4xMS0uNDYuMzUtLjg4LjY4LTEuMjFsOC41Ny04LjY0YTIuODggMi44OCAwIDEgMSA0LjA3IDQuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0THRyMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEx0cjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk02IDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDZoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpNNSA5YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDUgOVptLjUgMmg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEx0cjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0THRyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk02IDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNC41IDNoLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoLjU5Yy4yOCAwIC41LjIyLjUuNXYxMGEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMTBjMC0uMjguMjItLjUuNS0uNVptMSAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTUgOWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSA1IDlabS41IDJhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHRMdHIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0THRyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWm0zIDFhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFoM1ptLTUgNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0wIDNoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMVpNNiAxNC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEx0cjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbGlwYm9hcmRUZXh0THRyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi41IDhhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAxMS41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wm0uNSAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMi0xMmMtLjY1IDAtMS4yLjQyLTEuNDEgMUg1LjVDNC42NyAzIDQgMy42NyA0IDQuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWm0zIDFhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFoM1ptLTYgMWgxLjU5Yy4yLjU4Ljc2IDEgMS40MSAxaDNjLjY1IDAgMS4yLS40MiAxLjQxLTFoMS41OWMuMjggMCAuNS4yMi41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTEyYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0THRyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dEx0cjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuNzUgMy41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVabTAtMS41YzEuMTQgMCAyLjA4Ljg1IDIuMjMgMS45NGwuMDEuMTRWNGgxLjc2QzE4Ljk5IDQgMjAgNSAyMCA2LjI1djEzLjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY2LjI1QzQgNS4wMSA1IDQgNi4yNSA0aDEuNzZ2LjA4bC4wMS0uMTRBMi4yNSAyLjI1IDAgMCAxIDEwLjI1IDJoMy41Wk0xNCAxN0g4YS43NS43NSAwIDAgMCAwIDEuNWg2YS43NS43NSAwIDAgMCAwLTEuNVptLTItNEg4YS43NS43NSAwIDAgMCAwIDEuNWg0YS43NS43NSAwIDAgMCAwLTEuNVptNC00SDhhLjc1Ljc1IDAgMCAwIDAgMS41aDhBLjc1Ljc1IDAgMCAwIDE2IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0THRyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRMdHIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1LS4wMS0uMjVoMS43NkMxOC45OSA0IDIwIDUgMjAgNi4yNXYxMy41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNi4yNUM0IDUuMDEgNSA0IDYuMjUgNGgxLjc2di4xOEw4IDQuMjVDOCAzLjAxIDkgMiAxMC4yNSAyaDMuNVptMCA0LjVoLTMuNWMtLjggMC0xLjUtLjQxLTEuOS0xLjAzbC4wMy4wM0g2LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTMuNWMwIC40MS4zNC43NS43NS43NWgxMS41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuMTNsLjAyLS4wM2MtLjQuNjItMS4xIDEuMDMtMS44OSAxLjAzWm0wLTNoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNVpNOCAxNC41aDRhLjc1Ljc1IDAgMCAwIDAtMS41SDhhLjc1Ljc1IDAgMCAwIDAgMS41Wm0wLTRoOEEuNzUuNzUgMCAwIDAgMTYgOUg4YS43NS43NSAwIDAgMCAwIDEuNVptMCA4aDZhLjc1Ljc1IDAgMCAwIDAtMS41SDhhLjc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dEx0cjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRMdHIzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIxLjgzIDRoMS42N0EzLjUgMy41IDAgMCAxIDI3IDcuNXYxOWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTE1QTMuNSAzLjUgMCAwIDEgNSAyNi41di0xOUEzLjUgMy41IDAgMCAxIDguNSA0aDEuNjdBMyAzIDAgMCAxIDEzIDJoNmEzIDMgMCAwIDEgMi44MyAyWk0xOSA0aC02YTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0yWm0tOCA4YTEgMSAwIDEgMCAwIDJoMTBhMSAxIDAgMSAwIDAtMkgxMVptLTEgNmExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMSAwIDAtMmgtNWExIDEgMCAwIDAtMSAxWm0xIDRhMSAxIDAgMSAwIDAgMmg4YTEgMSAwIDEgMCAwLTJoLThaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0THRyMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRMdHIzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMSAxMmExIDEgMCAxIDAgMCAyaDEwYTEgMSAwIDEgMCAwLTJIMTFabS0xIDZhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDEgMSAwIDJoLTVhMSAxIDAgMCAxLTEtMVptMSA0YTEgMSAwIDEgMCAwIDJoOGExIDEgMCAxIDAgMC0yaC04Wk0yMS44MyA0QTMgMyAwIDAgMCAxOSAyaC02YTMgMyAwIDAgMC0yLjgzIDJIOC41QTMuNSAzLjUgMCAwIDAgNSA3LjV2MTlBMy41IDMuNSAwIDAgMCA4LjUgMzBoMTVhMy41IDMuNSAwIDAgMCAzLjUtMy41di0xOUEzLjUgMy41IDAgMCAwIDIzLjUgNGgtMS42N1pNMTIgNWExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMSAxIDAgMmgtNmExIDEgMCAwIDEtMS0xWk03IDcuNUM3IDYuNjcgNy42NyA2IDguNSA2aDEuNjdBMyAzIDAgMCAwIDEzIDhoNmEzIDMgMCAwIDAgMi44My0yaDEuNjdjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xNUExLjUgMS41IDAgMCAxIDcgMjYuNXYtMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0UnRsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dFJ0bDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi41IDFjLS42NSAwLTEuMi40Mi0xLjQxIDFINC41QzMuNjcgMiAzIDIuNjcgMyAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjU5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0zWk02IDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDZoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMVpNOCA5YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDggOVptLTEuNSAyaDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0UnRsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRSdGwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjUgMWMtLjY1IDAtMS4yLjQyLTEuNDEgMUg0LjVDMy42NyAyIDMgMi42NyAzIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTBjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0uNTljLS4yLS41OC0uNzYtMS0xLjQxLTFoLTNaTTYgMi41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk00LjUgM2guNTljLjIuNTguNzYgMSAxLjQxIDFoM2MuNjUgMCAxLjItLjQyIDEuNDEtMWguNTljLjI4IDAgLjUuMjIuNS41djEwYS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di0xMGMwLS4yOC4yMi0uNS41LS41Wm0xIDNhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNOCA5YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDggOVptLTEuNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0UnRsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dFJ0bDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4wOSAzYy4yLS41OC43Ni0xIDEuNDEtMWgzYy42NSAwIDEuMi40MiAxLjQxIDFoMS41OWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEyQzQgMy42NyA0LjY3IDMgNS41IDNoMS41OVptNC45MS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41Wk0xMC41IDExYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTYgOC41YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wk04LjUgMTRhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsaXBib2FyZFRleHRSdGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xpcGJvYXJkVGV4dFJ0bDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgOC41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41WlwiLCBcIk0xMC41IDExYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaXCIsIFwiTTguNSAxNGEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiLCBcIk03LjA5IDNjLjItLjU4Ljc2LTEgMS40MS0xaDNjLjY1IDAgMS4yLjQyIDEuNDEgMWgxLjU5Yy44MyAwIDEuNS42NyAxLjUgMS41djEyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTJDNCAzLjY3IDQuNjcgMyA1LjUgM2gxLjU5Wm00LjkxLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjUtLjVaTTcuMDkgNEg1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMS41OWMtLjIuNTgtLjc2IDEtMS40MSAxaC0zYTEuNSAxLjUgMCAwIDEtMS40MS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xpcGJvYXJkVGV4dFJ0bDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRSdGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1Ljk4IDMuOTRBMi4yNSAyLjI1IDAgMCAwIDEzLjc1IDJoLTMuNWMtMS4xNCAwLTIuMDguODUtMi4yMyAxLjk0bC0uMDEuMTRWNEg2LjI1QzUuMDEgNCA0IDUgNCA2LjI1djEzLjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoMTEuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1QzIwIDUuMDEgMTkgNCAxNy43NSA0aC0xLjc2di4wOGwtLjAxLS4xNFptLTUuNzMtLjQ0aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTggOWg4YS43NS43NSAwIDAgMSAwIDEuNUg4QS43NS43NSAwIDAgMSA4IDlabTMuMjUgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDRhLjc1Ljc1IDAgMCAxIDAgMS41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0xMCAxN2g2YS43NS43NSAwIDAgMSAwIDEuNWgtNmEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbGlwYm9hcmRUZXh0UnRsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0NsaXBib2FyZFRleHRSdGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDhBLjc1Ljc1IDAgMCAwIDE2IDlIOFpcIiwgXCJNMTEuMjUgMTMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0YS43NS43NSAwIDAgMSAwIDEuNWgtNGEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIiwgXCJNMTAgMTdhLjc1Ljc1IDAgMCAwIDAgMS41aDZhLjc1Ljc1IDAgMCAwIDAtMS41aC02WlwiLCBcIk0xNS45OSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJoLTMuNWMtMS4xNiAwLTIuMTEuODctMi4yNCAySDYuMjVDNS4wMSA0IDQgNSA0IDYuMjV2MTMuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuMjVDMjAgNS4wMSAxOSA0IDE3Ljc1IDRoLTEuNzZabTAgLjEuMDEuMTVWNC4xWm0tNS43NCAyLjRoMy41Yy43OCAwIDEuNDctLjQgMS44Ny0xaDIuMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djEzLjVjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjEzYy40LjYgMS4wOSAxIDEuODcgMVptMC0zaDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9jazEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02IDFhNSA1IDAgMSAxIDAgMTBBNSA1IDAgMCAxIDYgMVptLS41IDIuNUEuNS41IDAgMCAwIDUgNHYyLjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUg2VjRhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNiAxYTUgNSAwIDEgMSAwIDEwQTUgNSAwIDAgMSA2IDFabTAgMWE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThabS0uNSAxLjVhLjUuNSAwIDAgMSAuNS40MVY2aDEuNWEuNS41IDAgMCAxIC4wOSAxSDUuNWEuNS41IDAgMCAxLS41LS40MVY0YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9jazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptLS41IDNhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjMuNS41LjVoMmEuNS41IDAgMCAwIDAtMUg4VjUuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA4IDNabS0uNSAyYS41LjUgMCAwIDEgLjUuNDFWOGgxLjVhLjUuNSAwIDAgMSAuMDkgMUg3LjVhLjUuNSAwIDAgMS0uNDktLjQxVjUuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDEgMCAxNiA4IDggMCAwIDEgMC0xNlptLS41IDNhLjUuNSAwIDAgMC0uNS41djUuMDlhLjUuNSAwIDAgMCAuNS40MWgzLjA5YS41LjUgMCAwIDAtLjA5LTFIMTBWNS40MUEuNS41IDAgMCAwIDkuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabS0uNSAyYS41LjUgMCAwIDEgLjUuNDFWMTBoMi41YS41LjUgMCAwIDEgLjA5IDFIOS41YS41LjUgMCAwIDEtLjUtLjQxVjUuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9jazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuMjUgMTMuNWgtNGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNmEuNzUuNzUgMCAwIDEgMS41IDBWMTJoMy4yNWEuNzUuNzUgMCAwIDEgMCAxLjVaTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgMTJhOC41IDguNSAwIDEgMSAxNyAwIDguNSA4LjUgMCAwIDEtMTcgMFpNMTIgMmExMCAxMCAwIDEgMCAwIDIwIDEwIDEwIDAgMCAwIDAtMjBabTAgNC42NWEuNzUuNzUgMCAwIDAtMS41LjF2Ni4xYy4wNi4zNy4zNy42NS43NS42NWg0LjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxMlY2LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2syOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9jazI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTguMjUgMTUuNWgtNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtN2EuNzUuNzUgMCAwIDEgMS41IDBWMTRoNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVaTTE0IDJhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2syOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2syOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgMTRhMTAuNSAxMC41IDAgMSAxIDIxIDAgMTAuNSAxMC41IDAgMCAxLTIxIDBaTTE0IDJhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0Wm0wIDUuNjVhLjc1Ljc1IDAgMCAwLTEuNS4xdjcuMWMuMDYuMzcuMzcuNjUuNzUuNjVoNS4xYS43NS43NSAwIDAgMC0uMS0xLjVIMTRWNy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2szMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDMwYTE0IDE0IDAgMSAwIDAtMjggMTQgMTQgMCAwIDAgMCAyOFpNMTQgOWExIDEgMCAxIDEgMiAwdjdoNGExIDEgMCAxIDEgMCAyaC01YTEgMSAwIDAgMS0xLTFWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9jazMyTGlnaHQnLCBcIjMyXCIsIFtcIk0xNiA4LjVhLjUuNSAwIDAgMC0xIDB2OGMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xSDE2VjguNVpNMzAgMTZhMTQgMTQgMCAxIDEtMjggMCAxNCAxNCAwIDAgMSAyOCAwWm0tMSAwYTEzIDEzIDAgMSAwLTI2IDAgMTMgMTMgMCAwIDAgMjYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTQgOWExIDEgMCAxIDEgMiAwdjdoNGExIDEgMCAxIDEgMCAyaC01YTEgMSAwIDAgMS0xLTFWOVptMiAyMWExNCAxNCAwIDEgMCAwLTI4IDE0IDE0IDAgMCAwIDAgMjhabTAtMmExMiAxMiAwIDEgMSAwLTI0IDEyIDEyIDAgMCAxIDAgMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9jazQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA1YTE5IDE5IDAgMSAxIDAgMzggMTkgMTkgMCAwIDEgMC0zOFptLTEuMjUgN2MtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTJjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoOGExLjI1IDEuMjUgMCAxIDAgMC0yLjVIMjRWMTMuMjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2s0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2s0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCA1YTE5IDE5IDAgMSAxIDAgMzggMTkgMTkgMCAwIDEgMC0zOFptMCAyLjVhMTYuNSAxNi41IDAgMSAwIDAgMzMgMTYuNSAxNi41IDAgMCAwIDAtMzNaTTIyLjc1IDEyYy42NSAwIDEuMTguNSAxLjI0IDEuMTJsLjAxLjEzVjI0aDYuNzVhMS4yNSAxLjI1IDAgMCAxIC4xMyAyLjVoLTguMTNjLS42NSAwLTEuMTgtLjUtMS4yNC0xLjEybC0uMDEtLjEzdi0xMmMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQWxhcm0xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0FsYXJtMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDQuNWEyLjUgMi41IDAgMCAxIDQuNjItMS4zMyA1LjUxIDUuNTEgMCAwIDEgMi43NiAwIDIuNSAyLjUgMCAxIDEgMy43MiAzLjI1IDUuNDggNS40OCAwIDAgMS0uODcgNS42bDEuMTIgMS4xM2EuNS41IDAgMCAxLS43LjdsLTEuMTMtMS4xMmE1LjQ4IDUuNDggMCAwIDEtNy4wNCAwbC0xLjEzIDEuMTJhLjUuNSAwIDEgMS0uNy0uN2wxLjEyLTEuMTNhNS40OCA1LjQ4IDAgMCAxLS44Ny01LjZBMi41IDIuNSAwIDAgMSAyIDQuNVptMy42NC0uOTdBMS41IDEuNSAwIDEgMCAzLjQgNS41YTUuNTIgNS41MiAwIDAgMSAyLjI1LTEuOTdabTYuOTcgMS45N2ExLjUgMS41IDAgMSAwLTIuMjYtMS45OGMuOTMuNDUgMS43MSAxLjEzIDIuMjYgMS45OFptLTUuMTEgMEEuNS41IDAgMCAwIDcgNnYzYzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFIOFY2YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0FsYXJtMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQWxhcm0xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDZhLjUuNSAwIDEgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAxIDAgMC0xSDhWNlpNMiA0LjVhMi41IDIuNSAwIDAgMSA0LjYyLTEuMzMgNS41MSA1LjUxIDAgMCAxIDIuNzYgMCAyLjUgMi41IDAgMSAxIDMuNzIgMy4yNSA1LjQ4IDUuNDggMCAwIDEtLjg3IDUuNmwxLjEyIDEuMTNhLjUuNSAwIDAgMS0uNy43bC0xLjEzLTEuMTJhNS40OCA1LjQ4IDAgMCAxLTcuMDQgMGwtMS4xMyAxLjEyYS41LjUgMCAxIDEtLjctLjdsMS4xMi0xLjEzYTUuNDggNS40OCAwIDAgMS0uODctNS42QTIuNSAyLjUgMCAwIDEgMiA0LjVaTTQuNSAzYTEuNSAxLjUgMCAwIDAtMS4xMSAyLjUgNS41MiA1LjUyIDAgMCAxIDIuMjUtMS45N0ExLjUgMS41IDAgMCAwIDQuNSAzWm01Ljg2LjUzYy45Mi40NCAxLjcgMS4xMiAyLjI1IDEuOTdhMS41IDEuNSAwIDEgMC0yLjI2LTEuOThaTTggNGE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQWxhcm0yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0FsYXJtMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03Ljc2IDMuMzdBMy4xNiAzLjE2IDAgMCAwIDIgNS4xOWMwIDEuMDguNTMgMi4wMyAxLjM1IDIuNjFhNyA3IDAgMCAwIDEuMzYgNi43OGwtMS41NiAxLjU3YS41LjUgMCAwIDAgLjcuN2wxLjU3LTEuNTZhNi45NyA2Ljk3IDAgMCAwIDkuMTYgMGwxLjU3IDEuNTZhLjUuNSAwIDAgMCAuNy0uN2wtMS41Ni0xLjU3YTYuOTcgNi45NyAwIDAgMCAxLjM1LTYuOCAzLjE3IDMuMTcgMCAxIDAtNC40MS00LjQyIDcgNyAwIDAgMC00LjQ3IDBaTTUuMTYgM2MuNjYgMCAxLjI1LjMgMS42NS43N2E3LjAzIDcuMDMgMCAwIDAtMy4wNiAzLjA3QTIuMiAyLjIgMCAwIDEgNS4xNyAzWm04LjAyLjc2QTIuMTYgMi4xNiAwIDAgMSAxNyA1LjE4YzAgLjY2LS4zIDEuMjUtLjc2IDEuNjVhNy4wMyA3LjAzIDAgMCAwLTMuMDYtMy4wN1pNOS41IDZjLjI4IDAgLjUuMjIuNS41VjEwaDIuNWEuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41di00YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0FsYXJtMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQWxhcm0yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCA2LjVhLjUuNSAwIDAgMC0xIDB2NGMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAxIDAgMC0xSDEwVjYuNVpNMy4zNSA3LjhBMy4xOSAzLjE5IDAgMCAxIDUuMTcgMmMxLjA3IDAgMi4wMi41NCAyLjYgMS4zN2E3IDcgMCAwIDEgNC40NiAwQTMuMTYgMy4xNiAwIDAgMSAxOCA1LjE2YzAgMS4wOC0uNTQgMi4wNC0xLjM2IDIuNjFhNyA3IDAgMCAxLTEuMzUgNi44bDEuNTYgMS41N2EuNS41IDAgMCAxLS43LjdsLTEuNTctMS41NmE2Ljk3IDYuOTcgMCAwIDEtOS4xNiAwbC0xLjU3IDEuNTZhLjUuNSAwIDEgMS0uNy0uN2wxLjU2LTEuNTdBNi45NyA2Ljk3IDAgMCAxIDMuMzUgNy44Wk0zIDUuMTljMCAuNjYuMyAxLjI1Ljc1IDEuNjVhNy4wMyA3LjAzIDAgMCAxIDMuMDYtMy4wN0M2LjQxIDMuMyA1LjgyIDMgNS4xNyAzIDMuOTcgMyAzIDMuOTggMyA1LjE5Wm0xMy4yNCAxLjY0YTIuMTcgMi4xNyAwIDEgMC0zLjA2LTMuMDcgNy4wMyA3LjAzIDAgMCAxIDMuMDYgMy4wN1pNNCAxMGE2IDYgMCAxIDAgMTIgMCA2IDYgMCAwIDAtMTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQWxhcm0yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0FsYXJtMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjEgMy40OEE0IDQgMCAxIDAgMy40OCA5LjFhOC45OSA4Ljk5IDAgMCAwIDEuNjUgOC43MWwtMS45MSAxLjkxYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMS45LTEuOWE4Ljk2IDguOTYgMCAwIDAgMTEuNjMgMGwxLjkxIDEuOWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjktMS45YTguOTYgOC45NiAwIDAgMCAxLjY0LTguNzIgNCA0IDAgMSAwLTUuNjItNS42MiA4Ljk5IDguOTkgMCAwIDAtNS44IDBaTTYgMy41Yy42MyAwIDEuMi4yMyAxLjY1LjYyYTkuMDQgOS4wNCAwIDAgMC0zLjUzIDMuNTNBMi41IDIuNSAwIDAgMSA2IDMuNVptMTAuMzUuNjJhMi41IDIuNSAwIDAgMSAzLjUzIDMuNTMgOS4wNCA5LjA0IDAgMCAwLTMuNTMtMy41M1pNMTEuMjUgN2MuNDEgMCAuNzUuMzQuNzUuNzVWMTJoMi43NWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tBbGFybTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0FsYXJtMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgNy43NWEuNzUuNzUgMCAwIDAtMS41IDB2NWMwIC40MS4zNC43NS43NS43NWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEyVjcuNzVaTTMuNDggOS4xQTQgNCAwIDEgMSA5LjEgMy40OGE4Ljk5IDguOTkgMCAwIDEgNS44IDAgNCA0IDAgMSAxIDUuNjIgNS42MiA4Ljk5IDguOTkgMCAwIDEtMS42NSA4LjcxbDEuOTEgMS45MWEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0xLjktMS45YTguOTYgOC45NiAwIDAgMS0xMS42MyAwbC0xLjkxIDEuOWEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDEuOS0xLjlBOC45NiA4Ljk2IDAgMCAxIDMuNDkgOS4xWk0zLjUgNmMwIC42My4yMyAxLjIuNjIgMS42NWE5LjA0IDkuMDQgMCAwIDEgMy41My0zLjUzQTIuNSAyLjUgMCAwIDAgMy41IDZabTE2LjM4IDEuNjVhMi41IDIuNSAwIDAgMC0zLjUzLTMuNTMgOS4wNCA5LjA0IDAgMCAxIDMuNTMgMy41M1pNNC41IDEyYTcuNSA3LjUgMCAxIDAgMTUgMCA3LjUgNy41IDAgMCAwLTE1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0FsYXJtMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tBbGFybTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOCAzYzEuNTIgMCAyLjg5LjY4IDMuOCAxLjc1YTExLjk3IDExLjk3IDAgMCAxIDguNCAwIDQuOTkgNC45OSAwIDEgMSA3LjA1IDcuMDUgMTEuOTggMTEuOTggMCAwIDEtMi4wOSAxMS45NWwyLjU1IDIuNTRhMSAxIDAgMCAxLTEuNDIgMS40MmwtMi41NC0yLjU1YTExLjk1IDExLjk1IDAgMCAxLTE1LjUgMGwtMi41NCAyLjU1YTEgMSAwIDAgMS0xLjQyLTEuNDJsMi41NS0yLjU0QTExLjk1IDExLjk1IDAgMCAxIDQuNzUgMTEuOCA0Ljk5IDQuOTkgMCAwIDEgOCAzWk01LjY3IDkuODlhMTIuMDYgMTIuMDYgMCAwIDEgNC4yMi00LjIyIDMgMyAwIDAgMC00LjIyIDQuMjJabTE2LjQ0LTQuMjJhMTIuMDYgMTIuMDYgMCAwIDEgNC4yMiA0LjIyIDMgMyAwIDAgMC00LjIyLTQuMjJaTTE2IDEwYTEgMSAwIDEgMC0yIDB2N2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMSAwIDAtMmgtNHYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQWxhcm0zMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQWxhcm0zMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTYgOS41YS41LjUgMCAwIDAtMSAwdjdjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIDAtMUgxNlY5LjVaTTMgOGE1IDUgMCAwIDEgOC44LTMuMjUgMTEuOTcgMTEuOTcgMCAwIDEgOC40IDAgNC45OSA0Ljk5IDAgMSAxIDcuMDUgNy4wNSAxMS45OCAxMS45OCAwIDAgMS0yLjQyIDEyLjMzcy4wMiAwIC4wMi4wMmwzIDNhLjUuNSAwIDAgMS0uNy43bC0zLTMtLjAyLS4wMmExMS45NiAxMS45NiAwIDAgMS0xNi4yNiAwczAgLjAyLS4wMi4wMmwtMyAzYS41LjUgMCAwIDEtLjctLjdsMy0zIC4wMi0uMDJBMTEuOTYgMTEuOTYgMCAwIDEgNC43NSAxMS44IDQuOTkgNC45OSAwIDAgMSAzIDhabTEgMGMwIDEuMS40NSAyLjEgMS4xNyAyLjgzYTEyLjA1IDEyLjA1IDAgMCAxIDUuNjYtNS42NkEzLjk5IDMuOTkgMCAwIDAgNCA4Wm0yNCAwYTQgNCAwIDAgMC02LjgzLTIuODMgMTIuMDUgMTIuMDUgMCAwIDEgNS42NiA1LjY2QTMuOTkgMy45OSAwIDAgMCAyOCA4Wk0xNiAyN2ExMSAxMSAwIDEgMCAwLTIyIDExIDExIDAgMCAwIDAgMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0FsYXJtMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQWxhcm0zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiAxMHY2aDRhMSAxIDAgMSAxIDAgMmgtNWExIDEgMCAwIDEtMS0xdi03YTEgMSAwIDEgMSAyIDBaTTMgOGMwIDEuNTIuNjggMi44OSAxLjc1IDMuOGExMS45NyAxMS45NyAwIDAgMCAyLjA5IDExLjk1bC0yLjU1IDIuNTRhMSAxIDAgMSAwIDEuNDIgMS40MmwyLjU0LTIuNTVhMTEuOTUgMTEuOTUgMCAwIDAgMTUuNSAwbDIuNTQgMi41NWExIDEgMCAwIDAgMS40Mi0xLjQybC0yLjU1LTIuNTRhMTEuOTUgMTEuOTUgMCAwIDAgMi4wOS0xMS45NSA0Ljk5IDQuOTkgMCAxIDAtNy4wNS03LjA1IDExLjk3IDExLjk3IDAgMCAwLTguNCAwQTQuOTkgNC45OSAwIDAgMCAzIDhabTIgMGEzIDMgMCAwIDEgNC44OS0yLjMzIDEyLjA2IDEyLjA2IDAgMCAwLTQuMjIgNC4yMkEyLjk5IDIuOTkgMCAwIDEgNSA4Wm0yMiAwYzAgLjcyLS4yNSAxLjM3LS42NyAxLjg5YTEyLjA2IDEyLjA2IDAgMCAwLTQuMjItNC4yMkEzIDMgMCAwIDEgMjcgOFpNMTYgNmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0Fycm93RG93bmxvYWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0Fycm93RG93bmxvYWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExIDFhOCA4IDAgMSAxLS41OSAxNS45OCA1LjUgNS41IDAgMCAwLTcuMzktNy4zOUwzIDlhOCA4IDAgMCAxIDgtOFptLS41IDNhLjUuNSAwIDAgMC0uNS41djUuMDlhLjUuNSAwIDAgMCAuNS40MWgzLjA5YS41LjUgMCAwIDAtLjA5LTFIMTFWNC40MWEuNS41IDAgMCAwLS41LS40MVpNMSAxNC41YTQuNSA0LjUgMCAwIDEgNC00LjQ3djMuNzZsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEuNSAxLjVjLjIuMi41LjIuNyAwbDEuNS0xLjVhLjUuNSAwIDEgMC0uNy0uN2wtLjY1LjY0di0zLjc2YTQuNSA0LjUgMCAxIDEtNSA0LjQ3Wm03IDJhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0Fycm93RG93bmxvYWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tBcnJvd0Rvd25sb2FkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTEgMWE4IDggMCAxIDEtLjU5IDE1Ljk4Yy4xNi0uMzEuMjktLjY0LjM4LS45OEgxMWE3IDcgMCAxIDAtNy02LjhjLS4zNC4xLS42Ny4yMy0uOTguMzlMMyA5YTggOCAwIDAgMSA4LThabS0uNSAzYS41LjUgMCAwIDEgLjUuNDFWOWgyLjVhLjUuNSAwIDAgMSAuMDkgMUgxMC41YS41LjUgMCAwIDEtLjUtLjQxVjQuNWMwLS4yOC4yMi0uNS41LS41Wk0xIDE0LjVhNC41IDQuNSAwIDAgMSA0LTQuNDd2My43NmwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMS41LTEuNWEuNS41IDAgMSAwLS43LS43bC0uNjUuNjR2LTMuNzZhNC41IDQuNSAwIDEgMS01IDQuNDdabTcgMmEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAxIDAgMCAxaDRhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQXJyb3dEb3dubG9hZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQXJyb3dEb3dubG9hZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTYuMjUgMTIuNWgtNGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNmEuNzUuNzUgMCAwIDEgMS41IDBWMTFoMy4yNWEuNzUuNzUgMCAwIDEgMCAxLjVaTTEzIDFhMTAgMTAgMCAwIDAtOS45NSAxMUE2LjUgNi41IDAgMCAxIDEyIDIwLjk1IDEwIDEwIDAgMSAwIDEzIDFaTTEgMTcuNWE1LjUgNS41IDAgMCAxIDUtNS40OHY1Ljc3bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0w3IDE3Ljc5di01Ljc3YTUuNSA1LjUgMCAxIDEtNiA1LjQ4Wm0yLjUgM2MwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xSDRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tBcnJvd0Rvd25sb2FkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQXJyb3dEb3dubG9hZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuNSAxMWE4LjUgOC41IDAgMSAxIDguMTkgOC41Yy0uMTcuNTEtLjQgMS0uNjggMS40NUExMCAxMCAwIDEgMCAzLjA1IDEyYy40NS0uMjguOTQtLjUxIDEuNDYtLjY4TDQuNSAxMVpNMTMgNS42NWEuNzUuNzUgMCAwIDAtMS41LjF2Ni4xYy4wNi4zNy4zNy42NS43NS42NWg0LjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxM1Y1LjY1Wk0xIDE3LjVhNS41IDUuNSAwIDAgMSA1LTUuNDh2NS43N2wtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdMNyAxNy43OXYtNS43N2E1LjUgNS41IDAgMSAxLTYgNS40OFptOC41IDNBLjUuNSAwIDAgMCA5IDIwSDRhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tCaWxsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tCaWxsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMS45MiA2QTYgNiAwIDEgMCA3IDEyLjkyVjlhMyAzIDAgMCAxIC4xNy0xSDUuNWEuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAxIDEgMSAwVjdoMS41YS41LjUgMCAwIDEgLjIyLjA1QTMgMyAwIDAgMSAxMCA2aDEuOTJaTTE0IDdoLTRhMiAyIDAgMCAwLTIgMnY1YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMlptLS41IDdoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVptMC0yaC0zYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFabTAtMmgtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tCaWxsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQmlsbDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTExLjkyIDZBNiA2IDAgMSAwIDcgMTIuOTJWMTEuOUE1LjAyIDUuMDIgMCAwIDEgMSA3YTUgNSAwIDAgMSA5LjktMWgxLjAyWm0tNC4yIDEuMDVBLjUuNSAwIDAgMCA3LjUgN0g2VjQuNDFhLjUuNSAwIDAgMC0xIC4wOXYzbC4wMS4wOWEuNS41IDAgMCAwIC41LjQxaDEuNjZhMyAzIDAgMCAxIC41NS0uOTVaTTE0IDdoLTRhMiAyIDAgMCAwLTIgMnY1YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMlptLS41IDdoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVptMC0yaC0zYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFabTAtMmgtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tCaWxsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tCaWxsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNyA5YTggOCAwIDEgMC02IDcuNzVWMTNhMyAzIDAgMCAxIDMtM2gyLjk0Yy4wNC0uMzMuMDYtLjY2LjA2LTFaTTggNC41YS41LjUgMCAwIDEgMS0uMDlWOWgyLjVhLjUuNSAwIDAgMSAuMDkgMUg4LjVhLjUuNSAwIDAgMS0uNS0uNDFWNC41Wk0xOCAxMWgtNGEyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMlptLS41IDdoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVptMC0yaC0zYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFabTAtMmgtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tCaWxsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQmlsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDlhOCA4IDAgMSAwLTYgNy43NVYxNS43QTcgNyAwIDEgMSAxNS45MyAxMGgxYy4wNS0uMzMuMDctLjY2LjA3LTFaTTkgNC40MWEuNS41IDAgMCAwLTEgLjA5djUuMDlhLjUuNSAwIDAgMCAuNS40MWgzLjA5YS41LjUgMCAwIDAtLjA5LTFIOVY0LjQxWk0xOCAxMWgtNGEyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMlptLS41IDdoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMVptMC0yaC0zYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFabTAtMmgtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tCaWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tCaWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xIDExYTEwIDEwIDAgMSAxIDE5Ljk1IDFoLTMuN0EzLjI1IDMuMjUgMCAwIDAgMTQgMTUuMjV2NS4zQTEwIDEwIDAgMCAxIDEgMTFabTkuMjUgMS41aDRhLjc1Ljc1IDAgMCAwIDAtMS41SDExVjUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjZjMCAuNDEuMzQuNzUuNzUuNzVabTExLjUuNWgtNC41QzE2LjAxIDEzIDE1IDE0IDE1IDE1LjI1djYuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg0LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTYuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNVptLS4yNSA5aC00YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFabTAtM2gtNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxWm0wLTNoLTRhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQmlsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0JpbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMSAyLjVhOC41IDguNSAwIDEgMCAzIDE2LjQ2djEuNThBMTAgMTAgMCAxIDEgMjAuOTUgMTJoLTEuNUE4LjUgOC41IDAgMCAwIDExIDIuNVpNMTAuMjUgNWMuMzggMCAuNy4yOC43NC42NWwuMDEuMVYxMWgzLjI1YS43NS43NSAwIDAgMSAuMSAxLjVoLTQuMWEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xdi02YzAtLjQxLjM0LS43NS43NS0uNzVabTExLjUgOGgtNC41QzE2LjAxIDEzIDE1IDE0IDE1IDE1LjI1djYuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg0LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTYuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNVptLS4yNSA5aC00YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFabTAtM2gtNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxWm0wLTNoLTRhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQmlsbDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrQmlsbDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTcuNSAyOC43OEExNCAxNCAwIDEgMSAyOSAxNS41aC03Yy0uNzIgMC0xLjQuMTctMiAuNDdhMSAxIDAgMCAwLTEtLjk3aC00VjhhMSAxIDAgMSAwLTIgMHY4YTEgMSAwIDAgMCAxIDFoNC42NWE0LjQ4IDQuNDggMCAwIDAtMS4xNSAzdjguNzhaTTI5IDE3aC03YTMgMyAwIDAgMC0zIDN2OWEzIDMgMCAwIDAgMyAzaDdhMyAzIDAgMCAwIDMtM3YtOWEzIDMgMCAwIDAtMy0zWm0tLjc1IDEyaC01LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVabTAtNGgtNS41YS43NS43NSAwIDAgMSAwLTEuNWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41Wm0wLTRoLTUuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNS41YS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrQmlsbDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0JpbGwzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMyA4YTEgMSAwIDEgMSAyIDB2N2g0YTEgMSAwIDAgMSAxIC45N2MtLjUyLjI1LS45Ny42LTEuMzUgMS4wM0gxNGExIDEgMCAwIDEtMS0xVjhabTE0IDctLjAxLjVoMkwyOSAxNWExNCAxNCAwIDEgMC0xMS41IDEzLjc4di0yLjA0QTEyIDEyIDAgMSAxIDI3IDE1Wm0tNSAyaDdhMyAzIDAgMCAxIDMgM3Y5YTMgMyAwIDAgMS0zIDNoLTdhMyAzIDAgMCAxLTMtM3YtOWEzIDMgMCAwIDEgMy0zWm0uNzUgMTJoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMCAwIDEuNVptMC00aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNWEuNzUuNzUgMCAwIDAgMCAxLjVabTAtNGg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVhLjc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tEaXNtaXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMSAxYTggOCAwIDEgMS0uNTkgMTUuOTggNS41IDUuNSAwIDAgMC03LjM5LTcuMzlMMyA5YTggOCAwIDAgMSA4LThabS0uNSAzYS41LjUgMCAwIDAtLjUuNXY1LjA5YS41LjUgMCAwIDAgLjUuNDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xSDExVjQuNDFhLjUuNSAwIDAgMC0uNS0uNDFaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0w1LjUgMTMuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDYuMjEgMTQuNWwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0Rpc21pc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tEaXNtaXNzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTEgMWE4IDggMCAxIDEtLjU5IDE1Ljk4Yy4xNi0uMzEuMjktLjY0LjM4LS45OEgxMWE3IDcgMCAxIDAtNy02LjhjLS4zNC4xLS42Ny4yMy0uOTguMzlMMyA5YTggOCAwIDAgMSA4LThabS0uNSAzYS41LjUgMCAwIDEgLjUuNDFWOWgyLjVhLjUuNSAwIDAgMSAuMDkgMUgxMC41YS41LjUgMCAwIDEtLjUtLjQxVjQuNWMwLS4yOC4yMi0uNS41LS41Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMNS41IDEzLjc5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0w2LjIxIDE0LjVsMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tEaXNtaXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tEaXNtaXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi4yNSAxMi41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1di02YS43NS43NSAwIDAgMSAxLjUgMFYxMWgzLjI1YS43NS43NSAwIDAgMSAwIDEuNVpNMTMgMWExMCAxMCAwIDAgMC05Ljk1IDExQTYuNSA2LjUgMCAwIDEgMTIgMjAuOTUgMTAgMTAgMCAxIDAgMTMgMVptLTEgMTYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNS0yLjM1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdMNy4yMSAxNy41bDEuNjQtMS42NWEuNS41IDAgMCAwLS43LS43TDYuNSAxNi43OWwtMS42NS0xLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tEaXNtaXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrRGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuNSAxMWE4LjUgOC41IDAgMSAxIDguMTkgOC41Yy0uMTcuNTEtLjQgMS0uNjggMS40NUExMCAxMCAwIDEgMCAzLjA1IDEyYy40NS0uMjguOTQtLjUxIDEuNDYtLjY4TDQuNSAxMVpNMTMgNS42NWEuNzUuNzUgMCAwIDAtMS41LjF2Ni4xYy4wNi4zNy4zNy42NS43NS42NWg0LjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxM1Y1LjY1Wk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS01LjUtLjctMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdMNy4yMSAxNy41bDEuNjQtMS42NWEuNS41IDAgMCAwLS43LS43TDYuNSAxNi43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrTG9jazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrTG9jazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDEgMSAwIDEydi0zYTIgMiAwIDAgMC0xLjUtMS45NFY5YTMgMyAwIDAgMC00LjI1LTIuNzNBNiA2IDAgMCAxIDggMlptLS41IDNhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjMuNS41LjVoMmEuNS41IDAgMCAwIDAtMUg4VjUuNWEuNS41IDAgMCAwLS41LS41Wm0tNiA0djFIMWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjVWOWEyIDIgMCAxIDAtNCAwWm0xIDFWOWExIDEgMCAwIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tMb2NrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDEgMSAwIDEydi0xYTUgNSAwIDEgMC00LjU4LTdjLS40Mi4wMS0uODEuMS0xLjE3LjI3QTYgNiAwIDAgMSA4IDJabS0uNSAzYS41LjUgMCAwIDEgLjUuNDFWOGgxLjVhLjUuNSAwIDAgMSAuMDkgMUg3LjVhLjUuNSAwIDAgMS0uNDktLjQxVjUuNWMwLS4yOC4yMi0uNS41LS41Wm0tNiA0djFIMWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjVWOWEyIDIgMCAxIDAtNCAwWm0xIDFWOWExIDEgMCAwIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0xvY2syMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxLTEgMTUuOTRWMTRhMiAyIDAgMCAwLTEuNS0xLjk0VjEyQTMgMyAwIDAgMCAyIDEwLjMzVjEwYTggOCAwIDAgMSA4LThabS0uNSAzYS41LjUgMCAwIDAtLjUuNXY1LjA5YS41LjUgMCAwIDAgLjUuNDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xSDEwVjUuNDFBLjUuNSAwIDAgMCA5LjUgNVptLTcgN3YxSDJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tMb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDEtMSAxNS45NHYtMS4wMWE3IDcgMCAxIDAtNS45Ny03LjU0Yy0uNDEuMjMtLjc2LjU1LTEuMDIuOTRMMiAxMGE4IDggMCAwIDEgOC04Wm0tLjUgM2EuNS41IDAgMCAxIC41LjQxVjEwaDIuNWEuNS41IDAgMCAxIC4wOSAxSDkuNWEuNS41IDAgMCAxLS41LS40MVY1LjVjMC0uMjguMjItLjUuNS0uNVptLTcgN3YxSDJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja0xvY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1LjI1IDEzLjVoLTRhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTZhLjc1Ljc1IDAgMCAxIDEuNSAwVjEyaDMuMjVhLjc1Ljc1IDAgMCAxIDAgMS41Wk0xMiAyYTEwIDEwIDAgMCAwLTkuOTIgMTEuMjZBMy41IDMuNSAwIDAgMSA5IDE0di4wNWEyLjUgMi41IDAgMCAxIDIgMi40NXY1YzAgLjE1LS4wMS4zLS4wNC40NUExMCAxMCAwIDEgMCAxMiAyWk0zIDE1di0xYTIuNSAyLjUgMCAwIDEgNSAwdjFoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSAxIDIxLjV2LTVjMC0uODMuNjctMS41IDEuNS0xLjVIM1ptMS41LTF2MWgydi0xYTEgMSAwIDEgMC0yIDBabTIgNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja0xvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tMb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTEgMjEuNXYtMS4wNmE4LjUgOC41IDAgMSAwLTcuNDUtOS4zNSAzLjUgMy41IDAgMCAwLTEuNDcgMi4xNyAxMCAxMCAwIDEgMSA4Ljg4IDguNjljLjAzLS4xNS4wNC0uMy4wNC0uNDVabTEtMTQuODVhLjc1Ljc1IDAgMCAwLTEuNS4xdjYuMWMuMDYuMzcuMzcuNjUuNzUuNjVoNC4xYS43NS43NSAwIDAgMC0uMS0xLjVIMTJWNi42NVpNMyAxNXYtMWEyLjUgMi41IDAgMCAxIDUgMHYxaC41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgMSAyMS41di01YzAtLjgzLjY3LTEuNSAxLjUtMS41SDNabTEuNS0xdjFoMnYtMWExIDEgMCAxIDAtMiAwWm0yIDVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tQYXVzZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrUGF1c2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExIDFhOCA4IDAgMSAxLS41OSAxNS45OCA1LjUgNS41IDAgMCAwLTcuMzktNy4zOUwzIDlhOCA4IDAgMCAxIDgtOFptLS41IDNhLjUuNSAwIDAgMC0uNS41djUuMDlhLjUuNSAwIDAgMCAuNS40MWgzLjA5YS41LjUgMCAwIDAtLjA5LTFIMTFWNC40MWEuNS41IDAgMCAwLS41LS40MVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNNCAxN2EuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVabTMgMGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtMSAwdjRjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja1BhdXNlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrUGF1c2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMSAxYTggOCAwIDEgMS0uNTkgMTUuOThjLjE2LS4zMS4yOS0uNjQuMzgtLjk4SDExYTcgNyAwIDEgMC03LTYuOGMtLjM0LjEtLjY3LjIzLS45OC4zOUwzIDlhOCA4IDAgMCAxIDgtOFptLS41IDNhLjUuNSAwIDAgMSAuNS40MVY5aDIuNWEuNS41IDAgMCAxIC4wOSAxSDEwLjVhLjUuNSAwIDAgMS0uNS0uNDFWNC41YzAtLjI4LjIyLS41LjUtLjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTQgMTdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLTEgMHY0YzAgLjI4LjIyLjUuNS41Wm0zIDBhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLTEgMHY0YzAgLjI4LjIyLjUuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tQYXVzZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb2NrUGF1c2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjI1IDEyLjVoLTRhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTZhLjc1Ljc1IDAgMCAxIDEuNSAwVjExaDMuMjVhLjc1Ljc1IDAgMCAxIDAgMS41Wk0xMyAxYTEwIDEwIDAgMCAwLTkuOTUgMTFBNi41IDYuNSAwIDAgMSAxMiAyMC45NSAxMCAxMCAwIDEgMCAxMyAxWm0tMSAxNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS03LjUgM0EuNS41IDAgMCAwIDUgMjB2LTVhLjUuNSAwIDAgMC0xIDB2NWMwIC4yOC4yMi41LjUuNVptNCAwQS41LjUgMCAwIDAgOSAyMHYtNWEuNS41IDAgMCAwLTEgMHY1YzAgLjI4LjIyLjUuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tQYXVzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja1BhdXNlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC41IDExYTguNSA4LjUgMCAxIDEgOC4xOSA4LjVjLS4xNy41MS0uNCAxLS42OCAxLjQ1QTEwIDEwIDAgMSAwIDMuMDUgMTJjLjQ1LS4yOC45NC0uNTEgMS40Ni0uNjhMNC41IDExWk0xMyA1LjY1YS43NS43NSAwIDAgMC0xLjUuMXY2LjFjLjA2LjM3LjM3LjY1Ljc1LjY1aDQuMWEuNzUuNzUgMCAwIDAtLjEtMS41SDEzVjUuNjVaTTEyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcuNSAzQS41LjUgMCAwIDAgNSAyMHYtNWEuNS41IDAgMCAwLTEgMHY1YzAgLjI4LjIyLjUuNS41Wm00IDBBLjUuNSAwIDAgMCA5IDIwdi01YS41LjUgMCAwIDAtMSAwdjVjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja1Rvb2xib3gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja1Rvb2xib3gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExIDFhOCA4IDAgMSAxIDAgMTZ2LTMuNWEyLjUgMi41IDAgMCAwLTIuMDQtMi40NkEyLjUgMi41IDAgMCAwIDYuNSA5aC0yYy0uNTYgMC0xLjA3LjE4LTEuNDkuNDlBOCA4IDAgMCAxIDExIDFabS0uNSAzYS41LjUgMCAwIDAtLjUuNXY1LjA5YS41LjUgMCAwIDAgLjUuNDFoMy4wOWEuNS41IDAgMCAwLS4wOS0xSDExVjQuNDFhLjUuNSAwIDAgMC0uNS0uNDFaTTMgMTJ2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVIOHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVINHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVIMXYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDNabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVaTTggMTZoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgMSAxNy41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb2NrVG9vbGJveDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9ja1Rvb2xib3gyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMSAxYTggOCAwIDEgMSAwIDE2di0xYTcgNyAwIDEgMC03LTd2LjA1Yy0uMzYuMDctLjcuMjMtLjk5LjQ0QTggOCAwIDAgMSAxMSAxWm0tLjUgM2EuNS41IDAgMCAxIC41LjQxVjloMi41YS41LjUgMCAwIDEgLjA5IDFIMTAuNWEuNS41IDAgMCAxLS41LS40MVY0LjVjMC0uMjguMjItLjUuNS0uNVpNMyAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNUg4di0uNWEuNS41IDAgMCAwLTEgMHYuNUg0di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVIM1ptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVpNOCAxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSAxIDE3LjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvY2tUb29sYm94MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tUb29sYm94MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi4yNSAxMi41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1di02YS43NS43NSAwIDAgMSAxLjUgMFYxMWgzLjI1YS43NS43NSAwIDAgMSAwIDEuNVpNMTMgMWExMCAxMCAwIDAgMC05Ljk4IDEwLjYxQTIuNzQgMi43NCAwIDAgMSA0Ljc1IDExaDMuNUEyLjc1IDIuNzUgMCAwIDEgMTEgMTMuNzV2LjNhMi41IDIuNSAwIDAgMSAyIDIuNDVWMjFhMTAgMTAgMCAwIDAgMC0yMFpNOC4yNSAxMy41aC0zLjVhLjI1LjI1IDAgMCAwLS4yNS4yNVYxNWg0di0xLjI1YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wk0zIDE1di0xLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDMuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVYxNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxOGgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVINHYtLjVhLjUuNSAwIDAgMC0xIDB2LjVIMXYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41SDNabTYgNC41VjE5SDR2LjVhLjUuNSAwIDAgMS0xIDBWMTlIMXYyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTloLTJ2LjVhLjUuNSAwIDAgMS0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9ja1Rvb2xib3gyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvY2tUb29sYm94MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC41IDExYTguNSA4LjUgMCAxIDEgOC41IDguNVYyMWExMCAxMCAwIDEgMC05Ljk4LTkuMzljLjQxLS4zMy45Mi0uNTUgMS40OC0uNlYxMVpNMTMgNS42NWEuNzUuNzUgMCAwIDAtMS41LjF2Ni4xYy4wNi4zNy4zNy42NS43NS42NWg0LjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxM1Y1LjY1Wk04LjI0IDEzLjVoLTMuNWEuMjUuMjUgMCAwIDAtLjI1LjI1VjE1aDR2LTEuMjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVaTTMgMTV2LTEuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMy41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjE1aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE4aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNUg0di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVIM1ptNiA0LjVWMTlINHYuNWEuNS41IDAgMCAxLTEgMFYxOUgxdjIuNWMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxOWgtMnYuNWEuNS41IDAgMCAxLTEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgM0EyLjUgMi41IDAgMCAwIDEgNS41djVBMi41IDIuNSAwIDAgMCAzLjUgMTNoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDNoLTlabTUuNjggMi43YTEuOCAxLjggMCAwIDEgMi4wNy4zNS41LjUgMCAwIDEtLjcuNy44LjggMCAwIDAtLjkzLS4xNUM5LjM0IDYuNzQgOSA3LjE0IDkgOGMwIC44Ni4zNCAxLjI2LjYyIDEuNC4zLjE1LjY4LjEuOTMtLjE1YS41LjUgMCAwIDEgLjcuNyAxLjggMS44IDAgMCAxLTIuMDcuMzVDOC40NiA5Ljk0IDggOS4xNCA4IDhzLjQ2LTEuOTQgMS4xOC0yLjNabS0xLjkzLjM1YS41LjUgMCAwIDEtLjcuNy44LjggMCAwIDAtLjkzLS4xNUM1LjM0IDYuNzQgNSA3LjE0IDUgOGMwIC44Ni4zNCAxLjI2LjYyIDEuNC4zLjE1LjY4LjEuOTMtLjE1YS41LjUgMCAxIDEgLjcuNyAxLjggMS44IDAgMCAxLTIuMDcuMzVDNC40NiA5Ljk0IDQgOS4xNCA0IDhzLjQ2LTEuOTQgMS4xOC0yLjNhMS44IDEuOCAwIDAgMSAyLjA3LjM1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOS4xOCA1LjdhMS44IDEuOCAwIDAgMSAyLjA3LjM1LjUuNSAwIDAgMS0uNy43LjguOCAwIDAgMC0uOTMtLjE1QzkuMzQgNi43NCA5IDcuMTQgOSA4YzAgLjg2LjM0IDEuMjYuNjIgMS40LjMuMTUuNjguMS45My0uMTVhLjUuNSAwIDAgMSAuNy43IDEuOCAxLjggMCAwIDEtMi4wNy4zNUM4LjQ2IDkuOTQgOCA5LjE0IDggOHMuNDYtMS45NCAxLjE4LTIuM1ptLTEuOTMuMzVhMS44IDEuOCAwIDAgMC0yLjA3LS4zNUM0LjQ2IDYuMDYgNCA2Ljg2IDQgOHMuNDYgMS45NCAxLjE4IDIuM2MuNy4zNSAxLjUyLjIgMi4wNy0uMzVhLjUuNSAwIDEgMC0uNy0uNy44LjggMCAwIDEtLjkzLjE1QzUuMzQgOS4yNiA1IDguODYgNSA4YzAtLjg2LjM0LTEuMjYuNjItMS40YS44LjggMCAwIDEgLjkzLjE1LjUuNSAwIDAgMCAuNy0uN1pNMSA1LjVBMi41IDIuNSAwIDAgMSAzLjUgM2g5QTIuNSAyLjUgMCAwIDEgMTUgNS41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMSAxMC41di01Wk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgNGEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjdhMyAzIDAgMCAwLTMtM0g1Wm0xLjQgMy4yNGMuODItLjQxIDEuOC0uMjQgMi40NS40YS41LjUgMCAwIDEtLjcuNzEgMS4xMiAxLjEyIDAgMCAwLTEuMy0uMjJDNi40NCA4LjM0IDYgOC45IDYgMTBzLjQ0IDEuNjYuODUgMS44N2MuNDMuMjEuOTUuMTMgMS4zLS4yMmEuNS41IDAgMSAxIC43LjdjLS42NS42NS0xLjYzLjgyLTIuNDUuNDFDNS41NiAxMi4zNCA1IDExLjM5IDUgMTBjMC0xLjM5LjU2LTIuMzQgMS40LTIuNzZabTcuOTUuNGEuNS41IDAgMCAxLS43LjcxIDEuMTIgMS4xMiAwIDAgMC0xLjMtLjIyYy0uNDEuMjEtLjg1Ljc2LS44NSAxLjg3cy40NCAxLjY2Ljg1IDEuODdjLjQzLjIxLjk1LjEzIDEuMy0uMjJhLjUuNSAwIDAgMSAuNy43Yy0uNjUuNjUtMS42My44Mi0yLjQ1LjQxLS44NC0uNDItMS40LTEuMzctMS40LTIuNzYgMC0xLjM5LjU2LTIuMzQgMS40LTIuNzYuODItLjQxIDEuOC0uMjQgMi40NS40WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi40IDcuMjRjLjgyLS40MSAxLjgtLjI0IDIuNDUuNGEuNS41IDAgMCAxLS43LjcxIDEuMTIgMS4xMiAwIDAgMC0xLjMtLjIyQzYuNDQgOC4zNCA2IDguOSA2IDEwcy40NCAxLjY2Ljg1IDEuODdjLjQzLjIxLjk1LjEzIDEuMy0uMjJhLjUuNSAwIDAgMSAuNy43Yy0uNjUuNjUtMS42My44Mi0yLjQ1LjQxQzUuNTYgMTIuMzQgNSAxMS4zOSA1IDEwYzAtMS4zOS41Ni0yLjM0IDEuNC0yLjc2Wm03Ljk1LjRhMi4xMiAyLjEyIDAgMCAwLTIuNDUtLjRjLS44NC40Mi0xLjQgMS4zNy0xLjQgMi43NiAwIDEuMzkuNTYgMi4zNCAxLjQgMi43Ni44Mi40MSAxLjguMjQgMi40NS0uNGEuNS41IDAgMCAwLS43LS43MWMtLjM1LjM1LS44Ny40My0xLjMuMjItLjQxLS4yMS0uODUtLjc2LS44NS0xLjg3cy40NC0xLjY2Ljg1LTEuODdjLjQzLS4yMS45NS0uMTMgMS4zLjIyYS41LjUgMCAwIDAgLjctLjdaTTIgN2EzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3Wm0zLTJhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJINVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOC43NSA0QzIwLjU1IDQgMjIgNS40NiAyMiA3LjI1djkuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTYuNzV2LTkuNWEzLjI1IDMuMjUgMCAwIDEgMy4wNy0zLjI0TDUuMjUgNGgxMy41Wm0tOC4xMyA0LjZDOC4yMiA3LjIyIDUuNSA4Ljg1IDUuNSAxMmMwIDMuMTQgMi43MiA0Ljc3IDUuMTIgMy40YS43NS43NSAwIDAgMC0uNzQtMS4zQzguNDggMTQuOSA3IDE0IDcgMTJzMS40OC0yLjkgMi44OC0yLjFhLjc1Ljc1IDAgMCAwIC43NC0xLjNabTcuNSAwQzE1LjcyIDcuMjIgMTMgOC44NSAxMyAxMmMwIDMuMTQgMi43MiA0Ljc3IDUuMTIgMy40YS43NS43NSAwIDAgMC0uNzQtMS4zYy0xLjQuOC0yLjg4LS4xLTIuODgtMi4xczEuNDgtMi45IDIuODgtMi4xYS43NS43NSAwIDAgMCAuNzQtMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNzUgNEMyMC41NSA0IDIyIDUuNDYgMjIgNy4yNXY5LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1di05LjVhMy4yNSAzLjI1IDAgMCAxIDMuMDctMy4yNEw1LjI1IDRoMTMuNVptMCAxLjVINS4xMWMtLjkuMDgtMS42MS44My0xLjYxIDEuNzV2OS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEzLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di05LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1Wk01LjUgMTJjMC0zLjE1IDIuNzEtNC43OCA1LjEyLTMuNGEuNzUuNzUgMCAwIDEtLjc0IDEuM0M4LjQ4IDkuMSA3IDEwIDcgMTJzMS40OCAyLjkgMi44OCAyLjFhLjc1Ljc1IDAgMCAxIC43NCAxLjNjLTIuNCAxLjM3LTUuMTItLjI2LTUuMTItMy40Wm03LjUgMGMwLTMuMTUgMi43MS00Ljc4IDUuMTItMy40YS43NS43NSAwIDAgMS0uNzQgMS4zYy0xLjQtLjgtMi44OC4xLTIuODggMi4xczEuNDggMi45IDIuODggMi4xYS43NS43NSAwIDAgMSAuNzQgMS4zQzE1LjcyIDE2Ljc4IDEzIDE1LjE1IDEzIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTYuMjUgNEE0LjI1IDQuMjUgMCAwIDAgMiA4LjI1djExLjVDMiAyMi4xIDMuOSAyNCA2LjI1IDI0aDE1LjVDMjQuMSAyNCAyNiAyMi4xIDI2IDE5Ljc1VjguMjVDMjYgNS45IDI0LjEgNCAyMS43NSA0SDYuMjVabTQuOCA1Ljc0Yy42Mi4xIDEuMjMuMzIgMS42Ny42N2EuNzUuNzUgMCAxIDEtLjk0IDEuMThjLS4xOC0uMTUtLjUyLS4zLS45NS0uMzZhMi44MiAyLjgyIDAgMCAwLTEuMy4xYy0uNDIuMTUtLjc4LjQtMS4wNS44UzggMTMuMTEgOCAxNGMwIC44OC4yIDEuNDguNDggMS44OC4yNy40LjYzLjY0IDEuMDQuNzkuNDIuMTQuODkuMTcgMS4zMS4xLjQzLS4wNi43Ny0uMi45NS0uMzZhLjc1Ljc1IDAgMCAxIC45NCAxLjE4Yy0uNDQuMzUtMS4wNS41OC0xLjY3LjY3LS42My4xLTEuMzQuMDYtMi4wMS0uMThhMy41MyAzLjUzIDAgMCAxLTEuOC0xLjM2Yy0uNDgtLjctLjc0LTEuNi0uNzQtMi43MnMuMjYtMi4wMi43My0yLjcyYTMuNTMgMy41MyAwIDAgMSAxLjgtMS4zNiA0LjMyIDQuMzIgMCAwIDEgMi4wMi0uMThabTEwLjE3LjY3YS43NS43NSAwIDEgMS0uOTQgMS4xOGMtLjE4LS4xNS0uNTItLjMtLjk1LS4zNmEyLjgyIDIuODIgMCAwIDAtMS4zLjFjLS40Mi4xNS0uNzguNC0xLjA1LjhzLS40OC45OS0uNDggMS44N2MwIC44OC4yIDEuNDguNDggMS44OC4yNy40LjYzLjY0IDEuMDQuNzkuNDIuMTQuODkuMTcgMS4zMS4xLjQzLS4wNi43Ny0uMi45NS0uMzZhLjc1Ljc1IDAgMCAxIC45NCAxLjE4Yy0uNDQuMzUtMS4wNS41OC0xLjY3LjY3LS42My4xLTEuMzQuMDYtMi4wMS0uMThhMy41MyAzLjUzIDAgMCAxLTEuOC0xLjM2Yy0uNDgtLjctLjc0LTEuNi0uNzQtMi43MnMuMjYtMi4wMi43My0yLjcyYTMuNTMgMy41MyAwIDAgMSAxLjgtMS4zNiA0LjMyIDQuMzIgMCAwIDEgMi4wMi0uMThjLjYyLjEgMS4yMy4zMiAxLjY3LjY3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTEuMDUgOS43NGMuNjIuMSAxLjIzLjMyIDEuNjcuNjdhLjc1Ljc1IDAgMSAxLS45NCAxLjE4Yy0uMTgtLjE1LS41Mi0uMy0uOTUtLjM2YTIuODIgMi44MiAwIDAgMC0xLjMuMWMtLjQyLjE1LS43OC40LTEuMDUuOFM4IDEzLjExIDggMTRjMCAuODguMiAxLjQ4LjQ4IDEuODguMjcuNC42My42NCAxLjA0Ljc5LjQyLjE0Ljg5LjE3IDEuMzEuMS40My0uMDYuNzctLjIuOTUtLjM2YS43NS43NSAwIDAgMSAuOTQgMS4xOGMtLjQ0LjM1LTEuMDUuNTgtMS42Ny42Ny0uNjMuMS0xLjM0LjA2LTIuMDEtLjE4YTMuNTMgMy41MyAwIDAgMS0xLjgtMS4zNmMtLjQ4LS43LS43NC0xLjYtLjc0LTIuNzJzLjI2LTIuMDIuNzMtMi43MmEzLjUzIDMuNTMgMCAwIDEgMS44LTEuMzYgNC4zMiA0LjMyIDAgMCAxIDIuMDItLjE4Wm0xMC4xNy42N2EzLjUzIDMuNTMgMCAwIDAtMS42Ny0uNjcgNC4zMiA0LjMyIDAgMCAwLTIuMDEuMThjLS42OC4yMy0xLjMzLjY3LTEuOCAxLjM2LS40OC43LS43NCAxLjYtLjc0IDIuNzJzLjI2IDIuMDIuNzMgMi43MmMuNDguNyAxLjEzIDEuMTMgMS44IDEuMzYuNjguMjQgMS40LjI3IDIuMDIuMTguNjItLjEgMS4yMy0uMzIgMS42Ny0uNjdhLjc1Ljc1IDAgMSAwLS45NC0xLjE4Yy0uMTguMTUtLjUyLjMtLjk1LjM2LS40Mi4wNy0uODkuMDQtMS4zLS4xLS40Mi0uMTUtLjc4LS40LTEuMDUtLjhzLS40OC0uOTktLjQ4LTEuODdjMC0uODguMi0xLjQ4LjQ4LTEuODguMjctLjQuNjMtLjY0IDEuMDQtLjc5LjQyLS4xNC44OS0uMTcgMS4zMS0uMS40My4wNi43Ny4yLjk1LjM2YS43NS43NSAwIDAgMCAuOTQtMS4xOFpNMiA4LjI1QzIgNS45IDMuOSA0IDYuMjUgNGgxNS41QzI0LjEgNCAyNiA1LjkgMjYgOC4yNXYxMS41QzI2IDIyLjEgMjQuMSAyNCAyMS43NSAyNEg2LjI1QTQuMjUgNC4yNSAwIDAgMSAyIDE5Ljc1VjguMjVaTTYuMjUgNS41QTIuNzUgMi43NSAwIDAgMCAzLjUgOC4yNXYxMS41YTIuNzUgMi43NSAwIDAgMCAyLjc1IDIuNzVoMTUuNWEyLjc1IDIuNzUgMCAwIDAgMi43NS0yLjc1VjguMjVhMi43NSAyLjc1IDAgMCAwLTIuNzUtMi43NUg2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTYuNSA0QTQuNSA0LjUgMCAwIDAgMiA4LjV2MTVBNC41IDQuNSAwIDAgMCA2LjUgMjhoMTlhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xNUE0LjUgNC41IDAgMCAwIDI1LjUgNGgtMTlaTTkgMTZjMCAxLjc5IDEuMjQgMyAyLjUgMyAuNDYgMCAuOS0uMTUgMS4yNy0uNDJhMSAxIDAgMSAxIDEuMTcgMS42M2MtLjcuNS0xLjUzLjc5LTIuNDQuNzlDOC45IDIxIDcgMTguNjMgNyAxNnMxLjktNSA0LjUtNWMuOTUgMCAxLjgyLjMzIDIuNTQuODdhMSAxIDAgMSAxLTEuMjEgMS42Yy0uNC0uMy0uODUtLjQ3LTEuMzMtLjQ3LTEuMjYgMC0yLjUgMS4yMS0yLjUgM1ptMTIuNS0zYy0xLjI2IDAtMi41IDEuMjEtMi41IDNzMS4yNCAzIDIuNSAzYy40NiAwIC45LS4xNSAxLjI3LS40MmExIDEgMCAxIDEgMS4xNyAxLjYzYy0uNy41LTEuNTMuNzktMi40NC43OS0yLjYgMC00LjUtMi4zNy00LjUtNXMxLjktNSA0LjUtNWMuOTUgMCAxLjgyLjMzIDIuNTQuODdhMSAxIDAgMSAxLTEuMjEgMS42Yy0uNC0uMy0uODUtLjQ3LTEuMzMtLjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTEuNSAxM0MxMC4yNCAxMyA5IDE0LjIxIDkgMTZzMS4yNCAzIDIuNSAzYy40NiAwIC45LS4xNSAxLjI3LS40MmExIDEgMCAxIDEgMS4xNyAxLjYzYy0uNy41LTEuNTMuNzktMi40NC43OUM4LjkgMjEgNyAxOC42MyA3IDE2czEuOS01IDQuNS01Yy45NSAwIDEuODIuMzMgMi41NC44N2ExIDEgMCAxIDEtMS4yMSAxLjZjLS40LS4zLS44NS0uNDctMS4zMy0uNDdabTcuNSAzYzAtMS43OSAxLjI0LTMgMi41LTMgLjQ4IDAgLjkzLjE2IDEuMzMuNDZhMSAxIDAgMCAwIDEuMi0xLjZBNC4xOCA0LjE4IDAgMCAwIDIxLjUgMTFjLTIuNiAwLTQuNSAyLjM3LTQuNSA1czEuOSA1IDQuNSA1Yy45IDAgMS43NC0uMyAyLjQ0LS44YTEgMSAwIDEgMC0xLjE3LTEuNjJjLS4zOC4yNy0uODEuNDItMS4yNy40Mi0xLjI2IDAtMi41LTEuMjEtMi41LTNaTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMTlBNC41IDQuNSAwIDAgMSAzMCA4LjV2MTVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xOUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaTTYuNSA2QTIuNSAyLjUgMCAwIDAgNCA4LjV2MTVBMi41IDIuNSAwIDAgMCA2LjUgMjZoMTlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xNUEyLjUgMi41IDAgMCAwIDI1LjUgNmgtMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9zZWRDYXB0aW9uNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTAuNSA4QTYuNSA2LjUgMCAwIDAgNCAxNC41djE5YTYuNSA2LjUgMCAwIDAgNi41IDYuNWgyN2E2LjUgNi41IDAgMCAwIDYuNS02LjV2LTE5QTYuNSA2LjUgMCAwIDAgMzcuNSA4aC0yN1ptMy41MiA4Ljk4YzIuMzEtMS42NSA2LjEtMS4zNiA3Ljc5IDEuMzZhMS4yNSAxLjI1IDAgMCAxLTIuMTIgMS4zMmMtLjgtMS4yOC0yLjg3LTEuNi00LjIxLS42NC0uODQuNi0xLjk4IDEuODYtMS45OCA0Ljk4IDAgMy4xNiAxLjA4IDQuNCAxLjk0IDQuOTYuNjMuNDIgMS41Mi42MiAyLjM5LjUzLjg3LS4xIDEuNTQtLjQ2IDEuOS0uOTdhMS4yNSAxLjI1IDAgMCAxIDIuMDQgMS40NiA1LjEgNS4xIDAgMCAxLTMuNjggMiA2LjIzIDYuMjMgMCAwIDEtNC4wMy0uOTRDMTIuMzggMjkuOTQgMTEgMjcuODQgMTEgMjRjMC0zLjg4IDEuNDktNS45MiAzLjAyLTcuMDJabTIyLjc5IDEuMzZhMS4yNSAxLjI1IDAgMCAxLTIuMTIgMS4zMmMtLjgtMS4yOC0yLjg3LTEuNi00LjIxLS42NC0uODQuNi0xLjk4IDEuODYtMS45OCA0Ljk4IDAgMy4xNiAxLjA4IDQuNCAxLjk0IDQuOTYuNjMuNDIgMS41Mi42MiAyLjM5LjUzLjg3LS4xIDEuNTQtLjQ2IDEuOS0uOTdhMS4yNSAxLjI1IDAgMCAxIDIuMDQgMS40NiA1LjEgNS4xIDAgMCAxLTMuNjggMiA2LjIzIDYuMjMgMCAwIDEtNC4wMy0uOTRDMjcuMzggMjkuOTQgMjYgMjcuODQgMjYgMjRjMC0zLjg4IDEuNDktNS45MiAzLjAyLTcuMDIgMi4zMS0xLjY1IDYuMS0xLjM2IDcuNzkgMS4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb240OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTE0LjAyIDE2Ljk4YzIuMzEtMS42NSA2LjEtMS4zNiA3Ljc5IDEuMzZhMS4yNSAxLjI1IDAgMCAxLTIuMTIgMS4zMmMtLjgtMS4yOC0yLjg3LTEuNi00LjIxLS42NC0uODQuNi0xLjk4IDEuODYtMS45OCA0Ljk4IDAgMy4xNiAxLjA4IDQuNCAxLjk0IDQuOTYuNjMuNDIgMS41Mi42MiAyLjM5LjUzLjg3LS4xIDEuNTQtLjQ2IDEuOS0uOTdhMS4yNSAxLjI1IDAgMCAxIDIuMDQgMS40NiA1LjEgNS4xIDAgMCAxLTMuNjggMiA2LjIzIDYuMjMgMCAwIDEtNC4wMy0uOTRDMTIuMzggMjkuOTQgMTEgMjcuODQgMTEgMjRjMC0zLjg4IDEuNDktNS45MiAzLjAyLTcuMDJabTIyLjc5IDEuMzZjLTEuNy0yLjcyLTUuNDgtMy03Ljc5LTEuMzZDMjcuNSAxOC4wOCAyNiAyMC4xMiAyNiAyNGMwIDMuODQgMS4zOCA1LjkzIDMuMDYgNy4wNGE2LjIzIDYuMjMgMCAwIDAgNC4wMy45MyA1LjEgNS4xIDAgMCAwIDMuNjgtMiAxLjI1IDEuMjUgMCAwIDAtMi4wNC0xLjQ1Yy0uMzYuNTEtMS4wMy44Ny0xLjkuOTctLjg3LjA5LTEuNzYtLjExLTIuMzktLjUzLS44Ni0uNTctMS45NC0xLjgtMS45NC00Ljk2IDAtMy4xMiAxLjE0LTQuMzggMS45OC00Ljk4IDEuMzQtLjk2IDMuNC0uNjQgNC4yMS42NGExLjI1IDEuMjUgMCAwIDAgMi4xMi0xLjMyWk00IDE0LjVBNi41IDYuNSAwIDAgMSAxMC41IDhoMjdhNi41IDYuNSAwIDAgMSA2LjUgNi41djE5YTYuNSA2LjUgMCAwIDEtNi41IDYuNWgtMjdBNi41IDYuNSAwIDAgMSA0IDMzLjV2LTE5Wm02LjUtNGE0IDQgMCAwIDAtNCA0djE5YTQgNCAwIDAgMCA0IDRoMjdhNCA0IDAgMCAwIDQtNHYtMTlhNCA0IDAgMCAwLTQtNGgtMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9zZWRDYXB0aW9uT2ZmMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbk9mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTIuMyAxMyAxLjg1IDEuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDIuNSAzLjIxQTIuNSAyLjUgMCAwIDAgMSA1LjV2NUEyLjUgMi41IDAgMCAwIDMuNSAxM2g4LjhaTTUuODEgNi41M2EuNzkuNzkgMCAwIDAtLjIuMDdDNS4zNCA2Ljc0IDUgNy4xNCA1IDhjMCAuODYuMzQgMS4yNi42MiAxLjQuMy4xNS42OC4xLjkzLS4xNWEuNS41IDAgMSAxIC43LjcgMS44IDEuOCAwIDAgMS0yLjA3LjM1QzQuNDYgOS45NCA0IDkuMTQgNCA4YzAtMS4wNy40MS0xLjg1IDEuMDYtMi4yM2wuNzYuNzZabTMuOC4wN2ExIDEgMCAwIDAtLjQzLjQ2bDUuMTQgNS4xNUEyLjUgMi41IDAgMCAwIDE1IDEwLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDNINS4xMmwzLjM0IDMuMzRhMS44IDEuOCAwIDAgMSAyLjgtLjI5LjUuNSAwIDAgMS0uNzEuNy44LjggMCAwIDAtLjkzLS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb25PZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbk9mZjE2UmVndWxhcicsIFwiMTZcIiwgW1wibTEyLjMgMTMgMS44NSAxLjg1YS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN0wyLjUgMy4yMUEyLjUgMi41IDAgMCAwIDEgNS41djVBMi41IDIuNSAwIDAgMCAzLjUgMTNoOC44Wm0tMS0xSDMuNUExLjUgMS41IDAgMCAxIDIgMTAuNXYtNWMwLS43Ni41Ny0xLjQgMS4zLTEuNDlsMS43NiAxLjc2QzQuNCA2LjE1IDQgNi45MyA0IDhjMCAxLjE0LjQ2IDEuOTQgMS4xOCAyLjMuNy4zNCAxLjUyLjIgMi4wNy0uMzVhLjUuNSAwIDEgMC0uNy0uNy44LjggMCAwIDEtLjkzLjE1QzUuMzQgOS4yNiA1IDguODYgNSA4YzAtLjg2LjM0LTEuMjYuNjItMS40YS43OS43OSAwIDAgMSAuMi0uMDdMMTEuMyAxMlpNOC40NSA2LjM0bC43My43MmExIDEgMCAwIDEgLjQzLS40Ni44LjggMCAwIDEgLjkzLjE1LjUuNSAwIDAgMCAuNy0uNyAxLjggMS44IDAgMCAwLTIuMDctLjM1Yy0uMjkuMTQtLjUzLjM2LS43Mi42NFpNMTQgMTAuNWMwIC4zOC0uMTQuNzMtLjM4IDFsLjcuN2EyLjUgMi41IDAgMCAwIC42OC0xLjd2LTVBMi41IDIuNSAwIDAgMCAxMi41IDNINS4xMmwxIDFoNi4zOGMuODMgMCAxLjUuNjcgMS41IDEuNXY1WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbk9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb25PZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMS40OCAxLjQ4QTMgMyAwIDAgMCAyIDd2NmEzIDMgMCAwIDAgMyAzaDEwbC4yOC0uMDEgMS44NyAxLjg2YS41LjUgMCAwIDAgLjctLjdsLTEuNDgtMS40OC0zLjctMy43LTEuMDUtMS4wNUwxMC41IDkuOCA4Ljk0IDguMjMgNy43NyA3LjA2IDQuNzIgNC4wMSAyLjg1IDIuMTVabTQuNDYgNS44N2MtLjE2IDAtLjMxLjA0LS40Ni4xMUM2LjQ0IDguMzQgNiA4LjkgNiAxMHMuNDQgMS42Ni44NSAxLjg3Yy40My4yMS45NS4xMyAxLjMtLjIyYS41LjUgMCAxIDEgLjcuN2MtLjY1LjY1LTEuNjMuODItMi40NS40MUM1LjU2IDEyLjM0IDUgMTEuMzkgNSAxMGMwLTEuMzkuNTYtMi4zNCAxLjQtMi43NmwuMS0uMDQuODEuODJabTMuNDIuNTlMNi4xMyA0SDE1YTMgMyAwIDAgMSAzIDN2NmMwIC44LS4zMSAxLjUyLS44MiAyLjA2bC01LjY0LTUuNjRjLjEzLS43My40OC0xLjEyLjgtMS4yOS40NC0uMjEuOTYtLjEzIDEuMy4yMmEuNS41IDAgMCAwIC43MS0uNyAyLjEyIDIuMTIgMCAwIDAtMi40NS0uNDFjLS41Mi4yNi0uOTMuNzItMS4xNyAxLjM3WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbk9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQ4IDEuNDhBMyAzIDAgMCAwIDIgN3Y2YTMgMyAwIDAgMCAzIDNoMTBsLjI4LS4wMSAxLjg3IDEuODZhLjUuNSAwIDAgMCAuNy0uN2wtMS40OC0xLjQ4LS43Ni0uNzctMi45My0yLjkzLTEuMDYtMS4wNUwxMC41IDkuOCA4Ljk0IDguMjMgNy43NyA3LjA2IDQuNzIgNC4wMSAyLjg1IDIuMTVaTTE0LjMgMTVINWEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDEuMzktMS45bDIuMSAyLjEtLjA5LjA0QzUuNTYgNy42NiA1IDguNjEgNSAxMGMwIDEuMzkuNTYgMi4zNCAxLjQgMi43Ni44Mi40MSAxLjguMjQgMi40NS0uNGEuNS41IDAgMSAwLS43LS43MWMtLjM1LjM1LS44Ny40My0xLjMuMjJDNi40NCAxMS42NiA2IDExLjEgNiAxMHMuNDQtMS42Ni44NS0xLjg3Yy4xNS0uMDcuMy0uMS40Ni0uMTFMMTQuMyAxNVptMi45LjA2LS43Mi0uN0EyIDIgMCAwIDAgMTcgMTNWN2EyIDIgMCAwIDAtMi0ySDcuMTJsLTEtMUgxNWEzIDMgMCAwIDEgMyAzdjZjMCAuOC0uMzEgMS41Mi0uODIgMi4wNlptLTUuNjUtNS42NC0uODEtLjgxYy4yNC0uNjUuNjUtMS4xMSAxLjE3LTEuMzcuODItLjQxIDEuOC0uMjQgMi40NS40YS41LjUgMCAwIDEtLjcuNzEgMS4xMiAxLjEyIDAgMCAwLTEuMy0uMjJjLS4zMy4xNy0uNjguNTYtLjggMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbk9mZjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb25PZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDEuMjUgMS4yNUEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGgxMy42OWwxLjc4IDEuNzhhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTUuMyA3LjQxQzcuNjggOS43OCA3IDEwLjYzIDcgMTJjMCAyIDEuNDggMi45IDIuODggMi4xYS43NS43NSAwIDAgMSAuNzQgMS4zYy0yLjQgMS4zNy01LjEyLS4yNi01LjEyLTMuNCAwLTEuNy44LTIuOTYgMS45LTMuNTRsMS4xNyAxLjE3Wm04LjguMjdjLTEuMjQtLjctMi41NS0uMDgtMi44MyAxLjQ3bDcuMDEgNy4wMWMuMjgtLjQ4LjQ0LTEuMDMuNDQtMS42M3YtOS41QzIyIDUuNDUgMjAuNTQgNCAxOC43NSA0SDcuMThsNi4xOCA2LjE3YTMuMjYgMy4yNiAwIDAgMSA0Ljc2LTEuNTcuNzUuNzUgMCAwIDEtLjc0IDEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb25PZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbk9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDEuMjUgMS4yNUEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGgxMy42OWwxLjc4IDEuNzhhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJaTTE3LjQ0IDE4LjVINS4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di05LjVjMC0uNzMuNDQtMS4zNSAxLjA3LTEuNjFMNy40IDguNDZDNi4zIDkuMDQgNS41IDEwLjMgNS41IDEyYzAgMy4xNCAyLjcyIDQuNzcgNS4xMiAzLjRhLjc1Ljc1IDAgMCAwLS43NC0xLjNDOC40OCAxNC45IDcgMTQgNyAxMmMwLTEuMzcuNjktMi4yMiAxLjU3LTIuMzdsOC44NyA4Ljg3Wm0yLjk5LTEuMjVjLjA1LS4xNi4wNy0uMzIuMDctLjV2LTkuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC42OEw3LjE4IDRoMTEuNTdDMjAuNTUgNCAyMiA1LjQ2IDIyIDcuMjV2OS41YzAgLjYtLjE2IDEuMTUtLjQ0IDEuNjNsLTEuMTMtMS4xM1ptLTUuODgtNS44OC0xLjItMS4yYTMuMjYgMy4yNiAwIDAgMSA0Ljc3LTEuNTcuNzUuNzUgMCAwIDEtLjc0IDEuM2MtMS4yNC0uNy0yLjU1LS4wOC0yLjgzIDEuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG9zZWRDYXB0aW9uT2ZmMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbk9mZjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMS41MyAxLjUzQTQuMjQgNC4yNCAwIDAgMCAyIDguMjV2MTEuNUMyIDIyLjEgMy45IDI0IDYuMjUgMjRoMTUuNWMuMzYgMCAuNzItLjA1IDEuMDYtLjEzbDEuOSAxLjkxYS43NS43NSAwIDAgMCAxLjA3LTEuMDZMMy4yOCAyLjIyWm02Ljg2IDguOTljLS4yLjAxLS40Mi4wNi0uNjIuMTItLjQuMTUtLjc3LjQtMS4wNC44UzggMTMuMTEgOCAxNGMwIC44OC4yIDEuNDguNDggMS44OC4yNy40LjYzLjY0IDEuMDQuNzkuNDIuMTQuODkuMTcgMS4zMS4xLjQzLS4wNi43Ny0uMi45NS0uMzZhLjc1Ljc1IDAgMSAxIC45NCAxLjE4Yy0uNDQuMzUtMS4wNS41OC0xLjY3LjY3LS42My4xLTEuMzQuMDYtMi4wMS0uMThhMy41MyAzLjUzIDAgMCAxLTEuOC0xLjM2Yy0uNDgtLjctLjc0LTEuNi0uNzQtMi43MnMuMjYtMi4wMi43My0yLjcyQTMuNTIgMy41MiAwIDAgMSA4LjkgOS45NmwxLjI0IDEuMjVaTTcuMTggNGw4LjEzIDguMTJhMy41MyAzLjUzIDAgMCAxIDIuMjMtMi4yIDQuMzIgNC4zMiAwIDAgMSAyLjAxLS4xOGMuNjIuMSAxLjIzLjMyIDEuNjcuNjdhLjc1Ljc1IDAgMSAxLS45NCAxLjE4Yy0uMTgtLjE1LS41Mi0uMy0uOTUtLjM2YTIuODIgMi44MiAwIDAgMC0xLjMuMWMtLjQyLjE1LS43OC40LTEuMDUuOC0uMi4yOS0uMzcuNjktLjQ0IDEuMjNsMy4zIDMuMjljLjE4LS4wNy4zNC0uMTUuNDQtLjI0YS43NS43NSAwIDEgMSAuOTQgMS4xOGwtLjI3LjE4IDQuMzQgNC4zNGMuNDUtLjY4LjcxLTEuNDkuNzEtMi4zNlY4LjI1QzI2IDUuOSAyNC4xIDQgMjEuNzUgNEg3LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbk9mZjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG9zZWRDYXB0aW9uT2ZmMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMS41MyAxLjUzQTQuMjQgNC4yNCAwIDAgMCAyIDguMjV2MTEuNUMyIDIyLjEgMy45IDI0IDYuMjUgMjRoMTUuNWMuMzYgMCAuNzItLjA1IDEuMDYtLjEzbDEuOSAxLjkxYS43NS43NSAwIDAgMCAxLjA3LTEuMDZMMy4yOCAyLjIyWk0yMS40NCAyMi41SDYuMjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NVY4LjI1YzAtMSAuNTMtMS44OCAxLjMzLTIuMzZMOC45IDkuOTZjLS42My4yNS0xLjIyLjY3LTEuNjcgMS4zMi0uNDcuNy0uNzMgMS42LS43MyAyLjcycy4yNiAyLjAyLjczIDIuNzJjLjQ4LjcgMS4xMyAxLjEzIDEuOCAxLjM2LjY4LjI0IDEuNC4yNyAyLjAyLjE4LjYyLS4xIDEuMjMtLjMyIDEuNjctLjY3YS43NS43NSAwIDEgMC0uOTQtMS4xOGMtLjE4LjE1LS41Mi4zLS45NS4zNi0uNDIuMDctLjg5LjA0LTEuMy0uMS0uNDItLjE1LS43OC0uNC0xLjA1LS44UzggMTQuODkgOCAxNGMwLS44OC4yLTEuNDguNDgtMS44OC4yNy0uNC42My0uNjQgMS4wNC0uNzkuMi0uMDYuNDEtLjEuNjItLjEyTDE2IDE3LjA1Yy4xMS4xMy4yMy4yNC4zNS4zNWw1LjEgNS4xWk03LjE4IDRsMS41IDEuNWgxMy4wN2EyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djExLjVjMCAuNDUtLjExLjg4LS4zIDEuMjZsMS4wOSAxLjFjLjQ1LS42OC43MS0xLjQ5LjcxLTIuMzZWOC4yNUMyNiA1LjkgMjQuMSA0IDIxLjc1IDRINy4xOFptMTQuMDQgMTMuNTktLjI3LjE4LTEuMTItMS4xMmMuMi0uMDcuMzUtLjE1LjQ1LS4yNGEuNzUuNzUgMCAxIDEgLjk0IDEuMThabS01LjkxLTUuNDcgMS4yMyAxLjI0Yy4wNy0uNTQuMjQtLjk0LjQ0LTEuMjQuMjctLjQuNjMtLjY0IDEuMDQtLjc5LjQyLS4xNC44OS0uMTcgMS4zMS0uMS40My4wNi43Ny4yLjk1LjM2YS43NS43NSAwIDEgMCAuOTQtMS4xOCAzLjUzIDMuNTMgMCAwIDAtMS42Ny0uNjcgNC4zMiA0LjMyIDAgMCAwLTIuMDEuMTggMy41MyAzLjUzIDAgMCAwLTIuMjMgMi4yWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvc2VkQ2FwdGlvbk9mZjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3NlZENhcHRpb25PZmY0OEZpbGxlZCcsIFwiNDhcIiwgW1wibTM4LjIgMzkuOTYgMy42NyAzLjY3YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMNi4xMyA0LjM3YTEuMjUgMS4yNSAwIDEgMC0xLjc2IDEuNzZsMi43OSAyLjhBNi41IDYuNSAwIDAgMCA0IDE0LjV2MTlhNi41IDYuNSAwIDAgMCA2LjUgNi41aDI3Yy4yMyAwIC40Ny0uMDEuNy0uMDRaTTE2Ljc0IDE4LjVjLS40NS4wOC0uODkuMjUtMS4yNi41Mi0uODQuNi0xLjk4IDEuODYtMS45OCA0Ljk4IDAgMy4xNiAxLjA4IDQuNCAxLjk0IDQuOTYuNjMuNDIgMS41Mi42MiAyLjM5LjUzLjg3LS4xIDEuNTQtLjQ2IDEuOS0uOTdhMS4yNSAxLjI1IDAgMCAxIDIuMDQgMS40NiA1LjEgNS4xIDAgMCAxLTMuNjggMiA2LjIzIDYuMjMgMCAwIDEtNC4wMy0uOTRDMTIuMzggMjkuOTQgMTEgMjcuODQgMTEgMjRjMC0zLjg4IDEuNDktNS45MiAzLjAyLTcuMDIuMjQtLjE3LjQ5LS4zMS43NS0uNDRsMS45NyAxLjk2Wm0xMy43NC41MmMtLjc3LjU0LTEuNzggMS42NC0xLjk1IDQuMmw1Ljc1IDUuNzVjLjE4LS4xMy4zMy0uMjguNDUtLjQ1YTEuMjUgMS4yNSAwIDAgMSAyLjA0IDEuNDZjLS4yMS4yOS0uNDUuNTUtLjcxLjc3bDYuNjQgNi42NWE2LjQ3IDYuNDcgMCAwIDAgMS4zLTMuOXYtMTlBNi41IDYuNSAwIDAgMCAzNy41IDhIMTMuM2wxMy4wNSAxMy4wNGE2Ljk0IDYuOTQgMCAwIDEgMi42Ny00LjA2YzIuMzEtMS42NSA2LjEtMS4zNiA3Ljc5IDEuMzZhMS4yNSAxLjI1IDAgMCAxLTIuMTIgMS4zMmMtLjgtMS4yOC0yLjg3LTEuNi00LjIxLS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3NlZENhcHRpb25PZmY0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvc2VkQ2FwdGlvbk9mZjQ4UmVndWxhcicsIFwiNDhcIiwgW1wibTM4LjIgMzkuOTYgMy42NyAzLjY3YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMNi4xMyA0LjM3YTEuMjUgMS4yNSAwIDEgMC0xLjc2IDEuNzZsMi43OSAyLjhBNi41IDYuNSAwIDAgMCA0IDE0LjV2MTlhNi41IDYuNSAwIDAgMCA2LjUgNi41aDI3Yy4yMyAwIC40Ny0uMDEuNy0uMDRabS0yLjQ3LTIuNDZIMTAuNWE0IDQgMCAwIDEtNC00di0xOWE0IDQgMCAwIDEgMi41Mi0zLjcybDUuNzUgNS43NmMtLjI2LjEzLS41MS4yNy0uNzUuNDRDMTIuNSAxOC4wOCAxMSAyMC4xMiAxMSAyNGMwIDMuODQgMS4zOCA1LjkzIDMuMDYgNy4wNGE2LjIzIDYuMjMgMCAwIDAgNC4wMy45MyA1LjEgNS4xIDAgMCAwIDMuNjgtMiAxLjI1IDEuMjUgMCAwIDAtMi4wNC0xLjQ1Yy0uMzYuNTEtMS4wMy44Ny0xLjkuOTctLjg3LjA5LTEuNzYtLjExLTIuMzktLjUzLS44Ni0uNTctMS45NC0xLjgtMS45NC00Ljk2IDAtMy4xMiAxLjE0LTQuMzggMS45OC00Ljk4LjM3LS4yNy44LS40NCAxLjI2LS41MmwxOSAxOVptNS43Ny00YzAgLjc3LS4yMiAxLjQ5LS42IDIuMWwxLjggMS44YTYuNDcgNi40NyAwIDAgMCAxLjMtMy45di0xOUE2LjUgNi41IDAgMCAwIDM3LjUgOEgxMy4zbDIuNSAyLjVoMjEuN2E0IDQgMCAwIDEgNCA0djE5Wm0tNy4yMi00LjUzIDEuNzggMS43OGMuMjYtLjIyLjUtLjQ4LjctLjc3YTEuMjUgMS4yNSAwIDAgMC0yLjAzLTEuNDZjLS4xMi4xNy0uMjcuMzItLjQ1LjQ1Wm0tNy45My03LjkzIDIuMTggMi4xOGMuMTctMi41NiAxLjE4LTMuNjYgMS45NS00LjIgMS4zNC0uOTYgMy40LS42NCA0LjIxLjY0YTEuMjUgMS4yNSAwIDAgMCAyLjEyLTEuMzJjLTEuNy0yLjcyLTUuNDgtMy03Ljc5LTEuMzZhNi45NCA2Ljk0IDAgMCAwLTIuNjcgNC4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuMDMgNS41YTQgNCAwIDAgMSA3Ljk0IDAgMy4yNSAzLjI1IDAgMCAxLS4yMiA2LjVoLTcuNWEzLjI1IDMuMjUgMCAwIDEtLjIyLTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAzYTMgMyAwIDAgMC0zIDMgLjUuNSAwIDAgMS0uNS41aC0uMjVhMi4yNSAyLjI1IDAgMCAwIDAgNC41aDcuNWEyLjI1IDIuMjUgMCAwIDAgMC00LjVoLS4yNUEuNS41IDAgMCAxIDExIDZhMyAzIDAgMCAwLTMtM1pNNC4wMyA1LjVhNCA0IDAgMCAxIDcuOTQgMCAzLjI1IDMuMjUgMCAwIDEtLjIyIDYuNWgtNy41YTMuMjUgMy4yNSAwIDAgMS0uMjItNi41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNGMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdBMy4zMyAzLjMzIDAgMCAxIDE4IDExLjYyIDMuMzMgMy4zMyAwIDAgMSAxNC43MiAxNUg1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDExLjYyYTMuMzMgMy4zMyAwIDAgMSAzLjI4LTMuMzdoLjA3QzUuNiA1LjkgNy4xOCA0IDEwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDRjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3QTMuMzMgMy4zMyAwIDAgMSAxOCAxMS42MiAzLjMzIDMuMzMgMCAwIDEgMTQuNzIgMTVINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiAxMS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiA1LjkgNy4xOCA0IDEwIDRabTAgMUM3Ljg5IDUgNi41NSA2LjMyIDYuMzUgOC4zNWExIDEgMCAwIDEtMSAuOWgtLjA3QTIuMzMgMi4zMyAwIDAgMCAzIDExLjYyIDIuMzMgMi4zMyAwIDAgMCA1LjI4IDE0aDkuNDRBMi4zMyAyLjMzIDAgMCAwIDE3IDExLjYyYTIuMzMgMi4zMyAwIDAgMC0yLjI4LTIuMzdoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA2LjMyIDEyLjExIDUgMTAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMDggOS4wMmE2IDYgMCAwIDEgMTEuODQgMEE0LjUgNC41IDAgMCAxIDE3LjUgMThoLTExYTQuNSA0LjUgMCAwIDEtLjQyLTguOThaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDUuNWE0LjUgNC41IDAgMCAwLTQuNSA0LjI5Ljc1Ljc1IDAgMCAxLS43NC43MUg2LjVhMyAzIDAgMSAwIDAgNmgxMWEzIDMgMCAxIDAgMC02aC0uMjZhLjc1Ljc1IDAgMCAxLS43NC0uNzFBNC41IDQuNSAwIDAgMCAxMiA1LjVaTTYuMDggOS4wMmE2IDYgMCAwIDEgMTEuODQgMEE0LjUgNC41IDAgMCAxIDE3LjUgMThoLTExYTQuNSA0LjUgMCAwIDEtLjQyLTguOThaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCA1YTcgNyAwIDAgMC02LjkzIDYuMDJBNS41IDUuNSAwIDAgMCA3LjUgMjJoMTNhNS41IDUuNSAwIDAgMCAuNDMtMTAuOThBNyA3IDAgMCAwIDE0IDVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDYuNWE1LjUgNS41IDAgMCAwLTUuNSA1LjI4Ljc1Ljc1IDAgMCAxLS43NS43Mkg3LjVhNCA0IDAgMCAwIDAgOGgxM2E0IDQgMCAwIDAgMC04aC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzJBNS41IDUuNSAwIDAgMCAxNCA2LjVabS02LjkzIDQuNTJhNyA3IDAgMCAxIDEzLjg2IDBBNS41IDUuNSAwIDAgMSAyMC41IDIyaC0xM2E1LjUgNS41IDAgMCAxLS40My0xMC45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTkuODUgOC43NEE3LjY0IDcuNjQgMCAwIDEgMTYgNmMxLjcgMCAzLjY4LjU2IDUuMjYgMS44NWE3LjQ2IDcuNDYgMCAwIDEgMi43IDUuMmMxLjM3LjE3IDIuNy42OSAzLjc4IDEuNTFBNS41NSA1LjU1IDAgMCAxIDMwIDE5YzAgMS43NS0uNTggMy4zLTEuODQgNC40QzI2LjkyIDI0LjQ4IDI1LjE1IDI1IDIzIDI1SDljLTIuNyAwLTQuNTItLjgyLTUuNjMtMi4xQTUuOSA1LjkgMCAwIDEgMiAxOWMwLTIuMzYgMS45My01LjUzIDYuMDYtNS45NWE4LjQgOC40IDAgMCAxIDEuOC00LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExLjQgMTBhNi40NiA2LjQ2IDAgMCAwLTEuNCA0IDEgMSAwIDAgMS0xIDFjLTMuNjIgMC01IDIuNTMtNSA0IDAgLjg1LjIyIDEuODQuODggMi42QzUuNTIgMjIuMzEgNi43IDIzIDkgMjNoMTRjMS44NSAwIDMuMDgtLjQ1IDMuODQtMS4xMS43NC0uNjQgMS4xNi0xLjYgMS4xNi0yLjg5IDAtMS4xNi0uNTYtMi4xNC0xLjQ5LTIuODVBNS44NSA1Ljg1IDAgMCAwIDIzIDE1YTEgMSAwIDAgMS0xLTFjMC0yLjItLjg3LTMuNjctMi00LjZBNi40NiA2LjQ2IDAgMCAwIDE2IDhjLTIuMiAwLTMuNjcuODctNC42IDJaTTkuODUgOC43NUE3LjY0IDcuNjQgMCAwIDEgMTYgNmMxLjcgMCAzLjY4LjU2IDUuMjYgMS44NWE3LjQ2IDcuNDYgMCAwIDEgMi43IDUuMmMxLjM3LjE3IDIuNy42OSAzLjc4IDEuNTFBNS41NSA1LjU1IDAgMCAxIDMwIDE5YzAgMS43NS0uNTggMy4zLTEuODQgNC40QzI2LjkyIDI0LjQ4IDI1LjE1IDI1IDIzIDI1SDljLTIuNyAwLTQuNTItLjgyLTUuNjMtMi4xQTUuOSA1LjkgMCAwIDEgMiAxOWMwLTIuMzYgMS45My01LjUzIDYuMDYtNS45NWE4LjQgOC40IDAgMCAxIDEuOC00LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA5YTEyIDEyIDAgMCAwLTExLjk2IDExaC0uNTRhOC41IDguNSAwIDAgMCAwIDE3aDI1YTguNSA4LjUgMCAwIDAgMC0xN2gtLjU0QTEyIDEyIDAgMCAwIDI0IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI0IDExLjVhOS41IDkuNSAwIDAgMC05LjUgOS43MiAxLjI1IDEuMjUgMCAwIDEtMS4yNSAxLjI4SDExLjVhNiA2IDAgMCAwIDAgMTJoMjVhNiA2IDAgMCAwIDAtMTJoLTEuNzVhMS4yNSAxLjI1IDAgMCAxLTEuMjUtMS4yOFYyMWE5LjUgOS41IDAgMCAwLTkuNS05LjVaTTEyLjA0IDIwYTEyIDEyIDAgMCAxIDIzLjkyIDBoLjU0YTguNSA4LjUgMCAwIDEgMCAxN2gtMjVhOC41IDguNSAwIDAgMSAwLTE3aC41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQWRkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBZGQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuMDMgNS41YTQgNCAwIDAgMSA3Ljg5LS4zMkE1LjUgNS41IDAgMCAwIDUuMiAxMmgtLjk2YTMuMjUgMy4yNSAwIDAgMS0uMjItNi41Wm0xMC45NyA1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjEwSDguNWEuNS41IDAgMCAwIDAgMUgxMHYxLjVhLjUuNSAwIDAgMCAxIDBWMTFoMS41YS41LjUgMCAwIDAgMC0xSDExVjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQWRkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQWRkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAzYTMgMyAwIDAgMC0zIDMgLjUuNSAwIDAgMS0uNS41aC0uMjVhMi4yNSAyLjI1IDAgMCAwIDAgNC41aC43N2MuMDMuMzQuMS42OC4xOSAxaC0uOTZhMy4yNSAzLjI1IDAgMCAxLS4yMi02LjUgNCA0IDAgMCAxIDcuODktLjMyYy0uMzUtLjA5LS43MS0uMTUtMS4wOS0uMTdBMyAzIDAgMCAwIDggM1ptNyA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTBIOC41YS41LjUgMCAwIDAgMCAxSDEwdjEuNWEuNS41IDAgMCAwIDEgMFYxMWgxLjVhLjUuNSAwIDAgMCAwLTFIMTFWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmMyLjgyIDAgNC40MSAxLjkyIDQuNjUgNC4yNWguMDdhMy4zMyAzLjMzIDAgMCAxIDMuMjcgMy42NkE1Ljc0IDUuNzQgMCAwIDAgNy43NyAxM0g1LjI4QTMuMzMgMy4zMyAwIDAgMSAyIDkuNjJhMy4zMyAzLjMzIDAgMCAxIDMuMjgtMy4zN2guMDdDNS42IDMuOSA3LjE4IDIgMTAgMlptMy41IDE2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjEzaDEuNWEuNS41IDAgMCAxIDAgMUgxNHYxLjVhLjUuNSAwIDAgMS0xIDBWMTRoLTEuNWEuNS41IDAgMCAxIDAtMUgxM3YtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZjLS4zMi0uNC0uNy0uNzYtMS4xMi0xLjA3YTIuMyAyLjMgMCAwIDAtMi4xNS0xLjZoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMzIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMmgyLjY3Yy0uMDkuMzItLjE1LjY2LS4xOCAxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxM2gxLjVhLjUuNSAwIDAgMSAwIDFIMTR2MS41YS41LjUgMCAwIDEtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTN2LTEuNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4wOCA4LjAyYTYgNiAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNSA0Ljk3QTYuNSA2LjUgMCAwIDAgMTAuMDIgMTdINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOThaTTIyIDE2LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE3aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTZ2LTIuNWEuNS41IDAgMSAxIDEgMFYxNmgyLjVhLjUuNSAwIDAgMSAwIDFIMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFkZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDQuNWE0LjUgNC41IDAgMCAwLTQuNSA0LjI5Ljc1Ljc1IDAgMCAxLS43NC43MUg2LjVhMyAzIDAgMSAwIDAgNmgzLjU4YTYuNTUgNi41NSAwIDAgMC0uMDYgMS41SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYgNiAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNSA0Ljk3IDYuNTMgNi41MyAwIDAgMC0xLjgtMS44NUEzIDMgMCAwIDAgMTcuNSA5LjVoLS4yNmEuNzUuNzUgMCAwIDEtLjc0LS43MUE0LjUgNC41IDAgMCAwIDEyIDQuNVptMTAgMTJhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE3aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTZ2LTIuNWEuNS41IDAgMSAxIDEgMFYxNmgyLjVhLjUuNSAwIDAgMSAwIDFIMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFyY2hpdmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFyY2hpdmUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuMDMgNS41YTQgNCAwIDAgMSA3Ljk0IDBjMS4wNi4wOCAxLjk4LjY2IDIuNTIgMS41SDhhMiAyIDAgMCAwLTEgMy43M1YxMkg0LjI1YTMuMjUgMy4yNSAwIDAgMS0uMjItNi41Wk04IDhhMSAxIDAgMCAwIDAgMmg3YTEgMSAwIDEgMCAwLTJIOFptNyAzSDh2M2MwIDEuMS45IDIgMiAyaDNhMiAyIDAgMCAwIDItMnYtM1ptLTUgMS41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcmNoaXZlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJjaGl2ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggM2EzIDMgMCAwIDAtMyAzIC41LjUgMCAwIDEtLjUuNWgtLjI1YTIuMjUgMi4yNSAwIDAgMCAwIDQuNUg3djFINC4yNWEzLjI1IDMuMjUgMCAwIDEtLjIyLTYuNSA0IDQgMCAwIDEgNy45NCAwYzEuMDYuMDggMS45OC42NiAyLjUyIDEuNWgtMS4zM2MtLjM4LS4zMS0uODctLjUtMS40MS0uNWgtLjI1QS41LjUgMCAwIDEgMTEgNmEzIDMgMCAwIDAtMy0zWm0wIDVhMSAxIDAgMCAwIDAgMmg3YTEgMSAwIDEgMCAwLTJIOFptNSA4YTIgMiAwIDAgMCAyLTJ2LTNIOHYzYzAgMS4xLjkgMiAyIDJoM1ptLTMtMy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcmNoaXZlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcmNoaXZlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA0YzIuODIgMCA0LjQxIDEuOTIgNC42NSA0LjI1aC4wN2MxLjI0IDAgMi4zMi43IDIuODggMS43NUgxMWEyIDIgMCAwIDAtMSAzLjczVjE1SDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTEuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgNS45IDcuMTggNCAxMCA0Wm0wIDhhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDEgMSAwIDJoLTdhMSAxIDAgMCAxLTEtMVptOCAyaC03djNjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJ2LTNabS00LjUgMWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcmNoaXZlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJjaGl2ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDRjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YzEuMjQgMCAyLjMyLjcgMi44OCAxLjc1aC0xLjIxYTIuMjQgMi4yNCAwIDAgMC0xLjY3LS43NWgtLjA3YTEgMSAwIDAgMS0xLS45QzEzLjQ1IDYuMzIgMTIuMTEgNSAxMCA1UzYuNTUgNi4zMiA2LjM1IDguMzVhMSAxIDAgMCAxLTEgLjloLS4wN0EyLjMzIDIuMzMgMCAwIDAgMyAxMS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxNEgxMHYxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgMTEuNjJjMC0xLjggMS4zNy0zLjI3IDMuMS0zLjM3aC4yNUM1LjYgNS45IDcuMTggNCAxMCA0Wm0wIDhhMSAxIDAgMCAxIDEtMWg3YTEgMSAwIDEgMSAwIDJoLTdhMSAxIDAgMCAxLTEtMVptOCAyaC03djNjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJ2LTNabS00LjUgMWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcmNoaXZlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcmNoaXZlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjA4IDkuMDJhNiA2IDAgMCAxIDExLjg0IDBBNC41IDQuNSAwIDAgMSAyMS43NCAxMkgxM2EyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDEgMS43M1YxOEg2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OFpNMTMgMTNhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoOWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMC0xLTFoLTlabTkgNGgtOXY0YzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi00Wm0tNi41IDEuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJjaGl2ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFyY2hpdmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA1LjVhNC41IDQuNSAwIDAgMC00LjUgNC4yOS43NS43NSAwIDAgMS0uNzQuNzFINi41YTMgMyAwIDEgMCAwIDZoNS4xOGMuMS4wOS4yLjE3LjMyLjIzVjE4SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYgNiAwIDAgMSAxMS44NCAwQTQuNSA0LjUgMCAwIDEgMjEuNzQgMTJIMjAuMWEzIDMgMCAwIDAtMi42LTEuNWgtLjI2YS43NS43NSAwIDAgMS0uNzQtLjcxQTQuNSA0LjUgMCAwIDAgMTIgNS41Wm0xIDcuNWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg5YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAwLTEtMWgtOVptNyAxMGEyIDIgMCAwIDAgMi0ydi00aC05djRjMCAxLjEuOSAyIDIgMmg1Wm0tNC41LTQuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJjaGl2ZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJjaGl2ZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgNGE3IDcgMCAwIDAtNi45MyA2LjAyQTUuNSA1LjUgMCAwIDAgNy41IDIxSDE0di0zLjI3QTIgMiAwIDAgMSAxMyAxNnYtMWMwLTEuMS45LTIgMi0yaDEwLjRhNS41IDUuNSAwIDAgMC00LjQ3LTIuOThBNyA3IDAgMCAwIDE0IDRabTEgMTBhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMCAxIDFoMTFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDAtMS0xSDE1Wm0wIDRoMTF2NWEzIDMgMCAwIDEtMyAzaC01YTMgMyAwIDAgMS0zLTN2LTVabTcuNSAyaC00YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFyY2hpdmUyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcmNoaXZlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTQgNS41YTUuNSA1LjUgMCAwIDAtNS41IDUuMjguNzUuNzUgMCAwIDEtLjc1LjcySDcuNWE0IDQgMCAwIDAgMCA4SDE0VjIxSDcuNWE1LjUgNS41IDAgMCAxLS40My0xMC45OCA3IDcgMCAwIDEgMTMuODYgMEE1LjUgNS41IDAgMCAxIDI1LjQgMTNoLTEuNzhhNCA0IDAgMCAwLTMuMTItMS41aC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzJBNS41IDUuNSAwIDAgMCAxNCA1LjVabTEgOC41YTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxaDExYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAwLTEtMUgxNVptMCA5di01aDExdjVhMyAzIDAgMCAxLTMgM2gtNWEzIDMgMCAwIDEtMy0zWm04LTIuNWEuNS41IDAgMCAwLS41LS41aC00YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJjaGl2ZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJjaGl2ZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOS44NSA3Ljc0QTcuNjQgNy42NCAwIDAgMSAxNiA1YzEuNyAwIDMuNjguNTYgNS4yNiAxLjg1YTcuNDYgNy40NiAwIDAgMSAyLjcgNS4yYzEuMzcuMTcgMi43LjY5IDMuNzggMS41MUE1Ljg1IDUuODUgMCAwIDEgMjkuNjIgMTZIMTdhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAxIDEuNzNWMjRIOWMtMi43IDAtNC41Mi0uODItNS42My0yLjFBNS45IDUuOSAwIDAgMSAyIDE4YzAtMi4zNiAxLjkzLTUuNTMgNi4wNi01Ljk1YTguNCA4LjQgMCAwIDEgMS44LTQuM1pNMTYgMThhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgxN2ExIDEgMCAwIDEtMS0xdi0yWm0xMy44NSA0SDE3djUuODVhMyAzIDAgMCAwIDMgM2g2Ljg1YTMgMyAwIDAgMCAzLTNWMjJabS04LjM1IDJoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJjaGl2ZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFyY2hpdmUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMS40IDlhNi40NiA2LjQ2IDAgMCAwLTEuNCA0IDEgMSAwIDAgMS0xIDFjLTMuNjIgMC01IDIuNTMtNSA0IDAgLjg1LjIyIDEuODQuODggMi42QzUuNTIgMjEuMzEgNi43IDIyIDkgMjJoN3YySDljLTIuNyAwLTQuNTItLjgyLTUuNjMtMi4xQTUuOSA1LjkgMCAwIDEgMiAxOGMwLTIuMzYgMS45My01LjUzIDYuMDYtNS45NWE4LjQgOC40IDAgMCAxIDEuOC00LjNBNy42NCA3LjY0IDAgMCAxIDE2IDVjMS43IDAgMy42OC41NiA1LjI2IDEuODVhNy40NiA3LjQ2IDAgMCAxIDIuNyA1LjJjMS4zNy4xNyAyLjcuNjkgMy43OCAxLjUxQTUuODUgNS44NSAwIDAgMSAyOS42MiAxNmgtMi4yN2MtLjIzLS4zMS0uNS0uNi0uODQtLjg1QTUuODUgNS44NSAwIDAgMCAyMyAxNGExIDEgMCAwIDEtMS0xYzAtMi4yLS44Ny0zLjY3LTItNC42QTYuNDYgNi40NiAwIDAgMCAxNiA3Yy0yLjIgMC0zLjY3Ljg3LTQuNiAyWm00LjYgOWExIDEgMCAwIDEgMS0xaDEzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDE3YTEgMSAwIDAgMS0xLTF2LTJabTEzLjg1IDRIMTd2NS44NWEzIDMgMCAwIDAgMyAzaDYuODVhMyAzIDAgMCAwIDMtM1YyMlptLTguMzUgMmg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcmNoaXZlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcmNoaXZlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA3YTEyIDEyIDAgMCAwLTExLjk2IDExaC0uNTRhOC41IDguNSAwIDAgMCAwIDE3SDI0di0zLjE3QTMgMyAwIDAgMSAyMiAyOXYtM2EzIDMgMCAwIDEgMy0zaDE5LjI1YTguNSA4LjUgMCAwIDAtNy43NS01aC0uNTRBMTIgMTIgMCAwIDAgMjQgN1ptMSAxOGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgyMGExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFIMjVabTEgN2gxOHY5YTQgNCAwIDAgMS00IDRIMzBhNCA0IDAgMCAxLTQtNHYtOVptMTIgM2gtNmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJjaGl2ZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFyY2hpdmU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCA5LjVhOS41IDkuNSAwIDAgMC05LjUgOS43MiAxLjI1IDEuMjUgMCAwIDEtMS4yNSAxLjI4SDExLjVhNiA2IDAgMCAwIDAgMTJIMjRWMzVIMTEuNWE4LjUgOC41IDAgMCAxIDAtMTdoLjU0YTEyIDEyIDAgMCAxIDIzLjkyIDBoLjU0YTguNSA4LjUgMCAwIDEgNy43NSA1aC0yLjg4YTYgNiAwIDAgMC00Ljg3LTIuNWgtMS43NWExLjI1IDEuMjUgMCAwIDEtMS4yNS0xLjI4VjE5QTkuNSA5LjUgMCAwIDAgMjQgOS41Wk0yNSAyNWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgyMGExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFIMjVabTEgN2gxOHY5YTQgNCAwIDAgMS00IDRIMzBhNCA0IDAgMCAxLTQtNHYtOVptMTIgM2gtNmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dEb3duMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd0Rvd24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuMDMgNS41YTQgNCAwIDAgMSA3Ljg5LS4zMkE1LjUgNS41IDAgMCAwIDUuMiAxMmgtLjk2YTMuMjUgMy4yNSAwIDAgMS0uMjItNi41Wm0xMC45NyA1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDExIDExLjI5VjguNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd0Rvd24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd0Rvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDNhMyAzIDAgMCAwLTMgMyAuNS41IDAgMCAxLS41LjVoLS4yNWEyLjI1IDIuMjUgMCAwIDAgMCA0LjVoLjc3Yy4wMy4zNC4xLjY4LjE5IDFoLS45NmEzLjI1IDMuMjUgMCAwIDEtLjIyLTYuNSA0IDQgMCAwIDEgNy44OS0uMzJjLS4zNS0uMDktLjcxLS4xNS0xLjA5LS4xN0EzIDMgMCAwIDAgOCAzWm03IDcuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUgMi4zNWEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxMSAxMS4yOVY4LjVhLjUuNSAwIDAgMC0xIDB2Mi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd0Rvd24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZBNS43NCA1Ljc0IDAgMCAwIDcuNzcgMTNINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYTMuMzMgMy4zMyAwIDAgMSAzLjI4LTMuMzdoLjA3QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSAxNmE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptMS42LTQuOUwxNCAxNC4ydi0yLjdhLjUuNSAwIDAgMC0xIDB2Mi43bC0xLjEtMS4xYS41Ni41NiAwIDEgMC0uOC44bDIgMmMuMjIuMjIuNTguMjIuOCAwbDItMmEuNTYuNTYgMCAxIDAtLjgtLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93RG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93RG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZjLS4zMi0uNC0uNy0uNzYtMS4xMi0xLjA3YTIuMyAyLjMgMCAwIDAtMi4xNS0xLjZoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMzIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMmgyLjY3Yy0uMDkuMzItLjE1LjY2LS4xOCAxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSAxNmE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptMS42LTQuOUwxNCAxNC4ydi0yLjdhLjUuNSAwIDAgMC0xIDB2Mi43bC0xLjEtMS4xYS41Ni41NiAwIDEgMC0uOC44bDIgMmMuMjIuMjIuNTguMjIuOCAwbDItMmEuNTYuNTYgMCAxIDAtLjgtLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93RG93bjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dEb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjA4IDguMDJhNiA2IDAgMCAxIDExLjg0IDAgNC41IDQuNSAwIDAgMSA0LjA1IDQuOTdBNi41IDYuNSAwIDAgMCAxMC4wMiAxN0g2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OFpNMjIgMTYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNS0zYS41LjUgMCAwIDAtMSAwdjQuOGwtMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdMMTcgMTguMjlWMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dEb3duMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dEb3duMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgNC41YTQuNSA0LjUgMCAwIDAtNC41IDQuMjkuNzUuNzUgMCAwIDEtLjc0LjcxSDYuNWEzIDMgMCAxIDAgMCA2aDMuNThhNi41NSA2LjU1IDAgMCAwLS4wNiAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNiA2IDAgMCAxIDExLjg0IDAgNC41IDQuNSAwIDAgMSA0LjA1IDQuOTcgNi41MyA2LjUzIDAgMCAwLTEuOC0xLjg1QTMgMyAwIDAgMCAxNy41IDkuNWgtLjI2YS43NS43NSAwIDAgMS0uNzQtLjcxQTQuNSA0LjUgMCAwIDAgMTIgNC41Wm0xMCAxMmE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNS0zYS41LjUgMCAwIDAtMSAwdjQuOGwtMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdMMTcgMTguMjlWMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dEb3duMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd0Rvd24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDNhNyA3IDAgMCAwLTYuOTMgNi4wMkE1LjUgNS41IDAgMCAwIDcuNSAyMGg0LjUyYTcuNSA3LjUgMCAwIDEgMTMuODgtNC40MiA1LjUzIDUuNTMgMCAwIDAtNC45Ny02LjU2QTcgNyAwIDAgMCAxNCAzWm0xMiAxNi41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS02LTRhLjUuNSAwIDAgMC0xIDB2Ni44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy43bDMgM2EuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwzLTNhLjUuNSAwIDAgMC0uNy0uN0wyMCAyMi4yOVYxNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd0Rvd24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd0Rvd24yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCA0LjVhNS41IDUuNSAwIDAgMC01LjUgNS4yOC43NS43NSAwIDAgMS0uNzUuNzJINy41YTQgNCAwIDAgMCAwIDhoNC41N2E3LjU3IDcuNTcgMCAwIDAtLjA1IDEuNUg3LjVhNS41IDUuNSAwIDAgMS0uNDMtMTAuOTggNyA3IDAgMCAxIDEzLjg2IDAgNS41IDUuNSAwIDAgMSA0Ljk2IDYuNTYgNy41NCA3LjU0IDAgMCAwLTEuNDQtMS43MSA0IDQgMCAwIDAtMy45NS0zLjM3aC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzJBNS41IDUuNSAwIDAgMCAxNCA0LjVabTEyIDE1YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS02LTRhLjUuNSAwIDAgMC0xIDB2Ni44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMC0uNy43bDMgM2EuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwzLTNhLjUuNSAwIDAgMC0uNy0uN0wyMCAyMi4yOVYxNS41WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd0Rvd24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93RG93bjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOS44NSA1Ljc0QTcuNjQgNy42NCAwIDAgMSAxNiAzYzEuNyAwIDMuNjguNTYgNS4yNiAxLjg1YTcuNDYgNy40NiAwIDAgMSAyLjcgNS4yYzEuMzcuMTcgMi43LjY5IDMuNzggMS41MUE1LjU1IDUuNTUgMCAwIDEgMzAgMTZjMCAuNDYtLjA0LjkxLS4xMiAxLjM0QTguOTkgOC45OSAwIDAgMCAxMy41IDIySDljLTIuNyAwLTQuNTItLjgyLTUuNjMtMi4xQTUuOSA1LjkgMCAwIDEgMiAxNmMwLTIuMzYgMS45My01LjUzIDYuMDYtNS45NWE4LjQgOC40IDAgMCAxIDEuOC00LjNaTTMwIDIyLjVhNy41IDcuNSAwIDEgMS0xNSAwIDcuNSA3LjUgMCAwIDEgMTUgMFptLTExLjc4IDEuMjggNCA0Yy4zLjMuNzcuMyAxLjA2IDBsNC00YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTIuNzIgMi43MnYtNy42OWEuNzUuNzUgMCAwIDAtMS41IDB2Ny42OWwtMi43Mi0yLjcyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93RG93bjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93RG93bjMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExLjQgN2E2LjQ2IDYuNDYgMCAwIDAtMS40IDQgMSAxIDAgMCAxLTEgMWMtMy42MiAwLTUgMi41My01IDQgMCAuODUuMjIgMS44NC44OCAyLjZDNS41MiAxOS4zMSA2LjcgMjAgOSAyMGg0Ljg1Yy0uMTguNjQtLjMgMS4zMS0uMzQgMkg5Yy0yLjcgMC00LjUyLS44Mi01LjYzLTIuMUE1LjkgNS45IDAgMCAxIDIgMTZjMC0yLjM2IDEuOTMtNS41MyA2LjA2LTUuOTVhOC40IDguNCAwIDAgMSAxLjgtNC4zQTcuNjQgNy42NCAwIDAgMSAxNiAzYzEuNyAwIDMuNjguNTYgNS4yNiAxLjg1YTcuNDYgNy40NiAwIDAgMSAyLjcgNS4yYzEuMzcuMTcgMi43LjY5IDMuNzggMS41MUE1LjU1IDUuNTUgMCAwIDEgMzAgMTZjMCAuNDYtLjA0LjkxLS4xMiAxLjM0YTkuMDUgOS4wNSAwIDAgMC0xLjk1LTIuMDEgMy42NiAzLjY2IDAgMCAwLTEuNDItMi4xOEE1Ljg1IDUuODUgMCAwIDAgMjMgMTJhMSAxIDAgMCAxLTEtMWMwLTIuMi0uODctMy42Ny0yLTQuNkE2LjQ2IDYuNDYgMCAwIDAgMTYgNWMtMi4yIDAtMy42Ny44Ny00LjYgMlpNMzAgMjIuNWE3LjUgNy41IDAgMSAxLTE1IDAgNy41IDcuNSAwIDAgMSAxNSAwWm0tMTEuNzggMS4yOCA0IDRjLjMuMy43Ny4zIDEuMDYgMGw0LTRhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMi43MiAyLjcydi03LjY5YS43NS43NSAwIDAgMC0xLjUgMHY3LjY5bC0yLjcyLTIuNzJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dEb3duNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd0Rvd240OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDZhMTIgMTIgMCAwIDAtMTEuOTYgMTFoLS41NGE4LjUgOC41IDAgMCAwIDAgMTdIMjFhMTMgMTMgMCAwIDEgMjMuODktNy4xQTguNSA4LjUgMCAwIDAgMzYuNSAxN2gtLjU0QTEyIDEyIDAgMCAwIDI0IDZabTIxIDI4YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTExLThhMSAxIDAgMCAwLTEgMXYxMS41OWwtMy4zLTMuM2ExIDEgMCAwIDAtMS40IDEuNDJsNSA1YTEgMSAwIDAgMCAxLjQgMGw1LTVhMSAxIDAgMCAwLTEuNC0xLjQyTDM1IDM4LjZWMjdhMSAxIDAgMCAwLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dEb3duNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dEb3duNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQgOC41YTkuNSA5LjUgMCAwIDAtOS41IDkuNzIgMS4yNSAxLjI1IDAgMCAxLTEuMjUgMS4yOEgxMS41YTYgNiAwIDAgMCAwIDEyaDkuNzRjLS4xNi44LS4yNCAxLjY0LS4yNCAyLjVoLTkuNWE4LjUgOC41IDAgMCAxIDAtMTdoLjU0YTEyIDEyIDAgMCAxIDIzLjkyIDBoLjU0YTguNSA4LjUgMCAwIDEgOC4zOSA5LjlBMTMuMDcgMTMuMDcgMCAwIDAgNDIuMyAyNGE2IDYgMCAwIDAtNS44MS00LjVoLTEuNzVhMS4yNSAxLjI1IDAgMCAxLTEuMjUtMS4yOFYxOEE5LjUgOS41IDAgMCAwIDI0IDguNVpNNDUgMzRhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTEtOGExIDEgMCAwIDAtMSAxdjExLjU5bC0zLjMtMy4zYTEgMSAwIDAgMC0xLjQgMS40Mmw1IDVhMSAxIDAgMCAwIDEuNCAwbDUtNWExIDEgMCAwIDAtMS40LTEuNDJMMzUgMzguNlYyN2ExIDEgMCAwIDAtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1JpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1JpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNCA0IDAgMCAwLTMuOTcgMy41IDMuMjUgMy4yNSAwIDAgMCAuMjIgNi41aC45NmE1LjUgNS41IDAgMCAxIDYuNy02LjgyQTQgNCAwIDAgMCA4IDJabTIuNSA0YTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wm0yLjM1IDQuODUtMiAyYS41LjUgMCAwIDEtLjctLjdMMTEuMjkgMTFIOC41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93UmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1JpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNSA2YTMgMyAwIDAgMSA1LjgzLS45OWMuMzguMDIuNzQuMDggMS4wOS4xN2E0IDQgMCAwIDAtNy44OS4zM0EzLjI1IDMuMjUgMCAwIDAgNC4yNSAxMmguOTZjLS4xLS4zMi0uMTYtLjY2LS4xOS0xaC0uNzdhMi4yNSAyLjI1IDAgMCAxIDAtNC41aC4yNUEuNS41IDAgMCAwIDUgNlptNS41IDBhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTEuMjkgMTBIOC41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93UmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93UmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE0LjY1IDYuMjVDMTQuNCAzLjkyIDEyLjgyIDIgMTAgMiA3LjE4IDIgNS41OSAzLjkgNS4zNSA2LjI1aC0uMDdBMy4zMyAzLjMzIDAgMCAwIDIgOS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxM2gyLjVhNS43NSA1Ljc1IDAgMCAxIDEwLjItMy4xYy4wMi0uMDkuMDItLjE4LjAyLS4yOGEzLjMzIDMuMzMgMCAwIDAtMy4yOC0zLjM3aC0uMDdaTTEzLjUgOWE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOVptMi4zNSA0Ljg1LTIgMmEuNS41IDAgMCAxLS43LS43TDE0LjI5IDE0SDExLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93UmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC42NSA2LjI1QzE0LjQgMy45MiAxMi44MiAyIDEwIDIgNy4xOCAyIDUuNTkgMy45IDUuMzUgNi4yNUg1LjFBMy4zNCAzLjM0IDAgMCAwIDIgOS42MiAzLjMzIDMuMzMgMCAwIDAgNS4yOCAxM2gyLjVjLjAyLS4zNC4wOC0uNjguMTctMUg1LjI4QTIuMzMgMi4zMyAwIDAgMSAzIDkuNjJhMi4zMyAyLjMzIDAgMCAxIDIuMjgtMi4zN2guMDdhMSAxIDAgMCAwIDEtLjlDNi41NSA0LjMyIDcuODkgMyAxMCAzYzIuMSAwIDMuNDUgMS4zMiAzLjY1IDMuMzVhMSAxIDAgMCAwIDEgLjloLjA3YzEgMCAxLjg0LjY2IDIuMTUgMS42LjQyLjMuOC42NSAxLjEyIDEuMDZsLjAxLS4yOWEzLjMzIDMuMzMgMCAwIDAtMy4yOC0zLjM3aC0uMDdaTTEzLjUgOWE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOVptMi4zNSA0Ljg1LTIgMmEuNS41IDAgMCAxLS43LS43TDE0LjI5IDE0SDExLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgM2E2IDYgMCAwIDAtNS45MiA1LjAyQTQuNSA0LjUgMCAwIDAgNi41IDE3aDMuNTJhNi41IDYuNSAwIDAgMSAxMS45NS00IDQuNSA0LjUgMCAwIDAtNC4wNS00Ljk3QTYgNiAwIDAgMCAxMiAyLjk5Wm00LjUgOGE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tMyA1YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMMTguMjkgMTZIMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93UmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03LjUgOC43OWE0LjUgNC41IDAgMCAxIDkgMGMuMDEuNC4zNC43MS43NC43MWguMjZhMyAzIDAgMCAxIDIuNjcgMS42NGMuNzIuNDkgMS4zMyAxLjEyIDEuOCAxLjg1YTQuNSA0LjUgMCAwIDAtNC4wNS00Ljk3IDYgNiAwIDAgMC0xMS44NCAwQTQuNSA0LjUgMCAwIDAgNi41IDE3aDMuNTJhNi42MiA2LjYyIDAgMCAxIC4wNi0xLjVINi41YTMgMyAwIDEgMSAwLTZoLjI2Yy40IDAgLjczLS4zMS43NS0uNzFabTkgMi4yMWE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tMyA1YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMMTguMjkgMTZIMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dVcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dVcDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC4wMyA1LjVhNCA0IDAgMCAxIDcuODktLjMyQTUuNSA1LjUgMCAwIDAgNS4yIDEyaC0uOTZhMy4yNSAzLjI1IDAgMCAxLS4yMi02LjVabTEwLjk3IDVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxMCA5LjcxdjIuNzlhLjUuNSAwIDAgMCAxIDBWOS43bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJBLjUuNSAwIDAgMCAxMC41IDhhLjUuNSAwIDAgMC0uMzUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93VXAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1VwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAzYTMgMyAwIDAgMC0zIDMgLjUuNSAwIDAgMS0uNS41aC0uMjVhMi4yNSAyLjI1IDAgMCAwIDAgNC41aC43N2MuMDMuMzQuMS42OC4xOSAxaC0uOTZhMy4yNSAzLjI1IDAgMCAxLS4yMi02LjUgNCA0IDAgMCAxIDcuODktLjMyYy0uMzUtLjA5LS43MS0uMTUtMS4wOS0uMTdBMyAzIDAgMCAwIDggM1ptNyA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxMCA5LjcxdjIuNzlhLjUuNSAwIDAgMCAxIDBWOS43bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJBLjUuNSAwIDAgMCAxMC41IDhhLjUuNSAwIDAgMC0uMzUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93VXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93VXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZBNS43NCA1Ljc0IDAgMCAwIDcuNzcgMTNINS4yOEEzLjMzIDMuMzMgMCAwIDEgMiA5LjYyYTMuMzMgMy4zMyAwIDAgMSAzLjI4LTMuMzdoLjA3QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSA3YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0xLjYgNC45YS41Ni41NiAwIDEgMCAuOC0uOGwtMi0yYS41Ni41NiAwIDAgMC0uOCAwbC0yIDJhLjU2LjU2IDAgMSAwIC44LjhsMS4xLTEuMXYyLjdhLjUuNSAwIDAgMCAxIDB2LTIuN2wxLjEgMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1VwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJjMi44MiAwIDQuNDEgMS45MiA0LjY1IDQuMjVoLjA3YTMuMzMgMy4zMyAwIDAgMSAzLjI3IDMuNjZjLS4zMi0uNC0uNy0uNzYtMS4xMi0xLjA3YTIuMyAyLjMgMCAwIDAtMi4xNS0xLjZoLS4wN2ExIDEgMCAwIDEtMS0uOUMxMy40NSA0LjMzIDEyLjExIDMgMTAgM1M2LjU1IDQuMzIgNi4zNSA2LjM1YTEgMSAwIDAgMS0xIC45aC0uMDdBMi4zMyAyLjMzIDAgMCAwIDMgOS42MiAyLjMzIDIuMzMgMCAwIDAgNS4yOCAxMmgyLjY3Yy0uMDkuMzItLjE1LjY2LS4xOCAxSDUuMjhBMy4zMyAzLjMzIDAgMCAxIDIgOS42MmMwLTEuOCAxLjM3LTMuMjcgMy4xLTMuMzdoLjI1QzUuNiAzLjkgNy4xOCAyIDEwIDJabTMuNSA3YTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0xLjYgNC45YS41Ni41NiAwIDEgMCAuOC0uOGwtMi0yYS41Ni41NiAwIDAgMC0uOCAwbC0yIDJhLjU2LjU2IDAgMSAwIC44LjhsMS4xLTEuMXYyLjdhLjUuNSAwIDAgMCAxIDB2LTIuN2wxLjEgMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1VwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1VwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjA4IDguMDJhNiA2IDAgMCAxIDExLjg0IDAgNC41IDQuNSAwIDAgMSA0LjA1IDQuOTdBNi41IDYuNSAwIDAgMCAxMC4wMiAxN0g2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OFpNMjIgMTYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNiAzYS41LjUgMCAwIDAgMSAwdi00LjhsMS42NSAxLjY1YS41LjUgMCAwIDAgLjctLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNyAwbC0yLjUgMi41YS41LjUgMCAwIDAgLjcuN0wxNiAxNC43MXY0Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1VwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dVcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDQuNWE0LjUgNC41IDAgMCAwLTQuNSA0LjI5Ljc1Ljc1IDAgMCAxLS43NC43MUg2LjVhMyAzIDAgMSAwIDAgNmgzLjU4YTYuNTUgNi41NSAwIDAgMC0uMDYgMS41SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYgNiAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNSA0Ljk3IDYuNTMgNi41MyAwIDAgMC0xLjgtMS44NUEzIDMgMCAwIDAgMTcuNSA5LjVoLS4yNmEuNzUuNzUgMCAwIDEtLjc0LS43MUE0LjUgNC41IDAgMCAwIDEyIDQuNVptMTAgMTJhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYgM2EuNS41IDAgMCAwIDEgMHYtNC44bDEuNjUgMS42NWEuNS41IDAgMCAwIC43LS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcgMGwtMi41IDIuNWEuNS41IDAgMCAwIC43LjdMMTYgMTQuNzF2NC43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dVcDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQXJyb3dVcDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgM2E3IDcgMCAwIDAtNi45MyA2LjAyQTUuNSA1LjUgMCAwIDAgNy41IDIwaDQuNTJhNy41IDcuNSAwIDAgMSAxMy44OC00LjQyIDUuNTMgNS41MyAwIDAgMC00Ljk3LTYuNTZBNyA3IDAgMCAwIDE0IDNabTEyIDE2LjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTcgNGEuNS41IDAgMCAwIDEgMHYtNi44bDIuMTUgMi4xNWEuNS41IDAgMCAwIC43LS43bC0zLTNhLjUuNSAwIDAgMC0uMzUtLjE1LjUuNSAwIDAgMC0uMzUuMTVsLTMgM2EuNS41IDAgMCAwIC43LjdMMTkgMTYuNzF2Ni43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dVcDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93VXAyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCA0LjVhNS41IDUuNSAwIDAgMC01LjUgNS4yOC43NS43NSAwIDAgMS0uNzUuNzJINy41YTQgNCAwIDAgMCAwIDhoNC41N2E3LjU3IDcuNTcgMCAwIDAtLjA1IDEuNUg3LjVhNS41IDUuNSAwIDAgMS0uNDMtMTAuOTggNyA3IDAgMCAxIDEzLjg2IDAgNS41IDUuNSAwIDAgMSA0Ljk2IDYuNTYgNy41NCA3LjU0IDAgMCAwLTEuNDQtMS43MSA0IDQgMCAwIDAtMy45NS0zLjM3aC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzJBNS41IDUuNSAwIDAgMCAxNCA0LjVabTEyIDE1YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS03IDRhLjUuNSAwIDAgMCAxIDB2LTYuOGwyLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMy0zYS41LjUgMCAwIDAtLjM1LS4xNS41LjUgMCAwIDAtLjM1LjE1bC0zIDNhLjUuNSAwIDAgMCAuNy43TDE5IDE2LjcxdjYuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93VXAzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93VXAzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTkuODUgNS43NEE3LjY0IDcuNjQgMCAwIDEgMTYgM2MxLjcgMCAzLjY4LjU2IDUuMjYgMS44NWE3LjQ2IDcuNDYgMCAwIDEgMi43IDUuMmMxLjM3LjE3IDIuNy42OSAzLjc4IDEuNTFBNS41NSA1LjU1IDAgMCAxIDMwIDE2YzAgLjQ2LS4wNC45MS0uMTIgMS4zNEE4Ljk5IDguOTkgMCAwIDAgMTMuNSAyMkg5Yy0yLjcgMC00LjUyLS44Mi01LjYzLTIuMUE1LjkgNS45IDAgMCAxIDIgMTZjMC0yLjM2IDEuOTMtNS41MyA2LjA2LTUuOTVhOC40IDguNCAwIDAgMSAxLjgtNC4zWk0zMCAyMi41YTcuNSA3LjUgMCAxIDAtMTUgMCA3LjUgNy41IDAgMCAwIDE1IDBabS03Ljc4LTUuMjhjLjMtLjMuNzctLjMgMS4wNiAwbDQgNGEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0yLjcyLTIuNzJ2Ny42OWEuNzUuNzUgMCAwIDEtMS41IDB2LTcuNjlsLTIuNzIgMi43MmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDQtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQXJyb3dVcDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEFycm93VXAzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMS40IDdhNi40NiA2LjQ2IDAgMCAwLTEuNCA0IDEgMSAwIDAgMS0xIDFjLTMuNjIgMC01IDIuNTMtNSA0IDAgLjg1LjIyIDEuODQuODggMi42QzUuNTIgMTkuMzEgNi43IDIwIDkgMjBoNC44NWMtLjE4LjY0LS4zIDEuMzEtLjM0IDJIOWMtMi43IDAtNC41Mi0uODItNS42My0yLjFBNS45IDUuOSAwIDAgMSAyIDE2YzAtMi4zNiAxLjkzLTUuNTMgNi4wNi01Ljk1YTguNCA4LjQgMCAwIDEgMS44LTQuM0E3LjY0IDcuNjQgMCAwIDEgMTYgM2MxLjcgMCAzLjY4LjU2IDUuMjYgMS44NWE3LjQ2IDcuNDYgMCAwIDEgMi43IDUuMmMxLjM3LjE3IDIuNy42OSAzLjc4IDEuNTFBNS41NSA1LjU1IDAgMCAxIDMwIDE2YzAgLjQ2LS4wNC45MS0uMTIgMS4zNGE5LjA1IDkuMDUgMCAwIDAtMS45NS0yLjAxIDMuNjYgMy42NiAwIDAgMC0xLjQyLTIuMThBNS44NSA1Ljg1IDAgMCAwIDIzIDEyYTEgMSAwIDAgMS0xLTFjMC0yLjItLjg3LTMuNjctMi00LjZBNi40NiA2LjQ2IDAgMCAwIDE2IDVjLTIuMiAwLTMuNjcuODctNC42IDJaTTMwIDIyLjVhNy41IDcuNSAwIDEgMC0xNSAwIDcuNSA3LjUgMCAwIDAgMTUgMFptLTcuNzgtNS4yOGMuMy0uMy43Ny0uMyAxLjA2IDBsNCA0YS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTIuNzItMi43MnY3LjY5YS43NS43NSAwIDAgMS0xLjUgMHYtNy42OWwtMi43MiAyLjcyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZsNC00WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRBcnJvd1VwNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1VwNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA2YTEyIDEyIDAgMCAwLTExLjk2IDExaC0uNTRhOC41IDguNSAwIDAgMCAwIDE3SDIxYTEzIDEzIDAgMCAxIDIzLjg5LTcuMUE4LjUgOC41IDAgMCAwIDM2LjUgMTdoLS41NEExMiAxMiAwIDAgMCAyNCA2Wm0yMSAyOGExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMC4zLTcuN2ExIDEgMCAwIDAtMS40IDBsLTUgNWExIDEgMCAwIDAgMS40IDEuNGwzLjMtMy4yOVY0MWExIDEgMCAxIDAgMiAwVjI5LjQxbDMuMyAzLjNhMSAxIDAgMCAwIDEuNC0xLjQybC01LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEFycm93VXA0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRBcnJvd1VwNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQgOC41YTkuNSA5LjUgMCAwIDAtOS41IDkuNzIgMS4yNSAxLjI1IDAgMCAxLTEuMjUgMS4yOEgxMS41YTYgNiAwIDAgMCAwIDEyaDkuNzRjLS4xNi44LS4yNCAxLjY0LS4yNCAyLjVoLTkuNWE4LjUgOC41IDAgMCAxIDAtMTdoLjU0YTEyIDEyIDAgMCAxIDIzLjkyIDBoLjU0YTguNSA4LjUgMCAwIDEgOC4zOSA5LjlBMTMuMDcgMTMuMDcgMCAwIDAgNDIuMyAyNGE2IDYgMCAwIDAtNS44MS00LjVoLTEuNzVhMS4yNSAxLjI1IDAgMCAxLTEuMjUtMS4yOFYxOEE5LjUgOS41IDAgMCAwIDI0IDguNVpNNDUgMzRhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTAuMy03LjdhMSAxIDAgMCAwLTEuNCAwbC01IDVhMSAxIDAgMCAwIDEuNCAxLjRsMy4zLTMuMjlWNDFhMSAxIDAgMSAwIDIgMFYyOS40MWwzLjMgMy4zYTEgMSAwIDAgMCAxLjQtMS40MmwtNS01WlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRCZWFrZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdDbG91ZEJlYWtlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAyYTQgNCAwIDAgMC0zLjk3IDMuNSAzLjI1IDMuMjUgMCAwIDAgLjIyIDYuNWg0LjUzbDEuMS0yLjEzYTEgMSAwIDAgMCAuMTItLjQ2di0xLjVBMS41IDEuNSAwIDAgMSAxMC41IDVoMS4zN0E0IDQgMCAwIDAgOCAyWm02IDcuNGEyIDIgMCAwIDAgLjIyLjkybC4zNS42OGgtNC4xNGwuMzQtLjY3YTIgMiAwIDAgMCAuMjMtLjkyVjdoLS41YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFIMTR2Mi40Wk05LjkgMTJsLS43OSAxLjU0QTEgMSAwIDAgMCAxMCAxNWg1YTEgMSAwIDAgMCAuODgtMS40NmwtLjgtMS41NEg5LjkyWlwiXSk7XG5leHBvcnQgY29uc3QgQ2xvdWRCZWFrZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignQ2xvdWRCZWFrZXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDZhMyAzIDAgMCAxIDUuODMtMWgxLjA0YTQgNCAwIDAgMC03Ljg0LjUgMy4yNSAzLjI1IDAgMCAwIC4yMiA2LjVoNC41M2wuNTItMUg0LjI1YTIuMjUgMi4yNSAwIDAgMSAwLTQuNWguMjVBLjUuNSAwIDAgMCA1IDZabTkgMy40YTIgMiAwIDAgMCAuMjIuOTJsLjM1LjY4aC00LjE0bC4zNC0uNjdhMiAyIDAgMCAwIC4yMy0uOTJWN2gtLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUgxNHYyLjRaTTkuOSAxMmwtLjc5IDEuNTRBMSAxIDAgMCAwIDEwIDE1aDVhMSAxIDAgMCAwIC44OC0xLjQ2bC0uOC0xLjU0SDkuOTJaXCJdKTtcbmV4cG9ydCBjb25zdCBDbG91ZEJlYWtlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQmVha2VyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC42MiA4Yy0uMzItMi4yMS0xLjktNC00LjYyLTQtMi44MiAwLTQuNDEgMS45LTQuNjUgNC4yNWgtLjA3QTMuMzMgMy4zMyAwIDAgMCAyIDExLjYyIDMuMzMgMy4zMyAwIDAgMCA1LjI4IDE1aDYuNWwxLjEtMi4xM2ExIDEgMCAwIDAgLjEyLS40NnYtMS41QTEuNSAxLjUgMCAwIDEgMTMuNSA4aDEuMTJaTTE3IDEyLjRhMiAyIDAgMCAwIC4yMi45MmwuMzUuNjhoLTQuMTRsLjM0LS42N2EyIDIgMCAwIDAgLjIzLS45MlYxMGgtLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUgxN3YyLjRaTTEyLjkgMTVsLS43OSAxLjU0QTEgMSAwIDAgMCAxMyAxOGg1YTEgMSAwIDAgMCAuODgtMS40NmwtLjgtMS41NGgtNS4xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IENsb3VkQmVha2VyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Nsb3VkQmVha2VyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNjIgOGMtLjMyLTIuMjEtMS45LTQtNC42Mi00LTIuODIgMC00LjQxIDEuOS00LjY1IDQuMjVINS4xQTMuMzQgMy4zNCAwIDAgMCAyIDExLjYyIDMuMzMgMy4zMyAwIDAgMCA1LjI4IDE1aDYuNWwuNTItMUg1LjI4QTIuMzMgMi4zMyAwIDAgMSAzIDExLjYyYTIuMzMgMi4zMyAwIDAgMSAyLjI4LTIuMzdoLjA3YTEgMSAwIDAgMCAxLS45QzYuNTUgNi4zMiA3Ljg5IDUgMTAgNWMxLjk5IDAgMy4zIDEuMTggMy42IDNoMS4wMlpNMTcgMTIuNGEyIDIgMCAwIDAgLjIyLjkybC4zNS42OGgtNC4xNGwuMzQtLjY3YTIgMiAwIDAgMCAuMjMtLjkyVjEwaC0uNWEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxSDE3djIuNFpNMTIuOSAxNWwtLjc5IDEuNTRBMSAxIDAgMCAwIDEzIDE4aDVhMSAxIDAgMCAwIC44OC0xLjQ2bC0uOC0xLjU0aC01LjE3WlwiXSk7IiwiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZsdWVudEljb24gfSBmcm9tIFwiLi4vdXRpbHMvY3JlYXRlRmx1ZW50SWNvblwiO1xuZXhwb3J0IGNvbnN0IERlbnRpc3QyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVudGlzdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE4LjUzIDcuMmEuNzUuNzUgMCAwIDAgMCAxLjVjLjQ1IDAgLjg0LjE0IDEuMTIuNC4yNy4yNC41MS42NS41OCAxLjM1YS43NS43NSAwIDAgMCAxLjUtLjE0Yy0uMS0xLS40OC0xLjgtMS4wOS0yLjM0YTMuMTQgMy4xNCAwIDAgMC0yLjExLS43NlptLTYuMTctMi41NmE1LjMyIDUuMzIgMCAwIDAtNC40Ny0xLjEyIDYuNTcgNi41NyAwIDAgMC0zLjQ3IDEuOTVBNi4yOSA2LjI5IDAgMCAwIDIuNSA5LjYyYy0uMDUuOTMuMDggMi4yNy44IDMuMjhoLjAxYy43OCAxLjA3IDEuMjQgMS43IDEuNDYgMi4zMy4yNS42OC4yNiAxLjM2LjI2IDIuMzN2LjJjLjAxIDEgLjIyIDIuMzYuNzMgMy42LjUgMS4yMiAxLjM0IDIuNDcgMi43MSAyLjk4bC4wNC4wMS4wNC4wMWMuOC4yMiAxLjU1LjE0IDIuMS0uMzkuNS0uNDYuNzEtMS4xNS44My0xLjc4LjEtLjU3LjE2LTEuMjQuMi0xLjlsLjAzLS4yNWMuMDYtLjc2LjEzLTEuNTEuMjgtMi4yMy40Mi0xLjk3IDEtMi4zMiAxLjI5LTIuNC42Ny0uMTggMS4xLS4xIDEuMzkuMDcuMy4xNy41Ny41LjggMS4wMS40NSAxLjA1LjU5IDIuNTQuNyAzLjg4LjExIDEuMzQuNCAyLjU1LjkzIDMuMzIuMjcuNC42Ni43NCAxLjIuODZhMiAyIDAgMCAwIDEuNS0uMzRjMS43LTEuMDkgMi42OS0zLjM0IDIuOTUtNi4zMmE4LjcgOC43IDAgMCAxIC41LTIuNjIgNy4xNCA3LjE0IDAgMCAxIC42My0xLjE4bC41NC0uOTNjLjM4LS42OCAxLTEuOSAxLjA2LTMuMzNhNS4zNiA1LjM2IDAgMCAwLTIuMi00LjU1Yy0xLjY3LTEuMzctMy4yMy0xLjg2LTQuNjMtMS43OS0xLjM4LjA3LTIuNDguNy0zLjI3IDEuMzhsLS4wMi4wMi0uMDIuMDJjLS43Ny43Ni0xLjEzLjktMS4zNy44OS0uMjYtLjAxLS43LS4yMi0xLjU2LTEuMWwtLjAzLS4wMy0uMDMtLjAzWk00IDkuNjhhNC44MSA0LjgxIDAgMCAxIDEuNS0zLjJBNS4wNyA1LjA3IDAgMCAxIDguMTkgNWEzLjgyIDMuODIgMCAwIDEgMy4yLjhjLjI1LjI1LjUuNDguNzQuNjguNTguNDggMS4xNi44IDEuOC44My43My4wMyAxLjM2LS4zMyAxLjk2LS44NC4xNy0uMTUuMzQtLjMuNS0uNDdhMy45OCAzLjk4IDAgMCAxIDIuMzYtMWMuODctLjA1IDEuOTYuMjIgMy4yNiAxLjE4bC4zNS4yN2MxLjM3IDEuMTIgMS43IDIuMyAxLjY1IDMuMzFhNi4yNSA2LjI1IDAgMCAxLS44OCAyLjY3bC0uNS44OWE4LjYgOC42IDAgMCAwLS43NCAxLjRjLS4zMi43NC0uNDggMS41Ny0uNjEgMy4wNC0uMjUgMi44MS0xLjE1IDQuNDgtMi4yNyA1LjItLjI0LjE1LS4zNS4xNC0uMzguMTMtLjA0IDAtLjE0LS4wNC0uMjgtLjI1YTUuOCA1LjggMCAwIDEtLjY3LTIuNTh2LS4wOGMtLjEtMS4yNi0uMjUtMi45OC0uODItNC4yOGEzLjUyIDMuNTIgMCAwIDAtMS40My0xLjcxYy0uNy0uNC0xLjU2LS40OC0yLjUyLS4yM2gtLjAyYy0xLjEuMzMtMS45IDEuNC0yLjM1IDMuNTUtLjE3LjgyLS4yNSAxLjY2LS4zIDIuNDJsLS4wMy4yNWMtLjA1LjY3LS4xIDEuMjYtLjE5IDEuNzUtLjEuNTctLjI0Ljg0LS4zNy45Ni0uMDUuMDUtLjIuMTYtLjY3LjA0LS43OC0uMy0xLjM5LTEuMDgtMS44MS0yLjEzYTguNyA4LjcgMCAwIDEtLjYxLTMuMDR2LS4yNWMtLjAxLS45LS4wMi0xLjg1LS4zNi0yLjc5LS4zLS44NS0uOS0xLjY2LTEuNjMtMi42NWwtLjAzLS4wNGEzLjg4IDMuODggMCAwIDEtLjUyLTIuMzRaTTIyIDYuMTdsLjM1LjI3WlwiXSk7XG5leHBvcnQgY29uc3QgRGVudGlzdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RlbnRpc3Q0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTIxLjI3IDguMjNhOC4yIDguMiAwIDAgMC03LjU4LTEuOTVjLTIuNC41My00LjU3IDEuODktNS44NyAzLjI3LTEuNiAxLjY5LTMuMSAzLjg2LTMuMjMgNy0uMDUgMS41NC4xNSAzLjgyIDEuMzggNS41MmwuMTMuMTljMS4yNCAxLjcgMS45NyAyLjcyIDIuMzMgMy43M1YyNmMuNDIgMS4xNC40MyAyLjI2LjQ0IDMuODd2LjQzYy4wMyAyLjIyLjY2IDUuNzggMi4zNiA4LjM4YTcuMTkgNy4xOSAwIDAgMCAzLjQ1IDIuOTRsLjA2LjAyLjA2LjAxYzEuMi4zMiAyLjMzLjI1IDMuMjUtLjQzYTQuNDQgNC40NCAwIDAgMCAxLjUxLTIuNTRjLjI1LS45NC4zNi0yLjA0LjQ2LTMuMTNsLjA3LS45NmMuMDctLjguMTMtMS42Mi4yMy0yLjQ0LjA3LS42MS4xNi0xLjIuMjgtMS43OGE5LjI4IDkuMjggMCAwIDEgMS4xNC0zLjIyYy4zNC0uNS42OS0uNzMgMS4wNy0uODcgMS4xNC0uMjkgMS44Ni0uMTQgMi4zNC4xNC41My4zLjk4Ljg1IDEuMzYgMS43MS43OCAxLjc4IDEgNC4yOSAxLjE4IDYuNTYuMiAyLjI1LjY3IDQuMyAxLjU2IDUuNjNhMy40IDMuNCAwIDAgMCAxLjk4IDEuNWMuOS4yMiAxLjc5LS4wMyAyLjU3LS41MyAyLjg4LTEuODUgNC41My01LjggNC45OC0xMC44MS4yLTIuMTMuNDQtMy4yNi44NC00LjI1LjMxLS44LjcyLTEuNTIgMS4zNS0yLjYybC42NC0xLjEzYy42NC0xLjE1IDEuNjgtMy4yMSAxLjgtNS42Mi4xMi0yLjUtLjc2LTUuMjUtMy43My03LjYzLTIuODMtMi4zLTUuNDYtMy4xMy03LjgtM2E5LjIyIDkuMjIgMCAwIDAtNS41MyAyLjMzbC0uMDMuMDItLjAzLjAzYy0xLjMgMS4yOC0xLjkyIDEuNTMtMi4zMyAxLjUtLjQ2LS4wMS0xLjE5LS4zNy0yLjY1LTEuODVsLS4wMi0uMDEtLjAyLS4wMlptMS41NCAxOC4wNS0uMDQuMDEuMDgtLjAyLS4wNC4wMVptOC44NS0xNC4wNGMyLjY5IDAgNS4xMiAyLjM1IDUuMzggNS4yM2ExLjI1IDEuMjUgMCAxIDEtMi40OS4yM2MtLjE1LTEuNzItMS42Mi0yLjk2LTIuOS0yLjk2YTEuMjUgMS4yNSAwIDAgMSAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlbnRpc3Q0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVudGlzdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTMxLjY2IDEyLjI0YTEuMjUgMS4yNSAwIDAgMCAwIDIuNWMxLjI3IDAgMi43NCAxLjI0IDIuOSAyLjk2YTEuMjUgMS4yNSAwIDAgMCAyLjQ4LS4yM2MtLjI2LTIuODgtMi43LTUuMjMtNS4zOC01LjIzWk0yMS4yNyA4LjIzYTguMiA4LjIgMCAwIDAtNy41OC0xLjk1Yy0yLjQuNTMtNC41NyAxLjg5LTUuODcgMy4yNy0xLjYgMS42OS0zLjEgMy44Ni0zLjIzIDctLjA1IDEuNTQuMTUgMy44MiAxLjM4IDUuNTJsLjEzLjE5YzEuMjQgMS43IDEuOTcgMi43MiAyLjMzIDMuNzNWMjZjLjQyIDEuMTQuNDMgMi4yNi40NCAzLjg3di40M2MuMDMgMi4yMi42NiA1Ljc4IDIuMzYgOC4zOGE3LjE5IDcuMTkgMCAwIDAgMy40NSAyLjk0bC4wNi4wMi4wNi4wMWMxLjIuMzIgMi4zMy4yNSAzLjI1LS40M2E0LjQ0IDQuNDQgMCAwIDAgMS41MS0yLjU0Yy4yNS0uOTQuMzYtMi4wNC40Ni0zLjEzbC4wNy0uOTZjLjA3LS44LjEzLTEuNjIuMjMtMi40NC4wNy0uNjEuMTYtMS4yLjI4LTEuNzhhOS4yOCA5LjI4IDAgMCAxIDEuMTQtMy4yMmMuMzQtLjUuNjktLjczIDEuMDctLjg3IDEuMTQtLjI5IDEuODYtLjE0IDIuMzQuMTQuNTMuMy45OC44NSAxLjM2IDEuNzEuNzggMS43OCAxIDQuMjkgMS4xOCA2LjU2LjIgMi4yNS42NyA0LjMgMS41NiA1LjYzYTMuNCAzLjQgMCAwIDAgMS45OCAxLjVjLjkuMjIgMS43OS0uMDMgMi41Ny0uNTMgMi44OC0xLjg1IDQuNTMtNS44IDQuOTgtMTAuODEuMi0yLjEzLjQ0LTMuMjYuODQtNC4yNS4zMS0uOC43Mi0xLjUyIDEuMzUtMi42MmwuNjQtMS4xM2MuNjQtMS4xNSAxLjY4LTMuMjEgMS44LTUuNjIuMTItMi41LS43Ni01LjI1LTMuNzMtNy42My0yLjgzLTIuMy01LjQ2LTMuMTMtNy44LTNhOS4yMiA5LjIyIDAgMCAwLTUuNTMgMi4zM2wtLjAzLjAyLS4wMy4wM2MtMS4zIDEuMjgtMS45MiAxLjUzLTIuMzMgMS41LS40Ni0uMDEtMS4xOS0uMzctMi42NS0xLjg1bC0uMDItLjAxLS4wMi0uMDJaTTkuNjQgMTEuMjZhOS40NSA5LjQ1IDAgMCAxIDQuNTgtMi41MyA1LjcgNS43IDAgMCAxIDUuMzMgMS4zMWMxLjQyIDEuNDMgMi43NyAyLjUgNC4zIDIuNTggMS41OC4wNyAyLjktLjk1IDQuMTYtMi4yYTYuNzEgNi43MSAwIDAgMSA0LTEuN2MxLjYtLjA4IDMuNjQuNDYgNi4xIDIuNDUgMi4zMyAxLjg3IDIuODggMy44NSAyLjggNS41N2ExMC41MiAxMC41MiAwIDAgMS0xLjQ4IDQuNTFsLS41OCAxLjAyYy0uNjUgMS4xNC0xLjE3IDIuMDYtMS41NiAzLjA0LS41MiAxLjMtLjggMi43LTEgNC45NC0uNDIgNC43Ni0xLjk1IDcuNzItMy44NCA4LjkzLS40LjI2LS41OC4yMy0uNjMuMjItLjA3LS4wMi0uMjUtLjEtLjUtLjQ3LS41Mi0uNzgtLjk1LTIuMy0xLjEzLTQuNDVsLS4wMS0uMWMtLjE4LTIuMTMtLjQxLTUuMDUtMS4zOC03LjI1YTUuOTIgNS45MiAwIDAgMC0yLjQxLTIuODkgNS41NSA1LjU1IDAgMCAwLTQuMjYtLjM3bC0uMDQuMDItLjA0LjAxYy0uOS4zLTEuNy44NS0yLjM4IDEuODYtLjY1Ljk1LTEuMTMgMi4yOC0xLjUxIDQuMS0uMTQuNjYtLjI0IDEuMzMtLjMyIDItLjEuODctLjE4IDEuNzYtLjI0IDIuNThsLS4wNy45Yy0uMSAxLjA5LS4yIDItLjM5IDIuNzEtLjE5LjczLS40MSAxLjA0LS41OCAxLjE2LS4xLjA4LS4zNS4yMi0xLjA2LjA0YTQuNzYgNC43NiAwIDAgMS0yLjE3LTEuOTNjLTEuMzYtMi4wOC0xLjkzLTUuMTItMS45NS03LjA1di0uNDhhMTMuNDIgMTMuNDIgMCAwIDAtLjYtNC42NGMtLjQ4LTEuMzYtMS40Mi0yLjY2LTIuNTItNC4xOC0uMS0uMTItLjE4LS4yNS0uMjctLjM3LS43My0xLS45NS0yLjU4LS45LTMuOTYuMS0yLjI4IDEuMTUtMy45IDIuNTUtNS4zOFpNMjIuOCAyNi4yOGwtLjA0LjAxLjA4LS4wMi0uMDQuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNpZ25JZGVhczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2lnbklkZWFzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjUgMy41Yy0uNTYgMC0xLjA4LjE1LTEuNTMuNDJhMy40IDMuNCAwIDAgMC0uNDgtMS40NUE0LjUgNC41IDAgMCAxIDExLjk3IDZoMS4yOGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDNy43OCAxNCA3IDEzLjIyIDcgMTIuMjV2LTEuMjhjLS4zNS0uMDQtLjctLjEyLTEuMDItLjIzTDYgMTB2LS4wOGwtLjAxLS44M2MuMy4xOC42NS4zIDEuMDEuMzdWNy43NUM3IDYuNzggNy43OCA2IDguNzUgNmgxLjdBMyAzIDAgMCAwIDcuNSAzLjVabTQuMzkgNGE0LjUgNC41IDAgMCAxLTMuMzkgMy4zOXYxLjM2YzAgLjE0LjExLjI1LjI1LjI1aDQuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtNC41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0xLjM2Wm0tMS41NiAwSDguNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxLjU4YTMgMyAwIDAgMCAxLjgzLTEuODNaTTMuNTggMS4xM2EuNS41IDAgMCAxIC4xMi42bC0uMDEuMDhjMCAuMDcuMDEuMTkuMTYuMzRsLjIuMTguMTYuMTZjLjEzLjEyLjI3LjI3LjQuNDUuMjUuMzguMzkuODYuMzkgMS41NiAwIC44My0uMyAxLjU0LS43NyAyIC4yOS4yOS40Ni42OC41NiAxLjA2LjIxLjc2LjIxIDEuNjguMjEgMi40VjEwYzAgMi4wNi0uMzkgMy4yOC0uODIgNC0uMjIuMzctLjQ1LjYtLjY0Ljc1YTEuNjUgMS42NSAwIDAgMS0uMzMuMlMzLjA4IDE1IDMgMTVhLjguOCAwIDAgMS0uMy0uMDkgMS42NCAxLjY0IDAgMCAxLS4yNC0uMTYgMi42NyAyLjY3IDAgMCAxLS42NC0uNzRDMS40IDEzLjI4IDEgMTIuMDYgMSAxMHYtLjA0YzAtLjcyIDAtMS42NC4yLTIuNC4xMS0uMzguMjgtLjc3LjU3LTEuMDdBMi43MyAyLjczIDAgMCAxIDEgNC41YTQuNzMgNC43MyAwIDAgMSAuNjktMi4xQTQuMDcgNC4wNyAwIDAgMSAyLjkzIDEuMWwuMDMtLjAyaC4wMWEuNS41IDAgMCAxIC42MS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2lnbklkZWFzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2lnbklkZWFzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNyAxMC45N2MtLjM1LS4wNC0uNy0uMTItMS4wMi0uMjNMNiAxMHYtLjM0Yy4zMS4xNS42NS4yNSAxIC4zVjcuNUM3IDYuNjcgNy42NyA2IDguNSA2aDIuNDZhMy41IDMuNSAwIDAgMC01LjA4LTIuNiAzLjIgMy4yIDAgMCAwLS4zOS0uOTNBNC41IDQuNSAwIDAgMSAxMS45NyA2aDEuNTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA3IDEyLjV2LTEuNTNaTTExLjk3IDdBNC41IDQuNSAwIDAgMSA4IDEwLjk3djEuNTNjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di01YS41LjUgMCAwIDAtLjUtLjVoLTEuNTNabS0xIDBIOC41YS41LjUgMCAwIDAtLjUuNXYyLjQ2QTMuNSAzLjUgMCAwIDAgMTAuOTYgN1ptLTYuMTguNTZhMi40IDIuNCAwIDAgMC0uNTYtMS4wN0M0LjcgNi4wNCA1IDUuMzMgNSA0LjVjMC0uNy0uMTQtMS4xOC0uNC0xLjU2YTIuNzUgMi43NSAwIDAgMC0uNTYtLjYxbC0uMTktLjE4QzMuNyAyIDMuNyAxLjg4IDMuNyAxLjhhLjMzLjMzIDAgMCAxIC4wMS0uMS41LjUgMCAwIDAtLjczLS42M2wtLjAxLjAxLS4wMy4wMmE0LjI5IDQuMjkgMCAwIDAtLjQzLjM1Yy0uMjUuMjItLjU4LjU0LS44MS45M0E0LjczIDQuNzMgMCAwIDAgMSA0LjVjMCAuODMuMyAxLjU0Ljc3IDItLjI5LjI5LS40Ni42OC0uNTYgMS4wNkMxIDguMzIgMSA5LjI0IDEgOS45NlYxMGMwIDIuMDYuMzkgMy4yOC44MiA0IC4yMi4zNy40NS42LjY0Ljc1YTEuNjQgMS42NCAwIDAgMCAuMzMuMnMuMTMuMDUuMjEuMDVjLjA4IDAgLjIxLS4wNS4yMS0uMDVsLjA5LS4wNGEyLjY3IDIuNjcgMCAwIDAgLjg4LS45QzQuNiAxMy4yOCA1IDEyLjA2IDUgMTB2LS4wNGMwLS43MiAwLTEuNjQtLjItMi40Wk0yLjUgNy4yQS42Ny42NyAwIDAgMSAzIDdjLjI1IDAgLjQuMDguNTEuMTkuMTMuMTMuMjQuMzMuMzIuNjNDNCA4LjQ0IDQgOS4yNCA0IDEwYzAgMS45NC0uMzYgMi45Ny0uNjggMy41LS4xMi4yLS4yMy4zMi0uMzIuNC0uMDktLjA4LS4yLS4yLS4zMi0uNEMyLjM2IDEyLjk2IDIgMTEuOTMgMiAxMGMwLS43NiAwLTEuNTYuMTctMi4xOC4wOC0uMy4yLS41LjMyLS42M1pNMyA2Yy0uMzggMC0xLS40My0xLTEuNWEzLjczIDMuNzMgMCAwIDEgLjg3LTIuMDFjLjA3LjEyLjE2LjI0LjI4LjM2LjA3LjA4LjE2LjE3LjI1LjI0bC4xMi4xMmMuMS4xLjE5LjE5LjI1LjI5LjEyLjE4LjIzLjQ1LjIzIDFDNCA1LjU3IDMuMzggNiAzIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNpZ25JZGVhczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2lnbklkZWFzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDQuNWMtLjc1IDAtMS40NC4yNC0yLjAxLjY0YTMuNTkgMy41OSAwIDAgMC0uNDEtMS41MkE1IDUgMCAwIDEgMTQgOGgyLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djUuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTUuNUM5Ljc4IDE3IDkgMTYuMjIgOSAxNS4yNVYxM2MtLjcyIDAtMS40LS4xNS0yLjAyLS40Mkw3IDExLjVWMTAuODdjLjU2LjQgMS4yNi42MyAyIC42M1Y5Ljc1QzkgOC43OCA5Ljc4IDggMTAuNzUgOGgxLjc1QTMuNSAzLjUgMCAwIDAgOSA0LjVabTQuNzcgNWE1LjAxIDUuMDEgMCAwIDEtMy4yNyAzLjI3djIuNDhjMCAuMTQuMTEuMjUuMjUuMjVoNS41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di01LjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTIuNDhabS0xLjYgMGgtMS40MmEuMjUuMjUgMCAwIDAtLjI1LjI1djEuNDFhMy41MSAzLjUxIDAgMCAwIDEuNjYtMS42NlpNNC41NyAyLjEzYS41LjUgMCAwIDEgLjEyLjZsLS4wMS4wOGMwIC4wNy4wMS4xOS4xNi4zNGwuMi4xOC4xNi4xNmMuMTMuMTIuMjcuMjcuNC40NS4yNS4zOC4zOS44Ni4zOSAxLjU2IDAgLjg1LS4zMiAxLjU4LS44IDIuMDNsLjA1LjA3Yy4yOS4zNC40NS43OS41NSAxLjIzLjIuODcuMiAxLjkyLjIgMi42NHYuMDNjMCAyLjc5LS4zOCA0LjM3LS44IDUuMjctLjIuNDYtLjQzLjc1LS42Mi45M2ExLjQ4IDEuNDggMCAwIDEtLjQuMjZTNC4wOSAxOCA0IDE4Yy0uMDcgMC0uMTktLjA0LS4xOS0uMDRhLjc1Ljc1IDAgMCAxLS4xMy0uMDZjLS4wNy0uMDUtLjE2LS4xLS4yNi0uMi0uMi0uMTgtLjQxLS40Ny0uNjItLjkzLS40Mi0uOS0uOC0yLjQ4LS44LTUuMjd2LS4wM2MwLS43MiAwLTEuNzcuMi0yLjY0YTMuMDIgMy4wMiAwIDAgMSAuNi0xLjNDMi4zMyA3LjA4IDIgNi4zNSAyIDUuNWE0LjczIDQuNzMgMCAwIDEgLjY5LTIuMUE0LjA3IDQuMDcgMCAwIDEgMy45MyAyLjFsLjA0LS4wM2EuNS41IDAgMCAxIC42MS4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2lnbklkZWFzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2lnbklkZWFzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOSA0Yy0uNzYgMC0xLjQ4LjIxLTIuMDguNThhMy4zIDMuMyAwIDAgMC0uMzQtLjk2QTUgNSAwIDAgMSAxNCA4aDIuNWMuODMgMCAxLjUuNjcgMS41IDEuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDkgMTUuNVYxM2MtLjcyIDAtMS40LS4xNS0yLjAyLS40Mkw3IDExLjV2LS4wNGMuNTkuMzUgMS4yNy41NCAyIC41NFY5LjVjMC0uODMuNjctMS41IDEuNS0xLjVIMTNhNCA0IDAgMCAwLTQtNFptNC45IDVhNSA1IDAgMCAxLTMuOSAzLjl2Mi42YzAgLjI4LjIyLjUuNS41aDZhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLS41LS41aC0yLjZabS0xLjAzIDBIMTAuNWEuNS41IDAgMCAwLS41LjV2Mi4zN0E0IDQgMCAwIDAgMTIuODcgOVpNNC41OCAyLjEzYS41LjUgMCAwIDEgLjEyLjZsLS4wMS4wOGMwIC4wNy4wMS4xOS4xNi4zNGwuMi4xOC4xNi4xNmMuMTMuMTIuMjcuMjcuNC40NS4yNS4zOC4zOS44Ni4zOSAxLjU2IDAgLjg1LS4zMiAxLjU4LS44IDIuMDNsLjA1LjA3Yy4yOS4zNC40NS43OS41NSAxLjIzLjIuODcuMiAxLjkyLjIgMi42NHYuMDNjMCAyLjc5LS4zOCA0LjM3LS44IDUuMjctLjIuNDYtLjQzLjc1LS42Mi45M2ExLjQ4IDEuNDggMCAwIDEtLjQuMjZTNC4wOSAxOCA0IDE4Yy0uMDcgMC0uMTktLjA0LS4xOS0uMDRhLjc1Ljc1IDAgMCAxLS4xMy0uMDZjLS4wNy0uMDUtLjE2LS4xLS4yNi0uMi0uMi0uMTgtLjQxLS40Ny0uNjItLjkzLS40Mi0uOS0uOC0yLjQ4LS44LTUuMjd2LS4wM2MwLS43MiAwLTEuNzcuMi0yLjY0YTMuMDIgMy4wMiAwIDAgMSAuNi0xLjNDMi4zMyA3LjA4IDIgNi4zNSAyIDUuNWE0LjczIDQuNzMgMCAwIDEgLjY5LTIuMUE0LjA3IDQuMDcgMCAwIDEgMy45MyAyLjFsLjAzLS4wMmguMDFhLjUuNSAwIDAgMSAuNjEuMDRaTTQgN2MuMzkgMCAxLS40MyAxLTEuNSAwLS41NS0uMS0uODItLjIzLTEtLjA2LS4xLS4xNC0uMi0uMjUtLjNsLS4xMi0uMS0uMjUtLjI1YTEuNjcgMS42NyAwIDAgMS0uMjgtLjM2IDIuNSAyLjUgMCAwIDAtLjM0LjQ0QTMuNzMgMy43MyAwIDAgMCAzIDUuNUMzIDYuNTcgMy42MiA3IDQgN1ptLS40OCAxLjIzYy0uMTQuMTgtLjI2LjQ1LS4zNS44MkMzIDkuOCAzIDEwLjc1IDMgMTEuNWMwIDIuNzEuMzcgNC4xMy43IDQuODUuMTEuMjQuMjIuNC4zLjUuMDgtLjEuMTktLjI2LjMtLjUuMzMtLjcyLjctMi4xNC43LTQuODUgMC0uNzYgMC0xLjctLjE3LTIuNDUtLjEtLjM3LS4yLS42NC0uMzUtLjgyQS41Ny41NyAwIDAgMCA0IDhhLjU3LjU3IDAgMCAwLS40OC4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2lnbklkZWFzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzaWduSWRlYXMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuNTcgMi4wN2MuMjYuMTMuNDMuNC40My42OCAwIC44My4zMSAxLjMuNyAxLjg5bC4wMy4wNGMuMzMuNS43NyAxLjE0Ljc3IDIuMDcgMCAuOTUtLjQ4IDEuNzgtMS4yIDIuMjcuMTkuMTYuMzYuMzYuNS42LjQ4Ljc3LjcgMS45NC43IDMuNjMgMCAxLjcyLS4yMyAzLjc3LS42IDUuNDEtLjIuODItLjQyIDEuNTctLjcgMi4xNGEzIDMgMCAwIDEtLjUuNzdjLS4yMS4yMS0uNTMuNDMtLjk1LjQzLS40MiAwLS43NC0uMjItLjk0LS40M2EzIDMgMCAwIDEtLjUxLS43N2MtLjI4LS41Ny0uNS0xLjMyLS43LTIuMTQtLjM3LTEuNjQtLjYtMy43LS42LTUuNCAwLTEuNy4yMi0yLjg3LjctMy42NC4xNC0uMjQuMzEtLjQ0LjUtLjZBMi43NSAyLjc1IDAgMCAxIDIgNi43NWMwLS4zNyAwLTEgLjM4LTEuODJhOC4xIDguMSAwIDAgMSAyLjQtMi43Ny43NS43NSAwIDAgMSAuOC0uMDlaTTEwIDE0LjkyYTUuOTYgNS45NiAwIDAgMS0xLjUzLS40OCAyMy4xIDIzLjEgMCAwIDAgMC0yLjM1Yy40My4zNy45Ni42NCAxLjUzLjc4VjEwLjVjMC0uODMuNjctMS41IDEuNS0xLjVIMTVhNCA0IDAgMCAwLTYuNTgtMy4wNSA1IDUgMCAwIDAtLjg0LTEuOGwtLjA0LS4wNUE2IDYgMCAwIDEgMTcgOWgzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlhMS41IDEuNSAwIDAgMS0xLjUtMS41di00LjU4Wm0yIDBWMTloOHYtOGgtMy4zNEE2IDYgMCAwIDEgMTIgMTQuOTJaTTE0LjQ2IDExSDEydjEuODdBNCA0IDAgMCAwIDE0LjQ2IDExWlwiXSk7XG5leHBvcnQgY29uc3QgRGVzaWduSWRlYXMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzaWduSWRlYXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01LjU3IDIuMDdjLjI2LjEzLjQzLjQuNDMuNjggMCAuODMuMzEgMS4zLjcgMS44OWwuMDMuMDRjLjMzLjUuNzcgMS4xNC43NyAyLjA3IDAgLjk1LS40OCAxLjc4LTEuMiAyLjI3LjE5LjE2LjM2LjM2LjUuNi40OC43Ny43IDEuOTQuNyAzLjYzIDAgMS43Mi0uMjMgMy43Ny0uNiA1LjQxLS4yLjgyLS40MiAxLjU3LS43IDIuMTRhMyAzIDAgMCAxLS41Ljc3Yy0uMjEuMjEtLjUzLjQzLS45NS40My0uNDIgMC0uNzQtLjIyLS45NC0uNDNhMyAzIDAgMCAxLS41MS0uNzdjLS4yOC0uNTctLjUtMS4zMi0uNy0yLjE0LS4zNy0xLjY0LS42LTMuNy0uNi01LjQgMC0xLjcuMjItMi44Ny43LTMuNjQuMTQtLjI0LjMxLS40NC41LS42QTIuNzUgMi43NSAwIDAgMSAyIDYuNzVjMC0uMzcgMC0xIC4zOC0xLjgyYTguMSA4LjEgMCAwIDEgMi40LTIuNzcuNzUuNzUgMCAwIDEgLjgtLjA5Wk0zLjUgNi43NWExLjI1IDEuMjUgMCAwIDAgMi41IDBjMC0uNDQtLjE4LS43NC0uNTQtMS4yN2wtLjAxLS4wMmMtLjIzLS4zNC0uNS0uNzQtLjctMS4yNmE1LjA3IDUuMDcgMCAwIDAtMSAxLjM3Yy0uMjUuNTEtLjI1Ljg4LS4yNSAxLjE4Wm0uNDcgMy42NmMtLjI0LjQtLjQ3IDEuMjItLjQ3IDIuODQgMCAxLjYuMjIgMy41NS41NyA1LjA4YTguOTEgOC45MSAwIDAgMCAuNjggMmMuMDMtLjA1LjA3LS4xMS4xLS4xOS4yLS40MS40LTEuMDQuNTgtMS44LjM1LTEuNTQuNTctMy40OC41Ny01LjA5IDAtMS42Mi0uMjMtMi40NC0uNDctMi44NGEuNzkuNzkgMCAwIDAtLjMzLS4zMmMtLjEtLjA1LS4yNS0uMDktLjQ1LS4wOXMtLjM0LjA0LS40NS4wOWEuNzkuNzkgMCAwIDAtLjMzLjMyWk0xMCAxNC45YTUuOTYgNS45NiAwIDAgMS0xLjUzLS40NyAyMy4xIDIzLjEgMCAwIDAgLjAyLTEuN2MuNDUuMy45Ni41MiAxLjUxLjY1VjEwLjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGE0LjUgNC41IDAgMCAwLTcuMjMtMy41N2MtLjItLjU2LS40OS0uOTgtLjY5LTEuMjdsLS4wNC0uMDZBNiA2IDAgMCAxIDE3IDloMy41Yy44MyAwIDEuNS42NyAxLjUgMS41djljMCAuODMtLjY3IDEuNS0xLjUgMS41aC05YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNC41OFptMS41LjA3djQuNTJoOXYtOWgtMy42OWE2IDYgMCAwIDEtNS4zMSA0LjQ4Wm0zLjc0LTQuNDhIMTEuNXYyLjk3YTQuNSA0LjUgMCAwIDAgMy43NC0yLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgRGVzazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2sxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuNzUgM0MxLjc4IDMgMSAzLjc4IDEgNC43NVY2aDEzdjYuNWEuNS41IDAgMCAwIDEgMFY0Ljc1QzE1IDMuNzggMTQuMjIgMyAxMy4yNSAzSDIuNzVaTTggN0gxdjQuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMy41QzcuMjIgMTMgOCAxMi4yMiA4IDExLjI1VjdaTTMgOWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSAzIDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yLjc1IDNDMS43OCAzIDEgMy43OCAxIDQuNzV2Ni41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuNUM3LjIyIDEzIDggMTIuMjIgOCAxMS4yNVY3aDZ2NS41YS41LjUgMCAwIDAgMSAwVjQuNzVDMTUgMy43OCAxNC4yMiAzIDEzLjI1IDNIMi43NVpNMiA3aDV2NC4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWN1ptMC0xVjQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41Yy40MSAwIC43NS4zNC43NS43NVY2SDJabTEuNSAyYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2MWgxNXY4LjVhLjUuNSAwIDAgMCAxIDBWNmEyIDIgMCAwIDAtMi0ySDRabTYgNEgydjZjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWOFptLTUuNSAyLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWOGg3djcuNWEuNS41IDAgMCAwIDEgMFY2YTIgMiAwIDAgMC0yLTJINFpNMyA4aDZ2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY4Wm0wLTFWNmExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2MUgzWm0yIDIuNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC4yNSA0QzMuMDEgNCAyIDUgMiA2LjI1VjhoMTguNXYxMS4yNWEuNzUuNzUgMCAwIDAgMS41IDB2LTEzQzIyIDUuMDEgMjEgNCAxOS43NSA0SDQuMjVaTTEyIDkuNUgydjcuNzVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMjBoNC41QTIuNzUgMi43NSAwIDAgMCAxMiAxNy4yNVY5LjVabS03IDMuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjI1IDRDMy4wMSA0IDIgNSAyIDYuMjV2MTFBMi43NSAyLjc1IDAgMCAwIDQuNzUgMjBoNC41QTIuNzUgMi43NSAwIDAgMCAxMiAxNy4yNVY5LjVoOC41djkuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xM0MyMiA1LjAxIDIxIDQgMTkuNzUgNEg0LjI1Wk0zLjUgOS41aDd2Ny43NWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLTQuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjkuNVptMC0xLjVWNi4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDE1LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1VjhoLTE3Wm0yLjI1IDMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRGVzazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2syOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTQuNzUgNEEyLjc1IDIuNzUgMCAwIDAgMiA2Ljc1VjloMjIuNXYxNC4yNWEuNzUuNzUgMCAwIDAgMS41IDBWNi43NUEyLjc1IDIuNzUgMCAwIDAgMjMuMjUgNEg0Ljc1Wk0xNCAxMC41SDJ2OS43NUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGg0LjVBMy43NSAzLjc1IDAgMCAwIDE0IDIwLjI1VjEwLjVabS04LjUgNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2syOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQuNzUgNEEyLjc1IDIuNzUgMCAwIDAgMiA2Ljc1djEzLjVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjRoNC41QTMuNzUgMy43NSAwIDAgMCAxNCAyMC4yNVYxMC41aDEwLjV2MTIuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjYuNzVBMi43NSAyLjc1IDAgMCAwIDIzLjI1IDRINC43NVpNMy41IDEwLjVoOXY5Ljc1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC00LjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1VjEwLjVabTAtMS41VjYuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTguNWMuNyAwIDEuMjUuNTYgMS4yNSAxLjI1VjloLTIxWm0yLjc1IDRhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAxIDAgMC0xLjVoLTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2szMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk01LjI1IDRBMy4yNSAzLjI1IDAgMCAwIDIgNy4yNVYxMGgyNnYxN2ExIDEgMCAxIDAgMiAwVjcuMjVDMzAgNS40NSAyOC41NCA0IDI2Ljc1IDRINS4yNVpNMTYgMTJIMnYxMS41QTQuNSA0LjUgMCAwIDAgNi41IDI4aDVhNC41IDQuNSAwIDAgMCA0LjUtNC41VjEyWk02IDE3YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2szMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzazMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTUuMjUgNEEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1VjIzLjVBNC41IDQuNSAwIDAgMCA2LjUgMjhoNWE0LjUgNC41IDAgMCAwIDQuNS00LjVWMTJoMTJ2MTVhMSAxIDAgMSAwIDIgMFY3LjI1QzMwIDUuNDUgMjguNTQgNCAyNi43NSA0SDUuMjVaTTQgMTJoMTB2MTEuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSA0IDIzLjVWMTJabTAtMlY3LjI1QzQgNi41NiA0LjU2IDYgNS4yNSA2aDIxLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVWMTBINFptMyA1YTEgMSAwIDEgMCAwIDJoNGExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVzazQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNOC4yNSA4QTQuMjUgNC4yNSAwIDAgMCA0IDEyLjI1VjE2aDM3LjV2MjIuNzVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi0yNi41QzQ0IDkuOSA0Mi4xIDggMzkuNzUgOEg4LjI1Wk0yNCAxOC41SDR2MTUuMjVDNCAzNy4yIDYuOCA0MCAxMC4yNSA0MGg3LjVDMjEuMiA0MCAyNCAzNy4yIDI0IDMzLjc1VjE4LjVabS0xNCA2Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDUuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTUuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRGVzazQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNOC4yNSA4QTQuMjUgNC4yNSAwIDAgMCA0IDEyLjI1djIxLjVDNCAzNy4yIDYuOCA0MCAxMC4yNSA0MGg3LjVDMjEuMiA0MCAyNCAzNy4yIDI0IDMzLjc1VjE4LjVoMTcuNXYyMC4yNWExLjI1IDEuMjUgMCAxIDAgMi41IDB2LTI2LjVDNDQgOS45IDQyLjEgOCAzOS43NSA4SDguMjVaTTYuNSAxOC41aDE1djE1LjI1YTMuNzUgMy43NSAwIDAgMS0zLjc1IDMuNzVoLTcuNWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1VjE4LjVabTAtMi41di0zLjc1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDMxLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWMTZoLTM1Wm00Ljc1IDdhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDUuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3AxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgMkMyLjY3IDIgMiAyLjY3IDIgMy41djdjMCAuODMuNjcgMS41IDEuNSAxLjVINnYxSDQuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAxIDAgMC0xSDEwdi0xaDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Wk05IDEydjFIN3YtMWgyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDJ2MUg0LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMSAwIDAtMUgxMHYtMWgyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDRabTUgMTB2MUg3di0xaDJaTTMgNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNUg3djJINS41YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFIMTN2LTJoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTBjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xM1pNMTIgMTV2Mkg4di0yaDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3AyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnY5YzAgMS4xLjkgMiAyIDJoM3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDNhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINFptOCAxM3YySDh2LTJoNFpNMyA0YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY5YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi43NSAyMmEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw0LjI1IDNoMTUuNWMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXYxMC42NWMwIDEuMi0uOTIgMi4xNy0yLjA5IDIuMjVoLTQuNHYyLjVoMS43NWEuNzUuNzUgMCAwIDEgLjEgMS41SDYuNzVaTTE0IDE4aC00djIuNWg0VjE4WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi43NSAyMmEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw0LjI1IDNoMTUuNWMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXYxMC42NWMwIDEuMi0uOTIgMi4xNy0yLjA5IDIuMjVoLTQuNHYyLjVoMS43NWEuNzUuNzUgMCAwIDEgLjEgMS41SDYuNzVaTTE0IDE4aC00djIuNWg0VjE4Wm01Ljc1LTEzLjVINC4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxMC41YzAgLjM4LjI4LjcuNjUuNzVoMTUuNmMuMzggMCAuNy0uMjguNzQtLjY1VjUuMjVjMC0uMzgtLjI3LS43LS42NC0uNzRsLS4xLS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3AyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yMy43NSAzQzI0Ljk5IDMgMjYgNCAyNiA1LjI1djEzLjVDMjYgMjAgMjUgMjEgMjMuNzUgMjFIMTh2Mi41aDEuNzVjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjFjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMUg4LjI1YS43NS43NSAwIDAgMS0uMS0xLjVIMTBWMjFINC4yNUMzLjAxIDIxIDIgMjAgMiAxOC43NVY1LjI1QzIgNC4wMSAzIDMgNC4yNSAzaDE5LjVaTTE2LjUgMjFoLTV2Mi41aDVWMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3AyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xOS43NSAyNUg4LjI1YS43NS43NSAwIDAgMS0uMS0xLjVIMTBWMjFINC4yNUMzLjAxIDIxIDIgMjAgMiAxOC43NVY1LjI1QzIgNC4wMSAzIDMgNC4yNSAzaDE5LjVDMjQuOTkgMyAyNiA0IDI2IDUuMjV2MTMuNUMyNiAyMCAyNSAyMSAyMy43NSAyMUgxOHYyLjVoMS43NWMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxSDguMjVoMTEuNVptLTMuMjUtNGgtNXYyLjVoNVYyMVptNy4yNS0xNi41SDQuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMy41YzAgLjQyLjM0Ljc1Ljc1Ljc1aDE5LjVjLjQxIDAgLjc1LS4zMy43NS0uNzVWNS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3AzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMjEuNUMyOC41NSAzIDMwIDQuNDYgMzAgNi4yNXYxNS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTYuNzR2MmgzYTEgMSAwIDEgMSAwIDJIOWExIDEgMCAxIDEgMC0yaDN2LTJINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAyMS43NVY2LjI1Wk0xNC4wMSAyNXYyaDR2LTJoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3AzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk01LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNXYxNS41QzIgMjMuNTUgMy40NiAyNSA1LjI1IDI1aDYuNzZ2MmgtM2ExIDEgMCAxIDAgMCAyaDE0YTEgMSAwIDEgMCAwLTJoLTN2LTJoNi43NGMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMzAgNC40NSAyOC41NCAzIDI2Ljc1IDNINS4yNVptMTIuNzYgMjJ2MmgtNHYtMmg0Wk00IDYuMjVDNCA1LjU2IDQuNTYgNSA1LjI1IDVoMjEuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxNS41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg1LjI1QzQuNTYgMjMgNCAyMi40NCA0IDIxLjc1VjYuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQXJyb3dEb3duMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93RG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTUgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDExIDYuMjlWMy41YS41LjUgMCAwIDAtMSAwdjIuOEw4Ljg1IDUuMTRhLjUuNSAwIDEgMC0uNy43bDIgMlpNMTAuNSAxMWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2Ljc2YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYxaDEuNWEuNS41IDAgMSAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMUg2di0xSDMuNUExLjUgMS41IDAgMCAxIDIgMTAuNXYtN0MyIDIuNjcgMi42NyAyIDMuNSAyaDIuNzZhNS41IDUuNSAwIDAgMCA0LjI0IDlaTTkgMTJIN3YxaDJ2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQXJyb3dEb3duMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BBcnJvd0Rvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1IDIuMzVhLjUuNSAwIDAgMCAuMzUuMTUuNS41IDAgMCAwIC4zNS0uMTVsMi0yYS41LjUgMCAwIDAtLjctLjdMMTEgNi4yOVYzLjVhLjUuNSAwIDAgMC0xIDB2Mi44TDguODUgNS4xNGEuNS41IDAgMSAwLS43LjdsMiAyWk0xMiAxMWExIDEgMCAwIDAgLjg5LS41NGMuNC0uMi43Ny0uNDQgMS4xMS0uNzJWMTBhMiAyIDAgMCAxLTIgMmgtMnYxaDEuNWEuNS41IDAgMSAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41YzAtLjI4LjIzLS41LjUtLjVINnYtMUg0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDIuMjZjLS4yNi4zLS40OC42NC0uNjYgMUg0YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDhabS0zIDFIN3YxaDJ2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQXJyb3dEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93RG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDE1IDYuMjlWMy41YS41LjUgMCAwIDAtMSAwdjIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di0xMEMyIDIuNjcgMi42NyAyIDMuNSAyaDYuNzZhNS41IDUuNSAwIDAgMCA0LjI0IDlaTTEyIDE1SDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93RG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQXJyb3dEb3duMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDE1IDYuMjlWMy41YS41LjUgMCAwIDAtMSAwdjIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJaTTE3IDEzdi0yLjZjLjM2LS4xOC43LS40IDEtLjY2VjEzYTIgMiAwIDAgMS0yIDJoLTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkg0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDYuMjZjLS4yNi4zLS40OC42NC0uNjYgMUg0YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFabS01IDJIOHYyaDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQXJyb3dEb3duMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93RG93bjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjMgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS01LTNhLjUuNSAwIDAgMC0xIDB2NC44bC0xLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0wxOCA4LjI5VjMuNVptLS41IDkuNWMxLjc1IDAgMy4zMy0uNjkgNC41LTEuOHY0LjU1YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI1aC00LjR2Mi41aDEuNzVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI1aDcuOTJhNi41IDYuNSAwIDAgMCA1LjQ4IDEwWk0xNCAxOGgtNHYyLjVoNFYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BBcnJvd0Rvd24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93RG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIzIDYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNS0zYS41LjUgMCAwIDAtMSAwdjQuOGwtMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdMMTggOC4yOVYzLjVabTIuNSAxMi4yNXYtMy40OGE2LjUyIDYuNTIgMCAwIDAgMS41LTEuMDh2NC41NmMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNWgtNC40djIuNWgxLjc1YS43NS43NSAwIDAgMSAuMSAxLjVINi43NWEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNWg3LjkyYy0uMy40Ni0uNTMuOTctLjcgMS41SDQuMjRjLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjF2MTAuNWMwIC4zOC4yOC43LjY1Ljc0bC4xLjAxaDE1LjVjLjM4IDAgLjctLjI4Ljc0LS42NXYtLjFaTTE0IDE4aC00djIuNWg0VjE4WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93RG93bjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BBcnJvd0Rvd24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIzLjUgMTZhNy41IDcuNSAwIDEgMCAwLTE1IDcuNSA3LjUgMCAwIDAgMCAxNVptMS0xMi4yNXY3LjY5bDIuNzItMi43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC00IDRjLS4zLjMtLjc3LjMtMS4wNiAwbC00LTRhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNkwyMyAxMS40NFYzLjc1YS43NS43NSAwIDAgMSAxLjUgMFptLTEgMTMuNzVhOC45NyA4Ljk3IDAgMCAwIDYuNS0yLjc4djcuMDNjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNi43NHYyaDNhMSAxIDAgMSAxIDAgMkg5YTEgMSAwIDEgMSAwLTJoM3YtMkg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDIxLjc1VjYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMTEuMTNhOSA5IDAgMCAwIDcuMTIgMTQuNVpNMTQuMDEgMjV2Mmg0di0yaC00WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93RG93bjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQXJyb3dEb3duMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjMuNSAxNmE3LjUgNy41IDAgMSAwIDAtMTUgNy41IDcuNSAwIDAgMCAwIDE1Wm0xLTEyLjI1djcuNjlsMi43Mi0yLjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTQgNGMtLjMuMy0uNzcuMy0xLjA2IDBsLTQtNGEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2TDIzIDExLjQ0VjMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwWk01LjI1IDNoMTEuMTNhOSA5IDAgMCAwLTEuMTcgMkg1LjI1QzQuNTYgNSA0IDUuNTYgNCA2LjI1djE1LjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMjEuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWMTYuM2E5LjA0IDkuMDQgMCAwIDAgMi0xLjU4djcuMDNjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNi43NHYyaDNhMSAxIDAgMSAxIDAgMkg5YTEgMSAwIDEgMSAwLTJoM3YtMkg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDIxLjc1VjYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNabTEyLjc2IDIyaC00djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BBcnJvd1JpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93UmlnaHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE1IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVBLjUuNSAwIDAgMCAxMyA1LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDExLjI5IDVIOC41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaTTEwLjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2di43NmMwIC44My0uNjcgMS41LTEuNSAxLjVIMTB2MWgxLjVhLjUuNSAwIDEgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFINnYtMUgzLjVBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTdDMiAyLjY3IDIuNjcgMiAzLjUgMmgyLjc2YTUuNSA1LjUgMCAwIDAgNC4yNCA5Wk05IDEySDd2MWgydi0xWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93UmlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93UmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1QS41LjUgMCAwIDAgMTMgNS41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxMS4yOSA1SDguNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWk0xMC41IDExaDEuNDlhMSAxIDAgMCAwIC44OS0uNTRjLjQtLjIuNzctLjQzIDEuMTEtLjcxdi4yNGEyIDIgMCAwIDEtMiAyaC0yVjEzaDEuNWEuNS41IDAgMSAxIDAgMUg0LjVhLjUuNSAwIDEgMSAwLTFINnYtMUg0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMTEuODktMiAyLTJoMi4yNmMtLjI1LjMtLjQ3LjY0LS42NiAxSDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoNi41Wk05IDEySDd2MWgydi0xWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93UmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQXJyb3dSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNUEuNS41IDAgMCAwIDE3IDUuNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgNUgxMi41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di0xMEMyIDIuNjcgMi42NyAyIDMuNSAyaDYuNzZhNS41IDUuNSAwIDAgMCA0LjI0IDlaTTEyIDE3di0ySDh2Mmg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEFycm93UmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93UmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1QS41LjUgMCAwIDAgMTcgNS41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSA1SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpNMTcgMTN2LTIuNmMuMzYtLjE4LjctLjQgMS0uNjZWMTNhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNi4yNmMtLjI2LjMtLjQ4LjY0LS42NiAxSDRhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVptLTUgNHYtMkg4djJoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BBcnJvd1JpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEFycm93UmlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIzIDYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWk0xNC41IDZhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcuN0wxOS4yOSA2SDE0LjVabTMgN2MxLjc1IDAgMy4zMy0uNjkgNC41LTEuOHY0LjU1YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI1aC00LjR2Mi41aDEuNzVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI1aDcuOTJhNi41IDYuNSAwIDAgMCA1LjQ4IDEwWk0xNCAxOGgtNHYyLjVoNFYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BBcnJvd1JpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BBcnJvd1JpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjMgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBaTTE0LjUgNmEuNS41IDAgMCAwIDAgMWg0LjhsLTEuNjUgMS42NWEuNS41IDAgMCAwIC43LjdsMi41LTIuNWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNy43TDE5LjI5IDZIMTQuNVptNiA5Ljc1di0zLjQ4YTYuNTIgNi41MiAwIDAgMCAxLjUtMS4wOHY0LjU2YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI1aC00LjR2Mi41aDEuNzVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI1aDcuOTJjLS4zLjQ2LS41My45Ny0uNyAxLjVINC4yNGMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxMC41YzAgLjM4LjI4LjcuNjUuNzVoMTUuNmMuMzggMCAuNy0uMjguNzQtLjY1di0uMVpNMTQgMThoLTR2Mi41aDRWMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQ2hlY2ttYXJrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcENoZWNrbWFyazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTUgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMEw5LjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMSAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43Wk0xMC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNnYuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEwdjFoMS41YS41LjUgMCAxIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xSDZ2LTFIMy41QTEuNSAxLjUgMCAwIDEgMiAxMC41di03QzIgMi42NyAyLjY3IDIgMy41IDJoMi43NmE1LjUgNS41IDAgMCAwIDQuMjQgOVpNOSAxMkg3djFoMnYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDaGVja21hcmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcENoZWNrbWFyazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE1IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMOS41IDYuMjlsLS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pNMTAuNSAxMUgxMmExIDEgMCAwIDAgLjg5LS41NGMuNC0uMi43Ny0uNDQgMS4xMS0uNzJWMTBhMiAyIDAgMCAxLTIgMmgtMnYxaDEuNWEuNS41IDAgMSAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMUg2di0xSDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoMi4yNmMtLjI2LjMtLjQ4LjY0LS42NiAxSDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoNi41Wk05IDEySDd2MWgydi0xWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcENoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BDaGVja21hcmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMMTMuNSA2LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di0xMEMyIDIuNjcgMi42NyAyIDMuNSAyaDYuNzZhNS41IDUuNSAwIDAgMCA0LjI0IDlaTTEyIDE1SDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcENoZWNrbWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQ2hlY2ttYXJrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi44NS0xLjg1TDEzLjUgNi4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN1pNMTcgMTN2LTIuNmMuMzYtLjE4LjctLjQgMS0uNjZWMTNhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNi4yNmMtLjI2LjMtLjQ4LjY0LS42NiAxSDRhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVptLTUgMkg4djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDaGVja21hcmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQ2hlY2ttYXJrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMyA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTIuMTUtMi4zNWEuNS41IDAgMCAwLS43IDBMMTYuNSA3Ljc5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNC00YS41LjUgMCAwIDAgMC0uN1pNMTcuNSAxM2MxLjc1IDAgMy4zMy0uNjkgNC41LTEuOHY0LjU1YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI1aC00LjR2Mi41aDEuNzVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI1aDcuOTJhNi41IDYuNSAwIDAgMCA1LjQ4IDEwWk0xNCAxOGgtNHYyLjVoNFYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDaGVja21hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcENoZWNrbWFyazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIzIDYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMi4xNS0yLjM1YS41LjUgMCAwIDAtLjcgMEwxNi41IDcuNzlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43Wm0tLjM1IDExLjZ2LTMuNDhhNi41MiA2LjUyIDAgMCAwIDEuNS0xLjA4djQuNTZjMCAxLjItLjkzIDIuMTctMi4xIDIuMjVoLTQuNHYyLjVoMS43NWEuNzUuNzUgMCAwIDEgLjEgMS41SDYuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNUg4LjVWMThINC4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjFMMiAxNS43NlY1LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjVoNy45MmMtLjMuNDYtLjUzLjk3LS43IDEuNUg0LjI0Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjEwLjVjMCAuMzguMjguNy42NS43NGwuMS4wMWgxNS41Yy4zOCAwIC43LS4yOC43NC0uNjV2LS4xWk0xNCAxOGgtNHYyLjVoNFYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDdXJzb3IxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQ3Vyc29yMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgMkMyLjY3IDIgMiAyLjY3IDIgMy41djdjMCAuODMuNjcgMS41IDEuNSAxLjVINnYxSDQuNWEuNS41IDAgMCAwIDAgMUg4di0xSDd2LTFoMVY4LjVhMS41IDEuNSAwIDAgMSAyLjU4LTEuMDRsMy4zNSAzLjQ4Yy4wNS0uMTQuMDctLjI5LjA3LS40NHYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTYuMzYgNi4xNUEuNS41IDAgMCAwIDkgOC41djZhLjUuNSAwIDAgMCAuOS4zbDEuMzgtMS45MSAyLjQuNTVhLjUuNSAwIDAgMCAuNDctLjgzTDkuODYgOC4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDdXJzb3IxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEN1cnNvcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgydjFINC41YS41LjUgMCAwIDAgMCAxSDh2LTFIN3YtMWgxdi0xSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjUuOTdsLjgyLjg2QTIgMiAwIDAgMCAxNCAxMFY0YTIgMiAwIDAgMC0yLTJINFptNS44NiA2LjE1QS41LjUgMCAwIDAgOSA4LjV2NmEuNS41IDAgMCAwIC45LjNsMS4zOC0xLjkxIDIuNC41NWEuNS41IDAgMCAwIC40Ny0uODNMOS44NiA4LjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEN1cnNvcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BDdXJzb3IyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNSAyQzIuNjcgMiAyIDIuNjcgMiAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YySDUuNWEuNS41IDAgMCAwIDAgMUgxMXYtMUg4di0yaDN2LTQuNWExLjUgMS41IDAgMCAxIDIuNTYtMS4wN2w0LjQgNC4zN2MuMDMtLjEuMDQtLjIuMDQtLjN2LTEwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTNabTkuMzYgOC4xNGEuNS41IDAgMCAwLS44Ni4zNnY4YS41LjUgMCAwIDAgLjkuM2wyLTIuNjUgMy41Ljc4YS41LjUgMCAwIDAgLjQ1LS44NGwtNi01Ljk1WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEN1cnNvcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wQ3Vyc29yMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2OWMwIDEuMS45IDIgMiAyaDN2Mkg1LjVhLjUuNSAwIDAgMCAwIDFIMTF2LTFIOHYtMmgzdi0xSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY4Ljg0bC44Ny44N0EyIDIgMCAwIDAgMTggMTNWNGEyIDIgMCAwIDAtMi0ySDRabTguODYgOC4xNWEuNS41IDAgMCAwLS44Ni4zNXY4YS41LjUgMCAwIDAgLjkuM2wyLTIuNjUgMy41Ljc4YS41LjUgMCAwIDAgLjQ1LS44NGwtNi01Ljk0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEN1cnNvcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BDdXJzb3IyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuNzUgMjJhLjc1Ljc1IDAgMCAxLS4xLTEuNUg4LjVWMThINC4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjFMMiAxNS43NlY1LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNC4yNSAzaDE1LjVjMS4xOSAwIDIuMTYuOTMgMi4yNCAyLjF2MTAuNjVjMCAuMzctLjA4LjcyLS4yNCAxLjAzbC00LjctNS4yQTEuNzUgMS43NSAwIDAgMCAxNCAxMi43NVYxOGgtNHYyLjVoNFYyMkg2Ljc1Wm04Ljc0LTkuOTVhLjc1Ljc1IDAgMCAxIC44Mi4ybDYuMzcgNy4wNmEuNzUuNzUgMCAwIDEtLjc0IDEuMjNsLTMuNTQtLjg4LTIuMDMgMy4wMWEuNzUuNzUgMCAwIDEtMS4zNy0uNDJ2LTkuNWMwLS4zMS4yLS41OS40OS0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDdXJzb3IyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEN1cnNvcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuNzUgMjJhLjc1Ljc1IDAgMCAxLS4xLTEuNUg4LjVWMThINC4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjFMMiAxNS43NlY1LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNC4yNSAzaDE1LjVjMS4xOSAwIDIuMTYuOTMgMi4yNCAyLjF2MTAuNjVjMCAuMzctLjA4LjcyLS4yNCAxLjAzTDIwLjUgMTUuNFY1LjI1YzAtLjM4LS4yOC0uNy0uNjUtLjc0bC0uMS0uMDFINC4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxMC41YzAgLjM4LjI4LjcuNjUuNzVIMTRWMThoLTR2Mi41aDRWMjJINi43NVptOC43NC05Ljk1YS43NS43NSAwIDAgMSAuODIuMmw2LjM3IDcuMDZhLjc1Ljc1IDAgMCAxLS43NCAxLjIzbC0zLjU0LS44OC0yLjAzIDMuMDFhLjc1Ljc1IDAgMCAxLTEuMzctLjQydi05LjVjMC0uMzEuMi0uNTkuNDktLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wQ3Vyc29yMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEN1cnNvcjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjMuNzUgM0MyNC45OSAzIDI2IDQgMjYgNS4yNXYxMy41YzAgLjY3LS4zIDEuMjctLjc2IDEuNjlsLTYuMTgtNi44NkExLjc1IDEuNzUgMCAwIDAgMTYgMTQuNzVWMjFIMTEuNXYyLjVIMTZWMjVIOC4yNWEuNzUuNzUgMCAwIDEtLjEtMS41SDEwVjIxSDQuMjVDMy4wMSAyMSAyIDIwIDIgMTguNzVWNS4yNUMyIDQuMDEgMyAzIDQuMjUgM2gxOS41Wm0tNi4yNiAxMS4wNWEuNzUuNzUgMCAwIDEgLjgyLjJsNy43IDguNTRhLjc1Ljc1IDAgMCAxLS43MyAxLjIzbC00LjM5LTEuMDktMi41MiAzLjc0YS43NS43NSAwIDAgMS0xLjM3LS40MnYtMTEuNWMwLS4zMS4yLS41OS40OS0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BDdXJzb3IyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEN1cnNvcjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTI2IDE4Ljc1YzAgLjY3LS4zIDEuMjctLjc2IDEuNjlsLTEtMS4xMmEuNzUuNzUgMCAwIDAgLjI2LS41N1Y1LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1SDQuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMy41YzAgLjQyLjM0Ljc1Ljc1Ljc1SDE2VjIxaC00LjV2Mi41SDE2VjI1SDguMjVhLjc1Ljc1IDAgMCAxLS4xLTEuNUgxMFYyMUg0LjI1QzMuMDEgMjEgMiAyMCAyIDE4Ljc1VjUuMjVDMiA0LjAxIDMgMyA0LjI1IDNoMTkuNUMyNC45OSAzIDI2IDQgMjYgNS4yNXYxMy41Wm0tOC41MS00LjdhLjc1Ljc1IDAgMCAxIC44Mi4ybDcuNyA4LjU0YS43NS43NSAwIDAgMS0uNzMgMS4yM2wtNC4zOS0xLjA5LTIuNTIgMy43NGEuNzUuNzUgMCAwIDEtMS4zNy0uNDJ2LTExLjVjMC0uMzEuMi0uNTkuNDktLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wRWRpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BFZGl0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIm02Ljk4IDYuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRMOS42MiA5LjAyYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3QS44OS44OSAwIDAgMSA2LjA0IDguOWwuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWm0tLjctLjcxTDkuOTMgMkgzLjVDMi42NyAyIDIgMi42NyAyIDMuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41SDZ2MUg0LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMSAwIDAtMUgxMHYtMWgyLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjYuMDZsLTMuNjcgMy42N2MtLjQuNC0uOTIuNy0xLjQ4Ljg0bC0xLjUuMzdhMS44OSAxLjg5IDAgMCAxLTIuMy0yLjI5bC4zOC0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OFpNOSAxMnYxSDd2LTFoMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BFZGl0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BFZGl0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtNi45OCA2LjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0TDkuNjIgOS4wMmEyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN0EuODkuODkgMCAwIDEgNi4wNCA4LjlsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpNNCAxMWg4YTEgMSAwIDAgMCAxLTFWNy4wNmwxLTFWMTBhMiAyIDAgMCAxLTIgMmgtMnYxaDEuNWEuNS41IDAgMSAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMUg2di0xSDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNS45NGwtMSAxSDRhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFabTUgMUg3djFoMnYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BFZGl0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEVkaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTEwLjk4IDYuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJabS0uNy0uNzFMMTMuOTMgMkgzLjVDMi42NyAyIDIgMi42NyAyIDMuNXYxMGMwIC44My42NyAxLjUgMS41IDEuNUg3djJINS41YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFIMTN2LTJoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2LjA2bC0zLjY3IDMuNjdjLS40LjQtLjkyLjctMS40OC44NGwtMS41LjM3YTEuODkgMS44OSAwIDAgMS0yLjMtMi4yOWwuMzgtMS41YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDhaTTEyIDE1djJIOHYtMmg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEVkaXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEVkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xMC45OCA2LjM4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWk0xNyAxM1Y3LjA2bDEtMVYxM2EyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg5Ljk0bC0xIDFINGExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xWm0tNSAySDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEVkaXQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wRWRpdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTkuMSAxLjY3LTUuOSA1LjljLS4zNS4zNS0uNi43OC0uNyAxLjI1bC0uNDcgMS44M2MtLjIuOC41MyAxLjUyIDEuMzIgMS4zMmwxLjgzLS40NmMuNDctLjEyLjktLjM2IDEuMjUtLjdsNS45LTUuOWEyLjI5IDIuMjkgMCAwIDAtMy4yMy0zLjI0Wm0tNi42MSA1LjJMMTYuMzYgM0g0LjFBMi4yNSAyLjI1IDAgMCAwIDIgNS4yNXYxMC42NkEyLjI1IDIuMjUgMCAwIDAgNC4yNiAxOEg4LjV2Mi40OUg2LjY1YS43NS43NSAwIDAgMCAuMSAxLjVoMTAuNmEuNzUuNzUgMCAwIDAtLjEtMS41SDE1LjVWMThoNC40YTIuMjUgMi4yNSAwIDAgMCAyLjEtMi4yNXYtOS4xbC00Ljg2IDQuODZjLS40OC40Ny0xLjA3LjgtMS43Mi45N2wtMS44My40NmMtMS41Mi4zOC0yLjktMS0yLjUzLTIuNTNsLjQ2LTEuODNjLjE2LS42NS41LTEuMjQuOTctMS43MlpNMTMuOTkgMTh2Mi41aC00VjE4aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wRWRpdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wRWRpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wibTE5LjEgMS42Ny01LjkgNS45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ3IDEuODNjLS4yLjguNTMgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpNNC4yNSAzaDEyLjFsLTEuNSAxLjVINC4yNmMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxMC41YzAgLjM4LjI4LjcuNjUuNzRsLjEuMDFoMTUuNWMuMzggMCAuNy0uMjguNzQtLjY1VjguMTVsMS41LTEuNXY5LjFjMCAxLjItLjkyIDIuMTctMi4wOSAyLjI1aC00LjR2Mi41aDEuNzVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI1aC4xNVpNMTQgMThoLTR2Mi41aDRWMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wRmxvdzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BGbG93MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNCAyLjVjMC0uMTguMDMtLjM0LjA5LS41SDMuNUMyLjY3IDIgMiAyLjY3IDIgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMUgxM3YtMmgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjdoLTIuNWExLjUgMS41IDAgMCAxLTEuMS0uNDdsLS4yNS43NkEyLjUgMi41IDAgMCAxIDEyIDl2LjUxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDYgOS41di0zQzYgNS42NyA2LjY3IDUgNy41IDVoM2MuNDMgMCAuODIuMTggMS4xLjQ3bC4yNS0uNzZBMi41IDIuNSAwIDAgMSAxNCAzVjIuNVpNMTIgMTV2Mkg4di0yaDRabTMuNS0xM2EuNS41IDAgMCAwLS41LjVWNGgtLjc4YTEuNSAxLjUgMCAwIDAtMS40MiAxLjAzbC0uNTUgMS42M2EuNS41IDAgMCAxLS40Ny4zNEgxMXYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjVWOGguNzhhMS41IDEuNSAwIDAgMCAxLjQyLTEuMDNsLjU1LTEuNjNhLjUuNSAwIDAgMSAuNDctLjM0SDE1di41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEZsb3cyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEZsb3cyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC4wOSAySDRhMiAyIDAgMCAwLTIgMnY5YzAgMS4xLjkgMiAyIDJoM3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDNhMiAyIDAgMCAwIDItMlY3aC0xdjZhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDEwdi0uNWMwLS4xOC4wMy0uMzQuMDktLjVaTTEyIDE3SDh2LTJoNHYyWm0zLTE0LjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41VjVoLS43OGEuNS41IDAgMCAwLS40Ny4zNGwtLjU1IDEuNjNBMS41IDEuNSAwIDAgMSAxMS43OCA4SDExdjEuNWEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41aDNjLjI4IDAgLjUuMjIuNS41VjdoLjc4YS41LjUgMCAwIDAgLjQ3LS4zNGwuNTUtMS42M0ExLjUgMS41IDAgMCAxIDE0LjIyIDRIMTVWMi41Wk0xMCA3SDh2MmgyVjdabTYtMmgyVjNoLTJ2MlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BGbG93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEZsb3cyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjUgMy43NWMwLS4yNy4wNi0uNTIuMTctLjc1SDQuMUEyLjI1IDIuMjUgMCAwIDAgMiA1LjI2djEwLjY2QTIuMjUgMi4yNSAwIDAgMCA0LjI2IDE4SDguNXYyLjQ5SDYuNjVhLjc1Ljc1IDAgMCAwIC4xIDEuNWgxMC42YS43NS43NSAwIDAgMC0uMS0xLjVIMTUuNVYxOGg0LjRhMi4yNSAyLjI1IDAgMCAwIDIuMS0yLjI1VjkuNWgtMy43NWMtLjQyIDAtLjgtLjE1LTEuMS0uNGwtLjQ1IDEuMzJjLS40IDEuMTktMS40NyAyLTIuNyAyLjA4di43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTRjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtNGMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg0Yy42MiAwIDEuMTYuMzIgMS40Ny44bC41OC0xLjcyYTMuMDQgMy4wNCAwIDAgMSAyLjItMnYtLjgzWk0xNCAxOHYyLjVoLTRWMThoNFptNC4yNS0xNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjUuNWgtLjMyYy0uODggMC0xLjY2LjU2LTEuOTMgMS40bC0uOTIgMi43M2EuNTQuNTQgMCAwIDEtLjUuMzdIMTN2LS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNGEuNzUuNzUgMCAwIDAtLjc1Ljc1djRjMCAuNDEuMzQuNzUuNzUuNzVoNGMuNDEgMCAuNzUtLjM0Ljc1LS43NVYxMS41aC44MmMuODggMCAxLjY2LS41NiAxLjkzLTEuNGwuOTItMi43M2EuNTQuNTQgMCAwIDEgLjUtLjM3aC4zM3YuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNGMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BGbG93MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BGbG93MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuNjcgM0g0LjFBMi4yNSAyLjI1IDAgMCAwIDIgNS4yNnYxMC42NkEyLjI1IDIuMjUgMCAwIDAgNC4yNiAxOEg4LjV2Mi40OUg2LjY1YS43NS43NSAwIDAgMCAuMSAxLjVoMTAuNmEuNzUuNzUgMCAwIDAtLjEtMS41SDE1LjVWMThoNC40YTIuMjUgMi4yNSAwIDAgMCAyLjEtMi4yNVY5LjVoLTEuNXY2LjM1YS43NS43NSAwIDAgMS0uNzUuNjVINC4xNWEuNzUuNzUgMCAwIDEtLjY1LS43NVY1LjE1YS43NS43NSAwIDAgMSAuNzUtLjY1SDE2LjV2LS43NWMwLS4yNy4wNi0uNTIuMTctLjc1Wk0xMCAxOGg0djIuNWgtNFYxOFptNy41LTE0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoNGMuNDEgMCAuNzUuMzQuNzUuNzV2NGMwIC40MS0uMzQuNzUtLjc1Ljc1aC00YS43NS43NSAwIDAgMS0uNzUtLjc1VjdoLS4zMmEuNTQuNTQgMCAwIDAtLjUxLjM3bC0uOTIgMi43NGEyLjA0IDIuMDQgMCAwIDEtMS45MyAxLjM5SDEzdjEuNzVjMCAuNDEtLjM0Ljc1LS43NS43NWgtNGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNGMwLS40MS4zNC0uNzUuNzUtLjc1aDRjLjQxIDAgLjc1LjM0Ljc1Ljc1VjEwaC44MmMuMjMgMCAuNDQtLjE1LjUxLS4zN2wuOTItMi43NGEyLjA0IDIuMDQgMCAwIDEgMS45My0xLjM5aC4zMlYzLjc1Wk0xOSA2LjI3VjdoMi41VjQuNUgxOXYxLjczYTEuMDcgMS4wNyAwIDAgMSAwIC4wNFpNOSAxMHYyLjVoMi41VjEwSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wS2V5Ym9hcmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wS2V5Ym9hcmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMgMWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgxdjFoLS41YS41LjUgMCAwIDAgMCAxSDVWOS43NkEyLjc1IDIuNzUgMCAwIDEgNy43NSA3SDEzVjNhMiAyIDAgMCAwLTItMkgzWm0zIDguNUM2IDguNjcgNi42NyA4IDcuNSA4aDZjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSA2IDEzLjV2LTRabTIgNGMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVptLjUtMy41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0xLjUgMS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0uNS0xLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTEuNSAxLjVhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabS41LTEuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BLZXlib2FyZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wS2V5Ym9hcmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDFhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoMXYxaC0uNWEuNS41IDAgMCAwIDAgMUg1di0zSDNhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjRoMVYzYTIgMiAwIDAgMC0yLTJIM1ptMyA4LjVDNiA4LjY3IDYuNjcgOCA3LjUgOGg2Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgNiAxMy41di00Wm0yIDRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabS41LTMuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMS41IDEuNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFptLjUtMS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0xLjUgMS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0uNS0xLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wS2V5Ym9hcmQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wS2V5Ym9hcmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2Ny4xYTIuNzUgMi43NSAwIDAgMC0uNzUtLjFoLTUuNUEyLjc1IDIuNzUgMCAwIDAgOSAxMy43NXYzLjVjMCAuMjYuMDQuNTEuMS43NUg2LjVhLjUuNSAwIDAgMSAwLTFIOHYtMkg0YTIgMiAwIDAgMS0yLTJWNFptOS43NSA4Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYzLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNS41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMy41YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNS41Wm0uMjUgNS41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0uNS0zLjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFabTEuNSAxLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabS41LTEuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptMS41IDEuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptLjUtMS41YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcEtleWJvYXJkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BLZXlib2FyZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2Ny4xYy0uMjQtLjA2LS40OS0uMS0uNzUtLjFIMTdWNGExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDAgMCAxIDFoNXYzLjI1YzAgLjI2LjA0LjUxLjEuNzVINi41YS41LjUgMCAwIDEgMC0xSDh2LTJINGEyIDIgMCAwIDEtMi0yVjRabTkuNzUgOGg1LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2My41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNS41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTMuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NVptLjI1IDUuNWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjUuNVptLjUtMy41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0xLjUgMS41YS41LjUgMCAxIDAtMSAwIC41LjUgMCAwIDAgMSAwWm0uNS0xLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTEuNSAxLjVhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabS41LTEuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BLZXlib2FyZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BLZXlib2FyZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi43MiAyMmgyLjUzYy0uMTYtLjM4LS4yNS0uOC0uMjUtMS4yNXYtNS41YzAtMS44IDEuNDYtMy4yNSAzLjI1LTMuMjVoOC41Yy40NCAwIC44Ni4wOSAxLjI1LjI1VjUuMUEyLjI1IDIuMjUgMCAwIDAgMTkuNzQgM0g0LjFBMi4yNSAyLjI1IDAgMCAwIDIgNS4yNnYxMC42NmMuMDggMS4xMyAxIDIuMDQgMi4xNSAyLjA5SDRoMy41djIuNUg1LjY1YS43NS43NSAwIDAgMCAuMDcgMS41aDFaTTEwIDE1LjI1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDguNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTguNUMxMS4wMSAyMyAxMCAyMiAxMCAyMC43NXYtNS41Wm00IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0zLjUgMGEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0yLjUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xOS4yNSAxOGEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNC4yNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS0yIDJjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wS2V5Ym9hcmQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcEtleWJvYXJkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi43MiAyMmgyLjUzYy0uMTYtLjM4LS4yNS0uOC0uMjUtMS4yNVYxNi41SDQuMTVhLjc1Ljc1IDAgMCAxLS42NS0uNzVWNS4xNWEuNzUuNzUgMCAwIDEgLjc1LS42NWgxNS42Yy4zNy4wNi42NS4zNy42NS43NVYxMmguMjVjLjQ0IDAgLjg2LjA5IDEuMjUuMjVWNS4xQTIuMjUgMi4yNSAwIDAgMCAxOS43NCAzSDQuMUEyLjI1IDIuMjUgMCAwIDAgMiA1LjI2djEwLjY2Yy4wOCAxLjEzIDEgMi4wNCAyLjE1IDIuMDlINGgzLjV2Mi41SDUuNjVhLjc1Ljc1IDAgMCAwIC4wNyAxLjVoMVpNMTAgMTUuMjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoOC41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtOC41QzExLjAxIDIzIDEwIDIyIDEwIDIwLjc1di01LjVabTQgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabTMuNSAwYS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabTIuNS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTE5LjI1IDE4YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS00LjI1Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLTIgMmMwIC40MS4zNC43NS43NS43NWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVhLjc1Ljc1IDAgMCAwLS43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BLZXlib2FyZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BLZXlib2FyZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTEuMDcgMjVINy43MmEuNzUuNzUgMCAwIDEtLjA3LTEuNUg5LjVWMjFINC4yNUMzLjAxIDIxIDIgMjAgMiAxOC43NVY1LjI1QzIgNC4wMSAzIDMgNC4yNSAzaDE5LjVDMjQuOTkgMyAyNiA0IDI2IDUuMjV2OS4xOGEzLjczIDMuNzMgMCAwIDAtMS43NS0uNDNoLTkuNUEzLjc1IDMuNzUgMCAwIDAgMTEgMTcuNzV2Ni41YzAgLjI2LjAzLjUuMDcuNzVabTMuNjgtMTBBMi43NSAyLjc1IDAgMCAwIDEyIDE3Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDAgMTQuNzUgMjdoOS41QTIuNzUgMi43NSAwIDAgMCAyNyAyNC4yNXYtNi41QTIuNzUgMi43NSAwIDAgMCAyNC4yNSAxNWgtOS41Wm0uNzUgOS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTYuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMC01LjI1YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMyAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMS0yYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMyAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMS0yYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BLZXlib2FyZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wS2V5Ym9hcmQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMS4wNyAyNUg3LjcyYS43NS43NSAwIDAgMS0uMDctMS41SDkuNVYyMUg0LjI1QzMuMDEgMjEgMiAyMCAyIDE4Ljc1VjUuMjVDMiA0LjAxIDMgMyA0LjI1IDNoMTkuNUMyNC45OSAzIDI2IDQgMjYgNS4yNXY5LjE4YTMuNzMgMy43MyAwIDAgMC0xLjUtLjQyVjUuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVINC4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDIuMzQuNzUuNzUuNzVIMTF2NC43NWMwIC4yNi4wMy41LjA3Ljc1Wm0zLjY4LTEwQTIuNzUgMi43NSAwIDAgMCAxMiAxNy43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDE0Ljc1IDI3aDkuNUEyLjc1IDIuNzUgMCAwIDAgMjcgMjQuMjV2LTYuNUEyLjc1IDIuNzUgMCAwIDAgMjQuMjUgMTVoLTkuNVptLjc1IDkuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC02LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAtNS4yNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTMgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTEtMmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTMgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTEtMmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wTWFjMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcE1hYzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi4wMSAzLjggMiA0djZjMCAxLjEuOSAyIDIgMmgydi41YS41LjUgMCAwIDEtLjUuNUg1YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLS41YS41LjUgMCAwIDEtLjUtLjVWMTJoMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0xLjk5IDEuOFpNOSAxMnYuNWMwIC4xOC4wMy4zNC4wOS41SDYuOWMuMDYtLjE2LjA5LS4zMi4wOS0uNVYxMmgyWm0zLTFINGExIDEgMCAwIDEtMS0xaDEwYTEgMSAwIDAgMS0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wTWFjMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAyaC0ydi41YzAgLjI4LjIyLjUuNS41aC41YS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMSAwLTFoLjVhLjUuNSAwIDAgMCAuNS0uNVYxMkg0YTIgMiAwIDAgMS0yLTJWNFptMSA2YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xSDNabTEwLTFWNGExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY1aDEwWm0tNCAzLjVWMTJIN3YuNWMwIC4xOC0uMDMuMzQtLjA5LjVIOS4xYTEuNSAxLjUgMCAwIDEtLjA5LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcE1hYzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjljMCAxLjEuOSAyIDIgMmg0djFhMSAxIDAgMCAxLTEgMWgtLjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMUgxM2ExIDEgMCAwIDEtMS0xdi0xaDRhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINFpNMyAxM3YtMWgxNHYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xWm01LjczIDRBMiAyIDAgMCAwIDkgMTZ2LTFoMnYxYzAgLjM2LjEuNy4yNyAxSDguNzNaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wTWFjMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjlhMiAyIDAgMCAxLTIgMmgtNHYxYTEgMSAwIDAgMCAxIDFoLjVhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFIN2ExIDEgMCAwIDAgMS0xdi0xSDRhMiAyIDAgMCAxLTItMlY0Wm0xIDh2MWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTFIM1ptMTQtMVY0YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjdoMTRabS01LjczIDZhMiAyIDAgMCAxLS4yNy0xdi0xSDl2MWEyIDIgMCAwIDEtLjI3IDFoMi41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BNYWMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wTWFjMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00LjI1IDNDMy4wMSAzIDIgNCAyIDUuMjV2MTAuNUMyIDE2Ljk5IDMgMTggNC4yNSAxOEg5LjV2MS4yNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLS41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjE4aDUuMjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNS4yNUMyMiA0LjAxIDIxIDMgMTkuNzUgM0g0LjI1Wk0xMyAxOHYxLjI1YzAgLjQ1LjEuODguMyAxLjI1aC0yLjZjLjItLjM4LjMtLjguMy0xLjI1VjE4aDJabS05LjUtMy41aDE3djEuMjVjMCAuNDEtLjM0Ljc1LS43NS43NUg0LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wTWFjMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjI1IDNDMy4wMSAzIDIgNCAyIDUuMjV2MTAuNUMyIDE2Ljk5IDMgMTggNC4yNSAxOEg5LjV2MS4yNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLS41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjE4aDUuMjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNS4yNUMyMiA0LjAxIDIxIDMgMTkuNzUgM0g0LjI1Wk0xMyAxOHYxLjI1YzAgLjQ1LjEuODguMyAxLjI1aC0yLjZjLjItLjM4LjMtLjguMy0xLjI1VjE4aDJaTTMuNSA1LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTUuNWMuNDEgMCAuNzUuMzQuNzUuNzVWMTNoLTE3VjUuMjVabTAgOS4yNWgxN3YxLjI1YzAgLjQxLS4zNC43NS0uNzUuNzVINC4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVYxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcE1hYzMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTQuMDIgNy42IDQgOHYxMmE0IDQgMCAwIDAgNCA0aDR2MWExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDEgMCAwIDJoMTJhMSAxIDAgMSAwIDAtMmgtMWExIDEgMCAwIDEtMS0xdi0xaDRhNCA0IDAgMCAwIDQtNFY4YTQgNCAwIDAgMC00LTRIOGE0IDQgMCAwIDAtMy45OCAzLjZaTTE4IDI0djFhMyAzIDAgMCAwIC4xNyAxaC00LjM0YTMgMyAwIDAgMCAuMTctMXYtMWg0Wm02LTJIOGEyIDIgMCAwIDEtMi0yaDIwYTIgMiAwIDAgMS0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wTWFjMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BNYWMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDhhNCA0IDAgMCAxIDQtNGgxNmE0IDQgMCAwIDEgNCA0djEyYTQgNCAwIDAgMS00IDRoLTR2MWExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMSAxIDAgMkgxMGExIDEgMCAxIDEgMC0yaDFhMSAxIDAgMCAwIDEtMXYtMUg4YTQgNCAwIDAgMS00LTRWOFptMTQuMTcgMThhMyAzIDAgMCAxLS4xNy0xdi0xaC00djFhMyAzIDAgMCAxLS4xNyAxaDQuMzRaTTI0IDIyYTIgMiAwIDAgMCAyLTJINmMwIDEuMS45IDIgMiAyaDE2Wm0yLTE0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjEwaDIwVjhaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wT2ZmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTQuMyAxNSAyLjg1IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVhLjUuNSAwIDAgMC0uNy43Yy0uMS4yLS4xNS40Mi0uMTUuNjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDEuM1ptMy43LTEuNWMwIC42NC0uNCAxLjItLjk3IDEuNEw0LjEzIDJIMTYuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxMFpNMTIgMTV2Mkg4di0yaDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0yLjI4IDIuOTgtLjEzLS4xM2EuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN0wxNC4yOSAxNUgxM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAuMjgtMS4wMlpNMTMuMjkgMTQgMy4wMyAzLjc0QTEgMSAwIDAgMCAzIDR2OWExIDEgMCAwIDAgMSAxaDkuM1pNMTcgMTNhMSAxIDAgMCAxLS44OSAxbC44Ljc4QTIgMiAwIDAgMCAxOCAxM1Y0YTIgMiAwIDAgMC0yLTJINC4xMmwxIDFIMTZhMSAxIDAgMCAxIDEgMXY5Wm0tNSAySDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcE9mZjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bC40LjRDMi4yNSA0LjEgMiA0LjY1IDIgNS4yNnYxMC42NkEyLjI1IDIuMjUgMCAwIDAgNC4yNiAxOEg4LjV2Mi40OUg2LjY1YS43NS43NSAwIDAgMCAuMSAxLjVoMTAuNmEuNzUuNzUgMCAwIDAtLjEtMS41SDE1LjVWMThoMS40NGwzLjc4IDMuNzhhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJaTTIyIDE1Ljc1YzAgLjgzLS40NSAxLjU2LTEuMTIgMS45NUw2LjE4IDNoMTMuNTdjMS4xOSAwIDIuMTYuOTIgMi4yNCAyLjF2MTAuNjVaTTE0IDE4djIuNWgtNFYxOGg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcE9mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wT2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsLjQuNEMyLjI1IDQuMSAyIDQuNjUgMiA1LjI2djEwLjY2QTIuMjUgMi4yNSAwIDAgMCA0LjI2IDE4SDguNXYyLjQ5SDYuNjVhLjc1Ljc1IDAgMCAwIC4xIDEuNWgxMC42YS43NS43NSAwIDAgMC0uMS0xLjVIMTUuNVYxOGgxLjQ0bDMuNzggMy43OGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTUuNDQgMTYuNUg0LjE1YS43NS43NSAwIDAgMS0uNjUtLjc1VjUuMTVhLjc1Ljc1IDAgMCAxIC4xOS0uNEwxNS40NCAxNi41Wm00LjMgMGgtLjA2bDEuMiAxLjJBMi4yNSAyLjI1IDAgMCAwIDIyIDE1Ljc1VjUuMUEyLjI1IDIuMjUgMCAwIDAgMTkuNzQgM0g2LjE4bDEuNSAxLjVoMTIuMTdjLjM3LjA2LjY1LjM3LjY1Ljc1djEwLjZhLjc1Ljc1IDAgMCAxLS43NS42NVpNMTQgMTh2Mi41aC00VjE4aDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wUHVsc2UxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2UxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYyaC0yLjA3bC0uNTktMS4xN2ExLjUgMS41IDAgMCAwLTIuNjggMGwtLjUgMS4wMS0uNzctMS45YTEuNSAxLjUgMCAwIDAtMi43My0uMTFMMy41NyA2SDJWNFptOSA1aDN2MWEyIDIgMCAwIDEtMiAyaC0ydjFoMS41YS41LjUgMCAxIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xSDZ2LTFINGEyIDIgMCAwIDEtMi0yVjloMi41YTEuNSAxLjUgMCAwIDAgMS4zNC0uODN2LS4wMWwuNzcgMS45YTEuNSAxLjUgMCAwIDAgMi43My4xMWwuNzQtMS40OGMuMjYuMi41OC4zMS45Mi4zMVptLTIgNHYtMUg3djFoMlpNNi40NiA0LjMyYS41LjUgMCAwIDAtLjktLjAzTDQuMTggN0gyLjVhLjUuNSAwIDAgMCAwIDFINC41YS41LjUgMCAwIDAgLjQ1LS4yOGwxLTIgMS41OSAzLjk3YS41LjUgMCAwIDAgLjkuMDNMMTAgNi42MmwuNTUgMS4xQS41LjUgMCAwIDAgMTEgOGgyLjVhLjUuNSAwIDAgMCAwLTFoLTIuMmwtLjg1LTEuNzJhLjUuNSAwIDAgMC0uOSAwbC0xLjUgMy0xLjU5LTMuOTdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wUHVsc2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFB1bHNlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC4wMSAyYTIgMiAwIDAgMC0yIDJ2MS41aDFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxLjVIMTRWNGEyIDIgMCAwIDAtMi0ySDQuMDFabS0yIDh2LS43NWgxdi43NGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtLjc0SDE0di43NGEyIDIgMCAwIDEtMiAyaC0yVjEzaDEuNWEuNS41IDAgMCAxIDAgMUg0LjUzYS41LjUgMCAwIDEgMC0xaDEuNXYtMWgtMmEyIDIgMCAwIDEtMi0yWm03IDJIN3YxaDJ2LTFaTTYuNDcgNC4zYS41LjUgMCAwIDAtLjktLjA0TDQuMiA3SDIuNWEuNS41IDAgMCAwIDAgMUg0LjVhLjUuNSAwIDAgMCAuNDUtLjI4bDEtMiAxLjU4IDMuOTZhLjUuNSAwIDAgMCAuOTEuMDRMMTAgNi42MmwuNTYgMS4xQS41LjUgMCAwIDAgMTEgOGgyLjVhLjUuNSAwIDAgMCAwLTFoLTIuMTlsLS44Ni0xLjczYS41LjUgMCAwIDAtLjkgMGwtMS41IDMtMS41OC0zLjk2WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFB1bHNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFB1bHNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjRoLTIuNTdsLTEuMDktMi4xN2ExLjUgMS41IDAgMCAwLTIuNjggMEwxMC4zMiA4LjUgOC45MyA0LjA1YTEuNSAxLjUgMCAwIDAtMi44Mi0uMUw0LjQ5IDhIMlY0Wm0xMi41IDdIMTh2MmEyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0ydi0yaDMuNWExLjUgMS41IDAgMCAwIDEuNC0uOTRsLjQzLTEuMDkgMS4yNCAzLjk4YTEuNSAxLjUgMCAwIDAgMi43Ny4yMkwxMyA5Ljg1bC4xNi4zMmMuMjUuNS43Ny44MyAxLjM0LjgzWk0xMiAxN3YtMkg4djJoNFpNNy45OCA0LjM1YS41LjUgMCAwIDAtLjk0LS4wNEw1LjE2IDlIMi41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNDctLjMxbDEuNDctMy43IDIuMDggNi42NmEuNS41IDAgMCAwIC45My4wN0wxMyA3LjYybDEuMDUgMi4xYS41LjUgMCAwIDAgLjQ1LjI4aDNhLjUuNSAwIDAgMCAwLTFoLTIuN2wtMS4zNS0yLjcyYS41LjUgMCAwIDAtLjkgMGwtMi40NCA0Ljg5LTIuMTMtNi44MlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BQdWxzZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnY0aDFWNGExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2NGgxVjRhMiAyIDAgMCAwLTItMkg0Wk0yIDEzdi0yaDF2MmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTJoMXYyYTIgMiAwIDAgMS0yIDJoLTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkg0YTIgMiAwIDAgMS0yLTJabTEwIDJIOHYyaDR2LTJaTTcuOTggNC4zNWEuNS41IDAgMCAwLS45NC0uMDRMNS4xNiA5SDIuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgLjQ2LS4zMWwxLjQ4LTMuNyAyLjA4IDYuNjZhLjUuNSAwIDAgMCAuOTMuMDdMMTMgNy42MmwxLjA1IDIuMWEuNS41IDAgMCAwIC40NS4yOGgzYS41LjUgMCAxIDAgMC0xaC0yLjdsLTEuMzUtMi43MmEuNS41IDAgMCAwLS45IDBsLTIuNDQgNC44OS0yLjEzLTYuODJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wUHVsc2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYgMjEuMjVjMCAuNDEuMzQuNzUuNzUuNzVoMTAuNmEuNzUuNzUgMCAwIDAtLjEtMS41SDE1LjVWMThoNC40YTIuMjUgMi4yNSAwIDAgMCAyLjEtMi4yNVYxM2gtNWMtLjU3IDAtMS4xLS4yOC0xLjQzLS43NWwtLjItLjI3LTEuODYgMy4xNmExLjc1IDEuNzUgMCAwIDEtMy4xMy0uMjRMOC45IDExLjIzbC0uMzMuNzRjLS4yOS42My0uOTEgMS4wMy0xLjYgMS4wM0gydjIuOTFBMi4yNSAyLjI1IDAgMCAwIDQuMjYgMThIOC41djIuNDlINi42NWEuNzUuNzUgMCAwIDAtLjY1Ljc1Wk0xMCAxOGg0djIuNWgtNFYxOFpNMjIgNS4yNVY5LjVIMTcuOWwtMS4yMy0xLjc1YTEuNzUgMS43NSAwIDAgMC0yLjk0LjExTDEyLjMgMTAuM2wtMS42OC00LjJhMS43NSAxLjc1IDAgMCAwLTMuMjItLjA3TDUuODUgOS41SDJWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDQuMjUgM2gxNS41YzEuMTkgMCAyLjE2LjkzIDIuMjQgMi4xdi4xNVpNOS43IDYuNDdhLjc1Ljc1IDAgMCAwLTEuMzgtLjAzTDYuNDkgMTAuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjIzYy4zIDAgLjU2LS4xNy42OC0uNDRsMS4zLTIuODkgMi4zNCA1Ljg2YS43NS43NSAwIDAgMCAxLjM1LjFsMi42NS00LjUgMS4wOSAxLjU1Yy4xNC4yLjM3LjMyLjYxLjMyaDQuMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjg2bC0xLjUzLTIuMThhLjc1Ljc1IDAgMCAwLTEuMjYuMDVsLTIuNDcgNC4xOUw5LjcgNi40N1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BQdWxzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02Ljc1IDIyYS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWMTNoMS41djIuNzVjMCAuMzguMjguNy42NS43NWgxNS42Yy4zOCAwIC43LS4yOC43NC0uNjVWMTNIMjJ2Mi43NWMwIDEuMi0uOTIgMi4xNy0yLjA5IDIuMjVoLTQuNHYyLjVoMS43NWEuNzUuNzUgMCAwIDEgLjEgMS41SDYuNzVaTTE0IDE4aC00djIuNWg0VjE4Wk0zLjUgOS41SDJWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDQuMjUgM2gxNS41YzEuMTkgMCAyLjE2LjkzIDIuMjQgMi4xdjQuNGgtMS41VjUuMjVjMC0uMzgtLjI3LS43LS42NC0uNzRsLS4xLS4wMUg0LjI1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xVjkuNVptNi4yLTMuMDNhLjc1Ljc1IDAgMCAwLTEuMzgtLjAzTDYuNDkgMTAuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjIzYy4zIDAgLjU2LS4xNy42OC0uNDRsMS4zLTIuODkgMi4zNCA1Ljg2YS43NS43NSAwIDAgMCAxLjM1LjFsMi42NS00LjUgMS4wOSAxLjU1Yy4xNC4yLjM3LjMyLjYxLjMyaDQuMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjg2bC0xLjUzLTIuMThhLjc1Ljc1IDAgMCAwLTEuMjYuMDVsLTIuNDcgNC4xOUw5LjcgNi40N1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BQdWxzZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BQdWxzZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNOC4yNSAyNWgxMS42YS43NS43NSAwIDAgMCAuNjUtLjc1di0uMWEuNzUuNzUgMCAwIDAtLjc1LS42NUgxOFYyMWg1Ljc1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjE0LjVoLTYuMjVjLS42NiAwLTEuMjctLjM3LTEuNTctLjk3bC0uMTMtLjI2LTEuOTYgNC4yMmExLjc1IDEuNzUgMCAwIDEtMy4yMS0uMDlsLTIuNDUtNi4xLS45MyAyLjE1Yy0uMjguNjQtLjkgMS4wNS0xLjYgMS4wNUgydjQuMjVDMiAyMCAzIDIxIDQuMjUgMjFIMTB2Mi41SDguMTVhLjc1Ljc1IDAgMCAwIC4xIDEuNVptMy4yNS00aDV2Mi41aC01VjIxWm05LjMzLTEwSDI2VjUuMjVDMjYgNC4wMSAyNSAzIDIzLjc1IDNINC4yNUMzLjAxIDMgMiA0IDIgNS4yNVYxMWg0Ljc1bDIuMTQtNC45NWExLjc1IDEuNzUgMCAwIDEgMy4yMy4wNWwyLjUgNi4yNSAxLjgtMy44NGExLjc1IDEuNzUgMCAwIDEgMy4xNS0uMDRMMjAuODMgMTFaTTExLjIgNi40N2EuNzUuNzUgMCAwIDAtMS4zOS0uMDJMNy40MSAxMkgyLjc0YS43NS43NSAwIDAgMCAwIDEuNWg1LjE0Yy4zIDAgLjU3LS4xOC43LS40NWwxLjg4LTQuMzUgMy4zMyA4LjMzYS43NS43NSAwIDAgMCAxLjM4LjA0bDIuODQtNi4xIDEuMDYgMi4xMmMuMTMuMjUuMzkuNDEuNjcuNDFoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS4wNGwtMS41NC0zLjA5YS43NS43NSAwIDAgMC0xLjM1LjAybC0yLjc3IDUuOTMtMy4zNS04LjM5WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFB1bHNlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BQdWxzZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE5Ljc1IDI1SDguMjVhLjc1Ljc1IDAgMCAxLS4xLTEuNUgxMFYyMUg0LjI1QzMuMDEgMjEgMiAyMCAyIDE4Ljc1VjE0LjVoMS41djQuMjVjMCAuNDIuMzQuNzUuNzUuNzVoMTkuNWMuNDEgMCAuNzUtLjMzLjc1LS43NVYxNC41SDI2djQuMjVDMjYgMjAgMjUgMjEgMjMuNzUgMjFIMTh2Mi41aDEuNzVjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjFjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMVptLTMuMjUtNGgtNXYyLjVoNVYyMVpNMiA1LjI1VjExaDEuNVY1LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTkuNWMuNDEgMCAuNzUuMzQuNzUuNzVWMTFIMjZWNS4yNUMyNiA0LjAxIDI1IDMgMjMuNzUgM0g0LjI1QzMuMDEgMyAyIDQgMiA1LjI1Wm05LjIgMS4yMmEuNzUuNzUgMCAwIDAtMS4zOS0uMDJMNy40MSAxMkgyLjc0YS43NS43NSAwIDAgMCAwIDEuNWg1LjE0Yy4zIDAgLjU3LS4xOC43LS40NWwxLjg4LTQuMzUgMy4zMyA4LjMzYS43NS43NSAwIDAgMCAxLjM4LjA0bDIuODQtNi4xIDEuMDYgMi4xMmMuMTMuMjUuMzkuNDEuNjcuNDFoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS4wNGwtMS41NC0zLjA4YS43NS43NSAwIDAgMC0xLjM1LjAxbC0yLjc3IDUuOTMtMy4zNS04LjM5WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFB1bHNlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFB1bHNlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMjEuNUMyOC41NSAzIDMwIDQuNDYgMzAgNi4yNXY3LjI1aC01Ljc5bC0xLjUzLTIuNzNhMi41IDIuNSAwIDAgMC00LjQ3LjIzbC0uOSAyLjA0LTEuOTQtNS44M2EyLjUgMi41IDAgMCAwLTQuNzEtLjA5bC0yLjQgNi4zOEgyVjYuMjVaTTIyLjc1IDE4LjVIMzB2My4yNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC02Ljc0djJoM2ExIDEgMCAxIDEgMCAySDlhMSAxIDAgMSAxIDAtMmgzdi0ySDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMjEuNzVWMTguNWg4YTIuNSAyLjUgMCAwIDAgMi4zNC0xLjYybC41Mi0xLjM5IDEuNzcgNS4zYTIuNSAyLjUgMCAwIDAgNC42Ni4yMWwxLjUtMy40NGEyLjUgMi41IDAgMCAwIDEuOTYuOTRaTTE0LjAxIDI1djJoNHYtMmgtNFptLS4wNi0xNy4zMmExIDEgMCAwIDAtMS44OS0uMDNMOS4zMSAxNUgzYTEgMSAwIDEgMCAwIDJoN2ExIDEgMCAwIDAgLjk0LS42NWwyLTUuMzUgMy4xMSA5LjMyYTEgMSAwIDAgMCAxLjg3LjA4bDIuNy02LjE2IDEuMjYgMi4yNWExIDEgMCAwIDAgLjg3LjUxSDI5YTEgMSAwIDEgMCAwLTJoLTUuNjdsLTEuOTYtMy40OWExIDEgMCAwIDAtMS43OS4wOWwtMi40NSA1LjYyLTMuMTgtOS41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BQdWxzZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2UzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk01LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNXY3LjI1aDJWNi4yNUM0IDUuNTYgNC41NiA1IDUuMjUgNWgyMS41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djcuMjVoMlY2LjI1QzMwIDQuNDUgMjguNTQgMyAyNi43NSAzSDUuMjVaTTIgMjEuNzVWMTguNWgydjMuMjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMjEuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWMTguNWgydjMuMjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNi43NHYyaDNhMSAxIDAgMSAxIDAgMkg5YTEgMSAwIDEgMSAwLTJoM3YtMkg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDIxLjc1Wk0xOCAyNWgtMy45OXYyaDR2LTJaTTEzLjk2IDcuNjhhMSAxIDAgMCAwLTEuODktLjAzTDkuMzEgMTVIM2ExIDEgMCAxIDAgMCAyaDdhMSAxIDAgMCAwIC45NC0uNjVsMi01LjM1IDMuMTEgOS4zMmExIDEgMCAwIDAgMS44Ny4wOGwyLjctNi4xNiAxLjI2IDIuMjVhMSAxIDAgMCAwIC44Ny41MUgyOWExIDEgMCAxIDAgMC0yaC01LjY3bC0xLjk2LTMuNDlhMSAxIDAgMCAwLTEuNzkuMDlsLTIuNDUgNS42Mi0zLjE4LTkuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wUHVsc2U0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wUHVsc2U0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTguMjUgNUE0LjI1IDQuMjUgMCAwIDAgNCA5LjI1VjE5aDcuNTNsMy4xNi04Ljg0YTMuMjUgMy4yNSAwIDAgMSA2LjE1LjFsMy43MiAxMS42IDMuNS03LjQ4YTMuMjUgMy4yNSAwIDAgMSA1LjkzLjFMMzUuOSAxOUg0NFY5LjI1QzQ0IDYuOSA0Mi4xIDUgMzkuNzUgNUg4LjI1Wk00IDMyLjc1VjI1LjVoOS44MmMxLjM4IDAgMi42LS44NiAzLjA2LTIuMTZsLjctMS45NiAzLjMzIDEwLjM2YTMuMjUgMy4yNSAwIDAgMCA2LjA0LjM4bDMuOS04LjM4YTMuMjUgMy4yNSAwIDAgMCAyLjkgMS43Nkg0NHY3LjI1QzQ0IDM1LjEgNDIuMSAzNyAzOS43NSAzN0gzMXYzLjVoMi43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTE5LjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41SDE3VjM3SDguMjVBNC4yNSA0LjI1IDAgMCAxIDQgMzIuNzVaTTI4LjUgMzdoLTl2My41aDlWMzdabS05LjU2LTI2LjEzYTEuMjUgMS4yNSAwIDAgMC0yLjM3LS4wNEwxMi45NCAyMUg1LjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg4LjU3Yy41MyAwIDEtLjMzIDEuMTgtLjgzbDIuNjktNy41MiA1LjEyIDE1Ljk4YTEuMjUgMS4yNSAwIDAgMCAyLjMyLjE1bDUuODEtMTIuNDUgMS42NSAzLjljLjIuNDcuNjUuNzcgMS4xNS43N2g5LjAxYTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtOC4xOGwtMi40Mi01Ljc0YTEuMjUgMS4yNSAwIDAgMC0yLjI4LS4wNGwtNS42NSAxMi4xMS01LjI4LTE2LjQ2WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFB1bHNlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BQdWxzZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTguMjUgNUE0LjI1IDQuMjUgMCAwIDAgNCA5LjI1djkuMDVsLjI1LS4wMUg2LjVWOS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djkuMDRINDRWOS4yNkM0NCA2LjkgNDIuMSA1IDM5Ljc1IDVIOC4yNVpNNCAzMi43NXYtNi45N2gyLjV2Ni45N2MwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgzMS41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNi45Nkg0NHY2Ljk2QzQ0IDM1LjEgNDIuMSAzNyAzOS43NSAzN0gzMXYzLjVoMi43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTE5LjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41SDE3VjM3SDguMjVBNC4yNSA0LjI1IDAgMCAxIDQgMzIuNzVaTTI4LjUgMzdoLTl2My41aDlWMzdabS05LjU2LTI2LjEzYTEuMjUgMS4yNSAwIDAgMC0yLjM3LS4wNEwxMi45NCAyMUg1LjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg4LjU3Yy41MyAwIDEtLjMzIDEuMTgtLjgzbDIuNjktNy41MiA1LjEyIDE1Ljk4YTEuMjUgMS4yNSAwIDAgMCAyLjMyLjE1bDUuODEtMTIuNDUgMS42NSAzLjljLjIuNDcuNjUuNzcgMS4xNS43N2g5LjAxYTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtOC4xOGwtMi40Mi01Ljc0YTEuMjUgMS4yNSAwIDAgMC0yLjI4LS4wNGwtNS42NSAxMi4xMS01LjI4LTE2LjQ2WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNpZ25hbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BTaWduYWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyIDFjLS4xOCAwLS4zNiAwLS41NC4wMmEuNS41IDAgMSAwIC4wOCAxTDEyIDJhNiA2IDAgMCAxIDUuOTggNi40Ni41LjUgMCAxIDAgMSAuMDhMMTkgOGE3IDcgMCAwIDAtNy03Wm0wIDJjLS4xOSAwLS4zNy4wMS0uNTUuMDNhLjUuNSAwIDAgMCAuMSAxTDEyIDRhNCA0IDAgMCAxIDMuOTggNC40NS41LjUgMCAxIDAgLjk5LjFBNSA1IDAgMCAwIDEyIDNabTAgMmMtLjIgMC0uNC4wMi0uNi4wNmEuNS41IDAgMCAwIC4yLjk4QTIuMDEgMi4wMSAwIDAgMSAxNCA4YzAgLjE0LS4wMS4yNy0uMDQuNGEuNS41IDAgMCAwIC45OC4yQTMuMDEgMy4wMSAwIDAgMCAxMiA1Wm0tMS45Mi0zSDMuNUMyLjY3IDIgMiAyLjY3IDIgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mkg1LjVhLjUuNSAwIDEgMCAwIDFoOWEuNS41IDAgMCAwIDAtMUgxM3YtMmgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjkuOTJhMS41IDEuNSAwIDAgMS0uNTItLjMgMS41IDEuNSAwIDAgMS0yLjAyLS4wMSAxLjUgMS41IDAgMCAxLTIuMTMtLjExIDIgMiAwIDAgMS0yLjgyLTIuODIgMS41IDEuNSAwIDAgMS0uMTItMi4xNCAxLjUgMS41IDAgMCAxIDAtMi4wMiAxLjUgMS41IDAgMCAxLS4zMS0uNTJaTTEyIDE1djJIOHYtMmg0Wm0xLTdhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNpZ25hbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU2lnbmFsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgMWMtLjE4IDAtLjM2IDAtLjU0LjAyYS41LjUgMCAxIDAgLjA4IDFMMTIgMmE2IDYgMCAwIDEgNS45OCA2LjQ2LjUuNSAwIDEgMCAxIC4wOEwxOSA4YTcgNyAwIDAgMC03LTdabTAgMmMtLjE5IDAtLjM3LjAxLS41NS4wM2EuNS41IDAgMCAwIC4xIDFMMTIgNGE0IDQgMCAwIDEgMy45OCA0LjQ1LjUuNSAwIDEgMCAuOTkuMUE1IDUgMCAwIDAgMTIgM1ptMCAyYy0uMiAwLS40LjAyLS42LjA2YS41LjUgMCAwIDAgLjIuOThBMi4wMSAyLjAxIDAgMCAxIDE0IDhjMCAuMTQtLjAxLjI3LS4wNC40YS41LjUgMCAwIDAgLjk4LjJBMy4wMSAzLjAxIDAgMCAwIDEyIDVabS0xLjkyLTNINGEyIDIgMCAwIDAtMiAydjljMCAxLjEuOSAyIDIgMmgzdjJINS41YS41LjUgMCAxIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFIMTN2LTJoM2EyIDIgMCAwIDAgMi0yVjkuOTJhMS41IDEuNSAwIDAgMS0uNTItLjNjLS4xNC4xMi0uMy4yMi0uNDguMjhWMTNhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDYuMWMuMDYtLjE4LjE2LS4zNC4yOS0uNDhhMS41IDEuNSAwIDAgMS0uMzEtLjUyWk0xMiAxNXYySDh2LTJoNFptMS03YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BTaWduYWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU2lnbmFsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNSAxLjVjLS4xOCAwLS4zNyAwLS41NS4wMmEuNzUuNzUgMCAwIDAgLjEgMS41QzE0LjcgMyAxNC44NSAzIDE1IDNhNyA3IDAgMCAxIDYuOTkgNy40NS43NS43NSAwIDAgMCAxLjUuMWwuMDEtLjU1YzAtNC43LTMuOC04LjUtOC41LTguNVpNMTUgNGMtLjIgMC0uMzggMC0uNTcuMDNhLjc1Ljc1IDAgMCAwIC4xNCAxLjQ5TDE1IDUuNWE0LjUgNC41IDAgMCAxIDQuNDggNC45My43NS43NSAwIDAgMCAxLjUuMTRMMjEgMTBhNiA2IDAgMCAwLTYtNlptMCAyLjVjLS4yMiAwLS40My4wMi0uNjQuMDZhLjc1Ljc1IDAgMCAwIC4yOCAxLjQ3IDIgMiAwIDAgMSAyLjMzIDIuMzMuNzUuNzUgMCAwIDAgMS40Ny4yOEEzLjUxIDMuNTEgMCAwIDAgMTUgNi41Wk0xMi45MSAzSDQuMUEyLjI1IDIuMjUgMCAwIDAgMiA1LjI2djEwLjY2QTIuMjUgMi4yNSAwIDAgMCA0LjI2IDE4SDguNXYyLjQ5SDYuNjVhLjc1Ljc1IDAgMCAwIC4xIDEuNWgxMC42YS43NS43NSAwIDAgMC0uMS0xLjVIMTUuNVYxOGg0LjRhMi4yNSAyLjI1IDAgMCAwIDIuMS0yLjI1VjEyLjFjLS4yLS4xLS4zNy0uMjItLjUyLS4zN2ExLjc1IDEuNzUgMCAwIDEtMi41MSAwIDEuNzUgMS43NSAwIDAgMS0yLjY4LS4xOSAyIDIgMCAwIDEtMi44Mi0yLjgyIDEuNzQgMS43NCAwIDAgMS0uMTgtMi42OCAxLjc0IDEuNzQgMCAwIDEtLjAxLTIuNTFBMS43NSAxLjc1IDAgMCAxIDEyLjkgM1pNMTAgMThoNHYyLjVoLTRWMThabTYtOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU2lnbmFsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BTaWduYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNSAxLjVjLS4xOCAwLS4zNyAwLS41NS4wMmEuNzUuNzUgMCAwIDAgLjEgMS41QzE0LjcgMyAxNC44NSAzIDE1IDNhNyA3IDAgMCAxIDYuOTkgNy40NS43NS43NSAwIDAgMCAxLjUuMWwuMDEtLjU1YzAtNC43LTMuOC04LjUtOC41LTguNVpNMTUgNGMtLjIgMC0uMzggMC0uNTcuMDNhLjc1Ljc1IDAgMCAwIC4xNCAxLjQ5TDE1IDUuNWE0LjUgNC41IDAgMCAxIDQuNDggNC45My43NS43NSAwIDAgMCAxLjUuMTRMMjEgMTBhNiA2IDAgMCAwLTYtNlptMCAyLjVjLS4yMiAwLS40My4wMi0uNjQuMDZhLjc1Ljc1IDAgMCAwIC4yOCAxLjQ3IDIgMiAwIDAgMSAyLjMzIDIuMzMuNzUuNzUgMCAwIDAgMS40Ny4yOEEzLjUxIDMuNTEgMCAwIDAgMTUgNi41Wk0xMi45MSAzSDQuMUEyLjI1IDIuMjUgMCAwIDAgMiA1LjI2djEwLjY2QTIuMjUgMi4yNSAwIDAgMCA0LjI2IDE4SDguNXYyLjQ5SDYuNjVhLjc1Ljc1IDAgMCAwIC4xIDEuNWgxMC42YS43NS43NSAwIDAgMC0uMS0xLjVIMTUuNVYxOGg0LjRhMi4yNSAyLjI1IDAgMCAwIDIuMS0yLjI1VjEyLjFjLS4yLS4xLS4zNy0uMjItLjUyLS4zNy0uMjYuMjctLjYuNDUtLjk4LjUxdjMuNjJhLjc1Ljc1IDAgMCAxLS43NS42NUg0LjE1YS43NS43NSAwIDAgMS0uNjUtLjc1VjUuMTVhLjc1Ljc1IDAgMCAxIC43NS0uNjVoOC41MmMuMDYtLjM4LjI0LS43Mi41LS45OGExLjc1IDEuNzUgMCAwIDEtLjM2LS41MlpNMTQgMTh2Mi41aC00VjE4aDRabTItOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3BlYWtlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BTcGVha2VyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNy42NSAxLjJjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMSAxIC44LS42Wm0tMy45Ni0uMTZjLjE5LjA4LjMxLjI2LjMxLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgNmgtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm0yLjUzIDEuOTNjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjU5IDQuNTkgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWm0uMTMgNS43M2ExLjUgMS41IDAgMCAxLS41My0uNzQgMS41IDEuNSAwIDAgMS0uODctLjA3IDEuNSAxLjUgMCAwIDEtMi41MS42N0wxMC44OCA3aC0uMzhBMS41IDEuNSAwIDAgMSA5IDUuNXYtMmMwLS44My42Ny0xLjUgMS41LTEuNWguMzhIMy41QzIuNjcgMiAyIDIuNjcgMiAzLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YySDUuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xSDEzdi0yaDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOC44Yy0uNS4yOS0xLjE1LjI3LTEuNjUtLjFaTTEyIDE1djJIOHYtMmg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNwZWFrZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNwZWFrZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy42NSAxLjJjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMSAxIC44LS42Wm0tMy45Ni0uMTZjLjE5LjA4LjMxLjI2LjMxLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgNmgtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm0yLjUzIDEuOTNjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjU5IDQuNTkgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWk0xNyAxM1Y4Ljk4Yy4zNC4wNi43IDAgMS0uMThWMTNhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNi44OC0uMzhjLS42NSAwLTEuMi40Mi0xLjQxIDFINGExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xWm0tNSAySDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNwZWFrZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU3BlYWtlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIuMTQgMi4zYTQuNTMgNC41MyAwIDAgMC0uOTEtMS4xMy43NS43NSAwIDAgMC0uOTYgMS4xNmMuMTMuMS4zNS4zNS41OS43NC40LjY3LjY0IDEuNDguNjQgMi40MyAwIC45NS0uMjQgMS43Ni0uNjQgMi40My0uMjQuMzktLjQ2LjY0LS41OS43NGEuNzUuNzUgMCAxIDAgLjk2IDEuMTZjLjI1LS4yMS41OS0uNTguOTEtMS4xMy41NC0uOS44Ni0xLjk2Ljg2LTMuMiAwLTEuMjQtLjMyLTIuMy0uODYtMy4yWm0tMi4yNyAxLjFjLS4yMy0uMzYtLjQ4LS42LS42Ny0uNzVhLjc1Ljc1IDAgMCAwLS45IDEuMkEyLjI0IDIuMjQgMCAwIDEgMTkgNS41YTIuMjQgMi4yNCAwIDAgMS0uNyAxLjY1bC0uMDguMDdhLjc1Ljc1IDAgMCAwIC45OCAxLjEzIDMuNzMgMy43MyAwIDAgMCAxLjMtMi44NWMwLS44MS0uMjMtMS41Mi0uNjMtMi4xWk0xNyAyLjc1YS43NS43NSAwIDAgMC0xLjMxLS41TDE0LjE2IDRoLTEuNDFhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMS40MWwxLjUzIDEuNzRBLjc1Ljc1IDAgMCAwIDE3IDguMjV2LTUuNVpNMTEgNGExIDEgMCAwIDEgLjk4LTFINC4xQTIuMjUgMi4yNSAwIDAgMCAyIDUuMjZ2MTAuNjZBMi4yNSAyLjI1IDAgMCAwIDQuMjYgMThIOC41djIuNDlINi42NWEuNzUuNzUgMCAwIDAgLjEgMS41aDEwLjZhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxNS41VjE4aDQuNGEyLjI1IDIuMjUgMCAwIDAgMi4xLTIuMjV2LTUuMjdsLS4xMy4xMWExLjc1IDEuNzUgMCAwIDEtMi44Ni0xLjExYy0uNDIuMDctLjg3LS4wMy0xLjIzLS4yN2ExLjc2IDEuNzYgMCAwIDEtMi44LjMzTDEzLjUyIDhIMTJhMSAxIDAgMCAxLTEtMVY0Wm0zIDE0djIuNWgtNFYxOGg0WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNwZWFrZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNwZWFrZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMi4xNCAyLjNhNC41MyA0LjUzIDAgMCAwLS45MS0xLjEzLjc1Ljc1IDAgMCAwLS45NiAxLjE2Yy4xMy4xLjM1LjM1LjU5Ljc0LjQuNjcuNjQgMS40OC42NCAyLjQzIDAgLjk1LS4yNCAxLjc2LS42NCAyLjQzLS4yNC4zOS0uNDYuNjQtLjU5Ljc0YS43NS43NSAwIDEgMCAuOTYgMS4xNmMuMjUtLjIxLjU5LS41OC45MS0xLjEzLjU0LS45Ljg2LTEuOTYuODYtMy4yIDAtMS4yNC0uMzItMi4zLS44Ni0zLjJabS0yLjI3IDEuMWMtLjIzLS4zNi0uNDgtLjYtLjY3LS43NWEuNzUuNzUgMCAwIDAtLjkgMS4yQTIuMjQgMi4yNCAwIDAgMSAxOSA1LjVhMi4yNCAyLjI0IDAgMCAxLS43IDEuNjVsLS4wOC4wN2EuNzUuNzUgMCAwIDAgLjk4IDEuMTMgMy43MyAzLjczIDAgMCAwIDEuMy0yLjg1YzAtLjgxLS4yMy0xLjUyLS42My0yLjFaTTE3IDIuNzVhLjc1Ljc1IDAgMCAwLTEuMzEtLjVMMTQuMTYgNGgtMS40MWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEuNWMwIC40MS4zNC43NS43NS43NWgxLjQxbDEuNTMgMS43NEEuNzUuNzUgMCAwIDAgMTcgOC4yNXYtNS41Wk00LjI1IDNoNy43M0ExIDEgMCAwIDAgMTEgNHYuNUg0LjI1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjEwLjVjMCAuMzguMjguNy42NS43NWgxNS42Yy4zOCAwIC43LS4yOC43NC0uNjVWMTAuOThhMS43NSAxLjc1IDAgMCAwIDEuNS0uNXY1LjI3YzAgMS4yLS45MiAyLjE3LTIuMDkgMi4yNWgtNC40djIuNWgxLjc1YS43NS43NSAwIDAgMSAuMSAxLjVINi43NWEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw0LjI1IDNaTTE0IDE4aC00djIuNWg0VjE4WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNwZWFrZXJPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU3BlYWtlck9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMuNyAxLjA0Yy4xOC4wOC4zLjI2LjMuNDZ2NmEuNS41IDAgMCAxLS44NS4zNUwxMS4yOSA2aC0uNzlhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41aC44bDEuODUtMS44NWEuNS41IDAgMCAxIC41NC0uMTFabTMuOTUuMTZjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMSAxIC44LS42Wm0tMS40MyAxLjc3Yy0uMS0uMy0uMi0uNTUtLjI3LS43YS41LjUgMCAxIDAtLjkuNDUgNC41OSA0LjU5IDAgMCAxIC40NSAxLjc4IDMuOTQgMy45NCAwIDAgMS0uMzcgMS42bC0uMDguMThhLjUuNSAwIDEgMCAuOS40NCA1LjUgNS41IDAgMCAwIC41NS0yLjIyYzAtLjUtLjEtMS4wMi0uMjgtMS41M1ptLjEzIDUuNzNhMS41IDEuNSAwIDAgMS0uNTMtLjc0IDEuNSAxLjUgMCAwIDEtLjg3LS4wNyAxLjUgMS41IDAgMCAxLTIuNTEuNjdMMTAuODggN2gtLjM4QTEuNSAxLjUgMCAwIDEgOSA1LjV2LTJjMC0uODMuNjctMS41IDEuNS0xLjVoLjM4LTYuNzZsMTIuOSAxMi45Yy41OC0uMi45OC0uNzYuOTgtMS40VjguOGMtLjUuMjktMS4xNS4yNy0xLjY1LS4xWk0yLjE1IDIuODVhLjUuNSAwIDAgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTQuMjkgMTVIMTN2MmgxLjVhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFIN3YtMkgzLjVBMS41IDEuNSAwIDAgMSAyIDEzLjV2LTEwYzAtLjIzLjA1LS40NS4xNS0uNjVaTTEyIDE1SDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFNwZWFrZXJPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNwZWFrZXJPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMy43IDEuMDRjLjE4LjA4LjMuMjYuMy40NnY2YS41LjUgMCAwIDEtLjg1LjM1TDExLjI5IDZoLS43OWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoLjhsMS44NS0xLjg1YS41LjUgMCAwIDEgLjU0LS4xMVptMy45NS4xNmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAxIDEgLjgtLjZabS0xLjQzIDEuNzdjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjU5IDQuNTkgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWk0xNyAxM1Y4Ljk4Yy4zNC4wNi43IDAgMS0uMThWMTNhMiAyIDAgMCAxLTEuMSAxLjc4bC0uNzktLjc5QTEgMSAwIDAgMCAxNyAxM1ptLTMuNyAxTDMuMDIgMy43NEExIDEgMCAwIDAgMyA0djlhMSAxIDAgMCAwIDEgMWg5LjNabTEgMUgxM3YyaDEuNWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMUg3di0ySDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAuMjgtMS4wMmwtLjEzLS4xM2EuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN0wxNC4yOSAxNVpNNC4xMSAybDEgMUg5LjFjLjItLjU4Ljc2LTEgMS40MS0xaC4zOC02Ljc2Wk0xMiAxNUg4djJoNHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BTcGVha2VyT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFNwZWFrZXJPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE2Ljk0IDE4IDMuNzggMy43OGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bC40LjQxYy0uMzguNC0uNjIuOTUtLjYyIDEuNTZ2MTAuNjZBMi4yNSAyLjI1IDAgMCAwIDQuMjYgMThIOC41djIuNDlINi42NWEuNzUuNzUgMCAwIDAgLjEgMS41aDEwLjZhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxNS41VjE4aDEuNDRaTTIyIDE1Ljc1YzAgLjgzLS40NSAxLjU2LTEuMTIgMS45NUw2LjE4IDNoNS44QTEgMSAwIDAgMCAxMSA0djNhMSAxIDAgMCAwIDEgMWgxLjUzbDEuNDQgMS41NGMuODYuOTEgMi4yNy42MiAyLjgtLjMzLjM3LjI0LjgyLjM0IDEuMjUuMjdhMS43NSAxLjc1IDAgMCAwIDIuOTggMXY1LjI3Wm0uMTQtMTMuNDVhNC41MyA0LjUzIDAgMCAwLS45MS0xLjEzLjc1Ljc1IDAgMCAwLS45NiAxLjE2Yy4xMy4xLjM1LjM1LjU5Ljc0LjQuNjcuNjQgMS40OC42NCAyLjQzIDAgLjk1LS4yNCAxLjc2LS42NCAyLjQzLS4yNC4zOS0uNDYuNjQtLjU5Ljc0YS43NS43NSAwIDEgMCAuOTYgMS4xNmMuMjUtLjIxLjU5LS41OC45MS0xLjEzLjU0LS45Ljg2LTEuOTYuODYtMy4yIDAtMS4yNC0uMzItMi4zLS44Ni0zLjJabS0yLjI3IDEuMWMtLjIzLS4zNi0uNDgtLjYtLjY3LS43NWEuNzUuNzUgMCAwIDAtLjkgMS4yQTIuMjQgMi4yNCAwIDAgMSAxOSA1LjVhMi4yNCAyLjI0IDAgMCAxLS43IDEuNjVsLS4wOC4wN2EuNzUuNzUgMCAwIDAgLjk4IDEuMTMgMy43MyAzLjczIDAgMCAwIDEuMy0yLjg1YzAtLjgxLS4yMy0xLjUyLS42My0yLjFaTTE3IDIuNzVhLjc1Ljc1IDAgMCAwLTEuMzEtLjVMMTQuMTYgNGgtMS40MWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEuNWMwIC40MS4zNC43NS43NS43NWgxLjQxbDEuNTMgMS43NEEuNzUuNzUgMCAwIDAgMTcgOC4yNXYtNS41Wk0xNCAxOHYyLjVoLTRWMThoNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BTcGVha2VyT2ZmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BTcGVha2VyT2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMi42MyAzLjY5LS40MS0uNDFhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwxOC41IDE4LjVhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNkwxNi45NCAxOEgxNS41djIuNWgxLjc1YS43NS43NSAwIDAgMSAuMSAxLjVINi43NWEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0uNi4yNC0xLjE2LjYzLTEuNTZaTTE1LjQ0IDE2LjUgMy43IDQuNzVjLS4xLjExLS4xNi4yNS0uMTguNGwtLjAxLjF2MTAuNWMwIC4zOC4yOC43LjY1Ljc1SDE1LjQ1Wm01LjQ0IDEuMi0xLjItMS4yaC4wN2MuMzggMCAuNy0uMjguNzQtLjY1VjEwLjk4YTEuNzUgMS43NSAwIDAgMCAxLjUtLjV2NS4yN2MwIC44My0uNDQgMS41Ni0xLjExIDEuOTVaTTYuMTggM2wxLjUgMS41SDExVjRhMSAxIDAgMCAxIC45OC0xaC01LjhabTE1Ljk2LS43YTQuNTMgNC41MyAwIDAgMC0uOTEtMS4xMy43NS43NSAwIDAgMC0uOTYgMS4xNmMuMTMuMS4zNS4zNS41OS43NC40LjY3LjY0IDEuNDguNjQgMi40MyAwIC45NS0uMjQgMS43Ni0uNjQgMi40My0uMjQuMzktLjQ2LjY0LS41OS43NGEuNzUuNzUgMCAxIDAgLjk2IDEuMTZjLjI1LS4yMS41OS0uNTguOTEtMS4xMy41NC0uOS44Ni0xLjk2Ljg2LTMuMiAwLTEuMjQtLjMyLTIuMy0uODYtMy4yWm0tMi4yNyAxLjFjLS4yMy0uMzYtLjQ4LS42LS42Ny0uNzVhLjc1Ljc1IDAgMCAwLS45IDEuMkEyLjI0IDIuMjQgMCAwIDEgMTkgNS41YTIuMjQgMi4yNCAwIDAgMS0uNyAxLjY1bC0uMDguMDdhLjc1Ljc1IDAgMCAwIC45OCAxLjEzIDMuNzMgMy43MyAwIDAgMCAxLjMtMi44NWMwLS44MS0uMjMtMS41Mi0uNjMtMi4xWk0xNyAyLjc1YS43NS43NSAwIDAgMC0xLjMxLS41TDE0LjE2IDRoLTEuNDFhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMS40MWwxLjUzIDEuNzRBLjc1Ljc1IDAgMCAwIDE3IDguMjV2LTUuNVpNMTQgMThoLTR2Mi41aDRWMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3luYzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BTeW5jMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNCA5Ljc0QTUuNSA1LjUgMCAwIDEgNi4yNiAySDMuNUMyLjY3IDIgMiAyLjY3IDIgMy41djdjMCAuODMuNjcgMS41IDEuNSAxLjVINnYxSDQuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAxIDAgMC0xSDEwdi0xaDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LS43NlpNOSAxM0g3di0xaDJ2MVptMS41LTNhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlaTTEyIDN2LjE1YTMgMyAwIDAgMC0zLjYyLjQ4LjUuNSAwIDAgMCAuNy43QTIgMiAwIDAgMSAxMS40OCA0SDExYS41LjUgMCAwIDAgMCAxaDEuNWEuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0xIDBabS0xLjU1IDUuMjVhMyAzIDAgMCAwIDIuMTctLjg4LjUuNSAwIDAgMC0uNy0uN0EyIDIgMCAwIDEgOS41MiA3SDEwYS41LjUgMCAwIDAgMC0xSDguNWEuNS41IDAgMCAwLS41LjVWOGEuNS41IDAgMCAwIDEgMHYtLjE1YTMgMyAwIDAgMCAxLjQ1LjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3luYzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU3luYzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgNS41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxMWEuNS41IDAgMCAxIDAtMWguNDdhMS45OCAxLjk4IDAgMCAwLTEuNzItLjEgMiAyIDAgMCAwLS42Ni40NC41LjUgMCAwIDEtLjcxLS43MUEzIDMgMCAwIDEgMTIgMy4xNVYzYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgOSA3Ljg1VjhhLjUuNSAwIDAgMS0xIDBWNi41YzAtLjI4LjIyLS41LjUtLjVIMTBhLjUuNSAwIDAgMSAwIDFoLS40N2EyIDIgMCAwIDAgMi4zOC0uMzQuNS41IDAgMSAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaTTEwLjUgMTFIMTJhMSAxIDAgMCAwIC44OS0uNTRjLjQtLjIuNzctLjQ0IDEuMTEtLjcyVjEwYTIgMiAwIDAgMS0yIDJoLTJ2MWgxLjVhLjUuNSAwIDEgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFINnYtMUg0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDIuMjZjLS4yNi4zLS40OC42NC0uNjYgMUg0YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDYuNVpNOSAxMkg3djFoMnYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BTeW5jMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFN5bmMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDUuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTggMS45OCAwIDAgMC0xLjcyLS4xIDIgMiAwIDAgMC0uNjYuNDQuNS41IDAgMSAxLS43MS0uNzFBMyAzIDAgMCAxIDE2IDMuMTVWM2MwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDEzIDcuODVWOGEuNS41IDAgMCAxLTEgMFY2LjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTggMS45OCAwIDAgMCAxLjcyLjEgMiAyIDAgMCAwIC42Ni0uNDQuNS41IDAgMSAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di0xMEMyIDIuNjcgMi42NyAyIDMuNSAyaDYuNzZhNS41IDUuNSAwIDAgMCA0LjI0IDlaTTEyIDE1SDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFN5bmMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFN5bmMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk4IDEuOTggMCAwIDAtMS43Mi0uMSAyIDIgMCAwIDAtLjY2LjQ0LjUuNSAwIDEgMS0uNzEtLjcxQTMgMyAwIDAgMSAxNiAzLjE1VjNjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzQTMgMyAwIDAgMSAxMyA3Ljg1VjhhLjUuNSAwIDAgMS0xIDBWNi41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk4IDEuOTggMCAwIDAgMS43Mi4xIDIgMiAwIDAgMCAuNjYtLjQ0LjUuNSAwIDEgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2Wk0xNyAxM3YtMi42Yy4zNi0uMTguNy0uNCAxLS42NlYxM2EyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDd2LTJINGEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMmg2LjI2Yy0uMjYuMy0uNDguNjQtLjY2IDFINGExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xWm0tNSAySDh2Mmg0di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFN5bmMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU3luYzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgNi41YTUuNSA1LjUgMCAxIDAgMTEgMCA1LjUgNS41IDAgMCAwLTExIDBaTTIwLjUgM2MuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMWEyLjUgMi41IDAgMCAwLTQuMDMuMDQuNS41IDAgMCAxLS44LS41OSAzLjUgMy41IDAgMCAxIDUuMzMtLjRWMy41YzAtLjI4LjIyLS41LjUtLjVaTTE1IDguOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMWEyLjUgMi41IDAgMCAwIDMuOTEuMTEuNS41IDAgMSAxIC43Ny42NSAzLjUgMy41IDAgMCAxLTUuMTguMTlaTTE3LjUgMTNjMS43NSAwIDMuMzMtLjY5IDQuNS0xLjh2NC41NWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNWgtNC40djIuNWgxLjc1YS43NS43NSAwIDAgMSAuMSAxLjVINi43NWEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNWg3LjkyYTYuNSA2LjUgMCAwIDAgNS40OCAxMFpNMTQgMThoLTR2Mi41aDRWMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wU3luYzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wU3luYzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDYuNWE1LjUgNS41IDAgMSAwIDExIDAgNS41IDUuNSAwIDAgMC0xMSAwWk0yMC41IDNjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDFhMi41IDIuNSAwIDAgMC00LjAzLjA0LjUuNSAwIDAgMS0uOC0uNTkgMy41IDMuNSAwIDAgMSA1LjMzLS40VjMuNWMwLS4yOC4yMi0uNS41LS41Wk0xNSA4Ljk1di41NWEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTFhMi41IDIuNSAwIDAgMCAzLjkxLjExLjUuNSAwIDEgMSAuNzcuNjUgMy41IDMuNSAwIDAgMS01LjE4LjE5Wm01LjUgNi44di0zLjQ4YTYuNTIgNi41MiAwIDAgMCAxLjUtMS4wOHY0LjU2YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI1aC00LjR2Mi41aDEuNzVhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2Ljc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC41VjE4SDQuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4xTDIgMTUuNzZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI1aDcuOTJjLS4zLjQ2LS41My45Ny0uNyAxLjVINC4yNGMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxMC41YzAgLjM4LjI4LjcuNjUuNzRsLjEuMDFoMTUuNWMuMzggMCAuNy0uMjguNzQtLjY1di0uMVpNMTQgMThoLTR2Mi41aDRWMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXNrdG9wVG9vbGJveDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BUb29sYm94MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjUgMkMyLjY3IDIgMiAyLjY3IDIgMy41djEwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoMy41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41VjE3SDh2LTJoMXYtMS41YTIuNSAyLjUgMCAwIDEgMi4wNC0yLjQ2QTIuNSAyLjUgMCAwIDEgMTMuNSA5aDJhMi41IDIuNSAwIDAgMSAyLjQ2IDIuMDRsLjA0LjAxVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEzWk0xMiAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNWgtMnYtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTN2LS41YS41LjUgMCAwIDAtMSAwdi41aC0ydi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVoLjVabTEtLjV2LjVoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVabTQgNVYxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41VjE2aDJ2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BUb29sYm94MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BUb29sYm94MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2OWMwIDEuMS45IDIgMiAyaDN2Mkg1LjVhLjUuNSAwIDAgMCAwIDFoMy41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41VjE3SDh2LTJoMXYtMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2NS41Yy41LjM3Ljg0LjkxLjk2IDEuNTRsLjA0LjAxVjRhMiAyIDAgMCAwLTItMkg0Wm04IDEwdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFRvb2xib3gyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wVG9vbGJveDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi43NSAyMmEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw0LjI1IDNoMTUuNWMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXY4LjgyYTIuNzUgMi43NSAwIDAgMC0yLjc0LTIuNjdoLTMuNUEyLjc1IDIuNzUgMCAwIDAgMTMgMTR2LjA1YTIuNSAyLjUgMCAwIDAtMiAyLjQ1VjE4aC0xdjIuNWgxdjFjMCAuMTcuMDIuMzQuMDUuNWgtNC4zWk0xNCAxNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE4aDIuNXYtLjI1YS43NS43NSAwIDAgMSAxLjUgMFYxOGgzdi0uMjVhLjc1Ljc1IDAgMCAxIDEuNSAwVjE4SDIzdi0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDIxdi0xYzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMy41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxWm0xLjUtMWMwLS4xNC4xMS0uMjUuMjUtLjI1aDMuNWMuMTQgMCAuMjUuMTEuMjUuMjV2MWgtNHYtMVpNMTIgMjEuNXYtMmgyLjV2Ljc1YS43NS43NSAwIDAgMCAxLjUgMHYtLjc1aDN2Ljc1YS43NS43NSAwIDAgMCAxLjUgMHYtLjc1SDIzdjJjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04YTEuNSAxLjUgMCAwIDEtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BUb29sYm94MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BUb29sYm94MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi43NSAyMmEuNzUuNzUgMCAwIDEtLjEtMS41SDguNVYxOEg0LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwyIDE1Ljc2VjUuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw0LjI1IDNoMTUuNWMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXY4LjgyYTIuNzUgMi43NSAwIDAgMC0xLjUtMi4zN3YtNi4zYzAtLjM4LS4yNy0uNy0uNjQtLjc0bC0uMS0uMDFINC4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxMC41YzAgLjM4LjI4LjcuNjUuNzVIMTFWMThoLTF2Mi41aDF2MWMwIC4xNy4wMi4zNC4wNS41aC00LjNaTTE0IDE1aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMThoMi41di0uMjVhLjc1Ljc1IDAgMCAxIDEuNSAwVjE4aDN2LS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMThIMjN2LTEuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMjF2LTFjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0zLjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djFabTEuNS0xYzAtLjE0LjExLS4yNS4yNS0uMjVoMy41Yy4xNCAwIC4yNS4xMS4yNS4yNXYxaC00di0xWk0xMiAyMS41di0yaDIuNXYuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVoM3YuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVIMjN2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLThhMS41IDEuNSAwIDAgMS0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFRvd2VyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGVza3RvcFRvd2VyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDIuMDlhMS41IDEuNSAwIDAgMSAxLjQxLTJIN2EzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM2gzYTIgMiAwIDAgMC0yLTJINFptMyAzYTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDJ2Mkg3LjVhLjUuNSAwIDAgMCAwIDFoOGEuNS41IDAgMCAwIDAtMUgxNHYtMmgyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDdabTYgMTJoLTN2LTJoM3YyWlwiXSk7XG5leHBvcnQgY29uc3QgRGVza3RvcFRvd2VyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BUb3dlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMi4wOWExLjUgMS41IDAgMCAxIDAtMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMWgxYTIgMiAwIDAgMC0yLTJINFptMSA1YzAtMS4xLjktMiAyLTJoOWEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMmgtMnYyaDEuNWEuNS41IDAgMCAxIDAgMWgtOGEuNS41IDAgMCAxIDAtMUg5di0ySDdhMiAyIDAgMCAxLTItMlY3Wm01IDEwaDN2LTJoLTN2MlptNi0zYTEgMSAwIDAgMCAxLTFWN2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BUb3dlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rlc2t0b3BUb3dlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiA0LjI1QzIgMy4wMSAzIDIgNC4yNSAyaDUuNUMxMC45OSAyIDEyIDMgMTIgNC4yNVY2SDkuMjVBMy4yNSAzLjI1IDAgMCAwIDYgOS4yNXY2LjVDNiAxNy41NSA3LjQ2IDE5IDkuMjUgMTloMS4yNXYuNWgtLjI1QTEuNzUgMS43NSAwIDAgMCA4LjY3IDIySDQuMjVDMy4wMSAyMiAyIDIxIDIgMTkuNzVWNC4yNVpNOS4yNSA3QzguMDEgNyA3IDggNyA5LjI1djYuNUM3IDE2Ljk5IDggMTggOS4yNSAxOGgyLjI1djIuNWgtMS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNUgxNy41VjE4aDIuMjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTYuNUMyMiA4LjAxIDIxIDcgMTkuNzUgN0g5LjI1Wk0xNiAxOHYyLjVoLTNWMThoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERlc2t0b3BUb3dlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXNrdG9wVG93ZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjI1IDJDMy4wMSAyIDIgMyAyIDQuMjV2MTUuNUMyIDIwLjk5IDMgMjIgNC4yNSAyMmg0LjQyYTEuNzQgMS43NCAwIDAgMSAwLTEuNUg0LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1VjZIMTJWNC4yNUMxMiAzLjAxIDExIDIgOS43NSAyaC01LjVaTTcgOS4yNUM3IDguMDEgOCA3IDkuMjUgN2gxMC41QzIwLjk5IDcgMjIgOCAyMiA5LjI1djYuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxNy41djIuNWgxLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMSAwLTEuNWgxLjI1VjE4SDkuMjVDOC4wMSAxOCA3IDE3IDcgMTUuNzV2LTYuNVptOSAxMS4yNVYxOGgtM3YyLjVoM1ptMy43NS00Yy40MSAwIC43NS0uMzQuNzUtLjc1di02LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVIOS4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djYuNWMwIC40MS4zNC43NS43NS43NWgxMC41WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQuNSA4LjVhLjUuNSAwIDEgMCAwLTFIMTNWNmgxLjVhLjUuNSAwIDEgMCAwLTFIMTNhMiAyIDAgMCAwLTItMlYxLjVhLjUuNSAwIDEgMC0xIDBWM0g4LjVWMS41YS41LjUgMCAxIDAtMSAwVjNINlYxLjVhLjUuNSAwIDEgMC0xIDBWM2EyIDIgMCAwIDAtMiAySDEuNWEuNS41IDAgMSAwIDAgMUgzdjEuNUgxLjVhLjUuNSAwIDEgMCAwIDFIM1YxMEgxLjVhLjUuNSAwIDEgMCAwIDFIM2EyIDIgMCAwIDAgMiAydjEuNWMwIC4xMy4wNS4yNi4xNS4zNUEuNS41IDAgMCAwIDYgMTQuNVYxM2gxLjV2MS41YzAgLjEzLjA1LjI2LjE1LjM1YS41LjUgMCAwIDAgLjg1LS4zNVYxM0gxMHYxLjVjMCAuMTMuMDUuMjYuMTUuMzVhLjUuNSAwIDAgMCAuODUtLjM1VjEzYTIgMiAwIDAgMCAyLTJoMS41YS41LjUgMCAxIDAgMC0xSDEzVjguNWgxLjVabS02LjUgMmEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVptMC00YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2ZWxvcGVyQm9hcmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNC41IDguNWEuNS41IDAgMSAwIDAtMUgxM1Y2aDEuNWEuNS41IDAgMSAwIDAtMUgxM2EyIDIgMCAwIDAtMi0yVjEuNWEuNS41IDAgMSAwLTEgMFYzSDguNVYxLjVhLjUuNSAwIDEgMC0xIDBWM0g2VjEuNWEuNS41IDAgMSAwLTEgMFYzYTIgMiAwIDAgMC0yIDJIMS41YS41LjUgMCAxIDAgMCAxSDN2MS41SDEuNWEuNS41IDAgMSAwIDAgMUgzVjEwSDEuNWEuNS41IDAgMSAwIDAgMUgzYTIgMiAwIDAgMCAyIDJ2MS41YzAgLjEzLjA1LjI2LjE1LjM1QS41LjUgMCAwIDAgNiAxNC41VjEzaDEuNXYxLjVjMCAuMTMuMDUuMjYuMTUuMzVhLjUuNSAwIDAgMCAuODUtLjM1VjEzSDEwdjEuNWMwIC4xMy4wNS4yNi4xNS4zNWEuNS41IDAgMCAwIC44NS0uMzVWMTNhMiAyIDAgMCAwIDItMmgxLjVhLjUuNSAwIDEgMCAwLTFIMTNWOC41aDEuNVpNMTIgMTFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY2Wm0tNC0uNWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVptMC00YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMTJhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wk04IDIuNWEuNS41IDAgMCAwLTEgMFY0aC0uNUEyLjUgMi41IDAgMCAwIDQgNi41VjdIMi41YS41LjUgMCAwIDAgMCAxSDR2MS41SDIuNWEuNS41IDAgMCAwIDAgMUg0VjEySDIuNWEuNS41IDAgMCAwIDAgMUg0di41QTIuNSAyLjUgMCAwIDAgNi41IDE2SDd2MS41YS41LjUgMCAwIDAgMSAwVjE2aDEuNXYxLjVhLjUuNSAwIDAgMCAxIDBWMTZIMTJ2MS41YS41LjUgMCAwIDAgMSAwVjE2aC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2gxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LTEuNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTZWOGgxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LS41QTIuNSAyLjUgMCAwIDAgMTMuNSA0SDEzVjIuNWEuNS41IDAgMCAwLTEgMFY0aC0xLjVWMi41YS41LjUgMCAwIDAtMSAwVjRIOFYyLjVabTUgNy41YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgN2EzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZabS0yIDNhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWm0tLjUtOGMuMjggMCAuNS4yMi41LjVWNGgxLjVWMi41YS41LjUgMCAwIDEgMSAwVjRIMTJWMi41YS41LjUgMCAwIDEgMSAwVjRoLjVBMi41IDIuNSAwIDAgMSAxNiA2LjVWN2gxLjVhLjUuNSAwIDAgMSAwIDFIMTZ2MS41aDEuNWEuNS41IDAgMCAxIDAgMUgxNlYxMmgxLjVhLjUuNSAwIDAgMSAwIDFIMTZ2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEzdjEuNWEuNS41IDAgMCAxLTEgMFYxNmgtMS41djEuNWEuNS41IDAgMCAxLTEgMFYxNkg4djEuNWEuNS41IDAgMCAxLTEgMFYxNmgtLjVBMi41IDIuNSAwIDAgMSA0IDEzLjVWMTNIMi41YS41LjUgMCAwIDEgMC0xSDR2LTEuNUgyLjVhLjUuNSAwIDAgMSAwLTFINFY4SDIuNWEuNS41IDAgMCAxIDAtMUg0di0uNUEyLjUgMi41IDAgMCAxIDYuNSA0SDdWMi41YzAtLjI4LjIyLS41LjUtLjVaTTE1IDYuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDNS42NyA1IDUgNS42NyA1IDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuMjUgMmMuMzggMCAuNy4yOC43NC42NWwuMDEuMXYyLjMzQTMuNzUgMy43NSAwIDAgMSAxOC45MyA4aDIuMzJhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxOXYxLjc1aDIuMjVjLjM4IDAgLjcuMjkuNzQuNjVsLjAxLjFjMCAuMzgtLjI4LjctLjY1Ljc1SDE5djEuNzVoMi4yNWMuMzggMCAuNy4yOS43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzVoLTIuNDNBMy43NSAzLjc1IDAgMCAxIDE2IDE4LjkydjIuMzNhLjc1Ljc1IDAgMCAxLTEuNS4xVjE5aC0xLjc1djIuMjVjMCAuMzgtLjI4LjctLjY1Ljc0TDEyIDIyYS43NS43NSAwIDAgMS0uNzQtLjY1bC0uMDEtLjFWMTlIOS41djIuMjVjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xdi0yLjMyQTMuNzUgMy43NSAwIDAgMSA1LjA4IDE2SDIuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNUg1di0xLjc1SDIuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNjVMMiAxMmMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxSDVWOS41SDIuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNjVMMiA4Ljc1YzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFoMi4zM0EzLjc1IDMuNzUgMCAwIDEgOCA1LjA3VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNS0uMVY1aDEuNzVWMi43NWMwLS4zOC4yOC0uNy42NS0uNzRMMTIgMmMuMzggMCAuNy4yOC43NC42NWwuMDEuMVY1aDEuNzVWMi43NWMwLS4zNS4yMy0uNjQuNTUtLjcybC4xLS4wMi4xLS4wMVpNMTIgOWEzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZabTAgMS41YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2ZWxvcGVyQm9hcmQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS4yNSAyYy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjIuMzNBMy43NSAzLjc1IDAgMCAxIDE4LjkzIDhoMi4zMmEuNzUuNzUgMCAwIDEgLjEgMS41SDE5djEuNzVoMi4yNWMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxSDE5djEuNzVoMi4yNWMuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxaC0yLjMzQTMuNzUgMy43NSAwIDAgMSAxNiAxOC45MnYyLjMzYS43NS43NSAwIDAgMS0xLjUuMVYxOWgtMS43NXYyLjI1YzAgLjM4LS4yOC43LS42NS43NEwxMiAyMmEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xVjE5SDkuNXYyLjI1YzAgLjM4LS4yOC43LS42NS43NGwtLjEuMDFhLjc1Ljc1IDAgMCAxLS43NC0uNjVsLS4wMS0uMXYtMi4zMkEzLjc1IDMuNzUgMCAwIDEgNS4wOCAxNkgyLjc1YS43NS43NSAwIDAgMS0uMS0xLjVINXYtMS43NUgyLjc1YS43NS43NSAwIDAgMS0uNzQtLjY1TDIgMTJjMC0uMzguMjgtLjcuNjUtLjc0bC4xLS4wMUg1VjkuNUgyLjc1YS43NS43NSAwIDAgMS0uNzQtLjY1TDIgOC43NWMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDIuMzNBMy43NSAzLjc1IDAgMCAxIDggNS4wN1YyLjc1YS43NS43NSAwIDAgMSAxLjUtLjFWNWgxLjc1VjIuNzVjMC0uMzguMjgtLjcuNjUtLjc0TDEyIDJjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjFWNWgxLjc1VjIuNzVjMC0uMzUuMjMtLjY0LjU1LS43MmwuMS0uMDIuMS0uMDFabTAgNC41aC02LjVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djYuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg2LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTYuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNVpNMTIgOWEzIDMgMCAxIDEgMCA2IDMgMyAwIDAgMSAwLTZabTAgMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmRMaWdodG5pbmcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZExpZ2h0bmluZzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOCAyLjVhLjUuNSAwIDAgMC0xIDBWNGgtLjVBMi41IDIuNSAwIDAgMCA0IDYuNVY3SDIuNWEuNS41IDAgMCAwIDAgMUg0djEuNUgyLjVhLjUuNSAwIDAgMCAwIDFINFYxMkgyLjVhLjUuNSAwIDAgMCAwIDFINHYuNUEyLjUgMi41IDAgMCAwIDYuNSAxNkg3djEuNWEuNS41IDAgMCAwIDEgMFYxNmgxLjV2MS41YS41LjUgMCAwIDAgMSAwVjE2SDEydjEuNWEuNS41IDAgMCAwIDEgMFYxNmguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoMS41YS41LjUgMCAwIDAgMC0xSDE2di0xLjVoMS41YS41LjUgMCAwIDAgMC0xSDE2VjhoMS41YS41LjUgMCAwIDAgMC0xSDE2di0uNUEyLjUgMi41IDAgMCAwIDEzLjUgNEgxM1YyLjVhLjUuNSAwIDAgMC0xIDBWNGgtMS41VjIuNWEuNS41IDAgMCAwLTEgMFY0SDhWMi41Wm0yLjk5IDUuMDRMMTAuNTcgOWgxLjUzYy4zNCAwIC41Mi40LjMuNjZsLTIuNjUgMy4xOWMtLjMuMzUtLjg2LjA1LS43My0uNEw5LjQ2IDExSDcuOWEuNC40IDAgMCAxLS4zLS42NmwyLjY2LTMuMTljLjMtLjM0Ljg1LS4wNS43My4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkTGlnaHRuaW5nMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkTGlnaHRuaW5nMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuOTkgNy41NCAxMC41NyA5aDEuNTNjLjM0IDAgLjUyLjQuMy42NmwtMi42NSAzLjE5Yy0uMy4zNS0uODYuMDUtLjczLS40TDkuNDYgMTFINy45YS40LjQgMCAwIDEtLjMtLjY2bDIuNjYtMy4xOWMuMy0uMzQuODUtLjA1LjczLjM5Wk04IDIuNWEuNS41IDAgMCAwLTEgMFY0aC0uNUEyLjUgMi41IDAgMCAwIDQgNi41VjdIMi41YS41LjUgMCAwIDAgMCAxSDR2MS41SDIuNWEuNS41IDAgMCAwIDAgMUg0VjEySDIuNWEuNS41IDAgMCAwIDAgMUg0di41QTIuNSAyLjUgMCAwIDAgNi41IDE2SDd2MS41YS41LjUgMCAwIDAgMSAwVjE2aDEuNXYxLjVhLjUuNSAwIDAgMCAxIDBWMTZIMTJ2MS41YS41LjUgMCAwIDAgMSAwVjE2aC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2gxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LTEuNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTZWOGgxLjVhLjUuNSAwIDAgMCAwLTFIMTZ2LS41QTIuNSAyLjUgMCAwIDAgMTMuNSA0SDEzVjIuNWEuNS41IDAgMCAwLTEgMFY0aC0xLjVWMi41YS41LjUgMCAwIDAtMSAwVjRIOFYyLjVaTTEzLjUgNWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTMuNXYtN0M1IDUuNjcgNS42NyA1IDYuNSA1aDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZlbG9wZXJCb2FyZExpZ2h0bmluZ1Rvb2xib3gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZExpZ2h0bmluZ1Rvb2xib3gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTggMi41YS41LjUgMCAwIDAtMSAwVjRoLS41QTIuNSAyLjUgMCAwIDAgNCA2LjVWN0gyLjVhLjUuNSAwIDAgMCAwIDFINHYxLjVIMi41YS41LjUgMCAwIDAgMCAxSDRWMTJIMi41YS41LjUgMCAwIDAgMCAxSDR2LjVBMi41IDIuNSAwIDAgMCA2LjUgMTZIN3YxLjVhLjUuNSAwIDAgMCAxIDBWMTZoMXYtMi41YzAtLjIzLjAzLS40NS4wOS0uNjdhLjQuNCAwIDAgMS0uMDctLjM3TDkuNDYgMTFINy45YS40LjQgMCAwIDEtLjMtLjY2bDIuNjYtMy4xOWMuMy0uMzQuODUtLjA1LjczLjM5TDEwLjU3IDloMS41M2MuMTcgMCAuMy4xLjM2LjIzLjMyLS4xNS42Ny0uMjMgMS4wNC0uMjNoMmMuMTcgMCAuMzQuMDIuNS4wNVY4aDEuNWEuNS41IDAgMCAwIDAtMUgxNnYtLjVBMi41IDIuNSAwIDAgMCAxMy41IDRIMTNWMi41YS41LjUgMCAwIDAtMSAwVjRoLTEuNVYyLjVhLjUuNSAwIDAgMC0xIDBWNEg4VjIuNVptNCA5LjV2LS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2LjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTVoLTJ2LS41YS41LjUgMCAwIDAtMSAwdi41aC0zdi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtMnYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLS41di41aDN2LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wm00IDVWMTZoMnYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNVYxNmgydi41YS41LjUgMCAwIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDAgMCAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZlbG9wZXJCb2FyZExpZ2h0bmluZ1Rvb2xib3gyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2ZWxvcGVyQm9hcmRMaWdodG5pbmdUb29sYm94MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDJjLjI4IDAgLjUuMjIuNS41VjRoMS41VjIuNWEuNS41IDAgMCAxIDEgMFY0SDEyVjIuNWEuNS41IDAgMCAxIDEgMFY0aC41QTIuNSAyLjUgMCAwIDEgMTYgNi41VjdoMS41YS41LjUgMCAwIDEgMCAxSDE2djEuMDVhMi41MSAyLjUxIDAgMCAwLS41LS4wNUgxNVY2LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03QzUuNjcgNSA1IDUuNjcgNSA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNUg5djFIOHYxLjVhLjUuNSAwIDAgMS0xIDBWMTZoLS41QTIuNSAyLjUgMCAwIDEgNCAxMy41VjEzSDIuNWEuNS41IDAgMCAxIDAtMUg0di0xLjVIMi41YS41LjUgMCAwIDEgMC0xSDRWOEgyLjVhLjUuNSAwIDAgMSAwLTFINHYtLjVBMi41IDIuNSAwIDAgMSA2LjUgNEg3VjIuNWMwLS4yOC4yMi0uNS41LS41Wm0zLjU0IDkuMDRhMi41IDIuNSAwIDAgMSAxLjQyLTEuODEuNC40IDAgMCAwLS4zNi0uMjNoLTEuNTNsLjQyLTEuNDZjLjEyLS40NC0uNDQtLjczLS43My0uMzlsLTIuNjcgMy4yYS40LjQgMCAwIDAgLjMuNjVoMS41N2wtLjQ0IDEuNDZhLjQuNCAwIDAgMCAuMDcuMzcgMi41IDIuNSAwIDAgMSAxLjk1LTEuNzlaTTEyIDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1aC0ydi0uNWEuNS41IDAgMCAwLTEgMHYuNWgtM3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLTJ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVptNCA1VjE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmRTZWFyY2gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZFNlYXJjaDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgOWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaTTguNSAxYy4yOCAwIC41LjIyLjUuNVYzaDEuNVYxLjVhLjUuNSAwIDAgMSAxIDBWM0gxM1YxLjVhLjUuNSAwIDAgMSAxIDBWM2guNUEyLjUgMi41IDAgMCAxIDE3IDUuNVY2aDEuNWEuNS41IDAgMCAxIDAgMUgxN3YxLjVoMS41YS41LjUgMCAwIDEgMCAxSDE3VjExaDEuNWEuNS41IDAgMCAxIDAgMUgxN3YuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTR2MS41YS41LjUgMCAwIDEtMSAwVjE1aC0xLjV2MS41YS41LjUgMCAwIDEtMSAwVjE1SDguNzRhNC41IDQuNSAwIDAgMC01LjY4LTUuNzYuNS41IDAgMCAxIC40NC0uNzRINVY3SDMuNWEuNS41IDAgMCAxIDAtMUg1di0uNUEyLjUgMi41IDAgMCAxIDcuNSAzSDhWMS41YzAtLjI4LjIyLS41LjUtLjVaTTExIDEyYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptLTYuNSA1Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmRTZWFyY2gyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2ZWxvcGVyQm9hcmRTZWFyY2gyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDlhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0zLTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wk05IDEuNWEuNS41IDAgMCAwLTEgMFYzaC0uNUEyLjUgMi41IDAgMCAwIDUgNS41VjZIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41SDMuNWEuNS41IDAgMCAwLS40NC43NEE0LjUgNC41IDAgMCAxIDYgOS4yNlY1LjVDNiA0LjY3IDYuNjcgNCA3LjUgNGg3Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguOTdjLS4wNC4zNS0uMTEuNjgtLjIzIDFoMS43NnYxLjVhLjUuNSAwIDAgMCAxIDBWMTVIMTN2MS41YS41LjUgMCAwIDAgMSAwVjE1aC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxMmgxLjVhLjUuNSAwIDAgMCAwLTFIMTdWOS41aDEuNWEuNS41IDAgMCAwIDAtMUgxN1Y3aDEuNWEuNS41IDAgMCAwIDAtMUgxN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTRWMS41YS41LjUgMCAwIDAtMSAwVjNoLTEuNVYxLjVhLjUuNSAwIDAgMC0xIDBWM0g5VjEuNVpNNC41IDE3Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDAgMCAuNy0uN0w3LjMgMTUuNkEzLjUgMy41IDAgMSAwIDQuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2ZWxvcGVyQm9hcmRTZWFyY2gyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZlbG9wZXJCb2FyZFNlYXJjaDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcgMS42NWEuNzUuNzUgMCAwIDAtLjc1LS42NWgtLjFsLS4xLjAzYS43NS43NSAwIDAgMC0uNTUuNzJWNGgtMS43NVYxLjY1QS43NS43NSAwIDAgMCAxMyAxaC0uMWEuNzUuNzUgMCAwIDAtLjY1Ljc1VjRIMTAuNVYxLjY1YS43NS43NSAwIDAgMC0xLjUuMXYyLjMyQTMuNzUgMy43NSAwIDAgMCA2LjA4IDdIMy42NWEuNzUuNzUgMCAwIDAtLjY1Ljc1di4xYy4wNi4zNy4zNy42NS43NS42NUg2djEuNzVIMy42NUEuNzUuNzUgMCAwIDAgMyAxMXYuMWMuMDMuMTYuMS4zLjIuNGE1LjUgNS41IDAgMCAxIDcuNiA2LjVoMS40NXYyLjM1Yy4wNi4zNy4zNy42NS43NS42NWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVYxOGgxLjc1djIuMzVhLjc1Ljc1IDAgMCAwIDEuNS0uMXYtMi4zM0EzLjc1IDMuNzUgMCAwIDAgMTkuOTIgMTVoMi40M2EuNzUuNzUgMCAwIDAgLjY1LS43NXYtLjFhLjc1Ljc1IDAgMCAwLS43NS0uNjVIMjB2LTEuNzVoMi4zNUEuNzUuNzUgMCAwIDAgMjMgMTF2LS4xYS43NS43NSAwIDAgMC0uNzUtLjY1SDIwVjguNWgyLjM1YS43NS43NSAwIDAgMC0uMS0xLjVoLTIuMzJBMy43NSAzLjc1IDAgMCAwIDE3IDQuMDhWMS42NVpNMTAgMTFhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm00LjUgMGExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMFptLTkgMTBjLjk3IDAgMS44Ny0uMyAyLjYtLjgzbDIuNjIgMi42MWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjYxLTIuNjFBNC41IDQuNSAwIDEgMCA1LjUgMjFabTAtMS41YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmVsb3BlckJvYXJkU2VhcmNoMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmVsb3BlckJvYXJkU2VhcmNoMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcgMS42NWEuNzUuNzUgMCAwIDAtLjc1LS42NWgtLjFsLS4xLjAzYS43NS43NSAwIDAgMC0uNTUuNzJWNGgtMS43NVYxLjY1QS43NS43NSAwIDAgMCAxMyAxaC0uMWEuNzUuNzUgMCAwIDAtLjY1Ljc1VjRIMTAuNVYxLjY1YS43NS43NSAwIDAgMC0xLjUuMXYyLjMyQTMuNzUgMy43NSAwIDAgMCA2LjA4IDdIMy42NWEuNzUuNzUgMCAwIDAtLjY1Ljc1di4xYy4wNi4zNy4zNy42NS43NS42NUg2djEuNzVIMy42NUEuNzUuNzUgMCAwIDAgMyAxMXYuMWMuMDMuMTYuMS4zLjIuNGE1LjQ4IDUuNDggMCAwIDEgNC4zLS4xM1Y3Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDYuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY2LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVIMTFhNS41IDUuNSAwIDAgMS0uMiAxLjVoMS40NXYyLjM1Yy4wNi4zNy4zNy42NS43NS42NWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVYxOGgxLjc1djIuMzVhLjc1Ljc1IDAgMCAwIDEuNS0uMXYtMi4zM0EzLjc1IDMuNzUgMCAwIDAgMTkuOTIgMTVoMi40M2EuNzUuNzUgMCAwIDAgLjY1LS43NXYtLjFhLjc1Ljc1IDAgMCAwLS43NS0uNjVIMjB2LTEuNzVoMi4zNUEuNzUuNzUgMCAwIDAgMjMgMTF2LS4xYS43NS43NSAwIDAgMC0uNzUtLjY1SDIwVjguNWgyLjM1YS43NS43NSAwIDAgMC0uMS0xLjVoLTIuMzJBMy43NSAzLjc1IDAgMCAwIDE3IDQuMDhWMS42NVpNMTYgMTFhMyAzIDAgMSAwLTYgMCAzIDMgMCAwIDAgNiAwWm0tNC41IDBhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBabS02IDEwYy45NyAwIDEuODctLjMgMi42LS44M2wyLjYyIDIuNjFhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi42MS0yLjYxQTQuNSA0LjUgMCAxIDAgNS41IDIxWm0wLTEuNWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VFcTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZUVxMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djEwLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMi43NSAyYy40MSAwIC43NS4zNC43NS43NXY2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi02LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNiA0Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi02LjVaTTEzLjc1IDZjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk0zIDYuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZUVxMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZUVxMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYy4yOCAwIC41LjIyLjUuNXYxMWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNVptMi41IDJjLjI4IDAgLjUuMjIuNS41djdhLjUuNSAwIDAgMS0xIDB2LTdjMC0uMjguMjItLjUuNS0uNVpNNiA0LjVhLjUuNSAwIDAgMC0xIDB2N2EuNS41IDAgMCAwIDEgMHYtN1pNMTMuNSA2Yy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtMSAwdi0zYzAtLjI4LjIyLS41LjUtLjVaTTMgNi41YS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VFcTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZUVxMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYy40MSAwIC43NS4zNC43NS43NXYxNC41YS43NS43NSAwIDAgMS0xLjUgMFYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVabTMuNzUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2OC41YS43NS43NSAwIDAgMS0xLjUgMHYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVaTTcgNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2OC41YS43NS43NSAwIDAgMCAxLjUgMHYtOC41Wk0xNy4yNSA4Yy40MSAwIC43NS4zNC43NS43NXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMy41IDguNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZUVxMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZUVxMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMmMuMjggMCAuNS4yMi41LjV2MTVhLjUuNSAwIDAgMS0xIDB2LTE1YzAtLjI4LjIyLS41LjUtLjVabTMuNSAzYy4yOCAwIC41LjIyLjUuNXY5YS41LjUgMCAwIDEtMSAwdi05YzAtLjI4LjIyLS41LjUtLjVaTTcgNS41YS41LjUgMCAwIDAtMSAwdjlhLjUuNSAwIDAgMCAxIDB2LTlaTTE2LjUgOGMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLTEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wk00IDguNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlRXEyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VFcTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgM2ExIDEgMCAwIDEgMSAuODhWMjBhMSAxIDAgMCAxLTIgLjEyVjRhMSAxIDAgMCAxIDEtMVpNOCA2YTEgMSAwIDAgMSAxIC44OFYxN2ExIDEgMCAwIDEtMiAuMTJWN2ExIDEgMCAwIDEgMS0xWm04IDBhMSAxIDAgMCAxIDEgLjg4VjE3YTEgMSAwIDAgMS0yIC4xMlY3YTEgMSAwIDAgMSAxLTFaTTQgOWExIDEgMCAwIDEgMSAuODhWMTRhMSAxIDAgMCAxLTIgLjEyVjEwYTEgMSAwIDAgMSAxLTFabTE2IDBhMSAxIDAgMCAxIDEgLjg4VjE0YTEgMSAwIDAgMS0yIC4xMlYxMGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlRXEyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlRXEyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAzYy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjE2LjVhLjc1Ljc1IDAgMCAxLTEuNS4xVjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNOC4yNSA2Yy4zOCAwIC43LjI4Ljc1LjY1djEwLjZhLjc1Ljc1IDAgMCAxLTEuNDkuMVY2Ljc1YzAtLjQxLjMzLS43NS43NC0uNzVabTcuNSAwYy4zNyAwIC42OS4yOC43NC42NXYxMC42YS43NS43NSAwIDAgMS0xLjQ5LjFWNi43NWMwLS40MS4zMy0uNzUuNzQtLjc1Wm0tMTEgM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXY0LjVhLjc1Ljc1IDAgMCAxLTEuNS4xdi00LjZjMC0uNDEuMzQtLjc1Ljc1LS43NVptMTQuNSAwYy4zOCAwIC43LjI4Ljc1LjY1djQuNmEuNzUuNzUgMCAwIDEtMS41LjF2LTQuNmMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb20xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi43NCAzLjQ2QTIgMiAwIDAgMSA0LjY3IDJoNi42NmEyIDIgMCAwIDEgMS45MyAxLjQ2bDEuNjYgNS45YTIuMDggMi4wOCAwIDAgMS0yIDIuNjRIMy4wOGEyLjA4IDIuMDggMCAwIDEtMi0yLjY0bDEuNjYtNS45Wk00LjUgMTNhLjUuNSAwIDEgMCAwIDFoN2EuNS41IDAgMSAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZU1lZXRpbmdSb29tMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC42NyAyYTIgMiAwIDAgMC0xLjkzIDEuNDZsLTEuNjYgNS45YTIuMDggMi4wOCAwIDAgMCAyIDIuNjRoOS44NGEyLjA4IDIuMDggMCAwIDAgMi0yLjY0bC0xLjY2LTUuOUEyIDIgMCAwIDAgMTEuMzMgMkg0LjY3Wk0zLjcgMy43M0ExIDEgMCAwIDEgNC42NyAzaDYuNjZhMSAxIDAgMCAxIC45Ny43M2wxLjY2IDUuOWMuMi42OS0uMzMgMS4zNy0xLjA0IDEuMzdIMy4wOGMtLjcxIDAtMS4yMy0uNjgtMS4wNC0xLjM3bDEuNjYtNS45Wk00LjUgMTNhLjUuNSAwIDEgMCAwIDFoN2EuNS41IDAgMSAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb20yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNjYgNC45NUEyLjUgMi41IDAgMCAxIDYuMSAzaDcuOGMxLjE3IDAgMi4xOC44IDIuNDQgMS45NWwxLjYgN0EyLjUgMi41IDAgMCAxIDE1LjQ4IDE1SDQuNWEyLjUgMi41IDAgMCAxLTIuNDMtMy4wNWwxLjU5LTdaTTUuNSAxNmEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAxIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb20yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb20yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02LjEgM2EyLjUgMi41IDAgMCAwLTIuNDQgMS45NWwtMS42IDdBMi41IDIuNSAwIDAgMCA0LjUgMTVoMTFhMi41IDIuNSAwIDAgMCAyLjQzLTMuMDVsLTEuNTktN0EyLjUgMi41IDAgMCAwIDEzLjkgM0g2LjFaTTQuNjMgNS4xN0ExLjUgMS41IDAgMCAxIDYuMSA0aDcuOGMuNyAwIDEuMzEuNDggMS40NyAxLjE3bDEuNTkgN0ExLjUgMS41IDAgMCAxIDE1LjQ5IDE0SDQuNWExLjUgMS41IDAgMCAxLTEuNDYtMS44M2wxLjYtN1pNNS41IDE2YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDEgMCAwLTFoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZU1lZXRpbmdSb29tMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00LjEgNS4zNUEzLjA2IDMuMDYgMCAwIDEgNy4wNiAzaDkuODZjMS40MSAwIDIuNjUuOTcgMi45OCAyLjM1bDEuOTkgOC4yN0EzLjU1IDMuNTUgMCAwIDEgMTguNDUgMThINS41NWEzLjU1IDMuNTUgMCAwIDEtMy40NS00LjM4bDItOC4yN1pNNi43NCAxOWEuNzUuNzUgMCAxIDAgMCAxLjVoMTAuNWEuNzUuNzUgMCAxIDAgMC0xLjVINi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZU1lZXRpbmdSb29tMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNy4wNyAzYy0xLjQyIDAtMi42NS45Ny0yLjk4IDIuMzVMMi4xIDEzLjYyQTMuNTUgMy41NSAwIDAgMCA1LjU1IDE4aDEyLjljMi4yOSAwIDMuOTgtMi4xNSAzLjQ0LTQuMzhMMTkuOSA1LjM1QTMuMDYgMy4wNiAwIDAgMCAxNi45MyAzSDcuMDdaTTUuNTUgNS43Yy4xNy0uNy44LTEuMiAxLjUyLTEuMmg5Ljg2Yy43MiAwIDEuMzUuNSAxLjUxIDEuMmwyIDguMjdhMi4wNSAyLjA1IDAgMCAxLTIgMi41M0g1LjU1YTIuMDUgMi4wNSAwIDAgMS0yLTIuNTNsMi04LjI3Wk02Ljc1IDE5YS43NS43NSAwIDAgMCAwIDEuNWgxMC41YS43NS43NSAwIDAgMCAwLTEuNUg2Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb20yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNC45NyA1LjU4QTMuNSAzLjUgMCAwIDEgOC4zNSAzaDExLjNhMy41IDMuNSAwIDAgMSAzLjM4IDIuNThsMi44MyAxMC4zN0E0IDQgMCAwIDEgMjIgMjFINmE0IDQgMCAwIDEtMy44Ni01LjA1TDQuOTcgNS41OFpNNy43NSAyMi41YS43NS43NSAwIDEgMCAwIDEuNWgxMi41YS43NS43NSAwIDEgMCAwLTEuNUg3Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb20yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb20yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk04LjM1IDNhMy41IDMuNSAwIDAgMC0zLjM4IDIuNThMMi4xNCAxNS45NUE0IDQgMCAwIDAgNiAyMWgxNmE0IDQgMCAwIDAgMy44Ni01LjA1TDIzLjAzIDUuNThBMy41IDMuNSAwIDAgMCAxOS42NSAzSDguMzVaTTYuNDIgNS45N0EyIDIgMCAwIDEgOC4zNSA0LjVoMTEuM2EyIDIgMCAwIDEgMS45MyAxLjQ3bDIuODMgMTAuMzdBMi41IDIuNSAwIDAgMSAyMiAxOS41SDZhMi41IDIuNSAwIDAgMS0yLjQtMy4xNkw2LjQxIDUuOTdaTTcuNzUgMjIuNWEuNzUuNzUgMCAxIDAgMCAxLjVoMTIuNWEuNzUuNzUgMCAxIDAgMC0xLjVINy43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb20zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTUuMzcgNy4xMUE0LjI1IDQuMjUgMCAwIDEgOS40NyA0aDEzLjA2YzEuOTEgMCAzLjU4IDEuMjcgNC4xIDMuMTFsMy4yMiAxMS42QTQuMTggNC4xOCAwIDAgMSAyNS44MiAyNEg2LjE4YTQuMTggNC4xOCAwIDAgMS00LjAzLTUuM0w1LjM3IDcuMTFaTTggMjZhMSAxIDAgMSAwIDAgMmgxNmExIDEgMCAxIDAgMC0ySDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTkuNDcgNGE0LjI1IDQuMjUgMCAwIDAtNC4xIDMuMTFsLTMuMjIgMTEuNkE0LjE4IDQuMTggMCAwIDAgNi4xOCAyNGgxOS42NGE0LjE4IDQuMTggMCAwIDAgNC4wMy01LjNMMjYuNjMgNy4xMUE0LjI1IDQuMjUgMCAwIDAgMjIuNTMgNEg5LjQ3Wk03LjMgNy42NUEyLjI1IDIuMjUgMCAwIDEgOS40NyA2aDEzLjA2YzEuMDEgMCAxLjkuNjcgMi4xNyAxLjY1bDMuMjIgMTEuNTlhMi4xOCAyLjE4IDAgMCAxLTIuMSAyLjc2SDYuMThhMi4xOCAyLjE4IDAgMCAxLTIuMS0yLjc2TDcuMyA3LjY0Wk04IDI2YTEgMSAwIDEgMCAwIDJoMTZhMSAxIDAgMSAwIDAtMkg4WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb200OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNOC45NyAxMC40Yy43LTIuNiAzLjA1LTQuNCA1Ljc0LTQuNGgxOC41OGMyLjcgMCA1LjA0IDEuOCA1Ljc0IDQuNGw0Ljc2IDE3Ljc3QTYuMjIgNi4yMiAwIDAgMSAzNy43OCAzNkgxMC4yMmE2LjIyIDYuMjIgMCAwIDEtNi03LjgzTDguOTYgMTAuNFpNMTMuMjUgMzhhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDIxLjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC0yMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb200OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb200OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNC43IDZhNS45NCA1Ljk0IDAgMCAwLTUuNzMgNC40TDQuMjEgMjguMTdBNi4yMiA2LjIyIDAgMCAwIDEwLjIyIDM2aDI3LjU2YTYuMjIgNi4yMiAwIDAgMCA2LTcuODNMMzkuMDQgMTAuNEE1Ljk0IDUuOTQgMCAwIDAgMzMuMjkgNkgxNC43MVptLTMuMzEgNS4wNUEzLjQ0IDMuNDQgMCAwIDEgMTQuNyA4LjVoMTguNThhMy40NCAzLjQ0IDAgMCAxIDMuMzIgMi41NWw0Ljc2IDE3Ljc3YTMuNzIgMy43MiAwIDAgMS0zLjYgNC42OEgxMC4yM2EzLjcyIDMuNzIgMCAwIDEtMy41OS00LjY4bDQuNzYtMTcuNzdaTTEzLjI1IDM4YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgyMS41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMjEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tUmVtb3RlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb21SZW1vdGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuNjcgMmEyIDIgMCAwIDAtMS45MyAxLjQ2TDIuMzEgNSAyLjUgNWgyQTIuNSAyLjUgMCAwIDEgNyA3LjVWMTJoNS45YTIuMDggMi4wOCAwIDAgMCAyLjAxLTIuNjRsLTEuNjYtNS45QTIgMiAwIDAgMCAxMS4zNCAySDQuNjdabTIuMjggMTJjLjA0LS4xNi4wNS0uMzMuMDUtLjVWMTNoNC41YS41LjUgMCAxIDEgMCAxSDYuOTVaTTMuNSA5LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xIDcuNUMxIDYuNjcgMS42NyA2IDIuNSA2aDJDNS4zMyA2IDYgNi42NyA2IDcuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMkExLjUgMS41IDAgMCAxIDEgMTMuNXYtNlpNMi41IDdhLjUuNSAwIDAgMC0uNS41djZjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di02YS41LjUgMCAwIDAtLjUtLjVoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuNzQgMy40NkEyIDIgMCAwIDEgNC42NyAyaDYuNjdhMiAyIDAgMCAxIDEuOTIgMS40NmwxLjY2IDUuOWEyLjA4IDIuMDggMCAwIDEtMiAyLjY0SDd2LTFoNS45MmMuNzEgMCAxLjIzLS42OCAxLjA0LTEuMzdsLTEuNjYtNS45YTEgMSAwIDAgMC0uOTYtLjczSDQuNjdhMSAxIDAgMCAwLS45Ni43M0wzLjM1IDVIMi4zbC40NC0xLjU0Wk02Ljk1IDE0aDQuNTVhLjUuNSAwIDEgMCAwLTFIN3YuNWMwIC4xNy0uMDIuMzQtLjA1LjVaTTMuNSA5LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xIDcuNUMxIDYuNjcgMS42NyA2IDIuNSA2aDJDNS4zMyA2IDYgNi42NyA2IDcuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMkExLjUgMS41IDAgMCAxIDEgMTMuNXYtNlpNMi41IDdhLjUuNSAwIDAgMC0uNS41djZjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di02YS41LjUgMCAwIDAtLjUtLjVoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RldmljZU1lZXRpbmdSb29tUmVtb3RlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjY2IDQuOTVBMi41IDIuNSAwIDAgMSA2LjEgM2g3LjhjMS4xNyAwIDIuMTguOCAyLjQ0IDEuOTVsMS42IDdBMi41IDIuNSAwIDAgMSAxNS40OCAxNUg5VjkuNUEyLjUgMi41IDAgMCAwIDYuNSA3aC0zYy0uMSAwLS4yMSAwLS4zMS4wMmwuNDctMi4wN1pNOSAxNi41YzAgLjE3LS4wMi4zNC0uMDUuNWg1LjU1YS41LjUgMCAwIDAgMC0xSDl2LjVaTTUgMTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0yIDkuNUMyIDguNjcgMi42NyA4IDMuNSA4aDNDNy4zMyA4IDggOC42NyA4IDkuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDIgMTYuNXYtN1pNMy41IDlhLjUuNSAwIDAgMC0uNS41djdjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjUtLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuNjYgNC45NUEyLjUgMi41IDAgMCAxIDYuMSAzaDcuOGMxLjE3IDAgMi4xOC44IDIuNDQgMS45NWwxLjYgN0EyLjUgMi41IDAgMCAxIDE1LjQ4IDE1SDl2LTFoNi41Yy45NiAwIDEuNjctLjkgMS40Ni0xLjgzbC0xLjYtN0ExLjUgMS41IDAgMCAwIDEzLjkgNEg2LjFjLS43IDAtMS4zMS40OC0xLjQ3IDEuMTdMNC4yMiA3SDMuNWMtLjEgMC0uMjEgMC0uMzEuMDJsLjQ3LTIuMDdaTTguOTUgMTdoNS41NWEuNS41IDAgMCAwIDAtMUg5di41YzAgLjE3LS4wMi4zNC0uMDUuNVpNNSAxMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTIgOS41QzIgOC42NyAyLjY3IDggMy41IDhoM0M3LjMzIDggOCA4LjY3IDggOS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zQTEuNSAxLjUgMCAwIDEgMiAxNi41di03Wk0zLjUgOWEuNS41IDAgMCAwLS41LjV2N2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tUmVtb3RlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb21SZW1vdGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTcuMDcgM2MtMS40MSAwLTIuNjQuOTctMi45NyAyLjM1bC0uNzcgMy4xOC40Mi0uMDNoNGEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1VjE4aDcuOTVjMi4zIDAgMy45OS0yLjE1IDMuNDUtNC4zOGwtMi04LjI3QTMuMDYgMy4wNiAwIDAgMCAxNi45NCAzSDcuMDdabTMuNDIgMTcuNS4wMS0uMjVWMTloNi43NWEuNzUuNzUgMCAwIDEgMCAxLjVIMTAuNVptLTQuNzQtNmExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0yIDExLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDRjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2OWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTRDMi43OCAyMiAyIDIxLjIyIDIgMjAuMjV2LTlaTTMuNzUgMTFhLjI1LjI1IDAgMCAwLS4yNS4yNXY5YzAgLjE0LjExLjI1LjI1LjI1aDRjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTlhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuMSA1LjM1QTMuMDYgMy4wNiAwIDAgMSA3LjA2IDNoOS44NmMxLjQyIDAgMi42NS45NyAyLjk4IDIuMzVsMS45OSA4LjI3QTMuNTUgMy41NSAwIDAgMSAxOC40NSAxOEgxMC41di0xLjVoNy45NWMxLjMyIDAgMi4zLTEuMjQgMi0yLjUzbC0yLTguMjdjLS4xNy0uNy0uOC0xLjItMS41Mi0xLjJINy4wN2MtLjcyIDAtMS4zNS41LTEuNTIgMS4ybC0uNjcgMi44SDMuNzVjLS4xNCAwLS4yOS4wMS0uNDIuMDNsLjc2LTMuMThabTYuMzkgMTUuMTVoNi43NmEuNzUuNzUgMCAxIDAgMC0xLjVIMTAuNXYxLjI1bC0uMDEuMjVabS00Ljc0LTZhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMiAxMS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg0Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djljMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00QzIuNzggMjIgMiAyMS4yMiAyIDIwLjI1di05Wk0zLjc1IDExYS4yNS4yNSAwIDAgMC0uMjUuMjV2OWMwIC4xNC4xMS4yNS4yNS4yNWg0Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di05YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC00WlwiXSk7XG5leHBvcnQgY29uc3QgRGV2aWNlTWVldGluZ1Jvb21SZW1vdGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNOC4zNSAzYTMuNSAzLjUgMCAwIDAtMy4zOCAyLjU4bC0xLjIxIDQuNDZjLjE2LS4wMy4zMi0uMDQuNDktLjA0aDQuNWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1VjIxaDEwYTQgNCAwIDAgMCAzLjg2LTUuMDVMMjMuMDMgNS41OEEzLjUgMy41IDAgMCAwIDE5LjY1IDNIOC4zNVpNMTIgMjRsLjAxLS4yNVYyMi41aDguMjVhLjc1Ljc1IDAgMSAxIDAgMS41SDEyWk02LjUgMTdhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTIgMTMuMjVDMiAxMi4wMSAzIDExIDQuMjUgMTFoNC41QzEwIDExIDExIDEyIDExIDEzLjI1djEwLjVDMTEgMjQuOTkgMTAgMjYgOC43NSAyNmgtNC41QzMuMDEgMjYgMiAyNSAyIDIzLjc1di0xMC41Wm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEwLjVjMCAuNDEuMzQuNzUuNzUuNzVoNC41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xMC41YS43NS43NSAwIDAgMC0uNzUtLjc1aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQuOTcgNS41OEEzLjUgMy41IDAgMCAxIDguMzUgM2gxMS4zYTMuNSAzLjUgMCAwIDEgMy4zOCAyLjU4bDIuODMgMTAuMzdBNCA0IDAgMCAxIDIyIDIxSDEydi0xLjVoMTBhMi41IDIuNSAwIDAgMCAyLjQtMy4xNkwyMS41OSA1Ljk3YTIgMiAwIDAgMC0xLjkzLTEuNDdIOC4zNWEyIDIgMCAwIDAtMS45MyAxLjQ3TDUuMzIgMTBINC4yNWMtLjE3IDAtLjMzLjAxLS41LjA0bDEuMjItNC40NlpNMTIgMjRoOC4yNmEuNzUuNzUgMCAxIDAgMC0xLjVIMTJWMjRaTTYuNSAxN2ExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMiAxMy4yNUMyIDEyLjAxIDMgMTEgNC4yNSAxMWg0LjVDMTAgMTEgMTEgMTIgMTEgMTMuMjV2MTAuNUMxMSAyNC45OSAxMCAyNiA4Ljc1IDI2aC00LjVDMy4wMSAyNiAyIDI1IDIgMjMuNzV2LTEwLjVabTIuMjUtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTAuNWMwIC40MS4zNC43NS43NS43NWg0LjVjLjQyIDAgLjc1LS4zNC43NS0uNzV2LTEwLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tUmVtb3RlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb21SZW1vdGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTUuMzggNy4xMUE0LjI1IDQuMjUgMCAwIDEgOS40OCA0aDEzLjA1YzEuOTEgMCAzLjU4IDEuMjcgNC4xIDMuMTFsMy4yMiAxMS42QTQuMTggNC4xOCAwIDAgMSAyNS44MiAyNEgxNC41di05LjVhNCA0IDAgMCAwLTQtNEg0LjQzbC45NS0zLjM5Wk0xNC40NyAyOEgyNGExIDEgMCAxIDAgMC0yaC05LjV2MS41YzAgLjE3IDAgLjM0LS4wMy41Wk00LjUgMTRhLjUuNSAwIDAgMC0uNS41djEzYzAgLjI4LjIyLjUuNS41aDZhLjUuNSAwIDAgMCAuNS0uNXYtMTNhLjUuNSAwIDAgMC0uNS0uNWgtNlptLTIuNS41QTIuNSAyLjUgMCAwIDEgNC41IDEyaDZhMi41IDIuNSAwIDAgMSAyLjUgMi41djEzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNkEyLjUgMi41IDAgMCAxIDIgMjcuNXYtMTNaTTcuNSAyMGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTkuNDcgNGE0LjI1IDQuMjUgMCAwIDAtNC4xIDMuMTFsLS45MyAzLjQuMDYtLjAxaDIuMDFsLjgtMi44NUEyLjI1IDIuMjUgMCAwIDEgOS40NiA2aDEzLjA2YzEuMDEgMCAxLjkuNjcgMi4xNyAxLjY1bDMuMjIgMTEuNTlhMi4xOCAyLjE4IDAgMCAxLTIuMSAyLjc2SDE0LjV2MmgxMS4zMmE0LjE4IDQuMTggMCAwIDAgNC4wMy01LjNMMjYuNjMgNy4xMUE0LjI1IDQuMjUgMCAwIDAgMjIuNTMgNEg5LjQ3Wm01LjAzIDIySDI0YTEgMSAwIDEgMSAwIDJoLTkuNTNjLjAyLS4xNi4wMy0uMzMuMDMtLjVWMjZabS0xMC0xMmEuNS41IDAgMCAwLS41LjV2MTNjMCAuMjguMjIuNS41LjVoNmEuNS41IDAgMCAwIC41LS41di0xM2EuNS41IDAgMCAwLS41LS41aC02Wm0tMi41LjVBMi41IDIuNSAwIDAgMSA0LjUgMTJoNmEyLjUgMi41IDAgMCAxIDIuNSAyLjV2MTNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC02QTIuNSAyLjUgMCAwIDEgMiAyNy41di0xM1pNNy41IDIwYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERldmljZU1lZXRpbmdSb29tUmVtb3RlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGV2aWNlTWVldGluZ1Jvb21SZW1vdGU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTguOTcgMTAuNGMuNy0yLjYgMy4wNS00LjQgNS43NC00LjRoMTguNThjMi43IDAgNS4wNCAxLjggNS43NCA0LjRsNC43NiAxNy43N0E2LjIyIDYuMjIgMCAwIDEgMzcuNzggMzZIMjFWMjIuNzVBNS43NSA1Ljc1IDAgMCAwIDE1LjI1IDE3aC03LjVjLS4xOSAwLS4zNyAwLS41NS4wM2wxLjc3LTYuNjNaTTIxIDQwLjI1di4yNWgxMy43NWExLjI1IDEuMjUgMCAxIDAgMC0yLjVIMjF2Mi4yNVpNMTEuNSAyOWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptLTMuNzUtNy41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxNy41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDcuNWMuNyAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMTcuNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTcuNVpNNCAyMi43NUEzLjc1IDMuNzUgMCAwIDEgNy43NSAxOWg3LjVBMy43NSAzLjc1IDAgMCAxIDE5IDIyLjc1djE3LjVBMy43NSAzLjc1IDAgMCAxIDE1LjI1IDQ0aC03LjVBMy43NSAzLjc1IDAgMCAxIDQgNDAuMjV2LTE3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEZXZpY2VNZWV0aW5nUm9vbVJlbW90ZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTE0LjcgNmE1Ljk0IDUuOTQgMCAwIDAtNS43MyA0LjRMNy4yIDE3LjAzYy4xOC0uMDIuMzYtLjAzLjU1LS4wM2gyLjA0bDEuNi01Ljk1QTMuNDQgMy40NCAwIDAgMSAxNC43IDguNWgxOC41OGEzLjQ0IDMuNDQgMCAwIDEgMy4zMiAyLjU1bDQuNzYgMTcuNzdhMy43MiAzLjcyIDAgMCAxLTMuNiA0LjY4SDIxVjM2aDE2Ljc4YTYuMjIgNi4yMiAwIDAgMCA2LTcuODNMMzkuMDQgMTAuNEE1Ljk0IDUuOTQgMCAwIDAgMzMuMjkgNkgxNC43MVptMjAuMDUgMzQuNUgyMWwuMDEtLjI1VjM4aDEzLjc1YTEuMjUgMS4yNSAwIDAgMSAwIDIuNVpNMTEuNSAyOWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNNCAyMi43NUEzLjc1IDMuNzUgMCAwIDEgNy43NSAxOWg3LjVBMy43NSAzLjc1IDAgMCAxIDE5IDIyLjc1djE3LjVBMy43NSAzLjc1IDAgMCAxIDE1LjI1IDQ0aC03LjVBMy43NSAzLjc1IDAgMCAxIDQgNDAuMjV2LTE3LjVabTMuNzUtMS4yNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTcuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg3LjVjLjcgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTE3LjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFncmFtMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhZ3JhbTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSAyYTMgMyAwIDAgMC0zIDN2OWEzIDMgMCAwIDAgMyAzaC44MmwuOS0xSDVhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjUuMDNjLjM2LjA2LjcuMiAxIC40VjVhMyAzIDAgMCAwLTMtM0g1Wm0uNSAzYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTUgOC41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wk02LjUgMTFhLjUuNSAwIDAgMC0uMzcuODNMOC45NCAxNWwtMi44MSAzLjE3YS41LjUgMCAwIDAgLjM3LjgzaDguMWMuMzggMCAuNzYtLjE1IDEuMDQtLjQybDMuMTMtMy4wNGMuMy0uMy4zLS43OCAwLTEuMDhsLTMuMTMtMy4wNGExLjUgMS41IDAgMCAwLTEuMDUtLjQySDYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWdyYW0yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhZ3JhbTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjlhMyAzIDAgMCAwIDMgM2guODJsLjktMUg1YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY1LjAzYy4zNi4wNi43LjIgMSAuNFY1YTMgMyAwIDAgMC0zLTNINVptMS41IDlhLjUuNSAwIDAgMC0uMzcuODNMOC45NCAxNWwtMi44MSAzLjE3YS41LjUgMCAwIDAgLjM3LjgzaDguMWMuMzggMCAuNzYtLjE1IDEuMDQtLjQybDMuMTMtMy4wNGMuMy0uMy4zLS43OCAwLTEuMDhsLTMuMTMtMy4wNGExLjUgMS41IDAgMCAwLTEuMDUtLjQySDYuNVptMy4zNCAzLjVMNy42IDEyaDYuOThhLjUuNSAwIDAgMSAuMzUuMTRMMTcuOSAxNWwtMi45NSAyLjg2YS41LjUgMCAwIDEtLjM1LjE0SDcuNjFsMi4yMy0yLjVhLjc1Ljc1IDAgMCAwIDAtMVpNNSA1LjVjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVaTTUuNSA4YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFncmFtMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhZ3JhbTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiA1LjI1QzIgMy40NSAzLjQ2IDIgNS4yNSAyaDEwLjVDMTcuNTUgMiAxOSAzLjQ2IDE5IDUuMjV2Ni4wM2EyLjc1IDIuNzUgMCAwIDAtMS4yMi0uMjhoLS4yOFY1LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxMS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuMzdMNy4zNiAyMEg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1VjUuMjVaTTYuNzUgNmEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0uMzIgNi40M2EuNzUuNzUgMCAwIDEgLjY4LS40M2gxMC4wM2MuNTIgMCAxLjAxLjIzIDEuMzQuNjJsMy43IDQuNGMuMjQuMjguMjQuNjggMCAuOTZsLTMuNyA0LjRjLS4zMy40LS44Mi42Mi0xLjM0LjYySDcuNzVhLjc1Ljc1IDAgMCAxLS41Ny0xLjIzbDMuNTktNC4yNy0zLjYtNC4yN2EuNzUuNzUgMCAwIDEtLjEtLjhaTTYuNzUgOWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhZ3JhbTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFncmFtMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA1LjI1QzIgMy40NSAzLjQ2IDIgNS4yNSAyaDEwLjVDMTcuNTUgMiAxOSAzLjQ2IDE5IDUuMjV2Ni4wM2EyLjc1IDIuNzUgMCAwIDAtMS4yMi0uMjhoLS4yOFY1LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxMS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuMzdMNy4zNiAyMEg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1VjUuMjVaTTYuNzUgNmEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0uMzIgNi40M2EuNzUuNzUgMCAwIDEgLjY4LS40M2gxMC4wM2MuNTIgMCAxLjAxLjIzIDEuMzQuNjJsMy43IDQuNGMuMjQuMjguMjQuNjggMCAuOTZsLTMuNyA0LjRjLS4zMy40LS44Mi42Mi0xLjM0LjYySDcuNzVhLjc1Ljc1IDAgMCAxLS41Ny0xLjIzbDMuNTktNC4yNy0zLjYtNC4yN2EuNzUuNzUgMCAwIDEtLjEtLjhabTIuMyAxLjA3IDIuOTUgMy41MmMuMjQuMjguMjQuNjggMCAuOTZMOS4zNiAyMS41aDguNDJjLjA4IDAgLjE1LS4wMy4yLS4wOWwzLjI5LTMuOTEtMy4zLTMuOTFhLjI1LjI1IDAgMCAwLS4xOS0uMDlIOS4zNlpNNi43NCA5YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTAgNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk03LjI1IDEyYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTEwIDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMTEuMjUgOGExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xMCAxMy4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0xMS4yNSAxNmExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xNCA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTE1LjI1IDhhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTQgMTMuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWxwYWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMtN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zLTExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMSAzYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEgNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMTcuNzVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabTAtNWExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptNSAwYTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm0tMTAgMGExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptNS01YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm01IDBhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabS0xMCAwYTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm01LTVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabTUgMGExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptLTEwIDBhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAxNy43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm0wLTVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptNSAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabS0xMCAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabTUtNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm01IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptLTEwIDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptNS01YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabTUgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm0tMTAgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTcuNSA2LjVhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm02LjUtMTJhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm02LjUtMThhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFscGFkMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNOSA0LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTAgNmExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMCA2YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm02LjUtMTJhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTAgNmExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMCA2YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0wIDZhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTYuNS0xOGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMCA2YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0wIDZhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOSA3LjVhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVabTAgN2EyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptMCA3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm03LTE0YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wIDdhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVabTAgN2EyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptMCA3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm03LTIxYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wIDdhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVabTAgN2EyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWxwYWQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExIDVhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0wIDdhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0wIDdhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm03LTE0YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMCA3YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMCA3YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMCA3YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptNy0yMWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTAgN2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTAgN2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTMuNSAxMS41YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptMCAxMGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabTAgMTBhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2Wm0xMC41LTIwYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptMCAxMGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabTAgMTBhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2Wm0wIDEwYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptMTAuNS0zMGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZabTAgMTBhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2Wm0wIDEwYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWxwYWQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTE2IDguNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMCAxMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMCAxMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMTAuNS0yMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMCAxMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMCAxMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMCAxMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpNMzcgOC41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0wIDEwYTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0wIDEwYTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZE9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMy45IDMuOUg2YTEuMjUgMS4yNSAwIDEgMCAxLjI1IDEuMmwyLjggMi44SDEwYTEuMjUgMS4yNSAwIDEgMCAxLjI1IDEuMmw1LjkgNS45YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xNS4yNSAxMmMwIC4zMS0uMTIuNi0uMy44MmwtMS43Ny0xLjc2YTEuMjUgMS4yNSAwIDAgMSAyLjA3Ljk0Wm0tNC00YzAgLjMxLS4xMi42LS4zLjgyTDkuMTcgNy4wNmExLjI1IDEuMjUgMCAwIDEgMi4wNy45NFptLTQtNGMwIC4zMS0uMTIuNi0uMy44Mkw1LjE3IDMuMDZBMS4yNSAxLjI1IDAgMCAxIDcuMjUgNFptMCA4YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaTTEwIDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMTEuMjUgMTZhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTQgNS4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wk0xNS4yNSA4YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDQuMiA0LjIyQTEgMSAwIDAgMCA1IDhhMSAxIDAgMSAwIDEuOTMtLjM2bDMuNDMgMy40M2ExIDEgMCAxIDAgLjU3LjU3bDYuMjIgNi4yMWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTUgMTJhMSAxIDAgMCAxLS4yMy42NGwtMS40MS0xLjRBMSAxIDAgMCAxIDE1IDEyWm0tNC00YTEgMSAwIDAgMS0uMjMuNjRsLTEuNDEtMS40QTEgMSAwIDAgMSAxMSA4Wk03IDRhMSAxIDAgMCAxLS4yMy42NGwtMS40MS0xLjRBMSAxIDAgMCAxIDcgNFptMCA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMy03YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMSAxMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMtMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZE9mZjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDQuNSA0LjVhMS41IDEuNSAwIDEgMCAxLjc2IDEuNzZsMy4yNCAzLjI0YTEuNSAxLjUgMCAxIDAgMS43NSAxLjc1bDcuMjUgNy4yNWEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTguNSAxNC4yNWMwIC4zLS4xLjU4LS4yNS44MmwtMi4wNy0yLjA4YTEuNSAxLjUgMCAwIDEgMi4zMiAxLjI2Wm0tNS01YzAgLjMtLjA5LjU5LS4yNS44MkwxMS4xOCA4YTEuNSAxLjUgMCAwIDEgMi4zMiAxLjI1Wm0tNS01YzAgLjMtLjA5LjU5LS4yNC44M0w2LjE4IDNBMS41IDEuNSAwIDAgMSA4LjUgNC4yNVptMy41IDEzLjVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabS01LTVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabTEwLTVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabS01LTVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabTUgMGExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpYWxwYWRPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDQuNSA0LjVhMS4yNSAxLjI1IDAgMSAwIDEuNSAxLjVsMy41IDMuNWExLjI1IDEuMjUgMCAxIDAgMS41IDEuNWw3LjUgNy41YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWk0xOC4yNSAxNGMwIC4zLS4xLjU3LS4yOC43OWwtMS43Ni0xLjc2YTEuMjUgMS4yNSAwIDAgMSAyLjA0Ljk3Wm0tNS01YzAgLjMtLjEuNTctLjI4Ljc5bC0xLjc2LTEuNzZhMS4yNSAxLjI1IDAgMCAxIDIuMDQuOTdabS01LTVjMCAuMy0uMS41OC0uMjguNzlMNi4yMSAzLjAzYy4yMi0uMTcuNS0uMjguOC0uMjguNjggMCAxLjI0LjU2IDEuMjQgMS4yNVpNMTIgMTcuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptLTUtNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm0xMC01YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabS01LTVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptNSAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkUXVlc3Rpb25NYXJrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbHBhZFF1ZXN0aW9uTWFyazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiA1LjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTAgNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm0wIDRhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptNC04YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabTAgNGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm0uNDEgMS41N2E1LjUgNS41IDAgMCAwLTEuMiAyLjE1IDEuMjUgMS4yNSAwIDAgMSAxLjItMi4xNVptNC4zMy0xLjgxYTEuMjUgMS4yNSAwIDEgMC0xLjMyLjEgNS41MyA1LjUzIDAgMCAxIDEuMzItLjFaTTE0IDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS42Mi0yYS42Mi42MiAwIDEgMSAxLjI0IDAgLjYyLjYyIDAgMCAxLTEuMjQgMFptLTEuMjMtMy41NGMtLjAxLTEuMTQuOC0xLjk2IDEuODUtMS45NiAxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NSAwLS41NS0uMzgtLjk1LS44NS0uOTUtLjUgMC0uODYuMzctLjg1Ljk1YS41LjUgMCAxIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZFF1ZXN0aW9uTWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFscGFkUXVlc3Rpb25NYXJrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiA1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC04YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCAyYTEgMSAwIDAgMSAuMjMuMDMgNS41IDUuNSAwIDAgMC0uOTMgMS42OEExIDEgMCAwIDEgMTAgMTFabTUtN2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTAgNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTQgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAwIDAgMS4yNS42Mi42MiAwIDAgMCAwLTEuMjVabTAtNC44OGMtMS4wNSAwLTEuODYuODItMS44NSAxLjk2YS41LjUgMCAxIDAgMS0uMDFjMC0uNTguMzYtLjk1Ljg1LS45NS40NyAwIC44NS40Ljg1Ljk1IDAgLjItLjA3LjMyLS4zNi41NWwtLjI3LjIxYy0uNTEuNC0uNzIuNzItLjcyIDEuMjlhLjUuNSAwIDAgMCAxIC4wOXYtLjE2Yy4wMi0uMTQuMS0uMjUuMzUtLjQ0bC4yOC0uMjJjLjUtLjQuNzItLjczLjcyLTEuMzIgMC0xLjEtLjgyLTEuOTUtMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbHBhZFF1ZXN0aW9uTWFyazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRRdWVzdGlvbk1hcmsyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDIuNzVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabTEuNSA2LjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBaTTcgMTIuNzVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabTUgMGMuMyAwIC41OC4wOS44Mi4yNGE2LjUgNi41IDAgMCAwLTEuNTMgMi41OCAxLjUgMS41IDAgMCAxIC43MS0yLjgyWm01LTVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabS04LjUgMS41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWm0xMC01YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWk03IDIuNzVhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTYuMTIgMi44OGEuNjIuNjIgMCAxIDEgMS4yNCAwIC42Mi42MiAwIDAgMS0xLjI0IDBabS0xLjIzLTQuNTVjLS4wMS0xLjE0LjgtMS45NiAxLjg1LTEuOTYgMS4wMyAwIDEuODUuODUgMS44NSAxLjk1IDAgLjUxLS4xNS44NS0uNTMgMS4zbC0uMTMuMTUtLjI3LjMtLjEuMS0uMDguMTFjLS4xOC4yMy0uMjQuMzktLjI0LjZhLjUuNSAwIDEgMS0xIDBjMC0uNTMuMTUtLjg2LjUzLTEuMzJsLjE0LS4xNi4yNy0uMjkuMS0uMS4wOS0uMTJjLjE3LS4yMi4yMi0uMzcuMjItLjU3IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFscGFkUXVlc3Rpb25NYXJrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYWxwYWRRdWVzdGlvbk1hcmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAyLjc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaTTEzLjI1IDlhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFpNNyAxMi43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm01IDBjLjMgMCAuNTcuMS43OC4yOGE2LjUgNi41IDAgMCAwLTEuMzMgMi4xIDEuMjUgMS4yNSAwIDAgMSAuNTUtMi4zOFptNS01YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaTTguMjUgOWExLjI1IDEuMjUgMCAxIDAtMi41IDAgMS4yNSAxLjI1IDAgMCAwIDIuNSAwWm0xMC01YTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBaTTcgMi43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabTAgNy43NWEuNjIuNjIgMCAxIDAgMCAxLjI1LjYyLjYyIDAgMCAwIDAtMS4yNVptMC01Ljg4Yy0xLjA1IDAtMS44Ni44Mi0xLjg1IDEuOTZhLjUuNSAwIDAgMCAxLS4wMWMwLS41OC4zNi0uOTUuODUtLjk1LjQ3IDAgLjg1LjQuODUuOTUgMCAuMi0uMDUuMzUtLjIyLjU3bC0uMS4xMS0uMS4xMS0uMjYuMy0uMTQuMTVjLS4zOC40Ni0uNTMuOC0uNTMgMS4zMWEuNS41IDAgMCAwIDEgMGMwLS4yLjA2LS4zNi4yNC0uNTlsLjA4LS4xLjEtLjEyLjI3LS4yOS4xMy0uMTVjLjM4LS40NS41My0uNzkuNTMtMS4zIDAtMS4xLS44Mi0xLjk1LTEuODUtMS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYW1vbmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xLjU5IDkuNGEyIDIgMCAwIDEgMC0yLjgzbDQuOTgtNC45OGEyIDIgMCAwIDEgMi44MyAwbDQuOTggNC45OGEyIDIgMCAwIDEgMCAyLjgzTDkuNCAxNC4zOGEyIDIgMCAwIDEtMi44MyAwTDEuNTkgOS40WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMS41OSA5LjRhMiAyIDAgMCAxIDAtMi44M2w0Ljk4LTQuOThhMiAyIDAgMCAxIDIuODMgMGw0Ljk4IDQuOThhMiAyIDAgMCAxIDAgMi44M0w5LjQgMTQuMzhhMiAyIDAgMCAxLTIuODMgMEwxLjU5IDkuNFptLjctMi4xMmExIDEgMCAwIDAgMCAxLjQxbDQuOTkgNC45OGExIDEgMCAwIDAgMS40MSAwbDQuOTktNC45OGExIDEgMCAwIDAgMC0xLjQxTDguNjkgMi4yOWExIDEgMCAwIDAtMS40MSAwTDIuMjkgNy4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYW1vbmQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yLjU5IDExLjQxYTIgMiAwIDAgMSAwLTIuODJsNi02YTIgMiAwIDAgMSAyLjgzIDBsNiA2YTIgMiAwIDAgMSAwIDIuODJsLTYgNmEyIDIgMCAwIDEtMi44MyAwbC02LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFtb25kMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYW1vbmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjU5IDExLjQxYTIgMiAwIDAgMSAwLTIuODJsNi02YTIgMiAwIDAgMSAyLjgzIDBsNiA2YTIgMiAwIDAgMSAwIDIuODJsLTYgNmEyIDIgMCAwIDEtMi44MyAwbC02LTZabS43LTIuMTJhMSAxIDAgMCAwIDAgMS40Mmw2IDZhMSAxIDAgMCAwIDEuNDIgMGw2LTZhMSAxIDAgMCAwIDAtMS40MmwtNi02YTEgMSAwIDAgMC0xLjQyIDBsLTYgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYW1vbmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yLjY2IDEzLjZhMi4yNSAyLjI1IDAgMCAxIDAtMy4xOWw3Ljc1LTcuNzVjLjg4LS44OCAyLjMtLjg4IDMuMTggMGw3Ljc1IDcuNzVjLjg4Ljg4Ljg4IDIuMyAwIDMuMThsLTcuNzUgNy43NWMtLjg4Ljg4LTIuMy44OC0zLjE4IDBMMi42NiAxMy42WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMi42NiAxMy42YTIuMjUgMi4yNSAwIDAgMSAwLTMuMTlsNy43NS03Ljc1Yy44OC0uODggMi4zLS44OCAzLjE4IDBsNy43NSA3Ljc1Yy44OC44OC44OCAyLjMgMCAzLjE4bC03Ljc1IDcuNzVjLS44OC44OC0yLjMuODgtMy4xOCAwTDIuNjYgMTMuNlptMS4wNi0yLjEzYy0uMy4zLS4zLjc3IDAgMS4wNmw3Ljc1IDcuNzVjLjMuMy43Ny4zIDEuMDYgMGw3Ljc1LTcuNzVjLjMtLjMuMy0uNzcgMC0xLjA2bC03Ljc1LTcuNzVhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNy43NSA3Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYW1vbmQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMuNzMgMTUuNzdhMi41IDIuNSAwIDAgMSAwLTMuNTRsOC41LTguNWEyLjUgMi41IDAgMCAxIDMuNTQgMGw4LjUgOC41YTIuNSAyLjUgMCAwIDEgMCAzLjU0bC04LjUgOC41YTIuNSAyLjUgMCAwIDEtMy41NCAwbC04LjUtOC41WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy43MyAxNS43N2EyLjUgMi41IDAgMCAxIDAtMy41NGw4LjUtOC41YTIuNSAyLjUgMCAwIDEgMy41NCAwbDguNSA4LjVhMi41IDIuNSAwIDAgMSAwIDMuNTRsLTguNSA4LjVhMi41IDIuNSAwIDAgMS0zLjU0IDBsLTguNS04LjVaTTQuOCAxMy4zYTEgMSAwIDAgMCAwIDEuNGw4LjUgOC41MWExIDEgMCAwIDAgMS40MiAwbDguNS04LjVhMSAxIDAgMCAwIDAtMS40MmwtOC41LTguNWExIDEgMCAwIDAtMS40MiAwbC04LjUgOC41WlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpYW1vbmQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTMuODggMTguMTJhMyAzIDAgMCAxIDAtNC4yNGwxMC0xMGEzIDMgMCAwIDEgNC4yNCAwbDEwIDEwYTMgMyAwIDAgMSAwIDQuMjRsLTEwIDEwYTMgMyAwIDAgMS00LjI0IDBsLTEwLTEwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlhbW9uZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaWFtb25kMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMy44OCAxOC4xMmEzIDMgMCAwIDEgMC00LjI0bDEwLTEwYTMgMyAwIDAgMSA0LjI0IDBsMTAgMTBhMyAzIDAgMCAxIDAgNC4yNGwtMTAgMTBhMyAzIDAgMCAxLTQuMjQgMGwtMTAtMTBabTEuNDEtMi44M2ExIDEgMCAwIDAgMCAxLjQybDEwIDEwYTEgMSAwIDAgMCAxLjQyIDBsMTAtMTBhMSAxIDAgMCAwIDAtMS40MmwtMTAtMTBhMSAxIDAgMCAwLTEuNDIgMGwtMTAgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaWFtb25kNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbW9uZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNS4wMyAyNi40N2EzLjUgMy41IDAgMCAxIDAtNC45NWwxNi41LTE2LjVhMy41IDMuNSAwIDAgMSA0Ljk0IDBsMTYuNSAxNi41YTMuNSAzLjUgMCAwIDEgMCA0Ljk1bC0xNi41IDE2LjVhMy41IDMuNSAwIDAgMS00Ljk1IDBsLTE2LjUtMTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpYW1vbmQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlhbW9uZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTUuMDMgMjYuNDdhMy41IDMuNSAwIDAgMSAwLTQuOTVsMTYuNS0xNi41YTMuNSAzLjUgMCAwIDEgNC45NCAwbDE2LjUgMTYuNWEzLjUgMy41IDAgMCAxIDAgNC45NWwtMTYuNSAxNi41YTMuNSAzLjUgMCAwIDEtNC45NSAwbC0xNi41LTE2LjVabTEuNzYtMy4xOGExIDEgMCAwIDAgMCAxLjQybDE2LjUgMTYuNWExIDEgMCAwIDAgMS40MiAwbDE2LjUtMTYuNWExIDEgMCAwIDAgMC0xLjQyTDI0LjcgNi44YTEgMSAwIDAgMC0xLjQyIDBMNi44IDIzLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXJlY3Rpb25zMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlyZWN0aW9uczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi4yMyAyLjdhMi41IDIuNSAwIDAgMSAzLjU0IDBsMy41MyAzLjUzYTIuNSAyLjUgMCAwIDEgMCAzLjU0TDkuNzcgMTMuM2EyLjUgMi41IDAgMCAxLTMuNTQgMEwyLjcgOS43N2EyLjUgMi41IDAgMCAxIDAtMy41NEw2LjIzIDIuN1ptMi42MiAxLjk1YS41LjUgMCAxIDAtLjcuN2wuNjQuNjVINy41QzYuNjcgNiA2IDYuNjcgNiA3LjVWMTBhLjUuNSAwIDAgMCAxIDBWNy41YzAtLjI4LjIyLS41LjUtLjVoMS4zbC0uNjUuNjVhLjUuNSAwIDEgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGlyZWN0aW9uczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXJlY3Rpb25zMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi4yMyAyLjdhMi41IDIuNSAwIDAgMSAzLjU0IDBsMy41MyAzLjUzYTIuNSAyLjUgMCAwIDEgMCAzLjU0TDkuNzcgMTMuM2EyLjUgMi41IDAgMCAxLTMuNTQgMEwyLjcgOS43N2EyLjUgMi41IDAgMCAxIDAtMy41NEw2LjIzIDIuN1ptMi44My43YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDMuNCA2Ljk0YTEuNSAxLjUgMCAwIDAgMCAyLjEybDMuNTQgMy41NGExLjUgMS41IDAgMCAwIDIuMTIgMGwzLjU0LTMuNTRhMS41IDEuNSAwIDAgMCAwLTIuMTJMOS4wNiAzLjRabS0uOTEgMS4yNWMuMi0uMi41LS4yLjcgMGwxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN0w4Ljc5IDdINy41YS41LjUgMCAwIDAtLjUuNVYxMGEuNS41IDAgMCAxLTEgMFY3LjVDNiA2LjY3IDYuNjcgNiA3LjUgNmgxLjNsLS42NS0uNjVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRGlyZWN0aW9uczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpcmVjdGlvbnMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExLjc3IDMuMDZhMi41IDIuNSAwIDAgMC0zLjU0IDBMMy4wNiA4LjIzYTIuNSAyLjUgMCAwIDAgMCAzLjU0bDUuMTcgNS4xN2EyLjUgMi41IDAgMCAwIDMuNTQgMGw1LjE3LTUuMTdhMi41IDIuNSAwIDAgMCAwLTMuNTRsLTUuMTctNS4xN1ptLTEuMTIgMy4wOWMuMi0uMi41LS4yLjcgMGwxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN2wuNjQtLjY1aC0uNzlDOS42NyA4LjUgOSA5LjE3IDkgMTB2Mi41YS41LjUgMCAwIDEtMSAwVjEwYTIuNSAyLjUgMCAwIDEgMi41LTIuNWguOGwtLjY1LS42NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXJlY3Rpb25zMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpcmVjdGlvbnMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC41IDguNUM5LjY3IDguNSA5IDkuMTcgOSAxMHYyLjVhLjUuNSAwIDEgMS0xIDBWMTBhMi41IDIuNSAwIDAgMSAyLjUtMi41aC44bC0uNjUtLjY1YS41LjUgMCAwIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAxIDEtLjctLjdsLjY0LS42NWgtLjc5Wk04LjIzIDMuMDZhMi41IDIuNSAwIDAgMSAzLjU0IDBsNS4xNyA1LjE3YTIuNSAyLjUgMCAwIDEgMCAzLjU0bC01LjE3IDUuMTdhMi41IDIuNSAwIDAgMS0zLjU0IDBsLTUuMTctNS4xN2EyLjUgMi41IDAgMCAxIDAtMy41NGw1LjE3LTUuMTdabTIuODMuN2ExLjUgMS41IDAgMCAwLTIuMTIgMEwzLjc3IDguOTVhMS41IDEuNSAwIDAgMCAwIDIuMTJsNS4xNyA1LjE3YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDUuMTctNS4xN2ExLjUgMS41IDAgMCAwIDAtMi4xMmwtNS4xNy01LjE3WlwiXSk7XG5leHBvcnQgY29uc3QgRGlyZWN0aW9uczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpcmVjdGlvbnMyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE0LjMgMi45OSA2LjcyIDYuNzFhMy4yNSAzLjI1IDAgMCAxIDAgNC42bC02LjcyIDYuNzJhMy4yNSAzLjI1IDAgMCAxLTQuNiAwTDIuOTggMTQuM2EzLjI1IDMuMjUgMCAwIDEgMC00LjZMOS43IDNhMy4yNSAzLjI1IDAgMCAxIDQuNiAwWm0tLjcgNC4yMy0uMS0uMDdhLjc1Ljc1IDAgMCAwLS44OCAwbC0uMDkuMDctLjA3LjA5Yy0uMi4yNi0uMi42MS0uMDEuODhsLjA4LjEuNzIuNzFoLTEuNjdhMi43NSAyLjc1IDAgMCAwLTIuNTcgMi41OGwtLjAxLjE3djMuMzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zLjQ4Yy4wNy0uNTkuNTMtMS4wNSAxLjEyLTEuMTFoLjEzbDEuNS0uMDEtLjcyLjcyLS4wNy4wOWEuNzUuNzUgMCAwIDAgMS4wNSAxLjA0bC4wOC0uMDcgMi0yIC4wNy0uMDhjLjItLjI2LjItLjYyLjAxLS44OGwtLjA4LS4xLTItMi0uMDgtLjA3LjA4LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgRGlyZWN0aW9uczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXJlY3Rpb25zMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTQuMyAyLjk5IDYuNzIgNi43MWEzLjI1IDMuMjUgMCAwIDEgMCA0LjZsLTYuNzIgNi43MmEzLjI1IDMuMjUgMCAwIDEtNC42IDBMMi45OCAxNC4zYTMuMjUgMy4yNSAwIDAgMSAwLTQuNkw5LjcgM2EzLjI1IDMuMjUgMCAwIDEgNC42IDBabS0zLjU0IDEuMDYtNi43MiA2LjcxYy0uNjguNjktLjY4IDEuOCAwIDIuNDhsNi43MiA2LjcyYy42OS42OCAxLjguNjggMi40OCAwbDYuNzEtNi43MmMuNjktLjY5LjY5LTEuOCAwLTIuNDhsLTYuNzEtNi43MWExLjc1IDEuNzUgMCAwIDAtMi40OCAwWm0xLjcgMy4yNi4wNy0uMDlhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDIgMmMuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4LTIgMmEuNzUuNzUgMCAwIDEtMS4xMy0uOTdsLjA3LS4wOS43Mi0uNzJoLTEuNWMtLjY1IDAtMS4xOC41LTEuMjQgMS4xMmwtLjAxLjEzVjE1YS43NS43NSAwIDAgMS0xLjUuMXYtMy4zNWEyLjc1IDIuNzUgMCAwIDEgMi41OC0yLjc0aC4xN2wxLjUtLjAxLS43Mi0uNzJhLjc1Ljc1IDAgMCAxLS4wNy0uOTdsLjA3LS4wOS0uMDcuMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNod2FzaGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzaHdhc2hlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2MmgxNFY2YTMgMyAwIDAgMC0zLTNINlptOCAxNEg2LjkxYTEuNSAxLjUgMCAwIDAtLjkxLS45MXYtMS40M2EzLjUgMy41IDAgMCAwIDItMy4xNnYtMmMwLS4xNy0uMDMtLjM0LS4wOS0uNUgxN3Y1YTMgMyAwIDAgMS0zIDNaTTYuNzUgNi4yNWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaTTEwIDUuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVpNMi41IDlhLjUuNSAwIDAgMC0uNS41djJhMi41IDIuNSAwIDAgMCAyIDIuNDVWMTdoLS41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFINXYtMy4wNWEyLjUgMi41IDAgMCAwIDItMi40NXYtMmEuNS41IDAgMCAwLS41LS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzaHdhc2hlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNod2FzaGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2MmgxM3Y2YTIgMiAwIDAgMS0yIDJINnYuMDljLjQzLjE1Ljc2LjQ4LjkxLjkxSDE0YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZabTEwIDN2MUg0VjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJabS04LjUtLjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMi41IDBjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTIuNSA5YS41LjUgMCAwIDAtLjUuNXYyYTIuNSAyLjUgMCAwIDAgMiAyLjQ1VjE3aC0uNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDV2LTMuMDVhMi41IDIuNSAwIDAgMCAyLTIuNDV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc2h3YXNoZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNod2FzaGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNVY5SDNWNi4yNVptNS45OSA0LjI2LS4wMi0uMDFIMjF2Ny4yNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDguNDhBMS43NSAxLjc1IDAgMCAwIDcgMTkuNTJ2LTEuOWE0LjI1IDQuMjUgMCAwIDAgMi41LTMuODd2LTJjMC0uNDYtLjE4LS45LS41MS0xLjI0Wk05IDYuMjVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0zLjc1LS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41Wm0tMTAgNS41YS43NS43NSAwIDAgMC0uNzUuNzV2MmEzLjI1IDMuMjUgMCAwIDAgMi41IDMuMTZ2My41OWgtLjc1YS43NS43NSAwIDAgMCAwIDEuNWgzYS43NS43NSAwIDAgMCAwLTEuNUg2di0zLjU5YTMuMjUgMy4yNSAwIDAgMCAyLjUtMy4xNnYtMmEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc2h3YXNoZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzaHdhc2hlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1VjEwaDEuNXYtLjVoMTV2OC4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIN3YuMDJjLjc3LjEgMS4zNy43MSAxLjQ4IDEuNDhoOS4yN2MxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNMTkuNSA4aC0xNVY2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOFpNOSA2LjI1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMy43NS0uNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVpNMiAxMS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDVjLjQxIDAgLjc1LjM0Ljc1Ljc1djJBMy4yNSAzLjI1IDAgMCAxIDYgMTYuOTF2My41OWguNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMSAwLTEuNWguNzV2LTMuNTlBMy4yNSAzLjI1IDAgMCAxIDIgMTMuNzV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNod2FzaGVyMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzaHdhc2hlcjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMyA3LjVBNC41IDQuNSAwIDAgMSA3LjUgM2gxN0E0LjUgNC41IDAgMCAxIDI5IDcuNVYxMkgzVjcuNVptOC43NyA2LjczYTIuNTEgMi41MSAwIDAgMC0uMjctLjIzSDI5djEwLjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xNEEyLjUgMi41IDAgMCAwIDkgMjYuN3YtMmE2IDYgMCAwIDAgMy41LTUuNDVWMTZjMC0uNjYtLjI2LTEuMy0uNzMtMS43N1pNMTEuNSA4YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWk0xNyA3YTEgMSAwIDEgMCAwIDJoNWExIDEgMCAxIDAgMC0yaC01Wk0zIDE1YTEgMSAwIDAgMC0xIDF2My4yNWE0LjUgNC41IDAgMCAwIDMuNSA0LjM5VjI4SDVhMSAxIDAgMSAwIDAgMmgzYTEgMSAwIDEgMCAwLTJoLS41di00LjM2YTQuNSA0LjUgMCAwIDAgMy41LTQuMzlWMTZhMSAxIDAgMCAwLTEtMUgzWlwiXSk7XG5leHBvcnQgY29uc3QgRGlzaHdhc2hlcjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNod2FzaGVyMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMyA3LjVBNC41IDQuNSAwIDAgMSA3LjUgM2gxN0E0LjUgNC41IDAgMCAxIDI5IDcuNXYxN2E0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTE0YzAtLjgyLS40LTEuNTQtMS0yaDE1YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM0g1di41SDN2LTZabTI0IDBBMi41IDIuNSAwIDAgMCAyNC41IDVoLTE3QTIuNSAyLjUgMCAwIDAgNSA3LjVWMTFoMjJWNy41Wk0xMS41IDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaTTE2IDhhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDEgMSAwIDJoLTVhMSAxIDAgMCAxLTEtMVpNMyAxNWExIDEgMCAwIDAtMSAxdjMuMjVhNC41IDQuNSAwIDAgMCAzLjUgNC4zOVYyOEg1YTEgMSAwIDEgMCAwIDJoM2ExIDEgMCAxIDAgMC0yaC0uNXYtNC4zNmE0LjUgNC41IDAgMCAwIDMuNS00LjM5VjE2YTEgMSAwIDAgMC0xLTFIM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc2h3YXNoZXI0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNod2FzaGVyNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMiA2YTYgNiAwIDAgMC02IDZ2NS41aDM2VjEyYTYgNiAwIDAgMC02LTZIMTJabTMwIDE0SDE2LjI1YTMuMjUgMy4yNSAwIDAgMSAzLjI1IDMuMjV2NWE4Ljc1IDguNzUgMCAwIDEtNS41IDguMTN2My4yQTMuMjUgMy4yNSAwIDAgMSAxNi40MSA0MkgzNmE2IDYgMCAwIDAgNi02VjIwWm0tMjQtNy43NWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaTTI1LjI1IDExaDcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTcuNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVabS0yMCAxMUM0LjU2IDIyIDQgMjIuNTYgNCAyMy4yNXY1YzAgMy4zIDIuMzcgNi4wNSA1LjUgNi42M3Y2LjYySDguMjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDVhMS4yNSAxLjI1IDAgMSAwIDAtMi41SDEydi02LjYyYTYuNzUgNi43NSAwIDAgMCA1LjUtNi42M3YtNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgRGlzaHdhc2hlcjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNod2FzaGVyNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNiAxMi4yNUM2IDguOCA4LjggNiAxMi4yNSA2aDIzLjVDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXYyMy41QzQyIDM5LjIgMzkuMiA0MiAzNS43NSA0MkgxNi40MUEzLjI1IDMuMjUgMCAwIDAgMTQgMzkuNTl2LS4wOWgyMS43NWEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1VjE4LjVoLTMxVjIwSDZ2LTcuNzVabTMzLjUgMGEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yMy41YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzVWMTZoMzF2LTMuNzVabS0yMS41IDBhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm02IDBjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoNy41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtNy41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTUuMjUgMjJDNC41NiAyMiA0IDIyLjU2IDQgMjMuMjV2NWMwIDMuMyAyLjM3IDYuMDUgNS41IDYuNjN2Ni42Mkg4LjI1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUgxMnYtNi42MmE2Ljc1IDYuNzUgMCAwIDAgNS41LTYuNjN2LTVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3MxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzMTJGaWxsZWQnLCBcIjEyXCIsIFtcIm0xLjkgMi4wNS4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3TDYgNC45NGwyLjk3LTIuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkw3LjA2IDZsMi45NyAyLjk3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wN0w2IDcuMDZsLTIuOTcgMi45N2EuNzUuNzUgMCAxIDEtMS4wNi0xLjA2TDQuOTQgNiAxLjk3IDMuMDNhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOC0uMDcuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3MxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIm0yLjA5IDIuMjIuMDYtLjA3YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDZMNiA1LjI5bDMuMTUtMy4xNGEuNS41IDAgMSAxIC43LjdMNi43MSA2bDMuMTQgMy4xNWMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2TDYgNi43MSAyLjg1IDkuODVhLjUuNSAwIDAgMS0uNy0uN0w1LjI5IDYgMi4xNSAyLjg1YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3LS4wNi4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm0yLjQgMi41NS4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3TDggNi45NGw0LjQ3LTQuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkw5LjA2IDhsNC40NyA0LjQ3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wN0w4IDkuMDZsLTQuNDcgNC40N2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDYuOTQgOCAyLjQ3IDMuNTNhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOC0uMDcuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm0yLjU5IDIuNzIuMDYtLjA3YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDZMOCA3LjI5bDQuNjUtNC42NGEuNS41IDAgMCAxIC43LjdMOC43MSA4bDQuNjQgNC42NWMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2TDggOC43MWwtNC42NSA0LjY0YS41LjUgMCAwIDEtLjctLjdMNy4yOSA4IDIuNjUgMy4zNWEuNS41IDAgMCAxLS4wNi0uNjNsLjA2LS4wNy0uMDYuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMy45IDQuMDUuMDctLjA4YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wN0wxMCA4Ljk0bDQuOTctNC45N2EuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDdjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOEwxMS4wNiAxMGw0Ljk3IDQuOTdjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3TDEwIDExLjA2bC00Ljk3IDQuOTdhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wN2EuNzUuNzUgMCAwIDEtLjA3LS45OGwuMDctLjA4TDguOTQgMTAgMy45NyA1LjAzYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDgtLjA3LjA4WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtNC4wOSA0LjIyLjA2LS4wN2EuNS41IDAgMCAxIC42My0uMDZsLjA3LjA2TDEwIDkuMjlsNS4xNS01LjE0YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDZjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN0wxMC43MSAxMGw1LjE0IDUuMTVjLjE4LjE3LjIuNDQuMDYuNjNsLS4wNi4wN2EuNS41IDAgMCAxLS42My4wNmwtLjA3LS4wNkwxMCAxMC43MWwtNS4xNSA1LjE0YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3TDkuMjkgMTAgNC4xNSA0Ljg1YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3LS4wNi4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm00LjIxIDQuMzkuMDgtLjFhMSAxIDAgMCAxIDEuMzItLjA4bC4xLjA4TDEyIDEwLjZsNi4zLTYuM2ExIDEgMCAxIDEgMS40IDEuNDJMMTMuNDIgMTJsNi4zIDYuM2ExIDEgMCAwIDEgLjA4IDEuMzFsLS4wOC4xYTEgMSAwIDAgMS0xLjMyLjA4bC0uMS0uMDhMMTIgMTMuNGwtNi4zIDYuM2ExIDEgMCAwIDEtMS40LTEuNDJMMTAuNTggMTJsLTYuMy02LjNhMSAxIDAgMCAxLS4wOC0xLjMxbC4wOC0uMS0uMDguMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wibTQuNCA0LjU1LjA3LS4wOGEuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDdMMTIgMTAuOTRsNi40Ny02LjQ3YS43NS43NSAwIDEgMSAxLjA2IDEuMDZMMTMuMDYgMTJsNi40NyA2LjQ3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wN0wxMiAxMy4wNmwtNi40NyA2LjQ3YS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTAuOTQgMTIgNC40NyA1LjUzYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDgtLjA3LjA4WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3MyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIyLjMgNC4zYTEgMSAwIDEgMSAxLjQgMS40TDE1LjQyIDE0bDguMyA4LjNhMSAxIDAgMCAxLTEuNDIgMS40TDE0IDE1LjQybC04LjMgOC4zYTEgMSAwIDAgMS0xLjQtMS40MkwxMi41OCAxNGwtOC4zLTguM2ExIDEgMCAwIDEgMS40Mi0xLjRMMTQgMTIuNThsOC4zLTguM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3MyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzczI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIyLjQ3IDQuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkwxNS4wNiAxNGw4LjQ3IDguNDdhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwxNCAxNS4wNmwtOC40NyA4LjQ3YS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTIuOTQgMTQgNC40NyA1LjUzYS43NS43NSAwIDAgMSAxLjA2LTEuMDZMMTQgMTIuOTRsOC40Ny04LjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzczMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3MzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI2LjExIDQuMTJhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMS43NkwxNy43NyAxNiAyNy44OCAyNi4xYTEuMjUgMS4yNSAwIDEgMS0xLjc3IDEuNzdMMTYgMTcuNzcgNS44OCAyNy44OGExLjI1IDEuMjUgMCAxIDEtMS43Ni0xLjc3TDE0LjIzIDE2IDQuMTIgNS44OGExLjI1IDEuMjUgMCAxIDEgMS43Ni0xLjc2TDE2IDE0LjIzIDI2LjEgNC4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3MzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3MzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMjcuODUgNC44NWEuNS41IDAgMCAwLS43LS43TDE2IDE1LjI5IDQuODUgNC4xNWEuNS41IDAgMSAwLS43LjdMMTUuMjkgMTYgNC4xNSAyNy4xNWEuNS41IDAgMCAwIC43LjdMMTYgMTYuNzFsMTEuMTUgMTEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNi43MSAxNiAyNy44NSA0Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzczMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjYuMjkgNC4zYTEgMSAwIDEgMSAxLjQxIDEuNEwxNy40MSAxNmwxMC4zIDEwLjI5YTEgMSAwIDEgMS0xLjQyIDEuNDFsLTEwLjMtMTAuMjktMTAuMjggMTAuM2ExIDEgMCAwIDEtMS40Mi0xLjQybDEwLjMtMTAuM0w0LjI4IDUuNzJhMSAxIDAgMCAxIDEuNDItMS40MkwxNiAxNC42bDEwLjI5LTEwLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzczQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNOC41NiA2LjQ0YTEuNSAxLjUgMCAxIDAtMi4xMiAyLjEyTDIxLjg4IDI0IDYuNDQgMzkuNDRhMS41IDEuNSAwIDEgMCAyLjEyIDIuMTJMMjQgMjYuMTJsMTUuNDQgMTUuNDRhMS41IDEuNSAwIDEgMCAyLjEyLTIuMTJMMjYuMTIgMjQgNDEuNTYgOC41NmExLjUgMS41IDAgMSAwLTIuMTItMi4xMkwyNCAyMS44OCA4LjU2IDYuNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3M0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk04LjM4IDYuNjJhMS4yNSAxLjI1IDAgMSAwLTEuNzYgMS43NkwyMi4yMyAyNCA2LjYyIDM5LjYyYTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZMMjQgMjUuNzdsMTUuNjIgMTUuNjFhMS4yNSAxLjI1IDAgMSAwIDEuNzYtMS43NkwyNS43NyAyNCA0MS4zOCA4LjM4YTEuMjUgMS4yNSAwIDEgMC0xLjc2LTEuNzZMMjQgMjIuMjMgOC4zOCA2LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc0NpcmNsZTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NDaXJjbGUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYgMTFBNSA1IDAgMSAwIDYgMWE1IDUgMCAwIDAgMCAxMFptMS44NS02Ljg1Yy4yLjIuMi41IDAgLjdMNi43MSA2bDEuMTQgMS4xNWEuNS41IDAgMSAxLS43LjdMNiA2LjcxIDQuODUgNy44NWEuNS41IDAgMSAxLS43LS43TDUuMjkgNiA0LjE1IDQuODVhLjUuNSAwIDEgMSAuNy0uN0w2IDUuMjlsMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc0NpcmNsZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNy44NSA0LjE1Yy4yLjIuMi41IDAgLjdMNi43MSA2bDEuMTQgMS4xNWEuNS41IDAgMSAxLS43LjdMNiA2LjcxIDQuODUgNy44NWEuNS41IDAgMSAxLS43LS43TDUuMjkgNiA0LjE1IDQuODVhLjUuNSAwIDEgMSAuNy0uN0w2IDUuMjlsMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWk02IDFhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDYgMVpNMiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlpNNi41MyA1Ljg0YS41LjUgMCAwIDAtLjYzLjA2bC0uMDYuMDdhLjUuNSAwIDAgMCAuMDYuNjNMNy4zIDggNS45IDkuNGwtLjA2LjA3YS41LjUgMCAwIDAgLjA2LjYzbC4wNy4wNmMuMi4xNC40Ni4xMi42My0uMDZMOCA4LjdsMS40IDEuNC4wNy4wNmMuMi4xNC40Ni4xMi42My0uMDZsLjA2LS4wN2EuNS41IDAgMCAwLS4wNi0uNjNMOC43IDhsMS40LTEuNC4wNi0uMDdhLjUuNSAwIDAgMC0uMDYtLjYzbC0uMDctLjA2YS41LjUgMCAwIDAtLjYzLjA2TDggNy4zIDYuNiA1LjlsLS4wNy0uMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzQ2lyY2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NDaXJjbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA4IDNaTTUuODQgNS45N2wuMDYtLjA3YS41LjUgMCAwIDEgLjYzLS4wNmwuMDcuMDZMOCA3LjNsMS40LTEuNGEuNS41IDAgMCAxIC42My0uMDZsLjA3LjA2Yy4xOC4xNy4yLjQ0LjA2LjYzbC0uMDYuMDdMOC43IDhsMS40IDEuNGMuMTguMTcuMi40NC4wNi42M2wtLjA2LjA3YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2TDggOC43bC0xLjQgMS40YS41LjUgMCAwIDEtLjYzLjA2bC0uMDctLjA2YS41LjUgMCAwIDEtLjA2LS42M2wuMDYtLjA3TDcuMyA4IDUuOSA2LjZhLjUuNSAwIDAgMS0uMDYtLjYzbC4wNi0uMDctLjA2LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc0NpcmNsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NDaXJjbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZaTTcuOCA3LjExYS41LjUgMCAwIDAtLjYzLjA2bC0uMDYuMDdhLjUuNSAwIDAgMCAuMDYuNjRMOS4zIDEwbC0yLjEyIDIuMTItLjA2LjA3YS41LjUgMCAwIDAgLjA2LjY0bC4wNy4wNmMuMi4xMy40Ny4xMS42NC0uMDZMMTAgMTAuN2wyLjEyIDIuMTIuMDcuMDZjLjIuMTMuNDYuMTEuNjQtLjA2bC4wNi0uMDdhLjUuNSAwIDAgMC0uMDYtLjY0TDEwLjcgMTBsMi4xMi0yLjEyLjA2LS4wN2EuNS41IDAgMCAwLS4wNi0uNjRsLS4wNy0uMDZhLjUuNSAwIDAgMC0uNjQuMDZMMTAgOS4zIDcuODggNy4xN2wtLjA3LS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc0NpcmNsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTAgMWE3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFpNNy44IDcuMTFsLjA4LjA2TDEwIDkuM2wyLjEyLTIuMTJhLjUuNSAwIDAgMSAuNjQtLjA2bC4wNy4wNmMuMTcuMTguMi40NC4wNi42NGwtLjA2LjA3TDEwLjcgMTBsMi4xMiAyLjEyYy4xNy4xNy4yLjQ0LjA2LjY0bC0uMDYuMDdhLjUuNSAwIDAgMS0uNjQuMDZsLS4wNy0uMDZMMTAgMTAuN2wtMi4xMiAyLjEyYS41LjUgMCAwIDEtLjY0LjA2bC0uMDctLjA2YS41LjUgMCAwIDEtLjA2LS42NGwuMDYtLjA3TDkuMyAxMCA3LjE3IDcuODhhLjUuNSAwIDAgMS0uMDYtLjY0bC4wNi0uMDdhLjUuNSAwIDAgMSAuNjQtLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc0NpcmNsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NDaXJjbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0zLjUzIDYuNDctLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjg5LS4wMWwtLjA5LjA4TDEyIDEwLjk0IDkuNTMgOC40N2wtLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjg5LS4wMWwtLjA5LjA4LS4wNy4wOGMtLjIuMjYtLjIuNjItLjAxLjg5bC4wOC4wOUwxMC45NCAxMmwtMi40NyAyLjQ3LS4wNy4wOGMtLjIuMjYtLjIuNjItLjAxLjg5bC4wOC4wOS4wOC4wN2MuMjYuMi42Mi4yLjg5LjAxbC4wOS0uMDhMMTIgMTMuMDZsMi40NyAyLjQ3LjA4LjA3Yy4yNi4yLjYyLjIuODkuMDFsLjA5LS4wOC4wNy0uMDhjLjItLjI2LjItLjYyLjAxLS44OWwtLjA4LS4wOUwxMy4wNiAxMmwyLjQ3LTIuNDcuMDctLjA4Yy4yLS4yNi4yLS42Mi4wMS0uODlsLS4wOC0uMDktLjA4LS4wNy4wOC4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc0NpcmNsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wm0zLjQ1IDQuOS4wOC4wN2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4TDEzLjA2IDEybDIuNDcgMi40N2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4YS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDdMMTIgMTMuMDZsLTIuNDcgMi40N2EuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDhMMTAuOTQgMTIgOC40NyA5LjUzYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3TDEyIDEwLjk0bDIuNDctMi40N2EuNzUuNzUgMCAwIDEgLjk4LS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yNiAxNGExMiAxMiAwIDEgMC0yNCAwIDEyIDEyIDAgMCAwIDI0IDBabS03LjcyLTQuMjhjLjMuMy4zLjc3IDAgMS4wNkwxNS4wNiAxNGwzLjIyIDMuMjJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwxNCAxNS4wNmwtMy4yMiAzLjIyYS43NS43NSAwIDEgMS0xLjA2LTEuMDZMMTIuOTQgMTRsLTMuMjItMy4yMmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2TDE0IDEyLjk0bDMuMjItMy4yMmMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzQ2lyY2xlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NDaXJjbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xOC4yOCA5LjcyYy4zLjMuMy43NyAwIDEuMDZMMTUuMDYgMTRsMy4yMiAzLjIyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZMMTQgMTUuMDZsLTMuMjIgMy4yMmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2TDEyLjk0IDE0bC0zLjIyLTMuMjJhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkwxNCAxMi45NGwzLjIyLTMuMjJjLjMtLjMuNzctLjMgMS4wNiAwWk0yNiAxNGExMiAxMiAwIDEgMC0yNCAwIDEyIDEyIDAgMCAwIDI0IDBaTTMuNSAxNGExMC41IDEwLjUgMCAxIDEgMjEgMCAxMC41IDEwLjUgMCAwIDEtMjEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDE2YTE0IDE0IDAgMSAxIDI4IDAgMTQgMTQgMCAwIDEtMjggMFptMTkuNy01LjdhMSAxIDAgMCAwLTEuNCAwTDE2IDE0LjU4bC00LjMtNC4zYTEgMSAwIDEgMC0xLjQgMS40MkwxNC41OCAxNmwtNC4zIDQuM2ExIDEgMCAxIDAgMS40MiAxLjRMMTYgMTcuNDJsNC4zIDQuM2ExIDEgMCAwIDAgMS40LTEuNDJMMTcuNDIgMTZsNC4zLTQuM2ExIDEgMCAwIDAgMC0xLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzQ2lyY2xlMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlMzJMaWdodCcsIFwiMzJcIiwgW1wiTTEwLjE1IDEwLjE1YS41LjUgMCAwIDAgMCAuN0wxNS4yOSAxNmwtNS4xNCA1LjE1YS41LjUgMCAwIDAgLjcuN0wxNiAxNi43MWw1LjE1IDUuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNi43MSAxNmw1LjE0LTUuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNiAxNS4yOWwtNS4xNS01LjE0YS41LjUgMCAwIDAtLjcgMFpNMiAxNmExNCAxNCAwIDEgMSAyOCAwIDE0IDE0IDAgMCAxLTI4IDBaTTE2IDNhMTMgMTMgMCAxIDAgMCAyNiAxMyAxMyAwIDAgMCAwLTI2WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc0NpcmNsZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjEuNyAxMC4zYTEgMSAwIDAgMSAwIDEuNEwxNy40MiAxNmw0LjMgNC4zYTEgMSAwIDAgMS0xLjQyIDEuNEwxNiAxNy40MmwtNC4zIDQuM2ExIDEgMCAwIDEtMS40LTEuNDJMMTQuNTggMTZsLTQuMy00LjNhMSAxIDAgMSAxIDEuNDItMS40TDE2IDE0LjU4bDQuMy00LjNhMSAxIDAgMCAxIDEuNCAwWk0xNiAyYTE0IDE0IDAgMSAwIDAgMjggMTQgMTQgMCAwIDAgMC0yOFpNNCAxNmExMiAxMiAwIDEgMSAyNCAwIDEyIDEyIDAgMCAxLTI0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzQ2lyY2xlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc0NpcmNsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMCAxIDAtNDBabS02LjEyIDEyLjEyLS4xLS4xYTEuMjUgMS4yNSAwIDAgMC0xLjU2IDBsLS4xLjEtLjEuMWMtLjM2LjQ1LS4zNiAxLjEgMCAxLjU2bC4xLjFMMjIuMjMgMjRsLTYuMTEgNi4xMi0uMS4xYy0uMzYuNDUtLjM2IDEuMSAwIDEuNTZsLjEuMS4xLjFjLjQ1LjM2IDEuMS4zNiAxLjU2IDBsLjEtLjFMMjQgMjUuNzdsNi4xMiA2LjExLjEuMWMuNDUuMzYgMS4xLjM2IDEuNTYgMGwuMS0uMS4xLS4xYy4zNi0uNDUuMzYtMS4xIDAtMS41NmwtLjEtLjFMMjUuNzcgMjRsNi4xMS02LjEyLjEtLjFjLjM2LS40NS4zNi0xLjEgMC0xLjU2bC0uMS0uMS0uMS0uMWExLjI1IDEuMjUgMCAwIDAtMS41NiAwbC0uMS4xTDI0IDIyLjIzbC02LjEyLTYuMTEtLjEtLjEuMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc0NpcmNsZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzQ2lyY2xlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMCAxIDAtNDBabTAgMi41YTE3LjUgMTcuNSAwIDEgMCAwIDM1IDE3LjUgMTcuNSAwIDAgMCAwLTM1Wm0tNi4yMiA5LjUyLjEuMUwyNCAyMi4yM2w2LjEyLTYuMTFhMS4yNSAxLjI1IDAgMCAxIDEuNjYtLjFsLjEuMWMuNDYuNDUuNDkgMS4xNy4xIDEuNjZsLS4xLjFMMjUuNzcgMjRsNi4xMSA2LjEyYy40Ni40NS40OSAxLjE3LjEgMS42NmwtLjEuMWMtLjQ1LjQ2LTEuMTcuNDktMS42Ni4xbC0uMS0uMUwyNCAyNS43N2wtNi4xMiA2LjExYy0uNDUuNDYtMS4xNy40OS0xLjY2LjFsLS4xLS4xYTEuMjUgMS4yNSAwIDAgMS0uMS0xLjY2bC4xLS4xTDIyLjIzIDI0bC02LjExLTYuMTJhMS4yNSAxLjI1IDAgMCAxLS4xLTEuNjZsLjEtLjFhMS4yNSAxLjI1IDAgMCAxIDEuNjYtLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzU3F1YXJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1NxdWFyZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlptNC4xNSAxLjE1YS41LjUgMCAwIDAgMCAuN0w5LjI5IDEwbC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43TDEwIDEwLjcxbDIuMTUgMi4xNGEuNS41IDAgMCAwIC43LS43TDEwLjcxIDEwbDIuMTQtMi4xNWEuNS41IDAgMCAwLS43LS43TDEwIDkuMjkgNy44NSA3LjE1YS41LjUgMCAwIDAtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NTcXVhcmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1NxdWFyZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMTUgNy4xNWMuMi0uMi41LS4yLjcgMEwxMCA5LjI5bDIuMTUtMi4xNGEuNS41IDAgMCAxIC43LjdMMTAuNzEgMTBsMi4xNCAyLjE1YS41LjUgMCAwIDEtLjcuN0wxMCAxMC43MWwtMi4xNSAyLjE0YS41LjUgMCAwIDEtLjctLjdMOS4yOSAxMCA3LjE1IDcuODVhLjUuNSAwIDAgMSAwLS43Wk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc1NxdWFyZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NTcXVhcmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVptMS45NyA1LjIyYy4zLS4zLjc3LS4zIDEuMDYgMEwxMiAxMC45NGwyLjcyLTIuNzJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkwxMy4wNiAxMmwyLjcyIDIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNkwxMiAxMy4wNmwtMi43MiAyLjcyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTAuOTQgMTIgOC4yMiA5LjI4YS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzU3F1YXJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NTcXVhcmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjIyIDguMjJjLjMtLjMuNzctLjMgMS4wNiAwTDEyIDEwLjk0bDIuNzItMi43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2TDEzLjA2IDEybDIuNzIgMi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2TDEyIDEzLjA2bC0yLjcyIDIuNzJhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNkwxMC45NCAxMiA4LjIyIDkuMjhhLjc1Ljc1IDAgMCAxIDAtMS4wNlpNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djExLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc1NxdWFyZU11bHRpcGxlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGlzbWlzc1NxdWFyZU11bHRpcGxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0Wm0uNjUgMi42NWMuMi0uMi41LS4yLjcgMEw3IDYuMjlsMS42NS0xLjY0YS41LjUgMCAxIDEgLjcuN0w3LjcxIDdsMS42NCAxLjY1YS41LjUgMCAxIDEtLjcuN0w3IDcuNzEgNS4zNSA5LjM1YS41LjUgMCAxIDEtLjctLjdMNi4yOSA3IDQuNjUgNS4zNWEuNS41IDAgMCAxIDAtLjdaTTEzIDEwLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDMuMjdjLjM0LjYuOTkgMSAxLjczIDFoNS41YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY1YTIgMiAwIDAgMC0xLTEuNzN2Ny4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpc21pc3NTcXVhcmVNdWx0aXBsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzU3F1YXJlTXVsdGlwbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00LjY1IDQuNjVjLjItLjIuNS0uMi43IDBMNyA2LjI5bDEuNjUtMS42NGEuNS41IDAgMSAxIC43LjdMNy43MSA3bDEuNjQgMS42NWEuNS41IDAgMSAxLS43LjdMNyA3LjcxIDUuMzUgOS4zNWEuNS41IDAgMSAxLS43LS43TDYuMjkgNyA0LjY1IDUuMzVhLjUuNSAwIDAgMSAwLS43Wk00IDJhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0Wk0zIDRhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0Wm0xMC0uNzNjLjYuMzQgMSAuOTkgMSAxLjczdjUuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVINWEyIDIgMCAwIDEtMS43My0xaDcuMjNhMi41IDIuNSAwIDAgMCAyLjUtMi41VjMuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXNtaXNzU3F1YXJlTXVsdGlwbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXNtaXNzU3F1YXJlTXVsdGlwbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoN0EyLjUgMi41IDAgMCAxIDE1IDUuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDMgMTIuNXYtN1ptMy4xNS42NWEuNS41IDAgMCAwIDAgLjdMOC4yOSA5bC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43TDkgOS43MWwyLjE1IDIuMTRhLjUuNSAwIDAgMCAuNy0uN0w5LjcxIDlsMi4xNC0yLjE1YS41LjUgMCAwIDAtLjctLjdMOSA4LjI5IDYuODUgNi4xNWEuNS41IDAgMCAwLS43IDBaTTUuNSAxNmMuNDYuNiAxLjE4IDEgMiAxaDVhNC41IDQuNSAwIDAgMCA0LjUtNC41di01YzAtLjgyLS40LTEuNTQtMS0ydjdhMy41IDMuNSAwIDAgMS0zLjUgMy41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgRGlzbWlzc1NxdWFyZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rpc21pc3NTcXVhcmVNdWx0aXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoN0EyLjUgMi41IDAgMCAxIDE1IDUuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDMgMTIuNXYtN1pNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1ptMiAxM2EyLjUgMi41IDAgMCAxLTItMWg3YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtN2MuNi40NiAxIDEuMTggMSAydjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC01Wk02Ljg1IDYuMTVhLjUuNSAwIDEgMC0uNy43TDguMjkgOWwtMi4xNCAyLjE1YS41LjUgMCAwIDAgLjcuN0w5IDkuNzFsMi4xNSAyLjE0YS41LjUgMCAwIDAgLjctLjdMOS43MSA5bDIuMTQtMi4xNWEuNS41IDAgMCAwLS43LS43TDkgOC4yOSA2Ljg1IDYuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHkxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZlcnNpdHkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuMSAxLjU1YTEgMSAwIDAgMSAxLjggMGwyIDRBMSAxIDAgMCAxIDYgN0gyYTEgMSAwIDAgMS0uOS0xLjQ1bDItNFptMy4zNSAxMi4xOWEzIDMgMCAwIDAtNC4xOC00LjE4bDQuMTggNC4xOFptLS43MS43YTMgMyAwIDAgMS00LjE4LTQuMThsNC4xOCA0LjE4Wm01Ljc1LTUuM2ExIDEgMCAwIDEgMS4wMiAwbDIgMS4yYy4zLjE5LjQ5LjUxLjQ5Ljg2djEuNmExIDEgMCAwIDEtLjQ5Ljg2bC0yIDEuMmExIDEgMCAwIDEtMS4wMiAwbC0yLTEuMkExIDEgMCAwIDEgOSAxMi44di0xLjZhMSAxIDAgMCAxIC40OS0uODVsMi0xLjJaTTkgM2MwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMlYzWlwiXSk7XG5leHBvcnQgY29uc3QgRGl2ZXJzaXR5MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmVyc2l0eTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuMSAxLjU1YTEgMSAwIDAgMSAxLjggMGwyIDRBMSAxIDAgMCAxIDYgN0gyYTEgMSAwIDAgMS0uOS0xLjQ1bDItNFpNNiA2IDQgMiAyIDZoNFptLTIgOGEyIDIgMCAwIDEtMS43Mi0zLjAybDIuNzQgMi43NEEyIDIgMCAwIDEgNCAxNFptLTEuMDItMy43MmEyIDIgMCAwIDEgMi43NCAyLjc0bC0yLjc0LTIuNzRaTTQgMTVhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2Wm04LjUxLTUuODVhMSAxIDAgMCAwLTEuMDIgMGwtMiAxLjJhMSAxIDAgMCAwLS40OS44NXYxLjZhMSAxIDAgMCAwIC40OS44NmwyIDEuMmExIDEgMCAwIDAgMS4wMiAwbDItMS4yYTEgMSAwIDAgMCAuNDktLjg2di0xLjZhMSAxIDAgMCAwLS40OS0uODVsLTItMS4yWk0xMCAxMi44di0xLjZsMi0xLjIgMiAxLjJ2MS42TDEyIDE0bC0yLTEuMlpNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVYzWm0xLTJhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMmgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmVyc2l0eTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmVyc2l0eTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy43NCAxNi40NUEyLjk5IDIuOTkgMCAwIDEgNiAxN2EzIDMgMCAwIDEtMi40NS00Ljc0bDQuMTkgNC4xOVptNS45LTUuMzYtMi4yMyAxLjE1YS43NS43NSAwIDAgMC0uNDEuNjZ2Mi4yYzAgLjI4LjE2LjUzLjQxLjY2bDIuMjMgMS4xNWMuMjMuMTIuNS4xMi43MiAwbDIuMjMtMS4xNWEuNzUuNzUgMCAwIDAgLjQxLS42NnYtMi4yYS43NS43NSAwIDAgMC0uNDEtLjY2bC0yLjIzLTEuMTVhLjc5Ljc5IDAgMCAwLS43MiAwWm0tNS4yIDQuNjVBMi45OSAyLjk5IDAgMCAwIDkgMTRhMyAzIDAgMCAwLTQuNzQtMi40NWw0LjE5IDQuMTlaTTEzIDNhMiAyIDAgMCAwLTIgMnYyYzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMmgtMlptLTguMDkuNjdjLjQ1LS45IDEuNzMtLjkgMi4xOCAwbDEuNzggMy41NGMuNC44Mi0uMTggMS43OS0xLjEgMS43OUg0LjIzYy0uOSAwLTEuNS0uOTctMS4wOS0xLjc5bDEuNzgtMy41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmVyc2l0eTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZlcnNpdHkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMSA1YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMmEyIDIgMCAwIDEtMi0yVjVaTTQuOTEgMy42N2MuNDUtLjkgMS43My0uOSAyLjE4IDBsMS43OCAzLjU0Yy40LjgyLS4xOCAxLjc5LTEuMSAxLjc5SDQuMjNjLS45IDAtMS41LS45Ny0xLjA5LTEuNzlsMS43OC0zLjU0Wm0xLjI4LjQ1YS4yMS4yMSAwIDAgMC0uMzggMEw0LjAzIDcuNjZjLS4wOS4xNy4wNC4zNC4yLjM0aDMuNTVjLjE1IDAgLjI4LS4xNy4yLS4zNEw2LjE4IDQuMTJaTTkgMTRhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0tMSAwYTIgMiAwIDAgMC0zLjAyLTEuNzJsMi43NCAyLjc0QTIgMiAwIDAgMCA4IDE0Wm0tMiAyYTIgMiAwIDAgMCAxLjAyLS4yOGwtMi43NC0yLjc0QTIgMiAwIDAgMCA2IDE2Wm03LjY0LTQuOTFjLjIzLS4xMi41LS4xMi43MiAwbDIuMjMgMS4xNWMuMjUuMTMuNDEuMzguNDEuNjZ2Mi4yYzAgLjI4LS4xNi41My0uNDEuNjZsLTIuMjMgMS4xNWEuNzkuNzkgMCAwIDEtLjcyIDBsLTIuMjMtMS4xNWEuNzUuNzUgMCAwIDEtLjQxLS42NnYtMi4yYzAtLjI4LjE2LS41My40MS0uNjZsMi4yMy0xLjE1Wk0xMiAxMy4wNnYxLjg4bDIgMS4wMyAyLTEuMDN2LTEuODhsLTItMS4wMy0yIDEuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZlcnNpdHkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2IDNhMyAzIDAgMCAwLTMgM3YyYTMgMyAwIDAgMCAzIDNoMmEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM2gtMlptLTEwLjQ1LjljLjYtMS4yIDIuMy0xLjIgMi45IDBsMi4zNyA0LjcxQTEuNjQgMS42NCAwIDAgMSA5LjM3IDExSDQuNjNjLTEuMjIgMC0yLTEuMy0xLjQ1LTIuMzlMNS41NSAzLjlabTUuMzggMTMuODZjLS4xLjU0LS4zMiAxLjA1LS42MiAxLjQ5bC01LjU2LTUuNTZBMy45OCAzLjk4IDAgMCAxIDcgMTNhNCA0IDAgMCAxIDMuOTMgNC43NXYuMDFabS0zLjI0IDMuMThhNCA0IDAgMCAxLTQuNjItNC42OXYtLjAxYy4xLS41NC4zMi0xLjA1LjYyLTEuNDlsNS41NiA1LjU2YTMuOTggMy45OCAwIDAgMS0xLjU2LjYzWm04LjgzLTcuODJjLjMtLjE2LjY2LS4xNi45NiAwbDIuOTcgMS41M2ExIDEgMCAwIDEgLjU1Ljg5djIuOTJhMSAxIDAgMCAxLS41NS44OWwtMi45NyAxLjUzYy0uMy4xNi0uNjYuMTYtLjk2IDBsLTIuOTctMS41M2ExIDEgMCAwIDEtLjU1LS44OXYtMi45MmExIDEgMCAwIDEgLjU1LS44OWwyLjk3LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2ZXJzaXR5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMgNmEzIDMgMCAwIDEgMy0zaDJhMyAzIDAgMCAxIDMgM3YyYTMgMyAwIDAgMS0zIDNoLTJhMyAzIDAgMCAxLTMtM1Y2Wk01LjU1IDMuOWMuNi0xLjIgMi4zLTEuMiAyLjkgMGwyLjM3IDQuNzFBMS42NCAxLjY0IDAgMCAxIDkuMzcgMTFINC42M2MtMS4yMiAwLTItMS4zLTEuNDUtMi4zOUw1LjU1IDMuOVptMS4zOS42MmMtLjAxIDAtLjAzLjAxLS4wNS4wNUw0LjUyIDkuM2EuMTQuMTQgMCAwIDAtLjAyLjA3LjE2LjE2IDAgMCAwIC4wNy4xMy4xLjEgMCAwIDAgLjA2LjAxaDQuNzRhLjEuMSAwIDAgMCAuMDYtLjAxbC4wNS0uMDVhLjE2LjE2IDAgMCAwIC4wMi0uMDhjMC0uMDEgMC0uMDQtLjAyLS4wN0w3LjExIDQuNTdjLS4wMi0uMDQtLjA0LS4wNS0uMDUtLjA1QS4xMy4xMyAwIDAgMCA3IDQuNWMtLjAzIDAtLjA1IDAtLjA2LjAyWk0xMSAxN2E0IDQgMCAxIDEtOCAwIDQgNCAwIDAgMSA4IDBabS0xLjUgMGEyLjUgMi41IDAgMCAwLTMuNjYtMi4yMmwzLjM4IDMuMzhjLjE4LS4zNS4yOC0uNzQuMjgtMS4xNlpNNyAxOS41Yy40MiAwIC44MS0uMSAxLjE2LS4yOGwtMy4zOC0zLjM4QTIuNSAyLjUgMCAwIDAgNyAxOS41Wm05LjUyLTYuMzhjLjMtLjE2LjY2LS4xNi45NiAwbDIuOTcgMS41M2ExIDEgMCAwIDEgLjU1Ljg5djIuOTJhMSAxIDAgMCAxLS41NS44OWwtMi45NyAxLjUzYy0uMy4xNi0uNjYuMTYtLjk2IDBsLTIuOTctMS41M2ExIDEgMCAwIDEtLjU1LS44OXYtMi45MmExIDEgMCAwIDEgLjU1LS44OWwyLjk3LTEuNTNabS0yLjAyIDIuNzN2Mi4zbDIuNSAxLjMgMi41LTEuM3YtMi4zbC0yLjUtMS4zLTIuNSAxLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHkyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZlcnNpdHkyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4IDNhMyAzIDAgMCAwLTMgM3Y0YTMgMyAwIDAgMCAzIDNoNGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM2gtNFpNNi4xOSA0LjEyYTIuMDIgMi4wMiAwIDAgMSAzLjYyIDBsMi45NyA1LjlBMi4wNSAyLjA1IDAgMCAxIDEwLjk2IDEzSDUuMDRhMi4wNSAyLjA1IDAgMCAxLTEuODItMi45OGwyLjk3LTUuOVpNMy45NiAxNy4wNmMuNC0uNTYuOTMtMS4wMyAxLjUzLTEuMzhsNi41IDcuMzJjLS40LjU0LS45IDEtMS40OSAxLjMzbC02LjU0LTcuMjdaTTMgMjBhNSA1IDAgMCAxIC4yMy0xLjUxTDkgMjQuOUE1LjAyIDUuMDIgMCAwIDEgMyAyMFptMTAgMGE1IDUgMCAwIDEtLjI2IDEuNThMNi45OCAxNS4xYTUuMDIgNS4wMiAwIDAgMSA2IDQuNXYuMDJjLjAyLjEyLjAyLjI1LjAyLjM4Wm03Ljk1LTQuNzZhMi4wNSAyLjA1IDAgMCAwLTEuOSAwbC0zIDEuNTdjLS42NS4zNC0xLjA1IDEtMS4wNSAxLjczdjIuOTJjMCAuNzIuNCAxLjM5IDEuMDUgMS43M2wzIDEuNTdjLjYuMzIgMS4zLjMyIDEuOSAwbDMtMS41N2MuNjUtLjM0IDEuMDUtMSAxLjA1LTEuNzN2LTIuOTJjMC0uNzItLjQtMS4zOS0xLjA1LTEuNzNsLTMtMS41N1pcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmVyc2l0eTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZlcnNpdHkyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xOCAzYTMgMyAwIDAgMC0zIDN2NGEzIDMgMCAwIDAgMyAzaDRhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNoLTRaTTkuODEgNC4xMmEyLjAyIDIuMDIgMCAwIDAtMy42MiAwbC0yLjk3IDUuOUEyLjA1IDIuMDUgMCAwIDAgNS4wNCAxM2g1LjkyYzEuNTIgMCAyLjUtMS42MiAxLjgyLTIuOThMOS44IDQuMTJabS0yLjI4LjY4Yy4yLS40Ljc0LS40Ljk0IDBsMi45NyA1LjljLjIuMzgtLjEuOC0uNDguOEg1LjA0YS41NS41NSAwIDAgMS0uNDgtLjhsMi45Ny01LjlaTTMgMjBhNC45OCA0Ljk4IDAgMCAxIDUtNSA1IDUgMCAxIDEtNSA1Wm04LjQ1LjYyQTMuNTIgMy41MiAwIDAgMCA4IDE2LjVjLS4yMSAwLS40Mi4wMi0uNjIuMDVsNC4wNyA0LjA3Wm0tLjY1IDEuNDgtNC45LTQuOWMtLjI4LjItLjUzLjQ2LS43NC43NWw0LjkgNC44OWMuMjgtLjIxLjUzLS40Ni43NC0uNzRaTTggMjMuNWMuMTkgMCAuMzctLjAxLjU1LS4wNGwtNC00LjAxQTMuNSAzLjUgMCAwIDAgOCAyMy41Wm0xMS4wNS04LjI2Yy42LS4zMiAxLjMtLjMyIDEuOSAwbDMgMS41N2MuNjUuMzQgMS4wNSAxIDEuMDUgMS43M3YyLjkyYzAgLjcyLS40IDEuMzktMS4wNSAxLjczbC0zIDEuNTdjLS42LjMyLTEuMy4zMi0xLjkgMGwtMy0xLjU3Yy0uNjUtLjM0LTEuMDUtMS0xLjA1LTEuNzN2LTIuOTJjMC0uNzIuNC0xLjM5IDEuMDUtMS43M2wzLTEuNTdabTEuMiAxLjMyYS41NS41NSAwIDAgMC0uNSAwbC0zIDEuNThhLjQ1LjQ1IDAgMCAwLS4yNS40djIuOTJjMCAuMTUuMDguMzEuMjUuNGwzIDEuNThjLjE1LjA4LjM1LjA4LjUgMGwzLTEuNThhLjQ1LjQ1IDAgMCAwIC4yNS0uNHYtMi45MmMwLS4xNS0uMDgtLjMxLS4yNS0uNGwtMy0xLjU4WlwiXSk7XG5leHBvcnQgY29uc3QgRGl2ZXJzaXR5NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2ZXJzaXR5NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0zMSA2YTUgNSAwIDAgMC01IDV2NmE1IDUgMCAwIDAgNSA1aDZhNSA1IDAgMCAwIDUtNXYtNmE1IDUgMCAwIDAtNS01aC02Wk0xNi45IDcuOGEzLjI0IDMuMjQgMCAwIDAtNS44IDBsLTQuNzQgOS40M0EzLjI4IDMuMjggMCAwIDAgOS4yNiAyMmg5LjQ5YzIuNDMgMCA0LTIuNTkgMi45LTQuNzdMMTYuOSA3LjhaTTguNzcgMjcuOTRhOC4wNCA4LjA0IDAgMCAwLTEuNDMgMS42M2wuMDQuMDUgMTEuMDUgMTEuMDRjLjgtLjUzIDEuNS0xLjIgMi4wNS0xLjk3TDkuNTYgMjcuMzRhNy43NiA3Ljc2IDAgMCAwLS43OS42Wm0zLjIxLTEuNjggOS42OCAxMC4wNWE4IDggMCAwIDAtOS42OC0xMC4wNVptNCAxNS41LTkuNzMtOS43NGE4LjAyIDguMDIgMCAwIDAgOS43MyA5LjczWm0yMC0xNS4yNmE0LjIyIDQuMjIgMCAwIDAtMy45NyAwbC0zLjkgMi4wOEEzLjk1IDMuOTUgMCAwIDAgMjYgMzIuMDZ2My44OGMwIDEuNDUuODEgMi43OCAyLjEyIDMuNDhsMy45IDIuMDhjMS4yMy42NyAyLjczLjY3IDMuOTcgMGwzLjktMi4wOEEzLjk1IDMuOTUgMCAwIDAgNDIgMzUuOTR2LTMuODhjMC0xLjQ1LS44MS0yLjc4LTIuMTItMy40OGwtMy45LTIuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZlcnNpdHk0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2ZXJzaXR5NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTAuNzggMjkuNTRjLS40OC4zNS0uOS43Ni0xLjI0IDEuMjRsNy42OCA3LjY4Yy40OC0uMzUuOS0uNzYgMS4yNC0xLjI0bC03LjY4LTcuNjhabTguNjggNS4xNWE1LjUgNS41IDAgMCAwLTYuMTUtNi4xNWw2LjE1IDYuMTVabS00Ljc3IDQuNzdMOC41NCAzMy4zYTUuNSA1LjUgMCAwIDAgNi4xNSA2LjE1Wm0tLjAyLTMwLjUyIDQuNzUgOS40M2MuMjUuNS0uMTEgMS4xLS42NyAxLjFIOS4yNmEuNzYuNzYgMCAwIDEtLjY3LTEuMWw0Ljc1LTkuNDNhLjc1Ljc1IDAgMCAxIDEuMzMgMFpNMzguNyAzMC44Yy41Mi4yNy44Ljc3LjggMS4yN3YzLjg4YzAgLjUtLjI4IDEtLjggMS4yN2wtMy45IDIuMDljLS41LjI3LTEuMS4yNy0xLjYgMGwtMy45LTIuMDljLS41Mi0uMjctLjgtLjc3LS44LTEuMjd2LTMuODhjMC0uNS4yOC0xIC44LTEuMjdsMy45LTIuMDljLjUtLjI3IDEuMS0uMjcgMS42IDBsMy45IDIuMDlabS0yMS44LTIzYTMuMjQgMy4yNCAwIDAgMC01LjggMGwtNC43NCA5LjQ0QTMuMjggMy4yOCAwIDAgMCA5LjI2IDIyaDkuNDljMi40MyAwIDQtMi41OSAyLjktNC43N0wxNi45IDcuOFpNMzEgNmE1IDUgMCAwIDAtNSA1djZhNSA1IDAgMCAwIDUgNWg2YTUgNSAwIDAgMCA1LTV2LTZhNSA1IDAgMCAwLTUtNWgtNlptLTkgMjhhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabTEzLjk5LTcuNWE0LjIyIDQuMjIgMCAwIDAtMy45OCAwbC0zLjkgMi4wOEEzLjk1IDMuOTUgMCAwIDAgMjYgMzIuMDZ2My44OGMwIDEuNDUuODEgMi43OCAyLjEyIDMuNDhsMy45IDIuMDhjMS4yMy42NyAyLjczLjY3IDMuOTcgMGwzLjktMi4wOEEzLjk1IDMuOTUgMCAwIDAgNDIgMzUuOTR2LTMuODhjMC0xLjQ1LS44MS0yLjc4LTIuMTItMy40OGwtMy45LTIuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyU2hvcnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZpZGVyU2hvcnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcuNzUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2OC41YS43NS43NSAwIDAgMS0xLjUgMHYtOC41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyU2hvcnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2aWRlclNob3J0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy41IDNjLjI4IDAgLjUuMjIuNS41djlhLjUuNSAwIDAgMS0xIDB2LTljMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmlkZXJTaG9ydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmlkZXJTaG9ydDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS43NSAzYy40MSAwIC43NS4zNC43NS43NXYxMi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyU2hvcnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2aWRlclNob3J0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS41IDNjLjI4IDAgLjUuMjIuNS41djEzYS41LjUgMCAwIDEtMSAwdi0xM2MwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGl2aWRlclNob3J0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2aWRlclNob3J0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMSA1djE0YTEgMSAwIDEgMCAyIDBWNWExIDEgMCAxIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRGl2aWRlclNob3J0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmlkZXJTaG9ydDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjI1IDQuNzV2MTQuNWEuNzUuNzUgMCAwIDAgMS41IDBWNC43NWEuNzUuNzUgMCAwIDAtMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyVGFsbDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmlkZXJUYWxsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03Ljc1IDFjLjQxIDAgLjc1LjM0Ljc1Ljc1djEyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjEuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmlkZXJUYWxsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RpdmlkZXJUYWxsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy41IDFjLjI4IDAgLjUuMjIuNS41djEzYS41LjUgMCAwIDEtMSAwdi0xM2MwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRGl2aWRlclRhbGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZpZGVyVGFsbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS43NSAxYy40MSAwIC43NS4zNC43NS43NXYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYxLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyVGFsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZpZGVyVGFsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuNSAxYy4yOCAwIC41LjIyLjUuNXYxN2EuNS41IDAgMCAxLTEgMHYtMTdjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERpdmlkZXJUYWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRGl2aWRlclRhbGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTExIDN2MThhMSAxIDAgMSAwIDIgMFYzYTEgMSAwIDEgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEaXZpZGVyVGFsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEaXZpZGVyVGFsbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjI1IDIuNzV2MTguNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NWEuNzUuNzUgMCAwIDAtMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNTMgMy4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMS4yMi0xLjIydjYuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTZsMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVaTTMuNSAxMC41YTEgMSAwIDAgMSAxLTFoMi43NWEuNzUuNzUgMCAwIDAgMC0xLjVINC41QTIuNSAyLjUgMCAwIDAgMiAxMC41djNBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0zQTIuNSAyLjUgMCAwIDAgMTUuNSA4aC0yLjc1YS43NS43NSAwIDAgMCAwIDEuNWgyLjc1YTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAwIDEtMSAxaC0xMWExIDEgMCAwIDEtMS0xdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuMzUgMy4xNWEuNS41IDAgMCAwLS43IDBsLTMgM2EuNS41IDAgMSAwIC43LjdMOS41IDQuNzF2Ny43OWEuNS41IDAgMCAwIDEgMFY0LjdsMi4xNSAyLjE1YS41LjUgMCAwIDAgLjctLjdsLTMtM1pNMyAxMC41QzMgOS42NyAzLjY3IDkgNC41IDloM2EuNS41IDAgMCAwIDAtMWgtM0EyLjUgMi41IDAgMCAwIDIgMTAuNXYzQTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtM0EyLjUgMi41IDAgMCAwIDE1LjUgOGgtM2EuNS41IDAgMCAwIDAgMWgzYy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgMTMuNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2NrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMi43IDMuM2ExIDEgMCAwIDAtMS40IDBMNy44IDYuOGExIDEgMCAwIDAgMS40IDEuNEwxMSA2LjQyVjE1YTEgMSAwIDEgMCAyIDBWNi40MWwxLjggMS44YTEgMSAwIDEgMCAxLjQtMS40MmwtMy41LTMuNVpNNCAxMi43NGMwLS40MS4zNC0uNzUuNzUtLjc1SDlhMSAxIDAgMSAwIDAtMkg0Ljc1QTIuNzUgMi43NSAwIDAgMCAyIDEyLjc1djQuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAyMGgxNC41QTIuNzUgMi43NSAwIDAgMCAyMiAxNy4yNXYtNC41QTIuNzUgMi43NSAwIDAgMCAxOS4yNSAxMEgxNWExIDEgMCAxIDAgMCAyaDQuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djQuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDQuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuOCAxMGg0LjdhLjc1Ljc1IDAgMCAxIC4xIDEuNDlINC44Yy0uNjggMC0xLjIuNDYtMS4yNyAxdi4xMmwtLjAzIDQuNzhjMCAuNTYuNDkgMS4wNCAxLjE0IDEuMUgxOS4yM2MuNjcgMCAxLjItLjQ0IDEuMjYtMWwuMDEtLjEuMDItNC43OGMwLS41Ni0uNDktMS4wNS0xLjE0LTEuMWwtLjEzLS4wMWgtNC43YS43NS43NSAwIDAgMS0uMS0xLjVoNC44YTIuNyAyLjcgMCAwIDEgMi43NyAyLjQ0di4xN0wyMiAxNy4zOWMwIDEuNC0xLjE2IDIuNTItMi42IDIuNkg0Ljc3YTIuNyAyLjcgMCAwIDEtMi43Ni0yLjQ0TDIgMTcuMzhsLjAyLTQuNzdjMC0xLjQgMS4xNi0yLjUyIDIuNi0yLjZsLjE3LS4wMWg0LjctNC43Wm03LjY1LTYuODUuMDguMDcgMy45MyAzLjkyYS43NS43NSAwIDAgMS0uOTggMS4xNGwtLjA5LS4wNy0yLjY1LTIuNjZ2OS43YS43NS43NSAwIDAgMS0xLjUgMFY1LjU3TDguNjEgOC4yYS43NS43NSAwIDAgMS0uOTguMDdsLS4wOS0uMDdhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOSAzLjkzLTMuOTJhLjc1Ljc1IDAgMCAxIC45OC0uMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2NrUm93MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9ja1JvdzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA0Yy0uODMgMC0xLjUuNjctMS41IDEuNXYyQzEuNSA4LjMzIDIuMTcgOSAzIDloMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJDNi41IDQuNjcgNS44MyA0IDUgNEgzWm0wIDZjLS44MyAwLTEuNS42Ny0xLjUgMS41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDNabTQuNS00LjVDNy41IDQuNjcgOC4xNyA0IDkgNGgyYy44MyAwIDEuNS42NyAxLjUgMS41djJjMCAuODMtLjY3IDEuNS0xLjUgMS41SDlhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWk05IDEwYy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5Wm00LjUtNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWk0xNSAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2NrUm93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY2tSb3cyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDRjLS44MyAwLTEuNS42Ny0xLjUgMS41djJDMS41IDguMzMgMi4xNyA5IDMgOWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMkM2LjUgNC42NyA1LjgzIDQgNSA0SDNabS0uNSAxLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyQS41LjUgMCAwIDEgNSA4SDNhLjUuNSAwIDAgMS0uNS0uNXYtMlpNMyAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIM1ptLS41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNXYtMlptNS02QzcuNSA0LjY3IDguMTcgNCA5IDRoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNUg5YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMlpNOSA1YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtMkEuNS41IDAgMCAwIDExIDVIOVptMCA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5Wm0tLjUgMS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVIOWEuNS41IDAgMCAxLS41LS41di0yWm01LTZjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTJaTTE1IDVhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di0yQS41LjUgMCAwIDAgMTcgNWgtMlptMCA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlptLS41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2NrUm93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9ja1JvdzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjAuMjUgMTIuMDNjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjVabS0xNCAwYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTIuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0yLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi41Wm03IDBjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjVabTAtN2MuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0yLjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMi41YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDIuNVptNyAwYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTIuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0yLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi41Wm0tMTQgMEM3LjIyIDUuMDMgOCA1LjggOCA2Ljc4djIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTIuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0yLjVjMC0uOTIuNy0xLjY3IDEuNi0xLjc0bC4xNS0uMDFoMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9ja1JvdzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2NrUm93MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAuMjUgMTJjLjk3IDAgMS43NS43OCAxLjc1IDEuNzR2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNWMwLS45Ni43OC0xLjc1IDEuNzUtMS43NWgyLjVabS0xNCAwYy45NyAwIDEuNzUuNzggMS43NSAxLjc0djIuNUM4IDE3LjIxIDcuMjIgMTggNi4yNSAxOGgtMi41QzIuNzggMTggMiAxNy4yMSAyIDE2LjI0di0yLjVjMC0uOTYuNzgtMS43NSAxLjc1LTEuNzVoMi41Wm03IDBjLjk3IDAgMS43NS43OCAxLjc1IDEuNzR2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41QzkuNzggMTggOSAxNy4yMSA5IDE2LjI0di0yLjVjMC0uOTYuNzgtMS43NSAxLjc1LTEuNzVoMi41Wm03IDEuNWgtMi41YS4yNS4yNSAwIDAgMC0uMjUuMjR2Mi41YzAgLjE0LjExLjI1LjI1LjI1aDIuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtMi41YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wm0tMTQgMGgtMi41YS4yNS4yNSAwIDAgMC0uMjUuMjR2Mi41YzAgLjE0LjExLjI1LjI1LjI1aDIuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtMi41YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wm03IDBoLTIuNWEuMjUuMjUgMCAwIDAtLjI1LjI0djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgyLjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTIuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptMC04LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzR2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41QzkuNzggMTEgOSAxMC4yMSA5IDkuMjR2LTIuNUM5IDUuNzggOS43OCA1IDEwLjc1IDVoMi41Wm03IDBjLjk3IDAgMS43NS43OCAxLjc1IDEuNzR2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNWMwLS45Ni43OC0xLjc1IDEuNzUtMS43NWgyLjVabS0xNCAwQzcuMjIgNSA4IDUuNzcgOCA2LjczdjIuNUM4IDEwLjIxIDcuMjIgMTEgNi4yNSAxMWgtMi41QzIuNzggMTEgMiAxMC4yMSAyIDkuMjR2LTIuNWMwLS45Mi43LTEuNjcgMS42LTEuNzRoMi42NVptNyAxLjVoLTIuNWEuMjUuMjUgMCAwIDAtLjI1LjI0djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgyLjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTIuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptNyAwaC0yLjVhLjI1LjI1IDAgMCAwLS4yNS4yNHYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMi41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVabS0xNCAwSDMuNjlhLjI1LjI1IDAgMCAwLS4xOS4yNHYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMi41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3IxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N0b3IxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTUgMmExIDEgMCAwIDAtMSAxdjFIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxdjFhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTFWOGgxYTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xSDhWM2ExIDEgMCAwIDAtMS0xSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3IxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdG9yMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNCAzYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjFoMWExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg4djFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWOEgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDFWM1ptMyAwSDV2MS41YS41LjUgMCAwIDEtLjUuNUgzdjJoMS41Yy4yOCAwIC41LjIyLjUuNVY5aDJWNy41YzAtLjI4LjIyLS41LjUtLjVIOVY1SDcuNWEuNS41IDAgMCAxLS41LS41VjNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3IxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N0b3IxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNSAxLjc3Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxLjc1SDMuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWOS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDV2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41VjExaDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41SDExVjMuMjdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdG9yMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3RvcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYuNSAyLjc3YS41LjUgMCAwIDAtLjUuNXYyLjI1YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAwLS41LjVWOS41YzAgLjI4LjIyLjUuNS41aDJjLjI4IDAgLjUuMjIuNS41djJjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMS0uNS0uNVYzLjI3YS41LjUgMCAwIDAtLjUtLjVoLTNabS0xLjUuNWMwLS44My42Ny0xLjUgMS41LTEuNWgzYy44MyAwIDEuNS42NyAxLjUgMS41VjVoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExdjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTNBMS41IDEuNSAwIDAgMSA1IDEyLjVWMTFIMy41QTEuNSAxLjUgMCAwIDEgMiA5LjVWNi41MmMwLS44My42Ny0xLjUgMS41LTEuNUg1VjMuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3IyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N0b3IyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAzQzcuNjcgMyA3IDMuNjcgNyA0LjVWN0g0LjVDMy42NyA3IDMgNy42NyAzIDguNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzaDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEzVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N0b3IyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdG9yMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDRhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDNjLjI4IDAgLjUuMjIuNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zWk03IDQuNUM3IDMuNjcgNy42NyAzIDguNSAzaDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWN2gyLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2M2MwIC44My0uNjcgMS41LTEuNSAxLjVIMTN2Mi41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDcgMTUuNVYxM0g0LjVBMS41IDEuNSAwIDAgMSAzIDExLjV2LTNDMyA3LjY3IDMuNjcgNyA0LjUgN0g3VjQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3RvcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3RvcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAgMy4yNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2My4yNUg1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY0YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuMjVWMTljMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNGMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTMuMjVIMTljLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMy4yNVY1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3RvcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N0b3IyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05Ljc1IDQuNWEuMjUuMjUgMCAwIDAtLjI1LjI1djRjMCAuNDEtLjM0Ljc1LS43NS43NWgtNGEuMjUuMjUgMCAwIDAtLjI1LjI1djQuNWMwIC4xNC4xMS4yNS4yNS4yNWg0Yy40MSAwIC43NS4zNC43NS43NXY0YzAgLjE0LjExLjI1LjI1LjI1aDQuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtNGMwLS40MS4zNC0uNzUuNzUtLjc1aDRjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTQuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtNGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNGEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtNC41Wk04IDQuNzVDOCAzLjc4IDguNzggMyA5Ljc1IDNoNC41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjhoMy4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDE2djMuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDOC43OCAyMSA4IDIwLjIyIDggMTkuMjVWMTZINC43NUMzLjc4IDE2IDMgMTUuMjIgMyAxNC4yNXYtNC41QzMgOC43OCAzLjc4IDggNC43NSA4SDhWNC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3RvcjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3RvcjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTAuNzUgM0M5Ljc4IDMgOSAzLjc4IDkgNC43NVY5SDQuNzVDMy43OCA5IDMgOS43OCAzIDEwLjc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg5djQuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxOWg0LjI1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNi41QzI1IDkuNzggMjQuMjIgOSAyMy4yNSA5SDE5VjQuNzVDMTkgMy43OCAxOC4yMiAzIDE3LjI1IDNoLTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3RvcjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N0b3IyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC43NSA0LjVhLjI1LjI1IDAgMCAwLS4yNS4yNXY1YzAgLjQxLS4zNC43NS0uNzUuNzVoLTVhLjI1LjI1IDAgMCAwLS4yNS4yNXY2LjVjMCAuMTQuMTEuMjUuMjUuMjVoNWMuNDEgMCAuNzUuMzQuNzUuNzV2NWMwIC4xNC4xMS4yNS4yNS4yNWg2LjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di02LjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTYuNVpNOSA0Ljc1QzkgMy43OCA5Ljc4IDMgMTAuNzUgM2g2LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOWg0LjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djYuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMTl2NC4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTYuNUM5Ljc4IDI1IDkgMjQuMjIgOSAyMy4yNVYxOUg0Ljc1QzMuNzggMTkgMyAxOC4yMiAzIDE3LjI1di02LjVDMyA5Ljc4IDMuNzggOSA0Ljc1IDlIOVY0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdG9yNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdG9yNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xOC4yNSA2QzE3LjAxIDYgMTYgNyAxNiA4LjI1VjE2SDguMjVDNy4wMSAxNiA2IDE3IDYgMTguMjV2MTEuNUM2IDMwLjk5IDcgMzIgOC4yNSAzMkgxNnY3Ljc1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDExLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWMzJoNy43NWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMTEuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgzMlY4LjI1QzMyIDcuMDEgMzEgNiAyOS43NSA2aC0xMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdG9yNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3RvcjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTE4LjUgOC41djguNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDguNXYxMWg4Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djguNzVoMTF2LTguNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoOC43NXYtMTFoLTguNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY4LjVoLTExWk0xNiA4LjI1QzE2IDcuMDEgMTcgNiAxOC4yNSA2aDExLjVDMzAuOTkgNiAzMiA3IDMyIDguMjVWMTZoNy43NWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYxMS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDMydjcuNzVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTExLjVDMTcuMDEgNDIgMTYgNDEgMTYgMzkuNzVWMzJIOC4yNUM3LjAxIDMyIDYgMzEgNiAyOS43NXYtMTEuNUM2IDE3LjAxIDcgMTYgOC4yNSAxNkgxNlY4LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnQxMDAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDEwMDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxdjMuNUM4IDUuMzMgOC42NyA2IDkuNSA2SDEzdjcuNWMwIC44My0uNjcgMS41LTEuNSAxLjUuMzEtLjQyLjUtLjk0LjUtMS41di0yQTIuNSAyLjUgMCAwIDAgNy41IDEwYTIuNSAyLjUgMCAwIDAtMy43OC0uMjUgMS42NiAxLjY2IDAgMCAwLS43Mi0uNlYyLjVDMyAxLjY3IDMuNjcgMSA0LjUgMUg4Wm0xIC4yNVY0LjVjMCAuMjguMjIuNS41LjVoMy4yNUw5IDEuMjVaTTUuNSAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmExLjUgMS41IDAgMCAwIDMgMHYtMmMwLS44My0uNjctMS41LTEuNS0xLjVaTTUgMTEuNWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtMSAwdi0yWm0zIDBhMS41IDEuNSAwIDAgMSAzIDB2MmExLjUgMS41IDAgMCAxLTMgMHYtMlptMS41LS41YS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVaTTMgMTAuNjVjMC0uMi0uMS0uMzUtLjItLjQ1YS43My43MyAwIDAgMC0uMy0uMTZjLS4xNi0uMDUtLjUtLjA3LS43My4yMi0uMi4yNi0uNTEuNTctLjk4Ljc4YS41LjUgMCAwIDAgLjQyLjkyYy4zLS4xNS41Ny0uMzIuNzktLjV2My4wNGEuNS41IDAgMCAwIDEgMHYtMy44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MTAwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50MTAwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNSAxYTIgMiAwIDAgMC0yIDJ2Ni4xNmExLjcgMS43IDAgMCAxIC43Mi41OWMuMDktLjEuMTgtLjE4LjI4LS4yNVYzYTEgMSAwIDAgMSAxLTFoM3YyLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxMnY3LjVjMCAuNTMtLjE2IDEuMDItLjQ0IDEuNDJBMiAyIDAgMCAwIDEzIDEzVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2TDkuNjUgMS40NEExLjUgMS41IDAgMCAwIDguNTkgMUg1Wm02LjggNEg5LjVhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTEuOCA1Wk0zIDEwLjY1YzAtLjItLjEtLjM1LS4yLS40NWEuNzMuNzMgMCAwIDAtLjMtLjE2Yy0uMTYtLjA1LS41LS4wNy0uNzMuMjItLjIuMjYtLjUxLjU3LS45OC43OGEuNS41IDAgMCAwIC40Mi45MmMuMy0uMTUuNTctLjMyLjc5LS41djMuMDRhLjUuNSAwIDAgMCAxIDB2LTMuODVabTEgLjg1YTEuNSAxLjUgMCAwIDEgMyAwdjJhMS41IDEuNSAwIDAgMS0zIDB2LTJabTEuNS0uNWEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm00LTFjLS44MyAwLTEuNS42Ny0xLjUgMS41djJhMS41IDEuNSAwIDAgMCAzIDB2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk05IDExLjVhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MTAwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQxMDAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djguMjZhMi45OSAyLjk5IDAgMCAxIDQuNS41OEEzIDMgMCAwIDEgMTQgMTR2MmMwIC43Ny0uMjkgMS40Ny0uNzYgMmgxLjI2Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wm0tOCA2LjFjMC0uMi0uMS0uMzUtLjItLjQ0YS42NC42NCAwIDAgMC0uMy0uMTRjLS4xMy0uMDMtLjUtLjAzLS42Ny4zMi0uMi40MS0uNTQuOTMtMS4wNyAxLjIyYS41LjUgMCAxIDAgLjQ4Ljg4Yy4zLS4xNy41NS0uMzcuNzYtLjZ2My42NmEuNS41IDAgMCAwIDEgMHYtNC45Wk00IDE0YTIgMiAwIDEgMSA0IDB2MmEyIDIgMCAxIDEtNCAwdi0yWm0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDB2LTJhMSAxIDAgMCAwLTEtMVptNS0xYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAxIDAgNCAwdi0yYTIgMiAwIDAgMC0yLTJabS0xIDJhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudDEwMDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDEwMDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMmgtLjc2YTMgMyAwIDAgMCAuNTktMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY3LjE3YTMgMyAwIDAgMC0xIC42VjRabTcuNSAzaDMuM0wxMSAzLjJ2My4zYzAgLjI4LjIyLjUuNS41Wk02IDEyYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAxIDAgNCAwdi0yYTIgMiAwIDAgMC0yLTJabS0xIDJhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJabS0yLTEuNGMwLS4yLS4xLS4zNS0uMi0uNDRhLjY0LjY0IDAgMCAwLS4zLS4xNGMtLjEzLS4wMy0uNS0uMDMtLjY3LjMyLS4yLjQxLS41NC45My0xLjA3IDEuMjJhLjUuNSAwIDEgMCAuNDguODhjLjMtLjE3LjU1LS4zNy43Ni0uNnYzLjY2YS41LjUgMCAwIDAgMSAwdi00LjlaTTkgMTRhMiAyIDAgMSAxIDQgMHYyYTIgMiAwIDEgMS00IDB2LTJabTItMWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnQxMDAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDEwMDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgOFYySDZhMiAyIDAgMCAwLTIgMnYxMC4yM2EyIDIgMCAwIDEgLjg2Ljk3IDMuNSAzLjUgMCAwIDEgNS42NC41IDMuNSAzLjUgMCAwIDEgNi41IDEuOHYyYzAgLjk4LS40IDEuODYtMS4wNSAyLjVIMThhMiAyIDAgMCAwIDItMlYxMGgtNmEyIDIgMCAwIDEtMi0yWm0xLjUgMFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVabS02IDdBMi41IDIuNSAwIDAgMCA1IDE3LjV2MmEyLjUgMi41IDAgMCAwIDUgMHYtMkEyLjUgMi41IDAgMCAwIDcuNSAxNVptLTEgMi41YTEgMSAwIDEgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yWm00LjUgMGEyLjUgMi41IDAgMCAxIDUgMHYyYTIuNSAyLjUgMCAwIDEtNSAwdi0yWm0yLjUtMWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWk00IDE1Ljk0YTEgMSAwIDAgMC0uNzQtLjk1Yy0uMzEtLjA5LS44LS4wNi0xLjExLjM3LS4zMi40NC0uNzYuOTQtMS4yOCAxLjI0YS43NS43NSAwIDAgMCAuNzYgMS4zYy4zMi0uMi42MS0uNDMuODctLjY3djQuMDJhLjc1Ljc1IDAgMCAwIDEuNSAwdi01LjMxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnQxMDAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQxMDAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg2LjE3YTIgMiAwIDAgMSAxLjQyLjU5TDE5LjQgOC40QTIgMiAwIDAgMSAyMCA5LjgzVjIwYTIgMiAwIDAgMS0yIDJoLTIuMDVjLjQyLS40MS43My0uOTIuOS0xLjVIMThhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXYxMC42M2MtLjI0LjE2LS40NS4zNS0uNjQuNTdhMiAyIDAgMCAwLS44Ni0uOTdWNFptOS41LjYyVjhjMCAuMjguMjIuNS41LjVoMy4zOEwxMy41IDQuNjJaTTQgMTUuOTRhMSAxIDAgMCAwLS43NC0uOTVjLS4zMS0uMDktLjgtLjA2LTEuMTEuMzctLjMyLjQ0LS43Ni45NC0xLjI4IDEuMjRhLjc1Ljc1IDAgMCAwIC43NiAxLjNjLjMyLS4yLjYxLS40My44Ny0uNjd2NC4wMmEuNzUuNzUgMCAwIDAgMS41IDB2LTUuMzFabTEgMS41NmEyLjUgMi41IDAgMCAxIDUgMHYyYTIuNSAyLjUgMCAxIDEtNSAwdi0yWm0yLjUtMWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWm02LTEuNWEyLjUgMi41IDAgMCAwLTIuNSAyLjV2MmEyLjUgMi41IDAgMCAwIDUgMHYtMmEyLjUgMi41IDAgMCAwLTIuNS0yLjVabS0xIDIuNWExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMXYzLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxM3Y3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMUMzIDEuNjcgMy42NyAxIDQuNSAxSDhabTEgLjI1VjQuNWMwIC4yOC4yMi41LjUuNWgzLjI1TDkgMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNSAxYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNS40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZMOS42NSAxLjQ0QTEuNSAxLjUgMCAwIDAgOC41OSAxSDVaTTQgM2ExIDEgMCAwIDEgMS0xaDN2Mi41QzggNS4zMyA4LjY3IDYgOS41IDZIMTJ2N2ExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMVYzWm03LjggMkg5LjVhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTEuOCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTNDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlpNNSA0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm05LjggM2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNkEyIDIgMCAwIDAgMTIuMTcgMkg2Wm0tLjUgMmMwLS4yOC4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxLS41LS41VjRabTExLjg4IDQuNUgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJsMy44OCAzLjg4WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMnY4YzAgMS4xLjkgMiAyIDJoOHYxMS42YTIuNCAyLjQgMCAwIDEtMi40IDIuNEg2LjRBMi40IDIuNCAwIDAgMSA0IDIzLjZWNC40QTIuNCAyLjQgMCAwIDEgNi40IDJIMTRaXCIsIFwiTTE1LjUgMi40OFYxMGMwIC4yOC4yMi41LjUuNWg3LjVjLS4wOS0uMTMtLjItLjI1LS4zLS4zN0wxNS43NSAyLjdhMi40IDIuNCAwIDAgMC0uMjYtLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02LjQgMkEyLjQgMi40IDAgMCAwIDQgNC40djE5LjJBMi40IDIuNCAwIDAgMCA2LjQgMjZoMTUuMmEyLjQgMi40IDAgMCAwIDIuNC0yLjRWMTEuNThjMC0uNzMtLjI5LTEuNDMtLjgtMS45NUwxNi4yNSAyLjdhMi40IDIuNCAwIDAgMC0xLjctLjdINi40Wm0tLjkgMi40YzAtLjUuNC0uOS45LS45SDE0VjEwYzAgMS4xLjkgMiAyIDJoNi41djExLjZjMCAuNS0uNC45LS45LjlINi40YS45LjkgMCAwIDEtLjktLjlWNC40Wm0xNi40NCA2LjFIMTZhLjUuNSAwIDAgMS0uNS0uNVY0LjA2bDYuNDQgNi40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDJ2N2EzIDMgMCAwIDAgMyAzaDd2MTVhMyAzIDAgMCAxLTMgM0g4YTMgMyAwIDAgMS0zLTNWNWEzIDMgMCAwIDEgMy0zaDlabTIgLjEyVjlhMSAxIDAgMCAwIDEgMWg2Ljg4YTMgMyAwIDAgMC0uNzYtMS4zTDIwLjMgMi44OUEzIDMgMCAwIDAgMTkgMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOCAyYTMgMyAwIDAgMC0zIDN2MjJhMyAzIDAgMCAwIDMgM2gxNmEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFpNNyA1YTEgMSAwIDAgMSAxLTFoOXY1YTMgMyAwIDAgMCAzIDNoNXYxNWExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMVY1Wm0xNy41OSA1SDIwYTEgMSAwIDAgMS0xLTFWNC40MUwyNC41OSAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDR2MTEuMjVBMy43NSAzLjc1IDAgMCAwIDI3Ljc1IDE5SDQwdjIxYTMgMyAwIDAgMS0zIDNIMTFhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNoMTNabTIuNS40NnYxMC43OWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMS43MUwyNi41IDQuNDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjI1IDRBNC4yNSA0LjI1IDAgMCAwIDggOC4yNXYzMS41QzggNDIuMSA5LjkgNDQgMTIuMjUgNDRoMjMuNUMzOC4xIDQ0IDQwIDQyLjEgNDAgMzkuNzVWMTguNDFjMC0uNi0uMjQtMS4xNi0uNjYtMS41OUwyNy4xOCA0LjY2Yy0uNDMtLjQyLTEtLjY2LTEuNi0uNjZIMTIuMjZaTTEwLjUgOC4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUgyNHY4Ljc1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOWg5Ljc1djIwLjc1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMjMuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjguMjVabTI0Ljk4IDguMjVoLTcuNzNjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjUybDguOTggOC45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QWRkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBZGQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjY2QTUuNSA1LjUgMCAwIDAgNCA1LjJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVptMCA5LjI1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjEwSDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxMWgxLjVhLjUuNSAwIDAgMCAwLTFINlY4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFkZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFkZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjIuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFYzYTEgMSAwIDAgMSAxLTFoM3YyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTN2N2ExIDEgMCAwIDEtMSAxSDkuNzRjLS4zMS4zOC0uNjcuNzItMS4wOCAxSDEyYTIgMiAwIDAgMCAyLTJWNS40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTIuOTEtMi45MUExLjUgMS41IDAgMCAwIDkuNTkgMUg2Wm02LjggNGgtMi4zYS41LjUgMCAwIDEtLjUtLjVWMi4yTDEyLjggNVpNMTAgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxMEgzLjVhLjUuNSAwIDAgMCAwIDFINXYxLjVhLjUuNSAwIDAgMCAxIDBWMTFoMS41YS41LjUgMCAwIDAgMC0xSDZWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUg2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUg2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTYuODFBNi41IDYuNSAwIDAgMCA0IDExLjVWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZabS0xLjUgMTVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFpNNyAxOHYyLjVhLjUuNSAwIDEgMS0xIDBWMThIMy41YS41LjUgMCAwIDEgMC0xSDZ2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QWRkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTUuNzNhNi41MiA2LjUyIDAgMCAxLTEuMDggMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny41Yy40Ny0uMi45OC0uMzQgMS41LS40MlY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk0xMiAxNy41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBaTTcgMTh2Mi41YS41LjUgMCAxIDEtMSAwVjE4SDMuNWEuNS41IDAgMCAxIDAtMUg2di0yLjVhLjUuNSAwIDEgMSAxIDBWMTdoMi41YS41LjUgMCAwIDEgMCAxSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFkZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QWRkMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAydjhjMCAxLjEuOSAyIDIgMmg4djEyYTIgMiAwIDAgMS0yIDJoLTkuNEE3LjUgNy41IDAgMCAwIDQgMTMuODdWNGMwLTEuMS45LTIgMi0yaDhabTEuNS41VjEwYzAgLjI4LjIyLjUuNS41aDcuNWwtOC04Wm0tMS41IDE4YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS02LTRhLjUuNSAwIDAgMC0xIDBWMjBIMy41YS41LjUgMCAwIDAgMCAxSDd2My41YS41LjUgMCAwIDAgMSAwVjIxaDMuNWEuNS41IDAgMCAwIDAtMUg4di0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFkZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFkZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIyLjQ1IDIzLjZjMCAuNS0uNC45LS45LjloLTcuN0E3LjU0IDcuNTQgMCAwIDEgMTIuNiAyNmg4Ljk1YTIuNCAyLjQgMCAwIDAgMi40LTIuNFYxMS40YTIuNCAyLjQgMCAwIDAtLjctMS43bC03LTctLjE2LS4xNC0uMDYtLjA0QTIuMzkgMi4zOSAwIDAgMCAxNC41NSAySDYuNEEyLjQgMi40IDAgMCAwIDQgNC40djkuNDdjLjQ3LS4yNS45Ny0uNDYgMS41LS42VjQuNGMwLS41LjQtLjkuOS0uOWg3LjU1VjEwYzAgMS4xLjkgMiAyIDJoNi41djExLjZabS03LTE5LjU4IDYuNDggNi40OGgtNS45OGEuNS41IDAgMCAxLS41LS41VjQuMDJaTTE0IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYyMEgzLjVhLjUuNSAwIDAgMCAwIDFIN3YzLjVhLjUuNSAwIDEgMCAxIDBWMjFoMy41YS41LjUgMCAxIDAgMC0xSDh2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QWRkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBZGQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDR2MTEuMjVBMy43NSAzLjc1IDAgMCAwIDI3Ljc1IDE5SDQwdjIxYTMgMyAwIDAgMS0zIDNIMjMuMjVBMTMgMTMgMCAwIDAgOCAyM1Y3YTMgMyAwIDAgMSAzLTNoMTNabTIuNS40NnYxMC43OWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMS43MUwyNi41IDQuNDZaTTI0IDM1YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTEwLTdhMSAxIDAgMSAwLTIgMHY2SDZhMSAxIDAgMSAwIDAgMmg2djZhMSAxIDAgMSAwIDIgMHYtNmg2YTEgMSAwIDEgMCAwLTJoLTZ2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFkZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFkZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEwLjUgOC4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUgyNHY4Ljc1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOWg5Ljc1djIwLjc1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgyNC4yNmMtLjUyLjktMS4xNiAxLjc1LTEuODggMi41aDEzLjM3QzM4LjEgNDQgNDAgNDIuMSA0MCAzOS43NVYxOC40MWMwLS42LS4yNC0xLjE2LS42Ni0xLjU5TDI3LjE4IDQuNjZjLS40My0uNDItMS0uNjYtMS42LS42NkgxMi4yNkE0LjI1IDQuMjUgMCAwIDAgOCA4LjI1VjIzYy44LS4zNCAxLjYzLS42IDIuNS0uNzZWOC4yNVptMjQuOTggOC4yNWgtNy43M2MtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjcuNTJsOC45OCA4Ljk4Wk0yNCAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMC03YTEgMSAwIDEgMC0yIDB2Nkg2YTEgMSAwIDEgMCAwIDJoNnY2YTEgMSAwIDEgMCAyIDB2LTZoNmExIDEgMCAxIDAgMC0yaC02di02WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0Rvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93RG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSAxSDZhMiAyIDAgMCAwLTIgMnYyLjJBNS41IDUuNSAwIDAgMSA4LjY3IDE1SDEyYTIgMiAwIDAgMCAyLTJWNmgtMy41QTEuNSAxLjUgMCAwIDEgOSA0LjVWMVptNSA0aC0zLjVhLjUuNSAwIDAgMS0uNS0uNVYxbDQgNFptLTQgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDYgMTEuMjlWOC41YS41LjUgMCAwIDAtMSAwdjIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93RG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93RG93bjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQgM2MwLTEuMS45LTIgMi0yaDMuNThjLjQgMCAuNzguMTYgMS4wNi40NGwyLjkyIDIuOTJjLjI4LjI4LjQ0LjY2LjQ0IDEuMDZWMTNhMiAyIDAgMCAxLTIgMkg4LjY3Yy40LS4yOS43Ni0uNjIgMS4wNy0xSDEyYTEgMSAwIDAgMCAxLTFWNmgtMi41QTEuNSAxLjUgMCAwIDEgOSA0LjVWMkg2YTEgMSAwIDAgMC0xIDF2Mi4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjNabTYtLjc5djIuM2MwIC4yNy4yMi41LjUuNWgyLjNMMTAgMi4yWm0wIDguMjlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1IDIuMzVhLjUuNSAwIDAgMCAuMzUuMTUuNS41IDAgMCAwIC4zNS0uMTVsMi0yYS41LjUgMCAwIDAtLjctLjdMNiAxMS4yOVY4LjVhLjUuNSAwIDAgMC0xIDB2Mi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0Rvd24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk01LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0yLjM1LTQuMTVhLjUuNSAwIDAgMSAuNy0uN0w1IDE1LjI5VjEyLjVhLjUuNSAwIDAgMSAxIDB2Mi44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS4zNS4xNS41LjUgMCAwIDEtLjM1LS4xNGwtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0Rvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0Rvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk01LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0yLjM1LTQuMTVhLjUuNSAwIDAgMSAuNy0uN0w1IDE1LjI5VjEyLjVhLjUuNSAwIDAgMSAxIDB2Mi44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS4zNS4xNS41LjUgMCAwIDEtLjM1LS4xNGwtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0Rvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93RG93bjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjgxQTYuNSA2LjUgMCAwIDAgNCAxMS41VjRjMC0xLjEuOS0yIDItMmg2Wm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wm0tMS41IDE1YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS01LTNhLjUuNSAwIDAgMC0xIDB2NC44bC0xLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0w3IDE5LjI5VjE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93RG93bjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93RG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjcuNWMuNDctLjIuOTgtLjM0IDEuNS0uNDJWNGMwLS4yOC4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVoLTUuNzNhNi41MiA2LjUyIDAgMCAxLTEuMDggMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZBMiAyIDAgMCAwIDEyLjE3IDJINlptMTEuMzggNi41SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MmwzLjg4IDMuODhabS01LjM4IDlhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTUtM2EuNS41IDAgMCAwLTEgMHY0LjhsLTEuNjUtMS42NWEuNS41IDAgMCAwLS43LjdsMi41IDIuNWMuMi4yLjUuMi43IDBsMi41LTIuNWEuNS41IDAgMCAwLS43LS43TDcgMTkuMjlWMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dMZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0xlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjY2QTUuNSA1LjUgMCAwIDAgNCA1LjJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVptMCA5LjI1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDExSDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAxIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dMZWZ0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2Mi4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjNhMSAxIDAgMCAxIDEtMWgzdjIuNWMwIC44My42NyAxLjUgMS41IDEuNUgxM3Y3YTEgMSAwIDAgMS0xIDFIOS43NGMtLjMxLjM4LS42Ny43Mi0xLjA4IDFIMTJhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMi45MS0yLjkxQTEuNSAxLjUgMCAwIDAgOS41OSAxSDZabTYuOCA0aC0yLjNhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTIuOCA1Wk0xMCAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDExSDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAxIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0xlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDE1SDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dMZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dMZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuNmMtLjE4LjM2LS40LjctLjY2IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxNUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93TGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dMZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTYuODFBNi41IDYuNSAwIDAgMCA0IDExLjVWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZabS0xLjUgMTVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTIuNS41YS41LjUgMCAwIDAgMC0xSDQuN2wxLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDQuNzEgMThIOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0xlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0xlZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC41IDIwYS41LjUgMCAwIDEtLjUuNWgtNS43M2E2LjUyIDYuNTIgMCAwIDEtMS4wOCAxLjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjVjLjQ3LS4yLjk4LS4zNCAxLjUtLjQyVjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTEyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTIuNS41YS41LjUgMCAwIDAgMC0xSDQuN2wxLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDQuNzEgMThIOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0xlZnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93TGVmdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMnY4YzAgMS4xLjkgMiAyIDJoOHYxMmEyIDIgMCAwIDEtMiAyaC05LjRBNy41IDcuNSAwIDAgMCA0IDEzLjg3VjRjMC0xLjEuOS0yIDItMmg4Wm0xLjUuNVYxMGMwIC4yOC4yMi41LjUuNWg3LjVsLTgtOFptLTEuNSAxOGE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tMi41LjVhLjUuNSAwIDAgMCAwLTFINC43bDIuMTUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0zIDNhLjUuNSAwIDAgMC0uMTUuMzVjMCAuMTMuMDUuMjYuMTUuMzVsMyAzYS41LjUgMCAwIDAgLjctLjdMNC43MSAyMWg2Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0xlZnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0xlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yMi40NSAyMy42YzAgLjUtLjQuOS0uOS45aC03LjdBNy41NCA3LjU0IDAgMCAxIDEyLjYgMjZoOC45NWEyLjQgMi40IDAgMCAwIDIuNC0yLjRWMTEuNGEyLjQgMi40IDAgMCAwLS43LTEuN2wtNy03LS4xNi0uMTQtLjA2LS4wNEEyLjM5IDIuMzkgMCAwIDAgMTQuNTUgMkg2LjRBMi40IDIuNCAwIDAgMCA0IDQuNHY5LjQ3Yy40Ny0uMjUuOTctLjQ2IDEuNS0uNlY0LjRjMC0uNS40LS45LjktLjloNy41NVYxMGMwIDEuMS45IDIgMiAyaDYuNXYxMS42Wm0tNy0xOS41OCA2LjQ4IDYuNDhoLTUuOThhLjUuNSAwIDAgMS0uNS0uNVY0LjAyWk0xNCAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS0yLjUuNWEuNS41IDAgMSAwIDAtMUg0LjdsMi4xNS0yLjE1YS41LjUgMCAxIDAtLjctLjdsLTMgM2EuNS41IDAgMCAwLS4xNS4zNWMwIC4xMy4wNS4yNi4xNS4zNWwzIDNhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDIxaDYuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93TGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dMZWZ0NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA0djExLjI1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOUg0MHYyMWEzIDMgMCAwIDEtMyAzSDIzLjI1QTEzIDEzIDAgMCAwIDggMjNWN2EzIDMgMCAwIDEgMy0zaDEzWm0yLjUuNDZ2MTAuNzljMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTEuNzFMMjYuNSA0LjQ2Wk0yNCAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMi4zLTUuN2ExIDEgMCAwIDAtMS40IDBsLTUgNWExIDEgMCAwIDAgMCAxLjRsNSA1YTEgMSAwIDAgMCAxLjQtMS40TDguNDIgMzZIMjBhMSAxIDAgMSAwIDAtMkg4LjQxbDMuMy0zLjNhMSAxIDAgMCAwIDAtMS40WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd0xlZnQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd0xlZnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xMC41IDguMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVIMjR2OC43NUEzLjc1IDMuNzUgMCAwIDAgMjcuNzUgMTloOS43NXYyMC43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMjQuMjZjLS41Mi45LTEuMTYgMS43NS0xLjg4IDIuNWgxMy4zN0MzOC4xIDQ0IDQwIDQyLjEgNDAgMzkuNzVWMTguNDFjMC0uNi0uMjQtMS4xNi0uNjYtMS41OUwyNy4xOCA0LjY2Yy0uNDMtLjQyLTEtLjY2LTEuNi0uNjZIMTIuMjZBNC4yNSA0LjI1IDAgMCAwIDggOC4yNVYyM2MuOC0uMzQgMS42My0uNiAyLjUtLjc2VjguMjVabTI0Ljk4IDguMjVoLTcuNzNjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY3LjUybDguOTggOC45OFpNMjQgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTIuMy01LjdhMSAxIDAgMCAwLTEuNCAwbC01IDVhMSAxIDAgMCAwIDAgMS40bDUgNWExIDEgMCAwIDAgMS40LTEuNEw4LjQyIDM2SDIwYTEgMSAwIDEgMCAwLTJIOC40MWwzLjMtMy4zYTEgMSAwIDAgMCAwLTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTUuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLjM1LTIuMTVhLjUuNSAwIDAgMS0uNy0uN0w2LjI5IDE1SDMuNWEuNS41IDAgMCAxIDAtMWgyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmEuNS41IDAgMCAxIC4xNS4zNS41LjUgMCAwIDEtLjE0LjM1bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEFycm93UmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRBcnJvd1JpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuNmMtLjE4LjM2LS40LjctLjY2IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNNS41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0uMzUtMi4xNWEuNS41IDAgMCAxLS43LS43TDYuMjkgMTVIMy41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjgxQTYuNSA2LjUgMCAwIDAgNCAxMS41VjRjMC0xLjEuOS0yIDItMmg2WlwiLCBcIk0xMy41IDIuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02WlwiLCBcIk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBaTTMuNSAxN2EuNS41IDAgMCAwIDAgMWg0LjhsLTEuNjUgMS42NWEuNS41IDAgMCAwIC43LjdsMi41LTIuNWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNy43TDguMjkgMTdIMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd1JpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41aC01LjczYTYuNTIgNi41MiAwIDAgMS0xLjA4IDEuNUgxOGEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyTDEzLjYgMi42YS41LjUgMCAwIDAtLjA1LS4wNCAyLjA3IDIuMDcgMCAwIDAtLjM0LS4yNWwtLjA1LS4wMy0uMDUtLjAzLS4xNi0uMDljLS4yLS4wOC0uNDEtLjEyLS42My0uMTRoLS4wNmEuNi42IDAgMCAwLS4wOC0uMDFINmEyIDIgMCAwIDAtMiAydjcuNWMuNDctLjIuOTgtLjM0IDEuNS0uNDJWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMFptLTUtMTUuMzggMy44OCAzLjg4SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MlpcIiwgXCJNMTIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWk0zLjUgMTdhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcuN0w4LjI5IDE3SDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dVcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dVcDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSA0LjVWMUg1LjVDNC42NyAxIDQgMS42NyA0IDIuNXYyLjdBNS41IDUuNSAwIDAgMSA4LjY2IDE1aDMuODRjLjgzIDAgMS41LS42NyAxLjUtMS41VjZoLTMuNUExLjUgMS41IDAgMCAxIDkgNC41Wm0xIDBWMS4yNUwxMy43NSA1SDEwLjVhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDE1YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0yLjM1LTQuODVhLjUuNSAwIDAgMS0uNy43TDYgOS43MXYyLjc5YS41LjUgMCAwIDEtMSAwVjkuN2wtMS4xNSAxLjE1YS41LjUgMCAwIDEtLjctLjdsMi0yQS41LjUgMCAwIDEgNS41IDhhLjUuNSAwIDAgMSAuMzUuMTRsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRBcnJvd1VwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dVcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQgM2MwLTEuMS45LTIgMi0yaDMuNTljLjQgMCAuNzguMTYgMS4wNi40NGwyLjkxIDIuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTNhMiAyIDAgMCAxLTIgMkg4LjY2Yy40LS4yOC43Ny0uNjIgMS4wOC0xSDEyYTEgMSAwIDAgMCAxLTFWNmgtMi41QTEuNSAxLjUgMCAwIDEgOSA0LjVWMkg2YTEgMSAwIDAgMC0xIDF2Mi4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjNabTYuNSAyaDIuM0wxMCAyLjJ2Mi4zYzAgLjI4LjIyLjUuNS41Wm0tNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi4zNS00Ljg1YS41LjUgMCAwIDEtLjcuN0w2IDkuNzF2Mi43OWEuNS41IDAgMCAxLTEgMFY5LjdsLTEuMTUgMS4xNWEuNS41IDAgMCAxLS43LS43bDItMkEuNS41IDAgMCAxIDUuNSA4YS41LjUgMCAwIDEgLjM1LjE0bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dVcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QXJyb3dVcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTUuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMi4zNS00Ljg1YS41LjUgMCAxIDEtLjcuN0w2IDEzLjcxdjIuNzlhLjUuNSAwIDAgMS0xIDB2LTIuOGwtMS4xNSAxLjE1YS41LjUgMCAxIDEtLjctLjdsMi0yQS41LjUgMCAwIDEgNS41IDEyYS41LjUgMCAwIDEgLjM1LjE0bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXJyb3dVcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEFycm93VXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk01LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTIuMzUtNC44NWEuNS41IDAgMSAxLS43LjdMNiAxMy43MXYyLjc5YS41LjUgMCAwIDEtMSAwdi0yLjhsLTEuMTUgMS4xNWEuNS41IDAgMSAxLS43LS43bDItMkEuNS41IDAgMCAxIDUuNSAxMmEuNS41IDAgMCAxIC4zNS4xNGwyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJvcmRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02LjUgMkEyLjUgMi41IDAgMCAwIDQgNC41djExQTIuNSAyLjUgMCAwIDAgNi41IDE4aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDEzLjUgMmgtN1pNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41djExYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTUuNXYtMTFaTTYuNzUgNGEuNzUuNzUgMCAwIDAtLjc1Ljc1djEwLjVjMCAuNDEuMzQuNzUuNzUuNzVoNi41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjQuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYxMUEyLjUgMi41IDAgMCAwIDYuNSAxOGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTFBMi41IDIuNSAwIDAgMCAxMy41IDJoLTdaTTUgNC41QzUgMy42NyA1LjY3IDMgNi41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNXYxMWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDE1LjV2LTExWk02Ljc1IDRhLjc1Ljc1IDAgMCAwLS43NS43NXYxMC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDYuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVY0Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVaTTcgMTVWNWg2djEwSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJvcmRlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk03LjI1IDJBMy4yNSAzLjI1IDAgMCAwIDQgNS4yNXYxMy41QzQgMjAuNTUgNS40NiAyMiA3LjI1IDIyaDkuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjUuMjVDMjAgMy40NSAxOC41NCAyIDE2Ljc1IDJoLTkuNVpNNS41IDUuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoOS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djEzLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC05LjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY1LjI1Wk04IDVhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNy4yNSAyQTMuMjUgMy4yNSAwIDAgMCA0IDUuMjV2MTMuNUM0IDIwLjU1IDUuNDYgMjIgNy4yNSAyMmg5LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY1LjI1QzIwIDMuNDUgMTguNTQgMiAxNi43NSAyaC05LjVaTTUuNSA1LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDkuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMy41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtOS41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNS4yNVpNOCA1YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDhabS41IDEyLjV2LTExaDd2MTFoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJvcmRlcjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk05IDJhNCA0IDAgMCAwLTQgNHYyMGE0IDQgMCAwIDAgNCA0aDE0YTQgNCAwIDAgMCA0LTRWNmE0IDQgMCAwIDAtNC00SDlaTTcgNmMwLTEuMS45LTIgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MjBhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNlptMy4yNSAwQzkuNTYgNiA5IDYuNTYgOSA3LjI1djE3LjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTEuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWNy4yNUMyMyA2LjU2IDIyLjQ0IDYgMjEuNzUgNmgtMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Qm9yZGVyMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOSAyYTQgNCAwIDAgMC00IDR2MjBhNCA0IDAgMCAwIDQgNGgxNGE0IDQgMCAwIDAgNC00VjZhNCA0IDAgMCAwLTQtNEg5Wk03IDZjMC0xLjEuOS0yIDItMmgxNGEyIDIgMCAwIDEgMiAydjIwYTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjZabTMuMjUgMEM5LjU2IDYgOSA2LjU2IDkgNy4yNXYxNy41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDExLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjcuMjVDMjMgNi41NiAyMi40NCA2IDIxLjc1IDZoLTExLjVaTTExIDI0VjhoMTB2MTZIMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJvcmRlclByaW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCb3JkZXJQcmludDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYxMUEyLjUgMi41IDAgMCAwIDYuNSAxOEgxMWEyIDIgMCAwIDEtMS43My0xSDYuNUExLjUgMS41IDAgMCAxIDUgMTUuNXYtMTFDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjloLjVjLjE3IDAgLjM0LjAyLjUuMDVWNC41QTIuNSAyLjUgMCAwIDAgMTMuNSAyaC03Wm03IDdoLjVWNC43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNi41YS43NS43NSAwIDAgMC0uNzUuNzV2MTAuNWMwIC40MS4zNC43NS43NS43NUg5di0yLjVhMi41IDIuNSAwIDAgMSAyLjA0LTIuNDZBMi41IDIuNSAwIDAgMSAxMy41IDlabTAgMWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxNmExIDEgMCAwIDAgMSAxaDF2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTdoMWExIDEgMCAwIDAgMS0xdi0yLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE3di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJabTIuNSAyaC0zdi0uNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41Wm0tMi41IDRoMmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCb3JkZXJQcmludDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJvcmRlclByaW50MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYxMUEyLjUgMi41IDAgMCAwIDYuNSAxOEgxMWEyIDIgMCAwIDEtMS43My0xSDYuNUExLjUgMS41IDAgMCAxIDUgMTUuNXYtMTFDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjloLjVjLjE3IDAgLjM0LjAyLjUuMDVWNC41QTIuNSAyLjUgMCAwIDAgMTMuNSAyaC03Wk0xNCA0Ljc1VjloLS41Yy0uMTcgMC0uMzQuMDItLjUuMDVWNUg3djEwaDJ2MUg2Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1VjQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wk0xMy41IDEwYy0uODMgMC0xLjUuNjctMS41IDEuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE2YTEgMSAwIDAgMCAxIDFoMXYuNWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxN2gxYTEgMSAwIDAgMCAxLTF2LTIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlptMi41IDJoLTN2LS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVabS0yLjUgNGgyYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0xYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJvcmRlclByaW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCb3JkZXJQcmludDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy4yNSAyQTMuMjUgMy4yNSAwIDAgMCA0IDUuMjV2MTMuNUM0IDIwLjU1IDUuNDYgMjIgNy4yNSAyMmg1Ljg1YTIuNzQgMi43NCAwIDAgMS0uMDktLjVIMTNhMiAyIDAgMCAxLTEuNzMtMUg3LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg5LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWMTFoLjc1Yy4yNiAwIC41MS4wNC43NS4xVjUuMjVDMjAgMy40NSAxOC41NCAyIDE2Ljc1IDJoLTkuNVptOC41IDlIMTdWNmExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDN2LTNhMi41IDIuNSAwIDAgMSAyLTIuNDVBMi43NSAyLjc1IDAgMCAxIDE1Ljc2IDExWk0xNCAxMy43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ljc1aC41Yy44MyAwIDEuNS42NyAxLjUgMS41djMuNWExIDEgMCAwIDEtMSAxaC0xdi43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTMuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0uNzVoLTFhMSAxIDAgMCAxLTEtMVYxNmMwLS44My42Ny0xLjUgMS41LTEuNWguNXYtLjc1Wm01LjUgMGEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Ljc1aDR2LS43NVptLTQgNS41djJjMCAuMTQuMTEuMjUuMjUuMjVoMy41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yYS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMCAwLS4yNS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyUHJpbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCb3JkZXJQcmludDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcuMjUgMkEzLjI1IDMuMjUgMCAwIDAgNCA1LjI1djEzLjVDNCAyMC41NSA1LjQ2IDIyIDcuMjUgMjJoNS44NWEyLjc0IDIuNzQgMCAwIDEtLjA5LS41SDEzYTIgMiAwIDAgMS0xLjczLTFINy4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjUuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoOS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjExaC43NWMuMjYgMCAuNTEuMDQuNzUuMVY1LjI1QzIwIDMuNDUgMTguNTQgMiAxNi43NSAyaC05LjVaTTE3IDZ2NWgtMS4yNWwtLjI1LjAxVjYuNWgtN3YxMUgxMVYxOUg4YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMVptLTMgNy43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ljc1aC41Yy44MyAwIDEuNS42NyAxLjUgMS41djMuNWExIDEgMCAwIDEtMSAxaC0xdi43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTMuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0uNzVoLTFhMSAxIDAgMCAxLTEtMVYxNmMwLS44My42Ny0xLjUgMS41LTEuNWguNXYtLjc1Wm01LjUgMGEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Ljc1aDR2LS43NVptLTQgNS41djJjMCAuMTQuMTEuMjUuMjUuMjVoMy41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yYS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMCAwLS4yNS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Qm9yZGVyUHJpbnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJvcmRlclByaW50MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk05IDJhNCA0IDAgMCAwLTQgNHYyMGE0IDQgMCAwIDAgNCA0aDYuMDJhMy4yNSAzLjI1IDAgMCAxLTEuNDMtMkg5YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OS41aC41Yy41NCAwIDEuMDUuMTIgMS41LjM0VjZhNCA0IDAgMCAwLTQtNEg5Wm0xMC41IDEzLjVIMjNWNy4yNUMyMyA2LjU2IDIyLjQ0IDYgMjEuNzUgNmgtMTEuNUM5LjU2IDYgOSA2LjU2IDkgNy4yNXYxNy41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDMuMjV2LTMuNzVhMy43NSAzLjc1IDAgMCAxIDIuNTEtMy41NCAzLjUgMy41IDAgMCAxIDMuNDktMy4yMVptMCAxLjVhMiAyIDAgMCAwLTIgMnYxaC0uMjVDMTYuMDEgMjAgMTUgMjEgMTUgMjIuMjV2NWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWguNzVjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJoLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtLjI1di0xYTIgMiAwIDAgMC0yLTJoLTZabS0uNSAzdi0xYzAtLjI4LjIyLS41LjUtLjVoNmMuMjggMCAuNS4yMi41LjV2MWgtN1ptMCA2LjVjMC0uMjguMjItLjUuNS0uNWg2Yy4yOCAwIC41LjIyLjUuNVYyOWEuNS41IDAgMCAxLS41LjVoLTZhLjUuNSAwIDAgMS0uNS0uNXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCb3JkZXJQcmludDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJvcmRlclByaW50MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOSAyYTQgNCAwIDAgMC00IDR2MjBhNCA0IDAgMCAwIDQgNGg2LjAyYTMuMjUgMy4yNSAwIDAgMS0xLjQzLTJIOWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmgxNGEyIDIgMCAwIDEgMiAydjkuNWguNWMuNTQgMCAxLjA1LjEyIDEuNS4zNFY2YTQgNCAwIDAgMC00LTRIOVptMTQgNS4yNXY4LjI1aC0yVjhIMTF2MTZoMi41djJoLTMuMjVDOS41NiAyNiA5IDI1LjQ0IDkgMjQuNzVWNy4yNUM5IDYuNTYgOS41NiA2IDEwLjI1IDZoMTEuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVpNMTkuNSAxN2EyIDIgMCAwIDAtMiAydjFoLS4yNUMxNi4wMSAyMCAxNSAyMSAxNSAyMi4yNXY1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aC43NWMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMmguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di01YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0uMjV2LTFhMiAyIDAgMCAwLTItMmgtNlptLS41IDN2LTFjMC0uMjguMjItLjUuNS0uNWg2Yy4yOCAwIC41LjIyLjUuNXYxaC03Wm0wIDYuNWMwLS4yOC4yMi0uNS41LS41aDZjLjI4IDAgLjUuMjIuNS41VjI5YS41LjUgMCAwIDEtLjUuNWgtNmEuNS41IDAgMCAxLS41LS41di0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJyaWVmY2FzZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnJpZWZjYXNlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41djIuNTVjLjE2LS4wMy4zMy0uMDUuNS0uMDVoMmEyLjUgMi41IDAgMCAxIDIuNDYgMi4wNEEyLjUgMi41IDAgMCAxIDExIDkuNXY0YzAgLjU2LS4xOSAxLjA4LS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVY2aC0zLjVBMS41IDEuNSAwIDAgMSA5IDQuNVptMSAwVjEuMjVMMTMuNzUgNUgxMC41YS41LjUgMCAwIDEtLjUtLjVabS03IDNWOGgtLjVDMS42NyA4IDEgOC42NyAxIDkuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00QzEwIDguNjcgOS4zMyA4IDguNSA4SDh2LS41QzggNi42NyA3LjMzIDYgNi41IDZoLTJDMy42NyA2IDMgNi42NyAzIDcuNVpNNC41IDdoMmMuMjggMCAuNS4yMi41LjVWOEg0di0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCcmllZmNhc2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCcmllZmNhc2UxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDNjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMi45MSAyLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjEzYTIgMiAwIDAgMS0yIDJoLTEuNWMuMjItLjMuMzgtLjYzLjQ1LTFIMTJhMSAxIDAgMCAwIDEtMVY2aC0yLjVBMS41IDEuNSAwIDAgMSA5IDQuNVYySDZhMSAxIDAgMCAwLTEgMXYyaC0uNWMtLjE3IDAtLjM0LjAyLS41LjA1VjNabTYuNSAyaDIuM0wxMCAyLjJ2Mi4zYzAgLjI4LjIyLjUuNS41Wk0zIDcuNVY4aC0uNUMxLjY3IDggMSA4LjY3IDEgOS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRDMTAgOC42NyA5LjMzIDggOC41IDhIOHYtLjVDOCA2LjY3IDcuMzMgNiA2LjUgNmgtMkMzLjY3IDYgMyA2LjY3IDMgNy41Wk00LjUgN2gyYy4yOCAwIC41LjIyLjUuNVY4SDR2LS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJyaWVmY2FzZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnJpZWZjYXNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zLjU1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di00YTIuNSAyLjUgMCAwIDAtMi4wNC0yLjQ2QTIuNSAyLjUgMCAwIDAgNi41IDloLTJjLS4xNyAwLS4zNC4wMi0uNS4wNVYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMyAxMS41di41aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVIOHYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNVptMS41LS41aDJjLjI4IDAgLjUuMjIuNS41di41SDR2LS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJyaWVmY2FzZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJyaWVmY2FzZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMDVjLjE2LS4wMy4zMy0uMDUuNS0uMDVINVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zdi41YzAgLjE3LS4wMi4zNC0uMDUuNUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0zIDExLjV2LjVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg4di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41Wm0xLjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVINHYtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnJpZWZjYXNlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCcmllZmNhc2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNS4wNWMuMDMtLjE2LjA1LS4zMy4wNS0uNXYtNWEyLjUgMi41IDAgMCAwLTItMi40NXYtLjNBMi43NSAyLjc1IDAgMCAwIDguMjUgMTFoLTMuNWMtLjI2IDAtLjUxLjA0LS43NS4xVjRjMC0xLjEuOS0yIDItMmg2Wm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wk0zIDE1aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2LTEuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0zLjVDMy43OCAxMiAzIDEyLjc4IDMgMTMuNzVWMTVabTEuNS0xLjI1YzAtLjE0LjExLS4yNS4yNS0uMjVoMy41Yy4xNCAwIC4yNS4xMS4yNS4yNVYxNWgtNHYtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnJpZWZjYXNlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnJpZWZjYXNlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTV2MWMwIC4xNy0uMDIuMzQtLjA1LjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjFjLjI0LS4wNi40OS0uMS43NS0uMWguNzVWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMFptLTUtMTUuMzggMy44OCAzLjg4SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MlpNMyAxNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEwdi0xLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMy41QzMuNzggMTIgMyAxMi43OCAzIDEzLjc1VjE1Wm0xLjUtMS4yNWMwLS4xNC4xMS0uMjUuMjUtLjI1aDMuNWMuMTQgMCAuMjUuMTEuMjUuMjVWMTVoLTR2LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJyaWVmY2FzZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnJpZWZjYXNlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyA5VjJIOGEzIDMgMCAwIDAtMyAzdjEwLjU1YTMuNDkgMy40OSAwIDAgMSAyLjUtMS4wNWg0QTMuNSAzLjUgMCAwIDEgMTUgMThhMy43NSAzLjc1IDAgMCAxIDMuNSAzLjV2Ny4yNWMwIC40NC0uMDguODYtLjIxIDEuMjVIMjRhMyAzIDAgMCAwIDMtM1YxMmgtN2EzIDMgMCAwIDEtMy0zWm0yIDBWMi4xMmEzIDMgMCAwIDEgMS4zLjc2bDUuODIgNS44M2EzIDMgMCAwIDEgLjc2IDEuMjlIMjBhMSAxIDAgMCAxLTEtMVpNNS41IDE4djEuNUg0LjI1Yy0xLjE2IDAtMi4xMS44OC0yLjI0IDJIMnY3LjI1QzIgMjkuOTkgMyAzMSA0LjI1IDMxaDEwLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWMjEuNWgtLjAxYTIuMjUgMi4yNSAwIDAgMC0yLjI0LTJIMTMuNVYxOGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJabTItLjVoNGMuMjggMCAuNS4yMi41LjV2MS41SDdWMThjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnJpZWZjYXNlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnJpZWZjYXNlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNSA1YTMgMyAwIDAgMSAzLTNoMTAuMTdhMyAzIDAgMCAxIDIuMTIuODhsNS44MyA1LjgzYTMgMyAwIDAgMSAuODggMi4xMlYyN2EzIDMgMCAwIDEtMyAzaC01LjcxYy4xMy0uNC4yMS0uODEuMjEtMS4yNVYyOEgyNGExIDEgMCAwIDAgMS0xVjEyaC01YTMgMyAwIDAgMS0zLTNWNEg4YTEgMSAwIDAgMC0xIDF2OS41NGEzLjUgMy41IDAgMCAwLTIgMS4wMVY1Wm0xNSA1aDQuNTlMMTkgNC40MVY5YTEgMSAwIDAgMCAxIDFaTTUuNSAxOHYxLjVINC4yNWMtMS4xNiAwLTIuMTEuODgtMi4yNCAySDJ2Ny4yNUMyIDI5Ljk5IDMgMzEgNC4yNSAzMWgxMC41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjIxLjVoLS4wMWEyLjI1IDIuMjUgMCAwIDAtMi4yNC0ySDEzLjVWMThhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAyWm0yLS41aDRjLjI4IDAgLjUuMjIuNS41djEuNUg3VjE4YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3QxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3QxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMXYzLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxM3Y3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxMy41di0xMUMzIDEuNjcgMy42NyAxIDQuNSAxSDhabTEgLjI1VjQuNWMwIC4yOC4yMi41LjUuNWgzLjI1TDkgMS4yNVpNNyA4LjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVabS41IDEuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03IDEyLjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjVaTTUuNSA5YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0uNSAxLjVhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBaTTUuNSAxM2EuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3QxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNkw5LjY1IDEuNDRBMS41IDEuNSAwIDAgMCA4LjU5IDFINVpNNCAzYTEgMSAwIDAgMSAxLTFoM3YyLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxMnY3YTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjNabTcuOCAySDkuNWEuNS41IDAgMCAxLS41LS41VjIuMkwxMS44IDVaTTcgNy41YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41Wk03LjUgOWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03IDExLjVjMC0uMjguMjItLjUuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVaTTUuNSA4YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk02IDkuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNNS41IDEyYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabS00IDRhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabTAgMmEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMCAyYS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0yLTRjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabTAgMmMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptMCAyYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0zLThWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDEwLjVhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabS41IDEuNWEuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVpNNiAxNC41YS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWk04LjUgMTBhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNOCAxMi41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlpNNSA0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm05LjggM2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgOFYySDZhMiAyIDAgMCAwLTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMTBoLTZhMiAyIDAgMCAxLTItMlptLTUgNC4yNWEuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFptMCAzYS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBabTMtNmMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMCAzYzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0wIDNjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTEzLjUgOFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3QyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNyAxMi4yNWEuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0uNzUgMi4yNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVaTTcgMTguMjVhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFptMy43NS02Ljc1YS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVaTTEwIDE1LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wm04LjY2LTkuMDlMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyWk0xOC41IDIwYS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEtLjUtLjVWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMFptLTUtMTUuMzggMy44OCAzLjg4SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSAxdjMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNHY3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguNjZhNS41MyA1LjUzIDAgMCAwIDEuNzQtMmgxLjFhLjUuNSAwIDAgMCAwLTFoLS43Yy4wOC0uMzIuMTUtLjY2LjE4LTFoLjUyYS41LjUgMCAwIDAgMC0xaC0uNTJjLS4wMy0uMzQtLjEtLjY4LS4xOS0xaC43MWEuNS41IDAgMCAwIDAtMWgtMS4xQTUuNSA1LjUgMCAwIDAgNCA1LjJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVpNNS41IDE1YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00Ljg1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxMUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMSAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RBcnJvd0xlZnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0QXJyb3dMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2Mi4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjNhMSAxIDAgMCAxIDEtMWgzdjIuNWMwIC44My42NyAxLjUgMS41IDEuNUgxM3Y3YTEgMSAwIDAgMS0xIDFIOS43NGMtLjMxLjM4LS42Ny43Mi0xLjA4IDFIMTJhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMi45MS0yLjkxQTEuNSAxLjUgMCAwIDAgOS41OSAxSDZabTMuNzQgNmMuMjYuMy40OC42NC42NiAxaDEuMWEuNS41IDAgMCAwIDAtMUg5Ljc0Wm0xLjA1IDJjLjEuMzIuMTYuNjYuMTkgMWguNTJhLjUuNSAwIDAgMCAwLTFoLS43Wm0uMTkgMmMtLjAzLjM0LS4xLjY4LS4xOSAxaC43MWEuNS41IDAgMCAwIDAtMWgtLjUyWm0xLjgxLTZIMTAuNWEuNS41IDAgMCAxLS41LS41VjIuMkwxMi44IDVaTTUuNSAxNWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLTIuMzUtNC44NWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDQuNzEgMTFINy41YS41LjUgMCAwIDAgMC0xSDQuN2wxLjE1LTEuMTVhLjUuNSAwIDEgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0QXJyb3dMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0QXJyb3dMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1LjdhNS41IDUuNSAwIDAgMSA0LjY2LjhoNC44NGEuNS41IDAgMCAxIDAgMUg5Ljc0Yy4yNi4zLjQ4LjY0LjY2IDFoMy4xYS41LjUgMCAwIDEgMCAxaC0yLjdjLjA4LjMyLjE1LjY2LjE4IDFoMi41MmEuNS41IDAgMCAxIDAgMWgtMi41MmE1LjQ4IDUuNDggMCAwIDEtMS4yNCAzaDQuNzZjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptMSAwVjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTUuNSAxOWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLTIuMzUtNC44NWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDQuNzEgMTVINy41YS41LjUgMCAwIDAgMC0xSDQuN2wxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0QXJyb3dMZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgNHY1LjAyYy0uMzQuMDMtLjY4LjEtMSAuMTlWNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMkg5Ljc0Yy4yNi0uMy40OC0uNjQuNjYtMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMVptOC41IDExaC0yLjUyYTUuNTkgNS41OSAwIDAgMCAwLTFoMi41MmEuNS41IDAgMCAxIDAgMVptMC0yaC0yLjdjLS4xLS4zNS0uMjQtLjY4LS40LTFoMy4xYS41LjUgMCAwIDEgMCAxWm0wLTJIOS43NGE1LjUzIDUuNTMgMCAwIDAtMS4wOC0xaDQuODRhLjUuNSAwIDAgMSAwIDFabTEuMy00TDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVoMy4zWk01LjUgMTlhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS0yLjM1LTQuODVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDE1SDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEFycm93TGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgOFYySDZhMiAyIDAgMCAwLTIgMnY3LjVhNi40OCA2LjQ4IDAgMCAxIDYuMDMuNTRjLjA5LS4zMS4zOC0uNTQuNzItLjU0aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuMDZjLjQzLjQ0LjguOTUgMS4wOCAxLjVoMy45OGEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNDJjLjExLjQ4LjE3Ljk4LjE3IDEuNWgzLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMy40MmE2LjQ5IDYuNDkgMCAwIDEtMS42NCAzSDE4YTIgMiAwIDAgMCAyLTJWMTBoLTZhMiAyIDAgMCAxLTItMlptMS41IDBWMi41bDYgNkgxNGEuNS41IDAgMCAxLS41LS41Wm0tNyAxNWE1LjUgNS41IDAgMSAxIDAtMTEgNS41IDUuNSAwIDAgMSAwIDExWm0zLTVhLjUuNSAwIDAgMCAwLTFINC43bDEuNjUtMS42NWEuNS41IDAgMCAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMNC43MSAxOEg5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RBcnJvd0xlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0QXJyb3dMZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuNzUgMTEuNWEuNzUuNzUgMCAwIDAtLjcyLjU0Yy40Mi4yOC44MS42IDEuMTYuOTZoNS4wNmEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVpNNS41IDR2Ny4wOGMtLjUyLjA4LTEuMDMuMjItMS41LjQyVjRjMC0xLjEuOS0yIDItMmg2LjE3YS42LjYgMCAwIDEgLjA4IDBsLjA2LjAxYy4yMi4wMi40My4wNi42My4xNGwuMTYuMDljLjAyIDAgLjA0LjAyLjA1LjAzbC4wNS4wMi4wOC4wNWEyLjA3IDIuMDcgMCAwIDEgLjMuMjVsNS44MyA1LjgyQTIgMiAwIDAgMSAyMCA5LjgzVjIwYTIgMiAwIDAgMS0yIDJoLTYuODFjLjQzLS40NC44LS45NSAxLjA4LTEuNUgxOGEuNS41IDAgMCAwIC41LS41VjEwSDE0YTIgMiAwIDAgMS0yLTJWMy41SDZhLjUuNSAwIDAgMC0uNS41Wm0xMC43NSAxNWgtMy40MmMuMTEtLjQ4LjE3LS45OC4xNy0xLjVoMy4yNWEuNzUuNzUgMCAwIDEgMCAxLjVabTAtM2gtMy40MmE2LjQ2IDYuNDYgMCAwIDAtLjU2LTEuNWgzLjk4YS43NS43NSAwIDAgMSAwIDEuNVpNMTMuNSA0LjYyVjhjMCAuMjguMjIuNS41LjVoMy4zOEwxMy41IDQuNjJaTTYuNSAyM2E1LjUgNS41IDAgMSAxIDAtMTEgNS41IDUuNSAwIDAgMSAwIDExWm0zLTVhLjUuNSAwIDAgMCAwLTFINC43bDEuNjUtMS42NWEuNS41IDAgMCAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMNC43MSAxOEg5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RDbG9jazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdENsb2NrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljc2YTUuNDcgNS40NyAwIDAgMS0xLjI0LTNIOC41YS41LjUgMCAwIDEgMC0xaC41MmMuMDMtLjM0LjEtLjY4LjE5LTFIOC41YS41LjUgMCAwIDEgMC0xaDEuMWMuMTgtLjM2LjQtLjcuNjYtMUg4LjVhLjUuNSAwIDAgMSAwLTFoMi44NEE1LjQ3IDUuNDcgMCAwIDEgMTYgOS4yVjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptLTQgNGEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMCAyYS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0uNSAxLjVhLjUuNSAwIDEgMSAwIDEgLjUuNSAwIDAgMSAwLTFaXCIsIFwiTTExIDYuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiLCBcIk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0zYS41LjUgMCAwIDAtMSAwdjNjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIDAtMUgxNXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0Q2xvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0Q2xvY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djEuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNy40YzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNOSAxNC41YzAtLjE3IDAtLjM0LjAyLS41SDguNWEuNS41IDAgMCAwIDAgMWguNTJhNS41NyA1LjU3IDAgMCAxLS4wMi0uNVptLjItMS41Yy4xLS4zNS4yNC0uNjguNC0xSDguNWEuNS41IDAgMCAwIDAgMWguN1ptMS4wNi0yYy4zMS0uMzguNjctLjcyIDEuMDgtMUg4LjVhLjUuNSAwIDAgMCAwIDFoMS43NlpNNi41IDEwYS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xWk02IDEyLjVhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabTAgMmEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMTMgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtM2EuNS41IDAgMCAwLTEgMHYzYzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFIMTV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdENsb2NrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0Q2xvY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmg2LjgxYTYuNDkgNi40OSAwIDAgMS0xLjY0LTNoLS40MmEuNzUuNzUgMCAwIDEgMC0xLjVIMTFjMC0uNTIuMDYtMS4wMi4xNy0xLjVoLS40MmEuNzUuNzUgMCAwIDEgMC0xLjVoLjk4Yy4yOS0uNTUuNjUtMS4wNiAxLjA4LTEuNWgtMi4wNmEuNzUuNzUgMCAwIDEgMC0xLjVIMTVhNi40OCA2LjQ4IDAgMCAxIDUgMFYxMGgtNmEyIDIgMCAwIDEtMi0yWm0tNSA0LjI1YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBabTAgM2EuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFpNMTMuNSA4VjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVptOS41IDkuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWm0tNS43OC40MmEuNS41IDAgMCAxLS4yMi0uNVYxMy41YS41LjUgMCAxIDEgMSAwVjE3aDIuNWEuNS41IDAgMCAxIDAgMWgtMi45NGEuNS41IDAgMCAxLS4zNC0uMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RDbG9jazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RDbG9jazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE5LjQxIDguNDEgMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmg2LjgxYTYuNTIgNi41MiAwIDAgMS0xLjA4LTEuNUg2YS41LjUgMCAwIDEtLjUtLjVWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxLjA4Yy41Mi4wOCAxLjAzLjIyIDEuNS40MlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MlpNMTMuNSA0LjYybDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTEwLjc1IDE3LjVIMTFjMCAuNTIuMDYgMS4wMi4xNyAxLjVoLS40MmEuNzUuNzUgMCAwIDEgMC0xLjVabS40Mi0xLjVjLjEzLS41My4zMi0xLjAzLjU2LTEuNWgtLjk4YS43NS43NSAwIDAgMCAwIDEuNWguNDJabTEuNjQtM0E2LjUxIDYuNTEgMCAwIDEgMTUgMTEuNWgtNC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi4wNlptLTUuMDYtMS41YS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVpNNyAxNS4yNWEuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFptMTYtLjc1YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS01Ljc4LjQyYS41LjUgMCAwIDEtLjIyLS41VjEzLjVhLjUuNSAwIDEgMSAxIDBWMTdoMi41YS41LjUgMCAwIDEgMCAxaC0yLjk0YS41LjUgMCAwIDEtLjM0LS4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEN1YmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RDdWJlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS4zM2EyIDIgMCAwIDAgLjY3LTEuNVYxM2gxLjVhLjUuNSAwIDAgMCAwLTFIMTB2LTFoMS41YS41LjUgMCAwIDAgMC0xSDEwdi0uNWEyIDIgMCAwIDAtLjA2LS41aDEuNTZhLjUuNSAwIDAgMCAwLTFIOS4zMmEyIDIgMCAwIDAtLjQzLS4yOWwtMy0xLjVhMiAyIDAgMCAwLTEuNzggMEw0IDYuMjZWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVpNOC40NSA4LjYxbC0zLTEuNWExIDEgMCAwIDAtLjkgMGwtMyAxLjVBMSAxIDAgMCAwIDEgOS41djRhMSAxIDAgMCAwIC41NS45bDMgMS41YTEgMSAwIDAgMCAuOSAwbDMtMS41YTEgMSAwIDAgMCAuNTUtLjl2LTRhMSAxIDAgMCAwLS41NS0uOVpNMi4wNCA5LjczYS41LjUgMCAwIDEgLjY2LS4yNmwyLjMuOTkgMi4zLTFhLjUuNSAwIDAgMSAuNC45M2wtMi4yLjk0VjE0YS41LjUgMCAxIDEtMSAwdi0yLjY3bC0yLjItLjk0YS41LjUgMCAwIDEtLjI2LS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEN1YmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0Q3ViZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjMuMjZsLjEtLjA1QTIgMiAwIDAgMSA1IDZWM2ExIDEgMCAwIDEgMS0xaDN2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdjdhMSAxIDAgMCAxLTEgMUg5Ljk0YTIgMiAwIDAgMS0uNjEgMUgxMmEyIDIgMCAwIDAgMi0yVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkxLTIuOTFBMS41IDEuNSAwIDAgMCA5LjU5IDFINlptMi45IDYuNzFhMiAyIDAgMCAxIC40Mi4yOWgyLjE4YS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAtLjQ1LjI5bC44NC40MlpNMTAgOS41di41aDEuNWEuNS41IDAgMCAwIDAtMUg5Ljk0YTIgMiAwIDAgMSAuMDYuNVptMCAxLjV2MWgxLjVhLjUuNSAwIDAgMCAwLTFIMTBabTIuOC02aC0yLjNhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTIuOCA1Wk04LjQ0IDguNmwtMy0xLjVhMSAxIDAgMCAwLS45IDBsLTMgMS41YTEgMSAwIDAgMC0uNTUuOXY0YTEgMSAwIDAgMCAuNTUuOWwzIDEuNWExIDEgMCAwIDAgLjkgMGwzLTEuNWExIDEgMCAwIDAgLjU1LS45di00YTEgMSAwIDAgMC0uNTUtLjlaTTIuMDQgOS43NGEuNS41IDAgMCAxIC42Ni0uMjZsMi4zLjk5IDIuMy0xYS41LjUgMCAwIDEgLjQuOTNsLTIuMi45NFYxNGEuNS41IDAgMSAxLTEgMHYtMi42N2wtMi4yLS45NGEuNS41IDAgMCAxLS4yNi0uNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RDdWJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0Q3ViZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS43NmwuMS0uMDVhMiAyIDAgMCAxIDEuOCAwbDIuMTUgMS4wOEEuNS41IDAgMCAxIDguNSAxMGg1YS41LjUgMCAwIDEgMCAxSDkuMzJhMiAyIDAgMCAxIC42MiAxaDMuNTZhLjUuNSAwIDAgMSAwIDFIMTB2MWgzLjVhLjUuNSAwIDAgMSAwIDFIMTB2MS41YTIgMiAwIDAgMS0uNjcgMS41aDUuMTdjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptMSAwVjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVabS0yLjU1IDUuMS0zLTEuNWExIDEgMCAwIDAtLjkgMGwtMyAxLjVhMSAxIDAgMCAwLS41NS45djRhMSAxIDAgMCAwIC41NS45bDMgMS41YTEgMSAwIDAgMCAuOSAwbDMtMS41YTEgMSAwIDAgMCAuNTUtLjl2LTRhMSAxIDAgMCAwLS41NS0uOVptLTYuNDEgMS4xM2EuNS41IDAgMCAxIC42Ni0uMjZsMi4zLjk5IDIuMy0xYS41LjUgMCAwIDEgLjQuOTNsLTIuMi45NFYxN2EuNS41IDAgMSAxLTEgMHYtMi42N2wtMi4yLS45NGEuNS41IDAgMCAxLS4yNi0uNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RDdWJlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEN1YmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMTBhLjUuNSAwIDAgMC0uNDUuMjlsLjg0LjQyYTIgMiAwIDAgMSAuNDMuMjloNC4xOGEuNS41IDAgMCAwIDAtMWgtNVpNNSA0djVhMiAyIDAgMCAwLS45LjIxbC0uMS4wNVY0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDkuMzNhMiAyIDAgMCAwIC42LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDFabTguNSAxMUgxMHYtMWgzLjVhLjUuNSAwIDAgMSAwIDFabTAtMkgxMHYtLjVhMiAyIDAgMCAwLS4wNi0uNWgzLjU2YS41LjUgMCAwIDEgMCAxWm0xLjMtNkwxMSAzLjJ2My4zYzAgLjI4LjIyLjUuNS41aDMuM1ptLTYuMzUgNC42LTMtMS41YTEgMSAwIDAgMC0uOSAwbC0zIDEuNWExIDEgMCAwIDAtLjU1Ljl2NGExIDEgMCAwIDAgLjU1LjlsMyAxLjVhMSAxIDAgMCAwIC45IDBsMy0xLjVhMSAxIDAgMCAwIC41NS0uOXYtNGExIDEgMCAwIDAtLjU1LS45Wm0tNi40MSAxLjEzYS41LjUgMCAwIDEgLjY2LS4yNmwyLjMuOTkgMi4zLTFhLjUuNSAwIDAgMSAuNC45M2wtMi4yLjk0VjE3YS41LjUgMCAxIDEtMSAwdi0yLjY3bC0yLjItLjk0YS41LjUgMCAwIDEtLjI2LS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdEN1YmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RDdWJlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTcuNGwuMDItLjAxQTIuNSAyLjUgMCAwIDAgMTIgMTkuNzVWMTloNC4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTJWMTZoNC4yNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuMzdhMi41IDIuNSAwIDAgMC0xLjI2LTEuNDlsLS4xLS4wNWMuMDcuMDMuMTUuMDQuMjMuMDRoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNDMgMS4zN2wtMy4yLTEuNmEyLjUgMi41IDAgMCAwLTIuMjQgMEw0IDExLjdWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZabS0zLjMzIDExLjQtMy41LTEuNzRhMS41IDEuNSAwIDAgMC0xLjM0IDBsLTMuNSAxLjc1Yy0uNS4yNS0uODMuNzctLjgzIDEuMzR2NC41YzAgLjU3LjMyIDEuMDkuODMgMS4zNGwzLjUgMS43NWMuNDIuMjIuOTIuMjIgMS4zNCAwbDMuNS0xLjc1Yy41LS4yNS44My0uNzcuODMtMS4zNHYtNC41YTEuNSAxLjUgMCAwIDAtLjgzLTEuMzRabS03LjYyIDEuMzhhLjUuNSAwIDAgMSAuNjctLjIzTDYgMTYuNDVsMi43OC0xLjRhLjUuNSAwIDEgMSAuNDQuOUw2LjUgMTcuM3YzLjE5YS41LjUgMCAxIDEtMSAwdi0zLjJsLTIuNzItMS4zNWEuNS41IDAgMCAxLS4yMy0uNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RDdWJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdEN1YmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xMC41MiAxMi45Ni0uMi0uMWEuNzUuNzUgMCAwIDEgLjQzLTEuMzZoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMS0uMjMtLjA0Wk0xMiAxNnYtLjc1YzAtLjI2LS4wNC0uNTEtLjEyLS43NWg0LjM3YS43NS43NSAwIDAgMSAwIDEuNUgxMlptMCAzdi0xLjVoNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVIMTJabS02LjUtNy45NWEyLjUgMi41IDAgMCAwLS42Mi4yMUw0IDExLjdWNGMwLTEuMS45LTIgMi0yaDYuMTdhLjYuNiAwIDAgMSAuMDggMGwuMDYuMDFjLjIyLjAyLjQzLjA2LjYzLjE0bC4xNi4wOWMuMDIgMCAuMDQuMDIuMDUuMDNsLjA1LjAyLjA4LjA1YTIuMDcgMi4wNyAwIDAgMSAuMy4yNWw1LjgzIDUuODJBMiAyIDAgMCAxIDIwIDkuODNWMjBhMiAyIDAgMCAxLTIgMmgtNy40bC4wMi0uMDFhMi41IDIuNSAwIDAgMCAxLjI3LTEuNDlIMThhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXY3LjA1Wk0xNy4zOCA4LjUgMTMuNSA0LjYyVjhjMCAuMjguMjIuNS41LjVoMy4zOFptLTcuMiA1LjQtMy41LTEuNzRhMS41IDEuNSAwIDAgMC0xLjM1IDBsLTMuNSAxLjc1Yy0uNS4yNS0uODMuNzctLjgzIDEuMzR2NC41YzAgLjU3LjMyIDEuMDkuODMgMS4zNGwzLjUgMS43NWMuNDIuMjIuOTIuMjIgMS4zNCAwbDMuNS0xLjc1Yy41LS4yNS44My0uNzcuODMtMS4zNHYtNC41YTEuNSAxLjUgMCAwIDAtLjgzLTEuMzRabS03LjYzIDEuMzhhLjUuNSAwIDAgMSAuNjctLjIzTDYgMTYuNDVsMi43OC0xLjRhLjUuNSAwIDEgMSAuNDQuOUw2LjUgMTcuM3YzLjE5YS41LjUgMCAxIDEtMSAwdi0zLjJsLTIuNzItMS4zNWEuNS41IDAgMCAxLS4yMy0uNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RNdWx0aXBsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdE11bHRpcGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzYTIgMiAwIDAgMCAyLTJWOGgtNC41QTEuNSAxLjUgMCAwIDEgOSA2LjVabS0zIDRhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabS41IDIuNWEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptMi0yYS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFoLTRaTTggMTIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMi02VjIuMjVMMTQuNzUgN0gxMC41YS41LjUgMCAwIDEtLjUtLjVaTTE3IDlhMSAxIDAgMCAwLTEtMXY2YTMgMyAwIDAgMS0zIDNINmExIDEgMCAwIDAgMSAxaDYuMDZBMy45NCAzLjk0IDAgMCAwIDE3IDE0LjA2VjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RNdWx0aXBsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RNdWx0aXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuNSAxMGEuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVpNNiAxMi41YS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0yLTJjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVabS41IDEuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk02IDJhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDdhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgOS41OSAySDZaTTUgNGExIDEgMCAwIDEgMS0xaDN2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djZhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNFptNSAyLjVWMy4yTDEzLjggN2gtMy4zYS41LjUgMCAwIDEtLjUtLjVaTTE2IDhhMSAxIDAgMCAxIDEgMXY1LjA2QTMuOTQgMy45NCAwIDAgMSAxMy4wNiAxOEg3YTEgMSAwIDAgMS0xLTFoN2EzIDMgMCAwIDAgMy0zVjhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RNdWx0aXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdE11bHRpcGxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00IDQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNC4yNXY0Ljc1QzEwLjUgNy45OSAxMS41MSA5IDEyLjc1IDloNC43NXY4LjI1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC05Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtMTNabTMuNzUgNy4yNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVaTTcgMTUuMjVhLjc1Ljc1IDAgMSAwIDEuNSAwIC43NS43NSAwIDAgMC0xLjUgMFptMy0zYzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuMDVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjA1YS43NS43NSAwIDAgMC0uNzUuNzVabS43NSAyLjI1YS43NS43NSAwIDAgMCAwIDEuNWgzLjA1YS43NS43NSAwIDAgMCAwLTEuNWgtMy4wNVpNMTIgNi43NVYyLjQ3bC4yMi4xOSA0LjYyIDQuNjIuMi4yMmgtNC4yOWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNi42MyAyMC41Yy4zLjg3IDEuMTQgMS41IDIuMTIgMS41aDYuNUE0Ljc1IDQuNzUgMCAwIDAgMjAgMTcuMjV2LTUuODhjMC0uNi0uMjQtMS4xNy0uNjYtMS42bC0uODQtLjgzdjguMzFjMCAxLjgtMS40NSAzLjI1LTMuMjUgMy4yNUg2LjYzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRCdWxsZXRMaXN0TXVsdGlwbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0TXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03Ljc1IDExLjVhLjc1Ljc1IDAgMSAwIDAgMS41Ljc1Ljc1IDAgMCAwIDAtMS41Wk03IDE1LjI1YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBabTMtM2MwLS40MS4zNC0uNzUuNzUtLjc1aDMuMDVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjA1YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy4wNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuMDVaTTYuMjUgMkM1LjAxIDIgNCAzIDQgNC4yNXYxM2MwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg5YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjguODdjMC0uNi0uMjQtMS4xNy0uNjYtMS42bC00LjYyLTQuNjFjLS40Mi0uNDItMS0uNjYtMS41OS0uNjZINi4yNVpNNS41IDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjI1djMuMjVDMTAuNSA3Ljk5IDExLjUxIDkgMTIuNzUgOUgxNnY4LjI1YzAgLjQxLS4zNC43NS0uNzUuNzVoLTlhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTEzWm02LjUgMi41VjQuNTZsMi45NCAyLjk0aC0yLjE5YS43NS43NSAwIDAgMS0uNzUtLjc1Wk04Ljc1IDIyYy0uOTggMC0xLjgxLS42My0yLjEyLTEuNWg4LjYyYzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWOC45NGwuODQuODRjLjQyLjQyLjY2IDEgLjY2IDEuNTl2NS44OEE0Ljc1IDQuNzUgMCAwIDEgMTUuMjUgMjJoLTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdE9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50QnVsbGV0TGlzdE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCA0LjcgMi4xNSAyLjg2YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0xLjE2LTEuMTZBMS41IDEuNSAwIDAgMSAxNC41IDE4aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41VjQuN1ptOS4zIDkuM0g4LjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC40Ny0uMzJsLS42OC0uNjhabS0xLTEtMS0xSDguNWEuNS41IDAgMCAwIDAgMWgzLjhabS0yLTItMS0xaC0uOGEuNS41IDAgMCAwIDAgMWgxLjhabTMuMiAwaC0uMzhMMTYgMTMuODhWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjJINS41Yy0uMzggMC0uNzMuMTQtMSAuMzhMMTIuMTIgMTBoMS4zOGEuNS41IDAgMCAxIDAgMVpNNiAxMC41YS41LjUgMCAxIDAgMSAwIC41LjUgMCAwIDAtMSAwWm0wIDJhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBabTAgMmEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMFptNS04VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRCdWxsZXRMaXN0T2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0LjcgMi4xNSAyLjg2YS41LjUgMCAxIDEgLjctLjdsMTUgMTVhLjUuNSAwIDAgMS0uNy43bC0xLjI1LTEuMjRBMiAyIDAgMCAxIDE0IDE4SDZhMiAyIDAgMCAxLTItMlY0LjdabTExIDExLTEuMDMtMS4wMmEuNS41IDAgMCAxLS40Ny4zMmgtNWEuNS41IDAgMCAxIDAtMWg0LjhsLTEtMUg4LjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLTFIOC41YS41LjUgMCAwIDEgMC0xaC44TDUgNS43VjE2YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0uM1pNMTIuMTIgMTBsMSAxaC4zOGEuNS41IDAgMCAwIDAtMWgtMS4zOFpNMTUgOHY0Ljg4bDEgMVY3LjRjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZhMiAyIDAgMCAwLTEuMzUuNTNsLjcuN0ExIDEgMCAwIDEgNiAzaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1Wm0tOSAyLjVhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBabS41IDEuNWEuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVpNNiAxNC41YS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWk0xNC44IDdoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEJ1bGxldExpc3RPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNS4wNlYyMGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAxLjgtMS4xNGwuOTIuOTJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkw0IDUuMDZabTEyLjQ3IDEyLjQ3LjUuNWEuNzUuNzUgMCAwIDEtLjcyLjk3aC01LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDUuNWMuMDggMCAuMTUuMDEuMjIuMDNaTTE0Ljk0IDE2aC00LjE5YS43NS43NSAwIDAgMSAwLTEuNWgyLjY5bDEuNSAxLjVabS0zLTNoLTEuMTlhLjc1Ljc1IDAgMCAxLS4yNi0xLjQ1TDExLjk0IDEzWk03IDEyLjI1YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBabTAgM2EuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0wIDNhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFpNMTYuMjUgMTNoLS4wN0wyMCAxNi44MlYxMGgtNmEyIDIgMCAwIDEtMS4yOS0uNDdsMS45NyAxLjk3aDEuNTdhLjc1Ljc1IDAgMCAxIDAgMS41Wk0xMiA4YzAgLjUuMTguOTQuNDcgMS4yOUw1LjMxIDIuMTJBMiAyIDAgMCAxIDYgMmg2djZabTEuNSAwVjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QnVsbGV0TGlzdE9mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEJ1bGxldExpc3RPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03IDEyLjI1YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBabS43NSAyLjI1YS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVpNNyAxOC4yNWEuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWk00IDUuMDYgMi4yMiAzLjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMTguNSAxOC41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLS45Mi0uOTJBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTItMlY1LjA2Wm0xNC41IDE0LjUtMS41My0xLjUzYS43NS43NSAwIDAgMS0uNzIuOTdoLTUuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNS41Yy4wOCAwIC4xNS4wMS4yMi4wM0wxNC45NCAxNmgtNC4xOWEuNzUuNzUgMCAwIDEgMC0xLjVoMi42OWwtMS41LTEuNWgtMS4xOWEuNzUuNzUgMCAwIDEtLjI2LTEuNDVMNS41IDYuNTZWMjBjMCAuMjcuMjIuNS41LjVoMTJhLjUuNSAwIDAgMCAuNS0uNXYtLjQ0Wk0xMiA4YzAgLjUuMTguOTQuNDcgMS4zbC4yNC4yM0EyIDIgMCAwIDAgMTQgMTBoNC41djUuMzJsMS41IDEuNXYtN2EyIDIgMCAwIDAtLjU5LTEuNEwxMy42IDIuNThhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0uNy4xMkw2LjY5IDMuNUgxMlY4Wm0xLjUtMy4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWm0yLjc1IDYuODhoLTEuNTdsMS41IDEuNWguMDdhLjc1Ljc1IDAgMCAwIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDYXRjaFVwMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDYXRjaFVwMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDF2My41QzggNS4zMyA4LjY3IDYgOS41IDZIMTN2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTMuNVYxMWgxLjVjLjQ0IDAgLjg1LS4yIDEuMTMtLjUxbC40MyAxLjQ0YTEuNSAxLjUgMCAwIDAgMi42NC40N0w5Ljc1IDExaC43NWExLjUgMS41IDAgMCAwIDAtM0g5Yy0uMzMgMC0uNjQuMS0uOS4zbC0uNjYtMi4yM2ExLjUgMS41IDAgMCAwLTIuNzgtLjI0TDMuNTcgOEgzVjIuNUMzIDEuNjcgMy42NyAxIDQuNSAxSDhabTEgLjI1VjQuNWMwIC4yOC4yMi41LjUuNWgzLjI1TDkgMS4yNVptLTIuNTIgNS4xYS41LjUgMCAwIDAtLjkzLS4wN0w0LjIgOUgyLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIC40NS0uMjhsLjkzLTEuODcgMS4xNCAzLjhhLjUuNSAwIDAgMCAuODguMTVMOS4yNSAxMGgxLjI1YS41LjUgMCAwIDAgMC0xSDlhLjUuNSAwIDAgMC0uNC4ybC0uOSAxLjItMS4yMi00LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDYXRjaFVwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q2F0Y2hVcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUgMWEyIDIgMCAwIDAtMiAydjMuNWEuNS41IDAgMCAwIDEgMFYzYTEgMSAwIDAgMSAxLTFoM3YyLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxMnY3YTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xdi0ySDN2MmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNkw5LjY1IDEuNDRBMS41IDEuNSAwIDAgMCA4LjU5IDFINVptNi44IDRIOS41YS41LjUgMCAwIDEtLjUtLjVWMi4yTDExLjggNVpNNi40NyA2LjM2YS41LjUgMCAwIDAtLjkzLS4wOEw0LjIgOUgyLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIC40NS0uMjhsLjkzLTEuODcgMS4xNCAzLjhhLjUuNSAwIDAgMCAuODguMTVMOS4yNSAxMGgxLjI1YS41LjUgMCAwIDAgMC0xSDlhLjUuNSAwIDAgMC0uNC4ybC0uOSAxLjItMS4yMi00LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDYXRjaFVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDYXRjaFVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41VjEzaDEuNWExLjUgMS41IDAgMCAwIDEuMzQtLjgzbC4wNC0uMDcgMS4yNCAyLjk4YTEuNSAxLjUgMCAwIDAgMi43Mi4xTDExLjkzIDEzaC41N2ExLjUgMS41IDAgMCAwIDAtM0gxMWExLjUgMS41IDAgMCAwLTEuMzQuODNsLS4wNC4wNy0xLjI0LTIuOThhMS41IDEuNSAwIDAgMC0yLjcyLS4xTDQuNTcgMTBINFYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNy40NiA4LjMxYS41LjUgMCAwIDAtLjktLjAzTDUuMTggMTFIMy41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAuNDUtLjI4bDEtMi4wMiAyLjA5IDVhLjUuNSAwIDAgMCAuOS4wMkwxMS4zMiAxMmgxLjE5YS41LjUgMCAwIDAgMC0xSDExYS41LjUgMCAwIDAtLjQ1LjI4bC0xIDIuMDItMi4wOS01WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDYXRjaFVwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q2F0Y2hVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjQuNWEuNS41IDAgMCAwIDEgMFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtM0g0djNjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTcuNDUgOC4zYS41LjUgMCAwIDAtLjktLjAyTDUuMTggMTFIMy41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAuNDUtLjI4bDEtMi4wMiAyLjA5IDVhLjUuNSAwIDAgMCAuOS4wMkwxMS4zMiAxMmgxLjE5YS41LjUgMCAwIDAgMC0xSDExYS41LjUgMCAwIDAtLjQ1LjI4bC0xIDIuMDItMi4wOS01WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDYXRjaFVwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDYXRjaFVwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAySDZhMiAyIDAgMCAwLTIgMnY4aC42bDEuMy0yLjk1YTEuNzUgMS43NSAwIDAgMSAzLjEtLjJsLjAyLjA0LjA5LjE4IDEuNzMgNC4zMS4zNC0uNWMuMjctLjQ3LjczLS43OCAxLjI0LS44NmguMDZsLjE4LS4wMmgyLjA0YTEuNzUgMS43NSAwIDAgMSAuMjYgMy40OGgtLjA1bC0uMTguMDJIMTMuN2wtMS42NiAyLjZhMS43NSAxLjc1IDAgMCAxLTMuMDMuMDVsLS4wMy0uMDUtLjA4LS4xNy0xLjQ2LTMuNjUtLjA4LjE3YTEuNzUgMS43NSAwIDAgMS0xLjMyIDEuMDNoLS4wNmwtLjE5LjAySDRWMjBjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJWMlptMiA2LjVhLjUuNSAwIDAgMS0uNS0uNVYyLjVsNiA2SDE0Wk01LjI2IDEzSDIuNjRhLjc1Ljc1IDAgMCAwIC4xMSAxLjVoMy4xbC4wMi0uMDFoLjA0YS43NS43NSAwIDAgMCAuNTItLjQ0bDEuMDQtMi4zNiAyLjMzIDUuODMuMDUuMXYuMDFhLjc1Ljc1IDAgMCAwIDEuMzEtLjA0bDEuOTgtMy4wOUgxNC44MWEuNzUuNzUgMCAwIDAtLjExLTEuNWgtMi4xMmEuNzUuNzUgMCAwIDAtLjU1LjRsLTEuNDIgMi4xLTIuNDItNi4wMy0uMDUtLjF2LS4wMWEuNzUuNzUgMCAwIDAtMS4zMy4wOUw1LjI2IDEzWm0uNDkgMS41SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENhdGNoVXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDYXRjaFVwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTggMjAuNWEuNS41IDAgMCAwIC41LS41VjEwSDE0YTIgMiAwIDAgMS0yLTJWMy41SDZhLjUuNSAwIDAgMC0uNS41djUuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjRjMC0xLjEuOS0yIDItMmg2LjE3YS42LjYgMCAwIDEgLjA4IDBsLjA2LjAxYy4yMi4wMi40My4wNi42My4xNGwuMTYuMDljLjAyIDAgLjA0LjAyLjA1LjAzbC4wNS4wMi4wOC4wNWEyLjA3IDIuMDcgMCAwIDEgLjMuMjVsNS44MyA1LjgyQTIgMiAwIDAgMSAyMCA5LjgzVjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zLjc1YS43NS43NSAwIDAgMSAxLjUgMFYyMGMwIC4yNy4yMi41LjUuNWgxMlptLS42Mi0xMkwxMy41IDQuNjJWOGMwIC4yOC4yMi41LjUuNWgzLjM4Wk0yLjc1IDEzaDIuNWwxLjU2LTMuNTVhLjc1Ljc1IDAgMCAxIDEuMzMtLjF2LjAybC4wNS4xIDIuNDIgNi4wMyAxLjQyLTIuMWEuNzUuNzUgMCAwIDEgLjU1LS40aDIuMTFhLjc1Ljc1IDAgMCAxIC4xMiAxLjVIMTMuMTRsLTEuOTggMy4xYS43NS43NSAwIDAgMS0xLjMuMDNsLS4wNi0uMS0yLjMzLTUuODQtMS4wNCAyLjM2YS43NS43NSAwIDAgMS0uNTYuNDRoLS4wMWwtLjExLjAxaC0zYS43NS43NSAwIDAgMS0uMTEtMS41aC4xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q2hlY2ttYXJrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDaGVja21hcmsxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjY2QTUuNSA1LjUgMCAwIDAgNCA1LjJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVptMCA5LjI1YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk03Ljg1IDguNjVhLjUuNSAwIDAgMC0uNyAwTDQuNSAxMS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDaGVja21hcmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDaGVja21hcmsxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYyLjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWM2ExIDEgMCAwIDEgMS0xaDN2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdjdhMSAxIDAgMCAxLTEgMUg5Ljc0Yy0uMzEuMzgtLjY3LjcyLTEuMDggMUgxMmEyIDIgMCAwIDAgMi0yVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkxLTIuOTFBMS41IDEuNSAwIDAgMCA5LjU5IDFINlptNi44IDRoLTIuM2EuNS41IDAgMCAxLS41LS41VjIuMkwxMi44IDVaTTEwIDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTcuODUgOC42NWEuNS41IDAgMCAwLS43IDBMNC41IDExLjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q2hlY2ttYXJrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE1LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENoZWNrbWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDQuNSAxNS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDaGVja21hcmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENoZWNrbWFyazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjgxQTYuNSA2LjUgMCAwIDAgNCAxMS41VjRjMC0xLjEuOS0yIDItMmg2WlwiLCBcIk0xMy41IDIuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02WlwiLCBcIk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwTDUuNSAxOC43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENoZWNrbWFyazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENoZWNrbWFyazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41aC01LjczYTYuNTIgNi41MiAwIDAgMS0xLjA4IDEuNUgxOGEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyTDEzLjYgMi42YS41LjUgMCAwIDAtLjA1LS4wNCAyLjA3IDIuMDcgMCAwIDAtLjM0LS4yNWwtLjA1LS4wMy0uMDUtLjAzLS4xNi0uMDljLS4yLS4wOC0uNDEtLjEyLS42My0uMTRoLS4wNmEuNi42IDAgMCAwLS4wOC0uMDFINmEyIDIgMCAwIDAtMiAydjcuNWMuNDctLjIuOTgtLjM0IDEuNS0uNDJWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMFptLTUtMTUuMzggMy44OCAzLjg4SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MlpcIiwgXCJNMTIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMi4xNS0yLjM1YS41LjUgMCAwIDAtLjcgMEw1LjUgMTguNzlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDaGV2cm9uRG91YmxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDaGV2cm9uRG91YmxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTUuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdMMy4yMSAxNC41bDEuMTQtMS4xNVptMi4zLS43YS41LjUgMCAwIDAgMCAuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjUtMS41YS41LjUgMCAwIDAgMC0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENoZXZyb25Eb3VibGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDaGV2cm9uRG91YmxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuNmMtLjE4LjM2LS40LjctLjY2IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTUuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdMMy4yMSAxNC41bDEuMTQtMS4xNVptMi4zLS43YS41LjUgMCAwIDAgMCAuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjUtMS41YS41LjUgMCAwIDAgMC0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENoZXZyb25Eb3VibGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENoZXZyb25Eb3VibGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNi44MUE2LjUgNi41IDAgMCAwIDQgMTEuNVY0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlpNNi41IDIzYTUuNSA1LjUgMCAxIDEgMC0xMSA1LjUgNS41IDAgMCAxIDAgMTFabS0xLjE1LTcuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDMuMjEgMTcuNWwyLjE0LTIuMTVabTIuMy0uN2EuNS41IDAgMCAwIDAgLjdsMi4xNCAyLjE1LTIuMTQgMi4xNWEuNS41IDAgMCAwIC43LjdsMi41LTIuNWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDaGV2cm9uRG91YmxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q2hldnJvbkRvdWJsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41aC01LjczYTYuNTIgNi41MiAwIDAgMS0xLjA4IDEuNUgxOGEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyTDEzLjYgMi42YS41LjUgMCAwIDAtLjA1LS4wNCAyLjA3IDIuMDcgMCAwIDAtLjM0LS4yNWwtLjA1LS4wMy0uMDUtLjAzLS4xNi0uMDljLS4yLS4wOC0uNDEtLjEyLS42My0uMTRoLS4wNmEuNi42IDAgMCAwLS4wOC0uMDFINmEyIDIgMCAwIDAtMiAydjcuNWMuNDctLjIuOTgtLjM0IDEuNS0uNDJWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMFptLTUtMTUuMzggMy44OCAzLjg4SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MlpNNi41IDIzYTUuNSA1LjUgMCAxIDEgMC0xMSA1LjUgNS41IDAgMCAxIDAgMTFabS0xLjE1LTcuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMi41IDIuNWEuNS41IDAgMCAwIDAgLjdsMi41IDIuNWEuNS41IDAgMCAwIC43LS43TDMuMjEgMTcuNWwyLjE0LTIuMTVabTIuMy0uN2EuNS41IDAgMCAwIDAgLjdsMi4xNCAyLjE1LTIuMTQgMi4xNWEuNS41IDAgMCAwIC43LjdsMi41LTIuNWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDb250cmFjdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q29udHJhY3QxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkuNSA1aDMuMjVMOSAxLjI1VjQuNWMwIC4yOC4yMi41LjUuNVptMCAxQTEuNSAxLjUgMCAwIDEgOCA0LjVWMUg0LjVDMy42NyAxIDMgMS42NyAzIDIuNXYxMWMwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2SDkuNVptLTEuNjUgNS4xNWMuMDUuMDQuMDkuMS4xMS4xNmEuNC40IDAgMCAxIC4wNC4xOS40LjQgMCAwIDEtLjA0LjE5LjM2LjM2IDAgMCAxLS4xMS4xNi4zNi4zNiAwIDAgMS0uMTYuMTEuNC40IDAgMCAxLS4xOS4wNC40LjQgMCAwIDEtLjE5LS4wNC4zNi4zNiAwIDAgMS0uMTYtLjExbC0uNjUtLjY0LS42NS42NGEuMzYuMzYgMCAwIDEtLjE2LjExLjQuNCAwIDAgMS0uMTkuMDQuNC40IDAgMCAxLS4xOS0uMDQuMzYuMzYgMCAwIDEtLjE2LS4xMS4zNi4zNiAwIDAgMS0uMTEtLjE2LjQuNCAwIDAgMS0uMDQtLjE5LjQuNCAwIDAgMSAuMDQtLjE5LjM2LjM2IDAgMCAxIC4xMS0uMTZsLjY0LS42NS0uNjQtLjY1QS40Ny40NyAwIDAgMSA1IDkuNWMwLS4xMy4wNS0uMjYuMTUtLjM1LjA5LS4xLjIyLS4xNS4zNS0uMTUuMTMgMCAuMjYuMDUuMzUuMTVsLjY1LjY0LjY1LS42NGMuMDktLjEuMjItLjE1LjM1LS4xNS4xMyAwIC4yNi4wNS4zNS4xNS4xLjA5LjE1LjIyLjE1LjM1IDAgLjEzLS4wNS4yNi0uMTUuMzVsLS42NC42NS42NC42NVpNMTIgMTJIOS41YS40Ny40NyAwIDAgMS0uMzUtLjE1LjQ3LjQ3IDAgMCAxLS4xNS0uMzVjMC0uMTMuMDUtLjI2LjE1LS4zNS4wOS0uMS4yMi0uMTUuMzUtLjE1SDEydjFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENvbnRyYWN0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q29udHJhY3QxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm03LjIgMTAuNS42NS0uNjVhLjUuNSAwIDEgMC0uNy0uN2wtLjY1LjY0LS42NS0uNjRhLjUuNSAwIDEgMC0uNy43bC42NC42NS0uNjQuNjVhLjUuNSAwIDAgMCAuNy43bC42NS0uNjQuNjUuNjRhLjUuNSAwIDEgMCAuNy0uN2wtLjY0LS42NVpNMy42IDEuNTlBMiAyIDAgMCAxIDUgMWgzLjU5Yy40IDAgLjc3LjE2IDEuMDYuNDRsMi45MSAyLjkxYy4yOC4yOS40NC42Ny40NCAxLjA2VjEzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIC41OS0xLjQxWk0xMiAxMVY2SDkuNUExLjUgMS41IDAgMCAxIDggNC41VjJINWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi0xSDkuNWEuNS41IDAgMCAxIDAtMUgxMlpNOS41IDVoMi4zTDkgMi4ydjIuM2EuNS41IDAgMCAwIC41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENvcHkxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENvcHkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgNC41VjFINi41QzUuNjcgMSA1IDEuNjcgNSAyLjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2aC0zLjVBMS41IDEuNSAwIDAgMSA5IDQuNVptMSAwVjEuMjVMMTMuNzUgNUgxMC41YS41LjUgMCAwIDEtLjUtLjVaTTMgNGExIDEgMCAwIDEgMS0xdjguNUEyLjUgMi41IDAgMCAwIDYuNSAxNEgxMmExIDEgMCAwIDEtMSAxSDYuNTZBMy41NiAzLjU2IDAgMCAxIDMgMTEuNDRWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q29weTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENvcHkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03IDFhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0yVjQuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0xLjkyLTEuOTFBMS41IDEuNSAwIDAgMCAxMC41OCAxSDdabTUgMTFIN2ExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWgzdjEuNWMwIC44My42NyAxLjUgMS41IDEuNUgxM3Y2YTEgMSAwIDAgMS0xIDFabS44LThoLTEuM2EuNS41IDAgMCAxLS41LS41VjIuMkwxMi44IDRaTTMgNGExIDEgMCAwIDEgMS0xdjhhMyAzIDAgMCAwIDMgM2g1YTEgMSAwIDAgMS0xIDFINi43OUM0LjY5IDE1IDMgMTMuMyAzIDExLjIxVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENvcHkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENvcHkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExIDYuNVYySDcuNUM2LjY3IDIgNiAyLjY3IDYgMy41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDhjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDExIDYuNVptMSAwVjIuMjVMMTYuNzUgN0gxMi41YS41LjUgMCAwIDEtLjUtLjVaTTQgNWExIDEgMCAwIDEgMS0xdjEwLjVBMi41IDIuNSAwIDAgMCA3LjUgMTdIMTVhMSAxIDAgMCAxLTEgMUg3LjU1QTMuNTUgMy41NSAwIDAgMSA0IDE0LjQ1VjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENvcHkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDb3B5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiA0YzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNGEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDdhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMSA2LjVWM0g4Wm00IC4ydjMuM2MwIC4yOC4yMi41LjUuNWgzLjNMMTIgMy4yWk00IDVhMSAxIDAgMCAxIDEtMXYxMGEzIDMgMCAwIDAgMyAzaDdhMSAxIDAgMCAxLTEgMUg3Ljk0QTMuOTQgMy45NCAwIDAgMSA0IDE0LjA2VjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENvcHkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENvcHkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzIDYuNzVWMkg4Ljc1QzcuNTEgMiA2LjUgMyA2LjUgNC4yNXYxM2MwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg5YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjloLTQuNzVDMTQuMDEgOSAxMyA4IDEzIDYuNzVabTEuNSAwVjIuNWw1IDVoLTQuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS05LTIuMTJDNC42MyA0LjkzIDQgNS43NyA0IDYuNzV2MTAuNUE0Ljc1IDQuNzUgMCAwIDAgOC43NSAyMmg2LjVjLjk3IDAgMS44LS42MiAyLjEyLTEuNUg4Ljc1YTMuMjUgMy4yNSAwIDAgMS0zLjI1LTMuMjVWNC42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q29weTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENvcHkyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01LjUgNC42M1YxNy4yNWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDguNjJjLS4zMS44OC0xLjE1IDEuNS0yLjEzIDEuNUg4Ljc1QTQuNzUgNC43NSAwIDAgMSA0IDE3LjI1VjYuNzVjMC0uOTguNjMtMS44MSAxLjUtMi4xMlpNMTMuMTMgMmMuNiAwIDEuMTcuMjQgMS41OS42Nmw0LjYyIDQuNjJjLjQyLjQyLjY2IDEgLjY2IDEuNnY4LjM3YzAgMS4yNS0xLjAxIDIuMjUtMi4yNSAyLjI1aC05Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtMTNDNi41IDMuMDEgNy41MSAyIDguNzUgMmg0LjM4Wk0xMyAzLjVIOC43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzYzAgLjQyLjM0Ljc1Ljc1Ljc1aDljLjQxIDAgLjc1LS4zMy43NS0uNzVWOWgtMy4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjFMMTMgNi43NlYzLjVabTEuNSAxLjA2djIuMmMwIC4zNy4yOC42OS42NS43NGgyLjI5TDE0LjUgNC41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q29weTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q29weTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjUgMTQuNzVWNWgtNi43NUE0LjI1IDQuMjUgMCAwIDAgMTQgOS4yNXYyNC41QzE0IDM2LjEgMTUuOSAzOCAxOC4yNSAzOGgxNi41QzM3LjEgMzggMzkgMzYuMSAzOSAzMy43NVYxOWgtOS43NUE0LjI1IDQuMjUgMCAwIDEgMjUgMTQuNzVabTIuNSAwVjUuNWwxMSAxMWgtOS4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1Wk05IDEzLjdhNCA0IDAgMCAxIDIuNS0zLjd2MjMuNzVhNi43NSA2Ljc1IDAgMCAwIDYuNzUgNi43NWgxNS43NkE0IDQgMCAwIDEgMzAuMyA0M0gxOC4yNUE5LjI1IDkuMjUgMCAwIDEgOSAzMy43NVYxMy43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDb3B5NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q29weTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTExLjUgMTAuMzh2MjMuMzdhNi43NSA2Ljc1IDAgMCAwIDYuNzUgNi43NWgxNS4zN2E0LjI1IDQuMjUgMCAwIDEtMy44NyAyLjVoLTExLjVBOS4yNSA5LjI1IDAgMCAxIDkgMzMuNzV2LTE5LjVjMC0xLjcyIDEuMDMtMy4yIDIuNS0zLjg3Wk0yNS43NiA1YzEuMTIgMCAyLjIuNDUgMyAxLjI0bDkgOWMuOC44IDEuMjQgMS44OCAxLjI0IDN2MTUuNTFDMzkgMzYuMSAzNy4xIDM4IDM0Ljc1IDM4aC0xNi41QTQuMjUgNC4yNSAwIDAgMSAxNCAzMy43NVY5LjI1QzE0IDYuOSAxNS45IDUgMTguMjUgNWg3LjVaTTI1IDcuNWgtNi43NWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MjQuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxNi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxOWgtNy4yNUE0LjI1IDQuMjUgMCAwIDEgMjUgMTQuOTZWNy41Wm0xMC40OCA5TDI3LjUgOC41MnY2LjIzYzAgLjkyLjcgMS42NyAxLjYgMS43NGwuMTUuMDFoNi4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMC41IDVoMy4yNUwxMCAxLjI1VjQuNWMwIC4yOC4yMi41LjUuNVptMCAxQTEuNSAxLjUgMCAwIDEgOSA0LjVWMUg1LjVDNC42NyAxIDQgMS42NyA0IDIuNXY3LjAxbC4wNC4wM2EyLjUgMi41IDAgMCAxIC42Mi43M2MuMTMtLjA5LjI2LS4xNi40LS4yQTEuNSAxLjUgMCAwIDEgNi41IDljLjM3IDAgLjczLjEzIDEgLjM4YTEuNSAxLjUgMCAwIDEgMi40NC42OEExLjQ5IDEuNDkgMCAwIDEgMTEgMTEuNWMwIC4zNy0uMTMuNzItLjM4IDFhMS41IDEuNSAwIDAgMS0uNjggMi40NGwtLjAyLjAzLS4wMS4wM2gyLjZjLjgyIDAgMS41LS42NyAxLjUtMS41VjZIMTAuNVptLTggOUExLjUgMS41IDAgMCAxIDEgMTMuNXYtMmExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMSAxLTEgMCAuNS41IDAgMSAwLTEgMHYyYzAgLjEzLjA1LjI2LjE1LjM1QS41LjUgMCAwIDAgMyAxMy41YS41LjUgMCAxIDEgMSAwQTEuNSAxLjUgMCAwIDEgMi41IDE1Wk05IDEzaC41YS41LjUgMCAxIDEgMCAxSDl2LjVhLjUuNSAwIDEgMS0xIDBWMTRoLS45OHYuNWEuNS41IDAgMSAxLTEgMFYxNEg1LjVhLjUuNSAwIDEgMSAwLTFoLjUxdi0xSDUuNWEuNS41IDAgMSAxIDAtMUg2di0uNWEuNS41IDAgMSAxIDEgMHYuNWgxdi0uNWEuNS41IDAgMSAxIDEgMHYuNWguNWEuNS41IDAgMSAxIDAgMUg5djFabS0xLjk5IDBIOHYtMUg3bC4wMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTAuNjUgMS40NCAyLjkxIDIuOTFjLjI4LjI4LjQ0LjY2LjQ0IDEuMDZWMTNhMiAyIDAgMCAxLTIgMmgtMS42Yy4zNy0uMjMuNjUtLjU4Ljc4LTFIMTJhMSAxIDAgMCAwIDEtMVY2aC0yLjVBMS41IDEuNSAwIDAgMSA5IDQuNVYySDZhMSAxIDAgMCAwLTEgMXY2LjYxYy0uMDUuMDgtLjEuMTctLjEzLjI2YS42Ny42NyAwIDAgMC0uMTIuMDZBMi40OCAyLjQ4IDAgMCAwIDQgOS4yVjNhMiAyIDAgMCAxIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRabS0uNSAzLjQxYy4wOS4xLjIyLjE1LjM1LjE1aDIuMjlMMTAgMi4yMVY0LjVjMCAuMTMuMDUuMjYuMTUuMzVaTTIuNSAxNUExLjUgMS41IDAgMCAxIDEgMTMuNXYtMmExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwIC41LjUgMCAwIDEgMSAwQTEuNSAxLjUgMCAwIDEgMi41IDE1Wm03LTJIOXYtMWguNWEuNS41IDAgMCAwIDAtMUg5di0uNWEuNS41IDAgMCAwLTEgMHYuNUg3di0uNWEuNS41IDAgMCAwLTEgMHYuNWgtLjVhLjUuNSAwIDAgMCAwIDFINmwuMDEgMUg1LjVhLjUuNSAwIDAgMCAwIDFoLjUydi41YS41LjUgMCAwIDAgMSAwVjE0SDh2LjVhLjUuNSAwIDAgMCAxIDBWMTRoLjVhLjUuNSAwIDAgMCAwLTFaTTggMTNoLS45OXYtMUg4djFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENzczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q3NzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMC41IDVoMy4yNUwxMCAxLjI1VjQuNWMwIC4yOC4yMi41LjUuNVptMCAxQTEuNSAxLjUgMCAwIDEgOSA0LjVWMUg1LjVDNC42NyAxIDQgMS42NyA0IDIuNXY3LjAxbC4wNC4wM2MuMDguMDYuMTYuMTIuMjMuMi4wNy4wNy4xNC4xNS4yLjI0bC4wMS4wMmEyLjQ0IDIuNDQgMCAwIDEgMS45NC0xaC4xNWMuNjQgMCAxLjI3LjI2IDEuNzIuNzFsLjIuMjMuMDEuMDNBMi40NCAyLjQ0IDAgMCAxIDEwLjQyIDloLjE1QTIuNDEgMi40MSAwIDAgMSAxMyAxMS40M2MwIC4zNC0uMTEuNjctLjMyLjk0bC4wOS4xOGEyLjQzIDIuNDMgMCAwIDEtLjI1IDIuNDVBMS41IDEuNSAwIDAgMCAxNCAxMy41VjZoLTMuNVptLTkuMDYgOC41NkExLjUgMS41IDAgMCAwIDQgMTMuNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMSAxLTEgMHYtMmEuNS41IDAgMSAxIDEgMCAuNS41IDAgMSAwIDEgMCAxLjUgMS41IDAgMSAwLTMgMHYyYzAgLjQuMTYuNzguNDQgMS4wNlptNC45OS40NGguMTRhMS40MyAxLjQzIDAgMCAwIDEuMy0yLjAzYy0uMTQtLjMtLjM3LS41My0uNjYtLjY3bC0uOTctLjVhLjQzLjQzIDAgMCAxIC4xOS0uOGguMTRhLjQzLjQzIDAgMCAxIC40My40M3YuMDdjMCAuMDYuMDIuMTMuMDQuMTlhLjQ3LjQ3IDAgMCAwIC40Ni4yNy41NC41NCAwIDAgMCAuNS0uNTNBMS40MyAxLjQzIDAgMCAwIDYuNTcgMTBoLS4xNGExLjQzIDEuNDMgMCAwIDAtLjY0IDIuN2wuOTguNWEuNDMuNDMgMCAwIDEtLjIuOGgtLjE0YS40NS40NSAwIDAgMS0uMzItLjE2LjQ1LjQ1IDAgMCAxLS4xMS0uMzQuNDcuNDcgMCAwIDAtLjUtLjQ2LjU0LjU0IDAgMCAwLS41LjUzQTEuNDMgMS40MyAwIDAgMCA2LjQzIDE1Wm00IDBoLjE0YTEuNDMgMS40MyAwIDAgMCAuNjQtMi43bC0uOTgtLjVhLjQzLjQzIDAgMCAxIC4yLS44aC4xNGEuNDMuNDMgMCAwIDEgLjQzLjQzdi4wN2EuNDcuNDcgMCAwIDAgLjUuNDYuNTQuNTQgMCAwIDAgLjUtLjUzQTEuNDMgMS40MyAwIDAgMCAxMC41NyAxMGgtLjE0YTEuNDMgMS40MyAwIDAgMC0uNjQgMi43bC45OC41YS40My40MyAwIDAgMS0uMi44aC0uMTRhLjQ2LjQ2IDAgMCAxLS4zMy0uMTYuNDUuNDUgMCAwIDEtLjEtLjM0LjQ3LjQ3IDAgMCAwLS41LS40Ni41NC41NCAwIDAgMC0uNS41M0ExLjQzIDEuNDMgMCAwIDAgMTAuNDMgMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudENzczE2UmVndWxhcicsIFwiMTZcIiwgW1wibTEwLjY1IDEuNDQgMi45MSAyLjkxYy4yOC4yOC40NC42Ni40NCAxLjA2VjEzYTIgMiAwIDAgMS0xLjM5IDEuOSAyLjQxIDIuNDEgMCAwIDAgLjM2LTEuNjhBLjc4Ljc4IDAgMCAwIDEzIDEzVjZoLTIuNUExLjUgMS41IDAgMCAxIDkgNC41VjJINmExIDEgMCAwIDAtMSAxdjYuNDZjLS4yLjE1LS4zNy4zMi0uNTIuNTItLjE0LS4xOC0uMy0uMzQtLjQ4LS40OFYzYTIgMiAwIDAgMSAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0Wm0tLjUgMy40MWMuMDkuMS4yMi4xNS4zNS4xNWgyLjI5TDEwIDIuMjFWNC41YzAgLjEzLjA1LjI2LjE1LjM1Wm0tOC43MSA5LjcxQTEuNSAxLjUgMCAwIDAgNCAxMy41YS41LjUgMCAwIDAtMSAwIC41LjUgMCAwIDEtMSAwdi0yYS41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwIDEuNSAxLjUgMCAwIDAtMyAwdjJjMCAuNC4xNi43OC40NCAxLjA2Wm01LjEzLjQ0aC0uMTRBMS40MyAxLjQzIDAgMCAxIDUgMTMuNTdhLjUzLjUzIDAgMCAxIC41LS41My40Ny40NyAwIDAgMSAuNS40Ni40NS40NSAwIDAgMCAuNDMuNWguMTRhLjQzLjQzIDAgMCAwIC4yLS44bC0uOTgtLjVhMS40MyAxLjQzIDAgMCAxIC42NC0yLjdoLjE0QTEuNDMgMS40MyAwIDAgMSA4IDExLjQzYS41My41MyAwIDAgMS0uNS41My40Ny40NyAwIDAgMS0uNS0uNDZ2LS4wN2EuNDMuNDMgMCAwIDAtLjQzLS40M2gtLjE0YS40My40MyAwIDAgMC0uMi44bC45OC41YTEuNDMgMS40MyAwIDAgMS0uNjQgMi43Wm0zLjg2IDBoLjE0YTEuNDMgMS40MyAwIDAgMCAuNjQtMi43bC0uOTgtLjVhLjQyLjQyIDAgMCAxLS4yMy0uMzcuNDMuNDMgMCAwIDEgLjQzLS40M2guMTRhLjQzLjQzIDAgMCAxIC40My40M3YuMDdhLjQ3LjQ3IDAgMCAwIC41LjQ2LjUzLjUzIDAgMCAwIC41LS41M0ExLjQzIDEuNDMgMCAwIDAgMTAuNTcgMTBoLS4xNGExLjQzIDEuNDMgMCAwIDAtLjY0IDIuN2wuOTguNWEuNDIuNDIgMCAwIDEgLjIzLjM3LjQzLjQzIDAgMCAxLS40My40M2gtLjE0YS40NS40NSAwIDAgMS0uNDMtLjUuNDcuNDcgMCAwIDAtLjUtLjQ2LjUzLjUzIDAgMCAwLS41LjUzQTEuNDMgMS40MyAwIDAgMCAxMC40MyAxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q3NzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDc3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djcuNjdhMyAzIDAgMCAxIDEuMzggMUEyLjUgMi41IDAgMCAxIDkuNSAxMmEyLjUgMi41IDAgMCAxIDQuNSAxLjVjMCAuNDQtLjIuODQtLjUgMS4xMi4zMi40Mi41Ljk1LjUgMS41di4zOGMwIC41Ni0uMTkgMS4wOC0uNSAxLjVoMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMyAxMmEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMSAwIDQgMCAuNS41IDAgMCAwLTEgMCAxIDEgMCAxIDEtMiAwdi0yYTEgMSAwIDEgMSAyIDAgLjUuNSAwIDAgMCAxIDAgMiAyIDAgMCAwLTItMlptOC41IDBjLS44MyAwLTEuNS42Ny0xLjUgMS41di4zOGMwIC41Ny4zMiAxLjA5LjgzIDEuMzRsLjkuNDVhLjUuNSAwIDAgMSAuMjcuNDV2LjM4YS41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwIDEuNSAxLjUgMCAwIDAgMyAwdi0uMzhhMS41IDEuNSAwIDAgMC0uODMtMS4zNGwtLjktLjQ1YS41LjUgMCAwIDEtLjI3LS40NXYtLjM4YS41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNNiAxMy41YTEuNSAxLjUgMCAwIDEgMyAwIC41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwdi4zOGMwIC4yLjEuMzYuMjguNDVsLjkuNDVjLjUuMjUuODIuNzcuODIgMS4zNHYuMzhhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4zOGEuNS41IDAgMCAwLS4yOC0uNDVsLS45LS40NUExLjUgMS41IDAgMCAxIDYgMTMuODh2LS4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Q3NzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q3NzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAyaC0uNWMuMjItLjMuMzgtLjYzLjQ1LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2Ny43NmEzIDMgMCAwIDAtMS0uNTlWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVaTTMgMTJhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDEgMCA0IDAgLjUuNSAwIDAgMC0xIDAgMSAxIDAgMSAxLTIgMHYtMmExIDEgMCAxIDEgMiAwIC41LjUgMCAwIDAgMSAwIDIgMiAwIDAgMC0yLTJabTguNSAwYy0uODMgMC0xLjUuNjctMS41IDEuNXYuMzhjMCAuNTcuMzIgMS4wOS44MyAxLjM0bC45LjQ1YS41LjUgMCAwIDEgLjI3LjQ1di4zOGEuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMCAxLjUgMS41IDAgMCAwIDMgMHYtLjM4YTEuNSAxLjUgMCAwIDAtLjgzLTEuMzRsLS45LS40NWEuNS41IDAgMCAxLS4yNy0uNDV2LS4zOGEuNS41IDAgMCAxIDEgMCAuNS41IDAgMCAwIDEgMGMwLS44My0uNjctMS41LTEuNS0xLjVaTTYgMTMuNWExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMHYuMzhjMCAuMi4xLjM2LjI4LjQ1bC45LjQ1Yy41LjI1LjgyLjc3LjgyIDEuMzR2LjM4YTEuNSAxLjUgMCAwIDEtMyAwIC41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwdi0uMzhhLjUuNSAwIDAgMC0uMjgtLjQ1bC0uOS0uNDVBMS41IDEuNSAwIDAgMSA2IDEzLjg4di0uMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudENzczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Q3NzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA4VjJINmEyIDIgMCAwIDAtMiAydjEwLjA0YTMuNSAzLjUgMCAwIDEgMi4zOCAxLjQ3Yy41LS45IDEuNDctMS41MSAyLjU3LTEuNTFoLjFjMS4wMiAwIDEuOTIuNTIgMi40NSAxLjNhMi45NSAyLjk1IDAgMCAxIDIuNDUtMS4zaC4xQTIuOTUgMi45NSAwIDAgMSAxNyAxNi45NVYxN2MwIC40NS0uMTcuODYtLjQ1IDEuMTcuMjkuNDQuNDUuOTYuNDUgMS41di4zOGMwIC43NS0uMjggMS40My0uNzQgMS45NUgxOGEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJabTIuMDUgMTRjMS4wOCAwIDEuOTUtLjg3IDEuOTUtMS45NXYtLjM3YTEuNzUgMS43NSAwIDAgMC0xLjEtMS42M2wtLjU3LS4yMi0uNy0uNDNhLjI1LjI1IDAgMCAxLS4xMy0uMjJ2LS4yM2MwLS4yNS4yLS40NS40NS0uNDVoLjFhLjQ1LjQ1IDAgMCAxIC40NS40NVYxN2EuNzUuNzUgMCAwIDAgMS41IDB2LS4wNWMwLTEuMDgtLjg3LTEuOTUtMS45NS0xLjk1aC0uMWMtMS4wOCAwLTEuOTUuODctMS45NSAxLjk1di4zN2ExLjc1IDEuNzUgMCAwIDAgMS4xIDEuNjNsLjU3LjIyLjcuNDNjLjA4LjA1LjEzLjEzLjEzLjIydi4yM2MwIC4yNS0uMi40NS0uNDUuNDVoLS4xYS40NS40NSAwIDAgMS0uNDUtLjQ1VjIwYS43NS43NSAwIDAgMC0xLjUgMHYuMDVjMCAxLjA4Ljg3IDEuOTUgMS45NSAxLjk1aC4xWk0xMSAyMC4wNUExLjk0IDEuOTQgMCAwIDEgOS4wNSAyMmgtLjFBMS45NSAxLjk1IDAgMCAxIDcgMjAuMDVWMjBhLjc1Ljc1IDAgMCAxIC45Ny0uNzJjLjMuMS41My4zOC41My43MnYuMDVhLjQ1LjQ1IDAgMCAwIC40NS40NWguMWMuMjUgMCAuNDUtLjIuNDUtLjQ1di0uMjNhLjI1LjI1IDAgMCAwLS4xMi0uMjJsLS43MS0uNDMtLjU3LS4yMkExLjc1IDEuNzUgMCAwIDEgNyAxNy4zMnYtLjM3QzcgMTUuODcgNy44NyAxNSA4Ljk1IDE1aC4xYzEuMDggMCAxLjk1Ljg3IDEuOTUgMS45NVYxN2EuNzUuNzUgMCAwIDEtLjk3LjcyLjc1Ljc1IDAgMCAxLS41My0uNzJ2LS4wNWEuNDUuNDUgMCAwIDAtLjQ1LS40NWgtLjFjLS4yNSAwLS40NS4yLS40NS40NXYuMjNjMCAuMS4wNS4xNy4xMi4yMmwuNzEuNDMuNTcuMjJhMS43NSAxLjc1IDAgMCAxIDEuMSAxLjYzdi4zN1pNNS45NSAyMmwuMDUtLjA1VjIyaC0uMDVabS0xLjEyLS4zOEEyLjUgMi41IDAgMCAwIDYgMTkuNWEuNzUuNzUgMCAwIDAtLjc1LS43NS43NS43NSAwIDAgMC0uNzUuNzUgMSAxIDAgMSAxLTIgMHYtMmExIDEgMCAxIDEgMiAwIC43NS43NSAwIDAgMCAuNzUuNzUuNzUuNzUgMCAwIDAgLjc1LS43NSAyLjUgMi41IDAgMCAwLTUgMHYyYTIuNSAyLjUgMCAwIDAgMy44MyAyLjEyWk0xMy41IDhWMi41bDYgNkgxNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDc3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDc3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCAyMC41YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjV2MTAuNjNjLS40NC0uMy0uOTUtLjUyLTEuNS0uNlY0YzAtMS4xLjktMiAyLTJoNi4xN2EuNi42IDAgMCAxIC4wOCAwbC4wNi4wMWMuMjIuMDIuNDMuMDYuNjMuMTRsLjE2LjA5Yy4wMiAwIC4wNC4wMi4wNS4wM2wuMDUuMDIuMDguMDVhMi4wNyAyLjA3IDAgMCAxIC4zLjI1bDUuODMgNS44MkEyIDIgMCAwIDEgMjAgOS44M1YyMGEyIDIgMCAwIDEtMiAyaC0xLjc0Yy4zNy0uNDEuNjItLjkzLjctMS41SDE4Wm0tLjYyLTEyTDEzLjUgNC42MlY4YzAgLjI4LjIyLjUuNS41aDMuMzhabS01LjMzIDEyYy4yLjg2Ljk4IDEuNSAxLjkgMS41aC4xQTEuOTUgMS45NSAwIDAgMCAxNiAyMC4wNXYtLjIzYzAtLjYyLS4zMi0xLjE5LS44NS0xLjVsLTEuNTMtLjkyYS4yNS4yNSAwIDAgMS0uMTItLjIydi0uMjNjMC0uMjUuMi0uNDUuNDUtLjQ1aC4xYy4yNSAwIC40NS4yLjQ1LjQ1VjE3YS43NS43NSAwIDAgMCAxLjUgMHYtLjA1YzAtMS4wOC0uODctMS45NS0xLjk1LTEuOTVoLS4xYy0xLjA4IDAtMS45NS44Ny0xLjk1IDEuOTV2LjIzYzAgLjYyLjMyIDEuMTkuODUgMS41bDEuNTMuOTJjLjA3LjA1LjEyLjEzLjEyLjIydi4yM2MwIC4yNS0uMi40NS0uNDUuNDVoLS4xYS40NS40NSAwIDAgMS0uNDUtLjQ1VjIwYS43NS43NSAwIDAgMC0xLjUgMHYuMDVjMCAuMTUuMDIuMy4wNS40NVpNNS45NSAyMmwuMDUtLjA1VjIyaC0uMDVabTEuMy0xYTEuOTQgMS45NCAwIDAgMS0uMjUtLjk1VjIwYS43NS43NSAwIDAgMSAxLjUgMHYuMDVjMCAuMjUuMi40NS40NS40NWguMWMuMjUgMCAuNDUtLjIuNDUtLjQ1di0uMjNhLjI1LjI1IDAgMCAwLS4xMi0uMjJsLTEuNTMtLjkyYTEuNzUgMS43NSAwIDAgMS0uODUtMS41di0uMjNDNyAxNS44NyA3Ljg3IDE1IDguOTUgMTVoLjFjMS4wOCAwIDEuOTUuODcgMS45NSAxLjk1VjE3YS43NS43NSAwIDAgMS0xLjUgMHYtLjA1YzAtLjI1LS4yLS40NS0uNDUtLjQ1aC0uMWMtLjI1IDAtLjQ1LjItLjQ1LjQ1di4yM2MwIC4xLjA1LjE3LjEyLjIybDEuNTMuOTJjLjUzLjMxLjg1Ljg4Ljg1IDEuNXYuMjNBMS45NiAxLjk2IDAgMCAxIDkuMDUgMjJoLS4xYy0uNzMgMC0xLjM3LS40LTEuNy0xWm0tMS40NC0uNTRjLjEyLS4zLjE5LS42Mi4xOS0uOTZhLjc1Ljc1IDAgMSAwLTEuNSAwIDEgMSAwIDEgMS0yIDB2LTJhMSAxIDAgMSAxIDIgMCAuNzUuNzUgMCAwIDAgLjc1Ljc1Ljc1Ljc1IDAgMCAwIC43NS0uNzVBMi40OSAyLjQ5IDAgMCAwIDMuNSAxNSAyLjUgMi41IDAgMCAwIDEgMTcuNXYyYTIuNSAyLjUgMCAwIDAgNC44Ljk2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRDdWJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDdWJlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuMzNhMiAyIDAgMCAwIC42Ny0xLjV2LTRhMiAyIDAgMCAwLTEuMS0xLjc5bC0zLTEuNWEyIDIgMCAwIDAtMS44IDBsLS4xLjA1VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wm0tNS41NSA3Ljg2IDMgMS41YTEgMSAwIDAgMSAuNTUuODl2NGExIDEgMCAwIDEtLjU1LjlsLTMgMS41YTEgMSAwIDAgMS0uOSAwbC0zLTEuNWExIDEgMCAwIDEtLjU1LS45di00YTEgMSAwIDAgMSAuNTUtLjlsMy0xLjVhMSAxIDAgMCAxIC45IDBaTTIuNyAxMi40N2EuNS41IDAgMCAwLS40LjkybDIuMi45NFYxN2EuNS41IDAgMSAwIDEgMHYtMi42N2wyLjItLjk0YS41LjUgMCAwIDAtLjQtLjkybC0yLjMuOTktMi4zLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEN1YmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDdWJlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4yNmwuMS0uMDVBMiAyIDAgMCAxIDUgOVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDkuOTRhMiAyIDAgMCAxLS42MSAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS05LjM1IDMuMSAzIDEuNWExIDEgMCAwIDEgLjU1Ljl2NGExIDEgMCAwIDEtLjU1LjlsLTMgMS41YTEgMSAwIDAgMS0uOSAwbC0zLTEuNWExIDEgMCAwIDEtLjU1LS45di00YTEgMSAwIDAgMSAuNTUtLjlsMy0xLjVhMSAxIDAgMCAxIC45IDBaTTIuNyAxMi40OGEuNS41IDAgMCAwLS40LjkybDIuMi45NFYxN2EuNS41IDAgMSAwIDEgMHYtMi42N2wyLjItLjk0YS41LjUgMCAwIDAtLjQtLjkybC0yLjMuOTktMi4zLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEN1YmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEN1YmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNy40bC4wMi0uMDFBMi41IDIuNSAwIDAgMCAxMiAxOS43NXYtNC41YTIuNSAyLjUgMCAwIDAtMS4zOC0yLjI0bC0zLjUtMS43NWEyLjUgMi41IDAgMCAwLTIuMjQgMEw0IDExLjdWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZabS02LjgzIDkuNjYgMy41IDEuNzVjLjUuMjUuODMuNzcuODMgMS4zNHY0LjVhMS41IDEuNSAwIDAgMS0uODMgMS4zNGwtMy41IDEuNzVhMS41IDEuNSAwIDAgMS0xLjM0IDBsLTMuNS0xLjc1QTEuNSAxLjUgMCAwIDEgMSAxOS43NXYtNC41YzAtLjU3LjMyLTEuMDkuODMtMS4zNGwzLjUtMS43NWExLjUgMS41IDAgMCAxIDEuMzQgMFptLTMuNDUgMi45YS41LjUgMCAxIDAtLjQ0Ljg5TDUuNSAxNy4zdjMuMTlhLjUuNSAwIDEgMCAxIDB2LTMuMmwyLjcyLTEuMzVhLjUuNSAwIDEgMC0uNDQtLjlMNiAxNi40NWwtMi43OC0xLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEN1YmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRDdWJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2Ny43bC44OC0uNDRjLjItLjEuNC0uMTcuNjItLjIxVjRjMC0uMjguMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBhLjUuNSAwIDAgMS0uNS41aC02LjExYTIuNSAyLjUgMCAwIDEtMS4yNyAxLjQ5bC0uMDIuMDFIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNkEyIDIgMCAwIDAgMTIuMTcgMkg2Wm0xMS4zOCA2LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYybDMuODggMy44OFptLTEwLjcgMy42NiAzLjUgMS43NWMuNS4yNS44Mi43Ny44MiAxLjM0djQuNWExLjUgMS41IDAgMCAxLS44MyAxLjM0bC0zLjUgMS43NWExLjUgMS41IDAgMCAxLTEuMzQgMGwtMy41LTEuNzVBMS41IDEuNSAwIDAgMSAxIDE5Ljc1di00LjVjMC0uNTcuMzItMS4wOS44My0xLjM0bDMuNS0xLjc1YTEuNSAxLjUgMCAwIDEgMS4zNCAwWm0tMy40NiAyLjlhLjUuNSAwIDEgMC0uNDQuODlMNS41IDE3LjN2My4xOWEuNS41IDAgMSAwIDEgMHYtMy4ybDIuNzItMS4zNWEuNS41IDAgMSAwLS40NC0uOUw2IDE2LjQ1bC0yLjc4LTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOS41IDVoMy4yNUw5IDEuMjVWNC41YzAgLjI4LjIyLjUuNS41Wm0wIDFBMS41IDEuNSAwIDAgMSA4IDQuNVYxSDQuNUMzLjY3IDEgMyAxLjY3IDMgMi41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41VjZIOS41Wk02IDEyLjVhLjUuNSAwIDAgMS0xIDB2LTZhLjUuNSAwIDAgMSAxIDB2NlptMi41IDBhLjUuNSAwIDAgMS0xIDB2LTJhLjUuNSAwIDAgMSAxIDB2MlptMi41IDBhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMSAxIDB2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGExNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjUgMTNhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLTEgMHY2YzAgLjI4LjIyLjUuNS41Wm01LjUtLjVhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMSAxIDB2NFptLTMuMDYuNWEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtMSAwdjJjMCAuMjguMjIuNS41LjVaTTMgM2MwLTEuMS45LTIgMi0yaDMuNTljLjQgMCAuNzguMTYgMS4wNi40NGwyLjkxIDIuOTFjLjI4LjI5LjQ0LjY3LjQ0IDEuMDZWMTNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWM1ptMi0xYTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNkg5LjVBMS41IDEuNSAwIDAgMSA4IDQuNVYySDVabTQuNSAzaDIuM0w5IDIuMnYyLjNjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGEyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGEyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptMCA1LjVjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVpNNy41IDhjLjI4IDAgLjUuMjIuNS41djdhLjUuNSAwIDAgMS0xIDB2LTdjMC0uMjguMjItLjUuNS0uNVptNSAyYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVaTTExIDYuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTggOC41YS41LjUgMCAwIDAtMSAwdjdhLjUuNSAwIDAgMCAxIDB2LTdabTIgMy41Yy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtMSAwdi0zYzAtLjI4LjIyLS41LjUtLjVabTMtMS41YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINlptNS41IDRoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGEyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGEyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJabTAgN2MuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41YzAtLjQxLjM0LS43NS43NS0uNzVabS0zLjI1LTRjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTYuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm02LjUgMmMuNDEgMCAuNzUuMzQuNzUuNzV2NC41YS43NS43NSAwIDAgMS0xLjUgMHYtNC41YzAtLjQxLjM0LS43NS43NS0uNzVaTTEzLjUgOFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGEyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC43NSAxMWMuNDEgMCAuNzUuMzQuNzUuNzV2Ni41YS43NS43NSAwIDAgMS0xLjUgMHYtNi41YzAtLjQxLjM0LS43NS43NS0uNzVabTQgNC43NWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wm0yLjUtMi43NWMuNDEgMCAuNzUuMzQuNzUuNzV2NC41YS43NS43NSAwIDAgMS0xLjUgMHYtNC41YzAtLjQxLjM0LS43NS43NS0uNzVaTTEyLjQ4IDJjLjMzIDAgLjY1LjEzLjg5LjM3bDIuODUgMi44NS4wMi4wMyAzLjE3IDMuMTZBMiAyIDAgMCAxIDIwIDkuODNWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDYuNDhaTTYgMy41YS41LjUgMCAwIDAtLjUuNXYxNmMwIC4yNy4yMi41LjUuNWgxMmEuNS41IDAgMCAwIC41LS41VjEwSDE0YTIgMiAwIDAgMS0yLTJWMy41SDZabTcuNSAxLjEyVjhjMCAuMjguMjIuNS41LjVoMy4zOEwxMy41IDQuNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGEzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGEzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDJ2N2EzIDMgMCAwIDAgMyAzaDd2MTVhMyAzIDAgMCAxLTMgM0g4YTMgMyAwIDAgMS0zLTNWNWEzIDMgMCAwIDEgMy0zaDlabTIgLjEyVjlhMSAxIDAgMCAwIDEgMWg2Ljg4YTMgMyAwIDAgMC0uNzYtMS4zTDIwLjMgMi44OUEzIDMgMCAwIDAgMTkgMi4xMlpNMTcgMjFhMSAxIDAgMSAwLTIgMHY0YTEgMSAwIDEgMCAyIDB2LTRabS02LTlhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAxIDAgMiAwVjEzYTEgMSAwIDAgMC0xLTFabTExIDVhMSAxIDAgMSAwLTIgMHY4YTEgMSAwIDEgMCAyIDB2LThaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGEzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOCAyYTMgMyAwIDAgMC0zIDN2MjJhMyAzIDAgMCAwIDMgM2gxNmEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFpNNyA1YTEgMSAwIDAgMSAxLTFoOXY1YTMgMyAwIDAgMCAzIDNoNXYxNWExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMVY1Wm0xNy41OSA1SDIwYTEgMSAwIDAgMS0xLTFWNC40MUwyNC41OSAxMFpNMTIgMTNhMSAxIDAgMSAwLTIgMHYxMmExIDEgMCAxIDAgMiAwVjEzWm01IDhhMSAxIDAgMSAwLTIgMHY0YTEgMSAwIDEgMCAyIDB2LTRabTQtNWExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMSAxLTIgMHYtOGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhTGluazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YUxpbmsxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUgNWgzLjI1TDEwIDEuMjVWNC41YzAgLjI4LjIyLjUuNS41Wm0wIDFBMS41IDEuNSAwIDAgMSA5IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41VjloMlY2LjVhLjUuNSAwIDAgMSAxIDBWOWguNWEzLjUgMy41IDAgMCAxIDIuNDUgNmgyLjU1Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2aC0zLjVabS41IDYuNXYtNGEuNS41IDAgMCAxIDEgMHY0YS41LjUgMCAwIDEtMSAwWk0zLjUgMTBhMi41IDIuNSAwIDAgMCAwIDVINGEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNINGEuNS41IDAgMCAwIDAtMWgtLjVaTTcgMTBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIN2EuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUg3Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGFMaW5rMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YUxpbmsxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDNjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMi45MSAyLjkxYy4yOC4yOS40NC42Ny40NCAxLjA2VjEzYTIgMiAwIDAgMS0yIDJIOS45NWMuMy0uMjkuNTQtLjYzLjcxLTFIMTJhMSAxIDAgMCAwIDEtMVY2aC0yLjVBMS41IDEuNSAwIDAgMSA5IDQuNVYySDZhMSAxIDAgMCAwLTEgMXY2SDRWM1ptNy41IDEwYS41LjUgMCAwIDEtLjUtLjV2LTRhLjUuNSAwIDAgMSAxIDB2NGEuNS41IDAgMCAxLS41LjVaTTYgNi41VjloMVY2LjVhLjUuNSAwIDAgMC0xIDBaTTEwLjUgNWgyLjNMMTAgMi4ydjIuM2MwIC4yOC4yMi41LjUuNVptLTcgNWEyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFMaW5rMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNVYxM2gzVjguNWEuNS41IDAgMCAxIDEgMHY0LjU0Yy41NS4wNyAxLjA2LjI4IDEuNS41OVYxMi41YS41LjUgMCAwIDEgMSAwdjIuMmEzLjQ4IDMuNDggMCAwIDEgLjE2IDMuM2gzLjg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTIuNSAzLjVjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTMuNSAxNGEyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTGluazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTggOC41YS41LjUgMCAwIDAtMSAwVjEzaC41Yy4xNyAwIC4zNC4wMS41LjA0VjguNVpNNSA0djlINFY0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAyaC0zLjM0Yy4xNS0uMzEuMjUtLjY1LjMtMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMVptNS41IDguNXYyLjJjLS4yNS0uNDMtLjYtLjgtMS0xLjA3VjEyLjVhLjUuNSAwIDAgMSAxIDBabTIuNS0yYS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDB2LTVaTTExLjUgN2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTggN2EyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFMaW5rMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA4VjJINmEyIDIgMCAwIDAtMiAydjEwLjU2Yy4yNC0uMDQuNS0uMDYuNzUtLjA2SDh2LTIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuOTJjLjY1LjE3IDEuMjQuNDggMS43NS45di0uODJhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuOThhNC43NCA0Ljc0IDAgMCAxLS42MyA0LjI3SDE4YTIgMiAwIDAgMCAyLTJWMTBoLTZhMiAyIDAgMCAxLTItMlptMy4yNSA0Yy40MSAwIC43NS4zNC43NS43NXY1LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTMuNSA4VjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVpNMTIgMTkuMjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtLjFhLjc1Ljc1IDAgMCAwIC4xIDEuNWguMTVhMi4yNSAyLjI1IDAgMCAxLS4xNSA0LjVsLS4xLjAxYS43NS43NSAwIDAgMCAuMSAxLjVWMjNoLjJBMy43NSAzLjc1IDAgMCAwIDEyIDE5LjI0Wm0tNi41LTNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLS4yYTMuNzUgMy43NSAwIDAgMCAuMiA3LjVoLjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUg0LjZhMi4yNSAyLjI1IDAgMCAxIC4xNS00LjVoLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVabTMuNSAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgzLjZhLjc1Ljc1IDAgMCAwIC42NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGFMaW5rMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YUxpbmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04Ljc1IDExYy40MSAwIC43NS4zNC43NS43NXYyLjkyYy0uNC0uMTEtLjgyLS4xNy0xLjI1LS4xN0g4di0yLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTUuNSAxNC41VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBhLjUuNSAwIDAgMS0uNS41aC01LjE3Yy0uMTQuNTUtLjM5IDEuMDUtLjcgMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJsLTEuMTctMS4xNy0uMDItLjAyLTQuODUtNC44NWExLjI1IDEuMjUgMCAwIDAtLjg5LS4zN0g2YTIgMiAwIDAgMC0yIDJ2MTAuNTZjLjI0LS4wNC41LS4wNi43NS0uMDZoLjc1Wm03LjI1IDMuMjN2LTIuOThhLjc1Ljc1IDAgMCAwLTEuNSAwdi44MmMuNjguNTYgMS4yMSAxLjMgMS41IDIuMTZabTIuNS01LjczYy40MSAwIC43NS4zNC43NS43NXY1LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTMuNSA0LjYybDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTguMjUgMTUuNWEzLjc1IDMuNzUgMCAwIDEgLjIgNy41aC0uMmEuNzUuNzUgMCAwIDEtLjEtMS40OWguMXYtLjAxQTIuMjUgMi4yNSAwIDAgMCA4LjQgMTdoLS4xNWEuNzUuNzUgMCAwIDEtLjEtMS41aC4xWm0tMy41IDBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtLjFhMi4yNSAyLjI1IDAgMCAwLS4xNSA0LjVoLjE1YS43NS43NSAwIDAgMSAuMSAxLjVoLS4xYTMuNzUgMy43NSAwIDAgMS0uMi03LjVoLjJabTMuNSAzYS43NS43NSAwIDAgMSAuMSAxLjVoLTMuNmEuNzUuNzUgMCAwIDEtLjEtMS41aDMuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmszMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFMaW5rMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyAydjdhMyAzIDAgMCAwIDMgM2g3djE1YTMgMyAwIDAgMS0zIDNoLTcuNTNhNS45OSA1Ljk5IDAgMCAwIC41My04LjQ3VjE5YTEgMSAwIDEgMC0yIDB2MS4wNGE1Ljk4IDUuOTggMCAwIDAtMi41LS41NEgxMlYxM2ExIDEgMCAxIDAtMiAwdjYuNUg2LjVjLS41MiAwLTEuMDIuMDctMS41LjE5VjVhMyAzIDAgMCAxIDMtM2g5Wm0yIC4xMlY5YTEgMSAwIDAgMCAxIDFoNi44OGEzIDMgMCAwIDAtLjc2LTEuM0wyMC4zIDIuODlBMyAzIDAgMCAwIDE5IDIuMTJaTTIyIDE2YTEgMSAwIDEgMC0yIDB2OWExIDEgMCAxIDAgMiAwdi05Wk04IDIyYTEgMSAwIDAgMC0xLTFoLS41YTQuNSA0LjUgMCAxIDAgMCA5SDdhMSAxIDAgMSAwIDAtMmgtLjVhMi41IDIuNSAwIDAgMSAwLTVIN2ExIDEgMCAwIDAgMS0xWm00LTFhMSAxIDAgMSAwIDAgMmguNWEyLjUgMi41IDAgMCAxIDAgNUgxMmExIDEgMCAxIDAgMCAyaC41YTQuNSA0LjUgMCAxIDAgMC05SDEyWm0tNSAzLjVhMSAxIDAgMSAwIDAgMmg1YTEgMSAwIDEgMCAwLTJIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxpbmszMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTGluazMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzdjE0LjY5Yy40OC0uMTIuOTgtLjE5IDEuNS0uMTlIN1Y1YTEgMSAwIDAgMSAxLTFoOXY1YTMgMyAwIDAgMCAzIDNoNXYxNWExIDEgMCAwIDEtMSAxaC02LjA0YTYuMDIgNi4wMiAwIDAgMS0xLjUgMkgyNGEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFptMiAxMXY2LjVoMlYxM2ExIDEgMCAxIDAtMiAwWm01IDcuMDRjLjc3LjM2IDEuNDUuODcgMiAxLjVWMTlhMSAxIDAgMSAwLTIgMHYxLjA0Wk0yNC41OSAxMEgyMGExIDEgMCAwIDEtMS0xVjQuNDFMMjQuNTkgMTBaTTIxIDE1YTEgMSAwIDAgMSAxIDF2OWExIDEgMCAxIDEtMiAwdi05YTEgMSAwIDAgMSAxLTFaTTggMjJhMSAxIDAgMCAwLTEtMWgtLjVhNC41IDQuNSAwIDEgMCAwIDlIN2ExIDEgMCAxIDAgMC0yaC0uNWEyLjUgMi41IDAgMCAxIDAtNUg3YTEgMSAwIDAgMCAxLTFabTQtMWExIDEgMCAxIDAgMCAyaC41YTIuNSAyLjUgMCAwIDEgMCA1SDEyYTEgMSAwIDEgMCAwIDJoLjVhNC41IDQuNSAwIDEgMCAwLTlIMTJabS01IDMuNWExIDEgMCAxIDAgMCAyaDVhMSAxIDAgMSAwIDAtMkg3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhTG9jazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YUxvY2sxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUgNWgzLjI1TDEwIDEuMjVWNC41YzAgLjI4LjIyLjUuNS41Wm0wIDFBMS41IDEuNSAwIDAgMSA5IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41djIuOUEzIDMgMCAwIDEgOC41IDh2LjA2QTIgMiAwIDAgMSAxMCAxMHY0YTIgMiAwIDAgMS0uMjcgMWgyLjc3Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2aC0zLjVabTEuNSA2LjVhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMSAxIDB2NFpNMy41IDh2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNVY4YTIgMiAwIDEgMC00IDBabTEgMVY4YTEgMSAwIDAgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxvY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTG9jazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQgM2MwLTEuMS45LTIgMi0yaDMuNTljLjQgMCAuNzguMTYgMS4wNi40NGwyLjkxIDIuOTFjLjI4LjI5LjQ0LjY3LjQ0IDEuMDZWMTNhMiAyIDAgMCAxLTIgMkg5LjczYTIgMiAwIDAgMCAuMjctMWgyYTEgMSAwIDAgMCAxLTFWNmgtMi41QTEuNSAxLjUgMCAwIDEgOSA0LjVWMkg2YTEgMSAwIDAgMC0xIDF2Mi4wNGMtLjM2LjA2LS43LjE5LTEgLjM2VjNabTYuNSAyaDIuM0wxMCAyLjJ2Mi4zYzAgLjI4LjIyLjUuNS41Wm0xLjUgNy41YS41LjUgMCAwIDEtMSAwdi00YS41LjUgMCAwIDEgMSAwdjRaTTMuNSA4djFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjVWOGEyIDIgMCAxIDAtNCAwWm0xIDFWOGExIDEgMCAwIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGFMb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYtNGEyIDIgMCAwIDAtMS41LTEuOTRWMTJBMyAzIDAgMCAwIDQgOS40VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wm0zIDguMjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVpNMTEgMTJhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAxIDB2LTNhLjUuNSAwIDAgMC0uNS0uNVptLTcuNSAwdjFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhTG9jazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDE3aDRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS4wNGMtLjM2LjA2LS43LjE5LTEgLjM2VjRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJoLTR2LTFabTQuOC0xMEwxMSAzLjJ2My4zYzAgLjI4LjIyLjUuNS41aDMuM1pNMy41IDEydjFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVptOC01LjI1Yy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwdi01YzAtLjI4LjIyLS41LjUtLjVabS0yIDIuNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhTG9jazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGF0YUxvY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNi4wNWMuMDMtLjE2LjA1LS4zMy4wNS0uNXYtNWEyLjUgMi41IDAgMCAwLTItMi40NVYxNGEzLjUgMy41IDAgMCAwLTYtMi40NVY0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlptMSAxMy4yNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wk0xNi43NSAxM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djQuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTQuNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNCAxNXYtMWEyLjUgMi41IDAgMCAxIDUgMHYxaC41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgMiAyMS41di01YzAtLjgzLjY3LTEuNSAxLjUtMS41SDRabTEuNS0xdjFoMnYtMWExIDEgMCAxIDAtMiAwWm0yIDVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhTG9jazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFMb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTZ2MWMwIC4xNy0uMDIuMzQtLjA1LjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MmwtMy4xNy0zLjE2LS4wMi0uMDMtMi44NS0yLjg1YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3SDZhMiAyIDAgMCAwLTIgMnY3LjU1YTMuNSAzLjUgMCAwIDEgMS41LS45VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJabS03IDYuODhBMi41IDIuNSAwIDAgMCA0IDE0djFoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5di0xYTIuNSAyLjUgMCAwIDAtMi41LTIuNVptLTEgMi41YTEgMSAwIDEgMSAyIDB2MWgtMnYtMVptMiA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNS43NS00Yy40MSAwIC43NS4zNC43NS43NXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTcgMTMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjQuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YUxvY2szMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFMb2NrMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyAydjdhMyAzIDAgMCAwIDMgM2g3djE1YTMgMyAwIDAgMS0zIDNoLTcuNTRjLjM1LS41OS41NC0xLjI3LjU0LTJ2LTZhNCA0IDAgMCAwLTMuMDgtMy45QTUgNSAwIDAgMCA1IDE2VjVhMyAzIDAgMCAxIDMtM2g5Wm0yIC4xMlY5YTEgMSAwIDAgMCAxIDFoNi44OGEzIDMgMCAwIDAtLjc2LTEuM0wyMC4zIDIuODlBMyAzIDAgMCAwIDE5IDIuMTJaTTIwIDIxYTEgMSAwIDEgMC0yIDB2NGExIDEgMCAxIDAgMiAwdi00Wm0zLTVhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDEgMCAyIDB2LThhMSAxIDAgMCAwLTEtMVpNNS41IDE5LjVWMTlhMy41IDMuNSAwIDEgMSA3IDB2LjVoLjVhMi41IDIuNSAwIDAgMSAyLjUgMi41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41SDVBMi41IDIuNSAwIDAgMSAyLjUgMjh2LTZBMi41IDIuNSAwIDAgMSA1IDE5LjVoLjVabTItLjV2LjVoM1YxOWExLjUgMS41IDAgMCAwLTMgMFptMy41IDZhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhTG9jazMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFMb2NrMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNSA1YTMgMyAwIDAgMSAzLTNoMTAuMTdhMyAzIDAgMCAxIDIuMTIuODhsNS44MyA1LjgzYTMgMyAwIDAgMSAuODggMi4xMlYyN2EzIDMgMCAwIDEtMyAzaC03LjU0Yy4zNS0uNTkuNTQtMS4yNy41NC0yaDdhMSAxIDAgMCAwIDEtMVYxMmgtNWEzIDMgMCAwIDEtMy0zVjRIOGExIDEgMCAwIDAtMSAxdjkuNDJjLS44LjM0LTEuNDguOS0yIDEuNThWNVptMTUgNWg0LjU5TDE5IDQuNDFWOWExIDEgMCAwIDAgMSAxWm0tMSAxMWExIDEgMCAxIDAtMiAwdjRhMSAxIDAgMSAwIDIgMHYtNFptMy01YTEgMSAwIDAgMSAxIDF2OGExIDEgMCAxIDEtMiAwdi04YTEgMSAwIDAgMSAxLTFaTTUuNSAxOS41VjE5YTMuNSAzLjUgMCAxIDEgNyAwdi41aC41YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY2YTIuNSAyLjUgMCAwIDEtMi41IDIuNUg1QTIuNSAyLjUgMCAwIDEgMi41IDI4di02QTIuNSAyLjUgMCAwIDEgNSAxOS41aC41Wm0yLS41di41aDNWMTlhMS41IDEuNSAwIDAgMC0zIDBabTMuNSA2YTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGF0YWJhc2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFiYXNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00Yy4zLS40My41LS45My41LTEuNVYxMC4zYy0uMTEtMS40Mi0xLjQtMi4zNi0yLjY1LTIuODNBOC44NiA4Ljg2IDAgMCAwIDQgNy4xMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNNi44OCA4LjEyYy40LjA3Ljc4LjE3IDEuMTIuMyAxLjIuNDUgMiAxLjIxIDIgMi4wOCAwIDEuMzgtMi4wMSAyLjUtNC41IDIuNVMxIDExLjg4IDEgMTAuNSAzLjAxIDggNS41IDhjLjQ4IDAgLjk0LjA0IDEuMzguMTJaTTUuNSAxNGMxLjM4IDAgMi42OC0uMyAzLjY3LS44Ni4zLS4xNi41OC0uMzYuODMtLjU5djMuOTVjMCAxLjM4LTIuMDEgMi41LTQuNSAyLjVTMSAxNy44OCAxIDE2LjV2LTMuOTVjLjI1LjIzLjU0LjQzLjgzLjYgMSAuNTQgMi4yOS44NSAzLjY3Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhYmFzZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFiYXNlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2My4xM2MuMzItLjA2LjY2LS4xIDEtLjEyVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuMDVjLS4wOC4zNy0uMjQuNy0uNDUgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk02Ljg3IDguMTJjLjQuMDcuNzguMTcgMS4xMi4zIDEuMi40NSAyIDEuMjEgMiAyLjA4IDAgMS4zOC0yLjAxIDIuNS00LjUgMi41UzEgMTEuODggMSAxMC41IDMuMDEgOCA1LjUgOGMuNDggMCAuOTQuMDQgMS4zOC4xMlpNNS41IDE0YzEuMzggMCAyLjY4LS4zIDMuNjctLjg2LjMtLjE2LjU4LS4zNi44My0uNTl2My45NWMwIDEuMzgtMi4wMSAyLjUtNC41IDIuNVMxIDE3Ljg4IDEgMTYuNXYtMy45NWMuMjUuMjMuNTQuNDMuODMuNiAxIC41NCAyLjI5Ljg1IDMuNjcuODVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERhdGFiYXNlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREYXRhYmFzZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjUzYy4zMi0uNDIuNTMtLjkyLjUzLTEuNXYtNi4yYTIuNjUgMi42NSAwIDAgMC0uODUtMS42NSA1LjE3IDUuMTcgMCAwIDAtMS44LTEuMDkgOC42NiA4LjY2IDAgMCAwLTEuNy0uNDMgMTAuNjggMTAuNjggMCAwIDAtMy42NS4wNlY0YzAtMS4xLjktMiAyLTJoNlptLTEgMTguNWMwIC41Ni0uMzcgMS4wOC0xIDEuNS0uOTEuNi0yLjM2IDEtNCAxLTIuMDUgMC0zLjgxLS42Mi00LjU4LTEuNS0uMjctLjMtLjQyLS42NC0uNDItMXYtNGMuMzEuMjYuNjYuNDkgMS4wMi42Ni41Ny4yOSAxLjI1LjUxIDEuOTguNjVhMTAuNTMgMTAuNTMgMCAwIDAgNS0uMjVjLjM1LS4xMS42OC0uMjUuOTgtLjRIMTBsLjAyLS4wMmMuMzQtLjE3LjY4LS4zOS45OC0uNjV2NC4wMVpNNiAxN2MtLjcxIDAtMS4zOS0uMDctMi0uMi0xLjc3LS40LTMtMS4yNy0zLTIuMyAwLTEuMDMgMS4yMy0xLjkgMy0yLjNhOS40MiA5LjQyIDAgMCAxIDUgLjNjMS4yMS40NiAyIDEuMTggMiAyIDAgLjQzLS4yMS44My0uNiAxLjE4YS44Mi44MiAwIDAgMS0uMDYuMDYgMy44MyAzLjgzIDAgMCAxLTEuMTUuNjkgNS45NSA1Ljk1IDAgMCAxLTEuMjYuMzggOC41OCA4LjU4IDAgMCAxLS41NS4xaC0uMDJBOS43IDkuNyAwIDAgMSA2IDE3Wm03LjUtMTQuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREYXRhYmFzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERhdGFiYXNlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTZjMCAuNTgtLjIgMS4wOC0uNTMgMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny4xOWMuNDgtLjEuOTgtLjE2IDEuNS0uMThWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMFptLTUtMTUuMzggMy44OCAzLjg4SDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MlptLTMuMSAxNy4wNkM5LjU3IDIyLjQ3IDcuOSAyMyA2IDIzYy0yLjA1IDAtMy44MS0uNjItNC41OC0xLjUtLjI3LS4zLS40Mi0uNjQtLjQyLTF2LTRjLjMxLjI2LjY2LjQ5IDEuMDIuNjZBOS4xIDkuMSAwIDAgMCA2IDE4YTEwLjc2IDEwLjc2IDAgMCAwIDMtLjQ0Yy4zNS0uMTEuNjgtLjI1Ljk4LS40LjM2LS4xNy43MS0uNCAxLjAyLS42N3Y0LjAxYzAgLjQzLS4yMS44My0uNiAxLjE4Wm0tNC45LTkuNjdhMTAuMTcgMTAuMTcgMCAwIDEgMiAuMWMuNTUuMDkgMS4wNS4yMiAxLjUuMzkgMS4yMS40NiAyIDEuMTggMiAyIDAgLjgyLS43OSAxLjU0LTIgMi0uNDUuMTctLjk1LjMtMS41LjM5QTkuNyA5LjcgMCAwIDEgNiAxN2MtMi43NiAwLTUtMS4xMi01LTIuNSAwLTEuMDMgMS4yMy0xLjkgMy0yLjMuNDctLjEuOTctLjE2IDEuNS0uMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudERpc21pc3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERpc21pc3MxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgNC41VjFINS41QzQuNjcgMSA0IDEuNjcgNCAyLjV2Mi43QTUuNSA1LjUgMCAwIDEgOC42NiAxNWgzLjg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2aC0zLjVBMS41IDEuNSAwIDAgMSA5IDQuNVptMSAwVjEuMjVMMTMuNzUgNUgxMC41YS41LjUgMCAwIDEtLjUtLjVaTTIuMzIgNy4zMmE0LjUgNC41IDAgMSAwIDYuMzYgNi4zNiA0LjUgNC41IDAgMCAwLTYuMzYtNi4zNlptNC45NSA0Ljk1YS41LjUgMCAwIDEtLjcgMEw1LjUgMTEuMmwtMS4wNiAxLjA2YS41LjUgMCAwIDEtLjctLjdsMS4wNS0xLjA3LTEuMDYtMS4wNmEuNS41IDAgMCAxIC43LS43TDUuNSA5Ljc4bDEuMDYtMS4wNmEuNS41IDAgMCAxIC43LjdMNi4yMiAxMC41bDEuMDYgMS4wNmMuMi4yLjIuNTEgMCAuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGlzbWlzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERpc21pc3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDNjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMi45MSAyLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjEzYTIgMiAwIDAgMS0yIDJIOC42NmMuNC0uMjguNzctLjYyIDEuMDgtMUgxMmExIDEgMCAwIDAgMS0xVjZoLTIuNUExLjUgMS41IDAgMCAxIDkgNC41VjJINmExIDEgMCAwIDAtMSAxdjIuMDJjLS4zNC4wMy0uNjguMS0xIC4xOVYzWm02LjUgMmgyLjNMMTAgMi4ydjIuM2MwIC4yOC4yMi41LjUuNVpNMi4zMiA3LjMyYTQuNSA0LjUgMCAxIDAgNi4zNiA2LjM2IDQuNSA0LjUgMCAwIDAtNi4zNi02LjM2Wm00Ljk1IDQuOTVhLjUuNSAwIDAgMS0uNyAwTDUuNSAxMS4ybC0xLjA2IDEuMDZhLjUuNSAwIDAgMS0uNy0uN2wxLjA1LTEuMDctMS4wNi0xLjA2YS41LjUgMCAwIDEgLjctLjdMNS41IDkuNzhsMS4wNi0xLjA2YS41LjUgMCAwIDEgLjcuN0w2LjIyIDEwLjVsMS4wNiAxLjA2Yy4yLjIuMi41MSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREaXNtaXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnREaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMi4zMiAxNy42OGE0LjUgNC41IDAgMSAwIDYuMzYtNi4zNiA0LjUgNC41IDAgMCAwLTYuMzYgNi4zNlptMS40MS00Ljk1Yy4yLS4yLjUxLS4yLjcgMEw1LjUgMTMuOGwxLjA2LTEuMDZhLjUuNSAwIDEgMSAuNy43TDYuMjIgMTQuNWwxLjA2IDEuMDZhLjUuNSAwIDEgMS0uNzEuN0w1LjUgMTUuMjJsLTEuMDYgMS4wNmEuNS41IDAgMSAxLS43LS43MWwxLjA1LTEuMDYtMS4wNi0xLjA2YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGlzbWlzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudERpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk04LjY3IDE3LjY4YTQuNSA0LjUgMCAxIDAtNi4zNi02LjM2IDQuNSA0LjUgMCAwIDAgNi4zNiA2LjM2Wm0tNC45NS00Ljk1Yy4yLS4yLjUxLS4yLjcgMEw1LjUgMTMuOGwxLjA2LTEuMDZhLjUuNSAwIDEgMSAuNy43TDYuMjIgMTQuNWwxLjA2IDEuMDZhLjUuNSAwIDEgMS0uNzEuN0w1LjUgMTUuMjJsLTEuMDYgMS4wNmEuNS41IDAgMSAxLS43LS43MWwxLjA1LTEuMDYtMS4wNi0xLjA2YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RGlzbWlzczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjgxQTYuNSA2LjUgMCAwIDAgNCAxMS41VjRjMC0xLjEuOS0yIDItMmg2Wm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wm0tNyA5LjVhNS41IDUuNSAwIDEgMCAwIDExIDUuNSA1LjUgMCAwIDAgMC0xMVptMi40OCAzLjczTDcuMiAxNy41bDEuNzcgMS43N2EuNS41IDAgMSAxLS43LjdMNi41IDE4LjIybC0xLjc3IDEuNzZhLjUuNSAwIDEgMS0uNy0uN2wxLjc2LTEuNzctMS43Ni0xLjc3YS41LjUgMCAxIDEgLjctLjdsMS43NyAxLjc2IDEuNzctMS43N2EuNS41IDAgMCAxIC43LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnREaXNtaXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm01LjYzLTEwYy42IDAgMS4xNy4yNCAxLjU5LjY2bDIuODEgMi44IDIuOCAyLjgyYy40My40Mi42NyAxIC42NyAxLjZ2OS44N2MwIDEuMjQtMS4wMSAyLjI1LTIuMjUgMi4yNWgtNi41NmMuNDMtLjQ0Ljc5LS45NSAxLjA4LTEuNWg1LjQ4Yy40MSAwIC43NS0uMzQuNzUtLjc1VjEwaC00LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUwxMiA3Ljc2VjMuNUg2LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2Ni44M2MtLjUyLjA4LTEuMDMuMjItMS41LjQyVjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNS44OFpNNC4wOSAxNC45N2wtLjA3LjA1LS4wNS4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNS4wN0w1LjggMTcuNWwtMS43NiAxLjc3LS4wNi4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNi4wNi4wNy4wNmMuMTcuMTIuNC4xMi41NiAwbC4wNy0uMDYgMS43Ny0xLjc2IDEuNzcgMS43Ny4wNy4wNWMuMTcuMTIuNC4xMi41NyAwbC4wNy0uMDUuMDUtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNS0uMDdMNy4yIDE3LjVsMS43Ny0xLjc3LjA2LS4wN2EuNS41IDAgMCAwIDAtLjU3bC0uMDYtLjA3LS4wNy0uMDVhLjUuNSAwIDAgMC0uNTcgMGwtLjA3LjA1TDYuNSAxNi44bC0xLjc3LTEuNzctLjA3LS4wNWEuNS41IDAgMCAwLS41NyAwWm05LjQtMTAuNDEuMDEgMy4yYzAgLjM3LjI4LjY5LjY1Ljc0SDE3LjQ1TDEzLjUgNC41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RWRpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RWRpdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxdjMuNUM4IDUuMzMgOC42NyA2IDkuNSA2SDEzdjEuMDRjLS41LjA4LS45OC4zMi0xLjM3LjdsLTQuMjkgNC4zYy0uNDguNDgtLjgzIDEuMDgtMSAxLjc1bC0uMyAxLjJINC41QTEuNSAxLjUgMCAwIDEgMyAxMy41VjIuNUMzIDEuNjcgMy42NyAxIDQuNSAxSDhabTUgNy4wNmMtLjI0LjA3LS40Ny4yLS42Ni40bC00LjMgNC4yOGMtLjM1LjM2LS42LjgtLjcyIDEuM2wtLjMgMS4yYS42LjYgMCAwIDAgLjczLjc0bDEuMjItLjNjLjQ4LS4xMi45My0uMzggMS4yOS0uNzNsNC4yOC00LjI5QTEuNTYgMS41NiAwIDAgMCAxMyA4LjA2Wk05IDEuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMOSAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFZGl0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RWRpdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUgMWEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMS4wNWwuMjUtMUg1YTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDN2Mi41QzggNS4zMyA4LjY3IDYgOS41IDZIMTJ2MS40NGMuMy0uMi42NS0uMzQgMS0uNFY1LjRjMC0uNC0uMTYtLjc4LS40NC0xLjA2TDkuNjUgMS40NEExLjUgMS41IDAgMCAwIDguNTggMUg1Wm02LjggNEg5LjVhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTEuOCA1Wk0xMyA4LjA2Yy0uMjQuMDctLjQ3LjItLjY2LjRsLTQuMyA0LjI4Yy0uMzQuMzUtLjU5Ljc4LS43MSAxLjI2bC0uMDEuMDMtLjMgMS4yMWEuNi42IDAgMCAwIC43My43NGwxLjIyLS4zYy40OC0uMTIuOTMtLjM4IDEuMjktLjczbDQuMjgtNC4yOUExLjU2IDEuNTYgMCAwIDAgMTMgOC4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RWRpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RWRpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoMi43MmExLjg2IDEuODYgMCAwIDEtLjE2LTEuMzVsLjM3LTEuNWEzLjIgMy4yIDAgMCAxIC44NC0xLjQ4bDQuODMtNC44M2MuNTMtLjUzIDEuMjEtLjggMS45LS44NGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVptNi40NSAzLjA1YTEuODcgMS44NyAwIDAgMC0yLjY0IDBsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYy43My0uNzMuNzMtMS45MSAwLTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVkaXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFZGl0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTEuNSA4SDE2di0uNTlhMS41IDEuNSAwIDAgMC0uMDYtLjRWN2ExLjUgMS41IDAgMCAwLS4zOC0uNjVsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMi4yMmwtLjAxLS4wM0ExLjg2IDEuODYgMCAwIDEgOCAxN0g2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41Wm0wLTFhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3aC0zLjNabTMuMyAyLjU1YTEuODcgMS44NyAwIDEgMSAyLjY1IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJsNC44My00LjgzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFZGl0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFZGl0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg0LjkyYTQuMyA0LjMgMCAwIDAtMS41Ni45N2wtNi4wNSA2LjFjLS4zNS4zNS0uNi43OS0uNzMgMS4yN2wtLjUyIDIuMDNjLS4xNi42LS4wNCAxLjE3LjI0IDEuNjNINS41QTEuNSAxLjUgMCAwIDEgNCAyMC41di0xN0M0IDIuNjcgNC42NyAyIDUuNSAySDEyWm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wm0tMS4zIDE1LjA3IDUuOS01LjlhMi4yOSAyLjI5IDAgMSAxIDMuMjMgMy4yM2wtNS45IDUuOWMtLjM1LjM1LS43OC42LTEuMjUuNzFsLTEuODMuNDZjLS44LjItMS41Mi0uNTItMS4zMi0xLjMybC40Ni0xLjgzYy4xMi0uNDcuMzYtLjkuNy0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFZGl0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RWRpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjUgMy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NWgzLjc4Yy0uMS41NSAwIDEuMDcuMjcgMS41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmg2LjA5Yy40NiAwIC45LjE4IDEuMjMuNTFsNS45MiA1LjkyYy4zMy4zMi41MS43Ny41MSAxLjIzVjEwaC02YTIgMiAwIDAgMS0yLTJWMy41SDYuMjVabTcuMjUgMS4wNlY4YzAgLjI4LjIyLjUuNS41aDMuNDRMMTMuNSA0LjU2Wk0xOS43MSAxMWEyLjI4IDIuMjggMCAwIDEgMS42MiAzLjlsLTUuOSA1LjljLS4zNS4zNS0uNzguNi0xLjI1LjcxbC0xLjgzLjQ2Yy0uOC4yLTEuNTItLjUyLTEuMzItMS4zMmwuNDYtMS44M2MuMTItLjQ3LjM2LS45LjctMS4yNWw1LjktNS45YTIuMjggMi4yOCAwIDAgMSAxLjYyLS42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RW5kbm90ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RW5kbm90ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMXYtNmEyIDIgMCAwIDAtMi0ySDRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTMuNSAxMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAwLS41LjV2NWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDEgMCAxaC0xQTEuNSAxLjUgMCAwIDEgMSAxNy41di01YzAtLjgzLjY3LTEuNSAxLjUtMS41aDFabTQgN2EuNS41IDAgMCAwIDAgMWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS41LjVoLTFaTTYgMTQuNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAxIDAgMSAwdi0zWm0wLTJhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVuZG5vdGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFbmRub3RlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NmgxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTN2MWgzYTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTMuNSAxMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAwLS41LjV2NWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDEgMCAxaC0xQTEuNSAxLjUgMCAwIDEgMSAxNy41di01YzAtLjgzLjY3LTEuNSAxLjUtMS41aDFabTQgN2EuNS41IDAgMCAwIDAgMWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS41LjVoLTFabS0yLTRjLjI3IDAgLjUuMjIuNS41djNhLjUuNSAwIDEgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVptMC0xYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFbmRub3RlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFbmRub3RlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEzdi04YTIgMiAwIDAgMC0yLTJINFYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlptLTYuMjUgMTVhLjc1Ljc1IDAgMCAwLTEuNSAwVjIxYS43NS43NSAwIDAgMCAxLjUgMHYtMy41Wm0wLTIuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLTIuNzUtMS41YzAgLjQxLS4zNC43NS0uNzUuNzVIMi41djdoMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi41QTEuNSAxLjUgMCAwIDEgMSAyMS41di03YzAtLjgzLjY3LTEuNSAxLjUtMS41aDEuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wm00Ljc1Ljc1YS43NS43NSAwIDAgMSAwLTEuNWgxLjI1Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuMjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMjV2LTdIOS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50RW5kbm90ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEVuZG5vdGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01LjUgNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1SDEyVjhjMCAxLjEuOSAyIDIgMmg0LjV2OS43NWMwIC40MS0uMzQuNzUtLjc1Ljc1SDEzVjIyaDQuNzVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWOS42NmMwLS40Ni0uMTgtLjktLjUxLTEuMjNMMTMuNTcgMi41QTEuNzUgMS43NSAwIDAgMCAxMi4zNCAySDYuMjVDNS4wMSAyIDQgMyA0IDQuMjVWMTJoMS41VjQuMjVabTggMy43NVY0LjU2bDMuOTQgMy45NEgxNGEuNS41IDAgMCAxLS41LS41Wm0tOSA1Ljc1YzAgLjQxLS4zNC43NS0uNzUuNzVIMi41djdoMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi41QTEuNSAxLjUgMCAwIDEgMSAyMS41di03YzAtLjgzLjY3LTEuNSAxLjUtMS41aDEuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wm00Ljc1Ljc1YS43NS43NSAwIDAgMSAwLTEuNWgxLjI1Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuMjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMjV2LTdIOS4yNVpNNi41IDE2Ljc1Yy40MSAwIC43NS4zNC43NS43NVYyMWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0wLS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVycm9yMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFcnJvcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNiAxaDN2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djdhMiAyIDAgMCAxLTIgMkg4LjY3QTUuNSA1LjUgMCAwIDAgNCA1LjJWM2MwLTEuMS45LTIgMi0yWm00LjUgNEgxNGwtNC00djMuNWMwIC4yOC4yMi41LjUuNVptLS41IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNNS41IDhhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDEgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEyYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFcnJvcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEVycm9yMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2Mi4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjNhMSAxIDAgMCAxIDEtMWgzdjIuNWMwIC44My42NyAxLjUgMS41IDEuNUgxM3Y3YTEgMSAwIDAgMS0xIDFIOS43NGMtLjMuMzgtLjY3LjcxLTEuMDcgMUgxMmEyIDIgMCAwIDAgMi0yVjUuNDJjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkyLTIuOTJBMS41IDEuNSAwIDAgMCA5LjU4IDFINlptNCAzLjVWMi4yMWwyLjggMi44aC0yLjNhLjUuNSAwIDAgMS0uNS0uNVptMCA2YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk01LjUgOGEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVycm9yMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRFcnJvcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAxMmEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0wIDUuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEVycm9yMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RXJyb3IyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk01LjUgMTJhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LTJhLjUuNSAwIDAgMC0uNS0uNVptMCA1LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFcnJvcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RXJyb3IyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNi44MUE2LjUgNi41IDAgMCAwIDQgMTEuNVY0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlptLTEuNSAxNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWk02LjUgMTRhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMCAxIDB2LTRhLjUuNSAwIDAgMC0uNS0uNVptMCA3LjEzYS42Mi42MiAwIDEgMCAwLTEuMjUuNjIuNjIgMCAwIDAgMCAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRFcnJvcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEVycm9yMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTUuNzNhNi41MiA2LjUyIDAgMCAxLTEuMDggMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny41Yy40Ny0uMi45OC0uMzQgMS41LS40MlY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBaTTYuNSAxNGEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAwIDEgMHYtNGEuNS41IDAgMCAwLS41LS41Wm0wIDcuMTNhLjYyLjYyIDAgMSAwIDAtMS4yNS42Mi42MiAwIDAgMCAwIDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rml0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINVptMCAzYTEgMSAwIDAgMSAxLTFoMWEuNS41IDAgMCAxIDAgMUg2djFhLjUuNSAwIDAgMS0xIDBWNFptMCA4di0xYS41LjUgMCAwIDEgMSAwdjFoMWEuNS41IDAgMCAxIDAgMUg2YTEgMSAwIDAgMS0xLTFabTUtOWExIDEgMCAwIDEgMSAxdjFhLjUuNSAwIDAgMS0xIDBWNEg5YS41LjUgMCAwIDEgMC0xaDFabTEgOWExIDEgMCAwIDEtMSAxSDlhLjUuNSAwIDAgMSAwLTFoMXYtMWEuNS41IDAgMCAxIDEgMHYxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGaXQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINVpNNCAzYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjNabTEgMWExIDEgMCAwIDEgMS0xaDFhLjUuNSAwIDAgMSAwIDFINnYxYS41LjUgMCAwIDEtMSAwVjRabTAgOGExIDEgMCAwIDAgMSAxaDFhLjUuNSAwIDAgMCAwLTFINnYtMWEuNS41IDAgMCAwLTEgMHYxWm01LTlhMSAxIDAgMCAxIDEgMXYxYS41LjUgMCAwIDEtMSAwVjRIOWEuNS41IDAgMCAxIDAtMWgxWm0xIDlhMSAxIDAgMCAxLTEgMUg5YS41LjUgMCAwIDEgMC0xaDF2LTFhLjUuNSAwIDAgMSAxIDB2MVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rml0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wm0xLjUgM2EuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAxLTEgMHYtMUM2IDQuNjcgNi42NyA0IDcuNSA0aDFhLjUuNSAwIDAgMSAwIDFoLTFabTAgMTBoMWEuNS41IDAgMCAxIDAgMWgtMUExLjUgMS41IDAgMCAxIDYgMTQuNXYtMWEuNS41IDAgMCAxIDEgMHYxYzAgLjI4LjIyLjUuNS41Wk0xMyA1LjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAxIDAtMWgxYy44MyAwIDEuNS42NyAxLjUgMS41djFhLjUuNSAwIDAgMS0xIDB2LTFabS0uNSA5LjVhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAxIDEgMHYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWEuNS41IDAgMCAxIDAtMWgxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGaXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlpNNSA0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRabTIuNSAxYS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xQzYgNC42NyA2LjY3IDQgNy41IDRoMWEuNS41IDAgMCAxIDAgMWgtMVptMCAxMGEuNS41IDAgMCAxLS41LS41di0xYS41LjUgMCAwIDAtMSAwdjFjMCAuODMuNjcgMS41IDEuNSAxLjVoMWEuNS41IDAgMCAwIDAtMWgtMVpNMTMgNS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMSAwLTFoMWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYS41LjUgMCAwIDEtMSAwdi0xWm0tLjUgOS41YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMSAxIDB2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFhLjUuNSAwIDAgMSAwLTFoMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rml0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGaXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgMkM1LjAxIDIgNCAzIDQgNC4yNXYxNS41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDExLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNC4yNUMyMCAzLjAxIDE5IDIgMTcuNzUgMkg2LjI1Wk05IDYuNWEuNS41IDAgMCAwLS41LjV2MS4yNWEuNzUuNzUgMCAwIDEtMS41IDBWN2MwLTEuMS45LTIgMi0yaDEuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDlabTAgMTFoMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVIOWEyIDIgMCAwIDEtMi0ydi0xLjI1YS43NS43NSAwIDAgMSAxLjUgMFYxN2MwIC4yOC4yMi41LjUuNVpNMTUuNSA3YS41LjUgMCAwIDAtLjUtLjVoLTEuMjVhLjc1Ljc1IDAgMCAxIDAtMS41SDE1YTIgMiAwIDAgMSAyIDJ2MS4yNWEuNzUuNzUgMCAwIDEtMS41IDBWN1pNMTUgMTcuNWEuNS41IDAgMCAwIC41LS41di0xLjI1YS43NS43NSAwIDAgMSAxLjUgMFYxN2EyIDIgMCAwIDEtMiAyaC0xLjI1YS43NS43NSAwIDAgMSAwLTEuNUgxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rml0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rml0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAyQzUuMDEgMiA0IDMgNCA0LjI1djE1LjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoMTEuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY0LjI1QzIwIDMuMDEgMTkgMiAxNy43NSAySDYuMjVaTTUuNSA0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTEuNWMuNDEgMCAuNzUuMzQuNzUuNzV2MTUuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDYuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC4yNVpNOSA2LjVhLjUuNSAwIDAgMC0uNS41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjdjMC0xLjEuOS0yIDItMmgxLjI1YS43NS43NSAwIDAgMSAwIDEuNUg5Wm0wIDExYS41LjUgMCAwIDEtLjUtLjV2LTEuMjVhLjc1Ljc1IDAgMCAwLTEuNSAwVjE3YzAgMS4xLjkgMiAyIDJoMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIOVpNMTUuNSA3YS41LjUgMCAwIDAtLjUtLjVoLTEuMjVhLjc1Ljc1IDAgMCAxIDAtMS41SDE1YTIgMiAwIDAgMSAyIDJ2MS4yNWEuNzUuNzUgMCAwIDEtMS41IDBWN1pNMTUgMTcuNWEuNS41IDAgMCAwIC41LS41di0xLjI1YS43NS43NSAwIDAgMSAxLjUgMFYxN2EyIDIgMCAwIDEtMiAyaC0xLjI1YS43NS43NSAwIDAgMSAwLTEuNUgxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rmxvd2NoYXJ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGbG93Y2hhcnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptLTQgMWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41SDh2MS44TDkuMiAxM0gxMXYtLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41VjE0SDkuMmwtMS4zNSAxLjM1YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdMNyAxMS43OVYxMGgtLjVhLjUuNSAwIDAgMS0uNS0uNXYtMlptNS0xVjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZsb3djaGFydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZsb3djaGFydDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgNy41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVIOHYxLjhMOS4yIDEzSDExdi0uNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjVWMTRIOS4ybC0xLjM1IDEuMzVhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN0w3IDExLjc5VjEwaC0uNWEuNS41IDAgMCAxLS41LS41di0yWk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wk01IDRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRabTkuOCAzaC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGbG93Y2hhcnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZsb3djaGFydDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgOFYySDZhMiAyIDAgMCAwLTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMTBoLTZhMiAyIDAgMCAxLTItMlptLTUuNS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVoLS41djIuNjlsMS41NiAxLjU2aDIuNjl2LS41YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NXYyLjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1di0uNWgtMi42OWwtMS43OCAxLjc4Yy0uMy4zLS43Ny4zLTEuMDYgMGwtMi0yYS43NS43NSAwIDAgMSAwLTEuMDZsMS43OC0xLjc4VjExLjVoLS41YS43NS43NSAwIDAgMS0uNzUtLjc1di0yLjVabTctLjI1VjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rmxvd2NoYXJ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rmxvd2NoYXJ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi41IDguMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0uNXYyLjY5bDEuNTYgMS41NmgyLjY5di0uNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtLjVoLTIuNjlsLTEuNzggMS43OGMtLjMuMy0uNzcuMy0xLjA2IDBsLTItMmEuNzUuNzUgMCAwIDEgMC0xLjA2bDEuNzgtMS43OFYxMS41aC0uNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41Wm0xMi45MS4xNkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJaTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMS0uNS0uNVY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb2xkZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvbGRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTIuNSA5SDEyVjQuMDljLjU4LjIgMSAuNzYgMSAxLjQxdjMuNTVhMi41MSAyLjUxIDAgMCAwLS41LS4wNVpNNi44NSA0LjczIDExIDguODhWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNUMzLjY3IDIgMyAyLjY3IDMgMy41di41NWMuMTYtLjAzLjMzLS4wNS41LS4wNWgxLjU5Yy42NiAwIDEuMy4yNiAxLjc2LjczWk0zLjUgNUMyLjY3IDUgMiA1LjY3IDIgNi41VjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEuNTlhLjUuNSAwIDAgMS0uMzUtLjE1TDYuMTUgNS40NEExLjUgMS41IDAgMCAwIDUuMDkgNUgzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvbGRlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvbGRlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzIDEwLjA5Yy41OC4yIDEgLjc2IDEgMS40MXYuNWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2LjVjMC0uNjUuNDItMS4yIDEtMS40MVYzLjVDMyAyLjY3IDMuNjcgMiA0LjUgMmg1Yy44MyAwIDEuNS42NyAxLjUgMS41VjEwaDFWNC4wOWMuNTguMiAxIC43NiAxIDEuNDF2NC41OVptLTMtLjhWMy41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41VjVoMS4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDEwIDkuMjlaTTMgNi41VjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0uNWEuNS41IDAgMCAwLS41LS41aC0xLjU5Yy0uNCAwLS43OC0uMTYtMS4wNi0uNDRMNS40NCA2LjE1QS41LjUgMCAwIDAgNS4wOSA2SDMuNWEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvbGRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9sZGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMiAyYTIgMiAwIDAgMSAyIDJ2N2gtLjg4TDkgNi44OEEzIDMgMCAwIDAgNi44OCA2SDVhMyAzIDAgMCAwLTEgLjE3VjRjMC0xLjEuOS0yIDItMmg2Wm0zIDlhMyAzIDAgMCAxIDEgLjE3VjZhMiAyIDAgMCAwLTEtMS43M1YxMVpNNSA3YTIgMiAwIDAgMC0yIDJ2Ni41QTIuNSAyLjUgMCAwIDAgNS41IDE4aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE0YTIgMiAwIDAgMC0yLTJoLTEuODhhMSAxIDAgMCAxLS43LS4zTDguMjggNy42QTIgMiAwIDAgMCA2Ljg4IDdINVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9sZGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9sZGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgMmEyIDIgMCAwIDEgMiAydjhoMVY0LjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y2LjI3Yy42LjM0IDEgLjk5IDEgMS43M3YxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNS41VjlhMiAyIDAgMCAxIDEtMS43M1Y0YzAtMS4xLjktMiAyLTJoNlpNNSA3aDEuODhhMiAyIDAgMCAxIDEuNDEuNTlsNC4xMiA0LjEyYTEgMSAwIDAgMCAuNTkuMjhWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzWk00IDl2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjE0YTEgMSAwIDAgMC0xLTFoLTEuODhhMiAyIDAgMCAxLTEuNDEtLjU5TDcuNTkgOC4zQTEgMSAwIDAgMCA2Ljg4IDhINWExIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb2xkZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvbGRlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTguNSA2Ljc1VjQuNjNjLjg3LjMgMS41IDEuMTQgMS41IDIuMTJ2Ny41Yy0uMzgtLjE2LS44LS4yNS0xLjI1LS4yNWgtLjI1VjYuNzVaTTQgNC4yNXYzYy4zOC0uMTYuOC0uMjUgMS4yNS0uMjVIOC4xYy45IDAgMS43Ni4zOCAyLjM4IDEuMDRMMTYgMTRoMS40OVY0LjI1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC05QzUuMDEgMiA0IDMgNCA0LjI1Wk01LjI1IDhDNC4wMSA4IDMgOSAzIDEwLjI1djguNUMzIDIwLjU1IDQuNDYgMjIgNi4yNSAyMmgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTEuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxNS45Yy0uMiAwLS40LS4wOS0uNTUtLjI0bC01LjYtNi4wNEEyLjI1IDIuMjUgMCAwIDAgOC4xIDhINS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9sZGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9sZGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSA0LjYzVjE1aC0xVjQuMjVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTlDNS4wMSAyIDQgMyA0IDQuMjV2NC4xM2MtLjYuNC0xIDEuMDktMSAxLjg3djguNUMzIDIwLjU1IDQuNDYgMjIgNi4yNSAyMmgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTEuNWMwLS43OC0uNC0xLjQ3LTEtMS44N1Y2Ljc1YzAtLjk4LS42My0xLjgxLTEuNS0yLjEyWk01LjUgOFY0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoOWMuNDEgMCAuNzUuMzQuNzUuNzVWMTVoLS4xYy0uMiAwLS40LS4wOS0uNTUtLjI0bC01LjYtNi4wNEEyLjI1IDIuMjUgMCAwIDAgOC4xIDhINS41Wm0tMSAyLjI1YzAtLjQxLjM0LS43NS43NS0uNzVIOC4xYy4yIDAgLjQuMDkuNTUuMjRsNS42IDYuMDRjLjQzLjQ2IDEuMDMuNzIgMS42NS43MmgyLjg1Yy40MSAwIC43NS4zNC43NS43NXYxLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtOC41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb290ZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvb3RlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAyLjc1QzMgMS43OCAzLjc4IDEgNC43NSAxaDYuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMC41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNi41QzMuNzggMTUgMyAxNC4yMiAzIDEzLjI1VjIuNzVaTTYgMTFhMSAxIDAgMSAwIDAgMmg0YTEgMSAwIDEgMCAwLTJINlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9vdGVyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9vdGVyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiAxMWExIDEgMCAxIDAgMCAyaDRhMSAxIDAgMSAwIDAtMkg2Wk00Ljc1IDFDMy43OCAxIDMgMS43OCAzIDIuNzV2MTAuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjIuNzVDMTMgMS43OCAxMi4yMiAxIDExLjI1IDFoLTYuNVpNNCAyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNi41Yy40MSAwIC43NS4zNC43NS43NXYxMC41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTYuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb290ZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZvb3RlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZabTEgMTJoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMSAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9vdGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9vdGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZaTTUgNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm0yIDEwYTEgMSAwIDEgMCAwIDJoNmExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvb3RlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9vdGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy43NSAyYzEuMTkgMCAyLjE2LjkyIDIuMjQgMi4xdjE1LjY1YzAgMS4xOC0uOTIgMi4xNi0yLjA5IDIuMjRINi4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNS0yLjFWNC4yNUM0IDMuMDcgNC45MiAyLjA5IDYuMSAyaDExLjY1Wk04LjUgMTZhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50Rm9vdGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9vdGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC41IDE2YTEuNSAxLjUgMCAxIDAgMCAzaDdhMS41IDEuNSAwIDAgMCAwLTNoLTdaTTIwIDQuMUEyLjI1IDIuMjUgMCAwIDAgMTcuNzQgMkg2LjA5QTIuMjUgMi4yNSAwIDAgMCA0IDQuMjV2MTUuNWwuMDEuMTVBMi4yNSAyLjI1IDAgMCAwIDYuMjUgMjJoMTEuNWwuMTUtLjAxYTIuMjUgMi4yNSAwIDAgMCAyLjEtMi4yNVY0LjFaTTYuMjQgMy41aDExLjZjLjM2LjA1LjY1LjM3LjY1Ljc1djE1LjVsLS4wMS4xYS43NS43NSAwIDAgMS0uNzQuNjRINi4xNWEuNzUuNzUgMCAwIDEtLjY1LS43NVY0LjE0YS43NS43NSAwIDAgMSAuNzUtLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb290ZXJEaXNtaXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGb290ZXJEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0zLjggMCAxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNC41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE1LjIxIDUuNVptLS43IDUuNWE1LjUgNS41IDAgMCAwIDEuNS0uMlYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNC4yNmE1LjUgNS41IDAgMCAwIDQuMjQgOVpNNyAxNGExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMkg3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb290ZXJEaXNtaXNzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50Rm9vdGVyRGlzbWlzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDE0LjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTUuMjEgNS41bDEuMTQtMS4xNVpNMTUgMTZ2LTUuMDJjLjM0LS4wMy42OC0uMSAxLS4xOVYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNC4yNmMtLjI2LjMtLjQ4LjY0LS42NiAxSDZhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVptLTgtMmExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMSAwIDAtMkg3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGb290ZXJEaXNtaXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGb290ZXJEaXNtaXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMyA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcuMTQtMi4zNWEuNS41IDAgMSAwLS43MS43bDEuNjQgMS42NS0xLjY0IDEuNjVhLjUuNSAwIDAgMCAuNy43bDEuNjUtMS42NCAxLjY1IDEuNjVhLjUuNSAwIDEgMCAuNy0uNzFMMTguMjEgNi41bDEuNjQtMS42NWEuNS41IDAgMCAwLS43LS43TDE3LjUgNS43OWwtMS42NC0xLjY0Wk0xNy41IDEzYy44OSAwIDEuNzMtLjE3IDIuNS0uNXY3LjI1YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFINi4yNWMtMS4yIDAtMi4xNy0uOTMtMi4yNC0yLjFMNCAxOS43NVY0LjI1YzAtMS4yLjkyLTIuMTcgMi4xLTIuMjVIMTIuODJhNi41IDYuNSAwIDAgMCA0LjY5IDExWm0tOSAzYTEuNSAxLjUgMCAwIDAgMCAzaDdhMS41IDEuNSAwIDAgMCAwLTNoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEZvb3RlckRpc21pc3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRGb290ZXJEaXNtaXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjMgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS03LjE1LTIuMzVhLjUuNSAwIDEgMC0uNy43bDEuNjQgMS42NS0xLjY0IDEuNjVhLjUuNSAwIDAgMCAuNy43bDEuNjUtMS42NCAxLjY1IDEuNjRhLjUuNSAwIDEgMCAuNy0uN0wxOC4yMSA2LjVsMS42NC0xLjY1YS41LjUgMCAxIDAtLjctLjdMMTcuNSA1Ljc5bC0xLjY1LTEuNjRabTIuNjUgMTUuNnYtNi44M2E2LjQ2IDYuNDYgMCAwIDAgMS41LS40MnY3LjI0YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI1SDYuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjUtMi4xVjQuMjVDNCAzLjA2IDQuOTIgMi4wOSA2LjEgMmg2LjcxYy0uNDIuNDQtLjc5Ljk0LTEuMDcgMS41aC01LjVjLS4zNyAwLS42OS4yOC0uNzQuNjR2MTUuNmMwIC4zOC4yOC43LjY0Ljc1aDExLjZjLjM5IDAgLjctLjI4Ljc1LS42NHYtLjFaTTguNSAxNmExLjUgMS41IDAgMCAwIDAgM2g3YTEuNSAxLjUgMCAwIDAgMC0zaC03WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50RnMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUgNWgzLjI1TDEwIDEuMjVWNC41YzAgLjI4LjIyLjUuNS41Wm0wIDFBMS41IDEuNSAwIDAgMSA5IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41djYuNmMuMi4wNi40LjE4LjU2LjM0LjIuMTkuMzIuNDIuMzkuNjhsLjA0LS4wM2EuNS41IDAgMCAxIC4wNy0uMDNBMS41IDEuNSAwIDAgMSA2LjUgOWMuMzcgMCAuNzIuMTMgMSAuMzhhMS41IDEuNSAwIDAgMSAyLjQ0LjY4QTEuNDkgMS40OSAwIDAgMSAxMSAxMS41YzAgLjM3LS4xMy43Mi0uMzggMWExLjUgMS41IDAgMCAxLS42OCAyLjQ0bC0uMDIuMDMtLjAxLjAzaDIuNTljLjgzIDAgMS41LS42NyAxLjUtMS41VjZoLTMuNVptLTEgN0g5di0xaC41YS41LjUgMCAxIDAgMC0xSDl2LS41YS41LjUgMCAxIDAtMSAwdi41SDd2LS41YS41LjUgMCAxIDAtMSAwdi41aC0uNWEuNS41IDAgMSAwIDAgMUg2bC4wMSAxSDUuNWEuNS41IDAgMSAwIDAgMWguNTJ2LjVjMCAuMTMuMDUuMjYuMTUuMzVhLjUuNSAwIDAgMCAuODUtLjM1VjE0SDh2LjVjMCAuMTMuMDUuMjYuMTUuMzVBLjUuNSAwIDAgMCA5IDE0LjVWMTRoLjVhLjUuNSAwIDEgMCAwLTFaTTggMTNoLS45OXYtMUg4djFabS00LjE1LTIuMTVhLjUuNSAwIDAgMCAwLS43LjUuNSAwIDAgMC0uMzUtLjE1aC0yYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAxIDAgMSAwVjEzaDFhLjUuNSAwIDEgMCAwLTFIMnYtMWgxLjVhLjUuNSAwIDAgMCAuMzUtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRGczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEZzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTMuNTYgNC4zNS0yLjkxLTIuOTFBMS41IDEuNSAwIDAgMCA5LjU5IDFINmEyIDIgMCAwIDAtMiAydjUuODNjLjQyLjEzLjc4LjQgMSAuNzlWM2ExIDEgMCAwIDEgMS0xaDN2Mi41QTEuNSAxLjUgMCAwIDAgMTAuNSA2SDEzdjdhMSAxIDAgMCAxLTEgMWgtLjgzYy0uMTMuNDItLjQyLjc4LS44IDFIMTJhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43Ny0uNDQtMS4wNlpNMTAuNSA1YS41LjUgMCAwIDEtLjUtLjVWMi4yTDEyLjggNWgtMi4zWm0tMSA4SDl2LTFoLjVhLjUuNSAwIDAgMCAwLTFIOXYtLjVhLjUuNSAwIDAgMC0xIDB2LjVIN3YtLjVhLjUuNSAwIDAgMC0xIDB2LjVoLS41YS41LjUgMCAwIDAgMCAxSDZsLjAxIDFINS41YS41LjUgMCAwIDAgMCAxaC41MnYuNWEuNS41IDAgMCAwIDEgMFYxNEg4di41YS41LjUgMCAwIDAgMSAwVjE0aC41YS41LjUgMCAwIDAgMC0xWk04IDEzaC0uOTl2LTFIOHYxWm0tNC4xNS0yLjE1QS41LjUgMCAwIDAgMy41IDEwaC0yYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDAgMSAwVjEzaDFhLjUuNSAwIDAgMCAwLTFIMnYtMWgxLjVhLjUuNSAwIDAgMCAuMzUtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAyLjc1QzMgMS43OCAzLjc4IDEgNC43NSAxaDYuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMC41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNi41QzMuNzggMTUgMyAxNC4yMiAzIDEzLjI1VjIuNzVaTTYgM2ExIDEgMCAwIDAgMCAyaDRhMSAxIDAgMSAwIDAtMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDNhMSAxIDAgMCAwIDAgMmg0YTEgMSAwIDEgMCAwLTJINlpNNC43NSAxQzMuNzggMSAzIDEuNzggMyAyLjc1djEwLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYyLjc1QzEzIDEuNzggMTIuMjIgMSAxMS4yNSAxaC02LjVaTTQgMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWMuNDEgMCAuNzUuMzQuNzUuNzV2MTAuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC02LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wm0xIDJoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZaTTUgNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0Wm0yIDBhMSAxIDAgMCAwIDAgMmg2YTEgMSAwIDEgMCAwLTJIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDYuMjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDQgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk04LjUxIDVhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC41IDVhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pNMjAgNC4xQTIuMjUgMi4yNSAwIDAgMCAxNy43NCAySDYuMUEyLjI1IDIuMjUgMCAwIDAgNCA0LjI2VjE5LjlBMi4yNSAyLjI1IDAgMCAwIDYuMjYgMjJIMTcuOWEyLjI1IDIuMjUgMCAwIDAgMi4xLTIuMjVWNC4xWk02LjI0IDMuNWgxMS42Yy4zNy4wNi42NS4zNy42NS43NXYxNS42YS43NS43NSAwIDAgMS0uNzUuNjVINi4xNWEuNzUuNzUgMCAwIDEtLjY1LS43NVY0LjE1YS43NS43NSAwIDAgMSAuNzUtLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXJBcnJvd0Rvd24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckFycm93RG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAyLjc1QzMgMS43OCAzLjc4IDEgNC43NSAxaDYuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY1LjZBNS41IDUuNSAwIDAgMCA3LjM0IDE1SDQuNzVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjVWMi43NVpNNiAzYTEgMSAwIDAgMCAwIDJoNGExIDEgMCAxIDAgMC0ySDZabTkgNy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDExIDExLjI5VjguNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXJBcnJvd0Rvd24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJBcnJvd0Rvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00Ljc1IDFDMy43OCAxIDMgMS43OCAzIDIuNzV2MTAuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyLjU5Yy0uNC0uMjgtLjc3LS42Mi0xLjA4LTFINC43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNi41Yy40MSAwIC43NS4zNC43NS43NXYyLjQ2Yy4zNS4xLjY4LjIzIDEgLjM5VjIuNzVDMTMgMS43OCAxMi4yMiAxIDExLjI1IDFoLTYuNVpNNiAzYTEgMSAwIDAgMCAwIDJoNGExIDEgMCAxIDAgMC0ySDZabTkgNy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDExIDExLjI5VjguNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXJBcnJvd0Rvd24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckFycm93RG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0LjI2QTUuNSA1LjUgMCAwIDEgMTYgOS4yVjRhMiAyIDAgMCAwLTItMkg2Wm0xIDJoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxIDAtMlptMTIgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUgMi4zNWEuNS41IDAgMCAwIC4zNS4xNS41LjUgMCAwIDAgLjM1LS4xNWwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxNSAxNS4yOVYxMi41YS41LjUgMCAwIDAtMSAwdjIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckFycm93RG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckFycm93RG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNC4yNmE1LjUgNS41IDAgMCAxLS42Ni0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjUuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNGEyIDIgMCAwIDAtMi0ySDZabTEgMmExIDEgMCAwIDAgMCAyaDZhMSAxIDAgMSAwIDAtMkg3Wm0xMiAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NSAyLjM1YS41LjUgMCAwIDAgLjM1LjE1LjUuNSAwIDAgMCAuMzUtLjE1bDItMmEuNS41IDAgMCAwLS43LS43TDE1IDE1LjI5VjEyLjVhLjUuNSAwIDAgMC0xIDB2Mi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyQXJyb3dEb3duMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJBcnJvd0Rvd24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2Ny4yNUE2LjUgNi41IDAgMCAwIDEyLjgxIDIySDYuMjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDQgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk04LjUxIDVhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNS0zYS41LjUgMCAwIDAtMSAwdjQuOGwtMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wyLjUgMi41Yy4yLjIuNS4yLjcgMGwyLjUtMi41YS41LjUgMCAwIDAtLjctLjdMMTggMTkuMjlWMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyQXJyb3dEb3duMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyQXJyb3dEb3duMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC41IDVhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pNMjAgNC4xQTIuMjUgMi4yNSAwIDAgMCAxNy43NCAySDYuMUEyLjI1IDIuMjUgMCAwIDAgNCA0LjI2VjE5LjlBMi4yNSAyLjI1IDAgMCAwIDYuMjYgMjJoNi41NmE2LjUyIDYuNTIgMCAwIDEtMS4wOC0xLjVINi4xNWEuNzUuNzUgMCAwIDEtLjY1LS43NVY0LjE1YS43NS43NSAwIDAgMSAuNzUtLjY1aDExLjZjLjM3LjA2LjY1LjM3LjY1Ljc1djYuODNjLjUyLjA4IDEuMDMuMjIgMS41LjQyVjQuMVptMyAxMy40YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS01LTNhLjUuNSAwIDAgMC0xIDB2NC44bC0xLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0wxOCAxOS4yOVYxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXJEaXNtaXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZBNS41IDUuNSAwIDAgMSAxNiA5LjJWNGEyIDIgMCAwIDAtMi0ySDZabTEgMmg2YTEgMSAwIDEgMSAwIDJIN2ExIDEgMCAwIDEgMC0yWm0xMiAxMC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRGlzbWlzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckRpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMkg2Wm0xIDJhMSAxIDAgMCAwIDAgMmg2YTEgMSAwIDEgMCAwLTJIN1ptMTIgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckRpc21pc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckRpc21pc3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3Ljc1IDJjMS4xOSAwIDIuMTYuOTIgMi4yNCAyLjF2Ny40QTYuNSA2LjUgMCAwIDAgMTIuOCAyMkg2LjI2Yy0xLjIgMC0yLjE3LS45My0yLjI0LTIuMUw0IDE5Ljc0VjQuMjVjMC0xLjIuOTItMi4xNyAyLjEtMi4yNEw2LjI1IDJoMTEuNVpNOC41IDVhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNC0yLjM1YS41LjUgMCAxIDAtLjcxLjdsMS42NCAxLjY1LTEuNjQgMS42NWEuNS41IDAgMCAwIC43LjdsMS42NS0xLjY0IDEuNjUgMS42NGEuNS41IDAgMCAwIC43LS43bC0xLjY0LTEuNjUgMS42NC0xLjY0YS41LjUgMCAwIDAtLjctLjcxbC0xLjY1IDEuNjQtMS42NC0xLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFkZXJEaXNtaXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyRGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc1IDJjMS4xOSAwIDIuMTYuOTIgMi4yNCAyLjF2Ny40Yy0uNDctLjItLjk3LS4zNC0xLjUtLjQyVjQuMjVjMC0uMzgtLjI4LS43LS42NC0uNzRsLS4xLS4wMUg2LjI1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjE1LjVjMCAuMzcuMjguNjkuNjUuNzRoNS41OGMuMjkuNTYuNjUgMS4wNiAxLjA4IDEuNUg2LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMUw0IDE5Ljc1VjQuMjVjMC0xLjIuOTItMi4xNyAyLjEtMi4yNEw2LjI1IDJoMTEuNVpNOC41IDVhMS41IDEuNSAwIDAgMCAwIDNoN2ExLjUgMS41IDAgMCAwIDAtM2gtN1pNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNS0yLjM1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdsLTEuNjQtMS42NSAxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMS42NSAxLjY0LTEuNjUtMS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRm9vdGVyMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJGb290ZXIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMgMi43NUMzIDEuNzggMy43OCAxIDQuNzUgMWg2LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MTAuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTYuNUMzLjc4IDE1IDMgMTQuMjIgMyAxMy4yNVYyLjc1Wk02IDNhMSAxIDAgMCAwIDAgMmg0YTEgMSAwIDEgMCAwLTJINlptMCA4YTEgMSAwIDEgMCAwIDJoNGExIDEgMCAxIDAgMC0ySDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYWRlckZvb3RlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYWRlckZvb3RlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgM2ExIDEgMCAwIDAgMCAyaDRhMSAxIDAgMSAwIDAtMkg2Wm0wIDhhMSAxIDAgMSAwIDAgMmg0YTEgMSAwIDEgMCAwLTJINlpNNC43NSAxQzMuNzggMSAzIDEuNzggMyAyLjc1djEwLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYyLjc1QzEzIDEuNzggMTIuMjIgMSAxMS4yNSAxaC02LjVaTTQgMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWMuNDEgMCAuNzUuMzQuNzUuNzV2MTAuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC02LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRm9vdGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJGb290ZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0yIDFhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDEgMCAwLTJIN2ExIDEgMCAwIDAtMSAxWm0wIDEwYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAxIDAgMC0ySDdhMSAxIDAgMCAwLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRm9vdGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyRm9vdGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiA1YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxLTEtMVptMCAxMGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMSAxIDAgMkg3YTEgMSAwIDAgMS0xLTFaTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wm04IDFhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRm9vdGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRIZWFkZXJGb290ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDYuMjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDQgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk03LjAxIDYuNUM3IDcuMzMgNy42OCA4IDguNSA4aDdhMS41IDEuNSAwIDAgMCAwLTNoLTdDNy42OCA1IDcgNS42OCA3IDYuNVptMCAxMWMwIC44My42NyAxLjUgMS41IDEuNWg3YTEuNSAxLjUgMCAwIDAgMC0zaC03Yy0uODMgMC0xLjUuNjgtMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhZGVyRm9vdGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhZGVyRm9vdGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNyA2LjVDNyA1LjY4IDcuNjkgNSA4LjUgNWg3YTEuNSAxLjUgMCAwIDEgMCAzaC03QTEuNSAxLjUgMCAwIDEgNyA2LjVabTAgMTFjMC0uODIuNjgtMS41IDEuNS0xLjVoN2ExLjUgMS41IDAgMSAxIDAgM2gtN0ExLjUgMS41IDAgMCAxIDcgMTcuNVpNMjAgNC4xQTIuMjUgMi4yNSAwIDAgMCAxNy43NCAySDYuMUEyLjI1IDIuMjUgMCAwIDAgNCA0LjI2VjE5LjlBMi4yNSAyLjI1IDAgMCAwIDYuMjYgMjJIMTcuOWEyLjI1IDIuMjUgMCAwIDAgMi4xLTIuMjVWNC4xWk02LjI0IDMuNWgxMS42Yy4zNy4wNi42NS4zNy42NS43NXYxNS42YS43NS43NSAwIDAgMS0uNzUuNjVINi4xNWEuNzUuNzUgMCAwIDEtLjY1LS43NVY0LjE1YS43NS43NSAwIDAgMSAuNzUtLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41VjljLjcuMDMgMS40LjI1IDIgLjY2YTMuODUgMy44NSAwIDAgMSA0Ljg4IDUuOTFMOC40NSAxOGg2LjA1Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wm0tNC44NiA0LjMzYTIuODUgMi44NSAwIDEgMSA0LjAzIDQuMDRsLTMuODIgMy44MWEuNS41IDAgMCAxLS43IDBsLTMuODItMy44MWEyLjg1IDIuODUgMCAxIDEgNC4wMy00LjA0bC4xNC4xNC4xNC0uMTRabTQuMDMgNC4wNC0uMzYtLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYXJ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDguNDVsMS0xSDE0YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxdjUuMTdjLS4zMy0uMS0uNjYtLjE1LTEtLjE3VjRabTctLjh2My4zYzAgLjI4LjIyLjUuNS41aDMuM0wxMSAzLjJaTTUuNjUgMTguNjlhLjUuNSAwIDAgMCAuNyAwbDMuODItMy44MWEyLjg1IDIuODUgMCAxIDAtNC4wMy00LjA0bC0uMTQuMTQtLjEzLS4xNGEyLjg1IDIuODUgMCAxIDAtNC4wNCA0LjA0bDMuODIgMy44MVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhcnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYXJ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJIOS40OWwzLjE3LTMuMTdhNC40NyA0LjQ3IDAgMCAwLTUuNjUtNi44N2MtLjktLjYtMS45Ny0uODUtMy4wMS0uNzNWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaTTcuMDEgMjIuNzVhLjc1Ljc1IDAgMCAxLS41My0uMjJsLTQuNC00LjRhMy40NyAzLjQ3IDAgMSAxIDQuOS00LjkxbC4wMy4wNC4wNC0uMDRhMy40NyAzLjQ3IDAgMSAxIDQuOSA0LjlsLTQuNCA0LjQxYS43NS43NSAwIDAgMS0uNTQuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEhlYXJ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCAyMC41YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjV2Ny4zMWMtLjUtLjEtMS0uMTMtMS41LS4wOFY0YzAtMS4xLjktMiAyLTJoNi4xN2EuNi42IDAgMCAxIC4wOCAwbC4wNi4wMWMuMjIuMDIuNDMuMDYuNjMuMTRsLjE2LjA5Yy4wMiAwIC4wNC4wMi4wNS4wM2wuMDUuMDIuMDguMDVjLjA4LjA1LjE1LjExLjIyLjE4bC4wNC4wMy4wNS4wNEwxOS40IDguNEEyIDIgMCAwIDEgMjAgOS44M1YyMGEyIDIgMCAwIDEtMiAySDkuNDlsMS41LTEuNUgxOFptLS42Mi0xMkwxMy41IDQuNjJWOGMwIC4yOC4yMi41LjUuNWgzLjM4Wk02LjQ4IDIyLjUzYS43NS43NSAwIDAgMCAxLjA2IDBsNC40MS00LjRhMy40NyAzLjQ3IDAgMSAwLTQuOS00LjkxbC0uMDQuMDQtLjAzLS4wNGEzLjQ3IDMuNDcgMCAxIDAtNC45IDQuOWw0LjQgNC40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhcnRQdWxzZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnRQdWxzZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjQ1bDIuNDMtMi40M0EzLjg1IDMuODUgMCAwIDAgNiA5LjY2Yy0uNi0uNDEtMS4zLS42My0yLS42NlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVptLS44MyA4LjU4YTIuODUgMi44NSAwIDAgMC00LjAzIDBsLS4xNC4xNC0uMTQtLjE0QTIuODUgMi44NSAwIDAgMCAxIDEzaDEuN2wuNTUtLjgzYTEuNSAxLjUgMCAwIDEgMi41NC4wNmwuMzUuNTkuMTYtLjIyYTEuNSAxLjUgMCAwIDEgMi4yNi0uMTZsLjU2LjU2SDExYTIuODQgMi44NCAwIDAgMC0uODMtMi4xN1ptLTQuNTIgNy44NUwyLjk3IDE2aDEuNThsLjE2LjI3YTEuNSAxLjUgMCAwIDAgMi40OS4xM2wuMy0uNGgxLjUzbC0yLjY4IDIuNjhhLjUuNSAwIDAgMS0uNyAwWk00LjUgMTIuNWMuMTcgMCAuMzMuMS40Mi4yNGwxLjEyIDEuODdMNy4xIDEzLjJhLjUuNSAwIDAgMSAuNzUtLjA1bC44Ni44NUgxMGEuNS41IDAgMCAxIDAgMUg4LjVhLjUuNSAwIDAgMS0uMzUtLjE1bC0uNi0uNTlMNi40IDE1LjhhLjUuNSAwIDAgMS0uODMtLjA0bC0xLjEtMS44My0uNTUuODVhLjUuNSAwIDAgMS0uNDIuMjJIMmEuNS41IDAgMCAxIDAtMWgxLjIzbC44NS0xLjI4YS41LjUgMCAwIDEgLjQzLS4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhcnRQdWxzZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEhlYXJ0UHVsc2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1Yy4zNC4wMi42Ny4wNyAxIC4xN1Y0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDkuNDVsLTEgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wm0tOS42NCA0LjU0QTEuODUgMS44NSAwIDAgMCAyIDEzSDFhMi44NCAyLjg0IDAgMCAxIDQuODYtMi4xN2wuMTMuMTQuMTQtLjE0QTIuODUgMi44NSAwIDAgMSAxMSAxM2gtMWExLjg1IDEuODUgMCAwIDAtMy4xNS0xLjQ2bC0uNS41YS41LjUgMCAwIDEtLjcgMGwtLjUtLjVaTTIuOTYgMTZoMS40Mkw2IDE3LjYyIDcuNjIgMTZoMS40MmwtMi42OCAyLjY4YS41LjUgMCAwIDEtLjcxIDBMMi45NyAxNlptMS41NC00Yy4yIDAgLjM2LjEuNDUuMjhsMS4xNCAyLjI3TDcuMSAxMy4yYS41LjUgMCAwIDEgLjc2LS4wNWwuODUuODVIMTBhLjUuNSAwIDAgMSAwIDFIOC41YS41LjUgMCAwIDEtLjM1LS4xNWwtLjYtLjU5TDYuNCAxNS44YS41LjUgMCAwIDEtLjg0LS4wOGwtMS4wNi0yLjEtLjU1IDEuMWEuNS41IDAgMCAxLS40NS4yOEgyYS41LjUgMCAwIDEgMC0xaDEuMmwuODYtMS43MkEuNS41IDAgMCAxIDQuNSAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SGVhcnRQdWxzZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnRQdWxzZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5LjczbDIuNTgtMi41OC4wMi0uMDIuMzQtLjM0YTQuNiA0LjYgMCAwIDAtNS42My03LjJjLS45Mi0uNTgtMi0uOC0zLjA0LS42NlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlpNMi4wNiAxMy4yMmEzLjYgMy42IDAgMCAxIDQuOTctLjEyIDMuNiAzLjYgMCAwIDEgNS45OSAyLjloLTIuMDVsLS43My0uNzRhMS43NSAxLjc1IDAgMCAwLTIuNTUuMDhsLS41LjU1LS43My0xLjExYTEuNzUgMS43NSAwIDAgMC0zLjAzLjE5TDIuOTIgMTZoLTEuOWEzLjYgMy42IDAgMCAxIDEuMDQtMi43OFptMS4xOSA2LjI4IDMuMjUgMy4yNWEuNzUuNzUgMCAwIDAgMS4wNiAwbDMuMjYtMy4yNUg4LjY3bC0uMzYuNDFhMS43NSAxLjc1IDAgMCAxLTIuNzctLjE5bC0uMTQtLjIySDMuMjVabTIuMzctNC4xN2EuNzUuNzUgMCAwIDAtMS4zLjA4TDMuNTUgMTdIMS43NWEuNzUuNzUgMCAwIDAgMCAxLjVINGMuMjggMCAuNTQtLjE2LjY3LS40MWwuNDItLjg1IDEuMjkgMS45M2EuNzUuNzUgMCAwIDAgMS4xOC4wOGwxLjQ3LTEuNjYuNjkuNjljLjE0LjE0LjMzLjIyLjUzLjIyaDJhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjY5bC0xLjAzLTEuMDNhLjc1Ljc1IDAgMCAwLTEuMS4wM0w3LjEgMTcuNTNsLTEuNDctMi4yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRIZWFydFB1bHNlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SGVhcnRQdWxzZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNSA0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVIMTJWOGMwIDEuMS45IDIgMiAyaDQuNXY5Ljc1YzAgLjQxLS4zNC43NS0uNzUuNzVoLTYuNTJMOS43MyAyMmg4LjAyYzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjkuNjZjMC0uNDYtLjE4LS45LS41MS0xLjIzTDEzLjU3IDIuNUExLjc1IDEuNzUgMCAwIDAgMTIuMzQgMkg2LjI1QzUuMDEgMiA0IDMgNCA0LjI1djYuOTVjLjUtLjA3IDEtLjA1IDEuNS4wNXYtN1pNMTcuNDQgOC41SDE0YS41LjUgMCAwIDEtLjUtLjVWNC41NmwzLjk0IDMuOTRaTTMuMTIgMTQuMjhhMi4xIDIuMSAwIDAgMSAyLjk4IDBsLjQuNGMuMy4zLjc3LjMgMS4wNiAwbC4zNy0uMzdBMi4xIDIuMSAwIDAgMSAxMS41IDE2aDEuNWEzLjYgMy42IDAgMCAwLTUuOTgtMi45QTMuNiAzLjYgMCAwIDAgMS4wMSAxNmgxLjVhMi4xIDIuMSAwIDAgMSAuNjEtMS43MlptMi4yNSA1LjIySDMuMjVsMy4yNSAzLjI1YS43NS43NSAwIDAgMCAxLjA2IDBsMy4yNi0zLjI1SDguNjlsLTEuNjYgMS42Ni0xLjY2LTEuNjZabS4yNS00LjE3YS43NS43NSAwIDAgMC0xLjMuMDhMMy41NSAxN0gxLjc1YS43NS43NSAwIDAgMCAwIDEuNUg0Yy4yOCAwIC41NC0uMTYuNjctLjQxbC40Mi0uODUgMS4yOSAxLjkzYS43NS43NSAwIDAgMCAxLjE4LjA4bDEuNDYtMS42NS42OS43MmMuMTUuMTUuMzUuMjMuNTYuMjNsMi0uMDVhLjc1Ljc1IDAgMCAwLS4wNC0xLjVsLTEuNjcuMDQtMS4wMi0xLjA2YS43NS43NSAwIDAgMC0xLjEuMDJsLTEuMzUgMS41My0xLjQ3LTIuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SW1hZ2UxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEltYWdlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuODRjLjIyLS40NS4zNC0uOTYuMzQtMS41di00QTMuNSAzLjUgMCAwIDAgNy41IDZINFYyLjVDNCAxLjY3IDQuNjcgMSA1LjUgMUg5Wm0xIC4yNVY0LjVjMCAuMjguMjIuNS41LjVoMy4yNUwxMCAxLjI1Wk0xIDkuNUEyLjUgMi41IDAgMCAxIDMuNSA3aDRBMi41IDIuNSAwIDAgMSAxMCA5LjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDEuNCAxNC44OEMxLjE1IDE0LjQ4IDEgMTQgMSAxMy41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDIuMTIgMTUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SW1hZ2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRJbWFnZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjNoMVYzYTEgMSAwIDAgMSAxLTFoM3YyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTN2N2ExIDEgMCAwIDEtMSAxaC0xLjA0Yy0uMDUuMzUtLjE1LjY5LS4zIDFIMTJhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMi45MS0yLjkxQTEuNSAxLjUgMCAwIDAgOS41OSAxSDZabTYuOCA0aC0yLjNhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTIuOCA1Wk0xIDkuNUEyLjUgMi41IDAgMCAxIDMuNSA3aDRBMi41IDIuNSAwIDAgMSAxMCA5LjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDEuNCAxNC44OEMxLjE1IDE0LjQ4IDEgMTQgMSAxMy41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDIuMTIgMTUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SW1hZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEltYWdlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0zLjg0Yy4yMi0uNDUuMzQtLjk2LjM0LTEuNXYtNEEzLjUgMy41IDAgMCAwIDcuNSA5SDRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEgMTIuNUEyLjUgMi41IDAgMCAxIDMuNSAxMGg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBMMS40IDE3Ljg4QzEuMTUgMTcuNDggMSAxNyAxIDE2LjV2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41MSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBMMi4xMiAxOC42WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRJbWFnZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEltYWdlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NWgxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuMDRjLS4wNS4zNS0uMTUuNjktLjMgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xIDEyLjVBMi41IDIuNSAwIDAgMSAzLjUgMTBoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDEuNCAxNy44OEMxLjE1IDE3LjQ4IDEgMTcgMSAxNi41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDIuMTIgMTguNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SmF2YTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SmF2YTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxdjMuNUM4IDUuMzMgOC42NyA2IDkuNSA2SDEzdjMuMDJhMS41IDEuNSAwIDAgMC0uODcuNDkgMS41IDEuNSAwIDAgMC0yLjM4LjE2IDEuNSAxLjUgMCAwIDAtMi4zOC0uMTYgMS41IDEuNSAwIDAgMC0yLjUuMzlBMS41IDEuNSAwIDAgMCAzIDkuMDlWMi41QzMgMS42NyAzLjY3IDEgNC41IDFIOFptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMOSAxLjI1Wm0xLjIzIDEzLjRhLjUuNSAwIDAgMS0uOTYgMGwtMS4yNS00YS41LjUgMCAwIDEgLjk2LS4zbC43NyAyLjQ3Ljc3LTIuNDdhLjUuNSAwIDEgMSAuOTYuM2wtMS4yNSA0Wk02LjI1IDEwYS41LjUgMCAwIDEgLjQ4LjM1bDEuMjUgNGEuNS41IDAgMCAxLS45Ni4zbC0uMi0uNjVINS42OGwtLjIuNjVhLjUuNSAwIDAgMS0uOTYtLjNsMS4yNS00YS41LjUgMCAwIDEgLjQ4LS4zNVptLjI2IDMtLjI2LS44Mi0uMjYuODJoLjUyWk0zLjUgMTBjLjI4IDAgLjUuMjIuNS41djNhMS41IDEuNSAwIDAgMS0zIDBWMTNhLjUuNSAwIDEgMSAxIDB2LjVhLjUuNSAwIDAgMCAxIDB2LTNjMC0uMjguMjItLjUuNS0uNVptOS43NSAyLjE4LjI2LjgyaC0uNTJsLjI2LS44MlptLS43NyAyLjQ3LjItLjY1aDEuMTRsLjIuNjVhLjUuNSAwIDAgMCAuOTYtLjNsLTEuMjUtNGEuNS41IDAgMCAwLS45NiAwbC0xLjI1IDRhLjUuNSAwIDEgMCAuOTYuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SmF2YTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEphdmExNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnY2LjA5YTEuNSAxLjUgMCAwIDEgMSAwVjNhMSAxIDAgMCAxIDEtMWgzdjIuNUM4IDUuMzMgOC42NyA2IDkuNSA2SDEydjMuMzhsLjEzLjEzYy4yMi0uMjYuNTMtLjQzLjg3LS40OXYtMy42YzAtLjQtLjE2LS43OS0uNDQtMS4wN0w5LjY1IDEuNDRBMS41IDEuNSAwIDAgMCA4LjU5IDFINVptNi44IDRIOS41YS41LjUgMCAwIDEtLjUtLjVWMi4yTDExLjggNVptLTEuNTcgOS42NWEuNS41IDAgMCAxLS45NiAwbC0xLjI1LTRhLjUuNSAwIDAgMSAuOTYtLjNsLjc3IDIuNDcuNzctMi40N2EuNS41IDAgMSAxIC45Ni4zbC0xLjI1IDRaTTYuMjUgMTBhLjUuNSAwIDAgMSAuNDguMzVsMS4yNSA0YS41LjUgMCAwIDEtLjk2LjNsLS4yLS42NUg1LjY4bC0uMi42NWEuNS41IDAgMCAxLS45Ni0uM2wxLjI1LTRhLjUuNSAwIDAgMSAuNDgtLjM1Wm0uMjYgMy0uMjYtLjgyLS4yNi44MmguNTJaTTMuNSAxMGMuMjggMCAuNS4yMi41LjV2M2ExLjUgMS41IDAgMCAxLTMgMFYxM2EuNS41IDAgMSAxIDEgMHYuNWEuNS41IDAgMCAwIDEgMHYtM2MwLS4yOC4yMi0uNS41LS41Wm05Ljc1IDIuMTguMjYuODJoLS41MmwuMjYtLjgyWm0tLjc3IDIuNDcuMi0uNjVoMS4xNGwuMi42NWEuNS41IDAgMCAwIC45Ni0uM2wtMS4yNS00YS41LjUgMCAwIDAtLjk2IDBsLTEuMjUgNGEuNS41IDAgMSAwIC45Ni4zWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKYXZhMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRKYXZhMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnYzLjAyYy0uNS4wOC0uOTIuNDEtMS4xMy44OGExLjUgMS41IDAgMCAwLTIuNzkuMWwtLjMzLjk2LS4zMy0uOTZhMS41IDEuNSAwIDAgMC0yLjgtLjEgMS41IDEuNSAwIDAgMC0yLjc5LjFMNSAxNC40VjEyLjVjMC0uNjUtLjQyLTEuMi0xLTEuNDFWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTExLjc1IDE4YS41LjUgMCAwIDAgLjQ3LS4zM2wxLjc1LTVhLjUuNSAwIDEgMC0uOTQtLjMzbC0xLjI4IDMuNjUtMS4yOC0zLjY1YS41LjUgMCAxIDAtLjk0LjMzbDEuNzUgNWMuMDcuMi4yNi4zMy40Ny4zM1ptNC45Ny01LjY2YS41LjUgMCAwIDAtLjk0IDBsLTEuNzUgNWEuNS41IDAgMSAwIC45NC4zM2wuMjMtLjY3aDIuMWwuMjMuNjdhLjUuNSAwIDEgMCAuOTQtLjM0bC0xLjc1LTVabS4yMyAzLjY2aC0xLjRsLjctMS45OS43IDEuOTlaTTMuNSAxMmMuMjggMCAuNS4yMi41LjV2NGExLjUgMS41IDAgMCAxLTMgMFYxNmEuNS41IDAgMSAxIDEgMHYuNWEuNS41IDAgMCAwIDEgMHYtNGMwLS4yOC4yMi0uNS41LS41Wm0zLjc1IDBjLjIxIDAgLjQuMTMuNDcuMzRsMS43NSA1YS41LjUgMCAxIDEtLjk0LjMzTDguMyAxN0g2LjJsLS4yMy42N2EuNS41IDAgMSAxLS45NC0uMzNsMS43NS01YS41LjUgMCAwIDEgLjQ3LS4zNFptMCAyLjAxTDYuNTUgMTZoMS40bC0uNy0xLjk5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKYXZhMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SmF2YTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjcuMDljLjU4LjIgMSAuNzYgMSAxLjQxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXYzLjY3YTEuNSAxLjUgMCAwIDEgMS0uNjV2LTMuNmMwLS40LS4xNi0uNzktLjQ0LTEuMDdsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS0zLjA1IDExYS41LjUgMCAwIDAgLjQ3LS4zM2wxLjc1LTVhLjUuNSAwIDEgMC0uOTQtLjMzbC0xLjI4IDMuNjUtMS4yOC0zLjY1YS41LjUgMCAxIDAtLjk0LjMzbDEuNzUgNWMuMDcuMi4yNi4zMy40Ny4zM1ptNC45Ny01LjY2YS41LjUgMCAwIDAtLjk0IDBsLTEuNzUgNWEuNS41IDAgMSAwIC45NC4zM2wuMjMtLjY3aDIuMWwuMjMuNjdhLjUuNSAwIDEgMCAuOTQtLjM0bC0xLjc1LTVabS4yMyAzLjY2aC0xLjRsLjctMS45OS43IDEuOTlaTTMuNSAxMmMuMjggMCAuNS4yMi41LjV2NGExLjUgMS41IDAgMCAxLTMgMFYxNmEuNS41IDAgMSAxIDEgMHYuNWEuNS41IDAgMCAwIDEgMHYtNGMwLS4yOC4yMi0uNS41LS41Wm0zLjc1IDBjLjIxIDAgLjQuMTMuNDcuMzRsMS43NSA1YS41LjUgMCAxIDEtLjk0LjMzTDguMyAxN0g2LjJsLS4yMy42N2EuNS41IDAgMSAxLS45NC0uMzNsMS43NS01YS41LjUgMCAwIDEgLjQ3LS4zNFptMCAyLjAxTDYuNTUgMTZoMS40bC0uNy0xLjk5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKYXZhc2NyaXB0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRKYXZhc2NyaXB0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY3LjU5Yy4zMi4xLjU5LjMzLjc3LjZBMi41IDIuNSAwIDAgMSA5IDEzLjVjMCAuNDQtLjIuODQtLjUgMS4xMi4zMi40Mi41Ljk1LjUgMS41di4zOGMwIC41Ni0uMTkgMS4wOC0uNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDEyYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDEtMSAwVjE2YS41LjUgMCAwIDAtMSAwdi41YTEuNSAxLjUgMCAwIDAgMyAwdi00YS41LjUgMCAwIDAtLjUtLjVaTTUgMTMuNWExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLTEgMHYuMzhjMCAuMi4xLjM2LjI4LjQ1bC45LjQ1Yy41LjI1LjgyLjc3LjgyIDEuMzR2LjM4YTEuNSAxLjUgMCAwIDEtMyAwIC41LjUgMCAwIDEgMSAwIC41LjUgMCAwIDAgMSAwdi0uMzhhLjUuNSAwIDAgMC0uMjgtLjQ1bC0uOS0uNDVBMS41IDEuNSAwIDAgMSA1IDEzLjg4di0uMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudEphdmFzY3JpcHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRKYXZhc2NyaXB0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDguNWMuMjItLjMuMzgtLjYzLjQ1LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2Ny41bC0uMjMuMmExLjUgMS41IDAgMCAwLS43Ny0uNjFWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabS04IDVhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMS0xIDBWMTZhLjUuNSAwIDAgMC0xIDB2LjVhMS41IDEuNSAwIDAgMCAzIDB2LTRhLjUuNSAwIDAgMC0uNS0uNVpNNSAxMy41YTEuNSAxLjUgMCAwIDEgMyAwIC41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwdi4zOGMwIC4yLjEuMzYuMjguNDVsLjkuNDVjLjUuMjUuODIuNzcuODIgMS4zNHYuMzhhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4zOGEuNS41IDAgMCAwLS4yOC0uNDVsLS45LS40NUExLjUgMS41IDAgMCAxIDUgMTMuODh2LS4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SmF2YXNjcmlwdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SmF2YXNjcmlwdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgOFYySDZhMiAyIDAgMCAwLTIgMnYxMC4wMmExLjc2IDEuNzYgMCAwIDEgMS44LjkxYy41NC0uNTcgMS4zLS45MyAyLjE1LS45M2guMUEyLjk1IDIuOTUgMCAwIDEgMTEgMTYuOTVWMTdjMCAuNDUtLjE3Ljg2LS40NSAxLjE3LjI5LjQ0LjQ1Ljk2LjQ1IDEuNXYuMzhjMCAuNzUtLjI4IDEuNDMtLjc0IDEuOTVIMThhMiAyIDAgMCAwIDItMlYxMGgtNmEyIDIgMCAwIDEtMi0yWm0xLjUgMFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVabS05LjI1IDdjLjQxIDAgLjc1LjM0Ljc1Ljc1VjIwYTIgMiAwIDEgMS00IDB2LS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMjBhLjUuNSAwIDAgMCAxIDB2LTQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy43IDBDNi44NyAxNSA2IDE1Ljg3IDYgMTYuOTV2LjIzYzAgLjYyLjMyIDEuMTkuODUgMS41bDEuNTMuOTJjLjA3LjA1LjEyLjEzLjEyLjIydi4yM2MwIC4yNS0uMi40NS0uNDUuNDVoLS4xYS40NS40NSAwIDAgMS0uNDUtLjQ1VjIwQS43NS43NSAwIDAgMCA2IDIwdi4wNUM2IDIxLjEzIDYuODcgMjIgNy45NSAyMmguMWMxLjA4IDAgMS45NS0uODcgMS45NS0xLjk1di0uMjNjMC0uNjItLjMyLTEuMTktLjg1LTEuNWwtMS41My0uOTJhLjI1LjI1IDAgMCAxLS4xMi0uMjJ2LS4yM2MwLS4yNS4yLS40NS40NS0uNDVoLjFjLjI1IDAgLjQ1LjIuNDUuNDVWMTdhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uMDVDMTAgMTUuODcgOS4xMyAxNSA4LjA1IDE1aC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SmF2YXNjcmlwdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudEphdmFzY3JpcHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCAyMC41aC03LjAzYTIuOTQgMi45NCAwIDAgMS0uNyAxLjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnYxMC4wMmExLjc2IDEuNzYgMCAwIDEgMS41LjVWNGMwLS4yNy4yMi0uNS41LS41aDZWOGMwIDEuMS45IDIgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVabS0uNjItMTJIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYybDMuODggMy44OFpNNC4yNSAxNWMuNDEgMCAuNzUuMzQuNzUuNzVWMjBhMiAyIDAgMSAxLTQgMHYtLjI1YS43NS43NSAwIDAgMSAxLjUgMFYyMGEuNS41IDAgMCAwIDEgMHYtNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0zLjcgMEM2Ljg3IDE1IDYgMTUuODcgNiAxNi45NXYuMjNjMCAuNjIuMzIgMS4xOS44NSAxLjVsMS41My45MmMuMDcuMDUuMTIuMTMuMTIuMjJ2LjIzYzAgLjI1LS4yLjQ1LS40NS40NWgtLjFhLjQ1LjQ1IDAgMCAxLS40NS0uNDVWMjBBLjc1Ljc1IDAgMCAwIDYgMjB2LjA1QzYgMjEuMTMgNi44NyAyMiA3Ljk1IDIyaC4xYzEuMDggMCAxLjk1LS44NyAxLjk1LTEuOTV2LS4yM2MwLS42Mi0uMzItMS4xOS0uODUtMS41bC0xLjUzLS45MmEuMjUuMjUgMCAwIDEtLjEyLS4yMnYtLjIzYzAtLjI1LjItLjQ1LjQ1LS40NWguMWMuMjUgMCAuNDUuMi40NS40NVYxN2EuNzUuNzUgMCAwIDAgMS41IDB2LS4wNUMxMCAxNS44NyA5LjEzIDE1IDguMDUgMTVoLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRKczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50SnMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUgNWgzLjI1TDEwIDEuMjVWNC41YzAgLjI4LjIyLjUuNS41Wm0wIDFBMS41IDEuNSAwIDAgMSA5IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41djYuNmExLjUgMS41IDAgMCAxIC43Ni41OGwuMDQtLjA0LjEyLS4xMWMuNDMtLjM0Ljk2LS41MyAxLjUtLjUzaC4xNUEyLjQ0IDIuNDQgMCAwIDEgOSAxMS40M2MwIC4zNC0uMS42Ny0uMzIuOTRsLjEuMThBMi40NCAyLjQ0IDAgMCAxIDguNTIgMTVoMy45N2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWNmgtMy41Wm0tMy45MyA5aC0uMTRBMS40MyAxLjQzIDAgMCAxIDUgMTMuNTdhLjUzLjUzIDAgMCAxIC41LS41My40Ni40NiAwIDAgMSAuMzUuMTIuNDcuNDcgMCAwIDEgLjE1LjM0LjQ1LjQ1IDAgMCAwIC40My41aC4xNGEuNDMuNDMgMCAwIDAgLjItLjhsLS45OC0uNWExLjQyIDEuNDIgMCAwIDEgLjY0LTIuN2guMTRBMS40MyAxLjQzIDAgMCAxIDggMTEuNDNhLjUzLjUzIDAgMCAxLS41LjUzLjQ2LjQ2IDAgMCAxLS4zNS0uMTIuNDcuNDcgMCAwIDEtLjE1LS4zNHYtLjA3YS40My40MyAwIDAgMC0uNDMtLjQzaC0uMTRhLjQzLjQzIDAgMCAwLS4yLjhsLjk4LjVhMS40MyAxLjQzIDAgMCAxLS42NCAyLjdabS01LjEzLS40NEExLjUgMS41IDAgMCAwIDQgMTMuNXYtM2EuNS41IDAgMSAwLTEgMHYzYS41LjUgMCAxIDEtMSAwVjEzYS41LjUgMCAxIDAtMSAwdi41YzAgLjQuMTYuNzguNDQgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50SnMxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRKczE2UmVndWxhcicsIFwiMTZcIiwgW1wibTkuNjUgMS40NCAyLjkxIDIuOTFjLjI4LjI4LjQ0LjY2LjQ0IDEuMDZWMTNhMiAyIDAgMCAxLTIgMkg4LjU0Yy4yMi0uMy4zNi0uNjQuNDItMUgxMWExIDEgMCAwIDAgMS0xVjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVWMkg1YTEgMSAwIDAgMC0xIDF2Ni4wOWExLjQzIDEuNDMgMCAwIDAtMSAwVjNhMiAyIDAgMCAxIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRabS0uNSAzLjQxYy4wOS4xLjIyLjE1LjM1LjE1aDIuMjlMOSAyLjIxVjQuNWMwIC4xMy4wNS4yNi4xNS4zNVpNMi41IDE1QTEuNSAxLjUgMCAwIDEgMSAxMy41VjEzYS41LjUgMCAwIDEgMSAwdi41YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDEgMSAwdjNBMS41IDEuNSAwIDAgMSAyLjUgMTVabTQuMDcgMGgtLjE0QTEuNDMgMS40MyAwIDAgMSA1IDEzLjU3YS41My41MyAwIDAgMSAuNS0uNTMuNDcuNDcgMCAwIDEgLjUuNDYuNDUuNDUgMCAwIDAgLjQzLjVoLjE0YS40My40MyAwIDAgMCAuMi0uOGwtLjk4LS41YTEuNDMgMS40MyAwIDAgMSAuNjQtMi43aC4xNEExLjQzIDEuNDMgMCAwIDEgOCAxMS40M2EuNTMuNTMgMCAwIDEtLjUuNTMuNDcuNDcgMCAwIDEtLjUtLjQ2di0uMDdhLjQzLjQzIDAgMCAwLS40My0uNDNoLS4xNGEuNDMuNDMgMCAwIDAtLjIuOGwuOTguNWExLjQzIDEuNDMgMCAwIDEtLjY0IDIuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50S2V5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRLZXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djFoLS4wM2EzLjkxIDMuOTEgMCAwIDAtMy42NCAyLjM4IDMuNzIgMy43MiAwIDAgMC0uMyAxLjk4bC0yLjU5IDIuNThDOS4xNiAxNi4yMiA5IDE2LjYgOSAxN3YxSDUuNUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTNDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVptLS44NSAxNi42Yy4xLjEuMjEuMTUuMzUuMTVoMmMuMTEgMCAuMi0uMDMuMjctLjA3LjA3LS4wNC4xMi0uMS4xNS0uMTdhLjg2Ljg2IDAgMCAwIC4wNi0uMjRsLjAyLS4yNVYxOGwuNTYtLjAyYS40Ny40NyAwIDAgMCAuMy0uMTJjLjA3LS4wNy4xMS0uMTcuMTItLjNMMTQgMTdoLjVjLjEgMCAuMi0uMDIuMjctLjA3YS41LjUgMCAwIDAgLjE1LS4xNy42NS42NSAwIDAgMCAuMDctLjI0IDIuMzQgMi4zNCAwIDAgMCAuMDEtLjV2LS4yYy4xNy4wNy4zNS4xMS41Mi4xNGEyLjg3IDIuODcgMCAwIDAgMi42Mi0uODZBMy4xMSAzLjExIDAgMCAwIDE5IDEzYTIuOTQgMi45NCAwIDAgMC0uODgtMi4xMyAzIDMgMCAwIDAtNS4wMyAyLjg0bC0yLjk0IDIuOTRjLS4xLjEtLjE1LjIxLS4xNS4zNXYxLjVjMCAuMTQuMDUuMjUuMTUuMzVabTcuMTMtNy4xM2MuMTUuMTQuMjIuMzIuMjIuNTMgMCAuMi0uMDcuMzktLjIyLjUzYS43Mi43MiAwIDAgMS0uNTMuMjIuNzIuNzIgMCAwIDEtLjUzLS4yMi43Mi43MiAwIDAgMS0uMjItLjUzYzAtLjIuMDctLjM5LjIyLS41M2EuNzIuNzIgMCAwIDEgLjUzLS4yMmMuMiAwIC4zOS4wNy41My4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50S2V5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50S2V5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgzdi0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2MS4xM2MuMzItLjA4LjY0LS4xMi45Ny0uMTNIMTZWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS00LjY1IDExLjg1Yy4xLjEuMjEuMTUuMzUuMTVoMmMuMTEgMCAuMi0uMDMuMjctLjA3LjA3LS4wNC4xMi0uMS4xNS0uMTdhLjg2Ljg2IDAgMCAwIC4wNi0uMjRsLjAyLS4yNVYxOGwuNTYtLjAyYS40Ny40NyAwIDAgMCAuMy0uMTJjLjA3LS4wNy4xMS0uMTcuMTItLjNMMTQgMTdjLjUgMCAuNjMuMDIuNzctLjA3YS41LjUgMCAwIDAgLjE1LS4xNy42NS42NSAwIDAgMCAuMDctLjI0Yy4wMy0uMjMuMDEtLjQ2LjAxLS43LjE3LjA3LjM1LjExLjUyLjE0YTIuODcgMi44NyAwIDAgMCAyLjYyLS44NkEzLjExIDMuMTEgMCAwIDAgMTkgMTNhMi45NCAyLjk0IDAgMCAwLS44OC0yLjEzIDMgMyAwIDAgMC01LjAzIDIuODRsLTIuOTQgMi45NGMtLjEuMS0uMTUuMjEtLjE1LjM1djEuNWMwIC4xNC4wNS4yNS4xNS4zNVptNy4zNS02LjZjMCAuNDEtLjM0Ljc1LS43NS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NWMwLS40MS4zNC0uNzUuNzUtLjc1cy43NS4zNC43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwaC00LjVBMS41IDEuNSAwIDAgMSAxMiA4LjVWNEgzLjVDMi42NyA0IDIgNC42NyAyIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEzYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMFptLS4yNS0xSDEzLjVhLjUuNSAwIDAgMS0uNS0uNVY0LjI1TDE3Ljc1IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE4IDE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE0Wm0tMiAxYTEgMSAwIDAgMCAxLTF2LTRoLTMuNUExLjUgMS41IDAgMCAxIDEyIDguNVY1SDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMTJabS0zLTkuOHYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDEzIDUuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDEyaC02YTIgMiAwIDAgMS0yLTJWNEg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02Wm0tLjUtMS41SDE2YS41LjUgMCAwIDEtLjUtLjVWNC41bDYgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNCA1LjVhLjUuNSAwIDAgMC0uNS41djEyYzAgLjI4LjIzLjUuNS41aDE2YS41LjUgMCAwIDAgLjUtLjV2LTZIMTZhMiAyIDAgMCAxLTItMlY1LjVINFptMTUuMzggNUwxNS41IDYuNjJWMTBjMCAuMjguMjIuNS41LjVoMy4zOFptLTMuOC01LjkxIDUuODMgNS44Mi4wNy4wOWMuMDcuMDcuMTMuMTQuMTguMjJsLjA3LjEzLjEyLjIxYy4wOC4yLjEyLjQxLjE0LjYzbC4wMS4xNFYxOGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoMTAuMTdhMiAyIDAgMCAxIDEuNDIuNTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZURhdGEyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZURhdGEyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNSA0QTIuNSAyLjUgMCAwIDAgMiA2LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDRoLTExWk05IDdhMSAxIDAgMCAxIDIgMHY2YTEgMSAwIDEgMS0yIDBWN1ptNSAxYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAxIDEtMiAwVjlhMSAxIDAgMCAxIDEtMVptLTkgM2ExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlRGF0YTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZURhdGEyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgNEEyLjUgMi41IDAgMCAwIDIgNi41djdBMi41IDIuNSAwIDAgMCA0LjUgMTZoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA0aC0xMVpNMyA2LjVDMyA1LjY3IDMuNjcgNSA0LjUgNWgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAzIDEzLjV2LTdaTTYgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41djFhMS41IDEuNSAwIDAgMCAzIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0tLjUgMS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFabTMtNGExLjUgMS41IDAgMSAxIDMgMHY1YTEuNSAxLjUgMCAwIDEtMyAwdi01Wk0xMCA3YS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwdi01QS41LjUgMCAwIDAgMTAgN1ptNCAxYy0uODMgMC0xLjUuNjctMS41IDEuNXYzYTEuNSAxLjUgMCAwIDAgMyAwdi0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNVptLS41IDEuNWEuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtMSAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVEYXRhMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVEYXRhMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDYuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgNGgxNC41QTIuNzUgMi43NSAwIDAgMSAyMiA2Ljc1djEwLjVBMi43NSAyLjc1IDAgMCAxIDE5LjI1IDIwSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTcuMjVWNi43NVpNMTIgN2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMSAwIDQgMFY5YTIgMiAwIDAgMC0yLTJabS01IDVhMiAyIDAgMCAwLTIgMnYxYTIgMiAwIDEgMCA0IDB2LTFhMiAyIDAgMCAwLTItMlptOCAwdjNhMiAyIDAgMSAwIDQgMHYtM2EyIDIgMCAxIDAtNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVEYXRhMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlRGF0YTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwIDlhMiAyIDAgMSAxIDQgMHY2YTIgMiAwIDEgMS00IDBWOVptMi0uNWEuNS41IDAgMCAwLS41LjV2NmEuNS41IDAgMCAwIDEgMFY5YS41LjUgMCAwIDAtLjUtLjVaTTUgMTRhMiAyIDAgMSAxIDQgMHYxYTIgMiAwIDEgMS00IDB2LTFabTIuNSAwYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTkuNS00YTIgMiAwIDAgMC0yIDJ2M2EyIDIgMCAxIDAgNCAwdi0zYTIgMiAwIDAgMC0yLTJabS41IDJ2M2EuNS41IDAgMCAxLTEgMHYtM2EuNS41IDAgMCAxIDEgMFpNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTQuNUEyLjc1IDIuNzUgMCAwIDEgMjIgNi43NXYxMC41QTIuNzUgMi43NSAwIDAgMSAxOS4yNSAyMEg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDE3LjI1VjYuNzVaTTQuNzUgNS41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxMC41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDE0LjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjYuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDQuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVTcGxpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgOC41VjRoLTJ2MTJoNmEyIDIgMCAwIDAgMi0ydi00aC00LjVBMS41IDEuNSAwIDAgMSAxMiA4LjVaTTkgMTZINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg1djEyWm00LTcuNVY0LjA2Yy4yNC4wNy40Ny4yLjY1LjM4bDMuOTEgMy45MWMuMTguMTguMzEuNC4zOC42NUgxMy41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlU3BsaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNiAxNmEyIDIgMCAwIDAgMi0yVjkuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMi41OSA0SDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJabTEtMmExIDEgMCAwIDEtMSAxaC02VjVoMnYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTd2NFpNOSA1djEwSDRhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoNVptNCAzLjVWNS4yTDE2LjggOWgtMy4zYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVTcGxpdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuNSA0SDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDYuNVY0Wk0xMiAyMGg4YTIgMiAwIDAgMCAyLTJ2LTZoLTZhMiAyIDAgMCAxLTItMlY0aC0ydjE2Wm00LTkuNWg1LjVsLTYtNlYxMGMwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGFuZHNjYXBlU3BsaXQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVTcGxpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA2YzAtLjI4LjIzLS41LjUtLjVoNi41djEzSDRhLjUuNSAwIDAgMS0uNS0uNVY2Wk0xMiAxOC41di0xM2gyVjEwYzAgMS4xLjkgMiAyIDJoNC41djZhLjUuNSAwIDAgMS0uNS41aC04Wm0zLjUtMTEuODggMy44OCAzLjg4SDE2YS41LjUgMCAwIDEtLjUtLjVWNi42MlptNS45MSAzLjhMMTUuNiA0LjU4QTIgMiAwIDAgMCAxNC4xNyA0SDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTYuMTdhLjYuNiAwIDAgMCAwLS4wOGwtLjAxLS4wNmExLjk4IDEuOTggMCAwIDAtLjE0LS42M2wtLjA5LS4xNmE0LjI2IDQuMjYgMCAwIDEtLjEtLjE4IDIuMDcgMi4wNyAwIDAgMC0uMi0uMjZsLS4wNS0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExhbmRzY2FwZVNwbGl0SGludDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGFuZHNjYXBlU3BsaXRIaW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDZhMSAxIDAgMCAxIDEtMWguNWEuNS41IDAgMCAwIDAtMUg0YTIgMiAwIDAgMC0yIDJ2LjVhLjUuNSAwIDAgMCAxIDBWNlptMSA5YTEgMSAwIDAgMS0xLTF2LS41YS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFINFpNMi41IDhjLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNjMC0uMjguMjItLjUuNS0uNVptNC00YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNi03VjRoLTEuNWEuNS41IDAgMCAwLS41LjV2MTFjMCAuMjguMjIuNS41LjVIMTZhMiAyIDAgMCAwIDItMnYtNGgtNC41QTEuNSAxLjUgMCAwIDEgMTIgOC41Wm0xIDBWNC4wNmMuMjQuMDcuNDcuMi42NS4zOGwzLjkxIDMuOTFjLjE4LjE4LjMxLjQuMzguNjVIMTMuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVTcGxpdEhpbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVTcGxpdEhpbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDZhMSAxIDAgMCAxIDEtMWguNWEuNS41IDAgMCAwIDAtMUg0YTIgMiAwIDAgMC0yIDJ2LjVhLjUuNSAwIDAgMCAxIDBWNlptNi41LTJhLjUuNSAwIDAgMC0uNS41djExYzAgLjI4LjIyLjUuNS41SDE2YTIgMiAwIDAgMCAyLTJWOS40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEyLjU5IDRIOS41Wm0uNSAxMVY1aDJ2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE3djRhMSAxIDAgMCAxLTEgMWgtNlptMy41LTZhLjUuNSAwIDAgMS0uNS0uNVY1LjJMMTYuOCA5aC0zLjNaTTMgMTRhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAxIDAgMUg0YTIgMiAwIDAgMS0yLTJ2LS41YS41LjUgMCAwIDEgMSAwdi41Wm0wLTUuNWEuNS41IDAgMCAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zWm0zLTRjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaTTYuNSAxNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVTcGxpdEhpbnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExhbmRzY2FwZVNwbGl0SGludDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNzUgNEgxNHY2YzAgMS4xLjkgMiAyIDJoNnY2YTIgMiAwIDAgMS0yIDJoLTcuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm04Ljc0IDYuNDMuMDcuMDdIMTZhLjUuNSAwIDAgMS0uNS0uNVY0LjQ0bC4wNy4wNyA1LjkyIDUuOTJaTTMuNSAxMC4yNWEuNzUuNzUgMCAwIDAtMS41IDB2My41YS43NS43NSAwIDAgMCAxLjUgMHYtMy41Wk03IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyYS43NS43NSAwIDAgMSAwIDEuNWgtMkEuNzUuNzUgMCAwIDEgNyA0Ljc1Wm0uNzUgMTMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDJhLjc1Ljc1IDAgMCAwIDAtMS41aC0yWk0yIDZjMC0xLjEuOS0yIDItMmguNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDRhLjUuNSAwIDAgMC0uNS41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjZabTIgMTRhMiAyIDAgMCAxLTItMnYtMS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMThjMCAuMjguMjIuNS41LjVoLjc1YS43NS43NSAwIDAgMSAwIDEuNUg0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMYW5kc2NhcGVTcGxpdEhpbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMYW5kc2NhcGVTcGxpdEhpbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03IDQuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLS41QS43NS43NSAwIDAgMSA3IDQuNzVaTTIuNzUgOS41Yy40MSAwIC43NS4zNC43NS43NXYzLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0zLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNSA5YS43NS43NSAwIDAgMCAwIDEuNWguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS41Wk0yIDZjMC0xLjEuOS0yIDItMmguNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDRhLjUuNSAwIDAgMC0uNS41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjZabTIgMTRhMiAyIDAgMCAxLTItMnYtMS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMThjMCAuMjguMjIuNS41LjVoLjc1YS43NS43NSAwIDAgMSAwIDEuNUg0Wm02LjUtMTQuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMi41OWMuNDYgMCAuOS4xOCAxLjIzLjUxbDUuOTIgNS45MmMuMzMuMzMuNTEuNzcuNTEgMS4yM1YxOGEyIDIgMCAwIDEtMiAyaC04LjI1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNS4yNVptMS41LjI1djEzaDhhLjUuNSAwIDAgMCAuNS0uNXYtNkgxNmEyIDIgMCAwIDEtMi0yVjUuNWgtMlptMy41IDEuMDZWMTBjMCAuMjguMjIuNS41LjVoMy40NEwxNS41IDYuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExpZ2h0bmluZzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGlnaHRuaW5nMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdjLS4yIDAtLjQtLjA0LS41OC0uMTJsNC4xMi0zLjg1YTEuNzUgMS43NSAwIDAgMC0uOS0zbC4zNC0xLjA2QTEuNSAxLjUgMCAwIDAgNy4wNiA1SDRWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVpNMS41IDEyaDEuNzVsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1QS43NS43NSAwIDAgMCA3Ljg1IDloLTEuMWwuNzgtMi4zNEEuNS41IDAgMCAwIDcuMDYgNkgzLjU5YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaWdodG5pbmcxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaWdodG5pbmcxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYyaDFWM2ExIDEgMCAwIDEgMS0xaDN2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdjdhMSAxIDAgMCAxLTEgMUg1Ljg3bC0uODIuNzZBMiAyIDAgMCAwIDYgMTVoNmEyIDIgMCAwIDAgMi0yVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkxLTIuOTFBMS41IDEuNSAwIDAgMCA5LjU5IDFINlptNi44IDRoLTIuM2EuNS41IDAgMCAxLS41LS41VjIuMkwxMi44IDVaTTEuNSAxMmgxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NUEuNzUuNzUgMCAwIDAgNy44NSA5aC0xLjFsLjc4LTIuMzRBLjUuNSAwIDAgMCA3LjA2IDZIMy41OWEuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlnaHRuaW5nMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaWdodG5pbmcyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVINi44NmwzLjE4LTIuOTdhMS43NSAxLjc1IDAgMCAwLS45LTNsLjM0LTEuMDZBMS41IDEuNSAwIDAgMCA4LjA2IDlINC41OWMtLjIxIDAtLjQuMDQtLjU5LjEyVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0yLjUgMTZoMS43NWwtLjU5IDIuMzZjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLTEuMWwuNzgtMi4zNGEuNS41IDAgMCAwLS40Ny0uNjZINC41OWEuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlnaHRuaW5nMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGlnaHRuaW5nMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NS4xMmMuMTgtLjA4LjM4LS4xMi41OS0uMTJINVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDcuOTNsLTEuMDcgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0yLjUgMTZoMS43NWwtLjU5IDIuMzZjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLTEuMWwuNzgtMi4zNGEuNS41IDAgMCAwLS40Ny0uNjZINC41OWEuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlnaHRuaW5nMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaWdodG5pbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMkg2Ljk3bDMuNi00LjFhMS43NSAxLjc1IDAgMCAwLTEuMTItMi44OWwxLTEuNzdBMS41IDEuNSAwIDAgMCA5LjE1IDExSDQuMzJjLS4xMSAwLS4yMi4wMS0uMzIuMDNWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaTTQuMzIgMTJoNC44M2EuNS41IDAgMCAxIC40My43NUw3Ljc1IDE2aDEuNWMuNjQgMCAuOTkuNzYuNTYgMS4yNEw1IDIyLjc1Yy0uNS41OC0xLjQ1LjA5LTEuMjYtLjY2TDQuNSAxOWgtM2EuNS41IDAgMCAxLS40NS0uNzFsMi44Mi02YS41LjUgMCAwIDEgLjQ1LS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlnaHRuaW5nMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGlnaHRuaW5nMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2Ny4wM2MuMS0uMDIuMi0uMDMuMzItLjAzSDUuNVY0YzAtLjI4LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwYS41LjUgMCAwIDEtLjUuNUg4LjI5TDYuOTcgMjJIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNkEyIDIgMCAwIDAgMTIuMTcgMkg2Wm0xMS4zOCA2LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYybDMuODggMy44OFpNNC4zMiAxMmg0LjgzYS41LjUgMCAwIDEgLjQzLjc1TDcuNzUgMTZoMS41Yy42NCAwIC45OS43Ni41NiAxLjI0TDUgMjIuNzVjLS41LjU4LTEuNDUuMDktMS4yNi0uNjZMNC41IDE5aC0zYS41LjUgMCAwIDEtLjQ1LS43MWwyLjgyLTZhLjUuNSAwIDAgMSAuNDUtLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaWdodG5pbmcyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpZ2h0bmluZzI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMTBWMkg2LjRBMi40IDIuNCAwIDAgMCA0IDQuNHY4Ljg0Yy4yNC0uMTUuNTItLjI0LjgyLS4yNGg2LjMyYTEuNSAxLjUgMCAwIDEgMS4zMSAyLjI0bC0xIDEuNzdhMS43NSAxLjc1IDAgMCAxIDEuMTQgMi44OEw3LjMzIDI2SDIxLjZhMi40IDIuNCAwIDAgMCAyLjQtMi40VjEyaC04YTIgMiAwIDAgMS0yLTJabTEuNSAwVjIuNDhjLjEuMDYuMTguMTQuMjYuMjJsNy40MyA3LjQzYy4xMi4xMi4yMi4yNC4zMS4zN0gxNmEuNS41IDAgMCAxLS41LS41Wk00LjgyIDE0aDYuMzNhLjUuNSAwIDAgMSAuNDMuNzVMOS43NSAxOGgxLjUyYy42NCAwIC45OC43NS41NiAxLjI0bC02LjQxIDcuNDVjLS41Mi42LTEuNS4wNS0xLjI1LS43TDUuNSAyMmgtNGEuNS41IDAgMCAxLS40NS0uNzFsMy4zMi03YS41LjUgMCAwIDEgLjQ1LS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlnaHRuaW5nMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGlnaHRuaW5nMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNi40IDJBMi40IDIuNCAwIDAgMCA0IDQuNHY4Ljg0Yy4yNC0uMTUuNTItLjI0LjgyLS4yNGguNjhWNC40YzAtLjUuNC0uOS45LS45SDE0VjEwYzAgMS4xLjkgMiAyIDJoNi41djExLjZjMCAuNS0uNC45LS45LjlIOC42Mkw3LjMzIDI2SDIxLjZhMi40IDIuNCAwIDAgMCAyLjQtMi40VjExLjU4YzAtLjczLS4yOS0xLjQzLS44LTEuOTVMMTYuMjUgMi43YTIuNCAyLjQgMCAwIDAtMS43LS43SDYuNFptMTUuNTQgOC41SDE2YS41LjUgMCAwIDEtLjUtLjVWNC4wNmw2LjQ0IDYuNDRaTTQuODIgMTRoNi4zM2EuNS41IDAgMCAxIC40My43NUw5Ljc1IDE4aDEuNTJjLjY0IDAgLjk4Ljc1LjU2IDEuMjRsLTYuNDEgNy40NWMtLjUyLjYtMS41LjA1LTEuMjUtLjdMNS41IDIyaC00YS41LjUgMCAwIDEtLjQ1LS43MWwzLjMyLTdhLjUuNSAwIDAgMSAuNDUtLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaWdodG5pbmczMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpZ2h0bmluZzMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTcgMnY3YTMgMyAwIDAgMCAzIDNoN3YxNWEzIDMgMCAwIDEtMyAzSDguOWw2LjktNi42M2EyLjI1IDIuMjUgMCAwIDAtMS40LTMuODdsMS44LTIuOTZhMiAyIDAgMCAwLTEuNy0zLjA0SDYuMTFjLS40IDAtLjc4LjEtMS4xMi4yNlY1YTMgMyAwIDAgMSAzLTNoOVptMiAuMTJWOWExIDEgMCAwIDAgMSAxaDYuODhhMyAzIDAgMCAwLS43Ni0xLjNMMjAuMyAyLjg5QTMgMyAwIDAgMCAxOSAyLjEyWk02LjEyIDE1aDguMzhhLjUuNSAwIDAgMSAuNDMuNzZMMTEuNzUgMjFoMi40OWMuNjcgMCAxIC44Mi41MiAxLjI5bC04Ljc1IDguNDNjLS43Ni43My0xLjk4LS4wNi0xLjY0LTEuMDVMNiAyNUgxLjc1YS43NS43NSAwIDAgMS0uNjctMS4wOGw0LjE0LTguMzZhMSAxIDAgMCAxIC45LS41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TGlnaHRuaW5nMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpZ2h0bmluZzMyTGlnaHQnLCBcIjMyXCIsIFtcIk02IDVjMC0xLjEuOS0yIDItMmgxMHY1YTMgMyAwIDAgMCAzIDNoNXYxNmEyIDIgMCAwIDEtMiAySDkuOTRsLTEuMDMgMUgyNGEzIDMgMCAwIDAgMy0zVjEwLjc0YTMuNDMgMy40MyAwIDAgMC0uMDItLjM5IDMuNSAzLjUgMCAwIDAtMS0yLjA4bC01LjI1LTUuMjRBMy41IDMuNSAwIDAgMCAxOC4yNiAySDhhMyAzIDAgMCAwLTMgM3Y4Ljc2Yy4zLS4xNS42NS0uMjQgMS0uMjZWNVptMTMtMS44OWMuMzguMTIuNzQuMzMgMS4wMi42Mmw1LjI1IDUuMjRjLjI5LjMuNS42NS42MiAxLjAzSDIxYTIgMiAwIDAgMS0yLTJWMy4xMVpNNi4xMiAxNWg4LjM4YS41LjUgMCAwIDEgLjQzLjc2TDExLjc1IDIxaDIuNDljLjY3IDAgMSAuODIuNTIgMS4yOWwtOC43NSA4LjQzYy0uNzYuNzMtMS45OC0uMDYtMS42NC0xLjA1TDYgMjVIMS43NWEuNzUuNzUgMCAwIDEtLjY3LTEuMDhsNC4xNC04LjM2YTEgMSAwIDAgMSAuOS0uNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExpZ2h0bmluZzMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpZ2h0bmluZzMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzdjguNzZhMi41IDIuNSAwIDAgMSAxLjEyLS4yNkg3VjVhMSAxIDAgMCAxIDEtMWg5djVhMyAzIDAgMCAwIDMgM2g1djE1YTEgMSAwIDAgMS0xIDFIMTAuOThsLTIuMDcgMkgyNGEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFptMTYuNTkgOEgyMGExIDEgMCAwIDEtMS0xVjQuNDFMMjQuNTkgMTBaTTYuMTIgMTVoOC4zOGEuNS41IDAgMCAxIC40My43NkwxMS43NSAyMWgyLjQ5Yy42NyAwIDEgLjgyLjUyIDEuMjlsLTguNzUgOC40M2MtLjc2LjczLTEuOTgtLjA2LTEuNjQtMS4wNUw2IDI1SDEuNzVhLjc1Ljc1IDAgMCAxLS42Ny0xLjA4bDQuMTQtOC4zNmExIDEgMCAwIDEgLjktLjU2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaWdodG5pbmc0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpZ2h0bmluZzQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNHYxMS4yNUEzLjc1IDMuNzUgMCAwIDAgMjcuNzUgMTlINDB2MjFhMyAzIDAgMCAxLTMgM0gxNC44Mmw2LjMxLTcuMmEzLjUgMy41IDAgMCAwLTIuMjItNS43OGwyLTMuNTVBMyAzIDAgMCAwIDE4LjI4IDIySDguNjRhMyAzIDAgMCAwLS42NC4wN1Y3YTMgMyAwIDAgMSAzLTNoMTNabTIuNS40NnYxMC43OWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMS43MUwyNi41IDQuNDZaTTguNjMgMjRoOS42NmExIDEgMCAwIDEgLjg3IDEuNDlMMTUuNSAzMmgzYTEuNSAxLjUgMCAwIDEgMS4xMyAyLjQ5TDkuOTcgNDUuNWMtMSAxLjE1LTIuODguMTctMi41MS0xLjMyTDkgMzhIM2ExIDEgMCAwIDEtLjktMS40Mmw1LjYzLTEyYTEgMSAwIDAgMSAuOS0uNThaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExpZ2h0bmluZzQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpZ2h0bmluZzQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjI1IDRBNC4yNSA0LjI1IDAgMCAwIDggOC4yNXYxMy44MmEzIDMgMCAwIDEgLjY0LS4wN2gxLjg2VjguMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVIMjR2OC43NUEzLjc1IDMuNzUgMCAwIDAgMjcuNzUgMTloOS43NXYyMC43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMTYuMTRsLTIuMiAyLjVoMjEuOEMzOC4xIDQ0IDQwIDQyLjEgNDAgMzkuNzVWMTguNDFjMC0uNi0uMjQtMS4xNi0uNjYtMS41OUwyNy4xOCA0LjY2Yy0uNDMtLjQyLTEtLjY2LTEuNi0uNjZIMTIuMjZabTIzLjIzIDEyLjVoLTcuNzNjLS43IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjcuNTJsOC45OCA4Ljk4Wk04LjYzIDI0aDkuNjZhMSAxIDAgMCAxIC44NyAxLjQ5TDE1LjUgMzJoM2ExLjUgMS41IDAgMCAxIDEuMTMgMi40OUw5Ljk3IDQ1LjVjLTEgMS4xNS0yLjg4LjE3LTIuNTEtMS4zMkw5IDM4SDNhMSAxIDAgMCAxLS45LTEuNDJsNS42My0xMmExIDEgMCAwIDEgLjktLjU4WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaW5rMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaW5rMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41VjloMy41YTMuNSAzLjUgMCAwIDEgMi40NSA2aDIuNTVjLjgzIDAgMS41LS42NyAxLjUtMS41VjZoLTMuNUExLjUgMS41IDAgMCAxIDkgNC41Wm0xIDBWMS4yNUwxMy43NSA1SDEwLjVhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDEwYTIuNSAyLjUgMCAwIDAgMCA1SDRhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDRhLjUuNSAwIDAgMCAwLTFoLS41Wk03IDEwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDdhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIN1ptLTMuNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExpbmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaW5rMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNCAzYzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDIuOTEgMi45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxM2EyIDIgMCAwIDEtMiAySDkuOTVjLjMtLjI5LjU0LS42My43MS0xSDEyYTEgMSAwIDAgMCAxLTFWNmgtMi41QTEuNSAxLjUgMCAwIDEgOSA0LjVWMkg2YTEgMSAwIDAgMC0xIDF2Nkg0VjNabTYuNSAyaDIuM0wxMCAyLjJ2Mi4zYzAgLjI4LjIyLjUuNS41Wm0tNyA1YTIuNSAyLjUgMCAwIDAgMCA1SDRhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDRhLjUuNSAwIDAgMCAwLTFoLS41Wk03IDEwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDdhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIN1ptLTMuNSAyYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExpbmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExpbmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTMuODRhMy41IDMuNSAwIDAgMC0zLjE2LTVINFYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNMy41IDE0YTIuNSAyLjUgMCAwIDAgMCA1SDRhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDRhLjUuNSAwIDAgMCAwLTFoLS41Wk03IDE0YS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDdhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIN1ptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaW5rMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGluazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjloMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjA0Yy0uMDUuMzUtLjE1LjY5LS4zIDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMy41IDE0YTIuNSAyLjUgMCAwIDAgMCA1SDRhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDRhLjUuNSAwIDAgMCAwLTFoLS41Wk03IDE0YS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDdhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIN1ptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaW5rMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMaW5rMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTVhNSA1IDAgMCAwLTQtOEg0VjRjMC0xLjEuOS0yIDItMmg2Wm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wk01Ljc1IDE1Ljc1QS43NS43NSAwIDAgMCA1IDE1aC0uMmE0IDQgMCAwIDAgLjIgOGguMWEuNzUuNzUgMCAwIDAtLjEtMS41aC0uMTZhMi41IDIuNSAwIDAgMSAuMTYtNWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVpNMTMgMTlhNCA0IDAgMCAwLTQtNGgtLjFhLjc1Ljc1IDAgMCAwIC4xIDEuNWguMTZhMi41IDIuNSAwIDAgMS0uMTYgNWgtLjFBLjc1Ljc1IDAgMCAwIDkgMjNoLjJhNCA0IDAgMCAwIDMuOC00Wm0tNC4yNS0uNzVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNmEuNzUuNzUgMCAwIDAtLjEtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMaW5rMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TGluazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41aC00LjIzQTQuOTkgNC45OSAwIDAgMSAxMyAyMmg1YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2MTBoMS41VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTUuNzUgMTUuNzVBLjc1Ljc1IDAgMCAwIDUgMTVoLS4yYTQgNCAwIDAgMCAuMiA4aC4xYS43NS43NSAwIDAgMC0uMS0xLjVoLS4xNmEyLjUgMi41IDAgMCAxIC4xNi01aC4xYS43NS43NSAwIDAgMCAuNjUtLjc1Wk0xMyAxOWE0IDQgMCAwIDAtNC00aC0uMWEuNzUuNzUgMCAwIDAgLjEgMS41aC4xNmEyLjUgMi41IDAgMCAxLS4xNiA1aC0uMUEuNzUuNzUgMCAwIDAgOSAyM2guMmE0IDQgMCAwIDAgMy44LTRabS00LjI1LS43NWgtMy42YS43NS43NSAwIDAgMCAuMSAxLjVoMy42YS43NS43NSAwIDAgMC0uMS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExvY2sxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2sxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5LjczYTIgMiAwIDAgMCAuMjctMXYtNGEyIDIgMCAwIDAtMS41LTEuOTRWOEEzIDMgMCAwIDAgNCA1LjRWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVpNMy41IDh2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNVY4YTIgMiAwIDEgMC00IDBabTEgMVY4YTEgMSAwIDAgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TG9jazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYyLjRjLjMtLjE3LjY0LS4zIDEtLjM2VjNhMSAxIDAgMCAxIDEtMWgzdjIuNWMwIC44My42NyAxLjUgMS41IDEuNUgxM3Y3YTEgMSAwIDAgMS0xIDFoLTJhMiAyIDAgMCAxLS4yNyAxSDEyYTIgMiAwIDAgMCAyLTJWNS40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTIuOTEtMi45MUExLjUgMS41IDAgMCAwIDkuNTkgMUg2Wm02LjggNGgtMi4zYS41LjUgMCAwIDEtLjUtLjVWMi4yTDEyLjggNVpNMy41IDh2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNVY4YTIgMiAwIDEgMC00IDBabTEgMVY4YTEgMSAwIDAgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TG9jazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYtNGEyIDIgMCAwIDAtMS41LTEuOTRWMTJBMyAzIDAgMCAwIDQgOS40VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0zLjUgMTJ2MUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TG9jazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuNGMuMy0uMTcuNjQtLjMgMS0uMzZWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtNHYxaDRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMy41IDEydjFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TG9jazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TG9jazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjA1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di01YTIuNSAyLjUgMCAwIDAtMi0yLjQ1VjE0YTMuNSAzLjUgMCAwIDAtNi0yLjQ1VjRjMC0xLjEuOS0yIDItMmg2Wm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wk00IDE1aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVIOXYtMWEyLjUgMi41IDAgMCAwLTUgMHYxWm0xLjUtMWExIDEgMCAxIDEgMiAwdjFoLTJ2LTFabTIgNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRMb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTZ2MWMwIC4xNy0uMDIuMzQtLjA1LjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjU1YTMuNSAzLjUgMCAwIDEgMS41LS45VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTQgMTVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5di0xYTIuNSAyLjUgMCAwIDAtNSAwdjFabTEuNS0xYTEgMSAwIDEgMSAyIDB2MWgtMnYtMVptMiA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TG9jazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TG9jazI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMnY4YzAgMS4xLjkgMiAyIDJoOHYxMS42YTIuNCAyLjQgMCAwIDEtMi40IDIuNGgtNy43N2EzIDMgMCAwIDAgLjE3LTF2LTVhMyAzIDAgMCAwLTIuNS0yLjk2VjE3QTQgNCAwIDAgMCA0IDE1LjA2VjQuNEEyLjQgMi40IDAgMCAxIDYuNCAySDE0Wm0xLjUuNDhWMTBjMCAuMjguMjIuNS41LjVoNy41Yy0uMDktLjEzLS4yLS4yNS0uMy0uMzdMMTUuNzUgMi43YTIuNCAyLjQgMCAwIDAtLjI2LS4yMlpNNC41IDE4SDRhMiAyIDAgMCAwLTIgMnY1YzAgMS4xLjkgMiAyIDJoN2EyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC0yLTJoLS41di0xYTMgMyAwIDEgMC02IDB2MVpNNiAxN2ExLjUgMS41IDAgMCAxIDMgMHYxSDZ2LTFabTMgNS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMb2NrMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TG9jazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNCAyQTIuNCAyLjQgMCAwIDAgNCA0LjR2MTAuNjZjLjM1LS42My44Ny0xLjE2IDEuNS0xLjUyVjQuNGMwLS41LjQtLjkuOS0uOUgxNFYxMGMwIDEuMS45IDIgMiAyaDYuNXYxMS42YzAgLjUtLjQuOS0uOS45SDE0di41YTMgMyAwIDAgMS0uMTcgMWg3Ljc3YTIuNCAyLjQgMCAwIDAgMi40LTIuNFYxMS41OGMwLS43My0uMjktMS40My0uOC0xLjk1TDE2LjI1IDIuN2EyLjQgMi40IDAgMCAwLTEuNy0uN0g2LjRabTE1LjU0IDguNUgxNmEuNS41IDAgMCAxLS41LS41VjQuMDZsNi40NCA2LjQ0Wk00LjUgMThINGEyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMmgtLjV2LTFhMyAzIDAgMSAwLTYgMHYxWk02IDE3YTEuNSAxLjUgMCAwIDEgMyAwdjFINnYtMVptMyA1LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExvY2szMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2szMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDJ2N2EzIDMgMCAwIDAgMyAzaDd2MTVhMyAzIDAgMCAxLTMgM2gtNy41NGMuMzUtLjU5LjU0LTEuMjcuNTQtMnYtNmE0IDQgMCAwIDAtMy4wOC0zLjlBNSA1IDAgMCAwIDUgMTZWNWEzIDMgMCAwIDEgMy0zaDlabTIgLjEyVjlhMSAxIDAgMCAwIDEgMWg2Ljg4YTMgMyAwIDAgMC0uNzYtMS4zTDIwLjMgMi44OUEzIDMgMCAwIDAgMTkgMi4xMlpNNS41IDE5LjVINUEyLjUgMi41IDAgMCAwIDIuNSAyMnY2QTIuNSAyLjUgMCAwIDAgNSAzMC41aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di02YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtLjVWMTlhMy41IDMuNSAwIDEgMC03IDB2LjVabTItLjVhMS41IDEuNSAwIDAgMSAzIDB2LjVoLTNWMTlabTMuNSA2YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TG9jazMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2szMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk04IDJhMyAzIDAgMCAwLTMgM3YxMWE1LjAyIDUuMDIgMCAwIDEgMi0xLjU4VjVhMSAxIDAgMCAxIDEtMWg5djVhMyAzIDAgMCAwIDMgM2g1djE1YTEgMSAwIDAgMS0xIDFoLTdjMCAuNzMtLjIgMS40MS0uNTQgMkgyNGEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFptMTYuNTkgOEgyMGExIDEgMCAwIDEtMS0xVjQuNDFMMjQuNTkgMTBaTTUuNSAxOS41SDVBMi41IDIuNSAwIDAgMCAyLjUgMjJ2NkEyLjUgMi41IDAgMCAwIDUgMzAuNWg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNmEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLS41VjE5YTMuNSAzLjUgMCAxIDAtNyAwdi41Wm0yLS41YTEuNSAxLjUgMCAwIDEgMyAwdi41aC0zVjE5Wm0zLjUgNmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudExvY2s0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudExvY2s0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDR2MTEuMjVBMy43NSAzLjc1IDAgMCAwIDI3Ljc1IDE5SDQwdjIxYTMgMyAwIDAgMS0zIDNIMjRWMzNhNSA1IDAgMCAwLTQuMDYtNC45MUE3IDcgMCAwIDAgOCAyNC4xVjdhMyAzIDAgMCAxIDMtM2gxM1ptMi41LjQ2djEwLjc5YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDExLjcxTDI2LjUgNC40NlpNOCAzMEg3YTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zVjMzYTMgMyAwIDAgMC0zLTNoLTF2LTFhNSA1IDAgMCAwLTEwIDB2MVptMi41LTFhMi41IDIuNSAwIDAgMSA1IDB2MWgtNXYtMVptNS41IDlhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRMb2NrNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TG9jazQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjI1IDRBNC4yNSA0LjI1IDAgMCAwIDggOC4yNVYyNC4xYTcgNyAwIDAgMSAyLjUtMS42NFY4LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1SDI0djguNzVBMy43NSAzLjc1IDAgMCAwIDI3Ljc1IDE5aDkuNzV2MjAuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDI0VjQzYzAgLjM0LS4wMy42OC0uMSAxaDExLjg1QzM4LjEgNDQgNDAgNDIuMSA0MCAzOS43NVYxOC40MWMwLS42LS4yNC0xLjE2LS42Ni0xLjU5TDI3LjE4IDQuNjZjLS40My0uNDItMS0uNjYtMS42LS42NkgxMi4yNlptMjMuMjMgMTIuNWgtNy43M2MtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjcuNTJsOC45OCA4Ljk4Wk04IDMwSDdhMyAzIDAgMCAwLTMgM3YxMGEzIDMgMCAwIDAgMyAzaDEyYTMgMyAwIDAgMCAzLTNWMzNhMyAzIDAgMCAwLTMtM2gtMXYtMWE1IDUgMCAwIDAtMTAgMHYxWm0yLjUtMWEyLjUgMi41IDAgMCAxIDUgMHYxaC01di0xWm01LjUgOWEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE1hcmdpbnMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE1hcmdpbnMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJ2LTMuNWEuNS41IDAgMCAxIDEgMFYxOGg2di0zLjVhLjUuNSAwIDAgMSAxIDBWMThhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJ2My41YS41LjUgMCAwIDEtMSAwVjJIN3YzLjVhLjUuNSAwIDAgMS0xIDBWMlptLjUgMTFhLjUuNSAwIDAgMS0uNS0uNXYtNWEuNS41IDAgMCAxIDEgMHY1YS41LjUgMCAwIDEtLjUuNVptNyAwYS41LjUgMCAwIDEtLjUtLjV2LTVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE1hcmdpbnMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNYXJnaW5zMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi41IDEzYS41LjUgMCAwIDEtLjUtLjV2LTVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLS41LjVabTcgMGEuNS41IDAgMCAxLS41LS41di01YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0uNS41Wk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMy0xdjIuNWEuNS41IDAgMCAxLTEgMFYzYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMXYtMi41YS41LjUgMCAwIDEgMSAwVjE3aDZ2LTIuNWEuNS41IDAgMCAxIDEgMFYxN2ExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMXYyLjVhLjUuNSAwIDAgMS0xIDBWM0g3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNYXJnaW5zMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNYXJnaW5zMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS41IDJoLTd2NC4yNWEuNzUuNzUgMCAwIDEtMS41IDBWMmgtLjc1QzUuMDEgMiA0IDMgNCA0LjI1djE1LjVDNCAyMC45OSA1IDIyIDYuMjUgMjJIN3YtNC4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMjJoN3YtNC4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMjJoLjc1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjQuMjVDMjAgMy4wMSAxOSAyIDE3Ljc1IDJIMTd2NC4yNWEuNzUuNzUgMCAwIDEtMS41IDBWMlpNNy43NSA4LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djUuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTUuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm05LjI1Ljc1djUuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTUuNWEuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE1hcmdpbnMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNYXJnaW5zMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNCA0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDExLjVDMTguOTkgMiAyMCAzIDIwIDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVaTTE3IDIwLjVoLjc1Yy40MSAwIC43NS0uMzQuNzUtLjc1VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVIMTd2Mi43NWEuNzUuNzUgMCAwIDEtMS41IDBWMy41aC03djIuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwVjMuNWgtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NUg3di0yLjc1YS43NS43NSAwIDAgMSAxLjUgMHYyLjc1aDd2LTIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuNzVabS05LjI1LTEyYy40MSAwIC43NS4zNC43NS43NXY1LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01LjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptOS4yNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2NS41YS43NS43NSAwIDAgMCAxLjUgMHYtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNZW50aW9uMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDF2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOC4xOWMuMi0uMzUuMjctLjc3LjE2LTEuMThDOS45NSAxMy42MyAxMSAxMi4xIDExIDEwLjVhNS41IDUuNSAwIDAgMC03LTUuM1YyLjVDNCAxLjY3IDQuNjcgMSA1LjUgMUg5Wk02Ljg2IDE0Ljc5QTQuNSA0LjUgMCAxIDEgMTAgMTAuNWMwIDEuMy0uODkgMi4zNC0xLjk4IDIuMzRhMS4zNyAxLjM3IDAgMCAxLTEuMTgtLjU4IDEuODIgMS44MiAwIDAgMS0yLjg0LS4yYy0uMy0uNDEtLjQ4LS45Ny0uNDgtMS41NiAwLS42LjE3LTEuMTUuNDgtMS41Ny4zNC0uNDcuODYtLjc3IDEuNS0uNzdhMS44MiAxLjgyIDAgMCAxIC45Ny4yNy41MS41MSAwIDAgMSAuMDgtLjEuNTQuNTQgMCAwIDEgLjkzLjN2MS44N2MwIC45LjIgMS4yNi41NCAxLjI2LjQ1IDAgLjktLjUyLjktMS4yNkEzLjQgMy40IDAgMCAwIDUuNSA3LjA4YTMuNCAzLjQgMCAwIDAtMy40MiAzLjQyIDMuNDIgMy40MiAwIDAgMCA0LjI1IDMuMzJsLjItLjA2LjE1LS4wNWEuNTQuNTQgMCAwIDEgLjQzLjk5bC0uMDYuMDMtLjE5LjA2Wk00LjYgMTAuNWMwIC43Mi4zOCAxLjI2LjkgMS4yNnMuOS0uNTQuOS0xLjI2LS4zOC0xLjI2LS45LTEuMjYtLjkuNTQtLjkgMS4yNlpNMTAgMS4yNVY0LjVjMCAuMjguMjIuNS41LjVoMy4yNUwxMCAxLjI1Wm0tMi4xNyA5LjU3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TWVudGlvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjIuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFYzYTEgMSAwIDAgMSAxLTFoM3YyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTN2N2ExIDEgMCAwIDEtMSAxSDguMzljLjA1LjM1LS4wMy43LS4yIDFIMTJhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMi45MS0yLjkxQTEuNSAxLjUgMCAwIDAgOS41OSAxSDZabTYuOCA0aC0yLjNhLjUuNSAwIDAgMS0uNS0uNVYyLjJMMTIuOCA1Wm0tNS45NCA5Ljc5QTQuNDggNC40OCAwIDAgMSA1LjUgMTVhNC41IDQuNSAwIDEgMSA0LjUtNC41YzAgMS4zLS44OSAyLjM0LTEuOTggMi4zNC0uNTIgMC0uOTItLjItMS4xOC0uNThhMS44OCAxLjg4IDAgMCAxLTEuODQuNTEgMS44NCAxLjg0IDAgMCAxLTEtLjdjLS4zLS40Mi0uNDgtLjk4LS40OC0xLjU3IDAtLjYuMTctMS4xNS40OC0xLjU3YTEuODQgMS44NCAwIDAgMSAyLjQ3LS41LjU0LjU0IDAgMCAxIDEgLjJsLjAxLjA3djEuOGMwIC45LjIgMS4yNi41NCAxLjI2LjQ1IDAgLjktLjUyLjktMS4yNmEzLjQyIDMuNDIgMCAxIDAtMy40MiAzLjQyaC4wM2EzLjkxIDMuOTEgMCAwIDAgLjgtLjFsLjItLjA2LjE1LS4wNWEuNTQuNTQgMCAwIDEgLjQzLjk5bC0uMDYuMDMtLjE5LjA2Wk01IDkuNDRjLS4yNS4yMi0uNC42LS40IDEuMDYgMCAuNDYuMTUuODQuNCAxLjA2LjE0LjEzLjMxLjIuNS4yLjUyIDAgLjktLjU0LjktMS4yNnMtLjM4LTEuMjYtLjktMS4yNmEuNzQuNzQgMCAwIDAtLjUuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TWVudGlvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TWVudGlvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjM5bC0uMDQtLjE4QzkuOTUgMTcuNjMgMTEgMTYuMSAxMSAxNC41YTUuNSA1LjUgMCAwIDAtNy01LjNWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMC0zLjE0IDQuMjlsLjE5LS4wNi4wNi0uMDNhLjU0LjU0IDAgMCAwLS40My0uOTlsLS4xNC4wNS0uMi4wNmEzLjQzIDMuNDMgMCAxIDEgMi41OC0zLjMyYzAgLjc0LS40NSAxLjI2LS45IDEuMjYtLjM0IDAtLjU0LS4zNi0uNTQtMS4yNnYtMS44N2EuNTQuNTQgMCAwIDAtMS0uMiAxLjggMS44IDAgMCAwLS45OC0uMjdjLTEuMjIgMC0xLjk4IDEuMS0xLjk4IDIuMzQgMCAxLjI1Ljc2IDIuMzQgMS45OCAyLjM0LjU1IDAgMS0uMjIgMS4zNC0uNTguMjYuMzcuNjYuNTggMS4xOC41OCAxLjA5IDAgMS45OC0xLjA0IDEuOTgtMi4zNFptLTUuNCAwYzAtLjcyLjM4LTEuMjYuOS0xLjI2cy45LjU0LjkgMS4yNi0uMzggMS4yNi0uOSAxLjI2LS45LS41NC0uOS0xLjI2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TWVudGlvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC00Yy0uNDMuNDQtMSAuNzQtMS42NS44MmwuMDQuMThIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNNi42NyAxNy43MWEuNTQuNTQgMCAwIDEgLjQzLjk5bC0uMDYuMDMtLjE5LjA2QTQuNSA0LjUgMCAxIDEgMTAgMTQuNWMwIDEuMy0uODkgMi4zNC0xLjk4IDIuMzQtLjUyIDAtLjkyLS4yLTEuMTgtLjU4YTEuOCAxLjggMCAwIDEtMS4zOC41OEExLjgyIDEuODIgMCAwIDEgNCAxNi4wN2EyLjY2IDIuNjYgMCAwIDEtLjQ4LTEuNTdjMC0uNi4xNy0xLjE1LjQ4LTEuNTdhMS44NCAxLjg0IDAgMCAxIDIuNDctLjUuNTQuNTQgMCAwIDEgMSAuMmwuMDEuMDd2MS44YzAgLjkuMiAxLjI2LjU0IDEuMjYuNDUgMCAuOS0uNTIuOS0xLjI2YTMuNDIgMy40MiAwIDEgMC0yLjU5IDMuMzJsLjItLjA2LjE1LS4wNVpNNSAxMy40NGMtLjI1LjIyLS40LjYtLjQgMS4wNiAwIC40Ni4xNS44NC40IDEuMDYuMTQuMTMuMzEuMi41LjIuNTIgMCAuOS0uNTQuOS0xLjI2cy0uMzgtMS4yNi0uOS0xLjI2YS43NC43NCAwIDAgMC0uNS4yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNZW50aW9uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTcuOThjMC0uMTUtLjAyLS4zLS4wNy0uNDYgMS45Ny0uMjEgMy4yNS0yLjEgMy4yNS00LjA0QTYuNyA2LjcgMCAwIDAgNCAxMS4yOFY0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlptLTEuNSAxNWE1LjUgNS41IDAgMSAwLTMuODQgNS4yNGwuMjMtLjA3LjA4LS4wNGEuNjYuNjYgMCAwIDAtLjUzLTEuMmwtLjE3LjA2LS4yNS4wNmE0LjIgNC4yIDAgMCAxLTUuMi00LjA1IDQuMTggNC4xOCAwIDAgMSA4LjM2IDBjMCAuOS0uNTUgMS41NC0xLjEgMS41NC0uNDEgMC0uNjYtLjQ1LS42Ni0xLjU0di0yLjI5YS42Ni42NiAwIDAgMC0xLjIzLS4yNCAyLjIgMi4yIDAgMCAwLTEuMTktLjMzYy0xLjQ5IDAtMi40MiAxLjMzLTIuNDIgMi44NiAwIDEuNTMuOTMgMi44NiAyLjQyIDIuODYuNjcgMCAxLjIzLS4yNyAxLjY0LS43LjMyLjQ0LjguNyAxLjQ0LjcgMS4zMyAwIDIuNDItMS4yNyAyLjQyLTIuODZabS02LjYgMGMwLS44OC40Ni0xLjU0IDEuMS0xLjU0LjY0IDAgMS4xLjY2IDEuMSAxLjU0cy0uNDYgMS41NC0xLjEgMS41NGMtLjY0IDAtMS4xLS42Ni0xLjEtMS41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TWVudGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE1lbnRpb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC41IDIwYS41LjUgMCAwIDEtLjUuNWgtNS45N2MtLjU0LjU2LTEuMjUuOTUtMi4wOCAxLjA0LjA1LjE1LjA3LjMuMDcuNDZIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjI4Yy40OC0uMTkuOTgtLjMzIDEuNS0uNFY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk00IDE0LjE1YTQuMTYgNC4xNiAwIDAgMSAyLjUtLjgzYzIuMyAwIDQuMTggMS44NyA0LjE4IDQuMTggMCAuOS0uNTUgMS41NC0xLjEgMS41NC0uNDEgMC0uNjYtLjQ1LS42Ni0xLjU0di0yLjI5YS42Ni42NiAwIDAgMC0xLjIzLS4yNCAyLjIgMi4yIDAgMCAwLTEuMTktLjMzYy0xLjQ5IDAtMi40MiAxLjMzLTIuNDIgMi44NiAwIC44Ny4zIDEuNjcuODMgMi4yYTIuMjIgMi4yMiAwIDAgMCAxLjU5LjY1Yy42Ny4wMSAxLjIzLS4yNiAxLjY0LS43LjMyLjQ1LjguNzEgMS40NC43MSAxLjMzIDAgMi40Mi0xLjI3IDIuNDItMi44NmE1LjUgNS41IDAgMSAwLTMuODQgNS4yNGwuMjMtLjA3LjA4LS4wNGEuNjYuNjYgMCAwIDAtLjUzLTEuMmwtLjE3LjA2LS4yNS4wNkE0LjIgNC4yIDAgMCAxIDQgMTQuMTVabTEuNSA0LjAyYTIuMTggMi4xOCAwIDAgMSAwLTEuMzNjLjE3LS41My41NC0uODggMS0uODguNjQgMCAxLjEuNjYgMS4xIDEuNTRzLS40NiAxLjU0LTEuMSAxLjU0Yy0uNDYgMC0uODMtLjM1LTEtLjg3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNZW50aW9uMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAydjhjMCAxLjEuOSAyIDIgMmg4djExLjZhMi40IDIuNCAwIDAgMS0yLjQgMi40SDExLjQ0YTEuOTcgMS45NyAwIDAgMC0uMTYtLjkyYzIuMzQtLjA5IDMuOTItMi4yNyAzLjkyLTQuNThBNy43IDcuNyAwIDAgMCA0IDEzLjY0VjQuNEEyLjQgMi40IDAgMCAxIDYuNCAySDE0Wm0xLjUuNDhWMTBjMCAuMjguMjIuNS41LjVoNy41Yy0uMDktLjEzLS4yLS4yNS0uMy0uMzdMMTUuNzUgMi43YTIuNCAyLjQgMCAwIDAtLjI2LS4yMlpNMTQgMjAuNWE2LjUgNi41IDAgMSAwLTQuNTMgNi4ybC4yNi0uMS4xLS4wNGEuNzguNzggMCAwIDAtLjYzLTEuNDJsLS4yLjA3LS4zLjA4YTQuOTUgNC45NSAwIDEgMSAzLjc0LTQuNzljMCAxLjA3LS42NSAxLjgyLTEuMyAxLjgyLS40OSAwLS43OC0uNTMtLjc4LTEuODJ2LTIuN2EuNzguNzggMCAwIDAtMS40Ni0uMjkgMi42IDIuNiAwIDAgMC0xLjQtLjM5Yy0xLjc2IDAtMi44NiAxLjU4LTIuODYgMy4zOCAwIDEuOCAxLjEgMy4zOCAyLjg2IDMuMzguOCAwIDEuNDUtLjMyIDEuOTMtLjg0LjM5LjU0Ljk1Ljg0IDEuNzEuODQgMS41NyAwIDIuODYtMS41IDIuODYtMy4zOFptLTcuOCAwYzAtMS4wNC41NS0xLjgyIDEuMy0xLjgyczEuMy43OCAxLjMgMS44Mi0uNTUgMS44Mi0xLjMgMS44Mi0xLjMtLjc4LTEuMy0xLjgyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TWVudGlvbjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNCAyQTIuNCAyLjQgMCAwIDAgNCA0LjR2OS4yNGMuNDctLjI0Ljk4LS40NCAxLjUtLjU4VjQuNGMwLS41LjQtLjkuOS0uOUgxNFYxMGMwIDEuMS45IDIgMiAyaDYuNXYxMS42YzAgLjUtLjQuOS0uOS45aC04LjQ2Yy0uNTQuMzQtMS4xNy41NS0xLjg2LjU4YTIuMDMgMi4wMyAwIDAgMSAuMTYuOTJIMjEuNmEyLjQgMi40IDAgMCAwIDIuNC0yLjRWMTEuNThjMC0uNzMtLjI5LTEuNDMtLjgtMS45NUwxNi4yNSAyLjdhMi40IDIuNCAwIDAgMC0xLjctLjdINi40Wm0xNS41NCA4LjVIMTZhLjUuNSAwIDAgMS0uNS0uNVY0LjA2bDYuNDQgNi40NFpNMTQgMjAuNWE2LjUgNi41IDAgMSAwLTQuNTMgNi4ybC4yNi0uMS4xLS4wNGEuNzguNzggMCAwIDAtLjYzLTEuNDJsLS4yLjA3LS4zLjA4YTQuOTUgNC45NSAwIDEgMSAzLjc0LTQuNzljMCAxLjA3LS42NSAxLjgyLTEuMyAxLjgyLS40OSAwLS43OC0uNTMtLjc4LTEuODJ2LTIuN2EuNzguNzggMCAwIDAtMS40Ni0uMjkgMi42IDIuNiAwIDAgMC0xLjQtLjM5Yy0xLjc2IDAtMi44NiAxLjU4LTIuODYgMy4zOCAwIDEuOCAxLjEgMy4zOCAyLjg2IDMuMzguOCAwIDEuNDUtLjMyIDEuOTMtLjg0LjM5LjU0Ljk1Ljg0IDEuNzEuODQgMS41NyAwIDIuODYtMS41IDIuODYtMy4zOFptLTcuOCAwYzAtMS4wNC41NS0xLjgyIDEuMy0xLjgyczEuMy43OCAxLjMgMS44Mi0uNTUgMS44Mi0xLjMgMS44Mi0xLjMtLjc4LTEuMy0xLjgyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNZW50aW9uNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNZW50aW9uNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA0djExLjI1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOUg0MHYyMWEzIDMgMCAwIDEtMyAzSDIwLjRhNiA2IDAgMCAwIDMuNi01LjQ2di0xLjg3QTEyIDEyIDAgMCAwIDggMjQuNjhWN2EzIDMgMCAwIDEgMy0zaDEzWm0yLjUuNDZ2MTAuNzljMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTEuNzFMMjYuNSA0LjQ2Wk0yMiAzNS43MmExMCAxMCAwIDEgMC02LjY2IDkuNyAxIDEgMCAwIDAtLjY3LTEuODhBNy45OSA3Ljk5IDAgMCAxIDQgMzZhOCA4IDAgMSAxIDE2IDB2MS42NWEyIDIgMCAwIDEtNC0uMTV2LTUuNjJhMSAxIDAgMCAwLTEuOTktLjA0QTQuMTggNC4xOCAwIDAgMCAxMS41IDMxQzguOTggMzEgNyAzMy4yNSA3IDM1Ljk3YzAgMi43MSAxLjk4IDQuOTYgNC41IDQuOTYgMS4yIDAgMi4yOS0uNTEgMy4wOS0xLjM1QTQgNCAwIDAgMCAyMiAzNy41M3YtMS44MVpNMTEuNSAzM2guMTVjMS4yNy4xIDIuMzMgMS4zNCAyLjM1IDIuOTN2LjIyYy0uMDkgMS41OC0xLjIgMi43OC0yLjUgMi43OC0xLjM1IDAtMi41LTEuMy0yLjUtMi45NkM5IDM0LjMgMTAuMTUgMzMgMTEuNSAzM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TWVudGlvbjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE1lbnRpb240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xMi4yNSA0QTQuMjUgNC4yNSAwIDAgMCA4IDguMjV2MTYuNDNjLjgtLjI4IDEuNjMtLjQ4IDIuNS0uNTlWOC4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUgyNHY4Ljc1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOWg5Ljc1djIwLjc1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgyMi40N2E1Ljk4IDUuOTggMCAwIDEtNC42MyAyYy4wNS4xNi4xLjMzLjEyLjVoMTcuNzlDMzguMSA0NCA0MCA0Mi4xIDQwIDM5Ljc1VjE4LjQxYzAtLjYtLjI0LTEuMTYtLjY2LTEuNTlMMjcuMTggNC42NmMtLjQzLS40Mi0xLS42Ni0xLjYtLjY2SDEyLjI2Wm0yMy4yMyAxMi41aC03LjczYy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNy41Mmw4Ljk4IDguOThaTTIyIDM1LjcyYTEwIDEwIDAgMSAwLTYuNjYgOS43IDEgMSAwIDAgMC0uNjctMS44OEE3Ljk5IDcuOTkgMCAwIDEgNCAzNmE4IDggMCAxIDEgMTYgMHYxLjY1YTIgMiAwIDAgMS00LS4xNXYtNS42MmExIDEgMCAwIDAtMS45OS0uMDRBNC4xOCA0LjE4IDAgMCAwIDExLjUgMzFDOC45OCAzMSA3IDMzLjI1IDcgMzUuOTdjMCAyLjcxIDEuOTggNC45NiA0LjUgNC45NiAxLjIgMCAyLjI5LS41MSAzLjA5LTEuMzVBNCA0IDAgMCAwIDIyIDM3LjUzdi0xLjgxWk0xMS41IDMzaC4xNWMxLjI3LjEgMi4zMyAxLjM0IDIuMzUgMi45M3YuMjJjLS4wOSAxLjU4LTEuMiAyLjc4LTIuNSAyLjc4LTEuMzUgMC0yLjUtMS4zLTIuNS0yLjk2QzkgMzQuMyAxMC4xNSAzMyAxMS41IDMzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE0IDZhMSAxIDAgMCAwLTEtMXY2YTMgMyAwIDAgMS0zIDNINWExIDEgMCAwIDAgMSAxaDQuMjFjMi4xIDAgMy43OS0xLjcgMy43OS0zLjc5VjZaTTcgMXYzLjVDNyA1LjMzIDcuNjcgNiA4LjUgNkgxMnY1LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgMyAxMS41di05QzMgMS42NyAzLjY3IDEgNC41IDFIN1ptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMOCAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTQgNmExIDEgMCAwIDAtMS0xdjZhMyAzIDAgMCAxLTMgM0g1YTEgMSAwIDAgMCAxIDFoNC4yMWMyLjEgMCAzLjc5LTEuNyAzLjc5LTMuNzlWNlpNNSAxYTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDVhMiAyIDAgMCAwIDItMlY0LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNkw5LjY0IDEuNDRBMS41IDEuNSAwIDAgMCA4LjU4IDFINVptNSAxMUg1YTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDN2MS41QzggNC4zMyA4LjY3IDUgOS41IDVIMTF2NmExIDEgMCAwIDEtMSAxWm0uOC04SDkuNWEuNS41IDAgMCAxLS41LS41VjIuMkwxMC44IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE11bHRpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOSA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxMWMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSA5IDYuNVptMSAwVjIuMjVMMTQuNzUgN0gxMC41YS41LjUgMCAwIDEtLjUtLjVaTTE3IDlhMSAxIDAgMCAwLTEtMXY2YTMgMyAwIDAgMS0zIDNINmExIDEgMCAwIDAgMSAxaDYuMDZBMy45NCAzLjk0IDAgMCAwIDE3IDE0LjA2VjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTItMWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoN2ExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDkgNi41VjNINlptNCAuMnYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDEwIDMuMlpNMTcgOWExIDEgMCAwIDAtMS0xdjZhMyAzIDAgMCAxLTMgM0g2YTEgMSAwIDAgMCAxIDFoNi4wNkEzLjk0IDMuOTQgMCAwIDAgMTcgMTQuMDZWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE11bHRpcGxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00IDQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNC4yNXY0Ljc1QzEwLjUgNy45OSAxMS41MSA5IDEyLjc1IDloNC43NXY4LjI1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC05Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtMTNaXCIsIFwiTTEyIDYuNzVWMi40N2wuMjIuMTkgNC42MiA0LjYyLjIuMjJoLTQuMjlhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCIsIFwiTTguNzUgMjJjLS45OCAwLTEuODEtLjYzLTIuMTItMS41aDguNjJjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY4Ljk0bC44NC44NGMuNDIuNDIuNjYgMSAuNjYgMS41OXY1Ljg4QTQuNzUgNC43NSAwIDAgMSAxNS4yNSAyMmgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE11bHRpcGxlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNCA0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDQuMzhjLjYgMCAxLjE3LjI0IDEuNi42Nmw0LjYxIDQuNjJjLjQyLjQyLjY2IDEgLjY2IDEuNTl2OC4zOGMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtOWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTEzWm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzYzAgLjQxLjM0Ljc1Ljc1Ljc1aDljLjQxIDAgLjc1LS4zNC43NS0uNzVWOWgtMy4yNWMtMS4yNCAwLTIuMjUtMS4wMS0yLjI1LTIuMjVWMy41SDYuMjVaTTEyIDQuNTZ2Mi4xOWMwIC40MS4zNC43NS43NS43NWgyLjE5TDEyIDQuNTZaXCIsIFwiTTYuNjMgMjAuNWMuMy44NyAxLjE0IDEuNSAyLjEyIDEuNWg2LjVBNC43NSA0Ljc1IDAgMCAwIDIwIDE3LjI1di01Ljg4YzAtLjYtLjI0LTEuMTctLjY2LTEuNmwtLjg0LS44M3Y4LjMxYzAgMS44LTEuNDUgMy4yNS0zLjI1IDMuMjVINi42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVQZXJjZW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZVBlcmNlbnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS42N2EzIDMgMCAwIDEgMiAyLjcxbDEuNDQtMS40NGExLjUgMS41IDAgMCAxIDIuMTIgMi4xMkw4LjEyIDE0YTMgMyAwIDAgMSAyLjcgMmgyLjY4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSA5IDYuNVpNNSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0xIDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tMS4xNSA1Ljg1YS41LjUgMCAwIDEtLjctLjdsNi02YS41LjUgMCAwIDEgLjcuN2wtNiA2Wm0xMC4yMS4xNWgtMi4yM2EzIDMgMCAwIDAgLjE3LTFoMmEzIDMgMCAwIDAgMy0zVjhhMSAxIDAgMCAxIDEgMXY1LjA2QTMuOTQgMy45NCAwIDAgMSAxMy4wNiAxOFpNOCAxNWEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRabS0xIDJhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0zLTEwLjVWMi4yNUwxNC43NSA3SDEwLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVQZXJjZW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQZXJjZW50MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNGEyIDIgMCAwIDEtMiAyaC0yLjE3YTMgMyAwIDAgMC0uNi0xSDEzYTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgOSA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS43NmEzIDMgMCAwIDAtMS0uNTlWNFptNi0uOHYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDEwIDMuMlpNOCAxNWEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRabS0xIDJhMSAxIDAgMCAwIDEgMSAxIDEgMCAxIDAtMS0xWm00IDBhMyAzIDAgMCAxLS4xNyAxaDIuMjNBMy45NCAzLjk0IDAgMCAwIDE3IDE0LjA2VjlhMSAxIDAgMCAwLTEtMXY2YTMgMyAwIDAgMS0zIDNoLTJabS04LjE1Ljg1YS41LjUgMCAwIDEtLjctLjdsNi02YS41LjUgMCAwIDEgLjcuN2wtNiA2Wk01IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptLTEgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE11bHRpcGxlUGVyY2VudDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQZXJjZW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00IDQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNC4yNXY0Ljc1QzEwLjUgNy45OSAxMS41MSA5IDEyLjc1IDloNC43NXY4LjI1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0yLjRBMy41IDMuNSAwIDAgMCA5LjUgMTdoLS4wM2wyLjAyLTIuMDFBMS43NSAxLjc1IDAgMSAwIDkgMTIuNUw3IDE0LjUzdi0uMDNhMy41IDMuNSAwIDAgMC0zLTMuNDZWNC4yNVptOSAxNi4yNWMwIC41NC0uMTIgMS4wNS0uMzQgMS41aDIuNkE0Ljc1IDQuNzUgMCAwIDAgMjAgMTcuMjV2LTUuODhjMC0uNi0uMjQtMS4xNy0uNjYtMS42bC0uODQtLjgzdjguMzFjMCAxLjgtMS40NSAzLjI1LTMuMjUgMy4yNUgxM1pNMTIgNi43NVYyLjQ3bC4yMi4xOSA0LjYyIDQuNjIuMi4yMmgtNC4yOWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMy41IDE3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wLTMuNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabTYgOS41YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wm0wLTMuNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabTEuMjgtNS4yMmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC03LjUgNy41YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNy41LTcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TXVsdGlwbGVQZXJjZW50MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQZXJjZW50MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzLjVhLjc1Ljc1IDAgMCAwLS43NS43NXY3LjM4Yy0uNDQtLjMtLjk1LS41Mi0xLjUtLjZWNC4yNkM0IDMuMDEgNSAyIDYuMjUgMmg0LjM4Yy42IDAgMS4xNy4yNCAxLjYuNjZsNC42MSA0LjYyYy40Mi40Mi42NiAxIC42NiAxLjU5djguMzhjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTIuNGEzLjUgMy41IDAgMCAwLS45LTEuNWgzLjNjLjQxIDAgLjc1LS4zNC43NS0uNzVWOWgtMy4yNWMtMS4yNCAwLTIuMjUtMS4wMS0yLjI1LTIuMjVWMy41SDYuMjVaTTEyIDQuNTZ2Mi4xOWMwIC40MS4zNC43NS43NS43NWgyLjE5TDEyIDQuNTZaTTE1LjI1IDIyaC0yLjU5Yy4yMi0uNDUuMzQtLjk2LjM0LTEuNWgyLjI1YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWOC45NGwuODQuODRjLjQyLjQyLjY2IDEgLjY2IDEuNTl2NS44OEE0Ljc1IDQuNzUgMCAwIDEgMTUuMjUgMjJaTTMuNSAxN2EyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptMC0zLjVhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm02IDkuNWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptMC0zLjVhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0xLjI4LTUuMjJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtNy41IDcuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDcuNS03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE11bHRpcGxlUHJvaGliaXRlZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQcm9oaWJpdGVkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMSAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxN3Y2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00LjdBNS41IDUuNSAwIDAgMCA2IDkuMDJWMy41QzYgMi42NyA2LjY3IDIgNy41IDJIMTFaTTUgOS4wMlY0YTEgMSAwIDAgMC0xIDF2NC4yYy4zMi0uMDguNjYtLjE1IDEtLjE4Wk0xMC40IDE3Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGExIDEgMCAwIDAgMS0xaC00LjZaTTEyIDIuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTIgMi4yNVpNMSAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0yLjQgMi44IDQuOS00LjlhMy41IDMuNSAwIDAgMS00LjkgNC45Wm0tLjctLjdhMy41IDMuNSAwIDAgMSA0LjktNC45bC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZVByb2hpYml0ZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZVByb2hpYml0ZWQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDJhMiAyIDAgMCAwLTIgMnY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMSAxIDAgMCAxIDEtMWgzdjMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY2YTEgMSAwIDAgMS0xIDFoLTQuMDJjLS4wMy4zNC0uMS42OC0uMTkgMUgxNWEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMS41OSAySDhabTQgNC41VjMuMkwxNS44IDdoLTMuM2EuNS41IDAgMCAxLS41LS41Wk01IDkuMDJWNGExIDEgMCAwIDAtMSAxdjQuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFpNOS43NCAxOGMuMjYtLjMuNDgtLjY0LjY2LTFIMTVhMSAxIDAgMCAxLTEgMUg5Ljc0Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTIuNCAyLjggNC45LTQuOWEzLjUgMy41IDAgMCAxLTQuOSA0LjlabS0uNy0uN2EzLjUgMy41IDAgMCAxIDQuOS00LjlsLTQuOSA0LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE11bHRpcGxlUHJvaGliaXRlZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50TXVsdGlwbGVQcm9oaWJpdGVkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMyA2Ljc1VjJIOC43NUM3LjUxIDIgNi41IDMgNi41IDQuMjVWMTFhNi41IDYuNSAwIDAgMSA2LjE5IDguNWg1LjA2YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjloLTQuNzVDMTQuMDEgOSAxMyA4IDEzIDYuNzVaTTUuNSA0LjYzdjYuNDVjLS41Mi4wOC0xLjAzLjIyLTEuNS40MlY2Ljc1YzAtLjk4LjYzLTEuODEgMS41LTIuMTJaTTE1LjI0IDIySDExLjJjLjQyLS40NC43OS0uOTQgMS4wOC0xLjVoNS4xYy0uMzEuODgtMS4xNSAxLjUtMi4xMyAxLjVaTTE0LjUgNi43NVYyLjVsNSA1aC00LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS05LjUgMGMwIC44My4yNSAxLjYuNyAyLjI1bDUuNTUtNS41NmE0IDQgMCAwIDAtNi4yNSAzLjNabTQgNGE0IDQgMCAwIDAgMy4zLTYuMjVsLTUuNTUgNS41NmMuNjQuNDQgMS40Mi42OSAyLjI1LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZVByb2hpYml0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZVByb2hpYml0ZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01LjUgNC42M3Y2LjQ1Yy0uNTIuMDgtMS4wMy4yMi0xLjUuNDJWNi43NWMwLS45OC42My0xLjgxIDEuNS0yLjEyWk0xNy43NSAxOS41aC01LjA2Yy4xNS0uNDcuMjUtLjk4LjMtMS41aDQuNzZjLjQxIDAgLjc1LS4zMy43NS0uNzVWOWgtMy4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjFMMTMgNi43NlYzLjVIOC43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djYuOTJBNi41MiA2LjUyIDAgMCAwIDYuNSAxMVY0LjI1QzYuNSAzLjAxIDcuNTEgMiA4Ljc1IDJoNC4zOGMuNiAwIDEuMTcuMjQgMS41OS42Nmw0LjYyIDQuNjJjLjQyLjQyLjY2IDEgLjY2IDEuNnY4LjM3YzAgMS4yNS0xLjAxIDIuMjUtMi4yNSAyLjI1Wk0xNC41IDQuNTZ2Mi4yYzAgLjM3LjI4LjY5LjY1Ljc0aDIuMjlMMTQuNSA0LjU2Wk0xMS4xOSAyMmMuNDItLjQ0Ljc5LS45NCAxLjA4LTEuNWg1LjFjLS4zMS44OC0xLjE1IDEuNS0yLjEzIDEuNUgxMS4yWm0uODEtNC41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS05LjUgMGMwIC44My4yNSAxLjYuNyAyLjI1bDUuNTUtNS41NmE0IDQgMCAwIDAtNi4yNSAzLjNabTQgNGE0IDQgMCAwIDAgMy4zLTYuMjVsLTUuNTUgNS41NmMuNjQuNDQgMS40Mi42OSAyLjI1LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZVN5bmMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE11bHRpcGxlU3luYzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOSA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1LjdhNS41IDUuNSAwIDAgMSA2LjggNi44aDIuN2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgOSA2LjVaTTEzLjA2IDE4SDkuNzRjLjI2LS4zLjQ4LS42NC42Ni0xSDEzYTMgMyAwIDAgMCAzLTNWOGExIDEgMCAwIDEgMSAxdjUuMDZBMy45NCAzLjk0IDAgMCAxIDEzLjA2IDE4Wk0xMCA2LjVWMi4yNUwxNC43NSA3SDEwLjVhLjUuNSAwIDAgMS0uNS0uNVptLTkgOGE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxIDAtMWguNDdhMS45OSAxLjk5IDAgMCAwLTIuMzguMzQuNS41IDAgMCAxLS43MS0uNzFBMyAzIDAgMCAxIDcgMTIuMTVWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzQTMgMyAwIDAgMSA0IDE2Ljg1VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUg1YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45OSAxLjk5IDAgMCAwIDIuMzgtLjM0LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRNdWx0aXBsZVN5bmMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRNdWx0aXBsZVN5bmMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE0YTIgMiAwIDAgMS0yIDJoLTIuMmMuMDgtLjMyLjE1LS42Ni4xOC0xSDEzYTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgOSA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjRabTYtLjh2My4zYzAgLjI4LjIyLjUuNS41aDMuM0wxMCAzLjJabS40IDEzLjhjLS4xOC4zNi0uNC43LS42NiAxaDMuMzJBMy45NCAzLjk0IDAgMCAwIDE3IDE0LjA2VjlhMSAxIDAgMCAwLTEtMXY2YTMgMyAwIDAgMS0zIDNoLTIuNlpNMSAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEgMC0xaC40N2ExLjk5IDEuOTkgMCAwIDAtMi4zOC4zNC41LjUgMCAwIDEtLjcxLS43MUEzIDMgMCAwIDEgNyAxMi4xNVYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDQgMTYuODVWMTdhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk5IDEuOTkgMCAwIDAgMi4zOC0uMzQuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE51bWJlcjExNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE51bWJlcjExNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggNC41VjFINC41QzMuNjcgMSAzIDEuNjcgMyAyLjV2Ni41NWMuNjMuMTMgMS4xOC41IDEuNTQgMSAuMi0uMTIuMzMtLjI2LjQzLS40YTEuNjggMS42OCAwIDAgMSAxLjc5LS41OGMuMjIuMDYuNDkuMTguNzIuNC4yNi4yNC41Mi42NC41MiAxLjE4djMuODVjMCAuMTgtLjAzLjM0LS4wOS41aDMuNTljLjgzIDAgMS41LS42NyAxLjUtMS41VjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVabTEgMFYxLjI1TDEyLjc1IDVIOS41YS41LjUgMCAwIDEtLjUtLjVabS04IDdhMS41IDEuNSAwIDAgMSAzIDB2MmExLjUgMS41IDAgMCAxLTMgMHYtMlptMS41LS41YS41LjUgMCAwIDAtLjUuNXYyYS41LjUgMCAwIDAgMSAwdi0yYS41LjUgMCAwIDAtLjUtLjVabTQuNS0uMzVjMC0uMi0uMS0uMzUtLjItLjQ1YS43My43MyAwIDAgMC0uMy0uMTZjLS4xNi0uMDUtLjUtLjA3LS43My4yMi0uMi4yNi0uNTEuNTctLjk4Ljc4YS41LjUgMCAwIDAgLjQyLjkyYy4zLS4xNS41Ny0uMzIuNzktLjV2My4wNGEuNS41IDAgMCAwIDEgMHYtMy44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50TnVtYmVyMTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE51bWJlcjExNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDNjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMi45MSAyLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjEzYTIgMiAwIDAgMS0yIDJINy45MWMuMDYtLjE2LjA5LS4zMi4wOS0uNVYxNGgzYTEgMSAwIDAgMCAxLTFWNkg5LjVBMS41IDEuNSAwIDAgMSA4IDQuNVYySDVhMSAxIDAgMCAwLTEgMXY2LjVjLS4zLS4yMi0uNjMtLjM4LTEtLjQ1VjNabTYuNSAyaDIuM0w5IDIuMnYyLjNjMCAuMjguMjIuNS41LjVabS0yLjcgNS4yYy4xLjEuMi4yNS4yLjQ1djMuODVhLjUuNSAwIDAgMS0xIDB2LTMuMDRjLS4yMi4xOC0uNDguMzUtLjguNWEuNS41IDAgMSAxLS40LS45MmMuNDYtLjIuNzctLjUyLjk3LS43OC4yMi0uMy41Ny0uMjcuNzItLjIyLjEuMDIuMjEuMDcuMzEuMTZaTTIuNSAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmExLjUgMS41IDAgMCAwIDMgMHYtMmMwLS44My0uNjctMS41LTEuNS0xLjVaTTIgMTEuNWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtMSAwdi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINVptNC41OSA0SDYuNWEuNS41IDAgMCAxLS4wOS0xSDkuNWEuNS41IDAgMCAxIC4wOSAxWk0xMCA4YS41LjUgMCAwIDEtLjQxLjVINi41YS41LjUgMCAwIDEtLjA5LTFIOS41Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNDhMOS41IDEyaC0zYS41LjUgMCAwIDEtLjA5LS45OUg5LjVjLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkuNTkgNWEuNS41IDAgMCAwLS4wOS0xSDYuNDFhLjUuNSAwIDAgMCAuMDkgMWgzLjA5Wk0xMCA4YS41LjUgMCAwIDEtLjQxLjVINi41YS41LjUgMCAwIDEtLjA5LTFIOS41Yy4yOCAwIC41LjIyLjUuNVptLS40MSAzLjk4QS41LjUgMCAwIDAgOS41IDExaC0zbC0uMDkuMDFhLjUuNSAwIDAgMCAuMDkgMWgzbC4wOS0uMDJaTTMgM2MwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYzWm04LTFINWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMVpNOS41OSA1YS41LjUgMCAwIDAtLjA5LTFINi40MWEuNS41IDAgMCAwIC4wOSAxaDMuMDlaTTEwIDhhLjUuNSAwIDAgMS0uNDEuNUg2LjVhLjUuNSAwIDAgMS0uMDktMUg5LjVjLjI4IDAgLjUuMjIuNS41Wm0tLjQxIDMuOThBLjUuNSAwIDAgMCA5LjUgMTFoLTNsLS4wOS4wMWEuNS41IDAgMCAwIC4wOSAxaDNsLjA5LS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZabTEuNSA0aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaTTcgMTMuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUtNGg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yWm0wIDFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINlptNyAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg1LjA5Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg1LjA5Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg1LjA5Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAyQzUuMDEgMiA0IDMgNCA0LjI1djE1LjVDNCAyMC45OSA1IDIyIDYuMjUgMjJoMTEuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY0LjI1QzIwIDMuMDEgMTkgMiAxNy43NSAySDYuMjVabTEuNSA0aDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVaTTcgMTYuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTcuNzUgMTFoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDJDNS4wMSAyIDQgMyA0IDQuMjV2MTUuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjQuMjVDMjAgMy4wMSAxOSAyIDE3Ljc1IDJINi4yNVpNNS41IDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMS41Yy40MSAwIC43NS4zNC43NS43NXYxNS41YzAgLjQxLS4zNC43NS0uNzUuNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY0LjI1Wk03Ljc1IDYuNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNWgtOC41Wk03IDE2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk03Ljc1IDExYS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VBZGQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VBZGQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUgMWEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMi4yNkE1LjUgNS41IDAgMCAxIDEzIDYuMlYzYTIgMiAwIDAgMC0yLTJINVptNC41OSA0SDYuNWEuNS41IDAgMCAxLS4wOS0xSDkuNWEuNS41IDAgMCAxIC4wOSAxWk0xNiAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjExSDkuNWEuNS41IDAgMCAwIDAgMUgxMXYxLjVhLjUuNSAwIDAgMCAxIDBWMTJoMS41YS41LjUgMCAwIDAgMC0xSDEyVjkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZUFkZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VBZGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDIuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg1YTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXYzLjAyYy4zNC4wMy42OC4xIDEgLjE5VjNhMiAyIDAgMCAwLTItMkg1Wm00LjU5IDRhLjUuNSAwIDAgMC0uMDktMUg2LjQxYS41LjUgMCAwIDAgLjA5IDFoMy4wOVpNMTYgMTEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxMUg5LjVhLjUuNSAwIDAgMCAwIDFIMTF2MS41YS41LjUgMCAwIDAgMSAwVjEyaDEuNWEuNS41IDAgMCAwIDAtMUgxMlY5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY1LjJhNS41IDUuNSAwIDAgMC00LjY2LjhINy41YS41LjUgMCAwIDAgMCAxaDIuNzZhNS41IDUuNSAwIDAgMCAwIDdINmEyIDIgMCAwIDEtMi0yVjRabTguNSAyaC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFabTIgMTNhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZUFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNCAySDZhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMlptLTEgNC41YS41LjUgMCAwIDEtLjQxLjVINy41YS41LjUgMCAwIDEtLjA5LTFoNS4wOWMuMjggMCAuNS4yMi41LjVaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTAtN2MuMjggMCAuNS4yMi41LjVWMTRoMS41YS41LjUgMCAwIDEgMCAxSDE1djEuNWEuNS41IDAgMCAxLTEgMFYxNWgtMS41YS41LjUgMCAwIDEgMC0xSDE0di0xLjVjMC0uMjguMjItLjUuNS0uNVptLTctMmgzLjg0Yy0uNC4yOC0uNzcuNjItMS4wOCAxSDcuNWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZUFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUFkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCA0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDExLjVDMTguOTkgMiAyMCAzIDIwIDQuMjV2Ny4yNWE2LjQ4IDYuNDggMCAwIDAtMy40NC0uNDMuNzUuNzUgMCAwIDAtLjMxLS4wN2gtOC41YS43NS43NSAwIDAgMCAwIDEuNWg1LjZhNi40OSA2LjQ5IDAgMCAwLS41NCA5LjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1Wk0xNi4yNSA2aC04LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlQWRkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNCA0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDExLjVDMTguOTkgMiAyMCAzIDIwIDQuMjV2Ny4yNWMtLjQ3LS4yLS45OC0uMzQtMS41LS40MlY0LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1SDYuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxNS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuNDhjLjI5LjU1LjY1IDEuMDYgMS4wOCAxLjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1Wk0xNi4yNSAxMWMuMTEgMCAuMjIuMDIuMzEuMDdhNi40NyA2LjQ3IDAgMCAwLTMuMjEgMS40M2gtNS42YS43NS43NSAwIDAgMSAwLTEuNWg4LjVabS04LjUtNC41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VCZWFrZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VCZWFrZXIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUgMWEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMy4yN2ExLjk4IDEuOTggMCAwIDEtLjA1LTEuOTJsLjU3LTEuMDlINi41YS41LjUgMCAwIDEtLjA5LS45OUg5LjNsLjU5LTEuMTNhMSAxIDAgMCAwIC4xLS40NlY4LjA1YS41LjUgMCAwIDEtLjQuNDRsLS4wOS4wMWgtM2EuNS41IDAgMCAxLS4wOS0xSDkuMzhBMS41IDEuNSAwIDAgMSAxMC41IDVIMTNWM2EyIDIgMCAwIDAtMi0ySDVabTUgNi45MXYuMDRhLjUuNSAwIDAgMCAwLS4wNFpNOS41OSA1IDkuNSA1aC0zYS41LjUgMCAwIDEtLjA5LTFIOS41YS41LjUgMCAwIDEgLjA5IDFabTQuNCA0LjQxYTIgMiAwIDAgMCAuMjMuOTJsLjM1LjY4aC00LjE0bC4zNC0uNjdhMiAyIDAgMCAwIC4yMy0uOTJWN2gtLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUgxNHYyLjRaTTkuOTIgMTJsLS44IDEuNTRBMSAxIDAgMCAwIDEwIDE1aDVhMSAxIDAgMCAwIC44OC0xLjQ2bC0uOC0xLjU0SDkuOTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VCZWFrZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlQmVha2VyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOS41OSA1YS41LjUgMCAwIDAtLjA5LTFINi40MWEuNS41IDAgMCAwIC4wOSAxaDMuMDlabTAgMy41YS41LjUgMCAwIDAgLjQtLjQ1di0uMWEuNS41IDAgMCAwIDAtLjA0IDEuNSAxLjUgMCAwIDEtLjYtLjQxSDYuNGEuNS41IDAgMCAwIC4wOSAxaDMuMDlaTTEyIDN2MmgxVjNhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgzLjI3QTIgMiAwIDAgMSA4IDE0SDVhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxWm0tNS41IDhoMi44bC0uNTEgMUg2LjVhLjUuNSAwIDAgMS0uMDktMWguMDlaTTE0IDkuNGEyIDIgMCAwIDAgLjIyLjkybC4zNS42OGgtNC4xNGwuMzQtLjY3YTIgMiAwIDAgMCAuMjMtLjkyVjdoLS41YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMSAwIDFIMTR2Mi40Wk05LjkgMTJsLS43OSAxLjU0QTEgMSAwIDAgMCAxMCAxNWg1YTEgMSAwIDAgMCAuODgtMS40NmwtLjgtMS41NEg5LjkyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlQ29sdW1uczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUNvbHVtbnMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm0zLjUgMWEuNS41IDAgMCAwLS41LjV2OWEuNS41IDAgMCAwIDEgMHYtOWEuNS41IDAgMCAwLS41LS41Wm01LjUuNWEuNS41IDAgMCAwLTEgMHY5YS41LjUgMCAwIDAgMSAwdi05WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlQ29sdW1uczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VDb2x1bW5zMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRabTItMWExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg2Wm0xLjUgMmMuMjggMCAuNS4yMi41LjV2OWEuNS41IDAgMCAxLTEgMHYtOWMwLS4yOC4yMi0uNS41LS41Wm01LjUuNWEuNS41IDAgMCAwLTEgMHY5YS41LjUgMCAwIDAgMSAwdi05WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlQ29sdW1uczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUNvbHVtbnMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmgxMS41QzE4Ljk5IDIgMjAgMyAyMCA0LjI1djE1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1Wk04Ljc1IDVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMi41YS43NS43NSAwIDAgMCAxLjUgMFY1Ljc1QS43NS43NSAwIDAgMCA4Ljc1IDVabTcuMjUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VDb2x1bW5zMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUNvbHVtbnMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoMTEuNUMxOC45OSAyIDIwIDMgMjAgNC4yNXYxNS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNVptMi4yNS0uNzVhLjc1Ljc1IDAgMCAwLS43NS43NXYxNS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDExLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NUg2LjI1Wm0zIDEuNWMuNDEgMCAuNzUuMzQuNzUuNzV2MTIuNWEuNzUuNzUgMCAwIDEtMS41IDBWNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm02LjI1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYxMi41YS43NS43NSAwIDAgMCAxLjUgMFY1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlTGluazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUxpbmsxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMgM2MwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY2LjVIOS41QTMgMyAwIDAgMCA3Ljg0IDE1SDVhMiAyIDAgMCAxLTItMlYzWm02LjU5IDJhLjUuNSAwIDAgMC0uMDktMUg2LjQxYS41LjUgMCAwIDAgLjA5IDFoMy4wOVpNMTAgOGEuNS41IDAgMCAwLS41LS41SDYuNDFhLjUuNSAwIDAgMCAuMDkgMWgzLjA5QS41LjUgMCAwIDAgMTAgOFptLTMgNC41QTIuNSAyLjUgMCAwIDEgOS41IDEwaC41YS41LjUgMCAwIDEgMCAxaC0uNWExLjUgMS41IDAgMCAwIDAgM2guNWEuNS41IDAgMCAxIDAgMWgtLjVBMi41IDIuNSAwIDAgMSA3IDEyLjVabTUuNS0yYzAtLjI4LjIyLS41LjUtLjVoLjVhMi41IDIuNSAwIDAgMSAwIDVIMTNhLjUuNSAwIDAgMSAwLTFoLjVhMS41IDEuNSAwIDAgMCAwLTNIMTNhLjUuNSAwIDAgMS0uNS0uNVptLTMuNSAyYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlTGluazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VMaW5rMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTEgMkg1YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWgxLjM0Yy4xNy4zNy40Mi43MS43MSAxSDVhMiAyIDAgMCAxLTItMlYzYzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjZoLTFWM2ExIDEgMCAwIDAtMS0xWm0tMS41IDhhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMyAuNWMwLS4yOC4yMi0uNS41LS41aC41YTIuNSAyLjUgMCAwIDEgMCA1SDEzYS41LjUgMCAwIDEgMC0xaC41YTEuNSAxLjUgMCAwIDAgMC0zSDEzYS41LjUgMCAwIDEtLjUtLjVabS0zIDEuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0uNS03LjVhLjUuNSAwIDAgMS0uNDEuNUg2LjVhLjUuNSAwIDAgMS0uMDktMUg5LjVjLjI4IDAgLjUuMjIuNS41Wm0tLjQxIDRhLjUuNSAwIDAgMC0uMDktMUg2LjQxYS41LjUgMCAwIDAgLjA5IDFoMy4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZUxpbmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VMaW5rMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDMuMDVhMy40OSAzLjQ5IDAgMCAxIDIuNDUtNmg0Yy4xNyAwIC4zNC4wMS41LjA0VjRhMiAyIDAgMCAwLTItMkg2Wm0xLjUgNGg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xWk05IDE1LjVhMi41IDIuNSAwIDAgMSAyLjUtMi41aC41YS41LjUgMCAwIDEgMCAxaC0uNWExLjUgMS41IDAgMCAwIDAgM2guNWEuNS41IDAgMCAxIDAgMWgtLjVBMi41IDIuNSAwIDAgMSA5IDE1LjVabTYtMi41YS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE1YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE1Wm0tMy41IDJhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptLTQtNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlTGluazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VMaW5rMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgzLjA1Yy0uMy0uMjktLjU0LS42My0uNzEtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY4aC41Yy4xNyAwIC4zNC4wMS41LjA0VjRhMiAyIDAgMCAwLTItMlptLTEuNDEgNWEuNS41IDAgMCAwLS4wOS0xSDcuNDFhLjUuNSAwIDAgMCAuMDkgMWg1LjA5Wk03LjUgMTBhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptNCAzYTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE1YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE1Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VMaW5rMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlTGluazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCA0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDExLjVDMTguOTkgMiAyMCAzIDIwIDQuMjV2OS41OGE0Ljc0IDQuNzQgMCAwIDAtMS43NS0uMzNoLTMuNWE0Ljc1IDQuNzUgMCAwIDAtMi45MiA4LjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1Wk0xNi4yNSA2aC04LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVabTAgNWgtOC41YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41Wk0yMiAxOC4yNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0uMWEuNzUuNzUgMCAwIDAgLjEgMS41aC4xNWEyLjI1IDIuMjUgMCAwIDEtLjE1IDQuNWwtLjEuMDFhLjc1Ljc1IDAgMCAwIC4xIDEuNVYyMmguMkEzLjc1IDMuNzUgMCAwIDAgMjIgMTguMjRabS02LjUtM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtLjJhMy43NSAzLjc1IDAgMCAwIC4yIDcuNWguMWEuNzUuNzUgMCAwIDAtLjEtMS41aC0uMTVhMi4yNSAyLjI1IDAgMCAxIC4xNS00LjVoLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVabTMuNSAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgzLjZhLjc1Ljc1IDAgMCAwIC42NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VMaW5rMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZUxpbmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoMTEuNUMxOC45OSAyIDIwIDMgMjAgNC4yNXY5LjU4Yy0uNDctLjE4LS45Ny0uMy0xLjUtLjMyVjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNC4zMmMuMzEuNTguNzQgMS4xIDEuMjYgMS41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNVpNNy43NSA2LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTguNVpNNyAxMS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMTUgNi41YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLS4xYS43NS43NSAwIDAgMCAuMSAxLjVoLjE1YTIuMjUgMi4yNSAwIDAgMS0uMTUgNC41bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41VjIyaC4yQTMuNzUgMy43NSAwIDAgMCAyMiAxOC4yNFptLTYuNS0zYS43NS43NSAwIDAgMC0uNzUtLjc1aC0uMmEzLjc1IDMuNzUgMCAwIDAgLjIgNy41aC4xYS43NS43NSAwIDAgMC0uMS0xLjVoLS4xNWEyLjI1IDIuMjUgMCAwIDEgLjE1LTQuNWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptMy41IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZU11bHRpcGxlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuNzEgMUMzLjc3IDEgMyAxLjc3IDMgMi43MXY4LjU4YzAgLjk0Ljc3IDEuNzEgMS43MSAxLjcxaDUuNThjLjk0IDAgMS43MS0uNzcgMS43MS0xLjcxVjIuN0MxMiAxLjc3IDExLjIzIDEgMTAuMjkgMUg0LjdabTQuNzkgOWEuNS41IDAgMCAxLS40MS41SDZhLjUuNSAwIDAgMS0uMDktLjk4TDYgOS41aDNjLjI4IDAgLjUuMjIuNS41Wm0tLjQxLTIuNUg2YS41LjUgMCAwIDEtLjA5LTFIOWEuNS41IDAgMCAxIC4wOSAxWk05LjUgNGEuNS41IDAgMCAxLS40MS40OEw5IDQuNUg2YS41LjUgMCAwIDEtLjA5LS45OUg5Yy4yOCAwIC41LjIyLjUuNVpNMTMgNWExIDEgMCAwIDEgMSAxdjUuMjFjMCAyLjEtMS43IDMuNzktMy43OSAzLjc5SDZhMSAxIDAgMCAxLTEtMWg1YTMgMyAwIDAgMCAzLTNWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZU11bHRpcGxlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZU11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOS4wOSAxMC41YS41LjUgMCAwIDAtLjA5LTFINmwtLjA5LjAyYS41LjUgMCAwIDAgLjA5Ljk5aDNsLjA5LS4wMVpNOS41IDdhLjUuNSAwIDAgMS0uNDEuNUg2YS41LjUgMCAwIDEtLjA5LTFIOWMuMjggMCAuNS4yMi41LjVabS0uNDEtMi41MkEuNS41IDAgMCAwIDkgMy41SDZsLS4wOS4wMWEuNS41IDAgMCAwIC4wOSAxaDNsLjA5LS4wMlpNNC43MSAxQzMuNzcgMSAzIDEuNzcgMyAyLjcxdjguNThjMCAuOTQuNzcgMS43MSAxLjcxIDEuNzFoNS41OGMuOTQgMCAxLjcxLS43NyAxLjcxLTEuNzFWMi43QzEyIDEuNzcgMTEuMjMgMSAxMC4yOSAxSDQuN1ptMCAxaDUuNThjLjM5IDAgLjcxLjMyLjcxLjcxdjguNThjMCAuNC0uMzIuNzEtLjcxLjcxSDQuN2EuNzEuNzEgMCAwIDEtLjcxLS43MVYyLjdjMC0uNC4zMi0uNzEuNzEtLjcxWk0xNCA2YTEgMSAwIDAgMC0xLTF2NmEzIDMgMCAwIDEtMyAzSDVhMSAxIDAgMCAwIDEgMWg0LjIxYzIuMSAwIDMuNzktMS43IDMuNzktMy43OVY2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC4wMSAzLjggNCA0djEwYzAgMS4xLjkgMiAyIDJoN2EyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0xLjk5IDEuOFpNMTIgNS41YS41LjUgMCAwIDEtLjQxLjVINy41YS41LjUgMCAwIDEtLjA5LTFoNC4wOWMuMjggMCAuNS4yMi41LjVaTTEyIDlhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVpNMTYgOGExIDEgMCAwIDEgMSAxdjUuMDZBMy45NCAzLjk0IDAgMCAxIDEzLjA2IDE4SDdhMSAxIDAgMCAxLTEtMWg3YTMgMyAwIDAgMCAzLTNWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZU11bHRpcGxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgNS41YS41LjUgMCAwIDEtLjQxLjVINy41YS41LjUgMCAwIDEtLjA5LTFoNC4wOWMuMjggMCAuNS4yMi41LjVaTTEyIDlhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVptMCAzLjVhLjUuNSAwIDAgMS0uNDEuNUg3LjVhLjUuNSAwIDAgMS0uMDktMWg0LjA5Yy4yOCAwIC41LjIyLjUuNVpNNiAyYTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZaTTUgMTRWMy44OUExIDEgMCAwIDEgNiAzaDdhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVptMTEtNmExIDEgMCAwIDEgMSAxdjUuMDZBMy45NCAzLjk0IDAgMCAxIDEzLjA2IDE4SDdhMSAxIDAgMCAxLTEtMWg3YTMgMyAwIDAgMCAzLTNWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZU11bHRpcGxlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgMkM1LjAxIDIgNCAzIDQgNC4yNXYxM2MwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg5YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di0xM2MwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtOVpNNyA2LjI1YzAtLjQxLjMzLS43NS43NS0uNzVoNmEuNzUuNzUgMCAwIDEgMCAxLjVoLTZBLjc1Ljc1IDAgMCAxIDcgNi4yNVptLjc1IDguMjVoNmEuNzUuNzUgMCAwIDEgMCAxLjVoLTZhLjc1Ljc1IDAgMCAxIDAtMS41Wk03IDEwLjc1YzAtLjQxLjMzLS43NS43NS0uNzVoNmEuNzUuNzUgMCAwIDEgMCAxLjVoLTZhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTguNzUgMjJjLS45OCAwLTEuODEtLjYzLTIuMTItMS41aDguNjJjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY4Ljk0bC44NC44NGMuNDIuNDIuNjYgMSAuNjYgMS41OXY1Ljg4QTQuNzUgNC43NSAwIDAgMSAxNS4yNSAyMmgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRPbmVQYWdlTXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03IDYuMjVjMC0uNDEuMzMtLjc1Ljc1LS43NWg2YS43NS43NSAwIDAgMSAwIDEuNWgtNkEuNzUuNzUgMCAwIDEgNyA2LjI1Wm0uNzUgOC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNmEuNzUuNzUgMCAwIDAgMC0xLjVoLTZaTTcgMTAuNzVjMC0uNDEuMzMtLjc1Ljc1LS43NWg2YS43NS43NSAwIDAgMSAwIDEuNWgtNmEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTMtNi41QzQgMy4wMSA1IDIgNi4yNSAyaDljMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2MTNjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTljLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di0xM1ptMS41LS4wOHYxMy4wOGMwIC40MS4zNC43NS43NS43NWg5Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtOWMtLjM5IDAtLjcuMy0uNzUuNjdaTTguNzUgMjJjLS45OCAwLTEuODEtLjYzLTIuMTItMS41aDguNjJjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY4Ljk0bC44NC44NGMuNDIuNDIuNjYgMSAuNjYgMS41OXY1Ljg4QTQuNzUgNC43NSAwIDAgMSAxNS4yNSAyMmgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlU3BhcmtsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZVNwYXJrbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTEwLjg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMiAyLjIgMCAwIDAtMS40LTEuNEw3LjI4IDMuOWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk01IDFoMy44bC0uMDIuMDRhMS4yIDEuMiAwIDAgMS0uMjkuNDdjLS4xMy4xMy0uMjkuMjQtLjQ1LjNsLTEuMDkuMzRBMS40MyAxLjQzIDAgMCAwIDYgMy41YTEuNDEgMS40MSAwIDAgMCAuOTcgMS4zNWwxLjA2LjM1Yy4xNS4wNS4zLjEzLjQ3LjI5LjExLjExLjIuMjQuMy40N2wuMzUgMS4xYy4wNi4xNS4xNC4zLjI3LjQ0SDYuNGEuNS41IDAgMCAwIC4wOSAxSDEwYzAgLjI3LjA4LjU0LjI0Ljc2LjE2LjIyLjM4LjM4LjY1LjQ4bC43Ny4yNWMuMDguMDMuMTYuMDguMjIuMTQuMDcuMDYuMS4xNC4xNC4yMmwuMjYuOGMuMS4yNS4yNi40Ni40OC42Mi4wNy4wNS4xNS4xLjI0LjEzVjEzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjNjMC0xLjEuOS0yIDItMlptNSAxMC41YS41LjUgMCAwIDAtLjUtLjVINi40MWEuNS41IDAgMCAwIC4wOSAxaDNsLjA5LS4wMmEuNS41IDAgMCAwIC40MS0uNDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VTcGFya2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZVNwYXJrbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm0xMC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMNy4yOCAzLjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTMgMTEuOTFhMS4zMiAxLjMyIDAgMCAxLS4yNC0uMTQgMS40IDEuNCAwIDAgMS0uNDgtLjYybC0uMjYtLjhhLjk4Ljk4IDAgMCAwLS4wMi0uMDRWMTNhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDIuNDNsLjYxLS4yYy4xNi0uMDUuMzItLjE2LjQ1LS4yOS4xMy0uMTMuMjMtLjI5LjMtLjQ3VjFINWEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0ydi0xLjFaTTkuNTkgOC40OGEuNS41IDAgMCAwLS4wOS0uOTlINi40MWEuNS41IDAgMCAwIC4wOSAxaDMuMDlabS40MSAzYS41LjUgMCAwIDEtLjQxLjVINi41YS41LjUgMCAwIDEtLjA5LS45OUg5LjVjLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlU3BhcmtsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZVNwYXJrbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk02IDJoNS40M2wtLjQ4LjE1QTEuNDMgMS40MyAwIDAgMCAxMCAzLjVhMS40MSAxLjQxIDAgMCAwIC45NyAxLjM1bDEuMDYuMzVjLjE1LjA1LjMuMTMuNDcuMjkuMTEuMTEuMi4yNC4zLjQ3bC4wNS4xOUEuNS41IDAgMCAwIDEyLjUgNmgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjUtLjQzbC4xNS40OGMuMS4yNS4yNS40OC41Mi43LjE0LjEuMy4xNi40NS4yYTEuMyAxLjMgMCAwIDAgLjc3IDEuNzlsLjc3LjI1Yy4wOC4wMy4xNi4wOC4yMi4xNC4wNS4wNS4xLjExLjEyLjE4VjE2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRjMC0xLjEuOS0yIDItMlptMSAxMS41YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41Wm01LjUtNGgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRPbmVQYWdlU3BhcmtsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VTcGFya2xlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTExLjQzIDJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi01LjdhLjQ4LjQ4IDAgMCAwLS4xMi0uMTcuNjQuNjQgMCAwIDAtLjIyLS4xNEwxNSA5Ljc3VjE2YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg0LjA5YTEuNDIgMS40MiAwIDAgMSAuODYtLjg1bC40OC0uMTVabTEuNDIgNC4xNUEuNS41IDAgMCAwIDEyLjUgNkg3LjQxYS41LjUgMCAwIDAgLjA5IDFoNS4wOWEuNS41IDAgMCAwIC4yNi0uODVabS0uMjYgNC4zNGEuNS41IDAgMCAwLS4wOS0uOTlINy40MWEuNS41IDAgMCAwIC4wOSAxaDUuMDlabTAgMy41YS41LjUgMCAwIDAtLjA5LS45OUg3LjQxYS41LjUgMCAwIDAgLjA5IDFoNS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50T25lUGFnZVNwYXJrbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudE9uZVBhZ2VTcGFya2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi4wOCA2LjYzYy0uMDctLjEtLjE1LS4xOS0uMjMtLjI3aC0uMDFhMi44NSAyLjg1IDAgMCAwLTEuMTEtLjY5bC0xLjM4LS40NWEuNTcuNTcgMCAwIDEtLjI2LS4yLjUuNSAwIDAgMS0uMS0uMzEuNS41IDAgMCAxIC4xLS4zMS41Mi41MiAwIDAgMSAuMjYtLjJsMS4zOC0uNDVhMi44MSAyLjgxIDAgMCAwIDEuNzctMS43NnYtLjAzbC40NS0xLjM4Yy4wNC0uMS4xMS0uMi4yLS4yNmEuNS41IDAgMCAxIC4zMS0uMWMuMTEgMCAuMjIuMDQuMzEuMS4wOS4wNi4xNi4xNS4yLjI2bC40NSAxLjM4YTIuODUgMi44NSAwIDAgMCAxLjggMS44bDEuMzguNDVoLjAzYy4xLjA0LjE5LjExLjI2LjIuMDcuMDkuMS4yLjEuMzFhLjUuNSAwIDAgMS0uMS4zMS41Mi41MiAwIDAgMS0uMjYuMmwtMS4zOC40NWEyLjg1IDIuODUgMCAwIDAtMS44IDEuOGwtLjQ2IDEuMzh2LjAzYS42LjYgMCAwIDEtLjE5LjIzLjUuNSAwIDAgMS0uMzEuMS41LjUgMCAwIDEtLjMxLS4xLjUyLjUyIDAgMCAxLS4yLS4yNmwtLjQ1LTEuMzhjLS4xLS4zMS0uMjUtLjYtLjQ1LS44NVptNy43IDMuOC0uNzctLjI0YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMzLjMzIDAgMCAwLS4xMS0uMTUuMjcuMjcgMCAwIDAtLjM0IDAgLjMzLjMzIDAgMCAwLS4xMS4xNWwtLjI1Ljc2Yy0uMDcuMjMtLjIuNDQtLjM3LjYxLS4xNy4xNy0uMzguMy0uNjEuMzhsLS43Ny4yNWEuMzMuMzMgMCAwIDAtLjE1LjExLjI3LjI3IDAgMCAwIDAgLjM0Yy4wNC4wNS4wOS4wOS4xNS4xMWwuNzcuMjVhMS41MyAxLjUzIDAgMCAxIDEgMWwuMjUuNzZjLjAyLjA2LjA2LjExLjExLjE1YS4yNy4yNyAwIDAgMCAuMzQgMCAuMzMuMzMgMCAwIDAgLjExLS4xNWwuMjUtLjc2YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNWEuMzMuMzMgMCAwIDAgLjE1LS4xMS4yNi4yNiAwIDAgMCAuMDUtLjE3LjI2LjI2IDAgMCAwLS4wNS0uMTdjLS4wNC0uMDUtLjEtLjA4LS4xNy0uMTFabS00LjI0IDIuMjguMjYuOGMuMDUuMTQuMTIuMjUuMi4zN3Y2LjA4YTIuMjUgMi4yNSAwIDAgMS0yLjI1IDIuMjVINi4yNUEyLjI1IDIuMjUgMCAwIDEgNCAxOS45NlY0LjQ2YTIuMjUgMi4yNSAwIDAgMSAyLjI1LTIuMjVoOC4yNmwtLjIyLjExLTEuNDIuNDZhMi4wNiAyLjA2IDAgMCAwLTEgMy4xMWMuMDguMTEuMTguMi4yNy4yOWwuMDUuMDRINy43NWEuNzYuNzYgMCAwIDAtLjc1Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDcuMjRsLjAzLjA2Yy4wNC4wNS4wNy4xLjA5LjE2bC40NiAxLjQxYTIuMDQgMi4wNCAwIDAgMCAxLjkzIDEuMzYgMS43OCAxLjc4IDAgMCAwIDEuMjQgMS43MWwuOC4yOVptLTExLjc5IDVoOC41Yy40MSAwIC43NS0uMzQuNzUtLjc1YS43Ni43NiAwIDAgMC0uNzUtLjc1aC04LjVhLjc2Ljc2IDAgMCAwLS43NS43NWMwIC40MS4zNC43NS43NS43NVptMC01aDguNWMuNDEgMCAuNzUtLjM0Ljc1LS43NWEuNzYuNzYgMCAwIDAtLjc1LS43NWgtOC41YS43Ni43NiAwIDAgMC0uNzUuNzVjMCAuNDEuMzQuNzUuNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudE9uZVBhZ2VTcGFya2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50T25lUGFnZVNwYXJrbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi4yNSAxMWgtOC41YS43Ni43NiAwIDAgMC0uNzUuNzVjMCAuNDEuMzQuNzUuNzUuNzVoOC41Yy40MSAwIC43NS0uMzQuNzUtLjc1YS43Ni43NiAwIDAgMC0uNzUtLjc1Wm0wIDQuNWgtOC41YS43Ni43NiAwIDAgMC0uNzUuNzVjMCAuNDEuMzQuNzUuNzUuNzVoOC41Yy40MSAwIC43NS0uMzQuNzUtLjc1YS43Ni43NiAwIDAgMC0uNzUtLjc1Wk03IDcuMjVjMCAuNDEuMzQuNzUuNzUuNzVoNy40NWwtLjA5LS4yOGExLjQ3IDEuNDcgMCAwIDAtLjIxLS4zOWwtLjExLS4xM2ExLjMgMS4zIDAgMCAwLS41Mi0uMzJMMTMuMSA2LjVINy43NWEuNzYuNzYgMCAwIDAtLjc1Ljc1Wm0xMi44IDYuMDQtLjI2LS43OS0uOC0uMjljLS4wOS0uMDMtLjE2LS4wOC0uMjQtLjEydjcuNjZjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1YS43Ni43NiAwIDAgMS0uNzUtLjc1VjQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjUzYy4wMy0uMDYuMDUtLjEzLjA5LS4xOWEyIDIgMCAwIDEgLjk5LS43NGwxLjQxLS40Ni4yMi0uMTFINi4yNUEyLjI1IDIuMjUgMCAwIDAgNCA0LjI1djE1LjVBMi4yNSAyLjI1IDAgMCAwIDYuMjUgMjJoMTEuNUEyLjI1IDIuMjUgMCAwIDAgMjAgMTkuNzV2LTYuMDhhMS43MiAxLjcyIDAgMCAxLS4yLS4zOFptLTMuOTUtNy4xNGEyLjY3IDIuNjcgMCAwIDEgLjY4IDEuMTJsLjQ1IDEuMzhjLjA0LjExLjExLjIuMi4yNi4wOS4wNy4yLjEuMzEuMWEuNS41IDAgMCAwIC4zMS0uMS42LjYgMCAwIDAgLjE5LS4yM3YtLjAzbC40Ni0xLjM4YTIuODUgMi44NSAwIDAgMSAxLjgtMS44bDEuMzgtLjQ1Yy4xMS0uMDQuMi0uMTEuMjYtLjJhLjUuNSAwIDAgMCAuMS0uMzEuNS41IDAgMCAwLS4xLS4zMS42My42MyAwIDAgMC0uMjYtLjJoLS4wM2wtMS4zOC0uNDVhMi44NSAyLjg1IDAgMCAxLTEuOC0xLjhMMTcuOTcuMzdhLjUyLjUyIDAgMCAwLS4yLS4yNi41Ny41NyAwIDAgMC0uMzEtLjEuNS41IDAgMCAwLS4zMS4xLjU3LjU3IDAgMCAwLS4yLjI2bC0uNDUgMS4zOHYuMDNhMi44MSAyLjgxIDAgMCAxLTEuNzcgMS43NmwtMS4zOC40NWEuNTIuNTIgMCAwIDAtLjI2LjIuNS41IDAgMCAwLS4xLjMxYzAgLjExLjAzLjIyLjEuMzEuMDYuMDkuMTYuMTYuMjYuMmwxLjM4LjQ1Yy40Mi4xNC44LjM4IDEuMTEuNjloLjAxWm03LjkzIDQuMDdjLjA2IDAgLjEzLjA2LjE3LjExLjA0LjA1LjA1LjExLjA1LjE3IDAgLjA2LS4wMS4xMi0uMDUuMTdhLjMzLjMzIDAgMCAxLS4xNS4xMWwtLjc3LjI1YTEuNTggMS41OCAwIDAgMC0xIDFsLS4yNS43NmEuMzMuMzMgMCAwIDEtLjExLjE1LjI3LjI3IDAgMCAxLS4zNCAwIC4zMy4zMyAwIDAgMS0uMTEtLjE1bC0uMjUtLjc2YTEuNTMgMS41MyAwIDAgMC0xLTFsLS43Ny0uMjVhLjMzLjMzIDAgMCAxLS4xNS0uMTEuMjcuMjcgMCAwIDEgMC0uMzQuMzMuMzMgMCAwIDEgLjE1LS4xMWwuNzctLjI1Yy4yMy0uMDguNDQtLjIxLjYxLS4zOC4xNy0uMTcuMy0uMzguMzctLjYxbC4yNS0uNzZhLjMzLjMzIDAgMCAxIC4xMS0uMTUuMjcuMjcgMCAwIDEgLjM0IDBjLjA1LjA0LjA5LjA5LjExLjE1bC4yNS43NmExLjU4IDEuNTggMCAwIDAgMSAxbC43Ny4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbUNlbnRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJvdHRvbUNlbnRlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTAuNzUgMTMuNS0uMjIgMS41SDkuM2wuMjItMS41aDEuMjRaTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEzYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVptMi41NyAxNC40NC4wNy0uNDRINy41YS41LjUgMCAwIDEgMC0xaC43OGwuMjItMS41SDhhLjUuNSAwIDAgMSAwLTFoLjY1bC4xNi0xLjA3YS41LjUgMCAwIDEgLjk5LjE0bC0uMTQuOTNoMS4yNGwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaC41OWEuNS41IDAgMCAxIDAgMWgtLjc0bC0uMjIgMS41SDEyYS41LjUgMCAwIDEgMCAxaC0uNmwtLjA5LjU5YS41LjUgMCAwIDEtLjk5LS4xNWwuMDctLjQ0SDkuMTVsLS4wOS41OWEuNS41IDAgMCAxLS45OS0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCb3R0b21DZW50ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlQm90dG9tQ2VudGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtOC4wNyAxNS40NC4wNy0uNDRINy41YS41LjUgMCAxIDEgMC0xaC43OGwuMjItMS41SDhhLjUuNSAwIDEgMSAwLTFoLjY1bC4xNi0xLjA3YS41LjUgMCAwIDEgLjk5LjE0bC0uMTQuOTNoMS4yNGwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaC41OWEuNS41IDAgMCAxIDAgMWgtLjc0bC0uMjIgMS41SDEyYS41LjUgMCAwIDEgMCAxaC0uNmwtLjA5LjU5YS41LjUgMCAxIDEtLjk5LS4xNWwuMDctLjQ0SDkuMTVsLS4wOS41OWEuNS41IDAgMSAxLS45OS0uMTVabTIuNjgtMi45NEg5LjUxTDkuMyAxNGgxLjI0bC4yMi0xLjVaTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2Wm0wIDFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbUNlbnRlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJvdHRvbUNlbnRlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTEuMjYgMTYuODguMjMtMS41aDEuNDhsLS4yMyAxLjVoLTEuNDhaTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNWMwIDEuMTktLjkzIDIuMTYtMi4xIDIuMjRINi4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjA5TDQgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk0xMi40IDE5LjA0YS43NS43NSAwIDEgMCAxLjQ4LjI0bC4xNC0uOWguNzNhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWwuMjQtMS41aC43NmEuNzUuNzUgMCAwIDAgMC0xLjVoLS41MmwuMTYtMS4wMmEuNzUuNzUgMCAxIDAtMS40OC0uMjRsLS4yIDEuMjZoLTEuNDhsLjE2LTEuMDJhLjc1Ljc1IDAgMSAwLTEuNDgtLjI0bC0uMiAxLjI2aC0uOTZhLjc1Ljc1IDAgMCAwIDAgMS41aC43M2wtLjI0IDEuNWgtLjk5YS43NS43NSAwIDAgMCAwIDEuNWguNzVsLS4xLjY2YS43NS43NSAwIDAgMCAxLjQ4LjI0bC4xNC0uOWgxLjQ4bC0uMS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbUNlbnRlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21DZW50ZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy43NCAyYzEuMiAwIDIuMTcuOTIgMi4yNSAyLjF2MTUuNjVjMCAxLjE4LS45MiAyLjE2LTIuMSAyLjI0SDYuMjVjLTEuMTkgMC0yLjE2LS45Mi0yLjI0LTIuMVY0LjI1QzQgMy4wNyA0LjkxIDIuMDkgNi4wOCAyaDExLjY1Wm0wIDEuNUg2LjI0Yy0uMzggMC0uNjkuMjgtLjc0LjY0djE1LjZjMCAuMzguMjguNy42NC43NWgxMS42Yy4zOCAwIC43LS4yOC43NS0uNjRWNC4yNWMwLS4zOC0uMjgtLjctLjY0LS43NWgtLjFabS00LjcyIDE2LjRhLjc1Ljc1IDAgMCAxLS42My0uODZsLjEtLjY2aC0xLjQ3bC0uMTQuOWEuNzUuNzUgMCAwIDEtMS40OS0uMjRsLjEtLjY2aC0uNzRhLjc1Ljc1IDAgMCAxIDAtMS41aC45OWwuMjMtMS41aC0uNzJhLjc1Ljc1IDAgMCAxIDAtMS41aC45NmwuMi0xLjI2YS43NS43NSAwIDEgMSAxLjQ4LjI0bC0uMTYgMS4wMmgxLjQ4bC4yLTEuMjZhLjc1Ljc1IDAgMSAxIDEuNDguMjRsLS4xNiAxLjAyaC41MmEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NmwtLjIzIDEuNWguNDlhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzNsLS4xNC45YS43NS43NSAwIDAgMS0uODYuNjJabS0xLjUzLTQuNTItLjIzIDEuNWgxLjQ4bC4yMy0xLjVIMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbUxlZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21MZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIm03LjI1IDE0LjUuMjItMS41SDguN2wtLjIyIDEuNUg3LjI1Wk0xNC41IDE4Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOVptLTQuNTctNi40NC0uMDcuNDRoLjY0YS41LjUgMCAwIDEgMCAxaC0uNzhsLS4yMiAxLjVoLjVhLjUuNSAwIDAgMSAwIDFoLS42NWwtLjE2IDEuMDdhLjUuNSAwIDAgMS0uOTktLjE0bC4xNC0uOTNINy4xbC0uMTYgMS4wN2EuNS41IDAgMCAxLS45OS0uMTRsLjE0LS45M0g1LjVhLjUuNSAwIDAgMSAwLTFoLjc0bC4yMi0xLjVINmEuNS41IDAgMCAxIDAtMWguNmwuMDktLjU5YS41LjUgMCAwIDEgLjk5LjE1TDcuNiAxMmgxLjI0bC4wOS0uNTlhLjUuNSAwIDAgMSAuOTkuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCb3R0b21MZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJvdHRvbUxlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC45MyAxMC41NmEuNS41IDAgMSAwLTEtLjE1bC0uMDguNTlIOC42MWwuMDctLjQ0YS41LjUgMCAxIDAtMS0uMTVMNy42IDExSDdhLjUuNSAwIDEgMCAwIDFoLjQ2bC0uMjIgMS41SDYuNWEuNS41IDAgMSAwIDAgMWguNTlsLS4xNC45M2EuNS41IDAgMSAwIDEgLjE0bC4xNS0xLjA3aDEuMjRsLS4xNC45M2EuNS41IDAgMCAwIDEgLjE0bC4xNS0xLjA3SDExYS41LjUgMCAwIDAgMC0xaC0uNWwuMjItMS41aC43OGEuNS41IDAgMCAwIDAtMWgtLjY0bC4wNy0uNDRaTTguMjUgMTMuNWwuMjItMS41SDkuN2wtLjIyIDEuNUg4LjI1Wk0xNCAxOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4Wm0wLTFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbUxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21MZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIm05LjI2IDE2Ljg4LjIzLTEuNWgxLjQ4bC0uMjMgMS41SDkuMjZaTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNWMwIDEuMTktLjkzIDIuMTYtMi4xIDIuMjRINi4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjA5TDQgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk0xMC40IDE5LjA0YS43NS43NSAwIDEgMCAxLjQ4LjI0bC4xNC0uOWguNzNhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWwuMjQtMS41aC43NmEuNzUuNzUgMCAwIDAgMC0xLjVoLS41MmwuMTYtMS4wMmEuNzUuNzUgMCAxIDAtMS40OC0uMjRsLS4yIDEuMjZIOS43M2wuMTYtMS4wMmEuNzUuNzUgMCAwIDAtMS40OC0uMjRsLS4yIDEuMjZoLS45NmEuNzUuNzUgMCAwIDAgMCAxLjVoLjczbC0uMjQgMS41aC0uOTlhLjc1Ljc1IDAgMCAwIDAgMS41aC43NWwtLjEuNjZhLjc1Ljc1IDAgMCAwIDEuNDguMjRsLjE0LS45aDEuNDhsLS4xLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlQm90dG9tTGVmdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21MZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNzQgMmMxLjIgMCAyLjE3LjkyIDIuMjUgMi4xdjE1LjY1YzAgMS4xOC0uOTIgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjE5IDAtMi4xNi0uOTItMi4yNC0yLjFWNC4yNUM0IDMuMDcgNC45MSAyLjA5IDYuMDggMmgxMS42NVptMCAxLjVINi4yNGMtLjM4IDAtLjY5LjI4LS43NC42NHYxNS42YzAgLjM4LjI4LjcuNjQuNzVoMTEuNmMuMzggMCAuNy0uMjguNzUtLjY0VjQuMjVjMC0uMzgtLjI4LS43LS42NC0uNzVoLS4xWm0tNi43MiAxNi40YS43NS43NSAwIDAgMS0uNjMtLjg2bC4xLS42Nkg5LjAzbC0uMTQuOWEuNzUuNzUgMCAwIDEtMS40OS0uMjRsLjEtLjY2aC0uNzRhLjc1Ljc1IDAgMSAxIDAtMS41aC45OWwuMjMtMS41aC0uNzJhLjc1Ljc1IDAgMSAxIDAtMS41aC45NmwuMi0xLjI2YS43NS43NSAwIDEgMSAxLjQ4LjI0bC0uMTYgMS4wMmgxLjQ4bC4yLTEuMjZhLjc1Ljc1IDAgMSAxIDEuNDguMjRsLS4xNiAxLjAyaC41MmEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NmwtLjIzIDEuNWguNDlhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzNsLS4xNC45YS43NS43NSAwIDAgMS0uODYuNjJabS0xLjUzLTQuNTItLjIzIDEuNWgxLjQ4bC4yMy0xLjVIOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlQm90dG9tUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21SaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTEuMjUgMTQuNS4yMi0xLjVoMS4yNGwtLjIyIDEuNWgtMS4yNFpNMTQuNSAxOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEzYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDlabS0uNTctNi40NC0uMDcuNDRoLjY0YS41LjUgMCAxIDEgMCAxaC0uNzhsLS4yMiAxLjVoLjVhLjUuNSAwIDEgMSAwIDFoLS42NWwtLjE2IDEuMDdhLjUuNSAwIDAgMS0uOTktLjE0bC4xNC0uOTNIMTEuMWwtLjE2IDEuMDdhLjUuNSAwIDAgMS0uOTktLjE0bC4xNC0uOTNIOS41YS41LjUgMCAwIDEgMC0xaC43NGwuMjItMS41SDEwYS41LjUgMCAwIDEgMC0xaC42bC4wOS0uNTlhLjUuNSAwIDEgMSAuOTkuMTVsLS4wNy40NGgxLjI0bC4wOS0uNTlhLjUuNSAwIDEgMSAuOTkuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCb3R0b21SaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21SaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyLjkzIDEwLjU2YS41LjUgMCAxIDAtMS0uMTVsLS4wOC41OWgtMS4yNGwuMDctLjQ0YS41LjUgMCAxIDAtMS0uMTVMOS42IDExSDlhLjUuNSAwIDAgMCAwIDFoLjQ2bC0uMjIgMS41SDguNWEuNS41IDAgMCAwIDAgMWguNTlsLS4xNC45M2EuNS41IDAgMCAwIDEgLjE0bC4xNS0xLjA3aDEuMjRsLS4xNC45M2EuNS41IDAgMCAwIDEgLjE0bC4xNS0xLjA3SDEzYS41LjUgMCAwIDAgMC0xaC0uNWwuMjItMS41aC43OGEuNS41IDAgMCAwIDAtMWgtLjY0bC4wNy0uNDRabS0yLjY4IDIuOTQuMjItMS41aDEuMjRsLS4yMiAxLjVoLTEuMjRaTTE0IDE4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhabTAtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlQm90dG9tUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCb3R0b21SaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTMuMjYgMTYuODguMjMtMS41aDEuNDhsLS4yMyAxLjVoLTEuNDhaTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNWMwIDEuMTktLjkzIDIuMTYtMi4xIDIuMjRINi4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjA5TDQgMTkuNzVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk0xNC40IDE5LjA0YS43NS43NSAwIDEgMCAxLjQ4LjI0bC4xNC0uOWguNzNhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWwuMjQtMS41aC43NmEuNzUuNzUgMCAwIDAgMC0xLjVoLS41MmwuMTYtMS4wMmEuNzUuNzUgMCAxIDAtMS40OC0uMjRsLS4yIDEuMjZoLTEuNDhsLjE2LTEuMDJhLjc1Ljc1IDAgMSAwLTEuNDgtLjI0bC0uMiAxLjI2aC0uOTZhLjc1Ljc1IDAgMCAwIDAgMS41aC43MmwtLjIzIDEuNWgtLjk5YS43NS43NSAwIDAgMCAwIDEuNWguNzVsLS4xLjY2YS43NS43NSAwIDEgMCAxLjQ4LjI0bC4xNC0uOWgxLjQ4bC0uMS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJvdHRvbVJpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJvdHRvbVJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNzQgMmMxLjIgMCAyLjE3LjkyIDIuMjUgMi4xdjE1LjY1YzAgMS4xOC0uOTIgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjE5IDAtMi4xNi0uOTItMi4yNC0yLjFWNC4yNUM0IDMuMDcgNC45MSAyLjA5IDYuMDggMmgxMS42NVptMCAxLjVINi4yNGMtLjM4IDAtLjY5LjI4LS43NC42NHYxNS42YzAgLjM4LjI4LjcuNjQuNzVoMTEuNmMuMzggMCAuNy0uMjguNzUtLjY0VjQuMjVjMC0uMzgtLjI4LS43LS42NC0uNzVoLS4xWm0tMi43MiAxNi40YS43NS43NSAwIDAgMS0uNjMtLjg2bC4xLS42NmgtMS40N2wtLjE0LjlhLjc1Ljc1IDAgMCAxLTEuNDktLjI0bC4xLS42NmgtLjc0YS43NS43NSAwIDEgMSAwLTEuNWguOTlsLjIzLTEuNWgtLjcyYS43NS43NSAwIDEgMSAwLTEuNWguOTZsLjItMS4yNmEuNzUuNzUgMCAxIDEgMS40OC4yNGwtLjE2IDEuMDJoMS40OGwuMi0xLjI2YS43NS43NSAwIDEgMSAxLjQ4LjI0bC0uMTYgMS4wMmguNTJhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzZsLS4yMyAxLjVoLjQ5YS43NS43NSAwIDAgMSAwIDEuNWgtLjczbC0uMTQuOWEuNzUuNzUgMCAwIDEtLjg2LjYyWm0tMS41My00LjUyLS4yMyAxLjVoMS40OGwuMjMtMS41SDEzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCcmVhazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJyZWFrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiA2VjIuNWEuNS41IDAgMCAwLS41LS41aC0xMWEuNS41IDAgMCAwLS41LjVWNmMwIC44My42NyAxLjUgMS40OSAxLjVoOS4wMWMuODIgMCAxLjUtLjY3IDEuNS0xLjVaTTMgOS41YS41LjUgMCAwIDAgMCAxaDEuMmEuNS41IDAgMCAwIDAtMUgzWm0zLjIgMGEuNS41IDAgMCAwIDAgMWgxLjJhLjUuNSAwIDAgMCAwLTFINi4yWm0yLjcuNWMwLS4yOC4yMi0uNS41LS41aDEuMmEuNS41IDAgMCAxIDAgMUg5LjRhLjUuNSAwIDAgMS0uNS0uNVptMy43LS41YS41LjUgMCAwIDAgMCAxaDEuMmEuNS41IDAgMCAwIDAtMWgtMS4yWm0yLjcuNWMwLS4yOC4yMi0uNS41LS41SDE3YS41LjUgMCAwIDEgMCAxaC0xLjJhLjUuNSAwIDAgMS0uNS0uNVptLjcgNy41VjE0YzAtLjgzLS42OC0xLjUtMS41LTEuNUg1LjQ5QTEuNSAxLjUgMCAwIDAgNCAxNHYzLjVjMCAuMjguMjIuNS41LjVoMTFhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZUJyZWFrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZUJyZWFrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYgMi41VjZjMCAuODMtLjY4IDEuNS0xLjUgMS41SDUuNDlBMS41IDEuNSAwIDAgMSA0IDZWMi41YS41LjUgMCAxIDEgMSAwVjZjMCAuMjguMjEuNS40OS41aDkuMDFBLjUuNSAwIDAgMCAxNSA2VjIuNWMwLS4yOC4yMy0uNS41LS41cy41LjIyLjUuNVptLTEzIDdhLjUuNSAwIDAgMCAwIDFoMS4yYS41LjUgMCAwIDAgMC0xSDNabTMuMiAwYS41LjUgMCAwIDAgMCAxaDEuMmEuNS41IDAgMCAwIDAtMUg2LjJabTIuNy41YzAtLjI4LjIyLS41LjUtLjVoMS4yYS41LjUgMCAwIDEgMCAxSDkuNGEuNS41IDAgMCAxLS41LS41Wm0zLjctLjVhLjUuNSAwIDAgMCAwIDFoMS4yYS41LjUgMCAwIDAgMC0xaC0xLjJabTIuNy41YzAtLjI4LjIyLS41LjUtLjVIMTdhLjUuNSAwIDAgMSAwIDFoLTEuMmEuNS41IDAgMCAxLS41LS41Wm0uNyA0djMuNWEuNS41IDAgMCAxLS41LjUuNS41IDAgMCAxLS41LS41VjE0YS41LjUgMCAwIDAtLjUtLjVINS40OWEuNS41IDAgMCAwLS41LjV2My41YS41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDEtLjQ5LS41VjE0YzAtLjgzLjY3LTEuNSAxLjQ5LTEuNWg5LjAxYy44MiAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlQnJlYWsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCcmVhazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMi41IDEyYzAtLjQxLjM0LS43NS43NS0uNzVoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41QS43NS43NSAwIDAgMSAyLjUgMTJabTQgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNUEuNzUuNzUgMCAwIDEgNi41IDEyWm00IDBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTQgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNCAwYzAtLjQxLjM0LS43NS43NS0uNzVoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk01IDJhMSAxIDAgMCAwLTEgMXY0YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlYzYTEgMSAwIDAgMC0xLTFINVptMTQgMjBhMSAxIDAgMCAwIDEtMXYtNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMCAxIDFoMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VCcmVhazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VCcmVhazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIuNSAxMmMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNUEuNzUuNzUgMCAwIDEgMi41IDEyWm00IDBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVBLjc1Ljc1IDAgMCAxIDYuNSAxMlptNCAwYzAtLjQxLjM0LS43NS43NS0uNzVoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm00IDBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTQgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNC43NSAyYS43NS43NSAwIDAgMC0uNzUuNzVWN2MwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMi43NWEuNzUuNzUgMCAwIDAtMS41IDBWN2EuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxLS41LS41VjIuNzVBLjc1Ljc1IDAgMCAwIDQuNzUgMlptMTQuNSAyMGMuNDEgMCAuNzUtLjM0Ljc1LS43NVYxN2EyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0LjI1YS43NS43NSAwIDAgMCAxLjUgMFYxN2MwLS4yNy4yMi0uNS41LS41aDEyYy4yOCAwIC41LjIzLjUuNXY0LjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlTnVtYmVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlTnVtYmVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xMC43NSA5LjUtLjIyIDEuNUg5LjNsLjIyLTEuNWgxLjI0Wk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabTIuNTcgMTAuNDQuMDctLjQ0SDcuNWEuNS41IDAgMSAxIDAtMWguNzhsLjIyLTEuNUg4YS41LjUgMCAwIDEgMC0xaC42NWwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaDEuMjRsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NGwtLjIyIDEuNUgxMmEuNS41IDAgMCAxIDAgMWgtLjZsLS4wOS41OWEuNS41IDAgMSAxLS45OS0uMTVsLjA3LS40NEg5LjE1bC0uMDkuNTlhLjUuNSAwIDEgMS0uOTktLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlTnVtYmVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZU51bWJlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguMDcgMTIuNDRhLjUuNSAwIDEgMCAxIC4xNWwuMDgtLjU5aDEuMjRsLS4wNy40NGEuNS41IDAgMSAwIDEgLjE1bC4wOC0uNTloLjZhLjUuNSAwIDAgMCAwLTFoLS40NmwuMjItMS41aC43NGEuNS41IDAgMCAwIDAtMWgtLjU5bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEwxMC45IDguNUg5LjY2bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEw4LjY2IDguNUg4YS41LjUgMCAwIDAgMCAxaC41TDguMjggMTFINy41YS41LjUgMCAxIDAgMCAxaC42NGwtLjA3LjQ0Wm0yLjY4LTIuOTQtLjIyIDEuNUg5LjNsLjIyLTEuNWgxLjI0Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VOdW1iZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VOdW1iZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTExLjI2IDEzIC4yMy0xLjVoMS40OGwtLjIzIDEuNWgtMS40OFptNi40OS0xMWMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXYxNS41YzAgMS4xOS0uOTMgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMDlMNCAxOS43NVY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNi4yNSAyaDExLjVaTTEyLjQgMTUuMTZhLjc1Ljc1IDAgMSAwIDEuNDguMjNsLjE0LS45aC43M2EuNzUuNzUgMCAwIDAgMC0xLjVoLS41bC4yNC0xLjVoLjc2YS43NS43NSAwIDAgMCAwLTEuNWgtLjUybC4xNi0xLjAyYS43NS43NSAwIDEgMC0xLjQ4LS4yM2wtLjIgMS4yNmgtMS40OGwuMTYtMS4wM2EuNzUuNzUgMCAxIDAtMS40OC0uMjNsLS4yIDEuMjZoLS45NmEuNzUuNzUgMCAwIDAgMCAxLjVoLjczTDkuNzQgMTNoLS45OWEuNzUuNzUgMCAwIDAgMCAxLjVoLjc1bC0uMS42NmEuNzUuNzUgMCAwIDAgMS40OC4yM2wuMTQtLjloMS40OGwtLjEuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VOdW1iZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlTnVtYmVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNzQgMmMxLjIgMCAyLjE3LjkyIDIuMjUgMi4xdjE1LjY1YzAgMS4xOC0uOTIgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjE5IDAtMi4xNi0uOTItMi4yNC0yLjFWNC4yNUM0IDMuMDcgNC45MSAyLjA5IDYuMDggMmgxMS42NVptMCAxLjVINi4yNGMtLjM4IDAtLjY5LjI4LS43NC42NHYxNS42YzAgLjM4LjI4LjcuNjQuNzVoMTEuNmMuMzggMCAuNy0uMjguNzUtLjY0VjQuMjVjMC0uMzgtLjI4LS43LS42NC0uNzVoLS4xWm0tNC43MiAxMi41MmEuNzUuNzUgMCAwIDEtLjYzLS44NmwuMS0uNjZoLTEuNDdsLS4xNC45YS43NS43NSAwIDEgMS0xLjQ5LS4yNGwuMS0uNjZoLS43NGEuNzUuNzUgMCAwIDEgMC0xLjVoLjk5bC4yMy0xLjVoLS43MmEuNzUuNzUgMCAwIDEgMC0xLjVoLjk2bC4yLTEuMjZhLjc1Ljc1IDAgMCAxIDEuNDguMjRMMTEuNzMgMTBoMS40OGwuMi0xLjI2YS43NS43NSAwIDAgMSAxLjQ4LjI0TDE0LjczIDEwaC41MmEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NmwtLjIzIDEuNWguNDlhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzNsLS4xNC45YS43NS43NSAwIDAgMS0uODYuNjJabS0xLjUzLTQuNTItLjIzIDEuNWgxLjQ4bC4yMy0xLjVIMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZVRvcENlbnRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZVRvcENlbnRlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNzUgNS41IDEwLjUzIDdIOS4zbC4yMi0xLjVoMS4yNFpNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Wm0yLjU3IDYuNDRMOC4xNCA4SDcuNWEuNS41IDAgMSAxIDAtMWguNzhsLjIyLTEuNUg4YS41LjUgMCAxIDEgMC0xaC42NWwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaDEuMjRsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NEwxMS41NCA3SDEyYS41LjUgMCAwIDEgMCAxaC0uNmwtLjA5LjU5YS41LjUgMCAwIDEtLjk5LS4xNUwxMC40IDhIOS4xNWwtLjA5LjU5YS41LjUgMCAwIDEtLjk5LS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZVRvcENlbnRlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BDZW50ZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjA3IDkuNDRhLjUuNSAwIDEgMCAxIC4xNUw5LjE0IDloMS4yNGwtLjA3LjQ0YS41LjUgMCAxIDAgMSAuMTVMMTEuNCA5aC42YS41LjUgMCAwIDAgMC0xaC0uNDZsLjIyLTEuNWguNzRhLjUuNSAwIDAgMCAwLTFoLS41OWwuMTQtLjkzYS41LjUgMCAwIDAtMS0uMTRMMTAuOSA1LjVIOS42NmwuMTQtLjkzYS41LjUgMCAwIDAtMS0uMTRMOC42NiA1LjVIOGEuNS41IDAgMCAwIDAgMWguNUw4LjI4IDhINy41YS41LjUgMCAwIDAgMCAxaC42NGwtLjA3LjQ0Wm0yLjY4LTIuOTRMMTAuNTMgOEg5LjNsLjIyLTEuNWgxLjI0Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BDZW50ZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BDZW50ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTExLjI2IDkgLjIzLTEuNWgxLjQ4TDEyLjc0IDloLTEuNDhabTYuNDktN2MxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXYxNS41YzAgMS4xOS0uOTMgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMDlMNCAxOS43NVY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNi4yNSAyaDExLjVabS01LjM1IDkuMTZhLjc1Ljc1IDAgMSAwIDEuNDguMjNsLjE0LS45aC43M2EuNzUuNzUgMCAwIDAgMC0xLjVoLS41bC4yNC0xLjVoLjc2YS43NS43NSAwIDAgMCAwLTEuNWgtLjUybC4xNi0xLjAyYS43NS43NSAwIDEgMC0xLjQ4LS4yM0wxMy4yMSA2aC0xLjQ4bC4xNi0xLjAzYS43NS43NSAwIDEgMC0xLjQ4LS4yM0wxMC4yMSA2aC0uOTZhLjc1Ljc1IDAgMSAwIDAgMS41aC43M0w5Ljc0IDloLS45OWEuNzUuNzUgMCAxIDAgMCAxLjVoLjc1bC0uMS42NmEuNzUuNzUgMCAwIDAgMS40OC4yM2wuMTQtLjloMS40OGwtLjEuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BDZW50ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlVG9wQ2VudGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNzQgMmMxLjIgMCAyLjE3LjkyIDIuMjUgMi4xdjE1LjY1YzAgMS4xOC0uOTIgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjE5IDAtMi4xNi0uOTItMi4yNC0yLjFWNC4yNUM0IDMuMDcgNC45MSAyLjA5IDYuMDggMmgxMS42NVptMCAxLjVINi4yNGMtLjM4IDAtLjY5LjI4LS43NC42NHYxNS42YzAgLjM4LjI4LjcuNjQuNzVoMTEuNmMuMzggMCAuNy0uMjguNzUtLjY0VjQuMjVjMC0uMzgtLjI4LS43LS42NC0uNzVoLS4xWk0xMy4wMiAxMmEuNzUuNzUgMCAwIDEtLjYzLS44NmwuMS0uNjZoLTEuNDdsLS4xNC45YS43NS43NSAwIDEgMS0xLjQ5LS4yNGwuMS0uNjZoLS43NGEuNzUuNzUgMCAwIDEgMC0xLjVoLjk5bC4yMy0xLjVoLS43MmEuNzUuNzUgMCAxIDEgMC0xLjVoLjk2bC4yLTEuMjZhLjc1Ljc1IDAgMSAxIDEuNDguMjRsLS4xNiAxLjAyaDEuNDhsLjItMS4yNmEuNzUuNzUgMCAxIDEgMS40OC4yNGwtLjE2IDEuMDJoLjUyYS43NS43NSAwIDAgMSAwIDEuNWgtLjc2bC0uMjMgMS41aC40OWEuNzUuNzUgMCAwIDEgMCAxLjVoLS43M2wtLjE0LjlhLjc1Ljc1IDAgMCAxLS44Ni42MlptLTEuNTMtNC41Mi0uMjMgMS41aDEuNDhsLjIzLTEuNUgxMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlVG9wTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZVRvcExlZnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNzUgNS41IDguNTMgN0g3LjNsLjIyLTEuNWgxLjI0Wk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0xM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTlabS41NyA2LjQ0TDYuMTQgOEg1LjVhLjUuNSAwIDAgMSAwLTFoLjc4bC4yMi0xLjVINmEuNS41IDAgMCAxIDAtMWguNjVsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M0g4LjlsLjE2LTEuMDdhLjUuNSAwIDAgMSAuOTkuMTRsLS4xNC45M2guNTlhLjUuNSAwIDAgMSAwIDFoLS43NEw5LjU0IDdIMTBhLjUuNSAwIDAgMSAwIDFoLS42bC0uMDkuNTlhLjUuNSAwIDEgMS0uOTktLjE1TDguNCA4SDcuMTVsLS4wOS41OWEuNS41IDAgMSAxLS45OS0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BMZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZVRvcExlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjA3IDkuNDRhLjUuNSAwIDAgMCAxIC4xNUw4LjE0IDloMS4yNGwtLjA3LjQ0YS41LjUgMCAwIDAgMSAuMTVMMTAuNCA5aC42YS41LjUgMCAwIDAgMC0xaC0uNDZsLjIyLTEuNWguNzRhLjUuNSAwIDAgMCAwLTFoLS41OWwuMTQtLjkzYS41LjUgMCAwIDAtMS0uMTRMOS45IDUuNUg4LjY2bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEw3LjY2IDUuNUg3YS41LjUgMCAwIDAgMCAxaC41TDcuMjggOEg2LjVhLjUuNSAwIDAgMCAwIDFoLjY0bC0uMDcuNDRaTTkuNzUgNi41IDkuNTMgOEg4LjNsLjIyLTEuNWgxLjI0Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BMZWZ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQYWdlVG9wTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJtOS4yNiA5IC4yMy0xLjVoMS40OEwxMC43NCA5SDkuMjZabTguNDktN2MxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXYxNS41YzAgMS4xOS0uOTMgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjIgMC0yLjE3LS45Mi0yLjI0LTIuMDlMNCAxOS43NVY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNi4yNSAyaDExLjVabS03LjM1IDkuMTZhLjc1Ljc1IDAgMSAwIDEuNDguMjNsLjE0LS45aC43M2EuNzUuNzUgMCAwIDAgMC0xLjVoLS41bC4yNC0xLjVoLjc2YS43NS43NSAwIDAgMCAwLTEuNWgtLjUybC4xNi0xLjAyYS43NS43NSAwIDEgMC0xLjQ4LS4yM0wxMS4yMSA2SDkuNzNsLjE2LTEuMDNhLjc1Ljc1IDAgMCAwLTEuNDgtLjIzTDguMjEgNmgtLjk2YS43NS43NSAwIDEgMCAwIDEuNWguNzNMNy43NCA5aC0uOTlhLjc1Ljc1IDAgMSAwIDAgMS41aC43NWwtLjEuNjZhLjc1Ljc1IDAgMCAwIDEuNDguMjNsLjE0LS45aDEuNDhsLS4xLjY3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlVG9wTGVmdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BMZWZ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNzQgMmMxLjIgMCAyLjE3LjkyIDIuMjUgMi4xdjE1LjY1YzAgMS4xOC0uOTIgMi4xNi0yLjEgMi4yNEg2LjI1Yy0xLjE5IDAtMi4xNi0uOTItMi4yNC0yLjFWNC4yNUM0IDMuMDcgNC45MSAyLjA5IDYuMDggMmgxMS42NVptMCAxLjVINi4yNGMtLjM4IDAtLjY5LjI4LS43NC42NHYxNS42YzAgLjM4LjI4LjcuNjQuNzVoMTEuNmMuMzggMCAuNy0uMjguNzUtLjY0VjQuMjVjMC0uMzgtLjI4LS43LS42NC0uNzVoLS4xWm0tNi43MiA4LjUyYS43NS43NSAwIDAgMS0uNjMtLjg2bC4xLS42Nkg5LjAzbC0uMTQuOWEuNzUuNzUgMCAwIDEtMS40OS0uMjRsLjEtLjY2aC0uNzRhLjc1Ljc1IDAgMCAxIDAtMS41aC45OWwuMjMtMS41aC0uNzJhLjc1Ljc1IDAgMSAxIDAtMS41aC45NmwuMi0xLjI2YS43NS43NSAwIDEgMSAxLjQ4LjI0TDkuNzMgNmgxLjQ4bC4yLTEuMjZhLjc1Ljc1IDAgMCAxIDEuNDguMjRMMTIuNzMgNmguNTJhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzZMMTIuMjYgOWguNDlhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzNsLS4xNC45YS43NS43NSAwIDAgMS0uODYuNjJaTTkuNDkgNy41IDkuMjYgOWgxLjQ4bC4yMy0xLjVIOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlVG9wUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIuNzUgNS41IDEyLjUzIDdIMTEuM2wuMjItMS41aDEuMjRaTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEzYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVptNC41NyA2LjQ0LjA3LS40NEg5LjVhLjUuNSAwIDEgMSAwLTFoLjc4bC4yMi0xLjVIMTBhLjUuNSAwIDEgMSAwLTFoLjY1bC4xNi0xLjA3YS41LjUgMCAwIDEgLjk5LjE0bC0uMTQuOTNoMS4yNGwuMTYtMS4wN2EuNS41IDAgMCAxIC45OS4xNGwtLjE0LjkzaC41OWEuNS41IDAgMCAxIDAgMWgtLjc0TDEzLjU0IDdIMTRhLjUuNSAwIDAgMSAwIDFoLS42bC0uMDkuNTlhLjUuNSAwIDAgMS0uOTktLjE1TDEyLjQgOGgtMS4yNGwtLjA5LjU5YS41LjUgMCAwIDEtLjk5LS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGFnZVRvcFJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGFnZVRvcFJpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4wNyA5LjQ0YS41LjUgMCAxIDAgMSAuMTVsLjA4LS41OWgxLjI0bC0uMDcuNDRhLjUuNSAwIDEgMCAxIC4xNUwxMi40IDloLjZhLjUuNSAwIDAgMCAwLTFoLS40NmwuMjItMS41aC43NGEuNS41IDAgMCAwIDAtMWgtLjU5bC4xNC0uOTNhLjUuNSAwIDAgMC0xLS4xNEwxMS45IDUuNWgtMS4yNGwuMTQtLjkzYS41LjUgMCAwIDAtMS0uMTRMOS42NiA1LjVIOWEuNS41IDAgMCAwIDAgMWguNUw5LjI4IDhIOC41YS41LjUgMCAwIDAgMCAxaC42NGwtLjA3LjQ0Wm0yLjY4LTIuOTRMMTEuNTMgOEgxMC4zbC4yMi0xLjVoMS4yNFpNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDZabTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQYWdlVG9wUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTMuMjYgOSAuMjMtMS41aDEuNDhMMTQuNzQgOWgtMS40OFptNC40OS03YzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djE1LjVjMCAxLjE5LS45MyAyLjE2LTIuMSAyLjI0SDYuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4wOUw0IDE5Ljc1VjQuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw2LjI1IDJoMTEuNVptLTMuMzUgOS4xNmEuNzUuNzUgMCAxIDAgMS40OC4yM2wuMTQtLjloLjczYS43NS43NSAwIDAgMCAwLTEuNWgtLjVsLjI0LTEuNWguNzZhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNTJsLjE2LTEuMDJhLjc1Ljc1IDAgMSAwLTEuNDgtLjIzTDE1LjIxIDZoLTEuNDhsLjE2LTEuMDNhLjc1Ljc1IDAgMSAwLTEuNDgtLjIzTDEyLjIxIDZoLS45NmEuNzUuNzUgMCAwIDAgMCAxLjVoLjcyTDExLjc0IDloLS45OWEuNzUuNzUgMCAwIDAgMCAxLjVoLjc1bC0uMS42NmEuNzUuNzUgMCAxIDAgMS40OC4yM2wuMTQtLjloMS40OGwtLjEuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBhZ2VUb3BSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBhZ2VUb3BSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc0IDJjMS4yIDAgMi4xNy45MiAyLjI1IDIuMXYxNS42NWMwIDEuMTgtLjkyIDIuMTYtMi4xIDIuMjRINi4yNWMtMS4xOSAwLTIuMTYtLjkyLTIuMjQtMi4xVjQuMjVDNCAzLjA3IDQuOTEgMi4wOSA2LjA4IDJoMTEuNjVabTAgMS41SDYuMjRjLS4zOCAwLS42OS4yOC0uNzQuNjR2MTUuNmMwIC4zOC4yOC43LjY0Ljc1aDExLjZjLjM4IDAgLjctLjI4Ljc1LS42NFY0LjI1YzAtLjM4LS4yOC0uNy0uNjQtLjc1aC0uMVptLTIuNzIgOC41MmEuNzUuNzUgMCAwIDEtLjYzLS44NmwuMS0uNjZoLTEuNDdsLS4xNC45YS43NS43NSAwIDAgMS0xLjQ5LS4yNGwuMS0uNjZoLS43NGEuNzUuNzUgMCAwIDEgMC0xLjVoLjk5bC4yMy0xLjVoLS43MmEuNzUuNzUgMCAwIDEgMC0xLjVoLjk2bC4yLTEuMjZhLjc1Ljc1IDAgMSAxIDEuNDguMjRMMTMuNzMgNmgxLjQ4bC4yLTEuMjZhLjc1Ljc1IDAgMSAxIDEuNDguMjRMMTYuNzMgNmguNTJhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzZMMTYuMjYgOWguNDlhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNzNsLS4xNC45YS43NS43NSAwIDAgMS0uODYuNjJaTTEzLjQ5IDcuNSAxMy4yNiA5aDEuNDhsLjIzLTEuNUgxMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQZGYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBkZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDlhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LS4xNmguMzNhMS4xNyAxLjE3IDAgMCAwIDAtMi4zNEg0LjVabS44MyAxLjM0SDVWMTBoLjMzYS4xNy4xNyAwIDAgMSAwIC4zNFpNMTAgOS41YzAtLjI3LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMUgxMXYuMzRoLjVhLjUuNSAwIDEgMSAwIDFIMTF2LjE2YS41LjUgMCAwIDEtMSAwdi0yWk03LjUgOWEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUg4YTEuNSAxLjUgMCAwIDAgMC0zaC0uNVptLjUgMnYtMWEuNS41IDAgMCAxIDAgMVptMS05SDQuNUMzLjY3IDIgMyAyLjY3IDMgMy41djMuNThjLS41OC4yMS0xIC43Ny0xIDEuNDJ2NGMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS42NS0uNDItMS4yMS0xLTEuNDJWNmgtMi41QTEuNSAxLjUgMCAwIDEgOSA0LjVWMlpNMy41IDhoOWMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNXYtNGMwLS4yOC4yMi0uNS41LS41Wm05LjItM2gtMi4yYS41LjUgMCAwIDEtLjUtLjVWMi4zTDEyLjcgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGRmMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGRmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC41IDlhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LS4xNmguMzNhMS4xNyAxLjE3IDAgMCAwIDAtMi4zNEg0LjVabS44MyAxLjM0SDVWMTBoLjMzYS4xNy4xNyAwIDAgMSAwIC4zNFpNMTAgOS41YzAtLjI3LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMUgxMXYuMzRoLjVhLjUuNSAwIDEgMSAwIDFIMTF2LjE2YS41LjUgMCAwIDEtMSAwdi0yWk03LjUgOWEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUg4YTEuNSAxLjUgMCAwIDAgMC0zaC0uNVptLjUgMnYtMWEuNS41IDAgMCAxIDAgMVpNMyAzLjV2My41OGMtLjU4LjIxLTEgLjc3LTEgMS40MnY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjY1LS40Mi0xLjIxLTEtMS40MlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMS45Mi0xLjkxQTEuNSAxLjUgMCAwIDAgOS41OCAySDQuNUMzLjY3IDIgMyAyLjY3IDMgMy41Wk00LjUgM0g5djEuNWMwIC44My42NyAxLjUgMS41IDEuNUgxMnYxSDRWMy41YzAtLjI3LjIyLS41LjUtLjVabTUuNS4yMUwxMS44IDVoLTEuM2EuNS41IDAgMCAxLS41LS41VjMuMjFaTTMuNSA4aDljLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTRjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGRmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQZGYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYuNSAxMWEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtLjE3aC4zM2ExLjE3IDEuMTcgMCAwIDAgMC0yLjMzSDYuNVptLjgzIDEuMzNIN1YxMmguMzNhLjE3LjE3IDAgMCAxIDAgLjMzWk0xMiAxMS41YzAtLjI4LjIzLS41LjUtLjVoMWEuNS41IDAgMSAxIDAgMUgxM3YuMzNoLjVhLjUuNSAwIDEgMSAwIDFIMTN2LjE3YS41LjUgMCAxIDEtMSAwdi0yWk05LjUgMTFhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoLjVhMS41IDEuNSAwIDAgMCAwLTNoLS41Wm0uNSAydi0xYS41LjUgMCAwIDEgMCAxWm0wLTYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuNThjLS41OC4yLTEgLjc2LTEgMS40MnY0YzAgLjY1LjQyIDEuMiAxIDEuNDF2LjU5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di0uNTljLjU4LS4yIDEtLjc2IDEtMS40MXYtNGMwLS42Ni0uNDItMS4yMS0xLTEuNDJWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wk00LjUgMTBoMTFjLjI4IDAgLjUuMjIuNS41djRhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di00YzAtLjI4LjIzLS41LjUtLjVaTTExIDYuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQZGYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQZGYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02LjUgMTFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDB2LS4xN2guMzNhMS4xNyAxLjE3IDAgMCAwIDAtMi4zM0g2LjVabS44MyAxLjMzSDdWMTJoLjMzYS4xNy4xNyAwIDAgMSAwIC4zM1pNMTIgMTEuNWMwLS4yOC4yMy0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFIMTN2LjMzaC41YS41LjUgMCAxIDEgMCAxSDEzdi4xN2EuNS41IDAgMCAxLTEgMHYtMlpNOS41IDExYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aC41YTEuNSAxLjUgMCAwIDAgMC0zaC0uNVptLjUgMnYtMWEuNS41IDAgMCAxIDAgMVpNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNnYxLjY3Yy41OC4yIDEgLjc2IDEgMS40MnY0YzAgLjY1LS40MiAxLjItMSAxLjQxVjE2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0uMDljLS41OC0uMi0xLS43Ni0xLTEuNDF2LTRjMC0uNjYuNDItMS4yMSAxLTEuNDJWNFptMTEgNGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxdjVoMTBWOFpNNSAxNmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMUg1Wm02LTEyLjh2My4zYzAgLjI4LjIyLjUuNS41aDMuM0wxMSAzLjJaTTQuNSAxMGEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMy41LjUuNWgxMWEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQZGYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBkZjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy41IDEzYS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDAgMSAwVjE2aC41YTEuNSAxLjUgMCAwIDAgMC0zaC0xWm0xIDJIOHYtMWguNWEuNS41IDAgMSAxIDAgMVptNi41LTEuNWMwLS4yNy4yMi0uNS41LS41SDE3YS41LjUgMCAxIDEgMCAxaC0xdjFoMWEuNS41IDAgMCAxIDAgMWgtMXYuNWEuNS41IDAgMCAxLTEgMHYtM1ptLTMuNS0uNWguNWEyIDIgMCAwIDEgMCA0aC0uNWEuNS41IDAgMCAxLS41LS41di0zYzAtLjI3LjIyLS41LjUtLjVabS41IDNhMSAxIDAgMCAwIDAtMnYyWm0wLThWMkg2YTIgMiAwIDAgMC0yIDJ2Ni42N2MtLjYuMjgtMSAuODgtMSAxLjU4djUuNWMwIC43LjQgMS4zIDEgMS41OFYyMGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS42N2MuNi0uMjggMS0uODggMS0xLjU4di01LjVjMC0uNy0uNC0xLjMtMS0xLjU4VjEwaC02YTIgMiAwIDAgMS0yLTJabS03LjI1IDRoMTQuNWMuMTQgMCAuMjUuMTEuMjUuMjV2NS41YzAgLjE0LS4xMS4yNS0uMjUuMjVINC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtNS41YzAtLjE0LjExLS4yNS4yNS0uMjVabTguNzUtNFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBkZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBkZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcuNSAxM2EuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMFYxNmguNWExLjUgMS41IDAgMCAwIDAtM2gtMVptMSAySDh2LTFoLjVhLjUuNSAwIDEgMSAwIDFabTYuNS0xLjVjMC0uMjcuMjItLjUuNS0uNUgxN2EuNS41IDAgMSAxIDAgMWgtMXYxaDFhLjUuNSAwIDAgMSAwIDFoLTF2LjVhLjUuNSAwIDAgMS0xIDB2LTNabS0zLjUtLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoLjVhMiAyIDAgMCAwIDAtNGgtLjVabS41IDN2LTJhMSAxIDAgMCAxIDAgMlptOCA0di0xLjE2Yy42LS4yOSAxLS44OSAxLTEuNTl2LTQuNWMwLS43LS40LTEuMy0xLTEuNThWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny4xN2MtLjYuMjgtMSAuODgtMSAxLjU4djQuNWMwIC43LjQgMS4zIDEgMS41OVYyMGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJabS0yIC41SDZhLjUuNSAwIDAgMS0uNS0uNXYtMWgxM3YxYS41LjUgMCAwIDEtLjUuNVptLjUtMTAuNXYxaC0xM1Y0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41Wm0tMS4xMi0xLjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYybDMuODggMy44OFptLTEyLjYzIDRoMTQuNWMuMTQgMCAuMjUuMTEuMjUuMjV2NC41YzAgLjE0LS4xMS4yNS0uMjUuMjVINC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtNC41YzAtLjE0LjExLS4yNS4yNS0uMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBkZjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGRmMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk05IDE2YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAxIDAgMiAwdi0xaC41YTIuNSAyLjUgMCAwIDAgMC01SDlabTEuNSAzSDEwdi0xaC41YS41LjUgMCAwIDEgMCAxWm0zLjUtMmExIDEgMCAwIDEgMS0xaC41YTMuNSAzLjUgMCAxIDEgMCA3SDE1YTEgMSAwIDAgMS0xLTF2LTVabTIgMy45MWExLjUgMS41IDAgMCAwIDAtMi44MnYyLjgyWk0yMCAyMnYtNWExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMSAxIDAgMmgtMnYxaDJhMSAxIDAgMSAxIDAgMmgtMnYxYTEgMSAwIDEgMS0yIDBaTTE3IDlWMkg4YTMgMyAwIDAgMC0zIDN2OGEyIDIgMCAwIDAtMiAydjljMCAxLjEuOSAyIDIgMnYxYTMgMyAwIDAgMCAzIDNoMTZhMyAzIDAgMCAwIDMtM3YtMWEyIDIgMCAwIDAgMi0ydi05YTIgMiAwIDAgMC0yLTJ2LTFoLTdhMyAzIDAgMCAxLTMtM1ptMTAgNnY5SDV2LTloMjJabS04LTZWMi4xMmEzIDMgMCAwIDEgMS4zLjc2bDUuODIgNS44M2EzIDMgMCAwIDEgLjc2IDEuMjlIMjBhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGRmMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGRmMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOSAxNmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMSAwIDIgMHYtMWguNWEyLjUgMi41IDAgMCAwIDAtNUg5Wm0xLjUgM0gxMHYtMWguNWEuNS41IDAgMCAxIDAgMVptMy41LTJhMSAxIDAgMCAxIDEtMWguNWEzLjUgMy41IDAgMSAxIDAgN0gxNWExIDEgMCAwIDEtMS0xdi01Wm0yIDMuOTFhMS41IDEuNSAwIDAgMCAwLTIuODJ2Mi44MlpNMjAgMjJ2LTVhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDEgMSAwIDJoLTJ2MWgyYTEgMSAwIDEgMSAwIDJoLTJ2MWExIDEgMCAxIDEtMiAwWk02IDV2OEg1YTIgMiAwIDAgMC0yIDJ2OWMwIDEuMS45IDIgMiAyaDF2MWEzIDMgMCAwIDAgMyAzaDE0YTMgMyAwIDAgMCAzLTN2LTFoMWEyIDIgMCAwIDAgMi0ydi05YTIgMiAwIDAgMC0yLTJoLTFWOS44M2EzIDMgMCAwIDAtLjg4LTIuMTJMMjAuMyAyLjg4QTMgMyAwIDAgMCAxOC4xNyAySDlhMyAzIDAgMCAwLTMgM1ptMy0xaDd2NWEzIDMgMCAwIDAgMyAzaDV2MUg4VjVhMSAxIDAgMCAxIDEtMVpNOCAyN3YtMWgxNnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xWk0yNCA5LjgzVjEwaC01YTEgMSAwIDAgMS0xLTFWNGguMTdhMSAxIDAgMCAxIC43LjNsNC44NCA0LjgyYTEgMSAwIDAgMSAuMjkuN1pNNSAxNWgyMnY5SDV2LTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBlcmNlbnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcmNlbnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuNjdhMyAzIDAgMCAxIDIgMi43MWwxLjQ0LTEuNDRhMS41IDEuNSAwIDAgMSAyLjEyIDIuMTJMOC4xMiAxNGEzIDMgMCAwIDEgMi43IDRoMy42OGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wk01IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptLTEgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS0xLjE1IDUuODVhLjUuNSAwIDAgMS0uNy0uN2w2LTZhLjUuNSAwIDAgMSAuNy43bC02IDZaTTYgMTdhMiAyIDAgMCAwIDIgMiAyIDIgMCAxIDAtMi0yWm0yIDFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0zLTExLjVWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGVyY2VudDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcmNlbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJoLTMuMTdhMyAzIDAgMCAwIC4xNy0xaDNhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS43NmEzIDMgMCAwIDAtMS0uNTlWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVaTTUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tMSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNiA1YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptLTEgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS0uMTUtNS44NWMuMi4yLjIuNSAwIC43bC02IDZhLjUuNSAwIDAgMS0uNy0uN2w2LTZjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBlcmNlbnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcmNlbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2Ny4wNGMxLjcuMjQgMyAxLjcgMyAzLjQ2di4wM2wyLjAxLTIuMDJBMS43NSAxLjc1IDAgMSAxIDExLjUgMTVMOS40NyAxN2guMDNhMy41IDMuNSAwIDAgMSAzLjE2IDVIMThhMiAyIDAgMCAwIDItMlYxMGgtNmEyIDIgMCAwIDEtMi0yWm0tNi44NyA4LjRBMi41IDIuNSAwIDAgMSAxIDE0LjVhMi41IDIuNSAwIDEgMSA0LjEzIDEuOVpNNCAxMy42M2ExIDEgMCAxIDAtMSAxLjczIDEgMSAwIDAgMCAxLTEuNzNabTYuNzguNjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtNy41IDcuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDcuNS03LjVaTTcgMjAuNUEyLjQ5IDIuNDkgMCAwIDAgOS41IDIzIDIuNSAyLjUgMCAxIDAgNyAyMC41Wm0zLjUgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTMtMTIuNVYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBlcmNlbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQZXJjZW50MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTVjMCAuNTQtLjEyIDEuMDUtLjM0IDEuNUgxOGEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyTDEzLjYgMi42YS41LjUgMCAwIDAtLjA1LS4wNCAyLjA3IDIuMDcgMCAwIDAtLjM0LS4yNWwtLjA1LS4wMy0uMDUtLjAzLS4xNi0uMDljLS4yLS4wOC0uNDEtLjEyLS42My0uMTRoLS4wNmEuNi42IDAgMCAwLS4wOC0uMDFINmEyIDIgMCAwIDAtMiAydjcuMDRjLjU1LjA3IDEuMDYuMjggMS41LjU5VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTYgMTQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptLTEuNSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNy41IDZhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabS0xLjUgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS4yOC03LjI4Yy4zLjMuMy43NyAwIDEuMDZsLTcuNSA3LjVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmw3LjUtNy41Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGVyc29uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQZXJzb24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMXYzLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxM3Y3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDcuODFsLjAyLS4wMkEzLjIgMy4yIDAgMCAwIDkgMTIuNWMwLTEuMy0xLTIuMzgtMi4yNy0yLjQ5QTMgMyAwIDAgMCAzIDUuNDFWMi41QzMgMS42NyAzLjY3IDEgNC41IDFIOFptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMOSAxLjI1Wk02LjUgOGEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaTTggMTIuNUM4IDEzLjc1IDcgMTUgNC41IDE1UzEgMTMuNzUgMSAxMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBlcnNvbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcnNvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUgMWEyIDIgMCAwIDAtMiAydjIuNGMuMy0uMTcuNjQtLjMgMS0uMzZWM2ExIDEgMCAwIDEgMS0xaDN2Mi41QzggNS4zMyA4LjY3IDYgOS41IDZIMTJ2N2ExIDEgMCAwIDEtMSAxSDguNjNjLS4xOS4zNi0uNDUuNy0uOC45OEw3LjggMTVIMTFhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNkw5LjY1IDEuNDRBMS41IDEuNSAwIDAgMCA4LjU5IDFINVptNi44IDRIOS41YS41LjUgMCAwIDEtLjUtLjVWMi4yTDExLjggNVpNNi41IDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk04IDEyLjVDOCAxMy43NSA3IDE1IDQuNSAxNVMxIDEzLjc1IDEgMTIuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQZXJzb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcnNvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjYzYy4yNS0uNDcuMzctLjk5LjM3LTEuNSAwLTEuMy0xLTIuMzgtMi4yNy0yLjQ5QTMgMyAwIDAgMCA0IDkuMDRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTYuNSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaTTggMTYuNUM4IDE3Ljc1IDcgMTkgNC41IDE5UzEgMTcuNzUgMSAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBlcnNvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFBlcnNvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMDRhMy4wMiAzLjAyIDAgMCAxIDEgMFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDguOTZjLS4wNS4zNC0uMTYuNjgtLjMzIDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1ptLTguMyA1YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpNOCAxNi41QzggMTcuNzUgNyAxOSA0LjUgMTlTMSAxNy43NSAxIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UGlsbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGlsbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2LjkxYTMuNiAzLjYgMCAwIDAtMi4wNiAxLjAzbC00IDRBMy42MiAzLjYyIDAgMCAwIDkuMiAxOEg1LjVBMS41IDEuNSAwIDAgMSA0IDE2LjV2LTEzQzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVabTcuMzUgOC40YTIuNjIgMi42MiAwIDAgMC0zLjcgMGwtNCA0YTIuNjIgMi42MiAwIDAgMCAzLjcgMy43bDQtNGEyLjYyIDIuNjIgMCAwIDAgMC0zLjdabS0zIC43YTEuNjIgMS42MiAwIDEgMSAyLjMgMi4zTDE2IDE1LjI5IDEzLjcgMTNsMS42NS0xLjY1Wm0tMS41IDQuM2MuMi4yLjIuNSAwIC43bC0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFBpbGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQaWxsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgzLjJhMy42MSAzLjYxIDAgMCAxLS4yOS0xSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2MS4yYy4zMi0uMTQuNjYtLjI0IDEtLjI5di0xLjVjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wm0zLjU1IDMuNjVhMi42MiAyLjYyIDAgMCAwLTMuNyAwbC00IDRhMi42MiAyLjYyIDAgMCAwIDMuNyAzLjdsNC00YTIuNjIgMi42MiAwIDAgMCAwLTMuN1ptLTMgLjdhMS42MiAxLjYyIDAgMSAxIDIuMyAyLjNMMTYgMTUuMjkgMTMuNyAxM2wxLjY1LTEuNjVabS0yLjIgNC4zYS41LjUgMCAwIDEgLjcuN2wtMSAxYS41LjUgMCAwIDEtLjctLjdsMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQaWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQaWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA4VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2MTdjMCAuODMuNjcgMS41IDEuNSAxLjVoNS45N2wuMi0uMDFhMy44NyAzLjg3IDAgMCAxIC42LTQuNzNsNS01QTMuODYgMy44NiAwIDAgMSAyMCAxMS4xM1YxMGgtNmEyIDIgMCAwIDEtMi0yWm0xLjUgMFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVabTguNTMgNC45N2EyLjg3IDIuODcgMCAwIDAtNC4wNiAwbC01IDVhMi44NyAyLjg3IDAgMSAwIDQuMDYgNC4wNmw1LTVhMi44NyAyLjg3IDAgMCAwIDAtNC4wNlptLTMgMS4wNmExLjM3IDEuMzcgMCAxIDEgMS45NCAxLjk0TDE5IDE3Ljk0IDE3LjA2IDE2bDEuOTctMS45N1ptLTIgNC45NGMuMy4zLjMuNzcgMCAxLjA2bC0xIDFhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLTFjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQaWxsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UGlsbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNSA0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVIMTJWOGMwIDEuMS45IDIgMiAyaDQuNXYxLjQzYy40OC0uMi45OS0uMyAxLjUtLjNWOS42NmMwLS40Ni0uMTgtLjktLjUxLTEuMjNMMTMuNTcgMi41QTEuNzUgMS43NSAwIDAgMCAxMi4zNCAySDYuMjVDNS4wMSAyIDQgMyA0IDQuMjV2MTUuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmg1LjQzYTMuODYgMy44NiAwIDAgMS0uNTItMS41SDYuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC4yNVpNMTcuNDQgOC41SDE0YS41LjUgMCAwIDEtLjUtLjVWNC41NmwzLjk0IDMuOTRabTQuNTkgNC40N2EyLjg3IDIuODcgMCAwIDAtNC4wNiAwbC01IDVhMi44NyAyLjg3IDAgMSAwIDQuMDYgNC4wNmw1LTVhMi44NyAyLjg3IDAgMCAwIDAtNC4wNlptLTMgMS4wNmExLjM3IDEuMzcgMCAxIDEgMS45NCAxLjk0TDE5IDE3Ljk0IDE3LjA2IDE2bDEuOTctMS45N1ptLTIgNC45NGMuMy4zLjMuNzcgMCAxLjA2bC0xIDFhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLTFjLjMtLjMuNzctLjMgMS4wNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQcmludDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UHJpbnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOWEyIDIgMCAwIDAgMi0ydi0yLjVhMi41IDIuNSAwIDAgMC0yLjA0LTIuNDZBMi41IDIuNSAwIDAgMCA2LjUgOWgtMmMtLjE3IDAtLjM0LjAyLS41LjA1VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk00LjUgMTBjLS44MyAwLTEuNS42Ny0xLjUgMS41di41aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTZhMSAxIDAgMCAwIDEgMWgxdi41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41VjE3aDFhMSAxIDAgMCAwIDEtMXYtMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg4di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJaTTcgMTJINHYtLjVjMC0uMjguMjItLjUuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYuNVptLTIuNSA0aDJjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJpbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcmludDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMDVjLjE2LS4wMy4zMy0uMDUuNS0uMDVINVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjI3QTIgMiAwIDAgMSA5IDE4aDVhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNNC41IDEwYy0uODMgMC0xLjUuNjctMS41IDEuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41VjE2YTEgMSAwIDAgMCAxIDFoMXYuNWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxN2gxYTEgMSAwIDAgMCAxLTF2LTIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIOHYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yWk03IDEySDR2LS41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVabS0yLjUgNGgyYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0xYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFByaW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcmludDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC03LjFjLjA0LS4xNi4wNy0uMzMuMDktLjVIMTFhMiAyIDAgMCAwIDItMlYxNmEyLjUgMi41IDAgMCAwLTItMi40NUEyLjc1IDIuNzUgMCAwIDAgOC4yNCAxMWgtMy41Yy0uMjYgMC0uNTEuMDQtLjc1LjFWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaTTMgMTMuNzVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMy41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1di43NWguNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzLjVhMSAxIDAgMCAxLTEgMWgtMXYuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0zLjVDMy43OCAyMyAzIDIyLjIyIDMgMjEuMjV2LS43NUgyYTEgMSAwIDAgMS0xLTFWMTZjMC0uODMuNjctMS41IDEuNS0xLjVIM3YtLjc1Wm01LjUgMGEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Ljc1aDR2LS43NVptLTQgNS41djJjMCAuMTQuMTEuMjUuMjUuMjVoMy41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yYS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMCAwLS4yNS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJpbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcmludDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41aC01LjI3YTIgMiAwIDAgMS0xLjczIDFoLS4wMWMtLjAyLjE3LS4wNS4zNC0uMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny4xYy4yNC0uMDYuNDktLjEuNzUtLjFoLjc1VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTMgMTMuNzVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMy41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1di43NWguNWMuODMgMCAxLjUuNjcgMS41IDEuNXYzLjVhMSAxIDAgMCAxLTEgMWgtMXYuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0zLjVDMy43OCAyMyAzIDIyLjIyIDMgMjEuMjV2LS43NUgyYTEgMSAwIDAgMS0xLTFWMTZjMC0uODMuNjctMS41IDEuNS0xLjVIM3YtLjc1Wm01LjUgMGEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Ljc1aDR2LS43NVptLTQgNS41djJjMCAuMTQuMTEuMjUuMjUuMjVoMy41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yYS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMCAwLS4yNS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJpbnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFByaW50MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAydjhjMCAxLjEuOSAyIDIgMmg4djExLjZhMi40IDIuNCAwIDAgMS0yLjQgMi40aC05LjJjLjA2LS4yNC4xLS40OS4xLS43NVYyNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTlhMyAzIDAgMCAwLTIuNS0yLjk2di0uMjlBMi43NSAyLjc1IDAgMCAwIDkuNzUgMTNoLTQuNWMtLjQ1IDAtLjg3LjEtMS4yNS4zVjQuNEEyLjQgMi40IDAgMCAxIDYuNCAySDE0Wm0xLjUuNDhWMTBjMCAuMjguMjIuNS41LjVoNy41Yy0uMDktLjEzLS4yLS4yNS0uMy0uMzdMMTUuNzUgMi43YTIuNCAyLjQgMCAwIDAtLjI2LS4yMlpNNS4yNSAxNGMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWMTdIM2EyIDIgMCAwIDAtMiAydjMuNWMwIC44My42NyAxLjUgMS41IDEuNWgxdjEuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYyNGgxYy44MyAwIDEuNS0uNjcgMS41LTEuNVYxOWEyIDIgMCAwIDAtMi0yaC0uNXYtMS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTQuNVpNNSAxN3YtMS4yNWMwLS4xNC4xMS0uMjUuMjUtLjI1aDQuNWMuMTQgMCAuMjUuMTEuMjUuMjVWMTdINVptMCA1Ljc1YzAtLjE0LjExLS4yNS4yNS0uMjVoNC41Yy4xNCAwIC4yNS4xMS4yNS4yNXYyLjVjMCAuMTQtLjExLjI1LS4yNS4yNWgtNC41YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFByaW50MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UHJpbnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02LjQgMkEyLjQgMi40IDAgMCAwIDQgNC40djguOWMuMzgtLjIuOC0uMyAxLjI1LS4zaC4yNVY0LjRjMC0uNS40LS45LjktLjlIMTRWMTBjMCAxLjEuOSAyIDIgMmg2LjV2MTEuNmMwIC41LS40LjktLjkuOUgxNGMtLjQyLjMxLS45NC41LTEuNS41di4yNWMwIC4yNi0uMDQuNTEtLjEuNzVoOS4yYTIuNCAyLjQgMCAwIDAgMi40LTIuNFYxMS41OGMwLS43My0uMjktMS40My0uOC0xLjk1TDE2LjI1IDIuN2EyLjQgMi40IDAgMCAwLTEuNy0uN0g2LjRabTE1LjU0IDguNUgxNmEuNS41IDAgMCAxLS41LS41VjQuMDZsNi40NCA2LjQ0Wk01LjI1IDE0Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVYxN0gzYTIgMiAwIDAgMC0yIDJ2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDF2MS4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg0LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjI0aDFjLjgzIDAgMS41LS42NyAxLjUtMS41VjE5YTIgMiAwIDAgMC0yLTJoLS41di0xLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNC41Wk01IDE3di0xLjI1YzAtLjE0LjExLS4yNS4yNS0uMjVoNC41Yy4xNCAwIC4yNS4xMS4yNS4yNVYxN0g1Wm0wIDUuNzVjMC0uMTQuMTEtLjI1LjI1LS4yNWg0LjVjLjE0IDAgLjI1LjExLjI1LjI1djIuNWMwIC4xNC0uMTEuMjUtLjI1LjI1aC00LjVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJpbnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFByaW50MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyAydjdhMyAzIDAgMCAwIDMgM2g3djE1YTMgMyAwIDAgMS0zIDNoLTcuMDJhMy4yNSAzLjI1IDAgMCAwIDEuNTItMi43NXYtNWEzLjc1IDMuNzUgMCAwIDAtMi41MS0zLjU0IDMuNSAzLjUgMCAwIDAtMy40OS0zLjIxaC02Yy0uNTQgMC0xLjA1LjEyLTEuNS4zNFY1YTMgMyAwIDAgMSAzLTNoOVptMiAuMTJWOWExIDEgMCAwIDAgMSAxaDYuODhhMyAzIDAgMCAwLS43Ni0xLjNMMjAuMyAyLjg5QTMgMyAwIDAgMCAxOSAyLjEyWk02LjUgMTdhMiAyIDAgMCAwLTIgMnYxaC0uMjVDMy4wMSAyMCAyIDIxIDIgMjIuMjV2NWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWguNzVjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJoLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtLjI1di0xYTIgMiAwIDAgMC0yLTJoLTZaTTYgMjB2LTFjMC0uMjguMjItLjUuNS0uNWg2Yy4yOCAwIC41LjIyLjUuNXYxSDZabTAgNi41YzAtLjI4LjIyLS41LjUtLjVoNmMuMjggMCAuNS4yMi41LjVWMjlhLjUuNSAwIDAgMS0uNS41aC02QS41LjUgMCAwIDEgNiAyOXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQcmludDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFByaW50MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOCAyYTMgMyAwIDAgMC0zIDN2MTAuODRjLjQ1LS4yMi45Ni0uMzQgMS41LS4zNEg3VjVhMSAxIDAgMCAxIDEtMWg5djVhMyAzIDAgMCAwIDMgM2g1djE1YTEgMSAwIDAgMS0xIDFoLTUuNTljLS4yLjg0LS43MiAxLjU1LTEuNDMgMkgyNGEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFptMTYuNTkgOEgyMGExIDEgMCAwIDEtMS0xVjQuNDFMMjQuNTkgMTBaTTYuNSAxN2EyIDIgMCAwIDAtMiAydjFoLS4yNUMzLjAxIDIwIDIgMjEgMiAyMi4yNXY1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aC43NWMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMmguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di01YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0uMjV2LTFhMiAyIDAgMCAwLTItMmgtNlpNNiAyMHYtMWMwLS4yOC4yMi0uNS41LS41aDZjLjI4IDAgLjUuMjIuNS41djFINlptMCA2LjVjMC0uMjguMjItLjUuNS0uNWg2Yy4yOCAwIC41LjIyLjUuNVYyOWEuNS41IDAgMCAxLS41LjVoLTZBLjUuNSAwIDAgMSA2IDI5di0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFByaW50NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcmludDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNHYxMS4yNUEzLjc1IDMuNzUgMCAwIDAgMjcuNzUgMTlINDB2MjFhMyAzIDAgMCAxLTMgM0gyNS42NUEzLjk5IDMuOTkgMCAwIDAgMjcgNDB2LTdhNSA1IDAgMCAwLTQuMDgtNC45MkE1IDUgMCAwIDAgMTggMjRoLThjLS43MSAwLTEuMzkuMTUtMiAuNDJWN2EzIDMgMCAwIDEgMy0zaDEzWm0yLjUuNDZ2MTAuNzljMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTEuNzFMMjYuNSA0LjQ2Wk0xMCAyNmEzIDMgMCAwIDAtMyAzdjFINmEzIDMgMCAwIDAtMyAzdjdjMCAxLjEuOSAyIDIgMmgydjFhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTN2LTFoMmEyIDIgMCAwIDAgMi0ydi03YTMgMyAwIDAgMC0zLTNoLTF2LTFhMyAzIDAgMCAwLTMtM2gtOFptOSA0SDl2LTFhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MVptLTkgOGg4YTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxaC04YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJpbnQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcmludDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjI1IDRBNC4yNSA0LjI1IDAgMCAwIDggOC4yNXYxNi4xN2E0Ljk4IDQuOTggMCAwIDEgMi0uNDJoLjVWOC4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUgyNHY4Ljc1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOWg5Ljc1djIwLjc1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtOS4wNEE0IDQgMCAwIDEgMjMgNDRoMTIuNzVDMzguMSA0NCA0MCA0Mi4xIDQwIDM5Ljc1VjE4LjQxYzAtLjYtLjI0LTEuMTYtLjY2LTEuNTlMMjcuMTggNC42NmMtLjQzLS40Mi0xLS42Ni0xLjYtLjY2SDEyLjI2Wm0yMy4yMyAxMi41aC03LjczYy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNy41Mmw4Ljk4IDguOThaTTEwIDI2YTMgMyAwIDAgMC0zIDN2MUg2YTMgMyAwIDAgMC0zIDN2N2MwIDEuMS45IDIgMiAyaDJ2MWEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM3YtMWgyYTIgMiAwIDAgMCAyLTJ2LTdhMyAzIDAgMCAwLTMtM2gtMXYtMWEzIDMgMCAwIDAtMy0zaC04Wm05IDRIOXYtMWExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXYxWm0tOSA4aDhhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLThhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQcm9oaWJpdGVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcm9oaWJpdGVkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuNzRBNS41IDUuNSAwIDAgMCA0IDkuMlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVptLTguNjggOS4wN2E0LjUgNC41IDAgMSAwIDYuMzYgNi4zNiA0LjUgNC41IDAgMCAwLTYuMzYtNi4zNlptNS42NSA1LjY1YTMuNSAzLjUgMCAwIDEtNC41Ny4zM2w0LjktNC45YTMuNSAzLjUgMCAwIDEtLjMzIDQuNTdaTTcuNiAxMS43bC00LjkgNC45YTMuNSAzLjUgMCAwIDEgNC45LTQuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UHJvaGliaXRlZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFByb2hpYml0ZWQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJIOS43NGMuMjYtLjMuNDgtLjY0LjY2LTFIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjRabTctLjh2My4zYzAgLjI4LjIyLjUuNS41aDMuM0wxMSAzLjJaTTguNjggMTcuNjlhNC41IDQuNSAwIDEgMS02LjM2LTYuMzYgNC41IDQuNSAwIDAgMSA2LjM2IDYuMzZaTTMuNCAxNy4zYTMuNSAzLjUgMCAwIDAgNC45LTQuOWwtNC45IDQuOVptLS43LS43IDQuOS00LjlhMy41IDMuNSAwIDAgMC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQcm9oaWJpdGVkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcm9oaWJpdGVkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTYuODFBNi41IDYuNSAwIDAgMCA0IDExLjVWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZabS0xLjUgMTVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTkuNSAwYzAgLjgzLjI1IDEuNi43IDIuMjVsNS41NS01LjU2YTQgNCAwIDAgMC02LjI1IDMuM1ptNCA0YTQgNCAwIDAgMCAzLjMtNi4yNWwtNS41NSA1LjU2Yy42NC40NCAxLjQyLjY5IDIuMjUuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFByb2hpYml0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRQcm9oaWJpdGVkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTUuNzNhNi41MiA2LjUyIDAgMCAxLTEuMDggMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny41Yy40Ny0uMi45OC0uMzQgMS41LS40MlY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS05LjUgMGMwIC44My4yNSAxLjYuNyAyLjI1bDUuNTUtNS41NmE0IDQgMCAwIDAtNi4yNSAzLjNabTQgNGE0IDQgMCAwIDAgMy4zLTYuMjVsLTUuNTUgNS41NmMuNjQuNDQgMS40Mi42OSAyLjI1LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQeTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UHkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwIDQuNVYxLjI1TDEzLjc1IDVIMTAuNWEuNS41IDAgMCAxLS41LS41Wm0tMSAwYzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVINy45MWMuMDYtLjE2LjA5LS4zMi4wOS0uNVYxM2wxLjItMS42Yy4yNC0uMzEuMzQtLjcyLjI4LTEuMTEtLjA1LS40LS4yNi0uNzUtLjU4LS45OS0uMjUtLjE5LS41OC0uMy0uOS0uM2gtLjE1bC0uMDcuMDJjLS4zOS4wNS0uNzQuMjYtLjk4LjU4bC0uMy40LS4zLS40YTEuNTIgMS41MiAwIDAgMC0uOTktLjU5TDUuMDcgOUg1YTEuNSAxLjUgMCAwIDAtMSAuMzlWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOXYzLjVaTTEuNSAxMGgxYTEuNSAxLjUgMCAxIDEgMCAzSDJ2MS41YS41LjUgMCAxIDEtMSAwdi00YS41LjUgMCAwIDEgLjUtLjVabS41IDJoLjVhLjUuNSAwIDEgMCAwLTFIMnYxWm01IC42NyAxLjQtMS44N2EuNS41IDAgMCAwLS4xLS43LjUuNSAwIDAgMC0uNy4xbC0xLjEgMS40Ny0xLjEtMS40N2EuNS41IDAgMSAwLS44LjZMNiAxMi42N3YxLjgzYS41LjUgMCAxIDAgMSAwdi0xLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRQeTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFB5MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtOS42NSAxLjQ0IDIuOTEgMi45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxM2EyIDIgMCAwIDEtMiAySDcuOTFjLjA2LS4xNi4wOS0uMzMuMDktLjVWMTRoM2ExIDEgMCAwIDAgMS0xVjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVWMkg1YTEgMSAwIDAgMC0xIDF2Ni4zOWwtLjA3LjA2Yy0uMjgtLjE5LS42LS4zMy0uOTMtLjM5VjNjMC0xLjEuOS0yIDItMmgzLjU5Yy4zOSAwIC43OC4xNiAxLjA2LjQ0Wk05IDQuNWMwIC4yOC4yMi41LjUuNWgyLjI5TDkgMi4yMVY0LjVaTTEuNSAxMGgxYTEuNSAxLjUgMCAxIDEgMCAzSDJ2MS41YS41LjUgMCAxIDEtMSAwdi00YS41LjUgMCAwIDEgLjUtLjVabS41IDJoLjVhLjUuNSAwIDEgMCAwLTFIMnYxWm01IC42NyAxLjQtMS44N2EuNS41IDAgMCAwLS4xLS43LjUuNSAwIDAgMC0uNy4xbC0xLjEgMS40Ny0xLjEtMS40N2EuNS41IDAgMSAwLS44LjZMNiAxMi42N3YxLjgzYS41LjUgMCAxIDAgMSAwdi0xLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWVzdGlvbk1hcmsxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXN0aW9uTWFyazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNiAxaDN2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE0djdhMiAyIDAgMCAxLTIgMkg4LjY3QTUuNSA1LjUgMCAwIDAgNCA1LjJWM2MwLTEuMS45LTIgMi0yWm00LjUgNEgxNGwtNC00djMuNWMwIC4yOC4yMi41LjUuNVptLS41IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuNSAxLjg4YS42Mi42MiAwIDEgMCAwIDEuMjUuNjIuNjIgMCAwIDAgMC0xLjI1Wm0wLTQuODhjLTEuMDUgMC0xLjg2LjgyLTEuODUgMS45NmEuNS41IDAgMCAwIDEtLjAxYzAtLjU4LjM2LS45NS44NS0uOTUuNDcgMCAuODUuNC44NS45NSAwIC4yLS4wNy4zMi0uMzYuNTVsLS4yNy4yMWMtLjUxLjQtLjcyLjcyLS43MiAxLjI5YS41LjUgMCAwIDAgMSAuMDl2LS4xNmMuMDItLjE0LjEtLjI1LjM1LS40NGwuMjgtLjIyYy41LS40LjcyLS43My43Mi0xLjMyIDAtMS4xLS44Mi0xLjk1LTEuODUtMS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVlc3Rpb25NYXJrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVlc3Rpb25NYXJrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiAxYTIgMiAwIDAgMC0yIDJ2Mi4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjNhMSAxIDAgMCAxIDEtMWgzdjIuNWMwIC44My42NyAxLjUgMS41IDEuNUgxM3Y3YTEgMSAwIDAgMS0xIDFIOS43NGMtLjMuMzgtLjY3LjcxLTEuMDcgMUgxMmEyIDIgMCAwIDAgMi0yVjUuNDJjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkyLTIuOTJBMS41IDEuNSAwIDAgMCA5LjU4IDFINlptNCAzLjVWMi4yMWwyLjggMi44aC0yLjNhLjUuNSAwIDAgMS0uNS0uNVptMCA2YTQuNSA0LjUgMCAxIDAtOSAwIDQuNSA0LjUgMCAwIDAgOSAwWm0tNC41IDEuODhhLjYyLjYyIDAgMSAxIDAgMS4yNS42Mi42MiAwIDAgMSAwLTEuMjVabTAtNC44OGMxLjAzIDAgMS44NS44NSAxLjg1IDEuOTUgMCAuNTktLjIxLjkxLS43MiAxLjMybC0uMjguMjJjLS4yNS4xOS0uMzMuMy0uMzUuNDR2LjE2YS41LjUgMCAwIDEtMS0uMDljMC0uNTcuMjEtLjg4LjcyLTEuMjlsLjI3LS4yMWMuMy0uMjMuMzYtLjM1LjM2LS41NSAwLS41NS0uMzgtLjk1LS44NS0uOTUtLjUgMC0uODYuMzctLjg1Ljk1YS41LjUgMCAwIDEtMSAwYy0uMDEtMS4xMy44LTEuOTUgMS44NS0xLjk1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWVzdGlvbk1hcmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXN0aW9uTWFyazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2OC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5Ljc0QTUuNSA1LjUgMCAwIDAgNCA5LjJWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTEwIDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjUgMS44OGEuNjIuNjIgMCAxIDEgMCAxLjI1LjYyLjYyIDAgMCAxIDAtMS4yNVptMC00Ljg4YzEuMDMgMCAxLjg1Ljg1IDEuODUgMS45NSAwIC41OS0uMjEuOTEtLjcyIDEuMzJsLS4yOC4yMmMtLjI1LjE5LS4zMy4zLS4zNS40NHYuMTZhLjUuNSAwIDAgMS0xLS4wOWMwLS41Ny4yMS0uODguNzItMS4yOWwuMjctLjIxYy4zLS4yMy4zNi0uMzUuMzYtLjU1IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBjLS4wMS0xLjEzLjgtMS45NSAxLjg1LTEuOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXN0aW9uTWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXN0aW9uTWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMmMuMzItLjA4LjY2LS4xNSAxLS4xOFY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxaC0zLjZjLS4xOC4zNi0uNC43LS42NiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjUgMS44OGEuNjIuNjIgMCAxIDEgMCAxLjI1LjYyLjYyIDAgMCAxIDAtMS4yNVptMC00Ljg4YzEuMDMgMCAxLjg1Ljg1IDEuODUgMS45NSAwIC41OS0uMjEuOTEtLjcyIDEuMzJsLS4yOC4yMmMtLjI1LjE5LS4zMy4zLS4zNS40NHYuMTZhLjUuNSAwIDAgMS0xLS4wOWMwLS41Ny4yMS0uODguNzItMS4yOWwuMjctLjIxYy4zLS4yMy4zNi0uMzUuMzYtLjU1IDAtLjU1LS4zOC0uOTUtLjg1LS45NS0uNSAwLS44Ni4zNy0uODUuOTVhLjUuNSAwIDEgMS0xIDBjLS4wMS0xLjEzLjgtMS45NSAxLjg1LTEuOTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXN0aW9uTWFyazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVlc3Rpb25NYXJrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTYuODFBNi41IDYuNSAwIDAgMCA0IDExLjVWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaTTEgMTcuNWE1LjUgNS41IDAgMSAwIDExIDAgNS41IDUuNSAwIDAgMC0xMSAwWm00Ljc1IDMuMjVhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFpNNC41IDE2YTIgMiAwIDEgMSA0IDBjMCAuNzMtLjIxIDEuMTQtLjc1IDEuN2wtLjI3LjI4LS4xMS4xMmMtLjI5LjMyLS4zNy41My0uMzcuOWEuNS41IDAgMCAxLTEgMGMwLS43My4yMS0xLjE0Ljc1LTEuN2wuMjctLjI4LjExLS4xMmMuMjktLjMyLjM3LS41My4zNy0uOWExIDEgMCAxIDAtMiAwIC41LjUgMCAwIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWVzdGlvbk1hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWVzdGlvbk1hcmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC41IDIwYS41LjUgMCAwIDEtLjUuNWgtNS43M2E2LjUyIDYuNTIgMCAwIDEtMS4wOCAxLjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjVjLjQ3LS4yLjk4LS4zNCAxLjUtLjQyVjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTEgMTcuNWE1LjUgNS41IDAgMSAwIDExIDAgNS41IDUuNSAwIDAgMC0xMSAwWm00Ljc1IDMuMjVhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFpNNC41IDE2YTIgMiAwIDEgMSA0IDBjMCAuNzMtLjIxIDEuMTQtLjc1IDEuN2wtLjI3LjI4LS4xMS4xMmMtLjI5LjMyLS4zNy41My0uMzcuOWEuNS41IDAgMCAxLTEgMGMwLS43My4yMS0xLjE0Ljc1LTEuN2wuMjctLjI4LjExLS4xMmMuMjktLjMyLjM3LS41My4zNy0uOWExIDEgMCAxIDAtMiAwIC41LjUgMCAwIDEtMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWV1ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTExQzQgMi42NyA0LjY3IDIgNS41IDJIMTBaTTYuNSA1YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJaTTYgNy41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41Wk02LjUgOWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk0xMSAyLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTIuNSAxM2MuMjggMCAuNS4yMi41LjV2MUEyLjUgMi41IDAgMCAwIDUuNSAxN2g5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMWEuNS41IDAgMCAxIDEgMHYxYTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtOUEzLjUgMy41IDAgMCAxIDIgMTQuNXYtMWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWV1ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi41IDVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNNiA3LjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaTTYuNSA5YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJabTMuOTgtN2guMDRjLjQ1LjAxLjg4LjIgMS4yLjUxbDMuNzcgMy43N0ExLjc1IDEuNzUgMCAwIDEgMTYgNy41djYuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC04LjVDNC43OCAxNiA0IDE1LjIyIDQgMTQuMjVWMy43NUM0IDIuNzggNC43OCAyIDUuNzUgMmg0LjczWk01IDMuNzV2MTAuNWMwIC40MS4zNC43NS43NS43NWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm02IDIuNzVjMCAuMjguMjIuNS41LjVoMy4zbC0uMDItLjAxLTMuNzctMy43Ny0uMDEtLjAxVjYuNVptLTggN2EuNS41IDAgMCAwLTEgMHYxQTMuNSAzLjUgMCAwIDAgNS41IDE4aDlhMy41IDMuNSAwIDAgMCAzLjUtMy41di0xYS41LjUgMCAwIDAtMSAwdjFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWV1ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJoMTBhMiAyIDAgMCAwIDItMlY4LjVoLTQuNzVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVYySDdabTEuNzUgM2gxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk04IDguNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVBLjc1Ljc1IDAgMCAxIDggOC43NVpNOC43NSAxMWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xNCAybDUgNWgtNC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYyWk0yLjc1IDE1Yy40MSAwIC43NS4zNC43NS43NXYxLjc1YTMgMyAwIDAgMCAzIDNoMTFhMyAzIDAgMCAwIDMtM3YtMS43NWEuNzUuNzUgMCAwIDEgMS41IDB2MS43NWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTExQTQuNSA0LjUgMCAwIDEgMiAxNy41di0xLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTEyLjUgMkgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVldWUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWV1ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguNzUgNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk04IDguNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVBLjc1Ljc1IDAgMCAxIDggOC43NVpNOC43NSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk01IDRjMC0xLjEuOS0yIDItMmg2LjIzYTIgMiAwIDAgMSAxLjQyLjU5bDMuNzYgMy43NkEyIDIgMCAwIDEgMTkgNy43N1YxN2EyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY0Wm0yLS41YS41LjUgMCAwIDAtLjUuNXYxM2MwIC4yOC4yMi41LjUuNWgxMGEuNS41IDAgMCAwIC41LS41VjguNWgtMy4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjMuNUg3Wm03IC41NnYyLjY5YzAgLjE0LjExLjI1LjI1LjI1aDIuNjlMMTQgNC4wNlpNMy41IDE1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYxLjc1QTQuNSA0LjUgMCAwIDAgNi41IDIyaDExYTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMS43NWEuNzUuNzUgMCAwIDAtMS41IDB2MS43NWEzIDMgMCAwIDEtMyAzaC0xMWEzIDMgMCAwIDEtMy0zdi0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRRdWV1ZUFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UXVldWVBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN0E1LjUgNS41IDAgMCAxIDE2IDkuMlY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabS00LTFjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaTTYuNSA3aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFaTTYgOS41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk01LjUgMTdoNC4xYy4xOC4zNi40LjcuNjYgMUg1LjVBMy41IDMuNSAwIDAgMSAyIDE0LjV2LTFhLjUuNSAwIDAgMSAxIDB2MUEyLjUgMi41IDAgMCAwIDUuNSAxN1pNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVabTggOGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVldWVBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWV1ZUFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjUgMkg1Ljc0QzQuNzggMiA0IDIuNzggNCAzLjc1djEwLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMy40NmMtLjEtLjMyLS4xNi0uNjYtLjE5LTFINS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVYzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVIMTB2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djEuMDJjLjM0LjAzLjY4LjEgMSAuMTlWNy40OGMtLjAxLS40NS0uMi0uODgtLjUxLTEuMmwtMy43Ny0zLjc3QTEuNzUgMS43NSAwIDAgMCAxMC41IDJabS41IDEuMi4wMS4wMiAzLjc3IDMuNzcuMDEuMDFIMTEuNWEuNS41IDAgMCAxLS41LS41VjMuMlpNNS41IDE3aDQuMWMuMTguMzYuNC43LjY2IDFINS41QTMuNSAzLjUgMCAwIDEgMiAxNC41di0xYS41LjUgMCAwIDEgMSAwdjFBMi41IDIuNSAwIDAgMCA1LjUgMTdaTTYgNS41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk02LjUgN2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWm0wIDJhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVldWVBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg1LjV2NC43NWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUgxOXYyLjY3QTYuNTIgNi41MiAwIDAgMCAxMS4xNyAxOUg3YTIgMiAwIDAgMS0yLTJWNFptMyAxLjc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk04Ljc1IDhhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVpNOCAxMS43NWMwIC40MS4zNC43NS43NS43NWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVhLjc1Ljc1IDAgMCAwLS43NS43NVpNMTIuODEgMjJhNi41MiA2LjUyIDAgMCAxLTEuMDgtMS41SDYuNWEzIDMgMCAwIDEtMy0zdi0xLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxLjc1QTQuNSA0LjUgMCAwIDAgNi41IDIyaDYuMzFaTTE5IDdsLTUtNXY0Ljc1YzAgLjE0LjExLjI1LjI1LjI1SDE5Wm00IDEwLjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaTTEyLjUgMkgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVldWVBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRRdWV1ZUFkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJoNC4xN2E2LjUyIDYuNTIgMCAwIDEtLjE3LTEuNUg3YS41LjUgMCAwIDEtLjUtLjVWNGMwLS4yOC4yMi0uNS41LS41aDUuNXYzLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuMjVWMTFjLjUyIDAgMS4wMi4wNiAxLjUuMTd2LTMuNGEyIDIgMCAwIDAtLjU5LTEuNDJMMTQuNjUgMi42QTIgMiAwIDAgMCAxMy4yMyAySDdabTcgNC43NVY0LjA2TDE2Ljk0IDdoLTIuNjlhLjI1LjI1IDAgMCAxLS4yNS0uMjVaTTYuNSAyMC41aDUuMjNjLjI5LjU1LjY1IDEuMDYgMS4wOCAxLjVINi41QTQuNSA0LjUgMCAwIDEgMiAxNy41di0xLjc1YS43NS43NSAwIDAgMSAxLjUgMHYxLjc1YTMgMyAwIDAgMCAzIDNaTTggNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNUEuNzUuNzUgMCAwIDEgOCA1Ljc1Wk04Ljc1IDhhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVptMCAzYS43NS43NSAwIDAgMCAwIDEuNWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXVlTXVsdGlwbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlTXVsdGlwbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTEyLjM4IDMuNzUgMS4xMSAxLjEyTDE2IDcuMzd2LS42NmMwLS40Ni0uMTgtLjktLjUtMS4yM2wtMi40LTIuNDRBMy41IDMuNSAwIDAgMCAxMC42IDJINS43NUM0LjgzIDIgNC4wNyAyLjcyIDQgMy42MiA0LjQ4IDMuMjMgNS4xIDMgNS43NSAzaDQuODVjLjY3IDAgMS4zMS4yNyAxLjc4Ljc1Wk0yLjUgMTNjLjI4IDAgLjUuMjIuNS41djFBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFhLjUuNSAwIDAgMSAxIDB2MWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTlBMy41IDMuNSAwIDAgMSAyIDE0LjV2LTFjMC0uMjguMjItLjUuNS0uNVpNMTAgNHY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTQuNXYtOUM0IDQuNjcgNC42NyA0IDUuNSA0SDEwWk02IDcuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNVpNNi41IDlhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpNNiAxMS41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41Wm01LTcuMjVWOC41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVldWVNdWx0aXBsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlTXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xMi4zOCAzLjc1IDEuMTEgMS4xMkwxNiA3LjM3di0uNjZjMC0uNDYtLjE4LS45LS41LTEuMjNsLTIuNC0yLjQ0QTMuNSAzLjUgMCAwIDAgMTAuNiAySDUuNzVDNC44MyAyIDQuMDcgMi43MiA0IDMuNjIgNC40OCAzLjIzIDUuMSAzIDUuNzUgM2g0Ljg1Yy42NyAwIDEuMzEuMjcgMS43OC43NVpNMi41IDEzYy4yOCAwIC41LjIyLjUuNXYxQTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDEgMSAwdjFhMy41IDMuNSAwIDAgMS0zLjUgMy41aC05QTMuNSAzLjUgMCAwIDEgMiAxNC41di0xYzAtLjI4LjIyLS41LjUtLjVaTTYgNy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk02LjUgOWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWk02IDExLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVabTEwLTJ2LS4wMmMtLjAxLS40NS0uMi0uODgtLjUxLTEuMmwtMy43Ny0zLjc3QTEuNzUgMS43NSAwIDAgMCAxMC41IDRINS43NEM0Ljc4IDQgNCA0Ljc4IDQgNS43NXY4LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoOC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVY5LjUxWk01IDUuNzZjMC0uNDEuMzQtLjc1Ljc1LS43NUgxMHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2NC4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTguNVptNi0uNTQuMDEuMDEgMy43NyAzLjc3LjAxLjAxSDExLjVhLjUuNSAwIDAgMS0uNS0uNVY1LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFF1ZXVlTXVsdGlwbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlTXVsdGlwbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjM1IDYuMTZhLjUuNSAwIDAgMSAuMDcuMDhMMTkgNy44MlY2LjVhMiAyIDAgMCAwLS41OS0xLjQyTDE2LjcgMy40QTQuNzUgNC43NSAwIDAgMCAxMy4zNSAySDdhMiAyIDAgMCAwLTIgMnYuMTNjLjU3LS40IDEuMjYtLjYzIDItLjYzaDYuMzVjLjg2IDAgMS42OC4zNCAyLjI5Ljk1bDEuNzEgMS43Wk0yLjc1IDE1Yy40MSAwIC43NS4zNC43NS43NXYxLjc1YTMgMyAwIDAgMCAzIDNoMTFhMyAzIDAgMCAwIDMtM3YtMS43NWEuNzUuNzUgMCAwIDEgMS41IDB2MS43NWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTExQTQuNSA0LjUgMCAwIDEgMiAxNy41di0xLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTEyLjUgNXY0Ljc1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDE5VjE3YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjdjMC0xLjEuOS0yIDItMmg1LjVaTTggOC43NWMwIC40MS4zNC43NS43NS43NWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVhLjc1Ljc1IDAgMCAwLS43NS43NVpNOC43NSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk04IDE0Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk0xNCA1djQuNzVjMCAuMTQuMTEuMjUuMjUuMjVIMTlsLTUtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UXVldWVNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFF1ZXVlTXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy4zNSA2LjE2YS41LjUgMCAwIDEgLjA3LjA4TDE5IDcuODJWNi41YTIgMiAwIDAgMC0uNTktMS40MkwxNi43IDMuNEE0Ljc1IDQuNzUgMCAwIDAgMTMuMzUgMkg3YTIgMiAwIDAgMC0yIDJ2LjEzYy41Ny0uNCAxLjI2LS42MyAyLS42M2g2LjM1Yy44NiAwIDEuNjguMzQgMi4yOS45NWwxLjcxIDEuN1pNMi43NSAxNWMuNDEgMCAuNzUuMzQuNzUuNzV2MS43NWEzIDMgMCAwIDAgMyAzaDExYTMgMyAwIDAgMCAzLTN2LTEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNzVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xMUE0LjUgNC41IDAgMCAxIDIgMTcuNXYtMS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm02LTdhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVpNOCAxMS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOC43NSAxNGEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk03IDVhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJ2LTYuMjNhMiAyIDAgMCAwLS41OS0xLjQyTDE0LjY1IDUuNkEyIDIgMCAwIDAgMTMuMjMgNUg3Wm0tLjUgMmMwLS4yOC4yMi0uNS41LS41aDUuNXYzLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuMjVWMTdhLjUuNSAwIDAgMS0uNS41SDdhLjUuNSAwIDAgMS0uNS0uNVY3Wk0xNCA5Ljc1VjcuMDZMMTYuOTQgMTBoLTIuNjlhLjI1LjI1IDAgMCAxLS4yNS0uMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJiMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRSYjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTMuNzUgNUgxMC41YS41LjUgMCAwIDEtLjUtLjVWMS4yNUwxMy43NSA1Wk05IDQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNHY3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDguNzRjLjE1LS4yLjI3LS40LjM2LS42M2EyLjUgMi41IDAgMCAwLS4yLTIuMTYgMi40OCAyLjQ4IDAgMCAwLTEuMS0yLjg1QTIuNSAyLjUgMCAwIDAgNi41IDloLTFhMS40OSAxLjQ5IDAgMCAwLTEuMjcuN2wtLjE5LS4xNUw0IDkuNTJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOXYzLjVabS0xIDcuMWExLjUgMS41IDAgMCAxLS4yNy43NiAxLjUgMS41IDAgMCAxLS4xMiAyLjM3IDEuNSAxLjUgMCAwIDEtLjg2LjI3SDUuNWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgLjUtLjVoMUExLjUgMS41IDAgMCAxIDggMTEuNlpNNi41IDExSDZ2MWguNWEuNS41IDAgMSAwIDAtMVpNNiAxNGguNzVhLjUuNSAwIDEgMCAwLTFINnYxWm0tMi40OC0xLjQxYy4yNC4zOS40LjgyLjUgMS4yN2wuMDIuMDguMDYuMmEuNS41IDAgMCAxLS4zNS44NmMtLjQ3IDAtLjU5LS40Ni0uNy0uOXYtLjAxYy0uMS0uMzYtLjI4LTEuMS0uNTUtMS4xSDJ2MS41YS41LjUgMCAxIDEtMSAwdi00YS41LjUgMCAwIDEgLjUtLjVoMWExLjUgMS41IDAgMCAxIDEuMDIgMi42Wm0tMS4wMi0xLjZIMnYxaC41YS41LjUgMCAxIDAgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRSYjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFJiMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtOS42NSAxLjQ0IDIuOTEgMi45MWMuMjguMjkuNDQuNjcuNDQgMS4wNlYxM2EyIDIgMCAwIDEtMiAySDguNzRhMi40NSAyLjQ1IDAgMCAwIC40Ni0xSDExYTEgMSAwIDAgMCAxLTFWNkg5LjVBMS41IDEuNSAwIDAgMSA4IDQuNVYySDVhMSAxIDAgMCAwLTEgMXY2LjUybC0uMDQtLjA0LS4wNi0uMDRjLS4yNy0uMTktLjU4LS4zLS45LS4zNlYzYzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0Wk05IDQuNWMwIC4yOC4yMi41LjUuNWgyLjNMOSAyLjJ2Mi4zWm0tMSA3LjFhMS41IDEuNSAwIDAgMS0uMjcuNzYgMS41IDEuNSAwIDAgMS0uMTIgMi4zNyAxLjUgMS41IDAgMCAxLS44Ni4yN0g1LjVhLjUuNSAwIDAgMS0uNS0uNXYtNGEuNS41IDAgMCAxIC41LS41aDFBMS41IDEuNSAwIDAgMSA4IDExLjZaTTYuNSAxMUg2djFoLjVhLjUuNSAwIDEgMCAwLTFaTTYgMTRoLjc1YS41LjUgMCAxIDAgMC0xSDZ2MVptLTIuNDgtMS40MWMuMjQuMzkuNC44Mi41IDEuMjdsLjAyLjA4LjA2LjJhLjUuNSAwIDAgMS0uMzUuODZjLS40NyAwLS41OS0uNDYtLjctLjl2LS4wMWMtLjEtLjM2LS4yOC0xLjEtLjU1LTEuMUgydjEuNWEuNS41IDAgMSAxLTEgMHYtNGEuNS41IDAgMCAxIC41LS41aDFhMS41IDEuNSAwIDAgMSAxLjAyIDIuNlptLTEuMDItMS42SDJ2MWguNWEuNS41IDAgMSAwIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UmliYm9uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRSaWJib24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMXYzLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxM3Y3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDYuOThsLjAyLS4yNXYtMy4xYTQgNCAwIDAgMC00LTYuNTJWMi41QzMgMS42NyAzLjY3IDEgNC41IDFIOFptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMOSAxLjI1Wk03IDlhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0tMSAzLjQ2YTMuOTggMy45OCAwIDAgMS00IDB2Mi4yOWMwIC4yLjIxLjMxLjM4LjIxTDQgMTRsMS42Mi45NmMuMTcuMS4zOC0uMDIuMzgtLjIxdi0yLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRSaWJib24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRSaWJib24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnYyLjEzQTQgNCAwIDAgMSA0IDVWM2ExIDEgMCAwIDEgMS0xaDN2Mi41QzggNS4zMyA4LjY3IDYgOS41IDZIMTJ2N2ExIDEgMCAwIDEtMSAxSDd2Ljc1YzAgLjA5IDAgLjE3LS4wMi4yNUgxMWEyIDIgMCAwIDAgMi0yVjUuNGMwLS40LS4xNi0uNzgtLjQ0LTEuMDZMOS42NSAxLjQ0QTEuNSAxLjUgMCAwIDAgOC41OSAxSDVabTYuOCA0SDkuNWEuNS41IDAgMCAxLS41LS41VjIuMkwxMS44IDVaTTcgOWEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabS0xIDMuNDZhMy45OCAzLjk4IDAgMCAxLTQgMHYyLjI5YzAgLjIuMjEuMzEuMzguMjFMNCAxNGwxLjYyLjk2Yy4xNy4xLjM4LS4wMi4zOC0uMjF2LTIuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJpYmJvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UmliYm9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDh2LTIuMzVhNCA0IDAgMCAwLTQtNi41MlYzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMkgxMFptMSAuMjVWNi41YzAgLjI4LjIyLjUuNS41aDQuMjVMMTEgMi4yNVpNOCAxM2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabS0xIDMuNDZhMy45OCAzLjk4IDAgMCAxLTQgMHYyLjI5YzAgLjIuMjEuMzEuMzguMjFMNSAxOGwxLjYyLjk2Yy4xNy4xLjM4LS4wMi4zOC0uMjF2LTIuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJpYmJvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFJpYmJvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjUuMTNBNCA0IDAgMCAxIDUgOVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDh2MWg2YTIgMiAwIDAgMCAyLTJWNy40YzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNOCAxM2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabS0xIDMuNDZhMy45OCAzLjk4IDAgMCAxLTQgMHYyLjI5YzAgLjIuMjEuMzEuMzguMjFMNSAxOGwxLjYyLjk2Yy4xNy4xLjM4LS4wMi4zOC0uMjF2LTIuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJpYmJvbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UmliYm9uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAydjZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJIOXYtMy42N2E0LjUgNC41IDAgMCAwLTUtNy4wN1Y0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlpNOSAxNS41YTMuNSAzLjUgMCAxIDEtNyAwIDMuNSAzLjUgMCAwIDEgNyAwWm0tNiAzLjc0djMuMDVjMCAuNjMuNzYuOTUgMS4yMS41TDUuNSAyMS41bDEuMjkgMS4zQS43MS43MSAwIDAgMCA4IDIyLjI4di0zLjA1YTQuNDggNC40OCAwIDAgMS01IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJpYmJvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFJpYmJvbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41SDlWMjJoOWEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyTDEzLjYgMi42YS40OS40OSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny4yNkE0LjUgNC41IDAgMCAxIDUuNSAxMVY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk05IDE1LjVhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBabS02IDMuNzR2My4wNWMwIC42My43Ni45NSAxLjIxLjVMNS41IDIxLjVsMS4yOSAxLjNBLjcxLjcxIDAgMCAwIDggMjIuMjh2LTMuMDVhNC40OCA0LjQ4IDAgMCAxLTUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UmliYm9uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRSaWJib24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDJ2OGMwIDEuMS45IDIgMiAyaDh2MTEuNmEyLjQgMi40IDAgMCAxLTIuNCAyLjRIMTF2LTQuMzRhNS41IDUuNSAwIDAgMC03LTguMDZWNC40QTIuNCAyLjQgMCAwIDEgNi40IDJIMTRaTTkgMjMuNGMuMzYtLjE5LjctLjQgMS0uNjZ2My41NmEuNy43IDAgMCAxLTEuMTMuNTVMNi41IDI1bC0xLjA0LjgtMS4zMyAxLjA1QS43LjcgMCAwIDEgMyAyNi4zdi0zLjU2YTUuNTEgNS41MSAwIDAgMCA2IC42NlpNNi41IDIzQTQuNDggNC40OCAwIDAgMSAyIDE4LjUgNC41IDQuNSAwIDEgMSA2LjUgMjNabTktMjAuNTJWMTBjMCAuMjcuMjIuNS41LjVoNy41Yy0uMDktLjEzLS4yLS4yNS0uMy0uMzdMMTUuNzUgMi43YTIuNCAyLjQgMCAwIDAtLjI2LS4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UmliYm9uMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UmliYm9uMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNi40IDJBMi40IDIuNCAwIDAgMCA0IDQuNHY5LjJjLjQ3LS4yNC45Ny0uNDEgMS41LS41MVY0LjRjMC0uNS40LS45LjktLjlIMTRWMTBjMCAxLjEuOSAyIDIgMmg2LjV2MTEuNmMwIC41LS40LjktLjkuOUgxMVYyNmgxMC42YTIuNCAyLjQgMCAwIDAgMi40LTIuNFYxMS41OGMwLS43My0uMjktMS40My0uOC0xLjk1TDE2LjI1IDIuN2EyLjQgMi40IDAgMCAwLTEuNy0uN0g2LjRabTE1LjU0IDguNUgxNmEuNS41IDAgMCAxLS41LS41VjQuMDZsNi40NCA2LjQ0Wk01LjUgMTQuMUE0LjQ4IDQuNDggMCAwIDAgMiAxOC41YTQuNSA0LjUgMCAxIDAgMy41LTQuMzlabS0uMDQgMTEuN0w2LjUgMjVsMi4zNyAxLjg1QS43LjcgMCAwIDAgMTAgMjYuM3YtMy41NmE1LjQ4IDUuNDggMCAwIDEtNyAwdjMuNTZhLjcuNyAwIDAgMCAxLjEzLjU1bDEuMzMtMS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UmliYm9uMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRSaWJib24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDJ2N2EzIDMgMCAwIDAgMyAzaDd2MTVhMyAzIDAgMCAxLTMgM0gxMy41di01LjlBNyA3IDAgMCAwIDUgMTMuOTZWNS4wMWEzIDMgMCAwIDEgMy0zaDlabS02LjUgMjQuNTVhNi43NiA2Ljc2IDAgMCAwIDEuNS0xLjAydjQuNTJhLjk1Ljk1IDAgMCAxLTEuNDQuODFMNy41IDI5bC0zLjA2IDEuODZBLjk1Ljk1IDAgMCAxIDMgMzAuMDV2LTQuNTJhNi43NSA2Ljc1IDAgMCAwIDQuNDkgMS43MmguMDJjMS4wNyAwIDIuMDktLjI1IDIuOTktLjdabS0zLS41NUE1LjQ4IDUuNDggMCAwIDEgMiAyMC41IDUuNSA1LjUgMCAxIDEgNy41IDI2Wk0xOSAyLjEyVjlhMSAxIDAgMCAwIDEgMWg2Ljg4YTMgMyAwIDAgMC0uNzYtMS4zTDIwLjMgMi44OUEzIDMgMCAwIDAgMTkgMi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50UmliYm9uMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UmliYm9uMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOCAyYTMgMyAwIDAgMC0zIDN2OC45NmMuNjMtLjI0IDEuMy0uNCAyLS40NFY1YTEgMSAwIDAgMSAxLTFoOXY1YTMgMyAwIDAgMCAzIDNoNXYxNWExIDEgMCAwIDEtMSAxSDEzLjV2MkgyNGEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFptMTYuNTkgOEgyMGExIDEgMCAwIDEtMS0xVjQuNDFMMjQuNTkgMTBaTTcgMTUuMDJhNS40NyA1LjQ3IDAgMCAwLTUgNS40OCA1LjUgNS41IDAgMSAwIDUtNS40OFpNNC40NCAzMC44NkEuOTUuOTUgMCAwIDEgMyAzMC4wNXYtNC41MmE2Ljc1IDYuNzUgMCAwIDAgOSAwdjQuNTJhLjk1Ljk1IDAgMCAxLTEuNDQuODFMNy41IDI5bC0zLjA2IDEuODZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJpYmJvbjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50UmliYm9uNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA0djExLjI1QTMuNzUgMy43NSAwIDAgMCAyNy43NSAxOUg0MHYyMWEzIDMgMCAwIDEtMyAzSDE5di02LjY3QTkuNSA5LjUgMCAwIDAgOCAyMS42NlY3YTMgMyAwIDAgMSAzLTNoMTNabS05IDM1LjMzYTkuNDggOS40OCAwIDAgMCAyLTEuMDh2Ni43YzAgLjg2LS45NiAxLjM1LTEuNjUuODVMMTEuNSA0M2wtMy44NSAyLjhjLS42OS41LTEuNjUgMC0xLjY1LS44NHYtNi43MWE5LjQ4IDkuNDggMCAwIDAgOSAxLjA4Wk0xMS41IDM4QTcuNDcgNy40NyAwIDAgMSA0IDMwLjVhNy41IDcuNSAwIDEgMSA3LjUgNy41Wm0xNS0zMy41NHYxMC43OWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMS43MUwyNi41IDQuNDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFJpYmJvbjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFJpYmJvbjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyLjI1IDRBNC4yNSA0LjI1IDAgMCAwIDggOC4yNXYxMy40MmE5LjQ0IDkuNDQgMCAwIDEgMi41LS42MlY4LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1SDI0djguNzVBMy43NSAzLjc1IDAgMCAwIDI3Ljc1IDE5aDkuNzV2MjAuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDE5VjQ0aDE2Ljc1QzM4LjEgNDQgNDAgNDIuMSA0MCAzOS43NVYxOC40MWMwLS42LS4yNC0xLjE2LS42Ni0xLjU5TDI3LjE4IDQuNjZjLS40My0uNDItMS0uNjYtMS42LS42NkgxMi4yNlptMjMuMjMgMTIuNWgtNy43M2MtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjcuNTJsOC45OCA4Ljk4Wk0xMC41IDIzLjA3YTcuNSA3LjUgMCAxIDAgMiAxNC44NiA3LjUgNy41IDAgMCAwLTItMTQuODZaTTcuNjUgNDUuOGMtLjY5LjUtMS42NSAwLTEuNjUtLjg0di02LjcxYTkuNDggOS40OCAwIDAgMCAxMSAwdjYuN2MwIC44Ni0uOTYgMS4zNS0xLjY1Ljg1TDExLjUgNDNsLTMuODUgMi44WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTYXNzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTYXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDF2My41QzggNS4zMyA4LjY3IDYgOS41IDZIMTN2My4wNGMtLjUuMDgtLjkzLjMyLTEuMjcuNjVBMi41IDIuNSAwIDAgMCAxMCA5aC0uMDdjLS45NSAwLTEuNzYuNTQtMi4xNiAxLjMybC0uMDktLjI3YTEuNSAxLjUgMCAwIDAtMi44NiAwbC0uMS4zQTIuNSAyLjUgMCAwIDAgMyA5LjA2VjIuNUMzIDEuNjcgMy42NyAxIDQuNSAxSDhabTEgLjI1VjQuNWMwIC4yOC4yMi41LjUuNWgzLjI1TDkgMS4yNVpNMi40MyAxMWEuNDMuNDMgMCAwIDAtLjIuOGwuOTguNWExLjQzIDEuNDMgMCAwIDEtLjY0IDIuN0gyLjVBMS41IDEuNSAwIDAgMSAxIDEzLjVhLjUuNSAwIDAgMSAxIDBjMCAuMjguMjIuNS41LjVoLjA3YS40My40MyAwIDAgMCAuMi0uOGwtLjk4LS41YTEuNDMgMS40MyAwIDAgMSAuNjQtMi43aC4wN2MuODMgMCAxLjUuNjcgMS41IDEuNWEuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLS41LS41aC0uMDdabTQuMy0uNjVhLjUuNSAwIDAgMC0uOTYgMGwtMS4yNSA0YS41LjUgMCAxIDAgLjk2LjNsLjItLjY1aDEuMTRsLjIuNjVhLjUuNSAwIDEgMCAuOTYtLjNsLTEuMjUtNFpNNi41IDEzaC0uNTJsLjI2LS44Mi4yNi44MlptMi45OS0xLjU3YzAtLjI0LjItLjQzLjQzLS40M0gxMGMuMjggMCAuNS4yMi41LjVhLjUuNSAwIDAgMCAxIDBjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0uMDdhMS40MyAxLjQzIDAgMCAwLS42NCAyLjdsLjk3LjVhLjQzLjQzIDAgMCAxLS4xOS44SDEwYS41LjUgMCAwIDEtLjUtLjUuNS41IDAgMCAwLTEgMGMwIC44My42NyAxLjUgMS41IDEuNWguMDdhMS40MyAxLjQzIDAgMCAwIC42NC0yLjdsLS45Ny0uNWEuNDMuNDMgMCAwIDEtLjI0LS4zN1ptMy45My0uNDNhLjQzLjQzIDAgMCAwLS4yLjhsLjk4LjVhMS40MyAxLjQzIDAgMCAxLS42NCAyLjdoLS4wN2ExLjUgMS41IDAgMCAxLTEuNS0xLjUuNS41IDAgMCAxIDEgMGMwIC4yOC4yMi41LjUuNWguMDdhLjQzLjQzIDAgMCAwIC4yLS44bC0uOTgtLjVhMS40MyAxLjQzIDAgMCAxIC42NC0yLjdoLjA3Yy44MyAwIDEuNS42NyAxLjUgMS41YS41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtLjUtLjVoLS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2FzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNhc3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDFhMiAyIDAgMCAwLTIgMnY2LjA1Yy4zNy4wNy43LjIzIDEgLjQ1VjNhMSAxIDAgMCAxIDEtMWgzdjIuNUM4IDUuMzMgOC42NyA2IDkuNSA2SDEydjMuNDZjLjMtLjIuNjMtLjM2IDEtLjQyVjUuNGMwLS40LS4xNi0uNzgtLjQ0LTEuMDZMOS42NSAxLjQ0QTEuNSAxLjUgMCAwIDAgOC41OSAxSDVabTYuOCA0SDkuNWEuNS41IDAgMCAxLS41LS41VjIuMkwxMS44IDVabS05LjM3IDZhLjQzLjQzIDAgMCAwLS4yLjhsLjk4LjVhMS40MyAxLjQzIDAgMCAxLS42NCAyLjdIMi41QTEuNSAxLjUgMCAwIDEgMSAxMy41YS41LjUgMCAwIDEgMSAwYzAgLjI4LjIyLjUuNS41aC4wN2EuNDMuNDMgMCAwIDAgLjItLjhsLS45OC0uNWExLjQzIDEuNDMgMCAwIDEgLjY0LTIuN2guMDdjLjgzIDAgMS41LjY3IDEuNSAxLjVhLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNWgtLjA3Wm00LjMtLjY1YS41LjUgMCAwIDAtLjk2IDBsLTEuMjUgNGEuNS41IDAgMSAwIC45Ni4zbC4yLS42NWgxLjE0bC4yLjY1YS41LjUgMCAxIDAgLjk2LS4zbC0xLjI1LTRaTTYuNSAxM2gtLjUybC4yNi0uODIuMjYuODJabTIuOTktMS41N2MwLS4yNC4yLS40My40My0uNDNIMTBjLjI4IDAgLjUuMjIuNS41YS41LjUgMCAwIDAgMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtLjA3YTEuNDMgMS40MyAwIDAgMC0uNjQgMi43bC45Ny41YS40My40MyAwIDAgMS0uMTkuOEgxMGEuNS41IDAgMCAxLS41LS41LjUuNSAwIDAgMC0xIDBjMCAuODMuNjcgMS41IDEuNSAxLjVoLjA3YTEuNDMgMS40MyAwIDAgMCAuNjQtMi43bC0uOTctLjVhLjQzLjQzIDAgMCAxLS4yNC0uMzdabTMuOTMtLjQzYS40My40MyAwIDAgMC0uMi44bC45OC41YTEuNDMgMS40MyAwIDAgMS0uNjQgMi43aC0uMDdhMS41IDEuNSAwIDAgMS0xLjUtMS41LjUuNSAwIDAgMSAxIDBjMCAuMjguMjIuNS41LjVoLjA3YS40My40MyAwIDAgMCAuMi0uOGwtLjk4LS41YTEuNDMgMS40MyAwIDAgMSAuNjQtMi43aC4wN2MuODMgMCAxLjUuNjcgMS41IDEuNWEuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLS41LS41aC0uMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNhc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNhc3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djhhMi41IDIuNSAwIDAgMSAuOTggMi4yMmwuNi0xLjcyYTEuNSAxLjUgMCAwIDEgMi44NCAwTDkgMTMuNjd2LS4xN2EyLjUgMi41IDAgMCAxIDQuNS0xLjUgMi41IDIuNSAwIDAgMSAyLjUtLjk1VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptMSAwVjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTIuNSAxM2EuNS41IDAgMCAwLS41LjV2LjI0YzAgLjI3LjE2LjUzLjQuNjVsLjY0LjMyYy41OS4zLjk2LjkuOTYgMS41NXYuMjRhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4yNGEuNzQuNzQgMCAwIDAtLjQtLjY1bC0uNjQtLjMyYy0uNTktLjMtLjk2LS45LS45Ni0xLjU1di0uMjRhMS41IDEuNSAwIDAgMSAzIDAgLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNVptNC45Ny0uNjdhLjUuNSAwIDAgMC0uOTQgMGwtMS43NSA1YS41LjUgMCAxIDAgLjk0LjM0bC4yMy0uNjdoMi4xbC4yMy42N2EuNS41IDAgMSAwIC45NC0uMzRsLTEuNzUtNVpNNy43IDE2SDYuM2wuNy0xLjk5LjcgMS45OVptMy4zLTIuNWEuNS41IDAgMCAxIDEgMCAuNS41IDAgMCAwIDEgMCAxLjUgMS41IDAgMCAwLTMgMHYuMjRjMCAuNjUuMzcgMS4yNS45NiAxLjU1bC42My4zMmMuMjUuMTIuNDEuMzguNDEuNjV2LjI0YS41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwIDEuNSAxLjUgMCAwIDAgMyAwdi0uMjRjMC0uNjUtLjM3LTEuMjUtLjk2LTEuNTVsLS42My0uMzJhLjc0Ljc0IDAgMCAxLS40MS0uNjV2LS4yNFptNC41LS41YS41LjUgMCAwIDAtLjUuNXYuMjRjMCAuMjcuMTYuNTMuNC42NWwuNjQuMzJjLjU5LjMuOTYuOS45NiAxLjU1di4yNGExLjUgMS41IDAgMCAxLTMgMCAuNS41IDAgMCAxIDEgMCAuNS41IDAgMCAwIDEgMHYtLjI0YS43NC43NCAwIDAgMC0uNC0uNjVsLS42NC0uMzJjLS41OS0uMy0uOTYtLjktLjk2LTEuNTV2LS4yNGExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTYXNzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2FzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZ2My42NGEyLjUxIDIuNTEgMCAwIDAtMSAwVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY5LjRhMi41IDIuNSAwIDAgMC0xLTEuOVY0Wm03LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTkgNmEuNS41IDAgMCAwLS41LjV2LjI0YzAgLjI3LjE2LjUzLjQuNjVsLjY0LjMyYy41OS4zLjk2LjkuOTYgMS41NXYuMjRhMS41IDEuNSAwIDAgMS0zIDAgLjUuNSAwIDAgMSAxIDAgLjUuNSAwIDAgMCAxIDB2LS4yNGEuNzQuNzQgMCAwIDAtLjQtLjY1bC0uNjQtLjMyYy0uNTktLjMtLjk2LS45LS45Ni0xLjU1di0uMjRhMS41IDEuNSAwIDAgMSAzIDAgLjUuNSAwIDAgMS0xIDAgLjUuNSAwIDAgMC0uNS0uNVptNC45Ny0uNjdhLjUuNSAwIDAgMC0uOTQgMGwtMS43NSA1YS41LjUgMCAxIDAgLjk0LjM0bC4yMy0uNjdoMi4xbC4yMy42N2EuNS41IDAgMSAwIC45NC0uMzRsLTEuNzUtNVpNNy43IDE2SDYuM2wuNy0xLjk5LjcgMS45OVptMy4zLTIuNWEuNS41IDAgMCAxIDEgMCAuNS41IDAgMCAwIDEgMCAxLjUgMS41IDAgMCAwLTMgMHYuMjRjMCAuNjUuMzcgMS4yNS45NiAxLjU1bC42My4zMmMuMjUuMTIuNDEuMzguNDEuNjV2LjI0YS41LjUgMCAwIDEtMSAwIC41LjUgMCAwIDAtMSAwIDEuNSAxLjUgMCAwIDAgMyAwdi0uMjRjMC0uNjUtLjM3LTEuMjUtLjk2LTEuNTVsLS42My0uMzJhLjc0Ljc0IDAgMCAxLS40MS0uNjV2LS4yNFptNC41LS41YS41LjUgMCAwIDAtLjUuNXYuMjRjMCAuMjcuMTYuNTMuNC42NWwuNjQuMzJjLjU5LjMuOTYuOS45NiAxLjU1di4yNGExLjUgMS41IDAgMCAxLTMgMCAuNS41IDAgMCAxIDEgMCAuNS41IDAgMCAwIDEgMHYtLjI0YS43NC43NCAwIDAgMC0uNC0uNjVsLS42NC0uMzJjLS41OS0uMy0uOTYtLjktLjk2LTEuNTV2LS4yNGExLjUgMS41IDAgMCAxIDMgMCAuNS41IDAgMCAxLTEgMCAuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTYXZlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTYXZlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNnY4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExdi01LjU5YTIgMiAwIDAgMC0uNTktMS40MUw5IDkuNTlBMiAyIDAgMCAwIDcuNTkgOUg0VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0yIDEwaDF2Mi41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtMi40MWMuMS4wNS4yLjEyLjMuMmwxLjQgMS40MmExIDEgMCAwIDEgLjMuN1YxOGExIDEgMCAwIDEtMSAxdi00LjVhLjUuNSAwIDAgMC0uNS0uNWgtNmEuNS41IDAgMCAwLS41LjVWMTlhMSAxIDAgMCAxLTEtMXYtN2ExIDEgMCAwIDEgMS0xWm02IDV2NEgzdi00aDVabS00LTVoM3YySDR2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNhdmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTYXZlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NWgxVjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTN2MWgzYTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTQgMTBoM3YySDR2LTJabS0yIDBoMXYyLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di0yLjQxYy4xLjA1LjIuMTIuMy4ybDEuNCAxLjQyYTEgMSAwIDAgMSAuMy43VjE4YTEgMSAwIDAgMS0xIDF2LTQuNWEuNS41IDAgMCAwLS41LS41aC02YS41LjUgMCAwIDAtLjUuNVYxOWExIDEgMCAwIDEtMS0xdi03YTEgMSAwIDAgMSAxLTFabTYgNXY0SDN2LTRoNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2F2ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2F2ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC01LjA1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di02Ljg4YzAtLjY2LS4yNi0xLjMtLjczLTEuNzdsLTEuMTItMS4xMkEyLjUgMi41IDAgMCAwIDkuMzggMTFINFY0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlpNNSAxMmgzdjJINXYtMlptLTIuNSAwSDR2Mi41YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNVYxMmguMzhjLjQgMCAuNzguMTYgMS4wNi40NGwxLjEyIDEuMTJjLjI4LjI4LjQ0LjY2LjQ0IDEuMDZ2Ni44OGMwIC44My0uNjcgMS41LTEuNSAxLjVIMTB2LTUuNWEuNS41IDAgMCAwLS41LS41aC02YS41LjUgMCAwIDAtLjUuNVYyM2gtLjVBMS41IDEuNSAwIDAgMSAxIDIxLjV2LThjMC0uODMuNjctMS41IDEuNS0xLjVaTTkgMTh2NUg0di01aDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNhdmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTYXZlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTV2MWMwIC4xNy0uMDIuMzQtLjA1LjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3aDEuNVY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk01IDEyaDN2Mkg1di0yWm0tMi41IDBINHYyLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41VjEyaC4zOGMuNCAwIC43OC4xNiAxLjA2LjQ0bDEuMTIgMS4xMmMuMjguMjguNDQuNjYuNDQgMS4wNnY2Ljg4YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMHYtNS41YS41LjUgMCAwIDAtLjUtLjVoLTZhLjUuNSAwIDAgMC0uNS41VjIzaC0uNUExLjUgMS41IDAgMCAxIDEgMjEuNXYtOGMwLS44My42Ny0xLjUgMS41LTEuNVpNOSAxOHY1SDR2LTVoNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2VhcmNoMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTZWFyY2gxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMXYzLjVDOCA1LjMzIDguNjcgNiA5LjUgNkgxM3Y3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0uNTlhMS41IDEuNSAwIDAgMC0uMzUtMS41NmwtMi0yQTQuNSA0LjUgMCAwIDAgMyA1LjI2VjIuNUMzIDEuNjcgMy42NyAxIDQuNSAxSDhabTEgLjI1VjQuNWMwIC4yOC4yMi41LjUuNWgzLjI1TDkgMS4yNVpNNi42IDEyLjNhMy41IDMuNSAwIDEgMSAuNy0uN2wyLjU1IDIuNTVhLjUuNSAwIDAgMS0uNy43TDYuNiAxMi4zWk03IDkuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2VhcmNoMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2VhcmNoMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNSAxYTIgMiAwIDAgMC0yIDJ2Mi4yNmMuMzItLjEyLjY1LS4yIDEtLjIzVjNhMSAxIDAgMCAxIDEtMWgzdjIuNUM4IDUuMzMgOC42NyA2IDkuNSA2SDEydjdhMSAxIDAgMCAxLTEgMWgtLjA5Yy4xMi4zMi4xMi42OCAwIDFIMTFhMiAyIDAgMCAwIDItMlY1LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNkw5LjY1IDEuNDRBMS41IDEuNSAwIDAgMCA4LjU5IDFINVptNi44IDRIOS41YS41LjUgMCAwIDEtLjUtLjVWMi4yTDExLjggNVptLTUuMiA3LjNhMy41IDMuNSAwIDEgMSAuNy0uN2wyLjU1IDIuNTVhLjUuNSAwIDAgMS0uNy43TDYuNiAxMi4zWk03IDkuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2VhcmNoMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTZWFyY2gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuNzZhNC41IDQuNSAwIDAgMSA1LjU2IDYuMThsMiAyYy4xNi4xNi4yOC4zNi4zNS41NmgyLjU5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk01LjUgMTdjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDguMyAxNS42QTMuNSAzLjUgMCAxIDAgNS41IDE3Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNlYXJjaDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNlYXJjaDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMmgtMi4wOWExLjUgMS41IDAgMCAwLS4zNS0uNTZsLS40NC0uNDRIMTRhMSAxIDAgMCAwIDEtMVY4aC0zLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWM0g2YTEgMSAwIDAgMC0xIDF2NS4wM2MtLjM1LjA0LS42OC4xMS0xIC4yM1Y0Wm03LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTYgMTBjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDguMyAxNS42QTMuNSAzLjUgMCAxIDAgNS41IDE3Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNlYXJjaDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2VhcmNoMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA4VjJINmEyIDIgMCAwIDAtMiAydjcuNmE1LjUgNS41IDAgMCAxIDcuNDMgNy4zNWwyLjA2IDIuMDZjLjI4LjI4LjQ0LjYzLjUuOTlIMThhMiAyIDAgMCAwIDItMlYxMGgtNmEyIDIgMCAwIDEtMi0yWm0xLjUgMFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVabS03IDEzYy45NyAwIDEuODctLjMgMi42LS44M2wyLjYyIDIuNjFhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi42MS0yLjYxQTQuNSA0LjUgMCAxIDAgNi41IDIxWm0wLTEuNWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNlYXJjaDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNlYXJjaDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDYuMTdhMiAyIDAgMCAxIDEuNDIuNTlMMTkuNCA4LjRBMiAyIDAgMCAxIDIwIDkuODNWMjBhMiAyIDAgMCAxLTIgMmgtNC4wMmMtLjA1LS4zNi0uMjEtLjctLjUtLjk5bC0uNS0uNTFIMThhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXY3LjFjLS41My4wOS0xLjAzLjI2LTEuNS41VjRabTEwIDQuNWgzLjM4TDEzLjUgNC42MlY4YzAgLjI4LjIyLjUuNS41Wk02LjUgMjFjLjk3IDAgMS44Ny0uMyAyLjYtLjgzbDIuNjIgMi42MWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjYxLTIuNjFBNC41IDQuNSAwIDEgMCA2LjUgMjFabTAtMS41YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2VhcmNoMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTZWFyY2gzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDlWMkg4YTMgMyAwIDAgMC0zIDN2MTAuMTJhNy41IDcuNSAwIDAgMSA5Ljc3IDEwLjFsMi41IDIuNTFjLjYxLjYyLjg0IDEuNDguNjggMi4yN0gyNGEzIDMgMCAwIDAgMy0zVjEyaC03YTMgMyAwIDAgMS0zLTNabTIgMFYyLjEyYTMgMyAwIDAgMSAxLjMuNzZsNS44MiA1LjgzYTMgMyAwIDAgMSAuNzYgMS4yOUgyMGExIDEgMCAwIDEtMS0xWk04IDI4YzEuMyAwIDIuNS0uNDEgMy40OC0xLjFsMy4zMSAzLjNhMSAxIDAgMCAwIDEuNDItMS40bC0zLjMyLTMuMzJBNiA2IDAgMSAwIDggMjhabTAtMmE0IDQgMCAxIDEgMC04IDQgNCAwIDAgMSAwIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNlYXJjaDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNlYXJjaDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTUgNWEzIDMgMCAwIDEgMy0zaDEwLjE3YTMgMyAwIDAgMSAyLjEyLjg4bDUuODMgNS44M2EzIDMgMCAwIDEgLjg4IDIuMTJWMjdhMyAzIDAgMCAxLTMgM2gtNi4wNWEyLjUgMi41IDAgMCAwLS40NS0ySDI0YTEgMSAwIDAgMCAxLTFWMTJoLTVhMyAzIDAgMCAxLTMtM1Y0SDhhMSAxIDAgMCAwLTEgMXY5LjU3Yy0uNy4wOS0xLjM3LjI4LTIgLjU1VjVabTE1IDVoNC41OUwxOSA0LjQxVjlhMSAxIDAgMCAwIDEgMVpNOCAyOGMxLjMgMCAyLjUtLjQxIDMuNDgtMS4xbDMuMzEgMy4zYTEgMSAwIDAgMCAxLjQyLTEuNGwtMy4zMi0zLjMyQTYgNiAwIDEgMCA4IDI4Wm0wLTJhNCA0IDAgMSAxIDAtOCA0IDQgMCAwIDEgMCA4WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTZXR0aW5nczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2V0dGluZ3MxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjY2QTUuNSA1LjUgMCAwIDAgNCA1LjJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVpNMS42MyA5LjkyYTIgMiAwIDAgMCAxLjQzLTIuNDhsLS4xNS0uNTVjLjI1LS4yLjUzLS4zNy44Mi0uNWwuMzQuMzZhMiAyIDAgMCAwIDIuOSAwbC4zMy0uMzVjLjMuMTQuNTguMzIuODQuNTJMOCA3LjM0YTIgMiAwIDAgMCAxLjQ2IDIuNTJsLjM1LjA5YTQuNyA0LjcgMCAwIDEgMCAxLjAxbC0uNDUuMTJhMiAyIDAgMCAwLTEuNDQgMi40OGwuMTYuNTVjLS4yNS4yLS41My4zNy0uODIuNWwtLjM0LS4zNmEyIDIgMCAwIDAtMi45IDBsLS4zMy4zNWMtLjMtLjE0LS41OC0uMzItLjg0LS41MmwuMTMtLjQyYTIgMiAwIDAgMC0xLjQ2LTIuNTJsLS4zNS0uMDlhNC43IDQuNyAwIDAgMSAwLTEuMDFsLjQ1LS4xMlptNC44Ny41OGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNldHRpbmdzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2V0dGluZ3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYyLjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWM2ExIDEgMCAwIDEgMS0xaDN2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdjdhMSAxIDAgMCAxLTEgMUg5Ljc0Yy0uMzEuMzgtLjY3LjcyLTEuMDggMUgxMmEyIDIgMCAwIDAgMi0yVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkxLTIuOTFBMS41IDEuNSAwIDAgMCA5LjU5IDFINlptNi44IDRoLTIuM2EuNS41IDAgMCAxLS41LS41VjIuMkwxMi44IDVaTTEuNjIgOS45MmEyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTUtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUyTDggNy4zNGEyIDIgMCAwIDAgMS40NiAyLjUybC4zNS4wOWE0LjcgNC43IDAgMCAxIDAgMS4wMWwtLjQ1LjEyYTIgMiAwIDAgMC0xLjQ0IDIuNDhsLjE2LjU1Yy0uMjUuMi0uNTMuMzctLjgyLjVsLS4zNC0uMzZhMiAyIDAgMCAwLTIuOSAwbC0uMzMuMzVjLS4zLS4xNC0uNTgtLjMyLS44NC0uNTJsLjEzLS40MmEyIDIgMCAwIDAtMS40Ni0yLjUybC0uMzUtLjA5YTQuNyA0LjcgMCAwIDEgMC0xLjAxbC40NS0uMTJabTQuODcuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTZXR0aW5nczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOC42NkE1LjUgNS41IDAgMCAwIDQgOC4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wm0tNy45NCA4LjJhMiAyIDAgMCAxLTEuNDMgMi40N2wtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAzIDE2LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDggMTAuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVpNNS41IDE0LjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTZXR0aW5nczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNldHRpbmdzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NC4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFIOS43NGMtLjMxLjM4LS42Ny43Mi0xLjA4IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wm04LjggNWgtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMy4wNSAxMC40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDMgMTYuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgOCAxMC4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wk01LjUgMTQuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2lnbmF0dXJlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDQuNVYxSDQuNUMzLjY3IDEgMyAxLjY3IDMgMi41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0yLjQ0bC0xLjY3IDEuNjdjLS40LjQtLjkyLjctMS40OC44NGwtMS41LjM3Yy0uOS4yMy0xLjc0LS4yMi0yLjEzLS45NEg0LjVhLjUuNSAwIDAgMSAwLTFINmwuMDYtLjM1LjM3LTEuNWEzLjIgMy4yIDAgMCAxIC44NC0xLjQ4TDkuOTQgNkg5LjVBMS41IDEuNSAwIDAgMSA4IDQuNVptMS0zLjI1IDIuODUgMi44NS0uOS45SDkuNWEuNS41IDAgMCAxLS41LS41VjEuMjVaTTcuOTggOS4zOGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2lnbmF0dXJlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2lnbmF0dXJlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiAzYzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDIuOTEgMi45MS4wMi4wMkw5Ljk0IDZIOC41QTEuNSAxLjUgMCAwIDEgNyA0LjVWMkg0YTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLS45OGMuMTItLjA5LjIzLS4xOS4zMy0uM2wuNjctLjY2VjEzYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjNabTYuNSAyaDIuM0w4IDIuMnYyLjNjMCAuMjguMjIuNS41LjVaTTQgMTIuNWMwLS4yOC4yMi0uNS41LS41SDdsLjAzLS4xLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMmw0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS45LjkgMCAwIDEtLjMuMDNINC41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2lnbmF0dXJlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMi40NGwtMS42NyAxLjY3Yy0uNC40LS45Mi43LTEuNDguODRsLTEuNS4zN2MtLjkuMjMtMS43NC0uMjItMi4xMy0uOTRINi41YS41LjUgMCAwIDEgMC0xSDlsLjA2LS4zNS4zNy0xLjVhMy4yIDMuMiAwIDAgMSAuODQtMS40OEwxMy45NCA4SDExLjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTUuMzYuMTFhMi45IDIuOSAwIDAgMC0uMjYuMjNsLS4xNi4xNkgxMS41YS41LjUgMCAwIDEtLjUtLjVWMi4yNWw0LjM2IDQuMzZabS00LjM4IDUuNzcgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTEuMDcuMDhjLS4xOS4xMS0uMzcuMjUtLjUzLjQxTDEzLjk0IDhIMTEuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtLjk0bDEtMVYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0Wm03LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptNC4zLjU1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41LS4wMi4xSDYuNWEuNS41IDAgMCAwIDAgMUgxMWEuNS41IDAgMCAwIC4yMy0uMDZsMS4zNy0uMzRjLjM5LS4xLjc0LS4zIDEuMDItLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTaWduYXR1cmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgOFYySDZhMiAyIDAgMCAwLTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTQuMzVsLTIuODYgMi44NmMtLjQ3LjQ3LTEuMDcuOC0xLjcxLjk3bC0xLjgzLjQ2Yy0uOTUuMjQtMS44NC0uMi0yLjMtLjk0SDcuNzZhLjc1Ljc1IDAgMCAxIDAtMS41aDMuM2wuMDEtLjEuNDYtMS44MmMuMTYtLjY1LjUtMS4yNC45Ny0xLjcyTDE2LjM2IDEwSDE0YTIgMiAwIDAgMS0yLTJabTYuNy0uMy0uMy4yNi0uNTQuNTRIMTRhLjUuNSAwIDAgMS0uNS0uNVYyLjVsNS4yIDUuMlptLjQuOTctNS45IDUuOWMtLjM1LjM1LS42Ljc4LS43IDEuMjVsLS40NyAxLjgzYy0uMi44LjUzIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w1LjktNS45YTIuMjkgMi4yOSAwIDAgMC0zLjIzLTMuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDYuMTdhMiAyIDAgMCAxIDEuNDIuNTlsNS4xIDUuMS0uMy4yN0wxNi4zNiAxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXYxNmMwIC4yOC4yMi41LjUuNWgxMmEuNS41IDAgMCAwIC41LS41di0yLjg1bDEuNS0xLjVWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMTAgNC41aDMuMzhMMTMuNSA0LjYyVjhjMCAuMjguMjIuNS41LjVabS0uOCA2LjA3IDUuOS01LjlhMi4yOSAyLjI5IDAgMSAxIDMuMjMgMy4yM2wtNS45IDUuOWMtLjM0LjM1LS43OC42LTEuMjUuNzFsLTEuODMuNDZBMS4xIDEuMSAwIDAgMSAxMyAxOUg3Ljc1YS43NS43NSAwIDAgMSAwLTEuNWg0LjMybC40Mi0xLjY4Yy4xMi0uNDcuMzYtLjkuNy0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTaWduYXR1cmUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMTBWMkg2LjRBMi40IDIuNCAwIDAgMCA0IDQuNHYxOS4yQTIuNCAyLjQgMCAwIDAgNi40IDI2aDE1LjJhMi40IDIuNCAwIDAgMCAyLjQtMi40di02Ljk1bC01Ljg2IDUuODZjLS40Ny40Ny0xLjA3LjgtMS43MS45N2wtMS44My40NmMtLjk1LjI0LTEuODQtLjItMi4zLS45NEg3Ljc2YS43NS43NSAwIDAgMSAwLTEuNWg0LjNsLjAxLS4xLjQ2LTEuODJjLjE2LS42NS41LTEuMjQuOTctMS43MkwxOS4zNiAxMkgxNmEyIDIgMCAwIDEtMi0yWm04LjM2LS43Yy0uMzUuMTUtLjY4LjM4LS45Ny42NmwtLjUzLjU0SDE2YS41LjUgMCAwIDEtLjUtLjVWMi40OGMuMS4wNi4xOC4xNC4yNi4yMmw2LjYgNi42Wm0tLjI2IDEuMzctNy45IDcuOWMtLjM1LjM1LS42Ljc4LS43IDEuMjVsLS40NyAxLjgzYy0uMi44LjUzIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w3LjktNy45YTIuMjkgMi4yOSAwIDAgMC0zLjIzLTMuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQgNC40QTIuNCAyLjQgMCAwIDEgNi40IDJoOC4xN2MuNjMgMCAxLjI0LjI1IDEuNy43bDYuNDUgNi40NmMtLjQ5LjE1LS45NC40Mi0xLjMyLjhsLTUuOS01LjlWMTBjMCAuMjguMjIuNS41LjVoNC44NmwtMS41IDEuNUgxNmEyIDIgMCAwIDEtMi0yVjMuNUg2LjRjLS41IDAtLjkuNC0uOS45djE5LjJjMCAuNS40LjkuOS45aDE1LjJjLjUgMCAuOS0uNC45LS45di01LjQ1bDEuNS0xLjV2Ni45NWEyLjQgMi40IDAgMCAxLTIuNCAyLjRINi40QTIuNCAyLjQgMCAwIDEgNCAyMy42VjQuNFptMTAuMiAxNC4xNyA3LjktNy45YTIuMjkgMi4yOSAwIDEgMSAzLjIzIDMuMjNsLTcuOSA3LjljLS4zNC4zNS0uNzguNi0xLjI1LjcxbC0xLjgzLjQ2QTEuMSAxLjEgMCAwIDEgMTQgMjNINy43NWEuNzUuNzUgMCAwIDEgMC0xLjVoNS4zMmwuNDItMS42OGMuMTItLjQ3LjM2LS45LjctMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2lnbmF0dXJlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTaWduYXR1cmUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDlWMkg4YTMgMyAwIDAgMC0zIDN2MjJhMyAzIDAgMCAwIDMgM2gxNmEzIDMgMCAwIDAgMy0zdi03LjMybC01LjkgNS44NWE0LjMgNC4zIDAgMCAxLTEuOTYgMS4xMWwtMy4wMi43OEEyLjUgMi41IDAgMCAxIDEzLjIxIDI2SDlhMSAxIDAgMSAxIDAtMmg0LjE3bC43LTIuNjhjLjE4LS43MS41NS0xLjM2IDEuMDctMS44OUwyMi4zMiAxMkgyMGEzIDMgMCAwIDEtMy0zWm05LjY5LjVhNC4zOCA0LjM4IDAgMCAwLTIuMS41SDIwYTEgMSAwIDAgMS0xLTFWMi4xMmEzIDMgMCAwIDEgMS4zLjc2bDUuODIgNS44M2EzIDMgMCAwIDEgLjU3Ljc5Wm0xLjk2IDYuNDItOC42MSA4LjU1Yy0uMzUuMzUtLjguNi0xLjI3LjcybC0zLjAyLjc4YTEgMSAwIDAgMS0xLjIyLTEuMjJsLjgtMy4wNWMuMTEtLjQ2LjM1LS44OC42OC0xLjIxbDguNTctOC42NGEyLjg4IDIuODggMCAxIDEgNC4wNyA0LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTaWduYXR1cmUzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2lnbmF0dXJlMzJMaWdodCcsIFwiMzJcIiwgW1wiTTggM2EyIDIgMCAwIDAtMiAydjIyYzAgMS4xLjkgMiAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS4zNGwxLS45OVYyN2EzIDMgMCAwIDEtMyAzSDhhMyAzIDAgMCAxLTMtM1Y1YTMgMyAwIDAgMSAzLTNoMTAuMjZhMy41IDMuNSAwIDAgMSAyLjQ3IDEuMDNsNS4yNCA1LjI0QTMuNSAzLjUgMCAwIDEgMjcgMTAuNXYuMDFhNC4zOCA0LjM4IDAgMCAwLTIuNDIuNDlIMjFhMyAzIDAgMCAxLTMtM1YzSDhabTEyLjAzLjczQTIuNSAyLjUgMCAwIDAgMTkgMy4xMVY4YzAgMS4xLjkgMiAyIDJoNC44OWEyLjUgMi41IDAgMCAwLS42Mi0xLjAzbC01LjI0LTUuMjRabTAgMjEuNzQgOC42MS04LjU1YTIuODggMi44OCAwIDEgMC00LjA3LTQuMDdsLTguNTYgOC42NGMtLjM0LjMzLS41Ny43NS0uNyAxLjJsLS43OCAzLjA2Yy0uMDIuMDgtLjAzLjE3LS4wMy4yNWgtNmEuNS41IDAgMCAwIDAgMWg3bC4yNS0uMDMgMy4wMi0uNzhjLjQ4LS4xMy45MS0uMzcgMS4yNi0uNzJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNpZ25hdHVyZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTUgNWEzIDMgMCAwIDEgMy0zaDEwLjE3YTMgMyAwIDAgMSAyLjEyLjg4bDUuODMgNS44M2EzIDMgMCAwIDEgLjU3Ljc5IDQuMzggNC4zOCAwIDAgMC0yLjEuNUwxOSA0LjRWOWExIDEgMCAwIDAgMSAxaDQuNThjLS4zOC4yLS43NC40Ny0xLjA3LjhsLTEuMiAxLjJIMjBhMyAzIDAgMCAxLTMtM1Y0SDhhMSAxIDAgMCAwLTEgMXYyMmExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTF2LTUuMzRsMi0xLjk4VjI3YTMgMyAwIDAgMS0zIDNIOGEzIDMgMCAwIDEtMy0zVjVabTE1LjA0IDE5LjQ3IDguNjEtOC41NWEyLjg4IDIuODggMCAxIDAtNC4wNy00LjA3TDE2IDIwLjQ5Yy0uMzQuMzMtLjU3Ljc1LS43IDEuMkwxNC43MyAyNEg5YTEgMSAwIDEgMCAwIDJoNi41YTEgMSAwIDAgMCAuMzMtLjA1bDIuOTQtLjc2YTIuOCAyLjggMCAwIDAgMS4yNy0uNzJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNpZ25hdHVyZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2lnbmF0dXJlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCAxNS4yNVY0SDExYTMgMyAwIDAgMC0zIDN2MzNhMyAzIDAgMCAwIDMgM2gyNmEzIDMgMCAwIDAgMy0zVjI4LjRsLTkuNSA5LjM2YTUgNSAwIDAgMS0yLjI2IDEuMjdsLTMuMjMuODRBMy45OSAzLjk5IDAgMCAxIDIwLjU0IDM4aC02LjNhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDUuOGMuMDItLjE3LjA1LS4zMy4xLS41bC44My0zLjI0YTUgNSAwIDAgMSAxLjI4LTIuMjVMMzIuNiAxOWgtNC44NUEzLjc1IDMuNzUgMCAwIDEgMjQgMTUuMjVabTEzLjQxLS42NWMtLjYuMjktMS4xNi42OC0xLjY1IDEuMTlsLS43LjcxaC03LjMxYy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNC40NkwzNy40MSAxNC42Wm01LjQyIDIuNTdhMy45OCAzLjk4IDAgMCAwLTUuNjUuMDJsLTEzLjUgMTMuNzJhMyAzIDAgMCAwLS43OCAxLjM1bC0uODMgMy4yNGEyIDIgMCAwIDAgMi40MyAyLjQ0bDMuMjQtLjg0YTMgMyAwIDAgMCAxLjM1LS43N0w0Mi44IDIyLjgyYTMuOTggMy45OCAwIDAgMCAuMDItNS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U2lnbmF0dXJlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U2lnbmF0dXJlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNOCA4LjI1QzggNS45IDkuOSA0IDEyLjI1IDRoMTMuMzRjLjYgMCAxLjE2LjI0IDEuNTkuNjZMMzcuMjIgMTQuN2MtLjUzLjI4LTEuMDIuNjQtMS40NiAxLjA5bC0uNS41LTguNzYtOC43N3Y3LjczYzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDcuM0wzMi42IDE5aC00Ljg1QTMuNzUgMy43NSAwIDAgMSAyNCAxNS4yNVY2LjVIMTIuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djMxLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMjMuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTguOUw0MCAyOC40djExLjM1QzQwIDQyLjEgMzguMSA0NCAzNS43NSA0NGgtMjMuNUE0LjI1IDQuMjUgMCAwIDEgOCAzOS43NVY4LjI1Wm0yOS4xOCA4Ljk0YTMuOTggMy45OCAwIDEgMSA1LjYzIDUuNjNMMjkuMSAzNi4zM2EzIDMgMCAwIDEtMS4zNS43N2wtMy4yNC44NGMtLjIuMDUtLjQuMDctLjU5LjA2aC05LjY3YTEuMjUgMS4yNSAwIDEgMSAwLTIuNWg3LjgzbC44My0zLjI0YTMgMyAwIDAgMSAuNzctMS4zNUwzNy4xOCAxNy4yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCA0LjVWMUg0LjVDMy42NyAxIDMgMS42NyAzIDIuNXY1YzAgLjI4LjIyLjUuNS41aDlhLjUuNSAwIDAgMCAuNS0uNVY2SDkuNUExLjUgMS41IDAgMCAxIDggNC41Wm0xIDBWMS4yNUwxMi43NSA1SDkuNWEuNS41IDAgMCAxLS41LS41Wm0tNSA1YS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTkgMGEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWm0tOSAzYS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFINWExIDEgMCAwIDEtMS0xdi0uNVptOSAwYS41LjUgMCAwIDAtMSAwdi41YTEgMSAwIDAgMS0xIDFoLS41YS41LjUgMCAwIDAgMCAxaC41YTIgMiAwIDAgMCAyLTJ2LS41Wk03LjUgMTRhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3BsaXRIaW50MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U3BsaXRIaW50MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNSAyYTEgMSAwIDAgMC0xIDF2NC41YS41LjUgMCAwIDEtMSAwVjNjMC0xLjEuOS0yIDItMmgzLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMi45MSAyLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjcuNWEuNS41IDAgMCAxLTEgMFY2SDkuNUExLjUgMS41IDAgMCAxIDggNC41VjJINVptNCAuMnYyLjNjMCAuMjguMjIuNS41LjVoMi4zTDkgMi4yWk0zLjUgOWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm05IDBjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVptLTkgM2MuMjggMCAuNS4yMi41LjV2LjVhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAxIDAgMUg1YTIgMiAwIDAgMS0yLTJ2LS41YzAtLjI4LjIyLS41LjUtLjVabTkgMGMuMjggMCAuNS4yMi41LjV2LjVhMiAyIDAgMCAxLTIgMmgtLjVhLjUuNSAwIDAgMSAwLTFoLjVhMSAxIDAgMCAwIDEtMXYtLjVjMC0uMjguMjItLjUuNS0uNVpNNyAxNC41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTZ2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNXYtNkM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk01IDEyYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTExIDBhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAwIDEgMHYtMVpNNSAxNS41YS41LjUgMCAwIDAtMSAwdi41YzAgMS4xLjkgMiAyIDJoLjVhLjUuNSAwIDAgMCAwLTFINmExIDEgMCAwIDEtMS0xdi0uNVptMTEgMGEuNS41IDAgMCAwLTEgMHYuNWExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNWEyIDIgMCAwIDAgMi0ydi0uNVpNOSAxN2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNwbGl0SGludDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWOS41YS41LjUgMCAwIDEtMSAwVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY1LjVhLjUuNSAwIDAgMS0xIDBWNFptNy0uOHYzLjNjMCAuMjguMjIuNS41LjVoMy4zTDExIDMuMlptLTYuNSA4LjNjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVptMTEgMGMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wk00LjUgMTVjLjI4IDAgLjUuMjIuNS41di41YTEgMSAwIDAgMCAxIDFoLjVhLjUuNSAwIDAgMSAwIDFINmEyIDIgMCAwIDEtMi0ydi0uNWMwLS4yOC4yMi0uNS41LS41Wm0xMSAwYy4yOCAwIC41LjIyLjUuNXYuNWEyIDIgMCAwIDEtMiAyaC0uNWEuNS41IDAgMCAxIDAtMWguNWExIDEgMCAwIDAgMS0xdi0uNWMwLS4yOC4yMi0uNS41LS41Wm0tNyAyLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3BsaXRIaW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTcGxpdEhpbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2Ny41YzAgLjI4LjIyLjUuNS41aDE1YS41LjUgMCAwIDAgLjUtLjVWMTBoLTZhMiAyIDAgMCAxLTItMlptMS41IDBWMi41bDYgNkgxNGEuNS41IDAgMCAxLS41LS41Wm0tOCA1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVaTTE5LjI1IDEzYy40MSAwIC43NS4zNC43NS43NXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTkgNy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVabS01LjUtMmMuNDEgMCAuNzUuMzQuNzUuNzVWMjBjMCAuMjguMjIuNS41LjVoMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINmEyIDIgMCAwIDEtMi0ydi0uNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMTMuNzUuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwVjIwYTIgMiAwIDAgMS0yIDJoLTEuMjVhLjc1Ljc1IDAgMCAxIDAtMS41SDE4YS41LjUgMCAwIDAgLjUtLjV2LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3BsaXRIaW50MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U3BsaXRIaW50MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAgMTEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjEwSDE0YTIgMiAwIDAgMS0yLTJWMy41SDZhLjUuNSAwIDAgMC0uNS41djcuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjRjMC0xLjEuOS0yIDItMmg2LjE3YS42LjYgMCAwIDEgLjA4IDBsLjA2LjAxYy4yMi4wMi40My4wNi42My4xNGwuMTYuMDljLjAyIDAgLjA0LjAyLjA1LjAzbC4wNS4wMi4wOC4wNWEyLjA3IDIuMDcgMCAwIDEgLjMuMjVsNS44MyA1LjgyQTIgMiAwIDAgMSAyMCA5Ljc1djEuNVptLTYuNS02LjYzVjhjMCAuMjguMjIuNS41LjVoMy4zOEwxMy41IDQuNjJaTTQuNzUgMTNjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0xNS4yNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wm0tMTAuNSA3LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS00LTJhLjc1Ljc1IDAgMCAwLTEuNSAwVjIwYzAgMS4xLjkgMiAyIDJoMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVINmEuNS41IDAgMCAxLS41LS41di0uNzVabTEzLjc1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjIwYS41LjUgMCAwIDEtLjUuNWgtMS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMThhMiAyIDAgMCAwIDItMnYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnRPZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludE9mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAzLjd2My44YzAgLjI4LjIyLjUuNS41aDMuOGw0LjcgNC43di4zYTEgMSAwIDAgMS0xIDFoLS41YS41LjUgMCAwIDAgMCAxaC41YTIgMiAwIDAgMCAxLjktMS4zOWwxLjI1IDEuMjRhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDMgMy43MVptOSA2LjE4LjkuOWEuNS41IDAgMCAwIC4xLS4yOHYtMWEuNS41IDAgMCAwLTEgMHYuMzhabS04LjUtOC41TDEwLjEyIDhoMi4zOGEuNS41IDAgMCAwIC41LS41VjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVWMUg0LjVjLS4zOCAwLS43My4xNC0xIC4zOFpNOSA0LjVWMS4yNUwxMi43NSA1SDkuNWEuNS41IDAgMCAxLS41LS41Wm0tNSA1YS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTAgM2EuNS41IDAgMCAwLTEgMHYuNWMwIDEuMS45IDIgMiAyaC41YS41LjUgMCAwIDAgMC0xSDVhMSAxIDAgMCAxLTEtMXYtLjVaTTcuNSAxNGEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnRPZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTcGxpdEhpbnRPZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDMuN3YzLjhhLjUuNSAwIDAgMCAxIDBWNC43bDggOHYuM2ExIDEgMCAwIDEtMSAxaC0uNWEuNS41IDAgMCAwIDAgMWguNWEyIDIgMCAwIDAgMS45LTEuMzlsMS4yNSAxLjI0YS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN0wzIDMuNzFabTkgNi4xOC45LjlhLjUuNSAwIDAgMCAuMS0uMjh2LTFhLjUuNSAwIDAgMC0xIDB2LjM4Wk0zLjY1IDEuNTNsLjcuN0ExIDEgMCAwIDEgNSAyaDN2Mi41QzggNS4zMyA4LjY3IDYgOS41IDZIMTJ2MS41YS41LjUgMCAwIDAgMSAwVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2TDkuNjUgMS40NEExLjUgMS41IDAgMCAwIDguNTkgMUg1YTIgMiAwIDAgMC0xLjM1LjUzWk05IDIuMiAxMS44IDVIOS41YS41LjUgMCAwIDEtLjUtLjVWMi4yWk0zLjUgOWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0wIDNjLjI4IDAgLjUuMjIuNS41di41YTEgMSAwIDAgMCAxIDFoLjVhLjUuNSAwIDAgMSAwIDFINWEyIDIgMCAwIDEtMi0ydi0uNWMwLS4yOC4yMi0uNS41LS41Wk03IDE0LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNwbGl0SGludE9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U3BsaXRIaW50T2ZmMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDQuN3Y0LjhjMCAuMjguMjIuNS41LjVoNC44bDUuNyA1Ljd2LjNhMSAxIDAgMCAxLTEgMWgtLjVhLjUuNSAwIDAgMCAwIDFoLjVhMiAyIDAgMCAwIDEuOS0xLjM5bDEuMjUgMS4yNGEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdMNCA0LjcxWm0xMSA4LjE4LjYuNkEuNS41IDAgMCAwIDE2IDEzdi0xYS41LjUgMCAwIDAtMSAwdi44OFpNNC41IDIuMzggMTIuMTIgMTBoMy4zOGEuNS41IDAgMCAwIC41LS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYySDUuNWMtLjM4IDAtLjczLjE0LTEgLjM4Wm02LjUtLjEzVjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTUgMTJhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAwIDEgMHYtMVptMCAzLjVhLjUuNSAwIDAgMC0xIDB2LjVjMCAxLjEuOSAyIDIgMmguNWEuNS41IDAgMCAwIDAtMUg2YTEgMSAwIDAgMS0xLTF2LS41Wm02IDEuNUg5YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFNwbGl0SGludE9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludE9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNC43djQuOGEuNS41IDAgMCAwIDEgMFY1LjdsMTAgMTB2LjNhMSAxIDAgMCAxLTEgMWgtLjVhLjUuNSAwIDAgMCAwIDFoLjVhMiAyIDAgMCAwIDEuOS0xLjM5bDEuMjUgMS4yNGEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdMNCA0LjcxWm0xMSA4LjE4LjYuNkEuNS41IDAgMCAwIDE2IDEzdi0xYS41LjUgMCAwIDAtMSAwdi44OFpNNC42NSAyLjUzbC43LjdBMSAxIDAgMCAxIDYgM2g0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXYxLjVhLjUuNSAwIDAgMCAxIDBWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINmEyIDIgMCAwIDAtMS4zNS41M1pNMTEgMy4yIDE0LjggN2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yWk00LjUgMTEuNWMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wm0wIDMuNWMuMjggMCAuNS4yMi41LjV2LjVhMSAxIDAgMCAwIDEgMWguNWEuNS41IDAgMCAxIDAgMUg2YTIgMiAwIDAgMS0yLTJ2LS41YzAtLjI4LjIyLS41LjUtLjVaTTkgMThhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIDAgMUg5WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnRPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFNwbGl0SGludE9mZjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZMNCA1LjA2djYuNDRjMCAuMjguMjIuNS41LjVoNi40NGw3LjU2IDcuNTZWMjBhLjUuNSAwIDAgMS0uNS41aC0xLjI1YS43NS43NSAwIDEgMCAwIDEuNUgxOGEyIDIgMCAwIDAgMS44LTEuMTRsLjkyLjkyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWm0xNS4yMiAxMy4xIDEuMzYgMS4zNmEuNzUuNzUgMCAwIDAgLjE0LS40NHYtMi40OWEuNzUuNzUgMCAwIDAtMS41IDB2MS41N1ptLTUuNzktNS43OUwxNS4xOCAxMmg0LjMyYS41LjUgMCAwIDAgLjUtLjVWMTBoLTZhMiAyIDAgMCAxLTEuMjktLjQ3Wk0xMiA4YzAgLjUuMTguOTQuNDcgMS4yOUw1LjMxIDIuMTJBMiAyIDAgMCAxIDYgMmg2djZabTEuNSAwVjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVptLTggNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wm00Ljc1IDYuNzVhLjc1Ljc1IDAgMSAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVptLTUuNS0yYy40MSAwIC43NS4zNC43NS43NVYyMGMwIC4yOC4yMi41LjUuNWgxLjI1YS43NS43NSAwIDAgMSAwIDEuNUg2YTIgMiAwIDAgMS0yLTJ2LS43NWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTcGxpdEhpbnRPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTcGxpdEhpbnRPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNkw0IDUuMDZ2Ni4xOWEuNzUuNzUgMCAwIDAgMS41IDBWNi41NmwxMyAxM1YyMGEuNS41IDAgMCAxLS41LjVoLTEuMjVhLjc1Ljc1IDAgMSAwIDAgMS41SDE4YTIgMiAwIDAgMCAxLjgtMS4xNGwuOTIuOTJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMS45OS0xLjk5YS44LjggMCAwIDAtLjAyLS4wMkwzLjI4IDIuMjJaTTEyIDhjMCAuNS4xOC45NC40NyAxLjNsLjI0LjIzQTIgMiAwIDAgMCAxNCAxMGg0LjV2MS4yNWEuNzUuNzUgMCAwIDAgMS41IDB2LTEuNWwtLjAxLS4xMmEyIDIgMCAwIDAtLjU4LTEuMjJMMTMuNiAyLjZsLS4wNS0uMDQtLjA0LS4wM2EyLjA3IDIuMDcgMCAwIDAtLjMtLjIzbC0uMDUtLjAyLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0uNy4xMkw2LjY5IDMuNUgxMlY4Wm0xLjUtMy4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWm01IDEwLjcgMS4zNiAxLjM2YS43NS43NSAwIDAgMCAuMTQtLjQ0di0yLjQ5YS43NS43NSAwIDAgMC0xLjUgMHYxLjU3Wk00Ljc1IDEzYy40MSAwIC43NS4zNC43NS43NXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNS41IDcuNWEuNzUuNzUgMCAxIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41Wm0tNS41LTJjLjQxIDAgLjc1LjM0Ljc1Ljc1VjIwYzAgLjI4LjIyLjUuNS41aDEuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDZhMiAyIDAgMCAxLTItMnYtLjc1YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFN5bmMxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFN5bmMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4LjY2QTUuNSA1LjUgMCAwIDAgNCA1LjJWMi41QzQgMS42NyA0LjY3IDEgNS41IDFIOVptMSAuMjVWNC41YzAgLjI4LjIyLjUuNS41aDMuMjVMMTAgMS4yNVpNNS41IDE1YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wk03IDh2LjE1YTMgMyAwIDAgMC0zLjYyLjQ4LjUuNSAwIDAgMCAuNy43QTIgMiAwIDAgMSA2LjQ4IDlINmEuNS41IDAgMCAwIDAgMWgxLjVhLjUuNSAwIDAgMCAuNS0uNVY4YS41LjUgMCAwIDAtMSAwWm0tMS41NSA1LjI1YTMgMyAwIDAgMCAyLjE3LS44OC41LjUgMCAxIDAtLjctLjcgMiAyIDAgMCAxLTIuMzkuMzNINWEuNS41IDAgMCAwIDAtMUgzLjVhLjUuNSAwIDAgMC0uNS41VjEzYS41LjUgMCAwIDAgMSAwdi0uMTVhMy4wMiAzLjAyIDAgMCAwIDEuNDUuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3luYzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFN5bmMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDFhMiAyIDAgMCAwLTIgMnYyLjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWM2ExIDEgMCAwIDEgMS0xaDN2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDEzdjdhMSAxIDAgMCAxLTEgMUg5Ljc0Yy0uMzEuMzgtLjY3LjcyLTEuMDggMUgxMmEyIDIgMCAwIDAgMi0yVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0yLjkxLTIuOTFBMS41IDEuNSAwIDAgMCA5LjU5IDFINlptNi44IDRoLTIuM2EuNS41IDAgMCAxLS41LS41VjIuMkwxMi44IDVaTTUuNSAxNWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVpNNyA4di4xNWEzIDMgMCAwIDAtMy42Mi40OC41LjUgMCAwIDAgLjcuN0EyIDIgMCAwIDEgNi40OCA5SDZhLjUuNSAwIDAgMCAwIDFoMS41YS41LjUgMCAwIDAgLjUtLjVWOGEuNS41IDAgMCAwLTEgMFptLTEuNTUgNS4yNWEzIDMgMCAwIDAgMi4xNy0uODguNS41IDAgMSAwLS43LS43IDIgMiAwIDAgMS0yLjM5LjMzSDVhLjUuNSAwIDAgMCAwLTFIMy41YS41LjUgMCAwIDAtLjUuNVYxM2EuNS41IDAgMCAwIDEgMHYtLjE1YTMuMDIgMy4wMiAwIDAgMCAxLjQ1LjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFN5bmMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFN5bmMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS43NEE1LjUgNS41IDAgMCAwIDQgOS4yVjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTkgMS45OSAwIDAgMC0yLjM4LjM0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSA3IDEyLjE1VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgNCAxNi44NVYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVINWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3luYzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFN5bmMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY1LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0xIDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTkgMS45OSAwIDAgMC0yLjM4LjM0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSA3IDEyLjE1VjEyYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgNCAxNi44NVYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVINWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50U3luYzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U3luYzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjgxQTYuNSA2LjUgMCAwIDAgNCAxMS41VjRjMC0xLjEuOS0yIDItMmg2Wm0xLjUuNVY4YzAgLjI4LjIyLjUuNS41aDUuNWwtNi02Wk0xIDE3LjVhNS41IDUuNSAwIDEgMCAxMSAwIDUuNSA1LjUgMCAwIDAtMTEgMFpNOS41IDE0Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWgxYTIuNSAyLjUgMCAwIDAtNC4wMy4wNC41LjUgMCAxIDEtLjgtLjU5IDMuNSAzLjUgMCAwIDEgNS4zMy0uNHYtLjU1YzAtLjI4LjIyLS41LjUtLjVaTTQgMTkuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMWEyLjUgMi41IDAgMCAwIDMuOTEuMTEuNS41IDAgMCAxIC43Ny42NSAzLjUgMy41IDAgMCAxLTUuMTguMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFN5bmMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRTeW5jMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAyMGEuNS41IDAgMCAxLS41LjVoLTUuNzNhNi41MiA2LjUyIDAgMCAxLTEuMDggMS41SDE4YTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZhLjUuNSAwIDAgMC0uMDUtLjA0IDIuMDcgMi4wNyAwIDAgMC0uMzQtLjI1bC0uMDUtLjAzLS4wNS0uMDMtLjE2LS4wOWMtLjItLjA4LS40MS0uMTItLjYzLS4xNGgtLjA2YS42LjYgMCAwIDAtLjA4LS4wMUg2YTIgMiAwIDAgMC0yIDJ2Ny41Yy40Ny0uMi45OC0uMzQgMS41LS40MlY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwWm0tNS0xNS4zOCAzLjg4IDMuODhIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyWk0xIDE3LjVhNS41IDUuNSAwIDEgMCAxMSAwIDUuNSA1LjUgMCAwIDAtMTEgMFpNOS41IDE0Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWgxYTIuNSAyLjUgMCAwIDAtNC4wMy4wNC41LjUgMCAxIDEtLjgtLjU5IDMuNSAzLjUgMCAwIDEgNS4zMy0uNHYtLjU1YzAtLjI4LjIyLS41LjUtLjVaTTQgMTkuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMWEyLjUgMi41IDAgMCAwIDMuOTEuMTEuNS41IDAgMCAxIC43Ny42NSAzLjUgMy41IDAgMCAxLTUuMTguMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFN5bmMzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFN5bmMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDJ2N2EzIDMgMCAwIDAgMyAzaDd2MTVhMyAzIDAgMCAxLTMgM2gtOC44NEE5IDkgMCAwIDAgNSAxNS4yVjVhMyAzIDAgMCAxIDMtM2g5Wm0yIC4xMlY5YTEgMSAwIDAgMCAxIDFoNi44OGEzIDMgMCAwIDAtLjc2LTEuM0wyMC4zIDIuODlBMyAzIDAgMCAwIDE5IDIuMTJaTTE3IDIzYTcuNSA3LjUgMCAxIDAtMTUgMCA3LjUgNy41IDAgMCAwIDE1IDBabS0yLjc1IDBoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aC44NWEzIDMgMCAwIDAtNC40LS45Ljc2Ljc2IDAgMCAxLS44LjFjLS40OC0uMjQtLjYzLS44OC0uMi0xLjIzYTQuNDggNC40OCAwIDAgMSA2LjggMS40N3YtMS4xOWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVabS0yLjE3IDIuNThjLjMzLjMzLjMzLjg4LS4wNiAxLjE1YTQuNDggNC40OCAwIDAgMS02LjUyLTEuNjd2MS4xOWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDNhLjc1Ljc1IDAgMCAxIDAgMS41SDYuOWEzIDMgMCAwIDAgNC4yMiAxLjAyYy4zLS4xOS43LS4yLjk2LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRTeW5jMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50U3luYzMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzdjEwLjJjLjYyLS4zNiAxLjMtLjY0IDItLjg1VjVhMSAxIDAgMCAxIDEtMWg5djVhMyAzIDAgMCAwIDMgM2g1djE1YTEgMSAwIDAgMS0xIDFoLTcuMDJhOS4wNSA5LjA1IDAgMCAxLTEuODIgMkgyNGEzIDMgMCAwIDAgMy0zVjEwLjgzYTMgMyAwIDAgMC0uODgtMi4xMkwyMC4zIDIuODhBMyAzIDAgMCAwIDE4LjE3IDJIOFptMTYuNTkgOEgyMGExIDEgMCAwIDEtMS0xVjQuNDFMMjQuNTkgMTBaTTE3IDIzYTcuNSA3LjUgMCAxIDAtMTUgMCA3LjUgNy41IDAgMCAwIDE1IDBabS0yLjc1IDBoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aC44NWEzIDMgMCAwIDAtNC40LS45Ljc2Ljc2IDAgMCAxLS44LjFjLS40OC0uMjQtLjYzLS44OC0uMi0xLjIzYTQuNDggNC40OCAwIDAgMSA2LjggMS40N3YtMS4xOWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVabS0yLjE3IDIuNThjLjMzLjMzLjMzLjg4LS4wNiAxLjE1YTQuNDggNC40OCAwIDAgMS02LjUyLTEuNjd2MS4xOWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDNhLjc1Ljc1IDAgMCAxIDAgMS41SDYuOWEzIDMgMCAwIDAgNC4yMiAxLjAyYy4zLS4xOS43LS4yLjk2LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgOS4yNWMwLS4xNC4xMS0uMjUuMjUtLjI1SDd2MUg2di0uNzVaTTYgMTFoMXYxaC0uNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWMTFabTQgLjc1VjExSDh2MWgxLjc1Yy4xNCAwIC4yNS0uMTEuMjUtLjI1Wk04IDl2MWgydi0uNzVBLjI1LjI1IDAgMCAwIDkuNzUgOUg4Wm0wLTQuNVYxSDQuNUMzLjY3IDEgMyAxLjY3IDMgMi41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41VjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVaTTUgOS4yNUM1IDguNTYgNS41NiA4IDYuMjUgOGgzLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2Mi41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMy41QzUuNTYgMTMgNSAxMi40NCA1IDExLjc1di0yLjVaTTkgNC41VjEuMjVMMTIuNzUgNUg5LjVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTUgOS4yNXYyLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMy41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMi41QzExIDguNTYgMTAuNDQgOCA5Ljc1IDhoLTMuNUM1LjU2IDggNSA4LjU2IDUgOS4yNVptMSAwYzAtLjE0LjExLS4yNS4yNS0uMjVIN3YxSDZ2LS43NVptNCAuNzVIOFY5aDEuNzVjLjE0IDAgLjI1LjExLjI1LjI1VjEwWm0tMiAxaDJ2Ljc1YzAgLjE0LS4xMS4yNS0uMjUuMjVIOHYtMVptLTEgMHYxaC0uNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWMTFoMVpNMyAzYzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDIuOTEgMi45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxM2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYzWm0yLTFhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY2SDkuNUExLjUgMS41IDAgMCAxIDggNC41VjJINVptNC41IDNoMi4zTDkgMi4ydjIuM2MwIC4yOC4yMi41LjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDE1di0yaDR2MS41YS41LjUgMCAwIDEtLjUuNUg5Wm00LTQuNVYxMkg5di0yaDMuNWMuMjggMCAuNS4yMi41LjVaTTcgMTNoMXYyaC0uNWEuNS41IDAgMCAxLS41LS41VjEzWm0xLTF2LTJoLS41YS41LjUgMCAwIDAtLjUuNVYxMmgxWm0yLTUuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptLTQgNEM2IDkuNjcgNi42NyA5IDcuNSA5aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA2IDE0LjV2LTRabTUtNFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAxMC41QzYgOS42NyA2LjY3IDkgNy41IDloNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDYgMTQuNXYtNFpNOCAxNXYtMkg3djEuNWMwIC4yOC4yMi41LjUuNUg4Wm0xLTNoNHYtMS41YS41LjUgMCAwIDAtLjUtLjVIOXYyWm0wIDNoMy41YS41LjUgMCAwIDAgLjUtLjVWMTNIOXYyWm0tMS41LTVhLjUuNSAwIDAgMC0uNS41VjEyaDF2LTJoLS41Wk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2Wk01IDRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xVjRabTkuOCAzaC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTguNSAxMy4yNWMwLS4xNC4xMS0uMjUuMjUtLjI1SDEwdjEuNUg4LjV2LTEuMjVabTAgMi43NUgxMHYxLjVIOC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYxNlptNyAxLjI1VjE2aC00djEuNWgzLjc1Yy4xNCAwIC4yNS0uMTEuMjUtLjI1Wm0tNC00LjI1djEuNWg0di0xLjI1YS4yNS4yNSAwIDAgMC0uMjUtLjI1SDExLjVabS41LTVWMkg2YTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJabS0zLjI1IDMuNWg2LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NGMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTYuNUM3Ljc4IDE5IDcgMTguMjIgNyAxNy4yNXYtNGMwLS45Ny43OC0xLjc1IDEuNzUtMS43NVpNMTMuNSA4VjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguNzUgMTEuNWg2LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NGMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTYuNUM3Ljc4IDE5IDcgMTguMjIgNyAxNy4yNXYtNGMwLS45Ny43OC0xLjc1IDEuNzUtMS43NVptLS4yNSAxLjc1djEuMjVIMTBWMTNIOC43NWEuMjUuMjUgMCAwIDAtLjI1LjI1Wm0wIDIuNzV2MS4yNWMwIC4xNC4xMS4yNS4yNS4yNUgxMFYxNkg4LjVabTMgMHYxLjVoMy43NWMuMTQgMCAuMjUtLjExLjI1LS4yNVYxNmgtNFptNC0xLjV2LTEuMjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVIMTEuNXYxLjVoNFpNMTMuNTkgMi41OWEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOS44M2EyIDIgMCAwIDAtLjU5LTEuNDJMMTMuNiAyLjZaTTE4IDIwLjVINmEuNS41IDAgMCAxLS41LS41VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBhLjUuNSAwIDAgMS0uNS41Wm0tLjYyLTEySDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MmwzLjg4IDMuODhaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQXJyb3dSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVBcnJvd1JpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDEwLjI2QTUuNTIgNS41MiAwIDAgMSAxMC40IDEySDEzdi0xLjVhLjUuNSAwIDAgMC0uNS0uNUg5di4yNlpNMTMgMTNoLTIuMmE1LjUgNS41IDAgMCAxIC4xOCAyaDEuNTJhLjUuNSAwIDAgMCAuNS0uNVYxM1pNNS41IDljLjQ2IDAgLjkuMDYgMS4zMi4xNi4yLS4xLjQ0LS4xNi42OC0uMTZoNWMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS43YTUuNDkgNS40OSAwIDAgMS0xLjA2IDJoNC43NmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS43Yy40OC0uMTMuOTgtLjIgMS41LS4yWk0xMSA2LjVWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVptLTEgOGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVBLjUuNSAwIDAgMCA4IDE0LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDYuMjkgMTRIMy41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQXJyb3dSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlQXJyb3dSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSA5Yy0uMjQgMC0uNDcuMDYtLjY4LjE2LjgyLjIgMS41Ni41OCAyLjE4IDEuMVYxMGgzLjVjLjI4IDAgLjUuMjIuNS41VjEyaC0yLjZjLjE2LjMyLjMuNjUuNCAxSDEzdjEuNWEuNS41IDAgMCAxLS41LjVoLTEuNTJjLS4wMy4zNC0uMS42OC0uMTkgMWgxLjcxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTVaTTQgOS4yYy4zMi0uMDguNjYtLjE1IDEtLjE4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTMuNmMtLjE4LjM2LS40LjctLjY2IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2YTIgMiAwIDAgMC0yIDJ2NS4yWk0xNC44IDdoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTEwIDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LjM1QS41LjUgMCAwIDAgOCAxNC41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0w2LjI5IDE0SDMuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUFycm93UmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlQXJyb3dSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNSAxNy4yNVYxNmgtMi42N2MuMTEuNDguMTcuOTguMTcgMS41aDIuMjVjLjE0IDAgLjI1LS4xMS4yNS0uMjVabTAtMi43NWgtMy4yM2MtLjIyLS40MS0uNDgtLjgtLjc3LTEuMTVWMTNoMy43NWMuMTQgMCAuMjUuMTEuMjUuMjV2MS4yNVptLTktMy41Yy44OSAwIDEuNzMuMTggMi41LjVoNi4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi40MmE2LjQ5IDYuNDkgMCAwIDEtMS42NCAzSDE4YTIgMiAwIDAgMCAyLTJWMTBoLTZhMiAyIDAgMCAxLTItMlYySDZhMiAyIDAgMCAwLTIgMnY3LjVjLjc3LS4zMiAxLjYxLS41IDIuNS0uNVptNy0zVjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVpNMTIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWk0zLjUgMTdhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcuN0w4LjI5IDE3SDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVBcnJvd1JpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVBcnJvd1JpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTggMjAuNWEuNS41IDAgMCAwIC41LS41VjEwSDE0YTIgMiAwIDAgMS0yLTJWMy41SDZhLjUuNSAwIDAgMC0uNS41djcuMDhjLS41Mi4wOC0xLjAzLjIyLTEuNS40MlY0YzAtMS4xLjktMiAyLTJoNi4xN2EuNi42IDAgMCAxIC4wOCAwbC4wNi4wMWMuMjIuMDIuNDMuMDYuNjMuMTRsLjE2LjA5Yy4wMiAwIC4wNC4wMi4wNS4wM2wuMDUuMDIuMDguMDVhMi4wNyAyLjA3IDAgMCAxIC4zLjI1bDUuODMgNS44MkEyIDIgMCAwIDEgMjAgOS44M1YyMGEyIDIgMCAwIDEtMiAyaC02LjgxYy40My0uNDQuOC0uOTUgMS4wOC0xLjVIMThabS0uNjItMTJMMTMuNSA0LjYyVjhjMCAuMjguMjIuNS41LjVoMy4zOFptLTQuMzggOWMwIC41Mi0uMDYgMS4wMi0uMTcgMS41aDIuNDJjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg5Yy45OC40IDEuODMgMS4wNSAyLjUgMS44NVYxM2gzLjc1Yy4xNCAwIC4yNS4xMS4yNS4yNXYxLjI1aC0zLjIzYy4yNC40Ny40My45Ny41NiAxLjVoMi42N3YxLjI1YzAgLjE0LS4xMS4yNS0uMjUuMjVIMTNabS0xIDBhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFpNMy41IDE3YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMOC4yOSAxN0gzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQ2hlY2ttYXJrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUNoZWNrbWFyazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOSAxMC4yNkE1LjUyIDUuNTIgMCAwIDEgMTAuNCAxMkgxM3YtMS41YS41LjUgMCAwIDAtLjUtLjVIOXYuMjZaTTEzIDEzaC0yLjJhNS41IDUuNSAwIDAgMSAuMTggMmgxLjUyYS41LjUgMCAwIDAgLjUtLjVWMTNaTTUuNSA5Yy40NiAwIC45LjA2IDEuMzIuMTYuMi0uMS40NC0uMTYuNjgtLjE2aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuN2E1LjQ5IDUuNDkgMCAwIDEtMS4wNiAyaDQuNzZjLjgzIDAgMS41LS42NyAxLjUtMS41VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuN2MuNDgtLjEzLjk4LS4yIDEuNS0uMlpNMTEgNi41VjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVabS0xIDhhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDQuNSAxNS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUNoZWNrbWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlQ2hlY2ttYXJrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDljLS4yNCAwLS40Ny4wNi0uNjguMTYuODIuMiAxLjU2LjU4IDIuMTggMS4xVjEwaDMuNWMuMjggMCAuNS4yMi41LjVWMTJoLTIuNmMuMTYuMzIuMy42NS40IDFIMTN2MS41YS41LjUgMCAwIDEtLjUuNWgtMS41MmMtLjAzLjM0LS4xLjY4LS4xOSAxaDEuNzFjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVpNNCA5LjJjLjMyLS4wOC42Ni0uMTUgMS0uMThWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtMy42Yy0uMTguMzYtLjQuNy0uNjYgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZhMiAyIDAgMCAwLTIgMnY1LjJaTTE0LjggN2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE1LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQ2hlY2ttYXJrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUNoZWNrbWFyazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNSAxNy4yNVYxNmgtMi42N2MuMTEuNDguMTcuOTguMTcgMS41aDIuMjVjLjE0IDAgLjI1LS4xMS4yNS0uMjVabTAtMi43NWgtMy4yM2MtLjIyLS40MS0uNDgtLjgtLjc3LTEuMTVWMTNoMy43NWMuMTQgMCAuMjUuMTEuMjUuMjV2MS4yNVptLTktMy41Yy44OSAwIDEuNzMuMTggMi41LjVoNi4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi40MmE2LjQ5IDYuNDkgMCAwIDEtMS42NCAzSDE4YTIgMiAwIDAgMCAyLTJWMTBoLTZhMiAyIDAgMCAxLTItMlYySDZhMiAyIDAgMCAwLTIgMnY3LjVjLjc3LS4zMiAxLjYxLS41IDIuNS0uNVptNy0zVjIuNWw2IDZIMTRhLjUuNSAwIDAgMS0uNS0uNVpNMTIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMi4xNS0yLjM1YS41LjUgMCAwIDAtLjcgMEw1LjUgMTguNzlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUNoZWNrbWFyazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlQ2hlY2ttYXJrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTggMjAuNWgtNS43M2E2LjUyIDYuNTIgMCAwIDEtMS4wOCAxLjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjVjLjQ3LS4yLjk4LS4zNCAxLjUtLjQyVjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBhLjUuNSAwIDAgMS0uNS41Wm0tLjYyLTEySDE0YS41LjUgMCAwIDEtLjUtLjVWNC42MmwzLjg4IDMuODhabS00LjM4IDljMCAuNTItLjA2IDEuMDItLjE3IDEuNWgyLjQyYy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOWMuOTguNCAxLjgzIDEuMDUgMi41IDEuODVWMTNoMy43NWMuMTQgMCAuMjUuMTEuMjUuMjV2MS4yNWgtMy4yM2MuMjQuNDcuNDMuOTcuNTYgMS41aDIuNjd2MS4yNWMwIC4xNC0uMTEuMjUtLjI1LjI1SDEzWm0tMSAwYTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwTDUuNSAxOC43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlQ3ViZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVDdWJlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05Ljg2IDEyQTIgMiAwIDAgMCA5IDExdi0xaDMuNWMuMjggMCAuNS4yMi41LjVWMTJIOS44NlpNMTMgMTN2MS41YS41LjUgMCAwIDEtLjUuNUgxMHYtMmgzWk02LjI3IDkuNjRsLS4zOC0uMmEyIDIgMCAwIDAtMS43OSAwTDQgOS41di02QzQgMi42NyA0LjY3IDIgNS41IDJIMTB2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOS4zMmEyIDIgMCAwIDAgLjY4LTEuNVYxNmgyLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNWMtLjUgMC0uOTYuMjUtMS4yMy42NFpNMTEgMi4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk0xLjAzIDE2LjUxdi0zLjc3YTEgMSAwIDAgMSAuNTUtLjlsMy0xLjVhMSAxIDAgMCAxIC45IDBsMyAxLjVhMSAxIDAgMCAxIC41NS45djMuNzdhMSAxIDAgMCAxLS41NS45bC0zIDEuNWExIDEgMCAwIDEtLjkgMGwtMy0xLjVhMSAxIDAgMCAxLS41NS0uOVptMS4wNC0zLjU4YS41LjUgMCAwIDAgLjI3LjY2bDIuMi45MnYyLjYyYS41LjUgMCAxIDAgMSAwVjE0LjVsMi4xOS0uOTJhLjUuNSAwIDEgMC0uNC0uOTNsLTIuMy45OC0yLjMtLjk4YS41LjUgMCAwIDAtLjY2LjI3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUN1YmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUN1YmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjUgOWMtLjUgMC0uOTYuMjUtMS4yMy42NGwuOTMuNDZhLjUuNSAwIDAgMSAuMy0uMUg4di41bC45LjQ1LjEuMDV2LTFoMy41Yy4yOCAwIC41LjIyLjUuNVYxMkg5Ljg2YTIgMiAwIDAgMSAuMTQuNzRWMTNoM3YxLjVhLjUuNSAwIDAgMS0uNS41SDEwdjFoMi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLTVabS0zLjQuNDVhMiAyIDAgMCAxIC45LS4yMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDkuOTRhMiAyIDAgMCAxLS42MiAxSDE0YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU4IDJINmEyIDIgMCAwIDAtMiAydjUuNWwuMS0uMDVaTTE0LjggN2gtMy4zYS41LjUgMCAwIDEtLjUtLjVWMy4yTDE0LjggN1pNMS4wMiAxNi41di0zLjc2YTEgMSAwIDAgMSAuNTUtLjlsMy0xLjVhMSAxIDAgMCAxIC45IDBsMyAxLjVhMSAxIDAgMCAxIC41NS45djMuNzdhMSAxIDAgMCAxLS41NS45bC0zIDEuNWExIDEgMCAwIDEtLjkgMGwtMy0xLjVhMSAxIDAgMCAxLS41NS0uOVptMS4wNC0zLjU3YS41LjUgMCAwIDAgLjI3LjY2bDIuMi45MnYyLjYyYS41LjUgMCAxIDAgMSAwVjE0LjVsMi4xOS0uOTJhLjUuNSAwIDEgMC0uNC0uOTNsLTIuMy45OC0yLjMtLjk4YS41LjUgMCAwIDAtLjY2LjI3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUN1YmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlQ3ViZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEuNzIgMTQuNWEyLjUgMi41IDAgMCAwLS4yMi0uMzdWMTNoMy43NWMuMTQgMCAuMjUuMTEuMjUuMjV2MS4yNWgtMy43OFptLjI2IDNWMTZoMy41MnYxLjI1YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTMuMjdabTAgMS41aDMuMjdjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNi41Yy0uNDIgMC0uOC4xNS0xLjEuNGwtLjU1LS4yOGEyLjUgMi41IDAgMCAwLTIuMjQgMGwtLjg2LjQzVjRjMC0xLjEuOS0yIDItMmg2djZjMCAxLjEuOSAyIDIgMmg2djEwYTIgMiAwIDAgMS0yIDJoLTcuNDNsLjAzLS4wMmEyLjUgMi41IDAgMCAwIDEuMzgtMi4yM1YxOVpNMTMuNSAyLjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlpNLjk4IDE1LjZ2NC4xNWMwIC41Ny4zMiAxLjA5LjgzIDEuMzRsMy41IDEuNzVjLjQyLjIxLjkyLjIxIDEuMzQgMGwzLjUtMS43NWMuNS0uMjUuODMtLjc3LjgzLTEuMzRWMTUuNmExLjUgMS41IDAgMCAwLS44My0xLjM0bC0zLjUtMS43NWExLjUgMS41IDAgMCAwLTEuMzQgMGwtMy41IDEuNzVjLS41LjI2LS44My43Ny0uODMgMS4zNFptMS43OC43N2EuNS41IDAgMSAxIC40NC0uOWwyLjc4IDEuNCAyLjc4LTEuNGEuNS41IDAgMSAxIC40NC45bC0yLjcyIDEuMzZ2Mi45NWEuNS41IDAgMCAxLTEgMHYtMi45NWwtMi43Mi0xLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZUN1YmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZUN1YmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNyAxMy4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTYuNWMtLjQyIDAtLjguMTUtMS4xLjRMOS44NiAxM0gxMHYuMDdsLjYuM2MuMzYuMTguNjcuNDQuOS43NlYxM2gzLjc1Yy4xNCAwIC4yNS4xMS4yNS4yNXYxLjI1aC0zLjc4Yy4xNy4zNC4yNi43MS4yNiAxLjF2LjRoMy41MnYxLjI1YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTMuMjdWMTloMy4yN2MuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTRabS01LjEzIDcuMjVIMThhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXY3LjRhMi41IDIuNSAwIDAgMC0uNjQuMjJsLS44Ni40M1Y0YzAtMS4xLjktMiAyLTJoNi4xN2EuNi42IDAgMCAxIC4wOCAwbC4wNi4wMWMuMjIuMDIuNDMuMDYuNjMuMTRsLjE2LjA5Yy4wMiAwIC4wNC4wMi4wNS4wM2wuMDUuMDIuMDguMDVhMi4wNyAyLjA3IDAgMCAxIC4zLjI1bDUuODMgNS44MkEyIDIgMCAwIDEgMjAgOS44M1YyMGEyIDIgMCAwIDEtMiAyaC03LjQzbC4wMy0uMDJhMi41IDIuNSAwIDAgMCAxLjI3LTEuNDhaTTE0IDguNWgzLjM4TDEzLjUgNC42MlY4YzAgLjI4LjIyLjUuNS41Wk0uOTggMTkuNzVWMTUuNmMwLS41Ny4zMi0xLjA4LjgzLTEuMzRsMy41LTEuNzVhMS41IDEuNSAwIDAgMSAxLjM0IDBsMy41IDEuNzVjLjUuMjYuODMuNzcuODMgMS4zNHY0LjE1YTEuNSAxLjUgMCAwIDEtLjgzIDEuMzRsLTMuNSAxLjc1YTEuNSAxLjUgMCAwIDEtMS4zNCAwbC0zLjUtMS43NWExLjUgMS41IDAgMCAxLS44My0xLjM0Wm0xLjU1LTQuMDVhLjUuNSAwIDAgMCAuMjMuNjdsMi43MiAxLjM2djIuOTVhLjUuNSAwIDAgMCAxIDB2LTIuOTVsMi43Mi0xLjM2YS41LjUgMCAxIDAtLjQ0LS45bC0yLjc4IDEuNC0yLjc4LTEuNGEuNS41IDAgMCAwLS42Ny4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVTZWFyY2gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhYmxlU2VhcmNoMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDE1aDMuNWEuNS41IDAgMCAwIC41LS41VjEzSDl2MlptLjEyIDEgMS40NCAxLjQ0Yy4xNi4xNi4yOC4zNi4zNS41NmgzLjU5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXY1LjUzYTQuNTUgNC41NSAwIDAgMSAyLjQ0LjRBMS41IDEuNSAwIDAgMSA3LjUgOWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41SDkuMTJaTTEzIDEydi0xLjVhLjUuNSAwIDAgMC0uNS0uNUg5djJoNFptLTItOS43NVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk03LjMgMTUuNmEzLjUgMy41IDAgMSAwLS43LjdsMi41NSAyLjU1YS41LjUgMCAxIDAgLjctLjdMNy4zIDE1LjZaTTcgMTMuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVTZWFyY2gyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZVNlYXJjaDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuNDQgOS40NEExLjUgMS41IDAgMCAxIDcuNSA5aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVIOS4xMmwtLjU2LS41NmMuMjgtLjU5LjQ0LTEuMjUuNDQtMS45NFYxNWgzLjVhLjUuNSAwIDAgMCAuNS0uNVYxM0g5di41YzAtMS4wNy0uMzctMi4wNi0xLTIuODNWMTBoLS41YS41LjUgMCAwIDAtLjE1LjAyIDQuNSA0LjUgMCAwIDAtLjkxLS41OFpNMTMgMTAuNWEuNS41IDAgMCAwLS41LS41SDl2Mmg0di0xLjVaTTUgOS4wM2E0LjU1IDQuNTUgMCAwIDAtMSAwVjRjMC0xLjEuOS0yIDItMmg0LjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRsMy45MSAzLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjE2YTIgMiAwIDAgMS0yIDJoLTMuMDlhMS41IDEuNSAwIDAgMC0uMzUtLjU2bC0uNDQtLjQ0SDE0YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxdjUuMDNaTTExLjUgN2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTQuMiA4LjZhMy41IDMuNSAwIDEgMC0uNy43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDcuMyAxNS42Wk03IDEzLjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlU2VhcmNoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZVNlYXJjaDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuNDcgMTkuNWg0Ljc4Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTYuNWMtLjI0IDAtLjQ3LjA1LS42OC4xNEE1LjQ4IDUuNDggMCAwIDAgNCAxMS43VjQuNWMwLTEuMS45LTIgMi0yaDZ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNS4wMmMtLjA1LS4zNi0uMjEtLjctLjUtLjk5bC0yLTIuMDFabTUuMDMtM3YxLjI1YzAgLjE0LS4xMS4yNS0uMjUuMjVIMTEuNXYtMS41aDRabS00LTEuNXYtMS41aDMuNzVjLjE0IDAgLjI1LjExLjI1LjI1VjE1aC00Wm0yLTEydjUuNWMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlpNOS4xNyAxOS42YTQuNSA0LjUgMCAxIDAtMS4wNiAxLjA2bDIuNjEgMi42MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjYxLTIuNjFaTTguNSAxN2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhYmxlU2VhcmNoMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVTZWFyY2gyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS4yNSAxMmMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNC43OGwtLjA0LS4wNWE1LjQ4IDUuNDggMCAwIDAtLjQzLTUuNjF2LS4zNGgtLjI2YTUuNTIgNS41MiAwIDAgMC0xLjY3LTEuMzZjLjIxLS4xLjQ0LS4xNC42OC0uMTRoNi41Wm0tMy43NSA0LjVWMThoMy43NWMuMTQgMCAuMjUtLjExLjI1LS4yNVYxNi41aC00Wm00LTEuNXYtMS4yNWEuMjUuMjUgMCAwIDAtLjI1LS4yNUgxMS41VjE1aDRabTIuNSA2aC02LjAzbC41Mi41MWMuMjguMjguNDQuNjMuNS45OUgxOGEyIDIgMCAwIDAgMi0yVjEwLjMzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDMuMWEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3LjJjLjQ4LS4xMy45OC0uMiAxLjUtLjJ2LTdjMC0uMjguMjItLjUuNS0uNWg2djQuNWMwIDEuMS45IDIgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVabS0uNjItMTJIMTRhLjUuNSAwIDAgMS0uNS0uNVY1LjEyTDE3LjM4IDlaTTUuNSAyMS41Yy45NyAwIDEuODctLjMgMi42LS44M2wyLjYyIDIuNjFhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi42MS0yLjYxYTQuNSA0LjUgMCAxIDAtMy42NyAxLjlabTAtMS41YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFibGVUcnVjazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVUcnVjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJtNy44NyAxMS40My4xMy4wNVYxMGgtLjVhLjUuNSAwIDAgMC0uNDguMzVjLjM5LjI2LjcuNjQuODUgMS4wOFpNMTMgMTNIOS4zMmwuNDcuOTNhMiAyIDAgMCAxIC4yMS45VjE1aDIuNWEuNS41IDAgMCAwIC41LS41VjEzWm0tNy4xNy0zIC4yNS4wMUExLjUgMS41IDAgMCAxIDcuNSA5aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVIMTB2MWEyIDIgMCAwIDEtLjI3IDFoNC43N2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjVWMTBoMS44M1ptNy4xNy41VjEySDl2LTJoMy41Yy4yOCAwIC41LjIyLjUuNVptLTItNFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk0yLjE3IDExQzEuNTIgMTEgMSAxMS41MiAxIDEyLjE3djQuNjZjMCAuNDguMjguODguNjkgMS4wN2ExLjMzIDEuMzMgMCAwIDAgMi42LjFoLjc1YTEuMzMgMS4zMyAwIDAgMCAyLjU4IDBIOGExIDEgMCAwIDAgMS0xdi0yLjE4YTEgMSAwIDAgMC0uMS0uNDRsLS43NS0xLjVhMSAxIDAgMCAwLS45LS41NUg3di0uMTZDNyAxMS41MiA2LjQ4IDExIDUuODMgMTFIMi4xN1pNNyAxNC4zM1YxM2guMjVjLjEzIDAgLjI1LjA3LjMuMThsLjU4IDEuMTVIN1ptLTQuNjcgMy4zNGEuNjcuNjcgMCAxIDEgMS4zNCAwIC42Ny42NyAwIDAgMS0xLjM0IDBabTQgLjY2YS42Ny42NyAwIDEgMSAwLTEuMzMuNjcuNjcgMCAwIDEgMCAxLjMzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZVRydWNrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVUcnVjazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSA5YTEuNSAxLjUgMCAwIDAtMS40MiAxLjAxYy4zNS4wNC42Ny4xNi45NC4zNEEuNS41IDAgMCAxIDcuNSAxMEg4djEuNDhhMiAyIDAgMCAxIDEuMDQuOTZsLjI4LjU2SDEzdjEuNWEuNS41IDAgMCAxLS41LjVIMTB2MWgyLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVptNS41IDNIOXYtMmgzLjVjLjI4IDAgLjUuMjIuNS41VjEyWm0tOS0yaDFWNGExIDEgMCAwIDEgMS0xaDR2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE1djhhMSAxIDAgMCAxLTEgMWgtNGEyIDIgMCAwIDEtLjI3IDFIMTRhMiAyIDAgMCAwIDItMlY3LjQxYzAtLjQtLjE2LS43OC0uNDQtMS4wNmwtMy45MS0zLjkxQTEuNSAxLjUgMCAwIDAgMTAuNTkgMkg2YTIgMiAwIDAgMC0yIDJ2NlptMTAuOC0zaC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk0yLjE2IDExQzEuNTIgMTEgMSAxMS41MiAxIDEyLjE3djQuNjZjMCAuNDguMjguODguNjkgMS4wN2ExLjMzIDEuMzMgMCAwIDAgMi42LjFoLjc1YTEuMzMgMS4zMyAwIDAgMCAyLjU4IDBIOGExIDEgMCAwIDAgMS0xdi0yLjE4YTEgMSAwIDAgMC0uMS0uNDRsLS43NS0xLjVhMSAxIDAgMCAwLS45LS41NUg3di0uMTZDNyAxMS41MiA2LjQ4IDExIDUuODMgMTFIMi4xN1pNNyAxNC4zM1YxM2guMjVjLjEzIDAgLjI1LjA3LjMuMThsLjU4IDEuMTVIN1ptLTQuNjcgMy4zNGEuNjcuNjcgMCAxIDEgMS4zNCAwIC42Ny42NyAwIDAgMS0xLjM0IDBabTQgLjY2YS42Ny42NyAwIDEgMSAwLTEuMzMuNjcuNjcgMCAwIDEgMCAxLjMzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZVRydWNrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYWJsZVRydWNrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS4xMSAxNy4yNVYxNmgtMi40NmwuMS4yYy4xNi4zMy4yNS42OS4yNSAxLjA2di4yNGgxLjg2Yy4xNCAwIC4yNS0uMTEuMjUtLjI1Wm0wLTIuNzVoLTMuMmwtLjE5LS4zNWMtLjE1LS4zLS4zNi0uNTctLjYtLjc3VjEzaDMuNzRjLjE0IDAgLjI1LjExLjI1LjI1djEuMjVaTTEzIDIwLjI1VjE5aDEuODZjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg5LjE4YTIuNiAyLjYgMCAwIDAtMS41My0uNUgzLjZWNGMwLTEuMS45LTIgMi0yaDZ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMmgtNS4zOGMuNDctLjQzLjc3LTEuMDYuNzctMS43NVpNMTMuMTEgOFYyLjVsNiA2aC01LjVhLjUuNSAwIDAgMS0uNS0uNVpNMSAxMy42YzAtLjg4LjcyLTEuNiAxLjYtMS42aDUuMDVjLjg4IDAgMS42LjcyIDEuNiAxLjZ2LjIzaC4zNWMuNTIgMCAxIC4zIDEuMjMuNzZsMS4wMiAyLjA1Yy4xLjIuMTUuNC4xNS42MnYyLjk5YzAgLjc2LS42MiAxLjM4LTEuMzggMS4zOGgtLjUxYTEuODMgMS44MyAwIDAgMS0zLjU1IDBINS41M2ExLjgzIDEuODMgMCAwIDEtMy41OS0uMTVBMS42IDEuNiAwIDAgMSAxIDIwLjAyVjEzLjZabTguMjUgMS4xNXYxLjgzaDEuNTVMMTAuMDEgMTVhLjQ2LjQ2IDAgMCAwLS40MS0uMjVoLS4zNVptLTUuNSA1LjVhLjkyLjkyIDAgMSAwIDAgMS44My45Mi45MiAwIDAgMCAwLTEuODNabTMuNjcuOTJhLjkyLjkyIDAgMSAwIDEuODMgMCAuOTIuOTIgMCAwIDAtMS44MyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYWJsZVRydWNrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFibGVUcnVjazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4IDIwLjVoLTUuMDFjLS4wNi42LS4zNCAxLjEyLS43NiAxLjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNmEuNS41IDAgMCAwLS4wNS0uMDQgMi4wNyAyLjA3IDAgMCAwLS4zNC0uMjVsLS4wNS0uMDMtLjA1LS4wMy0uMTYtLjA5Yy0uMi0uMDgtLjQxLS4xMi0uNjMtLjE0aC0uMDZhLjYuNiAwIDAgMC0uMDgtLjAxSDZhMiAyIDAgMCAwLTIgMnY3aDEuNVY0YzAtLjI3LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwYS41LjUgMCAwIDEtLjUuNVptLS42Mi0xMkgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJsMy44OCAzLjg4Wm0tNC4zOCA5VjE5aDIuMjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg5LjE4Yy40Ny4zNC44MS44My45NyAxLjQuNTQuMTMgMS4wMi40NCAxLjM1Ljg4VjEzaDMuNzVjLjE0IDAgLjI1LjExLjI1LjI1djEuMjVoLTMuNmwuNzUgMS41aDIuODV2MS4yNWMwIC4xNC0uMTEuMjUtLjI1LjI1SDEzWk0yLjYgMTJjLS44OCAwLTEuNi43Mi0xLjYgMS42djYuNDJjMCAuNjUuMzkgMS4yMS45NCAxLjQ2YTEuODMgMS44MyAwIDAgMCAzLjU5LjE0aDEuMDNhMS44MyAxLjgzIDAgMCAwIDMuNTUgMGguNTJjLjc1IDAgMS4zNy0uNjEgMS4zNy0xLjM3di0zYzAtLjItLjA1LS40Mi0uMTUtLjZsLTEuMDItMi4wNmMtLjIzLS40Ni0uNy0uNzYtMS4yMy0uNzZoLS4zNXYtLjIzYzAtLjg4LS43Mi0xLjYtMS42LTEuNkgyLjZabTYuNjUgNC41OHYtMS44M2guMzVjLjE3IDAgLjMzLjEuNDEuMjVsLjc5IDEuNThIOS4yNVptLTYuNDIgNC41OWEuOTIuOTIgMCAxIDEgMS44NCAwIC45Mi45MiAwIDAgMS0xLjg0IDBabTUuNS45MWEuOTIuOTIgMCAxIDEgMC0xLjgzLjkyLjkyIDAgMCAxIDAgMS44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFyZ2V0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYXJnZXQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkuNSA1aDMuMjVMOSAxLjI1VjQuNWMwIC4yOC4yMi41LjUuNVptMCAxQTEuNSAxLjUgMCAwIDEgOCA0LjVWMUg0LjVDMy42NyAxIDMgMS42NyAzIDIuNXY0Ljc4bC4wMi0uMDFBMS40OSAxLjQ5IDAgMCAxIDQuNSA2YTEuNDkgMS40OSAwIDAgMSAxLjQ4IDEuMjcgNC41MiA0LjUyIDAgMCAxIDIuNzUgMi43NUExLjUgMS41IDAgMCAxIDEwIDExLjVhMS41IDEuNSAwIDAgMS0xLjI3IDEuNDhBNC41IDQuNSAwIDAgMSA3LjQgMTQuOWwtLjEzLjFoNC4yNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNkg5LjVabS00LjMgNC44YTEgMSAwIDAgMC0xLjUzLjE0IDEgMSAwIDAgMCAuMTIgMS4yNyAxIDEgMCAwIDAgMS43LS45IDEgMSAwIDAgMC0uMjgtLjUyWm0zLjMuMmEuNS41IDAgMSAxIDAgMWgtLjU1QTMuNDkgMy40OSAwIDAgMSA1IDE0Ljk1di41NWEuNS41IDAgMSAxLTEgMHYtLjU1QTMuNDkgMy40OSAwIDAgMSAxLjA1IDEySC41YS41LjUgMCAxIDEgMC0xaC41NUEzLjQ5IDMuNDkgMCAwIDEgNCA4LjA1VjcuNWEuNS41IDAgMSAxIDEgMHYuNTVBMy40OSAzLjQ5IDAgMCAxIDcuOTUgMTFoLjU1Wm0tMi4yMyAyLjI3YTIuNTEgMi41MSAwIDAgMCAuMTYtMy4zNiAyLjUgMi41IDAgMSAwLS4xNiAzLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYXJnZXQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYXJnZXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm05LjY1IDEuNDQgMi45MSAyLjkxYy4yOC4yOC40NC42Ny40NCAxLjA2VjEzYTIgMiAwIDAgMS0yIDJINy4yNmwuMTMtLjFjLjEtLjA3LjItLjE0LjI4LS4yMy4yLS4yLjM4LS40My41NC0uNjdIMTFhMSAxIDAgMCAwIDEtMVY2SDkuNUExLjUgMS41IDAgMCAxIDggNC41VjJINWExIDEgMCAwIDAtMSAxdjMuMWExLjQ4IDEuNDggMCAwIDAtMSAxLjE3SDNWM2MwLTEuMS45LTIgMi0yaDMuNTljLjQgMCAuNzguMTYgMS4wNi40NFpNOSA0LjVjMCAuMjguMjIuNS41LjVoMi4zTDkgMi4ydjIuM1ptLTQuNSA4YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC0xLjVoLS41NUEzLjQ5IDMuNDkgMCAwIDAgNSA4LjA1VjcuNWEuNS41IDAgMSAwLTEgMHYuNTVBMy40OSAzLjQ5IDAgMCAwIDEuMDUgMTFILjVhLjUuNSAwIDEgMCAwIDFoLjU1QTMuNDkgMy40OSAwIDAgMCA0IDE0Ljk1di41NWEuNS41IDAgMSAwIDEgMHYtLjU1QTMuNDkgMy40OSAwIDAgMCA3Ljk1IDEyaC41NWEuNS41IDAgMSAwIDAtMVptLTIuMjMgMi4yN2EyLjUgMi41IDAgMSAxLTMuNTQtMy41NCAyLjUgMi41IDAgMCAxIDMuNTQgMy41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFyZ2V0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYXJnZXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOC4zM2E0LjUgNC41IDAgMCAwIDEuNDItMi4wMiAxLjUgMS41IDAgMCAwIDAtMi45NiA0LjUxIDQuNTEgMCAwIDAtMi43Ny0yLjc3IDEuNSAxLjUgMCAwIDAtMi45NiAwSDRWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTBabTEgLjI1VjYuNWMwIC4yOC4yMi41LjUuNWg0LjI1TDExIDIuMjVaTTYgMTAuNWEuNS41IDAgMCAwLTEgMHYuNTRBMy41IDMuNSAwIDAgMCAyLjA0IDE0SDEuNWEuNS41IDAgMCAwIDAgMWguNTRBMy41IDMuNSAwIDAgMCA1IDE3Ljk2di41NGEuNS41IDAgMCAwIDEgMHYtLjU0QTMuNSAzLjUgMCAwIDAgOC45NiAxNWguNTRhLjUuNSAwIDAgMCAwLTFoLS41NEEzLjUgMy41IDAgMCAwIDYgMTEuMDR2LS41NFptMiA0YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0tMS41IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYXJnZXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYXJnZXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnY2LjI2bC4wMi0uMDFjLjEtLjU0LjQ3LS45OS45OC0xLjE2VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFIOS4yNGMtLjI1LjM4LS41Ni43MS0uOTEgMUgxNGEyIDIgMCAwIDAgMi0yVjcuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2bC0zLjkxLTMuOTFBMS41IDEuNSAwIDAgMCAxMC41OSAySDZabTguOCA1aC0zLjNhLjUuNSAwIDAgMS0uNS0uNVYzLjJMMTQuOCA3Wk02IDEwLjVhLjUuNSAwIDAgMC0xIDB2LjU0QTMuNSAzLjUgMCAwIDAgMi4wNCAxNEgxLjVhLjUuNSAwIDAgMCAwIDFoLjU0QTMuNSAzLjUgMCAwIDAgNSAxNy45NnYuNTRhLjUuNSAwIDAgMCAxIDB2LS41NEEzLjUgMy41IDAgMCAwIDguOTYgMTVoLjU0YS41LjUgMCAwIDAgMC0xaC0uNTRBMy41IDMuNSAwIDAgMCA2IDExLjA0di0uNTRabTIgNGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptLTEuNSAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFyZ2V0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUYXJnZXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJ2NmMwIDEuMS45IDIgMiAyaDZ2MTBhMiAyIDAgMCAxLTIgMkg4LjY4YTUuMDIgNS4wMiAwIDAgMCAyLjUtMi43NWguMDdhMS43NSAxLjc1IDAgMSAwIDAtMy41aC0uMDZhNS4wMSA1LjAxIDAgMCAwLTIuOTQtMi45NHYtLjA2YTEuNzUgMS43NSAwIDEgMC0zLjUgMHYuMDZjLS4yNi4xLS41MS4yMi0uNzUuMzZWNGMwLTEuMS45LTIgMi0yaDZabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaTTcuMjUgMTIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41N2E0LjI1IDQuMjUgMCAwIDAtMy40MyAzLjQzaC0uNTdhLjc1Ljc1IDAgMCAwIDAgMS41aC41N2E0LjI1IDQuMjUgMCAwIDAgMy40MyAzLjQzdi41N2EuNzUuNzUgMCAwIDAgMS41IDB2LS41N2E0LjI1IDQuMjUgMCAwIDAgMy40My0zLjQzaC41N2EuNzUuNzUgMCAwIDAgMC0xLjVoLS41N2E0LjI1IDQuMjUgMCAwIDAtMy40My0zLjQzdi0uNTdabS0zLjUgNC43NWEyLjc1IDIuNzUgMCAxIDEgNS41IDAgMi43NSAyLjc1IDAgMCAxLTUuNSAwWm00IDBhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGFyZ2V0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGFyZ2V0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2OS4xN2MuMjQtLjE0LjQ5LS4yNi43NS0uMzZ2LS4wNmMwLS42LjMtMS4xMi43NS0xLjQ0VjRjMC0uMjguMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBhLjUuNSAwIDAgMS0uNS41aC03LjVBNS4wMiA1LjAyIDAgMCAxIDguNjggMjJIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNkEyIDIgMCAwIDAgMTIuMTcgMkg2Wm0xMS4zOCA2LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYybDMuODggMy44OFpNNy4yNSAxMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2LjU3YTQuMjUgNC4yNSAwIDAgMC0zLjQzIDMuNDNoLS41N2EuNzUuNzUgMCAwIDAgMCAxLjVoLjU3YTQuMjUgNC4yNSAwIDAgMCAzLjQzIDMuNDN2LjU3YS43NS43NSAwIDAgMCAxLjUgMHYtLjU3YTQuMjUgNC4yNSAwIDAgMCAzLjQzLTMuNDNoLjU3YS43NS43NSAwIDAgMCAwLTEuNWgtLjU3YTQuMjUgNC4yNSAwIDAgMC0zLjQzLTMuNDN2LS41N1ptLTMuNSA0Ljc1YTIuNzUgMi43NSAwIDEgMSA1LjUgMCAyLjc1IDIuNzUgMCAwIDEtNS41IDBabTQgMGExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUYXJnZXQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhcmdldDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTcgMnY3YTMgMyAwIDAgMCAzIDNoN3YxNWEzIDMgMCAwIDEtMyAzSDExLjFhNy4wMiA3LjAyIDAgMCAwIDMuOTQtNCAyLjUgMi41IDAgMCAwIDAtNUE3LjAyIDcuMDIgMCAwIDAgMTEgMTYuOTZhMi41IDIuNSAwIDAgMC01IDBjLS4zNS4xMy0uNjguMy0xIC40OFY1YTMgMyAwIDAgMSAzLTNoOVptMiAuMTJWOWExIDEgMCAwIDAgMSAxaDYuODhhMyAzIDAgMCAwLS43Ni0xLjNMMjAuMyAyLjg5QTMgMyAwIDAgMCAxOSAyLjEyWk05LjUgMTdhMSAxIDAgMSAwLTIgMHYxLjFhNS41IDUuNSAwIDAgMC00LjQgNC40SDJhMSAxIDAgMSAwIDAgMmgxLjFhNS41IDUuNSAwIDAgMCA0LjQgNC40VjMwYTEgMSAwIDEgMCAyIDB2LTEuMWE1LjUgNS41IDAgMCAwIDQuNC00LjRIMTVhMSAxIDAgMSAwIDAtMmgtMS4xYTUuNSA1LjUgMCAwIDAtNC40LTQuNFYxN1pNNSAyMy41YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAwIDEtNyAwWm01IDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRhcmdldDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRhcmdldDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzdjEyLjQ0Yy4zMi0uMTkuNjUtLjM1IDEtLjQ4LjAxLS44LjQtMS41MSAxLTEuOTZWNWExIDEgMCAwIDEgMS0xaDl2NWEzIDMgMCAwIDAgMyAzaDV2MTVhMSAxIDAgMCAxLTEgMUgxMy44NmE3LjAyIDcuMDIgMCAwIDEtMi43NiAySDI0YTMgMyAwIDAgMCAzLTNWMTAuODNhMyAzIDAgMCAwLS44OC0yLjEyTDIwLjMgMi44OEEzIDMgMCAwIDAgMTguMTcgMkg4Wm0xNi41OSA4SDIwYTEgMSAwIDAgMS0xLTFWNC40MUwyNC41OSAxMFpNOS41IDE3YTEgMSAwIDEgMC0yIDB2MS4xYTUuNSA1LjUgMCAwIDAtNC40IDQuNEgyYTEgMSAwIDEgMCAwIDJoMS4xYTUuNSA1LjUgMCAwIDAgNC40IDQuNFYzMGExIDEgMCAxIDAgMiAwdi0xLjFhNS41IDUuNSAwIDAgMCA0LjQtNC40SDE1YTEgMSAwIDEgMCAwLTJoLTEuMWE1LjUgNS41IDAgMCAwLTQuNC00LjRWMTdaTTUgMjMuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFptNSAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDQuNVYxSDQuNUMzLjY3IDEgMyAxLjY3IDMgMi41djExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41VjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVabTEgMFYxLjI1TDEyLjc1IDVIOS41YS41LjUgMCAwIDEtLjUtLjVaTTUuNSA4aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaTTUgMTAuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMyAzYzAtMS4xLjktMiAyLTJoMy41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDIuOTEgMi45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxM2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYzWm0yLTFhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY2SDkuNUExLjUgMS41IDAgMCAxIDggNC41VjJINVptNC41IDNoMi4zTDkgMi4ydjIuM2MwIC4yOC4yMi41LjUuNVptLTQgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk01IDEwLjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS41IDEuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVaTTYuNSAxMGg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWm0wIDJoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMVptMCAyaDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFaTTExIDYuNVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuNSAxMGEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wm0wIDJhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1ptMCAyYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINlptNS41IDRoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJabS0zLjc1IDMuNWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wIDIuNzVoNy41YS43NS43NSAwIDAgMSAwIDEuNWgtNy41YS43NS43NSAwIDAgMSAwLTEuNVptMCAyLjc1aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDEgMC0xLjVabTUuMjUtOVYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC43NSAxMS41YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVabTAgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41Wm0wIDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTYuNVptNC44NC0xNC40MUwxOS40IDguNEEyIDIgMCAwIDEgMjAgOS44M1YyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJoNi4xN2EuNi42IDAgMCAxIC4wOCAwbC4wNi4wMWMuMjIuMDIuNDMuMDYuNjMuMTRsLjE2LjA5Yy4wMiAwIC4wNC4wMi4wNS4wM2wuMDUuMDIuMDguMDVhMi4wNyAyLjA3IDAgMCAxIC4zLjI1Wk0xOCAyMC41YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjV2MTZjMCAuMjcuMjIuNS41LjVoMTJabS0uNjItMTJMMTMuNSA0LjYyVjhjMCAuMjguMjIuNS41LjVoMy4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dENsb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0Q2xvY2syMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djUuN2E1LjUgNS41IDAgMCAxIDQuNjYuOGg0Ljg0YS41LjUgMCAwIDEgMCAxSDkuNzRjLjI2LjMuNDguNjQuNjYgMWgzLjFhLjUuNSAwIDAgMSAwIDFoLTIuN2MuMDguMzIuMTUuNjYuMTggMWgyLjUyYS41LjUgMCAwIDEgMCAxaC0yLjUyYTUuNDggNS40OCAwIDAgMS0xLjI0IDNoNC43NmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0xIDBWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wk01IDEyLjVhLjUuNSAwIDAgMSAxIDBWMTRoMWEuNS41IDAgMCAxIDAgMUg1LjVhLjUuNSAwIDAgMS0uNS0uNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dENsb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dENsb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS43NCAxMWE1LjUzIDUuNTMgMCAwIDAtMS4wOC0xaDQuODRhLjUuNSAwIDAgMSAwIDFIOS43NFptLjY2IDFjLjE2LjMyLjMuNjUuNCAxaDIuN2EuNS41IDAgMCAwIDAtMWgtMy4xWm0uNiAyLjVjMCAuMTcgMCAuMzQtLjAyLjVoMi41MmEuNS41IDAgMCAwIDAtMWgtMi41MmwuMDIuNVpNNSA0djUuMDJjLS4zNC4wMy0uNjguMS0xIC4xOVY0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAySDkuNzRjLjI2LS4zLjQ4LS42NC42Ni0xSDE0YTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxWm02LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVptLTYgMTJhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTUgMTIuNWEuNS41IDAgMCAxIDEgMFYxNGgxYS41LjUgMCAwIDEgMCAxSDUuNWEuNS41IDAgMCAxLS41LS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0Q2xvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRDbG9jazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMGEyIDIgMCAwIDEtMiAyaC02LjgxYTYuNDggNi40OCAwIDAgMCAxLjczLTMuNWgyLjgzYS43NS43NSAwIDAgMCAwLTEuNWgtMi43N2MtLjAzLS40My0uMS0uODUtLjIyLTEuMjVoMi45OWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNjJhNi41MiA2LjUyIDAgMCAwLS45NC0xLjI1aDQuNTZhLjc1Ljc1IDAgMCAwIDAtMS41SDlhNi40OCA2LjQ4IDAgMCAwLTUgMFY0YzAtMS4xLjktMiAyLTJoNlptMS41LjVWOGMwIC4yOC4yMi41LjUuNWg1LjVsLTYtNlptLTEuNSAxNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWk02LjUgMTRjLjI4IDAgLjUuMjIuNS41VjE3aDJhLjUuNSAwIDAgMSAwIDFINi41YS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dENsb2NrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dENsb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2Ny41Yy40Ny0uMi45OC0uMzQgMS41LS40MlY0YzAtLjI4LjIyLS41LjUtLjVoNlY4YzAgMS4xLjkgMiAyIDJoNC41djEwYS41LjUgMCAwIDEtLjUuNWgtNS43M2E2LjUyIDYuNTIgMCAwIDEtMS4wOCAxLjVIMThhMiAyIDAgMCAwIDItMlY5LjgzYTIgMiAwIDAgMC0uNTktMS40MkwxMy42IDIuNkEyIDIgMCAwIDAgMTIuMTcgMkg2Wm0xMS4zOCA2LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYybDMuODggMy44OFpNMTEuMTkgMTNBNi41MSA2LjUxIDAgMCAwIDkgMTEuNWg2LjI1YS43NS43NSAwIDAgMSAwIDEuNWgtNC4wNlptLjk0IDEuMjVjLjI3LjQ3LjQ4Ljk3LjYzIDEuNWgyLjQ5YS43NS43NSAwIDAgMCAwLTEuNWgtMy4xMlpNMTMgMTcuNWMwIC4zNC0uMDMuNjctLjA4IDFoMi4zM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTIuMjdsLjAyLjVaTTYuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0uNSAyLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNUg5YS41LjUgMCAwIDAgMC0xSDd2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dEV4dHJhY3QyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRFeHRyYWN0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA2LjVWMkg1LjVDNC42NyAyIDQgMi42NyA0IDMuNVYxMWg1LjVhMS41IDEuNSAwIDAgMSAwIDNINHYyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOGgtNC41QTEuNSAxLjUgMCAwIDEgMTAgNi41Wm0tNCAzYzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0wIDZjMC0uMjguMjItLjUuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjVabTUtOVYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk0yLjUgMTJhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dEV4dHJhY3QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0RXh0cmFjdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjdoMVY0YTEgMSAwIDAgMSAxLTFoNHYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTV2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMkg0djJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdabS04LjMgM2EuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wm0tNCAyYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdabTQgMmEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0RXh0cmFjdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dEV4dHJhY3QyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2OS41aDYuNWEyIDIgMCAxIDEgMCA0SDRWMjBjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJabS00LjUgMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMCA3LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTEzLjUgOFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaTTIuNzUgMTQuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDcuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dEV4dHJhY3QyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0RXh0cmFjdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4LjUgMjBhLjUuNSAwIDAgMS0uNS41SDZhLjUuNSAwIDAgMS0uNS0uNXYtM0g0djNjMCAxLjEuOSAyIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjkuODNhMiAyIDAgMCAwLS41OS0xLjQyTDEzLjYgMi42YS41LjUgMCAwIDAtLjA1LS4wNCAyLjA3IDIuMDcgMCAwIDAtLjM0LS4yNWwtLjA1LS4wMy0uMDUtLjAzLS4xNi0uMDljLS4yLS4wOC0uNDEtLjEyLS42My0uMTRoLS4wNmEuNi42IDAgMCAwLS4wOC0uMDFINmEyIDIgMCAwIDAtMiAydjloMS41VjRjMC0uMjcuMjItLjUuNS0uNWg2VjhjMCAxLjEuOSAyIDIgMmg0LjV2MTBabS01LTE1LjM4IDMuODggMy44OEgxNGEuNS41IDAgMCAxLS41LS41VjQuNjJaTTguNzUgMTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41Wm0tNiAyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVabTYgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0TGluazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dExpbmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41VjEzaDIuNWEuNS41IDAgMCAxIDAtMWg3YS41LjUgMCAwIDEgMCAxaC02Yy45NSAwIDEuODIuMzggMi40NSAxaDMuNTVhLjUuNSAwIDAgMSAwIDFoLTIuODRhMy40OSAzLjQ5IDAgMCAxIDAgM2gzLjg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVaTTYuNSAxMGg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xWk0xMSA2LjVWMi4yNUwxNS43NSA3SDExLjVhLjUuNSAwIDAgMS0uNS0uNVpNMy41IDE0YTIuNSAyLjUgMCAwIDAgMCA1SDRhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDRhLjUuNSAwIDAgMCAwLTFoLS41Wk03IDE0YS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDdhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIN1ptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0TGluazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRMaW5rMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoNC41OWMuNCAwIC43OC4xNiAxLjA2LjQ0bDMuOTEgMy45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxNmEyIDIgMCAwIDEtMiAyaC0zLjM0Yy4xNS0uMzEuMjUtLjY1LjMtMUgxNGExIDEgMCAwIDAgMS0xVjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY5SDRWNFptNy41IDNoMy4zTDExIDMuMnYzLjNjMCAuMjguMjIuNS41LjVabTIgOGgtMi44NGEzLjUxIDMuNTEgMCAwIDAtLjcxLTFoMy41NWEuNS41IDAgMCAxIDAgMVptMC0yaC03YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAwIDFabS03LTNhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1ptLTMgNGEyLjUgMi41IDAgMCAwIDAgNUg0YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM0g0YS41LjUgMCAwIDAgMC0xaC0uNVpNNyAxNGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0g3YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDdabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dExpbmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRleHRMaW5rMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA4VjJINmEyIDIgMCAwIDAtMiAydjEwLjA2Yy4yNC0uMDQuNS0uMDYuNzUtLjA2aDMuNWMuNTMgMCAxLjA1LjA5IDEuNTIuMjVoNS45OGEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuODJjLjMuMzcuNTYuOC43NCAxLjI1aDMuMDhhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjc2YTQuODIgNC44MiAwIDAgMS0xLjI4IDMuNUgxOGEyIDIgMCAwIDAgMi0yVjEwaC02YTIgMiAwIDAgMS0yLTJabS0zLjc1IDMuNWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xMy41IDhWMi41bDYgNkgxNGEuNS41IDAgMCAxLS41LS41Wk0xMiAxOC43NUEzLjc1IDMuNzUgMCAwIDAgOC4yNSAxNWgtLjFhLjc1Ljc1IDAgMCAwIC4xIDEuNWguMTVhMi4yNSAyLjI1IDAgMCAxLS4xNSA0LjVsLS4xLjAxYS43NS43NSAwIDAgMCAuMSAxLjV2LS4wMWguMkEzLjc1IDMuNzUgMCAwIDAgMTIgMTguNzRabS02LjUtM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtLjJhMy43NSAzLjc1IDAgMCAwIC4yIDcuNWguMWEuNzUuNzUgMCAwIDAtLjEtMS41SDQuNmEyLjI1IDIuMjUgMCAwIDEgLjE1LTQuNWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptMy41IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VGV4dExpbmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0TGluazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4IDIwLjVhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXYxMGgtLjc1Yy0uMjYgMC0uNS4wMi0uNzUuMDZWNGMwLTEuMS45LTIgMi0yaDYuMTdhLjYuNiAwIDAgMSAuMDggMGwuMDYuMDFjLjIyLjAyLjQzLjA2LjYzLjE0bC4xNi4wOWMuMDIgMCAuMDQuMDIuMDUuMDNsLjA1LjAyLjA4LjA1YTIuMDcgMi4wNyAwIDAgMSAuMy4yNWw1LjgzIDUuODJBMiAyIDAgMCAxIDIwIDkuODNWMjBhMiAyIDAgMCAxLTIgMmgtNi4yOWMuNDEtLjQzLjc0LS45NC45Ni0xLjVIMThabS0uNjItMTJMMTMuNSA0LjYyVjhjMCAuMjguMjIuNS41LjVoMy4zOFptLTcuNiA1Ljc1Yy44NS4yOSAxLjYuODIgMi4xNSAxLjVoMy4zMmEuNzUuNzUgMCAwIDAgMC0xLjVIOS43N1pNMTIuNjYgMTdjLjE4LjQ3LjMuOTcuMzIgMS41aDIuMjZhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjU4Wm0tMy45Mi01LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTYuNVpNMTIgMTguNzVBMy43NSAzLjc1IDAgMCAwIDguMjUgMTVoLS4xYS43NS43NSAwIDAgMCAuMSAxLjVoLjE1YTIuMjUgMi4yNSAwIDAgMS0uMTUgNC41bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41di0uMDFoLjJBMy43NSAzLjc1IDAgMCAwIDEyIDE4Ljc0Wm0tNi41LTNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLS4yYTMuNzUgMy43NSAwIDAgMCAuMiA3LjVoLjFhLjc1Ljc1IDAgMCAwLS4xLTEuNUg0LjZhMi4yNSAyLjI1IDAgMCAxIC4xNS00LjVoLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVabTMuNSAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgzLjZhLjc1Ljc1IDAgMCAwIC42NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRUb29sYm94MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUZXh0VG9vbGJveDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNi41VjJINS41QzQuNjcgMiA0IDIuNjcgNCAzLjV2NS41NWMuMTYtLjAzLjMzLS4wNS41LS4wNWgyYy44MiAwIDEuNTQuNCAyIDFoNWEuNS41IDAgMCAxIDAgMUg4Ljk1di4wNGEyLjUgMi41IDAgMCAxIDEuNTUuOTZoM2EuNS41IDAgMCAxIDAgMWgtMi41NWMuMDMuMTYuMDUuMzMuMDUuNXYuNWgyLjVhLjUuNSAwIDAgMSAwIDFIMTF2Mi41YzAgLjE3LS4wMi4zNC0uMDUuNWgzLjU1Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY4aC00LjVBMS41IDEuNSAwIDAgMSAxMCA2LjVabTEgMFYyLjI1TDE1Ljc1IDdIMTEuNWEuNS41IDAgMCAxLS41LS41Wk0zIDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41di41aC41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1SDh2LS41YS41LjUgMCAwIDAtMSAwdi41SDR2LS41YS41LjUgMCAwIDAtMSAwdi41SDF2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNUgzWm00LS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41di41aDN2LS41Wk04IDE2aDJ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDEgMTcuNVYxNmgydi41YS41LjUgMCAwIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDAgMCAxIDBWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRUb29sYm94MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dFRvb2xib3gyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04Ljk1IDExYy0uMDctLjM3LS4yMy0uNy0uNDUtMWg1YS41LjUgMCAwIDEgMCAxSDguOTVabTEuNTUgMWMuMjIuMy4zOC42My40NSAxaDIuNTVhLjUuNSAwIDAgMCAwLTFoLTNabTMgMkgxMXYxaDIuNWEuNS41IDAgMCAwIDAtMVpNNSA0djVoLS41Yy0uMTcgMC0uMzQuMDItLjUuMDVWNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZWMTZhMiAyIDAgMCAxLTIgMmgtMy4wNWMuMDMtLjE2LjA1LS4zMy4wNS0uNVYxN2gzYTEgMSAwIDAgMCAxLTFWOGgtMy41QTEuNSAxLjUgMCAwIDEgMTAgNi41VjNINmExIDEgMCAwIDAtMSAxWm02LjUgM2gzLjNMMTEgMy4ydjMuM2MwIC4yOC4yMi41LjUuNVpNMyAxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYuNWguNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNUg4di0uNWEuNS41IDAgMCAwLTEgMHYuNUg0di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVIM1ptMS0uNXYuNWgzdi0uNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNVpNOCAxNmgydjEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSAxIDE3LjVWMTZoMnYuNWEuNS41IDAgMCAwIDEgMFYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUZXh0VG9vbGJveDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dFRvb2xib3gyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDhWMkg2YTIgMiAwIDAgMC0yIDJ2Ny4zNWMuMjQtLjA2LjQ5LS4xLjc1LS4xaDMuNWMuNDEgMCAuOC4wOSAxLjE1LjI1aDYuMzVhLjc1Ljc1IDAgMCAxIDAgMS41aC00Ljk0Yy4xMi4zMS4xOS42NS4xOSAxdi4wNWMuMi4wNC40LjExLjYuMmg0LjE1YS43NS43NSAwIDAgMSAwIDEuNWgtMi44NmMuMDcuMjQuMTEuNDkuMTEuNzV2LjVoMi43NWEuNzUuNzUgMCAwIDEgMCAxLjVIMTN2M2MwIC4xNy0uMDIuMzQtLjA1LjVIMThhMiAyIDAgMCAwIDItMlYxMGgtNmEyIDIgMCAwIDEtMi0yWm0xLjUgMFYyLjVsNiA2SDE0YS41LjUgMCAwIDEtLjUtLjVaTTMgMTVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxOGgyLjV2LS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMThoM3YtLjI1YS43NS43NSAwIDAgMSAxLjUgMFYxOEgxMnYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMHYtMWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTMuNUMzLjc4IDEyLjI1IDMgMTMuMDMgMyAxNHYxWm0xLjUtMWMwLS4xNC4xMS0uMjUuMjUtLjI1aDMuNWMuMTQgMCAuMjUuMTEuMjUuMjV2MWgtNHYtMVpNMSAyMS41di0yaDIuNXYuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVoM3YuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVIMTJ2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSAxIDIxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRleHRUb29sYm94MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VGV4dFRvb2xib3gyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC44MSAxM2EyLjc2IDIuNzYgMCAwIDAtMS40MS0xLjVoNS44NWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNDRabS43OCAxLjI1Yy42MS4zIDEuMDkuODQgMS4zIDEuNWgyLjM2YS43NS43NSAwIDAgMCAwLTEuNWgtMy42NlpNMTUuMjUgMTdIMTN2MS41aDIuMjVhLjc1Ljc1IDAgMCAwIDAtMS41Wk01LjUgNHY3LjI1aC0uNzVjLS4yNiAwLS41MS4wNC0uNzUuMVY0YzAtMS4xLjktMiAyLTJoNi4xN2EuNi42IDAgMCAxIC4wOCAwbC4wNi4wMWMuMjIuMDIuNDMuMDYuNjMuMTRsLjE2LjA5Yy4wMiAwIC4wNC4wMi4wNS4wM2wuMDUuMDIuMDguMDVhMi4wNyAyLjA3IDAgMCAxIC4zLjI1bDUuODMgNS44MkEyIDIgMCAwIDEgMjAgOS44M1YyMGEyIDIgMCAwIDEtMiAyaC01LjA1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di0xaDVhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNVptMTEuODggNC41TDEzLjUgNC42MlY4YzAgLjI4LjIyLjUuNS41aDMuMzhaTTMgMTVoLS41Yy0uODMgMC0xLjUuNjctMS41IDEuNVYxOGgyLjV2LS4yNWEuNzUuNzUgMCAwIDEgMS41IDBWMThoM3YtLjI1YS43NS43NSAwIDAgMSAxLjUgMFYxOEgxMnYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMHYtMWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTMuNUMzLjc4IDEyLjI1IDMgMTMuMDMgMyAxNHYxWm0xLjUtMWMwLS4xNC4xMS0uMjUuMjUtLjI1aDMuNWMuMTQgMCAuMjUuMTEuMjUuMjV2MWgtNHYtMVpNMSAyMS41di0yaDIuNXYuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVoM3YuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVIMTJ2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSAxIDIxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRvb2xib3gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRvb2xib3gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTN2LTVhMiAyIDAgMCAwLTItMmgtMXYtMWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTEgLjI3VjMuNUM0IDIuNjcgNC42NyAyIDUuNSAySDEwWm0xIC4yNVY2LjVjMCAuMjguMjIuNS41LjVoNC4yNUwxMSAyLjI1Wk00IDEydi0xLjVDNCA5LjY3IDQuNjcgOSA1LjUgOWgyYy44MyAwIDEuNS42NyAxLjUgMS41VjEyaDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxNUg5di0uNWEuNS41IDAgMCAwLTEgMHYuNUg1di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVINFptMS0xLjVWMTJoM3YtMS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wk05IDE2aDN2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDEgMTcuNVYxNmgzdi41YS41LjUgMCAwIDAgMSAwVjE2aDN2LjVhLjUuNSAwIDAgMCAxIDBWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRvb2xib3gyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUb29sYm94MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2NC4yN0EyIDIgMCAwIDEgNSA4VjRhMSAxIDAgMCAxIDEtMWg0djMuNWMwIC44My42NyAxLjUgMS41IDEuNUgxNXY4YTEgMSAwIDAgMS0xIDFoLTF2MWgxYTIgMiAwIDAgMCAyLTJWNy40MWMwLS40LS4xNi0uNzgtLjQ0LTEuMDZsLTMuOTEtMy45MUExLjUgMS41IDAgMCAwIDEwLjU5IDJINlptOC44IDVoLTMuM2EuNS41IDAgMCAxLS41LS41VjMuMkwxNC44IDdaTTQgMTJ2LTEuNUM0IDkuNjcgNC42NyA5IDUuNSA5aDJjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTJoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE1SDl2LS41YS41LjUgMCAwIDAtMSAwdi41SDV2LS41YS41LjUgMCAwIDAtMSAwdi41SDF2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNUg0Wm0xLTEuNVYxMmgzdi0xLjVhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAwLS41LjVaTTkgMTZoM3YxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMSAxNy41VjE2aDN2LjVhLjUuNSAwIDAgMCAxIDBWMTZoM3YuNWEuNS41IDAgMCAwIDEgMFYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VG9vbGJveDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvY3VtZW50VG9vbGJveDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMnY2YzAgMS4xLjkgMiAyIDJoNnYxMC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxM3YtNWEyIDIgMCAwIDAtMi0yaC0xdi0xYTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMSAuMjdWMy41QzQgMi42NyA0LjY3IDIgNS41IDJIMTJabTEuNS41VjhjMCAuMjguMjIuNS41LjVoNS41bC02LTZaTTQgMTZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41VjE2aDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxOUg5di0uNWEuNS41IDAgMCAwLTEgMHYuNUg1di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVINFptMS0xLjVWMTZoM3YtMS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wk05IDIwaDN2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDEgMjEuNVYyMGgzdi41YS41LjUgMCAwIDAgMSAwVjIwaDN2LjVhLjUuNSAwIDAgMCAxIDBWMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRvb2xib3gyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUb29sYm94MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS41IDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NUgxMlY4YzAgMS4xLjkgMiAyIDJoNC41djkuNzVjMCAuNDEtLjM0Ljc1LS43NS43NUgxM1YyMmg0Ljc1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjkuNjZjMC0uNDYtLjE4LS45LS41MS0xLjIzTDEzLjU3IDIuNUExLjc1IDEuNzUgMCAwIDAgMTIuMzQgMkg2LjI1QzUuMDEgMiA0IDMgNCA0LjI1djguMDJBMiAyIDAgMCAxIDUgMTJoLjVWNC4yNVpNMTcuNDQgOC41SDE0YS41LjUgMCAwIDEtLjUtLjVWNC41NmwzLjk0IDMuOTRaTTQgMTZ2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41VjE2aDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNVYxOUg5di0uNWEuNS41IDAgMCAwLTEgMHYuNUg1di0uNWEuNS41IDAgMCAwLTEgMHYuNUgxdi0xLjVjMC0uODMuNjctMS41IDEuNS0xLjVINFptMS0xLjVWMTZoM3YtMS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41Wk05IDIwaDN2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDEgMjEuNVYyMGgzdi41YS41LjUgMCAwIDAgMSAwVjIwaDN2LjVhLjUuNSAwIDAgMCAxIDBWMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFRzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRUczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAgMS4yNVY0LjVjMCAuMjguMjIuNS41LjVoMy4yNUwxMCAxLjI1Wk0xMC41IDZBMS41IDEuNSAwIDAgMSA5IDQuNVYxSDUuNUM0LjY3IDEgNCAxLjY3IDQgMi41VjljLjQgMCAuNzcuMTYgMS4wNi40NC40LS4yOC44Ny0uNDQgMS4zNi0uNDRoLjE1Yy42NCAwIDEuMjcuMjYgMS43Mi43MS40NS40NS43MSAxLjA4LjcxIDEuNzIgMCAuMzQtLjExLjY3LS4zMi45NGwuMDQuMDkuMDUuMDhBMi40MiAyLjQyIDAgMCAxIDguNTMgMTVoMy45N2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWNmgtMy41Wm0tMy45MyA5aC0uMTRBMS40MyAxLjQzIDAgMCAxIDUgMTMuNTdhLjUzLjUzIDAgMCAxIC41LS41My40Ni40NiAwIDAgMSAuMzUuMTIuNDcuNDcgMCAwIDEgLjE1LjM0LjQ1LjQ1IDAgMCAwIC40My41aC4xNGEuNDMuNDMgMCAwIDAgLjItLjhsLS45OC0uNWExLjQyIDEuNDIgMCAwIDEgLjY0LTIuN2guMTRBMS40MyAxLjQzIDAgMCAxIDggMTEuNDNhLjUzLjUzIDAgMCAxLS41LjUzLjQ2LjQ2IDAgMCAxLS4zNS0uMTIuNDcuNDcgMCAwIDEtLjE1LS4zNHYtLjA3YS40My40MyAwIDAgMC0uNDMtLjQzaC0uMTRhLjQzLjQzIDAgMCAwLS4yLjhsLjk4LjVhMS40MyAxLjQzIDAgMCAxLS42NCAyLjdabS0yLjIyLTQuMTVhLjUuNSAwIDAgMCAwLS43QS41LjUgMCAwIDAgNCAxMEgxYS41LjUgMCAxIDAgMCAxaDF2My41YS41LjUgMCAxIDAgMSAwVjExaDFhLjUuNSAwIDAgMCAuMzUtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRUczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFRzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTIuNTYgNC4zNSA5LjY1IDEuNDRBMS41MiAxLjUyIDAgMCAwIDguNTkgMUg1YTIgMiAwIDAgMC0yIDJ2NmgxVjNhMSAxIDAgMCAxIDEtMWgzdjIuNUExLjUgMS41IDAgMCAwIDkuNSA2SDEydjdhMSAxIDAgMCAxLTEgMUg4Ljk2Yy0uMDYuMzYtLjIuNy0uNDIgMUgxMWEyIDIgMCAwIDAgMi0yVjUuNDFjMC0uNC0uMTYtLjc4LS40NC0xLjA2Wk05LjUgNWEuNS41IDAgMCAxLS41LS41VjIuMjFMMTEuNzkgNUg5LjVaTTYuNTcgMTVoLS4xNEExLjQzIDEuNDMgMCAwIDEgNSAxMy41N2EuNTMuNTMgMCAwIDEgLjUtLjUzLjQ3LjQ3IDAgMCAxIC41LjQ2LjQ1LjQ1IDAgMCAwIC40My41aC4xNGEuNDMuNDMgMCAwIDAgLjItLjhsLS45OC0uNWExLjQzIDEuNDMgMCAwIDEgLjY0LTIuN2guMTRBMS40MyAxLjQzIDAgMCAxIDggMTEuNDNhLjUzLjUzIDAgMCAxLS41LjUzLjQ3LjQ3IDAgMCAxLS41LS40NnYtLjA3YS40My40MyAwIDAgMC0uNDMtLjQzaC0uMTRhLjQzLjQzIDAgMCAwLS4yLjhsLjk4LjVhMS40MyAxLjQzIDAgMCAxLS42NCAyLjdabS0yLjIyLTQuMTVBLjUuNSAwIDAgMCA0IDEwSDFhLjUuNSAwIDAgMCAwIDFoMXYzLjVhLjUuNSAwIDAgMCAxIDBWMTFoMWEuNS41IDAgMCAwIC4zNS0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFZiMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRWYjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAgNC41VjEuMjVMMTMuNzUgNUgxMC41YS41LjUgMCAwIDEtLjUtLjVabS0xIDBjMCAuODMuNjcgMS41IDEuNSAxLjVIMTR2Ny41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg4Ljc1Yy4xNC0uMTkuMjYtLjQuMzUtLjYzYTIuNTYgMi41NiAwIDAgMC0uMjEtMi4xNiAyLjUzIDIuNTMgMCAwIDAtLjE3LTEuODdBMi40NyAyLjQ3IDAgMCAwIDYuNSA5aC0xYy0uMjcgMC0uNTMuMDctLjc1LjJBMS41NCAxLjU0IDAgMCAwIDQgOVYyLjVDNCAxLjY3IDQuNjcgMSA1LjUgMUg5djMuNVptLTEgNy4xYTEuNSAxLjUgMCAwIDEtLjI3Ljc2IDEuNSAxLjUgMCAwIDEtLjEyIDIuMzcgMS41IDEuNSAwIDAgMS0uODYuMjdINS41YS41LjUgMCAwIDEtLjUtLjV2LTRhLjUuNSAwIDAgMSAuNS0uNWgxQTEuNSAxLjUgMCAwIDEgOCAxMS42Wk02LjUgMTFINnYxaC41YS41LjUgMCAxIDAgMC0xWk02IDE0aC43NWEuNS41IDAgMSAwIDAtMUg2djFabS0zLjAzLjY3IDEuNS00YS41LjUgMCAwIDAtLjk0LS4zNUwyLjUgMTMuMDdsLTEuMDMtMi43NWEuNS41IDAgMCAwLS45My0uMDMuNS41IDAgMCAwIDAgLjM4bDEuNSA0YS41LjUgMCAwIDAgLjQ2LjMzLjUuNSAwIDAgMCAuNDctLjMzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRWYjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFZiMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtOS42NSAxLjQ0IDIuOTEgMi45MWMuMjguMjguNDQuNjcuNDQgMS4wNlYxM2EyIDIgMCAwIDEtMiAySDguNzVjLjE0LS4xOS4yNi0uNC4zNC0uNjMuMDUtLjEuMDctLjIyLjEtLjMzTDkuMiAxNEgxMWExIDEgMCAwIDAgMS0xVjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVWMkg1YTEgMSAwIDAgMC0xIDF2NmMtLjIyIDAtLjQyLjA1LS42Mi4xMy0uMTQuMDctLjI3LjE1LS4zOC4yN1YzYzAtMS4xLjktMiAyLTJoMy41OWMuMzkgMCAuNzguMTYgMS4wNi40NFpNOSA0LjVjMCAuMjguMjIuNS41LjVoMi4yOUw5IDIuMjFWNC41Wm0tMSA3LjFhMS41IDEuNSAwIDAgMS0uMjcuNzYgMS41IDEuNSAwIDAgMS0uMTIgMi4zNyAxLjUgMS41IDAgMCAxLS44Ni4yN0g1LjVhLjUuNSAwIDAgMS0uNS0uNXYtNGEuNS41IDAgMCAxIC41LS41aDFBMS41IDEuNSAwIDAgMSA4IDExLjZaTTYuNSAxMUg2djFoLjVhLjUuNSAwIDEgMCAwLTFaTTYgMTRoLjc1YS41LjUgMCAxIDAgMC0xSDZ2MVptLTMuMDMuNjggMS41LTRhLjUuNSAwIDAgMC0uOTQtLjM2TDIuNSAxMy4wOGwtMS4wMy0yLjc2YS41LjUgMCAwIDAtLjkzLS4wMy41LjUgMCAwIDAgMCAuMzlsMS41IDRhLjUuNSAwIDAgMCAuNDYuMzIuNS41IDAgMCAwIC40Ny0uMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFdpZHRoMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRXaWR0aDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAyaDhhMiAyIDAgMCAxIDIgMnYyLjM0QTEuNSAxLjUgMCAwIDAgMTUuMDIgOGgtLjUyYTEuNSAxLjUgMCAwIDAgMCAzaC41MmExLjUgMS41IDAgMCAwIC45OCAxLjY2VjE2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zLjM0QTEuNSAxLjUgMCAwIDAgNC45OCAxMWguNTJhMS41IDEuNSAwIDAgMCAwLTNoLS41MkExLjUgMS41IDAgMCAwIDQgNi4zNFY0YzAtMS4xLjktMiAyLTJaTTMuODggNy40MmEuNS41IDAgMCAxLS4wNS43bC0xIC44OEg1LjVhLjUuNSAwIDEgMSAwIDFIMi44M2wxIC44N2EuNS41IDAgMCAxLS42Ni43NmwtMi0xLjc1YS41LjUgMCAwIDEgMC0uNzZsMi0xLjc1YS41LjUgMCAwIDEgLjcuMDVaTTE3LjE3IDEwbC0xIC44N2EuNS41IDAgMCAwIC42Ni43NmwyLTEuNzVhLjUuNSAwIDAgMCAwLS43NmwtMi0xLjc1YS41LjUgMCAwIDAtLjY2Ljc2bDEgLjg3SDE0LjVhLjUuNSAwIDAgMCAwIDFoMi42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50V2lkdGgyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRXaWR0aDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuODggNy40MmEuNS41IDAgMCAxLS4wNS43bC0xIC44OEg1LjVhLjUuNSAwIDAgMSAwIDFIMi44M2wxIC44OGEuNS41IDAgMSAxLS42Ni43NWwtMi0xLjc1YS41LjUgMCAwIDEgMC0uNzVsMi0xLjc1YS41LjUgMCAwIDEgLjcuMDRaTTE3LjE3IDEwbC0xIC44OGEuNS41IDAgMCAwIC42Ni43NWwyLTEuNzVhLjUuNSAwIDAgMCAwLS43NWwtMi0xLjc1YS41LjUgMCAwIDAtLjY2Ljc1bDEgLjg3SDE0LjVhLjUuNSAwIDAgMCAwIDFoMi42N1pNNSA0YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjMuNWguMDJBMS41IDEuNSAwIDAgMSAxNiA2LjM0VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2Mi4zNGExLjUgMS41IDAgMCAxIC45OCAxLjE2SDVWNFptLS4zNyA4LjI0Yy4xOS0uMjIuMy0uNDguMzUtLjc0SDVWMTZhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTF2LTQuNWguMDJhMS41IDEuNSAwIDAgMCAuOTggMS4xNlYxNmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMy4zNGMuMjQtLjA4LjQ1LS4yMi42My0uNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFdpZHRoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRXaWR0aDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNzUgMmMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXYzLjUyYTEuNzUgMS43NSAwIDAgMC0xLjQ5LjVBMS43MyAxLjczIDAgMCAwIDE4LjEgMTBsLjA1LjE2LjA0LjA5aC0xLjUyYy0uODUgMC0xLjUuNjUtMS42NCAxLjQ2bC0uMDEuMTRMMTUgMTJjMCAuOC41MSAxLjUxIDEuMzMgMS43bC4xNi4wNGgxLjY4bC0uMDIuMDRjLS4yLjQ3LS4yIDEuMDIuMDUgMS41MWwuMS4xNy4wOS4xNC4xMi4xNGMuNC40Ljk1LjU3IDEuNDkuNDh2My41M2MwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDYuMjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDQgMTkuNzV2LTMuNTNjLjU0LjA5IDEuMDktLjA4IDEuNDktLjQ4bC4xMi0uMTQuMS0uMTRjLjMzLS41NC4zNy0xLjE2LjE0LTEuNjhsLS4wMi0uMDNoMS41MWwuMTctLjAxQzguNDIgMTMuNiA5IDEyLjg0IDkgMTJ2LS4xNWExLjcgMS43IDAgMCAwLTEuNjYtMS42SDUuODJsLjA0LS4xQTEuNzQgMS43NCAwIDAgMCA0IDcuNzhWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMS41Wk00Ljc4IDguOTdjLjI3LjI2LjMuNjguMDcuOTdsLS4wNy4wOS0xLjIyIDEuMjJoMy43OGMuMzcgMCAuNjYuMzMuNjYuNzUgMCAuMzgtLjI1LjctLjU3Ljc0SDMuNTZsMS4yMiAxLjIzYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjM3LTIuMzdBLjc3Ljc3IDAgMCAxIDEgMTJjMC0uMjkuMTQtLjU0LjM1LS42NmwyLjM3LTIuMzdjLjMtLjMuNzctLjMgMS4wNiAwWm0xNC40NCAwYS43NS43NSAwIDAgMSAuOTgtLjA4bC4wOC4wOCAyLjM3IDIuMzZjLjIuMTMuMzUuMzguMzUuNjcgMCAuMjUtLjEuNDctLjI4LjZsLS4wNy4wNi0yLjM3IDIuMzctLjA4LjA3Yy0uMjcuMi0uNjIuMi0uODkgMGwtLjEtLjA3LS4wNi0uMDlhLjc1Ljc1IDAgMCAxLS4wMS0uODhsLjA4LS4xIDEuMjItMS4yMWgtMy43OGwtLjEtLjAxYy0uMzEtLjA1LS41Ni0uMzctLjU2LS43NCAwLS4zOC4yNS0uNy41Ny0uNzVIMjAuNDRsLTEuMjItMS4yMi0uMDctLjA5YS43NS43NSAwIDAgMSAuMDctLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRXaWR0aDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFdpZHRoMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTguNSAxNS43Mi4wMS4wMmMuNC40Ljk1LjU3IDEuNDkuNDh2My41M2MwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDYuMjVjLTEuMiAwLTIuMTctLjkzLTIuMjQtMi4xTDQgMTkuNzV2LTMuNTNjLjQ5LjA4Ljk4LS4wNSAxLjM2LS4zN2wuMTQtLjEzdjQuMDNjMCAuMzguMjguNy42NS43NGwuMS4wMWgxMS41Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi00LjAzWk00Ljc4IDguOTdjLjI3LjI2LjMuNjguMDcuOTdsLS4wNy4wOS0xLjIyIDEuMjJoMy43OGMuMzcgMCAuNjYuMzMuNjYuNzUgMCAuMzgtLjI1LjctLjU3Ljc0SDMuNTZsMS4yMiAxLjIzYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLjM3LTIuMzdBLjc3Ljc3IDAgMCAxIDEgMTJjMC0uMjkuMTQtLjU0LjM1LS42NmwyLjM3LTIuMzdjLjMtLjMuNzctLjMgMS4wNiAwWm0xNC40NCAwYS43NS43NSAwIDAgMSAuOTgtLjA4bC4wOC4wOCAyLjM3IDIuMzZjLjIuMTMuMzUuMzguMzUuNjcgMCAuMjUtLjEuNDctLjI4LjZsLS4wNy4wNi0yLjM3IDIuMzctLjA4LjA3Yy0uMjcuMi0uNjIuMi0uODkgMGwtLjEtLjA3LS4wNi0uMDlhLjc1Ljc1IDAgMCAxLS4wMS0uODhsLjA4LS4xIDEuMjItMS4yMWgtMy43OGwtLjEtLjAxYy0uMzEtLjA1LS41Ni0uMzctLjU2LS43NCAwLS4zOC4yNS0uNy41Ny0uNzVIMjAuNDRsLTEuMjItMS4yMi0uMDctLjA5YS43NS43NSAwIDAgMSAuMDctLjk3Wk0xNy43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djMuNTJjLS40Ny0uMDctLjk3LjA2LTEuMzYuMzhsLS4xNC4xMlY0LjI1YzAtLjM4LS4yOC0uNy0uNjUtLjc0bC0uMS0uMDFINi4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXY0LjAyaC0uMDFjLS40LS40MS0uOTYtLjU4LTEuNS0uNUw0IDQuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw2LjI1IDJoMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50WW1sMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRZbWwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggNC41VjFINC41QzMuNjcgMSAzIDEuNjcgMyAyLjV2Ni44OGExLjUgMS41IDAgMCAxIDEuNzUtLjE4IDEuNSAxLjUgMCAwIDEgMi4xLjYzbC42NSAxLjMyLjY2LTEuMzJhMS41IDEuNSAwIDAgMSAyLjM0LS40NSAxLjUgMS41IDAgMCAxIDIuNSAxLjA5VjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVabTEgMFYxLjI1TDEyLjc1IDVIOS41YS41LjUgMCAwIDEtLjUtLjVaTTIuNSAxNWEuNS41IDAgMCAwIC41LS41di0xLjM2bDEuNDMtMi4zOGEuNS41IDAgMSAwLS44Ni0uNTJMMi41IDEyLjAzbC0xLjA3LTEuNzlhLjUuNSAwIDAgMC0uODYuNTJMMiAxMy4xNHYxLjM2YzAgLjI4LjIyLjUuNS41Wm0zLjQ1LTQuNzJhLjUuNSAwIDAgMC0uOTUuMjJ2NGEuNS41IDAgMSAwIDEgMHYtMS44OGwxLjA1IDIuMWEuNS41IDAgMCAwIC45IDBMOSAxMi42MnYxLjg4YS41LjUgMCAxIDAgMSAwdi00YS41LjUgMCAwIDAtLjk1LS4yMmwtMS41NSAzLjEtMS41NS0zLjFabTYuMDUuMjJhLjUuNSAwIDAgMC0xIDB2NGMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAxIDAgMC0xSDEydi0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFltbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFltbDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMgM2MwLTEuMS45LTIgMi0yaDMuNTljLjQgMCAuNzguMTYgMS4wNi40NGwyLjkxIDIuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZ2NS4wOGMwLS42NS0uNDItMS4yLTEtMS40VjZIOS41QTEuNSAxLjUgMCAwIDEgOCA0LjVWMkg1YTEgMSAwIDAgMC0xIDF2NmMtLjM2IDAtLjcyLjEzLTEgLjM4VjNabTYuNSAyaDIuM0w5IDIuMnYyLjNjMCAuMjguMjIuNS41LjVabS03IDEwYS41LjUgMCAwIDAgLjUtLjV2LTEuMzZsMS40My0yLjM4YS41LjUgMCAxIDAtLjg2LS41MkwyLjUgMTIuMDNsLTEuMDctMS43OWEuNS41IDAgMCAwLS44Ni41MkwyIDEzLjE0djEuMzZjMCAuMjguMjIuNS41LjVabTMuNDUtNC43MmEuNS41IDAgMCAwLS45NS4yMnY0YS41LjUgMCAxIDAgMSAwdi0xLjg4bDEuMDUgMi4xYS41LjUgMCAwIDAgLjkgMEw5IDEyLjYydjEuODhhLjUuNSAwIDEgMCAxIDB2LTRhLjUuNSAwIDAgMC0uOTUtLjIybC0xLjU1IDMuMS0xLjU1LTMuMVptNi4wNS4yMmEuNS41IDAgMCAwLTEgMHY0YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDEgMCAwLTFIMTJ2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50WW1sMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9jdW1lbnRZbWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDYuNVYySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djguNTVsLjI1LS4zOGExLjUgMS41IDAgMCAxIDIuMjUtLjI5IDEuNSAxLjUgMCAwIDEgMi4zNC40NUwxMCAxNC4xNWwxLjE2LTIuMzJhMS41IDEuNSAwIDAgMSAyLjM0LS40NSAxLjUgMS41IDAgMCAxIDIuNSAxLjA5VjhoLTQuNUExLjUgMS41IDAgMCAxIDEwIDYuNVptMSAwVjIuMjVMMTUuNzUgN0gxMS41YS41LjUgMCAwIDEtLjUtLjVaTTMuNSAxOGEuNS41IDAgMCAwIC41LS41di0xLjg1bDEuOTItMi44N2EuNS41IDAgMCAwLS44NC0uNTZMMy41IDE0LjZsLTEuNTgtMi4zOGEuNS41IDAgMCAwLS44NC41NkwzIDE1LjY1djEuODVjMCAuMjguMjIuNS41LjVabTQuNDUtNS43MmEuNS41IDAgMCAwLS45NS4yMnY1YS41LjUgMCAxIDAgMSAwdi0yLjg4bDEuNTUgMy4xYS41LjUgMCAwIDAgLjkgMGwxLjU1LTMuMXYyLjg4YS41LjUgMCAxIDAgMSAwdi01YS41LjUgMCAwIDAtLjk1LS4yMkwxMCAxNi4zOGwtMi4wNS00LjFabTcuMDUuMjJhLjUuNSAwIDAgMC0xIDB2NWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAxIDAgMC0xSDE1di00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFltbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb2N1bWVudFltbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNGMwLTEuMS45LTIgMi0yaDQuNTljLjQgMCAuNzguMTYgMS4wNi40NGwzLjkxIDMuOTFjLjI4LjI4LjQ0LjY3LjQ0IDEuMDZ2NS4wOGMwLS42NS0uNDItMS4yLTEtMS40VjhoLTMuNUExLjUgMS41IDAgMCAxIDEwIDYuNVYzSDZhMSAxIDAgMCAwLTEgMXY3LjA5Yy0uMy4xLS41Ni4zLS43NS41OGwtLjI1LjM4VjRabTcuNSAzaDMuM0wxMSAzLjJ2My4zYzAgLjI4LjIyLjUuNS41Wm0tOCAxMWEuNS41IDAgMCAwIC41LS41di0xLjg1bDEuOTItMi44N2EuNS41IDAgMCAwLS44NC0uNTZMMy41IDE0LjZsLTEuNTgtMi4zOGEuNS41IDAgMCAwLS44NC41NkwzIDE1LjY1djEuODVjMCAuMjguMjIuNS41LjVabTQuNDUtNS43MmEuNS41IDAgMCAwLS45NS4yMnY1YS41LjUgMCAxIDAgMSAwdi0yLjg4bDEuNTUgMy4xYS41LjUgMCAwIDAgLjkgMGwxLjU1LTMuMXYyLjg4YS41LjUgMCAxIDAgMSAwdi01YS41LjUgMCAwIDAtLjk1LS4yMkwxMCAxNi4zOGwtMi4wNS00LjFabTcuMDUuMjJhLjUuNSAwIDAgMC0xIDB2NWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAxIDAgMC0xSDE1di00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAzYzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjNabTMgNmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3IxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDlhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk01IDFhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJINVpNNCAzYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDRjMC0uODMuNjctMS41IDEuNS0xLjVoOC4xNUExLjUgMS41IDAgMCAxIDE1LjUgNHYxMmMwIC44My0uNjcgMS41LTEuNSAxLjVINkExLjUgMS41IDAgMCAxIDQuNSAxNlY0Wk03IDExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3IyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk00IDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNFptMiAxM2g4YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgRG9vcjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3IyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzdjE4YTMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtM1Y1YTMgMyAwIDAgMC0zLTNIOFptMS41IDEzYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgRG9vcjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNOS41IDE1YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk01IDVhMyAzIDAgMCAxIDMtM2gxMmEzIDMgMCAwIDEgMyAzdjE4YTMgMyAwIDAgMS0zIDNIOGEzIDMgMCAwIDEtMy0zVjVabTMtMS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxOGMwIC44My42NyAxLjUgMS41IDEuNWgxMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNWMwLS44My0uNjctMS41LTEuNS0xLjVIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd0xlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dMZWZ0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zIDIuNzVDMyAxLjc4IDMuNzggMSA0Ljc1IDFoNi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djMuNDZBNS41IDUuNSAwIDAgMCA3LjI2IDE1SDQuNzVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjVWMi43NVpNNiA5YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMTAgMi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMmgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd0xlZnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vckFycm93TGVmdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuNzUgMUMzLjc4IDEgMyAxLjc4IDMgMi43NXYxMC41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDIuNWE1LjUgNS41IDAgMCAxLS42NS0xSDQuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDYuNWMuNDEgMCAuNzUuMzQuNzUuNzV2My4yN2MuMzQuMDMuNjguMSAxIC4xOVYyLjc1QzEzIDEuNzggMTIuMjIgMSAxMS4yNSAxaC02LjVaTTcgOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTkgMy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMmgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd0xlZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDIuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMy44OWE1LjUgNS41IDAgMCAxIDUuNjEtOC40VjRjMC0uODMtLjY3LTEuNS0xLjUtMS41SDZaTTggMTBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0xMSA0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS02Ljg1LS4zNWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEzLjcxIDE1aDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9vckFycm93TGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dMZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0LjI2YTUuNSA1LjUgMCAwIDEtLjY2LTFINmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2NS4wMmMuMzQuMDMuNjguMSAxIC4xOVY0YTIgMiAwIDAgMC0yLTJINlptMiA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMTEgNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxNWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd0xlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dMZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDIuNzVjLS44MyAwLTEuNS42Ny0xLjUgMS41djE1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNS45NGE2LjUgNi41IDAgMCAxIDcuMDYtMTAuMDFWNC4yNWMwLS44My0uNjctMS41LTEuNS0xLjVINi4yNVptMi4yNSAxMC41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm05IDkuNzVhNS41IDUuNSAwIDEgMCAwLTExIDUuNSA1LjUgMCAwIDAgMCAxMVptMy41LTUuNWEuNS41IDAgMCAxLS41LjVoLTQuOGwxLjY1IDEuNjVhLjUuNSAwIDAgMS0uNy43bC0yLjUtMi41YS41LjUgMCAwIDEgMC0uN2wyLjUtMi41YS41LjUgMCAwIDEgLjcuN0wxNS43MSAxN2g0Ljc5Yy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd0xlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vckFycm93TGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjUgMkM1LjAxIDIgNCAzIDQgNC4yNXYxNS41QzQgMjAuOTkgNSAyMiA2LjI1IDIyaDYuNTZhNi41MiA2LjUyIDAgMCAxLTEuMDgtMS41SDYuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDExLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuODNjLjUyLjA4IDEuMDMuMjIgMS41LjQyVjQuMjVDMjAgMy4wMSAxOSAyIDE3Ljc1IDJINi4yNVpNMTcuNSAyM2E1LjUgNS41IDAgMSAwIDAtMTEgNS41IDUuNSAwIDAgMCAwIDExWm0zLjUtNS41YS41LjUgMCAwIDEtLjUuNWgtNC44bDEuNjUgMS42NWEuNS41IDAgMCAxLS43LjdsLTIuNS0yLjVhLjUuNSAwIDAgMSAwLS43bDIuNS0yLjVhLjUuNSAwIDAgMSAuNy43TDE1LjcxIDE3aDQuNzljLjI4IDAgLjUuMjIuNS41Wk04LjUgMTMuMjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yQXJyb3dSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JBcnJvd1JpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zIDIuNzVDMyAxLjc4IDMuNzggMSA0Ljc1IDFoNi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djMuNDZBNS41IDUuNSAwIDAgMCA3LjI2IDE1SDQuNzVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjVWMi43NVpNNiA5YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNS41IDdhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS4zNS0yLjE1YS41LjUgMCAwIDEtLjctLjdMMTIuMjkgMTJIOS41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd1JpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JBcnJvd1JpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC43NSAxQzMuNzggMSAzIDEuNzggMyAyLjc1djEwLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMi41YTUuNSA1LjUgMCAwIDEtLjY1LTFINC43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNi41Yy40MSAwIC43NS4zNC43NS43NXYzLjI3Yy4zNC4wMy42OC4xIDEgLjE5VjIuNzVDMTMgMS43OCAxMi4yMiAxIDExLjI1IDFoLTYuNVpNNyA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNC41IDhhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS4zNS0yLjE1YS41LjUgMCAwIDEtLjctLjdMMTIuMjkgMTJIOS41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd1JpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vckFycm93UmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMi41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgzLjg5YTUuNSA1LjUgMCAwIDEgNS42MS04LjRWNGMwLS44My0uNjctMS41LTEuNS0xLjVINlpNOCAxMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTYuNSA5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0uMzUtMi4xNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDE1SDEyLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNWwtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRG9vckFycm93UmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vckFycm93UmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDQuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY1LjAyYy4zNC4wMy42OC4xIDEgLjE5VjRhMiAyIDAgMCAwLTItMkg2Wm0yIDhhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm02LjUgOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLjM1LTIuMTVhLjUuNSAwIDAgMS0uNy0uN0wxNS4yOSAxNUgxMi41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JBcnJvd1JpZ2h0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vckFycm93UmlnaHQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzdjE4YTMgMyAwIDAgMCAzIDNoNy40QTcuNSA3LjUgMCAwIDEgMjMgMTMuNDNWNWEzIDMgMCAwIDAtMy0zSDhabTEuNSAxM2ExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1pNMjcgMjAuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWk0xNi41IDIwYS41LjUgMCAwIDAgMCAxaDYuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN2wzLTNhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0zLTNhLjUuNSAwIDAgMC0uNy43TDIzLjI5IDIwSDE2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yQXJyb3dSaWdodDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yQXJyb3dSaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTUgNWEzIDMgMCAwIDEgMy0zaDEyYTMgMyAwIDAgMSAzIDN2OC40M2MtLjQ4LS4xNy0uOTgtLjMtMS41LS4zNlY1YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg4Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxOGMwIC44My42NyAxLjUgMS41IDEuNWg2LjE1Yy4zNS41NS43NyAxLjA2IDEuMjUgMS41SDhhMyAzIDAgMCAxLTMtM1Y1Wm00LjUgMTBhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFpNMTYuNSAyMGEuNS41IDAgMCAwIDAgMWg2LjhsLTIuMTUgMi4xNWEuNS41IDAgMCAwIC43LjdsMy0zYS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMy0zYS41LjUgMCAwIDAtLjcuN0wyMy4yOSAyMEgxNi41WlwiXSk7XG5leHBvcnQgY29uc3QgRG9vckFycm93UmlnaHQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JBcnJvd1JpZ2h0MzJMaWdodCcsIFwiMzJcIiwgW1wiTTguMjUgMkEzLjI1IDMuMjUgMCAwIDAgNSA1LjI1djIxLjVDNSAyOC41NSA2LjQ2IDMwIDguMjUgMzBoOS4wMmE5LjA2IDkuMDYgMCAwIDEtLjktMUg4LjI2QzcuMDEgMjkgNiAyOCA2IDI2Ljc1VjUuMjVDNiA0LjAxIDcgMyA4LjI1IDNoMTUuNUMyNC45OSAzIDI2IDQgMjYgNS4yNXY5LjZjLjM0LjEuNjguMjIgMSAuMzZWNS4yNUMyNyAzLjQ1IDI1LjU0IDIgMjMuNzUgMkg4LjI1Wk0yMy41IDE2YTcuNSA3LjUgMCAxIDEgMCAxNSA3LjUgNy41IDAgMCAxIDAtMTVaTTE4IDIzLjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDcuNjlsLTIuNzIgMi43MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQtNGMuMy0uMy4zLS43NyAwLTEuMDZsLTQtNGEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIuNzIgMi43MmgtNy42OWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0tOC41LTZhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JUYWcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yVGFnMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05LjMgNi4zQTEgMSAwIDEgMSAxMCA4SDdhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjcuMDVhNC45OCA0Ljk4IDAgMCAwLTguNTQtMy41OUEyIDIgMCAxIDAgOS4zIDYuM1pNOCAxNGg0YS41LjUgMCAwIDEgMCAxSDhhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEb29yVGFnMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Rvb3JUYWcyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjMgNi4zQTEgMSAwIDEgMSAxMCA4SDdhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjcuMDVhNC45OCA0Ljk4IDAgMCAwLTguNTQtMy41OUEyIDIgMCAxIDAgOS4zIDYuM1pNMTEuNCA4LjRBMiAyIDAgMSAwIDguNiA1LjZhMSAxIDAgMCAxLTEuNDItMS40MkE0IDQgMCAwIDEgMTQgN1YxNmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDNhMiAyIDAgMCAwIDEuNDEtLjU5Wk04IDE0YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JUYWcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb29yVGFnMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA2LjVjLS40OSAwLS45Mi4yMy0xLjIuNmEyLjI1IDIuMjUgMCAwIDEtMy42LTIuN0E2IDYgMCAwIDEgMTggOHYxMmEyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMnYtOC41YzAtMS4xLjktMiAyLTJoNGExLjUgMS41IDAgMCAwIDAtM1ptLTIuMjUgMTFhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvb3JUYWcyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG9vclRhZzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuNzUgMTcuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41Wk0xMC44IDcuMUExLjUgMS41IDAgMSAxIDEyIDkuNUg4YTIgMiAwIDAgMC0yIDJWMjBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWOEE2IDYgMCAwIDAgNy4yIDQuNGEyLjI1IDIuMjUgMCAxIDAgMy42IDIuN1pNMTIgNWEzIDMgMCAwIDAtMi40IDEuMi43NS43NSAwIDAgMS0xLjItLjlBNC41IDQuNSAwIDAgMSAxNi41IDh2MTJhLjUuNSAwIDAgMS0uNS41SDhhLjUuNSAwIDAgMS0uNS0uNXYtOC41YzAtLjI4LjIyLS41LjUtLjVoNGEzIDMgMCAxIDAgMC02WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlU3dpcGVEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlU3dpcGVEb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02LjI4IDE3Ljc4Yy0uMy4zLS43Ny4zLTEuMDYgMGwtMi41LTIuNWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA2TDUgMTUuNDRWNS43NWEuNzUuNzUgMCAwIDEgMS41IDB2OS42OWwxLjIyLTEuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi41IDIuNVpNMiA1Ljc1YzAgMS40NC44MSAyLjY5IDIgMy4zMnYtMS45YTIuMjUgMi4yNSAwIDEgMSAzLjUgMHYxLjlBMy43NSAzLjc1IDAgMSAwIDIgNS43NVptMTAuNSAzLjMyYTMuNzUgMy43NSAwIDEgMSAzLjUgMHYtMS45YTIuMjUgMi4yNSAwIDEgMC0zLjUgMHYxLjlabTIuMjggOC43MWMtLjMuMy0uNzcuMy0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxLjIyIDEuMjJWNS43NWEuNzUuNzUgMCAwIDEgMS41IDB2OS42OWwxLjIyLTEuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi41IDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVN3aXBlRG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVTd2lwZURvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01Ljg1IDE3Ljg1YS41LjUgMCAwIDEtLjcgMGwtMy0zYS41LjUgMCAwIDEgLjctLjdMNSAxNi4yOVY1LjVhLjUuNSAwIDAgMSAxIDB2MTAuOGwyLjE1LTIuMTVhLjUuNSAwIDAgMSAuNy43bC0zIDNabTkgMGEuNS41IDAgMCAxLS43IDBsLTMtM2EuNS41IDAgMCAxIC43LS43TDE0IDE2LjI5VjUuNWEuNS41IDAgMCAxIDEgMHYxMC44bDIuMTUtMi4xNWEuNS41IDAgMCAxIC43LjdsLTMgM1pNMTEgNS41YzAgMS40LjgyIDIuNiAyIDMuMTZWNy41YTIuNSAyLjUgMCAxIDEgMyAwdjEuMTZhMy41IDMuNSAwIDEgMC01LTMuMTZaTTQgOC42NmEzLjUgMy41IDAgMSAxIDMgMFY3LjVhMi41IDIuNSAwIDEgMC0zIDB2MS4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVN3aXBlRG93bjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVN3aXBlRG93bjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTguMiAyMS43YTEgMSAwIDAgMS0xLjQgMGwtMy0zYTEgMSAwIDAgMSAxLjQtMS40bDEuMyAxLjI5VjdhMSAxIDAgMSAxIDIgMHYxMS41OWwxLjMtMS4zYTEgMSAwIDEgMSAxLjQgMS40MmwtMyAzWk0xMi41IDdhNSA1IDAgMCAwIDMgNC41OFY5LjI0YTMgMyAwIDAgMSAyLTUuMjQgMyAzIDAgMCAxIDIgNS4yNHYyLjM0YTUgNSAwIDEgMC03LTQuNThabS04IDQuNThhNSA1IDAgMSAxIDQgMFY5LjI0QTMgMyAwIDAgMCA2LjUgNGEzIDMgMCAwIDAtMiA1LjI0djIuMzRabTIuNyAxMC4xM2ExIDEgMCAwIDEtMS40IDBsLTMtM2ExIDEgMCAxIDEgMS40LTEuNDJsMS4zIDEuM1Y3YTEgMSAwIDAgMSAyIDB2MTEuNTlsMS4zLTEuM2ExIDEgMCAxIDEgMS40IDEuNDJsLTMgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVN3aXBlRG93bjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVTd2lwZURvd24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02Ljc1IDZjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2MTIuNjlsMi4yMi0yLjIyYS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wN2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4LTMuNSAzLjVhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0zLjUtMy41YS43NS43NSAwIDAgMSAuOTgtMS4xM2wuMDguMDdMNiAxOS40NFY2Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTEwLjUgMGMuMzggMCAuNy4yOC43NC42NXYxMi43OWwyLjIzLTIuMjJhLjc1Ljc1IDAgMCAxIC45Ny0uMDdsLjA5LjA3Yy4yNi4yNy4yOS42OC4wNy45OGwtLjA3LjA4LTMuNSAzLjVhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0zLjUtMy41YS43NS43NSAwIDAgMSAuOTctMS4xM2wuMDkuMDcgMi4yMiAyLjIyVjYuNzVjMC0uNDEuMzMtLjc1Ljc1LS43NVpNNi43NSAyYTQuNzUgNC43NSAwIDAgMSAxLjc1IDkuMTdWOS40OWEzLjI1IDMuMjUgMCAxIDAtMy41IDB2MS42OEE0Ljc1IDQuNzUgMCAwIDEgNi43NSAyWm0xMC41IDBBNC43NSA0Ljc1IDAgMCAxIDE5IDExLjE3VjkuNDlhMy4yNSAzLjI1IDAgMSAwLTMuNSAwdjEuNjhBNC43NSA0Ljc1IDAgMCAxIDE3LjI1IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEb3VibGVTd2lwZVVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlU3dpcGVVcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNi4yOCAyLjIyYS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw1IDQuNTZ2OS42OWEuNzUuNzUgMCAwIDAgMS41IDBWNC41NmwxLjIyIDEuMjJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMi41LTIuNVpNMiAxNC4yNWMwLTEuNDQuODEtMi42OSAyLTMuMzJ2MS45YTIuMjUgMi4yNSAwIDEgMCAzLjUgMHYtMS45QTMuNzUgMy43NSAwIDEgMSAyIDE0LjI1Wm0xMC41LTMuMzJhMy43NSAzLjc1IDAgMSAwIDMuNSAwdjEuOWEyLjI1IDIuMjUgMCAxIDEtMy41IDB2LTEuOVptMi4yOC04LjcxYS43NS43NSAwIDAgMC0xLjA2IDBsLTIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwxLjIyLTEuMjJ2OS42OWEuNzUuNzUgMCAwIDAgMS41IDBWNC41NmwxLjIyIDEuMjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi41LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVN3aXBlVXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlU3dpcGVVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuODUgMi4xNWEuNS41IDAgMCAwLS43IDBsLTMgM2EuNS41IDAgMSAwIC43LjdMNSAzLjcxVjE0LjVhLjUuNSAwIDAgMCAxIDBWMy43bDIuMTUgMi4xNWEuNS41IDAgMSAwIC43LS43bC0zLTNabTkgMGEuNS41IDAgMCAwLS43IDBsLTMgM2EuNS41IDAgMCAwIC43LjdMMTQgMy43MVYxNC41YS41LjUgMCAwIDAgMSAwVjMuN2wyLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMy0zWk0xMSAxNC41YzAtMS40LjgyLTIuNiAyLTMuMTZ2MS4xNmEyLjUgMi41IDAgMSAwIDMgMHYtMS4xNmEzLjUgMy41IDAgMSAxLTUgMy4xNlptLTctMy4xNmEzLjUgMy41IDAgMSAwIDMgMHYxLjE2YTIuNSAyLjUgMCAxIDEtMyAwdi0xLjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlU3dpcGVVcDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVN3aXBlVXAyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE4LjIgMi4zYTEgMSAwIDAgMC0xLjQgMGwtMyAzYTEgMSAwIDAgMCAxLjQgMS40bDEuMy0xLjI5VjE3YTEgMSAwIDEgMCAyIDBWNS40MWwxLjMgMS4zYTEgMSAwIDEgMCAxLjQtMS40MmwtMy0zWk0xMi41IDE3YTUgNSAwIDAgMSAzLTQuNTh2Mi4zNGEzIDMgMCAwIDAgMiA1LjI0IDMgMyAwIDAgMCAyLTUuMjR2LTIuMzRhNSA1IDAgMSAxLTcgNC41OFptLTgtNC41OGE1IDUgMCAxIDAgNCAwdjIuMzRhMyAzIDAgMCAxLTIgNS4yNCAzIDMgMCAwIDEtMi01LjI0di0yLjM0Wk03LjIgMi4yOWExIDEgMCAwIDAtMS40IDBsLTMgM2ExIDEgMCAwIDAgMS40IDEuNDJsMS4zLTEuM1YxN2ExIDEgMCAxIDAgMiAwVjUuNDFsMS4zIDEuM2ExIDEgMCAwIDAgMS40LTEuNDJsLTMtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVN3aXBlVXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlU3dpcGVVcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuNzUgMThjLjM4IDAgLjctLjI4Ljc0LS42NWwuMDEtLjFWNC41NmwyLjIyIDIuMjJjLjI3LjI3LjY4LjMuOTguMDdsLjA4LS4wN2EuNzUuNzUgMCAwIDAgLjA3LS45OGwtLjA3LS4wOC0zLjUtMy41YS43NS43NSAwIDAgMC0uOTgtLjA3bC0uMDguMDctMy41IDMuNWEuNzUuNzUgMCAwIDAgLjk4IDEuMTNsLjA4LS4wN0w2IDQuNTZ2MTIuNjljMCAuNDEuMzQuNzUuNzUuNzVabTEwLjUgMGMuMzggMCAuNy0uMjguNzQtLjY1VjQuNTZsMi4yMyAyLjIyYy4yNi4yNy42OC4zLjk3LjA3bC4wOS0uMDdjLjI2LS4yNy4yOS0uNjguMDctLjk4bC0uMDctLjA4LTMuNS0zLjVhLjc1Ljc1IDAgMCAwLS45OC0uMDdsLS4wOC4wNy0zLjUgMy41YS43NS43NSAwIDAgMCAuOTcgMS4xM2wuMDktLjA3IDIuMjItMi4yMnYxMi42OWMwIC40MS4zMy43NS43NS43NVptLTEwLjUgNGE0Ljc1IDQuNzUgMCAwIDAgMS43NS05LjE3djEuNjhhMy4yNSAzLjI1IDAgMSAxLTMuNSAwdi0xLjY4QTQuNzUgNC43NSAwIDAgMCA2Ljc1IDIyWm0xMC41IDBBNC43NSA0Ljc1IDAgMCAwIDE5IDEyLjgzdjEuNjhhMy4yNSAzLjI1IDAgMSAxLTMuNSAwdi0xLjY4QTQuNzUgNC43NSAwIDAgMCAxNy4yNSAyMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVRhcFN3aXBlRG93bjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVRhcFN3aXBlRG93bjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNCA1LjVhNCA0IDAgMSAxIDUuNzUgMy42djEuNjJhNS41IDUuNSAwIDEgMC0zLjUgMFY5LjFBNCA0IDAgMCAxIDQgNS41Wm03IDBhMyAzIDAgMCAxLTEuMjUgMi40NFY1Ljc1YTEuNzUgMS43NSAwIDEgMC0zLjUgMHYyLjE5QTMgMyAwIDEgMSAxMSA1LjVabS0yLjI1LjI1YS43NS43NSAwIDAgMC0xLjUgMHY3LjE5bC0xLjIyLTEuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41Yy4zLjMuNzcuMyAxLjA2IDBsMi41LTIuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjIyIDEuMjJWNS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVRhcFN3aXBlRG93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVUYXBTd2lwZURvd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00LjUgNS41YTMuNSAzLjUgMCAxIDEgNSAzLjE2djEuMDhhNC41IDQuNSAwIDEgMC0zIDBWOC42NmEzLjUgMy41IDAgMCAxLTItMy4xNlptNiAwYzAgLjgyLS40IDEuNTQtMSAydi0yYTEuNSAxLjUgMCAxIDAtMyAwdjJhMi41IDIuNSAwIDEgMSA0LTJabS0yIDBhLjUuNSAwIDAgMC0xIDB2Ny44bC0xLjY1LTEuNjVhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0w4LjUgMTMuMjlWNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlVGFwU3dpcGVEb3duMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41MyAxNy43OGMtLjMuMy0uNzcuMy0xLjA2IDBsLTIuNS0yLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwxLjIyIDEuMjJWNy43NWEuNzUuNzUgMCAxIDEgMS41IDB2Ny42OWwxLjIyLTEuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi41IDIuNVpNNC4yNSA3LjVhNS43NSA1Ljc1IDAgMCAwIDQgNS40OHYtMS42YTQuMjUgNC4yNSAwIDEgMSAzLjUgMHYxLjZhNS43NSA1Ljc1IDAgMSAwLTcuNS01LjQ4Wm0yLjUgMGMwIDEuMTUuNiAyLjE2IDEuNSAyLjc0VjcuNWExLjc1IDEuNzUgMCAxIDEgMy41LjEzVjEwLjI0YTMuMjUgMy4yNSAwIDEgMC01LTIuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBEb3VibGVUYXBTd2lwZURvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlVGFwU3dpcGVEb3duMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuMzUgMTcuODVhLjUuNSAwIDAgMS0uNyAwbC0zLTNhLjUuNSAwIDAgMSAuNy0uN2wyLjE1IDIuMTRWNy41YS41LjUgMCAwIDEgMSAwdjguOGwyLjE1LTIuMTVhLjUuNSAwIDAgMSAuNy43bC0zIDNaTTQuNSA3LjVhNS41IDUuNSAwIDAgMCA0IDUuM3YtMS4wNmE0LjUgNC41IDAgMSAxIDMgMHYxLjA1YTUuNSA1LjUgMCAxIDAtNy01LjI5Wm0yIDBjMCAxLjQuODIgMi42IDIgMy4xNlY5LjVhMi41IDIuNSAwIDEgMSAzIDB2MS4xNmEzLjUgMy41IDAgMSAwLTUtMy4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVRhcFN3aXBlRG93bjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVRhcFN3aXBlRG93bjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNyAyMS43YTEgMSAwIDAgMS0xLjQgMGwtMy0zYTEgMSAwIDEgMSAxLjQtMS40bDEuMyAxLjI5VjlhMSAxIDAgMSAxIDIgMHY5LjU5bDEuMy0xLjNhMSAxIDAgMCAxIDEuNCAxLjQybC0zIDNaTTQuNSA5YTcuNSA3LjUgMCAwIDAgNS41IDcuMjN2LTIuMWE1LjUgNS41IDAgMSAxIDQgMHYyLjFBNy41IDcuNSAwIDEgMCA0LjUgOVptMyAwYTQuNSA0LjUgMCAwIDAgMi41IDQuMDNWMTAuNWEyLjUgMi41IDAgMSAxIDQgMHYyLjUzQTQuNSA0LjUgMCAxIDAgNy41IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBEb3VibGVUYXBTd2lwZURvd24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlVGFwU3dpcGVEb3duMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuNTMgMjEuNzhjLS4zLjMtLjc3LjMtMS4wNiAwbC0zLjUtMy41YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4yMiAyLjIyVjguNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEwLjY5bDIuMjItMi4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0zLjUgMy41Wk01IDlhNyA3IDAgMCAwIDUuMjUgNi43OHYtMS41NmE1LjUgNS41IDAgMSAxIDMuNSAwdjEuNTZBNyA3IDAgMSAwIDUgOVptMi41IDBhNC41IDQuNSAwIDAgMCAyLjc1IDQuMTV2LTEuNzFhMyAzIDAgMSAxIDMuNSAwdjEuN0E0LjUgNC41IDAgMSAwIDcuNSA5WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVVcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVRhcFN3aXBlVXAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQgMTAuNWE0IDQgMCAxIDAgNS43NS0zLjZWNS4yOGE1LjUgNS41IDAgMSAxLTMuNSAwVjYuOUE0IDQgMCAwIDAgNCAxMC41Wm03IDBhMyAzIDAgMCAwLTEuMjUtMi40NHYyLjE5YTEuNzUgMS43NSAwIDEgMS0zLjUgMFY4LjA2QTMgMyAwIDEgMCAxMSAxMC41Wm0tMi4yNS0uMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjMuMDZMNi4wMyA0LjI4YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMi41LTIuNWMuMy0uMy43Ny0uMyAxLjA2IDBsMi41IDIuNWEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2TDguNzUgMy4wNnY3LjE5WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVVcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVUYXBTd2lwZVVwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC41IDEwLjVhMy41IDMuNSAwIDEgMCA1LTMuMTZWNi4yNmE0LjUgNC41IDAgMSAxLTMgMHYxLjA4YTMuNSAzLjUgMCAwIDAtMiAzLjE2Wm02IDBjMC0uODItLjQtMS41NC0xLTJ2MmExLjUgMS41IDAgMCAxLTMgMHYtMmEyLjUgMi41IDAgMSAwIDQgMlptLTIgMGEuNS41IDAgMCAxLTEgMFYyLjdMNS44NSA0LjM2YS41LjUgMCAxIDEtLjctLjdsMi41LTIuNWMuMi0uMi41LS4yLjcgMGwyLjUgMi41YS41LjUgMCAwIDEtLjcuN0w4LjUgMi43MXY3Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVVcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RvdWJsZVRhcFN3aXBlVXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUzIDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMi41IDIuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDEuMjItMS4yMnY3LjY5YS43NS43NSAwIDAgMCAxLjUgMFY0LjU2bDEuMjIgMS4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjUtMi41Wk00LjI1IDEyLjVhNS43NSA1Ljc1IDAgMCAxIDQtNS40OHYxLjZhNC4yNSA0LjI1IDAgMSAwIDMuNSAwdi0xLjZhNS43NSA1Ljc1IDAgMSAxLTcuNSA1LjQ4Wm0yLjUgMGMwLTEuMTUuNi0yLjE2IDEuNS0yLjc0djIuNzRhMS43NSAxLjc1IDAgMSAwIDMuNSAwVjkuNzZhMy4yNSAzLjI1IDAgMSAxLTUgMi43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVRhcFN3aXBlVXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRG91YmxlVGFwU3dpcGVVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjM1IDIuMTVhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDEgMCAuNy43TDkuNSAzLjcxdjguNzlhLjUuNSAwIDAgMCAxIDBWMy43bDIuMTUgMi4xNWEuNS41IDAgMCAwIC43LS43bC0zLTNaTTQuNSAxMi41YTUuNSA1LjUgMCAwIDEgNC01LjN2MS4wNmE0LjUgNC41IDAgMSAwIDMgMFY3LjJhNS41IDUuNSAwIDEgMS03IDUuMjlabTIgMGMwLTEuNC44Mi0yLjYgMi0zLjE2djEuMTZhMi41IDIuNSAwIDEgMCAzIDBWOS4zNGEzLjUgMy41IDAgMSAxLTUgMy4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERvdWJsZVRhcFN3aXBlVXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVUYXBTd2lwZVVwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMi43IDIuM2ExIDEgMCAwIDAtMS40IDBsLTMgM2ExIDEgMCAwIDAgMS40IDEuNEwxMSA1LjQyVjE1YTEgMSAwIDEgMCAyIDBWNS40MWwxLjMgMS4zYTEgMSAwIDEgMCAxLjQtMS40MmwtMy0zWk00LjUgMTVBNy41IDcuNSAwIDAgMSAxMCA3Ljc3djIuMWE1LjUgNS41IDAgMSAwIDQgMHYtMi4xQTcuNSA3LjUgMCAxIDEgNC41IDE1Wm0zIDBhNC41IDQuNSAwIDAgMSAyLjUtNC4wM3YyLjUzYTIuNSAyLjUgMCAxIDAgNCAwdi0yLjUzQTQuNSA0LjUgMCAxIDEgNy41IDE1WlwiXSk7XG5leHBvcnQgY29uc3QgRG91YmxlVGFwU3dpcGVVcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEb3VibGVUYXBTd2lwZVVwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuNTMgMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0zLjUgMy41YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi4yMi0yLjIydjEwLjY5YS43NS43NSAwIDAgMCAxLjUgMFY0LjU2bDIuMjIgMi4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0zLjUtMy41Wk01IDE1YTcgNyAwIDAgMSA1LjI1LTYuNzh2MS41NmE1LjUgNS41IDAgMSAwIDMuNSAwVjguMjJBNyA3IDAgMSAxIDUgMTVabTIuNSAwYTQuNSA0LjUgMCAwIDEgMi43NS00LjE1djEuNzFhMyAzIDAgMSAwIDMuNSAwdi0xLjdBNC41IDQuNSAwIDEgMSA3LjUgMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmFmdHMxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmFmdHMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzLjk4IDJhMi42MiAyLjYyIDAgMCAwLTMuNzEgMGwtLjc4Ljc4IDMuNyAzLjcxLjgtLjc5YTIuNjIgMi42MiAwIDAgMC0uMDEtMy43Wk0yLjggOS40OWw1Ljk4LTYgMy43MSAzLjctNS45OCA2YTEuNSAxLjUgMCAwIDEtLjU2LjM2TDIgMTQuOTZhLjc1Ljc1IDAgMCAxLS45Ni0uOTZsMS40Mi0zLjk2Yy4wOC0uMi4yLS40LjM1LS41NVpNMS41IDJoNy4zNmwtMSAxSDEuNWEuNS41IDAgMCAxIDAtMVptMCAyaDUuMzZsLTEgMUgxLjVhLjUuNSAwIDAgMSAwLTFabTAgMmgzLjM3bC0xIDFIMS41YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHJhZnRzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWZ0czE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEwLjI3IDJhMi42MiAyLjYyIDAgMCAxIDMuNzEgMy43bC03LjQ3IDcuNWExLjUgMS41IDAgMCAxLS41Ni4zNUwyIDE0Ljk2YS43NS43NSAwIDAgMS0uOTYtLjk2bDEuNDItMy45NmMuMDgtLjIuMi0uNC4zNS0uNTVMMTAuMjcgMlptMyAuN2ExLjYyIDEuNjIgMCAwIDAtMi4zIDBsLS43Ny44IDIuMjkgMi4yOC43OC0uNzhjLjY0LS42NC42My0xLjY2IDAtMi4zWm0tMS40OSAzLjhMOS41IDQuMmwtNS45OCA2YS41LjUgMCAwIDAtLjEyLjE4bC0xLjI0IDMuNDYgMy40Ny0xLjIzYS41LjUgMCAwIDAgLjE4LS4xMmw1Ljk4LTZaTTguODYgMkgxLjVhLjUuNSAwIDEgMCAwIDFoNi4zNmwxLTFabS0yIDJIMS41YS41LjUgMCAxIDAgMCAxaDQuMzdsMS0xWm0tMiAySDEuNWEuNS41IDAgMSAwIDAgMWgyLjM3bDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYWZ0czIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWZ0czIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTUuNjEgOC4zMi0zLjkzLTMuOTQtOC4wNCA4LjA0LS4xMi4xM2EyIDIgMCAwIDAtLjQuNzZsLTEuMSA0LjA2LS4wMi4wOGEuNS41IDAgMCAwIC42My41M2w0LjA2LTEuMS4xNi0uMDZhMiAyIDAgMCAwIC43My0uNDZsOC4wMy04LjA0Wm0xLjU3LTUuNWEyLjc4IDIuNzggMCAwIDAtMy45MyAwbC0uODcuODYgMy45NCAzLjkzLjg2LS44Ni4xMy0uMTRjLjk2LTEuMDkuOTEtMi43NS0uMTMtMy44Wk0xMS42NSAzSDIuNWEuNS41IDAgMCAwIDAgMWg4LjE1bDEtMVptLTMgM0gyLjVhLjUuNSAwIDAgMCAwIDFoNS4xNWwxLTFabS0zIDMtMSAxSDIuNWEuNS41IDAgMSAxIDAtMWgzLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhZnRzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWZ0czIwUmVndWxhcicsIFwiMjBcIiwgW1wibTEzLjI1IDIuODItOS42MSA5LjYtLjEyLjEzYTIgMiAwIDAgMC0uNC43NmwtMS4xIDQuMDYtLjAyLjA4YS41LjUgMCAwIDAgLjYzLjUzbDQuMDYtMS4xLjE2LS4wNmEyIDIgMCAwIDAgLjczLS40Nmw5LjYtOS42LjEzLS4xNWEyLjc4IDIuNzggMCAwIDAtNC4wNi0zLjhabS04LjkgMTAuMzEgOC4wNC04LjA0IDIuNTIgMi41Mi04LjA0IDguMDQtLjEuMDktLjEuMDdhMSAxIDAgMCAxLS4yNS4xbC0zLjIuODcuODctMy4yLjA0LS4xM2ExIDEgMCAwIDEgLjIyLS4zMlptMTIuMTItOS42LjExLjExYy41OS43LjU1IDEuNzUtLjEgMi40bC0uODcuODctMi41Mi0yLjUzLjg2LS44Ni4xMi0uMWMuNy0uNTkgMS43NS0uNTUgMi40LjFaTTExLjY1IDNIMi41YS41LjUgMCAwIDAgMCAxaDguMTVsMS0xWm0tMyAzSDIuNWEuNS41IDAgMCAwIDAgMWg1LjE1bDEtMVptLTQgNCAxLTFIMi41YS41LjUgMCAwIDAgMCAxaDIuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmFmdHMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmFmdHMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjk0IDUgMTkgMTAuMDYgOS4wNiAyMGMtLjI3LjI4LS42Mi40OC0xIC41OGwtNS4xMSAxLjRhLjc1Ljc1IDAgMCAxLS45Mi0uOTNsMS40LTUuMTFjLjEtLjM4LjMtLjcyLjU3LTFMMTMuOTQgNVptLTcuNDEgNi0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNzhabTE0LjM1LTguMTcuMTUuMTQuMTUuMTVhMy41OCAzLjU4IDAgMCAxLS4xNSA0LjkxbC0uOTcuOTdMMTUgMy45NGwuOTctLjk3YTMuNTggMy41OCAwIDAgMSA0LjktLjE0Wk0xMC41MyA3bC0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMSAxIDAtMS41aDcuNzhabTQtNC0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMSAxIDAtMS41aDExLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhZnRzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWZ0czI0UmVndWxhcicsIFwiMjRcIiwgW1wibTIwLjg4IDIuODMuMTUuMTQuMTUuMTVhMy41OCAzLjU4IDAgMCAxLS4xNSA0LjkxTDkuMDYgMjBjLS4yNy4yOC0uNjIuNDgtMSAuNThsLTUuMTEgMS40YS43NS43NSAwIDAgMS0uOTItLjkzbDEuNC01LjExYy4xLS4zOC4zLS43Mi41Ny0xTDE1Ljk3IDIuOTdhMy41OCAzLjU4IDAgMCAxIDQuOS0uMTRaTTE1IDYuMDYgNS4wNiAxNmMtLjA5LjEtLjE2LjItLjE5LjMzbC0xLjA1IDMuODUgMy44NS0xLjA1Yy4xMy0uMDMuMjQtLjEuMzMtLjJMMTcuOTQgOSAxNSA2LjA2Wk02LjUzIDExbC0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNzhabTQtNC0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMSAxIDAtMS41aDcuNzhabTYuNS0yLjk3LS45Ny45N0wxOSA3Ljk0bC45Ny0uOTdhMi4wOCAyLjA4IDAgMSAwLTIuOTQtMi45NFpNMTQuNTMgM2wtMS41IDEuNUgyLjc1YS43NS43NSAwIDEgMSAwLTEuNWgxMS43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYWcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmFnMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYy4yIDAgLjM5LjA4LjUzLjIybDEuNSAxLjVhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtLjIyLS4yMnYxLjY5YS43NS43NSAwIDAgMS0xLjUgMFY0LjU2bC0uMjIuMjJhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjUtMS41QS43NS43NSAwIDAgMSAxMCAyWm0yIDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0tOS43OC0uNTNhLjc1Ljc1IDAgMCAwIDAgMS4wNmwxLjUgMS41YS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLS4yMi0uMjJoMS42OWEuNzUuNzUgMCAwIDAgMC0xLjVINC41NmwuMjItLjIyYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTEuNSAxLjVaTTEwIDE4Yy4yIDAgLjM5LS4wOC41My0uMjJsMS41LTEuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0uMjIuMjJ2LTEuNjlhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuNjlsLS4yMi0uMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjUgMS41Yy4xNC4xNC4zMy4yMi41My4yMlptNy43OC04LjUzYS43NS43NSAwIDAgMSAwIDEuMDZsLTEuNSAxLjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwuMjItLjIyaC0xLjY5YS43NS43NSAwIDAgMSAwLTEuNWgxLjY5bC0uMjItLjIyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYWcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuNjUgMi4xNWMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDEwLjUgMy43MVY2LjVhLjUuNSAwIDAgMS0xIDBWMy43TDguMzUgNC44NmEuNS41IDAgMSAxLS43LS43bDItMlpNMTAgMTJhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wLTFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm01Ljg1IDEuMzUgMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTVIMTMuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdabS01LjUgNS41IDItMmEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTRWMTMuNWEuNS41IDAgMCAwLTEgMHYyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMFptLTguMi03LjVhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMSAxIC43LjdMMy43MSA5LjVINi41YS41LjUgMCAwIDEgMCAxSDMuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmFnMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhZzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMTZhMSAxIDAgMCAxIDEgLjg4VjE4LjU4bC4zLS4yOWExIDEgMCAwIDEgMS4zMS0uMDhsLjEuMDhhMSAxIDAgMCAxIC4wOCAxLjMybC0uMDguMS0yIDItLjA1LjA0LS4wNi4wNS0uMTIuMDgtLjEuMDUtLjExLjAzLS4xMi4wM2gtLjI3bC0uMTEtLjAyLS4xMS0uMDMtLjA4LS4wMy0uMS0uMDYtLjEtLjA2YTEuMDEgMS4wMSAwIDAgMS0uMDktLjA4bC0yLTJhMSAxIDAgMCAxIDEuMzItMS41bC4xLjA4LjI5LjNWMTdhMSAxIDAgMCAxIC44OC0xSDEyWm02LjMtNi43YTEgMSAwIDAgMSAxLjMxLS4wOWwuMS4wOCAyIDIgLjA0LjA1LjA1LjA3LjA4LjEuMDUuMTIuMDMuMS4wMy4xMnYuMjdsLS4wMi4xMS0uMDMuMTEtLjAzLjA4LS4wNi4xLS4wNy4xLS4wNy4wOS0yIDJhMSAxIDAgMCAxLTEuNS0xLjMybC4wOC0uMS4zLS4yOUgxN2ExIDEgMCAwIDEtMS0uODhWMTJhMSAxIDAgMCAxIC44OC0xSDE4LjU4bC0uMjktLjNhMSAxIDAgMCAxLS4wOC0xLjMxbC4wOC0uMVptLTE0IDBhMSAxIDAgMCAxIDEuNDkgMS4zMWwtLjA4LjEtLjMuMjlIN2ExIDEgMCAwIDEgMSAuODhWMTJhMSAxIDAgMCAxLS44OCAxSDUuNGwuMy4zYTEgMSAwIDAgMSAuMDggMS4zMWwtLjA4LjFhMSAxIDAgMCAxLTEuMzIuMDhsLS4xLS4wOC0yLTItLjEtLjExLS4wNy0uMTItLjA1LS4xLS4wMy0uMTEtLjAzLS4xMnYtLjA2bC0uMDEtLjF2LS4wOGwuMDItLjExLjAzLS4xMS4wNC0uMTEuMDYtLjEuMDYtLjFhMSAxIDAgMCAxIC4wOC0uMDlsMi0yWm03LjctLjA1YTIuNzUgMi43NSAwIDEgMSAwIDUuNSAyLjc1IDIuNzUgMCAwIDEgMC01LjVabS0uMTUtNy4yNGguMzJsLjE0LjA0LjExLjA0LjEuMDYuMS4wNy4wOS4wNyAyIDJhMSAxIDAgMCAxLTEuMzIgMS41bC0uMS0uMDgtLjI5LS4zVjdhMSAxIDAgMCAxLS44OCAxSDEyYTEgMSAwIDAgMS0xLS44OFY1LjRsLS4zLjNhMSAxIDAgMCAxLTEuMzEuMDhsLS4xLS4wOGExIDEgMCAwIDEtLjA4LTEuMzJsLjA4LS4xIDItMiAuMTEtLjEuMTItLjA2LjEtLjA2LjExLS4wMy4xMi0uMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmFnMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYWcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAxNi41Yy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjIuMTlsLjcyLS43MmMuMjctLjI3LjY4LS4zLjk4LS4wN2wuMDguMDdjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOC0yIDItLjA0LjA0LS4wNy4wNS0uMS4wNi0uMDguMDMtLjEuMDNoLS4xOWwtLjEyLS4wMS0uMDctLjAyLS4wNi0uMDItLjA3LS4wNC0uMDUtLjAzLS4wMy0uMDJhLjc1Ljc1IDAgMCAxLS4wOC0uMDdsLTItMmEuNzUuNzUgMCAwIDEgLjk4LTEuMTNsLjA4LjA3LjcyLjcydi0yLjE5YzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFaTTEyIDlhMyAzIDAgMSAxIDAgNiAzIDMgMCAwIDEgMC02Wm02LjcyLjQ3YS43NS43NSAwIDAgMSAuOTgtLjA3bC4wOC4wNyAyIDIgLjA0LjA0LjA1LjA3LjA2LjEuMDMuMDguMDMuMXYuMzFsLS4wMy4wNy0uMDIuMDYtLjA0LjA3LS4wMy4wNS0uMDMuMDQtLjA2LjA3LTIgMmEuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOC43Mi0uNzJoLTIuMTlhLjc1Ljc1IDAgMCAxLS43NC0uNjVWMTJjMC0uMzguMjctLjcuNjQtLjc0bC4xLS4wMWgyLjE5bC0uNzItLjcyYS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDhabS0xNC41IDBhLjc1Ljc1IDAgMCAxIDEuMTMuOThsLS4wNy4wOC0uNzIuNzJoMi4yYy4zNyAwIC42OC4yOC43My42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxSDQuNTZsLjcyLjcyYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDhhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wNy0yLTItLjEtLjExLS4wNS0uMS0uMDMtLjA4LS4wMy0uMXYtLjE5bC4wMS0uMTIuMDItLjA3LjAyLS4wNi4wNC0uMDcuMDMtLjA1LjAyLS4wM2EuNzUuNzUgMCAwIDEgLjA3LS4wOGwyLTJaTTEyIDEwLjVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNabS0uMTQtOC40OWguMDdsLjA5LS4wMWguMDZsLjEuMDIuMDYuMDIuMDYuMDIuMDcuMDQuMDUuMDMuMDQuMDMuMDcuMDYgMiAyYS43NS43NSAwIDAgMS0uOTggMS4xM2wtLjA4LS4wNy0uNzItLjcydjIuMTljMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWEuNzUuNzUgMCAwIDEtLjc0LS42NVY0LjU2bC0uNzMuNzJhLjc1Ljc1IDAgMCAxLS45OC4wN2wtLjA4LS4wN2EuNzUuNzUgMCAwIDEtLjA3LS45OGwuMDctLjA4IDItMiAuMTEtLjEuMS0uMDUuMDgtLjAzLjEtLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd0ltYWdlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd0ltYWdlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y5LjA4YzAgLjQ1LjU1LjY4Ljg3LjM2TDUuMiAxNC4xbDMuNzQtMy42OGExLjUgMS41IDAgMCAxIDIuMSAwbDEuNzQgMS43MiAyLjMxLTIuM2MuNTMtLjU0IDEuMjEtLjgyIDEuOS0uODVWNmEzIDMgMCAwIDAtMy0zSDZabTggNC41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMSAwYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tMi43MyA3LjE3IDEuODItMS44MS0xLjc0LTEuNzFhLjUuNSAwIDAgMC0uNyAwTDUuNDMgMTUuM2MtLjIzLjIzLS4wMS41OC4zLjQ3bC4zMi0uMTFjLjctLjI2IDEuNzYtLjU1IDIuNzUtLjE2LjI4LjEyLjUuMjguNjguNDguMTUtLjUuNDItLjk1LjgtMS4zMlptLjcxLjcgNC44My00LjgyYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuMjIuM2MtMS4xMi4zMy0yLjguMjMtMy4zMS0uMThhMS4wNSAxLjA1IDAgMCAxLS4zMi0xLjI0Yy4wNC0uMDgtLjAyLS4xOC0uMS0uMTctLjUuMDctLjkuMjUtMS4zLjQzLS42LjI1LTEuMTYuNS0xLjk4LjRhMS43IDEuNyAwIDAgMS0xLjMzLS44MmMtLjEyLS4yLjE1LS40LjM2LS4yOC4zNy4xOC44My4zMyAxLjIyLjI0LjI1LS4wNS41Ny0uMTkuOTQtLjM0Ljg4LS4zNyAyLS44NSAyLjg2LS41LjY0LjI2LjU5Ljk4LjQgMS4zMy0uMDMuMDcgMCAuMTYuMDcuMTguMjcuMDYuNjUuMSAxLjExLjA5IDAtLjA1LjAyLS4xLjAzLS4xNGwuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd0ltYWdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdJbWFnZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0IDcuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTEgMGEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFpNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjNjLS4zNC4wMi0uNjguMS0xIC4yM1Y2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjguODNjMCAuMTcuMjEuMjYuMzQuMTRsLjgtLjggMS4wNS0xLjAzLjItLjIgMi41Ni0yLjVhMS41IDEuNSAwIDAgMSAyLjEgMGwxLjc1IDEuNy0uNzEuNzEtMS43NC0xLjdhLjUuNSAwIDAgMC0uNyAwbC0yLjc2IDIuNy0xLjg1IDEuODNBMS4yIDEuMiAwIDAgMSAzIDE0LjgzVjZabS40IDExLjA0Yy4zNy4xOC44My4zMyAxLjIyLjI0LjI1LS4wNS41Ny0uMTkuOTQtLjM0Ljg4LS4zNyAyLS44NSAyLjg2LS41LjY0LjI2LjU5Ljk4LjQgMS4zMy0uMDMuMDcgMCAuMTYuMDcuMTguMjcuMDYuNjUuMSAxLjExLjA5IDAtLjA1LjAyLS4xLjAzLS4xNGwuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAybDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjIyLjNjLTEuMTIuMzMtMi44LjIzLTMuMzEtLjE4YTEuMDUgMS4wNSAwIDAgMS0uMzItMS4yNGMuMDQtLjA4LS4wMi0uMTgtLjEtLjE3LS41LjA3LS45LjI1LTEuMy40My0uNi4yNS0xLjE2LjUtMS45OC40YTEuNyAxLjcgMCAwIDEtMS4zMy0uODJjLS4xMi0uMi4xNS0uNC4zNi0uMjhaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3SW1hZ2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3SW1hZ2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE1LjY2IDE0LjctMi4wOC0yLjA1LS4xMy0uMTJjLS44NC0uNy0yLjA2LS43LTIuOSAwbC0uMTMuMTItNi4yMyA2LjEyYS43LjcgMCAwIDEtMS4yLS41VjYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI2IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY0Ljc2Yy0uOTMtLjA4LTEuOS4yNC0yLjYuOTVsLTIuNzQgMi43M1pNMTMuNSA4LjI0YTIuMjUgMi4yNSAwIDEgMCA0LjUgMCAyLjI1IDIuMjUgMCAwIDAtNC41IDBabTIuMjUtLjc1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVptLTQuMjggNi4yMi4wOS0uMDdjLjI2LS4yLjYxLS4yLjg3LS4wMWwuMS4wOCAyLjA3IDIuMDMtMi4xMSAyLjExYy0uNDQuNDQtLjc2Ljk4LS45MyAxLjU3YTMgMyAwIDAgMC0xLjQxLTEuMTMgMi43IDIuNyAwIDAgMC0xLjk0LjA0bC0uMTEuMDRjLS40OC4xNy0uODctLjQxLS41My0uOGwuMi0uMjQgMy43LTMuNjJabTcuNjMtMS4wNS01LjkgNS45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ0IDEuNzFjLS4zNS4xNy0uNy4yLTEuMTMuMS0uMTMtLjAyLS4xOC0uMTctLjEzLS4yOS40My0uOTYtLjE5LTEuNzctMS4wMy0yLjExLS45NS0uMzgtMi4yMi41MS0zLjI5IDEuMjctLjYuNDItMS4xMi44LTEuNS44Ny0uNTIuMTItMS4xNi0uMTItMS42My0uMzgtLjItLjEtLjQ4LjA4LS4zOC4zLjI0LjUyLjczIDEuMTIgMS43IDEuMjUuOTkuMTIgMS43Ny0uMzUgMi41Ni0uODIuNTgtLjM1IDEuMTYtLjcgMS44Mi0uOC4wOS0uMDEuMTUuMS4xLjE3LS4yNC40OC0uMzUgMS4zNy4yMiAxLjgyLjg1LjY2IDMuMjQuMjkgMy44My4wOWwuMTUtLjAzIDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w1LjktNS45YTIuMjkgMi4yOSAwIDAgMC0zLjIzLTMuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3SW1hZ2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd0ltYWdlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEgNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTIuMjhjMCAxLjMgMS41NyAxLjk2IDIuNSAxLjA1bDQuMDMtMy45Ni4wMi0uMDIgMS45Mi0xLjg5LjA5LS4wN2MuMjktLjIuNy0uMTguOTYuMDdsMi4wOCAyLjA0IDEuMDYtMS4wNi0yLjA5LTIuMDUtLjEyLS4xMWEyLjI1IDIuMjUgMCAwIDAtMy4wMi4xMUw1Ljk3IDE3aC4wMUw0LjUgMTguNDZWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djQuOThjLjQ4LS4xOSAxLS4yNiAxLjUtLjIyVjYuMjVabS0zLjUgMi41YTIuMjUgMi4yNSAwIDEgMC00LjUgMCAyLjI1IDIuMjUgMCAwIDAgNC41IDBabS0zIDBhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMFptLTEuMyA5LjgyIDUuOS01LjlhMi4yOSAyLjI5IDAgMSAxIDMuMjMgMy4yM2wtNS45IDUuOWMtLjM0LjM1LS43OC42LTEuMjUuNzFsLTEuODMuNDYtLjE1LjAzYy0uNTkuMi0yLjk4LjU3LTMuODItLjEtLjU4LS40NC0uNDctMS4zMy0uMjItMS44MS4wNC0uMDgtLjAyLS4xOC0uMS0uMTctLjY3LjEtMS4yNS40NS0xLjgzLjgtLjc5LjQ3LTEuNTcuOTQtMi41NS44MmEyLjA4IDIuMDggMCAwIDEtMS43MS0xLjI2Yy0uMS0uMjEuMTgtLjQuMzgtLjI5LjQ3LjI2IDEuMTEuNSAxLjY0LjM4LjM3LS4wOC45LS40NSAxLjUtLjg3IDEuMDYtLjc2IDIuMzMtMS42NSAzLjI4LTEuMjcuODQuMzQgMS40NiAxLjE1IDEuMDMgMi4xMS0uMDUuMTIgMCAuMjcuMTMuMy40Mi4xLjc4LjA2IDEuMTMtLjFsLjQzLTEuNzJjLjEyLS40Ny4zNi0uOS43LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3U2hhcGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3U2hhcGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzYy0uNjkuMDMtMS4zNy4zMS0xLjkuODRsLTQuODMgNC44M2EzLjIgMy4yIDAgMCAwLS44IDEuMzFjLS4xNi0uMTktLjM5LS4zNS0uNjctLjQ3LS45OS0uNC0yLjA1LS4xLTIuNzUuMTZhMTIgMTIgMCAwIDAtLjQxLjE1Yy0uMzguMTktLjcyLjMxLTEuMDEuNEExLjIgMS4yIDAgMCAxIDMuNDcgMTZjLS4zLS4yNi0uNDctLjY0LS40Ny0xLjA1VjZabTcuOTggOS4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS4yMi4zYy0xLjEyLjMzLTIuOC4yMy0zLjMxLS4xOGExLjA1IDEuMDUgMCAwIDEtLjMyLTEuMjRjLjA0LS4wOC0uMDItLjE4LS4xLS4xNy0uNS4wNy0uOS4yNS0xLjMuNDMtLjYuMjUtMS4xNi41LTEuOTguNGExLjcgMS43IDAgMCAxLTEuMzMtLjgyYy0uMTItLjIuMTUtLjQuMzYtLjI4LjM3LjE4LjgzLjMzIDEuMjIuMjQuMjUtLjA1LjU3LS4xOS45NC0uMzQuODgtLjM3IDItLjg1IDIuODYtLjUuNjQuMjYuNTkuOTguNCAxLjMzLS4wMy4wNyAwIC4xNi4wNy4xOC4yNy4wNi42NS4xIDEuMTEuMDkgMC0uMDUuMDItLjEuMDMtLjE0bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3U2hhcGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd1NoYXBlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjNjLS4zNC4wMi0uNjguMS0xIC4yM1Y2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjkuNWEuNS41IDAgMCAxLTEgMFY2Wm0uNCAxMS4wNGMuMzcuMTguODMuMzMgMS4yMi4yNC4yNS0uMDUuNTctLjE5Ljk0LS4zNC44OC0uMzcgMi0uODUgMi44Ni0uNS42NC4yNi41OS45OC40IDEuMzMtLjAzLjA3IDAgLjE2LjA3LjE4LjI3LjA2LjY1LjEgMS4xMS4wOSAwLS4wNS4wMi0uMS4wMy0uMTRsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMmw0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS4yMi4zYy0xLjEyLjMzLTIuOC4yMy0zLjMxLS4xOGExLjA1IDEuMDUgMCAwIDEtLjMyLTEuMjRjLjA0LS4wOC0uMDItLjE4LS4xLS4xNy0uNS4wNy0uOS4yNS0xLjMuNDMtLjYuMjUtMS4xNi41LTEuOTguNGExLjcgMS43IDAgMCAxLTEuMzMtLjgyYy0uMTItLjIuMTUtLjQuMzYtLjI4WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd1NoYXBlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd1NoYXBlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDUgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY0Ljc2Yy0uOTMtLjA4LTEuOS4yNC0yLjYxLjk1bC01LjkgNS45Yy0uNDQuNDQtLjc2Ljk4LS45MyAxLjU3YTMgMyAwIDAgMC0xLjQyLTEuMTMgMi43IDIuNyAwIDAgMC0xLjkzLjA0IDUuNDYgNS40NiAwIDAgMC0uODIuNGwtMS43IDEuMDNjLS40Ni4yOC0uOS4zNy0xLjMuMzRhMS45IDEuOSAwIDAgMS0uOS0uMzJjLS4zOC0uMjUtLjUtLjY4LS41LTFWNi4yNVptMTYuMSA2LjQyLTUuOSA1LjljLS4zNS4zNS0uNi43OC0uNyAxLjI1bC0uNDQgMS43MWMtLjM1LjE3LS43LjItMS4xMy4xLS4xMy0uMDItLjE4LS4xNy0uMTMtLjI5LjQzLS45Ni0uMTktMS43Ny0xLjAzLTIuMTEtLjk1LS4zOC0yLjIyLjUxLTMuMjkgMS4yNy0uNi40Mi0xLjEyLjgtMS41Ljg3LS41Mi4xMi0xLjE2LS4xMi0xLjYzLS4zOC0uMi0uMS0uNDguMDgtLjM4LjMuMjQuNTIuNzMgMS4xMiAxLjcgMS4yNS45OS4xMiAxLjc3LS4zNSAyLjU2LS44Mi41OC0uMzUgMS4xNi0uNyAxLjgyLS44LjA5LS4wMS4xNS4xLjEuMTctLjI0LjQ4LS4zNSAxLjM3LjIyIDEuODIuODUuNjYgMy4yNC4yOSAzLjgzLjA5bC4xNS0uMDMgMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdTaGFwZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3U2hhcGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxM2EuNzUuNzUgMCAwIDAgMS41IDB2LTEzYzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NC45OGMuNDgtLjE5IDEtLjI2IDEuNS0uMjJWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wm02Ljk1IDE1LjU3IDUuOS01LjlhMi4yOSAyLjI5IDAgMSAxIDMuMjMgMy4yM2wtNS45IDUuOWMtLjM0LjM1LS43OC42LTEuMjUuNzFsLTEuODMuNDYtLjE1LjAzYy0uNTkuMi0yLjk4LjU3LTMuODItLjEtLjU4LS40NC0uNDctMS4zMy0uMjItMS44MS4wNC0uMDgtLjAyLS4xOC0uMS0uMTctLjY3LjEtMS4yNS40NS0xLjgzLjgtLjc5LjQ3LTEuNTcuOTQtMi41NS44MmEyLjA4IDIuMDggMCAwIDEtMS43MS0xLjI2Yy0uMS0uMjEuMTgtLjQuMzgtLjI5LjQ3LjI2IDEuMTEuNSAxLjY0LjM4LjM3LS4wOC45LS40NSAxLjUtLjg3IDEuMDYtLjc2IDIuMzMtMS42NSAzLjI4LTEuMjcuODQuMzQgMS40NiAxLjE1IDEuMDMgMi4xMS0uMDUuMTIgMCAuMjcuMTMuMy40Mi4xLjc4LjA2IDEuMTMtLjFsLjQzLTEuNzJjLjEyLS40Ny4zNi0uOS43LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3VGV4dDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdUZXh0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC4xNCAxMC41SDYuODZMOC41IDUuODJsMS42NCA0LjY4Wm0uNTMgMS41LjMzLjk0IDEuMTctMS4xNy0yLjg3LTguMmEuODUuODUgMCAwIDAtMS42IDBMNC4wNCAxNGEuNzUuNzUgMCAwIDAgMS40Mi41bC44Ny0yLjVoNC4zNFptNS4xNC0yLjQ1LTQuODMgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzggMS41YS45Mi45MiAwIDAgMC0uMDIuMTQgNC42IDQuNiAwIDAgMS0xLjExLS4xYy0uMDcgMC0uMS0uMS0uMDctLjE3LjE4LS4zNS4yNC0xLjA3LS40LTEuMzMtLjg2LS4zNS0xLjk4LjEzLTIuODYuNS0uMzcuMTUtLjcuMjktLjk1LjM0LS4zOC4wOS0uODQtLjA2LTEuMjEtLjI0LS4yMS0uMTEtLjQ4LjA4LS4zNi4yOC4yMi4zNy42MS43NCAxLjMyLjgzLjgyLjEgMS40LS4xNiAxLjk4LS40MS40LS4xOC44LS4zNiAxLjMtLjQzLjA4LS4wMS4xNC4wOS4xMS4xNy0uMTUuMzUtLjEzLjkuMzIgMS4yNC41Mi40IDIuMTkuNTEgMy4zMS4xOWwxLjIyLS4zMWMuMzktLjEuNzQtLjMgMS4wMi0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDEgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3VGV4dDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3VGV4dDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjcyIDExSDYuMjhMOC41IDQuNzkgMTAuNzIgMTFabS4zNSAxIC4yMy42NC43OC0uNzgtMy4wMi04LjQ3YS42LjYgMCAwIDAtMS4xMyAwbC0zLjkgMTAuOTVhLjUuNSAwIDAgMCAuOTQuMzNMNS45MiAxMmg1LjE1Wm00Ljc0LTIuNDUtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zOCAxLjVhLjkxLjkxIDAgMCAwLS4wMi4xNCA0LjYgNC42IDAgMCAxLTEuMTEtLjFjLS4wNyAwLS4xLS4xLS4wNy0uMTcuMTgtLjM1LjI0LTEuMDctLjQtMS4zMy0uODYtLjM0LTEuOTguMTMtMi44Ni41LS4zNy4xNS0uNy4yOS0uOTUuMzQtLjM4LjA5LS44NC0uMDYtMS4yMS0uMjQtLjIxLS4xMS0uNDguMDgtLjM2LjI4LjIyLjM3LjYxLjc0IDEuMzIuODMuODIuMSAxLjQtLjE2IDEuOTgtLjQxLjQtLjE4LjgtLjM2IDEuMy0uNDMuMDgtLjAxLjE0LjA5LjExLjE3LS4xNS4zNi0uMTMuOS4zMiAxLjI0LjUyLjQgMi4xOS41MSAzLjMxLjE5bDEuMjItLjMxYy4zOS0uMS43NC0uMyAxLjAyLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAwLTIuNjQtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdUZXh0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd1RleHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyLjI0IDEzLjE1SDcuNzZMMTAgNi43NWwyLjI0IDYuNFptLjcgMiAuMzMuOTMgMS41Ny0xLjU3LTMuNzYtMTAuNzVhMS4xNCAxLjE0IDAgMCAwLTIuMTUgMEw0LjA2IDE3LjY3YTEgMSAwIDEgMCAxLjg4LjY2bDEuMTItMy4xOGg1Ljg4Wm0uMjYgMi40MiA1LjktNS45YTIuMjkgMi4yOSAwIDEgMSAzLjIzIDMuMjNsLTUuOSA1LjljLS4zNC4zNS0uNzguNi0xLjI1LjcxbC0xLjgzLjQ2LS4xNS4wM2MtLjU5LjItMi45OC41Ny0zLjgyLS4xLS41OC0uNDQtLjQ3LTEuMzMtLjIyLTEuODEuMDQtLjA4LS4wMi0uMTgtLjEtLjE3LS42Ny4xLTEuMjUuNDUtMS44My44LS43OS40Ny0xLjU3Ljk0LTIuNTUuODJhMi4wOCAyLjA4IDAgMCAxLTEuNzEtMS4yNmMtLjEtLjIxLjE4LS40LjM4LS4yOS40Ny4yNiAxLjExLjUgMS42NC4zOC4zNy0uMDguOS0uNDUgMS41LS44NyAxLjA2LS43NiAyLjMzLTEuNjUgMy4yOC0xLjI3Ljg0LjM0IDEuNDYgMS4xNSAxLjAzIDIuMTEtLjA1LjEyIDAgLjI3LjEzLjMuNDIuMS43OC4wNiAxLjEzLS4xbC40My0xLjcyYy4xMi0uNDcuMzYtLjkuNy0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd1RleHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd1RleHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMCA1LjcxIDcuMjMgMTMuNWg1LjUzTDEwIDUuNzFabTMuNTcgMTAuMDdMMTMuMyAxNUg2LjdsLTEuMjQgMy41YS43NS43NSAwIDAgMS0xLjQyLS41TDkuMTYgMy42YS44OS44OSAwIDAgMSAxLjY4IDBsMy45IDExLTEuMTcgMS4xOFpNNSAyMC4zOGMtLjUzLjExLTEuMTctLjEzLTEuNjQtLjM5LS4yLS4xLS40OC4wOC0uMzguMy4yNC41Mi43MyAxLjEyIDEuNyAxLjI1Ljk5LjEyIDEuNzctLjM1IDIuNTYtLjgyLjU4LS4zNSAxLjE2LS43IDEuODItLjguMDktLjAxLjE1LjEuMS4xNy0uMjQuNDgtLjM1IDEuMzcuMjIgMS44Mi44NS42NiAzLjI0LjI5IDMuODMuMDlsLjE1LS4wMyAxLjgzLS40NmMuNDctLjEyLjktLjM2IDEuMjUtLjdsNS45LTUuOWEyLjI5IDIuMjkgMCAwIDAtMy4yMy0zLjI0bC01LjkgNS45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ0IDEuNzFjLS4zNS4xNy0uNy4yLTEuMTMuMS0uMTMtLjAyLS4xOC0uMTctLjEzLS4yOS40My0uOTYtLjE5LTEuNzctMS4wMy0yLjExLS45NS0uMzgtMi4yMi41MS0zLjI5IDEuMjctLjYuNDItMS4xMi44LTEuNS44N1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4xNiAzYTIgMiAwIDAgMC0xLjc0IDFMNC4yNiA2LjA1YTIgMiAwIDAgMC0uMjYgMVY5YTEgMSAwIDAgMCAxIDFoLjA3bC0uNzIgMkExLjUgMS41IDAgMCAwIDMgMTMuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS43OC0uNi0xLjQyLTEuMzUtMS41bC0uNzItMkgxNWExIDEgMCAwIDAgMS0xVjcuMDNhMiAyIDAgMCAwLS4yNi0xbC0xLjE2LTIuMDJBMiAyIDAgMCAwIDEyLjg0IDNINy4xNlptNy40MSA2LS43MS0ySDE1djJoLS40M1pNMTIuOCA3bDEuNzggNUg1LjQyTDcuMiA3aDUuNlpNNi4xNCA3bC0uNzEgMkg1VjdoMS4xNFptMi4zNiA3aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDE0YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabS00LjE1LTJBMS41IDEuNSAwIDAgMCAzIDEzLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uNzgtLjYtMS40Mi0xLjM1LTEuNWwtLjcyLTJIMTVhMSAxIDAgMCAwIDEtMVY3LjAzYTIgMiAwIDAgMC0uMjYtMWwtMS4xNi0yLjAyQTIgMiAwIDAgMCAxMi44NCAzSDcuMTZhMiAyIDAgMCAwLTEuNzQgMUw0LjI2IDYuMDVhMiAyIDAgMCAwLS4yNiAxVjlhMSAxIDAgMCAwIDEgMWguMDdsLS43MiAyWm04LjQ5LThhMSAxIDAgMCAxIC44Ny41bC44NSAxLjVINS40NGwuODUtMS41YTEgMSAwIDAgMSAuODctLjVoNS42OFptLS4wNCAzIDEuNzggNUg1LjQyTDcuMiA3aDUuNlptMi43IDZjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0xMWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoMTFaTTUuNDMgOUg1VjdoMS4xNGwtLjcxIDJabTkuMTQgMC0uNzEtMkgxNXYyaC0uNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuNCAzLjlBMiAyIDAgMCAxIDguMDggM2g3Ljg2YTIgMiAwIDAgMSAxLjY2LjlMMTkuNjYgN0EyIDIgMCAwIDEgMjAgOC4xVjExYTEgMSAwIDAgMS0xIDFoLS4zNmwuODYgMmMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTVBMS41IDEuNSAwIDAgMSAzIDE5LjV2LTRjMC0uODMuNjctMS41IDEuNS0xLjVsLjg2LTJINWExIDEgMCAwIDEtMS0xVjguMUEyIDIgMCAwIDEgNC4zNCA3TDYuNCAzLjlaTTYgMTAuNWwuODYtMkg1LjV2Mkg2Wm05LjUxLTJIOC41bC0yLjM0IDUuNDUuMDMuMDVoMTEuNjRsLjAzLS4wNUwxNS41IDguNVptMS42MyAwIC44NiAyaC41di0yaC0xLjM2Wm0tNi44OSA4LjI1YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuMjUgMTYuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVpNOC4wNyAzYTIgMiAwIDAgMC0xLjY2LjlMNC4zNCA3QTIgMiAwIDAgMCA0IDguMVYxMWExIDEgMCAwIDAgMSAxaC4zNmwtLjg2IDJjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTVjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWwtLjg2LTJIMTlhMSAxIDAgMCAwIDEtMVY4LjFhMiAyIDAgMCAwLS4zNC0xLjFMMTcuNiAzLjlhMiAyIDAgMCAwLTEuNjYtLjlIOC4wN1pNMTggMTAuNWwtLjg2LTJoMS4zNnYySDE4Wm0tMi40OS0yIDIuMzQgNS40NS0uMDMuMDVINi4xOGwtLjAzLS4wNUw4LjUgOC41aDcuMDJaTTE3Ljg2IDdINi4xNGwxLjUxLTIuMjhhLjUuNSAwIDAgMSAuNDItLjIyaDcuODZhLjUuNSAwIDAgMSAuNDIuMjJMMTcuODYgN1ptLTExIDEuNS0uODYgMmgtLjV2LTJoMS4zNlptLTIuMzYgN2gxNXY0aC0xNXYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlckFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxM3YxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTRWMy41Wk02IDRoMi4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDZhMiAyIDAgMCAwLTIgMmg0LjJjLjEuMzUuMjQuNjguNCAxSDR2M2gzLjVjLjI4IDAgLjUuMjIuNS41YTIgMiAwIDEgMCA0IDBjMC0uMjguMjItLjUuNS0uNUgxNnYtLjZjLjM2LS4xOC43LS40IDEtLjY2VjE1YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMy41IDEwYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjVoMS41YS41LjUgMCAwIDEgMCAxSDE0djEuNWEuNS41IDAgMCAxLTEgMFY2aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTNWMy41YzAtLjI4LjIyLS41LjUtLjVaTTE3IDkuNzRWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zaDIuMmMtLjA4LjMyLS4xNS42Ni0uMTggMUg2YTIgMiAwIDAgMC0yIDJoNC4yYy4xLjM1LjI0LjY4LjQgMUg0djNoMy41Yy4yOCAwIC41LjIyLjUuNWEyIDIgMCAxIDAgNCAwYzAtLjI4LjIyLS41LjUtLjVIMTZ2LS42Yy4zNi0uMTguNy0uNCAxLS42NlpNMTQgMTdhMiAyIDAgMCAwIDItMnYtM2gtMy4wNGEzIDMgMCAwIDEtNS45MiAwSDR2M2MwIDEuMS45IDIgMiAyaDhaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJBZGQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDYuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWk0xNyA3djIuNWEuNS41IDAgMSAxLTEgMFY3aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTZWMy41YS41LjUgMCAwIDEgMSAwVjZoMi41YS41LjUgMCAwIDEgMCAxSDE3Wk02LjI1IDRoNC4yNWMtLjIuNDctLjM0Ljk4LS40MiAxLjVINi4yNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWOGg1LjY3Yy4xMy41My4zMiAxLjAzLjU2IDEuNUg0LjVWMTRoNC41NmMuMzggMCAuNjkuMzEuNjkuN3YuMDVhMi4yNSAyLjI1IDAgMCAwIDQuNSAwdi0uMDZjMC0uMzguMzEtLjY5LjctLjY5aDQuNTV2LTEuNzNhNi41MiA2LjUyIDAgMCAwIDEuNS0xLjA4djcuNTZjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE4Ljc1VjcuMjVDMyA1LjQ1IDQuNDYgNCA2LjI1IDRaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyQWRkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjIgNi41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBaTTE3IDd2Mi41YS41LjUgMCAxIDEtMSAwVjdoLTIuNWEuNS41IDAgMCAxIDAtMUgxNlYzLjVhLjUuNSAwIDAgMSAxIDBWNmgyLjVhLjUuNSAwIDAgMSAwIDFIMTdabTQgNC4xOWMtLjQ0LjQzLS45NS44LTEuNSAxLjA4VjE0aC00LjU2YS43LjcgMCAwIDAtLjY5Ljd2LjA1YTIuMjUgMi4yNSAwIDAgMS00LjUgMHYtLjA2YS43LjcgMCAwIDAtLjctLjY5SDQuNVY5LjVoNi4yM2E2LjQ2IDYuNDYgMCAwIDEtLjU2LTEuNUg0LjV2LS43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzLjgzYy4wOC0uNTIuMjItMS4wMy40Mi0xLjVINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA3LjI1djExLjVDMyAyMC41NSA0LjQ2IDIyIDYuMjUgMjJoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di03LjU2Wm0tMS41IDQuMzF2My4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjE1LjVoMy44M2EzLjc1IDMuNzUgMCAwIDAgNy4zNSAwaDMuODJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJBcnJvd0Rvd25sb2FkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyQXJyb3dEb3dubG9hZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOSA1LjVhNC41IDQuNSAwIDAgMSA0LTQuNDd2My43NmwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMS41LTEuNWEuNS41IDAgMCAwLS43LS43bC0uNjUuNjRWMS4wM0E0LjUgNC41IDAgMSAxIDkgNS41Wm0yIDJjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaTTYgNGgyLjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFINmEyIDIgMCAwIDAtMiAyaDQuMmMuMS4zNS4yNC42OC40IDFINHYzaDMuNWMuMjggMCAuNS4yMi41LjVhMiAyIDAgMSAwIDQgMGMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyQXJyb3dEb3dubG9hZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJBcnJvd0Rvd25sb2FkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOSA1LjVhNC41IDQuNSAwIDAgMSA0LTQuNDd2My43NmwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMS41LTEuNWEuNS41IDAgMCAwLS43LS43bC0uNjUuNjRWMS4wM0E0LjUgNC41IDAgMSAxIDkgNS41Wm0yIDJjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVabTYgMi4yNGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42aC0zLjVhLjUuNSAwIDAgMC0uNS41IDIgMiAwIDEgMS00IDAgLjUuNSAwIDAgMC0uNS0uNUg0VjhoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDRjMC0xLjEuOS0yIDItMmgyLjAyYy4wMy0uMzQuMS0uNjguMTktMUg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y5Ljc0Wk0xNiAxNWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2gzLjA0YTMgMyAwIDAgMCA1LjkyIDBIMTZ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckFycm93RG93bmxvYWQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJBcnJvd0Rvd25sb2FkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMSA2LjVhNS41IDUuNSAwIDAgMSA1LTUuNDhWNi44bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIuNSAyLjVjLjIuMi41LjIuNyAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNy0uN0wxNyA2Ljc5VjEuMDJhNS41IDUuNSAwIDEgMS02IDUuNDhabTguNSAzQS41LjUgMCAwIDAgMTkgOWgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjUtLjVaTTYuMjUgNGg0LjI1Yy0uMi40OC0uMzQuOTgtLjQyIDEuNUg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVY4aDUuNjdjLjEzLjUzLjMyIDEuMDMuNTYgMS41SDQuNVYxNGg0LjU2Yy4zOCAwIC42OS4zMS42OS43di4wNWEyLjI1IDIuMjUgMCAwIDAgNC41IDB2LS4wNmMwLS4zOC4zMS0uNjkuNy0uNjloNC41NXYtMS43M2E2LjUyIDYuNTIgMCAwIDAgMS41LTEuMDh2Ny41NmMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTguNzVWNy4yNUMzIDUuNDUgNC40NiA0IDYuMjUgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckFycm93RG93bmxvYWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyQXJyb3dEb3dubG9hZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExIDYuNWE1LjUgNS41IDAgMCAxIDUtNS40OFY2LjhsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMi41IDIuNWMuMi4yLjUuMi43IDBsMi41LTIuNWEuNS41IDAgMCAwLS43LS43TDE3IDYuNzlWMS4wMmE1LjUgNS41IDAgMSAxLTYgNS40OFptOC41IDNBLjUuNSAwIDAgMCAxOSA5aC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuNS0uNVptMS41IDEuN2MtLjQ0LjQyLS45NS43OC0xLjUgMS4wN1YxNGgtNC41NmEuNy43IDAgMCAwLS42OS43di4wNWEyLjI1IDIuMjUgMCAwIDEtNC41IDB2LS4wNmEuNy43IDAgMCAwLS43LS42OUg0LjVWOS41aDYuMjNhNi40NiA2LjQ2IDAgMCAxLS41Ni0xLjVINC41di0uNzVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMy44M2MuMDgtLjUyLjIyLTEuMDIuNDItMS41SDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNy4yNXYxMS41QzMgMjAuNTUgNC40NiAyMiA2LjI1IDIyaDExLjVjMS44IDAgMy4yNS0xLjQ1IDMuMjUtMy4yNVYxMS4yWm0tMS41IDQuM3YzLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTUuNWgzLjgzYTMuNzUgMy43NSAwIDAgMCA3LjM1IDBoMy44MlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckRpc21pc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy41IDEwYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0xLjg1LTYuMzVjLjIuMi4yLjUgMCAuN0wxNC4yMSA1LjVsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN0wxMy41IDYuMjFsLTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNS0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTQgMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWk04LjIxIDRINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWOS43NGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42aC0zLjVhLjUuNSAwIDAgMC0uNS41IDIgMiAwIDEgMS00IDAgLjUuNSAwIDAgMC0uNS0uNUg0VjhoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDRjMC0xLjEuOS0yIDItMmgyLjAyYy4wMy0uMzQuMS0uNjguMTktMVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckRpc21pc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyRGlzbWlzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE4IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDEzLjUgNC43OWwtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTQuMjEgNS41bDEuMTQtMS4xNVpNMTcgOS43NWMtLjMuMjUtLjY0LjQ3LTEgLjY1di42aC0zLjVhLjUuNSAwIDAgMC0uNS41IDIgMiAwIDEgMS00IDAgLjUuNSAwIDAgMC0uNS0uNUg0VjhoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDRjMC0xLjEuOS0yIDItMmgyLjAyYy4wMy0uMzQuMS0uNjguMTktMUg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y5Ljc0Wk0xNiAxNWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2gzLjA0YTMgMyAwIDAgMCA1LjkyIDBIMTZ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlckRpc21pc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJEaXNtaXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcuMTUtMi4zNWEuNS41IDAgMCAwLS43LjdsMS42NCAxLjY1LTEuNjQgMS42NWEuNS41IDAgMCAwIC43LjdsMS42NS0xLjY0IDEuNjUgMS42NGEuNS41IDAgMCAwIC43LS43TDE3LjIxIDYuNWwxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN0wxNi41IDUuNzlsLTEuNjUtMS42NFpNNi4yNSA0aDQuMjVjLS4yLjQ3LS4zNC45OC0uNDIgMS41SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjhoNS42N2MuMTMuNTMuMzIgMS4wMy41NiAxLjVINC41VjE0aDQuNTZjLjM4IDAgLjY5LjMxLjY5Ljd2LjA1YTIuMjUgMi4yNSAwIDAgMCA0LjUgMHYtLjA2YzAtLjM4LjMxLS42OS43LS42OWg0LjU1di0xLjczYTYuNTIgNi41MiAwIDAgMCAxLjUtMS4wOHY3LjU2YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxOC43NVY3LjI1QzMgNS40NSA0LjQ2IDQgNi4yNSA0WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyRGlzbWlzczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJEaXNtaXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjIgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS03LjE1LTIuMzVhLjUuNSAwIDAgMC0uNy43bDEuNjQgMS42NS0xLjY0IDEuNjVhLjUuNSAwIDAgMCAuNy43bDEuNjUtMS42NCAxLjY1IDEuNjRhLjUuNSAwIDAgMCAuNy0uN0wxNy4yMSA2LjVsMS42NC0xLjY1YS41LjUgMCAwIDAtLjctLjdMMTYuNSA1Ljc5bC0xLjY1LTEuNjRaTTIxIDExLjE5Yy0uNDQuNDMtLjk1LjgtMS41IDEuMDhWMTRoLTQuNTZhLjcuNyAwIDAgMC0uNjkuN3YuMDVhMi4yNSAyLjI1IDAgMCAxLTQuNSAwdi0uMDZhLjcuNyAwIDAgMC0uNy0uNjlINC41VjkuNWg2LjIzYTYuNDYgNi40NiAwIDAgMS0uNTYtMS41SDQuNXYtLjc1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDMuODNjLjA4LS41Mi4yMi0xLjAzLjQyLTEuNUg2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDcuMjV2MTEuNUMzIDIwLjU1IDQuNDYgMjIgNi4yNSAyMmgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTcuNTZabS0xLjUgNC4zMXYzLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTUuNWgzLjgzYTMuNzUgMy43NSAwIDAgMCA3LjM1IDBoMy44MlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlclBsYXkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJQbGF5MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjIgNEg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y5Ljc0Yy0uMy4yNi0uNjQuNDgtMSAuNjZ2LjZoLTMuNWEuNS41IDAgMCAwLS41LjUgMiAyIDAgMSAxLTQgMCAuNS41IDAgMCAwLS41LS41SDRWOGg0LjZjLS4xNi0uMzItLjMtLjY1LS40LTFINGMwLTEuMS45LTIgMi0yaDIuMDJjLjAzLS4zNC4xLS42OC4xOS0xWm01LjMgNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS43Ni02LjU5IDIuOTcgMS42NWEuNS41IDAgMCAxIDAgLjg4bC0yLjk3IDEuNjVhLjUuNSAwIDAgMS0uNzQtLjQ0di0zLjNhLjUuNSAwIDAgMSAuNzQtLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyUGxheTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJQbGF5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgOS43NFYxNWEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNoMi4yYy0uMDguMzItLjE1LjY2LS4xOCAxSDZhMiAyIDAgMCAwLTIgMmg0LjJjLjEuMzUuMjQuNjguNCAxSDR2M2gzLjVjLjI4IDAgLjUuMjIuNS41YTIgMiAwIDEgMCA0IDBjMC0uMjguMjItLjUuNS0uNUgxNnYtLjZjLjM2LS4xOC43LS40IDEtLjY2Wk0xNCAxN2EyIDIgMCAwIDAgMi0ydi0zaC0zLjA0YTMgMyAwIDAgMS01LjkyIDBINHYzYzAgMS4xLjkgMiAyIDJoOFptLS41LTdhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uNzYtNi41OSAyLjk3IDEuNjVhLjUuNSAwIDAgMSAwIC44OGwtMi45NyAxLjY1YS41LjUgMCAwIDEtLjc0LS40NHYtMy4zYS41LjUgMCAwIDEgLjc0LS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlclBsYXkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJQbGF5MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcgMi4xMWMwIC40LjQyLjYzLjc2LjQzbDMuNTMtMi4xMWEuNS41IDAgMCAwIDAtLjg2bC0zLjUzLTIuMTJhLjUuNSAwIDAgMC0uNzYuNDN2NC4yM1pNNi4yNSA0aDQuMjVjLS4yLjQ3LS4zNC45OC0uNDIgMS41SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjhoNS42N2MuMTMuNTMuMzIgMS4wMy41NiAxLjVINC41VjE0aDQuNTZjLjM4IDAgLjY5LjMxLjY5Ljd2LjA1YTIuMjUgMi4yNSAwIDAgMCA0LjUgMHYtLjA2YzAtLjM4LjMxLS42OS43LS42OWg0LjU1di0xLjczYTYuNTIgNi41MiAwIDAgMCAxLjUtMS4wOHY3LjU2YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxOC43NVY3LjI1QzMgNS40NSA0LjQ2IDQgNi4yNSA0WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyUGxheTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmF3ZXJQbGF5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjIgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS03IDIuMTFjMCAuNC40Mi42My43Ni40M2wzLjUzLTIuMTFhLjUuNSAwIDAgMCAwLS44NmwtMy41My0yLjEyYS41LjUgMCAwIDAtLjc2LjQzdjQuMjNabTYgMi41OGMtLjQ0LjQzLS45NS44LTEuNSAxLjA4VjE0aC00LjU2YS43LjcgMCAwIDAtLjY5Ljd2LjA1YTIuMjUgMi4yNSAwIDAgMS00LjUgMHYtLjA2YS43LjcgMCAwIDAtLjctLjY5SDQuNVY5LjVoNi4yM2E2LjQ2IDYuNDYgMCAwIDEtLjU2LTEuNUg0LjV2LS43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzLjgzYy4wOC0uNTIuMjItMS4wMy40Mi0xLjVINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA3LjI1djExLjVDMyAyMC41NSA0LjQ2IDIyIDYuMjUgMjJoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di03LjU2Wm0tMS41IDQuMzF2My4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjE1LjVoMy44M2EzLjc1IDMuNzUgMCAwIDAgNy4zNSAwaDMuODJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmF3ZXJTdWJ0cmFjdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyYXdlclN1YnRyYWN0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yIDBhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgLjUtLjVaTTYgNGgyLjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFINmEyIDIgMCAwIDAtMiAyaDQuMmMuMS4zNS4yNC42OC40IDFINHYzaDMuNWMuMjggMCAuNS4yMi41LjVhMiAyIDAgMSAwIDQgMGMwLS4yOC4yMi0uNS41LS41SDE2di0uNmMuMzYtLjE4LjctLjQgMS0uNjZWMTVhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWN2EzIDMgMCAwIDEgMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyU3VidHJhY3QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyU3VidHJhY3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOCA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yIDBhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgLjUtLjVabTEgNC4yNGMtLjMuMjYtLjY0LjQ4LTEgLjY2di42aC0zLjVhLjUuNSAwIDAgMC0uNS41IDIgMiAwIDEgMS00IDAgLjUuNSAwIDAgMC0uNS0uNUg0VjhoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDRjMC0xLjEuOS0yIDItMmgyLjAyYy4wMy0uMzQuMS0uNjguMTktMUg2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y5Ljc0Wk0xNiAxNWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2gzLjA0YTMgMyAwIDAgMCA1LjkyIDBIMTZ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyYXdlclN1YnRyYWN0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyU3VidHJhY3QyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDYuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWm0tOC41LjVhLjUuNSAwIDAgMSAwLTFoNmEuNS41IDAgMCAxIDAgMWgtNlpNNi4yNSA0aDQuMjVjLS4yLjQ3LS4zNC45OC0uNDIgMS41SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjhoNS42N2MuMTMuNTMuMzIgMS4wMy41NiAxLjVINC41VjE0aDQuNTZjLjM4IDAgLjY5LjMxLjY5Ljd2LjA1YTIuMjUgMi4yNSAwIDAgMCA0LjUgMHYtLjA2YzAtLjM4LjMxLS42OS43LS42OWg0LjU1di0xLjczYTYuNTIgNi41MiAwIDAgMCAxLjUtMS4wOHY3LjU2YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxOC43NVY3LjI1QzMgNS40NSA0LjQ2IDQgNi4yNSA0WlwiXSk7XG5leHBvcnQgY29uc3QgRHJhd2VyU3VidHJhY3QyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJhd2VyU3VidHJhY3QyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMiA2LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTguNS41YS41LjUgMCAwIDEgMC0xaDZhLjUuNSAwIDAgMSAwIDFoLTZabTcuNSA0LjE5Yy0uNDQuNDMtLjk1LjgtMS41IDEuMDhWMTRoLTQuNTZhLjcuNyAwIDAgMC0uNjkuN3YuMDVhMi4yNSAyLjI1IDAgMCAxLTQuNSAwdi0uMDZhLjcuNyAwIDAgMC0uNy0uNjlINC41VjkuNWg2LjIzYTYuNDYgNi40NiAwIDAgMS0uNTYtMS41SDQuNXYtLjc1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDMuODNjLjA4LS41Mi4yMi0xLjAzLjQyLTEuNUg2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDcuMjV2MTEuNUMzIDIwLjU1IDQuNDYgMjIgNi4yNSAyMmgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTcuNTZabS0xLjUgNC4zMXYzLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTUuNWgzLjgzYTMuNzUgMy43NSAwIDAgMCA3LjM1IDBoMy44MlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQmVlcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQmVlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS4yNSAxQzQuMDEgMSAzIDIgMyAzLjI1VjEzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTJoLjc1QzEzLjk5IDEyIDE1IDExIDE1IDkuNzV2LTMuNUMxNSA1LjAxIDE0IDQgMTIuNzUgNEgxMnYtLjc1QzEyIDIuMDEgMTEgMSA5Ljc1IDFoLTQuNVpNMTIgNWguNzVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2My41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUgxMlY1Wk00IDMuMjVDNCAyLjU2IDQuNTYgMiA1LjI1IDJoNC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjRINHYtLjc1Wm02IDMuMjV2NWEuNS41IDAgMCAxLTEgMHYtNWEuNS41IDAgMCAxIDEgMFpNNy41IDZjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNNiA2LjV2NWEuNS41IDAgMCAxLTEgMHYtNWEuNS41IDAgMCAxIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQmVlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JlZXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMCA2LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVpNNy41IDZjLjI4IDAgLjUuMjIuNS41djVhLjUuNSAwIDAgMS0xIDB2LTVjMC0uMjguMjItLjUuNS0uNVpNNiA2LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMHYtNVpNNS4yNSAxQzQuMDEgMSAzIDIgMyAzLjI1VjEzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTJoLjc1QzEzLjk5IDEyIDE1IDExIDE1IDkuNzV2LTMuNUMxNSA1LjAxIDE0IDQgMTIuNzUgNEgxMnYtLjc1QzEyIDIuMDEgMTEgMSA5Ljc1IDFoLTQuNVpNMTIgNWguNzVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2My41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUgxMlY1Wk00IDMuMjVDNCAyLjU2IDQuNTYgMiA1LjI1IDJoNC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjRINHYtLjc1Wk00IDVoN3Y4LjVhLjUuNSAwIDAgMS0uNS41aC02YS41LjUgMCAwIDEtLjUtLjVWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQmVlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQmVlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNi41IDJBMi41IDIuNSAwIDAgMCA0IDQuNXYxMS43NWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1aC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNUEyLjUgMi41IDAgMCAwIDE1LjUgNUgxNXYtLjVBMi41IDIuNSAwIDAgMCAxMi41IDJoLTZaTTE1IDZoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTVWNlpNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g2Yy44MyAwIDEuNS42NyAxLjUgMS41VjVINXYtLjVaTTEyLjUgOHY2YS41LjUgMCAwIDEtMSAwVjhhLjUuNSAwIDAgMSAxIDBabS0zLS41Yy4yOCAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtMSAwVjhjMC0uMjguMjItLjUuNS0uNVptLTIgLjV2NmEuNS41IDAgMCAxLTEgMFY4YS41LjUgMCAwIDEgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCZWVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQmVlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyLjUgOGEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwVjhabS0zLS41Yy4yOCAwIC41LjIyLjUuNXY2YS41LjUgMCAwIDEtMSAwVjhjMC0uMjguMjItLjUuNS0uNVptLTIgLjVhLjUuNSAwIDAgMC0xIDB2NmEuNS41IDAgMCAwIDEgMFY4Wm0tMS02QTIuNSAyLjUgMCAwIDAgNCA0LjV2MTEuNzVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNy41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNWguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxNS41IDVIMTV2LS41QTIuNSAyLjUgMCAwIDAgMTIuNSAyaC02Wk0xNSA2aC41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1VjZaTTUgNC41QzUgMy42NyA1LjY3IDMgNi41IDNoNmMuODMgMCAxLjUuNjcgMS41IDEuNVY1SDV2LS41Wk01IDZoOXYxMC4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQmVlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQmVlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy4yNSAyQTMuMjUgMy4yNSAwIDAgMCA0IDUuMjV2MTQuNUM0IDIwLjk5IDUgMjIgNi4yNSAyMmg5YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjE4aDEuMjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNS41QzIyIDcuNDUgMjAuNTQgNiAxOC43NSA2SDE3LjV2LS43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC03Wm0xMS41IDE0LjVIMTcuNXYtOWgxLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djUuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVaTTE2IDZINS41di0uNzVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoN2MuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY2Wm0tNy41IDR2N0EuNzUuNzUgMCAwIDEgNyAxN3YtN2EuNzUuNzUgMCAwIDEgMS41IDBabTMgMHY3YS43NS43NSAwIDAgMS0xLjUgMHYtN2EuNzUuNzUgMCAwIDEgMS41IDBabTMgMHY3YS43NS43NSAwIDAgMS0xLjUgMHYtN2EuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua0JlZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtCZWVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC41IDEwQS43NS43NSAwIDAgMCA3IDEwdjdhLjc1Ljc1IDAgMCAwIDEuNSAwdi03Wm0zIDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjdhLjc1Ljc1IDAgMCAwIDEuNSAwdi03Wm0zIDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjdhLjc1Ljc1IDAgMCAwIDEuNSAwdi03Wk00IDUuMjVDNCAzLjQ1IDUuNDYgMiA3LjI1IDJoN2MxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1VjZoMS4yNUMyMC41NSA2IDIyIDcuNDYgMjIgOS4yNXY1LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUgxNy41djEuNzVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTlDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNS4yNVpNMTYgNy41SDUuNXYxMi4yNWMwIC40MS4zNC43NS43NS43NWg5Yy40MSAwIC43NS0uMzQuNzUtLjc1VjcuNVptMS41IDloMS4yNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTUuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIMTcuNXY5Wk0xNiA1LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtN2MtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWNkgxNnYtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCb3R0bGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JvdHRsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNyAzLjVjMCAuNjQuNCAxLjE4Ljk2IDEuNC0uMTIuNS0uNDcuODgtMSAxLjQzbC0uMzMuMzRhNC4zIDQuMyAwIDAgMC0xLjYyIDMuNjFMNSAxMC41djVhMi41IDIuNSAwIDAgMCAzLjc1IDIuMTcgMi40OSAyLjQ5IDAgMCAwIDIuNSAwQTIuNSAyLjUgMCAwIDAgMTUgMTUuNXYtNWwtLjAxLS4yMmE0LjA3IDQuMDcgMCAwIDAtLjY3LTIuNTZjLS40LS42LS44Ni0xLjA0LTEuMjQtMS40MmwtLjAxLS4wMWMtLjU1LS41NC0uOS0uOS0xLjAyLTEuNEExLjUgMS41IDAgMCAwIDExLjUgMmgtM0M3LjY3IDIgNyAyLjY3IDcgMy41Wm0tMSAxMlYxNWg4di41YTEuNSAxLjUgMCAwIDEtMi40NCAxLjE3LjUuNSAwIDAgMC0uNjIgMCAxLjUgMS41IDAgMCAxLTEuODggMCAuNS41IDAgMCAwLS42MiAwQTEuNSAxLjUgMCAwIDEgNiAxNS41Wk04Ljk2IDVoMi4wOWMuMTYuODYuNzQgMS40MyAxLjI3IDEuOTZsLjA1LjA0SDcuN2wuMDItLjAxQzguMjQgNi40NSA4LjggNS44NyA4Ljk2IDVabTIuNTQtMWgtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCb3R0bGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtCb3R0bGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMmgzYTEuNSAxLjUgMCAwIDEgLjU1IDIuOWMuMTIuNDguNDcuODUgMS4wMiAxLjM5bC4wMS4wMWMuMzguMzguODQuODMgMS4yNCAxLjQybC4wMi4wNWE0LjE0IDQuMTQgMCAwIDEgLjY1IDIuNTFsLjAxLjIydjVhMi41IDIuNSAwIDAgMS0zLjc1IDIuMTcgMi40OSAyLjQ5IDAgMCAxLTIuNSAwQTIuNSAyLjUgMCAwIDEgNSAxNS41di01bC4wMS0uMjJMNSAxMGE0LjMgNC4zIDAgMCAxIDEuNjMtMy4zM2wuMzMtLjM0Yy41My0uNTUuODgtLjkyIDEtMS40M0ExLjUgMS41IDAgMCAxIDguNSAyWk0xNCAxNHYtMy42NmEzLjA5IDMuMDkgMCAwIDAtLjUzLTIuMSA1LjIgNS4yIDAgMCAwLS4xOC0uMjRINi43MkEzLjIgMy4yIDAgMCAwIDYgMTAuMzRMNiAxMC41VjE0aDhabS04IDF2LjVhMS41IDEuNSAwIDAgMCAyLjQ0IDEuMTcuNS41IDAgMCAxIC42MiAwIDEuNSAxLjUgMCAwIDAgMS44OCAwIC41LjUgMCAwIDEgLjYyIDBBMS41IDEuNSAwIDAgMCAxNCAxNS41VjE1SDZabTUuMDUtMTBoLTIuMWMtLjE1Ljg3LS43IDEuNDUtMS4yMyAxLjk5TDcuNyA3aDQuNjdsLS4wNS0uMDRjLS41My0uNTMtMS4xLTEuMS0xLjI3LTEuOTZaTTguNSA0aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMCAwIDFaXCJdKTsiLCJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgY3JlYXRlRmx1ZW50SWNvbiB9IGZyb20gXCIuLi91dGlscy9jcmVhdGVGbHVlbnRJY29uXCI7XG5leHBvcnQgY29uc3QgRHJpbmtCb3R0bGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JvdHRsZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTEgNC41QTIuNSAyLjUgMCAwIDEgMTMuNSAyaDVhMi41IDIuNSAwIDAgMSAuODggNC44NGMuMiAxLjAyLjg4IDEuODYgMS45IDIuODdhOC45OSA4Ljk5IDAgMCAxIDMuNzIgNy40VjI2YTQgNCAwIDAgMS02LjUgMy4xMiAzLjk4IDMuOTggMCAwIDEtNSAwQTQgNCAwIDAgMSA3IDI2di04LjhhNC4zIDQuMyAwIDAgMSAwLS4yIDguOTcgOC45NyAwIDAgMSAzLjMtNi45N2MxLjIyLTEuMTggMi4wMy0yLjA4IDIuMjQtMy4yMkEyLjUgMi41IDAgMCAxIDExIDQuNVptMi41LS41YS41LjUgMCAxIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabS0xLjMzIDdoNy41N2MtMS4wMi0xLjAyLTIuMDMtMi4yLTIuMzMtMy44aC0yLjljLS4zMSAxLjYtMS4zMSAyLjc4LTIuMzQgMy44Wk05IDI2YTIgMiAwIDAgMCAzLjY3IDEuMSAxIDEgMCAwIDEgMS42NiAwIDIgMiAwIDAgMCAzLjM0IDAgMSAxIDAgMCAxIDEuNjYgMEEyIDIgMCAwIDAgMjMgMjZ2LTJIOXYyWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCb3R0bGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtCb3R0bGUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMy41IDJhMi41IDIuNSAwIDAgMC0uOTYgNC44MWMtLjIgMS4xNC0xLjAyIDIuMDQtMi4yMyAzLjIyQTkuMDQgOS4wNCAwIDAgMCA3IDE3LjJWMjZhNCA0IDAgMCAwIDYuNSAzLjEyIDMuOTggMy45OCAwIDAgMCA1IDBBNCA0IDAgMCAwIDI1IDI2di05YzAtMy0xLjQ3LTUuNjUtMy43Mi03LjI5LTEuMDItMS4wMS0xLjctMS44NS0xLjktMi44N0EyLjUgMi41IDAgMCAwIDE4LjUgMmgtNVpNMTMgNC41YzAtLjI4LjIzLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm02Ljc0IDYuNWgtNy41N2MxLjAzLTEuMDIgMi4wMy0yLjIgMi4zMy0zLjhoMi45MWMuMyAxLjYgMS4zMSAyLjc4IDIuMzMgMy44Wm0tOS40OSAyaDExLjVBNi45NyA2Ljk3IDAgMCAxIDIzIDE3LjJWMjJIOXYtNC44YTIuMjIgMi4yMiAwIDAgMSAwLS4yYzAtMS40OS40Ni0yLjg3IDEuMjUtNFpNOSAyNGgxNHYyYTIgMiAwIDAgMS0zLjY3IDEuMSAxIDEgMCAwIDAtMS42NiAwIDIgMiAwIDAgMS0zLjM0IDAgMSAxIDAgMCAwLTEuNjYgMEEyIDIgMCAwIDEgOSAyNnYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQm90dGxlT2ZmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtCb3R0bGVPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE1IDE1LjcgMi4xNSAyLjE1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w2LjI4IDdhNC4yNCA0LjI0IDAgMCAwLTEuMjcgMy4yOUw1IDEwLjV2NWEyLjUgMi41IDAgMCAwIDMuNzUgMi4xNyAyLjQ5IDIuNDkgMCAwIDAgMi41IDAgMi40OSAyLjQ5IDAgMCAwIDMuNzQtMS45N1pNNiAxNWg4di41YTEuNSAxLjUgMCAwIDEtMi40NCAxLjE3LjUuNSAwIDAgMC0uNjIgMCAxLjUgMS41IDAgMCAxLTEuODggMCAuNS41IDAgMCAwLS42MiAwQTEuNSAxLjUgMCAwIDEgNiAxNS41VjE1Wm05LTQuNXYyLjM4TDkuMTIgN2gzLjI1bC0uMDUtLjA0Yy0uNTMtLjUzLTEuMS0xLjEtMS4yNy0xLjk2aC0yLjFjLS4wOC41LS4zLjktLjU4IDEuMjVsLS43MS0uNzFjLjE0LS4yLjI0LS40MS4zLS42NEExLjUgMS41IDAgMCAxIDguNSAyaDNhMS41IDEuNSAwIDAgMSAuNTUgMi45Yy4xMi40OC40Ny44NSAxLjAyIDEuMzlsLjAxLjAxYy4zOC4zOC44NC44MyAxLjI0IDEuNDJsLjAyLjA1YTQuMTQgNC4xNCAwIDAgMSAuNjUgMi41MWwuMDEuMjJaTTguNSA0aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua0JvdHRsZU9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JvdHRsZU9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMjggNi45OSAyLjE1IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLTIuMTYtMi4xNWEyLjUgMi41IDAgMCAxLTMuNzQgMS45NyAyLjQ5IDIuNDkgMCAwIDEtMi41IDBBMi41IDIuNSAwIDAgMSA1IDE1LjV2LTVsLjAxLS4yMmE0LjExIDQuMTEgMCAwIDEgMS4yNy0zLjI5Wk0xMy4zIDE0bC02LTZoLS41N0EzLjIgMy4yIDAgMCAwIDYgMTAuMzRMNiAxMC41VjE0aDcuM1pNNiAxNXYuNWExLjUgMS41IDAgMCAwIDIuNDQgMS4xNy41LjUgMCAwIDEgLjYyIDAgMS41IDEuNSAwIDAgMCAxLjg4IDAgLjUuNSAwIDAgMSAuNjIgMEExLjUgMS41IDAgMCAwIDE0IDE1LjVWMTVINlptOC00LjV2MS4zOGwxIDFWMTAuNWwtLjAxLS4yMmE0LjA3IDQuMDcgMCAwIDAtLjY3LTIuNTZjLS40LS42LS44Ni0xLjA0LTEuMjQtMS40MmwtLjAxLS4wMWMtLjU1LS41NC0uOS0uOS0xLjAyLTEuNEExLjUgMS41IDAgMCAwIDExLjUgMmgtM2ExLjUgMS41IDAgMCAwLS41NCAyLjljLS4wNi4yMy0uMTYuNDMtLjMuNjRsLjcxLjcxYy4yOC0uMzUuNS0uNzUuNTktMS4yNWgyLjA5Yy4xNi44Ni43NCAxLjQzIDEuMjcgMS45NmwuMDUuMDRIOS4xMmwxIDFoMy4xN2E1LjIgNS4yIDAgMCAxIC4xOS4yNyAzLjE1IDMuMTUgMCAwIDEgLjUxIDIuMDdsLjAxLjE2Wk04LjUgNGEuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDEgMCAxaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtCb3R0bGVPZmYzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0JvdHRsZU9mZjMyRmlsbGVkJywgXCIzMlwiLCBbXCJtMjQuOTggMjYuNCAzLjMxIDMuM2ExIDEgMCAwIDAgMS40Mi0xLjRsLTI2LTI2YTEgMSAwIDAgMC0xLjQyIDEuNGw3LjE0IDcuMTVhOS4xIDkuMSAwIDAgMC0uMy4zNEE4Ljk3IDguOTcgMCAwIDAgNyAxNy4yVjI2YTQgNCAwIDAgMCA2LjUgMy4xMiAzLjk4IDMuOTggMCAwIDAgNSAwIDQgNCAwIDAgMCA2LjQ4LTIuNzNabS0yLjQtMi40LjQyLjQxVjI2YTIgMiAwIDAgMS0zLjY3IDEuMSAxIDEgMCAwIDAtMS42NiAwIDIgMiAwIDAgMS0zLjM0IDAgMSAxIDAgMCAwLTEuNjYgMEEyIDIgMCAwIDEgOSAyNnYtMmgxMy41OVpNMjUgMTcuMnY0LjI2TDE0LjU0IDExaDUuMmMtMS4wMi0xLjAyLTIuMDItMi4yLTIuMzMtMy44aC0yLjlhNiA2IDAgMCAxLTEuMjIgMi41NWwtMS40My0xLjQzYy4zNS0uNDguNTgtLjk3LjY4LTEuNTFBMi41IDIuNSAwIDAgMSAxMy41IDJoNWEyLjUgMi41IDAgMCAxIC44OCA0Ljg0Yy4yIDEuMDIuODggMS44NiAxLjkgMi44N2E4Ljk5IDguOTkgMCAwIDEgMy43MiA3LjR2LjA5Wk0xMy41IDRhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQm90dGxlT2ZmMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQm90dGxlT2ZmMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOS40MyAxMC44NSAyLjMgMy43YTEgMSAwIDAgMSAxLjQyLTEuNDJsMjYgMjZhMSAxIDAgMCAxLTEuNDIgMS40MkwyNSAyNi4zOWE0IDQgMCAwIDEtNi40OSAyLjczIDMuOTggMy45OCAwIDAgMS01IDBBNCA0IDAgMCAxIDcgMjZ2LTguOGE0LjIgNC4yIDAgMCAxIDAtLjIgOC45NyA4Ljk3IDAgMCAxIDIuNDMtNi4xNVpNMjIuNiAyNEg5djJhMiAyIDAgMCAwIDMuNjcgMS4xIDEgMSAwIDAgMSAxLjY2IDAgMiAyIDAgMCAwIDMuMzQgMCAxIDEgMCAwIDEgMS42NiAwQTIgMiAwIDAgMCAyMyAyNnYtMS41OWwtLjQxLS40MVptLTItMi05LTloLTEuMzRBNi45NiA2Ljk2IDAgMCAwIDkgMTcuMlYyMmgxMS41OVpNMjMgMTcuMnYyLjI2bDIgMlYxN2MwLTMtMS40Ny01LjY1LTMuNzEtNy4yOS0xLjAzLTEuMDEtMS43MS0xLjg1LTEuOTEtMi44N0EyLjUgMi41IDAgMCAwIDE4LjUgMmgtNWEyLjUgMi41IDAgMCAwLS45NiA0LjgxYy0uMS41NC0uMzMgMS4wMy0uNjggMS41MWwxLjQzIDEuNDNBNiA2IDAgMCAwIDE0LjUgNy4yaDIuOTFjLjMgMS42IDEuMzEgMi43OCAyLjMzIDMuOGgtNS4ybDIgMmg1LjJBNi45NyA2Ljk3IDAgMCAxIDIzIDE3LjF2LjAzYS42LjYgMCAwIDAgMCAuMDZ2LjAxWk0xMyA0LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua0NvZmZlZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQ29mZmVlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zIC41YS41LjUgMCAwIDAtMSAwYzAgMSAuNjkgMS41MiAxLjE2IDEuODdsLjA0LjAzYy41My40LjguNjMuOCAxLjFhLjUuNSAwIDAgMCAxIDBjMC0xLS42OS0xLjUyLTEuMTYtMS44N0wzLjggMS42QzMuMjcgMS4yIDMgLjk3IDMgLjVabTMgMGEuNS41IDAgMCAwLTEgMGMwIDEgLjY5IDEuNTIgMS4xNiAxLjg3bC4wNC4wM2MuNTMuNC44LjYzLjggMS4xYS41LjUgMCAwIDAgMSAwYzAtMS0uNjktMS41Mi0xLjE2LTEuODdMNi44IDEuNkM2LjI3IDEuMiA2IC45NyA2IC41Wk04LjUgMGMuMjggMCAuNS4yMi41LjUgMCAuNDcuMjcuNy44IDEuMWwuMDQuMDNjLjQ3LjM1IDEuMTYuODcgMS4xNiAxLjg3YS41LjUgMCAwIDEtMSAwYzAtLjQ3LS4yNy0uNy0uOC0xLjFsLS4wNC0uMDNDOC42OSAyLjAyIDggMS41IDggLjVjMC0uMjguMjItLjUuNS0uNVpNMiA1LjljMC0uNS40LS45LjktLjloOS4yYy41IDAgLjkuNC45LjlWNmguNWEyLjUgMi41IDAgMCAxIDAgNWgtLjdBNS41IDUuNSAwIDAgMSAyIDkuNVY1LjlaTTEyLjk4IDEwaC41MmExLjUgMS41IDAgMCAwIDAtM0gxM3YyLjVjMCAuMTcgMCAuMzQtLjAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua0NvZmZlZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0NvZmZlZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuNSAwYy4yOCAwIC41LjIyLjUuNSAwIC40Ny4yNy43LjggMS4xbC4wNC4wM0M0LjMxIDEuOTggNSAyLjUgNSAzLjVhLjUuNSAwIDAgMS0xIDBjMC0uNDctLjI3LS43LS44LTEuMWwtLjA0LS4wM0MyLjY5IDIuMDIgMiAxLjUgMiAuNWMwLS4yOC4yMi0uNS41LS41Wm0zIDBjLjI4IDAgLjUuMjIuNS41IDAgLjQ3LjI3LjcuOCAxLjFsLjA0LjAzQzcuMzEgMS45OCA4IDIuNSA4IDMuNWEuNS41IDAgMCAxLTEgMGMwLS40Ny0uMjctLjctLjgtMS4xbC0uMDQtLjAzQzUuNjkgMi4wMiA1IDEuNSA1IC41YzAtLjI4LjIyLS41LjUtLjVaTTkgLjVhLjUuNSAwIDAgMC0xIDBjMCAxIC42OSAxLjUyIDEuMTYgMS44N2wuMDQuMDNjLjUzLjQuOC42My44IDEuMWEuNS41IDAgMCAwIDEgMGMwLTEtLjY5LTEuNTItMS4xNi0xLjg3TDkuOCAxLjZDOS4yNyAxLjIgOSAuOTcgOSAuNVpNMTMgNmguNWEyLjUgMi41IDAgMCAxIDAgNWgtLjdBNS41IDUuNSAwIDAgMSAyIDkuNVY1LjljMC0uNS40LS45LjktLjloOS4yYy41IDAgLjkuNC45LjlWNlpNMyA2djMuNWE0LjUgNC41IDAgMSAwIDkgMFY2SDNabTEwIDF2Mi41YzAgLjE3IDAgLjM0LS4wMi41aC41MmExLjUgMS41IDAgMCAwIDAtM0gxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQ29mZmVlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtDb2ZmZWUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgMi41YS41LjUgMCAwIDAtMSAwYzAgMSAuNjkgMS41MiAxLjE2IDEuODdsLjA0LjAzYy41My40LjguNjMuOCAxLjFhLjUuNSAwIDAgMCAxIDBjMC0xLS42OS0xLjUyLTEuMTYtMS44N0w1LjggMy42Yy0uNTMtLjQtLjgtLjYzLS44LTEuMVpNMy45MyA3YS45My45MyAwIDAgMC0uOTMuOTNWMTJhNiA2IDAgMCAwIDExLjIgM0gxNmEzIDMgMCAxIDAgMC02aC0xVjcuOTNhLjkzLjkzIDAgMCAwLS45My0uOTNIMy45M1pNMTYgMTRoLTEuMzRjLjIyLS42My4zNC0xLjMuMzQtMnYtMmgxYTIgMiAwIDEgMSAwIDRaTTcuNSAyYy4yOCAwIC41LjIyLjUuNSAwIC40Ny4yNy43LjggMS4xbC4wNC4wM0M5LjMxIDMuOTggMTAgNC41IDEwIDUuNWEuNS41IDAgMCAxLTEgMGMwLS40Ny0uMjctLjctLjgtMS4xbC0uMDQtLjAzQzcuNjkgNC4wMiA3IDMuNSA3IDIuNWMwLS4yOC4yMi0uNS41LS41Wm0zLjUuNWEuNS41IDAgMCAwLTEgMGMwIDEgLjY5IDEuNTIgMS4xNiAxLjg3bC4wNC4wM2MuNTMuNC44LjYzLjggMS4xYS41LjUgMCAwIDAgMSAwYzAtMS0uNjktMS41Mi0xLjE2LTEuODdsLS4wNC0uMDNjLS41My0uNC0uOC0uNjMtLjgtMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtDb2ZmZWUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtDb2ZmZWUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDIuNWEuNS41IDAgMCAwLTEgMGMwIDEgLjY5IDEuNTIgMS4xNiAxLjg3bC4wNC4wM2MuNTMuNC44LjYzLjggMS4xYS41LjUgMCAwIDAgMSAwYzAtMS0uNjktMS41Mi0xLjE2LTEuODdMNS44IDMuNmMtLjUzLS40LS44LS42My0uOC0xLjFabTEwIDUuNDNWOWgxYTMgMyAwIDEgMSAwIDZoLTEuOEE2IDYgMCAwIDEgMyAxMlY3LjkzYzAtLjUxLjQyLS45My45My0uOTNoMTAuMTRjLjUxIDAgLjkzLjQyLjkzLjkzWk00IDh2NGE1IDUgMCAwIDAgMTAgMFY4SDRabTExIDRjMCAuNy0uMTIgMS4zNy0uMzQgMkgxNmEyIDIgMCAxIDAgMC00aC0xdjJaTTcuNSAyYy4yOCAwIC41LjIyLjUuNSAwIC40Ny4yNy43LjggMS4xbC4wNC4wM0M5LjMxIDMuOTggMTAgNC41IDEwIDUuNWEuNS41IDAgMCAxLTEgMGMwLS40Ny0uMjctLjctLjgtMS4xbC0uMDQtLjAzQzcuNjkgNC4wMiA3IDMuNSA3IDIuNWMwLS4yOC4yMi0uNS41LS41Wm0zLjUuNWEuNS41IDAgMCAwLTEgMGMwIDEgLjY5IDEuNTIgMS4xNiAxLjg3bC4wNC4wM2MuNTMuNC44LjYzLjggMS4xYS41LjUgMCAwIDAgMSAwYzAtMS0uNjktMS41Mi0xLjE2LTEuODdsLS4wNC0uMDNjLS41My0uNC0uOC0uNjMtLjgtMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtDb2ZmZWUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua0NvZmZlZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNS41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwYzAgMS4yNy45MyAxLjkyIDEuNSAyLjMybC4wNy4wNGMuNjguNDguOTMuNy45MyAxLjE0YS43NS43NSAwIDAgMCAxLjUgMGMwLTEuMjctLjkzLTEuOTItMS41LTIuMzJsLS4wNy0uMDRjLS42OC0uNDgtLjkzLS43LS45My0xLjE0Wk00LjgyIDhDMy44MiA4IDMgOC44MiAzIDkuODJWMTRhOCA4IDAgMCAwIDE1LjQyIDNoMS4zM2EzLjI1IDMuMjUgMCAwIDAgMC02LjVIMTl2LS42OGMwLTEtLjgyLTEuODItMS44Mi0xLjgySDQuODJabTE0LjkzIDcuNWgtLjg5Yy4xLS40OS4xNC0uOTkuMTQtMS41di0yaC43NWExLjc1IDEuNzUgMCAxIDEgMCAzLjVaTTguNzUgMmMuNDEgMCAuNzUuMzQuNzUuNzUgMCAuNDMuMjUuNjYuOTMgMS4xNGwuMDYuMDRjLjU4LjQgMS41MSAxLjA1IDEuNTEgMi4zMmEuNzUuNzUgMCAwIDEtMS41IDBjMC0uNDMtLjI1LS42Ni0uOTMtMS4xNGwtLjA2LS4wNEM4LjkzIDQuNjcgOCA0LjAyIDggMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm00Ljc1Ljc1YS43NS43NSAwIDAgMC0xLjUgMGMwIDEuMjcuOTMgMS45MiAxLjUgMi4zMmwuMDcuMDRjLjY4LjQ4LjkzLjcuOTMgMS4xNGEuNzUuNzUgMCAwIDAgMS41IDBjMC0xLjI3LS45My0xLjkyLTEuNS0yLjMybC0uMDctLjA0Yy0uNjgtLjQ4LS45My0uNy0uOTMtMS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rQ29mZmVlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rQ29mZmVlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwYzAgMS4yNy45MyAxLjkyIDEuNSAyLjMybC4wNy4wNGMuNjguNDguOTMuNy45MyAxLjE0YS43NS43NSAwIDAgMCAxLjUgMGMwLTEuMjctLjkzLTEuOTItMS41LTIuMzJsLS4wNy0uMDRjLS42OC0uNDgtLjkzLS43LS45My0xLjE0Wk0zIDkuODJDMyA4LjgyIDMuODIgOCA0LjgyIDhoMTIuMzZjMSAwIDEuODIuODIgMS44MiAxLjgydi42OGguNzVhMy4yNSAzLjI1IDAgMCAxIDAgNi41aC0xLjMzQTggOCAwIDAgMSAzIDE0VjkuODJabTE0LjUgMGEuMzIuMzIgMCAwIDAtLjMyLS4zMkg0LjgyYS4zMi4zMiAwIDAgMC0uMzIuMzJWMTRhNi41IDYuNSAwIDEgMCAxMyAwVjkuODJaTTE5Ljc1IDEySDE5djJjMCAuNTEtLjA1IDEuMDEtLjE0IDEuNWguODlhMS43NSAxLjc1IDAgMSAwIDAtMy41Wm0tMTEtMTBjLjQxIDAgLjc1LjM0Ljc1Ljc1IDAgLjQzLjI1LjY2LjkzIDEuMTRsLjA2LjA0Yy41OC40IDEuNTEgMS4wNSAxLjUxIDIuMzJhLjc1Ljc1IDAgMCAxLTEuNSAwYzAtLjQzLS4yNS0uNjYtLjkzLTEuMTRsLS4wNi0uMDRDOC45MyA0LjY3IDggNC4wMiA4IDIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptNC43NS43NWEuNzUuNzUgMCAwIDAtMS41IDBjMCAxLjI3LjkzIDEuOTIgMS41IDIuMzJsLjA3LjA0Yy42OC40OC45My43LjkzIDEuMTRhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtMS4yNy0uOTMtMS45Mi0xLjUtMi4zMmwtLjA3LS4wNGMtLjY4LS40OC0uOTMtLjctLjkzLTEuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua01hcmdhcml0YTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rTWFyZ2FyaXRhMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMy41OSAyYS41LjUgMCAwIDAtLjE4LTFsLTQuMjUuNzZhLjUuNSAwIDAgMC0uNC4zOEw4LjU3IDNIMy41YS41LjUgMCAwIDAtLjUuNXYzYzAgMS4xLjkgMiAyIDJhMyAzIDAgMCAwIDIuNSAyLjk2VjE0aC0yYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDEgMCAwLTFoLTJ2LTIuNTRBMyAzIDAgMCAwIDExIDguNWEyIDIgMCAwIDAgMi0ydi0zYS41LjUgMCAwIDAtLjUtLjVIOS42bC4wNy0uMzJMMTMuNTkgMlpNOC4zNSA0bC0uMjIgMUg0VjRoNC4zNVpNMTIgNUg5LjE1bC4yMi0xSDEydjFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua01hcmdhcml0YTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua01hcmdhcml0YTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzLjU5IDJhLjUuNSAwIDAgMC0uMTgtMWwtNC4yNS43NmEuNS41IDAgMCAwLS40LjM4TDguNTcgM0gzLjVhLjUuNSAwIDAgMC0uNS41djNjMCAxLjEuOSAyIDIgMmEzIDMgMCAwIDAgMi41IDIuOTZWMTRoLTJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMSAwIDAtMWgtMnYtMi41NEEzIDMgMCAwIDAgMTEgOC41YTIgMiAwIDAgMCAyLTJ2LTNhLjUuNSAwIDAgMC0uNS0uNUg5LjZsLjA3LS4zMkwxMy41OSAyWk04LjM1IDRsLS4yMiAxSDRWNGg0LjM1Wk00IDZoMy45bC0uNjQgMi45YS41LjUgMCAwIDAgLjk4LjJMOC45MyA2SDEydi41YTEgMSAwIDAgMS0xIDFoLS41YS41LjUgMCAwIDAtLjUuNXYuNWEyIDIgMCAwIDEtNCAwVjhhLjUuNSAwIDAgMC0uNS0uNUg1YTEgMSAwIDAgMS0xLTFWNlptOC0xSDkuMTVsLjIyLTFIMTJ2MVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rTWFyZ2FyaXRhMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtNYXJnYXJpdGEyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2LjEgMi45OWEuNS41IDAgMCAwLS4yLS45OGwtNC41IDFhLjUuNSAwIDAgMC0uMzguMzdsLS4yOSAxLjEySDQuNUEuNS41IDAgMCAwIDQgNXYzLjVBMi41IDIuNSAwIDAgMCA2LjUgMTFIN3YuNWEzIDMgMCAwIDAgMi41IDIuOTZWMTdoLTJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMSAwIDAtMWgtMnYtMi41NEEzIDMgMCAwIDAgMTMgMTEuNVYxMWguNUEyLjUgMi41IDAgMCAwIDE2IDguNVY1YS41LjUgMCAwIDAtLjUtLjVoLTMuNzNsLjE0LS41OCA0LjItLjkzWk0xMC40OSA1LjUgMTAuMTEgN0g1VjUuNWg1LjQ4Wk0xNSA3aC0zLjg2bC4zOC0xLjVIMTVWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rTWFyZ2FyaXRhMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rTWFyZ2FyaXRhMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuMSAyLjk5YS41LjUgMCAwIDAtLjItLjk4bC00LjUgMWEuNS41IDAgMCAwLS4zOC4zN2wtLjI5IDEuMTJINC41QS41LjUgMCAwIDAgNCA1djMuNUEyLjUgMi41IDAgMCAwIDYuNSAxMUg3di41YTMgMyAwIDAgMCAyLjUgMi45NlYxN2gtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAxIDAgMC0xaC0ydi0yLjU0QTMgMyAwIDAgMCAxMyAxMS41VjExaC41QTIuNSAyLjUgMCAwIDAgMTYgOC41VjVhLjUuNSAwIDAgMC0uNS0uNWgtMy43M2wuMTQtLjU4IDQuMi0uOTNaTTEwLjQ5IDUuNSAxMC4xMSA3SDVWNS41aDUuNDhaTTUgOGg0Ljg2bC0uODQgMy4zOGEuNS41IDAgMCAwIC45Ny4yNGwuOS0zLjYySDE1di41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWEuNS41IDAgMCAwLS41LjV2MWEyIDIgMCAxIDEtNCAwdi0xYS41LjUgMCAwIDAtLjUtLjVoLTFBMS41IDEuNSAwIDAgMSA1IDguNVY4Wm0xMC0xaC0zLjg2bC4zOC0xLjVIMTVWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaW5rTWFyZ2FyaXRhMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtNYXJnYXJpdGEyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwLjQ5IDIuNjNjLjA3LjQtLjIuOC0uNjIuODZsLTUuNDkuOTEtLjEyLjZoMy45OWMuNDEgMCAuNzUuMzQuNzUuNzV2NGEzLjI1IDMuMjUgMCAwIDEtMyAzLjI0di41MWE0IDQgMCAwIDEtMy4yNSAzLjkzdjMuMDdoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjV2LTMuMDdBNCA0IDAgMCAxIDggMTMuNVYxM2EzLjI1IDMuMjUgMCAwIDEtMy0zLjI1di00YzAtLjQxLjM0LS43NS43NS0uNzVoNi45OGwuMjgtMS40Yy4wNy0uMy4zLS41NC42Mi0uNTlsNi0xYy40LS4wNy44LjIuODYuNjJabS04LjUgNi4xMi40NS0yLjI1SDYuNXYyLjI1aDUuNDhabTUuNTEgMFY2LjVoLTMuNTRsLS40NSAyLjI1aDMuOTlaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua01hcmdhcml0YTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua01hcmdhcml0YTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE5Ljg3IDMuNDlhLjc1Ljc1IDAgMSAwLS4yNC0xLjQ4bC02IDFhLjc1Ljc1IDAgMCAwLS42Mi42TDEyLjczIDVINS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djRhMy4yNSAzLjI1IDAgMCAwIDMgMy4yNHYuNTFhNCA0IDAgMCAwIDMuMjUgMy45M3YzLjA3aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNXYtMy4wN0E0IDQgMCAwIDAgMTYgMTMuNVYxM2MxLjY4LS4xNCAzLTEuNTQgMy0zLjI1di00YS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjk5bC4xMi0uNiA1LjUtLjkxWk0xNy41IDhoLTMuODRsLjMtMS41aDMuNTRWOFptLTQuMTQgMS41aDQuMTR2LjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtLjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjI1YTIuNSAyLjUgMCAwIDEtNSAwdi0xLjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0uNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjkuNWg1LjM0TDExIDEzLjZhLjc1Ljc1IDAgMSAwIDEuNDguM2wuODctNC40Wk0xMi4xNCA4SDYuNVY2LjVoNS45NGwtLjMgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtUb0dvMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtUb0dvMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy44NSAyLjE1Yy4yLjIuMi41IDAgLjdMMTIuNzEgNGgxLjYyYy4zMSAwIC42LjIuNy41bC45MiAyLjVjLjE4LjQ4LS4xOCAxLS43IDFoLS4zNGwtMS40MyA4LjM0QTIgMiAwIDAgMSAxMS41MSAxOEg4LjVhMiAyIDAgMCAxLTEuOTctMS42Nkw1LjA5IDhoLS4zNGEuNzUuNzUgMCAwIDEtLjctMS4wMWwuOTItMi41Yy4xLS4zLjM5LS40OS43LS40OWg1LjY1YS41LjUgMCAwIDEgLjA4LS4xbDEuNzUtMS43NWMuMi0uMi41LS4yLjcgMFpNNS4xMSA3aDkuNzhsLS43My0ySDUuODVMNS4xIDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1RvR28yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtUb0dvMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuODUgMi4xNWMuMi4yLjIuNSAwIC43TDEyLjcxIDRoMS42MmMuMzEgMCAuNi4yLjcuNWwuOTIgMi41Yy4xOC40OC0uMTggMS0uNyAxaC0uMzRsLTEuNDMgOC4zNEEyIDIgMCAwIDEgMTEuNTEgMThIOC41YTIgMiAwIDAgMS0xLjk3LTEuNjZMNS4wOSA4aC0uMzRhLjc1Ljc1IDAgMCAxLS43LTEuMDFsLjkyLTIuNWMuMS0uMy4zOS0uNDkuNy0uNDloNS42NWEuNS41IDAgMCAxIC4wOC0uMWwxLjc1LTEuNzVjLjItLjIuNS0uMi43IDBaTTYuMSA4bDEuNCA4LjE3YTEgMSAwIDAgMCAuOTkuODNoMy4wMmExIDEgMCAwIDAgLjk5LS44M0wxMy45IDhINi4xWm0tMS0xaDkuNzlsLS43My0ySDUuODVMNS4xIDdaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1RvR28yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1RvR28yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1LjcyIDIuMjJhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNkwxNS41NiA0LjVoMi4yYy4zIDAgLjU5LjIuNy41bDEuMjUgMy41Yy4xNy40OS0uMiAxLS43IDFoLTEuMDVsLTEuNiAxMC4wNUEyLjg5IDIuODkgMCAwIDEgMTMuNCAyMmgtMi44Yy0xLjUgMC0yLjc2LS45OS0yLjk3LTIuNDRMNi4wNSA5LjVINWEuNzUuNzUgMCAwIDEtLjctMUw1LjUzIDVjLjExLS4zLjQtLjUuNzEtLjVoNy4xOWwyLjI4LTIuMjhaTTE3LjIyIDZINi43OGwtLjcyIDJoMTEuODhsLS43Mi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtUb0dvMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rVG9HbzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjcyIDIuMjJhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNkwxNS41NiA0LjVoMi4yYy4zIDAgLjU5LjIuNy41bDEuMjUgMy41Yy4xNy40OS0uMiAxLS43IDFoLTEuMDVsLTEuNiAxMC4wNUEyLjg5IDIuODkgMCAwIDEgMTMuNCAyMmgtMi44Yy0xLjUgMC0yLjc2LS45OS0yLjk3LTIuNDRMNi4wNSA5LjVINWEuNzUuNzUgMCAwIDEtLjctMUw1LjUzIDVjLjExLS4zLjQtLjUuNzEtLjVoNy4xOWwyLjI4LTIuMjhabS43MiA3LjI4SDcuNTZsMS41NiA5Ljg0Yy4xLjcuNjkgMS4xNiAxLjQ4IDEuMTZoMi44Yy44IDAgMS4zOC0uNDcgMS40OS0xLjE3bDEuNTUtOS44M1ptLjc4LTMuNUg2Ljc4bC0uNzIgMmgxMS44OGwtLjcyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1dpbmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1dpbmUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuNSAxYS41LjUgMCAwIDAtLjUuNXY1YTQgNCAwIDAgMCAzLjUgMy45Ny41LjUgMCAwIDAgMCAuMDNWMTRINmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xSDguNXYtMy41YS41LjUgMCAwIDAgMC0uMDNBNCA0IDAgMCAwIDEyIDYuNXYtNWEuNS41IDAgMCAwLS41LS41aC03Wk01IDRWMmg2djJINVptNS43MyAyLjNhMi43NSAyLjc1IDAgMCAxLTIuMTcgMi40LjUuNSAwIDAgMS0uMi0uOTlBMS43NSAxLjc1IDAgMCAwIDkuNzMgNi4yYS41LjUgMCAwIDEgMSAuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1dpbmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtXaW5lMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTAuNzMgNi4zYS41LjUgMCAwIDAtMS0uMUExLjc1IDEuNzUgMCAwIDEgOC4zNiA3LjdhLjUuNSAwIDAgMCAuMi45OCAyLjc1IDIuNzUgMCAwIDAgMi4xOC0yLjM5Wk00LjUgMWEuNS41IDAgMCAwLS41LjV2NWE0IDQgMCAwIDAgMy41IDMuOTcuNS41IDAgMCAwIDAgLjAzVjE0SDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMUg4LjV2LTMuNWEuNS41IDAgMCAwIDAtLjAzQTQgNCAwIDAgMCAxMiA2LjV2LTVhLjUuNSAwIDAgMC0uNS0uNWgtN1pNNSA0VjJoNnYySDVabTAgMWg2djEuNWEzIDMgMCAwIDEtNiAwVjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1dpbmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1dpbmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAyYS41LjUgMCAwIDAtLjUuNVY4YTUgNSAwIDAgMCA0LjUgNXY0aC0yYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTJ2LTQuMDJBNSA1IDAgMCAwIDE1IDhWMi41YS41LjUgMCAwIDAtLjUtLjVoLTlaTTYgNS41VjNoOHYyLjVINlptNy40NSAyLjU4YTMuNSAzLjUgMCAwIDEtMi44NyAyLjg3LjUuNSAwIDEgMS0uMTYtLjk5IDIuNSAyLjUgMCAwIDAgMi4wNS0yLjA1LjUuNSAwIDAgMSAuOTguMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1dpbmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpbmtXaW5lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuNDUgOC4wOGEuNS41IDAgMCAwLS45OC0uMTcgMi41IDIuNSAwIDAgMS0yLjA1IDIuMDUuNS41IDAgMCAwIC4xNiAxIDMuNSAzLjUgMCAwIDAgMi44Ny0yLjg4Wk01LjUgMmEuNS41IDAgMCAwLS41LjVWOGE1IDUgMCAwIDAgNC41IDV2NGgtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC0ydi00LjAyQTUgNSAwIDAgMCAxNSA4VjIuNWEuNS41IDAgMCAwLS41LS41aC05Wk02IDUuNVYzaDh2Mi41SDZabTAgMWg4VjhhNCA0IDAgMCAxLTggMFY2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcmlua1dpbmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcmlua1dpbmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuNzUgMmEuNzUuNzUgMCAwIDAtLjc1Ljc1djdhNS43NSA1Ljc1IDAgMCAwIDUgNS43djUuMDZsLTIuMjUtLjAxYS43NS43NSAwIDAgMCAwIDEuNWwzIC4wMSAzLjUtLjAxYS43NS43NSAwIDAgMCAwLTEuNUgxMi41di01LjA0YzMuMS0uMzggNS41LTMuMDEgNS41LTYuMjF2LTYuNWEuNzUuNzUgMCAwIDAtLjc1LS43NUg2Ljc1Wm0uNzUgNVYzLjVoOVY3aC05Wm04LjE4IDIuN2EzLjczIDMuNzMgMCAwIDEtMi45MSAyLjk3LjUuNSAwIDAgMS0uMi0uOTggMi43NCAyLjc0IDAgMCAwIDIuMTMtMi4xNy41LjUgMCAwIDEgLjk4LjE5WlwiXSk7XG5leHBvcnQgY29uc3QgRHJpbmtXaW5lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaW5rV2luZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjkzIDkuNzVhLjc1Ljc1IDAgMCAwLTEuNDctLjI4IDIuNDggMi40OCAwIDAgMS0xLjk1IDEuOTguNzUuNzUgMCAxIDAgLjMxIDEuNDcgMy45OCAzLjk4IDAgMCAwIDMuMS0zLjE3Wk02IDIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41Yy40MSAwIC43NS4zNC43NS43NXY2LjVjMCAzLjItMi40IDUuODMtNS41IDYuMnY1LjA2bDIuNzUtLjAxYS43NS43NSAwIDAgMSAwIDEuNWwtMy41LjAxLTMtLjAxYS43NS43NSAwIDAgMSAwLTEuNUgxMXYtNS4wNWE1Ljc1IDUuNzUgMCAwIDEtNS01Ljd2LTdabTEuNS43NXYyLjc1aDlWMy41aC05Wm0wIDYuMjVDNy41IDEyLjEgOS40IDE0IDExLjc1IDE0YTQuNzUgNC43NSAwIDAgMCA0Ljc1LTQuNzV2LTEuNWgtOXYyWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpdmVUcmFpbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0RyaXZlVHJhaW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE1IDJhMiAyIDAgMCAwLTIgMnYxaC0xLjU5QTEuNSAxLjUgMCAwIDAgOC42IDVIN1Y0YTIgMiAwIDEgMC00IDB2M2EyIDIgMCAxIDAgNCAwVjZoMS41OWMuMTUuNDMuNDguNzYuOTEuOTF2Ni4xOGExLjUgMS41IDAgMCAwLS45MS45MUg3di0xYTIgMiAwIDEgMC00IDB2M2EyIDIgMCAxIDAgNCAwdi0xaDEuNTlhMS41IDEuNSAwIDAgMCAyLjgyIDBIMTN2MWEyIDIgMCAxIDAgNCAwdi0zYTIgMiAwIDEgMC00IDB2MWgtMS41OWExLjUgMS41IDAgMCAwLS45MS0uOTFWNi45Yy40My0uMTUuNzYtLjQ4LjkxLS45MUgxM3YxYTIgMiAwIDEgMCA0IDBWNGEyIDIgMCAwIDAtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHJpdmVUcmFpbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcml2ZVRyYWluMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA0YTIgMiAwIDEgMSA0IDB2MWgxLjU5YTEuNSAxLjUgMCAwIDEgMi44MiAwSDEzVjRhMiAyIDAgMSAxIDQgMHYzYTIgMiAwIDEgMS00IDBWNmgtMS41OWExLjUgMS41IDAgMCAxLS45MS45MXY2LjE4Yy40My4xNS43Ni40OC45MS45MUgxM3YtMWEyIDIgMCAxIDEgNCAwdjNhMiAyIDAgMSAxLTQgMHYtMWgtMS41OWExLjUgMS41IDAgMCAxLTIuODIgMEg3djFhMiAyIDAgMSAxLTQgMHYtM2EyIDIgMCAxIDEgNCAwdjFoMS41OWMuMTUtLjQzLjQ4LS43Ni45MS0uOTFWNi45QTEuNSAxLjUgMCAwIDEgOC41OSA2SDd2MWEyIDIgMCAxIDEtNCAwVjRabTItMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDIgMFY0YTEgMSAwIDAgMC0xLTFabTEwIDBhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDEgMCAyIDBWNGExIDEgMCAwIDAtMS0xWk01IDEyYTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAxIDAgMiAwdi0zYTEgMSAwIDAgMC0xLTFabTkgMXYzYTEgMSAwIDEgMCAyIDB2LTNhMSAxIDAgMSAwLTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IERyaXZlVHJhaW4yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcml2ZVRyYWluMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDUuNWEyLjUgMi41IDAgMCAxIDUgMHYxaDIuMDZhMiAyIDAgMCAxIDMuODggMEgxNnYtMWEyLjUgMi41IDAgMCAxIDUgMHYzYTIuNSAyLjUgMCAwIDEtNSAwVjhoLTIuMjdhMiAyIDAgMCAxLS45OC44NXY2LjNhMiAyIDAgMCAxIC45OC44NUgxNnYtLjVhMi41IDIuNSAwIDAgMSA1IDB2M2EyLjUgMi41IDAgMCAxLTUgMHYtMWgtMi4wNmEyIDIgMCAwIDEtMy44OCAwSDh2MWEyLjUgMi41IDAgMCAxLTUgMHYtM2EyLjUgMi41IDAgMCAxIDUgMHYuNWgyLjI3YTIgMiAwIDAgMSAuOTgtLjg1di02LjNhMiAyIDAgMCAxLS45OC0uODVIOHYuNWEyLjUgMi41IDAgMCAxLTUgMHYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IERyaXZlVHJhaW4yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJpdmVUcmFpbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2M2EyLjUgMi41IDAgMCAwIDUgMFY4aDIuMjdhMiAyIDAgMCAwIC45OC44NXY2LjNhMiAyIDAgMCAwLS45OC44NUg4di0uNWEyLjUgMi41IDAgMCAwLTUgMHYzYTIuNSAyLjUgMCAwIDAgNSAwdi0xaDIuMDZhMiAyIDAgMCAwIDMuODggMEgxNnYxYTIuNSAyLjUgMCAwIDAgNSAwdi0zYTIuNSAyLjUgMCAwIDAtNSAwdi41aC0yLjI3YTIgMiAwIDAgMC0uOTgtLjg1di02LjNhMiAyIDAgMCAwIC45OC0uODVIMTZ2LjVhMi41IDIuNSAwIDAgMCA1IDB2LTNhMi41IDIuNSAwIDAgMC01IDB2MWgtMi4wNmEyIDIgMCAwIDAtMy44OCAwSDh2LTFBMi41IDIuNSAwIDAgMCA1LjUgM1ptLTEgMi41YTEgMSAwIDAgMSAyIDB2M2ExIDEgMCAwIDEtMiAwdi0zWm0xIDlhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDEgMS0yIDB2LTNhMSAxIDAgMCAxIDEtMVptMTItOWExIDEgMCAxIDEgMiAwdjNhMSAxIDAgMSAxLTIgMHYtM1ptMSA5YTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAxIDEtMiAwdi0zYTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEcm9wMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJvcDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxYS41LjUgMCAwIDEgLjM1LjE1Yy4yNi4yNSAxLjA0IDEuMDMgMS43NSAyLjA3QTYuOTkgNi45OSAwIDAgMSA5LjUgN2MwIDEuMzQtLjM2IDIuMzUtMS4wMiAzLjAzLS42Ni42OS0xLjU1Ljk3LTIuNDguOTctLjkzIDAtMS44Mi0uMjgtMi40OC0uOTdDMi44NiA5LjM1IDIuNSA4LjMzIDIuNSA3YzAtMS40LjctMi43NiAxLjQtMy43OGExNC45IDE0LjkgMCAwIDEgMS43NS0yLjA3QS41LjUgMCAwIDEgNiAxWlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcm9wMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNiAxYS41LjUgMCAwIDEgLjM1LjE1Yy4yNi4yNSAxLjA0IDEuMDMgMS43NSAyLjA3QTYuOTkgNi45OSAwIDAgMSA5LjUgN2MwIDEuMzQtLjM2IDIuMzUtMS4wMiAzLjAzLS42Ni42OS0xLjU1Ljk3LTIuNDguOTctLjkzIDAtMS44Mi0uMjgtMi40OC0uOTdDMi44NiA5LjM1IDIuNSA4LjMzIDIuNSA3YzAtMS40LjctMi43NiAxLjQtMy43OGExNC45IDE0LjkgMCAwIDEgMS43NS0yLjA3QS41LjUgMCAwIDEgNiAxWm0wIDEuMjJjLS4zNC4zNS0uODIuOS0xLjI4IDEuNTZBNi4wMiA2LjAyIDAgMCAwIDMuNSA3YzAgMS4xNi4zMSAxLjkuNzQgMi4zNC40Mi40NCAxLjAzLjY2IDEuNzYuNjZzMS4zNC0uMjIgMS43Ni0uNjZDOC4yIDguOSA4LjUgOC4xNiA4LjUgN2MwLTEuMS0uNTYtMi4yNC0xLjIyLTMuMjItLjQ2LS42Ni0uOTQtMS4yLTEuMjgtMS41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyb3AxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcm9wMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjY1IDEuMTVjLjItLjIuNS0uMi43IDAgLjI3LjI2IDEuNDEgMS40NSAyLjUgM0MxMS45MiA1LjY4IDEzIDcuNjcgMTMgOS41YzAgMS43OC0uNTggMy4xNi0xLjUyIDQuMUMxMC41NSAxNC41NCA5LjMgMTUgOCAxNWMtMS4zIDAtMi41NS0uNDYtMy40OC0xLjRBNS42MyA1LjYzIDAgMCAxIDMgOS41YzAtMS44MyAxLjA4LTMuODIgMi4xNS01LjM1YTI0LjMzIDI0LjMzIDAgMCAxIDIuNS0zWlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcm9wMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy42NSAxLjE1Yy4yLS4yLjUtLjIuNyAwIC4yNy4yNiAxLjQxIDEuNDUgMi41IDNDMTEuOTIgNS42OCAxMyA3LjY3IDEzIDkuNWMwIDEuNzgtLjU4IDMuMTYtMS41MiA0LjFDMTAuNTUgMTQuNTQgOS4zIDE1IDggMTVjLTEuMyAwLTIuNTUtLjQ2LTMuNDgtMS40QTUuNjMgNS42MyAwIDAgMSAzIDkuNWMwLTEuODMgMS4wOC0zLjgyIDIuMTUtNS4zNWEyNC4zMyAyNC4zMyAwIDAgMSAyLjUtM1pNNS45NyA0LjcyQzQuOTIgNi4yMyA0IDggNCA5LjVjMCAxLjU2LjUgMi42NyAxLjIyIDMuNC43My43MyAxLjcyIDEuMSAyLjc4IDEuMSAxLjA2IDAgMi4wNS0uMzcgMi43OC0xLjFBNC42NCA0LjY0IDAgMCAwIDEyIDkuNWMwLTEuNS0uOTItMy4yNy0xLjk3LTQuNzgtLjc3LTEuMS0xLjU3LTItMi4wMy0yLjUtLjQ2LjUtMS4yNiAxLjQtMi4wMyAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEcm9wMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJvcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS42NSAyLjE1Yy4yLS4yLjUtLjIuNyAwIC41NC41MyAxLjggMi4wNiAyLjk1IDMuOSAxLjEzIDEuODIgMi4yIDQuMDUgMi4yIDUuOTUgMCAxLjg0LS41MyAzLjM1LTEuNSA0LjRhNS4zIDUuMyAwIDAgMS00IDEuNmMtMS42MSAwLTMtLjU0LTQtMS42QTYuMjkgNi4yOSAwIDAgMSA0LjUgMTJjMC0xLjkgMS4wNy00LjEzIDIuMi01Ljk1YTI1LjMgMjUuMyAwIDAgMSAyLjk1LTMuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IERyb3AyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJvcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuNjUgMi4xNWMuMi0uMi41LS4yLjcgMCAuNTQuNTMgMS44IDIuMDYgMi45NSAzLjkgMS4xMyAxLjgyIDIuMiA0LjA1IDIuMiA1Ljk1IDAgMS44NC0uNTMgMy4zNS0xLjUgNC40YTUuMyA1LjMgMCAwIDEtNCAxLjZjLTEuNjEgMC0zLS41NC00LTEuNkE2LjI5IDYuMjkgMCAwIDEgNC41IDEyYzAtMS45IDEuMDctNC4xMyAyLjItNS45NWEyNS4zIDI1LjMgMCAwIDEgMi45NS0zLjlabS0yLjEgNC40M0M2LjQzIDguMzggNS41IDEwLjQgNS41IDEyYzAgMS42Ni40NyAyLjkgMS4yNCAzLjcyQTQuMyA0LjMgMCAwIDAgMTAgMTdhNC4zIDQuMyAwIDAgMCAzLjI2LTEuMjhBNS4zIDUuMyAwIDAgMCAxNC41IDEyYzAtMS42LS45My0zLjYyLTIuMDUtNS40MkEyNi44NSAyNi44NSAwIDAgMCAxMCAzLjI0Yy0uNTkuNjctMS41NiAxLjktMi40NSAzLjM0WlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Ryb3AyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTExLjQ3IDIuMjJjLjMtLjMuNzctLjMgMS4wNiAwIC40LjQgMiAyLjEzIDMuNSA0LjM2QzE3LjUgOC43OCAxOSAxMS42MyAxOSAxNC4yNWMwIDIuNTItLjc1IDQuNDgtMi4wNCA1LjhBNi43OCA2Ljc4IDAgMCAxIDEyIDIyYTYuNzggNi43OCAwIDAgMS00Ljk2LTEuOTRDNS43NCAxOC43MyA1IDE2Ljc3IDUgMTQuMjVjMC0yLjYyIDEuNS01LjQ2IDIuOTctNy42NyAxLjUtMi4yMyAzLjEtMy45NiAzLjUtNC4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IERyb3AyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHJvcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjQ3IDIuMjJjLjMtLjMuNzctLjMgMS4wNiAwIC40LjQgMiAyLjEzIDMuNSA0LjM2QzE3LjUgOC43OCAxOSAxMS42MyAxOSAxNC4yNWMwIDIuNTItLjc1IDQuNDgtMi4wNCA1LjhBNi43OCA2Ljc4IDAgMCAxIDEyIDIyYTYuNzggNi43OCAwIDAgMS00Ljk2LTEuOTRDNS43NCAxOC43MyA1IDE2Ljc3IDUgMTQuMjVjMC0yLjYyIDEuNS01LjQ2IDIuOTctNy42NyAxLjUtMi4yMyAzLjEtMy45NiAzLjUtNC4zNlptLTIuMjUgNS4yYy0xLjQ2IDIuMTctMi43MiA0LjctMi43MiA2LjgzIDAgMi4yMy42NSAzLjc3IDEuNjIgNC43Ni45Ni45OCAyLjMyIDEuNDkgMy44OCAxLjQ5czIuOTItLjUgMy44OC0xLjVjLjk3LS45OCAxLjYyLTIuNTIgMS42Mi00Ljc1IDAtMi4xMy0xLjI2LTQuNjYtMi43Mi02LjgzQTMzLjM2IDMzLjM2IDAgMCAwIDEyIDMuODVjLS42NS43My0xLjc0IDIuMDItMi43OCAzLjU3WlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Ryb3AyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTEzLjQ3IDIuMjJjLjMtLjMuNzctLjMgMS4wNiAwIC41Mi41MiAyLjUgMi42MSA0LjM0IDUuMzIgMS44MiAyLjY2IDMuNjMgNi4wOCAzLjYzIDkuMjEgMCAzLjA0LS45MiA1LjM3LTIuNDkgNi45NUE4LjMyIDguMzIgMCAwIDEgMTQgMjZjLTIuMyAwLTQuNDQtLjczLTYuMDEtMi4zLTEuNTctMS41OC0yLjQ5LTMuOS0yLjQ5LTYuOTUgMC0zLjEzIDEuOC02LjU1IDMuNjMtOS4yMSAxLjg1LTIuNyAzLjgyLTQuOCA0LjM0LTUuMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBEcm9wMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Ryb3AyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMy40NyAyLjIyYy4zLS4zLjc3LS4zIDEuMDYgMCAuNTIuNTIgMi41IDIuNjEgNC4zNCA1LjMyIDEuODIgMi42NiAzLjYzIDYuMDggMy42MyA5LjIxIDAgMy4wNC0uOTIgNS4zNy0yLjQ5IDYuOTVBOC4zMiA4LjMyIDAgMCAxIDE0IDI2Yy0yLjMgMC00LjQ0LS43My02LjAxLTIuMy0xLjU3LTEuNTgtMi40OS0zLjktMi40OS02Ljk1IDAtMy4xMyAxLjgtNi41NSAzLjYzLTkuMjEgMS44NS0yLjcgMy44Mi00LjggNC4zNC01LjMyWk0xNCAzLjg0Yy0uOC44Ny0yLjI2IDIuNTMtMy42MyA0LjU0QzguNTcgMTEuMDIgNyAxNC4xIDcgMTYuNzVjMCAyLjc0LjgyIDQuNjUgMi4wNSA1Ljg5QTYuODMgNi44MyAwIDAgMCAxNCAyNC41YzEuOTggMCAzLjcxLS42MyA0Ljk1LTEuODZDMjAuMTggMjEuNCAyMSAxOS40OSAyMSAxNi43NWMwLTIuNjUtMS41Ny01LjczLTMuMzctOC4zN0E0MS4wMSA0MS4wMSAwIDAgMCAxNCAzLjg0WlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Ryb3A0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRjLjMzIDAgLjY1LjEzLjg4LjM3bC4yNC4yM2E2OC4yMiA2OC4yMiAwIDAgMSA3LjE3IDguMjNjMy4xMyA0LjMgNi4yMSA5Ljg4IDYuMjEgMTUuNDIgMCA1LjM4LTEuNiA5LjM2LTQuMzEgMTJDMzEuNDkgNDIuODUgMjcuODMgNDQgMjQgNDRjLTMuODMgMC03LjQ4LTEuMTQtMTAuMTktMy43Ni0yLjcxLTIuNjMtNC4zMS02LjYxLTQuMzEtMTEuOTkgMC01LjU0IDMuMDEtMTEuMDYgNi4xMS0xNS4zMyAyLjktMy45OCA2LTcuMDYgNy4yNC04LjI5bC4yNy0uMjZjLjIzLS4yNC41NS0uMzcuODgtLjM3WlwiXSk7XG5leHBvcnQgY29uc3QgRHJvcDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEcm9wNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjQgNGMuMzMgMCAuNjUuMTMuODguMzdsLjI0LjIzYTY4LjIyIDY4LjIyIDAgMCAxIDcuMTcgOC4yM2MzLjEzIDQuMyA2LjIxIDkuODggNi4yMSAxNS40MiAwIDUuMzgtMS42IDkuMzYtNC4zMSAxMkMzMS40OSA0Mi44NSAyNy44MyA0NCAyNCA0NGMtMy44MyAwLTcuNDgtMS4xNC0xMC4xOS0zLjc2LTIuNzEtMi42My00LjMxLTYuNjEtNC4zMS0xMS45OSAwLTUuNTQgMy4wMS0xMS4wNiA2LjExLTE1LjMzIDIuOS0zLjk4IDYtNy4wNiA3LjI0LTguMjlsLjI3LS4yNmMuMjMtLjI0LjU1LS4zNy44OC0uMzdabS02LjM2IDEwLjRDMTQuNiAxOC41NSAxMiAyMy41MyAxMiAyOC4yNGMwIDQuODcgMS40NCA4LjE0IDMuNTUgMTAuMiAyLjEzIDIuMDYgNS4xIDMuMDUgOC40NSAzLjA1IDMuMzUgMCA2LjMyLS45OSA4LjQ1LTMuMDUgMi4xMS0yLjA2IDMuNTUtNS4zMyAzLjU1LTEwLjIgMC00LjcxLTIuNjctOS43NS01LjczLTEzLjk1QTY0LjAzIDY0LjAzIDAgMCAwIDI0IDdhNjMuNjcgNjMuNjcgMCAwIDAtNi4zNiA3LjM4WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjVWNEg0Wm0yIDkuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpNMTAuNSA0djEySDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC01LjVabTIgOWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAxMy41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpNNCA0aDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTUuNSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjVabTEgMTBIMTZhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFoLTUuNXYxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW4yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMC4yNSA0QzIxLjIgNCAyMiA0LjggMjIgNS43NXYxMi41YzAgLjk2LS43OSAxLjc1LTEuNzUgMS43NUgxM2MtLjA5IDAtLjE3IDAtLjI2LS4wMlY0LjAyTDEzIDRoNy4yNVpNMTEgNGMuMDggMCAuMTYgMCAuMjQuMDJ2MTUuOTZMMTEgMjBIMy43NUMyLjc4IDIwIDIgMTkuMiAyIDE4LjI1VjUuNzVDMiA0Ljc4IDIuNzggNCAzLjc1IDRIMTFaTTkuMjQgMTUuNWgtMS42YS43NS43NSAwIDAgMCAwIDEuNUg5LjM0YS43NS43NSAwIDAgMCAwLTEuNWgtLjFabTcgMGgtMS42YS43NS43NSAwIDAgMCAwIDEuNUgxNi4zNGEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuNzUgNGg3LjVDMjEuMiA0IDIyIDQuOCAyMiA1Ljc1djEyLjVjMCAuOTYtLjc5IDEuNzUtMS43NSAxLjc1SDMuNzVDMi43OCAyMCAyIDE5LjIgMiAxOC4yNVY1Ljc1QzIgNC43OCAyLjc4IDQgMy43NSA0aDlabTcuNSAxLjVoLTcuNXYxM2g3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjVWNS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptLTkgMGgtNy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2MTIuNWMwIC4xMy4xMS4yNS4yNS4yNWg3LjV2LTEzWm0zLjQ5IDEwaDEuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjYtMS41Wm0tNyAwaDEuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5BZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptLS41IDcuNWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZWMTZhMiAyIDAgMCAxLTIgMmgtNS41VjkuMjdhNS40OCA1LjQ4IDAgMCAwIDQgMS43M1ptLTUtMy4yQTUuNDcgNS40NyAwIDAgMSA5LjAyIDZINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjVWNy44Wk02IDE1LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5BZGQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDkuOTd2MTAuMjhjMCAuOTctLjc5IDEuNzUtMS43NSAxLjc1SDEzYy0uMDkgMC0uMTcgMC0uMjYtLjAyVjExLjhBNi40NyA2LjQ3IDAgMCAwIDIyIDkuOTdaTTEwLjAyIDZhNi42MyA2LjYzIDAgMCAwIDEuMjIgNC4zMnYxMS42NkwxMSAyMkgzLjc1QzIuNzggMjIgMiAyMS4yIDIgMjAuMjVWNy43NUMyIDYuNzggMi43OCA2IDMuNzUgNmg2LjI3Wm0tLjc4IDExLjVoLTEuNmEuNzUuNzUgMCAwIDAgMCAxLjVIOS4zNGEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWm03IDBoLTEuNmEuNzUuNzUgMCAwIDAgMCAxLjVIMTYuMzRhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMVpNMTYuNSAxYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabTAgMmgtLjA5YS41LjUgMCAwIDAtLjQuNGwtLjAxLjFWNmgtMi42YS41LjUgMCAwIDAtLjQuNDF2LjE4Yy4wNC4yLjIuMzYuNC40bC4xLjAxSDE2djIuNmMuMDUuMi4yLjM2LjQxLjRoLjE4YS41LjUgMCAwIDAgLjQtLjRsLjAxLS4xVjdoMi42YS41LjUgMCAwIDAgLjQtLjQxdi0uMThhLjUuNSAwIDAgMC0uNC0uNEwxOS41IDZIMTdWMy40YS41LjUgMCAwIDAtLjUtLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5BZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC4wMiA2YTYuNjMgNi42MyAwIDAgMCAuMDYgMS41SDMuNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxMi41YzAgLjEzLjExLjI1LjI1LjI1aDcuNVYxMC4zM2MuNDEuNTcuOTIgMS4wNyAxLjUgMS40OHY4LjY5aDcuNWMuMTMgMCAuMjUtLjExLjI1LS4yNXYtOC42MkE2LjUzIDYuNTMgMCAwIDAgMjIgOS45N3YxMC4yOGMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMy43NUMyLjc4IDIyIDIgMjEuMiAyIDIwLjI1VjcuNzVDMiA2Ljc4IDIuNzggNiAzLjc1IDZoNi4yN1ptNi4yMiAxMS41YS43NS43NSAwIDAgMSAuMSAxLjVoLTEuNmEuNzUuNzUgMCAwIDEtLjEtMS41aDEuNlptLTcgMGEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjZaTTE2LjUgMWE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0wIDJoLS4wOWEuNS41IDAgMCAwLS40LjRsLS4wMS4xVjZoLTIuNmEuNS41IDAgMCAwLS40LjQxdi4xOGMuMDQuMi4yLjM2LjQuNGwuMS4wMUgxNnYyLjZjLjA1LjIuMi4zNi40MS40aC4xOGEuNS41IDAgMCAwIC40LS40bC4wMS0uMVY3aDIuNmEuNS41IDAgMCAwIC40LS40MXYtLjE4YS41LjUgMCAwIDAtLjQtLjRMMTkuNSA2SDE3VjMuNGEuNS41IDAgMCAwLS41LS40WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFycm93UmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQXJyb3dSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQuNSAxYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVBLjUuNSAwIDAgMCAxNyA1LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDVIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNlYxNmEyIDIgMCAwIDEtMiAyaC01LjVWOS4yN2E1LjQ4IDUuNDggMCAwIDAgNCAxLjczWm0tNS0zLjJBNS40NyA1LjQ3IDAgMCAxIDkuMDIgNkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY3LjhaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQXJyb3dSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQXJyb3dSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjUgMWE0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptMi4zNSA0Ljg1QS41LjUgMCAwIDAgMTcgNS41YS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxNS4yOSA1SDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpNMTcgMTZ2LTUuNmMuMzYtLjE4LjctLjQgMS0uNjZWMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGMwLTEuMS45LTIgMi0yaDUuMDJjLjAzLjM0LjEuNjguMTkgMUg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY3LjhjLjI1LjU0LjYgMS4wNCAxIDEuNDdWMTdIMTZhMSAxIDAgMCAwIDEtMVptLTExLS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5BcnJvd1JpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93UmlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyIDkuOTd2MTAuMjhjMCAuOTctLjc5IDEuNzUtMS43NSAxLjc1SDEzYy0uMDkgMC0uMTcgMC0uMjYtLjAyVjExLjhBNi40NyA2LjQ3IDAgMCAwIDIyIDkuOTdaTTEwLjAyIDZhNi42MyA2LjYzIDAgMCAwIDEuMjIgNC4zMnYxMS42NkwxMSAyMkgzLjc1QzIuNzggMjIgMiAyMS4yIDIgMjAuMjVWNy43NUMyIDYuNzggMi43OCA2IDMuNzUgNmg2LjI3Wm0tLjc4IDExLjVoLTEuNmEuNzUuNzUgMCAwIDAgMCAxLjVIOS4zNGEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWm03IDBoLTEuNmEuNzUuNzUgMCAwIDAgMCAxLjVIMTYuMzRhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMVpNMTYuNSAxYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabS4zIDIuNTUtLjA4LjA0LS4wNy4wNi0uMDYuMDdhLjUuNSAwIDAgMCAwIC41NmwuMDYuMDdMMTguMjkgNkgxMy40YS41LjUgMCAwIDAtLjQuNDF2LjE4Yy4wNC4yLjIuMzYuNC40bC4xLjAxaDQuOGwtMS42NSAxLjY1LS4wNi4wN2EuNS41IDAgMCAwIC43LjdsLjA2LS4wNyAyLjUzLTIuNTMuMDQtLjA1LjA0LS4wOC4wMy0uMDhWNi4zOWwtLjAzLS4wOC0uMDQtLjA4LS4wNC0uMDUtMi41My0yLjUzLS4wNy0uMDZhLjUuNSAwIDAgMC0uNDktLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFycm93UmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93UmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC4wMiA2YTYuNjMgNi42MyAwIDAgMCAuMDYgMS41SDMuNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxMi41YzAgLjEzLjExLjI1LjI1LjI1aDcuNVYxMC4zM2MuNDEuNTcuOTIgMS4wNyAxLjUgMS40OHY4LjY5aDcuNWMuMTMgMCAuMjUtLjExLjI1LS4yNXYtOC42MkE2LjUzIDYuNTMgMCAwIDAgMjIgOS45N3YxMC4yOGMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMy43NUMyLjc4IDIyIDIgMjEuMiAyIDIwLjI1VjcuNzVDMiA2Ljc4IDIuNzggNiAzLjc1IDZoNi4yN1ptNi4yMiAxMS41YS43NS43NSAwIDAgMSAuMSAxLjVoLTEuNmEuNzUuNzUgMCAwIDEtLjEtMS41aDEuNlptLTcgMGEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjZaTTE2LjUgMWE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0uMyAyLjU1LS4wOC4wNC0uMDcuMDYtLjA2LjA3YS41LjUgMCAwIDAgMCAuNTZsLjA2LjA3TDE4LjI5IDZIMTMuNGEuNS41IDAgMCAwLS40LjQxdi4xOGMuMDQuMi4yLjM2LjQuNGwuMS4wMWg0LjhsLTEuNjUgMS42NS0uMDYuMDdhLjUuNSAwIDAgMCAuNy43bC4wNi0uMDcgMi41My0yLjUzLjA0LS4wNS4wNC0uMDguMDMtLjA4VjYuMzlsLS4wMy0uMDgtLjA0LS4wOC0uMDQtLjA1LTIuNTMtMi41My0uMDctLjA2YS41LjUgMCAwIDAtLjQ5LS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5BcnJvd1VwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93VXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUtMi4zNS0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDQuNzFWNy41YS41LjUgMCAwIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yQS41LjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAtLjM1LjE0Wk0xNC41IDExYzEuMzMgMCAyLjU1LS40NyAzLjUtMS4yNlYxNmEyIDIgMCAwIDEtMiAyaC01LjVWOS4yN2E1LjQ4IDUuNDggMCAwIDAgNCAxLjczWm0tNS0zLjJBNS40NyA1LjQ3IDAgMCAxIDkuMDIgNkg0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDUuNVY3LjhaTTYgMTUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQXJyb3dVcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQXJyb3dVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQuODUtMi4zNS0yIDJhLjUuNSAwIDAgMCAuNy43TDE0IDQuNzFWNy41YS41LjUgMCAwIDAgMSAwVjQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi0yQS41LjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAtLjM1LjE0Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTcuNS0uNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFycm93VXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQXJyb3dVcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS02LTEuOHY0LjhhLjUuNSAwIDAgMCAxIDBWNC43bDEuNjUgMS42NWEuNS41IDAgMCAwIC43LS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcgMGwtMi41IDIuNWEuNS41IDAgMCAwIC43LjdMMTYgNC43MVptNiAxNS41NVY5Ljk3YTYuNSA2LjUgMCAwIDEtOS4yNiAxLjgzdjEwLjE4TDEzIDIyaDcuMjVjLjk2IDAgMS43NS0uNzggMS43NS0xLjc1Wm0tNy4yNi0yLjc1aDEuNmEuNzUuNzUgMCAwIDEgMCAxLjVIMTQuNjRhLjc1Ljc1IDAgMCAxIDAtMS41aC4xWk0xMCA2LjVjMC0uMTcgMC0uMzMuMDItLjVIMy43NUMyLjc4IDYgMiA2Ljc4IDIgNy43NXYxMi41QzIgMjEuMiAyLjc4IDIyIDMuNzUgMjJIMTFjLjA4IDAgLjE2IDAgLjI0LS4wMlYxMC4zMkE2LjQ3IDYuNDcgMCAwIDEgMTAgNi41Wm0tMi4yNiAxMWgxLjZhLjc1Ljc1IDAgMCAxIDAgMS41SDcuNjRhLjc1Ljc1IDAgMCAxIDAtMS41aC4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkFycm93VXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkFycm93VXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMiA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYtMS44djQuOGEuNS41IDAgMCAwIDEgMFY0LjdsMS42NSAxLjY1YS41LjUgMCAwIDAgLjctLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNyAwbC0yLjUgMi41YS41LjUgMCAwIDAgLjcuN0wxNiA0LjcxWm0tNiAxLjhjMC0uMTcgMC0uMzMuMDItLjVIMy43NUMyLjc4IDYgMiA2Ljc4IDIgNy43NXYxMi41QzIgMjEuMiAyLjc4IDIyIDMuNzUgMjJoMTYuNWMuOTYgMCAxLjc1LS43OCAxLjc1LTEuNzVWOS45N2MtLjQuNjQtLjkxIDEuMi0xLjUgMS42NnY4LjYyYzAgLjE0LS4xMi4yNS0uMjUuMjVoLTcuNXYtOC43Yy0uNTgtLjQtMS4wOS0uOS0xLjUtMS40N1YyMC41aC03LjVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWNy43NWMwLS4xNC4xMS0uMjUuMjUtLjI1aDYuMzNhNi41NSA2LjU1IDAgMCAxLS4wOC0xWm02Ljk5IDExLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0xLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgxLjZhLjc1Ljc1IDAgMCAwIC42NS0uNzVabS03IDBhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTEuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDEuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5DbG9jazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5DbG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xNC41IDNhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTZhLjUuNSAwIDAgMCAwLTFoLTFWMy41YS41LjUgMCAwIDAtLjUtLjVabTAgOGMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZWMTZhMiAyIDAgMCAxLTIgMmgtNS41VjkuMjdhNS40OCA1LjQ4IDAgMCAwIDQgMS43M1ptLTUtMy4yQTUuNDcgNS40NyAwIDAgMSA5LjAyIDZINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjVWNy44Wk02IDE1LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkNsb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5DbG9jazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAzYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDE2YS41LjUgMCAwIDAgMC0xaC0xVjMuNWEuNS41IDAgMCAwLS41LS41Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkNsb2NrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkNsb2NrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiA5Ljk3djEwLjI4YzAgLjk3LS43OSAxLjc1LTEuNzUgMS43NUgxM2MtLjA5IDAtLjE3IDAtLjI2LS4wMlYxMS44QTYuNDcgNi40NyAwIDAgMCAyMiA5Ljk3Wk0xMC4wMiA2YTYuNjMgNi42MyAwIDAgMCAxLjIyIDQuMzJ2MTEuNjZMMTEgMjJIMy43NUMyLjc4IDIyIDIgMjEuMiAyIDIwLjI1VjcuNzVDMiA2Ljc4IDIuNzggNiAzLjc1IDZoNi4yN1ptLS43OCAxMS41aC0xLjZhLjc1Ljc1IDAgMCAwIDAgMS41SDkuMzRhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMVptNyAwaC0xLjZhLjc1Ljc1IDAgMCAwIDAgMS41SDE2LjM0YS43NS43NSAwIDAgMCAwLTEuNWgtLjFaTTE2LjUgMWE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tMSAyYS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFIMTZWMy41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuQ2xvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkNsb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuMDIgNmE2LjYzIDYuNjMgMCAwIDAgLjA2IDEuNUgzLjc1YS4yNS4yNSAwIDAgMC0uMjUuMjV2MTIuNWMwIC4xMy4xMS4yNS4yNS4yNWg3LjVWMTAuMzNjLjQxLjU3LjkyIDEuMDcgMS41IDEuNDh2OC42OWg3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjV2LTguNjJBNi41MyA2LjUzIDAgMCAwIDIyIDkuOTd2MTAuMjhjMCAuOTctLjc5IDEuNzUtMS43NSAxLjc1SDMuNzVDMi43OCAyMiAyIDIxLjIgMiAyMC4yNVY3Ljc1QzIgNi43OCAyLjc4IDYgMy43NSA2aDYuMjdabTYuMjIgMTEuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjZabS03IDBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtMS42YS43NS43NSAwIDAgMS0uMS0xLjVoMS42Wk0xNi41IDFhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTEgMmEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDE2VjMuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkNsb3NlZEFsZXJ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkNsb3NlZEFsZXJ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDVhMyAzIDAgMCAxIDYgMHYybDEuMzIgMS4xMmEuNS41IDAgMCAxLS4zMi44OGgtOGEuNS41IDAgMCAxLS4zMi0uODhMMTAuNSA3VjVabTMgNmExLjUgMS41IDAgMCAxLTEuNDItMWgyLjgzYy0uMi41OC0uNzYgMS0xLjQxIDFabS00LTQuNDYtLjk3LjgyQTEuNSAxLjUgMCAwIDAgOS41IDEwaDEuNTJsLjEyLjMzQTIuNSAyLjUgMCAwIDAgMTQgMTEuOTVWMTVhMiAyIDAgMCAxLTIgMkg2YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDMuNXYxLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkNsb3NlZEFsZXJ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5DbG9zZWRBbGVydDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjUgNWEzIDMgMCAwIDEgNiAwdjJsMS4zMiAxLjEyYS41LjUgMCAwIDEtLjMyLjg4aC04YS41LjUgMCAwIDEtLjMyLS44OEwxMC41IDdWNVptMyA2YTEuNSAxLjUgMCAwIDEtMS40Mi0xaDIuODNjLS4yLjU4LS43NiAxLTEuNDEgMVpNNiA2aDMuNVY1SDZhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDZhMiAyIDAgMCAwIDItMnYtMy4wNWEyLjUyIDIuNTIgMCAwIDEtMSAwVjE1YTEgMSAwIDAgMS0xIDFINlY2WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkNsb3NlZEFsZXJ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkNsb3NlZEFsZXJ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi41IDJhNC4wMSA0LjAxIDAgMCAxIDQgNHYyLjUybDEuMzggMS42NmEuNS41IDAgMCAxLS4zOC44MmgtMTBhLjUuNSAwIDAgMS0uMzgtLjgybDEuMzgtMS42NlY2YTQuMDEgNC4wMSAwIDAgMSA0LTRaTTUuNzUgNWg1Ljg1Yy0uMDYuMzMtLjEuNjYtLjEgMXYyLjE2bC0xLjE1IDEuMzhBMS41IDEuNSAwIDAgMCAxMS41IDEyaDIuMTdBMyAzIDAgMCAwIDE3IDEzLjk2djQuNzljMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTlhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm05Ljc1IDcuNzNjLS4zLS4xNy0uNTUtLjQzLS43Mi0uNzNoMy40NGExLjk4IDEuOTggMCAwIDEtMi43Mi43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5DbG9zZWRBbGVydDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuQ2xvc2VkQWxlcnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi41IDJhNC4wMSA0LjAxIDAgMCAxIDQgNHYyLjUybDEuMzggMS42NmEuNS41IDAgMCAxLS4zOC44MmgtMTBhLjUuNSAwIDAgMS0uMzgtLjgybDEuMzgtMS42NlY2YTQuMDEgNC4wMSAwIDAgMSA0LTRaTTUuNzUgNWg1Ljg1Yy0uMDYuMzMtLjEuNjYtLjEgMXYuNWgtNXYxM2g4LjI1Yy40MSAwIC43NS0uMzQuNzUtLjc1di00LjkyYTMgMyAwIDAgMCAxLjUuMTN2NC43OWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtOWEuNzUuNzUgMCAwIDEtLjc1LS43NVY1Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVabTkuNzUgNy43M2MtLjMtLjE3LS41NS0uNDMtLjcyLS43M2gzLjQ0YTEuOTggMS45OCAwIDAgMS0yLjcyLjczWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkRlc2t0b3AyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuRGVza3RvcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJoLTJ2MmgxYS41LjUgMCAwIDEgMCAxaC0ydi02YTMgMyAwIDAgMC0zLTNINFY0Wm02IDE0SDcuNVY4SDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAyWk00IDhoMi41djEwSDRhMiAyIDAgMCAxLTItMnYtNmMwLTEuMS45LTIgMi0yWm01LjUgN2EuNS41IDAgMCAwIDAgMWguNWEuNS41IDAgMCAwIDAtMWgtLjVabS02IC41YzAgLjI4LjIyLjUuNS41aC41YS41LjUgMCAwIDAgMC0xSDRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkRlc2t0b3AyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkRlc2t0b3AyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDRjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMmgtMnYyaDFhLjUuNSAwIDAgMSAwIDFoLTJ2LTRoM2ExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2M0g0VjRabS0yIDZjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNlptMi0xYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNVY5SDRabTYgOGExIDEgMCAwIDAgMS0xdi02YTEgMSAwIDAgMC0xLTFINy41djhIMTBabS0xLTJoLjVhLjUuNSAwIDAgMSAwIDFIOWEuNS41IDAgMCAxIDAtMVptLTUgLjVjMC0uMjguMjItLjUuNS0uNUg1YS41LjUgMCAwIDEgMCAxaC0uNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkRlc2t0b3AyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuRGVza3RvcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy41IDEwdjEySDMuNzVjLS45MiAwLTEuNjctLjctMS43NC0xLjZMMiAyMC4yNHYtOC41YzAtLjkyLjctMS42NyAxLjYtMS43NGwuMTUtLjAxSDcuNVptNC43NSAwYy45MiAwIDEuNjcuNyAxLjc0IDEuNmwuMDEuMTV2OC41YzAgLjkyLS43IDEuNjctMS42IDEuNzRsLS4xNS4wMUg4LjVWMTBoMy43NVptLTEuNiA4LjVoLS42YS43NS43NSAwIDAgMCAwIDEuNWguN2EuNzUuNzUgMCAwIDAtLjEtMS41Wm0tNC43NiAwaC0uNmEuNzUuNzUgMCAwIDAgMCAxLjVINmEuNzUuNzUgMCAwIDAtLjEtMS41Wk0xOS43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djljMCAxLjItLjkzIDIuMTctMi4xIDIuMjRsLS4xNS4wMUgxN3YyaDEuMjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxNXYtMS41aC41di0ySDE1di00QTIuNSAyLjUgMCAwIDAgMTIuNjYgOUg0VjQuMjVjMC0xLjIuOTMtMi4xNyAyLjEtMi4yNEw2LjI1IDJoMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5EZXNrdG9wMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5EZXNrdG9wMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuMjUgMTBjLjkyIDAgMS42Ny43IDEuNzQgMS42bC4wMS4xNXY4LjVjMCAuOTItLjcgMS42Ny0xLjYgMS43NGwtLjE1LjAxaC04LjVjLS45MiAwLTEuNjctLjctMS43NC0xLjZMMiAyMC4yNHYtOC41YzAtLjkyLjctMS42NyAxLjYtMS43NGwuMTUtLjAxaDguNVpNNy41IDExLjVIMy43NWEuMjUuMjUgMCAwIDAtLjI0LjJsLS4wMS4wNXY4LjVjMCAuMTIuMDguMjIuMi4yNGwuMDUuMDFINy41di05Wm00Ljc1IDBIOC41djloMy43NWMuMTIgMCAuMjItLjA4LjI0LS4ybC4wMS0uMDV2LTguNWEuMjUuMjUgMCAwIDAtLjItLjI0bC0uMDUtLjAxWk0xMC42MiAxOGEuNzUuNzUgMCAwIDEgLjEgMS41aC0uNmEuNzUuNzUgMCAwIDEtLjEtMS41aC42Wm0tNC43NCAwYS43NS43NSAwIDAgMSAuMSAxLjVoLS42YS43NS43NSAwIDAgMS0uMS0xLjVoLjZaTTE5Ljc0IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2OWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDE3djJoMS4yNWEuNzUuNzUgMCAwIDEgLjEgMS41SDE1di0xLjVoLjV2LTJIMTVWMTRoNC43NWMuMzggMCAuNy0uMjguNzQtLjY1bC4wMS0uMXYtOWEuNzUuNzUgMCAwIDAtLjc1LS43NUg2LjI1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xVjlINFY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMNi4yNSAyaDEzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuRGlzbWlzczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5EaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNC41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE1LjIxIDUuNWwxLjE0LTEuMTVaTTE0LjUgMTFjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2VjE2YTIgMiAwIDAgMS0yIDJoLTUuNVY5LjI3YTUuNDggNS40OCAwIDAgMCA0IDEuNzNabS01LTMuMkE1LjQ3IDUuNDcgMCAwIDEgOS4wMiA2SDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjcuOFpNNiAxNS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5EaXNtaXNzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5EaXNtaXNzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTQuNSA0Ljc5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNS4yMSA1LjVsMS4xNC0xLjE1Wk0xNyAxNnYtNS42Yy4zNi0uMTguNy0uNCAxLS42NlYxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJoNS4wMmMuMDMuMzQuMS42OC4xOSAxSDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuOGMuMjUuNTQuNiAxLjA0IDEgMS40N1YxN0gxNmExIDEgMCAwIDAgMS0xWm0tMTEtLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkRpc21pc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuRGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgOS45N3YxMC4yOGMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMTNjLS4wOSAwLS4xNyAwLS4yNi0uMDJWMTEuOEE2LjQ3IDYuNDcgMCAwIDAgMjIgOS45N1pNMTAuMDIgNmE2LjYzIDYuNjMgMCAwIDAgMS4yMiA0LjMydjExLjY2TDExIDIySDMuNzVDMi43OCAyMiAyIDIxLjIgMiAyMC4yNVY3Ljc1QzIgNi43OCAyLjc4IDYgMy43NSA2aDYuMjdabS0uNzggMTEuNWgtMS42YS43NS43NSAwIDAgMCAwIDEuNUg5LjM0YS43NS43NSAwIDAgMCAwLTEuNWgtLjFabTcgMGgtMS42YS43NS43NSAwIDAgMCAwIDEuNUgxNi4zNGEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWk0xNi41IDFhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTIuNCAyLjk3LS4wOC4wNS0uMDUuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDUuMDdMMTUuOCA2LjVsLTEuNzYgMS43Ny0uMDYuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDYuMDYuMDcuMDZjLjE3LjEyLjQuMTIuNTYgMGwuMDctLjA2IDEuNzctMS43NiAxLjc3IDEuNzcuMDcuMDVjLjE3LjEyLjQuMTIuNTcgMGwuMDctLjA1LjA1LS4wN2EuNS41IDAgMCAwIDAtLjU3bC0uMDUtLjA3TDE3LjIgNi41bDEuNzctMS43Ny4wNi0uMDdhLjUuNSAwIDAgMCAwLS41N2wtLjA2LS4wNy0uMDctLjA1YS41LjUgMCAwIDAtLjU3IDBsLS4wNy4wNUwxNi41IDUuOGwtMS43Ny0xLjc3LS4wNy0uMDVhLjUuNSAwIDAgMC0uNS0uMDVsLS4wNy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5EaXNtaXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5EaXNtaXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAgNi41YzAgLjM0LjAzLjY4LjA4IDFIMy43NWEuMjUuMjUgMCAwIDAtLjI1LjI1djEyLjVjMCAuMTMuMTEuMjUuMjUuMjVoNy41VjEwLjMzYy40MS41Ny45MiAxLjA3IDEuNSAxLjQ4djguNjloNy41Yy4xMyAwIC4yNS0uMTEuMjUtLjI1di04LjYyQTYuNTMgNi41MyAwIDAgMCAyMiA5Ljk3djEwLjI4YzAgLjk3LS43OSAxLjc1LTEuNzUgMS43NUgzLjc1QzIuNzggMjIgMiAyMS4yIDIgMjAuMjVWNy43NUMyIDYuNzggMi43OCA2IDMuNzUgNmg2LjI3bC0uMDIuNVptNi4yNCAxMWEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWgxLjZabS03IDBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtMS42YS43NS43NSAwIDAgMS0uMS0xLjVoMS42Wk0xNi41IDFhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTEuODQgMi45N2EuNS41IDAgMCAwLS41NyAwbC0uMDcuMDUtLjA1LjA3YS41LjUgMCAwIDAgMCAuNTdsLjA1LjA3TDE1LjggNi41bC0xLjc2IDEuNzctLjA2LjA3YS41LjUgMCAwIDAgMCAuNTdsLjA2LjA2LjA3LjA2Yy4xNy4xMi40LjEyLjU2IDBsLjA3LS4wNiAxLjc3LTEuNzYgMS43NyAxLjc3LjA3LjA1Yy4xNy4xMi40LjEyLjU3IDBsLjA3LS4wNS4wNS0uMDdhLjUuNSAwIDAgMCAwLS41N2wtLjA1LS4wN0wxNy4yIDYuNWwxLjc3LTEuNzcuMDYtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNi0uMDctLjA3LS4wNWEuNS41IDAgMCAwLS41NyAwbC0uMDcuMDVMMTYuNSA1LjhsLTEuNzctMS43Ny0uMDctLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkdyb3VwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkdyb3VwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDE2SDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC01LjV2MTJabS0xLTEySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuR3JvdXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkdyb3VwMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRaTTMgNmExIDEgMCAwIDEgMS0xaDUuNXYxMEg0YTEgMSAwIDAgMS0xLTFWNlptNy41IDlWNUgxNmExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkdyb3VwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkdyb3VwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMC4yNSA0QzIxLjIyIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTcuMjRjLS4xIDAtLjE4IDAtLjI2LS4wMlY0LjAybC4yNi0uMDJoNy4yNFptLTkuMjQgMGMuMDggMCAuMTYgMCAuMjQuMDJ2MTUuOTZsLS4yNC4wMkgzLjc2QzIuNzkgMjAgMiAxOS4yIDIgMTguMjVWNS43NUMyIDQuOCAyLjc5IDQgMy43NiA0SDExWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkdyb3VwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Hcm91cDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc2IDRoNy41QzIxLjIxIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMy43NWMtLjk2IDAtMS43NC0uNzktMS43NC0xLjc1VjUuNzVDMiA0LjggMi43OSA0IDMuNzYgNGg5Wm03LjUgMS41aC03LjV2MTNoNy41Yy4xMyAwIC4yNC0uMTEuMjQtLjI1VjUuNzVhLjI1LjI1IDAgMCAwLS4yNS0uMjVabS05IDBoLTcuNWEuMjUuMjUgMCAwIDAtLjI1LjI1djEyLjVjMCAuMTQuMTEuMjUuMjUuMjVoNy41di0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5IZWFkZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuSGVhZGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiAxNmgtNS41VjhIMTh2NmEyIDIgMCAwIDEtMiAyWm0yLTlWNmEyIDIgMCAwIDAtMi0yaC01LjV2M0gxOFpNOS41IDdWNEg0YTIgMiAwIDAgMC0yIDJ2MWg3LjVaTTIgOHY2YzAgMS4xLjkgMiAyIDJoNS41VjhIMlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5IZWFkZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkhlYWRlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNmMwLTEuMS45LTIgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2Wm03LjUgOVY3SDN2N2ExIDEgMCAwIDAgMSAxaDUuNVptMS04djhIMTZhMSAxIDAgMCAwIDEtMVY3aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuSGVhZGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkhlYWRlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgOHYxMC4yNWMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMTNjLS4wOSAwLS4xNyAwLS4yNi0uMDJWOEgyMlpNMTEuMjQgOHYxMS45OEwxMSAyMEgzLjc1QzIuNzggMjAgMiAxOS4yIDIgMTguMjVWOGg5LjI0Wk0xMSA0Yy4wOCAwIC4xNiAwIC4yNC4wMlY3SDJWNS43NUMyIDQuOCAyLjc4IDQgMy43NSA0SDExWm05LjI1IDBDMjEuMiA0IDIyIDQuOCAyMiA1Ljc1VjdoLTkuMjZWNC4wMkwxMyA0aDcuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuSGVhZGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5IZWFkZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi43NSA0aDcuNUMyMS4yIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMy43NUMyLjc4IDIwIDIgMTkuMiAyIDE4LjI1VjUuNzVDMiA0LjggMi43OCA0IDMuNzUgNGg5Wm03Ljc1IDNoLTcuNzV2MTEuNWg3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjVWN1ptLTkuMjUgMEgzLjV2MTEuMjVjMCAuMTQuMTEuMjUuMjUuMjVoNy41VjdaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuTG9jazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Mb2NrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC41IDN2MUgxNGExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDAtMS0xaC0uNVYzYTIgMiAwIDEgMC00IDBabTEgMVYzYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpNMTIgOVY2aC0xLjV2MTJIMTZhMiAyIDAgMCAwIDItMnYtNWgtNGEyIDIgMCAwIDEtMi0yWk00IDZhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjZINFptMiA5LjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYgMGMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5Mb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5Mb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNSAzdjFIMTRhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMWgtLjVWM2EyIDIgMCAxIDAtNCAwWm0xIDFWM2ExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaTTQgNmg4djFoLTEuNXYxMEgxNmExIDEgMCAwIDAgMS0xdi01aDF2NWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YzAtMS4xLjktMiAyLTJabTIgOS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVptLTMtOEg0YTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY3WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkxvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuTG9jazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcgNWgtLjVBMS41IDEuNSAwIDAgMCAxNSA2LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVIMjJWNGEyLjUgMi41IDAgMCAwLTUgMHYxWm0xLjUtMWExIDEgMCAxIDEgMiAwdjFoLTJWNFptMiA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNMTMgNmgxLjA1Yy0uMDMuMTYtLjA1LjMzLS4wNS41djVhMi41IDIuNSAwIDAgMCAyLjUgMi41SDIydjYuMjVjMCAuOTYtLjc5IDEuNzUtMS43NSAxLjc1SDEzYy0uMDkgMC0uMTcgMC0uMjYtLjAyVjYuMDJMMTMgNlptMy4yNCAxMS41aC0xLjZhLjc1Ljc1IDAgMCAwIDAgMS41SDE2LjM0YS43NS43NSAwIDAgMCAwLTEuNWgtLjFaTTExIDZjLjA4IDAgLjE2IDAgLjI0LjAydjE1Ljk2TDExIDIySDMuNzVDMi43OCAyMiAyIDIxLjIgMiAyMC4yNVY3Ljc1QzIgNi43OCAyLjc4IDYgMy43NSA2SDExWk05LjI0IDE3LjVoLTEuNmEuNzUuNzUgMCAwIDAgMCAxLjVIOS4zNGEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbkxvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlbkxvY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNyA1VjRhMi41IDIuNSAwIDAgMSA1IDB2MWguNWMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNmExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTVBMS41IDEuNSAwIDAgMSAxNi41IDVoLjVabTEuNS0xdjFoMlY0YTEgMSAwIDEgMC0yIDBabTIgNC45YTEgMSAwIDEgMCAwIC4yLjk4Ljk4IDAgMCAwIDAtLjJaTTcuNzQgMTcuNWgxLjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtMS42YS43NS43NSAwIDAgMS0uMS0xLjVoLjFabTUtMTEuNWgxLjNjLS4wMi4xNi0uMDQuMzMtLjA0LjV2MWgtMS4yNXYxM2g3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjVWMTRIMjJ2Ni4yNWMwIC45Ni0uNzkgMS43NS0xLjc1IDEuNzVIMy43NUMyLjc4IDIyIDIgMjEuMiAyIDIwLjI1VjcuNzVDMiA2Ljc4IDIuNzggNiAzLjc1IDZoOVptLTEuNSAxLjVIMy43NmEuMjUuMjUgMCAwIDAtLjI1LjI1djEyLjVjMCAuMTMuMTEuMjUuMjUuMjVoNy41di0xM1ptMy41IDEwaDEuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWguMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5NaXJyb3IyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuTWlycm9yMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDE2SDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC01LjV2MTJabS0xLTEySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjRaTTUuNzUgOGMuMTggMCAuMzQuMS40My4yNWwxLjc1IDNhLjUuNSAwIDAgMS0uNDMuNzVINGEuNS41IDAgMCAxLS40My0uNzVsMS43NS0zQS41LjUgMCAwIDEgNS43NSA4Wm04LjkzLjI1IDEuNzUgM0EuNS41IDAgMCAxIDE2IDEyaC0zLjVhLjUuNSAwIDAgMS0uNDMtLjc1bDEuNzUtM2EuNS41IDAgMCAxIC44NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbk1pcnJvcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuTWlycm9yMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRaTTMgNmExIDEgMCAwIDEgMS0xaDUuNXYxMEg0YTEgMSAwIDAgMS0xLTFWNlptNy41IDlWNUgxNmExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtNS41Wk02LjI1IDhjLjE4IDAgLjM0LjEuNDMuMjVsMS43NSAzQS41LjUgMCAwIDEgOCAxMkg0LjVhLjUuNSAwIDAgMS0uNDMtLjc1bDEuNzUtM0EuNS41IDAgMCAxIDYuMjUgOFptLjg4IDMtLjg4LTEuNS0uODggMS41aDEuNzZabTcuMDUtMi43NSAxLjc1IDNhLjUuNSAwIDAgMS0uNDMuNzVIMTJhLjUuNSAwIDAgMS0uNDMtLjc1bDEuNzUtM2EuNS41IDAgMCAxIC44NiAwWm0uNDUgMi43NS0uODgtMS41LS44OCAxLjVoMS43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5NaXJyb3IyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuTWlycm9yMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMC4yNSA0QzIxLjIyIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTcuMjRjLS4xIDAtLjE4IDAtLjI2LS4wMlY0LjAybC4yNi0uMDJoNy4yNFptLTIuMDggNS40MmEuNzUuNzUgMCAwIDAtMS4zNCAwbC0yLjI1IDQuNWEuNzUuNzUgMCAwIDAgLjY3IDEuMDhoNC41YS43NS43NSAwIDAgMCAuNjctMS4wOGwtMi4yNS00LjVaTTExLjAxIDRjLjA4IDAgLjE2IDAgLjI0LjAydjE1Ljk2bC0uMjQuMDJIMy43NkMyLjc5IDIwIDIgMTkuMiAyIDE4LjI1VjUuNzVDMiA0LjggMi43OSA0IDMuNzYgNEgxMVpNNy4xNyA5LjQyYS43NS43NSAwIDAgMC0xLjM0IDBsLTIuMjUgNC41QS43NS43NSAwIDAgMCA0LjI1IDE1aDQuNWEuNzUuNzUgMCAwIDAgLjY3LTEuMDhsLTIuMjUtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlbk1pcnJvcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuTWlycm9yMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuMTcgOS40MmEuNzUuNzUgMCAwIDAtMS4zNCAwbC0yLjI1IDQuNWEuNzUuNzUgMCAwIDAgLjY3IDEuMDhoNC41YS43NS43NSAwIDAgMCAuNjctMS4wOGwtMi4yNS00LjVabS0xLjcgNC4wOCAxLjAzLTIuMDcgMS4wNCAyLjA3aC0yLjA4Wk03LjUgOWMuMjggMCAuNTQuMTYuNjcuNDJsMi4yNSA0LjVBLjc1Ljc1IDAgMCAxIDkuNzUgMTVoLTQuNWEuNzUuNzUgMCAwIDEtLjY3LTEuMDhsMi4yNS00LjVBLjc1Ljc1IDAgMCAxIDcuNSA5Wm0wIDIuNDNMNi40NiAxMy41aDIuMDhMNy41IDExLjQzWk0xMi43NiA0aDcuNUMyMS4yMSA0IDIyIDQuOCAyMiA1Ljc1djEyLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDMuNzVjLS45NiAwLTEuNzQtLjc5LTEuNzQtMS43NVY1Ljc1QzIgNC44IDIuNzkgNCAzLjc2IDRoOVptNy41IDEuNWgtNy41djEzaDcuNWMuMTMgMCAuMjQtLjExLjI0LS4yNVY1Ljc1YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wm0tOSAwaC03LjVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxMi41YzAgLjE0LjExLjI1LjI1LjI1aDcuNXYtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuUGFnaW5hdGlvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5QYWdpbmF0aW9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiAxNmgtNS41VjRIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJaTTQgNGg1LjV2MTJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptOC41IDEwYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0yLjUtLjVhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabTEuNS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblBhZ2luYXRpb24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblBhZ2luYXRpb24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDZjMC0xLjEuOS0yIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNlptMi0xYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDUuNVY1SDRabTEyIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC01LjV2MTBIMTZabS00LjUtMWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMi41LS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0xLjUuNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5QYWdpbmF0aW9uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblBhZ2luYXRpb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwLjI1IDRDMjEuMiA0IDIyIDQuOCAyMiA1Ljc1djEyLjVjMCAuOTctLjc5IDEuNzUtMS43NSAxLjc1SDEzYy0uMDkgMC0uMTcgMC0uMjYtLjAyVjQuMDJMMTMgNGg3LjI1Wk0xMSA0Yy4wOCAwIC4xNiAwIC4yNC4wMnYxNS45NkwxMSAyMEgzLjc1QzIuNzggMjAgMiAxOS4yIDIgMTguMjVWNS43NUMyIDQuOCAyLjc4IDQgMy43NSA0SDExWm02LjYzIDEyLjVhLjc1Ljc1IDAgMSAwIDAgMS41Ljc1Ljc1IDAgMCAwIDAtMS41Wm0yLjUgMGEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVabS01IDBhLjc1Ljc1IDAgMSAwIDAgMS41Ljc1Ljc1IDAgMCAwIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblBhZ2luYXRpb24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblBhZ2luYXRpb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi43NSA0aDcuNUMyMS4yIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMy43NUMyLjc4IDIwIDIgMTkuMiAyIDE4LjI1VjUuNzVDMiA0LjggMi43OCA0IDMuNzUgNGg5Wm03LjUgMS41aC03LjV2MTNoNy41Yy4xMyAwIC4yNS0uMTEuMjUtLjI1VjUuNzVhLjI1LjI1IDAgMCAwLS4yNS0uMjVabS05IDBoLTcuNWEuMjUuMjUgMCAwIDAtLjI1LjI1djEyLjVjMCAuMTQuMTEuMjUuMjUuMjVoNy41di0xM1ptNS4zOCAxMGEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVabTIuNSAwYS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVptLTUgMGEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU2V0dGluZ3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyLjA3IDIuNDRhMiAyIDAgMCAxLTEuNDQgMi40OGwtLjQ2LjEyYTQuNzMgNC43MyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDEyIDguNjVsLS4xMy40M2MuMjYuMi41NC4zNy44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAybC0uMzUtLjA4QTIgMiAwIDAgMSAxNyAyLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVaTTE0LjUgNi41YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptMCA0LjVjMS4zMyAwIDIuNTUtLjQ3IDMuNS0xLjI2VjE2YTIgMiAwIDAgMS0yIDJoLTUuNVY5LjI3YTUuNDggNS40OCAwIDAgMCA0IDEuNzNabS01LTMuMkE1LjQ3IDUuNDcgMCAwIDEgOS4wMiA2SDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjcuOFpNNiAxNS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMSAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TZXR0aW5nczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU2V0dGluZ3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMi4wNyAyLjQ0YTIgMiAwIDAgMS0xLjQ0IDIuNDhsLS40Ni4xMmE0LjczIDQuNzMgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiA4LjY1bC0uMTMuNDNjLjI2LjIuNTQuMzcuODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNzMgNC43MyAwIDAgMC0uMDEtMS4wMmwtLjM1LS4wOEEyIDIgMCAwIDEgMTcgMi4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wk0xNC41IDYuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaTTE3IDE2di01LjZjLjM2LS4xOC43LS40IDEtLjY2VjE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhjMC0xLjEuOS0yIDItMmg1LjAyYy4wMy4zNC4xLjY4LjE5IDFINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjVWNy44Yy4yNS41NC42IDEuMDQgMSAxLjQ3VjE3SDE2YTEgMSAwIDAgMCAxLTFabS0xMS0uNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNi41LS41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDEgMCAwLTFoLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU2V0dGluZ3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU2V0dGluZ3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjI3IDIuOThhMiAyIDAgMCAxLTEuNDQgMi41bC0uNTguMTRhNS43MyA1LjczIDAgMCAwIDAgMS44bC41NC4xM2EyIDIgMCAwIDEgMS40NSAyLjUxbC0uMTguNjRjLjQ0LjM4Ljk0LjcgMS40OC45MmwuNS0uNTJhMiAyIDAgMCAxIDIuOSAwbC41LjUyYTUuMjggNS4yOCAwIDAgMCAxLjQ4LS45bC0uMi0uN2EyIDIgMCAwIDEgMS40NC0yLjVsLjU5LS4xNGE1LjczIDUuNzMgMCAwIDAtLjAxLTEuOGwtLjU0LS4xM2EyIDIgMCAwIDEtMS40NS0yLjUxbC4xOS0uNjNjLS40NC0uMzktLjk0LS43LTEuNDktLjkzbC0uNS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjUzLjIyLTEuMDMuNTMtMS40Ny45MWwuMi42OVpNMTYuNSA4Yy0uOCAwLTEuNDUtLjY3LTEuNDUtMS41UzE1LjcgNSAxNi41IDVjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE3LjMgOCAxNi41IDhabTAgNUE2LjUgNi41IDAgMCAwIDIyIDkuOTZ2MTAuMjljMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDEzYy0uMDkgMC0uMTcgMC0uMjYtLjAyVjExLjgxQTYuNDcgNi40NyAwIDAgMCAxNi41IDEzWm0tLjI2IDQuNWgtMS42YS43NS43NSAwIDAgMCAwIDEuNUgxNi4zNGEuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWk0xMCA2LjUgMTAgNkgzLjc1QzIuNzggNiAyIDYuNzggMiA3Ljc1djEyLjVDMiAyMS4yIDIuNzggMjIgMy43NSAyMkgxMWMuMDggMCAuMTYgMCAuMjUtLjAyVjEwLjMzQTYuNDcgNi40NyAwIDAgMSAxMCA2LjVabS0uNzYgMTFoLjFhLjc1Ljc1IDAgMCAxIDAgMS41SDcuNjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TZXR0aW5nczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU2V0dGluZ3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy4yOCAyLjk4YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAuMDEgMS44bC41NC4xM2EyIDIgMCAwIDEgMS40NSAyLjUxbC0uMTkuNjRjLjQ0LjM4Ljk0LjcgMS40OS45MmwuNS0uNTJhMiAyIDAgMCAxIDIuOSAwbC41LjUyYTUuMjggNS4yOCAwIDAgMCAxLjQ3LS45bC0uMi0uN2EyIDIgMCAwIDEgMS40NS0yLjVsLjU4LS4xNGE1LjcyIDUuNzIgMCAwIDAgMC0xLjhsLS41NC0uMTNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMTgtLjYzYy0uNDQtLjM5LS45NC0uNy0xLjQ4LS45M2wtLjUuNTJhMiAyIDAgMCAxLTIuOSAwbC0uNS0uNTJjLS41NC4yMi0xLjA0LjUzLTEuNDguOTFsLjIuNjlaTTE2LjUgOGMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNS43IDUgMTYuNSA1Yy44IDAgMS40NS42NyAxLjQ1IDEuNVMxNy4zIDggMTYuNSA4Wk0xMCA2LjVjMC0uMTcgMC0uMzMuMDItLjVIMy43NUMyLjc4IDYgMiA2Ljc4IDIgNy43NXYxMi41QzIgMjEuMiAyLjc4IDIyIDMuNzUgMjJoMTYuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWOS45N2MtLjQuNjQtLjkxIDEuMi0xLjUgMS42NnY4LjYyYzAgLjE0LS4xMS4yNS0uMjUuMjVoLTcuNXYtOC43Yy0uNTgtLjQtMS4wOC0uOS0xLjUtMS40N1YyMC41aC03LjVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWNy43NWMwLS4xNC4xMS0uMjUuMjUtLjI1aDYuMzNhNi41NCA2LjU0IDAgMCAxLS4wOC0xWm03IDExLjc1YS43NS43NSAwIDAgMC0uNzYtLjc1aC0xLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgxLjZhLjc1Ljc1IDAgMCAwIC42NS0uNzVabS03IDBhLjc1Ljc1IDAgMCAwLS43Ni0uNzVoLTEuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDEuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGFuMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblNwYW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2IDE2aC01LjV2LTUuNWgzLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTVIMTAuNVY0SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWk05LjUgOS41VjRINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg1LjV2LTUuNUg1LjdsMS4xNSAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMi0yYS41LjUgMCAwIDEgMC0uN2wyLTJhLjUuNSAwIDEgMSAuNy43TDUuNzEgOS41SDkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGFuMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5TcGFuMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjV2LTMuNWgxVjE1SDE2YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC01LjV2My41aC0xVjVINFptMi44NSAzLjM1YS41LjUgMCAxIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMNS43MSAxMC41aDguNThsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTVINS43MWwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU3BhbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5TcGFuMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiA1Ljc1QzIyIDQuOCAyMS4yMiA0IDIwLjI1IDRoLTcuMjRsLS4yNi4wMnY3LjIzaDQuODNsLS44OS0xYS43NS43NSAwIDEgMSAxLjEyLTFsMiAyLjI1Yy4yNS4yOS4yNS43MSAwIDFsLTIgMi4yNWEuNzUuNzUgMCAxIDEtMS4xMi0xbC45LTFoLTQuODR2Ny4yM2wuMjYuMDJoNy4yNGMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNS43NVptLTEwLjc1IDUuNUg2LjQybC45LTFhLjc1Ljc1IDAgMSAwLTEuMTMtMWwtMiAyLjI1YS43NS43NSAwIDAgMCAwIDFsMiAyLjI1YS43NS43NSAwIDEgMCAxLjEyLTFsLS44OS0xaDQuODN2Ny4yM2wtLjI0LjAySDMuNzZDMi43OSAyMCAyIDE5LjIgMiAxOC4yNVY1Ljc1QzIgNC44IDIuNzkgNCAzLjc2IDRIMTFjLjA4IDAgLjE2IDAgLjI0LjAydjcuMjNaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU3BhbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3BhbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguMzEgMTAuMjVhLjc1Ljc1IDAgMSAwLTEuMTItMWwtMiAyLjI1YS43NS43NSAwIDAgMCAwIDFsMiAyLjI1YS43NS43NSAwIDEgMCAxLjEyLTFsLS44OS0xaDkuMTZsLS44OSAxYS43NS43NSAwIDEgMCAxLjEyIDFsMi0yLjI1LjAxLS4wMWEuNzUuNzUgMCAwIDAtLjAxLS45OWwtMi0yLjI1YS43NS43NSAwIDEgMC0xLjEyIDFsLjkgMUg3LjQxbC45LTFaTTEyLjc2IDRoNy41QzIxLjIxIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMy43NWMtLjk2IDAtMS43NC0uNzktMS43NC0xLjc1VjUuNzVDMiA0LjggMi43OSA0IDMuNzYgNGg5Wm03LjUgMS41aC03LjV2NWgtMS41di01aC03LjVhLjI1LjI1IDAgMCAwLS4yNS4yNXYxMi41YzAgLjE0LjExLjI1LjI1LjI1aDcuNXYtNWgxLjV2NWg3LjVjLjEzIDAgLjI0LS4xMS4yNC0uMjVWNS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGVha2VyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblNwZWFrZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3LjY1IDIuMmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAxIDEgLjgtLjZabS0zLjk2LS4xNmMuMTkuMDguMzEuMjYuMzEuNDZ2NmEuNS41IDAgMCAxLS44NS4zNUwxMS4yOSA3aC0uNzlhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41aC44bDEuODUtMS44NWEuNS41IDAgMCAxIC41NC0uMTFabTIuNTMgMS45M2MtLjEtLjMtLjItLjU1LS4yNy0uN2EuNS41IDAgMSAwLS45LjQ1IDQuNTkgNC41OSAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDQgNS41IDUuNSAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI4LTEuNTNabS4xMyA1LjczYTEuNSAxLjUgMCAwIDEtLjUzLS43NCAxLjUgMS41IDAgMCAxLS44Ny0uMDcgMS41IDEuNSAwIDAgMS0yLjUxLjY3TDEwLjg4IDhoLS4zOHY4SDE2YTIgMiAwIDAgMCAyLTJWOS44Yy0uNS4yOS0xLjE1LjI3LTEuNjUtLjFaTTkuNSAxNlY3LjYyQTEuNSAxLjUgMCAwIDEgOSA2LjV2LTJjMC0uMTguMDMtLjM0LjA5LS41SDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41Wk02IDEzLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTYuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblNwZWFrZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblNwZWFrZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy42NSAyLjJjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMSAxIC44LS42Wm0tMy45Ni0uMTZjLjE5LjA4LjMxLjI2LjMxLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgN2gtLjc5YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNWguOGwxLjg1LTEuODVhLjUuNSAwIDAgMSAuNTQtLjExWm0yLjUzIDEuOTNjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjU5IDQuNTkgMCAwIDEgLjQ1IDEuNzggMy45NCAzLjk0IDAgMCAxLS4zNyAxLjZsLS4wOC4xOGEuNS41IDAgMSAwIC45LjQ0IDUuNSA1LjUgMCAwIDAgLjU1LTIuMjJjMC0uNS0uMS0xLjAyLS4yOC0xLjUzWk0xNyAxNFY5Ljk4Yy4zNC4wNi43IDAgMS0uMThWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDUuMDlhMS41IDEuNSAwIDAgMC0uMDkuNVY1SDRhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNS41VjcuNjJjLjI3LjI0LjYyLjM4IDEgLjM4djdIMTZhMSAxIDAgMCAwIDEtMVptLTExLS41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm02LjUtLjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TcGVha2VyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblNwZWFrZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIyLjE0IDMuM2E0LjUzIDQuNTMgMCAwIDAtLjktMS4xMy43NS43NSAwIDAgMC0uOTcgMS4xNmMuMTMuMS4zNS4zNS41OS43NC40LjY3LjY0IDEuNDguNjQgMi40MyAwIC45NS0uMjQgMS43Ni0uNjQgMi40My0uMjQuMzktLjQ2LjY0LS41OS43NGEuNzUuNzUgMCAwIDAgLjk2IDEuMTZjLjI1LS4yMS41OS0uNTguOTEtMS4xMy41NC0uOS44Ni0xLjk2Ljg2LTMuMiAwLTEuMjQtLjMyLTIuMy0uODYtMy4yWlwiLCBcIk0xOS44NyA0LjRjLS4yMy0uMzYtLjQ4LS42LS42Ny0uNzVhLjc1Ljc1IDAgMCAwLS45IDEuMkEyLjI0IDIuMjQgMCAwIDEgMTkgNi41YTIuMjQgMi4yNCAwIDAgMS0uNyAxLjY1bC0uMDguMDdhLjc1Ljc1IDAgMCAwIC45OCAxLjEzIDMuNzMgMy43MyAwIDAgMCAxLjMtMi44NWMwLS44MS0uMjMtMS41Mi0uNjMtMi4xWlwiLCBcIk0xNyAzLjc1YS43NS43NSAwIDAgMC0xLjMxLS41TDE0LjE2IDVoLTEuNGEuNzUuNzUgMCAwIDAtLjc2Ljc1djEuNWMwIC40MS4zNC43NS43NS43NWgxLjQxbDEuNTMgMS43NEEuNzUuNzUgMCAwIDAgMTcgOS4yNXYtNS41WlwiLCBcIk0xMSA1YTEgMSAwIDAgMSAuMjUtLjY2di0uMzJhMS43NiAxLjc2IDAgMCAwLS4yNC0uMDJIMy43NkMyLjc5IDQgMiA0Ljc4IDIgNS43NXYxMi41QzIgMTkuMiAyLjc5IDIwIDMuNzYgMjBIMTFsLjI0LS4wMlY4LjY2QTEgMSAwIDAgMSAxMSA4VjVaTTkuMjUgMTUuNWguMWEuNzUuNzUgMCAwIDEgMCAxLjVINy42NWEuNzUuNzUgMCAwIDEgMC0xLjVoMS42WlwiLCBcIk0xMy41MyA5aC0uNzh2MTAuOThsLjI2LjAyaDcuMjRjLjk3IDAgMS43NS0uNzkgMS43NS0xLjc1di02Ljc3YTEuNzUgMS43NSAwIDAgMS0yLjk5LTFjLS40Mi4wNy0uODctLjAzLTEuMjMtLjI3YTEuNzYgMS43NiAwIDAgMS0yLjguMzNMMTMuNTIgOVptMi43MiA2LjVoLjFhLjc1Ljc1IDAgMCAxIDAgMS41SDE0LjY1YS43NS43NSAwIDAgMSAwLTEuNWgxLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuU3BlYWtlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3BlYWtlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIyLjE0IDMuM2E0LjUzIDQuNTMgMCAwIDAtLjktMS4xMy43NS43NSAwIDAgMC0uOTcgMS4xNmMuMTMuMS4zNS4zNS41OS43NC40LjY3LjY0IDEuNDguNjQgMi40MyAwIC45NS0uMjQgMS43Ni0uNjQgMi40My0uMjQuMzktLjQ2LjY0LS41OS43NGEuNzUuNzUgMCAwIDAgLjk2IDEuMTZjLjI1LS4yMS41OS0uNTguOTEtMS4xMy41NC0uOS44Ni0xLjk2Ljg2LTMuMiAwLTEuMjQtLjMyLTIuMy0uODYtMy4yWlwiLCBcIk0xOS44NyA0LjRjLS4yMy0uMzYtLjQ4LS42LS42Ny0uNzVhLjc1Ljc1IDAgMCAwLS45IDEuMkEyLjI0IDIuMjQgMCAwIDEgMTkgNi41YTIuMjQgMi4yNCAwIDAgMS0uNyAxLjY1bC0uMDguMDdhLjc1Ljc1IDAgMCAwIC45OCAxLjEzIDMuNzMgMy43MyAwIDAgMCAxLjMtMi44NWMwLS44MS0uMjMtMS41Mi0uNjMtMi4xWlwiLCBcIk0xNyAzLjc1YS43NS43NSAwIDAgMC0xLjMxLS41TDE0LjE2IDVoLTEuNGEuNzUuNzUgMCAwIDAtLjc2Ljc1djEuNWMwIC40MS4zNC43NS43NS43NWgxLjQxbDEuNTMgMS43NEEuNzUuNzUgMCAwIDAgMTcgOS4yNXYtNS41WlwiLCBcIk0xMS45NSA0aC04LjJjLS45NiAwLTEuNzQuNzgtMS43NCAxLjc1djEyLjVDMiAxOS4yIDIuNzkgMjAgMy43NiAyMGgxNi41Yy45NiAwIDEuNzQtLjc5IDEuNzQtMS43NXYtNi43N2ExLjc1IDEuNzUgMCAwIDEtMS41LjV2Ni4yN2MwIC4xNC0uMS4yNS0uMjUuMjVoLTcuNVY5SDEyYTEgMSAwIDAgMS0uNzQtLjMzdjkuODNoLTcuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNVY1Ljc1YzAtLjE0LjExLS4yNS4yNS0uMjVIMTFWNWExIDEgMCAwIDEgLjk1LTFaXCIsIFwiTTE2LjI1IDE1LjVoLTEuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDEuNmEuNzUuNzUgMCAwIDAtLjEtMS41WlwiLCBcIk03Ljc1IDE1LjVoMS41YS43NS43NSAwIDAgMSAuMSAxLjVoLTEuNmEuNzUuNzUgMCAwIDEtLjEtMS41aC4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblN0YXR1c0JhcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5TdGF0dXNCYXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2IDE2aC01LjVWNEgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMlpNNCA0aDUuNXYxMkg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yWm04LjUgMmEuNS41IDAgMCAwIDAgMUgxNmEuNS41IDAgMCAwIDAtMWgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblN0YXR1c0JhcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3RhdHVzQmFyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjVWNUg0Wm0xMiAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtNS41djEwSDE2Wm0tNC05YS41LjUgMCAwIDAgMCAxaDMuNWEuNS41IDAgMCAwIDAtMUgxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TdGF0dXNCYXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuU3RhdHVzQmFyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMC4yNSA0QzIxLjIgNCAyMiA0LjggMjIgNS43NXYxMi41YzAgLjk3LS43OSAxLjc1LTEuNzUgMS43NUgxM2MtLjA5IDAtLjE3IDAtLjI2LS4wMlY0LjAyTDEzIDRoNy4yNVpNMTEgNGMuMDggMCAuMTYgMCAuMjQuMDJ2MTUuOTZMMTEgMjBIMy43NUMyLjc4IDIwIDIgMTkuMiAyIDE4LjI1VjUuNzVDMiA0LjggMi43OCA0IDMuNzUgNEgxMVptOC43NSAyLjVoLTQuNWEuNzUuNzUgMCAwIDAtLjEgMS41aDQuNmEuNzUuNzUgMCAwIDAgLjEtMS41aC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5TdGF0dXNCYXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblN0YXR1c0JhcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc1IDRoNy41QzIxLjIgNCAyMiA0LjggMjIgNS43NXYxMi41YzAgLjk3LS43OSAxLjc1LTEuNzUgMS43NUgzLjc1QzIuNzggMjAgMiAxOS4yIDIgMTguMjVWNS43NUMyIDQuOCAyLjc4IDQgMy43NSA0aDlabTcuNSAxLjVoLTcuNXYxM2g3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjVWNS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptLTkgMGgtNy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2MTIuNWMwIC4xNC4xMS4yNS4yNS4yNWg3LjV2LTEzWm03LjUgMWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblRhYmxldDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5UYWJsZXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAyaC0zdi0yaC41YS41LjUgMCAwIDAgMC0xSDEzVjlhMyAzIDAgMCAwLTMtM0g0VjVabTYgMTJINy41VjdIMTBhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJaTTQgN2gyLjV2MTBINGEyIDIgMCAwIDEtMi0yVjljMC0xLjEuOS0yIDItMlptNS41IDdhLjUuNSAwIDAgMCAwIDFoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0tNiAuNWMwIC4yOC4yMi41LjUuNWguNWEuNS41IDAgMCAwIDAtMUg0YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5UYWJsZXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblRhYmxldDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAyaC0zdi0xaDNhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjFINFY1Wm05IDZoLjVhLjUuNSAwIDAgMCAwLTFIMTN2MVpNMiA5YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOVptMi0xYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNVY4SDRabTYgOGExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAwLTEtMUg3LjV2OEgxMFptLTEtMmEuNS41IDAgMCAwIDAgMWguNWEuNS41IDAgMCAwIDAtMUg5Wm0tNSAuNWMwLS4yOC4yMi0uNS41LS41SDVhLjUuNSAwIDAgMSAwIDFoLS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVGFibGV0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblRhYmxldDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy41IDl2MTJIMy43NWMtLjkyIDAtMS42Ny0uNy0xLjc0LTEuNkwyIDE5LjI0di04LjVjMC0uOTIuNy0xLjY3IDEuNi0xLjc0TDMuNzYgOUg3LjVabTQuNzUgMGMuOTIgMCAxLjY3LjcgMS43NCAxLjZsLjAxLjE1djguNWMwIC45Mi0uNyAxLjY3LTEuNiAxLjc0bC0uMTUuMDFIOC41VjloMy43NVptLTEuNiA4LjVoLS42YS43NS43NSAwIDAgMCAwIDEuNWguN2EuNzUuNzUgMCAwIDAtLjEtMS41Wm0tNC43NiAwaC0uNmEuNzUuNzUgMCAwIDAgMCAxLjVINmEuNzUuNzUgMCAwIDAtLjEtMS41Wk0xOS43NSAzYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djguNWMwIDEuMi0uOTMgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDE1di0yLjVoMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTV2LTEuNUEyLjUgMi41IDAgMCAwIDEyLjY2IDhINlY1LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMOC4yNSAzaDExLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVGFibGV0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5UYWJsZXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi4yNSA5Yy45MiAwIDEuNjcuNyAxLjc0IDEuNmwuMDEuMTV2OC41YzAgLjkyLS43IDEuNjctMS42IDEuNzRsLS4xNS4wMWgtOC41Yy0uOTIgMC0xLjY3LS43LTEuNzQtMS42TDIgMTkuMjR2LTguNWMwLS45Mi43LTEuNjcgMS42LTEuNzRMMy43NiA5aDguNVpNNy41IDEwLjVIMy43NWEuMjUuMjUgMCAwIDAtLjI0LjJsLS4wMS4wNXY4LjVjMCAuMTIuMDguMjIuMi4yNGwuMDUuMDFINy41di05Wm00Ljc1IDBIOC41djloMy43NWMuMTIgMCAuMjItLjA4LjI0LS4ybC4wMS0uMDV2LTguNWEuMjUuMjUgMCAwIDAtLjItLjI0bC0uMDUtLjAxWk0xMC42MiAxN2EuNzUuNzUgMCAwIDEgLjEgMS41aC0uNmEuNzUuNzUgMCAwIDEtLjEtMS41aC42Wm0tNC43NCAwYS43NS43NSAwIDAgMSAuMSAxLjVoLS42YS43NS43NSAwIDAgMS0uMS0xLjVoLjZaTTE5Ljc0IDNjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2OC41YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFIMTV2LTEuNWg0Ljc1Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi04LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVIOC4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMVY4SDZWNS4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDguMjUgM2gxMS41Wm0tMy41IDlhLjc1Ljc1IDAgMCAxIDAgMS41SDE1VjEyaDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVXBkYXRlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblVwZGF0ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYgMTZoLTUuNVY0SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyWk00IDRoNS41djEySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTEyLjg1IDcuODVhLjUuNSAwIDAgMC0uNy0uN0wxNSAxMi4yOVY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblVwZGF0ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuVXBkYXRlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA2YzAtMS4xLjktMiAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZabTItMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg1LjVWNUg0Wm0xMiAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtNS41djEwSDE2Wm0tLjE1LTMuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNCAxMi4yOVY2LjVhLjUuNSAwIDAgMC0xIDB2NS44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblVwZGF0ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5VcGRhdGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwLjI1IDRDMjEuMiA0IDIyIDQuOCAyMiA1Ljc1djEyLjVjMCAuOTctLjc5IDEuNzUtMS43NSAxLjc1SDEzYy0uMDkgMC0uMTcgMC0uMjYtLjAyVjQuMDJMMTMgNGg3LjI1Wk0xMSA0Yy4wOCAwIC4xNiAwIC4yNC4wMnYxNS45NkwxMSAyMEgzLjc1QzIuNzggMjAgMiAxOS4yIDIgMTguMjVWNS43NUMyIDQuOCAyLjc4IDQgMy43NSA0SDExWm02LjUgM2gtLjFsLS4xLjAzYS43NS43NSAwIDAgMC0uNTQuNmwtLjAxLjEydjYuN2wtLjk3LS45Ni0uMDgtLjA4YS43NS43NSAwIDAgMC0uOTguMDguNzUuNzUgMCAwIDAtLjA3Ljk3bC4wNy4wOSAyLjI1IDIuMjMuMS4xLjA4LjA0LjExLjA0LjEuMDMuMS4wMWguMDlsLjA5LS4wMS4wNi0uMDIuMS0uMDMuMDYtLjAzLjA3LS4wNC4wNi0uMDUuMDQtLjA0IDIuMjUtMi4yMy4wNy0uMDljLjItLjI2LjItLjYyLjAxLS44OGwtLjA4LS4xLS4wOC0uMDdhLjc2Ljc2IDAgMCAwLS44OSAwbC0uMS4wOC0uOTYuOTZ2LTYuOEEuNzUuNzUgMCAwIDAgMTcuNiA3aC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5VcGRhdGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblVwZGF0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc1IDRoNy41QzIxLjIgNCAyMiA0LjggMjIgNS43NXYxMi41YzAgLjk3LS43OSAxLjc1LTEuNzUgMS43NUgzLjc1QzIuNzggMjAgMiAxOS4yIDIgMTguMjVWNS43NUMyIDQuOCAyLjc4IDQgMy43NSA0aDlabTcuNSAxLjVoLTcuNXYxM2g3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjVWNS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptLTkgMGgtNy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2MTIuNWMwIC4xNC4xMS4yNS4yNS4yNWg3LjV2LTEzWk0xNi41IDdjLjM4IDAgLjcuMjguNzUuNjV2Ni44bC45Ny0uOTZhLjc1Ljc1IDAgMCAxIC45OC0uMDhsLjA4LjA4Yy4yNy4yNi4zLjY4LjA3Ljk3bC0uMDcuMDktMi4yNSAyLjIzLS4wNC4wNC0uMDYuMDUtLjA3LjA0LS4wNi4wMy0uMS4wMy0uMDYuMDItLjEuMDFoLS4wOWwtLjA5LS4wMS0uMS0uMDMtLjEtLjA0LS4wOC0uMDUtLjExLS4wOS0yLjI1LTIuMjNhLjc1Ljc1IDAgMCAxIDAtMS4wNi43NS43NSAwIDAgMSAuOTgtLjA4bC4wOC4wOC45Ny45NnYtNi43YzAtLjM1LjIzLS42NC41NS0uNzJsLjEtLjAyaC4xWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblZlcnRpY2FsU2Nyb2xsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblZlcnRpY2FsU2Nyb2xsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDE2SDE2YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC01LjV2MTJabS0xLTEySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNS41VjRabTcuMzUgNy4xNWMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjY1IDEuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWm0wLTNhLjUuNSAwIDAgMS0uNy43TDE0LjUgNy4yMWwtMS42NSAxLjY0YS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwbDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5WZXJ0aWNhbFNjcm9sbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuVmVydGljYWxTY3JvbGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINFpNMyA2YTEgMSAwIDAgMSAxLTFoNS41djEwSDRhMSAxIDAgMCAxLTEtMVY2Wm03LjUgOVY1SDE2YTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC01LjVabTUuMzUtMy44NWMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNyAwbC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjY1IDEuNjQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWm0wLTNhLjUuNSAwIDAgMS0uNy43TDEzLjUgNy4yMWwtMS42NSAxLjY0YS41LjUgMCAwIDEtLjctLjdsMi0yYy4yLS4yLjUtLjIuNyAwbDIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5WZXJ0aWNhbFNjcm9sbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5WZXJ0aWNhbFNjcm9sbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjAuMjUgNEMyMS4yIDQgMjIgNC44IDIyIDUuNzV2MTIuNWMwIC45Ny0uNzkgMS43NS0xLjc1IDEuNzVIMTNjLS4wOSAwLS4xNyAwLS4yNi0uMDJWNC4wMkwxMyA0aDcuMjVaTTExIDRjLjA4IDAgLjE2IDAgLjI0LjAydjE1Ljk2TDExIDIwSDMuNzVDMi43OCAyMCAyIDE5LjIgMiAxOC4yNVY1Ljc1QzIgNC44IDIuNzggNCAzLjc1IDRIMTFabTQuNyA5LjRhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNGwuMDcuMDkgMi4yNiAyLjMuMDguMDdjLjI3LjIuNjQuMi45IDBsLjA5LS4wOCAyLjI1LTIuMy4wNy0uMDhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNGwtLjA4LjA4LTEuNzIgMS43NS0xLjcxLTEuNzUtLjA5LS4wOFptMi4zNC02LjE3YS43NS43NSAwIDAgMC0uOTktLjA4bC0uMDguMDgtMi4yNiAyLjNhLjc1Ljc1IDAgMCAwIDEgMS4xMmwuMDgtLjA4IDEuNzEtMS43NSAxLjcyIDEuNzVhLjc1Ljc1IDAgMCAwIDEuMTQtLjk2bC0uMDctLjA5LTIuMjUtMi4zWlwiXSk7XG5leHBvcnQgY29uc3QgRHVhbFNjcmVlblZlcnRpY2FsU2Nyb2xsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5WZXJ0aWNhbFNjcm9sbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjc1IDRoNy41QzIxLjIgNCAyMiA0LjggMjIgNS43NXYxMi41YzAgLjk3LS43OSAxLjc1LTEuNzUgMS43NUgzLjc1QzIuNzggMjAgMiAxOS4yIDIgMTguMjVWNS43NUMyIDQuOCAyLjc4IDQgMy43NSA0aDlabTcuNSAxLjVoLTcuNXYxM2g3LjVjLjEzIDAgLjI1LS4xMS4yNS0uMjVWNS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptLTkgMGgtNy41YS4yNS4yNSAwIDAgMC0uMjUuMjV2MTIuNWMwIC4xNC4xMS4yNS4yNS4yNWg3LjV2LTEzWm0zLjQ1IDcuOS4wOS4wOCAxLjcxIDEuNzUgMS43Mi0xLjc1YS43NS43NSAwIDAgMSAxLjE0Ljk2bC0uMDcuMDktMi4yNSAyLjNjLS4yNy4yNi0uNy4yOS0uOTkuMDdsLS4wOC0uMDgtMi4yNi0yLjNhLjc1Ljc1IDAgMCAxIDEtMS4xMlptMi4zNC02LjE3IDIuMjUgMi4zYS43NS43NSAwIDAgMS0xLjA3IDEuMDRMMTYuNSA4LjgybC0xLjcxIDEuNzVhLjc1Ljc1IDAgMSAxLTEuMDgtMS4wNWwyLjI2LTIuM2MuMy0uMy43Ny0uMyAxLjA3IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVmlicmF0ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1YWxTY3JlZW5WaWJyYXRlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDE1SDEzYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yLjV2MTBabS0xLTEwSDdhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoMi41VjVabTIuNSA3LjVjMC0uMjguMjItLjUuNS0uNWguNWEuNS41IDAgMCAxIDAgMWgtLjVhLjUuNSAwIDAgMS0uNS0uNVpNNyAxMmguNWEuNS41IDAgMCAxIDAgMUg3YS41LjUgMCAwIDEgMC0xWk0xLjg4IDYuNTFhLjUuNSAwIDAgMSAuNi4zN2wuNDEgMS42NGMuMS4zNS4wNS43MS0uMSAxLjAzbC0uNjIgMS4yM2EuNS41IDAgMCAwIDAgLjQ0bC43OCAxLjU2YS41LjUgMCAxIDEtLjkuNDRsLS43Ny0xLjU1YTEuNSAxLjUgMCAwIDEgMC0xLjM0bC42LTEuMjJhLjUuNSAwIDAgMCAuMDQtLjM1bC0uNC0xLjY0YS41LjUgMCAwIDEgLjM2LS42Wm0xNi42LjM3YS41LjUgMCAwIDAtLjk3LjI0bC40MSAxLjY0YS41LjUgMCAwIDEtLjAzLjM1bC0uNjEgMS4yMmExLjUgMS41IDAgMCAwIDAgMS4zNGwuNzcgMS41NWEuNS41IDAgMSAwIC45LS40NGwtLjc4LTEuNTZhLjUuNSAwIDAgMSAwLS40NGwuNjEtMS4yM2MuMTYtLjMyLjItLjY4LjExLTEuMDNsLS40LTEuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVmlicmF0ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuVmlicmF0ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcgNWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDdaTTYgN2ExIDEgMCAwIDEgMS0xaDIuNXY4SDdhMSAxIDAgMCAxLTEtMVY3Wm00LjUgN1Y2SDEzYTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxaC0yLjVabTEtMS41YzAtLjI4LjIyLS41LjUtLjVoLjVhLjUuNSAwIDAgMSAwIDFIMTJhLjUuNSAwIDAgMS0uNS0uNVptLTQtLjVhLjUuNSAwIDAgMCAwIDFIOGEuNS41IDAgMCAwIDAtMWgtLjVaTTEuODggNi41MWEuNS41IDAgMCAxIC42LjM3bC40MSAxLjY0Yy4xLjM1LjA1LjcxLS4xIDEuMDNsLS42MiAxLjIzYS41LjUgMCAwIDAgMCAuNDRsLjc4IDEuNTZhLjUuNSAwIDEgMS0uOS40NGwtLjc3LTEuNTVhMS41IDEuNSAwIDAgMSAwLTEuMzRsLjYtMS4yMmEuNS41IDAgMCAwIC4wNC0uMzVsLS40LTEuNjRhLjUuNSAwIDAgMSAuMzYtLjZabTE2LjYuMzdhLjUuNSAwIDAgMC0uOTcuMjRsLjQxIDEuNjRhLjUuNSAwIDAgMS0uMDMuMzVsLS42MSAxLjIyYTEuNSAxLjUgMCAwIDAgMCAxLjM0bC43NyAxLjU1YS41LjUgMCAxIDAgLjktLjQ0bC0uNzgtMS41NmEuNS41IDAgMCAxIDAtLjQ0bC42MS0xLjIzYy4xNi0uMzIuMi0uNjguMTEtMS4wM2wtLjQtMS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1YWxTY3JlZW5WaWJyYXRlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVhbFNjcmVlblZpYnJhdGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTExLjUgNnYxM0g3LjI1Yy0uOTIgMC0xLjY3LS43LTEuNzQtMS42bC0uMDEtLjE1di05LjVjMC0uOTIuNy0xLjY3IDEuNi0xLjc1aDQuNFptNS4yNSAwYy45MiAwIDEuNjcuNyAxLjc1IDEuNnY5LjY1YzAgLjkyLS43IDEuNjctMS42IDEuNzRoLTQuNFY2aDQuMjVabS0xLjUgOS41aC0xLjFhLjc1Ljc1IDAgMCAwIDAgMS41SDE1LjM1YS43NS43NSAwIDAgMC0uMS0xLjVabS01LjUgMGgtMS4xYS43NS43NSAwIDAgMCAwIDEuNUg5Ljg1YS43NS43NSAwIDAgMC0uMS0xLjVabTExLjM3LTcuNDYuMDYuMDkuMDQuMS41OCAxLjQ1Yy4zNC44My4yNCAxLjc3LS4yNCAyLjUxbC0uMTEuMTYtLjE1LjJjLS4yMy4zMS0uMy43LS4yIDEuMDhsLjA0LjEzLjU4IDEuNDZhLjc1Ljc1IDAgMCAxLTEuMzUuNjVsLS4wNC0uMS0uNTgtMS40NWEyLjc1IDIuNzUgMCAwIDEgLjI0LTIuNTFsLjEtLjE2LjE2LS4yYy4yMy0uMzEuMy0uNzEuMi0xLjA4bC0uMDQtLjE0LS41OC0xLjQ1YS43NS43NSAwIDAgMSAxLjI5LS43NFptLTE3LjU1IDAgLjA2LjA5LjA0LjEuNTggMS40NWMuMzQuODMuMjQgMS43Ny0uMjQgMi41MWwtLjEuMTYtLjE2LjJjLS4yMy4zMS0uMy43LS4yIDEuMDhsLjA0LjEzLjU4IDEuNDZhLjc1Ljc1IDAgMCAxLTEuMzUuNjVsLS4wNC0uMS0uNTgtMS40NWEyLjc1IDIuNzUgMCAwIDEgLjI0LTIuNTFsLjExLS4xNi4xNS0uMmMuMjMtLjMxLjMtLjcxLjItMS4wOGwtLjA0LS4xNC0uNTgtMS40NWEuNzUuNzUgMCAwIDEgMS4yOS0uNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBEdWFsU2NyZWVuVmlicmF0ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdWFsU2NyZWVuVmlicmF0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE2Ljc1IDZjLjkyIDAgMS42Ny43IDEuNzUgMS42djkuNjVjMCAuOTItLjcgMS42Ny0xLjYgMS43NGwtLjE1LjAxaC05LjVjLS45MiAwLTEuNjctLjctMS43NC0xLjZsLS4wMS0uMTV2LTkuNWMwLS45Mi43LTEuNjggMS42LTEuNzVoOS42NVpNMTEuNSA3LjVINy4yNWEuMjUuMjUgMCAwIDAtLjI0LjE5TDcgNy43NXY5LjVjMCAuMTIuMDguMjIuMi4yNGwuMDUuMDFoNC4yNXYtMTBabTUuMjUgMEgxMi41djEwaDQuMjVjLjEyIDAgLjIyLS4wOC4yNC0uMmwuMDEtLjA1di05LjVhLjI1LjI1IDAgMCAwLS4yLS4yNWgtLjA1Wm0tMS41IDcuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC0xLjFhLjc1Ljc1IDAgMCAxLS4xLTEuNDloMS4xWm0tNS41IDBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtMS4xYS43NS43NSAwIDAgMS0uMS0xLjQ5aDEuMVptMTEuMzctNi45Ni4wNi4wOS4wNC4xLjU4IDEuNDVjLjM0LjgzLjI0IDEuNzctLjI0IDIuNTFsLS4xMS4xNi0uMTUuMmMtLjIzLjMxLS4zLjctLjIgMS4wOGwuMDQuMTMuNTggMS40NmEuNzUuNzUgMCAwIDEtMS4zNS42NWwtLjA0LS4xLS41OC0xLjQ1YTIuNzUgMi43NSAwIDAgMSAuMjQtMi41MWwuMS0uMTYuMTYtLjJjLjIzLS4zMS4zLS43MS4yLTEuMDhsLS4wNC0uMTQtLjU4LTEuNDVhLjc1Ljc1IDAgMCAxIDEuMjktLjc0Wm0tMTcuNTUgMCAuMDYuMDkuMDQuMS41OCAxLjQ1Yy4zNC44My4yNCAxLjc3LS4yNCAyLjUxbC0uMS4xNi0uMTYuMmMtLjIzLjMxLS4zLjctLjIgMS4wOGwuMDQuMTMuNTggMS40NmEuNzUuNzUgMCAwIDEtMS4zNS42NWwtLjA0LS4xLS41OC0xLjQ1YTIuNzUgMi43NSAwIDAgMSAuMjQtMi41MWwuMTEtLjE2LjE1LS4yYy4yMy0uMzEuMy0uNzEuMi0xLjA4bC0uMDQtLjE0LS41OC0xLjQ1YS43NS43NSAwIDAgMSAxLjI5LS43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1bWJiZWxsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVtYmJlbGwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTExLjc1IDIuMDRhMS43MiAxLjcyIDAgMCAwLTIuNi4yIDIuMDggMi4wOCAwIDAgMC0xLjg0IDMuNTNsLjg4Ljg4LS44NC44MyAxLjE5IDEuMTguODMtLjgzLjg4Ljg4YTIuMDkgMi4wOSAwIDAgMCAzLjUzLTEuODVsLjItLjE2Yy42Ni0uNjguNjYtMS43NiAwLTIuNDRsLS41My0uNTEuNDYtLjQ2YS44NC44NCAwIDAgMC0xLjE5LTEuMThsLS40NS40NS0uNTItLjUyWm0uMjggMy43NGEuNS41IDAgMCAxLS43IDBsLTEuMS0xLjFhLjUuNSAwIDAgMSAuNy0uNzFsMS4xIDEuMWMuMi4yLjIuNTEgMCAuN1pNMi44MiA3LjNhMi4wOSAyLjA5IDAgMCAxIDIuOTUgMGwyLjk0IDIuOTRhMi4wOSAyLjA5IDAgMCAxLTEuODUgMy41M2wtLjE2LjJjLS42OC42Ni0xLjc2LjY2LTIuNDQgMGwtLjUxLS41My0uNDcuNDdhLjg0Ljg0IDAgMSAxLTEuMTktMS4xOGwuNDctLjQ3LS41Mi0uNTJhMS43MiAxLjcyIDAgMCAxIC4yLTIuNmMtLjEyLS42NS4wOC0xLjM0LjU4LTEuODRabTIuNiA0LjM4LTEuMS0xLjFhLjUuNSAwIDAgMC0uNzIuN2wxLjEgMS4xYS41LjUgMCAwIDAgLjcyLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRHVtYmJlbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVtYmJlbGwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi4wMyA1Ljc4YS41LjUgMCAwIDAgMC0uNzFsLTEuMS0xLjFhLjUuNSAwIDEgMC0uNy43bDEuMSAxLjFjLjIuMi41LjIuNyAwWm0tNS44OCA1LjE3YS41LjUgMCAxIDEtLjcuNzFsLTEuMS0xLjFhLjUuNSAwIDEgMSAuNy0uN2wxLjEgMS4xWm04LjExLTkuMmExLjM0IDEuMzQgMCAwIDAtMS44OSAwbC0uNDkuNS0uMTYtLjE3YTEuNjcgMS42NyAwIDAgMC0yLjU1LjIyIDIuMDMgMi4wMyAwIDAgMC0xLjgyIDMuNDNsLjUyLjUzLTEuNjEgMS42LS41My0uNTFBMi4wNCAyLjA0IDAgMCAwIDIuMyA5LjE4YTEuNjggMS42OCAwIDAgMC0uMjIgMi41NGwuMTYuMTYtLjUuNWExLjM0IDEuMzQgMCAwIDAgMS44OSAxLjlsLjUtLjUuMTcuMTZhMS42NyAxLjY3IDAgMCAwIDIuNTQtLjIyIDIuMDMgMi4wMyAwIDAgMCAxLjgzLTMuNDRsLS41Mi0uNTIgMS42MS0xLjYxLjUyLjUyYTIuMDQgMi4wNCAwIDAgMCAzLjQ0LTEuODMgMS42NyAxLjY3IDAgMCAwIC4yMi0yLjU0bC0uMTctLjE2LjUtLjVjLjUxLS41Mi41MS0xLjM2IDAtMS44OVptLTEuMiAxLjY4LS40Ny0uNDguNDktLjQ5YS4zNC4zNCAwIDAgMSAuNDguNDhsLS41LjQ5Wm0tNCA0LjAxTDcuNDMgOS4wNWwtLjQ4LS40NyAxLjYyLTEuNjIuNDcuNDhabS01LjYzIDUuNjMtLjUuNWEuMzQuMzQgMCAwIDEtLjQ4LS40OGwuNS0uNS40OC40OFptNi42My0xMC4yOGEuNjcuNjcgMCAwIDEgLjk1IDBMMTMuMjMgNWEuNjcuNjcgMCAwIDEtLjI2IDEuMS41LjUgMCAwIDAtLjMuNjkgMS4wNCAxLjA0IDAgMCAxLTEuNjggMS4xNkw4LjA1IDUuMDNhMS4wNCAxLjA0IDAgMCAxIDEuMTctMS42OC41LjUgMCAwIDAgLjY4LS4zYy4wMy0uMS4wOS0uMTguMTYtLjI2Wm0tNi41IDUuMjZjLjQtLjQgMS4wNi0uNCAxLjQ3IDBMNy45NiAxMWExLjA0IDEuMDQgMCAwIDEtMS4xNiAxLjY4LjUuNSAwIDAgMC0uNjguMy42Ny42NyAwIDAgMS0xLjEuMjZsLTIuMjMtMi4yMmEuNjcuNjcgMCAwIDEgLjI2LTEuMS41LjUgMCAwIDAgLjMtLjdjLS4xNy0uMzgtLjEtLjg0LjIxLTEuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBEdW1iYmVsbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1bWJiZWxsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC4zMyAzLjEzYTEuOTggMS45OCAwIDAgMC0zIC4yMkEyLjQgMi40IDAgMCAwIDkuMiA3LjQzbDEuMDIgMS0xLjA3IDEuMDggMS4zNiAxLjM2IDEuMDctMS4wNyAxLjAxIDEuMDJhMi40IDIuNCAwIDAgMCA0LjA4LTIuMTMgMS45OCAxLjk4IDAgMCAwIC4yMy0zbC0uNi0uNi41Mi0uNTJhLjk3Ljk3IDAgMCAwLTEuMzctMS4zN2wtLjUyLjUyLS42LS42Wm0uMjcgMy41NGEuNS41IDAgMSAxLS43LjcxbC0xLjI4LTEuMjdhLjUuNSAwIDAgMSAuNy0uNzFsMS4yOCAxLjI3Wk00LjAyIDkuMmEyLjQgMi40IDAgMCAxIDMuNCAwbDMuNCAzLjRhMi40IDIuNCAwIDAgMS0yLjEzIDQuMDcgMS45OCAxLjk4IDAgMCAxLTMgLjIzbC0uNi0uNi0uNTQuNTNhLjk3Ljk3IDAgMSAxLTEuMzYtMS4zNmwuNTQtLjU0LS42LS42YTEuOTggMS45OCAwIDAgMSAuMjItMyAyLjQgMi40IDAgMCAxIC42Ny0yLjEzWm0yLjk0IDUuODJhLjUuNSAwIDAgMCAwLS43MUw1LjcgMTMuMDRhLjUuNSAwIDAgMC0uNy43bDEuMjcgMS4yOGMuMi4yLjUuMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEdW1iYmVsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdW1iYmVsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjYgNy4zOGEuNS41IDAgMCAwIDAtLjdMMTMuMzIgNS40YS41LjUgMCAxIDAtLjcuN2wxLjI3IDEuMjhjLjIuMi41MS4yLjcgMFpNNy44IDEzLjQ2YS41LjUgMCAwIDEtLjcuN0w1LjgyIDEyLjlhLjUuNSAwIDAgMSAuNy0uNzFsMS4yOCAxLjI3Wm05LjM2LTEwLjYxYTEuNDcgMS40NyAwIDAgMC0yLjA3IDBsLS42Mi42Mi0uMjUtLjI1YTEuODUgMS44NSAwIDAgMC0yLjg0LjI4IDIuMjcgMi4yNyAwIDAgMC0yLjEgMy44M2wuNjYuNjZMOCA5Ljk2bC0uNjYtLjY2YTIuMjcgMi4yNyAwIDAgMC0zLjgzIDIuMDkgMS44NSAxLjg1IDAgMCAwLS4yOCAyLjg0bC4yNS4yNS0uNjQuNjRhMS40NyAxLjQ3IDAgMCAwIDIuMDcgMi4wN2wuNjQtLjY0LjI0LjI1YTEuODUgMS44NSAwIDAgMCAyLjg1LS4yOCAyLjI3IDIuMjcgMCAwIDAgMi4wOS0zLjgzbC0uNjYtLjY2IDEuOTctMS45Ny42Ni42NmEyLjI3IDIuMjcgMCAwIDAgMy44Mi0yLjEgMS44NSAxLjg1IDAgMCAwIC4yOC0yLjg0bC0uMjQtLjI0LjYyLS42MmMuNTctLjU3LjU3LTEuNSAwLTIuMDdabS0xLjMzIDEuOTgtLjY2LS42Ni42Mi0uNjJhLjQ3LjQ3IDAgMSAxIC42Ni42NmwtLjYyLjYyWm0tNC41MiA0LjUyLTEuOTcgMS45Ny0uNjYtLjY2IDEuOTctMS45Ni42Ni42NVptLTYuNDkgNi41LS42NC42M2EuNDcuNDcgMCAwIDEtLjY2LS42NmwuNjQtLjY0LjY2LjY2Wm03LjUtMTEuOTJhLjg1Ljg1IDAgMCAxIDEuMiAwbDIuNTYgMi41NmEuODUuODUgMCAwIDEtLjM0IDEuNC41LjUgMCAwIDAtLjMuN0ExLjI3IDEuMjcgMCAwIDEgMTMuMzkgMTBMMTAgNi42MmExLjI3IDEuMjcgMCAwIDEgMS40My0yLjA1LjUuNSAwIDAgMCAuNjktLjNjLjA0LS4xMy4xLS4yNC4yLS4zNFptLTcuNSA2LjA4Yy40OS0uNSAxLjMtLjUgMS44IDBMMTAgMTMuMzlhMS4yNyAxLjI3IDAgMCAxLTEuNDMgMi4wNi41LjUgMCAwIDAtLjY4LjMuODUuODUgMCAwIDEtMS40LjM0bC0yLjU3LTIuNTZhLjg1Ljg1IDAgMCAxIC4zMy0xLjQxLjUuNSAwIDAgMCAuMy0uNjhBMS4yNyAxLjI3IDAgMCAxIDQuODIgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBEdW1iYmVsbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1bWJiZWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy4zNCAzLjUyYTIuNDUgMi40NSAwIDAgMC0zLjcuMjhBMi45NyAyLjk3IDAgMCAwIDExIDguODNsMS4yNSAxLjI0LTEuMTMgMS4xMyAxLjY5IDEuNjkgMS4xMy0xLjEzIDEuMjQgMS4yNWEyLjk3IDIuOTcgMCAwIDAgNS4wMy0yLjYzIDIuNDYgMi40NiAwIDAgMCAuMjgtMy43bC0uNzQtLjczLjY1LS42NWExLjIgMS4yIDAgMSAwLTEuNjktMS42OGwtLjY0LjY0LS43NC0uNzRabS40MyA1LjM0Yy0uMy4zLS43Ny4zLTEuMDYgMEwxNS4xNCA3LjNhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwxLjU3IDEuNTdjLjI5LjMuMjkuNzcgMCAxLjA2Wk00LjYyIDExLjAyYTIuOTcgMi45NyAwIDAgMSA0LjIgMGw0LjE5IDQuMThhMi45NyAyLjk3IDAgMCAxLTIuNjMgNS4wMiAyLjQ1IDIuNDUgMCAwIDEtMy43LjI4bC0uNzQtLjc0LS42Ni42N2ExLjIgMS4yIDAgMCAxLTEuNjktMS42OGwuNjctLjY3LS43NC0uNzRhMi40NSAyLjQ1IDAgMCAxIC4yOC0zLjdjLS4xNi0uOTIuMTEtMS45LjgyLTIuNjJabTMuNzMgNy4yNmMuMy0uMjkuMy0uNzcgMC0xLjA2bC0xLjU3LTEuNTdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwxLjU3IDEuNTdjLjI5LjMuNzYuMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEdW1iYmVsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdW1iYmVsbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc3IDcuOGEuNzUuNzUgMCAxIDEtMS4wNyAxLjA2TDE1LjE0IDcuM2EuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDEuNTcgMS41N1ptLTguMzggOS40NGMuMy0uMy4zLS43NyAwLTEuMDdMNy44MiAxNC42YS43NS43NSAwIDEgMC0xLjA2IDEuMDdsMS41NyAxLjU3Yy4zLjI5Ljc3LjI5IDEuMDYgMFpNMjAuOTQgMy4wOGExLjk0IDEuOTQgMCAwIDAtMi43NSAwbC0uNjcuNjgtLjItLjIxYTIuNDEgMi40MSAwIDAgMC0zLjY3LjI5IDIuOTMgMi45MyAwIDAgMC0yLjYxIDQuOTZsLjcyLjcyLTIuMjQgMi4yNC0uNzItLjcyYTIuOTQgMi45NCAwIDAgMC00Ljk2IDIuNjFsLS4zLjI1YTIuNDEgMi40MSAwIDAgMCAwIDMuNDJsLjIxLjItLjY5LjdhMS45NCAxLjk0IDAgMCAwIDIuNzUgMi43NGwuNjktLjcuMi4yMmEyLjQxIDIuNDEgMCAwIDAgMy42Ny0uMyAyLjkzIDIuOTMgMCAwIDAgMi42MS00Ljk2bC0uNzItLjcyIDIuMjQtMi4yNC43Mi43MmEyLjk0IDIuOTQgMCAwIDAgNC45Ni0yLjYxIDIuNDIgMi40MiAwIDAgMCAuMy0zLjY2bC0uMjEtLjIxLjY3LS42N2MuNzUtLjc2Ljc1LTEuOTkgMC0yLjc1Wk0xOS4yIDUuNDRsLS42My0uNjIuNjctLjY4YS40NC40NCAwIDEgMSAuNjMuNjNsLS42Ny42N1ptLTUuNzcgNS43Ni0yLjI0IDIuMjQtLjYyLS42MiAyLjI0LTIuMjQuNjIuNjJabS04IDgtLjcuN2EuNDQuNDQgMCAwIDEtLjYyLS42MmwuNy0uNy42Mi42M1ptOS41Mi0xNC42YS45MS45MSAwIDAgMSAxLjMgMGwzLjE1IDMuMTdhLjkxLjkxIDAgMCAxLS4zNiAxLjUxLjc1Ljc1IDAgMCAwLS40NSAxLjAzIDEuNDQgMS40NCAwIDAgMS0yLjMyIDEuNjFMMTIuMSA3Ljc0YTEuNDQgMS40NCAwIDAgMSAxLjYxLTIuMzIuNzUuNzUgMCAwIDAgMS4wMy0uNDUuOS45IDAgMCAxIC4yMi0uMzZabS05LjI1IDcuNWExLjQ0IDEuNDQgMCAwIDEgMi4wMyAwbDQuMTggNC4xOGExLjQ0IDEuNDQgMCAwIDEtMS42MSAyLjMyLjc1Ljc1IDAgMCAwLTEuMDMuNDUuOTEuOTEgMCAwIDEtMS41MS4zNkw0LjYgMTYuMjVhLjkxLjkxIDAgMCAxIC4zNi0xLjUuNzUuNzUgMCAwIDAgLjQ1LTEuMDMgMS40NCAxLjQ0IDAgMCAxIC4yOS0xLjYyWlwiXSk7XG5leHBvcnQgY29uc3QgRHVtYmJlbGwyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdW1iYmVsbDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjAuNSAzLjY5YTIuOTggMi45OCAwIDAgMC00LjUuMzQgMy42IDMuNiAwIDAgMC0zLjIgNi4xMWwxLjUyIDEuNTItMS42IDEuNiAyLjA1IDIuMDUgMS42LTEuNiAxLjUyIDEuNTFhMy42MSAzLjYxIDAgMCAwIDYuMS0zLjE5IDIuOTggMi45OCAwIDAgMCAuMzQtNC41bC0uOS0uOS44LS43OGExLjQ1IDEuNDUgMCAwIDAtMi4wNS0yLjA1bC0uNzkuNzktLjktLjlabS40IDYuMzhjLS4zLjMtLjc3LjMtMS4wNiAwbC0xLjkxLTEuOWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA3bDEuOSAxLjkxYy4zLjMuMy43NyAwIDEuMDZabS01LjY4IDcuODItNS4wOC01LjA5QTMuNjEgMy42MSAwIDAgMCA0LjAzIDE2YTMgMyAwIDAgMC0uMzQgNC41bC45LjktLjgyLjhhMS40NSAxLjQ1IDAgMCAwIDIuMDUgMi4wNWwuODEtLjguOS44OWEyLjk4IDIuOTggMCAwIDAgNC41LS4zNCAzLjYgMy42IDAgMCAwIDMuMi02LjExWm0tNS43OCAyLjU3YS43NS43NSAwIDEgMS0xLjA2IDEuMDdsLTEuOS0xLjkxYS43NS43NSAwIDAgMSAxLjA1LTEuMDZsMS45MSAxLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBEdW1iYmVsbDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdW1iYmVsbDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIwLjkgMTAuMDdjLjMtLjMuMy0uNzcgMC0xLjA2TDE5IDcuMWEuNzUuNzUgMCAwIDAtMS4wNyAxLjA2bDEuOTEgMS45MWMuMy4zLjc3LjMgMS4wNiAwWm0tMTAuMTggOS4xMmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0xLjkxLTEuOWEuNzUuNzUgMCAwIDEgMS4wNi0xLjA3bDEuOSAxLjkxWk0yNC43NiAzLjI3YTIuMiAyLjIgMCAwIDAtMy4xMSAwbC0uOS45LS4zNy0uMzdhMi43NyAyLjc3IDAgMCAwLTQuMjMuMzcgMy4yNSAzLjI1IDAgMCAwLTMuMDYuODZsLS4yMi4yMmEzLjI1IDMuMjUgMCAwIDAgMCA0LjZsMS4xIDEuMS0zLjAyIDMuMDItMS4xLTEuMWEzLjI1IDMuMjUgMCAwIDAtNC42IDBsLS4yMi4yMmMtLjgzLjgzLTEuMTIgMi0uODYgMy4wNmwtLjM3LjMxYTIuNzcgMi43NyAwIDAgMCAwIDMuOTJsLjM3LjM3LS45Mi45MmEyLjIgMi4yIDAgMCAwIDMuMSAzLjExbC45My0uOTIuMzcuMzdhMi43NyAyLjc3IDAgMCAwIDQuMjItLjM3IDMuMjUgMy4yNSAwIDAgMCAzLjA2LS44NmwuMjMtLjIzYTMuMjUgMy4yNSAwIDAgMCAwLTQuNmwtMS4xLTEuMSAzLjAyLTMuMDEgMS4xIDEuMWEzLjI1IDMuMjUgMCAwIDAgNC42IDBsLjIyLS4yM2MuODMtLjgzIDEuMTItMiAuODYtMy4wNmEyLjc5IDIuNzkgMCAwIDAgLjM3LTQuMjJsLS4zNy0uMzcuOS0uOWEyLjIgMi4yIDAgMCAwIDAtMy4xWk0xMyAxNi4wMmwtLjk5LTEgMy4wMi0zIC45OS45OEwxMyAxNi4wMlpNNi4yMiAyMi44bC0uOTMuOTJhLjcuNyAwIDAgMS0uOTgtLjk5bC45Mi0uOTIuOTkuOTlaTTIyLjggNi4yMmwtLjk5LTEgLjktLjg5YS43LjcgMCAxIDEgLjk5Ljk5bC0uOS45Wm0tNS4yOC0xLjM2Yy41LS41IDEuMy0uNSAxLjggMGwzLjg1IDMuODVhMS4yNyAxLjI3IDAgMCAxLS40OCAyLjEuNzUuNzUgMCAwIDAtLjQyIDEuMDRjLjMyLjY2LjIxIDEuNDgtLjMzIDIuMDJsLS4yMy4yM2MtLjY4LjY4LTEuNzkuNjgtMi40NyAwbC01LjMxLTUuMzFhMS43NSAxLjc1IDAgMCAxIDAtMi40N2wuMjItLjIzYTEuNzUgMS43NSAwIDAgMSAyLjAzLS4zMy43NS43NSAwIDAgMCAxLjA0LS40MmMuMDYtLjE3LjE2LS4zNC4zLS40OFpNOC44IDEzLjkzbDUuMyA1LjNjLjcuNy43IDEuOCAwIDIuNDhsLS4yMi4yM2MtLjU0LjU0LTEuMzYuNjUtMi4wMi4zMmEuNzUuNzUgMCAwIDAtMS4wNC40MyAxLjI3IDEuMjcgMCAwIDEtMi4xLjQ4bC0zLjg1LTMuODVhMS4yNyAxLjI3IDAgMCAxIC40OC0yLjEuNzUuNzUgMCAwIDAgLjQyLTEuMDQgMS43NSAxLjc1IDAgMCAxIC4zMy0yLjAzbC4yMy0uMjJjLjY4LS42OCAxLjc5LS42OCAyLjQ3IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEdXN0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRHVzdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS43NSAzLjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0yLjM0IDIuNjVBNCA0IDAgMSAxIDE0LjY1IDEwIDQgNCAwIDAgMSAxMiAxN2E0IDQgMCAwIDEtMy45LTMuMTUgNCA0IDAgMSAxLS4wMS03LjdaTTUuNzUgMThhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xOSAxMGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRHVzdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdXN0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS43NSAzLjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xMiAzYTQgNCAwIDAgMC0zLjkxIDMuMTUgNCA0IDAgMSAwIDAgNy43QTQgNCAwIDEgMCAxNC42NSAxMCA0IDQgMCAwIDAgMTIgM1pNOSA2Ljg2YTMgMyAwIDEgMSA0LjU1IDIuNzEuNS41IDAgMCAwIDAgLjg2QTMgMyAwIDEgMSA5IDEzLjE0YS41LjUgMCAwIDAtLjcxLS40MyAzIDMgMCAxIDEgMC01LjQyLjUuNSAwIDAgMCAuNzEtLjQzWk01Ljc1IDE4YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTkgMTBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IER1c3QyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdXN0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02IDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xNiA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNNyAyMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaTTguNjYgNi45NEE1LjI1IDUuMjUgMCAxIDEgMTcuNDIgMTJhNS4yNCA1LjI0IDAgMCAxLTMuNjcgOSA1LjI1IDUuMjUgMCAwIDEtNS4wOS0zLjk0IDUuMjUgNS4yNSAwIDEgMSAwLTEwLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgRHVzdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdXN0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNyAzYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMTQgMTBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk02IDIyYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNy43NS0xOWE1LjI1IDUuMjUgMCAwIDAtNS4wOSAzLjk0IDUuMjUgNS4yNSAwIDEgMCAwIDEwLjEyQTUuMjUgNS4yNSAwIDEgMCAxNy40MiAxMmE1LjI0IDUuMjQgMCAwIDAtMy42Ny05Wm0tMy43NCA1LjAyYTMuNzUgMy43NSAwIDEgMSA1LjgxIDMuMzYuNzUuNzUgMCAwIDAgMCAxLjI0IDMuNzUgMy43NSAwIDEgMS01LjgxIDMuMzYuNzUuNzUgMCAwIDAtMS4wOS0uNjIgMy43NSAzLjc1IDAgMSAxIDAtNi43MS43NS43NSAwIDAgMCAxLjA5LS42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IER1c3QyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdEdXN0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMC4yNCA3Ljc0QTYuNSA2LjUgMCAxIDEgMjEuMiAxNGE2LjUgNi41IDAgMSAxLTEwLjk1IDYuMjYgNi41IDYuNSAwIDEgMSAwLTEyLjUyWk04IDVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xOCA5YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNOSAyNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBEdXN0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0R1c3QyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNi41IDNhNi41IDYuNSAwIDAgMC02LjI2IDQuNzQgNi41IDYuNSAwIDEgMCAwIDEyLjUyQTYuNSA2LjUgMCAxIDAgMjEuMiAxNCA2LjUgNi41IDAgMCAwIDE2LjUgM1ptLTQuOTYgNS44M2E1IDUgMCAxIDEgOC4wNyA0LjU4Ljc1Ljc1IDAgMCAwIDAgMS4xOCA0Ljk5IDQuOTkgMCAxIDEtOC4wNyA0LjU4Ljc1Ljc1IDAgMCAwLTEuMDQtLjU5IDUgNSAwIDEgMSAwLTkuMTcuNzUuNzUgMCAwIDAgMS4wNC0uNThaTTkgNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTE2IDExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNOCAyNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBFYXJ0aDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDhhNyA3IDAgMSAxIDE0IDBBNyA3IDAgMCAxIDEgOFptNy02aC0uMDVjLjA5LjE4LjE5LjQuMjguNjMuMjQuNjUuNDYgMS42LjA3IDIuNDMtLjM2Ljc3LS45OC45Ny0xLjQ1IDEuMWgtLjA3Yy0uNDUuMTMtLjY0LjE3LS43Ny4zOC0uMTMuMi0uMS40My4wNC45bC4wMy4xYy4wNi4xOS4xMy40LjE2LjYuMDQuMjYuMDYuNTgtLjEuODktLjE2LjMtLjM4LjUxLS42My42NS0uMjMuMTMtLjQ3LjE3LS42Ni4ybC0uMDcuMDJjLS4zNi4wNi0uNTQuMS0uNzEuMjgtLjE0LjE1LS4yMi40LS4yNy43N2wtLjA1LjQ2di4wOGwtLjA3LjUzLS4wMy4xMWE1Ljk4IDUuOTggMCAwIDAgNy40IDEuMDMgMy4xNiAzLjE2IDAgMCAxLS4yNi0uMjhjLS4yMy0uMy0uNTQtLjgxLS40My0xLjQxLjA1LS4yOS4yLS41My4zNS0uNzJhNC45OCA0Ljk4IDAgMCAxIC42Mi0uNjFsLjMyLS4zMS4xMi0uMTUuMDQtLjA1Yy4wNS0uMTctLjAxLS4zLS4wOS0uMzUtLjA1LS4wNC0uMi0uMS0uNDQuMDVsLS4yNi4xNmEuOTkuOTkgMCAwIDEtLjI3LjEyLjUzLjUzIDAgMCAxLS42My0uMzYuNjQuNjQgMCAwIDEtLjAzLS4yIDEuMTUgMS4xNSAwIDAgMSAuMDEtLjE5Yy4wMy0uMjEuMDctLjUyLS4wNi0uOTgtLjEtLjM3LS4yMy0uNjYtLjM4LS45NGE5LjE1IDkuMTUgMCAwIDEtLjItLjQyYy0uMDgtLjItLjE4LS40Ni0uMTYtLjczLjAyLS4zMi4xOC0uNTguNDQtLjc4LjMyLS4yNC43Mi0uNzggMS4wNi0xLjMzLjE3LS4yNy4zMS0uNTEuNDEtLjdsLjAyLS4wM0E1Ljk3IDUuOTcgMCAwIDAgOCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGgxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWFydGgxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDhhNyA3IDAgMSAxIDE0IDBBNyA3IDAgMCAxIDEgOFptNy02aC0uMDVjLjA5LjE4LjE5LjQuMjguNjMuMjQuNjUuNDYgMS42LjA3IDIuNDMtLjM2Ljc3LS45OC45Ny0xLjQ1IDEuMWgtLjA3Yy0uNDUuMTMtLjY0LjE3LS43Ny4zOC0uMTMuMi0uMS40My4wNC45bC4wMy4xYy4wNi4xOS4xMy40LjE2LjYuMDQuMjYuMDYuNTgtLjEuODktLjE2LjMtLjM4LjUxLS42My42NS0uMjMuMTMtLjQ3LjE3LS42Ni4ybC0uMDcuMDJjLS4zNi4wNi0uNTQuMS0uNzEuMjgtLjE0LjE1LS4yMi40LS4yNy43N2wtLjA1LjQ2di4wOGwtLjA3LjUzLS4wMy4xMWE1Ljk4IDUuOTggMCAwIDAgNy40IDEuMDMgMy4xNiAzLjE2IDAgMCAxLS4yNi0uMjhjLS4yMy0uMy0uNTQtLjgxLS40My0xLjQxLjA1LS4yOS4yLS41My4zNS0uNzJhNC45OCA0Ljk4IDAgMCAxIC42Mi0uNjFsLjMyLS4zMS4xMi0uMTUuMDQtLjA1Yy4wNS0uMTctLjAxLS4zLS4wOS0uMzUtLjA1LS4wNC0uMi0uMS0uNDQuMDVsLS4yNi4xNmEuOTkuOTkgMCAwIDEtLjI3LjEyLjUzLjUzIDAgMCAxLS42My0uMzYuNjQuNjQgMCAwIDEtLjAzLS4yIDEuMTUgMS4xNSAwIDAgMSAuMDEtLjE5Yy4wMy0uMjEuMDctLjUyLS4wNi0uOTgtLjEtLjM3LS4yMy0uNjYtLjM4LS45NGE5LjE1IDkuMTUgMCAwIDEtLjItLjQyYy0uMDgtLjItLjE4LS40Ni0uMTYtLjczLjAyLS4zMi4xOC0uNTguNDQtLjc4LjMyLS4yNC43Mi0uNzggMS4wNi0xLjMzLjE3LS4yNy4zMS0uNTEuNDEtLjdsLjAyLS4wM0E1Ljk3IDUuOTcgMCAwIDAgOCAyWm00LjAzIDEuNTYtLjM4LjY1YTYuMzcgNi4zNyAwIDAgMS0xLjM1IDEuNjRjMCAuMDMgMCAuMS4wOC4yN2wuMTMuMjdjLjE2LjMyLjM4Ljc2LjUgMS4yNC4wNy4yNS4xLjQ4LjExLjY4LjQ0LS4xNS44OC0uMDggMS4yMS4xOC40Mi4zMi42Ljg4LjQzIDEuNDMtLjA3LjI1LS4yNS40NS0uMzkuNmwtLjM4LjM3YTIyLjYzIDIyLjYzIDAgMCAwLS41LjUuNjYuNjYgMCAwIDAtLjE1LjI1Yy0uMDMuMTcuMDUuMzguMjQuNjFhMi4yMiAyLjIyIDAgMCAwIC4zLjMyIDUuOTkgNS45OSAwIDAgMCAuMTUtOVpNMiA4YzAgMS4wOC4yOSAyLjEuNzkgMi45N2wuMDEtLjE1Yy4wNi0uNC4xNy0uOTMuNTQtMS4zMi40MS0uNDUuOTItLjUzIDEuMjQtLjU4bC4xLS4wMmMuMTctLjAzLjI3LS4wNi4zNi0uMS4wNi0uMDQuMTQtLjEuMjEtLjI0LjAxLS4wMi4wMy0uMDkgMC0uMjRhMjguNjQgMjguNjQgMCAwIDEtLjE2LS41OGMtLjEzLS40My0uMzMtMS4xMi4wOC0xLjc1LjM2LS41NS45NC0uNjkgMS4zMi0uNzguMDQgMCAuMDgtLjAyLjExLS4wMy40LS4xLjYzLS4yLjgtLjU0LjItLjQ2LjEyLTEuMDctLjEtMS42NWE1LjM4IDUuMzggMCAwIDAtLjQ0LS44OEE2IDYgMCAwIDAgMiA4WlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGgyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC03aC0uMjVjLjExLjIzLjI1LjUuMzcuODMuMjguNzQuNTIgMS44Mi4wOCAyLjc2LS40Ljg2LTEuMSAxLjA4LTEuNjMgMS4yMmwtLjEuMDJjLS41LjEzLS43NS4yLS45My40Ni0uMTcuMjYtLjEyLjU4LjA0IDEuMTJsLjA0LjEyYy4wNy4yMS4xNC40Ni4xOC42OS4wNS4yOC4wNi42My0uMTEuOTctLjE4LjM0LS40MS41Ny0uNjkuNzItLjI2LjE0LS41My4yLS43NS4yNGwtLjA4LjAxYy0uNDEuMDctLjY1LjEyLS44Ny4zNS0uMTguMi0uMjguNTEtLjM0Ljk0bC0uMDUuNTR2LjFjLS4wMi4yLS4wNC40MS0uMDkuNnYuMDJhNi45OCA2Ljk4IDAgMCAwIDguODYgMS4yNSAzLjU2IDMuNTYgMCAwIDEtLjI3LS4zMWMtLjI3LS4zNC0uNjEtLjkxLS41LTEuNTcuMDYtLjMxLjIzLS41OC40LS44YTUuNjggNS42OCAwIDAgMSAuNy0uN2MuMTUtLjE0LjI4LS4yNS4zOS0uMzdhLjkuOSAwIDAgMCAuMi0uMjZjLjA3LS4yMy0uMDItLjQtLjEzLS41LS4xLS4wNi0uMy0uMTMtLjYuMDdsLS4zMy4xOWMtLjA5LjA0LS4yLjEtLjM0LjEyYS42LjYgMCAwIDEtLjU0LS4xOC43My43MyAwIDAgMS0uMTgtLjM3IDIuNTggMi41OCAwIDAgMS0uMDMtLjI4di0uMDdsLS4wMi0uMjNjLS4wMi0uMjItLjA2LS41LS4xNS0uODMtLjEyLS40OS0uNDQtLjg5LS43Ni0xLjNsLS4xNC0uMThjLS4xNi0uMi0uMzctLjQ4LS40NC0uNzdhLjkuOSAwIDAgMSAuMDMtLjU1Yy4wNy0uMTkuMi0uMzMuMzUtLjQ0YTE4LjYgMTguNiAwIDAgMCAxLjc0LTEuNjZjLjMtLjMxLjU4LS42Ljc3LS44MmguMDFBNi45NyA2Ljk3IDAgMCAwIDEwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBFYXJ0aDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtN2gtLjI1Yy4xMS4yMy4yNS41LjM3LjgzLjI4Ljc0LjUyIDEuODIuMDggMi43Ni0uNC44Ni0xLjEgMS4wOC0xLjYzIDEuMjJsLS4xLjAyYy0uNS4xMy0uNzUuMi0uOTMuNDYtLjE3LjI2LS4xMi41OC4wNCAxLjEybC4wNC4xMmMuMDcuMjEuMTQuNDYuMTguNjkuMDUuMjguMDYuNjMtLjExLjk3LS4xOC4zNC0uNDEuNTctLjY5LjcyLS4yNi4xNC0uNTMuMi0uNzUuMjRsLS4wOC4wMWMtLjQxLjA3LS42NS4xMi0uODcuMzUtLjE4LjItLjI4LjUxLS4zNC45NGwtLjA1LjU0di4xYy0uMDIuMi0uMDQuNDEtLjA5LjZ2LjAyYTYuOTggNi45OCAwIDAgMCA4Ljg2IDEuMjUgMy41NiAzLjU2IDAgMCAxLS4yNy0uMzFjLS4yNy0uMzQtLjYxLS45MS0uNS0xLjU3LjA2LS4zMS4yMy0uNTguNC0uOGE1LjY4IDUuNjggMCAwIDEgLjctLjdjLjE1LS4xNC4yOC0uMjUuMzktLjM3YS45LjkgMCAwIDAgLjItLjI2Yy4wNy0uMjMtLjAyLS40LS4xMy0uNS0uMS0uMDYtLjMtLjEzLS42LjA3bC0uMzMuMTljLS4wOS4wNC0uMi4xLS4zNC4xMmEuNi42IDAgMCAxLS41NC0uMTguNzQuNzQgMCAwIDEtLjE4LS4zNyAyLjU3IDIuNTcgMCAwIDEtLjAzLS4yOHYtLjA3bC0uMDItLjIzYy0uMDItLjIyLS4wNi0uNS0uMTUtLjgzLS4xMi0uNDktLjQ0LS44OS0uNzYtMS4zbC0uMTQtLjE4Yy0uMTYtLjItLjM3LS40OC0uNDQtLjc3YS45LjkgMCAwIDEgLjM4LTEgMTguNiAxOC42IDAgMCAwIDEuNzQtMS42NWMuMy0uMzEuNTgtLjYuNzctLjgyaC4wMUE2Ljk3IDYuOTcgMCAwIDAgMTAgM1ptNC42NCAxLjc2YTQyLjEgNDIuMSAwIDAgMS0yLjcxIDIuNjZjLjAzLjA3LjEuMTguMjQuMzZsLjEyLjE2Yy4zMi40Ljc4Ljk3Ljk2IDEuNjguMS40LjE1LjczLjE3Ljk4di4wMWMuNi0uMzMgMS4yMS0uMyAxLjY2LjA2LjQ2LjM1LjY2Ljk3LjQ3IDEuNTctLjA4LjI3LS4yNy41LS40My42NmwtLjQ0LjQzLS4xMS4xYy0uMi4xNy0uMzYuMzMtLjQ4LjQ4YS44My44MyAwIDAgMC0uMTkuMzRjLS4wNC4yMy4wNy41LjI5Ljc4LjEuMTIuMi4yMy4zLjMgMCAuMDEgMCAuMDIuMDIuMDNhNi45OSA2Ljk5IDAgMCAwIC4xMy0xMC42Wk04LjggMy4zNmwtLjEzLS4yM2E3IDcgMCAwIDAtNC43MiAxMC4zOWwuMDItLjJjLjA2LS40Ni4yLTEuMDYuNi0xLjQ5LjQ2LS41IDEuMDItLjU5IDEuNC0uNjVsLjEtLjAyYy4yMS0uMDMuMzQtLjA3LjQ1LS4xMy4xLS4wNS4yLS4xMy4yOC0uMy4wMy0uMDYuMDUtLjE1LjAyLS4zNGE0LjQgNC40IDAgMCAwLS4xNS0uNTRsLS4wNS0uMTVjLS4xNS0uNS0uMzctMS4yNi4wOS0xLjk2LjQtLjYgMS4wNC0uNzYgMS40OC0uODdsLjEzLS4wM2MuNDctLjEyLjc3LS4yNC45OC0uNjguMjYtLjU2LjE0LTEuMy0uMTItMS45OGE2LjMzIDYuMzMgMCAwIDAtLjM4LS44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWFydGgyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjk1IDIuMDVBMTAgMTAgMCAxIDEgNC4xIDE4LjEzYTEwIDEwIDAgMCAxIDYuODMtMTYuMDhoLjAyWk0xMiAzLjVoLS4xNmMuMTIuMjUuMjYuNTMuMzcuODUuMzUuOTIuNjcgMi4yOC4xIDMuNDktLjUyIDEuMTEtMS40MiAxLjQtMi4wOSAxLjU3bC0uMDguMDJjLS42Ni4xNy0uOS4yNC0xLjEuNTItLjE2LjI1LS4xNC41OC4wNyAxLjI1bC4wNC4xNGMuMDkuMjYuMTguNTcuMjMuODcuMDcuMzYuMDkuODItLjE1IDEuMjctLjIzLjQ1LS41NC43NS0uOS45NS0uMzQuMTgtLjcuMjUtLjk2LjNsLS4wOS4wMmMtLjUxLjA5LS43Ni4xMy0xIC4zOS0uMTkuMi0uMy41NS0uMzggMS4wN2wtLjA2LjY1di4xMmMtLjAzLjI0LS4wNS41Mi0uMS43NmE4LjQ4IDguNDggMCAwIDAgMTAuNTggMS41OGwtLjMxLS4zNWMtLjM0LS40My0uNzktMS4xNi0uNjMtMi4wMy4wNy0uNDIuMy0uNzcuNTEtMS4wNC4yMi0uMjcuNDktLjUyLjcyLS43NGwuMTYtLjE0Yy4xOC0uMTcuMzMtLjMuNDYtLjQ0LjE3LS4xOC4yMS0uMjYuMjEtLjI3LjA3LS4yMi0uMDEtLjM4LS4xLS40NWEuMy4zIDAgMCAwLS4yLS4wNi43NS43NSAwIDAgMC0uNC4xNC45MS45MSAwIDAgMS0uODMuMDhjLS4yNy0uMS0uNDEtLjMxLS40OS0uNDNhMi43NSAyLjc1IDAgMCAxLS4yNy0uNzdsLS4xMi0uNTUtLjA0LS4yMS0uMTMtLjU0LS4wMi0uMDRhNi4yMyA2LjIzIDAgMCAwLS4zLS40MmwtLjEtLjE0Yy0uMTYtLjIxLS4zNi0uNDctLjUyLS43MS0uMi0uMy0uNDItLjctLjQ5LTEuMWExLjM5IDEuMzkgMCAwIDEgLjU0LTEuMzggMTMgMTMgMCAwIDAgMS44My0xLjk3Yy4yOS0uMzYuNTQtLjcuNzMtLjk1QTguNDYgOC40NiAwIDAgMCAxMiAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFYXJ0aDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjk1IDIuMDVBMTAgMTAgMCAxIDEgNC4xIDE4LjEzYTEwIDEwIDAgMCAxIDYuODMtMTYuMDhoLjAyWk0xMiAzLjVoLS4xNmMuMTIuMjUuMjYuNTMuMzcuODUuMzUuOTIuNjcgMi4yOC4xIDMuNDktLjUyIDEuMTEtMS40MiAxLjQtMi4wOSAxLjU3bC0uMDguMDJjLS42Ni4xNy0uOS4yNC0xLjEuNTItLjE2LjI1LS4xNC41OC4wNyAxLjI1bC4wNC4xNGMuMDkuMjYuMTguNTcuMjMuODcuMDcuMzYuMDkuODItLjE1IDEuMjctLjIzLjQ1LS41NC43NS0uOS45NS0uMzQuMTgtLjcuMjUtLjk2LjNsLS4wOS4wMmMtLjUxLjA5LS43Ni4xMy0xIC4zOS0uMTkuMi0uMy41NS0uMzggMS4wN2wtLjA2LjY1di4xMmMtLjAzLjI0LS4wNS41Mi0uMS43NmE4LjQ4IDguNDggMCAwIDAgMTAuNTggMS41OGwtLjMxLS4zNWMtLjM0LS40My0uNzktMS4xNi0uNjMtMi4wMy4wNy0uNDIuMy0uNzcuNTEtMS4wNC4yMi0uMjcuNDktLjUyLjcyLS43NGwuMTYtLjE0Yy4xOC0uMTcuMzMtLjMuNDYtLjQ0LjE3LS4xOC4yMS0uMjYuMjEtLjI3LjA3LS4yMi0uMDEtLjM4LS4xLS40NWEuMy4zIDAgMCAwLS4yLS4wNi43NS43NSAwIDAgMC0uNC4xNC45MS45MSAwIDAgMS0uODMuMDhjLS4yNy0uMS0uNDEtLjMxLS40OS0uNDNhMi43NSAyLjc1IDAgMCAxLS4yNy0uNzdsLS4xMi0uNTUtLjA0LS4yMWE0LjEgNC4xIDAgMCAwLS4xMy0uNTRsLS4wMi0uMDRhNi4yMyA2LjIzIDAgMCAwLS4zLS40MmwtLjEtLjE0Yy0uMTYtLjIxLS4zNi0uNDctLjUyLS43MS0uMi0uMy0uNDItLjctLjQ5LTEuMWExLjM5IDEuMzkgMCAwIDEgLjU0LTEuMzggMTMgMTMgMCAwIDAgMS44My0xLjk3Yy4yOS0uMzYuNTQtLjcuNzMtLjk1QTguNDYgOC40NiAwIDAgMCAxMiAzLjVabTUuNzMgMi4yMi0uNzYuOThjLS42Ljc1LTEuNCAxLjY4LTIuMDUgMi4xOS4wMy4xLjEuMjYuMjYuNWExMC43MyAxMC43MyAwIDAgMCAuNTYuNzdjLjE4LjIzLjQyLjU0LjUyLjg0LjEuMjMuMTUuNTIuMi43NmwuMDUuMjUuMDguMzdjLjYtLjE3IDEuMi0uMDcgMS42Ny4zLjYuNDYuODYgMS4yOC42MiAyLjA3LS4xMS4zNi0uMzYuNjYtLjU2Ljg3bC0uNTYuNTMtLjEzLjEyYy0uMjMuMi0uNDIuNC0uNTcuNTdhLjkuOSAwIDAgMC0uMi4zNmMtLjA0LjIyLjA2LjUxLjMyLjg0YTMuMTQgMy4xNCAwIDAgMCAuMzguNCA4LjQ4IDguNDggMCAwIDAgLjE3LTEyLjcyWk0zLjUgMTJjMCAxLjQuMzQgMi43Mi45NCAzLjg4LjA4LS41Ni4yNi0xLjI1Ljc0LTEuNzdhMi45MSAyLjkxIDAgMCAxIDEuOTMtLjg2Yy4yNS0uMDQuNC0uMDguNS0uMTRhLjcuNyAwIDAgMCAuMy0uMzJjMC0uMDMuMDMtLjEgMC0uMzMtLjA0LS4xOC0uMS0uMzgtLjE4LS42M2wtLjA2LS4yYy0uMTgtLjYtLjQ4LTEuNi4xMi0yLjUuNTMtLjggMS4zNi0xIDEuOS0xLjEzbC4xNi0uMDRjLjU2LS4xNS44OC0uMjggMS4xLS43Ni4zLS42My4xOC0xLjQ4LS4xNC0yLjMyYTcuNjEgNy42MSAwIDAgMC0uNTgtMS4yQTguNSA4LjUgMCAwIDAgMy41IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGgzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOC4yMiA0LjM2YTE0IDE0IDAgMSAxIDE1LjU2IDIzLjI4QTE0IDE0IDAgMCAxIDguMjIgNC4zNlpNOC4zIDIwLjZjLS44IDEuMDctLjU1IDMuMTEtLjM5IDQuMjRhMTEuOTIgMTEuOTIgMCAwIDAgMTQuNDkgMS4yOCAzLjc1IDMuNzUgMCAwIDEtMS45LTIuNDJjLS4zNi0xLjc5LjgzLTIuOTEgMS43My0zLjc0LjktLjgzIDEuMTEtMS4xNCAxLTEuNTJhNSA1IDAgMCAwLS43My4xNSAyLjEzIDIuMTMgMCAwIDEtMi4wOC0uMTcgMS42OCAxLjY4IDAgMCAxLS40Mi0xLjU5IDQgNCAwIDAgMC0xLjA3LTIuOTNjLS42Ny0uOTUtMS42OC0yLjM5LS4zLTMuNjQgMS40NC0xLjMgMi43LTIuNzcgMy43Ni00LjRBMTEuOTIgMTEuOTIgMCAwIDAgMTYgNGgtLjM3bC4wNS4xOC4wNi4xYy44MyAxLjUzIDEuNzQgMy4xNyAxLjE5IDUuNDUtLjQ0IDEuODItMi4xNCAyLjQtMy40IDIuODNsLS4wNC4wMWMtLjQzLjExLS44NS4zLTEuMjMuNTMtLjUuNjctLjM2IDEuMzQtLjEgMi4zNGEzLjY0IDMuNjQgMCAwIDEtLjE2IDMuMTEgMi42MiAyLjYyIDAgMCAxLTIgMS4xMyAyIDIgMCAwIDAtMS43LjkyWlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGgzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWFydGgzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiAyYTE0IDE0IDAgMSAwIDAgMjggMTQgMTQgMCAwIDAgMC0yOFptLTIuNTEgMi4yNy40OS45Yy43NiAxLjM2IDEuNDMgMi41MyAxIDQuMS0uMTcuNjgtMSAxLTIuMTQgMS40LS44Mi4yLTEuNTYuNjItMi4xNCAxLjIzYTQuMzEgNC4zMSAwIDAgMC0uNDMgNGMuMTkuNzQuMyAxLjIuMSAxLjUtLjIuMy0uMTUuMTgtLjY4LjI1YTMuOTQgMy45NCAwIDAgMC0zIDEuN2MtLjU4Ljg0LS45IDEuODItLjkzIDIuODRhMTEuODUgMTEuODUgMCAwIDEgLjkxLTEzLjczIDEyIDEyIDAgMCAxIDYuODItNC4xOVpNNy45MSAyNC44NGMtLjE2LTEuMTMtLjQxLTMuMTcuMzktNC4yNGEyIDIgMCAwIDEgMS43LS45MiAyLjYyIDIuNjIgMCAwIDAgMi0xLjEzIDMuNjQgMy42NCAwIDAgMCAuMTYtMy4xMWMtLjI2LTEtLjQtMS42Ny4xLTIuMzQuMzgtLjI0LjgtLjQyIDEuMjMtLjUzIDEuMjctLjQzIDMtMSAzLjQ0LTIuODQuNTYtMi4zMy0uNC00LTEuMjUtNS41NUwxNS42MyA0SDE2YzIuMjYgMCA0LjQ4LjY1IDYuMzkgMS44NmEyMS43NCAyMS43NCAwIDAgMS0zLjc2IDQuNGMtMS4zOCAxLjI1LS4zNyAyLjY5LjMgMy42NEE0IDQgMCAwIDEgMjAgMTYuODNhMS42OCAxLjY4IDAgMCAwIC40MiAxLjU5IDIuMTMgMi4xMyAwIDAgMCAyLjA4LjE3IDUgNSAwIDAgMSAuNzMtLjE1Yy4xMS4zOC0uMS42OS0xIDEuNTItLjkuODMtMi4wOSAxLjk1LTEuNzMgMy43NGEzLjc1IDMuNzUgMCAwIDAgMS45IDIuNDIgMTEuOTIgMTEuOTIgMCAwIDEtMTQuNDktMS4yOFptMTYuMiAwLS4zOS0uMjVjLS43LS40Mi0xLjEzLS43Mi0xLjI0LTEuMjctLjExLS41NS4yNS0xLjA1IDEuMTQtMS44OC44OS0uODMgMi4xMy0yIDEuNDctMy43Ny0uNjEtMS42MS0yLjI5LTEuMi0zLjA1LTFhNi4xOCA2LjE4IDAgMCAwLTEuNDctMy45Yy0uMjUtLjMtLjQ1LS42NC0uNi0xYTIzLjMxIDIzLjMxIDAgMCAwIDQtNC42NyAxMS45NSAxMS45NSAwIDAgMSAuMTIgMTcuNzVsLjAyLS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWFydGg0OEZpbGxlZCcsIFwiNDhcIiwgW1wibTIzLjIgNi41Mi44LS4wMmMzLjQ1IDAgNi42NyAxIDkuMzggMi43My0yIDMuMDYtNC40IDUuNDYtNS42MyA2LjYtLjk3LjktLjk3IDIuMzktLjE1IDMuMzFhMTAuNjEgMTAuNjEgMCAwIDEgMi43MyA3LjM1Yy0uMDIuODUuNjIgMS4zMS45NSAxLjQ3LjM1LjE2IDEuMDQuMzMgMS42Ni0uMTIuOTMtLjY3IDEuOS0uMzYgMi4xNC0uMDYuMDcuMDkuMTcuMjYuMDIuNjUtLjE3LjQ2LS42NiAxLjE4LTEuODUgMi4wN2E1LjQzIDUuNDMgMCAwIDAtMi4xMyAyLjg0Yy0uMyAxLjA3LS4xIDIuMDcuMyAyLjkxYTcuMTYgNy4xNiAwIDAgMCAyLjA4IDIuNDUgMTcuNDQgMTcuNDQgMCAwIDEtMjEuNzUtMi4ydi0uMWMtLjI1LTIuODItLjA0LTQuNDQuMy01LjM4LjMyLS44NC43NC0xLjEyIDEuMTktMS4yOGE0LjcxIDQuNzEgMCAwIDEgMS4zMS0uMjZjLjI4LS4wMy42LS4wNy44OC0uMTIuODktLjE1IDIuMDUtLjUxIDIuNjktMS44LjU1LTEuMS41LTIuMjUuMzYtMy4yMi0uMDctLjQ5LS4xOC0uOTctLjI5LTEuNDFsLS4wNC0uMThjLS4wOS0uMzgtLjE3LS43My0uMjMtMS4wNy0uMTUtLjgtLjEzLTEuMjcuMDEtMS41OC4xLS4yMy4zOC0uNiAxLjQyLS45IDIuMzMtLjY2IDMuOTgtMS42NSA1LTIuOTVhNS42NiA1LjY2IDAgMCAwIDEuMTEtNC4yN2MtLjE2LTEuNDEtLjc0LTIuNzktMS4zOC00LS4yOC0uNS0uNTctMS0uODctMS40NlpNMjQgNGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMCAwIDAtNDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFYXJ0aDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aDQ4UmVndWxhcicsIFwiNDhcIiwgW1wibTIzLjIgNi41Mi44LS4wMmMzLjQ1IDAgNi42NyAxIDkuMzggMi43My0yIDMuMDYtNC40IDUuNDYtNS42MyA2LjYtLjk3LjktLjk3IDIuMzktLjE1IDMuMzFhMTAuNjEgMTAuNjEgMCAwIDEgMi43MyA3LjM1Yy0uMDIuODUuNjIgMS4zMS45NSAxLjQ3LjM1LjE2IDEuMDQuMzMgMS42Ni0uMTIuOTMtLjY3IDEuOS0uMzYgMi4xNC0uMDYuMDcuMDkuMTcuMjYuMDIuNjUtLjE3LjQ2LS42NiAxLjE4LTEuODUgMi4wN2E1LjQzIDUuNDMgMCAwIDAtMi4xMyAyLjg0Yy0uMyAxLjA3LS4xIDIuMDcuMyAyLjkxYTcuMTYgNy4xNiAwIDAgMCAyLjA4IDIuNDUgMTcuNDQgMTcuNDQgMCAwIDEtMjEuNzUtMi4ydi0uMWMtLjI1LTIuODItLjA0LTQuNDQuMy01LjM4LjMyLS44NC43NC0xLjEyIDEuMTktMS4yOGE0LjcxIDQuNzEgMCAwIDEgMS4zMS0uMjZjLjI4LS4wMy42LS4wNy44OC0uMTIuODktLjE1IDIuMDUtLjUxIDIuNjktMS44LjU1LTEuMS41LTIuMjUuMzYtMy4yMi0uMDctLjQ5LS4xOC0uOTctLjI5LTEuNDFsLS4wNC0uMThjLS4wOS0uMzgtLjE3LS43My0uMjMtMS4wNy0uMTUtLjgtLjEzLTEuMjcuMDEtMS41OC4xLS4yMy4zOC0uNiAxLjQyLS45IDIuMzMtLjY2IDMuOTgtMS42NSA1LTIuOTVhNS42NiA1LjY2IDAgMCAwIDEuMTEtNC4yN2MtLjE2LTEuNDEtLjc0LTIuNzktMS4zOC00LS4yOC0uNS0uNTctMS0uODctMS40NlptLTIuNzcuMzRjLjUuNzEgMSAxLjUgMS40NCAyLjMxLjU4IDEuMDggMSAyLjE0IDEuMTEgMy4xLjExLjk0LS4wNiAxLjc0LS42IDIuNDUtLjU4LjczLTEuNjggMS41LTMuNzIgMi4wOC0xLjQ3LjQyLTIuNSAxLjE1LTMgMi4yN2E1LjE0IDUuMTQgMCAwIDAtLjIgMy4wN2MuMDcuNC4xNy44LjI2IDEuMTlsLjA0LjE2Yy4xLjQ0LjIuODQuMjUgMS4yMy4xMi43OC4wOCAxLjMxLS4xMyAxLjcyLS4xLjIxLS4yNi4zNS0uODguNDZsLS42NC4wOS0uNS4wNmMtLjQ0LjA2LS45Ni4xNS0xLjQ3LjM0YTQuMzUgNC4zNSAwIDAgMC0yLjY4IDIuNzZjLS4zLjgzLS41IDEuODUtLjU1IDMuMTNBMTcuNSAxNy41IDAgMCAxIDIwLjQ0IDYuODdaTTM1LjYgMzcuMTJhNS4yOCA1LjI4IDAgMCAxLTEuOS0xLjk1Yy0uMjEtLjQzLS4yNi0uOC0uMTYtMS4xNy4xLS4zNy40LS45IDEuMjItMS41IDEuMzktMS4wNCAyLjMtMi4xMiAyLjctMy4yYTMuMDcgMy4wNyAwIDAgMC0uNDQtMy4xYy0uOTctMS4yLTIuNjgtMS41Mi00LjIyLTEuMDRhMTMuMTIgMTMuMTIgMCAwIDAtMy4yNC03LjU5IDM5LjEyIDM5LjEyIDAgMCAwIDUuODUtNi44NUExNy40NiAxNy40NiAwIDAgMSA0MS41IDI0YzAgNS4yMi0yLjI5IDkuOS01LjkxIDEzLjEyWk0yNCA0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAwIDAgMC00MFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoTGVhZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMSA4YTcgNyAwIDAgMSAxMy45Ny0uNjdsLS42MS0uMTVhOS41MiA5LjUyIDAgMCAwLTQuNTMuMDkgMTAuMzggMTAuMzggMCAwIDAtLjM2LS43NWMtLjEtLjItLjE5LS40Ni0uMTctLjczLjAyLS4zMi4xOC0uNTguNDQtLjc4LjMyLS4yNC43Mi0uNzggMS4wNi0xLjMzLjE3LS4yNy4zMS0uNTEuNDEtLjdsLjAyLS4wM0E1Ljk3IDUuOTcgMCAwIDAgOCAyaC0uMDVjLjA5LjE4LjE5LjQuMjguNjMuMjQuNjUuNDYgMS42LjA3IDIuNDMtLjM2Ljc3LS45OC45Ny0xLjQ1IDEuMWgtLjA3Yy0uNDUuMTMtLjY0LjE3LS43Ny4zOC0uMTMuMi0uMS40My4wNC45bC4wMy4xYy4wNi4xOS4xMy40LjE2LjYuMDUuMjYuMDYuNTgtLjEuODktLjE2LjMtLjM3LjUxLS42Mi42NS0uMjQuMTMtLjQ4LjE3LS42Ny4ybC0uMDcuMDJjLS4zNi4wNi0uNTQuMS0uNzEuMjgtLjE0LjE1LS4yMi40LS4yNy43N2wtLjA1LjQ2di4wOGwtLjA3LjUzLS4wMy4xMWE2IDYgMCAwIDAgMi4yMiAxLjQ4Yy0uMi4yOC0uMzcuNTctLjUzLjg3QTcgNyAwIDAgMSAxIDhabTE0LjkzLjc0YS41LjUgMCAwIDAtLjQzLS4yNGgtLjAzbC0uMS0uMDJhNi4xNCA2LjE0IDAgMCAxLS4zLS4wOGwtLjA5LS4wM2MtLjIzLS4wNi0uNTEtLjE0LS44NC0uMjFBOC41MiA4LjUyIDAgMCAwIDExLjE5IDhjLTEuMi4xNS0yLjEyLjU2LTIuNzUgMS4xNWEyLjg1IDIuODUgMCAwIDAtLjkgMi42MiAxMy4xNyAxMy4xNyAwIDAgMSAzLjc3LTIuMjMuNS41IDAgMSAxIC4zOC45MmMtLjguMzItMS41NC43LTIuMiAxLjFhOC40NyA4LjQ3IDAgMCAwLTMuNDQgMy43Mi41LjUgMCAxIDAgLjkuNDRjLjM4LS43Ni44NC0xLjQ1IDEuNDQtMi4wNmEzLjkyIDMuOTIgMCAwIDAgLjU5LjggMy4wNyAzLjA3IDAgMCAwIDMuOS41OGMuNDUtLjI4Ljc3LS42NyAxLTEuMDguMzctLjYzLjU4LTEuMzguNzQtMS45NGwuMS0uMzdhNy41IDcuNSAwIDAgMSAxLTIuMDNWOS42Yy4xLS4xNC4xOC0uMjcuMjMtLjM4YS41LjUgMCAwIDAtLjAyLS40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aExlYWYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDhhNyA3IDAgMCAxIDEzLjk3LS42NyAxMy41NiAxMy41NiAwIDAgMC0xLjA0LS4yNCA1Ljk5IDUuOTkgMCAwIDAtMS45LTMuNTNsLS4zOC42NWE2LjM3IDYuMzcgMCAwIDEtMS4zNSAxLjY0YzAgLjAzIDAgLjEuMDguMjdsLjEzLjI3Yy4xLjE4LjIuNC4zLjY2LS4zNC4wNS0uNjcuMTItLjk4LjIyYTEwLjM4IDEwLjM4IDAgMCAwLS4zNi0uNzVjLS4xLS4yLS4xOS0uNDYtLjE3LS43My4wMi0uMzIuMTgtLjU4LjQ0LS43OC4zMi0uMjQuNzItLjc4IDEuMDYtMS4zMy4xNy0uMjcuMzEtLjUxLjQxLS43bC4wMi0uMDNBNS45NyA1Ljk3IDAgMCAwIDggMmgtLjA1Yy4wOS4xOC4xOS40LjI4LjYzLjI0LjY1LjQ2IDEuNi4wNyAyLjQzLS4zNi43Ny0uOTguOTctMS40NSAxLjFoLS4wN2MtLjQ1LjEzLS42NC4xNy0uNzcuMzgtLjEzLjItLjEuNDMuMDQuOWwuMDMuMWMuMDYuMTkuMTMuNC4xNi42LjA1LjI2LjA2LjU4LS4xLjg5LS4xNi4zLS4zNy41MS0uNjIuNjUtLjI0LjEzLS40OC4xNy0uNjcuMmwtLjA3LjAyYy0uMzYuMDYtLjU0LjEtLjcxLjI4LS4xNC4xNS0uMjIuNC0uMjcuNzdsLS4wNS40NnYuMDhsLS4wNy41My0uMDMuMTFhNiA2IDAgMCAwIDIuMjIgMS40OGMtLjIuMjgtLjM3LjU3LS41My44N0E3IDcgMCAwIDEgMSA4Wm0xIDBjMCAxLjA4LjI5IDIuMS43OSAyLjk3IDAtLjA1IDAtLjEuMDItLjE1LjA1LS40LjE2LS45My41My0xLjMyYTIuMDIgMi4wMiAwIDAgMSAxLjM0LS42Yy4xNy0uMDMuMjgtLjA2LjM2LS4xLjA2LS4wNC4xNC0uMS4yMS0uMjQuMDEtLjAyLjAzLS4wOSAwLS4yNGEyOC42NCAyOC42NCAwIDAgMS0uMTYtLjU4Yy0uMTMtLjQzLS4zMy0xLjEyLjA4LTEuNzUuMzYtLjU1Ljk0LS42OSAxLjMyLS43OC4wNCAwIC4wOC0uMDIuMTEtLjAzLjQtLjEuNjMtLjIuOC0uNTQuMi0uNDYuMTItMS4wNy0uMS0xLjY1YTUuMzggNS4zOCAwIDAgMC0uNDQtLjg4QTYgNiAwIDAgMCAyIDhabTEzLjkzLjc0YS41LjUgMCAwIDAtLjQzLS4yNGgtLjAzbC0uMS0uMDJhNi4xNCA2LjE0IDAgMCAxLS4zLS4wOGwtLjA5LS4wM2MtLjIzLS4wNi0uNTEtLjE0LS44NC0uMjFBOC41MiA4LjUyIDAgMCAwIDExLjE5IDhjLTEuMi4xNS0yLjEyLjU2LTIuNzUgMS4xNWEyLjg1IDIuODUgMCAwIDAtLjkgMi42MiAxMy4xNyAxMy4xNyAwIDAgMSAzLjc3LTIuMjMuNS41IDAgMSAxIC4zOC45MmMtLjguMzItMS41NC43LTIuMiAxLjFhOC40NyA4LjQ3IDAgMCAwLTMuNDQgMy43Mi41LjUgMCAxIDAgLjkuNDRjLjM4LS43Ni44NC0xLjQ1IDEuNDQtMi4wNmEzLjkyIDMuOTIgMCAwIDAgLjU5LjggMy4wNyAzLjA3IDAgMCAwIDMuOS41OGMuNDUtLjI4Ljc3LS42NyAxLTEuMDguMzctLjYzLjU4LTEuMzguNzQtMS45NGwuMS0uMzdhNy41IDcuNSAwIDAgMSAxLTIuMDNWOS42Yy4xLS4xNC4xOC0uMjcuMjMtLjM4YS41LjUgMCAwIDAtLjAyLS40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoTGVhZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgLjM0bC0uNjQtLjE2YTkuNTIgOS41MiAwIDAgMC0zLjMtLjE3Yy0uNi4wOC0xLjE2LjIxLTEuNjcuNGE1IDUgMCAwIDAtLjEtLjU0Yy0uMTMtLjQ5LS40NS0uODktLjc3LTEuM2wtLjE0LS4xOGMtLjE2LS4yLS4zNy0uNDgtLjQ0LS43N2EuOS45IDAgMCAxIC4zOC0xIDE4LjYgMTguNiAwIDAgMCAxLjc0LTEuNjVsLjc4LS44MkE2Ljk3IDYuOTcgMCAwIDAgOS43NCAzYy4xMi4yMy4yNi41LjM4LjgzLjI4Ljc0LjUyIDEuODIuMDggMi43Ni0uNC44Ni0xLjEgMS4wOC0xLjYzIDEuMjJsLS4xLjAyYy0uNS4xMy0uNzUuMi0uOTMuNDYtLjE3LjI2LS4xMi41OC4wNCAxLjEybC4wNC4xMmMuMDcuMjEuMTQuNDYuMTguNjkuMDUuMjguMDYuNjMtLjExLjk3LS4xOC4zNC0uNDEuNTctLjY5LjcyLS4yNi4xNC0uNTMuMi0uNzUuMjRsLS4wOC4wMWMtLjQxLjA3LS42NS4xMi0uODcuMzUtLjE4LjItLjI4LjUxLS4zNC45NGwtLjA1LjU0di4xYy0uMDIuMi0uMDQuNDEtLjA5LjZ2LjAyYTcgNyAwIDAgMCAzLjg3IDIuMTdjLS4xOC4zLS4zNS42LS41MS45MUE4IDggMCAwIDEgMiAxMFptMTYuOTMgMS43NGEuNS41IDAgMCAwLS40My0uMjRoLS4wM2wtLjEtLjAyYTYuMTYgNi4xNiAwIDAgMS0uMy0uMDhsLS4wOS0uMDNjLS4yMy0uMDYtLjUxLS4xNC0uODQtLjIxYTguNTIgOC41MiAwIDAgMC0yLjk1LS4xNmMtMS4yLjE1LTIuMTIuNTYtMi43NSAxLjE1YTIuODUgMi44NSAwIDAgMC0uOSAyLjYyIDEzLjE3IDEzLjE3IDAgMCAxIDMuNzctMi4yMy41LjUgMCAxIDEgLjM4LjkyYy0uOC4zMi0xLjU0LjctMi4yIDEuMWE4LjQ3IDguNDcgMCAwIDAtMy40NCAzLjcyLjUuNSAwIDAgMCAuOS40NGMuMzgtLjc2Ljg0LTEuNDUgMS40NC0yLjA2YTMuNzEgMy43MSAwIDAgMCAuNTkuOCAzLjA3IDMuMDcgMCAwIDAgMy45LjU4Yy40NS0uMjguNzctLjY3IDEtMS4wOC4zNy0uNjMuNTgtMS4zOC43NC0xLjk0bC4xLS4zN2E3LjUgNy41IDAgMCAxIDEtMi4wM3YtLjAyYy4xLS4xNC4xOC0uMjcuMjMtLjM4YS41LjUgMCAwIDAtLjAyLS40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aExlYWYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAuMzQgMTMuNzYgMTMuNzYgMCAwIDAtMS0uMjNWMTBjMC0yLjEtLjkxLTMuOTctMi4zNi01LjI1bC0uMDcuMDctLjc5Ljg0Yy0uNi42Mi0xLjM1IDEuMzctMS44NSAxLjc1LjAzLjA3LjEuMTguMjQuMzZsLjEyLjE2YTQuNjcgNC42NyAwIDAgMSAxLjA3IDIuMmMtLjM0LjA2LS42Ni4xNi0uOTcuMjhhNSA1IDAgMCAwLS4xLS41NWMtLjEzLS40OS0uNDUtLjg5LS43Ny0xLjNsLS4xNC0uMThjLS4xNi0uMi0uMzctLjQ4LS40NC0uNzdhLjkuOSAwIDAgMSAuMzgtMSAxOC42IDE4LjYgMCAwIDAgMS43NC0xLjY1bC43OC0uODJBNi45NyA2Ljk3IDAgMCAwIDkuNzQgM2MuMTIuMjMuMjYuNS4zOC44My4yOC43NC41MiAxLjgyLjA4IDIuNzYtLjQuODYtMS4xIDEuMDgtMS42MyAxLjIybC0uMS4wMmMtLjUuMTMtLjc1LjItLjkzLjQ2LS4xNy4yNi0uMTIuNTguMDQgMS4xMmwuMDQuMTJjLjA3LjIxLjE0LjQ2LjE4LjY5LjA1LjI4LjA2LjYzLS4xMS45Ny0uMTguMzQtLjQxLjU3LS42OS43Mi0uMjYuMTQtLjUzLjItLjc1LjI0bC0uMDguMDFjLS40MS4wNy0uNjUuMTItLjg3LjM1LS4xOC4yLS4yOC41MS0uMzQuOTRsLS4wNS41NHYuMWMtLjAyLjItLjA0LjQxLS4wOS42di4wMmE3IDcgMCAwIDAgMy44NyAyLjE3Yy0uMTguMy0uMzUuNi0uNTEuOTFBOCA4IDAgMCAxIDIgMTBabTYuOC02LjY1YTUuOCA1LjggMCAwIDAtLjEzLS4yMiA3IDcgMCAwIDAtNC43MiAxMC4zOWwuMDItLjJjLjA2LS40Ni4yLTEuMDYuNi0xLjQ5LjQ2LS41IDEuMDItLjU5IDEuNC0uNjVsLjEtLjAyYy4yMS0uMDMuMzQtLjA3LjQ1LS4xMy4xLS4wNS4yLS4xMy4yOC0uMy4wMy0uMDYuMDUtLjE1LjAyLS4zNGE0LjQgNC40IDAgMCAwLS4xNS0uNTRsLS4wNC0uMTVjLS4xNi0uNS0uMzgtMS4yNi4wOC0xLjk2LjQtLjYgMS4wNC0uNzYgMS40OC0uODdsLjEzLS4wM2MuNDctLjEyLjc3LS4yNC45OC0uNjguMjYtLjU2LjE0LTEuMy0uMTItMS45OGE2LjMzIDYuMzMgMCAwIDAtLjM4LS44M1ptMTAuMTMgOC4zOWEuNS41IDAgMCAwLS40My0uMjRoLS4wM2wtLjEtLjAyYTYuMTYgNi4xNiAwIDAgMS0uMy0uMDhsLS4wOS0uMDNjLS4yMy0uMDYtLjUxLS4xNC0uODQtLjIxYTguNTIgOC41MiAwIDAgMC0yLjk1LS4xNmMtMS4yLjE1LTIuMTIuNTYtMi43NSAxLjE1YTIuODUgMi44NSAwIDAgMC0uOSAyLjYyIDEzLjE3IDEzLjE3IDAgMCAxIDMuNzctMi4yMy41LjUgMCAxIDEgLjM4LjkyYy0uOC4zMi0xLjU0LjctMi4yIDEuMWE4LjQ3IDguNDcgMCAwIDAtMy40NCAzLjcyLjUuNSAwIDAgMCAuOS40NGMuMzgtLjc2Ljg0LTEuNDUgMS40NC0yLjA2YTMuNzEgMy43MSAwIDAgMCAuNTkuOCAzLjA3IDMuMDcgMCAwIDAgMy45LjU4Yy40NS0uMjguNzctLjY3IDEtMS4wOC4zNy0uNjMuNTgtMS4zOC43NC0xLjk0bC4xLS4zN2E3LjUgNy41IDAgMCAxIDEtMi4wM3YtLjAyYy4xLS4xNC4xOC0uMjcuMjMtLjM4YS41LjUgMCAwIDAtLjAyLS40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoTGVhZjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuOTUgMi4wNUExMCAxMCAwIDAgMSAyMiAxMS43NWMtMS4xNy0uMjQtMi44NS0uNC01LjIzLS4wOC0uNjQuMDktMS4yMi4yNi0xLjc2LjVhMjUuMyAyNS4zIDAgMCAwLS4xNS0uNjVsLS4wMi0uMDRhNi4yMyA2LjIzIDAgMCAwLS4zLS40MmwtLjEtLjE0Yy0uMTYtLjIxLS4zNi0uNDctLjUyLS43MS0uMi0uMy0uNDItLjctLjQ5LTEuMWExLjM5IDEuMzkgMCAwIDEgLjU0LTEuMzggMTMgMTMgMCAwIDAgMS44My0xLjk3Yy4yOS0uMzYuNTQtLjcuNzMtLjk1YTguNDYgOC40NiAwIDAgMC00LjY5LTEuM2MuMTIuMjQuMjUuNTIuMzcuODQuMzUuOTIuNjcgMi4yOC4xIDMuNDktLjUyIDEuMTEtMS40MiAxLjQtMi4wOSAxLjU3bC0uMDguMDJjLS42Ni4xNy0uOS4yNC0xLjEuNTItLjE2LjI1LS4xNC41OC4wNyAxLjI1bC4wNC4xNGE3IDcgMCAwIDEgLjIzLjg3Yy4wNy4zNi4wOS44Mi0uMTUgMS4yNy0uMjMuNDUtLjU0Ljc1LS45Ljk1LS4zNC4xOC0uNy4yNS0uOTYuM2wtLjA5LjAyYy0uNTEuMDktLjc2LjEzLTEgLjM5LS4xOS4yLS4zLjU1LS4zOCAxLjA3bC0uMDYuNjUtLjAxLjEyYy0uMDIuMjQtLjA0LjUyLS4xLjc2YTguNDggOC40OCAwIDAgMCA1LjYzIDIuNzRjLS4xNy41LS4yOSAxLS4zNCAxLjQ3QTkuOTYgOS45NiAwIDAgMSAyIDEyYTEwIDEwIDAgMCAxIDguOTMtOS45NGwuMDItLjAxWk0xMiAyMi4yYy4wNS0uOTcuNDktMi4xNSAxLjIzLTMuMjZhOC45IDguOSAwIDAgMSA1LjM4LTMuOTcuNS41IDAgMCAwLS4yNC0uOTYgOS45IDkuOSAwIDAgMC01LjczIDRjLS4xLS4zLS4xNS0uNjQtLjE1LTEuMDIgMC0uOTIuNDYtMS45MSAxLjItMi43YTUuMzMgNS4zMyAwIDAgMSAzLjItMS42NCAxMy41IDEzLjUgMCAwIDEgNS41Ni4yMy43NS43NSAwIDAgMSAuMjEgMS4zNS45Mi45MiAwIDAgMC0uMjYuMzRjLS4xLjItLjIuNDgtLjMyLjgybC0uMjYuOTMtLjA1LjIxYy0uMTIuNDEtLjI0Ljg1LS4zOSAxLjI5LS4yOS44Ni0uNyAxLjc4LTEuNCAyLjQ4YTQuMDIgNC4wMiAwIDAgMS0zIDEuMiAzLjgyIDMuODIgMCAwIDEtMi44NC0xLjE2Yy0uNC43NC0uNjIgMS40My0uNjUgMS45NWEuNzUuNzUgMCAxIDEtMS41LS4xWlwiXSk7XG5leHBvcnQgY29uc3QgRWFydGhMZWFmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoTGVhZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjk1IDIuMDVoLS4wMkExMCAxMCAwIDAgMCA0LjEgMTguMTVhOS45OSA5Ljk5IDAgMCAwIDYuOTIgMy44MWMuMDUtLjQ3LjE3LS45Ny4zNC0xLjQ3YTguNDggOC40OCAwIDAgMS01LjYzLTIuNzRjLjA2LS4yNC4wOC0uNTIuMS0uNzZsLjAxLS4xMi4wNi0uNjVjLjA3LS41Mi4yLS44Ny4zOC0xLjA3LjI0LS4yNi40OS0uMyAxLS40bC4xLS4wMWMuMjYtLjA1LjYxLS4xMi45NS0uMy4zNi0uMi42Ny0uNS45LS45NS4yNC0uNDUuMjItLjkuMTUtMS4yN2E3IDcgMCAwIDAtLjI3LTEuMDFjLS4yLS42Ny0uMjMtMS0uMDYtMS4yNS4xOC0uMjguNDMtLjM1IDEuMDktLjUybC4wOC0uMDJjLjY3LS4xNyAxLjU3LS40NiAyLjEtMS41Ny41Ni0xLjIuMjQtMi41Ny0uMS0zLjQ5LS4xMy0uMzItLjI2LS42LS4zOC0uODVIMTJjMS42NyAwIDMuMjIuNDggNC41MyAxLjMtLjE5LjI2LS40NC42LS43My45NmExMyAxMyAwIDAgMS0xLjgyIDEuOTYgMS4zOSAxLjM5IDAgMCAwLS41NSAxLjM4Yy4wNy40Mi4zLjguNSAxLjEuMTUuMjUuMzUuNS41LjcybC4xMi4xNGE2LjIzIDYuMjMgMCAwIDEgLjI5LjQybC4wMi4wNGE0LjEgNC4xIDAgMCAxIC4xNS42NWMuNDUtLjIuOTMtLjM1IDEuNDQtLjQ1LS4wNC0uMjMtLjEtLjUtLjE5LS43MmEzLjY5IDMuNjkgMCAwIDAtLjY1LTEuMDFjLS4xNS0uMjEtLjMtLjQtLjQzLS42LS4xNi0uMjQtLjIzLS40LS4yNi0uNWExNC42IDE0LjYgMCAwIDAgMi4wNS0yLjJjLjMtLjM2LjU2LS43Ljc2LS45N2E4LjQ4IDguNDggMCAwIDEgMi43NiA1LjgyYy41OC4wNCAxLjA4LjEyIDEuNS4yYTEwIDEwIDAgMCAwLTExLjA0LTkuNjlaTTQuNDQgMTUuODhhOC41IDguNSAwIDAgMSA1LjgtMTIuMiA3LjQxIDcuNDEgMCAwIDEgLjU3IDEuMmMuMzEuODQuNDQgMS43LjE1IDIuMzItLjIzLjQ4LS41NS42MS0xLjExLjc2TDkuNjkgOGMtLjU0LjEzLTEuMzcuMzMtMS45IDEuMTItLjYuOTEtLjMgMS45MS0uMTIgMi41MmwuMDYuMTljLjA4LjI1LjE0LjQ1LjE4LjYzLjAzLjIyIDAgLjMgMCAuMzNhLjcuNyAwIDAgMS0uMy4zMmMtLjEuMDYtLjI1LjEtLjUuMTRsLS4xMy4wMmMtLjQ2LjA4LTEuMi4yLTEuOC44NGEzLjI3IDMuMjcgMCAwIDAtLjc0IDEuNzdaTTEyIDIyLjJjLjA2LS45Ni41LTIuMTQgMS4yMy0zLjI1YTguOSA4LjkgMCAwIDEgNS4zOC0zLjk3LjUuNSAwIDAgMC0uMjQtLjk3IDkuOSA5LjkgMCAwIDAtNS43MyA0Yy0uMS0uMy0uMTUtLjYzLS4xNS0xLjAxIDAtLjkyLjQ3LTEuOTEgMS4yLTIuN2E1LjMzIDUuMzMgMCAwIDEgMy4yLTEuNjQgMTMuNSAxMy41IDAgMCAxIDUuNTYuMjMuNzUuNzUgMCAwIDEgLjIyIDEuMzUuOTEuOTEgMCAwIDAtLjI2LjM0Yy0uMTEuMi0uMjIuNDgtLjMyLjgyLS4xLjI5LS4xNy42LS4yNi45M2wtLjA2LjIxYy0uMTEuNDEtLjI0Ljg1LS4zOCAxLjI5LS4zLjg2LS43IDEuNzgtMS40IDIuNDhhNC4wMiA0LjAyIDAgMCAxLTMgMS4yIDMuODIgMy44MiAwIDAgMS0yLjg1LTEuMTZjLS40Ljc0LS42MSAxLjQzLS42NSAxLjk1YS43NS43NSAwIDAgMS0xLjUtLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBFYXJ0aExlYWYzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aExlYWYzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTguMjIgNC4zNkExNCAxNCAwIDAgMSAzMCAxNnYuMDdjLTEuNzctLjQtMy44OC0uNy02LS41My0xLjMzLjEtMi43LjM5LTQgLjk1YTQgNCAwIDAgMC0xLjA3LTIuNTljLS42Ny0uOTUtMS42OC0yLjM5LS4zLTMuNjQgMS40NC0xLjMgMi43LTIuNzcgMy43Ni00LjRBMTEuOTIgMTEuOTIgMCAwIDAgMTYgNGgtLjM3bC4wNS4xOC4wNi4xYy44MyAxLjUzIDEuNzQgMy4xNyAxLjE5IDUuNDUtLjQ0IDEuODItMi4xNCAyLjQtMy40IDIuODNsLS4wNC4wMWMtLjQzLjExLS44NS4zLTEuMjMuNTMtLjUuNjctLjM2IDEuMzQtLjEgMi4zNGEzLjY0IDMuNjQgMCAwIDEtLjE2IDMuMTEgMi42MiAyLjYyIDAgMCAxLTIgMS4xMyAyIDIgMCAwIDAtMS43LjkyYy0uOCAxLjA3LS41NSAzLjExLS4zOSA0LjI0YTExLjkyIDExLjkyIDAgMCAwIDcuMDMgMy4xbC4wNC4wMWMtLjIzLjctLjM4IDEuMzYtLjQ1IDEuOTdBMTQuMDIgMTQuMDIgMCAwIDEgMy4wNyAxMC42NGExNCAxNCAwIDAgMSA1LjE1LTYuMjhaTTE4LjM4IDI3LjNjLjc3LjggMi4xOCAxLjY5IDQuNjIgMS42OSA0LjMgMCA1LjY0LTUuNTMgNi4yNS04LjA0LjEtLjQyLjE4LS43NS4yNS0uOTYuMTUtLjQ1LjU0LS44Ljk4LTEuMDQuNy0uNC43LTEuMDUtLjA2LTEuMjUtMy42My0uOTUtOS4wMy0xLjQ4LTEyLjQyIDEuOS0xLjQgMS40MS0xLjM4IDMuMjUtMS4xIDQuNmwuMTgtLjI1QTE0LjYgMTQuNiAwIDAgMSAyNCAxOC43OWEuNzUuNzUgMCAwIDEgLjUgMS40MiAxMy4xIDEzLjEgMCAwIDAtNi4yIDQuNjQgMTEuNCAxMS40IDAgMCAwLTIuMyA1LjQyLjc1Ljc1IDAgMCAwIDEuNS4wNGMuMDctLjkxLjM2LTEuOTUuODgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aExlYWYzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiAyYTE0IDE0IDAgMCAwLTEuNDcgMjcuOTJjLjA3LS42MS4yMi0xLjI4LjQ1LTEuOTdoLS4wNGExMS45MiAxMS45MiAwIDAgMS03LjAzLTMuMTFjLS4xNi0xLjEzLS40MS0zLjE3LjM5LTQuMjRhMiAyIDAgMCAxIDEuNy0uOTIgMi42MiAyLjYyIDAgMCAwIDItMS4xMyAzLjY0IDMuNjQgMCAwIDAgLjE2LTMuMTFjLS4yNi0xLS40LTEuNjcuMS0yLjM0LjM4LS4yNC44LS40MiAxLjIzLS41M2wuMDMtLjAxYzEuMjctLjQzIDIuOTctMSAzLjQxLTIuODMuNTUtMi4yOC0uMzYtMy45Mi0xLjItNS40NGwtLjA1LS4xMS0uMDUtLjE4SDE2YzIuMjYgMCA0LjQ4LjY1IDYuMzkgMS44NmEyMS43NCAyMS43NCAwIDAgMS0zLjc2IDQuNGMtMS4zOCAxLjI1LS4zNyAyLjY5LjMgMy42NEE0IDQgMCAwIDEgMjAgMTYuNDljLjY1LS4yOCAxLjMtLjQ5IDEuOTctLjY0YTYuMTggNi4xOCAwIDAgMC0xLjQtMy4wOGMtLjI1LS4zLS40NS0uNjQtLjYtMWEyMy4zMSAyMy4zMSAwIDAgMCA0LTQuNjcgMTEuOTUgMTEuOTUgMCAwIDEgNCA4LjZjLjcxLjEgMS40LjIyIDIuMDMuMzdWMTZBMTQgMTQgMCAwIDAgMTYgMlptLTIuNTEgMi4yNy40OS45LjAzLjA1Yy43NSAxLjM0IDEuNCAyLjUuOTcgNC4wNS0uMTcuNjgtMSAxLTIuMTQgMS40LS44Mi4yLTEuNTYuNjItMi4xNCAxLjIzYTQuMzEgNC4zMSAwIDAgMC0uNDMgNGMuMTkuNzQuMyAxLjIuMSAxLjUtLjE0LjIxLS4xNi4yMS0uMzUuMjJsLS4zMy4wM2EzLjk0IDMuOTQgMCAwIDAtMyAxLjdjLS41OC44NC0uOSAxLjgyLS45MyAyLjg0YTExLjg1IDExLjg1IDAgMCAxIC45MS0xMy43MyAxMiAxMiAwIDAgMSA2LjgyLTQuMTlabTQuODkgMjMuMDRjLjc3LjggMi4xOCAxLjY5IDQuNjIgMS42OSA0LjMgMCA1LjY0LTUuNTMgNi4yNS04LjA0LjEtLjQyLjE4LS43NS4yNS0uOTYuMTUtLjQ1LjU0LS44Ljk4LTEuMDQuNy0uNC43LTEuMDUtLjA2LTEuMjUtMy42My0uOTUtOS4wMy0xLjQ4LTEyLjQyIDEuOS0xLjQgMS40MS0xLjM4IDMuMjUtMS4xIDQuNmwuMTgtLjI1QTE0LjYgMTQuNiAwIDAgMSAyNCAxOC43OWEuNzUuNzUgMCAwIDEgLjUgMS40MiAxMy4xIDEzLjEgMCAwIDAtNi4yIDQuNjQgMTEuNCAxMS40IDAgMCAwLTIuMyA1LjQyLjc1Ljc1IDAgMCAwIDEuNS4wNGMuMDctLjkxLjM2LTEuOTUuODgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VhcnRoTGVhZjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJtMjMuMiA2LjUyLjgtLjAyYzMuNDUgMCA2LjY3IDEgOS4zOCAyLjczLTIgMy4wNi00LjQgNS40Ni01LjYzIDYuNi0uOTcuOS0uOTcgMi4zOS0uMTUgMy4zMWExMC42NSAxMC42NSAwIDAgMSAyLjYxIDUuNDdjLjM1LS4yLjcxLS4zOCAxLjA3LS41NWEyNC45IDI0LjkgMCAwIDEgMTIuNjMtMS45M0EyMCAyMCAwIDEgMCAyNC4xNyA0NGMuMDQtLjEyLjEtLjIzLjE1LS4zNS4zOS0uNzcuOC0xLjUxIDEuMi0yLjIyYTE3LjQ0IDE3LjQ0IDAgMCAxLTEzLjc3LTQuOTN2LS4xYy0uMjUtMi44Mi0uMDQtNC40NC4zLTUuMzguMzItLjg0Ljc0LTEuMTIgMS4xOS0xLjI4YTQuNzEgNC43MSAwIDAgMSAxLjMxLS4yNmMuMjgtLjAzLjYtLjA3Ljg4LS4xMi44OS0uMTUgMi4wNS0uNTEgMi42OS0xLjguNTUtMS4xLjUtMi4yNS4zNi0zLjIyLS4wNy0uNDktLjE4LS45Ny0uMjktMS40MWwtLjA0LS4xOGMtLjA5LS4zOC0uMTctLjczLS4yMy0xLjA3LS4xNS0uOC0uMTMtMS4yNy4wMS0xLjU4LjEtLjIzLjM4LS42IDEuNDItLjkgMi4zMy0uNjYgMy45OC0xLjY1IDUtMi45NWE1LjY2IDUuNjYgMCAwIDAgMS4xMS00LjI3Yy0uMTYtMS40MS0uNzQtMi43OS0xLjM4LTQtLjI4LS41LS41Ny0xLS44Ny0xLjQ2Wm0yMS43NSAxNy43NmMtNC4xNC0uNjYtOS4wNS0uMTctMTIuODIgMS42LTEuOS44OC0zLjU4IDIuMTEtNC43IDMuNzVhOC4xOCA4LjE4IDAgMCAwLTEuMzMgNS45OCA5LjkgOS45IDAgMCAwIDEuMDUgMy4yNiAzMy40IDMzLjQgMCAwIDEgNi43LTcuMjcgMjcuODUgMjcuODUgMCAwIDEgMy42OC0yLjQ4aC4wMXYtLjAxaC4wMWExIDEgMCAwIDEgLjkgMS43OCA1LjY3IDUuNjcgMCAwIDAtLjIyLjEybC0uNy40MWMtLjU5LjM3LTEuNDMuOTUtMi40MyAxLjc0YTMxLjQ1IDMxLjQ1IDAgMCAwLTYuODUgNy42NiAzNy45IDM3LjkgMCAwIDAtMi4xNCAzLjczIDEgMSAwIDEgMCAxLjc4LjljLjY0LTEuMjcgMS4zLTIuNDIgMS45OS0zLjQ2YTEwLjU0IDEwLjU0IDAgMCAwIDcuMzcgMS45NCA2LjU0IDYuNTQgMCAwIDAgMy43OC0xLjYzIDkuMDQgOS4wNCAwIDAgMCAyLjQ0LTMuNjIgMTEuOSAxMS45IDAgMCAwIC41MS0zLjg5Yy4wNy0yLjE4LjE1LTQuNzcgMS45MS04Ljc3YTEuMjUgMS4yNSAwIDAgMC0uOTQtMS43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVhcnRoTGVhZjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFYXJ0aExlYWY0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIm0yMy4yIDYuNTIuOC0uMDJjMy40NSAwIDYuNjcgMSA5LjM4IDIuNzMtMiAzLjA2LTQuNCA1LjQ2LTUuNjMgNi42LS45Ny45LS45NyAyLjM5LS4xNSAzLjMxYTEwLjY1IDEwLjY1IDAgMCAxIDIuNjEgNS40NyAxNy4xNyAxNy4xNyAwIDAgMSAyLjM0LTEuMDggMTMuMTMgMTMuMTMgMCAwIDAtMy01Ljk2IDM5LjEyIDM5LjEyIDAgMCAwIDUuODUtNi44NUExNy40NyAxNy40NyAwIDAgMSA0MS4zOSAyMmMuODUgMCAxLjcuMDUgMi41Mi4xM0EyMCAyMCAwIDEgMCAyNC4xNyA0NGMuMDQtLjEyLjEtLjIzLjE1LS4zNS4zOS0uNzcuOC0xLjUxIDEuMi0yLjIyYTE3LjQ0IDE3LjQ0IDAgMCAxLTEzLjc3LTQuOTN2LS4xYy0uMjUtMi44Mi0uMDQtNC40NC4zLTUuMzguMzItLjg0Ljc0LTEuMTIgMS4xOS0xLjI4YTQuNzEgNC43MSAwIDAgMSAxLjMxLS4yNmMuMjgtLjAzLjYtLjA3Ljg4LS4xMi44OS0uMTUgMi4wNS0uNTEgMi42OS0xLjguNTUtMS4xLjUtMi4yNS4zNi0zLjIyLS4wNy0uNDktLjE4LS45Ny0uMjktMS40MWwtLjA0LS4xOGMtLjA5LS4zOC0uMTctLjczLS4yMy0xLjA3LS4xNS0uOC0uMTMtMS4yNy4wMS0xLjU4LjEtLjIzLjM4LS42IDEuNDItLjkgMi4zMy0uNjYgMy45OC0xLjY1IDUtMi45NWE1LjY2IDUuNjYgMCAwIDAgMS4xMS00LjI3Yy0uMTYtMS40MS0uNzQtMi43OS0xLjM4LTQtLjI4LS41LS41Ny0xLS44Ny0xLjQ2Wm0tMi43Ny4zNGMuNS43MSAxIDEuNSAxLjQ0IDIuMzEuNTggMS4wOCAxIDIuMTQgMS4xMSAzLjEuMTEuOTQtLjA2IDEuNzQtLjYgMi40NS0uNTguNzMtMS42OCAxLjUtMy43MiAyLjA4LTEuNDcuNDItMi41IDEuMTUtMyAyLjI3YTUuMTQgNS4xNCAwIDAgMC0uMiAzLjA3Yy4wNy40LjE3LjguMjYgMS4xOWwuMDQuMTZjLjEuNDQuMi44NC4yNSAxLjIzLjEyLjc4LjA4IDEuMzEtLjEzIDEuNzItLjEuMjEtLjI2LjM1LS44OC40NmwtLjY0LjA5LS41LjA2Yy0uNDQuMDYtLjk2LjE1LTEuNDcuMzRhNC4zNSA0LjM1IDAgMCAwLTIuNjggMi43NmMtLjMuODMtLjUgMS44NS0uNTUgMy4xM0ExNy41IDE3LjUgMCAwIDEgMjAuNDQgNi44N1pNNDQuOTUgMjQuM2MtNC4xNC0uNjctOS4wNS0uMTctMTIuODIgMS41OS0xLjkuODgtMy41OCAyLjExLTQuNyAzLjc1YTguMTggOC4xOCAwIDAgMC0xLjMzIDUuOTggOS45IDkuOSAwIDAgMCAxLjA1IDMuMjYgMzMuNCAzMy40IDAgMCAxIDYuNy03LjI3IDI3LjgzIDI3LjgzIDAgMCAxIDMuNjUtMi40N2wuMDMtLjAxaC4wMXYtLjAxaC4wMWExIDEgMCAwIDEgLjkgMS43OCA1LjY3IDUuNjcgMCAwIDAtLjIyLjEybC0uNy40MWMtLjU5LjM3LTEuNDMuOTUtMi40MyAxLjc0YTMxLjQ1IDMxLjQ1IDAgMCAwLTYuODUgNy42NiAzNy45IDM3LjkgMCAwIDAtMi4xNCAzLjczIDEgMSAwIDEgMCAxLjc4LjljLjY0LTEuMjcgMS4zLTIuNDIgMS45OS0zLjQ2YTEwLjU0IDEwLjU0IDAgMCAwIDcuMzcgMS45NCA2LjU0IDYuNTQgMCAwIDAgMy43OC0xLjYzIDkuMDQgOS4wNCAwIDAgMCAyLjQ0LTMuNjIgMTEuOSAxMS45IDAgMCAwIC41MS0zLjg5Yy4wNy0yLjE4LjE1LTQuNzcgMS45MS04Ljc3YTEuMjUgMS4yNSAwIDAgMC0uOTQtMS43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXQxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0MTJGaWxsZWQnLCBcIjEyXCIsIFtcIk03Ljc0IDEuNTZhMS45MSAxLjkxIDAgMCAxIDIuNyAyLjdsLS4yMy4yNC0yLjctMi43LjIzLS4yNFptLS45NS45NEwxLjY1IDcuNjVhLjUuNSAwIDAgMC0uMTQuMjVsLS41IDIuNWEuNS41IDAgMCAwIC41OS41OWwyLjUtLjVhLjUuNSAwIDAgMCAuMjYtLjE0TDkuNSA1LjIxIDYuOCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0MTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0xMC40NCAxLjU2YTEuOTEgMS45MSAwIDAgMC0yLjcgMGwtLjU1LjU1YS41LjUgMCAwIDAtLjA4LjA4TDEuNjUgNy42NWEuNS41IDAgMCAwLS4xNC4yNWwtLjUgMi41YS41LjUgMCAwIDAgLjU5LjU5bDIuNS0uNWEuNS41IDAgMCAwIC4yNi0uMTRsNi4wOC02LjA4Yy43NS0uNzUuNzUtMS45NiAwLTIuN1pNNy41IDMuMjFsMS4zIDEuMy01LjA0IDUuMDMtMS42Mi4zMi4zMi0xLjYxTDcuNSAzLjJabTIgLjU4TDguMiAyLjVsLjI0LS4yM2EuOTEuOTEgMCAxIDEgMS4zIDEuM2wtLjI0LjIyWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUzIDEuNzZhMi42MiAyLjYyIDAgMSAxIDMuNyAzLjcxbC0uNzcuNzgtMy43MS0zLjcuNzgtLjc5Wk05LjA0IDMuMjUgMi42NiA5LjY0Yy0uMzguMzctLjY0Ljg0LS43OCAxLjM1bC0uODYgMy4zOWEuNS41IDAgMCAwIC42LjZsMy4zOS0uODZjLjUxLS4xNC45OC0uNCAxLjM1LS43OGw2LjM5LTYuMzgtMy43LTMuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNC4yNCAxLjc2YTIuNjIgMi42MiAwIDAgMC0zLjcxIDBMMi42NiA5LjY0Yy0uMzguMzctLjY0Ljg0LS43OCAxLjM1bC0uODYgMy4zOWEuNS41IDAgMCAwIC42LjZsMy4zOS0uODZjLjUxLS4xNC45OC0uNCAxLjM1LS43OGw3Ljg4LTcuODdhMi42MiAyLjYyIDAgMCAwIDAtMy43Wm0tMyAuNzFhMS42MiAxLjYyIDAgMSAxIDIuMjkgMi4zbC0uNzguNzctMi4zLTIuMjkuNzktLjc4Wk05Ljc1IDMuOTZsMi4zIDIuMjktNi40IDYuMzljLS4yNC4yNC0uNTUuNDItLjg5LjVsLTIuNTcuNjcuNjYtMi41N2MuMDktLjM0LjI3LS42NS41MS0uOWw2LjM5LTYuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMjFsLS42Ni42Ny00LjItNC4yLjY2LS42OFptLTEuMzggMS4zOC04IDhjLS4zMi4zMy0uNTUuNzQtLjY1IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OGw3Ljk4LTcuOTgtNC4yLTQuMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy4xOCAyLjkzYTIuOTcgMi45NyAwIDAgMC00LjI2LS4wNmwtOS4zNyA5LjM4Yy0uMzMuMzMtLjU2Ljc0LS42NiAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkzLS44N2MuNDYtLjEuOS0uMzQgMS4yMy0uNjhsOS4zNi05LjM2YTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMSAxIDIuOCAyLjhsLS42OC42Ni0yLjgtMi43OS42OC0uNjdabS0xLjM4IDEuMzggMi44IDIuOC03Ljk5IDcuOTdjLS4yLjItLjQ2LjM1LS43NC40MWwtMy4xNi43LjctMy4xOGMuMDctLjI3LjItLjUxLjQtLjdsOC04WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1LjkgMy4wNWEzLjU4IDMuNTggMCAxIDEgNS4wNSA1LjA2bC0uODkuOUwxNSAzLjkzbC45LS45Wk0xMy45MyA1bC0xMCAxMGMtLjQuNC0uNy45Mi0uODIgMS40OGwtMS4xIDQuNmEuNzUuNzUgMCAwIDAgLjkuOWw0LjYtMS4xQTMuMSAzLjEgMCAwIDAgOSAyMC4wN2wxMC0xMEwxMy45NCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAuOTUgMy4wNWEzLjU4IDMuNTggMCAwIDAtNS4wNiAwTDMuOTQgMTVjLS40LjQtLjcuOTItLjgyIDEuNDhsLTEuMSA0LjZhLjc1Ljc1IDAgMCAwIC45LjlsNC42LTEuMUEzLjEgMy4xIDAgMCAwIDkgMjAuMDdMMjAuOTUgOC4xMWEzLjU4IDMuNTggMCAwIDAgMC01LjA2Wm0tNCAxLjA2YTIuMDggMi4wOCAwIDEgMSAyLjk0IDIuOTRsLS44OS44OUwxNi4wNiA1bC45LS45Wk0xNSA2LjA2IDE3Ljk0IDlsLTEwIDEwYTEuNiAxLjYgMCAwIDEtLjc2LjQzbC0zLjQyLjguODItMy40Yy4wNi0uMy4yMS0uNTYuNDItLjc3bDEwLTEwWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE5LjI5IDMuMTVhMy45MyAzLjkzIDAgMSAxIDUuNTYgNS41NmwtMS41NCAxLjU0LTUuNTYtNS41NiAxLjU0LTEuNTRabS0yLjYgMi42TDQuNSAxNy45NGMtLjQ0LjQ0LS43Ni45OC0uOTMgMS41OGwtMS41NCA1LjUzYS43NS43NSAwIDAgMCAuOTIuOTJsNS41My0xLjU0Yy42LS4xNyAxLjE0LS41IDEuNTgtLjkzTDIyLjI1IDExLjNsLTUuNTYtNS41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTI0Ljg1IDMuMTVhMy45MyAzLjkzIDAgMCAwLTUuNTYgMEw0LjUgMTcuOTRjLS40NC40NC0uNzYuOTgtLjkzIDEuNThsLTEuNTQgNS41M2EuNzUuNzUgMCAwIDAgLjkyLjkybDUuNTMtMS41NGMuNi0uMTcgMS4xNC0uNSAxLjU4LS45M0wyNC44NSA4LjdhMy45MyAzLjkzIDAgMCAwIDAtNS41NlptLTQuNSAxLjA2YTIuNDMgMi40MyAwIDEgMSAzLjQ0IDMuNDRsLTEuNTQgMS41NC0zLjQ0LTMuNDQgMS41NC0xLjU0Wm0tMi42IDIuNiAzLjQ0IDMuNDRMOSAyMi40NGMtLjI2LjI2LS41OC40NC0uOTMuNTRsLTQuMjQgMS4xOSAxLjE5LTQuMjRjLjEtLjM1LjI4LS42Ny41NC0uOTNMMTcuNzUgNi44WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIxLjY1IDMuNDNhNC44OSA0Ljg5IDAgMSAxIDYuOTEgNi45MmwtLjkuOS02LjkxLTYuOTEuOS0uOVptLTIuMzEgMi4zMkw0LjM2IDIwLjczYTMuNyAzLjcgMCAwIDAtMSAxLjg0bC0xLjM0IDYuMjJhMSAxIDAgMCAwIDEuMTkgMS4xOWw2LjIyLTEuMzRhMy43IDMuNyAwIDAgMCAxLjg0LTFsMTQuOTgtMTQuOTgtNi45MS02LjkxWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdDMyTGlnaHQnLCBcIjMyXCIsIFtcIk0yMC4xMiA1LjE4IDQuMjYgMjEuMDNhMy41IDMuNSAwIDAgMC0uOTQgMS43NGwtMS4zIDYuMDJhMSAxIDAgMCAwIDEuMiAxLjE4bDYuMDItMS4zYTMuNSAzLjUgMCAwIDAgMS43NC0uOTRMMjguNjEgMTAuMWE0Ljc0IDQuNzQgMCAwIDAtNi43LTYuNzFsLTEuNzMgMS43M2EuNDcuNDcgMCAwIDAtLjA2LjA2Wm0yLjUtMS4wOGEzLjc0IDMuNzQgMCAwIDEgNS4yOSA1LjI5bC0xLjQgMS40LTUuMy01LjI5IDEuNC0xLjRaTTIwLjUgNi4ybDUuMyA1LjMtMTUuNTMgMTUuNTJhMi41IDIuNSAwIDAgMS0xLjI0LjY4TDMgMjlsMS4zLTYuMDJjLjEtLjQ3LjMzLS45LjY3LTEuMjRMMjAuNSA2LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yOC41NiAzLjQzYy0xLjktMS45LTUtMS45LTYuOTEgMGwtMTcuMyAxNy4zYTMuNyAzLjcgMCAwIDAtMSAxLjg0bC0xLjMzIDYuMjJhMSAxIDAgMCAwIDEuMTkgMS4xOWw2LjIyLTEuMzRhMy43IDMuNyAwIDAgMCAxLjg0LTFsMTcuMy0xNy4zYzEuOS0xLjkgMS45LTUgMC02LjlabS01LjUgMS40MmEyLjg5IDIuODkgMCAwIDEgNC4wOSA0LjA4bC0uOS45LTQuMDktNC4wOC45LS45Wm0tMi4zMSAyLjMxIDQuMDkgNC4wOUw5Ljg2IDI2LjIzYy0uMjQuMjMtLjUzLjM5LS44NS40NmwtNC43IDEgMS00LjdjLjA3LS4zMi4yMy0uNjIuNDYtLjg1TDIwLjc1IDcuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzIuMiA2LjAzYTYuOSA2LjkgMCAxIDEgOS43NyA5Ljc2bC0yLjIgMi4yTDMwIDguMjRsMi4yLTIuMlpNMjguMjQgMTAgOC4wMyAzMC4yYTYgNiAwIDAgMC0xLjU2IDIuNzVsLTIuNDMgOS40OWExLjI1IDEuMjUgMCAwIDAgMS41MiAxLjUybDkuNDktMi40MmE2IDYgMCAwIDAgMi43Ni0xLjU4TDM4IDE5Ljc2IDI4LjIyIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNDEuOTcgNi4wMmE2LjkgNi45IDAgMCAwLTkuNzYgMEw4LjA0IDMwLjJhNiA2IDAgMCAwLTEuNTcgMi43NWwtMi40MyA5LjQ5YTEuMjUgMS4yNSAwIDAgMCAxLjUyIDEuNTJsOS40OS0yLjQyYTYgNiAwIDAgMCAyLjc2LTEuNThMNDEuOTcgMTUuOGE2LjkgNi45IDAgMCAwIDAtOS43N1ptLTggMS43N2E0LjQgNC40IDAgMCAxIDYuMjQgNi4yM0wzOCAxNi4yMyAzMS43NyAxMGwyLjItMi4yWk0zMCAxMS43NyAzNi4yMyAxOGwtMjAuMiAyMC4yYy0uNDQuNDQtMSAuNzYtMS42LjkxbC03LjQ1IDEuOSAxLjktNy40NGMuMTYtLjYuNDgtMS4xNi45My0xLjZMMzAgMTEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0QXJyb3dCYWNrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdEFycm93QmFjazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAuNTMgMS43NmEyLjYyIDIuNjIgMCAxIDEgMy43IDMuNzFsLS41NC41NWE1LjQ5IDUuNDkgMCAwIDAtMS4wNS0uNTlMOS43NSAyLjU0bC43OC0uNzhaTTEwLjUgNWguM0w5LjA0IDMuMjYgMi42NiA5LjY0Yy0uMzguMzctLjY0Ljg0LS43OCAxLjM1bC0uODYgMy4zOWEuNS41IDAgMCAwIC42LjZsMy4zOS0uODZjLjM2LS4xLjY5LS4yNS45OC0uNDZBNS41IDUuNSAwIDAgMSAxMC41IDVabTAgMTBhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxMyAxMi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC43MWwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdMOC45IDcuOWEuNS41IDAgMSAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0QXJyb3dCYWNrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRBcnJvd0JhY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNC4yNCAxLjc2YTIuNjIgMi42MiAwIDAgMC0zLjcxIDBMMi42NiA5LjY0Yy0uMzguMzctLjY0Ljg0LS43OCAxLjM1bC0uODYgMy4zOWEuNS41IDAgMCAwIC42LjZsMy4zOS0uODZjLjM2LS4xLjY5LS4yNS45OC0uNDZhNS41IDUuNSAwIDAgMS0uNS0uODhjLS4yMS4xNy0uNDYuMy0uNzMuMzdsLTIuNTcuNjYuNjYtMi41N2MuMDktLjM0LjI3LS42NS41MS0uOUw1LjUgOC4yMUE1LjUyIDUuNTIgMCAwIDEgOC4yIDUuNWwxLjU1LTEuNTRMMTAuOCA1Yy42NS4wMyAxLjI3LjE4IDEuODQuNDJsLTIuMTgtMi4xOC43OC0uNzhhMS42MiAxLjYyIDAgMSAxIDIuMjkgMi4zbC0uNzQuNzNjLjMyLjE0LjYyLjMyLjkuNTJsLjU1LS41NWEyLjYyIDIuNjIgMCAwIDAgMC0zLjdaTTEwLjUgMTVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxMyAxMi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC43MWwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdMOC45IDcuOWEuNS41IDAgMSAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0QXJyb3dCYWNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdEFycm93QmFjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMjFsLS42Ni42Ny00LjItNC4yLjY2LS42OFptLTEuMzggMS4zOC04IDhjLS4zMi4zMy0uNTUuNzQtLjY1IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OEw4LjIgMTZBNS41IDUuNSAwIDAgMSAxNSA5LjJsLjc1LS43NC00LjItNC4yMVpNMTMuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE2IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRBcnJvd0JhY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdEFycm93QmFjazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjE4IDIuOTNhMi45NyAyLjk3IDAgMCAwLTQuMjYtLjA2bC05LjM3IDkuMzhjLS4zMy4zMy0uNTYuNzQtLjY2IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OEw4LjIgMTZjLS4xMS0uMzktLjE4LS44LS4yLTEuMjFsLS45NS45NGMtLjIuMi0uNDYuMzUtLjc0LjQxbC0zLjE2LjcuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2w3Ljk5LTggMi44IDIuOEwxMy43OCA5Yy40MS4wMi44Mi4wOSAxLjIxLjJsMi4xMy0yLjEzYTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMCAxIDIuNzkgMi44bC0uNjcuNjYtMi44LTIuNzkuNjgtLjY3Wk0xMy41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTYgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdEFycm93QmFjazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRBcnJvd0JhY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjUgMjNhNS41IDUuNSAwIDEgMCAwLTExIDUuNSA1LjUgMCAwIDAgMCAxMVptLTEuMTUtOC4zNWMuMi4yLjIuNSAwIC43bC0uNjQuNjVoMi4wNGMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0yLjA0bC42NC42NWEuNS41IDAgMCAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBabS41NC0xMS42YTMuNTggMy41OCAwIDEgMSA1LjA2IDUuMDZsLS44OS44OUwxNSAzLjk0bC45LS45Wk0xMy45NCA1bC0xMCAxMGMtLjQuNC0uNy45Mi0uODIgMS40OGwtMS4xIDQuNmEuNzUuNzUgMCAwIDAgLjkuOWw0LjYtMS4xQTMuMSAzLjEgMCAwIDAgOSAyMC4wNmwxLjE1LTEuMTVhNi41MiA2LjUyIDAgMCAxIDcuNzYtNy43NkwxOSAxMC4wNiAxMy45NCA1WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdEFycm93QmFjazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0QXJyb3dCYWNrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuOSAzLjA1IDMuOTMgMTVjLS40LjQtLjcuOTItLjgyIDEuNDhsLTEuMSA0LjZhLjc1Ljc1IDAgMCAwIC45LjlsNC42LTEuMUEzLjEgMy4xIDAgMCAwIDkgMjAuMDdsMS4xNS0xLjE1YTYuNTIgNi41MiAwIDAgMS0uMTItMkw3Ljk0IDE5YTEuNiAxLjYgMCAwIDEtLjc2LjQzbC0zLjQyLjguODItMy40Yy4wNi0uMy4yMS0uNTYuNDItLjc3bDEwLTEwTDE3Ljk0IDlsLTIuMDMgMi4wM2E2LjU3IDYuNTcgMCAwIDEgMiAuMTJsMy4wNC0zLjA0YTMuNTggMy41OCAwIDAgMC01LjA2LTUuMDZabTQgMS4wNmMuOC44MS44IDIuMTMgMCAyLjk0bC0uOS44OUwxNi4wNiA1bC45LS45YTIuMDggMi4wOCAwIDAgMSAyLjkzIDBaTTIyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYuNjUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoMi4wNGMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC0yLjA0bC42NC0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TGluZUhvcml6b250YWwzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdExpbmVIb3Jpem9udGFsMzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLS42Ny42NyA0LjIgNC4yLjY4LS42NmEyLjk3IDIuOTcgMCAwIDAgLjA1LTQuMTVaTTMuNTUgMTIuMjVsOC04IDQuMiA0LjItNy45OCA3Ljk5Yy0uMzQuMzQtLjc3LjU3LTEuMjQuNjhsLTMuOTIuODdhLjUuNSAwIDAgMS0uNi0uNmwuODgtMy45NWMuMS0uNDUuMzMtLjg2LjY2LTEuMlpNMi41IDNoOC44OGwtMSAxSDIuNWEuNS41IDAgMCAxIDAtMVptMCAzaDUuODhsLTEgMUgyLjVhLjUuNSAwIDAgMSAwLTFabTAgM2gyLjg4bC0xIDFIMi41YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdExpbmVIb3Jpem9udGFsMzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0TGluZUhvcml6b250YWwzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMjFsLTkuMzUgOS4zNmMtLjM0LjM0LS43Ny41Ny0xLjIzLjY4bC0zLjkzLjg3YS41LjUgMCAwIDEtLjYtLjZsLjg4LTMuOTVjLjEtLjQ1LjMzLS44Ni42Ni0xLjJsOS4zNy05LjM3Wm0zLjU0Ljc1YTEuOTcgMS45NyAwIDAgMC0yLjgzLS4wNGwtLjY3LjY3IDIuOCAyLjguNjYtLjY4Yy43Ni0uNzUuNzctMS45OC4wNC0yLjc1Wm0tMS40MiA0LjEzLTIuNzktMi44LTggOGMtLjE5LjItLjMyLjQ0LS4zOC43bC0uNzEgMy4yIDMuMTYtLjcxYy4yOC0uMDYuNTQtLjIuNzQtLjRsNy45OC03Ljk5Wk0yLjUgM2g4Ljg4bC0xIDFIMi41YS41LjUgMCAwIDEgMC0xWm0wIDNoNS44OGwtMSAxSDIuNWEuNS41IDAgMCAxIDAtMVptMCAzaDIuODhsLTEgMUgyLjVhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TGluZUhvcml6b250YWwzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdExpbmVIb3Jpem9udGFsMzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjAuOTUgMy4wNWEzLjU4IDMuNTggMCAwIDAtNS4wNiAwbC0uOS44OUwyMC4wNyA5bC45LS45YTMuNTggMy41OCAwIDAgMCAwLTUuMDVaTTMuOTUgMTVsOS45OS0xMEwxOSAxMC4wNmwtMTAgMTBjLS40LjQtLjkyLjctMS40OC44M2wtNC42IDEuMWEuNzUuNzUgMCAwIDEtLjktLjkxbDEuMS00LjZBMy4xIDMuMSAwIDAgMSAzLjk0IDE1Wk0yLjc0IDNoMTEuNzhsLTEuNSAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVabTAgNGg3Ljc4bC0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wIDRoMy43OGwtMS41IDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRMaW5lSG9yaXpvbnRhbDMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdExpbmVIb3Jpem9udGFsMzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjkgMy4wNWEzLjU4IDMuNTggMCAxIDEgNS4wNSA1LjA2TDkgMjAuMDZjLS40LjQtLjkyLjctMS40OC44M2wtNC42IDEuMWEuNzUuNzUgMCAwIDEtLjktLjkxbDEuMS00LjZBMy4xIDMuMSAwIDAgMSAzLjk0IDE1TDE1LjkgMy4wNVptNCAxLjA2YTIuMDggMi4wOCAwIDAgMC0yLjk1IDBsLS44OS44OUwxOSA3Ljk0bC45LS45Yy44LS44LjgtMi4xMiAwLTIuOTNaTTE3LjkzIDkgMTUgNi4wNmwtMTAgMTBhMS42IDEuNiAwIDAgMC0uNDIuNzZsLS44MiAzLjQyIDMuNDItLjgxYy4yOS0uMDcuNTUtLjIyLjc2LS40M2wxMC0xMFpNMi43NSAzaDExLjc4bC0xLjUgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wIDRoNy43OGwtMS41IDEuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVptMCA0aDMuNzhsLTEuNSAxLjVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TG9jazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRMb2NrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMC41MyAxLjc2YTIuNjIgMi42MiAwIDEgMSAzLjcgMy43MWwtLjUuNTFhMyAzIDAgMCAwLTEuNC0uODdMOS43NCAyLjU0bC43OC0uNzhaTTguNSA4YTMgMyAwIDAgMSAyLjM2LTIuOTNMOS4wNCAzLjI1IDIuNjYgOS42NGMtLjM4LjM3LS42NC44NC0uNzggMS4zNWwtLjg2IDMuMzlhLjUuNSAwIDAgMCAuNi42bDMuMzktLjg2Yy41MS0uMTQuOTgtLjQgMS4zNS0uNzhsLjY0LS42M1YxMGEyIDIgMCAwIDEgMS41LTEuOTRWOFptMSAwdjFIOWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjVWOGEyIDIgMCAxIDAtNCAwWm0xIDFWOGExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TG9jazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0TG9jazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0LjI0IDEuNzZhMi42MiAyLjYyIDAgMCAwLTMuNzEgMEwyLjY2IDkuNjRjLS4zOC4zNy0uNjQuODQtLjc4IDEuMzVsLS44NiAzLjM5YS41LjUgMCAwIDAgLjYuNmwzLjM5LS44NmMuNTEtLjE0Ljk4LS40IDEuMzUtLjc4bC42NC0uNjN2LTEuNDJsLTEuMzQgMS4zNWMtLjI1LjI0LS41Ni40Mi0uOS41bC0yLjU3LjY3LjY2LTIuNTdjLjA5LS4zNC4yNy0uNjUuNTEtLjlsNi4zOS02LjM4IDEuMTEgMS4xYTMuMDEgMy4wMSAwIDAgMSAxLjQ2LjA1bC0xLjg2LTEuODYuNzgtLjc4YTEuNjIgMS42MiAwIDEgMSAyLjI5IDIuM2wtLjYuNmMuMy4xNS41Ny4zNy44LjYxbC41LS41YTIuNjIgMi42MiAwIDAgMCAwLTMuNzJaTTkuNSA4djFIOWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjVWOGEyIDIgMCAxIDAtNCAwWm0xIDFWOGExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TG9jazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRMb2NrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi45MiAyLjg3YTIuOTcgMi45NyAwIDAgMSA0LjIgNC4yMWwtLjY2LjY3LTQuMi00LjIuNjYtLjY4Wm0tMS4zOCAxLjM4LTggOGMtLjMyLjMzLS41NS43NC0uNjUgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDEwIDE0LjJWMTNhMiAyIDAgMCAxIDEuNS0xLjk0VjExYTMgMyAwIDAgMSAzLjk1LTIuODVsLTMuOS0zLjlaTTEyLjUgMTF2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRMb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRMb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45My0uODdjLjQ2LS4xLjktLjM0IDEuMjMtLjY4TDEwIDE0LjJWMTNsLjAxLS4yMi0yLjk1IDIuOTVjLS4yLjItLjQ2LjM1LS43NC40MWwtMy4xNi43LjctMy4xOGMuMDctLjI3LjItLjUxLjQtLjdsOC04IDIuNzggMi44LS4yNi4yNWMuNC4wNC43Ni4xNSAxLjEuMzJsMS4yNS0xLjI1YTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMCAxIDIuOCAyLjhsLS42OC42Ni0yLjgtMi43OS42OC0uNjdaTTEyLjUgMTF2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRMb2NrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdExvY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1LjkgMy4wNWEzLjU4IDMuNTggMCAxIDEgNS4wNSA1LjA2bC0uODkuOUwxNSAzLjkzbC45LS45Wk0xMy45MyA1bC0xMCAxMGMtLjQuNC0uNy45Mi0uODIgMS40OGwtMS4xIDQuNmEuNzUuNzUgMCAwIDAgLjkuOWw0LjYtMS4xQTMuMSAzLjEgMCAwIDAgOSAyMC4wN2wzLTNWMTUuNWEyLjUgMi41IDAgMCAxIDItMi40NVYxM2EzLjUgMy41IDAgMCAxIDQuNjItMy4zMkwxMy45NCA1Wk0xNSAxNHYtMWEyLjUgMi41IDAgMCAxIDUgMHYxaC41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNWMwLS44My42Ny0xLjUgMS41LTEuNWguNVptMS41LTF2MWgydi0xYTEgMSAwIDEgMC0yIDBabTIgNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0TG9jazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0TG9jazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjkgMy4wNWEzLjU4IDMuNTggMCAxIDEgNS4wNSA1LjA2bC0xLjggMS44YTMuNDggMy40OCAwIDAgMC0xLjcxLS40bC41LS41MUwxNSA2LjA2bC0xMCAxMGExLjYgMS42IDAgMCAwLS40Mi43NmwtLjgyIDMuNDIgMy40Mi0uODFjLjI5LS4wNy41NS0uMjIuNzYtLjQzbDQuMTQtNC4xNGMtLjA1LjItLjA4LjQyLS4wOC42NHYxLjU2bC0zIDNjLS40LjQtLjkyLjctMS40OC44M2wtNC42IDEuMWEuNzUuNzUgMCAwIDEtLjktLjkxbDEuMS00LjZBMy4xIDMuMSAwIDAgMSAzLjk0IDE1TDE1LjkgMy4wNVptNCAxLjA2YTIuMDggMi4wOCAwIDAgMC0yLjk1IDBsLS44OS44OUwxOSA3Ljk0bC45LS45Yy44LS44LjgtMi4xMiAwLTIuOTNaTTE1IDE0di0xYTIuNSAyLjUgMCAwIDEgNSAwdjFoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di01YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41Wm0xLjUtMXYxaDJ2LTFhMSAxIDAgMSAwLTIgMFptMiA1YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRPZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm05LjUgMTAuMiA0LjY1IDQuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDUuNzkgNi41IDIuNjYgOS42NGMtLjM4LjM3LS42NC44NC0uNzggMS4zNWwtLjg2IDMuMzlhLjUuNSAwIDAgMCAuNi42bDMuMzktLjg2Yy41MS0uMTQuOTgtLjQgMS4zNS0uNzhsMy4xNC0zLjEzWm0zLjI1LTMuMjQtMS44NCAxLjgzLTMuNy0zLjcgMS44My0xLjg0IDMuNzEgMy43Wm0tMi4yMi01LjJhMi42MiAyLjYyIDAgMSAxIDMuNyAzLjcxbC0uNzcuNzgtMy43MS0zLjcuNzgtLjc5WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS44IDYuNSAxLjE0IDEuODVhLjUuNSAwIDEgMSAuNy0uN2wxMyAxM2EuNS41IDAgMCAxLS43LjdMOS41IDEwLjIxbC0zLjE0IDMuMTNjLS4zNy4zOC0uODQuNjQtMS4zNS43OGwtMy4zOS44NmEuNS41IDAgMCAxLS42LS42bC44Ni0zLjM5Yy4xNC0uNTEuNC0uOTguNzgtMS4zNUw1Ljc5IDYuNVptMyAzTDYuNSA3LjJsLTMuMTQgMy4xNGMtLjI0LjI1LS40Mi41Ni0uNS45bC0uNjcgMi41NyAyLjU3LS42NmMuMzQtLjEuNjUtLjI3LjktLjUxTDguNzkgOS41Wm0zLjI0LTMuMjUtMS44MyAxLjg0LjcuNyAzLjMzLTMuMzJhMi42MiAyLjYyIDAgMCAwLTMuNzEtMy43TDcuMiA1LjA4bC43LjcgMS44NC0xLjgzIDIuMyAyLjI5Wm0tLjgtMy43OGExLjYyIDEuNjIgMCAxIDEgMi4yOSAyLjNsLS43OC43Ny0yLjMtMi4yOS43OS0uNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0T2ZmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2w1LjQgNS40LTQgNGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4bDMuOTgtMy45OCA1LjQgNS40YS41LjUgMCAwIDAgLjctLjcxbC0xNS0xNVptMTIuOSA2LjMtMi41OSAyLjYtNC4yLTQuMjEgMi41OC0yLjYgNC4yMSA0LjIyWm0tMi44My01LjU4YTIuOTcgMi45NyAwIDAgMSA0LjIgNC4yMWwtLjY2LjY3LTQuMi00LjIuNjYtLjY4WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2w1LjQgNS40LTQgNGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4bDMuOTgtMy45OCA1LjQgNS40YS41LjUgMCAwIDAgLjctLjcxbC0xNS0xNVptOC4yIDkuNi0zLjk5IDMuOThjLS4yLjItLjQ2LjM1LS43NC40MWwtMy4xNi43LjctMy4xOGMuMDctLjI3LjItLjUxLjQtLjdsMy45OS00IDIuOCAyLjc5Wm00LTQtMi42IDIuNTkuNzEuNyAzLjk3LTMuOTZhMi45NyAyLjk3IDAgMCAwLTQuMjEtNC4yTDguOTYgNi44M2wuNy43IDIuNTktMi41OCAyLjggMi44Wm0tMS40Mi00LjE3YTEuOTcgMS45NyAwIDAgMSAyLjc5IDIuOGwtLjY3LjY2LTIuOC0yLjc5LjY4LS42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xNCAxNS4wNiA2LjcyIDYuNzJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNkw4Ljk0IDEwbC01IDVjLS40LjQtLjcuOTItLjgyIDEuNDhsLTEuMSA0LjZhLjc1Ljc1IDAgMCAwIC45LjlsNC42LTEuMUEzLjEgMy4xIDAgMCAwIDkgMjAuMDdsNS01Wm01LTUtMi44OCAyLjg4LTUuMDYtNS4wNkwxMy45NCA1IDE5IDEwLjA2Wm0tMy4xLTcuMDFhMy41OCAzLjU4IDAgMSAxIDUuMDUgNS4wNmwtLjg5LjlMMTUgMy45M2wuOS0uOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguOTQgMTAgMi4yMiAzLjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMTguNSAxOC41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMMTQgMTUuMDZsLTUgNWMtLjQuNC0uOTIuNy0xLjQ4LjgzbC00LjYgMS4xYS43NS43NSAwIDAgMS0uOS0uOTFsMS4xLTQuNkEzLjEgMy4xIDAgMCAxIDMuOTQgMTVsNS01Wm00IDRMMTAgMTEuMDZsLTUgNWExLjYgMS42IDAgMCAwLS40Mi43NmwtLjgyIDMuNDIgMy40Mi0uODFjLjI5LS4wNy41NS0uMjIuNzYtLjQzbDUtNVptNS01LTIuODggMi44OCAxLjA2IDEuMDYgNC44My00LjgzYTMuNTggMy41OCAwIDAgMC01LjA2LTUuMDZsLTQuODMgNC44MyAxLjA2IDEuMDZMMTUgNi4wNiAxNy45NCA5Wm0tLjk5LTQuOWEyLjA4IDIuMDggMCAxIDEgMi45NCAyLjk1bC0uODkuODlMMTYuMDYgNWwuOS0uOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRPZmYyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMjhGaWxsZWQnLCBcIjI4XCIsIFtcIm0xNi4yNSAxNy4zMSA4LjQ3IDguNDdhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw4LjQ3IDguNDctNi4xOSA2LjE5Yy0uNDQuNDQtLjc2Ljk4LS45MyAxLjU4bC0xLjU0IDUuNTNhLjc1Ljc1IDAgMCAwIC45Mi45Mmw1LjUzLTEuNTRjLjYtLjE3IDEuMTQtLjUgMS41OC0uOTNsNi4xOS02LjE5Wm0tMy40NC03LjY4IDUuNTYgNS41NiAzLjg4LTMuODgtNS41Ni01LjU2LTMuODggMy44OFptNi40OC02LjQ4YTMuOTMgMy45MyAwIDEgMSA1LjU2IDUuNTZsLTEuNTQgMS41NC01LjU2LTUuNTYgMS41NC0xLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTAuNjkgMTEuNzUgMi4yMiAzLjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMjIuNSAyMi41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTguNDctOC40Ny02LjE5IDYuMTljLS40NC40NC0uOTguNzYtMS41OC45M2wtNS41MyAxLjU0YS43NS43NSAwIDAgMS0uOTItLjkybDEuNTQtNS41M2MuMTctLjYuNS0xLjE0LjkzLTEuNThsNi4xOS02LjE5Wm00LjUgNC41LTMuNDQtMy40NEw1LjU2IDE5Yy0uMjYuMjYtLjQ0LjU4LS41NC45M2wtMS4xOSA0LjI0IDQuMjQtMS4xOWMuMzUtLjEuNjctLjI4LjkzLS41NGw2LjE5LTYuMTlaTTEyLjggOS42M2w2LjQ4LTYuNDhhMy45MyAzLjkzIDAgMSAxIDUuNTYgNS41NmwtNi40OCA2LjQ4LTEuMDYtMS4wNiAzLjg4LTMuODgtMy40NC0zLjQ0LTMuODggMy44OC0xLjA2LTEuMDZabTcuNTQtNS40Mi0xLjU0IDEuNTQgMy40NCAzLjQ0IDEuNTQtMS41NGEyLjQzIDIuNDMgMCAwIDAtMy40NC0zLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRPZmYzMkZpbGxlZCcsIFwiMzJcIiwgW1wibTE4Ljc1IDIwLjE2IDkuNTQgOS41NWExIDEgMCAwIDAgMS40Mi0xLjQybC0yNi0yNmExIDEgMCAwIDAtMS40MiAxLjQybDkuNTUgOS41NC03LjQ4IDcuNDhhMy43IDMuNyAwIDAgMC0xIDEuODRsLTEuMzQgNi4yMmExIDEgMCAwIDAgMS4xOSAxLjE5bDYuMjItMS4zNGEzLjcgMy43IDAgMCAwIDEuODQtMWw3LjQ4LTcuNDhabTcuNS03LjUtNS4wMiA1LjAzLTYuOTItNi45MiA1LjAzLTUuMDIgNi45IDYuOTFabS00LjYtOS4yM2E0Ljg5IDQuODkgMCAxIDEgNi45MSA2LjkybC0uOS45LTYuOTEtNi45Mi45LS45WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJtMTguNzUgMjAuMTYgOS41NCA5LjU1YTEgMSAwIDAgMCAxLjQyLTEuNDJsLTI2LTI2YTEgMSAwIDAgMC0xLjQyIDEuNDJsOS41NSA5LjU0LTcuNDggNy40OGEzLjcgMy43IDAgMCAwLTEgMS44NGwtMS4zNCA2LjIyYTEgMSAwIDAgMCAxLjE5IDEuMTlsNi4yMi0xLjM0YTMuNyAzLjcgMCAwIDAgMS44NC0xbDcuNDgtNy40OFptLTEuNDEtMS40MS03LjQ4IDcuNDhjLS4yNC4yMy0uNTMuMzktLjg1LjQ2bC00LjcgMSAxLTQuN2MuMDctLjMyLjIzLS42Mi40Ni0uODVsNy40OC03LjQ4IDQuMDkgNC4wOVptNy41LTcuNS01LjAzIDUuMDIgMS40MiAxLjQyIDcuMzMtNy4zNGE0Ljg5IDQuODkgMCAwIDAtNi45MS02LjkybC03LjM0IDcuMzQgMS40MiAxLjQyIDUuMDItNS4wMyA0LjA5IDQuMDlabS0xLjc4LTYuNGEyLjg5IDIuODkgMCAwIDEgNC4wOSA0LjA4bC0uOS45LTQuMDktNC4wOC45LS45WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRPZmY0OEZpbGxlZCcsIFwiNDhcIiwgW1wibTI4IDI5Ljc3IDEzLjg3IDEzLjg2YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMNi4xMyA0LjM3YTEuMjUgMS4yNSAwIDEgMC0xLjc2IDEuNzZMMTguMjMgMjAgOC4wMyAzMC4yYTYgNiAwIDAgMC0xLjU2IDIuNzZsLTIuNDMgOS40OGExLjI1IDEuMjUgMCAwIDAgMS41MiAxLjUybDkuNDktMi40MmE2IDYgMCAwIDAgMi43Ni0xLjU4TDI4IDI5Ljc2Wm0xMC0xMC02LjQ2IDYuNDYtOS43Ny05Ljc2TDI4LjIzIDEwIDM4IDE5Ljc3Wk0zMi4yIDYuMDNhNi45IDYuOSAwIDEgMSA5Ljc3IDkuNzZsLTIuMiAyLjJMMzAgOC4yNGwyLjItMi4yWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdE9mZjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0T2ZmNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJtMjggMjkuNzcgMTMuODcgMTMuODZhMS4yNSAxLjI1IDAgMCAwIDEuNzYtMS43Nkw2LjEzIDQuMzdhMS4yNSAxLjI1IDAgMSAwLTEuNzYgMS43NkwxOC4yMyAyMCA4LjAzIDMwLjJhNiA2IDAgMCAwLTEuNTYgMi43NmwtMi40MyA5LjQ4YTEuMjUgMS4yNSAwIDAgMCAxLjUyIDEuNTJsOS40OS0yLjQyYTYgNiAwIDAgMCAyLjc2LTEuNThMMjggMjkuNzZaTTI2LjIzIDI4bC0xMC4yIDEwLjJjLS40NC40NC0xIC43Ni0xLjYuOTFsLTcuNDUgMS45IDEuOS03LjQ0Yy4xNi0uNi40OC0xLjE2LjkzLTEuNkwyMCAyMS43NiAyNi4yMiAyOFptMTAtMTAtNi40NiA2LjQ3IDEuNzcgMS43Nkw0MS45NyAxNS44YTYuOSA2LjkgMCAwIDAtOS43Ni05Ljc2TDIxLjc3IDE2LjQ3bDEuNzcgMS43NkwzMCAxMS43NyAzNi4yMyAxOFpNMzMuOTcgNy44YTQuNCA0LjQgMCAwIDEgNi4yNCA2LjIzTDM4IDE2LjIzIDMxLjc3IDEwbDIuMi0yLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0UGVyc29uMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFBlcnNvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIuOTIgMi44N2EyLjk3IDIuOTcgMCAwIDEgNC4yIDQuMjFsLS42Ni42Ny00LjItNC4yLjY2LS42OFptLTEuMzggMS4zOC04IDhjLS4zMi4zMy0uNTUuNzQtLjY1IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OGw0LjA2LTQuMDdhMyAzIDAgMCAxIDMuNjEtNC4yMmwtMy45LTMuOVpNMTYuNSAxMWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTMTEgMTYuNzUgMTEgMTUuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFBlcnNvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UGVyc29uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcuMTggMi45M2EyLjk3IDIuOTcgMCAwIDAtNC4yNi0uMDZsLTkuMzcgOS4zOGMtLjMzLjMzLS41Ni43NC0uNjYgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45My0uODdjLjQ2LS4xLjktLjM0IDEuMjMtLjY4bDQuMDYtNC4wNmMtLjE3LS4zNC0uMjgtLjctLjMyLTEuMWwtNC40NSA0LjQ1Yy0uMi4yLS40Ni4zNS0uNzQuNDFsLTMuMTYuNy43LTMuMThjLjA3LS4yNy4yLS41MS40LS43bDgtOCAyLjc4IDIuOC0uMjYuMjVjLjQuMDQuNzYuMTUgMS4xLjMybDEuMjUtMS4yNWEyLjk3IDIuOTcgMCAwIDAgLjA1LTQuMTVabS0zLjU1LjY1YTEuOTcgMS45NyAwIDAgMSAyLjggMi44bC0uNjguNjYtMi44LTIuNzkuNjgtLjY3Wk0xNi41IDExYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMSAxNi43NSAxMSAxNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0UGVyc29uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFBlcnNvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuOSAzLjA1YTMuNTggMy41OCAwIDEgMSA1LjA1IDUuMDZsLS44OS45TDE1IDMuOTNsLjktLjlaTTEzLjkzIDVsLTEwIDEwYy0uNC40LS43LjkyLS44MiAxLjQ4bC0xLjEgNC42YS43NS43NSAwIDAgMCAuOS45bDQuNi0xLjFBMy4xIDMuMSAwIDAgMCA5IDIwLjA3bDUuMjUtNS4yNWEzLjUgMy41IDAgMCAxIDQuNTYtNC41NmwuMTktLjE5TDEzLjk0IDVaTTIwIDEzLjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgNS4zOGMwIDEuNTUtMS4yOSAzLjEyLTQuNSAzLjEyUzEzIDIwLjQ0IDEzIDE4Ljg3di0uMWMwLS45OC44LTEuNzcgMS43Ny0xLjc3aDUuNDZjLjk4IDAgMS43Ny44IDEuNzcgMS43N3YuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQZXJzb24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFBlcnNvbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIwLjk1IDMuMDVhMy41OCAzLjU4IDAgMCAwLTUuMDYgMEwzLjk0IDE1Yy0uNC40LS43LjkyLS44MiAxLjQ4bC0xLjEgNC42YS43NS43NSAwIDAgMCAuOS45bDQuNi0xLjFBMy4xIDMuMSAwIDAgMCA5IDIwLjA3bDUuMjUtNS4yNWEzLjUgMy41IDAgMCAxLS4yLTEuOTJMNy45NSAxOWExLjYgMS42IDAgMCAxLS43Ny40M2wtMy40Mi44LjgyLTMuNGMuMDYtLjMuMjEtLjU2LjQyLS43N2wxMC0xMEwxNy45NCA5bC0xLjA1IDEuMDVhMy41MiAzLjUyIDAgMCAxIDEuOTIuMmwyLjE0LTIuMTRhMy41OCAzLjU4IDAgMCAwIDAtNS4wNlptLTQgMS4wNmEyLjA4IDIuMDggMCAxIDEgMi45NCAyLjk0bC0uODkuODlMMTYuMDYgNWwuOS0uOVpNMjAgMTMuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTMgMjAuNDQgMTMgMTguODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFByb2hpYml0ZWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAuNTMgMS43NmEyLjYyIDIuNjIgMCAxIDEgMy43IDMuNzFsLS41NC41NWE1LjQ5IDUuNDkgMCAwIDAtMS4wNS0uNTlMOS43NSAyLjU0bC43OC0uNzhaTTEwLjUgNWguM0w5LjA0IDMuMjYgMi42NiA5LjY0Yy0uMzguMzctLjY0Ljg0LS43OCAxLjM1bC0uODYgMy4zOWEuNS41IDAgMCAwIC42LjZsMy4zOS0uODZjLjM2LS4xLjY5LS4yNS45OC0uNDZBNS41IDUuNSAwIDAgMSAxMC41IDVaTTYgMTAuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0UHJvaGliaXRlZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0LjI0IDEuNzZhMi42MiAyLjYyIDAgMCAwLTMuNzEgMEwyLjY2IDkuNjRjLS4zOC4zNy0uNjQuODQtLjc4IDEuMzVsLS44NiAzLjM5YS41LjUgMCAwIDAgLjYuNmwzLjM5LS44NmMuMzYtLjEuNjktLjI1Ljk4LS40NmE1LjUgNS41IDAgMCAxLS41LS44OGMtLjIxLjE3LS40Ni4zLS43My4zN2wtMi41Ny42Ni42Ni0yLjU3Yy4wOS0uMzQuMjctLjY1LjUxLS45TDUuNSA4LjIxQTUuNTIgNS41MiAwIDAgMSA4LjIgNS41bDEuNTUtMS41NEwxMC44IDVjLjY1LjAzIDEuMjcuMTggMS44NC40MmwtMi4xOC0yLjE4Ljc4LS43OGExLjYyIDEuNjIgMCAxIDEgMi4yOSAyLjNsLS43NC43M2MuMzIuMTQuNjIuMzIuOS41MmwuNTUtLjU1YTIuNjIgMi42MiAwIDAgMCAwLTMuN1pNNiAxMC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQcm9oaWJpdGVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFByb2hpYml0ZWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyLjkyIDIuODdhMi45NyAyLjk3IDAgMCAxIDQuMiA0LjIxbC0uNjYuNjctNC4yLTQuMi42Ni0uNjhabS0xLjM4IDEuMzgtOCA4Yy0uMzIuMzMtLjU1Ljc0LS42NSAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhMOC4yIDE2QTUuNSA1LjUgMCAwIDEgMTUgOS4ybC43NS0uNzQtNC4yLTQuMjFaTTkgMTQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0UHJvaGliaXRlZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjE4IDIuOTNhMi45NyAyLjk3IDAgMCAwLTQuMjYtLjA2bC05LjM3IDkuMzhjLS4zMy4zMy0uNTYuNzQtLjY2IDEuMmwtLjg4IDMuOTRhLjUuNSAwIDAgMCAuNi42bDMuOTItLjg3Yy40Ny0uMS45LS4zNCAxLjI0LS42OEw4LjIgMTZjLS4xMS0uMzktLjE4LS44LS4yLTEuMjFsLS45NS45NGMtLjIuMi0uNDYuMzUtLjc0LjQxbC0zLjE2LjcuNy0zLjE4Yy4wNy0uMjcuMi0uNTEuNC0uN2w3Ljk5LTggMi44IDIuOEwxMy43OCA5Yy40MS4wMi44Mi4wOSAxLjIxLjJsMi4xMy0yLjEzYTIuOTcgMi45NyAwIDAgMCAuMDUtNC4xNVptLTMuNTUuNjVhMS45NyAxLjk3IDAgMCAxIDIuNzkgMi44bC0uNjcuNjYtMi44LTIuNzkuNjgtLjY3Wk05IDE0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVptMy41IDMuNWMtLjc5IDAtMS41MS0uMjYtMi4xLS43bDQuOS00LjlhMy41IDMuNSAwIDAgMS0yLjggNS42WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFByb2hpYml0ZWQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuOSAzLjA1YTMuNTggMy41OCAwIDEgMSA1LjA1IDUuMDZsLS44OS45TDE1IDMuOTNsLjktLjlaTTEzLjkzIDVsLTEwIDEwYy0uNC40LS43LjkyLS44MiAxLjQ4bC0xLjEgNC42YS43NS43NSAwIDAgMCAuOS45bDQuNi0xLjFBMy4xIDMuMSAwIDAgMCA5IDIwLjA3bDEuMTUtMS4xNWE2LjUyIDYuNTIgMCAwIDEgNy43Ni03Ljc2TDE5IDEwLjA2IDEzLjk0IDVaTTIyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTkuNSAwYzAgLjgzLjI2IDEuNi43IDIuMjVsNS41NS01LjU2YTQgNCAwIDAgMC02LjI1IDMuM1ptNCA0YTQgNCAwIDAgMCAzLjMtNi4yNWwtNS41NSA1LjU2Yy42NC40NCAxLjQyLjcgMi4yNS43Wk05IDIwLjA2bC0uNTMtLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFByb2hpYml0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFByb2hpYml0ZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMC45NSAzLjA1YTMuNTggMy41OCAwIDAgMC01LjA2IDBMMy45NCAxNWMtLjQuNC0uNy45Mi0uODIgMS40OGwtMS4xIDQuNmEuNzUuNzUgMCAwIDAgLjkuOWw0LjYtMS4xQTMuMSAzLjEgMCAwIDAgOSAyMC4wN2wxLjE1LTEuMTVhNi41MiA2LjUyIDAgMCAxLS4xMi0yTDcuOTQgMTlhMS42IDEuNiAwIDAgMS0uNzYuNDNsLTMuNDIuOC44Mi0zLjRjLjA2LS4zLjIxLS41Ni40Mi0uNzdsMTAtMTBMMTcuOTQgOWwtMi4wMyAyLjAzYTYuNTcgNi41NyAwIDAgMSAyIC4xMmwzLjA0LTMuMDRhMy41OCAzLjU4IDAgMCAwIDAtNS4wNlptLTQgMS4wNmEyLjA4IDIuMDggMCAxIDEgMi45NCAyLjk0bC0uODkuODlMMTYuMDYgNWwuOS0uOVpNMjIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tOS41IDBjMCAuODMuMjYgMS42LjcgMi4yNWw1LjU1LTUuNTZhNCA0IDAgMCAwLTYuMjUgMy4zWm00IDRhNCA0IDAgMCAwIDMuMy02LjI1bC01LjU1IDUuNTZjLjY0LjQ0IDEuNDIuNjkgMi4yNS42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQcm9oaWJpdGVkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFByb2hpYml0ZWQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE5LjI5IDMuMTVhMy45MyAzLjkzIDAgMSAxIDUuNTYgNS41NmwtMS41NCAxLjU0LTUuNTYtNS41NiAxLjU0LTEuNTRabS0yLjYgMi42TDQuNSAxNy45NGMtLjQ0LjQ0LS43Ni45OC0uOTMgMS41OGwtMS41NCA1LjUzYS43NS43NSAwIDAgMCAuOTIuOTJsNS41My0xLjU0Yy42LS4xNyAxLjE0LS41IDEuNTgtLjkzbDItMmE3LjUgNy41IDAgMCAxIDguNDMtOC40M2wxLjc2LTEuNzYtNS41Ni01LjU2Wk0xOS41IDI3YTYuNSA2LjUgMCAxIDAgMC0xMyA2LjUgNi41IDAgMCAwIDAgMTNabTAtMS41YTQuOTggNC45OCAwIDAgMS0yLjk3LS45N2w3LTdhNSA1IDAgMCAxLTQuMDMgNy45N1ptMi45Ny05LjAzLTcgN2E1IDUgMCAwIDEgNy03WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFByb2hpYml0ZWQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFByb2hpYml0ZWQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yNC44NSAzLjE1YTMuOTMgMy45MyAwIDAgMC01LjU2IDBMNC41IDE3Ljk0Yy0uNDQuNDQtLjc2Ljk4LS45MyAxLjU4bC0xLjU0IDUuNTNhLjc1Ljc1IDAgMCAwIC45Mi45Mmw1LjUzLTEuNTRjLjYtLjE3IDEuMTQtLjUgMS41OC0uOTNsMi0yYTcuNTggNy41OCAwIDAgMSAuMDMtMi4xNUw5IDIyLjQ0Yy0uMjYuMjYtLjU4LjQ0LS45My41NGwtNC4yNCAxLjE5IDEuMTktNC4yNGMuMS0uMzUuMjgtLjY3LjU0LS45M0wxNy43NSA2LjhsMy40NCAzLjQ0LTIuODQgMi44NGE3LjU1IDcuNTUgMCAwIDEgMi4xNC0uMDJsNC4zNi00LjM2YTMuOTMgMy45MyAwIDAgMCAwLTUuNTZabS00LjUgMS4wNmEyLjQzIDIuNDMgMCAxIDEgMy40NCAzLjQ0bC0xLjU0IDEuNTQtMy40NC0zLjQ0IDEuNTQtMS41NFpNMTkuNSAyN2E2LjUgNi41IDAgMSAwIDAtMTMgNi41IDYuNSAwIDAgMCAwIDEzWm0wLTEuNWE0Ljk4IDQuOTggMCAwIDEtMi45Ny0uOTdsNy03YTUgNSAwIDAgMS00LjAzIDcuOTdabTIuOTctOS4wMy03IDdhNSA1IDAgMCAxIDctN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQcm9oaWJpdGVkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFByb2hpYml0ZWQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIxLjY1IDMuNDNhNC44OSA0Ljg5IDAgMSAxIDYuOTEgNi45MmwtLjkuOS02LjkxLTYuOTEuOS0uOVptLTIuMzEgMi4zMkw0LjM2IDIwLjczYTMuNyAzLjcgMCAwIDAtMSAxLjg0bC0xLjM0IDYuMjJhMSAxIDAgMCAwIDEuMTkgMS4xOWw2LjIyLTEuMzRhMy43IDMuNyAwIDAgMCAxLjg0LTFsMi4xLTIuMWE5IDkgMCAwIDEgMTEuMTgtMTEuMTdsMS43LTEuNy02LjkxLTYuOTJaTTIyIDMwLjVhNy41IDcuNSAwIDEgMCAwLTE1IDcuNSA3LjUgMCAwIDAgMCAxNVptMC0yYTUuNDcgNS40NyAwIDAgMS0zLjEyLS45N2w3LjY1LTcuNjVBNS41IDUuNSAwIDAgMSAyMiAyOC41Wm0zLjEyLTEwLjAzLTcuNjUgNy42NWE1LjUgNS41IDAgMCAxIDcuNjUtNy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRQcm9oaWJpdGVkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRQcm9oaWJpdGVkMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjguNTYgMy40M2MtMS45LTEuOS01LTEuOS02LjkxIDBsLTE3LjMgMTcuM2EzLjcgMy43IDAgMCAwLTEgMS44NGwtMS4zMyA2LjIyYTEgMSAwIDAgMCAxLjE5IDEuMTlsNi4yMi0xLjM0YTMuNyAzLjcgMCAwIDAgMS44NC0xbDIuMS0yLjFhOSA5IDAgMCAxLS4zNy0yLjQ2bC0zLjE0IDMuMTVjLS4yNC4yMy0uNTMuMzktLjg1LjQ2bC00LjcgMSAxLTQuN2MuMDctLjMyLjIzLS42Mi40Ni0uODVMMjAuNzUgNy4xNmw0LjA5IDQuMDlMMjIuMDggMTRhOSA5IDAgMCAxIDIuNDcuMzdsNC4wMS00LjAyYzEuOTEtMS45MSAxLjkxLTUgMC02LjkyWm0tNS41IDEuNDJhMi44OSAyLjg5IDAgMCAxIDQuMDkgNC4wOGwtLjkuOS00LjA5LTQuMDguOS0uOVpNMjIgMzAuNWE3LjUgNy41IDAgMSAwIDAtMTUgNy41IDcuNSAwIDAgMCAwIDE1Wm0wLTJhNS40NyA1LjQ3IDAgMCAxLTMuMTItLjk3bDcuNjUtNy42NUE1LjUgNS41IDAgMCAxIDIyIDI4LjVabTMuMTItMTAuMDMtNy42NSA3LjY1YTUuNSA1LjUgMCAwIDEgNy42NS03LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFByb2hpYml0ZWQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzIuMiA2LjAzYTYuOSA2LjkgMCAxIDEgOS43NyA5Ljc2bC0yLjIgMi4yTDMwIDguMjRsMi4yLTIuMlpNMjguMjQgMTAgOC4wMyAzMC4yYTYgNiAwIDAgMC0xLjU2IDIuNzVsLTIuNDMgOS40OWExLjI1IDEuMjUgMCAwIDAgMS41MiAxLjUybDkuNDktMi40MmE2IDYgMCAwIDAgMi43Ni0xLjU4bDIuNDQtMi40NGExMyAxMyAwIDAgMSAxNS4yOC0xNS4yOEwzOCAxOS43NyAyOC4yMyAxMFpNMzMgNDZhMTEgMTEgMCAxIDAgMC0yMiAxMSAxMSAwIDAgMCAwIDIyWm0wLTIuNWMtMS45IDAtMy42NS0uNjItNS4wNi0xLjY3bDExLjg5LTExLjlBOC41IDguNSAwIDAgMSAzMyA0My41Wm01LjA2LTE1LjMzLTExLjg5IDExLjlhOC41IDguNSAwIDAgMSAxMS45LTExLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0UHJvaGliaXRlZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0UHJvaGliaXRlZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTQxLjk3IDYuMDJhNi45IDYuOSAwIDAgMC05Ljc2IDBMOC4wNCAzMC4yYTYgNiAwIDAgMC0xLjU3IDIuNzVsLTIuNDMgOS40OWExLjI1IDEuMjUgMCAwIDAgMS41MiAxLjUybDkuNDktMi40MmE2IDYgMCAwIDAgMi43Ni0xLjU4bDIuNDQtMi40NGExMy4wNyAxMy4wNyAwIDAgMS0uMjMtMy4zMWwtMy45OCAzLjk5Yy0uNDUuNDQtMSAuNzYtMS42MS45MWwtNy40NSAxLjkgMS45LTcuNDRjLjE2LS42LjQ4LTEuMTYuOTMtMS42TDMwIDExLjc2IDM2LjIzIDE4bC00LjAyIDQuMDJhMTMuMiAxMy4yIDAgMCAxIDMuMzEuMjJsNi40NS02LjQ1YTYuOSA2LjkgMCAwIDAgMC05Ljc3Wm0tOCAxLjc3YTQuNCA0LjQgMCAwIDEgNi4yNCA2LjIzTDM4IDE2LjIzIDMxLjc3IDEwbDIuMi0yLjJaTTMzIDQ2YTExIDExIDAgMSAwIDAtMjIgMTEgMTEgMCAwIDAgMCAyMlptMC0yLjVjLTEuOSAwLTMuNjUtLjYyLTUuMDYtMS42N2wxMS44OS0xMS45QTguNSA4LjUgMCAwIDEgMzMgNDMuNVptNS4wNi0xNS4zMy0xMS44OSAxMS45YTguNSA4LjUgMCAwIDEgMTEuOS0xMS45WlwiXSk7XG5leHBvcnQgY29uc3QgRWRpdFNldHRpbmdzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFNldHRpbmdzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi45MiAyLjg3YTIuOTcgMi45NyAwIDAgMSA0LjIgNC4yMWwtLjY2LjY3LTQuMi00LjIuNjYtLjY4Wm0tMS4zOCAxLjM4LTggOGMtLjMyLjMzLS41NS43NC0uNjUgMS4ybC0uODggMy45NGEuNS41IDAgMCAwIC42LjZsMy45Mi0uODdjLjQ3LS4xLjktLjM0IDEuMjQtLjY4TDguMiAxNkE1LjUgNS41IDAgMCAxIDE1IDkuMmwuNzUtLjc0LTQuMi00LjIxWm0tLjQ3IDcuMmEyIDIgMCAwIDEtMS40MyAyLjQ3bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDJsLjM1LjA4QTIgMiAwIDAgMSAxMSAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNiAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA1YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRTZXR0aW5nczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFZGl0U2V0dGluZ3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy4xOCAyLjkzYTIuOTcgMi45NyAwIDAgMC00LjI2LS4wNmwtOS4zNyA5LjM4Yy0uMzMuMzMtLjU2Ljc0LS42NiAxLjJsLS44OCAzLjk0YS41LjUgMCAwIDAgLjYuNmwzLjkyLS44N2MuNDctLjEuOS0uMzQgMS4yNC0uNjhMOC4yIDE2Yy0uMTEtLjM5LS4xOC0uOC0uMi0xLjIxbC0uOTUuOTRjLS4yLjItLjQ2LjM1LS43NC40MWwtMy4xNi43LjctMy4xOGMuMDctLjI3LjItLjUxLjQtLjdsNy45OS04IDIuOCAyLjhMMTMuNzggOWMuNDEuMDIuODIuMDkgMS4yMS4ybDIuMTMtMi4xM2EyLjk3IDIuOTcgMCAwIDAgLjA1LTQuMTVabS0zLjU1LjY1YTEuOTcgMS45NyAwIDAgMSAyLjc5IDIuOGwtLjY3LjY2LTIuOC0yLjc5LjY4LS42N1ptLTIuNTYgNy44NmEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDJsLjM1LjA4QTIgMiAwIDAgMSAxMSAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNiAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVkaXRTZXR0aW5nczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VkaXRTZXR0aW5nczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuOSAzLjA1YTMuNTggMy41OCAwIDEgMSA1LjA1IDUuMDZsLS44OS45TDE1IDMuOTNsLjktLjlaTTEzLjkzIDVsLTEwIDEwYy0uNC40LS43LjkyLS44MiAxLjQ4bC0xLjEgNC42YS43NS43NSAwIDAgMCAuOS45bDQuNi0xLjFBMy4xIDMuMSAwIDAgMCA5IDIwLjA3bDEuMTUtMS4xNWE2LjUyIDYuNTIgMCAwIDEgNy43Ni03Ljc2TDE5IDEwLjA2IDEzLjk0IDVabS0uNjYgOC45OGEyIDIgMCAwIDEtMS40NCAyLjVsLS41OS4xNGE1LjczIDUuNzMgMCAwIDAgMCAxLjhsLjU1LjEzYTIgMiAwIDAgMSAxLjQ1IDIuNTFsLS4xOS42NGMuNDQuMzguOTQuNyAxLjQ5LjkybC40OS0uNTJhMiAyIDAgMCAxIDIuOSAwbC41LjUyYTUuMjggNS4yOCAwIDAgMCAxLjQ4LS45bC0uMi0uN2EyIDIgMCAwIDEgMS40NC0yLjVsLjU5LS4xNGE1LjczIDUuNzMgMCAwIDAtLjAxLTEuOGwtLjU0LS4xM2EyIDIgMCAwIDEtMS40NS0yLjUxbC4xOS0uNjNjLS40NC0uMzktLjk0LS43LTEuNDktLjkzbC0uNDkuNTJhMiAyIDAgMCAxLTIuOSAwbC0uNS0uNTJjLS41NC4yMi0xLjA0LjUzLTEuNDguOTFsLjIuNjlaTTE2LjUgMTljLS44IDAtMS40NS0uNjctMS40NS0xLjVTMTUuNyAxNiAxNi41IDE2Yy44IDAgMS40NS42NyAxLjQ1IDEuNVMxNy4zIDE5IDE2LjUgMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBFZGl0U2V0dGluZ3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWRpdFNldHRpbmdzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAuOTUgMy4wNWEzLjU4IDMuNTggMCAwIDAtNS4wNiAwTDMuOTQgMTVjLS40LjQtLjcuOTItLjgyIDEuNDhsLTEuMSA0LjZhLjc1Ljc1IDAgMCAwIC45LjlsNC42LTEuMUEzLjEgMy4xIDAgMCAwIDkgMjAuMDdsMS4xNS0xLjE1YTYuNTIgNi41MiAwIDAgMS0uMTItMkw3Ljk0IDE5YTEuNiAxLjYgMCAwIDEtLjc2LjQzbC0zLjQyLjguODItMy40Yy4wNi0uMy4yMS0uNTYuNDItLjc3bDEwLTEwTDE3Ljk0IDlsLTIuMDMgMi4wM2E2LjU3IDYuNTcgMCAwIDEgMiAuMTJsMy4wNC0zLjA0YTMuNTggMy41OCAwIDAgMCAwLTUuMDZabS00IDEuMDZhMi4wOCAyLjA4IDAgMSAxIDIuOTQgMi45NGwtLjg5Ljg5TDE2LjA2IDVsLjktLjlabS0zLjY3IDkuODdhMiAyIDAgMCAxLTEuNDQgMi41bC0uNTkuMTRhNS43MyA1LjczIDAgMCAwIDAgMS44bC41NS4xM2EyIDIgMCAwIDEgMS40NSAyLjUxbC0uMTkuNjRjLjQ0LjM4Ljk0LjcgMS40OS45MmwuNDktLjUyYTIgMiAwIDAgMSAyLjkgMGwuNS41MmE1LjI4IDUuMjggMCAwIDAgMS40OC0uOWwtLjItLjdhMiAyIDAgMCAxIDEuNDQtMi41bC41OS0uMTRhNS43MyA1LjczIDAgMCAwLS4wMS0xLjhsLS41NC0uMTNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMTktLjYzYy0uNDQtLjM5LS45NC0uNy0xLjQ5LS45M2wtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjkxbC4yLjY5Wk0xNi41IDE5Yy0uOCAwLTEuNDUtLjY3LTEuNDUtMS41UzE1LjcgMTYgMTYuNSAxNmMuOCAwIDEuNDUuNjcgMS40NSAxLjVTMTcuMyAxOSAxNi41IDE5WlwiXSk7XG5leHBvcnQgY29uc3QgRWxldmF0b3IyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbGV2YXRvcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS41IDNINWEzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDMgM2g0LjVWM1pNNS42NSA3LjE1Yy4yLS4yLjUtLjIuNyAwbDEuNSAxLjVhLjUuNSAwIDEgMS0uNy43bC0uNjUtLjY0djIuNzlhLjUuNSAwIDAgMS0xIDBWOC43bC0uNjUuNjVhLjUuNSAwIDEgMS0uNy0uN2wxLjUtMS41Wk0xMC41IDE2SDE1YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zaC00LjV2MTNabTMuODUtNC4xNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjRWNy41YS41LjUgMCAwIDEgMSAwdjIuOGwuNjUtLjY1YS41LjUgMCAwIDEgLjcuN2wtMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVsZXZhdG9yMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VsZXZhdG9yMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS42NSA3LjE1Yy4yLS4yLjUtLjIuNyAwbDEuNSAxLjVhLjUuNSAwIDEgMS0uNy43bC0uNjUtLjY0djIuNzlhLjUuNSAwIDAgMS0xIDBWOC43bC0uNjUuNjVhLjUuNSAwIDEgMS0uNy0uN2wxLjUtMS41Wm0xMC4yIDMuMi0xLjUgMS41YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIC43LS43bC42NS42NFY3LjVhLjUuNSAwIDAgMSAxIDB2Mi44bC42NS0uNjVhLjUuNSAwIDAgMSAuNy43Wk01IDNhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINVptNC41IDF2MTFINWEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0LjVabTEgMTFWNEgxNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMmgtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRWxldmF0b3IyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbGV2YXRvcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNzUgMjBoNmMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di05LjVDMjIgNS40NSAyMC41NCA0IDE4Ljc1IDRoLTZ2MTZabTMuOTctNS4yMi0xLjc1LTEuNzVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwuNDcuNDdWOS41YS43NS43NSAwIDAgMSAxLjUgMHYyLjk0bC40Ny0uNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMS43NSAxLjc1Yy0uMy4zLS43Ny4zLTEuMDYgMFpNMTEuMjUgNGgtNkEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGg2VjRaTTcuMjggOC45N2wxLjc1IDEuNzVhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtLjQ3LS40N3YyLjk0YS43NS43NSAwIDAgMS0xLjUgMHYtMi45NGwtLjQ3LjQ3YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMS43NS0xLjc1Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVsZXZhdG9yMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VsZXZhdG9yMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC4wMyA4Ljk3YS43NS43NSAwIDAgMC0xLjA2IDBsLTEuNzUgMS43NWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bC40Ny0uNDd2Mi45NGEuNzUuNzUgMCAwIDAgMS41IDB2LTIuOTRsLjQ3LjQ3YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMOC4wMyA4Ljk3Wm02LjE5IDQuMDYgMS43NSAxLjc1Yy4zLjMuNzcuMyAxLjA2IDBsMS43NS0xLjc1YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLS40Ny40N1Y5LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIuOTRsLS40Ny0uNDdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNlpNNS4yNSA0QTMuMjUgMy4yNSAwIDAgMCAyIDcuMjV2OS41QzIgMTguNTUgMy40NiAyMCA1LjI1IDIwaDEzLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOS41QzIyIDUuNDUgMjAuNTQgNCAxOC43NSA0SDUuMjVaTTMuNSA3LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDZ2MTNoLTZjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtOS41Wm05LjI1LTEuNzVoNmMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC02di0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVsZXZhdG9yMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWxldmF0b3IzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3IDI4aDguNWE0LjUgNC41IDAgMCAwIDQuNS00LjV2LTE1QTQuNSA0LjUgMCAwIDAgMjUuNSA0SDE3djI0Wm03LjUtMTZ2Ni4wOWwxLjMtMS4zYTEgMSAwIDAgMSAxLjQgMS40MmwtMyAzYTEgMSAwIDAgMS0xLjQgMGwtMy0zYTEgMSAwIDAgMSAxLjQtMS40MmwxLjMgMS4zVjEyYTEgMSAwIDEgMSAyIDBaTTE1IDRINi41QTQuNSA0LjUgMCAwIDAgMiA4LjV2MTVBNC41IDQuNSAwIDAgMCA2LjUgMjhIMTVWNFpNOC41IDIxLjVhMSAxIDAgMCAxLTEtMXYtNi4wOWwtMS4zIDEuM2ExIDEgMCAwIDEtMS40LTEuNDJsMy0zYTEgMSAwIDAgMSAxLjQgMGwzIDNhMSAxIDAgMCAxLTEuNCAxLjQybC0xLjMtMS4zdjYuMDlhMSAxIDAgMCAxLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVsZXZhdG9yMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VsZXZhdG9yMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOS41IDIxLjVhMSAxIDAgMCAwIDEtMXYtNi4wOWwxLjMgMS4zYTEgMSAwIDAgMCAxLjQtMS40MmwtMy0zYTEgMSAwIDAgMC0xLjQgMGwtMyAzYTEgMSAwIDEgMCAxLjQgMS40MmwxLjMtMS4zdjYuMDlhMSAxIDAgMCAwIDEgMVptMTQtOS41YTEgMSAwIDEgMC0yIDB2Ni4wOWwtMS4zLTEuM2ExIDEgMCAwIDAtMS40IDEuNDJsMyAzYTEgMSAwIDAgMCAxLjQgMGwzLTNhMSAxIDAgMCAwLTEuNC0xLjQybC0xLjMgMS4zVjEyWm0tMTctOEE0LjUgNC41IDAgMCAwIDIgOC41djE1QTQuNSA0LjUgMCAwIDAgNi41IDI4aDE5YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTVBNC41IDQuNSAwIDAgMCAyNS41IDRoLTE5Wk00IDguNUEyLjUgMi41IDAgMCAxIDYuNSA2SDE1djIwSDYuNUEyLjUgMi41IDAgMCAxIDQgMjMuNXYtMTVaTTE3IDI2VjZoOC41QTIuNSAyLjUgMCAwIDEgMjggOC41djE1YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVsZXZhdG9yNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWxldmF0b3I0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTIyLjc3IDhIMTAuMjVBNi4yNSA2LjI1IDAgMCAwIDQgMTQuMjV2MTkuNUM0IDM3LjIgNi44IDQwIDEwLjI1IDQwaDEyLjUyYTEuMjYgMS4yNiAwIDAgMS0uMDItLjI1VjguMjVjMC0uMDkgMC0uMTcuMDItLjI1Wm0yLjQ2IDMyaDEyLjUyQzQxLjIgNDAgNDQgMzcuMiA0NCAzMy43NXYtMTkuNUM0NCAxMC44IDQxLjIgOCAzNy43NSA4SDI1LjIzbC4wMi4yNXYzMS41YzAgLjA5IDAgLjE3LS4wMi4yNVptMTQuMTUtMTMuNjItNC4yNSA0LjI1Yy0uNDguNS0xLjI4LjUtMS43NiAwbC00LjI1LTQuMjVhMS4yNSAxLjI1IDAgMCAxIDEuNzYtMS43NkwzMyAyNi43M3YtOC40OGExLjI1IDEuMjUgMCAxIDEgMi41IDB2OC40OGwyLjEyLTIuMTFhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMS43NlptLTI2LjUxLTkuMDFhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMGw0LjI1IDQuMjVhMS4yNSAxLjI1IDAgMCAxLTEuNzYgMS43NkwxNSAyMS4yN3Y4LjQ4YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtOC40OGwtMi4xMiAyLjExYTEuMjUgMS4yNSAwIDAgMS0xLjc2LTEuNzZsNC4yNS00LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRWxldmF0b3I0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRWxldmF0b3I0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xMC4yNSA4QTYuMjUgNi4yNSAwIDAgMCA0IDE0LjI1djE5LjVDNCAzNy4yIDYuOCA0MCAxMC4yNSA0MGgyNy41QzQxLjIgNDAgNDQgMzcuMiA0NCAzMy43NXYtMTkuNUM0NCAxMC44IDQxLjIgOCAzNy43NSA4aC0yNy41Wm0xMi41IDIuNXYyN2gtMTIuNWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1di0xOS41YTMuNzUgMy43NSAwIDAgMSAzLjc1LTMuNzVoMTIuNVptMi41IDI3di0yN2gxMi41YTMuNzUgMy43NSAwIDAgMSAzLjc1IDMuNzV2MTkuNWEzLjc1IDMuNzUgMCAwIDEtMy43NSAzLjc1aC0xMi41Wm0xMy4xMy0xMS4xMi00LjI1IDQuMjVjLS40OC41LTEuMjguNS0xLjc2IDBsLTQuMjUtNC4yNWExLjI1IDEuMjUgMCAwIDEgMS43Ni0xLjc2TDMyIDI2Ljczdi04LjQ4YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHY4LjQ4bDIuMTItMi4xMWExLjI1IDEuMjUgMCAwIDEgMS43NiAxLjc2Wm0tMjQuNTEtOS4wMWExLjI1IDEuMjUgMCAwIDEgMS43NiAwbDQuMjUgNC4yNWExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2TDE2IDIxLjI3djguNDhhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi04LjQ4bC0yLjEyIDIuMTFhMS4yNSAxLjI1IDAgMCAxLTEuNzYtMS43Nmw0LjI1LTQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDE0QTYgNiAwIDEgMSA4IDJhNiA2IDAgMCAxIDAgMTJaTTYuMjUgNy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS0uMTEgMS45MmEuNS41IDAgMSAwLS43NS42NiAzLjUgMy41IDAgMCAwIDUuMjIgMCAuNS41IDAgMSAwLS43NS0uNjYgMi41IDIuNSAwIDAgMS0zLjcyIDBabTMuNjEtMS45MmEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYuMjUgNy43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS0uMTEgMS45MmEuNS41IDAgMSAwLS43NS42NiAzLjUgMy41IDAgMCAwIDUuMjIgMCAuNS41IDAgMCAwLS43NS0uNjYgMi41IDIuNSAwIDAgMS0zLjcyIDBaTTEwLjUgN0EuNzUuNzUgMCAxIDEgOSA3YS43NS43NSAwIDAgMSAxLjUgMFpNMTQgOEE2IDYgMCAxIDAgMiA4YTYgNiAwIDAgMCAxMiAwWk0zIDhhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwYTggOCAwIDEgMC0xNiAwIDggOCAwIDAgMCAxNiAwWm0tNi41LTEuNWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabS01IDBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0uMzkgNC4wMWE0IDQgMCAwIDAgNi4yMiAwIC41LjUgMCAxIDEgLjc4LjYzIDUgNSAwIDAgMS03Ljc4IDAgLjUuNSAwIDEgMSAuNzgtLjYzWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOCAxMGE4IDggMCAxIDAtMTYgMCA4IDggMCAwIDAgMTYgMFpNMyAxMGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFptMTAuNS0xLjVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tNSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLTEuNjEgNC4wMWEuNS41IDAgMSAwLS43OC42MyA1IDUgMCAwIDAgNy43OCAwIC41LjUgMCAxIDAtLjc4LS42MyA0IDQgMCAwIDEtNi4yMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBaTTguNDYgMTQuNzhhLjc1Ljc1IDAgMCAwLTEuMTguOTMgNiA2IDAgMCAwIDkuNDMgMCAuNzUuNzUgMCAxIDAtMS4xOC0uOTIgNC41IDQuNSAwIDAgMS03LjA3IDBaTTkgOC43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBabTAgMS41YTguNSA4LjUgMCAxIDAgMCAxNyA4LjUgOC41IDAgMCAwIDAtMTdaTTguNDYgMTQuNzhhNC41IDQuNSAwIDAgMCA3LjA3IDAgLjc1Ljc1IDAgMSAxIDEuMTguOTQgNiA2IDAgMCAxLTkuNDMgMCAuNzUuNzUgMCAxIDEgMS4xOC0uOTRaTTkgOC43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamkyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgMTRhMTIgMTIgMCAxIDEgMjQgMCAxMiAxMiAwIDAgMS0yNCAwWm0xNS41LTFhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTEyIDExLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBabS0zLjY3IDUuNjNhLjc1Ljc1IDAgMCAwLS4yIDEuMDRsLjAxLjAyYTMuMDYgMy4wNiAwIDAgMCAuMS4xM2wuMjguMzNBNy40MiA3LjQyIDAgMCAwIDE0IDIxYTcuNDIgNy40MiAwIDAgMCA1Ljg0LTIuNzhsLjAyLS4wM3YtLjAxaC4wMWEuNzUuNzUgMCAwIDAtMS4yNC0uODUgMi4yMiAyLjIyIDAgMCAxLS4yNS4zQTUuOTIgNS45MiAwIDAgMSAxNCAxOS41YTUuOTIgNS45MiAwIDAgMS00LjYyLTIuMTZsLS4wMS0uMDFhLjc1Ljc1IDAgMCAwLTEuMDQtLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE3LjUgMTNhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTEyIDExLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabS0zLjY3IDUuNjNhLjc1Ljc1IDAgMCAxIDEuMDQuMiAyLjI1IDIuMjUgMCAwIDAgLjI1LjNBNS45MiA1LjkyIDAgMCAwIDE0IDE5LjVhNS45MiA1LjkyIDAgMCAwIDQuNjItMi4xNmwuMDEtLjAxYS43NS43NSAwIDAgMSAxLjI0Ljg0bC0uMDEuMDItLjAyLjAzYTMuODUgMy44NSAwIDAgMS0uMzYuNDNBNy40MiA3LjQyIDAgMCAxIDE0IDIxYTcuNDIgNy40MiAwIDAgMS01Ljg2LTIuODF2LS4wMWgtLjAxYS43NS43NSAwIDAgMSAuMi0xLjA1Wk0xNCAyYTEyIDEyIDAgMSAwIDAgMjQgMTIgMTIgMCAwIDAgMC0yNFpNMy41IDE0YTEwLjUgMTAuNSAwIDEgMSAyMSAwIDEwLjUgMTAuNSAwIDAgMS0yMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamkzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiAxNmExNCAxNCAwIDEgMSAyOCAwIDE0IDE0IDAgMCAxLTI4IDBabTEwLTFhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0xMC0yYTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFpNOS41NSAxOS4xYTEgMSAwIDAgMC0uNDQgMS4zNXYuMDJhMi40NSAyLjQ1IDAgMCAwIC4xLjE4bC4zLjQyYy4yNS4zNC42My43OCAxLjE4IDEuMjFBOC4yOCA4LjI4IDAgMCAwIDE2IDI0YzIuNSAwIDQuMjEtLjg0IDUuMzEtMS43MmE2Ljc2IDYuNzYgMCAwIDAgMS41Ny0xLjh2LS4wMmguMDF2LS4wMWExIDEgMCAwIDAtMS43OC0uOWwtLjA0LjA2LS4xNy4yNmMtLjE3LjIyLS40NC41My0uODQuODVBNi4zIDYuMyAwIDAgMSAxNiAyMmMtMiAwLTMuMjktLjY2LTQuMDYtMS4yOGE0Ljc2IDQuNzYgMCAwIDEtMS4wNS0xLjE3IDEgMSAwIDAgMC0xLjM0LS40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaTMyTGlnaHQnLCBcIjMyXCIsIFtcIk05LjkyIDE5LjczYS41LjUgMCAxIDAtLjg0LjU0QTguMjYgOC4yNiAwIDAgMCAxNiAyNGMyLjg0IDAgNS41LTEuNDggNi45Mi0zLjczYS41LjUgMCAxIDAtLjg0LS41NEE3LjI2IDcuMjYgMCAwIDEgMTYgMjNhNy4yNiA3LjI2IDAgMCAxLTYuMDgtMy4yN1pNMTMuNSAxM2ExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptNi41IDEuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMTYgMmExNCAxNCAwIDEgMCAwIDI4IDE0IDE0IDAgMCAwIDAtMjhaTTMgMTZhMTMgMTMgMCAxIDEgMjYgMCAxMyAxMyAwIDAgMS0yNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamkzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamkzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMiAxNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTEwLTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk05LjU1IDE5LjFhMSAxIDAgMCAxIDEuMzQuNDVsLjA0LjA2LjE3LjI2Yy4xNy4yMi40NC41My44NC44NUE2LjMgNi4zIDAgMCAwIDE2IDIyYzIgMCAzLjI5LS42NiA0LjA2LTEuMjhhNC43NiA0Ljc2IDAgMCAwIDEuMDUtMS4xNyAxIDEgMCAwIDEgMS43OC45di4wMmEyLjYxIDIuNjEgMCAwIDEtLjEuMThsLS4zLjQyYy0uMjUuMzQtLjYzLjc4LTEuMTggMS4yMUE4LjI4IDguMjggMCAwIDEgMTYgMjRjLTIuNSAwLTQuMjEtLjg0LTUuMzEtMS43MmE2Ljc2IDYuNzYgMCAwIDEtMS41Ny0xLjh2LS4wMkg5LjF2LS4wMWExIDEgMCAwIDEgLjQ0LTEuMzRaTTE2IDJhMTQgMTQgMCAxIDAgMCAyOCAxNCAxNCAwIDAgMCAwLTI4Wk00IDE2YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamk0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMjRhMjAgMjAgMCAxIDEgNDAgMCAyMCAyMCAwIDAgMS00MCAwWm0xMy41LTJhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVaTTMzIDE5LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBaTTE4LjQ1IDM0LjY4YzEuNzEuOSAzLjYyIDEuMzQgNS41NSAxLjMyYTExLjcyIDExLjcyIDAgMCAwIDkuODItNS4xIDEuMjUgMS4yNSAwIDEgMC0yLjEzLTEuM0E5LjIxIDkuMjEgMCAwIDEgMjQgMzMuNWE5LjIyIDkuMjIgMCAwIDEtNy42OS0zLjkgMS4yNSAxLjI1IDAgMSAwLTIuMTMgMS4zYzEuMSAxLjYgMi41NiAyLjkgNC4yNyAzLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamk0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamk0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNy41IDIyYTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1Wk0zMyAxOS41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWk0xOC40NSAzNC42OGMxLjcxLjkgMy42MiAxLjM0IDUuNTUgMS4zMmExMS43MiAxMS43MiAwIDAgMCA5LjgyLTUuMSAxLjI1IDEuMjUgMCAxIDAtMi4xMy0xLjNBOS4yMSA5LjIxIDAgMCAxIDI0IDMzLjVhOS4yMiA5LjIyIDAgMCAxLTcuNjktMy45IDEuMjUgMS4yNSAwIDEgMC0yLjEzIDEuM2MxLjEgMS42IDIuNTYgMi45IDQuMjcgMy43OFpNMjQgNGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMCAwIDAtNDBaTTYuNSAyNGExNy41IDE3LjUgMCAxIDEgMzUgMCAxNy41IDE3LjUgMCAwIDEtMzUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQWRkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBZGQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcgMTNoLjI1YTQuNSA0LjUgMCAwIDEtLjE0LTIuNUEzLjQ3IDMuNDcgMCAwIDEgNC40IDkuMzNhLjUuNSAwIDAgMSAuNzUtLjY2IDIuNSAyLjUgMCAwIDAgMi4zNS43OCA0LjUgNC41IDAgMCAxIDUuNS0yLjJMMTMgN2E2IDYgMCAxIDAtNiA2Wk01LjI1IDYuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0zLjUgMGEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVaTTE1IDExLjVhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBabS0zLTJhLjUuNSAwIDAgMC0xIDBWMTFIOS41YS41LjUgMCAwIDAgMCAxSDExdjEuNWEuNS41IDAgMCAwIDEgMFYxMmgxLjVhLjUuNSAwIDAgMCAwLTFIMTJWOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlBZGQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBZGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMyA3YTYgNiAwIDEgMC01Ljc1IDYgNC40NyA0LjQ3IDAgMCAxLS4yMi0xSDdhNSA1IDAgMSAxIDUtNXYuMDNjLjM0LjA0LjY4LjExIDEgLjIyVjdabS01Ljg5IDMuNWMuMDktLjM3LjIxLS43Mi4zOC0xLjA1YTIuNTEgMi41MSAwIDAgMS0yLjM1LS43OC41LjUgMCAwIDAtLjc1LjY2IDMuNSAzLjUgMCAwIDAgMi43MiAxLjE3Wk02IDZhLjc1Ljc1IDAgMSAxLTEuNSAwQS43NS43NSAwIDAgMSA2IDZabTIuNzUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk0xNSAxMS41YTMuNSAzLjUgMCAxIDEtNyAwIDMuNSAzLjUgMCAwIDEgNyAwWm0tMy0yYS41LjUgMCAwIDAtMSAwVjExSDkuNWEuNS41IDAgMCAwIDAgMUgxMXYxLjVhLjUuNSAwIDAgMCAxIDBWMTJoMS41YS41LjUgMCAwIDAgMC0xSDEyVjkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3IDlhOCA4IDAgMSAwLTcuNDEgNy45OEE1LjQ4IDUuNDggMCAwIDEgOS4wMiAxNEg5YTUgNSAwIDAgMS0zLjg5LTEuODYuNS41IDAgMSAxIC43OC0uNjNBNCA0IDAgMCAwIDkuMiAxM2E1LjUgNS41IDAgMCAxIDcuNzctMy40MUwxNyA5Wm0tNi41LTEuNWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabS01IDBhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xMy41IDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDlhOCA4IDAgMSAwLTcuNDEgNy45OEE1LjQ2IDUuNDYgMCAwIDEgOS4yIDE2SDlhNyA3IDAgMSAxIDctNi44Yy4zNC4xLjY3LjIzLjk4LjM5TDE3IDlabS03Ljk4IDVjLjAzLS4zNC4xLS42OC4xOS0xSDlhNCA0IDAgMCAxLTMuMTEtMS40OS41LjUgMCAxIDAtLjc4LjYzQTUgNSAwIDAgMCA5IDE0aC4wMlptMy40OC02LjVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tNSAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptMTEuNSA3YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUFkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWk0xMiAyYTEwIDEwIDAgMCAxIDkuOTcgMTAuNzggNi41IDYuNSAwIDAgMC0xMC44OCAzLjYzIDQuNDkgNC40OSAwIDAgMS0yLjYzLTEuNjMuNzUuNzUgMCAwIDAtMS4xOC45MyA2IDYgMCAwIDAgMy43MyAyLjIxYy4xIDEuNTYuNzYgMi45OCAxLjc3IDQuMDVMMTIgMjJhMTAgMTAgMCAxIDEgMC0yMFptNS41IDEyaC0uMDlhLjUuNSAwIDAgMC0uNC40bC0uMDEuMVYxN2gtMi42YS41LjUgMCAwIDAtLjQuNHYuMTljLjA0LjIuMi4zNi40LjRIMTd2Mi42MWMuMDUuMi4yLjM2LjQxLjRoLjE4YS41LjUgMCAwIDAgLjQtLjRsLjAxLS4xVjE4aDIuNmEuNS41IDAgMCAwIC40LS40MXYtLjE4YS41LjUgMCAwIDAtLjQtLjRsLS4xLS4wMUgxOHYtMi42YS41LjUgMCAwIDAtLjQxLS40aC0uMDlaTTkgOC43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppQWRkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWk0xMiAyYTEwIDEwIDAgMCAxIDkuOTcgMTAuNzggNi41IDYuNSAwIDAgMC0xLjQ3LTEuMDUgOC41IDguNSAwIDEgMC04Ljc3IDguNzcgNi41IDYuNSAwIDAgMCAxLjA1IDEuNDdMMTIgMjJhMTAgMTAgMCAxIDEgMC0yMFptNS41IDEyaC0uMDlhLjUuNSAwIDAgMC0uNC40bC0uMDEuMVYxN2gtMi42YS41LjUgMCAwIDAtLjQuNHYuMTljLjA0LjIuMi4zNi40LjRIMTd2Mi42MWMuMDUuMi4yLjM2LjQxLjRoLjE4YS41LjUgMCAwIDAgLjQtLjRsLjAxLS4xVjE4aDIuNmEuNS41IDAgMCAwIC40LS40MXYtLjE4YS41LjUgMCAwIDAtLjQtLjRsLS4xLS4wMUgxOHYtMi42YS41LjUgMCAwIDAtLjQxLS40aC0uMDlabS05LjA0Ljc4YTQuNSA0LjUgMCAwIDAgMi42MyAxLjYzIDYuNDYgNi40NiAwIDAgMC0uMDggMS41IDUuOTggNS45OCAwIDAgMS0zLjczLTIuMi43NS43NSAwIDEgMSAxLjE4LS45M1pNOSA4Ljc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabTYgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlBbmdyeTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppQW5ncnkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMmE2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgOCAyWk01Ljg1IDUuMTVhLjUuNSAwIDEgMC0uNy43bC42LjZhLjc1Ljc1IDAgMCAwIC41IDEuMy43NS43NSAwIDAgMCAuNy0xLjAzLjUuNSAwIDAgMC0uMS0uNTdsLTEtMVpNMTAuNSA3YzAtLjIyLS4xLS40MS0uMjQtLjU1bC42LS42YS41LjUgMCAwIDAtLjcxLS43bC0xIDFhLjUuNSAwIDAgMC0uMS41Ny43NS43NSAwIDAgMCAuNyAxLjAzYy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tNC4zNiA0LjMzYTIuNSAyLjUgMCAwIDEgMy43MiAwIC41LjUgMCAwIDAgLjc1LS42NiAzLjUgMy41IDAgMCAwLTUuMjIgMCAuNS41IDAgMCAwIC43NS42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnkxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBbmdyeTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcgN2EuNzUuNzUgMCAxIDEtMS4yNi0uNTVsLS42LS42YS41LjUgMCAxIDEgLjcxLS43bDEgMWEuNS41IDAgMCAxIC4xLjU3Yy4wMy4wOS4wNS4xOC4wNS4yOFptMi43NS43NWEuNzUuNzUgMCAwIDAgLjUtMS4zbC42LS42YS41LjUgMCAwIDAtLjctLjdsLTEgMWEuNS41IDAgMCAwLS4xLjU3Ljc1Ljc1IDAgMCAwIC43IDEuMDNabS00LjMyIDMuNjJjLjIuMTkuNTIuMTcuNy0uMDRhMi41IDIuNSAwIDAgMSAzLjczIDAgLjUuNSAwIDAgMCAuNzUtLjY2IDMuNSAzLjUgMCAwIDAtNS4yMiAwIC41LjUgMCAwIDAgLjA0LjdaTTggMmE2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgOCAyWm0wIDFhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDggM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUFuZ3J5MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm02LjUtMS41YS41LjUgMCAwIDAgLjI2LS45M2wtMi41LTEuNWEuNS41IDAgMCAwLS41Mi44NmwxLjIyLjczYTEgMSAwIDEgMCAxLjU0Ljg0Wm01IDBhMSAxIDAgMCAwLS40Ni0uODRsMS4yMi0uNzNhLjUuNSAwIDAgMC0uNTItLjg2bC0yLjUgMS41YS41LjUgMCAwIDAgLjI2LjkzIDEgMSAwIDEgMCAyIDBabS4wNiA0Ljg5Yy4zNC0uMy4wNy0uNzIuMDYtLjczYTIuMDUgMi4wNSAwIDAgMC0uMjMtLjIzIDQuMDYgNC4wNiAwIDAgMC0uNjctLjQ5IDUuMyA1LjMgMCAwIDAtMi43Mi0uNjkgNS4zIDUuMyAwIDAgMC0yLjcyLjcgNC4wOCA0LjA4IDAgMCAwLS45LjdjLS4xOC4yMy0uMTcuNTUuMDYuNzRhLjUuNSAwIDAgMCAuNy0uMDdsLjAyLS4wM2MuMDMtLjAzLjA2LS4wNy4xMi0uMTEuMS0uMS4yNy0uMjQuNS0uMzdhNC4zMSA0LjMxIDAgMCAxIDIuMjItLjU2IDQuMyA0LjMgMCAwIDEgMi4yMi41NiAzLjA3IDMuMDcgMCAwIDEgLjY0LjVjLjE4LjIyLjUuMjcuNy4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBbmdyeTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSA4LjVhMSAxIDAgMSAxLTEuNTQtLjg0bC0xLjIyLS43M2EuNS41IDAgMCAxIC41Mi0uODZsMi41IDEuNWEuNS41IDAgMCAxLS4yNi45M1ptNSAwYTEgMSAwIDEgMS0yIDAgLjUuNSAwIDAgMS0uMjYtLjkzbDIuNS0xLjVhLjUuNSAwIDAgMSAuNTIuODZsLTEuMjIuNzNhMSAxIDAgMCAxIC40Ni44NFptLjA2IDQuODlhLjUuNSAwIDAgMS0uNy0uMDdBNC4zIDQuMyAwIDAgMCAxMCAxMi4yNWMtMS4wMi0uMDEtMS43NS4yNy0yLjIxLjU1YTMuMDkgMy4wOSAwIDAgMC0uNjUuNS41LjUgMCAwIDEtLjc4LS42MmwuMzkuMzEtLjM5LS4zMXYtLjAxbC4wMi0uMDJhMS43OCAxLjc4IDAgMCAxIC4yMy0uMjNjLjE1LS4xMy4zNy0uMzEuNjctLjQ5LjYtLjM1IDEuNS0uNjkgMi43Mi0uNjlhNS4zIDUuMyAwIDAgMSAyLjcyLjcgNC4wNiA0LjA2IDAgMCAxIC45LjcxbC4wMS4wMmguMDFsLS4zOS4zMi4zOS0uMzFhLjUuNSAwIDAgMS0uMDguN1pNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlptLTcgOGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUFuZ3J5MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptMCAxMS41Yy0xLjYzIDAtMy4xNy42Ni00LjI5IDEuOGEuNzUuNzUgMCAxIDAgMS4wNyAxLjA1IDQuNDggNC40OCAwIDAgMSA2LjQzIDAgLjc1Ljc1IDAgMSAwIDEuMDctMS4wNkE1Ljk4IDUuOTggMCAwIDAgMTIgMTMuNVpNOC4yMiA2LjY2bC0uMS0uMDZhLjc1Ljc1IDAgMCAwLS45MiAxLjE2bC4wOC4wNyAxLjI2IDFBMS4yNSAxLjI1IDAgMSAwIDEwLjI1IDEwYS43NS43NSAwIDAgMCAuNTUtMS4yNmwtLjA4LS4wOC0yLjUtMi0uMS0uMDYuMS4wNlptOC42Mi4xMmEuNzUuNzUgMCAwIDAtLjk3LS4xOGwtLjA5LjA2LTIuNSAyLS4wOC4wOGEuNzUuNzUgMCAwIDAgLjQ0IDEuMjVoLjExYTEuMjUgMS4yNSAwIDEgMCAxLjgzLTEuMWwtLjEyLS4wNSAxLjI2LTEgLjA4LS4wOGEuNzUuNzUgMCAwIDAgLjA0LS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppQW5ncnkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlBbmdyeTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wm0wIDEwYzEuNjMgMCAzLjE2LjY1IDQuMjggMS44YS43NS43NSAwIDEgMS0xLjA3IDEuMDQgNC40OCA0LjQ4IDAgMCAwLTYuNDMgMCAuNzUuNzUgMCAxIDEtMS4wNy0xLjA0QTUuOTggNS45OCAwIDAgMSAxMiAxMy41Wk03LjE2IDYuNzhjLjI0LS4zLjY1LS4zNi45Ny0uMThsLjA5LjA2IDIuNSAyYS43NS43NSAwIDAgMS0uNDcgMS4zNCAxLjI1IDEuMjUgMCAxIDEtMS43MS0xLjE2bC0xLjI2LTFhLjc1Ljc1IDAgMCAxLS4xMi0xLjA2Wm02LjEyIDEuODggMi41LTJhLjc1Ljc1IDAgMCAxIDEuMDIgMS4xbC0uMDguMDctMS4yNiAxYTEuMjUgMS4yNSAwIDEgMS0xLjcgMS4zVjEwYS43NS43NSAwIDAgMS0uNTUtMS4yNmwuMDctLjA4IDIuNS0yLTIuNSAyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlFZGl0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlFZGl0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMCAxIDUuMiAzIDIuODYgMi44NiAwIDAgMC0yLjEuODRsLS43My43M2EuNzUuNzUgMCAxIDAtMS4wNSAxLjA1bC0yLjU1IDIuNTZjLS4yNC0uMTQtLjQ1LS4zMS0uNjMtLjUxYS41LjUgMCAxIDAtLjc1LjY2Yy4yLjIyLjQyLjQyLjY3LjU4LS4zLjM2LS41MS43OS0uNjMgMS4yNWwtLjI4IDEuMTJBNiA2IDAgMCAxIDggMlpNNi4yNSA3Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLjczIDMuNjMgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUVkaXQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlFZGl0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi4yNSA3Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLS4xMSAxLjkyYS41LjUgMCAxIDAtLjc1LjY2Yy4yLjIyLjQyLjQyLjY3LjU4bC4yMS0uMjQuNS0uNWMtLjI0LS4xMy0uNDUtLjMtLjYzLS41Wk0zIDhhNSA1IDAgMCAwIDIuNCA0LjI3bC0uMjUgMS4wMUE2IDYgMCAxIDEgMTMuMiA1Yy0uMzYgMC0uNzMuMDUtMS4wNy4xOEE1IDUgMCAwIDAgMyA4Wm02Ljc1LTEuNzVjLjI2IDAgLjQ4LjEzLjYyLjMyTDkuMzIgNy42MmEuNzUuNzUgMCAwIDEgLjQzLTEuMzdabS0yLjc3IDUuMTMgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUVkaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUVkaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgMTBhOCA4IDAgMCAwIDcgNy45NGMuMDItLjEuMDMtLjIuMDYtLjI5bC4zNy0xLjVjLjEtLjQxLjMtLjguNTYtMS4xNWE1IDUgMCAwIDEtMy44OC0xLjg2LjUuNSAwIDEgMSAuNzgtLjYzIDQgNCAwIDAgMCA0LjIgMS4zNGw0LjAxLTRhMi44NyAyLjg3IDAgMCAxIDIuODUtLjczQTggOCAwIDAgMCAyIDEwWm05LjUtMS41YTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptLTUgMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBabTQuNDggNi44OCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppRWRpdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUVkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDAgMCA3IDcuOTRjLjAyLS4xLjAzLS4yLjA2LS4yOWwuMTctLjdhNyA3IDAgMSAxIDcuNy03Ljk0Yy4zNC0uMDMuNjkuMDEgMS4wMi4xQTggOCAwIDAgMCAyIDEwWm04LjI3IDQuNjcuODItLjgyYTQgNCAwIDAgMS00LjItMS4zNC41LjUgMCAxIDAtLjc4LjYzQTUgNSAwIDAgMCAxMCAxNWMuMDgtLjEyLjE4LS4yMy4yOC0uMzNaTTEzLjUgOC41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLTUgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTIuNDggNi44OCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppRWRpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppRWRpdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDAgMSA5Ljk3IDkuMjUgMy4yOSAzLjI5IDAgMCAwLTMuNTguNzFsLTIuNjMgMi42NGEuNzUuNzUgMCAwIDAtLjIzLjE5bC0uMTYuMi0uMzkuMzhhNC40OSA0LjQ5IDAgMCAxLTYuNTItLjU5Ljc1Ljc1IDAgMCAwLTEuMTguOTNBNiA2IDAgMCAwIDEyLjM3IDE4Yy0uNC40NS0uNyAxLS44NSAxLjU5bC0uNDYgMS44M2MtLjA0LjE4LS4wNi4zNi0uMDYuNTRBMTAgMTAgMCAwIDEgMTIgMlpNOSA4Ljc1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjVabTYgMGExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm00LjEgMy45Mi01LjkgNS45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ3IDEuODNjLS4yLjguNTMgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppRWRpdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUVkaXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMCAxIDkuOTcgOS4yNSAzLjMgMy4zIDAgMCAwLTEuNTMtLjI0IDguNSA4LjUgMCAxIDAtOS4xNCA5LjQ2bC0uMjQuOTRjLS4wNC4xOC0uMDYuMzYtLjA2LjU0QTEwIDEwIDAgMCAxIDEyIDJabTAgMTQuNWMxLjEyIDAgMi4xNy0uNDEgMi45OC0xLjEzbC0yLjQ5IDIuNS0uMTIuMTJhNiA2IDAgMCAxLTUuMDktMi4yOC43NS43NSAwIDEgMSAxLjE4LS45M0E0LjUgNC41IDAgMCAwIDEyIDE2LjVaTTkgOC43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptNC4xIDMuOTItNS45IDUuOWMtLjM1LjM1LS42Ljc4LS43IDEuMjVsLS40NyAxLjgzYy0uMi44LjUzIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w1LjktNS45YTIuMjkgMi4yOSAwIDAgMC0zLjIzLTMuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUVkaXQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUVkaXQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgMTRhMTIgMTIgMCAwIDEgMjMuOTgtLjc1IDMuMjkgMy4yOSAwIDAgMC0zLjU5LjcxbC0zLjA0IDMuMDVhLjc1Ljc1IDAgMCAwLS43Mi4zMiAyLjIyIDIuMjIgMCAwIDEtLjI1LjNBNS45MiA1LjkyIDAgMCAxIDE0IDE5LjVhNS45MiA1LjkyIDAgMCAxLTQuNjItMi4xNmwtLjAxLS4wMWEuNzUuNzUgMCAwIDAtMS4yNC44NGwuMDEuMDJhMy4wNiAzLjA2IDAgMCAwIC4xLjEzbC4yOC4zM2E3LjQyIDcuNDIgMCAwIDAgNi45OCAyLjIxbC0xLjAxIDFjLS40Ny40OC0uOCAxLjA3LS45NyAxLjcybC0uNDYgMS44M2MtLjA0LjE4LS4wNi4zNy0uMDYuNTVBMTIgMTIgMCAwIDEgMiAxNFptMTUuNS0xYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0xMiAxMS41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWm0xMS4xIDMuMTctNy45IDcuOWMtLjM1LjM1LS42Ljc4LS43IDEuMjVsLS40NyAxLjgzYy0uMi44LjUzIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w3LjktNy45YTIuMjkgMi4yOSAwIDAgMC0zLjIzLTMuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUVkaXQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlFZGl0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTcuNSAxM2ExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMTIgMTEuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptLTMuNjcgNS42M2EuNzUuNzUgMCAwIDEgMS4wNC4yIDIuMjUgMi4yNSAwIDAgMCAuMjUuM0E1LjkyIDUuOTIgMCAwIDAgMTQgMTkuNWE1LjkyIDUuOTIgMCAwIDAgNC42Mi0yLjE2bC4wMS0uMDFhLjc1Ljc1IDAgMCAxIC43Mi0uMzJsLTMuODUgMy44NWMtLjQ3LjA5LS45Ni4xNC0xLjUuMTRhNy40MiA3LjQyIDAgMCAxLTUuODYtMi44MXYtLjAxaC0uMDFhLjc1Ljc1IDAgMCAxIC4yLTEuMDVaTTE0IDMuNWExMC41IDEwLjUgMCAwIDEgMTAuNDUgOS41MSAzLjMgMy4zIDAgMCAxIDEuNTMuMjRBMTIgMTIgMCAxIDAgMTMgMjUuOTVjMC0uMTcuMDItLjM2LjA2LS41NGwuMjQtLjkzQTEwLjUgMTAuNSAwIDAgMSAxNCAzLjVabTkuMSAxMS4xNy03LjkgNy45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ3IDEuODNjLS4yLjguNTMgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDcuOS03LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppRWRpdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppRWRpdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNCAyNGEyMCAyMCAwIDAgMSAzOS45My0xLjY5IDUuOTggNS45OCAwIDAgMC02LjE3IDEuNDhMMzIuNjIgMjlhMS4yNCAxLjI0IDAgMCAwLS45My42QTkuMjEgOS4yMSAwIDAgMSAyNCAzMy41YTkuMjIgOS4yMiAwIDAgMS03LjY5LTMuOSAxLjI1IDEuMjUgMCAxIDAtMi4xMyAxLjNBMTEuNzIgMTEuNzIgMCAwIDAgMjQgMzZjLjYyIDAgMS4yNC0uMDMgMS44NS0uMTJsLTEuNiAxLjYzYTUgNSAwIDAgMC0xLjI4IDIuMjVMMjIuMTMgNDNjLS4wOC4zLS4xMi42LS4xMy45QTIwIDIwIDAgMCAxIDQgMjRabTEzLjUtMmEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMzMgMTkuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFptMTEuODMgNS42N2EzLjk4IDMuOTggMCAwIDAtNS42NS4wMmwtMTMuNSAxMy43MmEzIDMgMCAwIDAtLjc4IDEuMzVsLS44MyAzLjI0YTIgMiAwIDAgMCAyLjQzIDIuNDRsMy4yNC0uODRhMyAzIDAgMCAwIDEuMzUtLjc3TDQ0LjggMzAuODJhMy45OCAzLjk4IDAgMCAwIC4wMi01LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlFZGl0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppRWRpdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTE3LjUgMjJhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVaTTMzIDE5LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBaTTE4LjQ1IDM0LjY4YzEuNzEuOSAzLjYyIDEuMzQgNS41NSAxLjMyLjYyIDAgMS4yNC0uMDMgMS44NS0uMTJMMzIuNjIgMjlhMS4yNCAxLjI0IDAgMCAwLS45My42QTkuMjEgOS4yMSAwIDAgMSAyNCAzMy41YTkuMjIgOS4yMiAwIDAgMS03LjY5LTMuOSAxLjI1IDEuMjUgMCAxIDAtMi4xMyAxLjNjMS4xIDEuNiAyLjU2IDIuOSA0LjI3IDMuNzhaTTYuNSAyNGExNy41IDE3LjUgMCAwIDAgMTYuMDMgMTcuNDRsLS40IDEuNTZjLS4wOC4zLS4xMi42LS4xMy45YTIwIDIwIDAgMSAxIDIxLjkzLTIxLjU5IDYgNiAwIDAgMC0yLjU0LS4yOEExNy41IDE3LjUgMCAwIDAgNi41IDI0Wm0zOC4zMyAxLjE3YTMuOTggMy45OCAwIDAgMC01LjY1LjAybC0xMy41IDEzLjcyYTMgMyAwIDAgMC0uNzggMS4zNWwtLjgzIDMuMjRhMiAyIDAgMCAwIDIuNDMgMi40NGwzLjI0LS44NGEzIDMgMCAwIDAgMS4zNS0uNzdMNDQuOCAzMC44MmEzLjk4IDMuOTggMCAwIDAgLjAyLTUuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhhbmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgMS41YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMS0xIDB2LTVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAxLTEgMHYtNGEuNS41IDAgMCAwLTEgMHY2LjNjMCAuNTQuMTMgMS4wNy4zNyAxLjU2TDIgMTEuNjJBMi41IDIuNSAwIDAgMCA0LjI0IDEzaC4yNmMxLjM5IDAgMi40NC0xLjE0IDIuOTktMi4xNy40Mi0uOCAxLjItMS43MyAyLjctMi4zN2EuNS41IDAgMCAwIC4yMy0uNzRjLS4zLS40NS0uNjYtLjczLTEuMDQtLjlBMi4wOCAyLjA4IDAgMCAwIDggNi43NlYyLjVhLjUuNSAwIDAgMC0xIDB2NGEuNS41IDAgMCAxLTEgMHYtNVpNMTEgMTZhNSA1IDAgMCAxLTQuNDItMi42NiA1Ljc0IDUuNzQgMCAwIDAgMS44LTIuMDVjLjMxLS42LjkzLTEuMzYgMi4yMS0xLjkxYTEuNSAxLjUgMCAwIDAgLjY2LTIuMjFjLS4zMi0uNDctLjctLjg0LTEuMTQtMS4xQTUgNSAwIDEgMSAxMSAxNlptMS43NS00LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tLjAzLjU1YS41LjUgMCAwIDAtLjY3LjIzYy0uMTIuMjQtLjM3LjQzLS43LjU1LS4zMi4xMy0uNjUuMTctLjg1LjE3YS41LjUgMCAwIDAgMCAxYy4zIDAgLjc3LS4wNiAxLjIyLS4yMy40NS0uMTguOTUtLjUgMS4yMy0xLjA1YS41LjUgMCAwIDAtLjIzLS42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjA5IDJjLjItLjU4Ljc2LTEgMS40MS0xaDJjLjY1IDAgMS4yLjQyIDEuNDEgMUg4YTIgMiAwIDAgMSAyIDJ2Mi4zMWMuMTctLjAzLjM2LS4wNi41Ni0uMDYuMzYgMCAuNzcuMDggMS4xMy4zNS4zNy4yNy42NS42OS44IDEuMjhhLjUuNSAwIDAgMS0uMy41OCA4LjA0IDguMDQgMCAwIDAtMy42MSAzLjAzQTMuMSAzLjEgMCAwIDEgNi4wNiAxM0g0LjI0QTIuNSAyLjUgMCAwIDEgMiAxMS42MmwtLjYzLTEuMjZBMy41IDMuNSAwIDAgMSAxIDguNzlWNGMwLTEuMS45LTIgMi0yaC4wOVpNNSAyaC0uNWEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMSAxLTEgMFYzYTEgMSAwIDAgMC0xIDF2NC44YzAgLjM4LjA5Ljc2LjI2IDEuMTFsLjYzIDEuMjZjLjI2LjUuNzguODMgMS4zNS44M2gxLjgyYy42NCAwIDEuMjctLjQyIDEuNjgtMS4wNWE5LjAxIDkuMDEgMCAwIDEgMy42NC0zLjIxLjkxLjkxIDAgMCAwLS4yOC0uMzQuOS45IDAgMCAwLS41NC0uMTUgMiAyIDAgMCAwLS44My4yQS41LjUgMCAwIDEgOSA3VjRhMSAxIDAgMCAwLTEtMXYzLjVhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMC0uNS0uNUg2djQuNWEuNS41IDAgMCAxLTEgMFYyWm02IDE0YTUgNSAwIDAgMS00LjA4LTIuMWMuMzUtLjEuNjctLjIzLjk2LS40YTQgNCAwIDEgMCA1LjYxLTUuNjNjMC0uMDgtLjAyLS4xNS0uMDQtLjIzYTMuNSAzLjUgMCAwIDAtLjU5LTEuMjhBNSA1IDAgMCAxIDExIDE2Wm0yLjUtNS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tLjU1IDEuOTdhLjUuNSAwIDEgMC0uOS0uNDRjLS4xMi4yNC0uMzcuNDMtLjcuNTUtLjMyLjEzLS42NS4xNy0uODUuMTdhLjUuNSAwIDAgMCAwIDFjLjMgMCAuNzctLjA2IDEuMjItLjIzLjQ1LS4xOC45NS0uNSAxLjIzLTEuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhhbmQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAxYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDAgMSAwdi00YS41LjUgMCAwIDEgMSAwdjQuMjVsLjMxLS4wNmMuMzItLjA0LjctLjAyIDEuMDcuMTQuMzguMTYuNzQuNDQgMS4wNC45YS41LjUgMCAwIDEtLjIyLjczIDUuMjYgNS4yNiAwIDAgMC0yLjcxIDIuMzdDNi45NCAxMS44NiA1Ljg5IDEzIDQuNSAxM2gtLjI2QTIuNSAyLjUgMCAwIDEgMiAxMS42MmwtLjYzLTEuMjZBMy41IDMuNSAwIDAgMSAxIDguNzlWMi41YS41LjUgMCAwIDEgMSAwdjRhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAwIDEgMHYtNWMwLS4yOC4yMi0uNS41LS41Wm0yLjg3IDEwLjNjLS4yOC41NC0uNzQgMS4xOC0xLjM1IDEuN2E1LjUgNS41IDAgMSAwIDQuMjEtNS44NWwuMDIuMDJhMS41IDEuNSAwIDAgMS0uNjYgMi4yIDQuMjcgNC4yNyAwIDAgMC0yLjIyIDEuOTJabTIuMzggMS4yYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptNC4yNS0uNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLTQuMDUgMi41M2MuMDguMTcuNTUuNzIgMS41NS43MnMxLjQ3LS41NSAxLjU1LS43MmEuNS41IDAgMSAxIC45LjQ0Yy0uMjUuNS0xLjA1IDEuMjgtMi40NSAxLjI4LTEuNCAwLTIuMi0uNzgtMi40NS0xLjI4YS41LjUgMCAxIDEgLjktLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIYW5kMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGFuZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAxYy0uNjUgMC0xLjIuNDItMS40MSAxSDNhMiAyIDAgMCAwLTIgMnY0LjhjMCAuNTQuMTMgMS4wNy4zNyAxLjU2TDIgMTEuNjJBMi41IDIuNSAwIDAgMCA0LjI0IDEzaDEuODJhMy4xIDMuMSAwIDAgMCAyLjUyLTEuNSA4LjA0IDguMDQgMCAwIDEgMy42Mi0zLjA0LjUuNSAwIDAgMCAuMjktLjU4IDIuMTcgMi4xNyAwIDAgMC0uOC0xLjI4IDEuOSAxLjkgMCAwIDAtMS4xMy0uMzVjLS4yIDAtLjQuMDMtLjU2LjA2VjRhMiAyIDAgMCAwLTItMmgtLjA5Yy0uMi0uNTgtLjc2LTEtMS40MS0xaC0yWm0wIDFINXY0LjVhLjUuNSAwIDAgMCAxIDBWMmguNWMuMjggMCAuNS4yMi41LjV2NGEuNS41IDAgMSAwIDEgMFYzYTEgMSAwIDAgMSAxIDF2M2EuNS41IDAgMCAwIC43Mi40NWguMDFhMS41MSAxLjUxIDAgMCAxIC4yNC0uMSAyIDIgMCAwIDEgLjYtLjFjLjIgMCAuMzkuMDUuNTMuMTUuMS4wNy4xOS4xNy4yOC4zNC0xLjg3LjktMyAyLjIyLTMuNjQgMy4yMS0uNC42My0xLjA0IDEuMDUtMS42OCAxLjA1SDQuMjRhMS41IDEuNSAwIDAgMS0xLjM1LS44M2wtLjYzLTEuMjZBMi41IDIuNSAwIDAgMSAyIDguNzlWNGExIDEgMCAwIDEgMS0xdjMuNWEuNS41IDAgMSAwIDEgMHYtNGMwLS4yOC4yMi0uNS41LS41Wm04Ljc2IDUuMDVhNS41IDUuNSAwIDEgMS02LjEgNi43OGMuMzMtLjExLjY0LS4yNy45My0uNDVhNC41IDQuNSAwIDEgMCA1LjQtNS4yN2MuMDItLjE2IDAtLjMyLS4wMy0uNDctLjA2LS4yLS4xMi0uNC0uMi0uNTlabS0yLjUxIDUuNDVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm00LjI1LS43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0tNC4wNSAyLjUzYS41LjUgMCAxIDAtLjkuNDRjLjI1LjUgMS4wNSAxLjI4IDIuNDUgMS4yOCAxLjQgMCAyLjItLjc4IDIuNDUtMS4yOGEuNS41IDAgMSAwLS45LS40NGMtLjA4LjE3LS41NS43Mi0xLjU1Ljcycy0xLjQ3LS41NS0xLjU1LS43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGFuZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy41IDcuNVYxLjc1YS43NS43NSAwIDAgMSAxLjUgMFY3LjVhLjUuNSAwIDEgMCAxIDB2LTVhLjc1Ljc1IDAgMCAxIDEuNSAwdjUuODFBNC40IDQuNCAwIDAgMSAxMyA4Yy41IDAgLjkzLjEyIDEuMjQuMjguMTYuMDguMy4xNy40Mi4yOGwuMTkuMjFjLjA1LjA3LjE1LjI0LjE1LjQ4IDAgLjI2LS4xMy41LS4zNS42NGwtMS45IDEuMTktMS42NyAxLjg5LTEuMzcgMS45QTIuNzUgMi43NSAwIDAgMSA3LjQ4IDE2SDYuMzRjLS45MyAwLTEuODItLjQ3LTIuMy0xLjMxYTIwLjcgMjAuNyAwIDAgMS0uOTgtMS45IDUuNTggNS41OCAwIDAgMS0uNTYtMi4wNHYtN2EuNzUuNzUgMCAwIDEgMS41IDBWOGEuNS41IDAgMCAwIDEgMFYyLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjVhLjUuNSAwIDEgMCAxIDBaTTE1IDIyYTcgNyAwIDAgMS02LjczLTUuMDhjLjktLjIgMS43LS43MSAyLjI1LTEuNDdsMS4zNS0xLjg2IDEuNTMtMS43NCAxLjc4LTEuMTJjLjUtLjMyLjgyLS44OC44Mi0xLjQ4YTEuODYgMS44NiAwIDAgMC0uNDctMS4yM0E3IDcgMCAwIDEgMTUgMjJabTMtOGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS01Ljg2IDIuNzFjLS4zLjI5LS4zMS43Ni0uMDIgMS4wNmEzLjk5IDMuOTkgMCAwIDAgNS43NiAwIC43NS43NSAwIDEgMC0xLjA4LTEuMDQgMi41IDIuNSAwIDAgMS0zLjYgMCAuNzUuNzUgMCAwIDAtMS4wNi0uMDJaTTE0IDE0YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjI0IDEuODJjLjE1LS4wNC4zMy0uMDcuNTEtLjA3IDEuMSAwIDEuNzUuOSAxLjc1IDEuNzV2My42N2MuMjktLjEuNjMtLjE3IDEtLjE3QzEzLjkgNyAxNSA4LjAzIDE1IDkuNWMwIC4yNC0uMTIuNDctLjMxLjYxbC0xLjcyIDEuMjMtLjk2LjgzYy0uNjMuNTYtMS4yIDEuMTktMS43IDEuODdsLS42LjgzQTIuNzUgMi43NSAwIDAgMSA3LjQ4IDE2SDUuODRjLS45MyAwLTEuODItLjQ3LTIuMy0xLjMxYTIwLjcgMjAuNyAwIDAgMS0uOTgtMS45QTUuNTggNS41OCAwIDAgMSAyIDEwLjc1di02YTEuNzQgMS43NCAwIDAgMSAyLjA3LTEuNzJjLjE5LS42OS43OS0xLjI4IDEuNjgtMS4yOC4xOCAwIC4zNS4wMy41MS4wNy4zLS40Ny44LS44MiAxLjQ5LS44Mi42OCAwIDEuMi4zNSAxLjQ5LjgyWm0tMS42Ny43NWEuMjcuMjcgMCAwIDAtLjA3LjE4djQuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuOGEuMjIuMjIgMCAwIDAtLjA2LS4xMi4yNS4yNSAwIDAgMC0uMTktLjA4Yy0uMSAwLS4xNS4wMy0uMTguMDdhLjI3LjI3IDAgMCAwLS4wNy4xOHY0LjI1YS43NS43NSAwIDAgMS0xLjUgMHYtM2EuMjcuMjcgMCAwIDAtLjA3LS4xOGMtLjAzLS4wNC0uMDktLjA3LS4xOC0uMDctLjEgMC0uMTUuMDMtLjE4LjA3YS4yNy4yNyAwIDAgMC0uMDcuMTh2NmMwIC4yOC4xNS43OS40MyAxLjQzLjI3LjYyLjYyIDEuMjYuOSAxLjc2LjIuMzQuNTguNTYgMS4wMS41NmgxLjY0Yy40IDAgLjc4LS4yIDEuMDEtLjUybC42LS44MmMuNTYtLjc4IDEuMjEtMS40OSAxLjk0LTIuMTJsLjk4LS44NmEuNzguNzggMCAwIDEgLjA2LS4wNGwxLjM4LS45OWMtLjEyLS40LS40OC0uNjUtLjk1LS42NS0uNjMgMC0xLjA5LjQtMS4yNC41M2wtLjAzLjAzQS43NS43NSAwIDAgMSAxMCA4LjVWMy41YS4yOC4yOCAwIDAgMC0uMDctLjE4Yy0uMDQtLjA0LS4wOS0uMDctLjE4LS4wNy0uMSAwLS4xNS4wMy0uMTguMDdhLjI3LjI3IDAgMCAwLS4wNy4xOHYzLjc1YS43NS43NSAwIDAgMS0xLjUgMHYtNC41YS4yNy4yNyAwIDAgMC0uMDctLjE4Yy0uMDMtLjA0LS4wOS0uMDctLjE4LS4wNy0uMSAwLS4xNS4wMy0uMTguMDdaTTEzIDE1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNCAwYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTIgN2E3IDcgMCAwIDEtNi43My01LjA4Yy41LS4xMS45Ny0uMzIgMS4zOS0uNjJBNS41IDUuNSAwIDEgMCAxNiA5LjZWOS41YzAtLjUzLS4xLTEuMDMtLjMtMS40N0E3IDcgMCAwIDEgMTUgMjJabS0xLjgtNS4yN2EuNzUuNzUgMCAwIDAtMS4wOCAxLjA0IDQgNCAwIDAgMCA1Ljc2IDAgLjc1Ljc1IDAgMSAwLTEuMDgtMS4wNCAyLjUgMi41IDAgMCAxLTMuNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIYW5kMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIYW5kMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk04LjUgOC41VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwVjguNWEuNS41IDAgMCAwIDEgMHYtNWEuNzUuNzUgMCAwIDEgMS41IDB2NS44MUE0LjQgNC40IDAgMCAxIDE0IDljLjUgMCAuOTMuMTIgMS4yNC4yOC4xNi4wOC4zLjE3LjQyLjI4bC4xOS4yMWMuMDUuMDcuMTUuMjQuMTUuNDggMCAuMjYtLjEzLjUtLjM1LjY0bC0xLjkgMS4xOS0xLjY3IDEuODktMS4zNyAxLjlBMi43NSAyLjc1IDAgMCAxIDguNDggMTdINy4zNGMtLjkzIDAtMS44Mi0uNDctMi4zLTEuMzFhMjAuNyAyMC43IDAgMCAxLS45OC0xLjkgNS41OCA1LjU4IDAgMCAxLS41Ni0yLjA0di03YS43NS43NSAwIDAgMSAxLjUgMFY5YS41LjUgMCAwIDAgMSAwVjMuNWEuNzUuNzUgMCAwIDEgMS41IDB2NWEuNS41IDAgMSAwIDEgMFptOSAxNy41YTguNSA4LjUgMCAwIDEtOC40OS04LjA0YzEtLjE0IDEuOS0uNjggMi41LTEuNWwxLjM2LTEuODcgMS41My0xLjc0IDEuNzgtMS4xMmMuNS0uMzIuODItLjg4LjgyLTEuNDhhMS44NiAxLjg2IDAgMCAwLS40NC0xLjJBOC41IDguNSAwIDEgMSAxNy41IDI2Wm0zLjYzLTEwYTEuMTIgMS4xMiAwIDEgMC0yLjI1IDAgMS4xMiAxLjEyIDAgMCAwIDIuMjUgMFptLTcuMzYgMy42N2EuNzUuNzUgMCAwIDAtLjA5IDEuMDYgNSA1IDAgMCAwIDcuNjQgMCAuNzUuNzUgMCAxIDAtMS4xNC0uOTcgMy41IDMuNSAwIDAgMS01LjM1IDAgLjc1Ljc1IDAgMCAwLTEuMDYtLjFaTTE2LjEzIDE2YTEuMTIgMS4xMiAwIDEgMC0yLjI1IDAgMS4xMiAxLjEyIDAgMCAwIDIuMjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC43NSAyLjc1Yy0uMTggMC0uMzYuMDMtLjUxLjA3QTEuNyAxLjcgMCAwIDAgOC43NSAyYy0uNjggMC0xLjIuMzUtMS40OS44MmExLjgyIDEuODIgMCAwIDAtLjUxLS4wN2MtLjkgMC0xLjUuNi0xLjY4IDEuMjhBMS43NCAxLjc0IDAgMCAwIDMgNS43NXY2YzAgLjYyLjI3IDEuMzkuNTYgMi4wNC4zLjY4LjY3IDEuMzcuOTggMS45QTIuNjQgMi42NCAwIDAgMCA2Ljg0IDE3aDEuNjRjLjg4IDAgMS43LS40MiAyLjIzLTEuMTNsLjYtLjgzYy41LS42OCAxLjA3LTEuMzEgMS43LTEuODdsLjk2LS44MyAxLjcyLTEuMjNjLjItLjE0LjMxLS4zNy4zMS0uNjFDMTYgOS4wMyAxNC45IDggMTMuNSA4Yy0uMzcgMC0uNzEuMDctMSAuMTdWNC41YzAtLjg1LS42NS0xLjc1LTEuNzUtMS43NVptLTIuMjUgMWMwLS4wNy4wMy0uMTMuMDctLjE4LjAzLS4wNC4wOS0uMDcuMTgtLjA3LjEgMCAuMTUuMDMuMTguMDcuMDQuMDUuMDcuMTEuMDcuMTh2NC41YS43NS43NSAwIDAgMCAxLjUgMFY0LjVjMC0uMDcuMDMtLjEzLjA3LS4xOC4wMy0uMDQuMDgtLjA3LjE4LS4wNy4xIDAgLjE0LjAzLjE4LjA3LjA0LjA0LjA3LjExLjA3LjE4djQuOTlhLjc1Ljc1IDAgMCAwIDEuMjMuNTdsLjAzLS4wM2MuMTUtLjEzLjYtLjUzIDEuMjQtLjUzLjQ3IDAgLjgzLjI0Ljk1LjY1bC0xLjM4Ljk5YS43OC43OCAwIDAgMC0uMDYuMDRsLS45OC44NmMtLjczLjYzLTEuMzggMS4zNC0xLjk0IDIuMTJsLS42LjgyYy0uMjMuMzMtLjYuNTItMS4wMS41Mkg2Ljg0Yy0uNDMgMC0uOC0uMjItMS0uNTYtLjMtLjUtLjY0LTEuMTQtLjktMS43NmE0LjMzIDQuMzMgMCAwIDEtLjQ0LTEuNDN2LTZjMC0uMDcuMDMtLjEzLjA3LS4xOC4wMy0uMDQuMDktLjA3LjE4LS4wNy4xIDAgLjE1LjAzLjE4LjA3LjA0LjA1LjA3LjExLjA3LjE4djNhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNWMwLS4wNy4wMy0uMTMuMDctLjE4LjAzLS4wNC4wOC0uMDcuMTgtLjA3LjEgMCAuMTUuMDMuMi4wOC4wMy4wNC4wNS4wOC4wNS4xMnYzLjhhLjc1Ljc1IDAgMCAwIDEuNSAwdi00LjVabTkgMjIuMjVhOC41IDguNSAwIDAgMS04LjQ5LTguMDQgMy43NSAzLjc1IDAgMCAwIDEuNS0uNTVsLS4wMS4wOWE3IDcgMCAxIDAgNi41LTYuOTh2LS4wMmMwLS41My0uMS0xLjAzLS4zLTEuNDZBOC41IDguNSAwIDEgMSAxNy41IDI2Wm0tMS4zOC0xMGExLjEyIDEuMTIgMCAxIDEtMi4yNCAwIDEuMTIgMS4xMiAwIDAgMSAyLjI0IDBaTTIwIDE3LjEyYTEuMTIgMS4xMiAwIDEgMCAwLTIuMjQgMS4xMiAxLjEyIDAgMCAwIDAgMi4yNFptLTUuMTcgMi42NGEuNzUuNzUgMCAwIDAtMS4xNS45NyA1IDUgMCAwIDAgNy42NCAwIC43NS43NSAwIDEgMC0xLjE0LS45NyAzLjUgMy41IDAgMCAxLTUuMzUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGFuZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNyAzYTEgMSAwIDAgMSAxIDF2NS41YS41LjUgMCAwIDAgMSAwVjNhMSAxIDAgMCAxIDIgMHY2LjVhLjUuNSAwIDAgMCAxIDBWNGExIDEgMCAxIDEgMiAwdjcuNTVhNC4zMSA0LjMxIDAgMCAxIDIuNDgtLjVjLjUuMDguODYuMyAxLjEuNTZhMS42OSAxLjY5IDAgMCAxIC4zNS41M2wuMDEuMDJ2LjAyYTEgMSAwIDAgMS0uNDQgMS4xOWgtLjAybC0uMDYuMDRhOS42OCA5LjY4IDAgMCAwLTEuMTguODJjLS43Ni41OC0xLjc0IDEuNDMtMi42NCAyLjUtLjM3LjQ1LS44Ljg1LTEuMjcgMS4yQTQuNDYgNC40NiAwIDAgMSA5LjUzIDE5SDguMjZhNCA0IDAgMCAxLTMuNDMtMS45NGwtMS4xMi0xLjg3QTUgNSAwIDAgMSAzIDEyLjYyVjVhMSAxIDAgMCAxIDIgMHY1LjVhLjUuNSAwIDAgMCAxIDBWNGExIDEgMCAwIDEgMS0xWm00IDE3LjV2LS4yNmE3LjgzIDcuODMgMCAwIDAgMy43NS0yLjU0IDE0Ljg0IDE0Ljg0IDAgMCAxIDMuNS0zLjAzIDIuNSAyLjUgMCAwIDAgLjgzLTMuNTZBOS41IDkuNSAwIDEgMSAxMSAyMC41Wm01LjM3IDIuMDVhMSAxIDAgMCAwLS4xNSAxLjQgNS41IDUuNSAwIDAgMCA4LjU2IDAgMSAxIDAgMCAwLTEuNTYtMS4yNSAzLjUgMy41IDAgMCAxLTUuNDQgMCAxIDEgMCAwIDAtMS40LS4xNVpNMTkuMjUgMTlhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFpNMjMgMjAuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGFuZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk04LjM5IDMuMTZhMi41IDIuNSAwIDAgMSA0LjIyIDBBMi41IDIuNSAwIDAgMSAxNiA1LjV2NC45Yy45LS4zIDEuNjktLjMgMi40LS4wMmEzLjMyIDMuMzIgMCAwIDEgMS44IDEuOTRjLjQ2IDEuMTMtLjM0IDIuMDgtMS4xIDIuNGExMi45MyAxMi45MyAwIDAgMC01IDMuODFBNS45NSA1Ljk1IDAgMCAxIDkuNTQgMjFIOC4yNmE1IDUgMCAwIDEtNC4yOC0yLjQzTDIuODYgMTYuN0E2IDYgMCAwIDEgMiAxMy42MlY2LjVhMi41IDIuNSAwIDAgMSAzLjM5LTIuMzQgMi41IDIuNSAwIDAgMSAzLTFaTTE0IDUuNWEuNS41IDAgMCAwLTEgMFYxMGExIDEgMCAxIDEtMiAwVjQuNWEuNS41IDAgMCAwLTEgMFYxMGExIDEgMCAxIDEtMiAwVjUuNWEuNS41IDAgMCAwLTEgMFYxMWExIDEgMCAxIDEtMiAwVjYuNWEuNS41IDAgMCAwLTEgMHY3LjEyYTQgNCAwIDAgMCAuNTcgMi4wNWwxLjEyIDEuODdBMyAzIDAgMCAwIDguMjYgMTloMS4yN2MxLjEgMCAyLjE5LS42NiAzLTEuN2ExNC45MiAxNC45MiAwIDAgMSA1Ljc1LTQuNGMtLjE2LS4zMy0uMzYtLjU2LS42MS0uNjYtLjI2LS4xLS44OC0uMTgtMi4xNC42QTEgMSAwIDAgMSAxNCAxMlY1LjVabS0yLjgzIDE2Ljc5YTkuNSA5LjUgMCAxIDAgMTAuMDgtMTEuMjZjLjE1LjI3LjI3LjUzLjM1LjczLjIuNDguMjYuOTQuMjQgMS4zNmE3LjUgNy41IDAgMSAxLTguNzggOC4zNWMtLjU3LjM1LTEuMi42NC0xLjkuODJabTUuMi4yNmExIDEgMCAwIDEgMS40LjE1IDMuNSAzLjUgMCAwIDAgNS40NSAwIDEgMSAwIDAgMSAxLjU2IDEuMjYgNS41IDUuNSAwIDAgMS04LjU2IDAgMSAxIDAgMCAxIC4xNS0xLjRabTEuNjMtMi4zYTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaTTI0LjI1IDE5YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhhbmQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhhbmQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTE4LjUgMTguMjZhNS45IDUuOSAwIDAgMSAzLjY3LTEuMiAzLjk3IDMuOTcgMCAwIDEgMi40OCAxLjA3bC4wMi4wMnYuMDFhMS4yNSAxLjI1IDAgMCAxLS4zMiAxLjkzbC0uMDEuMDFhMy40OCAzLjQ4IDAgMCAwLS40LjI1Yy0uMjguMi0uNy41LTEuMi45NWExOS43IDE5LjcgMCAwIDAtMy44NCA0LjZsLS4xMS4yM0E2LjE2IDYuMTYgMCAwIDEgMTMuODIgMjloLTMuMDRhNS4yNSA1LjI1IDAgMCAxLTQuODItMy4xNkw0LjYgMjIuNzJjLS40LS45Mi0uNi0xLjktLjYtMi45VjcuMjVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNzVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjkuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTExYTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYxMWEuNzUuNzUgMCAwIDAgMS41IDB2LTkuNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2MTIuNVpNMzAgNDQuODdhMTUgMTUgMCAwIDEtMTQuOTctMTQuMTIgOC40MiA4LjQyIDAgMCAwIDUuNTUtMy44OGwuMDUtLjEuMDctLjEuMDctLjExYTE3LjkzIDE3LjkzIDAgMCAxIDMuMjgtMy44OWMuNDUtLjM4LjgxLS42NSAxLjAzLS44bC4wOC0uMDVhOC44OCA4Ljg4IDAgMCAwIC4yMi0uMTQgMy4yMyAzLjIzIDAgMCAwIC44My00Ljk0bC0uMDktLjEtLjA0LS4wNS0uMDctLjA3LS4yNC0uMjJjLS4yNC0uMjEtLjUtLjM5LS43Ny0uNTVsLS4wMy0uMDJBMTUgMTUgMCAxIDEgMzAgNDQuODdabTAtOC41Yy0yLjMgMC00LjMtMS4xNi01LjQ1LTIuOTNhMS4yNSAxLjI1IDAgMSAwLTIuMSAxLjM2QTguOTcgOC45NyAwIDAgMCAzMCAzOC44N2MzLjE1IDAgNS45NC0xLjYgNy41NS00LjA3YTEuMjUgMS4yNSAwIDEgMC0yLjEtMS4zNkE2LjQ3IDYuNDcgMCAwIDEgMzAgMzYuMzdabTYtOS41YTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFptLTEwIDJhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIYW5kNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGFuZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTExIDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjlhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi03LjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEwLjU3YzAgLjguMTYgMS41Ny40OCAyLjNsMS4zNiAzLjEzYTMuNzUgMy43NSAwIDAgMCAzLjQ0IDIuMjVoMy4wNGMxLjQyIDAgMi44LS44NiAzLjczLTIuMjEgMi42Ny0zLjkgNi4xNi02LjMxIDcuODUtNy4zM2EyLjIgMi4yIDAgMCAwLTEuMS0xYy0uNDUtLjE1LTEuNDUtLjItMy4yNiAxLjI2YTEuMjUgMS4yNSAwIDAgMS0yLjA0LS45N3YtOS41YS43NS43NSAwIDAgMC0xLjUgMHY3LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi05YS43NS43NSAwIDAgMC0xLjUgMHY5YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtNy41Wm0xMC41IDcuMjFhNC43IDQuNyAwIDAgMSAzLjYyLS4zNiA0LjkzIDQuOTMgMCAwIDEgMi43IDIuNThjLjU3IDEuMTYtLjA4IDIuMy0uOTEgMi44YTIzLjQ2IDIzLjQ2IDAgMCAwLTcuMyA2LjcyYy0xLjI2IDEuODUtMy4zMyAzLjMtNS44IDMuM2gtMy4wM2E2LjI1IDYuMjUgMCAwIDEtNS43My0zLjc2bC0xLjM2LTMuMTJhOC4yNSA4LjI1IDAgMCAxLS42OS0zLjNWOS4yNWEzLjI1IDMuMjUgMCAwIDEgNC4zOS0zLjA0IDMuMjUgMy4yNSAwIDAgMSA0LTEuNSAzLjI1IDMuMjUgMCAwIDEgNS43MiAwIDMuMjQgMy4yNCAwIDAgMSA0LjM5IDMuMDR2Ny4yMVpNMTUuMTIgMzEuOWExNSAxNSAwIDEgMCAxMy43NC0xNi44NmMuMzUuNDkuNi45NC43NiAxLjI2LjIuNC4zMi44MS4zOCAxLjJhMTIuNSAxMi41IDAgMSAxLTEyLjQ1IDEzLjYxIDguNCA4LjQgMCAwIDEtMi40My43OVptNy43IDEuM2ExLjI1IDEuMjUgMCAwIDEgMS43My4zN0E2LjQ3IDYuNDcgMCAwIDAgMzAgMzYuNWMyLjMgMCA0LjMtMS4xNiA1LjQ1LTIuOTNhMS4yNSAxLjI1IDAgMSAxIDIuMSAxLjM2QTguOTcgOC45NyAwIDAgMSAzMCAzOWE4Ljk3IDguOTcgMCAwIDEtNy41NS00LjA3IDEuMjUgMS4yNSAwIDAgMSAuMzctMS43M1pNMzQgMjlhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0tNi0yYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGludDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGludDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi44MyAyLjExYS41LjUgMCAwIDAgLjIuOTkgNS4xNCA1LjE0IDAgMCAxIDEuOTUgMCAuNS41IDAgMCAwIC4yLS45OSA2LjE1IDYuMTUgMCAwIDAtMi4zNSAwWm00LjUuOWEuNS41IDAgMCAwLS41NS44M2MuNTQuMzcgMS4wMS44NCAxLjM4IDEuMzhhLjUuNSAwIDAgMCAuODMtLjU1Yy0uNDQtLjY2LTEtMS4yMi0xLjY2LTEuNjZabS02LjEuODNhLjUuNSAwIDEgMC0uNTYtLjgzQzQgMy40NSAzLjQ1IDQuMDEgMyA0LjY3YS41LjUgMCAxIDAgLjgzLjU1Yy4zNy0uNTQuODQtMS4wMSAxLjM4LTEuMzhabTguNjYgMi45OWEuNS41IDAgMSAwLS45OS4yYy4xMy42Mi4xMyAxLjMyIDAgMS45NWEuNS41IDAgMCAwIC45OS4xOWMuMTUtLjc2LjE1LTEuNTggMC0yLjM0Wm0tMTAuOC4yYS41LjUgMCAwIDAtLjk4LS4yIDYuMTUgNi4xNSAwIDAgMCAwIDIuMzQuNS41IDAgMSAwIC45OS0uMiA1LjE0IDUuMTQgMCAwIDEgMC0xLjk1Wm05LjkgNC4zYS41LjUgMCAwIDAtLjgzLS41NSA1LjAzIDUuMDMgMCAwIDEtMS4zOCAxLjM4LjUuNSAwIDAgMCAuNTUuODNjLjY2LS40NCAxLjIyLTEgMS42Ni0xLjY2Wm0tOS4xNS0uNTVhLjUuNSAwIDEgMC0uODMuNTVjLjQ0LjY2IDEgMS4yMiAxLjY2IDEuNjZhLjUuNSAwIDEgMCAuNTUtLjgzIDUuMDMgNS4wMyAwIDAgMS0xLjM4LTEuMzhabTMuMTggMi4xMmEuNS41IDAgMCAwLS4xOS45OWMuNzYuMTUgMS41OC4xNSAyLjM0IDBhLjUuNSAwIDEgMC0uMi0uOTljLS42Mi4xMy0xLjMyLjEzLTEuOTUgMFpNMTIgOGE0IDQgMCAxIDEtOCAwIDQgNCAwIDAgMSA4IDBabS0xLjcgMS4xYS41LjUgMCAwIDAtLjcuMSAyIDIgMCAwIDEtMy4yIDAgLjUuNSAwIDAgMC0uOC42IDMgMyAwIDAgMCA0LjggMCAuNS41IDAgMCAwLS4xLS43Wk02LjI1IDcuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTQuMjUtLjc1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhpbnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIaW50MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi44MyAyLjExYS41LjUgMCAwIDAgLjIuOTkgNS4xNCA1LjE0IDAgMCAxIDEuOTUgMCAuNS41IDAgMCAwIC4yLS45OSA2LjE1IDYuMTUgMCAwIDAtMi4zNSAwWm00LjUuOWEuNS41IDAgMCAwLS41NS44M2MuNTQuMzcgMS4wMS44NCAxLjM4IDEuMzhhLjUuNSAwIDAgMCAuODMtLjU1Yy0uNDQtLjY2LTEtMS4yMi0xLjY2LTEuNjZabS02LjEuODNhLjUuNSAwIDEgMC0uNTYtLjgzQzQgMy40NSAzLjQ1IDQuMDEgMyA0LjY3YS41LjUgMCAxIDAgLjgzLjU1Yy4zNy0uNTQuODQtMS4wMSAxLjM4LTEuMzhabTguNjYgMi45OWEuNS41IDAgMSAwLS45OS4yYy4xMy42Mi4xMyAxLjMyIDAgMS45NWEuNS41IDAgMCAwIC45OS4xOWMuMTUtLjc2LjE1LTEuNTggMC0yLjM0Wm0tMTAuOC4yYS41LjUgMCAwIDAtLjk4LS4yIDYuMTUgNi4xNSAwIDAgMCAwIDIuMzQuNS41IDAgMSAwIC45OS0uMiA1LjE0IDUuMTQgMCAwIDEgMC0xLjk1Wm05LjkgNC4zYS41LjUgMCAwIDAtLjgzLS41NSA1LjAzIDUuMDMgMCAwIDEtMS4zOCAxLjM4LjUuNSAwIDAgMCAuNTUuODNjLjY2LS40NCAxLjIyLTEgMS42Ni0xLjY2Wm0tOS4xNS0uNTVhLjUuNSAwIDEgMC0uODMuNTVjLjQ0LjY2IDEgMS4yMiAxLjY2IDEuNjZhLjUuNSAwIDEgMCAuNTUtLjgzIDUuMDMgNS4wMyAwIDAgMS0xLjM4LTEuMzhabTMuMTggMi4xMmEuNS41IDAgMCAwLS4xOS45OWMuNzYuMTUgMS41OC4xNSAyLjM0IDBhLjUuNSAwIDEgMC0uMi0uOTljLS42Mi4xMy0xLjMyLjEzLTEuOTUgMFptMy4zOC0zLjFhLjUuNSAwIDAgMC0uOC0uNiAyIDIgMCAwIDEtMy4yIDAgLjUuNSAwIDAgMC0uOC42IDMgMyAwIDAgMCA0LjggMFpNNyA2Ljc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabTIuNzUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIaW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIaW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjQ0IDIuMTVhLjUuNSAwIDAgMCAuMi45OCA3LjIgNy4yIDAgMCAxIDIuNzMgMCAuNS41IDAgMCAwIC4xOS0uOTggOC4yIDguMiAwIDAgMC0zLjEyIDBabTYgMS4yYS41LjUgMCAwIDAtLjU1LjgzIDcuMDQgNy4wNCAwIDAgMSAxLjkzIDEuOTMuNS41IDAgMSAwIC44My0uNTYgOC4wNCA4LjA0IDAgMCAwLTIuMi0yLjJabS04LjMzLjgzYS41LjUgMCAwIDAtLjU2LS44MyA4LjA0IDguMDQgMCAwIDAtMi4yIDIuMi41LjUgMCAwIDAgLjgzLjU2QTcuMDQgNy4wNCAwIDAgMSA2LjEgNC4xOFpNMy4xMyA4LjYzYS41LjUgMCAxIDAtLjk4LS4yIDguMiA4LjIgMCAwIDAgMCAzLjEzLjUuNSAwIDAgMCAuOTgtLjIgNy4yIDcuMiAwIDAgMSAwLTIuNzNabTE0LjcyLS4yYS41LjUgMCAxIDAtLjk4LjIgNy4yIDcuMiAwIDAgMSAwIDIuNzQuNS41IDAgMSAwIC45OC4yIDguMiA4LjIgMCAwIDAgMC0zLjEzWk00LjE4IDEzLjlhLjUuNSAwIDAgMC0uODMuNTYgOC4wNCA4LjA0IDAgMCAwIDIuMiAyLjIuNS41IDAgMCAwIC41Ni0uODMgNy4wNCA3LjA0IDAgMCAxLTEuOTMtMS45M1ptMTIuNDcuNTZhLjUuNSAwIDEgMC0uODMtLjU2IDcuMDQgNy4wNCAwIDAgMS0xLjkzIDEuOTMuNS41IDAgMSAwIC41NS44MyA4LjA0IDguMDQgMCAwIDAgMi4yMS0yLjJabS04LjAyIDIuNDJhLjUuNSAwIDAgMC0uMi45OGMxLjAyLjIgMi4xMi4yIDMuMTMgMGEuNS41IDAgMCAwLS4yLS45OGMtLjg4LjE3LTEuODQuMTctMi43MyAwWk0xNiAxMGE2IDYgMCAxIDEtMTIgMCA2IDYgMCAwIDEgMTIgMFptLTkuNDQgMi4xMWEuNS41IDAgMCAwLS4wNy43IDQuNSA0LjUgMCAwIDAgNy4wMiAwIC41LjUgMCAxIDAtLjc4LS42MiAzLjUgMy41IDAgMCAxLTUuNDYgMCAuNS41IDAgMCAwLS43LS4wOFpNNy43NSA5YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTMgOC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIaW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGludDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNDQgMi4xNWEuNS41IDAgMCAwIC4yLjk4IDcuMiA3LjIgMCAwIDEgMi43MyAwIC41LjUgMCAwIDAgLjE5LS45OCA4LjIgOC4yIDAgMCAwLTMuMTIgMFptNiAxLjJhLjUuNSAwIDAgMC0uNTUuODMgNy4wNCA3LjA0IDAgMCAxIDEuOTMgMS45My41LjUgMCAxIDAgLjgzLS41NiA4LjA0IDguMDQgMCAwIDAtMi4yLTIuMlptLTguMzMuODNhLjUuNSAwIDAgMC0uNTYtLjgzIDguMDQgOC4wNCAwIDAgMC0yLjIgMi4yLjUuNSAwIDAgMCAuODMuNTZBNy4wNCA3LjA0IDAgMCAxIDYuMSA0LjE4Wk0zLjEzIDguNjNhLjUuNSAwIDEgMC0uOTgtLjIgOC4yIDguMiAwIDAgMCAwIDMuMTMuNS41IDAgMCAwIC45OC0uMiA3LjIgNy4yIDAgMCAxIDAtMi43M1ptMTQuNzItLjJhLjUuNSAwIDEgMC0uOTguMiA3LjIgNy4yIDAgMCAxIDAgMi43NC41LjUgMCAxIDAgLjk4LjIgOC4yIDguMiAwIDAgMCAwLTMuMTNaTTQuMTggMTMuOWEuNS41IDAgMCAwLS44My41NiA4LjA0IDguMDQgMCAwIDAgMi4yIDIuMi41LjUgMCAwIDAgLjU2LS44MyA3LjA0IDcuMDQgMCAwIDEtMS45My0xLjkzWm0xMi40Ny41NmEuNS41IDAgMSAwLS44My0uNTYgNy4wNCA3LjA0IDAgMCAxLTEuOTMgMS45My41LjUgMCAxIDAgLjU1LjgzIDguMDQgOC4wNCAwIDAgMCAyLjIxLTIuMlptLTguMDIgMi40MmEuNS41IDAgMCAwLS4yLjk4YzEuMDIuMiAyLjEyLjIgMy4xMyAwYS41LjUgMCAwIDAtLjItLjk4Yy0uODguMTctMS44NC4xNy0yLjczIDBaTTcuNzUgOWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTQuNSAwYS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLTUuNjkgMy4xMWEuNS41IDAgMCAxIC43LjA4IDMuNSAzLjUgMCAwIDAgNS40NyAwIC41LjUgMCAwIDEgLjc4LjYyIDQuNSA0LjUgMCAwIDEtNy4wMiAwIC41LjUgMCAwIDEgLjA3LS43WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIaW50MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIaW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC4wNSAyLjE5YS43NS43NSAwIDAgMCAuMjkgMS40NyA4Ljc0IDguNzQgMCAwIDEgMy4zMiAwIC43NS43NSAwIDAgMCAuMy0xLjQ3IDEwLjI1IDEwLjI1IDAgMCAwLTMuOTEgMFpNNy4yOCA0LjkzYS43NS43NSAwIDAgMC0uODQtMS4yNSAxMC4wNSAxMC4wNSAwIDAgMC0yLjc2IDIuNzYuNzUuNzUgMCAxIDAgMS4yNS44NCA4LjU1IDguNTUgMCAwIDEgMi4zNS0yLjM1Wm0xMC4yOC0xLjI1YS43NS43NSAwIDAgMC0uODQgMS4yNSA4LjU1IDguNTUgMCAwIDEgMi4zNSAyLjM1Ljc1Ljc1IDAgMSAwIDEuMjUtLjg0IDEwLjA1IDEwLjA1IDAgMCAwLTIuNzYtMi43NlptNC4yNSA2LjM3YS43NS43NSAwIDAgMC0xLjQ3LjI5IDguNzMgOC43MyAwIDAgMSAwIDMuMzIuNzUuNzUgMCAwIDAgMS40Ny4zYy4yNS0xLjI3LjI1LTIuNjUgMC0zLjkxWm0tMTguMTUuMjlhLjc1Ljc1IDAgMCAwLTEuNDctLjMgMTAuMjUgMTAuMjUgMCAwIDAgMCAzLjkxLjc1Ljc1IDAgMSAwIDEuNDctLjI5IDguNzQgOC43NCAwIDAgMSAwLTMuMzJabTEuMjcgNi4zOGEuNzUuNzUgMCAwIDAtMS4yNS44NCAxMC4wNSAxMC4wNSAwIDAgMCAyLjc2IDIuNzYuNzUuNzUgMCAxIDAgLjg0LTEuMjUgOC41NSA4LjU1IDAgMCAxLTIuMzUtMi4zNVptMTUuMzkuODRhLjc1Ljc1IDAgMSAwLTEuMjUtLjg0IDguNTUgOC41NSAwIDAgMS0yLjM1IDIuMzUuNzUuNzUgMCAxIDAgLjg0IDEuMjUgMTAuMDUgMTAuMDUgMCAwIDAgMi43Ni0yLjc2Wm0tOS45OCAyLjc4YS43NS43NSAwIDAgMC0uMyAxLjQ3YzEuMjcuMjUgMi42NS4yNSAzLjkxIDBhLjc1Ljc1IDAgMSAwLS4yOS0xLjQ3IDguNzMgOC43MyAwIDAgMS0zLjMyIDBaTTE5IDEyYTcgNyAwIDEgMS0xNCAwIDcgNyAwIDAgMSAxNCAwWk04LjI3IDE0LjE3YS43NS43NSAwIDAgMC0uMSAxLjA1IDUgNSAwIDAgMCA3LjY1IDAgLjc1Ljc1IDAgMCAwLTEuMTQtLjk2IDMuNSAzLjUgMCAwIDEtNS4zNiAwIC43NS43NSAwIDAgMC0xLjA1LS4xWk05LjUgMTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm02LTFhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIaW50MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGludDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjA1IDIuMTlhLjc1Ljc1IDAgMCAwIC4yOSAxLjQ3IDguNzQgOC43NCAwIDAgMSAzLjMyIDAgLjc1Ljc1IDAgMCAwIC4zLTEuNDcgMTAuMjUgMTAuMjUgMCAwIDAtMy45MSAwWk03LjI4IDQuOTNhLjc1Ljc1IDAgMCAwLS44NC0xLjI1IDEwLjA1IDEwLjA1IDAgMCAwLTIuNzYgMi43Ni43NS43NSAwIDEgMCAxLjI1Ljg0IDguNTUgOC41NSAwIDAgMSAyLjM1LTIuMzVabTEwLjI4LTEuMjVhLjc1Ljc1IDAgMCAwLS44NCAxLjI1IDguNTUgOC41NSAwIDAgMSAyLjM1IDIuMzUuNzUuNzUgMCAxIDAgMS4yNS0uODQgMTAuMDUgMTAuMDUgMCAwIDAtMi43Ni0yLjc2Wm00LjI1IDYuMzdhLjc1Ljc1IDAgMCAwLTEuNDcuMjkgOC43MyA4LjczIDAgMCAxIDAgMy4zMi43NS43NSAwIDAgMCAxLjQ3LjNjLjI1LTEuMjcuMjUtMi42NSAwLTMuOTFabS0xOC4xNS4yOWEuNzUuNzUgMCAwIDAtMS40Ny0uMyAxMC4yNSAxMC4yNSAwIDAgMCAwIDMuOTEuNzUuNzUgMCAxIDAgMS40Ny0uMjkgOC43NCA4Ljc0IDAgMCAxIDAtMy4zMlptMS4yNyA2LjM4YS43NS43NSAwIDAgMC0xLjI1Ljg0IDEwLjA1IDEwLjA1IDAgMCAwIDIuNzYgMi43Ni43NS43NSAwIDEgMCAuODQtMS4yNSA4LjU1IDguNTUgMCAwIDEtMi4zNS0yLjM1Wm0xNS4zOS44NGEuNzUuNzUgMCAxIDAtMS4yNS0uODQgOC41NSA4LjU1IDAgMCAxLTIuMzUgMi4zNS43NS43NSAwIDEgMCAuODQgMS4yNSAxMC4wNSAxMC4wNSAwIDAgMCAyLjc2LTIuNzZabS05Ljk4IDIuNzhhLjc1Ljc1IDAgMCAwLS4zIDEuNDdjMS4yNy4yNSAyLjY1LjI1IDMuOTEgMGEuNzUuNzUgMCAxIDAtLjI5LTEuNDcgOC43MyA4LjczIDAgMCAxLTMuMzIgMFpNOS41IDExYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTYuMTggNC4yNmEuNzUuNzUgMCAxIDAtMS4xNC45NiA1IDUgMCAwIDAgNy42NCAwIC43NS43NSAwIDAgMC0xLjE0LS45NiAzLjUgMy41IDAgMCAxLTUuMzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGludDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGludDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTEuNjYgMi4yM2EuNzUuNzUgMCAxIDAgLjI5IDEuNDdjMS4zMy0uMjYgMi43OC0uMjYgNC4xIDBhLjc1Ljc1IDAgMCAwIC4zLTEuNDcgMTIuMyAxMi4zIDAgMCAwLTQuNyAwWm05IDEuOGEuNzUuNzUgMCAwIDAtLjgzIDEuMjRjMS4xNS43NiAyLjE0IDEuNzUgMi45IDIuOWEuNzUuNzUgMCAxIDAgMS4yNS0uODRjLS44OC0xLjMtMi0yLjQzLTMuMzEtMy4zWk04LjE3IDUuMjZhLjc1Ljc1IDAgMCAwLS44My0xLjI1Yy0xLjMuODgtMi40MyAyLTMuMyAzLjMxYS43NS43NSAwIDAgMCAxLjI0Ljg0IDEwLjU2IDEwLjU2IDAgMCAxIDIuOS0yLjlabTE3LjYxIDYuMzlhLjc1Ljc1IDAgMSAwLTEuNDcuMjljLjI2IDEuMzIuMjYgMi43OCAwIDQuMWEuNzUuNzUgMCAwIDAgMS40Ny4zYy4zLTEuNTIuMy0zLjE4IDAtNC43Wm0tMjIuMDcuMjlhLjc1Ljc1IDAgMSAwLTEuNDctLjMgMTIuMyAxMi4zIDAgMCAwIDAgNC43Ljc1Ljc1IDAgMCAwIDEuNDctLjMgMTAuNzkgMTAuNzkgMCAwIDEgMC00LjFabTIwLjI4IDguNzJhLjc1Ljc1IDAgMSAwLTEuMjUtLjg0IDEwLjU2IDEwLjU2IDAgMCAxLTIuOSAyLjkuNzUuNzUgMCAxIDAgLjg0IDEuMjVjMS4zLS44OCAyLjQzLTIgMy4zLTMuMzFabS0xOC43MS0uODRhLjc1Ljc1IDAgMCAwLTEuMjUuODRjLjg4IDEuMyAyIDIuNDMgMy4zMSAzLjNhLjc1Ljc1IDAgMSAwIC44NC0xLjI0IDEwLjU2IDEwLjU2IDAgMCAxLTIuOS0yLjlabTExLjA3IDUuOTRhLjc1Ljc1IDAgMCAwLS4yOS0xLjQ3Yy0xLjMyLjI2LTIuNzcuMjYtNC4xIDBhLjc1Ljc1IDAgMCAwLS4zIDEuNDdjMS41Mi4zIDMuMTguMyA0LjcgMFpNMjMgMTRhOSA5IDAgMSAxLTE4IDAgOSA5IDAgMCAxIDE4IDBabS0xMS0yLjc1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBabTUuMjUgMS4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41Wm0tOC4xIDQuNjhhLjc1Ljc1IDAgMCAwLS4wOCAxLjA2IDYuNDkgNi40OSAwIDAgMCA5Ljg2IDAgLjc1Ljc1IDAgMCAwLTEuMTQtLjk4IDQuOTkgNC45OSAwIDAgMS03LjU4IDAgLjc1Ljc1IDAgMCAwLTEuMDYtLjA4WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIaW50MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppSGludDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTExLjY2IDIuMjNhLjc1Ljc1IDAgMSAwIC4yOSAxLjQ3YzEuMzMtLjI2IDIuNzgtLjI2IDQuMSAwYS43NS43NSAwIDAgMCAuMy0xLjQ3IDEyLjMgMTIuMyAwIDAgMC00LjcgMFptOSAxLjhhLjc1Ljc1IDAgMCAwLS44MyAxLjI0YzEuMTUuNzYgMi4xNCAxLjc1IDIuOSAyLjlhLjc1Ljc1IDAgMSAwIDEuMjUtLjg0Yy0uODgtMS4zLTItMi40My0zLjMxLTMuM1pNOC4xNyA1LjI2YS43NS43NSAwIDAgMC0uODMtMS4yNWMtMS4zLjg4LTIuNDMgMi0zLjMgMy4zMWEuNzUuNzUgMCAwIDAgMS4yNC44NCAxMC41NiAxMC41NiAwIDAgMSAyLjktMi45Wm0xNy42MSA2LjM5YS43NS43NSAwIDEgMC0xLjQ3LjI5Yy4yNiAxLjMyLjI2IDIuNzggMCA0LjFhLjc1Ljc1IDAgMCAwIDEuNDcuM2MuMy0xLjUyLjMtMy4xOCAwLTQuN1ptLTIyLjA3LjI5YS43NS43NSAwIDEgMC0xLjQ3LS4zIDEyLjMgMTIuMyAwIDAgMCAwIDQuNy43NS43NSAwIDAgMCAxLjQ3LS4zIDEwLjc5IDEwLjc5IDAgMCAxIDAtNC4xWm0yMC4yOCA4LjcyYS43NS43NSAwIDEgMC0xLjI1LS44NCAxMC41NiAxMC41NiAwIDAgMS0yLjkgMi45Ljc1Ljc1IDAgMSAwIC44NCAxLjI1YzEuMy0uODggMi40My0yIDMuMy0zLjMxWm0tMTguNzEtLjg0YS43NS43NSAwIDAgMC0xLjI1Ljg0Yy44OCAxLjMgMiAyLjQzIDMuMzEgMy4zYS43NS43NSAwIDEgMCAuODQtMS4yNCAxMC41NiAxMC41NiAwIDAgMS0yLjktMi45Wm0xMS4wNyA1Ljk0YS43NS43NSAwIDAgMC0uMjktMS40N2MtMS4zMi4yNi0yLjc3LjI2LTQuMSAwYS43NS43NSAwIDAgMC0uMyAxLjQ3YzEuNTIuMyAzLjE4LjMgNC43IDBaTTEwLjc1IDEyLjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVptNy43NS0xLjI1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabS04LjMgNmEuNzUuNzUgMCAxIDAtMS4xMy45OSA2LjQ5IDYuNDkgMCAwIDAgOS44NiAwIC43NS43NSAwIDAgMC0xLjE0LS45OCA0Ljk5IDQuOTkgMCAwIDEtNy41OCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlIaW50MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlIaW50MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xMy4yNyAyLjI3YTEgMSAwIDAgMCAuMzkgMS45NmMxLjU0LS4zIDMuMTQtLjMgNC42OCAwYTEgMSAwIDAgMCAuNC0xLjk2Yy0xLjgtLjM2LTMuNjctLjM2LTUuNDcgMFpNOS4zMyA2LjAyYTEgMSAwIDAgMC0xLjEtMS42NiAxNC4wNyAxNC4wNyAwIDAgMC0zLjg3IDMuODYgMSAxIDAgMCAwIDEuNjYgMS4xMWMuODgtMS4zIDItMi40MyAzLjMxLTMuM1ptMTQuNDUtMS42NmExIDEgMCAwIDAtMS4xMSAxLjY2YzEuMy44OCAyLjQzIDIgMy4zMSAzLjMxYTEgMSAwIDAgMCAxLjY2LTEuMSAxNC4wNyAxNC4wNyAwIDAgMC0zLjg2LTMuODdabTUuOTUgOC45YTEgMSAwIDAgMC0xLjk2LjRjLjMgMS41NC4zIDMuMTQgMCA0LjY4YTEgMSAwIDEgMCAxLjk2LjRjLjM2LTEuOC4zNi0zLjY3IDAtNS40N1ptLTI1LjUuNGExIDEgMCAxIDAtMS45Ni0uNGMtLjM2IDEuOC0uMzYgMy42NyAwIDUuNDdhMSAxIDAgMSAwIDEuOTYtLjM5Yy0uMy0xLjU0LS4zLTMuMTQgMC00LjY4Wm0xLjggOWExIDEgMCAxIDAtMS42NyAxLjEyIDE0LjA3IDE0LjA3IDAgMCAwIDMuODYgMy44NiAxIDEgMCAxIDAgMS4xMS0xLjY2Yy0xLjMtLjg4LTIuNDMtMi0zLjMtMy4zMVptMjEuNjEgMS4xMmExIDEgMCAxIDAtMS42Ni0xLjExYy0uODggMS4zLTIgMi40My0zLjMxIDMuMzFhMSAxIDAgMSAwIDEuMTEgMS42NiAxNC4wNyAxNC4wNyAwIDAgMCAzLjg2LTMuODZabS0xMy45OCA0YTEgMSAwIDEgMC0uNCAxLjk1YzEuOC4zNiAzLjY3LjM2IDUuNDcgMGExIDEgMCAwIDAtLjM5LTEuOTZjLTEuNTQuMy0zLjE0LjMtNC42OCAwWk0yNiAxNmExMCAxMCAwIDEgMS0yMCAwIDEwIDEwIDAgMCAxIDIwIDBabS0xNS4xNCAzLjI2YTEgMSAwIDAgMC0uMDggMS40IDYuOTkgNi45OSAwIDAgMCAxMC40NCAwIDEgMSAwIDAgMC0xLjUtMS4zMyA0Ljk4IDQuOTggMCAwIDEtNy40NSAwIDEgMSAwIDAgMC0xLjQtLjA3Wk0xMi4yNSAxNWExLjc1IDEuNzUgMCAxIDAgMC0zLjUgMS43NSAxLjc1IDAgMCAwIDAgMy41Wm05LjI1LTEuNzVhMS43NSAxLjc1IDAgMSAwLTMuNSAwIDEuNzUgMS43NSAwIDAgMCAzLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGludDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhpbnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMy4yNyAyLjI3YTEgMSAwIDAgMCAuMzkgMS45NmMxLjU0LS4zIDMuMTQtLjMgNC42OCAwYTEgMSAwIDAgMCAuNC0xLjk2Yy0xLjgtLjM2LTMuNjctLjM2LTUuNDcgMFpNOS4zMyA2LjAyYTEgMSAwIDAgMC0xLjEtMS42NiAxNC4wNyAxNC4wNyAwIDAgMC0zLjg3IDMuODYgMSAxIDAgMCAwIDEuNjYgMS4xMWMuODgtMS4zIDItMi40MyAzLjMxLTMuM1ptMTQuNDUtMS42NmExIDEgMCAwIDAtMS4xMSAxLjY2YzEuMy44OCAyLjQzIDIgMy4zMSAzLjMxYTEgMSAwIDAgMCAxLjY2LTEuMSAxNC4wNyAxNC4wNyAwIDAgMC0zLjg2LTMuODdabTUuOTUgOC45YTEgMSAwIDAgMC0xLjk2LjRjLjMgMS41NC4zIDMuMTQgMCA0LjY4YTEgMSAwIDEgMCAxLjk2LjRjLjM2LTEuOC4zNi0zLjY3IDAtNS40N1ptLTI1LjUuNGExIDEgMCAxIDAtMS45Ni0uNGMtLjM2IDEuOC0uMzYgMy42NyAwIDUuNDdhMSAxIDAgMSAwIDEuOTYtLjM5Yy0uMy0xLjU0LS4zLTMuMTQgMC00LjY4Wm0xLjggOWExIDEgMCAxIDAtMS42NyAxLjEyIDE0LjA3IDE0LjA3IDAgMCAwIDMuODYgMy44NiAxIDEgMCAxIDAgMS4xMS0xLjY2Yy0xLjMtLjg4LTIuNDMtMi0zLjMtMy4zMVptMjEuNjEgMS4xMmExIDEgMCAxIDAtMS42Ni0xLjExYy0uODggMS4zLTIgMi40My0zLjMxIDMuMzFhMSAxIDAgMSAwIDEuMTEgMS42NiAxNC4wNyAxNC4wNyAwIDAgMCAzLjg2LTMuODZabS0xMy45OCA0YTEgMSAwIDEgMC0uNCAxLjk1YzEuOC4zNiAzLjY3LjM2IDUuNDcgMGExIDEgMCAwIDAtLjM5LTEuOTZjLTEuNTQuMy0zLjE0LjMtNC42OCAwWm0tMS4zOS04LjQ1YTEgMSAwIDAgMC0xLjQ5IDEuMzQgNi45OSA2Ljk5IDAgMCAwIDEwLjQ0IDAgMSAxIDAgMCAwLTEuNS0xLjM0IDQuOTggNC45OCAwIDAgMS03LjQ1IDBaTTE0IDEzLjI1YTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBaTTE5Ljc1IDE1YTEuNzUgMS43NSAwIDEgMCAwLTMuNSAxLjc1IDEuNzUgMCAwIDAgMCAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUhpbnQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhpbnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTIwLjEgNC4zOGExLjI1IDEuMjUgMCAxIDAgLjQ4IDIuNDVjMi4yNS0uNDQgNC41OS0uNDQgNi44NCAwYTEuMjUgMS4yNSAwIDEgMCAuNDgtMi40NWMtMi41Ny0uNS01LjIzLS41LTcuOCAwWm0tNS44MiA1LjA3YTEuMjUgMS4yNSAwIDEgMC0xLjQtMi4wOCAyMC4xIDIwLjEgMCAwIDAtNS41MSA1LjUyIDEuMjUgMS4yNSAwIDEgMCAyLjA4IDEuMzkgMTcuNiAxNy42IDAgMCAxIDQuODMtNC44M1pNMzUuMSA3LjM3YTEuMjUgMS4yNSAwIDAgMC0xLjM5IDIuMDggMTcuNiAxNy42IDAgMCAxIDQuODMgNC44MyAxLjI1IDEuMjUgMCAxIDAgMi4wOC0xLjQgMjAuMSAyMC4xIDAgMCAwLTUuNTItNS41MVpNNi44MyAyMC41OGExLjI1IDEuMjUgMCAwIDAtMi40NS0uNDhjLS41IDIuNTctLjUgNS4yMyAwIDcuOGExLjI1IDEuMjUgMCAwIDAgMi40NS0uNDggMTcuNjYgMTcuNjYgMCAwIDEgMC02Ljg0Wm0zNi43OS0uNDhhMS4yNSAxLjI1IDAgMCAwLTIuNDUuNDhjLjQ0IDIuMjUuNDQgNC41OSAwIDYuODRhMS4yNSAxLjI1IDAgMCAwIDIuNDUuNDhjLjUtMi41Ny41LTUuMjMgMC03LjhaTTkuNDUgMzMuNzJhMS4yNSAxLjI1IDAgMSAwLTIuMDggMS40IDIwLjEgMjAuMSAwIDAgMCA1LjUyIDUuNTEgMS4yNSAxLjI1IDAgMCAwIDEuMzktMi4wOCAxNy42IDE3LjYgMCAwIDEtNC44My00LjgzWm0zMS4xOCAxLjRhMS4yNSAxLjI1IDAgMSAwLTIuMDgtMS40IDE3LjYgMTcuNiAwIDAgMS00LjgzIDQuODMgMS4yNSAxLjI1IDAgMCAwIDEuNCAyLjA4IDIwLjEgMjAuMSAwIDAgMCA1LjUxLTUuNTJabS0yMC4wNSA2LjA1YTEuMjUgMS4yNSAwIDEgMC0uNDggMi40NWMyLjU3LjUgNS4yMy41IDcuOCAwYTEuMjUgMS4yNSAwIDEgMC0uNDgtMi40NWMtMi4yNS40NC00LjU5LjQ0LTYuODQgMFpNMzkgMjRhMTUgMTUgMCAxIDEtMzAgMCAxNSAxNSAwIDAgMSAzMCAwWm0tMTguNS00LjI1YTIuMjUgMi4yNSAwIDEgMC00LjUgMCAyLjI1IDIuMjUgMCAwIDAgNC41IDBaTTI5Ljc1IDIyYTIuMjUgMi4yNSAwIDEgMCAwLTQuNSAyLjI1IDIuMjUgMCAwIDAgMCA0LjVaTTE1LjcgMjkuMjdjLS41My40NC0uNiAxLjIzLS4xNiAxLjc2YTEwLjk4IDEwLjk4IDAgMCAwIDE2LjkyIDAgMS4yNSAxLjI1IDAgMSAwLTEuOTItMS42IDguNDggOC40OCAwIDAgMS0xMy4wOCAwIDEuMjUgMS4yNSAwIDAgMC0xLjc2LS4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppSGludDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUhpbnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yMC4xIDQuMzhhMS4yNSAxLjI1IDAgMSAwIC40OCAyLjQ1YzIuMjUtLjQ0IDQuNTktLjQ0IDYuODQgMGExLjI1IDEuMjUgMCAxIDAgLjQ4LTIuNDVjLTIuNTctLjUtNS4yMy0uNS03LjggMFptLTUuODIgNS4wN2ExLjI1IDEuMjUgMCAxIDAtMS40LTIuMDggMjAuMSAyMC4xIDAgMCAwLTUuNTEgNS41MiAxLjI1IDEuMjUgMCAxIDAgMi4wOCAxLjM5IDE3LjYgMTcuNiAwIDAgMSA0LjgzLTQuODNaTTM1LjEgNy4zN2ExLjI1IDEuMjUgMCAwIDAtMS4zOSAyLjA4IDE3LjYgMTcuNiAwIDAgMSA0LjgzIDQuODMgMS4yNSAxLjI1IDAgMSAwIDIuMDgtMS40IDIwLjEgMjAuMSAwIDAgMC01LjUyLTUuNTFaTTYuODMgMjAuNThhMS4yNSAxLjI1IDAgMCAwLTIuNDUtLjQ4Yy0uNSAyLjU3LS41IDUuMjMgMCA3LjhhMS4yNSAxLjI1IDAgMCAwIDIuNDUtLjQ4IDE3LjY2IDE3LjY2IDAgMCAxIDAtNi44NFptMzYuNzktLjQ4YTEuMjUgMS4yNSAwIDAgMC0yLjQ1LjQ4Yy40NCAyLjI1LjQ0IDQuNTkgMCA2Ljg0YTEuMjUgMS4yNSAwIDAgMCAyLjQ1LjQ4Yy41LTIuNTcuNS01LjIzIDAtNy44Wk05LjQ1IDMzLjcyYTEuMjUgMS4yNSAwIDEgMC0yLjA4IDEuNCAyMC4xIDIwLjEgMCAwIDAgNS41MiA1LjUxIDEuMjUgMS4yNSAwIDAgMCAxLjM5LTIuMDggMTcuNiAxNy42IDAgMCAxLTQuODMtNC44M1ptMzEuMTggMS40YTEuMjUgMS4yNSAwIDEgMC0yLjA4LTEuNCAxNy42IDE3LjYgMCAwIDEtNC44MyA0LjgzIDEuMjUgMS4yNSAwIDAgMCAxLjQgMi4wOCAyMC4xIDIwLjEgMCAwIDAgNS41MS01LjUyWm0tMjAuMDUgNi4wNWExLjI1IDEuMjUgMCAxIDAtLjQ4IDIuNDVjMi41Ny41IDUuMjMuNSA3LjggMGExLjI1IDEuMjUgMCAxIDAtLjQ4LTIuNDVjLTIuMjUuNDQtNC41OS40NC02Ljg0IDBaTTE4LjI1IDIyYTIuMjUgMi4yNSAwIDEgMCAwLTQuNSAyLjI1IDIuMjUgMCAwIDAgMCA0LjVaTTMyIDE5Ljc1YTIuMjUgMi4yNSAwIDEgMS00LjUgMCAyLjI1IDIuMjUgMCAwIDEgNC41IDBabS0xNC41NCA5LjY4YTEuMjUgMS4yNSAwIDEgMC0xLjkyIDEuNiAxMC45OCAxMC45OCAwIDAgMCAxNi45MiAwIDEuMjUgMS4yNSAwIDEgMC0xLjkyLTEuNiA4LjQ4IDguNDggMCAwIDEtMTMuMDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTGF1Z2gxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUxhdWdoMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlpNNiA2Yy4yOCAwIC41LjIyLjUuNWEuNS41IDAgMCAwIDEgMCAxLjUgMS41IDAgMSAwLTMgMCAuNS41IDAgMCAwIDEgMGMwLS4yOC4yMi0uNS41LS41Wm00IDBjLjI4IDAgLjUuMjIuNS41YS41LjUgMCAwIDAgMSAwIDEuNSAxLjUgMCAwIDAtMyAwIC41LjUgMCAwIDAgMSAwYzAtLjI4LjIyLS41LjUtLjVaTTQuNTQgOC41YTMuNSAzLjUgMCAwIDAgNi45MiAwSDQuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUxhdWdoMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTGF1Z2gxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDZhLjUuNSAwIDAgMC0uNS41LjUuNSAwIDAgMS0xIDAgMS41IDEuNSAwIDEgMSAzIDAgLjUuNSAwIDAgMS0xIDBBLjUuNSAwIDAgMCA2IDZabTQgMGEuNS41IDAgMCAwLS41LjUuNS41IDAgMCAxLTEgMCAxLjUgMS41IDAgMSAxIDMgMCAuNS41IDAgMCAxLTEgMEEuNS41IDAgMCAwIDEwIDZaTTQuNTQgOGEuNS41IDAgMCAwLS41LjU3IDQgNCAwIDAgMCA3LjkyIDAgLjUuNSAwIDAgMC0uNS0uNTdINC41NFpNOCAxMWEzIDMgMCAwIDEtMi44My0yaDUuNjZBMyAzIDAgMCAxIDggMTFabTYtM0E2IDYgMCAxIDAgMiA4YTYgNiAwIDAgMCAxMiAwWk0zIDhhNSA1IDAgMSAxIDEwIDBBNSA1IDAgMCAxIDMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTGF1Z2gyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUxhdWdoMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk02LjUgOC4wOGEuNS41IDAgMSAxLTEtLjE2Yy4xMy0uODMuOS0xLjQyIDEuNzUtMS40MnMxLjYxLjU5IDEuNzQgMS40MmEuNS41IDAgMSAxLS45OS4xNmMtLjA0LS4zLS4zNC0uNTgtLjc1LS41OC0uNDIgMC0uNzEuMjgtLjc2LjU4Wm01LjUgMGEuNS41IDAgMCAxLTEtLjE2Yy4xMy0uODMuOS0xLjQyIDEuNzUtMS40MnMxLjYxLjU5IDEuNzQgMS40MmEuNS41IDAgMCAxLS45OS4xNmMtLjA0LS4zLS4zNC0uNTgtLjc1LS41OC0uNDIgMC0uNzEuMjgtLjc2LjU4Wk01LjUgMTAuNWg5Yy0uMjIgMi4yLTEuOTMgNC00LjUgNGE0LjM2IDQuMzYgMCAwIDEtNC41LTRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaUxhdWdoMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTGF1Z2gyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02LjUgOC4wOGMuMDQtLjMuMzMtLjU4Ljc1LS41OC40MSAwIC43LjI4Ljc1LjU4QS41LjUgMCAxIDAgOSA3LjkyIDEuNzMgMS43MyAwIDAgMCA3LjI1IDYuNWMtLjg2IDAtMS42Mi41OS0xLjc0IDEuNDJhLjUuNSAwIDEgMCAuOTguMTZabTYuMjUtLjU4Yy0uNDIgMC0uNzEuMjgtLjc2LjU4YS41LjUgMCAwIDEtLjk4LS4xNmMuMTItLjgzLjg4LTEuNDIgMS43NC0xLjQyLjg1IDAgMS42MS41OSAxLjc0IDEuNDJhLjUuNSAwIDAgMS0uOTkuMTZjLS4wNC0uMy0uMzQtLjU4LS43NS0uNThaTTUuNSAxMGEuNS41IDAgMCAwLS41LjU1QTQuODYgNC44NiAwIDAgMCAxMCAxNWMyLjg0IDAgNC43NS0yIDUtNC40NWEuNS41IDAgMCAwLS41LS41NWgtOVptNC41IDRhMy44NSAzLjg1IDAgMCAxLTMuOTItM2g3LjgzYy0uNCAxLjctMS44MyAzLTMuOTEgM1ptMC0xMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlptLTcgOGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTGF1Z2gyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUxhdWdoMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFptMi41IDcuMzZhLjc1Ljc1IDAgMSAxLTEuNS0uMjIgMi4yNSAyLjI1IDAgMCAxIDIuMjUtMS44OWMxLjEyIDAgMi4wOC44IDIuMjQgMS44OWEuNzUuNzUgMCAxIDEtMS40OC4yMi43NS43NSAwIDAgMC0uNzYtLjYxYy0uNCAwLS43MS4yOS0uNzYuNjFaTTEyIDE4Yy0zLjE0IDAtNS4yNC0yLjM2LTUuNS01LjI1aDExQzE3LjI0IDE1LjY0IDE1LjE0IDE4IDEyIDE4Wk04Ljc1IDguNzVjLS40IDAtLjcxLjI5LS43Ni42MWEuNzUuNzUgMCAxIDEtMS40OC0uMjIgMi4yNSAyLjI1IDAgMCAxIDIuMjQtMS44OWMxLjEyIDAgMi4wOC44IDIuMjQgMS44OWEuNzUuNzUgMCAxIDEtMS40OC4yMi43NS43NSAwIDAgMC0uNzYtLjYxWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlMYXVnaDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaUxhdWdoMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi43NSAxMmEuNzUuNzUgMCAwIDAtLjc1LjgyYy4yOCAzLjA3IDIuNTUgNS42OCA2IDUuNjhzNS43Mi0yLjYgNi01LjY4YS43NS43NSAwIDAgMC0uNzUtLjgySDYuNzVaTTEyIDE3YTQuNCA0LjQgMCAwIDEtNC4zNy0zLjVoOC43NEE0LjQgNC40IDAgMCAxIDEyIDE3Wm0zLjI1LTguMjVjLS40IDAtLjcxLjI5LS43Ni42MWEuNzUuNzUgMCAxIDEtMS40OC0uMjIgMi4yNSAyLjI1IDAgMCAxIDIuMjQtMS44OWMxLjEyIDAgMi4wOC44IDIuMjQgMS44OWEuNzUuNzUgMCAxIDEtMS40OC4yMi43NS43NSAwIDAgMC0uNzYtLjYxWm0tNy4yNi42MWEuNzUuNzUgMCAwIDEgLjc2LS42MWMuNCAwIC43MS4yOS43Ni42MWEuNzUuNzUgMCAxIDAgMS40OC0uMjIgMi4yNSAyLjI1IDAgMCAwLTIuMjQtMS44OWMtMS4xMiAwLTIuMDguOC0yLjI0IDEuODlhLjc1Ljc1IDAgMCAwIDEuNDguMjJaTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWk0zLjUgMTJhOC41IDguNSAwIDEgMSAxNyAwIDguNSA4LjUgMCAwIDEtMTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTWVoMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZWgxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgOGE2IDYgMCAxIDAgMTIgMEE2IDYgMCAwIDAgMiA4Wm01LTFhLjc1Ljc1IDAgMSAxLTEuNSAwQS43NS43NSAwIDAgMSA3IDdabTMuNSAwQS43NS43NSAwIDEgMSA5IDdhLjc1Ljc1IDAgMCAxIDEuNSAwWk02IDloNGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNZWgxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZWgxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03IDdhLjc1Ljc1IDAgMSAxLTEuNSAwQS43NS43NSAwIDAgMSA3IDdabTIuNzUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wk02IDlhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMUg2Wm0yLTdhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA4IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1laDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTWVoMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm02LjUtMS41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNCAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLTYuNSAzYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNZWgyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZWgyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjUgOS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTcgMy41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtN2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTWVoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZWgyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWm0tMS43NSA4YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabTYgMGExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk03LjUgMTUuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1laDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU1laDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkgOC43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVpNOC4yNSAxNWEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wk0yIDEyYTEwIDEwIDAgMSAxIDIwIDAgMTAgMTAgMCAwIDEtMjAgMFptMTAtOC41YTguNSA4LjUgMCAxIDAgMCAxNyA4LjUgOC41IDAgMCAwIDAtMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1lbWUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU1lbWUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMTRhNiA2IDAgMCAxLTUuOTItNUgzdjFoNVY5aDF2MWg0LjY2QTYgNiAwIDAgMSA4IDE0Wk04IDJjLTEuNzggMC0zLjM3Ljc3LTQuNDcgMmg4Ljk0QzExLjM3IDIuNzcgOS43NyAyIDggMlptLTEuODggOC42NmEuNS41IDAgMSAwLS43NC42OCAzLjU0IDMuNTQgMCAwIDAgNS4yNCAwIC41LjUgMCAxIDAtLjc0LS42OCAyLjU0IDIuNTQgMCAwIDEtMy43NiAwWk0xNSA1SDJ2MUgxdjFIMHYyaDFWN2gydjFoMXYxaDNWOGgxVjdoMXYxaDF2MWgzVjhoMVY3aDFWNVpNNCA2aDF2MUg0VjZabTEgMlY3aDF2MUg1Wm02LTJ2MWgxdjFoLTFWN2gtMVY2aDFaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1lbWUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZW1lMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS43NyAxMGEuNS41IDAgMCAxIC4zNy4xNyAyLjUgMi41IDAgMCAwIDMuNzIgMCAuNS41IDAgMCAxIC43LS4wNGMuMjIuMTguMjMuNS4wNS43YTMuNSAzLjUgMCAwIDEtNS4yMiAwIC41LjUgMCAwIDEgLjM3LS44M1pNMTEgNGE0Ljk4IDQuOTggMCAwIDAtNiAwSDMuNTNhNS45OSA1Ljk5IDAgMCAxIDguOTQgMEgxMVptMS41OCA2QTUgNSAwIDAgMSAzLjEgOUgyLjA4YTYgNiAwIDAgMCAxMS41OCAxaC0xLjA4Wk0wIDdoMXYySDBWN1ptMi0yaDEzdjJoLTF2MWgtMXYxaC0zVjhIOVY3SDh2MUg3djFINFY4SDNWN0gxVjZoMVY1Wm0zIDFINHYxaDF2MWgxVjdINVY2Wm01IDB2MWgxVjZoLTFabTEgMXYxaDFWN2gtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTWVtZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTWVtZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE3Ljk5IDcuOTkgMCAwIDEgNi4yNSAzSDMuNzVBNy45OSA3Ljk5IDAgMCAxIDEwIDJabTcgOWguOTRBOCA4IDAgMCAxIDIgMTBoMXYxaDF2MWg2di0xaDF2MWg2di0xWk02LjE5IDEzLjQ0YS41LjUgMCAwIDAtLjA4LjcgNSA1IDAgMCAwIDcuNzggMCAuNS41IDAgMSAwLS43OC0uNjMgNCA0IDAgMCAxLTYuMjIgMCAuNS41IDAgMCAwLS43LS4wN1pNMTggNkgzdjFIMnYxSDF2MUgwdjJoMVY5aDFWOGgydjJoMXYxaDR2LTFoMVY4aDF2MmgxdjFoNHYtMWgxVjhoMVY2Wk02IDh2MWgxdjFINlY5SDVWOGgxWm03IDB2MWgxdjFoLTFWOWgtMVY4aDFaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaU1lbWUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZW1lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuMjUgNWE3Ljk5IDcuOTkgMCAwIDAtMTIuNSAwSDUuMWE2Ljk4IDYuOTggMCAwIDEgOS44IDBoMS4zNVptMS42OSA2aC0xLjAxQTcgNyAwIDAgMSAzIDEwSDJhOCA4IDAgMCAwIDE1Ljk0IDFaTTMgNmgxNXYyaC0xdjJoLTF2MWgtNHYtMWgtMVY4aC0xdjJIOXYxSDV2LTFINFY4SDJWN2gxVjZaTTEgOVY4aDF2MUgxWm0wIDB2MkgwVjloMVptNC0xdjFoMVY4SDVabTEgMXYxaDFWOUg2Wm02LTF2MWgxVjhoLTFabTEgMXYxaDFWOWgtMVptLTYuMTEgMy41MWEuNS41IDAgMSAwLS43OC42MyA1IDUgMCAwIDAgNy43OCAwIC41LjUgMCAxIDAtLjc4LS42MyA0IDQgMCAwIDEtNi4yMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNZW1lMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlNZW1lMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyMmExMCAxMCAwIDAgMS05Ljk1LTExSDR2MmgxdjFoN3YtMWgydjFoN3YtMWguOTVBMTAgMTAgMCAwIDEgMTIgMjJabTgtMTZINGE5Ljk5IDkuOTkgMCAwIDEgMTYgMFpNNy40MSAxNS42NmEuNzUuNzUgMCAwIDAtLjEyIDEuMDUgNiA2IDAgMCAwIDkuNDIgMCAuNzUuNzUgMCAxIDAtMS4xNy0uOTIgNC41IDQuNSAwIDAgMS03LjA4IDAgLjc1Ljc1IDAgMCAwLTEuMDUtLjEzWk0zIDdoMTl2M2gtMXYyaC0xdjFoLTV2LTFoLTF2LTJoLTJ2MmgtMXYxSDZ2LTFINXYtMkg0VjlIMlY4aDFWN1ptLTIgM1Y5aDF2MUgxWm0wIDBIMHYyaDF2LTJabTYtMUg2djFoMXYxaDF2LTFIN1Y5Wm05IDBoLTF2MWgxdjFoMXYtMWgtMVY5WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNZW1lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTWVtZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIwIDZoLTEuOThBOC40OCA4LjQ4IDAgMCAwIDUuOTggNkg0YTkuOTkgOS45OSAwIDAgMSAxNiAwWk0zLjUgMTJjMC0uMzQuMDItLjY3LjA2LTFIMi4wNWExMCAxMCAwIDEgMCAxOS45IDJIMjF2MWgtLjczQTguNSA4LjUgMCAwIDEgMy41IDEyWm04LjUgNC41YTQuNSA0LjUgMCAwIDEtMy41NC0xLjcyLjc1Ljc1IDAgMSAwLTEuMTcuOTMgNiA2IDAgMCAwIDkuNDIgMCAuNzUuNzUgMCAxIDAtMS4xNy0uOTJBNC41IDQuNSAwIDAgMSAxMiAxNi41Wk0zIDdoMTl2M2gtMXYyaC0xdjFoLTV2LTFoLTF2LTJoLTJ2MmgtMXYxSDZ2LTFINXYtMkg0VjlIMlY4aDFWN1ptLTIgM1Y5aDF2MUgxWm0wIDBIMHYyaDF2LTJabTYtMUg2djFoMXYxaDF2LTFIN1Y5Wm05IDBoLTF2MWgxdjFoMXYtMWgtMVY5WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNdWx0aXBsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppTXVsdGlwbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgN2E1IDUgMCAwIDAgNC4wMyA0LjkgNi40OCA2LjQ4IDAgMCAxIDEuNjYtMy43OCAyIDIgMCAwIDAtMi4yMS41OC41LjUgMCAxIDEtLjc2LS42NSAzIDMgMCAwIDEgMy43Ni0uNjYgNi40NyA2LjQ3IDAgMCAxIDMuNDMtMS4zNkE1IDUgMCAwIDAgMiA3Wm00LjI1LTEuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0zIDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptOC43NSA3YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS02Ljc1LTFhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptMy44NiAyLjU3YS41LjUgMCAwIDAtLjcxLjA1IDIuNSAyLjUgMCAwIDEtMy44IDAgLjUuNSAwIDEgMC0uNzYuNjYgMy41IDMuNSAwIDAgMCA1LjMyIDAgLjUuNSAwIDAgMC0uMDUtLjcxWm0tLjYxLTEuODJhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNdWx0aXBsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU11bHRpcGxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyAyYTUgNSAwIDAgMSA0LjkgNC4wM2MtLjMzLjAzLS42Ni4wOC0uOTguMTZhNCA0IDAgMSAwLTQuNzMgNC43M2MtLjA4LjMyLS4xMy42NS0uMTYuOTlBNSA1IDAgMCAxIDcgMlptLjcgNi4xMmMuMjQtLjI2LjUtLjUuNzgtLjczYTMgMyAwIDAgMC0zLjc2LjY2LjUuNSAwIDEgMCAuNzYuNjUgMiAyIDAgMCAxIDIuMjEtLjU4Wk02LjI0IDUuNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWm0zIDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMS4yNSA2Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptNC42IDEuODJjLjIxLjE4LjI0LjUuMDYuN2EzLjUgMy41IDAgMCAxLTUuMzIuMDEuNS41IDAgMSAxIC43Ni0uNjUgMi41IDIuNSAwIDAgMCAzLjggMCAuNS41IDAgMCAxIC43LS4wNlptLS42LTEuODJhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tMiA1Ljc1YTUuNSA1LjUgMCAxIDAgMC0xMSA1LjUgNS41IDAgMCAwIDAgMTFabTAtMWE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppTXVsdGlwbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU11bHRpcGxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDguNWE2LjUgNi41IDAgMCAwIDQuOTQgNi4zMSA4IDggMCAwIDEgMS43Mi00LjggMiAyIDAgMCAwLTEuNjguNjkuNzUuNzUgMCAwIDEtMS4xNC0uOTcgMy41IDMuNSAwIDAgMSA0LjAyLS45NSA4IDggMCAwIDEgNC45NS0xLjg0QTYuNSA2LjUgMCAwIDAgMiA4LjVabTUuNS0yYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNCAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpNMjIgMTVhNyA3IDAgMSAxLTE0IDAgNyA3IDAgMCAxIDE0IDBabS04LjUtMS41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNC40NyAzLjIyYS42My42MyAwIDAgMC0uODguMDcgMi43NSAyLjc1IDAgMCAxLTQuMTggMCAuNjIuNjIgMCAxIDAtLjk1LjgyIDQgNCAwIDAgMCA2LjA4LS4wMS42Mi42MiAwIDAgMC0uMDctLjg4Wm0tLjQ3LTIuMjJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaU11bHRpcGxlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC41IDJhNi41IDYuNSAwIDAgMSA2LjMxIDQuOTRjLS41MS4wMS0xLjAyLjA3LTEuNS4xN2E1IDUgMCAxIDAtNi4yIDYuMmMtLjEuNDgtLjE2Ljk5LS4xNyAxLjVBNi41IDYuNSAwIDAgMSA4LjUgMlptLjE2IDhjLjM2LS40NS43Ni0uODYgMS4yLTEuMjJhMy41IDMuNSAwIDAgMC00LjAyLjk1Ljc1Ljc1IDAgMSAwIDEuMTQuOTcgMiAyIDAgMCAxIDEuNjgtLjdaTTcuNSA2LjVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0xIDhhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm01LjQ2IDIuMDRjLjMxLjI3LjM1Ljc0LjA4IDEuMDZhNCA0IDAgMCAxLTYuMDggMCAuNzUuNzUgMCAwIDEgMS4xNC0uOTcgMi41IDIuNSAwIDAgMCAzLjggMCAuNzUuNzUgMCAwIDEgMS4wNi0uMDlabS0uNDYtMi4wNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTE1IDIyYTcgNyAwIDEgMCAwLTE0IDcgNyAwIDAgMCAwIDE0Wm0wLTEuNWE1LjUgNS41IDAgMSAxIDAtMTEgNS41IDUuNSAwIDAgMSAwIDExWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaVNhZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDEgMSAwIDEyQTYgNiAwIDAgMSA4IDJaTTYuMjUgNy41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMy41IDBhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0uMTIgMy4zMmEuNS41IDAgMSAwIC43Ni0uNjQgMy41MyAzLjUzIDAgMCAwLTUuMjYgMCAuNS41IDAgMSAwIC43Ni42NCAyLjUzIDIuNTMgMCAwIDEgMy43NCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTYWQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNCA4QTYgNiAwIDEgMCAyIDhhNiA2IDAgMCAwIDEyIDBaTTMgOGE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMyA4Wm00LTEuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptMy41IDBhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLTQuMzcgNC4wN2EyLjUzIDIuNTMgMCAwIDEgMy43NCAwIC41LjUgMCAxIDAgLjc2LS42NCAzLjUzIDMuNTMgMCAwIDAtNS4yNiAwIC41LjUgMCAxIDAgLjc2LjY0WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaVNhZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNS41LS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptLjA2IDQuODljLjM4LS4zNS4wNy0uNzIuMDYtLjczYTIuMDIgMi4wMiAwIDAgMC0uMjMtLjIzIDQuMDYgNC4wNiAwIDAgMC0uNjctLjQ5IDUuMyA1LjMgMCAwIDAtMi43Mi0uNjkgNS4zIDUuMyAwIDAgMC0yLjcyLjcgNC4wOCA0LjA4IDAgMCAwLS45LjdsLS4wMS4wM2gtLjAxbC4zOS4zMi0uMzktLjMxYS41LjUgMCAwIDAgLjc4LjYzbC4wMi0uMDNjLjAzLS4wMy4wNi0uMDcuMTItLjExLjEtLjEuMjctLjI0LjUtLjM3YTQuMzEgNC4zMSAwIDAgMSAyLjIyLS41NiA0LjMgNC4zIDAgMCAxIDIuMjIuNTYgMy4wNyAzLjA3IDAgMCAxIC42NC41LjUuNSAwIDAgMCAuNy4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU2FkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU2FkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDkuNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTYtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS4wNiA0Ljg5YS41LjUgMCAwIDEtLjctLjA3QTQuMyA0LjMgMCAwIDAgMTAgMTIuMjVjLTEuMDItLjAxLTEuNzUuMjctMi4yMS41NWEzLjA5IDMuMDkgMCAwIDAtLjY1LjUuNS41IDAgMCAxLS43OC0uNjJsLjM5LjMxLS4zOS0uMzF2LS4wMWwuMDItLjAyYTIuMDcgMi4wNyAwIDAgMSAuMjMtLjIzYy4xNS0uMTMuMzctLjMxLjY3LS40OS42LS4zNSAxLjUtLjY5IDIuNzItLjY5YTUuMyA1LjMgMCAwIDEgMi43Mi43IDQuMDYgNC4wNiAwIDAgMSAuOS43MWwuMDEuMDJoLjAxbC0uMzkuMzIuMzktLjMxYS41LjUgMCAwIDEtLjA4LjdaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNhZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU2FkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptMCAxMS41Yy0xLjYzIDAtMy4xNy42NS00LjI5IDEuOGEuNzUuNzUgMCAxIDAgMS4wNyAxLjA1IDQuNDggNC40OCAwIDAgMSA2LjQzIDAgLjc1Ljc1IDAgMSAwIDEuMDctMS4wNkE1Ljk4IDUuOTggMCAwIDAgMTIgMTMuNVpNOSA4Ljc1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjVabTYgMGExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTYWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptMCAxLjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN1ptMCAxMGMxLjYzIDAgMy4xNi42NSA0LjI4IDEuOGEuNzUuNzUgMCAxIDEtMS4wNyAxLjA0IDQuNDggNC40OCAwIDAgMC02LjQzIDAgLjc1Ljc1IDAgMSAxLTEuMDctMS4wNEE1Ljk4IDUuOTggMCAwIDEgMTIgMTMuNVpNOSA4Ljc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabTYgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWRTbGlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaVNhZFNsaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNOC41IDguNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTQtMWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS4zIDQuNWguOGEuNS41IDAgMCAxIDAgMWgtLjhjLTEuMDcgMC0yLjEzLjMyLTMuMDIuOTJhLjUuNSAwIDEgMS0uNTYtLjg0QTYuNDUgNi40NSAwIDAgMSAxMi44IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTYWRTbGlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTYWRTbGlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgOC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNCAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptLjMgMi41Yy0xLjI3IDAtMi41Mi4zOC0zLjU4IDEuMDhhLjUuNSAwIDAgMCAuNTYuODRjLjktLjYgMS45NS0uOTIgMy4wMi0uOTJoLjhhLjUuNSAwIDAgMCAwLTFoLS44Wk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm04LTdhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNhZFNsaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU2FkU2xpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiAxMmExMCAxMCAwIDEgMC0yMCAwIDEwIDEwIDAgMCAwIDIwIDBaTTcuNzUgMTBhMS4yNSAxLjI1IDAgMSAxIDIuNSAwIDEuMjUgMS4yNSAwIDAgMS0yLjUgMFptNiAwYTEuMjUgMS4yNSAwIDEgMSAyLjUgMCAxLjI1IDEuMjUgMCAwIDEtMi41IDBabTIgNGguNmEuNzUuNzUgMCAwIDEgMCAxLjVoLS42YTUuNzUgNS43NSAwIDAgMC0zLjQ3IDEuMjguNzUuNzUgMCAxIDEtMS4wNi0xLjA2QTcuMjQgNy4yNCAwIDAgMSAxNS43NSAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU2FkU2xpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU2FkU2xpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuMjUgMTBhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFptNiAwYTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBabS0uNSA0YTcuMjQgNy4yNCAwIDAgMC00LjUzIDEuNzIuNzUuNzUgMCAxIDAgMS4wNiAxLjA2Yy4yNy0uMjguOC0uNiAxLjQ3LS44NmE1Ljc1IDUuNzUgMCAwIDEgMi0uNDJoLjZhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNlpNMjIgMTJhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWk0zLjUgMTJhOC41IDguNSAwIDEgMSAxNyAwIDguNSA4LjUgMCAwIDEtMTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU21pbGVTbGlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaVNtaWxlU2xpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk04LjUgOC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNC0xYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlptLTQuMDMgNS41NWMuNDIuMjEuOTcuMzIgMS41My4zMmEzLjUgMy41IDAgMCAwIDEuNTMtLjMyLjUuNSAwIDEgMSAuNDQuOWMtLjU4LjI5LTEuMjguNDMtMS45Ny40M3MtMS4zOS0uMTQtMS45Ny0uNDNhLjUuNSAwIDEgMSAuNDQtLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNtaWxlU2xpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU21pbGVTbGlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMy41IDguNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS01IDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tLjAzIDQuNTVhLjUuNSAwIDEgMC0uNDQuOWMuNTguMjkgMS4yOC40MyAxLjk3LjQzczEuMzktLjE0IDEuOTctLjQzYS41LjUgMCAxIDAtLjQ0LS45Yy0uNDIuMjEtLjk3LjMyLTEuNTMuMzJhMy41IDMuNSAwIDAgMS0xLjUzLS4zMlpNMTggMTBhOCA4IDAgMSAwLTE2IDAgOCA4IDAgMCAwIDE2IDBaTTMgMTBhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNtaWxlU2xpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTbWlsZVNsaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWk03Ljc1IDEwYTEuMjUgMS4yNSAwIDEgMSAyLjUgMCAxLjI1IDEuMjUgMCAwIDEtMi41IDBabTYgMGExLjI1IDEuMjUgMCAxIDEgMi41IDAgMS4yNSAxLjI1IDAgMCAxLTIuNSAwWm0tMy42MSA1LjFjLjQ4LjMgMS4xNS40NiAxLjg2LjQ2LjcgMCAxLjM4LS4xNiAxLjg2LS40NWEuNzUuNzUgMCAxIDEgLjc4IDEuMjggNS4yIDUuMiAwIDAgMS0yLjY0LjY3IDUuMiA1LjIgMCAwIDEtMi42NC0uNjcuNzUuNzUgMCAxIDEgLjc4LTEuMjhaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNtaWxlU2xpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU21pbGVTbGlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC4yNSAxMGExLjI1IDEuMjUgMCAxIDAtMi41IDAgMS4yNSAxLjI1IDAgMCAwIDIuNSAwWm02IDBhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFptLTYuMTEgNS4xYS43NS43NSAwIDAgMC0uNzggMS4zIDUuMiA1LjIgMCAwIDAgMi42NC42NmMuOTIgMCAxLjg3LS4yIDIuNjQtLjY3YS43NS43NSAwIDEgMC0uNzgtMS4yOGMtLjQ4LjI5LTEuMTUuNDUtMS44Ni40NS0uNyAwLTEuMzgtLjE2LTEuODYtLjQ1Wk0yMiAxMmExMCAxMCAwIDEgMC0yMCAwIDEwIDEwIDAgMCAwIDIwIDBaTTMuNSAxMmE4LjUgOC41IDAgMSAxIDE3IDAgOC41IDguNSAwIDAgMS0xNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTcGFya2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMy44IDIuMjJoLS4wMmwtLjc2LS4yNmExLjU4IDEuNTggMCAwIDEtMS0xTDExLjc3LjJhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjYuMTktLjE3LjA1YS4zLjMgMCAwIDAtLjE1LjExLjMuMyAwIDAgMCAuMTUuNDZsLjc3LjI1LjA4LjAzYTEuNTggMS41OCAwIDAgMSAuOTIuOTdsLjI0Ljc3YS4zLjMgMCAwIDAgLjI5LjIuMy4zIDAgMCAwIC4yOS0uMmwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3Wm0xLjQxIDMuMzUuNjIuMmEuMjQuMjQgMCAwIDEgMCAuNDZsLS42LjJhMS4yNiAxLjI2IDAgMCAwLS44LjhsLS4yLjZhLjI0LjI0IDAgMCAxLS4yNC4xNy4yNC4yNCAwIDAgMS0uMjItLjE2bC0uMi0uNjFhMS4yNiAxLjI2IDAgMCAwLS44LS44bC0uNjEtLjJhLjI0LjI0IDAgMCAxLS4xMi0uMS4yNS4yNSAwIDAgMSAuMTItLjM2bC42MS0uMmExLjI2IDEuMjYgMCAwIDAgLjgtLjhsLjE5LS42YS4yNC4yNCAwIDAgMSAuNDYgMGwuMi42YTEuMjYgMS4yNiAwIDAgMCAuOC44Wk04IDE0YTYgNiAwIDAgMCA1LjkyLTUgMS4yNCAxLjI0IDAgMCAxLTEuMS0uODVsLS4yLS42MWEuMjYuMjYgMCAwIDAtLjE2LS4xNmwtLjYzLS4yQTEuMjQgMS4yNCAwIDAgMSAxMSA2di0uMWExLjMgMS4zIDAgMCAxLS43NC0uOGwtLjI0LS43NWEuNTQuNTQgMCAwIDAtLjE0LS4yMy42LjYgMCAwIDAtLjIyLS4xNGwtLjgtLjI1QTEuMyAxLjMgMCAwIDEgOC4xIDJIOGE2IDYgMCAxIDAgMCAxMlpNNi4yNSA3Ljc1YS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVptLS4xMSAxLjkyYTIuNSAyLjUgMCAwIDAgMy43MiAwIC41LjUgMCAxIDEgLjc1LjY2IDMuNSAzLjUgMCAwIDEtNS4yMiAwIC41LjUgMCAwIDEgLjc1LS42NlptMy42MS0xLjkyYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNVpNMTEuNSA1WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3BhcmtsZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzLjggMi4yMmgtLjAybC0uNzYtLjI2YTEuNTggMS41OCAwIDAgMS0xLTFMMTEuNzcuMmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNi4xOS0uMTcuMDVhLjMuMyAwIDAgMC0uMTUuMTEuMy4zIDAgMCAwIC4xNS40NmwuNzcuMjUuMDguMDNhMS41OCAxLjU4IDAgMCAxIC44OS45bC4wMy4wNy4yNC43N2EuMy4zIDAgMCAwIC4yOS4yLjMuMyAwIDAgMCAuMjktLjJsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N1ptMS40MSAzLjM1LjYyLjJhLjI0LjI0IDAgMCAxIDAgLjQ2bC0uNi4yYTEuMjYgMS4yNiAwIDAgMC0uOC44bC0uMi42YS4yNC4yNCAwIDAgMS0uMjQuMTcuMjQuMjQgMCAwIDEtLjIyLS4xNmwtLjItLjYxYTEuMjYgMS4yNiAwIDAgMC0uOC0uOGwtLjAzLS4wMS0uNTgtLjJhLjI0LjI0IDAgMCAxIDAtLjQ1bC42MS0uMmExLjI2IDEuMjYgMCAwIDAgLjgtLjhsLjE5LS42YS4yNC4yNCAwIDAgMSAuNDYgMGwuMi42YTEuMjYgMS4yNiAwIDAgMCAuOC44Wk04LjA2IDIuOSA4LjEgM0g4YTUgNSAwIDEgMCA0Ljk4IDUuNDYgMS4yNSAxLjI1IDAgMCAwIC45NC41NEE2IDYgMCAxIDEgOC4xIDJhMS4zIDEuMyAwIDAgMC0uMDQuOVpNNi4yNSA3Ljc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptLS4xMSAxLjkyYS41LjUgMCAxIDAtLjc1LjY2IDMuNSAzLjUgMCAwIDAgNS4yMiAwIC41LjUgMCAwIDAtLjc1LS42NiAyLjUgMi41IDAgMCAxLTMuNzIgMFpNMTAuNSA3QS43NS43NSAwIDEgMSA5IDdhLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTcGFya2xlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS4yMyAxLjM1IDE0Ljg4LjI4YS40Mi40MiAwIDAgMC0uOCAwbC0uMzUgMS4wN2EyLjIgMi4yIDAgMCAxLTEuMzggMS40bC0xLjA3LjM1YS40Mi40MiAwIDAgMC0uMjguNC40Mi40MiAwIDAgMCAuMjguNGwuNDMuMTMuNjQuMjFhMi4yIDIuMiAwIDAgMSAxLjQgMS40bC4zNSAxLjA4YS40Mi40MiAwIDAgMCAuOCAwbC4xLS4zMi4yMy0uN1Y1LjdsLjAyLS4wNGEyLjIgMi4yIDAgMCAxIC43LTFsLS4wMS0uMDFjLjItLjE3LjQ1LS4zLjctLjM5bDEuMDgtLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41NCAxLjU0IDAgMCAwLS4zOC0uNjIgMS41OCAxLjU4IDAgMCAwLS42Mi0uMzhsLS43Ny0uMjVhLjMuMyAwIDAgMS0uMi0uMjguMy4zIDAgMCAxIC4wNS0uMTguMy4zIDAgMCAxIC4xNS0uMWwuNzctLjI2YTEuNiAxLjYgMCAwIDAgLjYtLjM4Yy4xOC0uMTcuMy0uMzguMzgtLjYxbC4yNS0uNzdhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVptLTEuMjcgNC4wMmE4IDggMCAxIDEtNi41OC05LjlsLS4yLjA3YTEuNDMgMS40MyAwIDAgMC0uOSAxLjc4IDEuNDIgMS40MiAwIDAgMCAuODguOWwxLjEuMzdhMS4yIDEuMiAwIDAgMSAuNzYuNzZsLjM0IDEuMDdjLjA5LjI2LjI1LjQ5LjQ2LjY2bC4wMy4wMi4wNC4wM2MuMTQuMS4yOS4xNy40NC4yYTEuMyAxLjMgMCAwIDAgLjc1IDEuNzlsLjguMjVhLjU3LjU3IDAgMCAxIC4zNS4zN2wuMjUuNzZhMS4zMSAxLjMxIDAgMCAwIDEuNDguODdaTTEyLjUgNy41YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptLTUgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabS0uNjEgNS4wMWEuNS41IDAgMSAwLS43OC42MyA1IDUgMCAwIDAgNy43OCAwIC41LjUgMCAxIDAtLjc4LS42MyA0IDQgMCAwIDEtNi4yMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3BhcmtsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE1LjIzIDEuMzUgMTQuODguMjhhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41OCAxLjU4IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxIDAtLjU3bC43Ny0uMjVhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVptLTIuMjUgMy44MmExLjMgMS4zIDAgMCAwIC45OC4yIDggOCAwIDEgMS02LjU4LTkuOWwtLjIuMDdhMS40MyAxLjQzIDAgMCAwLS44OC44NUgxMGE3IDcgMCAxIDAgNi43NyA4Ljc4Wk0xMi41IDcuNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJabS01IDBhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0tLjYxIDUuMDFhLjUuNSAwIDEgMC0uNzguNjMgNSA1IDAgMCAwIDcuNzggMCAuNS41IDAgMSAwLS43OC0uNjMgNCA0IDAgMCAxLTYuMjIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU3BhcmtsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3BhcmtsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQuNzQgNS40NmEyLjg0IDIuODQgMCAwIDEgMS44IDEuOGwuNDUgMS4zOGEuNTQuNTQgMCAwIDAgMS4wMS4wM2wuMDEtLjAyLjA1LS4xNS40LTEuMjRhMi44NCAyLjg0IDAgMCAxIDEuMy0xLjU3Yy4xNi0uMS4zMi0uMTcuNS0uMjNsMS4zOC0uNDRhLjU0LjU0IDAgMCAwIDAtMS4wM2gtLjAzbC0xLjM4LS40NWEyLjg0IDIuODQgMCAwIDEtMS44LTEuOEwxOCAuMzZhLjU0LjU0IDAgMCAwLTEuMDMgMGwtLjQ1IDEuMzgtLjAxLjAzYTIuODQgMi44NCAwIDAgMS0xLjc2IDEuNzZsLTEuMzguNDVhLjU0LjU0IDAgMCAwIDAgMS4wM2wxLjM4LjQ1Wm05LjA0IDQuNzUtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS4xLjAzLS42Ny4yMWEuMy4zIDAgMCAwLS4yLjI5LjMuMyAwIDAgMCAuMi4yOGwuNzYuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjUuNzdhLjMuMyAwIDAgMCAuMTIuMTQuMy4zIDAgMCAwIC40Ni0uMTRsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMiAyMi4wMWExMCAxMCAwIDAgMCA5LjgtOC4wNCAxLjMgMS4zIDAgMCAxLTEuNTQtLjg2bC0uMjUtLjc2YS41Ny41NyAwIDAgMC0uMzYtLjM2bC0uNzgtLjI2YTEuMyAxLjMgMCAwIDEtLjctMS44OCAxLjU1IDEuNTUgMCAwIDEtMi4xNC0uOWwtLjQ0LTEuMzhhMS44MSAxLjgxIDAgMCAwLTEuMTYtMS4xNmwtMS40LS40NmExLjU0IDEuNTQgMCAwIDEgLjAyLTIuOTJsMS4zNi0uNDRjLjE0LS4wNS4yOC0uMTEuNC0uMkExMCAxMCAwIDEgMCAxMiAyMlptLTQuNi03LjM1Yy4zMy0uMjYuOC0uMiAxLjA2LjEyYTQuNSA0LjUgMCAwIDAgNy4wNyAwIC43NS43NSAwIDEgMSAxLjE4Ljk0IDYgNiAwIDAgMS05LjQzIDAgLjc1Ljc1IDAgMCAxIC4xMy0xLjA2Wk03Ljc2IDEwYTEuMjUgMS4yNSAwIDEgMSAyLjUgMCAxLjI1IDEuMjUgMCAwIDEtMi41IDBabTYgMGExLjI1IDEuMjUgMCAxIDEgMi41IDAgMS4yNSAxLjI1IDAgMCAxLTIuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3BhcmtsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE2LjA5IDYuNDFhMi44NCAyLjg0IDAgMCAwLTEuMzUtLjk1TDEzLjM2IDVhLjU0LjU0IDAgMCAxIDAtMS4wM2wuNzEtLjIzLjY3LS4yMmEyLjgyIDIuODIgMCAwIDAgMS43Ni0xLjc2bC4wMS0uMDMuNDUtMS4zOGEuNTQuNTQgMCAwIDEgMS4wMyAwbC40NCAxLjM4YTIuODQgMi44NCAwIDAgMCAxLjggMS44bDEuMzguNDQuMDMuMDFhLjU0LjU0IDAgMCAxIDAgMS4wM2wtMS4zOC40NGEyLjg0IDIuODQgMCAwIDAtMS41NyAxLjNjLS4xLjE1LS4xNy4zMi0uMjMuNWwtLjQ1IDEuMzhhLjU0LjU0IDAgMCAxLTEuMDMgMGwtLjQ0LTEuMzhjLS4xLS4zLS4yNS0uNi0uNDUtLjg1Wm03LjcgMy44LS43Ny0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS43Mi44OGwtLjI2LjExLS43Ny4yNWEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC4xMi4xNC4zLjMgMCAwIDAgLjQ2LS4xNGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJabS0zLjA0IDMuNTVjLS4xNS0uMS0uMjctLjIzLS4zNi0uMzhhOC41IDguNSAwIDEgMS04LjAzLTkuODdjLjE4LS4yMi40Mi0uMzkuNy0uNDhsMS4zNS0uNDRjLjE0LS4wNS4yOC0uMTEuNC0uMmExMCAxMCAwIDEgMCA3IDExLjU4IDEuMyAxLjMgMCAwIDEtMS4wNi0uMlpNMTIgMTYuNWE0LjUgNC41IDAgMCAxLTMuNTQtMS43Mi43NS43NSAwIDAgMC0xLjE4LjkzIDYgNiAwIDAgMCA5LjQzIDAgLjc1Ljc1IDAgMCAwLTEuMTgtLjkyQTQuNSA0LjUgMCAwIDEgMTIgMTYuNVpNMTAuMjUgMTBhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFptNiAwYTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNwYXJrbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbW9qaVNwYXJrbGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE3LjMyIDYuMjJhMy4xNiAzLjE2IDAgMCAxIDEuNiAxLjg1bC41IDEuNTNhLjYuNiAwIDAgMCAuNDguNC42LjYgMCAwIDAgLjYzLS4zLjYyLjYyIDAgMCAwIC4wNC0uMWwuNS0xLjUzYTMuMTUgMy4xNSAwIDAgMSAyLTJsMS41My0uNWEuNi42IDAgMCAwIDAtMS4xNGgtLjAzbC0xLjU0LS41YTMuMTUgMy4xNSAwIDAgMS0yLTJMMjAuNTUuNGEuNi42IDAgMCAwLTEuMTQgMGwtLjUgMS41My0uMDEuMDRhMy4xNSAzLjE1IDAgMCAxLTEuOTYgMS45NWwtMS41My41YS42LjYgMCAwIDAtLjEgMS4xLjYuNiAwIDAgMCAuMS4wNWwxLjUzLjVjLjE0LjA0LjI3LjA5LjQuMTVabTQuNzIgNC42MmEuMzYuMzYgMCAwIDEgLjItLjE4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJsLjkyLjNoLjAyYS4zNi4zNiAwIDAgMSAwIC42OGwtLjkyLjNhMS45IDEuOSAwIDAgMC0uOTUuNzFjLS4xLjE1LS4xOS4zMi0uMjUuNWwtLjMuOTFhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS44OSAxLjg5IDAgMCAwLTEuMi0xLjJsLS45Mi0uM2EuMzYuMzYgMCAwIDEtLjItLjVaTTE0IDI2YTEyIDEyIDAgMCAwIDExLjk5LTExLjQyIDEuMzYgMS4zNiAwIDAgMS0yLjI4LS41MWwtLjMtLjkxYS45LjkgMCAwIDAtLjU2LS41N2wtLjk0LS4zYTEuMzYgMS4zNiAwIDAgMS0uODQtMS43IDEuNiAxLjYgMCAwIDEtMi41OC0uN2wtLjUtMS41MmEyLjEgMi4xIDAgMCAwLS41Mi0uODQgMi4xNiAyLjE2IDAgMCAwLS44NC0uNTJsLTEuNTUtLjVhMS42IDEuNiAwIDAgMSAuMDItMy4wM2wxLjUxLS41Yy4zLS4xLjU3LS4yNy44LS40OUExMiAxMiAwIDEgMCAxNCAyNlptMy41LTEzYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWk0xMiAxMS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMy42NyA1LjYzYS43NS43NSAwIDAgMSAxLjA0LjIgMi4yNSAyLjI1IDAgMCAwIC4yNS4zQTUuOTIgNS45MiAwIDAgMCAxNCAxOS41YTUuOTIgNS45MiAwIDAgMCA0LjYyLTIuMTZsLjAxLS4wMWEuNzUuNzUgMCAwIDEgMS4yNC44NGwtLjAxLjAyLS4wMS4wMS0uMDEuMDJhMy44NSAzLjg1IDAgMCAxLS4zNi40M0E3LjQyIDcuNDIgMCAwIDEgMTQgMjFhNy40MiA3LjQyIDAgMCAxLTUuODYtMi44MXYtLjAxaC0uMDFhLjc1Ljc1IDAgMCAxIC4yLTEuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNwYXJrbGUyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTcGFya2xlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTguMTcgNi44M2EzLjE2IDMuMTYgMCAwIDEgLjc2IDEuMjRsLjUgMS41M2EuNi42IDAgMCAwIDEuMTQgMGwuNS0xLjUzYTMuMTUgMy4xNSAwIDAgMSAyLTJsMS41My0uNWEuNi42IDAgMCAwIDAtMS4xNGgtLjAzbC0xLjU0LS41YTMuMTUgMy4xNSAwIDAgMS0yLTJMMjAuNTUuNGEuNi42IDAgMCAwLTEuMTQgMGwtLjUgMS41My0uMDEuMDRhMy4xNSAzLjE1IDAgMCAxLTEuOTUgMS45NWguMDItLjAzbC0xLjUzLjVhLjYuNiAwIDAgMCAwIDEuMTVsMS41My41Yy40Ny4xNS45LjQxIDEuMjQuNzZabTguNjUgMy41My45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMi0uNTgtLjEtLjM0YTEuOSAxLjkgMCAwIDAtMS4yLTEuMmwtLjkyLS4zYS4zNi4zNiAwIDAgMSAwLS42OGwuOTItLjNjLjItLjA3LjQtLjE4LjU3LS4zMmwuMDctLjA2YTEuODcgMS44NyAwIDAgMCAuNTQtLjgybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJabS0yLjAzIDQuNjNhMS4zNiAxLjM2IDAgMCAxLS4zMy0uMSAxMC41IDEwLjUgMCAxIDEtOS41My0xMS4zNWMuMDYtLjAyLjExLS4wNS4xNy0uMDZsMS41MS0uNWMuMy0uMS41Ny0uMjcuOC0uNDlBMTIgMTIgMCAxIDAgMjYgMTQuNmExLjM2IDEuMzYgMCAwIDEtMS4yLjRaTTEwLjUgMTNhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTguNS0xLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaTTguMzMgMTcuMTNhLjc1Ljc1IDAgMCAxIDEuMDQuMiAyLjI1IDIuMjUgMCAwIDAgLjI1LjNBNS45MiA1LjkyIDAgMCAwIDE0IDE5LjVhNS45MiA1LjkyIDAgMCAwIDQuNjItMi4xNmwuMDEtLjAxYS43NS43NSAwIDAgMSAxLjI0Ljg0bC0uMDEuMDItLjAyLjAzYTMuODUgMy44NSAwIDAgMS0uMzYuNDNBNy40MiA3LjQyIDAgMCAxIDE0IDIxYTcuNDIgNy40MiAwIDAgMS01Ljg2LTIuODF2LS4wMWgtLjAxYS43NS43NSAwIDAgMSAuMi0xLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTcGFya2xlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTcGFya2xlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xOCA1LjU2YS42Ny42NyAwIDAgMCAuNDQuNTdsMS42OS41NWEzLjQ3IDMuNDcgMCAwIDEgMi4yIDIuMmwuNTQgMS42OGEuNjYuNjYgMCAwIDAgMS4yNC4wNXYtLjAybC4wMi0uMDMuMTItLjM2LjQyLTEuMzNhMy40NyAzLjQ3IDAgMCAxIDIuMi0yLjJsMS42OS0uNTRhLjY3LjY3IDAgMCAwIDAtMS4yNWwtLjA0LS4wMS0xLjY4LS41NWEzLjQ3IDMuNDcgMCAwIDEtMi4yLTIuMkwyNC4xLjQ1YS42Ni42NiAwIDAgMC0xLjI1IDBsLS41NSAxLjY5LS4wMS4wNGEzLjQ3IDMuNDcgMCAwIDEtMi4xNSAyLjE1bC0xLjY5LjU1YS42Ny42NyAwIDAgMC0uNDQuNjlabTkuOTMgNi4zYy4xOS0uMi4zMy0uNDQuNDEtLjdsLjMtLjkyYS4zNi4zNiAwIDAgMSAuNjggMGwuMy45MmExLjg5IDEuODkgMCAwIDAgMS4yIDEuMmwuOTIuM2guMDJhLjM2LjM2IDAgMCAxIDAgLjY4bC0uOTIuM2ExLjkgMS45IDAgMCAwLS45NC43Yy0uMS4xNS0uMi4zMi0uMjYuNWwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS44OSAxLjg5IDAgMCAwLTEuMi0xLjJsLS45Mi0uM2EuMzYuMzYgMCAwIDEtLjIzLS40NS4zNi4zNiAwIDAgMSAuMjMtLjI0bC45Mi0uM2ExLjkgMS45IDAgMCAwIC43Ny0uNVpNMTYgMzBhMTQgMTQgMCAxIDEgNC4xNi0yNy4zN2MtLjE2LjExLS4zMy4yLS41Mi4yN2wtMS42Ni41NGEyLjE4IDIuMTggMCAwIDAtMS40NSAxLjcyIDIuMTYgMi4xNiAwIDAgMCAxLjQyIDIuMzdsMS43MS41NmExLjk3IDEuOTcgMCAwIDEgMS4yNCAxLjI1bC41NSAxLjY3YTIuMTggMi4xOCAwIDAgMCAyLjAzIDEuNDhjLjQ0IDAgLjg3LS4xMiAxLjIzLS4zN2ExLjg2IDEuODYgMCAwIDAgMS4wMyAyLjYzbC45NS4zLjE1LjFjLjA0LjA0LjA3LjEuMS4xNWwuMy45MWExLjg4IDEuODggMCAwIDAgMS40OCAxLjI2IDEuODYgMS44NiAwIDAgMCAxLjIzLS4yM0ExNCAxNCAwIDAgMSAxNiAzMFptLTQtMTVhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0xMC0yYTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFpNOS41NSAxOS4xYTEgMSAwIDAgMC0uNDQgMS4zNXYuMDJhMi40NSAyLjQ1IDAgMCAwIC4xLjE4bC4zLjQyYy4yNS4zNC42My43OCAxLjE4IDEuMjFBOC4yOCA4LjI4IDAgMCAwIDE2IDI0YzIuNSAwIDQuMjEtLjg0IDUuMzEtMS43MmE2Ljc2IDYuNzYgMCAwIDAgMS41NS0xLjc2bC4wMS0uMDMuMDEtLjAydi0uMDFoLjAxdi0uMDFhMSAxIDAgMCAwLTEuNzgtLjlsLS4wNC4wNi0uMTcuMjZjLS4xNy4yMi0uNDQuNTMtLjg0Ljg1QTYuMyA2LjMgMCAwIDEgMTYgMjJjLTIgMC0zLjI5LS42Ni00LjA2LTEuMjhhNC43NiA0Ljc2IDAgMCAxLTEuMDUtMS4xNyAxIDEgMCAwIDAtMS4zNC0uNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNwYXJrbGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTcGFya2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjEuNDkgNy41MWEzLjQ5IDMuNDkgMCAwIDEgLjg0IDEuMzZsLjU0IDEuNjlhLjY2LjY2IDAgMCAwIDEuMjYgMGwuNTQtMS42OWEzLjQ3IDMuNDcgMCAwIDEgMi4yLTIuMmwxLjY5LS41NGEuNjcuNjcgMCAwIDAgMC0xLjI1bC0uMDQtLjAxLTEuNjgtLjU1YTMuNDcgMy40NyAwIDAgMS0yLjItMi4yTDI0LjEuNDVhLjY2LjY2IDAgMCAwLTEuMjUgMGwtLjU1IDEuNjktLjAxLjA0YTMuNDcgMy40NyAwIDAgMS0yLjE1IDIuMTVsLTEuNjkuNTVhLjY3LjY3IDAgMCAwIDAgMS4yNWwxLjY5LjU1Yy41MS4xNy45OC40NiAxLjM2Ljg0Wm05LjMzIDQuODUuOTIuM2guMDJhLjM2LjM2IDAgMCAxIDAgLjY4bC0uOTIuM2ExLjkgMS45IDAgMCAwLS45NC43Yy0uMS4xNS0uMi4zMi0uMjYuNWwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS44OSAxLjg5IDAgMCAwLS41Mi0uOCAxLjkgMS45IDAgMCAwLS42OC0uNGwtLjkyLS4zYS4zNi4zNiAwIDAgMSAwLS42OGwuOTItLjNhMS44OSAxLjg5IDAgMCAwIDEuMTgtMS4ybC4xMS0uMzUuMTktLjU3YS4zNi4zNiAwIDAgMSAuNjggMGwuMy45MmExLjg5IDEuODkgMCAwIDAgMS4yIDEuMlpNMTcuMDUgNC4wNWExMiAxMiAwIDEgMCAxMC45IDEzLjEyIDEuODYgMS44NiAwIDAgMCAyIC4wNyAxNCAxNCAwIDEgMS05Ljc5LTE0LjYxYy0uMTYuMTEtLjMzLjItLjUyLjI3bC0xLjY2LjU0Yy0uMzYuMTItLjY4LjMzLS45My42Wk0xNCAxM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTYgMmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTkuNTUgMTkuMWExIDEgMCAwIDEgMS4zNC40NWwuMDQuMDYuMTcuMjZjLjE3LjIyLjQ0LjUzLjg0Ljg1QTYuMyA2LjMgMCAwIDAgMTYgMjJjMiAwIDMuMjktLjY2IDQuMDYtMS4yOGE0Ljc2IDQuNzYgMCAwIDAgMS4wNS0xLjE3IDEgMSAwIDAgMSAxLjc4Ljl2LjAybC0uMDIuMDItLjAxLjAzYTMuNzYgMy43NiAwIDAgMS0uMzYuNTVjLS4yNi4zNC0uNjQuNzgtMS4xOSAxLjIxQTguMjggOC4yOCAwIDAgMSAxNiAyNGMtMi41IDAtNC4yMS0uODQtNS4zMS0xLjcyYTYuNzYgNi43NiAwIDAgMS0xLjU3LTEuOHYtLjAySDkuMXYtLjAxYTEgMSAwIDAgMSAuNDQtMS4zNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU3BhcmtsZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3BhcmtsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzIuODMgMTIuMTFhNS4zNiA1LjM2IDAgMCAwLTIuNTQtMS44bC0yLjYtLjg1YTEuMDMgMS4wMyAwIDAgMSAwLTEuOTRsMi42LS44NGE1LjM2IDUuMzYgMCAwIDAgMy4zMi0zLjMzbC4wMi0uMDYuODUtMi42YTEuMDMgMS4wMyAwIDAgMSAxLjk0IDBsLjg0IDIuNmE1LjM2IDUuMzYgMCAwIDAgMy40IDMuMzlsMi42Ljg0LjA1LjAyYTEuMDMgMS4wMyAwIDAgMSAwIDEuOTRsLTIuNi44NGE1LjM2IDUuMzYgMCAwIDAtMy40IDMuNGwtLjg0IDIuNi0uMDMuMDZhMS4wMyAxLjAzIDAgMCAxLTEuOS0uMDdsLS44Ni0yLjZhNS4zNSA1LjM1IDAgMCAwLS44NS0xLjZabTYuMjcgNy4wN2EuNTQuNTQgMCAwIDAtLjA5LjIuNTQuNTQgMCAwIDAgLjM1LjY0bDEuMzguNDVhMi44NCAyLjg0IDAgMCAxIDEuOCAxLjhsLjQ1IDEuMzhhLjU0LjU0IDAgMCAwIDEgLjA0di0uMDFhLjUuNSAwIDAgMCAuMDItLjA0bC40NS0xLjM4YTIuODQgMi44NCAwIDAgMSAxLjgtMS44bDEuMzgtLjQ0YS41NC41NCAwIDAgMCAwLTEuMDNoLS4wM2wtMS4zOC0uNDVhMi44NCAyLjg0IDAgMCAxLTEuOC0xLjhMNDQgMTUuMzZhLjU0LjU0IDAgMCAwLTEuMDMgMGwtLjQ1IDEuMzhhMi44NCAyLjg0IDAgMCAxLTEuNzcgMS44bC0xLjM4LjQ0Yy0uMS4wNC0uMi4xMS0uMjYuMlpNMjQgNDRhMjAgMjAgMCAxIDEgNS42MS0zOS4ybC0yLjU0LjgyYTMuMDQgMy4wNCAwIDAgMC0xLjkzIDMuNzkgMy4wMyAzLjAzIDAgMCAwIDEuODggMS45M2wyLjY1Ljg3YTMuMzcgMy4zNyAwIDAgMSAyLjExIDIuMTJsLjg1IDIuNmEzLjA1IDMuMDUgMCAwIDAgMi44NSAyLjA2Yy42MiAwIDEuMjItLjE4IDEuNzMtLjUzYTIuNTQgMi41NCAwIDAgMCAxLjQ5IDMuNDRsMS40Mi40NmEuODQuODQgMCAwIDEgLjUyLjUzbC40NSAxLjM3YTIuNTcgMi41NyAwIDAgMCAyLjAyIDEuNzFjLjI3LjA0LjUzLjA0LjggMEEyMCAyMCAwIDAgMSAyNCA0NFptLTYuNS0yMmEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMzMgMTkuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMFpNMTguNDUgMzQuNjhjMS43MS45IDMuNjIgMS4zNCA1LjU1IDEuMzJhMTEuNzIgMTEuNzIgMCAwIDAgOS44Mi01LjEgMS4yNSAxLjI1IDAgMSAwLTIuMTMtMS4zQTkuMjEgOS4yMSAwIDAgMSAyNCAzMy41YTkuMjIgOS4yMiAwIDAgMS03LjY5LTMuOSAxLjI1IDEuMjUgMCAxIDAtMi4xMyAxLjNjMS4xIDEuNiAyLjU2IDIuOSA0LjI3IDMuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVNwYXJrbGU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTcGFya2xlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMzIuNCAxMS42YTUuMzYgNS4zNiAwIDAgMSAxLjI4IDIuMTFsLjg1IDIuNmExLjAzIDEuMDMgMCAwIDAgMS45NCAwbC44NS0yLjZhNS4zNiA1LjM2IDAgMCAxIDMuNC0zLjM5bDIuNi0uODRhMS4wMyAxLjAzIDAgMCAwIDAtMS45NGwtLjA2LS4wMi0yLjYtLjg0YTUuMzYgNS4zNiAwIDAgMS0zLjQtMy40bC0uODQtMi42YTEuMDMgMS4wMyAwIDAgMC0xLjk0IDBsLS44NSAyLjYtLjAyLjA3YTUuMzYgNS4zNiAwIDAgMS0zLjMyIDMuMzNsLTIuNi44NGExLjAzIDEuMDMgMCAwIDAgMCAxLjk0bDIuNi44NWMuOC4yNiAxLjUxLjcgMi4xIDEuM1ptMTMuODMgNi45NCAxLjM4LjQ0LjAzLjAxYS41NC41NCAwIDAgMSAwIDEuMDNsLTEuMzguNDRhMi44NCAyLjg0IDAgMCAwLTEuOCAxLjhsLS40NSAxLjM4YS41NC41NCAwIDAgMS0xLjAzLjAxbC0uNDQtMS4zOGEyLjg0IDIuODQgMCAwIDAtMS4zNi0xLjYxdi0uMDJhMi44NCAyLjg0IDAgMCAwLS40NC0uMThMMzkuMzYgMjBhLjU0LjU0IDAgMCAxIDAtMS4wM2wxLjM4LS40NGEyLjg0IDIuODQgMCAwIDAgMS43Ny0xLjhsLjQ1LTEuMzhhLjU0LjU0IDAgMCAxIDEuMDMgMGwuNDQgMS4zOGEyLjgzIDIuODMgMCAwIDAgMS44IDEuOFpNMjUuNjggNi41OGExNy41IDE3LjUgMCAxIDAgMTUuNzkgMTguNDEgMi41NyAyLjU3IDAgMCAwIDEuNjQuOThjLjI3LjA0LjUzLjA0LjggMEEyMCAyMCAwIDEgMSAyOS42IDQuOGwtMi41NC44MmMtLjU1LjE5LTEuMDMuNTItMS4zOS45NlpNMjAgMTkuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpNMzAuNSAyMmEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVpNMTguNDUgMzQuNjhjMS43MS45IDMuNjIgMS4zNCA1LjU1IDEuMzJhMTEuNzIgMTEuNzIgMCAwIDAgOS44Mi01LjEgMS4yNSAxLjI1IDAgMSAwLTIuMTMtMS4zQTkuMjEgOS4yMSAwIDAgMSAyNCAzMy41YTkuMjIgOS4yMiAwIDAgMS03LjY5LTMuOSAxLjI1IDEuMjUgMCAxIDAtMi4xMyAxLjNjMS4xIDEuNiAyLjU2IDIuOSA0LjI3IDMuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBFbW9qaVN1cnByaXNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTdXJwcmlzZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNS41LS41YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC4yNSAzYTEuNzUgMS43NSAwIDEgMC0zLjUgMCAxLjc1IDEuNzUgMCAwIDAgMy41IDBabS43NS0zYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU3VycHJpc2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTdXJwcmlzZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSA5LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm00LjI1IDNhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFptLjc1LTNhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wm0tNyA4YTcgNyAwIDEgMSAxNCAwIDcgNyAwIDAgMS0xNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRW1vamlTdXJwcmlzZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vtb2ppU3VycHJpc2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDExYTIuMjUgMi4yNSAwIDEgMCAwIDQuNSAyLjI1IDIuMjUgMCAwIDAgMC00LjVaTTkgOC43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVtb2ppU3VycHJpc2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRW1vamlTdXJwcmlzZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wm0wIDkuNWEyLjI1IDIuMjUgMCAxIDEgMCA0LjUgMi4yNSAyLjI1IDAgMCAxIDAtNC41Wk05IDguNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptNiAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbmdpbmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbmdpbmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuNSAyLjVjLjI4IDAgLjUuMjIuNS41djFoMlYzYS41LjUgMCAwIDEgMSAwdjFoMi4yYTEgMSAwIDAgMSAuODkuNTVMMTQuOCA2SDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0xLjJsLS43MSAxLjQ1YTEgMSAwIDAgMS0uOS41NUg3LjcxYTEgMSAwIDAgMS0uNzEtLjNsLTIuNDEtMi40QTIgMiAwIDAgMSA0IDEyLjg3VjEwSDN2Mi41YS41LjUgMCAwIDEtMSAwdi02YS41LjUgMCAwIDEgMSAwVjloMVY2YzAtMS4xLjktMiAyLTJoMVYzYzAtLjI4LjIyLS41LjUtLjVabTAgNC41YS41LjUgMCAwIDAtLjUuNVYxMGMwIDEuMS45IDIgMiAyaDUuNWEuNS41IDAgMCAwIDAtMUgxMVY3LjVhLjUuNSAwIDAgMC0xIDBWMTFIOWExIDEgMCAwIDEtMS0xVjcuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRW5naW5lMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VuZ2luZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTggM2EuNS41IDAgMCAwLTEgMHYxSDZhMiAyIDAgMCAwLTIgMnYzSDNWNi41YS41LjUgMCAwIDAtMSAwdjZhLjUuNSAwIDAgMCAxIDBWMTBoMXYyLjg4YTIgMiAwIDAgMCAuNTkgMS40MUw3IDE2LjcxYTEgMSAwIDAgMCAuNy4yOWg1LjVhMSAxIDAgMCAwIC44OS0uNTVMMTQuOCAxNUgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtMS4ybC0uNzEtMS40NWExIDEgMCAwIDAtLjktLjU1SDExVjNhLjUuNSAwIDAgMC0xIDB2MUg4VjNaTTYgNWg3LjJsLjcxIDEuNDVhMSAxIDAgMCAwIC45LjU1SDE2YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxaC0xLjJhMSAxIDAgMCAwLS44OS41NUwxMy4yIDE2SDcuNzFsLTIuNDItMi40MWExIDEgMCAwIDEtLjI5LS43MVY2YTEgMSAwIDAgMSAxLTFabTEuNSAyYy4yOCAwIC41LjIyLjUuNVYxMGExIDEgMCAwIDAgMSAxaDFWNy41YS41LjUgMCAwIDEgMSAwVjExaDMuNWEuNS41IDAgMCAxIDAgMUg5YTIgMiAwIDAgMS0yLTJWNy41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFbmdpbmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbmdpbmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuNzUgM2MuNDEgMCAuNzUuMzQuNzUuNzVWNWgyVjMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwVjVoMi43NWMuMyAwIC41OC4xOS43LjQ3bC44IDIuMDNoMUEyLjc1IDIuNzUgMCAwIDEgMjIgMTAuMjV2NS41YTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVoLTFsLS44IDIuMDNhLjc1Ljc1IDAgMCAxLS43LjQ3aC03LjVjLS4yIDAtLjQtLjA5LS41NS0uMjRMNS43NCAxNy42QTIuNzUgMi43NSAwIDAgMSA1IDE1LjdWMTIuNUgzLjV2My43NWEuNzUuNzUgMCAwIDEtMS41IDB2LTguNWEuNzUuNzUgMCAwIDEgMS41IDBWMTFINVY3Ljc1QTIuNzUgMi43NSAwIDAgMSA3Ljc1IDVIOVYzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVabS43NSA2Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYyLjVBMi43NSAyLjc1IDAgMCAwIDExLjc1IDE1aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTRWOS43NWEuNzUuNzUgMCAwIDAtMS41IDB2My43NWgtLjc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVuZ2luZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFbmdpbmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05Ljc1IDljLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWguNzVWOS43NWEuNzUuNzUgMCAwIDEgMS41IDB2My43NWg0LjI1YS43NS43NSAwIDAgMSAwIDEuNWgtNi41QTIuNzUgMi43NSAwIDAgMSA5IDEyLjI1di0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptMC02Yy40MSAwIC43NS4zNC43NS43NVY1aDJWMy43NWEuNzUuNzUgMCAwIDEgMS41IDBWNWgyLjc1Yy4zIDAgLjU4LjE5LjcuNDdsLjggMi4wM2gxQTIuNzUgMi43NSAwIDAgMSAyMiAxMC4yNXY1LjVhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NWgtMWwtLjggMi4wM2EuNzUuNzUgMCAwIDEtLjcuNDdoLTcuNWMtLjIgMC0uNC0uMDktLjU1LS4yNEw1Ljc0IDE3LjZBMi43NSAyLjc1IDAgMCAxIDUgMTUuN1YxMi41SDMuNXYzLjc1YS43NS43NSAwIDAgMS0xLjUgMHYtOC41YS43NS43NSAwIDAgMSAxLjUgMFYxMUg1VjcuNzVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNUg5VjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTIgMy41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXY3Ljk2YzAgLjMyLjEyLjYyLjM0Ljg1bDIuNzQgMi45NGg2LjY2bC44MS0yLjAzYS43NS43NSAwIDAgMSAuNy0uNDdoMS41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNS41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMS41YS43NS43NSAwIDAgMS0uNy0uNDdsLS44LTIuMDNoLTguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVxdWFsQ2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXF1YWxDaXJjbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTMuNSA3YS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAgMCAxaDdabTAgM2EuNS41IDAgMCAwIDAtMWgtN2EuNS41IDAgMCAwIDAgMWg3WlwiXSk7XG5leHBvcnQgY29uc3QgRXF1YWxDaXJjbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXF1YWxDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMy41IDlhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMCAwIDFoN1ptMCAzYS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAgMCAxaDdabTQuNS0yYTggOCAwIDEgMC0xNiAwIDggOCAwIDAgMCAxNiAwWm0tOC03YTcgNyAwIDEgMSAwIDE0IDcgNyAwIDAgMSAwLTE0WlwiXSk7XG5leHBvcnQgY29uc3QgRXF1YWxDaXJjbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbENpcmNsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTJhMTAgMTAgMCAxIDAtMjAgMCAxMCAxMCAwIDAgMCAyMCAwWm0tNS43NS0xLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVoOC41YS43NS43NSAwIDAgMSAwIDEuNVptMCA0LjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVoOC41YS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVxdWFsQ2lyY2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VxdWFsQ2lyY2xlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuMjYgMTAuNWEuNzUuNzUgMCAwIDAgMC0xLjVINy43N2EuNzUuNzUgMCAwIDAgMCAxLjVoOC40OVptMCA0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDcuNzdhLjc1Ljc1IDAgMCAwIDAgMS41aDguNDlaTTIyIDEyYTEwIDEwIDAgMSAwLTIwIDAgMTAgMTAgMCAwIDAgMjAgMFpNMTIgMy41YTguNSA4LjUgMCAxIDEgMCAxNyA4LjUgOC41IDAgMCAxIDAtMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBFcXVhbE9mZjEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VxdWFsT2ZmMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xLjg1IDEuMTVhLjUuNSAwIDEgMC0uNy43TDIuNzkgMy41aC0uNTRhLjc1Ljc1IDAgMCAwIDAgMS41aDIuMDRsMiAySDIuMjVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNTRsMi4zNiAyLjM1YS41LjUgMCAwIDAgLjctLjdsLTktOVpNOS4xMiA3bDEuMjIgMS4yMmMuMS0uMTMuMTYtLjMuMTYtLjQ3QS43NS43NSAwIDAgMCA5Ljc1IDdoLS42M1ptLTMuNS0zLjVMNy4xMiA1aDIuNjNhLjc1Ljc1IDAgMCAwIDAtMS41SDUuNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFcXVhbE9mZjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbE9mZjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTEuODUgMS4xNWEuNS41IDAgMSAwLS43LjdMMy4yOSA0SDJhLjUuNSAwIDAgMCAwIDFoMi4zbDIgMkgyYS41LjUgMCAwIDAgMCAxaDUuM2wyLjg1IDIuODVhLjUuNSAwIDAgMCAuNy0uN2wtOS05Wk05LjEyIDdsLjk5Ljk5QS41LjUgMCAwIDAgMTAgN2gtLjg4Wm0tMy0zIDEgMUgxMGEuNS41IDAgMCAwIDAtMUg2LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgRXF1YWxPZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbE9mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTAuMyAxMSAzLjg1IDMuODVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDMuNzkgNC41SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNTRsMy41IDMuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg3LjU0Wm0xLjMyLTEuNSAxLjUgMS41aC4xM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNjNabS01LTVMOC4xMiA2aDUuMTNhLjc1Ljc1IDAgMCAwIDAtMS41SDYuNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFcXVhbE9mZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbE9mZjE2UmVndWxhcicsIFwiMTZcIiwgW1wibTEwLjMgMTEgMy44NSAzLjg1YS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN0w0LjI5IDVIMi41YS41LjUgMCAwIDAgMCAxaDIuOGw0IDRIMi41YS41LjUgMCAwIDAgMCAxaDcuOFptMS44Mi0xIDEgMWguMzhhLjUuNSAwIDAgMCAwLTFoLTEuMzhabS01LTUgMSAxaDUuMzhhLjUuNSAwIDAgMCAwLTFINy4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVxdWFsT2ZmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXF1YWxPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNS43OSA2LjVIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41NGwzLjUgMy41SDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNTRsNC44NiA0Ljg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMC43NyA5LjM1IDEuNSAxLjVoMS4xM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNjNabS01LTUgMS41IDEuNWg2LjEzYS43NS43NSAwIDAgMCAwLTEuNUg4LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgRXF1YWxPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXF1YWxPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDYuMjkgN0gzLjVhLjUuNSAwIDAgMCAwIDFoMy44bDQgNEgzLjVhLjUuNSAwIDAgMCAwIDFoOC44bDQuODUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTQuMTIgMTJsMSAxaDEuMzhhLjUuNSAwIDAgMCAwLTFoLTIuMzhabS01LTUgMSAxaDYuMzhhLjUuNSAwIDAgMCAwLTFIOS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVxdWFsT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXF1YWxPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDYuOTQgOEg0YTEgMSAwIDAgMCAwIDJoNC45NGw0IDRINGExIDEgMCAxIDAgMCAyaDEwLjk0bDUuNzggNS43OGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMjAgMTRoLTIuODJsMiAySDIwYTEgMSAwIDEgMCAwLTJabS04LjgyLTYgMiAySDIwYTEgMSAwIDEgMCAwLTJoLTguODJaXCJdKTtcbmV4cG9ydCBjb25zdCBFcXVhbE9mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcXVhbE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDYuOTQgOEgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjY5bDUgNUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxMS4xOWw1Ljc4IDUuNzhhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJaTTIwLjI1IDE0LjVoLTIuNTdsMS41IDEuNWgxLjA3YS43NS43NSAwIDAgMCAwLTEuNVpNMTEuMTggOGwxLjUgMS41aDcuNTdhLjc1Ljc1IDAgMCAwIDAtMS41aC05LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJhc2VyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMS4yIDIuNDRhMS41IDEuNSAwIDAgMSAyLjEyIDBsNC4yNCA0LjI0YTEuNSAxLjUgMCAwIDEgMCAyLjEyTDkuMzYgMTdoNS4xNGEuNS41IDAgMSAxIDAgMUg3LjgyYTEuNSAxLjUgMCAwIDEtMS4xNC0uNDRsLTQuMjQtNC4yNGExLjUgMS41IDAgMCAxIDAtMi4xMmw4Ljc2LTguNzZaTTkuNzggMTUuMTdsLTQuOTUtNC45NS0xLjY5IDEuNjlhLjUuNSAwIDAgMCAwIC43bDQuMjUgNC4yNWMuMi4yLjUuMi43IDBsMS43LTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMS4yIDIuNDRhMS41IDEuNSAwIDAgMSAyLjEyIDBsNC4yNCA0LjI0YTEuNSAxLjUgMCAwIDEgMCAyLjEyTDkuMzYgMTdoNS4xNGEuNS41IDAgMSAxIDAgMUg3LjgyYTEuNSAxLjUgMCAwIDEtMS4xNC0uNDRsLTQuMjQtNC4yNGExLjUgMS41IDAgMCAxIDAtMi4xMmw4Ljc2LTguNzZabTEuNDEuN2EuNS41IDAgMCAwLS43IDBMNS41MyA5LjUybDQuOTUgNC45NSA2LjM2LTYuMzZhLjUuNSAwIDAgMCAwLS43MWwtNC4yNC00LjI0Wk05Ljc4IDE1LjE4bC00Ljk1LTQuOTUtMS42OSAxLjY5YS41LjUgMCAwIDAgMCAuN2w0LjI1IDQuMjVjLjIuMi41LjIuNyAwbDEuNy0xLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE1Ljg3IDIuNjcgNC45NyA0Ljk3Yy44OC44OC44OCAyLjMgMCAzLjE4bC04LjY4IDguNjhoNi4xYy4zNyAwIC42OS4yOC43NC42NXYuMWMwIC4zOC0uMjguNy0uNjQuNzRsLS4xLjAxSDkuODNhMi4yNCAyLjI0IDAgMCAxLTEuNzEtLjY1bC00Ljk3LTQuOTdhMi4yNSAyLjI1IDAgMCAxIDAtMy4xOGw5LjUzLTkuNTNjLjg4LS44OCAyLjMtLjg4IDMuMTggMFpNMTEuNyAxNy43NiA1Ljc0IDExLjhsLTEuNSAxLjQ3Yy0uMy4zLS4zLjc3IDAgMS4wNmw0Ljk0IDQuOTVjLjMuMjguNzcuMjggMS4wNi0uMDJsMS40Ni0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJhc2VyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTUuODcgMi42NyA0Ljk3IDQuOTdjLjg4Ljg4Ljg4IDIuMyAwIDMuMThsLTguNjggOC42OGg2LjFjLjM3IDAgLjY5LjI4Ljc0LjY1di4xYzAgLjM4LS4yOC43LS42NC43NGwtLjEuMDFIOS44M2EyLjI0IDIuMjQgMCAwIDEtMS43MS0uNjVsLTQuOTctNC45N2EyLjI1IDIuMjUgMCAwIDEgMC0zLjE4bDkuNTMtOS41M2MuODgtLjg4IDIuMy0uODggMy4xOCAwWm0tMTAuMTYgOS4xLTEuNDkgMS40OWMtLjMuMjktLjMuNzYgMCAxLjA2bDQuOTcgNC45NmMuMTUuMTUuMzQuMjIuNTMuMjJoLjA3YS43NS43NSAwIDAgMCAuNDYtLjIybDEuNDktMS40OC02LjAzLTYuMDNabTguMDQtOC4wNEw2Ljc3IDEwLjdsNi4wMyA2LjAzIDYuOTgtNi45OGMuMjktLjMuMjktLjc3IDAtMS4wNkwxNC44IDMuNzNhLjc1Ljc1IDAgMCAwLTEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlck1lZGl1bTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlck1lZGl1bTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi40NCAxMS4yYTEuNSAxLjUgMCAwIDAgMCAyLjEybDQuMjQgNC4yNGExLjUgMS41IDAgMCAwIDIuMTIgMGwuNzItLjcyYTUuNDYgNS40NiAwIDAgMS0uMzctMS4wNEw4LjEgMTYuODZhLjUuNSAwIDAgMS0uNzEgMEwzLjE1IDEyLjZhLjUuNSAwIDAgMSAwLS43bDEuNjktMS43TDkgMTQuMzlhNS41IDUuNSAwIDAgMSA3Ljg0LTQuODZsLjcyLS43MmExLjUgMS41IDAgMCAwIDAtMi4xMmwtNC4yNC00LjI0YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDIuNDQgMTEuMlpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlck1lZGl1bTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJNZWRpdW0yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjQ0IDExLjJhMS41IDEuNSAwIDAgMCAwIDIuMTJsNC4yNCA0LjI0YTEuNSAxLjUgMCAwIDAgMi4xMiAwbC43Mi0uNzJhNS40NiA1LjQ2IDAgMCAxLS4zNy0xLjA0TDguMSAxNi44NmEuNS41IDAgMCAxLS43MSAwTDMuMTUgMTIuNmEuNS41IDAgMCAxIDAtLjdsMS42OS0xLjdMOSAxNC4zOWMuMDEtLjQzLjA3LS44NC4xNy0xLjI0TDUuNTQgOS41bDYuMzctNi4zNmMuMi0uMi41LS4yLjcgMGw0LjI1IDQuMjRjLjIuMi4yLjUxIDAgLjdMMTUuOCA5LjE2Yy4zNi4xLjcxLjIyIDEuMDQuMzdsLjcyLS43MmExLjUgMS41IDAgMCAwIDAtMi4xMmwtNC4yNC00LjI0YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDIuNDQgMTEuMlpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlck1lZGl1bTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlck1lZGl1bTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNjUgMi42NGEyLjI1IDIuMjUgMCAwIDEgMy4yLjAybDQuOSA1Yy44Ni44OS44NiAyLjMgMCAzLjE3bC0uNy43YTYuNSA2LjUgMCAwIDAtOS4wNCA1LjU1TDUuNjQgMTEuNyA0LjEgMTMuMmMtLjMuMy0uMy43OCAwIDEuMDdsNS4xIDVjLjMuMy43Ny4zIDEuMDYgMGwuOC0uODFjLjA5LjU4LjI1IDEuMTMuNDggMS42NWwtLjIyLjIyYy0uODcuODgtMi4yOS44OS0zLjE3LjAybC01LjEtNS4wMWMtLjktLjg4LS45LTIuMzIgMC0zLjJsOS42LTkuNTFaTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAuMDEgMTAuOTlBNS41IDUuNSAwIDAgMSAxNy41IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyTWVkaXVtMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlck1lZGl1bTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1Ljg0IDIuNjZjLS44Ny0uODktMi4zLS45LTMuMTktLjAybC05LjYgOS41Yy0uODkuODktLjg5IDIuMzMgMCAzLjIxbDUuMSA1Yy45Ljg4IDIuMzEuODcgMy4xOC0uMDFsLjIyLS4yMmE2LjQ1IDYuNDUgMCAwIDEtLjQ4LTEuNjVsLS44LjgxYy0uMy4zLS43Ny4zLTEuMDYgMGwtNS4xLTVhLjc1Ljc1IDAgMCAxIDAtMS4wN2wxLjUzLTEuNTFMMTEgMTcuMDdjLjA0LS42LjE3LTEuMi4zNy0xLjc1TDYuNyAxMC42NGw3LTYuOTRjLjMtLjI5Ljc4LS4yOSAxLjA3LjAxbDQuOTEgNS4wMWMuMjkuMy4yOS43NiAwIDEuMDVsLTEuMjggMS4zYy41OC4wNyAxLjE0LjIzIDEuNjYuNDVsLjY4LS43Yy44Ny0uODcuODctMi4yNy4wMS0zLjE1bC00LjktNVpcIiwgXCJNMTkuMjkgMTIuM2E1LjUgNS41IDAgMSAxLTEuODItLjNcIiwgXCJNMTcuNSAxMmMuNjMgMCAxLjIzLjEgMS43OS4zWlwiLCBcIk0xNy41IDEyaC0uMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXJTZWdtZW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJhc2VyU2VnbWVudDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMuMzIgMi40NGExLjUgMS41IDAgMCAwLTIuMTIgMEwyLjQ0IDExLjJhMS41IDEuNSAwIDAgMCAwIDIuMTJsNC4yNCA0LjI0Yy4zMS4zMi43My40NiAxLjE0LjQ0aDYuMjdhMS41IDEuNSAwIDEgMCAwLTFIOS4zNmw4LjItOC4yYTEuNSAxLjUgMCAwIDAgMC0yLjEybC00LjI0LTQuMjRabS04LjQ5IDcuNzggNC45NSA0Ljk1LTEuNjkgMS42OWEuNS41IDAgMCAxLS43IDBMMy4xNCAxMi42YS41LjUgMCAwIDEgMC0uN2wxLjctMS43WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyU2VnbWVudDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJTZWdtZW50MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuMzIgMi40NGExLjUgMS41IDAgMCAwLTIuMTIgMEwyLjQ0IDExLjJhMS41IDEuNSAwIDAgMCAwIDIuMTJsNC4yNCA0LjI0Yy4zMS4zMi43My40NiAxLjE0LjQ0aDYuMjdhMS41IDEuNSAwIDEgMCAwLTFIOS4zNmw4LjItOC4yYTEuNSAxLjUgMCAwIDAgMC0yLjEybC00LjI0LTQuMjRabS0xLjQyLjdjLjItLjE5LjUyLS4xOS43MSAwbDQuMjQgNC4yNWMuMi4yLjIuNTEgMCAuN2wtNi4zNiA2LjM3LTQuOTUtNC45NSA2LjM2LTYuMzZabS03LjA3IDcuMDggNC45NSA0Ljk1LTEuNjkgMS42OWEuNS41IDAgMCAxLS43IDBMMy4xNCAxMi42YS41LjUgMCAwIDEgMC0uN2wxLjctMS43WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyU2VnbWVudDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclNlZ21lbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyLjY1IDIuNjRhMi4yNSAyLjI1IDAgMCAxIDMuMi4wMmw0LjkgNWMuODYuODkuODYgMi4zIDAgMy4xN2wtOC41OSA4LjY3aDMuOTVhMi41IDIuNSAwIDEgMSAwIDEuNUg5Ljg1Yy0uNi4wMy0xLjIyLS4xOC0xLjctLjY0bC01LjA5LTUuMDFjLS45LS44OC0uOS0yLjMyIDAtMy4ybDkuNi05LjUxWk05LjggMTkuNWEuNzUuNzUgMCAwIDAgLjQ3LS4yMmwxLjQ3LTEuNDgtNi4xLTYuMUw0LjEgMTMuMmMtLjMuMy0uMy43OCAwIDEuMDdsNS4xIDVjLjE1LjE1LjM1LjIzLjU0LjIyaC4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlclNlZ21lbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJhc2VyU2VnbWVudDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1Ljg0IDIuNjZjLS44Ny0uODktMi4zLS45LTMuMTktLjAybC05LjYgOS41Yy0uODkuODktLjg5IDIuMzMuMDEgMy4yMWw1LjEgNWMuNDcuNDcgMS4wOC42OCAxLjY5LjY1aDYuMjZhMi41IDIuNSAwIDEgMCAwLTEuNWgtMy45NWw4LjU4LTguNjdjLjg3LS44OC44Ny0yLjI4LjAxLTMuMTZsLTQuOS01Wk05Ljc1IDE5LjVhLjc1Ljc1IDAgMCAxLS41NC0uMjFsLTUuMS01LjAxYS43NS43NSAwIDAgMSAwLTEuMDdsMS41My0xLjUxIDYuMSA2LjEtMS40NyAxLjQ4Yy0uMTMuMTMtLjMuMi0uNDcuMjJoLS4wNVptMy45Ni0xNS44Yy4zLS4yOS43Ny0uMjkgMS4wNi4wMWw0LjkxIDUuMDFjLjI5LjMuMjkuNzYgMCAxLjA1bC02Ljg5IDYuOTYtNi4wOS02LjA5IDctNi45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlclNtYWxsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJhc2VyU21hbGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNDQgMTEuMmExLjUgMS41IDAgMCAwIDAgMi4xMmw0LjI0IDQuMjRhMS41IDEuNSAwIDAgMCAyLjEyIDBsMi4yMi0yLjJhNCA0IDAgMCAxIDQuMzQtNC4zNGwyLjItMi4yMmExLjUgMS41IDAgMCAwIDAtMi4xMmwtNC4yNC00LjI0YTEuNSAxLjUgMCAwIDAtMi4xMiAwTDIuNDQgMTEuMlptLjcgMS40MWEuNS41IDAgMCAxIDAtLjdsMS43LTEuNyA0Ljk1IDQuOTYtMS43IDEuNjlhLjUuNSAwIDAgMS0uNyAwTDMuMTUgMTIuNlpNMTUgMThhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyU21hbGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJhc2VyU21hbGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjQ0IDExLjJhMS41IDEuNSAwIDAgMCAwIDIuMTJsNC4yNCA0LjI0YTEuNSAxLjUgMCAwIDAgMi4xMiAwbDIuMjItMi4yYTQuMDYgNC4wNiAwIDAgMSAuMTgtMS42bC0uNy43LTQuOTYtNC45NSA2LjM3LTYuMzZjLjItLjIuNS0uMi43IDBsNC4yNSA0LjI0Yy4yLjIuMi41MSAwIC43bC0zLjEgMy4xYTQgNCAwIDAgMSAxLjYtLjE3bDIuMi0yLjIyYTEuNSAxLjUgMCAwIDAgMC0yLjEybC00LjI0LTQuMjRhMS41IDEuNSAwIDAgMC0yLjEyIDBMMi40NCAxMS4yWm0uNyAxLjQxYS41LjUgMCAwIDEgMC0uN2wxLjctMS43IDQuOTUgNC45Ni0xLjcgMS42OWEuNS41IDAgMCAxLS43IDBMMy4xNSAxMi42Wk0xNSAxOGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBFcmFzZXJTbWFsbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclNtYWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMi42NSAyLjY0YTIuMjUgMi4yNSAwIDAgMSAzLjIuMDJsNC45IDVjLjg2Ljg5Ljg2IDIuMyAwIDMuMTdsLTIuMjYgMi4yOGE0LjUxIDQuNTEgMCAwIDAtNS4zNyA1LjQybC0xLjc5IDEuOGMtLjg3Ljg5LTIuMjkuOS0zLjE3LjAzbC01LjEtNS4wMWMtLjktLjg4LS45LTIuMzIgMC0zLjJsOS42LTkuNTFaTTQuMTEgMTMuMmMtLjMuMy0uMy43OCAwIDEuMDdsNS4xIDVjLjMuMy43Ny4zIDEuMDYgMGwxLjQ3LTEuNDgtNi4xLTYuMUw0LjEgMTMuMlpNMTcuNSAyMWEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlclNtYWxsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclNtYWxsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuODQgMi42NmMtLjg3LS44OS0yLjMtLjktMy4xOS0uMDJsLTkuNiA5LjVjLS44OS44OS0uODkgMi4zMyAwIDMuMjFsNS4xIDVjLjkuODggMi4zMS44NyAzLjE4LS4wMWwxLjc5LTEuOGE0LjUxIDQuNTEgMCAwIDEgLjAyLTIuMTZsLS4zNS4zNS02LjA5LTYuMDkgNy02Ljk0Yy4zLS4yOS43OC0uMjkgMS4wNy4wMWw0LjkxIDUuMDFjLjI5LjMuMjkuNzYgMCAxLjA1bC0zLjM1IDMuMzhhNC41IDQuNSAwIDAgMSAyLjE2LS4wNGwyLjI1LTIuMjhjLjg3LS44OC44Ny0yLjI4LjAxLTMuMTZsLTQuOS01Wk01LjY0IDExLjdsNi4xIDYuMS0xLjQ3IDEuNDhjLS4zLjMtLjc3LjMtMS4wNiAwbC01LjEtNWEuNzUuNzUgMCAwIDEgMC0xLjA3bDEuNTMtMS41MVpNMTcuNiAxNGEzLjUgMy41IDAgMSAxLTMuNiAzLjUxdi0uMDFhMy41IDMuNSAwIDAgMSAzLjYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyVG9vbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0VyYXNlclRvb2wyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgMi41YS41LjUgMCAwIDAtMSAwdjEyQTMuNSAzLjUgMCAwIDAgNi41IDE4aDdhMy41IDMuNSAwIDAgMCAzLjUtMy41di0xMmEuNS41IDAgMCAwLTEgMFY2SDRWMi41Wk00IDEwVjdoMTJ2M0g0WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyVG9vbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJUb29sMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy41IDJjLjI4IDAgLjUuMjIuNS41VjZoMTJWMi41YS41LjUgMCAwIDEgMSAwdjEyYTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtN0EzLjUgMy41IDAgMCAxIDMgMTQuNXYtMTJjMC0uMjguMjItLjUuNS0uNVptLjUgOXYzLjVBMi41IDIuNSAwIDAgMCA2LjUgMTdoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTFINFptMTItMVY3SDR2M2gxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEVyYXNlclRvb2wyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJUb29sMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00LjUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTQuNUE0Ljc1IDQuNzUgMCAwIDAgNy43NSAyMmg4LjVBNC43NSA0Ljc1IDAgMCAwIDIxIDE3LjI1VjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjdoLTE1VjIuNzVabTAgNS43NWgxNVYxMmgtMTVWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgRXJhc2VyVG9vbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcmFzZXJUb29sMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy43NSAyYy40MSAwIC43NS4zNC43NS43NVY3aDE1VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE0LjVBNC43NSA0Ljc1IDAgMCAxIDE2LjI1IDIyaC04LjVBNC43NSA0Ljc1IDAgMCAxIDMgMTcuMjVWMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wk0xOS41IDguNWgtMTVWMTJoMTVWOC41Wm0tMTUgOC43NWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDguNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjEzLjVoLTE1djMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vycm9yQ2lyY2xlMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02IDExQTUgNSAwIDEgMCA2IDFhNSA1IDAgMCAwIDAgMTBabS0uNzUtMi43NWEuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0uMjYtNC44NGEuNS41IDAgMCAxIC45OCAwbC4wMS4wOXYyLjU5YS41LjUgMCAwIDEtMSAwVjMuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcnJvckNpcmNsZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTUuMjUgOC4yNWEuNzUuNzUgMCAxIDEgMS41IDAgLjc1Ljc1IDAgMCAxLTEuNSAwWm0uMjYtNC44NGEuNS41IDAgMCAxIC45OCAwbC4wMS4wOXYyLjU5YS41LjUgMCAwIDEtMSAwVjMuNDFaTTExIDZBNSA1IDAgMSAxIDEgNmE1IDUgMCAwIDEgMTAgMFptLTEgMGE0IDQgMCAxIDAtOCAwIDQgNCAwIDAgMCA4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vycm9yQ2lyY2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCA4YS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVptMC01LjVhLjUuNSAwIDAgMC0uNS40MVY4LjU5YS41LjUgMCAwIDAgMSAwVjQuOTFBLjUuNSAwIDAgMCA4IDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVycm9yQ2lyY2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vycm9yQ2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYTYgNiAwIDEgMSAwIDEyQTYgNiAwIDAgMSA4IDJabTAgMWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgOCAzWm0wIDdhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41Wm0wLTUuNWEuNS41IDAgMCAxIC41LjQxVjguNWEuNS41IDAgMCAxLTEgLjA5VjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVycm9yQ2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTAgMTAuNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVaTTEwIDZhLjUuNSAwIDAgMC0uNS40MXY0LjY4YS41LjUgMCAwIDAgMSAwVjYuNDFBLjUuNSAwIDAgMCAxMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRXJyb3JDaXJjbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabTAgOS41YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpNMTAgNmEuNS41IDAgMCAxIC41LjQxVjExYS41LjUgMCAwIDEtMSAuMDlWNi41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vycm9yQ2lyY2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAxIDAgMjAgMTAgMTAgMCAwIDEgMC0yMFptMCAxM2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTAtOGExIDEgMCAwIDAtMSAuODh2NS4yNGExIDEgMCAwIDAgMiAwVjcuODhBMSAxIDAgMCAwIDEyIDdaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFcnJvckNpcmNsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNjdhOC4zNCA4LjM0IDAgMCAwIDAgMTYuNjYgOC4zNCA4LjM0IDAgMCAwIDAtMTYuNjZabTAgMTAuODNhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWk0xMiA3Yy4zNyAwIC42OS4yOC43NC42NXY0LjZhLjc1Ljc1IDAgMCAxLTEuNDguMWwtLjAxLS4xdi00LjVjMC0uNDEuMzMtLjc1Ljc0LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEVycm9yQ2lyY2xlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDAgMCAwLTQwWm0wIDljLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2MTIuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LTEyLjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVabTAgMjFhMiAyIDAgMSAxIDAtNCAyIDIgMCAwIDEgMCA0WlwiXSk7XG5leHBvcnQgY29uc3QgRXJyb3JDaXJjbGU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCAxM2MuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxMi41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtMTIuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNVptMCAyMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaTTQgMjRhMjAgMjAgMCAxIDEgNDAgMCAyMCAyMCAwIDAgMS00MCAwWk0yNCA2LjVhMTcuNSAxNy41IDAgMSAwIDAgMzUgMTcuNSAxNy41IDAgMCAwIDAtMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZVNldHRpbmdzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGVTZXR0aW5nczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQgOGE2IDYgMCAxIDAtNS43NSA2IDQuNSA0LjUgMCAwIDEtLjE0LTIuNUg4YS43NS43NSAwIDEgMSAuNTgtMS4yMkE0LjUgNC41IDAgMCAxIDE0IDguMjVMMTQgOFpNNy41IDQuOTFhLjUuNSAwIDAgMSAxIDBWOC41OWEuNS41IDAgMCAxLTEgMFY0LjkxWm0xLjU1IDcuMjJhMiAyIDAgMCAwIDEuNC0yLjQzdi0uMDRjLjI1LS4xNy41Mi0uMzIuOC0uNDNhMiAyIDAgMCAwIDIuNTYuMDJjLjMuMTMuNTkuMy44NC41YTIgMiAwIDAgMCAxLjMgMi4yIDMuNTIgMy41MiAwIDAgMSAuMDMuOWwtLjAzLjAyYTIgMiAwIDAgMC0xLjQgMi40M3YuMDRhMy41IDMuNSAwIDAgMS0uOC40MyAyIDIgMCAwIDAtMi41Ni0uMDIgMy41IDMuNSAwIDAgMS0uODQtLjUgMiAyIDAgMCAwLTEuMy0yLjIgMy41MiAzLjUyIDAgMCAxLS4wMy0uOWwuMDMtLjAyWm00LjIuMzdhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEVycm9yQ2lyY2xlU2V0dGluZ3MxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXJyb3JDaXJjbGVTZXR0aW5nczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0IDhhNiA2IDAgMSAwLTUuNzUgNiA0LjQ3IDQuNDcgMCAwIDEtLjIyLTFIOGE1IDUgMCAxIDEgNS01di4wM2MuMzQuMDQuNjguMTEgMSAuMjJWOFptLTUuNDIgMi4yOGEuNzUuNzUgMCAxIDAtLjQ3IDEuMjFjLjEtLjQzLjI2LS44NC40Ny0xLjIxWk04LjUgNC45MUEuNS41IDAgMCAwIDcuNSA1djMuNTlhLjUuNSAwIDAgMCAxLS4wOVY0LjkxWm0uNTYgNy4yMmEyIDIgMCAwIDAgMS40LTIuNDN2LS4wNGMuMjUtLjE3LjUyLS4zMi44LS40M2EyIDIgMCAwIDAgMi41Ni4wMmMuMy4xMy41OS4zLjg0LjVhMiAyIDAgMCAwIDEuMyAyLjIgMy41MiAzLjUyIDAgMCAxIC4wMy45bC0uMDMuMDJhMiAyIDAgMCAwLTEuNCAyLjQzdi4wNGEzLjUgMy41IDAgMCAxLS44LjQzIDIgMiAwIDAgMC0yLjU2LS4wMiAzLjUgMy41IDAgMCAxLS44NC0uNSAyIDIgMCAwIDAtMS4zLTIuMiAzLjUyIDMuNTIgMCAwIDEtLjAzLS45bC4wMy0uMDJabTQuMi4zN2EuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRXJyb3JDaXJjbGVTZXR0aW5nczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vycm9yQ2lyY2xlU2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwYTggOCAwIDEgMC03LjQxIDcuOTggNS40OCA1LjQ4IDAgMCAxLS4zNy00LjAxLjc1Ljc1IDAgMSAxIC40NC0xLjA4IDUuNSA1LjUgMCAwIDEgNy4zMi0yLjNMMTggMTBaTTkuNSA2LjQxYS41LjUgMCAwIDEgMSAwdjQuNjhhLjUuNSAwIDAgMS0xIDBWNi40MVptMi4xNCA4LjUxYTIgMiAwIDAgMCAxLjQzLTIuNDhsLS4xNi0uNTVjLjI1LS4yLjUzLS4zNy44Mi0uNWwuMzQuMzZhMiAyIDAgMCAwIDIuOSAwbC4zMy0uMzVjLjMuMTQuNTguMzIuODQuNTJsLS4xMy40MmEyIDIgMCAwIDAgMS40NiAyLjUybC4zNS4wOWE0LjcgNC43IDAgMCAxIDAgMS4wMWwtLjQ1LjEyYTIgMiAwIDAgMC0xLjQzIDIuNDhsLjE1LjU1Yy0uMjUuMi0uNTMuMzctLjgyLjVsLS4zNC0uMzZhMiAyIDAgMCAwLTIuOSAwbC0uMzMuMzVjLS4zLS4xNC0uNTgtLjMyLS44NC0uNTJsLjEzLS40MmEyIDIgMCAwIDAtMS40Ni0yLjUybC0uMzUtLjA5YTQuNzEgNC43MSAwIDAgMSAwLTEuMDFsLjQ2LS4xMlptNC44Ni41OGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFcnJvckNpcmNsZVNldHRpbmdzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Vycm9yQ2lyY2xlU2V0dGluZ3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOCAxMGE4IDggMCAxIDAtNy40MSA3Ljk4IDUuNDYgNS40NiAwIDAgMS0uMzgtLjk4SDEwYTcgNyAwIDEgMSA3LTYuOGMuMzQuMS42Ny4yMy45OC4zOUwxOCAxMFptLTcuMzQgMi44OWEuNzUuNzUgMCAxIDAtLjQ0IDEuMDhjLjEtLjM4LjI1LS43NC40NC0xLjA4Wm0tLjE3LTYuNDhhLjUuNSAwIDAgMC0uOTkuMDl2NC41OWEuNS41IDAgMCAwIDEtLjA5VjYuNDFabTEuMTUgOC41MWEyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40Ni0uMTJabTQuODYuNThhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBMZWZ0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBMZWZ0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjIzIDIuNWEuNS41IDAgMCAwLS41LS41SDIuNWEuNS41IDAgMCAwLS41LjV2NC4yM2EuNS41IDAgMCAwIDEgMFYzLjcxbDMuMzggMy4zN2EuNS41IDAgMSAwIC43LS43TDMuNzEgM2gzLjAyYS41LjUgMCAwIDAgLjUtLjVabTQuMjcuNWMuODMgMCAxLjUuNjcgMS41IDEuNVY4SDkuNzdDOC43OSA4IDggOC44IDggOS43N1YxM0g0LjVBMS41IDEuNSAwIDAgMSAzIDExLjVWOS4yN2EuNS41IDAgMCAwLTEgMHYyLjIzQTIuNSAyLjUgMCAwIDAgNC41IDE0aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTEuNSAySDkuMjdhLjUuNSAwIDAgMCAwIDFoMi4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcExlZnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03LjIzIDIuNWEuNS41IDAgMCAwLS41LS41SDIuNWEuNS41IDAgMCAwLS41LjV2NC4yM2EuNS41IDAgMCAwIDEgMFYzLjcxbDMuMzggMy4zN2EuNS41IDAgMSAwIC43LS43TDMuNzEgM2gzLjAyYS41LjUgMCAwIDAgLjUtLjVabTUuNzcgMmMwLS44My0uNjctMS41LTEuNS0xLjVIOS4yN2EuNS41IDAgMCAxIDAtMWgyLjIzQTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41VjkuMjdhLjUuNSAwIDAgMSAxIDB2Mi4yM2MwIC44My42NyAxLjUgMS41IDEuNUg4VjkuNzdDOCA4Ljc5IDguOCA4IDkuNzcgOEgxM1Y0LjVaTTEzIDlIOS43N2EuNzcuNzcgMCAwIDAtLjc3Ljc3VjEzaDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQgNGEyIDIgMCAwIDEgMiAydjRoLTRhMiAyIDAgMCAwLTIgMnY0SDZhMiAyIDAgMCAxLTItMnYtMi41YS41LjUgMCAwIDAtMSAwVjE0YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM2gtMi41YS41LjUgMCAwIDAgMCAxSDE0Wm0tNS0uNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgMSAwVjQuN2w0LjE1IDQuMTVhLjUuNSAwIDEgMCAuNy0uN0w0LjcxIDRIOC41YS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcExlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBMZWZ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYgNmEyIDIgMCAwIDAtMi0yaC0yLjVhLjUuNSAwIDAgMSAwLTFIMTRhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zdi0yLjVhLjUuNSAwIDAgMSAxIDBWMTRjMCAxLjEuOSAyIDIgMmg0di00YzAtMS4xLjktMiAyLTJoNFY2Wm0tNCA1YTEgMSAwIDAgMC0xIDF2NGgzYTIgMiAwIDAgMCAyLTJ2LTNoLTRaTTkgMy41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41djVhLjUuNSAwIDAgMCAxIDBWNC43bDQuMTUgNC4xNWEuNS41IDAgMSAwIC43LS43TDQuNzEgNEg4LjVhLjUuNSAwIDAgMCAuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEgMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNi41YS43NS43NSAwIDAgMC0uNzUuNzV2Ni41YS43NS43NSAwIDAgMCAxLjUgMFY1LjU2bDUuMjIgNS4yMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDUuNTYgNC41aDQuNjljLjQxIDAgLjc1LS4zNC43NS0uNzVabTYuNzUuNzVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWMTJoLTQuNzVBMi43NSAyLjc1IDAgMCAwIDEyIDE0Ljc1djQuNzVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di00YS43NS43NSAwIDAgMC0xLjUgMHY0QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzaC00YS43NS43NSAwIDEgMCAwIDEuNWg0WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExIDMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTYuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djYuNWEuNzUuNzUgMCAwIDAgMS41IDBWNS41Nmw1LjIyIDUuMjJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkw1LjU2IDQuNWg0LjY5Yy40MSAwIC43NS0uMzQuNzUtLjc1Wm04LjUgMi41YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNGEuNzUuNzUgMCAxIDEgMC0xLjVoNEMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxMS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NXYtNGEuNzUuNzUgMCAwIDEgMS41IDB2NGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUgxMnYtNC43NUEyLjc1IDIuNzUgMCAwIDEgMTQuNzUgMTJoNC43NVY2LjI1Wm0wIDcuMjVoLTQuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djQuNzVoNC4yNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjEuMjUgNC41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1VjE0aC02Ljc1QTIuNzUgMi43NSAwIDAgMCAxNCAxNi43NXY2Ljc1SDYuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di01YS43NS43NSAwIDAgMC0xLjUgMHY1QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDE0LjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNoLTVhLjc1Ljc1IDAgMCAwIDAgMS41aDVabS04Ljc1LS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOGEuNzUuNzUgMCAwIDAtLjc1Ljc1djhhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTZsNi4yMiA2LjIyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZMNS41NiA0LjVoNi4xOWMuNDEgMCAuNzUtLjM0Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcExlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yMy41IDYuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTVhLjc1Ljc1IDAgMCAxIDAtMS41aDVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNXYtNWEuNzUuNzUgMCAwIDEgMS41IDB2NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNUgxNHYtNi43NUEyLjc1IDIuNzUgMCAwIDEgMTYuNzUgMTRoNi43NVY2Ljc1Wm0wIDguNzVoLTYuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djYuNzVoNS43NWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVYxNS41Wm0tMTEtMTEuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLThhLjc1Ljc1IDAgMCAwLS43NS43NXY4YS43NS43NSAwIDAgMCAxLjUgMFY1LjU2bDYuMjIgNi4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2TDUuNTYgNC41aDYuMTljLjQxIDAgLjc1LS4zNC43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcExlZnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcExlZnQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE0IDRhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAxIDAgMiAwVjYuNDFsNy4zIDcuM2ExIDEgMCAwIDAgMS40LTEuNDJMNi40MiA1SDEzYTEgMSAwIDAgMCAxLTFabTEwLjUgMUEyLjUgMi41IDAgMCAxIDI3IDcuNVYxNmgtNy4yM0EzLjc3IDMuNzcgMCAwIDAgMTYgMTkuNzdWMjdINy41QTIuNSAyLjUgMCAwIDEgNSAyNC41VjE5YTEgMSAwIDEgMC0yIDB2NS41QTQuNSA0LjUgMCAwIDAgNy41IDI5aDE3YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTdBNC41IDQuNSAwIDAgMCAyNC41IDNIMTlhMSAxIDAgMSAwIDAgMmg1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcExlZnQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBMZWZ0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTQgNGExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDEgMCAyIDBWNi40MWw3LjMgNy4zYTEgMSAwIDAgMCAxLjQtMS40Mkw2LjQyIDVIMTNhMSAxIDAgMCAwIDEtMVptMTMgMy41QTIuNSAyLjUgMCAwIDAgMjQuNSA1SDE5YTEgMSAwIDEgMSAwLTJoNS41QTQuNSA0LjUgMCAwIDEgMjkgNy41djE3YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTdBNC41IDQuNSAwIDAgMSAzIDI0LjVWMTlhMSAxIDAgMSAxIDIgMHY1LjVBMi41IDIuNSAwIDAgMCA3LjUgMjdIMTZ2LTcuMjNBMy43NyAzLjc3IDAgMCAxIDE5Ljc3IDE2SDI3VjcuNVpNMjcgMThoLTcuMjNjLS45OCAwLTEuNzcuOC0xLjc3IDEuNzdWMjdoNi41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwTGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzUuNzUgOC41YTMuNzUgMy43NSAwIDAgMSAzLjc1IDMuNzVWMjRIMjkuMjVBNS4yNSA1LjI1IDAgMCAwIDI0IDI5LjI1VjM5LjVIMTIuMjVhMy43NSAzLjc1IDAgMCAxLTMuNzUtMy43NXYtNy44OGExLjI1IDEuMjUgMCAxIDAtMi41IDB2Ny44OEM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDIzLjVBNi4yNSA2LjI1IDAgMCAwIDQyIDM1Ljc1di0yMy41QzQyIDguOCAzOS4yIDYgMzUuNzUgNmgtNy44OGExLjI1IDEuMjUgMCAxIDAgMCAyLjVoNy44OFpNMjEgNy4yNUMyMSA2LjU2IDIwLjQ0IDYgMTkuNzUgNkg3LjI1QzYuNTYgNiA2IDYuNTYgNiA3LjI1djEyLjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi05LjQ4bDEwLjM3IDEwLjM2YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMMTAuMjcgOC41aDkuNDhjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBMZWZ0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwTGVmdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM5LjUgMTIuMjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtNy44OGExLjI1IDEuMjUgMCAxIDEgMC0yLjVoNy44OEMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djIzLjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0yMy41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di03Ljg4YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHY3Ljg4YTMuNzUgMy43NSAwIDAgMCAzLjc1IDMuNzVIMjRWMjkuMjVjMC0yLjkgMi4zNS01LjI1IDUuMjUtNS4yNUgzOS41VjEyLjI1Wm0wIDE0LjI1SDI5LjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1IDIuNzVWMzkuNWg5LjI1YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzVWMjYuNVpNMjEgNy4yNUMyMSA2LjU2IDIwLjQ0IDYgMTkuNzUgNkg3LjI1QzYuNTYgNiA2IDYuNTYgNiA3LjI1djEyLjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi05LjQ4bDEwLjM3IDEwLjM2YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMMTAuMjcgOC41aDkuNDhjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwUmlnaHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjVWOGgzLjIzQzcuMjEgOCA4IDguOCA4IDkuNzdWMTNoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY5LjI3YS41LjUgMCAwIDEgMSAwdjIuMjNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03QTIuNSAyLjUgMCAwIDEgNC41IDJoMi4yM2EuNS41IDAgMCAxIDAgMUg0LjVabTQuMjctLjVjMC0uMjguMjItLjUuNS0uNWg0LjIzYy4yOCAwIC41LjIyLjUuNXY0LjIzYS41LjUgMCAwIDEtMSAwVjMuNzFMOS42MiA3LjA4YS41LjUgMCAxIDEtLjctLjdMMTIuMjkgM0g5LjI3YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcFJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwUmlnaHQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaDIuMjNhLjUuNSAwIDAgMCAwLTFINC41QTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5LjI3YS41LjUgMCAwIDAtMSAwdjIuMjNjMCAuODMtLjY3IDEuNS0xLjUgMS41SDhWOS43N0M4IDguNzkgNy4yIDggNi4yMyA4SDNWNC41Wk0zIDloMy4yM2MuNDMgMCAuNzcuMzQuNzcuNzdWMTNINC41QTEuNSAxLjUgMCAwIDEgMyAxMS41VjlabTUuNzctNi41YzAtLjI4LjIyLS41LjUtLjVoNC4yM2MuMjggMCAuNS4yMi41LjV2NC4yM2EuNS41IDAgMCAxLTEgMFYzLjcxTDkuNjIgNy4wOGEuNS41IDAgMSAxLS43LS43TDEyLjI5IDNIOS4yN2EuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBSaWdodDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgNGEyIDIgMCAwIDAtMiAydjRoNGEyIDIgMCAwIDEgMiAydjRoNGEyIDIgMCAwIDAgMi0ydi0yLjVhLjUuNSAwIDAgMSAxIDBWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNmEzIDMgMCAwIDEgMy0zaDIuNWEuNS41IDAgMCAxIDAgMUg2Wm01LS41YzAtLjI4LjIyLS41LjUtLjVoNWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLTEgMFY0LjdsLTQuMTUgNC4xNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDRIMTEuNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBSaWdodDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcFJpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA2YzAtMS4xLjktMiAyLTJoMi41YS41LjUgMCAwIDAgMC0xSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zdi0yLjVhLjUuNSAwIDAgMC0xIDBWMTRhMiAyIDAgMCAxLTIgMmgtNHYtNGEyIDIgMCAwIDAtMi0ySDRWNlptMCA1aDRhMSAxIDAgMCAxIDEgMXY0SDZhMiAyIDAgMCAxLTItMnYtM1ptNy03LjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtMSAwVjQuN2wtNC4xNSA0LjE1YS41LjUgMCAwIDEtLjctLjdMMTUuMjkgNEgxMS41YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcFJpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBSaWdodDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjEyaDQuNzVBMi43NSAyLjc1IDAgMCAxIDEyIDE0Ljc1djQuNzVoNS43NWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTRhLjc1Ljc1IDAgMCAxIDEuNSAwdjRjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoNGEuNzUuNzUgMCAwIDEgMCAxLjVoLTRaTTEzIDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuNWEuNzUuNzUgMCAwIDEtMS41IDBWNS41NmwtNS4yMiA1LjIyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNS4yMi01LjIyaC00LjY5YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcFJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNGEuNzUuNzUgMCAwIDAgMC0xLjVoLTRBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNGEuNzUuNzUgMCAwIDAtMS41IDB2NGMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMTJ2LTQuNzVBMi43NSAyLjc1IDAgMCAwIDkuMjUgMTJINC41VjYuMjVabTAgNy4yNWg0Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djQuNzVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjEzLjVaTTEzIDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg2LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djYuNWEuNzUuNzUgMCAwIDEtMS41IDBWNS41NmwtNS4yMiA1LjIyYS43NS43NSAwIDAgMS0xLjA2LTEuMDZsNS4yMi01LjIyaC00LjY5YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBSaWdodDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4cGFuZFVwUmlnaHQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTYuNzUgNC41Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNVYxNGg2Ljc1QTIuNzUgMi43NSAwIDAgMSAxNCAxNi43NXY2Ljc1aDcuMjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTVhLjc1Ljc1IDAgMCAxIDEuNSAwdjVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1SDYuNzVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjVWNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDVhLjc1Ljc1IDAgMCAxIDAgMS41aC01Wm04Ljc1LS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDhjLjQxIDAgLjc1LjM0Ljc1Ljc1djhhLjc1Ljc1IDAgMSAxLTEuNSAwVjUuNTZsLTYuMjIgNi4yMmEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDYuMjItNi4yMmgtNi4xOWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwUmlnaHQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBSaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQuNSA2Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDVhLjc1Ljc1IDAgMCAwIDAtMS41aC01QTMuNzUgMy43NSAwIDAgMCAzIDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNWgxNC41QTMuNzUgMy43NSAwIDAgMCAyNSAyMS4yNXYtNWEuNzUuNzUgMCAwIDAtMS41IDB2NWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxNHYtNi43NUEyLjc1IDIuNzUgMCAwIDAgMTEuMjUgMTRINC41VjYuNzVabTAgOC43NWg2Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djYuNzVINi43NWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVWMTUuNVptMTEtMTEuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg4Yy40MSAwIC43NS4zNC43NS43NXY4YS43NS43NSAwIDEgMS0xLjUgMFY1LjU2bC02LjIyIDYuMjJhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmw2LjIyLTYuMjJoLTYuMTlhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcFJpZ2h0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBSaWdodDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNy41IDVBMi41IDIuNSAwIDAgMCA1IDcuNVYxNmg3LjIzQTMuNzcgMy43NyAwIDAgMSAxNiAxOS43N1YyN2g4LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE5YTEgMSAwIDEgMSAyIDB2NS41YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTdBNC41IDQuNSAwIDAgMSAzIDI0LjV2LTE3QTQuNSA0LjUgMCAwIDEgNy41IDNIMTNhMSAxIDAgMSAxIDAgMkg3LjVaTTE4IDRhMSAxIDAgMCAxIDEtMWg5YTEgMSAwIDAgMSAxIDF2OWExIDEgMCAxIDEtMiAwVjYuNDFsLTcuMyA3LjNhMSAxIDAgMCAxLTEuNC0xLjQyTDI1LjU4IDVIMTlhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4cGFuZFVwUmlnaHQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBSaWdodDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTUgNy41QTIuNSAyLjUgMCAwIDEgNy41IDVIMTNhMSAxIDAgMSAwIDAtMkg3LjVBNC41IDQuNSAwIDAgMCAzIDcuNXYxN0E0LjUgNC41IDAgMCAwIDcuNSAyOWgxN2E0LjUgNC41IDAgMCAwIDQuNS00LjVWMTlhMSAxIDAgMSAwLTIgMHY1LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDE2di03LjIzQTMuNzcgMy43NyAwIDAgMCAxMi4yMyAxNkg1VjcuNVpNNSAxOGg3LjIzYy45OCAwIDEuNzcuOCAxLjc3IDEuNzdWMjdINy41QTIuNSAyLjUgMCAwIDEgNSAyNC41VjE4Wk0xOCA0YTEgMSAwIDAgMSAxLTFoOWExIDEgMCAwIDEgMSAxdjlhMSAxIDAgMSAxLTIgMFY2LjQxbC03LjMgNy4zYTEgMSAwIDAgMS0xLjQtMS40MkwyNS41OCA1SDE5YTEgMSAwIDAgMS0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHBhbmRVcFJpZ2h0NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXhwYW5kVXBSaWdodDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTIuMjUgOC41YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzVWMjRoMTAuMjVjMi45IDAgNS4yNSAyLjM1IDUuMjUgNS4yNVYzOS41aDExLjc1YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTcuODhhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjcuODhDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0yMy41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di0yMy41QzYgOC44IDguOCA2IDEyLjI1IDZoNy44OGExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTcuODhaTTI3IDcuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTIuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxMi41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtOS40OEwyOS4xMyAyMC42M2ExLjI1IDEuMjUgMCAwIDEtMS43Ni0xLjc2TDM3LjczIDguNWgtOS40OGMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRXhwYW5kVXBSaWdodDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHBhbmRVcFJpZ2h0NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNOC41IDEyLjI1YTMuNzUgMy43NSAwIDAgMSAzLjc1LTMuNzVoNy44OGExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTcuODhBNi4yNSA2LjI1IDAgMCAwIDYgMTIuMjV2MjMuNUM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDIzLjVDMzkuMiA0MiA0MiAzOS4yIDQyIDM1Ljc1di03Ljg4YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHY3Ljg4YTMuNzUgMy43NSAwIDAgMS0zLjc1IDMuNzVIMjRWMjkuMjVjMC0yLjktMi4zNS01LjI1LTUuMjUtNS4yNUg4LjVWMTIuMjVabTAgMTQuMjVoMTAuMjVhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NVYzOS41aC05LjI1YTMuNzUgMy43NSAwIDAgMS0zLjc1LTMuNzVWMjYuNVpNMjcgNy4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djEyLjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi05LjQ4TDI5LjEzIDIwLjYzYTEuMjUgMS4yNSAwIDAgMS0xLjc2LTEuNzZMMzcuNzMgOC41aC05LjQ4Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeHRlbmRlZERvY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHRlbmRlZERvY2syMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjM1IDQuMTVhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDEgMCAuNy43TDEwIDUuMjFsMi42NSAyLjY0YS41LjUgMCAwIDAgLjctLjdsLTMtM1pNMyAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIM1ptNiAwYy0uODMgMC0xLjUuNjctMS41IDEuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5Wm00LjUgMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgRXh0ZW5kZWREb2NrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4dGVuZGVkRG9jazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjM1IDQuMTVhLjUuNSAwIDAgMC0uNyAwbC0zIDNhLjUuNSAwIDEgMCAuNy43TDEwIDUuMjFsMi42NSAyLjY0YS41LjUgMCAwIDAgLjctLjdsLTMtM1pNMyAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIM1ptLS41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNXYtMlpNOSAxMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIOVptLS41IDEuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41SDlhLjUuNSAwIDAgMS0uNS0uNXYtMlptNSAwYzAtLjgzLjY3LTEuNSAxLjUtMS41aDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTJhMS41IDEuNSAwIDAgMS0xLjUtMS41di0yWk0xNSAxMWEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4dGVuZGVkRG9jazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V4dGVuZGVkRG9jazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAxMWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjVDOCAxNi4yIDcuMjIgMTcgNi4yNSAxN2gtMi41QzIuNzggMTcgMiAxNi4yIDIgMTUuMjV2LTIuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjVabTcgMGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjVjMCAuOTYtLjc4IDEuNzUtMS43NSAxLjc1aC0yLjVDOS43OCAxNyA5IDE2LjIgOSAxNS4yNXYtMi41YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDIuNVptNyAwYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djIuNWMwIC45Ni0uNzggMS43NS0xLjc1IDEuNzVoLTIuNWMtLjk3IDAtMS43NS0uNzktMS43NS0xLjc1di0yLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi41Wk03Ljk3IDcuNzJsMy41LTMuNWEuNzUuNzUgMCAwIDEgLjk3LS4wOGwuMDguMDcgMy42IDMuNWEuNzUuNzUgMCAwIDEtLjk1IDEuMTVsLS4wOS0uMDctMy4wNy0yLjk5LTIuOTggMi45OEEuNzUuNzUgMCAwIDEgNy45IDcuOGwuMDctLjA4IDMuNS0zLjUtMy41IDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV4dGVuZGVkRG9jazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeHRlbmRlZERvY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDExYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djIuNUM4IDE2LjIgNy4yMiAxNyA2LjI1IDE3aC0yLjVDMi43OCAxNyAyIDE2LjIgMiAxNS4yNXYtMi41YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDIuNVptNyAwYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djIuNWMwIC45Ni0uNzggMS43NS0xLjc1IDEuNzVoLTIuNUM5Ljc4IDE3IDkgMTYuMiA5IDE1LjI1di0yLjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi41Wm03IDBjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Mi41YzAgLjk2LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OS0xLjc1LTEuNzV2LTIuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjVabS0xNCAxLjVoLTIuNWEuMjUuMjUgMCAwIDAtLjI1LjI1djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgyLjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTIuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNVptNyAwaC0yLjVhLjI1LjI1IDAgMCAwLS4yNS4yNXYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMi41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVabTcgMGgtMi41YS4yNS4yNSAwIDAgMC0uMjUuMjV2Mi41YzAgLjE0LjExLjI1LjI1LjI1aDIuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtMi41YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wk03Ljk3IDcuNzJsMy41LTMuNWEuNzUuNzUgMCAwIDEgLjk3LS4wOGwuMDguMDcgMy42IDMuNWEuNzUuNzUgMCAwIDEtLjk1IDEuMTVsLS4wOS0uMDctMy4wNy0yLjk5LTIuOTggMi45OEEuNzUuNzUgMCAwIDEgNy45IDcuOGwuMDctLjA4IDMuNS0zLjUtMy41IDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZTEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMS45NyA2LjY2YS41LjUgMCAwIDEtLjk0LS4zMmMtLjAxLjAzIDAgMCAwIDBhMS42MyAxLjYzIDAgMCAxIC4wNi0uMTZsLjE4LS4zOEE1LjE1IDUuMTUgMCAwIDEgNiAzYTUuMTUgNS4xNSAwIDAgMSA0Ljk2IDMuM2wuMDIuMS4wMi4xcy4wOC4zMy0uMzQuNDdhLjUuNSAwIDAgMS0uNjMtLjMxbC0uMDEtLjAyYTIuMjUgMi4yNSAwIDAgMC0uMTctLjM4QTQuMTUgNC4xNSAwIDAgMCA2IDRhNC4xNSA0LjE1IDAgMCAwLTQuMDIgMi42NHYuMDJaTTQgN2EyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWUxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMS45NyA2LjY2YS41LjUgMCAwIDEtLjk0LS4zMmMtLjAxLjAzIDAgMCAwIDBhMS42MyAxLjYzIDAgMCAxIC4wNi0uMTZsLjE4LS4zOEE1LjE1IDUuMTUgMCAwIDEgNiAzYTUuMTUgNS4xNSAwIDAgMSA0Ljk2IDMuM2wuMDIuMS4wMi4xcy4wOC4zMy0uMzQuNDdhLjUuNSAwIDAgMS0uNjMtLjMxbC0uMDEtLjAyYTIuMjUgMi4yNSAwIDAgMC0uMTctLjM4QTQuMTUgNC4xNSAwIDAgMCA2IDRhNC4xNSA0LjE1IDAgMCAwLTQuMDIgMi42NHYuMDJaTTYgNWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRaTTUgN2ExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuOTggOC42MmEuNS41IDAgMCAxLS42LjM2Yy0uNDQtLjExLS4zNi0uNi0uMzYtLjZsLjAxLS4wNy4wNS0uMTRBNi43IDYuNyAwIDAgMSAzLjIgNi4xOUM0LjEgNS4wOCA1LjYgNCA4IDRzMy45IDEuMDkgNC44IDIuMThhNi43IDYuNyAwIDAgMSAxLjE4IDIuMTd2LjAyYS41LjUgMCAwIDEtLjk2LjI2TDEzIDguNmEzLjA1IDMuMDUgMCAwIDAtLjItLjUyIDUuNyA1LjcgMCAwIDAtLjc4LTEuMjZBNC45NiA0Ljk2IDAgMCAwIDggNWMtMi4wNCAwLTMuMjkuOTEtNC4wMyAxLjgyQTUuNyA1LjcgMCAwIDAgMyA4LjZ2LjAyWm0yLjUyLjg4YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRXllMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuOTggOC42MmEuNS41IDAgMCAxLS42LjM2Yy0uNDQtLjExLS4zNi0uNi0uMzYtLjZsLjAxLS4wNy4wNS0uMTRBNi43IDYuNyAwIDAgMSAzLjIgNi4xOUM0LjEgNS4wOCA1LjYgNCA4IDRzMy45IDEuMDkgNC44IDIuMThhNi43IDYuNyAwIDAgMSAxLjE4IDIuMTd2LjAyYS41LjUgMCAwIDEtLjk2LjI2TDEzIDguNmEzLjA1IDMuMDUgMCAwIDAtLjItLjUyIDUuNyA1LjcgMCAwIDAtLjc4LTEuMjZBNC45NiA0Ljk2IDAgMCAwIDggNWMtMi4wNCAwLTMuMjkuOTEtNC4wMyAxLjgyQTUuNyA1LjcgMCAwIDAgMyA4LjZ2LjAyWk04IDdhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVaTTYuNSA5LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuMjYgMTEuNkE2Ljk3IDYuOTcgMCAwIDEgMTAgNmMzLjIgMCA2LjA2IDIuMzMgNi43NCA1LjZhLjUuNSAwIDAgMCAuOTgtLjJBNy45NyA3Ljk3IDAgMCAwIDEwIDVhNy45NyA3Ljk3IDAgMCAwLTcuNzIgNi40LjUuNSAwIDAgMCAuOTguMlpNOS45OSA4YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03WlwiXSk7XG5leHBvcnQgY29uc3QgRXllMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuMjYgMTEuNkE2Ljk3IDYuOTcgMCAwIDEgMTAgNmMzLjIgMCA2LjA2IDIuMzMgNi43NCA1LjZhLjUuNSAwIDAgMCAuOTgtLjJBNy45NyA3Ljk3IDAgMCAwIDEwIDVhNy45NyA3Ljk3IDAgMCAwLTcuNzIgNi40LjUuNSAwIDAgMCAuOTguMlpNMTAgOGEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN1ptLTIuNSAzLjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDlhNCA0IDAgMSAxIDAgOCA0IDQgMCAwIDEgMC04Wm0wLTMuNWExMCAxMCAwIDAgMSA5LjcgNy41Ni43NS43NSAwIDEgMS0xLjQ1LjM3IDguNSA4LjUgMCAwIDAtMTYuNSAwIC43NS43NSAwIDAgMS0xLjQ1LS4zNkExMCAxMCAwIDAgMSAxMiA1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgOWE0IDQgMCAxIDEgMCA4IDQgNCAwIDAgMSAwLThabTAgMS41YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01Wm0wLTVhMTAgMTAgMCAwIDEgOS43IDcuNTYuNzUuNzUgMCAxIDEtMS40NS4zNyA4LjUgOC41IDAgMCAwLTE2LjUgMCAuNzUuNzUgMCAwIDEtMS40NS0uMzZBMTAgMTAgMCAwIDEgMTIgNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRXllMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yNS4yNiAxNlptLS43LS41MmMuMS4zMi4zOC41Mi43LjUyLjA3IDAgLjE0LS4wMi4yMi0uMDRhLjc0Ljc0IDAgMCAwIC40OC0uOTRDMjUuOTMgMTQuOTMgMjIuOTMgNiAxNCA2IDUuMDcgNiAyLjA3IDE0LjkzIDIuMDQgMTUuMDJjLS4xMy4zOS4wOS44MS40OC45NC40LjEzLjgyLS4wOS45NS0uNDguMTMtLjQgMi43NC03Ljk4IDEwLjU0LTcuOTggNy44NCAwIDEwLjQzIDcuNjUgMTAuNTQgNy45OFpNOSAxNmE1IDUgMCAxIDEgMTAgMCA1IDUgMCAwIDEtMTAgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yNS4yNiAxNlptLS43LS41MmMuMS4zMi4zOC41Mi43LjUyLjA3IDAgLjE0LS4wMi4yMi0uMDRhLjc0Ljc0IDAgMCAwIC40OC0uOTRDMjUuOTMgMTQuOTMgMjIuOTMgNiAxNCA2IDUuMDcgNiAyLjA3IDE0LjkzIDIuMDQgMTUuMDJjLS4xMy4zOS4wOS44MS40OC45NC40LjEzLjgyLS4wOS45NS0uNDguMTMtLjQgMi43NC03Ljk4IDEwLjU0LTcuOTggNy44NCAwIDEwLjQzIDcuNjUgMTAuNTQgNy45OFpNMTAuNSAxNmEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFptMy41LTVhNSA1IDAgMSAwIDAgMTAgNSA1IDAgMCAwIDAtMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI4LjAzIDE3LjI5QTEgMSAwIDAgMCAyOSAxOHYtLjAxYTEgMSAwIDAgMCAuOTYtMS4yOEMyOS45MiAxNi42MSAyNi42MSA2IDE2IDYgNS4zOCA2IDIuMDcgMTYuNjEgMi4wNCAxNi43MmExIDEgMCAwIDAgMS45Mi41N0M0LjA2IDE2LjkxIDYuODkgOCAxNiA4YzkuMSAwIDExLjkxIDguOSAxMi4wMyA5LjI5Wk0xMCAxOGE2IDYgMCAxIDEgMTIgMCA2IDYgMCAwIDEtMTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yOC4wMyAxNy4yOUExIDEgMCAwIDAgMjkgMTh2LS4wMWExIDEgMCAwIDAgLjk2LTEuMjhDMjkuOTIgMTYuNjEgMjYuNjEgNiAxNiA2IDUuMzggNiAyLjA3IDE2LjYxIDIuMDQgMTYuNzJhMSAxIDAgMCAwIDEuOTIuNTdDNC4wNiAxNi45MSA2Ljg5IDggMTYgOGM5LjEgMCAxMS45MSA4LjkgMTIuMDMgOS4yOVpNMTIgMThhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm00LTZhNiA2IDAgMSAwIDAgMTIgNiA2IDAgMCAwIDAtMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQxLjU2IDI2LjEzYTEuMjUgMS4yNSAwIDAgMCAyLjM4LS43NkM0My44NSAyNS4xIDM4Ljg0IDEwIDI0IDEwIDkuMTYgMTAgNC4xNSAyNS4xIDQuMDYgMjUuMzdjLS4yMS42Ni4xNSAxLjM2LjgxIDEuNTcuNjYuMjEgMS4zNi0uMTUgMS41Ny0uODEuMTgtLjU2IDQuNTEtMTMuNjMgMTcuNTYtMTMuNjMgMTMuMDUgMCAxNy4zOCAxMy4wNyAxNy41NiAxMy42M1pNMjQgMzZhOSA5IDAgMSAwIDAtMTggOSA5IDAgMCAwIDAgMThaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNDEuNTYgMjYuMTNhMS4yNSAxLjI1IDAgMCAwIDIuMzgtLjc2QzQzLjg1IDI1LjEgMzguODQgMTAgMjQgMTAgOS4xNiAxMCA0LjE1IDI1LjEgNC4wNiAyNS4zN2MtLjIxLjY2LjE1IDEuMzYuODEgMS41Ny42Ni4yMSAxLjM2LS4xNSAxLjU3LS44MS4xOC0uNTYgNC41MS0xMy42MyAxNy41Ni0xMy42MyAxMy4wNSAwIDE3LjM4IDEzLjA3IDE3LjU2IDEzLjYzWk0xNy41IDI3YTYuNSA2LjUgMCAxIDEgMTMgMCA2LjUgNi41IDAgMCAxLTEzIDBabTYuNS05YTkgOSAwIDEgMCAwIDE4IDkgOSAwIDAgMCAwLTE4WlwiXSk7XG5leHBvcnQgY29uc3QgRXllTGluZXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVMaW5lczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNkgzLjkyYy4yNy0uMzQuNTctLjY4LjkyLTFIMTBWNEg2LjE4QzcuMjEgMy40IDguNDcgMyAxMCAzYTcuNSA3LjUgMCAwIDEgNi4wOCAzIDkuNzMgOS43MyAwIDAgMSAxLjU2IDIuOTZjLjA2LjIuMTEuNC4xMS41NHMtLjA1LjM1LS4xLjU0QTkuNzQgOS43NCAwIDAgMSAxNi4wOCAxMyA3LjUgNy41IDAgMCAxIDEwIDE2Yy0xLjUzIDAtMi44LS40LTMuODItMUgxMHYtMUg0Ljg0YTguNTkgOC41OSAwIDAgMS0uOTItMUgxMHYtLjVhMyAzIDAgMSAwIDAtNlY2Wk04LjM0IDdoLTUuMWMtLjIxLjM1LS4zOC43LS41MiAxSDcuNGMuMjMtLjQuNTYtLjc0Ljk0LTFabS0xLjMgMmgtNC43Yy0uMDUuMTgtLjA5LjM3LS4wOS41cy4wNC4zMi4xLjVoNC43YTMuMDIgMy4wMiAwIDAgMSAwLTFabS4zNiAySDIuNzJjLjE0LjMuMy42NS41MiAxaDUuMWMtLjM4LS4yNi0uNy0uNi0uOTQtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZUxpbmVzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZUxpbmVzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgM2MtMS41MyAwLTIuOC40LTMuODIgMUgxMGE2LjUgNi41IDAgMCAxIDUuMyAyLjYyIDguNzMgOC43MyAwIDAgMSAxLjM4IDIuNjJjLjA1LjE0LjA2LjIyLjA3LjI1di4wMWE2LjUgNi41IDAgMCAxLS4zMi45NGMtLjI0LjU3LS42IDEuMjYtMS4xNCAxLjk0QTYuNSA2LjUgMCAwIDEgMTAgMTVINi4xOGMxLjAzLjYgMi4yOSAxIDMuODIgMWE3LjQ0IDcuNDQgMCAwIDAgNi4wOC0zIDkuNzQgOS43NCAwIDAgMCAxLjU2LTIuOTZjLjA2LS4yLjExLS40LjExLS41NHMtLjA1LS4zNS0uMS0uNTRBOS43MyA5LjczIDAgMCAwIDE2LjA4IDYgNy40NCA3LjQ0IDAgMCAwIDEwIDNabTAgM0gzLjkyYy4yNy0uMzQuNTctLjY4LjkyLTFIMTB2MVptMCA3YTMuNSAzLjUgMCAxIDAgMC03djFIMy4yNGMtLjIxLjM1LS4zOC43LS41MiAxSDhhMi41IDIuNSAwIDEgMSAwIDNIMi43MmMuMTQuMy4zLjY1LjUyIDFIMTB2MVptMCAwSDMuOTJjLjI3LjM0LjU3LjY4LjkyIDFIMTB2LTFaTTcuNTUgOWgtNS4yYy0uMDYuMTgtLjEuMzctLjEuNXMuMDQuMzIuMS41aDUuMmEyLjUxIDIuNTEgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRXllTGluZXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVMaW5lczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC4zOSA3LjA2Yy4zLS4zNy42My0uNzIgMS0xLjA2aDYuNlY1SDYuNjlBOS42NSA5LjY1IDAgMCAxIDEyIDMuNWMzLjY0IDAgNi4xIDEuNyA3LjYxIDMuNTYuNzYuOTIgMS4yOCAxLjg4IDEuNjMgMi43LjMzLjguNTEgMS41My41MSAxLjk5IDAgLjQ2LS4xOCAxLjItLjUxIDEuOTktLjM1LjgyLS44NyAxLjc4LTEuNjMgMi43QTkuNTEgOS41MSAwIDAgMSAxMiAyMGE5LjY1IDkuNjUgMCAwIDEtNS4zMi0xLjVIMTJ2LTFINS4zOEExMC4yIDEwLjIgMCAwIDEgNC4wNCAxNkgxMnYtLjc1YTMuNSAzLjUgMCAwIDAgMC03VjcuNUg0LjA0bC4zNS0uNDRabTYuMyAxLjQ0SDMuNGExMC44IDEwLjggMCAwIDAtLjcyIDEuNWg2LjNjLjM5LS42NyAxLTEuMiAxLjczLTEuNVpNOC42IDExSDIuMzRjLS4wNi4zLS4xLjU1LS4xLjc1IDAgLjIuMDQuNDYuMS43NWg2LjIzYTMuNTEgMy41MSAwIDAgMSAwLTEuNVptLjM4IDIuNWgtNi4zYTkuNyA5LjcgMCAwIDAgLjcyIDEuNWg3LjNhMy41MSAzLjUxIDAgMCAxLTEuNzItMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRXllTGluZXMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllTGluZXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjM1IDEyLjVhMi43NSAyLjc1IDAgMCAxIDAtMS41aC03Yy0uMDYuMy0uMS41NS0uMS43NSAwIC4yLjA0LjQ2LjEuNzVoN1ptMi42NSA2SDYuNjhBOS42NSA5LjY1IDAgMCAwIDEyIDIwYzMuNjQgMCA2LjEtMS43IDcuNjEtMy41Ni43Ni0uOTIgMS4yOS0xLjg4IDEuNjMtMi43LjMzLS44LjUxLTEuNTMuNTEtMS45OSAwLS40Ni0uMTgtMS4yLS41MS0xLjk5LS4zNC0uODItLjg3LTEuNzgtMS42My0yLjdhOS41MSA5LjUxIDAgMCAwLTcuNi0zLjU2SDEyYy0yLjE4IDAtMy45NC42MS01LjMyIDEuNUgxMmMzLjExIDAgNS4xNiAxLjQzIDYuNDUgMyAuNjUuOCAxLjEgMS42NCAxLjQgMi4zNC4zLjczLjQgMS4yNC40IDEuNDEgMCAuMTctLjEuNjgtLjQgMS40MS0uMy43LS43NSAxLjU0LTEuNCAyLjMzQTguMDIgOC4wMiAwIDAgMSAxMiAxOC41Wk01LjM4IDZhMTAuMjEgMTAuMjEgMCAwIDAtMS4zNCAxLjVIMTJWNkg1LjM4Wk0xMiA4LjVIMy40YTEwLjggMTAuOCAwIDAgMC0uNzMgMS41aDcuMmEyLjc0IDIuNzQgMCAxIDEgMCAzLjVoLTcuMmE5LjcgOS43IDAgMCAwIC43MiAxLjVIMTJ2MWE0LjI1IDQuMjUgMCAxIDAgMC04LjV2MVptMCA3LjVINC4wNGExMC43MiAxMC43MiAwIDAgMCAxLjM0IDEuNUgxMlYxNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZUxpbmVzMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllTGluZXMyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTguMDQgNS41QzkuNjYgNC42IDExLjY0IDQgMTQgNGM0LjI1IDAgNy4yNiAxLjk1IDkuMTggNC4wOGExMy40NSAxMy40NSAwIDAgMSAyLjExIDMuMTFjLjIzLjQ3LjQuOTEuNTIgMS4zLjExLjM2LjE5LjcyLjE5IDEuMDEgMCAuNTItLjIzIDEuMzctLjY0IDIuMjlBMTIgMTIgMCAwIDEgMTQgMjNjLTIuNDggMC00LjUxLS42LTYuMTUtMS41SDE0di0xSDYuMzNjLS42LS40Ny0xLjE0LS45OC0xLjYtMS41SDE0di0xYTQuNSA0LjUgMCAwIDAgMC05VjhINC44OWMuNDgtLjUyIDEuMDItMS4wMyAxLjYzLTEuNUgxNHYtMUg4LjA0Wk0xNCA5SDQuMDVjLS4zOC41MS0uNyAxLjAyLS45OCAxLjVoNy41OEE0LjQ5IDQuNDkgMCAwIDEgMTQgOVptLTQuMDMgMi41aC03LjRhOC44MSA4LjgxIDAgMCAwLS41MSAxLjVoNy40N2MuMDYtLjUzLjItMS4wNC40NC0xLjVaTTkuNTMgMTRIMi4wNWMuMDguNDIuMjMuOTQuNDYgMS41aDcuNDZhNC40NyA0LjQ3IDAgMCAxLS40NC0xLjVabTEuMTIgMi41SDIuOThjLjI2LjQ4LjU3Ljk5Ljk0IDEuNUgxNGE0LjQ5IDQuNDkgMCAwIDEtMy4zNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVMaW5lczI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVMaW5lczI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDRjLTIuMzYgMC00LjM0LjYtNS45NiAxLjVIMTRjMy43NSAwIDYuMzcgMS43IDguMDcgMy41OC44NS45NSAxLjQ3IDEuOTMgMS44NyAyLjc2LjIuNDIuMzUuNzkuNDQgMS4wOS4xLjMuMTIuNS4xMi41NyAwIC4yLS4xMy44Mi0uNSAxLjY4YTEwLjUxIDEwLjUxIDAgMCAxLTEwIDYuMzJINy44NWMxLjY0LjkgMy42NyAxLjUgNi4xNSAxLjVhMTIgMTIgMCAwIDAgMTEuMzYtNy4yMWMuNDEtLjkyLjY0LTEuNzcuNjQtMi4yOSAwLS4zLS4wOC0uNjUtLjE5LTEuMDJhOS4zNyA5LjM3IDAgMCAwLS41Mi0xLjI5IDEzLjQ1IDEzLjQ1IDAgMCAwLTIuMS0zLjExQTEyLjA4IDEyLjA4IDAgMCAwIDE0IDRabTAgMi41SDYuNTJjLS42MS40Ny0xLjE1Ljk4LTEuNjMgMS41SDE0VjYuNVpNMTQgOUg0LjA1Yy0uMzguNTEtLjcgMS4wMi0uOTggMS41aDkuMTNhMy41IDMuNSAwIDEgMSAwIDZIMi45OGMuMjYuNDguNTcuOTkuOTQgMS41SDE0di41YTUgNSAwIDAgMCAwLTEwVjlaTTIuNTYgMTEuNWg4LjU3Yy0uMy40NC0uNTIuOTUtLjYgMS41SDIuMDdhOC44MSA4LjgxIDAgMCAxIC41LTEuNVptLS41IDIuNWg4LjQ4Yy4wNy41NS4yOCAxLjA2LjU5IDEuNUgyLjVhNy42MiA3LjYyIDAgMCAxLS40Ni0xLjVaTTE0IDE5SDQuNzJjLjQ3LjUyIDEgMS4wMyAxLjYgMS41SDE0VjE5WlwiXSk7XG5leHBvcnQgY29uc3QgRXllTGluZXMzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVMaW5lczMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOC42MyA2YzEuOTMtMS4xOSA0LjM2LTIgNy4zNy0yIDUuMzcgMCA4Ljg5IDIuNTggMTEuMDMgNS4yN2ExNi41MyAxNi41MyAwIDAgMSAyLjc4IDUuMjNjLjEuMzUuMTkuNzMuMTkgMXMtLjA5LjY1LS4xOSAxYTE2LjUzIDE2LjUzIDAgMCAxLTIuNzggNS4yM0ExMy42NCAxMy42NCAwIDAgMSAxNiAyN2MtMy4wMSAwLTUuNDQtLjgxLTcuMzctMkgxNnYtMS41SDYuNjNhMTQuOSAxNC45IDAgMCAxLTEuODQtMkgxNnYtMWE1IDUgMCAwIDAgMC0xMHYtMUg0Ljc5YTE1LjY4IDE1LjY4IDAgMCAxIDEuODQtMkgxNlY2SDguNjNabTUuMTkgNUgzLjc2Yy0uNDMuNzEtLjc3IDEuNC0xLjAzIDJoOC45NGE1LjAyIDUuMDIgMCAwIDEgMi4xNS0yWm0tMi43MiAzLjVIMi4xOWMtLjEuMzUtLjE5LjczLS4xOSAxcy4wOS42NS4xOSAxaDguOTFhNS4wMiA1LjAyIDAgMCAxIDAtMlptLjU3IDMuNUgyLjczYy4yNi42LjYgMS4yOSAxLjAzIDJoMTAuMDZhNS4wMiA1LjAyIDAgMCAxLTIuMTUtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZUxpbmVzMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZUxpbmVzMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOC42MyA2YzEuOTMtMS4xOSA0LjM2LTIgNy4zNy0yIDUuMzcgMCA4Ljg5IDIuNTggMTEuMDMgNS4yN2ExNi41MyAxNi41MyAwIDAgMSAyLjc4IDUuMjNjLjEuMzUuMi43My4yIDFzLS4xLjY1LS4yIDFhMTYuNTMgMTYuNTMgMCAwIDEtMi43OCA1LjIzQTEzLjY0IDEzLjY0IDAgMCAxIDE2IDI3Yy0zLjAxIDAtNS40NC0uODEtNy4zNy0ySDE2YzQuNjMgMCA3LjYyLTIuMiA5LjQ3LTQuNTJhMTQuNTMgMTQuNTMgMCAwIDAgMi40Mi00LjUzYy4wNy0uMjUuMS0uMzkuMS0uNDRsLjAxLS4wMXYtLjAxbC0uMS0uNDRhMTQuNTMgMTQuNTMgMCAwIDAtMi40Mi00LjU0QTExLjY0IDExLjY0IDAgMCAwIDE1Ljk5IDZIOC42M1ptLTIgMS41SDE2djJINC43OWExNS42OCAxNS42OCAwIDAgMSAxLjg0LTJabTkuMzcgMTRhNiA2IDAgMCAwIDAtMTJWMTFIMy43NmMtLjQzLjcxLS43NyAxLjQtMS4wMyAyaDEwLjE1YTQgNCAwIDEgMSAwIDVIMi43M2MuMjYuNi42IDEuMjkgMS4wMyAySDE2djEuNVptMCAwdjJINi42M2ExNC45IDE0LjkgMCAwIDEtMS44NC0ySDE2Wm0tMy44Ny03SDIuMTljLS4xLjM1LS4xOS43My0uMTkgMXMuMDkuNjUuMTkgMWg5Ljk0YTQuMDEgNC4wMSAwIDAgMSAwLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVMaW5lczQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZUxpbmVzNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xNC4yMyA5LjVDMTYuODYgOCAyMC4wOCA3IDI0IDdjNy43IDAgMTIuNzIgMy44NCAxNS43OCA3LjgzYTI0Ljc2IDI0Ljc2IDAgMCAxIDMuOTYgNy43NWMuMTUuNTMuMjYgMS4wNi4yNiAxLjQyIDAgLjM2LS4xMS44OS0uMjYgMS40Mi0uMTYuNTgtLjQgMS4zLS43MyAyLjEyYTI0Ljc2IDI0Ljc2IDAgMCAxLTMuMjMgNS42M0ExOS4yNSAxOS4yNSAwIDAgMSAyNCA0MWMtMy45MiAwLTcuMTQtMS05Ljc3LTIuNUgyNHYtMkgxMS4zOEEyMS4xIDIxLjEgMCAwIDEgOC45IDM0SDI0di0yYTggOCAwIDEgMCAwLTE2di0ySDguOWEyMS4xIDIxLjEgMCAwIDEgMi40OC0yLjVIMjR2LTJoLTkuNzdabTMuOTYgOUg1LjljLjQxLS44LjktMS42NSAxLjQ4LTIuNUgyNGMtMi4yOSAwLTQuMzUuOTYtNS44MSAyLjVabS0xLjM5IDJINC45OGExOS4zMSAxOS4zMSAwIDAgMC0uODMgMi41aDExLjkxYy4xMS0uODkuMzctMS43My43NC0yLjVabS0uNzQgNC41SDQuMTVsLjEuNDJjLjE3LjU3LjQgMS4yOC43MyAyLjA4SDE2LjhhNy45NSA3Ljk1IDAgMCAxLS43NC0yLjVabTIuMTMgNC41YTcuOTggNy45OCAwIDAgMCA1LjggMi41SDcuNGMtLjU5LS44NS0xLjA4LTEuNy0xLjQ5LTIuNUgxOC4yWlwiXSk7XG5leHBvcnQgY29uc3QgRXllTGluZXM0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllTGluZXM0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk00Ljk4IDIwLjVoMTMuNTRjLS40Ny43NC0uOCAxLjYtLjk0IDIuNUg0LjE1bC4xLS40MmMuMTctLjU3LjQtMS4yOC43My0yLjA4Wk00LjE1IDI1aDEzLjQzYy4xNC45LjQ3IDEuNzYuOTQgMi41SDQuOThhMTkuMzEgMTkuMzEgMCAwIDEtLjgzLTIuNVpNMjQgN2MtMy45MiAwLTcuMTQgMS05Ljc3IDIuNUgyNGM2LjczIDAgMTEuMDggMy4zMiAxMy44IDYuODVhMjIuMjYgMjIuMjYgMCAwIDEgMy41MyA2LjkgNS42OCA1LjY4IDAgMCAxIC4xNy43NSAxNi44OSAxNi44OSAwIDAgMS0uOCAyLjU5IDIyLjI2IDIyLjI2IDAgMCAxLTIuOSA1LjA2QTE2Ljc1IDE2Ljc1IDAgMCAxIDI0IDM4LjVoLTkuNzdBMTkuMTYgMTkuMTYgMCAwIDAgMjQgNDFjNy43IDAgMTIuNzItMy44NCAxNS43Ny03LjgzYTI0Ljc2IDI0Ljc2IDAgMCAwIDMuOTctNy43NWMuMTUtLjUzLjI2LTEuMDYuMjYtMS40MiAwLS4zNi0uMTEtLjg5LS4yNi0xLjQyYTI0Ljc2IDI0Ljc2IDAgMCAwLTMuOTctNy43NUExOS4yNSAxOS4yNSAwIDAgMCAyNCA3Wm0tMTIuNjIgNC41SDI0VjE0SDguODlhMjEuMSAyMS4xIDAgMCAxIDIuNDktMi41Wm0tNCA0LjVIMjR2LTFhOSA5IDAgMSAxIDAgMTh2LTFINy4zOGMtLjU4LS44NS0xLjA3LTEuNy0xLjQ4LTIuNWgxNC42M2E2LjUgNi41IDAgMSAwIDMuNDctMTJjLTEuMjggMC0yLjQ2LjM3LTMuNDcgMUg1LjljLjQxLS44LjktMS42NSAxLjQ4LTIuNVptMS41IDE4SDI0djIuNUgxMS4zOGEyMS4xIDIxLjEgMCAwIDEtMi41LTIuNVpNMjQgMzR2Mi41WlwiXSk7XG5leHBvcnQgY29uc3QgRXllT2ZmMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllT2ZmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm0xMC4xMiAxMC44MyA0LjAzIDQuMDJhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43bDMuMjMgMy4yM2E2LjcgNi43IDAgMCAwLTIuMyAzLjA4bC0uMDUuMTUtLjAxLjA2cy0uMDguNS4zNS42MWEuNS41IDAgMCAwIC42MS0uMzVMMyA4LjZhMy4wMiAzLjAyIDAgMCAxIC4yLS41MmMuMTYtLjM0LjQtLjguNzgtMS4yNi4zLS4zNi42Ni0uNzIgMS4xMy0xLjAybDEuNTcgMS41OGEyLjUgMi41IDAgMSAwIDMuNDUgMy40NVpNNi4zMiA0LjJsLjg1Ljg1QzcuNDMgNS4wMiA3LjcxIDUgOCA1YzIuMDQgMCAzLjI5LjkxIDQuMDMgMS44MkE1LjcgNS43IDAgMCAxIDEzIDguNnYuMDJhLjUuNSAwIDAgMCAuOTctLjI1di0uMDJhMi4zIDIuMyAwIDAgMC0uMDYtLjE4IDYuNyA2LjcgMCAwIDAtMS4xMi0xLjk4QTUuOTUgNS45NSAwIDAgMCA4IDRhNi45IDYuOSAwIDAgMC0xLjY4LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVPZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllT2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTAuMTIgMTAuODMgNC4wMyA0LjAyYS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN2wzLjIzIDMuMjNhNi43IDYuNyAwIDAgMC0yLjMgMy4wOGwtLjA1LjE1LS4wMS4wNnMtLjA4LjUuMzUuNjFhLjUuNSAwIDAgMCAuNjEtLjM1TDMgOC42YTMuMDIgMy4wMiAwIDAgMSAuMi0uNTJjLjE2LS4zNC40LS44Ljc4LTEuMjYuMy0uMzYuNjYtLjcyIDEuMTMtMS4wMmwxLjU3IDEuNThhMi41IDIuNSAwIDEgMCAzLjQ1IDMuNDVabS0uNzQtLjc0YTEuNSAxLjUgMCAxIDEtMS45Ny0xLjk3bDEuOTcgMS45N1ptLTMuMDYtNS45Ljg1Ljg2QzcuNDMgNS4wMiA3LjcxIDUgOCA1YzIuMDQgMCAzLjI5LjkxIDQuMDMgMS44MkE1LjcgNS43IDAgMCAxIDEzIDguNnYuMDJhLjUuNSAwIDAgMCAuOTctLjI1di0uMDJhMi4zIDIuMyAwIDAgMC0uMDYtLjE4IDYuNyA2LjcgMCAwIDAtMS4xMi0xLjk4QTUuOTUgNS45NSAwIDAgMCA4IDRhNi45IDYuOSAwIDAgMC0xLjY4LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMy41IDMuNWE4LjEgOC4xIDAgMCAwLTMuMzcgNS4wNS41LjUgMCAxIDAgLjk4LjIgNy4wOSA3LjA5IDAgMCAxIDMuMS00LjUzbDEuNTkgMS41OWEzLjUgMy41IDAgMSAwIDQuODggNC44OGw0LjMyIDQuMzFhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTEwLjEyIDhsMy4zNyAzLjM3QTMuNSAzLjUgMCAwIDAgMTAuMTIgOFpNNy41MyA1LjQxbC44LjhDOC44NyA2LjA3IDkuNDMgNiAxMCA2YzMuMiAwIDYuMDYgMi4zMyA2Ljc0IDUuNmEuNS41IDAgMSAwIC45OC0uMkE3Ljk3IDcuOTcgMCAwIDAgMTAgNWMtLjg2IDAtMS42OS4xNC0yLjQ3LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgRXllT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZU9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMy41IDMuNWE4LjEgOC4xIDAgMCAwLTMuMzcgNS4wNS41LjUgMCAxIDAgLjk4LjIgNy4wOSA3LjA5IDAgMCAxIDMuMS00LjUzbDEuNiAxLjU5YTMuNSAzLjUgMCAxIDAgNC44OCA0Ljg5bDQuMyA0LjNhLjUuNSAwIDAgMCAuNzEtLjdsLTE1LTE1Wm05LjI3IDEwLjY4YTIuNSAyLjUgMCAxIDEtMy40NS0zLjQ1bDMuNDUgMy40NVptLTItNC44MyAzLjM4IDMuMzhBMy41IDMuNSAwIDAgMCAxMC4xMiA4Wk0xMCA2Yy0uNTcgMC0xLjEzLjA3LTEuNjcuMjFsLS44LS44QTcuNjUgNy42NSAwIDAgMSAxMCA1YzMuNyAwIDYuOTQgMi42NyA3LjcyIDYuNGEuNS41IDAgMCAxLS45OC4yQTYuOTcgNi45NyAwIDAgMCAxMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRXllT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yLjIyIDIuMjJhLjc1Ljc1IDAgMCAwLS4wNy45OGwuMDcuMDggNC4wMyA0LjAzYTkuOTkgOS45OSAwIDAgMC0zLjk1IDUuNzUuNzUuNzUgMCAwIDAgMS40NS4zNyA4LjQ5IDguNDkgMCAwIDEgMy41OC01LjA0bDEuODEgMS44MUEzLjk5IDMuOTkgMCAwIDAgMTIgMTdjMS4wOSAwIDIuMDgtLjQzIDIuOC0xLjE0bDUuOTIgNS45MmEuNzUuNzUgMCAwIDAgMS4xMy0uOThsLS4wNy0uMDgtNi4xMS02LjExLTYuOTUtNi45NS0xLjEzLTEuMTMtNC4zMS00LjMxYS43NS43NSAwIDAgMC0xLjA2IDBaTTEyIDUuNWExMCAxMCAwIDAgMC0yLjg5LjQybDEuMjQgMS4yNGE4LjUyIDguNTIgMCAwIDEgOS45IDYuMjcuNzUuNzUgMCAwIDAgMS40NS0uMzZBMTAgMTAgMCAwIDAgMTIgNS41Wm0uMiAzLjUgMy44IDMuODFhNCA0IDAgMCAwLTMuOC0zLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllT2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMi4yMiAyLjIyYS43NS43NSAwIDAgMC0uMDcuOThsLjA3LjA4IDQuMDMgNC4wM2E5Ljk5IDkuOTkgMCAwIDAtMy45NSA1Ljc1Ljc1Ljc1IDAgMCAwIDEuNDUuMzcgOC40OSA4LjQ5IDAgMCAxIDMuNTgtNS4wNGwxLjgxIDEuODFBMy45OSAzLjk5IDAgMCAwIDEyIDE3YzEuMDkgMCAyLjA4LS40MyAyLjgtMS4xNGw1LjkyIDUuOTJhLjc1Ljc1IDAgMCAwIDEuMTMtLjk4bC0uMDctLjA4LTYuMTEtNi4xMS0xLjItMS4yLTIuODctMi44Ny0yLjg4LTIuODgtMS4xMy0xLjEzLTQuMzEtNC4zMWEuNzUuNzUgMCAwIDAtMS4wNiAwWm03Ljk4IDkuMDUgMy41NCAzLjUzQTIuNSAyLjUgMCAwIDEgOS41IDEzYzAtLjY3LjI3LTEuMjguNy0xLjczWk0xMiA1LjVhMTAgMTAgMCAwIDAtMi44OS40MmwxLjI0IDEuMjRhOC41MiA4LjUyIDAgMCAxIDkuOSA2LjI3Ljc1Ljc1IDAgMCAwIDEuNDUtLjM2QTEwIDEwIDAgMCAwIDEyIDUuNVptLjIgMy41IDMuOCAzLjgxYTQgNCAwIDAgMC0zLjgtMy44WlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmcxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVUcmFja2luZzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoMS41YS41LjUgMCAwIDEgMCAxSDRhMSAxIDAgMCAwLTEgMXYxLjVhLjUuNSAwIDAgMS0xIDBWNFptMCA4YzAgMS4xLjkgMiAyIDJoMS41YS41LjUgMCAwIDAgMC0xSDRhMSAxIDAgMCAxLTEtMXYtMS41YS41LjUgMCAwIDAtMSAwVjEyWk0xMiAyYTIgMiAwIDAgMSAyIDJ2MS41YS41LjUgMCAwIDEtMSAwVjRhMSAxIDAgMCAwLTEtMWgtMS41YS41LjUgMCAwIDEgMC0xSDEyWm0yIDEwYTIgMiAwIDAgMS0yIDJoLTEuNWEuNS41IDAgMCAxIDAtMUgxMmExIDEgMCAwIDAgMS0xdi0xLjVhLjUuNSAwIDAgMSAxIDBWMTJaTTUuNSA5YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWk0zLjMxIDcuOTZhLjUuNSAwIDAgMCAuNjUtLjI3di0uMDFMNCA3LjYyYy4wMi0uMDYuMDctLjE0LjEzLS4yNC4xMy0uMi4zNC0uNDguNjQtLjc2QTQuNiA0LjYgMCAwIDEgOCA1LjVhNC42IDQuNiAwIDAgMSAzLjIzIDEuMTIgMy43MyAzLjczIDAgMCAxIC44IDEuMDZzLjI1LjQ1LjY2LjI4YS41LjUgMCAwIDAgLjI3LS42NWMtLjEtLjIyIDAgMCAwIDBWNy4zYTEuOCAxLjggMCAwIDAtLjA2LS4xM2MtLjA0LS4wOC0uMS0uMi0uMTktLjMzYTQuNzMgNC43MyAwIDAgMC0uODEtLjk2QTUuNiA1LjYgMCAwIDAgOCA0LjVhNS42IDUuNiAwIDAgMC0zLjkgMS4zOEE0LjczIDQuNzMgMCAwIDAgMy4wNCA3LjN2LjAxYS41LjUgMCAwIDAgLjI3LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmcxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmcxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnYxLjVhLjUuNSAwIDAgMCAxIDBWNGExIDEgMCAwIDEgMS0xaDEuNWEuNS41IDAgMCAwIDAtMUg0Wm0wIDEyYTIgMiAwIDAgMS0yLTJ2LTEuNWEuNS41IDAgMCAxIDEgMFYxMmExIDEgMCAwIDAgMSAxaDEuNWEuNS41IDAgMCAxIDAgMUg0Wk0xNCA0YTIgMiAwIDAgMC0yLTJoLTEuNWEuNS41IDAgMCAwIDAgMUgxMmExIDEgMCAwIDEgMSAxdjEuNWEuNS41IDAgMCAwIDEgMFY0Wm0tMiAxMGEyIDIgMCAwIDAgMi0ydi0xLjVhLjUuNSAwIDAgMC0xIDBWMTJhMSAxIDAgMCAxLTEgMWgtMS41YS41LjUgMCAwIDAgMCAxSDEyWk01LjUgOWEyLjUgMi41IDAgMSAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMFpNOCA3LjVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNabS00LjY5LjQ2YS41LjUgMCAwIDAgLjY1LS4yN3YtLjAxTDQgNy42MmMuMDItLjA2LjA3LS4xNC4xMy0uMjQuMTMtLjIuMzQtLjQ4LjY0LS43NkE0LjYgNC42IDAgMCAxIDggNS41YTQuNiA0LjYgMCAwIDEgMy4yMyAxLjEyIDMuNzMgMy43MyAwIDAgMSAuOCAxLjA2cy4yNS40NS42Ni4yOGEuNS41IDAgMCAwIC4yNy0uNjVjLS4xLS4yMiAwIDAgMCAwVjcuM2ExLjggMS44IDAgMCAwLS4wNi0uMTNjLS4wNC0uMDgtLjEtLjItLjE5LS4zM2E0LjczIDQuNzMgMCAwIDAtLjgxLS45NkE1LjYgNS42IDAgMCAwIDggNC41YTUuNiA1LjYgMCAwIDAtMy45IDEuMzhBNC43MyA0LjczIDAgMCAwIDMuMDQgNy4zdi4wMWEuNS41IDAgMCAwIC4yNy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZVRyYWNraW5nMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmcyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2M2EuNS41IDAgMCAxLTEgMHYtM0EyLjUgMi41IDAgMCAxIDQuNSAyaDNhLjUuNSAwIDAgMSAwIDFoLTNabTAgMTRBMS41IDEuNSAwIDAgMSAzIDE1LjV2LTNhLjUuNSAwIDAgMC0xIDB2M0EyLjUgMi41IDAgMCAwIDQuNSAxOGgzYS41LjUgMCAwIDAgMC0xaC0zWk0xNyA0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zYS41LjUgMCAwIDEgMC0xaDNBMi41IDIuNSAwIDAgMSAxOCA0LjV2M2EuNS41IDAgMCAxLTEgMHYtM1pNMTUuNSAxN2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNhLjUuNSAwIDAgMSAxIDB2M2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTNhLjUuNSAwIDAgMSAwLTFoM1pNNyAxMS41YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMFpNNC45NSA5LjcyYS41LjUgMCAwIDEtLjktLjQ0bC40NS4yMi0uNDUtLjIydi0uMDFsLjAxLS4wMWEyLjEgMi4xIDAgMCAxIC4wOC0uMTRsLjI1LS4zOEE2Ljg1IDYuODUgMCAwIDEgMTAgNmE2Ljg1IDYuODUgMCAwIDEgNS42MiAyLjc0IDUuMTMgNS4xMyAwIDAgMSAuMzMuNTJ2LjAxbC0uNDQuMjMuNDUtLjIyYS41LjUgMCAwIDEtLjkuNDVWOS43YTIuNSAyLjUgMCAwIDAtLjI1LS4zOUE1Ljg2IDUuODYgMCAwIDAgMTAgN2E1Ljg2IDUuODYgMCAwIDAtNC44IDIuMzIgNC4xNCA0LjE0IDAgMCAwLS4yNC4zOWwtLjAxLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmcyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaDNhLjUuNSAwIDAgMCAwLTFoLTNBMi41IDIuNSAwIDAgMCAyIDQuNXYzYS41LjUgMCAwIDAgMSAwdi0zWm0wIDExYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNhLjUuNSAwIDAgMSAwIDFoLTNBMi41IDIuNSAwIDAgMSAyIDE1LjV2LTNhLjUuNSAwIDAgMSAxIDB2M1pNMTUuNSAzYy44MyAwIDEuNS42NyAxLjUgMS41djNhLjUuNSAwIDAgMCAxIDB2LTNBMi41IDIuNSAwIDAgMCAxNS41IDJoLTNhLjUuNSAwIDAgMCAwIDFoM1pNMTcgMTUuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNhLjUuNSAwIDAgMC0xIDB2M1ptLTEwLTRhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwWm0zLTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tNS4wNS4yMmEuNS41IDAgMCAxLS45LS40NGwuNDUuMjItLjQ1LS4yMnYtLjAxbC4wMS0uMDFhMi4xIDIuMSAwIDAgMSAuMDgtLjE0bC4yNS0uMzhBNi44NSA2Ljg1IDAgMCAxIDEwIDZhNi44NSA2Ljg1IDAgMCAxIDUuNjIgMi43NCA1LjEzIDUuMTMgMCAwIDEgLjMzLjUydi4wMWwtLjQ0LjIzLjQ1LS4yMmEuNS41IDAgMCAxLS45LjQ1VjkuN2EyLjUgMi41IDAgMCAwLS4yNS0uMzlBNS44NiA1Ljg2IDAgMCAwIDEwIDdhNS44NiA1Ljg2IDAgMCAwLTQuOCAyLjMyIDQuMTQgNC4xNCAwIDAgMC0uMjQuMzlsLS4wMS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZVRyYWNraW5nMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmcyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuNDkgMTUuNjVhLjc1Ljc1IDAgMCAwLTEuNDkgMFYxOS40M0EyLjc1IDIuNzUgMCAwIDAgNC41OCAyMmgzLjc3YS43NS43NSAwIDAgMCAwLTEuNUg0LjYyYTEuMjUgMS4yNSAwIDAgMS0xLjEyLTEuMTJ2LTMuNjNsLS4wMS0uMVptMTguNSAwYS43NS43NSAwIDAgMC0xLjUuMXYzLjYzYy0uMDYuNjMtLjYgMS4xMi0xLjI0IDEuMTJoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNjZBMi43NSAyLjc1IDAgMCAwIDIyIDE5LjI1di0zLjVsLS4wMS0uMVptLTEzLTEyLjlBLjc1Ljc1IDAgMCAwIDguMjYgMkg0LjU4QTIuNzUgMi43NSAwIDAgMCAyIDQuNzZ2My42YS43NS43NSAwIDAgMCAxLjUtLjFWNC42MkMzLjU3IDQgNC4xIDMuNSA0Ljc1IDMuNWgzLjZBLjc1Ljc1IDAgMCAwIDkgMi43NFptMTAuNDItLjc0TDE5LjI1IDJoLTMuNmEuNzUuNzUgMCAwIDAgMCAxLjVoMy43MmMuNi4wNyAxLjA2LjUzIDEuMTIgMS4xMnYzLjYzbC4wMS4xYS43NS43NSAwIDAgMCAxLjQ5IDBWNC41OEEyLjc1IDIuNzUgMCAwIDAgMTkuNDEgMlpNOC41IDEzLjVhMy41IDMuNSAwIDEgMSA3IDAgMy41IDMuNSAwIDAgMS03IDBabS0yLjI5LTEuNzZ2LjAyYS43NS43NSAwIDAgMS0uOTcuNDRjLS42LS4yMi0uNDQtLjk3LS40NC0uOTd2LS4wMmEyLjUgMi41IDAgMCAxIC4xLS4yQTcuNTcgNy41NyAwIDAgMSAxMiA2Ljc1YTcuNzMgNy43MyAwIDAgMSA2Ljg0IDMuNzUgNi4zIDYuMyAwIDAgMSAuMzUuNzF2LjAyaC4wMWEuNzUuNzUgMCAwIDEtMS40LjUzbC0uMDEtLjAyLS4wNC0uMS0uMjEtLjM5YTYuMDcgNi4wNyAwIDAgMC01LjU0LTMgNi4yNCA2LjI0IDAgMCAwLTUuNTQgMyA0Ljc4IDQuNzggMCAwIDAtLjI1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVUcmFja2luZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVUcmFja2luZzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguMjUgMmEuNzUuNzUgMCAwIDEgLjEgMS41aC0zLjZjLS42NSAwLTEuMTguNS0xLjI1IDEuMTJ2My42M2EuNzUuNzUgMCAwIDEtMS41LjF2LTMuNmEyLjc1IDIuNzUgMCAwIDEgMi41OC0yLjc0TDQuNzUgMmgzLjVaTTMuNDkgMTUuNjVhLjc1Ljc1IDAgMCAwLTEuNDkgMFYxOS40M0EyLjc1IDIuNzUgMCAwIDAgNC41OCAyMmgzLjc3YS43NS43NSAwIDAgMCAwLTEuNUg0LjYyYTEuMjUgMS4yNSAwIDAgMS0xLjEyLTEuMTJ2LTMuNjNsLS4wMS0uMVptMTguNSAwYS43NS43NSAwIDAgMC0xLjUuMXYzLjYzYy0uMDYuNjMtLjYgMS4xMi0xLjI0IDEuMTJoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNjZBMi43NSAyLjc1IDAgMCAwIDIyIDE5LjI1di0zLjVsLS4wMS0uMVpNMTkuNDEgMiAxOS4yNSAyaC0zLjZhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNzJjLjYuMDcgMS4wNi41MyAxLjEyIDEuMTJ2My42M2wuMDEuMWEuNzUuNzUgMCAwIDAgMS40OSAwVjQuNThBMi43NSAyLjc1IDAgMCAwIDE5LjQxIDJabS0xMy4yIDkuNzV2LS4wMmwuMDQtLjEuMjEtLjM5YTYuMDcgNi4wNyAwIDAgMSA1LjU0LTMgNi4yNCA2LjI0IDAgMCAxIDUuNTQgMyA0Ljc4IDQuNzggMCAwIDEgLjI1LjV2LjAxYy4xNi4zOC41OS41OS45Ny40NGEuNzUuNzUgMCAwIDAgLjQ0LS45NnYtLjAzYTMuMiAzLjIgMCAwIDAtLjEtLjJBNy41NyA3LjU3IDAgMCAwIDEyIDYuNzVhNy43MyA3LjczIDAgMCAwLTYuODQgMy43NSA2LjI2IDYuMjYgMCAwIDAtLjM1Ljcxdi4wMmMtLjAxIDAtLjE3Ljc1LjQzLjk3LjM4LjE1LjgxLS4wNS45Ni0uNDNaTTEyIDEwYTMuNSAzLjUgMCAxIDAgMCA3IDMuNSAzLjUgMCAwIDAgMC03Wm0tMiAzLjVhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmdPZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVUcmFja2luZ09mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTMuMDIgMTMuNzIgMS4xMyAxLjEzYS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN2wxLjEzIDEuMTNBMiAyIDAgMCAwIDIgNHYxLjVhLjUuNSAwIDAgMCAxIDBWNGExIDEgMCAwIDEgLjAzLS4yNkw0LjcgNS40MUE0Ljk1IDQuOTUgMCAwIDAgMy4wNCA3LjN2LjAxYS41LjUgMCAwIDAgLjkyLjM4di0uMDFMNCA3LjYyYy4wMi0uMDYuMDctLjE0LjEzLS4yNGEzLjczIDMuNzMgMCAwIDEgMS4zLTEuMjRsLjk1Ljk1YTIuNSAyLjUgMCAxIDAgMy41MyAzLjUzbDIuMzUgMi4zNUExIDEgMCAwIDEgMTIgMTNoLTEuNWEuNS41IDAgMCAwIDAgMUgxMmEyIDIgMCAwIDAgMS4wMi0uMjhabS02LjI5LTkuMS45Ljg5TDggNS41YTQuNiA0LjYgMCAwIDEgMy4yMyAxLjEyIDMuNzMgMy43MyAwIDAgMSAuOCAxLjA2cy4yNS40NS42Ni4yOGEuNS41IDAgMCAwIC4yNy0uNjVjLS4xLS4yMiAwIDAgMCAwVjcuM2ExLjggMS44IDAgMCAwLS4wNi0uMTNjLS4wNC0uMDgtLjEtLjItLjE5LS4zM2E0LjczIDQuNzMgMCAwIDAtLjgxLS45NkE1LjYgNS42IDAgMCAwIDggNC41Yy0uNDYgMC0uODguMDQtMS4yNy4xMVpNMTMgMTAuODdsMSAxVjEwLjVhLjUuNSAwIDAgMC0xIDB2LjM4Wk00LjEyIDJsMSAxaC4zOGEuNS41IDAgMCAwIDAtMUg0LjEyWk0yIDEyYzAgMS4xLjkgMiAyIDJoMS41YS41LjUgMCAwIDAgMC0xSDRhMSAxIDAgMCAxLTEtMXYtMS41YS41LjUgMCAwIDAtMSAwVjEyWk0xMiAyYTIgMiAwIDAgMSAyIDJ2MS41YS41LjUgMCAwIDEtMSAwVjRhMSAxIDAgMCAwLTEtMWgtMS41YS41LjUgMCAwIDEgMC0xSDEyWlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmdPZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdPZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm0xMy4wMiAxMy43MiAxLjEzIDEuMTNhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43bDEuMTMgMS4xM0EyIDIgMCAwIDAgMiA0djEuNWEuNS41IDAgMCAwIDEgMFY0YTEgMSAwIDAgMSAuMDMtLjI2TDQuNyA1LjQxQTQuOTUgNC45NSAwIDAgMCAzLjA0IDcuM3YuMDFhLjUuNSAwIDAgMCAuOTIuMzh2LS4wMUw0IDcuNjJjLjAyLS4wNi4wNy0uMTQuMTMtLjI0YTMuNzMgMy43MyAwIDAgMSAxLjMtMS4yNGwuOTUuOTVhMi41IDIuNSAwIDEgMCAzLjUzIDMuNTNsMi4zNSAyLjM1QTEgMSAwIDAgMSAxMiAxM2gtMS41YS41LjUgMCAxIDAgMCAxSDEyYTIgMiAwIDAgMCAxLjAyLS4yOFpNOS4yIDkuOWExLjUgMS41IDAgMSAxLTIuMS0yLjFsMi4xIDIuMVpNNi43MyA0LjYxbC45LjlMOCA1LjVhNC42IDQuNiAwIDAgMSAzLjIzIDEuMTIgMy43MyAzLjczIDAgMCAxIC44IDEuMDZzLjI1LjQ1LjY2LjI4YS41LjUgMCAwIDAgLjI3LS42NWMtLjEtLjIyIDAgMCAwIDBWNy4zYTEuODUgMS44NSAwIDAgMC0uMDYtLjEzYy0uMDQtLjA4LS4xLS4yLS4xOS0uMzNhNC43MyA0LjczIDAgMCAwLS44MS0uOTZBNS42IDUuNiAwIDAgMCA4IDQuNWMtLjQ2IDAtLjg4LjA0LTEuMjcuMTFaTTEzIDEwLjg4bDEgMVYxMC41YS41LjUgMCAxIDAtMSAwdi4zOFpNNC4xMiAybDEgMWguMzhhLjUuNSAwIDAgMCAwLTFINC4xMlpNNCAxNGEyIDIgMCAwIDEtMi0ydi0xLjVhLjUuNSAwIDEgMSAxIDBWMTJhMSAxIDAgMCAwIDEgMWgxLjVhLjUuNSAwIDEgMSAwIDFINFpNMTQgNGEyIDIgMCAwIDAtMi0yaC0xLjVhLjUuNSAwIDAgMCAwIDFIMTJhMSAxIDAgMCAxIDEgMXYxLjVhLjUuNSAwIDAgMCAxIDBWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZVRyYWNraW5nT2ZmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNDEgMy4xMkMyLjE1IDMuNTIgMiA0IDIgNC41djNhLjUuNSAwIDAgMCAxIDB2LTNjMC0uMjMuMDUtLjQ1LjE1LS42NUw2LjI5IDdhNi42IDYuNiAwIDAgMC0yLjIzIDIuMjd2LjAxbC40NC4yMy0uNDUtLjIyYS41LjUgMCAwIDAgLjkuNDR2LS4wMWEyLjM5IDIuMzkgMCAwIDEgLjI1LS4zOSA1LjQ5IDUuNDkgMCAwIDEgMS44Mi0xLjZsMS4zIDEuM2EzIDMgMCAxIDAgNC4xNiA0LjE3bDMuNjcgMy42NmMtLjIuMS0uNDIuMTUtLjY1LjE1aC0zYS41LjUgMCAwIDAgMCAxaDNjLjUgMCAuOTgtLjE1IDEuMzgtLjQxbC4yNy4yNmEuNS41IDAgMCAwIC43LS43bC0uMjYtLjI3LS43NC0uNzMtMy45My0zLjk0LTMuNjMtMy42M0w4LjAxIDcuM2wtLjc4LS43OC0zLjM4LTMuMzctLjczLS43NC0uMjctLjI2YS41LjUgMCAxIDAtLjcuN2wuMjYuMjdabTE1LjU3IDEyLjczLjAyLS4zNXYtM2EuNS41IDAgMCAwLTEgMHYyLjM4bC45OC45N1ptLTguODEtOC44QTcgNyAwIDAgMSAxMCA3YTUuODYgNS44NiAwIDAgMSA0LjggMi4zMiA0LjEzIDQuMTMgMCAwIDEgLjI0LjM5bC4wMS4wMWEuNS41IDAgMCAwIC45LS40NHYtLjAxbC0uMDEtLjAxYTEuNyAxLjcgMCAwIDAtLjA4LS4xNGwtLjI1LS4zOEE2Ljg1IDYuODUgMCAwIDAgMTAgNmMtLjYzIDAtMS4yLjA3LTEuNy4xOGwuODYuODdabTYuNzggMi4yMy0uMDYuMDMtLjM5LjE5LjQ1LS4yMlpNNS4xMiAzSDcuNWEuNS41IDAgMCAwIDAtMWgtM2MtLjEyIDAtLjI0IDAtLjM1LjAybC45Ny45OFpNMyAxNS41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNhLjUuNSAwIDAgMSAwIDFoLTNBMi41IDIuNSAwIDAgMSAyIDE1LjV2LTNhLjUuNSAwIDAgMSAxIDB2M1ptMTQtMTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zYS41LjUgMCAwIDEgMC0xaDNBMi41IDIuNSAwIDAgMSAxOCA0LjV2M2EuNS41IDAgMCAxLTEgMHYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZVRyYWNraW5nT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZVRyYWNraW5nT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi40MSAzLjEyQzIuMTUgMy41MiAyIDQgMiA0LjV2M2EuNS41IDAgMCAwIDEgMHYtM2MwLS4yMy4wNS0uNDUuMTUtLjY1TDYuMjkgN2E2LjYgNi42IDAgMCAwLTIuMjMgMi4yN3YuMDFsLjQ0LjIzLS40NS0uMjJhLjUuNSAwIDAgMCAuOS40NHYtLjAxYTIuMzkgMi4zOSAwIDAgMSAuMjUtLjM5IDUuNDkgNS40OSAwIDAgMSAxLjgyLTEuNmwxLjMgMS4zYTMgMyAwIDEgMCA0LjE2IDQuMTdsMy42NyAzLjY2Yy0uMi4xLS40Mi4xNS0uNjUuMTVoLTNhLjUuNSAwIDAgMCAwIDFoM2MuNSAwIC45OC0uMTUgMS4zOC0uNDFsLjI3LjI2YS41LjUgMCAwIDAgLjctLjdsLS4yNi0uMjctLjc0LS43My0zLjkzLTMuOTQtMy42My0zLjYzTDguMDEgNy4zbC0uNzgtLjc4LTMuMzgtMy4zNy0uNzMtLjc0LS4yNy0uMjZhLjUuNSAwIDEgMC0uNy43bC4yNi4yN1ptOS4zNCA5LjM0YTIgMiAwIDEgMS0yLjcxLTIuNzFsMi43MSAyLjcxWm02LjIzIDMuNC4wMi0uMzZ2LTNhLjUuNSAwIDAgMC0xIDB2Mi4zOGwuOTguOTdaTTkuMTcgNy4wNEE3IDcgMCAwIDEgMTAgN2E1Ljg2IDUuODYgMCAwIDEgNC44IDIuMzIgNC4xMyA0LjEzIDAgMCAxIC4yNC4zOWwuMDEuMDFhLjUuNSAwIDAgMCAuOS0uNDR2LS4wMWwtLjAxLS4wMWExLjcgMS43IDAgMCAwLS4wOC0uMTRsLS4yNS0uMzhBNi44NSA2Ljg1IDAgMCAwIDEwIDZjLS42MyAwLTEuMi4wNy0xLjcuMThsLjg2Ljg3Wm02Ljc4IDIuMjMtLjA2LjAzLS4zOS4xOS40NS0uMjJaTTUuMTIgM0g3LjVhLjUuNSAwIDAgMCAwLTFoLTNjLS4xMiAwLS4yNCAwLS4zNS4wMmwuOTcuOThaTTQuNSAxN0ExLjUgMS41IDAgMCAxIDMgMTUuNXYtM2EuNS41IDAgMCAwLTEgMHYzQTIuNSAyLjUgMCAwIDAgNC41IDE4aDNhLjUuNSAwIDAgMCAwLTFoLTNabTExLTE0Yy44MyAwIDEuNS42NyAxLjUgMS41djNhLjUuNSAwIDAgMCAxIDB2LTNBMi41IDIuNSAwIDAgMCAxNS41IDJoLTNhLjUuNSAwIDAgMCAwIDFoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZVRyYWNraW5nT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bC4xMy4xM2MtLjIzLjQtLjM1Ljg1LS4zNSAxLjM0djMuNmEuNzUuNzUgMCAwIDAgMS41LS4xVjQuNjJsLjAxLS4wNSAzLjY4IDMuNjhBNy40NCA3LjQ0IDAgMCAwIDQuOCAxMS4ydi4wMmMtLjAxIDAtLjE3Ljc1LjQzLjk3LjM4LjE1LjgxLS4wNS45Ni0uNDNsLjAxLS4wM2EyLjg1IDIuODUgMCAwIDEgLjI1LS40OSA2LjA3IDYuMDcgMCAwIDEgMS44LTEuOTNsMS41IDEuNWEzLjUgMy41IDAgMSAwIDQuOTIgNC45M2w0Ljc1IDQuNzQtLjE4LjAxaC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgzLjY2Yy40My0uMDMuODMtLjE1IDEuMTgtLjM1bC4xMy4xM2EuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptOC4xNyA2LjA1LTEuMzMtMS4zM2MuNTctLjEyIDEuMi0uMTkgMS44OC0uMTlhNy43MyA3LjczIDAgMCAxIDYuODQgMy43NSA2LjMgNi4zIDAgMCAxIC4zMy42N2wuMDIuMDR2LjAyaC4wMWEuNzUuNzUgMCAwIDEtMS40LjUzbC0uMDEtLjAyLS4wNC0uMS0uMjEtLjM5YTYuMDcgNi4wNyAwIDAgMC01LjU0LTNjLS4xOSAwLS4zNyAwLS41NS4wMlpNMjIgMTguODJsLTEuNS0xLjV2LTEuNTdhLjc1Ljc1IDAgMCAxIDEuNDktLjF2My4xN1pNNi42OCAzLjUgNS4xOCAyaDMuMDdhLjc1Ljc1IDAgMCAxIC4xIDEuNUg2LjY4Wk0yLjc1IDE1Yy4zOCAwIC43LjI4Ljc0LjY1djMuNmwuMDEuMTNjLjA2LjU5LjUzIDEuMDYgMS4xMiAxLjEyaDMuNzNhLjc1Ljc1IDAgMCAxIDAgMS41SDQuNThBMi43NSAyLjc1IDAgMCAxIDIgMTkuNDNWMTUuNjVhLjc1Ljc1IDAgMCAxIC43NS0uNjVabTE2LjUtMTNoLjE2QTIuNzUgMi43NSAwIDAgMSAyMiA0LjU5djMuNzdhLjc1Ljc1IDAgMCAxLTEuNDkgMFY0LjYyYTEuMjUgMS4yNSAwIDAgMC0xLjEzLTEuMTFsLS4xMi0uMDFoLTMuNmEuNzUuNzUgMCAwIDEgMC0xLjVoMy42WlwiXSk7XG5leHBvcnQgY29uc3QgRXllVHJhY2tpbmdPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllVHJhY2tpbmdPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwuMTMuMTNjLS4yMy40LS4zNS44NS0uMzUgMS4zNHYzLjZhLjc1Ljc1IDAgMCAwIDEuNS0uMVY0LjYybC4wMS0uMDUgMy42OCAzLjY4QTcuNDQgNy40NCAwIDAgMCA0LjggMTEuMnYuMDJjLS4wMSAwLS4xNy43NS40My45Ny4zOC4xNS44MS0uMDUuOTYtLjQzbC4wMS0uMDNhMi44NSAyLjg1IDAgMCAxIC4yNS0uNDkgNi4wNyA2LjA3IDAgMCAxIDEuOC0xLjkzbDEuNSAxLjVhMy41IDMuNSAwIDEgMCA0LjkyIDQuOTNsNC43NSA0Ljc0LS4xOC4wMWgtMy42YS43NS43NSAwIDAgMCAuMSAxLjVoMy42NmMuNDMtLjAzLjgzLS4xNSAxLjE4LS4zNWwuMTMuMTNhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTEwLjM0IDEyLjQ2YTIgMiAwIDEgMS0yLjgtMi44bDIuOCAyLjhabS0yLjE3LTYuNDEtMS4zMy0xLjMzYy41Ny0uMTIgMS4yLS4xOSAxLjg4LS4xOWE3LjczIDcuNzMgMCAwIDEgNi44NCAzLjc1IDYuMyA2LjMgMCAwIDEgLjMzLjY3bC4wMi4wNHYuMDJoLjAxYS43NS43NSAwIDAgMS0xLjQuNTNsLS4wMS0uMDItLjA0LS4xLS4yMS0uMzlhNi4wNyA2LjA3IDAgMCAwLTUuNTQtM2MtLjE5IDAtLjM3IDAtLjU1LjAyWk0yMiAxOC44MmwtMS41LTEuNXYtMS41N2EuNzUuNzUgMCAwIDEgMS40OS0uMXYzLjE3Wk02LjY4IDMuNSA1LjE4IDJoMy4wN2EuNzUuNzUgMCAwIDEgLjEgMS41SDYuNjhaTTIuNzUgMTVjLjM4IDAgLjcuMjguNzQuNjV2My42bC4wMS4xM2MuMDYuNTkuNTMgMS4wNiAxLjEyIDEuMTJoMy43M2EuNzUuNzUgMCAwIDEgMCAxLjVINC41OEEyLjc1IDIuNzUgMCAwIDEgMiAxOS40M1YxNS42NWEuNzUuNzUgMCAwIDEgLjc1LS42NVptMTYuNS0xM2guMTZBMi43NSAyLjc1IDAgMCAxIDIyIDQuNTl2My43N2EuNzUuNzUgMCAwIDEtMS40OSAwVjQuNjJhMS4yNSAxLjI1IDAgMCAwLTEuMTMtMS4xMWwtLjEyLS4wMWgtMy42YS43NS43NSAwIDAgMSAwLTEuNWgzLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVkcm9wcGVyMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllZHJvcHBlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTMuNDMgMi41N0ExLjk0IDEuOTQgMCAwIDEgMTQgMy45NGExLjk4IDEuOTggMCAwIDEtLjU3IDEuNDZsLS43LjcuMjUuMjZhMS4xNCAxLjE0IDAgMCAxIDAgMS42bC0uNTkuNThhMS4xNCAxLjE0IDAgMCAxLTEuNiAwbC0uMjUtLjI1LTQuOTQgNC45M2EuNS41IDAgMCAxLS4zNS4xNWgtLjUzbC0xLjI5LjU1YTEuMDMgMS4wMyAwIDAgMS0xLjM1LTEuMzVsLjU1LTEuMjl2LS41M2EuNS41IDAgMCAxIC4xNS0uMzVsNC45NC00Ljk1LS4yNi0uMjVhMS4xNCAxLjE0IDAgMCAxIDAtMS42bC42LS41OWExLjE0IDEuMTQgMCAwIDEgMS42IDBsLjI1LjI2LjctLjdBMS45NSAxLjk1IDAgMCAxIDExLjk4IDJhMS45OCAxLjk4IDAgMCAxIDEuNDUuNTdabS01IDMuNi00LjggNC43OHYuNDNhLjUuNSAwIDAgMS0uMDMuMkwzIDEyLjk2bDEuNDEtLjU2YS41LjUgMCAwIDEgLjItLjA0aC40M2w0Ljc5LTQuNzktMS40LTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllZHJvcHBlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzLjQzIDIuNTdBMS45NCAxLjk0IDAgMCAxIDE0IDMuOTRhMS45OCAxLjk4IDAgMCAxLS41NyAxLjQ2bC0uNy43LjI1LjI2YTEuMTQgMS4xNCAwIDAgMSAwIDEuNmwtLjU5LjU4YTEuMTQgMS4xNCAwIDAgMS0xLjYgMGwtLjI1LS4yNS00Ljk0IDQuOTNhLjUuNSAwIDAgMS0uMzUuMTVoLS41M2wtMS4yOS41NWExLjAzIDEuMDMgMCAwIDEtMS4zNS0xLjM1bC41NS0xLjI5di0uNTNhLjUuNSAwIDAgMSAuMTUtLjM1bDQuOTQtNC45NS0uMjYtLjI1YTEuMTQgMS4xNCAwIDAgMSAwLTEuNmwuNi0uNTlhMS4xNCAxLjE0IDAgMCAxIDEuNiAwbC4yNS4yNi43LS43QTEuOTUgMS45NSAwIDAgMSAxMS45OCAyYTEuOTggMS45OCAwIDAgMSAxLjQ1LjU3Wm0tNSAzLjYtNC44IDQuNzh2LjQzYS41LjUgMCAwIDEtLjAzLjJMMyAxMi45NmwxLjQxLS41NmEuNS41IDAgMCAxIC4yLS4wNGguNDNsNC43OS00Ljc5LTEuNC0xLjRabTQuMy0xLjQ5YS45Ni45NiAwIDAgMCAuMjgtLjY3IDEuMDIgMS4wMiAwIDAgMC0uMjktLjczLjk1Ljk1IDAgMCAwLS42Ny0uMjggMSAxIDAgMCAwLS43My4yOGwtMS4wNSAxLjA1YS41LjUgMCAwIDEtLjcxIDBsLS42MS0uNmEuMTQuMTQgMCAwIDAtLjA1LS4wMy4xMy4xMyAwIDAgMC0uMDUtLjAxaC0uMDZhLjE0LjE0IDAgMCAwLS4wNC4wNGwtLjU4LjU4YS4xMy4xMyAwIDAgMC0uMDQuMS4xMy4xMyAwIDAgMCAuMDQuMDlsMy4zMyAzLjMzLjA0LjAzLjA1LjAxYS4xMy4xMyAwIDAgMCAuMS0uMDRsLjU4LS41OGEuMTMuMTMgMCAwIDAgLjA0LS4xLjEzLjEzIDAgMCAwLS4wNC0uMWwtLjYtLjZhLjUuNSAwIDAgMSAwLS43bDEuMDUtMS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVkcm9wcGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNy4yNSAyLjc1YTIuNjIgMi42MiAwIDAgMC0zLjcxIDBMMTIuNSAzLjhsLS4zNS0uMzVhMS41IDEuNSAwIDAgMC0yLjEyIDBsLS41OS41OWExLjUgMS41IDAgMCAwIDAgMi4xMmwuMzUuMzUtNi4zNSA2LjM1QTEuNSAxLjUgMCAwIDAgMyAxMy45MXYuNWwtLjk2IDIuMjZhMSAxIDAgMCAwIDEuMzIgMS4zMUw1LjYgMTdoLjQ5Yy40IDAgLjc4LS4xNiAxLjA2LS40NGw2LjM1LTYuMzUuMzUuMzVhMS41IDEuNSAwIDAgMCAyLjEyIDBsLjU5LS41OGExLjUgMS41IDAgMCAwIDAtMi4xM2wtLjM1LS4zNSAxLjA0LTEuMDRhMi42MiAyLjYyIDAgMCAwIDAtMy43Wk0xMC41IDcuMjFsMi4zIDIuMy02LjM2IDYuMzRhLjUuNSAwIDAgMS0uMzUuMTVINS41YS41LjUgMCAwIDAtLjIuMDRsLTIuMzQgMS4wMyAxLTIuMzZhLjUuNSAwIDAgMCAuMDQtLjJ2LS42YS41LjUgMCAwIDEgLjE1LS4zNWw2LjM1LTYuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVkcm9wcGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZWRyb3BwZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy4yNSAyLjc1YTIuNjIgMi42MiAwIDAgMC0zLjcxIDBMMTIuNSAzLjhsLS4zNS0uMzVhMS41IDEuNSAwIDAgMC0yLjEyIDBsLS41OS41OWExLjUgMS41IDAgMCAwIDAgMi4xMmwuMzUuMzUtNi4zNSA2LjM1QTEuNSAxLjUgMCAwIDAgMyAxMy45MXYuNWwtLjk2IDIuMjZhMSAxIDAgMCAwIDEuMzIgMS4zMUw1LjYgMTdoLjQ5Yy40IDAgLjc4LS4xNiAxLjA2LS40NGw2LjM1LTYuMzUuMzUuMzVhMS41IDEuNSAwIDAgMCAyLjEyIDBsLjU5LS41OGExLjUgMS41IDAgMCAwIDAtMi4xM2wtLjM1LS4zNSAxLjA0LTEuMDRhMi42MiAyLjYyIDAgMCAwIDAtMy43Wm0tMyAuNzFhMS42MiAxLjYyIDAgMCAxIDIuMjkgMi4zbC0xLjQgMS4zOWEuNS41IDAgMCAwIDAgLjdsLjcxLjcxYy4yLjIuMi41MSAwIC43bC0uNTguNmEuNS41IDAgMCAxLS43MSAwbC00LjQxLTQuNDJhLjUuNSAwIDAgMSAwLS43bC41OC0uNTljLjItLjIuNTItLjIuNzEgMGwuNy43YS41LjUgMCAwIDAgLjcxIDBsMS40LTEuMzlaTTEyLjc5IDkuNWwtNi4zNSA2LjM1YS41LjUgMCAwIDEtLjM1LjE1SDUuNWEuNS41IDAgMCAwLS4yLjA0bC0yLjM0IDEuMDMgMS0yLjM2YS41LjUgMCAwIDAgLjA0LS4ydi0uNmEuNS41IDAgMCAxIC4xNS0uMzVsNi4zNS02LjM1IDIuMyAyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVkcm9wcGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllZHJvcHBlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEuMDMgMi45N2EzLjU4IDMuNTggMCAwIDAtNS4wNiAwTDE0IDQuOTRsLS4wMS0uMDFhMS43NSAxLjc1IDAgMCAwLTIuNDggMGwtLjU4LjU4Yy0uNjkuNjktLjY5IDEuOCAwIDIuNDhWOGwtNi43NyA2Ljc4Yy0uNDIuNDItLjY2IDEtLjY2IDEuNnYuNjhMMi4yMiAxOS40Yy0uODQgMS41My44NCAzLjIgMi4zNyAyLjM3bDIuMzUtMS4yOGguNjljLjYgMCAxLjE3LS4yNCAxLjU5LS42NkwxNiAxMy4wNmwuMDEuMDFjLjY5LjY5IDEuOC42OSAyLjQ4IDBsLjU4LS41OGMuNjktLjY5LjY5LTEuOCAwLTIuNDhWMTBsMS45Ni0xLjk3YTMuNTggMy41OCAwIDAgMCAwLTUuMDZaTTEyIDkuMDcgMTQuOTQgMTJsLTYuNzggNi43OGEuNzUuNzUgMCAwIDEtLjUzLjIyaC0uODhhLjc1Ljc1IDAgMCAwLS4zNi4xbC0yLjUxIDEuMzZhLjIzLjIzIDAgMCAxLS4xNi4wNC4yNi4yNiAwIDAgMS0uMTQtLjA4LjI2LjI2IDAgMCAxLS4wOC0uMTRjMC0uMDMgMC0uMDkuMDQtLjE2bDEuMzctMi41MWMuMDYtLjExLjA5LS4yMy4wOS0uMzZ2LS44OGMwLS4yLjA4LS4zOS4yMi0uNTNMMTIgOS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllZHJvcHBlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIxLjAzIDIuOTdhMy41OCAzLjU4IDAgMCAwLTUuMDYgMEwxNCA0Ljk0bC0uMDEtLjAxYTEuNzUgMS43NSAwIDAgMC0yLjQ4IDBsLS41OC41OGMtLjY5LjY5LS42OSAxLjggMCAyLjQ4VjhsLTYuNzcgNi43OGMtLjQyLjQyLS42NiAxLS42NiAxLjZ2LjY4TDIuMjIgMTkuNGMtLjg0IDEuNTMuODQgMy4yIDIuMzcgMi4zN2wyLjM1LTEuMjhoLjY5Yy42IDAgMS4xNy0uMjQgMS41OS0uNjZMMTYgMTMuMDZsLjAxLjAxYy42OS42OSAxLjguNjkgMi40OCAwbC41OC0uNThjLjY5LS42OS42OS0xLjggMC0yLjQ4VjEwbDEuOTYtMS45N2EzLjU4IDMuNTggMCAwIDAgMC01LjA2Wm0tNCAxLjA2YTIuMDggMi4wOCAwIDAgMSAyLjk0IDIuOTRsLTIuNSAyLjVjLS4zLjMtLjMuNzcgMCAxLjA2bC41NC41NGMuMS4xLjEuMjYgMCAuMzZsLS41OC41OGMtLjEuMS0uMjYuMS0uMzYgMEwxMiA2LjkzYS4yNS4yNSAwIDAgMSAwLS4zNmwuNTgtLjU4Yy4xLS4xLjI2LS4xLjM2IDBsLjU0LjU0Yy4zLjMuNzcuMyAxLjA2IDBsMi41LTIuNVpNMTQuOTMgMTJsLTYuNzcgNi43OGEuNzUuNzUgMCAwIDEtLjUzLjIyaC0uODhhLjc1Ljc1IDAgMCAwLS4zNi4xbC0yLjUxIDEuMzZhLjIzLjIzIDAgMCAxLS4xNi4wNC4yNi4yNiAwIDAgMS0uMTQtLjA4LjI2LjI2IDAgMCAxLS4wOC0uMTRjMC0uMDMgMC0uMDkuMDQtLjE2bDEuMzctMi41MWMuMDYtLjExLjA5LS4yMy4wOS0uMzZ2LS44OGMwLS4yLjA4LS4zOS4yMi0uNTNMMTIgOS4wNiAxNC45NCAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXJPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVkcm9wcGVyT2ZmMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjggOC41IDIuMTQgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtNS42NS01LjY0LTQuMzUgNC4zNWExLjUgMS41IDAgMCAxLTEuMDYuNDRINS42bC0yLjI1Ljk4YTEgMSAwIDAgMS0xLjMyLTEuM0wzIDE0LjQxdi0uNWMwLS40LjE2LS43OC40NC0xLjA3TDcuNzkgOC41Wm0zIDNMOC41IDkuMmwtNC4zNSA0LjM2YS41LjUgMCAwIDAtLjE1LjM1di42YS41LjUgMCAwIDEtLjA0LjJsLTEgMi4zNiAyLjM0LTEuMDNhLjUuNSAwIDAgMSAuMi0uMDRoLjU5YS41LjUgMCAwIDAgLjM1LS4xNWw0LjM1LTQuMzVabTItMi0uNi41OS43Mi43LjU4LS41OC4zNS4zNWExLjUgMS41IDAgMCAwIDIuMTMgMGwuNTgtLjU4YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0uMzUtLjM1IDEuMDQtMS4wNGEyLjYyIDIuNjIgMCAxIDAtMy43MS0zLjdMMTIuNSAzLjc4bC0uMzUtLjM1YTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0uNTkuNTlhMS41IDEuNSAwIDAgMCAwIDIuMTJsLjM1LjM1LS41OC41OS43LjcuNi0uNTggMi4yOCAyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBFeWVkcm9wcGVyT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0V5ZWRyb3BwZXJPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjggOC41IDIuMTQgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtNS42NS01LjY0LTQuMzUgNC4zNWExLjUgMS41IDAgMCAxLTEuMDYuNDRINS42bC0yLjI1Ljk4YTEgMSAwIDAgMS0xLjMyLTEuM0wzIDE0LjQxdi0uNWMwLS40LjE2LS43OC40NC0xLjA3TDcuNzkgOC41Wm0zIDNMOC41IDkuMmwtNC4zNSA0LjM2YS41LjUgMCAwIDAtLjE1LjM1di42YS41LjUgMCAwIDEtLjA0LjJsLTEgMi4zNiAyLjM0LTEuMDNhLjUuNSAwIDAgMSAuMi0uMDRoLjU5YS41LjUgMCAwIDAgLjM1LS4xNWw0LjM1LTQuMzVabTItMi0uNi41OS43Mi43LjU4LS41OC4zNS4zNWExLjUgMS41IDAgMCAwIDIuMTMgMGwuNTgtLjU4YTEuNSAxLjUgMCAwIDAgMC0yLjEzbC0uMzUtLjM1IDEuMDQtMS4wNGEyLjYyIDIuNjIgMCAxIDAtMy43MS0zLjdMMTIuNSAzLjc4bC0uMzUtLjM1YTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0uNTkuNTlhMS41IDEuNSAwIDAgMCAwIDIuMTJsLjM1LjM1LS41OC41OS43LjcuNi0uNTggMi4yOCAyLjNabTEuNDUtNi4wNGExLjYyIDEuNjIgMCAxIDEgMi4yOSAyLjNsLTEuNCAxLjM5YS41LjUgMCAwIDAgMCAuN2wuNzEuNzFjLjIuMi4yLjUxIDAgLjdsLS41OC42YS41LjUgMCAwIDEtLjcgMGwtNC40Mi00LjQyYS41LjUgMCAwIDEgMC0uN2wuNTktLjU5Yy4yLS4yLjUtLjIuNyAwbC43LjdhLjUuNSAwIDAgMCAuNzEgMGwxLjQtMS4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXJPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdFeWVkcm9wcGVyT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm04Ljk0IDEwLTQuNzggNC43OGMtLjQyLjQyLS42NiAxLS42NiAxLjZ2LjY4TDIuMjIgMTkuNGMtLjg0IDEuNTMuODQgMy4yIDIuMzggMi4zN2wyLjM0LTEuMjhoLjY5Yy42IDAgMS4xNy0uMjQgMS42LS42NkwxNCAxNS4wNmw2LjcyIDYuNzJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNkw4Ljk0IDEwWm00IDQtNC43OCA0Ljc4YS43NS43NSAwIDAgMS0uNTMuMjJoLS44OGEuNzUuNzUgMCAwIDAtLjM2LjFsLTIuNTEgMS4zNmEuMjMuMjMgMCAwIDEtLjE2LjA0LjI2LjI2IDAgMCAxLS4xNC0uMDguMjYuMjYgMCAwIDEtLjA3LS4xNGMtLjAxLS4wMy0uMDEtLjA5LjAzLS4xNmwxLjM3LTIuNTFjLjA2LS4xMS4xLS4yMy4xLS4zNnYtLjg4YzAtLjIuMDctLjM5LjIxLS41M0wxMCAxMS4wNiAxMi45NCAxNFptNS41NS0uOTNjLS41LjUtMS4yLjYzLTEuODIuNDJsLTYuMTYtNi4xNmExLjc1IDEuNzUgMCAwIDEgLjQyLTEuODJsLjU4LS41OGMuNjktLjY5IDEuOC0uNjkgMi40OCAwbC4wMS4wMSAxLjk3LTEuOTdhMy41OCAzLjU4IDAgMCAxIDUuMDYgNS4wNkwxOS4wNiAxMGwuMDEuMDFjLjY5LjY5LjY5IDEuOCAwIDIuNDhsLS41OC41OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEV5ZWRyb3BwZXJPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRXllZHJvcHBlck9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguOTQgMTAgMi4yMiAzLjI4YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMTguNSAxOC41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMMTQgMTUuMDZsLTQuNzggNC43OGMtLjQyLjQyLTEgLjY2LTEuNTkuNjZoLS42OUw0LjYgMjEuNzhjLTEuNTQuODQtMy4yMi0uODQtMi4zOC0yLjM3bDEuMjgtMi4zNXYtLjY5YzAtLjYuMjQtMS4xNy42Ni0xLjU5TDguOTQgMTBabTQgNEwxMCAxMS4wNmwtNC43OCA0Ljc4YS43NS43NSAwIDAgMC0uMjIuNTN2Ljg4YzAgLjEzLS4wMy4yNS0uMDkuMzZsLTEuMzcgMi41MWEuMjMuMjMgMCAwIDAtLjAzLjE2YzAgLjA1LjAzLjEuMDcuMTQuMDQuMDQuMS4wNy4xNC4wOC4wNCAwIC4wOSAwIC4xNi0uMDRsMi41MS0xLjM3Yy4xMS0uMDYuMjQtLjA5LjM2LS4wOWguODhjLjIgMCAuMzktLjA4LjUzLS4yMkwxMi45NCAxNFptNS41NS0uOTNjLS41LjUtMS4yLjYzLTEuODIuNDJsLTYuMTYtNi4xNmExLjc1IDEuNzUgMCAwIDEgLjQyLTEuODJsLjU4LS41OGMuNjktLjY5IDEuOC0uNjkgMi40OCAwbC4wMS4wMSAxLjk3LTEuOTdhMy41OCAzLjU4IDAgMCAxIDUuMDYgNS4wNkwxOS4wNiAxMGwuMDEuMDFjLjY5LjY5LjY5IDEuOCAwIDIuNDhsLS41OC41OFptLTEuNDYtOS4wNC0yLjUgMi41Yy0uMy4zLS43Ny4zLTEuMDYgMEwxMi45MyA2YS4yNS4yNSAwIDAgMC0uMzYgMGwtLjU4LjU4Yy0uMS4xLS4xLjI2IDAgLjM2TDE3LjA3IDEyYy4xLjEuMjYuMS4zNiAwbC41OC0uNThjLjEtLjEuMS0uMjYgMC0uMzZsLS41NC0uNTRhLjc1Ljc1IDAgMCAxIDAtMS4wNmwyLjUtMi41YTIuMDggMi4wOCAwIDEgMC0yLjk0LTIuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGU3RvcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZTdG9wMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05LjA2IDQuMWMuMTktMS4xNyAxLjQtMS44OSAyLjUzLTEuNDlsLjQuMTVhLjc1Ljc1IDAgMSAwIC41MS0xLjQybC0uNC0uMTRjLTIuMDEtLjcyLTQuMTguNTYtNC41MyAyLjY2TDcuMSA2Ljc1SDQuNWEuNzUuNzUgMCAxIDAgMCAxLjVoMi4zNWwtLjQzIDIuNjNhMS45MiAxLjkyIDAgMCAxLTIuOTMgMS4zbC0uMzQtLjIxYS43NS43NSAwIDEgMC0uOCAxLjI2bC4zNC4yMmEzLjQyIDMuNDIgMCAwIDAgNS4yLTIuMzJsLjQ4LTIuODhoMi4xM2EuNzUuNzUgMCAwIDAgMC0xLjVIOC42MmwuNDQtMi42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZTdG9wMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZTdG9wMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC44NCAzLjg0YTIuMTcgMi4xNyAwIDAgMSAyLjcyLTEuNzNsLjguMjJhLjUuNSAwIDEgMCAuMjctLjk2bC0uOC0uMjJhMy4xNyAzLjE3IDAgMCAwLTMuOTcgMi41M0w3LjMgN0g0LjVhLjUuNSAwIDEgMCAwIDFoMi42NWwtLjUzIDMuMThhMi4xNyAyLjE3IDAgMCAxLTMuMTkgMS41NWwtLjY5LS4zOWEuNS41IDAgMCAwLS40OC44OGwuNjkuMzhhMy4xNyAzLjE3IDAgMCAwIDQuNjYtMi4yNUw4LjE2IDhoMi4zNGEuNS41IDAgMCAwIDAtMUg4LjMybC41Mi0zLjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRlN0b3AyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGU3RvcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTEuMDggNS42OGMuMjgtMS42MyAyLTIuNTggMy41My0xLjk1bC4zNi4xNGEuNzUuNzUgMCAxIDAgLjU2LTEuMzhsLS4zNi0uMTVBNC4wOCA0LjA4IDAgMCAwIDkuNiA1LjQzTDkgOUg1Ljc0YS43NS43NSAwIDEgMCAwIDEuNWgyLjk4bC0uNSAyLjk2YTIuNTggMi41OCAwIDAgMS0zLjkyIDEuNzVsLS4xNi0uMWEuNzUuNzUgMCAwIDAtLjggMS4yN2wuMTYuMWMyLjQ2IDEuNTUgNS43LjEgNi4yLTIuNzdsLjU1LTMuMjFoMi45OWEuNzUuNzUgMCAxIDAgMC0xLjVoLTIuNzRsLjU3LTMuMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBGU3RvcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGU3RvcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjg4IDUuMzVhMi44MyAyLjgzIDAgMCAxIDMuNjgtMi4yMmwuNzguMjZhLjUuNSAwIDEgMCAuMzItLjk1bC0uOC0uMjZhMy44MyAzLjgzIDAgMCAwLTQuOTYgM0w5LjI0IDlINS41YS41LjUgMCAxIDAgMCAxaDMuNTdsLS42MiAzLjYzYTIuODMgMi44MyAwIDAgMS00LjI0IDEuOTZsLS40NS0uMjdhLjUuNSAwIDEgMC0uNTIuODZsLjQ2LjI3YTMuODMgMy44MyAwIDAgMCA1Ljc0LTIuNjVsLjY1LTMuOGgzLjQxYS41LjUgMCAwIDAgMC0xaC0zLjI0bC42Mi0zLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgRlN0b3AyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGU3RvcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuNDQgNi41N2EzIDMgMCAwIDEgMy45NC0yLjMzbC42LjJhMSAxIDAgMCAwIC42NS0xLjg4bC0uNi0uMjFhNSA1IDAgMCAwLTYuNTYgMy44OGwtLjczIDQuMjdIN2ExIDEgMCAwIDAgMCAyaDMuNGwtLjY5IDQuMDRhMyAzIDAgMCAxLTQuNCAyLjEzbC0uMDgtLjA1YTEgMSAwIDAgMC0uOTYgMS43NmwuMDcuMDRhNSA1IDAgMCAwIDcuMzQtMy41NGwuNzUtNC4zOEgxNmExIDEgMCAxIDAgMC0yaC0zLjIzbC42Ny0zLjkzWlwiXSk7XG5leHBvcnQgY29uc3QgRlN0b3AyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRlN0b3AyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy4yIDYuNTNBMy4yNSAzLjI1IDAgMCAxIDE3LjQ2IDRsLjYuMmEuNzUuNzUgMCAxIDAgLjQ5LTEuNGwtLjYtLjIxYTQuNzUgNC43NSAwIDAgMC02LjIzIDMuNjlMMTEgMTAuNUg2Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgzLjk5bC0uNzggNC41OGEzLjI1IDMuMjUgMCAwIDEtNC43NyAyLjNsLS4wOC0uMDRhLjc1Ljc1IDAgMCAwLS43MiAxLjMybC4wNy4wNGE0Ljc1IDQuNzUgMCAwIDAgNi45OC0zLjM2bC44Mi00Ljg0aDMuOTlhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjczbC42OC0zLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgRlN0b3AyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGU3RvcDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTUuNiA3Ljk5QTQgNCAwIDAgMSAyMC45MyA1bC40Ny4xOGExIDEgMCAxIDAgLjctMS44OGwtLjQ3LS4xN2E2IDYgMCAwIDAtOCA0LjQ2bC0uODYgNC40SDcuNzVhMSAxIDAgMSAwIDAgMmg0LjYzbC0uOTggNS4wMUE0IDQgMCAwIDEgNi4wNyAyMmwtLjQ3LS4xOGExIDEgMCAxIDAtLjcgMS44OGwuNDcuMTdhNiA2IDAgMCAwIDgtNC40NmwxLjA1LTUuNGg0LjgzYTEgMSAwIDEgMCAwLTJoLTQuNDRsLjc5LTQuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBGU3RvcDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGU3RvcDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE1LjM1IDcuOTRhNC4yNSA0LjI1IDAgMCAxIDUuNjctMy4xNmwuNDcuMTdhLjc1Ljc1IDAgMSAwIC41Mi0xLjRsLS40Ny0uMThhNS43NSA1Ljc1IDAgMCAwLTcuNjYgNC4yOEwxMy4wMyAxMkg3Ljc1YS43NS43NSAwIDEgMCAwIDEuNWg0Ljk5bC0xLjEgNS41NmE0LjI1IDQuMjUgMCAwIDEtNS42NiAzLjE2bC0uNDctLjE3YS43NS43NSAwIDAgMC0uNTIgMS40bC40Ny4xOGE1Ljc1IDUuNzUgMCAwIDAgNy42Ni00LjI4bDEuMTQtNS44NWg0Ljk5YS43NS43NSAwIDAgMCAwLTEuNWgtNC43bC44LTQuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXN0QWNjZWxlcmF0aW9uMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmFzdEFjY2VsZXJhdGlvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOC45IDcuMmEzLjQ4IDMuNDggMCAwIDEgNC4yIDBsLTEuMDggMS4wOGEyIDIgMCAwIDAtMi4wNCAwTDguOSA3LjJaTTEzIDEwYTIgMiAwIDAgMC0uMjgtMS4wMkwxMy44IDcuOWEzLjQ4IDMuNDggMCAwIDEgMCA0LjJsLTEuMDgtMS4wOEEyIDIgMCAwIDAgMTMgMTBabS0yIDJhMiAyIDAgMCAwIDEuMDItLjI4bDEuMDggMS4wOGEzLjQ4IDMuNDggMCAwIDEtNC4yIDBsMS4wOC0xLjA4QTIgMiAwIDAgMCAxMSAxMlptLTItMmMwIC4zNy4xLjcyLjI4IDEuMDJMOC4yIDEyLjFhMy40OCAzLjQ4IDAgMCAxIDAtNC4ybDEuMDggMS4wOEEyIDIgMCAwIDAgOSAxMFpNNi4xIDVhNi45OCA2Ljk4IDAgMCAwLTEuNDMgOEgzLjVhLjUuNSAwIDAgMCAwIDFoMS43NWMuMjYuMzYuNTQuNy44NSAxSDEuNWEuNS41IDAgMCAwIDAgMWg1LjlhNyA3IDAgMSAwIDAtMTJIMi41YS41LjUgMCAwIDAgMCAxaDMuNlpNMTEgOWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXN0QWNjZWxlcmF0aW9uMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zhc3RBY2NlbGVyYXRpb24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMSA0YTYgNiAwIDEgMS0zLjMgMTEuMDFWMTVoLS4wMkE2IDYgMCAwIDEgMTEgNFpNNS4yNSAxNGMuMjYuMzYuNTQuNy44NSAxSDEuNWEuNS41IDAgMCAwIDAgMWg1LjlhNyA3IDAgMSAwIDAtMTJIMi41YS41LjUgMCAwIDAgMCAxaDMuNmE2Ljk4IDYuOTggMCAwIDAtMS40MyA4SDMuNWEuNS41IDAgMCAwIDAgMWgxLjc1Wk04LjIgNy45YTMuNDggMy40OCAwIDAgMCAwIDQuMmwxLjA4LTEuMDhhMiAyIDAgMCAxIDAtMi4wNEw4LjIgNy45Wm0uNy0uNyAxLjA4IDEuMDhhMiAyIDAgMCAxIDIuMDQgMEwxMy4xIDcuMmEzLjQ4IDMuNDggMCAwIDAtNC4yIDBabTQuOS43LTEuMDggMS4wOGEyIDIgMCAwIDEgMCAyLjA0bDEuMDggMS4wOGEzLjQ4IDMuNDggMCAwIDAgMC00LjJabS0uNyA0LjktMS4wOC0xLjA4YTIgMiAwIDAgMS0yLjA0IDBMOC45IDEyLjhhMy40OCAzLjQ4IDAgMCAwIDQuMiAwWk02LjUgMTBhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBabTMuNSAwYTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZhc3RBY2NlbGVyYXRpb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0QWNjZWxlcmF0aW9uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMy41IDRhOC41IDguNSAwIDEgMS00LjgyIDE1LjVIMS43NWEuNzUuNzUgMCAwIDEtLjEtMS41SDcuMDJjLS40LS40Ni0uNzMtLjk2LTEuMDItMS41SDMuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNUg1LjM3YTguNSA4LjUgMCAwIDEgMS42NS04SDIuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNUg4LjY4QTguNDYgOC40NiAwIDAgMSAxMy41IDRabTEuMTUgMTAuNzJhMi40OSAyLjQ5IDAgMCAxLTIuMyAwbC0xLjA5IDEuMWEzLjk4IDMuOTggMCAwIDAgNC41IDBsLTEuMS0xLjFaTTkuNSAxMi41YzAgLjg0LjI2IDEuNjIuNyAyLjI2bDEuMDktMS4xYTIuNDkgMi40OSAwIDAgMSAwLTIuMzJsLTEuMS0xLjA5Yy0uNDMuNjUtLjY5IDEuNDItLjY5IDIuMjVabTcuMzItMi4yNC0xLjEgMS4xYTIuNDkgMi40OSAwIDAgMSAwIDIuM2wxLjEgMS4xYTMuOTggMy45OCAwIDAgMCAwLTQuNVpNMTMuNSAxMS41YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptMC0zYy0uODMgMC0xLjYuMjYtMi4yNS43bDEuMSAxLjA4YTIuNDkgMi40OSAwIDAgMSAyLjMyIDBsMS4wOS0xLjA4YTMuOTggMy45OCAwIDAgMC0yLjI2LS43WlwiXSk7XG5leHBvcnQgY29uc3QgRmFzdEFjY2VsZXJhdGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0QWNjZWxlcmF0aW9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuNSA0YTguNSA4LjUgMCAxIDEtNC44MiAxNS41SDEuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNUg3LjAyYy0uNC0uNDYtLjczLS45Ni0xLjAyLTEuNUgzLjc1YS43NS43NSAwIDAgMS0uMS0xLjVINS4zN2E4LjUgOC41IDAgMCAxIDEuNjUtOEgyLjc1YS43NS43NSAwIDAgMS0uMS0xLjVIOC42OEE4LjQ2IDguNDYgMCAwIDEgMTMuNSA0Wm0wIDEuNWE3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptMCAxLjVhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptMS4xNSA3LjcyYTIuNDkgMi40OSAwIDAgMS0yLjMgMGwtMS4wOSAxLjFhMy45OCAzLjk4IDAgMCAwIDQuNSAwbC0xLjEtMS4xWk05LjUgMTIuNWMwIC44NC4yNiAxLjYyLjcgMi4yNmwxLjA5LTEuMWEyLjQ5IDIuNDkgMCAwIDEgMC0yLjMybC0xLjEtMS4wOWMtLjQzLjY1LS42OSAxLjQyLS42OSAyLjI1Wm03LjMyLTIuMjQtMS4xIDEuMWEyLjQ5IDIuNDkgMCAwIDEgMCAyLjNsMS4xIDEuMWEzLjk4IDMuOTggMCAwIDAgMC00LjVaTTEzLjUgMTEuNWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTAtM2MtLjgzIDAtMS42LjI2LTIuMjUuN2wxLjEgMS4wOGEyLjQ5IDIuNDkgMCAwIDEgMi4zMiAwbDEuMDktMS4wOGEzLjk4IDMuOTggMCAwIDAtMi4yNi0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZhc3RGb3J3YXJkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmFzdEZvcndhcmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggNC40NmExIDEgMCAwIDEgMS41OC0uODFsNSAzLjUzYTEgMSAwIDAgMSAwIDEuNjRsLTUgMy41M0ExIDEgMCAwIDEgOCAxMS41NHYtMi4zbC00LjQyIDMuMTFBMSAxIDAgMCAxIDIgMTEuNTRWNC40NmExIDEgMCAwIDEgMS41OC0uODFMOCA2Ljc3di0yLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXN0Rm9yd2FyZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0Rm9yd2FyZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC40NmExIDEgMCAwIDEgMS41OC0uODFMOCA2Ljc3di0yLjNhMSAxIDAgMCAxIDEuNTgtLjgybDUgMy41M2ExIDEgMCAwIDEgMCAxLjY0bC01IDMuNTNBMSAxIDAgMCAxIDggMTEuNTR2LTIuM2wtNC40MiAzLjExQTEgMSAwIDAgMSAyIDExLjU0VjQuNDZaTTggOCAzIDQuNDZ2Ny4wOEw4IDh2LS4wMlptMSAzLjU1TDE0LjAxIDggOSA0LjQ2djcuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXN0Rm9yd2FyZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zhc3RGb3J3YXJkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC4wMiA1LjQ5YTEgMSAwIDAgMSAxLjU5LS44MWw1Ljg4IDQuMzFjLjY4LjUuNjggMS41MiAwIDIuMDJsLTUuODggNC4zYTEgMSAwIDAgMS0xLjYtLjh2LTMuMTZsLTUuNCAzLjk3YTEgMSAwIDAgMS0xLjYtLjhWNS40OGExIDEgMCAwIDEgMS42LS44MWw1LjQgMy45N1Y1LjQ5WlwiXSk7XG5leHBvcnQgY29uc3QgRmFzdEZvcndhcmQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmFzdEZvcndhcmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC4wMiA1LjQ5YTEgMSAwIDAgMSAxLjU5LS44MWw1Ljg4IDQuMzFjLjY4LjUuNjggMS41MiAwIDIuMDJsLTUuODggNC4zYTEgMSAwIDAgMS0xLjYtLjh2LTMuMTZsLTUuNCAzLjk3YTEgMSAwIDAgMS0xLjYtLjhWNS40OGExIDEgMCAwIDEgMS42LS44MWw1LjQgMy45N1Y1LjQ5Wm02Ljg4IDQuMy01Ljg4LTQuM3Y5LjAybDUuODgtNC4zYy4xMy0uMS4xMy0uMzEgMC0uNDFabS03IDBMNC4wMiA1LjV2OS4wMmw1Ljg4LTQuM2MuMTMtLjEuMTMtLjMxIDAtLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgRmFzdEZvcndhcmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0Rm9yd2FyZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuOTcgNC4zNkExLjUgMS41IDAgMCAwIDExLjUgNS41djRMNS40NyA0LjM1QTEuNSAxLjUgMCAwIDAgMyA1LjUxVjE4LjVjMCAuODguNyAxLjQ4IDEuNDYgMS41aC4wOWMuMzIgMCAuNjQtLjEyLjkyLS4zNmw2LjAzLTUuMTN2My45OWExLjUgMS41IDAgMCAwIDIuNDcgMS4xNGw3LjQxLTYuM2MuODItLjcuODItMS45NyAwLTIuNjdsLTcuNC02LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXN0Rm9yd2FyZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0Rm9yd2FyZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTExLjUgNS41YTEuNSAxLjUgMCAwIDEgMi40Ny0xLjE0bDcuNDEgNi4zYy44Mi43LjgyIDEuOTcgMCAyLjY3bC03LjQgNi4zYTEuNSAxLjUgMCAwIDEtMi40OC0xLjEzdi00bC02LjAzIDUuMTRBMS41IDEuNSAwIDAgMSAzIDE4LjV2LTEzYTEuNSAxLjUgMCAwIDEgMi40Ny0xLjE0TDExLjUgOS41VjUuNVptMCA1Ljk2LTctNS45NnYxM2w3LTUuOTZ2LTEuMDhabTguOTEuMzVMMTMgNS41VjE4LjVsNy40MS02LjMxYS4yNS4yNSAwIDAgMCAwLS4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZhc3RGb3J3YXJkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmFzdEZvcndhcmQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE1LjY0IDQuODZBMS42MyAxLjYzIDAgMCAwIDEzIDYuMTN2NC41N0w1LjY0IDQuODZBMS42MiAxLjYyIDAgMCAwIDMgNi4xM3YxNS43NGExLjYyIDEuNjIgMCAwIDAgMi42NCAxLjI3TDEzIDE3LjN2NC41N2ExLjYzIDEuNjMgMCAwIDAgMi42NCAxLjI3bDkuNjMtNy42NGMuOTctLjc3Ljk3LTIuMjMgMC0zbC05LjYzLTcuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXN0Rm9yd2FyZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXN0Rm9yd2FyZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEzIDEwLjdWNi4xM2ExLjYzIDEuNjMgMCAwIDEgMi42NC0xLjI3bDkuNjMgNy42NGMuOTcuNzcuOTcgMi4yNCAwIDNsLTkuNjMgNy42NEExLjYzIDEuNjMgMCAwIDEgMTMgMjEuODdWMTcuM2wtNy4zNiA1Ljg0QTEuNjMgMS42MyAwIDAgMSAzIDIxLjg3VjYuMTNhMS42MiAxLjYyIDAgMCAxIDIuNjQtMS4yN0wxMyAxMC43Wm0wIDQuNjlWMTIuNkw0LjcgNi4wM0EuMTIuMTIgMCAwIDAgNC42NCA2Yy0uMDIgMC0uMDQgMC0uMDcuMDJhLjEzLjEzIDAgMCAwLS4wNS4wNGwtLjAyLjA3djE1Ljc0YzAgLjAzIDAgLjA1LjAyLjA3bC4wNS4wNC4wNy4wMi4wNi0uMDMgOC4zLTYuNThabTEuNy05LjM2YS4xMi4xMiAwIDAgMC0uMDYtLjAzYy0uMDIgMC0uMDQgMC0uMDcuMDJhLjEzLjEzIDAgMCAwLS4wNS4wNGwtLjAyLjA3djE1Ljc0bC4wMi4wNy4wNS4wNC4wNy4wMi4wNi0uMDMgOS42NC03LjY0YS40Mi40MiAwIDAgMCAwLS42NkwxNC43IDYuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXgxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGYXgxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjVWNmEyIDIgMCAwIDAtMiAydjQuNWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy0uMzEtLjQyLS41LS45NC0uNS0xLjV2LTVjMC0uNTYuMTktMS4wOC41LTEuNUg1VjMuNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djEuNTVjLjE2LS4wMy4zMy0uMDUuNS0uMDVoLjVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVptLTEgN2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMVptMCAyYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWk03IDguNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNNi41IDExYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWk0xMCA3LjVjMC0uODMuNjctMS41IDEuNS0xLjVoMWMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMWExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXgxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmF4MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNVY2YTIgMiAwIDAgMC0yIDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLS4yMi0uMy0uMzgtLjYzLS40NS0xSDMuNWEuNS41IDAgMCAxLS41LS41VjhhMSAxIDAgMCAxIDEtMWg1LjA1Yy4wNy0uMzcuMjMtLjcuNDUtMUg1VjMuNWMwLS4yOC4yMi0uNS41LS41aDVjLjI4IDAgLjUuMjIuNS41djEuNTVjLjE2LS4wMy4zMy0uMDUuNS0uMDVoLjVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVptNiA0Yy0uODMgMC0xLjUuNjctMS41IDEuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDFjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMVpNMTEgNy41YzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtNVptLTYgMWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNNC41IDExYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk03IDguNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNNi41IDExYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRmF4MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmF4MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWN2gtMVY0LjVhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwLS41LjVWOGg1LjVjLS4zMS40Mi0uNS45NC0uNSAxLjV2NmMwIC41Ni4xOSAxLjA4LjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxNS41VjEwYzAtMS4xLjktMiAyLTJWNC41Wm0xLjI1IDYuMTNhLjYyLjYyIDAgMSAwLTEuMjUgMCAuNjIuNjIgMCAwIDAgMS4yNSAwWm0wIDIuMjRhLjYyLjYyIDAgMSAwLTEuMjUgMCAuNjIuNjIgMCAwIDAgMS4yNSAwWm0xLjYzLS41YS42Mi42MiAwIDEgMCAwIDEuMjUuNjIuNjIgMCAwIDAgMC0xLjI0Wm0uNjItMS43NGEuNjIuNjIgMCAxIDAtMS4yNSAwIC42Mi42MiAwIDAgMCAxLjI1IDBabTUtMi42M2MtLjgzIDAtMS41LjY3LTEuNSAxLjV2NmMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGYXgyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmF4MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSA0LjVDNSAzLjY3IDUuNjcgMyA2LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjdoLTFWNC41YS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41VjhoNS41Yy0uMjIuMy0uMzguNjMtLjQ1IDFINWExIDEgMCAwIDAtMSAxdjUuNWMwIC4yOC4yMi41LjUuNWg2LjU1Yy4wNy4zNy4yMy43LjQ1IDFoLTdBMS41IDEuNSAwIDAgMSAzIDE1LjVWMTBjMC0xLjEuOS0yIDItMlY0LjVabTcgNWMwLS44My42Ny0xLjUgMS41LTEuNWgyYy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNlptMS41LS41YS41LjUgMCAwIDAtLjUuNXY2YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtNmEuNS41IDAgMCAwLS41LS41aC0yWm0tNy44OCAxYS42Mi42MiAwIDEgMSAwIDEuMjUuNjIuNjIgMCAwIDEgMC0xLjI1Wm0wIDIuMjVhLjYyLjYyIDAgMSAxIDAgMS4yNS42Mi42MiAwIDAgMSAwLTEuMjVaTTguNSAxM2EuNjIuNjIgMCAxIDAtMS4yNSAwIC42Mi42MiAwIDAgMCAxLjI1IDBabS0uNjMtM2EuNjIuNjIgMCAxIDEgMCAxLjI1LjYyLjYyIDAgMCAxIDAtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZlZWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGZWVkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDRDOC4zMSAzIDkgMy42NyA5IDQuNVY1aDMuNTVjLjczLjAzIDEuNDUuNTUgMS40NSAxLjV2My4wNGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEuMzlsLS4xNC43NWExLjQ0IDEuNDQgMCAwIDEtMS40NyAxLjJsLTYgLjAxQTEuNSAxLjUgMCAwIDEgMiAxMS41di03Wm03IDdjMCAuNi44Ny42OS45OS4xTDEwLjg4IDdsLjE1LS43OFY2LjJsLjAxLS4wNi4wMi0uMDRjMC0uMDMuMDEtLjA3LjAzLS4xaC0yLjF2NS41Wk00LjQ3IDUuOTlhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabS4wMSAxLjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMSAwIDAtMWgtMlptMCAyLjUxYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAuMjYtLjkzaC0uMDJBLjUuNSAwIDAgMCA2LjYgMTBINi41TDYuNDggMTBINC41WlwiXSk7XG5leHBvcnQgY29uc3QgRmVlZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGZWVkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC41IDcuNDlhLjUuNSAwIDAgMCAwIDFoMS45OGEuNS41IDAgMCAwIC41LS41LjUuNSAwIDAgMC0uNS0uNUg0LjVabTAgMi41MWEuNS41IDAgMCAwIDAgMWgxLjk4YS41LjUgMCAwIDAgMC0xSDQuNVptLjQ4LTQuNTFhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBaTTMuNSAzQzIuNjcgMyAyIDMuNjcgMiA0LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg2Yy42NSAwIDEuMy0uMzkgMS40Ny0xLjIxbC4xNC0uNzVoMS4zOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWNi41MWMwLS45Ni0uNzItMS40OC0xLjQ1LTEuNTFIOC45OXYtLjVDOSAzLjY3IDguMzIgMyA3LjUgM0gzLjVaTTkgNmgyLjA5YTEuNTcgMS41NyAwIDAgMC0uMDYuMjNsLS4xNS43OC0uOSA0LjU4Yy0uMTEuNi0uOTkuNTEtLjk5LS4xVjZabS0xIDUuNWMwIC4xOC4wMi4zNS4wNy41SDMuNWEuNS41IDAgMCAxLS41LS41di03YzAtLjI4LjIyLS41LjUtLjVoNGMuMjcgMCAuNS4yMi41LjV2N1ptNC41LTEuNDZoLTEuMmwuNTYtMi44NC4xNS0uNzhjLjExLS42Ljk5LS41Mi45OS4wOXYzLjAzYS41LjUgMCAwIDEtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZlZWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGZWVkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi40NyAxN0g0YTIgMiAwIDAgMS0yLTJWNC41QzIgMy42NyAyLjY3IDMgMy41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNVY2aDQuNDhjLjc3LjAyIDEuNTIuNiAxLjUyIDEuNTh2NC45MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTIuMWwtLjQzIDEuODJjLS4xOS44Mi0uODUgMS4yLTEuNSAxLjE4Wk0xNSA3SDEydjguNDhjMCAuNi44Ni43IDEgLjEybDEuOTQtOC4zNy4wNy0uMjNaTTUuNSA3YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk01IDEwYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFoLTNhLjUuNSAwIDAgMC0uNS41Wm0wIDMuNWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZlZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmVlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNSA3YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk01IDEwYzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM0EuNS41IDAgMCAxIDUgMTBabS41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNCAxN2g4LjQ3Yy42NS4wMiAxLjMxLS4zNiAxLjUtMS4xOEwxNC40IDE0aDIuMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjcuNThjMC0uOTgtLjc1LTEuNTYtMS41Mi0xLjU4SDEyVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDMi42NyAzIDIgMy42NyAyIDQuNVYxNWMwIDEuMS45IDIgMiAyWk0zIDQuNWMwLS4yOC4yMi0uNS41LS41aDdjLjI4IDAgLjUuMjIuNS41djEwLjk4YzAgLjIuMDMuMzYuMDguNTJINGExIDEgMCAwIDEtMS0xVjQuNVpNMTYuNSAxM2gtMS44N2wxLjI4LTUuNTRjLjE1LS42NCAxLjA5LS41MyAxLjA5LjEydjQuOTJhLjUuNSAwIDAgMS0uNS41Wk0xMiA3aDMuMDFhMS44IDEuOCAwIDAgMC0uMDcuMjNMMTMgMTUuNmMtLjE0LjU4LTEgLjQ4LTEtLjEyVjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmVlZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUgMjFjLjk0IDAgMS43NS0uNjcgMS45My0xLjZsLjQ4LTIuNGgyLjg0Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVY5LjI2YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI2SDE0LjVWNS4yNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtOEMzLjAxIDMgMiA0IDIgNS4yNXYxMi41QzIgMTkuNTUgMy40NiAyMSA1LjI1IDIxSDE1Wm0yLjUyLTEyLjE4TDE1LjQ2IDE5LjFhLjQ5LjQ5IDAgMCAxLS45Ni0uMVY4LjVoMy4xMWMtLjA0LjEtLjA3LjItLjA5LjMyWk01Ljc4IDguNWEuNzUuNzUgMCAxIDEgMC0xLjUuNzUuNzUgMCAwIDEgMCAxLjVabS0uNzUgNy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDVhLjc1Ljc1IDAgMSAxIDAgMS41aC01YS43NS43NSAwIDAgMS0uNzUtLjc1Wk01Ljc4IDExaDVhLjc1Ljc1IDAgMSAxIDAgMS41aC01YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZlZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmVlZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuNTMgNy43NWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk01Ljc4IDE1YS43NS43NSAwIDAgMCAwIDEuNWg1YS43NS43NSAwIDEgMCAwLTEuNWgtNVptLS43NS0zLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoNWEuNzUuNzUgMCAxIDEgMCAxLjVoLTVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTE1IDIxYy45NCAwIDEuNzUtLjY3IDEuOTMtMS42bC40OC0yLjRoMi44NGMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWOS4yNmMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNkgxNC41VjUuMjVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLThDMy4wMSAzIDIgNCAyIDUuMjV2MTIuNUMyIDE5LjU1IDMuNDYgMjEgNS4yNSAyMUgxNVpNMy41IDUuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg4Yy40MSAwIC43NS4zNC43NS43NXYxMy43NmMwIC4xNy4wMi4zMy4wNi40OUg1LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNS4yNVptMTEgMy4yNWgzLjExYy0uMDQuMS0uMDcuMi0uMDkuMzJMMTUuNDYgMTkuMWEuNDkuNDkgMCAwIDEtLjk2LS4xVjguNVptNC41LjYxYS43Ni43NiAwIDAgMSAxLjUuMTV2NS45OWMwIC4xNC0uMTEuMjUtLjI1LjI1aC0yLjU0TDE5IDkuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmVlZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNS4yNSAyNUgxNy4xYzEuNDEgMCAyLjQzLS40OCAyLjc1LTEuOTZsLjY2LTMuMDhoMi44NmEyLjc1IDIuNzUgMCAwIDAgMi43NS0yLjc1di02LjdjMC0xLjY4LTEuMzYtMi41OC0yLjY3LTIuNTJIMTYuNFY1Ljc1QTIuNzUgMi43NSAwIDAgMCAxMy42NiAzSDQuNzVBMi43NSAyLjc1IDAgMCAwIDIgNS43NXYxNmMwIDEuNzkgMS40NiAzLjI0IDMuMjUgMy4yNFpNMTYuNDEgOS40OGg0Ljg2YTIuOSAyLjkgMCAwIDAtLjE1LjQ5bC0yLjc0IDEyLjc0Yy0uMjUgMS4xNy0xLjk3Ljk5LTEuOTctLjJWOS40OFptLTkuNjMuMDFhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0wIDkuMDJoNWEuNzUuNzUgMCAxIDEgMCAxLjVoLTVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0wLTUuMjdoNWEuNzUuNzUgMCAxIDEgMCAxLjVoLTVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmVlZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGZWVkMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNi43OCA5LjVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0wIDlhLjc1Ljc1IDAgMCAwIDAgMS41aDVhLjc1Ljc1IDAgMSAwIDAtMS41aC01Wk02LjAzIDE0YzAtLjQyLjM0LS43Ni43NS0uNzZoNWEuNzUuNzUgMCAxIDEgMCAxLjVoLTVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTE3LjEgMjVINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAyMS43M1Y1Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDNoOC45YTIuNzUgMi43NSAwIDAgMSAyLjc2IDIuNzV2Mi4yNGg3LjA0YzEuMzEtLjA2IDIuNjguODQgMi42OCAyLjUydjYuN2EyLjc1IDIuNzUgMCAwIDEtMi43NSAyLjc1SDIwLjVsLS42NiAzLjA4Yy0uMzIgMS40OC0xLjM0IDEuOTUtMi43NSAxLjk1Wk00Ljc1IDQuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTZjMCAuOTYuNzggMS43NCAxLjc1IDEuNzRoOS44M2EyLjY2IDIuNjYgMCAwIDEtLjE3LS45OFY1Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg0Ljc1Wm0xMS42NiAxOC4wMWMwIDEuMiAxLjcyIDEuMzggMS45Ny4yMWwyLjc0LTEyLjc0Yy4wNC0uMTguMDktLjM0LjE1LS41aC00Ljg2djEzLjAzWm02LjE4LTEyLjIyLTEuNzYgOC4xN2gyLjU1Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNi43YzAtLjYzLS40OS0xLS45OS0xLjAyaC0uMTRhLjk3Ljk3IDAgMCAwLS45MS44WlwiXSk7XG5leHBvcnQgY29uc3QgRmVlZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZlZWQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIwIDI5di0uMDJsLjMuMDJhMy4wNCAzLjA0IDAgMCAwIDMtMi40OWwuNjQtMy41MWgyLjgxYzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTguODRhMi45MSAyLjkxIDAgMCAwLTMtMi45VjhoLTcuNzNWNi4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1SDUuMjVBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNVYyNC41QTQuNSA0LjUgMCAwIDAgNi41IDI5SDIwWm0tLjczLTE5aDUuMDZjLS4wNC4xMi0uMDguMjUtLjEuMzhsLTIuOSAxNS43N2ExLjA0IDEuMDQgMCAwIDEtMi4wNi0uMTlWMTBaTTcgMTBhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWm0tMSA2YTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxLTEtMVptMSA1aDdhMSAxIDAgMSAxIDAgMkg3YTEgMSAwIDEgMSAwLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZlZWQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk01LjI1IDVDNC41NiA1IDQgNS41NiA0IDYuMjVWMjQuNUEyLjUgMi41IDAgMCAwIDYuNSAyN2gxMC45NWEzLjAzIDMuMDMgMCAwIDEtLjE4LTEuMDRWNi4yNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINS4yNVpNMjAgMjguOThWMjlINi41QTQuNSA0LjUgMCAwIDEgMiAyNC41VjYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMTAuNzdjMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNVY4aDcuODJDMjguNjkgOCAzMCA5LjMgMzAgMTAuOTF2OC44NGMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC0yLjgxbC0uNjUgMy41MUEzLjA0IDMuMDQgMCAwIDEgMjAgMjguOThaTTI0LjMzIDEwaC01LjA2djE1Ljk2YTEuMDQgMS4wNCAwIDAgMCAyLjA1LjJsMi45LTE1Ljc4LjEtLjM4Wm0tLjAyIDExaDIuNDRjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di04Ljg0YS45MS45MSAwIDAgMC0xLjgtLjE3TDI0LjMgMjFaTTggOWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDZhMSAxIDAgMSAwIDAgMmg3YTEgMSAwIDEgMCAwLTJIN1ptLTEgN2ExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMSAxIDAgMkg3YTEgMSAwIDAgMS0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmVlZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjkuNjMgNDJoLjI1YzEuODIgMCAzLjQtMS4yNyAzLjc5LTMuMDZMMzQuNzMgMzRoNS4wMkM0Mi4xIDM0IDQ0IDMyLjEgNDQgMjkuNzV2LTExLjZBNC4xNiA0LjE2IDAgMCAwIDQwIDE0SDI4LjV2LTMuNzVDMjguNSA3LjkgMjYuNiA2IDI0LjI1IDZoLTE2QTQuMjUgNC4yNSAwIDAgMCA0IDEwLjI1djI1LjVDNCAzOS4yIDYuOCA0MiAxMC4yNSA0MmgxOS4zOFpNMjguNSAxNi41aDcuNTNjLS4xLjI1LS4xOS41LS4yNS43OEwzMS4yMyAzOC40YTEuMzggMS4zOCAwIDAgMS0yLjczLS4yOVYxNi41Wm0tMTUuNS0xYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWk0xMS4yNSAyMmgxMC41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMTAuNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVaTTEwIDMxLjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEwLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xMC41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGZWVkNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZlZWQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk04LjI1IDguNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MjUuNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aDE2Yy0uMTYtLjQzLS4yNS0uOS0uMjUtMS4zOFYxMC4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTE2Wk0yOS42MyA0MkgxMC4yNUE2LjI1IDYuMjUgMCAwIDEgNCAzNS43NXYtMjUuNUM0IDcuOSA1LjkgNiA4LjI1IDZoMTZjMi4zNSAwIDQuMjUgMS45IDQuMjUgNC4yNVYxNEg0MGMyLjIyLjA4IDQgMS45MSA0IDQuMTV2MTEuNkM0NCAzMi4xIDQyLjEgMzQgMzkuNzUgMzRoLTUuMDJsLTEuMDYgNC45NGEzLjg4IDMuODggMCAwIDEtNC4wNSAzLjA1Wm0tMS4xMy0zLjg4YTEuMzggMS4zOCAwIDAgMCAyLjczLjNsNC41NS0yMS4xNGMuMDYtLjI3LjE1LS41My4yNS0uNzhIMjguNXYyMS42MlptOS43My0yMC4zMUwzNS4yNyAzMS41aDQuNDhjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0xMS42YTEuNjUgMS42NSAwIDAgMC0zLjI3LS4zNFpNMTEuNSAxN2ExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMTAgMjMuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTAuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTEwLjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpNMTEuMjUgMzBhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDEwLjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC0xMC41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDUuNUEyLjUgMi41IDAgMCAxIDMuNSAzaDlBMi41IDIuNSAwIDAgMSAxNSA1LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAxIDEwLjV2LTVabTExIDB2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLTEgMFptLjUgMy41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTMgNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0xIDBaTTMuNSA5YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSA1LjVBMi41IDIuNSAwIDAgMSAzLjUgM2g5QTIuNSAyLjUgMCAwIDEgMTUgNS41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMSAxMC41di01Wk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Wk0xMiA1LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgMy41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTMgNS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFaTTMuNSA5YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgN2EzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3Wm0xMy0uNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwWm0uNSA1LjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNMTUgOS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0xIDBaTTQuNSA2YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTQgMTIuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwWk00LjUgOWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNi41QTIuNSAyLjUgMCAwIDEgNC41IDRoMTFBMi41IDIuNSAwIDAgMSAxOCA2LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMiAxMy41di03Wk00LjUgNUMzLjY3IDUgMyA1LjY3IDMgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTE1IDYuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0uNSA1LjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNMTUgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFaTTQuNSA2YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTQgMTIuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWk00LjUgOWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDcuMjVDMiA1LjQ1IDMuNDYgNCA1LjI1IDRoMTMuNUMyMC41NSA0IDIyIDUuNDYgMjIgNy4yNXY5LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1di05LjVabTE2LjUuNXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0xLjUgMFptLjc1IDcuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0tLjc1LTMuMjV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWEuNzUuNzUgMCAwIDAtMS41IDBaTTQuNzUgN2EuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVBLjc1Ljc1IDAgMCAwIDQuNzUgN1pNNCAxNS43NXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0xLjUgMFpNNC43NSAxMWEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA3LjI1QzIgNS40NSAzLjQ2IDQgNS4yNSA0aDEzLjVDMjAuNTUgNCAyMiA1LjQ2IDIyIDcuMjV2OS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNi43NXYtOS41Wk01LjI1IDUuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2OS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEzLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di05LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDUuMjVaTTE3LjUgNy43NWEuNzUuNzUgMCAwIDEgMS41IDB2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNVptLjc1IDcuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0tLjc1LTMuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVaTTUuNzUgN2EuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVBLjc1Ljc1IDAgMCAwIDUuNzUgN1pNNSAxNS43NWEuNzUuNzUgMCAwIDEgMS41IDB2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNVpNNS43NSAxMWEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXAzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXAzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMTlBNC41IDQuNSAwIDAgMSAzMCA4LjV2MTVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xOUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaTTI1IDl2MmExIDEgMCAxIDAgMiAwVjlhMSAxIDAgMSAwLTIgMFptMSA1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDAgMC0xLTFabS0xIDd2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDEgMC0yIDBaTTYgOGExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMFY5YTEgMSAwIDAgMC0xLTFabS0xIDd2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDEgMC0yIDBabTEgNWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMTlBNC41IDQuNSAwIDAgMSAzMCA4LjV2MTVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xOUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaTTYuNSA2QTIuNSAyLjUgMCAwIDAgNCA4LjV2MTVBMi41IDIuNSAwIDAgMCA2LjUgMjZoMTlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xNUEyLjUgMi41IDAgMCAwIDI1LjUgNmgtMTlaTTI0IDlhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDBWOVptMSA1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDAgMC0xLTFabS0xIDdhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJaTTcgOGExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMFY5YTEgMSAwIDAgMC0xLTFabS0xIDdhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJabTEgNWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMC4yNSA4QTYuMjUgNi4yNSAwIDAgMCA0IDE0LjI1djE5LjVDNCAzNy4yIDYuOCA0MCAxMC4yNSA0MGgyNy41QzQxLjIgNDAgNDQgMzcuMiA0NCAzMy43NXYtMTkuNUM0NCAxMC44IDQxLjIgOCAzNy43NSA4aC0yNy41Wk0xMCAxNS41YTEuNSAxLjUgMCAwIDEgMyAwdjFhMS41IDEuNSAwIDAgMS0zIDB2LTFaTTM2LjUgMTRjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWExLjUgMS41IDAgMCAxLTMgMHYtMWMwLS44My42Ny0xLjUgMS41LTEuNVpNMTAgMjMuNWExLjUgMS41IDAgMCAxIDMgMHYxYTEuNSAxLjUgMCAwIDEtMyAwdi0xWk0zNi41IDIyYy44MyAwIDEuNS42NyAxLjUgMS41djFhMS41IDEuNSAwIDAgMS0zIDB2LTFjMC0uODMuNjctMS41IDEuNS0xLjVaTTEwIDMxLjVhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpNMzYuNSAzMGMuODMgMCAxLjUuNjcgMS41IDEuNXYxYTEuNSAxLjUgMCAwIDEtMyAwdi0xYzAtLjgzLjY3LTEuNSAxLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEwIDE1LjVhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpNMzYuNSAxNGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVaTTEwIDIzLjVhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpNMzYuNSAyMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVaTTEwIDMxLjVhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpNMzYuNSAzMGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVaTTQgMTQuMjVDNCAxMC44IDYuOCA4IDEwLjI1IDhoMjcuNUM0MS4yIDggNDQgMTAuOCA0NCAxNC4yNXYxOS41QzQ0IDM3LjIgNDEuMiA0MCAzNy43NSA0MGgtMjcuNUE2LjI1IDYuMjUgMCAwIDEgNCAzMy43NXYtMTkuNVptNi4yNS0zLjc1YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzV2MTkuNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aDI3LjVhMy43NSAzLjc1IDAgMCAwIDMuNzUtMy43NXYtMTkuNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yNy41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwSW1hZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBJbWFnZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY2QTIuNSAyLjUgMCAwIDAgNC41IDEzSDd2LTIuNUEzLjUgMy41IDAgMCAxIDEwLjUgN0gxNFY0LjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdabTAgMmMuMjggMCAuNS4yMi41LjVWNWEuNS41IDAgMCAxLTEgMHYtLjVjMC0uMjguMjItLjUuNS0uNVptNy41LjVWNWEuNS41IDAgMCAxLTEgMHYtLjVhLjUuNSAwIDAgMSAxIDBaTTQuNSA2Ljc1Yy4yOCAwIC41LjIyLjUuNXYuNWEuNS41IDAgMCAxLTEgMHYtLjVjMC0uMjguMjItLjUuNS0uNVpNNSAxMHYuNWEuNS41IDAgMCAxLTEgMFYxMGEuNS41IDAgMCAxIDEgMFptMyAuNUEyLjUgMi41IDAgMCAxIDEwLjUgOGg1YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY1YzAgLjUxLS4xNS45OC0uNDEgMS4zOEwxNC4yIDEzLjVhMS43MSAxLjcxIDAgMCAwLTIuNDIgMGwtMy4zOCAzLjM4QzguMTUgMTYuNDggOCAxNiA4IDE1LjV2LTVabTYgLjVhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0tNC44OCA2LjU5Yy40LjI2Ljg3LjQxIDEuMzguNDFoNWMuNSAwIC45OC0uMTUgMS4zOC0uNDFMMTMuNSAxNC4yYS43MS43MSAwIDAgMC0xIDBsLTMuMzggMy4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcEltYWdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcEltYWdlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41VjdoLTFWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN0MzLjY3IDMgMyAzLjY3IDMgNC41djZjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YxSDQuNUEyLjUgMi41IDAgMCAxIDIgMTAuNXYtNlpNMTYgMTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tOC0uNUEyLjUgMi41IDAgMCAxIDEwLjUgOGg1YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY1YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNUEyLjUgMi41IDAgMCAxIDggMTUuNXYtNVpNMTAuNSA5QzkuNjcgOSA5IDkuNjcgOSAxMC41djVjMCAuMjMuMDUuNDUuMTUuNjVsMi42NC0yLjY1YTEuNzEgMS43MSAwIDAgMSAyLjQyIDBsMi42NCAyLjY1Yy4xLS4yLjE1LS40Mi4xNS0uNjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wm0yIDUuMi0yLjY1IDIuNjVjLjIuMS40Mi4xNS42NS4xNWg1Yy4yMyAwIC40NS0uMDUuNjUtLjE1bC0yLjY1LTIuNjRhLjcxLjcxIDAgMCAwLTEgMFpNNC41IDRjLjI4IDAgLjUuMjIuNS41VjVhLjUuNSAwIDAgMS0xIDB2LS41YzAtLjI4LjIyLS41LjUtLjVabTcuNS41YS41LjUgMCAwIDAtMSAwVjVhLjUuNSAwIDAgMCAxIDB2LS41Wk00LjUgNi43NWMuMjggMCAuNS4yMi41LjV2LjVhLjUuNSAwIDAgMS0xIDB2LS41YzAtLjI4LjIyLS41LjUtLjVaTTUgMTBhLjUuNSAwIDAgMC0xIDB2LjVhLjUuNSAwIDAgMCAxIDBWMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBJbWFnZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcEltYWdlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDUuMjVDMiAzLjQ1IDMuNDYgMiA1LjI1IDJoOS41QzE2LjU1IDIgMTggMy40NiAxOCA1LjI1VjhoLTUuNzVBNC4yNSA0LjI1IDAgMCAwIDggMTIuMjVWMTZINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxMi43NXYtNy41Wk00Ljc1IDRhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41QS43NS43NSAwIDAgMCA0Ljc1IDRabS43NSA0Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41Wk0xNS4yNSA0YS43NS43NSAwIDAgMC0uNzUuNzV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNS41IDEyLjc1YS43NS43NSAwIDAgMC0xLjUgMHYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41Wm0zLjUtLjVDOSAxMC40NSAxMC40NiA5IDEyLjI1IDloNi41YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2Ni41YzAgLjYtLjE3IDEuMTgtLjQ2IDEuNjdsLTQuNDktNC4zMWMtLjg2LS44MS0yLjItLjgxLTMuMDcgMGwtNC41IDQuMzRjLS4zLS41LS40OC0xLjA4LS40OC0xLjd2LTYuNVptOC43NSAyLjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVabS01LjUgNy41Yy0uNjMgMC0xLjIxLS4xOC0xLjcxLS40OWw0LjQ2LTQuM2EuNzUuNzUgMCAwIDEgMS4wMyAwbDQuNDcgNC4yOGMtLjUuMzItMS4xLjUxLTEuNzUuNTFoLTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcEltYWdlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcEltYWdlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA1LjI1QzIgMy40NSAzLjQ2IDIgNS4yNSAyaDkuNUMxNi41NSAyIDE4IDMuNDYgMTggNS4yNVY4aC0xLjVWNS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTkuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2Ny41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDhWMTZINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxMi43NXYtNy41Wm0xNyA4YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabS0xMC0xQzkgMTAuNDUgMTAuNDYgOSAxMi4yNSA5aDYuNWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djYuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC02LjVBMy4yNSAzLjI1IDAgMCAxIDkgMTguNzV2LTYuNVptMy4yNS0xLjc1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY2LjVjMCAuMTkuMDMuMzcuMDkuNTRsMy4zOS0zLjE4Yy44Ny0uODEgMi4yLS44MSAzLjA3IDBsMy4zNyAzLjE1Yy4wNS0uMTYuMDgtLjMzLjA4LS41MXYtNi41YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNi41Wm0wIDEwaDYuNWMuMjQgMCAuNDYtLjA1LjY2LS4xM2wtMy4zOC0zLjE3YS43NS43NSAwIDAgMC0xLjAzIDBsLTMuMzggMy4xOGMuMi4wOC40LjEyLjYzLjEyWk01Ljc1IDVjLjQxIDAgLjc1LjM0Ljc1Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLjc1IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVaTTE0LjI1IDVjLjQxIDAgLjc1LjM0Ljc1Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNi41IDExLjc1YS43NS43NSAwIDAgMC0xLjUgMHYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwT2ZmNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwT2ZmNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIm0zOC4yMiAzOS45OCAzLjY1IDMuNjVhMS4yNSAxLjI1IDAgMCAwIDEuNzYtMS43Nkw2LjEzIDQuMzdhMS4yNSAxLjI1IDAgMSAwLTEuNzYgMS43NmwyLjcyIDIuNzNBNi4yNSA2LjI1IDAgMCAwIDQgMTQuMjV2MTkuNUM0IDM3LjIgNi44IDQwIDEwLjI1IDQwaDI3LjVjLjE2IDAgLjMxIDAgLjQ3LS4wMlpNNDQgMzMuNzVjMCAxLjU3LS41OCAzLjAxLTEuNTQgNC4xMWwtNC42NC00LjY0Yy4xMS0uMjEuMTgtLjQ2LjE4LS43MnYtMWExLjUgMS41IDAgMCAwLTIuNzQtLjg0TDEyLjYgOGgyNS4xNUM0MS4yIDggNDQgMTAuOCA0NCAxNC4yNXYxOS41Wk0xMCAxNS41YTEuNSAxLjUgMCAwIDEgMyAwdjFhMS41IDEuNSAwIDAgMS0zIDB2LTFaTTM2LjUgMTRjLS44MyAwLTEuNS42Ny0xLjUgMS41djFhMS41IDEuNSAwIDAgMCAzIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk0xMCAyMy41YTEuNSAxLjUgMCAwIDEgMyAwdjFhMS41IDEuNSAwIDAgMS0zIDB2LTFaTTM2LjUgMjJjLS44MyAwLTEuNS42Ny0xLjUgMS41djFhMS41IDEuNSAwIDAgMCAzIDB2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk0xMCAzMS41YTEuNSAxLjUgMCAwIDEgMyAwdjFhMS41IDEuNSAwIDAgMS0zIDB2LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBPZmY0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwT2ZmNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJtMzguMjIgMzkuOTggMy42NSAzLjY1YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMNi4xMyA0LjM3YTEuMjUgMS4yNSAwIDEgMC0xLjc2IDEuNzZsMi43MiAyLjczQTYuMjUgNi4yNSAwIDAgMCA0IDE0LjI1djE5LjVDNCAzNy4yIDYuOCA0MCAxMC4yNSA0MGgyNy41Yy4xNiAwIC4zMSAwIC40Ny0uMDJabS0yLjQ5LTIuNDhIMTAuMjVhMy43NSAzLjc1IDAgMCAxLTMuNzUtMy43NXYtMTkuNWMwLTEuNjIgMS4wMi0zIDIuNDYtMy41MkwzNS43MyAzNy41Wk00NCAzMy43NWMwIDEuNTctLjU4IDMuMDEtMS41NCA0LjExbC0xLjc4LTEuNzdjLjUxLS42NC44Mi0xLjQ2LjgyLTIuMzR2LTE5LjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NUgxNS4xTDEyLjYgOGgyNS4xNUM0MS4yIDggNDQgMTAuOCA0NCAxNC4yNXYxOS41Wm0tNi0xLjI1YzAgLjI2LS4wNy41LS4xOC43MmwtMi41Ni0yLjU2YTEuNSAxLjUgMCAwIDEgMi43NC44NHYxWm0tMjgtMTdhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpNMzYuNSAxNGMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVaTTEwIDIzLjVhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpNMzYuNSAyMmMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MWExLjUgMS41IDAgMCAwIDMgMHYtMWMwLS44My0uNjctMS41LTEuNS0xLjVaTTEwIDMxLjVhMS41IDEuNSAwIDAgMSAzIDB2MWExLjUgMS41IDAgMCAxLTMgMHYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcFBsYXkxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBQbGF5MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgM0EyLjUgMi41IDAgMCAwIDEgNS41djVBMi41IDIuNSAwIDAgMCAzLjUgMTNoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDNoLTlabTkgMmMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLTEgMHYtMWMwLS4yOC4yMi0uNS41LS41Wk0xMiA5LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVpNMy41IDVjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVpNMyA5LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptNC0zYzAtLjM5LjM1LS42My42Mi0uNDNsMi4yIDEuNTZjLjI0LjE3LjI0LjU3IDAgLjc0bC0yLjIgMS41NmMtLjI3LjItLjYyLS4wNC0uNjItLjQzdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBQbGF5MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMy41IDNBMi41IDIuNSAwIDAgMCAxIDUuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDEzaDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di01QTIuNSAyLjUgMCAwIDAgMTIuNSAzaC05Wk0yIDUuNUMyIDQuNjcgMi42NyA0IDMuNSA0aDljLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTVaTTEyLjUgNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wk0xMiA5LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVpNMy41IDVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNMyA5LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptNC0zYzAtLjM5LjM1LS42My42Mi0uNDNsMi4yIDEuNTZjLjI0LjE3LjI0LjU3IDAgLjc0bC0yLjIgMS41NmMtLjI3LjItLjYyLS4wNC0uNjItLjQzdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFBsYXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgNGEzIDMgMCAwIDAtMyAzdjZhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjdhMyAzIDAgMCAwLTMtM0g1Wm0xMC41IDJjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVptLS41IDYuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0uNS0zLjVjLjI4IDAgLjUuMjIuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFjMC0uMjguMjItLjUuNS0uNVpNNCA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgNS41Yy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVaTTQgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFabTQtMS4zN2MwLS40OS40Ni0uNzkuODMtLjU0bDIuOTQgMS45NWMuMy4yLjMuNzIgMCAuOTJsLTIuOTQgMS45NWMtLjM3LjI1LS44My0uMDUtLjgzLS41NFY4LjEzWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBQbGF5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC41IDRBMi41IDIuNSAwIDAgMCAyIDYuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE2aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNGgtMTFaTTMgNi41QzMgNS42NyAzLjY3IDUgNC41IDVoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxMy41di03Wk0xNS41IDZhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVptLS41IDYuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0uNS0zLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNNCA2LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgNS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTQgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFabTQtMS4zN2MwLS40OS40Ni0uNzkuODMtLjU0bDIuOTQgMS45NWMuMy4yLjMuNzIgMCAuOTJsLTIuOTQgMS45NWMtLjM3LjI1LS44My0uMDUtLjgzLS41NFY4LjEzWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFBsYXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuMjUgNEEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGgxMy41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTkuNUMyMiA1LjQ1IDIwLjU0IDQgMTguNzUgNEg1LjI1Wm0xNCAzYy40MSAwIC43NS4zNC43NS43NXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41YzAtLjQxLjM0LS43NS43NS0uNzVabS0uNzUgOC43NWEuNzUuNzUgMCAwIDEgMS41IDB2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNVptLjc1LTQuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNNCA3Ljc1YS43NS43NSAwIDAgMSAxLjUgMHYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41Wk00Ljc1IDE1Yy40MSAwIC43NS4zNC43NS43NXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41YzAtLjQxLjM0LS43NS43NS0uNzVaTTQgMTEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVabTYtMmMwLS41OC41OC0uOTQgMS4wMy0uNjVsMy42OCAyLjM1Yy4zOS4yNC4zOS44NiAwIDEuMWwtMy42OCAyLjM1Yy0uNDUuMjktMS4wMy0uMDctMS4wMy0uNjV2LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcFBsYXkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwUGxheTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuMjUgNEEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGgxMy41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTkuNUMyMiA1LjQ1IDIwLjU0IDQgMTguNzUgNEg1LjI1Wk0zLjUgNy4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMy41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djkuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVINS4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di05LjVaTTE4LjI1IDdhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0tLjc1IDguNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVabS43NS00Ljc1YS43NS43NSAwIDAgMC0uNzUuNzV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNSA3Ljc1YS43NS43NSAwIDAgMSAxLjUgMHYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41Wk01Ljc1IDE1YS43NS43NSAwIDAgMC0uNzUuNzV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNSAxMS43NWEuNzUuNzUgMCAwIDEgMS41IDB2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNVptNS0yYzAtLjU4LjU4LS45NCAxLjAzLS42NWwzLjY4IDIuMzVjLjM5LjI0LjM5Ljg2IDAgMS4xbC0zLjY4IDIuMzVjLS40NS4yOS0xLjAzLS4wNy0xLjAzLS42NXYtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwUGxheTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFBsYXkzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTYuNSA0QTQuNSA0LjUgMCAwIDAgMiA4LjV2MTVBNC41IDQuNSAwIDAgMCA2LjUgMjhoMTlhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xNUE0LjUgNC41IDAgMCAwIDI1LjUgNGgtMTlaTTI2IDhhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDEgMS0yIDBWOWExIDEgMCAwIDEgMS0xWm0tMSA3YTEgMSAwIDEgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yWm0xIDVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDEgMS0yIDB2LTJhMSAxIDAgMCAxIDEtMVpNNSA5YTEgMSAwIDAgMSAyIDB2MmExIDEgMCAxIDEtMiAwVjlabTEgNWExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMSAxLTIgMHYtMmExIDEgMCAwIDEgMS0xWm0tMSA3YTEgMSAwIDEgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yWm04LTcuOTVjMC0uODEuODgtMS4zMSAxLjU4LS45bDUuNiAzLjI3YS45LjkgMCAwIDEgMCAxLjU0bC01LjYgMy4yOGMtLjcuNC0xLjU4LS4xLTEuNTgtLjl2LTYuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcFBsYXkzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwUGxheTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTYuNSA0QTQuNSA0LjUgMCAwIDAgMiA4LjV2MTVBNC41IDQuNSAwIDAgMCA2LjUgMjhoMTlhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xNUE0LjUgNC41IDAgMCAwIDI1LjUgNGgtMTlaTTQgOC41QTIuNSAyLjUgMCAwIDEgNi41IDZoMTlBMi41IDIuNSAwIDAgMSAyOCA4LjV2MTVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xOUEyLjUgMi41IDAgMCAxIDQgMjMuNXYtMTVaTTI1IDhhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDBWOWExIDEgMCAwIDAtMS0xWm0tMSA3YTEgMSAwIDEgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yWm0xIDVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDB2LTJhMSAxIDAgMCAwLTEtMVpNNiA5YTEgMSAwIDAgMSAyIDB2MmExIDEgMCAxIDEtMiAwVjlabTEgNWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAwIDAtMS0xWm0tMSA3YTEgMSAwIDEgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yWm03LTcuOTVjMC0uODEuODgtMS4zMSAxLjU4LS45bDUuNiAzLjI3YS45LjkgMCAwIDEgMCAxLjU0bC01LjYgMy4yOGMtLjcuNC0xLjU4LS4xLTEuNTgtLjl2LTYuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcFNwbGl0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsbXN0cmlwU3BsaXQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguNSAxLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWk0xIDUuNUEyLjUgMi41IDAgMCAxIDMuNSAzaDN2MTBoLTNBMi41IDIuNSAwIDAgMSAxIDEwLjV2LTVabTIgMHYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwWk0zLjUgOWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wm02IDRWM2gzQTIuNSAyLjUgMCAwIDEgMTUgNS41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0zWk0xMiA1LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLTEgMFptLjUgMy41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBTcGxpdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBTcGxpdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTguNSAxLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWk0xIDUuNUEyLjUgMi41IDAgMCAxIDMuNSAzaDN2MWgtM0MyLjY3IDQgMiA0LjY3IDIgNS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoM3YxaC0zQTIuNSAyLjUgMCAwIDEgMSAxMC41di01Wk05LjUgNFYzaDNBMi41IDIuNSAwIDAgMSAxNSA1LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTN2LTFoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWk0xMiA1LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVptLjUgMy41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTMgNS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFaTTMuNSA5YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBTcGxpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFNwbGl0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHYxNWEuNS41IDAgMCAwIDEgMHYtMTVaTTIgN2EzIDMgMCAwIDEgMy0zaDMuNXYxMkg1YTMgMyAwIDAgMS0zLTNWN1ptMi41LTFhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNNCAxMy41YS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtMSAwdjFaTTQuNSA5YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVabTcgN1Y0SDE1YTMgMyAwIDAgMSAzIDN2NmEzIDMgMCAwIDEtMyAzaC0zLjVaTTE1IDcuNWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLTEgMHYxWm0uNSA0LjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNMTUgOS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0xIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBTcGxpdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBTcGxpdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjUgMi41YS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVpNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGg0djFoLTRDMy42NyA1IDMgNS42NyAzIDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDR2MWgtNEEyLjUgMi41IDAgMCAxIDIgMTMuNXYtN1pNMTEuNSA1VjRoNEEyLjUgMi41IDAgMCAxIDE4IDYuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNHYtMWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTRaTTE1IDYuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWm0uNSA1LjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVpNMTUgOS41YS41LjUgMCAwIDEgMSAwdjFhLjUuNSAwIDAgMS0xIDB2LTFaTTQuNSA2YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgMSAwdi0xYS41LjUgMCAwIDAtLjUtLjVaTTQgMTIuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWk00LjUgOWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsbXN0cmlwU3BsaXQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBTcGxpdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNzUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTguNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NVpNMiA3LjI1QzIgNS40NSAzLjQ2IDQgNS4yNSA0aDV2MTZoLTVBMy4yNSAzLjI1IDAgMCAxIDIgMTYuNzV2LTkuNVpNNC43NSA3YS43NS43NSAwIDAgMC0uNzUuNzV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNUEuNzUuNzUgMCAwIDAgNC43NSA3Wk00IDE1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwWk00Ljc1IDExYS43NS43NSAwIDAgMC0uNzUuNzV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWEuNzUuNzUgMCAwIDAtLjc1LS43NVptOSA5VjRoNUMyMC41NSA0IDIyIDUuNDYgMjIgNy4yNXY5LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNVpNMTguNSA3Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwWm0uNzUgNy4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabS0uNzUtMy4yNXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0xLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbG1zdHJpcFNwbGl0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFNwbGl0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuNzUgMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTguNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NVpNMiA3LjI1QzIgNS40NSAzLjQ2IDQgNS4yNSA0aDV2MS41aC01Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY5LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNVYyMGgtNUEzLjI1IDMuMjUgMCAwIDEgMiAxNi43NXYtOS41Wk0xMy43NSA1LjVWNGg1QzIwLjU1IDQgMjIgNS40NiAyMiA3LjI1djkuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC01di0xLjVoNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTkuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTVabTMuNzUgMi4yNWEuNzUuNzUgMCAwIDEgMS41IDB2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNVptLjc1IDcuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0tLjc1LTMuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVaTTUuNzUgN2EuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVBLjc1Ljc1IDAgMCAwIDUuNzUgN1pNNSAxNS43NWEuNzUuNzUgMCAwIDEgMS41IDB2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNVpNNS43NSAxMWEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBTcGxpdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbG1zdHJpcFNwbGl0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNyAzYTEgMSAwIDEgMC0yIDB2MjZhMSAxIDAgMSAwIDIgMFYzWk02LjUgNGg3djI0aC03QTQuNSA0LjUgMCAwIDEgMiAyMy41di0xNUE0LjUgNC41IDAgMCAxIDYuNSA0Wk02IDhhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDBWOWExIDEgMCAwIDAtMS0xWm0tMSA3djJhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAxIDAtMiAwWm0xIDVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDB2LTJhMSAxIDAgMCAwLTEtMVptMTkuNSA4aC03VjRoN0E0LjUgNC41IDAgMCAxIDMwIDguNXYxNWE0LjUgNC41IDAgMCAxLTQuNSA0LjVaTTI1IDl2MmExIDEgMCAxIDAgMiAwVjlhMSAxIDAgMSAwLTIgMFptMSA1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDAgMC0xLTFabS0xIDd2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDEgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWxtc3RyaXBTcGxpdDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWxtc3RyaXBTcGxpdDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE3IDNhMSAxIDAgMSAwLTIgMHYyNmExIDEgMCAxIDAgMiAwVjNaTTYuNSA0aDd2MmgtN0EyLjUgMi41IDAgMCAwIDQgOC41djE1QTIuNSAyLjUgMCAwIDAgNi41IDI2aDd2MmgtN0E0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVBNC41IDQuNSAwIDAgMSA2LjUgNFptMTkgMjJoLTd2Mmg3YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTVBNC41IDQuNSAwIDAgMCAyNS41IDRoLTd2Mmg3QTIuNSAyLjUgMCAwIDEgMjggOC41djE1YTIuNSAyLjUgMCAwIDEtMi41IDIuNVpNMjQgOWExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMSAxLTIgMFY5Wm0xIDVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDEgMCAyIDB2LTJhMSAxIDAgMCAwLTEtMVptLTEgN2ExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMlpNNyA4YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAxIDAgMiAwVjlhMSAxIDAgMCAwLTEtMVptLTEgN2ExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMlptMSA1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAxIDAgMiAwdi0yYTEgMSAwIDAgMC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXIxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXIxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTEgMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNUEuNzUuNzUgMCAwIDEgMSAyLjc1Wm0yIDNjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjVBLjc1Ljc1IDAgMCAxIDMgNS43NVpNNS4yNSA4YS43NS43NSAwIDAgMCAwIDEuNWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXIxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMSAyLjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVabTIgM2MwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpNNSA4YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFINVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMS43NSAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTFhLjc1Ljc1IDAgMCAxIDAgMS41aC0xMWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMiA0YzAtLjQxLjM0LS43NS43NS0uNzVoN2EuNzUuNzUgMCAwIDEgMCAxLjVoLTdhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTIgNGMwLS40MS4zNC0uNzUuNzUtLjc1aDNhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgMy41YzAtLjI4LjIyLS41LjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjVabTIgNGMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptMiA0YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi4yNSAxMy41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMSAwLTEuNWg0LjVabTItNC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVoOC41Wm0yLTQuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDMuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDEyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDEzaDVhLjUuNSAwIDAgMSAuMDkgMUg3LjVhLjUuNSAwIDAgMS0uMDktMWg1LjA5LTVabS0yLTRoOWEuNS41IDAgMCAxIC4wOSAxSDUuNWEuNS41IDAgMCAxLS4wOS0xaDkuMDktOVptLTItNGgxM2EuNS41IDAgMCAxIC4wOSAxSDMuNWEuNS41IDAgMCAxLS4wOS0xSDE2LjVoLTEzWlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMCAxNmg0YTEgMSAwIDAgMSAuMTIgMkgxMGExIDEgMCAwIDEtLjEyLTJIMTRoLTRabS0yLTVoOGExIDEgMCAwIDEgLjEyIDJIOGExIDEgMCAwIDEtLjEyLTJIMTYgOFpNNSA2aDE0YTEgMSAwIDAgMSAuMTIgMkg1YTEgMSAwIDAgMS0uMTItMkgxOSA1WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjUgMTZhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMSAwLTEuNWgzWm0zLTVhLjc1Ljc1IDAgMCAxIDAgMS41aC05YS43NS43NSAwIDAgMSAwLTEuNWg5Wm0zLTVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xNWEuNzUuNzUgMCAwIDEgMC0xLjVoMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXIyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXIyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE3IDE5YTEgMSAwIDEgMSAwIDJoLTZhMSAxIDAgMSAxIDAtMmg2Wm00LTZhMSAxIDAgMSAxIDAgMkg3YTEgMSAwIDEgMSAwLTJoMTRabTMtNmExIDEgMCAxIDEgMCAySDRhMSAxIDAgMCAxIDAtMmgyMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlcjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXIyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNy4yNSAxOWEuNzUuNzUgMCAwIDEgMCAxLjVoLTYuNWEuNzUuNzUgMCAwIDEgMC0xLjVoNi41Wm00LTZhLjc1Ljc1IDAgMCAxIDAgMS41SDYuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDE0LjVabTMtNmEuNzUuNzUgMCAwIDEgMCAxLjVIMy43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMjAuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlcjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlcjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMyA5LjI1QzMgOC41NiAzLjU2IDggNC4yNSA4aDIzLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDQuMjVDMy41NiAxMC41IDMgOS45NCAzIDkuMjVabTQgN2MwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxNS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNUg4LjI1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTEyLjI1IDIyYTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg3LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXIzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlcjMyTGlnaHQnLCBcIjMyXCIsIFtcIk0zIDguNWMwLS4yOC4yMi0uNS41LS41aDI1YS41LjUgMCAwIDEgMCAxaC0yNWEuNS41IDAgMCAxLS41LS41Wm00IDdjMC0uMjguMjItLjUuNS0uNWgxN2EuNS41IDAgMCAxIDAgMWgtMTdhLjUuNSAwIDAgMS0uNS0uNVptNC41IDYuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlcjMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMgOWExIDEgMCAwIDEgMS0xaDI0YTEgMSAwIDEgMSAwIDJINGExIDEgMCAwIDEtMS0xWm00IDdhMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAxIDEgMCAySDhhMSAxIDAgMCAxLTEtMVptNSA2YTEgMSAwIDEgMCAwIDJoOGExIDEgMCAxIDAgMC0yaC04WlwiXSk7XG5leHBvcnQgY29uc3QgRmlsdGVyQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyQWRkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNyA5LjI0YTQuNSA0LjUgMCAxIDEtNS03LjQ4IDQuNSA0LjUgMCAwIDEgNSA3LjQ4Wm0tMi4xNS02LjFhLjUuNSAwIDAgMC0uODUuMzZWNWgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFY2aDEuNWEuNS41IDAgMCAwIDAtMUgxNVYzLjVhLjUuNSAwIDAgMC0uMTUtLjM1Wk05LjAyIDVhNS41NyA1LjU3IDAgMCAwIC4wNyAxLjVIMy43NWEuNzUuNzUgMCAwIDEgMC0xLjVoNS4yN1ptMS40NiA0LjI1YTUuNSA1LjUgMCAwIDAgMi4zOCAxLjVINS43NWEuNzUuNzUgMCAwIDEgMC0xLjVoNC43M1ptMS43NyA0LjI1YS43NS43NSAwIDAgMSAwIDEuNWgtNC41YS43NS43NSAwIDAgMSAwLTEuNWg0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgOS4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41YS41LjUgMCAwIDAtLjE1LS4zNVpNOS4wMiA1SDMuNDFhLjUuNSAwIDAgMCAuMDkgMWg1LjUyYTUuNTcgNS41NyAwIDAgMSAwLTFabTEuMjQgNEg1LjRhLjUuNSAwIDAgMCAuMDkgMWg1Ljg0Yy0uNC0uMjgtLjc3LS42Mi0xLjA4LTFaTTcuNCAxM2g1LjA5YS41LjUgMCAwIDEgLjA5IDFINy41YS41LjUgMCAwIDEtLjA5LTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJEaXNtaXNzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyRGlzbWlzczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi4yNiA5YTUuNTIgNS41MiAwIDAgMCAxLjk1IDEuNUgzLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNzZaTTUuMDIgNWE1LjU3IDUuNTcgMCAwIDAgLjA3IDEuNUgxLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNTJabS40OCA4YS43NS43NSAwIDAgMCAwIDEuNWgzYS43NS43NSAwIDAgMCAwLTEuNWgtM1ptNS0zYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0xLjg1LTYuMzVjLjIuMi4yLjUgMCAuN0wxMS4yMSA1LjVsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN0wxMC41IDYuMjEgOS4zNSA3LjM1YS41LjUgMCAxIDEtLjctLjdMOS43OSA1LjUgOC42NSA0LjM1YS41LjUgMCAxIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckRpc21pc3MxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyRGlzbWlzczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTYuMjYgOWMuMzEuMzguNjcuNzIgMS4wOCAxSDMuNWEuNS41IDAgMCAxIDAtMWgyLjc2Wk01LjAyIDVhNS41NyA1LjU3IDAgMCAwIDAgMUgxLjVhLjUuNSAwIDAgMSAwLTFoMy41MlptLjQ4IDhhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptNS0zYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0xLjg1LTYuMzVjLjIuMi4yLjUgMCAuN0wxMS4yMSA1LjVsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN0wxMC41IDYuMjEgOS4zNSA3LjM1YS41LjUgMCAxIDEtLjctLjdMOS43OSA1LjUgOC42NSA0LjM1YS41LjUgMCAxIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckRpc21pc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMS43MyAxMC4yNUE1LjQ2IDUuNDYgMCAwIDAgMTQgMTFjMCAuNDEtLjM0Ljc1LS43NS43NWgtOC41YS43NS43NSAwIDAgMSAwLTEuNWg2Ljk4Wk05LjAzIDZjLjA0LjUyLjE2IDEuMDMuMzQgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDYuMjdaTTEyIDE1LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC00LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVpNMTQuNSAxMGE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdMMTUuMjEgNS41bDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMMTQuNSA2LjIxbC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN2wxLjE0LTEuMTUtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckRpc21pc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyRGlzbWlzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuMiA3SDIuNDJhLjUuNSAwIDAgMCAuMDkgMWg3LjFjLS4xNi0uMzItLjMtLjY1LS40LTFabTIuOCA4LjVhLjUuNSAwIDAgMC0uNS0uNUg2LjQxYS41LjUgMCAwIDAgLjA5IDFoNS4wOWEuNS41IDAgMCAwIC40MS0uNVptMS41LTQuNUg0LjQxYS41LjUgMCAwIDAgLjA5IDFoOS4wOWEuNS41IDAgMCAwLS4wOS0xWm0xLTFhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43TDE1LjIxIDUuNWwxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43TDE0LjUgNi4yMWwtMS4xNSAxLjE0YS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1LTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNCAxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJEaXNtaXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyRGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjMgNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS03LjE1LTIuMzVhLjUuNSAwIDAgMC0uNy43bDEuNjQgMS42NS0xLjY0IDEuNjVhLjUuNSAwIDAgMCAuNy43bDEuNjUtMS42NCAxLjY1IDEuNjRhLjUuNSAwIDAgMCAuNy0uN0wxOC4yMSA3LjVsMS42NC0xLjY1YS41LjUgMCAwIDAtLjctLjdMMTcuNSA2Ljc5bC0xLjY1LTEuNjRaXCIsIFwiTTggMTFoNC4wMmMuNTIuOCAxLjIgMS40OSAyLjAxIDJIOGExIDEgMCAwIDEtLjEyLTJIOFpcIiwgXCJNNSA2aDYuMTdhNi41MiA2LjUyIDAgMCAwLS4xNSAySDVhMSAxIDAgMCAxLS4xMi0ySDVaXCIsIFwiTTkuODggMTZIMTRhMSAxIDAgMCAxIC4xMiAySDEwYTEgMSAwIDAgMS0uMTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlckRpc21pc3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyRGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIzIDcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNS0yLjM1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdMMTguMjEgNy41bDEuNjQtMS42NWEuNS41IDAgMCAwLS43LS43TDE3LjUgNi43OWwtMS42NS0xLjY0WlwiLCBcIk0xMy4zNSAxMi41YTYuNTQgNi41NCAwIDAgMS0xLjMzLTEuNUg3LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuODVaXCIsIFwiTTExIDcuNWMwLS41Mi4wNi0xLjAyLjE3LTEuNUg0LjVhLjc1Ljc1IDAgMCAwIDAgMS41SDExWlwiLCBcIk0xMy41IDE2YS43NS43NSAwIDAgMSAwIDEuNWgtM2EuNzUuNzUgMCAwIDEgMC0xLjVoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlclN5bmMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaWx0ZXJTeW5jMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCA1LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk4IDEuOTggMCAwIDAtMS43Mi0uMSAyIDIgMCAwIDAtLjY2LjQ0LjUuNSAwIDEgMS0uNzEtLjcxQTMgMyAwIDAgMSAxNiAzLjE1VjNjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzQTMgMyAwIDAgMSAxMyA3Ljg1VjhhLjUuNSAwIDAgMS0xIDBWNi41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk4IDEuOTggMCAwIDAgMS43Mi4xIDIgMiAwIDAgMCAuNjYtLjQ0LjUuNSAwIDEgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2Wk0xNCAxMC45OGE1LjQ2IDUuNDYgMCAwIDEtMi4yNy0uNzNINC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAuNzUtLjc3Wk05LjM3IDcuNWMtLjE4LS40Ny0uMy0uOTgtLjM1LTEuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg2LjYyWm0xLjg4IDdhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbHRlclN5bmMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyU3luYzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDUuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTggMS45OCAwIDAgMC0xLjcyLS4xIDIgMiAwIDAgMC0uNjYuNDQuNS41IDAgMSAxLS43MS0uNzFBMyAzIDAgMCAxIDE2IDMuMTVWM2MwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNBMyAzIDAgMCAxIDEzIDcuODVWOGEuNS41IDAgMCAxLTEgMFY2LjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTggMS45OCAwIDAgMCAxLjcyLjEgMiAyIDAgMCAwIC42Ni0uNDQuNS41IDAgMSAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaTTIuNSA3aDYuN2MuMS4zNS4yNC42OC40IDFIMi41YS41LjUgMCAwIDEtLjA5LTFoLjA5Wm05IDhhLjUuNSAwIDAgMSAuMDkgMUg2LjVhLjUuNSAwIDAgMS0uMDktMWg1LjA5Wm0tNy00aDlhLjUuNSAwIDAgMSAuMDkgMUg0LjVhLjUuNSAwIDAgMS0uMDktMWguMDlaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJTeW5jMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlsdGVyU3luYzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgNy41YTUuNSA1LjUgMCAxIDAgMTEgMCA1LjUgNS41IDAgMCAwLTExIDBaTTIwLjUgNGMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMWEyLjUgMi41IDAgMCAwLTQuMDMuMDQuNS41IDAgMCAxLS44LS41OSAzLjUgMy41IDAgMCAxIDUuMzMtLjRWNC41YzAtLjI4LjIyLS41LjUtLjVaTTE1IDkuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMWEyLjUgMi41IDAgMCAwIDMuOTEuMTEuNS41IDAgMSAxIC43Ny42NSAzLjUgMy41IDAgMCAxLTUuMTguMTlaTTggMTNoNi4wM2MtLjgtLjUxLTEuNS0xLjItMi0ySDcuODdBMSAxIDAgMCAwIDggMTNaTTUgNmg2LjE3YTYuNTIgNi41MiAwIDAgMC0uMTUgMkg1YTEgMSAwIDAgMS0uMTItMkg1Wm00Ljg4IDEwSDE0YTEgMSAwIDAgMSAuMTIgMkgxMGExIDEgMCAwIDEtLjEyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGaWx0ZXJTeW5jMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbHRlclN5bmMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiA3LjVhNS41IDUuNSAwIDEgMCAxMSAwIDUuNSA1LjUgMCAwIDAtMTEgMFpNMjAuNSA0Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWgxYTIuNSAyLjUgMCAwIDAtNC4wMy4wNC41LjUgMCAwIDEtLjgtLjU5IDMuNSAzLjUgMCAwIDEgNS4zMy0uNFY0LjVjMC0uMjguMjItLjUuNS0uNVpNMTUgOS45NXYuNTVhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0xYTIuNSAyLjUgMCAwIDAgMy45MS4xMS41LjUgMCAxIDEgLjc3LjY1IDMuNSAzLjUgMCAwIDEtNS4xOC4xOVpNNy41IDEyLjVoNS44NWE2LjU0IDYuNTQgMCAwIDEtMS4zMy0xLjVINy41YS43NS43NSAwIDAgMCAwIDEuNVptMy41LTVjMC0uNTIuMDYtMS4wMi4xNy0xLjVINC41YS43NS43NSAwIDAgMCAwIDEuNUgxMVptMi41IDguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGaW5nZXJwcmludDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbmdlcnByaW50MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMi4xNGMxLjQ2LS43IDQuNi0xLjM4IDguMTQuOTRhLjc0Ljc0IDAgMCAwIC44MS0xLjI0QzkuNC0uOCA1LjctLjA3IDMuODYuODFhLjc0Ljc0IDAgMSAwIC42NSAxLjMzWm0tMS42OC4yN2MuMjMuMzUuMTMuOC0uMiAxLjAzLS40OC4zLTEuMDMgMS0xLjI0IDEuMzZBLjc0Ljc0IDAgMSAxIC4xIDQuMDZjLjI4LS40OC45Ny0xLjM4IDEuNy0xLjg2YS43NC43NCAwIDAgMSAxLjAyLjIxWm01LjMtLjE2YS43NC43NCAwIDEgMCAwIDEuNDhjMS41MyAwIDUuMjIgMS4yOSA2LjE3IDYuMjVhLjc0Ljc0IDAgMSAwIDEuNDUtLjI3Yy0xLjEtNS43Ni01LjQ4LTcuNDYtNy42Mi03LjQ2Wm0tMS40OC43N2MuMTQuMzgtLjA2LjgtLjQ1Ljk1LTMuODcgMS40LTQuODUgNS4xMi00LjQ3IDcuNzRhLjc0Ljc0IDAgMSAxLTEuNDcuMmMtLjQzLTMuMDUuNjktNy42IDUuNDQtOS4zMy4zOC0uMTQuOC4wNi45NS40NFptLS44NiAzLjg2Yy0xLjU4IDEuMjMtMi41NCAzLjg3LS45MyA3LjA3YS43NC43NCAwIDAgMS0xLjMyLjY2Yy0xLjktMy43Ni0uODYtNy4yIDEuMzUtOC45YTUgNSAwIDAgMSAzLjg2LTEuMDMgNS42MyA1LjYzIDAgMCAxIDMuNzUgMi42Mi43NC43NCAwIDEgMS0xLjIzLjgyQTQuMTcgNC4xNyAwIDAgMCA4LjUgNi4xNGEzLjUyIDMuNTIgMCAwIDAtMi43Mi43NFpNMTMuMyA5LjhhLjc0Ljc0IDAgMCAwLTEuNDcuMDhjLjEgMS44OCAxLjI3IDIuODkgMS45OSAzLjEyYS43NC43NCAwIDAgMCAuNDUtMS40bC0uMDItLjAxYTEuNjkgMS42OSAwIDAgMS0uNDktLjQzIDIuNDIgMi40MiAwIDAgMS0uNDYtMS4zNlptLTQuNDMuNTNhLjc0Ljc0IDAgMCAwLTEuNDcgMGMwIDEuMDUuMTMgMS44Ny40NCAyLjY5LjMxLjc5Ljc5IDEuNTMgMS40MSAyLjQxYS43NC43NCAwIDAgMCAxLjIxLS44NWMtLjYyLS44OC0xLTEuNDktMS4yNC0yLjFhNS42IDUuNiAwIDAgMS0uMzUtMi4xNVptLTEuMSA0LjU2Yy0yLjA1LTMuNjgtMS4zMy01LjQ3LS42Mi02LjA0YTEuNCAxLjQgMCAwIDEgMi4yNy43Yy4wNi4yLjEuNDUuMTcuNzZsLjA0LjE3Yy4wOC4zOC4xNy44My4zMyAxLjI5LjMuOTMuODMgMS45NSAxLjkgMi43NGEuNzQuNzQgMCAxIDAgLjg3LTEuMTkgMy44NyAzLjg3IDAgMCAxLTEuMzctMi4wMWMtLjEyLS4zOC0uMi0uNzYtLjI5LTEuMTNsLS4wMy0uMTVjLS4wNi0uMzEtLjEzLS42NC0uMjEtLjlBMi44OCAyLjg4IDAgMCAwIDYuMiA3LjdjLTEuNTkgMS4zLTEuODggNC4wNS4yNSA3LjlhLjc0Ljc0IDAgMSAwIDEuMy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbmdlcnByaW50MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbmdlcnByaW50MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC4yOCAxLjczYzEuNTctLjc2IDQuOS0xLjQ3IDguNjUuOThhLjUuNSAwIDAgMCAuNTYtLjg1QzkuMzktLjgxIDUuNjYtLjA3IDMuODQuOGEuNS41IDAgMSAwIC40NC45MlptLTEuODMuNjVhLjUuNSAwIDAgMS0uMTUuNyA1LjQyIDUuNDIgMCAwIDAtMS4zNSAxLjUuNS41IDAgMSAxLS44OC0uNTJjLjI3LS40Ny45Ny0xLjM2IDEuNjctMS44M2EuNS41IDAgMCAxIC43LjE1Wm01LjY4LS4wNWEuNS41IDAgMCAwIDAgMS4wMWMxLjY4IDAgNS42IDEuNCA2LjYxIDYuNjZhLjUuNSAwIDEgMCAxLS4yQzE0LjYyIDQgMTAuMjMgMi4zNCA4LjEzIDIuMzRaTTYuOTUgOC42OWMtLjg4LjcxLTEuNTUgMi43My41NyA2LjU2YS41LjUgMCAwIDEtLjg5LjQ5Yy0yLjE4LTMuOTUtMS44LTYuNjMtLjMyLTcuODRhMi43MiAyLjcyIDAgMCAxIDQuMzUgMS4zNGMuMDkuMjcuMTUuNi4yMi45MWwuMDMuMTZjLjA4LjM5LjE3Ljc5LjMgMS4yLjI3LjguNyAxLjYgMS41MSAyLjJhLjUuNSAwIDAgMS0uNi44MSA1LjI2IDUuMjYgMCAwIDEtMS44Ny0yLjdjLS4xNS0uNDYtLjI1LS45MS0uMzMtMS4zbC0uMDQtLjE3Yy0uMDYtLjMzLS4xMi0uNTktLjE5LS44YTEuNyAxLjcgMCAwIDAtMi43NC0uODZabTYuMjYgMS4xOWEuNS41IDAgMCAwLTEuMDIuMDVjLjEgMS44NCAxLjI0IDIuOCAxLjg4IDNhLjUuNSAwIDAgMCAuMzEtLjk3Yy0uMjMtLjA3LTEuMS0uNjYtMS4xNy0yLjA4Wm0tNC41Ny41M2EuNS41IDAgMCAwLTEuMDIgMGMwIDEuMDYuMTMgMS44OC40NCAyLjY4LjMxLjc5Ljc5IDEuNTMgMS40MyAyLjQ0YS41LjUgMCAwIDAgLjgzLS41OCAxMC44IDEwLjggMCAwIDEtMS4zMS0yLjIzIDYuMDMgNi4wMyAwIDAgMS0uMzctMi4zWk01LjU2IDYuNjRDMy44IDggMi44IDEwLjg1IDQuNTIgMTQuMjRhLjUuNSAwIDEgMS0uOTEuNDZjLTEuOS0zLjc4LS44NS03LjE4IDEuMzItOC44NmE0LjkgNC45IDAgMCAxIDMuNzktMS4wMiA1LjU2IDUuNTYgMCAwIDEgMy43IDIuNi41LjUgMCAwIDEtLjg0LjU2IDQuNTUgNC41NSAwIDAgMC0zLjAyLTIuMTUgMy44OCAzLjg4IDAgMCAwLTMgLjgxWm0uNS0zLjA0YS41LjUgMCAwIDAtLjM2LS45NkMuOTUgNC4zNy0uMTggOC45My4yNiAxMi4wMWEuNS41IDAgMSAwIDEtLjE1Yy0uNC0yLjc4LjY0LTYuNzUgNC44LTguMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBGaW5nZXJwcmludDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpbmdlcnByaW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02LjgzIDQuMThjMS40Ny0uNzIgNC42NS0xLjQgOC4yNi45NWEuNzUuNzUgMCAwIDAgLjgyLTEuMjZDMTEuNzkgMS4yIDguMDMgMS45MyA2LjE3IDIuODJhLjc1Ljc1IDAgMSAwIC42NiAxLjM2Wm0tMS43MS4yN2MuMjMuMzUuMTMuODItLjIyIDEuMDRhNS4xIDUuMSAwIDAgMC0xLjI1IDEuMzkuNzUuNzUgMCAxIDEtMS4zLS43NmMuMjgtLjQ4Ljk5LTEuNCAxLjczLTEuODhhLjc1Ljc1IDAgMCAxIDEuMDQuMjFabTUuMzgtLjE2YS43NS43NSAwIDAgMCAwIDEuNWMxLjU1IDAgNS4zIDEuMyA2LjI2IDYuMzVhLjc1Ljc1IDAgMSAwIDEuNDgtLjI4QzE3LjEgNiAxMi42NyA0LjI5IDEwLjUgNC4yOVptLTEuNTEuNzhhLjc1Ljc1IDAgMCAxLS40NS45NkM0LjYgNy40NiAzLjYxIDExLjIzIDQgMTMuODlhLjc1Ljc1IDAgMSAxLTEuNDguMjJjLS40NC0zLjEuNjktNy43NCA1LjUyLTkuNS4zOS0uMTMuODIuMDcuOTYuNDZabS0uODcgMy45MmMtMS42IDEuMjQtMi41OCAzLjkyLS45NSA3LjE3YS43NS43NSAwIDAgMS0xLjM0LjY4Yy0xLjkyLTMuODItLjg3LTcuMyAxLjM3LTkuMDRhNS4wNyA1LjA3IDAgMCAxIDMuOTItMS4wNSA1LjcyIDUuNzIgMCAwIDEgMy44MSAyLjY3Ljc1Ljc1IDAgMSAxLTEuMjUuODMgNC4yMyA0LjIzIDAgMCAwLTIuOC0yLjAyQTMuNTcgMy41NyAwIDAgMCA4LjEyIDlabTcuNjMgMi45N2EuNzUuNzUgMCAxIDAtMS41LjA4Yy4xIDEuOTEgMS4yOSAyLjk0IDIuMDIgMy4xN2EuNzUuNzUgMCAxIDAgLjQ1LTEuNDMgMS43MiAxLjcyIDAgMCAxLS41LS40MyAyLjQ2IDIuNDYgMCAwIDEtLjQ3LTEuNFptLTQuNS41NGEuNzUuNzUgMCAwIDAtMS41IDBjMCAxLjA3LjEzIDEuOS40NSAyLjczLjMyLjguOCAxLjU1IDEuNDQgMi40NWEuNzUuNzUgMCAxIDAgMS4yMi0uODYgMTAuNCAxMC40IDAgMCAxLTEuMjYtMi4xNCA1LjY5IDUuNjkgMCAwIDEtLjM1LTIuMThabS0xLjEzIDQuNjRDOC4wNSAxMy40IDguNzggMTEuNTggOS41IDExYTEuNDMgMS40MyAwIDAgMSAyLjMuNzJjLjA2LjIuMTIuNDQuMTguNzdsLjA0LjE3Yy4wOC4zOC4xOC44NC4zMyAxLjMuMy45NS44NCAxLjk5IDEuOTMgMi43OWEuNzUuNzUgMCAxIDAgLjg5LTEuMjEgMy45MyAzLjkzIDAgMCAxLTEuNC0yLjA0Yy0uMTItLjM5LS4yLS43Ny0uMjgtMS4xNWwtLjA0LS4xNmMtLjA2LS4zLS4xMy0uNjQtLjIxLS45MWEyLjkzIDIuOTMgMCAwIDAtNC42OC0xLjQ1Yy0xLjYyIDEuMzEtMS45MiA0LjEyLjI1IDguMDNhLjc1Ljc1IDAgMCAwIDEuMzEtLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmluZ2VycHJpbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02LjcyIDMuOTVjMS41My0uNzQgNC44MS0xLjQ0IDguNS45N2EuNS41IDAgMSAwIC41NS0uODRjLTQuMDMtMi42My03LjctMS45LTkuNDktMS4wM2EuNS41IDAgMSAwIC40NC45Wm0tMS44MS42NGEuNS41IDAgMCAxLS4xNC43IDUuMzMgNS4zMyAwIDAgMC0xLjM0IDEuNDYuNS41IDAgMCAxLS44Ni0uNWMuMjctLjQ2Ljk1LTEuMzQgMS42NS0xLjhhLjUuNSAwIDAgMSAuNjkuMTRabTUuNTktLjA1YS41LjUgMCAxIDAgMCAxYzEuNjYgMCA1LjUxIDEuMzggNi41IDYuNTVhLjUuNSAwIDAgMCAxLS4xOGMtMS4xLTUuNzItNS40My03LjM3LTcuNS03LjM3Wk05LjM0IDEwLjhjLS44Ny43LTEuNTIgMi42OS41NiA2LjQ2YS41LjUgMCAwIDEtLjg3LjQ4Yy0yLjE1LTMuODgtMS43OC02LjUyLS4zMi03LjcxQTIuNjggMi42OCAwIDAgMSAxMyAxMS4zNWMuMDguMjYuMTQuNTguMi45bC4wNC4xNWMuMDguMzguMTcuNzguMyAxLjE4LjI2Ljc5LjY3IDEuNTcgMS40OCAyLjE2YS41LjUgMCAxIDEtLjYuOCA1LjE3IDUuMTcgMCAwIDEtMS44My0yLjY1Yy0uMTUtLjQ2LS4yNS0uOS0uMzMtMS4yOWwtLjAzLS4xNmE5IDkgMCAwIDAtLjE5LS44IDEuNjggMS42OCAwIDAgMC0yLjctLjg0Wm02LjE2IDEuMTdhLjUuNSAwIDEgMC0xIC4wNmMuMSAxLjggMS4yMiAyLjc0IDEuODUgMi45NWEuNS41IDAgMCAwIC4zLS45NmMtLjIyLS4wNy0xLjA3LS42NC0xLjE1LTIuMDVabS00LjUuNTNhLjUuNSAwIDEgMC0xIDBjMCAxLjA0LjEzIDEuODUuNDQgMi42NC4zLjc3Ljc3IDEuNSAxLjQgMi40YS41LjUgMCAxIDAgLjgyLS41OCAxMC42MyAxMC42MyAwIDAgMS0xLjMtMi4xOUE1Ljk0IDUuOTQgMCAwIDEgMTEgMTIuNVpNNy45NyA4Ljc5Yy0xLjcyIDEuMzMtMi43IDQuMTQtMS4wMiA3LjQ5YS41LjUgMCAwIDEtLjkuNDRDNC4xOCAxMyA1LjIyIDkuNjUgNy4zNSA4YTQuODIgNC44MiAwIDAgMSAzLjczLTEgNS40NyA1LjQ3IDAgMCAxIDMuNjUgMi41Ni41LjUgMCAxIDEtLjg0LjU1IDQuNDggNC40OCAwIDAgMC0yLjk3LTIuMTIgMy44MiAzLjgyIDAgMCAwLTIuOTUuOFptLjQ5LTNhLjUuNSAwIDAgMC0uMzUtLjk0Yy00LjY4IDEuNy01Ljc5IDYuMTktNS4zNSA5LjIyYS41LjUgMCAwIDAgLjk5LS4xNGMtLjQtMi43NC42Mi02LjY1IDQuNy04LjE0WlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaW5nZXJwcmludDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQuOTggMTEuOTdjLjYuNjEuOTMgMS4zNCAxLjE2IDIuMzNsLjEyLjUzLjEuNWMuMTIuNjguMi45OC4zIDEuMjIuMjkuNjQuOCAxLjMgMS41NCAxLjk3LjQuMzcuNDMgMSAuMDYgMS40YTEgMSAwIDAgMS0xLjQxLjA3IDguMTMgOC4xMyAwIDAgMS0yLjAxLTIuNjMgNS4zNiA1LjM2IDAgMCAxLS4zNy0xLjIxbC0uMTgtMS0uMDQtLjE2Yy0uMTctLjgtLjM4LTEuMy0uNy0xLjYzLS42LS42LTIuMDYtLjQ0LTIuNDEuMTItLjUyLjgyLS42NiAyLjI0LS4yMyAzLjY5LjM0IDEuMTUuNzkgMi4yOCAxLjM1IDMuNGEuOTkuOTkgMCAwIDEtLjQ0IDEuMzMgMSAxIDAgMCAxLTEuMzUtLjQ0QTIyLjI2IDIyLjI2IDAgMCAxIDkgMTcuNzJjLS41OC0xLjk2LS4zOS0zLjk3LjQ2LTUuMyAxLjA0LTEuNjMgNC4wMi0xLjk4IDUuNTMtLjQ1Wm0tMi41IDIuMTNhMSAxIDAgMCAxIDEuMDMuOTdjLjA1IDEuNS41MyAyLjk0IDEuNCA0LjE3bC4xOC4yNS4zLjRhMSAxIDAgMCAxLTEuNSAxLjNsLS4wOC0uMDktLjMtLjM5YTkuNjggOS42OCAwIDAgMS0yLTUuNTggMSAxIDAgMCAxIC45Ni0xLjAzWk04LjU3IDkuMmE2LjI3IDYuMjcgMCAwIDEgNy4wMS0uM2MuOTYuNjIgMS43IDEuMzUgMi4xOCAyLjE4YTEgMSAwIDAgMS0xLjcyIDEuMDEgNC42MiA0LjYyIDAgMCAwLTEuNTQtMS41IDQuMjggNC4yOCAwIDAgMC00Ljc1LjIyYy0xLjU2IDEuMTUtMi4yMiAzLjE0LTIuMDIgNS4yNS4xMSAxLjIuNDcgMi40MSAxLjA5IDMuNjRhMSAxIDAgMCAxLTEuNzkuOSAxMi4yNCAxMi4yNCAwIDAgMS0xLjMtNC4zNWMtLjI1LTIuNzUuNjQtNS40MyAyLjgzLTcuMDVabTEwLjU3IDUuMTZjLjAzLjU2LjE2IDEgLjQgMS4zNy4yMi4zMy40LjUuNDkuNTJhMSAxIDAgMSAxLS41OCAxLjkxIDMgMyAwIDAgMS0xLjU4LTEuMzMgNC42NiA0LjY2IDAgMCAxLS43My0yLjM3IDEgMSAwIDEgMSAyLS4xWm0tOC42OC04LjRhMSAxIDAgMCAxLS41IDEuMzNjLTEuOC44LTMuMTEgMS45NS0zLjk4IDMuNDRhOS41OCA5LjU4IDAgMCAwLTEuMTMgNS45MiAxIDEgMCAxIDEtMS45OC4yNmMtLjMtMi4yNS4wNS00Ljg4IDEuMzgtNy4xOGExMC4zNSAxMC4zNSAwIDAgMSA0Ljg4LTQuMjcgMSAxIDAgMCAxIDEuMzMuNVptMi40Ni0xLjAzYzEuOS4wNCAzLjc3LjkgNS42MiAyLjU1IDEuODcgMS42NiAzIDMuOTIgMy4zNyA2Ljc0YTEgMSAwIDEgMS0xLjk4LjI2IDguNiA4LjYgMCAwIDAtMi43Mi01LjVjLTEuNTItMS4zNS0yLjk2LTIuMDItNC4zMy0yLjA1YTEgMSAwIDEgMSAuMDQtMlptLTcuMzIuMjNhMSAxIDAgMCAxLS4wOCAxLjQxIDcuMjIgNy4yMiAwIDAgMC0xLjY0IDIgMSAxIDAgMSAxLTEuNzMtLjk5IDkuMTYgOS4xNiAwIDAgMSAyLjA0LTIuNSAxIDEgMCAwIDEgMS40MS4wOFptNi44OS0zLjEzYzIuMjQuMSA0LjMyLjYgNS44NiAxLjc4YTEgMSAwIDEgMS0xLjIyIDEuNTljLTEuMi0uOTMtMi44OS0xLjI5LTQuNzQtMS4zN2E3LjgzIDcuODMgMCAwIDAtNC41NS45NyAxIDEgMCAwIDEtMS4wNS0xLjcgOS43OSA5Ljc5IDAgMCAxIDUuNy0xLjI3WlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmluZ2VycHJpbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNC44NiAxMi4xNmMuNTYuNTcuODcgMS4yNyAxLjEgMi4yM2wuMS40NS4xOC45NWMuMS40NC4xNi43LjI2LjkuMy42OC44MyAxLjM3IDEuNiAyLjA3YS43NS43NSAwIDAgMS0xLjAyIDEuMSA3Ljk0IDcuOTQgMCAwIDEtMS45NS0yLjU1IDUuMjQgNS4yNCAwIDAgMS0uMzUtMS4xOGwtLjIxLTEuMS0uMDEtLjA2Yy0uMTgtLjg1LS40LTEuMzktLjc4LTEuNzYtLjctLjczLTIuMzUtLjU0LTIuOC4xNS0uNTUuOS0uNyAyLjQtLjI1IDMuOTIuMzQgMS4xNy44IDIuMzMgMS4zNyAzLjQ3YS43NS43NSAwIDAgMS0xLjM0LjY3IDIyLjI4IDIyLjI4IDAgMCAxLTEuNDctMy43MmMtLjU2LTEuOTEtLjM4LTMuODYuNDMtNS4xNC45NS0xLjUgMy43NC0xLjgzIDUuMTQtLjRabS0yLjM3IDIuMzFjLjQyLS4wMS43Ni4zMS43OC43M2E3LjkzIDcuOTMgMCAwIDAgMS40NCA0LjNsLjIuMjcuMy4zOWEuNzUuNzUgMCAwIDEtMS4xMiAxbC0uMDctLjA5LS4zLS4zOWE5LjQzIDkuNDMgMCAwIDEtMS45NS01LjQzLjc1Ljc1IDAgMCAxIC43Mi0uNzhaTTguOCA5LjRhNi4wMiA2LjAyIDAgMCAxIDYuNzMtLjI4Yy45My42IDEuNjMgMS4zIDIuMSAyLjA5YS43NS43NSAwIDAgMS0xLjMuNzYgNC44NyA0Ljg3IDAgMCAwLTEuNjItMS42IDQuNTMgNC41MyAwIDAgMC01LjAyLjI0Yy0xLjY0IDEuMi0yLjMzIDMuMjktMi4xMyA1LjQ4YTEwLjUgMTAuNSAwIDAgMCAxLjEyIDMuNzIuNzUuNzUgMCAwIDEtMS4zNS42NyAxMS45OSAxMS45OSAwIDAgMS0xLjI2LTQuMjVjLS4yNS0yLjY3LjYxLTUuMjYgMi43Mi02LjgzWm05LjE3IDQuM2MuNDItLjAyLjc3LjMuNzkuNzEuMDMuNi4xOCAxLjEuNDQgMS41LjIyLjMzLjQyLjUyLjU3LjZsLjA2LjAyYS43NS43NSAwIDAgMS0uNDQgMS40M2MtLjU0LS4xNi0xLjAxLS41OC0xLjQ0LTEuMjNhNC40MSA0LjQxIDAgMCAxLS42OS0yLjI0Ljc1Ljc1IDAgMCAxIC43MS0uNzlaTTEwLjUxIDYuMWMuMTcuMzggMCAuODItLjM4IDEtMS44NC44Mi0zLjE5IDItNC4wOCAzLjU0YTkuODIgOS44MiAwIDAgMC0xLjE2IDYuMDguNzUuNzUgMCAxIDEtMS41LjJjLS4yOC0yLjIuMDYtNC43OCAxLjM2LTcuMDNhMTAuMSAxMC4xIDAgMCAxIDQuNzctNC4xNmMuMzgtLjE3LjgyIDAgMSAuMzdabTIuMzQtLjc5YzEuODMuMDQgMy42Ni44OCA1LjQ2IDIuNWExMC4zNCAxMC4zNCAwIDAgMSAzLjMgNi41Ny43NS43NSAwIDEgMS0xLjQ5LjIgOC44NSA4Ljg1IDAgMCAwLTIuOC01LjY2Yy0xLjU2LTEuMzktMy4wNi0yLjA4LTQuNS0yLjFhLjc1Ljc1IDAgMSAxIC4wMy0xLjVabS02Ljg3LjAyYy4yOC4zLjI1Ljc4LS4wNiAxLjA2YTcuNDYgNy40NiAwIDAgMC0xLjY5IDIuMDcuNzUuNzUgMCAxIDEtMS4zLS43NSA4LjkxIDguOTEgMCAwIDEgMi0yLjQ0Ljc1Ljc1IDAgMCAxIDEuMDUuMDZabTYuNTktMi45N2MyLjIuMSA0LjAzLjcgNS41MyAxLjg2YS43NS43NSAwIDAgMS0uOTIgMS4yIDguMDIgOC4wMiAwIDAgMC00LjY4LTEuNTYgOC43MSA4LjcxIDAgMCAwLTQuNzIuOThjLS4zOC4yMS0uODEuMS0xLjAzLS4yNUEuNzQuNzQgMCAwIDEgNyAzLjU2YTkuODQgOS44NCAwIDAgMSA1LjU3LTEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpbmdlcnByaW50MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmluZ2VycHJpbnQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIwLjA2IDE1Ljk2Yy44MS44MiAxLjI3IDEuOCAxLjU5IDMuMTRsLjE2LjcxLjEzLjdjLjE2LjkuMjYgMS4zLjQxIDEuNjNhOC4zOCA4LjM4IDAgMCAwIDIuMDggMi42NmMuNTYuNS42IDEuMzUuMDkgMS45LS41LjU0LTEuMzcuNTgtMS45Mi4wOGExMC45OCAxMC45OCAwIDAgMS0yLjcyLTMuNTQgNy4yMSA3LjIxIDAgMCAxLS41LTEuNjVsLS4yNS0xLjMzLS4wNS0uMjNjLS4yMy0xLjA4LS41MS0xLjc0LS45Ni0yLjItLjgtLjgyLTIuNzgtLjU5LTMuMjYuMTYtLjcgMS4xLS45IDMuMDMtLjMxIDQuOThhMjcuMyAyNy4zIDAgMCAwIDEuODMgNC41OWMuMzQuNjYuMDcgMS40Ny0uNiAxLjgtLjY3LjMzLTEuNDkuMDYtMS44Mi0uNmEyOS45OCAyOS45OCAwIDAgMS0yLjAyLTUuMDRjLS43OC0yLjY1LS41Mi01LjM2LjYzLTcuMTYgMS40LTIuMiA1LjQ1LTIuNjcgNy41LS42Wm0tMy4zOSAyLjg3Yy43NS0uMDIgMS4zOC41NiAxLjQgMS4zLjA3IDIuMDMuNzMgMy45OCAxLjkgNS42M2wuMjYuMzUuNC41M2MuNDYuNTkuMzUgMS40NC0uMjQgMS45LS41NS40MS0xLjMyLjM1LTEuOC0uMTNsLS4xLS4xMy0uNDEtLjUyYTEzLjAyIDEzLjAyIDAgMCAxLTIuNzItNy41MyAxLjM1IDEuMzUgMCAwIDEgMS4zMS0xLjRabS01LjI5LTYuNjNhOC41MyA4LjUzIDAgMCAxIDkuNTItLjRjMS4zLjg0IDIuMyAxLjgyIDIuOTYgMi45NGExLjM2IDEuMzYgMCAwIDEtMi4zNCAxLjM3IDYuMjYgNi4yNiAwIDAgMC0yLjA5LTIuMDMgNS44MyA1LjgzIDAgMCAwLTYuNDMuM2MtMi4xMiAxLjU1LTMuMDIgNC4yNC0yLjc1IDcuMDkuMTUgMS42MS42NCAzLjI1IDEuNDggNC45LjMzLjY3LjA2IDEuNDgtLjYgMS44Mi0uNjguMzMtMS41LjA2LTEuODMtLjZhMTYuNDYgMTYuNDYgMCAwIDEtMS43NS01Ljg3Yy0uMzUtMy43MS44Ni03LjMzIDMuODMtOS41MlptMTQuMzQgNi45N2MuMDQuNzUuMjIgMS4zNi41NCAxLjg0LjMuNDYuNTQuNjcuNjcuN2ExLjM1IDEuMzUgMCAxIDEtLjc5IDIuNkE0LjA3IDQuMDcgMCAwIDEgMjQgMjIuNWMtLjYtLjktLjkzLTEuOTgtLjk5LTMuMmExLjM1IDEuMzUgMCAwIDEgMi43LS4xNFpNMTMuOTUgNy44M2MuMy42OCAwIDEuNDgtLjY4IDEuNzlhMTEuMzMgMTEuMzMgMCAwIDAtNS4zOSA0LjY1IDEyLjg4IDEyLjg4IDAgMCAwLTEuNTMgOCAxLjM1IDEuMzUgMCAwIDEtMi42OS4zNSAxNS41IDE1LjUgMCAwIDEgMS44OC05LjcgMTQuMDIgMTQuMDIgMCAwIDEgNi42MS01Ljc2Yy42OS0uMyAxLjQ5IDAgMS44LjY3Wm0zLjM0LTEuMzljMi41Ny4wNSA1LjExIDEuMjIgNy42MiAzLjQ0IDIuNTMgMi4yNSA0LjA2IDUuMyA0LjU4IDkuMWExLjM1IDEuMzUgMCAwIDEtMi42OS4zNmMtLjQzLTMuMTgtMS42Ni01LjY0LTMuNy03LjQ0LTIuMDUtMS44Mi00LTIuNzItNS44Ny0yLjc2YTEuMzUgMS4zNSAwIDEgMSAuMDYtMi43Wm0tOS45My4zMWMuNS41Ni40NSAxLjQxLS4xIDEuOWE5Ljc0IDkuNzQgMCAwIDAtMi4yMiAyLjdjLS4zOC42Ni0xLjIxLjg4LTEuODYuNTFhMS4zNSAxLjM1IDAgMCAxLS41LTEuODQgMTIuMzYgMTIuMzYgMCAwIDEgMi43Ny0zLjM4Yy41Ni0uNSAxLjQyLS40NCAxLjkxLjExWm05LjM0LTQuMjNjMy4wNC4xNCA1Ljg2LjggNy45NiAyLjQxLjU5LjQ2LjcgMS4zLjI0IDEuOS0uNDYuNTktMS4zMS43LTEuOS4yNC0xLjYzLTEuMjUtMy45Mi0xLjc0LTYuNDItMS44NS0yLjUyLS4xMi00LjU3LjMzLTYuMTggMS4zLS42My40LTEuNDcuMi0xLjg2LS40NC0uNC0uNjMtLjItMS40Ni40NC0xLjg1IDIuMS0xLjI5IDQuNy0xLjg1IDcuNzItMS43WlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmluZ2VycHJpbnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xOS41IDE2LjA5Yy43NS43NiAxLjE3IDEuNyAxLjQ4IDIuOTdsLjEzLjYxLjI0IDEuMjZjLjEyLjYuMjEuOTMuMzQgMS4yMi40LjkgMS4xIDEuODIgMi4xMiAyLjc1YTEgMSAwIDAgMSAuMDYgMS40MiAxIDEgMCAwIDEtMS40LjA2IDEwLjYgMTAuNiAwIDAgMS0yLjYtMy40MmMtLjItLjQ0LS4zMi0uODctLjQ3LTEuNTdsLS4yOC0xLjQ3LS4wMS0uMDhjLS4yNC0xLjEzLS41NC0xLjg1LTEuMDMtMi4zNS0uOTUtLjk4LTMuMTQtLjcyLTMuNzIuMjEtLjc1IDEuMTktLjk0IDMuMi0uMzUgNS4yMi40NiAxLjU3IDEuMDcgMy4xMSAxLjgzIDQuNjNhMSAxIDAgMSAxLTEuNzguOSAyOS43NSAyOS43NSAwIDAgMS0xLjk2LTQuOTZjLS43NS0yLjU1LS41LTUuMTYuNTctNi44NiAxLjI3LTIuMDEgNC45OC0yLjQ1IDYuODQtLjU0Wm0tMy4xNCAzLjA5YTEgMSAwIDAgMSAxLjAzLjk3IDEwLjYgMTAuNiAwIDAgMCAxLjkyIDUuNzRsLjI2LjM2LjQuNTJhMSAxIDAgMCAxLTEuNDggMS4zM2wtLjEtLjExLS40LS41MmExMi42IDEyLjYgMCAwIDEtMi42LTcuMjYgMSAxIDAgMCAxIC45Ny0xLjAzWm0tNC45NC02Ljc4YTggOCAwIDAgMSA4Ljk2LS4zOCA4LjQ1IDguNDUgMCAwIDEgMi44IDIuOCAxIDEgMCAxIDEtMS43MiAxLjAxIDYuNDkgNi40OSAwIDAgMC0yLjE2LTIuMTMgNi4wMiA2LjAyIDAgMCAwLTYuNy4zYy0yLjE3IDEuNjItMy4xIDQuNC0yLjgyIDcuMzIuMTYgMS42NC42NSAzLjMgMS40OCA0Ljk3YTEgMSAwIDEgMS0xLjc5LjljLS45My0xLjktMS41LTMuOC0xLjY3LTUuNjgtLjM0LTMuNTYuOC03LjAyIDMuNjItOS4xMVptMTIuMjIgNS43NGExIDEgMCAwIDEgMS4wNS45NGMuMDQuOC4yNCAxLjQ3LjU5IDIgLjI5LjQ0LjU1LjcuNzUuOGwuMDguMDNhMSAxIDAgMCAxLS41OCAxLjkyYy0uNzMtLjIzLTEuMzUtLjc5LTEuOTItMS42NWE1LjkgNS45IDAgMCAxLS45Mi0zIDEgMSAwIDAgMSAuOTUtMS4wNFpNMTMuNzIgOGExIDEgMCAwIDEtLjUgMS4zMiAxMS40NyAxMS40NyAwIDAgMC01LjQ0IDQuNzQgMTMuMTQgMTMuMTQgMCAwIDAtMS41NSA4LjExIDEgMSAwIDEgMS0xLjk4LjI2IDE1LjEgMTUuMSAwIDAgMSAxLjgtOS4zN0ExMy40NiAxMy40NiAwIDAgMSAxMi40IDcuNWExIDEgMCAwIDEgMS4zMi41Wm0zLjEyLTEuMDVjMi40NC4wNSA0Ljg2IDEuMTcgNy4yNyAzLjMyIDIuNDIgMi4xNiAzLjg4IDUuMSA0LjM4IDguNzhhMSAxIDAgMSAxLTEuOTguMjdjLS40My0zLjIyLTEuNjgtNS43Mi0zLjczLTcuNTZDMjAuNyA5LjkyIDE4LjcgOSAxNi44IDguOTZhMSAxIDAgMCAxIC4wNC0yWm0tOS4xNS4wMmExIDEgMCAwIDEtLjA4IDEuNDEgOS45NSA5Ljk1IDAgMCAwLTIuMjUgMi43NiAxIDEgMCAxIDEtMS43My0xQTExLjkgMTEuOSAwIDAgMSA2LjI4IDYuOWExIDEgMCAwIDEgMS40MS4wOFptOC43Ny0zLjk2YzIuOTIuMTQgNS4zNi45NCA3LjM2IDIuNDhBMSAxIDAgMCAxIDI0IDYuOWExIDEgMCAwIDEtMS40LjE5IDEwLjY2IDEwLjY2IDAgMCAwLTYuMjMtMi4wN2MtMi41NC0uMTItNC42MS4zOC02LjI4IDEuMy0uNTEuMy0xLjA4LjE1LTEuMzctLjMyYS45OS45OSAwIDAgMSAuMzMtMS4zOGMyLjA0LTEuMiA0LjUtMS43NCA3LjQtMS42WlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaW5nZXJwcmludDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTUuMjUgOS45YzIuMzItMS4zNCA1LjYtMi4wMiA5LjAyLTEuODggMy40My4xNCA2LjgzIDEuMDggOS40IDIuOGExLjUgMS41IDAgMSAwIDEuNjYtMi41Yy0zLjEyLTIuMDktNy4xLTMuMTQtMTAuOTQtMy4zLTMuODMtLjE1LTcuNy41OS0xMC42NCAyLjI4YTEuNSAxLjUgMCAwIDAgMS41IDIuNlptMTAuNDYuOWExLjUgMS41IDAgMCAwLS40MiAyLjk3YzUuNy44IDkuMDcgNC4wMyAxMS4xIDcuMzRhMjEuOTkgMjEuOTkgMCAwIDEgMi44NCA3LjYyIDEuNSAxLjUgMCAwIDAgMi45Ny0uNDZjLS4xNy0xLjA1LS45LTQuOS0zLjI1LTguNzNhMTguMDEgMTguMDEgMCAwIDAtMTMuMjQtOC43NVptLTYuODggMTAuNWMtMy42NiAyLjk1LTUuODIgOS4zMi0xLjg1IDE3LjU1YTEuNSAxLjUgMCAwIDEtMi43IDEuM2MtNC40NS05LjIxLTIuMy0xNy4yIDIuNjctMjEuMTlhMTEuMyAxMS4zIDAgMCAxIDguNy0yLjQ3YzMuMTcuNDUgNi4yMyAyLjMgOC42NCA1LjYzYTEuNSAxLjUgMCAwIDEtMi40MyAxLjc2Yy0yLTIuNzctNC4zOC00LjEtNi42My00LjQyYTguMyA4LjMgMCAwIDAtNi40IDEuODRabTQuNjUgMTkuNTRjLTIuNDgtNS4wOC0zLjItOS4zMy0yLjcyLTEyLjFhNC42NyA0LjY3IDAgMCAxIDEuMzItMi44Yy41Ny0uNTEgMS4zOC0uOCAyLjUzLS43IDEuNTUuMTUgMi4yNC42NSAyLjY2IDEuMi41LjY3Ljc4IDEuNjMgMS4xIDMuMDhsLjEyLjU0Yy41OSAyLjcxIDEuMzggNi4zNyA1LjEgOS4yYTEuNSAxLjUgMCAwIDAgMS44Mi0yLjRjLTIuODItMi4xNC0zLjQtNC43OS00LTcuNTRsLS4xMS0uNDZjLS4zLTEuMzgtLjctMi45Ni0xLjY0LTQuMjItMS4wMy0xLjM3LTIuNTctMi4xNy00Ljc3LTIuMzhhNi4xNSA2LjE1IDAgMCAwLTQuOCAxLjQzIDcuNjMgNy42MyAwIDAgMC0yLjMgNC41NWMtLjYgMy42My4zNyA4LjU0IDIuOTkgMTMuOTFhMS41IDEuNSAwIDAgMCAyLjctMS4zMVpNMTEuNiAxMC45NmExLjUgMS41IDAgMCAxLS4xIDIuMTIgMTcuOTggMTcuOTggMCAwIDAtMy4zMiA0LjE2IDEuNSAxLjUgMCAwIDEtMi42LTEuNDhjLjQyLS43NiAxLjc0LTIuOTIgMy45LTQuOWExLjUgMS41IDAgMCAxIDIuMTIuMVptMjQuODYgMTcuNTFhMS41IDEuNSAwIDEgMC0yLjk0LjU2Yy41NiAyLjk3IDEuOTMgNS40NSA0LjQzIDdhMS41IDEuNSAwIDAgMCAxLjU4LTIuNTZjLTEuNi0uOTktMi42Mi0yLjYyLTMuMDctNVptLTEyLjMzLjAzYTEuNSAxLjUgMCAwIDEgMS42MiAxLjM3Yy40NiA1LjQgMy4xNSA4LjggMy44OCA5LjY0YTEuNSAxLjUgMCAxIDEtMi4yNSAxLjk4IDIwLjExIDIwLjExIDAgMCAxLTQuNjItMTEuMzcgMS41IDEuNSAwIDAgMSAxLjM3LTEuNjJaTTIwLjEgMTQuMjNhMS41IDEuNSAwIDAgMC0xLjE5LTIuNzVjLTYuODYgMi45OC0xMCA4LjA1LTExLjM3IDEyLjYyYTI0LjI1IDI0LjI1IDAgMCAwLS44IDkuNiAxLjUgMS41IDAgMCAwIDIuOTctLjRjLS4xMi0uODctLjQ2LTQuNDEuNy04LjM1IDEuMTYtMy44OCAzLjc5LTguMTYgOS43LTEwLjcyWlwiXSk7XG5leHBvcnQgY29uc3QgRmluZ2VycHJpbnQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmluZ2VycHJpbnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNC45IDkuODJjMi4zOS0xLjQ2IDUuOC0yLjIzIDkuMzYtMi4xMSAzLjU1LjExIDcuMSAxLjEyIDkuNzYgMy4wNWExLjI1IDEuMjUgMCAxIDAgMS40Ni0yLjAyYy0zLjE2LTIuMy03LjIyLTMuNC0xMS4xNC0zLjUzLTMuOTEtLjEzLTcuODQuNy0xMC43NCAyLjQ3YTEuMjUgMS4yNSAwIDEgMCAxLjMgMi4xNFpNMjUuNCAxMWExLjI1IDEuMjUgMCAxIDAtLjMgMi40OGM3LjgzLjkzIDEyLjkzIDYuOTcgMTQuNDIgMTUuNDhhMS4yNSAxLjI1IDAgMCAwIDIuNDYtLjQ0Yy0xLjYyLTkuMjUtNy4zNS0xNi40My0xNi41OC0xNy41MlptLTYuNyAxMC4wN2MtMy44MiAzLjA2LTYgOS42OC0xLjgzIDE4LjEyYTEuMjUgMS4yNSAwIDAgMS0yLjI0IDEuMWMtNC41OC05LjI2LTIuNDItMTcuMjMgMi41LTIxLjE3YTExLjAzIDExLjAzIDAgMCAxIDguNjMtMi4zN2MzLjEyLjQ5IDYuMTUgMi4zNyA4LjUyIDUuNzhhMS4yNSAxLjI1IDAgMSAxLTIuMDYgMS40MmMtMi4wMy0yLjkzLTQuNDktNC4zNi02Ljg0LTQuNzNhOC41MyA4LjUzIDAgMCAwLTYuNjggMS44NVptNC42NyAyMC4xMmMtMi41Ni01LjE4LTMuMzQtOS41NS0yLjg3LTEyLjQ0YTQuOTggNC45OCAwIDAgMSAxLjQtMyAzLjQgMy40IDAgMCAxIDIuNzMtLjc3YzEuNjMuMTYgMi4zOC43IDIuODUgMS4zMy41NS43NC44MyAxLjc3IDEuMTYgMy4yNGwuMS40NWMuNiAyLjc4IDEuNCA2LjQ2IDUuMjggOS4yNWExLjI1IDEuMjUgMCAxIDAgMS40Ni0yLjAyYy0zLjA5LTIuMjMtMy43LTUuMDUtNC4zMi03Ljg2bC0uMDgtLjM2Yy0uMzEtMS40LS42OC0yLjk2LTEuNTgtNC4xOC0uOTgtMS4zMy0yLjQ2LTIuMTMtNC42My0yLjMzYTUuOSA1LjkgMCAwIDAtNC42NCAxLjQgNy40NCA3LjQ0IDAgMCAwLTIuMiA0LjQ2Yy0uNTggMy42LjQyIDguNTIgMy4xIDEzLjkzYTEuMjUgMS4yNSAwIDAgMCAyLjI0LTEuMVpNMTEuNyAxMC45MmMuNDUuNTIuNCAxLjMxLS4xMSAxLjc3YTE3LjQ1IDE3LjQ1IDAgMCAwLTMuNzUgNC42OCAxLjI1IDEuMjUgMCAxIDEtMi4xNi0xLjI0IDE5LjkzIDE5LjkzIDAgMCAxIDQuMjUtNS4zMmMuNTItLjQ1IDEuMzEtLjQgMS43Ny4xMVptMjQuNTUgMTcuNjRhMS4yNSAxLjI1IDAgMCAwLTIuNDguMzggOS45MiA5LjkyIDAgMCAwIDQuMjYgNi44MiAxLjI1IDEuMjUgMCAxIDAgMS40Ni0yLjAyIDcuNDMgNy40MyAwIDAgMS0zLjI0LTUuMThabS0xMi4wOC0uMDZjLjY5LS4wNSAxLjI5LjQ3IDEuMzQgMS4xNi4zIDQuMDcgMS44IDcuNTIgNC4yIDEwLjI3YTEuMjUgMS4yNSAwIDEgMS0xLjkgMS42NEExOS43NSAxOS43NSAwIDAgMSAyMyAyOS44NGExLjI1IDEuMjUgMCAwIDEgMS4xNi0xLjM0Wm0tMy45My0xNC42YTEuMjUgMS4yNSAwIDAgMC0uOTYtMi4zQzEwLjI5IDE1LjM3IDUuODIgMjMuOCA3IDMzLjlhMS4yNSAxLjI1IDAgMSAwIDIuNDgtLjNjLTEuMDctOS4xIDIuOS0xNi40IDEwLjc0LTE5LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGaXJlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlyZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJtNC4xMSA2LjE5LS4wMi4wM2EzLjA4IDMuMDggMCAwIDAtLjIyLjMzIDUuMzMgNS4zMyAwIDAgMC0uNzQgNC4wNmMuMjYgMS4xOS43NyAyLjMgMS42NSAzLjFBNS4zIDUuMyAwIDAgMCA4LjUgMTVjMS42MiAwIDIuODktLjU0IDMuNzUtMS40N0E1LjEyIDUuMTIgMCAwIDAgMTMuNSAxMGMwLS44Ni0uMjgtMS42OS0uNjctMi40Ni0uMzYtLjc0LS44My0xLjQ3LTEuMjgtMi4xNWwtLjA3LS4xYy0uNDctLjczLS45LTEuNC0xLjE5LTIuMDNBMi43NyAyLjc3IDAgMCAxIDEwIDEuNi41LjUgMCAwIDAgOS41IDFjLS40MiAwLTEuMTIuMTUtMS43OS41YTMuMyAzLjMgMCAwIDAtMS42OCAxLjg0Yy0uNCAxLjE3LjA2IDIuNS40NCAzLjMyLjE3LjM4LjAyLjc5LS4yNi45M2EuNTQuNTQgMCAwIDEtLjczLS4yNGwtLjUzLTEuMDdhLjUuNSAwIDAgMC0uODQtLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBGaXJlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpcmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjE3IDIuMzhjLjI4LS4xNC41NS0uMjQuOC0uMy4wMi41NC4xOCAxLjA4LjQxIDEuNTlhMTYuNjMgMTYuNjMgMCAwIDAgMS4zMiAyLjI1Yy40Ni43LjkgMS4zOCAxLjI0IDIuMDYuMzUuNy41NiAxLjM4LjU2IDIuMDIgMCAxLjE1LS4zNCAyLjE1LS45OSAyLjg1YTMuOTIgMy45MiAwIDAgMS0zIDEuMTVjLTEuNCAwLTIuMzctLjQtMy4wNS0xLjAzYTQuODQgNC44NCAwIDAgMS0xLTUuNDNsLjEzLjI1Yy4zOC43NiAxLjMgMS4wNyAyLjA3LjcuODQtLjQzIDEuMDgtMS40Ny43Mi0yLjI0LS4zNy0uODEtLjY2LTEuODEtLjQtMi42LjItLjU4LjY1LTEgMS4xOS0xLjI3Wk00LjEgNi4xOHYuMDFsLS4wMi4wM2EzLjA4IDMuMDggMCAwIDAtLjIyLjMzIDUuMzMgNS4zMyAwIDAgMC0uNzQgNC4wNmMuMjYgMS4xOS43NyAyLjMgMS42NSAzLjFBNS4zIDUuMyAwIDAgMCA4LjUgMTVjMS42MiAwIDIuODktLjU0IDMuNzUtMS40N0E1LjEyIDUuMTIgMCAwIDAgMTMuNSAxMGMwLS44Ni0uMjgtMS42OS0uNjctMi40NmEyMS40MiAyMS40MiAwIDAgMC0xLjM1LTIuMjVjLS40Ny0uNzMtLjktMS40LTEuMTktMi4wM0EyLjc3IDIuNzcgMCAwIDEgMTAgMS42LjUuNSAwIDAgMCA5LjUgMWMtLjQyIDAtMS4xMi4xNS0xLjc5LjVhMy4zIDMuMyAwIDAgMC0xLjY4IDEuODRjLS40IDEuMTcuMDYgMi41LjQ0IDMuMzIuMTcuMzguMDIuNzktLjI2LjkzYS41NC41NCAwIDAgMS0uNzMtLjI0bC0uNTMtMS4wN2EuNS41IDAgMCAwLS44NC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDExLjc1YzAtLjU0LjA2LTEuMDcuMTktMS41OWE1LjgxIDUuODEgMCAwIDEgLjg2LTEuOTMuNjUuNjUgMCAwIDEgLjE4LS4xNy41LjUgMCAwIDEgLjQ4IDBjLjA4LjA0LjE0LjEuMTguMTdsMS4wNCAxLjdjLjA1LjA4LjEuMTQuMTkuMTguMDguMDQuMTYuMDYuMjYuMDcuMTggMCAuMzItLjA3LjQyLS4yYS43Ni43NiAwIDAgMCAuMDYtLjgyYy0uMjEtLjQ2LS4zOS0uOTEtLjUyLTEuMzZhNC45MiA0LjkyIDAgMCAxIC4xMi0zLjE3Yy4yMi0uNS41Mi0uOTIuOTItMS4yNy4zOS0uMzUuODQtLjY0IDEuMzYtLjg2QTguMDkgOC4wOSAwIDAgMSAxMS41IDJjLjEyIDAgLjIzLjA0LjMyLjEyLjEyLjEuMTguMjMuMTguMzggMCAuNzguMTMgMS41My40IDIuMjMuMjYuNzEuNjMgMS4zOCAxLjEgMmwuODcgMS4xM2MuMjkuMzguNTYuNzguOCAxLjE5LjI1LjQuNDQuODQuNiAxLjI4LjE1LjQ0LjIyLjkxLjIzIDEuNDJhNi41IDYuNSAwIDAgMS0uOCAzLjEgNi41NyA2LjU3IDAgMCAxLTIuMTIgMi4yNyA1Ljc0IDUuNzQgMCAwIDEtNC43MS42NSA1LjYgNS42IDAgMCAxLTEuNDQtLjY0IDYuNSA2LjUgMCAwIDEtMi4xMy0yLjI3IDYuMiA2LjIgMCAwIDEtLjgtMy4xWlwiXSk7XG5leHBvcnQgY29uc3QgRmlyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCAxMS43NWMwLS41NC4wNi0xLjA3LjE5LTEuNTlhNS44MSA1LjgxIDAgMCAxIC44Ni0xLjkzLjY1LjY1IDAgMCAxIC4xOC0uMTcuNS41IDAgMCAxIC40OCAwYy4wOC4wNC4xNC4xLjE4LjE3bDEuMDQgMS43Yy4wNS4wOC4xLjE0LjE5LjE4LjA4LjA0LjE2LjA2LjI2LjA3LjE4IDAgLjMyLS4wNy40Mi0uMmEuNzYuNzYgMCAwIDAgLjA2LS44MmMtLjIxLS40Ni0uMzktLjkxLS41Mi0xLjM2YTQuOTIgNC45MiAwIDAgMSAuMTItMy4xN2MuMjItLjUuNTItLjkyLjkyLTEuMjcuMzktLjM1Ljg0LS42NCAxLjM2LS44NkE4LjA5IDguMDkgMCAwIDEgMTEuNSAyYy4xMiAwIC4yMy4wNC4zMi4xMi4xMi4xLjE4LjIzLjE4LjM4IDAgLjc4LjEzIDEuNTMuNCAyLjIzLjI2LjcxLjYzIDEuMzggMS4xIDJsLjg3IDEuMTNjLjI5LjM4LjU2Ljc4LjggMS4xOS4yNS40LjQ0Ljg0LjYgMS4yOC4xNS40NC4yMi45MS4yMyAxLjQyYTYuNSA2LjUgMCAwIDEtLjggMy4xIDYuNTcgNi41NyAwIDAgMS0yLjEyIDIuMjcgNS43NCA1Ljc0IDAgMCAxLTQuNzEuNjUgNS42IDUuNiAwIDAgMS0xLjQ0LS42NCA2LjUgNi41IDAgMCAxLTIuMTMtMi4yNyA2LjIgNi4yIDAgMCAxLS44LTMuMVptMTEtLjA1YzAtLjQtLjA4LS44LS4yMy0xLjItLjE1LS4zOC0uMzQtLjc3LS41Ny0xLjE0YTExLjQgMTEuNCAwIDAgMC0uNzUtMS4wNmMtLjI3LS4zNC0uNTItLjY2LS43NS0uOThhOC43NiA4Ljc2IDAgMCAxLTEuMTQtMS45OCA3Ljc5IDcuNzkgMCAwIDEtLjU0LTIuMjNjLS40Mi4xLS44LjI1LTEuMTUuNDMtLjM1LjE4LS42Ni40LS45Mi42N3MtLjQ2LjU4LS42Ljk0Yy0uMTQuMzYtLjIxLjc3LS4yMiAxLjIyIDAgLjQyLjA2LjgyLjE3IDEuMi4xLjM4LjI1Ljc2LjQ0IDEuMTMuMDcuMTMuMTIuMjcuMTUuNGwuMDYuNDVjMCAuMjItLjA0LjQyLS4xMS42MmExLjU0IDEuNTQgMCAwIDEtMi43Ni4yOCAxNy4yIDE3LjIgMCAwIDEtLjYtLjk2IDUuNDUgNS40NSAwIDAgMCAxLjk1IDYuNzcgNC44NCA0Ljg0IDAgMCAwIDcuMi0yLjU1Yy4yMy0uNjQuMzYtMS4zMS4zNy0yLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgRmlyZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpcmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMTYgOS4zMmgtLjAxbC0uMDEuMDJhMS45NCAxLjk0IDAgMCAwLS4xMy4xYy0uMDcuMDctLjE4LjE2LS4zLjMtLjI0LjI0LS41NS42Mi0uODMgMS4xMmE3LjA2IDcuMDYgMCAwIDAtLjggNC41NWMuMjcgMiAxLjEgMy42NyAyLjUzIDQuODNDOC4wMiAyMS40IDkuOTQgMjIgMTIuMjUgMjJjMi4zOSAwIDQuMy0uOSA1LjU1LTIuNDNhOC4zNSA4LjM1IDAgMCAwIDEuNjgtNS44NmMtLjEzLTIuMTgtMS4zMS0zLjgzLTIuMzYtNS4yOWwtLjMtLjQyQzE1LjY4IDYuNCAxNC43OCA0LjkgMTUgMi44M2EuNzUuNzUgMCAwIDAtLjc1LS44M2MtLjM4IDAtLjgyLjEyLTEuMjQuM2E2LjgyIDYuODIgMCAwIDAtMy43MiAzLjk2Yy0uNDkgMS40LS4yNCAyLjczLjEyIDMuNy4yNC42NC0uMDIgMS4yNy0uNCAxLjQ2YS43LjcgMCAwIDEtLjkzLS4zMWwtLjgxLTEuNTRhLjc1Ljc1IDAgMCAwLTEuMTEtLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRmlyZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIuNTQgNC4zYy4zMi0uMjUuNjQtLjQ0LjkzLS41Ny4wOSAyLjEzIDEuMTMgMy43MyAyLjEzIDUuMTRsLjI3LjM4YzEuMDggMS41MiAyLjAxIDIuODIgMi4xMSA0LjU0YTYuODYgNi44NiAwIDAgMS0xLjMzIDQuODMgNS40MyA1LjQzIDAgMCAxLTQuNCAxLjg4Yy0yLjA2IDAtMy42MS0uNTMtNC43LTEuNDJhNS44MyA1LjgzIDAgMCAxLTEuOTgtMy44NyA1LjU2IDUuNTYgMCAwIDEgLjg2LTRsLjMyLjZhMi4yIDIuMiAwIDAgMCAyLjkuOTZjMS4zLS42MiAxLjU4LTIuMjEgMS4xNy0zLjMzYTMuOTQgMy45NCAwIDAgMS0uMTEtMi43IDUuMzIgNS4zMiAwIDAgMSAxLjgzLTIuNDVaTTYuMTYgOS4zMWgtLjAxbC0uMDEuMDJhMS45NCAxLjk0IDAgMCAwLS4xMy4xYy0uMDcuMDctLjE4LjE2LS4zLjMtLjI0LjI0LS41NS42Mi0uODMgMS4xMmE3LjA2IDcuMDYgMCAwIDAtLjggNC41NWMuMjcgMiAxLjEgMy42NyAyLjUzIDQuODNDOC4wMiAyMS40IDkuOTQgMjIgMTIuMjUgMjJjMi4zOSAwIDQuMy0uOSA1LjU1LTIuNDNhOC4zNSA4LjM1IDAgMCAwIDEuNjgtNS44NmMtLjEzLTIuMTgtMS4zMS0zLjgzLTIuMzYtNS4yOWwtLjMtLjQyQzE1LjY4IDYuNCAxNC43OCA0LjkgMTUgMi44M2EuNzUuNzUgMCAwIDAtLjc1LS44M2MtLjM4IDAtLjgyLjEyLTEuMjQuM2E2LjgyIDYuODIgMCAwIDAtMy43MiAzLjk2Yy0uNDkgMS40LS4yNCAyLjczLjEyIDMuNy4yNC42NC0uMDIgMS4yNy0uNCAxLjQ2YS43LjcgMCAwIDEtLjkzLS4zMWwtLjgxLTEuNTRhLjc1Ljc1IDAgMCAwLTEuMTEtLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgRmlyZXBsYWNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmlyZXBsYWNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyYTcgNyAwIDAgMC03IDd2NWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWOWE3IDcgMCAwIDAtNy03Wk00IDlhNiA2IDAgMSAxIDEyIDB2NWgtMy41Yy42Mi0uNjIgMS0xLjQ4IDEtMi41IDAtMS4xMy0uNjMtMS45Ny0xLjE3LTIuN2wtLjEzLS4xNmMtLjYtLjgtMS4xLTEuNTctMS4xLTIuNzFhLjUuNSAwIDAgMC0uNzYtLjQzYy0xLjQuODUtMS40NSAyLjE3LTEuMzkgM2wtLjQyLS4zN2EuNS41IDAgMCAwLS42NiAwaC0uMDFsLS4wMi4wMmEyLjIzIDIuMjMgMCAwIDAtLjIuMjJBNC44NSA0Ljg1IDAgMCAwIDYuNSAxMS41Yy0uMDEgMS4wMi4zNyAxLjg4IDEgMi41SDRWOVptLTEuNSA3YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlcGxhY2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDlhNyA3IDAgMCAxIDE0IDB2NWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY5Wm03LTZhNiA2IDAgMCAwLTYgNnY1aDMuNWMtLjYyLS42Mi0xLTEuNDgtMS0yLjVhNC44NSA0Ljg1IDAgMCAxIDEuMzQtMy4zNWwuMDItLjAxdi0uMDFhLjUuNSAwIDAgMSAuNjUtLjAyYy4wMi0uMjguMDgtLjU4LjItLjkuMjUtLjYzLjc1LTEuMjQgMS42NS0xLjcyYS41LjUgMCAwIDEgLjc0LjQ0YzAgMS4xNC41IDEuOSAxLjEgMi43bC4xMy4xOGMuNTQuNzIgMS4xNyAxLjU2IDEuMTcgMi42OSAwIDEuMDItLjM4IDEuODgtMSAyLjVIMTZWOWE2IDYgMCAwIDAtNi02Wk04LjIyIDkuMjVhMy44NSAzLjg1IDAgMCAwLS43MiAyLjI1YzAgMS40OSAxLjEgMi41IDIuNSAyLjVzMi41LTEuMDEgMi41LTIuNWMwLS43OS0uNDMtMS4zNy0xLjAyLTIuMTZsLS4wOC0uMWMtLjQ4LS42NS0xLTEuNC0xLjIxLTIuNDJhMi4wMyAyLjAzIDAgMCAwLS42NiAxLjg4YzAgLjA5LjAyLjE2LjAzLjIzdi4wNWwuMDMuMTVjMCAuMDUuMDIuMTUgMCAuMjUgMCAuMDUtLjAyLjE3LS4xMi4yOC0uMTIuMTUtLjMuMi0uNDQuMmEuNTkuNTkgMCAwIDEtLjI1LS4wOSAyLjcyIDIuNzIgMCAwIDEtLjMyLS4yN2wtLjI0LS4yNVpNMi41IDE2YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpcmVwbGFjZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMmE5IDkgMCAwIDAtOSA5djYuMjVjMCAuNDEuMzQuNzUuNzUuNzVoMTYuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NVYxMWE5IDkgMCAwIDAtOS05Wm0tNy41IDlhNy41IDcuNSAwIDEgMSAxNSAwdjUuNWgtNC4zYTQuMTYgNC4xNiAwIDAgMCAxLjMtMy4wMWMwLTEuNzMtLjg3LTIuNzgtMS42LTMuNjZsLS4wNy0uMDljLS43NC0uOS0xLjMzLTEuNjUtMS4zMy0yLjk5YS43NS43NSAwIDAgMC0uOTUtLjcyIDIuNSAyLjUgMCAwIDAtMS43NCAxLjU1Yy0uMjMuNTctLjI5IDEuMi0uMzMgMS42NnYuMTNsLS4wNy41YTMuMiAzLjIgMCAwIDEtLjUzLS4yNy43NS43NSAwIDAgMC0uODkuMWwtLjAxLjAxLS4wMi4wMmEyLjUzIDIuNTMgMCAwIDAtLjIzLjI1IDUuNTcgNS41NyAwIDAgMC0xLjIzIDMuNWMwIDEuMTkuNDkgMi4yNSAxLjMgMy4wMkg0LjVWMTFabS0xLjc1IDguNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTguNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlcGxhY2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDExYTkgOSAwIDAgMSAxOCAwdjYuMjVjMCAuNDEtLjM0Ljc1LS43NS43NUgzLjc1YS43NS43NSAwIDAgMS0uNzUtLjc1VjExWm05LTcuNUE3LjUgNy41IDAgMCAwIDQuNSAxMXY1LjVoNC4zYTQuMTQgNC4xNCAwIDAgMS0xLjMtMy4wMSA1LjU3IDUuNTcgMCAwIDEgMS40Ni0zLjc2bC4wMi0uMDJMOSA5LjdhLjc1Ljc1IDAgMCAxIDEuMDYuMDN2LS4wNWwuMDItLjE2Yy4wNS0uNTIuMTMtMS4yNy40Ny0xLjk0YTIuOSAyLjkgMCAwIDEgMi4wNC0xLjU2Ljc1Ljc1IDAgMCAxIC45Mi43M2MwIDEuMzQuNTkgMi4xIDEuMzMgM2wuMDcuMDhjLjczLjg4IDEuNiAxLjkzIDEuNiAzLjY2IDAgMS4xNy0uNSAyLjI0LTEuMyAzLjAxaDQuM1YxMUE3LjUgNy41IDAgMCAwIDEyIDMuNVptLTIuNDcgNy45NkE0LjA3IDQuMDcgMCAwIDAgOSAxMy40OWMwIDEuNDcgMS4yMyAyLjc2IDMgMi43NnMzLTEuMzEgMy0yLjc2YzAtMS4xOS0uNTYtMS44Ny0xLjMyLTIuNzlhNi40NiA2LjQ2IDAgMCAxLTEuNTYtMi44Yy0uMS4xMS0uMTcuMjMtLjI0LjM1LS4yLjQtLjI3Ljg5LS4zMiAxLjQybC0uMDEuMTMtLjA3LjYyYy0uMDQuMTktLjEuNTYtLjM3LjgzYS45OS45OSAwIDAgMS0uNjIuMyAxLjIgMS4yIDAgMCAxLS41Ny0uMWwtLjMtLjE2LS4xLjE3Wk0yIDIwLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTguNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpcmVwbGFjZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNCAxNGExMiAxMiAwIDEgMSAyNCAwdjEwYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjE0Wk0xNiA0QTEwIDEwIDAgMCAwIDYgMTR2OWg1LjI4YTYuNjggNi42OCAwIDAgMS0xLjc4LTQuNTMgOC41IDguNSAwIDAgMSAxLjYzLTUuMDMgNS4zOCA1LjM4IDAgMCAxIC4zMi0uMzdsLjAyLS4wMnYtLjAxaC4wMXYtLjAxYTEgMSAwIDAgMSAxLjE0LS4yYy41Mi4yNS44Ni4zNiAxLjA3LjQuMDMtLjE3LjA0LS4zOC4wNi0uN3YtLjA4Yy4wMy0uNjMuMDgtMS41Ny40OS0yLjQuNDctLjk4IDEuMzYtMS43MiAyLjgyLTIuMDNhMSAxIDAgMCAxIDEuMi45OGMwIDIuMDEuODggMy4yNiAxLjkgNC41NmwuMjYuM2MuOTUgMS4xOSAyLjA4IDIuNiAyLjA4IDQuNjEgMCAxLjY2LS42MyAzLjMtMS43NyA0LjUzSDI2di05QTEwIDEwIDAgMCAwIDE2IDRaTTIgMjhhMSAxIDAgMCAxIDEtMWgyNmExIDEgMCAxIDEgMCAySDNhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlcGxhY2UzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDE0djEwYTEgMSAwIDAgMCAxIDFoMjJhMSAxIDAgMCAwIDEtMVYxNGExMiAxMiAwIDAgMC0yNCAwWm0xNi43MyA5YTYuNjkgNi42OSAwIDAgMCAxLjc3LTQuNTNjMC0yLjAxLTEuMTMtMy40Mi0yLjA4LTQuNmwtLjI1LS4zMWMtMS4wMy0xLjMtMS45LTIuNTUtMS45LTQuNTZhMSAxIDAgMCAwLTEuMjEtLjk4Yy0xLjYuMzUtMi42MSAxLjExLTMuMTggMi4xMi0uNTMuOTQtLjYgMS45Ny0uNjIgMi42N2wtLjAxLjI4di4xMmwtLjUxLS4zMWExIDEgMCAwIDAtMS4yNi4xM2wtLjAxLjAyYTQuMTMgNC4xMyAwIDAgMC0uMzQuMzkgOC41IDguNSAwIDAgMC0xLjYzIDUuMDNjMCAxLjY2LjYzIDMuMyAxLjc4IDQuNTNINnYtOWExMCAxMCAwIDAgMSAyMCAwdjloLTUuMjdaTTE2IDIzYy0yLjc2IDAtNC41LTIuMi00LjUtNC41M2E2LjUgNi41IDAgMCAxIC45NS0zLjQyYy4yMy4xMi40NS4yMi42NS4yOC40Mi4xMyAxLjA2LjIgMS41Ny0uMjYuNDItLjM4LjUtLjkyLjUzLTEuMTlhOS43IDkuNyAwIDAgMCAuMDUtMWMuMDMtLjY4LjEtMS4yNy4zNy0xLjc2LjE0LS4yNS4zNy0uNTIuNzYtLjc1YTkuNDcgOS40NyAwIDAgMCAyLjIyIDQuNDNsLjE3LjIyYzEuMDQgMS4zIDEuNzMgMi4xNyAxLjczIDMuNDVBNC40NCA0LjQ0IDAgMCAxIDE2IDIzWk0yIDI4YTEgMSAwIDAgMSAxLTFoMjZhMSAxIDAgMSAxIDAgMkgzYTEgMSAwIDAgMS0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGaXJlcGxhY2U0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlcGxhY2U0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRBMTggMTggMCAwIDAgNiAyMnYxMy4yNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgzMy41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVYyMkExOCAxOCAwIDAgMCAyNCA0Wk04LjUgMjJhMTUuNSAxNS41IDAgMCAxIDMxIDB2MTJoLTkuMTNhOC44NCA4Ljg0IDAgMCAwIDMuMTMtNi43NWMwLTIuODktMS43LTQuOTMtMy4xNS02LjY4bC0uMzgtLjQ2Yy0xLjYtMS45NC0yLjk3LTMuODUtMi45Ny02Ljg2YTEuMjUgMS4yNSAwIDAgMC0xLjU0LTEuMjJjLTIuMTYuNTMtMy40MyAxLjY4LTQuMTIgMy4xMWE5LjczIDkuNzMgMCAwIDAtLjc1IDMuOFYxOWMtLjAyLjQxLS4wMy43Mi0uMDYuOTdhOS4xIDkuMSAwIDAgMS0xLjM1LS43NyAxLjI1IDEuMjUgMCAwIDAtMS41My4xM2wtLjAyLjAyYTMuOSAzLjkgMCAwIDAtLjE1LjE1bC0uMzcuNDFhMTEuNTUgMTEuNTUgMCAwIDAtMi42MSA3LjM0QTguODQgOC44NCAwIDAgMCAxNy42NCAzNEg4LjVWMjJaTTUuMjUgMzkuNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMzcuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVINS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpcmVwbGFjZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXJlcGxhY2U0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02IDIyYTE4IDE4IDAgMCAxIDM2IDB2MTMuMjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDcuMjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVYyMlpNMjQgNi41QTE1LjUgMTUuNSAwIDAgMCA4LjUgMjJ2MTJoOS4xNGE4Ljg0IDguODQgMCAwIDEtMy4xNC02Ljc1IDExLjU1IDExLjU1IDAgMCAxIDMuMS03Ljg2bC4wMy0uMDQuMDEtLjAxaC4wMWMuNDQtLjQyIDEuMDYtLjQ1IDEuNTQtLjEzLjQ1LjMuOC41IDEuMDUuNjJsLjAzLS42di0uMzVjLjA0LTEuMDIuMTMtMi40OC44NC0zLjgyLjc1LTEuNDEgMi4xMi0yLjUyIDQuMzYtMy4wM0ExLjI1IDEuMjUgMCAwIDEgMjcgMTMuMjVjMCAzLjAxIDEuMzcgNC45MiAyLjk3IDYuODZsLjM4LjQ2YzEuNDYgMS43NSAzLjE1IDMuNzkgMy4xNSA2LjY4QTguODQgOC44NCAwIDAgMSAzMC4zNyAzNGg5LjEzVjIyQTE1LjUgMTUuNSAwIDAgMCAyNCA2LjVabS01LjggMTYuMmE5LjA1IDkuMDUgMCAwIDAtMS4yIDQuNTVjMCAzLjQgMi43NSA2LjUgNyA2LjUgNC4yNiAwIDctMy4xIDctNi41IDAtMS45NS0xLjExLTMuMy0yLjY5LTUuMjJsLS4yOC0uMzRjLTEuNC0xLjctMi45Ni0zLjc1LTMuNC02LjcyLS42OS4zNi0xLjA3LjgyLTEuMzEgMS4yN2E2LjI4IDYuMjggMCAwIDAtLjU1IDNjLS4wMi40LS4wMy44My0uMDcgMS4yLS4wNS4zOS0uMTcgMS4xLS43MiAxLjYtLjY3LjYtMS41LjUyLTIuMDkuMzRhNi4xIDYuMSAwIDAgMS0xLjE0LS41MWMtLjE3LjIzLS4zNS41LS41NC44M1pNNCA0MC43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgzNy41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNUg1LjI1QzQuNTYgNDIgNCA0MS40NCA0IDQwLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRml4ZWRXaWR0aDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpeGVkV2lkdGgyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNSAzYy4yOCAwIC41LjIyLjUuNVY1aDUuNVYzLjVhLjUuNSAwIDAgMSAxIDBWNUgxNlYzLjVhLjUuNSAwIDAgMSAxIDB2NGEuNS41IDAgMCAxLTEgMFY2aC01LjV2MS41YS41LjUgMCAwIDEtMSAwVjZINHYxLjVhLjUuNSAwIDAgMS0xIDB2LTRjMC0uMjguMjItLjUuNS0uNVptNiA2SDVhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoNC41VjlabTEgOEgxNWEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTQuNXY4WlwiXSk7XG5leHBvcnQgY29uc3QgRml4ZWRXaWR0aDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGaXhlZFdpZHRoMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy41IDNjLjI4IDAgLjUuMjIuNS41VjVoNS41VjMuNWEuNS41IDAgMCAxIDEgMFY1SDE2VjMuNWEuNS41IDAgMCAxIDEgMHY0YS41LjUgMCAwIDEtMSAwVjZoLTUuNXYxLjVhLjUuNSAwIDAgMS0xIDBWNkg0djEuNWEuNS41IDAgMCAxLTEgMHYtNGMwLS4yOC4yMi0uNS41LS41Wk0zIDExYzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Wm03LjUgNUgxNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLTQuNXY2Wm0tMS02SDVhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNC41di02WlwiXSk7XG5leHBvcnQgY29uc3QgRml4ZWRXaWR0aDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZpeGVkV2lkdGgyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuNzUgNGMuNDEgMCAuNzUuMy43NS42OVY2aDYuNzVWNC42OWMwLS4zOC4zNC0uNjkuNzUtLjY5cy43NS4zLjc1LjY5VjZoNi43NVY0LjY5YzAtLjM4LjM0LS42OS43NS0uNjlzLjc1LjMuNzUuNjlWOC44YzAgLjM4LS4zNC42OS0uNzUuNjlzLS43NS0uMy0uNzUtLjY5VjcuNWgtNi43NXYxLjMxYzAgLjM4LS4zNC42OS0uNzUuNjlzLS43NS0uMy0uNzUtLjY5VjcuNUg0LjV2MS4zMWMwIC4zOC0uMzQuNjktLjc1LjY5UzMgOS4yIDMgOC44MVY0LjdjMC0uMzguMzQtLjY5Ljc1LS42OVptMiA3QTIuNzUgMi43NSAwIDAgMCAzIDEzLjc1djRhMi43NSAyLjc1IDAgMCAwIDIuNzUgMi43NWg1LjVWMTFoLTUuNVptMTIuNSA5LjVoLTUuNVYxMWg1LjVBMi43NSAyLjc1IDAgMCAxIDIxIDEzLjc1djRhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZpeGVkV2lkdGgyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRml4ZWRXaWR0aDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuNSA0LjY5YzAtLjM4LS4zNC0uNjktLjc1LS42OVMzIDQuMyAzIDQuNjlWOC44YzAgLjM4LjM0LjY5Ljc1LjY5cy43NS0uMy43NS0uNjlWNy41aDYuNzV2MS4zMWMwIC4zOC4zNC42OS43NS42OXMuNzUtLjMuNzUtLjY5VjcuNWg2Ljc1djEuMzFjMCAuMzguMzQuNjkuNzUuNjlzLjc1LS4zLjc1LS42OVY0LjdjMC0uMzgtLjM0LS42OS0uNzUtLjY5cy0uNzUuMy0uNzUuNjlWNmgtNi43NVY0LjY5YzAtLjM4LS4zNC0uNjktLjc1LS42OXMtLjc1LjMtLjc1LjY5VjZINC41VjQuNjlaTTUuNzUgMTFBMi43NSAyLjc1IDAgMCAwIDMgMTMuNzV2NGEyLjc1IDIuNzUgMCAwIDAgMi43NSAyLjc1aDEyLjVBMi43NSAyLjc1IDAgMCAwIDIxIDE3Ljc1di00QTIuNzUgMi43NSAwIDAgMCAxOC4yNSAxMUg1Ljc1Wm01LjUgMS41VjE5aC01LjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXYtNGMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg1LjVabTEuNSA2LjV2LTYuNWg1LjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2NGMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00IDEwaDlhLjUuNSAwIDAgMCAuNC0uOEwxMS4xMiA2bDIuMy0zLjJBLjUuNSAwIDAgMCAxMyAySDMuNWEuNS41IDAgMCAwLS41LjV2MTFhLjUuNSAwIDAgMCAxIDBWMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWcxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDlWM2g4LjAzbC0xLjk0IDIuN2EuNS41IDAgMCAwIDAgLjZMMTIuMDMgOUg0Wm0wIDFoOWEuNS41IDAgMCAwIC40LS44TDExLjEyIDZsMi4zLTMuMkEuNS41IDAgMCAwIDEzIDJIMy41YS41LjUgMCAwIDAtLjUuNXYxMWEuNS41IDAgMCAwIDEgMFYxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDEzaDExLjVhLjUuNSAwIDAgMCAuNDItLjc4TDE0LjEgOGwyLjgyLTQuMjJBLjUuNSAwIDAgMCAxNi41IDNoLTEyYS41LjUgMCAwIDAtLjUuNXYxNGEuNS41IDAgMCAwIDEgMFYxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgMTNoMTEuNWEuNS41IDAgMCAwIC40Mi0uNzhMMTQuMSA4bDIuODItNC4yMkEuNS41IDAgMCAwIDE2LjUgM2gtMTJhLjUuNSAwIDAgMC0uNS41djE0YS41LjUgMCAwIDAgMSAwVjEzWm0wLTFWNGgxMC41N2wtMi40OSAzLjcyYS41LjUgMCAwIDAgMCAuNTZMMTUuNTcgMTJINVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDMuNzVjMC0uNDIuMzQtLjc1Ljc1LS43NWgxNi41Yy42MiAwIC45OC43LjYgMS4yTDE2LjcgOS43NWw0LjE2IDUuNTVjLjM4LjUuMDIgMS4yLS42IDEuMkg0LjV2NC43NWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxYS43NS43NSAwIDAgMS0uNzQtLjY1bC0uMDEtLjFWMy43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgMy43NWMwLS40Mi4zNC0uNzUuNzUtLjc1aDE2LjVjLjYyIDAgLjk4LjcuNiAxLjJMMTYuNyA5Ljc1bDQuMTYgNS41NWMuMzguNS4wMiAxLjItLjYgMS4ySDQuNXY0Ljc1YzAgLjM4LS4yOC43LS42NS43NGwtLjEuMDFhLjc1Ljc1IDAgMCAxLS43NC0uNjVsLS4wMS0uMVYzLjc1Wm0xNS43NS43NUg0LjVWMTVoMTQuMjVsLTMuNi00LjhhLjc1Ljc1IDAgMCAxIDAtLjlsMy42LTQuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01LjUgMThoMTcuNzVjLjU5IDAgLjk1LS42NS42My0xLjE1bC00LTYuMzUgNC02LjM1QS43NS43NSAwIDAgMCAyMy4yNSAzSDQuNzVhLjc1Ljc1IDAgMCAwLS43NS43NXYyMC41YS43NS43NSAwIDAgMCAxLjUgMFYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWcyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZzI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTUuNSAxNi41di0xMmgxNi40bC0zLjUzIDUuNmEuNzUuNzUgMCAwIDAgMCAuOGwzLjUyIDUuNkg1LjVabTAgMS41aDE3Ljc1Yy41OSAwIC45NS0uNjUuNjMtMS4xNWwtNC02LjM1IDQtNi4zNUEuNzUuNzUgMCAwIDAgMjMuMjUgM0g0Ljc1YS43NS43NSAwIDAgMC0uNzUuNzV2MjAuNWEuNzUuNzUgMCAwIDAgMS41IDBWMThaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZzMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNi41IDNDNS42NyAzIDUgMy42NyA1IDQuNVYyOGExIDEgMCAxIDAgMiAwdi03aDIxYTEgMSAwIDAgMCAuOC0xLjZMMjMuMjUgMTJsNS41NS03LjRBMSAxIDAgMCAwIDI4IDNINi41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZzMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZzMyTGlnaHQnLCBcIjMyXCIsIFtcIk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzaDIyYS41LjUgMCAwIDEgLjQuOEwyMi42MyAxMmw2LjI3IDguMmEuNS41IDAgMCAxLS40LjhINnY3LjVhLjUuNSAwIDAgMS0xIDB2LTI0Wk02IDIwaDIxLjQ5bC01Ljg5LTcuN2EuNS41IDAgMCAxIDAtLjZMMjcuNSA0SDYuNWEuNS41IDAgMCAwLS41LjVWMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWczMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzSDI4YTEgMSAwIDAgMSAuOCAxLjZMMjMuMjUgMTJsNS41NSA3LjRBMSAxIDAgMCAxIDI4IDIxSDd2N2ExIDEgMCAxIDEtMiAwVjQuNVpNNyAxOWgxOWwtNC44LTYuNGExIDEgMCAwIDEgMC0xLjJMMjYgNUg3djE0WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZzQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWc0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTguNzUgNmMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MzUuNWExLjI1IDEuMjUgMCAxIDAgMi41IDBWMzNoMzEuMjVhMS4yNSAxLjI1IDAgMCAwIDEtMS45OUwzMy44IDE5LjVsOC40Ni0xMS41MUExLjI1IDEuMjUgMCAwIDAgNDEuMjUgNkg4Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZzQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNy41IDcuMjVDNy41IDYuNTYgOC4wNiA2IDguNzUgNmgzMi41YTEuMjUgMS4yNSAwIDAgMSAxIDEuOTlMMzMuOCAxOS41bDguNDYgMTEuNTFBMS4yNSAxLjI1IDAgMCAxIDQxLjI1IDMzSDEwdjkuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjcuMjVaTTEwIDMwLjVoMjguNzhsLTcuNTQtMTAuMjZhMS4yNSAxLjI1IDAgMCAxIDAtMS40OEwzOC43OCA4LjVIMTB2MjJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2hlY2tlcmVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0NoZWNrZXJlZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDMuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMC41Yy40MSAwIC43NS4zNC43NS43NXYxMC41YzAgLjQxLS4zNC43NS0uNzUuNzVINnYyLjc1YS43NS43NSAwIDAgMS0xLjUgMHYtMTRaTTYgMTNoM3YtM2gzdjNoM3YtM2gtM1Y3aDNWNGgtM3YzSDlWNEg2djNoM3YzSDZ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdDaGVja2VyZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0NoZWNrZXJlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgMy41YzAtLjI4LjIyLS41LjUtLjVoMTBjLjI4IDAgLjUuMjIuNS41djEwYS41LjUgMCAwIDEtLjUuNUg2djMuNWEuNS41IDAgMCAxLTEgMHYtMTRaTTYgMTNoM3YtM2gzdjNoM3YtM2gtM1Y3aDNWNGgtM3YzSDlWNEg2djNoM3YzSDZ2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdDbG9jazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdDbG9jazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNCAxMGgyLjJhNS41IDUuNSAwIDAgMSA0LjkyLTMuOTlWNmwyLjI5LTMuMkEuNS41IDAgMCAwIDEzIDJIMy41YS41LjUgMCAwIDAtLjUuNXYxMWEuNS41IDAgMCAwIDEgMFYxMFptMTIgMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk0xMS41IDlhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVIMTNhLjUuNSAwIDAgMCAwLTFoLTFWOS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0Nsb2NrMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNCA5VjNoOC4wM2wtMS45NCAyLjdhLjUuNSAwIDAgMC0uMDUuNWMuMzUtLjEuNzEtLjE2IDEuMDgtLjE5VjZsMi4yOS0zLjJBLjUuNSAwIDAgMCAxMyAySDMuNWEuNS41IDAgMCAwLS41LjV2MTFhLjUuNSAwIDAgMCAxIDBWMTBoMi4yYy4xLS4zNS4yNC0uNjguNC0xSDRabTEyIDIuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTEuNSA5YS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41SDEzYS41LjUgMCAwIDAgMC0xaC0xVjkuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ0Nsb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0Nsb2NrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDEzaDQuMmE1LjUgNS41IDAgMCAxIDUuNTctNGwtLjY3LTEgMi44Mi00LjIyQS41LjUgMCAwIDAgMTYuNSAzaC0xMmEuNS41IDAgMCAwLS41LjV2MTRhLjUuNSAwIDAgMCAxIDBWMTNabTE0IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0Nsb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSAxM2g0LjJjLjEtLjM1LjI0LS42OC40LTFINVY0aDEwLjU3bC0yLjQ5IDMuNzJhLjUuNSAwIDAgMCAwIC41NmwuNTMuOEE1LjU0IDUuNTQgMCAwIDEgMTQuNzcgOUwxNC4xIDhsMi44Mi00LjIyQS41LjUgMCAwIDAgMTYuNSAzaC0xMmEuNS41IDAgMCAwLS41LjV2MTRhLjUuNSAwIDAgMCAxIDBWMTNabTE0IDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnQ2xvY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuNzUgM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djE3LjZjLjA2LjM3LjM3LjY1Ljc1LjY1aC4xYS43NS43NSAwIDAgMCAuNjUtLjc1VjE2LjVoNi41OGE2LjUgNi41IDAgMCAxIDYuNTUtNS41bC0uOTQtMS4yNSA0LjE2LTUuNTVhLjc1Ljc1IDAgMCAwLS42LTEuMkgzLjc1Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBaTTE3LjUgMTRjLjI4IDAgLjUuMjIuNS41VjE3aDJhLjUuNSAwIDAgMSAwIDFoLTIuNWEuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0Nsb2NrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy43NSAzYS43NS43NSAwIDAgMC0uNzUuNzV2MTcuNmMuMDYuMzcuMzcuNjUuNzUuNjVoLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVWMTYuNWg2LjU4Yy4wOC0uNTIuMjItMS4wMy40Mi0xLjVoLTdWNC41aDE0LjI1bC0zLjYgNC44Yy0uMi4yNy0uMi42MyAwIC45bC43NSAxYTYuNTEgNi41MSAwIDAgMSAxLjczLS4ybC0uOTQtMS4yNSA0LjE2LTUuNTVhLjc1Ljc1IDAgMCAwLS42LTEuMkgzLjc1Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBaTTE3LjUgMTRjLjI4IDAgLjUuMjIuNS41VjE3aDJhLjUuNSAwIDAgMSAwIDFoLTIuNWEuNS41IDAgMCAxLS41LS41di0zYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2syOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnQ2xvY2syOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTUuNSAxOGg3LjkzYTcuNSA3LjUgMCAwIDEgOC4wNy00LjkzTDE5LjkgMTAuNWw0LTYuMzVBLjc1Ljc1IDAgMCAwIDIzLjI0IDNINC43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djIwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjE4Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS02LjUtNGEuNS41IDAgMCAwLS41LjV2My41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFIMjF2LTNhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdDbG9jazI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnQ2xvY2syOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk01LjUgMTYuNXYtMTJoMTYuNGwtMy41MyA1LjZhLjc1Ljc1IDAgMCAwIDAgLjhsMS4zNCAyLjE0YTcuNTcgNy41NyAwIDAgMSAxLjguMDNsLTEuNjItMi41NyA0LTYuMzVBLjc1Ljc1IDAgMCAwIDIzLjI0IDNINC43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djIwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjE4aDcuOTNjLjE4LS41My40My0xLjAzLjcyLTEuNUg1LjVabTIxLjUgNGE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tNi41LTRhLjUuNSAwIDAgMC0uNS41djMuNWMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDIxdi0zYS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnQ2xvY2szMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnQ2xvY2szMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTYuNSAzQzUuNjcgMyA1IDMuNjcgNSA0LjVWMjhhMSAxIDAgMSAwIDIgMHYtN2g3LjIyYTkgOSAwIDAgMSAxMC42OC02LjhMMjMuMjUgMTJsNS41NS03LjRBMSAxIDAgMCAwIDI4IDNINi41Wk0yMyAzMC41YTcuNSA3LjUgMCAxIDEgMC0xNSA3LjUgNy41IDAgMCAxIDAgMTVaTTIyLjc1IDE4YS43NS43NSAwIDAgMC0uNzUuNzV2NC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMjMuNXYtMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdDbG9jazMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnQ2xvY2szMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzSDI4YTEgMSAwIDAgMSAuOCAxLjZMMjMuMjUgMTJsMS42NSAyLjJhOS4wNCA5LjA0IDAgMCAwLTIuNjMtLjE3TDIxLjIgMTIuNmExIDEgMCAwIDEgMC0xLjJMMjYgNUg3djE0aDcuOTRjLS4zMi42My0uNTYgMS4zLS43MiAySDd2N2ExIDEgMCAxIDEtMiAwVjQuNVptMTggMjZhNy41IDcuNSAwIDEgMSAwLTE1IDcuNSA3LjUgMCAwIDEgMCAxNVpNMjIuNzUgMThhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjVjMCAuNDEuMzQuNzUuNzUuNzVoMy41YS43NS43NSAwIDAgMCAwLTEuNUgyMy41di0zLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ0Nsb2NrNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ0Nsb2NrNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk04Ljc1IDZjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djM1LjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwVjMzaDEyLjE1YTEzIDEzIDAgMCAxIDEzLjUtMTAuOThMMzMuOCAxOS41bDguNDYtMTEuNTFBMS4yNSAxLjI1IDAgMCAwIDQxLjI1IDZIOC43NVpNNDYgMzVhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tNSAwYTEgMSAwIDAgMC0xLTFoLTR2LTZhMSAxIDAgMSAwLTIgMHY3YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ0Nsb2NrNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdDbG9jazQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTcuNSA3LjI1QzcuNSA2LjU2IDguMDYgNiA4Ljc1IDZoMzIuNWExLjI1IDEuMjUgMCAwIDEgMSAxLjk5TDMzLjggMTkuNWwxLjg1IDIuNTJhMTMuMzIgMTMuMzIgMCAwIDAtMi45Ni4xOWwtMS40NS0xLjk3YTEuMjUgMS4yNSAwIDAgMSAwLTEuNDhMMzguNzggOC41SDEwdjIyaDEyLjhjLS4zLjgtLjUxIDEuNjQtLjY1IDIuNUgxMHY5Ljc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMFY3LjI1Wk00NiAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS01IDBhMSAxIDAgMCAwLTEtMWgtNHYtNmExIDEgMCAxIDAtMiAwdjdhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnT2ZmMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ09mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJtOS4zIDEwIDQuODUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xMy0xM2EuNS41IDAgMSAwLS43LjdMMyAzLjcxdjkuNzlhLjUuNSAwIDAgMCAxIDBWMTBoNS4zWm0zLjcgMGgtLjg4bC04LThIMTNjLjQgMCAuNjQuNDYuNC44TDExLjEyIDZsMi4zIDMuMmEuNS41IDAgMCAxLS40MS44WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ09mZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtOS4zIDEwIDQuODUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xMy0xM2EuNS41IDAgMSAwLS43LjdMMyAzLjcxdjkuNzlhLjUuNSAwIDAgMCAxIDBWMTBoNS4zWm0tMS0xSDRWNC43TDguMyA5Wm0zLjczIDBoLS45bDEgMUgxM2EuNS41IDAgMCAwIC40LS44TDExLjEyIDZsMi4zLTMuMkEuNS41IDAgMCAwIDEzIDJINC4xMmwxIDFoNi45TDEwLjEgNS43YS41LjUgMCAwIDAgMCAuNkwxMi4wMyA5WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ09mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNCA0LjcxVjE3LjVhLjUuNSAwIDAgMCAxIDBWMTNoNy4zbDQuODUgNC44NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTYuNSAxM2gtMS4zOGwtMTAtMTBIMTYuNWMuNCAwIC42NC40NS40Mi43OEwxNC4xIDhsMi44MiA0LjIyYS41LjUgMCAwIDEtLjQyLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ09mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w0IDQuNzFWMTcuNWEuNS41IDAgMCAwIDEgMFYxM2g3LjNsNC44NSA0Ljg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wk0xMS4zIDEySDVWNS43bDYuMyA2LjNabTQuMjggMGgtMS40NWwxIDFoMS4zOGEuNS41IDAgMCAwIC40Mi0uNzhMMTQuMSA4bDIuODItNC4yMkEuNS41IDAgMCAwIDE2LjUgM0g1LjEybDEgMWg5LjQ1bC0yLjQ5IDMuNzJhLjUuNSAwIDAgMCAwIC41NkwxNS41NyAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0yLjUgMi41IDE4IDE4YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTUuMDYtNS4wNkg0LjV2NC43NWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxYS43NS43NSAwIDAgMS0uNzQtLjY1bC0uMDEtLjFWNS4xMkwxLjQ0IDMuNTZBLjc1Ljc1IDAgMSAxIDIuNSAyLjVabTIuNjIuNWgxNS4xM2MuNjIgMCAuOTguNy42IDEuMkwxNi43IDkuNzVsNC4xNiA1LjU1Yy4zOC41LjAyIDEuMi0uNiAxLjJoLTEuNjNMNS4xMiAzWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ09mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMi41IDIuNSAxOCAxOGEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2bC01LjA2LTUuMDZINC41djQuNzVjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xVjUuMTJMMS40NCAzLjU2QS43NS43NSAwIDEgMSAyLjUgMi41Wm0yLjYyLjVoMTUuMTNjLjYyIDAgLjk4LjcuNiAxLjJMMTYuNyA5Ljc1bDQuMTYgNS41NWMuMzguNS4wMiAxLjItLjYgMS4yaC0xLjYzbC0xLjUtMS41aDEuNjNsLTMuNi00LjhhLjc1Ljc1IDAgMCAxIDAtLjlsMy42LTQuOEg2LjYyTDUuMTIgM1pNNC41IDYuNjJWMTVoOC4zOEw0LjUgNi42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdPZmYyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmMjhGaWxsZWQnLCBcIjI4XCIsIFtcIm0yLjQgMS41NS4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3IDIwIDIwYS43NS43NSAwIDAgMS0uOTggMS4xM2wtLjA4LS4wN0wxNy45NCAxOEg1LjV2Ni4yNWEuNzUuNzUgMCAwIDEtMS41LjFWNC4wNkwyLjQ3IDIuNTNhLjc1Ljc1IDAgMCAxLS4wNy0uOThsLjA3LS4wOC0uMDcuMDhaTTcuMDYgM2gxNi4xOWMuNTYgMCAuOS41OC42OCAxLjA2bC0uMDUuMDktNCA2LjM1IDQgNi4zNWMuMy40NyAwIDEuMDctLjUzIDEuMTRsLS4xLjAxaC0xLjE5bC0xNS0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdPZmYyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ09mZjI4UmVndWxhcicsIFwiMjhcIiwgW1wibTIuNCAxLjU1LjA3LS4wOGEuNzUuNzUgMCAwIDEgLjk4LS4wN2wuMDguMDcgMjAgMjBhLjc1Ljc1IDAgMCAxLS45OCAxLjEzbC0uMDgtLjA3TDE3Ljk0IDE4SDUuNXY2LjI1YS43NS43NSAwIDAgMS0xLjUuMVY0LjA2TDIuNDcgMi41M2EuNzUuNzUgMCAwIDEtLjA3LS45OGwuMDctLjA4LS4wNy4wOFpNNy4wNiAzaDE2LjE5Yy41NiAwIC45LjU4LjY4IDEuMDZsLS4wNS4wOS00IDYuMzUgNCA2LjM1Yy4zLjQ3IDAgMS4wNy0uNTMgMS4xNGwtLjEuMDFoLTEuMTlsLTEuNS0xLjVoMS4zM2wtMy41Mi01LjZhLjc1Ljc1IDAgMCAxLS4wNi0uN2wuMDYtLjEgMy41Mi01LjZIOC41Nkw3LjA2IDNaTTUuNSA1LjU2VjE2LjVoMTAuOTRMNS41IDUuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnT2ZmMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnT2ZmMzJMaWdodCcsIFwiMzJcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNSA1LjcxVjI4LjVhLjUuNSAwIDAgMCAxIDBWMjFoMTQuM2w4Ljg1IDguODVhLjUuNSAwIDAgMCAuNy0uN2wtMjctMjdaTTE5LjMgMjBINlY2LjdMMTkuMyAyMFptOS4yMSAxaC01LjczbC0xLTFoNS43MmwtNS44OS03LjdhLjUuNSAwIDAgMSAwLS42TDI3LjUgNEg2LjVhLjUuNSAwIDAgMC0uNDUuMjhsLS43Mi0uNzJDNS42IDMuMjIgNi4wMyAzIDYuNSAzaDIyYS41LjUgMCAwIDEgLjQuOEwyMi42MyAxMmw2LjI3IDguMmEuNS41IDAgMCAxLS40LjhaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnT2ZmNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ09mZjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJtMzEuMjMgMzMgMTAuNjQgMTAuNjNhMS4yNSAxLjI1IDAgMCAwIDEuNzYtMS43Nkw2LjEzIDQuMzdhMS4yNSAxLjI1IDAgMSAwLTEuNzYgMS43Nkw3LjUgOS4yN3YzMy40OGExLjI1IDEuMjUgMCAxIDAgMi41IDBWMzNoMjEuMjNabTEwLjAyIDBIMzcuNmwtMjctMjdoMzAuNjVhMS4yNSAxLjI1IDAgMCAxIDEgMS45OUwzMy44IDE5LjVsOC40NiAxMS41MUExLjI1IDEuMjUgMCAwIDEgNDEuMjUgMzNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnT2ZmNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdPZmY0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIm0zMS4yMyAzMyAxMC42NCAxMC42M2ExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2TDYuMTMgNC4zN2ExLjI1IDEuMjUgMCAxIDAtMS43NiAxLjc2TDcuNSA5LjI3djMzLjQ4YTEuMjUgMS4yNSAwIDEgMCAyLjUgMFYzM2gyMS4yM1ptLTIuNS0yLjVIMTBWMTEuNzdMMjguNzMgMzAuNVpNNDEuMjUgMzNIMzcuNmwtMi41LTIuNWgzLjY4bC03LjU0LTEwLjI2YTEuMjUgMS4yNSAwIDAgMSAwLTEuNDhMMzguNzggOC41SDEzLjFMMTAuNiA2aDMwLjY1YTEuMjUgMS4yNSAwIDAgMSAxIDEuOTlMMzMuOCAxOS41bDguNDYgMTEuNTFBMS4yNSAxLjI1IDAgMCAxIDQxLjI1IDMzWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yLjc1IDIuNzVoMTAuNXYxLjVIMi43NXYtMS41WlwiLCBcIk0yLjc1IDRoMTAuNXYxLjVIMi43NVY0WlwiLCBcIk0yLjc1IDUuMjVoMTAuNVY3SDIuNzVWNS4yNVpcIiwgXCJNMi43NSA2LjVoMTAuNXYxLjc1SDIuNzVWNi41WlwiLCBcIk0yLjc1IDcuNzVoMTAuNXYxLjVIMi43NXYtMS41WlwiLCBcIk0yLjc1IDloMTAuNXYxLjI1SDIuNzVWOVpcIiwgXCJNMi41IDJoMTFjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41SDN2Mi41YS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wk0zIDN2N2gxMFYzSDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNzUgMy43NWgxMi41djEuNUgzLjc1di0xLjVaXCIsIFwiTTMuNzUgNWgxMi41djEuNUgzLjc1VjVaXCIsIFwiTTMuNzUgNmgxMi41djEuNzVIMy43NVY2WlwiLCBcIk0zLjc1IDcuNWgxMi41djEuNzVIMy43NVY3LjVaXCIsIFwiTTMuNzUgOWgxMi41djEuMjVIMy43NVY5WlwiLCBcIk0zLjc1IDEwaDEyLjV2MS4yNUgzLjc1VjEwWlwiLCBcIk0zLjUgM2gxM2MuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVINHY1LjVhLjUuNSAwIDAgMS0xIDB2LTE0YzAtLjI4LjIyLS41LjUtLjVaTTQgNHY3aDEyVjRINFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdQcmlkZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCA0aDE2djIuNUg0VjRaXCIsIFwiTTQgNmgxNnYyLjVINFY2WlwiLCBcIk00IDhoMTZ2Mi41SDRWOFpcIiwgXCJNNCAxMGgxNnYyLjVINFYxMFpcIiwgXCJNNCAxMmgxNnYySDR2LTJaXCIsIFwiTTQgMTMuNWgxNnYxLjc1SDRWMTMuNVpcIiwgXCJNMy43NSAzYS43NS43NSAwIDAgMC0uNzUuNzV2MTcuNWEuNzUuNzUgMCAwIDAgMS41IDBWMTYuNWgxNS43NWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMTJhLjc1Ljc1IDAgMCAwLS43NS0uNzVIMy43NVptLjc1IDEuNWgxNVYxNWgtMTVWNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01IDRoMTh2Mi43NUg1VjRaXCIsIFwiTTUgNi41aDE4djIuMjVINVY2LjVaXCIsIFwiTTUgOC41aDE4djIuMjVINVY4LjVaXCIsIFwiTTUgMTAuNWgxOHYyLjI1SDVWMTAuNVpcIiwgXCJNNSAxMi41aDE4djIuMjVINVYxMi41WlwiLCBcIk01IDE0LjVoMThWMTdINXpcIiwgXCJNNC43NSAzYS43NS43NSAwIDAgMC0uNzUuNzV2MjAuNWEuNzUuNzUgMCAwIDAgMS41IDBWMThoMTcuNzVjLjQxIDAgLjc1LS4zNC43NS0uNzVWMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUg0Ljc1Wm0uNzUgMS41aDE3djEyaC0xN3YtMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTUgMTZoMjJ2My41SDVWMTZaXCIsIFwiTTUgMTNoMjJ2NEg1di00WlwiLCBcIk01IDExaDIydjNINXYtM1pcIiwgXCJNNSA5aDIydjNINVY5WlwiLCBcIk01IDZoMjJ2NEg1VjZaXCIsIFwiTTUgNGgyMnYzSDVWNFpcIiwgXCJNNCA0YTEgMSAwIDAgMSAxLTFoMjJhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDZ2N2ExIDEgMCAxIDEtMiAwVjRabTIgMTVoMjBWNUg2djE0WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk05IDhoMzB2NC41SDl6XCIsIFwiTTkgMTJoMzB2NC41SDl6XCIsIFwiTTkgMTZoMzB2My41SDl6XCIsIFwiTTkgMTloMzB2NC41SDl6XCIsIFwiTTkgMjNoMzB2NC41SDl6XCIsIFwiTTkgMjdoMzB2NEg5elwiLCBcIk03IDcuMjVDNyA2LjU2IDcuNTYgNiA4LjI1IDZoMzEuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYyNC41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg5LjV2Ny43NWExLjI1IDEuMjUgMCAxIDEtMi41IDBWNy4yNVpNOS41IDMwLjVoMjl2LTIyaC0yOXYyMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdQcmlkZUludGVyc2V4SW5jbHVzaXZlUHJvZ3Jlc3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVJbnRlcnNleEluY2x1c2l2ZVByb2dyZXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yLjc1IDIuNzVoMTAuNXYxLjVIMi43NXYtMS41WlwiLCBcIk0yLjc1IDRoMTAuNXYxLjVIMi43NVY0WlwiLCBcIk0yLjc1IDUuMjVoMTAuNVY3SDIuNzVWNS4yNVpcIiwgXCJNMi43NSA2LjVoMTAuNXYxLjc1SDIuNzVWNi41WlwiLCBcIk0yLjc1IDcuNzVoMTAuNXYxLjVIMi43NXYtMS41WlwiLCBcIk0yLjc1IDloMTAuNXYxLjI1SDIuNzVWOVpcIiwgXCJtMTEgNi41LTQtNEg0LjV2OEg3bDQtNFpcIiwgXCJtOS41IDYuNS00LTRIM3Y4aDIuNWw0LTRaXCIsIFwibTguNSA2LjUtNC00SDJ2OGgyLjVsNC00WlwiLCBcIm03LjUgNi41LTQtNEgzdjhoLjVsNC00WlwiLCBcIm02LjUgNi41LTQtNHY4bDQtNFpcIiwgXCJNNC41IDYuNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCIsIFwiTTcuNSAxMUgzdjIuNWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNWgxMWMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVoLTZabS0uMi04SDN2N2g0LjNsMy41LTMuNUw3LjMgM1ptMS40IDAgMy4xNSAzLjE1Yy4yLjIuMi41IDAgLjdMOC43MSAxMEgxM1YzSDguN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdQcmlkZUludGVyc2V4SW5jbHVzaXZlUHJvZ3Jlc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVJbnRlcnNleEluY2x1c2l2ZVByb2dyZXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjc1IDMuNzVoMTIuNXYxLjVIMy43NXYtMS41WlwiLCBcIk0zLjc1IDVoMTIuNXYxLjVIMy43NVY1WlwiLCBcIk0zLjc1IDZoMTIuNXYxLjc1SDMuNzVWNlpcIiwgXCJNMy43NSA3LjVoMTIuNXYxLjc1SDMuNzVWNy41WlwiLCBcIk0zLjc1IDloMTIuNXYxLjI1SDMuNzVWOVpcIiwgXCJNMy43NSAxMGgxMi41djEuMjVIMy43NVYxMFpcIiwgXCJtMTMuNSA3LjUtNC00SDd2OGgyLjVsNC00WlwiLCBcIm0xMS41IDcuNS00LTRINXY4aDIuNWw0LTRaXCIsIFwibTEwLjUgNy41LTQtNEg0djhoMi41bDQtNFpcIiwgXCJtOS41IDcuNS00LTRINHY4aDEuNWw0LTRaXCIsIFwibTguNSA3LjUtNC00aC0xdjhoMWw0LTRaXCIsIFwiTTUuNzUgN2EuNS41IDAgMSAwIDAgMSAuNS41IDAgMCAwIDAtMVptLTEuNS41YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWlwiLCBcIk05LjUgMTJINHY1LjVhLjUuNSAwIDAgMS0xIDB2LTE0YzAtLjI4LjIyLS41LjUtLjVoMTNjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41aC03Wm0tLjItOEg0djdoNS4zbDMuNS0zLjVMOS4zIDRabTEuNCAwIDMuMTUgMy4xNWMuMi4yLjIuNSAwIC43TDEwLjcxIDExSDE2VjRoLTUuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdQcmlkZUludGVyc2V4SW5jbHVzaXZlUHJvZ3Jlc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVJbnRlcnNleEluY2x1c2l2ZVByb2dyZXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00IDRoMTZ2Mi41SDRWNFpcIiwgXCJNNCA2aDE2djIuNUg0VjZaXCIsIFwiTTQgOGgxNnYyLjVINFY4WlwiLCBcIk00IDEwaDE2djIuNUg0VjEwWlwiLCBcIk00IDEyaDE2djJINHYtMlpcIiwgXCJNNCAxMy41aDE2djEuNzVINFYxMy41WlwiLCBcIm0xNiAxMC02LTZIOHYxMS41aDIuNUwxNiAxMFpcIiwgXCJNMTQgMTAgOCA0SDZ2MTEuNWgyLjVMMTQgMTBaXCIsIFwiTTEzIDEwIDcgNEg1djExLjVoMi41TDEzIDEwWlwiLCBcIk0xMiAxMCA2IDRINHYxMS41aDIuNUwxMiAxMFpcIiwgXCJNMTAgMTAgNCA0djEybDYtNlpcIiwgXCJNMTEgMTAgNSA0SDR2MTJoMWw2LTZaXCIsIFwiTTkgMTBhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwWm0tMyAwYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFpcIiwgXCJNMTAuNSAzSDMuNzVhLjc1Ljc1IDAgMCAwLS43NS43NXYxNy41YS43NS43NSAwIDAgMCAxLjUgMFYxNi41SDExbC4wMy4wMy4wMy0uMDNoOS4xOWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMTJhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTkuNjlsLS4wMy0uMDMtLjAzLjAzWm0tLjU2IDEuNSA1LjUgNS41LTUgNUg0LjVWNC41aDUuNDRabTIuMTIgMGg3LjQ0VjE1aC02Ljk0bDQuNDctNC40N2MuMy0uMy4zLS43NyAwLTEuMDZMMTIuMDYgNC41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlSW50ZXJzZXhJbmNsdXNpdmVQcm9ncmVzczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZUludGVyc2V4SW5jbHVzaXZlUHJvZ3Jlc3MyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTUgNGgxOHYyLjc1SDVWNFpcIiwgXCJNNSA2LjVoMTh2Mi4yNUg1VjYuNVpcIiwgXCJNNSA4LjVoMTh2Mi4yNUg1VjguNVpcIiwgXCJNNSAxMC41aDE4djIuMjVINVYxMC41WlwiLCBcIk01IDEyLjVoMTh2Mi4yNUg1VjEyLjVaXCIsIFwiTTUgMTQuNWgxOFYxN0g1elwiLCBcIk0xOCAxMC41IDExLjUgNGgtM3YxM2gzbDYuNS02LjVaXCIsIFwiTTE2IDEwLjUgOS41IDRIN3YxM2gyLjVsNi41LTYuNVpcIiwgXCJNMTQuNSAxMC41IDggNEg1LjV2MTNIOGw2LjUtNi41WlwiLCBcIk0xMyAxMC41IDYuNSA0SDV2MTNoMS41bDYuNS02LjVaXCIsIFwiTTExLjUgMTAuNSA1IDR2MTNsNi41LTYuNVpcIiwgXCJNNCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTguNWMuNDEgMCAuNzUuMzQuNzUuNzV2MTMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDUuNXY2LjI1YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1Wm04IC43NUg1LjV2MTJIMTJsLS4wMy0uMDMgNS45Ny01Ljk3LTUuOTctNS45Ny4wMy0uMDNabTIuMDYgMCA1LjQ3IDUuNDdjLjMuMy4zLjc3IDAgMS4wNmwtNS40NyA1LjQ3aDguNDR2LTEyaC04LjQ0WlwiLCBcIk0xMCAxMC41YTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgMFptLTMgMGExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVJbnRlcnNleEluY2x1c2l2ZVByb2dyZXNzMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlSW50ZXJzZXhJbmNsdXNpdmVQcm9ncmVzczMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNSAxNmgyMnYzLjVINVYxNlpcIiwgXCJNNSAxM2gyMnY0SDV2LTRaXCIsIFwiTTUgMTFoMjJ2M0g1di0zWlwiLCBcIk01IDloMjJ2M0g1VjlaXCIsIFwiTTUgNmgyMnY0SDVWNlpcIiwgXCJNNSA0aDIydjNINVY0WlwiLCBcIm0yMCAxMi03LjUtNy41aC0zdjE1aDNMMjAgMTJaXCIsIFwiTTE3LjUgMTIgMTAgNC41SDguNXYxNUgxMGw3LjUtNy41WlwiLCBcIk0xNiAxMiA4LjUgNC41SDd2MTVoMS41TDE2IDEyWlwiLCBcIm0xNC41IDEyLTgtOGgtMXYxNmgxbDgtOFpcIiwgXCJNMTMgMTIgNS41IDQuNXYxNUwxMyAxMlpcIiwgXCJNNSAzYTEgMSAwIDAgMC0xIDF2MjRhMSAxIDAgMSAwIDIgMHYtN2gyMWExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg1Wm03LjU5IDE2SDZWNWg2LjU5bDcgNy03IDdabTIuODIgMCA2LjMtNi4zYTEgMSAwIDAgMCAwLTEuNEwxNS40IDVIMjZ2MTRIMTUuNDFaXCIsIFwiTTguNSAxMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabS0yIDFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlSW50ZXJzZXhJbmNsdXNpdmVQcm9ncmVzczQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZUludGVyc2V4SW5jbHVzaXZlUHJvZ3Jlc3M0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTkgOGgzMHY0LjVIOXpcIiwgXCJNOSAxMmgzMHY0LjVIOXpcIiwgXCJNOSAxNmgzMHYzLjVIOXpcIiwgXCJNOSAxOWgzMHY0LjVIOXpcIiwgXCJNOSAyM2gzMHY0LjVIOXpcIiwgXCJNOSAyN2gzMHY0SDl6XCIsIFwiTTMyLjUgMTkgMjEgNy41aC02djI0aDVMMzIuNSAxOVpcIiwgXCJNMjguNSAxOSAxNyA3LjVoLTQuNXYyNEgxNkwyOC41IDE5WlwiLCBcIk0yNS41IDE5IDE0IDcuNUg5djI0aDRMMjUuNSAxOVpcIiwgXCJNMjIuNSAxOSAxMSA3LjVIOXYyNGgxTDIyLjUgMTlaXCIsIFwiTTE5LjUgMTkgOC41IDh2MjJsMTEtMTFaXCIsIFwiTTguMjUgNkM3LjU2IDYgNyA2LjU2IDcgNy4yNXYzMy41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMFYzM2gzMC4yNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWNy4yNUM0MSA2LjU2IDQwLjQ0IDYgMzkuNzUgNkg4LjI1Wm0xMS45OCAyNC41SDkuNXYtMjJoMTEuNzNMMzEuNzMgMTlsLTExLjUgMTEuNVptMy41NCAwIDEwLjYxLTEwLjYyYy41LS40OC41LTEuMjggMC0xLjc2TDI0Ljc3IDguNUgzOC41djIySDIzLjc3WlwiLCBcIk0xMy41IDE3LjVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTExIDE5YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlUGhpbGFkZWxwaGlhMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlUGhpbGFkZWxwaGlhMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yLjc1IDIuNzVoMTAuNXYxLjVIMi43NXpcIiwgXCJNMi43NSA0aDEwLjV2MS41SDIuNzV6XCIsIFwiTTIuNzUgNWgxMC41djEuNUgyLjc1elwiLCBcIk0yLjc1IDZoMTAuNXYxLjVIMi43NXpcIiwgXCJNMi43NSA3aDEwLjV2MS41SDIuNzV6XCIsIFwiTTIuNzUgOGgxMC41djEuNUgyLjc1elwiLCBcIk0yLjc1IDloMTAuNXYxLjVIMi43NXpcIiwgXCJNMi41IDJoMTFjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41SDN2Mi41YS41LjUgMCAwIDEtMSAwdi0xMWMwLS4yOC4yMi0uNS41LS41Wk0zIDN2N2gxMFYzSDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQaGlsYWRlbHBoaWEyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQaGlsYWRlbHBoaWEyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNzUgMy43NWgxMi41djEuNUgzLjc1elwiLCBcIk0zLjc1IDVoMTIuNXYxLjVIMy43NXpcIiwgXCJNMy43NSA2aDEyLjV2MS41SDMuNzV6XCIsIFwiTTMuNzUgN2gxMi41djEuNUgzLjc1elwiLCBcIk0zLjc1IDhoMTIuNXYxLjVIMy43NXpcIiwgXCJNMy43NSA5aDEyLjV2MS41SDMuNzV6XCIsIFwiTTMuNzUgMTBoMTIuNXYxLjVIMy43NXpcIiwgXCJNMy41IDNoMTNjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41SDR2NS41YS41LjUgMCAwIDEtMSAwdi0xNGMwLS4yOC4yMi0uNS41LS41Wk00IDR2N2gxMlY0SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQaGlsYWRlbHBoaWEyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQaGlsYWRlbHBoaWEyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNC4yNWgxNnYySDR6XCIsIFwiTTQgNS43NWgxNnYySDR6XCIsIFwiTTQgNy4yNWgxNnYySDR6XCIsIFwiTTQgOWgxNnYySDR6XCIsIFwiTTQgMTAuNWgxNnYySDR6XCIsIFwiTTQgMTIuMjVoMTZ2Mkg0elwiLCBcIk00IDEzLjc1aDE2djEuNUg0elwiLCBcIk0zLjc1IDNhLjc1Ljc1IDAgMCAwLS43NS43NXYxNy41YS43NS43NSAwIDAgMCAxLjUgMFYxNi41aDE1Ljc1Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xMmEuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjc1Wm0uNzUgMS41aDE1VjE1aC0xNVY0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQaGlsYWRlbHBoaWEyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQaGlsYWRlbHBoaWEyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTUgNC4yNWgxOHYySDV2LTJaXCIsIFwiTTUgNmgxOHYyLjVINVY2WlwiLCBcIk01IDhoMTh2Mi41SDVWOFpcIiwgXCJNNSAxMGgxOHYxLjVINVYxMFpcIiwgXCJNNSAxMWgxOHYyLjVINVYxMVpcIiwgXCJNNSAxM2gxOHYyLjVINVYxM1pcIiwgXCJNNSAxNWgxOHYySDV2LTJaXCIsIFwiTTQuNzUgM2EuNzUuNzUgMCAwIDAtLjc1Ljc1djIwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjE4aDE3Ljc1Yy40MSAwIC43NS0uMzQuNzUtLjc1VjMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVINC43NVptLjc1IDEuNWgxN3YxMmgtMTd2LTEyWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlUGhpbGFkZWxwaGlhMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlUGhpbGFkZWxwaGlhMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk01IDQuNzVoMjJ2Mi41SDV2LTIuNVpcIiwgXCJNNSA3aDIydjIuNUg1VjdaXCIsIFwiTTUgOWgyMnYyLjVINVY5WlwiLCBcIk01IDExaDIydjIuNUg1VjExWlwiLCBcIk01IDEzaDIydjIuNUg1VjEzWlwiLCBcIk01IDE1aDIydjIuNUg1VjE1WlwiLCBcIk01IDE3aDIydjIuNUg1VjE3WlwiLCBcIk00IDRhMSAxIDAgMCAxIDEtMWgyMmExIDEgMCAwIDEgMSAxdjE2YTEgMSAwIDAgMS0xIDFINnY3YTEgMSAwIDEgMS0yIDBWNFptMiAxNWgyMFY1SDZ2MTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQaGlsYWRlbHBoaWE0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQaGlsYWRlbHBoaWE0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTkgOGgzMHYzLjVIOVY4WlwiLCBcIk05IDExaDMwdjMuNUg5VjExWlwiLCBcIk05IDE0aDMwdjQuNUg5VjE0WlwiLCBcIk05IDE4aDMwdjQuNUg5VjE4WlwiLCBcIk05IDIyaDMwdjMuNUg5VjIyWlwiLCBcIk05IDI1aDMwdjMuNUg5VjI1WlwiLCBcIk05IDI4aDMwdjNIOXYtM1pcIiwgXCJNNyA3LjI1QzcgNi41NiA3LjU2IDYgOC4yNSA2aDMxLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2MjQuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVIOS41djcuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjcuMjVaTTkuNSAzMC41aDI5di0yMmgtMjl2MjJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQcm9ncmVzczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZVByb2dyZXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yLjc1IDIuNzVoMTAuNXYxLjVIMi43NXYtMS41WlwiLCBcIk0yLjc1IDRoMTAuNXYxLjVIMi43NVY0WlwiLCBcIk0yLjc1IDUuMjVoMTAuNVY3SDIuNzVWNS4yNVpcIiwgXCJNMi43NSA2LjVoMTAuNXYxLjc1SDIuNzVWNi41WlwiLCBcIk0yLjc1IDcuNzVoMTAuNXYxLjVIMi43NXYtMS41WlwiLCBcIk0yLjc1IDloMTAuNXYxLjI1SDIuNzVWOVpcIiwgXCJtMTAgNi41LTQtNEgzLjV2OEg2bDQtNFpcIiwgXCJtOC41IDYuNS00LTRIMnY4aDIuNWw0LTRaXCIsIFwibTcgNi41LTQtNGgtLjV2OEgzbDQtNFpcIiwgXCJtNS41IDYuNS0zLTN2NmwzLTNaXCIsIFwiTTYuNSAxMUgzdjIuNWEuNS41IDAgMCAxLTEgMHYtMTFjMC0uMjguMjItLjUuNS0uNWgxMWMuMjggMCAuNS4yMi41LjV2OGEuNS41IDAgMCAxLS41LjVoLTdabS0uMi04SDN2N2gzLjNsMy41LTMuNUw2LjMgM1ptMS40IDAgMy4xNSAzLjE1Yy4yLjIuMi41IDAgLjdMNy43MSAxMEgxM1YzSDcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYWdQcmlkZVByb2dyZXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhZ1ByaWRlUHJvZ3Jlc3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNzUgMy43NWgxMi41djEuNUgzLjc1di0xLjVaXCIsIFwiTTMuNzUgNWgxMi41djEuNUgzLjc1VjVaXCIsIFwiTTMuNzUgNmgxMi41djEuNzVIMy43NVY2WlwiLCBcIk0zLjc1IDcuNWgxMi41djEuNzVIMy43NVY3LjVaXCIsIFwiTTMuNzUgOWgxMi41djEuMjVIMy43NVY5WlwiLCBcIk0zLjc1IDEwaDEyLjV2MS4yNUgzLjc1VjEwWlwiLCBcIm0xMSA3LjUtNC00SDQuNXY4SDdsNC00WlwiLCBcIm05LjUgNy41LTQtNEgzdjhoMi41bDQtNFpcIiwgXCJtOCA3LjUtNC00aC0uNXY4SDRsNC00WlwiLCBcIm02LjUgNy41LTMtM3Y2bDMtM1pcIiwgXCJNNy41IDEySDR2NS41YS41LjUgMCAwIDEtMSAwdi0xNGMwLS4yOC4yMi0uNS41LS41aDEzYy4yOCAwIC41LjIyLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtOVptLS4yLThINHY3aDMuM2wzLjUtMy41TDcuMyA0Wm0xLjQgMCAzLjE1IDMuMTVjLjIuMi4yLjUgMCAuN0w4LjcxIDExSDE2VjRIOC43WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlUHJvZ3Jlc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQcm9ncmVzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCA0aDE2djIuNUg0VjRaXCIsIFwiTTQgNmgxNnYyLjVINFY2WlwiLCBcIk00IDhoMTZ2Mi41SDRWOFpcIiwgXCJNNCAxMGgxNnYyLjVINFYxMFpcIiwgXCJNNCAxMmgxNnYySDR2LTJaXCIsIFwiTTQgMTMuNWgxNnYxLjc1SDRWMTMuNVpcIiwgXCJNMTUgMTAgOSA0SDd2MTEuNWgyLjVMMTUgMTBaXCIsIFwibTEyLjUgMTAtNi02aC0ydjExLjVIN2w1LjUtNS41WlwiLCBcIk0xMCAxMCA0IDR2MTJsNi02WlwiLCBcIm03LjUgMTAtMy0zLS41IDMgLjUgMyAzLTNaXCIsIFwiTTEwIDNIMy43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE3LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjE2LjVoNmwuMDMuMDMuMDMtLjAzaDkuNjljLjQxIDAgLjc1LS4zNC43NS0uNzV2LTEyYS43NS43NSAwIDAgMC0uNzUtLjc1SDEwLjA2bC0uMDMtLjAzTDEwIDNabS0uNTYgMS41IDUuNSA1LjUtNSA1SDQuNVY0LjVoNC45NFptMi4xMiAwaDcuOTRWMTVoLTcuNDRsNC40Ny00LjQ3Yy4zLS4zLjMtLjc3IDAtMS4wNkwxMS41NiA0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFnUHJpZGVQcm9ncmVzczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYWdQcmlkZVByb2dyZXNzMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01IDRoMTh2Mi43NUg1VjRaXCIsIFwiTTUgNi41aDE4djIuMjVINVY2LjVaXCIsIFwiTTUgOC41aDE4djIuMjVINVY4LjVaXCIsIFwiTTUgMTAuNWgxOHYyLjI1SDVWMTAuNVpcIiwgXCJNNSAxMi41aDE4djIuMjVINVYxMi41WlwiLCBcIk01IDE0LjVoMThWMTdINXpcIiwgXCJNMTYgMTAuNSA5LjUgNGgtM3YxM2gzbDYuNS02LjVaXCIsIFwiTTEzLjUgMTAuNSA3IDRINC41djEzSDdsNi41LTYuNVpcIiwgXCJtMTEgMTAuNS02LTZ2MTJsNi02WlwiLCBcIm04LjUgMTAuNS0zLTMtLjUgMyAuNSAzIDMtM1pcIiwgXCJNNCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMTguNWMuNDEgMCAuNzUuMzQuNzUuNzV2MTMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDUuNXY2LjI1YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1Wm02IC43NUg1LjV2MTJIMTBsLS4wMy0uMDMgNS45Ny01Ljk3LTUuOTctNS45Ny4wMy0uMDNabTIuMDYgMCA1LjQ3IDUuNDdjLjMuMy4zLjc3IDAgMS4wNmwtNS40NyA1LjQ3SDIyLjV2LTEySDEyLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlUHJvZ3Jlc3MzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQcm9ncmVzczMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNSAxNmgyMnYzLjVINVYxNlpcIiwgXCJNNSAxM2gyMnY0SDV2LTRaXCIsIFwiTTUgMTFoMjJ2M0g1di0zWlwiLCBcIk01IDloMjJ2M0g1VjlaXCIsIFwiTTUgNmgyMnY0SDVWNlpcIiwgXCJNNSA0aDIydjNINVY0WlwiLCBcIk0xOC41IDEyIDExIDQuNUg4djE1aDNsNy41LTcuNVpcIiwgXCJNMTUgMTIgNy41IDQuNUg2djE1aDEuNUwxNSAxMlpcIiwgXCJtMTIuNSAxMi03LTd2MTRsNy03WlwiLCBcIk0xMCAxMiA2IDhsLS41IDQgLjUgNCA0LTRaXCIsIFwiTTUgM2ExIDEgMCAwIDAtMSAxdjI0YTEgMSAwIDEgMCAyIDB2LTdoMjFhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINVptNS41OSAxNkg2VjVoNC41OWw3IDctNyA3Wm0yLjgyIDAgNi4zLTYuM2ExIDEgMCAwIDAgMC0xLjRMMTMuNCA1SDI2djE0SDEzLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhZ1ByaWRlUHJvZ3Jlc3M0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFnUHJpZGVQcm9ncmVzczQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNOSA4aDMwdjQuNUg5elwiLCBcIk05IDEyaDMwdjQuNUg5elwiLCBcIk05IDE2aDMwdjMuNUg5elwiLCBcIk05IDE5aDMwdjQuNUg5elwiLCBcIk05IDIzaDMwdjQuNUg5elwiLCBcIk05IDI3aDMwdjRIOXpcIiwgXCJNMjUuNSAxOSAxNCA3LjVIOHYyNGg1TDI1LjUgMTlaXCIsIFwiTTIxLjUgMTkgMTAgNy41SDh2MjRoMUwyMS41IDE5WlwiLCBcIk0xOC41IDE5IDguNSA5djIwbDEwLTEwWlwiLCBcIm0xNS41IDE5LTctN3YxNGw3LTdaXCIsIFwiTTguMjUgNkM3LjU2IDYgNyA2LjU2IDcgNy4yNXYzMy41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMFYzM2gzMC4yNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWNy4yNUM0MSA2LjU2IDQwLjQ0IDYgMzkuNzUgNkg4LjI1Wm00Ljk4IDI0LjVIOS41di0yMmg0LjczTDI0LjczIDE5bC0xMS41IDExLjVabTMuNTQgMCAxMC42MS0xMC42MmMuNS0uNDguNS0xLjI4IDAtMS43NkwxNy43NyA4LjVIMzguNXYyMkgxNi43N1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2gxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTUuODcgMWExIDEgMCAwIDAtLjk2LjcxTDMuMDMgOC4wNGMtLjE0LjQ4LjIyLjk2LjcyLjk2aDEuNThsLTEuMjggNC4zOWMtLjM4IDEuMzEgMS4zMyAyLjIgMi4xOCAxLjEzbDYuNi04LjNBLjc1Ljc1IDAgMCAwIDEyLjI2IDVoLTIuMDNsMS0yLjY1QTEgMSAwIDAgMCAxMC4yNyAxaC00LjRaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuOTEgMS43MUExIDEgMCAwIDEgNS44NyAxaDQuNGExIDEgMCAwIDEgLjk0IDEuMzVMMTAuMjIgNWgyLjAzYy42MyAwIC45OC43My41OSAxLjIybC02LjYgOC4zYy0uODYgMS4wNy0yLjU3LjE4LTIuMTktMS4xM0w1LjMzIDlIMy43NWEuNzUuNzUgMCAwIDEtLjcyLS45Nkw0LjkxIDEuN1ptNS4zNy4yOWgtNC40bC0xLjggNkg2YS41LjUgMCAwIDEgLjQ4LjY0bC0xLjQ3IDUuMDNhLjIzLjIzIDAgMCAwIC4wMS4xN2MuMDIuMDUuMDYuMS4xMi4xMi4wNS4wMy4xMS4wNC4xNi4wMy4wNCAwIC4xLS4wMy4xNS0uMUwxMS43MyA2SDkuNWEuNS41IDAgMCAxLS40Ny0uNjhMMTAuMjggMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMjEgMmMtLjQ3IDAtLjg5LjMxLTEuMDIuNzdsLTIuMjUgNy44N2MtLjIuNjguMzIgMS4zNiAxLjAyIDEuMzZoMS4yN2wtMS4xNyA0LjY4Yy0uMjYgMS4wNSAxLjA0IDEuNzggMS44IDFsOC42Ny04Ljg2Yy42NS0uNjguMTktMS44Mi0uNzYtMS44MkgxMi4ybDEuMjYtMy42Yy4yMy0uNjktLjI4LTEuNC0xLTEuNEg3LjJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMiAyLjc3QzYuMzEgMi4zMSA2LjczIDIgNy4yIDJoNS4yNWMuNzMgMCAxLjI0LjcxIDEgMS40TDEyLjIyIDdoMi41NmMuOTUgMCAxLjQgMS4xNC43NyAxLjgxbC04LjY4IDguODZjLS43Ni43OS0yLjA2LjA2LTEuOC0xTDYuMjMgMTJINC45NmMtLjcgMC0xLjIxLS42OC0xLjAyLTEuMzZMNi4yIDIuNzdaTTcuMiAzYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuOTFhLjUuNSAwIDAgMSAuNDkuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgOC42OC04Ljg2YS4wNi4wNiAwIDAgMCAuMDEtLjAzdi0uMDVhLjA4LjA4IDAgMCAwLS4wMy0uMDNMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2gyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy40MyAyLjgzQzcuNiAyLjMzIDguMDcgMiA4LjYgMmg2LjQ2Yy44NSAwIDEuNDUuODQgMS4xOCAxLjY1TDE0LjggOGgzLjk2YzEuMSAwIDEuNjcgMS4zMy45IDIuMTJMOC41OSAyMS41NGMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTYtLjAxYy0xLjIxIDAtMi4wNS0xLjItMS42NS0yLjM0bDMuMzMtOS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNy40MyAyLjgzQzcuNiAyLjMzIDguMDcgMiA4LjYgMmg2LjQ2Yy44NSAwIDEuNDUuODQgMS4xOCAxLjY1TDE0LjggOGgzLjk2YzEuMSAwIDEuNjcgMS4zMy45IDIuMTJMOC41OSAyMS41NGMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTYtLjAxYy0xLjIxIDAtMi4wNS0xLjItMS42NS0yLjM0bDMuMzMtOS4zMlptMS4zNS42Ny0zLjI2IDkuMTZjLS4wNi4xNi4wNi4zMy4yMy4zM2wyLjUuMDFhLjc1Ljc1IDAgMCAxIC43My45MUw3LjUxIDIwLjUgMTguMTYgOS41aC00LjQxYS43NS43NSAwIDAgMS0uNzEtLjk5TDE0LjcgMy41SDguNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk04LjQgMi44NWMuMi0uNTEuNy0uODUgMS4yNS0uODVoOC41MWMuOTMgMCAxLjU4LjkyIDEuMjYgMS44bC0yLjEgNS43aDQuODRjMS4xOCAwIDEuNzggMS40Mi45NiAyLjI2TDkuNzggMjUuNWMtMS4xNCAxLjE4LTMuMS4xMi0yLjc1LTEuNDhMOC43IDE2LjVINS45MmExLjkyIDEuOTIgMCAwIDEtMS43OS0yLjZMOC40MSAyLjg0WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2gyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2gyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk04LjQgMi44NWMuMi0uNTEuNy0uODUgMS4yNS0uODVoOC41MWMuOTMgMCAxLjU4LjkyIDEuMjYgMS44bC0yLjEgNS43aDQuODRjMS4xOCAwIDEuNzggMS40Mi45NiAyLjI2TDkuNzggMjUuNWMtMS4xNCAxLjE4LTMuMS4xMi0yLjc1LTEuNDhMOC43IDE2LjVINS45MmExLjkyIDEuOTIgMCAwIDEtMS43OS0yLjZMOC40MSAyLjg0Wm0xLjM2LjY1TDUuNTMgMTQuNDNjLS4xLjI4LjEuNTcuMzkuNTdoMy43YS43NS43NSAwIDAgMSAuNzQuOTFMOC41IDI0LjM0di4wOWwuMDYuMDVjLjAzLjAyLjA2LjAyLjA4LjAyLjAxIDAgLjAzIDAgLjA3LS4wNEwyMS43NyAxMWgtNS41MmEuNzUuNzUgMCAwIDEtLjctMWwyLjM4LTYuNUg5Ljc2WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2gzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTIgMmEyIDIgMCAwIDAtMS45IDEuMzdsLTQgMTJBMiAyIDAgMCAwIDggMThoMi40MmwtMi4zIDguODJjLS42NiAyLjYgMi42NSA0LjI5IDQuMzUgMi4yM2wxMy4wNy0xNS43N0EyIDIgMCAwIDAgMjQgMTBoLTMuMTFsMS45OC01LjNBMiAyIDAgMCAwIDIxIDJoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaDMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2gzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTAuMSAzLjM3QTIgMiAwIDAgMSAxMiAyaDlhMiAyIDAgMCAxIDEuODUgMi43NEwyMC43NSAxMGgzLjUxYzEuNDggMCAyLjMgMS43MiAxLjM1IDIuODZMMTIuMTcgMjkuMTRhMi4zNiAyLjM2IDAgMCAxLTQuMS0yLjFMMTAuNDYgMThIOGEyIDIgMCAwIDEtMS45LTIuNjNsNC0xMlpNMTIgM2ExIDEgMCAwIDAtLjk1LjY4bC00IDEyQTEgMSAwIDAgMCA4IDE3aDMuMWEuNS41IDAgMCAxIC40OC42M0w5LjA0IDI3LjNhMS4zNiAxLjM2IDAgMCAwIDIuMzYgMS4ybDEzLjQ0LTE2LjI3YS43NS43NSAwIDAgMC0uNTgtMS4yM2gtNC4yNWEuNS41IDAgMCAxLS40Ni0uNjlsMi4zNy01Ljk0QTEgMSAwIDAgMCAyMSAzaC05WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2gzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2gzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMC4xIDMuMzdBMiAyIDAgMCAxIDEyIDJoOWEyIDIgMCAwIDEgMS44NyAyLjdMMjAuOSAxMEgyNGEyIDIgMCAwIDEgMS41NCAzLjI4TDEyLjQ3IDI5LjA1Yy0xLjcgMi4wNi01LjAxLjM2LTQuMzQtMi4yM0wxMC40MiAxOEg4YTIgMiAwIDAgMS0xLjktMi42M2w0LTEyWk0xMiA0IDggMTZoMy43YTEgMSAwIDAgMSAuOTggMS4yNWwtMi42MiAxMC4wOGMtLjEzLjUxLjUzLjg1Ljg3LjQ0TDI0IDEyaC00LjU2YTEgMSAwIDAgMS0uOTMtMS4zNUwyMSA0aC05WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWwyLjIxLTIuMjdhNS41IDUuNSAwIDAgMSA2LjIyLTYuMzVsLjI0LS4yNGMuNjUtLjY4LjE5LTEuODItLjc2LTEuODJoLTIuNTZsMS4yNi0zLjZjLjIzLS42OS0uMjgtMS40LTEtMS40SDcuMlpNMTcgMTguMjRhNC41IDQuNSAwIDEgMS01LTcuNDggNC41IDQuNSAwIDAgMSA1IDcuNDhabS0yLjE1LTYuMWEuNS41IDAgMCAwLS44NS4zNlYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNWEuNS41IDAgMCAwLS4xNS0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaEFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaEFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMiAyLjc3QzYuMzEgMi4zMSA2LjczIDIgNy4yIDJoNS4yNWMuNzMgMCAxLjI0LjcxIDEuMDEgMS40TDEyLjIgN2gyLjU2Yy45NSAwIDEuNCAxLjE0Ljc3IDEuODFsLS4yNC4yNWE1LjU0IDUuNTQgMCAwIDAtMS4zOC0uMDNsLjktLjkxYS4wNi4wNiAwIDAgMCAuMDEtLjAzdi0uMDVhLjA4LjA4IDAgMCAwLS4wMy0uMDNMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuOTFhLjUuNSAwIDAgMSAuNDkuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgMi44OC0yLjk0YTUuNTggNS41OCAwIDAgMCAuMDUgMS4zN2wtMi4yMSAyLjI2Yy0uNzYuNzktMi4wNi4wNi0xLjgtMUw2LjIzIDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2TDYuMiAyLjc3Wk0xNyAxOC4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41YS41LjUgMCAwIDAtLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoQXV0bzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoQXV0bzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWw0LjgyLTQuOTMgMS40Mi0zLjc4YTEuNSAxLjUgMCAwIDEgMi42LS4zN2MuMzgtLjY4LS4wOC0xLjYtLjkzLTEuNkgxMi4ybDEuMjYtMy42Yy4yMy0uNjktLjI4LTEuNC0xLTEuNEg3LjJabTcuMjkgN2MuMiAwIC40LjEzLjQ3LjMybDMgOGEuNS41IDAgMSAxLS45NC4zNmwtMS0yLjY4aC0zLjA2bC0xIDIuNjhhLjUuNSAwIDAgMS0uOTQtLjM2bDMtOEEuNS41IDAgMCAxIDE0LjUgOVptMS4xNSA1LTEuMTUtMy4wOEwxMy4zNSAxNGgyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaEF1dG8yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hBdXRvMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi4yIDIuNzdDNi4zMSAyLjMxIDYuNzMgMiA3LjIgMmg1LjI1Yy43MyAwIDEuMjQuNzEgMSAxLjRMMTIuMjIgN2gyLjU2Yy44NSAwIDEuMy45Mi45MyAxLjZhMS41IDEuNSAwIDAgMC0uODgtLjU3LjA3LjA3IDAgMCAwLS4wMi0uMDJMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuOTFhLjUuNSAwIDAgMSAuNDkuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgNi40LTYuNTUtLjg2IDIuMzItNC44MiA0LjkyYy0uNzYuNzktMi4wNi4wNi0xLjgtMUw2LjIzIDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2TDYuMiAyLjc3Wk0xNC41IDljLjIgMCAuNC4xMy40Ny4zMmwzIDhhLjUuNSAwIDEgMS0uOTQuMzZsLTEtMi42OGgtMy4wNmwtMSAyLjY4YS41LjUgMCAwIDEtLjk0LS4zNmwzLThBLjUuNSAwIDAgMSAxNC41IDlabTEuMTUgNS0xLjE1LTMuMDhMMTMuMzUgMTRoMi4zWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hBdXRvMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hBdXRvMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk03LjQzIDIuODNDNy42IDIuMzMgOC4wNyAyIDguNiAyaDYuNDZjLjg1IDAgMS40NS44NCAxLjE4IDEuNjVMMTQuOCA4aDMuOTZjMS4xIDAgMS42NyAxLjMzLjkgMi4xMmwtLjY3LjdhMS43NSAxLjc1IDAgMCAwLTMuMTEuMjlsLTEuOTQgNC45MS01LjM0IDUuNTJjLTEuMDYgMS4wOC0yLjg4LjEtMi41NS0xLjM4bDEuMjctNS42Ni0xLjU2LS4wMWMtMS4yMSAwLTIuMDUtMS4yLTEuNjUtMi4zNGwzLjMzLTkuMzJabTEwLjc2IDguNjQgMy43NSA5LjVhLjc1Ljc1IDAgMCAxLTEuMzUuNjRsLS4wNC0uMDktMS0yLjUyaC00LjExbC0xIDIuNTJhLjc1Ljc1IDAgMCAxLS44Ny40NWwtLjEtLjAzYS43NS43NSAwIDAgMS0uNDUtLjg3bC4wMy0uMSAzLjc1LTkuNWEuNzMuNzMgMCAwIDEgLjQ1LS40My43Ny43NyAwIDAgMSAuNTQuMDJjLjE0LjA2LjI3LjE2LjM1LjNsLjA1LjExWm0tMi4xNiA2LjAzaDIuOTNsLTEuNDYtMy43LTEuNDcgMy43WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hBdXRvMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoQXV0bzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcuNDIgMi44M0M3LjYgMi4zMyA4LjA3IDIgOC42IDJoNi40NmMuODUgMCAxLjQ1Ljg0IDEuMTggMS42NUwxNC44IDhoMy45NmMxLjEgMCAxLjY2IDEuMzMuOSAyLjEybC0uNjcuN2MtLjMtLjUtLjgtLjc2LTEuMzItLjgxbC41LS41MWgtNC40MWEuNzUuNzUgMCAwIDEtLjcxLS45OUwxNC43IDMuNUg4Ljc4bC0zLjI2IDkuMTZjLS4wNi4xNi4wNi4zMy4yMy4zM2wyLjUuMDFhLjc1Ljc1IDAgMCAxIC43My45MUw3LjUxIDIwLjVsNy44Ni04LjEtMS40NCAzLjYzLTUuMzQgNS41MmMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTctLjAxYy0xLjIgMC0yLjA0LTEuMi0xLjY0LTIuMzRsMy4zMi05LjMyWm0xMC43NyA4LjY0IDMuNzUgOS41YS43NS43NSAwIDAgMS0xLjM1LjY0bC0uMDQtLjA5LTEtMi41MmgtNC4xbC0xIDIuNTJhLjc1Ljc1IDAgMCAxLS44OC40NWwtLjEtLjAzYS43NS43NSAwIDAgMS0uNDUtLjg3bC4wMy0uMSAzLjc1LTkuNWEuNzMuNzMgMCAwIDEgLjQ1LS40My43Ny43NyAwIDAgMSAuNTUuMDJjLjE0LjA2LjI2LjE2LjM0LjNsLjA1LjExWm0tMi4xNiA2LjAzaDIuOTNsLTEuNDYtMy43LTEuNDcgMy43WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hDaGVja21hcmsxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaENoZWNrbWFyazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy44NyAxYTEgMSAwIDAgMC0uOTUuNzFMMS4wMyA4LjA0Yy0uMTQuNDguMjIuOTYuNzIuOTZoMS41OGwtMS4yOCA0LjM5Yy0uMzggMS4zMSAxLjMzIDIuMiAyLjE4IDEuMTNsMS4zLTEuNjRBNS41IDUuNSAwIDAgMSAxMC4yNSA1SDguMjNsMS0yLjY1QTEgMSAwIDAgMCA4LjI4IDFoLTQuNFpNMTUgMTAuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuODUtMS44NUw5LjUgMTEuMjlsLS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaENoZWNrbWFyazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaENoZWNrbWFyazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuOTEgMS43MUExIDEgMCAwIDEgMy44NyAxaDQuNGExIDEgMCAwIDEgLjk0IDEuMzVMOC4yMSA1aDIuMDRhNS40NyA1LjQ3IDAgMCAwLTIuODguOTguNS41IDAgMCAxLS4zNC0uNjZMOC4yNyAyaC00LjRMMi4wOCA4SDRhLjUuNSAwIDAgMSAuNDguNjRMMyAxMy42N2EuMjMuMjMgMCAwIDAgMCAuMTdjLjAzLjA1LjA3LjEuMTIuMTIuMDYuMDMuMTIuMDQuMTcuMDMuMDQgMCAuMS0uMDMuMTQtLjFsMS43LTIuMTNjLjEuMzkuMjMuNzYuNCAxLjExbC0xLjMxIDEuNjVjLS44NiAxLjA3LTIuNTYuMTgtMi4xOC0xLjEzTDMuMzMgOUgxLjc1YS43NS43NSAwIDAgMS0uNzItLjk2TDIuOSAxLjdaTTE1IDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjg1LTEuODVMOS41IDExLjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwLS43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hDaGVja21hcmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaENoZWNrbWFyazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWwyLjIxLTIuMjdhNS41IDUuNSAwIDAgMSA2LjIyLTYuMzVsLjI0LS4yNGMuNjUtLjY4LjE4LTEuODItLjc2LTEuODJIMTIuMmwxLjI3LTMuNmMuMjMtLjY5LS4yOC0xLjQtMS4wMS0xLjRINy4yMVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaENoZWNrbWFyazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaENoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMTkgMi43N2MuMTMtLjQ2LjU1LS43NyAxLjAyLS43N2g1LjI1Yy43MyAwIDEuMjQuNzEgMSAxLjRMMTIuMiA3aDIuNTdjLjk0IDAgMS40IDEuMTQuNzYgMS44MWwtLjI0LjI1YTUuNTUgNS41NSAwIDAgMC0xLjM3LS4wM2wuOS0uOTFhLjA2LjA2IDAgMCAwIC4wMS0uMDN2LS4wNWEuMDguMDggMCAwIDAtLjAzLS4wM0wxNC43NyA4SDExLjVhLjUuNSAwIDAgMS0uNDctLjY3bDEuNDktNC4yNWEuMDYuMDYgMCAwIDAtLjA2LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYy0uMDEuMDQuMDIuMDguMDYuMDhoMS45YS41LjUgMCAwIDEgLjUuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMi0uMDIgMi44OS0yLjk1YTUuNTcgNS41NyAwIDAgMCAuMDUgMS4zOGwtMi4yMiAyLjI2Yy0uNzUuNzktMi4wNS4wNi0xLjgtMUw2LjI0IDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2bDIuMjUtNy44N1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaENoZWNrbWFyazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoQ2hlY2ttYXJrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk03LjQyIDIuODNDNy42IDIuMzMgOC4wNyAyIDguNiAyaDYuNDZjLjg1IDAgMS40NS44NCAxLjE4IDEuNjVMMTQuOCA4aDMuOTZjMS4xIDAgMS42NiAxLjMzLjkgMi4xMmwtLjk2Ljk5YTYuNSA2LjUgMCAwIDAtNy41NCA3Ljc4bC0yLjU2IDIuNjVjLTEuMDYgMS4wOC0yLjg4LjEtMi41NS0xLjM4bDEuMjctNS42Ni0xLjU3LS4wMWMtMS4yIDAtMi4wNC0xLjItMS42NC0yLjM0bDMuMzItOS4zMlpNMjMgMTcuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWm0tMi4xNS0yLjM1Yy4yLjIuMi41IDAgLjdsLTQgNGEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIC43LS43bDEuNjUgMS42NCAzLjY1LTMuNjRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaENoZWNrbWFyazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaENoZWNrbWFyazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcuNDIgMi44M0M3LjYgMi4zMyA4LjA3IDIgOC42IDJoNi40NmMuODUgMCAxLjQ1Ljg0IDEuMTggMS42NUwxNC44IDhoMy45NmMxLjEgMCAxLjY2IDEuMzMuOSAyLjEybC0uOTYuOTlhNi41MyA2LjUzIDAgMCAwLTIuMDQtLjA2bDEuNS0xLjU1aC00LjRhLjc1Ljc1IDAgMCAxLS43MS0uOTlMMTQuNyAzLjVIOC43OGwtMy4yNiA5LjE2Yy0uMDYuMTYuMDYuMzMuMjMuMzNsMi41LjAxYS43NS43NSAwIDAgMSAuNzMuOTFMNy41MSAyMC41bDMuNTItMy42M2E2LjU3IDYuNTcgMCAwIDAgLjEyIDIuMDNsLTIuNTYgMi42NWMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTctLjAxYy0xLjIgMC0yLjA0LTEuMi0xLjY0LTIuMzRsMy4zMi05LjMyWk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwbC0zLjY1IDMuNjQtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaENoZWNrbWFyazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoQ2hlY2ttYXJrMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk04LjQgMi44NWMuMi0uNTEuNy0uODUgMS4yNS0uODVoOC41MmMuOTIgMCAxLjU3LjkyIDEuMjUgMS44bC0yLjEgNS43aDQuODRjMS4xOCAwIDEuNzggMS40Mi45NiAyLjI2bC0xLjMxIDEuMzVhNy41IDcuNSAwIDAgMC04LjY1IDguOTJMOS43OSAyNS41Yy0xLjE0IDEuMTgtMy4xMS4xMi0yLjc2LTEuNDhMOC43IDE2LjVINS45MmExLjkyIDEuOTIgMCAwIDEtMS43OS0yLjZMOC40MSAyLjg0Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS0yLjY1LTIuODVhLjUuNSAwIDAgMC0uNyAwTDE5IDIyLjI5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoQ2hlY2ttYXJrMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoQ2hlY2ttYXJrMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNOC40IDIuODVjLjItLjUxLjctLjg1IDEuMjUtLjg1aDguNTJjLjkyIDAgMS41Ny45MiAxLjI1IDEuOGwtMi4xIDUuN2g0Ljg0YzEuMTggMCAxLjc4IDEuNDIuOTYgMi4yNmwtMS4zMSAxLjM1YTcuNTUgNy41NSAwIDAgMC0yLjAxLS4wOEwyMS43NyAxMWgtNS41MmEuNzUuNzUgMCAwIDEtLjctMWwyLjM4LTYuNUg5Ljc2TDUuNTMgMTQuNDNjLS4xLjI4LjEuNTcuMzkuNTdoMy43YS43NS43NSAwIDAgMSAuNzQuOTFMOC41IDI0LjM0di4wOWwuMDYuMDVjLjAzLjAyLjA2LjAyLjA4LjAyLjAxIDAgLjAzIDAgLjA3LS4wNGw0LjMtNC40NGE3LjYgNy42IDAgMCAwIC4xNSAyLjAxTDkuNzggMjUuNWMtMS4xNCAxLjE4LTMuMS4xMi0yLjc1LTEuNDhMOC43IDE2LjVINS45MmExLjkyIDEuOTIgMCAwIDEtMS43OS0yLjZMOC40MSAyLjg0Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS0yLjY1LTIuODVhLjUuNSAwIDAgMC0uNyAwTDE5IDIyLjI5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoRmxvdzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoRmxvdzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC45MSAxLjdhMSAxIDAgMCAxIC45Ni0uNzJoNC40YTEgMSAwIDAgMSAuOTQgMS4zNWwtLjk5IDIuNjVoMi4wM2MuNjMgMCAuOTguNzMuNTkgMS4yMmwtMS4yNyAxLjU5LS4yMy0uNDZhMi41NyAyLjU3IDAgMCAwLTEuOC0xLjI5aC0uMDFhMi41IDIuNSAwIDEgMC0uNDggMy40MmwuMS4yMS4wMi4wMi4zNC42OS0zLjI4IDQuMTJjLS44NSAxLjA3LTIuNTYuMTktMi4xOC0xLjEzbDEuMjgtNC4zOUgzLjc1YS43NS43NSAwIDAgMS0uNzItLjk2TDQuOTEgMS43Wm00IDUuM2ExLjUgMS41IDAgMSAwIDAgLjk5Yy4xIDAgLjE4IDAgLjI4LjAyLjEzLjAyLjI1LjA4LjM4LjI1bC45OCAxLjk2YTEuNTcgMS41NyAwIDAgMCAxLjA4Ljc1Yy4xNS4wMy4zMS4wNC40Ni4wNGExLjUgMS41IDAgMSAwIDAtMWMtLjEgMC0uMTggMC0uMjgtLjAyYS41Ny41NyAwIDAgMS0uMzgtLjI1bC0uOTgtMS45NmExLjU4IDEuNTggMCAwIDAtMS4wOC0uNzUgMi42IDIuNiAwIDAgMC0uNDYtLjA0Wk03LjUgN2EuNS41IDAgMSAxIDAgMSAuNS41IDAgMCAxIDAtMVptNiAzYS41LjUgMCAxIDEgMCAxIC41LjUgMCAwIDEgMC0xWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hGbG93MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoRmxvdzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuOTEgMS43MUExIDEgMCAwIDEgNS44NyAxaDQuNGExIDEgMCAwIDEgLjk0IDEuMzVMMTAuMjIgNWgyLjAzYy42MyAwIC45OC43My41OSAxLjIyTDExLjU4IDcuOGwtLjI0LS40N2EyLjk0IDIuOTQgMCAwIDAtLjMxLS40NWwuNy0uODhIOS41YTIuNTEgMi41MSAwIDAgMC0uNS0uNS41LjUgMCAwIDEgLjAzLS4xOEwxMC4yOCAyaC00LjRsLTEuOCA2aC45N2EyLjUgMi41IDAgMCAwIDEuMTQgMS42M2wtMS4xOCA0LjA0YS4yMy4yMyAwIDAgMCAwIC4xN2MuMDMuMDUuMDcuMS4xMy4xMi4wNS4wMy4xMS4wNC4xNi4wMy4wNCAwIC4xLS4wMy4xNS0uMWwzLjQzLTQuMy4xNy0uMTMuMS4yMS4wMi4wMi4zNS43LTMuMjkgNC4xM2MtLjg1IDEuMDctMi41Ni4xOC0yLjE4LTEuMTNMNS4zMyA5SDMuNzVhLjc1Ljc1IDAgMCAxLS43Mi0uOTZMNC45MSAxLjdaTTcuNSA2Yy42NSAwIDEuMi40MSAxLjQxIDEgLjE1IDAgLjMgMCAuNDYuMDNhMS41OCAxLjU4IDAgMCAxIDEuMDguNzVsLjk4IDEuOTZjLjEzLjE3LjI1LjIzLjM4LjI1LjEuMDIuMTguMDIuMjcuMDJhMS41IDEuNSAwIDEgMSAwIDFjLS4xNCAwLS4zIDAtLjQ1LS4wNGExLjU4IDEuNTggMCAwIDEtMS4wOC0uNzVsLS45OC0xLjk2QS41Ny41NyAwIDAgMCA5LjE5IDhjLS4xLS4wMi0uMTgtLjAyLS4yNy0uMDJBMS41IDEuNSAwIDEgMSA3LjUgNlpNOCA3LjVhLjUuNSAwIDEgMC0xIDAgLjUuNSAwIDAgMCAxIDBabTYgM2EuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoRmxvdzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoRmxvdzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWw0LjgxLTQuOTItLjI1LS43NmgtLjE4YTMgMyAwIDEgMSAuNTktM0EyLjUgMi41IDAgMCAxIDE0IDEwLjM3bDEuNTItMS41NWMuNjUtLjY4LjE5LTEuODItLjc2LTEuODJoLTIuNTZsMS4yNi0zLjZjLjIzLS42OS0uMjgtMS40LTEtMS40SDcuMlptMTAuNzIgMTMuNzdBMi4wMSAyLjAxIDAgMCAwIDE5IDE0YTIgMiAwIDAgMC0zLjczLTFoLTEuMDVhLjUuNSAwIDAgMS0uNDctLjM0bC0uNTUtMS42M0ExLjUgMS41IDAgMCAwIDExLjc4IDEwSDExYTIgMiAwIDEgMC0uMjcgMWgxLjA1Yy4yMSAwIC40LjE0LjQ3LjM0bC41NSAxLjYzVjEzYTEuNSAxLjUgMCAwIDAgMS40MiAxSDE1YTIgMiAwIDAgMCAyLjkzIDEuNzdabS0uNDQtLjlhMSAxIDAgMCAxLTEuNDktLjg2VjE0YTEgMSAwIDAgMSAyLS4wMVYxNGExIDEgMCAwIDEtLjUxLjg3Wk0xMCAxMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaEZsb3cyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hGbG93MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi4yIDIuNzdDNi4zMSAyLjMxIDYuNzMgMiA3LjIgMmg1LjI1Yy43MyAwIDEuMjQuNzEgMS4wMSAxLjRMMTIuMiA3aDIuNTZjLjk1IDAgMS40IDEuMTQuNzcgMS44MUwxNCAxMC4zOGEyLjUgMi41IDAgMCAwLS42My0uNzlsMS40NC0xLjQ2YS4wNi4wNiAwIDAgMCAuMDEtLjAzdi0uMDVhLjA4LjA4IDAgMCAwLS4wMy0uMDNMMTQuNzcgOEgxMS41YS41LjUgMCAwIDEtLjQ3LS42N2wxLjUtNC4yNWEuMDYuMDYgMCAwIDAtLjA3LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYzAgLjA0LjAyLjA4LjA2LjA4aDEuMjFhMyAzIDAgMCAwIDEgMS4zOGwtMS4xNCA0LjU0di4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMy0uMDIgNC4yLTQuM2MuMzQtLjE3LjY1LS40LjktLjY4aC4xOGwuMjUuNzYtNC44MSA0LjkxYy0uNzYuNzktMi4wNi4wNi0xLjgtMUw2LjIzIDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2TDYuMiAyLjc3Wm0xMi41MiAxMi4yNUEyLjAxIDIuMDEgMCAwIDEgMTcgMTZhMiAyIDAgMCAxLTItMmgtLjc4YTEuNSAxLjUgMCAwIDEtMS40MS0xbC0uMDEtLjAzLS41NS0xLjYzYS41LjUgMCAwIDAtLjQ3LS4zNGgtMS4wNWEyIDIgMCAxIDEgLjI3LTFoLjc4Yy42NCAwIDEuMjIuNDEgMS40MiAxLjAzbC41NSAxLjYzYy4wNi4yLjI2LjM0LjQ3LjM0aDEuMDVhMiAyIDAgMSAxIDMuNDUgMi4wMlpNMTcgMTVhMSAxIDAgMCAwIDEtMXYtLjA1YTEgMSAwIDAgMC0yIC4wNXYuMDJhMSAxIDAgMCAwIDEgLjk4Wm0tOC00YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoRmxvdzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoRmxvdzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy40MyAyLjgzIDQuMSAxMi4xNWExLjc1IDEuNzUgMCAwIDAgMS42NSAyLjM0aDEuNTdsLTEuMjcgNS42N2MtLjMzIDEuNDggMS40OCAyLjQ2IDIuNTQgMS4zOGw1LjAyLTUuMTlhODUuMTUgODUuMTUgMCAwIDAtLjU1LTIuMTIgMy43NCAzLjc0IDAgMCAxLTYuNTYtMi40OCAzLjc1IDMuNzUgMCAwIDEgNy4yLTEuNDdjLjQyLjA2Ljg3LjIyIDEuMjkuNTEuNTUuNC45My45NyAxLjE1IDEuNi4xLjI3LjIxLjYzLjMyIDEuMDFsMy4xOS0zLjI4Yy43Ny0uOC4yLTIuMTItLjktMi4xMmgtMy45NmwxLjQ1LTQuMzVjLjI3LS44MS0uMzMtMS42NS0xLjE4LTEuNjVIOC42Yy0uNTMgMC0xIC4zMy0xLjE3LjgzWm00LjA3IDguOTJhMS4yNSAxLjI1IDAgMSAwLTIuNSAwIDEuMjUgMS4yNSAwIDAgMCAyLjUgMFptMS4zMSAxYTIuNzUgMi43NSAwIDEgMSAuMTQtMS41aC4zYy4zOCAwIC43OS4xIDEuMTUuMzYuMzcuMjYuNjQuNjQuOCAxLjEzLjIuNDguNDUgMS40Ni42NSAyLjI3YTg5LjU4IDg5LjU4IDAgMCAxIC4zNSAxLjQ0bC4wMi4xYy4wOC4yMi4xOC4zMi4yNS4zNy4wNy4wNS4xNi4wOC4yOC4wOGguNzZhMi43NSAyLjc1IDAgMSAxIC4yOSAxLjVoLTEuMDVjLS4zOCAwLS43OS0uMS0xLjE1LS4zNmEyLjI1IDIuMjUgMCAwIDEtLjgzLTEuMjJ2LS4wM2wtLjAzLS4xYTg4LjUxIDg4LjUxIDAgMCAwLS4zNC0xLjQyIDIyLjUzIDIyLjUzIDAgMCAwLS42MS0yLjEzYy0uMDktLjI2LS4xOS0uMzYtLjI2LS40MWEuNDcuNDcgMCAwIDAtLjI4LS4wOGgtLjQ0Wm03LjQ0IDUuNzVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoRmxvdzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaEZsb3cyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03LjQzIDIuODNDNy42IDIuMzMgOC4wNyAyIDguNiAyaDYuNDZjLjg1IDAgMS40NS44NCAxLjE4IDEuNjVMMTQuOCA4aDMuOTZjMS4xIDAgMS42NyAxLjMzLjkgMi4xMmwtMy4xOCAzLjI5YTEyLjQxIDEyLjQxIDAgMCAwLS41Ny0xLjU3bDIuMjYtMi4zNGgtNC40YS43NS43NSAwIDAgMS0uNzItLjk5TDE0LjcgMy41SDguNzhsLTMuMjYgOS4xNmMtLjA2LjE2LjA2LjMzLjIzLjMzaC45NmEzLjc2IDMuNzYgMCAwIDAgMiAyLjE4bC0xLjIgNS4zMiA1LjY3LTUuODVhNTIuMjggNTIuMjggMCAwIDEgLjQzIDEuNzFsLTUuMDIgNS4xOWMtMS4wNiAxLjA4LTIuODcuMS0yLjU0LTEuMzhsMS4yNy01LjY2LTEuNTctLjAxYy0xLjIxIDAtMi4wNS0xLjItMS42NS0yLjM0bDMuMzMtOS4zMlptNS4zOCA5LjkyYTIuNzUgMi43NSAwIDEgMSAuMTQtMS41aC4zYy4zOCAwIC43OS4xIDEuMTUuMzYuMzcuMjYuNjQuNjQuOCAxLjEzLjIuNDguNDUgMS40Ni42NSAyLjI3YTg5LjU4IDg5LjU4IDAgMCAxIC4zNSAxLjQ0bC4wMi4xYy4wOC4yMi4xOC4zMi4yNS4zNy4wNy4wNS4xNi4wOC4yOC4wOGguNzZhMi43NSAyLjc1IDAgMSAxIC4yOSAxLjVoLTEuMDVjLS4zOCAwLS43OS0uMS0xLjE1LS4zNmEyLjI1IDIuMjUgMCAwIDEtLjgzLTEuMjJ2LS4wM2wtLjAzLS4xYTg4LjUxIDg4LjUxIDAgMCAwLS4zNC0xLjQyIDIyLjUzIDIyLjUzIDAgMCAwLS42MS0yLjEzYy0uMDktLjI2LS4xOS0uMzYtLjI2LS40MWEuNDcuNDcgMCAwIDAtLjI4LS4wOGgtLjQ0Wm0tMS4zMS0xYTEuMjUgMS4yNSAwIDEgMC0yLjUgMCAxLjI1IDEuMjUgMCAwIDAgMi41IDBabTguNzUgNi43NWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaE9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTEuODYgMTIuNTYgNS4yOSA1LjNhLjUuNSAwIDAgMCAuNy0uNzFsLTE1LTE1YS41LjUgMCAxIDAtLjcuN2wzLjEyIDMuMTMtMS4zMyA0LjY2Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWw1LTUuMTJabTMuNjctMy43NC0yLjI3IDIuMzJMNS45IDMuNzhsLjI5LTFDNi4zMiAyLjMgNi43NCAyIDcuMjEgMmg1LjI1Yy43MyAwIDEuMjQuNzEgMSAxLjRMMTIuMiA3aDIuNTdjLjk0IDAgMS40IDEuMTQuNzYgMS44MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS4yNyA1Ljk4IDIuMTUgMi44NWEuNS41IDAgMSAxIC43LS43bDE1IDE1YS41LjUgMCAwIDEtLjcuN2wtNS4zLTUuMjktNSA1LjExYy0uNzUuNzktMi4wNS4wNi0xLjgtMUw2LjI0IDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2bDEuMzMtNC42NlptNS44OCA1Ljg4TDYuMDggNi43OSA0LjkgMTAuOTJjLS4wMS4wNC4wMi4wOC4wNi4wOGgxLjlhLjUuNSAwIDAgMSAuNS42MmwtMS4zMyA1LjN2LjA0bC4wMy4wMy4wNC4wMWguMDFsLjAyLS4wMiA1LjAyLTUuMTJabTMuNjYtMy43NC0yLjI2IDIuMy43LjcyIDIuMjgtMi4zMmMuNjUtLjY4LjE4LTEuODItLjc2LTEuODJIMTIuMmwxLjI3LTMuNmMuMjMtLjY5LS4yOC0xLjQtMS4wMS0xLjRINy4yMWMtLjQ3IDAtLjg5LjMxLTEuMDIuNzdMNS45IDMuNzhsLjgxLjguNDQtMS41M2MwLS4wMy4wMy0uMDUuMDYtLjA1aDUuMjVjLjA0IDAgLjA3LjA0LjA2LjA4bC0xLjUgNC4yNWEuNS41IDAgMCAwIC40OC42N2gzLjNsLjAyLjA0LjAxLjA1LS4wMi4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE0LjQ0IDE1LjUgNi4yOCA2LjI4YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZMNS45NCA3IDQuMSAxMi4xNWExLjc1IDEuNzUgMCAwIDAgMS42NCAyLjM0aDEuNTdsLTEuMjcgNS42N2MtLjMzIDEuNDggMS41IDIuNDYgMi41NSAxLjM4bDUuODUtNi4wNFptNS4yLTUuMzgtMy4xMiAzLjIyLTkuNDctOS40Ny4zNy0xLjA0QzcuNiAyLjMzIDguMDcgMiA4LjYgMmg2LjQ2Yy44NSAwIDEuNDUuODQgMS4xOCAxLjY1TDE0LjggOGgzLjk2YzEuMSAwIDEuNjYgMS4zMy45IDIuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaE9mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuOTQgNyAyLjIyIDMuMjhhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwxOC41IDE4LjVhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtNi4yOC02LjI4LTUuODUgNi4wNGMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTctLjAxYy0xLjIgMC0yLjA0LTEuMi0xLjY0LTIuMzRMNS45NCA3Wm03LjQ0IDcuNDRMNy4xIDguMTdsLTEuNiA0LjQ5Yy0uMDUuMTYuMDcuMzMuMjQuMzNsMi41LjAxYS43NS43NSAwIDAgMSAuNzMuOTFMNy41MSAyMC41bDUuODctNi4wNVptNC43OC00Ljk0LTIuNyAyLjc4IDEuMDYgMS4wNiAzLjEzLTMuMjJjLjc2LS44LjItMi4xMi0uOS0yLjEyaC0zLjk2bDEuNDUtNC4zNWMuMjctLjgxLS4zMy0xLjY1LTEuMTgtMS42NUg4LjZjLS41MyAwLTEgLjMzLTEuMTguODNsLS4zNyAxLjA0IDEuMTggMS4xOC41NS0xLjU1aDUuOTNsLTEuNjcgNS4wMWEuNzUuNzUgMCAwIDAgLjcuOTloNC40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoUGxheTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoUGxheTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy4yMSAyYy0uNDcgMC0uODkuMzEtMS4wMi43N2wtMi4yNSA3Ljg3Yy0uMi42OC4zMiAxLjM2IDEuMDIgMS4zNmgxLjI3bC0xLjE3IDQuNjhjLS4yNiAxLjA1IDEuMDQgMS43OCAxLjggMWwyLjIxLTIuMjdhNS41IDUuNSAwIDAgMSA2LjIyLTYuMzVsLjI0LS4yNGMuNjUtLjY4LjE5LTEuODItLjc2LTEuODJoLTIuNTZsMS4yNi0zLjZjLjIzLS42OS0uMjgtMS40LTEtMS40SDcuMlpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMjktLjQ0LTIuOTctMS42NWEuNS41IDAgMCAwLS43NC40NHYzLjNjMCAuMzguNDEuNjIuNzQuNDRsMi45Ny0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFBsYXkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hQbGF5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi4yIDIuNzdDNi4zMSAyLjMxIDYuNzMgMiA3LjIgMmg1LjI1Yy43MyAwIDEuMjQuNzEgMS4wMSAxLjRMMTIuMiA3aDIuNTZjLjk1IDAgMS40IDEuMTQuNzcgMS44MWwtLjI0LjI1YTUuNTQgNS41NCAwIDAgMC0xLjM4LS4wM2wuOS0uOTFhLjA2LjA2IDAgMCAwIC4wMS0uMDN2LS4wNWEuMDguMDggMCAwIDAtLjAzLS4wM0wxNC43NyA4SDExLjVhLjUuNSAwIDAgMS0uNDctLjY3bDEuNS00LjI1YS4wNi4wNiAwIDAgMC0uMDctLjA4SDcuMjFhLjA2LjA2IDAgMCAwLS4wNi4wNUw0LjkgMTAuOTJjMCAuMDQuMDIuMDguMDYuMDhoMS45MWEuNS41IDAgMCAxIC40OS42MmwtMS4zMyA1LjN2LjA0bC4wMy4wMy4wNC4wMWguMDFsLjAzLS4wMiAyLjg4LTIuOTRhNS41OCA1LjU4IDAgMCAwIC4wNSAxLjM3bC0yLjIxIDIuMjZjLS43Ni43OS0yLjA2LjA2LTEuOC0xTDYuMjMgMTJINC45NmMtLjcgMC0xLjIxLS42OC0xLjAyLTEuMzZMNi4yIDIuNzdaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjI5LS40NC0yLjk3LTEuNjVhLjUuNSAwIDAgMC0uNzQuNDR2My4zYzAgLjM4LjQxLjYyLjc0LjQ0bDIuOTctMS42NWEuNS41IDAgMCAwIDAtLjg4WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hTZXR0aW5nczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoU2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMjEgMmMtLjQ3IDAtLjg5LjMxLTEuMDIuNzdsLTIuMjUgNy44N2MtLjIuNjguMzIgMS4zNiAxLjAyIDEuMzZoMS4yN2wtMS4xNyA0LjY4Yy0uMjYgMS4wNSAxLjA0IDEuNzggMS44IDFsMi4yMS0yLjI3YTUuNSA1LjUgMCAwIDEgNi4yMi02LjM1bC4yNC0uMjRjLjY1LS42OC4xOC0xLjgyLS43Ni0xLjgySDEyLjJsMS4yNy0zLjZjLjIzLS42OS0uMjgtMS40LTEuMDEtMS40SDcuMjFabTQuODYgOS40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAwIDEuMDJsLjM1LjA4QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjcgNC43IDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjI5LjEzLS41Ny4zLS44Mi41bC4xNi41NVptMi40MyA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoU2V0dGluZ3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTZXR0aW5nczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMTkgMi43N2MuMTMtLjQ2LjU1LS43NyAxLjAyLS43N2g1LjI1Yy43MyAwIDEuMjQuNzEgMSAxLjRMMTIuMiA3aDIuNTdjLjk0IDAgMS40IDEuMTQuNzYgMS44MWwtLjI0LjI1YTUuNTUgNS41NSAwIDAgMC0xLjM3LS4wM2wuOS0uOTFhLjA2LjA2IDAgMCAwIC4wMS0uMDN2LS4wNWEuMDguMDggMCAwIDAtLjAzLS4wM0wxNC43NyA4SDExLjVhLjUuNSAwIDAgMS0uNDctLjY3bDEuNDktNC4yNWEuMDYuMDYgMCAwIDAtLjA2LS4wOEg3LjIxYS4wNi4wNiAwIDAgMC0uMDYuMDVMNC45IDEwLjkyYy0uMDEuMDQuMDIuMDguMDYuMDhoMS45YS41LjUgMCAwIDEgLjUuNjJsLTEuMzMgNS4zdi4wNGwuMDMuMDMuMDQuMDFoLjAxbC4wMi0uMDIgMi44OS0yLjk1YTUuNTcgNS41NyAwIDAgMCAuMDUgMS4zOGwtMi4yMiAyLjI2Yy0uNzUuNzktMi4wNS4wNi0xLjgtMUw2LjI0IDEySDQuOTZjLS43IDAtMS4yMS0uNjgtMS4wMi0xLjM2bDIuMjUtNy44N1ptNS44OCA4LjY3YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIDAgMS4wMmwuMzUuMDhBMiAyIDAgMCAxIDEyIDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNS0uNTVhMiAyIDAgMCAxIDEuNDMtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMjkuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hTZXR0aW5nczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoU2V0dGluZ3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTcuNDIgMi44M0M3LjYgMi4zMyA4LjA3IDIgOC42IDJoNi40NmMuODUgMCAxLjQ1Ljg0IDEuMTggMS42NUwxNC44IDhoMy45NmMxLjEgMCAxLjY2IDEuMzMuOSAyLjEybC0uOTYuOTlhNi41IDYuNSAwIDAgMC03LjU0IDcuNzhsLTIuNTYgMi42NWMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTctLjAxYy0xLjIgMC0yLjA0LTEuMi0xLjY0LTIuMzRsMy4zMi05LjMyWm02Ljg2IDExLjE1YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjlsLS4yLS43YTIgMiAwIDAgMSAxLjQ0LTIuNWwuNTktLjE0YTUuNzMgNS43MyAwIDAgMC0uMDEtMS44bC0uNTQtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS4zOS0uOTQtLjctMS40OS0uOTNsLS40OS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjU0LjIyLTEuMDQuNTMtMS40OC45MWwuMi42OVpNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoU2V0dGluZ3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTZXR0aW5nczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcuNDIgMi44M0M3LjYgMi4zMyA4LjA3IDIgOC42IDJoNi40NmMuODUgMCAxLjQ1Ljg0IDEuMTggMS42NUwxNC44IDhoMy45NmMxLjEgMCAxLjY2IDEuMzMuOSAyLjEybC0uOTYuOTlhNi41MyA2LjUzIDAgMCAwLTIuMDQtLjA2bDEuNS0xLjU1aC00LjRhLjc1Ljc1IDAgMCAxLS43MS0uOTlMMTQuNyAzLjVIOC43OGwtMy4yNiA5LjE2Yy0uMDYuMTYuMDYuMzMuMjMuMzNsMi41LjAxYS43NS43NSAwIDAgMSAuNzMuOTFMNy41MSAyMC41bDMuNTItMy42M2E2LjU3IDYuNTcgMCAwIDAgLjEyIDIuMDNsLTIuNTYgMi42NWMtMS4wNiAxLjA4LTIuODguMS0yLjU1LTEuMzhsMS4yNy01LjY2LTEuNTctLjAxYy0xLjIgMC0yLjA0LTEuMi0xLjY0LTIuMzRsMy4zMi05LjMyWm02Ljg2IDExLjE1YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjlsLS4yLS43YTIgMiAwIDAgMSAxLjQ0LTIuNWwuNTktLjE0YTUuNzMgNS43MyAwIDAgMC0uMDEtMS44bC0uNTQtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS4zOS0uOTQtLjctMS40OS0uOTNsLS40OS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjU0LjIyLTEuMDQuNTMtMS40OC45MWwuMi42OVpNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoU3BhcmtsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNoU3BhcmtsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC44NyAxYTEgMSAwIDAgMC0uOTUuNzFMMi4wMyA4LjA0Yy0uMTQuNDguMjIuOTYuNzIuOTZoMS41OGwtMS4yOCA0LjM5Yy0uMzggMS4zMSAxLjMzIDIuMiAyLjE4IDEuMTNsMy4yMy00LjA2Yy0uMTYtLjE0LS4yOS0uMjEtLjQzLS4yNmwtMS4wNi0uMzVBMS40MSAxLjQxIDAgMCAxIDYgOC41YTEuNCAxLjQgMCAwIDEgLjk1LTEuMzVsMS4xLS4zNWMuMTUtLjA1LjMxLS4xNi40NC0uMjkuMTMtLjEzLjIzLS4yOS4zLS40N2wuMzQtMS4wN2MuMDctLjE5LjE3LS4zNS4yOS0uNDlsLjgtMi4xM0ExIDEgMCAwIDAgOS4yOCAxaC00LjRabTYgNC4yOC4zNiAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMNy4yOCA4LjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45MSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMC0uMTQuNDYuMy4zIDAgMCAwIC4xNC4xMWwuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFNwYXJrbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTcGFya2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMy45MiAxLjcxQTEgMSAwIDAgMSA0Ljg3IDFoNC40MWExIDEgMCAwIDEgLjk0IDEuMzVsLS44IDIuMTNjLS4xMi4xNC0uMjIuMy0uMjkuNDlMOC44IDZoLS4zYS41LjUgMCAwIDEtLjQ3LS42OEw5LjI4IDJoLTQuNGwtMS44IDZINWEuNS41IDAgMCAxIC40OC42NGwtMS40NyA1LjAzYS4yNC4yNCAwIDAgMCAuMDEuMTdjLjAyLjA1LjA2LjEuMTIuMTIuMDYuMDMuMTEuMDQuMTYuMDMuMDUgMCAuMS0uMDMuMTUtLjFsMy4wNy0zLjg2LjUxLjE3Yy4xNC4wNS4yNy4xMi40My4yNmwtMy4yMyA0LjA2Yy0uODUgMS4wNy0yLjU2LjE4LTIuMTgtMS4xM0w0LjMzIDlIMi43NWEuNzUuNzUgMCAwIDEtLjcyLS45NkwzLjkyIDEuN1ptNi45NiAzLjU3LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMiAyLjIgMCAwIDAtMS40LTEuNEw3LjI4IDguOWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAtLjE0LjQ2LjMuMyAwIDAgMCAuMTQuMTFsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hTcGFya2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTcGFya2xlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjIxIDJjLS40NyAwLS44OS4zMS0xLjAyLjc3bC0yLjI1IDcuODdjLS4yLjY4LjMyIDEuMzYgMS4wMiAxLjM2aDEuMjdsLTEuMTcgNC42OGMtLjI2IDEuMDUgMS4wNCAxLjc4IDEuOCAxbDMuMzQtMy40MmExLjIgMS4yIDAgMCAwLS4xNi0uMDdsLTEuMDktLjM1YTEuNDIgMS40MiAwIDAgMSAwLTIuNjhsLjAyLS4wMSAxLjA3LS4zNWExLjIgMS4yIDAgMCAwIC43NC0uNzZsLjM2LTEuMUExLjQyIDEuNDIgMCAwIDEgMTIuNDggOGguMDJhMS40MiAxLjQyIDAgMCAxIDEuMzQuOTVsLjAxLjAyLjM1IDEuMDcuMDMuMSAxLjMtMS4zMmMuNjUtLjY4LjE5LTEuODItLjc2LTEuODJIMTIuMmwxLjI2LTMuNmMuMjMtLjY5LS4yOC0xLjQtMS0xLjRINy4yWm01LjY3IDcuMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMiAyLjIyIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFNwYXJrbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hTcGFya2xlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi4yIDIuNzdDNi4zMSAyLjMxIDYuNzMgMiA3LjIgMmg1LjI1Yy43MyAwIDEuMjQuNzEgMS4wMSAxLjRMMTIuMiA3aDIuNTZjLjk1IDAgMS40IDEuMTQuNzcgMS44MWwtMS4zIDEuMzNhMS4yMyAxLjIzIDAgMCAxLS4wNC0uMWwtLjMyLS45Ny45NC0uOTVhLjA2LjA2IDAgMCAwIC4wMS0uMDN2LS4wNWEuMDguMDggMCAwIDAtLjAzLS4wM0wxNC43NyA4SDExLjVhLjUuNSAwIDAgMS0uNDctLjY3bDEuNS00LjI1YS4wNi4wNiAwIDAgMC0uMDctLjA4SDcuMjFhLjA2LjA2IDAgMCAwLS4wNi4wNUw0LjkgMTAuOTJjMCAuMDQuMDIuMDguMDYuMDhoMS45MWEuNS41IDAgMCAxIC40OS42MmwtMS4zMyA1LjN2LjA0bC4wMy4wMy4wNC4wMWguMDFsLjAzLS4wMiAzLTMuMDguOS4zYy4wNi4wMS4xLjAzLjE2LjA2bC0zLjM0IDMuNDFjLS43Ni43OS0yLjA2LjA2LTEuOC0xTDYuMjMgMTJINC45NmMtLjcgMC0xLjIxLS42OC0xLjAyLTEuMzZMNi4yIDIuNzdabTYuNjggNi41MS4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjE4IDIuMTggMCAwIDAtLjY1LS45OCAyLjIgMi4yIDAgMCAwLS43NS0uNDNsLTEuMDctLjM0YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaFNwYXJrbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaFNwYXJrbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTguNiAyYy0uNTMgMC0xIC4zMy0xLjE3LjgzTDQuMSAxMi4xNWExLjc1IDEuNzUgMCAwIDAgMS42NSAyLjM0SDcuM2wtMS4yNyA1LjY3Yy0uMzMgMS40OCAxLjUgMi40NiAyLjU1IDEuMzhsMy45NS00LjA5YTEuOSAxLjkgMCAwIDAtLjExLS4wNGwtMS4zOS0uNDVhMS41NCAxLjU0IDAgMCAxIDAtMi45MmwxLjM4LS40NWExLjg0IDEuODQgMCAwIDAgMS4xMy0xLjE0bC4wMS0uMDIuNDUtMS4zOXYtLjAxYTEuNTQgMS41NCAwIDAgMSAyLjkyIDB2LjAxbC40NSAxLjM5LjAxLjAyIDIuMjYtMi4zM2MuNzctLjguMi0yLjEyLS45LTIuMTJoLTMuOTZsMS40NS00LjM1Yy4yNy0uODEtLjMzLTEuNjUtMS4xOC0xLjY1SDguNlptNS4yNSAxNS4xNWEyLjg1IDIuODUgMCAwIDEgLjY5IDEuMTFsLjQ1IDEuMzhhLjU0LjU0IDAgMCAwIDEuMDIgMGwuNDUtMS4zOGEyLjg0IDIuODQgMCAwIDEgMS44LTEuOGwxLjM4LS40NGEuNTQuNTQgMCAwIDAgMC0xLjAzaC0uMDNsLTEuMzgtLjQ1YTIuODQgMi44NCAwIDAgMS0xLjgtMS44TDE2IDExLjM2YS41NC41NCAwIDAgMC0xLjAzIDBsLS40NSAxLjM4LS4wMS4wM2EyLjg0IDIuODQgMCAwIDEtMS43NiAxLjc3bC0xLjM4LjQ0YS41NC41NCAwIDAgMCAwIDEuMDNsMS4zOC40NWMuNDIuMTQuOC4zNyAxLjExLjY5Wm03LjkzIDQuMDYtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNoU3BhcmtsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaFNwYXJrbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjYgMmMtLjUzIDAtMSAuMzMtMS4xNy44M0w0LjEgMTIuMTVhMS43NSAxLjc1IDAgMCAwIDEuNjUgMi4zNEg3LjNsLTEuMjcgNS42N2MtLjMzIDEuNDggMS41IDIuNDYgMi41NSAxLjM4bDMuOTUtNC4wOWExLjkgMS45IDAgMCAwLS4xMS0uMDRsLTEuMzktLjQ1LS4wOC0uMDMtMy40NSAzLjU2IDEuNDctNi41OGEuNzUuNzUgMCAwIDAtLjczLS45MWwtMi41LS4wMWEuMjUuMjUgMCAwIDEtLjIzLS4zM0w4Ljc4IDMuNWg1LjkzbC0xLjY3IDUuMDFhLjc1Ljc1IDAgMCAwIC43MS45OWg0LjRsLTEuMyAxLjM1LjA4LjE4di4wMWwuNDUgMS4zOS4wMS4wMiAyLjI2LTIuMzNjLjc3LS44LjItMi4xMi0uOS0yLjEyaC0zLjk2bDEuNDUtNC4zNWMuMjctLjgxLS4zMy0xLjY1LTEuMTgtMS42NUg4LjZabTUuMjUgMTUuMTVhMi44NSAyLjg1IDAgMCAxIC42OSAxLjExbC40NSAxLjM4YS41NC41NCAwIDAgMCAxLjAyIDBsLjQ1LTEuMzhhMi44NCAyLjg0IDAgMCAxIDEuOC0xLjhsMS4zOC0uNDRhLjU0LjU0IDAgMCAwIDAtMS4wM2gtLjAzbC0xLjM4LS40NWEyLjg0IDIuODQgMCAwIDEtMS44LTEuOEwxNiAxMS4zNmEuNTQuNTQgMCAwIDAtMS4wMyAwbC0uNDUgMS4zOC0uMDEuMDNhMi44NCAyLjg0IDAgMCAxLTEuNzYgMS43N2wtMS4zOC40NGEuNTQuNTQgMCAwIDAgMCAxLjAzbDEuMzguNDVjLjQyLjE0LjguMzcgMS4xMS42OVptNy45MyA0LjA2LS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaGxpZ2h0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hsaWdodDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTEuNSAxYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAxIDEtMSAwdi0xYzAtLjI4LjIyLS41LjUtLjVabTIuNjUuMTVhLjUuNSAwIDEgMSAuNy43bC0xIDFhLjUuNSAwIDEgMS0uNy0uN2wxLTFabS03LjcxLjdhMS41IDEuNSAwIDAgMSAyLjEyIDBsNS41OSA1LjU5YTEuNSAxLjUgMCAwIDEgMCAyLjEybC0uOTQuOTRMNS41IDIuOGwuOTQtLjk1Wk01IDMuNzF2My41OGwtMy42NSAzLjY1YTEuNSAxLjUgMCAwIDAgMCAyLjEybDEuNTkgMS41OWExLjUgMS41IDAgMCAwIDIuMTIgMEw4LjcxIDExaDMuNThMNSAzLjdabTEuODUgNi4xNC0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFhLjUuNSAwIDEgMSAuNy43Wk0xNC41IDVoLTFhLjUuNSAwIDAgMSAwLTFoMWEuNS41IDAgMSAxIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hsaWdodDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEyIDEuNWEuNS41IDAgMSAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWm0yLjg1LS4zNWEuNS41IDAgMCAwLS43IDBsLTEgMWEuNS41IDAgMSAwIC43LjdsMS0xYS41LjUgMCAwIDAgMC0uN1ptLTggOC43YS41LjUgMCAxIDAtLjctLjdsLTEgMWEuNS41IDAgMSAwIC43LjdsMS0xWm0xLjcxLThhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTEuMyAxLjNBLjUuNSAwIDAgMCA1IDMuNXYzLjhsLTMuNjUgMy42NGExLjUgMS41IDAgMCAwIDAgMi4xMmwxLjU5IDEuNTlhMS41IDEuNSAwIDAgMCAyLjEyIDBMOC43MSAxMWgzLjc5YS41LjUgMCAwIDAgLjM1LS4xNWwxLjMtMS4yOWExLjUgMS41IDAgMCAwIDAtMi4xMkw4LjU2IDEuODVabS0xLjQxLjcxYy4yLS4yLjUtLjIuNyAwbDUuNTkgNS41OWMuMi4yLjIuNSAwIC43bC0uOTQuOTRMNi4yIDMuNWwuOTUtLjk0Wk02IDQuNzEgMTEuMyAxMEg4LjVhLjUuNSAwIDAgMC0uMzUuMTVsLTMuOCAzLjc5YS41LjUgMCAwIDEtLjcgMGwtMS41OS0xLjU5YS41LjUgMCAwIDEgMC0uN2wzLjgtMy44QS41LjUgMCAwIDAgNiA3LjVWNC43Wm03LjUuMjloMWEuNS41IDAgMSAwIDAtMWgtMWEuNS41IDAgMCAwIDAgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaGxpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy45NiAxLjE3Yy4yNyAwIC41LjIyLjUuNXYuODNhLjUuNSAwIDEgMS0xIDB2LS44M2MwLS4yOC4yMi0uNS41LS41Wm0zLjkuOThjLjE5LjIuMTkuNSAwIC43bC0xLjUgMS41YS41LjUgMCAxIDEtLjcxLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBaTTcgNS4ydjIuNThsNS4yIDUuMmgyLjZMNyA1LjIyWm04LjcgNy4yOSAxLjEtMS4wOWEyIDIgMCAwIDAgMC0yLjgyTDExLjQgMy4yYTIgMiAwIDAgMC0yLjgyIDBMNy41IDQuMjlsOC4yIDguMlptLTQuNy43TDYuOCA5bC00LjEgNC4wOWEyIDIgMCAwIDAgMCAyLjgyTDQuMSAxNy4zYTIgMiAwIDAgMCAyLjgyIDBMMTEgMTMuMjFabS0zLjE1LS4zNS0xIDFhLjUuNSAwIDAgMS0uNy0uN2wxLTFhLjUuNSAwIDEgMSAuNy43Wk0xNyA2LjA1YzAtLjI5LjIyLS41LjUtLjVoLjgzYS41LjUgMCAxIDEgMCAxaC0uODNhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hsaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjQ2IDEuNjdhLjUuNSAwIDEgMC0xIDB2LjgzYS41LjUgMCAwIDAgMSAwdi0uODNabTMuNCAxLjE4YS41LjUgMCAwIDAtLjcxLS43bC0xLjUgMS41YS41LjUgMCAwIDAgLjcuN2wxLjUtMS41Wm0tMTAgMTBhLjUuNSAwIDEgMC0uNzEtLjdsLTEgMWEuNS41IDAgMSAwIC43LjdsMS0xWk03IDV2My44bC00LjMgNC4yOWEyIDIgMCAwIDAgMCAyLjgyTDQuMSAxNy4zYTIgMiAwIDAgMCAyLjgyIDBsNC4zLTQuM0gxNWEuNS41IDAgMCAwIC4zNS0uMTRsMS40NC0xLjQ0YTIgMiAwIDAgMCAwLTIuODJMMTEuNDEgMy4yYTIgMiAwIDAgMC0yLjgyIDBMNy4xNSA0LjY1QS41LjUgMCAwIDAgNyA1Wk05LjMgMy45YTEgMSAwIDAgMSAxLjQgMEwxNi4xIDkuM2ExIDEgMCAwIDEgMCAxLjQybC0xLjEgMS4wOEw4LjIyIDVsMS4wOC0xLjA4Wk04IDYuMjEgMTMuOCAxMmgtMi42TDggOC44VjYuMlptLS41IDMuNSAyLjggMi43OS00LjEgNC4wOWExIDEgMCAwIDEtMS40IDBMMy40IDE1LjJhMSAxIDAgMCAxIDAtMS40Mkw3LjUgOS43MVptMTAtNC4xN2EuNS41IDAgMSAwIDAgMWguODNhLjUuNSAwIDEgMCAwLTFoLS44M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaGxpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi43NSAxLjI1Yy40MSAwIC43NS4zNC43NS43NXYxQS43NS43NSAwIDAgMSAxNiAzVjJjMC0uNDEuMzQtLjc1Ljc1LS43NVptMy43MiAxLjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLTIgMmEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDItMlpNOC4yNSA2LjMxVjkuMmw2LjU2IDYuNTZoMi44OEw4LjI1IDYuMzFaTTE5LjA2IDE1bDEuNC0xLjRjLjg5LS44OS44OS0yLjMxIDAtMy4yTDEzLjYgMy41NGEyLjI1IDIuMjUgMCAwIDAtMy4xOCAwTDkgNC45MyAxOS4wNiAxNVpNMTMgMTYuMDYgNy45NCAxMWwtNC45MSA0LjljLS44OC44OS0uODggMi4zMSAwIDMuMmwxLjg4IDEuODdjLjg4Ljg4IDIuMy44OCAzLjE4IDBsNC45MS00LjlabS0zLjQ3LTEuNTljLjMuMy4zLjc3IDAgMS4wNmwtMS41IDEuNWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDEuNS0xLjVjLjMtLjMuNzctLjMgMS4wNiAwWk0yMiA4aC0xYS43NS43NSAwIDAgMSAwLTEuNWgxQS43NS43NSAwIDAgMSAyMiA4WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hsaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGFzaGxpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAyQS43NS43NSAwIDAgMCAxNiAydjFhLjc1Ljc1IDAgMCAwIDEuNSAwVjJabTQuMDMuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMiAyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi0yYy4zLS4zLjMtLjc3IDAtMS4wNlpNOC4wMyAxNy4wM2wxLjUtMS41YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTEuNSAxLjVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNlpNOC4yNSA2djQuNjlMMy4wMyAxNS45Yy0uODguODgtLjg4IDIuMyAwIDMuMThsMS44OCAxLjg4Yy44OC44OCAyLjMuODggMy4xOCAwbDUuMjItNS4yMkgxOGMuMiAwIC4zOS0uMDguNTMtLjIybDEuOTQtMS45NGMuODgtLjg4Ljg4LTIuMyAwLTMuMThsLTYuODgtNi44OGEyLjI1IDIuMjUgMCAwIDAtMy4xOCAwTDguNDcgNS40N2EuNzUuNzUgMCAwIDAtLjIyLjUzWm0zLjIyLTEuNGMuMy0uMy43Ny0uMyAxLjA2IDBsNi44OCA2Ljg3Yy4zLjMuMy43NyAwIDEuMDZMMTggMTMuOTMgMTAuMDYgNmwxLjQtMS40Wk05Ljc1IDcuOGw2LjQ0IDYuNDRIMTMuM2wtMy41Ni0zLjU2VjcuOFpNOSAxMi4wNiAxMS45NCAxNWwtNC45MSA0LjljLS4zLjMtLjc3LjMtMS4wNiAwbC0xLjg4LTEuODdhLjc1Ljc1IDAgMCAxIDAtMS4wNkw5IDEyLjA3Wk0yMSA4aDFhLjc1Ljc1IDAgMCAwIDAtMS41aC0xQS43NS43NSAwIDAgMCAyMSA4WlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hsaWdodE9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNobGlnaHRPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdsMTUgMTVhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTE2LjggMTEuNGwtMS4wOCAxLjA5TDcuNSA0LjNsMS4wOS0xLjFhMiAyIDAgMCAxIDIuODIgMEwxNi44IDguNmEyIDIgMCAwIDEgMCAyLjgyWk02LjggOSAxMSAxMy4ybC00LjA5IDQuMWEyIDIgMCAwIDEtMi44MiAwTDIuNyAxNS45YTIgMiAwIDAgMSAwLTIuODJMNi43OSA5Wm0uMDYgNC44NSAxLTFhLjUuNSAwIDEgMC0uNy0uN2wtMSAxYS41LjUgMCAxIDAgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsYXNobGlnaHRPZmYyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxhc2hsaWdodE9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNyA3LjcxdjEuMDhsLTQuMyA0LjNhMiAyIDAgMCAwIDAgMi44Mkw0LjEgMTcuM2EyIDIgMCAwIDAgMi44MiAwbDQuMy00LjI5aDEuMDhsNC44NiA0Ljg1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xMi42NyA5LjEzLTEuMDYgMS4wNi42NS42NWEuNS41IDAgMCAwIC4yNC0uMTRsMS40NC0xLjQ0YTIgMiAwIDAgMCAwLTIuODJMMTEuNDEgMy4yYTIgMiAwIDAgMC0yLjgyIDBMNy4xNSA0LjY1YS41LjUgMCAwIDAtLjE0LjI0bC42NS42NUw5LjMgMy45MWExIDEgMCAwIDEgMS40MiAwbDUuMzggNS4zOGExIDEgMCAwIDEgMCAxLjQybC0uNTcuNTdabS03LjY3IDEuNTdhLjUuNSAwIDEgMC0uNy0uN2wtMSAxYS41LjUgMCAxIDAgLjcuN2wxLTFaTTcuNSA5LjcxbDIuOCAyLjc5LTQuMSA0LjA5YTEgMSAwIDAgMS0xLjQgMEwzLjQgMTUuMmExIDEgMCAwIDEgMC0xLjQyTDcuNSA5LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxhc2hsaWdodE9mZjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNobGlnaHRPZmYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDE4LjUgMTguNWEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTkuMDYgMTVsMS40LTEuNGMuODktLjg5Ljg5LTIuMzEgMC0zLjJMMTMuNiAzLjU0YTIuMjUgMi4yNSAwIDAgMC0zLjE4IDBMOSA0LjkzIDE5LjA2IDE1Wk0xMyAxNi4wNiA3Ljk0IDExbC00LjkxIDQuOWMtLjg4Ljg5LS44OCAyLjMxIDAgMy4ybDEuODggMS44N2MuODguODggMi4zLjg4IDMuMTggMGw0LjkxLTQuOVptLTMuNDctLjUzLTEuNSAxLjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjUtMS41YS43NS43NSAwIDEgMSAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGFzaGxpZ2h0T2ZmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsYXNobGlnaHRPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjUzIDE0LjQ3Yy4zLjMuMy43NyAwIDEuMDZsLTEuNSAxLjVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjUtMS41Yy4zLS4zLjc3LS4zIDEuMDYgMFpNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsNi4wMyA2LjAzdjEuMzhMMy4wMyAxNS45Yy0uODguODgtLjg4IDIuMyAwIDMuMThsMS44OCAxLjg4Yy44OC44OCAyLjMuODggMy4xOCAwbDUuMjItNS4yMmgxLjM4bDYuMDMgNi4wM2EuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNOSAxMi4wNiAxMS45NCAxNWwtNC45MSA0LjljLS4zLjMtLjc3LjMtMS4wNiAwbC0xLjg4LTEuODdhLjc1Ljc1IDAgMCAxIDAtMS4wNkw5IDEyLjA3Wm04Ljg0IDIuMDMgMS41Ny0xLjU2Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNi44OC02Ljg4YS43NS43NSAwIDAgMC0xLjA2IDBMOS45IDYuMTYgOC44NCA1LjA5bDEuNTctMS41NmMuODgtLjg4IDIuMy0uODggMy4xOCAwbDYuODggNi44OGMuODguODguODggMi4zIDAgMy4xOGwtMS41NyAxLjU3LTEuMDYtMS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBIb3Jpem9udGFsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcEhvcml6b250YWwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE0Ljg4IDEyLjY1YS43NS43NSAwIDAgMS0uNjMuMzVoLTQuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtOS41YS43NS43NSAwIDAgMSAxLjQzLS4zMmw0LjUgOS41Yy4xLjIzLjEuNS0uMDUuNzJaTTEwLjUgNi4xdjUuNDFoMi41NkwxMC41IDYuMDlaTTEuNSAxM2EuNS41IDAgMCAxLS40NS0uNzJsNS0xMEEuNS41IDAgMCAxIDcgMi41djEwYS41LjUgMCAwIDEtLjUuNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBIb3Jpem9udGFsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBIb3Jpem9udGFsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTQuOTMgMTIuNzZhLjUuNSAwIDAgMS0uNDMuMjRoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMTBhLjUuNSAwIDAgMSAuOTUtLjIybDUgMTBhLjUuNSAwIDAgMS0uMDIuNDhaTTEwIDQuNjJWMTJoMy43TDEwIDQuNjJaTTEuNSAxM2EuNS41IDAgMCAxLS40NS0uNzJsNS0xMEEuNS41IDAgMCAxIDcgMi41djEwYS41LjUgMCAwIDEtLjUuNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcEhvcml6b250YWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3Ljg4IDE1LjY2YS43NS43NSAwIDAgMS0uNjMuMzRoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyLjc1YS43NS43NSAwIDAgMSAxLjQ0LS4zbDUuNSAxMi41Yy4xLjIzLjA4LjUtLjA2LjcxWk0xMi41IDYuMzJ2OC4xOGgzLjZsLTMuNi04LjE4Wk0yLjUgMTZhLjUuNSAwIDAgMS0uNDUtLjcxbDYtMTNBLjUuNSAwIDAgMSA5IDIuNXYxM2EuNS41IDAgMCAxLS41LjVoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwSG9yaXpvbnRhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwSG9yaXpvbnRhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjkyIDE1Ljc3YS41LjUgMCAwIDEtLjQyLjIzaC02YS41LjUgMCAwIDEtLjUtLjV2LTEzYS41LjUgMCAwIDEgLjk1LS4ybDYgMTNhLjUuNSAwIDAgMS0uMDMuNDdaTTEyIDQuNzdWMTVoNC43MkwxMiA0Ljc4Wk0yLjUgMTZhLjUuNSAwIDAgMS0uNDUtLjcxbDYtMTNBLjUuNSAwIDAgMSA5IDIuNXYxM2EuNS41IDAgMCAxLS41LjVoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwSG9yaXpvbnRhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBIb3Jpem9udGFsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS44NCAxOS41NUExIDEgMCAwIDEgMjEgMjBoLTdhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLjkyLS40bDcgMTZhMSAxIDAgMCAxLS4wOC45NVpNMTUgNy43OFYxOGg0LjQ3TDE1IDcuNzhaTTIuNSAyMGEuNS41IDAgMCAxLS40NS0uNzFsOC0xN2EuNS41IDAgMCAxIC45NS4yMXYxN2EuNS41IDAgMCAxLS41LjVoLThaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwSG9yaXpvbnRhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwSG9yaXpvbnRhbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIxLjg4IDE5LjY2YS43NS43NSAwIDAgMS0uNjMuMzRoLTcuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVYyLjc1YS43NS43NSAwIDAgMSAxLjQzLS4zMWw3LjUgMTYuNWMuMS4yMy4wOS41LS4wNS43MlpNMTQuNSA2LjJWMTguNWg1LjU5TDE0LjUgNi4yMVpNMi41IDIwYS41LjUgMCAwIDEtLjQ1LS43MWw4LTE3YS41LjUgMCAwIDEgLjk1LjIxdjE3YS41LjUgMCAwIDEtLjUuNWgtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBIb3Jpem9udGFsMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcEhvcml6b250YWwyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTI1Ljg0IDIzLjU0QTEgMSAwIDAgMSAyNSAyNGgtOWExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEuOTEtLjQxbDkgMjBhMSAxIDAgMCAxLS4wNy45NVpNMTcgNy42NlYyMmg2LjQ1TDE3IDcuNjZaTTIuNzUgMjRhLjc1Ljc1IDAgMCAxLS42OC0xLjA3bDkuNS0yMC41YS43NS43NSAwIDAgMSAxLjQzLjMydjIwLjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcEhvcml6b250YWwyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcEhvcml6b250YWwyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yNS44OCAyMy42NWEuNzUuNzUgMCAwIDEtLjYzLjM1aC05LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMi43NWEuNzUuNzUgMCAwIDEgMS40My0uMzJsOS41IDIwLjVjLjEuMjQuMDkuNS0uMDUuNzJaTTE2LjUgNi4xNVYyMi41aDcuNThMMTYuNSA2LjE1Wk0yLjc1IDI0YS43NS43NSAwIDAgMS0uNjgtMS4wN2w5LjUtMjAuNWEuNzUuNzUgMCAwIDEgMS40My4zMnYyMC41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBIb3Jpem9udGFsMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcEhvcml6b250YWwzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI5LjggMjcuNDNjLS4yMy4zNi0uNjMuNTctMS4wNS41N2gtMTAuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjMuMjVhMS4yNSAxLjI1IDAgMCAxIDIuNC0uNTFsMTAuNSAyMy41Yy4xNi4zOS4xMy44My0uMSAxLjE5Wk0xOS41IDkuMTFWMjUuNWg3LjMyTDE5LjUgOS4xMVpNMyAyOGExIDEgMCAwIDEtLjktMS40MmwxMS0yNEExIDEgMCAwIDEgMTUgM3YyNGExIDEgMCAwIDEtMSAxSDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwSG9yaXpvbnRhbDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwSG9yaXpvbnRhbDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTI5Ljg0IDI3LjU0QTEgMSAwIDAgMSAyOSAyOEgxOGExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEuOS0uNDJsMTEgMjRhMSAxIDAgMCAxLS4wNi45NlpNMTkgNy41OFYyNmg4LjQ0TDE5IDcuNThaTTMgMjhhMSAxIDAgMCAxLS45LTEuNDJsMTEtMjRBMSAxIDAgMCAxIDE1IDN2MjRhMSAxIDAgMCAxLTEgMUgzWlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcEhvcml6b250YWw0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwSG9yaXpvbnRhbDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDMuNzYgMzkuMzFhMS41IDEuNSAwIDAgMS0xLjI2LjY5aC0xNWExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTMzYTEuNSAxLjUgMCAwIDEgMi44Ny0uNjJsMTUgMzNjLjIuNDYuMTcgMS0uMSAxLjQzWk0yOSAxMi40M1YzN2gxMS4xN0wyOSAxMi40M1pNNSA0MGExIDEgMCAwIDEtLjktMS40M2wxNi0zNEExIDEgMCAwIDEgMjIgNXYzNGExIDEgMCAwIDEtMSAxSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwSG9yaXpvbnRhbDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwSG9yaXpvbnRhbDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTQzLjggMzkuNDJjLS4yMy4zNi0uNjIuNTgtMS4wNS41OGgtMTUuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjUuMjVhMS4yNSAxLjI1IDAgMCAxIDIuMzgtLjUybDE1LjUgMzMuNWMuMTguMzguMTUuODMtLjA4IDEuMlptLTE1LjMtMjguNVYzNy41aDEyLjNMMjguNSAxMC45M1pNNSA0MGExIDEgMCAwIDEtLjktMS40M2wxNi0zNEExIDEgMCAwIDEgMjIgNXYzNGExIDEgMCAwIDEtMSAxSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwVmVydGljYWwxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwVmVydGljYWwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEyLjY1IDEuMTJjLjIyLjEzLjM1LjM3LjM1LjYzdjQuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC05LjVhLjc1Ljc1IDAgMCAxLS4zMi0xLjQzbDkuNS00LjVjLjIzLS4xLjUtLjEuNzIuMDVaTTYuMSA1LjVoNS40MVYyLjk0TDYuMDkgNS41Wm02LjkxIDlhLjUuNSAwIDAgMS0uNzIuNDVsLTEwLTVBLjUuNSAwIDAgMSAyLjUgOWgxMGMuMjggMCAuNS4yMi41LjV2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBWZXJ0aWNhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwVmVydGljYWwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi43NiAxLjA3Yy4xNS4xLjI0LjI2LjI0LjQzdjVhLjUuNSAwIDAgMS0uNS41aC0xMGEuNS41IDAgMCAxLS4yMi0uOTVsMTAtNWEuNS41IDAgMCAxIC40OC4wMlpNNC42MiA2SDEyVjIuM0w0LjYyIDZaTTEzIDE0LjVhLjUuNSAwIDAgMS0uNzIuNDVsLTEwLTVBLjUuNSAwIDAgMSAyLjUgOWgxMGMuMjggMCAuNS4yMi41LjV2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBWZXJ0aWNhbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTUuNjYgMi4xMmMuMjEuMTQuMzQuMzguMzQuNjN2NS41YzAgLjQxLS4zNC43NS0uNzUuNzVIMi43NWEuNzUuNzUgMCAwIDEtLjMtMS40NGwxMi41LTUuNWMuMjMtLjEuNS0uMDguNzEuMDZaTTYuMzIgNy41aDguMThWMy45TDYuMzIgNy41Wm05LjY4IDEwYS41LjUgMCAwIDEtLjcxLjQ1bC0xMy02QS41LjUgMCAwIDEgMi41IDExaDEzYy4yOCAwIC41LjIyLjUuNXY2WlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcFZlcnRpY2FsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBWZXJ0aWNhbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE1Ljc3IDIuMDhjLjE0LjEuMjMuMjUuMjMuNDJ2NmEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEtLjItLjk1bDEzLTZhLjUuNSAwIDAgMSAuNDcuMDNaTTQuNzcgOEgxNVYzLjI4TDQuNzggOFpNMTYgMTcuNWEuNS41IDAgMCAxLS43MS40NWwtMTMtNkEuNS41IDAgMCAxIDIuNSAxMWgxM2MuMjggMCAuNS4yMi41LjV2NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBWZXJ0aWNhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBWZXJ0aWNhbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTkuNTUgMi4xNkExIDEgMCAwIDEgMjAgM3Y3YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtLjQtMS45MmwxNi03YTEgMSAwIDAgMSAuOTUuMDhaTTcuNzggOUgxOFY0LjUzTDcuNzggOVpNMjAgMjEuNWEuNS41IDAgMCAxLS43MS40NWwtMTctOEEuNS41IDAgMCAxIDIuNSAxM2gxN2MuMjggMCAuNS4yMi41LjV2OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsaXBWZXJ0aWNhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwVmVydGljYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOS42NiAyLjEyYy4yMS4xNC4zNC4zOC4zNC42M3Y3LjVjMCAuNDEtLjM0Ljc1LS43NS43NUgyLjc1YS43NS43NSAwIDAgMS0uMzEtMS40M2wxNi41LTcuNWMuMjMtLjEuNS0uMDkuNzIuMDVaTTYuMiA5LjVIMTguNVYzLjkxTDYuMjEgOS41Wk0yMCAyMS41YS41LjUgMCAwIDEtLjcxLjQ1bC0xNy04QS41LjUgMCAwIDEgMi41IDEzaDE3Yy4yOCAwIC41LjIyLjUuNXY4WlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcFZlcnRpY2FsMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcFZlcnRpY2FsMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yMy41NCAyLjE2QTEgMSAwIDAgMSAyNCAzdjlhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0uNDEtMS45MWwyMC05YTEgMSAwIDAgMSAuOTUuMDdaTTcuNjYgMTFIMjJWNC41NUw3LjY2IDExWk0yNCAyNS4yNWEuNzUuNzUgMCAwIDEtMS4wNy42OGwtMjAuNS05LjVBLjc1Ljc1IDAgMCAxIDIuNzUgMTVoMjAuNWMuNDEgMCAuNzUuMzQuNzUuNzV2OS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcFZlcnRpY2FsMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBWZXJ0aWNhbDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIzLjY1IDIuMTJjLjIyLjE0LjM1LjM3LjM1LjYzdjkuNWMwIC40MS0uMzQuNzUtLjc1Ljc1SDIuNzVhLjc1Ljc1IDAgMCAxLS4zMi0xLjQzbDIwLjUtOS41Yy4yNC0uMS41LS4wOS43Mi4wNVpNNi4xNSAxMS41SDIyLjVWMy45Mkw2LjE1IDExLjVaTTI0IDI1LjI1YS43NS43NSAwIDAgMS0xLjA3LjY4bC0yMC41LTkuNUEuNzUuNzUgMCAwIDEgMi43NSAxNWgyMC41Yy40MSAwIC43NS4zNC43NS43NXY5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbGlwVmVydGljYWwzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbGlwVmVydGljYWwzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTI3LjQzIDIuMmMuMzYuMjMuNTcuNjMuNTcgMS4wNXYxMC41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUgzLjI1YTEuMjUgMS4yNSAwIDAgMS0uNTEtMi40bDIzLjUtMTAuNWMuMzktLjE2LjgzLS4xMyAxLjE5LjFaTTkuMTEgMTIuNUgyNS41VjUuMThMOS4xMSAxMi41Wk0yOCAyOWExIDEgMCAwIDEtMS40Mi45bC0yNC0xMUExIDEgMCAwIDEgMyAxN2gyNGExIDEgMCAwIDEgMSAxdjExWlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcFZlcnRpY2FsMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBWZXJ0aWNhbDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTI3LjU0IDIuMTZBMSAxIDAgMCAxIDI4IDN2MTFhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0uNDItMS45bDI0LTExYTEgMSAwIDAgMSAuOTYuMDZaTTcuNTggMTNIMjZWNC41Nkw3LjU4IDEzWk0yOCAyOWExIDEgMCAwIDEtMS40Mi45bC0yNC0xMUExIDEgMCAwIDEgMyAxN2gyNGExIDEgMCAwIDEgMSAxdjExWlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcFZlcnRpY2FsNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxpcFZlcnRpY2FsNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0zOS4zMSA0LjI0Yy40My4yNy42OS43NS42OSAxLjI2djE1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMzNhMS41IDEuNSAwIDAgMS0uNjItMi44N2wzMy0xNWMuNDYtLjIgMS0uMTcgMS40My4xWk0xMi40MyAxOUgzN1Y3LjgzTDEyLjQzIDE5Wk00MCA0M2ExIDEgMCAwIDEtMS40My45bC0zNC0xNkExIDEgMCAwIDEgNSAyNmgzNGExIDEgMCAwIDEgMSAxdjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRmxpcFZlcnRpY2FsNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsaXBWZXJ0aWNhbDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM5LjQyIDQuMmMuMzYuMjMuNTguNjIuNTggMS4wNXYxNS41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg1LjI1YTEuMjUgMS4yNSAwIDAgMS0uNTItMi4zOGwzMy41LTE1LjVjLjM4LS4xOC44My0uMTUgMS4yLjA4Wm0tMjguNSAxNS4zSDM3LjVWNy4yTDEwLjkzIDE5LjVaTTQwIDQzYTEgMSAwIDAgMS0xLjQzLjlsLTM0LTE2QTEgMSAwIDAgMSA1IDI2aDM0YTEgMSAwIDAgMSAxIDF2MTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvdzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAuMDUgNkg5LjVhMSAxIDAgMCAwLTEgMXYyYTIgMiAwIDAgMS0yIDJoLS41NWEyLjUgMi41IDAgMSAxIDAtMWguNTVhMSAxIDAgMCAwIDEtMVY3YzAtMS4xLjktMiAyLTJoLjU1YTIuNSAyLjUgMCAxIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgRmxvdzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbG93MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTIuNSA0YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm0tMi40NSAyYTIuNSAyLjUgMCAxIDAgMC0xSDkuNWEyIDIgMCAwIDAtMiAydjJhMSAxIDAgMCAxLTEgMWgtLjU1YTIuNSAyLjUgMCAxIDAgMCAxaC41NWEyIDIgMCAwIDAgMi0yVjdhMSAxIDAgMCAxIDEtMWguNTVaTTUgMTAuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3cyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbG93MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi4wNCA3LjVIMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41djJBMi41IDIuNSAwIDAgMSA4IDEzLjVoLS4wNGEzIDMgMCAxIDEgMC0xSDhjLjgzIDAgMS41LS42NyAxLjUtMS41VjlBMi41IDIuNSAwIDAgMSAxMiA2LjVoLjA0YTMgMyAwIDEgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3cyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNSA1YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptLTIuOTYgMS41YTMgMyAwIDEgMSAwIDFIMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41djJBMi41IDIuNSAwIDAgMSA4IDEzLjVoLS4wNGEzIDMgMCAxIDEgMC0xSDhjLjgzIDAgMS41LS42NyAxLjUtMS41VjlBMi41IDIuNSAwIDAgMSAxMiA2LjVoLjA0Wk01IDExYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3cyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbG93MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNC4wOCA4LjhjLS43Ni4xOS0xLjMzLjg4LTEuMzMgMS43djNjMCAxLjY1LTEuMjMgMy0yLjgxIDMuMjJhNCA0IDAgMSAxLS4wMi0xLjUyIDEuNzUgMS43NSAwIDAgMCAxLjMzLTEuN3YtM2MwLTEuNjUgMS4yMy0zIDIuODEtMy4yMmE0IDQgMCAxIDEgLjAyIDEuNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3cyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCA1LjVhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTVabS0zLjk0IDEuNzhhNCA0IDAgMSAxIC4wMiAxLjUyYy0uNzYuMTktMS4zMy44OC0xLjMzIDEuN3YzYzAgMS42NS0xLjIzIDMtMi44MSAzLjIyYTQgNCAwIDEgMS0uMDItMS41MiAxLjc1IDEuNzUgMCAwIDAgMS4zMy0xLjd2LTNjMC0xLjY1IDEuMjMtMyAyLjgxLTMuMjJaTTYgMTMuNWEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3czMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbG93MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xOS4xIDEwLjVIMTlhMiAyIDAgMCAwLTIgMnY3YTQgNCAwIDAgMS00IDRoLS4xYTUuNSA1LjUgMCAxIDEgMC0yaC4xYTIgMiAwIDAgMCAyLTJ2LTdhNCA0IDAgMCAxIDQtNGguMWE1LjUgNS41IDAgMSAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3czMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvdzMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTI0LjUgNmEzLjUgMy41IDAgMSAxIDAgNyAzLjUgMy41IDAgMCAxIDAtN1ptLTUuNCA0LjVhNS41IDUuNSAwIDEgMCAwLTJIMTlhNCA0IDAgMCAwLTQgNHY3YTIgMiAwIDAgMS0yIDJoLS4xYTUuNSA1LjUgMCAxIDAgMCAyaC4xYTQgNCAwIDAgMCA0LTR2LTdjMC0xLjEuOS0yIDItMmguMVptLTguMSAxMmEzLjUgMy41IDAgMSAxLTcgMCAzLjUgMy41IDAgMCAxIDcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3djaGFydDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3djaGFydDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXYyQzIgNi4zMyAyLjY3IDcgMy41IDdINHYxLjg4YTEgMSAwIDAgMC0uMi4xNkwyLjAzIDEwLjhhMSAxIDAgMCAwIDAgMS40MmwxLjc1IDEuNzVhMSAxIDAgMCAwIDEuNDIgMGwxLjc1LTEuNzVhMSAxIDAgMCAwIC4xNi0uMjFIOXYuNWMwIC44My42NyAxLjUgMS41IDEuNWgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVoLTJDOS42NyA5IDkgOS42NyA5IDEwLjV2LjVINy4xMmExIDEgMCAwIDAtLjE2LS4yTDUuMiA5LjAzQTEgMSAwIDAgMCA1IDguODhWN2guNUM2LjMzIDcgNyA2LjMzIDcgNS41di0yQzcgMi42NyA2LjMzIDIgNS41IDJoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93Y2hhcnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiAzLjVDMiAyLjY3IDIuNjcgMiAzLjUgMmgyQzYuMzMgMiA3IDIuNjcgNyAzLjV2MkM3IDYuMzMgNi4zMyA3IDUuNSA3SDV2MS44OGExIDEgMCAwIDEgLjIuMTZsMS43NiAxLjc1YTEgMSAwIDAgMSAuMTYuMjFIOXYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMkExLjUgMS41IDAgMCAxIDkgMTIuNVYxMkg3LjEyYTEgMSAwIDAgMS0uMTYuMkw1LjIgMTMuOTdhMSAxIDAgMCAxLTEuNDIgMEwyLjA0IDEyLjJhMSAxIDAgMCAxIDAtMS40MkwzLjggOS4wNEExIDEgMCAwIDEgNCA4Ljg4VjdoLS41QTEuNSAxLjUgMCAwIDEgMiA1LjV2LTJaTTMuNSAzYS41LjUgMCAwIDAtLjUuNXYyYzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0yWm03IDdhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTJabS03Ljc1IDEuNSAxLjc1IDEuNzUgMS43NS0xLjc1TDQuNSA5Ljc1IDIuNzUgMTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3djaGFydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3djaGFydDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2gyQzcuMzMgMyA4IDMuNjcgOCA0LjV2MkM4IDcuMzMgNy4zMyA4IDYuNSA4SDZ2My44NGExIDEgMCAwIDEgLjIuMTZMOCAxMy44YTEgMSAwIDAgMSAuMTYuMkgxMnYtLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMmMuODMgMCAxLjUuNjcgMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMmExLjUgMS41IDAgMCAxLTEuNS0xLjVWMTVIOC4xNmExIDEgMCAwIDEtLjE2LjJMNi4yIDE3YTEgMSAwIDAgMS0xLjQgMEwzIDE1LjJhMSAxIDAgMCAxIDAtMS40TDQuOCAxMmExIDEgMCAwIDEgLjItLjE2VjhoLS41QTEuNSAxLjUgMCAwIDEgMyA2LjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93Y2hhcnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYyQzMgNy4zMyAzLjY3IDggNC41IDhINXYzLjg0YTEgMSAwIDAgMC0uMi4xNkwzIDEzLjhhMSAxIDAgMCAwIDAgMS40TDQuOCAxN2ExIDEgMCAwIDAgMS40IDBMOCAxNS4yYTEgMSAwIDAgMCAuMTYtLjJIMTJ2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYy0uODMgMC0xLjUuNjctMS41IDEuNXYuNUg4LjE2YTEgMSAwIDAgMC0uMTYtLjJMNi4yIDEyYTEgMSAwIDAgMC0uMi0uMTZWOGguNUM3LjMzIDggOCA3LjMzIDggNi41di0yQzggMy42NyA3LjMzIDMgNi41IDNoLTJaTTQgNC41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMlptLS4zIDEwIDEuOC0xLjggMS44IDEuOC0xLjggMS44LTEuOC0xLjhabTkuOC0xLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd2NoYXJ0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDUuMjVDMyA0IDQgMyA1LjI1IDNoMi41QzkgMyAxMCA0IDEwIDUuMjV2Mi41QzEwIDkgOSAxMCA3Ljc1IDEwaC0uNXYzLjcxYy4wNS4wMy4xLjA3LjEzLjEybDIuOCAyLjc5LjExLjEzSDE0di0uNWMwLTEuMjQgMS4wMS0yLjI1IDIuMjUtMi4yNWgyLjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Mi41QzIxIDIwIDIwIDIxIDE4Ljc1IDIxaC0yLjVDMTUuMDEgMjEgMTQgMjAgMTQgMTguNzV2LS41SDEwLjNjLS4wMy4wNS0uMDcuMS0uMTIuMTNsLTIuNzkgMi44Yy0uNDguNDgtMS4yOC40OC0xLjc2IDBsLTIuOC0yLjhhMS4yNSAxLjI1IDAgMCAxIDAtMS43NmwyLjgtMi44LjEzLS4xMVYxMGgtLjVDNCAxMCAzIDkgMyA3Ljc0di0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93Y2hhcnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS4yNSAzQzQgMyAzIDQgMyA1LjI1djIuNUMzIDkgNCAxMCA1LjI1IDEwaC41djMuNzFjLS4wNS4wMy0uMS4wNy0uMTMuMTJsLTIuOCAyLjc5YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzdsMi44IDIuNzljLjQ4LjQ5IDEuMjguNDkgMS43NiAwbDIuOC0yLjguMTEtLjEzSDE0di41QzE0IDIwIDE1LjAxIDIxIDE2LjI1IDIxaDIuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMi41YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0yLjVDMTUuMDEgMTQgMTQgMTUgMTQgMTYuMjV2LjVIMTAuM2MtLjAzLS4wNS0uMDctLjA5LS4xMi0uMTNsLTIuNzktMi44YTEuMjYgMS4yNiAwIDAgMC0uMTMtLjExdi0zLjdoLjVDOSAxMCAxMCA5IDEwIDcuNzR2LTIuNUMxMCA0IDkgMyA3Ljc1IDNoLTIuNVpNNC41IDUuMjVjMC0uNDIuMzMtLjc1Ljc1LS43NWgyLjVjLjQyIDAgLjc1LjMzLjc1Ljc1djIuNWMwIC40Mi0uMzMuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNVpNNC4wNiAxNy41bDIuNDQtMi40NCAyLjQ0IDIuNDQtMi40NCAyLjQ0LTIuNDQtMi40NFptMTIuMi0yaDIuNDljLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWMwIC40Mi0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd2NoYXJ0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y0YTMgMyAwIDAgMCAzIDNoMXY1LjI3YTIgMiAwIDAgMC0uNDEuMzJsLTQgNGEyIDIgMCAwIDAgMCAyLjgzbDQgNGEyIDIgMCAwIDAgMi44MyAwbDQtNGEyIDIgMCAwIDAgLjMyLS40MkgxOXYxYTMgMyAwIDAgMCAzIDNoNGEzIDMgMCAwIDAgMy0zdi00YTMgMyAwIDAgMC0zLTNoLTRhMyAzIDAgMCAwLTMgM3YxaC01LjI2YTIgMiAwIDAgMC0uMzItLjQxbC00LTRhMiAyIDAgMCAwLS40Mi0uMzJWMTNoMWEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2WlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd2NoYXJ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3djaGFydDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDRhMyAzIDAgMCAxIDMgM3Y0YTMgMyAwIDAgMS0zIDNIOXY1LjI3YTIgMiAwIDAgMSAuNDIuMzJsNCA0YTIgMiAwIDAgMSAuMzIuNDFIMTl2LTFhMyAzIDAgMCAxIDMtM2g0YTMgMyAwIDAgMSAzIDN2NGEzIDMgMCAwIDEtMyAzaC00YTMgMyAwIDAgMS0zLTN2LTFoLTUuMjZhMiAyIDAgMCAxLS4zMi40MmwtNCA0YTIgMiAwIDAgMS0yLjgzIDBsLTQtNGEyIDIgMCAwIDEgMC0yLjgzbDQtNGEyIDIgMCAwIDEgLjQxLS4zMlYxM0g2YTMgMyAwIDAgMS0zLTNWNlptNSAxNC00IDQgNCA0IDQtNC00LTRaTTYgNWExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDZabTE2IDE2YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd2NoYXJ0Q2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0Q2lyY2xlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm00LTMuNXYyYzAgLjI4LjIyLjUuNS41SDd2MS44bC0xLjM1IDEuMzVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVjLjIuMi41LjIuNyAwTDkuMjEgMTNIMTF2LjVjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41di41SDkuMkw4IDEwLjhWOWguNWEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmxvd2NoYXJ0Q2lyY2xlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3djaGFydENpcmNsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgNi41YzAtLjI4LjIyLS41LjUtLjVoMmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVIOHYxLjhMOS4yIDEySDExdi0uNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEtLjUtLjVWMTNIOS4ybC0xLjM1IDEuMzVhLjUuNSAwIDAgMS0uNyAwbC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN0w3IDEwLjc5VjloLS41YS41LjUgMCAwIDEtLjUtLjV2LTJaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTgtN2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsb3djaGFydENpcmNsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zsb3djaGFydENpcmNsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBabTQuNS00Ljc1djIuNWMwIC40MS4zNC43NS43NS43NWguNXYyLjY5bC0xLjc4IDEuNzhjLS4zLjMtLjMuNzcgMCAxLjA2bDIgMmMuMy4zLjc3LjMgMS4wNiAwbDEuNzgtMS43OGgyLjY5di41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMi41YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwLS43NS43NXYuNWgtMi42OWwtMS41Ni0xLjU2VjEwLjVoLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMC0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBGbG93Y2hhcnRDaXJjbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmxvd2NoYXJ0Q2lyY2xlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNy4yNSA2LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYyLjVjMCAuNDEuMzQuNzUuNzUuNzVoLjV2Mi42OWwtMS43OCAxLjc4Yy0uMy4zLS4zLjc3IDAgMS4wNmwyIDJjLjMuMy43Ny4zIDEuMDYgMGwxLjc4LTEuNzhoMi42OXYuNWMwIC40MS4zNC43NS43NS43NWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMi41YS43NS43NSAwIDAgMC0uNzUuNzV2LjVoLTIuNjlsLTEuNTYtMS41NlYxMC41aC41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0yLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuNVpNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBabTEwLTguNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1ZW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1ZW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC43MiAyLjA1YS41LjUgMCAwIDAtLjQ0IDBsLTUgMi41QS41LjUgMCAwIDAgNSA1djkuNWMwIC4xOC4xLjM0LjI0LjQzbDUgM2EuNS41IDAgMCAwIC43Ni0uNDN2LTQuN2w0LjcyLTIuMzVhLjUuNSAwIDAgMCAwLS45bC00LjEtMi4wNSA0LjEtMi4wNWEuNS41IDAgMCAwIDAtLjlsLTUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1ZW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsdWVudDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjI4IDIuMDVhLjUuNSAwIDAgMSAuNDQgMGw1IDIuNWEuNS41IDAgMCAxIDAgLjlsLTQuMSAyLjA1IDQuMSAyLjA1YS41LjUgMCAwIDEgMCAuOUwxMSAxMi44djQuNjlhLjUuNSAwIDAgMS0uNzYuNDNsLTUtM0EuNS41IDAgMCAxIDUgMTQuNVY1YzAtLjE5LjEtLjM2LjI4LS40NWw1LTIuNVpNNiA1LjMxdjguOWw0IDIuNHYtMy44YTEgMSAwIDAgMSAuNTUtLjlMMTQuMzggMTBsLTQuMS0yLjA1YS41LjUgMCAwIDEgMC0uOUwxNC4zOCA1IDEwLjUgMy4wNiA2IDUuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWVudDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsdWVudDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuNTkgMi4wOGEuNzUuNzUgMCAwIDAtLjY4IDBsLTYgM2EuNzUuNzUgMCAwIDAtLjQxLjY3djExLjczYzAgLjI2LjEzLjUuMzUuNjRsNiAzLjc3YS43NS43NSAwIDAgMCAxLjE1LS42NHYtNi4wM2w1LjU5LTIuOGEuNzUuNzUgMCAwIDAgMC0xLjM0bC00LjY2LTIuMzMgNC42Ni0yLjMzYS43NS43NSAwIDAgMCAwLTEuMzRsLTYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWVudDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbHVlbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS45MSAyLjA4Yy4yMi0uMS40Ni0uMS42OCAwbDYgM2EuNzUuNzUgMCAwIDEgMCAxLjM0bC00LjY2IDIuMzMgNC42NiAyLjMzYS43NS43NSAwIDAgMSAwIDEuMzRMMTMgMTUuMjJ2Ni4wM2EuNzUuNzUgMCAwIDEtMS4xNS42NGwtNi0zLjc3YS43NS43NSAwIDAgMS0uMzUtLjY0VjUuNzVjMC0uMjguMTYtLjU0LjQxLS42N2w2LTNaTTcgNi4yMnYxMC44NWw0LjUgMi44MnYtNS4xNGMwLS4yOC4xNi0uNTQuNDEtLjY3bDQuNjYtMi4zMy00LjY2LTIuMzNhLjc1Ljc1IDAgMCAxIDAtMS4zNGw0LjY2LTIuMzMtNC4zMi0yLjE2TDcgNi4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWVudDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsdWVudDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTcuNDUgMi4xYTEgMSAwIDAgMC0uOSAwbC04IDRBMSAxIDAgMCAwIDggN3YxNy41YzAgLjM2LjIuNy41MS44N2w4IDQuNUExIDEgMCAwIDAgMTggMjl2LTkuMzhsNy40NS0zLjczYTEgMSAwIDAgMCAwLTEuNzhMMTkuMjQgMTFsNi4yLTMuMWExIDEgMCAwIDAgMC0xLjhsLTgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWVudDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbHVlbnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNi41NSAyLjFhMSAxIDAgMCAxIC45IDBsOCA0YTEgMSAwIDAgMSAwIDEuOEwxOS4yNCAxMWw2LjIgMy4xYTEgMSAwIDAgMSAwIDEuOEwxOCAxOS42MVYyOWExIDEgMCAwIDEtMS40OS44N2wtOC00LjVBMSAxIDAgMCAxIDggMjQuNVY3YTEgMSAwIDAgMSAuNTUtLjlsOC00Wk0xMCA3LjYzdjE2LjNsNiAzLjM3VjE5YTEgMSAwIDAgMSAuNTUtLjlsNi4yMS0zLjEtNi4yLTMuMWExIDEgMCAwIDEgMC0xLjhsNi4yLTMuMUwxNyA0LjEybC03IDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWVudDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsdWVudDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjUuMTcgNC4xNmExLjUgMS41IDAgMCAwLTEuMzQgMGwtMTIgNmMtLjUuMjYtLjgzLjc4LS44MyAxLjM1djIzLjQ1YzAgLjUyLjI3IDEgLjcgMS4yN2wxMiA3LjU0QTEuNSAxLjUgMCAwIDAgMjYgNDIuNVYzMC40M2wxMS4xNy01LjU4YTEuNSAxLjUgMCAwIDAgMC0yLjY5bC05LjMyLTQuNjUgOS4zMi00LjY2YTEuNSAxLjUgMCAwIDAgMC0yLjY5bC0xMi02WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1ZW50NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZsdWVudDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTIzLjgzIDQuMTZhMS41IDEuNSAwIDAgMSAxLjM0IDBsMTIgNmExLjUgMS41IDAgMCAxIDAgMi42OGwtOS4zMiA0LjY2IDkuMzIgNC42NmExLjUgMS41IDAgMCAxIDAgMi42OEwyNiAzMC40M1Y0Mi41YTEuNSAxLjUgMCAwIDEtMi4zIDEuMjdsLTEyLTcuNTRhMS41IDEuNSAwIDAgMS0uNy0xLjI3VjExLjVjMC0uNTcuMzItMS4wOS44My0xLjM0bDEyLTZaTTE0IDEyLjQzdjIxLjdsOSA1LjY2VjI5LjVjMC0uNTcuMzItMS4wOC44My0xLjM0bDkuMzItNC42Ni05LjMyLTQuNjZhMS41IDEuNSAwIDAgMSAwLTIuNjhsOS4zMi00LjY2LTguNjUtNC4zMkwxNCAxMi40M1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWlkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFoMkM1LjMzIDEgNiAxLjY3IDYgMi41djJDNiA1LjMzIDUuMzMgNiA0LjUgNmgtMkExLjUgMS41IDAgMCAxIDEgNC41di0yWm03IDdDOCA4LjY3IDguNjcgOCA5LjUgOGg0Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgOCAxMy41di00Wm0tNSAxVjdoMXYzLjVjMCAuMjguMjIuNS41LjVIN3YxSDQuNUExLjUgMS41IDAgMCAxIDMgMTAuNVpNNyAzdjFoMy41Yy4yOCAwIC41LjIyLjUuNVY3aDFWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg3WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1aWQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxaDJDNS4zMyAxIDYgMS42NyA2IDIuNXYyQzYgNS4zMyA1LjMzIDYgNC41IDZoLTJBMS41IDEuNSAwIDAgMSAxIDQuNXYtMlpNMi41IDJhLjUuNSAwIDAgMC0uNS41djJjMCAuMjguMjIuNS41LjVoMmEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTJaTTggOS41QzggOC42NyA4LjY3IDggOS41IDhoNGMuODMgMCAxLjUuNjcgMS41IDEuNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDggMTMuNXYtNFpNOS41IDlhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTRaTTMgMTAuNVY3aDF2My41YzAgLjI4LjIyLjUuNS41SDd2MUg0LjVBMS41IDEuNSAwIDAgMSAzIDEwLjVaTTcgM3YxaDMuNWMuMjggMCAuNS4yMi41LjVWN2gxVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZsdWlkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgMy41QzIgMi42NyAyLjY3IDIgMy41IDJoMkM2LjMzIDIgNyAyLjY3IDcgMy41djIuMDRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0yQTEuNSAxLjUgMCAwIDEgMiA1LjU0VjMuNVpNOCA0aDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNVY5aC0xVjUuNWEuNS41IDAgMCAwLS41LS41SDhWNFpNNSA4djUuNWMwIC4yOC4yMi41LjUuNUg5djFINS41QTEuNSAxLjUgMCAwIDEgNCAxMy41VjhoMVptNi41IDJjLS44MiAwLTEuNS42Ny0xLjUgMS41djVjMCAuODMuNjggMS41IDEuNSAxLjVoNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1aWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDRoNS41Yy44MyAwIDEuNS42NyAxLjUgMS41VjloLTFWNS41YS41LjUgMCAwIDAtLjUtLjVIOFY0Wk01IDh2NS41YzAgLjI4LjIyLjUuNS41SDl2MUg1LjVBMS41IDEuNSAwIDAgMSA0IDEzLjVWOGgxWk0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAyaDJDNi4zMyAyIDcgMi42NyA3IDMuNXYyLjA0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMkExLjUgMS41IDAgMCAxIDIgNS41NFYzLjVaTTMuNSAzYS41LjUgMCAwIDAtLjUuNXYyLjA0YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAuNS0uNVYzLjVhLjUuNSAwIDAgMC0uNS0uNWgtMlptNi41IDguNWMwLS44My42OC0xLjUgMS41LTEuNWg1Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNVptMS41LS41YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIzLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1aWQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGbHVpZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEgNWg1Ljc1QzE3Ljk4IDUgMTkgNiAxOSA3LjI1VjExaC0xLjVWNy4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NUgxMVY1Wm0tNC41IDZ2NS43NWMwIC40LjM0Ljc1Ljc1Ljc1SDExVjE5SDcuMjVDNi4wMSAxOSA1IDE3Ljk4IDUgMTYuNzVWMTFoMS41Wk0yIDQuMjVDMiAzLjAxIDMgMiA0LjI1IDJoMy41QzguOTkgMiAxMCAzIDEwIDQuMjV2My41QzEwIDguOTkgOSAxMCA3Ljc1IDEwaC0zLjVDMy4wMSAxMCAyIDkgMiA3Ljc1di0zLjVabTEwIDEwYzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDUuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTUuNUMxMy4wMSAyMiAxMiAyMSAxMiAxOS43NXYtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgRmx1aWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRmx1aWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMSA1aDUuNzVDMTcuOTggNSAxOSA2IDE5IDcuMjVWMTFoLTEuNVY3LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1SDExVjVabS00LjUgNnY1Ljc1YzAgLjQuMzQuNzUuNzUuNzVIMTFWMTlINy4yNUM2LjAxIDE5IDUgMTcuOTggNSAxNi43NVYxMWgxLjVaTTIgNC4yNUMyIDMuMDEgMyAyIDQuMjUgMmgzLjVDOC45OSAyIDEwIDMgMTAgNC4yNXYzLjVDMTAgOC45OSA5IDEwIDcuNzUgMTBoLTMuNUMzLjAxIDEwIDIgOSAyIDcuNzV2LTMuNVptMi4yNS0uNzVhLjc1Ljc1IDAgMCAwLS43NS43NXYzLjVjMCAuNDEuMzQuNzUuNzUuNzVoMy41Yy40MSAwIC43NS0uMzQuNzUtLjc1di0zLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNVpNMTIgMTQuMjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoNS41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNS41QzEzLjAxIDIyIDEyIDIxIDEyIDE5Ljc1di01LjVabTIuMjUtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2NS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNS41YS43NS43NSAwIDAgMC0uNzUtLjc1aC01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41VjZoMy41OWEuNS41IDAgMCAwIC4zNS0uMTVMNy4yOSA0LjUgNS45NCAzLjE1QS41LjUgMCAwIDAgNS41OSAzSDMuNUMyLjY3IDMgMiAzLjY3IDIgNC41Wm0tMSAwQTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDguMiA0aDQuMjlBMi41IDIuNSAwIDAgMSAxNSA2LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdaTTIgN3Y0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDguMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2gxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVaTTMgOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDMgMTQuNVY4WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDhWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuNTMgMS41My0yLjYgMi41OWEuNzUuNzUgMCAwIDEtLjUyLjIySDJabTAgMS41djguMjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoMTMuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di05YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTUuNjlMOS43MiA4Ljg0Yy0uNDIuNDItMSAuNjYtMS42LjY2SDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDYuMjVWOGg0LjYzYy4yIDAgLjM5LS4wOC41My0uMjJsMS41My0xLjUzLTEuNTMtMS41M2EuNzUuNzUgMCAwIDAtLjUzLS4yMkg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVptLTEuNSAwQzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS44NCAxLjg0aDcuMTljMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNXY5YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNy43NVY2LjI1Wk0zLjUgOS41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTMuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTljMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC03LjE5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXIyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXIyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgNi43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSAzaDMuNjdjLjczIDAgMS40My4yOSAxLjk1LjhsMS44OCAxLjg5LTIuOTQgMi45NGMtLjI0LjI0LS41Ni4zNy0uODkuMzdIMlY2Ljc1Wm0wIDMuNzV2OS43NUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGgxNi41QTMuNzUgMy43NSAwIDAgMCAyNiAyMC4yNVY5Ljc1QTMuNzUgMy43NSAwIDAgMCAyMi4yNSA2aC03LjE5bC0zLjcgMy43Yy0uNTEuNTEtMS4yLjgtMS45NC44SDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXIyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy41IDYuNjhWOWg1LjkyYy4zMyAwIC42NS0uMTMuODktLjM3bDEuODgtMS44OC0xLjg4LTEuODhhMS4yNSAxLjI1IDAgMCAwLS44OS0uMzdINS43NWMtMS4yMiAwLTIuMjEuOTctMi4yNSAyLjE4Wk0yIDkuODNWNi43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSAzaDMuNjdjLjczIDAgMS40My4yOSAxLjk1LjhsMi4yIDIuMmg4LjY4QTMuNzUgMy43NSAwIDAgMSAyNiA5Ljc1djEwLjVBMy43NSAzLjc1IDAgMCAxIDIyLjI1IDI0SDUuNzVBMy43NSAzLjc1IDAgMCAxIDIgMjAuMjVWOS44M1ptMS41LjY3djkuNzVjMCAxLjI0IDEuMDEgMi4yNSAyLjI1IDIuMjVoMTYuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY5Ljc1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC04LjY5bC0yLjIgMi4yYy0uNTEuNTEtMS4yLjgtMS45NC44SDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlcjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlcjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiA4LjVBNC41IDQuNSAwIDAgMSA2LjUgNGgzLjk2Yy45MyAwIDEuODIuMzcgMi40OCAxLjAzTDE1IDcuMDlsLTMuNDcgMy40N2ExLjUgMS41IDAgMCAxLTEuMDcuNDRIMlY4LjVaTTIgMTN2MTAuNUE0LjUgNC41IDAgMCAwIDYuNSAyOGgxOWE0LjUgNC41IDAgMCAwIDQuNS00LjVWMTJhNC41IDQuNSAwIDAgMC00LjUtNC41aC04LjA5bC00LjQ3IDQuNDdBMy41IDMuNSAwIDAgMSAxMC40NiAxM0gyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlcjMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgOC41VjExaDYuNDZjLjQgMCAuNzgtLjE2IDEuMDctLjQ0bDIuMDYtMi4wNi0yLjA2LTIuMDZBMS41IDEuNSAwIDAgMCAxMC40NiA2SDYuNUEyLjUgMi41IDAgMCAwIDQgOC41Wm0tMiAwQTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNS40IDcuNUgyNS41QTQuNSA0LjUgMCAwIDEgMzAgMTJ2MTEuNWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTE5QTQuNSA0LjUgMCAwIDEgMiAyMy41di0xNVpNNCAxM3YxMC41QTIuNSAyLjUgMCAwIDAgNi41IDI2aDE5YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxMmEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTUuNDFsLTIuNDcgMi40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXI0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXI0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMTIuMjVDNCA4LjggNi44IDYgMTAuMjUgNmg2LjQ2YzEgMCAxLjk1LjQgMi42NiAxLjFsMy4zOCAzLjM4LTUuMTUgNS4xNWMtLjI0LjI0LS41NS4zNy0uODkuMzdINHYtMy43NVptMCA2LjI1djE2LjI1QzQgMzguMiA2LjggNDEgMTAuMjUgNDFoMjcuNUM0MS4yIDQxIDQ0IDM4LjIgNDQgMzQuNzV2LTE3LjVDNDQgMTMuOCA0MS4yIDExIDM3Ljc1IDExSDI1Ljc3bC02LjQgNi40Yy0uNy43LTEuNjYgMS4xLTIuNjYgMS4xSDRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXI0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNi41IDEyLjI1VjE2aDEwLjIxYy4zNCAwIC42NS0uMTMuODktLjM3bDMuMzgtMy4zOC0zLjM4LTMuMzhhMS4yNSAxLjI1IDAgMCAwLS44OS0uMzdoLTYuNDZhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NVptLTIuNSAwQzQgOC44IDYuOCA2IDEwLjI1IDZoNi40NmMxIDAgMS45NS40IDIuNjYgMS4xbDMuOSAzLjloMTQuNDhDNDEuMiAxMSA0NCAxMy44IDQ0IDE3LjI1djE3LjVDNDQgMzguMiA0MS4yIDQxIDM3Ljc1IDQxaC0yNy41QTYuMjUgNi4yNSAwIDAgMSA0IDM0Ljc1di0yMi41Wm0yLjUgNi4yNXYxNi4yNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aDI3LjVhMy43NSAzLjc1IDAgMCAwIDMuNzUtMy43NXYtMTcuNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1SDIzLjI3bC0zLjkgMy45Yy0uNy43LTEuNjYgMS4xLTIuNjYgMS4xSDYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMSA0LjVBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOCAzLjc5IDUuOTQgNS44NWEuNS41IDAgMCAxLS4zNS4xNUgxVjQuNVpNMSA3djQuNUEyLjUgMi41IDAgMCAwIDMuNSAxNGgzLjFBNS41IDUuNSAwIDAgMSAxNSA3LjI2VjYuNUEyLjUgMi41IDAgMCAwIDEyLjUgNEg5LjJMNi42NiA2LjU2QTEuNSAxLjUgMCAwIDEgNS41OSA3SDFabTE1IDQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxMUg5LjVhLjUuNSAwIDAgMCAwIDFIMTF2MS41YS41LjUgMCAwIDAgMSAwVjEyaDEuNWEuNS41IDAgMCAwIDAtMUgxMlY5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBZGQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQWRkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVWNmgzLjU5YS41LjUgMCAwIDAgLjM1LS4xNUw3LjI5IDQuNSA1Ljk0IDMuMTVBLjUuNSAwIDAgMCA1LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVabS0xIDBBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOC4yIDRoNC4yOUEyLjUgMi41IDAgMCAxIDE1IDYuNXYuNzZhNS41IDUuNSAwIDAgMC0xLS42NnYtLjFjMC0uODMtLjY3LTEuNS0xLjUtMS41SDguMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi43Yy4xLjM1LjI0LjY4LjQgMUgzLjVBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdabTE1IDdhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTFIOS41YS41LjUgMCAwIDAgMCAxSDExdjEuNWEuNS41IDAgMCAwIDEgMFYxMmgxLjVhLjUuNSAwIDAgMCAwLTFIMTJWOS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQWRkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYTUuNSA1LjUgMCAwIDEgOC40LTYuNzRWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1aC00LjhMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDJabTE3IDYuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm0xNiA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQWRkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDhWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuNTMgMS41My0yLjYgMi41OWEuNzUuNzUgMCAwIDEtLjUyLjIySDJabTAgMS41djguMjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoNi43N0E2LjUgNi41IDAgMCAxIDIyIDEyLjgxVjguNzVjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtNS42OUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMlptMjEgOGE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWm0tNSAuNXYyLjVhLjUuNSAwIDEgMS0xIDBWMThoLTIuNWEuNS41IDAgMCAxIDAtMUgxN3YtMi41YS41LjUgMCAxIDEgMSAwVjE3aDIuNWEuNS41IDAgMCAxIDAgMUgxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgNi4yNVY4aDQuNjNjLjIgMCAuMzktLjA4LjUzLS4yMmwxLjUzLTEuNTMtMS41My0xLjUzYS43NS43NSAwIDAgMC0uNTMtLjIySDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0tMS41IDBDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjg0IDEuODRoNy4xOWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djQuMDZhNi41MiA2LjUyIDAgMCAwLTEuNS0xLjA4VjguNzVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC03LjE5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgzLjV2OC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjA2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBZGQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBZGQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgNi43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSAzaDMuNjdjLjczIDAgMS40My4yOSAxLjk1LjhsMS44OCAxLjg5LTIuOTQgMi45NGMtLjI0LjI0LS41Ni4zNy0uODkuMzdIMlY2Ljc1Wm0wIDMuNzV2OS43NUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGg4Ljc1QTcuNSA3LjUgMCAwIDEgMjYgMTQuNFY5Ljc1QTMuNzUgMy43NSAwIDAgMCAyMi4yNSA2aC03LjE5bC0zLjcgMy43Yy0uNTEuNTEtMS4yLjgtMS45NC44SDJabTI1IDlhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYxOWgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMCAwIDEgMFYyMGgzLjVhLjUuNSAwIDAgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBZGQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgNi42OFY5aDUuOTJjLjMzIDAgLjY1LS4xMy44OS0uMzdsMS44OC0xLjg4LTEuODgtMS44OGExLjI1IDEuMjUgMCAwIDAtLjg5LS4zN0g1Ljc1Yy0xLjIyIDAtMi4yMS45Ny0yLjI1IDIuMThaTTIgOS44M1Y2Ljc1QTMuNzUgMy43NSAwIDAgMSA1Ljc1IDNoMy42N2MuNzMgMCAxLjQzLjI5IDEuOTUuOGwyLjIgMi4yaDguNjhBMy43NSAzLjc1IDAgMCAxIDI2IDkuNzV2NC42NWMtLjQ0LS40OC0uOTUtLjktMS41LTEuMjV2LTMuNGMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtOC42OWwtMi4yIDIuMmMtLjUxLjUxLTEuMi44LTEuOTQuOEgzLjV2OS43NWMwIDEuMjQgMS4wMSAyLjI1IDIuMjUgMi4yNWg3Ljg3Yy4yNC41NC41MyAxLjA0Ljg4IDEuNUg1Ljc1QTMuNzUgMy43NSAwIDAgMSAyIDIwLjI1VjkuODNabTI1IDkuNjdhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYxOWgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMCAwIDEgMFYyMGgzLjVhLjUuNSAwIDAgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFkZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiA4LjVBNC41IDQuNSAwIDAgMSA2LjUgNGgzLjk2Yy45MyAwIDEuODIuMzcgMi40OCAxLjAzTDE1IDcuMDlsLTMuNDcgMy40N2ExLjUgMS41IDAgMCAxLTEuMDcuNDRIMlY4LjVaTTIgMTN2MTAuNUE0LjUgNC41IDAgMCAwIDYuNSAyOGgxMC4wMkE5IDkgMCAwIDEgMzAgMTYuM1YxMmE0LjUgNC41IDAgMCAwLTQuNS00LjVoLTguMDlsLTQuNDcgNC40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDJabTIyIDE3LjVhNy41IDcuNSAwIDEgMCAwLTE1IDcuNSA3LjUgMCAwIDAgMCAxNVptMS0xMi4yNVYyMmgzLjc1YS43NS43NSAwIDAgMSAwIDEuNUgyNXYzLjc1YS43NS43NSAwIDAgMS0xLjUgMFYyMy41aC0zLjc1YS43NS43NSAwIDAgMSAwLTEuNWgzLjc1di0zLjc1YS43NS43NSAwIDAgMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFkZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBZGQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDguNVYxMWg2LjQ2Yy40IDAgLjc4LS4xNiAxLjA3LS40NGwyLjA2LTIuMDYtMi4wNi0yLjA2QTEuNSAxLjUgMCAwIDAgMTAuNDYgNkg2LjVBMi41IDIuNSAwIDAgMCA0IDguNVptLTIgMEE0LjUgNC41IDAgMCAxIDYuNSA0aDMuOTZjLjkzIDAgMS44Mi4zNyAyLjQ4IDEuMDNMMTUuNCA3LjVIMjUuNUE0LjUgNC41IDAgMCAxIDMwIDEydjQuM2MtLjYtLjU1LTEuMjctMS0yLTEuMzZWMTJhMi41IDIuNSAwIDAgMC0yLjUtMi41SDE1LjQxbC0yLjQ3IDIuNDdBMy41IDMuNSAwIDAgMSAxMC40NiAxM0g0djEwLjVBMi41IDIuNSAwIDAgMCA2LjUgMjZoOS4wMWMuMjUuNzEuNiAxLjM4IDEgMkg2LjVBNC41IDQuNSAwIDAgMSAyIDIzLjV2LTE1Wm0yMiAyMmE3LjUgNy41IDAgMSAwIDAtMTUgNy41IDcuNSAwIDAgMCAwIDE1Wm0xLTEyLjI1VjIyaDMuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDI1djMuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIzLjVoLTMuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNzV2LTMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQWRkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQWRkNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00IDEyLjI1QzQgOC44IDYuOCA2IDEwLjI1IDZoNi40NmMxIDAgMS45NS40IDIuNjYgMS4xbDMuMzggMy4zOC01LjE1IDUuMTVjLS4yNC4yNC0uNTUuMzctLjg5LjM3SDR2LTMuNzVabTAgNi4yNXYxNi4yNUM0IDM4LjIgNi44IDQxIDEwLjI1IDQxaDEzLjhBMTMgMTMgMCAwIDEgNDQgMjQuNjJ2LTcuMzdDNDMuOTkgMTMuOCA0MS4yIDExIDM3Ljc0IDExSDI1Ljc3bC02LjQgNi40Yy0uNy43LTEuNjYgMS4xLTIuNjYgMS4xSDRaTTQ2IDM0YTExIDExIDAgMSAxLTIyIDAgMTEgMTEgMCAwIDEgMjIgMFptLTEwLTdhMSAxIDAgMSAwLTIgMHY2aC02YTEgMSAwIDEgMCAwIDJoNnY2YTEgMSAwIDEgMCAyIDB2LTZoNmExIDEgMCAxIDAgMC0yaC02di02WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQWRkNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFkZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYuNSAxMi4yNVYxNmgxMC4yMWMuMzQgMCAuNjUtLjEzLjg5LS4zN2wzLjM4LTMuMzgtMy4zOC0zLjM4YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3aC02LjQ2YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzVabS0yLjUgMEM0IDguOCA2LjggNiAxMC4yNSA2aDYuNDZjMSAwIDEuOTUuNCAyLjY2IDEuMWwzLjkgMy45aDE0LjQ4QzQxLjIgMTEgNDQgMTMuOCA0NCAxNy4yNXY3LjM3Yy0uNzUtLjcyLTEuNi0xLjM2LTIuNS0xLjg4di01LjQ5YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVIMjMuMjdsLTMuOSAzLjljLS43LjctMS42NiAxLjEtMi42NiAxLjFINi41djE2LjI1YTMuNzUgMy43NSAwIDAgMCAzLjc1IDMuNzVIMjIuOGMuMzMuODguNzQgMS43MiAxLjI0IDIuNUgxMC4yNUE2LjI1IDYuMjUgMCAwIDEgNCAzNC43NXYtMjIuNVpNNDYgMzRhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTAtN2ExIDEgMCAxIDAtMiAwdjZoLTZhMSAxIDAgMSAwIDAgMmg2djZhMSAxIDAgMSAwIDIgMHYtNmg2YTEgMSAwIDEgMCAwLTJoLTZ2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd0xlZnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMy4xQTUuNSA1LjUgMCAwIDEgMTUgNy4yNlY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm0xMC41IDlhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS0yLjM1LTQuODVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMC43MSAxMmgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNVY2aDMuNTlhLjUuNSAwIDAgMCAuMzUtLjE1TDcuMjkgNC41IDUuOTQgMy4xNUEuNS41IDAgMCAwIDUuNTkgM0gzLjVDMi42NyAzIDIgMy42NyAyIDQuNVptLTEgMEEyLjUgMi41IDAgMCAxIDMuNSAyaDIuMDljLjQgMCAuNzguMTYgMS4wNi40NEw4LjIgNGg0LjI5QTIuNSAyLjUgMCAwIDEgMTUgNi41di43NmE1LjUgNS41IDAgMCAwLTEtLjY2di0uMWMwLS44My0uNjctMS41LTEuNS0xLjVIOC4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gydjQuNWMwIC44My42NyAxLjUgMS41IDEuNWgyLjdjLjEuMzUuMjQuNjguNCAxSDMuNUEyLjUgMi41IDAgMCAxIDEgMTEuNXYtN1pNMTEuNSAxNmE0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLTIuMzUtNC44NWEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDEwLjcxIDEyaDIuNzlhLjUuNSAwIDAgMCAwLTFoLTIuOGwxLjE1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYTUuNSA1LjUgMCAwIDEgOC40LTYuNzRWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1aC00LjhMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDJabTEyLjUgMTFhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS0yLjM1LTQuODVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxNWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00Ljg1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd0xlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgOFY2LjI1QzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS41MyAxLjUzLTIuNiAyLjU5YS43NS43NSAwIDAgMS0uNTIuMjJIMlptMCAxLjV2OC4yNUMyIDE5LjU1IDMuNDYgMjEgNS4yNSAyMWg2Ljc3QTYuNSA2LjUgMCAwIDEgMjIgMTIuODFWOC43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC01LjY5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgyWk0xNy41IDIzYTUuNSA1LjUgMCAxIDEgMC0xMSA1LjUgNS41IDAgMCAxIDAgMTFabTMtNWEuNS41IDAgMCAwIDAtMWgtNC44bDEuNjUtMS42NWEuNS41IDAgMCAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMMTUuNzEgMThoNC43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgNi4yNVY4aDQuNjNjLjIgMCAuMzktLjA4LjUzLS4yMmwxLjUzLTEuNTMtMS41My0xLjUzYS43NS43NSAwIDAgMC0uNTMtLjIySDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0tMS41IDBDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjg0IDEuODRoNy4xOWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djQuMDZhNi41MiA2LjUyIDAgMCAwLTEuNS0xLjA4VjguNzVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC03LjE5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgzLjV2OC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjA2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVaTTE3LjUgMjNhNS41IDUuNSAwIDEgMSAwLTExIDUuNSA1LjUgMCAwIDEgMCAxMVptMy01YS41LjUgMCAwIDAgMC0xaC00LjhsMS42NS0xLjY1YS41LjUgMCAwIDAtLjctLjdsLTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43bDIuNSAyLjVhLjUuNSAwIDAgMCAuNy0uN0wxNS43MSAxOGg0Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dMZWZ0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dMZWZ0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDYuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgM2gzLjY3Yy43MyAwIDEuNDMuMjkgMS45NS44bDEuODggMS44OS0yLjk0IDIuOTRjLS4yNC4yNC0uNTYuMzctLjg5LjM3SDJWNi43NVptMCAzLjc1djkuNzVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjRoOC43NUE3LjUgNy41IDAgMCAxIDI2IDE0LjRWOS43NUEzLjc1IDMuNzUgMCAwIDAgMjIuMjUgNmgtNy4xOWwtMy43IDMuN2MtLjUxLjUxLTEuMi44LTEuOTQuOEgyWk0yMC41IDI2YTYuNSA2LjUgMCAxIDEgMC0xMyA2LjUgNi41IDAgMCAxIDAgMTNabTQtNmEuNS41IDAgMCAwIDAtMWgtNi44bDIuMTUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0zIDNhLjUuNSAwIDAgMC0uMTUuMzVjMCAuMTMuMDUuMjYuMTUuMzVsMyAzYS41LjUgMCAwIDAgLjctLjdMMTcuNzEgMjBoNi43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgNi42OFY5aDUuOTJjLjMzIDAgLjY1LS4xMy44OS0uMzdsMS44OC0xLjg4LTEuODgtMS44OGExLjI1IDEuMjUgMCAwIDAtLjg5LS4zN0g1Ljc1Yy0xLjIyIDAtMi4yMS45Ny0yLjI1IDIuMThaTTIgOS44M1Y2Ljc1QTMuNzUgMy43NSAwIDAgMSA1Ljc1IDNoMy42N2MuNzMgMCAxLjQzLjI5IDEuOTUuOGwyLjIgMi4yaDguNjhBMy43NSAzLjc1IDAgMCAxIDI2IDkuNzV2NC42NWMtLjQ0LS40OC0uOTUtLjktMS41LTEuMjV2LTMuNGMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtOC42OWwtMi4yIDIuMmMtLjUxLjUxLTEuMi44LTEuOTQuOEgzLjV2OS43NWMwIDEuMjQgMS4wMSAyLjI1IDIuMjUgMi4yNWg3Ljg3Yy4yNC41NC41MyAxLjA0Ljg4IDEuNUg1Ljc1QTMuNzUgMy43NSAwIDAgMSAyIDIwLjI1VjkuODNaTTIwLjUgMjZhNi41IDYuNSAwIDEgMSAwLTEzIDYuNSA2LjUgMCAwIDEgMCAxM1ptNC02YS41LjUgMCAwIDAgMC0xaC02LjhsMi4xNS0yLjE1YS41LjUgMCAwIDAtLjctLjdsLTMgM2EuNS41IDAgMCAwLS4xNS4zNWMwIC4xMy4wNS4yNi4xNS4zNWwzIDNhLjUuNSAwIDAgMCAuNy0uN0wxNy43MSAyMGg2Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dMZWZ0MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dMZWZ0MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yIDguNUE0LjUgNC41IDAgMCAxIDYuNSA0aDMuOTZjLjkzIDAgMS44Mi4zNyAyLjQ4IDEuMDNMMTUgNy4wOWwtMy40NyAzLjQ3YTEuNSAxLjUgMCAwIDEtMS4wNy40NEgyVjguNVpNMiAxM3YxMC41QTQuNSA0LjUgMCAwIDAgNi41IDI4aDEwLjAyQTkgOSAwIDAgMSAzMCAxNi4zVjEyYTQuNSA0LjUgMCAwIDAtNC41LTQuNWgtOC4wOWwtNC40NyA0LjQ3QTMuNSAzLjUgMCAwIDEgMTAuNDYgMTNIMlptMTQuNSAxMGE3LjUgNy41IDAgMSAwIDE1IDAgNy41IDcuNSAwIDAgMC0xNSAwWm0xMi4yNSAxaC03LjY5bDIuNzIgMi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC00LTRhLjc1Ljc1IDAgMCAxIDAtMS4wNmw0LTRhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi43MiAyLjcyaDcuNjlhLjc1Ljc1IDAgMCAxIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dMZWZ0MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93TGVmdDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgOC41VjExaDYuNDZjLjQgMCAuNzgtLjE2IDEuMDctLjQ0bDIuMDYtMi4wNi0yLjA2LTIuMDZBMS41IDEuNSAwIDAgMCAxMC40NiA2SDYuNUEyLjUgMi41IDAgMCAwIDQgOC41Wm0tMiAwQTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNS40IDcuNUgyNS41QTQuNSA0LjUgMCAwIDEgMzAgMTJ2NC4zYy0uNi0uNTUtMS4yNy0xLTItMS4zNlYxMmEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTUuNDFsLTIuNDcgMi40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDR2MTAuNUEyLjUgMi41IDAgMCAwIDYuNSAyNmg5LjAxYy4yNS43MS42IDEuMzggMSAySDYuNUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaTTE2LjUgMjNhNy41IDcuNSAwIDEgMCAxNSAwIDcuNSA3LjUgMCAwIDAtMTUgMFptMTIuMjUgMWgtNy42OWwyLjcyIDIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtNC00YS43NS43NSAwIDAgMSAwLTEuMDZsNC00YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIuNzIgMi43Mmg3LjY5YS43NS43NSAwIDAgMSAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93TGVmdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNCAxMi4yNUM0IDguOCA2LjggNiAxMC4yNSA2aDYuNDZjMSAwIDEuOTUuNCAyLjY2IDEuMWwzLjM4IDMuMzgtNS4xNSA1LjE1Yy0uMjQuMjQtLjU1LjM3LS44OS4zN0g0di0zLjc1Wm0wIDYuMjV2MTYuMjVDNCAzOC4yIDYuOCA0MSAxMC4yNSA0MWgxMy44QTEzIDEzIDAgMCAxIDQ0IDI0LjYydi03LjM3QzQzLjk5IDEzLjggNDEuMiAxMSAzNy43NCAxMUgyNS43N2wtNi40IDYuNGMtLjcuNy0xLjY2IDEuMS0yLjY2IDEuMUg0Wk0zNSA0NWExMSAxMSAwIDEgMSAwLTIyIDExIDExIDAgMCAxIDAgMjJabTgtMTFhMSAxIDAgMCAwLTEtMUgzMC40MWwzLjMtMy4zYTEgMSAwIDAgMC0xLjQyLTEuNGwtNSA1YTEgMSAwIDAgMCAwIDEuNGw1IDVhMSAxIDAgMCAwIDEuNDItMS40TDMwLjQgMzVINDJhMSAxIDAgMCAwIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93TGVmdDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd0xlZnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02LjUgMTIuMjVWMTZoMTAuMjFjLjM0IDAgLjY1LS4xMy44OS0uMzdsMy4zOC0zLjM4LTMuMzgtMy4zOGExLjI1IDEuMjUgMCAwIDAtLjg5LS4zN2gtNi40NmEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1Wm0tMi41IDBDNCA4LjggNi44IDYgMTAuMjUgNmg2LjQ2YzEgMCAxLjk1LjQgMi42NiAxLjFsMy45IDMuOWgxNC40OEM0MS4yIDExIDQ0IDEzLjggNDQgMTcuMjV2Ny4zN2MtLjc1LS43Mi0xLjYtMS4zNi0yLjUtMS44OHYtNS40OWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1SDIzLjI3bC0zLjkgMy45Yy0uNy43LTEuNjYgMS4xLTIuNjYgMS4xSDYuNXYxNi4yNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDIyLjhjLjMzLjg4Ljc0IDEuNzIgMS4yNCAyLjVIMTAuMjVBNi4yNSA2LjI1IDAgMCAxIDQgMzQuNzV2LTIyLjVaTTM1IDQ1YTExIDExIDAgMSAxIDAtMjIgMTEgMTEgMCAwIDEgMCAyMlptOC0xMWExIDEgMCAwIDAtMS0xSDMwLjQxbDMuMy0zLjNhMSAxIDAgMCAwLTEuNDItMS40bC01IDVhMSAxIDAgMCAwIDAgMS40bDUgNWExIDEgMCAwIDAgMS40Mi0xLjRMMzAuNCAzNUg0MmExIDEgMCAwIDAgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMy4xQTUuNSA1LjUgMCAwIDEgMTUgNy4yNlY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm0xMC41IDBhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTIuMjkgMTFIOS41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dSaWdodDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1JpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVWNmgzLjU5YS41LjUgMCAwIDAgLjM1LS4xNUw3LjI5IDQuNSA1Ljk0IDMuMTVBLjUuNSAwIDAgMCA1LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVabS0xIDBBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOC4yIDRoNC4yOUEyLjUgMi41IDAgMCAxIDE1IDYuNXYuNzZhNS41IDUuNSAwIDAgMC0xLS42NnYtLjFjMC0uODMtLjY3LTEuNS0xLjUtMS41SDguMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi43Yy4xLjM1LjI0LjY4LjQgMUgzLjVBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdaTTExLjUgN2E0LjUgNC41IDAgMSAxIDAgOSA0LjUgNC41IDAgMCAxIDAtOVptMi4zNSA0Ljg1YS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yYS41LjUgMCAwIDAtLjcuN0wxMi4yOSAxMUg5LjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1JpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xMi41IDJhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93UmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dSaWdodDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjFjLjM2LjE4LjcuNCAxIC42NlY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVaTTE0LjUgMTBhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NWEuNS41IDAgMCAwIC4xNS0uMzUuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTRIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93UmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1JpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDhWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuNTMgMS41My0yLjYgMi41OWEuNzUuNzUgMCAwIDEtLjUyLjIySDJabTAgMS41djguMjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoNi43N0E2LjUgNi41IDAgMCAxIDIyIDEyLjgxVjguNzVjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtNS42OUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMlpNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0tMyA1YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAwIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43LjdMMTkuMjkgMTdIMTQuNVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1JpZ2h0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgNi4yNVY4aDQuNjNjLjIgMCAuMzktLjA4LjUzLS4yMmwxLjUzLTEuNTMtMS41My0xLjUzYS43NS43NSAwIDAgMC0uNTMtLjIySDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0tMS41IDBDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjg0IDEuODRoNy4xOWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djQuMDZhNi41MiA2LjUyIDAgMCAwLTEuNS0xLjA4VjguNzVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC03LjE5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgzLjV2OC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjA2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVaTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTMgNWEuNS41IDAgMCAwIDAgMWg0LjhsLTEuNjUgMS42NWEuNS41IDAgMCAwIC43LjdsMi41LTIuNWEuNS41IDAgMCAwIDAtLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNy43TDE5LjI5IDE3SDE0LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dSaWdodDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgNi43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSAzaDMuNjdjLjczIDAgMS40My4yOSAxLjk1LjhsMS44OCAxLjg5LTIuOTQgMi45NGMtLjI0LjI0LS41Ni4zNy0uODkuMzdIMlY2Ljc1Wm0wIDMuNzV2OS43NUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGg4Ljc1QTcuNSA3LjUgMCAwIDEgMjYgMTQuNFY5Ljc1QTMuNzUgMy43NSAwIDAgMCAyMi4yNSA2aC03LjE5bC0zLjcgMy43Yy0uNTEuNTEtMS4yLjgtMS45NC44SDJaTTIwLjUgMTNhNi41IDYuNSAwIDEgMSAwIDEzIDYuNSA2LjUgMCAwIDEgMC0xM1ptLTQgNmEuNS41IDAgMCAwIDAgMWg2LjhsLTIuMTUgMi4xNWEuNS41IDAgMCAwIC43LjdsMy0zYS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMy0zYS41LjUgMCAwIDAtLjcuN0wyMy4yOSAxOUgxNi41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93UmlnaHQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dSaWdodDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMuNSA2LjY4VjloNS45MmMuMzMgMCAuNjUtLjEzLjg5LS4zN2wxLjg4LTEuODgtMS44OC0xLjg4YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3SDUuNzVjLTEuMjIgMC0yLjIxLjk3LTIuMjUgMi4xOFpNMiA5LjgzVjYuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgM2gzLjY3Yy43MyAwIDEuNDMuMjkgMS45NS44bDIuMiAyLjJoOC42OEEzLjc1IDMuNzUgMCAwIDEgMjYgOS43NXY0LjY1Yy0uNDQtLjQ4LS45NS0uOS0xLjUtMS4yNXYtMy40YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC04LjY5bC0yLjIgMi4yYy0uNTEuNTEtMS4yLjgtMS45NC44SDMuNXY5Ljc1YzAgMS4yNCAxLjAxIDIuMjUgMi4yNSAyLjI1aDcuODdjLjI0LjU0LjUzIDEuMDQuODggMS41SDUuNzVBMy43NSAzLjc1IDAgMCAxIDIgMjAuMjVWOS44M1pNMjAuNSAxM2E2LjUgNi41IDAgMSAxIDAgMTMgNi41IDYuNSAwIDAgMSAwLTEzWm0tNCA2YS41LjUgMCAwIDAgMCAxaDYuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN2wzLTNhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0zLTNhLjUuNSAwIDAgMC0uNy43TDIzLjI5IDE5SDE2LjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dSaWdodDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNSA3LjA5bC0zLjQ3IDMuNDdhMS41IDEuNSAwIDAgMS0xLjA3LjQ0SDJWOC41Wk0yIDEzdjEwLjVBNC41IDQuNSAwIDAgMCA2LjUgMjhoMTAuMDJBOSA5IDAgMCAxIDMwIDE2LjNWMTJhNC41IDQuNSAwIDAgMC00LjUtNC41aC04LjA5bC00LjQ3IDQuNDdBMy41IDMuNSAwIDAgMSAxMC40NiAxM0gyWm0yOS41IDEwYTcuNSA3LjUgMCAxIDAtMTUgMCA3LjUgNy41IDAgMCAwIDE1IDBabS0xMi4yNS0xaDcuNjlsLTIuNzItMi43MmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDQgNGMuMy4zLjMuNzcgMCAxLjA2bC00IDRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwyLjcyLTIuNzJoLTcuNjlhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93UmlnaHQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMyAxMmg3LjZjLjcxIDAgMS40LS4zMSAxLjg3LS44NUwxNS4yMyA4SDI1LjVhMy41IDMuNSAwIDAgMSAzLjUgMy41djQuMDJjLjM1LjIzLjY5LjQ5IDEgLjc3VjExLjVBNC41IDQuNSAwIDAgMCAyNS41IDdIMTQuN2wtMi4yNi0yLjI3QTIuNSAyLjUgMCAwIDAgMTAuNjcgNEg2LjVBNC41IDQuNSAwIDAgMCAyIDguNXYxNUE0LjUgNC41IDAgMCAwIDYuNSAyOGgxMC4wMmE5IDkgMCAwIDEtLjU4LTFINi41QTMuNSAzLjUgMCAwIDEgMyAyMy41VjEyWm0wLTMuNUEzLjUgMy41IDAgMCAxIDYuNSA1aDQuMTdjLjQgMCAuNzguMTYgMS4wNi40NGwyLjM1IDIuMzUtMi4zNiAyLjdjLS4yOC4zMi0uNy41MS0xLjEzLjUxSDNWOC41Wk0zMS41IDIzYTcuNSA3LjUgMCAxIDEtMTUgMCA3LjUgNy41IDAgMCAxIDE1IDBabS0xMi4yNS0xYS43NS43NSAwIDAgMCAwIDEuNWg3LjY5bC0yLjcyIDIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmw0LTRjLjMtLjMuMy0uNzcgMC0xLjA2bC00LTRhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwyNi45NCAyMmgtNy42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93UmlnaHQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dSaWdodDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgOC41VjExaDYuNDZjLjQgMCAuNzgtLjE2IDEuMDctLjQ0bDIuMDYtMi4wNi0yLjA2LTIuMDZBMS41IDEuNSAwIDAgMCAxMC40NiA2SDYuNUEyLjUgMi41IDAgMCAwIDQgOC41Wm0tMiAwQTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNS40IDcuNUgyNS41QTQuNSA0LjUgMCAwIDEgMzAgMTJ2NC4zYy0uNi0uNTUtMS4yNy0xLTItMS4zNlYxMmEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTUuNDFsLTIuNDcgMi40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDR2MTAuNUEyLjUgMi41IDAgMCAwIDYuNSAyNmg5LjAxYy4yNS43MS42IDEuMzggMSAySDYuNUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaTTMxLjUgMjNhNy41IDcuNSAwIDEgMC0xNSAwIDcuNSA3LjUgMCAwIDAgMTUgMFptLTEyLjI1LTFoNy42OWwtMi43Mi0yLjcyYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsNCA0Yy4zLjMuMy43NyAwIDEuMDZsLTQgNGEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDIuNzItMi43MmgtNy42OWEuNzUuNzUgMCAwIDEgMC0xLjVaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dSaWdodDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMTIuMjVDNCA4LjggNi44IDYgMTAuMjUgNmg2LjQ2YzEgMCAxLjk1LjQgMi42NiAxLjFsMy4zOCAzLjM4LTUuMTUgNS4xNWMtLjI0LjI0LS41NS4zNy0uODkuMzdINHYtMy43NVptMCA2LjI1djE2LjI1QzQgMzguMiA2LjggNDEgMTAuMjUgNDFoMTMuOEExMyAxMyAwIDAgMSA0NCAyNC42MnYtNy4zN0M0My45OSAxMy44IDQxLjIgMTEgMzcuNzQgMTFIMjUuNzdsLTYuNCA2LjRjLS43LjctMS42NiAxLjEtMi42NiAxLjFINFpNMzUgMjNhMTEgMTEgMCAxIDEgMCAyMiAxMSAxMSAwIDAgMSAwLTIyWm0tOCAxMWExIDEgMCAwIDAgMSAxaDExLjU5bC0zLjMgMy4zYTEgMSAwIDAgMCAxLjQyIDEuNGw1LTVhMSAxIDAgMCAwIDAtMS40bC01LTVhMSAxIDAgMCAwLTEuNDIgMS40bDMuMyAzLjNIMjhhMSAxIDAgMCAwLTEgMVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1JpZ2h0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93UmlnaHQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02LjUgMTIuMjVWMTZoMTAuMjFjLjM0IDAgLjY1LS4xMy44OS0uMzdsMy4zOC0zLjM4LTMuMzgtMy4zOGExLjI1IDEuMjUgMCAwIDAtLjg5LS4zN2gtNi40NmEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1Wm0tMi41IDBDNCA4LjggNi44IDYgMTAuMjUgNmg2LjQ2YzEgMCAxLjk1LjQgMi42NiAxLjFsMy45IDMuOWgxNC40OEM0MS4yIDExIDQ0IDEzLjggNDQgMTcuMjV2Ny4zN2MtLjc1LS43Mi0xLjYtMS4zNi0yLjUtMS44OHYtNS40OWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1SDIzLjI3bC0zLjkgMy45Yy0uNy43LTEuNjYgMS4xLTIuNjYgMS4xSDYuNXYxNi4yNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDIyLjhjLjMzLjg4Ljc0IDEuNzIgMS4yNCAyLjVIMTAuMjVBNi4yNSA2LjI1IDAgMCAxIDQgMzQuNzV2LTIyLjVaTTM1IDIzYTExIDExIDAgMSAxIDAgMjIgMTEgMTEgMCAwIDEgMC0yMlptLTggMTFhMSAxIDAgMCAwIDEgMWgxMS41OWwtMy4zIDMuM2ExIDEgMCAwIDAgMS40MiAxLjRsNS01YTEgMSAwIDAgMCAwLTEuNGwtNS01YTEgMSAwIDAgMC0xLjQyIDEuNGwzLjMgMy4zSDI4YTEgMSAwIDAgMC0xIDFaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dVcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93VXAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMy4xQTUuNSA1LjUgMCAwIDEgMTUgNy4yNlY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm0xNSA0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxMSAxMC43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMkEuNS41IDAgMCAwIDExLjUgOWEuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93VXAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dVcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41VjZoMy41OWEuNS41IDAgMCAwIC4zNS0uMTVMNy4yOSA0LjUgNS45NCAzLjE1QS41LjUgMCAwIDAgNS41OSAzSDMuNUMyLjY3IDMgMiAzLjY3IDIgNC41Wm0tMSAwQTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDguMiA0aDQuMjlBMi41IDIuNSAwIDAgMSAxNSA2LjV2Ljc2YTUuNSA1LjUgMCAwIDAtMS0uNjZ2LS4xYzAtLjgzLS42Ny0xLjUtMS41LTEuNUg4LjJMNi42NiA2LjU2QTEuNSAxLjUgMCAwIDEgNS41OSA3SDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuN2MuMS4zNS4yNC42OC40IDFIMy41QTIuNSAyLjUgMCAwIDEgMSAxMS41di03Wm0xNSA3YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC44NS0yLjM1LTIgMmEuNS41IDAgMCAwIC43LjdMMTEgMTAuNzF2Mi43OWEuNS41IDAgMCAwIDEgMHYtMi44bDEuMTUgMS4xNWEuNS41IDAgMCAwIC43LS43bC0yLTJBLjUuNSAwIDAgMCAxMS41IDlhLjUuNSAwIDAgMC0uMzUuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1VwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dVcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xNyA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93VXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dVcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjFjLjM2LjE4LjcuNCAxIC42NlY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTE2IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00Ljg1LTIuMzUtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAwIDAgMSAwdi0yLjhsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckFycm93VXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1VwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDhWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuNTMgMS41My0yLjYgMi41OWEuNzUuNzUgMCAwIDEtLjUyLjIySDJabTAgMS41djguMjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoNi43N0E2LjUgNi41IDAgMCAxIDIyIDEyLjgxVjguNzVjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtNS42OUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMlptMjEgOGE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNiAzYS41LjUgMCAwIDAgMSAwdi00LjhsMS42NSAxLjY1YS41LjUgMCAwIDAgLjctLjdsLTIuNS0yLjVhLjUuNSAwIDAgMC0uNyAwbC0yLjUgMi41YS41LjUgMCAwIDAgLjcuN0wxNyAxNS43MXY0Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dVcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1VwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDYuMjVWOGg0LjYzYy4yIDAgLjM5LS4wOC41My0uMjJsMS41My0xLjUzLTEuNTMtMS41M2EuNzUuNzUgMCAwIDAtLjUzLS4yMkg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVptLTEuNSAwQzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS44NCAxLjg0aDcuMTljMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNXY0LjA2YTYuNTIgNi41MiAwIDAgMC0xLjUtMS4wOFY4Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNy4xOUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMy41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi4wNmMuMTguNTMuNDIgMS4wNC43MSAxLjVINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNy43NVY2LjI1Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS02IDNhLjUuNSAwIDAgMCAxIDB2LTQuOGwxLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMi41LTIuNWEuNS41IDAgMCAwLS43IDBsLTIuNSAyLjVhLjUuNSAwIDAgMCAuNy43TDE3IDE1LjcxdjQuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1VwMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dVcDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMiA2Ljc1QTMuNzUgMy43NSAwIDAgMSA1Ljc1IDNoMy42N2MuNzMgMCAxLjQzLjI5IDEuOTUuOGwxLjg4IDEuODktMi45NCAyLjk0Yy0uMjQuMjQtLjU2LjM3LS44OS4zN0gyVjYuNzVabTAgMy43NXY5Ljc1QTMuNzUgMy43NSAwIDAgMCA1Ljc1IDI0aDguNzVBNy41IDcuNSAwIDAgMSAyNiAxNC40VjkuNzVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDZoLTcuMTlsLTMuNyAzLjdjLS41MS41MS0xLjIuOC0xLjk0LjhIMlptMjUgOWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tNyA0YS41LjUgMCAwIDAgMSAwdi02LjhsMi4xNSAyLjE1YS41LjUgMCAwIDAgLjctLjdsLTMtM2EuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNWwtMyAzYS41LjUgMCAwIDAgLjcuN0wyMCAxNi43MXY2Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dVcDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1VwMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy41IDYuNjhWOWg1LjkyYy4zMyAwIC42NS0uMTMuODktLjM3bDEuODgtMS44OC0xLjg4LTEuODhhMS4yNSAxLjI1IDAgMCAwLS44OS0uMzdINS43NWMtMS4yMiAwLTIuMjEuOTctMi4yNSAyLjE4Wk0yIDkuODNWNi43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSAzaDMuNjdjLjczIDAgMS40My4yOSAxLjk1LjhsMi4yIDIuMmg4LjY4QTMuNzUgMy43NSAwIDAgMSAyNiA5Ljc1djQuNjVjLS40NC0uNDgtLjk1LS45LTEuNS0xLjI1di0zLjRjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTguNjlsLTIuMiAyLjJjLS41MS41MS0xLjIuOC0xLjk0LjhIMy41djkuNzVjMCAxLjI0IDEuMDEgMi4yNSAyLjI1IDIuMjVoNy44N2MuMjQuNTQuNTMgMS4wNC44OCAxLjVINS43NUEzLjc1IDMuNzUgMCAwIDEgMiAyMC4yNVY5LjgzWm0yNSA5LjY3YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS03IDRhLjUuNSAwIDAgMCAxIDB2LTYuOGwyLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMy0zYS41LjUgMCAwIDAtLjM1LS4xNS41LjUgMCAwIDAtLjM1LjE1bC0zIDNhLjUuNSAwIDAgMCAuNy43TDIwIDE2LjcxdjYuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1VwMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQXJyb3dVcDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiA4LjVBNC41IDQuNSAwIDAgMSA2LjUgNGgzLjk2Yy45MyAwIDEuODIuMzcgMi40OCAxLjAzTDE1IDcuMDlsLTMuNDcgMy40N2ExLjUgMS41IDAgMCAxLTEuMDcuNDRIMlY4LjVaTTIgMTN2MTAuNUE0LjUgNC41IDAgMCAwIDYuNSAyOGgxMC4wMkE5IDkgMCAwIDEgMzAgMTYuM1YxMmE0LjUgNC41IDAgMCAwLTQuNS00LjVoLTguMDlsLTQuNDcgNC40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDJabTI5LjUgMTBhNy41IDcuNSAwIDEgMS0xNSAwIDcuNSA3LjUgMCAwIDEgMTUgMFpNMjUgMjAuMDZsMi43MiAyLjcyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTQtNGEuNzUuNzUgMCAwIDAtMS4wNiAwbC00IDRhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwyLjcyLTIuNzJ2Ny42OWEuNzUuNzUgMCAwIDAgMS41IDB2LTcuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJBcnJvd1VwMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93VXAzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDguNVYxMWg2LjQ2Yy40IDAgLjc4LS4xNiAxLjA3LS40NGwyLjA2LTIuMDYtMi4wNi0yLjA2QTEuNSAxLjUgMCAwIDAgMTAuNDYgNkg2LjVBMi41IDIuNSAwIDAgMCA0IDguNVptLTIgMEE0LjUgNC41IDAgMCAxIDYuNSA0aDMuOTZjLjkzIDAgMS44Mi4zNyAyLjQ4IDEuMDNMMTUuNCA3LjVIMjUuNUE0LjUgNC41IDAgMCAxIDMwIDEydjQuM2MtLjYtLjU1LTEuMjctMS0yLTEuMzZWMTJhMi41IDIuNSAwIDAgMC0yLjUtMi41SDE1LjQxbC0yLjQ3IDIuNDdBMy41IDMuNSAwIDAgMSAxMC40NiAxM0g0djEwLjVBMi41IDIuNSAwIDAgMCA2LjUgMjZoOS4wMWMuMjUuNzEuNiAxLjM4IDEgMkg2LjVBNC41IDQuNSAwIDAgMSAyIDIzLjV2LTE1Wk0zMS41IDIzYTcuNSA3LjUgMCAxIDEtMTUgMCA3LjUgNy41IDAgMCAxIDE1IDBaTTI1IDIwLjA2bDIuNzIgMi43MmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC00LTRhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtNCA0YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi43Mi0yLjcydjcuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwdi03LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dVcDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckFycm93VXA0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMTIuMjVDNCA4LjggNi44IDYgMTAuMjUgNmg2LjQ2YzEgMCAxLjk1LjQgMi42NiAxLjFsMy4zOCAzLjM4LTUuMTUgNS4xNWMtLjI0LjI0LS41NS4zNy0uODkuMzdINHYtMy43NVptMCA2LjI1djE2LjI1QzQgMzguMiA2LjggNDEgMTAuMjUgNDFoMTMuOEExMyAxMyAwIDAgMSA0NCAyNC42MnYtNy4zN0M0My45OSAxMy44IDQxLjIgMTEgMzcuNzQgMTFIMjUuNzdsLTYuNCA2LjRjLS43LjctMS42NiAxLjEtMi42NiAxLjFINFpNNDYgMzRhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwWm0tMTAuMy03LjdhMSAxIDAgMCAwLTEuNCAwbC01IDVhMSAxIDAgMCAwIDEuNCAxLjRsMy4zLTMuMjlWNDFhMSAxIDAgMSAwIDIgMFYyOS40MWwzLjMgMy4zYTEgMSAwIDAgMCAxLjQtMS40MmwtNS01WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyQXJyb3dVcDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJBcnJvd1VwNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNi41IDEyLjI1VjE2aDEwLjIxYy4zNCAwIC42NS0uMTMuODktLjM3bDMuMzgtMy4zOC0zLjM4LTMuMzhhMS4yNSAxLjI1IDAgMCAwLS44OS0uMzdoLTYuNDZhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NVptLTIuNSAwQzQgOC44IDYuOCA2IDEwLjI1IDZoNi40NmMxIDAgMS45NS40IDIuNjYgMS4xbDMuOSAzLjloMTQuNDhDNDEuMiAxMSA0NCAxMy44IDQ0IDE3LjI1djcuMzdjLS43NS0uNzItMS42LTEuMzYtMi41LTEuODh2LTUuNDlhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NUgyMy4yN2wtMy45IDMuOWMtLjcuNy0xLjY2IDEuMS0yLjY2IDEuMUg2LjV2MTYuMjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NUgyMi44Yy4zMy44OC43NCAxLjcyIDEuMjQgMi41SDEwLjI1QTYuMjUgNi4yNSAwIDAgMSA0IDM0Ljc1di0yMi41Wk00NiAzNGExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMC4zLTcuN2ExIDEgMCAwIDAtMS40IDBsLTUgNWExIDEgMCAwIDAgMS40IDEuNGwzLjMtMy4yOVY0MWExIDEgMCAxIDAgMiAwVjI5LjQxbDMuMyAzLjNhMSAxIDAgMCAwIDEuNC0xLjQybC01LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJCcmllZmNhc2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJCcmllZmNhc2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN0g5di0zLjVhMi41IDIuNSAwIDAgMSAyLjA0LTIuNDZBMi41IDIuNSAwIDAgMSAxMy41IDloMmEyLjUgMi41IDAgMCAxIDIuNDYgMi4wNGwuMDQuMDFWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1aC00LjhMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDJabTEwIDMuNXYuNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE3di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTJjLS44MyAwLTEuNS42Ny0xLjUgMS41Wm0xLjUtLjVoMmMuMjggMCAuNS4yMi41LjV2LjVoLTN2LS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJCcmllZmNhc2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyQnJpZWZjYXNlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNXY5QTIuNSAyLjUgMCAwIDAgNC41IDE3SDl2LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYyYy41LjM3Ljg0LjkxLjk2IDEuNTRsLjA0LjAxVjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVptOSA2di41aC0uNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NGMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVabTEuNS0uNWgyYy4yOCAwIC41LjIyLjUuNXYuNWgtM3YtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckdsb2JlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyR2xvYmUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMy4xQTUuNSA1LjUgMCAwIDEgMTUgNy4yNlY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm05LjU1IDEuMTVhOC45IDguOSAwIDAgMC0uNTQgMi44NWgyLjk4YTguOSA4LjkgMCAwIDAtLjU0LTIuODUgMi45MyAyLjkzIDAgMCAwLS41My0uOTFjLS4xOS0uMi0uMzMtLjI0LS40Mi0uMjQtLjEgMC0uMjMuMDUtLjQyLjI0LS4xOC4xOS0uMzYuNS0uNTMuOTFabS0uNzItLjgzQTkuOTIgOS45MiAwIDAgMCA5IDExSDcuMDNhNC41IDQuNSAwIDAgMSAyLjgtMy42OFptMy4zNCAwYTkuOTIgOS45MiAwIDAgMSAuODIgMy42OGgxLjk4YTQuNSA0LjUgMCAwIDAtMi44LTMuNjhabTIuOCA0LjY4SDE0YTkuOTIgOS45MiAwIDAgMS0uODIgMy42OCA0LjUgNC41IDAgMCAwIDIuOC0zLjY4Wm0tNC40NyA0Yy4xIDAgLjIzLS4wNS40Mi0uMjQuMTgtLjE5LjM2LS41LjUzLS45MS4zLS43My41LTEuNzIuNTQtMi44NWgtMi45OGE4LjkgOC45IDAgMCAwIC41NCAyLjg1Yy4xNy40Mi4zNS43Mi41My45MS4xOS4yLjMzLjI0LjQyLjI0Wm0tMS42Ny0uMzJBNC41IDQuNSAwIDAgMSA3LjAzIDEySDlhOS45MiA5LjkyIDAgMCAwIC44MiAzLjY4WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyR2xvYmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyR2xvYmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNVY2aDMuNTlhLjUuNSAwIDAgMCAuMzUtLjE1TDcuMjkgNC41IDUuOTQgMy4xNUEuNS41IDAgMCAwIDUuNTkgM0gzLjVDMi42NyAzIDIgMy42NyAyIDQuNVptLTEgMEEyLjUgMi41IDAgMCAxIDMuNSAyaDIuMDljLjQgMCAuNzguMTYgMS4wNi40NEw4LjIgNGg0LjI5QTIuNSAyLjUgMCAwIDEgMTUgNi41di43NmE1LjUgNS41IDAgMCAwLTEtLjY2di0uMWMwLS44My0uNjctMS41LTEuNS0xLjVIOC4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gydjQuNWMwIC44My42NyAxLjUgMS41IDEuNWgyLjdjLjEuMzUuMjQuNjguNCAxSDMuNUEyLjUgMi41IDAgMCAxIDEgMTEuNXYtN1ptOS41NSAzLjY1YTguOSA4LjkgMCAwIDAtLjU0IDIuODVoMi45OGE4LjkgOC45IDAgMCAwLS41NC0yLjg1IDIuOTMgMi45MyAwIDAgMC0uNTMtLjkxYy0uMTktLjItLjMzLS4yNC0uNDItLjI0LS4xIDAtLjIzLjA1LS40Mi4yNC0uMTguMTktLjM2LjUtLjUzLjkxWm0tLjcyLS44M0E5LjkyIDkuOTIgMCAwIDAgOSAxMUg3LjAzYTQuNSA0LjUgMCAwIDEgMi44LTMuNjhabTMuMzQgMGE5LjkyIDkuOTIgMCAwIDEgLjgyIDMuNjhoMS45OGE0LjUgNC41IDAgMCAwLTIuOC0zLjY4Wm0yLjggNC42OEgxNGE5LjkyIDkuOTIgMCAwIDEtLjgyIDMuNjggNC41IDQuNSAwIDAgMCAyLjgtMy42OFptLTQuNDcgNGMuMSAwIC4yMy0uMDUuNDItLjI0LjE4LS4xOS4zNi0uNS41My0uOTEuMy0uNzMuNS0xLjcyLjU0LTIuODVoLTIuOThhOC45IDguOSAwIDAgMCAuNTQgMi44NWMuMTcuNDIuMzUuNzIuNTMuOTEuMTkuMi4zMy4yNC40Mi4yNFptLTEuNjctLjMyQTQuNSA0LjUgMCAwIDEgNy4wMyAxMkg5YTkuOTIgOS45MiAwIDAgMCAuODIgMy42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckdsb2JlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyR2xvYmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFhNS41IDUuNSAwIDAgMSA4LjQtNi43NFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTEuNTUgMy4xNWE4LjkgOC45IDAgMCAwLS41NCAyLjg1aDIuOThhOC45IDguOSAwIDAgMC0uNTQtMi44NSAyLjkzIDIuOTMgMCAwIDAtLjUzLS45MWMtLjE5LS4yLS4zMy0uMjQtLjQyLS4yNC0uMSAwLS4yMy4wNS0uNDIuMjQtLjE4LjE5LS4zNi41LS41My45MVptLS43Mi0uODNBOS45MiA5LjkyIDAgMCAwIDEyIDE0aC0xLjk4YTQuNSA0LjUgMCAwIDEgMi44LTMuNjhabTMuMzQgMGE5LjkyIDkuOTIgMCAwIDEgLjgyIDMuNjhoMS45OGE0LjUgNC41IDAgMCAwLTIuOC0zLjY4Wm0yLjggNC42OEgxN2E5LjkyIDkuOTIgMCAwIDEtLjgyIDMuNjggNC41IDQuNSAwIDAgMCAyLjgtMy42OFptLTQuNDcgNGMuMSAwIC4yMy0uMDUuNDItLjI0LjE4LS4xOS4zNi0uNS41My0uOTEuMy0uNzMuNS0xLjcyLjU0LTIuODVoLTIuOThhOC45IDguOSAwIDAgMCAuNTQgMi44NWMuMTcuNDIuMzUuNzIuNTMuOTEuMTkuMi4zMy4yNC40Mi4yNFptLTEuNjctLjMyYTQuNSA0LjUgMCAwIDEtMi44LTMuNjhIMTJhOS45MiA5LjkyIDAgMCAwIC44MiAzLjY4WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyR2xvYmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyR2xvYmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm0xMC41NSA1LjY1YTguOSA4LjkgMCAwIDAtLjU0IDIuODVoMi45OGE4LjkgOC45IDAgMCAwLS41NC0yLjg1IDIuOTMgMi45MyAwIDAgMC0uNTMtLjkxYy0uMTktLjItLjMzLS4yNC0uNDItLjI0LS4xIDAtLjIzLjA1LS40Mi4yNC0uMTguMTktLjM2LjUtLjUzLjkxWm0tLjcyLS44M0E5LjkyIDkuOTIgMCAwIDAgMTIgMTRoLTEuOThhNC41IDQuNSAwIDAgMSAyLjgtMy42OFptMy4zNCAwYTkuOTIgOS45MiAwIDAgMSAuODIgMy42OGgxLjk4YTQuNSA0LjUgMCAwIDAtMi44LTMuNjhabTIuOCA0LjY4SDE3YTkuOTIgOS45MiAwIDAgMS0uODIgMy42OCA0LjUgNC41IDAgMCAwIDIuOC0zLjY4Wm0tNC40NyA0Yy4xIDAgLjIzLS4wNS40Mi0uMjQuMTgtLjE5LjM2LS41LjUzLS45MS4zLS43My41LTEuNzIuNTQtMi44NWgtMi45OGE4LjkgOC45IDAgMCAwIC41NCAyLjg1Yy4xNy40Mi4zNS43Mi41My45MS4xOS4yLjMzLjI0LjQyLjI0Wm0tMS42Ny0uMzJhNC41IDQuNSAwIDAgMS0yLjgtMy42OEgxMmE5LjkyIDkuOTIgMCAwIDAgLjgyIDMuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJMaWdodG5pbmcxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaWdodG5pbmcxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoNWExLjUgMS41IDAgMCAxLTEuMzgtMi4wOGwyLjA4LTVBMS41IDEuNSAwIDAgMSAxMC41OCA2aDMuNDhjLjM2IDAgLjY4LjEyLjkzLjMzQTIuNSAyLjUgMCAwIDAgMTIuNSA0SDkuMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMVptNy41IDZoMS43NWwtLjU5IDIuMzZjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLTEuMWwuNzgtMi4zNGEuNS41IDAgMCAwLS40Ny0uNjZoLTMuNDdhLjUuNSAwIDAgMC0uNDcuM2wtMi4wOCA1Yy0uMTQuMzQuMS43LjQ2LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJMaWdodG5pbmcxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGlnaHRuaW5nMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVWNmgzLjU5YS41LjUgMCAwIDAgLjM1LS4xNUw3LjI5IDQuNSA1Ljk0IDMuMTVBLjUuNSAwIDAgMCA1LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVabS0xIDBBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOC4yIDRoNC4yOUEyLjUgMi41IDAgMCAxIDE1IDYuMzNjLS4yNi0uMi0uNTgtLjMzLS45NC0uMzNoLS4xNWMtLjItLjU4LS43Ni0xLTEuNDEtMUg4LjJMNi42NiA2LjU2QTEuNSAxLjUgMCAwIDEgNS41OSA3SDJ2NC41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuNTljLjIuNTcuNzQgMSAxLjQxIDFoLTVBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdaTTguNSAxM2gxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM0YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40N2EuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpZ2h0bmluZzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpZ2h0bmluZzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDhhMS41IDEuNSAwIDAgMS0xLjM4LTIuMDhsMi4wOC01QTEuNSAxLjUgMCAwIDEgMTQuNTggOUgxOFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTAuNSA4aDEuNzVsLS41OSAyLjM2Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0xLjFsLjc4LTIuMzRhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ3YS41LjUgMCAwIDAtLjQ3LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGlnaHRuaW5nMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpZ2h0bmluZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g4YTEuNSAxLjUgMCAwIDEtMS40MS0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgxVjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVpNMTIuNSAxNmgxLjc1bC0uNTkgMi4zNmMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtMS4xbC43OC0yLjM0YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40N2EuNS41IDAgMCAwLS40Ny4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpZ2h0bmluZzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpZ2h0bmluZzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiA4VjYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjUzIDEuNTMtMi42IDIuNTlhLjc1Ljc1IDAgMCAxLS41Mi4yMkgyWm0wIDEuNXY4LjI1QzIgMTkuNTUgMy40NiAyMSA1LjI1IDIxaDEwLjcybC4yNS0xSDE0LjVhMS41IDEuNSAwIDAgMS0xLjM2LTIuMTRsMi44Mi02YTEuNSAxLjUgMCAwIDEgMS4zNi0uODZIMjJWOC43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC01LjY5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgyWk0xNy4zMiAxMmg0LjgzYS41LjUgMCAwIDEgLjQzLjc1TDIwLjc1IDE2aDEuNWMuNjQgMCAuOTkuNzYuNTYgMS4yNEwxOCAyMi43NWMtLjUuNTgtMS40NS4wOS0xLjI2LS42NkwxNy41IDE5aC0zYS41LjUgMCAwIDEtLjQ1LS43MWwyLjgyLTZhLjUuNSAwIDAgMSAuNDUtLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGlnaHRuaW5nMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpZ2h0bmluZzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA2LjI1VjhoNC42M2MuMiAwIC4zOS0uMDguNTMtLjIybDEuNTMtMS41My0xLjUzLTEuNTNhLjc1Ljc1IDAgMCAwLS41My0uMjJINS4yNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVabS0xLjUgMEMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuODQgMS44NGg3LjE5YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjVWMTFoLTEuNVY4Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNy4xOUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMy41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoOC4xM2MuMjcuMy42Ni41IDEuMTIuNWgxLjcybC0uMjUgMUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVaTTE3LjMyIDEyaDQuODNhLjUuNSAwIDAgMSAuNDMuNzVMMjAuNzUgMTZoMS41Yy42NCAwIC45OS43Ni41NiAxLjI0TDE4IDIyLjc1Yy0uNS41OC0xLjQ1LjA5LTEuMjYtLjY2TDE3LjUgMTloLTNhLjUuNSAwIDAgMS0uNDUtLjcxbDIuODItNmEuNS41IDAgMCAxIC40NS0uMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJMaW5rMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGluazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMSA0LjVBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOCAzLjc5IDUuOTQgNS44NWEuNS41IDAgMCAxLS4zNS4xNUgxVjQuNVpNMSA3djQuNUEyLjUgMi41IDAgMCAwIDMuNSAxNGgyLjg0QTMuNSAzLjUgMCAwIDEgOS41IDloNGMuNTQgMCAxLjA1LjEyIDEuNS4zNFY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm04LjUgM2EyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxM2EuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxM1ptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGluazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaW5rMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVWNmgzLjU5YS41LjUgMCAwIDAgLjM1LS4xNUw3LjI5IDQuNSA1Ljk0IDMuMTVBLjUuNSAwIDAgMCA1LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVabS0xIDBBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOC4yIDRoNC4yOUEyLjUgMi41IDAgMCAxIDE1IDYuNXYyLjg0YTMuNDggMy40OCAwIDAgMC0xLS4zVjYuNWMwLS44My0uNjctMS41LTEuNS0xLjVIOC4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gydjQuNWMwIC44My42NyAxLjUgMS41IDEuNWgyLjU0Yy4wNS4zNS4xNS42OS4zIDFIMy41QTIuNSAyLjUgMCAwIDEgMSAxMS41di03Wk05LjUgMTBhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTNhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTNabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaW5rMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS41IDQuOCA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlY1LjVaTTIgOHY2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTdoNC44NGEzLjUgMy41IDAgMCAxIDMuMTYtNWg0Yy41NCAwIDEuMDUuMTIgMS41LjM0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm0xMC41IDVhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGluazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g0Ljg0YTMuNDggMy40OCAwIDAgMS0uMy0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2NC41NGMuMzUuMDUuNjkuMTUgMSAuM1Y3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTkuNSA3LjVhMi41IDIuNSAwIDAgMCAwIDVoLjVhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zaC41YS41LjUgMCAwIDAgMC0xaC0uNVptMy41IDBhLjUuNSAwIDAgMCAwIDFoLjVhMS41IDEuNSAwIDAgMSAwIDNIMTZhLjUuNSAwIDAgMCAwIDFoLjVhMi41IDIuNSAwIDAgMCAwLTVIMTZabS00IDIuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaW5rMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDhWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuNTMgMS41My0yLjYgMi41OWEuNzUuNzUgMCAwIDEtLjUyLjIySDJabTAgMS41djguMjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoNi42M2E0Ljc1IDQuNzUgMCAwIDEgMy44Ny03LjVoMy41YzEuMDIgMCAxLjk3LjMyIDIuNzUuODhWOC43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC01LjY5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgyWm0yMSA4Ljc1YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLS4xYS43NS43NSAwIDAgMCAuMSAxLjVoLjE1YTIuMjUgMi4yNSAwIDAgMS0uMTUgNC41bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41VjIyaC4yQTMuNzUgMy43NSAwIDAgMCAyMyAxOC4yNFptLTYuNS0zYS43NS43NSAwIDAgMC0uNzUtLjc1aC0uMmEzLjc1IDMuNzUgMCAwIDAgLjIgNy41aC4xYS43NS43NSAwIDAgMC0uMS0xLjVoLS4xNWEyLjI1IDIuMjUgMCAwIDEgLjE1LTQuNWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptMy41IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGluazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA2LjI1VjhoNC42M2MuMiAwIC4zOS0uMDguNTMtLjIybDEuNTMtMS41My0xLjUzLTEuNTNhLjc1Ljc1IDAgMCAwLS41My0uMjJINS4yNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVabS0xLjUgMEMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuODQgMS44NGg3LjE5YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2NS42M2E0LjczIDQuNzMgMCAwIDAtMS41LS43MVY4Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNy4xOUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMy41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNS45MmMuMTQuNTUuMzkgMS4wNS43IDEuNUg1LjI2QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVabTIxIDEyYTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLS4xYS43NS43NSAwIDAgMCAuMSAxLjVoLjE1YTIuMjUgMi4yNSAwIDAgMS0uMTUgNC41bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41VjIyaC4yQTMuNzUgMy43NSAwIDAgMCAyMyAxOC4yNFptLTYuNS0zYS43NS43NSAwIDAgMC0uNzUtLjc1aC0uMmEzLjc1IDMuNzUgMCAwIDAgLjIgNy41aC4xYS43NS43NSAwIDAgMC0uMS0xLjVoLS4xNWEyLjI1IDIuMjUgMCAwIDEgLjE1LTQuNWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptMy41IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmsyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaW5rMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDYuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgM2gzLjY3Yy43MyAwIDEuNDMuMjkgMS45NS44bDEuODggMS44OS0yLjk0IDIuOTRjLS4yNC4yNC0uNTYuMzctLjg5LjM3SDJWNi43NVptMCAzLjc1djkuNzVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjRoOC4xM2E0Ljc1IDQuNzUgMCAwIDEgMy44Ny03LjVoNS41YzEuMDMgMCAxLjk3LjMyIDIuNzUuODhWOS43NUEzLjc1IDMuNzUgMCAwIDAgMjIuMjUgNmgtNy4xOWwtMy43IDMuN2MtLjUxLjUxLTEuMi44LTEuOTQuOEgyWk0xNy43NSAxOWEyLjI1IDIuMjUgMCAwIDAgMCA0LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNWEzLjc1IDMuNzUgMCAxIDEgMC03LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNVpNMTcgMjEuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTYuMjUgMi4yNWEyLjI1IDIuMjUgMCAwIDAgMC00LjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNWEzLjc1IDMuNzUgMCAxIDEgMCA3LjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmsyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGluazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMuNSA2LjY4VjloNS45MmMuMzMgMCAuNjUtLjEzLjg5LS4zN2wxLjg4LTEuODgtMS44OC0xLjg4YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3SDUuNzVjLTEuMjIgMC0yLjIxLjk3LTIuMjUgMi4xOFpNMiA5LjgzVjYuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgM2gzLjY3Yy43MyAwIDEuNDMuMjkgMS45NS44bDIuMiAyLjJoOC42OEEzLjc1IDMuNzUgMCAwIDEgMjYgOS43NXY3LjYzYTQuNzMgNC43MyAwIDAgMC0xLjUtLjcxVjkuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTguNjlsLTIuMiAyLjJjLS41MS41MS0xLjIuOC0xLjk0LjhIMy41djkuNzVjMCAxLjI0IDEuMDEgMi4yNSAyLjI1IDIuMjVoNy40MmMuMTQuNTUuMzkgMS4wNS43IDEuNUg1Ljc2QTMuNzUgMy43NSAwIDAgMSAyIDIwLjI1VjkuODNaTTE3Ljc1IDE5YTIuMjUgMi4yNSAwIDAgMCAwIDQuNWguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLS41YTMuNzUgMy43NSAwIDEgMSAwLTcuNWguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLS41Wk0xNyAyMS4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNi4yNSAyLjI1YTIuMjUgMi4yNSAwIDAgMCAwLTQuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41YTMuNzUgMy43NSAwIDEgMSAwIDcuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGluazMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpbmszMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNSA3LjA5bC0zLjQ3IDMuNDdhMS41IDEuNSAwIDAgMS0xLjA3LjQ0SDJWOC41Wk0yIDEzdjEwLjVBNC41IDQuNSAwIDAgMCA2LjUgMjhoOC4zYTYgNiAwIDAgMSA1LjItOWg2YzEuNTQgMCAyLjk0LjU4IDQgMS41M1YxMmE0LjUgNC41IDAgMCAwLTQuNS00LjVoLTguMDlsLTQuNDcgNC40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDJabTE5LjUgOC41YTEgMSAwIDAgMC0xLTFIMjBhNC41IDQuNSAwIDEgMCAwIDloLjVhMSAxIDAgMSAwIDAtMkgyMGEyLjUgMi41IDAgMCAxIDAtNWguNWExIDEgMCAwIDAgMS0xWm00LTFhMSAxIDAgMSAwIDAgMmguNWEyLjUgMi41IDAgMCAxIDAgNWgtLjVhMSAxIDAgMSAwIDAgMmguNWE0LjUgNC41IDAgMSAwIDAtOWgtLjVabS01IDMuNWExIDEgMCAxIDAgMCAyaDVhMSAxIDAgMSAwIDAtMmgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbmszMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGluazMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgOC41VjExaDYuNDZjLjQgMCAuNzgtLjE2IDEuMDctLjQ0bDIuMDYtMi4wNi0yLjA2LTIuMDZBMS41IDEuNSAwIDAgMCAxMC40NiA2SDYuNUEyLjUgMi41IDAgMCAwIDQgOC41Wm0tMiAwQTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNS40IDcuNUgyNS41QTQuNSA0LjUgMCAwIDEgMzAgMTJ2OC41M2E2IDYgMCAwIDAtMi0xLjE5VjEyYTIuNSAyLjUgMCAwIDAtMi41LTIuNUgxNS40MWwtMi40NyAyLjQ3QTMuNSAzLjUgMCAwIDEgMTAuNDYgMTNINHYxMC41QTIuNSAyLjUgMCAwIDAgNi41IDI2aDcuNThjLjEyLjcyLjM3IDEuNC43MiAySDYuNUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVabTE5LjUgMTNhMSAxIDAgMCAwLTEtMUgyMGE0LjUgNC41IDAgMSAwIDAgOWguNWExIDEgMCAxIDAgMC0ySDIwYTIuNSAyLjUgMCAwIDEgMC01aC41YTEgMSAwIDAgMCAxLTFabTQtMWExIDEgMCAxIDAgMCAyaC41YTIuNSAyLjUgMCAwIDEgMCA1aC0uNWExIDEgMCAxIDAgMCAyaC41YTQuNSA0LjUgMCAxIDAgMC05aC0uNVptLTUgMy41YTEgMSAwIDEgMCAwIDJoNWExIDEgMCAxIDAgMC0yaC01WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGluazQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpbms0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMTIuMjVDNCA4LjggNi44IDYgMTAuMjUgNmg2LjQ2YzEgMCAxLjk1LjQgMi42NiAxLjFsMy4zOCAzLjM4LTUuMTUgNS4xNWMtLjI0LjI0LS41NS4zNy0uODkuMzdINHYtMy43NVptMCA2LjI1djE2LjI1QzQgMzguMiA2LjggNDEgMTAuMjUgNDFoMTEuNjJhOC40MiA4LjQyIDAgMCAxLS44Ny0zLjc1QTguMTMgOC4xMyAwIDAgMSAyOSAyOWgxMGMxLjkgMCAzLjYzLjY4IDUgMS44VjE3LjI2QzQ0IDEzLjggNDEuMiAxMSAzNy43NSAxMUgyNS43N2wtNi40IDYuNGMtLjcuNy0xLjY2IDEuMS0yLjY2IDEuMUg0Wm0xOSAxOC43NUMyMyAzMy44IDI1LjggMzEgMjkuMjUgMzFoMS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMS41YTMuNzUgMy43NSAwIDEgMCAwIDcuNWgxLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xLjVBNi4yNSA2LjI1IDAgMCAxIDIzIDM3LjI1Wm0yMiAwQzQ1IDMzLjggNDIuMiAzMSAzOC43NSAzMWgtMS41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxLjVhMy43NSAzLjc1IDAgMSAxIDAgNy41aC0xLjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDEuNWMzLjQ1IDAgNi4yNS0yLjggNi4yNS02LjI1Wm0tMTcgMGMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg5LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC05LjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpbms0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGluazQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYuNSAxMi4yNVYxNmgxMC4yMWMuMzQgMCAuNjUtLjEzLjg5LS4zN2wzLjM4LTMuMzgtMy4zOC0zLjM4YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3aC02LjQ2YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzVabS0yLjUgMEM0IDguOCA2LjggNiAxMC4yNSA2aDYuNDZjMSAwIDEuOTUuNCAyLjY2IDEuMWwzLjkgMy45aDE0LjQ4QzQxLjIgMTEgNDQgMTMuOCA0NCAxNy4yNXYxMy41NmE3LjkxIDcuOTEgMCAwIDAtMi41LTEuNFYxNy4yNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1SDIzLjI3bC0zLjkgMy45Yy0uNy43LTEuNjYgMS4xLTIuNjYgMS4xSDYuNXYxNi4yNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aDEwLjg0Yy4xMy44OS40IDEuNzMuNzggMi41SDEwLjI1QTYuMjUgNi4yNSAwIDAgMSA0IDM0Ljc1di0yMi41Wm0xOSAyNUMyMyAzMy44IDI1LjggMzEgMjkuMjUgMzFoMS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMS41YTMuNzUgMy43NSAwIDEgMCAwIDcuNWgxLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC0xLjVBNi4yNSA2LjI1IDAgMCAxIDIzIDM3LjI1Wm0yMiAwQzQ1IDMzLjggNDIuMiAzMSAzOC43NSAzMWgtMS41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxLjVhMy43NSAzLjc1IDAgMSAxIDAgNy41aC0xLjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDEuNWMzLjQ1IDAgNi4yNS0yLjggNi4yNS02LjI1Wm0tMTcgMGMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg5LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC05LjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpc3QxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJMaXN0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDQuNUEyLjUgMi41IDAgMCAxIDMuNSAyaDIuMDljLjQgMCAuNzguMTYgMS4wNi40NEw4IDMuNzkgNS45NCA1Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDFWNC41Wk0xIDd2NC41QTIuNSAyLjUgMCAwIDAgMy41IDE0aDQuNTljLjA2LS4xOS4xNi0uMzYuMy0uNWExLjUgMS41IDAgMCAxIDAtMkExLjUgMS41IDAgMCAxIDkuNSA5aDQuOTljLjE4IDAgLjM0LjAzLjUuMDlWNi41QTIuNSAyLjUgMCAwIDAgMTIuNSA0SDkuMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMVptOC41IDNhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMCAyYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTkgMTQuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpc3QxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGlzdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41VjZoMy41OWEuNS41IDAgMCAwIC4zNS0uMTVMNy4yOSA0LjUgNS45NCAzLjE1QS41LjUgMCAwIDAgNS41OSAzSDMuNUMyLjY3IDMgMiAzLjY3IDIgNC41Wm0tMSAwQTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDguMiA0aDQuMjlBMi41IDIuNSAwIDAgMSAxNSA2LjV2Mi41OWExLjUgMS41IDAgMCAwLS41LS4wOUgxNFY2LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDguMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNC41OWMuMDYuMTkuMTYuMzYuMy41YTEuNSAxLjUgMCAwIDAtLjMuNUgzLjVBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdaTTkuNSAxMGEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNOSAxNC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTGlzdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlckxpc3QyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN2g2LjU5Yy4wNi0uMTkuMTYtLjM2LjMtLjVhMS41IDEuNSAwIDAgMSAwLTJBMS41IDEuNSAwIDAgMSAxMi41IDEyaDUuNDlWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1aC00LjhMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDJabTEwLjUgNWEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNlptLS41IDIuNWMwLS4yOC4yMi0uNS41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlckxpc3QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTGlzdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g2LjU5Yy4wNi0uMTkuMTYtLjM2LjMtLjVhMS41IDEuNSAwIDAgMS0uMy0uNUg0LjVBMS41IDEuNSAwIDAgMSAzIDE0LjVWOGg0LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjcgNmg1Ljc5Yy44MyAwIDEuNS42NyAxLjUgMS41VjEyaDFWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm05LjUgNy41YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZabTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02Wm0tLjUgMi41YzAtLjI4LjIyLS41LjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyTWFpbDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck1haWwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMi41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41di00QTIuNSAyLjUgMCAwIDEgOC41IDdoNmMuMTcgMCAuMzQuMDIuNS4wNVY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm0xMC41MSA0LjkzTDcuMDEgOS4zYy4xLS43My43My0xLjMgMS40OS0xLjNoNmMuODMgMCAxLjUuNjcgMS41IDEuNWwtNC40OSAyLjQzWm0uMjMgMS4wMSA0LjI2LTIuM3YyLjg2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDcgMTMuNXYtMy4wNWw0LjI1IDIuNDhjLjE1LjA5LjMzLjEuNDkuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNYWlsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck1haWwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNVY2aDMuNTlhLjUuNSAwIDAgMCAuMzUtLjE1TDcuMjkgNC41IDUuOTQgMy4xNUEuNS41IDAgMCAwIDUuNTkgM0gzLjVDMi42NyAzIDIgMy42NyAyIDQuNVptLTEgMEEyLjUgMi41IDAgMCAxIDMuNSAyaDIuMDljLjQgMCAuNzguMTYgMS4wNi40NEw4LjIgNGg0LjI5QTIuNSAyLjUgMCAwIDEgMTUgNi41di41NWEyLjUxIDIuNTEgMCAwIDAtLjUtLjA1SDE0di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIOC4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gydjQuNWMwIC44My42NyAxLjUgMS41IDEuNUg2di41YzAgLjE3LjAyLjM0LjA1LjVIMy41QTIuNSAyLjUgMCAwIDEgMSAxMS41di03Wm0xMC41MSA3LjQzTDcuMDEgOS4zYy4xLS43My43My0xLjMgMS40OS0xLjNoNmMuODMgMCAxLjUuNjcgMS41IDEuNWwtNC40OSAyLjQzWm0uMjMgMS4wMSA0LjI2LTIuM3YyLjg2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDcgMTMuNXYtMy4wNWw0LjI1IDIuNDhjLjE1LjA5LjMzLjEuNDkuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNYWlsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTWFpbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDQuNTVhMi41MSAyLjUxIDAgMCAxLS4wNS0uNXYtNGEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNmMuMTcgMCAuMzQuMDIuNS4wNVY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptOC4wMSA0LjMgNC41IDIuNjNMMTkgMTIuNXYtLjAxYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNmMtLjc2IDAtMS40LjU3LTEuNDkgMS4zWk0xOSAxMy42NGwtNC4yNiAyLjNhLjUuNSAwIDAgMS0uNSAwTDEwIDEzLjQ0djMuMDVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTIuODZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNYWlsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck1haWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNC41NWEyLjUxIDIuNTEgMCAwIDEtLjA1LS41VjE2SDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjVWMTBoLjVjLjE3IDAgLjM0LjAyLjUuMDVWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm03LjAxIDYuOCA0LjUgMi42M0wxOSAxMi41di0uMDFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02Yy0uNzYgMC0xLjQuNTctMS40OSAxLjNaTTE5IDEzLjY0bC00LjI2IDIuM2EuNS41IDAgMCAxLS41IDBMMTAgMTMuNDR2My4wNWMwIC44My42NyAxLjUgMS41IDEuNWg2Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMi44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJNYWlsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDhWNi4yNUMyIDQuNDUgMy40NiAzIDUuMjUgM2gyLjg4Yy42IDAgMS4xNy4yNCAxLjU5LjY2bDEuNTMgMS41My0yLjYgMi41OWEuNzUuNzUgMCAwIDEtLjUyLjIySDJabTAgMS41djguMjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoNS45MmEzIDMgMCAwIDEtLjE3LTF2LTVhMyAzIDAgMCAxIDMtM2g3YTMgMyAwIDAgMSAxIC4xN1Y4Ljc1YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTUuNjlMOS43MiA4Ljg0Yy0uNDIuNDItMSAuNjYtMS42LjY2SDJabTEwLjAyIDUuMjIgNS40OSAzLjJMMjMgMTQuOThBMiAyIDAgMCAwIDIxIDEzaC03YTIgMiAwIDAgMC0xLjk4IDEuNzJaTTIzIDE2LjExbC01LjI2IDIuODNhLjUuNSAwIDAgMS0uNSAwTDEyIDE1Ljg2VjIwYzAgMS4xLjkgMiAyIDJoN2EyIDIgMCAwIDAgMi0ydi0zLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNYWlsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck1haWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgNi4yNVY4aDQuNjNjLjIgMCAuMzktLjA4LjUzLS4yMmwxLjUzLTEuNTMtMS41My0xLjUzYS43NS43NSAwIDAgMC0uNTMtLjIySDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0tMS41IDBDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjg0IDEuODRoNy4xOWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djMuNDJhMyAzIDAgMCAwLTEtLjE3aC0uNVY4Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNy4xOUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMy41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIMTF2LjVhMyAzIDAgMCAwIC4xNyAxSDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTcuNzVWNi4yNVptMTAuMDIgOC40NyA1LjQ5IDMuMkwyMyAxNC45OEEyIDIgMCAwIDAgMjEgMTNoLTdhMiAyIDAgMCAwLTEuOTggMS43MlpNMjMgMTYuMTFsLTUuMjYgMi44M2EuNS41IDAgMCAxLS41IDBMMTIgMTUuODZWMjBjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTMuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWwyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJNYWlsMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDYuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgM2gzLjY3Yy43MyAwIDEuNDMuMjkgMS45NS44bDEuODggMS44OS0yLjk0IDIuOTRjLS4yNC4yNC0uNTYuMzctLjg5LjM3SDJWNi43NVptMCAzLjc1djkuNzVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjRoNy41OWEzLjQ5IDMuNDkgMCAwIDEtLjM0LTEuNXYtNmEzLjUgMy41IDAgMCAxIDMuNS0zLjVoOGMuNTQgMCAxLjA1LjEyIDEuNS4zNFY5Ljc1QTMuNzUgMy43NSAwIDAgMCAyMi4yNSA2aC03LjE5bC0zLjcgMy43Yy0uNTEuNTEtMS4yLjgtMS45NC44SDJaTTE2LjUgMTRhMi41IDIuNSAwIDAgMC0yLjUgMi41di4ybDYuNSAzLjI0TDI3IDE2Ljd2LS4xOWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLThaTTI3IDE3LjhsLTYuMjggMy4xNWEuNS41IDAgMCAxLS40NCAwTDE0IDE3Ljh2NC42OWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoOGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTQuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWwyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTWFpbDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMuNSA2LjY4VjloNS45MmMuMzMgMCAuNjUtLjEzLjg5LS4zN2wxLjg4LTEuODgtMS44OC0xLjg4YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3SDUuNzVjLTEuMjIgMC0yLjIxLjk3LTIuMjUgMi4xOFpNMiA5LjgzVjYuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgM2gzLjY3Yy43MyAwIDEuNDMuMjkgMS45NS44bDIuMiAyLjJoOC42OEEzLjc1IDMuNzUgMCAwIDEgMjYgOS43NXYzLjU5YTMuNDkgMy40OSAwIDAgMC0xLjUtLjM0VjkuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTguNjlsLTIuMiAyLjJjLS41MS41MS0xLjIuOC0xLjk0LjhIMy41djkuNzVjMCAxLjI0IDEuMDEgMi4yNSAyLjI1IDIuMjVIMTNjMCAuNTQuMTIgMS4wNS4zNCAxLjVINS43NUEzLjc1IDMuNzUgMCAwIDEgMiAyMC4yNVY5LjgzWk0xNi41IDE0YTIuNSAyLjUgMCAwIDAtMi41IDIuNXYuMmw2LjUgMy4yNEwyNyAxNi43di0uMTlhMi41IDIuNSAwIDAgMC0yLjUtMi41aC04Wk0yNyAxNy44bC02LjI4IDMuMTVhLjUuNSAwIDAgMS0uNDQgMEwxNCAxNy44djQuNjlhMi41IDIuNSAwIDAgMCAyLjUgMi41aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di00LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNYWlsMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTWFpbDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiA4LjVBNC41IDQuNSAwIDAgMSA2LjUgNGgzLjk2Yy45MyAwIDEuODIuMzcgMi40OCAxLjAzTDE1IDcuMDlsLTMuNDcgMy40N2ExLjUgMS41IDAgMCAxLTEuMDcuNDRIMlY4LjVaTTIgMTN2MTAuNUE0LjUgNC41IDAgMCAwIDYuNSAyOGg3LjExYTQuNTEgNC41MSAwIDAgMS0uMTEtMXYtOGE0LjUgNC41IDAgMCAxIDQuNS00LjVoMTBjLjcyIDAgMS40LjE3IDIgLjQ3VjEyYTQuNSA0LjUgMCAwIDAtNC41LTQuNWgtOC4wOWwtNC40NyA0LjQ3QTMuNSAzLjUgMCAwIDEgMTAuNDYgMTNIMlptMTMgNmEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2LjJsLTggNC40NC04LTQuNDRWMTlabTguMzYgNi4xNkwzMSAyMC45VjI3YTMgMyAwIDAgMS0zIDNIMThhMyAzIDAgMCAxLTMtM3YtNi4wOWw3LjY0IDQuMjVjLjIyLjEyLjUuMTIuNzIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWwzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck1haWwzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMyAxMmg3LjZjLjcxIDAgMS40LS4zMSAxLjg3LS44NUwxNS4yMyA4SDI1LjVhMy41IDMuNSAwIDAgMSAzLjUgMy41djMuMTFjLjM1LjA4LjY5LjIgMSAuMzZWMTEuNUE0LjUgNC41IDAgMCAwIDI1LjUgN0gxNC43bC0yLjI2LTIuMjdBMi41IDIuNSAwIDAgMCAxMC42NyA0SDYuNUE0LjUgNC41IDAgMCAwIDIgOC41djE1QTQuNSA0LjUgMCAwIDAgNi41IDI4aDcuMTFhNC41MSA0LjUxIDAgMCAxLS4xMS0xaC03QTMuNSAzLjUgMCAwIDEgMyAyMy41VjEyWm0wLTMuNUEzLjUgMy41IDAgMCAxIDYuNSA1aDQuMTdjLjQgMCAuNzguMTYgMS4wNi40NGwyLjM1IDIuMzUtMi4zNiAyLjdjLS4yOC4zMi0uNy41MS0xLjEzLjUxSDNWOC41Wk0xNSAxOWEzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2LjJsLTggNC40NC04LTQuNDRWMTlabTguMzYgNi4xNkwzMSAyMC45VjI3YTMgMyAwIDAgMS0zIDNIMThhMyAzIDAgMCAxLTMtM3YtNi4wOWw3LjY0IDQuMjVjLjIyLjEyLjUuMTIuNzIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck1haWwzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyTWFpbDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgOC41VjExaDYuNDZjLjQgMCAuNzgtLjE2IDEuMDctLjQ0bDIuMDYtMi4wNi0yLjA2LTIuMDZBMS41IDEuNSAwIDAgMCAxMC40NiA2SDYuNUEyLjUgMi41IDAgMCAwIDQgOC41Wm0tMiAwQTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNS40IDcuNUgyNS41QTQuNSA0LjUgMCAwIDEgMzAgMTJ2Mi45N2MtLjYtLjMtMS4yOC0uNDctMi0uNDdWMTJhMi41IDIuNSAwIDAgMC0yLjUtMi41SDE1LjQxbC0yLjQ3IDIuNDdBMy41IDMuNSAwIDAgMSAxMC40NiAxM0g0djEwLjVBMi41IDIuNSAwIDAgMCA2LjUgMjZoN3YxYzAgLjM0LjA0LjY4LjExIDFINi41QTQuNSA0LjUgMCAwIDEgMiAyMy41di0xNVpNMTUgMTlhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdi4ybC04IDQuNDQtOC00LjQ0VjE5Wm04LjM2IDYuMTZMMzEgMjAuOVYyN2EzIDMgMCAwIDEtMyAzSDE4YTMgMyAwIDAgMS0zLTN2LTYuMDlsNy42NCA0LjI1Yy4yMi4xMi41LjEyLjcyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck11bHRpcGxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm02LjE1IDIuNDQuODUuODUtMS41NiAxLjU2YS41LjUgMCAwIDEtLjM1LjE1SDF2LS41QTIuNSAyLjUgMCAwIDEgMy41IDJoMS41OWMuNCAwIC43OC4xNiAxLjA2LjQ0Wk0xIDkuNVY2aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDguMiAzLjVoMi4yOUEyLjUgMi41IDAgMCAxIDEzIDZ2My41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDEgOS41Wk0xNCA2djMuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTdjLjQ2LjYgMS4xOCAxIDIgMWg1QTQuNSA0LjUgMCAwIDAgMTUgOS41VjhjMC0uODItLjQtMS41NC0xLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJNdWx0aXBsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJNdWx0aXBsZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNSAzQzIuNjcgMyAyIDMuNjcgMiA0LjVWNWgzLjA5YS41LjUgMCAwIDAgLjM1LS4xNUw2LjI5IDRsLS44NS0uODVBLjUuNSAwIDAgMCA1LjA5IDNIMy41Wk0xIDQuNDRBMi41IDIuNSAwIDAgMSAzLjUgMmgxLjU5Yy40IDAgLjc4LjE2IDEuMDYuNDRMNy4yIDMuNWgzLjI5QTIuNSAyLjUgMCAwIDEgMTMgNnYzLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMSA5LjVWNC40NFptNi4yLjA2TDYuMTYgNS41NkExLjUgMS41IDAgMCAxIDUuMDkgNkgydjMuNWMwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY2YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg3LjJaTTE0IDZjLjYuNDYgMSAxLjE4IDEgMnYxLjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC01YTIuNSAyLjUgMCAwIDEtMi0xaDdBMy41IDMuNSAwIDAgMCAxNCA5LjVWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck9wZW4xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJPcGVuMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDQuNXY0Ljk3bDEtMS43MkEzLjUgMy41IDAgMCAxIDUuMDEgNmg3LjkzYTIuNSAyLjUgMCAwIDAtMi40NS0ySDcuMkw1LjY2IDIuNDRBMS41IDEuNSAwIDAgMCA0LjU5IDJIMy41QTIuNSAyLjUgMCAwIDAgMSA0LjVaTTUuMDIgN0gxM2EyIDIgMCAwIDEgMS43MyAzbC0xLjU5IDIuNzVBMi41IDIuNSAwIDAgMSAxMC45OCAxNEgzYTIgMiAwIDAgMS0xLjczLTNsMS41OS0yLjc1QTIuNSAyLjUgMCAwIDEgNS4wMiA3WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck9wZW4xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41djQuNmwuOTItMS42QTMgMyAwIDAgMSA1LjUyIDZoNi40Yy0uMjEtLjU4LS43Ny0xLTEuNDItMUg3YS41LjUgMCAwIDEtLjM1LS4xNWwtMS43MS0xLjdBLjUuNSAwIDAgMCA0LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVaTTcuMDcgMTRBLjUuNSAwIDAgMSA3IDE0SDMuNUEyLjUgMi41IDAgMCAxIDEgMTEuNXYtN0EyLjUgMi41IDAgMCAxIDMuNSAyaDEuMDljLjQgMCAuNzguMTYgMS4wNi40NEw3LjIgNGgzLjI5YTIuNSAyLjUgMCAwIDEgMi40NiAyLjA0IDIuNSAyLjUgMCAwIDEgMS43IDMuNzFsLTEuNTggMi43NWEzIDMgMCAwIDEtMi42IDEuNUg3LjA3Wk01LjUyIDdBMiAyIDAgMCAwIDMuOCA4TDIuMiAxMC43NUExLjUgMS41IDAgMCAwIDMuNSAxM2g2Ljk4YTIgMiAwIDAgMCAxLjczLTFsMS41OS0yLjc1QTEuNSAxLjUgMCAwIDAgMTIuNSA3SDUuNTJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyT3BlbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck9wZW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2Ni45N2wxLjU3LTIuNzJBMy41IDMuNSAwIDAgMSA2LjYgOEgxNnYtLjVBMi41IDIuNSAwIDAgMCAxMy41IDVIOS43TDguMTYgMy40NEExLjUgMS41IDAgMCAwIDcuMDkgM0g0LjVabS0uMDcgNy4yNUEyLjUgMi41IDAgMCAxIDYuNiA5SDE3YTIgMiAwIDAgMSAxLjczIDNsLTIuMTYgMy43NUEyLjUgMi41IDAgMCAxIDE0LjQgMTdINGEyIDIgMCAwIDEtMS43My0zbDIuMTYtMy43NVpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJPcGVuMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck9wZW4yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuNXY2LjZsMS41LTIuNkEzIDMgMCAwIDEgNy4xIDhIMTV2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNGEuNS41IDAgMCAxLS4zNS0uMTVsLTEuNzEtMS43QS41LjUgMCAwIDAgNy4wOSA0SDQuNUMzLjY3IDQgMyA0LjY3IDMgNS41Wm0xLjI4IDEwLjQ4LjIyLjAyaDkuNGEyIDIgMCAwIDAgMS43My0xbDIuMTctMy43NUExLjUgMS41IDAgMCAwIDE2LjUgOUg3LjFhMiAyIDAgMCAwLTEuNzMgMUwzLjIgMTMuNzVhMS41IDEuNSAwIDAgMCAxLjA4IDIuMjNaTTIgMTQuNDZWNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi41OWMuNCAwIC43OC4xNiAxLjA2LjQ0TDkuNyA1aDMuNzlBMi41IDIuNSAwIDAgMSAxNiA3LjVWOGguNWEyLjUgMi41IDAgMCAxIDIuMTYgMy43NUwxNi41IDE1LjVhMyAzIDAgMCAxLTIuNiAxLjVINC41YTIuNTQgMi41NCAwIDAgMS0xLjYyLS42QTIuNSAyLjUgMCAwIDEgMiAxNC40NlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJPcGVuMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNS4yNSAzQTMuMjUgMy4yNSAwIDAgMCAyIDYuMjV2OC45MWwyLjA0LTMuNTRBNC4yNSA0LjI1IDAgMCAxIDcuNzMgOS41SDIwdi0uNzVjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtNS4xOUw5LjcyIDMuNjZjLS40Mi0uNDItMS0uNjYtMS42LS42Nkg1LjI2Wm0yLjQ4IDhoMTMuMDFhMi4yNSAyLjI1IDAgMCAxIDEuOTUgMy4zN2wtMy4wMyA1LjI2Yy0uNS44NS0xLjQgMS4zNy0yLjM4IDEuMzdINC4yNmEyLjI1IDIuMjUgMCAwIDEtMS45NS0zLjM3bDMuMDMtNS4yNmMuNS0uODUgMS40LTEuMzcgMi4zOS0xLjM3WlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck9wZW4yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDIuODhjLjIgMCAuMzkuMDguNTMuMjJsMi4wNiAyLjA2Yy4xNC4xNC4zMy4yMi41My4yMmg1LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzUgMCAuMDkuMDEuMTcuMDQuMjVIOC43MmMtMS4zNCAwLTIuNTguNzEtMy4yNSAxLjg3TDMuNSAxNC4yOFY2LjI1Wk0yIDE3Ljc5QTMuMjUgMy4yNSAwIDAgMCA1LjI1IDIxaDExLjA0YzEuMzMgMCAyLjU3LS43MiAzLjI0LTEuODhsMy4wMy01LjI1QTMuMjUgMy4yNSAwIDAgMCAxOS45NiA5YS43NS43NSAwIDAgMCAuMDQtLjI1YzAtMS44LTEuNDUtMy4yNS0zLjI1LTMuMjVoLTUuMTlMOS43MiAzLjY2Yy0uNDItLjQyLTEtLjY2LTEuNi0uNjZINS4yNkEzLjI1IDMuMjUgMCAwIDAgMiA2LjI1VjE3Ljc5Wm02LjcyLTcuM2gxMS4wM2ExLjc1IDEuNzUgMCAwIDEgMS41MSAyLjYzbC0zLjAzIDUuMjVjLS40LjctMS4xNCAxLjEzLTEuOTUgMS4xM0g1LjI1YTEuNzUgMS43NSAwIDAgMS0xLjUxLTIuNjNsMy4wMy01LjI1Yy40LS43IDEuMTQtMS4xMiAxLjk1LTEuMTJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyT3BlblZlcnRpY2FsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlblZlcnRpY2FsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMS41IDFINi41M2wxLjcyIDFBMy41IDMuNSAwIDAgMSAxMCA1LjAxdjcuOTNhMi41IDIuNSAwIDAgMCAyLTIuNDVWNy4ybDEuNTYtMS41NWMuMjgtLjI4LjQ0LS42Ny40NC0xLjA2VjMuNUEyLjUgMi41IDAgMCAwIDExLjUgMVpNOSA1LjAyVjEzYTIgMiAwIDAgMS0zIDEuNzNsLTIuNzUtMS41OUEyLjUgMi41IDAgMCAxIDIgMTAuOThWM2EyIDIgMCAwIDEgMy0xLjczbDIuNzUgMS41OUEyLjUgMi41IDAgMCAxIDkgNS4wMlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJPcGVuVmVydGljYWwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlblZlcnRpY2FsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTEuNSAySDYuOWwxLjYuOTJhMyAzIDAgMCAxIDEuNSAyLjZ2Ni40Yy41OC0uMjEgMS0uNzcgMS0xLjQyVjdhLjUuNSAwIDAgMSAuMTUtLjM1bDEuNy0xLjcxYS41LjUgMCAwIDAgLjE1LS4zNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41Wk0yIDcuMDdBLjUuNSAwIDAgMSAyIDdWMy41QTIuNSAyLjUgMCAwIDEgNC41IDFoN0EyLjUgMi41IDAgMCAxIDE0IDMuNXYxLjA5YzAgLjQtLjE2Ljc4LS40NCAxLjA2TDEyIDcuMnYzLjI5YTIuNSAyLjUgMCAwIDEtMi4wNCAyLjQ2IDIuNSAyLjUgMCAwIDEtMy43MSAxLjdMMy41IDEzLjA4YTMgMyAwIDAgMS0xLjUtMi42VjcuMDdabTctMS41NUEyIDIgMCAwIDAgOCAzLjhMNS4yNSAyLjJBMS41IDEuNSAwIDAgMCAzIDMuNXY2Ljk4YTIgMiAwIDAgMCAxIDEuNzNsMi43NSAxLjU5QTEuNSAxLjUgMCAwIDAgOSAxMi41VjUuNTJaXCJdLCB7XG4gIGZsaXBJblJ0bDogdHJ1ZVxufSk7XG5leHBvcnQgY29uc3QgRm9sZGVyT3BlblZlcnRpY2FsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlblZlcnRpY2FsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNyA0LjVBMi41IDIuNSAwIDAgMCAxNC41IDJINy41M2wyLjcyIDEuNTdBMy41IDMuNSAwIDAgMSAxMiA2LjZWMTZoLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjkuN2wxLjU2LTEuNTVjLjI4LS4yOC40NC0uNjcuNDQtMS4wNlY0LjVabS03LjI1LS4wN0EyLjUgMi41IDAgMCAxIDExIDYuNlYxN2EyIDIgMCAwIDEtMyAxLjczbC0zLjc1LTIuMTZBMi41IDIuNSAwIDAgMSAzIDE0LjRWNGEyIDIgMCAwIDEgMy0xLjczbDMuNzUgMi4xNlpcIl0sIHtcbiAgZmxpcEluUnRsOiB0cnVlXG59KTtcbmV4cG9ydCBjb25zdCBGb2xkZXJPcGVuVmVydGljYWwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyT3BlblZlcnRpY2FsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNSAzSDcuOWwyLjYgMS41QTMgMyAwIDAgMSAxMiA3LjFWMTVoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di00YS41LjUgMCAwIDEgLjE1LS4zNWwxLjctMS43MWEuNS41IDAgMCAwIC4xNS0uMzVWNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNNC4wMiA0LjI4IDQgNC41djkuNGEyIDIgMCAwIDAgMSAxLjczbDMuNzUgMi4xN0ExLjUgMS41IDAgMCAwIDExIDE2LjVWNy4xYTIgMiAwIDAgMC0xLTEuNzNMNi4yNSAzLjJhMS41IDEuNSAwIDAgMC0yLjIzIDEuMDhaTTUuNTQgMmg4Ljk2QTIuNSAyLjUgMCAwIDEgMTcgNC41djIuNTljMCAuNC0uMTYuNzctLjQ0IDEuMDZMMTUgOS43djMuNzlhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEydi41YTIuNSAyLjUgMCAwIDEtMy43NSAyLjE2TDQuNSAxNi41QTMgMyAwIDAgMSAzIDEzLjlWNC41YTIuNTQgMi41NCAwIDAgMSAuNi0xLjYyQTIuNSAyLjUgMCAwIDEgNS41NCAyWlwiXSwge1xuICBmbGlwSW5SdGw6IHRydWVcbn0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlck9wZW5WZXJ0aWNhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck9wZW5WZXJ0aWNhbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEgNS4yNUMyMSAzLjQ1IDE5LjU1IDIgMTcuNzUgMkg4Ljg0bDMuNTQgMi4wNGE0LjI1IDQuMjUgMCAwIDEgMi4xMiAzLjY5VjIwaC43NWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di01LjE5bDEuODQtMS44NGMuNDItLjQyLjY2LTEgLjY2LTEuNlY1LjI2Wm0tOCAyLjQ4djEzLjAxYTIuMjUgMi4yNSAwIDAgMS0zLjM3IDEuOTVsLTUuMjYtMy4wM0EyLjc1IDIuNzUgMCAwIDEgMyAxNy4yOFY0LjI2QTIuMjUgMi4yNSAwIDAgMSA2LjM3IDIuM2w1LjI2IDMuMDNjLjg1LjUgMS4zNyAxLjQgMS4zNyAyLjM5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyT3BlblZlcnRpY2FsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlck9wZW5WZXJ0aWNhbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc1IDMuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjg4YzAgLjItLjA4LjM5LS4yMi41M2wtMi4wNiAyLjA2YS43NS43NSAwIDAgMC0uMjIuNTN2NS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWEuNzUuNzUgMCAwIDAtLjI1LjA0VjguNzJjMC0xLjM0LS43MS0yLjU4LTEuODctMy4yNUw5LjcyIDMuNWg4LjAzWk02LjIxIDJBMy4yNSAzLjI1IDAgMCAwIDMgNS4yNXYxMS4wNGMwIDEuMzMuNzIgMi41NyAxLjg4IDMuMjRsNS4yNSAzLjAzYTMuMjUgMy4yNSAwIDAgMCA0Ljg3LTIuNmMuMDguMDIuMTYuMDQuMjUuMDQgMS44IDAgMy4yNS0xLjQ1IDMuMjUtMy4yNXYtNS4xOWwxLjg0LTEuODRjLjQyLS40Mi42Ni0xIC42Ni0xLjZWNS4yNkMyMSAzLjQ1IDE5LjU0IDIgMTcuNzUgMkg2LjIxWm03LjMgNi43MnYxMS4wM2ExLjc1IDEuNzUgMCAwIDEtMi42MyAxLjUxbC01LjI1LTMuMDNhMi4yNSAyLjI1IDAgMCAxLTEuMTMtMS45NVY1LjI1YTEuNzUgMS43NSAwIDAgMSAyLjYzLTEuNTFsNS4yNSAzLjAzYy43LjQgMS4xMiAxLjE0IDEuMTIgMS45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlb3BsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlb3BsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDQuNTJhMi42IDIuNiAwIDAgMSAxLjkzLTIuOTIgMi43NSAyLjc1IDAgMSAxIDQuNTQtMyAyLjI0IDIuMjQgMCAwIDEgMi41MS0uMzVWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1aC00LjhMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDJabTEyLjc1IDQuMjVhMS43NSAxLjc1IDAgMSAxLTMuNSAwIDEuNzUgMS43NSAwIDAgMSAzLjUgMFptMy41LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMFpNMTYgMTYuNmMwIDEuMTgtLjggMi40LTMgMi40cy0zLTEuMjItMy0yLjRjMC0uODguNzItMS42IDEuNi0xLjZoMi44Yy44OCAwIDEuNi43MiAxLjYgMS42Wm0uNyAxLjRoLjA1YzEuNjUgMCAyLjI1LS45MSAyLjI1LTEuOCAwLS42Ni0uNTQtMS4yLTEuMi0xLjJoLTEuMzVjLjM0LjQ0LjU1IDEgLjU1IDEuNiAwIC40Ni0uMDkuOTUtLjMgMS40WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVvcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlb3BsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g0LjUyYTIuNiAyLjYgMCAwIDEgLjA1LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYzYy4zNiAwIC43LjA4IDEgLjIzVjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVptMTEuNzUgNi43NWExLjc1IDEuNzUgMCAxIDEtMy41IDAgMS43NSAxLjc1IDAgMCAxIDMuNSAwWm0zLjUuNWExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwWk0xNiAxNi42YzAgMS4xOC0uOCAyLjQtMyAyLjRzLTMtMS4yMi0zLTIuNGMwLS44OC43Mi0xLjYgMS42LTEuNmgyLjhjLjg4IDAgMS42LjcyIDEuNiAxLjZabS43IDEuNGguMDVjMS42NSAwIDIuMjUtLjkxIDIuMjUtMS44IDAtLjY2LS41NC0xLjItMS4yLTEuMmgtMS4zNWMuMzQuNDQuNTUgMSAuNTUgMS42IDAgLjQ2LS4wOS45NS0uMyAxLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQZW9wbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQZW9wbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgOFY2LjI1QzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS41MyAxLjUzLTIuNiAyLjU5YS43NS43NSAwIDAgMS0uNTIuMjJIMlptMCAxLjV2OC4yNUMyIDE5LjU1IDMuNDYgMjEgNS4yNSAyMWg1Ljg3YTQuMzEgNC4zMSAwIDAgMS0uMTItMSAzIDMgMCAwIDEgMi4zMy0yLjkzQTIuOTkgMi45OSAwIDAgMSAxNS41IDEyYTMgMyAwIDAgMSAyLjg4IDIuMTdBMi41IDIuNSAwIDAgMSAyMiAxMy41VjguNzVjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtNS42OUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMlpNMTUuNSAxN2EyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAgNmMyLjU3IDAgMy41LTEuNTIgMy41LTNhMiAyIDAgMCAwLTItMmgtM2EyIDIgMCAwIDAtMiAyYzAgMS40OC45MyAzIDMuNSAzWm00LTEuMDIuNS4wMmMyLjIgMCAzLTEuMjIgMy0yLjQgMC0uODgtLjcyLTEuNi0xLjYtMS42aC0yLjE2Yy40Ny41My43NiAxLjIzLjc2IDIgMCAuNjYtLjE0IDEuMzUtLjUgMS45OFpNMjIgMTUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlb3BsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQZW9wbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgNi4yNVY4aDQuNjNjLjIgMCAuMzktLjA4LjUzLS4yMmwxLjUzLTEuNTMtMS41My0xLjUzYS43NS43NSAwIDAgMC0uNTMtLjIySDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0tMS41IDBDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjg0IDEuODRoNy4xOWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djQuNzVjLS40Mi0uMzEtLjk0LS41LTEuNS0uNVY4Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNy4xOUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMy41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNS44YTQuMzEgNC4zMSAwIDAgMCAuMDcgMS41SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTcuNzVWNi4yNVpNMTUuNSAxN2EyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAgNmMyLjU3IDAgMy41LTEuNTIgMy41LTNhMiAyIDAgMCAwLTItMmgtM2EyIDIgMCAwIDAtMiAyYzAgMS40OC45MyAzIDMuNSAzWm00LTEuMDIuNS4wMmMyLjIgMCAzLTEuMjIgMy0yLjQgMC0uODgtLjcyLTEuNi0xLjYtMS42aC0yLjE2Yy40Ny41My43NiAxLjIzLjc2IDIgMCAuNjYtLjE0IDEuMzUtLjUgMS45OFpNMjIgMTUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlcnNvbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy41IDJBMi41IDIuNSAwIDAgMCAxIDQuNVY2aDQuNTlhLjUuNSAwIDAgMCAuMzUtLjE1TDggMy44IDYuNjUgMi40NEExLjUgMS41IDAgMCAwIDUuNTkgMkgzLjVaTTEgMTEuNVY3aDQuNTljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuMiA0aDMuMjlBMi41IDIuNSAwIDAgMSAxNSA2LjV2Ljg0YTMgMyAwIDEgMC00LjczIDMuNjdBMi41IDIuNSAwIDAgMCA4LjA0IDE0SDMuNUEyLjUgMi41IDAgMCAxIDEgMTEuNVpNMTQuNSA5YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVM5IDE0Ljc1IDkgMTMuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVyc29uMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNlY0LjVDMiAzLjY3IDIuNjcgMyAzLjUgM2gyLjA5YS41LjUgMCAwIDEgLjM1LjE1TDcuMjkgNC41IDUuOTQgNS44NWEuNS41IDAgMCAxLS4zNS4xNUgyWm0xLjUtNEEyLjUgMi41IDAgMCAwIDEgNC41djdBMi41IDIuNSAwIDAgMCAzLjUgMTRoNC41NGEzLjI5IDMuMjkgMCAwIDEgLjAxLTFIMy41QTEuNSAxLjUgMCAwIDEgMiAxMS41VjdoMy41OWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOC4yIDVoNC4yOWMuOCAwIDEuNDQuNjIgMS41IDEuNC40LjIzLjc0LjU1IDEgLjk0VjYuNUEyLjUgMi41IDAgMCAwIDEyLjUgNEg4LjJMNi42NiAyLjQ0QTEuNSAxLjUgMCAwIDAgNS41OSAySDMuNVptMTEgN2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTOSAxNC43NSA5IDEzLjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlcnNvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNVY3aDUuMDlhLjUuNSAwIDAgMCAuMzUtLjE1TDkuNSA0LjggOC4yMiAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0yIDE0LjVWOGg1LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEwxMC43IDVoNC43OUEyLjUgMi41IDAgMCAxIDE4IDcuNXYyLjg0YTMgMyAwIDEgMC00LjczIDMuNjdBMi41IDIuNSAwIDAgMCAxMS4wNCAxN0g0LjVBMi41IDIuNSAwIDAgMSAyIDE0LjVaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlcnNvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQZXJzb24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDIuNDhjLjQ3IDAgLjkxLjE4IDEuMjQuNTFMOS43MSA1aDUuNzlBMi41IDIuNSAwIDAgMSAxOCA3LjV2Mi44NGMtLjI2LS4zOC0uNi0uNy0xLS45NFY3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDkuN0w4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIM3Y2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNi41NWEyLjUxIDIuNTEgMCAwIDAtLjAxIDFINC41QTIuNSAyLjUgMCAwIDEgMiAxNC41di05Wk00LjUgNEMzLjY3IDQgMyA0LjY3IDMgNS41VjdoNC4wOWEuNS41IDAgMCAwIC4zNS0uMTVMOC43OSA1LjUgNy41MSA0LjIyQS43NS43NSAwIDAgMCA2Ljk4IDRINC41Wm0xMyA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVMxMiAxNy43NSAxMiAxNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDRjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQZXJzb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQZXJzb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgNi4yNVY4aDYuMTNjLjIgMCAuMzktLjA4LjUzLS4yMmwyLjU5LTIuNi0xLjUzLTEuNTJjLS40Mi0uNDItMS0uNjYtMS42LS42Nkg1LjI2QTMuMjUgMy4yNSAwIDAgMCAyIDYuMjVabTAgMTEuNVY5LjVoNi4xM2MuNiAwIDEuMTctLjI0IDEuNTktLjY2bDMuMzQtMy4zNGg1LjY5YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2NS43NWEzLjUgMy41IDAgMSAwLTUuOTUgMi41aC0uMjhBMi43NyAyLjc3IDAgMCAwIDEzIDE5Ljc3di4xYzAgLjM4LjA2Ljc2LjE3IDEuMTNINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNy43NVptMTktMy4yNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTQgMjEuNDQgMTQgMTkuODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVyc29uMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA4VjYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi44OGMuMiAwIC4zOS4wOC41My4yMmwxLjUzIDEuNTMtMS41MyAxLjUzYS43NS43NSAwIDAgMS0uNTMuMjJIMy41Wm0xLjc1LTVBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNXYxMS41QzIgMTkuNTUgMy40NiAyMSA1LjI1IDIxaDcuOTJhMy43NCAzLjc0IDAgMCAxLS4xNy0xLjEzdi0uMWwuMDEtLjI3SDUuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY5LjVoNC42M2MuNiAwIDEuMTctLjI0IDEuNTktLjY2TDExLjU2IDdoNy4xOWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjg4QTMuNSAzLjUgMCAwIDEgMjIgMTQuNVY4Ljc1YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTcuMTlMOS43MiAzLjY2Yy0uNDItLjQyLTEtLjY2LTEuNi0uNjZINS4yNlpNMjEgMTQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTQgMjEuNDQgMTQgMTkuODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVyc29uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUGVyc29uMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDIgNi43NVY5aDcuNDJjLjMzIDAgLjY1LS4xMy44OS0uMzdsMi45NC0yLjk0LTEuODgtMS44OEEyLjc1IDIuNzUgMCAwIDAgOS40MiAzSDUuNzVaTTIgMjAuMjVWMTAuNWg3LjQyYy43MyAwIDEuNDMtLjI5IDEuOTUtLjhsMy43LTMuN2g3LjE4QTMuNzUgMy43NSAwIDAgMSAyNiA5Ljc1VjE3aC0uNWE0IDQgMCAxIDAtNi42NSAzaC0uOEEzLjA0IDMuMDQgMCAwIDAgMTUgMjMuMDR2LjIxYzAgLjI1LjAyLjUuMDcuNzVINS43NUEzLjc1IDMuNzUgMCAwIDEgMiAyMC4yNVpNMjQuNSAxN2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabTIuNSA2LjI1YzAgMS44Ny0xLjU3IDMuNzUtNS41IDMuNzUtMy45MyAwLTUuNS0xLjg4LTUuNS0zLjc1di0uMmMwLTEuMTMuOTItMi4wNSAyLjA1LTIuMDVoNi45YzEuMTMgMCAyLjA1LjkyIDIuMDUgMi4wNHYuMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQZXJzb24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUGVyc29uMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy41IDYuNzV2LS4wN0EyLjI1IDIuMjUgMCAwIDEgNS43NSA0LjVoMy42N2MuMzMgMCAuNjUuMTMuODkuMzdsMS44OCAxLjg4LTEuODggMS44OGMtLjI0LjI0LS41Ni4zNy0uODkuMzdIMy41VjYuNzVabS0xLjUgM3YxMC41QTMuNzUgMy43NSAwIDAgMCA1Ljc1IDI0aDkuMzJjLS4wNS0uMjUtLjA3LS41LS4wNy0uNzV2LS4yYzAtLjIuMDItLjM3LjA1LS41NWgtOS4zYy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVYxMC41aDUuOTJjLjczIDAgMS40My0uMjkgMS45NS0uOGwyLjItMi4yaDguNjhjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2NC42Yy42Mi43MSAxIDEuNjQgMSAyLjY1aC41VjkuNzVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDZoLTguNjlsLTIuMi0yLjJBMi43NSAyLjc1IDAgMCAwIDkuNDMgM0g1Ljc1QTMuNzUgMy43NSAwIDAgMCAyIDYuNzV2M1pNMjQuNSAxN2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabTIuNSA2LjI1YzAgMS44Ny0xLjU3IDMuNzUtNS41IDMuNzUtMy45MyAwLTUuNS0xLjg4LTUuNS0zLjc1di0uMmMwLTEuMTMuOTItMi4wNSAyLjA1LTIuMDVoNi45YzEuMTMgMCAyLjA1LjkyIDIuMDUgMi4wNHYuMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQZXJzb24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQZXJzb24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTYuNSA0QTQuNSA0LjUgMCAwIDAgMiA4LjVWMTFoOC40NmMuNCAwIC43OC0uMTYgMS4wNy0uNDRMMTUgNy4xbC0yLjA2LTIuMDZBMy41IDMuNSAwIDAgMCAxMC40NiA0SDYuNVpNMiAyMy41VjEzaDguNDZhMy41IDMuNSAwIDAgMCAyLjQ4LTEuMDNMMTcuNCA3LjVoOC4wOUE0LjUgNC41IDAgMCAxIDMwIDEydjdoLS4wMmE1IDUgMCAxIDAtOC41NSA0aC0uMDFhMy45MyAzLjkzIDAgMCAwLTMuOTIgMy45NCA1IDUgMCAwIDAgLjExIDEuMDZINi41QTQuNSA0LjUgMCAwIDEgMiAyMy41Wm0yNi41LTRhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBabTIuNSA3LjQ0YzAgMi4wMi0xLjcxIDQuMDYtNiA0LjA2cy02LTIuMDMtNi00LjA2YTIuNDMgMi40MyAwIDAgMSAyLjQyLTIuNDRoNy4xNmMxLjM0IDAgMi40MiAxLjEgMi40MiAyLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVyc29uMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgMTFWOC41QTIuNSAyLjUgMCAwIDEgNi41IDZoMy45NmMuNCAwIC43OC4xNiAxLjA3LjQ0bDIuMDYgMi4wNi0yLjA2IDIuMDZhMS41IDEuNSAwIDAgMS0xLjA3LjQ0SDRabTIuNS03QTQuNSA0LjUgMCAwIDAgMiA4LjV2MTVBNC41IDQuNSAwIDAgMCA2LjUgMjhoMTEuMTFhNSA1IDAgMCAxIDAtMkg2LjVBMi41IDIuNSAwIDAgMSA0IDIzLjVWMTNoNi40NmEzLjUgMy41IDAgMCAwIDIuNDgtMS4wM0wxNS40IDkuNUgyNS41QTIuNSAyLjUgMCAwIDEgMjggMTJ2My41YTUgNSAwIDAgMSAxLjk4IDMuNUgzMHYtN2E0LjUgNC41IDAgMCAwLTQuNS00LjVIMTUuNDFsLTIuNDctMi40N0EzLjUgMy41IDAgMCAwIDEwLjQ2IDRINi41Wm0yMiAxNS41YTMuNSAzLjUgMCAxIDEtNyAwIDMuNSAzLjUgMCAwIDEgNyAwWm0yLjUgNy40NGMwIDIuMDItMS43MSA0LjA2LTYgNC4wNnMtNi0yLjAzLTYtNC4wNmEyLjQzIDIuNDMgMCAwIDEgMi40Mi0yLjQ0aDcuMTZjMS4zNCAwIDIuNDIgMS4xIDIuNDIgMi40NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclBlcnNvbjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTAuMjUgNkE2LjI1IDYuMjUgMCAwIDAgNCAxMi4yNVYxNmgxMi43MWMuMzQgMCAuNjUtLjEzLjg5LS4zN2w1LjE1LTUuMTUtMy4zOC0zLjM4QzE4LjY3IDYuNCAxNy43IDYgMTYuNyA2aC02LjQ2Wk00IDM0Ljc1VjE4LjVoMTIuNzFjMSAwIDEuOTUtLjQgMi42Ni0xLjFsNi40LTYuNGgxMS45OEM0MS4yIDExIDQ0IDEzLjggNDQgMTcuMjVWMjlhNyA3IDAgMSAwLTExLjkgNUgzMWE1IDUgMCAwIDAtNSA1di41YzAgLjUxLjA1IDEuMDEuMTUgMS41aC0xNS45QTYuMjUgNi4yNSAwIDAgMSA0IDM0Ljc1Wk00MiAyOWE1IDUgMCAxIDEtMTAgMCA1IDUgMCAwIDEgMTAgMFptNCAxMC41YzAgMy41LTMuMTUgNi41LTkgNi41cy05LTMtOS02LjVWMzlhMyAzIDAgMCAxIDMtM2gxMmEzIDMgMCAwIDEgMyAzdi41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUGVyc29uNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclBlcnNvbjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYuNSAxNnYtMy43NWEzLjc1IDMuNzUgMCAwIDEgMy43NS0zLjc1aDYuNDZjLjM0IDAgLjY1LjEzLjg5LjM3bDMuMzggMy4zOC0zLjM4IDMuMzhjLS4yNC4yNC0uNTUuMzctLjg5LjM3SDYuNVptMy43NS0xMEE2LjI1IDYuMjUgMCAwIDAgNCAxMi4yNXYyMi41QzQgMzguMiA2LjggNDEgMTAuMjUgNDFoMTUuOWMtLjEtLjQ5LS4xNS0uOTktLjE1LTEuNVYzOWMwLS4xNyAwLS4zNC4wMi0uNUgxMC4yNWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1VjE4LjVoMTAuMjFjMSAwIDEuOTUtLjQgMi42Ni0xLjFsMy45LTMuOWgxNC40OGEzLjc1IDMuNzUgMCAwIDEgMy43NSAzLjc1djYuMzlBNi45OCA2Ljk4IDAgMCAxIDQ0IDI5VjE3LjI1QzQ0IDEzLjggNDEuMiAxMSAzNy43NSAxMUgyMy4yN2wtMy45LTMuOUMxOC42NyA2LjQgMTcuNyA2IDE2LjcgNmgtNi40NlpNNDIgMjlhNSA1IDAgMSAxLTEwIDAgNSA1IDAgMCAxIDEwIDBabTQgMTAuNWMwIDMuNS0zLjE1IDYuNS05IDYuNXMtOS0zLTktNi41VjM5YTMgMyAwIDAgMSAzLTNoMTJhMyAzIDAgMCAxIDMgM3YuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclByb2hpYml0ZWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQcm9oaWJpdGVkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xIDQuNUEyLjUgMi41IDAgMCAxIDMuNSAyaDIuMDljLjQgMCAuNzguMTYgMS4wNi40NEw4IDMuNzkgNS45NCA1Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDFWNC41Wk0xIDd2NC41QTIuNSAyLjUgMCAwIDAgMy41IDE0aDMuMUE1LjUgNS41IDAgMCAxIDE1IDcuMjZWNi41QTIuNSAyLjUgMCAwIDAgMTIuNSA0SDkuMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMVptNiA0LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVptMy41IDMuNWMtLjc5IDAtMS41MS0uMjYtMi4xLS43bDQuOS00LjlhMy41IDMuNSAwIDAgMS0yLjggNS42WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUHJvaGliaXRlZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQcm9oaWJpdGVkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVWNmgzLjU5YS41LjUgMCAwIDAgLjM1LS4xNUw3LjI5IDQuNSA1Ljk0IDMuMTVBLjUuNSAwIDAgMCA1LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVabS0xIDBBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOC4yIDRoNC4yOUEyLjUgMi41IDAgMCAxIDE1IDYuNXYuNzZhNS41IDUuNSAwIDAgMC0xLS42NnYtLjFjMC0uODMtLjY3LTEuNS0xLjUtMS41SDguMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi43Yy4xLjM1LjI0LjY4LjQgMUgzLjVBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdabTYgN2E0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUHJvaGliaXRlZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMWE1LjUgNS41IDAgMCAxIDguNC02Ljc0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNWgtNC44TDguMTYgNy41NkExLjUgMS41IDAgMCAxIDcuMDkgOEgyWm04IDYuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzkgMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclByb2hpYml0ZWQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDQuNUExLjUgMS41IDAgMCAxIDMgMTQuNVY4aDQuMDljLjQgMCAuNzgtLjE2IDEuMDYtLjQ0TDkuNyA2aDUuNzljLjgzIDAgMS41LjY3IDEuNSAxLjV2Mi4xYy4zNi4xOC43LjQgMSAuNjZWNy41QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDkuN0w4LjIzIDMuNTFBMS43NSAxLjc1IDAgMCAwIDYuOTggM0g0LjVaTTMgNS41QzMgNC42NyAzLjY3IDQgNC41IDRoMi40OGMuMiAwIC40LjA4LjUzLjIyTDguOCA1LjUgNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDNWNS41Wm03IDlhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTEgMGEzLjUgMy41IDAgMCAxIDUuNi0yLjhsLTQuOSA0LjlhMy40OCAzLjQ4IDAgMCAxLS43LTIuMVptMy41IDMuNWMtLjc5IDAtMS41MS0uMjYtMi4xLS43bDQuOS00LjlhMy41IDMuNSAwIDAgMS0yLjggNS42WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUHJvaGliaXRlZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclByb2hpYml0ZWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgOFY2LjI1QzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS41MyAxLjUzLTIuNiAyLjU5YS43NS43NSAwIDAgMS0uNTIuMjJIMlptMCAxLjV2OC4yNUMyIDE5LjU1IDMuNDYgMjEgNS4yNSAyMWg2Ljc3QTYuNSA2LjUgMCAwIDEgMjIgMTIuODFWOC43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC01LjY5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgyWm0yMSA4YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS05LjUgMGMwIC44My4yNiAxLjYuNyAyLjI1bDUuNTUtNS41NmE0IDQgMCAwIDAtNi4yNSAzLjNabTQgNGE0IDQgMCAwIDAgMy4zLTYuMjVsLTUuNTUgNS41NmMuNjQuNDQgMS40Mi42OSAyLjI1LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUHJvaGliaXRlZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJQcm9oaWJpdGVkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDYuMjVWOGg0LjYzYy4yIDAgLjM5LS4wOC41My0uMjJsMS41My0xLjUzLTEuNTMtMS41M2EuNzUuNzUgMCAwIDAtLjUzLS4yMkg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVptLTEuNSAwQzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS44NCAxLjg0aDcuMTljMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNXY0LjA2YTYuNTIgNi41MiAwIDAgMC0xLjUtMS4wOFY4Ljc1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtNy4xOUw5LjcyIDguODRjLS40Mi40Mi0xIC42Ni0xLjYuNjZIMy41djguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNi4wNmMuMTguNTMuNDIgMS4wNC43MSAxLjVINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNy43NVY2LjI1Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS05LjUgMGMwIC44My4yNiAxLjYuNyAyLjI1bDUuNTUtNS41NmE0IDQgMCAwIDAtNi4yNSAzLjNabTQgNGE0IDQgMCAwIDAgMy4zLTYuMjVsLTUuNTUgNS41NmMuNjQuNDQgMS40Mi42OSAyLjI1LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyUHJvaGliaXRlZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclByb2hpYml0ZWQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIgNi43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSAzaDMuNjdjLjczIDAgMS40My4yOSAxLjk1LjhsMS44OCAxLjg5LTIuOTQgMi45NGMtLjI0LjI0LS41Ni4zNy0uODkuMzdIMlY2Ljc1Wm0wIDMuNzV2OS43NUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGg4Ljc1QTcuNSA3LjUgMCAwIDEgMjYgMTQuNFY5Ljc1QTMuNzUgMy43NSAwIDAgMCAyMi4yNSA2aC03LjE5bC0zLjcgMy43Yy0uNTEuNTEtMS4yLjgtMS45NC44SDJaTTIwLjUgMjZhNi41IDYuNSAwIDEgMCAwLTEzIDYuNSA2LjUgMCAwIDAgMCAxM1ptMC0xLjVhNC45OCA0Ljk4IDAgMCAxLTIuOTctLjk3bDctN2E1IDUgMCAwIDEtNC4wMyA3Ljk3Wm0yLjk3LTkuMDMtNyA3YTUgNSAwIDAgMSA3LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclByb2hpYml0ZWQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgNi42OFY5aDUuOTJjLjMzIDAgLjY1LS4xMy44OS0uMzdsMS44OC0xLjg4LTEuODgtMS44OGExLjI1IDEuMjUgMCAwIDAtLjg5LS4zN0g1Ljc1Yy0xLjIyIDAtMi4yMS45Ny0yLjI1IDIuMThaTTIgOS44M1Y2Ljc1QTMuNzUgMy43NSAwIDAgMSA1Ljc1IDNoMy42N2MuNzMgMCAxLjQzLjI5IDEuOTUuOGwyLjIgMi4yaDguNjhBMy43NSAzLjc1IDAgMCAxIDI2IDkuNzV2NC42NWMtLjQ0LS40OC0uOTUtLjktMS41LTEuMjV2LTMuNGMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtOC42OWwtMi4yIDIuMmMtLjUxLjUxLTEuMi44LTEuOTQuOEgzLjV2OS43NWMwIDEuMjQgMS4wMSAyLjI1IDIuMjUgMi4yNWg3Ljg3Yy4yNC41NC41MyAxLjA0Ljg4IDEuNUg1Ljc1QTMuNzUgMy43NSAwIDAgMSAyIDIwLjI1VjkuODNaTTIwLjUgMjZhNi41IDYuNSAwIDEgMCAwLTEzIDYuNSA2LjUgMCAwIDAgMCAxM1ptMC0xLjVhNC45OCA0Ljk4IDAgMCAxLTIuOTctLjk3bDctN2E1IDUgMCAwIDEtNC4wMyA3Ljk3Wm0yLjk3LTkuMDMtNyA3YTUgNSAwIDAgMSA3LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUHJvaGliaXRlZDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiA4LjVBNC41IDQuNSAwIDAgMSA2LjUgNGgzLjk2Yy45MyAwIDEuODIuMzcgMi40OCAxLjAzTDE1IDcuMDlsLTMuNDcgMy40N2ExLjUgMS41IDAgMCAxLTEuMDcuNDRIMlY4LjVaTTIgMTN2MTAuNUE0LjUgNC41IDAgMCAwIDYuNSAyOGgxMC4wMkE5IDkgMCAwIDEgMzAgMTYuM1YxMmE0LjUgNC41IDAgMCAwLTQuNS00LjVoLTguMDlsLTQuNDcgNC40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDJabTIyIDE3LjVhNy41IDcuNSAwIDEgMCAwLTE1IDcuNSA3LjUgMCAwIDAgMCAxNVptMC0yYTUuNDggNS40OCAwIDAgMS0zLjEyLS45N2w3LjY1LTcuNjVBNS41IDUuNSAwIDAgMSAyNCAyOC41Wm0zLjEyLTEwLjAzLTcuNjUgNy42NWE1LjUgNS41IDAgMCAxIDcuNjUtNy42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclByb2hpYml0ZWQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUHJvaGliaXRlZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTQgOC41VjExaDYuNDZjLjQgMCAuNzgtLjE2IDEuMDctLjQ0bDIuMDYtMi4wNi0yLjA2LTIuMDZBMS41IDEuNSAwIDAgMCAxMC40NiA2SDYuNUEyLjUgMi41IDAgMCAwIDQgOC41Wm0tMiAwQTQuNSA0LjUgMCAwIDEgNi41IDRoMy45NmMuOTMgMCAxLjgyLjM3IDIuNDggMS4wM0wxNS40IDcuNUgyNS41QTQuNSA0LjUgMCAwIDEgMzAgMTJ2NC4zYy0uNi0uNTUtMS4yNy0xLTItMS4zNlYxMmEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTUuNDFsLTIuNDcgMi40N0EzLjUgMy41IDAgMCAxIDEwLjQ2IDEzSDR2MTAuNUEyLjUgMi41IDAgMCAwIDYuNSAyNmg5LjAxYy4yNS43MS42IDEuMzggMSAySDYuNUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVabTIyIDIyYTcuNSA3LjUgMCAxIDAgMC0xNSA3LjUgNy41IDAgMCAwIDAgMTVabTAtMmE1LjQ4IDUuNDggMCAwIDEtMy4xMi0uOTdsNy42NS03LjY1QTUuNSA1LjUgMCAwIDEgMjQgMjguNVptMy4xMi0xMC4wMy03LjY1IDcuNjVhNS41IDUuNSAwIDAgMSA3LjY1LTcuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJQcm9oaWJpdGVkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUHJvaGliaXRlZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNCAxMi4yNUM0IDguOCA2LjggNiAxMC4yNSA2aDYuNDZjMSAwIDEuOTUuNCAyLjY2IDEuMWwzLjM4IDMuMzgtNS4xNSA1LjE1Yy0uMjQuMjQtLjU1LjM3LS44OS4zN0g0di0zLjc1Wm0wIDYuMjV2MTYuMjVDNCAzOC4yIDYuOCA0MSAxMC4yNSA0MWgxMy44QTEzIDEzIDAgMCAxIDQ0IDI0LjYydi03LjM3QzQzLjk5IDEzLjggNDEuMiAxMSAzNy43NCAxMUgyNS43N2wtNi40IDYuNGMtLjcuNy0xLjY2IDEuMS0yLjY2IDEuMUg0Wk0zNSA0NWExMSAxMSAwIDEgMCAwLTIyIDExIDExIDAgMCAwIDAgMjJabTAtMi41Yy0xLjkgMC0zLjY1LS42Mi01LjA2LTEuNjdsMTEuODktMTEuOUE4LjUgOC41IDAgMCAxIDM1IDQyLjVabTUuMDYtMTUuMzMtMTEuODkgMTEuOWE4LjUgOC41IDAgMCAxIDExLjktMTEuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclByb2hpYml0ZWQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyUHJvaGliaXRlZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYuNSAxMi4yNVYxNmgxMC4yMWMuMzQgMCAuNjUtLjEzLjg5LS4zN2wzLjM4LTMuMzgtMy4zOC0zLjM4YTEuMjUgMS4yNSAwIDAgMC0uODktLjM3aC02LjQ2YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzVabS0yLjUgMEM0IDguOCA2LjggNiAxMC4yNSA2aDYuNDZjMSAwIDEuOTUuNCAyLjY2IDEuMWwzLjkgMy45aDE0LjQ4QzQxLjIgMTEgNDQgMTMuOCA0NCAxNy4yNXY3LjM3Yy0uNzUtLjcyLTEuNi0xLjM2LTIuNS0xLjg4di01LjQ5YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVIMjMuMjdsLTMuOSAzLjljLS43LjctMS42NiAxLjEtMi42NiAxLjFINi41djE2LjI1YTMuNzUgMy43NSAwIDAgMCAzLjc1IDMuNzVIMjIuOGMuMzMuODguNzQgMS43MiAxLjI0IDIuNUgxMC4yNUE2LjI1IDYuMjUgMCAwIDEgNCAzNC43NXYtMjIuNVpNMzUgNDVhMTEgMTEgMCAxIDAgMC0yMiAxMSAxMSAwIDAgMCAwIDIyWm0wLTIuNWMtMS45IDAtMy42NS0uNjItNS4wNi0xLjY3bDExLjg5LTExLjlBOC41IDguNSAwIDAgMSAzNSA0Mi41Wm01LjA2LTE1LjMzLTExLjg5IDExLjlhOC41IDguNSAwIDAgMSAxMS45LTExLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTZWFyY2gxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJTZWFyY2gxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNSAyQTIuNSAyLjUgMCAwIDAgMSA0LjVWNmg0LjU5YS41LjUgMCAwIDAgLjM1LS4xNUw4IDMuOCA2LjY1IDIuNDRBMS41IDEuNSAwIDAgMCA1LjU5IDJIMy41Wk0xIDExLjVWN2g0LjU5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw5LjIgNGgzLjI5QTIuNSAyLjUgMCAwIDEgMTUgNi41VjEwaC0uMDNhNC41IDQuNSAwIDEgMC03LjMgNEgzLjVBMi41IDIuNSAwIDAgMSAxIDExLjVabTkuNSAyLjVjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDEzLjMgMTIuNmEzLjUgMy41IDAgMSAwLTIuOCAxLjRabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclNlYXJjaDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJTZWFyY2gxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjUgMkEyLjUgMi41IDAgMCAwIDEgNC41djdBMi41IDIuNSAwIDAgMCAzLjUgMTRoNC4xN2E0LjUzIDQuNTMgMCAwIDEtLjkxLTFIMy41QTEuNSAxLjUgMCAwIDEgMiAxMS41VjdoMy41OWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOC4yIDVoNC4yOWMuODMgMCAxLjUuNjcgMS41IDEuNXYxLjE3Yy41My42NS44OCAxLjQ1Ljk3IDIuMzNIMTVWNi41QTIuNSAyLjUgMCAwIDAgMTIuNSA0SDguMkw2LjY2IDIuNDRBMS41IDEuNSAwIDAgMCA1LjU5IDJIMy41Wk0yIDZWNC41QzIgMy42NyAyLjY3IDMgMy41IDNoMi4wOWEuNS41IDAgMCAxIC4zNS4xNUw3LjI5IDQuNSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMlptOC41IDhjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDEzLjMgMTIuNmEzLjUgMy41IDAgMSAwLTIuOCAxLjRabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclNlYXJjaDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclNlYXJjaDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNVY3aDUuMDlhLjUuNSAwIDAgMCAuMzUtLjE1TDkuNSA0LjggOC4yMiAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0yIDE0LjVWOGg1LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEwxMC43IDVoNC43OUEyLjUgMi41IDAgMCAxIDE4IDcuNVYxMmgtLjAzQTQuNSA0LjUgMCAxIDAgMTMgMTYuOTdWMTdINC41QTIuNSAyLjUgMCAwIDEgMiAxNC41Wk0xMy41IDE2Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0wxNi4zIDE0LjZhMy41IDMuNSAwIDEgMC0yLjggMS40Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTZWFyY2gyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU2VhcmNoMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNzEgNWg1Ljc5QTIuNSAyLjUgMCAwIDEgMTggNy41VjEyaC0uMDNBNC40OCA0LjQ4IDAgMCAwIDE3IDkuNjdWNy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5LjdMOC4xNiA3LjU2QTEuNSAxLjUgMCAwIDEgNy4wOSA4SDN2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuMTdjLjY1LjUzIDEuNDUuODggMi4zMy45N1YxN0g0LjVBMi41IDIuNSAwIDAgMSAyIDE0LjV2LTlaTTQuNSA0QzMuNjcgNCAzIDQuNjcgMyA1LjVWN2g0LjA5YS41LjUgMCAwIDAgLjM1LS4xNUw4Ljc5IDUuNSA3LjUxIDQuMjJBLjc1Ljc1IDAgMCAwIDYuOTggNEg0LjVabTkgMTJjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDE2LjMgMTQuNmEzLjUgMy41IDAgMSAwLTIuOCAxLjRabTAtMWEyLjUgMi41IDAgMSAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclNlYXJjaDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclNlYXJjaDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiA2LjI1VjhoNi4xM2MuMiAwIC4zOS0uMDguNTMtLjIybDIuNTktMi42LTEuNTMtMS41MmMtLjQyLS40Mi0xLS42Ni0xLjYtLjY2SDUuMjZBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNVptMCAxMS41VjkuNWg2LjEzYy42IDAgMS4xNy0uMjQgMS41OS0uNjZsMy4zNC0zLjM0aDUuNjljMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNVYxNWgtLjAyYTUuNSA1LjUgMCAxIDAtNS40OCA2SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTcuNzVaTTE2LjUgMjFjLjE3IDAgLjM0IDAgLjUtLjAyVjIxaC0uNVptMC0xYy45NyAwIDEuODctLjMgMi42LS44M2wyLjYyIDIuNjFhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi42MS0yLjYxQTQuNSA0LjUgMCAxIDAgMTYuNSAyMFptMC0xLjVhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU2VhcmNoMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclNlYXJjaDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMiA2LjI1djExLjVDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFIMTd2LS4wMmE1LjU5IDUuNTkgMCAwIDEtNC4yNy0xLjQ4SDUuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY5LjVoNC42M2MuNiAwIDEuMTctLjI0IDEuNTktLjY2TDExLjU2IDdoNy4xOWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjk4QTUuNDggNS40OCAwIDAgMSAyMS45OCAxNUgyMlY4Ljc1YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTcuMTlMOS43MiAzLjY2Yy0uNDItLjQyLTEtLjY2LTEuNi0uNjZINS4yNlpNMy41IDhWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjg4Yy4yIDAgLjM5LjA4LjUzLjIybDEuNTMgMS41My0xLjUzIDEuNTNhLjc1Ljc1IDAgMCAxLS41My4yMkgzLjVabTEzIDEyYy45NyAwIDEuODctLjMgMi42LS44M2wyLjYyIDIuNjFhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi42MS0yLjYxQTQuNSA0LjUgMCAxIDAgMTYuNSAyMFptMC0xLjVhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3dhcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN3YXAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMi4zOGwtLjQ0LS40NGExLjUgMS41IDAgMCAxIDAtMi4xMmwyLTJBMS41IDEuNSAwIDAgMSA5LjkgMTFoMS4xOGExLjUgMS41IDAgMCAxIDIuNDctMS41NkwxNSAxMC44OFY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm03Ljg1IDMuODVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0w3LjcxIDEzaDUuNThsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN0wxMy4yOSAxMkg3LjcxbDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclN3YXAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU3dhcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41VjZoMy41OWEuNS41IDAgMCAwIC4zNS0uMTVMNy4yOSA0LjUgNS45NCAzLjE1QS41LjUgMCAwIDAgNS41OSAzSDMuNUMyLjY3IDMgMiAzLjY3IDIgNC41Wm0tMSAwQTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDguMiA0aDQuMjlBMi41IDIuNSAwIDAgMSAxNSA2LjV2NC4zOGwtMS0xVjYuNWMwLS44My0uNjctMS41LTEuNS0xLjVIOC4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gydjQuNWMwIC44My42NyAxLjUgMS41IDEuNWgxLjU5Yy4wNy4yLjE5LjQuMzUuNTZsLjQ0LjQ0SDMuNUEyLjUgMi41IDAgMCAxIDEgMTEuNXYtN1ptNy44NSA2LjM1YS41LjUgMCAwIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMNy43MSAxM2g1LjU4bC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMmEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43LjdMMTMuMjkgMTJINy43MWwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTd2FwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU3dhcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA1LjVBMi41IDIuNSAwIDAgMSA0LjUgM2gyLjQ4Yy40NyAwIC45MS4xOCAxLjI0LjUxTDkuNSA0LjggNy40NCA2Ljg1YS41LjUgMCAwIDEtLjM1LjE1SDJWNS41Wk0yIDh2Ni41QTIuNSAyLjUgMCAwIDAgNC41IDE3aDUuMzhsLS40NC0uNDRhMS41IDEuNSAwIDAgMSAwLTIuMTJsMi0yQTEuNSAxLjUgMCAwIDEgMTMuOSAxNGgxLjE4YTEuNSAxLjUgMCAwIDEgMi40Ny0xLjU2bC40NC40NFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptMTAuODUgNS44NWEuNS41IDAgMCAwLS43LS43bC0yIDJhLjUuNSAwIDAgMCAwIC43bDIgMmEuNS41IDAgMCAwIC43LS43TDExLjcxIDE2aDUuNThsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgMC0uN2wtMi0yYS41LjUgMCAwIDAtLjcuN0wxNy4yOSAxNWgtNS41OGwxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTd2FwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN3YXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgM0EyLjUgMi41IDAgMCAwIDIgNS41djlBMi41IDIuNSAwIDAgMCA0LjUgMTdoNS4zOGwtLjQ0LS40NGExLjUgMS41IDAgMCAxLS4zNS0uNTZINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXY0LjU5Yy4yLjA3LjQuMTkuNTYuMzVsLjQ0LjQ0VjcuNUEyLjUgMi41IDAgMCAwIDE1LjUgNUg5LjdMOC4yMyAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0zIDUuNUMzIDQuNjcgMy42NyA0IDQuNSA0aDIuNDhjLjIgMCAuNC4wOC41My4yMkw4LjggNS41IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgzVjUuNVptOS44NSA4LjM1YS41LjUgMCAwIDAtLjctLjdsLTIgMmEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAwIDAgLjctLjdMMTEuNzEgMTZoNS41OGwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE3LjI5IDE1aC01LjU4bDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclN3YXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJTd2FwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDYuMjVWOGg2LjEzYy4yIDAgLjM5LS4wOC41My0uMjJsMi41OS0yLjYtMS41My0xLjUyYy0uNDItLjQyLTEtLjY2LTEuNi0uNjZINS4yNkEzLjI1IDMuMjUgMCAwIDAgMiA2LjI1Wm0wIDExLjVWOS41aDYuMTNjLjYgMCAxLjE3LS4yNCAxLjU5LS42NmwzLjM0LTMuMzRoNS42OWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djcuMjhMMjAuOTkgMTVBMS43NSAxLjc1IDAgMCAwIDE4LjE3IDE3aC0xLjM0YTEuNzUgMS43NSAwIDAgMC0yLjgyLTEuOTlsLTIuNSAyLjVjLS42OC42OS0uNjggMS44IDAgMi40OEwxMi41MyAyMUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1Wm0xMy43OC0uOTdhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMi41IDIuNWMtLjMuMy0uMy43NyAwIDEuMDZsMi41IDIuNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjIyLTEuMjJoNS44OGwtMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi41LTIuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwyMC40NCAxOGgtNS44OGwxLjIyLTEuMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTd2FwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN3YXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgOFY2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDIuODhjLjIgMCAuMzkuMDguNTMuMjJsMS41MyAxLjUzLTEuNTMgMS41M2EuNzUuNzUgMCAwIDEtLjUzLjIySDMuNVptMS43NS01QTMuMjUgMy4yNSAwIDAgMCAyIDYuMjV2MTEuNUMyIDE5LjU1IDMuNDYgMjEgNS4yNSAyMWg3LjI4bC0xLjAyLTEuMDFhMS43NSAxLjc1IDAgMCAxLS4zNC0uNDlINS4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjkuNWg0LjYzYy42IDAgMS4xNy0uMjQgMS41OS0uNjZMMTEuNTYgN2g3LjE5Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djUuOTJjLjE4LjA4LjM0LjIuNDkuMzRMMjIgMTYuMDNWOC43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC03LjE5TDkuNzIgMy42NmMtLjQyLS40Mi0xLS42Ni0xLjYtLjY2SDUuMjZabTEwLjUzIDEzLjc4YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTIuNSAyLjVjLS4zLjMtLjMuNzcgMCAxLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMS4yMi0xLjIyaDUuODhsLTEuMjIgMS4yMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuNS0yLjVjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLjUtMi41YS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMjAuNDQgMThoLTUuODhsMS4yMi0xLjIyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3luYzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN5bmMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoMi4wOWMuNCAwIC43OC4xNiAxLjA2LjQ0TDggMy43OSA1Ljk0IDUuODVhLjUuNSAwIDAgMS0uMzUuMTVIMVY0LjVaTTEgN3Y0LjVBMi41IDIuNSAwIDAgMCAzLjUgMTRoMy4xQTUuNSA1LjUgMCAwIDEgMTUgNy4yNlY2LjVBMi41IDIuNSAwIDAgMCAxMi41IDRIOS4yTDYuNjYgNi41NkExLjUgMS41IDAgMCAxIDUuNTkgN0gxWm02IDQuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTJhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTggMS45OCAwIDAgMC0xLjcyLS4xIDIgMiAwIDAgMC0uNjYuNDQuNS41IDAgMCAxLS43MS0uNzFBMyAzIDAgMCAxIDEzIDkuMTVWOWMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE0YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxMWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3luYzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb2xkZXJTeW5jMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVWNmgzLjU5YS41LjUgMCAwIDAgLjM1LS4xNUw3LjI5IDQuNSA1Ljk0IDMuMTVBLjUuNSAwIDAgMCA1LjU5IDNIMy41QzIuNjcgMyAyIDMuNjcgMiA0LjVabS0xIDBBMi41IDIuNSAwIDAgMSAzLjUgMmgyLjA5Yy40IDAgLjc4LjE2IDEuMDYuNDRMOC4yIDRoNC4yOUEyLjUgMi41IDAgMCAxIDE1IDYuNXYuNzZhNS41IDUuNSAwIDAgMC0xLS42NnYtLjFjMC0uODMtLjY3LTEuNS0xLjUtMS41SDguMkw2LjY2IDYuNTZBMS41IDEuNSAwIDAgMSA1LjU5IDdIMnY0LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi43Yy4xLjM1LjI0LjY4LjQgMUgzLjVBMi41IDIuNSAwIDAgMSAxIDExLjV2LTdabTYgN2E0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTJhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTggMS45OCAwIDAgMC0xLjcyLS4xIDIgMiAwIDAgMC0uNjYuNDQuNS41IDAgMCAxLS43MS0uNzFBMyAzIDAgMCAxIDEzIDkuMTVWOWMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE0YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxMWEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3luYzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN5bmMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjUgNC44IDcuNDQgNi44NWEuNS41IDAgMCAxLS4zNS4xNUgyVjUuNVpNMiA4djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFhNS41IDUuNSAwIDAgMSA4LjQtNi43NFY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVoLTQuOEw4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIMlptOCA2LjVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDE1YS41LjUgMCAwIDEgMC0xaC40N2ExLjk3IDEuOTcgMCAwIDAtLjk0LS4yNSAyIDIgMCAwIDAtMS40NC41OS41LjUgMCAwIDEtLjcxLS43MSAzIDMgMCAwIDEgMy42Mi0uNDhWMTJjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzYTMgMyAwIDAgMS0yLjYyLS4xOFYxN2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTRhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk3IDEuOTcgMCAwIDAgLjk0LjI1IDIgMiAwIDAgMCAxLjQ0LS41OS41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclN5bmMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyU3luYzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAzQTIuNSAyLjUgMCAwIDAgMiA1LjV2OUEyLjUgMi41IDAgMCAwIDQuNSAxN2g1LjFjLS4xNi0uMzItLjMtLjY1LS40LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxNC41VjhoNC4wOWMuNCAwIC43OC0uMTYgMS4wNi0uNDRMOS43IDZoNS43OWMuODMgMCAxLjUuNjcgMS41IDEuNXYyLjFjLjM2LjE4LjcuNCAxIC42NlY3LjVBMi41IDIuNSAwIDAgMCAxNS41IDVIOS43TDguMjMgMy41MUExLjc1IDEuNzUgMCAwIDAgNi45OCAzSDQuNVpNMyA1LjVDMyA0LjY3IDMuNjcgNCA0LjUgNGgyLjQ4Yy4yIDAgLjQuMDguNTMuMjJMOC44IDUuNSA3LjQ0IDYuODVhLjUuNSAwIDAgMS0uMzUuMTVIM1Y1LjVabTcgOWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMmMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE3YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyU3luYzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN5bmMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgOFY2LjI1QzIgNC40NSAzLjQ2IDMgNS4yNSAzaDIuODhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMS41MyAxLjUzLTIuNiAyLjU5YS43NS43NSAwIDAgMS0uNTIuMjJIMlptMCAxLjV2OC4yNUMyIDE5LjU1IDMuNDYgMjEgNS4yNSAyMWg2Ljc3QTYuNSA2LjUgMCAwIDEgMjIgMTIuODFWOC43NWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC01LjY5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgyWm0xMCA4YTUuNSA1LjUgMCAxIDAgMTEgMCA1LjUgNS41IDAgMCAwLTExIDBabTguNS0zLjVjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDFhMi41IDIuNSAwIDAgMC00LjAzLjA0LjUuNSAwIDAgMS0uOC0uNTkgMy41IDMuNSAwIDAgMSA1LjMzLS40di0uNTVjMC0uMjguMjItLjUuNS0uNVpNMTUgMTkuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMWEyLjUgMi41IDAgMCAwIDMuOTEuMTEuNS41IDAgMCAxIC43Ny42NSAzLjUgMy41IDAgMCAxLTUuMTguMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb2xkZXJTeW5jMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclN5bmMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjUgNi4yNVY4aDQuNjNjLjIgMCAuMzktLjA4LjUzLS4yMmwxLjUzLTEuNTMtMS41My0xLjUzYS43NS43NSAwIDAgMC0uNTMtLjIySDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0tMS41IDBDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMi44OGMuNiAwIDEuMTcuMjQgMS41OS42NmwxLjg0IDEuODRoNy4xOWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djQuMDZhNi41MiA2LjUyIDAgMCAwLTEuNS0xLjA4VjguNzVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC03LjE5TDkuNzIgOC44NGMtLjQyLjQyLTEgLjY2LTEuNi42NkgzLjV2OC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjA2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVaTTEyIDE3LjVhNS41IDUuNSAwIDEgMCAxMSAwIDUuNSA1LjUgMCAwIDAtMTEgMFptOC41LTMuNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMWEyLjUgMi41IDAgMCAwLTQuMDMuMDQuNS41IDAgMCAxLS44LS41OSAzLjUgMy41IDAgMCAxIDUuMzMtLjR2LS41NWMwLS4yOC4yMi0uNS41LS41Wk0xNSAxOS45NXYuNTVhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0xYTIuNSAyLjUgMCAwIDAgMy45MS4xMS41LjUgMCAwIDEgLjc3LjY1IDMuNSAzLjUgMCAwIDEtNS4xOC4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclppcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclppcDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSA0LjIgNi42NSA2LjU3QTEuNSAxLjUgMCAwIDEgNS41OSA3SDF2NC41QTIuNSAyLjUgMCAwIDAgMy41IDE0SDEwdi0yaC0uNWEuNS41IDAgMCAxIDAtMWguNXYtMWgtLjVhLjUuNSAwIDAgMSAwLTFoLjVWN2gtLjVhLjUuNSAwIDAgMS0uNS0uNVY0LjJabTIgOS44aDEuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDRIMTJ2Mi41YS41LjUgMCAwIDEtLjUuNUgxMXYzaC41YS41LjUgMCAwIDEgMCAxSDExdjNabTAtMTBoLTF2MmgxVjRaTTMuNSAyQTIuNSAyLjUgMCAwIDAgMSA0LjVWNmg0LjU5YS41LjUgMCAwIDAgLjM1LS4xNUw4IDMuOCA2LjY1IDIuNDRBMS41IDEuNSAwIDAgMCA1LjU5IDJIMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyWmlwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclppcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNlY0LjVDMiAzLjY3IDIuNjcgMyAzLjUgM2gyLjA5YS41LjUgMCAwIDEgLjM1LjE1TDcuMjkgNC41IDUuOTQgNS44NWEuNS41IDAgMCAxLS4zNS4xNUgyWm0xLjUtNEEyLjUgMi41IDAgMCAwIDEgNC41djdBMi41IDIuNSAwIDAgMCAzLjUgMTRoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDRIOC4yTDYuNjYgMi40NEExLjUgMS41IDAgMCAwIDUuNTkgMkgzLjVaTTkgNXYyLjVjMCAuMjguMjIuNS41LjVoLjV2MWgtLjVhLjUuNSAwIDAgMCAwIDFoLjV2MWgtLjVhLjUuNSAwIDAgMCAwIDFoLjV2MUgzLjVBMS41IDEuNSAwIDAgMSAyIDExLjVWN2gzLjU5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEw4LjIgNUg5Wm0yIDh2LTJoLjVhLjUuNSAwIDAgMCAwLTFIMTFWOGguNWEuNS41IDAgMCAwIC41LS41VjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTFabTAtOHYyaC0xVjVoMVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbGRlclppcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclppcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDNBMi41IDIuNSAwIDAgMCAyIDUuNVY3aDUuMDlhLjUuNSAwIDAgMCAuMzUtLjE1TDkuNSA0LjggOC4yMiAzLjUxQTEuNzUgMS43NSAwIDAgMCA2Ljk4IDNINC41Wk0yIDE0LjVWOGg1LjA5Yy40IDAgLjc4LS4xNiAxLjA2LS40NEwxMC43IDVIMTJ2My41YzAgLjI4LjIyLjUuNS41aC41djJoLS41YS41LjUgMCAwIDAgMCAxaC41djFoLS41YS41LjUgMCAwIDAgMCAxaC41djNINC41QTIuNSAyLjUgMCAwIDEgMiAxNC41Wk0xNCAxN2gxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA1SDE1djMuNWEuNS41IDAgMCAxLS41LjVIMTR2M2guNWEuNS41IDAgMCAxIDAgMUgxNHY0Wm0wLTEyaC0xdjNoMVY1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyWmlwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclppcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNS41QTIuNSAyLjUgMCAwIDEgNC41IDNoMi40OGMuNDcgMCAuOTEuMTggMS4yNC41MUw5LjcxIDVoNS43OUEyLjUgMi41IDAgMCAxIDE4IDcuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LTlaTTE0IDE2aDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE1djMuNWEuNS41IDAgMCAxLS41LjVIMTR2MmguNWEuNS41IDAgMCAxIDAgMUgxNHYzWm0wLTEwaC0xdjNoMVY2Wm0tMiAwSDkuN0w4LjE2IDcuNTZBMS41IDEuNSAwIDAgMSA3LjA5IDhIM3Y2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIMTN2LTJoLS41YS41LjUgMCAwIDEgMC0xaC41di0xaC0uNWEuNS41IDAgMCAxIDAtMWguNXYtMWgtLjVhLjUuNSAwIDAgMS0uNS0uNVY2Wk00LjUgNEMzLjY3IDQgMyA0LjY3IDMgNS41VjdoNC4wOWEuNS41IDAgMCAwIC4zNS0uMTVMOC43OSA1LjUgNy41MSA0LjIyQS43NS43NSAwIDAgMCA2Ljk4IDRINC41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyWmlwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9sZGVyWmlwMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDYuMjVWOGg2LjEzYy4yIDAgLjM5LS4wOC41My0uMjJsMi41OS0yLjYtMS41My0xLjUyYy0uNDItLjQyLTEtLjY2LTEuNi0uNjZINS4yNkEzLjI1IDMuMjUgMCAwIDAgMiA2LjI1Wm0wIDExLjVWOS41aDYuMTNjLjYgMCAxLjE3LS4yNCAxLjU5LS42NmwzLjM0LTMuMzRoLjQ0djMuNzVjMCAuNDEuMzQuNzUuNzUuNzVIMTV2M2gtLjI1YS43NS43NSAwIDAgMCAwIDEuNUgxNVYxNmgtLjI1YS43NS43NSAwIDAgMCAwIDEuNUgxNVYyMUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1Wk0xNi41IDIxaDIuMjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1SDE4djMuNzVjMCAuNDEtLjM0Ljc1LS43NS43NWgtLjc1djQuNWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uMjV2NVptMC0xNS41SDE1djNoMS41di0zWlwiXSk7XG5leHBvcnQgY29uc3QgRm9sZGVyWmlwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbGRlclppcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA4VjYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi44OGMuMiAwIC4zOS4wOC41My4yMmwxLjUzIDEuNTMtMS41MyAxLjUzYS43NS43NSAwIDAgMS0uNTMuMjJIMy41Wm0xLjc1LTVBMy4yNSAzLjI1IDAgMCAwIDIgNi4yNXYxMS41QzIgMTkuNTUgMy40NiAyMSA1LjI1IDIxaDEzLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC03LjE5TDkuNzIgMy42NmMtLjQyLS40Mi0xLS42Ni0xLjYtLjY2SDUuMjZabTguMjUgNHYzLjI1YzAgLjQxLjM0Ljc1Ljc1Ljc1SDE1djJoLS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTVWMTZoLS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTV2Mkg1LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWOS41aDQuNjNjLjYgMCAxLjE3LS4yNCAxLjU5LS42NkwxMS41NiA3aDEuOTRabTMgMTIuNVYxNmguMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMjVWMTFoLjc1Yy40MSAwIC43NS0uMzQuNzUtLjc1VjdoLjc1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djljMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDE2LjVabTAtMTIuNXYyLjVIMTVWN2gxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250RGVjcmVhc2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250RGVjcmVhc2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE0LjI0IDIuMThhLjc1Ljc1IDAgMCAwLS45OCAxLjE0bDEuNzUgMS41Yy4yOC4yNC43LjI0Ljk4IDBsMS43NS0xLjVhLjc1Ljc1IDAgMSAwLS45OC0xLjE0TDE1LjUgMy4yNmwtMS4yNi0xLjA4Wk0xMCA0Yy0uMyAwLS41OC4xOS0uNy40N2wtNC4yNSAxMC41YS43NS43NSAwIDEgMCAxLjQuNTZMNy44NyAxMmg0LjI2bDEuNDIgMy41M2EuNzUuNzUgMCAxIDAgMS40LS41NkwxMC43IDQuNDdBLjc1Ljc1IDAgMCAwIDEwIDRabTAgMi43NSAxLjUyIDMuNzVIOC40OEwxMCA2Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udERlY3JlYXNlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnREZWNyZWFzZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEzLjE1IDIuMTVjLjItLjIuNS0uMi43IDBsMS42NSAxLjY0IDEuNjUtMS42NGEuNS41IDAgMSAxIC43LjdsLTIgMmEuNS41IDAgMCAxLS43IDBsLTItMmEuNS41IDAgMCAxIDAtLjdaTTEwIDRjLjIgMCAuMzkuMTIuNDYuMzFsNC41IDExYS41LjUgMCAxIDEtLjkyLjM4bC0xLjU0LTMuNzZWMTJoLTV2LS4wN0w1Ljk2IDE1LjdhLjUuNSAwIDEgMS0uOTItLjM4bDQuNS0xMUEuNS41IDAgMCAxIDEwIDRabS0yLjEyIDdoNC4yNEwxMCA1LjgyIDcuODggMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250RGVjcmVhc2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250RGVjcmVhc2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjYyIDIuMjJhMSAxIDAgMSAwLTEuMjQgMS41NmwyLjUgMmExIDEgMCAwIDAgMS4yNCAwbDIuNS0yYTEgMSAwIDAgMC0xLjI0LTEuNTZsLTEuODggMS41LTEuODgtMS41Wk0xMiA0YTEgMSAwIDAgMSAuOTIuNmw2IDE0YTEgMSAwIDAgMS0xLjg0LjhMMTUuMiAxNUg4LjhsLTEuODggNC40YTEgMSAwIDAgMS0xLjg0LS44bDYtMTRBMSAxIDAgMCAxIDEyIDRabTAgMy41NEw5LjY2IDEzaDQuNjhMMTIgNy41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnREZWNyZWFzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250RGVjcmVhc2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi4yNSAyLjJhLjc1Ljc1IDAgMCAwLTEgMS4xTDE4IDUuOGMuMjguMjYuNzIuMjYgMSAwbDIuNzUtMi41YS43NS43NSAwIDEgMC0xLTEuMUwxOC41IDQuMjQgMTYuMjUgMi4yWk0xMiA0Yy4zIDAgLjU4LjE5LjcuNDdsNS43NSAxNC41YS43NS43NSAwIDAgMS0xLjQuNTZMMTUuMjUgMTVoLTYuNWwtMS44IDQuNTNhLjc1Ljc1IDAgMSAxLTEuNC0uNTZsNS43NS0xNC41QS43NS43NSAwIDAgMSAxMiA0Wm0wIDIuNzhMOS4zNCAxMy41aDUuMzJMMTIgNi43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnRJbmNyZWFzZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRJbmNyZWFzZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQuMjQgNC44MmEuNzUuNzUgMCAwIDEtLjk4LTEuMTRsMS43NS0xLjVjLjI4LS4yNC43LS4yNC45OCAwbDEuNzUgMS41YS43NS43NSAwIDEgMS0uOTggMS4xNEwxNS41IDMuNzRsLTEuMjYgMS4wOFpNMTAgMy43NWMtLjMgMC0uNTguMTgtLjcuNDdsLTQuNSAxMWEuNzUuNzUgMCAwIDAgMS40LjU2bDEuNDQtMy41M2g0LjcybDEuNDUgMy41M2EuNzUuNzUgMCAxIDAgMS4zOC0uNTZsLTQuNS0xMWEuNzUuNzUgMCAwIDAtLjY5LS40N1ptMCAyLjczIDEuNzUgNC4yN2gtMy41TDEwIDYuNDhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250SW5jcmVhc2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udEluY3JlYXNlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuODUgNC44NWEuNS41IDAgMCAxLS43LS43bDItMmMuMi0uMi41LS4yLjcgMGwyIDJhLjUuNSAwIDAgMS0uNy43TDE1LjUgMy4yMWwtMS42NSAxLjY0Wk0xMCA0YS41LjUgMCAwIDAtLjQ2LjMxbC00LjUgMTFhLjUuNSAwIDEgMCAuOTIuMzhsMS41NC0zLjc2VjEyaDV2LS4wN2wxLjU0IDMuNzZhLjUuNSAwIDEgMCAuOTItLjM4bC00LjUtMTFBLjUuNSAwIDAgMCAxMCA0Wm0wIDEuODJMMTIuMTIgMTFINy44OEwxMCA1LjgyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9udEluY3JlYXNlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udEluY3JlYXNlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi42MiA1Ljc4YTEgMSAwIDAgMS0xLjI0LTEuNTZsMi41LTJhMSAxIDAgMCAxIDEuMjQgMGwyLjUgMmExIDEgMCAwIDEtMS4yNCAxLjU2bC0xLjg4LTEuNS0xLjg4IDEuNVptLTMuNy0xLjE3YTEgMSAwIDAgMC0xLjg0IDBsLTYgMTRhMSAxIDAgMCAwIDEuODQuNzhMOC44IDE1aDYuNGwxLjg4IDQuNGExIDEgMCAwIDAgMS44NC0uOGwtNi0xNFpNMTIgNy41NCAxNC4zNCAxM0g5LjY2TDEyIDcuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250SW5jcmVhc2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udEluY3JlYXNlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuMiA1Ljc1Yy4yNy4zMS43NS4zMyAxLjA1LjA1bDIuMjUtMi4wNCAyLjI1IDIuMDRhLjc1Ljc1IDAgMCAwIDEtMS4xTDE5IDIuMmEuNzUuNzUgMCAwIDAtMSAwbC0yLjc1IDIuNWEuNzUuNzUgMCAwIDAtLjA1IDEuMDVaTTEyIDRjLjMgMCAuNTguMTkuNy40N2w1Ljc1IDE0LjVhLjc1Ljc1IDAgMCAxLTEuNC41NkwxNS4yNSAxNWgtNi41bC0xLjggNC41M2EuNzUuNzUgMCAxIDEtMS40LS41Nmw1Ljc1LTE0LjVBLjc1Ljc1IDAgMCAxIDEyIDRabS0yLjY2IDkuNWg1LjMyTDEyIDYuNzggOS4zNCAxMy41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdJbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRTcGFjZVRyYWNraW5nSW4xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjUgOWMuMyAwIC41OC0uMTguNy0uNDdsMi4yNC01LjVhLjc1Ljc1IDAgMSAwLTEuMzgtLjU2bC0xLjU2IDMuOC0xLjU2LTMuOGEuNzUuNzUgMCAxIDAtMS4zOC41NmwyLjI1IDUuNWMuMTEuMjkuMzkuNDcuNjkuNDdaTTYuMiAyLjQ3YS43NS43NSAwIDAgMC0xLjQgMGwtMi4yNCA1LjVhLjc1Ljc1IDAgMCAwIDEuMzguNTZsLjQzLTEuMDNoMi4yNmwuNDMgMS4wM2EuNzUuNzUgMCAwIDAgMS4zOC0uNTZMNi4yIDIuNDdabS0uNyAyLjI2TDYuMDIgNkg0Ljk4bC41Mi0xLjI3Wm0uMDMgNS40OWEuNzUuNzUgMCAwIDAtMS4wOSAxLjAzSDIuNjhhLjc1Ljc1IDAgMSAwIDAgMS41aDEuNzZhLjc1Ljc1IDAgMCAwIDEuMSAxLjAzbDEuMjQtMS4yNWEuNzUuNzUgMCAwIDAgMC0xLjA2bC0xLjI1LTEuMjVabTYgMy41NmMtLjMuMy0uNzcuMy0xLjA2IDBsLTEuMjUtMS4yNWEuNzUuNzUgMCAwIDEgMC0xLjA2bDEuMjUtMS4yNWEuNzUuNzUgMCAwIDEgMS4xMSAxaDEuNzRhLjc1Ljc1IDAgMSAxIDAgMS41aC0xLjc5Yy4zLjMuMy43NyAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ0luMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRTcGFjZVRyYWNraW5nSW4xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01Ljk2IDIuM2EuNS41IDAgMCAwLS45MiAwbC0xLjY2IDQtLjAxLjAyLS44MyAxLjk5YS41LjUgMCAxIDAgLjkyLjM4TDQuMTYgN2gyLjY3bC43IDEuN2EuNS41IDAgMCAwIC45My0uNGwtLjgxLTEuOTRhLjUuNSAwIDAgMC0uMDQtLjFMNS45NiAyLjMxWk01LjUgMy44IDYuNDIgNkg0LjU4bC45Mi0yLjJabS0uMTUgNi4zNWEuNS41IDAgMSAwLS43LjdsLjY0LjY1SDIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLS42NS42NWEuNS41IDAgMSAwIC43LjdsMS41LTEuNWEuNS41IDAgMCAwIDAtLjdsLTEuNS0xLjVaTTEwLjUgOWEuNS41IDAgMCAwIC40Ni0uM2wyLjUtNmEuNS41IDAgMSAwLS45Mi0uNEwxMC41IDcuMiA4LjQ2IDIuM2EuNS41IDAgMSAwLS45Mi40bDIuNSA2Yy4wOC4xOC4yNi4zLjQ2LjNabS44NSA0Ljg1YS41LjUgMCAwIDEtLjcgMGwtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdsMS41LTEuNWEuNS41IDAgMSAxIC43LjdsLS42NC42NWgyLjc5YS41LjUgMCAwIDEgMCAxaC0yLjhsLjY1LjY1Yy4yLjIuMi41IDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ0luMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udFNwYWNlVHJhY2tpbmdJbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy43IDIuNDhhLjc1Ljc1IDAgMCAwLTEuNCAwbC0zLjI1IDguNWEuNzUuNzUgMCAwIDAgMS40LjUzbC43Ny0yLjAxaDMuNTZsLjc3IDIuMDFhLjc1Ljc1IDAgMCAwIDEuNC0uNTNMNy43IDIuNDhaTTguMiA4SDUuOEw3IDQuODUgOC4yIDhabS0xLjQ2IDUuMTlhLjc1Ljc1IDAgMSAwLS45OSAxLjEybC41LjQ0aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWwtLjUuNDRhLjc1Ljc1IDAgMSAwIDEgMS4xMmwyLTEuNzVhLjc1Ljc1IDAgMCAwIDAtMS4xM2wtMi0xLjc0Wk0xMyAxMmMuMzEgMCAuNTktLjIuNy0uNDhsMy4yNS04LjVhLjc1Ljc1IDAgMSAwLTEuNC0uNTNMMTMgOS4xNSAxMC40NSAyLjVhLjc1Ljc1IDAgMCAwLTEuNC41M2wzLjI1IDguNWMuMTEuMjkuMzkuNDguNy40OFptMS4zMSA1Ljc0YS43NS43NSAwIDAgMS0xLjA1LjA3bC0yLTEuNzRhLjc1Ljc1IDAgMCAxIDAtMS4xM2wyLTEuNzVhLjc1Ljc1IDAgMSAxIC45OCAxLjEybC0uNS40NGgyLjUxYS43NS43NSAwIDAgMSAwIDEuNWgtMi41bC41LjQ0Yy4zLjI3LjM0Ljc0LjA2IDEuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ0luMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRTcGFjZVRyYWNraW5nSW4yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMyAxMmMuMiAwIC4zOC0uMTIuNDYtLjMybDMuNS05LjAyYS41LjUgMCAxIDAtLjkzLS4zNkwxMyAxMC4xMiA5Ljk1IDIuM2EuNS41IDAgMSAwLS45My4zNmwzLjUgOS4wMmMuMDguMi4yNy4zMi40Ny4zMlpNNy40NiAyLjNhLjUuNSAwIDAgMC0uOTMgMGwtMi4zNCA2di4wM2wtMS4xNyAzYS41LjUgMCAxIDAgLjkzLjM1TDUuMDEgOWg0bDEuMDQgMi42OGEuNS41IDAgMSAwIC45My0uMzZMOS44MyA4LjM3YS41LjUgMCAwIDAtLjA0LS4xMUw3LjQ3IDIuM1pNOC42MSA4SDUuNEw3IDMuODYgOC42MSA4Wk02LjUgMTMuMTJhLjUuNSAwIDEgMC0uNjUuNzZMNy4xNSAxNUgzLjVhLjUuNSAwIDAgMCAwIDFoMy42NWwtMS4zIDEuMTJhLjUuNSAwIDEgMCAuNjQuNzZsMi4zMy0yYS41LjUgMCAwIDAgMC0uNzZsLTIuMzMtMlptNy43MiA0LjdhLjUuNSAwIDAgMS0uNy4wNmwtMi4zNC0yYS41LjUgMCAwIDEgMC0uNzZsMi4zMy0yYS41LjUgMCAxIDEgLjY1Ljc2TDEyLjg1IDE1aDMuNjVhLjUuNSAwIDEgMSAwIDFoLTMuNjVsMS4zIDEuMTJjLjIxLjE4LjI0LjUuMDYuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnRTcGFjZVRyYWNraW5nSW4yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ0luMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm04LjYxIDE2LjIxLjEuMDggMiAyYTEgMSAwIDAgMSAuMDggMS4zMmwtLjA4LjEtMiAyYTEgMSAwIDAgMS0xLjUtMS4zMmwuMDgtLjEuMy0uM0w0IDIwYTEgMSAwIDAgMS0uMTItMmgzLjdsLS4yOS0uM2ExIDEgMCAwIDEtLjA4LTEuMzFsLjA4LS4xYTEgMSAwIDAgMSAxLjMyLS4wOFptNi43OCAwYTEgMSAwIDAgMSAxLjIyIDBsLjEuMDguMDguMWExIDEgMCAwIDEgMCAxLjIybC0uMDguMS0uMy4yOUgyMGExIDEgMCAwIDEgLjEyIDJIMTYuNGwuMy4zLjA4LjA5YTEgMSAwIDAgMS0xLjQgMS40bC0uMS0uMDgtMi0yLS4wOC0uMWExIDEgMCAwIDEgMC0xLjIybC4wOC0uMSAyLTIgLjEtLjA4Wk05LjEyIDIuNDVsLjA2LjEuMDYuMTIgNC4zIDExYTEgMSAwIDAgMS0xLjgxLjgzbC0uMDUtLjEtMS4xMS0yLjg1SDYuMDRsLTEuMSAyLjg0YTEgMSAwIDAgMS0xLjIuNmwtLjEtLjAzYTEgMSAwIDAgMS0uNi0xLjE4bC4wMy0uMTEgNC4zLTExYTEgMSAwIDAgMSAxLjc1LS4yMlptMTAuMDIuMDhhMSAxIDAgMCAxIDEuODUuNzJsLS4wNC4xMS00LjMgMTEtLjA1LjEyYTEgMSAwIDAgMS0xLjc2IDBsLS4wNS0uMTItNC4zLTExLS4wNC0uMWExIDEgMCAwIDEgLjUtMS4xNGwuMS0uMDUuMTEtLjA0YTEgMSAwIDAgMSAxLjE0LjVsLjA1LjEgMy4zNyA4LjYzIDMuMzctOC42Mi4wNS0uMTFaTTguMyA1Ljc3IDYuODMgOS41NWgyLjk1TDguMyA1Ljc3WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdJbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ0luMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtOC40NSAxNi4xNS4wOC4wNyAyLjI1IDIuMjVjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOC0yLjI1IDIuMjVhLjc1Ljc1IDAgMCAxLTEuMTMtLjk4bC4wNy0uMDguOTctLjk3SDMuNzVhLjc1Ljc1IDAgMCAxLS4xLTEuNWg0Ljc5bC0uOTctLjk3YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdabTcuMSAwYy4yNi0uMi42Mi0uMi44OS0uMDFsLjA5LjA4LjA3LjA4Yy4yLjI2LjIuNjIuMDEuODlsLS4wOC4wOS0uOTcuOTdoNC42OWEuNzUuNzUgMCAwIDEgLjEgMS41aC00Ljc5bC45Ny45Ny4wNy4wOGEuNzUuNzUgMCAwIDEtMS4wNSAxLjA1bC0uMDgtLjA3LTIuMjUtMi4yNS0uMDctLjA4YS43NS43NSAwIDAgMS0uMDEtLjg5bC4wOC0uMDkgMi4yNS0yLjI1LjA4LS4wN1pNOC44NCAyLjI4bC4wNi4xLjA1LjEgNC41IDExLjVhLjc1Ljc1IDAgMCAxLTEuMzUuNjRsLS4wNS0uMS0xLjIzLTMuMTVINS42OGwtMS4yMyAzLjE1YS43NS43NSAwIDAgMS0uODguNDZsLS4xLS4wM2EuNzUuNzUgMCAwIDEtLjQ1LS44OGwuMDMtLjEgNC41LTExLjVhLjc1Ljc1IDAgMCAxIDEuMjktLjJabTEwLjc2LjFhLjc1Ljc1IDAgMCAxIDEuMzguNTVsLS4wMy4xLTQuNSAxMS41LS4wNS4xYS43NS43NSAwIDAgMS0xLjMgMGwtLjA1LS4xLTQuNS0xMS41LS4wMy0uMWEuNzUuNzUgMCAwIDEgLjM2LS44M2wuMS0uMDUuMS0uMDNjLjMyLS4wOC42NS4wNy44Mi4zNmwuMDUuMSAzLjggOS43MSAzLjgtOS43MS4wNS0uMVpNOC4yNSA0LjgxIDYuMjcgOS44N2gzLjk2TDguMjUgNC44WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdJbjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRTcGFjZVRyYWNraW5nSW4yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4LjUgMTdhMSAxIDAgMCAwIC45Mi0uNjFsNS41LTEzYTEgMSAwIDAgMC0xLjg0LS43OEwxOC41IDEzLjQzIDEzLjkyIDIuNjFhMSAxIDAgMSAwLTEuODQuNzhsNS41IDEzYTEgMSAwIDAgMCAuOTIuNjFaTTEwLjQyIDIuNjFhMSAxIDAgMCAwLTEuODQgMGwtNS41IDEzYTEgMSAwIDEgMCAxLjg0Ljc4TDYuMzUgMTNoNi4zbDEuNDMgMy4zOWExIDEgMCAxIDAgMS44NC0uNzhsLTUuNS0xM1ptMS4zOCA4LjRINy4ybDIuMy01LjQ0TDExLjggMTFabS0yLjE2IDguMjJhMSAxIDAgMCAwLTEuMjggMS41NGwuODguNzNINGExIDEgMCAxIDAgMCAyaDUuMjRsLS44OC43M2ExIDEgMCAwIDAgMS4yOCAxLjU0bDMtMi41YTEgMSAwIDAgMCAwLTEuNTRsLTMtMi41Wm0xMC4xMyA2LjQxYTEgMSAwIDAgMS0xLjQxLjEzbC0zLTIuNWExIDEgMCAwIDEgMC0xLjU0bDMtMi41YTEgMSAwIDAgMSAxLjI4IDEuNTRsLS44OC43M2g1LjIxYTEgMSAwIDEgMSAwIDJoLTUuMmwuODcuNzNhMSAxIDAgMCAxIC4xMyAxLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdJbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ0luMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTguNSAxN2MuMyAwIC41Ny0uMTguNjktLjQ2bDUuNzUtMTMuNWEuNzUuNzUgMCAxIDAtMS4zOC0uNThMMTguNSAxNC4zNCAxMy40NCAyLjQ2YS43NS43NSAwIDEgMC0xLjM4LjU4bDUuNzUgMTMuNWMuMTIuMjguMzkuNDYuNjkuNDZaTTEwLjE5IDIuNDZhLjc1Ljc1IDAgMCAwLTEuMzggMGwtMy44MyA4Ljk4LS4wMS4wMy0xLjkxIDQuNDlhLjc1Ljc1IDAgMCAwIDEuMzguNThsMS43Mi00LjA0aDYuNjdsMS43MyA0LjA0YS43NS43NSAwIDEgMCAxLjM4LS41OGwtMS44OC00LjQxYS43NS43NSAwIDAgMC0uMDgtLjE4bC0zLjgtOC45MVptMiA4LjU0SDYuOGwyLjctNi4zNEwxMi4yIDExWm0tMi4xNiA4LjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMS40NyAxLjQ3SDMuNzVhLjc1Ljc1IDAgMSAwIDAgMS41aDYuNjlsLTEuNDcgMS40N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuNzUtMi43NWMuMy0uMy4zLS43NyAwLTEuMDZsLTIuNzUtMi43NVptOSA2LjU2Yy0uMy4zLS43Ny4zLTEuMDYgMGwtMi43NS0yLjc1YS43NS43NSAwIDAgMSAwLTEuMDZsMi43NS0yLjc1YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTEuNDcgMS40N2g2LjdhLjc1Ljc1IDAgMSAxIDAgMS41aC02LjdsMS40NyAxLjQ3Yy4zLjMuMy43NyAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ091dDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRTcGFjZVRyYWNraW5nT3V0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMS43IDguNTNhLjc1Ljc1IDAgMCAxLTEuNCAwbC0yLjI0LTUuNWEuNzUuNzUgMCAxIDEgMS4zOC0uNTZMMTEgNi4yN2wxLjU2LTMuOGEuNzUuNzUgMCAwIDEgMS4zOS41NmwtMi4yNiA1LjVaTTUgMmMuMyAwIC41OC4xOC43LjQ3bDIuMjQgNS41YS43NS43NSAwIDAgMS0xLjM4LjU2TDYuMTMgNy41SDMuODdsLS40MyAxLjAzYS43NS43NSAwIDAgMS0xLjM4LS41NmwyLjI1LTUuNUEuNzUuNzUgMCAwIDEgNSAyWm0uNTIgNEw1IDQuNzMgNC40OCA2aDEuMDRabTUuOTUgNC4yMmMuMy0uMy43Ny0uMyAxLjA2IDBsMS4yNSAxLjI1YS43NS43NSAwIDAgMSAwIDEuMDZsLTEuMjUgMS4yNWEuNzUuNzUgMCAwIDEtMS4wOS0xLjAzSDQuNTZhLjc1Ljc1IDAgMCAxLTEuMDkgMS4wM2wtMS4yNS0xLjI1YS43NS43NSAwIDAgMSAwLTEuMDZsMS4yNS0xLjI1YS43NS43NSAwIDAgMSAxLjA5IDEuMDNoNi44OGEuNzUuNzUgMCAwIDEgLjAzLTEuMDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ091dDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ091dDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTExLjQ2IDguN2EuNS41IDAgMCAxLS45MiAwbC0yLjUtNmEuNS41IDAgMSAxIC45Mi0uNEwxMSA3LjJsMi4wNC00LjlhLjUuNSAwIDAgMSAuOTIuNGwtMi41IDZaTTUgMmMuMiAwIC4zOC4xMi40Ni4zbDEuNjUgMy45NmEuNS41IDAgMCAxIC4wNC4xbC44MSAxLjk1YS41LjUgMCAxIDEtLjkyLjM4TDYuMzQgN0gzLjY2bC0uNyAxLjdhLjUuNSAwIDAgMS0uOTMtLjRsLjgzLTEuOThWNi4zbDEuNjctNEEuNS41IDAgMCAxIDUgMlptLjkyIDRMNSAzLjggNC4wOCA2aDEuODRabTUuNzMgNC4xNWMuMi0uMi41LS4yLjcgMGwxLjUgMS41YS41LjUgMCAwIDEgMCAuN2wtMS41IDEuNWEuNS41IDAgMSAxLS43LS43bC42NC0uNjVIMy43MWwuNjQuNjVhLjUuNSAwIDEgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41YS41LjUgMCAwIDEgLjcuN2wtLjY0LjY1aDguNThsLS42NC0uNjVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdPdXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ091dDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAyYy4zMSAwIC41OS4yLjcuNDhsMy4yNSA4LjVhLjc1Ljc1IDAgMCAxLTEuNC41M0w3Ljc4IDkuNUg0LjIybC0uNzcgMi4wMWEuNzUuNzUgMCAwIDEtMS40LS41M2wzLjI1LTguNUEuNzUuNzUgMCAwIDEgNiAyWk00LjggOGgyLjRMNiA0Ljg1IDQuOCA4Wm05Ljg4IDUuMjZhLjc1Ljc1IDAgMCAxIDEuMDYtLjA3bDIgMS43NGEuNzUuNzUgMCAwIDEgMCAxLjEzbC0yIDEuNzVhLjc1Ljc1IDAgMSAxLS45OS0xLjEybC41LS40NEg0Ljc1bC41LjQ0YS43NS43NSAwIDEgMS0xIDEuMTJsLTItMS43NGEuNzUuNzUgMCAwIDEgMC0xLjEzbDItMS43NWEuNzUuNzUgMCAwIDEgMSAxLjEybC0uNS40NGgxMC41bC0uNS0uNDRhLjc1Ljc1IDAgMCAxLS4wNy0xLjA1Wm0uMDItMS43NGEuNzUuNzUgMCAwIDEtMS40IDBsLTMuMjUtOC41YS43NS43NSAwIDEgMSAxLjQtLjUzTDE0IDkuMTVsMi41NS02LjY2YS43NS43NSAwIDEgMSAxLjQuNTNsLTMuMjUgOC41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdPdXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udFNwYWNlVHJhY2tpbmdPdXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC40NiAxMS42OGEuNS41IDAgMCAxLS45MyAwbC0zLjUxLTkuMDJhLjUuNSAwIDEgMSAuOTMtLjM2bDMuMDQgNy44MiAzLjA0LTcuODJhLjUuNSAwIDAgMSAuOTQuMzZsLTMuNTEgOS4wMlpNNiAxLjk4Yy4yMSAwIC40LjEzLjQ3LjMybDIuMzIgNS45NmEuNS41IDAgMCAxIC4wNC4xMWwxLjE1IDIuOTVhLjUuNSAwIDAgMS0uOTMuMzZMOCA5SDRsLTEuMDQgMi42OGEuNS41IDAgMCAxLS45My0uMzZsMS4xNy0zVjguM2wyLjM0LTZBLjUuNSAwIDAgMSA2IDEuOThaTTQuNCA4SDcuNmwtMS42LTQuMTRMNC40IDhabTEwLjM5IDUuMThhLjUuNSAwIDAgMSAuNy0uMDZsMi4zMyAyYS41LjUgMCAwIDEgMCAuNzZsLTIuMzMgMmEuNS41IDAgMCAxLS42NS0uNzZsMS4zLTEuMTJIMy44NWwxLjMxIDEuMTJhLjUuNSAwIDEgMS0uNjUuNzZsLTIuMzMtMmEuNS41IDAgMCAxIDAtLjc2bDIuMzMtMmEuNS41IDAgMSAxIC42NS43NkwzLjg1IDE1aDEyLjNsLTEuMy0xLjEyYS41LjUgMCAwIDEtLjA2LS43WlwiXSk7XG5leHBvcnQgY29uc3QgRm9udFNwYWNlVHJhY2tpbmdPdXQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ091dDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC4zOSAxNi4yMWExIDEgMCAwIDEgMS4yMiAwbC4xLjA4LjA4LjFhMSAxIDAgMCAxIDAgMS4yMmwtLjA4LjEtLjMuMjlIMTguNmwtLjMtLjNhMSAxIDAgMCAxLS4wOC0xLjMxbC4wOC0uMWExIDEgMCAwIDEgMS4zMi0uMDhsLjEuMDggMiAyYTEgMSAwIDAgMSAuMDggMS4zMmwtLjA4LjEtMiAyYTEgMSAwIDAgMS0xLjUtMS4zMmwuMDgtLjEuMy0uMjlINS40bC4zLjMuMDguMDlhMSAxIDAgMCAxLTEuNCAxLjRsLS4xLS4wOC0yLTItLjA4LS4xYTEgMSAwIDAgMSAwLTEuMjJsLjA4LS4xIDItMiAuMS0uMDhabTMuNzMtMTMuOC4wNi4xMS4wNi4xMiA0LjMgMTFhMSAxIDAgMCAxLTEuODEuODNsLS4wNS0uMS0xLjExLTIuODRINS4wNGwtMS4xIDIuODNhMSAxIDAgMCAxLTEuMi42bC0uMS0uMDNhMSAxIDAgMCAxLS42LTEuMThsLjAzLS4xMSA0LjMtMTFhMSAxIDAgMCAxIDEuNzUtLjIyWm0xMS45Ny4xMmExIDEgMCAwIDEgMS44NS43MmwtLjAzLjExLTQuMyAxMS0uMDYuMTJhMSAxIDAgMCAxLTEuNzYgMGwtLjA1LS4xMi00LjMtMTEtLjA0LS4xYTEgMSAwIDAgMSAuNS0xLjE0bC4xLS4wNS4xMS0uMDRhMSAxIDAgMCAxIDEuMTQuNWwuMDUuMSAzLjM3IDguNjMgMy4zNy04LjYyLjA1LS4xMVpNNy4zIDUuNzQgNS44MiA5LjUzaDIuOTZMNy4zIDUuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb250U3BhY2VUcmFja2luZ091dDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb250U3BhY2VUcmFja2luZ091dDI0UmVndWxhcicsIFwiMjRcIiwgW1wibTE5LjQ1IDE2LjE1LjA4LjA3IDIuMjUgMi4yNWMuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4LTIuMjUgMi4yNWEuNzUuNzUgMCAwIDEtMS4xMy0uOThsLjA3LS4wOC45Ny0uOTdINC41NmwuOTcuOTcuMDcuMDhhLjc1Ljc1IDAgMCAxLTEuMDUgMS4wNWwtLjA4LS4wNy0yLjI1LTIuMjUtLjA3LS4wOGEuNzUuNzUgMCAwIDEtLjAxLS44OWwuMDgtLjA5IDIuMjUtMi4yNS4wOC0uMDdjLjI2LS4yLjYyLS4yLjg5LS4wMWwuMS4wOC4wNi4wOGMuMi4yNi4yLjYyLjAxLjg5bC0uMDguMDktLjk3Ljk3aDE0Ljg4bC0uOTctLjk3YS43NS43NSAwIDAgMS0uMDctLjk4bC4wNy0uMDhhLjc1Ljc1IDAgMCAxIC45OC0uMDdaTTcuODQgMi4yOGwuMDYuMS4wNS4xIDQuNSAxMS41YS43NS43NSAwIDAgMS0xLjM1LjY0bC0uMDUtLjEtMS4yMy0zLjE1SDQuNjhsLTEuMjMgMy4xNWEuNzUuNzUgMCAwIDEtLjg4LjQ2bC0uMS0uMDNhLjc1Ljc1IDAgMCAxLS40NS0uODhsLjAzLS4xIDQuNS0xMS41YS43NS43NSAwIDAgMSAxLjI5LS4yWm0xMi43Ni4xYS43NS43NSAwIDAgMSAxLjM4LjU1bC0uMDMuMS00LjUgMTEuNS0uMDUuMWEuNzUuNzUgMCAwIDEtMS4zIDBsLS4wNS0uMS00LjUtMTEuNS0uMDMtLjFhLjc1Ljc1IDAgMCAxIC4zNi0uODNsLjEtLjA1LjEtLjAzYy4zMi0uMDguNjUuMDcuODIuMzZsLjA1LjEgMy44IDkuNzEgMy44LTkuNzEuMDUtLjFaTTcuMjUgNC44MSA1LjI3IDkuODdoMy45Nkw3LjI1IDQuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnRTcGFjZVRyYWNraW5nT3V0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9udFNwYWNlVHJhY2tpbmdPdXQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIwLjQyIDE2LjM5YTEgMSAwIDAgMS0xLjg0IDBsLTUuNS0xM2ExIDEgMCAwIDEgMS44NC0uNzhsNC41OCAxMC44MiA0LjU4LTEwLjgyYTEgMSAwIDAgMSAxLjg0Ljc4bC01LjUgMTNaTTguNSAyYTEgMSAwIDAgMSAuOTIuNjFsNS41IDEzYTEgMSAwIDEgMS0xLjg0Ljc4TDExLjY1IDEzaC02LjNMMy45MiAxNi40YTEgMSAwIDAgMS0xLjg0LS43OGw1LjUtMTNBMSAxIDAgMCAxIDguNSAyWm0tMi4zIDloNC42TDguNSA1LjU3IDYuMiAxMVptMTUuMDMgOC4zNmExIDEgMCAwIDEgMS40MS0uMTNsMyAyLjVhMSAxIDAgMCAxIDAgMS41NGwtMyAyLjVhMSAxIDAgMCAxLTEuMjgtMS41NGwuODgtLjczSDUuNzZsLjg4LjczYTEgMSAwIDAgMS0xLjI4IDEuNTRsLTMtMi41YTEgMSAwIDAgMSAwLTEuNTRsMy0yLjVhMSAxIDAgMCAxIDEuMjggMS41NGwtLjg4LjczaDE2LjQ4bC0uODgtLjczYTEgMSAwIDAgMS0uMTMtMS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvbnRTcGFjZVRyYWNraW5nT3V0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0ZvbnRTcGFjZVRyYWNraW5nT3V0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjAuMTkgMTYuNTRhLjc1Ljc1IDAgMCAxLTEuMzggMGwtNS43NS0xMy41YS43NS43NSAwIDEgMSAxLjM4LS41OGw1LjA2IDExLjg4IDUuMDYtMTEuODhhLjc1Ljc1IDAgMSAxIDEuMzguNThsLTUuNzUgMTMuNVpNOC40OSAyYy4zIDAgLjU4LjE4LjcuNDZsMy44IDguOTEuMDcuMTggMS44OCA0LjRhLjc1Ljc1IDAgMCAxLTEuMzguNmwtMS43My00LjA1SDUuMTZsLTEuNzIgNC4wNGEuNzUuNzUgMCAxIDEtMS4zOC0uNThsMS45LTQuNDkuMDItLjAzTDcuOCAyLjQ2QS43NS43NSAwIDAgMSA4LjUgMlptLTIuNyA5aDUuNEw4LjUgNC42NiA1LjggMTFabTE2LjE4IDguMjJjLjMtLjMuNzctLjMgMS4wNiAwbDIuNzUgMi43NWMuMy4zLjMuNzcgMCAxLjA2bC0yLjc1IDIuNzVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjQ3LTEuNDdINC41NmwxLjQ3IDEuNDdhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtMi43NS0yLjc1YS43NS43NSAwIDAgMSAwLTEuMDZsMi43NS0yLjc1YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTEuNDcgMS40N2gxOC44OGwtMS40Ny0xLjQ3YS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi43MiAxLjA1Yy4xNS4wOC4yNC4yLjI3LjM0LjAyLjA4LjUxIDIuMi41MSAzLjYxYTMgMyAwIDAgMS0xLjEzIDIuMzVjLS4yNS4yLS4zNy40MS0uMzcuNnYuNTVsLjI4IDIuMTJjLjEuOTQuMjIgMS45Ni4yMiAyLjM4YTIgMiAwIDEgMS00IDBjMC0uNDIuMTEtMS40NC4yMi0yLjM4QTE2MS4zNSAxNjEuMzUgMCAwIDEgMyA4LjQzdi0uNDhjMC0uMTktLjEyLS40LS4zNy0uNkEzIDMgMCAwIDEgMS41IDVjMC0xLjQxLjQ5LTMuNTIuNTEtMy42MWEuNS41IDAgMCAxIC41LS4zOWMuMjcgMCAuNS4yMy41LjV2M2EuNS41IDAgMSAwIC45OSAwdi0zYS41LjUgMCAwIDEgMSAwdjMuMDNhLjUuNSAwIDAgMCAuOTktLjAzdi0zYzAtLjI3LjIzLS41LjUtLjUuMDMgMCAuMTMgMCAuMjMuMDVaTTkgNS41QTQuNSA0LjUgMCAwIDEgMTMuNSAxYy4yOCAwIC41LjIyLjUuNXY1Ljk3bC4wMi4xOGEyNjIuMTUgMjYyLjE1IDAgMCAxIC4yMyAyLjI0Yy4xMiAxLjI2LjI1IDIuNjYuMjUgMy4xMWEyIDIgMCAxIDEtNCAwYzAtLjQ1LjEzLTEuODUuMjUtMy4xMWwuMTctMS43LjAyLS4xOUgxMGExIDEgMCAwIDEtMS0xVjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2QxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEuMzQgMS45NmMuMTYtLjYuNy0uOTYgMS4yNy0uOTYuMzYgMCAuNjguMTMuOTMuMzVhMS41IDEuNSAwIDAgMSAxLjkyIDBjLjI1LS4yMi41Ny0uMzUuOTMtLjM1LjU3IDAgMS4xMS4zNiAxLjI3Ljk2LjE1LjU3LjM0IDEuNS4zNCAyLjU0YTMuNSAzLjUgMCAwIDEtMS42IDIuOTRjLS4yNy4xNy0uNC40LS40LjZ2LjQ2bC4yOCAyLjEyYy4xLjk0LjIyIDEuOTYuMjIgMi4zOGEyIDIgMCAxIDEtNCAwYzAtLjQyLjExLTEuNDQuMjItMi4zOEExNjEuMzUgMTYxLjM1IDAgMCAxIDMgOC40M3YtLjRjMC0uMTktLjEzLS40Mi0uNC0uNkEzLjUgMy41IDAgMCAxIDEgNC41YzAtMS4wNS4xOS0xLjk3LjM0LTIuNTRaTTYgNWEuNS41IDAgMCAxLTEgMFYyLjVhLjUuNSAwIDAgMC0xIDBWNWEuNS41IDAgMCAxLTEgMFYyLjM5QS4zOS4zOSAwIDAgMCAyLjYxIDJjLS4xNiAwLS4yNy4xLS4zLjIyQTkuMiA5LjIgMCAwIDAgMiA0LjVjMCAuODguNDUgMS42NSAxLjE0IDIuMS40NC4yOC44Ni43OC44NiAxLjQ0di40bC0uMDEuMmMtLjA0LjI0LS4xNiAxLjE1LS4yNyAyLjEtLjEyLjk3LS4yMiAxLjkyLS4yMiAyLjI2YTEgMSAwIDEgMCAyIDBjMC0uMzQtLjEtMS4zLS4yMi0yLjI2QTE2MC4yNSAxNjAuMjUgMCAwIDAgNSA4LjQ0di0uNGMwLS42Ni40Mi0xLjE2Ljg2LTEuNDRBMi41IDIuNSAwIDAgMCA3IDQuNWE5LjIgOS4yIDAgMCAwLS4zLTIuMjhDNi42NSAyLjEgNi41NCAyIDYuMzggMmEuMzkuMzkgMCAwIDAtLjM5LjM5VjVabTMgLjVBNC41IDQuNSAwIDAgMSAxMy41IDFjLjI4IDAgLjUuMjIuNS41djUuOTdsLjAyLjE4YTI2MS40MSAyNjEuNDEgMCAwIDEgLjIzIDIuMjRjLjEyIDEuMjYuMjUgMi42Ni4yNSAzLjExYTIgMiAwIDEgMS00IDBjMC0uNDUuMTMtMS44NS4yNS0zLjExbC4xNy0xLjcuMDItLjE5SDEwYTEgMSAwIDAgMS0xLTFWNS41Wm0zIDIuMDUtLjAyLjJhMzg1LjQ5IDM4NS40OSAwIDAgMC0uMjMgMi4yNEE1NS41OCA1NS41OCAwIDAgMCAxMS41IDEzYTEgMSAwIDEgMCAyIDBjMC0uMzgtLjEyLTEuNzItLjI1LTMuMDFhMzE1LjEzIDMxNS4xMyAwIDAgMC0uMjMtMi4yNGwtLjAyLS4yVjIuMDRjLTEuNy4yNC0zIDEuNy0zIDMuNDZWN2gxLjVhLjUuNSAwIDAgMSAuNS41NVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2QyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00LjUgMmEuNTIuNTIgMCAwIDAtLjE4LjA0LjUuNSAwIDAgMC0uMzEuMzhDMy45OSAyLjUyIDMuNSA1LjYgMy41IDdhMyAzIDAgMCAwIDEuMTMgMi4zNWMuMjUuMi4zNy40MS4zNy42di41YTMxOC4xNyAzMTguMTcgMCAwIDAgMyAwdi0uNWMwLS4xOS4xMi0uNC4zNy0uNkEzIDMgMCAwIDAgOS41IDdjMC0xLjQtLjUtNC41LS41LTQuNThhLjUuNSAwIDAgMC0uMzYtLjRDOC41OCAyIDguNTIgMiA4LjUgMmgtLjAyYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDEtLjk5LjAzVjIuNWEuNS41IDAgMCAwLTEgMHY0YS41LjUgMCAxIDEtLjk5IDB2LTRhLjUuNSAwIDAgMC0uNS0uNVpNMTEgNi41QTQuNSA0LjUgMCAwIDEgMTUuNSAyYy4yOCAwIC41LjIyLjUuNXY2Ljk4bC4wMi4yMmE2MjUuNTggNjI1LjU4IDAgMCAxIC4yMyAyLjdjLjEyIDEuNS4yNSAzLjE2LjI1IDMuNmEyIDIgMCAxIDEtNCAwYzAtLjQ0LjEzLTIuMS4yNS0zLjZsLjE3LTIuMDQuMDMtLjM2aC0uNDVBMS41IDEuNSAwIDAgMSAxMSA4LjV2LTJaTTguNSAyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC42NyAyYTEuMyAxLjMgMCAwIDAtMS4yOSAxLjA3QzMuMjMgMy44OSAzIDUuMzQgMyA2LjVhMy41IDMuNSAwIDAgMCAxLjYgMi45NGMuMjcuMTcuNC40LjQuNnYuNGEzMTguMTcgMzE4LjE3IDAgMCAwIDMgMHYtLjRjMC0uMi4xMy0uNDMuNC0uNkEzLjUgMy41IDAgMCAwIDEwIDYuNWMwLTEuMTYtLjIzLTIuNjEtLjM4LTMuNDNBMS4zIDEuMyAwIDAgMCA4LjMyIDJjLS4zMyAwLS42NC4xMy0uODcuMzRhMS41IDEuNSAwIDAgMC0xLjkgMEM1LjMyIDIuMTMgNS4wMSAyIDQuNjcgMlpNNiAzLjVhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAwIDEgMFYzLjMzYzAtLjE4LjE1LS4zMy4zMy0uMzMuMTYgMCAuMjguMS4zLjI1LjE1LjgxLjM3IDIuMTkuMzcgMy4yNWEyLjUgMi41IDAgMCAxLTEuMTQgMi4xYy0uNDQuMjgtLjg2Ljc4LS44NiAxLjQ0VjEwLjZjLjA0LjI1LjE2IDEuNDIuMjggMi42Mi4xMSAxLjIxLjIyIDIuNDEuMjIgMi43N2ExIDEgMCAxIDEtMiAwYzAtLjM2LjEtMS41Ni4yMi0yLjc3QTMxOC4yMyAzMTguMjMgMCAwIDEgNiAxMC40NXYtLjQxYzAtLjY2LS40Mi0xLjE2LS44Ni0xLjQ0QTIuNSAyLjUgMCAwIDEgNCA2LjVjMC0xLjA2LjIyLTIuNDQuMzYtMy4yNUEuMy4zIDAgMCAxIDQuNjcgM2MuMTggMCAuMzMuMTUuMzMuMzNWNi41YS41LjUgMCAwIDAgMSAwdi0zWm01IDNBNC41IDQuNSAwIDAgMSAxNS41IDJjLjI4IDAgLjUuMjIuNS41djYuOThsLjAyLjIyYTYyNS41OCA2MjUuNTggMCAwIDEgLjIzIDIuN2MuMTIgMS41LjI1IDMuMTYuMjUgMy42YTIgMiAwIDEgMS00IDBjMC0uNDQuMTMtMi4xLjI1LTMuNmwuMTctMi4wNC4wMy0uMzZoLS40NUExLjUgMS41IDAgMCAxIDExIDguNXYtMlptMyAzLjA0LS4wMi4yNWExMjQwLjkgMTI0MC45IDAgMCAwLS4yMyAyLjY5QTg2LjU4IDg2LjU4IDAgMCAwIDEzLjUgMTZhMSAxIDAgMSAwIDIgMGMwLS4zOS0uMTItMS45OC0uMjUtMy41MmE1NjUuMDYgNTY1LjA2IDAgMCAwLS4yMy0yLjdMMTUgOS41NWEuNS41IDAgMCAxIDAtLjA0VjMuMDRjLTEuNy4yNC0zIDEuNy0zIDMuNDZ2MmMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDEgLjUuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMy43NCAyLjgyYS44OC44OCAwIDAgMSAxLjc2LjA2djQuNWEuNjIuNjIgMCAxIDAgMS4yNSAwVjIuNzRhLjc1Ljc1IDAgMCAxIDEuNSAwdjQuNjJhLjYyLjYyIDAgMSAwIDEuMjUgMFYyLjg4YS44OC44OCAwIDAgMSAxLjc2LS4wNmMuMDQuNi4yNCAzLjU1LjI0IDUuMThhNCA0IDAgMCAxLTEuNyAzLjI3Yy0uMi4xNS0uMjYuMzEtLjI1LjQuMTIgMS44Ny40NSA3LjAxLjQ1IDcuODNhMi41IDIuNSAwIDAgMS01IDBjMC0uODIuMzMtNS45Ni40NS03Ljg0LjAxLS4wOC0uMDQtLjI0LS4yNi0uNEE0IDQgMCAwIDEgMy41IDhjMC0xLjYzLjItNC41Ny4yNC01LjE4Wk0xMyA3Ljc1QTUuNzUgNS43NSAwIDAgMSAxOC43NSAyYy40MSAwIC43NS4zNC43NS43NXY4LjVjMCAuMzIuMSAxLjkuMjIgMy42NGwuMDEuMDhjLjEzIDEuOTEuMjcgMy45OS4yNyA0LjUzYTIuNSAyLjUgMCAwIDEtNSAwYzAtLjUyLjEzLTIuNjEuMjUtNC41NGwuMTctMi42LjAzLS4zNmgtLjdjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy4yIDMuNzNhMS45IDEuOSAwIDAgMSAzLjA5LTEuMzEgMiAyIDAgMCAxIDIuNDMgMCAxLjkgMS45IDAgMCAxIDMuMDkgMS4zYy4wOC45OC4xOSAyLjQ5LjE5IDMuNzhhNC41IDQuNSAwIDAgMS0yLjE4IDMuODVjLS4yMi4xNC0uMjguMy0uMjcuMzkuMTMgMS45My40NSA2Ljk1LjQ1IDcuNzZhMi41IDIuNSAwIDAgMS01IDBjMC0uOC4zMi01LjgzLjQ1LTcuNzYgMC0uMDktLjA1LS4yNS0uMjctLjM5QTQuNSA0LjUgMCAwIDEgMyA3LjVjMC0xLjMuMS0yLjguMi0zLjc3Wm02LjMgMy41MmEuNzUuNzUgMCAwIDEtMS41IDBWNGEuNS41IDAgMCAwLTEgMHYzLjI1YS43NS43NSAwIDAgMS0xLjUgMFYzLjkyYS40Mi40MiAwIDAgMC0uNDItLjQyLjQuNCAwIDAgMC0uNC4zNkE0NiA0NiAwIDAgMCA0LjUgNy41YTMgMyAwIDAgMCAxLjQ1IDIuNTdjLjU1LjMzIDEuMDUuOTYgMSAxLjc3LS4xMyAxLjk4LS40NSA2LjkyLS40NSA3LjY2YTEgMSAwIDEgMCAyIDBjMC0uNzQtLjMyLTUuNjgtLjQ1LTcuNjYtLjA1LS44MS40NS0xLjQ0IDEtMS43N0EzIDMgMCAwIDAgMTAuNSA3LjVhNDYgNDYgMCAwIDAtLjE5LTMuNjQuNC40IDAgMCAwLS40LS4zNi40Mi40MiAwIDAgMC0uNDEuNDJ2My4zM1ptMy41LjVBNS43NSA1Ljc1IDAgMCAxIDE4Ljc1IDJjLjQxIDAgLjc1LjM0Ljc1Ljc1djguNWMwIC4zMi4xIDEuOS4yMiAzLjY0bC4wMS4wOGMuMTMgMS45MS4yNyAzLjk5LjI3IDQuNTNhMi41IDIuNSAwIDAgMS01IDBjMC0uNTIuMTMtMi42MS4yNS00LjU0bC4xNy0yLjYuMDMtLjM2aC0uN2MtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0yLjVabTQgMy41NS0uMDIuMzJhNzk3LjgxIDc5Ny44MSAwIDAgMC0uNDggNy44OCAxIDEgMCAxIDAgMiAwYzAtLjQ4LS4xNC0yLjUzLS4yNy00LjV2LS4xMWExMTkuNCAxMTkuNCAwIDAgMS0uMjMtMy42NFYzLjU3YTQuMjUgNC4yNSAwIDAgMC0zLjUgNC4xOHYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMS41YS43NS43NSAwIDAgMSAuNzUuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2QyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01LjUgMi43OWEuODguODggMCAwIDEgMS43NS4xdjUuODZhLjc1Ljc1IDAgMSAwIDEuNSAwdi02YS43NS43NSAwIDAgMSAxLjUgMHY2YS43NS43NSAwIDAgMCAxLjUgMFYyLjg4YS44OC44OCAwIDAgMSAxLjc2LS4wOWMuMDcuNzIuNDkgNC43OS40OSA2LjcxYTQuNSA0LjUgMCAwIDEtMS41MSAzLjM2Yy0uMzMuMy0uNDkuNi0uNDkuODZ2Ljc4Yy4wNC42LjUgNy4yOC41IDguNWEzIDMgMCAxIDEtNiAwIDMxMi4yNCAzMTIuMjQgMCAwIDEgLjUtOC41NXYtLjczYzAtLjI1LS4xNi0uNTYtLjQ5LS44NkE0LjUgNC41IDAgMCAxIDUgOS41YzAtMS45Mi40Mi01Ljk5LjUtNi43MVpNMTguOTUgMTRsLS4wNC41Ni0uMTcgMy4wNmMtLjEyIDIuMjctLjI1IDQuNzMtLjI1IDUuMzhhMyAzIDAgMSAwIDYgMGMwLS43Mi0uMTYtMy40Ny0uMy01Ljg2di0uMDZjLS4xLTEuOS0uMi0zLjUzLS4yLTMuODNWMi43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtLjVBNi43NSA2Ljc1IDAgMCAwIDE2IDguNzV2My41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2QyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTcuMDYgMmMtLjk4IDAtMS44Mi43NC0xLjkyIDEuNzMtLjE1IDEuNC0uMzkgMy45NS0uMzkgNS41MiAwIDEuNDguNjggMi44IDEuNzQgMy42Ny4zNS4yOS41MS42LjUxLjg3VjE0LjVjLS4wNC42LS41IDcuMjgtLjUgOC41YTMgMyAwIDEgMCA2IDAgMzEyLjAzIDMxMi4wMyAwIDAgMC0uNS04LjU1di0uNjZjMC0uMjcuMTYtLjU4LjUxLS44N2E0Ljc0IDQuNzQgMCAwIDAgMS43NC0zLjY3YzAtMS41Ny0uMjQtNC4xMi0uMzktNS41MmExLjkzIDEuOTMgMCAwIDAtMy4xMy0xLjMgMiAyIDAgMCAwLTIuNDYgMEExLjkzIDEuOTMgMCAwIDAgNy4wNiAyWk05IDRhLjUuNSAwIDAgMSAxIDB2NS4yNWEuNzUuNzUgMCAwIDAgMS41IDBWMy45NGMwLS4yNC4yLS40NC40NC0uNDQuMjMgMCAuNC4xNy40My4zOC4xNSAxLjQyLjM4IDMuOS4zOCA1LjM3IDAgMS4wMS0uNDYgMS45Mi0xLjE5IDIuNTFhMi42OCAyLjY4IDAgMCAwLTEuMDYgMi4wM3YuODFjLjA1LjY0LjUgNy4yNS41IDguNGExLjUgMS41IDAgMCAxLTMgMCAzMTguODYgMzE4Ljg2IDAgMCAxIC41LTguNTV2LS42NmMwLS44OS0uNTItMS41OC0xLjA2LTIuMDNhMy4yNCAzLjI0IDAgMCAxLTEuMTktMi41MWMwLTEuNDguMjMtMy45NS4zOC01LjM3LjAyLS4yMS4yLS4zOC40My0uMzguMjQgMCAuNDQuMi40NC40NHY1LjMxYS43NS43NSAwIDAgMCAxLjUgMFY0Wm0xMy41LS41djkuNzVjMCAuMzUuMSAyIC4yIDMuODF2LjFjLjE0IDIuNDQuMyA1LjE3LjMgNS44NGExLjUgMS41IDAgMCAxLTMgMGMwLS42LjEyLTMgLjI1LTUuM2ExMjA5LjY2IDEyMDkuNjYgMCAwIDEgLjIzLTQuMDRsLjAyLS4zN3YtLjA0YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yYS4yNS4yNSAwIDAgMS0uMjUtLjI1di0zLjVhNS4yNSA1LjI1IDAgMCAxIDUtNS4yNFpNMTguOTYgMTRsLS4wNC41Ni0uMTcgMy4wNmMtLjEyIDIuMjctLjI1IDQuNzMtLjI1IDUuMzhhMyAzIDAgMSAwIDYgMGMwLS43Mi0uMTYtMy40Ny0uMy01Ljg2di0uMDZjLS4xLTEuOS0uMi0zLjUzLS4yLTMuODNWMi43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtLjVBNi43NSA2Ljc1IDAgMCAwIDE2IDguNzV2My41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2QzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xOCA5LjVBNy41IDcuNSAwIDAgMSAyNS41IDJoLjVhMSAxIDAgMCAxIDEgMXYxMmE0MjUuMSA0MjUuMSAwIDAgMCAuNCA0LjI1bC4wMS4xMmMuMjcgMi42LjU5IDUuNjUuNTkgNi42M2E0IDQgMCAxIDEtOCAwYzAtLjg0LjIzLTMuMzcuNDYtNS43NGwuNDMtNC4yNmgtLjM5YTIuNSAyLjUgMCAwIDEtMi41LTIuNXYtNFptLTMuMDMtNi43M0ExIDEgMCAwIDAgMTMuOTQgMmExIDEgMCAwIDAtLjk1IDF2NmExIDEgMCAwIDEtMS45OS4wNFYzYTEgMSAwIDEgMC0yIDB2Ni4wNmExIDEgMCAwIDEtMS45OS0uMDVWM2ExIDEgMCAwIDAtMS45OC0uMjRDNSAyLjg3IDQgNy4xNCA0IDEwYTYgNiAwIDAgMCAyLjI3IDQuN2MuNS40LjczLjgyLjczIDEuMThWMTZjLS4wNy41LS4zMSAyLjU5LS41NSA0Ljc1QTc2LjQ4IDc2LjQ4IDAgMCAwIDYgMjZhNCA0IDAgMCAwIDggMGMwLS44NC0uMjMtMy4xMy0uNDUtNS4yNWE0NjEuNSA0NjEuNSAwIDAgMC0uNTUtNC44N2MwLS4zNi4yMy0uNzkuNzMtMS4xOEE2IDYgMCAwIDAgMTYgMTBjMC0yLjg2LTEtNy4xNC0xLjAzLTcuMjNabS0xLjA4LS43NmguMDItLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNi42OCAyYTIuNSAyLjUgMCAwIDAtMi40NCAxLjkyQTI2LjMgMjYuMyAwIDAgMCAzLjUgOS41YTYuNSA2LjUgMCAwIDAgMi44MiA1LjM2Yy40Ny4zMi42OC43MS42OCAxLjAzdi4xYy0uMDYuNDktLjMxIDIuNTgtLjU0IDQuNzRBNzYuNzUgNzYuNzUgMCAwIDAgNiAyNmE0IDQgMCAwIDAgOCAwYzAtLjg0LS4yMy0zLjE0LS40Ni01LjI3QTQ2NC44NSA0NjQuODUgMCAwIDAgMTMgMTUuOWMwLS4zMi4yMS0uNzEuNjgtMS4wM0E2LjUgNi41IDAgMCAwIDE2LjUgOS41YzAtMi4wNy0uNDQtNC4zLS43NC01LjU4QTIuNSAyLjUgMCAwIDAgMTMuMzIgMmMtLjYyIDAtMS4xOS4yMi0xLjYzLjU4YTIuNzQgMi43NCAwIDAgMC0zLjM4IDBBMi41NiAyLjU2IDAgMCAwIDYuNjggMlptNi4wNyAyLjU3YzAtLjMxLjI2LS41Ny41Ny0uNTdhLjUuNSAwIDAgMSAuNS4zN2MuMjkgMS4yNS42OCAzLjMuNjggNS4xM2E0LjUgNC41IDAgMCAxLTEuOTUgMy43MSAzLjMzIDMuMzMgMCAwIDAtMS41MyAzLjAybC41NCA0LjcyYy4yMyAyLjE4LjQ0IDQuMzUuNDQgNS4wNWEyIDIgMCAxIDEtNCAwYzAtLjcuMi0yLjg3LjQ0LTUuMDVBNDYwLjA4IDQ2MC4wOCAwIDAgMSA5IDE1Ljg5YzAtMS4yLS43Ni0yLjE0LTEuNTUtMi42OEE0LjUgNC41IDAgMCAxIDUuNSA5LjVjMC0xLjg0LjQtMy44OC42OC01LjEzYS41LjUgMCAwIDEgLjUtLjM3Yy4zMSAwIC41Ny4yNi41Ny41N1YxMGExIDEgMCAxIDAgMiAwVjQuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwVjEwYTEgMSAwIDEgMCAyIDBWNC41N1pNMjAgOS41YTUuNSA1LjUgMCAwIDEgNS01LjQ4VjE1YzAgLjI4LjA1LjkuMTMgMS42NmwuMjggMi43OWMuMjggMi43MS41OSA1LjY5LjU5IDYuNTVhMiAyIDAgMSAxLTQgMGMwLS43MS4yMS0zLjExLjQ1LTUuNTRhNjM1LjIgNjM1LjIgMCAwIDEgLjU1LTUuNEExIDEgMCAwIDAgMjIgMTRoLTEuNWEuNS41IDAgMCAxLS41LS41di00Wk0yNS41IDJBNy41IDcuNSAwIDAgMCAxOCA5LjV2NGEyLjUgMi41IDAgMCAwIDIuNSAyLjVoLjM5bC0uNDMgNC4yNmMtLjIzIDIuMzctLjQ2IDQuOS0uNDYgNS43NGE0IDQgMCAxIDAgOCAwYzAtLjk4LS4zMi00LjAzLS41OS02LjYzdi0uMTJBNDI1LjEgNDI1LjEgMCAwIDEgMjcgMTVWM2ExIDEgMCAwIDAtMS0xaC0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2Q0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMC42MSA0Yy0uNjQgMC0xLjI2LjQ2LTEuMzYgMS4xOEM5LjEgNi4xMiA4IDEzLjY3IDggMTdjMCAyLjIuOTUgNC4xNyAyLjQ1IDUuNTQuNy42NCAxLjA1IDEuMjggMS4wNSAxLjg1di4xMmMtLjEgMS4xNy0xIDEyLjQ3LTEgMTQuNDlhNSA1IDAgMCAwIDEwIDAgNDYxLjgzIDQ2MS44MyAwIDAgMC0xLTE0LjYxYzAtLjU3LjM2LTEuMjEgMS4wNS0xLjg1QTcuNDggNy40OCAwIDAgMCAyMyAxN2MwLTMuMzMtMS4xLTEwLjg4LTEuMjUtMTEuODJBMS4zOCAxLjM4IDAgMCAwIDIwLjQgNGgtLjAyYy0uOCAwLTEuMzcuNjUtMS4zNyAxLjM3djEwLjUxYTEuMTIgMS4xMiAwIDEgMS0yLjI0IDBWNS4zMmExLjI2IDEuMjYgMCAxIDAtMi41Mi4wNXYxMC41MWExLjEyIDEuMTIgMCAxIDEtMi4yNCAwVjUuMzdDMTIgNC42NSAxMS40MyA0IDEwLjYzIDRoLS4wMlptMjAuMyAyMC0uMDYuOTEtLjM1IDUuMWMtLjI1IDMuNzgtLjUgNy45LS41IDguOTlhNSA1IDAgMCAwIDEwIDBjMC0xLjItLjMyLTUuOC0uNTktOS43NXYtLjEzYy0uMjItMy4xNy0uNDEtNS44OC0uNDEtNi4zN1Y1LjI1QzM5IDQuNTYgMzguNDQgNCAzNy43NSA0aC0uNUExMS4yNSAxMS4yNSAwIDAgMCAyNiAxNS4yNXY1LjVjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWgxLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNy45OCA2LjczYTMuMjYgMy4yNiAwIDAgMSA1LjM0LTEuOTYgMy40OSAzLjQ5IDAgMCAxIDQuMzYgMCAzLjI4IDMuMjggMCAwIDEgNS4zNCAxLjk2Yy4zNyAyLjI1Ljk4IDYuNC45OCA5LjI3IDAgMi44NS0xLjQgNS4zNy0zLjU1IDYuOS0uNjQuNDctLjk1IDEuMDItLjk1IDEuNXYuMWMuMSAxLjA5IDEgMTIuNDcgMSAxNC41YTUgNSAwIDAgMS0xMCAwIDQ2My43MSA0NjMuNzEgMCAwIDEgMS0xNC42YzAtLjQ4LS4zMS0xLjAzLS45NS0xLjVBOC40OSA4LjQ5IDAgMCAxIDcgMTZjMC0yLjg3LjYxLTcuMDIuOTgtOS4yN1pNMTkgMTYuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjcuNWExIDEgMCAxIDAtMiAwdjkuMjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjcuM2EuOC44IDAgMCAwLS44LS44Yy0uMzggMC0uNy4yNy0uNzUuNjNBNjUuMDUgNjUuMDUgMCAwIDAgOS41IDE2YzAgMiAuOTkgMy43OSAyLjUgNC44OEE0LjQ0IDQuNDQgMCAwIDEgMTQgMjQuNjlDMTMuODkgMjUuODggMTMgMzcuMSAxMyAzOWEyLjUgMi41IDAgMCAwIDUgMCA0NzUuNSA0NzUuNSAwIDAgMC0xLTE0LjZjMC0xLjU3Ljk4LTIuNzkgMi0zLjUyQTUuOTkgNS45OSAwIDAgMCAyMS41IDE2YzAtMi42NC0uNTctNi42LS45NS04Ljg3YS43Ni43NiAwIDAgMC0uNzUtLjYzLjguOCAwIDAgMC0uOC44djkuNDVaTTM2LjUgNi41M3YxNi4yMmMwIC41OS4xOSAzLjMzLjQgNi4zNHYuMmMuMjkgNC4wNy42IDguNi42IDkuNzFhMi41IDIuNSAwIDAgMS01IDBjMC0uOTguMjUtNC45OS41LTguODJhMTY4Mi44MyAxNjgyLjgzIDAgMCAxIC40NS02LjczbC4wNS0uNjFhMS4yNSAxLjI1IDAgMCAwLTEuMjUtMS4zNGgtM2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtNS41YTguNzUgOC43NSAwIDAgMSA4LTguNzJaTTMwLjkxIDI0bC0uMDYuOTEtLjM1IDUuMWMtLjI1IDMuNzgtLjUgNy45LS41IDguOTlhNSA1IDAgMCAwIDEwIDBjMC0xLjItLjMyLTUuOC0uNTktOS43NXYtLjEzYy0uMjItMy4xNy0uNDEtNS44OC0uNDEtNi4zN1Y1LjI1QzM5IDQuNTYgMzguNDQgNCAzNy43NSA0aC0uNUExMS4yNSAxMS4yNSAwIDAgMCAyNiAxNS4yNXY1LjVjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWgxLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZEFwcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZEFwcGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi4xNiAyLjk3YS41LjUgMCAxIDAtLjMyLS45NCAzLjE4IDMuMTggMCAwIDAtMS44NiAxLjljLS4wNS4xMS0uMS4yMy0uMTMuMzRBNCA0IDAgMCAwIDYuMiAyLjE0Yy0uNTguMDEtMS4wNC40OC0xLjA2IDEuMDZBMy45OSAzLjk5IDAgMCAwIDYuMyA2LjE0bC4wMy4wM0E0IDQgMCAwIDAgMy4yIDkuNzZ2LjA3YTguNSA4LjUgMCAwIDAgMSA0Ljc1bC4zNi42NmEuNS41IDAgMCAwIC4wMy4wNWwxIDEuNGEyLjY5IDIuNjkgMCAwIDAgNC4wOS4zNC40Ni40NiAwIDAgMSAuNjQgMCAyLjY5IDIuNjkgMCAwIDAgNC4wOS0uMzRsMS0xLjRhLjUxLjUxIDAgMCAwIC4wMy0uMDVsLjM2LS42NmE4LjUgOC41IDAgMCAwIDEtNC43NXYtLjA3YTQgNCAwIDAgMC00LjY0LTMuNjNsLTEuNjYuMjhjLjAxLS42OC4xMy0xLjQ1LjQtMi4xLjI4LS42Ny43LTEuMTUgMS4yNi0xLjM0Wm0tNS4yNSA2Yy0uMjcuMS0uNTQuMjctLjcyLjYtLjE4LjM2LS4zMS45My0uMiAxLjg3YS41LjUgMCAwIDEtLjk5LjEyYy0uMTMtMS4wNiAwLTEuODYuMzEtMi40NS4zMi0uNi44LS45MyAxLjI4LTEuMDhhLjUuNSAwIDAgMSAuMzIuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQXBwbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZEFwcGxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy4yMiA4LjM0YS41LjUgMCAwIDEtLjMxLjYzYy0uMjguMS0uNTQuMjctLjcyLjYtLjE4LjM2LS4zMS45My0uMiAxLjg3YS41LjUgMCAwIDEtLjk5LjEyYy0uMTMtMS4wNiAwLTEuODYuMzEtMi40NS4zMi0uNi44LS45MyAxLjI4LTEuMDhhLjUuNSAwIDAgMSAuNjMuMzFabTQuOTQtNS4zN2EuNS41IDAgMSAwLS4zMi0uOTQgMy4xOCAzLjE4IDAgMCAwLTEuODYgMS45Yy0uMDUuMTEtLjEuMjMtLjEzLjM0QTQgNCAwIDAgMCA2LjIgMi4xNGMtLjU4LjAxLTEuMDQuNDgtMS4wNiAxLjA2YTMuOTkgMy45OSAwIDAgMCAxLjIgMi45N0E0IDQgMCAwIDAgMy4yIDkuNzZ2LjA3YTguNSA4LjUgMCAwIDAgMSA0Ljc1bC4zNi42NmEuNS41IDAgMCAwIC4wMy4wNWwxIDEuNGEyLjY5IDIuNjkgMCAwIDAgNC4wOS4zNC40Ni40NiAwIDAgMSAuNjQgMCAyLjY5IDIuNjkgMCAwIDAgNC4wOS0uMzRsMS0xLjRhLjUxLjUxIDAgMCAwIC4wMy0uMDVsLjM2LS42NmE4LjUgOC41IDAgMCAwIDEtNC43NXYtLjA3YTQgNCAwIDAgMC00LjY0LTMuNjNsLTEuNjYuMjhjLjAxLS42OC4xMy0xLjQ1LjQtMi4xLjI4LS42Ny43LTEuMTUgMS4yNi0xLjM0Wk04LjcyIDYuMjhsLS4xNi0uMDNhMi45OCAyLjk4IDAgMCAxLTIuNDItMy4wMmMwLS4wNS4wNC0uMDkuMDktLjFhMi45OSAyLjk5IDAgMCAxIDMuMDggMy4xYzAgLjA0LS4wNC4wOC0uMDkuMDgtLjE3IDAtLjMzIDAtLjUtLjAzWm0tLjMzLjk2LjE3LjAzLjc4LjEzYTQgNCAwIDAgMCAxLjMyIDBsMS42Ni0uMjhhMyAzIDAgMCAxIDMuNDkgMi43MnYuMDdhNy41IDcuNSAwIDAgMS0uODkgNC4ybC0uMzQuNjItLjk5IDEuMzhjLS42Ljg1LTEuODIuOTUtMi41Ni4yMWExLjQ2IDEuNDYgMCAwIDAtMi4wNiAwYy0uNzQuNzQtMS45Ni42NC0yLjU2LS4yMWwtLjk5LTEuMzgtLjM0LS42M2E3LjUgNy41IDAgMCAxLS45LTQuMTlsLjAxLS4wN2EzIDMgMCAwIDEgMy40OS0yLjcybC43MS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RBcHBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RBcHBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNS40NyAzLjQyQTUuMTggNS4xOCAwIDAgMCA2LjkgNy4zYTUuMTIgNS4xMiAwIDAgMC0zLjY2IDQuMjJjLS4zMyAyLjM1LjE1IDQuNzUgMS4zNyA2LjhsLjM1LjU4LjA0LjA3IDEuNDIgMS45YTMuNDYgMy40NiAwIDAgMCA1LjI4LjM0LjQ0LjQ0IDAgMCAxIC42MiAwIDMuNDYgMy40NiAwIDAgMCA1LjI4LS4zNGwxLjQyLTEuOWEuNzQuNzQgMCAwIDAgLjA0LS4wN2wuMzUtLjU5YTEwLjQ2IDEwLjQ2IDAgMCAwIDEuMzctNi44IDUuMTIgNS4xMiAwIDAgMC02LjEtNC4zbC0xLjkuNGgtLjAxYTguNyA4LjcgMCAwIDEgLjM5LTIuMzRjLjI5LS44Ny43LTEuNCAxLjE0LTEuNThhLjc1Ljc1IDAgMSAwLS41OC0xLjM4Yy0xLjA1LjQ0LTEuNjUgMS40OC0xLjk4IDIuNDhsLS4wNS4xNWE1LjE5IDUuMTkgMCAwIDAtNC45Mi0yLjhjLS43LjA0LTEuMjUuNTktMS4yOSAxLjI4Wm0yLjkzIDcuODFjLS4zNS4wNy0uNjcuMzItLjg3Ljc4LS4yLjQ4LS4yNyAxLjE4LS4wNSAyLjA2YS43NS43NSAwIDAgMS0xLjQ2LjM2IDQuNzQgNC43NCAwIDAgMSAuMTMtM0EyLjcgMi43IDAgMCAxIDguMSA5Ljc1YS43NS43NSAwIDEgMSAuMyAxLjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZEFwcGxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RBcHBsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguNCAxMS4yM2EuNzUuNzUgMCAwIDAtLjMtMS40NyAyLjcgMi43IDAgMCAwLTEuOTUgMS42NiA0Ljc0IDQuNzQgMCAwIDAtLjEzIDMuMDEuNzUuNzUgMCAxIDAgMS40Ni0uMzZBMy4yNyAzLjI3IDAgMCAxIDcuNTMgMTJjLjItLjQ2LjUyLS43Ljg3LS43OFpNNS40NyAzLjQyQTUuMTggNS4xOCAwIDAgMCA2LjkgNy4zYTUuMTIgNS4xMiAwIDAgMC0zLjY2IDQuMjJjLS4zMyAyLjM1LjE1IDQuNzUgMS4zNyA2LjhsLjM1LjU4LjA0LjA3IDEuNDIgMS45YTMuNDYgMy40NiAwIDAgMCA1LjI4LjM0LjQ0LjQ0IDAgMCAxIC42MiAwIDMuNDYgMy40NiAwIDAgMCA1LjI4LS4zNGwxLjQyLTEuOWEuNzQuNzQgMCAwIDAgLjA0LS4wN2wuMzUtLjU5YTEwLjQ2IDEwLjQ2IDAgMCAwIDEuMzctNi44IDUuMTIgNS4xMiAwIDAgMC02LjEtNC4zbC0xLjkuNGgtLjAxYTguNyA4LjcgMCAwIDEgLjM5LTIuMzRjLjI5LS44Ny43LTEuNCAxLjE0LTEuNThhLjc1Ljc1IDAgMSAwLS41OC0xLjM4Yy0xLjA1LjQ0LTEuNjUgMS40OC0xLjk4IDIuNDhsLS4wNS4xNWE1LjE5IDUuMTkgMCAwIDAtNC45Mi0yLjhjLS43LjA0LTEuMjUuNTktMS4yOSAxLjI4Wm0xLjUuMmEzLjY4IDMuNjggMCAwIDEgMy43OSAzLjhjLS4xOSAwLS4zNyAwLS41NS0uMDNsLS42MS0uMTJhMy42NyAzLjY3IDAgMCAxLTIuNjQtMy42NFptMi4wNiA1LjA2LjIuMDRjLjI1LjA3LjQ5LjEyLjczLjE1bC45Ny4yYy43LjE1IDEuNDMuMTUgMi4xNCAwbDEuOS0uMzlhMy42MiAzLjYyIDAgMCAxIDQuMzIgMy4wNCA4Ljk2IDguOTYgMCAwIDEtMS4xOCA1LjgzbC0uMzMuNTUtMS40IDEuODhhMS45NiAxLjk2IDAgMCAxLTIuOTguMTljLS43Ny0uOC0yLjAzLS44LTIuOCAwLS44NC44Ny0yLjI2Ljc4LTIuOTktLjJMNi4yMiAxOC4xbC0uMzMtLjU1YTguOTYgOC45NiAwIDAgMS0xLjE4LTUuODMgMy42MiAzLjYyIDAgMCAxIDQuMzItMy4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDYWtlMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENha2UxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTQuOTMgMS42NWMtLjE4LjMtLjI5LjY0LS4zLjg4LS4wMi40My4wNC44NS4zIDEuMTYuMjguMzMuNjguNDQgMS4wNy40NC40IDAgLjgtLjEyIDEuMDctLjQ1LjI2LS4zMi4zMy0uNzMuMy0xLjE1YTIuMDYgMi4wNiAwIDAgMC0uMy0uODdDNi44NyAxLjM2IDYuNTMgMSA2IDFzLS44OC4zNi0xLjA3LjY1Wk0zLjUgNUMyLjY3IDUgMiA1LjY3IDIgNi41bDEuODcgMS40NmMuMDguMDcuMi4wNy4zIDBsMS4xLS43OGMuNDQtLjMxIDEuMDItLjMxIDEuNDYgMGwxLjEuNzljLjEuMDYuMjIuMDYuMyAwTDEwIDYuNVY2LjVDMTAgNS42NyA5LjMzIDUgOC41IDVoLTVabTUuMjUgMy43NUwxMCA3Ljc3VjEwaC41YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEgMC0xSDJWNy43N2wxLjI1Ljk4Yy40NC4zNCAxLjA1LjM1IDEuNS4wM0w1Ljg1IDhjLjEtLjA2LjItLjA2LjMgMGwxLjEuOGMuNDUuMzEgMS4wNi4zIDEuNS0uMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2FrZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kQ2FrZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTYgMWMtLjUzIDAtLjg4LjM2LTEuMDYuNjUtLjE5LjMtLjMuNjQtLjMuODgtLjAzLjQzLjAzLjg1LjMgMS4xNi4yNy4zMy42Ny40NCAxLjA2LjQ0LjQgMCAuOC0uMTIgMS4wNy0uNDUuMjYtLjMyLjMzLS43My4zLTEuMTVhMi4wNiAyLjA2IDAgMCAwLS4zLS44N0M2Ljg5IDEuMzYgNi41NCAxIDYgMVptLS4zNyAxLjZjMC0uMDcuMDUtLjI2LjE1LS40Mi4xLS4xNi4xOS0uMTguMjItLjE4LjA0IDAgLjEyLjAyLjIyLjE5cy4xNS4zNS4xNi40Yy4wMi4zLS4wNC40MS0uMDguNDUtLjAyLjAzLS4xLjA5LS4zLjA5LS4yMiAwLS4yOC0uMDYtLjMtLjA4LS4wMi0uMDMtLjA4LS4xNS0uMDctLjQ2Wk0xMCAxMFY2LjVDMTAgNS42NyA5LjMzIDUgOC41IDVoLTVDMi42NyA1IDIgNS42NyAyIDYuNVYxMGgtLjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMUgxMFpNMy41IDZoNWMuMjggMCAuNS4yMi41LjV2Ljc5bC0uODcuNjdhLjI1LjI1IDAgMCAxLS4zIDBsLTEuMS0uNzhjLS40NC0uMzEtMS4wMi0uMzEtMS40NiAwbC0xLjEuNzlhLjI1LjI1IDAgMCAxLS4zIDBMMyA3LjI4VjYuNWMwLS4yOC4yMi0uNS41LS41Wk0zIDguNTVsLjI1LjJjLjQ0LjM0IDEuMDQuMzUgMS41LjAzTDUuODUgOGMuMS0uMDYuMi0uMDYuMyAwbDEuMS44Yy40NS4zMSAxLjA2LjMgMS41LS4wNGwuMjUtLjJWMTBIM1Y4LjU1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZENha2UxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kQ2FrZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi44MSAxLjY3QzcuMDggMS4zMiA3LjQ4IDEgOCAxYy41MiAwIC45Mi4zMiAxLjE5LjY3LjI2LjM1LjQ1LjgxLjUgMS4yNmEyIDIgMCAwIDEtLjI2IDEuMzhDOS4xMyA0Ljc1IDguNjQgNSA4IDVjLS42NCAwLTEuMTMtLjI1LTEuNDMtLjdhMiAyIDAgMCAxLS4yNy0xLjM3Yy4wNi0uNDUuMjUtLjkuNTEtMS4yNlpNMi4wMyA3LjY1QTIgMiAwIDAgMSA0IDZoOGEyIDIgMCAwIDEgMS45OSAxLjggMzAuNDggMzAuNDggMCAwIDEtMS40MyAxLjMyYy0uNDMuMzctLjg4LjczLTEuMjcgMS0uMi4xMy0uMzguMjMtLjUzLjNhLjc4Ljc4IDAgMCAxLS4yNi4wOGMtLjI2IDAtLjQzLS4xNy0uODItLjU5QzkuMzQgOS41NCA4Ljg0IDkgOCA5cy0xLjM0LjU0LTEuNjguOXYuMDFjLS4zOS40Mi0uNTYuNTktLjgyLjU5bC0uMDYtLjAxLS4xOC0uMDdhNC4xIDQuMSAwIDAgMS0uNTEtLjNjLS40LS4yNy0uODUtLjYzLTEuMjktMUEzMi44OCAzMi44OCAwIDAgMSAyLjAxIDcuOGEyIDIgMCAwIDEgLjAyLS4xNVpNMiA5LjE1YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuMiAxLjc5Yy4yMS4xNS40My4yOS42NC4zOC4yLjEuNDMuMTguNjYuMTguNzMgMCAxLjItLjUxIDEuNS0uODRsLjA2LS4wN2MuMzUtLjM5LjU4LS41OS45NC0uNTlzLjU5LjIuOTQuNTlsLjA2LjA3Yy4zLjMzLjc3Ljg0IDEuNS44NC4yNCAwIC40Ny0uMDguNjgtLjE3LjIxLS4xLjQ0LS4yMy42Ni0uMzguNDUtLjMuOTMtLjcgMS4zOC0xLjA3bC43OC0uN1YxM2guNWEuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMSAwLTFIMlY5LjE2WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZENha2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENha2UxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjgxIDEuNjdDNy4wOCAxLjMyIDcuNDggMSA4IDFjLjUyIDAgLjkyLjMyIDEuMTkuNjcuMjYuMzUuNDUuODEuNSAxLjI2YTIgMiAwIDAgMS0uMjYgMS4zOEM5LjEzIDQuNzUgOC42NCA1IDggNWMtLjY0IDAtMS4xMy0uMjUtMS40My0uN2EyIDIgMCAwIDEtLjI3LTEuMzdjLjA2LS40NS4yNS0uOS41MS0xLjI2Wm0uNiAyLjA4Yy4wNy4xMi4yMy4yNS41OS4yNXMuNTItLjEzLjYtLjI1Yy4xLS4xNC4xNC0uMzguMS0uNjgtLjA0LS4zLS4xNS0uNi0uMzEtLjhDOC4yMyAyLjA1IDguMDkgMiA4IDJjLS4wOCAwLS4yMy4wNS0uMzkuMjctLjE2LjItLjI3LjUtLjMxLjgtLjA0LjMgMCAuNTQuMS42OFpNMiA4YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjVoLjVhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEgMC0xSDJWOFptMSA1aDEwdi0yLjk4bC0uMjguMjVhOC4yIDguMiAwIDAgMS0xLjA1LjgxYy0uMzQuMjItLjc2LjQyLTEuMTcuNDItLjczIDAtMS4yLS41MS0xLjUtLjg0bC0uMDYtLjA3QzguNiAxMC4yIDguMzYgMTAgOCAxMHMtLjU5LjItLjk0LjU5bC0uMDYuMDdjLS4zLjMzLS43Ny44NC0xLjUuODQtLjQgMC0uOC0uMjEtMS4xNC0uNDJBOC45IDguOSAwIDAgMSAzIDEwdjNabTAtNC40YTE2LjY0IDE2LjY0IDAgMCAwIC45Ny45MmMuMy4yNy42My41My45Mi43MS4zMi4yLjUyLjI3LjYxLjI3LjI2IDAgLjQzLS4xNy44Mi0uNTlDNi42NiA5LjU0IDcuMTYgOSA4IDlzMS4zNC41NCAxLjY4Ljl2LjAxYy4zOS40Mi41Ni41OS44Mi41OS4xMSAwIC4zMy0uMDcuNjQtLjI3LjMtLjE4LjYyLS40NC45Mi0uN0ExNC4zOCAxNC4zOCAwIDAgMCAxMyA4LjZWOGExIDEgMCAwIDAtMS0xSDRhMSAxIDAgMCAwLTEgMXYuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDYWtlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENha2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJjLS43NyAwLTEuMjguNTMtMS41NyAxLjAyLS4zLjUtLjQ1IDEuMDctLjQ3IDEuNDQtLjA0Ljc0LjA3IDEuMzkuNDQgMS44Ni4zOC40OS45Ni42NyAxLjYuNjcuNjQgMCAxLjIyLS4yIDEuNi0uNy4zNy0uNDcuNDktMS4xMS40NC0xLjgzYTMuNTYgMy41NiAwIDAgMC0uNDctMS40M0MxMS4yOCAyLjU1IDEwLjc3IDIgMTAgMlpNMyA5Ljc4bDMuMiAyLjk0YTEgMSAwIDAgMCAxLjQzLS4wN2wuODYtLjk4YTIgMiAwIDAgMSAzIDBsLjg2Ljk4YTEgMSAwIDAgMCAxLjQzLjA3bDMuMi0yLjk0QTIgMiAwIDAgMCAxNSA4SDVhMiAyIDAgMCAwLTEuOTkgMS43OVpNMTcgMTEuMTRsLTIuNTQgMi4zM2EyIDIgMCAwIDEtMi44NS0uMTVsLS44Ni0uOTdhMSAxIDAgMCAwLTEuNSAwbC0uODYuOTdhMiAyIDAgMCAxLTIuODUuMTVMMyAxMS4xNFYxNmgtLjVhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFIMTd2LTQuODZaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2FrZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kQ2FrZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJjLS43NyAwLTEuMjguNTMtMS41NyAxLjAyLS4zLjUtLjQ1IDEuMDctLjQ3IDEuNDQtLjA0Ljc0LjA3IDEuMzkuNDQgMS44Ni4zOC40OS45Ni42NyAxLjYuNjcuNjQgMCAxLjIyLS4yIDEuNi0uNy4zNy0uNDcuNDktMS4xMS40NC0xLjgzYTMuNTYgMy41NiAwIDAgMC0uNDctMS40M0MxMS4yOCAyLjU1IDEwLjc3IDIgMTAgMlpNOC45NiA0LjUxYzAtLjIuMTEtLjYzLjMzLS45OS4yMi0uMzcuNDYtLjU0LjctLjU0LjI1IDAgLjUuMTcuNzIuNTUuMjEuMzcuMzIuOC4zMy45OC4wNC42LS4wNy45Ni0uMjMgMS4xNi0uMTQuMTgtLjM4LjMxLS44MS4zMS0uNDUgMC0uNjktLjEyLS44Mi0uMy0uMTUtLjE4LS4yNi0uNTQtLjIyLTEuMTdaTTUgOGEyIDIgMCAwIDAtMiAydjZoLS41YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xSDE3di02YTIgMiAwIDAgMC0yLTJINVptMTEgOEg0di0zLjg4bDEuNTQgMS4zOGEyIDIgMCAwIDAgMi44My0uMTZsLjg4LTFhMSAxIDAgMCAxIDEuNSAwbC44OCAxYTIgMiAwIDAgMCAyLjgzLjE2TDE2IDEyLjEyVjE2Wm0wLTUuMjItMi4yMSAxLjk3YTEgMSAwIDAgMS0xLjQyLS4wOGwtLjg3LS45OWEyIDIgMCAwIDAtMyAwbC0uODcgMWExIDEgMCAwIDEtMS40Mi4wN0w0IDEwLjc4VjEwYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2FrZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDYWtlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA3YzEuNzEgMCAyLTEuMzQgMi0yLjQ0IDAtMS4xLS43NC0zLjA2LTItMy4wNnMtMiAxLjk1LTIgMy4wNmMwIDEuMS4yOSAyLjQ0IDIgMi40NFptLTguNSAzLjI1QzMuNSA5LjAxIDQuNSA4IDUuNzUgOGgxMi41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1di44OGwtMy42MyAyLjcyYy0uNC4zLS45NS4zMy0xLjM5LjA4bC0yLjA0LTEuMmMtLjktLjUzLTItLjUtMi44OC4wNkw4LjggMTMuOTJjLS40MS4yNy0uOTQuMjctMS4zNSAwTDMuNSAxMS40MnYtMS4xNlptMCAyLjk0djUuMzFoLS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS43NVYxM2wtMi43MyAyLjA1Yy0uOS42Ny0yLjEuNzMtMy4wNS4xN2wtMi4wNC0xLjJjLS40LS4yNC0uOTEtLjIzLTEuMy4wM0w5LjYgMTUuMThjLS45LjU5LTIuMDYuNTktMi45Ny4wMWwtMy4xNC0yWlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZENha2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENha2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAxYy0uOTUgMC0xLjU5LjY4LTEuOTQgMS4yOGE0LjE1IDQuMTUgMCAwIDAtLjU2IDEuOTdjMCAuNS4wNiAxLjE3LjQzIDEuNzUuNDEuNjMgMS4xIDEgMi4wNyAxIC45NiAwIDEuNjYtLjM3IDIuMDctMSAuMzctLjU4LjQzLTEuMjYuNDMtMS43NSAwLS42LS4yLTEuMzUtLjU2LTEuOTdDMTMuNTkgMS42OCAxMi45NSAxIDEyIDFabS0xIDMuMjVjMC0uMy4xMi0uOC4zNi0xLjIxLjI1LS40Mi40OS0uNTQuNjQtLjU0LjE1IDAgLjQuMTIuNjQuNTQuMjQuNC4zNi45LjM2IDEuMjEgMCAuNDEtLjA2LjczLS4yLjkzLS4wOC4xNC0uMjYuMzItLjguMzJzLS43Mi0uMTgtLjgtLjMyYy0uMTQtLjItLjItLjUyLS4yLS45M1ptOS41IDZ2OC4yNWguNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aC43NXYtOC4yNUMzLjUgOS4wMSA0LjUgOCA1Ljc1IDhoMTIuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNVptLTE1LjUgMHYyLjFsMi40NSAxLjU3Yy40MS4yNy45NC4yNyAxLjM1IDBsMS43NS0xLjEzYy44OC0uNTYgMi0uNTggMi45LS4wNWwyIDEuMmMuNDMuMjUuOTYuMjMgMS4zNy0uMDVMMTkgMTIuMzZ2LTIuMTFhLjc1Ljc1IDAgMCAwLS43NS0uNzVINS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0xMi42OCA0Ljg3Yy0uODkuNjItMi4wNi42Ny0yLjk5LjExbC0yLTEuMmMtLjQyLS4yNC0uOTMtLjIzLTEuMzMuMDJsLTEuNzQgMS4xM2MtLjkxLjU5LTIuMDguNTktMi45OSAwTDUgMTQuMTN2NC4zN2gxNHYtNC4zbC0xLjMyLjkyWlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZENhcnJvdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDYXJyb3QyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNCA1LjI5VjIuNWEuNS41IDAgMSAwLTEgMHYyLjg4YTMuNjYgMy42NiAwIDAgMC00LjY0IDEuMmwtNi4wOSA4Ljk1Yy0uNDIuNjMtLjM0IDEuNDcuMiAyIC41NS41NSAxLjQyLjYyIDIuMDUuMThsOC45My02LjE4QTMuNTcgMy41NyAwIDAgMCAxNC42MyA3aDIuODdhLjUuNSAwIDEgMCAwLTFoLTIuOGwzLjE1LTMuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2Fycm90MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDYXJyb3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy44NSAyLjg1YS41LjUgMCAwIDAtLjctLjdMMTQgNS4yOVYyLjVhLjUuNSAwIDAgMC0xIDB2Mi44OGEzLjY2IDMuNjYgMCAwIDAtNC42NCAxLjJsLTYuMDkgOC45NWMtLjQyLjYzLS4zNCAxLjQ3LjIgMiAuNTUuNTUgMS40MS42MiAyLjA1LjE4bDguOTMtNi4xOEEzLjU3IDMuNTcgMCAwIDAgMTQuNjMgN2gyLjg3YS41LjUgMCAwIDAgMC0xaC0yLjhsMy4xNS0zLjE1Wk05LjIgNy4xNGEyLjY0IDIuNjQgMCAwIDEgNC4wNC0uMzkgMi41OCAyLjU4IDAgMCAxLS4zNSAzLjk2TDMuOTUgMTYuOWEuNi42IDAgMCAxLS43Ny0uMDcuNTkuNTkgMCAwIDEtLjA3LS43NWw2LjA4LTguOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2Fycm90MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENhcnJvdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNSAyLjc1YS43NS43NSAwIDAgMC0xLjUgMHY0LjAxYTQuNTYgNC41NiAwIDAgMC02LjMgMS4yMmwtNy4zNSAxMC44Yy0uNTUuODItLjQ1IDEuOTIuMjYgMi42MS43MS43MSAxLjg0LjggMi42Ny4yM2wxMC43OC03LjQ2QTQuNDUgNC40NSAwIDAgMCAxNy4yNCA4aDQuMDFhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjY5bDMuMjItMy4yMmEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDE3LjUgNS40NFYyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZENhcnJvdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kQ2Fycm90MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAyLjc1YS43NS43NSAwIDAgMC0xLjUgMHY0LjAxYTQuNTYgNC41NiAwIDAgMC02LjMgMS4yMmwtNy4zNCAxMC44Yy0uNTYuODItLjQ1IDEuOTIuMjUgMi42MS43MS43MSAxLjg0LjggMi42Ny4yM2wxMC43OS03LjQ2QTQuNDUgNC40NSAwIDAgMCAxNy4yNCA4aDQuMDFhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjY5bDMuMjItMy4yMmEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDE3LjUgNS40NFYyLjc1Wm0tNi41NCA2LjA2YTMuMDQgMy4wNCAwIDAgMSA0LjY1LS40NCAyLjk3IDIuOTcgMCAwIDEtLjQgNC41Nkw0LjQgMjAuNGEuNTguNTggMCAwIDEtLjczLS4wNi41Ni41NiAwIDAgMS0uMDctLjcybDcuMzUtMTAuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDaGlja2VuTGVnMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENoaWNrZW5MZWcxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE1IDVhNCA0IDAgMCAwLTcuOTQtLjY4Yy0uMi42Mi0uMzggMS4xLS41NCAxLjQ1TDQuMTUgOC4xNUEuNS41IDAgMCAwIDQuNSA5aC4wOGwtMS40OSAxLjQ4aC0uMDFhLjI1LjI1IDAgMCAxLS4wOC4wMiAyIDIgMCAwIDAtMS4yMiAzLjU5Yy4wNS4wMy4xLjA4LjEzLjEzQTIgMiAwIDAgMCA1LjUgMTNsLjAxLS4wOHYtLjAxTDcgMTEuNDN2LjA3YS41LjUgMCAwIDAgLjg1LjM1bDIuMzYtMi4zNWMuMzctLjE3Ljg4LS4zNyAxLjU2LS41N0E0IDQgMCAwIDAgMTUgNVpNNS45OSA5SDd2MS4wMWwtMi4yIDIuMmMtLjIzLjIzLS4zLjU0LS4zLjc5YTEgMSAwIDAgMS0xLjguNmMtLjA4LS4xLS4yLS4yMi0uMy0uM2ExIDEgMCAwIDEgLjYtMS44Yy4yNSAwIC41Ni0uMDcuOC0uM0w1Ljk5IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2hpY2tlbkxlZzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kQ2hpY2tlbkxlZzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE1IDVhNCA0IDAgMCAwLTcuOTQtLjY4Yy0uMi42Mi0uMzggMS4xLS41NCAxLjQ1TDQuMTUgOC4xNUEuNS41IDAgMCAwIDQuNSA5aC4wOGwtMS40OSAxLjQ4aC0uMDFhLjI1LjI1IDAgMCAxLS4wOC4wMiAyIDIgMCAwIDAtMS4yMiAzLjU5Yy4wNS4wMy4xLjA4LjEzLjEzQTIgMiAwIDAgMCA1LjUgMTNsLjAxLS4wOHYtLjAxTDcgMTEuNDN2LjA3YS41LjUgMCAwIDAgLjg1LjM1bDIuMzYtMi4zNWMuMzctLjE3Ljg4LS4zNyAxLjU2LS41N0E0IDQgMCAwIDAgMTUgNVptLTggNS4wMS0yLjIgMi4yYy0uMjMuMjMtLjMuNTQtLjMuNzlhMSAxIDAgMCAxLTEuOC42Yy0uMDgtLjEtLjItLjIyLS4zLS4zYTEgMSAwIDAgMSAuNi0xLjhjLjI1IDAgLjU2LS4wNy44LS4zTDUuOTkgOUg3djEuMDFaTTExIDJhMyAzIDAgMCAxIC41IDUuOTZjLS43OC4yNC0xLjM2LjQ3LTEuNzkuNjdhLjUuNSAwIDAgMC0uMTQuMUw4IDEwLjI5VjguNWEuNS41IDAgMCAwLS41LS41SDUuN2wxLjYtMS41OWEuNS41IDAgMCAwIC4xLS4xNCAxNC4xOSAxNC4xOSAwIDAgMCAuNjQtMS43NUEzIDMgMCAwIDEgMTEgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDaGlja2VuTGVnMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENoaWNrZW5MZWcyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDdhNSA1IDAgMCAwLTkuOTMtLjg3Yy0uNDIgMS41LS44MyAyLjI5LTEuMDQgMi42M2wtMS44OCAxLjg5YS41LjUgMCAwIDAgLjM1Ljg1aC4zOWwtMiAyYTIgMiAwIDAgMC0xLjE1IDMuNTVjLjA4LjA2LjE1LjEzLjIuMjFBMiAyIDAgMCAwIDYuNSAxNi4xbDItMnYuNGEuNS41IDAgMCAwIC44NS4zNWwxLjg4LTEuODdjLjM0LS4yMSAxLjE1LS42MyAyLjctMS4wN0E0Ljk3IDQuOTcgMCAwIDAgMTggN1pNNy4zIDExLjVoMS4ydjEuMTlsLTIuNzggMi43OGEuNzUuNzUgMCAwIDAtLjIyLjUzIDEgMSAwIDAgMS0xLjc4LjYzYy0uMS0uMTMtLjIyLS4yNS0uMzUtLjM1QTEgMSAwIDAgMSA0IDE0LjVjLjE4IDAgLjM3LS4wNi41MS0uMjFsMi44LTIuNzlaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2hpY2tlbkxlZzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kQ2hpY2tlbkxlZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE4IDdhNSA1IDAgMCAwLTkuOTMtLjg3Yy0uNDIgMS41LS44MyAyLjI5LTEuMDQgMi42M2wtMS44OCAxLjg5YS41LjUgMCAwIDAgLjM1Ljg1aC4zOWwtMiAyYTIgMiAwIDAgMC0xLjE1IDMuNTVjLjA4LjA2LjE1LjEzLjIuMjFBMiAyIDAgMCAwIDYuNSAxNi4xbDItMnYuNGEuNS41IDAgMCAwIC44NS4zNWwxLjg4LTEuODdjLjM0LS4yMSAxLjE1LS42MyAyLjctMS4wN0E0Ljk3IDQuOTcgMCAwIDAgMTggN1ptLTkuNSA1LjY5LTIuNzggMi43OGEuNzUuNzUgMCAwIDAtLjIyLjUzIDEgMSAwIDAgMS0xLjc4LjYzYy0uMS0uMTMtLjIyLS4yNS0uMzUtLjM1QTEgMSAwIDAgMSA0IDE0LjVjLjE4IDAgLjM3LS4wNi41MS0uMjFsMi44LTIuNzlIOC41djEuMTlaTTEzIDNhNCA0IDAgMCAxIDEuMzcgNy43NiAxMS42IDExLjYgMCAwIDAtMy44IDEuNDdMOS40OSAxMy4zdi0yLjIzYS41LjUgMCAwIDAtLjE1LS4zNWwtLjA2LS4wNmEuNS41IDAgMCAwLS4zNS0uMTVINi43MWwxLjA3LTEuMDdhMTEuNTMgMTEuNTMgMCAwIDAgMS4yOC0zLjEgMy45NyAzLjk3IDAgMCAxIC4yMy0uODJBNCA0IDAgMCAxIDEzIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2hpY2tlbkxlZzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDaGlja2VuTGVnMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiA4YTYgNiAwIDAgMC0xMS45LTEuMSAxNS4xMiAxNS4xMiAwIDAgMS0xLjM2IDMuM2wtMi41MiAyLjUyYS43NS43NSAwIDAgMCAuMjggMS4yNEw0LjQ2IDE2YTIuNSAyLjUgMCAwIDAtMS40MiA0LjUzYy4xNy4xMi4zMS4yNi40My40M0EyLjUgMi41IDAgMCAwIDggMTkuNTNsMi4wNC0yLjA0YS43NS43NSAwIDAgMCAxLjI0LjI5bDIuNTItMi41MmMuNDgtLjI5IDEuNDgtLjggMy4zMi0xLjM2QTYgNiAwIDAgMCAyMiA4Wk04LjU4IDE0SDEwdjEuNDFsLTMuMTIgMy4xMmMtLjI5LjMtLjM4LjY3LS4zOC45N2ExIDEgMCAwIDEtMS44MS41OGMtLjIxLS4zLS40OC0uNTUtLjc3LS43N2ExIDEgMCAwIDEgLjU4LTEuODFjLjMgMCAuNjctLjA5Ljk2LS4zOEw4LjU4IDE0WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZENoaWNrZW5MZWcyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignRm9vZENoaWNrZW5MZWcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMiA4YTYgNiAwIDAgMC0xMS45LTEuMSAxNS4xMiAxNS4xMiAwIDAgMS0xLjM2IDMuM2wtMi41MiAyLjUyYS43NS43NSAwIDAgMCAuMjggMS4yNEw0LjQ2IDE2YTIuNSAyLjUgMCAwIDAtMS40MiA0LjUzYy4xNy4xMi4zMS4yNi40My40M0EyLjUgMi41IDAgMCAwIDggMTkuNTNsMi4wNC0yLjA0YS43NS43NSAwIDAgMCAxLjI0LjI5bDIuNTItMi41MmMuNDgtLjI5IDEuNDgtLjggMy4zMi0xLjM2QTYgNiAwIDAgMCAyMiA4Wm0tMTIgNy40MS0zLjEyIDMuMTJjLS4yOS4zLS4zOC42Ny0uMzguOTdhMSAxIDAgMCAxLTEuODEuNThjLS4yMS0uMy0uNDgtLjU2LS43Ny0uNzdhMSAxIDAgMCAxIC41OC0xLjgxYy4zIDAgLjY3LS4wOS45Ni0uMzhMOC41OCAxNEgxMHYxLjQxWk0xNiAzLjVhNC41IDQuNSAwIDAgMSAuNzIgOC45NSAxNi4yOCAxNi4yOCAwIDAgMC0zLjkxIDEuNjhsLTEuMzEgMS4zdi0yLjE4YS43NS43NSAwIDAgMC0uNzUtLjc1SDguNTZsMS4zLTEuM2ExNi4xMiAxNi4xMiAwIDAgMCAxLjcxLTRBNC41IDQuNSAwIDAgMSAxNiAzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBGb29kQ2hpY2tlbkxlZzMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDaGlja2VuTGVnMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0zMCAxMC41YTguNSA4LjUgMCAwIDAtMTYuODYtMS41MyAyMS4yOCAyMS4yOCAwIDAgMS0xLjg2IDQuMzRsLTMuOTkgMy45OEExIDEgMCAwIDAgOCAxOWguMWwtMy4wMiAzLjAyYTMuNSAzLjUgMCAwIDAtMS43MSA2LjI2Yy4xMy4xLjI2LjIyLjM2LjM2YTMuNSAzLjUgMCAwIDAgNi4yNS0xLjc0TDEzIDIzLjg4VjI0YTEgMSAwIDAgMCAxLjcuN2w0LTMuOThjLjY1LS40IDEuOTktMS4wOSA0LjM3LTEuODZBOC41IDguNSAwIDAgMCAzMCAxMC41Wk0xMC45NCAxOUgxM3YyLjA1bC00LjY4IDQuNjhjLS4yMS4yMS0uMzIuNDktLjMyLjc3YTEuNSAxLjUgMCAwIDEtMi42OS45MiAzLjk4IDMuOTggMCAwIDAtLjczLS43M0ExLjUgMS41IDAgMCAxIDUuNSAyNGMuMjggMCAuNTUtLjExLjc1LS4zMUwxMC45NCAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IEZvb2RDaGlja2VuTGVnMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RDaGlja2VuTGVnMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMzAgMTAuNWE4LjUgOC41IDAgMCAwLTE2Ljg2LTEuNTMgMjEuMjggMjEuMjggMCAwIDEtMS44NiA0LjM0bC0zLjk5IDMuOThBMSAxIDAgMCAwIDggMTloLjFsLTMuMDIgMy4wMmEzLjUgMy41IDAgMCAwLTEuNzEgNi4yNmMuMTMuMS4yNi4yMi4zNi4zNmEzLjUgMy41IDAgMCAwIDYuMjUtMS43NEwxMyAyMy44OFYyNGExIDEgMCAwIDAgMS43LjdsNC0zLjk4Yy42NS0uNCAxLjk5LTEuMDkgNC4zNy0xLjg2QTguNSA4LjUgMCAwIDAgMzAgMTAuNVpNMTMgMjEuMDVsLTQuNjggNC42OGMtLjIxLjIxLS4zMi40OS0uMzIuNzdhMS41IDEuNSAwIDAgMS0yLjY5LjkyIDMuOTggMy45OCAwIDAgMC0uNzMtLjczQTEuNSAxLjUgMCAwIDEgNS41IDI0Yy4yOCAwIC41NS0uMTEuNzUtLjMxTDEwLjk0IDE5SDEzdjIuMDVaTTIxLjUgNGE2LjUgNi41IDAgMCAxIDEuMDEgMTIuOTNjLTIuNjcuODctNC4xOSAxLjY3LTQuOTcgMi4xNWExIDEgMCAwIDAtLjE4LjE0TDE1IDIxLjZWMThhMSAxIDAgMCAwLTEtMWgtMy41OWwyLjM2LTIuMzZhMSAxIDAgMCAwIC4xNC0uMTggMjIuNjggMjIuNjggMCAwIDAgMi4xOS01LjA4QTYuNSA2LjUgMCAwIDEgMjEuNSA0WlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZEVnZzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ0Zvb2RFZ2cxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcuNyA4LjIyYS43My43MyAwIDAgMSAuMi0uMzcuMzguMzggMCAwIDEgLjExLS4wNy41LjUgMCAwIDAgLjE5LS45OWMtLjQtLjA4LS43Ni4xMy0uOTguMzMtLjI0LjIzLS40My41NC0uNS45YS41LjUgMCAxIDAgLjk3LjJaTTMuNTEgNS44M2MtMS43OSAxLjQyLTEuODMgMy44NC0xIDUuNDZhMy42MSAzLjYxIDAgMCAwIDMuMjggMi4wN2wuOTItLjAyYy42OS0uMDMuODItLjA0IDEuNzguMzUgMS4yOC41MiAyLjY1LjM3IDMuNzktLjM1IDEuMDMtLjY1IDEuNjItMi4xNSAxLjUyLTMuMzctLjA2LS42NSAwLS45MS4wNy0xLjIxLjA1LS4yNy4xMi0uNTYuMTItMS4xOCAwLTEuMzItLjM5LTIuMTYtLjc4LTIuODRhNS4zMiA1LjMyIDAgMCAwLTIuMDEtMi4xMyA0LjU0IDQuNTQgMCAwIDAtNC4zMy0uMTFBNS4zMSA1LjMxIDAgMCAwIDQuNiA0Ljc0Yy0uMjQuNDEtLjQ4LjYxLTEuMDggMS4wOVpNMTEuNiA4LjNhMy4zIDMuMyAwIDEgMS02LjYgMCAzLjMgMy4zIDAgMCAxIDYuNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgRm9vZEVnZzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdGb29kRWdnMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy43IDguMjJhLjczLjczIDAgMCAxIC4yLS4zNi4zOC4zOCAwIDAgMSAuMTEtLjA4LjUuNSAwIDAgMCAuMTktLjk5Yy0uNC0uMDgtLjc2LjEzLS45OC4zNC0uMjQuMjItLjQzLjUzLS41Ljg4YS41LjUgMCAxIDAgLjk3LjIxWm0uNiAzLjM4YTMuMyAzLjMgMCAxIDAgMC02LjYgMy4zIDMuMyAwIDAgMCAwIDYuNlptMC0xYTIuMyAyLjMgMCAxIDEgMC00LjYgMi4zIDIuMyAwIDAgMSAwIDQuNlpNOS4yIDJjLjc5LjA2IDEuNTMuMjkgMi4wNy42M2E1LjM4IDUuMzggMCAwIDEgMi4wMiAyLjEyYy4zOS42Ny43OSAxLjUzLjc5IDIuODUgMCAuNjItLjA3LjkzLS4xMyAxLjJ2LjA0Yy0uMDUuMjEtLjEuNC0uMDUuOTFhNC4yIDQuMiAwIDAgMS0uMzUgMS45OGMtLjI3LjYyLS43IDEuMi0xLjI4IDEuNTctMS4xOS43NC0yLjYyLjktMy45Ni4zNy0uNTktLjI0LS43Ny0uMjktLjk3LS4zSDYuODdMNiAxMy40YTMuODQgMy44NCAwIDAgMS0zLjQ2LTIuMTZDMS42OCA5LjYgMS43IDcuMSAzLjU5IDUuNjFhMyAzIDAgMCAwIC44OC0uODdjLjMxLS41Mi42MS0uOTMuOTgtMS4yOXMuNzgtLjY1IDEuMy0uOTRhNC40NyA0LjQ3IDAgMCAxIDIuNDUtLjVabS0uMDYgMWEzLjQ3IDMuNDcgMCAwIDAtMS45LjM5Yy0uNDcuMjYtLjguNS0xLjA5Ljc3LS4yOC4yOC0uNTMuNjItLjgyIDEuMS0uMjguNDYtLjU3LjctMS4xMiAxLjEzLTEuNDEgMS4xMi0xLjQ4IDMuMDQtLjc5IDQuMzguNDYuODggMS4zMSAxLjYyIDIuNTggMS42Mi4zNiAwIC42MiAwIC44My0uMDJINy40Yy4zOC4wMi43LjEzIDEuMjkuMzcgMS4wMy40IDIuMTIuMjkgMy4wNS0uMjkuMzYtLjIzLjY4LS42My45LTEuMTIuMi0uNDkuMy0xLjAzLjI2LTEuNS0uMDUtLjYxIDAtLjkuMDctMS4ydi0uMDZhNC4zNyA0LjM3IDAgMCAwLS41NS0zLjMyIDQuNCA0LjQgMCAwIDAtMS42OS0xLjc4QTMuNTMgMy41MyAwIDAgMCA5LjEzIDNaXCJdKTsiLCJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgY3JlYXRlRmx1ZW50SWNvbiB9IGZyb20gXCIuLi91dGlscy9jcmVhdGVGbHVlbnRJY29uXCI7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVEZXNrdG9wMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDJhMiAyIDAgMCAwLTIgMnYzaDIuNUEyLjUgMi41IDAgMCAxIDkgOS41VjEzaDN2Mkg5djFoNS41YS41LjUgMCAwIDAgMC0xSDEzdi0yaDNhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINlpNMy41IDhDMi42NyA4IDIgOC42NyAyIDkuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di03QzggOC42NyA3LjMzIDggNi41IDhoLTNabS41IDcuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRGVza3RvcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3AyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDNoMTBhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0xIDFIOXYxaDN2Mkg5djFoNS41YS41LjUgMCAwIDAgMC0xSDEzdi0yaDNhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjNoMVY0YTEgMSAwIDAgMSAxLTFaTTQuNSAxNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xWk0yIDkuNUMyIDguNjcgMi42NyA4IDMuNSA4aDNDNy4zMyA4IDggOC42NyA4IDkuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDIgMTYuNXYtN1pNMy41IDlhLjUuNSAwIDAgMC0uNS41djdjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjUtLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURlc2t0b3AyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3AyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTguMjUgOWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDMi43OCAyMiAyIDIxLjIyIDIgMjAuMjV2LTkuNUMyIDkuNzggMi43OCA5IDMuNzUgOWg0LjVabS0yIDkuNWgtLjZhLjc1Ljc1IDAgMCAwIDAgMS40OWguN2EuNzUuNzUgMCAwIDAgMC0xLjQ5aC0uMVpNMTkuNzUgMmMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXY5LjE1YzAgMS4yLS45MiAyLjE3LTIuMDkgMi4yNGwtLjE1LjAxSDE2djJoMS4yNWEuNzUuNzUgMCAwIDEgLjEgMS41SDExdi0xLjVoMy41di0ySDExdi01QTIuNSAyLjUgMCAwIDAgOC42NiA4SDRWNC4yNWMwLTEuMi45Mi0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRGVza3RvcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguMjUgOWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDMi43OCAyMiAyIDIxLjIyIDIgMjAuMjV2LTkuNUMyIDkuNzggMi43OCA5IDMuNzUgOWg0LjVabTAgMS41aC00LjVhLjI1LjI1IDAgMCAwLS4yNS4yNXY5LjVjMCAuMTQuMTEuMjUuMjUuMjVoNC41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di05LjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVabS0yIDcuNWEuNzUuNzUgMCAwIDEgLjEgMS41aC0uNmEuNzUuNzUgMCAwIDEtLjEtMS41aC42Wm0xMy41LTE2YzEuMTkgMCAyLjE2LjkzIDIuMjQgMi4xdjkuMTVjMCAxLjItLjkyIDIuMTctMi4wOSAyLjI0bC0uMTUuMDFIMTZ2MmgxLjI1YS43NS43NSAwIDAgMSAuMSAxLjVIMTF2LTEuNWgzLjV2LTJIMTFWMTRoOC43NWMuMzggMCAuNy0uMjguNzQtLjY1di05LjFhLjc1Ljc1IDAgMCAwLS43NC0uNzVINi4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMVY4SDRWNC4yNWMwLTEuMi45Mi0yLjE3IDIuMS0yLjI0TDYuMjUgMmgxMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVEZXNrdG9wMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01IDQuMjVWOWg0Ljc1YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2NS41aDQuNXYyLjc1SDEzVjIyaDcuMzVhLjc1Ljc1IDAgMCAwLS4xLTEuNUgxOXYtMi43NWg0LjkxQTIuMjUgMi4yNSAwIDAgMCAyNiAxNS41VjQuMjVMMjYgNC4xQTIuMjUgMi4yNSAwIDAgMCAyMy43NSAySDcuMUEyLjI1IDIuMjUgMCAwIDAgNSA0LjI2Wk0xMiAxN3YtNC43NUMxMiAxMS4wMSAxMSAxMCA5Ljc1IDEwSDQuMUEyLjI1IDIuMjUgMCAwIDAgMiAxMi4yNlYyMy45QTIuMjUgMi4yNSAwIDAgMCA0LjI2IDI2SDkuOWEyLjI1IDIuMjUgMCAwIDAgMi4xLTIuMjVWMTdabS00LjI1IDQuNWguMWEuNzUuNzUgMCAwIDEgMCAxLjVINi4xNWEuNzUuNzUgMCAwIDEgMC0xLjVoMS42WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRGVza3RvcDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTkuNzUgMTBjMS4xOSAwIDIuMTYuOTMgMi4yNCAyLjF2MTEuNjVjMCAxLjItLjkyIDIuMTctMi4wOSAyLjI0bC0uMTUuMDFoLTUuNWMtMS4yIDAtMi4xNy0uOTMtMi4yNC0yLjFMMiAyMy43NXYtMTEuNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0bC4xNS0uMDFoNS41Wm0wIDEuNWgtNS41Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjExLjVjMCAuMzguMjguNy42NS43NGwuMS4wMWg1LjVjLjM4IDAgLjY5LS4yOC43NC0uNjV2LTExLjZjMC0uMzgtLjI4LS43LS42NC0uNzRsLS4xLS4wMVptLTIgMTBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtMS42YS43NS43NSAwIDAgMS0uMS0xLjVoMS42Wm0xNi0xOS41YzEuMiAwIDIuMTcuOTMgMi4yNSAyLjF2MTEuNGMwIDEuMi0uOTIgMi4xNy0yLjEgMi4yNGwtLjE1LjAxSDE5djIuNzVoMS4yNWEuNzUuNzUgMCAwIDEgLjEgMS41SDEzdi0xLjVoNC41di0yLjc1SDEzdi0xLjVoMTAuNzVjLjM4IDAgLjctLjI4Ljc1LS42NVY0LjI1YzAtLjM4LS4yOC0uNy0uNjUtLjc0bC0uMS0uMDFINy4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMVY5SDVWNC4yNWMwLTEuMi45My0yLjE3IDIuMS0yLjI0TDcuMjUgMmgxNi41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVEZXNrdG9wMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk01IDUuMjVDNSAzLjQ1IDYuNDYgMiA4LjI1IDJoMTguNUMyOC41NSAyIDMwIDMuNDYgMzAgNS4yNXYxMi41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVIMjJ2M2gyYTEgMSAwIDEgMSAwIDJoLTkuNXYtMkgyMHYtM2gtNS41di01Ljc1YTQuNzUgNC43NSAwIDAgMC00Ljc1LTQuNzVINVY1LjI2Wm0tMyAxMEMyIDEzLjQ1IDMuNDYgMTIgNS4yNSAxMmg0LjVjMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNXYxMS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTQuNUEzLjI1IDMuMjUgMCAwIDEgMiAyNi43NXYtMTEuNVpNNiAyNmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMSAwIDAtMkg3YTEgMSAwIDAgMC0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURlc2t0b3AzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVEZXNrdG9wMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOC4yNSAyQTMuMjUgMy4yNSAwIDAgMCA1IDUuMjV2NS4yNmwuMjUtLjAxSDdWNS4yNUM3IDQuNTYgNy41NiA0IDguMjUgNGgxOC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djEyLjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDE0LjV2MkgyMHYzaC01LjV2MkgyNGExIDEgMCAxIDAgMC0yaC0ydi0zaDQuNzVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY1LjI1QzMwIDMuNDUgMjguNTQgMiAyNi43NSAySDguMjVaTTIgMTUuMjVDMiAxMy40NSAzLjQ2IDEyIDUuMjUgMTJoNC41YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC00LjVBMy4yNSAzLjI1IDAgMCAxIDIgMjYuNzV2LTExLjVaTTUuMjUgMTRDNC41NiAxNCA0IDE0LjU2IDQgMTUuMjV2MTEuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg0LjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0xMS41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtNC41Wk03IDI1YTEgMSAwIDEgMCAwIDJoMWExIDEgMCAxIDAgMC0ySDdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURlc2t0b3A0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3A0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTkgOC4yNUM5IDUuOSAxMC45IDQgMTMuMjUgNGgyNi41QzQyLjEgNCA0NCA1LjkgNDQgOC4yNXYxNy41QzQ0IDI4LjEgNDIuMSAzMCAzOS43NSAzMEgzMnY1aDIuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDIyVjM1aDcuNXYtNUgyMnYtOC43NUMyMiAxNy44IDE5LjIgMTUgMTUuNzUgMTVIOVY4LjI1Wm0tNSAxM0M0IDE4LjkgNS45IDE3IDguMjUgMTdoNy41QzE4LjEgMTcgMjAgMTguOSAyMCAyMS4yNXYxOC41QzIwIDQyLjEgMTguMSA0NCAxNS43NSA0NGgtNy41QTQuMjUgNC4yNSAwIDAgMSA0IDM5Ljc1di0xOC41Wm01LjUgMTdjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMi41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMi41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRGVza3RvcDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3A0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xMy4yNSA0QTQuMjUgNC4yNSAwIDAgMCA5IDguMjVWMTVoMi41VjguMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMjYuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxNy41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgyMlYzMGg3LjV2NUgyMnYyLjVoMTIuNzVhMS4yNSAxLjI1IDAgMSAwIDAtMi41SDMydi01aDcuNzVDNDIuMSAzMCA0NCAyOC4xIDQ0IDI1Ljc1VjguMjVDNDQgNS45IDQyLjEgNCAzOS43NSA0aC0yNi41Wk05LjUgMzguMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMi41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMi41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTguMjUgMTdBNC4yNSA0LjI1IDAgMCAwIDQgMjEuMjV2MTguNUM0IDQyLjEgNS45IDQ0IDguMjUgNDRoNy41QzE4LjEgNDQgMjAgNDIuMSAyMCAzOS43NXYtMTguNUMyMCAxOC45IDE4LjEgMTcgMTUuNzUgMTdoLTcuNVpNNi41IDIxLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDcuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxOC41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNy41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTE4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURlc2t0b3BBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURlc2t0b3BBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptLS41IDcuNWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZWMTFhMiAyIDAgMCAxLTIgMmgtM3YyaDEuNWEuNS41IDAgMCAxIDAgMUg5di0xaDN2LTJIOVY5LjVBMi41IDIuNSAwIDAgMCA2LjUgN0g0VjRjMC0xLjEuOS0yIDItMmg0LjI2YTUuNSA1LjUgMCAwIDAgNC4yNCA5Wm0tMTEtM0MyLjY3IDggMiA4LjY3IDIgOS41djdjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdDOCA4LjY3IDcuMzMgOCA2LjUgOGgtM1ptLjUgNy41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEZXNrdG9wQWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRGVza3RvcEFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptMiA3LjV2LS42Yy4zNi0uMTguNy0uNCAxLS42NlYxMWEyIDIgMCAwIDEtMiAyaC0zdjJoMS41YS41LjUgMCAwIDEgMCAxSDl2LTFoM3YtMkg5di0xaDdhMSAxIDAgMCAwIDEtMVptLTYuNzQtOWMtLjI2LjMtLjQ4LjY0LS42NiAxSDZhMSAxIDAgMCAwLTEgMXYzSDRWNGMwLTEuMS45LTIgMi0yaDQuMjZaTTQgMTUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptLTItNkMyIDguNjcgMi42NyA4IDMuNSA4aDNDNy4zMyA4IDggOC42NyA4IDkuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDIgMTYuNXYtN1pNMy41IDlhLjUuNSAwIDAgMC0uNS41djdjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjUtLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZURpc21pc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURpc21pc3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAyQzQuNjcgMiA0IDIuNjcgNCAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoNC43NmE1LjQ3IDUuNDcgMCAwIDEtMS4yNC0zSDcuNWEuNS41IDAgMCAxIDAtMWgxLjUyQTUuNSA1LjUgMCAwIDEgMTQgOS4wMlYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03Wm05IDE3YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0xLjg1LTYuMzVjLjIuMi4yLjUgMCAuN2wtMS4xNCAxLjE1IDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdsLTEuMTUtMS4xNC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN2wxLjE0LTEuMTUtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRGlzbWlzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNzZhNS41IDUuNSAwIDAgMS0uNjYtMUg1LjVhLjUuNSAwIDAgMS0uNS0uNXYtMTNjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXY1LjdjLjMyLS4wOC42Ni0uMTUgMS0uMThWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNOSAxNC41YzAtLjE3IDAtLjM0LjAyLS41SDcuNWEuNS41IDAgMCAwIDAgMWgxLjUyYTUuNTcgNS41NyAwIDAgMS0uMDItLjVabTEwIDBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVEaXNtaXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVEaXNtaXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFaTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2Ni45MkE2LjUgNi41IDAgMCAwIDExLjAyIDE4SDguNzVhLjc1Ljc1IDAgMCAwLS4xIDEuNWgyLjY2Yy4zLjk1LjgzIDEuOCAxLjUgMi41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmg3LjVabTEuMzQgMTIuOTctLjA3LjA1LS4wNS4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNS4wNyAxLjc3IDEuNzctMS43NiAxLjc3LS4wNi4wN2EuNS41IDAgMCAwIDAgLjU3bC4wNi4wNi4wNy4wNmMuMTcuMTIuNC4xMi41NiAwbC4wNy0uMDYgMS43Ny0xLjc2IDEuNzcgMS43Ny4wNy4wNWMuMTcuMTIuNC4xMi41NyAwbC4wNy0uMDUuMDUtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNS0uMDctMS43Ny0xLjc3IDEuNzctMS43Ny4wNi0uMDdhLjUuNSAwIDAgMCAwLS41N2wtLjA2LS4wNy0uMDctLjA1YS41LjUgMCAwIDAtLjU3IDBsLS4wNy4wNS0xLjc3IDEuNzctMS43Ny0xLjc3LS4wNy0uMDVhLjUuNSAwIDAgMC0uNS0uMDVsLS4wNy4wNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRGlzbWlzczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZURpc21pc3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFaTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2Ni45MmMtLjUzLjEzLTEuMDMuMzItMS41LjU2VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNS40OGMuMjkuNTUuNjUgMS4wNiAxLjA4IDEuNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNy41Wm0xLjM0IDEyLjk3LS4wNy4wNS0uMDUuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDUuMDcgMS43NyAxLjc3LTEuNzYgMS43Ny0uMDYuMDdhLjUuNSAwIDAgMCAwIC41N2wuMDYuMDYuMDcuMDZjLjE3LjEyLjQuMTIuNTYgMGwuMDctLjA2IDEuNzctMS43NiAxLjc3IDEuNzcuMDcuMDVjLjE3LjEyLjQuMTIuNTcgMGwuMDctLjA1LjA1LS4wN2EuNS41IDAgMCAwIDAtLjU3bC0uMDUtLjA3LTEuNzctMS43NyAxLjc3LTEuNzcuMDYtLjA3YS41LjUgMCAwIDAgMC0uNTdsLS4wNi0uMDctLjA3LS4wNWEuNS41IDAgMCAwLS41NyAwbC0uMDcuMDUtMS43NyAxLjc3LTEuNzctMS43Ny0uMDctLjA1YS41LjUgMCAwIDAtLjUtLjA1bC0uMDcuMDVaTTguNzUgMTcuNUgxMWMwIC41Mi4wNiAxLjAyLjE3IDEuNUg4Ljc1YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRWRpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRWRpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTUuOCAxLjU1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRabS01LjUzIDQuMTIgMy42Mi0zLjYyQTEuNSAxLjUgMCAwIDAgMTMuNSAyaC03QzUuNjcgMiA1IDIuNjcgNSAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVoN2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWOS4wNmwtLjY3LjY3Yy0uNC40LS45Mi43LTEuNDguODRsLTEuNS4zN2ExLjg5IDEuODkgMCAwIDEtMi4zLTIuMjlsLjM4LTEuNWEzLjIgMy4yIDAgMCAxIC44NC0xLjQ4Wk05IDE0aDJhLjUuNSAwIDAgMSAwIDFIOWEuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRWRpdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUVkaXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xNS44IDEuNTUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpNMTIuOTUgM2wuODQtLjg0QTIgMiAwIDAgMCAxMyAySDdhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY5LjA2bC0uNjcuNjdjLS4xLjEtLjIxLjItLjMzLjI5VjE2YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1Ljk0Wk05IDE0YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFIOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRWRpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRWRpdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTMuMiA3LjU3IDUuOS01LjlhMi4yOSAyLjI5IDAgMSAxIDMuMjMgMy4yM2wtNS45IDUuOWMtLjM0LjM1LS43OC42LTEuMjUuNzFsLTEuODMuNDZjLS44LjItMS41Mi0uNTItMS4zMi0xLjMybC40Ni0xLjgzYy4xMi0uNDcuMzYtLjkuNy0xLjI1Wm0tLjcxLS43IDQuNS00LjVBMi4yNCAyLjI0IDAgMCAwIDE1Ljc1IDJoLTcuNUM3LjAxIDIgNiAzIDYgNC4yNXYxNS41QzYgMjAuOTkgNyAyMiA4LjI1IDIyaDcuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtOS4xbC0uODYuODZjLS40OC40Ny0xLjA3LjgtMS43Mi45N2wtMS44My40NmMtMS41Mi4zOC0yLjktMS0yLjUzLTIuNTNsLjQ2LTEuODNjLjE2LS42NS41LTEuMjQuOTctMS43MlpNMTMuMjUgMThhLjc1Ljc1IDAgMCAxIDAgMS41aC0yLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRWRpdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUVkaXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xMy4yIDcuNTcgNS45LTUuOWEyLjI5IDIuMjkgMCAxIDEgMy4yMyAzLjIzbC01LjkgNS45Yy0uMzQuMzUtLjc4LjYtMS4yNS43MWwtMS44My40NmMtLjguMi0xLjUyLS41Mi0xLjMyLTEuMzJsLjQ2LTEuODNjLjEyLS40Ny4zNi0uOS43LTEuMjVaTTE1Ljc1IDJjLjQ2IDAgLjg4LjE0IDEuMjQuMzdMMTUuODUgMy41bC0uMS0uMDFoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1di03LjczYy4yMy0uMTQuNDQtLjMxLjY0LS41bC44Ni0uODd2OS4xYzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC03LjVDNy4wMSAyMiA2IDIxIDYgMTkuNzVWNC4yNUM2IDMuMDEgNyAyIDguMjUgMmg3LjVabS0yLjUgMTUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVFcmFzZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUVyYXNlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAuOTQgMS4zNWExLjUgMS41IDAgMCAxIDIuMTIgMGwxLjU5IDEuNTlhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTQuNTkgNC41OWExLjUgMS41IDAgMCAxLTIuMTIgMEw2LjM1IDguMDZhMS41IDEuNSAwIDAgMSAwLTIuMTJsNC41OS00LjU5Wk0xMC4yOSA4IDggNS43bC0uOTQuOTVhLjUuNSAwIDAgMCAwIC43bDEuNTkgMS41OWMuMi4yLjUuMi43IDBMMTAuMyA4Wm0tNC41Ni43N2EyLjUgMi41IDAgMCAxIDAtMy41NGw0LjEzLTQuMTJjLS4yLS4wNy0uNC0uMTEtLjYxLS4xMWgtNC41QzMuNzggMSAzIDEuNzggMyAyLjc1djEwLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMy4wNGwtLjE1LjE0YTIuNSAyLjUgMCAwIDEtMy41MyAwTDUuNzMgOC43N1pNNiAxMmgyYS41LjUgMCAxIDEgMCAxSDZhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUVyYXNlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUVyYXNlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEwIDEwLjg4djIuMzdjMCAuNDEtLjM0Ljc1LS43NS43NWgtNC41YS43NS43NSAwIDAgMS0uNzUtLjc1VjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0LjEzbC45MS0uOTFBMS43NSAxLjc1IDAgMCAwIDkuMjUgMWgtNC41QzMuNzggMSAzIDEuNzggMyAyLjc1djEwLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMy4xM2wtLjIzLjIzYy0uMjMuMjMtLjUuNC0uNzcuNTNaTTUuNSAxMi41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMSAxIDAgMUg2YS41LjUgMCAwIDEtLjUtLjVabTcuNTYtMTEuMTVhMS41IDEuNSAwIDAgMC0yLjEyIDBMNi4zNSA1Ljk0YTEuNSAxLjUgMCAwIDAgMCAyLjEybDEuNTkgMS41OWExLjUgMS41IDAgMCAwIDIuMTIgMGw0LjU5LTQuNTlhMS41IDEuNSAwIDAgMCAwLTIuMTJsLTEuNTktMS41OVpNOCA1LjcxIDEwLjMgOGwtLjk1Ljk0YS41LjUgMCAwIDEtLjcgMEw3LjA2IDcuMzVhLjUuNSAwIDAgMSAwLS43TDggNS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVFcmFzZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUVyYXNlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQuNTggMS40NGExLjUgMS41IDAgMCAxIDIuMTIgMGwxLjg2IDEuODZhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTUuMTQgNS4xNGExLjUgMS41IDAgMCAxLTIuMTIgMEw5LjQ0IDguN2ExLjUgMS41IDAgMCAxIDAtMi4xMmw1LjE0LTUuMTRabS00LjQzIDUuODRhLjUuNSAwIDAgMCAwIC43MUwxMiA5Ljg1Yy4yLjIuNTEuMi43IDBsMS4zLTEuMjlMMTEuNDQgNmwtMS4zIDEuM1pNMTIuNiAySDUuNUM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di01LjExYTIuNSAyLjUgMCAwIDEtMy40LS4xMkw4LjcyIDkuNGEyLjUgMi41IDAgMCAxIDAtMy41NEwxMi42IDJabS0yLjEgMTIuNWEuNS41IDAgMCAxLS41LjVIOGEuNS41IDAgMCAxIDAtMWgyYy4yOCAwIC41LjIyLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRXJhc2VyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRXJhc2VyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNTggMS40NGExLjUgMS41IDAgMCAxIDIuMTIgMGwxLjg2IDEuODZhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTUuMTQgNS4xNGExLjUgMS41IDAgMCAxLTIuMTIgMEw5LjQ0IDguN2ExLjUgMS41IDAgMCAxIDAtMi4xMmw1LjE0LTUuMTRabS00LjQzIDUuODRhLjUuNSAwIDAgMCAwIC43MUwxMiA5Ljg1Yy4yLjIuNTEuMi43IDBsMS4zLTEuMjlMMTEuNDQgNmwtMS4zIDEuM1ptMi4zOC01LjJBMiAyIDAgMCAwIDEyIDJINmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0ydi00LjYxYy0uMy4yNi0uNjQuNDMtMSAuNTNWMTZhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDUuNmwuOTMtLjkzWk03LjUgMTQuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFIOGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVGb290ZXJBcnJvd0Rvd24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUZvb3RlckFycm93RG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNyAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDdabTAgMTMuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptNS4zNS0zLjY1LTIgMkEuNS41IDAgMCAxIDEwIDE0YS41LjUgMCAwIDEtLjM1LS4xNWwtMi0yYS41LjUgMCAwIDEgLjctLjdsMS4xNSAxLjE0VjkuNWEuNS41IDAgMCAxIDEgMHYyLjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lRm9vdGVyQXJyb3dEb3duMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRm9vdGVyQXJyb3dEb3duMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyAxNS41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xSDdabTUuMzUgOC44NS0yIDJBLjUuNSAwIDAgMSAxMCAxNGEuNS41IDAgMCAxLS4zNS0uMTVsLTItMmEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNFY5LjVhLjUuNSAwIDAgMSAxIDB2Mi44bDEuMTUtMS4xNWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUZvb3RlckFycm93RG93bjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lRm9vdGVyQXJyb3dEb3duMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOCA0LjI1QzE4IDMuMDEgMTcgMiAxNS43NSAyaC03LjVDNy4wMSAyIDYgMyA2IDQuMjV2MTUuNUM2IDIwLjk5IDcgMjIgOC4yNSAyMmg3LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNC4yNVptLTkuNSAxNGMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNmEuNzUuNzUgMCAwIDEtLjEgMS41aC01LjZhLjc1Ljc1IDAgMCAxLS42NS0uNzVaTTEyIDE2YS43NS43NSAwIDAgMS0uNTMtLjIzbC0yLjQ1LTIuNWEuNzUuNzUgMCAxIDEgMS4wNy0xLjA0bDEuMTYgMS4xOFY5Ljc1YS43NS43NSAwIDAgMSAxLjUgMHYzLjcxbDEuMjctMS4yNWEuNzUuNzUgMCAxIDEgMS4wNiAxLjA4bC0yLjU1IDIuNWEuNzUuNzUgMCAwIDEtLjU0LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVGb290ZXJBcnJvd0Rvd24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVGb290ZXJBcnJvd0Rvd24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCA0LjI1QzE4IDMuMDEgMTcgMiAxNS43NSAyaC03LjVDNy4wMSAyIDYgMyA2IDQuMjV2MTUuNUM2IDIwLjk5IDcgMjIgOC4yNSAyMmg3LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWNC4yNVpNOC4yNSAzLjVoNy41Yy40MSAwIC43NS4zNC43NS43NXYxNS41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTcuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY0LjI1YzAtLjQxLjM0LS43NS43NS0uNzVabTcuMjUgMTQuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTUuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41Yy40MSAwIC43NS0uMzQuNzUtLjc1Wk0xMiAxNmMuMiAwIC4zOC0uMDguNTMtLjIxbDIuNTUtMi41YS43NS43NSAwIDEgMC0xLjA2LTEuMDhsLTEuMjcgMS4yNVY5Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYzLjY2bC0xLjE2LTEuMThhLjc1Ljc1IDAgMSAwLTEuMDcgMS4wNGwyLjQ1IDIuNWMuMTMuMTUuMzIuMjMuNTIuMjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUhlYWRlckFycm93VXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUhlYWRlckFycm93VXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg3Wm0wIDIuNWMwLS4yOC4yMi0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptNS4zNSAzLjY1YS41LjUgMCAwIDEtLjcuN0wxMC41IDcuNzF2Mi43OWEuNS41IDAgMCAxLTEgMFY3LjdMOC4zNSA4Ljg2YS41LjUgMCAxIDEtLjctLjdsMi0yQS41LjUgMCAwIDEgMTAgNmEuNS41IDAgMCAxIC4zNS4xNGwyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUhlYWRlckFycm93VXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVIZWFkZXJBcnJvd1VwMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyA0LjVjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVaTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFIN1ptNS4zNSA1LjE1LTItMkEuNS41IDAgMCAwIDEwIDZhLjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMSAwIC43LjdMOS41IDcuNzF2Mi43OWEuNS41IDAgMCAwIDEgMFY3LjdsMS4xNSAxLjE1YS41LjUgMCAwIDAgLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUhlYWRlckFycm93VXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUhlYWRlckFycm93VXAyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1Ljc1IDJDMTYuOTkgMiAxOCAzIDE4IDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcuMDEgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wm0tMSAyLjVoLTUuNWEuNzUuNzUgMCAwIDAtLjEgMS41aDUuNmEuNzUuNzUgMCAwIDAgLjEtMS41aC0uMVptLTIgNi4wNCAxLjI3IDEuMjVhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wOGwtMi41NS0yLjVhLjc1Ljc1IDAgMCAwLTEuMDYuMDJsLTIuNDUgMi41YS43NS43NSAwIDEgMCAxLjA3IDEuMDRsMS4xNi0xLjE4djMuNjZhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zLjcxWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVIZWFkZXJBcnJvd1VwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lSGVhZGVyQXJyb3dVcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1Ljc1IDJDMTYuOTkgMiAxOCAzIDE4IDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcuMDEgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wm0wIDEuNWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NWg3LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NVptLTEgMS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMSAwLTEuNWg1LjVabS0yIDUuNTQgMS4yNyAxLjI1YS43NS43NSAwIDEgMCAxLjA2LTEuMDhsLTIuNTUtMi41YS43NS43NSAwIDAgMC0xLjA2LjAybC0yLjQ1IDIuNWEuNzUuNzUgMCAxIDAgMS4wNyAxLjA0bDEuMTYtMS4xOHYzLjY2YS43NS43NSAwIDAgMCAxLjUgMHYtMy43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lS2V5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVLZXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYuNSAyQzUuNjcgMiA1IDIuNjcgNSAzLjV2MTNjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYtMWMwLS40MS4xNi0uNzguNDQtMS4wNmwuOTQtLjk0SDlhLjUuNSAwIDAgMSAwLTFoMmMuMSAwIC4yLjAzLjI5LjFsLjczLS43NGEzLjcyIDMuNzIgMCAwIDEgLjMxLTEuOThBNC4xIDQuMSAwIDAgMSAxNSA5LjEzVjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTQgMTdhLjQ4LjQ4IDAgMCAxLS4zNS0uMTUuNDguNDggMCAwIDEtLjE1LS4zNVYxN2MwLS4xNC4wNS0uMjUuMTUtLjM1bDIuOTQtMi45NGEzLjc0IDMuNzQgMCAwIDEtLjA5LS43N2MwLS40LjA4LS43OS4yNC0xLjE0YTMuMSAzLjEgMCAwIDEgMS42MS0xLjU3IDIuOTQgMi45NCAwIDAgMSAzLjI3LjY0QTMgMyAwIDAgMSAxNSAxNS44NFYxNi41MmEuNjUuNjUgMCAwIDEtLjA4LjI0LjUuNSAwIDAgMS0uMTUuMTcuNDYuNDYgMCAwIDEtLjI3LjA3SDE0YzAgLjI0IDAgLjQzLS4wMi41NmEuNDYuNDYgMCAwIDEtLjExLjMuNDcuNDcgMCAwIDEtLjMuMTJMMTMgMTh2LjI3YzAgLjA4IDAgLjE3LS4wMi4yNWEuODYuODYgMCAwIDEtLjA2LjI0LjM3LjM3IDAgMCAxLS4xNS4xNy41Ny41NyAwIDAgMS0uMjcuMDdoLTJabTctNi43NWMwLS4yLS4wNy0uMzktLjIyLS41M2EuNzIuNzIgMCAwIDAtLjUzLS4yMmMtLjIgMC0uMzkuMDctLjUzLjIyYS43Mi43MiAwIDAgMC0uMjIuNTNjMCAuMi4wNy4zOS4yMi41My4xNC4xNS4zMi4yMi41My4yMi4yIDAgLjM5LS4wNy41My0uMjJhLjcyLjcyIDAgMCAwIC4yMi0uNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUtleTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUtleTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMnYtMUg3YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY1LjU0YTMuOTcgMy45NyAwIDAgMSAxLS40VjRhMiAyIDAgMCAwLTItMkg3Wm0zLjM4IDEzIC45MS0uOUEuNS41IDAgMCAwIDExIDE0SDlhLjUuNSAwIDAgMCAwIDFoMS4zOFptLjEyIDRhLjQ4LjQ4IDAgMCAxLS4zNS0uMTUuNDguNDggMCAwIDEtLjE1LS4zNVYxN2MwLS4xNC4wNS0uMjUuMTUtLjM1bDIuOTQtMi45NGEzLjc0IDMuNzQgMCAwIDEtLjA5LS43N2MwLS40LjA4LS43OS4yNC0xLjE0YTMuMSAzLjEgMCAwIDEgMS42MS0xLjU3IDIuOTQgMi45NCAwIDAgMSAzLjI3LjY0QTMgMyAwIDAgMSAxNSAxNS44NFYxNi41MmEuNjUuNjUgMCAwIDEtLjA4LjI0LjUuNSAwIDAgMS0uMTUuMTcuNDYuNDYgMCAwIDEtLjI3LjA3SDE0YzAgLjI0IDAgLjQzLS4wMi41NmEuNDYuNDYgMCAwIDEtLjExLjMuNDcuNDcgMCAwIDEtLjMuMTJMMTMgMTh2LjI3YzAgLjA4IDAgLjE3LS4wMi4yNWEuODYuODYgMCAwIDEtLjA2LjI0LjM3LjM3IDAgMCAxLS4xNS4xNy41Ny41NyAwIDAgMS0uMjcuMDdoLTJabTctNi43NWMwLS4yLS4wNy0uMzktLjIyLS41M2EuNzIuNzIgMCAwIDAtLjUzLS4yMmMtLjIgMC0uMzkuMDctLjUzLjIyYS43Mi43MiAwIDAgMC0uMjIuNTNjMCAuMi4wNy4zOS4yMi41My4xNC4xNS4zMi4yMi41My4yMi4yIDAgLjM5LS4wNy41My0uMjJhLjcyLjcyIDAgMCAwIC4yMi0uNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUtleTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lS2V5MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS43NSAyQzE2Ljk5IDIgMTggMyAxOCA0LjI1djdhNC41IDQuNSAwIDAgMC0yLjk3IDQuOEwxMy4xIDE4aC0yLjM0YS43NS43NSAwIDAgMCAwIDEuNWguODRsLS4wOC4wN2MtLjMzLjMzLS41MS43OC0uNTEgMS4yNFYyMkg4LjI1QzcuMDEgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wm0zLjc1IDE3YTMuNSAzLjUgMCAxIDAtMy4zOC0yLjU5Ljc1Ljc1IDAgMCAwLS4xNS4xMmwtMy43NSAzLjc1YS43NS43NSAwIDAgMC0uMjIuNTN2MS40NGMwIC40MS4zNC43NS43NS43NWgxLjc1YS41LjUgMCAwIDAgLjUtLjVWMjJoMWEuNS41IDAgMCAwIC41LS41di0xaDFhLjUuNSAwIDAgMCAuNS0uNXYtMWgxLjVabTEuNS00YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lS2V5MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lS2V5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuNzUgMkMxNi45OSAyIDE4IDMgMTggNC4yNXY3Yy0uNTYuMi0xLjA3LjUtMS41Ljl2LTcuOWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NWgyLjc4Yy0uMDIuMS0uMDMuMi0uMDMuMzFWMjJIOC4yNUM3LjAxIDIyIDYgMjEgNiAxOS43NVY0LjI1QzYgMy4wMSA3IDIgOC4yNSAyaDcuNVptLTIuNSAxNS41Yy4xIDAgLjIuMDIuMjguMDVMMTIuMDggMTloLTEuMzNhLjc1Ljc1IDAgMCAxIDAtMS41aDIuNVpNMTkuNSAxOWEzLjUgMy41IDAgMSAwLTMuMzgtMi41OS43NS43NSAwIDAgMC0uMTUuMTJsLTMuNzUgMy43NWEuNzUuNzUgMCAwIDAtLjIyLjUzdjEuNDRjMCAuNDEuMzQuNzUuNzUuNzVoMS43NWEuNS41IDAgMCAwIC41LS41VjIyaDFhLjUuNSAwIDAgMCAuNS0uNXYtMWgxYS41LjUgMCAwIDAgLjUtLjV2LTFoMS41Wm0xLjUtNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxhcHRvcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTGFwdG9wMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zIDRjMC0uODMuNjctMS41IDEuNS0xLjVoOGMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNHYtNEEyLjUgMi41IDAgMCAwIDYgNEgzLjVhMiAyIDAgMCAwLS41LjA2VjRabTExLjUgOC41aC02di0xaDZhLjUuNSAwIDAgMSAwIDFaTTMgNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2NmMwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNkM3LjUgNS42NyA2LjgzIDUgNiA1SDNabTEuNSA3LjVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxhcHRvcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxhcHRvcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMgNGMwLS44My42Ny0xLjUgMS41LTEuNWg4Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00di0xaDRBLjUuNSAwIDAgMCAxMyA5VjRhLjUuNSAwIDAgMC0uNS0uNWgtOEEuNS41IDAgMCAwIDQgNGgtLjVhMiAyIDAgMCAwLS41LjA2VjRabTExLjUgOC41aC02di0xaDZhLjUuNSAwIDAgMSAwIDFabS0xMCAwYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0tMy02QzEuNSA1LjY3IDIuMTcgNSAzIDVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNUgzYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNlpNMyA2YS41LjUgMCAwIDAtLjUuNXY2YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtNkEuNS41IDAgMCAwIDYgNkgzWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMYXB0b3AyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxhcHRvcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2gxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMFY4YTIgMiAwIDAgMC0yLTJIM1Y0LjVaTTEwIDE1aDcuNWEuNS41IDAgMCAwIDAtMUgxMHYxWk0yIDguNUMyIDcuNjcgMi42NyA3IDMuNSA3aDRDOC4zMyA3IDkgNy42NyA5IDguNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDIgMTYuNXYtOFpNNSAxNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxhcHRvcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxhcHRvcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVIMTB2LTFoNS41YS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNWgtMTFhLjUuNSAwIDAgMC0uNS41VjZIM1Y0LjVaTTEwIDE1aDcuNWEuNS41IDAgMCAwIDAtMUgxMHYxWm0tNSAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFINVpNMiA4LjVDMiA3LjY3IDIuNjcgNyAzLjUgN2g0QzguMzMgNyA5IDcuNjcgOSA4LjV2OGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTRBMS41IDEuNSAwIDAgMSAyIDE2LjV2LThaTTMuNSA4YS41LjUgMCAwIDAtLjUuNXY4YzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtOGEuNS41IDAgMCAwLS41LS41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMYXB0b3AyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxhcHRvcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOC4yNSA4QzkuMjIgOCAxMCA4LjggMTAgOS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDMi43OCAyMSAyIDIwLjIyIDIgMTkuMjV2LTkuNUMyIDguOCAyLjc4IDggMy43NSA4aDQuNVptLTIgOS41aC0uNWEuNzUuNzUgMCAxIDAgMCAxLjVoLjVhLjc1Ljc1IDAgMCAwIDAtMS41Wm0xNS0xYS43NS43NSAwIDAgMSAuMSAxLjVIMTF2LTEuNWgxMC4yNVptLTMtMTEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY3LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDExVjlhMiAyIDAgMCAwLTEuODUtMkg0di0uMjVDNCA1Ljc4IDQuNzggNSA1Ljc1IDVoMTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTGFwdG9wMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTGFwdG9wMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC4yNSA4QzkuMjIgOCAxMCA4LjggMTAgOS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDMi43OCAyMSAyIDIwLjIyIDIgMTkuMjV2LTkuNUMyIDguOCAyLjc4IDggMy43NSA4aDQuNVptMCAxLjVoLTQuNWEuMjUuMjUgMCAwIDAtLjI1LjI1djkuNWMwIC4xNC4xMS4yNS4yNS4yNWg0LjVjLjE0IDAgLjI1LS4xLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wm0tMiA3LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWguNlptMTUtLjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxMXYtMS41aDEwLjI1Wm0tMy0xMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djcuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVIMTF2LTEuNWg3LjI1Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di03LjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVINS43NWEuMjUuMjUgMCAwIDAtLjI1LjI1VjdINHYtLjI1QzQgNS43OCA0Ljc4IDUgNS43NSA1aDEyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxhcHRvcDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTGFwdG9wMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk02IDhhMyAzIDAgMCAxIDMtM2gxNmEzIDMgMCAwIDEgMyAzdjEwYTMgMyAwIDAgMS0zIDNoLTh2LThhNSA1IDAgMCAwLTUtNUg3YTQgNCAwIDAgMC0xIC4xM1Y4Wm0yMyAxN0gxN3YtMmgxMmExIDEgMCAxIDEgMCAyWk02IDEwYTMgMyAwIDAgMC0zIDN2MTJhMyAzIDAgMCAwIDMgM2g2YTMgMyAwIDAgMCAzLTNWMTNhMyAzIDAgMCAwLTMtM0g2Wm0zIDE1YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTGFwdG9wMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTGFwdG9wMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNiA4YTMgMyAwIDAgMSAzLTNoMTZhMyAzIDAgMCAxIDMgM3YxMGEzIDMgMCAwIDEtMyAzaC04di0yaDhhMSAxIDAgMCAwIDEtMVY4YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxSDdhNCA0IDAgMCAwLTEgLjEzVjhabTIzIDE3SDE3di0yaDEyYTEgMSAwIDEgMSAwIDJaTTkgMjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0zIDEzYTMgMyAwIDAgMSAzLTNoNmEzIDMgMCAwIDEgMyAzdjEyYTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjEzWm0zLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVYxM2ExIDEgMCAwIDAtMS0xSDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxpbmtTZXR1cDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTGlua1NldHVwMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDMuNUM1IDIuNjcgNS42NyAyIDYuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2NS41MkE1LjUgNS41IDAgMCAwIDEwLjI2IDE4SDYuNUExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTcuMDcgNy45NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMaW5rU2V0dXAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVMaW5rU2V0dXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDMuMjZhNS41IDUuNSAwIDAgMS0uNjYtMUg3YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXY1LjAyYTUuNTcgNS41NyAwIDAgMSAxIDBWNGEyIDIgMCAwIDAtMi0ySDdabTUuMDcgOS40NGEyIDIgMCAwIDEtMS40NCAyLjQ4bC0uNDYuMTJhNC43MyA0LjczIDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE1LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ni0uMTJhNC43MyA0LjczIDAgMCAwLS4wMS0xLjAxbC0uMzUtLjA5QTIgMiAwIDAgMSAxNyAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE2LjU1Wm0yLjQzIDQuMDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMaW5rU2V0dXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxpbmtTZXR1cDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNSAxMmMuMyAwIC41OC4wMi44Ni4wN2wuMTcuNzJhMiAyIDAgMCAwIDIuNDIgMS40N2wuMS0uMDIuNi0uMThjLjM2LjQ2LjY1IDEgLjg1IDEuNTdsLS40NS40M2EyIDIgMCAwIDAtLjE3IDIuN2wuMTUuMTUuNDcuNDZjLS4yLjU3LS41IDEuMS0uODUgMS41N2wtLjYtLjE4YTIgMiAwIDAgMC0yLjQ5IDEuMzVsLS4wMy4xLS4xNy43MmE1LjE4IDUuMTggMCAwIDEtMS43MiAwbC0uMTctLjcyYTIgMiAwIDAgMC0yLjQyLTEuNDdsLS4xLjAyLS42LjE4Yy0uMzYtLjQ3LS42NS0xLS44NS0xLjU3bC40NS0uNDNhMiAyIDAgMCAwIC4xNy0yLjdsLS4xNS0uMTUtLjQ3LS40NmMuMi0uNTguNS0xLjEuODUtMS41N2wuNi4xOGEyIDIgMCAwIDAgMi40OS0xLjM1bC4wMy0uMS4xNy0uNzJjLjI4LS4wNS41Ny0uMDcuODYtLjA3Wk0xMy43NSAyQzE0Ljk5IDIgMTYgMyAxNiA0LjI1djYuOTJBNi41IDYuNSAwIDAgMCAxMS4wMiAxOEg4Ljc1YS43NS43NSAwIDAgMC0uMSAxLjVoMi42NmMuMy45NS44MyAxLjggMS41IDIuNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNy41Wm0zLjc1IDE0Yy0uOCAwLTEuNDUuNjctMS40NSAxLjVTMTYuNyAxOSAxNy41IDE5Yy44IDAgMS40NS0uNjcgMS40NS0xLjVTMTguMyAxNiAxNy41IDE2WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMaW5rU2V0dXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVMaW5rU2V0dXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy41IDEyYy4zIDAgLjU4LjAyLjg2LjA3bC4xNy43MmEyIDIgMCAwIDAgMi40MiAxLjQ3bC4xLS4wMi42LS4xOGMuMzYuNDYuNjUgMSAuODUgMS41N2wtLjQ1LjQzYTIgMiAwIDAgMC0uMTcgMi43bC4xNS4xNS40Ny40NmMtLjIuNTctLjUgMS4xLS44NSAxLjU3bC0uNi0uMThhMiAyIDAgMCAwLTIuNDkgMS4zNWwtLjAzLjEtLjE3LjcyYTUuMTggNS4xOCAwIDAgMS0xLjcyIDBsLS4xNy0uNzJhMiAyIDAgMCAwLTIuNDItMS40N2wtLjEuMDItLjYuMThjLS4zNi0uNDctLjY1LTEtLjg1LTEuNTdsLjQ1LS40M2EyIDIgMCAwIDAgLjE3LTIuN2wtLjE1LS4xNS0uNDctLjQ2Yy4yLS41OC41LTEuMS44NS0xLjU3bC42LjE4YTIgMiAwIDAgMCAyLjQ5LTEuMzVsLjAzLS4xLjE3LS43MmMuMjgtLjA1LjU3LS4wNy44Ni0uMDdaTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2Ni45MmMtLjUzLjEzLTEuMDMuMzItMS41LjU2VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNS40OGMuMjkuNTUuNjUgMS4wNiAxLjA4IDEuNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNy41Wm0tNSAxNS41SDExYzAgLjUyLjA2IDEuMDIuMTcgMS41SDguNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xNy41IDE2Yy0uOCAwLTEuNDUuNjctMS40NSAxLjVTMTYuNyAxOSAxNy41IDE5Yy44IDAgMS40NS0uNjcgMS40NS0xLjVTMTguMyAxNiAxNy41IDE2WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVMb2NrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDMuNUM1IDIuNjcgNS42NyAyIDYuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2NS41NEEzIDMgMCAwIDAgMTEuNSAxMnYuMDZBMiAyIDAgMCAwIDEwIDE0SDguNWEuNS41IDAgMCAwIDAgMUgxMHYzSDYuNUExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTcuNSA4LjV2MUgxMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMWgtLjV2LTFhMiAyIDAgMSAwLTQgMFptMSAxdi0xYTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTG9jazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxvY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NS4wNGEzLjAyIDMuMDIgMCAwIDAtMSAwVjRhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWgzdjFIN2EyIDIgMCAwIDEtMi0yVjRabTMuNSAxMEgxMHYxSDguNWEuNS41IDAgMCAxIDAtMVptNC0ydjFIMTJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZUxvY2syNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZUxvY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2Ni41OUEzLjUgMy41IDAgMCAwIDE0IDE0di4wNWEyLjUgMi41IDAgMCAwLTIgMi40NXYyLjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYyLjc1YzAgLjE3LjAyLjM0LjA1LjVoLTUuOEM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDcuNVpNMTUgMTR2MWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djVhMS41IDEuNSAwIDAgMCAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgyMHYtMWEyLjUgMi41IDAgMCAwLTUgMFptMS41IDBhMSAxIDAgMSAxIDIgMHYxaC0ydi0xWm0yIDVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVMb2NrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTG9jazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2Ni41OWMtLjYyLjMtMS4xNS43Ny0xLjUgMS4zNlY0LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxNS41YzAgLjQxLjM0Ljc1Ljc1Ljc1SDEydjFjMCAuMTcuMDIuMzQuMDUuNWgtNS44QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNy41Wk0xNSAxNGEyLjUgMi41IDAgMSAxIDUgMHYxaC41Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNWMwLS44My42Ny0xLjUgMS41LTEuNWguNXYtMVptMS41IDB2MWgydi0xYTEgMSAwIDEgMC0yIDBabTIgNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabS02LjUtLjc1YzAgLjQxLS4zNC43NS0uNzUuNzVoLTIuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi41Yy40MSAwIC43NS4zMy43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTXVsdGlwbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZU11bHRpcGxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk04LjI1IDJDNy4wMSAyIDYgMyA2IDQuMjV2MTNjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoNS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di0xM0MxNiAzLjAxIDE1IDIgMTMuNzUgMmgtNS41Wk05IDE2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0xMC43NSAyMmMtLjk4IDAtMS44MS0uNjMtMi4xMi0xLjVoNS42MkEyLjc1IDIuNzUgMCAwIDAgMTcgMTcuNzVWNC42M2MuODcuMyAxLjUgMS4xNCAxLjUgMi4xMnYxMWMwIDIuMzUtMS45IDQuMjUtNC4yNSA0LjI1aC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZU11bHRpcGxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05Ljc1IDE1LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVpNOC4yNSAyQzcuMDEgMiA2IDMgNiA0LjI1djEzYzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDUuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMTNDMTYgMy4wMSAxNSAyIDEzLjc1IDJoLTUuNVpNNy41IDQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djEzYzAgLjQxLS4zNC43NS0uNzUuNzVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMTNaTTEwLjc1IDIyYy0uOTggMC0xLjgxLS42My0yLjEyLTEuNWg1LjYyQTIuNzUgMi43NSAwIDAgMCAxNyAxNy43NVY0LjYzYy44Ny4zIDEuNSAxLjE0IDEuNSAyLjEydjExYzAgMi4zNS0xLjkgNC4yNS00LjI1IDQuMjVoLTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTXVsdGlwbGVTZXR0aW5nczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lTXVsdGlwbGVTZXR0aW5nczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMy4yOCAyLjk4YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MWwtLjE5LjY0Yy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjkxbC0uMi0uNjlhMiAyIDAgMCAxIDEuNDQtMi41bC41OS0uMTRhNS43MiA1LjcyIDAgMCAwIDAtMS44bC0uNTUtLjEzYTIgMiAwIDAgMS0xLjQ1LTIuNTFsLjE5LS42M2MtLjQ0LS4zOS0uOTQtLjctMS40OS0uOTNsLS40OS41MmEyIDIgMCAwIDEtMi45IDBsLS41LS41MmMtLjU0LjIyLTEuMDQuNTMtMS40OC45bC4yLjdaTTYuNSA4Yy0uOCAwLTEuNDUtLjY3LTEuNDUtMS41UzUuNyA1IDYuNSA1Yy44IDAgMS40NS42NyAxLjQ1IDEuNVM3LjMgOCA2LjUgOFpNMTMgNi41YTYuNSA2LjUgMCAwIDEtNyA2LjQ4djQuMjdjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoNS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di0xM0MxNiAzLjAxIDE1IDIgMTMuNzUgMmgtMi41NkE2LjQ4IDYuNDggMCAwIDEgMTMgNi41Wm0tNCA5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0tLjM3IDQuMjVjLjMuODcgMS4xNCAxLjUgMi4xMiAxLjVoMy41YzIuMzUgMCA0LjI1LTEuOSA0LjI1LTQuMjV2LTExYzAtLjk4LS42My0xLjgxLTEuNS0yLjEydjEzLjEyYTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVIOC42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lTXVsdGlwbGVTZXR0aW5nczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZU11bHRpcGxlU2V0dGluZ3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjI4IDIuOThhMiAyIDAgMCAxLTEuNDQgMi41bC0uNTkuMTRhNS43MyA1LjczIDAgMCAwIDAgMS44bC41NS4xM2EyIDIgMCAwIDEgMS40NSAyLjUxbC0uMTkuNjRjLjQ0LjM4Ljk0LjcgMS40OS45MmwuNDktLjUyYTIgMiAwIDAgMSAyLjkgMGwuNS41MmE1LjI4IDUuMjggMCAwIDAgMS40OC0uOTFsLS4yLS42OWEyIDIgMCAwIDEgMS40NC0yLjVsLjU5LS4xNGE1LjcyIDUuNzIgMCAwIDAgMC0xLjhsLS41NS0uMTNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMTktLjYzYy0uNDQtLjM5LS45NC0uNy0xLjQ5LS45M2wtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjlsLjIuN1pNNi41IDhjLS44IDAtMS40NS0uNjctMS40NS0xLjVTNS43IDUgNi41IDVjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzcuMyA4IDYuNSA4Wm0xIDQuOTJhNi41NSA2LjU1IDAgMCAxLTEuNS4wNnY0LjI3YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDUuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMTNDMTYgMy4wMSAxNSAyIDEzLjc1IDJoLTIuNTZjLjQzLjQ0LjguOTUgMS4wOCAxLjVoMS40OGMuNDEgMCAuNzUuMzQuNzUuNzV2MTNjMCAuNDEtLjM0Ljc1LS43NS43NWgtNS41YS43NS43NSAwIDAgMS0uNzUtLjc1di00LjMzWm0yLjI1IDIuNThhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVptLTEuMTIgNWMuMy44NyAxLjE0IDEuNSAyLjEyIDEuNWgzLjVjMi4zNSAwIDQuMjUtMS45IDQuMjUtNC4yNXYtMTFjMC0uOTgtLjYzLTEuODEtMS41LTIuMTJ2MTMuMTJhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NUg4LjYzWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVQYWdlSGVhZGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVQYWdlSGVhZGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2MUg1VjRabTAgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY2SDVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVBhZ2VIZWFkZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVQYWdlSGVhZGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDdaTTYgNWg4djExYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVBhZ2VIZWFkZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2VIZWFkZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE4IDZ2MTMuNzVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNUM3LjAxIDIyIDYgMjEgNiAxOS43NVY2aDEyWm0tMi4yNS00QzE2Ljk5IDIgMTggMyAxOCA0LjI1VjVINnYtLjc1QzYgMy4wMSA3IDIgOC4yNSAyaDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lUGFnZUhlYWRlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2VIZWFkZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS43NSAyQzE2Ljk5IDIgMTggMyAxOCA0LjI1djE1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNUM3LjAxIDIyIDYgMjEgNiAxOS43NVY0LjI1QzYgMy4wMSA3IDIgOC4yNSAyaDcuNVptLjc1IDNoLTl2MTQuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVBhZ2luYXRpb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2luYXRpb24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY0Wm0zIDExYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0yIDBhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTIuNS0uNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lUGFnaW5hdGlvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2luYXRpb24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDE1YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0yLjUtLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabTEuNS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1pNNiA0YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVBhZ2luYXRpb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2luYXRpb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1Ljc1IDJDMTYuOTkgMiAxOCAzIDE4IDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcuMDEgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wk05LjUgMTcuNzZhLjc1Ljc1IDAgMSAwIDAgMS41Ljc1Ljc1IDAgMCAwIDAtMS41Wm0yLjUgMGEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVabTIuNSAwYS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lUGFnaW5hdGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBhZ2luYXRpb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS43NSAyQzE2Ljk5IDIgMTggMyAxOCA0LjI1djE1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNUM3LjAxIDIyIDYgMjEgNiAxOS43NVY0LjI1QzYgMy4wMSA3IDIgOC4yNSAyaDcuNVptMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaTTkuNSAxNy43NWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVabTIuNSAwYS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVptMi41IDBhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVQZXJzb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVBlcnNvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuNzUgMkMxNC45OSAyIDE2IDMgMTYgNC4yNXY3LjA5YTMuNSAzLjUgMCAwIDAtLjk1IDUuNjZoLS4yOEEyLjc3IDIuNzcgMCAwIDAgMTIgMTkuNzd2LjFjMCAuNzQuMjEgMS40OC42NyAyLjEzSDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmg3LjVabS0yLjUgMTZoLTIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNVpNMjAgMTQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTMgMjEuNDQgMTMgMTkuODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVQZXJzb24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVQZXJzb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy43NSAyQzE0Ljk5IDIgMTYgMyAxNiA0LjI1djcuMDljLS42Mi4zLTEuMTUuNzctMS41IDEuMzZWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NWg1LjhjLjA5LjUzLjMgMS4wNC42MiAxLjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDcuNVptLTIuNSAxNS41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjVabTguNzUtM2EyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFptMiA1LjM4YzAgMS41NS0xLjI5IDMuMTItNC41IDMuMTJTMTMgMjEuNDQgMTMgMTkuODd2LS4xYzAtLjk4LjgtMS43NyAxLjc3LTEuNzdoNS40NmMuOTggMCAxLjc3LjggMS43NyAxLjc3di4xWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTY3JlZW5UaW1lMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTY3JlZW5UaW1lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djEzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNzZhNS40NyA1LjQ3IDAgMCAxLTEuMjQtM0g3LjVhLjUuNSAwIDAgMSAwLTFoMS41MkE1LjUgNS41IDAgMCAxIDE0IDkuMDJWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNjcmVlblRpbWUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTY3JlZW5UaW1lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljc2YTUuNSA1LjUgMCAwIDEtLjY2LTFINS41YS41LjUgMCAwIDEtLjUtLjV2LTEzYzAtLjI4LjIyLS41LjUtLjVoN2MuMjggMCAuNS4yMi41LjV2NS43Yy4zMi0uMDguNjYtLjE1IDEtLjE4VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdaTTkgMTQuNWMwIC4xNyAwIC4zNC4wMi41SDcuNWEuNS41IDAgMCAxIDAtMWgxLjUybC0uMDIuNVptMTAgMGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNMTQuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUgxNmEuNS41IDAgMCAwIDAtMWgtMXYtMS41YS41LjUgMCAwIDAtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNjcmVlblRpbWUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNjcmVlblRpbWUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVpNMTMuNzUgMkMxNC45OSAyIDE2IDMgMTYgNC4yNXY2LjkyQTYuNSA2LjUgMCAwIDAgMTEuMDIgMThIOC43NWEuNzUuNzUgMCAwIDAtLjEgMS41aDIuNjZjLjMuOTUuODMgMS44IDEuNSAyLjVINi4yNUM1LjAxIDIyIDQgMjEgNCAxOS43NVY0LjI1QzQgMy4wMSA1IDIgNi4yNSAyaDcuNVptMi43NSAxMmEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDE3di0zLjVhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU2NyZWVuVGltZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNjcmVlblRpbWUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFaTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2Ni45MmMtLjUzLjEzLTEuMDMuMzItMS41LjU2VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNS40OGMuMjkuNTUuNjUgMS4wNiAxLjA4IDEuNUg2LjI1QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNy41Wm0tNSAxNS41SDExYzAgLjUyLjA2IDEuMDIuMTcgMS41SDguNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wk0xNi41IDE0YS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFIMTd2LTMuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTaGFrZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU2hha2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE1LjM3IDIuOTNhLjUuNSAwIDEgMSAuNS0uODYgNC4yNSA0LjI1IDAgMCAxIDEuNjMgNS42Ni41LjUgMCAwIDEtLjg4LS40NyAzLjI1IDMuMjUgMCAwIDAtMS4yNS00LjMzWm0tMSAxLjc0YS41LjUgMCAxIDEgLjUtLjg3YzEuMDIuNTkgMS40IDEuODYuOTEgMi45YS41LjUgMCAwIDEtLjktLjQyYy4yNy0uNTguMDYtMS4yOS0uNS0xLjYxWm0tOS43NCAxMi40YS41LjUgMCAxIDEtLjUuODYgNC4yNSA0LjI1IDAgMCAxLTEuNjMtNS42Ni41LjUgMCAxIDEgLjg4LjQ2IDMuMjUgMy4yNSAwIDAgMCAxLjI1IDQuMzNabTEtMS43NGEuNS41IDAgMSAxLS41Ljg3IDIuMjUgMi4yNSAwIDAgMS0uOTItMi45LjUuNSAwIDAgMSAuOS40MmMtLjI2LjU4LS4wNSAxLjI4LjUyIDEuNjFabTQuNTQtMTIuMjZhMS45NSAxLjk1IDAgMCAxIDIuNCAxLjRsMi4zNyA4Ljk3YTIuMDQgMi4wNCAwIDAgMS0xLjQyIDIuNDhsLTMuNjkgMWExLjk1IDEuOTUgMCAwIDEtMi40LTEuNEw1LjA4IDYuNTdhMi4wNCAyLjA0IDAgMCAxIDEuNDItMi40OWwzLjY4LTFabS0uNDkgMTEuM2MuMDcuMjcuMzQuNDMuNi4zNmwxLjc5LS40OGEuNTEuNTEgMCAwIDAgLjM2LS42Mi40OS40OSAwIDAgMC0uNi0uMzZsLTEuNzguNDlhLjUxLjUxIDAgMCAwLS4zNy42MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU2hha2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTaGFrZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE1LjM3IDIuOTNhLjUuNSAwIDEgMSAuNS0uODYgNC4yNSA0LjI1IDAgMCAxIDEuNjMgNS42Ni41LjUgMCAwIDEtLjg4LS40NyAzLjI1IDMuMjUgMCAwIDAtMS4yNS00LjMzWm0tMSAxLjc0YS41LjUgMCAxIDEgLjUtLjg3YzEuMDIuNTkgMS40IDEuODYuOTEgMi45YS41LjUgMCAwIDEtLjktLjQyYy4yNy0uNTguMDYtMS4yOS0uNS0xLjYxWm0tOS43NCAxMi40YS41LjUgMCAxIDEtLjUuODYgNC4yNSA0LjI1IDAgMCAxLTEuNjMtNS42Ni41LjUgMCAxIDEgLjg4LjQ2IDMuMjUgMy4yNSAwIDAgMCAxLjI1IDQuMzNabTEtMS43NGEuNS41IDAgMSAxLS41Ljg3IDIuMjUgMi4yNSAwIDAgMS0uOTItMi45LjUuNSAwIDAgMSAuOS40MmMtLjI2LjU4LS4wNSAxLjI4LjUyIDEuNjFabTUuOTctMTAuNmEuOTYuOTYgMCAwIDAtMS4xNy0uN2wtMy43IDEuMDFjLS41Mi4xNC0uODQuNy0uNyAxLjI1bDIuMzcgOC45OGMuMTQuNTMuNjcuODMgMS4xOC43bDMuNjgtMS4wMWMuNTMtLjE1Ljg1LS43LjctMS4yNUwxMS42IDQuNzNabS0xLjQzLTEuNjZhMS45NSAxLjk1IDAgMCAxIDIuNCAxLjRsMi4zNiA4Ljk3YTIuMDQgMi4wNCAwIDAgMS0xLjQxIDIuNDhsLTMuNjkgMWExLjk1IDEuOTUgMCAwIDEtMi40LTEuNEw1LjA3IDYuNTdhMi4wNCAyLjA0IDAgMCAxIDEuNDEtMi40OWwzLjY5LTFabS0uNDkgMTEuM2EuNTEuNTEgMCAwIDEgLjM2LS42MWwxLjc5LS40OGMuMjYtLjA4LjUzLjA4LjYuMzUuMDcuMjctLjEuNTQtLjM2LjYybC0xLjc4LjQ4YS40OS40OSAwIDAgMS0uNi0uMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNoYWtlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTaGFrZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIuMzQgNC4wN2MxLjItLjMyIDIuNDMuMzkgMi43NiAxLjZsMi43NSAxMC4yOGMuMzIgMS4yLS4zOSAyLjQzLTEuNTkgMi43NmwtNC42IDEuMjNjLTEuMi4zMi0yLjQzLS40LTIuNzUtMS42TDYuMTYgOC4wNkEyLjI1IDIuMjUgMCAwIDEgNy43NSA1LjNsNC41OS0xLjIzWm0yLjM1IDExLjJhLjc1Ljc1IDAgMCAwLS45Mi0uNTJsLTEuOTMuNTItLjEuMDNhLjc1Ljc1IDAgMCAwIC40OSAxLjQybDEuOTMtLjUyLjEtLjA0YS43NS43NSAwIDAgMCAuNDMtLjg4Wk0xOC42OCAyLjRjLjItLjM2LjY1LS41IDEuMDEtLjNhNC45IDQuOSAwIDAgMSAxLjcyIDYuNDkuNzUuNzUgMCAwIDEtMS4zMy0uNjlsLjA1LS4wOWEzLjQgMy40IDAgMCAwLTEuMTYtNC4zOS43NS43NSAwIDAgMS0uMy0xLjAyWk0xNy41IDQuNDRhLjc1Ljc1IDAgMCAxIDEuMDUtLjE0IDIuNiAyLjYgMCAwIDEgLjkgMS4zMmMuMTEuNDQuMDkuODgtLjAyIDEuMjlsLS4wNS4xOC0uMDUuMTNhLjc1Ljc1IDAgMCAxLTEuNDItLjQ5bC4wNS0uMTQuMDItLjA2Yy4wNS0uMTguMDYtLjM3LjAyLS41MmEuOTMuOTMgMCAwIDAtLjE3LS4zMSAxLjM2IDEuMzYgMCAwIDAtLjE2LS4xOGwtLjAzLS4wM2EuNzUuNzUgMCAwIDEtLjE0LTEuMDVaTTIuNTQgMTUuNDFhLjc1Ljc1IDAgMCAxIDEuMzQuNjZsLS4xLjItLjEuMjhhMy41NCAzLjU0IDAgMCAwIC42IDMuMzZjLjI2LjMyLjUxLjU0LjY4LjY1bC4wNy4wNGEuNzUuNzUgMCAxIDEtLjc1IDEuMyA1LjA0IDUuMDQgMCAwIDEtMS43NC02LjQ5Wm0yLjEzIDEuMzVhLjc1Ljc1IDAgMCAxIDEuNDIuNDdsLS4wNS4xNS0uMDEuMDVjLS4wNS4xOC0uMDYuMzctLjAyLjUzYTEuMzggMS4zOCAwIDAgMCAuMzIuNWwuMDQuMDJhLjc1Ljc1IDAgMCAxLS45MiAxLjE5IDIuNiAyLjYgMCAwIDEtLjg5LTEuMzNjLS4xMS0uNDMtLjA5LS44Ny4wMS0xLjI4bC4wNi0uMTcuMDQtLjEzWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTaGFrZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNoYWtlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNjggMi40Yy4yLS4zNy42NS0uNSAxLjAxLS4zYTQuOSA0LjkgMCAwIDEgMS43MiA2LjQ5Ljc1Ljc1IDAgMCAxLTEuMzMtLjdsLjA1LS4wOWEzLjQgMy40IDAgMCAwLTEuMTYtNC4zOS43NS43NSAwIDAgMS0uMy0xLjAyWm0tNCAxMi44OGEuNzUuNzUgMCAwIDAtLjkxLS41M2wtMS45My41Mi0uMS4wM2EuNzUuNzUgMCAwIDAgLjQ5IDEuNDJsMS45My0uNTIuMS0uMDRhLjc1Ljc1IDAgMCAwIC40My0uODhabS40Mi05LjYyYTIuMjUgMi4yNSAwIDAgMC0yLjc2LTEuNTlMNy43NCA1LjNhMi4yNSAyLjI1IDAgMCAwLTEuNTggMi43Nkw4LjkgMTguMzRhMi4yNSAyLjI1IDAgMCAwIDIuNzYgMS42bDQuNi0xLjIzYTIuMjUgMi4yNSAwIDAgMCAxLjU4LTIuNzZMMTUuMSA1LjY2Wm0tMi4zNy0uMTRjLjQtLjEuOC4xMy45Mi41M2wyLjc1IDEwLjI5Yy4xMS40LS4xMy44MS0uNTMuOTJsLTQuNiAxLjIzYS43NS43NSAwIDAgMS0uOTEtLjUzTDcuNiA3LjY3Yy0uMS0uNC4xNC0uODEuNTQtLjkybDQuNTktMS4yM1ptNS44Mi0xLjIyYS43NS43NSAwIDEgMC0uOSAxLjJsLjAyLjAyLjE2LjE4Yy4wOC4xLjE0LjIxLjE3LjMxYTEuMDcgMS4wNyAwIDAgMS0uMDQuNThsLS4wNS4xNGEuNzUuNzUgMCAwIDAgMS40Mi40OWwuMDUtLjEzLjA1LS4xOGMuMS0uNDEuMTMtLjg1LjAxLTEuMjlhMi42IDIuNiAwIDAgMC0uOS0xLjMyWk0yLjU0IDE1LjQxYS43NS43NSAwIDAgMSAxLjM0LjY2bC0uMS4yLS4xLjI4YTMuNTQgMy41NCAwIDAgMCAuNiAzLjM2Yy4yNi4zMi41MS41NC42OC42NWwuMDcuMDRhLjc1Ljc1IDAgMSAxLS43NSAxLjMgNS4wNCA1LjA0IDAgMCAxLTEuNzQtNi40OVptMy4xMS45NGEuNzUuNzUgMCAwIDAtLjk4LjQgMS44IDEuOCAwIDAgMC0uMDQuMTRsLS4wNi4xN2EyLjQyIDIuNDIgMCAwIDAgLjQgMi4xMWMuMTguMjMuMzUuNC40OC41YS43NS43NSAwIDAgMCAuOTItMS4ybC0uMDQtLjAyYy0uMDQtLjA0LS4xLS4xLS4xNS0uMThhLjk1Ljk1IDAgMCAxLS4xNy0uMzEgMS4wNyAxLjA3IDAgMCAxIC4wMy0uNThsLjA1LS4xNWEuNzUuNzUgMCAwIDAtLjQ0LS44OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BhbkluMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuSW4xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjIuMDljLjIuMDcuNC4xOS41Ni4zNWwyIDJhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTIgMmExLjUgMS41IDAgMCAxLS41Ni4zNVYxM2MwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMnYtMS4wOWExLjUgMS41IDAgMCAxLS41Ni0uMzVsLTItMmExLjUgMS41IDAgMCAxIDAtMi4xMmwyLTJjLjE2LS4xNi4zNi0uMjguNTYtLjM1VjNhMiAyIDAgMCAwLTItMkg2Wk0zLjE1IDYuODVhLjUuNSAwIDEgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0w0LjI5IDlIMS41YS41LjUgMCAwIDEgMC0xaDIuOEwzLjE0IDYuODVabTkuNy0uN2MuMi4yLjIuNSAwIC43TDExLjcxIDhoMi43OWEuNS41IDAgMCAxIDAgMWgtMi44bDEuMTUgMS4xNWEuNS41IDAgMSAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTcGFuSW4xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuSW4xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDNjMC0xLjEuOS0yIDItMmg0YTIgMiAwIDAgMSAyIDJ2Mi4wOWMtLjIuMDctLjQuMTktLjU2LjM1bC0uNDQuNDRWM2ExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYyLjg4bC0uNDQtLjQ0QTEuNSAxLjUgMCAwIDAgNCA1LjA5VjNabTcgOC4xMlYxM2ExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMS44OGwtLjQ0LjQ0YTEuNSAxLjUgMCAwIDEtLjU2LjM1VjEzYzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0ydi0xLjA5YTEuNSAxLjUgMCAwIDEtLjU2LS4zNWwtLjQ0LS40NFpNMy4xNSA2Ljg1YS41LjUgMCAxIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMNC4yOSA5SDEuNWEuNS41IDAgMCAxIDAtMWgyLjhMMy4xNCA2Ljg1Wm05LjctLjdjLjIuMi4yLjUgMCAuN0wxMS43MSA4aDIuNzlhLjUuNSAwIDAgMSAwIDFoLTIuOGwxLjE1IDEuMTVhLjUuNSAwIDEgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BhbkluMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuSW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcgMmEyIDIgMCAwIDAtMiAydjMuMDlhMS41IDEuNSAwIDAgMSAxLjU2LjM1bDIgMmExLjUgMS41IDAgMCAxIDAgMi4xMmwtMiAyYTEuNSAxLjUgMCAwIDEtMS41Ni4zNVYxNmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMnYtMi4wOWExLjUgMS41IDAgMCAxLTEuNTYtLjM1bC0yLTJhMS41IDEuNSAwIDAgMSAwLTIuMTJsMi0yQTEuNSAxLjUgMCAwIDEgMTUgNy4wOVY0YTIgMiAwIDAgMC0yLTJIN1ptNy44NSA2LjE1Yy4yLjIuMi41IDAgLjdMMTMuNzEgMTBoMi43OWEuNS41IDAgMCAxIDAgMWgtMi44bDEuMTUgMS4xNWEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYy4yLS4yLjUtLjIuNyAwWm0tOS43LjdhLjUuNSAwIDEgMSAuNy0uN2wyIDJjLjIuMi4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdMNi4yOSAxMUgzLjVhLjUuNSAwIDAgMSAwLTFoMi44TDUuMTQgOC44NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BhbkluMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3BhbkluMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSA0YzAtMS4xLjktMiAyLTJoNmEyIDIgMCAwIDEgMiAydjMuMDlhMS41IDEuNSAwIDAgMC0xIDBWNGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYzLjA5YTEuNSAxLjUgMCAwIDAtMSAwVjRabTAgOS45MVYxNmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMnYtMi4wOWExLjUgMS41IDAgMCAxLTEgMFYxNmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMXYtMi4wOWExLjUgMS41IDAgMCAxLTEgMFptMi44NS0zLjA2LTIgMmEuNS41IDAgMCAxLS43LS43TDYuMjkgMTFIMy41YS41LjUgMCAwIDEgMC0xaDIuOEw1LjE0IDguODVhLjUuNSAwIDEgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNVptNi4zLTIuNy0yIDJhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxMWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwYW5JbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3BhbkluMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djMuNjdjLS42NS0uMzEtMS40NS0uMi0xLjk5LjM0bC0yLjE4IDIuMjJjLS41Mi4zMS0uODMuOS0uODMgMS41MnYuMTZjLjA1LjQ2LjI2Ljg4LjYgMS4xOGwuMS4xIDIuMzEgMi4zLjE0LjEyYTEuOCAxLjggMCAwIDAgMS44NS4yMnYzLjY3YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFoLTcuNWMtMS4yIDAtMi4xNy0uOTMtMi4yNC0yLjFMNiAxOS43NXYtMy42OGMuNTkuMjggMS4yNy4yMiAxLjgtLjE2bC4xMy0uMTIgMi4zNi0yLjM1LjEyLS4xYy4zNy0uMzMuNTktLjgyLjU5LTEuMzR2LS4xNmExLjc4IDEuNzggMCAwIDAtLjYtMS4xOGwtLjEtLjEtMi4zMS0yLjNBMS43NSAxLjc1IDAgMCAwIDYgNy45MlY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMOC4yNSAyaDcuNVptMi4wMyA2Ljk3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtMS4yMiAxLjIyaDMuNzhjLjM3IDAgLjY2LjMzLjY2Ljc1IDAgLjM4LS4yNS43LS41Ny43NEgxNi41NmwxLjIyIDEuMjNjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTIuMzctMi4zN0EuNzcuNzcgMCAwIDEgMTQgMTJjMC0uMjkuMTQtLjU0LjM1LS42NmwyLjM3LTIuMzdjLjMtLjMuNzctLjMgMS4wNiAwWk03LjIgOC45bC4wOC4wNyAyLjM3IDIuMzdjLjIuMTIuMzUuMzcuMzUuNjYgMCAuMjUtLjEuNDctLjI4LjYxbC0uMDcuMDUtMi4zNyAyLjM3LS4wOC4wN2MtLjI3LjItLjYyLjItLjg5LjAxbC0uMS0uMDgtLjA2LS4wOGEuNzUuNzUgMCAwIDEtLjAxLS44OWwuMDgtLjA5IDEuMjItMS4yMkgzLjU2QzMuMjYgMTIuNjggMyAxMi4zNyAzIDEycy4yNS0uNy41Ny0uNzRsLjA5LS4wMWgzLjc4bC0xLjIyLTEuMjItLjA3LS4wOUEuNzUuNzUgMCAwIDEgNy4yIDguOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BhbkluMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3BhbkluMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAxNi4wN2MuNDguMjMgMS4wMy4yMyAxLjUuMDF2My42N2MwIC4zOC4yOC43LjY1Ljc0bC4xLjAxaDcuNWMuMzggMCAuNy0uMjguNzQtLjY1bC4wMS0uMXYtMy42OGMuNS4yMyAxLjA0LjIzIDEuNS4wMXYzLjY3YzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFoLTcuNWMtMS4yIDAtMi4xNy0uOTMtMi4yNC0yLjFMNiAxOS43NXYtMy42OFptMTEuNzgtNy4xYy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtMS4yMiAxLjIyaDMuNzhjLjM3IDAgLjY2LjMzLjY2Ljc1IDAgLjM4LS4yNS43LS41Ny43NEgxNi41NmwxLjIyIDEuMjNjLjI3LjI3LjMuNjguMDcuOThsLS4wNy4wOGEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTIuMzctMi4zN0EuNzcuNzcgMCAwIDEgMTQgMTJjMC0uMjkuMTQtLjU0LjM1LS42NmwyLjM3LTIuMzdjLjMtLjMuNzctLjMgMS4wNiAwWk03LjIgOC45bC4wOC4wNyAyLjM3IDIuMzdjLjIuMTIuMzUuMzcuMzUuNjYgMCAuMjUtLjEuNDctLjI4LjYxbC0uMDcuMDUtMi4zNyAyLjM3LS4wOC4wN2MtLjI3LjItLjYyLjItLjg5LjAxbC0uMS0uMDgtLjA2LS4wOGEuNzUuNzUgMCAwIDEtLjAxLS44OWwuMDgtLjA5IDEuMjItMS4yMkgzLjU2QzMuMjYgMTIuNjggMyAxMi4zNyAzIDEycy4yNS0uNy41Ny0uNzRsLjA5LS4wMWgzLjc4bC0xLjIyLTEuMjItLjA3LS4wOUEuNzUuNzUgMCAwIDEgNy4yIDguOVpNMTUuNzUgMmMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXYzLjY3YTEuNzYgMS43NiAwIDAgMC0xLjUgMFY0LjI1YzAtLjM4LS4yOC0uNy0uNjUtLjc0bC0uMS0uMDFoLTcuNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYzLjY3YTEuNzYgMS43NiAwIDAgMC0xLjUgMFY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMOC4yNSAyaDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BhbkluMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuSW4yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTguNzUgMkEyLjc1IDIuNzUgMCAwIDAgNiA0Ljc1djUuMTNjLjg3LS41OSAyLjA3LS41IDIuODQuMjhsMyAzYy44OC44OC44OCAyLjMgMCAzLjE4bC0zIDNjLS43Ny43Ny0xLjk3Ljg3LTIuODQuMjh2My42M0EyLjc1IDIuNzUgMCAwIDAgOC43NSAyNmgxMC41QTIuNzUgMi43NSAwIDAgMCAyMiAyMy4yNXYtMy42M2MtLjg3LjU5LTIuMDcuNS0yLjg0LS4yOGwtMy0zYTIuMjUgMi4yNSAwIDAgMSAwLTMuMThsMy0zQTIuMjUgMi4yNSAwIDAgMSAyMiA5Ljg4VjQuNzVBMi43NSAyLjc1IDAgMCAwIDE5LjI1IDJIOC43NVpNNi43MiAxMi4yOCA4LjQ0IDE0SDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNjlsLTEuNzIgMS43MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDMtM2EuNzUuNzUgMCAwIDAgMC0xLjA2bC0zLTNhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNlptMTQuNTYgMEwxOS41NiAxNGg0LjY5YS43NS43NSAwIDAgMSAwIDEuNWgtNC42OWwxLjcyIDEuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMy0zYS43NS43NSAwIDAgMSAwLTEuMDZsMy0zYS43NS43NSAwIDEgMSAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwYW5JbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5JbjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTguNzUgMkEyLjc1IDIuNzUgMCAwIDAgNiA0Ljc1djUuMTNjLjQ1LS4zLjk4LS40MiAxLjUtLjM3VjQuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTAuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXY0Ljc2Yy41Mi0uMDUgMS4wNS4wNyAxLjUuMzdWNC43NUEyLjc1IDIuNzUgMCAwIDAgMTkuMjUgMkg4Ljc1Wk0yNSAxNC43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC42OWwxLjcyLTEuNzJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMyAzYy0uMy4zLS4zLjc3IDAgMS4wNmwzIDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMS43Mi0xLjcyaDQuNjljLjQxIDAgLjc1LS4zNC43NS0uNzVabS0zIDQuODdjLS40NS4zLS45OC40Mi0xLjUuMzd2My4yNmMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVIOC43NWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di0zLjI2YTIuMjUgMi4yNSAwIDAgMS0xLjUtLjM3djMuNjNBMi43NSAyLjc1IDAgMCAwIDguNzUgMjZoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMjIgMjMuMjV2LTMuNjNaTTcuNSAxMS4wNGEuNzUuNzUgMCAwIDAtLjc4IDEuMjRMOC40NCAxNEgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWg0LjY5bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwzLTNjLjMtLjMuMy0uNzcgMC0xLjA2bC0zLTNhLjc1Ljc1IDAgMCAwLS4yOC0uMThaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwYW5PdXQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5PdXQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgMWEyIDIgMCAwIDAtMiAydjIuMDlBMS41IDEuNSAwIDAgMSA0LjkxIDdoLjU5YTEuNSAxLjUgMCAxIDEgMCAzaC0uNTlBMS41IDEuNSAwIDAgMSA0IDExLjkxVjEzYzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0ydi0xLjA5YTEuNSAxLjUgMCAwIDEtLjkxLTEuOTFoLS41OWExLjUgMS41IDAgMSAxIDAtM2guNTlBMS41IDEuNSAwIDAgMSAxMiA1LjA5VjNhMiAyIDAgMCAwLTItMkg2Wm00LjUgN2gyLjhsLTEuMTUtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmEuNS41IDAgMCAxIC4xNS4zNS41LjUgMCAwIDEtLjE0LjM1bC0yIDJhLjUuNSAwIDAgMS0uNzEtLjdMMTMuMjkgOUgxMC41YS41LjUgMCAwIDEtLjUtLjUuNS41IDAgMCAxIC41LS41Wm0tNSAxYS41LjUgMCAwIDAgMC0xSDIuN2wxLjE1LTEuMTVhLjUuNSAwIDEgMC0uNy0uN2wtMiAyQS41LjUgMCAwIDAgMSA4LjVhLjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMi43MSA5SDUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3Bhbk91dDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5PdXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDNjMC0xLjEuOS0yIDItMmg0YTIgMiAwIDAgMSAyIDJ2Mi4wOWExLjUgMS41IDAgMCAwLTEgMS40MVYzYTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjMuNWExLjUgMS41IDAgMCAwLTEtMS40MVYzWm03IDcuNVYxM2ExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXYtMi41YTEuNSAxLjUgMCAwIDEtMSAxLjQxVjEzYzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0ydi0xLjA5YTEuNSAxLjUgMCAwIDEtMS0xLjQxWk0xLjE1IDguMTVsMi0yYS41LjUgMCAxIDEgLjcuN0wyLjcxIDhINS41YS41LjUgMCAwIDEgMCAxSDIuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJBLjUuNSAwIDAgMSAxIDguNWEuNS41IDAgMCAxIC4xNC0uMzVabTExLjcgMi43IDItMkEuNS41IDAgMCAwIDE1IDguNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMMTMuMjkgOEgxMC41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3Bhbk91dDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3Bhbk91dDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNyAyYTIgMiAwIDAgMC0yIDJ2My4wOUExLjUgMS41IDAgMCAxIDYuOTEgOWguNTlhMS41IDEuNSAwIDEgMSAwIDNoLS41OUExLjUgMS41IDAgMCAxIDUgMTMuOTFWMTZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTIuMDlBMS41IDEuNSAwIDAgMSAxMy4wOSAxMmgtLjU5YTEuNSAxLjUgMCAwIDEgMC0zaC41OUExLjUgMS41IDAgMCAxIDE1IDcuMDlWNGEyIDIgMCAwIDAtMi0ySDdabTcuODUgNi4xNWEuNS41IDAgMCAwLS43LjdMMTUuMjkgMTBIMTIuNWEuNS41IDAgMCAwIDAgMWgyLjhsLTEuMTUgMS4xNWEuNS41IDAgMCAwIC43LjdsMi0yYS41LjUgMCAwIDAgLjE1LS4zNS41LjUgMCAwIDAtLjE1LS4zNWwtMi0yWk00LjcxIDEwbDEuMTQtMS4xNWguMDFhLjUuNSAwIDAgMC0uNzEtLjdsLTIgMmEuNS41IDAgMCAwLS4xNS4zNS41LjUgMCAwIDAgLjE1LjM1bDIgMmEuNS41IDAgMCAwIC43LS43TDQuNzEgMTFINy41YS41LjUgMCAwIDAgLjUtLjUuNS41IDAgMCAwLS41LS41SDQuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3Bhbk91dDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5PdXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2My4wOWExLjUgMS41IDAgMCAwLTEgMFY0YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjMuMDlhMS41IDEuNSAwIDAgMC0xIDBWNFptMCA5LjkxYy4zMi4xMi42OC4xMiAxIDBWMTZhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTIuMDljLjMyLjEyLjY4LjEyIDEgMFYxNmEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMnYtMi4wOVptLTEuODUtMy43NiAyLTJhLjUuNSAwIDEgMSAuNy43TDQuNzEgMTBINy41YS41LjUgMCAwIDEgMCAxSDQuN2wxLjE1IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0yLTJBLjUuNSAwIDAgMSAzIDEwLjVhLjUuNSAwIDAgMSAuMTQtLjM1Wm0xMS43IDIuNyAyLTJhLjUuNSAwIDAgMCAuMTUtLjM1LjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDE1LjI5IDEwSDEyLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTcGFuT3V0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuT3V0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNS43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djMuNTJhMS43NSAxLjc1IDAgMCAwLTEuNDkuNUExLjczIDEuNzMgMCAwIDAgMTYuMSAxMGwuMDUuMTYuMDQuMDloLTEuNTJjLS44NSAwLTEuNS42NS0xLjY0IDEuNDZsLS4wMS4xNEwxMyAxMmMwIC44LjUxIDEuNTEgMS4zMyAxLjdsLjE2LjA0aDEuNjhsLS4wMi4wNGMtLjIuNDctLjIgMS4wMi4wNSAxLjUxbC4xLjE3LjA5LjE0LjEyLjE0Yy40LjQuOTUuNTcgMS40OS40OHYzLjUzYzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFoLTcuNWMtMS4yIDAtMi4xNy0uOTMtMi4yNC0yLjFMNiAxOS43NXYtMy41M2MuNTQuMDkgMS4wOS0uMDggMS40OS0uNDhsLjEyLS4xNC4xLS4xNGMuMzMtLjU0LjM3LTEuMTYuMTQtMS42OGwtLjAyLS4wM2gxLjUxbC4xNy0uMDFjLjkxLS4xNCAxLjQ5LS45IDEuNDktMS43NHYtLjE1YTEuNyAxLjcgMCAwIDAtMS42Ni0xLjZINy44MmwuMDQtLjFBMS43NCAxLjc0IDAgMCAwIDYgNy43OFY0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMOC4yNSAyaDcuNVpNNi43OCA4Ljk3Yy4yNy4yNi4zLjY4LjA3Ljk3bC0uMDcuMDktMS4yMiAxLjIyaDMuNzhjLjM3IDAgLjY2LjMzLjY2Ljc1IDAgLjM4LS4yNS43LS41Ny43NEg1LjU2bDEuMjIgMS4yM2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4YS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDctMi4zNy0yLjM3QS43Ny43NyAwIDAgMSAzIDEyYzAtLjI5LjE0LS41NC4zNS0uNjZsMi4zNy0yLjM3Yy4zLS4zLjc3LS4zIDEuMDYgMFptMTAuNDQgMGEuNzUuNzUgMCAwIDEgLjk4LS4wOGwuMDguMDggMi4zNyAyLjM2Yy4yLjEzLjM1LjM4LjM1LjY3IDAgLjI1LS4xLjQ3LS4yOC42bC0uMDcuMDYtMi4zNyAyLjM3LS4wOC4wN2MtLjI3LjItLjYyLjItLjg5IDBsLS4xLS4wNy0uMDYtLjA5YS43NS43NSAwIDAgMS0uMDEtLjg4bC4wOC0uMSAxLjIyLTEuMjFoLTMuNzhsLS4xLS4wMWMtLjMxLS4wNS0uNTYtLjM3LS41Ni0uNzQgMC0uMzguMjUtLjcuNTctLjc1SDE4LjQ0bC0xLjIyLTEuMjItLjA3LS4wOWEuNzUuNzUgMCAwIDEgLjA3LS45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3Bhbk91dDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwYW5PdXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xNi41IDE1LjcyLjAxLjAyYy40LjQuOTUuNTcgMS40OS40OHYzLjUzYzAgMS4yLS45MyAyLjE3LTIuMSAyLjI0bC0uMTUuMDFoLTcuNWMtMS4yIDAtMi4xNy0uOTMtMi4yNC0yLjFMNiAxOS43NXYtMy41M2MuNDkuMDguOTgtLjA1IDEuMzYtLjM3bC4xNC0uMTN2NC4wM2MwIC4zOC4yOC43LjY1Ljc0bC4xLjAxaDcuNWMuMzggMCAuNy0uMjguNzQtLjY1bC4wMS0uMXYtNC4wM1pNNi43OCA4Ljk3Yy4yNy4yNi4zLjY4LjA3Ljk3bC0uMDcuMDktMS4yMiAxLjIyaDMuNzhjLjM3IDAgLjY2LjMzLjY2Ljc1IDAgLjM4LS4yNS43LS41Ny43NEg1LjU2bDEuMjIgMS4yM2MuMjcuMjcuMy42OC4wNy45OGwtLjA3LjA4YS43NS43NSAwIDAgMS0uOTguMDdsLS4wOC0uMDctMi4zNy0yLjM3QS43Ny43NyAwIDAgMSAzIDEyYzAtLjI5LjE0LS41NC4zNS0uNjZsMi4zNy0yLjM3Yy4zLS4zLjc3LS4zIDEuMDYgMFptMTAuNDQgMGEuNzUuNzUgMCAwIDEgLjk4LS4wOGwuMDguMDggMi4zNyAyLjM2Yy4yLjEzLjM1LjM4LjM1LjY3IDAgLjI1LS4xLjQ3LS4yOC42bC0uMDcuMDYtMi4zNyAyLjM3LS4wOC4wN2MtLjI3LjItLjYyLjItLjg5IDBsLS4xLS4wNy0uMDYtLjA5YS43NS43NSAwIDAgMS0uMDEtLjg4bC4wOC0uMSAxLjIyLTEuMjFoLTMuNzhsLS4xLS4wMWMtLjMxLS4wNS0uNTYtLjM3LS41Ni0uNzQgMC0uMzguMjUtLjcuNTctLjc1SDE4LjQ0bC0xLjIyLTEuMjItLjA3LS4wOWEuNzUuNzUgMCAwIDEgLjA3LS45N1pNMTUuNzUgMmMxLjIgMCAyLjE3LjkzIDIuMjQgMi4xbC4wMS4xNXYzLjUyYy0uNDctLjA3LS45Ny4wNi0xLjM2LjM4bC0uMTQuMTJWNC4yNWMwLS4zOC0uMjgtLjctLjY1LS43NGwtLjEtLjAxaC03LjVjLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjF2NC4wMmgtLjAxYy0uNC0uNDEtLjk2LS41OC0xLjUtLjVMNiA0LjI1YzAtMS4yLjkzLTIuMTcgMi4xLTIuMjRMOC4yNSAyaDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3Bhbk91dDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3Bhbk91dDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNOC43NSAyQTIuNzUgMi43NSAwIDAgMCA2IDQuNzV2NC44OGEyLjI1IDIuMjUgMCAwIDEgMi44NyAyLjg3aDEuMzhhMi4yNSAyLjI1IDAgMCAxIDAgNC41SDguODdBMi4yNSAyLjI1IDAgMCAxIDYgMTkuODd2My4zOEEyLjc1IDIuNzUgMCAwIDAgOC43NSAyNmgxMC41QTIuNzUgMi43NSAwIDAgMCAyMiAyMy4yNXYtMy4zOEEyLjI1IDIuMjUgMCAwIDEgMTkuMTMgMTdoLTEuMzhhMi4yNSAyLjI1IDAgMCAxIDAtNC41aDEuMzhBMi4yNSAyLjI1IDAgMCAxIDIyIDkuNjNWNC43NUEyLjc1IDIuNzUgMCAwIDAgMTkuMjUgMkg4Ljc1Wk02LjIyIDE4LjI4bC0zLTNhLjc1Ljc1IDAgMCAxIDAtMS4wNmwzLTNhLjc1Ljc1IDAgMCAxIDEuMDYgMS4wNkw1LjU2IDE0aDQuNjlhLjc1Ljc1IDAgMCAxIDAgMS41SDUuNTZsMS43MiAxLjcyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZabTE1LjU2LTcuMDYgMyAzYy4zLjMuMy43NyAwIDEuMDZsLTMgM2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDEuNzItMS43MmgtNC42OWEuNzUuNzUgMCAwIDEgMC0xLjVoNC42OWwtMS43Mi0xLjcyYS43NS43NSAwIDEgMSAxLjA2LTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwYW5PdXQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTcGFuT3V0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNOC43NSAyQTIuNzUgMi43NSAwIDAgMCA2IDQuNzV2NC44OGEyLjI2IDIuMjYgMCAwIDEgMS41IDBWNC43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djQuODhhMi4yNiAyLjI2IDAgMCAxIDEuNSAwVjQuNzVBMi43NSAyLjc1IDAgMCAwIDE5LjI1IDJIOC43NVptMTMuMDMgOS4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDIyLjQ0IDE0aC00LjY5YS43NS43NSAwIDAgMCAwIDEuNWg0LjY5bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMCAwIDAgMS4wNmMuMy4zLjc3LjMgMS4wNiAwbDMtM2MuMy0uMy4zLS43NyAwLTEuMDZsLTMtM1ptLTEuMjggOC42NWMuNDguMTcgMS4wMi4xNyAxLjUgMHYzLjM4QTIuNzUgMi43NSAwIDAgMSAxOS4yNSAyNkg4Ljc1QTIuNzUgMi43NSAwIDAgMSA2IDIzLjI1di0zLjM4Yy40OC4xNyAxLjAyLjE3IDEuNSAwdjMuMzhjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTAuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTMuMzhaTTUuNTYgMTUuNWg0LjY5YS43NS43NSAwIDAgMCAwLTEuNUg1LjU2bDEuNzItMS43MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0zIDNjLS4zLjMtLjMuNzcgMCAxLjA2bDMgM2EuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDUuNTYgMTUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BlYWtlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3BlYWtlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDJDNC42NyAyIDQgMi42NyA0IDMuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWg0Ljk5QTEuNSAxLjUgMCAwIDEgOSAxNi41VjE1SDhhLjUuNSAwIDAgMSAwLTFoMS4wOWMuMi0uNTguNzYtMSAxLjQxLTFoLjM4bDEuNTYtMS41NmExLjUgMS41IDAgMCAxIDEuNTYtLjM1VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTguMiAxMC4wNGMuMTguMDguMy4yNi4zLjQ2djZhLjUuNSAwIDAgMS0uODUuMzVMMTEuMjkgMTdoLS43OWEuNS41IDAgMCAxLS41LS41di0yYzAtLjI4LjIyLS41LjUtLjVoLjhsMS44NS0xLjg1YS41LjUgMCAwIDEgLjU0LS4xMVptMy45NS4xNmMuMTIuMTYuMjkuNDUuNDQuODcuMjYuNjguNDEgMS41LjQxIDIuNDMgMCAuOTQtLjE1IDEuNzUtLjQgMi40My0uMTYuNDItLjMzLjctLjQ1Ljg3YS41LjUgMCAwIDEtLjg1LS41MmwuMTItLjE5YTUuOSA1LjkgMCAwIDAgLjU4LTIuNiA1LjkgNS45IDAgMCAwLS41OC0yLjU4bC0uMDctLjExYS41LjUgMCAwIDEgLjgtLjZabS0xLjQzIDEuNzdjLS4xLS4zLS4yLS41NS0uMjctLjdhLjUuNSAwIDEgMC0uOS40NSA0LjYgNC42IDAgMCAxIC40NSAxLjc4IDMuOTQgMy45NCAwIDAgMS0uMzcgMS42bC0uMDguMThhLjUuNSAwIDEgMCAuOS40NCA1LjUgNS41IDAgMCAwIC41NS0yLjIyYzAtLjUtLjEtMS4wMi0uMjgtMS41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3BlYWtlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwZWFrZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDE0YS41LjUgMCAwIDAgMCAxaDF2LS41YzAtLjE4LjAzLS4zNC4wOS0uNUg4Wm0tMiAzaDMuMDljLjIuNTguNzUgMSAxLjQgMUg2YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY3LjA5YTEuNSAxLjUgMCAwIDAtMSAwVjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMVptNy43LTQuOTZjLjE4LjA4LjMuMjYuMy40NnY2YS41LjUgMCAwIDEtLjg1LjM1TDExLjI5IDE3aC0uNzlhLjUuNSAwIDAgMS0uNS0uNXYtMmMwLS4yOC4yMi0uNS41LS41aC44bDEuODUtMS44NWEuNS41IDAgMCAxIC41NC0uMTFabTMuOTUuMTZjLjEyLjE2LjI5LjQ1LjQ0Ljg3LjI2LjY4LjQxIDEuNS40MSAyLjQzIDAgLjk0LS4xNSAxLjc1LS40IDIuNDMtLjE2LjQyLS4zMy43LS40NS44N2EuNS41IDAgMCAxLS44NS0uNTJsLjEyLS4xOWE1LjkgNS45IDAgMCAwIC41OC0yLjYgNS45IDUuOSAwIDAgMC0uNTgtMi41OGwtLjA3LS4xMWEuNS41IDAgMCAxIC44LS42Wm0tMS40MyAxLjc3Yy0uMS0uMy0uMi0uNTUtLjI3LS43YS41LjUgMCAxIDAtLjkuNDUgNC42IDQuNiAwIDAgMSAuNDUgMS43OCAzLjk0IDMuOTQgMCAwIDEtLjM3IDEuNmwtLjA4LjE4YS41LjUgMCAxIDAgLjkuNDQgNS41IDUuNSAwIDAgMCAuNTUtMi4yMmMwLS41LS4xLTEuMDItLjI4LTEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVNwZWFrZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVNwZWFrZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2OC42N2MtLjM3LjA1LS43My4yMy0xLjAzLjU0TDEzLjUzIDE1SDEyYTEgMSAwIDAgMC0xIDF2Mkg4Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgyLjM4Yy4xOC4zLjUuNS44Ny41aDEuNTNsMS40NCAxLjU0YTIgMiAwIDAgMCAuMDYuMDZjLS4zNi4yNS0uOC40LTEuMjguNGgtNy41QzUuMDEgMjIgNCAyMSA0IDE5Ljc1VjQuMjVDNCAzLjAxIDUgMiA2LjI1IDJoNy41Wm04LjQgMTIuM2E0LjUzIDQuNTMgMCAwIDAtLjkyLTEuMTMuNzUuNzUgMCAxIDAtLjk2IDEuMTZjLjEzLjEuMzUuMzUuNTkuNzQuNC42Ny42NCAxLjQ4LjY0IDIuNDMgMCAuOTUtLjI0IDEuNzYtLjY0IDIuNDMtLjI0LjM5LS40Ni42NC0uNTkuNzRhLjc1Ljc1IDAgMSAwIC45NiAxLjE2Yy4yNS0uMjEuNTktLjU4LjkxLTEuMTMuNTQtLjkuODYtMS45Ni44Ni0zLjIgMC0xLjI0LS4zMi0yLjMtLjg2LTMuMlptLTIuMjggMS4xYy0uMjMtLjM2LS40OC0uNi0uNjctLjc1YS43NS43NSAwIDAgMC0uOSAxLjIgMi4yNCAyLjI0IDAgMCAxIC43IDEuNjUgMi4yNCAyLjI0IDAgMCAxLS43IDEuNjVsLS4wOC4wN2EuNzUuNzUgMCAwIDAgLjk4IDEuMTMgMy43MyAzLjczIDAgMCAwIDEuMy0yLjg1YzAtLjgxLS4yMy0xLjUyLS42My0yLjFaTTE3IDE0Ljc1YS43NS43NSAwIDAgMC0xLjMxLS41TDE0LjE2IDE2aC0xLjQxYS43NS43NSAwIDAgMC0uNzUuNzV2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEuNDFsMS41MyAxLjc0YS43NS43NSAwIDAgMCAxLjMxLS40OXYtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTcGVha2VyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3BlYWtlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjc1IDJDMTQuOTkgMiAxNiAzIDE2IDQuMjV2OC42N2MtLjM3LjA1LS43My4yMy0xLjAzLjU0bC0uNDcuNVY0LjI2YS43NS43NSAwIDAgMC0uNzUtLjc1aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxNS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDcuNWMuMDggMCAuMTUtLjAxLjIyLS4wM2wxIDEuMDdhMiAyIDAgMCAwIC4wNi4wNmMtLjM2LjI1LS44LjQtMS4yOC40aC03LjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmg3LjVabS01IDE1LjVIMTFWMTlIOC43NWEuNzUuNzUgMCAwIDEgMC0xLjVabTEzLjQtMy4yYTQuNTMgNC41MyAwIDAgMC0uOTItMS4xMy43NS43NSAwIDEgMC0uOTYgMS4xNmMuMTMuMS4zNS4zNS41OS43NC40LjY3LjY0IDEuNDguNjQgMi40MyAwIC45NS0uMjQgMS43Ni0uNjQgMi40My0uMjQuMzktLjQ2LjY0LS41OS43NGEuNzUuNzUgMCAxIDAgLjk2IDEuMTZjLjI1LS4yMS41OS0uNTguOTEtMS4xMy41NC0uOS44Ni0xLjk2Ljg2LTMuMiAwLTEuMjQtLjMyLTIuMy0uODYtMy4yWm0tMi4yOCAxLjFjLS4yMy0uMzYtLjQ4LS42LS42Ny0uNzVhLjc1Ljc1IDAgMCAwLS45IDEuMiAyLjI0IDIuMjQgMCAwIDEgLjcgMS42NSAyLjI0IDIuMjQgMCAwIDEtLjcgMS42NWwtLjA4LjA3YS43NS43NSAwIDAgMCAuOTggMS4xMyAzLjczIDMuNzMgMCAwIDAgMS4zLTIuODVjMC0uODEtLjIzLTEuNTItLjYzLTIuMVpNMTcgMTQuNzVhLjc1Ljc1IDAgMCAwLTEuMzEtLjVMMTQuMTYgMTZoLTEuNDFhLjc1Ljc1IDAgMCAwLS43NS43NXYxLjVjMCAuNDEuMzQuNzUuNzUuNzVoMS40MWwxLjUzIDEuNzRhLjc1Ljc1IDAgMCAwIDEuMzEtLjQ5di01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVN0YXR1c0JhcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3RhdHVzQmFyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNFptMi41IDBhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3RhdHVzQmFyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lU3RhdHVzQmFyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDRhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNyAyYTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDdaTTYgNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY0WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTdGF0dXNCYXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVN0YXR1c0JhcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNzUgMkMxNi45OSAyIDE4IDMgMTggNC4yNXYxNS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC03LjVDNy4wMSAyMiA2IDIxIDYgMTkuNzVWNC4yNUM2IDMuMDEgNyAyIDguMjUgMmg3LjVabS0xIDIuNWgtNS41YS43NS43NSAwIDAgMC0uMSAxLjVoNS42YS43NS43NSAwIDAgMCAuMS0xLjVoLS4xWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTdGF0dXNCYXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVTdGF0dXNCYXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS43NSAyQzE2Ljk5IDIgMTggMyAxOCA0LjI1djE1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNUM3LjAxIDIyIDYgMjEgNiAxOS43NVY0LjI1QzYgMy4wMSA3IDIgOC4yNSAyaDcuNVptMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabS0xIDFhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lU3VidHJhY3QyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVN1YnRyYWN0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMy43NSAyQzE0Ljk5IDIgMTYgMyAxNiA0LjI1djYuOTJhNi41IDYuNSAwIDAgMC01IDYuMzNIOC43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMi40MmE2LjQ5IDYuNDkgMCAwIDAgMS42NCAzSDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmg3LjVabTMuNzUgMTBhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptLTMuMSA1YS41LjUgMCAwIDAtLjQuNDF2LjE4Yy4wNC4yLjIuMzYuNC40bC4xLjAxaDYuMWEuNS41IDAgMCAwIC40LS40MXYtLjE4YS41LjUgMCAwIDAtLjQtLjRsLS4xLS4wMWgtNi4xWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVTdWJ0cmFjdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVN1YnRyYWN0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuNzUgMkMxNC45OSAyIDE2IDMgMTYgNC4yNXY2LjkyYy0uNTMuMTMtMS4wMy4zMi0xLjUuNTZWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NWg1LjQ4Yy4yOS41NS42NSAxLjA2IDEuMDggMS41SDYuMjVDNS4wMSAyMiA0IDIxIDQgMTkuNzVWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmg3LjVabS01IDE1LjVIMTFjMCAuNTIuMDYgMS4wMi4xNyAxLjVIOC43NWEuNzUuNzUgMCAwIDEgMC0xLjVaTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptMyA2YS41LjUgMCAwIDAgMC0xaC02YS41LjUgMCAwIDAgMCAxaDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVRhYmxldDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVGFibGV0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDQuOEM0IDMuOCA0Ljg0IDMgNS44NCAzaDEwLjMyYzEgMCAxLjg0LjggMS44NCAxLjh2Ny40YzAgMS0uODQgMS44LTEuODQgMS44SDEwdi0yaDIuNWEuNS41IDAgMCAwIDAtMUgxMFY4YTIgMiAwIDAgMC0yLTJINFY0LjhaTTMuNSA3QzIuNjcgNyAyIDcuNjcgMiA4LjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOEM5IDcuNjcgOC4zMyA3IDcuNSA3aC00Wm0xIDguNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVUYWJsZXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVUYWJsZXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01Ljg0IDRhLjgzLjgzIDAgMCAwLS44NC44VjZINFY0LjhDNCAzLjggNC44NCAzIDUuODQgM2gxMC4zMmMxIDAgMS44NC44IDEuODQgMS44djcuNGMwIDEtLjg0IDEuOC0xLjg0IDEuOEgxMHYtMWg2LjE2Yy40OCAwIC44NC0uMzcuODQtLjhWNC44YzAtLjQzLS4zNi0uOC0uODQtLjhINS44NFpNMTAgMTJoMi41YS41LjUgMCAwIDAgMC0xSDEwdjFabS01IDNhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMUg1Wk0yIDguNUMyIDcuNjcgMi42NyA3IDMuNSA3aDRDOC4zMyA3IDkgNy42NyA5IDguNXY4YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNEExLjUgMS41IDAgMCAxIDIgMTYuNXYtOFpNMy41IDhhLjUuNSAwIDAgMC0uNS41djhjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di04YS41LjUgMCAwIDAtLjUtLjVoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVRhYmxldDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVGFibGV0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk04LjI1IDdDOS4yMiA3IDEwIDcuNzggMTAgOC43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVDMi43OCAyMCAyIDE5LjIyIDIgMTguMjV2LTkuNUMyIDcuNzggMi43OCA3IDMuNzUgN2g0LjVabS0yIDkuNWgtLjZhLjc1Ljc1IDAgMCAwIDAgMS40OWguN2EuNzUuNzUgMCAwIDAgMC0xLjQ5aC0uMVpNMTkuNzUgNGMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXY4LjY1YzAgMS4yLS45MiAyLjE3LTIuMDkgMi4yNGwtLjE1LjAxSDExVjguNUEyLjUgMi41IDAgMCAwIDguNjYgNkg2LjAxQTIuMjUgMi4yNSAwIDAgMSA4LjEgNGgxMS42NlptLTQuNSA5LjVoLTIuNWEuNzUuNzUgMCAwIDAtLjEgMS41aDIuNmEuNzUuNzUgMCAwIDAgLjEtMS41aC0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVGFibGV0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVGFibGV0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNOC4yNSA3QzkuMjIgNyAxMCA3Ljc4IDEwIDguNzV2OS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtNC41QzIuNzggMjAgMiAxOS4yMiAyIDE4LjI1di05LjVDMiA3Ljc4IDIuNzggNyAzLjc1IDdoNC41Wm0wIDEuNWgtNC41YS4yNS4yNSAwIDAgMC0uMjUuMjV2OS41YzAgLjE0LjExLjI1LjI1LjI1aDQuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1Wm0tMiA3LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtLjZhLjc1Ljc1IDAgMCAxLS4xLTEuNWguNlptMTMuNS0xMmMxLjE5IDAgMi4xNi45MyAyLjI0IDIuMXY4LjY1YzAgMS4yLS45MiAyLjE3LTIuMDkgMi4yNGwtLjE1LjAxSDExdi0xLjVoOC43NWMuMzggMCAuNy0uMjguNzQtLjY1di04LjZjMC0uMzgtLjI3LS43LS42NC0uNzRsLS4xLS4wMUg4LjI1Yy0uMzMgMC0uNi4yLS43LjVINkEyLjI1IDIuMjUgMCAwIDEgOC4xIDRoMTEuNjZabS00LjUgOWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVVcGRhdGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVVwZGF0ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSAzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTUuNSAzYS41LjUgMCAwIDAtMSAwdjUuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDItMmEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTRWNi41WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVVcGRhdGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVVcGRhdGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCA2Yy4yOCAwIC41LjIyLjUuNXY1LjhsMS4xNS0xLjE1YS41LjUgMCAwIDEgLjcuN2wtMiAyQS41LjUgMCAwIDEgMTAgMTRhLjUuNSAwIDAgMS0uMzUtLjE1bC0yLTJhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTRWNi41YzAtLjI4LjIyLS41LjUtLjVaTTUgMy41QzUgMi42NyA1LjY3IDIgNi41IDJoN2MuODMgMCAxLjUuNjcgMS41IDEuNXYxM2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDE2LjV2LTEzWk02LjUgM2EuNS41IDAgMCAwLS41LjV2MTNjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di0xM2EuNS41IDAgMCAwLS41LS41aC03WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVVcGRhdGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVVwZGF0ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNzUgMkMxNi45OSAyIDE4IDMgMTggNC4yNXYxNS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC03LjVDNy4wMSAyMiA2IDIxIDYgMTkuNzVWNC4yNUM2IDMuMDEgNyAyIDguMjUgMmg3LjVaTTEyIDcuMDNoLS4xbC0uMS4wM2EuNzUuNzUgMCAwIDAtLjU0LjZsLS4wMS4xMnY2LjcxbC0uOTYtLjk2LS4wOS0uMDdhLjc1Ljc1IDAgMCAwLTEuMDQgMS4wNWwuMDcuMDggMi4yNCAyLjI0LjA1LjA1LjA2LjA0LjA3LjA1LjEyLjA1LjEuMDIuMDguMDFoLjFsLjA5LS4wMS4wNi0uMDEuMS0uMDQuMDYtLjAzLjA3LS4wNC4wNi0uMDUuMDQtLjA0IDIuMjQtMi4yNC4wNy0uMDhjLjItLjI2LjItLjYyLjAxLS44OWwtLjA4LS4wOS0uMDgtLjA3YS43NS43NSAwIDAgMC0uODggMGwtLjEuMDctLjk2Ljk2VjcuNjhhLjc1Ljc1IDAgMCAwLS42NS0uNjRIMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVVwZGF0ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVVwZGF0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1Ljc1IDJDMTYuOTkgMiAxOCAzIDE4IDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcuMDEgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wm0wIDEuNWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zNC43NS43NS43NWg3LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNMTIgNy4wM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXY2LjcxbC45Ni0uOTZhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY4LjA3Ljk4bC0uMDcuMDgtMi4yNCAyLjI0LS4wNC4wNC0uMDYuMDUtLjA3LjA0LS4wNi4wMy0uMS4wNC0uMDYuMDEtLjEuMDFoLS4wOWwtLjA5LS4wMS0uMS0uMDItLjEtLjA1LS4wOC0uMDUtLjExLS4wOS0yLjI0LTIuMjRhLjc1Ljc1IDAgMCAxIC45Ny0xLjEzbC4wOS4wNy45Ni45NlY3LjhjMC0uMzUuMjMtLjY0LjU1LS43M2wuMS0uMDJoLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVVwZGF0ZUNoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVXBkYXRlQ2hlY2ttYXJrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDE2YzAgMS4xLjkgMiAyIDJoMy4yNmE1LjQ4IDUuNDggMCAwIDEtLjc2LTUuOHYtNUw4LjM1IDguMzZhLjUuNSAwIDEgMS0uNy0uN2wyLTJjLjItLjIuNS0uMi43IDBsMiAyYS41LjUgMCAwIDEtLjcuN0wxMC41IDcuMjF2My41MmE1LjQ4IDUuNDggMCAwIDEgNC41LTEuN1Y0YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjEyWm0xNC0xLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVVcGRhdGVDaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVVcGRhdGVDaGVja21hcmsyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDE2YTEgMSAwIDAgMCAxIDFoMi42Yy4xOC4zNi40LjcuNjYgMUg3YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDZhMiAyIDAgMCAxIDIgMnY1LjAyYTUuNTcgNS41NyAwIDAgMC0xIDBWNGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMlptMy41LTMuOGMuMjUtLjU0LjYtMS4wNCAxLTEuNDdWNy4ybDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0yLTJhLjUuNSAwIDAgMC0uNyAwbC0yIDJhLjUuNSAwIDEgMCAuNy43TDkuNSA3LjIxdjVabTkuNSAyLjNhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwbC0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVVcGRhdGVDaGVja21hcmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVVwZGF0ZUNoZWNrbWFyazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOC4yNSAyMmg0LjU2YTYuNDggNi40OCAwIDAgMS0xLjU2LTYuM1Y5LjVsLS45Ni45Ny0uMDkuMDdBLjc1Ljc1IDAgMCAxIDkuMTYgOS41bC4wNy0uMDggMi4yNC0yLjI0LjA1LS4wNS4wNi0uMDQuMDctLjA1LjEyLS4wNS4xLS4wMi4wOC0uMDFoLjFsLjA5LjAxLjA2LjAxLjEuMDQuMDYuMDMuMDcuMDQuMDYuMDUuMDQuMDQgMi4yNCAyLjI0LjA3LjA4Yy4yLjI2LjIuNjIuMDEuODlsLS4wOC4wOS0uMDguMDdjLS4yNi4yLS42Mi4yLS44OCAwbC0uMS0uMDctLjk2LS45NnYzLjU1QTYuNDggNi40OCAwIDAgMSAxOCAxMS4wMlY0LjI1QzE4IDMuMDEgMTcgMiAxNS43NSAyaC03LjVDNy4wMSAyIDYgMyA2IDQuMjV2MTUuNUM2IDIwLjk5IDcgMjIgOC4yNSAyMlpNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMi4xNS0yLjM1YS41LjUgMCAwIDAtLjcgMGwtMy42NSAzLjY0LTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVVcGRhdGVDaGVja21hcmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVVcGRhdGVDaGVja21hcmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjI1IDIyaDQuNTZhNi41MiA2LjUyIDAgMCAxLTEuMDgtMS41SDguMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Ni44M2E2LjU1IDYuNTUgMCAwIDEgMS41LS4wNlY0LjI1QzE4IDMuMDEgMTcgMiAxNS43NSAyaC03LjVDNy4wMSAyIDYgMyA2IDQuMjV2MTUuNUM2IDIwLjk5IDcgMjIgOC4yNSAyMlptMy02LjNjLjI5LTEgLjgtMS45IDEuNS0yLjY0VjkuNTFsLjk2Ljk2Yy4yNy4yNy42OC4yOS45OC4wN2wuMDgtLjA3YS43NS43NSAwIDAgMCAuMDctLjk4bC0uMDctLjA4LTIuMjQtMi4yNC0uMDQtLjA0LS4wNi0uMDUtLjA3LS4wNC0uMDYtLjAzLS4xLS4wNC0uMDYtLjAxLS4xLS4wMWgtLjA5bC0uMDkuMDEtLjEuMDItLjEuMDUtLjA4LjA1LS4xMS4wOUw5LjIzIDkuNGEuNzUuNzUgMCAwIDAgLjk3IDEuMTNsLjA5LS4wNy45Ni0uOTZ2Ni4yWk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwbC0zLjY1IDMuNjQtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVZlcnRpY2FsU2Nyb2xsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVWZXJ0aWNhbFNjcm9sbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSAzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNabTcuMzUgNS4zNWEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS43IDBsLTIgMmEuNS41IDAgMSAwIC43LjdMMTAgNy4yMWwxLjY1IDEuNjRjLjIuMi41LjIuNyAwWm0tNC43IDIuM2EuNS41IDAgMCAwIDAgLjdsMiAyYy4yLjIuNS4yLjcgMGwyLTJhLjUuNSAwIDAgMC0uNy0uN0wxMCAxMi43OWwtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVmVydGljYWxTY3JvbGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVWZXJ0aWNhbFNjcm9sbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNjUgMTEuMTVjLjItLjIuNS0uMi43IDBMMTAgMTIuNzlsMS42NS0xLjY0YS41LjUgMCAwIDEgLjcuN2wtMiAyYS41LjUgMCAwIDEtLjcgMGwtMi0yYS41LjUgMCAwIDEgMC0uN1ptNC0yLjNhLjUuNSAwIDAgMCAuNy0uN2wtMi0yYS41LjUgMCAwIDAtLjcgMGwtMiAyYS41LjUgMCAxIDAgLjcuN0wxMCA3LjIxbDEuNjUgMS42NFpNNSAzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNXYtMTNaTTYuNSAzYS41LjUgMCAwIDAtLjUuNXYxM2MwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgLjUtLjV2LTEzYS41LjUgMCAwIDAtLjUtLjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVZlcnRpY2FsU2Nyb2xsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVWZXJ0aWNhbFNjcm9sbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNzUgMkMxNi45OSAyIDE4IDMgMTggNC4yNXYxNS41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC03LjVDNy4wMSAyMiA2IDIxIDYgMTkuNzVWNC4yNUM2IDMuMDEgNyAyIDguMjUgMmg3LjVabS0yLjA0IDExLjQ3TDEyIDE1LjIybC0xLjcyLTEuNzVhLjc1Ljc1IDAgMCAwLTEuMDcgMS4wNmwyLjI1IDIuM2MuMy4zLjc4LjMgMS4wOCAwbDIuMjUtMi4zYS43NS43NSAwIDEgMC0xLjA4LTEuMDVabTEuMDgtMy45NS0yLjI1LTIuM2EuNzUuNzUgMCAwIDAtMS0uMDdsLS4wOC4wNy0yLjI1IDIuM2EuNzUuNzUgMCAwIDAgLjk5IDEuMTJsLjA4LS4wN0wxMiA4LjgybDEuNzEgMS43NWEuNzUuNzUgMCAwIDAgMS4xNS0uOTZsLS4wNy0uMDktMi4yNS0yLjMgMi4yNSAyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVZlcnRpY2FsU2Nyb2xsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVmVydGljYWxTY3JvbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS43NSAyQzE2Ljk5IDIgMTggMyAxOCA0LjI1djE1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNUM3LjAxIDIyIDYgMjEgNiAxOS43NVY0LjI1QzYgMy4wMSA3IDIgOC4yNSAyaDcuNVptMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabS0uOTcgOS45NmMuMjYuMjcuMy42OC4wOC45OGwtLjA3LjA5LTIuMjUgMi4zYy0uMjcuMjYtLjcuMjktMSAuMDdsLS4wOC0uMDgtMi4yNS0yLjNhLjc1Ljc1IDAgMCAxIC45OS0xLjEybC4wOC4wN0wxMiAxNS4yMmwxLjcxLTEuNzVjLjMtLjMuNzctLjMgMS4wNiAwWm0tMi4yNC02LjIzIDIuMjUgMi4zYS43NS43NSAwIDEgMS0xLjA4IDEuMDRMMTIgOC44MmwtMS43MiAxLjc1YS43NS43NSAwIDAgMS0xLjA3LTEuMDVsMi4yNS0yLjNjLjMtLjMuNzgtLjMgMS4wOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVWaWJyYXRlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvbmVWaWJyYXRlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNFptMy41IDEwLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMi45MiA3LjIyYS41LjUgMCAwIDAtLjg0LjU2bC4zOC41N2MuMjkuNDIuMzIuOTcuMSAxLjQzLS40Ljc4LS4zNCAxLjcuMTQgMi40M2wuMzguNTdhLjUuNSAwIDEgMCAuODQtLjU2bC0uMzgtLjU3YTEuNDMgMS40MyAwIDAgMS0uMS0xLjQzYy40LS43OC4zNC0xLjctLjE0LTIuNDNsLS4zOC0uNTdabTEzLjMtLjE0YS41LjUgMCAwIDEgLjcuMTRsLjM4LjU3Yy40OC43My41NCAxLjY1LjE1IDIuNDMtLjIzLjQ2LS4yIDEgLjA5IDEuNDNsLjM4LjU3YS41LjUgMCAxIDEtLjg0LjU2bC0uMzgtLjU3YTIuNDMgMi40MyAwIDAgMS0uMTUtMi40M2MuMjMtLjQ2LjItMS0uMDktMS40M2wtLjM4LS41N2EuNS41IDAgMCAxIC4xNC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBob25lVmlicmF0ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVZpYnJhdGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgMTQuNWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zWk03IDJhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIN1pNNiA0YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjRaTTIuOTIgNy4yMmEuNS41IDAgMCAwLS44NC41NmwuMzguNTdjLjI5LjQyLjMyLjk3LjEgMS40My0uNC43OC0uMzQgMS43LjE0IDIuNDNsLjM4LjU3YS41LjUgMCAxIDAgLjg0LS41NmwtLjM4LS41N2ExLjQzIDEuNDMgMCAwIDEtLjEtMS40M2MuNC0uNzguMzQtMS43LS4xNC0yLjQzbC0uMzgtLjU3Wm0xMy4zLS4xNGEuNS41IDAgMCAxIC43LjE0bC4zOC41N2MuNDguNzMuNTQgMS42NS4xNSAyLjQzLS4yMy40Ni0uMiAxIC4wOSAxLjQzbC4zOC41N2EuNS41IDAgMSAxLS44NC41NmwtLjM4LS41N2EyLjQzIDIuNDMgMCAwIDEtLjE1LTIuNDNjLjIzLS40Ni4yLTEtLjA5LTEuNDNsLS4zOC0uNTdhLjUuNSAwIDAgMSAuMTQtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG9uZVZpYnJhdGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaG9uZVZpYnJhdGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1Ljc1IDJDMTYuOTkgMiAxOCAzIDE4IDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wm0tMi41IDE2aC0yLjVhLjc1Ljc1IDAgMCAwLS4xIDEuNWgyLjZhLjc1Ljc1IDAgMCAwIDAtMS41Wm02Ljg4LTEwLjQzYTEgMSAwIDAgMSAxLjI1LjQ1bC4wNS4xTDIyIDkuNmEzIDMgMCAwIDEtLjI3IDIuNzRsLS4xMi4xNy0uMTUuMmExIDEgMCAwIDAtLjE3Ljg1bC4wNC4xMi41OSAxLjQ2YTEgMSAwIDAgMS0xLjgxLjg1bC0uMDUtLjEtLjU4LTEuNDdhMyAzIDAgMCAxIC4yNi0yLjc0bC4xMi0uMTcuMTUtLjJhMSAxIDAgMCAwIC4xNy0uODVsLS4wNC0uMTItLjU4LTEuNDZhMSAxIDAgMCAxIC41Ni0xLjNabS0xNy41IDBhMSAxIDAgMCAxIDEuMjUuNDVsLjA1LjEuNTggMS40N2EzIDMgMCAwIDEtLjI3IDIuNzRsLS4xMi4xNy0uMTUuMmExIDEgMCAwIDAtLjE3Ljg1bC4wNC4xMi41OSAxLjQ2YTEgMSAwIDAgMS0xLjgxLjg1bC0uMDUtLjFMMiAxNC40YTMgMyAwIDAgMSAuMjYtMi43NGwuMTItLjE3LjE1LS4yYTEgMSAwIDAgMCAuMTctLjg1bC0uMDQtLjEyLS41OC0xLjQ2YTEgMSAwIDAgMSAuNTYtMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvbmVWaWJyYXRlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob25lVmlicmF0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1Ljc1IDJDMTYuOTkgMiAxOCAzIDE4IDQuMjV2MTUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcgMjIgNiAyMSA2IDE5Ljc1VjQuMjVDNiAzLjAxIDcgMiA4LjI1IDJoNy41Wm0wIDEuNWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2MTUuNWMwIC40MS4zMy43NS43NS43NWg3LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NVptLTIuNSAxNGEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi41Wm03LjQtOS4zNy4wNS4xLjU4IDEuNDVjLjMzLjgzLjI0IDEuNzctLjI1IDIuNTFsLS4xLjE2LS4xNi4yYy0uMjMuMzEtLjMuNy0uMiAxLjA4bC4wNC4xNC41OSAxLjQ1YS43NS43NSAwIDAgMS0xLjM1LjY1bC0uMDUtLjEtLjU4LTEuNDVhMi43NSAyLjc1IDAgMCAxIC4yNC0yLjUxbC4xMS0uMTYuMTUtLjJjLjI0LS4zMS4zMS0uNy4yMS0xLjA4bC0uMDQtLjE0LS41OS0xLjQ1YS43NS43NSAwIDAgMSAxLjI5LS43NGwuMDYuMDlabS0xNi41IDAgLjA1LjEuNTggMS40NWMuMzMuODMuMjQgMS43Ny0uMjUgMi41MWwtLjEuMTYtLjE2LjJjLS4yMy4zMS0uMy43LS4yIDEuMDhsLjA0LjE0LjU5IDEuNDVhLjc1Ljc1IDAgMCAxLTEuMzUuNjVsLS4wNS0uMS0uNTgtMS40NWEyLjc1IDIuNzUgMCAwIDEgLjI0LTIuNTFsLjExLS4xNi4xNS0uMmMuMjQtLjMxLjMxLS43LjIxLTEuMDhsLS4wNC0uMTQtLjU5LTEuNDVhLjc1Ljc1IDAgMCAxIDEuMjktLjc0bC4wNi4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBob3RvRmlsdGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvdG9GaWx0ZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYuMjYgMTMuNzRhNiA2IDAgMSAxIDcuNDgtNy40OCA2IDYgMCAxIDEtNy40OCA3LjQ4Wk0zLjUgOEE0LjUgNC41IDAgMCAwIDYgMTIuMDNWMTJhNiA2IDAgMCAxIDYuMDMtNkE0LjUgNC41IDAgMCAwIDMuNSA4Wm00LjQ3IDZBNC41IDQuNSAwIDEgMCAxNCA3Ljk3VjhhNiA2IDAgMCAxLTYgNmgtLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvdG9GaWx0ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvdG9GaWx0ZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDhhNiA2IDAgMCAwIDQuMjYgNS43NCA2IDYgMCAxIDAgNy40OC03LjQ4QTYgNiAwIDAgMCAyIDhabTYtNWE1IDUgMCAwIDEgNC42IDMuMDNMMTIgNmE2IDYgMCAwIDAtNS45NyA2LjZBNSA1IDAgMCAxIDggM1ptOSA5YTUgNSAwIDAgMS05LjYgMS45N0w4IDE0YTYgNiAwIDAgMCA1Ljk3LTYuNkE1IDUgMCAwIDEgMTcgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaG90b0ZpbHRlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bob3RvRmlsdGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMmE3LjUgNy41IDAgMCAxIDcuMTggNS4zMiA3LjUgNy41IDAgMSAxLTkuMzYgOS4zNkE3LjUgNy41IDAgMCAxIDkuNSAyWk0xNyA5LjZ2LS4xQTcuNSA3LjUgMCAwIDEgOS42IDE3IDUuNSA1LjUgMCAxIDAgMTcgOS42Wk05LjUgNEE1LjUgNS41IDAgMCAwIDcgMTQuNHYuMUE3LjUgNy41IDAgMCAxIDE0LjQgN2E1LjUgNS41IDAgMCAwLTQuOS0zWlwiXSk7XG5leHBvcnQgY29uc3QgUGhvdG9GaWx0ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGhvdG9GaWx0ZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjUgMmE3LjUgNy41IDAgMCAxIDcuMTggNS4zMiA3LjUgNy41IDAgMSAxLTkuMzYgOS4zNkE3LjUgNy41IDAgMCAxIDkuNSAyWm03LjQ5IDcuMDR2LjIybC4wMS4yNGE3LjUgNy41IDAgMCAxLTcuOTYgNy40OSA2IDYgMCAxIDAgNy45NS03Ljk1Wk05LjUgMy41YTYgNiAwIDAgMC0yLjQ5IDExLjQ2di0uMjJMNyAxNC41YTcuNSA3LjUgMCAwIDEgNy45Ni03LjQ5QTYgNiAwIDAgMCA5LjUgMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUGkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy40IDQuNzhjLS4xNy4zMi0uMTguNzYtLjEyIDEuMDdhLjc1Ljc1IDAgMSAxLTEuNDcuM2MtLjEtLjUyLS4xMS0xLjM0LjI2LTIuMDYuNDEtLjc5IDEuMjItMS4zNCAyLjQ3LTEuMzRIMTYuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuMjV2OS40MmMwIDEuNS40NSAxLjg5LjcgMiAuMzIuMTUuOC4wOCAxLjIxLS4xM2EuNzUuNzUgMCAwIDEgLjY4IDEuMzRjLS42LjMtMS42LjU4LTIuNTMuMTUtMS4wMS0uNDctMS41Ni0xLjYxLTEuNTYtMy4zNlY0LjI1SDguMjRhOTAuNzUgOTAuNzUgMCAwIDEtLjYgNi4zMiA0NC42NiA0NC42NiAwIDAgMS0uNjEgMy41NSAxMi4zOCAxMi4zOCAwIDAgMS0uODYgMi43Mi43NS43NSAwIDEgMS0xLjM0LS42OGMuMjYtLjUuNS0xLjMzLjczLTIuMzYuMjMtMS4wMy40Mi0yLjIxLjU4LTMuNDIuMzEtMi4yOC41LTQuNjIuNi02LjEzaC0yLjJjLS43NCAwLTEuMDEuMjgtMS4xNC41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy4xOCA0LjY3YTIgMiAwIDAgMC0uMTQgMS4yMy41LjUgMCAxIDEtLjk4LjIgMyAzIDAgMCAxIC4yMy0xLjlDMi42NiAzLjUgMy4zOCAzIDQuNTQgM0gxNi41YS41LjUgMCAxIDEgMCAxSDE0djkuNjdjMCAxLjU0LjQ3IDIuMDUuODQgMi4yMy40Mi4yIDEgLjA5IDEuNDMtLjE0YS41LjUgMCAxIDEgLjQ2LjljLS41Ni4yOC0xLjQ5LjUzLTIuMzIuMTQtLjg4LS40MS0xLjQxLTEuNDItMS40MS0zLjEzVjRIOHYuMDNhOTAuMiA5MC4yIDAgMCAxLS42MiA2LjUxIDQ0LjQzIDQ0LjQzIDAgMCAxLS42IDMuNTJjLS4yMyAxLjA2LS41IDItLjgzIDIuNjZhLjUuNSAwIDEgMS0uOS0uNDRjLjI3LS41NS41My0xLjM5Ljc2LTIuNDMuMjItMS4wMy40Mi0yLjIyLjU4LTMuNDQuMzMtMi40Mi41My00LjkyLjYtNi40MUg0LjU1Yy0uODMgMC0xLjE4LjMzLTEuMzYuNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxNS4yNWExIDEgMCAxIDEgMCAySDE3djEwLjdhMS41IDEuNSAwIDAgMCAyIDEuNDJsLjE2LS4wNmExIDEgMCAxIDEgLjY4IDEuODhsLS4xNi4wNkEzLjUgMy41IDAgMCAxIDE1IDE2LjdWNkg5Ljk4YTUzLjkgNTMuOSAwIDAgMS0uMzYgNC4yMSA0NS4wNCA0NS4wNCAwIDAgMS0xLjkzIDkuMTIgMSAxIDAgMSAxLTEuODgtLjY2IDQzLjEgNDMuMSAwIDAgMCAxLjgyLTguN0E2NS42IDY1LjYgMCAwIDAgNy45OCA2SDVhMSAxIDAgMCAwLTEgMXYuNWExIDEgMCAwIDEtMiAwVjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIuNSA2Ljc1QTIuNzUgMi43NSAwIDAgMSA1LjI1IDRoMTVhLjc1Ljc1IDAgMCAxIDAgMS41SDE3djExLjQ1YzAgMS4yMSAxLjIgMi4wNiAyLjM0IDEuNjVsLjE2LS4wNmEuNzUuNzUgMCAwIDEgLjUgMS40MmwtLjE2LjA1YTMuMjUgMy4yNSAwIDAgMS00LjM0LTMuMDZWNS41aC02YTU2LjkgNTYuOSAwIDAgMS0uMjUgNC41M2MtLjI1IDIuODctLjc2IDYuNS0xLjggOS40N2EuNzUuNzUgMCAwIDEtMS40LS41IDQwLjA3IDQwLjA3IDAgMCAwIDEuNy05LjFBNjcuOSA2Ny45IDAgMCAwIDggNS41SDUuMjVDNC41NiA1LjUgNCA2LjA2IDQgNi43NXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNSAyQTIuNSAyLjUgMCAwIDAgMSA0LjV2NUEyLjUgMi41IDAgMCAwIDMuNSAxMkg3di0yYzAtMS4xLjktMiAyLTJoNVY0LjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLThaTTggMTBhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoOEEyLjUgMi41IDAgMCAxIDE0IDQuNVY4aC0xVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLThDMi42NyAzIDIgMy42NyAyIDQuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41SDd2MUgzLjVBMi41IDIuNSAwIDAgMSAxIDkuNXYtNVpNOSA5YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC43NSAzQTIuNzUgMi43NSAwIDAgMCAyIDUuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE1SDl2LTIuNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNmMuMTcgMCAuMzQuMDIuNS4wNXYtNC4zQTIuNzUgMi43NSAwIDAgMCAxNS4yNSAzSDQuNzVaTTE4IDExLjA5YTEuNSAxLjUgMCAwIDAtLjUtLjA5aC02Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjY1LS40Mi0xLjItMS0xLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWN0dXJlSW5QaWN0dXJlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA1Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDNoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNS43NVYxMGgtMVY1Ljc1QzE3IDQuNzggMTYuMjIgNCAxNS4yNSA0SDQuNzVDMy43OCA0IDMgNC43OCAzIDUuNzV2Ni41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDl2MUg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDEyLjI1di02LjVaTTExLjUgMTFjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02WlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMiA2LjI1djkuNUMyIDE3LjU1IDMuNDYgMTkgNS4yNSAxOUgxMXYtNGEzIDMgMCAwIDEgMy0zaDdhMyAzIDAgMCAxIDEgLjE3VjYuMjVDMjIgNC40NSAyMC41NCAzIDE4Ljc1IDNINS4yNVpNMjIgMTMuMjdhMiAyIDAgMCAwLTEtLjI3aC03YTIgMiAwIDAgMC0yIDJ2NWMwIDEuMS45IDIgMiAyaDdhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtMS0xLjczWlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWN0dXJlSW5QaWN0dXJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA2LjI1QzIgNC40NSAzLjQ2IDMgNS4yNSAzaDEzLjVDMjAuNTUgMyAyMiA0LjQ2IDIyIDYuMjVWMTJoLTEuNVY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY5LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIMTFWMTlINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNS43NXYtOS41Wk0xNCAxM2EyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMmgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmUzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmUzMkxpZ2h0JywgXCIzMlwiLCBbXCJNNi41IDNBNC41IDQuNSAwIDAgMCAyIDcuNXYxNUE0LjUgNC41IDAgMCAwIDYuNSAyN2g4LjIzYy0uMS0uMzItLjE3LS42Ni0uMi0xSDYuNUEzLjUgMy41IDAgMCAxIDMgMjIuNXYtMTVBMy41IDMuNSAwIDAgMSA2LjUgNGgxOUEzLjUgMy41IDAgMCAxIDI5IDcuNXY4LjIzYy4zNS4xLjY5LjI2IDEgLjQ0VjcuNUE0LjUgNC41IDAgMCAwIDI1LjUgM2gtMTlaTTE2IDIwLjVhMy41IDMuNSAwIDAgMSAzLjUtMy41aDhhMy41IDMuNSAwIDAgMSAzLjUgMy41djVhMy41IDMuNSAwIDAgMS0zLjUgMy41aC04YTMuNSAzLjUgMCAwIDEtMy41LTMuNXYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFbnRlcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmVFbnRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy41IDJBMi41IDIuNSAwIDAgMCAxIDQuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDEySDd2LTJjMC0xLjEuOS0yIDItMmg1VjQuNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtOFptLjE1IDIuNjVjLjItLjIuNS0uMi43IDBMNiA2LjI5VjUuNWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWguOEwzLjY0IDUuMzVhLjUuNSAwIDAgMSAwLS43Wk04IDEwYTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlRW50ZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUVudGVyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMy41IDJBMi41IDIuNSAwIDAgMCAxIDQuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDEySDd2LTFIMy41QTEuNSAxLjUgMCAwIDEgMiA5LjV2LTVDMiAzLjY3IDIuNjcgMyAzLjUgM2g4Yy44MyAwIDEuNS42NyAxLjUgMS41VjhoMVY0LjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLThabS44NSAyLjY1YS41LjUgMCAxIDAtLjcuN0w1LjI5IDdINC41YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAuMzUtLjE0QS41LjUgMCAwIDAgNyA3LjV2LTJhLjUuNSAwIDAgMC0xIDB2LjhMNC4zNSA0LjY0Wk05IDlhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFIOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFbnRlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmVFbnRlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC43NSAzQTIuNzUgMi43NSAwIDAgMCAyIDUuNzV2Ni41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE1SDl2LTIuNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNmMuMTcgMCAuMzQuMDIuNS4wNXYtNC4zQTIuNzUgMi43NSAwIDAgMCAxNS4yNSAzSDQuNzVabS42IDIuNjVMOCA4LjI5VjYuNWEuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxIDAtMWgxLjhMNC42NCA2LjM1YS41LjUgMCAxIDEgLjctLjdaTTE4IDExLjA5YTEuNSAxLjUgMCAwIDAtLjUtLjA5aC02Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjY1LS40Mi0xLjItMS0xLjQxWlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZUVudGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmVFbnRlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIgNS43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSAzaDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDUuNzVWMTBoLTFWNS43NUMxNyA0Ljc4IDE2LjIyIDQgMTUuMjUgNEg0Ljc1QzMuNzggNCAzIDQuNzggMyA1Ljc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg5djFINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxMi4yNXYtNi41Wk0xMS41IDExYy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNlpNNC42NSA1LjY1Yy4yLS4yLjUtLjIuNyAwTDggOC4yOVY2LjVhLjUuNSAwIDAgMSAxIDB2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMSAwLTFoMS44TDQuNjQgNi4zNWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlRW50ZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWN0dXJlSW5QaWN0dXJlRW50ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMiA2LjI1djkuNUMyIDE3LjU1IDMuNDYgMTkgNS4yNSAxOUgxMXYtNGEzIDMgMCAwIDEgMy0zaDdhMyAzIDAgMCAxIDEgLjE3VjYuMjVDMjIgNC40NSAyMC41NCAzIDE4Ljc1IDNINS4yNVptMS4wMyAzLjIyTDkuNSA5LjQ0VjcuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNjlMNS4yMiA3LjI4YS43NS43NSAwIDAgMSAxLjA2LTEuMDZaTTIyIDEzLjI3YTIgMiAwIDAgMC0xLS4yN2gtN2EyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTEtMS43M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFbnRlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWN0dXJlSW5QaWN0dXJlRW50ZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yIDYuMjVDMiA0LjQ1IDMuNDYgMyA1LjI1IDNoMTMuNUMyMC41NSAzIDIyIDQuNDYgMjIgNi4yNVYxMmgtMS41VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djkuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUgxMVYxOUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE1Ljc1di05LjVaTTE0IDEzYTIgMiAwIDAgMC0yIDJ2NWMwIDEuMS45IDIgMiAyaDdhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtMi0yaC03Wk01LjIyIDYuMjJjLjMtLjMuNzctLjMgMS4wNiAwTDkuNSA5LjQ0VjcuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuNjlMNS4yMiA3LjI4YS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlRXhpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmVFeGl0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03IDdhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg1Wm0tNSA0LjVWOGg1YTIgMiAwIDAgMCAyLTJWNGgzLjVBMi41IDIuNSAwIDAgMSAxNSA2LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLThBMi41IDIuNSAwIDAgMSAyIDExLjVabTguNS0uNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0xIDB2LjhsLTEuNjUtMS42NWEuNS41IDAgMCAwLS43LjdMMTEuMjkgMTFoLS43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFeGl0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmVFeGl0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNyA3YTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNVptMi0yaDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDMgMTEuNVY4SDJ2My41QTIuNSAyLjUgMCAwIDAgNC41IDE0aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di01QTIuNSAyLjUgMCAwIDAgMTIuNSA0SDl2MVptMiA0LjN2LS44YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaC44TDguNjQgOC4zNWEuNS41IDAgMSAxIC43LS43TDExIDkuMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWN0dXJlSW5QaWN0dXJlRXhpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpY3R1cmVJblBpY3R1cmVFeGl0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRDMTAgMi42NyA5LjMzIDIgOC41IDJoLTZDMS42NyAyIDEgMi42NyAxIDMuNXY0QTEuNSAxLjUgMCAwIDAgMi41IDloNlptMCAxaC02Yy0uMTcgMC0uMzQtLjAyLS41LS4wNXY0LjNBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTdoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMTggMTQuMjV2LTYuNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNUgxMXYyLjVBMi41IDIuNSAwIDAgMSA4LjUgMTBabTMuODUuNjVMMTUgMTMuMjlWMTEuNWEuNS41IDAgMCAxIDEgMHYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxIDAtMWgxLjhsLTIuNjUtMi42NWEuNS41IDAgMCAxIC43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZUV4aXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUV4aXQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRDMTAgMi42NyA5LjMzIDIgOC41IDJoLTZDMS42NyAyIDEgMi42NyAxIDMuNXY0YzAgLjY1LjQyIDEuMiAxIDEuNDFsLjAyLjAxYy4xNS4wNS4zMS4wOC40OC4wOGg2Wm02Ljc1LTNIMTFWNWg0LjI1QTIuNzUgMi43NSAwIDAgMSAxOCA3Ljc1djYuNUEyLjc1IDIuNzUgMCAwIDEgMTUuMjUgMTdINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxNC4yNXYtNC4zYy4xNi4wMy4zMy4wNS41LjA1SDN2NC4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNi41QzE3IDYuNzggMTYuMjIgNiAxNS4yNSA2Wk0xNCAxMi4zbC0yLjY1LTIuNjVhLjUuNSAwIDAgMC0uNy43TDEzLjI5IDEzSDExLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtMSAwdjEuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpY3R1cmVJblBpY3R1cmVFeGl0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUV4aXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwIDExYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDNhMiAyIDAgMCAwLTIgMnY1YTIgMiAwIDAgMCAyIDJoN1ptMCAxSDNhMyAzIDAgMCAxLTEtLjE3djUuOTJDMiAxOS41NSAzLjQ2IDIxIDUuMjUgMjFoMTMuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di05LjVDMjIgNi40NSAyMC41NCA1IDE4Ljc1IDVIMTN2NGEzIDMgMCAwIDEtMyAzWm00LjI1IDRoMS42OWwtMi43Mi0yLjcyYS43NS43NSAwIDEgMSAxLjA2LTEuMDZMMTcgMTQuOTR2LTEuNjlhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGljdHVyZUluUGljdHVyZUV4aXQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGljdHVyZUluUGljdHVyZUV4aXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMCAxMWEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgzYTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDAgMiAyaDdabTguNzUtNC41SDEzVjVoNS43NUMyMC41NSA1IDIyIDYuNDYgMjIgOC4yNXY5LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE3Ljc1di01LjkyQTMgMyAwIDAgMCAzIDEyaC41djUuNzVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTMuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTkuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVaTTE1Ljk0IDE2aC0xLjY5YS43NS43NSAwIDAgMCAwIDEuNWgzLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTMuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS42OWwtMi43Mi0yLjcyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMTUuOTQgMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWxsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlsbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAzLjA1QTMuNSAzLjUgMCAxIDEgMTIuOTUgOEw4IDEyLjk1QTMuNSAzLjUgMCAwIDEgMy4wNSA4TDggMy4wNVptMi4xMiA2LjM2IDIuMTItMi4xMmEyLjUgMi41IDAgMCAwLTMuNTMtMy41M0w2LjU5IDUuODhsMy41MyAzLjUzWm0tMi4yNyAxLjQ0YS41LjUgMCAxIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDEgMCAuNy43bDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWxsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpbGwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03LjM1IDEwLjM1YS41LjUgMCAxIDAtLjctLjdsLTEuNSAxLjVhLjUuNSAwIDEgMCAuNy43bDEuNS0xLjVabTUuNi03LjNhMy41IDMuNSAwIDAgMC00Ljk1IDBMMy4wNSA4QTMuNSAzLjUgMCAxIDAgOCAxMi45NUwxMi45NSA4YTMuNSAzLjUgMCAwIDAgMC00Ljk1Wk01Ljg4IDYuNmwzLjUzIDMuNTMtMi4xMiAyLjEyYTIuNSAyLjUgMCAwIDEtMy41My0zLjUzbDIuMTItMi4xMlptNi4zNi43LTIuMTIgMi4xMkw2LjYgNS44OCA4LjcgMy43NmEyLjUgMi41IDAgMSAxIDMuNTMgMy41M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWxsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMS4xNSAzLjE1YTQuMDQgNC4wNCAwIDEgMSA1LjcgNS43bC04IDhhNC4wNCA0LjA0IDAgMSAxLTUuNy01LjdsOC04Wm01IC43YTMuMDQgMy4wNCAwIDAgMC00LjMgMEw4LjIxIDcuNWw0LjI5IDQuMyAzLjY1LTMuNjVhMy4wNCAzLjA0IDAgMCAwIDAtNC4zWm0tNy4zIDEwLjNhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41YS45MS45MSAwIDAgMS0xLjMgMCAuNS41IDAgMCAwLS44NS4zNWMwIC4xNC4wNi4yNy4xNS4zNi43NS43NCAxLjk2Ljc0IDIuNyAwbDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguODUgMTMuMTVjLjIuMi4yLjUgMCAuN2wtMS41IDEuNWMtLjc0Ljc1LTEuOTUuNzUtMi43IDBBLjUuNSAwIDAgMSA1IDE0LjVhLjUuNSAwIDAgMSAuMzUuMTVjLjM2LjM1Ljk0LjM1IDEuMyAwbDEuNS0xLjVjLjItLjIuNS0uMi43IDBabTIuMy0xMGE0LjA0IDQuMDQgMCAxIDEgNS43IDUuN2wtOCA4YTQuMDQgNC4wNCAwIDEgMS01LjctNS43bDgtOFptNSAuN2EzLjA0IDMuMDQgMCAwIDAtNC4zIDBMOC4yMSA3LjVsNC4yOSA0LjMgMy42NS0zLjY1YTMuMDQgMy4wNCAwIDAgMCAwLTQuM1ptLTQuMzYgOC42NUw3LjUgOC4ybC0zLjY1IDMuNjVhMy4wNCAzLjA0IDAgMCAwIDQuMyA0LjNsMy42NC0zLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgUGlsbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpbGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjMgMy41M2E1LjA3IDUuMDcgMCAxIDEgNy4xNyA3LjE3bC05Ljc3IDkuNzdhNS4wNyA1LjA3IDAgMCAxLTcuMTgtNy4xN2w5Ljc4LTkuNzdabTYuMTEgMS4wNmEzLjU3IDMuNTcgMCAwIDAtNS4wNSAwTDEwIDguOTQgMTUuMDUgMTRsNC4zNi00LjM1YTMuNTcgMy41NyAwIDAgMCAwLTUuMDVabS04LjYgMTMuNjlhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkw4LjMgMTguNjZhMS41IDEuNSAwIDAgMS0yLjEuMDJsLS4wMi0uMDJhLjc1Ljc1IDAgMSAwLTEuMDQgMS4wOGwuMDIuMDJhMyAzIDAgMCAwIDQuMi0uMDRsMS40NC0xLjQ0WlwiXSk7XG5leHBvcnQgY29uc3QgUGlsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWxsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuNTMgMTUuNDdjLjMuMy4zLjc3IDAgMS4wNmwtMiAyYy0uODQuODQtMi4yLjg1LTMuMDUgMEEuNzUuNzUgMCAwIDEgNiAxNy4yNmMuMiAwIC40LjA4LjUzLjIyLjI2LjI2LjY4LjI2Ljk0IDBsMi0yYy4zLS4zLjc3LS4zIDEuMDYgMFpNMTMuMyAzLjUzYTUuMDcgNS4wNyAwIDEgMSA3LjE3IDcuMTdsLTkuNzcgOS43N2E1LjA3IDUuMDcgMCAwIDEtNy4xOC03LjE3bDkuNzgtOS43N1ptNi4xMSAxLjA2YTMuNTcgMy41NyAwIDAgMC01LjA1IDBMMTAgOC45NCAxNS4wNSAxNGw0LjM2LTQuMzVhMy41NyAzLjU3IDAgMCAwIDAtNS4wNVpNMTQgMTUuMDYgOC45NCAxMCA0LjYgMTQuMzZhMy41NyAzLjU3IDAgMSAwIDUuMDUgNS4wNWw0LjM1LTQuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaWxsMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlsbDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTUuNzggMy43NGE2IDYgMCAwIDEgOC40OCA4LjVMMTIuMjIgMjQuMjZhNiA2IDAgMCAxLTguNDgtOC41TDE1Ljc4IDMuNzRabTEuOTMgMTIuOTEgNS40OS01LjQ4YTQuNSA0LjUgMCAwIDAtNi4zNi02LjM2bC01LjUgNS40OCA2LjM3IDYuMzZabS01LjkzIDQuNjNhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkw4Ljc0IDIyLjJjLS40LjQtMS4wNy40LTEuNDggMGwtLjQ4LS40OGEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bC40OC40OGMxIDEgMi42IDEgMy42IDBsMS45OC0xLjk4WlwiXSk7XG5leHBvcnQgY29uc3QgUGlsbDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaWxsMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTEuNzggMjAuMjhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkw4Ljc0IDIxLjJjLS40LjQtMS4wNy40LTEuNDggMGwtLjQ4LS40OGEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bC40OC40OGMxIDEgMi42IDEgMy42IDBsMS45OC0xLjk4Wk0yNC4yNSAzLjc1YTYgNiAwIDAgMC04LjQ3IDBMMy43NCAxNS43NWE2IDYgMCAwIDAgOC40OCA4LjVsMTIuMDQtMTIuMDJhNiA2IDAgMCAwIDAtOC40OVptLTEzLjk2IDcuNiA2LjM2IDYuMzYtNS40OSA1LjQ4YTQuNSA0LjUgMCAwIDEtNi4zNi02LjM2bDUuNDktNS40OFptMTIuOS0uMTgtNS40OCA1LjQ4LTYuMzYtNi4zNiA1LjQ5LTUuNDhhNC41IDQuNSAwIDAgMSA2LjM2IDYuMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW4xMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW4xMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTguMDUgMS40NGExLjUgMS41IDAgMCAwLTIuMzguMzRMNC4xNCA0LjYxbC0yLjMzLjkzYS41LjUgMCAwIDAtLjE2LjgxTDMuMjkgOGwtMi4xNCAyLjE1TDEgMTFsLjg1LS4xNUw0IDguNzFsMS42NSAxLjY0YS41LjUgMCAwIDAgLjgxLS4xNmwuOTQtMi4zNCAyLjgyLTEuNTJhMS41IDEuNSAwIDAgMCAuMzQtMi4zOGwtMi41LTIuNTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW4xMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNOC4wNSAxLjQ0YTEuNSAxLjUgMCAwIDAtMi4zOC4zNEw0LjE0IDQuNjFsLTIuMzMuOTNhLjUuNSAwIDAgMC0uMTYuODFMMy4yOSA4bC0yLjE0IDIuMTVMMSAxMWwuODUtLjE1TDQgOC43MWwxLjY1IDEuNjRhLjUuNSAwIDAgMCAuODEtLjE2bC45NC0yLjM0IDIuODItMS41MmExLjUgMS41IDAgMCAwIC4zNC0yLjM4bC0yLjUtMi41MVptLTEuNS44MmEuNS41IDAgMCAxIC44LS4xMmwyLjUgMi41MmEuNS41IDAgMCAxLS4xLjc5TDYuNzUgNy4wNmEuNS41IDAgMCAwLS4yMi4yNWwtLjcyIDEuOC0yLjkzLTIuOTMgMS44LS43MWEuNS41IDAgMCAwIC4yNS0uMjNsMS42MS0yLjk4WlwiXSk7XG5leHBvcnQgY29uc3QgUGluMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMC4wNiAyLjQ1YTEuNSAxLjUgMCAwIDAtMi4zOS4zNUw1LjY1IDYuNTlsLTIuOC45NGEuNS41IDAgMCAwLS4yLjgybDIuMTQgMi4xNS0yLjY0IDIuNjVMMiAxNGwuODUtLjE1IDIuNjUtMi42NCAyLjE1IDIuMTRhLjUuNSAwIDAgMCAuODItLjJsLjk0LTIuOCAzLjc4LTIuMDNhMS41IDEuNSAwIDAgMCAuMzUtMi4zOGwtMy40OC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW4xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTAuMDYgMi40NWExLjUgMS41IDAgMCAwLTIuMzkuMzVMNS42NSA2LjU5bC0yLjguOTRhLjUuNSAwIDAgMC0uMi44MmwyLjE0IDIuMTUtMi42NCAyLjY1TDIgMTRsLjg1LS4xNSAyLjY1LTIuNjQgMi4xNSAyLjE0YS41LjUgMCAwIDAgLjgyLS4ybC45NC0yLjggMy43OC0yLjAzYTEuNSAxLjUgMCAwIDAgLjM1LTIuMzhsLTMuNDgtMy41Wm0tMS41LjgyYS41LjUgMCAwIDEgLjgtLjEybDMuNDggMy41YS41LjUgMCAwIDEtLjEyLjhsLTMuOTYgMi4xYS41LjUgMCAwIDAtLjIzLjNsLS43NSAyLjIyLTMuODUtMy44NSAyLjIzLS43NWEuNS41IDAgMCAwIC4yOC0uMjNsMi4xMi0zLjk3WlwiXSk7XG5leHBvcnQgY29uc3QgUGluMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMy4zMyAyLjYyYTIgMiAwIDAgMC0zLjIuNTJMOC4zOCA2LjZhMS41IDEuNSAwIDAgMS0uNzguNzJMNCA4Ljc1YTEgMSAwIDAgMC0uMzMgMS42NGwyLjYxIDIuNkwzIDE2LjN2LjdoLjdMNyAxMy43MmwyLjYxIDIuNmExIDEgMCAwIDAgMS42NC0uMzNsMS40My0zLjU5Yy4xNC0uMzQuNC0uNjIuNzItLjc4bDMuNDYtMS43M2EyIDIgMCAwIDAgLjUyLTMuMmwtNC4wNS00LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgUGluMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjEyIDMuMTRhMiAyIDAgMCAxIDMuMi0uNTJsNC4wNiA0LjA1YTIgMiAwIDAgMS0uNTIgMy4ybC0zLjQ2IDEuNzRhMS41IDEuNSAwIDAgMC0uNzIuNzhMMTEuMjUgMTZhMSAxIDAgMCAxLTEuNjQuMzNMNyAxMy43IDMuNyAxN0gzdi0uN0w2LjMgMTNsLTIuNjItMi42MWExIDEgMCAwIDEgLjM0LTEuNjRMNy42IDcuMzJjLjM0LS4xNC42Mi0uNC43OC0uNzJsMS43My0zLjQ2Wm0yLjUuMThhMSAxIDAgMCAwLTEuNi4yNkw5LjI5IDcuMDRhMi41IDIuNSAwIDAgMS0xLjMxIDEuMkw0LjM5IDkuNjlsNS45MyA1LjkzIDEuNDMtMy41OWEyLjUgMi41IDAgMCAxIDEuMi0xLjNsMy40Ni0xLjc0YTEgMSAwIDAgMCAuMjYtMS42bC00LjA1LTQuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW4yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW4yNEZpbGxlZCcsIFwiMjRcIiwgW1wibTIxLjA3IDcuNzYtNC44My00LjgzYTIuNzUgMi43NSAwIDAgMC00LjQuNzJMOS40IDguNTJhLjc1Ljc1IDAgMCAxLS40Mi4zN0w0LjggMTAuMzNhMS4yNSAxLjI1IDAgMCAwLS40OCAyLjA3bDMuMSAzLjFMMyAxOS45NFYyMWgxLjA2bDQuNDQtNC40NCAzLjEgMy4xYy42Ni42NiAxLjc3LjQgMi4wNy0uNDdsMS40NC00LjE3Yy4wNi0uMTguMi0uMzMuMzctLjQybDQuODctMi40NGEyLjc1IDIuNzUgMCAwIDAgLjcyLTQuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW4yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIm0xNi4yNCAyLjkzIDQuODMgNC44M2EyLjc1IDIuNzUgMCAwIDEtLjcyIDQuNGwtNC44NyAyLjQ0YS43NS43NSAwIDAgMC0uMzcuNDJsLTEuNDQgNC4xN2ExLjI1IDEuMjUgMCAwIDEtMi4wNy40OGwtMy4xLTMuMUw0LjA2IDIxSDN2LTEuMDZsNC40NC00LjQ0LTMuMS0zLjFjLS42Ni0uNjYtLjQtMS43Ny40Ny0yLjA3bDQuMTctMS40NGMuMTgtLjA2LjM0LS4yLjQyLS4zN2wyLjQ0LTQuODdhMi43NSAyLjc1IDAgMCAxIDQuNC0uNzJabTMuNzcgNS44OS00LjgzLTQuODNjLS42LS42LTEuNjItLjQ0LTIgLjMzbC0yLjQ0IDQuODdjLS4yNi41Mi0uNzIuOTMtMS4yNyAxLjEybC0zLjggMS4zIDYuNzEgNi43MSAxLjMxLTMuNzljLjItLjU1LjYtMS4wMSAxLjEyLTEuMjdsNC44Ny0yLjQ0Yy43Ny0uMzguOTMtMS40LjMzLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW4yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW4yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE5LjA0IDMuNDhhMy4yNSAzLjI1IDAgMCAwLTUuMjQuOWwtMi41NSA1LjRjLS4yLjQtLjUzLjcyLS45NS44OGwtNC4xMyAxLjU5YTEuNzUgMS43NSAwIDAgMC0uNjEgMi44N2wzLjEzIDMuMTNMMyAyMy45NFYyNWgxLjA2bDUuNjktNS42OSAzLjEzIDMuMTNjLjkuOSAyLjQyLjU3IDIuODctLjZsMS42LTQuMTRjLjE1LS40Mi40Ny0uNzYuODgtLjk1bDUuMzgtMi41NWEzLjI1IDMuMjUgMCAwIDAgLjkxLTUuMjRsLTUuNDgtNS40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW4yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMy44IDQuMzhhMy4yNSAzLjI1IDAgMCAxIDUuMjQtLjlsNS40OCA1LjQ4YTMuMjUgMy4yNSAwIDAgMS0uOSA1LjI0bC01LjQgMi41NWMtLjQuMi0uNzIuNTMtLjg4Ljk1bC0xLjU5IDQuMTNhMS43NSAxLjc1IDAgMCAxLTIuODcuNjFsLTMuMTMtMy4xM0w0LjA2IDI1SDN2LTEuMDZsNS42OS01LjY5LTMuMTMtMy4xM2MtLjktLjktLjU4LTIuNDIuNi0yLjg3bDQuMTQtMS42Yy40Mi0uMTUuNzYtLjQ3Ljk1LS44OGwyLjU1LTUuMzlabTQuMTguMTZjLS44Ni0uODYtMi4zLS42LTIuODIuNDlsLTIuNTUgNS4zOWMtLjM2Ljc1LTEgMS4zNC0xLjc3IDEuNjRMNi43IDEzLjY1YS4yNS4yNSAwIDAgMC0uMS40bDcuMzMgNy4zM2MuMTMuMTMuMzUuMDguNDEtLjA5bDEuNi00LjEzYy4zLS43Ny44OC0xLjQgMS42My0xLjc3bDUuNC0yLjU1YTEuNzUgMS43NSAwIDAgMCAuNDgtMi44MmwtNS40OC01LjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgUGluMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNS43NCA0LjI4YTQgNCAwIDAgMSA2LjQxLTEuMDRsNi42MSA2LjYxYTQgNCAwIDAgMS0xLjA0IDYuNGwtNi4zNSAzLjE4YTEuNSAxLjUgMCAwIDAtLjc1Ljg3bC0xLjY2IDQuOThhMiAyIDAgMCAxLTMuMzEuNzhsLTQuMTUtNC4xNS02LjA5IDYuMUg0di0xLjQybDYuMDktNi4wOS00LjE1LTQuMTVhMiAyIDAgMCAxIC43OC0zLjMxbDQuOTgtMS42NmMuMzgtLjEzLjctLjQuODctLjc1bDMuMTctNi4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbjMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMzJMaWdodCcsIFwiMzJcIiwgW1wiTTIyLjI1IDMuMTZhMy41IDMuNSAwIDAgMC01LjYyLjhsLTMuNjkgNy4wN2MtLjE4LjM2LS41LjYyLS44OC43NGwtNS42MyAxLjc2YTEuNSAxLjUgMCAwIDAtLjYxIDIuNWw0LjcyIDQuNzJMNCAyNy4yOVYyOGguN2w2LjU1LTYuNTQgNC43MyA0LjcyYy44LjggMi4xNS40NyAyLjQ5LS42bDEuNzUtNS42Yy4xMi0uNC40LS43My43OC0uOWw2Ljk3LTMuMzRhMy41IDMuNSAwIDAgMCAxLjAxLTUuNThsLTYuNzMtN1ptLTQuNzQgMS4yN2EyLjUgMi41IDAgMCAxIDQuMDItLjU4bDYuNzMgN2EyLjUgMi41IDAgMCAxLS43MiA0bC02Ljk3IDMuMzJjLS42My4zLTEuMS44NS0xLjMgMS41MWwtMS43NSA1LjZhLjUuNSAwIDAgMS0uODQuMkw2LjUyIDE1LjMyYS41LjUgMCAwIDEgLjItLjg0bDUuNjQtMS43NmEyLjUgMi41IDAgMCAwIDEuNDctMS4yMmwzLjY4LTcuMDdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW4zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjIuMTUgMy4yNGE0IDQgMCAwIDAtNi40IDEuMDRsLTMuMTggNi4zNWExLjUgMS41IDAgMCAxLS44Ny43NWwtNC45OCAxLjY2YTIgMiAwIDAgMC0uNzggMy4zMWw0LjE1IDQuMTVMNCAyNi42VjI4aDEuNDFsNi4wOS02LjA5IDQuMTUgNC4xNWEyIDIgMCAwIDAgMy4zMS0uNzhsMS42Ni00Ljk4Yy4xMy0uMzguNC0uNjkuNzUtLjg3bDYuMzUtMy4xN2E0IDQgMCAwIDAgMS4wNC02LjQxbC02LjYxLTYuNjFabS00LjYyIDEuOTNhMiAyIDAgMCAxIDMuMi0uNTJsNi42MiA2LjYxYTIgMiAwIDAgMS0uNTIgMy4ybC02LjM1IDMuMThhMy41IDMuNSAwIDAgMC0xLjc2IDIuMDNsLTEuNjYgNC45OC05LjctOS43MSA0Ljk3LTEuNjZhMy41IDMuNSAwIDAgMCAyLjAzLTEuNzZsMy4xNy02LjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUGluNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIm0zMS44MiA1LjU1IDEwLjYzIDEwLjYzYTQuNzUgNC43NSAwIDAgMS0xLjIzIDcuNjFsLTEwLjU1IDUuMjdjLS4zLjE1LS41MS40LS42Mi43MWwtMi42OSA3Ljc3YTIuNzUgMi43NSAwIDAgMS00LjU0IDEuMDVMMTcgMzIuNzcgNy43NyA0Mkg2di0xLjc3TDE1LjIzIDMxbC01LjgyLTUuODJhMi43NSAyLjc1IDAgMCAxIDEuMDUtNC41NGw3Ljc3LTIuNjljLjMtLjEuNTYtLjMzLjctLjYybDUuMjgtMTAuNTVhNC43NSA0Ljc1IDAgMCAxIDcuNi0xLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgUGluNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpbjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTQyLjQ1IDE2LjE4IDMxLjgyIDUuNTVhNC43NSA0Ljc1IDAgMCAwLTcuNjEgMS4yM2wtNS4yNyAxMC41NWMtLjE1LjMtLjQuNTItLjcxLjYybC03Ljc3IDIuNjlhMi43NSAyLjc1IDAgMCAwLTEuMDUgNC41NEwxNS4yMyAzMSA2IDQwLjIzVjQyaDEuNzdMMTcgMzIuNzdsNS44MiA1LjgyYTIuNzUgMi43NSAwIDAgMCA0LjU0LTEuMDVsMi42OS03Ljc3Yy4xLS4zLjMzLS41Ni42Mi0uN2wxMC41NS01LjI4YTQuNzUgNC43NSAwIDAgMCAxLjIzLTcuNlptLTEyLjQtOC44NiAxMC42MyAxMC42M2EyLjI1IDIuMjUgMCAwIDEtLjU4IDMuNmwtMTAuNTUgNS4yOGEzLjc1IDMuNzUgMCAwIDAtMS44NiAyLjEzTDI1IDM2LjczYS4yNS4yNSAwIDAgMS0uNDEuMUwxMS4xOCAyMy40YS4yNS4yNSAwIDAgMSAuMS0uNDFsNy43Ni0yLjY5Yy45My0uMzIgMS43LS45OSAyLjEzLTEuODZMMjYuNDUgNy45YTIuMjUgMi4yNSAwIDAgMSAzLjYtLjU4WlwiXSk7XG5leHBvcnQgY29uc3QgUGluR2xvYmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5HbG9iZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTAuMDYgMS40NWExLjUgMS41IDAgMCAwLTIuMzkuMzVMNS42NSA1LjU5bC0yLjguOTRhLjUuNSAwIDAgMC0uMi44Mkw0Ljc5IDkuNWwtMi42NCAyLjY1TDIgMTNsLjg1LS4xNSAyLjY1LTIuNjQuNTUuNTVhNS41IDUuNSAwIDAgMSA3LjgzLTQuMjJjLjItLjUzLjEtMS4xNS0uMzQtMS42bC0zLjQ4LTMuNVptLjQ5IDYuN2E4LjkgOC45IDAgMCAwLS41NCAyLjg1aDIuOThhOC45IDguOSAwIDAgMC0uNTQtMi44NSAyLjkzIDIuOTMgMCAwIDAtLjUzLS45MWMtLjE5LS4yLS4zMy0uMjQtLjQyLS4yNC0uMSAwLS4yMy4wNS0uNDIuMjQtLjE4LjE5LS4zNi41LS41My45MVptLS43Mi0uODNBOS45MiA5LjkyIDAgMCAwIDkgMTFINy4wM2E0LjUgNC41IDAgMCAxIDIuOC0zLjY4Wm0zLjM0IDBhOS45MiA5LjkyIDAgMCAxIC44MiAzLjY4aDEuOThhNC41IDQuNSAwIDAgMC0yLjgtMy42OFptMi44IDQuNjhIMTRhOS45MiA5LjkyIDAgMCAxLS44MiAzLjY4IDQuNSA0LjUgMCAwIDAgMi44LTMuNjhabS00LjQ3IDRjLjEgMCAuMjMtLjA1LjQyLS4yNC4xOC0uMTkuMzYtLjUuNTMtLjkxLjMtLjczLjUtMS43Mi41NC0yLjg1aC0yLjk4YTguOSA4LjkgMCAwIDAgLjU0IDIuODVjLjE3LjQyLjM1LjcyLjUzLjkxLjE5LjIuMzMuMjQuNDIuMjRabS0xLjY3LS4zMkE0LjUgNC41IDAgMCAxIDcuMDMgMTJIOWE5LjkyIDkuOTIgMCAwIDAgLjgyIDMuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5HbG9iZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5HbG9iZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEwLjA2IDEuNDVhMS41IDEuNSAwIDAgMC0yLjM5LjM1TDUuNjUgNS41OWwtMi44Ljk0YS41LjUgMCAwIDAtLjIuODJMNC43OSA5LjVsLTIuNjQgMi42NUwyIDEzbC44NS0uMTUgMi42NS0yLjY0LjU1LjU1Yy4wNS0uNC4xNS0uNzguMjgtMS4xNGwtMi40LTIuNCAyLjIzLS43NWEuNS41IDAgMCAwIC4yOC0uMjNsMi4xMi0zLjk3YS41LjUgMCAwIDEgLjgtLjEybDMuNDggMy41YS41LjUgMCAwIDEgLjEuNTRjLjMzLjA5LjY0LjIuOTQuMzUuMi0uNTMuMS0xLjE1LS4zNC0xLjZsLTMuNDgtMy41Wm0uNDkgNi43YTguOSA4LjkgMCAwIDAtLjU0IDIuODVoMi45OGE4LjkgOC45IDAgMCAwLS41NC0yLjg1IDIuOTMgMi45MyAwIDAgMC0uNTMtLjkxYy0uMTktLjItLjMzLS4yNC0uNDItLjI0LS4xIDAtLjIzLjA1LS40Mi4yNC0uMTguMTktLjM2LjUtLjUzLjkxWm0tLjcyLS44M0E5LjkyIDkuOTIgMCAwIDAgOSAxMUg3LjAzYTQuNSA0LjUgMCAwIDEgMi44LTMuNjhabTMuMzQgMGE5LjkyIDkuOTIgMCAwIDEgLjgyIDMuNjhoMS45OGE0LjUgNC41IDAgMCAwLTIuOC0zLjY4Wm0yLjggNC42OEgxNGE5LjkyIDkuOTIgMCAwIDEtLjgyIDMuNjggNC41IDQuNSAwIDAgMCAyLjgtMy42OFptLTQuNDcgNGMuMSAwIC4yMy0uMDUuNDItLjI0LjE4LS4xOS4zNi0uNS41My0uOTEuMy0uNzMuNS0xLjcyLjU0LTIuODVoLTIuOThhOC45IDguOSAwIDAgMCAuNTQgMi44NWMuMTcuNDIuMzUuNzIuNTMuOTEuMTkuMi4zMy4yNC40Mi4yNFptLTEuNjctLjMyQTQuNSA0LjUgMCAwIDEgNy4wMyAxMkg5YTkuOTIgOS45MiAwIDAgMCAuODIgMy42OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbkdsb2JlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluR2xvYmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzLjMzIDIuNjJhMiAyIDAgMCAwLTMuMi41Mkw4LjM4IDYuNmExLjUgMS41IDAgMCAxLS43OC43Mkw0IDguNzVhMSAxIDAgMCAwLS4zMyAxLjY0TDYuMyAxMyAzIDE2LjN2LjdoLjdMNyAxMy43bDIuMTggMi4xOGE1LjUxIDUuNTEgMCAwIDEgNy45OS02LjIgMiAyIDAgMCAwIC4yMS0zbC00LjA1LTQuMDZabS4yMiA4LjUzYTguOSA4LjkgMCAwIDAtLjU0IDIuODVoMi45OGE4LjkgOC45IDAgMCAwLS41NC0yLjg1IDIuOTMgMi45MyAwIDAgMC0uNTMtLjkxYy0uMTktLjItLjMzLS4yNC0uNDItLjI0LS4xIDAtLjIzLjA1LS40Mi4yNC0uMTguMTktLjM2LjUtLjUzLjkxWm0tLjcyLS44M0E5LjkyIDkuOTIgMCAwIDAgMTIgMTRoLTEuOThhNC41IDQuNSAwIDAgMSAyLjgtMy42OFptMy4zNCAwYTkuOTIgOS45MiAwIDAgMSAuODIgMy42OGgxLjk4YTQuNSA0LjUgMCAwIDAtMi44LTMuNjhabTIuOCA0LjY4SDE3YTkuOTIgOS45MiAwIDAgMS0uODIgMy42OCA0LjUgNC41IDAgMCAwIDIuOC0zLjY4Wm0tNC40NyA0Yy4xIDAgLjIzLS4wNS40Mi0uMjQuMTgtLjE5LjM2LS41LjUzLS45MS4zLS43My41LTEuNzIuNTQtMi44NWgtMi45OGE4LjkgOC45IDAgMCAwIC41NCAyLjg1Yy4xNy40Mi4zNS43Mi41My45MS4xOS4yLjMzLjI0LjQyLjI0Wm0tMS42Ny0uMzJhNC41IDQuNSAwIDAgMS0yLjgtMy42OEgxMmE5LjkyIDkuOTIgMCAwIDAgLjgyIDMuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5HbG9iZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5HbG9iZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjEyIDMuMTRhMiAyIDAgMCAxIDMuMi0uNTJsNC4wNiA0LjA1YTIgMiAwIDAgMS0uMjEgMy4wMmMtLjM3LS4yLS43Ny0uMzctMS4yLS40OWwuNDQtLjIyYTEgMSAwIDAgMCAuMjYtMS42bC00LjA1LTQuMDZhMSAxIDAgMCAwLTEuNi4yNkw5LjI5IDcuMDRhMi41IDIuNSAwIDAgMS0xLjMxIDEuMkw0LjM5IDkuNjkgOSAxNC4zYTUuNiA1LjYgMCAwIDAgLjE4IDEuNThMNyAxMy43MSAzLjcgMTdIM3YtLjdMNi4zIDEzbC0yLjYyLTIuNjFhMSAxIDAgMCAxIC4zNC0xLjY0TDcuNiA3LjMyYy4zNC0uMTQuNjItLjQuNzgtLjcybDEuNzMtMy40NlptMy40MyA4LjAxYTguOSA4LjkgMCAwIDAtLjU0IDIuODVoMi45OGE4LjkgOC45IDAgMCAwLS41NC0yLjg1IDIuOTMgMi45MyAwIDAgMC0uNTMtLjkxYy0uMTktLjItLjMzLS4yNC0uNDItLjI0LS4xIDAtLjIzLjA1LS40Mi4yNC0uMTguMTktLjM2LjUtLjUzLjkxWm0tLjcyLS44M0E5LjkyIDkuOTIgMCAwIDAgMTIgMTRoLTEuOThhNC41IDQuNSAwIDAgMSAyLjgtMy42OFptMy4zNCAwYTkuOTIgOS45MiAwIDAgMSAuODIgMy42OGgxLjk4YTQuNSA0LjUgMCAwIDAtMi44LTMuNjhabTIuOCA0LjY4SDE3YTkuOTIgOS45MiAwIDAgMS0uODIgMy42OCA0LjUgNC41IDAgMCAwIDIuOC0zLjY4Wm0tNC40NyA0Yy4xIDAgLjIzLS4wNS40Mi0uMjQuMTgtLjE5LjM2LS41LjUzLS45MS4zLS43My41LTEuNzIuNTQtMi44NWgtMi45OGE4LjkgOC45IDAgMCAwIC41NCAyLjg1Yy4xNy40Mi4zNS43Mi41My45MS4xOS4yLjMzLjI0LjQyLjI0Wm0tMS42Ny0uMzJhNC41IDQuNSAwIDAgMS0yLjgtMy42OEgxMmE5LjkyIDkuOTIgMCAwIDAgLjgyIDMuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5PZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTkuNTYgMTAuMjcgNC41OSA0LjU4YS41LjUgMCAwIDAgLjctLjdsLTEzLTEzYS41LjUgMCAxIDAtLjcuN2w0LjU4IDQuNTktLjA4LjE1LTIuOC45NGEuNS41IDAgMCAwLS4yLjgybDIuMTQgMi4xNS0yLjY0IDIuNjVMMiAxNGwuODUtLjE1IDIuNjUtMi42NCAyLjE1IDIuMTRhLjUuNSAwIDAgMCAuODItLjJsLjk0LTIuOC4xNS0uMDhabTMuNjMtMS45NS0xLjc5Ljk2TDYuNzIgNC42bC45NS0xLjhhMS41IDEuNSAwIDAgMSAyLjM5LS4zNGwzLjQ4IDMuNWMuNzEuNy41NCAxLjktLjM1IDIuMzdaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5PZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluT2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtOS41NiAxMC4yNyA0LjU5IDQuNThhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43bDQuNTggNC41OS0uMDguMTUtMi44Ljk0YS41LjUgMCAwIDAtLjIuODJsMi4xNCAyLjE1LTIuNjQgMi42NUwyIDE0bC44NS0uMTUgMi42NS0yLjY0IDIuMTUgMi4xNGEuNS41IDAgMCAwIC44Mi0uMmwuOTQtMi44LjE1LS4wOFptLS43NC0uNzQtLjA2LjAzYS41LjUgMCAwIDAtLjIzLjI4bC0uNzUgMi4yMy0zLjg1LTMuODUgMi4yMy0uNzVhLjUuNSAwIDAgMCAuMjgtLjIzbC4wMy0uMDYgMi4zNSAyLjM1Wm0zLjktMi4wOS0yLjA2IDEuMS43NC43NCAxLjc5LS45NmExLjUgMS41IDAgMCAwIC4zNS0yLjM4bC0zLjQ4LTMuNWExLjUgMS41IDAgMCAwLTIuMzkuMzZsLS45NSAxLjguNzMuNzMgMS4xLTIuMDZhLjUuNSAwIDAgMSAuOC0uMTJsMy40OSAzLjVhLjUuNSAwIDAgMS0uMTIuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbk9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpbk9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN0w2LjkgNy42IDQuMDIgOC43NWExIDEgMCAwIDAtLjM0IDEuNjRMNi4zIDEzIDMgMTYuM3YuN2guN0w3IDEzLjdsMi42MSAyLjYyYTEgMSAwIDAgMCAxLjY0LS4zNGwxLjE1LTIuODggNC43NSA0Ljc1YS41LjUgMCAwIDAgLjctLjdsLTE1LTE1Wm0xNC4wMSA3LjczLTMuMjQgMS42Mkw4LjUgNi4zOGwxLjYyLTMuMjRhMiAyIDAgMCAxIDMuMi0uNTJsNC4wNiA0LjA1YTIgMiAwIDAgMS0uNTIgMy4yWlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpbk9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNi45IDcuNiA0LjAyIDguNzVhMSAxIDAgMCAwLS4zNCAxLjY0TDYuMyAxMyAzIDE2LjN2LjdoLjdMNyAxMy43bDIuNjEgMi42MmExIDEgMCAwIDAgMS42NC0uMzRsMS4xNS0yLjg4IDQuNzUgNC43NWEuNS41IDAgMCAwIC43LS43bC0xNS0xNVptOC43OCAxMC4xOC0xLjMxIDMuMjgtNS45My01LjkzIDMuMjgtMS4zIDMuOTYgMy45NVptMS4zMy0xLjYyLS4wOC4wNC43NC43NSAzLjI0LTEuNjJhMiAyIDAgMCAwIC41Mi0zLjJsLTQuMDUtNC4wNmEyIDIgMCAwIDAtMy4yLjUyTDguNSA2LjM4bC43NS43NC4wNC0uMDggMS43My0zLjQ1YTEgMSAwIDAgMSAxLjYtLjI2bDQuMDUgNC4wNWExIDEgMCAwIDEtLjI2IDEuNmwtMy40NSAxLjczWlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw1LjkgNS45LTMuMyAxLjE1YTEuMjUgMS4yNSAwIDAgMC0uNDkgMi4wN2wzLjEgMy4xTDMgMTkuOTRWMjFoMS4wNmw0LjQ0LTQuNDQgMy4xIDMuMWMuNjYuNjYgMS43Ny40IDIuMDctLjQ3bDEuMTQtMy4zMSA1LjkxIDUuOWEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptMTcuMDcgOS45NC0zLjM0IDEuNjdMMTAuMTcgN2wxLjY3LTMuMzRhMi43NSAyLjc1IDAgMCAxIDQuNC0uNzJsNC44MyA0LjgzYTIuNzUgMi43NSAwIDAgMS0uNzIgNC40WlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpbk9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDUuOSA1LjktMy4zIDEuMTVhMS4yNSAxLjI1IDAgMCAwLS40OSAyLjA3bDMuMSAzLjFMMyAxOS45NFYyMWgxLjA2bDQuNDQtNC40NCAzLjEgMy4xYy42Ni42NiAxLjc3LjQgMi4wNy0uNDdsMS4xNC0zLjMxIDUuOTEgNS45YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWk0xMy42NCAxNC43bC0xLjI2IDMuNjItNi43LTYuNyAzLjYyLTEuMjYgNC4zNCA0LjM0Wm02LjA0LTMuODgtMy43OCAxLjlMMTcgMTMuODJsMy4zNC0xLjY3YTIuNzUgMi43NSAwIDAgMCAuNzItNC40bC00LjgzLTQuODNhMi43NSAyLjc1IDAgMCAwLTQuNC43MmwtMS42NyAzLjM0IDEuMTIgMS4xMSAxLjg5LTMuNzhjLjM4LS43NyAxLjQtLjkzIDItLjMzbDQuODMgNC44M2MuNi42LjQ0IDEuNjItLjMzIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5PZmYyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmYyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDcuNTcgNy41Ny0zLjYyIDEuNGExLjc1IDEuNzUgMCAwIDAtLjYxIDIuODdsMy4xMyAzLjEzTDMgMjMuOTRWMjVoMS4wNmw1LjY5LTUuNjkgMy4xMyAzLjEzYy45LjkgMi40Mi41NyAyLjg3LS42bDEuNC0zLjYzIDcuNTcgNy41N2EuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptOC41MiA2LjQgNy41OCA3LjU4IDQuMjMtMmEzLjI1IDMuMjUgMCAwIDAgLjkxLTUuMjRsLTUuNDgtNS40OGEzLjI1IDMuMjUgMCAwIDAtNS4yNC45bC0yIDQuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5PZmYyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluT2ZmMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsNy41NyA3LjU3LTMuNjIgMS40YTEuNzUgMS43NSAwIDAgMC0uNjEgMi44N2wzLjEzIDMuMTNMMyAyMy45NFYyNWgxLjA2bDUuNjktNS42OSAzLjEzIDMuMTNjLjkuOSAyLjQyLjU3IDIuODctLjZsMS40LTMuNjMgNy41NyA3LjU3YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWm0xMi43IDE0LjgzYTMuNCAzLjQgMCAwIDAtLjA0LjExbC0xLjU5IDQuMTNhLjI1LjI1IDAgMCAxLS40LjFsLTcuMzMtNy4zM2EuMjUuMjUgMCAwIDEgLjA5LS40MWw0LjEzLTEuNmMuMDMgMCAuMDctLjAyLjExLS4wNEwxNiAxNy4wNVpNMTEuOCA4LjYybDEuMTMgMS4xMiAyLjIzLTQuNzFhMS43NSAxLjc1IDAgMCAxIDIuODItLjVsNS40OCA1LjVjLjg2Ljg1LjYgMi4zLS40OSAyLjgxbC00LjcxIDIuMjMgMS4xMiAxLjEzIDQuMjMtMmEzLjI1IDMuMjUgMCAwIDAgLjkxLTUuMjRsLTUuNDgtNS40OGEzLjI1IDMuMjUgMCAwIDAtNS4yNC45bC0yIDQuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQaW5PZmYzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmYzMkZpbGxlZCcsIFwiMzJcIiwgW1wibTIwLjE5IDIxLjYgOC4xIDguMWExIDEgMCAwIDAgMS40Mi0xLjRsLTI2LTI2YTEgMSAwIDAgMC0xLjQyIDEuNGw4LjEgOC4xMS0zLjY3IDEuMjNhMiAyIDAgMCAwLS43OCAzLjMxbDQuMTUgNC4xNUw0IDI2LjU5VjI4aDEuNDFsNi4wOS02LjA5IDQuMTUgNC4xNWEyIDIgMCAwIDAgMy4zMS0uNzhsMS4yMy0zLjY4Wm03LjUzLTUuMzQtNS4yOCAyLjY0LTkuMzQtOS4zNCAyLjY0LTUuMjhhNCA0IDAgMCAxIDYuNDEtMS4wNGw2LjYxIDYuNjFhNCA0IDAgMCAxLTEuMDQgNi40WlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmYzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2w5LjE1IDkuMTYtNC44NyAxLjUyYTEuNSAxLjUgMCAwIDAtLjYxIDIuNWw0LjcyIDQuNzJMNCAyNy4yOVYyOGguN2w2LjU1LTYuNTQgNC43MyA0LjcyYy44LjggMi4xNS40NyAyLjQ5LS42bDEuNTItNC44OCA5LjE2IDkuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMjctMjdaTTE5LjIgMTkuOWwtMS42NyA1LjM3YS41LjUgMCAwIDEtLjg0LjJMNi41MiAxNS4zM2EuNS41IDAgMCAxIC4yLS44NGw1LjM4LTEuNjcgNy4xIDcuMVptMS44MS0uODJhMS41IDEuNSAwIDAgMC0uMS4wNWwtLjcyLS43MmMuMTItLjEuMjUtLjE3LjM5LS4yNGw2Ljk3LTMuMzNhMi41IDIuNSAwIDAgMCAuNzItMy45OWwtNi43My03YTIuNSAyLjUgMCAwIDAtNC4wMi41OGwtMy42OCA3LjA3LS4yMi4zNC0uNzItLjcyLjA1LS4wOSAzLjY5LTcuMDZhMy41IDMuNSAwIDAgMSA1LjYyLS44bDYuNzMgNi45OWEzLjUgMy41IDAgMCAxLTEuMDEgNS41OEwyMSAxOS4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpbk9mZjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaW5PZmYzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIm0yMC4xOSAyMS42LTEuMjMgMy42OGEyIDIgMCAwIDEtMy4zMS43OGwtNC4xNS00LjE1TDUuNDEgMjhINHYtMS40MWw2LjA5LTYuMDktNC4xNS00LjE1YTIgMiAwIDAgMSAuNzgtMy4zMWwzLjY4LTEuMjMtOC4xLTguMWExIDEgMCAwIDEgMS40LTEuNDJsMjYgMjZhMSAxIDAgMCAxLTEuNCAxLjQybC04LjExLTguMVptLTEuNTgtMS41OC02LjYzLTYuNjMtNC42MyAxLjU1IDkuNzEgOS43IDEuNTUtNC42MlptOC4yMi01LjU1LTUuODkgMi45NCAxLjUgMS40OSA1LjI4LTIuNjRhNCA0IDAgMCAwIDEuMDQtNi40MWwtNi42LTYuNjFhNCA0IDAgMCAwLTYuNDIgMS4wNEwxMy4xIDkuNTZsMS41IDEuNSAyLjkzLTUuODlhMiAyIDAgMCAxIDMuMi0uNTJsNi42MiA2LjYxYTIgMiAwIDAgMS0uNTIgMy4yWlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGluT2ZmNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIm0yOS41MiAzMS4zIDEyLjEgMTIuMDhhMS4yNSAxLjI1IDAgMSAwIDEuNzYtMS43NmwtMzctMzdhMS4yNSAxLjI1IDAgMSAwLTEuNzYgMS43NmwxMi4wOSAxMi4xLTYuMjUgMi4xNmEyLjc1IDIuNzUgMCAwIDAtMS4wNSA0LjU0TDE1LjIzIDMxIDYgNDAuMjNWNDJoMS43N0wxNyAzMi43N2w1LjgyIDUuODJhMi43NSAyLjc1IDAgMCAwIDQuNTQtMS4wNWwyLjE2LTYuMjVabTExLjctNy41MS04LjA5IDQuMDQtMTIuOTYtMTIuOTYgNC4wNC04LjA5YTQuNzUgNC43NSAwIDAgMSA3LjYtMS4yM2wxMC42NCAxMC42M2E0Ljc1IDQuNzUgMCAwIDEtMS4yMyA3LjYxWlwiXSk7XG5leHBvcnQgY29uc3QgUGluT2ZmNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpbk9mZjQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTE2LjcgMTguNDggNC42MyA2LjM4YTEuMjUgMS4yNSAwIDEgMSAxLjc2LTEuNzZsMzcgMzdhMS4yNSAxLjI1IDAgMCAxLTEuNzYgMS43NkwyOS41MiAzMS4zbC0yLjE2IDYuMjVhMi43NSAyLjc1IDAgMCAxLTQuNTQgMS4wNUwxNyAzMi43NyA3Ljc3IDQySDZ2LTEuNzdMMTUuMjMgMzFsLTUuODItNS44MmEyLjc1IDIuNzUgMCAwIDEgMS4wNS00LjU0bDYuMjUtMi4xNlptMTAuODYgMTAuODUtOC44OS04Ljg5LTcuNCAyLjU2YS4yNS4yNSAwIDAgMC0uMS40MUwyNC42IDM2LjgyYy4xMy4xMy4zNS4wOC40MS0uMWwyLjU2LTcuNFptMTIuNTQtNy43OC04LjgzIDQuNDIgMS44NiAxLjg2IDguMDktNC4wNGE0Ljc1IDQuNzUgMCAwIDAgMS4yMy03LjZMMzEuODIgNS41NGE0Ljc1IDQuNzUgMCAwIDAtNy42MSAxLjIzbC00LjA0IDguMDkgMS44NiAxLjg2IDQuNDItOC44M2EyLjI1IDIuMjUgMCAwIDEgMy42LS41OGwxMC42MyAxMC42M2EyLjI1IDIuMjUgMCAwIDEtLjU4IDMuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41YTEuNSAxLjUgMCAwIDEgMyAwdjlhMS41IDEuNSAwIDAgMS0zIDB2LTlabTEzIDB2OWExLjUgMS41IDAgMCAwIDMgMHYtOWExLjUgMS41IDAgMCAwLTMgMFpNMTQgMTRWNkg2djhoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA1LjVhMS41IDEuNSAwIDEgMSAzIDBWNmgxMHYtLjVhMS41IDEuNSAwIDAgMSAzIDB2OWExLjUgMS41IDAgMCAxLTMgMFYxNEg1di41YTEuNSAxLjUgMCAwIDEtMyAwdi05Wm0yIDBhLjUuNSAwIDAgMC0xIDB2OWEuNS41IDAgMCAwIDEgMHYtOVpNMTUgN0g1djZoMTBWN1ptMi0xLjVhLjUuNSAwIDAgMC0xIDB2OWEuNS41IDAgMCAwIDEgMHYtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgNmEyIDIgMCAxIDEgNCAwdjExYTIgMiAwIDEgMS00IDBWNlptMTYgMGEyIDIgMCAxIDEgNCAwdjExYTIgMiAwIDEgMS00IDBWNlptLTEuNSAwaC05djExaDlWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA2LjI1QTIuMjUgMi4yNSAwIDAgMSA2LjQ5IDZIMTcuNWEyLjI1IDIuMjUgMCAwIDEgNC40OS4yNXYxMC41YTIuMjUgMi4yNSAwIDAgMS00LjQ5LjI1SDYuNUEyLjI1IDIuMjUgMCAwIDEgMiAxNi43NVY2LjI1Wm0zIDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjEwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjYuMjVabTEuNSA5LjI1aDExdi04aC0xMXY4Wm0xNC05LjI1YS43NS43NSAwIDAgMC0xLjUgMHYxMC41YS43NS43NSAwIDAgMCAxLjUgMFY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaXBlbGluZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMiA4YTIgMiAwIDEgMSA0IDB2MTZhMiAyIDAgMSAxLTQgMFY4Wm0yNCAwYTIgMiAwIDEgMSA0IDB2MTZhMiAyIDAgMSAxLTQgMFY4Wm0tMiAxSDh2MTRoMTZWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMiA5YTMgMyAwIDAgMSA2IDBoMTZhMyAzIDAgMSAxIDYgMHYxNGEzIDMgMCAxIDEtNiAwSDhhMyAzIDAgMSAxLTYgMFY5Wm00IDBhMSAxIDAgMCAwLTIgMHYxNGExIDEgMCAxIDAgMiAwVjlabTIgMTJoMTZWMTFIOHYxMFpNMjggOWExIDEgMCAxIDAtMiAwdjE0YTEgMSAwIDEgMCAyIDBWOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41YTEuNSAxLjUgMCAwIDEgMyAwdjlhMS41IDEuNSAwIDAgMS0zIDB2LTlabTEyIDMuNTJBNS41IDUuNSAwIDAgMCA5LjAyIDE0SDZWNmg4djMuMDJabTEtMy41MnYzLjUyYzEuMTMuMSAyLjE3LjU1IDMgMS4yNFY1LjVhMS41IDEuNSAwIDAgMC0zIDBabTQgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA1LjVhMS41IDEuNSAwIDEgMSAzIDBWNmgxMHYtLjVhMS41IDEuNSAwIDAgMSAzIDB2NC43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjUuNWEuNS41IDAgMCAwLTEgMHYzLjdjLS4zMi0uMDgtLjY2LS4xNS0xLS4xOFY3SDV2Nmg0LjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFINXYuNWExLjUgMS41IDAgMCAxLTMgMHYtOVptMiAwYS41LjUgMCAwIDAtMSAwdjlhLjUuNSAwIDAgMCAxIDB2LTlabTE1IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQaXBlbGluZUFkZDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BpcGVsaW5lQWRkMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk00IDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAxIDAgNCAwVjhhMiAyIDAgMCAwLTItMlptMjQgMGEyIDIgMCAwIDAtMiAydjYuNTFhOS4wMiA5LjAyIDAgMCAxIDQgMi44M1Y4YTIgMiAwIDAgMC0yLTJabS01IDhjLjM0IDAgLjY3LjAyIDEgLjA1VjlIOHYxNGg2YTkgOSAwIDAgMSA5LTlabTAgMTYuNWE3LjUgNy41IDAgMSAwIDAtMTUgNy41IDcuNSAwIDAgMCAwIDE1Wm0xLTEyLjI1VjIyaDMuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDI0djMuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIzLjVoLTMuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNzV2LTMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGlwZWxpbmVBZGQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBZGQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yIDlhMyAzIDAgMCAxIDYgMGgxNmEzIDMgMCAxIDEgNiAwdjguMzRhOS4wNSA5LjA1IDAgMCAwLTItMS44MlY5YTEgMSAwIDEgMC0yIDB2NS41MWE4Ljk1IDguOTUgMCAwIDAtMi0uNDZWMTFIOHYxMGg2LjIyYTkuMDMgOS4wMyAwIDAgMC0uMjIgMkg4YTMgMyAwIDEgMS02IDBWOVptNCAwYTEgMSAwIDAgMC0yIDB2MTRhMSAxIDAgMSAwIDIgMFY5Wm0xNyAyMS41YTcuNSA3LjUgMCAxIDAgMC0xNSA3LjUgNy41IDAgMCAwIDAgMTVabTEtMTIuMjVWMjJoMy43NWEuNzUuNzUgMCAwIDEgMCAxLjVIMjR2My43NWEuNzUuNzUgMCAwIDEtMS41IDBWMjMuNWgtMy43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMy43NXYtMy43NWEuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQaXBlbGluZUFycm93Q3VydmVEb3duMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBcnJvd0N1cnZlRG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMSA1LjVhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBabTYuNC45LS45LjlWNS43NEEyLjc1IDIuNzUgMCAwIDAgMy43NSAzSDMuNWEuNS41IDAgMSAwIDAgMWguMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41NGwtLjktLjlhLjUuNSAwIDAgMC0uNy43MWwxLjc1IDEuNzZhLjUuNSAwIDAgMCAuNyAwTDguMTIgNy4xYS41LjUgMCAxIDAtLjcxLS43Wk0yIDkuNzRhNS40OCA1LjQ4IDAgMCAwIDMgMS4yNHYzLjUyYTEuNSAxLjUgMCAwIDEtMyAwVjkuNzRaTTEwLjk3IDZBNS41IDUuNSAwIDAgMSA2IDEwLjk4VjE0aDhWNmgtMy4wMlptNS41Mi0yYy0uODMgMC0xLjUuNjctMS41IDEuNXY5YTEuNSAxLjUgMCAwIDAgMyAwdi05YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQXJyb3dDdXJ2ZURvd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVBcnJvd0N1cnZlRG93bjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjk4IDZjLS4wMy4zNC0uMS42OC0uMTggMUgxNXY2SDV2LTIuMDJjLS4zNS0uMDMtLjY4LS4xLTEtLjE5djMuNzFhLjUuNSAwIDAgMS0xIDB2LTQuMWMtLjM3LS4xOS0uNy0uNC0xLS42NnY0Ljc2YTEuNSAxLjUgMCAwIDAgMyAwVjE0aDEwdi41YTEuNSAxLjUgMCAwIDAgMyAwdi05YTEuNSAxLjUgMCAwIDAtMyAwVjZoLTQuMDJabTUuNTItMWMuMjggMCAuNS4yMi41LjV2OWEuNS41IDAgMCAxLTEgMHYtOWMwLS4yOC4yMi0uNS41LS41Wm0tMTEtNGE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOVptMi42IDUuNGMuMi4yLjIuNSAwIC43TDYuMzcgOC44NWEuNS41IDAgMCAxLS43IDBMMy45IDcuMWEuNS41IDAgMSAxIC43LS43bC45LjlWNS43NEM1LjUgNC43OCA0LjcyIDQgMy43NSA0SDMuNWEuNS41IDAgMSAxIDAtMWguMjVBMi43NSAyLjc1IDAgMCAxIDYuNSA1Ljc1djEuNTRsLjktLjljLjItLjE5LjUxLS4xOS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQaXBlbGluZVBsYXkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaXBlbGluZVBsYXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNS41YTEuNSAxLjUgMCAwIDEgMyAwdjlhMS41IDEuNSAwIDAgMS0zIDB2LTlabTEyIDMuNTJBNS41IDUuNSAwIDAgMCA5LjAyIDE0SDZWNmg4djMuMDJabTEtMy41MnYzLjUyYzEuMTMuMSAyLjE3LjU1IDMgMS4yNFY1LjVhMS41IDEuNSAwIDAgMC0zIDBabTQgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMjktLjQ0LTIuOTctMS42NWEuNS41IDAgMCAwLS43NC40NHYzLjNjMCAuMzguNDEuNjIuNzQuNDRsMi45Ny0xLjY1YS41LjUgMCAwIDAgMC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBQaXBlbGluZVBsYXkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGlwZWxpbmVQbGF5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA1LjVhMS41IDEuNSAwIDEgMSAzIDBWNmgxMHYtLjVhMS41IDEuNSAwIDAgMSAzIDB2NC43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjUuNWEuNS41IDAgMCAwLTEgMHYzLjdjLS4zMi0uMDgtLjY2LS4xNS0xLS4xOFY3SDV2Nmg0LjJjLS4wOC4zMi0uMTUuNjYtLjE4IDFINXYuNWExLjUgMS41IDAgMCAxLTMgMHYtOVptMiAwYS41LjUgMCAwIDAtMSAwdjlhLjUuNSAwIDAgMCAxIDB2LTlabTE1IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjI5LS40NC0yLjk3LTEuNjVhLjUuNSAwIDAgMC0uNzQuNDR2My4zYzAgLjM4LjQxLjYyLjc0LjQ0bDIuOTctMS42NWEuNS41IDAgMCAwIDAtLjg4WlwiXSk7XG5leHBvcnQgY29uc3QgUGl2b3QyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQaXZvdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2g0LjU5YTEuNSAxLjUgMCAwIDEgLjM1LTEuNTZsMS0xYTEuNSAxLjUgMCAwIDEgMi40Ny41NmguNTlhLjUuNSAwIDAgMCAuNS0uNXYtLjU5YTEuNSAxLjUgMCAwIDEtLjU2LTIuNDdsMS0xYTEuNSAxLjUgMCAwIDEgMS41Ni0uMzVWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjVaTTYgNWgxYTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFabTMgMWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMVY2Wk03IDlhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoMVptOS44NSAyLjE1YS41LjUgMCAwIDAtLjcgMGwtMSAxYS41LjUgMCAwIDAgLjcuN2wuMTUtLjE0djEuNzljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xLjhsLjE1LS4xNWEuNS41IDAgMCAwLS43LS43bC0xIDFhLjUuNSAwIDAgMCAwIC43bDEgMWEuNS41IDAgMCAwIC43LS43bC0uMTQtLjE1aDEuNzlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xLjhsLjE1LjE1YS41LjUgMCAwIDAgLjctLjdsLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpdm90MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpdm90MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDQuNTlhMS41IDEuNSAwIDAgMCAwIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY0LjU5YTEuNSAxLjUgMCAwIDAtMSAwVjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTYgNWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDZabTQgMGExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC00Wk02IDlhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFINlptMTAuODUgMi4xNWEuNS41IDAgMCAwLS43IDBsLTEgMWEuNS41IDAgMCAwIC43LjdsLjE1LS4xNHYxLjc5YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMS44bC4xNS0uMTVhLjUuNSAwIDAgMC0uNy0uN2wtMSAxYS41LjUgMCAwIDAgMCAuN2wxIDFhLjUuNSAwIDAgMCAuNy0uN2wtLjE0LS4xNWgxLjc5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMS44bC4xNS4xNWEuNS41IDAgMCAwIC43LS43bC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQaXZvdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpdm90MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuNVYxN2EzLjUgMy41IDAgMCAwIDMuNSAzLjVoNC4zOGEyLjI1IDIuMjUgMCAwIDEgLjUzLTIuMzRsMS41LTEuNWEyLjI1IDIuMjUgMCAwIDEgMy43MS44NGguODh2LS44OGEyLjI1IDIuMjUgMCAwIDEtLjg0LTMuNzFsMS41LTEuNWEyLjI1IDIuMjUgMCAwIDEgMi4zNC0uNTNWNi41QTMuNSAzLjUgMCAwIDAgMTcgM0g2LjVBMy41IDMuNSAwIDAgMCAzIDYuNVpNNi41IDVoMUM4LjMzIDUgOSA1LjY3IDkgNi41djFDOSA4LjMzIDguMzMgOSA3LjUgOWgtMUExLjUgMS41IDAgMCAxIDUgNy41di0xQzUgNS42NyA1LjY3IDUgNi41IDVaTTExIDYuNWMwLS44My42Ny0xLjUgMS41LTEuNUgxN2MuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNC41QTEuNSAxLjUgMCAwIDEgMTEgNy41di0xWk03LjUgMTFjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xQTEuNSAxLjUgMCAwIDEgNSAxN3YtNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDFabTEyLjc4IDEuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS41IDEuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bC4yMi0uMjJ2Mi40NGMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTIuNDRsLjIyLS4yMmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjUgMS41YS43NS43NSAwIDAgMCAwIDEuMDZsMS41IDEuNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0uMjItLjIyaDIuNDRjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtMi40NGwuMjIuMjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMS41LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBpdm90MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bpdm90MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTFjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NC42M2EyLjI1IDIuMjUgMCAwIDEgMS41IDBWNi4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC0xMUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExYzAgMS44IDEuNDYgMy4yNSAzLjI1IDMuMjVoNC42M2EyLjI1IDIuMjUgMCAwIDEgMC0xLjVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0xMVpNNiA3YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWN1ptNS41IDBhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTFWN1pNNiAxMi41YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTF2LTRabTE0LjI4LS4wM2EuNzUuNzUgMCAwIDAtMS4wNiAwbC0xLjUgMS41YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsLjIyLS4yMnYyLjQ0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi40NGwuMjItLjIyYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTEuNSAxLjVhLjc1Ljc1IDAgMCAwIDAgMS4wNmwxLjUgMS41YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLS4yMi0uMjJoMi40NGMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0yLjQ0bC4yMi4yMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjUtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRDYXR0YWlsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRDYXR0YWlsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04IDRhMiAyIDAgMSAxIDQgMHY0YTIgMiAwIDAgMS0xLjUgMS45NHYyLjM1bDMuMTUtMy4xNGEuNS41IDAgMCAxIC43LjdsLTMuODUgMy44NnYuNzlhLjUuNSAwIDAgMS0xIDB2LS44TDUuNjUgOS44NmEuNS41IDAgMSAxIC43LS43bDMuMTUgMy4xNFY5Ljk0QTIgMiAwIDAgMSA4IDhWNFptLTEuMjkgOC4zM2MtLjU0LjEyLTEuMDQuMjYtMS40OS40NC0uNjIuMjMtMS4xNS41My0xLjU1Ljg5QzMuMjggMTQgMyAxNC40NiAzIDE1YzAgLjUzLjI4Ljk5LjY3IDEuMzQuNC4zNi45My42NiAxLjU1LjkgMS4yNS40NyAyLjk0Ljc2IDQuNzguNzYgMS44NCAwIDMuNTMtLjI5IDQuNzgtLjc3YTQuOTYgNC45NiAwIDAgMCAxLjU1LS44OWMuMzktLjM1LjY3LS44LjY3LTEuMzQgMC0uNTMtLjI4LS45OS0uNjctMS4zNC0uNC0uMzYtLjkzLS42Ni0xLjU1LS45LS40NS0uMTctLjk1LS4zMS0xLjQ5LS40M2wtLjg2Ljg2Yy43Ni4xMiAxLjQzLjMgMS45OS41LjU1LjIyLjk3LjQ2IDEuMjMuNy4yNy4yNS4zNS40NS4zNS42MSAwIC4xNi0uMDguMzYtLjM1LjYtLjI2LjI1LS42OC40OS0xLjIzLjctMS4xLjQzLTIuNjcuNy00LjQyLjdzLTMuMzEtLjI3LTQuNDItLjdhMy45OSAzLjk5IDAgMCAxLTEuMjMtLjdjLS4yNy0uMjQtLjM1LS40NC0uMzUtLjYgMC0uMTYuMDgtLjM2LjM1LS42LjI2LS4yNS42OC0uNDkgMS4yMy0uNy41Ni0uMjIgMS4yMy0uNCAxLjk5LS41MWwtLjg2LS44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50Q2F0dGFpbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudENhdHRhaWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMS41IDEuOTR2Mi4zNUw2LjM1IDkuMTVhLjUuNSAwIDEgMC0uNy43bDMuODUgMy44NnYuNzlhLjUuNSAwIDAgMCAxIDB2LS44bDMuODUtMy44NWEuNS41IDAgMCAwLS43LS43bC0zLjE1IDMuMTRWOS45NEEyIDIgMCAwIDAgMTIgOFY0YTIgMiAwIDAgMC0yLTJaTTkgNGExIDEgMCAwIDEgMiAwdjRhMSAxIDAgMSAxLTIgMFY0Wm0tMy43OCA4Ljc3Yy40NS0uMTguOTUtLjMyIDEuNDktLjQ0bC44Ni44NmMtLjc2LjEyLTEuNDMuMy0xLjk5LjUtLjU1LjIyLS45Ny40Ni0xLjIzLjctLjI3LjI1LS4zNS40NS0uMzUuNjEgMCAuMTYuMDguMzYuMzUuNi4yNi4yNS42OC40OSAxLjIzLjcgMS4xLjQzIDIuNjcuNyA0LjQyLjdzMy4zMS0uMjcgNC40Mi0uN2MuNTUtLjIxLjk3LS40NSAxLjIzLS43LjI3LS4yNC4zNS0uNDQuMzUtLjYgMC0uMTYtLjA4LS4zNi0uMzUtLjZhMy45OSAzLjk5IDAgMCAwLTEuMjMtLjdjLS41Ni0uMjItMS4yMy0uNC0xLjk5LS41MWwuODYtLjg2Yy41NC4xMiAxLjA0LjI2IDEuNDkuNDQuNjIuMjMgMS4xNS41MyAxLjU1Ljg5LjM5LjM1LjY3LjguNjcgMS4zNCAwIC41My0uMjguOTktLjY3IDEuMzQtLjQuMzYtLjkzLjY2LTEuNTUuOS0xLjI1LjQ3LTIuOTQuNzYtNC43OC43Ni0xLjg0IDAtMy41My0uMjktNC43OC0uNzdhNC45NiA0Ljk2IDAgMCAxLTEuNTUtLjg5QzMuMjggMTYgMyAxNS41NCAzIDE1YzAtLjUzLjI4LS45OS42Ny0xLjM0LjQtLjM2LjkzLS42NiAxLjU1LS45WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRDYXR0YWlsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRDYXR0YWlsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05IDVhMyAzIDAgMSAxIDYgMHY0YTMgMyAwIDAgMS0yLjI1IDIuOXYyLjc5bDMuNDctMy40N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC00LjUzIDQuNTN2MS40NGEuNzUuNzUgMCAwIDEtMS41IDB2LTEuNDRsLTQuNTMtNC41M2EuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDMuNDcgMy40N1YxMS45QTMgMyAwIDAgMSA5IDlWNVptLTEuNDggOS41Yy0uNTkuMTQtMS4xMy4zLTEuNjMuNS0uOC4zMi0xLjUuNzEtMiAxLjE5QTIuNSAyLjUgMCAwIDAgMyAxOGMwIC43My4zOCAxLjM0Ljg5IDEuODEuNS40OCAxLjIuODcgMiAxLjE5IDEuNi42MyAzLjc2IDEgNi4xMSAxIDIuMzUgMCA0LjUtLjM3IDYuMS0xIC44LS4zMiAxLjUtLjcxIDIuMDEtMS4xOUEyLjUgMi41IDAgMCAwIDIxIDE4YTIuNSAyLjUgMCAwIDAtLjg5LTEuODEgNi4zOCA2LjM4IDAgMCAwLTItMS4xOWMtLjUtLjItMS4wNC0uMzYtMS42My0uNWwtMS4yNyAxLjI3Yy44OS4xNSAxLjY5LjM3IDIuMzUuNjMuNy4yNyAxLjIuNTggMS41My44OC4zMi4zLjQxLjU1LjQxLjcyIDAgLjE3LS4wOS40MS0uNDEuNzItLjMyLjMtLjg0LjYtMS41My44OC0xLjM5LjU1LTMuMzUuOS01LjU2LjktMi4yIDAtNC4xNy0uMzUtNS41Ni0uOS0uNy0uMjctMS4yLS41OC0xLjUzLS44OC0uMzItLjMtLjQxLS41NS0uNDEtLjcyIDAtLjE3LjA5LS40MS40LS43Mi4zMy0uMy44NS0uNiAxLjU0LS44OC42Ni0uMjYgMS40Ni0uNDggMi4zNS0uNjNMNy41MiAxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRDYXR0YWlsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50Q2F0dGFpbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMyAzIDAgMCAwLTMgM3Y0YTMgMyAwIDAgMCAyLjI1IDIuOXYyLjc5bC0zLjQ3LTMuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw0LjUzIDQuNTN2MS40NGEuNzUuNzUgMCAwIDAgMS41IDB2LTEuNDRsNC41My00LjUzYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTMuNDcgMy40N1YxMS45QTMgMyAwIDAgMCAxNSA5VjVhMyAzIDAgMCAwLTMtM1ptLTEuNSAzYTEuNSAxLjUgMCAwIDEgMyAwdjRhMS41IDEuNSAwIDAgMS0zIDBWNVpNNS45IDE1Yy40OS0uMiAxLjAzLS4zNiAxLjYyLS41bDEuMjcgMS4yN2MtLjg5LjE1LTEuNjkuMzctMi4zNS42My0uNy4yNy0xLjIuNTgtMS41My44OC0uMzIuMy0uNDEuNTUtLjQxLjcyIDAgLjE3LjA5LjQxLjQuNzIuMzMuMy44NS42IDEuNTQuODggMS4zOS41NSAzLjM1LjkgNS41Ni45IDIuMiAwIDQuMTctLjM1IDUuNTYtLjkuNy0uMjcgMS4yLS41OCAxLjUzLS44OC4zMi0uMy40MS0uNTUuNDEtLjcyIDAtLjE3LS4wOS0uNDEtLjQxLS43Mi0uMzItLjMtLjg0LS42LTEuNTMtLjg4LS42Ni0uMjYtMS40Ni0uNDgtMi4zNS0uNjNsMS4yNy0xLjI3Yy41OS4xNCAxLjEzLjMgMS42My41LjguMzIgMS41LjcxIDIgMS4xOS41MS40Ny44OSAxLjA4Ljg5IDEuODFhMi41IDIuNSAwIDAgMS0uODkgMS44MWMtLjUuNDgtMS4yLjg3LTIgMS4xOS0xLjYuNjMtMy43NiAxLTYuMTEgMS0yLjM1IDAtNC41LS4zNy02LjEtMS0uOC0uMzItMS41LS43MS0yLjAxLTEuMTlBMi41IDIuNSAwIDAgMSAzIDE4YzAtLjczLjM4LTEuMzQuODktMS44MS41LS40OCAxLjItLjg3IDItMS4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50R3Jhc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudEdyYXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02Ljg1IDMuMTVoLjAybC4wMi4wNGE3LjM1IDcuMzUgMCAwIDEgLjQ3LjUyYy4zLjM2LjcuODcgMS4xMiAxLjUyQzkuMDIgNi4wNiA5LjYgNy4xIDEwIDguM2ExMy45NSAxMy45NSAwIDAgMSAyLjY0LTQuNiAxMS43MiAxMS43MiAwIDAgMSAuNDctLjUybC4wMi0uMDMuMDEtLjAxYS41LjUgMCAwIDEgLjg2LjM1djUuMWMuMjUtLjUyLjUyLS45NC44LTEuMjhhNC45NyA0Ljk3IDAgMCAxIDEuNS0xLjI4aC4wMWEuNS41IDAgMCAxIC42OS40NlYxNGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2LjVhLjUuNSAwIDAgMSAuNjktLjQ2aC4wMmExLjM0IDEuMzQgMCAwIDEgLjEzLjA3Yy4xLjA1LjIuMTIuMzUuMjIuMjguMi42NC41IDEuMDIuOTkuMjcuMzQuNTQuNzYuNzkgMS4yOVYzLjVhLjUuNSAwIDAgMSAuODUtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRHcmFzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudEdyYXNzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi44NSAzLjE1aC4wMmwuMDIuMDRhNy4zNSA3LjM1IDAgMCAxIC40Ny41MmMuMy4zNi43Ljg3IDEuMTIgMS41MkM5LjAyIDYuMDYgOS42IDcuMSAxMCA4LjNhMTMuOTUgMTMuOTUgMCAwIDEgMi42NC00LjYgMTEuNzIgMTEuNzIgMCAwIDEgLjQ3LS41MmwuMDItLjAzLjAxLS4wMWEuNS41IDAgMCAxIC44Ni4zNXY1LjFjLjI1LS41Mi41Mi0uOTQuOC0xLjI4YTQuOTcgNC45NyAwIDAgMSAxLjUtMS4yOGguMDFhLjUuNSAwIDAgMSAuNjkuNDZWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNi41YS41LjUgMCAwIDEgLjY5LS40NmguMDJhMS4zNCAxLjM0IDAgMCAxIC4xMy4wN2MuMS4wNS4yLjEyLjM1LjIyLjI4LjIuNjQuNSAxLjAyLjk5LjI3LjM0LjU0Ljc2Ljc5IDEuMjlWMy41YS41LjUgMCAwIDEgLjg1LS4zNVpNNCA3LjQ3VjE0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjcuNDdhNC41IDQuNSAwIDAgMC0uNDIuNDZjLS42Mi44LTEuMzQgMi4yLTEuNTggNC42MmEuNS41IDAgMCAxLTEtLjA1VjQuODZjLS4yLjI2LS40Mi41Ny0uNjQuOTFhMTEuNjUgMTEuNjUgMCAwIDAtMS44NiA0LjguNS41IDAgMCAxLTEgMCAxMS42NCAxMS42NCAwIDAgMC0xLjg2LTQuOGMtLjIyLS4zNC0uNDQtLjY1LS42NC0uOTF2Ny42NGEuNS41IDAgMCAxLTEgLjA1Yy0uMjQtMi40Mi0uOTYtMy44My0xLjU4LTQuNjJBNC41IDQuNSAwIDAgMCA0IDcuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGFudEdyYXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRHcmFzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOC4zMiAzLjI2QS43NS43NSAwIDAgMCA3IDMuNzV2Ni41NmE5LjMyIDkuMzIgMCAwIDAtMS4xNC0xLjgyIDUuMzcgNS4zNyAwIDAgMC0xLjctMS4zOCAyLjA3IDIuMDcgMCAwIDAtLjE4LS4wN2wtLjAyLS4wMWgtLjAxYS43NS43NSAwIDAgMC0uOTUuNzJ2MTBDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0xMGEuNzUuNzUgMCAwIDAtLjk1LS43MmgtLjAzYTEuNDMgMS40MyAwIDAgMC0uMTkuMDggNS4zNyA1LjM3IDAgMCAwLTEuNyAxLjM5QTkuMzIgOS4zMiAwIDAgMCAxNyAxMC4zVjMuNzZhLjc1Ljc1IDAgMCAwLTEuMzItLjV2LjAxbC0uMDEuMDEtLjAzLjA0YTExLjU2IDExLjU2IDAgMCAwLS41MS42NUEyMy44MyAyMy44MyAwIDAgMCAxMiA5LjZhMjIuMzEgMjIuMzEgMCAwIDAtMy42NC02LjI5bC0uMDMtLjA0aC0uMDF2LS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50R3Jhc3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxhbnRHcmFzczI0UmVndWxhcicsIFwiMjRcIiwgW1wibTguMzIgMy4yNi4wMS4wMS4wMy4wNGExMC43IDEwLjcgMCAwIDEgLjUxLjY1QTIzLjgzIDIzLjgzIDAgMCAxIDEyIDkuNmEyMi4zMSAyMi4zMSAwIDAgMSAzLjY0LTYuMjlsLjAzLS4wNGguMDF2LS4wMWEuNzUuNzUgMCAwIDEgMS4zMi40OXY2LjU2Yy4zNy0uNzcuNzYtMS4zNiAxLjE0LTEuODJhNS4zNyA1LjM3IDAgMCAxIDEuNy0xLjM4IDIuMDcgMi4wNyAwIDAgMSAuMTgtLjA3bC4wMi0uMDFoLjAxYS43NS43NSAwIDAgMSAuOTUuNzJ2MTBjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1di0xMGEuNzUuNzUgMCAwIDEgLjk1LS43MmguMDNhMS40NCAxLjQ0IDAgMCAxIC4xOS4wOCA1LjM3IDUuMzcgMCAwIDEgMS43IDEuMzljLjM3LjQ1Ljc2IDEuMDQgMS4xMyAxLjhWMy43NmEuNzUuNzUgMCAwIDEgMS4zMi0uNVpNNC41IDkuMnY4LjU0YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDExLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjkuMjFsLS4yLjIzYy0uNzQuOTEtMS43IDIuNjYtMi4zMSA1Ljk1YS43NS43NSAwIDAgMS0xLjQ5LS4xNHYtOS4ybC0uMzYuNTZhMTguODQgMTguODQgMCAwIDAtMi40IDUuOC43NS43NSAwIDAgMS0xLjQ3IDBBMTguODQgMTguODQgMCAwIDAgOC41IDYuMDN2OS4yMWEuNzUuNzUgMCAwIDEtMS40OS4xNGMtLjYtMy4yOS0xLjU3LTUuMDQtMi4zLTUuOTVhNS4zIDUuMyAwIDAgMC0uMjEtLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRHcmFzczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50R3Jhc3MyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTkuMyAzLjI1YS43NS43NSAwIDAgMC0xLjMuNXY5LjM2YTE0Ljg5IDE0Ljg5IDAgMCAwLTEuNjItMi43OEExMC43OCAxMC43OCAwIDAgMCA0LjIgOC4xNWEyLjU5IDIuNTkgMCAwIDAtLjA0LS4wM2gtLjAxbC0uMDEtLjAxQS43NS43NSAwIDAgMCAzIDguNzV2MTIuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNWgxNC41QTMuNzUgMy43NSAwIDAgMCAyNSAyMS4yNVY4Ljc1YS43NS43NSAwIDAgMC0xLjE0LS42NGwtLjAyLjAxYTMgMyAwIDAgMC0uMi4xM2wtLjQ5LjRjLS40LjM2LS45NS45LTEuNTMgMS42OC0uNTQuNzItMS4xIDEuNjQtMS42MiAyLjc4VjMuNzVhLjc1Ljc1IDAgMCAwLTEuMy0uNWgtLjAxbC0uMDIuMDJhNS4zNCA1LjM0IDAgMCAwLS4xOC4yMmwtLjUyLjY2QTI1LjU5IDI1LjU5IDAgMCAwIDE0IDExLjlhMjUuNTIgMjUuNTIgMCAwIDAtNC42Ny04LjYzbC0uMDItLjAxdi0uMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGFudEdyYXNzMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50R3Jhc3MyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk05LjMgMy4yNWguMDFsLjAyLjAyYTYuMjMgNi4yMyAwIDAgMSAuMTguMjJsLjUyLjY2QTI1LjU5IDI1LjU5IDAgMCAxIDE0IDExLjlhMjUuNTIgMjUuNTIgMCAwIDEgNC42Ny04LjYzbC4wMi0uMDF2LS4wMWEuNzUuNzUgMCAwIDEgMS4zMS41djkuMzZhMTQuODkgMTQuODkgMCAwIDEgMS42Mi0yLjc4IDEwLjc4IDEwLjc4IDAgMCAxIDIuMTgtMi4xOCAzIDMgMCAwIDEgLjA0LS4wM2guMDJWOC4xYS43NS43NSAwIDAgMSAxLjE0LjY0djEyLjVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1SDYuNzVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjVWOC43NWEuNzUuNzUgMCAwIDEgMS4xNC0uNjRsLjAyLjAxYTIuNTkgMi41OSAwIDAgMSAuMi4xM2wuNDkuNGMuNC4zNi45NS45IDEuNTMgMS42OC41NC43MiAxLjEgMS42NCAxLjYyIDIuNzhWMy43NWEuNzUuNzUgMCAwIDEgMS4zLS41Wm0tNC44IDcuMTZ2MTAuODRjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMTQuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVYxMC40MWMtLjIxLjIzLS40NC41LS42OC44MmExNi40NyAxNi40NyAwIDAgMC0yLjgzIDcuMTUuNzUuNzUgMCAwIDEtMS40OS0uMTNWNS45OWEyMi43IDIyLjcgMCAwIDAtMy43NiA5LjM3Ljc1Ljc1IDAgMCAxLTEuNDggMEEyMi43IDIyLjcgMCAwIDAgOS41IDUuOTl2MTIuMjZhLjc1Ljc1IDAgMCAxLTEuNDkuMTNjLS42LTMuNTEtMS44LTUuNzgtMi44My03LjE1LS4yNC0uMzItLjQ3LS42LS42OC0uODJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGFudFJhZ3dlZWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudFJhZ3dlZWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuNSA0LjVhMi41IDIuNSAwIDEgMSA0Ljk0LjU1IDIgMiAwIDAgMSAuODggMy40NUEyIDIgMCAwIDEgMTIgMTJoLTEuNXY0LjNsMy4xNS0zLjE1YS41LjUgMCAwIDEgLjcuN2wtMy44NSAzLjg2di43OWEuNS41IDAgMCAxLTEgMHYtLjhsLTMuODUtMy44NWEuNS41IDAgMCAxIC43LS43bDMuMTUgMy4xNFYxMkg4YTIgMiAwIDAgMS0xLjMyLTMuNSAyIDIgMCAwIDEgLjg4LTMuNDUgMi41IDIuNSAwIDAgMS0uMDYtLjU1WlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRSYWd3ZWVkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50UmFnd2VlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJhMi41IDIuNSAwIDAgMC0yLjQ0IDMuMDUgMiAyIDAgMCAwLS44OCAzLjQ1QTIgMiAwIDAgMCA4IDEyaDEuNXY0LjNsLTMuMTUtMy4xNWEuNS41IDAgMCAwLS43LjdsMy44NSAzLjg2di43OWEuNS41IDAgMCAwIDEgMHYtLjhsMy44NS0zLjg1YS41LjUgMCAwIDAtLjctLjdsLTMuMTUgMy4xNFYxMkgxMmEyIDIgMCAwIDAgMS4zMi0zLjUgMiAyIDAgMCAwLS44OC0zLjQ1QTIuNSAyLjUgMCAwIDAgMTAgMlptMiA5SDhhMSAxIDAgMSAxIDAtMiAuNS41IDAgMCAwIDAtMSAxIDEgMCAwIDEgMC0yaC4yN2EuNS41IDAgMCAwIC40My0uNzUgMS41IDEuNSAwIDEgMSAyLjYgMCAuNS41IDAgMCAwIC40My43NUgxMmExIDEgMCAxIDEgMCAyIC41LjUgMCAwIDAgMCAxIDEgMSAwIDEgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGFudFJhZ3dlZWQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudFJhZ3dlZWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMyAzIDAgMCAwLTIuOTUgMy41NEEyLjUgMi41IDAgMCAwIDcuNyA5Ljc1IDIuNSAyLjUgMCAwIDAgOS41IDE0aDEuNzV2NC42OWwtMy40Ny0zLjQ3YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsNC41MyA0LjUzdjEuNDRhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xLjQ0bDQuNTMtNC41M2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0zLjQ3IDMuNDdWMTRoMS43NWEyLjUgMi41IDAgMCAwIDEuNzktNC4yNSAyLjUgMi41IDAgMCAwLTEuMzQtNC4yQTMuMDEgMy4wMSAwIDAgMCAxMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGxhbnRSYWd3ZWVkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50UmFnd2VlZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkgNWEzIDMgMCAxIDEgNS45NS41NCAyLjUgMi41IDAgMCAxIDEuMzQgNC4yMUEyLjUgMi41IDAgMCAxIDE0LjUgMTRoLTEuNzV2NC42OWwzLjQ3LTMuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNC41MyA0LjUzdjEuNDRhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjQ0bC00LjUzLTQuNTNhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwzLjQ3IDMuNDdWMTRIOS41YTIuNSAyLjUgMCAwIDEtMS43OS00LjI1IDIuNSAyLjUgMCAwIDEgMS4zNC00LjJBMy4wMSAzLjAxIDAgMCAxIDkgNVptLjUgNGEuNzUuNzUgMCAwIDEgMCAxLjUgMSAxIDAgMSAwIDAgMmg1YTEgMSAwIDEgMCAwLTIgLjc1Ljc1IDAgMCAxIDAtMS41IDEgMSAwIDEgMCAwLTJoLS42M2EuNzUuNzUgMCAwIDEtLjYyLTEuMTcgMS41IDEuNSAwIDEgMC0yLjUgMEEuNzUuNzUgMCAwIDEgMTAuMTMgN0g5LjVhMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50UmFnd2VlZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYW50UmFnd2VlZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMmE0IDQgMCAwIDAtMy45NSA0LjY1IDMgMyAwIDAgMC0xLjAzIDUuMUEzIDMgMCAwIDAgMTEgMTdoMi4yNXY1LjY5bC00LjQ3LTQuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw1LjUzIDUuNTN2MS40NGEuNzUuNzUgMCAwIDAgMS41IDB2LTEuNDRsNS41My01LjUzYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTQuNDcgNC40N1YxN0gxN2EzIDMgMCAwIDAgMS45OC01LjI1IDMgMyAwIDAgMC0xLjAzLTUuMUE0LjAxIDQuMDEgMCAwIDAgMTQgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYW50UmFnd2VlZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGFudFJhZ3dlZWQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMCA2YTQgNCAwIDEgMSA3Ljk1LjY1IDMgMyAwIDAgMSAxLjAzIDUuMUEzIDMgMCAwIDEgMTcgMTdoLTIuMjV2NS42OWw0LjQ3LTQuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNS41MyA1LjUzdjEuNDRhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjQ0bC01LjUzLTUuNTNhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmw0LjQ3IDQuNDdWMTdIMTFhMyAzIDAgMCAxLTEuOTgtNS4yNSAzIDMgMCAwIDEgMS4wMy01LjFBNC4wMSA0LjAxIDAgMCAxIDEwIDZabTEgNWEuNzUuNzUgMCAwIDEgMCAxLjUgMS41IDEuNSAwIDAgMCAwIDNoNmExLjUgMS41IDAgMCAwIDAtMyAuNzUuNzUgMCAwIDEgMC0xLjUgMS41IDEuNSAwIDAgMCAwLTMgLjc1Ljc1IDAgMCAxLS43LTEuMDQgMi41IDIuNSAwIDEgMC00LjYyIDBBLjc1Ljc1IDAgMCAxIDExLjAxIDhhMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheTEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNC41IDJhMSAxIDAgMCAwLTEuNS44NnY2LjI4YTEgMSAwIDAgMCAxLjUuODdsNS40OS0zLjE0YTEgMSAwIDAgMCAwLTEuNzRMNC40OSAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5MTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMyAyLjg2QTEgMSAwIDAgMSA0LjUgMmw1LjQ5IDMuMTRhMSAxIDAgMCAxIDAgMS43NEw0LjQ5IDEwQTEgMSAwIDAgMSAzIDkuMTRWMi44NlpNOS41IDYgNCAyLjg2djYuMjhMOS41IDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNi4yNCAyLjJBMS41IDEuNSAwIDAgMCA0IDMuNXY5YTEuNSAxLjUgMCAwIDAgMi4yNCAxLjNsOC00LjVhMS41IDEuNSAwIDAgMCAwLTIuNmwtOC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01Ljc1IDMuMDZBLjUuNSAwIDAgMCA1IDMuNXY5YzAgLjM4LjQxLjYyLjc1LjQ0bDgtNC41YS41LjUgMCAwIDAgMC0uODhsLTgtNC41Wk00IDMuNWExLjUgMS41IDAgMCAxIDIuMjQtMS4zbDggNC41YTEuNSAxLjUgMCAwIDEgMCAyLjZsLTggNC41QTEuNSAxLjUgMCAwIDEgNCAxMi41di05WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3LjIyIDguNjhhMS41IDEuNSAwIDAgMSAwIDIuNjNsLTEwIDUuNUExLjUgMS41IDAgMCAxIDUgMTUuNXYtMTFBMS41IDEuNSAwIDAgMSA3LjIyIDMuMmwxMCA1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy4yMiA4LjY5YTEuNSAxLjUgMCAwIDEgMCAyLjYybC0xMCA1LjVBMS41IDEuNSAwIDAgMSA1IDE1LjV2LTExQTEuNSAxLjUgMCAwIDEgNy4yMiAzLjJsMTAgNS41Wm0tLjQ4IDEuNzVhLjUuNSAwIDAgMCAwLS44OGwtMTAtNS41QS41LjUgMCAwIDAgNiA0LjV2MTFjMCAuMzguNC42Mi43NC40NGwxMC01LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNSA1LjI3YzAtMS43IDEuODMtMi43OSAzLjMzLTEuOTdsMTIuMzYgNi43MmEyLjI1IDIuMjUgMCAwIDEgMCAzLjk2TDguMzMgMjAuN0EyLjI1IDIuMjUgMCAwIDEgNSAxOC43M1Y1LjI3WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNy42IDQuNjFhLjc1Ljc1IDAgMCAwLTEuMS42NnYxMy40NmMwIC41Ni42LjkzIDEuMS42NWwxMi4zNy02LjcyYS43NS43NSAwIDAgMCAwLTEuMzJMNy42MSA0LjYxWk01IDUuMjdjMC0xLjcgMS44My0yLjc5IDMuMzMtMS45N2wxMi4zNiA2LjcyYTIuMjUgMi4yNSAwIDAgMSAwIDMuOTZMOC4zMyAyMC43QTIuMjUgMi4yNSAwIDAgMSA1IDE4LjczVjUuMjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTAuMTQgMy4zOEEyLjc1IDIuNzUgMCAwIDAgNiA1Ljc2djE2LjQ4YzAgMi4xMyAyLjMgMy40NSA0LjE0IDIuMzhsMTQuNy04LjZhMi4zNSAyLjM1IDAgMCAwIDAtNC4wNWwtMTQuNy04LjU5WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNOS4zOCA0LjY4QTEuMjUgMS4yNSAwIDAgMCA3LjUgNS43NnYxNi40OGMwIC45NyAxLjA1IDEuNTcgMS44OCAxLjA4bDE0LjctOC41OWEuODUuODUgMCAwIDAgMC0xLjQ2bC0xNC43LTguNlpNNiA1Ljc2YzAtMi4xMyAyLjMtMy40NSA0LjE0LTIuMzhsMTQuNyA4LjZhMi4zNSAyLjM1IDAgMCAxIDAgNC4wNWwtMTQuNyA4LjU5QTIuNzUgMi43NSAwIDAgMSA2IDIyLjI0VjUuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTIuMjIgNC40NkEzLjUgMy41IDAgMCAwIDcgNy41MVYyNC41YTMuNSAzLjUgMCAwIDAgNS4yMyAzLjA0bDE1LTguNWEzLjUgMy41IDAgMCAwIDAtNi4wOWwtMTUtOC40OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXkzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExLjI0IDYuMkExLjUgMS41IDAgMCAwIDkgNy41djE3YTEuNSAxLjUgMCAwIDAgMi4yNCAxLjNsMTUtOC41YTEuNSAxLjUgMCAwIDAgMC0yLjZsLTE1LTguNVpNNyA3LjVhMy41IDMuNSAwIDAgMSA1LjIyLTMuMDRsMTUgOC41YTMuNSAzLjUgMCAwIDEgMCA2LjA5bC0xNSA4LjVBMy41IDMuNSAwIDAgMSA3IDI0LjV2LTE3WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXk0OEZpbGxlZCcsIFwiNDhcIiwgW1wibTE2Ljc1IDguNDEgMjQuNDIgMTIuN2EzLjI1IDMuMjUgMCAwIDEgMCA1Ljc3bC0yNC40MiAxMi43QTMuMjUgMy4yNSAwIDAgMSAxMiAzNi43VjExLjNhMy4yNSAzLjI1IDAgMCAxIDQuNTUtMi45OGwuMi4xWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJtMTYuNzUgOC40MSAyNC40MiAxMi43YTMuMjUgMy4yNSAwIDAgMSAwIDUuNzdsLTI0LjQyIDEyLjdBMy4yNSAzLjI1IDAgMCAxIDEyIDM2LjdWMTEuM2EzLjI1IDMuMjUgMCAwIDEgNC41NS0yLjk4bC4yLjFabS0xLjE1IDIuMjItLjExLS4wNWEuNzUuNzUgMCAwIDAtLjk5LjcxVjM2LjdhLjc1Ljc1IDAgMCAwIDEuMS42N0w0MCAyNC42N2EuNzUuNzUgMCAwIDAgMC0xLjM0TDE1LjYgMTAuNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhabTguNSAwYS41LjUgMCAwIDAtLjI1LS40NEw3LjYyIDYuMDhhLjc1Ljc1IDAgMCAwLTEuMTIuNjV2Mi41NGMwIC41OC42Mi45NCAxLjEyLjY1bDIuNjMtMS40OEEuNS41IDAgMCAwIDEwLjUgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEwLjUgOGEuNS41IDAgMCAxLS4yNS40NEw3LjYyIDkuOTJhLjc1Ljc1IDAgMCAxLTEuMTItLjY1VjYuNzNjMC0uNTguNjItLjk0IDEuMTItLjY1bDIuNjMgMS40OGEuNS41IDAgMCAxIC4yNS40NFpNOCAyYTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJaTTMgOGE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMyA4WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlDaXJjbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTYtMi4xN3Y0LjM0YzAgLjU3LjYzLjk0IDEuMTMuNjVsNC4xMi0yLjM5YS41LjUgMCAwIDAgMC0uODZMOS4xMyA3LjE4QS43NS43NSAwIDAgMCA4IDcuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlDaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjEzIDcuMThBLjc1Ljc1IDAgMCAwIDggNy44M3Y0LjM0YzAgLjU3LjYzLjk0IDEuMTMuNjVsNC4xMi0yLjM5YS41LjUgMCAwIDAgMC0uODZMOS4xMyA3LjE4Wk0yIDEwYTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWm04LTdhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBabTguODYtMy44NUExLjI1IDEuMjUgMCAwIDAgOSA5LjI1djUuNWMwIC45NSAxLjAyIDEuNTYgMS44NiAxLjFsNS43NS0zLjJhLjc1Ljc1IDAgMCAwIDAtMS4zbC01Ljc1LTMuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjg2IDguMTVBMS4yNSAxLjI1IDAgMCAwIDkgOS4yNXY1LjVjMCAuOTUgMS4wMiAxLjU2IDEuODYgMS4xbDUuNzUtMy4yYS43NS43NSAwIDAgMCAwLTEuM2wtNS43NS0zLjJaTTEyIDJhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWk0zLjUgMTJhOC41IDguNSAwIDEgMSAxNyAwIDguNSA4LjUgMCAwIDEtMTcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAyYTEyIDEyIDAgMSAwIDAgMjQgMTIgMTIgMCAwIDAgMC0yNFptLTEuMjMgNy4yOCA2LjUgMy44NmExIDEgMCAwIDEgMCAxLjcybC02LjUgMy44NmExLjUgMS41IDAgMCAxLTIuMjctMS4yOXYtNi44NmExLjUgMS41IDAgMCAxIDIuMjctMS4zWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTIuNzcgOS4yOGMtMS0uNi0yLjI3LjEyLTIuMjcgMS4yOXY2Ljg2YTEuNSAxLjUgMCAwIDAgMi4yNyAxLjNsNi41LTMuODdhMSAxIDAgMCAwIDAtMS43MmwtNi41LTMuODZaTTIgMTRhMTIgMTIgMCAxIDEgMjQgMCAxMiAxMiAwIDAgMS0yNCAwWk0xNCAzLjVhMTAuNSAxMC41IDAgMSAwIDAgMjEgMTAuNSAxMC41IDAgMCAwIDAtMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNDRhMjAgMjAgMCAxIDAgMC00MCAyMCAyMCAwIDAgMCAwIDQwWm05Ljc3LTIxLjI5Yy45Ny41OC45NyAyIDAgMi41OEwyMS40IDMyLjY4Yy0xLjUuOS0zLjQtLjE5LTMuNC0xLjk0VjE3LjI2YzAtMS43NSAxLjktMi44MyAzLjQtMS45M2wxMi4zNyA3LjM4WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMzMuNzcgMjIuNzEgMjEuNCAxNS4zM2MtMS41LS45LTMuNC4xOC0zLjQgMS45M3YxMy40OGMwIDEuNzUgMS45IDIuODMgMy40IDEuOTRsMTIuMzctNy40Yy45Ny0uNTcuOTctMS45OSAwLTIuNTdaTTI0IDQ0YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAwIDAgMCA0MFptMC0zNy41YTE3LjUgMTcuNSAwIDEgMSAwIDM1IDE3LjUgMTcuNSAwIDAgMSAwLTM1WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZUhpbnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlSGludDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAyYy0uNCAwLS44LjA0LTEuMTcuMTFhLjUuNSAwIDAgMCAuMi45OSA1LjAzIDUuMDMgMCAwIDEgMS45NSAwIC41LjUgMCAwIDAgLjE5LS45OUE2LjAzIDYuMDMgMCAwIDAgOCAyWm0zLjMzIDEuMDFhLjUuNSAwIDEgMC0uNTUuODNjLjU0LjM3IDEuMDEuODQgMS4zOCAxLjM4YS41LjUgMCAwIDAgLjgzLS41NWMtLjQ0LS42Ni0xLTEuMjItMS42Ni0xLjY2Wm0tNi4xLjgzYS41LjUgMCAxIDAtLjU2LS44M0M0IDMuNDUgMy40NSA0LjAxIDMgNC42N2EuNS41IDAgMSAwIC44My41NWMuMzctLjU0Ljg0LTEuMDEgMS4zOC0xLjM4Wm04LjY2IDIuOTlhLjUuNSAwIDEgMC0uOTkuMiA1LjAzIDUuMDMgMCAwIDEgMCAxLjk1LjUuNSAwIDAgMCAuOTkuMTkgNi4wMiA2LjAyIDAgMCAwIDAtMi4zNFptLTEwLjguMmEuNS41IDAgMCAwLS45OC0uMiA2LjAzIDYuMDMgMCAwIDAgMCAyLjM0LjUuNSAwIDAgMCAuOTktLjIgNS4wMyA1LjAzIDAgMCAxIDAtMS45NVptOS45IDQuM2EuNS41IDAgMCAwLS44My0uNTUgNS4wMyA1LjAzIDAgMCAxLTEuMzggMS4zOC41LjUgMCAwIDAgLjU1LjgzYy42Ni0uNDQgMS4yMi0xIDEuNjYtMS42NlptLTkuMTUtLjU1YS41LjUgMCAwIDAtLjgzLjU1Yy40NC42NiAxIDEuMjIgMS42NiAxLjY2YS41LjUgMCAwIDAgLjU1LS44MyA1LjAzIDUuMDMgMCAwIDEtMS4zOC0xLjM4Wm0zLjE4IDIuMTJhLjUuNSAwIDAgMC0uMTkuOTkgNi4wMiA2LjAyIDAgMCAwIDIuMzQgMCAuNS41IDAgMSAwLS4yLS45OSA1LjAzIDUuMDMgMCAwIDEtMS45NSAwWk0xMiA4YTQgNCAwIDEgMS04IDAgNCA0IDAgMCAxIDggMFptLTEuNSAwYS41LjUgMCAwIDAtLjI1LS40M2wtMi42My0xLjVhLjc1Ljc1IDAgMCAwLTEuMTIuNjZ2Mi41NGMwIC41OC42Mi45NCAxLjEyLjY1bDIuNjMtMS40OEEuNS41IDAgMCAwIDEwLjUgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVIaW50MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlDaXJjbGVIaW50MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYy0uNCAwLS44LjA0LTEuMTcuMTFhLjUuNSAwIDAgMCAuMi45OSA1LjAzIDUuMDMgMCAwIDEgMS45NSAwIC41LjUgMCAwIDAgLjE5LS45OUE2LjAzIDYuMDMgMCAwIDAgOCAyWm0zLjMzIDEuMDFhLjUuNSAwIDEgMC0uNTUuODNjLjU0LjM3IDEuMDEuODQgMS4zOCAxLjM4YS41LjUgMCAwIDAgLjgzLS41NWMtLjQ0LS42Ni0xLTEuMjItMS42Ni0xLjY2Wm0tNi4xLjgzYS41LjUgMCAxIDAtLjU2LS44M0M0IDMuNDUgMy40NSA0LjAxIDMgNC42N2EuNS41IDAgMSAwIC44My41NWMuMzctLjU0Ljg0LTEuMDEgMS4zOC0xLjM4Wm04LjY2IDIuOTlhLjUuNSAwIDEgMC0uOTkuMiA1LjAzIDUuMDMgMCAwIDEgMCAxLjk1LjUuNSAwIDAgMCAuOTkuMTkgNi4wMiA2LjAyIDAgMCAwIDAtMi4zNFptLTEwLjguMmEuNS41IDAgMCAwLS45OC0uMiA2LjAzIDYuMDMgMCAwIDAgMCAyLjM0LjUuNSAwIDAgMCAuOTktLjIgNS4wMyA1LjAzIDAgMCAxIDAtMS45NVptOS45IDQuM2EuNS41IDAgMCAwLS44My0uNTUgNS4wMyA1LjAzIDAgMCAxLTEuMzggMS4zOC41LjUgMCAwIDAgLjU1LjgzYy42Ni0uNDQgMS4yMi0xIDEuNjYtMS42NlptLTkuMTUtLjU1YS41LjUgMCAwIDAtLjgzLjU1Yy40NC42NiAxIDEuMjIgMS42NiAxLjY2YS41LjUgMCAwIDAgLjU1LS44MyA1LjAzIDUuMDMgMCAwIDEtMS4zOC0xLjM4Wm0zLjE4IDIuMTJhLjUuNSAwIDAgMC0uMTkuOTkgNi4wMiA2LjAyIDAgMCAwIDIuMzQgMCAuNS41IDAgMSAwLS4yLS45OSA1LjAzIDUuMDMgMCAwIDEtMS45NSAwWm0zLjIzLTQuNDZhLjUuNSAwIDAgMCAwLS44OEw3LjYyIDYuMDhhLjc1Ljc1IDAgMCAwLTEuMTIuNjV2Mi41NGMwIC41OC42Mi45NCAxLjEyLjY1bDIuNjMtMS40OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVIaW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZUhpbnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJjLS41MyAwLTEuMDYuMDUtMS41Ni4xNWEuNS41IDAgMCAwIC4yLjk4IDcuMDQgNy4wNCAwIDAgMSAyLjczIDAgLjUuNSAwIDAgMCAuMi0uOThDMTEuMDUgMi4wNSAxMC41MiAyIDEwIDJabTQuNDUgMS4zNWEuNS41IDAgMCAwLS41Ni44MyA3LjA0IDcuMDQgMCAwIDEgMS45MyAxLjkzLjUuNSAwIDEgMCAuODMtLjU2IDguMDQgOC4wNCAwIDAgMC0yLjItMi4yWm0tOC4zNC44M2EuNS41IDAgMSAwLS41Ni0uODMgOC4wNCA4LjA0IDAgMCAwLTIuMiAyLjIuNS41IDAgMSAwIC44My41NkE3LjA0IDcuMDQgMCAwIDEgNi4xIDQuMThaTTMuMTMgOC42M2EuNS41IDAgMCAwLS45OC0uMiA4LjA0IDguMDQgMCAwIDAgMCAzLjEzLjUuNSAwIDAgMCAuOTgtLjIgNy4wNCA3LjA0IDAgMCAxIDAtMi43M1ptMTQuNzItLjJhLjUuNSAwIDEgMC0uOTguMiA3LjA0IDcuMDQgMCAwIDEgMCAyLjc0LjUuNSAwIDEgMCAuOTguMiA4LjAzIDguMDMgMCAwIDAgMC0zLjEzWk00LjE4IDEzLjlhLjUuNSAwIDEgMC0uODMuNTYgOC4wNCA4LjA0IDAgMCAwIDIuMiAyLjIuNS41IDAgMSAwIC41Ni0uODMgNy4wNCA3LjA0IDAgMCAxLTEuOTMtMS45M1ptMTIuNDcuNTZhLjUuNSAwIDAgMC0uODMtLjU2IDcuMDQgNy4wNCAwIDAgMS0xLjkzIDEuOTMuNS41IDAgMSAwIC41Ni44MyA4LjA0IDguMDQgMCAwIDAgMi4yLTIuMlptLTguMDIgMi40MmEuNS41IDAgMSAwLS4yLjk4IDguMDMgOC4wMyAwIDAgMCAzLjEzIDAgLjUuNSAwIDAgMC0uMi0uOTggNy4wNCA3LjA0IDAgMCAxLTIuNzMgMFpNMTYgMTBhNiA2IDAgMSAxLTEyIDAgNiA2IDAgMCAxIDEyIDBaTTkuMTMgNy4xOEEuNzUuNzUgMCAwIDAgOCA3LjgzdjQuMzRjMCAuNTcuNjMuOTQgMS4xMy42NWw0LjEyLTIuMzlhLjUuNSAwIDAgMCAwLS44Nkw5LjEzIDcuMThaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlSGludDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlSGludDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDJjLS41MyAwLTEuMDYuMDUtMS41Ni4xNWEuNS41IDAgMCAwIC4yLjk4IDcuMDQgNy4wNCAwIDAgMSAyLjczIDAgLjUuNSAwIDAgMCAuMi0uOThDMTEuMDUgMi4wNSAxMC41MiAyIDEwIDJabTQuNDUgMS4zNWEuNS41IDAgMCAwLS41Ni44MyA3LjA0IDcuMDQgMCAwIDEgMS45MyAxLjkzLjUuNSAwIDEgMCAuODMtLjU2IDguMDQgOC4wNCAwIDAgMC0yLjItMi4yWm0tOC4zNC44M2EuNS41IDAgMSAwLS41Ni0uODMgOC4wNCA4LjA0IDAgMCAwLTIuMiAyLjIuNS41IDAgMSAwIC44My41NkE3LjA0IDcuMDQgMCAwIDEgNi4xIDQuMThaTTMuMTMgOC42M2EuNS41IDAgMCAwLS45OC0uMiA4LjA0IDguMDQgMCAwIDAgMCAzLjEzLjUuNSAwIDAgMCAuOTgtLjIgNy4wNCA3LjA0IDAgMCAxIDAtMi43M1ptMTQuNzItLjJhLjUuNSAwIDEgMC0uOTguMiA3LjA0IDcuMDQgMCAwIDEgMCAyLjc0LjUuNSAwIDEgMCAuOTguMiA4LjAzIDguMDMgMCAwIDAgMC0zLjEzWk00LjE4IDEzLjlhLjUuNSAwIDEgMC0uODMuNTYgOC4wNCA4LjA0IDAgMCAwIDIuMiAyLjIuNS41IDAgMSAwIC41Ni0uODMgNy4wNCA3LjA0IDAgMCAxLTEuOTMtMS45M1ptMTIuNDcuNTZhLjUuNSAwIDAgMC0uODMtLjU2IDcuMDQgNy4wNCAwIDAgMS0xLjkzIDEuOTMuNS41IDAgMSAwIC41Ni44MyA4LjA0IDguMDQgMCAwIDAgMi4yLTIuMlptLTguMDIgMi40MmEuNS41IDAgMSAwLS4yLjk4IDguMDMgOC4wMyAwIDAgMCAzLjEzIDAgLjUuNSAwIDAgMC0uMi0uOTggNy4wNCA3LjA0IDAgMCAxLTIuNzMgMFpNOCA3LjgzYzAtLjU3LjYzLS45NCAxLjEzLS42NWw0LjEyIDIuMzlhLjUuNSAwIDAgMSAwIC44NmwtNC4xMiAyLjM5QS43NS43NSAwIDAgMSA4IDEyLjE3VjcuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlSGludDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlDaXJjbGVIaW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYy0uNjcgMC0xLjMyLjA3LTEuOTUuMTlhLjc1Ljc1IDAgMCAwIC4yOSAxLjQ3IDguNTUgOC41NSAwIDAgMSAzLjMyIDAgLjc1Ljc1IDAgMCAwIC4zLTEuNDdDMTMuMzEgMi4wNyAxMi42NSAyIDEyIDJaTTcuMjggNC45M2EuNzUuNzUgMCAwIDAtLjg0LTEuMjUgMTAuMDUgMTAuMDUgMCAwIDAtMi43NiAyLjc2Ljc1Ljc1IDAgMSAwIDEuMjUuODQgOC41NSA4LjU1IDAgMCAxIDIuMzUtMi4zNVptMTAuMjgtMS4yNWEuNzUuNzUgMCAwIDAtLjg0IDEuMjUgOC41NSA4LjU1IDAgMCAxIDIuMzUgMi4zNS43NS43NSAwIDEgMCAxLjI1LS44NCAxMC4wNSAxMC4wNSAwIDAgMC0yLjc2LTIuNzZabTQuMjUgNi4zN2EuNzUuNzUgMCAwIDAtMS40Ny4yOSA4LjU0IDguNTQgMCAwIDEgMCAzLjMyLjc1Ljc1IDAgMSAwIDEuNDcuMyAxMC4wNSAxMC4wNSAwIDAgMCAwLTMuOTFabS0xOC4xNS4yOWEuNzUuNzUgMCAwIDAtMS40Ny0uMyAxMC4wNSAxMC4wNSAwIDAgMCAwIDMuOTEuNzUuNzUgMCAwIDAgMS40Ny0uMjkgOC41NSA4LjU1IDAgMCAxIDAtMy4zMlptMS4yNyA2LjM4YS43NS43NSAwIDAgMC0xLjI1Ljg0IDEwLjA1IDEwLjA1IDAgMCAwIDIuNzYgMi43Ni43NS43NSAwIDAgMCAuODQtMS4yNSA4LjU1IDguNTUgMCAwIDEtMi4zNS0yLjM1Wm0xNS4zOS44NGEuNzUuNzUgMCAwIDAtMS4yNS0uODQgOC41NSA4LjU1IDAgMCAxLTIuMzUgMi4zNS43NS43NSAwIDEgMCAuODQgMS4yNSAxMC4wNSAxMC4wNSAwIDAgMCAyLjc2LTIuNzZabS05Ljk4IDIuNzhhLjc1Ljc1IDAgMSAwLS4zIDEuNDcgMTAuMDUgMTAuMDUgMCAwIDAgMy45MSAwIC43NS43NSAwIDAgMC0uMjktMS40NyA4LjU0IDguNTQgMCAwIDEtMy4zMiAwWk0xOS4yNSAxMmE3LjI1IDcuMjUgMCAxIDEtMTQuNSAwIDcuMjUgNy4yNSAwIDAgMSAxNC41IDBabS04LjQtMy44NUExLjI1IDEuMjUgMCAwIDAgOSA5LjI1djUuNWMwIC45NSAxLjAyIDEuNTUgMS44NiAxLjA5bDUuNzUtMy4xOWEuNzUuNzUgMCAwIDAgMC0xLjNsLTUuNzUtMy4yWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZUhpbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZUhpbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAyYy0uNjcgMC0xLjMyLjA3LTEuOTUuMTlhLjc1Ljc1IDAgMCAwIC4yOSAxLjQ3IDguNTUgOC41NSAwIDAgMSAzLjMyIDAgLjc1Ljc1IDAgMCAwIC4zLTEuNDdDMTMuMzEgMi4wNyAxMi42NSAyIDEyIDJaTTcuMjggNC45M2EuNzUuNzUgMCAwIDAtLjg0LTEuMjUgMTAuMDUgMTAuMDUgMCAwIDAtMi43NiAyLjc2Ljc1Ljc1IDAgMSAwIDEuMjUuODQgOC41NSA4LjU1IDAgMCAxIDIuMzUtMi4zNVptMTAuMjgtMS4yNWEuNzUuNzUgMCAwIDAtLjg0IDEuMjUgOC41NSA4LjU1IDAgMCAxIDIuMzUgMi4zNS43NS43NSAwIDEgMCAxLjI1LS44NCAxMC4wNSAxMC4wNSAwIDAgMC0yLjc2LTIuNzZabTQuMjUgNi4zN2EuNzUuNzUgMCAwIDAtMS40Ny4yOSA4LjU0IDguNTQgMCAwIDEgMCAzLjMyLjc1Ljc1IDAgMSAwIDEuNDcuMyAxMC4wNSAxMC4wNSAwIDAgMCAwLTMuOTFabS0xOC4xNS4yOWEuNzUuNzUgMCAwIDAtMS40Ny0uMyAxMC4wNSAxMC4wNSAwIDAgMCAwIDMuOTEuNzUuNzUgMCAwIDAgMS40Ny0uMjkgOC41NSA4LjU1IDAgMCAxIDAtMy4zMlptMS4yNyA2LjM4YS43NS43NSAwIDAgMC0xLjI1Ljg0IDEwLjA1IDEwLjA1IDAgMCAwIDIuNzYgMi43Ni43NS43NSAwIDAgMCAuODQtMS4yNSA4LjU1IDguNTUgMCAwIDEtMi4zNS0yLjM1Wm0xNS4zOS44NGEuNzUuNzUgMCAwIDAtMS4yNS0uODQgOC41NSA4LjU1IDAgMCAxLTIuMzUgMi4zNS43NS43NSAwIDEgMCAuODQgMS4yNSAxMC4wNSAxMC4wNSAwIDAgMCAyLjc2LTIuNzZabS05Ljk4IDIuNzhhLjc1Ljc1IDAgMSAwLS4zIDEuNDcgMTAuMDUgMTAuMDUgMCAwIDAgMy45MSAwIC43NS43NSAwIDAgMC0uMjktMS40NyA4LjU0IDguNTQgMCAwIDEtMy4zMiAwWk05IDkuMjRjMC0uOTQgMS4wMi0xLjU1IDEuODYtMS4wOWw1Ljc1IDMuMmEuNzUuNzUgMCAwIDEgMCAxLjNsLTUuNzUgMy4xOUExLjI1IDEuMjUgMCAwIDEgOSAxNC43NHYtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZVNwYXJrbGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlU3BhcmtsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTAuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yIDIuMiAwIDAgMC0xLjQtMS40TDcuMjggMy45YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEgOWE2IDYgMCAwIDEgNS4wNi01LjkzIDEuNDMgMS40MyAwIDAgMCAuOTEgMS43OGwxLjA2LjM1Yy4xNS4wNS4zLjEzLjQ3LjI5LjExLjExLjIuMjQuMy40N2wuMzUgMS4xYy4xLjI0LjI1LjQ3LjUyLjY4LjE0LjEuMy4xNy40NS4yMWExLjMgMS4zIDAgMCAwIC43NyAxLjc5bC43Ny4yNWMuMDguMDMuMTYuMDguMjIuMTQuMDcuMDYuMS4xNC4xNC4yMmwuMjYuOGMuMDQuMTIuMS4yMy4xOC4zM0E2IDYgMCAwIDEgMSA5Wm04LjUgMGEuNS41IDAgMCAwLS4yNS0uNDNsLTIuNjMtMS41YS43NS43NSAwIDAgMC0xLjEyLjY2djIuNTRjMCAuNTguNjIuOTQgMS4xMi42NWwyLjYzLTEuNDhBLjUuNSAwIDAgMCA5LjUgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVTcGFya2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlDaXJjbGVTcGFya2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTAuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yIDIuMiAwIDAgMC0xLjQtMS40TDcuMjggMy45YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEgOWE2IDYgMCAwIDEgNS4wNi01LjkzIDEuNDMgMS40MyAwIDAgMCAuMDYgMSA1IDUgMCAxIDAgNS43NSA2LjA1Yy4wOC4wNy4xMi4xNS4xNS4yM2wuMjYuOGMuMDQuMTIuMS4yMy4xOC4zM0E2IDYgMCAwIDEgMSA5Wm04LjUgMGEuNS41IDAgMCAxLS4yNS40NGwtMi42MyAxLjQ4YS43NS43NSAwIDAgMS0xLjEyLS42NVY3LjczYzAtLjU4LjYyLS45NCAxLjEyLS42NWwyLjYzIDEuNDhBLjUuNSAwIDAgMSA5LjUgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlDaXJjbGVTcGFya2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZVNwYXJrbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEyYy0uMjcgMC0uNTItLjA4LS43NC0uMjNhMS40IDEuNCAwIDAgMS0uNDgtLjYybC0uMjYtLjhhLjUyLjUyIDAgMCAwLS4xNC0uMjIuNjQuNjQgMCAwIDAtLjIyLS4xNGwtLjc3LS4yNWMtLjI3LS4xLS40OS0uMjYtLjY1LS40OGExLjMgMS4zIDAgMCAxLS4xMi0xLjMgMS4zMiAxLjMyIDAgMCAxLS40NS0uMjIgMS41MSAxLjUxIDAgMCAxLS41Mi0uNjlsLS4zNi0xLjA5YTEuMjcgMS4yNyAwIDAgMC0uMjktLjQ3IDEuMyAxLjMgMCAwIDAtLjQ3LS4zbC0xLjA2LS4zNEExLjQxIDEuNDEgMCAwIDEgMTAgMy41YTEuNCAxLjQgMCAwIDEgLjk1LTEuMzVsLjIyLS4wN2E4IDggMCAxIDAgNi41OSA5LjlsLS4yNi4wMlpNOCA3LjgzYzAtLjU3LjYzLS45NCAxLjEzLS42NWw0LjEyIDIuMzlhLjUuNSAwIDAgMSAwIC44NmwtNC4xMiAyLjM5QS43NS43NSAwIDAgMSA4IDEyLjE3VjcuODNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5Q2lyY2xlU3BhcmtsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlU3BhcmtsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEyYy0uMjYgMC0uNTEtLjA4LS43My0uMjJBNyA3IDAgMSAxIDEwLjEgM2ExLjQyIDEuNDIgMCAwIDEgLjg2LS44NWwuMjItLjA3YTggOCAwIDEgMCA2LjU5IDkuOWwtLjI2LjAyWk05LjEzIDcuMThBLjc1Ljc1IDAgMCAwIDggNy44M3Y0LjM0YzAgLjU3LjYzLjk0IDEuMTMuNjVsNC4xMi0yLjM5YS41LjUgMCAwIDAgMC0uODZMOS4xMyA3LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZVNwYXJrbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5Q2lyY2xlU3BhcmtsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTYuMDkgNi40MWEyLjg0IDIuODQgMCAwIDAtMS4zNS0uOTVMMTMuMzYgNWEuNTQuNTQgMCAwIDEgMC0xLjAzbDEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMCAxLjc2LTEuNzdsLjAxLS4wMy40NS0xLjM4YS41NC41NCAwIDAgMSAxLjAzIDBsLjQ0IDEuMzhhMi44NCAyLjg0IDAgMCAwIDEuOCAxLjhsMS4zOC40NC4wMy4wMWEuNTQuNTQgMCAwIDEgMCAxLjAzbC0xLjM4LjQ0YTIuODQgMi44NCAwIDAgMC0xLjggMS44bC0uNDUgMS4zOGEuNTQuNTQgMCAwIDEtMS4wMyAwbC0uNDQtMS4zOGMtLjEtLjMtLjI1LS42LS40NS0uODVabTcuNyAzLjgtLjc3LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlptLTIuMzMgMy44NGMuMTIgMCAuMjQtLjAxLjM0LS4wNGExMCAxMCAwIDEgMS03LjA0LTExLjYyIDEuOCAxLjggMCAwIDEtLjM3LjE3TDEzLjA1IDNjLS42My4yMi0xLjA1LjgtMS4wNSAxLjQ3IDAgLjYzLjQyIDEuMjggMSAxLjUzbDEuNC40NmMuNTIuMTcgMS4wMS41NyAxLjE5IDEuMDlMMTYgOWExLjU1IDEuNTUgMCAwIDAgMi4xNC44OWMtLjEyLjItLjE4LjQzLS4xOC42NiAwIC41NC4zNiAxLjA1Ljg3IDEuMjNsLjI0LjA3Yy4zNi4wOS44LjIuOTEuNTVsLjAxLjA0Yy4yNC43NS41MSAxLjYxIDEuNDcgMS42MVptLTEwLjYtNS45QTEuMjUgMS4yNSAwIDAgMCA5IDkuMjV2NS41YzAgLjk1IDEuMDIgMS41NiAxLjg2IDEuMWw1Ljc1LTMuMmEuNzUuNzUgMCAwIDAgMC0xLjNsLTUuNzUtMy4yWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheUNpcmNsZVNwYXJrbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheUNpcmNsZVNwYXJrbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi4wOSA2LjQxYTIuODQgMi44NCAwIDAgMC0xLjM1LS45NUwxMy4zNiA1YS41NC41NCAwIDAgMSAwLTEuMDNsMS4zOC0uNDRhMi44NCAyLjg0IDAgMCAwIDEuNzYtMS43N2wuMDEtLjAzLjQ1LTEuMzhhLjU0LjU0IDAgMCAxIDEuMDMgMGwuNDQgMS4zOGEyLjg0IDIuODQgMCAwIDAgMS44IDEuOGwxLjM4LjQ0LjAzLjAxYS41NC41NCAwIDAgMSAwIDEuMDNsLTEuMzguNDRhMi44NCAyLjg0IDAgMCAwLTEuOCAxLjhsLS40NSAxLjM4YS41NC41NCAwIDAgMS0xLjAzIDBsLS40NC0xLjM4Yy0uMS0uMy0uMjUtLjYtLjQ1LS44NVptNy43IDMuOC0uNzctLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMiAyYTEwIDEwIDAgMCAxIDIuNzYuMzkgMS44IDEuOCAwIDAgMS0uMzcuMTdMMTMuMDUgM2MtLjI5LjEtLjUzLjI4LS43MS41SDEyYTguNSA4LjUgMCAxIDAgOC4zOCA5LjkyYy4yMi4zNi41NC42MyAxLjA4LjYzLjEyIDAgLjI0LS4wMS4zNC0uMDRBMTAgMTAgMCAxIDEgMTIgMlptLTEuMTQgNi4xNUExLjI1IDEuMjUgMCAwIDAgOSA5LjI1djUuNWMwIC45NSAxLjAyIDEuNTYgMS44NiAxLjFsNS43NS0zLjJhLjc1Ljc1IDAgMCAwIDAtMS4zbC01Ljc1LTMuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsYXlNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlNdWx0aXBsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC40NCAxMi41NmExLjUgMS41IDAgMCAwIDEuOC4yNGw4LTQuNWExLjUgMS41IDAgMCAwIDAtMi42TDYuMjEgMS4xOEExLjUyIDEuNTIgMCAwIDAgNCAyLjV2OWMwIC40LjE2Ljc4LjQ0IDEuMDZabTcuMzItMS43MiAxLjIyLS42OC4wMi4yNWExLjUxIDEuNTEgMCAwIDEtLjc2IDEuMzFsLTUuMDggMi44NmMtLjUxLjI3LTEuMDguNDEtMS42Ni40Mi0uMyAwLS42MS0uMDQtLjkxLS4xM0EzLjQ2IDMuNDYgMCAwIDEgMiAxMS41VjUuOTFhMS40OCAxLjQ4IDAgMCAxIDEtMS4zOXY2Ljk4YTIuNTEgMi41MSAwIDAgMCAzLjcgMi4xOWw1LjA1LTIuODRhLjAxLjAxIDAgMCAwIC4wMS0uMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5TXVsdGlwbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheU11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC40NCAxMi41NmExLjUgMS41IDAgMCAwIDEuOC4yNGw4LTQuNWExLjUgMS41IDAgMCAwIDAtMi42TDYuMjEgMS4xOEExLjUyIDEuNTIgMCAwIDAgNCAyLjV2OWMwIC40LjE2Ljc4LjQ0IDEuMDZabS43LTEwLjQxYS41LjUgMCAwIDEgLjYtLjA5bDggNC41YS41LjUgMCAwIDEgMCAuODdsLTcuOTkgNC41QS41LjUgMCAwIDEgNSAxMS41di05YS41LjUgMCAwIDEgLjE1LS4zNVptNi42MiA4LjY5IDEuMjItLjY4LjAyLjI1YTEuNTEgMS41MSAwIDAgMS0uNzYgMS4zMWwtNS4wOCAyLjg2Yy0uNTEuMjctMS4wOC40MS0xLjY2LjQyLS4zIDAtLjYxLS4wNC0uOTEtLjEzQTMuNDYgMy40NiAwIDAgMSAyIDExLjVWNS45MWExLjQ4IDEuNDggMCAwIDEgMS0xLjM5djYuOThhMi41MSAyLjUxIDAgMCAwIDMuNyAyLjE5bDUuMDUtMi44NC4wMS0uMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5U2V0dGluZ3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5U2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3LjIyIDguNjhhMS41IDEuNSAwIDAgMSAwIDIuNjNMMTIgMTQuMkE1LjUgNS41IDAgMCAwIDUgOS4yVjQuNWExLjUgMS41IDAgMCAxIDIuMjMtMS4zMmwxMCA1LjVaTTQuMDYgMTEuNDRhMiAyIDAgMCAxLTEuNDMgMi40OGwtLjQ2LjEyYTQuNyA0LjcgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSA0IDE3LjY2bC0uMTMuNDJjLjI2LjIuNTQuMzguODQuNTJsLjMyLS4zNWEyIDIgMCAwIDEgMi45MSAwbC4zNC4zNmMuMy0uMTMuNTctLjMuODItLjVsLS4xNi0uNTVhMiAyIDAgMCAxIDEuNDQtMi40OGwuNDYtLjEyYTQuNyA0LjcgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDkgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVpNNi41IDE1LjVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUGxheVNldHRpbmdzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsYXlTZXR0aW5nczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjIyIDguNjlhMS41IDEuNSAwIDAgMSAwIDIuNjJsLTUuMjMgMi44OGE1LjUgNS41IDAgMCAwLS4xNi0xLjA1bDQuOS0yLjdhLjUuNSAwIDAgMCAwLS44OGwtOS45OS01LjVBLjUuNSAwIDAgMCA2IDQuNXY0LjUyYy0uMzQuMDMtLjY4LjEtMSAuMTlWNC41YTEuNSAxLjUgMCAwIDEgMi4yMi0xLjMybDEwIDUuNVpNNC4wNiAxMS40NGEyIDIgMCAwIDEtMS40MyAyLjQ4bC0uNDYuMTJhNC43IDQuNyAwIDAgMCAuMDEgMS4wMWwuMzUuMDlBMiAyIDAgMCAxIDQgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40NC0yLjQ4bC40Ni0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgOSAxMS4zNGwuMTMtLjQyYy0uMjYtLjItLjU0LS4zOC0uODQtLjUybC0uMzIuMzVhMiAyIDAgMCAxLTIuOTEgMGwtLjM0LS4zNmMtLjMuMTMtLjU3LjMtLjgyLjVsLjE1LjU1Wk02LjUgMTUuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5aW5nQ2FyZHMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbGF5aW5nQ2FyZHMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuMDcgMTNhMiAyIDAgMCAwIDEuNDEgMi40Nmw1LjQ2IDEuNDdhMiAyIDAgMCAwIDIuNDUtMS40MUwxNi45MyA2YTIgMiAwIDAgMC0xLjQxLTIuNDZsLTUuNDYtMS40N0EyIDIgMCAwIDAgNy42IDMuNUw1LjA3IDEzWk01IDR2NS4zOGwxLjc3LTYuNjRjLjA3LS4yNy4xOS0uNTIuMzQtLjc0SDdhMiAyIDAgMCAwLTIgMlpNMi42NyA1LjUgNCAxMC40OFY0YTMgMyAwIDAgMSAuMTYtLjk2bC0uMDguMDJBMiAyIDAgMCAwIDIuNjcgNS41Wk0xMyA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTMgOGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbGF5aW5nQ2FyZHMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGxheWluZ0NhcmRzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS4wNyAxM2EyIDIgMCAwIDAgMS40MSAyLjQ2bDUuNDYgMS40N2EyIDIgMCAwIDAgMi40NS0xLjQxTDE2LjkzIDZhMiAyIDAgMCAwLTEuNDEtMi40NmwtNS40Ni0xLjQ3QTIgMiAwIDAgMCA3LjYgMy41TDUuMDcgMTNabTEuNjcgMS41YTEgMSAwIDAgMS0uNy0xLjIzbDIuNTMtOS41MmExIDEgMCAwIDEgMS4yMy0uNzFsNS40NiAxLjQ3YTEgMSAwIDAgMSAuNyAxLjIzbC0yLjUzIDkuNTJhMSAxIDAgMCAxLTEuMjMuN0w2Ljc0IDE0LjVaTTQgMTAuNDcgMi42NyA1LjUxYTIgMiAwIDAgMSAxLjQxLTIuNDVsLjA4LS4wMkEzIDMgMCAwIDAgNCA0di4xOWExIDEgMCAwIDAtLjM2IDEuMDZMNCA2LjZ2My44NlptMS0xLjA5VjRjMC0xLjEuOS0yIDItMmguMWEyLjUgMi41IDAgMCAwLS4zMy43NGwtLjA4LjMxQTEgMSAwIDAgMCA2IDR2MS42NEw1IDkuMzhaTTEzIDZhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMyA4YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk02LjAxIDYuNzhhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMEw0LjAzIDdhMy40NyAzLjQ3IDAgMCAwLS4zMiA0LjU4bC0yLjA2IDIuMDdhLjUuNSAwIDAgMCAuNy43bDIuMDgtMi4wN2MuNi40NCAxLjMuNjYgMi4wMy42Ni45NCAwIDEuODktLjM3IDIuNi0xLjA4bC4xNC0uMTRjLjQ4LS40OC40OC0xLjI4IDAtMS43Nkw2IDYuNzdabTguMzQtNS4xM2EuNS41IDAgMCAwLS43IDBsLTIuMDcgMi4wN2EzLjYxIDMuNjEgMCAwIDAtNC42NC40MmwtLjEzLjE0YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsMy4xOCAzLjE5YTEuMjQgMS4yNCAwIDAgMCAxLjc3IDBsLjIyLS4yMmEzLjQ3IDMuNDcgMCAwIDAgLjMxLTQuNmwyLjA2LTIuMDZhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi4wMSA2Ljc4YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDBMNC4wMyA3YTMuNDcgMy40NyAwIDAgMC0uMzIgNC41OGwtMi4wNiAyLjA3YS41LjUgMCAwIDAgLjcuN2wyLjA4LTIuMDdjLjYuNDQgMS4zLjY2IDIuMDMuNjYuOTQgMCAxLjg5LS4zNyAyLjYtMS4wOGwuMTQtLjE0Yy40OC0uNDguNDgtMS4yOCAwLTEuNzZMNiA2Ljc3Wm0yLjQ4IDQuMjQtLjEzLjEzYy0xIDEtMi42IDEuMDYtMy41Ny4xNGEyLjQ4IDIuNDggMCAwIDEtLjA2LTMuNTlsLjIyLS4yMmEuMjUuMjUgMCAwIDEgLjE4LS4wN2MuMDcgMCAuMTMuMDIuMTguMDdsMy4xOCAzLjE4Yy4xLjEuMS4yNiAwIC4zNlptNS44Ni05LjM3YS41LjUgMCAwIDAtLjcgMGwtMi4wNyAyLjA3YTMuNjEgMy42MSAwIDAgMC00LjY0LjQybC0uMTMuMTRhMS4yNSAxLjI1IDAgMCAwIDAgMS43NmwzLjE4IDMuMTlhMS4yNCAxLjI0IDAgMCAwIDEuNzcgMGwuMjItLjIyYTMuNDcgMy40NyAwIDAgMCAuMzEtNC42bDIuMDYtMi4wNmEuNS41IDAgMCAwIDAtLjdaTTExLjI3IDguM2wtLjIyLjIyYy0uMS4xLS4yNi4xLS4zNiAwTDcuNTEgNS4zNGEuMjUuMjUgMCAwIDEgMC0uMzZsLjEzLS4xM2EyLjY5IDIuNjkgMCAwIDEgMS45LS43OWMuNjEgMCAxLjIxLjIxIDEuNjcuNjVhMi40OCAyLjQ4IDAgMCAxIC4wNiAzLjU5WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdDb25uZWN0ZWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3Ljc4IDMuMjhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi40NSAyLjQ1YTQuMDQgNC4wNCAwIDAgMC01LjEyLjQ4bC0uMy4zYTEuNDkgMS40OSAwIDAgMCAwIDIuMWwzLjYgMy42Yy41OC41OSAxLjUyLjU5IDIuMSAwbC4zLS4zYTQuMDQgNC4wNCAwIDAgMCAuNDgtNS4xMmwyLjQ1LTIuNDVaTTcuNTUgOC44NWExLjQ5IDEuNDkgMCAwIDAtMi4xIDBsLS4zLjNhNC4wNCA0LjA0IDAgMCAwLS40OCA1LjEybC0yLjQ1IDIuNDVhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwyLjQ1LTIuNDVhNC4wNCA0LjA0IDAgMCAwIDUuMTItLjQ4bC4zLS4zYy41OS0uNTguNTktMS41MiAwLTIuMWwtMy42LTMuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNC40OCA0LjhhNC4wNCA0LjA0IDAgMCAwLTUuMzMuMzRsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDMuNiAzLjZjLjU4LjU5IDEuNTIuNTkgMi4xIDBsLjMtLjNhNC4wNCA0LjA0IDAgMCAwIC4zNC01LjMzbDIuNjYtMi42N1ptLTQgNy42Yy0uMi4xOS0uNS4xOS0uNyAwbC0zLjYtMy42Yy0uMTktLjItLjE5LS41IDAtLjdsLjMtLjNhMy4wNCAzLjA0IDAgMCAxIDQuMyA0LjNsLS4zLjNabS02LjMtMS42YTEuNDkgMS40OSAwIDAgMC0yLjEgMGwtLjMuM2E0LjA0IDQuMDQgMCAwIDAtLjM0IDUuMzNsLTIuNjYgMi42N2EuNS41IDAgMCAwIC43LjdsMi42Ny0yLjY2YTQuMDQgNC4wNCAwIDAgMCA1LjMzLS4zNGwuMy0uM2MuNTktLjU4LjU5LTEuNTIgMC0yLjFsLTMuNi0zLjZabS0xLjQuN2MuMi0uMTkuNS0uMTkuNyAwbDMuNiAzLjZjLjE5LjIuMTkuNSAwIC43bC0uMy4zYTMuMDQgMy4wNCAwIDEgMS00LjMtNC4zbC4zLS4zWlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdDb25uZWN0ZWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE5LjQ5IDUuNTdhNS45NyA1Ljk3IDAgMCAxLTEuOSA4Ljk2Yy0uNjQuMzUtMS40Mi4xNC0xLjk0LS4zOGwtNS44LTUuOGMtLjUyLS41Mi0uNzMtMS4zLS4zOC0xLjk1YTYgNiAwIDAgMSA4Ljk2LTEuODlsMi4yOS0yLjI5YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIuMjkgMi4zWk0zLjI4IDIxLjc4bDIuMy0yLjI5YTUuOTcgNS45NyAwIDAgMCA4Ljk1LTEuOWMuMzUtLjY0LjE0LTEuNDItLjM4LTEuOTRsLTUuOC01LjhjLS41Mi0uNTItMS4zLS43My0xLjk1LS4zOGE2IDYgMCAwIDAtMS44OSA4Ljk2bC0yLjI5IDIuMjlhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE5LjQ5IDUuNTdhNS45NyA1Ljk3IDAgMCAxLTEuOSA4Ljk2Yy0uNjQuMzUtMS40Mi4xNC0xLjk0LS4zOGwtNS44LTUuOGMtLjUyLS41Mi0uNzMtMS4zLS4zOC0xLjk1YTYgNiAwIDAgMSA4Ljk2LTEuODlsMi4yOS0yLjI5YS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTIuMjkgMi4zWm0tMi4wMiA3LjI2YTQuNSA0LjUgMCAxIDAtNi4zLTYuM2MtLjI3LjM1LS4xOS44My4xMiAxLjE0bDUuMDQgNS4wNGMuMzEuMy44LjM5IDEuMTQuMTJaTTMuMjggMjEuNzhsMi4zLTIuMjlhNS45NyA1Ljk3IDAgMCAwIDguOTUtMS45Yy4zNS0uNjQuMTQtMS40Mi0uMzgtMS45NGwtNS44LTUuOGMtLjUyLS41Mi0xLjMtLjczLTEuOTUtLjM4YTYgNiAwIDAgMC0xLjg5IDguOTZsLTIuMjkgMi4yOWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2Wm00LjM5LTEwLjQ5IDUuMDQgNS4wNGMuMy4zMS4zOS44LjEyIDEuMTRhNC41IDQuNSAwIDEgMS02LjMtNi4zYy4zNS0uMjcuODMtLjE5IDEuMTQuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTcuNzggMy4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjQ1IDIuNDVhNC4wNCA0LjA0IDAgMCAwLTUuMTIuNDhsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDIuNDYgMi40N2E1LjQ4IDUuNDggMCAwIDEgNC41NS0uODUgNC4wNCA0LjA0IDAgMCAwLS41My0zLjQ0bDIuNDUtMi40NVpNNy41NSA4Ljg1bDIuNDcgMi40NmE1LjQ4IDUuNDggMCAwIDAtLjg1IDQuNTUgNC4wNCA0LjA0IDAgMCAxLTMuNDQtLjUzbC0yLjQ1IDIuNDVhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwyLjQ1LTIuNDVhNC4wNCA0LjA0IDAgMCAxIC40OC01LjEybC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMFptOS40NSA5LjRhNC41IDQuNSAwIDEgMS01LTcuNSA0LjUgNC41IDAgMCAxIDUgNy41Wm0tMi4xNS02LjFhLjUuNSAwIDAgMC0uODUuMzVWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVhLjUuNSAwIDAgMC0uMTUtLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZEFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcuOTYgMi4zYS41LjUgMCAwIDAtLjgyLS4xNWwtMi43IDIuN2E0LjA0IDQuMDQgMCAwIDAtNS4zMy4zM2wtLjYuNjFhMS4wNSAxLjA1IDAgMCAwIDAgMS40OWwyLjc2IDIuNzZjLjI4LS4yLjU4LS4zNy44OS0uNTJMOS41MiA2Ljg4YS41LjUgMCAwIDEgMC0uN2wuMy0uM2EzLjAzIDMuMDMgMCAwIDEgNC4yOSAwdi4wMmEzLjA0IDMuMDQgMCAwIDEgLjczIDMuMTFjLjM0LjAyLjY4LjA3IDEgLjE2YTQuMDMgNC4wMyAwIDAgMC0uNjktMy42MmwyLjctMi43YS41LjUgMCAwIDAgLjExLS41NFpNNy4yOCA4LjVsMi43NyAyLjc3Yy0uMi4yOC0uMzguNTctLjUzLjg4TDYuOSA5LjUyYS40OS40OSAwIDAgMC0uNyAwbC0uMy4zYTMuMDQgMy4wNCAwIDAgMCAwIDQuMjloLjAxYTMuMDMgMy4wMyAwIDAgMCAzLjExLjczYy4wMi4zNS4wNy42OC4xNSAxYTQuMDMgNC4wMyAwIDAgMS0zLjYtLjY5bC0yLjcgMi43YS41LjUgMCAxIDEtLjcxLS43bDIuNy0yLjdhNC4wMyA0LjAzIDAgMCAxIC4zMy01LjM0bC4zLS4zLjMxLS4zMWExLjA1IDEuMDUgMCAwIDEgMS40OSAwWk0xNyAxOC4yNGE0LjUgNC41IDAgMSAxLTUtNy40OCA0LjUgNC41IDAgMCAxIDUgNy40OFptLTIuMTUtNi4xYS41LjUgMCAwIDAtLjg1LjM2VjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41YS41LjUgMCAwIDAtLjE1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWRDaGVja21hcmsyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkQ2hlY2ttYXJrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNy43OCAzLjI4YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTIuNDUgMi40NWE0LjA0IDQuMDQgMCAwIDAtNS4xMi40OGwtLjMuM2ExLjQ5IDEuNDkgMCAwIDAgMCAyLjFsMi40NiAyLjQ3YTUuNDggNS40OCAwIDAgMSA0LjU1LS44NSA0LjA0IDQuMDQgMCAwIDAtLjUzLTMuNDRsMi40NS0yLjQ1Wk03LjU1IDguODVsMi40NyAyLjQ2YTUuNDggNS40OCAwIDAgMC0uODUgNC41NSA0LjA0IDQuMDQgMCAwIDEtMy40NC0uNTNsLTIuNDUgMi40NWEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDIuNDUtMi40NWE0LjA0IDQuMDQgMCAwIDEgLjQ4LTUuMTJsLjMtLjNhMS40OSAxLjQ5IDAgMCAxIDIuMSAwWk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdDb25uZWN0ZWRDaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZENoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNC40OCA0LjhhNC4wNCA0LjA0IDAgMCAwLTUuMzMuMzRsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDIuNDYgMi40N2MuMjgtLjIuNTgtLjM4LjktLjUyTDkuNTUgNi44NWMtLjE5LS4yLS4xOS0uNSAwLS43bC4zLS4zYTMuMDQgMy4wNCAwIDAgMSA1LjAxIDMuMTZjLjM1LjAyLjY4LjA4IDEgLjE2LjM3LTEuMjMuMTUtMi42LS42Ny0zLjY1bDIuNjYtMi42N1ptLTEwLjMgNiAyLjQ3IDIuNDZjLS4yLjI4LS4zOC41OC0uNTIuOUw2Ljg1IDkuNTVjLS4yLS4xOS0uNS0uMTktLjcgMGwtLjMuM2EzLjA0IDMuMDQgMCAwIDAgMy4xNiA1LjAxYy4wMi4zNS4wOC42OC4xNiAxLTEuMjMuMzctMi42LjE1LTMuNjUtLjY3bC0yLjY3IDIuNjZhLjUuNSAwIDAgMS0uNy0uN2wyLjY2LTIuNjdhNC4wNCA0LjA0IDAgMCAxIC4zNC01LjMzbC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMFpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkU2V0dGluZ3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkU2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3Ljc4IDMuMjhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi40NSAyLjQ1YTQuMDQgNC4wNCAwIDAgMC01LjEyLjQ4bC0uMy4zYTEuNDkgMS40OSAwIDAgMCAwIDIuMWwyLjQ2IDIuNDdhNS40OCA1LjQ4IDAgMCAxIDQuNTUtLjg1IDQuMDQgNC4wNCAwIDAgMC0uNTMtMy40NGwyLjQ1LTIuNDVaTTcuNTUgOC44NWwyLjQ3IDIuNDZhNS40OCA1LjQ4IDAgMCAwLS44NSA0LjU1IDQuMDQgNC4wNCAwIDAgMS0zLjQ0LS41M2wtMi40NSAyLjQ1YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMi40NS0yLjQ1YTQuMDQgNC4wNCAwIDAgMSAuNDgtNS4xMmwuMy0uM2ExLjQ5IDEuNDkgMCAwIDEgMi4xIDBabTMuMDkgNS4wN2EyIDIgMCAwIDAgMS40My0yLjQ4bC0uMTYtLjU1Yy4yNS0uMi41My0uMzcuODItLjVsLjM0LjM2YTIgMiAwIDAgMCAyLjkgMGwuMzMtLjM1Yy4zLjE0LjU4LjMyLjg0LjUybC0uMTMuNDJhMiAyIDAgMCAwIDEuNDYgMi41MmwuMzUuMDlhNC43IDQuNyAwIDAgMSAwIDEuMDFsLS40NS4xMmEyIDIgMCAwIDAtMS40MyAyLjQ4bC4xNS41NWMtLjI1LjItLjUzLjM3LS44Mi41bC0uMzQtLjM2YTIgMiAwIDAgMC0yLjkgMGwtLjMzLjM1Yy0uMy0uMTQtLjU4LS4zMi0uODQtLjUybC4xMy0uNDJhMiAyIDAgMCAwLTEuNDYtMi41MmwtLjM1LS4wOWE0LjcxIDQuNzEgMCAwIDEgMC0xLjAxbC40Ni0uMTJabTIuODYuNThhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Nvbm5lY3RlZFNldHRpbmdzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdDb25uZWN0ZWRTZXR0aW5nczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3Ljg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN0wxNC40OCA0LjhhNC4wNCA0LjA0IDAgMCAwLTUuMzMuMzRsLS4zLjNhMS40OSAxLjQ5IDAgMCAwIDAgMi4xbDIuNDYgMi40N2MuMjgtLjIuNTgtLjM4LjktLjUyTDkuNTUgNi44NWMtLjE5LS4yLS4xOS0uNSAwLS43bC4zLS4zYTMuMDQgMy4wNCAwIDAgMSA1LjAxIDMuMTZjLjM1LjAyLjY4LjA4IDEgLjE2LjM3LTEuMjMuMTUtMi42LS42Ny0zLjY1bDIuNjYtMi42N1ptLTEwLjMgNiAyLjQ3IDIuNDZjLS4yLjI4LS4zOC41OC0uNTIuOUw2Ljg1IDkuNTVjLS4yLS4xOS0uNS0uMTktLjcgMGwtLjMuM2EzLjA0IDMuMDQgMCAwIDAgMy4xNiA1LjAxYy4wMi4zNS4wOC42OC4xNiAxLTEuMjMuMzctMi42LjE1LTMuNjUtLjY3bC0yLjY3IDIuNjZhLjUuNSAwIDAgMS0uNy0uN2wyLjY2LTIuNjdhNC4wNCA0LjA0IDAgMCAxIC4zNC01LjMzbC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMFptMy4wOSA1LjA3YTIgMiAwIDAgMCAxLjQzLTIuNDhsLS4xNi0uNTVjLjI1LS4yLjUzLS4zNy44Mi0uNWwuMzQuMzZhMiAyIDAgMCAwIDIuOSAwbC4zMy0uMzVjLjMuMTQuNTguMzIuODQuNTJsLS4xMy40MmEyIDIgMCAwIDAgMS40NiAyLjUybC4zNS4wOWE0LjcgNC43IDAgMCAxIDAgMS4wMWwtLjQ1LjEyYTIgMiAwIDAgMC0xLjQzIDIuNDhsLjE1LjU1Yy0uMjUuMi0uNTMuMzctLjgyLjVsLS4zNC0uMzZhMiAyIDAgMCAwLTIuOSAwbC0uMzMuMzVjLS4zLS4xNC0uNTgtLjMyLS44NC0uNTJsLjEzLS40MmEyIDIgMCAwIDAtMS40Ni0yLjUybC0uMzUtLjA5YTQuNzEgNC43MSAwIDAgMSAwLTEuMDFsLjQ2LS4xMlptMi44Ni41OGExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkU2V0dGluZ3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnQ29ubmVjdGVkU2V0dGluZ3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE5LjQ5IDUuNTdhNS45NyA1Ljk3IDAgMCAxIC43OCA2LjA1IDYuNDcgNi40NyAwIDAgMC02LjU1LjZMOS44NCA4LjM1Yy0uNTItLjUyLS43My0xLjMtLjM4LTEuOTVhNiA2IDAgMCAxIDguOTYtMS44OWwyLjI5LTIuMjlhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMi4yOSAyLjNaTTExIDE3LjVjMC0xLjQxLjQ1LTIuNzIgMS4yMS0zLjc4TDguMzYgOS44NWMtLjUyLS41Mi0xLjMtLjczLTEuOTUtLjM4YTYgNiAwIDAgMC0xLjg5IDguOTZsLTIuMjkgMi4yOWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuMy0yLjI5YTUuOTcgNS45NyAwIDAgMCA2LjA0Ljc4QTYuNDggNi40OCAwIDAgMSAxMSAxNy41Wm0xLjg0LTEuMDNhMiAyIDAgMCAwIDEuNDQtMi41bC0uMi0uNjhjLjQ0LS4zOC45NC0uNyAxLjQ4LS45MWwuNS41MmEyIDIgMCAwIDAgMi45IDBsLjUtLjUyYy41NC4yMyAxLjA0LjU0IDEuNDguOTNsLS4xOS42M2EyIDIgMCAwIDAgMS40NSAyLjVsLjU0LjE0YTUuNzMgNS43MyAwIDAgMSAwIDEuOGwtLjU4LjE1YTIgMiAwIDAgMC0xLjQ0IDIuNWwuMi42OGMtLjQ0LjM4LS45NC43LTEuNDguOTFsLS41LS41MmEyIDIgMCAwIDAtMi45IDBsLS41LjUyYTUuMjggNS4yOCAwIDAgMS0xLjQ4LS45M2wuMTktLjYzYTIgMiAwIDAgMC0xLjQ1LTIuNWwtLjU0LS4xNGE1LjcyIDUuNzIgMCAwIDEgMC0xLjhsLjU4LS4xNVptMy4yMSAxLjAzYzAgLjgzLjY1IDEuNSAxLjQ1IDEuNS44IDAgMS40NS0uNjcgMS40NS0xLjVTMTguMyAxNiAxNy41IDE2Yy0uOCAwLTEuNDUuNjctMS40NSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnQ29ubmVjdGVkU2V0dGluZ3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Nvbm5lY3RlZFNldHRpbmdzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTkuNDkgNS41N2E1Ljk3IDUuOTcgMCAwIDEgLjc4IDYuMDUgNi40NSA2LjQ1IDAgMCAwLTEuNDMtLjQ4IDQuNDkgNC40OSAwIDAgMC00LjA5LTYuMzkgNC41IDQuNSAwIDAgMC0zLjU4IDEuNzhjLS4yNy4zNS0uMTkuODMuMTIgMS4xNGwzLjggMy44Yy0uNS4xOS0uOTUuNDQtMS4zOC43NUw5Ljg2IDguMzVjLS41Mi0uNTItLjczLTEuMy0uMzgtMS45NWE2IDYgMCAwIDEgOC45Ni0xLjg5bDIuMjktMi4yOWEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0yLjI5IDIuM1pNOC4zNSA5Ljg1bDMuODcgMy44N2MtLjMuNDItLjU2Ljg4LS43NiAxLjM2TDcuNjcgMTEuM2MtLjMxLS4zLS44LS4zOS0xLjE0LS4xMmE0LjUgNC41IDAgMCAwIDQuNiA3LjY3Yy4xMS41LjI3Ljk3LjQ5IDEuNDNhNS45OCA1Ljk4IDAgMCAxLTYuMDUtLjc4bC0yLjI5IDIuMjlhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwyLjI5LTIuM2E1Ljk3IDUuOTcgMCAwIDEgMS45LTguOTVjLjY0LS4zNSAxLjQyLS4xNCAxLjk0LjM4Wm00LjQ5IDYuNjJhMiAyIDAgMCAwIDEuNDQtMi41bC0uMi0uNjhjLjQ0LS4zOC45NC0uNyAxLjQ4LS45MWwuNS41MmEyIDIgMCAwIDAgMi45IDBsLjUtLjUyYy41NC4yMyAxLjA0LjU0IDEuNDguOTNsLS4xOS42M2EyIDIgMCAwIDAgMS40NSAyLjVsLjU0LjE0YTUuNzMgNS43MyAwIDAgMSAwIDEuOGwtLjU4LjE1YTIgMiAwIDAgMC0xLjQ0IDIuNWwuMi42OGMtLjQ0LjM4LS45NC43LTEuNDguOTFsLS41LS41MmEyIDIgMCAwIDAtMi45IDBsLS41LjUyYTUuMjggNS4yOCAwIDAgMS0xLjQ4LS45M2wuMTktLjYzYTIgMiAwIDAgMC0xLjQ1LTIuNWwtLjU0LS4xNGE1LjcyIDUuNzIgMCAwIDEgMC0xLjhsLjU4LS4xNVptMy4yMSAxLjAzYzAgLjgzLjY1IDEuNSAxLjQ1IDEuNS44IDAgMS40NS0uNjcgMS40NS0xLjVTMTguMyAxNiAxNy41IDE2Yy0uOCAwLTEuNDUuNjctMS40NSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Rpc2Nvbm5lY3RlZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTUuMzUuNjVhLjUuNSAwIDAgMC0uNyAwbC0yLjA3IDIuMDdhMy42MSAzLjYxIDAgMCAwLTQuNjQuNDJsLS4xMy4xNGExLjI1IDEuMjUgMCAwIDAgMCAxLjc2bDMuMTggMy4xOWExLjI0IDEuMjQgMCAwIDAgMS43NyAwbC4yMi0uMjJhMy40NyAzLjQ3IDAgMCAwIC4zMS00LjZsMi4wNi0yLjA2YS41LjUgMCAwIDAgMC0uN1ptLTcuMiA4LjUtLjg4Ljg4LTEuMy0xLjMuODgtLjg4YS41LjUgMCAwIDAtLjctLjdsLS44OC44OEw1IDcuNzdhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMEwzLjAzIDhhMy40NyAzLjQ3IDAgMCAwLS4zMiA0LjZMLjY1IDE0LjYzYS41LjUgMCAwIDAgLjcuNzFsMi4wOC0yLjA3Yy42LjQ0IDEuMy42NSAyLjAzLjY1Ljk0IDAgMS44OS0uMzYgMi42LTEuMDhsLjE0LS4xM2MuNDgtLjQ4LjQ4LTEuMjggMC0xLjc3bC0uMjMtLjIyLjg4LS44OGEuNS41IDAgMCAwLS43LS43WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Rpc2Nvbm5lY3RlZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnRGlzY29ubmVjdGVkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTUuMzUuNjVhLjUuNSAwIDAgMC0uNyAwbC0yLjA3IDIuMDdhMy42MSAzLjYxIDAgMCAwLTQuNjQuNDJsLS4xMy4xNGExLjI1IDEuMjUgMCAwIDAgMCAxLjc2bDMuMTggMy4xOWExLjI0IDEuMjQgMCAwIDAgMS43NyAwbC4yMi0uMjJhMy40NyAzLjQ3IDAgMCAwIC4zMS00LjZsMi4wNi0yLjA2YS41LjUgMCAwIDAgMC0uN1pNMTIuMjcgNy4zbC0uMjIuMjJjLS4xLjEtLjI2LjEtLjM2IDBMOC41MSA0LjM0YS4yNS4yNSAwIDAgMSAwLS4zNmwuMTMtLjEzYTIuNjkgMi42OSAwIDAgMSAxLjktLjc5Yy42MSAwIDEuMjEuMjEgMS42Ny42NWEyLjQ4IDIuNDggMCAwIDEgLjA2IDMuNTlaTTguMTUgOS4xNWwtLjg4Ljg4LTEuMy0xLjMuODgtLjg4YS41LjUgMCAwIDAtLjctLjdsLS44OC44OEw1IDcuNzdhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMEwzLjAzIDhhMy40NyAzLjQ3IDAgMCAwLS4zMiA0LjZMLjY1IDE0LjYzYS41LjUgMCAwIDAgLjcuNzFsMi4wOC0yLjA3Yy42LjQ0IDEuMy42NSAyLjAzLjY1Ljk0IDAgMS44OS0uMzYgMi42LTEuMDhsLjE0LS4xM2MuNDgtLjQ4LjQ4LTEuMjggMC0xLjc3bC0uMjMtLjIyLjg4LS44OGEuNS41IDAgMCAwLS43LS43Wm0tLjY2IDIuODctLjEzLjEzYy0xIDEtMi42IDEuMDYtMy41Ny4xNGEyLjQ4IDIuNDggMCAwIDEtLjA2LTMuNTlsLjIyLS4yMmEuMjUuMjUgMCAwIDEgLjE4LS4wN2MuMDcgMCAuMTMuMDIuMTguMDdsMy4xOCAzLjE4Yy4xLjEuMS4yNiAwIC4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdEaXNjb25uZWN0ZWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnRGlzY29ubmVjdGVkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNy43OCAyLjIyYy4zLjMuMy43NyAwIDEuMDZsLTEuNDUgMS40NWE0LjA0IDQuMDQgMCAwIDEtLjQ4IDUuMTJsLS4zLjMtLjMuMzFjLS40Mi40MS0xLjA4LjQxLTEuNSAwTDkuNTUgNi4yNGExLjA1IDEuMDUgMCAwIDEgMC0xLjQ4bC42LS42MWE0LjA1IDQuMDUgMCAwIDEgNS4xMy0uNDhsMS40NS0xLjQ1Yy4zLS4zLjc3LS4zIDEuMDYgMFptLTkgNi4yNWMuMy4zLjMuNzcgMCAxLjA2TDcuNTEgMTAuOGwxLjY5IDEuNyAxLjI3LTEuMjhhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMS4yOCAxLjI4Yy40OC41OC40NSAxLjQ1LS4xIDJsLS4zLjNhNC4wNCA0LjA0IDAgMCAxLTUuMTIuNDdsLTEuNDUgMS40NWEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDEuNDUtMS40NWE0LjA0IDQuMDQgMCAwIDEgLjQ4LTUuMTJsLjMtLjNhMS40OSAxLjQ5IDAgMCAxIDItLjFsMS4yNy0xLjI4Yy4zLS4zLjc3LS4zIDEuMDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBsdWdEaXNjb25uZWN0ZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Rpc2Nvbm5lY3RlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3Ljg1IDIuMTVjLjIuMi4yLjUgMCAuN0wxNi4yIDQuNTJhNC4wNCA0LjA0IDAgMCAxLS4zNCA1LjMzbC0uMy4zLS4zLjMxYy0uNDIuNDEtMS4wOC40MS0xLjUgMEw5LjU1IDYuMjRhMS4wNSAxLjA1IDAgMCAxIDAtMS40OGwuNi0uNjFhNC4wNCA0LjA0IDAgMCAxIDUuMzQtLjM0bDEuNjctMS42NmMuMi0uMi41LS4yLjcgMFptLTIuNzEgMi43YTMuMDQgMy4wNCAwIDAgMC00LjI5IDBsLS4zLjNjLS4xOS4yLS4xOS41IDAgLjdsMy42IDMuNmMuMi4xOS41LjE5LjcgMGwuMy0uM2EzLjA0IDMuMDQgMCAwIDAgMC00LjI5bC0uMDEtLjAxWm0tNS43OSAzLjhjLjIuMi4yLjUgMCAuN0w3LjcxIDExIDkgMTIuM2wxLjY1LTEuNjVhLjUuNSAwIDAgMSAuNy43TDkuNzEgMTNsLjQ0LjQ1Yy41OS41OC41OSAxLjUyIDAgMi4xbC0uMy4zYTQuMDQgNC4wNCAwIDAgMS01LjMzLjM0bC0xLjY3IDEuNjZhLjUuNSAwIDAgMS0uNy0uN2wxLjY2LTEuNjdhNC4wNCA0LjA0IDAgMCAxIC4zNC01LjMzbC4zLS4zYTEuNDkgMS40OSAwIDAgMSAyLjEgMGwuNDUuNDQgMS42NS0xLjY0Yy4yLS4yLjUtLjIuNyAwWm0tNC41IDYuNWEzLjA0IDMuMDQgMCAwIDAgNC4zIDBsLjMtLjNjLjE5LS4yLjE5LS41IDAtLjdsLTMuNi0zLjZjLS4yLS4xOS0uNS0uMTktLjcgMGwtLjMuM2EzLjA0IDMuMDQgMCAwIDAgMCA0LjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Rpc2Nvbm5lY3RlZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjEuNyAzLjdhMSAxIDAgMCAwLTEuNC0xLjRsLTEuOCAxLjc5YTQuMjUgNC4yNSAwIDAgMC01LjI2LjZsLTEuMDYgMS4wN2MtLjY5LjY5LS42OSAxLjggMCAyLjQ4bDMuNTggMy41OGMuNjkuNjkgMS44LjY5IDIuNDggMGwxLjA3LTEuMDZhNC4yNSA0LjI1IDAgMCAwIC42LTUuMjZsMS44LTEuOFptLTExIDhhMSAxIDAgMCAwLTEuNC0xLjRsLTEuNDggMS40Ni0uMjktLjI5YS43NS43NSAwIDAgMC0xLjA2IDBsLTEuNzggMS43N2E0LjI1IDQuMjUgMCAwIDAtLjYgNS4yNmwtMS44IDEuOGExIDEgMCAxIDAgMS40MiAxLjRsMS44LTEuNzlhNC4yNSA0LjI1IDAgMCAwIDUuMjUtLjZsMS43Ny0xLjc4Yy4zLS4zLjMtLjc3IDAtMS4wNmwtLjMtLjMgMS40OC0xLjQ2YTEgMSAwIDAgMC0xLjQyLTEuNDJsLTEuNDcgMS40Ny0xLjU4LTEuNTggMS40Ny0xLjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Rpc2Nvbm5lY3RlZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnRGlzY29ubmVjdGVkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEuNzggMy4yOGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjAxIDIuMDFhNC4yNSA0LjI1IDAgMCAwLTUuNDcuNDZsLTEuMDYgMS4wN2MtLjY5LjY5LS42OSAxLjggMCAyLjQ4bDMuNTggMy41OGMuNjkuNjkgMS44LjY5IDIuNDggMGwxLjA3LTEuMDZhNC4yNSA0LjI1IDAgMCAwIC40Ni01LjQ3bDIuMDEtMi4wMVptLTMuNTkgMi40OC4wMy4wMi4wMi4wM2EyLjc1IDIuNzUgMCAwIDEgMCAzLjg4bC0xLjA2IDEuMDdjLS4xLjEtLjI2LjEtLjM2IDBsLTMuNTgtMy41OGEuMjUuMjUgMCAwIDEgMC0uMzZsMS4wNy0xLjA2YTIuNzUgMi43NSAwIDAgMSAzLjg4IDBabS03LjQxIDUuNTJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkw4IDExLjk0bC0uNDctLjQ3YS43NS43NSAwIDAgMC0xLjA2IDBsLTEuNzggMS43N2E0LjI1IDQuMjUgMCAwIDAtLjQ2IDUuNDdsLTIuMDEgMi4wMWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuMDEtMi4wMWE0LjI1IDQuMjUgMCAwIDAgNS40Ny0uNDZsMS43Ny0xLjc4Yy4zLS4zLjMtLjc3IDAtMS4wNmwtLjQ3LS40NyAxLjcyLTEuNzJhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkwxMSAxNC45NCA5LjA2IDEzbDEuNzItMS43MlptLTMuMzEgMi4yNSAzIDMgLjQ3LjQ3LTEuMjUgMS4yNGEyLjc1IDIuNzUgMCAwIDEtMy44OCAwbC0uMDUtLjA1YTIuNzUgMi43NSAwIDAgMSAwLTMuODhMNyAxMy4wNmwuNDcuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Rpc2Nvbm5lY3RlZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjIuNzQgNi4zM2E1LjUgNS41IDAgMCAxLS41IDcuMmwtMS45NCAxLjk1Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNi43Mi02LjcxYS43NS43NSAwIDAgMSAwLTEuMDZsMS45NS0xLjk1YTUuNSA1LjUgMCAwIDEgNy4yLS41bDMuMDUtMy4wNGEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0zLjA0IDMuMDVabS05Ljk2IDUuOTVhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi4xMyAyLjEyLS44Mi0uODJhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS45NSAxLjk0YTUuNSA1LjUgMCAwIDAtLjUgNy4yMmwtMy4wNCAzLjA0YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMy4wNS0zLjA0YTUuNSA1LjUgMCAwIDAgNy4yMS0uNWwxLjk1LTEuOTRjLjI5LS4zLjI5LS43NyAwLTEuMDZsLS44My0uODMgMi4xMi0yLjEzYS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTIuMTIgMi4xMy0yLjk1LTIuOTUgMi4xMy0yLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgUGx1Z0Rpc2Nvbm5lY3RlZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQbHVnRGlzY29ubmVjdGVkMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjIuNzQgNi4zM2E1LjUgNS41IDAgMCAxLS41IDcuMmwtMS45NCAxLjk1Yy0uMy4zLS43Ny4zLTEuMDYgMGwtNi43Mi02LjcxYS43NS43NSAwIDAgMSAwLTEuMDZsMS45NS0xLjk1YTUuNSA1LjUgMCAwIDEgNy4yLS41bDMuMDUtMy4wNGEuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0zLjA0IDMuMDVabS0yLjk3IDcuNTYgMS40MS0xLjQxYTQgNCAwIDEgMC01LjY1LTUuNjZMMTQuMSA4LjI0bDUuNjYgNS42NVptLTctMi42OGMuMy4zLjMuNzcgMCAxLjA3bC0yLjEyIDIuMTIgMi45NSAyLjk1IDIuMTItMi4xM2EuNzUuNzUgMCAwIDEgMS4wNiAxLjA2bC0yLjEyIDIuMTMuODMuODNjLjI5LjI5LjI5Ljc2IDAgMS4wNmwtMS45NSAxLjk0YTUuNSA1LjUgMCAwIDEtNy4yMS41bC0zLjA1IDMuMDRhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwzLjA1LTMuMDRhNS41IDUuNSAwIDAgMSAuNS03LjIybDEuOTQtMS45NGMuMjktLjMuNzYtLjMgMS4wNiAwbC44Mi44MiAyLjEzLTIuMTNjLjI5LS4yOS43Ni0uMjkgMS4wNiAwWk02Ljg0IDIxLjJhNCA0IDAgMCAwIDUuNjUgMGwxLjQxLTEuNDItNS42NS01LjY2LTEuNDIgMS40MWE0IDQgMCAwIDAgMCA1LjY1di4wMWguMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUGx1Z0Rpc2Nvbm5lY3RlZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDMuNjMgNC4zN2MuNS40OC41IDEuMjggMCAxLjc2bC00LjkxIDQuOTJhOS4yNSA5LjI1IDAgMCAxLS43NCAxMi4yNGwtMy4zNSAzLjM0Yy0uNDguNS0xLjI4LjUtMS43NiAwbC0xMS41LTExLjVhMS4yNSAxLjI1IDAgMCAxIDAtMS43NmwzLjM0LTMuMzVhOS4yNSA5LjI1IDAgMCAxIDEyLjI0LS43NGw0LjkyLTQuOTFhMS4yNSAxLjI1IDAgMCAxIDEuNzYgMFpNOS4yOCAzNi45NWwtNC45MSA0LjkyYTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZsNC45Mi00LjkxYTkuMjUgOS4yNSAwIDAgMCAxMi4yNC0uNzRsMy4zNC0zLjM1Yy41LS40OC41LTEuMjggMC0xLjc2bC0xLjM2LTEuMzcgMy4zNi0zLjM3YTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZsLTMuMzcgMy4zNi01LjIzLTUuMjMgMy4zNi0zLjM3YTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZsLTMuMzcgMy4zNi0xLjM3LTEuMzZhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMGwtMy4zNSAzLjM0YTkuMjUgOS4yNSAwIDAgMC0uNzQgMTIuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQbHVnRGlzY29ubmVjdGVkNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BsdWdEaXNjb25uZWN0ZWQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk00My42MyA0LjM3Yy41LjQ4LjUgMS4yOCAwIDEuNzZsLTQuOTEgNC45MmE5LjI1IDkuMjUgMCAwIDEtLjc0IDEyLjI0bC0zLjM1IDMuMzRjLS40OC41LTEuMjguNS0xLjc2IDBsLTExLjUtMTEuNWExLjI1IDEuMjUgMCAwIDEgMC0xLjc2bDMuMzQtMy4zNWE5LjI1IDkuMjUgMCAwIDEgMTIuMjQtLjc0bDQuOTItNC45MWExLjI1IDEuMjUgMCAwIDEgMS43NiAwWm0tNy42IDcuNDJhNi43NSA2Ljc1IDAgMCAwLTkuNTUgMGwtMi40NiAyLjQ2IDkuNzMgOS43MyAyLjQ2LTIuNDZhNi43NSA2Ljc1IDAgMCAwIDAtOS41NGwtLjE5LS4xOVpNOS4yNyAzNi45NWwtNC45MSA0LjkyYTEuMjUgMS4yNSAwIDAgMCAxLjc2IDEuNzZsNC45Mi00LjkxYTkuMjUgOS4yNSAwIDAgMCAxMi4yNC0uNzRsMy4zNC0zLjM1Yy41LS40OC41LTEuMjggMC0xLjc2bC0xLjM2LTEuMzcgMy4zNi0zLjM3YTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZsLTMuMzcgMy4zNi01LjIzLTUuMjMgMy4zNi0zLjM3YTEuMjUgMS4yNSAwIDAgMC0xLjc2LTEuNzZsLTMuMzcgMy4zNi0xLjM3LTEuMzZhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMGwtMy4zNSAzLjM0YTkuMjUgOS4yNSAwIDAgMC0uNzQgMTIuMjRabTIuNTEtMTAuNDcgMi40Ni0yLjQ2IDkuNzMgOS43My0yLjQ2IDIuNDZhNi43NSA2Ljc1IDAgMCAxLTkuNTQgMGwtLjE5LS4xOWE2Ljc1IDYuNzUgMCAwIDEgMC05LjU0WlwiXSk7XG5leHBvcnQgY29uc3QgUG9pbnRTY2FuMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9pbnRTY2FuMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDIuNWEuNS41IDAgMCAwLTEgMHY0LjAyQTUgNSAwIDAgMCAzLjUyIDExSDhWNi41MmE1LjA3IDUuMDcgMCAwIDEgMSAwVjIuNVpNMi41IDExaDEuMDJhNS4wNiA1LjA2IDAgMCAwIDAgMUgyLjVhLjUuNSAwIDAgMSAwLTFaTTggMTcuNXYtMS4wMmE1LjA3IDUuMDcgMCAwIDAgMSAwdjEuMDJhLjUuNSAwIDAgMS0xIDBabTUuNDgtNS41aDQuMDJhLjUuNSAwIDAgMCAwLTFoLTQuMDJhNS4wNyA1LjA3IDAgMCAxIDAgMUg5djQuNDhBNSA1IDAgMCAwIDEzLjQ4IDEyWk04IDE2LjQ4QTUgNSAwIDAgMSAzLjUyIDEySDh2NC40OFpNOSAxMWg0LjQ4QTUgNSAwIDAgMCA5IDYuNTJWMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2ludFNjYW4yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9pbnRTY2FuMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDJjLjI4IDAgLjUuMjIuNS41djQuMDJBNSA1IDAgMCAxIDEzLjQ4IDExaDQuMDJhLjUuNSAwIDAgMSAwIDFoLTQuMDJBNSA1IDAgMCAxIDkgMTYuNDh2MS4wMmEuNS41IDAgMCAxLTEgMHYtMS4wMkE1IDUgMCAwIDEgMy41MiAxMkgyLjVhLjUuNSAwIDAgMSAwLTFoMS4wMkE1IDUgMCAwIDEgOCA2LjUyVjIuNWMwLS4yOC4yMi0uNS41LS41Wk00LjUzIDEyQTQgNCAwIDAgMCA4IDE1LjQ3VjEySDQuNTNaTTggMTFWNy41M0E0IDQgMCAwIDAgNC41MyAxMUg4Wm0xIDF2My40N0E0IDQgMCAwIDAgMTIuNDcgMTJIOVptMy40Ny0xQTQgNCAwIDAgMCA5IDcuNTNWMTFoMy40N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvaW50U2NhbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvaW50U2NhbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuMjUgMmMuMzggMCAuNy4yOC43NC42NWwuMDEuMXY0LjhBNi4yNSA2LjI1IDAgMCAxIDE2LjQ2IDEzaDQuNzlhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxNi40NUE2LjI1IDYuMjUgMCAwIDEgMTEgMTkuOTZ2MS4yOWEuNzUuNzUgMCAwIDEtMS41LjFWMTkuOTVhNi4yNSA2LjI1IDAgMCAxLTUuNDYtNS40NUgyLjc1YS43NS43NSAwIDAgMS0uMS0xLjVINC4wNUE2LjI1IDYuMjUgMCAwIDEgOS41IDcuNTRWMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0wIDUuNWMtLjI1IDAtLjUuMDEtLjc1LjA0VjEzSDQuMDRhNi4zMSA2LjMxIDAgMCAwIDAgMS41SDkuNXY1LjQ2YTYuMyA2LjMgMCAwIDAgMS41IDBWMTQuNWg1LjQ2YTYuMzEgNi4zMSAwIDAgMCAwLTEuNUgxMVY3LjU0Yy0uMjUtLjAzLS41LS4wNC0uNzUtLjA0WlwiXSk7XG5leHBvcnQgY29uc3QgUG9pbnRTY2FuMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvaW50U2NhbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjI1IDJjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2NC44QTYuMjUgNi4yNSAwIDAgMSAxNi40NiAxM2g0Ljc5YS43NS43NSAwIDAgMSAuMSAxLjVIMTYuNDVBNi4yNSA2LjI1IDAgMCAxIDExIDE5Ljk2djEuMjlhLjc1Ljc1IDAgMCAxLTEuNS4xVjE5Ljk1YTYuMjUgNi4yNSAwIDAgMS01LjQ2LTUuNDVIMi43NWEuNzUuNzUgMCAwIDEtLjEtMS41SDQuMDVBNi4yNSA2LjI1IDAgMCAxIDkuNSA3LjU0VjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNOS41IDE0LjVINS41NmE0Ljc1IDQuNzUgMCAwIDAgMy45NCAzLjk0VjE0LjVabTUuNDQgMEgxMXYzLjk0YTQuNzUgNC43NSAwIDAgMCAzLjk0LTMuOTRaTTkuNSA5LjA2QTQuNzUgNC43NSAwIDAgMCA1LjU2IDEzSDkuNVY5LjA2Wm0xLjUgMFYxM2gzLjk0YTQuNzUgNC43NSAwIDAgMC0zLjcyLTMuOUwxMSA5LjA2WlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgM2EyIDIgMCAxIDEgNCAwdjEwYTIgMiAwIDEgMS00IDBWM1pNMSA5YTIgMiAwIDEgMSA0IDB2NGEyIDIgMCAxIDEtNCAwVjlabTEwLTJhMiAyIDAgMSAxIDQgMHY2YTIgMiAwIDEgMS00IDBWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggMWEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDEgMCA0IDBWM2EyIDIgMCAwIDAtMi0yWm0xIDJ2MTBhMSAxIDAgMSAxLTIgMFYzYTEgMSAwIDAgMSAyIDBaTTMgN2EyIDIgMCAwIDAtMiAydjRhMiAyIDAgMSAwIDQgMFY5YTIgMiAwIDAgMC0yLTJabTEgNmExIDEgMCAxIDEtMiAwVjlhMSAxIDAgMCAxIDIgMHY0Wm03LTZhMiAyIDAgMSAxIDQgMHY2YTIgMiAwIDEgMS00IDBWN1ptMyAwYTEgMSAwIDEgMC0yIDB2NmExIDEgMCAxIDAgMiAwVjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDEgMCA0IDBWNGEyIDIgMCAwIDAtMi0yWm0tNiA4YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAxIDAgNCAwdi00YTIgMiAwIDAgMC0yLTJabTEyLTRhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDEgMCA0IDBWOGEyIDIgMCAwIDAtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOCA0YTIgMiAwIDEgMSA0IDB2MTJhMiAyIDAgMSAxLTQgMFY0Wm0yLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAxIDAgMiAwVjRhMSAxIDAgMCAwLTEtMVptLTggOWEyIDIgMCAxIDEgNCAwdjRhMiAyIDAgMSAxLTQgMHYtNFptMi0xYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAxIDAgMiAwdi00YTEgMSAwIDAgMC0xLTFabTEyLTVhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDEgMCA0IDBWOGEyIDIgMCAwIDAtMi0yWm0tMSAyYTEgMSAwIDEgMSAyIDB2OGExIDEgMCAxIDEtMiAwVjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEuNzUgMmEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djE0LjVhMi43NSAyLjc1IDAgMSAxLTUuNSAwVjQuNzVBMi43NSAyLjc1IDAgMCAxIDExLjc1IDJabTcgNWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djkuNWEyLjc1IDIuNzUgMCAxIDEtNS41IDB2LTkuNUEyLjc1IDIuNzUgMCAwIDEgMTguNzUgN1ptLTE0IDVhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NXY0LjVhMi43NSAyLjc1IDAgMCAxLTUuNSAwdi00LjVBMi43NSAyLjc1IDAgMCAxIDQuNzUgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS43NSAyYTIuNzUgMi43NSAwIDAgMSAyLjc1IDIuNzV2MTQuNWEyLjc1IDIuNzUgMCAxIDEtNS41IDBWNC43NUEyLjc1IDIuNzUgMCAwIDEgMTEuNzUgMlptNyA1YTIuNzUgMi43NSAwIDAgMSAyLjc1IDIuNzV2OS41YTIuNzUgMi43NSAwIDEgMS01LjUgMHYtOS41QTIuNzUgMi43NSAwIDAgMSAxOC43NSA3Wm0tMTQgNWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djQuNWEyLjc1IDIuNzUgMCAwIDEtNS41IDB2LTQuNUEyLjc1IDIuNzUgMCAwIDEgNC43NSAxMlptNy04LjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djE0LjVhMS4yNSAxLjI1IDAgMCAwIDIuNSAwVjQuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1Wm03IDVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djkuNWExLjI1IDEuMjUgMCAwIDAgMi41IDB2LTkuNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVabS0xNCA1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXY0LjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi00LjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGwzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTEyIDYuNWEzLjUgMy41IDAgMSAxIDcgMHYxOWEzLjUgMy41IDAgMSAxLTcgMHYtMTlaTTI1LjUgOWEzLjUgMy41IDAgMCAwLTMuNSAzLjV2MTNhMy41IDMuNSAwIDEgMCA3IDB2LTEzQTMuNSAzLjUgMCAwIDAgMjUuNSA5Wk0yIDE4LjVhMy41IDMuNSAwIDEgMSA3IDB2N2EzLjUgMy41IDAgMSAxLTcgMHYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGwzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGwzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTUuNSAzQTMuNSAzLjUgMCAwIDEgMTkgNi41djE5YTMuNSAzLjUgMCAxIDEtNyAwdi0xOUEzLjUgMy41IDAgMCAxIDE1LjUgM1ptMCAxQTIuNSAyLjUgMCAwIDAgMTMgNi41djE5YTIuNSAyLjUgMCAwIDAgNSAwdi0xOUEyLjUgMi41IDAgMCAwIDE1LjUgNFpNMjkgMTIuNXYxM2EzLjUgMy41IDAgMSAxLTcgMHYtMTNhMy41IDMuNSAwIDEgMSA3IDBaTTI1LjUgMTBhMi41IDIuNSAwIDAgMC0yLjUgMi41djEzYTIuNSAyLjUgMCAwIDAgNSAwdi0xM2EyLjUgMi41IDAgMCAwLTIuNS0yLjVaTTkgMjUuNXYtN2EzLjUgMy41IDAgMSAwLTcgMHY3YTMuNSAzLjUgMCAxIDAgNyAwWm0tNi03YTIuNSAyLjUgMCAwIDEgNSAwdjdhMi41IDIuNSAwIDAgMS01IDB2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGwzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xMiA2LjVhMy41IDMuNSAwIDEgMSA3IDB2MTlhMy41IDMuNSAwIDEgMS03IDB2LTE5Wk0xNS41IDVjLS44MyAwLTEuNS42Ny0xLjUgMS41djE5YTEuNSAxLjUgMCAwIDAgMyAwdi0xOWMwLS44My0uNjctMS41LTEuNS0xLjVabTYuNSA3LjVhMy41IDMuNSAwIDEgMSA3IDB2MTNhMy41IDMuNSAwIDEgMS03IDB2LTEzWm0zLjUtMS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxM2ExLjUgMS41IDAgMCAwIDMgMHYtMTNjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0tMjAgNEEzLjUgMy41IDAgMCAwIDIgMTguNXY3YTMuNSAzLjUgMCAxIDAgNyAwdi03QTMuNSAzLjUgMCAwIDAgNS41IDE1Wk00IDE4LjVhMS41IDEuNSAwIDAgMSAzIDB2N2ExLjUgMS41IDAgMCAxLTMgMHYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxIb3Jpem9udGFsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbEhvcml6b250YWwxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzIDZhMiAyIDAgMSAxIDAgNEgzYTIgMiAwIDEgMSAwLTRoMTBaTTcgMWEyIDIgMCAxIDEgMCA0SDNhMiAyIDAgMSAxIDAtNGg0Wm0yIDEwYTIgMiAwIDEgMSAwIDRIM2EyIDIgMCAxIDEgMC00aDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsSG9yaXpvbnRhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsSG9yaXpvbnRhbDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE1IDhhMiAyIDAgMCAwLTItMkgzYTIgMiAwIDEgMCAwIDRoMTBhMiAyIDAgMCAwIDItMlptLTIgMUgzYTEgMSAwIDEgMSAwLTJoMTBhMSAxIDAgMSAxIDAgMlpNOSAzYTIgMiAwIDAgMC0yLTJIM2EyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMCAwIDItMlpNMyA0YTEgMSAwIDAgMSAwLTJoNGExIDEgMCAwIDEgMCAySDNabTYgN2EyIDIgMCAxIDEgMCA0SDNhMiAyIDAgMSAxIDAtNGg2Wm0wIDNhMSAxIDAgMSAwIDAtMkgzYTEgMSAwIDEgMCAwIDJoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbEhvcml6b250YWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAxIDAgMCA0aDEyYTIgMiAwIDAgMCAyLTJabS04LTZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAwIDAgMi0yWm00IDEyYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAxIDAgMCA0aDhhMiAyIDAgMCAwIDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxIb3Jpem9udGFsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGxIb3Jpem9udGFsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYgOGEyIDIgMCAxIDEgMCA0SDRhMiAyIDAgMSAxIDAtNGgxMlptMSAyYTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAgMCAyaDEyYTEgMSAwIDAgMCAxLTFaTTggMmEyIDIgMCAxIDEgMCA0SDRhMiAyIDAgMSAxIDAtNGg0Wm0xIDJhMSAxIDAgMCAwLTEtMUg0YTEgMSAwIDAgMCAwIDJoNGExIDEgMCAwIDAgMS0xWm01IDEyYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAxIDAgMCA0aDhhMiAyIDAgMCAwIDItMlptLTItMWExIDEgMCAxIDEgMCAySDRhMSAxIDAgMSAxIDAtMmg4WlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbEhvcml6b250YWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsSG9yaXpvbnRhbDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjIgMTEuNzVhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NUg0Ljc1YTIuNzUgMi43NSAwIDEgMSAwLTUuNWgxNC41QTIuNzUgMi43NSAwIDAgMSAyMiAxMS43NVptLTUgN2EyLjc1IDIuNzUgMCAwIDEtMi43NSAyLjc1aC05LjVhMi43NSAyLjc1IDAgMSAxIDAtNS41aDkuNUEyLjc1IDIuNzUgMCAwIDEgMTcgMTguNzVabS01LTE0QTIuNzUgMi43NSAwIDAgMSA5LjI1IDcuNWgtNC41YTIuNzUgMi43NSAwIDEgMSAwLTUuNWg0LjVBMi43NSAyLjc1IDAgMCAxIDEyIDQuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsSG9yaXpvbnRhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsSG9yaXpvbnRhbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIyIDExLjc1YTIuNzUgMi43NSAwIDAgMS0yLjc1IDIuNzVINC43NWEyLjc1IDIuNzUgMCAxIDEgMC01LjVoMTQuNUEyLjc1IDIuNzUgMCAwIDEgMjIgMTEuNzVabS01IDdhMi43NSAyLjc1IDAgMCAxLTIuNzUgMi43NWgtOS41YTIuNzUgMi43NSAwIDEgMSAwLTUuNWg5LjVBMi43NSAyLjc1IDAgMCAxIDE3IDE4Ljc1Wm0tNS0xNEEyLjc1IDIuNzUgMCAwIDEgOS4yNSA3LjVoLTQuNWEyLjc1IDIuNzUgMCAxIDEgMC01LjVoNC41QTIuNzUgMi43NSAwIDAgMSAxMiA0Ljc1Wm04LjUgN2MwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINC43NWExLjI1IDEuMjUgMCAwIDAgMCAyLjVoMTQuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVabS01IDdjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC05LjVhMS4yNSAxLjI1IDAgMCAwIDAgMi41aDkuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVabS01LTE0YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtNC41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWg0LjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbE9mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGxPZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYgNi43VjEzYTIgMiAwIDEgMCA0IDB2LTIuM2wxIDFWMTNhMiAyIDAgMCAwIDMuMDIgMS43MmwuMTMuMTNhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDYgNi43MVptNSAuM3YxLjg4bDQgNFY3YTIgMiAwIDEgMC00IDBaTTYgM3YuODhsNCA0VjNhMiAyIDAgMSAwLTQgMFpNMSA5YTIgMiAwIDEgMSA0IDB2NGEyIDIgMCAxIDEtNCAwVjlaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsT2ZmMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGxPZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDYuNyAxLjE1IDEuODZhLjUuNSAwIDEgMSAuNy0uN2wxMyAxM2EuNS41IDAgMCAxLS43LjdsLS4xMy0uMTNBMiAyIDAgMCAxIDExIDEzdi0xLjNsLTEtMVYxM2EyIDIgMCAxIDEtNCAwVjYuN1ptMyAzLTItMlYxM2ExIDEgMCAxIDAgMiAwVjkuN1ptMyAzdi4zYTEgMSAwIDAgMCAxLjI2Ljk3TDEyIDEyLjdaTTkgM3YzLjg4bDEgMVYzYTIgMiAwIDEgMC00IDB2Ljg4bDEgMVYzYTEgMSAwIDAgMSAyIDBabTIgNS44OCAxIDFWN2ExIDEgMCAxIDEgMiAwdjQuODhsMSAxVjdhMiAyIDAgMSAwLTQgMHYxLjg4Wk0zIDdhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDEgMCA0IDBWOWEyIDIgMCAwIDAtMi0yWm0xIDZhMSAxIDAgMSAxLTIgMFY5YTEgMSAwIDAgMSAyIDB2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsT2ZmMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04IDguN1YxNmEyIDIgMCAxIDAgNCAwdi0zLjNsMiAyVjE2YTIgMiAwIDAgMCAzLjAyIDEuNzJsLjEzLjEzYS41LjUgMCAwIDAgLjctLjdsLTE1LTE1YS41LjUgMCAxIDAtLjcuN0w4IDguNzFabTYtLjd2My44OGw0IDRWOGEyIDIgMCAxIDAtNCAwWk04IDUuODhsNCA0VjRhMiAyIDAgMSAwLTQgMHYxLjg4Wk00IDEwYTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAxIDAgNCAwdi00YTIgMiAwIDAgMC0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQb2xsT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvbGxPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDguNyAyLjE1IDIuODZhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLS4xMy0uMTNBMiAyIDAgMCAxIDE0IDE2di0xLjNsLTItMlYxNmEyIDIgMCAxIDEtNCAwVjguN1ptMyAzLTItMlYxNmExIDEgMCAxIDAgMiAwdi00LjNabTQgNHYuM2ExIDEgMCAwIDAgMS4yNi45N0wxNSAxNS43Wk0xMSA0djQuODhsMSAxVjRhMiAyIDAgMSAwLTQgMHYxLjg4bDEgMVY0YTEgMSAwIDAgMSAyIDBabTMgNy44OCAxIDFWOGExIDEgMCAxIDEgMiAwdjYuODhsMSAxVjhhMiAyIDAgMSAwLTQgMHYzLjg4Wk0yIDEyYTIgMiAwIDEgMSA0IDB2NGEyIDIgMCAxIDEtNCAwdi00Wm0yLTFhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDEgMCAyIDB2LTRhMSAxIDAgMCAwLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05IDEwLjA2djkuMTlhMi43NSAyLjc1IDAgMCAwIDUuNSAwdi0zLjY5bDEuNSAxLjV2Mi4xOWEyLjc1IDIuNzUgMCAwIDAgNC40IDIuMmwuMzIuMzNhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkw5IDEwLjA2Wm03IDIuNzYgNS41IDUuNVY5Ljc1YTIuNzUgMi43NSAwIDEgMC01LjUgMHYzLjA3Wm0tNy03IDUuNSA1LjVWNC43NWEyLjc1IDIuNzUgMCAxIDAtNS41IDB2MS4wN1pNNC43NSAxMmEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djQuNWEyLjc1IDIuNzUgMCAwIDEtNS41IDB2LTQuNUEyLjc1IDIuNzUgMCAwIDEgNC43NSAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9sbE9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkgMTAuMDYgMi4yMiAzLjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMTguNSAxOC41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLS4zMi0uMzJhMi43NSAyLjc1IDAgMCAxLTQuNC0yLjJ2LTIuMmwtMS41LTEuNXYzLjY5YTIuNzUgMi43NSAwIDEgMS01LjUgMHYtOS4xOVptNCA0LTIuNS0yLjV2Ny42OWExLjI1IDEuMjUgMCAwIDAgMi41IDB2LTUuMTlabTQuNSA0LjV2LjY5YTEuMjUgMS4yNSAwIDAgMCAxLjgxIDEuMTJsLTEuODEtMS44Wk0xMyA0Ljc2djUuMDZsMS41IDEuNVY0Ljc1YTIuNzUgMi43NSAwIDEgMC01LjUgMHYxLjA3bDEuNSAxLjVWNC43NWExLjI1IDEuMjUgMCAwIDEgMi41IDBabTMgOC4wNiAxLjUgMS41VjkuNzVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwdjcuMDdsMS41IDEuNVY5Ljc1YTIuNzUgMi43NSAwIDEgMC01LjUgMHYzLjA3Wk00Ljc1IDEyYTIuNzUgMi43NSAwIDAgMSAyLjc1IDIuNzV2NC41YTIuNzUgMi43NSAwIDAgMS01LjUgMHYtNC41QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDEyWm0wIDEuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2NC41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNC41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvbGxPZmYzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsT2ZmMzJGaWxsZWQnLCBcIjMyXCIsIFtcIm0yNy4xNyAyOC41OCAxLjEyIDEuMTNhMSAxIDAgMCAwIDEuNDItMS40MmwtMjYtMjZhMSAxIDAgMCAwLTEuNDIgMS40MkwxMiAxMy40VjI1LjVhMy41IDMuNSAwIDEgMCA3IDB2LTUuMDlsMyAzdjIuMDlhMy41IDMuNSAwIDAgMCA1LjE3IDMuMDhaTTIyIDE4LjQ3bDcgN1YxMi41YTMuNSAzLjUgMCAxIDAtNyAwdjUuOTdabS0xMC0xMCA3IDdWNi41YTMuNSAzLjUgMCAxIDAtNyAwdjEuOTdaTTIgMTguNWEzLjUgMy41IDAgMCAxIDcgMHY3YTMuNSAzLjUgMCAxIDEtNyAwdi03WlwiXSk7XG5leHBvcnQgY29uc3QgUG9sbE9mZjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb2xsT2ZmMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJtMjcuMTcgMjguNTggMS4xMiAxLjEzYTEgMSAwIDAgMCAxLjQyLTEuNDJsLTI2LTI2YTEgMSAwIDAgMC0xLjQyIDEuNDJMMTIgMTMuNFYyNS41YTMuNSAzLjUgMCAxIDAgNyAwdi01LjA5bDMgM3YyLjA5YTMuNSAzLjUgMCAwIDAgNS4xNyAzLjA4Wk0yNS41OCAyNyAyNCAyNS40di4wOWExLjUgMS41IDAgMCAwIDEuNTggMS41Wk0xNyAxOC40djcuMDlhMS41IDEuNSAwIDAgMS0zIDBWMTUuNDFsMyAzWk0xNyA2LjV2Ni45N2wyIDJWNi41YTMuNSAzLjUgMCAxIDAtNyAwdjEuOTdsMiAyVjYuNWExLjUgMS41IDAgMCAxIDMgMFptNSAxMS45NyAyIDJWMTIuNWExLjUgMS41IDAgMCAxIDMgMHYxMC45N2wyIDJWMTIuNWEzLjUgMy41IDAgMSAwLTcgMHY1Ljk3Wk01LjUgMTVBMy41IDMuNSAwIDAgMCAyIDE4LjV2N2EzLjUgMy41IDAgMCAwIDcgMHYtN0EzLjUgMy41IDAgMCAwIDUuNSAxNVpNNCAxOC41YTEuNSAxLjUgMCAwIDEgMyAwdjdhMS41IDEuNSAwIDAgMS0zIDB2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3J0SGRtaTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1BvcnRIZG1pMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00Ljg1IDcuNDRBMS41IDEuNSAwIDAgMSA1LjkxIDdoOC4xOGMuNCAwIC43OC4xNiAxLjA2LjQ0bDIuNDEgMi40MWMuMjguMjguNDQuNjcuNDQgMS4wNnYuNTljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDIgMTEuNXYtLjU5YzAtLjQuMTYtLjc4LjQ0LTEuMDZsMi40MS0yLjQxWk02LjUgOS41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3J0SGRtaTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0SGRtaTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuODUgNy40NEExLjUgMS41IDAgMCAxIDUuOTEgN2g4LjE4Yy40IDAgLjc4LjE2IDEuMDYuNDRsMi40MSAyLjQxYy4yOC4yOC40NC42Ny40NCAxLjA2di41OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiAxMS41di0uNTljMC0uNC4xNi0uNzguNDQtMS4wNmwyLjQxLTIuNDFaTTUuOTEgOGEuNS41IDAgMCAwLS4zNS4xNWwtMi40MSAyLjQxYS41LjUgMCAwIDAtLjE1LjM1di41OWMwIC4yOC4yMi41LjUuNWgxM2EuNS41IDAgMCAwIC41LS41di0uNTlhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLjQxLTIuNDFhLjUuNSAwIDAgMC0uMzUtLjE1SDUuOVpNNiAxMGMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSA2IDEwWlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydEhkbWkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0SGRtaTI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMjEuNDEgMTEuNDEtMi44Mi0yLjgyQTIgMiAwIDAgMCAxNy4xNyA4SDYuODNhMiAyIDAgMCAwLTEuNDIuNTlsLTIuODIgMi44MkEyIDIgMCAwIDAgMiAxMi44M1YxNGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTEuMTdhMiAyIDAgMCAwLS41OS0xLjQyWk0xNyAxMmEuNzUuNzUgMCAwIDEtLjc1Ljc1aC04LjVhLjc1Ljc1IDAgMSAxIDAtMS41aDguNUEuNzYuNzYgMCAwIDEgMTcgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3J0SGRtaTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0SGRtaTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIxLjQxIDExLjQxIDE4LjYgOC42QTIgMiAwIDAgMCAxNy4xNyA4SDYuODNhMiAyIDAgMCAwLTEuNDIuNTlMMi42IDExLjRBMiAyIDAgMCAwIDIgMTIuODNWMTRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0xLjE3YTIgMiAwIDAgMC0uNTktMS40MlpNMjAuNSAxNGEuNS41IDAgMCAxLS41LjVINGEuNS41IDAgMCAxLS41LS41di0xLjE3YS41LjUgMCAwIDEgLjE1LS4zNmwyLjgyLTIuODJhLjUuNSAwIDAgMSAuMzYtLjE1aDEwLjM0YS41LjUgMCAwIDEgLjM2LjE1bDIuODIgMi44MmEuNS41IDAgMCAxIC4xNS4zNlYxNFptLTQuMjUtMi43NWgtOC41YS43NS43NSAwIDEgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMSAwIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydE1pY3JvVXNiMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydE1pY3JvVXNiMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02LjQzIDguM2MuMjYtLjIuNTgtLjMuOS0uM2g1LjM0Yy4zMiAwIC42NC4xLjkuM2wxLjMzIDFBMS41IDEuNSAwIDAgMSAxNCAxMkg2YTEuNSAxLjUgMCAwIDEtLjktMi43bDEuMzMtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvcnRNaWNyb1VzYjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0TWljcm9Vc2IyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02LjQzIDguM2MuMjYtLjIuNTgtLjMuOS0uM2g1LjM0Yy4zMiAwIC42NC4xLjkuM2wxLjMzIDFBMS41IDEuNSAwIDAgMSAxNCAxMkg2YTEuNSAxLjUgMCAwIDEtLjktMi43bDEuMzMtMVptLjkuN2EuNS41IDAgMCAwLS4zLjFsLTEuMzMgMWEuNS41IDAgMCAwIC4zLjloOGEuNS41IDAgMCAwIC4zLS45bC0xLjMzLTFhLjUuNSAwIDAgMC0uMy0uMUg3LjMzWlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydE1pY3JvVXNiMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydE1pY3JvVXNiMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOSAxMi44M1YxM2EyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMnYtLjE3YTIgMiAwIDAgMSAuNTktMS40MmwxLjgyLTEuODJBMiAyIDAgMCAxIDguODMgOWg2LjM0YTIgMiAwIDAgMSAxLjQyLjU5bDEuODIgMS44MmEyIDIgMCAwIDEgLjU5IDEuNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3J0TWljcm9Vc2IyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydE1pY3JvVXNiMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuMTcgMTAuNWEuNS41IDAgMCAxIC4zNi4xNWwxLjgyIDEuODJhLjUuNSAwIDAgMSAuMTUuMzZWMTNhLjUuNSAwIDAgMS0uNS41SDdhLjUuNSAwIDAgMS0uNS0uNXYtLjE3YS41LjUgMCAwIDEgLjE1LS4zNmwxLjgyLTEuODJhLjUuNSAwIDAgMSAuMzYtLjE1aDYuMzRabTAtMS41SDguODNhMiAyIDAgMCAwLTEuNDIuNTlMNS42IDExLjRBMiAyIDAgMCAwIDUgMTIuODNWMTNhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0ydi0uMTdhMiAyIDAgMCAwLS41OS0xLjQyTDE2LjYgOS42QTIgMiAwIDAgMCAxNS4xNyA5WlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkEyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0VXNiQTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDdDMy42NyA3IDMgNy42NyAzIDguNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTExWm0wIDEuNWgxMVYxMGgtMTFWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkEyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydFVzYkEyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgN0MzLjY3IDcgMyA3LjY3IDMgOC41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTQgOC41YzAtLjI4LjIyLS41LjUtLjVoMTFjLjI4IDAgLjUuMjIuNS41VjEwSDRWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkEyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0VXNiQTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTggOEg2YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMlpNNiAxMGgxMnYySDZ2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3J0VXNiQTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0VXNiQTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE4IDhINmEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJaTTUuNSAxMGEuNS41IDAgMCAxIC41LS41aDEyYS41LjUgMCAwIDEgLjUuNXYyaC0xM3YtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvcnRVc2JDMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydFVzYkMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuNSAxMGMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMSAxIDAgNGgtN2EyIDIgMCAwIDEtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydFVzYkMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgMTBjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDEgMSAwIDRoLTdhMiAyIDAgMCAxLTItMlptMi0xYTEgMSAwIDAgMCAwIDJoN2ExIDEgMCAxIDAgMC0yaC03WlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3J0VXNiQzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTkgMTJhMyAzIDAgMCAxLTMgM0g4YTMgMyAwIDAgMSAwLTZoOGEzIDMgMCAwIDEgMyAzWlwiXSk7XG5leHBvcnQgY29uc3QgUG9ydFVzYkMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9ydFVzYkMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNiAxMC41YTEuNSAxLjUgMCAxIDEgMCAzSDhhMS41IDEuNSAwIDEgMSAwLTNoOFpNMTYgOUg4YTMgMyAwIDEgMCAwIDZoOGEzIDMgMCAwIDAgMC02WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25CYWNrd2FyZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uQmFja3dhcmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoNkEyLjUgMi41IDAgMCAxIDEzIDQuNVY2SDkuNUEzLjUgMy41IDAgMCAwIDYgOS41VjEzSDQuNUEyLjUgMi41IDAgMCAxIDIgMTAuNXYtNlpNOS41IDdBMi41IDIuNSAwIDAgMCA3IDkuNXY2QTIuNSAyLjUgMCAwIDAgOS41IDE4aDZhMi41IDIuNSAwIDAgMCAyLjUtMi41di02QTIuNSAyLjUgMCAwIDAgMTUuNSA3aC02Wk04IDkuNUM4IDguNjcgOC42NyA4IDkuNSA4aDZjLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZBMS41IDEuNSAwIDAgMSA4IDE1LjV2LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvbkJhY2t3YXJkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uQmFja3dhcmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djZBMi41IDIuNSAwIDAgMCA0LjUgMTNINnYtMS43bC0uNy43aC0uOGExLjUgMS41IDAgMCAxLS42NS0uMTVMNiA5LjcxVjkuNWMwLS41Ny4xNC0xLjExLjM4LTEuNTlsLTMuMjMgMy4yNEExLjUgMS41IDAgMCAxIDMgMTAuNXYtLjk0TDkuNTYgM2guOTRjLjIzIDAgLjQ1LjA1LjY1LjE1TDcuOSA2LjM4QTMuNDkgMy40OSAwIDAgMSA5LjUgNmguMmwyLjE1LTIuMTVjLjEuMi4xNS40Mi4xNS42NXYuOGwtLjcuN0gxM1Y0LjVBMi41IDIuNSAwIDAgMCAxMC41IDJoLTZaTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoLjY1TDMgNS4xNVY0LjVabTAgMi4wNkw2LjU2IDNoMS41OUwzIDguMTVWNi41NlpNNyA5LjVBMi41IDIuNSAwIDAgMSA5LjUgN2g2QTIuNSAyLjUgMCAwIDEgMTggOS41djZhMi41IDIuNSAwIDAgMS0yLjUgMi41aC02QTIuNSAyLjUgMCAwIDEgNyAxNS41di02Wk05LjUgOEM4LjY3IDggOCA4LjY3IDggOS41djZjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTZjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25CYWNrd2FyZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uQmFja3dhcmQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjUgNi41aC01Ljc1YTQuMjUgNC4yNSAwIDAgMC00LjI1IDQuMjV2NS43NUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDEzLjI1di04QzIgMy40NSAzLjQ2IDIgNS4yNSAyaDhjMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNVY2LjVaTTIyIDE4Ljc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLThhMy4yNSAzLjI1IDAgMCAxLTMuMjUtMy4yNXYtOGMwLTEuOCAxLjQ2LTMuMjUgMy4yNS0zLjI1aDhjMS44IDAgMy4yNSAxLjQ2IDMuMjUgMy4yNXY4Wm0tMy4yNSAxLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtOGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLThDOS43OCA5IDkgOS43OCA5IDEwLjc1djhjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvc2l0aW9uQmFja3dhcmQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9zaXRpb25CYWNrd2FyZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuNSAxNi41SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTMuMjV2LThDMiAzLjQ1IDMuNDYgMiA1LjI1IDJoOGMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1VjYuNWgtMS42NWwuMTUtLjE1di0xLjFjMC0uMjMtLjA0LS40NS0uMTMtLjY1bC0xLjkgMS45aC0yLjEybDIuOTItMi45MmExLjc1IDEuNzUgMCAwIDAtLjUyLS4wOGgtMS4yOEwzLjUgMTEuOTd2MS4yOGMwIC4xOC4wMy4zNi4wOC41MmwyLjkyLTIuOTJ2Mi4xMmwtMS45IDEuOWMuMi4wOS40Mi4xMy42NS4xM2gxLjFsLjE1LS4xNXYxLjY1Wm0zLjM1LTEzSDcuOTdMMy41IDcuOTd2MS44OEw5Ljg1IDMuNVptLTQgMGgtLjZjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1di42TDUuODUgMy41Wk0yMiAxOC43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC04YTMuMjUgMy4yNSAwIDAgMS0zLjI1LTMuMjV2LThjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWg4YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2OFptLTMuMjUgMS43NWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LThjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC04QzkuNzggOSA5IDkuNzggOSAxMC43NXY4YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvbkZvcndhcmQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvbkZvcndhcmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcgMTR2MS41QTIuNSAyLjUgMCAwIDAgOS41IDE4aDZhMi41IDIuNSAwIDAgMCAyLjUtMi41di02QTIuNSAyLjUgMCAwIDAgMTUuNSA3SDE0djFoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41djZjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02QTEuNSAxLjUgMCAwIDEgOCAxNS41VjE0SDdaTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoNkEyLjUgMi41IDAgMCAxIDEzIDQuNXY2YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNkEyLjUgMi41IDAgMCAxIDIgMTAuNXYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvc2l0aW9uRm9yd2FyZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvbkZvcndhcmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03IDE0djEuNUEyLjUgMi41IDAgMCAwIDkuNSAxOGg2YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNkEyLjUgMi41IDAgMCAwIDE1LjUgN0gxNHYxaDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNXY2YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNkExLjUgMS41IDAgMCAxIDggMTUuNVYxNEg3Wk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDZBMi41IDIuNSAwIDAgMSAxMyA0LjV2NmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTZBMi41IDIuNSAwIDAgMSAyIDEwLjV2LTZaTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2LjY1TDUuMTUgM0g0LjVabTIuMDYgMEwzIDYuNTZ2MS41OUw4LjE1IDNINi41NlpNMyAxMC41YzAgLjIzLjA1LjQ1LjE1LjY1bDgtOEExLjUgMS41IDAgMCAwIDEwLjUgM2gtLjk0TDMgOS41NnYuOTRaTTQuNSAxMmguOEwxMiA1LjN2LS44YzAtLjIzLS4wNS0uNDUtLjE1LS42NWwtOCA4Yy4yLjEuNDIuMTUuNjUuMTVabTUuMiAwaC44Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtLjhMOS43IDEyWm0tMS40IDBMMTIgOC4zVjYuN0w2LjcgMTJoMS42WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25Gb3J3YXJkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9zaXRpb25Gb3J3YXJkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMy4yNSAxNi41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LThjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtOEEzLjI1IDMuMjUgMCAwIDAgMiA1LjI1djhjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWg4Wm0tNS43NSAxSDl2MS4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg4Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtOGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIMTcuNVY3LjVoMS4yNWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djhjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtOGEzLjI1IDMuMjUgMCAwIDEtMy4yNS0zLjI1VjE3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvbkZvcndhcmQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG9zaXRpb25Gb3J3YXJkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNzUgMjJjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOGMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1SDE3LjVWOWgxLjI1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djhjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC04Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTcuNUg3LjV2MS4yNWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDhabS01LjUtNS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LThjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNWgtOEEzLjI1IDMuMjUgMCAwIDAgMiA1LjI1djhjMCAxLjggMS40NiAzLjI1IDMuMjUgMy4yNWg4Wk0xNSAxMy4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLS43OEwxNSAxMi40N3YuNzhabTAtMi43OEwxMC40NyAxNWgtMkwxNSA4LjQ3djJaTTYuMzUgMTVoLTEuMWMtLjIzIDAtLjQ1LS4wNC0uNjUtLjEzTDE0Ljg3IDQuNmMuMDkuMi4xMy40Mi4xMy42NXYxLjFMNi4zNSAxNVptLTIuNzctMS4yM2ExLjc1IDEuNzUgMCAwIDEtLjA4LS41MnYtMS4yOGw4LjQ3LTguNDdoMS4yOGMuMTggMCAuMzYuMDMuNTIuMDhMMy41NyAxMy43N1pNMy41IDkuODVWNy45N0w3Ljk3IDMuNWgxLjg4TDMuNSA5Ljg1Wm0wLTR2LS42YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aC42TDMuNSA1Ljg1WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25Ub0JhY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvblRvQmFjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgMTRjMC0xLjEuOS0yIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyaC0zYTIgMiAwIDAgMS0yLTJ2LTNabTItMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMWgtM1pNNSA5aDEuM0M3LjggOSA5IDcuOCA5IDYuM1Y1aDMuNUEyLjUgMi41IDAgMCAxIDE1IDcuNVYxMWgtMS4zYTIuNyAyLjcgMCAwIDAtMi43IDIuN1YxNUg3LjVBMi41IDIuNSAwIDAgMSA1IDEyLjVWOVpNMSAzYzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWM1ptMi0xYTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFBvc2l0aW9uVG9CYWNrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9CYWNrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgMTRjMC0xLjEuOS0yIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyaC0zYTIgMiAwIDAgMS0yLTJ2LTNabTItMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMWgtM1pNNSA5djMuNUEyLjUgMi41IDAgMCAwIDcuNSAxNUgxMXYtMUg5LjdsMS42Ny0xLjY2Yy4yMy0uNC41Ny0uNzQuOTctLjk3TDE0IDkuN1YxMWgxVjcuNUEyLjUgMi41IDAgMCAwIDEyLjUgNUg5djFoMS4zTDguNjIgNy42NmMtLjIzLjQtLjU3Ljc0LS45Ny45N0w2IDEwLjNWOUg1Wm02LjctM2guOGMuMjMgMCAuNDUuMDUuNjUuMTVsLTcgN0ExLjUgMS41IDAgMCAxIDYgMTIuNXYtLjhMMTEuNyA2Wm0tNC4yIDhhMS41IDEuNSAwIDAgMS0uNjUtLjE1bDctN2MuMS4yLjE1LjQyLjE1LjY1di44TDguMyAxNGgtLjhaTTEgM2MwLTEuMS45LTIgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjNabTItMWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvblRvQmFjazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9CYWNrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02IDExaDEuMjVBMy43NSAzLjc1IDAgMCAwIDExIDcuMjVWNmgzLjc1QzE2LjU1IDYgMTggNy40NiAxOCA5LjI1VjEzaC0xLjI1QTMuNzUgMy43NSAwIDAgMCAxMyAxNi43NVYxOEg5LjI1QTMuMjUgMy4yNSAwIDAgMSA2IDE0Ljc1VjExWk0xIDMuNzVBMi43NSAyLjc1IDAgMCAxIDMuNzUgMWgzLjVBMi43NSAyLjc1IDAgMCAxIDEwIDMuNzV2My41QTIuNzUgMi43NSAwIDAgMSA3LjI1IDEwaC0zLjVBMi43NSAyLjc1IDAgMCAxIDEgNy4yNXYtMy41Wk0zLjc1IDIuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2My41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDMuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTMuNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTMuNVpNMTQgMTYuNzVBMi43NSAyLjc1IDAgMCAxIDE2Ljc1IDE0aDMuNUEyLjc1IDIuNzUgMCAwIDEgMjMgMTYuNzV2My41QTIuNzUgMi43NSAwIDAgMSAyMC4yNSAyM2gtMy41QTIuNzUgMi43NSAwIDAgMSAxNCAyMC4yNXYtMy41Wm0yLjc1LTEuMjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djMuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgzLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0zLjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvblRvQmFjazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvblRvQmFjazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0IDE2Ljc1QTIuNzUgMi43NSAwIDAgMSAxNi43NSAxNGgzLjVBMi43NSAyLjc1IDAgMCAxIDIzIDE2Ljc1djMuNUEyLjc1IDIuNzUgMCAwIDEgMjAuMjUgMjNoLTMuNUEyLjc1IDIuNzUgMCAwIDEgMTQgMjAuMjV2LTMuNVptMi43NS0xLjI1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYzLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMy41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtMy41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMy41Wk02IDExdjMuNzVDNiAxNi41NSA3LjQ2IDE4IDkuMjUgMThIMTN2LTEuNWgtLjMybC4zNy0uMzdhMy43NSAzLjc1IDAgMCAxIDMuMDgtMy4wOGwuMzctLjM3di4zM2wuMjUtLjAxSDE4VjkuMjVDMTggNy40NSAxNi41NCA2IDE0Ljc1IDZIMTF2MS41aC41NmwtLjY4LjY4YTMuNzYgMy43NiAwIDAgMS0yLjcgMi43bC0uNjguNjhWMTFsLS4yNS4wMUg2Wm03LjY4LTMuNWgxLjA3Yy4yNCAwIC40Ny4wNS42OC4xNGwtNy44IDcuNzljLS4wOC0uMjEtLjEzLS40NC0uMTMtLjY4di0xLjA3bDYuMTgtNi4xOFptLTQuNDMgOWMtLjE3IDAtLjM0LS4wMi0uNS0uMDdsNy42OC03LjY4Yy4wNS4xNi4wNy4zMy4wNy41djEuMzFsLTUuOTQgNS45NEg5LjI1Wk0xIDMuNzVBMi43NSAyLjc1IDAgMCAxIDMuNzUgMWgzLjVBMi43NSAyLjc1IDAgMCAxIDEwIDMuNzV2My41QTIuNzUgMi43NSAwIDAgMSA3LjI1IDEwaC0zLjVBMi43NSAyLjc1IDAgMCAxIDEgNy4yNXYtMy41Wk0zLjc1IDIuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2My41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDMuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTMuNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVoLTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvc2l0aW9uVG9Gcm9udDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9Gcm9udDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMSAzYzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjFoLS41Yy0uMTcgMC0uMzQuMDEtLjUuMDRWM2ExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoMS4wNEM0IDcuMTYgNCA3LjMzIDQgNy41VjhIM2EyIDIgMCAwIDEtMi0yVjNabTExIDEzdjFjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJ2LTNhMiAyIDAgMCAwLTItMmgtMXYuNWMwIC4xNy0uMDEuMzQtLjA0LjVIMTdhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFoLTNhMSAxIDAgMCAxLTEtMXYtMS4wNGMtLjE2LjAzLS4zMy4wNC0uNS4wNEgxMlpNNSA3LjVBMi41IDIuNSAwIDAgMSA3LjUgNWg1QTIuNSAyLjUgMCAwIDEgMTUgNy41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01QTIuNSAyLjUgMCAwIDEgNSAxMi41di01WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25Ub0Zyb250MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9Gcm9udDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgMWEyIDIgMCAwIDAtMiAydjNjMCAxLjEuOSAyIDIgMmgxdi0uNWMwLS4xNy4wMS0uMzQuMDQtLjVIM2ExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2MS4wNEM3LjE2IDQgNy4zMyA0IDcuNSA0SDhWM2EyIDIgMCAwIDAtMi0ySDNabTkgMTZ2LTFoLjVjLjE3IDAgLjM0LS4wMS41LS4wNFYxN2ExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0xLjA0Yy4wMy0uMTYuMDQtLjMzLjA0LS41VjEyaDFhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJoLTNhMiAyIDAgMCAxLTItMlpNNSA3LjVBMi41IDIuNSAwIDAgMSA3LjUgNWg1QTIuNSAyLjUgMCAwIDEgMTUgNy41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01QTIuNSAyLjUgMCAwIDEgNSAxMi41di01Wm0yLjI4LTEuNDhhMS41IDEuNSAwIDAgMC0xLjI2IDEuMjZsMS4yNi0xLjI2Wk02IDEwLjI5IDEwLjMgNkg4LjdMNiA4Ljd2MS42Wk0xMS43IDYgNiAxMS43di44YzAgLjIzLjA1LjQ1LjE1LjY1bDctN0ExLjUgMS41IDAgMCAwIDEyLjUgNmgtLjhabS00LjIgOGguOEwxNCA4LjN2LS44YzAtLjIzLS4wNS0uNDUtLjE1LS42NWwtNyA3Yy4yLjEuNDIuMTUuNjUuMTVabTIuMiAwaDEuNmwyLjctMi43VjkuN0w5LjcgMTRabTMuMDItLjAyYTEuNSAxLjUgMCAwIDAgMS4yNi0xLjI2bC0xLjI2IDEuMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQb3NpdGlvblRvRnJvbnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3NpdGlvblRvRnJvbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEgMy43NUEyLjc1IDIuNzUgMCAwIDEgMy43NSAxaDMuNUEyLjc1IDIuNzUgMCAwIDEgMTAgMy43NVY1aC0uNzVjLS4yNiAwLS41LjAyLS43NS4wN1YzLjc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMy41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYzLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMS4zMmMtLjA1LjI0LS4wNy41LS4wNy43NVYxMEgzLjc1QTIuNzUgMi43NSAwIDAgMSAxIDcuMjV2LTMuNVpNMTQgMTl2MS4yNUEyLjc1IDIuNzUgMCAwIDAgMTYuNzUgMjNoMy41QTIuNzUgMi43NSAwIDAgMCAyMyAyMC4yNXYtMy41QTIuNzUgMi43NSAwIDAgMCAyMC4yNSAxNEgxOXYuNzVjMCAuMjYtLjAyLjUtLjA3Ljc1aDEuMzJjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2My41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMy41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTEuMzJjLS4yNC4wNS0uNS4wNy0uNzUuMDdIMTRaTTYgOS4yNUM2IDcuNDUgNy40NiA2IDkuMjUgNmg1LjVDMTYuNTUgNiAxOCA3LjQ2IDE4IDkuMjV2NS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTUuNUEzLjI1IDMuMjUgMCAwIDEgNiAxNC43NXYtNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUG9zaXRpb25Ub0Zyb250MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Bvc2l0aW9uVG9Gcm9udDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEgMy43NUEyLjc1IDIuNzUgMCAwIDEgMy43NSAxaDMuNUEyLjc1IDIuNzUgMCAwIDEgMTAgMy43NVY1aC0uNzVjLS4yNiAwLS41LjAyLS43NS4wN1YzLjc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMy41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYzLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMS4zMmMtLjA1LjI0LS4wNy41LS4wNy43NVYxMEgzLjc1QTIuNzUgMi43NSAwIDAgMSAxIDcuMjV2LTMuNVpNMTQgMTl2MS4yNUEyLjc1IDIuNzUgMCAwIDAgMTYuNzUgMjNoMy41QTIuNzUgMi43NSAwIDAgMCAyMyAyMC4yNXYtMy41QTIuNzUgMi43NSAwIDAgMCAyMC4yNSAxNEgxOXYuNzVjMCAuMjYtLjAyLjUtLjA3Ljc1aDEuMzJjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2My41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMy41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTEuMzJjLS4yNC4wNS0uNS4wNy0uNzUuMDdIMTRaTTkuMjUgNkEzLjI1IDMuMjUgMCAwIDAgNiA5LjI1djUuNUM2IDE2LjU1IDcuNDYgMTggOS4yNSAxOGg1LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNS41QzE4IDcuNDUgMTYuNTQgNiAxNC43NSA2aC01LjVabTIuMzEgMS41TDcuNSAxMS41NlY5LjY4TDkuNjggNy41aDEuODhaTTcuNSAxMy42OGw2LjE4LTYuMThoMS4wN2MuMjQgMCAuNDcuMDUuNjguMTRsLTcuOCA3Ljc5Yy0uMDgtLjIxLS4xMy0uNDQtLjEzLS42OHYtMS4wN1ptMS4yNSAyLjc1IDcuNjgtNy42OGMuMDUuMTYuMDcuMzMuMDcuNXYxLjMxbC01Ljk0IDUuOTRIOS4yNWMtLjE3IDAtLjM0LS4wMi0uNS0uMDdabTUuOTQuMDdoLTJsMy44MS0zLjgydjIuMDdsLS4wMy0uMDMtMS43OCAxLjc4WlwiXSk7XG5leHBvcnQgY29uc3QgUG93ZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3dlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNzUgMi41YS43NS43NSAwIDAgMC0xLjUgMHY2YS43NS43NSAwIDAgMCAxLjUgMHYtNlptMyAxLjVhLjc1Ljc1IDAgMSAwLS43NiAxLjNBNiA2IDAgMSAxIDcgNS4zLjc1Ljc1IDAgMSAwIDYuMjUgNGE3LjUgNy41IDAgMSAwIDcuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUG93ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG93ZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwdi02Wk0xMy43NCA0YS41LjUgMCAxIDAtLjUuODcgNi41IDYuNSAwIDEgMS02LjQ5IDAgLjUuNSAwIDEgMC0uNS0uODcgNy41IDcuNSAwIDEgMCA3LjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFBvd2VyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG93ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTguMiA0Ljg0YTEgMSAwIDAgMSAuODUgMS44MiA3IDcgMCAxIDAgNS45MiAwIDEgMSAwIDAgMSAuODQtMS44IDkgOSAwIDEgMS03LjYtLjAyWk0xMiAyYTEgMSAwIDAgMSAxIC44OFYxMGExIDEgMCAwIDEtMiAuMTJWM2ExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgUG93ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG93ZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjIgNC44MmEuNzUuNzUgMCAwIDEgLjY0IDEuMzYgNy41MSA3LjUxIDAgMSAwIDYuMzQgMCAuNzUuNzUgMCAxIDEgLjYzLTEuMzUgOSA5IDAgMSAxLTcuNi0uMDFaTTEyIDIuNWMuMzggMCAuNy4yOC43NC42NHY3LjZhLjc1Ljc1IDAgMCAxLTEuNDguMWwtLjAxLS4xdi03LjVjMC0uNC4zMy0uNzQuNzUtLjc0WlwiXSk7XG5leHBvcnQgY29uc3QgUG93ZXIyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQb3dlcjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTUgM2ExIDEgMCAxIDAtMiAwdjlhMSAxIDAgMSAwIDIgMFYzWm0tNC42IDMuNzVhMSAxIDAgMSAwLS44LTEuODMgMTEgMTEgMCAxIDAgOC44IDAgMSAxIDAgMCAwLS44IDEuODMgOSA5IDAgMSAxLTcuMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUG93ZXIyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUG93ZXIyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC42OSA1LjI3YS43NS43NSAwIDAgMS0uNC45OCA5LjUgOS41IDAgMSAwIDcuNDIgMCAuNzUuNzUgMCAwIDEgLjU4LTEuMzggMTEgMTEgMCAxIDEtOC41OCAwYy4zOC0uMTYuODIuMDIuOTguNFpNMTQgMmMuNDEgMCAuNzUuMzQuNzUuNzV2OS41YS43NS43NSAwIDAgMS0xLjUgMHYtOS41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVkaWN0aW9uczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZWRpY3Rpb25zMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC41IDFjLjI4IDAgLjUuMjIuNS41IDAgLjQ2LjA3IDEuMjIuNDcgMS44NC4zOC42IDEuMDggMS4xNCAyLjUzIDEuMTRhLjUuNSAwIDEgMSAwIDEgMy41IDMuNSAwIDAgMC0xLjgyLjczQTIuNzcgMi43NyAwIDAgMCAxNSA4LjQ1YS41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDEtLjUtLjVjMC0uNS0uMTYtMS4yNi0uNi0xLjg4LS40NC0uNi0xLjE2LTEuMS0yLjQtMS4xYS41LjUgMCAwIDEtLjUtLjVjMC0uMjcuMjItLjUuNS0uNS41MSAwIDEuMjUgMCAxLjg3LS4zNi41Ny0uMzMgMS4xMy0xIDEuMTMtMi42MSAwLS4yOC4yMi0uNS41LS41Wk02LjE1IDEyLjE3bC0uOTQgMy40Yy0uMTcuNjEuMDggMS4zNC43NCAxLjYzIDEuNjQuNzMgNC42NSAxLjM1IDcuOTcuMDFhMS40MyAxLjQzIDAgMCAwIC44Mi0xLjc1bC0uOTgtMy4yM2E2LjUgNi41IDAgMCAxLTcuNjEtLjA2Wm02Ljc3LTkuODRjLS4wNC4yMi0uMS4zOC0uMTYuNWEuOTcuOTcgMCAwIDEtLjQuNDJjLS4zNC4yLS44Mi4yMy0xLjM2LjIzYTEuNSAxLjUgMCAxIDAgMCAyLjk4Yy45MSAwIDEuMzQuMzUgMS41OC43LjMuNC40Mi45NS40MiAxLjNhMS41IDEuNSAwIDAgMCAxLjYxIDEuNDhBNS41IDUuNSAwIDAgMSA0LjUgNi45NmE1LjQ4IDUuNDggMCAwIDEgOC40Mi00LjYzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlZGljdGlvbnMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlZGljdGlvbnMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC41IDFjLjI4IDAgLjUuMjIuNS41IDAgLjQ2LjA3IDEuMjIuNDcgMS44NC4zOC42IDEuMDggMS4xNCAyLjUzIDEuMTRhLjUuNSAwIDEgMSAwIDEgMy41IDMuNSAwIDAgMC0xLjgyLjczQTIuNzcgMi43NyAwIDAgMCAxNSA4LjQ1YS41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDEtLjUtLjVjMC0uNS0uMTYtMS4yNi0uNi0xLjg4LS40NC0uNi0xLjE2LTEuMS0yLjQtMS4xYS41LjUgMCAwIDEtLjUtLjVjMC0uMjcuMjItLjUuNS0uNS41MSAwIDEuMjUgMCAxLjg3LS4zNi41Ny0uMzMgMS4xMy0xIDEuMTMtMi42MSAwLS4yOC4yMi0uNS41LS41Wm0uMDQgMi43M2EyLjk1IDIuOTUgMCAwIDEtMS4zMyAxLjMzIDMuNTMgMy41MyAwIDAgMSAxLjMzIDEuNDggNC4yIDQuMiAwIDAgMSAxLjUyLTEuNDQgMy4yMiAzLjIyIDAgMCAxLTEuNTItMS4zN1ptLTcuMjYgNi44QTQuNDYgNC40NiAwIDAgMSAxMCAyLjVjLjkgMCAxLjc0LjI2IDIuNDQuNzJhLjk5Ljk5IDAgMCAwIC4zMi0uMzhjLjA2LS4xMi4xMi0uMjguMTYtLjVBNS41IDUuNSAwIDAgMCA0LjUgNi45NmMwIDEuNjcuNzUgMy4xNiAxLjkzIDQuMTZsLTEuMjIgNC40NGMtLjE3LjYyLjA4IDEuMzUuNzQgMS42NCAxLjY0LjczIDQuNjUgMS4zNSA3Ljk3LjAxYTEuNDMgMS40MyAwIDAgMCAuODItMS43NWwtMS4yNi00LjE3YS40OS40OSAwIDAgMC0uMDMtLjA3Yy40NS0uMzYuODUtLjggMS4xNi0xLjI4YTEuNTMgMS41MyAwIDAgMS0xLjAxLS4zIDQuNSA0LjUgMCAwIDEtNi4zMi44OVptNS4zIDEuMjYgMS4yIDMuOTZjLjA3LjI0LS4wNS40Ni0uMjMuNTRhOS4zNiA5LjM2IDAgMCAxLTcuMTkgMGMtLjE0LS4wNi0uMjQtLjI0LS4xOC0uNDdsMS4xMi00LjFhNS41IDUuNSAwIDAgMCA1LjI4LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlZGljdGlvbnMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVkaWN0aW9uczI0RmlsbGVkJywgXCIyNFwiLCBbXCJtMTYuNjggMTQuOTMgMS4yOSAzLjg1Yy4yNi44LS4wOCAxLjY3LS44MSAyLjA4LTEuMzcuNzctMy4xIDEuMTQtNS4xNiAxLjE0cy0zLjc5LS4zNy01LjE2LTEuMTRhMS43NSAxLjc1IDAgMCAxLS44LTIuMDhsMS4yOC0zLjg1YTcuNzIgNy43MiAwIDAgMCA5LjM2IDBaTTEyIDJjMS4zNCAwIDIuNTguMzkgMy42MyAxLjA2LS4wOC4zMS0uMi41NC0uMzcuNy0uMjUuMjYtLjY4LjQyLTEuMzIuNDdsLS4yMi4wMmgtLjM4Yy0yLjE3LjE2LTIuMTIgMy41LjE2IDMuNS44OSAwIDEuNDYuMTggMS43Ni40OS4yNi4yNS40Mi42OC40NyAxLjMybC4wMi4yMnYuMzhjLjEgMS4zMiAxLjM2IDEuODEgMi4zNCAxLjVBNi43NSA2Ljc1IDAgMSAxIDEyIDJabTYuMjUgMGMwIDEuMTUuMjcgMS45Ni43OCAyLjQ3LjQ3LjQ3IDEuMi43NCAyLjIxLjc4aC4yNmMuOTYgMCAxIDEuMzguMTIgMS41aC0uMTJjLTEuMTUgMC0xLjk2LjI3LTIuNDcuNzgtLjQ3LjQ3LS43NCAxLjItLjc4IDIuMjFWMTBjMCAxLTEuNSAxLTEuNSAwIDAtMS4xNS0uMjctMS45Ni0uNzgtMi40Ny0uNDctLjQ3LTEuMi0uNzQtMi4yMS0uNzhoLS4yNmMtLjk2IDAtMS0xLjM4LS4xMi0xLjVoLjEyYzEuMTUgMCAxLjk2LS4yNyAyLjQ3LS43OC41MS0uNTEuNzgtMS4zMi43OC0yLjQ3IDAtMSAxLjUtMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZWRpY3Rpb25zMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZWRpY3Rpb25zMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmMxLjE1IDAgMi4yNC4yOSAzLjE5LjgtLjA4LjQ1LS4yMy43Ni0uNDMuOTYtLjEuMTEtLjI1LjItLjQzLjI4QTUuMjUgNS4yNSAwIDEgMCAxMS43NyAxNEwxMiAxNGE1LjI4IDUuMjggMCAwIDAgNC4zOC0yLjM1Yy42NC4yMiAxLjQuMDggMS45LS40YTYuNzYgNi43NiAwIDAgMS0xLjkzIDIuNjdsMS42MiA0Ljg2Yy4yNi44LS4wOCAxLjY3LS44MSAyLjA4LTEuMzcuNzctMy4xIDEuMTQtNS4xNiAxLjE0cy0zLjc5LS4zNy01LjE2LTEuMTRhMS43NSAxLjc1IDAgMCAxLS44LTIuMDhsMS42MS00Ljg2QTYuNzQgNi43NCAwIDAgMSAxMiAyWm0zLjA2IDEyLjgtLjM2LjE0aC0uMDJjLS43My4zMi0xLjUyLjUxLTIuMzUuNTVIMTIuMjRsLS4yNC4wMWgtLjMzYTYuNjggNi42OCAwIDAgMS0yLjM1LS41NWwtLjAyLS4wMS0uMzYtLjE1LTEuNDggNC40NmMtLjA0LjEyIDAgLjI0LjExLjMgMS4xMy42MyAyLjYuOTUgNC40My45NSAxLjgzIDAgMy4zLS4zMiA0LjQzLS45NS4xLS4wNi4xNS0uMTguMTEtLjNsLTEuNDgtNC40NlptLTMuMzcuN0gxMmgtLjMxWm02LjMtMTMuNjJMMTggMmMwIDEuMTUuMjcgMS45Ni43OCAyLjQ3LjQ3LjQ3IDEuMi43NCAyLjIxLjc4aC4yNmMuOTYgMCAxIDEuMzguMTIgMS41aC0uMTJjLTEuMTUgMC0xLjk2LjI3LTIuNDcuNzgtLjQ3LjQ3LS43NCAxLjItLjc4IDIuMjFWMTBjMCAxLTEuNSAxLTEuNSAwIDAtMS4xNS0uMjctMS45Ni0uNzgtMi40Ny0uNDctLjQ3LTEuMi0uNzQtMi4yMS0uNzhoLS4yNmMtLjk2IDAtMS0xLjM4LS4xMi0xLjVoLjEyYzEuMTUgMCAxLjk2LS4yNyAyLjQ3LS43OC41MS0uNTEuNzgtMS4zMi43OC0yLjQ3IDAtLjk2IDEuMzgtMSAxLjUtLjEyWm0tLjc0IDMuMDctLjE0LjJhMy42IDMuNiAwIDAgMS0uOS44NSAzLjY0IDMuNjQgMCAwIDEgMS4wNCAxLjA1QTMuNjQgMy42NCAwIDAgMSAxOC4zIDZhMy42NCAzLjY0IDAgMCAxLS45LS44NGwtLjE1LS4yWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW0xMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTMgMWgxLjA1TDMgNEgxLjJsMS4zNS0yLjcyQS41LjUgMCAwIDEgMyAxWk0xLjIzIDVsMy4wMSA0LjY5TDIuOTcgNUgxLjIzWk00IDVsMS41MyA1LjY1YS40OC40OCAwIDAgMCAuOTIgMEw4IDVINFptNS4wMiAwTDcuNzYgOS42OSAxMC43NyA1SDkuMDNabTEuNzgtMUg5TDcuOTYgMUg5Yy4xOSAwIC4zNi4xLjQ1LjI4TDEwLjggNFpNNy45NSA0aC0zLjlsMS4wNi0zSDYuOWwxLjA1IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVtaXVtMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW0xMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02Ljk5IDFIM2EuNS41IDAgMCAwLS40NS4yOGwtMS41IDNhLjUuNSAwIDAgMCAuMDUuNTJsNC41IDZhLjUuNSAwIDAgMCAuNTguMTcuNS41IDAgMCAwIC4yMy0uMThMMTAuOSA0LjhhLjUuNSAwIDAgMCAuMDUtLjUybC0xLjUtM0EuNS41IDAgMCAwIDkgMUg2Ljk5Wm0tLjM1IDEgLjY3IDJINC42OWwuNjctMmgxLjI4Wm0xLjcyIDItLjY3LTJoMWwxIDJIOC4zNlpNNy4zMSA1IDYgOC45MiA0LjcgNWgyLjZabS4xNCAyLjc0TDguMzYgNUg5LjVMNy40NSA3Ljc0Wm0tMi45IDBMMi41IDVoMS4xNGwuOTEgMi43NFpNMy42NCA0SDIuMzFsMS0yaDFsLS42NyAyWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW0xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNzUgMmEuNzUuNzUgMCAwIDAtLjY2LjRsLTIgMy43NWEuNzUuNzUgMCAwIDAgLjA3LjgxbDYuMjUgOGEuNzUuNzUgMCAwIDAgMS4xOCAwbDYuMjUtOGEuNzUuNzUgMCAwIDAgLjA3LS44MWwtMi0zLjc1YS43NS43NSAwIDAgMC0uNjYtLjRoLTguNVptLS44OCA0TDQuMiAzLjVoMS4yOEw0Ljg1IDZIMi44N1ptLjYxIDEuNWgxLjU1bDEuMDMgMy4zLTIuNTgtMy4zWm0zLjEyIDBoMi44TDggMTEuOTkgNi42IDcuNVptNC4zNyAwaDEuNTVsLTIuNTggMy4zIDEuMDMtMy4zWk0xMy4xMyA2aC0xLjk4bC0uNjMtMi41aDEuMjhMMTMuMTMgNlpNOS42IDZINi40bC42Mi0yLjVoMS45Nkw5LjYgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW0xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNSAyYS41LjUgMCAwIDAtLjQ1LjI4bC0yIDRhLjUuNSAwIDAgMCAuMDYuNTRsNi41IDhhLjUuNSAwIDAgMCAuNzggMGw2LjUtOGEuNS41IDAgMCAwIC4wNi0uNTRsLTItNEEuNS41IDAgMCAwIDEyLjUgMmgtOVpNMi4zIDZsMS41LTNoMi4wNmwtLjc1IDNoLTIuOFptLjI1IDFoMi41OGwxLjYyIDUuMTZMMi41NSA3Wm0zLjYzIDBoMy42NEw4IDEyLjgyIDYuMTggN1ptNC42OSAwaDIuNThsLTQuMiA1LjE2TDEwLjg3IDdabTIuODItMWgtMi44bC0uNzUtM2gyLjA1bDEuNSAzWk05Ljg2IDZINi4xNGwuNzUtM2gyLjIybC43NSAzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW0yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAyLjc1YS43NS43NSAwIDAgMC0uNjYuMzlsLTIuNzUgNWMtLjE1LjI3LS4xMS42LjA4Ljg0bDcuMjUgOC43NWEuNzUuNzUgMCAwIDAgMS4xNiAwbDcuMjUtOC43NWMuMi0uMjQuMjMtLjU3LjA4LS44NGwtMi43NS01YS43NS43NSAwIDAgMC0uNjYtLjM5aC05Wk00LjE2IDcuNWwxLjc4LTMuMjVoMS41TDYuMzEgNy41SDQuMTZaTTYuMTQgOWwxLjkzIDQuNzVMNC4xNCA5aDJaTTEwIDE0LjQ4IDcuNzYgOWg0LjM5bC0yLjE2IDUuNDhaTTcuODkgNy41bDEuMTQtMy4yNWgxLjk1bDEuMiAzLjI1SDcuODhabTUuODggMC0xLjItMy4yNWgxLjQ5bDEuNzggMy4yNWgtMi4wN1ptMCAxLjVoMi4xbC00LjAxIDQuODNMMTMuNzYgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW0yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNSAzYS41LjUgMCAwIDAtLjQzLjI0bC0zIDVhLjUuNSAwIDAgMCAuMDUuNThsNy41IDlhLjUuNSAwIDAgMCAuNzYgMGw3LjUtOWEuNS41IDAgMCAwIC4wNS0uNThsLTMtNUEuNS41IDAgMCAwIDE0LjUgM2gtOVpNMy4zOCA4bDIuNC00aDEuOThsLTEuNiA0SDMuMzhabTIuNzggMSAyLjI2IDUuODNMMy41NyA5aDIuNTlaTTEwIDE2LjEyIDcuMjMgOWg1LjU0TDEwIDE2LjEyWk03LjI0IDhsMS42LTRoMi4zMmwxLjYgNEg3LjI0Wm02LjYgMC0xLjYtNGgxLjk4bDIuNCA0aC0yLjc4Wm0wIDFoMi42bC00Ljg2IDUuODNMMTMuODQgOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW0yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVtaXVtMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOCAzYTEgMSAwIDAgMSAuODMuNDRsLjA2LjExIDMgNmExIDEgMCAwIDEtLjA2IDEuMDFsLS4wOS4xLTguOTcgOS45OGEuOTkuOTkgMCAwIDEtLjg5LjM1bC0uMS0uMDJhLjk4Ljk4IDAgMCAxLS41NC0uMzJsLTguOTgtOS45OGExIDEgMCAwIDEtLjItMWwuMDUtLjEyIDMtNmExIDEgMCAwIDEgLjc3LS41NEw2IDNoMTJabS0zLjQyIDhIOS40MkwxMiAxNy4zNCAxNC41OCAxMVptNC4xNyAwaC0yLjAybC0xLjY2IDQuMDlMMTguNzUgMTFaTTcuMjYgMTFINS4yNWwzLjY3IDQuMDlMNy4yNiAxMVptMS4zNi02aC0ybC0yIDRoMi43bDEuMy00Wm00LjY1IDBoLTIuNTRsLTEuMyA0aDUuMTRsLTEuMy00Wm00LjExIDBoLTJsMS4zIDRoMi43bC0yLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVtaXVtMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW0yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCAzYy4yNCAwIC40Ni4xMi42LjNsLjA2LjEgMy4yNiA2LjAyLjA0LjEuMDEuMDMuMDIuMXYuMWMwIC4wNyAwIC4xNC0uMDIuMmwtLjA1LjEzLS4wMy4wNmEuNzYuNzYgMCAwIDEtLjA4LjFsLjA2LS4wNy0uMDIuMDMtOS4yNSAxMC41YS43Mi43MiAwIDAgMS0uMy4yNGwtLjEuMDMtLjA4LjAyTDEyIDIxaC0uMWwtLjEyLS4wM2EuNzIuNzIgMCAwIDEtLjE3LS4wOGgtLjAxYS42Ny42NyAwIDAgMS0uMTMtLjFsLTkuMy0xMC41NS0uMDItLjA0LS4wNC0uMDZhLjc0Ljc0IDAgMCAxLS4xLS4zTDIgOS43NXYtLjA3bC4wMi0uMDguMDItLjEuMDItLjA1LjAzLS4wNiAzLjI1LTZhLjc1Ljc1IDAgMCAxIC41Ni0uMzhMNiAzaDEyWm0tMyA3LjVIOWwzIDcuNjkgMy03LjY5Wm0tNy42MSAwSDQuNGw1LjM1IDYuMDctMi4zNy02LjA3Wm0xMi4yIDBIMTYuNmwtMi4zNyA2LjA3IDUuMzUtNi4wN1ptLTEwLjYyLTZINi40NEw0LjAxIDloMy41MmwxLjQ0LTQuNVptNC40OCAwaC0yLjlMOS4xIDloNS43OWwtMS40NC00LjVabTQuMSAwaC0yLjUyTDE2LjQ3IDloMy41MmwtMi40NC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVtaXVtMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjAuNzUgM2MuMyAwIC42LjE0Ljc4LjM3bC4wNy4xMSA0LjI1IDdhMSAxIDAgMCAxLS4wMSAxLjA2bC0uMDguMS0xMSAxM2ExIDEgMCAwIDEtMS40NC4xbC0uMDgtLjEtMTEtMTNhMSAxIDAgMCAxLS4xNS0xLjA1bC4wNi0uMSA0LjI1LTdBMSAxIDAgMCAxIDcuMTIgM0w3LjI1IDNoMTMuNVptLTMuMjMgOWgtNy4wNEwxNCAyMC42NyAxNy41MiAxMlptNS4zMiAwaC0zLjE3bC0yLjkxIDcuMiA2LjA4LTcuMlpNOC4zMyAxMkg1LjE2bDYuMDggNy4yTDguMzMgMTJabTEuMzQtN0g3LjgxbC0zLjAzIDVoMy40NmwxLjQzLTVabTYuNTggMGgtNC41bC0xLjQzIDVoNy4zNmwtMS40My01Wm0zLjk0IDBoLTEuODdsMS40MyA1aDMuNDdMMjAuMiA1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVtaXVtMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjEuMjUgM2MuMjQgMCAuNDcuMTIuNi4zMWwuMDYuMDkgNC4wMSA3LjUxLjA0LjEuMDEuMDQuMDIuMDguMDEuMDl2LjEtLjA3YzAgLjEtLjAyLjItLjA2LjNsLS4wMy4wNi0uMDQuMDYtLjA1LjA3TDE0LjYgMjQuN2EuNzMuNzMgMCAwIDEtLjM4LjI3bC0uMDYuMDEtLjEuMDJoLS4xNmwtLjA4LS4wMi0uMS0uMDRoLS4wM2EuNy43IDAgMCAxLS4yNS0uMTlMMi4xNyAxMS43M2wtLjA2LS4xLS4wNS0uMDgtLjAzLS4xLS4wMy0uMTN2LS4xM2wuMDItLjF2LS4wNGwuMDQtLjEuMDMtLjA1IDQtNy41YS43NS43NSAwIDAgMSAuNTYtLjRoMTQuNlptLTMuMzQgOWgtNy44MkwxNCAyMi4xNiAxNy45IDEyWm0tOS40MiAwaC00LjFsNy4zNyA4LjUyTDguNSAxMlptMTUuMTIgMGgtNC4xbC0zLjI3IDguNTFMMjMuNjEgMTJaTTEwLjAzIDQuNUg3LjJsLTMuMiA2aDQuNDJsMS42LTZabTYuNCAwaC00Ljg1bC0xLjYgNmg4LjA0bC0xLjYtNlptNC4zNyAwaC0yLjgybDEuNiA2SDI0bC0zLjItNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW0zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVtaXVtMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk03IDRjLS40OCAwLS45Mi4yNy0xLjEzLjdsLTMuNzUgNy43NmMtLjIuNDMtLjE1Ljk1LjE2IDEuMzNsMTIuNzUgMTUuNzVhMS4yNSAxLjI1IDAgMCAwIDEuOTQgMGwxMi43NS0xNS43NWMuMy0uMzguMzctLjkuMTYtMS4zM0wyNi4xMyA0LjdDMjUuOTIgNC4yNyAyNS40OCA0IDI1IDRIN1ptLTEuNjQgNy41IDIuNDItNWgzLjdsLTEuNTcgNUg1LjM2Wm0uMyAyLjVoNC4xbDIuODcgOC42TDUuNjcgMTRabTYuNzQgMGg3LjJMMTYgMjQuOCAxMi40IDE0Wm05LjgzIDBoNC4xbC02Ljk2IDguNiAyLjg2LTguNlptNC40LTIuNUgyMi4xbC0xLjU2LTVoMy42OWwyLjQyIDVabS03LjE2IDBoLTYuOTRsMS41Ni01aDMuODJsMS41NiA1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVtaXVtMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNyA0YTEgMSAwIDAgMC0uOS41NWwtNCA4YTEgMSAwIDAgMCAuMTIgMS4wOGwxMyAxNmExIDEgMCAwIDAgMS41NiAwbDEzLTE2YTEgMSAwIDAgMCAuMTEtMS4wOGwtNC04QTEgMSAwIDAgMCAyNSA0SDdabS0yLjM4IDggMy02aDQuMWwtMS41IDZoLTUuNlptLjQ4IDJoNS4xN2wzLjIyIDEwLjMzTDUuMSAxNFptNy4yNiAwaDcuMjhMMTYgMjUuNjUgMTIuMzYgMTRabTkuMzggMGg1LjE2bC04LjQgMTAuMzNMMjEuNzUgMTRabTUuNjQtMmgtNS42bC0xLjUtNmg0LjFsMyA2Wm0tNy42NiAwaC03LjQ0bDEuNS02aDQuNDRsMS41IDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVtaXVtUGVyc29uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bVBlcnNvbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy43NSAyYS43NS43NSAwIDAgMC0uNjYuNGwtMiAzLjc1YS43NS43NSAwIDAgMCAuMDcuODFsNC45MyA2LjMyYy0uMDYtLjI2LS4wOS0uNTItLjA5LS43OCAwLTEgLjYtMS44NyAxLjQ1LTIuMjdMNi42IDcuNWguOTRjLjEtLjU3LjM1LTEuMDkuNzItMS41SDYuNGwuNjItMi41aDEuOTZsLjQyIDEuN2EzIDMgMCAwIDEgMS41LS4xN2wtLjM4LTEuNTNoMS4yOEwxMy4xMyA2aC0uNGEyLjk5IDIuOTkgMCAwIDEgLjY1IDIuODNsMS40Ni0xLjg3YS43NS43NSAwIDAgMCAuMDctLjgxbC0yLTMuNzVhLjc1Ljc1IDAgMCAwLS42Ni0uNGgtOC41Wm0tLjg4IDRMNC4yIDMuNWgxLjI4TDQuODUgNkgyLjg3Wm0uNjEgMS41aDEuNTVsMS4wMyAzLjMtMi41OC0zLjNabTkuMDIuNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTEuNSA0LjVjMCAxLjI1LTEgMi41LTMuNSAyLjVTNyAxMy43NSA3IDEyLjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW1QZXJzb24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bVBlcnNvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNSAyYS41LjUgMCAwIDAtLjQ1LjI4bC0yIDRhLjUuNSAwIDAgMCAuMDYuNTRsNC45IDYuMDNhMi41IDIuNSAwIDAgMSAuMTktMS4zNUwyLjU2IDdoMi41OGwxLjI5IDQuMTFjLjItLjMuNDgtLjU3LjgtLjc2TDYuMTkgN2gxLjVhMyAzIDAgMCAxIC41OC0xSDYuMTRsLjc1LTNoMi4yMmwuNTMgMi4xMmEzIDMgMCAwIDEgMS0uMTJsLS41LTJoMi4wNWwxLjUgM2gtLjk1YTMgMyAwIDAgMSAuNTkgMWguMTJsLS4wOS4xYTMgMyAwIDAgMSAuMDggMS41bDEuNDUtMS43OGEuNS41IDAgMCAwIC4wNi0uNTRsLTItNEEuNS41IDAgMCAwIDEyLjUgMmgtOVpNMi4zIDZsMS41LTNoMi4wNmwtLjc1IDNoLTIuOFptMTAuMiAyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMS41IDQuNWMwIDEuMjUtMSAyLjUtMy41IDIuNVM3IDEzLjc1IDcgMTIuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bVBlcnNvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW1QZXJzb24yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAyLjc1YS43NS43NSAwIDAgMC0uNjYuMzlsLTIuNzUgNWMtLjE1LjI3LS4xMS42LjA4Ljg0bDcuMjUgOC43NWEuNzUuNzUgMCAwIDAgMS4xNiAwbC40OC0uNTlhMy4yNyAzLjI3IDAgMCAxLS4wNi0uNjRjMC0xLjMgMS0yLjM4IDIuMjctMi40OWEyLjk5IDIuOTkgMCAwIDEgLjE3LTQuMTlsLjMyLS44Mmg0LjA1bC4wMi0uMDJjLjItLjI0LjIzLS41Ny4wOC0uODRsLTIuNzUtNWEuNzUuNzUgMCAwIDAtLjY2LS4zOWgtOVpNNC4xNiA3LjVsMS43OC0zLjI1aDEuNUw2LjMxIDcuNUg0LjE2Wk02LjE0IDlsMS45MyA0Ljc1TDQuMTQgOWgyWk0xMCAxNC40OCA3Ljc2IDloNC4zOWwtMi4xNiA1LjQ4Wk03Ljg5IDcuNWwxLjE0LTMuMjVoMS45NWwxLjIgMy4yNUg3Ljg4Wm01Ljg4IDAtMS4yLTMuMjVoMS40OWwxLjc4IDMuMjVoLTIuMDdaTTE3LjUgMTJhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0xLjUgNC41YzAgMS4yNS0xIDIuNS0zLjUgMi41UzEyIDE3Ljc1IDEyIDE2LjVjMC0uODMuNjctMS41IDEuNS0xLjVoNGMuODMgMCAxLjUuNjcgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZW1pdW1QZXJzb24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlbWl1bVBlcnNvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNSAzYS41LjUgMCAwIDAtLjQzLjI0bC0zIDVhLjUuNSAwIDAgMCAuMDUuNThsNy40OSA5YS41LjUgMCAwIDAgLjg2LS4xM0wxMy44NCA5aDMuOWwuMTQtLjE4YS41LjUgMCAwIDAgLjA1LS41OGwtMy01QS41LjUgMCAwIDAgMTQuNSAzaC05Wm03LjI3IDZMMTAgMTYuMTIgNy4yMyA5aDUuNTRaTTMuMzggOGwyLjQtNGgxLjk4bC0xLjYgNEgzLjM4Wm0yLjc4IDEgMi4yNiA1LjgzTDMuNTcgOWgyLjU5Wm0xLjA4LTEgMS42LTRoMi4zMmwxLjYgNEg3LjI0Wm02LjYgMC0xLjYtNGgxLjk4bDIuNCA0aC0yLjc4Wm0xLjY2IDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm0wIDVjMi41IDAgMy41LTEuMjUgMy41LTIuNSAwLS44My0uNjctMS41LTEuNS0xLjVoLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41IDAgMS4yNSAxIDIuNSAzLjUgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlbWl1bVBlcnNvbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW1QZXJzb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE4LjgzIDMuNDRBMSAxIDAgMCAwIDE4IDNINS44OGExIDEgMCAwIDAtLjc3LjU1bC0zIDYtLjA2LjEzYTEgMSAwIDAgMCAuMi45OWw4Ljk5IDkuOThjLjE0LjE3LjMzLjI4LjUzLjMybC4xMS4wMmExIDEgMCAwIDAgLjg5LS4zNWwuMjYtLjI5YTMuNzkgMy43OSAwIDAgMS0uMDMtLjQ4di0uMUEyLjc3IDIuNzcgMCAwIDEgMTUuNzcgMTdoLjI4YTMuNDkgMy40OSAwIDAgMSAyLjQ1LTZjLjg1IDAgMS42Mi4zIDIuMjMuOGwxLjAxLTEuMTMuMDktLjFhMSAxIDAgMCAwIC4wNi0xLjAybC0zLTYtLjA2LS4xWk05LjQzIDExaDUuMTVMMTIgMTcuMzQgOS40MiAxMVptLTQuMTggMGgyLjAxbDEuNjYgNC4wOUw1LjI1IDExWm0xLjM3LTZoMmwtMS4zIDRoLTIuN2wyLTRabTQuMSAwaDIuNTVsMS4zIDRIOS40M2wxLjMtNFptNC42NiAwaDJsMiA0aC0yLjdsLTEuMy00Wk0yMSAxNC41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwWm0yIDUuMzhjMCAxLjU1LTEuMjkgMy4xMi00LjUgMy4xMlMxNCAyMS40NCAxNCAxOS44N3YtLjFjMC0uOTguOC0xLjc3IDEuNzctMS43N2g1LjQ2Yy45OCAwIDEuNzcuOCAxLjc3IDEuNzd2LjFaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVtaXVtUGVyc29uMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZW1pdW1QZXJzb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOCAzYy4yNCAwIC40Ni4xMi42LjNsLjA2LjEgMy4yNiA2LjAyLjA0LjEuMDEuMDMuMDIuMXYuMWMwIC4wNyAwIC4xNC0uMDIuMmwtLjA1LjEzLS4wMy4wNmEuOC44IDAgMCAxLS4wNC4wNi43NS43NSAwIDAgMS0uMDQuMDVsLjAyLS4wMy0xLjI3IDEuNDVjLS40My0uMzEtLjkyLS41My0xLjQ2LS42MmwuNDktLjU1SDE2LjZMMTIuNyAyMC41MmMtLjEyLjMtLjQuNDgtLjcuNDhoLS4xYS43NC43NCAwIDAgMS0uMS0uMDNoLS4wMmEuNzIuNzIgMCAwIDEtLjE3LS4wOGgtLjAxYS42Ny42NyAwIDAgMS0uMTMtLjFsLTkuMy0xMC41NS0uMDItLjA0LS4wNC0uMDZhLjc0Ljc0IDAgMCAxLS4xLS4zTDIgOS43NXYtLjA3bC4wMi0uMDguMDItLjEuMDItLjA1LjAzLS4wNiAzLjI1LTZhLjc1Ljc1IDAgMCAxIC41Ni0uMzhMNiAzaDEyWm0tMyA3LjVIOWwzIDcuNjkgMy03LjY5Wm0tNy42MSAwSDQuNGw1LjM1IDYuMDctMi4zNy02LjA3Wm0xLjU4LTZINi40NEw0LjAxIDloMy41MmwxLjQ0LTQuNVptNC40OCAwaC0yLjlMOS4xIDloNS43OWwtMS40NC00LjVabTQuMSAwaC0yLjUyTDE2LjQ3IDloMy41MmwtMi40NC00LjVabTMuNDUgMTBhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDBabTIgNS4zOGMwIDEuNTUtMS4yOSAzLjEyLTQuNSAzLjEyUzE0IDIxLjQ0IDE0IDE5Ljg3di0uMWMwLS45OC44LTEuNzcgMS43Ny0xLjc3aDUuNDZjLjk4IDAgMS43Ny44IDEuNzcgMS43N3YuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXZhaWxhYmxlMTBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBdmFpbGFibGUxMEZpbGxlZCcsIFwiMTBcIiwgW1wiTTUgMTBBNSA1IDAgMSAwIDUgMGE1IDUgMCAwIDAgMCAxMFptMi4xLTUuOUw0Ljg1IDYuMzVhLjUuNSAwIDAgMS0uNyAwbC0xLTFhLjUuNSAwIDAgMSAuNy0uN2wuNjUuNjQgMS45LTEuOWEuNS41IDAgMCAxIC43LjcxWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VBdmFpbGFibGUxMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBdmFpbGFibGUxMFJlZ3VsYXInLCBcIjEwXCIsIFtcIk01IDBhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDUgMFpNMSA1YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFptNi4xLTEuNmMuMi4yLjIuNSAwIC43TDQuODUgNi4zNWEuNS41IDAgMCAxLS43IDBsLTEtMWEuNS41IDAgMSAxIC43LS43bC42NS42NCAxLjktMS45Yy4yLS4xOS41LS4xOS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF2YWlsYWJsZTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXZhaWxhYmxlMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02IDEyQTYgNiAwIDEgMCA2IDBhNiA2IDAgMCAwIDAgMTJabTIuNTMtNi43Mkw1Ljc4IDguMDNjLS4zLjMtLjc3LjMtMS4wNiAwbC0xLTFhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwuNDcuNDcgMi4yMi0yLjIyYS43NS43NSAwIDAgMSAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF2YWlsYWJsZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF2YWlsYWJsZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTYgMGE2IDYgMCAxIDAgMCAxMkE2IDYgMCAwIDAgNiAwWk0xLjUgNmE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFptNy4wMy0xLjc4Yy4zLjMuMy43NyAwIDEuMDZMNS43OCA4LjAzYy0uMy4zLS43Ny4zLTEuMDYgMGwtMS0xYS43NS43NSAwIDAgMSAxLjA2LTEuMDZsLjQ3LjQ3IDIuMjItMi4yMmMuMy0uMy43Ny0uMyAxLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF2YWlsYWJsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXZhaWxhYmxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZabTMuNy05LjMtNCA0YTEgMSAwIDAgMS0xLjQxIDBsLTItMmExIDEgMCAxIDEgMS40Mi0xLjRMNyA4LjU4bDMuMy0zLjNhMSAxIDAgMCAxIDEuNCAxLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VBdmFpbGFibGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBdmFpbGFibGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMS43IDYuN2ExIDEgMCAwIDAtMS40LTEuNEw3IDguNThsLTEuMy0xLjNhMSAxIDAgMCAwLTEuNCAxLjQybDIgMmExIDEgMCAwIDAgMS40IDBsNC00Wk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02YTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF2YWlsYWJsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXZhaWxhYmxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyMGExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBabTQuMi0xMS44LTQuNSA0LjVhMSAxIDAgMCAxLTEuNCAwbC0yLTJhMSAxIDAgMSAxIDEuNC0xLjRMOSAxMC41OGwzLjgtMy44YTEgMSAwIDEgMSAxLjQgMS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXZhaWxhYmxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXZhaWxhYmxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMGExMCAxMCAwIDEgMCAwIDIwIDEwIDEwIDAgMCAwIDAtMjBaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTEyLjItMy4yYTEgMSAwIDAgMSAwIDEuNGwtNC41IDQuNWExIDEgMCAwIDEtMS40IDBsLTItMmExIDEgMCAwIDEgMS40LTEuNEw5IDEwLjU4bDMuOC0zLjhhMSAxIDAgMCAxIDEuNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VBdmFpbGFibGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF2YWlsYWJsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMjRhMTIgMTIgMCAxIDAgMC0yNCAxMiAxMiAwIDAgMCAwIDI0Wm01LjA2LTEzLjQ0LTUuNSA1LjVhMS41IDEuNSAwIDAgMS0yLjEyIDBsLTItMmExLjUgMS41IDAgMCAxIDIuMTItMi4xMmwuOTQuOTQgNC40NC00LjQ0YTEuNSAxLjUgMCAwIDEgMi4xMiAyLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VBdmFpbGFibGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBdmFpbGFibGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAwYTEyIDEyIDAgMSAwIDAgMjQgMTIgMTIgMCAwIDAgMC0yNFpNMyAxMmE5IDkgMCAxIDEgMTggMCA5IDkgMCAwIDEtMTggMFptMTQuMDYtMy41NmExLjUgMS41IDAgMCAxIDAgMi4xMmwtNS41IDUuNWExLjUgMS41IDAgMCAxLTIuMTIgMGwtMi0yYTEuNSAxLjUgMCAwIDEgMi4xMi0yLjEybC45NC45NCA0LjQ0LTQuNDRhMS41IDEuNSAwIDAgMSAyLjEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXkxMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkxMEZpbGxlZCcsIFwiMTBcIiwgW1wiTTUgMTBBNSA1IDAgMSAwIDUgMGE1IDUgMCAwIDAgMCAxMFptMC03djEuOGwxLjM1IDEuMzVhLjUuNSAwIDEgMS0uNy43bC0xLjUtMS41QS41LjUgMCAwIDEgNCA1VjNhLjUuNSAwIDAgMSAxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXkxMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBd2F5MTBSZWd1bGFyJywgXCIxMFwiLCBbXCJNNSA0LjhWM2EuNS41IDAgMCAwLTEgMHYyYzAgLjEzLjA1LjI2LjE1LjM1bDEuNSAxLjVhLjUuNSAwIDEgMCAuNy0uN0w1IDQuNzlabTUgLjJBNSA1IDAgMSAxIDAgNWE1IDUgMCAwIDEgMTAgMFpNOSA1YTQgNCAwIDEgMC04IDAgNCA0IDAgMCAwIDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXdheTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQXdheTEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxMkE2IDYgMCAxIDAgNiAwYTYgNiAwIDAgMCAwIDEyWm0uNS04Ljc1djIuNGwxLjQ5IDEuMjhBLjc1Ljc1IDAgMSAxIDcgOC4wN2wtMS43NS0xLjVBLjc1Ljc1IDAgMCAxIDUgNlYzLjI1YS43NS43NSAwIDAgMSAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXdheTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02LjUgNS42NlYzLjI1YS43NS43NSAwIDAgMC0xLjUgMFY2YzAgLjIyLjEuNDMuMjYuNTdsMS43NSAxLjVBLjc1Ljc1IDAgMSAwIDggNi45M0w2LjUgNS42NlpNMTIgNkE2IDYgMCAxIDEgMCA2YTYgNiAwIDAgMSAxMiAwWm0tMS41IDBhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXkxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNlptLjUtMTEuNXYzLjAybDIuMTIgMS43YTEgMSAwIDEgMS0xLjI0IDEuNTZsLTIuNS0yQTEgMSAwIDAgMSA2LjUgOFY0LjVhMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXdheTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjUgNy41MlY0LjVhMSAxIDAgMSAwLTIgMFY4YzAgLjMuMTQuNi4zOC43OGwyLjUgMmExIDEgMCAxIDAgMS4yNC0xLjU2TDguNSA3LjUyWk04IDBhOCA4IDAgMSAwIDAgMTZBOCA4IDAgMCAwIDggMFpNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDIwYTEwIDEwIDAgMSAwIDAtMjAgMTAgMTAgMCAwIDAgMCAyMFptMC0xNFY5LjZsMi43IDIuN2ExIDEgMCAwIDEtMS40IDEuNDJsLTMtM0ExIDEgMCAwIDEgOCAxMFY2YTEgMSAwIDEgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VBd2F5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgOS41OVY2YTEgMSAwIDEgMC0yIDBWMTBjMCAuMjcuMS41Mi4zLjdsMyAzYTEgMSAwIDEgMCAxLjQtMS40TDEwIDkuNThabS0xMCAuNGExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUF3YXkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDI0YTEyIDEyIDAgMSAwIDAtMjQgMTIgMTIgMCAwIDAgMCAyNFptMS0xNy41djQuODFsMi45OCAyLjU1YTEuNSAxLjUgMCAwIDEtMS45NiAyLjI4bC0zLjUtM0ExLjUgMS41IDAgMCAxIDEwIDEyVjYuNWExLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQXdheTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUF3YXkyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMyAxMS4zMVY2LjVhMS41IDEuNSAwIDAgMC0zIDBWMTJjMCAuNDQuMi44NS41MiAxLjE0bDMuNSAzYTEuNSAxLjUgMCAwIDAgMS45Ni0yLjI4TDEzIDExLjMxWk0wIDEyYTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFptMTItOWE5IDkgMCAxIDAgMCAxOCA5IDkgMCAwIDAgMC0xOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQmxvY2tlZDEwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUJsb2NrZWQxMFJlZ3VsYXInLCBcIjEwXCIsIFtcIk0xMCA1QTUgNSAwIDEgMCAwIDVhNSA1IDAgMCAwIDEwIDBaTTkgNWE0IDQgMCAwIDEtNi40NSAzLjE2bDUuNjEtNS42MUM4LjY5IDMuMjIgOSA0LjA4IDkgNVpNNy40NSAxLjg0IDEuODQgNy40NWE0IDQgMCAwIDEgNS42MS01LjYxWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VCbG9ja2VkMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQmxvY2tlZDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTEyIDZBNiA2IDAgMSAxIDAgNmE2IDYgMCAwIDEgMTIgMFptLTEuNSAwYzAtLjk3LS4zLTEuODctLjgzLTIuNkwzLjM5IDkuNjZBNC41IDQuNSAwIDAgMCAxMC41IDZaTTguNiAyLjMzYTQuNSA0LjUgMCAwIDAtNi4yOCA2LjI4bDYuMjktNi4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQmxvY2tlZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUJsb2NrZWQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDBabS0yIDBjMC0xLjMtLjQxLTIuNS0xLjEtMy40OEw0LjUxIDEyLjlBNiA2IDAgMCAwIDE0IDhabS0yLjUyLTQuOWE2IDYgMCAwIDAtOC4zNyA4LjM3bDguMzctOC4zNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQmxvY2tlZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUJsb2NrZWQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yMCAxMGExMCAxMCAwIDEgMC0yMCAwIDEwIDEwIDAgMCAwIDIwIDBabS0yIDBhOCA4IDAgMCAxLTEyLjkgNi4zMkwxNi4zMSA1LjA5QTcuOTcgNy45NyAwIDAgMSAxOCAxMFptLTMuMS02LjMyTDMuNjkgMTQuOTFBOCA4IDAgMCAxIDE0LjkxIDMuNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUJsb2NrZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VCbG9ja2VkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjQgMTJhMTIgMTIgMCAxIDEtMjQgMCAxMiAxMiAwIDAgMSAyNCAwWm0tMyAwYzAtMS45NC0uNjItMy43NC0xLjY2LTUuMjFMNi43OSAxOS4zNEE5IDkgMCAwIDAgMjEgMTJabS0zLjc5LTcuMzRBOSA5IDAgMCAwIDQuNjYgMTcuMjFMMTcuMjEgNC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQnVzeTEwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQnVzeTEwRmlsbGVkJywgXCIxMFwiLCBbXCJNMTAgNUE1IDUgMCAxIDEgMCA1YTUgNSAwIDAgMSAxMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VCdXN5MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VCdXN5MTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0xMiA2QTYgNiAwIDEgMSAwIDZhNiA2IDAgMCAxIDEyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZUJ1c3kxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZUJ1c3kxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlQnVzeTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlQnVzeTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMjAgMTBhMTAgMTAgMCAxIDEtMjAgMCAxMCAxMCAwIDAgMSAyMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VCdXN5MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VCdXN5MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yNCAxMmExMiAxMiAwIDEgMS0yNCAwIDEyIDEyIDAgMCAxIDI0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZURuZDEwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlRG5kMTBGaWxsZWQnLCBcIjEwXCIsIFtcIk01IDEwQTUgNSAwIDEgMCA1IDBhNSA1IDAgMCAwIDAgMTBaTTMuNSA0LjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlRG5kMTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlRG5kMTBSZWd1bGFyJywgXCIxMFwiLCBbXCJNNSAwYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA1IDBaTTEgNWE0IDQgMCAxIDEgOCAwIDQgNCAwIDAgMS04IDBabTIgMGMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNBLjUuNSAwIDAgMSAzIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZURuZDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlRG5kMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02IDEyQTYgNiAwIDEgMCA2IDBhNiA2IDAgMCAwIDAgMTJaTTMuNzUgNS4yNWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjVhLjc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VEbmQxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VEbmQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02IDBhNiA2IDAgMSAwIDAgMTJBNiA2IDAgMCAwIDYgMFpNMS41IDZhNC41IDQuNSAwIDEgMSA5IDAgNC41IDQuNSAwIDAgMS05IDBaTTMgNmMwLS40MS4zNC0uNzUuNzUtLjc1aDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTQuNUEuNzUuNzUgMCAwIDEgMyA2WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VEbmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZURuZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2Wk01LjI1IDdoNS41YTEgMSAwIDEgMSAwIDJoLTUuNWExIDEgMCAxIDEgMC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VEbmQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VEbmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjI1IDdhMSAxIDAgMCAwIDAgMmg1LjVhMSAxIDAgMSAwIDAtMmgtNS41Wk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02YTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZURuZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlRG5kMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyMGExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBaTTcgOWg2YTEgMSAwIDEgMSAwIDJIN2ExIDEgMCAxIDEgMC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VEbmQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VEbmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAwYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNCAwYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAxIDEgMCAySDdhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlRG5kMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VEbmQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDI0YTEyIDEyIDAgMSAwIDAtMjQgMTIgMTIgMCAwIDAgMCAyNFpNNy41IDEwLjVoOWExLjUgMS41IDAgMCAxIDAgM2gtOWExLjUgMS41IDAgMCAxIDAtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlRG5kMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlRG5kMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMGExMiAxMiAwIDEgMCAwIDI0IDEyIDEyIDAgMCAwIDAtMjRaTTMgMTJhOSA5IDAgMSAxIDE4IDAgOSA5IDAgMCAxLTE4IDBabTMgMGMwLS44My42Ny0xLjUgMS41LTEuNWg5YTEuNSAxLjUgMCAwIDEgMCAzaC05QTEuNSAxLjUgMCAwIDEgNiAxMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlT2ZmbGluZTEwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZU9mZmxpbmUxMFJlZ3VsYXInLCBcIjEwXCIsIFtcIk02Ljg1IDMuMTVjLjIuMi4yLjUgMCAuN0w1LjcxIDVsMS4xNCAxLjE1YS41LjUgMCAxIDEtLjcuN0w1IDUuNzEgMy44NSA2Ljg1YS41LjUgMCAxIDEtLjctLjdMNC4yOSA1IDMuMTUgMy44NWEuNS41IDAgMSAxIC43LS43TDUgNC4yOWwxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaTTAgNWE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMCA1Wm01LTRhNCA0IDAgMSAwIDAgOCA0IDQgMCAwIDAgMC04WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VPZmZsaW5lMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlT2ZmbGluZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTguMDMgMy45N2MuMy4zLjMuNzcgMCAxLjA2TDcuMDYgNmwuOTcuOTdhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNkw2IDcuMDZsLS45Ny45N2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2TDQuOTQgNmwtLjk3LS45N2EuNzUuNzUgMCAwIDEgMS4wNi0xLjA2bC45Ny45Ny45Ny0uOTdjLjMtLjMuNzctLjMgMS4wNiAwWk0wIDZhNiA2IDAgMSAxIDEyIDBBNiA2IDAgMCAxIDAgNlptNi00LjVhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZU9mZmxpbmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VPZmZsaW5lMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTAuNyA1LjNhMSAxIDAgMCAxIDAgMS40TDkuNDIgOGwxLjMgMS4zYTEgMSAwIDAgMS0xLjQyIDEuNEw4IDkuNDJsLTEuMyAxLjNhMSAxIDAgMCAxLTEuNC0xLjQyTDYuNTggOGwtMS4zLTEuM2ExIDEgMCAwIDEgMS40Mi0xLjRMOCA2LjU4bDEuMy0xLjNhMSAxIDAgMCAxIDEuNCAwWk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02YTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZU9mZmxpbmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VPZmZsaW5lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTMuNyA2LjNhMSAxIDAgMCAxIDAgMS40TDExLjQyIDEwbDIuMyAyLjNhMSAxIDAgMCAxLTEuNDIgMS40TDEwIDExLjQybC0yLjMgMi4zYTEgMSAwIDAgMS0xLjQtMS40Mkw4LjU4IDEwbC0yLjMtMi4zYTEgMSAwIDAgMSAxLjQyLTEuNEwxMCA4LjU4bDIuMy0yLjNhMSAxIDAgMCAxIDEuNCAwWk0wIDEwYTEwIDEwIDAgMSAxIDIwIDAgMTAgMTAgMCAwIDEtMjAgMFptMTAtOGE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlT2ZmbGluZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZU9mZmxpbmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNi4wNiA3Ljk0YTEuNSAxLjUgMCAwIDEgMCAyLjEyTDE0LjEyIDEybDEuOTQgMS45NGExLjUgMS41IDAgMCAxLTIuMTIgMi4xMkwxMiAxNC4xMmwtMS45NCAxLjk0YTEuNSAxLjUgMCAwIDEtMi4xMi0yLjEyTDkuODggMTJsLTEuOTQtMS45NGExLjUgMS41IDAgMSAxIDIuMTItMi4xMkwxMiA5Ljg4bDEuOTQtMS45NGExLjUgMS41IDAgMCAxIDIuMTIgMFpNMCAxMmExMiAxMiAwIDEgMSAyNCAwIDEyIDEyIDAgMCAxLTI0IDBabTEyLTlhOSA5IDAgMSAwIDAgMTggOSA5IDAgMCAwIDAtMThaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZU9vZjEwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZU9vZjEwUmVndWxhcicsIFwiMTBcIiwgW1wiTTUuMzUgMy44NWEuNS41IDAgMSAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAxIDAgLjctLjdMNC43IDUuNWgxLjhhLjUuNSAwIDEgMCAwLTFINC43bC42NS0uNjVaTTUgMGE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgNSAwWk0xIDVhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VPb2YxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VPb2YxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02LjI4IDQuNTNhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMiAyYy0uMy4zLS4zLjc3IDAgMS4wNmwyIDJhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtLjcyLS43MmgyLjY5YS43NS43NSAwIDEgMCAwLTEuNWgtMi43bC43My0uNzJaTTYgMGE2IDYgMCAxIDAgMCAxMkE2IDYgMCAwIDAgNiAwWk0xLjUgNmE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlT29mMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlT29mMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC4yIDYuMmExIDEgMCAxIDAtMS40LTEuNEw0LjMgNy4zYTEgMSAwIDAgMCAwIDEuNGwyLjUgMi41YTEgMSAwIDAgMCAxLjQtMS40TDcuNDIgOUgxMWExIDEgMCAxIDAgMC0ySDcuNDFsLjgtLjhaTTggMGE4IDggMCAxIDAgMCAxNkE4IDggMCAwIDAgOCAwWk0yIDhhNiA2IDAgMSAxIDEyIDBBNiA2IDAgMCAxIDIgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlT29mMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlT29mMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuNyA3LjdBMSAxIDAgMSAwIDkuMjggNi4zbC0zIDNhMSAxIDAgMCAwIDAgMS40MWwzIDNhMSAxIDAgMSAwIDEuNDItMS40MWwtMS4zLTEuM0gxM2ExIDEgMCAxIDAgMC0ySDkuNGwxLjMtMS4yOVpNMTAgMGExMCAxMCAwIDEgMCAwIDIwIDEwIDEwIDAgMCAwIDAtMjBaTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZU9vZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZU9vZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjU2IDkuMDZhMS41IDEuNSAwIDAgMC0yLjEyLTIuMTJsLTQgNGExLjUgMS41IDAgMCAwIDAgMi4xMmw0IDRhMS41IDEuNSAwIDAgMCAyLjEyLTIuMTJsLTEuNDQtMS40NGg1LjM4YTEuNSAxLjUgMCAxIDAgMC0zaC01LjM4bDEuNDQtMS40NFpNMTIgMGExMiAxMiAwIDEgMCAwIDI0IDEyIDEyIDAgMCAwIDAtMjRaTTMgMTJhOSA5IDAgMSAxIDE4IDAgOSA5IDAgMCAxLTE4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZVRlbnRhdGl2ZTEwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVRlbnRhdGl2ZTEwUmVndWxhcicsIFwiMTBcIiwgW1wiTTEwIDUuMDZBNSA1IDAgMCAxIDUuMDcgMTBMMTAgNS4wNlptLS4yOC0xLjcyQTQuOTkgNC45OSAwIDAgMCA5IDJMMiA5Yy40LjMuODUuNTUgMS4zNC43Mmw2LjM4LTYuMzhaTTEgNy45OUMuNyA3LjYuNDUgNy4xNC4yOCA2LjY2TDYuNjYuMjhDNy4xNC40NSA3LjYuNyA4IDFMMSA4Wk00Ljk0IDBBNSA1IDAgMCAwIDAgNC45NEw0Ljk0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZVRlbnRhdGl2ZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVRlbnRhdGl2ZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTEyIDYuMDZBNiA2IDAgMCAxIDYuMDYgMTJMMTIgNi4wNlptLS4zNS0yLjA5Yy0uMi0uNTYtLjQ5LTEuMS0uODQtMS41NmwtOC40IDguNGMuNDcuMzUgMSAuNjQgMS41Ni44NGw3LjY4LTcuNjhaTTEuMTkgOS42Yy0uMzUtLjQ3LS42NC0xLS44NC0xLjU2TDguMDMuMzVjLjU2LjIgMS4wOS40OSAxLjU2Ljg0bC04LjQgOC40Wk01Ljk0IDBBNiA2IDAgMCAwIDAgNS45NEw1Ljk0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZVRlbnRhdGl2ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVRlbnRhdGl2ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE2IDguMUE4IDggMCAwIDEgOC4xIDE2TDE2IDguMVptLS40Ni0yLjc3QTcuOTggNy45OCAwIDAgMCAxNC40IDMuMkwzLjIgMTQuNDFjLjY0LjQ4IDEuMzYuODYgMi4xMiAxLjEzTDE1LjU0IDUuMzNaTTEuNTkgMTIuOGE3Ljk4IDcuOTggMCAwIDEtMS4xNC0yLjEyTDEwLjY3LjQ2Yy43Ny4yNyAxLjQ4LjY2IDIuMTIgMS4xNEwxLjYgMTIuOFpNNy45MSAwQTggOCAwIDAgMC0uMDEgNy45MUw3LjkxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZVRlbnRhdGl2ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVRlbnRhdGl2ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguOTUuMDVhOS45NiA5Ljk2IDAgMCAwLTguOSA4LjlsOC45LTguOVpNLjE5IDExLjk1IDExLjk1LjJjLjguMTYgMS42LjQyIDIuMzUuNzhMLjk3IDE0LjMxYTkuOTcgOS45NyAwIDAgMS0uNzgtMi4zNlptMS45OSA0LjI5YTEwLjEyIDEwLjEyIDAgMCAwIDEuNTggMS41OEwxNy44MSAzLjc2YTEwLjEgMTAuMSAwIDAgMC0xLjU4LTEuNThMMi4xOCAxNi4yNFpNMTkuMDIgNS42OSA1LjcgMTkuMDNjLjc2LjM2IDEuNTUuNjIgMi4zNi43OEwxOS44IDguMDVjLS4xNi0uOC0uNDItMS42LS43OS0yLjM2Wm0uOTIgNS4zNy04Ljg5IDguODhhOS45NiA5Ljk2IDAgMCAwIDguODktOC44OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlVGVudGF0aXZlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlVGVudGF0aXZlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTEuNjggMEExMiAxMiAwIDAgMCAwIDExLjY4TDExLjY4IDBaTTIuMzkgMTkuMmMtLjc1LTEtMS4zNC0yLjEyLTEuNzUtMy4zMkwxNS44OC42NGMxLjIuNDEgMi4zMSAxIDMuMyAxLjc1TDIuNCAxOS4yWk0yMy4zNiA4LjExIDguMTIgMjMuMzZjLTEuMi0uNC0yLjMyLTEtMy4zMS0xLjc1bDE2LjgtMTYuOGMuNzQgMSAxLjM0IDIuMTEgMS43NSAzLjMxWm0uNjMgNC4yTDEyLjMyIDI0QTEyIDEyIDAgMCAwIDI0IDEyLjMzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VVbmtub3duMTBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlVW5rbm93bjEwUmVndWxhcicsIFwiMTBcIiwgW1wiTTUgMWE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaTTAgNWE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VuY2VVbmtub3duMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbmNlVW5rbm93bjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTYgMS41YTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05Wk0wIDZhNiA2IDAgMSAxIDEyIDBBNiA2IDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbmNlVW5rbm93bjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW5jZVVua25vd24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAwIDAgMTJBNiA2IDAgMCAwIDggMlpNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZVVua25vd24yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VVbmtub3duMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNMCAxMGExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW5jZVVua25vd24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VuY2VVbmtub3duMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgM2E5IDkgMCAxIDAgMCAxOCA5IDkgMCAwIDAgMC0xOFpNMCAxMmExMiAxMiAwIDEgMSAyNCAwIDEyIDEyIDAgMCAxLTI0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW50ZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW50ZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyIDRhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWk03IDE0Ljc4djEuNzJjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEuNzJhLjUuNSAwIDAgMSAuMTUtLjM2bDMuNy0zLjU2YS41LjUgMCAwIDAtLjM0LS44NkgzLjQ5YS41LjUgMCAwIDAtLjM1Ljg2bDMuNyAzLjU2Yy4xLjEuMTYuMjMuMTYuMzZaTTguNSA3QzcuNjcgNyA3IDcuNjcgNyA4LjVWOWg2di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW50ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VudGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgNmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTAtMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaTTguNSA4YS41LjUgMCAwIDAtLjUuNVY5SDd2LS41QzcgNy42NyA3LjY3IDcgOC41IDdoM2MuODMgMCAxLjUuNjcgMS41IDEuNVY5aC0xdi0uNWEuNS41IDAgMCAwLS41LS41aC0zWk03IDE0Ljc4djEuNzJjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEuNzJhLjUuNSAwIDAgMSAuMTUtLjM2bDMuNy0zLjU2YS41LjUgMCAwIDAtLjM0LS44NkgzLjQ5YS41LjUgMCAwIDAtLjM1Ljg2bDMuNyAzLjU2Yy4xLjEuMTYuMjMuMTYuMzZabTEgMS43MnYtMS43MmMwLS40LS4xNy0uOC0uNDYtMS4wOEw0LjczIDExaDEwLjU0bC0yLjgxIDIuN2MtLjMuMjktLjQ2LjY4LS40NiAxLjA4djEuNzJhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW50ZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW50ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwLjI0IDEzYy43MSAwIDEuMDMuODkuNDcgMS4zM0wxNiAxOC4xMXYxLjY0QzE2IDIxIDE0Ljk5IDIyIDEzLjc1IDIyaC0zLjVDOS4wMSAyMiA4IDIxIDggMTkuNzV2LTEuNjRsLTQuNzItMy43OEEuNzUuNzUgMCAwIDEgMy43NSAxM2gxNi41Wk04Ljc1IDloNi41Yy45MSAwIDEuNjcuNyAxLjc0IDEuNlYxMkg3di0xLjI1YzAtLjkyLjctMS42NyAxLjYtMS43NEw4Ljc2IDloNi41LTYuNVpNMTIgMmEzIDMgMCAxIDEgMCA2IDMgMyAwIDAgMSAwLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW50ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VudGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAuMjQgMTNjLjcxIDAgMS4wMy44OS40NyAxLjMzTDE2IDE4LjExdjEuNjRDMTYgMjEgMTQuOTkgMjIgMTMuNzUgMjJoLTMuNUM5LjAxIDIyIDggMjEgOCAxOS43NXYtMS42NGwtNC43Mi0zLjc4QS43NS43NSAwIDAgMSAzLjc1IDEzaDE2LjVabS0yLjEzIDEuNUg1Ljg5bDMuMzMgMi42NmMuMTguMTUuMjguMzYuMjguNTl2MmMwIC40Mi4zNC43NS43NS43NWgzLjVjLjQxIDAgLjc1LS4zMy43NS0uNzV2LTJjMC0uMjMuMS0uNDQuMjgtLjU5bDMuMzMtMi42NlpNOC43NSA5aDYuNWMuOTEgMCAxLjY3LjcgMS43NCAxLjZWMTJoLTEuNXYtMS4yNWEuMjUuMjUgMCAwIDAtLjE5LS4yNGwtLjA1LS4wMWgtNi41YS4yNS4yNSAwIDAgMC0uMjQuMmwtLjAxLjA1VjEySDd2LTEuMjVjMC0uOTIuNy0xLjY3IDEuNi0xLjc0TDguNzYgOWg2LjUtNi41Wk0xMiAyYTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNlptMCAxLjVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmVzZW50ZXJPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW50ZXJPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMTUgNy44NWMtLjEuMi0uMTUuNDItLjE1LjY1VjloMS4zbDEgMUgzLjVhLjUuNSAwIDAgMC0uMzYuODZsMy43IDMuNTZjLjEuMS4xNi4yMy4xNi4zNnYxLjcyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di0xLjcyYS41LjUgMCAwIDEgLjE1LS4zNmwuMjktLjI3IDMuNyAzLjdhLjUuNSAwIDAgMCAuNzEtLjdsLTEwLTEwLTUtNWEuNS41IDAgMSAwLS43LjdsNSA1Wm05LjcgMy4wMS0xLjk3IDEuOUwxMi4xMiAxMGg0LjM5YS41LjUgMCAwIDEgLjM1Ljg2Wk0xMyA5aC0xLjg4bC0yLTJoMi4zOGMuODMgMCAxLjUuNjcgMS41IDEuNVY5Wm0tMy0zYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXNlbnRlck9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmVzZW50ZXJPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03IDguNWMwLS4yMy4wNS0uNDUuMTUtLjY1bC01LTVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdsLTMuNzEtMy43LS4yOS4yN2EuNS41IDAgMCAwLS4xNS4zNnYxLjcyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDcgMTYuNXYtMS43MmEuNS41IDAgMCAwLS4xNS0uMzZsLTMuNy0zLjU2YS41LjUgMCAwIDEgLjM0LS44Nmg1LjhsLTEtMUg3di0uNVptMy4zIDIuNUg0LjcybDIuODEgMi43Yy4zLjI5LjQ2LjY4LjQ2IDEuMDh2MS43MmMwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTEuNzJjMC0uNC4xNy0uOC40Ni0xLjA4bC4yNy0uMjZMMTAuMyAxMVpNMTIgNGEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabS0xIDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tLjg4IDRoMS4zOGMuMjggMCAuNS4yMi41LjVWOWgxdi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIOS4xMmwxIDFabTQuNzYgNC43Ni0uNy0uN0wxNS4yNiAxMWgtMi4xNWwtMS0xaDQuMzlhLjUuNSAwIDAgMSAuMzUuODZsLTEuOTggMS45WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VudGVyT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJlc2VudGVyT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw1Ljg1IDUuODZDNy40NCA5LjQgNyAxMC4wMiA3IDEwLjc1VjEyaDMuOTRsMSAxaC04LjJjLS43IDAtMS4wMS44OS0uNDYgMS4zM0w4IDE4LjExdjEuNjRDOCAyMSA5IDIyIDEwLjI1IDIyaDMuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMS42NGwuNTgtLjQ3IDQuMTQgNC4xNGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTYuMTggMTNsMi43NiAyLjc2IDEuNzctMS40M2EuNzUuNzUgMCAwIDAtLjQ3LTEuMzNoLTQuMDZabS00LTQgMyAzSDE3VjEwLjYxQzE2LjkyIDkuNyAxNi4xNiA5IDE1LjI0IDloLTMuMDZaTTEyIDhhMyAzIDAgMCAxLS45OC0uMTZMOS4xNiA1Ljk4QTMgMyAwIDEgMSAxMiA4WlwiXSk7XG5leHBvcnQgY29uc3QgUHJlc2VudGVyT2ZmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXNlbnRlck9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDUuODUgNS44NkM3LjQ0IDkuNCA3IDEwLjAyIDcgMTAuNzVWMTJoMS41di0xLjMxYy4wMy0uMS4xMy0uMTkuMjUtLjE5aC42OWwyLjUgMi41aC04LjJjLS43IDAtMS4wMS44OS0uNDYgMS4zM0w4IDE4LjExdjEuNjRDOCAyMSA5IDIyIDEwLjI1IDIyaDMuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMS42NGwuNTgtLjQ3IDQuMTQgNC4xNGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptMTIuMjMgMTQuMzUtLjczLjZhLjc1Ljc1IDAgMCAwLS4yOC41OHYyYzAgLjQyLS4zNC43NS0uNzUuNzVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMmMwLS4yMy0uMS0uNDQtLjI4LS41OUw1Ljg5IDE0LjVoNy41NWwyLjA3IDIuMDdaTTEyIDhhMyAzIDAgMCAxLS45OC0uMTZMOS4xNiA1Ljk4QTMgMyAwIDEgMSAxMiA4Wm0wLTQuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptOC4yNCA5LjVoLTQuMDZsMi43NiAyLjc2IDEuNzctMS40M2EuNzUuNzUgMCAwIDAtLjQ3LTEuMzNabS02LjU2LTIuNUwxMi4xOCA5aDMuMDZjLjkyIDAgMS42OC43IDEuNzUgMS42VjEyaC0xLjV2LTEuMjVhLjI1LjI1IDAgMCAwLS4xOS0uMjRsLS4wNi0uMDFoLTEuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aWV3TGluazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpZXdMaW5rMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00IDV2MWg4VjVINFptNiA0djJoMlY5aC0yWk0xIDQuNzVBMi43NSAyLjc1IDAgMCAxIDMuNzUgMmg4LjVBMi43NSAyLjc1IDAgMCAxIDE1IDQuNzV2Ni41QTIuNzUgMi43NSAwIDAgMSAxMi4yNSAxNGgtOC41QTIuNzUgMi43NSAwIDAgMSAxIDExLjI1di02LjVabTItLjI1djJjMCAuMjguMjIuNS41LjVoOWEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTlhLjUuNSAwIDAgMC0uNS41Wm02IDR2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVabS01LjUgMGEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk0zIDExYzAgLjI4LjIyLjUuNS41aDRhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlld0xpbmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlld0xpbmsxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDQuNWMwLS4yOC4yMi0uNS41LS41aDljLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTJaTTQgNXYxaDhWNUg0Wm01LjUgM2EuNS41IDAgMCAwLS41LjV2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM1ptLjUgM1Y5aDJ2MmgtMlpNMyA5YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNEEuNS41IDAgMCAxIDMgOVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDEgMCAwLTFoLTRaTTEgNC41QTIuNSAyLjUgMCAwIDEgMy41IDJoOUEyLjUgMi41IDAgMCAxIDE1IDQuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDEgMTEuNXYtN1pNMy41IDNDMi42NyAzIDIgMy42NyAyIDQuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpZXdMaW5rMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlld0xpbmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgNnYyaDEwVjZINVptNyA1djNoM3YtM2gtM1pNMiA1Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDNoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNS43NXY4LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE3SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTQuMjV2LTguNVptMi0uMjV2M2MwIC4yNy4yMi41LjUuNWgxMWEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTExYS41LjUgMCAwIDAtLjUuNVptNyA1djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTRhLjUuNSAwIDAgMC0uNS41Wm0tNi41IDBhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpNNCAxNGMwIC4yOC4yMi41LjUuNWg1YS41LjUgMCAwIDAgMC0xaC01YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpZXdMaW5rMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpZXdMaW5rMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA1LjVjMC0uMjguMjItLjUuNS0uNWgxMWMuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjV2LTNaTTUgNnYyaDEwVjZINVptNi41IDRhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTRabS41IDR2LTNoM3YzaC0zWm0tOC0zYzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNUEuNS41IDAgMCAxIDQgMTFabS41IDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk0yIDUuNUEyLjUgMi41IDAgMCAxIDQuNSAzaDExQTIuNSAyLjUgMCAwIDEgMTggNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTQuNXYtOVpNNC41IDRDMy42NyA0IDMgNC42NyAzIDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlld0xpbmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aWV3TGluazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4wMiA3djJoMTEuOTZWN0g2LjAyWm04Ljk2IDYuNDh2M2gzdi0zaC0zWk0yIDUuNzVBMi43NSAyLjc1IDAgMCAxIDQuNzUgM2gxNC41QTIuNzUgMi43NSAwIDAgMSAyMiA1Ljc1djEyLjVBMi43NSAyLjc1IDAgMCAxIDE5LjI1IDIxSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTguMjVWNS43NVptMi41Mi41djMuNWMwIC40MS4zNC43NS43NS43NWgxMy40NmMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMy41YS43NS43NSAwIDAgMC0uNzUtLjc1SDUuMjdhLjc1Ljc1IDAgMCAwLS43NS43NVptOC45NiA2LjQ4djQuNWMwIC40MS4zNC43NS43NS43NWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTQuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMC0uNzUuNzVabS04LjItLjIzYS43NS43NSAwIDAgMCAwIDEuNWg1Ljk3YS43NS43NSAwIDAgMCAwLTEuNUg1LjI3Wm0tLjc2IDQuMjVjMCAuNDEuMzQuNzUuNzUuNzVoNS45OGEuNzUuNzUgMCAwIDAgMC0xLjVINS4yN2EuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlld0xpbmsyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlld0xpbmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjUyIDYuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMy40NmMuNDEgMCAuNzUuMzQuNzUuNzV2My41YzAgLjQxLS4zNC43NS0uNzUuNzVINS4yN2EuNzUuNzUgMCAwIDEtLjc1LS43NXYtMy41Wm0xLjUuNzV2MmgxMS45NlY3SDYuMDJabTguMjEgNC45OGEuNzUuNzUgMCAwIDAtLjc1Ljc1djQuNWMwIC40MS4zNC43NS43NS43NWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTQuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41Wm0uNzUgNC41di0zaDN2M2gtM1pNNC41MiAxMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuOThhLjc1Ljc1IDAgMCAxIDAgMS41SDUuMjdhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTUuMjcgMTZhLjc1Ljc1IDAgMCAwIDAgMS41aDUuOThhLjc1Ljc1IDAgMCAwIDAtMS41SDUuMjdaTTIgNS43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSAzaDE0LjVBMi43NSAyLjc1IDAgMCAxIDIyIDUuNzV2MTIuNUEyLjc1IDIuNzUgMCAwIDEgMTkuMjUgMjFINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxOC4yNVY1Ljc1Wk00Ljc1IDQuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxNC41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVY1Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlvdXMxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91czE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQgM2ExIDEgMCAwIDAtMS41OC0uODFsLTcgNC45NmExIDEgMCAwIDAgMCAxLjYzbDcgNS4wM2ExIDEgMCAwIDAgMS41OC0uOFYzWk0yIDIuNWEuNS41IDAgMCAxIDEgMHYxMWEuNS41IDAgMCAxLTEgMHYtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91czE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91czE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgMi41YS41LjUgMCAwIDEgMSAwdjExYS41LjUgMCAwIDEtMSAwdi0xMVpNMTQgM2ExIDEgMCAwIDAtMS41OC0uODFsLTcgNC45NmExIDEgMCAwIDAgMCAxLjYzbDcgNS4wM2ExIDEgMCAwIDAgMS41OC0uOFYzWk02IDcuOTYgMTMgM3YxMEw2IDcuOTZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91czIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNyA0LjI1YzAtMS0xLjEyLTEuNi0xLjk1LTEuMDRsLTguNSA1LjcxYy0uNzMuNS0uNzMgMS41NyAwIDIuMDdsOC41IDUuOGMuODMuNTYgMS45NS0uMDMgMS45NS0xLjA0VjQuMjVaTTMgMy41YS41LjUgMCAwIDEgMSAwdjEzYS41LjUgMCAwIDEtMSAwdi0xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpb3VzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyAzLjVhLjUuNSAwIDAgMSAxIDB2MTNhLjUuNSAwIDAgMS0xIDB2LTEzWm0xNCAuNzVjMC0xLTEuMTItMS42LTEuOTUtMS4wNGwtOC41IDUuNzFjLS43My41LS43MyAxLjU3IDAgMi4wN2w4LjUgNS44Yy44My41NiAxLjk1LS4wMyAxLjk1LTEuMDRWNC4yNVptLTEuMzktLjJjLjE3LS4xMi4zOSAwIC4zOS4ydjExLjVjMCAuMi0uMjIuMzItLjQuMmwtOC40OS01Ljc4YS4yNS4yNSAwIDAgMSAwLS40Mmw4LjUtNS43WlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlvdXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91czI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyAzLjc1YS43NS43NSAwIDAgMSAxLjUgMHYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1Wm0xOCAxYzAtMS40LTEuNTgtMi4yNC0yLjc0LTEuNDRsLTEwLjUgNy4yYTEuNzUgMS43NSAwIDAgMCAwIDIuODdsMTAuNSA3LjNjMS4xNS44MSAyLjc0LS4wMiAyLjc0LTEuNDNWNC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpb3VzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEgNC43NWMwLTEuNC0xLjU4LTIuMjQtMi43NC0xLjQ0bC0xMC41IDcuMmExLjc1IDEuNzUgMCAwIDAgMCAyLjg3bDEwLjUgNy4zYzEuMTUuODEgMi43NC0uMDIgMi43NC0xLjQzVjQuNzVabS0xLjktLjJjLjE3LS4xMi40IDAgLjQuMnYxNC41YzAgLjItLjIzLjMyLS40LjJsLTEwLjUtNy4zYS4yNS4yNSAwIDAgMSAuMDEtLjQxbDEwLjUtNy4yWk0zIDMuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjE2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91czI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk00LjUgMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2MjAuNWEuNzUuNzUgMCAwIDAgMS41IDBWMy43NVpNMjUgNS4yNWEyLjI1IDIuMjUgMCAwIDAtMy41My0xLjg0bC0xMi41IDguNjhhMi4yNSAyLjI1IDAgMCAwLS4wMiAzLjY4bDEyLjUgOC44MUEyLjI1IDIuMjUgMCAwIDAgMjUgMjIuNzVWNS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpb3VzMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNC41IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjMuNzVaTTI1IDUuMjVhMi4yNSAyLjI1IDAgMCAwLTMuNTMtMS44NGwtMTIuNSA4LjY4YTIuMjUgMi4yNSAwIDAgMC0uMDIgMy42OGwxMi41IDguODFBMi4yNSAyLjI1IDAgMCAwIDI1IDIyLjc1VjUuMjVabS0yLjY4LS42MWEuNzUuNzUgMCAwIDEgMS4xOC42MXYxNy41YzAgLjYtLjY5Ljk2LTEuMTguNmwtMTIuNS04LjhhLjc1Ljc1IDAgMCAxIDAtMS4yM2wxMi41LTguNjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91czMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk02IDVhMSAxIDAgMCAwLTIgMHYyMmExIDEgMCAxIDAgMiAwVjVabTIyIDEuNWMwLTItMi4yMy0zLjE5LTMuOS0yLjA3bC0xNCA5LjQzQTIuNSAyLjUgMCAwIDAgMTAuMSAxOGwxNCA5LjU2QTIuNSAyLjUgMCAwIDAgMjggMjUuNXYtMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91czMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91czMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTYgNWExIDEgMCAwIDAtMiAwdjIyYTEgMSAwIDEgMCAyIDBWNVptMjIgMS41YzAtMi0yLjIzLTMuMTktMy45LTIuMDdsLTE0IDkuNDNBMi41IDIuNSAwIDAgMCAxMC4xIDE4bDE0IDkuNTZBMi41IDIuNSAwIDAgMCAyOCAyNS41di0xOVptLTIuNzgtLjQxYS41LjUgMCAwIDEgLjc4LjQxdjE5YS41LjUgMCAwIDEtLjc4LjRsLTE0LTkuNTVhLjUuNSAwIDAgMSAwLS44M2wxNC05LjQzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlvdXM0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91czQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNy4yNSA2Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djMzLjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjcuMjVDNiA2LjU2IDYuNTYgNiA3LjI1IDZaTTQyIDkuMjZhMy4yNSAzLjI1IDAgMCAwLTUuMDktMi42OGwtMjEuNSAxNC43NGEzLjI1IDMuMjUgMCAwIDAgMCA1LjM2bDIxLjUgMTQuNzRBMy4yNSAzLjI1IDAgMCAwIDQyIDM4Ljc0VjkuMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91czQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91czQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTguNSA3LjI1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHYzMy41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMFY3LjI1Wm0zMy41IDJhMy4yNSAzLjI1IDAgMCAwLTUuMDktMi42N2wtMjEuNSAxNC43NGEzLjI1IDMuMjUgMCAwIDAgMCA1LjM2bDIxLjUgMTQuNzRBMy4yNSAzLjI1IDAgMCAwIDQyIDM4Ljc0VjkuMjZabS0zLjY3LS42MWEuNzUuNzUgMCAwIDEgMS4xNy42MnYyOS40OGMwIC42LS42OC45Ni0xLjE3LjYybC0yMS41LTE0Ljc0YS43NS43NSAwIDAgMSAwLTEuMjRsMjEuNS0xNC43NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByZXZpb3VzRnJhbWUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91c0ZyYW1lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS41IDNhLjUuNSAwIDAgMC0uNS41djEzYS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLS41LS41Wm0tNS40NS4yMWMuODMtLjU1IDEuOTUuMDQgMS45NSAxLjA0djExLjVjMCAxLTEuMTIgMS42LTEuOTUgMS4wNGwtOC41LTUuOGExLjI1IDEuMjUgMCAwIDEgMC0yLjA3bDguNS01LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91c0ZyYW1lMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByZXZpb3VzRnJhbWUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNS41IDNhLjUuNSAwIDAgMC0uNS41djEzYS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLS41LS41Wm0tNS40NS4yMWMuODMtLjU1IDEuOTUuMDQgMS45NSAxLjA0djExLjVjMCAxLTEuMTIgMS42LTEuOTUgMS4wNGwtOC41LTUuOGExLjI1IDEuMjUgMCAwIDEgMC0yLjA3bDguNS01LjdaTTExIDQuMjVjMC0uMi0uMjItLjMyLS4zOS0uMmwtOC41IDUuN2EuMjUuMjUgMCAwIDAgMCAuNDJsOC41IDUuNzljLjE3LjExLjM5IDAgLjM5LS4yVjQuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmV2aW91c0ZyYW1lMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJldmlvdXNGcmFtZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTguNSAzLjc1YS43NS43NSAwIDAgMSAxLjUgMHYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1Wm0tNi4yNC0uNDRjMS4xNi0uOCAyLjc0LjA0IDIuNzQgMS40NHYxNC41YTEuNzUgMS43NSAwIDAgMS0yLjc1IDEuNDNsLTEwLjUtNy4zYy0xLS43LTEtMi4xOS4wMS0yLjg4bDEwLjUtNy4yWlwiXSk7XG5leHBvcnQgY29uc3QgUHJldmlvdXNGcmFtZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmV2aW91c0ZyYW1lMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTguNSAzLjc1YS43NS43NSAwIDAgMSAxLjUgMHYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1Wm0tNi4yNC0uNDRjMS4xNi0uOCAyLjc0LjA0IDIuNzQgMS40NHYxNC41YTEuNzUgMS43NSAwIDAgMS0yLjc1IDEuNDNsLTEwLjUtNy4zYy0xLS43LTEtMi4xOS4wMS0yLjg4bDEwLjUtNy4yWm0xLjI0IDEuNDRjMC0uMi0uMjItLjMyLS40LS4yTDIuNjIgMTEuNzRhLjI1LjI1IDAgMCAwIDAgLjQxbDEwLjUgNy4zYy4xNi4xMi4zOSAwIC4zOS0uMlY0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmludDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNCAzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMmg1Yy44MyAwIDEuNS42NyAxLjUgMS41VjRoMWEyIDIgMCAwIDEgMiAydjQuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTJ2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgNCAxMi41VjEySDIuNUExLjUgMS41IDAgMCAxIDEgMTAuNVY2YzAtMS4xLjktMiAyLTJoMXYtLjVabTcgMGEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNVY0aDZ2LS41Wm0tNiA3djJjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDMuNUM0IDIuNjcgNC42NyAyIDUuNSAyaDVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNGgxYTIgMiAwIDAgMSAyIDJ2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMnYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA0IDEyLjVWMTJIMi41QTEuNSAxLjUgMCAwIDEgMSAxMC41VjZjMC0xLjEuOS0yIDItMmgxdi0uNVpNNCAxMXYtLjVDNCA5LjY3IDQuNjcgOSA1LjUgOWg1Yy44MyAwIDEuNS42NyAxLjUgMS41di41aDEuNWEuNS41IDAgMCAwIC41LS41VjZhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NC41YzAgLjI4LjIyLjUuNS41SDRabTEtN2g2di0uNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNVY0Wm0wIDYuNXYyYzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByaW50MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgNC41QzUgMy42NyA1LjY3IDMgNi41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNVY1aC41QTIuNSAyLjUgMCAwIDEgMTggNy41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1djEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDE1LjVWMTRIMy41QTEuNSAxLjUgMCAwIDEgMiAxMi41di01QTIuNSAyLjUgMCAwIDEgNC41IDVINXYtLjVabTkgMGEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNVY1aDh2LS41Wm0tOCA3djRjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDQuNUM1IDMuNjcgNS42NyAzIDYuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWNWguNUEyLjUgMi41IDAgMCAxIDE4IDcuNXY1YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNXYxLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgNSAxNS41VjE0SDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSA1SDV2LS41Wk02IDVoOHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtN2EuNS41IDAgMCAwLS41LjVWNVptLTEgOHYtMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTNoMS41YS41LjUgMCAwIDAgLjUtLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMUMzLjY3IDYgMyA2LjY3IDMgNy41djVjMCAuMjguMjIuNS41LjVINVptMS41LTJhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmludDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByaW50MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOCAxNy41djEuMjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTcuNUM3LjAxIDIxIDYgMjAgNiAxOC43NVYxNy41SDQuMjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di02QzIgNy40NSAzLjQ2IDYgNS4yNSA2SDZ2LS43NUM2IDQuMDEgNyAzIDguMjUgM2g3LjVDMTcgMyAxOCA0IDE4IDUuMjVWNmguNzVDMjAuNTUgNiAyMiA3LjQ2IDIyIDkuMjV2NmMwIDEuMjQtMSAyLjI1LTIuMjQgMi4yNUgxOFptLTIuMjUtNGgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2NC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDcuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNC41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0wLTloLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjZoOXYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS43NSAzQzE3IDMgMTggNCAxOCA1LjI1VjZoLjc1QzIwLjU1IDYgMjIgNy40NiAyMiA5LjI1djZjMCAxLjI0LTEgMi4yNS0yLjI0IDIuMjVIMTh2MS4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcuMDEgMjEgNiAyMCA2IDE4Ljc1VjE3LjVINC4yNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTZDMiA3LjQ1IDMuNDYgNiA1LjI1IDZINnYtLjc1QzYgNC4wMSA3IDMgOC4yNSAzaDcuNVptMCAxMC41aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1di00LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabTMtNkg1LjI1Yy0uOTcgMC0xLjc1Ljc5LTEuNzUgMS43NXY2YzAgLjQxLjM0Ljc1Ljc1Ljc1SDZ2LTEuNzVDNiAxMy4wMSA3IDEyIDguMjUgMTJoNy41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1VjE2aDEuNzhjLjQtLjAxLjczLS4zNC43My0uNzV2LTZjMC0uOTYtLjgtMS43NS0xLjc2LTEuNzVabS0zLTNoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjZoOXYtLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmludDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNyA1Ljc3VjdINmE0IDQgMCAwIDAtNCA0djdhMyAzIDAgMCAwIDMgM2gydjFhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTN2LTFoMmEzIDMgMCAwIDAgMy0zdi03YTQgNCAwIDAgMC00LTRoLTFWNS43NUEyLjc1IDIuNzUgMCAwIDAgMTguMjUgM2wtOC41LjAyQTIuNzUgMi43NSAwIDAgMCA3IDUuNzdabTEyLjUtLjAyVjdoLTExVjUuNzdjMC0uNy41Ni0xLjI1IDEuMjUtMS4yNWw4LjUtLjAyYy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1Wk0xMCAxNS41aDhjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSA4LjUgMjJ2LTVjMC0uODMuNjctMS41IDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmludDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmludDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTcgNS43N1Y3SDZhNCA0IDAgMCAwLTQgNHY3YTMgMyAwIDAgMCAzIDNoMnYxYTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zdi0xaDJhMyAzIDAgMCAwIDMtM3YtN2E0IDQgMCAwIDAtNC00aC0xVjUuNzVBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDNsLTguNS4wMkEyLjc1IDIuNzUgMCAwIDAgNyA1Ljc3Wk0yMSAxOS41VjE3YTMgMyAwIDAgMC0zLTNoLThhMyAzIDAgMCAwLTMgM3YyLjVINUExLjUgMS41IDAgMCAxIDMuNSAxOHYtN0EyLjUgMi41IDAgMCAxIDYgOC41aDE2YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMlpNMTkuNSA1Ljc1VjdoLTExVjUuNzdjMC0uNy41Ni0xLjI1IDEuMjUtMS4yNWw4LjUtLjAyYy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1Wk0xMCAxNS41aDhjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSA4LjUgMjJ2LTVjMC0uODMuNjctMS41IDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmludDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByaW50MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk04IDYuNVY4SDdhNSA1IDAgMCAwLTUgNXY3LjVBMy41IDMuNSAwIDAgMCA1LjUgMjRIN3YxLjVhMy41IDMuNSAwIDAgMCAzLjUgMy41aDExYTMuNSAzLjUgMCAwIDAgMy41LTMuNVYyNGgxLjVhMy41IDMuNSAwIDAgMCAzLjUtMy41VjEzYTUgNSAwIDAgMC01LTVoLTFWNi41QTMuNSAzLjUgMCAwIDAgMjAuNSAzaC05QTMuNSAzLjUgMCAwIDAgOCA2LjVaTTExLjUgNWg5Yy44MyAwIDEuNS42NyAxLjUgMS41VjhIMTBWNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41Wk05IDE5LjVjMC0uODMuNjctMS41IDEuNS0xLjVoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2NmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgOSAyNS41di02WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByaW50MzJMaWdodCcsIFwiMzJcIiwgW1wiTTcgOGgxVjYuNUEzLjUgMy41IDAgMCAxIDExLjUgM2g5QTMuNSAzLjUgMCAwIDEgMjQgNi41VjhoMWE1IDUgMCAwIDEgNSA1djcuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVIMjV2MS41YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtMTFBMy41IDMuNSAwIDAgMSA3IDI1LjVWMjRINS41QTMuNSAzLjUgMCAwIDEgMiAyMC41VjEzYTUgNSAwIDAgMSA1LTVabTQuNS00QTIuNSAyLjUgMCAwIDAgOSA2LjVWOGgxNFY2LjVBMi41IDIuNSAwIDAgMCAyMC41IDRoLTlaTTggMjUuNWEyLjUgMi41IDAgMCAwIDIuNSAyLjVoMTFhMi41IDIuNSAwIDAgMCAyLjUtMi41di02YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtMTFBMi41IDIuNSAwIDAgMCA4IDE5LjV2NlpNMjUgMjNoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2E0IDQgMCAwIDAtNC00SDdhNCA0IDAgMCAwLTQgNHY3LjVBMi41IDIuNSAwIDAgMCA1LjUgMjNIN3YtMy41YTMuNSAzLjUgMCAwIDEgMy41LTMuNWgxMWEzLjUgMy41IDAgMCAxIDMuNSAzLjVWMjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmludDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcmludDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTI0IDYuNVY4aDFhNSA1IDAgMCAxIDUgNXY3LjVhMy41IDMuNSAwIDAgMS0zLjUgMy41SDI1djEuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTExQTMuNSAzLjUgMCAwIDEgNyAyNS41VjI0SDUuNUEzLjUgMy41IDAgMCAxIDIgMjAuNVYxM2E1IDUgMCAwIDEgNS01aDFWNi41QTMuNSAzLjUgMCAwIDEgMTEuNSAzaDlBMy41IDMuNSAwIDAgMSAyNCA2LjVabS0xNCAwVjhoMTJWNi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjgzIDAtMS41LjY3LTEuNSAxLjVabS0xIDE5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTExYy0uODMgMC0xLjUuNjctMS41IDEuNXY2Wk0yNSAyMmgxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzYTMgMyAwIDAgMC0zLTNIN2EzIDMgMCAwIDAtMyAzdjcuNWMwIC44My42NyAxLjUgMS41IDEuNUg3di0yLjVhMy41IDMuNSAwIDAgMSAzLjUtMy41aDExYTMuNSAzLjUgMCAwIDEgMy41IDMuNVYyMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByaW50NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTMxLjc1IDhhMy4yNSAzLjI1IDAgMCAxIDMuMjQgMy4wN2wuMDEuMThWMTRoMS43NWMyLjkgMCA1LjI1IDIuMzUgNS4yNSA1LjI1djEzLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUgzNXYxLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTE1LjVBMy4yNSAzLjI1IDAgMCAxIDEzIDM3Ljc1VjM2SDkuMjVBMy4yNSAzLjI1IDAgMCAxIDYgMzIuNzV2LTEzLjVDNiAxNi4zNSA4LjM1IDE0IDExLjI1IDE0SDEzdi0yLjc1YTMuMjUgMy4yNSAwIDAgMSAzLjA3LTMuMjRsLjE4LS4wMWgxNS41Wk0xNS41IDM3Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDE1LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTguNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMTUuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djguNVpNMzEuNzUgMTAuNWgtMTUuNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMVYxNGgxN3YtMi43NWMwLS4zOC0uMjgtLjctLjY1LS43NGwtLjEtLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNi4yNSA4aDE1LjVhMy4yNSAzLjI1IDAgMCAxIDMuMjQgMy4wN2wuMDEuMThWMTRoMS43NWMyLjkgMCA1LjI1IDIuMzUgNS4yNSA1LjI1djEzLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUgzNXYxLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTE1LjVBMy4yNSAzLjI1IDAgMCAxIDEzIDM3Ljc1VjM2SDkuMjVBMy4yNSAzLjI1IDAgMCAxIDYgMzIuNzV2LTEzLjVDNiAxNi4zNSA4LjM1IDE0IDExLjI1IDE0SDEzdi0yLjc1YTMuMjUgMy4yNSAwIDAgMSAzLjA3LTMuMjRsLjE4LS4wMVptMTUuNSAyMC41aC0xNS41YS43NS43NSAwIDAgMC0uNzUuNzV2OC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDE1LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTguNWEuNzUuNzUgMCAwIDAtLjc1LS43NVptNS0xMmgtMjUuNWEyLjc1IDIuNzUgMCAwIDAtMi43NSAyLjc1djEzLjVjMCAuNDEuMzQuNzUuNzUuNzVIMTN2LTQuMjVjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWgxNS41YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2NC4yNWgzLjc1Yy40MSAwIC43NS0uMzQuNzUtLjc1di0xMy41YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVabS01LTZoLTE1LjVjLS4zOCAwLS43LjI4LS43NC42NWwtLjAxLjFWMTRoMTd2LTIuNzVjMC0uMzgtLjI4LS43LS42NS0uNzRsLS4xLS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByaW50QWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnRBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVptLS41IDcuNWMxLjMzIDAgMi41NS0uNDcgMy41LTEuMjZ2My43NmMwIC44My0uNjcgMS41LTEuNSAxLjVIMTV2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDUgMTYuNVYxNUgzLjVBMS41IDEuNSAwIDAgMSAyIDEzLjV2LTVBMi41IDIuNSAwIDAgMSA0LjUgNkg1di0uNUM1IDQuNjcgNS42NyA0IDYuNSA0aDIuN2MtLjA4LjMyLS4xNS42Ni0uMTggMUg2LjVhLjUuNSAwIDAgMC0uNS41VjZoMy4wMmMuMjYgMi44IDIuNjEgNSA1LjQ4IDVaTTYgMTIuNXY0YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByaW50QWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByaW50QWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0yIDEwdi0zLjFjLjM2LS4xOC43LS40IDEtLjY2djMuNzZjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1djEuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA1IDE2LjVWMTVIMy41QTEuNSAxLjUgMCAwIDEgMiAxMy41di01QTIuNSAyLjUgMCAwIDEgNC41IDZINXYtLjVDNSA0LjY3IDUuNjcgNCA2LjUgNGgyLjdjLS4wOC4zMi0uMTUuNjYtLjE4IDFINi41YS41LjUgMCAwIDAtLjUuNVY2aDMuMDJjLjAzLjM0LjEuNjguMTkgMUg0LjVDMy42NyA3IDMgNy42NyAzIDguNXY1YzAgLjI4LjIyLjUuNS41SDV2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNWg3Yy44MyAwIDEuNS42NyAxLjUgMS41VjE0aDEuNWEuNS41IDAgMCAwIC41LS41Wk02LjUgMTJhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcmludEFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1ByaW50QWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMyA2LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFpNMTggN3YyLjVhLjUuNSAwIDEgMS0xIDBWN2gtMi41YS41LjUgMCAwIDEgMC0xSDE3VjMuNWEuNS41IDAgMCAxIDEgMFY2aDIuNWEuNS41IDAgMCAxIDAgMUgxOFptLS41IDZjMS43NSAwIDMuMzQtLjcgNC41LTEuODF2NS4wNmMwIDEuMjQtMSAyLjI1LTIuMjQgMi4yNUgxOHYxLjI1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC03LjVDNy4wMSAyMiA2IDIxIDYgMTkuNzVWMTguNUg0LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNkMyIDguNDUgMy40NiA3IDUuMjUgN0g2di0uNzVDNiA1LjAxIDcgNCA4LjI1IDRoMy4yNWMtLjIuNDctLjM0Ljk4LS40MiAxLjVIOC4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjdoMy41MmE2LjUgNi41IDAgMCAwIDYuNDggNlptLTEgMi4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzV2NC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDcuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJpbnRBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJpbnRBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMyA2LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFpNMTggN3YyLjVhLjUuNSAwIDEgMS0xIDBWN2gtMi41YS41LjUgMCAwIDEgMC0xSDE3VjMuNWEuNS41IDAgMCAxIDEgMFY2aDIuNWEuNS41IDAgMCAxIDAgMUgxOFptMi41IDkuMjV2LTMuOThhNi41MiA2LjUyIDAgMCAwIDEuNS0xLjA4djUuMDZjMCAxLjI0LTEgMi4yNS0yLjI0IDIuMjVIMTh2MS4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNy41QzcuMDEgMjIgNiAyMSA2IDE5Ljc1VjE4LjVINC4yNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTZDMiA4LjQ1IDMuNDYgNyA1LjI1IDdINnYtLjc1QzYgNS4wMSA3IDQgOC4yNSA0aDMuMjVjLS4yLjQ3LS4zNC45OC0uNDIgMS41SDguMjVhLjc1Ljc1IDAgMCAwLS43NS43NVY3aDMuNTJjLjA0LjUyLjE0IDEuMDMuMyAxLjVINS4yNGMtLjk3IDAtMS43NS43OS0xLjc1IDEuNzV2NmMwIC40MS4zNC43NS43NS43NUg2di0xLjc1QzYgMTQuMDEgNyAxMyA4LjI1IDEzaDcuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNVYxN2gxLjc4Yy40LS4wMS43My0uMzQuNzMtLjc1Wm0tNC0xYS43NS43NSAwIDAgMC0uNzUtLjc1aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjVjMCAuNDEuMzQuNzUuNzUuNzVoNy41Yy40MSAwIC43NS0uMzQuNzUtLjc1di00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9kdWN0aW9uMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSAzLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zWm02LjUtLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNabS41IDNWNGgydjJoLTJaTTIgMTJhNCA0IDAgMCAxIDQtNGg4YTQgNCAwIDAgMSAwIDhINmE0IDQgMCAwIDEtNC00Wm01IDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm00IDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvZHVjdGlvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9kdWN0aW9uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSAzLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zWm02LjUtLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNabS41IDNWNGgydjJoLTJabS02IDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm01LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk0yIDEyYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgMCA4SDZhNCA0IDAgMCAxLTQtNFptNC0zYTMgMyAwIDEgMCAwIDZoOGEzIDMgMCAxIDAgMC02SDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9kdWN0aW9uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC41IDUuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMi41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djIuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTIuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0yLjVaTTE1LjI1IDMuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2Mi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDIuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTIuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTIuNVpNMTUgNS4yNWMwLS4xNC4xMS0uMjUuMjUtLjI1aDIuNWMuMTQgMCAuMjUuMTEuMjUuMjV2Mi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTIuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMi41Wk0yIDE2YTQuNSA0LjUgMCAwIDEgNC41LTQuNWgxMWE0LjUgNC41IDAgMSAxIDAgOWgtMTFBNC41IDQuNSAwIDAgMSAyIDE2Wm02LjUgMGExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMFptNSAwYTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwWm0zLjUgMS41YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvZHVjdGlvbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9kdWN0aW9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzLjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0yLjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0yLjVabTcuMjUgMS43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNVpNMTUuMjUgNWEuMjUuMjUgMCAwIDAtLjI1LjI1djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgyLjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTIuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMi41Wk03IDE3LjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTYuNS0xLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTMuNSAxLjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTIgMTZhNC41IDQuNSAwIDAgMSA0LjUtNC41aDExYTQuNSA0LjUgMCAxIDEgMCA5aC0xMUE0LjUgNC41IDAgMCAxIDIgMTZabTQuNS0zYTMgMyAwIDEgMCAwIDZoMTFhMyAzIDAgMSAwIDAtNmgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9kdWN0aW9uQ2hlY2ttYXJrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbkNoZWNrbWFyazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSAzLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zWm02LjUtLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNabS41IDNWNGgydjJoLTJaTTYgOGE0IDQgMCAxIDAgMCA4aDMuMmE1LjUgNS41IDAgMCAxIC4xLTMuMjlBMSAxIDAgMCAxIDEwIDExYTEgMSAwIDAgMSAuMjMuMDMgNS40OSA1LjQ5IDAgMCAxIDcuMS0xLjI1QTQgNCAwIDAgMCAxNCA4SDZabTAgNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTEzIDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuODUtMS44NS0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2R1Y3Rpb25DaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvZHVjdGlvbkNoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgMy41YzAtLjI4LjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM1ptNi41LS41YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zWm0uNSAzVjRoMnYyaC0yWk0yIDEyYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgMy4zMyAxLjc4QTUuNDcgNS40NyAwIDAgMCAxNCA5SDZhMyAzIDAgMSAwIDAgNmgzLjAyYy4wMy4zNC4xLjY4LjE5IDFINmE0IDQgMCAwIDEtNC00Wm04LTFhMSAxIDAgMCAxIC4yMy4wMyA1LjUgNS41IDAgMCAwLS45MyAxLjY4QTEgMSAwIDAgMSAxMCAxMVptLTQgMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEzIDEuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuODUtMS44NS0yLjY1IDIuNjQtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMC0uNy0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2R1Y3Rpb25DaGVja21hcmsyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9kdWN0aW9uQ2hlY2ttYXJrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDMuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2Mi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDIuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTIuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTIuNVptNy4yNSAxLjc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0yLjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0yLjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wk0xNS4yNSA1aDIuNWMuMTQgMCAuMjUuMTEuMjUuMjV2Mi41YzAgLjE0LS4xMS4yNS0uMjUuMjVoLTIuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtMi41YzAtLjE0LjExLS4yNS4yNS0uMjVaTTYuNSAxMS41YTQuNSA0LjUgMCAxIDAgMCA5aDUuMjNhNi40NyA2LjQ3IDAgMCAxLS43Mi0zLjM3IDEuNSAxLjUgMCAwIDEgLjctMi42QTYuNTMgNi41MyAwIDAgMSAxNSAxMS41SDYuNVptLjUgNmExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1ptMTYgMGE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMi4xNS0yLjM1YS41LjUgMCAwIDAtLjcgMGwtMy42NSAzLjY0LTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvZHVjdGlvbkNoZWNrbWFyazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9kdWN0aW9uQ2hlY2ttYXJrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzLjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgyLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0yLjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0yLjVabTcuMjUgMS43NWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgyLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Mi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTIuNVpNMTUuMjUgNWEuMjUuMjUgMCAwIDAtLjI1LjI1djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgyLjVjLjE0IDAgLjI1LS4xMS4yNS0uMjV2LTIuNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMi41Wk03IDE3LjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaTTYuNSAxM2g2LjMxQTYuNTEgNi41MSAwIDAgMSAxNSAxMS41SDYuNWE0LjUgNC41IDAgMSAwIDAgOWg1LjIzYTYuNDYgNi40NiAwIDAgMS0uNTYtMS41SDYuNWEzIDMgMCAxIDEgMC02Wm00IDNjMCAuNDUuMi44NS41MSAxLjEzLjA1LS45NC4zLTEuODIuNy0yLjZBMS41IDEuNSAwIDAgMCAxMC41IDE2Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwbC0zLjY1IDMuNjQtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMTEgNkE1IDUgMCAxIDEgMSA2YTUgNSAwIDAgMSAxMCAwWk05LjUgNmMwLS43LS4yLTEuMzQtLjU1LTEuODlMNC4xIDguOTVBMy41IDMuNSAwIDAgMCA5LjUgNlpNNy44OSAzLjA1QTMuNSAzLjUgMCAwIDAgMy4wNSA3LjlMNy45IDMuMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02IDFhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDYgMVpNMiA2YTQgNCAwIDAgMSA2LjQ1LTMuMTZMMi44NCA4LjQ1QTMuOTggMy45OCAwIDAgMSAyIDZabTEuNTUgMy4xNiA1LjYxLTUuNjFhNCA0IDAgMCAxLTUuNjEgNS42MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMS4zMiAzLjYyYTUuNSA1LjUgMCAwIDAtNy43IDcuN2w3LjctNy43Wm0xLjA2IDEuMDYtNy43IDcuN2E1LjUgNS41IDAgMCAwIDcuNy03LjdaTTMuMDUgMy4wNWE3IDcgMCAxIDEgOS45IDkuOSA3IDcgMCAwIDEtOS45LTkuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTExLjg3IDMuNDJhNiA2IDAgMCAwLTguNDUgOC40NWw4LjQ1LTguNDVabS43MS43LTguNDUgOC40NmE2IDYgMCAwIDAgOC40NS04LjQ1Wk0zLjA1IDMuMDZhNyA3IDAgMSAxIDkuOSA5LjkgNyA3IDAgMCAxLTkuOS05LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTggMTBhOCA4IDAgMSAxLTE2IDAgOCA4IDAgMCAxIDE2IDBabS0xLjUgMGMwLTEuNTItLjUzLTIuOTMtMS40LTQuMDRMNS45NiAxNS4xQTYuNSA2LjUgMCAwIDAgMTYuNSAxMFpNNC45IDE0LjA0bDkuMTQtOS4xNGE2LjUgNi41IDAgMCAwLTkuMTMgOS4xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE4IDEwYTggOCAwIDEgMS0xNiAwIDggOCAwIDAgMSAxNiAwWm0tMSAwYzAtMS43NS0uNjQtMy4zNi0xLjctNC41OGwtOS44OCA5Ljg3QTcgNyAwIDAgMCAxNyAxMFpNNC43IDE0LjU4bDkuODgtOS44N2E3IDcgMCAwIDAtOS44NyA5Ljg3WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjkgNS42OEE4IDggMCAwIDAgNS42OSAxNi45MUwxNi45MSA1LjY4Wm0xLjQyIDEuNDFMNy4wOSAxOC4zMkE4IDggMCAwIDAgMTguMzIgNy4wOVpNNC45MiA0LjkzYTEwIDEwIDAgMSAxIDE0LjE1IDE0LjE0QTEwIDEwIDAgMCAxIDQuOTMgNC45M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm02LjUyIDQuNTRMNi41NCAxOC41MkE4LjUgOC41IDAgMCAwIDE4LjUxIDYuNTVaTTEyIDMuNWE4LjUgOC41IDAgMCAwLTYuNTIgMTMuOTZMMTcuNDYgNS40OEE4LjQ3IDguNDcgMCAwIDAgMTIgMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIwLjMzIDYuMjZBMTAgMTAgMCAwIDAgNi4yNiAyMC4zM0wyMC4zMyA2LjI2Wm0xLjQxIDEuNDFMNy42NyAyMS43NEExMCAxMCAwIDAgMCAyMS43NCA3LjY3Wk01LjUxIDUuNTFBMTIgMTIgMCAxIDEgMjIuNSAyMi41IDEyIDEyIDAgMCAxIDUuNSA1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCAyYTEyIDEyIDAgMSAxIDAgMjQgMTIgMTIgMCAwIDEgMC0yNFptNy45NCA1LjEyTDcuMTIgMjEuOTRBMTAuNSAxMC41IDAgMCAwIDIxLjkzIDcuMTNaTTE0IDMuNWExMC41IDEwLjUgMCAwIDAtNy45NCAxNy4zOEwyMC44OCA2LjA2QTEwLjQ2IDEwLjQ2IDAgMCAwIDE0IDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk03LjAzIDIzLjJBMTEuNSAxMS41IDAgMCAxIDIzLjIgNy4wM0w3LjAzIDIzLjJabTEuNzcgMS43N0wyNC45NyA4LjhBMTEuNSAxMS41IDAgMCAxIDguOCAyNC45N1pNMiAxNmExNCAxNCAwIDEgMCAyOCAwIDE0IDE0IDAgMCAwLTI4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk02Ljg0IDIzLjc1QTEyIDEyIDAgMCAxIDIzLjc1IDYuODRMNi44NCAyMy43NFptMS40MSAxLjQxIDE2LjkxLTE2LjlBMTIgMTIgMCAwIDEgOC4yNSAyNS4xNlpNMiAxNmExNCAxNCAwIDEgMCAyOCAwIDE0IDE0IDAgMCAwLTI4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9oaWJpdGVkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzQuOTEgMTAuOTZhMTcgMTcgMCAwIDAtMjMuOTUgMjMuOTVsMjMuOTUtMjMuOTVabTIuMTMgMi4xM0wxMy4wOSAzNy4wNGExNyAxNyAwIDAgMCAyMy45NS0yMy45NVpNOS44NiA5Ljg2YTIwIDIwIDAgMSAxIDI4LjI4IDI4LjI4QTIwIDIwIDAgMCAxIDkuODYgOS44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM1LjQ2IDEwLjc3YTE3LjUgMTcuNSAwIDAgMC0yNC42OSAyNC42OWwyNC42OS0yNC42OVptMS43NyAxLjc3TDEyLjU0IDM3LjIzYTE3LjUgMTcuNSAwIDAgMCAyNC42OS0yNC42OVpNOS44NiA5Ljg2YTIwIDIwIDAgMSAxIDI4LjI4IDI4LjI4QTIwIDIwIDAgMCAxIDkuODYgOS44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWRNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWRNdWx0aXBsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy44MiAzLjgyYTQuNSA0LjUgMCAwIDEgNS43OS0uNDlMMy4zMyA5LjYxYTQuNSA0LjUgMCAwIDEgLjQ5LTUuOFptLjU3IDYuODUgNi4yOC02LjI4YTQuNSA0LjUgMCAwIDEtNi4yOCA2LjI4Wm02Ljg1LTcuOTFhNiA2IDAgMSAwLTguNDggOC40OCA2IDYgMCAwIDAgOC40OC04LjQ4Wk0xNCA3YTcgNyAwIDAgMS04LjQgNi44NiA2IDYgMCAwIDAgOC4yNi04LjI2Yy4xLjQ2LjE0LjkyLjE0IDEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWRNdWx0aXBsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkTXVsdGlwbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjQ2IDMuNDZhNSA1IDAgMCAxIDYuNy0uMzNsLTcuMDMgNy4wM2E1IDUgMCAwIDEgLjMzLTYuN1ptLjM4IDcuNDEgNy4wMy03LjAzYTUgNSAwIDAgMS03LjAzIDcuMDNabTcuNC04LjExYTYgNiAwIDEgMC04LjQ4IDguNDggNiA2IDAgMCAwIDguNDgtOC40OFpNMTQgN2MwIDEuMjItLjMxIDIuMzYtLjg2IDMuMzZhNS4wMiA1LjAyIDAgMCAxLTIuNzggMi43OCA2Ljk3IDYuOTcgMCAwIDEtNC40NC43OCA2IDYgMCAwIDAgOC04Yy4wNS4zNS4wOC43MS4wOCAxLjA4WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZE11bHRpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZE11bHRpcGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjExIDUuMTFhNS41IDUuNSAwIDAgMSA3LjIxLS41bC03LjcgNy43MWE1LjUgNS41IDAgMCAxIC41LTcuMlptLjU3IDguMjcgNy43LTcuN2E1LjUgNS41IDAgMCAxLTcuNyA3LjdabTguMjctOS4zM2E3IDcgMCAxIDAtOS45IDkuOSA3IDcgMCAwIDAgOS45LTkuOVpNMTcgOWE4IDggMCAwIDEtOS43NyA3LjggNyA3IDAgMCAwIDkuNTctOS41N2MuMTMuNTcuMiAxLjE2LjIgMS43N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWRNdWx0aXBsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkTXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00Ljc2IDQuNzZhNiA2IDAgMCAxIDguMTEtLjM0bC04LjQ1IDguNDVhNiA2IDAgMCAxIC4zNC04LjExWm0uMzcgOC44MiA4LjQ1LTguNDVhNiA2IDAgMCAxLTguNDUgOC40NVptOC44Mi05LjUzYTcgNyAwIDEgMC05LjkgOS45IDcgNyAwIDAgMCA5LjktOS45Wk0xNyA5YzAgMS4zNy0uMzQgMi42Ni0uOTUgMy43OWE2LjAyIDYuMDIgMCAwIDEtMy4yNiAzLjI2IDcuOTcgNy45NyAwIDAgMS01LjE3LjgzIDcgNyAwIDAgMCA5LjI2LTkuMjZjLjA4LjQ1LjEyLjkuMTIgMS4zOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWRNdWx0aXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWRNdWx0aXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4wNSA2LjA1YTcgNyAwIDAgMSA5LjE0LS42NmwtOS44IDkuOGE3IDcgMCAwIDEgLjY2LTkuMTRabS43NiAxMC41NiA5LjgtOS44YTcgNyAwIDAgMS05LjggOS44Wk0xNy4zNiA0LjY0QTkgOSAwIDEgMCA0LjY0IDE3LjM2IDkgOSAwIDAgMCAxNy4zNiA0LjY0Wk0yMSAxMWExMCAxMCAwIDAgMS0xMi44MyA5LjZBOSA5IDAgMCAwIDIwLjYgOC4xNmMuMjYuOS40IDEuODUuNCAyLjgzWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZE11bHRpcGxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2hpYml0ZWRNdWx0aXBsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNyA1LjdhNy41IDcuNSAwIDAgMSAxMC4wNS0uNUw1LjE5IDE1Ljc0QTcuNSA3LjUgMCAwIDEgNS43IDUuN1ptLjU1IDExLjFMMTYuODEgNi4yNkE3LjUgNy41IDAgMCAxIDYuMjUgMTYuODFaTTE3LjM2IDQuNjVBOSA5IDAgMSAwIDQuNjQgMTcuMzYgOSA5IDAgMCAwIDE3LjM2IDQuNjRaTTIxIDExYTEwIDEwIDAgMCAxLTEyLjUgOS42OEE5IDkgMCAwIDAgMjAuNjkgOC41Yy4yLjguMzEgMS42NS4zMSAyLjUxWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZE11bHRpcGxlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZE11bHRpcGxlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk02LjY0IDYuNjRhOSA5IDAgMCAxIDExLjk4LS42N0w1Ljk3IDE4LjYyYTkgOSAwIDAgMSAuNjctMTEuOThabS43NCAxMy40TDIwLjAzIDcuMzdBOSA5IDAgMCAxIDcuMzggMjAuMDNabTEzLjQtMTQuODJBMTEgMTEgMCAxIDAgNS4yMiAyMC43OCAxMSAxMSAwIDAgMCAyMC43OCA1LjIyWk0yNSAxM0ExMiAxMiAwIDAgMSA5LjMzIDI0LjQzYTExIDExIDAgMCAwIDE1LjEtMTUuMUExMiAxMiAwIDAgMSAyNSAxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWRNdWx0aXBsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9oaWJpdGVkTXVsdGlwbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02LjI4IDYuMjhhOS41IDkuNSAwIDAgMSAxMi44OS0uNUw1Ljc3IDE5LjE2YTkuNSA5LjUgMCAwIDEgLjUxLTEyLjg5Wm0uNTUgMTMuOTUgMTMuNC0xMy40YTkuNSA5LjUgMCAwIDEtMTMuNCAxMy40Wm0xMy45NS0xNUExMSAxMSAwIDEgMCA1LjIyIDIwLjc3IDExIDExIDAgMCAwIDIwLjc4IDUuMjJaTTI1IDEzQTEyIDEyIDAgMCAxIDkuNzcgMjQuNTZhMTEgMTEgMCAwIDAgMTQuOC0xNC44Yy4yOCAxLjA0LjQzIDIuMTIuNDMgMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2hpYml0ZWROb3RlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZE5vdGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwLjE3QTguMDIgOC4wMiAwIDAgMCAxMCAyYTggOCAwIDAgMC0uODQgMTUuOTZBMyAzIDAgMCAxIDkgMTd2LS41OGE2LjQ3IDYuNDcgMCAwIDEtMy4wNC0xLjMybDEuNTctMS41NyA3LjU3LTcuNTdBNi40NyA2LjQ3IDAgMCAxIDE2LjUgMTBoLjVhMyAzIDAgMCAxIDEgLjE3Wk0xNC4wNCA0LjkgNC45IDE0LjA0YTYuNSA2LjUgMCAwIDEgOS4xMy05LjEzWk0xMCAxM2MwLTEuMS45LTIgMi0yaDVhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtNFptNi41IDNoLTRhLjUuNSAwIDEgMCAwIDFoNGEuNS41IDAgMSAwIDAtMVptLTQtM2EuNS41IDAgMSAwIDAgMWg0YS41LjUgMCAxIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvaGliaXRlZE5vdGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvaGliaXRlZE5vdGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOCAxMHYuMTdhMyAzIDAgMCAwLTEtLjE3YzAtMS43NS0uNjQtMy4zNi0xLjctNC41OGwtOS44OCA5Ljg3QTYuOTcgNi45NyAwIDAgMCA5IDE2LjkzVjE3YTMgMyAwIDAgMCAuMTYuOTZBOCA4IDAgMSAxIDE4IDEwWk00LjcgMTQuNThsOS44OC05Ljg3YTcgNyAwIDAgMC05Ljg3IDkuODdaTTEyIDExYTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDVhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC01Wm0uNSA1aDRhLjUuNSAwIDEgMSAwIDFoLTRhLjUuNSAwIDEgMSAwLTFabS0uNS0yLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAyYTEgMSAwIDAgMCAwIDJ2NC41QTIuNSAyLjUgMCAwIDAgNS41IDExaDJ2MmgtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC0ydi0yaDJBMi41IDIuNSAwIDAgMCAxMyA4LjVWNGExIDEgMCAxIDAgMC0ySDNaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW4xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDJhMSAxIDAgMCAwIDAgMnY0LjVBMi41IDIuNSAwIDAgMCA1LjUgMTFoMnYyaC0yYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTJ2LTJoMkEyLjUgMi41IDAgMCAwIDEzIDguNVY0YTEgMSAwIDEgMCAwLTJIM1ptMSAyaDh2NC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDQgOC41VjRaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyAzYTEgMSAwIDAgMCAwIDJ2NmEzIDMgMCAwIDAgMyAzaDMuNXYyaC0yYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTJ2LTJIMTRhMyAzIDAgMCAwIDMtM1Y1YTEgMSAwIDEgMCAwLTJIM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2plY3Rpb25TY3JlZW4yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgM2ExIDEgMCAwIDAgMCAydjZhMyAzIDAgMCAwIDMgM2gzLjV2MmgtMmEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC0ydi0ySDE0YTMgMyAwIDAgMCAzLTNWNWExIDEgMCAxIDAgMC0ySDNabTEgMmgxMnY2YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMy41IDNBMS41IDEuNSAwIDAgMCAzIDUuOTF2Ny4zNEEzLjc1IDMuNzUgMCAwIDAgNi43NSAxN2g0LjV2Mi41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVYxN2g0LjVBMy43NSAzLjc1IDAgMCAwIDIxIDEzLjI1VjUuOTFBMS41IDEuNSAwIDAgMCAyMC41IDNoLTE3WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy41IDNBMS41IDEuNSAwIDAgMCAzIDUuOTF2Ny4zNEEzLjc1IDMuNzUgMCAwIDAgNi43NSAxN2g0LjV2Mi41aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVYxN2g0LjVBMy43NSAzLjc1IDAgMCAwIDIxIDEzLjI1VjUuOTFBMS41IDEuNSAwIDAgMCAyMC41IDNoLTE3Wm0xIDNoMTV2Ny4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVY2WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW4yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTQgM2EyIDIgMCAwIDAtMSAzLjczdjkuNTJjMCAyLjM1IDEuOSA0LjI1IDQuMjUgNC4yNWg2djNoLTQuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTAuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNXYtM2g2YzIuMzUgMCA0LjI1LTEuOSA0LjI1LTQuMjVWNi43M0EyIDIgMCAwIDAgMjQgM0g0WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNCAzYTIgMiAwIDAgMC0xIDMuNzN2OS41MmMwIDIuMzUgMS45IDQuMjUgNC4yNSA0LjI1aDZ2M2gtNC41YS43NS43NSAwIDAgMCAwIDEuNWgxMC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41di0zaDZjMi4zNSAwIDQuMjUtMS45IDQuMjUtNC4yNVY2LjczQTIgMiAwIDAgMCAyNCAzSDRabS41IDRoMTl2OS4yNUEyLjc1IDIuNzUgMCAwIDEgMjAuNzUgMTlINy4yNWEyLjc1IDIuNzUgMCAwIDEtMi43NS0yLjc1VjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuRGlzbWlzczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW5EaXNtaXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMC41IDQuNzkgOS4zNSAzLjY1YS41LjUgMCAxIDAtLjcuN0w5Ljc5IDUuNSA4LjY1IDYuNjVhLjUuNSAwIDEgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxMS4yMSA1LjVsMS4xNC0xLjE1Wk0xMC41IDExYy4zNyAwIC43My0uMDQgMS4wNy0uMUEyLjUgMi41IDAgMCAxIDkuNSAxMmgtMnYyaDJhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoMnYtMmgtMkEyLjUgMi41IDAgMCAxIDIgOS41VjVhMSAxIDAgMCAxIDAtMmgzLjZhNS41IDUuNSAwIDAgMCA0LjkgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb2plY3Rpb25TY3JlZW5EaXNtaXNzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW5EaXNtaXNzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTUgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTAuNSA0Ljc5IDkuMzUgMy42NWEuNS41IDAgMSAwLS43LjdMOS43OSA1LjUgOC42NSA2LjY1YS41LjUgMCAxIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdMMTEuMjEgNS41bDEuMTQtMS4xNVpNMTAuNSAxMWMuMzcgMCAuNzMtLjA0IDEuMDctLjFBMi41IDIuNSAwIDAgMSA5LjUgMTJoLTJ2MmgyYS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDJ2LTJoLTJBMi41IDIuNSAwIDAgMSAyIDkuNVY1YTEgMSAwIDAgMSAwLTJoMy42YTUuNDYgNS40NiAwIDAgMC0uNTggMkgzdjQuNWMwIC44My42NyAxLjUgMS41IDEuNWg1Yy4xMiAwIC4yMy0uMDEuMzQtLjA0LjIyLjAzLjQ0LjA0LjY2LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkRpc21pc3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuRGlzbWlzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTQuNSA0Ljc5bC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN0wxNS4yMSA1LjVsMS4xNC0xLjE1Wk0xNC41IDExYy45IDAgMS43NS0uMjIgMi41LS42di42YTMgMyAwIDAgMS0zIDNoLTMuNXYyaDJhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoMnYtMkg2YTMgMyAwIDAgMS0zLTNWNWExIDEgMCAwIDEgMC0yaDYuNmE1LjUgNS41IDAgMCAwIDQuOSA4WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkRpc21pc3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbkRpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xOSA1LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxNC41IDQuNzlsLTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDE1LjIxIDUuNWwxLjE0LTEuMTVaTTE2IDExdi0uMmMuMzUtLjEuNjgtLjI0IDEtLjR2LjZhMyAzIDAgMCAxLTMgM2gtMy41djJoMmEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMWgydi0ySDZhMyAzIDAgMCAxLTMtM1Y1YTEgMSAwIDAgMSAwLTJoNi42YTUuNDcgNS40NyAwIDAgMC0uNTggMkg0djZjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuRGlzbWlzczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW5EaXNtaXNzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMyA2LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcuMTUtMi4zNWEuNS41IDAgMCAwLS43LjdsMS42NCAxLjY1LTEuNjQgMS42NWEuNS41IDAgMCAwIC43LjdsMS42NS0xLjY0IDEuNjUgMS42NGEuNS41IDAgMCAwIC43LS43TDE4LjIxIDYuNWwxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN0wxNy41IDUuNzlsLTEuNjUtMS42NFpNMTcuNSAxM2MxLjI5IDAgMi40OS0uMzggMy41LTEuMDJ2MS4yN0EzLjc1IDMuNzUgMCAwIDEgMTcuMjUgMTdoLTQuNXYyLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMSAwLTEuNWgzLjVWMTdoLTQuNUEzLjc1IDMuNzUgMCAwIDEgMyAxMy4yNVY1LjkxQTEuNSAxLjUgMCAwIDEgMy41IDNoOC41MmE2LjUgNi41IDAgMCAwIDUuNDggMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuRGlzbWlzczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuRGlzbWlzczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIzIDYuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNS0yLjM1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdMMTguMjEgNi41bDEuNjQtMS42NWEuNS41IDAgMCAwLS43LS43TDE3LjUgNS43OWwtMS42NS0xLjY0Wm0zLjY1IDkuMXYtLjU2YTYuNDcgNi40NyAwIDAgMCAxLjUtLjcxdjEuMjdBMy43NSAzLjc1IDAgMCAxIDE3LjI1IDE3aC00LjV2Mi41aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVoMy41VjE3aC00LjVBMy43NSAzLjc1IDAgMCAxIDMgMTMuMjVWNS45MUExLjUgMS41IDAgMCAxIDMuNSAzaDguNTJjLS41Ni44OC0uOTIgMS45LTEgM0g0LjV2Ny4yNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxMC41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkRpc21pc3MyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuRGlzbWlzczI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjcgNy41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS05LjE1LTMuMzVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NS0yLjY0IDIuNjVhLjUuNSAwIDAgMCAuNy43bDIuNjUtMi42NCAyLjY1IDIuNjRhLjUuNSAwIDAgMCAuNy0uN0wyMS4yMSA3LjVsMi42NC0yLjY1YS41LjUgMCAwIDAtLjctLjdMMjAuNSA2Ljc5bC0yLjY1LTIuNjRaTTIwLjUgMTVjMS42OSAwIDMuMjUtLjU2IDQuNS0xLjV2Mi43NWMwIDIuMzUtMS45IDQuMjUtNC4yNSA0LjI1aC02djNoNC41YS43NS43NSAwIDAgMSAwIDEuNUg4Ljc1YS43NS43NSAwIDAgMSAwLTEuNWg0LjV2LTNoLTZBNC4yNSA0LjI1IDAgMCAxIDMgMTYuMjVWNi43M0EyIDIgMCAwIDEgNCAzaDEwLjVhNy41IDcuNSAwIDAgMCA2IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlbkRpc21pc3MyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlbkRpc21pc3MyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yNyA3LjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTkuMTUtMy4zNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1LTIuNjQgMi42NWEuNS41IDAgMCAwIC43LjdsMi42NS0yLjY0IDIuNjUgMi42NGEuNS41IDAgMCAwIC43LS43TDIxLjIxIDcuNWwyLjY0LTIuNjVhLjUuNSAwIDAgMC0uNy0uN0wyMC41IDYuNzlsLTIuNjUtMi42NFptNS42NSAxMi4xdi0xLjg3YTcuNDkgNy40OSAwIDAgMCAxLjUtLjg4djIuNzVjMCAyLjM1LTEuOSA0LjI1LTQuMjUgNC4yNWgtNnYzaDQuNWEuNzUuNzUgMCAwIDEgMCAxLjVIOC43NWEuNzUuNzUgMCAwIDEgMC0xLjVoNC41di0zaC02QTQuMjUgNC4yNSAwIDAgMSAzIDE2LjI1VjYuNzNBMiAyIDAgMCAxIDQgM2gxMC41YTcuNDYgNy40NiAwIDAgMC0xLjQ4IDRINC41djkuMjVBMi43NSAyLjc1IDAgMCAwIDcuMjUgMTloMTMuNWEyLjc1IDIuNzUgMCAwIDAgMi43NS0yLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlblRleHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuVGV4dDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMSAzLjVDMSAyLjY3IDEuNjcgMiAyLjUgMmgxNWExLjUgMS41IDAgMCAxIC41IDIuOTFWMTJhMyAzIDAgMCAxLTMgM2gtNC41djJoM2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMWgzdi0ySDVhMyAzIDAgMCAxLTMtM1Y0LjkxYy0uNTgtLjItMS0uNzYtMS0xLjQxWk03LjUgN2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wk02IDkuNWMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAtLjUuNVpNNy41IDExYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuVGV4dDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9qZWN0aW9uU2NyZWVuVGV4dDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuNSA3YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTYgOS41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wk03LjUgMTFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptLTUtOUExLjUgMS41IDAgMCAwIDIgNC45MVYxMmEzIDMgMCAwIDAgMyAzaDQuNXYyaC0zYS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTN2LTJIMTVhMyAzIDAgMCAwIDMtM1Y0LjkxQTEuNSAxLjUgMCAwIDAgMTcuNSAyaC0xNVpNMyAxMlY1aDE0djdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9qZWN0aW9uU2NyZWVuVGV4dDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb2plY3Rpb25TY3JlZW5UZXh0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDE3YTEuNSAxLjUgMCAwIDEgLjUgMi45MXY3LjM0QTMuNzUgMy43NSAwIDAgMSAxNy4yNSAxN2gtNC41djIuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNVYxN2gtNC41QTMuNzUgMy43NSAwIDAgMSAzIDEzLjI1VjUuOTFjLS41OC0uMi0xLS43Ni0xLTEuNDFabTcgMy4yNWMwIC40MS4zNC43NS43NS43NWg0YS43NS43NSAwIDAgMCAwLTEuNWgtNGEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk05Ljc1IDEzYS43NS43NSAwIDAgMCAwIDEuNWg0YS43NS43NSAwIDAgMCAwLTEuNWgtNFptLTEtM2EuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvamVjdGlvblNjcmVlblRleHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvamVjdGlvblNjcmVlblRleHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05IDcuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg0YS43NS43NSAwIDAgMSAwIDEuNWgtNEEuNzUuNzUgMCAwIDEgOSA3Ljc1Wk05Ljc1IDEzYS43NS43NSAwIDAgMCAwIDEuNWg0YS43NS43NSAwIDAgMCAwLTEuNWgtNFptLTEtM2EuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41Wk0yIDQuNUMyIDMuNjcgMi42NyAzIDMuNSAzaDE3YTEuNSAxLjUgMCAwIDEgLjUgMi45MXY3LjM0QTMuNzUgMy43NSAwIDAgMSAxNy4yNSAxN2gtNC41djIuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNVYxN2gtNC41QTMuNzUgMy43NSAwIDAgMSAzIDEzLjI1VjUuOTFjLS41OC0uMi0xLS43Ni0xLTEuNDFaTTE5LjUgNmgtMTV2Ny4yNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxMC41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjZaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9tcHQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9tcHQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE0IDEuNWEuNS41IDAgMCAwLTEgMFYyaC0uNWEuNS41IDAgMCAwIDAgMWguNXYuNWEuNS41IDAgMCAwIDEgMFYzaC41YS41LjUgMCAwIDAgMC0xSDE0di0uNVptLTkuNTkuNDNjLjEtLjQ4LjUxLS45MyAxLjEtLjkzLjU3IDAgLjk4LjQ1IDEuMDguOTMuMDkuNDIuMzEgMS4wNi44NiAxLjYyLjU2LjU1IDEuMi43NyAxLjYyLjg2LjQ4LjEuOTMuNTEuOTMgMS4wOSAwIC41OC0uNDUgMS0uOTMgMS4wOS0uNDIuMDktMS4wNi4zMS0xLjYyLjg2LS41NS41Ni0uNzcgMS4yLS44NiAxLjYyLS4xLjQ4LS41MS45My0xLjA5LjkzLS41OCAwLS45OS0uNDUtMS4wOS0uOTNhMy4yMiAzLjIyIDAgMCAwLS44Ni0xLjYyIDMuMjEgMy4yMSAwIDAgMC0xLjYyLS44NkMxLjQ1IDYuNDkgMSA2LjA4IDEgNS41YzAtLjU4LjQ1LTEgLjkzLTEuMDlhMy4yMiAzLjIyIDAgMCAwIDEuNjItLjg2Yy41NS0uNTYuNzctMS4yLjg2LTEuNjJaTTExIDUuNWMwLS4xOC0uMDItLjM0LS4wNi0uNWguNTZBMi41IDIuNSAwIDAgMSAxNCA3LjV2NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTRBMi41IDIuNSAwIDAgMSA1IDExLjV2LS41NmEyLjA5IDIuMDkgMCAwIDAgMSAwdi41NmMwIC44My42NyAxLjUgMS41IDEuNWg0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNGMwLS44My0uNjctMS41LTEuNS0xLjVoLS41NmMuMDQtLjE2LjA2LS4zMi4wNi0uNVptLTMgM2MwLS4yOC4yMi0uNS41LS41SDExYS41LjUgMCAwIDEgMCAxSDguNWEuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFIMTBhLjUuNSAwIDAgMCAwLTFIOC41Wm0tNiAyYy4yOCAwIC41LjIyLjUuNXYuNWguNWEuNS41IDAgMCAxIDAgMUgzdi41YS41LjUgMCAwIDEtMSAwVjE0aC0uNWEuNS41IDAgMCAxIDAtMUgydi0uNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvbXB0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0IDEuNWEuNS41IDAgMCAwLTEgMFYyaC0uNWEuNS41IDAgMCAwIDAgMWguNXYuNWEuNS41IDAgMCAwIDEgMFYzaC41YS41LjUgMCAwIDAgMC0xSDE0di0uNVptLTguNi42M2EuMi4yIDAgMCAxIC4wNS0uMUM1LjQ4IDIgNS40OSAyIDUuNSAyYzAgMCAuMDMgMCAuMDUuMDNhLjIuMiAwIDAgMSAuMDYuMSA0LjIxIDQuMjEgMCAwIDAgMy4yNiAzLjI2LjIuMiAwIDAgMSAuMS4wNmMuMDMuMDIuMDMuMDQuMDMuMDUgMCAwIDAgLjAzLS4wMy4wNWEuMi4yIDAgMCAxLS4xLjA2IDQuMjIgNC4yMiAwIDAgMC0zLjI2IDMuMjYuMi4yIDAgMCAxLS4wNi4xQzUuNTMgOSA1LjUxIDkgNS41IDljMCAwLS4wMyAwLS4wNS0uMDNhLjIuMiAwIDAgMS0uMDYtLjEgNC4yMSA0LjIxIDAgMCAwLTMuMjYtMy4yNi4yLjIgMCAwIDEtLjEtLjA2QzIgNS41MyAyIDUuNTEgMiA1LjVjMCAwIDAtLjAzLjAzLS4wNWEuMi4yIDAgMCAxIC4xLS4wNkE0LjIyIDQuMjIgMCAwIDAgNS40IDIuMTNaTTUuNSAxYy0uNTggMC0uOTkuNDUtMS4wOS45M2EzLjIyIDMuMjIgMCAwIDEtLjg2IDEuNjJjLS41Ni41NS0xLjIuNzctMS42Mi44Ni0uNDguMS0uOTMuNTEtLjkzIDEuMSAwIC41Ny40NS45OC45MyAxLjA4LjQyLjA5IDEuMDYuMyAxLjYyLjg2LjU1LjU2Ljc3IDEuMi44NiAxLjYyLjEuNDguNTEuOTMgMS4xLjkzLjU3IDAgLjk4LS40NSAxLjA4LS45My4wOS0uNDIuMzEtMS4wNi44Ni0xLjYyLjU2LS41NSAxLjItLjc3IDEuNjItLjg2LjQ4LS4xLjkzLS41MS45My0xLjA5IDAtLjU4LS40NS0xLS45My0xLjA5YTMuMjEgMy4yMSAwIDAgMS0xLjYyLS44NiAzLjIyIDMuMjIgMCAwIDEtLjg2LTEuNjJDNi40OSAxLjQ1IDYuMDggMSA1LjUgMVptNS40NCA0YTIuMDkgMi4wOSAwIDAgMSAwIDFoLjU2Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00QTEuNSAxLjUgMCAwIDEgNiAxMS41di0uNTZhMi4wOSAyLjA5IDAgMCAxLTEgMHYuNTZBMi41IDIuNSAwIDAgMCA3LjUgMTRoNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTRBMi41IDIuNSAwIDAgMCAxMS41IDVoLS41NlpNOCA4LjVjMC0uMjguMjItLjUuNS0uNUgxMWEuNS41IDAgMCAxIDAgMUg4LjVhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxSDEwYS41LjUgMCAwIDAgMC0xSDguNVptLTYgMmMuMjggMCAuNS4yMi41LjV2LjVoLjVhLjUuNSAwIDAgMSAwIDFIM3YuNWEuNS41IDAgMCAxLTEgMFYxNGgtLjVhLjUuNSAwIDAgMSAwLTFIMnYtLjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYuNSAyYy4yOCAwIC41LjIyLjUuNVYzaC41YS41LjUgMCAwIDEgMCAxSDE3di41YS41LjUgMCAwIDEtMSAwVjRoLS41YS41LjUgMCAwIDEgMC0xaC41di0uNWMwLS4yOC4yMi0uNS41LS41Wm0tMTMgMTNjLjI4IDAgLjUuMjIuNS41di41aC41YS41LjUgMCAwIDEgMCAxSDR2LjVhLjUuNSAwIDAgMS0xIDBWMTdoLS41YS41LjUgMCAwIDEgMC0xSDN2LS41YzAtLjI4LjIyLS41LjUtLjVabTQtMTNjLS42NSAwLTEuMTIuNTEtMS4yNCAxLjA2LS4xMS41NS0uNCAxLjM3LTEuMTEgMi4wOS0uNzIuNzEtMS41NCAxLTIuMDkgMS4xMUMyLjUxIDYuMzcgMiA2Ljg2IDIgNy41YzAgLjY1LjUyIDEuMTMgMS4wNiAxLjI0LjU1LjExIDEuMzcuNCAyLjA5IDEuMTEuNzEuNzIgMSAxLjU0IDEuMTEgMi4xLjEyLjU0LjU5IDEuMDUgMS4yNCAxLjA1czEuMTMtLjUxIDEuMjQtMS4wNmMuMTEtLjU1LjQtMS4zNyAxLjExLTIuMDkuNzItLjcxIDEuNTQtMSAyLjEtMS4xMS41NC0uMTEgMS4wNS0uNTkgMS4wNS0xLjI0cy0uNTEtMS4xMy0xLjA2LTEuMjRhNC4xNCA0LjE0IDAgMCAxLTIuMDktMS4xMWMtLjcxLS43Mi0xLTEuNTQtMS4xMS0yLjFDOC42MyAyLjUyIDguMTUgMiA3LjUgMlpNNyAxNXYtMS4wNmEyLjEzIDIuMTMgMCAwIDAgMSAwVjE1YzAgMS4xLjkgMiAyIDJoNWEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC0yLTJoLTEuMDZhMi4xMyAyLjEzIDAgMCAwIDAtMUgxNWEzIDMgMCAwIDEgMyAzdjVhMyAzIDAgMCAxLTMgM2gtNWEzIDMgMCAwIDEtMy0zWm0zLTEuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNVptLjUtMi41YS41LjUgMCAwIDAgMCAxSDE1YS41LjUgMCAwIDAgMC0xaC00LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9tcHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvbXB0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgMi41YS41LjUgMCAwIDAtMSAwVjNoLS41YS41LjUgMCAwIDAgMCAxaC41di41YS41LjUgMCAwIDAgMSAwVjRoLjVhLjUuNSAwIDAgMCAwLTFIMTd2LS41Wm0tMTMgMTNhLjUuNSAwIDAgMC0xIDB2LjVoLS41YS41LjUgMCAwIDAgMCAxSDN2LjVhLjUuNSAwIDAgMCAxIDBWMTdoLjVhLjUuNSAwIDAgMCAwLTFINHYtLjVabTMtMS41NlYxNWEzIDMgMCAwIDAgMyAzaDVhMyAzIDAgMCAwIDMtM3YtNWEzIDMgMCAwIDAtMy0zaC0xLjA2YTIuMTMgMi4xMyAwIDAgMSAwIDFIMTVhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMS4wNmEyLjEzIDIuMTMgMCAwIDEtMSAwWm0zLjUtLjk0YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabS0uNS0xLjVjMC0uMjguMjItLjUuNS0uNUgxNWEuNS41IDAgMCAxIDAgMWgtNC41YS41LjUgMCAwIDEtLjUtLjVaTTcuMjQgMy4yNmMuMDQtLjE3LjE4LS4yNi4yNi0uMjYuMDkgMCAuMjIuMDkuMjYuMjZhNS4xNCA1LjE0IDAgMCAwIDMuOTggMy45OGMuMTcuMDQuMjYuMTcuMjYuMjZzLS4wOS4yMi0uMjYuMjZjLS42Ny4xNC0xLjcuNS0yLjYgMS4zOS0uODkuOS0xLjI0IDEuOTItMS4zOCAyLjU5LS4wNC4xNy0uMTcuMjYtLjI2LjI2cy0uMjItLjA5LS4yNi0uMjZhNS4xNCA1LjE0IDAgMCAwLTMuOTgtMy45OEMzLjEgNy43MiAzIDcuNTkgMyA3LjVzLjA5LS4yMi4yNi0uMjZhNS4xNSA1LjE1IDAgMCAwIDMuOTgtMy45OFpNNy41IDJjLS42NSAwLTEuMTIuNTEtMS4yNCAxLjA2LS4xMS41NS0uNCAxLjM3LTEuMTEgMi4wOS0uNzIuNzEtMS41NCAxLTIuMDkgMS4xMUMyLjUxIDYuMzcgMiA2Ljg2IDIgNy41YzAgLjY1LjUyIDEuMTMgMS4wNiAxLjI0LjU1LjExIDEuMzcuNCAyLjA5IDEuMTEuNzEuNzIgMSAxLjU0IDEuMTEgMi4xLjEyLjU0LjU5IDEuMDUgMS4yNCAxLjA1czEuMTMtLjUxIDEuMjQtMS4wNmMuMTEtLjU1LjQtMS4zNyAxLjExLTIuMDkuNzItLjcxIDEuNTQtMSAyLjEtMS4xMS41NC0uMTEgMS4wNS0uNTkgMS4wNS0xLjI0cy0uNTEtMS4xMy0xLjA2LTEuMjRhNC4xNCA0LjE0IDAgMCAxLTIuMDktMS4xMWMtLjcxLS43Mi0xLTEuNTQtMS4xMS0yLjFDOC42MyAyLjUyIDguMTUgMiA3LjUgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTkuNzUgNi41YS43NS43NSAwIDAgMS0uNzUtLjc1VjVoLS43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTl2LS43NWEuNzUuNzUgMCAwIDEgMS41IDB2Ljc1aC43NWEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NXYuNzVjMCAuNDEtLjM0Ljc1LS43NS43NVpNNy4zMyAzLjQyQzcuNDggMi43IDguMTIgMiA5IDJjLjg4IDAgMS41Mi43IDEuNjcgMS40Mi4xNC42Ny40OSAxLjY4IDEuMzYgMi41NWE1LjA1IDUuMDUgMCAwIDAgMi41NSAxLjM2QzE1LjMgNy40OCAxNiA4LjEyIDE2IDljMCAuODgtLjcgMS41Mi0xLjQyIDEuNjctLjY3LjE0LTEuNjguNDktMi41NSAxLjM2YTUuMDYgNS4wNiAwIDAgMC0xLjM2IDIuNTVDMTAuNTIgMTUuMyA5Ljg4IDE2IDkgMTZjLS44OCAwLTEuNTItLjctMS42Ny0xLjQyYTUuMDYgNS4wNiAwIDAgMC0xLjM2LTIuNTUgNS4wNSA1LjA1IDAgMCAwLTIuNTUtMS4zNkExLjc1IDEuNzUgMCAwIDEgMiA5YzAtLjg4LjctMS41MiAxLjQyLTEuNjdhNS4wNiA1LjA2IDAgMCAwIDIuNTUtMS4zNiA1LjA2IDUuMDYgMCAwIDAgMS4zNi0yLjU1Wk05LjUgMTguNzV2LTEuOEEyLjY4IDIuNjggMCAwIDEgOCAxNi44djEuOTVDOCAyMC41NSA5LjQ2IDIyIDExLjI1IDIyaDcuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di03LjVDMjIgOS40NSAyMC41NCA4IDE4Ljc1IDhIMTYuOGEyLjYgMi42IDAgMCAxIC4xNSAxLjVoMS44Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djcuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTcuNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1Wm0yLjUtNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLjc1IDIuMjVhLjc1Ljc1IDAgMCAwIDAgMS41aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNVptLTEwIDNhLjc1Ljc1IDAgMCAwIDAgMS41aC43NXYuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNzVoLjc1YS43NS43NSAwIDAgMCAwLTEuNUg1di0uNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjE5aC0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm9tcHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvbXB0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTkuNzUgNi41YS43NS43NSAwIDAgMS0uNzUtLjc1VjVoLS43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTl2LS43NWEuNzUuNzUgMCAwIDEgMS41IDB2Ljc1aC43NWEuNzUuNzUgMCAwIDEgMCAxLjVoLS43NXYuNzVjMCAuNDEtLjM0Ljc1LS43NS43NVpNOC44IDMuNzNhLjM0LjM0IDAgMCAxIC4xLS4xOGMuMDUtLjA0LjA4LS4wNS4xLS4wNS4wMiAwIC4wNiAwIC4xLjA1LjA1LjA0LjA5LjEuMS4xOC4xOC44NS42MyAyLjE2IDEuNzcgMy4zYTYuNTUgNi41NSAwIDAgMCAzLjMgMS43N2MuMDcuMDEuMTQuMDUuMTguMS4wNC4wNC4wNS4wOC4wNS4xIDAgLjAyIDAgLjA2LS4wNS4xYS4zNC4zNCAwIDAgMS0uMTguMWMtLjg1LjE4LTIuMTYuNjMtMy4zIDEuNzdhNi41NiA2LjU2IDAgMCAwLTEuNzcgMy4zLjM0LjM0IDAgMCAxLS4xLjE4Yy0uMDQuMDQtLjA4LjA1LS4xLjA1LS4wMiAwLS4wNiAwLS4xLS4wNWEuMzQuMzQgMCAwIDEtLjEtLjE4IDYuNTYgNi41NiAwIDAgMC0xLjc3LTMuMyA2LjU1IDYuNTUgMCAwIDAtMy4zLTEuNzcuMzQuMzQgMCAwIDEtLjE4LS4xYy0uMDQtLjA0LS4wNS0uMDgtLjA1LS4xIDAtLjAyIDAtLjA2LjA1LS4xLjA0LS4wNS4xLS4wOS4xOC0uMWE2LjU2IDYuNTYgMCAwIDAgMy4zLTEuNzcgNi41NiA2LjU2IDAgMCAwIDEuNzctMy4zWk05IDJjLS44OCAwLTEuNTIuNy0xLjY3IDEuNDJhNS4wNiA1LjA2IDAgMCAxLTEuMzYgMi41NSA1LjA2IDUuMDYgMCAwIDEtMi41NSAxLjM2QzIuNyA3LjQ4IDIgOC4xMiAyIDljMCAuODkuNyAxLjUyIDEuNDIgMS42Ny42Ny4xNCAxLjY4LjQ5IDIuNTUgMS4zNmE1LjA2IDUuMDYgMCAwIDEgMS4zNiAyLjU1QzcuNDggMTUuMyA4LjEyIDE2IDkgMTZjLjg4IDAgMS41Mi0uNyAxLjY3LTEuNDIuMTQtLjY3LjQ5LTEuNjggMS4zNi0yLjU1YTUuMDYgNS4wNiAwIDAgMSAyLjU1LTEuMzZBMS43NSAxLjc1IDAgMCAwIDE2IDljMC0uODgtLjctMS41Mi0xLjQyLTEuNjdhNS4wNSA1LjA1IDAgMCAxLTIuNTUtMS4zNiA1LjA2IDUuMDYgMCAwIDEtMS4zNi0yLjU1QTEuNzUgMS43NSAwIDAgMCA5IDJabS41IDE0Ljk1djEuOGMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di03LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjhBMi42NyAyLjY3IDAgMCAwIDE2LjggOGgxLjk1QzIwLjU1IDggMjIgOS40NiAyMiAxMS4yNXY3LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNy41QTMuMjUgMy4yNSAwIDAgMSA4IDE4Ljc1VjE2LjhhMi42IDIuNiAwIDAgMCAxLjUuMTVabTIuNS0zLjJjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSAyLjI1YS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVabS0xMCAzYS43NS43NSAwIDAgMCAwIDEuNWguNzV2Ljc1YS43NS43NSAwIDAgMCAxLjUgMHYtLjc1aC43NWEuNzUuNzUgMCAwIDAgMC0xLjVINXYtLjc1YS43NS43NSAwIDAgMC0xLjUgMFYxOWgtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvbXB0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvbXB0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yMi41IDYuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNWgxLjI1YS43NS43NSAwIDAgMCAwLTEuNUgyNFYyLjc1YS43NS43NSAwIDAgMC0xLjUgMFY0aC0xLjI1YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1djEuMjVaTTguNiAzLjYyQzguNzkgMi43OCA5LjUgMiAxMC41IDJjMSAwIDEuNzIuNzggMS45IDEuNjIuMTcuODUuNjIgMi4xNCAxLjczIDMuMjVhNi40NSA2LjQ1IDAgMCAwIDMuMjUgMS43M2MuODQuMTggMS42Mi45IDEuNjIgMS45IDAgMS0uNzggMS43Mi0xLjYyIDEuOS0uODUuMTctMi4xNC42Mi0zLjI1IDEuNzNhNi40NSA2LjQ1IDAgMCAwLTEuNzMgMy4yNWMtLjE4LjgzLS45IDEuNjItMS45IDEuNjItMSAwLTEuNzItLjc4LTEuOS0xLjYyYTYuNDYgNi40NiAwIDAgMC0xLjczLTMuMjUgNi40NSA2LjQ1IDAgMCAwLTMuMjUtMS43M0MyLjggMTIuMjIgMiAxMS41IDIgMTAuNWMwLTEgLjc5LTEuNzIgMS42Mi0xLjlhNi40NSA2LjQ1IDAgMCAwIDMuMjUtMS43MyA2LjQ2IDYuNDYgMCAwIDAgMS43NC0zLjI1Wm0yLjkgMTguNjN2LTIuNDNhMi44MSAyLjgxIDAgMCAxLTEuNS4xNHYyLjI5QTMuNzUgMy43NSAwIDAgMCAxMy43NSAyNmg4LjVBMy43NSAzLjc1IDAgMCAwIDI2IDIyLjI1di04LjVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDEwaC0yLjNhMi44OCAyLjg4IDAgMCAxLS4xMyAxLjVoMi40M2MxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY4LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTguNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVabS05LjUgMWMwLS40MS4zNC0uNzUuNzUtLjc1SDR2LTEuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuMjVoMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINS41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjI0SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTEyLTdjMC0uNDEuMzQtLjc1Ljc1LS43NWg3YS43NS43NSAwIDAgMSAwIDEuNWgtN2EuNzUuNzUgMCAwIDEtLjc1LS43NVptLjc1IDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9tcHQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yMi41IDYuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNWgxLjI1YS43NS43NSAwIDAgMCAwLTEuNUgyNFYyLjc1YS43NS43NSAwIDAgMC0xLjUgMFY0aC0xLjI1YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1djEuMjVaTTEwLjA3IDMuOTNjLjA2LS4yOS4yOC0uNDMuNDMtLjQzLjE1IDAgLjM3LjE0LjQzLjQzYTcuOTYgNy45NiAwIDAgMCAyLjE0IDQgNy45NSA3Ljk1IDAgMCAwIDQgMi4xNGMuMjkuMDYuNDMuMjguNDMuNDMgMCAuMTUtLjE0LjM3LS40My40M2E3Ljk1IDcuOTUgMCAwIDAtNCAyLjE0IDcuOTUgNy45NSAwIDAgMC0yLjE0IDRjLS4wNi4yOS0uMjguNDMtLjQzLjQzLS4xNSAwLS4zNy0uMTQtLjQzLS40M2E3Ljk2IDcuOTYgMCAwIDAtMi4xNC00IDcuOTUgNy45NSAwIDAgMC00LTIuMTRjLS4yOC0uMDYtLjQzLS4yOC0uNDMtLjQzIDAtLjE1LjE1LS4zNy40My0uNDNhNy45NSA3Ljk1IDAgMCAwIDQtMi4xNCA3Ljk2IDcuOTYgMCAwIDAgMi4xNC00Wk0xMC41IDJjLTEgMC0xLjcyLjc4LTEuOSAxLjYyYTYuNDYgNi40NiAwIDAgMS0xLjczIDMuMjVBNi40NSA2LjQ1IDAgMCAxIDMuNjIgOC42QzIuOCA4Ljc4IDIgOS41IDIgMTAuNWMwIDEgLjc5IDEuNzIgMS42MiAxLjkuODUuMTcgMi4xNC42MiAzLjI1IDEuNzNhNi40NiA2LjQ2IDAgMCAxIDEuNzQgMy4yNWMuMTcuODQuOSAxLjYyIDEuOSAxLjYyLjk5IDAgMS43MS0uNzkgMS44OS0xLjYyLjE3LS44NS42Mi0yLjE0IDEuNzMtMy4yNWE2LjQ1IDYuNDUgMCAwIDEgMy4yNS0xLjczYy44NC0uMTggMS42Mi0uOSAxLjYyLTEuOSAwLTEtLjc5LTEuNzItMS42Mi0xLjlhNi40NSA2LjQ1IDAgMCAxLTMuMjUtMS43MyA2LjQ2IDYuNDYgMCAwIDEtMS43My0zLjI1QzEyLjIyIDIuNzggMTEuNSAyIDEwLjUgMlptMSAxNy44MnYyLjQzYzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDguNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtOC41YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC0yLjQzYTIuODEgMi44MSAwIDAgMCAuMTQtMS41aDIuMjlBMy43NSAzLjc1IDAgMCAxIDI2IDEzLjc1djguNUEzLjc1IDMuNzUgMCAwIDEgMjIuMjUgMjZoLTguNUEzLjc1IDMuNzUgMCAwIDEgMTAgMjIuMjV2LTIuM2EyLjg5IDIuODkgMCAwIDAgMS41LS4xM1pNMiAyMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1SDR2LTEuMjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuMjVoMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINS41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjI0SDIuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTEyLTdjMC0uNDEuMzQtLjc1Ljc1LS43NWg3YS43NS43NSAwIDAgMSAwIDEuNWgtN2EuNzUuNzUgMCAwIDEtLjc1LS43NVptLjc1IDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjYgN2ExIDEgMCAxIDAgMiAwVjZoMWExIDEgMCAxIDAgMC0yaC0xVjNhMSAxIDAgMSAwLTIgMHYxaC0xYTEgMSAwIDEgMCAwIDJoMXYxWk0xMyAyNS41di0yLjEzYTMuNzggMy43OCAwIDAgMS0yIDB2Mi4xM2E0LjUgNC41IDAgMCAwIDQuNSA0LjVoMTBhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xMGE0LjUgNC41IDAgMCAwLTQuNS00LjVoLTIuMTNhMy43OCAzLjc4IDAgMCAxIDAgMmgyLjEzYTIuNSAyLjUgMCAwIDEgMi41IDIuNXYxMGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTEwYTIuNSAyLjUgMCAwIDEtMi41LTIuNVpNMiAyN2ExIDEgMCAwIDEgMS0xaDF2LTFhMSAxIDAgMSAxIDIgMHYxaDFhMSAxIDAgMSAxIDAgMkg2djFhMSAxIDAgMSAxLTIgMHYtMUgzYTEgMSAwIDAgMS0xLTFabTE1LTlhMSAxIDAgMSAwIDAgMmg4YTEgMSAwIDEgMCAwLTJoLThabS0xIDVhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDEgMSAwIDJoLTVhMSAxIDAgMCAxLTEtMVpNOS42NyAzLjk4QzkuOSAyLjk3IDEwLjc3IDIgMTIgMnMyLjEyLjk3IDIuMzMgMS45OGMuMi45OC43IDIuNDQgMS45OCAzLjcxQTcuMzYgNy4zNiAwIDAgMCAyMCA5LjY3QzIxLjA0IDkuODggMjIgMTAuNzcgMjIgMTJzLS45NyAyLjEyLTEuOTggMi4zM2MtLjk4LjItMi40NC43LTMuNzEgMS45OGE3LjM2IDcuMzYgMCAwIDAtMS45OCAzLjdDMTQuMTIgMjEuMDMgMTMuMjMgMjIgMTIgMjJzLTIuMTItLjk3LTIuMzMtMS45OEE3LjM3IDcuMzcgMCAwIDAgNy43IDE2LjMgNy4zNiA3LjM2IDAgMCAwIDQgMTQuMzNDMi45NyAxNC4xMiAyIDEzLjIzIDIgMTJjMC0xLjIyLjk3LTIuMTIgMS45OS0yLjMzLjk3LS4yIDIuNDQtLjcgMy43LTEuOThBNy4zNyA3LjM3IDAgMCAwIDkuNjcgNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm9tcHQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yNyA4YTEgMSAwIDAgMS0xLTFWNmgtMWExIDEgMCAxIDEgMC0yaDFWM2ExIDEgMCAxIDEgMiAwdjFoMWExIDEgMCAxIDEgMCAyaC0xdjFhMSAxIDAgMCAxLTEgMVpNMTMgMjMuMzd2Mi4xM2EyLjUgMi41IDAgMCAwIDIuNSAyLjVoMTBhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMGEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTIuMTNhMy43OCAzLjc4IDAgMCAwIDAtMmgyLjEzYTQuNSA0LjUgMCAwIDEgNC41IDQuNXYxMGE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTEwYTQuNSA0LjUgMCAwIDEtNC41LTQuNXYtMi4xM2EzLjc4IDMuNzggMCAwIDAgMiAwWk0zIDI2YTEgMSAwIDEgMCAwIDJoMXYxYTEgMSAwIDEgMCAyIDB2LTFoMWExIDEgMCAxIDAgMC0ySDZ2LTFhMSAxIDAgMSAwLTIgMHYxSDNabTEzLTdhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDEgMSAwIDJoLThhMSAxIDAgMCAxLTEtMVptMSAzYTEgMSAwIDEgMCAwIDJoNWExIDEgMCAxIDAgMC0yaC01Wk0xMS42MyA0LjRhLjU3LjU3IDAgMCAxIC4xNy0uMy4zLjMgMCAwIDEgLjItLjEuMy4zIDAgMCAxIC4yLjFjLjA4LjA2LjE1LjE3LjE3LjMuMjUgMS4yLjkgMy4wOCAyLjUyIDQuN2E5LjM2IDkuMzYgMCAwIDAgNC43MiAyLjUzYy4xMi4wMi4yMy4wOS4zLjE3LjA3LjA4LjA5LjE1LjA5LjJhLjMuMyAwIDAgMS0uMS4yLjU3LjU3IDAgMCAxLS4zLjE3Yy0xLjIuMjUtMy4wOC45LTQuNyAyLjUyYTkuMzYgOS4zNiAwIDAgMC0yLjUzIDQuNzIuNTcuNTcgMCAwIDEtLjE3LjMuMy4zIDAgMCAxLS4yLjA5LjMuMyAwIDAgMS0uMi0uMS41Ny41NyAwIDAgMS0uMTctLjMgOS4zNyA5LjM3IDAgMCAwLTIuNTItNC43IDkuMzYgOS4zNiAwIDAgMC00LjcyLTIuNTMuNTcuNTcgMCAwIDEtLjMtLjE3QS4zLjMgMCAwIDEgNCAxMmEuMy4zIDAgMCAxIC4xLS4yLjU3LjU3IDAgMCAxIC4zLS4xNyA5LjM2IDkuMzYgMCAwIDAgNC43LTIuNTIgOS4zNyA5LjM3IDAgMCAwIDIuNTMtNC43MlpNMTIgMmMtMS4yMyAwLTIuMTEuOTctMi4zMyAxLjk4LS4yLjk4LS43IDIuNDQtMS45OCAzLjcxQTcuMzYgNy4zNiAwIDAgMSA0IDkuNjdDMi45NyA5Ljg4IDIgMTAuNzcgMiAxMnMuOTcgMi4xMiAxLjk5IDIuMzNjLjk3LjIgMi40NC43IDMuNyAxLjk4QTcuMzcgNy4zNyAwIDAgMSA5LjY3IDIwQzkuODggMjEuMDQgMTAuNzcgMjIgMTIgMjJzMi4xMi0uOTcgMi4zMy0xLjk5Yy4yLS45Ny43MS0yLjQzIDEuOTgtMy43YTcuMzYgNy4zNiAwIDAgMSAzLjctMS45OEMyMS4wNCAxNC4xMiAyMiAxMy4yMyAyMiAxMnMtLjk3LTIuMTItMS45OC0yLjMzQTcuMzYgNy4zNiAwIDAgMSAxNi4zIDcuNyA3LjM3IDcuMzcgMCAwIDEgMTQuMzMgNEMxNC4xMiAyLjk2IDEzLjIzIDIgMTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb21wdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzguNSAxMS4yNWExLjI1IDEuMjUgMCAxIDAgMi41IDBWOS41aDEuNzVhMS4yNSAxLjI1IDAgMSAwIDAtMi41SDQxVjUuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwVjdoLTEuNzVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDEuNzV2MS43NVpNMTQuODcgNi42OEMxNS4xNSA1LjMgMTYuMzYgNCAxOCA0YzEuNjUgMCAyLjg1IDEuMyAzLjE0IDIuNjhhMTAuNiAxMC42IDAgMCAwIDIuODQgNS4zNCAxMC42IDEwLjYgMCAwIDAgNS4zNCAyLjg1QzMwLjcgMTUuMTUgMzIgMTYuMzYgMzIgMThzLTEuMyAyLjg1LTIuNjggMy4xNGExMC42IDEwLjYgMCAwIDAtNS4zNCAyLjg0IDEwLjYgMTAuNiAwIDAgMC0yLjg0IDUuMzRDMjAuODUgMzAuNyAxOS42NCAzMiAxOCAzMmMtMS42NCAwLTIuODUtMS4zLTMuMTMtMi42OC0uMy0xLjQtMS4wMi0zLjUxLTIuODUtNS4zNGExMC42IDEwLjYgMCAwIDAtNS4zNC0yLjg1QzUuMyAyMC44NSA0LjAxIDE5LjY1IDQgMTguMDFjMC0xLjY1IDEuMy0yLjg2IDIuNjgtMy4xNWExMC42IDEwLjYgMCAwIDAgNS4zNC0yLjg0IDEwLjYgMTAuNiAwIDAgMCAyLjg1LTUuMzRabTQuNjMgMzEuMDd2LTMuOTdhNS4wMyA1LjAzIDAgMCAxLTIuNS4xMnYzLjg1QzE3IDQxLjIgMTkuOCA0NCAyMy4yNSA0NGgxNC41QzQxLjIgNDQgNDQgNDEuMiA0NCAzNy43NXYtMTQuNUM0NCAxOS44IDQxLjIgMTcgMzcuNzUgMTdIMzMuOWE1LjEyIDUuMTIgMCAwIDEtLjEyIDIuNWgzLjk3YTMuNzUgMy43NSAwIDAgMSAzLjc1IDMuNzV2MTQuNWEzLjc1IDMuNzUgMCAwIDEtMy43NSAzLjc1aC0xNC41YTMuNzUgMy43NSAwIDAgMS0zLjc1LTMuNzVabTUuNS0xMC41YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDkuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTkuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wm0xLjI1IDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDYuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTYuNVpNNCAzOS43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNUg3di0xLjc1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYxLjc1aDEuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDkuNXYxLjc1YTEuMjUgMS4yNSAwIDEgMS0yLjUgMFY0MUg1LjI1QzQuNTYgNDEgNCA0MC40NCA0IDM5Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvbXB0NDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb21wdDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM4LjUgMTEuMjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwVjkuNWgxLjc1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUg0MVY1LjI1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMFY3aC0xLjc1YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgxLjc1djEuNzVaTTE3LjMyIDcuMTljLjA5LS40Ni40NS0uNjkuNjgtLjY5LjI0IDAgLjYuMjMuNjkuNjlhMTMuMSAxMy4xIDAgMCAwIDMuNTMgNi42IDEzLjA5IDEzLjA5IDAgMCAwIDYuNiAzLjUyYy40NS4xLjY4LjQ2LjY4LjY5IDAgLjIzLS4yMy42LS42OS42OWExMy4xIDEzLjEgMCAwIDAtNi42IDMuNTMgMTMuMSAxMy4xIDAgMCAwLTMuNTIgNi42Yy0uMS40NS0uNDUuNjgtLjY5LjY4LS4yMyAwLS41OS0uMjMtLjY5LS42OWExMy4xMSAxMy4xMSAwIDAgMC0zLjUyLTYuNiAxMy4xIDEzLjEgMCAwIDAtNi42LTMuNTJjLS40Ni0uMS0uNjktLjQ2LS42OS0uNjkgMC0uMjMuMjMtLjYuNy0uNjlhMTMuMSAxMy4xIDAgMCAwIDYuNTktMy41MyAxMy4xIDEzLjEgMCAwIDAgMy41My02LjZaTTE4IDRjLTEuNjQgMC0yLjg1IDEuMy0zLjEzIDIuNjhhMTAuNiAxMC42IDAgMCAxLTIuODUgNS4zNCAxMC42IDEwLjYgMCAwIDEtNS4zNCAyLjg0QzUuMyAxNS4xNiA0IDE2LjM2IDQgMTguMDFjMCAxLjY0IDEuMyAyLjg0IDIuNjggMy4xMmExMC42IDEwLjYgMCAwIDEgNS4zNCAyLjg1IDEwLjYxIDEwLjYxIDAgMCAxIDIuODUgNS4zNEMxNS4xNSAzMC43IDE2LjM2IDMyIDE4IDMyYzEuNjUgMCAyLjg1LTEuMyAzLjE0LTIuNjhhMTAuNiAxMC42IDAgMCAxIDIuODQtNS4zNCAxMC42IDEwLjYgMCAwIDEgNS4zNC0yLjg0QzMwLjcgMjAuODQgMzIgMTkuNjQgMzIgMThjMC0xLjY0LTEuMy0yLjg1LTIuNjgtMy4xM2ExMC42IDEwLjYgMCAwIDEtNS4zNC0yLjg1IDEwLjYgMTAuNiAwIDAgMS0yLjg0LTUuMzRDMjAuODUgNS4zIDE5LjY0IDQgMTggNFptMS41IDI5Ljc4djMuOTdhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWgxNC41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTE0LjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtMy45N2E1LjAzIDUuMDMgMCAwIDAgLjEyLTIuNWgzLjg1QzQxLjIgMTcgNDQgMTkuOCA0NCAyMy4yNXYxNC41QzQ0IDQxLjIgNDEuMiA0NCAzNy43NSA0NGgtMTQuNUE2LjI1IDYuMjUgMCAwIDEgMTcgMzcuNzVWMzMuOWE1LjEyIDUuMTIgMCAwIDAgMi41LS4xMlptNS41LTYuNTNjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoOS41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtOS41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVabTEuMjUgNS4yNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoNi41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtNi41Wk00IDM5Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1SDd2LTEuNzVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjEuNzVoMS43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjVIOS41djEuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwVjQxSDUuMjVDNC41NiA0MSA0IDQwLjQ0IDQgMzkuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm90b2NvbEhhbmRsZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm90b2NvbEhhbmRsZXIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNTkgNC40MSAxLjQgNi42YTIgMiAwIDAgMCAwIDIuODJMMy42IDExLjZhMiAyIDAgMCAwIDIuODIgMEw4LjYgOS40YTIgMiAwIDAgMCAwLTIuODJMNi40IDQuNGEyIDIgMCAwIDAtMi44MiAwWm02IDcuMTgtLjg4LS44OC41OC0uNTlhMyAzIDAgMCAwIDAtNC4yNGwtLjU4LS41OS44OC0uODhhMiAyIDAgMCAxIDIuODIgMEwxNC42IDYuNmEyIDIgMCAwIDEgMCAyLjgyTDEyLjQgMTEuNmEyIDIgMCAwIDEtMi44MiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvdG9jb2xIYW5kbGVyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb3RvY29sSGFuZGxlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNTkgNC40MSAxLjQgNi42YTIgMiAwIDAgMCAwIDIuODJMMy42IDExLjZhMiAyIDAgMCAwIDIuODIgMEw4LjYgOS40YTIgMiAwIDAgMCAwLTIuODJMNi40IDQuNGEyIDIgMCAwIDAtMi44MiAwWk0yLjEyIDcuMyA0LjMgNS4xMmExIDEgMCAwIDEgMS40MiAwTDcuODggNy4zYTEgMSAwIDAgMSAwIDEuNDJMNS43IDEwLjg4YTEgMSAwIDAgMS0xLjQyIDBMMi4xMiA4LjdhMSAxIDAgMCAxIDAtMS40MlptNy40NyA0LjMtLjg4LS44OC41OC0uNTkuMTItLjEyLjg4Ljg4YTEgMSAwIDAgMCAxLjQyIDBsMi4xNy0yLjE3YTEgMSAwIDAgMCAwLTEuNDJMMTEuNyA1LjEyYTEgMSAwIDAgMC0xLjQyIDBMOS40MSA2YTMuMDUgMy4wNSAwIDAgMC0uMTItLjEybC0uNTgtLjU5Ljg4LS44OGEyIDIgMCAwIDEgMi44MiAwTDE0LjYgNi42YTIgMiAwIDAgMSAwIDIuODJMMTIuNCAxMS42YTIgMiAwIDAgMS0yLjgyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQcm90b2NvbEhhbmRsZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm90b2NvbEhhbmRsZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNTkgNS40MSAyLjQgOC42YTIgMiAwIDAgMCAwIDIuODJMNS42IDE0LjZhMiAyIDAgMCAwIDIuODIgMGwzLjE4LTMuMThhMiAyIDAgMCAwIDAtMi44Mkw4LjQgNS40YTIgMiAwIDAgMC0yLjgyIDBabTYgOS4xOC0uODgtLjg4IDEuNTgtMS41OWEzIDMgMCAwIDAgMC00LjI0bC0xLjU4LTEuNTkuODgtLjg4YTIgMiAwIDAgMSAyLjgyIDBMMTcuNiA4LjZhMiAyIDAgMCAxIDAgMi44MkwxNC40IDE0LjZhMiAyIDAgMCAxLTIuODIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFByb3RvY29sSGFuZGxlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQcm90b2NvbEhhbmRsZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjU5IDUuNDEgMi40IDguNmEyIDIgMCAwIDAgMCAyLjgyTDUuNiAxNC42YTIgMiAwIDAgMCAyLjgyIDBsMy4xOC0zLjE4YTIgMiAwIDAgMCAwLTIuODJMOC40IDUuNGEyIDIgMCAwIDAtMi44MiAwWk0zLjEyIDkuMyA2LjMgNi4xMmExIDEgMCAwIDEgMS40MiAwbDMuMTcgMy4xN2ExIDEgMCAwIDEgMCAxLjQyTDcuNyAxMy44OGExIDEgMCAwIDEtMS40MiAwTDMuMTIgMTAuN2ExIDEgMCAwIDEgMC0xLjQyWm04LjQ3IDUuMy0uODgtLjg4LjctLjcxLjg4Ljg4YTEgMSAwIDAgMCAxLjQyIDBsMy4xNy0zLjE3YTEgMSAwIDAgMCAwLTEuNDJMMTMuNyA2LjEyYTEgMSAwIDAgMC0xLjQyIDBsLS44OC44OC0uNy0uNy44OC0uODlhMiAyIDAgMCAxIDIuODIgMEwxNy42IDguNmEyIDIgMCAwIDEgMCAyLjgyTDE0LjQgMTQuNmEyIDIgMCAwIDEtMi44MiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUHJvdG9jb2xIYW5kbGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHJvdG9jb2xIYW5kbGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIm0xMy40OCAxNy43My0uNzctLjc3IDIuNDgtMi40OWEzLjUgMy41IDAgMCAwIDAtNC45NUwxMi43IDcuMDRsLjc3LS43N2EyLjUgMi41IDAgMCAxIDMuNTQgMGwzLjk2IDMuOTZhMi41IDIuNSAwIDAgMSAwIDMuNTRsLTMuOTYgMy45NmEyLjUgMi41IDAgMCAxLTMuNTQgMFptMS0zLjk2YTIuNSAyLjUgMCAwIDAgMC0zLjU0bC0zLjk2LTMuOTZhMi41IDIuNSAwIDAgMC0zLjU0IDBsLTMuOTYgMy45NmEyLjUgMi41IDAgMCAwIDAgMy41NGwzLjk2IDMuOTZhMi41IDIuNSAwIDAgMCAzLjU0IDBsMy45Ni0zLjk2WlwiXSk7XG5leHBvcnQgY29uc3QgUHJvdG9jb2xIYW5kbGVyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Byb3RvY29sSGFuZGxlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wibTEzLjczIDE3LjczLTEuMDItMS4wMiAxLjA2LTEuMDYgMS4wMiAxLjAyYTEgMSAwIDAgMCAxLjQyIDBsMy45Ni0zLjk2YTEgMSAwIDAgMCAwLTEuNDJsLTMuOTYtMy45NmExIDEgMCAwIDAtMS40MiAwbC0xLjAyIDEuMDJMMTIuNyA3LjNsMS4wMi0xLjAyYTIuNSAyLjUgMCAwIDEgMy41NCAwbDMuOTYgMy45NmEyLjUgMi41IDAgMCAxIDAgMy41NGwtMy45NiAzLjk2YTIuNSAyLjUgMCAwIDEtMy41NCAwWm0tNy0xMS40Ni0zLjk2IDMuOTZhMi41IDIuNSAwIDAgMCAwIDMuNTRsMy45NiAzLjk2YTIuNSAyLjUgMCAwIDAgMy41NCAwbDMuOTYtMy45NmEyLjUgMi41IDAgMCAwIDAtMy41NGwtMy45Ni0zLjk2YTIuNSAyLjUgMCAwIDAtMy41NCAwWm0tMi45IDUuMDIgMy45Ni0zLjk2YTEgMSAwIDAgMSAxLjQyIDBsMy45NiAzLjk2YTEgMSAwIDAgMSAwIDEuNDJsLTMuOTYgMy45NmExIDEgMCAwIDEtMS40MiAwbC0zLjk2LTMuOTZhMSAxIDAgMCAxIDAtMS40MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1bHNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuMDEgM2MuMzMgMCAuNjIuMjMuNzEuNTVsMi44MiAxMC4wNyAyLjI0LTcuMWEuNzUuNzUgMCAwIDEgMS40LS4wN0wxNS41IDkuNWgxLjc2YS43NS43NSAwIDAgMSAwIDEuNUgxNWEuNzUuNzUgMCAwIDEtLjY5LS40NWwtLjctMS42NS0yLjQgNy41OGEuNzUuNzUgMCAwIDEtMS40My0uMDNMNi45NyA2LjQxbC0xLjI1IDQuMDZBLjc1Ljc1IDAgMCAxIDUgMTFIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMS43bDEuODMtNS45N2MuMS0uMzIuNC0uNTMuNzMtLjUzWlwiXSk7XG5leHBvcnQgY29uc3QgUHVsc2UyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03IDNhLjUuNSAwIDAgMSAuNDguMzdsMy4wNSAxMS4zIDIuNS04LjMxYS41LjUgMCAwIDEgLjk0LS4wNEwxNS4zNSAxMGgyLjE1YS41LjUgMCAwIDEgMCAxSDE1YS41LjUgMCAwIDEtLjQ3LS4zMmwtLjk4LTIuNjItMi41NyA4LjU4YS41LjUgMCAwIDEtLjk2LS4wMUw2Ljk5IDUuMzdsLTEuNSA1LjI3QS41LjUgMCAwIDEgNSAxMUgyLjVhLjUuNSAwIDAgMSAwLTFoMi4xMmwxLjktNi42NEEuNS41IDAgMCAxIDcgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFB1bHNlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTguNDcgNy4yNCAzLjA2IDEyLjk5Yy4yMyAxIDEuNjMgMS4wNCAxLjkzLjA2bDIuOTQtOS41OC4zOSAxLjUzYTEgMSAwIDAgMCAuOTcuNzZIMjFhMSAxIDAgMSAwIDAtMmgtMi40N2wtMS4wNi00LjI0Yy0uMjUtLjk5LTEuNjMtMS4wMi0xLjkzLS4wNWwtMi45MSA5LjQ3LTMuMTUtMTMuNGMtLjI0LTEuMDMtMS43LTEuMDQtMS45NS0uMDJMNS40NyAxMUgzYTEgMSAwIDAgMCAwIDJoMy4yNWExIDEgMCAwIDAgLjk3LS43NmwxLjI1LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZTI0UmVndWxhcicsIFwiMjRcIiwgW1wibTguNDYgNi44IDMuMjkgMTMuNjNjLjE3LjczIDEuMi43NyAxLjQ0LjA1bDMuMjYtMTAuMTIuNTggMi4xYy4xLjMyLjM5LjU0LjcyLjU0aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuOTNsLTEuMS0zLjk1YS43NS43NSAwIDAgMC0xLjQ0LS4wM2wtMy4yIDkuOTYtMy4zNS0xMy45Yy0uMTktLjc2LTEuMjYtLjc3LTEuNDYtLjAybC0yLjEgNy45NEgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWgzLjVjLjM0IDAgLjYzLS4yMy43Mi0uNTZsMS41LTUuNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1bHNlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMC4wNCAzYTEgMSAwIDAgMSAuOTQuNzhsMy43IDE2LjUgMy44Ny0xMS42YTEgMSAwIDAgMSAxLjg4LS4wNUwyMi4xOCAxM0gyNWExIDEgMCAxIDEgMCAyaC0zLjVhMSAxIDAgMCAxLS45My0uNjNsLS45OC0yLjQ2LTQuMTQgMTIuNGExIDEgMCAwIDEtMS45My0uMDlMOS44NiA3Ljk0bC0xLjkgNi4zNUExIDEgMCAwIDEgNyAxNUgzYTEgMSAwIDEgMSAwLTJoMy4yNmwyLjc4LTkuMjlhMSAxIDAgMCAxIDEtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEwLjAyIDNjLjM1LjAxLjY0LjI1LjcxLjU5bDMuOSAxNy43OUwxOC44IDguNTJhLjc1Ljc1IDAgMCAxIDEuNDMuMDNsMS4zNSA0Ljk1aDMuNjhhLjc1Ljc1IDAgMCAxIDAgMS41SDIxYS43NS43NSAwIDAgMS0uNzItLjU1bC0uODQtMy4wNy00LjIzIDEzLjFhLjc1Ljc1IDAgMCAxLTEuNDQtLjA3TDkuOSA2LjgxbC0yLjE4IDcuNjVBLjc1Ljc1IDAgMCAxIDcgMTVIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVoMy42OGwyLjg1LTkuOTZjLjEtLjMzLjQtLjU1Ljc0LS41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1bHNlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2UzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTExLjUzIDVjLjU1LjAxIDEuMDIuMzggMS4xNy45MWw0LjM2IDE1LjQ0IDMuMjUtMTAuNDdhMS4yNSAxLjI1IDAgMCAxIDIuMzMtLjE1bDIuMTYgNC43N2gyLjk1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNUgyNGMtLjQ5IDAtLjk0LS4yOS0xLjE0LS43M2wtMS4xNC0yLjUxLTMuNTMgMTEuMzZhMS4yNSAxLjI1IDAgMCAxLTIuNC0uMDNMMTEuNCAxMC41bC0yLjIxIDYuNjVjLS4xNy41LS42NS44NS0xLjE5Ljg1SDQuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41SDcuMWwzLjIxLTkuNjVjLjE4LS41Mi42Ny0uODYgMS4yMi0uODVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTExLjUyIDVhMSAxIDAgMCAxIC45NC43M2w0LjU4IDE2LjY1IDMuNS0xMS42N2ExIDEgMCAwIDEgMS44OC0uMUwyNC42NyAxNkgyOGExIDEgMCAxIDEgMCAyaC00YTEgMSAwIDAgMS0uOTItLjYybC0xLjQzLTMuNDEtMy43IDEyLjMyYTEgMSAwIDAgMS0xLjkxLS4wMkwxMS40MyA5LjUyIDguOTUgMTcuM0ExIDEgMCAwIDEgOCAxOEg0YTEgMSAwIDEgMSAwLTJoMy4yN2wzLjI4LTEwLjNhMSAxIDAgMCAxIC45Ny0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFB1bHNlU3F1YXJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2VTcXVhcmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNVptNS45NyAxLjMzYS41LjUgMCAwIDAtLjk0IDBMNi42NSAxMEg1LjVhLjUuNSAwIDAgMCAwIDFIN2MuMiAwIC40LS4xMy40Ny0uMzJsMS4wMi0yLjczIDIuMDQgNS43MmEuNS41IDAgMCAwIC45Mi4wNUwxMi44IDExaDEuNjlhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNDUuMjhsLS45NyAxLjk1LTIuMS01LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBQdWxzZVNxdWFyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdWxzZVNxdWFyZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguOTcgNi4zM2EuNS41IDAgMCAwLS45NCAwTDYuNjUgMTBINS41YS41LjUgMCAwIDAgMCAxSDdjLjIgMCAuNC0uMTMuNDctLjMybDEuMDItMi43MyAyLjA0IDUuNzJhLjUuNSAwIDAgMCAuOTIuMDVMMTIuOCAxMWgxLjY5YS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjQ1LjI4bC0uOTcgMS45NS0yLjEtNS45Wk01IDNhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVaTTQgNWExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2MTBhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1bHNlU3F1YXJlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2VTcXVhcmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE4Ljc1IDNDMTkuOTkgMyAyMSA0IDIxIDUuMjV2MTMuNUMyMSAyMCAyMCAyMSAxOC43NSAyMUg1LjI1QzQuMDEgMjEgMyAyMCAzIDE4Ljc1VjUuMjVDMyA0LjAxIDQgMyA1LjI1IDNoMTMuNVpNOS44IDcuOTUgOC4yNiAxMS41SDYuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDJjLjMgMCAuNTYtLjE4LjY4LS40NWwxLjA0LTIuMzYgMi4zMyA1LjgzYS43NS43NSAwIDAgMCAxLjM3LjA2TDE1LjcxIDEzaDEuNTRhLjc1Ljc1IDAgMSAwIDAtMS41aC0yYS43NS43NSAwIDAgMC0uNjcuNDFsLTEgMi0yLjM5LTUuOTRhLjc1Ljc1IDAgMCAwLTEuMzgtLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgUHVsc2VTcXVhcmUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHVsc2VTcXVhcmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC43NSAzQzE5Ljk5IDMgMjEgNCAyMSA1LjI1djEzLjVDMjEgMjAgMjAgMjEgMTguNzUgMjFINS4yNUM0LjAxIDIxIDMgMjAgMyAxOC43NVY1LjI1QzMgNC4wMSA0IDMgNS4yNSAzaDEzLjVabTAgMS41SDUuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMy41YzAgLjQyLjM0Ljc1Ljc1Ljc1aDEzLjVjLjQxIDAgLjc1LS4zMy43NS0uNzVWNS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NVptLTEwLjUgNyAxLjU2LTMuNTVhLjc1Ljc1IDAgMCAxIDEuMzQtLjA4bC4wNC4xIDIuMzkgNS45NSAxLTJhLjc1Ljc1IDAgMCAxIC41Ni0uNDFsLjExLS4wMWgyYS43NS43NSAwIDAgMSAuMSAxLjVIMTUuNzFsLTEuNTQgMy4wOGEuNzUuNzUgMCAwIDEtMS4zMi4wNGwtLjA1LS4xLTIuMzMtNS44My0xLjA0IDIuMzZjLS4xLjI0LS4zMi40LS41Ny40NGwtLjExLjAxaC0yYS43NS43NSAwIDAgMS0uMS0xLjVoMS42bDEuNTYtMy41NS0xLjU1IDMuNTVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlQ3ViZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNiAydjNoNFYySDZaTTUgNkgydjRoM1Y2Wm0xIDRWNmg0djRINlptLTEgMUgydi41QTIuNSAyLjUgMCAwIDAgNC41IDE0SDV2LTNabTEgM2g0di0zSDZ2M1ptNSAwdi0zaDN2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDExWm0zLTh2NGgtM1Y2aDNabTAtMXYtLjVBMi41IDIuNSAwIDAgMCAxMS41IDJIMTF2M2gzWlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVDdWJlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA1djYuNUEyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMkg1djNIMlptOCA4SDZ2LTJoNHYyWm0tNy0yaDJ2MmgtLjVBMS41IDEuNSAwIDAgMSAzIDExLjVWMTFabTctMUg2VjZoNHY0Wk0zIDZoMnY0SDNWNlptNy0xSDZWM2g0djJabTEgMWgydjRoLTJWNlptMCA1aDJ2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExdi0yWm0yLTYuNVY1aC0yVjNoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlQ3ViZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgMTdoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2gtNHY0Wm0wLTVWOGg0djRoLTRabS0xIDBIOFY4aDR2NFptLTQgMWg0djRIOHYtNFptLTEtMVY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVDdWJlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyAxNC41VjdoNFYzaDcuNUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNVpNOCA0djNoNFY0SDhabTUgMHYzaDNWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxM1ptMyA0aC0zdjRoM1Y4Wm0wIDVoLTN2M2gxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzWm0tNCAzdi0zSDh2M2g0Wm0tNSAwdi0zSDR2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDdabS0zLTRoM1Y4SDR2NFptOC00SDh2NGg0VjhaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlQ3ViZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOS41IDIxaDV2LTVoLTV2NVptNi41IDBoMS43NWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjE2aC01djVabTUtNi41di01aC01djVoNVpNMjEgOFY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDE2djVoNVptLTYuNS01aC01djVoNVYzWk0zIDkuNXY1aDV2LTVIM1pNMyAxNnYxLjc1QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxSDh2LTVIM1ptMTEuNS02LjV2NWgtNXYtNWg1WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVDdWJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA4LjV2OS4yNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g4LjV2NS41SDNaTTguNSAxMHY0aC00di00aDRabTEuNSA0di00aDR2NGgtNFptNS41IDB2LTRoNHY0aC00Wk0xMCAxNS41aDR2NGgtNHYtNFptNS41IDBoNHYyLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxNS41di00Wm0wLTExaDIuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOC41aC00di00Wm0tMS41IDRoLTR2LTRoNHY0Wm0tNS41IDd2NEg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTUuNWg0WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZUN1YmUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMgMTF2Nmg2LjV2LTZIM1ptMCA3LjV2Mi43NUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNUg5LjV2LTYuNUgzWm04IDYuNWg2di02LjVoLTZWMjVabTcuNSAwaDIuNzVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1VjE4LjVoLTYuNVYyNVptNi41LTh2LTZoLTYuNXY2SDI1Wm0wLTcuNVY2Ljc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzSDE4LjV2Ni41SDI1Wk0xNyAzaC02djYuNWg2VjNabTAgOHY2aC02di02aDZaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZUN1YmUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDkuNXYxMS43NUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNWgxNC41QTMuNzUgMy43NSAwIDAgMCAyNSAyMS4yNVY2Ljc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzSDkuNXY2LjVIM1ptMS41IDExLjc1VjE4LjVoNXY1SDYuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1Wk05LjUgMTF2NmgtNXYtNmg1Wk0xMSAyMy41di01aDZ2NWgtNlpNMTcgMTF2NmgtNnYtNmg2Wm0xLjUgMTIuNXYtNWg1djIuNzVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVIMTguNVptNS0xMi41djZoLTV2LTZoNVptLTIuMjUtNi41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1VjkuNWgtNXYtNWgyLjc1Wk0xMSA0LjVoNnY1aC02di01WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZUN1YmU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTE5IDZ2MTAuNWgxMFY2SDE5Wm0tMi41IDEzSDZ2MTBoMTAuNVYxOVpNMTkgMjlWMTloMTB2MTBIMTlabS0yLjUgMi41SDZ2NC4yNUM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDQuMjVWMzEuNVpNMTkgNDJoMTBWMzEuNUgxOVY0MlptMTIuNSAwVjMxLjVINDJ2NC4yNUM0MiAzOS4yIDM5LjIgNDIgMzUuNzUgNDJIMzEuNVpNNDIgMTl2MTBIMzEuNVYxOUg0MlptMC0yLjV2LTQuMjVDNDIgOC44IDM5LjIgNiAzNS43NSA2SDMxLjV2MTAuNUg0MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1enpsZUN1YmU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlQ3ViZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYgMTd2MTguNzVDNiAzOS4yIDguOCA0MiAxMi4yNSA0MmgyMy41QzM5LjIgNDIgNDIgMzkuMiA0MiAzNS43NXYtMjMuNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZIMTd2MTFINlptMi41IDExLjV2LTlIMTd2OUg4LjVabTAgNy4yNVYzMUgxN3Y4LjVoLTQuNzVhMy43NSAzLjc1IDAgMCAxLTMuNzUtMy43NVptMjAgMy43NWgtOVYzMWg5djguNVptNy4yNSAwSDMxVjMxaDguNXY0Ljc1YTMuNzUgMy43NSAwIDAgMS0zLjc1IDMuNzVabTMuNzUtMjB2OUgzMXYtOWg4LjVabTAtNy4yNVYxN0gzMVY4LjVoNC43NWEzLjc1IDMuNzUgMCAwIDEgMy43NSAzLjc1Wm0tMjAtMy43NWg5VjE3aC05VjguNVptOSAxMXY5aC05di05aDlaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVDdWJlUGllY2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVDdWJlUGllY2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE1LjggMS4yOWExIDEgMCAwIDEgMS40IDBsMS41MSAxLjVhMSAxIDAgMCAxIDAgMS40MmwtMS41IDEuNWExIDEgMCAwIDEtMS40MiAwbC0xLjUtMS41YTEgMSAwIDAgMSAwLTEuNDJsMS41LTEuNVpNNS41IDE3SDd2LTRIM3YxLjVBMi41IDIuNSAwIDAgMCA1LjUgMTdaTTcgOHY0SDNWOGg0Wm01IDRIOFY4aDR2NFptLTQgMWg0djRIOHYtNFptNS01djRoNFY4aC00Wm0wIDVoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDEzdi00Wk0zIDdoNFYzSDUuNUEyLjUgMi41IDAgMCAwIDMgNS41VjdabTUgMFYzaDR2NEg4WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlQ3ViZVBpZWNlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZUN1YmVQaWVjZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjIgMS4yOWExIDEgMCAwIDAtMS40IDBsLTEuNSAxLjVhMSAxIDAgMCAwIDAgMS40MmwxLjUgMS41YTEgMSAwIDAgMCAxLjQgMGwxLjUxLTEuNWExIDEgMCAwIDAgMC0xLjQybC0xLjUtMS41Wk0xNSAzLjUgMTYuNSAyIDE4IDMuNSAxNi41IDUgMTUgMy41Wk0xMyAzSDUuNUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN2gtNFYzWk01LjM2IDE2QTEuNSAxLjUgMCAwIDEgNCAxNC41VjEzaDN2M0g1LjM2Wk04IDEzaDR2M0g4di0zWm04IDEuNjRBMS41IDEuNSAwIDAgMSAxNC41IDE2SDEzdi0zaDNWMTQuNjRaTTggOGg0djRIOFY4Wm01IDRWOGgzdjRoLTNaTTggNGg0djNIOFY0Wk01LjUgNEg3djNINFY1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRaTTQgMTJWOGgzdjRINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1enpsZVBpZWNlMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlUGllY2UxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYuNSAwQzUuNjcgMCA1IC42NyA1IDEuNVYySDRhMSAxIDAgMCAwLTEgMXYxaC0uNWExLjUgMS41IDAgMSAwIDAgM0gzdjFhMSAxIDAgMCAwIDEgMWgxdi41YTEuNSAxLjUgMCAwIDAgMyAwVjloMWExIDEgMCAwIDAgMS0xVjZIOC41YS41LjUgMCAwIDEgMC0xSDEwVjNhMSAxIDAgMCAwLTEtMUg4di0uNUM4IC42NyA3LjMzIDAgNi41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVQaWVjZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVQaWVjZTEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTYuNSAxYS41LjUgMCAwIDAtLjUuNVYzSDR2MkgyLjVhLjUuNSAwIDAgMCAwIDFINHYyaDJ2MS41YS41LjUgMCAwIDAgMSAwVjhoMlY3aC0uNWExLjUgMS41IDAgMSAxIDAtM0g5VjNIN1YxLjVhLjUuNSAwIDAgMC0uNS0uNVpNNSAxLjVhMS41IDEuNSAwIDEgMSAzIDBWMmgxYTEgMSAwIDAgMSAxIDF2Mkg4LjVhLjUuNSAwIDAgMCAwIDFIMTB2MmExIDEgMCAwIDEtMSAxSDh2LjVhMS41IDEuNSAwIDAgMS0zIDBWOUg0YTEgMSAwIDAgMS0xLTFWN2gtLjVhMS41IDEuNSAwIDEgMSAwLTNIM1YzYTEgMSAwIDAgMSAxLTFoMXYtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVQaWVjZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDFhMiAyIDAgMCAwLTIgMkg1LjVDNC42NyAzIDQgMy42NyA0IDQuNVY2YTIgMiAwIDAgMCAwIDR2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDdhMiAyIDAgMCAwIDQgMGgxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTFhMSAxIDAgMSAxIDAtMmgxVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTFhMiAyIDAgMCAwLTItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1enpsZVBpZWNlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNyAzYTIgMiAwIDAgMSA0IDBoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41VjdoLTFhMSAxIDAgMCAwIDAgMmgxdjIuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTFhMiAyIDAgMCAxLTQgMEg1LjVBMS41IDEuNSAwIDAgMSA0IDExLjVWMTBhMiAyIDAgMCAxIDAtNFY0LjVDNCAzLjY3IDQuNjcgMyA1LjUgM0g3Wm0yLTFhMSAxIDAgMCAwLTEgMXYxSDUuNWEuNS41IDAgMCAwLS41LjVWN0g0YTEgMSAwIDAgMCAwIDJoMXYyLjVjMCAuMjguMjIuNS41LjVIOHYxYTEgMSAwIDAgMCAyIDB2LTFoMi41YS41LjUgMCAwIDAgLjUtLjVWMTBhMiAyIDAgMCAxIDAtNFY0LjVhLjUuNSAwIDAgMC0uNS0uNUgxMFYzYTEgMSAwIDAgMC0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVQaWVjZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMSAyYTIgMiAwIDAgMSAyIDJ2LjA2aDNhMSAxIDAgMCAxIDEgMVY4aC0xYTIgMiAwIDAgMC0yIDEuODVWMTBhMiAyIDAgMCAwIDEuODUgMkgxN3YzLjA2YTEgMSAwIDAgMS0xIDFoLTN2LjA5YTIgMiAwIDAgMS00LS4xSDZhMSAxIDAgMCAxLTEtMVYxMmEyIDIgMCAxIDEgMC00VjUuMDZhMSAxIDAgMCAxIDEtMWgzVjRjMC0xLjEuOS0yIDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFB1enpsZVBpZWNlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTEuMSAyYy0xLjA3LjA4LTEuOTQuOS0yLjA4IDEuOTRWNEg2LjM1QTEuNSAxLjUgMCAwIDAgNSA1LjV2Mi4yN2gtLjA2QTIuMjUgMi4yNSAwIDAgMCAzIDEwdi4xNmMuMDggMS4wNi45IDEuOTMgMS45NCAyLjA3SDV2Mi40MkExLjUgMS41IDAgMCAwIDYuNSAxNmgyLjAydi4wNkEyLjI1IDIuMjUgMCAwIDAgMTAuNzUgMThoLjE2YTIuMjUgMi4yNSAwIDAgMCAyLjA3LTEuOTRWMTZoMi41MmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTMuMjVoLTEuODdBMS4yNSAxLjI1IDAgMCAxIDE0IDEwdi0uMTJjLjA2LS42My42LTEuMTMgMS4yNS0xLjEzSDE3VjUuMzZBMS41IDEuNSAwIDAgMCAxNS41IDRoLTIuMDJ2LS4wNkEyLjI1IDIuMjUgMCAwIDAgMTEuMjUgMmgtLjE1Wm0uMTUgMWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVY1aDNsLjEuMDFhLjUuNSAwIDAgMSAuNC41djIuMjRoLS43NWMtMS4xNyAwLTIuMTUuOS0yLjI0IDIuMDdsLS4wMS4xNmMwIDEuMi45IDIuMTcgMi4wNyAyLjI2bC4xNi4wMUgxNnYyLjI1YS41LjUgMCAwIDEtLjUuNUgxMnYuNzVhMS4yNSAxLjI1IDAgMCAxLTIuNSAwVjE1aC0zYS41LjUgMCAwIDEtLjUtLjV2LTMuMjVoLS43NWExLjI1IDEuMjUgMCAwIDEgMC0yLjVINlY1LjVjMC0uMjcuMjMtLjUuNS0uNUgxMHYtLjc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlUGllY2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVQaWVjZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMgMmMxLjM2IDAgMi40NyAxLjEgMi40NyAyLjQ3VjVIMTlhMSAxIDAgMCAxIDEgMXYzLjVoLTEuNTNhMi40NyAyLjQ3IDAgMCAwLTIuNDYgMi4zbC0uMDEuMTd2LjA2YzAgMS4zMSAxLjAyIDIuMzggMi4zIDIuNDZsLjE3LjAxSDIwVjE4YTEgMSAwIDAgMS0xIDFoLTMuNTN2LjUzYTIuNDcgMi40NyAwIDEgMS00Ljk0IDBWMTlIN2ExIDEgMCAwIDEtMS0xdi0zLjUzaC0uNTNhMi40NyAyLjQ3IDAgMCAxIDAtNC45NEg2VjZhMSAxIDAgMCAxIDEtMWgzLjUzdi0uNTNDMTAuNTMgMy4xMSAxMS42MyAyIDEzIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVQaWVjZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdQdXp6bGVQaWVjZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzIDJhMyAzIDAgMCAxIDMgMi44MlY1aDIuMjVjLjg3IDAgMS41OS42MyAxLjczIDEuNDZsLjAxLjE1djMuODlIMThhMS41IDEuNSAwIDAgMC0xLjQ4IDEuMjRsLS4wMS4xM1YxMmMwIC43NC41MyAxLjM3IDEuMjMgMS40OGwuMTMuMDJIMjB2My43NWMwIC45Mi0uNyAxLjY3LTEuNiAxLjc1SDE2di4xN2EzIDMgMCAwIDEtMi42NCAyLjhsLS4xOC4wMkgxM2EzIDMgMCAwIDEtMy0yLjgxVjE5SDcuNzVjLS44NyAwLTEuNTktLjYzLTEuNzMtMS40NmwtLjAxLS4xNC0uMDEtLjE1VjE1aC0uMTZhMyAzIDAgMCAxLTIuOC0yLjY0bC0uMDItLjE4VjEyYTMgMyAwIDAgMSAyLjgyLTNINlY2Ljc1YzAtLjg3LjYzLTEuNTkgMS40Ni0xLjczbC4xNS0uMDEuMTQtLjAxSDEwdi0uMTdhMyAzIDAgMCAxIDIuNjQtMi44bC4xOC0uMDJIMTNabTAgMS41Yy0uNzggMC0xLjQyLjYtMS41IDEuMzZWNi41SDcuNzVhLjI1LjI1IDAgMCAwLS4yNC4ybC0uMDEuMDV2My43NUg2YTEuNSAxLjUgMCAwIDAtLjE0IDNINy41djMuNzVjMCAuMTIuMDguMjIuMi4yNWgzLjhWMTlhMS41IDEuNSAwIDAgMCAzIC4xNFYxNy41aDMuNzVjLjEyIDAgLjIyLS4wOC4yNC0uMTlWMTVoLS42OWEzIDMgMCAwIDEtMi44LTIuODV2LS4zNUEzIDMgMCAwIDEgMTcuODQgOWguNjdWNi43NWMwLS4xLS4wNS0uMTgtLjEzLS4yMmwtLjA2LS4wMi0uMDYtLjAxSDE0LjVWNWMwLS44Mi0uNjctMS41LTEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBQdXp6bGVQaWVjZVNoaWVsZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1B1enpsZVBpZWNlU2hpZWxkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDE1LjA2VjEyLjdjLjE4LjA4LjM2LjE1LjU1LjIxLjI5LjEuNjEuMS45IDBhNi43NyA2Ljc3IDAgMCAwIDMuMzktMi4zOEE2LjYzIDYuNjMgMCAwIDAgMTEgNi41OFY0LjA0bC0uMDItLjE5di0uMDRBMS40IDEuNCAwIDAgMCA5LjUgMi42NyAyIDIgMCAwIDEgMTMgNHYuMDZoM2ExIDEgMCAwIDEgMSAxVjhoLTFhMiAyIDAgMCAwLTIgMS44NVYxMGEyIDIgMCAwIDAgMS44NSAySDE3djMuMDZhMSAxIDAgMCAxLTEgMWgtM3YuMDlhMiAyIDAgMCAxLTQtLjFINmExIDEgMCAwIDEtMS0xWk04IDMuMzVhNC4wNiA0LjA2IDAgMCAwIDEuNi4zMmMuMiAwIC4zNS4xNC40LjMzdjIuNThjMCAyLjY5LTEuMzEgNC41MS0zLjg3IDUuNGEuMzguMzggMCAwIDEtLjI2IDBBNi42NiA2LjY2IDAgMCAxIDQgMTFjLS4zOS0uMy0uNzItLjYzLS45OS0xYTUuNSA1LjUgMCAwIDEtMS0zLjE1TDIgNi41OHYtMi41YS40LjQgMCAwIDEgLjQtLjQxIDQuNSA0LjUgMCAwIDAgMy4zMi0xLjU1LjM5LjM5IDAgMCAxIC41NiAwQzYuODIgMi43IDcuNCAzLjEgOCAzLjM1WlwiXSk7XG5leHBvcnQgY29uc3QgUHV6emxlUGllY2VTaGllbGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUHV6emxlUGllY2VTaGllbGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDE0LjV2LTEuNzlhOSA5IDAgMCAwIC41NC4yMWMuMTUuMDUuMy4wOC40Ni4wOHYxLjVjMCAuMjguMjIuNS41LjVoM3YuNzVhMS4yNSAxLjI1IDAgMCAwIDIuNSAwVjE1aDMuNWEuNS41IDAgMCAwIC41LS41di0yLjI1SDE1LjA2QTIuMjUgMi4yNSAwIDAgMSAxMyA5Ljk3di0uMTZhMi4yNSAyLjI1IDAgMCAxIDIuMjUtMi4wN0gxNlY1LjVhLjUuNSAwIDAgMC0uNDEtLjQ5SDEyLjV2LS43NmExLjI1IDEuMjUgMCAwIDAtMS44NS0xLjFjLS4yNC0uMjgtLjU5LS40Ny0xLS40OC4zNy0uMzguODgtLjYzIDEuNDQtLjY2bC4xNi0uMDFjMS4xNCAwIDIuMDguODUgMi4yMyAxLjk0VjRoMi4wMmMuNzggMCAxLjQyLjYgMS41IDEuMzZ2My4zOWgtMS43NWMtLjY1IDAtMS4yLjUtMS4yNSAxLjEzVjEwYzAgLjY1LjUgMS4yIDEuMTMgMS4yNGwuMTIuMDFIMTd2My4yNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTIuNTJ2LjA2YTIuMjUgMi4yNSAwIDAgMS0yLjA4IDEuOTNsLS4xNS4wMWEyLjI1IDIuMjUgMCAwIDEtMi4yMy0xLjk0VjE2SDYuNUExLjUgMS41IDAgMCAxIDUgMTQuNjV2LS4xNVpNOCAzLjM1YTQuMDYgNC4wNiAwIDAgMCAxLjYuMzJjLjIgMCAuMzUuMTQuNC4zM3YyLjU4YzAgMi42OS0xLjMxIDQuNTEtMy44NyA1LjRhLjM4LjM4IDAgMCAxLS4yNiAwQTYuNjYgNi42NiAwIDAgMSA0IDExYy0uMzktLjMtLjcyLS42My0uOTktMWE1LjUgNS41IDAgMCAxLTEtMy4xNUwyIDYuNTh2LTIuNWEuNC40IDAgMCAxIC40LS40MSA0LjUgNC41IDAgMCAwIDMuMzItMS41NS4zOS4zOSAwIDAgMSAuNTYgMEM2LjgyIDIuNyA3LjQgMy4xIDggMy4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFFyQ29kZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1FyQ29kZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgMTFoLTJ2MmgydjJoLTJ2Mmgydi0yaDJ2Mmgydi0yaC0ydi0yaDJ2LTJoLTJ2MmgtMnYtMlpNNSA1aDJ2Mkg1VjVabTAtMmEyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmgyYTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVabS0uNzUgMS43NWMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNWgtMi41YS41LjUgMCAwIDEtLjUtLjV2LTIuNVpNNSAxM2gydjJINXYtMlptMC0yYTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0ySDVabS0uNzUgMS43NWMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNWgtMi41YS41LjUgMCAwIDEtLjUtLjV2LTIuNVpNMTMgNWgydjJoLTJWNVptMC0yYTIgMiAwIDAgMC0yIDJ2MmMwIDEuMS45IDIgMiAyaDJhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJoLTJabS0uNzUgMS43NWMwLS4yOC4yMi0uNS41LS41aDIuNWMuMjggMCAuNS4yMi41LjV2Mi41YS41LjUgMCAwIDEtLjUuNWgtMi41YS41LjUgMCAwIDEtLjUtLjV2LTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFFyQ29kZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRckNvZGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMSAxNWgydjJoLTJ2LTJabTQgMGgydjJoLTJ2LTJabS00LTRoMnYyaC0ydi0yWm0yIDJoMnYyaC0ydi0yWm0yLTJoMnYyaC0ydi0yWk0zIDVjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1Wm0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUg1Wm0wIDFoMnYySDVWNVptLTIgOGMwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yWm0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFINVptMCAxaDJ2Mkg1di0yWm02LThjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJWNVptMi0xYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFoLTJabTAgMWgydjJoLTJWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFFyQ29kZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1FyQ29kZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOCA2SDZ2MmgyVjZabS01LS41QTIuNSAyLjUgMCAwIDEgNS41IDNoM0EyLjUgMi41IDAgMCAxIDExIDUuNXYzQTIuNSAyLjUgMCAwIDEgOC41IDExaC0zQTIuNSAyLjUgMCAwIDEgMyA4LjV2LTNaTTUuNSA1YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zWk02IDE2aDJ2Mkg2di0yWm0tMy0uNUEyLjUgMi41IDAgMCAxIDUuNSAxM2gzYTIuNSAyLjUgMCAwIDEgMi41IDIuNXYzQTIuNSAyLjUgMCAwIDEgOC41IDIxaC0zQTIuNSAyLjUgMCAwIDEgMyAxOC41di0zWm0yLjUtLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTNaTTE4IDZoLTJ2MmgyVjZabS0yLjUtM0EyLjUgMi41IDAgMCAwIDEzIDUuNXYzYTIuNSAyLjUgMCAwIDAgMi41IDIuNWgzQTIuNSAyLjUgMCAwIDAgMjEgOC41di0zQTIuNSAyLjUgMCAwIDAgMTguNSAzaC0zWk0xNSA1LjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0zWk0xMyAxM2gyLjc1djIuNzVIMTNWMTNabTUuMjUgMi43NWgtMi41djIuNUgxM1YyMWgyLjc1di0yLjc1aDIuNVYyMUgyMXYtMi43NWgtMi43NXYtMi41Wm0wIDBWMTNIMjF2Mi43NWgtMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFFyQ29kZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRckNvZGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04IDZINnYyaDJWNlptLTUtLjc1QzMgNC4wMSA0IDMgNS4yNSAzaDMuNUM5Ljk5IDMgMTEgNCAxMSA1LjI1djMuNUMxMSA5Ljk5IDEwIDExIDguNzUgMTFoLTMuNUM0LjAxIDExIDMgMTAgMyA4Ljc1di0zLjVabTIuMjUtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2My41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMy41YS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjVaTTYgMTZoMnYySDZ2LTJabS0zLS43NUMzIDE0LjAxIDQgMTMgNS4yNSAxM2gzLjVDOS45OSAxMyAxMSAxNCAxMSAxNS4yNXYzLjVDMTEgMTkuOTkgMTAgMjEgOC43NSAyMWgtMy41QzQuMDEgMjEgMyAyMCAzIDE4Ljc1di0zLjVabTIuMjUtLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2My41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtMy41YS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjVaTTE4IDZoLTJ2MmgyVjZabS0yLjc1LTNDMTQuMDEgMyAxMyA0IDEzIDUuMjV2My41QzEzIDkuOTkgMTQgMTEgMTUuMjUgMTFoMy41QzE5Ljk5IDExIDIxIDEwIDIxIDguNzV2LTMuNUMyMSA0LjAxIDIwIDMgMTguNzUgM2gtMy41Wm0tLjc1IDIuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTMuNVpNMTMgMTNoMi43NXYyLjc1SDEzVjEzWm01LjI1IDIuNzVoLTIuNXYyLjVIMTNWMjFoMi43NXYtMi43NWgyLjVWMjFIMjF2LTIuNzVoLTIuNzV2LTIuNVptMCAwVjEzSDIxdjIuNzVoLTIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBRckNvZGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRckNvZGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4LjMzIDE1djMuMzNoMy4zNHYzLjM0SDI1VjI1aC0zLjMzdi0zLjMzaC0zLjM0VjI1SDE1di0zLjMzaDMuMzN2LTMuMzRIMTVWMTVoMy4zM1ptLTcuODMgMGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVBMi41IDIuNSAwIDAgMSAzIDIyLjV2LTVBMi41IDIuNSAwIDAgMSA1LjUgMTVoNVptMCAyaC01YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41Wm0tLjc1IDEuMjV2My41aC0zLjV2LTMuNWgzLjVaTTI1IDE1djMuMzNoLTMuMzNWMTVIMjVaTTEwLjUgM0EyLjUgMi41IDAgMCAxIDEzIDUuNXY1YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNUEyLjUgMi41IDAgMCAxIDMgMTAuNXYtNUEyLjUgMi41IDAgMCAxIDUuNSAzaDVabTEyIDBBMi41IDIuNSAwIDAgMSAyNSA1LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTVhMi41IDIuNSAwIDAgMS0yLjUtMi41di01QTIuNSAyLjUgMCAwIDEgMTcuNSAzaDVabS0xMiAyaC01YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41Wm0xMiAwaC01YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41Wm0tLjc1IDEuMjV2My41aC0zLjV2LTMuNWgzLjVabS0xMiAwdjMuNWgtMy41di0zLjVoMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUXJDb2RlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1FyQ29kZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEwLjc1IDE1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djUuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNS41QzQuMDEgMjUgMyAyNCAzIDIyLjc1di01LjVDMyAxNi4wMSA0IDE1IDUuMjUgMTVoNS41Wm03LjU4IDB2My4zM2gzLjM0djMuMzRoLTMuMzRWMjVIMTV2LTMuMzNoMy4zM3YtMy4zNEgxNVYxNWgzLjMzWk0yNSAyMS42N1YyNWgtMy4zM3YtMy4zM0gyNVpNMTAuNzUgMTYuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzV2NS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNS41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0tMS4yNSAydjNoLTN2LTNoM1pNMjUgMTV2My4zM2gtMy4zM1YxNUgyNVpNMTAuNzUgM0MxMS45OSAzIDEzIDQgMTMgNS4yNXY1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTUuNUM0LjAxIDEzIDMgMTIgMyAxMC43NXYtNS41QzMgNC4wMSA0IDMgNS4yNSAzaDUuNVptMTIgMEMyMy45OSAzIDI1IDQgMjUgNS4yNXY1LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTUuNUMxNi4wMSAxMyAxNSAxMiAxNSAxMC43NXYtNS41QzE1IDQuMDEgMTYgMyAxNy4yNSAzaDUuNVptLTEyIDEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzV2NS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtNS41YS43NS43NSAwIDAgMC0uNzUtLjc1Wm0xMiAwaC01LjVhLjc1Ljc1IDAgMCAwLS43NS43NXY1LjVjMCAuNDEuMzQuNzUuNzUuNzVoNS41Yy40MSAwIC43NS0uMzQuNzUtLjc1di01LjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVaTTkuNSA2LjV2M2gtM3YtM2gzWm0xMiAwdjNoLTN2LTNoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMmEzIDMgMCAwIDAtMyAzIC43NS43NSAwIDAgMCAxLjUgMCAxLjUgMS41IDAgMCAxIDMgMGMwIC42NS0uMTIgMS4wMi0uMjUgMS4yNS0uMTQuMjQtLjMzLjQtLjYuNjRsLS4wNi4wNWMtLjI2LjIxLS42LjUtLjg4LjkzLS4zLjQ5LS40NiAxLjA4LS40NiAxLjg4di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVjMC0uNTguMTItLjg5LjI0LTEuMDguMTMtLjIyLjMxLS4zNy42Mi0uNjMuMjgtLjIzLjY2LS41NS45NC0xLjA1LjI5LS41LjQ1LTEuMTQuNDUtMS45OWEzIDMgMCAwIDAtMy0zWm0wIDEyLjI1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAyYTMgMyAwIDAgMC0zIDMgLjUuNSAwIDAgMCAxIDAgMiAyIDAgMCAxIDQgMGMwIC42OC0uMTQgMS4wOC0uMzEgMS4zNi0uMTkuMy0uNDMuNS0uNzUuNzVsLS4wMi4wMmMtLjMuMjQtLjY3LjUzLS45NS45OC0uMy40Ny0uNDcgMS4wNy0uNDcgMS44OXYuNWEuNS41IDAgMCAwIDEgMFYxMGMwLS42OC4xNC0xLjA4LjMxLTEuMzYuMTktLjMuNDMtLjUuNzUtLjc1bC4wMi0uMDJjLjMtLjI0LjY3LS41My45NS0uOTguMy0uNDcuNDctMS4wNy40Ny0xLjg5YTMgMyAwIDAgMC0zLTNabTAgMTJhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgM2E0IDQgMCAwIDAtNCA0IC43NS43NSAwIDAgMCAxLjUgMEEyLjUgMi41IDAgMCAxIDEwIDQuNSAyLjUgMi41IDAgMCAxIDEyLjUgN2MwIC42LS4xNi45Ny0uMzcgMS4yN2E1IDUgMCAwIDEtLjk3LjkyYy0uNC4zMy0uOS43My0xLjI4IDEuMy0uMzkuNTgtLjYzIDEuMy0uNjMgMi4yNnYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YzAtLjY3LjE2LTEuMS4zOC0xLjQzLjIzLS4zNS41NS0uNjIuOTctLjk2bC4wNi0uMDVjLjM4LS4zLjg0LS42NyAxLjItMS4xN0MxMy43NCA4LjYgMTQgNy45IDE0IDdhNCA0IDAgMCAwLTQtNFptMCAxNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDNhNCA0IDAgMCAwLTQgNCAuNS41IDAgMCAwIDEgMCAzIDMgMCAwIDEgNiAwYzAgMS4yNS0uNyAxLjg2LTEuNTggMi42MmwtLjAzLjAzYy0uODYuNzMtMS44OSAxLjYyLTEuODkgMy4zNXYuNWEuNS41IDAgMCAwIDEgMFYxM2MwLTEuMjUuNy0xLjg2IDEuNTgtMi42MmwuMDMtLjAzQzEyLjk3IDkuNjIgMTQgOC43MyAxNCA3YTQgNCAwIDAgMC00LTRabTAgMTRhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgNGE1IDUgMCAwIDAtNSA1IDEgMSAwIDAgMCAyIDAgMyAzIDAgMSAxIDYgMGMwIC44Mi0uMiAxLjMtLjQ0IDEuNjMtLjI2LjM2LS42Mi42NC0xLjEzLjk4bC0uMTEuMDhjLS40NS4zLTEuMDIuNy0xLjQ3IDEuMjVBMy44OSAzLjg5IDAgMCAwIDExIDE1LjV2LjVhMSAxIDAgMSAwIDIgMHYtLjVjMC0uNjYuMTgtMS4wMi40LTEuMy4yNi0uMzEuNi0uNTUgMS4xMS0uOWwuMDYtLjA0YTYuMiA2LjIgMCAwIDAgMS42Mi0xLjQ3Yy41LS43LjgxLTEuNi44MS0yLjc5YTUgNSAwIDAgMC01LTVabTAgMTcuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDEuMjUgMS4yNSAwIDAgMCAwIDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgNGE1IDUgMCAwIDAtNSA1IC43NS43NSAwIDAgMCAxLjUgMCAzLjUgMy41IDAgMSAxIDcgMGMwIC44NS0uMjIgMS40Mi0uNTMgMS44NmE1LjgyIDUuODIgMCAwIDEtMS40NCAxLjM0Yy0xIC43Ny0yLjI4IDEuNzMtMi4yOCAzLjh2LjI1YS43NS43NSAwIDAgMCAxLjUgMFYxNmMwLTEuMzIuNzEtMS44NiAxLjc5LTIuNjhsLjA0LS4wNGMuNTMtLjQgMS4xNS0uODggMS42Mi0xLjU2QTUgNSAwIDAgMCAxMiA0Wm0wIDE3YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDRhNiA2IDAgMCAwLTYgNiAxIDEgMCAxIDAgMiAwIDQgNCAwIDAgMSA4IDBjMCAxLjA2LS4yNiAxLjc0LS42MSAyLjI3LS4zNi41My0uODQuOTUtMS40NCAxLjQ4bC0uMS4xYTguODUgOC44NSAwIDAgMC0xLjkzIDIuMTQgNy4xNSA3LjE1IDAgMCAwLS45MiAzLjc2VjIwYTEgMSAwIDEgMCAyIDB2LS4yNWMwLTEuMjguMjgtMi4xMi42NC0yLjc0YTYuOTQgNi45NCAwIDAgMSAxLjY2LTEuNzljLjU3LS41IDEuMjQtMS4wNyAxLjc1LTEuODQuNTgtLjg3Ljk1LTEuOTQuOTUtMy4zOGE2IDYgMCAwIDAtNi02Wm0wIDIxLjI1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDRhNiA2IDAgMCAwLTYgNiAuNzUuNzUgMCAwIDAgMS41IDAgNC41IDQuNSAwIDEgMSA5IDBjMCAxLjM4LS4zIDIuMjMtLjcgMi44NGE2LjUzIDYuNTMgMCAwIDEtMS42MyAxLjU2bC0uMDMuMDNjLS42NC40OC0xLjM4IDEuMDUtMS45NSAxLjktLjU4LjktLjk0IDIuMDUtLjk0IDMuNjd2LjI1YS43NS43NSAwIDAgMCAxLjUgMFYyMGMwLTEuMzguMy0yLjIzLjctMi44NC40LS42My45Ni0xLjA1IDEuNjMtMS41NmwuMDMtLjAzYTcuODIgNy44MiAwIDAgMCAxLjk1LTEuOWMuNTgtLjkuOTQtMi4wNS45NC0zLjY3YTYgNiAwIDAgMC02LTZabTAgMjFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbjMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTEuNSAxMC44YTQuNSA0LjUgMCAwIDEgOSAuMmMwIDEuMjgtLjMgMi4wMi0uNjggMi41NmE3LjcgNy43IDAgMCAxLTEuNDcgMS40NmwtLjI4LjI1YTkuMDMgOS4wMyAwIDAgMC0yLjI3IDIuNjIgOS45NiA5Ljk2IDAgMCAwLTEuMDUgNC44NiAxLjI1IDEuMjUgMCAwIDAgMi41IDBjMC0xLjc4LjMzLTIuOS43NS0zLjY3YTYuNiA2LjYgMCAwIDEgMS45NC0yLjEyYy42Mi0uNTIgMS4zNy0xLjE0IDEuOTQtMS45N0E2LjcxIDYuNzEgMCAwIDAgMjMgMTFhNyA3IDAgMCAwLTE0LS4zIDEuMjUgMS4yNSAwIDEgMCAyLjUuMVpNMTYgMjlhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbjMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb24zMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTAgMTFhNiA2IDAgMCAxIDEyIDBjMCAxLjY4LS4zOCAyLjctLjkyIDMuNDMtLjUuNy0xLjE2IDEuMTctMS45IDEuN2wtLjIyLjE3Yy0uODIuNi0xLjcgMS4yOC0yLjM3IDIuNC0uNjcgMS4xMS0xLjA5IDIuNjEtMS4wOSA0LjhhLjUuNSAwIDAgMCAxIDBjMC0yLjA2LjQtMy4zNy45NC00LjNhNy4wOSA3LjA5IDAgMCAxIDIuMzQtMi4yNiA4Ljg0IDguODQgMCAwIDAgMi4xLTEuOTJBNi41MyA2LjUzIDAgMCAwIDIzIDExYTcgNyAwIDEgMC0xNCAwIC41LjUgMCAwIDAgMSAwWm02IDE4YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTEgMTFhNSA1IDAgMCAxIDEwIDBjMCAxLjQ2LS4zMyAyLjMxLS43NiAyLjkyLS40MS42LS45NSAxLjAxLTEuNjMgMS41NWwtLjIzLjE4YTguNTYgOC41NiAwIDAgMC0yLjMxIDIuNTJBOS41NCA5LjU0IDAgMCAwIDE1IDIzYTEgMSAwIDEgMCAyIDBjMC0xLjg3LjM1LTMuMDQuOC0zLjg0YTYuNjIgNi42MiAwIDAgMSAxLjgyLTEuOTRsLjIzLS4xOGMuNjYtLjUyIDEuNDQtMS4xMiAyLjAzLTEuOTdBNi44IDYuOCAwIDAgMCAyMyAxMWE3IDcgMCAxIDAtMTQgMCAxIDEgMCAxIDAgMiAwWm01IDE3Ljc1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA1Yy01LjU1IDAtMTAgNC41MS0xMCAxMC4yNWExLjUgMS41IDAgMCAwIDMgMEE3LjA2IDcuMDYgMCAwIDEgMjQgOGMzLjgzIDAgNyAzLjExIDcgNy4yNSAwIDEuODQtLjQ1IDIuODUtMS4wMiAzLjYtLjQ4LjYzLTEuMDMgMS4wOS0xLjczIDEuNjhsLTEgLjg1YTEyLjI1IDEyLjI1IDAgMCAwLTMuMyA0LjM3Yy0uOSAyLjA0LTEuNDUgNC43My0xLjQ1IDguNXYuMjVhMS41IDEuNSAwIDAgMCAzIDB2LS4yNWMwLTMuNDguNTEtNS43MyAxLjItNy4yOGE5LjI3IDkuMjcgMCAwIDEgMi41NC0zLjM1Yy4yMi0uMTguNDYtLjM4LjctLjYuOC0uNjYgMS43My0xLjQzIDIuNDMtMi4zNSAxLjAxLTEuMzMgMS42My0zIDEuNjMtNS40MkMzNCA5LjUxIDI5LjU1IDUgMjQgNVptMCAzN2ExLjc1IDEuNzUgMCAxIDAgMC0zLjUgMS43NSAxLjc1IDAgMCAwIDAgMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb240OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCA1LjVhMTAgMTAgMCAwIDAtMTAgMTAgMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDcuNSA3LjUgMCAwIDEgMTUgMGMwIDEuODgtLjQ3IDIuOTQtMS4xIDMuNzQtLjUxLjY2LTEuMSAxLjE0LTEuODUgMS43NGwtLjk5LjgyYy0xLjE3IDEtMi40IDIuMjctMy4zMyA0LjI5LS45MiAyLTEuNDggNC42Ni0xLjQ4IDguNDF2LjI1YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtLjI1YzAtMy41LjUzLTUuNzggMS4yNS03LjM3YTkuNTYgOS41NiAwIDAgMSAyLjY5LTMuNDNsLjc1LS42MmMuODItLjY2IDEuNzMtMS40IDIuNDMtMi4zIDEtMS4yOCAxLjYzLTIuOSAxLjYzLTUuMjhhMTAgMTAgMCAwIDAtMTAtMTBaTTI0IDQyYTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGUxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbkNpcmNsZTEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA2IDFabS41IDcuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNNSA0Ljc1YS41LjUgMCAwIDEtMSAwYzAtLjU5LjI3LTEuMDQuNjctMS4zNEM1LjA1IDMuMTMgNS41NCAzIDYgM2MuNDYgMCAuOTUuMTIgMS4zMy40MS40LjMuNjcuNzUuNjcgMS4zNCAwIC40My0uMTQuNzYtLjM3IDEtLjE4LjItLjQxLjM0LS41OC40M0w3IDYuMjFjLS4xOS4xMS0uMy4xOS0uMzcuMjktLjA2LjA4LS4xMy4yMi0uMTMuNWEuNS41IDAgMCAxLTEgMGMwLS40Ny4xMi0uODMuMzQtMS4xMS4yLS4yNy40Ny0uNDMuNjYtLjU0bC4wMy0uMDJjLjItLjExLjMtLjE3LjM3LS4yNS4wNS0uMDUuMS0uMTMuMS0uMzMgMC0uMjUtLjEtLjQyLS4yNy0uNTRBMS4yNSAxLjI1IDAgMCAwIDYgNGMtLjI5IDAtLjU1LjA4LS43My4yMWEuNjMuNjMgMCAwIDAtLjI3LjU0WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGUxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb25DaXJjbGUxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk01LjI3IDQuMjFhLjYzLjYzIDAgMCAwLS4yNy41NC41LjUgMCAwIDEtMSAwYzAtLjU5LjI3LTEuMDQuNjctMS4zNEM1LjA1IDMuMTIgNS41NCAzIDYgM2MuNDYgMCAuOTUuMTIgMS4zMy40LjQuMy42Ny43Ni42NyAxLjM1IDAgLjQzLS4xNC43Ni0uMzcgMS0uMTguMi0uNDEuMzQtLjU4LjQzTDcgNi4yMWMtLjE5LjExLS4zLjE5LS4zNy4yOC0uMDYuMDktLjEzLjIyLS4xMy41YS41LjUgMCAwIDEtMSAwYzAtLjQ2LjEyLS44Mi4zNC0xLjEuMi0uMjcuNDctLjQzLjY2LS41NGwuMDMtLjAyYy4yLS4xMS4zLS4xNy4zNy0uMjUuMDUtLjA1LjEtLjEzLjEtLjMzIDAtLjI1LS4xLS40Mi0uMjctLjU0QTEuMjUgMS4yNSAwIDAgMCA2IDRjLS4yOSAwLS41NS4wOC0uNzMuMjFaTTYgOWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNMSA2YTUgNSAwIDEgMSAxMCAwQTUgNSAwIDAgMSAxIDZabTUtNGE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLThaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbkNpcmNsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uQ2lyY2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCA4LjVBLjc1Ljc1IDAgMSAwIDggMTJhLjc1Ljc1IDAgMCAwIDAtMS41Wm0wLTZhMiAyIDAgMCAwLTIgMiAuNS41IDAgMCAwIDEgMCAxIDEgMCAwIDEgMiAwYzAgLjM3LS4wOC41OC0uMzcuOWwtLjExLjEyLS4yNy4yN2MtLjU0LjU3LS43NS45OC0uNzUgMS43MWEuNS41IDAgMCAwIDEgMGMwLS4zNy4wOC0uNTguMzctLjlsLjExLS4xMi4yNy0uMjdjLjU0LS41Ny43NS0uOTguNzUtMS43MWEyIDIgMCAwIDAtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb25DaXJjbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMCAxYTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA4IDNabTAgNy41QS43NS43NSAwIDEgMSA4IDEyYS43NS43NSAwIDAgMSAwLTEuNVptMC02YTIgMiAwIDAgMSAyIDJjMCAuNzMtLjIxIDEuMTQtLjc1IDEuN2wtLjI3LjI4Yy0uMzguNC0uNDguNi0uNDggMS4wMmEuNS41IDAgMCAxLTEgMGMwLS43My4yMS0xLjE0Ljc1LTEuN2wuMjctLjI4Yy4zOC0uNC40OC0uNi40OC0xLjAyYTEgMSAwIDAgMC0yIDAgLjUuNSAwIDAgMS0xIDBjMC0xLjEuOS0yIDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uQ2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb25DaXJjbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDJhOCA4IDAgMSAxIDAgMTYgOCA4IDAgMCAxIDAtMTZabTAgMTEuNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVabTAtOEEyLjUgMi41IDAgMCAwIDcuNSA4YS41LjUgMCAwIDAgMSAwIDEuNSAxLjUgMCAxIDEgMi42My45OGwtLjEuMTEtLjEyLjEtLjI1LjE5QTMuMiAzLjIgMCAwIDAgOS41IDEyYS41LjUgMCAwIDAgMSAwYzAtLjc2LjItMS4yNS41My0xLjYxbC4wOC0uMDguMDgtLjA3LjA5LS4wNy4yMi0uMTcuMTUtLjEyQTIuNSAyLjUgMCAwIDAgMTAgNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb25DaXJjbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMSAwIDE2IDggOCAwIDAgMSAwLTE2Wm0wIDFhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabTAgMTAuNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVabTAtOGEyLjUgMi41IDAgMCAxIDEuNjUgNC4zOGwtLjE1LjEyLS4yMi4xNy0uMDkuMDctLjE2LjE1Yy0uMzMuMzYtLjUzLjg1LS41MyAxLjYxYS41LjUgMCAwIDEtMSAwIDMuMiAzLjIgMCAwIDEgMS4xNi0yLjYybC4yNS0uMTkuMTItLjFBMS41IDEuNSAwIDAgMCAxMCA2LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgMTAgNS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbkNpcmNsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBabTAgMTMuNWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTAtOC43NUEyLjc1IDIuNzUgMCAwIDAgOS4yNSA5LjVhLjc1Ljc1IDAgMCAwIDEuNS4xdi0uMWExLjI1IDEuMjUgMCAxIDEgMi41IDBjMCAuNTQtLjEzLjgtLjY0IDEuMzNsLS4xNC4xNGMtLjg4Ljg4LTEuMjIgMS40NS0xLjIyIDIuNTNhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtLjU0LjEzLS44LjY0LTEuMzNsLjE0LS4xNGMuODgtLjg4IDEuMjItMS40NSAxLjIyLTIuNTNBMi43NSAyLjc1IDAgMCAwIDEyIDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbkNpcmNsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbkNpcmNsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNjdhOC4zNCA4LjM0IDAgMCAwIDAgMTYuNjYgOC4zNCA4LjM0IDAgMCAwIDAtMTYuNjZabTAgMTEuODNhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0wLTguNzVhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NWMwIDEuMDEtLjMgMS41Ny0xLjA1IDIuMzZsLS4xNy4xN2MtLjYyLjYyLS43OC44OS0uNzggMS40N2EuNzUuNzUgMCAwIDEtMS41IDBjMC0xLjAxLjMtMS41NyAxLjA1LTIuMzZsLjE3LS4xN2MuNjItLjYyLjc4LS44OS43OC0xLjQ3YTEuMjUgMS4yNSAwIDAgMC0yLjUtLjEzdi4xM2EuNzUuNzUgMCAwIDEtMS41IDBBMi43NSAyLjc1IDAgMCAxIDEyIDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbkNpcmNsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uQ2lyY2xlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAyYTEyIDEyIDAgMSAxIDAgMjQgMTIgMTIgMCAwIDEgMC0yNFptMCAxNi41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNSAxLjI1IDEuMjUgMCAwIDAgMC0yLjVabTAtMTEuNzVhMy44NSAzLjg1IDAgMCAwLTMuNzUgMy43NS43NS43NSAwIDAgMCAxLjUgMGMwLTEuMTggMS4xLTIuMjUgMi4yNS0yLjI1YTIuMzYgMi4zNiAwIDAgMSAyLjI1IDIuMjVjMCAuODgtLjI0IDEuMzgtLjkzIDIuMDhsLS4xNi4xNS0uNTcuNTJjLS45NC45LTEuMzQgMS42LTEuMzQgMi43NWEuNzUuNzUgMCAwIDAgMS41IDBjMC0uNjUuMjEtMS4wMy44OS0xLjY3bC4xNi0uMTUuMi0uMTkuMi0uMThjMS4wOC0xLjA0IDEuNTUtMS44OCAxLjU1LTMuMzFBMy44NSAzLjg1IDAgMCAwIDE0IDYuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWVzdGlvbkNpcmNsZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbkNpcmNsZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDJhMTIgMTIgMCAxIDEgMCAyNCAxMiAxMiAwIDAgMSAwLTI0Wm0wIDEuNWExMC41IDEwLjUgMCAxIDAgMCAyMSAxMC41IDEwLjUgMCAwIDAgMC0yMVptMCAxNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41Wm0wLTExLjc1YTMuODUgMy44NSAwIDAgMSAzLjc1IDMuNzVjMCAxLjQzLS40NyAyLjI3LTEuNTUgMy4zTDE2IDE0bC0uMi4xOWMtLjguNzQtMS4wNSAxLjEyLTEuMDUgMS44MmEuNzUuNzUgMCAwIDEtMS41IDBjMC0xLjE1LjQtMS44NCAxLjM0LTIuNzVsLjU3LS41MmMuODEtLjc4IDEuMDktMS4yOSAxLjA5LTIuMjMgMC0xLjE4LTEuMS0yLjI1LTIuMjUtMi4yNWEyLjM2IDIuMzYgMCAwIDAtMi4yNSAyLjI1Ljc1Ljc1IDAgMCAxLTEuNSAwQTMuODUgMy44NSAwIDAgMSAxNCA2Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbkNpcmNsZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTYgMmExNCAxNCAwIDEgMSAwIDI4IDE0IDE0IDAgMCAxIDAtMjhabTEuNSAyMGExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMFpNMTQgMTJjMC0uNTQuMTgtMS4wNC41LTEuNC4zLS4zNC43Ny0uNiAxLjUtLjYgMS4zIDAgMi4zOCAxLjM1IDIuMDMgMi43Ni0uMTguNzItLjYxIDEuMTMtMS4yNiAxLjc1LS4wNS4wNi0uMTEuMTItLjE4LjE3LS43Mi43LTEuNTkgMS42NS0xLjU5IDMuMzJhMSAxIDAgMSAwIDIgMGMwLS44My4zNS0xLjI3Ljk4LTEuODhsLjItLjE4YTUuNSA1LjUgMCAwIDAgMS43OS0yLjdBNC4yIDQuMiAwIDAgMCAxNiA4YTMuOSAzLjkgMCAwIDAtMyAxLjI3QTQuMSA0LjEgMCAwIDAgMTIgMTJhMSAxIDAgMSAwIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uQ2lyY2xlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1ZXN0aW9uQ2lyY2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTcuNSAyMmExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpNMTQgMTJjMC0uNTQuMTgtMS4wNC41LTEuNC4zLS4zNC43Ny0uNiAxLjUtLjYgMS4zIDAgMi4zOCAxLjM1IDIuMDMgMi43Ni0uMTguNzItLjYxIDEuMTMtMS4yNiAxLjc1LS4wNS4wNi0uMTEuMTItLjE4LjE3LS43Mi43LTEuNTkgMS42NS0xLjU5IDMuMzJhMSAxIDAgMSAwIDIgMGMwLS44My4zNS0xLjI3Ljk4LTEuODhsLjItLjE4YTUuNSA1LjUgMCAwIDAgMS43OS0yLjdBNC4yIDQuMiAwIDAgMCAxNiA4YTMuOSAzLjkgMCAwIDAtMyAxLjI3QTQuMSA0LjEgMCAwIDAgMTIgMTJhMSAxIDAgMSAwIDIgMFpNMiAxNmExNCAxNCAwIDEgMSAyOCAwIDE0IDE0IDAgMCAxLTI4IDBaTTE2IDRhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0WlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWVzdGlvbkNpcmNsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjQgNGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMCAxIDAtNDBabS4yNSAyOGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1ptMC0xOUE2LjM3IDYuMzcgMCAwIDAgMTggMTkuMjVhMS4yNSAxLjI1IDAgMCAwIDIuNDcuMjVsLjAyLS4xMi4wMi0uMzJhMy44OCAzLjg4IDAgMCAxIDMuNzQtMy41NkEzLjg3IDMuODcgMCAwIDEgMjggMTkuMjVjMCAxLjE5LS40MiAyLjA0LTEuNjIgMy40bC0uMi4yMy0xLjAzIDEuMWMtMS42NCAxLjc3LTIuMzIgMi45OS0yLjMxIDQuNzhhMS4yNSAxLjI1IDAgMCAwIDIuNDQuMzVsLjAzLS4xMi4wMi0uMTJ2LS4xM2wuMDEtLjE2Yy4wNC0uOC40LTEuNDkgMS4yOC0yLjVsLjE5LS4yMiAxLjAxLTEuMDhjMS45MS0yLjA2IDIuNjgtMy40MSAyLjY4LTUuNTNBNi4zNiA2LjM2IDAgMCAwIDI0LjI1IDEzWlwiXSk7XG5leHBvcnQgY29uc3QgUXVlc3Rpb25DaXJjbGU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVlc3Rpb25DaXJjbGU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCA0YTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAwIDEgMC00MFptMCAyLjVhMTcuNSAxNy41IDAgMSAwIDAgMzUgMTcuNSAxNy41IDAgMCAwIDAtMzVabS4yNSAyNS41YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm0wLTE5YTYuMzYgNi4zNiAwIDAgMSA2LjI1IDYuMjVjMCAyLjEyLS43NyAzLjQ3LTIuNjggNS41M2wtMS4wMSAxLjA4Yy0xLjAzIDEuMTQtMS40MyAxLjg3LTEuNDcgMi43MlYyOC44N2wtLjAzLjEyYTEuMjUgMS4yNSAwIDAgMS0yLjQ3LS4yM2MtLjAxLTEuNzkuNjctMy4wMSAyLjMtNC43OWwxLjAzLTEuMUMyNy41MyAyMS4zOSAyOCAyMC41IDI4IDE5LjI2YTMuODcgMy44NyAwIDAgMC0zLjc1LTMuNzUgMy44OCAzLjg4IDAgMCAwLTMuNzQgMy41NmwtLjAyLjMyYTEuMjUgMS4yNSAwIDAgMS0yLjQ5LS4xM0E2LjM3IDYuMzcgMCAwIDEgMjQuMjUgMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWl6TmV3MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVpek5ldzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWE1LjQ4IDUuNDggMCAwIDEtLjQtNEg1LjVhLjUuNSAwIDAgMSAwLTFoNC4xQTUuNSA1LjUgMCAwIDEgMTcgOS42VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptMCAxMWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xWk04IDVjLjIgMCAuMzguMTIuNDYuM2wyIDQuNWEuNS41IDAgMSAxLS45Mi40TDkuMDEgOUg2Ljk5bC0uNTMgMS4yYS41LjUgMCAwIDEtLjkyLS40bDItNC41QS41LjUgMCAwIDEgOCA1Wm0uNTYgM0w4IDYuNzMgNy40NCA4aDEuMTJabTQuOTQtMi41djFoMWEuNS41IDAgMCAxIDAgMWgtMXYxYS41LjUgMCAwIDEtMSAwdi0xaC0xYS41LjUgMCAwIDEgMC0xaDF2LTFhLjUuNSAwIDAgMSAxIDBabTUuNSA5YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVpek5ldzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWl6TmV3MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTlDNCA0LjY3IDQuNjcgNCA1LjUgNGg5Yy44MyAwIDEuNS42NyAxLjUgMS41djMuN2MuMzUuMS42OC4yNCAxIC40VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptMy43IDEwYy4xLS4zNS4yNC0uNjguNC0xSDUuNWEuNS41IDAgMCAwIDAgMWgzLjdabS0uNyAyYS41LjUgMCAwIDAgMC0xaC0zYS41LjUgMCAwIDAgMCAxaDNaTTggNWMuMiAwIC4zOC4xMi40Ni4zbDIgNC41YS41LjUgMCAxIDEtLjkyLjRMOS4wMSA5SDYuOTlsLS41MyAxLjJhLjUuNSAwIDAgMS0uOTItLjRsMi00LjVBLjUuNSAwIDAgMSA4IDVabS41NiAzTDggNi43MyA3LjQ0IDhoMS4xMlptNC45NC0yLjVhLjUuNSAwIDAgMC0xIDB2MWgtMWEuNS41IDAgMCAwIDAgMWgxdjFhLjUuNSAwIDAgMCAxIDB2LTFoMWEuNS41IDAgMCAwIDAtMWgtMXYtMVptNS41IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWl6TmV3MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVpek5ldzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuNTIgOSAxMCA3LjczIDkuNDggOWgxLjA0Wk01Ljc1IDNBMi43NSAyLjc1IDAgMCAwIDMgNS43NXYxMi41QTIuNzUgMi43NSAwIDAgMCA1Ljc1IDIxaDYuMjdhNi40NyA2LjQ3IDAgMCAxLS41Mi02SDUuNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDYuNjNBNi40OSA2LjQ5IDAgMCAxIDIxIDEyLjAyVjUuNzVBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDNINS43NVptMy41IDE1LjVoLTMuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNVptMS40NC0xMy4wNCAyLjI1IDUuNWEuNzUuNzUgMCAwIDEtMS4zOS41N2wtLjQyLTEuMDNIOC44N2wtLjQzIDEuMDNhLjc1Ljc1IDAgMCAxLTEuMzgtLjU2bDIuMjUtNS41YS43NS43NSAwIDAgMSAxLjM4IDBabTUuODEuMjlWN2gxLjI1YS43NS43NSAwIDAgMSAwIDEuNUgxNi41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNWgtMS4yNWEuNzUuNzUgMCAwIDEgMC0xLjVIMTVWNS43NWEuNzUuNzUgMCAwIDEgMS41IDBaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDEgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDEgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBRdWl6TmV3MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1aXpOZXcyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2gxMi41QTIuNzUgMi43NSAwIDAgMSAyMSA1Ljc1djYuMjdjLS40Ni0uMy0uOTctLjUzLTEuNS0uN1Y1Ljc0YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg1Ljc1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxMi41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDUuNTZjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTguMjVWNS43NVptMy43NSA3Ljc1aDUuNjNhNi41IDYuNSAwIDAgMC0uODggMS41SDYuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0zLjUgNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41Wk0xMCA1Yy4zIDAgLjU4LjE4LjcuNDZsMi4yNCA1LjVhLjc1Ljc1IDAgMCAxLTEuMzkuNTdsLS40Mi0xLjAzSDguODdsLS40MyAxLjAzYS43NS43NSAwIDAgMS0xLjM4LS41NmwyLjI1LTUuNUEuNzUuNzUgMCAwIDEgMTAgNVptLS41MiA0aDEuMDRMMTAgNy43MyA5LjQ4IDlabTYuMjctNGMuNDEgMCAuNzUuMzMuNzUuNzVWN2gxLjI1YS43NS43NSAwIDAgMSAwIDEuNUgxNi41djEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNWgtMS4yNWEuNzUuNzUgMCAwIDEgMC0xLjVIMTVWNS43NWMwLS40Mi4zNC0uNzUuNzUtLjc1Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS01IC41djIuNWEuNS41IDAgMSAxLTEgMFYxOGgtMi41YS41LjUgMCAxIDEgMC0xSDE3di0yLjVhLjUuNSAwIDEgMSAxIDBWMTdoMi41YS41LjUgMCAxIDEgMCAxSDE4WlwiXSk7XG5leHBvcnQgY29uc3QgUXVpek5ldzI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1F1aXpOZXcyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTEyLjQ4IDExaC0xLjk2bC45OC0yLjMyLjk4IDIuMzJaTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDE2LjVBMi43NSAyLjc1IDAgMCAxIDI1IDUuNzV2OC43OUE3LjQ3IDcuNDcgMCAwIDAgMTQuNDUgMTZINy4yM2EuNzUuNzUgMCAwIDAgMCAxLjVoNi4zNWE3LjQ3IDcuNDcgMCAwIDAgLjg3IDcuNWgtOC43QTIuNzUgMi43NSAwIDAgMSAzIDIyLjI1VjUuNzVabTkuMi43YS43NS43NSAwIDAgMC0xLjM5IDBsLTIuNzUgNi41MWEuNzUuNzUgMCAxIDAgMS4zOC41OGwuNDQtMS4wNGgzLjI0bC40NCAxLjA0YS43NS43NSAwIDAgMCAxLjM4LS41OGwtMi43NS02LjVabS01LjcyIDE0LjNjMCAuNDIuMzMuNzUuNzUuNzVoNC41MmEuNzUuNzUgMCAwIDAgMC0xLjVINy4yM2EuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0xMi4wMi0xNGEuNzUuNzUgMCAwIDAtMS41IDBWOGgtMS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTd2MS4yNWEuNzUuNzUgMCAwIDAgMS41IDBWOS41aDEuMjVhLjc1Ljc1IDAgMCAwIDAtMS41SDE4LjVWNi43NVptOC40NSAxMy43NWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tNi00YS41LjUgMCAwIDAtMSAwVjIwaC0zLjVhLjUuNSAwIDAgMCAwIDFoMy41djMuNWEuNS41IDAgMCAwIDEgMFYyMWgzLjVhLjUuNSAwIDAgMCAwLTFoLTMuNXYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUXVpek5ldzI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWl6TmV3MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMyA1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNoMTYuNUEyLjc1IDIuNzUgMCAwIDEgMjUgNS43NXY4Ljc1YTcuNDkgNy40OSAwIDAgMC0xLjUtLjg4VjUuNzVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDUuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djE2LjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoNy44N2MuMjQuNTQuNTMgMS4wNC44OCAxLjVINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAyMi4yNVY1Ljc1Wk02Ljc1IDE2aDcuNzVhNy41IDcuNSAwIDAgMC0uODggMS41SDYuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wk02IDIwLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0xMS41IDZjLjMgMCAuNTcuMTguNy40NmwyLjc0IDYuNWEuNzUuNzUgMCAxIDEtMS4zOC41OGwtLjQ0LTEuMDRIOS44OGwtLjQ0IDEuMDRhLjc1Ljc1IDAgMSAxLTEuMzgtLjU4bDIuNzUtNi41YS43NS43NSAwIDAgMSAuNy0uNDZabS0uOTggNWgxLjk2bC0uOTgtMi4zMi0uOTggMi4zMlptNy4yMy01Yy40MSAwIC43NS4zNC43NS43NVY4aDEuMjVhLjc1Ljc1IDAgMCAxIDAgMS41SDE4LjV2MS4yNWEuNzUuNzUgMCAwIDEtMS41IDBWOS41aC0xLjI1YS43NS43NSAwIDAgMSAwLTEuNUgxN1Y2Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYyMGgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMCAwIDEgMFYyMWgzLjVhLjUuNSAwIDAgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1aXpOZXc0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdRdWl6TmV3NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xNy42NCAxOS4wMmgzLjcxbC0xLjg1LTQuNS0xLjg2IDQuNVpNMTEuMjUgNkE1LjI1IDUuMjUgMCAwIDAgNiAxMS4yNXYyNS41QzYgMzkuNjUgOC4zNSA0MiAxMS4yNSA0MmgxMy4yN2ExMi45NCAxMi45NCAwIDAgMS0xLjI0LTExLjVIMTEuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDEzLjI3QTEyLjk5IDEyLjk5IDAgMCAxIDQyIDIzLjc1di0xMi41QzQyIDguMzUgMzkuNjUgNiAzNi43NSA2aC0yNS41Wk0xMCAzNS4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg4YTEuMjUgMS4yNSAwIDAgMSAwIDIuNWgtOGMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wk0xOS41IDEwYy41IDAgLjk2LjMgMS4xNS43N2w0Ljc2IDExLjVhMS4yNSAxLjI1IDAgMCAxLTIuMzIuOTZsLS43LTEuNzFIMTYuNmwtLjcgMS43MWExLjI1IDEuMjUgMCAxIDEtMi4zMi0uOTVsNC43NS0xMS41Yy4yLS40OC42NS0uNzggMS4xNi0uNzhabTEyLjI1IDBjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjVWMTRoMi43NWExLjI1IDEuMjUgMCAxIDEgMCAyLjVIMzN2Mi43NWExLjI1IDEuMjUgMCAwIDEtMi41IDBWMTYuNWgtMi43NWExLjI1IDEuMjUgMCAxIDEgMC0yLjVoMi43NXYtMi43NWMwLS43LjU2LTEuMjUgMS4yNS0xLjI1Wm0xNC43MyAyNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMC03YTEgMSAwIDEgMC0yIDB2NmgtNmExIDEgMCAxIDAgMCAyaDZ2NmExIDEgMCAxIDAgMiAwdi02aDZhMSAxIDAgMSAwIDAtMmgtNnYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFF1aXpOZXc0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUXVpek5ldzQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTExLjI1IDZBNS4yNSA1LjI1IDAgMCAwIDYgMTEuMjV2MjUuNUM2IDM5LjY1IDguMzUgNDIgMTEuMjUgNDJoMTMuMjdjLS41LS43OC0uOTItMS42Mi0xLjI1LTIuNUgxMS4yNWEyLjc1IDIuNzUgMCAwIDEtMi43NS0yLjc1di0yNS41YTIuNzUgMi43NSAwIDAgMSAyLjc1LTIuNzVoMjUuNWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djExLjM5Yy44OC4yOCAxLjcyLjY2IDIuNSAxLjExdi0xMi41QzQyIDguMzUgMzkuNjUgNiAzNi43NSA2aC0yNS41Wm0xMy4yNyAyMmMtLjUuNzgtLjkyIDEuNjEtMS4yNCAyLjVIMTEuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDEzLjI3Wk0zMyAxMS4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDBWMTRoLTIuNzVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDIuNzV2Mi43NWExLjI1IDEuMjUgMCAwIDAgMi41IDBWMTYuNWgyLjc1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUgzM3YtMi43NVptLTEyLjM1LS40OGExLjI1IDEuMjUgMCAwIDAtMi4zIDBsLTQuNzYgMTEuNWExLjI1IDEuMjUgMCAxIDAgMi4zMi45NmwuNy0xLjcxaDUuNzhsLjcgMS43MWExLjI1IDEuMjUgMCAxIDAgMi4zMi0uOTVsLTQuNzYtMTEuNVptLjcgOC4yNWgtMy43bDEuODUtNC41IDEuODUgNC41Wk0xMCAzNS4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg4YTEuMjUgMS4yNSAwIDAgMSAwIDIuNWgtOGMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wk00Ni40OCAzNWExMSAxMSAwIDEgMS0yMiAwIDExIDExIDAgMCAxIDIyIDBabS0xMC03YTEgMSAwIDEgMC0yIDB2NmgtNmExIDEgMCAxIDAgMCAyaDZ2NmExIDEgMCAxIDAgMiAwdi02aDZhMSAxIDAgMSAwIDAtMmgtNnYtNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGFyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkYXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0LjI4IDMuMjQtMS4wOSAxLjFhNi41IDYuNSAwIDEgMCAxLjQgMTAuMjYuNzUuNzUgMCAwIDEgMS4wNyAxLjA2IDggOCAwIDEgMS0xLjM4LTEyLjQyWm0tMy4zIDMuMyAxLjE3LTEuMTdhNS4xIDUuMSAwIDEgMCAxLjQ2IDguMjQuNzUuNzUgMCAxIDAtMS4wNi0xLjA2IDMuNiAzLjYgMCAxIDEtMS41Ni02LjAxWm00LjgtMi4zMmMuMy4zLjMuNzcgMCAxLjA2bC00LjMzIDQuMzNhMS41IDEuNSAwIDEgMS0xLjA2LTEuMDZsNC4zMy00LjMzYy4zLS4zLjc3LS4zIDEuMDYgMFptMS40NyA5LjAzYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTE2LjUgNy41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMS41IDMuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0xLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTUgMTEuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0xLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGFyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGFyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTQuNSAzLjM4LS43Mi43MmE3IDcgMCAxIDAgMS4xNyAxMC44NS41LjUgMCAwIDEgLjcuN0E4IDggMCAxIDEgMTQuNSAzLjM5Wm0tMi45NCAyLjk0Ljc1LS43NWE1IDUgMCAxIDAgMS4yMyA3Ljk3LjUuNSAwIDEgMC0uNzEtLjcxIDQgNCAwIDEgMS0xLjI3LTYuNTFabTQuMy0yLjE3Yy4xOS4yLjE5LjUgMCAuN2wtNC45IDQuOWExIDEgMCAxIDEtLjctLjcybDQuODktNC44OGMuMi0uMi41LS4yLjcgMFpNMTcgMTMuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNMTYuNSA3YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0xLjUgNC4yNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptLS41LTJhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabS0yLjUgMmEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptLS41LTJhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRhckNoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGFyQ2hlY2ttYXJrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xNC4yOCAzLjI0LTEuMDkgMS4xYTYuNSA2LjUgMCAwIDAtOS42NiA1LjAyIDUuNSA1LjUgMCAwIDAtMS41My45IDggOCAwIDAgMSAxMi4yOC03LjAxWk05Ljc1IDE4Yy4zNy0uNDYuNjctLjk3Ljg5LTEuNTNhNi40NyA2LjQ3IDAgMCAwIDMuOTYtMS44Ny43NS43NSAwIDAgMSAxLjA2IDEuMDZBNy45OCA3Ljk4IDAgMCAxIDkuNzUgMThaTTExIDE0LjVjMCAuMTcgMCAuMzQtLjAyLjVhNS4wOCA1LjA4IDAgMCAwIDIuNjMtMS40Ljc1Ljc1IDAgMSAwLTEuMDYtMS4wNWMtLjQ3LjQ3LTEuMDQuNzgtMS42NC45My4wNi4zMy4wOS42Ny4wOSAxLjAyWk01LjUgOWMuMzUgMCAuNjkuMDMgMS4wMi4xYTMuNTggMy41OCAwIDAgMSA0LjQ3LTIuNTZsMS4xNi0xLjE3QTUuMSA1LjEgMCAwIDAgNSA5LjAyTDUuNSA5Wm0zIC45Yy42NC40MSAxLjE5Ljk2IDEuNiAxLjZhMS41IDEuNSAwIDAgMCAxLjM1LTEuODlsNC4zMy00LjMzYS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTQuMzMgNC4zM0ExLjUgMS41IDAgMCAwIDguNSA5LjlabTguNzUgMy4zNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwWk0xNi41IDcuNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabTEuNSAzLjc1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUtMS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTE1IDExLjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBabS0uNzUtMS43NWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVabS00LjI1IDVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDQuNSAxNS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgUmFkYXJDaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkYXJDaGVja21hcmsyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xNC41IDMuMzgtLjcyLjcyQTcgNyAwIDAgMCAzIDkuNmMtLjM2LjE4LS43LjQtMSAuNjVhOCA4IDAgMCAxIDEyLjUtNi44N1pNOS43NSAxOGMuMjUtLjMxLjQ3LS42NS42Ni0xLjAxYTYuOTcgNi45NyAwIDAgMCA0LjU0LTIuMDQuNS41IDAgMCAxIC43LjdBNy45OCA3Ljk4IDAgMCAxIDkuNzYgMThaTTExIDE0LjVsLS4wMS40YTQuOTggNC45OCAwIDAgMCAyLjU1LTEuMzYuNS41IDAgMSAwLS43MS0uNzFjLS41NC41My0xLjE4Ljg4LTEuODYgMS4wNS4wMi4yLjAzLjQxLjAzLjYyWk01LjUgOWwuNjIuMDNhMy45OCAzLjk4IDAgMCAxIDUuNDQtMi43MWwuNzUtLjc1QTUgNSAwIDAgMCA1LjEgOUw1LjUgOVptMy41NCAxLjNjLjI0LjIuNDYuNDIuNjcuNjZhMSAxIDAgMCAwIDEuMjYtMS4yMmw0Ljg4LTQuODlhLjUuNSAwIDAgMC0uNy0uN2wtNC45IDQuODhhMSAxIDAgMCAwLTEuMiAxLjI2Wk0xNyAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk0xNi41IDdhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTEuNSA0LjI1YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tLjUtMmEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptLTIuNSAyYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tLjUtMmEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNMTAgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMNC41IDE1LjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRhclJlY3RhbmdsZU11bHRpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkYXJSZWN0YW5nbGVNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJtMTQuMjggMy4yNC0xLjA5IDEuMUE2LjUgNi41IDAgMCAwIDMuNTggMTFIMi4wNmE3Ljk5IDcuOTkgMCAwIDEgMTIuMjItNy43NlpNMTAgMTd2LS41YzEuNjYgMCAzLjMzLS42MyA0LjYtMS45YS43NS43NSAwIDAgMSAxLjA2IDEuMDZBNy45OCA3Ljk4IDAgMCAxIDkuODMgMThhMyAzIDAgMCAwIC4xNy0xWm0wLTIuNXYuNmMxLjMgMCAyLjYxLS41IDMuNi0xLjVhLjc1Ljc1IDAgMSAwLTEuMDUtMS4wNSAzLjYgMy42IDAgMCAxLTIuODYgMS4wNGMuMi4yNS4zMS41Ny4zMS45MVpNNi41IDExaC4wNEEzLjYgMy42IDAgMCAxIDExIDYuNTRsMS4xNi0xLjE3QTUuMSA1LjEgMCAwIDAgNSAxMWgxLjVabTkuMjgtNi43OGMuMy4zLjMuNzcgMCAxLjA2bC00LjMzIDQuMzNhMS41IDEuNSAwIDEgMS0xLjA2LTEuMDZsNC4zMy00LjMzYy4zLS4zLjc3LS4zIDEuMDYgMFptMS40NyA5LjAzYS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaTTE2LjUgNy41YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVptMS41IDMuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0xLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMTUgMTEuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMFptLS43NS0xLjc1YS43NS43NSAwIDEgMCAwLTEuNS43NS43NSAwIDAgMCAwIDEuNVpNMS41IDEyYS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC01Wm03IDJjLjI4IDAgLjUuMjIuNS41VjE3YTIgMiAwIDAgMS0yIDJIMy41YS41LjUgMCAwIDEgMC0xSDdhMSAxIDAgMCAwIDEtMXYtMi41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRhclJlY3RhbmdsZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGFyUmVjdGFuZ2xlTXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xNC41IDMuMzgtLjcyLjcyQTcgNyAwIDAgMCAzLjA4IDExSDIuMDVBNy45OSA3Ljk5IDAgMCAxIDE0LjUgMy4zOFpNOS44MyAxOGEzIDMgMCAwIDAgLjE3LTFjMS44IDAgMy41OC0uNjggNC45NS0yLjA1YS41LjUgMCAwIDEgLjcuN0E3Ljk4IDcuOTggMCAwIDEgOS44NCAxOFptLjE3LTMuNXYuNWMxLjI4IDAgMi41Ni0uNDkgMy41NC0xLjQ2YS41LjUgMCAxIDAtLjcxLS43MWMtLjguOC0xLjg2IDEuMi0yLjkyIDEuMTcuMDYuMTYuMDkuMzIuMDkuNVpNNS4xIDExaDEuMDNhNCA0IDAgMCAxIDUuNDMtNC42OGwuNzUtLjc1QTUgNSAwIDAgMCA1LjEgMTFabTEwLjc1LTYuODVjLjIuMi4yLjUgMCAuN2wtNC44OCA0LjlhMSAxIDAgMSAxLS43MS0uNzJsNC44OS00Ljg4Yy4yLS4yLjUtLjIuNyAwWk0xNyAxMy41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk0xNi41IDdhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFabTEuNSA0LjI1YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tLjUtMmEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptLTIuNSAyYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWm0tLjUtMmEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVpNMS41IDEyYS41LjUgMCAwIDAtLjUuNXY0YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC01Wm03IDJjLjI4IDAgLjUuMjIuNS41VjE3YTIgMiAwIDAgMS0yIDJIMy41YS41LjUgMCAwIDEgMC0xSDdhMSAxIDAgMCAwIDEtMXYtMi41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRpb0J1dHRvbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGlvQnV0dG9uMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDExYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlptMC05YTYgNiAwIDEgMCAwIDEyQTYgNiAwIDAgMCA4IDJaTTMgOGE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMyA4WlwiXSk7XG5leHBvcnQgY29uc3QgUmFkaW9CdXR0b24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkaW9CdXR0b24xNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDNhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDggM1pNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRpb0J1dHRvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGlvQnV0dG9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAxNWE1IDUgMCAxIDAgMC0xMCA1IDUgMCAwIDAgMCAxMFptMC0xM2E4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlptLTcgOGE3IDcgMCAxIDEgMTQgMCA3IDcgMCAwIDEtMTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGlvQnV0dG9uMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGlvQnV0dG9uMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptLTggN2E4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhZGlvQnV0dG9uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkaW9CdXR0b24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wk0xMiA2YTYgNiAwIDEgMSAwIDEyIDYgNiAwIDAgMSAwLTEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmFkaW9CdXR0b24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkaW9CdXR0b24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAyMmExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBabTAtMS41YTguNSA4LjUgMCAxIDEgMC0xNyA4LjUgOC41IDAgMCAxIDAgMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBSYWRpb0J1dHRvbk9mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhZGlvQnV0dG9uT2ZmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNC4xNSAxNC44NWMuMS4xLjIyLjE1LjM1LjE1YS41LjUgMCAwIDAgLjM1LS44NWwtMTMtMTNhLjUuNSAwIDAgMC0uNy43bDIuMjggMi4yOGE2IDYgMCAwIDAgOC40NCA4LjQ0bDIuMjggMi4yOFptLTIuOTktMi45OGE1IDUgMCAwIDEtNy4wMy03LjAzbDEuNDMgMS40MmEzIDMgMCAwIDAgNC4xOCA0LjE4bDEuNDIgMS40M1pNNC45NSAyLjgzYTYgNiAwIDAgMSA4LjIyIDguMjJsLS43NC0uNzRhNSA1IDAgMCAwLTYuNzQtNi43NGwtLjc0LS43NFptNS45NCA1Ljk0YTMgMyAwIDAgMC0zLjY2LTMuNjZsMy42NiAzLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgUmFkaW9CdXR0b25PZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFkaW9CdXR0b25PZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm0xLjg1IDEuMTUgMTMgMTNhLjUuNSAwIDAgMS0uNy43bC0yLjI4LTIuMjdhNiA2IDAgMCAxLTguNDYtOC40NkwxLjE2IDEuODZhLjUuNSAwIDAgMSAuNy0uN1pNMyA4YTUgNSAwIDAgMCA1IDVjMS4yIDAgMi4zLS40MiAzLjE2LTEuMTNMNC4xMyA0Ljg0QTQuOTggNC45OCAwIDAgMCAzIDhabTEwIDBhNSA1IDAgMCAwLTUtNWMtLjgzIDAtMS42LjIyLTIuMy41OGwtLjc0LS43NWE2IDYgMCAwIDEgOC4yIDguMmwtLjc0LS43M2MuMzYtLjcuNTgtMS40Ny41OC0yLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBSYW0xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYW0xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwIDhoMlY2aC0ydjJaTTcgOGgyVjZIN3YyWk00IDhoMlY2SDR2MlptOS01SDNhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAxIDEuNzN2MS4wMmMwIC42OS41NiAxLjI1IDEuMjUgMS4yNUg2LjVhLjUuNSAwIDAgMCAuMzUtLjE1TDggMTEuNzFsMS4xNSAxLjE0Yy4wOS4xLjIyLjE1LjM1LjE1aDMuMjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0xLjAyQTIgMiAwIDAgMCAxNSA5VjVhMiAyIDAgMCAwLTItMlptMCA1LjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNWg5Yy4yOCAwIC41LjIyLjUuNXYzWlwiXSk7XG5leHBvcnQgY29uc3QgUmFtMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhbTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNSA1aDljLjI4IDAgLjUuMjIuNS41djNhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTNjMC0uMjguMjItLjUuNS0uNVpNOSA4VjZIN3YyaDJaTTYgNkg0djJoMlY2Wm00IDJoMlY2aC0ydjJaTTMgM2gxMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTEgMS43M3YxLjAyYzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg5LjVhLjUuNSAwIDAgMS0uMzUtLjE1TDggMTEuNzFsLTEuMTUgMS4xNGEuNS41IDAgMCAxLS4zNS4xNUgzLjI1QzIuNTYgMTMgMiAxMi40NCAyIDExLjc1di0xLjAyQTIgMiAwIDAgMSAxIDlWNWMwLTEuMS45LTIgMi0yWm0uMjUgOWgzLjA0bDEtMUgzdi43NWMwIC4xNC4xMS4yNS4yNS4yNVptOS41IDBjLjE0IDAgLjI1LS4xMS4yNS0uMjVWMTFIOC43bDEgMWgzLjA1Wm0uMjUtMmExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDEwWlwiXSk7XG5leHBvcnQgY29uc3QgUmFtMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmFtMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDdoMi41djNINVY3Wm02LjUgMHYzaC0zVjdoM1ptMSAzSDE1VjdoLTIuNXYzWm0zLjU0LTZjLjI2IDAgLjUuMDUuNzQuMTZBMi4wNiAyLjA2IDAgMCAxIDE4IDUuOTZWMTFhMiAyIDAgMCAxLTEgMS43M3YxLjc3YTEuNDUgMS40NSAwIDAgMS0uNDQgMS4wNWMtLjEzLjE0LS4zLjI1LS40OC4zMy0uMTkuMDktLjM4LjEzLS41OC4xMmgtNGEuNDguNDggMCAwIDEtLjM1LS4xNUwxMCAxNC43bC0xLjE1IDEuMTVjLS4xLjEtLjIxLjE1LS4zNS4xNWgtNGExLjQ1IDEuNDUgMCAwIDEtMS4wNS0uNDRjLS4xNC0uMTMtLjI1LS4zLS4zMy0uNDhBMS4zMiAxLjMyIDAgMCAxIDMgMTQuNXYtMS43N2MtLjMtLjE3LS41NS0uNDItLjczLS43M0EyLjA2IDIuMDYgMCAwIDEgMiAxMVY1Ljk2YzAtLjI2LjA1LS41LjE2LS43NEEyLjA2IDIuMDYgMCAwIDEgMy45NiA0aDEyLjA4Wm0tLjY2IDIuMDhBLjk1Ljk1IDAgMCAwIDE1IDZINWEuODUuODUgMCAwIDAtLjQuMDhjLS4xMi4wNi0uMjIuMTMtLjMxLjIyQTEgMSAwIDAgMCA0IDd2M2MwIC4xNS4wMy4yOC4wOC40LjA0LjEyLjEyLjIyLjIuMzEuMS4wOS4yMS4xNi4zMy4yMS4xMi4wNS4yNS4wOC4zOS4wOGgxMGMuMTQgMCAuMjctLjAyLjQtLjA4LjEyLS4wNi4yMi0uMTMuMzEtLjIyQTEgMSAwIDAgMCAxNiAxMFY3YTEgMSAwIDAgMC0uMy0uNzEgMS4xIDEuMSAwIDAgMC0uMzItLjIxWlwiXSk7XG5leHBvcnQgY29uc3QgUmFtMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhbTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE2LjA0IDRjLjI2IDAgLjUuMDUuNzQuMTZBMi4wNiAyLjA2IDAgMCAxIDE4IDUuOTZWMTFhMiAyIDAgMCAxLTEgMS43M3YxLjc3YTEuNDUgMS40NSAwIDAgMS0uNDQgMS4wNWMtLjEzLjE0LS4zLjI1LS40OC4zMy0uMTkuMDktLjM4LjEzLS41OC4xMmgtNGEuNDguNDggMCAwIDEtLjM1LS4xNUwxMCAxNC43bC0xLjE1IDEuMTVjLS4xLjEtLjIxLjE1LS4zNS4xNWgtNGExLjQ1IDEuNDUgMCAwIDEtMS4wNS0uNDRjLS4xNC0uMTMtLjI1LS4zLS4zMy0uNDhBMS4zMiAxLjMyIDAgMCAxIDMgMTQuNXYtMS43N2MtLjMtLjE3LS41NS0uNDItLjczLS43M0EyLjA2IDIuMDYgMCAwIDEgMiAxMVY1Ljk2YzAtLjI2LjA1LS41LjE2LS43NEEyLjA2IDIuMDYgMCAwIDEgMy45NiA0aDEyLjA4Wk0xNyA2YS45NS45NSAwIDAgMC0uMDgtLjM4IDEuMSAxLjEgMCAwIDAtLjItLjMyQTEgMSAwIDAgMCAxNiA1SDMuOTlhLjk3Ljk3IDAgMCAwLS43LjI5Yy0uMS4wOS0uMTYuMi0uMjIuMzJBLjg1Ljg1IDAgMCAwIDMgNnY1YzAgLjE0LjAzLjI3LjA4LjQuMDUuMTEuMTIuMjIuMi4zMS4xLjEuMi4xNi4zMi4yMS4xMi4wNS4yNS4wNy40LjA4aDEyYS45Ny45NyAwIDAgMCAuNy0uMjljLjEtLjA5LjE2LS4yLjIyLS4zMkEuODUuODUgMCAwIDAgMTcgMTFWNlptLTIgMGMuMTQgMCAuMjYuMDMuMzguMDhzLjIzLjEyLjMyLjJBMSAxIDAgMCAxIDE2IDd2My4wMWEuOTcuOTcgMCAwIDEtLjI5LjdjLS4wOS4xLS4yLjE2LS4zMi4yMkEuODUuODUgMCAwIDEgMTUgMTFINWEuOTcuOTcgMCAwIDEtLjQtLjA4IDEuMSAxLjEgMCAwIDEtLjMxLS4yLjg1Ljg1IDAgMCAxLS4yMS0uMzJBMS4yIDEuMiAwIDAgMSA0IDEwVjdhLjk3Ljk3IDAgMCAxIC4yOS0uN2MuMDktLjEuMi0uMTYuMzItLjIyQS44NS44NSAwIDAgMSA1IDZoMTBaTTcuNSA3SDV2M2gyLjVWN1ptNCAzVjdoLTN2M2gzWm0xIDBIMTVWN2gtMi41djNabTMuNSAzSDR2MS41YzAgLjE0LjA1LjI1LjE1LjM1LjEuMS4yMS4xNS4zNS4xNWgzLjhsMS4zNS0xLjM1Yy4xLS4xLjIxLS4xNS4zNS0uMTUuMTQgMCAuMjUuMDUuMzUuMTVMMTEuNzEgMTVoMy43OWMuMTQgMCAuMjUtLjA1LjM1LS4xNS4xLS4xLjE1LS4yMS4xNS0uMzVWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpbmdNYXR1cmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpbmdNYXR1cmUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1ptMy45Mi43NEEuNS41IDAgMCAwIDUgNS41djVhLjUuNSAwIDEgMCAxIDBWNy4yNGwxLjU4IDIuNTNhLjUuNSAwIDAgMCAuODQgMEwxMCA3LjI0djMuMjZhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uOTItLjI2TDggOC41NiA1LjkyIDUuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpbmdNYXR1cmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmF0aW5nTWF0dXJlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS45MiA1LjI0QS41LjUgMCAwIDAgNSA1LjV2NWEuNS41IDAgMSAwIDEgMFY3LjI0bDEuNTggMi41M2EuNS41IDAgMCAwIC44NCAwTDEwIDcuMjR2My4yNmEuNS41IDAgMSAwIDEgMHYtNWEuNS41IDAgMCAwLS45Mi0uMjZMOCA4LjU2IDUuOTIgNS4yNFpNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE0aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03Wk0zIDQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAzIDExLjV2LTdaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpbmdNYXR1cmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpbmdNYXR1cmUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTQuOTIgMS4yNEEuNS41IDAgMCAwIDcgNy41djVhLjUuNSAwIDEgMCAxIDBWOS4yNGwxLjU4IDIuNTNhLjUuNSAwIDAgMCAuODQgMEwxMiA5LjI0djMuMjZhLjUuNSAwIDEgMCAxIDB2LTVhLjUuNSAwIDAgMC0uOTItLjI2TDEwIDEwLjU2IDcuOTIgNy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhdGluZ01hdHVyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpbmdNYXR1cmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjkyIDcuMjRBLjUuNSAwIDAgMCA3IDcuNXY1YS41LjUgMCAxIDAgMSAwVjkuMjRsMS41OCAyLjUzYS41LjUgMCAwIDAgLjg0IDBMMTIgOS4yNHYzLjI2YS41LjUgMCAxIDAgMSAwdi01YS41LjUgMCAwIDAtLjkyLS4yNkwxMCAxMC41NiA3LjkyIDcuMjRaTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpbmdNYXR1cmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpbmdNYXR1cmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVabTUuODMgMi4wMmEuNzUuNzUgMCAwIDAtMS4zMy40OHY2LjVhLjc1Ljc1IDAgMSAwIDEuNSAwdi00LjQzbDIuNDIgMi45MWEuNzUuNzUgMCAwIDAgMS4xNiAwbDIuNDItMi45djQuNDJhLjc1Ljc1IDAgMSAwIDEuNSAwdi02LjVhLjc1Ljc1IDAgMCAwLTEuMzMtLjQ4TDEyIDEyLjA3bC0zLjE3LTMuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhdGluZ01hdHVyZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpbmdNYXR1cmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjgzIDguMjdhLjc1Ljc1IDAgMCAwLTEuMzMuNDh2Ni41YS43NS43NSAwIDEgMCAxLjUgMHYtNC40M2wyLjQyIDIuOTFhLjc1Ljc1IDAgMCAwIDEuMTYgMGwyLjQyLTIuOXY0LjQyYS43NS43NSAwIDEgMCAxLjUgMHYtNi41YS43NS43NSAwIDAgMC0xLjMzLS40OEwxMiAxMi4wN2wtMy4xNy0zLjhaTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxMS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJhdGlvT25lVG9PbmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpb09uZVRvT25lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00Ljc1IDRBMi43NSAyLjc1IDAgMCAwIDIgNi43NXY2LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMTZoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMTggMTMuMjV2LTYuNUEyLjc1IDIuNzUgMCAwIDAgMTUuMjUgNEg0Ljc1Wk03IDcuNXY1YS41LjUgMCAwIDEtMSAwVjguM2wtLjI4LjE1YS41LjUgMCAxIDEtLjQ0LS45bDEtLjVBLjUuNSAwIDAgMSA3IDcuNVptNyAwdjVhLjUuNSAwIDEgMS0xIDBWOC4zbC0uMjguMTVhLjUuNSAwIDEgMS0uNDQtLjlsMS0uNWEuNS41IDAgMCAxIC43Mi40NVptLTQgMWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFpNOS41IDEyYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxWlwiXSk7XG5leHBvcnQgY29uc3QgUmF0aW9PbmVUb09uZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSYXRpb09uZVRvT25lMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi43NiA3LjA3Yy4xNS4xLjI0LjI2LjI0LjQzdjVhLjUuNSAwIDAgMS0xIDBWOC4zbC0uMjguMTVhLjUuNSAwIDEgMS0uNDQtLjlsMS0uNWEuNS41IDAgMCAxIC40OC4wMlpNMTQgNy41YS41LjUgMCAwIDAtLjcyLS40NWwtMSAuNWEuNS41IDAgMSAwIC40NC45TDEzIDguM3Y0LjE5YS41LjUgMCAwIDAgMSAwdi01Wm0tNCAxYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwWk05LjUgMTJhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTIgNi43NUEyLjc1IDIuNzUgMCAwIDEgNC43NSA0aDEwLjVBMi43NSAyLjc1IDAgMCAxIDE4IDYuNzV2Ni41QTIuNzUgMi43NSAwIDAgMSAxNS4yNSAxNkg0Ljc1QTIuNzUgMi43NSAwIDAgMSAyIDEzLjI1di02LjVaTTQuNzUgNUMzLjc4IDUgMyA1Ljc4IDMgNi43NXY2LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTAuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTYuNUMxNyA1Ljc4IDE2LjIyIDUgMTUuMjUgNUg0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUmF0aW9PbmVUb09uZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhdGlvT25lVG9PbmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuMjUgNEEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGgxMy41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTkuNUMyMiA1LjQ1IDIwLjU0IDQgMTguNzUgNEg1LjI1Wk04LjUgOC43NXY2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01LjFsLS4zMy4yMmEuNzUuNzUgMCAxIDEtLjg0LTEuMjRsMS41LTFhLjc1Ljc1IDAgMCAxIDEuMTcuNjJabTkgMHY2LjVhLjc1Ljc1IDAgMSAxLTEuNSAwdi01LjFsLS4zMy4yMmEuNzUuNzUgMCAxIDEtLjg0LTEuMjRsMS41LTFhLjc1Ljc1IDAgMCAxIDEuMTcuNjJaTTEzIDE0YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLTEtM2ExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBSYXRpb09uZVRvT25lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JhdGlvT25lVG9PbmUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04LjUgOC43NWEuNzUuNzUgMCAwIDAtMS4xNy0uNjJsLTEuNSAxYS43NS43NSAwIDEgMCAuODQgMS4yNGwuMzMtLjIydjUuMWEuNzUuNzUgMCAwIDAgMS41IDB2LTYuNVptOSAwYS43NS43NSAwIDAgMC0xLjE3LS42MmwtMS41IDFhLjc1Ljc1IDAgMSAwIC44NCAxLjI0bC4zMy0uMjJ2NS4xYS43NS43NSAwIDEgMCAxLjUgMHYtNi41Wk0xMyAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xLTNhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWk01LjI1IDRBMy4yNSAzLjI1IDAgMCAwIDIgNy4yNXY5LjVDMiAxOC41NSAzLjQ2IDIwIDUuMjUgMjBoMTMuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di05LjVDMjIgNS40NSAyMC41NCA0IDE4Ljc1IDRINS4yNVpNMy41IDcuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTMuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDUuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlT3JkZXIxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuNzUgOS4yNWgxMC41YS43NS43NSAwIDAgMSAuMSAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjEtMS41aDEwLjYtMTAuNVptMC00aDEwLjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUgyLjc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTAuNi0xMC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMi41IDloMTFhLjUuNSAwIDAgMSAuMDkgMUgyLjVhLjUuNSAwIDAgMS0uMDktMUgxMy41aC0xMVptMC0zaDExYS41LjUgMCAwIDEgLjA5IDFIMi41YS41LjUgMCAwIDEtLjA5LTFIMTMuNWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMi43NSA3Ljc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1Wm0wIDNhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlT3JkZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjUgOGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVabTAgM2EuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyAxM2gxOGExIDEgMCAwIDEgLjEyIDJIM2ExIDEgMCAwIDEtLjEyLTJIMjEgM1ptMC00aDE4YTEgMSAwIDAgMSAuMTIgMkgzYTEgMSAwIDAgMS0uMTItMkgyMSAzWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMi43NSAxMy4yNWgxOC41YS43NS43NSAwIDAgMSAuMSAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjEtMS41aDE4LjYtMTguNVptMC00aDE4LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNUgyLjc1YS43NS43NSAwIDAgMS0uMS0xLjVoMTguNi0xOC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNIb3Jpem9udGFsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlckRvdHNIb3Jpem9udGFsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMSA1LjVhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBabS00LjUgMGExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpNMy41IDdhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNabTcuNSAzLjVhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBaTTggMTJhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNabS02LTEuNWExLjUgMS41IDAgMSAwIDMgMCAxLjUgMS41IDAgMCAwLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlT3JkZXJEb3RzSG9yaXpvbnRhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c0hvcml6b250YWwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMSA2YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptMCA0YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptLTMgMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaTTcgNmExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBabS0zIDVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWk0zIDZhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNIb3Jpem9udGFsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlckRvdHNIb3Jpem9udGFsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNCA2LjVhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBabS01IDBhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBaTTUuNSA4YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWm04LjUgNS41YTEuNSAxLjUgMCAxIDAgMyAwIDEuNSAxLjUgMCAwIDAtMyAwWk0xMC41IDE1YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWk00IDEzLjVhMS41IDEuNSAwIDEgMCAzIDAgMS41IDEuNSAwIDAgMC0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyRG90c0hvcml6b250YWwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlckRvdHNIb3Jpem9udGFsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTUgN2ExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaTTkgN2ExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaTTQgOGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJabTExIDVhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0tNSAxYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptLTctMWExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyRG90c0hvcml6b250YWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c0hvcml6b250YWwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTcgMTZhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0wLThhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm03IDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0wLThhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm03IDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWm0wLThhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNIb3Jpem9udGFsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlT3JkZXJEb3RzSG9yaXpvbnRhbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcgMTUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMC03YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm03IDdhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTAtN2ExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptNyA3YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0wLTdhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyRG90c1ZlcnRpY2FsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVPcmRlckRvdHNWZXJ0aWNhbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS41IDVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNabTAgNC41YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWm0xLjUgM2ExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpNMTAuNSA1YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0xMiA4YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0tMS41IDZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBSZU9yZGVyRG90c1ZlcnRpY2FsMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlT3JkZXJEb3RzVmVydGljYWwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02IDVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0wIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0zLTdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0xIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0tMSA1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlT3JkZXJEb3RzVmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c1ZlcnRpY2FsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02LjUgNmExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptMCA1YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk04IDE0LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBaTTEzLjUgNmExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMTUgOS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWk0xMy41IDE2YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c1ZlcnRpY2FsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyA1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMCA2YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptMSA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptNS0xMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTEgNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabS0xIDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNWZXJ0aWNhbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlT3JkZXJEb3RzVmVydGljYWwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2IDE3YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptLTggMGEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRabTgtN2EyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRabS04IDBhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00Wm04LTdhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00Wk04IDNhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00WlwiXSk7XG5leHBvcnQgY29uc3QgUmVPcmRlckRvdHNWZXJ0aWNhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZU9yZGVyRG90c1ZlcnRpY2FsMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTUuNSAxN2ExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptLTcgMGExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1ptNy03YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm0tNyAwYTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWm03LTdhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNabS03IDBhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkQWxvdWQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEwLjA0IDEuNWMuMTQtLjQuNTctLjYuOTYtLjQ2LjIyLjEgMCAwIDAgMGguMDFsLjAyLjAxYTIuMTUgMi4xNSAwIDAgMSAuMTkuMDhjLjExLjA2LjI4LjE0LjQ3LjI2LjM4LjIzLjg3LjYgMS4zNyAxLjE0IDEgMS4xIDEuOTQgMi45MSAxLjk0IDUuNzJhLjc1Ljc1IDAgMCAxLTEuNSAwYzAtMi40NC0uOC0zLjg5LTEuNTYtNC43MmE0LjY5IDQuNjkgMCAwIDAtMS40My0xLjA3aC0uMDJhLjc1Ljc1IDAgMCAxLS40NS0uOTZaTTcuMiAzLjQ3YS43NS43NSAwIDAgMC0xLjQgMGwtMy43NSA5LjVhLjc1Ljc1IDAgMCAwIDEuNC41NmwuOS0yLjI4aDQuM2wuOSAyLjI4YS43NS43NSAwIDEgMCAxLjQtLjU2TDcuMiAzLjQ3Wm0uODYgNi4yOEg0Ljk0TDYuNSA1Ljc5bDEuNTYgMy45NlptMi42Ny02LjA4YS43NS43NSAwIDAgMC0uOTYgMS4xNXYuMDFhMS44MyAxLjgzIDAgMCAxIC4xOC4xN2MuMTIuMTIuMjguMy40NC41My4zMi40Ni42MSAxLjA2LjYxIDEuNzJhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtMS4wOS0uNDYtMS45OS0uODktMi41OWE1Ljk0IDUuOTQgMCAwIDAtLjg1LS45NmwtLjAyLS4wMmgtLjAxWm0tLjk2IDEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZEFsb3VkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTAuMDMgMS4zMmEuNS41IDAgMCAxIC42NS0uMjlsLjAyLjAxYTIuMjUgMi4yNSAwIDAgMSAuMTkuMDhsLjUuMjdjLjQuMjUuOTQuNjMgMS40NyAxLjJBOC4zIDguMyAwIDAgMSAxNSA4LjVhLjUuNSAwIDAgMS0xIDBjMC0yLjYxLS45NS00LjI0LTEuODYtNS4yMmE2LjA3IDYuMDcgMCAwIDAtMS44MS0xLjMxLjUuNSAwIDAgMS0uMy0uNjVabS0zLjA3IDJhLjUuNSAwIDAgMC0uOTIgMGwtNCAxMGEuNS41IDAgMSAwIC45Mi4zN0w0LjA0IDExaDQuOTJsMS4wOCAyLjY5YS41LjUgMCAxIDAgLjkyLS4zOGwtNC0xMFpNOC41NiAxMEg0LjQ0TDYuNSA0Ljg1IDguNTYgMTBabTEuNjYtNi40NWEuNS41IDAgMCAwLS40NS45aC4wMWExLjU0IDEuNTQgMCAwIDEgLjI0LjE1IDMuNDUgMy40NSAwIDAgMSAxLjQ4IDIuOS41LjUgMCAwIDAgMSAwIDQuNDUgNC40NSAwIDAgMC0yLjI0LTMuOTNsLS4wMi0uMDFoLS4wMXMuMTUuMDggMCAwWm0tLjQ1LjlaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkQWxvdWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExLjg0IDIuMTRjLjItLjM2LjY2LS41IDEuMDItLjNhOS45NCA5Ljk0IDAgMCAxIDUuMzkgOC4wOC43NS43NSAwIDEgMS0xLjUuMTYgOC40NSA4LjQ1IDAgMCAwLTQuNi02LjkyLjc1Ljc1IDAgMCAxLS4zLTEuMDJaTTguNyA0LjIyYS43NS43NSAwIDAgMC0xLjM4IDBsLTQuNSAxMWEuNzUuNzUgMCAwIDAgMS4zOC41NmwxLjQ1LTMuNTNoNC43MmwxLjQ1IDMuNTNhLjc1Ljc1IDAgMCAwIDEuMzgtLjU2bC00LjUtMTFabTEuMDYgNi41M2gtMy41TDggNi40OGwxLjc1IDQuMjdabTIuNjItNi40YS43NS43NSAwIDAgMC0uNzQgMS4zYzEuNTIuODcgMi40IDIuNCAyLjYzIDMuOTZhLjc1Ljc1IDAgMSAwIDEuNDgtLjIyIDYuOTIgNi45MiAwIDAgMC0zLjM3LTUuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZEFsb3VkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIuMDYgMi4yNmEuNS41IDAgMCAxIC42OC0uMkE5LjcgOS43IDAgMCAxIDE4IDkuOTRhLjUuNSAwIDAgMS0xIC4xMiA4LjcgOC43IDAgMCAwLTQuNzQtNy4xMi41LjUgMCAwIDEtLjItLjY4Wm0tMy42IDIuMDVhLjUuNSAwIDAgMC0uOTIgMGwtNC41IDExYS41LjUgMCAxIDAgLjkyLjM4bDEuNTQtMy43NlYxMmg1di0uMDdsMS41NCAzLjc2YS41LjUgMCAxIDAgLjkyLS4zOGwtNC41LTExWk0xMC4xMiAxMUg1Ljg4TDggNS44MiAxMC4xMiAxMVptMi4xMy02LjQzYS41LjUgMCAwIDAtLjUuODYgNS42NyA1LjY3IDAgMCAxIDIuNzYgNC4xNC41LjUgMCAwIDAgLjk4LS4xNCA2LjY3IDYuNjcgMCAwIDAtMy4yNC00Ljg2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZEFsb3VkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZEFsb3VkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNC42IDIuMDhhMSAxIDAgMCAxIDEuMzItLjQ5Yy4yNi4xNCAwIDAgMCAwaC4wMWwuMDIuMDJhNC45IDQuOSAwIDAgMSAuMy4xNiAxMi4yNyAxMi4yNyAwIDAgMSAzLjExIDIuNUExMC43NSAxMC43NSAwIDAgMSAyMiAxMy4xM2ExIDEgMCAwIDEtMS45OC0uMjYgOC43NSA4Ljc1IDAgMCAwLTIuMTMtNy4yNyAxMC4yNyAxMC4yNyAwIDAgMC0yLjgtMi4xOSAxIDEgMCAwIDEtLjQ5LTEuMzNaTTkuOTIgNC42M2ExIDEgMCAwIDAtMS44NiAwbC01LjUgMTRhMSAxIDAgMCAwIDEuODYuNzRMNi4xNSAxNWg1LjdsMS43MiA0LjM3YTEgMSAwIDAgMCAxLjg2LS43NGwtNS41LTE0Wk0xMS4wNyAxM0g2LjkzTDkgNy43MyAxMS4wNyAxM1ptNC4zOC03LjRhMSAxIDAgMCAwLS45IDEuOGMuMy4xNC44LjU3IDEuMjMgMS4yNi40Mi42Ny43MiAxLjQ4LjcyIDIuMzRhMSAxIDAgMCAwIDIgMGMwLTEuMzEtLjQ1LTIuNS0xLjAzLTMuNDFhNS41NyA1LjU3IDAgMCAwLTIuMDItMS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWRBbG91ZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkQWxvdWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNS44NiAyLjFhLjc1Ljc1IDAgMSAwLS43MiAxLjMgMTAuMjMgMTAuMjMgMCAwIDEgNC4xIDMuODNjLjkgMS41MyAxLjMxIDMuMzUgMS4yNiA1LjQ2YS43NS43NSAwIDAgMCAxLjUuMDRjLjA2LTIuMzgtLjQzLTQuNDctMS40Ni02LjI1YTExLjcyIDExLjcyIDAgMCAwLTQuNjgtNC4zOVptLS4yNCAzLjZBLjc1Ljc1IDAgMSAwIDE0LjkxIDdjLjcyLjQgMS4zLjk2IDEuNzMgMS43Mi40NC43Ni42NSAxLjU0LjYzIDIuMzdhLjc1Ljc1IDAgMCAwIDEuNS4wMyA1LjkyIDUuOTIgMCAwIDAtLjgzLTMuMTUgNS45MiA1LjkyIDAgMCAwLTIuMzItMi4yOVpNOSA0Yy4zIDAgLjU4LjE5LjcuNDdsNS43NSAxNC41YS43NS43NSAwIDAgMS0xLjQuNTZMMTIuMjUgMTVoLTYuNWwtMS44IDQuNTNhLjc1Ljc1IDAgMSAxLTEuNC0uNTZMOC4zIDQuNDdBLjc1Ljc1IDAgMCAxIDkgNFptMCAyLjc4TDYuMzQgMTMuNWg1LjMyTDkgNi43OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWRBbG91ZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRBbG91ZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTcuNiAyLjU4YTEgMSAwIDAgMSAxLjMyLS40OUExMi44OSAxMi44OSAwIDAgMSAyNiAxNC41NGExIDEgMCAwIDEtMi0uMDhjLjI2LTYuMjgtMy43Ni05LjU1LTUuOTItMTAuNTVhMSAxIDAgMCAxLS40OS0xLjMzWm0tNS45MSAyLjA3YTEgMSAwIDAgMC0xLjg4IDBsLTYuNzUgMThhMSAxIDAgMCAwIDEuODguN2wyLTUuMzVoNy42MmwyIDUuMzVhMSAxIDAgMCAwIDEuODgtLjdsLTYuNzUtMThaTTEzLjggMTZINy42OWwzLjA2LTguMTVMMTMuODEgMTZabTQuNzctOS44MWExIDEgMCAwIDAtMS4xNiAxLjYyYy44LjU3IDEuNDIgMS4yIDEuODYgMiAuNDQuNzguNzIgMS44LjcyIDMuMTlhMSAxIDAgMCAwIDIgMGMwLTEuNjgtLjM0LTMuMDQtLjk3LTQuMTdhOC4wNCA4LjA0IDAgMCAwLTIuNDUtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWRBbG91ZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkQWxvdWQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNy41NyAyLjkzYS43NS43NSAwIDAgMSAxLS4zNiAxMi42NCAxMi42NCAwIDAgMSA2LjkzIDEyLjIxLjc1Ljc1IDAgMSAxLTEuNS0uMDZjLjI3LTYuNDEtMy44NS05Ljc2LTYuMDctMTAuNzlhLjc1Ljc1IDAgMCAxLS4zNi0xWm0tNi4xMiAxLjU1YS43NS43NSAwIDAgMC0xLjQgMGwtNyAxOC41YS43NS43NSAwIDEgMCAxLjQuNTRMNi41NCAxOGg4LjQybDIuMDkgNS41MmEuNzUuNzUgMCAwIDAgMS40LS41NGwtNy0xOC41Wk0xNC40IDE2LjVINy4xMWwzLjY0LTkuNjMgMy42NCA5LjYzWm0zLjgtOS44NmEuNzUuNzUgMCAxIDAtLjg4IDEuMjJjMS42OCAxLjIgMy4xOSAyLjY4IDMuMTkgNS4zOWEuNzUuNzUgMCAxIDAgMS41IDBjMC0zLjQ0LTItNS4zMS0zLjgxLTYuNjFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkQWxvdWQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRBbG91ZDMyTGlnaHQnLCBcIjMyXCIsIFtcIk0xOS42NSAzLjMxYS41LjUgMCAwIDEgLjY1LS4yNyAxNCAxNCAwIDAgMSA4LjYxIDE0LjUxLjUuNSAwIDAgMS0uOTktLjEgMTMgMTMgMCAwIDAtOC0xMy40OC41LjUgMCAwIDEtLjI3LS42NlptLTYuMjEgMS4zNGExIDEgMCAwIDAtMS44OCAwTDMuMDMgMjcuMzJhLjUuNSAwIDEgMCAuOTQuMzVMNi44NiAyMGgxMS4yOWwyLjg4IDcuNjdhLjUuNSAwIDAgMCAuOTQtLjM1TDEzLjQ0IDQuNjVaTTE3Ljc3IDE5SDcuMjNMMTIuNSA1bDUuMjcgMTRabTEuOTctMTEuOGEuNS41IDAgMCAwLS40OC44N0E5IDkgMCAwIDEgMjQgMTUuNTNhLjUuNSAwIDAgMCAxLS4wNiA5Ljk5IDkuOTkgMCAwIDAtNS4yNS04LjI4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3QxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy41IDQuMzlhLjYxLjYxIDAgMCAxIDEuMTMtLjM0Ljc1Ljc1IDAgMCAwIDEuMjQtLjg0QTIuMTEgMi4xMSAwIDEgMCA0IDYuNWg3LjMxYS43NS43NSAwIDAgMCAwLTEuNWgtNy4yYS42MS42MSAwIDAgMS0uNjEtLjYxWk03Ljc1IDIuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wm0tMyA1YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaTTIgMTAuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg4LjVhLjc1Ljc1IDAgMSAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTIuNzUgMS43NWEuNzUuNzUgMCAxIDAgMCAxLjVoOC41YS43NS43NSAwIDEgMCAwLTEuNWgtOC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3QxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3QxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDVhMSAxIDAgMCAxIDEuODQtLjU2LjUuNSAwIDEgMCAuODMtLjU1QTIgMiAwIDEgMCA0LjA3IDdoNy40M2EuNS41IDAgMCAwIDAtMUg0LjA4YS41LjUgMCAwIDAtLjA0IDBBMSAxIDAgMCAxIDMgNVptNC41LTFhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMSAwIDAtMWgtNlptLTMgNGEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAxIDAgMC0xaC05Wk0yIDEwLjVjMC0uMjguMjItLjUuNS0uNWg5YS41LjUgMCAxIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjVaTTQuNSAxMmEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAxIDAgMC0xaC05WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3QyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDUuNWExIDEgMCAwIDEgMS44NC0uNTYuNzUuNzUgMCAwIDAgMS4yNC0uODNBMi41IDIuNSAwIDEgMCA0LjYgOGgxMC42N2EuNzUuNzUgMCAwIDAgMC0xLjVINC41YTEgMSAwIDAgMS0xLTFaTTkuNzUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0tNCA1YS43NS43NSAwIDAgMCAwIDEuNWgxMS41YS43NS43NSAwIDEgMCAwLTEuNUg1Ljc1Wk0yIDEyLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMTIuNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNS43NSAxNGEuNzUuNzUgMCAwIDAgMCAxLjVoMTEuNWEuNzUuNzUgMCAxIDAgMC0xLjVINS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWRpbmdMaXN0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdMaXN0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA2LjI1YTEuMjUgMS4yNSAwIDAgMSAyLjMtLjcuNS41IDAgMSAwIC44Mi0uNTUgMi4yNSAyLjI1IDAgMSAwLTEuNzQgMy41SDE1LjVhLjUuNSAwIDAgMCAwLTFINC4zOGEuNS41IDAgMCAwLS4wNiAwQTEuMjUgMS4yNSAwIDAgMSAzIDYuMjVaTTguNSA1YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTlabS0zIDVhLjUuNSAwIDAgMCAwIDFoMTJhLjUuNSAwIDAgMCAwLTFoLTEyWk0yIDEzYzAtLjI4LjIyLS41LjUtLjVoMTJhLjUuNSAwIDAgMSAwIDFoLTEyQS41LjUgMCAwIDEgMiAxM1ptMy41IDJhLjUuNSAwIDAgMCAwIDFoMTJhLjUuNSAwIDEgMCAwLTFoLTEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3QyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjAgMThhMSAxIDAgMCAxIC4xMiAySDdhMSAxIDAgMCAxLS4xMi0ySDIwWm0tMy0zYTEgMSAwIDAgMSAuMTIgMkg0YTEgMSAwIDAgMS0uMTItMkgxN1ptMy0zYTEgMSAwIDAgMSAuMTIgMkg3YTEgMSAwIDAgMS0uMTItMkgyMFpNNiA1YTMgMyAwIDAgMSAyLjc4IDEuODcgMSAxIDAgMCAxLTEuOC44NmwtLjA1LS4xQTEgMSAwIDEgMCA2IDloMTEuNWExIDEgMCAwIDEgLjEyIDJINmEzIDMgMCAwIDEgMC02Wm0xNCAxYTEgMSAwIDAgMSAuMTIgMkgxMWExIDEgMCAwIDEtLjEyLTJIMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTGlzdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTcgMThoMTNhLjc1Ljc1IDAgMCAxIC4xIDEuNUg3YS43NS43NSAwIDAgMS0uMS0xLjVIN1ptMTAtM2EuNzUuNzUgMCAwIDEgLjEgMS41SDRhLjc1Ljc1IDAgMCAxLS4xLTEuNUgxN1ptMy0zYS43NS43NSAwIDAgMSAuMSAxLjVIN2EuNzUuNzUgMCAwIDEtLjEtMS41SDIwWk02IDVjMS4xMyAwIDIuMTMuNjkgMi41NSAxLjcyYS43NS43NSAwIDAgMS0xLjM1LjY1bC0uMDQtLjA5QTEuMjUgMS4yNSAwIDEgMCA2IDloMTEuNWEuNzUuNzUgMCAwIDEgLjEgMS41SDZBMi43NSAyLjc1IDAgMCAxIDYgNVptMTQgMWEuNzUuNzUgMCAwIDEgLjEgMS41SDExYS43NS43NSAwIDAgMS0uMS0xLjVIMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTGlzdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdMaXN0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk00IDcuNWExLjUgMS41IDAgMCAxIDIuNzUtLjgzQTEgMSAwIDAgMCA4LjQgNS41NiAzLjUgMy41IDAgMSAwIDUuNDggMTFIMjFhMSAxIDAgMSAwIDAtMkg1LjVBMS41IDEuNSAwIDAgMSA0IDcuNVpNMTIgNWExIDEgMCAxIDAgMCAyaDEzYTEgMSAwIDEgMCAwLTJIMTJabS01IDhhMSAxIDAgMSAwIDAgMmgxOGExIDEgMCAxIDAgMC0ySDdabS01IDVhMSAxIDAgMCAxIDEtMWgxOGExIDEgMCAxIDEgMCAySDNhMSAxIDAgMCAxLTEtMVptNSAzYTEgMSAwIDEgMCAwIDJoMThhMSAxIDAgMSAwIDAtMkg3WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3QyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3QyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjUgNy41MWExLjk4IDEuOTggMCAwIDEgMy42My0xLjEuNzUuNzUgMCAxIDAgMS4yNS0uODMgMy40OCAzLjQ4IDAgMSAwLTIuOTQgNS40Yy4wNS4wMi4xLjAyLjE0LjAyaDE1LjY3YS43NS43NSAwIDAgMCAwLTEuNUg1LjYyYS43NS43NSAwIDAgMC0uMTQtLjAxYy0xLjEgMC0xLjk4LS44OS0xLjk4LTEuOThaTTExLjc1IDZhLjc1Ljc1IDAgMCAwIDAgMS41aDEzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xMy41Wm0tNSA3LjI1YS43NS43NSAwIDAgMCAwIDEuNWgxOC41YS43NS43NSAwIDAgMCAwLTEuNUg2Ljc1Wk0yIDE3Ljc1YzAtLjQxLjMzLS43NS43NS0uNzVoMTguNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNC43NCAyLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxOC41YS43NS43NSAwIDAgMCAwLTEuNUg2Ljc0WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdEFkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy41IDMuODhhLjYxLjYxIDAgMCAxIDEuMTMtLjM0Ljc1Ljc1IDAgMCAwIDEuMjQtLjgzIDIuMTEgMi4xMSAwIDEgMC0yLjA5IDMuMjZjLjA3LjAyLjE1LjAzLjIyLjAzaDMuMzRhNS40NyA1LjQ3IDAgMCAxIDQuNzItLjc4Ljc1Ljc1IDAgMCAwLS43NS0uNzJINC4xMWEuNjEuNjEgMCAwIDEtLjYxLS42MlpNNC43NSA3aDEuNWE1LjUgNS41IDAgMCAwLS44OCAxLjVoLS42MmEuNzUuNzUgMCAwIDEgMC0xLjVabS0yIDIuNWgyLjM0YTUuNTMgNS41MyAwIDAgMC0uMDcgMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0yIDIuNWguNDZjLjE1LjU0LjM4IDEuMDQuNjggMS41SDQuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0zLTEwYS43NS43NSAwIDEgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVaTTE1IDEwLjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTBIOC41YS41LjUgMCAwIDAgMCAxSDEwdjEuNWEuNS41IDAgMSAwIDEgMFYxMWgxLjVhLjUuNSAwIDAgMCAwLTFIMTFWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3RBZGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zIDRhMSAxIDAgMCAxIDEuODQtLjU2LjUuNSAwIDEgMCAuODMtLjU1QTIgMiAwIDEgMCA0LjA3IDZoMy4yN2MuODktLjYzIDEuOTgtMSAzLjE1LTFINC4wOGEuNS41IDAgMCAwLS4wNCAwQTEgMSAwIDAgMSAzIDRabS41IDNoMi43NmMtLjI2LjMtLjQ4LjY0LS42NiAxSDMuNWEuNS41IDAgMSAxIDAtMVptLTEgMmgyLjdjLS4wOC4zMi0uMTUuNjYtLjE4IDFIMi41YS41LjUgMCAwIDEgMC0xWm0xIDJoMS41MmMuMDMuMzQuMS42OC4xOSAxSDMuNWEuNS41IDAgMCAxIDAtMVptNC04YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDEgMCAwLTFoLTZabTcuNSA3LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDEgMC0xIDBWMTBIOC41YS41LjUgMCAwIDAgMCAxSDEwdjEuNWEuNS41IDAgMCAwIDEgMFYxMWgxLjVhLjUuNSAwIDEgMCAwLTFIMTFWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDUuNWExIDEgMCAwIDEgMS44NC0uNTYuNzUuNzUgMCAwIDAgMS4yNC0uODNBMi41IDIuNSAwIDEgMCA0LjYgOGgxMC42N2EuNzUuNzUgMCAwIDAgMC0xLjVINC41YTEgMSAwIDAgMS0xLTFaTTkuNzUgNGEuNzUuNzUgMCAwIDAgMCAxLjVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41Wm0tNCA1YS43NS43NSAwIDAgMCAwIDEuNWg0Ljk4QTUuNDggNS40OCAwIDAgMSAxNC41IDlINS43NVptLTMgMi41aDcuMTRjLS4zLjQ2LS41My45Ni0uNjggMS41SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0zIDIuNWgzLjI3YTUuNTcgNS41NyAwIDAgMCAuMDcgMS41SDUuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0xMy4yNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAxIDAgMSAwVjE1aDEuNWEuNS41IDAgMSAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3RBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuMjVhMS4yNSAxLjI1IDAgMCAxIDIuMy0uNy41LjUgMCAxIDAgLjgyLS41NSAyLjI1IDIuMjUgMCAxIDAtMS43NCAzLjVIMTUuNWEuNS41IDAgMCAwIDAtMUg0LjM4YS41LjUgMCAwIDAtLjA2IDBBMS4yNSAxLjI1IDAgMCAxIDMgNS4yNVpNOC41IDRhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOVptLTMgNWEuNS41IDAgMCAwIDAgMWg1Ljg0Yy45LS42MyAxLjk4LTEgMy4xNi0xaC05Wm0tMyAyLjVoNy4zOWMtLjIuMzEtLjM4LjY1LS41MiAxSDIuNWEuNS41IDAgMCAxIDAtMVptMyAyLjVoMy41MmE1LjU3IDUuNTcgMCAwIDAgMCAxSDUuNWEuNS41IDAgMCAxIDAtMVptMTMuNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTGlzdEFkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAgMTEgNS41IDUuNSAwIDAgMSAwLTExWm0wIDJoLS4wOWEuNS41IDAgMCAwLS40LjRsLS4wMS4xVjE3aC0yLjZhLjUuNSAwIDAgMC0uNC40MXYuMThjLjA0LjIuMi4zNi40LjRsLjEuMDFIMTd2Mi42Yy4wNS4yLjIuMzYuNDEuNGguMThhLjUuNSAwIDAgMCAuNC0uNGwuMDEtLjFWMThoMi42YS41LjUgMCAwIDAgLjQtLjQxdi0uMThhLjUuNSAwIDAgMC0uNC0uNGwtLjEtLjAxSDE4di0yLjZhLjUuNSAwIDAgMC0uNDEtLjRoLS4wOVptLTYuNDggNGMuMDUuNy4yMiAxLjM4LjQ4IDJIN2ExIDEgMCAwIDEtLjEyLTJoNC4xNFptLjQ4LTNjLS4yNi42Mi0uNDMgMS4zLS40OCAySDRhMSAxIDAgMCAxLS4xMi0yaDcuNjJabTIuNTQtM2MtLjgxLjUxLTEuNSAxLjItMi4wMiAySDdhMSAxIDAgMCAxLS4xMi0yaDcuMTZaTTYgNWEzIDMgMCAwIDEgMi43OCAxLjg3IDEgMSAwIDAgMS0xLjguODZsLS4wNS0uMUExIDEgMCAxIDAgNiA5aDExLjVhMSAxIDAgMCAxIC4xMiAySDZhMyAzIDAgMCAxIDAtNlptMTQgMWExIDEgMCAwIDEgLjEyIDJIMTFhMSAxIDAgMCAxLS4xMi0ySDIwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVhZGluZ0xpc3RBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhZGluZ0xpc3RBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMCAxMSA1LjUgNS41IDAgMCAxIDAtMTFabTAgMmgtLjA5YS41LjUgMCAwIDAtLjQuNGwtLjAxLjFWMTdoLTIuNmEuNS41IDAgMCAwLS40LjQxdi4xOGMuMDQuMi4yLjM2LjQuNGwuMS4wMUgxN3YyLjZjLjA1LjIuMi4zNi40MS40aC4xOGEuNS41IDAgMCAwIC40LS40bC4wMS0uMVYxOGgyLjZhLjUuNSAwIDAgMCAuNC0uNDF2LS4xOGEuNS41IDAgMCAwLS40LS40bC0uMS0uMDFIMTh2LTIuNmEuNS41IDAgMCAwLS40MS0uNGgtLjA5Wm0tNi40OCA0Yy4wNC41Mi4xNCAxLjAyLjMgMS41SDdhLjc1Ljc1IDAgMCAxLS4xLTEuNUgxMS4wMlptLjQ4LTNjLS4yLjQ3LS4zNC45OC0uNDIgMS41SDRhLjc1Ljc1IDAgMCAxLS4xLTEuNWg3LjZabTIuNTQtM2MtLjY0LjQtMS4yLjkxLTEuNjYgMS41SDdhLjc1Ljc1IDAgMCAxLS4xLTEuNWg3LjE0Wk02IDVjMS4xMyAwIDIuMTMuNjkgMi41NSAxLjcyYS43NS43NSAwIDAgMS0xLjM1LjY1bC0uMDQtLjA5QTEuMjUgMS4yNSAwIDEgMCA2IDloMTEuNWEuNzUuNzUgMCAwIDEgLjEgMS41SDZBMi43NSAyLjc1IDAgMCAxIDYgNVptMTQgMWEuNzUuNzUgMCAwIDEgLjEgMS41SDExYS43NS43NSAwIDAgMS0uMS0xLjVIMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTGlzdEFkZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdMaXN0QWRkMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk00IDcuNWExLjUgMS41IDAgMCAxIDIuNzUtLjgzQTEgMSAwIDAgMCA4LjQgNS41NiAzLjUgMy41IDAgMSAwIDUuNDYgMTFIMjFhMSAxIDAgMSAwIDAtMkg1LjVBMS41IDEuNSAwIDAgMSA0IDcuNVpNMTIgNWExIDEgMCAxIDAgMCAyaDEzYTEgMSAwIDEgMCAwLTJIMTJabS01IDhhMSAxIDAgMSAwIDAgMmg4LjRhNy40NyA3LjQ3IDAgMCAxIDUuMDYtMkg3Wm0tNCA0aDEwLjg3Yy0uMzMuNjItLjU4IDEuMy0uNzIgMkgzYTEgMSAwIDEgMSAwLTJabTQgNGg2LjAyYy4wNC43LjE4IDEuMzcuNCAySDdhMSAxIDAgMSAxIDAtMlptMjAtLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYyMGgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMCAwIDEgMFYyMWgzLjVhLjUuNSAwIDAgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWRpbmdMaXN0QWRkMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdMaXN0QWRkMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMy41IDcuNTFhMS45OCAxLjk4IDAgMCAxIDMuNjMtMS4xLjc1Ljc1IDAgMSAwIDEuMjUtLjgzIDMuNDggMy40OCAwIDEgMC0yLjkzIDUuNGMuMDQuMDIuMDguMDIuMTMuMDJoMTUuNjdhLjc1Ljc1IDAgMSAwIDAtMS41SDUuNjJhLjc1Ljc1IDAgMCAwLS4xNC0uMDFDNC40IDkuNDkgMy41IDguNiAzLjUgNy41Wk0xMS43NSA2YS43NS43NSAwIDAgMCAwIDEuNWgxMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMTMuNVptLTUgNy4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC45M2E3LjQ4IDcuNDggMCAwIDEgMi45LTEuNUg2Ljc0Wm0tNCAzLjc1aDExLjExYy0uMjQuNDctLjQ1Ljk3LS41OSAxLjVIMi43NWEuNzUuNzUgMCAxIDEgMC0xLjVabTQgMy41SDEzYzAgLjUxLjA1IDEuMDIuMTUgMS41aC02LjRhLjc1Ljc1IDAgMSAxIDAtMS41Wm0yMC4yNSAwYTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS02LTRhLjUuNSAwIDAgMC0xIDBWMjBoLTMuNWEuNS41IDAgMSAwIDAgMUgyMHYzLjVhLjUuNSAwIDEgMCAxIDBWMjFoMy41YS41LjUgMCAxIDAgMC0xSDIxdi0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTW9kZU1vYmlsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdNb2RlTW9iaWxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDMuNUM0IDIuNjcgNC42NyAyIDUuNSAyaDljLjgzIDAgMS41LjY3IDEuNSAxLjV2MTNjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgNCAxNi41di0xM1ptMiAzYzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wk02LjUgOGEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03Wk02IDEwLjVjMCAuMjguMjIuNS41LjVoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTW9kZU1vYmlsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTW9kZU1vYmlsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuNSA2YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTdaTTYgOC41YzAtLjI4LjIyLS41LjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpNNCAzLjVDNCAyLjY3IDQuNjcgMiA1LjUgMmg5Yy44MyAwIDEuNS42NyAxLjUgMS41djEzYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDQgMTYuNXYtMTNaTTUuNSAzYS41LjUgMCAwIDAtLjUuNXYxM2MwIC4yOC4yMi41LjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTEzYS41LjUgMCAwIDAtLjUtLjVoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTW9kZU1vYmlsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWRpbmdNb2RlTW9iaWxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy43NSAyYzEuMiAwIDIuMTcuOTMgMi4yNCAyLjFsLjAxLjE1djE1LjVjMCAxLjE5LS45MyAyLjE2LTIuMSAyLjI0SDYuMjVjLTEuMiAwLTIuMTctLjkyLTIuMjQtMi4wOUw0IDE5Ljc1VjQuMjVjMC0xLjE5LjkzLTIuMTYgMi4xLTIuMjRoMTEuNjVabS01LjUgMTFoLTQuNmEuNzUuNzUgMCAwIDAgMCAxLjVIMTIuMzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMVptNC0zaC04LjZhLjc1Ljc1IDAgMCAwIDAgMS41aDguN2EuNzUuNzUgMCAwIDAgMC0xLjVoLS4xWm0wLTNoLTguNmEuNzUuNzUgMCAwIDAgMCAxLjVoOC43YS43NS43NSAwIDAgMCAwLTEuNWgtLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFkaW5nTW9kZU1vYmlsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWFkaW5nTW9kZU1vYmlsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc1IDJjMS4yIDAgMi4xNy45MyAyLjI0IDIuMWwuMDEuMTV2MTUuNWMwIDEuMTktLjkzIDIuMTYtMi4xIDIuMjRINi4yNWMtMS4yIDAtMi4xNy0uOTItMi4yNC0yLjA5TDQgMTkuNzVWNC4yNWMwLTEuMTkuOTMtMi4xNiAyLjEtMi4yNGgxMS42NVptMCAxLjVINi4yNWMtLjM4IDAtLjcuMjgtLjc0LjY1bC0uMDEuMXYxNS41YzAgLjM4LjI4LjcuNjUuNzRoMTEuNmMuMzggMCAuNy0uMjcuNzQtLjY0bC4wMS0uMVY0LjI1YzAtLjM4LS4yOC0uNy0uNjUtLjc0aC0uMVptLTUuNSA5LjVhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtNC42YS43NS43NSAwIDAgMS0uMS0xLjVoNC42Wm00LTNhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtOC42YS43NS43NSAwIDAgMS0uMS0xLjVoOC42Wm0wLTNhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtOC42YS43NS43NSAwIDAgMS0uMS0xLjVoOC42WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhbEVzdGF0ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWxFc3RhdGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgM2ExIDEgMCAwIDEgMiAwaDEzYTEgMSAwIDEgMSAwIDJINHYxMi41YS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41VjNabTMgMy41YzAtLjI4LjIyLS41LjUtLjVoMTFjLjI4IDAgLjUuMjIuNS41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgNSAxMy41di03Wm0zIDdjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjV2MWMwIC4yOC4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTIuNTVhMSAxIDAgMCAwLS4zNC0uNzVsLTIuMzMtMi4wN2EuNS41IDAgMCAwLS42NiAwTDguMzQgMTAuMmExIDEgMCAwIDAtLjM0Ljc1djIuNTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWFsRXN0YXRlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWxFc3RhdGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDMuNUExLjUgMS41IDAgMCAxIDQuOTEgM0gxNi41YTEuNSAxLjUgMCAwIDEgLjUgMi45MlYxM2EzIDMgMCAwIDEtMyAzSDdjLS43NyAwLTEuNDctLjI5LTItLjc2djIuMDFjMCAuNDEtLjM0Ljc1LS43NS43NWgtMS41YS43NS43NSAwIDAgMS0uNzUtLjc1VjMuNVpNMTYgMTNWNkg1djdjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJaTTQgNWgxMi41YS41LjUgMCAwIDAgMC0xSDR2LS41YS41LjUgMCAwIDAtMSAwVjE3aDFWNVptMy41IDQuOTV2Mi41NmMwIC4yNy4yMi41LjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXYxYzAgLjI3LjIyLjUuNS41aDFhLjUuNSAwIDAgMCAuNS0uNVY5Ljk1YTEgMSAwIDAgMC0uMzQtLjc0bC0yLjMzLTIuMDdhLjUuNSAwIDAgMC0uNjYgMEw3Ljg0IDkuMmExIDEgMCAwIDAtLjM0Ljc0WlwiXSk7XG5leHBvcnQgY29uc3QgUmVhbEVzdGF0ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlYWxFc3RhdGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgMjEuNVYzYTEgMSAwIDAgMSAyIDB2Ljk2aDE2Ljk4YTEuMDIgMS4wMiAwIDAgMSAwIDIuMDRINHYxNS41YS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41Wm0zLTE0YzAtLjI4LjIyLS41LjUtLjVoMTRjLjI4IDAgLjUuMjIuNS41djcuNzVBMy43NSAzLjc1IDAgMCAxIDE2LjI1IDE5aC03LjVBMy43NSAzLjc1IDAgMCAxIDUgMTUuMjVWNy41Wm00LjM1IDQuMmExIDEgMCAwIDAtLjM1Ljc2djMuMDRjMCAuMjguMjIuNS41LjVoMS43NWMuMTQgMCAuMjUtLjExLjI1LS4yNVYxNC41YzAtLjI4LjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjV2MS4yNWMwIC4xNC4xMS4yNS4yNS4yNWgxLjc1YS41LjUgMCAwIDAgLjUtLjV2LTMuMDRhMSAxIDAgMCAwLS4zNS0uNzZsLTIuODItMi40MmEuNS41IDAgMCAwLS42NiAwTDkuMzUgMTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlYWxFc3RhdGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVhbEVzdGF0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNSA0LjI1VjIwLjVINXYtMTRoMTQuNzNhLjc3Ljc3IDAgMCAwIDAtMS41NEg1VjQuMmEuNy43IDAgMCAwLS43LS43MWgtLjA1YS43NS43NSAwIDAgMC0uNzUuNzVaTTIyIDUuNzNjMCAuNzgtLjQgMS40Ny0xIDEuODh2Ny42NEEzLjc1IDMuNzUgMCAwIDEgMTcuMjUgMTloLTguNWMtLjg0IDAtMS42Mi0uMjgtMi4yNS0uNzV2Mi41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMkMyLjU2IDIyIDIgMjEuNDQgMiAyMC43NVY0LjI1QzIgMy4wMSAzIDIgNC4yNSAyaC4wNGMuOTYgMCAxLjc3LjYgMi4wOCAxLjQ2aDEzLjM2QTIuMjcgMi4yNyAwIDAgMSAyMiA1LjczWk02LjUgOHY3LjI1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDguNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY4aC0xM1ptMyA0LjQ2YTEgMSAwIDAgMSAuMzUtLjc2bDIuODItMi40MmEuNS41IDAgMCAxIC42NiAwbDIuODIgMi40MmExIDEgMCAwIDEgLjM1Ljc2djMuMDRhLjUuNSAwIDAgMS0uNS41aC0xLjc1YS4yNS4yNSAwIDAgMS0uMjUtLjI1VjE0LjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2MS4yNWMwIC4xNC0uMTEuMjUtLjI1LjI1SDEwYS41LjUgMCAwIDEtLjUtLjV2LTMuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiAzLjc1QzIgMi43OCAyLjc4IDIgMy43NSAyaDUuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVYxMGgzdjEuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSAyIDExLjVWMy43NVpNMTEgMTNoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjExaC0ydjJaTTQuNSA1LjVjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMUg1YS41LjUgMCAwIDAtLjUuNVptLjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xSDVabS0uNSAzYzAgLjI4LjIyLjUuNS41aDEuNWEuNS41IDAgMCAwIDAtMUg1YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuNzUgMkMyLjc4IDIgMiAyLjc4IDIgMy43NXY3Ljc1QTIuNSAyLjUgMCAwIDAgNC41IDE0aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41VjEwaC0zVjMuNzVDMTEgMi43OCAxMC4yMiAyIDkuMjUgMmgtNS41Wk0xMSAxMWgydi41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMXYtMlpNMyAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoNS41Yy40MSAwIC43NS4zNC43NS43NVYxM0g0LjVBMS41IDEuNSAwIDAgMSAzIDExLjVWMy43NVpNNC41IDUuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxLS41LS41Wm0wIDIuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxLS41LS41Wm0uNSAyYS41LjUgMCAwIDAgMCAxaDEuNWEuNS41IDAgMCAwIDAtMUg1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y1Wm0xMSAxMWEyIDIgMCAwIDAgMi0ydi0xaC0ydjNaTTYuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgM2EuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0wIDNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y1Wm0xMSA4djNhMiAyIDAgMCAwIDItMnYtMWgtMlptLTEgM1Y1YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjljMCAxLjEuOSAyIDIgMmg3Wk02IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyA1LjI1QzMgNC4wMSA0IDMgNS4yNSAzaDkuNUMxNS45OSAzIDE3IDQgMTcgNS4yNVYxNGg0djMuNzVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjUuMjVaTTE3IDE5LjVoLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNS41SDE3djRaTTYuNSA3Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1Wk03LjI1IDExYS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVabS0uNzUgNC43NWMwIC40MS4zNC43NS43NS43NWgzYS43NS43NSAwIDAgMCAwLTEuNWgtM2EuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA1LjI1QzMgNC4wMSA0IDMgNS4yNSAzaDkuNUMxNS45OSAzIDE3IDQgMTcgNS4yNVYxNGg0djMuNzVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjUuMjVaTTE3IDE5LjVoLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNS41SDE3djRaTTUuMjUgNC41YS43NS43NSAwIDAgMC0uNzUuNzV2MTIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg5LjI1VjUuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTkuNVptMiAyLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVptLS43NSA0Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoNS41YS43NS43NSAwIDAgMSAwIDEuNWgtNS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk03LjI1IDE1YS43NS43NSAwIDAgMCAwIDEuNWgzYS43NS43NSAwIDAgMCAwLTEuNWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2gxMS41QTIuNzUgMi43NSAwIDAgMSAyMCA1Ljc1VjE3aDV2NC4yNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY1Ljc1Wk0yMCAyMy41aDEuMjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjVWMTguNUgyMHY1Wk03IDguNzVjMCAuNDEuMzQuNzUuNzUuNzVoNy41YS43NS43NSAwIDAgMCAwLTEuNWgtNy41YS43NS43NSAwIDAgMC0uNzUuNzVaTTcuNzUgMTNhLjc1Ljc1IDAgMCAwIDAgMS41aDcuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTcuNVpNNyAxOC43NWMwIC40MS4zNC43NS43NS43NWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVhLjc1Ljc1IDAgMCAwLS43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDExLjVBMi43NSAyLjc1IDAgMCAxIDIwIDUuNzVWMTdoNXY0LjI1QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjUuNzVaTTIwIDIzLjVoMS4yNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVYxOC41SDIwdjVaTTUuNzUgNC41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxNS41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1SDE4LjVWNS43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINS43NVptMiAzLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDcuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTcuNVpNNyAxMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNy43NSAxOGEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMy41QzIxLjU1IDMgMjMgNC40NiAyMyA2LjI1VjE5aDZ2NS41YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTdBNC41IDQuNSAwIDAgMSAzIDI0LjVWNi4yNVpNMjMgMjdoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYyMWgtNHY2Wk04IDEwYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAxIDAgMC0ySDlhMSAxIDAgMCAwLTEgMVptMSA1YTEgMSAwIDEgMCAwIDJoOGExIDEgMCAxIDAgMC0ySDlabS0xIDdhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDEgMCAwLTJIOWExIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDEzLjVDMjEuNTUgMyAyMyA0LjQ2IDIzIDYuMjVWMTloNnY1LjVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xN0E0LjUgNC41IDAgMCAxIDMgMjQuNVY2LjI1Wk0yMyAyN2gxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjIxaC00djZaTTYuMjUgNUM1LjU2IDUgNSA1LjU2IDUgNi4yNVYyNC41QTIuNSAyLjUgMCAwIDAgNy41IDI3SDIxVjYuMjVDMjEgNS41NiAyMC40NCA1IDE5Ljc1IDVINi4yNVpNOSA5YTEgMSAwIDAgMCAwIDJoOGExIDEgMCAxIDAgMC0ySDlabS0xIDdhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDEgMSAwIDJIOWExIDEgMCAwIDEtMS0xWm0xIDVhMSAxIDAgMSAwIDAgMmg0YTEgMSAwIDEgMCAwLTJIOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0QWRkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC42YTUuNDggNS40OCAwIDAgMC0xLjc0LTdoMi44NGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS40Mi4yM0E1LjUgNS41IDAgMCAwIDQgOS4yMVY1Wm0xMSAxMWEyIDIgMCAwIDAgMi0ydi0xaC0ydjNaTTcuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTIuNSA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUg2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0QWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC42Yy4xNi0uMzIuMy0uNjUuNC0xSDE0VjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2NC4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjVabTcuNSA1SDguNjZhNS40OCA1LjQ4IDAgMCAwLTEuNTgtLjc3QS41LjUgMCAwIDEgNy41IDloNGEuNS41IDAgMCAxIDAgMVptMy41IDZhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMyA4YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRBZGQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNS4yNUM0IDQuMDEgNSAzIDYuMjUgM2g5LjVDMTYuOTkgMyAxOCA0IDE4IDUuMjVWMTRoNHYzLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTYuNzdhNi40NyA2LjQ3IDAgMCAwLTEuMzMtOC41aDMuMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNWMtLjE2IDAtLjMuMDUtLjQzLjEzQTYuNTMgNi41MyAwIDAgMCA0IDExLjVWNS4yNVpNMTggMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTh2NFpNNy41IDcuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVaTTEyIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFpNNyAxOHYyLjVhLjUuNSAwIDEgMS0xIDBWMThIMy41YS41LjUgMCAwIDEgMC0xSDZ2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdEFkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQgNS4yNUM0IDQuMDEgNSAzIDYuMjUgM2g5LjVDMTYuOTkgMyAxOCA0IDE4IDUuMjVWMTRoNHYzLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTYuNzdjLjMtLjQ2LjUzLS45Ny43LTEuNWgzLjgyVjUuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTkuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djUuODNjLS41Mi4wOC0xLjAzLjIyLTEuNS40MlY1LjI1Wm05Ljc1IDcuMjVoLTMuMWE2LjQ4IDYuNDggMCAwIDAtMi44My0xLjM3Ljc1Ljc1IDAgMCAxIC40My0uMTNoNS41YS43NS43NSAwIDAgMSAwIDEuNVptNC4yNSA3aC43NWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMTUuNUgxOHY0Wk04LjI1IDdhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVpNMTIgMTcuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWk03IDE4djIuNWEuNS41IDAgMSAxLTEgMFYxOEgzLjVhLjUuNSAwIDAgMSAwLTFINnYtMi41YS41LjUgMCAxIDEgMSAwVjE3aDIuNWEuNS41IDAgMCAxIDAgMUg3WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEJhZzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRCYWcyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzaC01di00LjVjMC0uNjUtLjQyLTEuMi0xLTEuNDFWMTFhMyAzIDAgMCAwLS4xNy0xaDIuNjdhLjUuNSAwIDAgMCAwLTFIOC4yNEEzIDMgMCAwIDAgNSA4LjE3IDMgMyAwIDAgMCA0IDhWNVptMTEgMTFhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03LjUgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wk00IDlhMiAyIDAgMCAxIDEgLjI3QTIgMiAwIDAgMSA4IDExdjFoLjVjLjI4IDAgLjUuMjIuNS41VjE3YTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0ydi00LjVjMC0uMjguMjItLjUuNS0uNUgydi0xYzAtMS4xLjktMiAyLTJabTEgM3YtMWExIDEgMCAxIDAtMiAwdjFoMlptLjc1LTEuOTdBMiAyIDAgMCAxIDYgMTF2MWgxdi0xYTEgMSAwIDAgMC0xLjI1LS45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRCYWcyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdEJhZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzaC01di0xaDRWNWExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzLjE3QTMgMyAwIDAgMCA0IDhWNVptNy41IDVIOC44M2EzIDMgMCAwIDAtLjYtMWgzLjI3YS41LjUgMCAwIDEgMCAxWm0zLjUgM3YzYTIgMiAwIDAgMCAyLTJ2LTFoLTJaTTcgNi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wk00IDlhMiAyIDAgMCAxIDEgLjI3QTIgMiAwIDAgMSA4IDExdjFoLjVjLjI4IDAgLjUuMjIuNS41VjE3YTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0ydi00LjVjMC0uMjguMjItLjUuNS0uNUgydi0xYzAtMS4xLjktMiAyLTJabTEgM3YtMWExIDEgMCAxIDAtMiAwdjFoMlptLjc1LTEuOTdBMiAyIDAgMCAxIDYgMTF2MWgxdi0xYTEgMSAwIDAgMC0xLjI1LS45N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRCYWcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0QmFnMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00IDUuMjVDNCA0LjAxIDUgMyA2LjI1IDNoOS41QzE2Ljk5IDMgMTggNCAxOCA1LjI1VjE0aDR2My43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC03LjI2bC4wMS0uMjV2LTZjMC0uNy0uNC0xLjMtMS0xLjU4VjEzYzAtLjE3LS4wMS0uMzQtLjA0LS41aDMuMjlhLjc1Ljc1IDAgMCAwIDAtMS41SDkuODdhMy41IDMuNSAwIDAgMC00LjEyLTEuMjdBMy41IDMuNSAwIDAgMCA0IDkuNTNWNS4yNlpNMTggMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTh2NFpNNy41IDcuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVabS02LjUgN2MwLS40MS4zNC0uNzUuNzUtLjc1SDJ2LTFhMi41IDIuNSAwIDAgMSAzLjc1LTIuMTdBMi41IDIuNSAwIDAgMSA5LjUgMTN2MWguMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djZjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTVDMi4wMSAyMyAxIDIyIDEgMjAuNzV2LTZaTTcgMTN2MWgxdi0xYTEgMSAwIDAgMC0xLjItLjk4Yy4xMy4zLjIuNjMuMi45OFptLTEuNSAxdi0xYTEgMSAwIDAgMC0yIDB2MWgyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEJhZzI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0QmFnMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzQzUuMDEgMyA0IDQgNCA1LjI1djQuMjlhMy41MyAzLjUzIDAgMCAxIDEuNS4xVjUuMjZjMC0uNDEuMzQtLjc1Ljc1LS43NWg5LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1VjE5LjVoLTVWMjFoNy4yNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjE0aC00VjUuMjVDMTggNC4wMSAxNyAzIDE1Ljc1IDNoLTkuNVptNC4yMSA5LjVoMy4yOWEuNzUuNzUgMCAwIDAgMC0xLjVIOS44N2MuMy40NC41Mi45NS42IDEuNVptOC4yOSA3SDE4di00aDIuNXYyLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NVpNNy41IDcuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS02LjUgN2MwLS40MS4zNC0uNzUuNzUtLjc1SDJ2LTFhMi41IDIuNSAwIDAgMSAzLjc1LTIuMTdBMi41IDIuNSAwIDAgMSA5LjUgMTN2MWguMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djZjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTVDMi4wMSAyMyAxIDIyIDEgMjAuNzV2LTZaTTcgMTN2MWgxdi0xYTEgMSAwIDAgMC0xLjItLjk4Yy4xMy4zLjIuNjMuMi45OFptLTEuNSAxdi0xYTEgMSAwIDAgMC0yIDB2MWgyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEN1YmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0Q3ViZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCA1YzAtMS4xLjktMiAyLTJoN2EyIDIgMCAwIDEgMiAydjdoM3YyYTMgMyAwIDAgMS0zIDNIOS45NGEyIDIgMCAwIDAgLjA2LS41di00YTIgMiAwIDAgMC0xLjEtMS43OUw3LjQ2IDEwYS41LjUgMCAwIDAgLjAzIDBoNGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS4zOC44MmwtMS4yMy0uNmEyIDIgMCAwIDAtMS43OCAwTDQgOS4yNVY1Wm0xMSAxMWEyIDIgMCAwIDAgMi0ydi0xaC0ydjNaTTcuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabS45NSA1LjYtMy0xLjVhMSAxIDAgMCAwLS45IDBsLTMgMS41YTEgMSAwIDAgMC0uNTUuOXY0YTEgMSAwIDAgMCAuNTUuOWwzIDEuNWExIDEgMCAwIDAgLjkgMGwzLTEuNWExIDEgMCAwIDAgLjU1LS45di00YTEgMSAwIDAgMC0uNTUtLjlabS02LjQxIDEuMTNhLjUuNSAwIDAgMSAuNjYtLjI2bDIuMy45OSAyLjMtMWEuNS41IDAgMCAxIC40LjkzbC0yLjIuOTRWMTdhLjUuNSAwIDEgMS0xIDB2LTIuNjdsLTIuMi0uOTRhLjUuNSAwIDAgMS0uMjYtLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEN1YmUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdEN1YmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM0g5Ljk0YTIgMiAwIDAgMCAuMDYtLjVWMTZoNFY1YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjRhMiAyIDAgMCAwLS45LjIxbC0uMS4wNVY1Wm0zLjUgNWEuNS41IDAgMCAxLS4wMyAwbC0uMzUtLjE4QS41LjUgMCAwIDEgNy41IDloNGEuNS41IDAgMCAxIDAgMWgtNFptNy41IDN2M2EyIDIgMCAwIDAgMi0ydi0xaC0yWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMS40NSA1LjEtMy0xLjVhMSAxIDAgMCAwLS45IDBsLTMgMS41YTEgMSAwIDAgMC0uNTUuOXY0YTEgMSAwIDAgMCAuNTUuOWwzIDEuNWExIDEgMCAwIDAgLjkgMGwzLTEuNWExIDEgMCAwIDAgLjU1LS45di00YTEgMSAwIDAgMC0uNTUtLjlabS02LjQxIDEuMTNhLjUuNSAwIDAgMSAuNjYtLjI2bDIuMy45OSAyLjMtMWEuNS41IDAgMCAxIC40LjkzbC0yLjIuOTRWMTdhLjUuNSAwIDEgMS0xIDB2LTIuNjdsLTIuMi0uOTRhLjUuNSAwIDAgMS0uMjYtLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdEN1YmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0Q3ViZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCA1LjI1QzQgNC4wMSA1IDMgNi4yNSAzaDkuNUMxNi45OSAzIDE4IDQgMTggNS4yNVYxNGg0djMuNzVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNy4wOGMuMjEtLjM3LjMzLS44LjMzLTEuMjV2LTQuNWEyLjUgMi41IDAgMCAwLTEuMzgtMi4yNGwtMS4wMy0uNTFoNC4xNmEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNWMtLjMyIDAtLjYuMi0uNy40OGwtLjQzLS4yMmEyLjUgMi41IDAgMCAwLTIuMjQgMEw0IDExLjdWNS4yNVpNMTggMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTh2NFpNNy41IDcuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVabTIuNjcgNi4xNi0zLjUtMS43NWExLjUgMS41IDAgMCAwLTEuMzQgMGwtMy41IDEuNzVjLS41LjI1LS44My43Ny0uODMgMS4zNHY0LjVjMCAuNTcuMzIgMS4wOS44MyAxLjM0bDMuNSAxLjc1Yy40Mi4yMi45Mi4yMiAxLjM0IDBsMy41LTEuNzVjLjUtLjI1LjgzLS43Ny44My0xLjM0di00LjVhMS41IDEuNSAwIDAgMC0uODMtMS4zNFptLTcuNjIgMS4zN2EuNS41IDAgMCAxIC42Ny0uMjNMNiAxNi40NWwyLjc4LTEuNGEuNS41IDAgMSAxIC40NC45TDYuNSAxNy4zdjMuMTlhLjUuNSAwIDEgMS0xIDB2LTMuMmwtMi43Mi0xLjM1YS41LjUgMCAwIDEtLjIzLS42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRDdWJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRDdWJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNCA1LjI1QzQgNC4wMSA1IDMgNi4yNSAzaDkuNUMxNi45OSAzIDE4IDQgMTggNS4yNVYxNGg0djMuNzVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNy4wOGMuMjEtLjM3LjMzLS44LjMzLTEuMjV2LS4yNWg0LjVWNS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOS41YS43NS43NSAwIDAgMC0uNzUuNzV2NS44YTIuNSAyLjUgMCAwIDAtLjYyLjIxTDQgMTEuN1Y1LjI1Wm05Ljc1IDcuMjVIOS41OWwtMi4wNC0xLjAyYy4xLS4yOC4zOC0uNDguNy0uNDhoNS41YS43NS43NSAwIDAgMSAwIDEuNVptNC4yNSA3aC43NWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMTUuNUgxOHY0Wk04LjI1IDdhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVptMS45MiA2LjktMy41LTEuNzRhMS41IDEuNSAwIDAgMC0xLjM0IDBsLTMuNSAxLjc1Yy0uNS4yNS0uODMuNzctLjgzIDEuMzR2NC41YzAgLjU3LjMyIDEuMDkuODMgMS4zNGwzLjUgMS43NWMuNDIuMjIuOTIuMjIgMS4zNCAwbDMuNS0xLjc1Yy41LS4yNS44My0uNzcuODMtMS4zNHYtNC41YTEuNSAxLjUgMCAwIDAtLjgzLTEuMzRabS03LjYyIDEuMzhhLjUuNSAwIDAgMSAuNjctLjIzTDYgMTYuNDVsMi43OC0xLjRhLjUuNSAwIDEgMSAuNDQuOUw2LjUgMTcuM3YzLjE5YS41LjUgMCAxIDEtMSAwdi0zLjJsLTIuNzItMS4zNWEuNS41IDAgMCAxLS4yMy0uNjdaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0TW9uZXkxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0TW9uZXkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMgMy43NUMzIDIuNzggMy43OCAyIDQuNzUgMmg1LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWMTBoM3YxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xLjU1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di0zYTIuNSAyLjUgMCAwIDAtMS41NC0yLjMuNS41IDAgMCAwLS40Ni0uN0g2YS41LjUgMCAwIDAtLjUuNUgzVjMuNzVaTTEyIDEzaC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMWgtMnYyWk01LjUgNS41YzAgLjI4LjIyLjUuNS41aDNhLjUuNSAwIDAgMCAwLTFINmEuNS41IDAgMCAwLS41LjVabTQuNSA1QzEwIDkuNjcgOS4zMyA5IDguNSA5aC02QzEuNjcgOSAxIDkuNjcgMSAxMC41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNabS0xIDJ2MWEuNS41IDAgMCAwLS41LjVoLTFjMC0uODMuNjctMS41IDEuNS0xLjVaTTguNSAxMGMwIC4yOC4yMi41LjUuNXYxQTEuNSAxLjUgMCAwIDEgNy41IDEwaDFabS02LjUuNWEuNS41IDAgMCAwIC41LS41aDFjMCAuODMtLjY3IDEuNS0xLjUgMS41di0xWm0uNSAzLjVhLjUuNSAwIDAgMC0uNS0uNXYtMWMuODMgMCAxLjUuNjcgMS41IDEuNWgtMVpNNCAxMmExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRNb25leTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0TW9uZXkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00Ljc1IDJDMy43OCAyIDMgMi43OCAzIDMuNzVWOGgxVjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djkuNzVjMCAuMTctLjAyLjM0LS4wNS41aDEuNTVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjEwaC0zVjMuNzVDMTIgMi43OCAxMS4yMiAyIDEwLjI1IDJoLTUuNVpNOC41IDhjLjM0IDAgLjY3LjA3Ljk2LjJBLjUuNSAwIDAgMCA5IDcuNUg2YS41LjUgMCAwIDAtLjUuNWgzWm0zLjUgM2gydi41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMnYtMlpNNS41IDUuNWMwLS4yOC4yMi0uNS41LS41aDNhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxLS41LS41Wm00LjUgNUMxMCA5LjY3IDkuMzMgOSA4LjUgOWgtNkMxLjY3IDkgMSA5LjY3IDEgMTAuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di0zWm0tMSAydjFhLjUuNSAwIDAgMC0uNS41aC0xYzAtLjgzLjY3LTEuNSAxLjUtMS41Wk04LjUgMTBjMCAuMjguMjIuNS41LjV2MUExLjUgMS41IDAgMCAxIDcuNSAxMGgxWm0tNi41LjVhLjUuNSAwIDAgMCAuNS0uNWgxYzAgLjgzLS42NyAxLjUtMS41IDEuNXYtMVptLjUgMy41YS41LjUgMCAwIDAtLjUtLjV2LTFjLjgzIDAgMS41LjY3IDEuNSAxLjVoLTFaTTQgMTJhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0TW9uZXkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0TW9uZXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNWMwLTEuMS45LTIgMi0yaDdhMiAyIDAgMCAxIDIgMnY3aDN2MmEzIDMgMCAwIDEtMyAzaC00LjA1Yy4wMy0uMTYuMDUtLjMzLjA1LS41di0zQTIuNSAyLjUgMCAwIDAgOC41IDExSDRWNVptMTEgMTFhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03LjUgNmEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00Wm0wIDNhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMi41IDQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTZjLS44MyAwLTEuNS42Ny0xLjUgMS41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNabS0xIDJ2MWEuNS41IDAgMCAwLS41LjVoLTFjMC0uODMuNjctMS41IDEuNS0xLjVaTTguNSAxM2MwIC4yOC4yMi41LjUuNXYxQTEuNSAxLjUgMCAwIDEgNy41IDEzaDFabS02LjUuNWEuNS41IDAgMCAwIC41LS41aDFjMCAuODMtLjY3IDEuNS0xLjUgMS41di0xWm0uNSAzLjVhLjUuNSAwIDAgMC0uNS0uNXYtMWMuODMgMCAxLjUuNjcgMS41IDEuNWgtMVpNNCAxNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRNb25leTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0TW9uZXkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC4wNWMuMDMtLjE2LjA1LS4zMy4wNS0uNVYxNmgzVjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2Nkg0VjVabTEzIDhoLTJ2M2EyIDIgMCAwIDAgMi0ydi0xWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0zIDRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC02Yy0uODMgMC0xLjUuNjctMS41IDEuNXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41aDZjLjgzIDAgMS41LS42NyAxLjUtMS41di0zWm0tMSAydjFhLjUuNSAwIDAgMC0uNS41aC0xYzAtLjgzLjY3LTEuNSAxLjUtMS41Wk04LjUgMTNjMCAuMjguMjIuNS41LjV2MUExLjUgMS41IDAgMCAxIDcuNSAxM2gxWm0tNi41LjVhLjUuNSAwIDAgMCAuNS0uNWgxYzAgLjgzLS42NyAxLjUtMS41IDEuNXYtMVptLjUgMy41YS41LjUgMCAwIDAtLjUtLjV2LTFjLjgzIDAgMS41LjY3IDEuNSAxLjVoLTFaTTQgMTVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0TW9uZXkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0TW9uZXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNS4yNUM0IDQuMDEgNSAzIDYuMjUgM2g5LjVDMTYuOTkgMyAxOCA0IDE4IDUuMjVWMTRoNHYzLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTUuOGMuMDMtLjE2LjA1LS4zMy4wNS0uNXYtNGEyLjUgMi41IDAgMCAwLTIuNS0yLjVINFY1LjI1Wk0xOCAxOS41aC43NWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMTUuNUgxOHY0Wk03LjUgNy43NWMwIC40MS4zNC43NS43NS43NWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVhLjc1Ljc1IDAgMCAwLS43NS43NVpNOC4yNSAxMWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wk0yLjUgMTVjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRjMC0uODMtLjY3LTEuNS0xLjUtMS41aC04Wm03LjUgMWExIDEgMCAwIDAgMSAxdjFhMiAyIDAgMCAxLTItMmgxWm0tMSA1YzAtMS4xLjktMiAyLTJ2MWExIDEgMCAwIDAtMSAxSDlabS03LTRhMSAxIDAgMCAwIDEtMWgxYTIgMiAwIDAgMS0yIDJ2LTFabTAgMmEyIDIgMCAwIDEgMiAySDNhMSAxIDAgMCAwLTEtMXYtMVptNC41LTIuMjVhMS43NSAxLjc1IDAgMSAxIDAgMy41IDEuNzUgMS43NSAwIDAgMSAwLTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRNb25leTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0TW9uZXkyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDUuMjVDNCA0LjAxIDUgMyA2LjI1IDNoOS41QzE2Ljk5IDMgMTggNCAxOCA1LjI1VjE0aDR2My43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC01LjhjLjAzLS4xNi4wNS0uMzMuMDUtLjV2LTFoMy41VjUuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTkuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1VjE0SDRWNS4yNVpNMTggMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTh2NFpNOC4yNSA3YS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVabS0uNzUgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMi41IDE1Yy0uODMgMC0xLjUuNjctMS41IDEuNXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDhjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOFptNy41IDFhMSAxIDAgMCAwIDEgMXYxYTIgMiAwIDAgMS0yLTJoMVptLTEgNWMwLTEuMS45LTIgMi0ydjFhMSAxIDAgMCAwLTEgMUg5Wm0tNy00YTEgMSAwIDAgMCAxLTFoMWEyIDIgMCAwIDEtMiAydi0xWm0wIDJhMiAyIDAgMCAxIDIgMkgzYTEgMSAwIDAgMC0xLTF2LTFabTQuNS0yLjI1YTEuNzUgMS43NSAwIDEgMSAwIDMuNSAxLjc1IDEuNzUgMCAwIDEgMC0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0UGxheTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRQbGF5MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC42YTUuNDggNS40OCAwIDAgMC0xLjc0LTdoMi44NGEuNS41IDAgMCAwIDAtMWgtNGEuNS41IDAgMCAwLS40Mi4yM0E1LjUgNS41IDAgMCAwIDQgOS4yMVY1Wm0xMSAxMWEyIDIgMCAwIDAgMi0ydi0xaC0ydjNaTTcuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTIuNSA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTQgMTZjMCAuMzguNDIuNjIuNzYuNDJsMi41LTEuNWEuNS41IDAgMCAwIDAtLjg1bC0yLjUtMS41QS41LjUgMCAwIDAgNCAxM3YzWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdFBsYXkyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFBsYXkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00IDVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2N2gzdjJhMyAzIDAgMCAxLTMgM2gtNC42Yy4xNi0uMzIuMy0uNjUuNC0xSDE0VjVhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2NC4wMmMtLjM0LjAzLS42OC4xLTEgLjE5VjVabTcuNSA1SDguNjZhNS40OCA1LjQ4IDAgMCAwLTEuNTgtLjc3QS41LjUgMCAwIDEgNy41IDloNGEuNS41IDAgMCAxIDAgMVptMy41IDZhMiAyIDAgMCAwIDItMnYtMWgtMnYzWk03IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMyA4YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWk00IDE2YzAgLjM4LjQyLjYyLjc2LjQybDIuNS0xLjVhLjUuNSAwIDAgMCAwLS44NWwtMi41LTEuNUEuNS41IDAgMCAwIDQgMTN2M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRQbGF5MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFBsYXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNS4yNUM0IDQuMDEgNSAzIDYuMjUgM2g5LjVDMTYuOTkgMyAxOCA0IDE4IDUuMjVWMTRoNHYzLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTYuNzdhNi40NyA2LjQ3IDAgMCAwLTEuMzMtOC41aDMuMWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNWMtLjE2IDAtLjMuMDUtLjQzLjEzQTYuNTMgNi41MyAwIDAgMCA0IDExLjVWNS4yNVpNMTggMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTh2NFpNNy41IDcuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVaTTEyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcgMmMwIC40LjQ0LjY0Ljc4LjQybDMtMmEuNS41IDAgMCAwIDAtLjg0bC0zLTJhLjUuNSAwIDAgMC0uNzguNDJ2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY2VpcHRQbGF5MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRQbGF5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNCA1LjI1QzQgNC4wMSA1IDMgNi4yNSAzaDkuNUMxNi45OSAzIDE4IDQgMTggNS4yNVYxNGg0djMuNzVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNi43N2MuMy0uNDYuNTMtLjk3LjctMS41aDMuODJWNS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOS41YS43NS43NSAwIDAgMC0uNzUuNzV2NS44M2MtLjUyLjA4LTEuMDMuMjItMS41LjQyVjUuMjVabTkuNzUgNy4yNWgtMy4xYTYuNDggNi40OCAwIDAgMC0yLjgzLTEuMzcuNzUuNzUgMCAwIDEgLjQzLS4xM2g1LjVhLjc1Ljc1IDAgMCAxIDAgMS41Wm00LjI1IDdoLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNS41SDE4djRaTTguMjUgN2EuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41Wk0xMiAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS03IDJjMCAuNC40NC42NC43OC40MmwzLTJhLjUuNSAwIDAgMCAwLS44NGwtMy0yYS41LjUgMCAwIDAtLjc4LjQydjRaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0U2VhcmNoMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFNlYXJjaDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCA1YzAtMS4xLjktMiAyLTJoN2EyIDIgMCAwIDEgMiAydjdoM3YyYTMgMyAwIDAgMS0zIDNoLTMuODhsLTEuNTYtMS41NkE0LjQ4IDQuNDggMCAwIDAgOC4zMyAxMGgzLjE3YS41LjUgMCAwIDAgMC0xaC00YS41LjUgMCAwIDAtLjQ1LjI4QTQuNSA0LjUgMCAwIDAgNCA5LjI2VjVabTExIDExYTIgMiAwIDAgMCAyLTJ2LTFoLTJ2M1pNNy41IDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptLTIgMTFjLjc5IDAgMS41MS0uMjYgMi4xLS43bDIuNTUgMi41NWEuNS41IDAgMSAwIC43LS43TDguMyAxNS42QTMuNSAzLjUgMCAxIDAgNS41IDE3Wm0wLTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0U2VhcmNoMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRTZWFyY2gyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDNhMiAyIDAgMCAwLTIgMnY0LjI2Yy4zMi0uMTIuNjUtLjIgMS0uMjNWNWExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMCAxIDEgMXYxMWgtMy44OGwxIDFIMTVhMyAzIDAgMCAwIDMtM3YtMmgtM1Y1YTIgMiAwIDAgMC0yLTJINlptMi4zMyA3aDMuMTdhLjUuNSAwIDAgMCAwLTFoLTRhLjUuNSAwIDAgMC0uNDUuMjhjLjQ3LjE3LjkuNDEgMS4yOC43MlpNMTUgMTZ2LTNoMnYxYTIgMiAwIDAgMS0yIDJaTTcuNSA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabS0yIDExYy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w4LjMgMTUuNkEzLjUgMy41IDAgMSAwIDUuNSAxN1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdFNwYXJrbGVzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFNwYXJrbGVzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm0xMC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMNy4yOCAzLjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTMuNSAxMmMtLjE5IDAtLjM4LS4wNC0uNTUtLjEyQTEuNSAxLjUgMCAwIDEgMTEuNSAxM0gxMXYtMmgxLjIzbC0uMjEtLjY1YS41Mi41MiAwIDAgMC0uMTQtLjIyLjYzLjYzIDAgMCAwLS4yLS4xM0gxMXYtLjIzbC0uMS0uMDNjLS4yOC0uMS0uNS0uMjYtLjY2LS40OGExLjMgMS4zIDAgMCAxLS4xMi0xLjMgMS4zMiAxLjMyIDAgMCAxLS40NS0uMjIgMS41MSAxLjUxIDAgMCAxLS41Mi0uNjlMOC44IDUuOTZhMS4yNyAxLjI3IDAgMCAwLS4yOS0uNDd2LjAxQS41LjUgMCAwIDEgOCA2SDVhLjUuNSAwIDAgMSAwLTFoMi40M2wtLjQ2LS4xNUExLjQxIDEuNDEgMCAwIDEgNiAzLjVhMS40IDEuNCAwIDAgMSAuOTUtMS4zNUw3LjQzIDJIMy43NUMyLjc4IDIgMiAyLjc4IDIgMy43NXY3Ljc1QTIuNSAyLjUgMCAwIDAgNC41IDE0aDdhMi41IDIuNSAwIDAgMCAyLjQ2LTIuMDdjLS4xNC4wNS0uMy4wNy0uNDYuMDdaTTUgNy41aDNhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxIDAtMVptLS41IDNjMC0uMjguMjItLjUuNS0uNWgxLjVhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdFNwYXJrbGVzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRTcGFya2xlczE2UmVndWxhcicsIFwiMTZcIiwgW1wibTEwLjg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMiAyLjIgMCAwIDAtMS40LTEuNEw3LjI4IDMuOWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMy41IDEyYy0uMTkgMC0uMzgtLjA0LS41NS0uMTJBMS41IDEuNSAwIDAgMSAxMS41IDEzSDExdi0yaDEuMjNsLS4yMS0uNjVhLjUyLjUyIDAgMCAwLS4xNC0uMjIuNjMuNjMgMCAwIDAtLjItLjEzSDExdi0uMjNsLS4xLS4wM2MtLjI4LS4xLS41LS4yNi0uNjYtLjQ4QTEuMjcgMS4yNyAwIDAgMSAxMCA4LjVWMTNINC41QTEuNSAxLjUgMCAwIDEgMyAxMS41VjMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjM0YTEuNDIgMS40MiAwIDAgMSAuODYtLjg1TDcuNDMgMkgzLjc1QzIuNzggMiAyIDIuNzggMiAzLjc1djcuNzVBMi41IDIuNSAwIDAgMCA0LjUgMTRoN2EyLjUgMi41IDAgMCAwIDIuNDYtMi4wN2MtLjE0LjA1LS4zLjA3LS40Ni4wN1pNOC4wMyA1LjJsLS42LS4ySDVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIC41LS41di0uMDFhMS4zIDEuMyAwIDAgMC0uNDctLjNaTTQuNSA4YzAtLjI4LjIyLS41LjUtLjVoM2EuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEtLjUtLjVabS41IDJhLjUuNSAwIDAgMCAwIDFoMS41YS41LjUgMCAwIDAgMC0xSDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0U3BhcmtsZXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0U3BhcmtsZXMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE1LjIzIDEuMzUgMTQuODguMjhhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41OCAxLjU4IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxIDAtLjU3bC43Ny0uMjVhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVpNMTQgOC41VjEyaDIuNWMuMjggMCAuNS4yMi41LjVWMTRhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNWMwLTEuMS45LTIgMi0yaDUuMWMtLjA2LjE2LS4xLjMzLS4xLjVhMS40MiAxLjQyIDAgMCAwIDEgMS4zNGwxLjEuMzZhMSAxIDAgMCAxIC40LjIzbC4wNi4wNmMuMTEuMS4yLjI0LjI2LjM4TDEzLjE1IDdjLjA5LjI2LjI1LjQ5LjQ2LjY2LjEyLjA5LjI1LjE1LjM5LjJ2LjIxYTEuMyAxLjMgMCAwIDAgMCAuNDNabTAgNy41YTIgMiAwIDAgMCAyLTJ2LTFoLTJ2M1pNNi41IDZhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFptMCAzYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTRabTAgM2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xaC0yWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjZWlwdFNwYXJrbGVzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY2VpcHRTcGFya2xlczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE1LjIzIDEuMzUgMTQuODguMjhhLjQyLjQyIDAgMCAwLS44IDBsLS4zNSAxLjA3YTIuMiAyLjIgMCAwIDEtMS4zOCAxLjRsLTEuMDcuMzVhLjQyLjQyIDAgMCAwIDAgLjhsMS4wNy4zNGEyLjIgMi4yIDAgMCAxIDEuNCAxLjRsLjM1IDEuMDhhLjQyLjQyIDAgMCAwIC44IDBsLjM1LTEuMDdhMi4yIDIuMiAwIDAgMSAxLjQtMS40bDEuMDctLjM1YS40Mi40MiAwIDAgMCAwLS44aC0uMDJsLTEuMDgtLjM1YTIuMiAyLjIgMCAwIDEtMS40LTEuNFptMy43OSA2LjYxLjc2LjI1aC4wMmEuMy4zIDAgMCAxIDAgLjU4bC0uNzcuMjVhMS41OCAxLjU4IDAgMCAwLTEgMWwtLjI0Ljc2YS4zLjMgMCAwIDEtLjU4IDBsLS4yNC0uNzdhMS41OCAxLjU4IDAgMCAwLTEtMWwtLjc3LS4yNWEuMy4zIDAgMCAxIDAtLjU3bC43Ny0uMjVhMS41OCAxLjU4IDAgMCAwIC45OC0xbC4yNS0uNzZhLjMuMyAwIDAgMSAuNTcgMGwuMjUuNzdhMS41NyAxLjU3IDAgMCAwIDEgMVpNMTQgOC41YTEuMyAxLjMgMCAwIDEgMC0uNDN2LS4yMWMtLjE0LS4wNS0uMjctLjExLS4zOS0uMi0uMjEtLjE3LS4zNy0uNC0uNDYtLjY2TDEzIDYuNDlWMTZINmEyIDIgMCAwIDEtMi0yVjVhMSAxIDAgMCAxIDEtMWg1LjFjLS4wNi0uMTYtLjEtLjMzLS4xLS41IDAtLjE3LjA0LS4zNC4xLS41SDVhMiAyIDAgMCAwLTIgMnY5YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zdi0xLjVhLjUuNSAwIDAgMC0uNS0uNUgxNFY4LjVabTAgNC41aDJ2MWEyIDIgMCAwIDEtMiAydi0zWk02IDYuNWMwLS4yOC4yMi0uNS41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNVptMCAzYzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41Wm0wIDNjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0U3BhcmtsZXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNlaXB0U3BhcmtsZXMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE1Ljg1IDYuMTVjLS4zLS4zMi0uNjktLjU1LTEuMS0uN2wtMS4zOS0uNDRhLjU0LjU0IDAgMCAxIDAtMS4wM2wxLjM4LS40NGEyLjg0IDIuODQgMCAwIDAgMS43Ni0xLjc3bC4wMS0uMDMuNDUtMS4zOGEuNTQuNTQgMCAwIDEgMS4wMyAwbC40NCAxLjM4YTIuODQgMi44NCAwIDAgMCAxLjggMS44bDEuMzguNDQuMDMuMDFhLjU0LjU0IDAgMCAxIDAgMS4wM2wtMS4zOC40NGEyLjg0IDIuODQgMCAwIDAtMS44IDEuOGwtLjQ1IDEuMzhhLjU0LjU0IDAgMCAxLTEuMDIgMGwtLjQ1LTEuMzhjLS4xNC0uNDItLjM3LS44LS42OS0xLjExWm03LjkzIDQuMDYtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNNS4yNSAzaDcuOGMtLjMuMTEtLjU4LjMtLjc3LjU3YTEuNTcgMS41NyAwIDAgMCAwIDEuNzljLjE3LjI4LjQyLjUuNzIuNjRsMS40LjQ2Yy4yNy4wOS41Mi4yNC43Mi40NGwuMTguMWMuMTMuMTcuMjIuMzUuMjkuNTVMMTYgOWMuMS4zLjMuNTguNTcuNzcuMTMuMS4yOC4xNi40My4yVjE0aDR2My43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNS4yNUMzIDQuMDEgNCAzIDUuMjUgM1pNMTcgMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTd2NFpNNi41IDcuNzVjMCAuNDEuMzQuNzUuNzUuNzVoNS41YS43NS43NSAwIDAgMCAwLTEuNWgtNS41YS43NS43NSAwIDAgMC0uNzUuNzVaTTcuMjUgMTFhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNVptLS43NSA0Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aDNhLjc1Ljc1IDAgMCAwIDAtMS41aC0zYS43NS43NSAwIDAgMC0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNlaXB0U3BhcmtsZXMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjZWlwdFNwYXJrbGVzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuMDkgNi40MWEyLjg0IDIuODQgMCAwIDAtMS4zNS0uOTVMMTMuMzYgNWEuNTQuNTQgMCAwIDEgMC0xLjAzbDEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMCAxLjc2LTEuNzdsLjAxLS4wMy40NS0xLjM4YS41NC41NCAwIDAgMSAxLjAzIDBsLjQ0IDEuMzhhMi44NCAyLjg0IDAgMCAwIDEuOCAxLjhsMS4zOC40NC4wMy4wMWEuNTQuNTQgMCAwIDEgMCAxLjAzbC0xLjM4LjQ0YTIuODQgMi44NCAwIDAgMC0xLjggMS44bC0uNDUgMS4zOGEuNTQuNTQgMCAwIDEtMS4wMyAwbC0uNDQtMS4zOGMtLjEtLjMtLjI1LS42LS40NS0uODVabTcuNyAzLjgtLjc3LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNNS4yNCAzaDcuOGMtLjMuMTEtLjU4LjMtLjc3LjU3YTEuNiAxLjYgMCAwIDAtLjI4LjkzSDUuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDkuMjVWNy4zM2wuMDkuMjJMMTYgOWMuMS4zLjMuNTguNTcuNzcuMTMuMS4yOC4xNi40My4yVjE0aDR2My43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNS4yNUMzIDQuMDEgNCAzIDUuMjUgM1pNMTcgMTkuNWguNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE1LjVIMTd2NFpNNy4yNSA3YS43NS43NSAwIDAgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC01LjVabS0uNzUgNC43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNNy4yNSAxNWEuNzUuNzUgMCAwIDAgMCAxLjVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYgMTFBNSA1IDAgMSAwIDYgMWE1IDUgMCAwIDAgMCAxMFptMC0yYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY29yZDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2Wm01LTNBNSA1IDAgMSAxIDEgNmE1IDUgMCAwIDEgMTAgMFptLTEgMGE0IDQgMCAxIDAtOCAwIDQgNCAwIDAgMCA4IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgOGE3IDcgMCAxIDEgMTQgMEE3IDcgMCAwIDEgMSA4Wm03IDRhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggMTJhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4Wk04IDFhNyA3IDAgMSAwIDAgMTRBNyA3IDAgMCAwIDggMVpNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgMTBhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTggNC41YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDE0LjVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlaTTEwIDJhOCA4IDAgMSAwIDAgMTYgOCA4IDAgMCAwIDAtMTZabS03IDhhNyA3IDAgMSAxIDE0IDAgNyA3IDAgMCAxLTE0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgMTJhMTAgMTAgMCAxIDEgMjAgMCAxMCAxMCAwIDAgMS0yMCAwWm0xMCA2YTYgNiAwIDEgMCAwLTEyIDYgNiAwIDAgMCAwIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDE4YTYgNiAwIDEgMCAwLTEyIDYgNiAwIDAgMCAwIDEyWm0wLTE2YTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpNMy41IDEyYTguNSA4LjUgMCAxIDEgMTcgMCA4LjUgOC41IDAgMCAxLTE3IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDJhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0Wm0wIDE5LjVhNy41IDcuNSAwIDEgMSAwLTE1IDcuNSA3LjUgMCAwIDEgMCAxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY29yZDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCAyMS41YTcuNSA3LjUgMCAxIDAgMC0xNSA3LjUgNy41IDAgMCAwIDAgMTVaTTE0IDJhMTIgMTIgMCAxIDAgMCAyNCAxMiAxMiAwIDAgMCAwLTI0Wk0zLjUgMTRhMTAuNSAxMC41IDAgMSAxIDIxIDAgMTAuNSAxMC41IDAgMCAxLTIxIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDJhMTQgMTQgMCAxIDAgMCAyOCAxNCAxNCAwIDAgMCAwLTI4Wm0wIDIzYTkgOSAwIDEgMSAwLTE4IDkgOSAwIDAgMSAwIDE4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE2IDI1YTkgOSAwIDEgMCAwLTE4IDkgOSAwIDAgMCAwIDE4Wm0wLTIzYTE0IDE0IDAgMSAwIDAgMjggMTQgMTQgMCAwIDAgMC0yOFpNNCAxNmExMiAxMiAwIDEgMSAyNCAwIDEyIDEyIDAgMCAxLTI0IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmQ0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI0IDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDAgMCAwLTQwWm0wIDMzYTEzIDEzIDAgMSAxIDAtMjYgMTMgMTMgMCAwIDEgMCAyNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY29yZDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmQ0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNCAzN2ExMyAxMyAwIDEgMCAwLTI2IDEzIDEzIDAgMCAwIDAgMjZabTAtMzNhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDAgMCAwLTQwWk02LjUgMjRhMTcuNSAxNy41IDAgMSAxIDM1IDAgMTcuNSAxNy41IDAgMCAxLTM1IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmRTdG9wMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjb3JkU3RvcDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxMUE1IDUgMCAxIDAgNiAxYTUgNSAwIDAgMCAwIDEwWk01IDRoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNSA0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINVptNiAyQTUgNSAwIDEgMSAxIDZhNSA1IDAgMCAxIDEwIDBabS0xIDBhNCA0IDAgMSAwLTggMCA0IDQgMCAwIDAgOCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZFN0b3AxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgOGE3IDcgMCAxIDEgMTQgMEE3IDcgMCAwIDEgMSA4Wm01LTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMUg2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNiA1YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINlpNMSA4YTcgNyAwIDEgMSAxNCAwQTcgNyAwIDAgMSAxIDhabTctNmE2IDYgMCAxIDAgMCAxMkE2IDYgMCAwIDAgOCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZFN0b3AyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDE4YTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2Wk04IDdoNGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNFptLTggN2E4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptNS0yYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTFWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY29yZFN0b3AyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyMmExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBaTTkuNSA4aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA4IDE0LjV2LTVDOCA4LjY3IDguNjcgOCA5LjUgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY29yZFN0b3AyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjb3JkU3RvcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDMuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3Wk0yIDEyYTEwIDEwIDAgMSAxIDIwIDAgMTAgMTAgMCAwIDEtMjAgMFptNi0yLjVDOCA4LjY3IDguNjcgOCA5LjUgOGg1Yy44MyAwIDEuNS42NyAxLjUgMS41djVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC01QTEuNSAxLjUgMCAwIDEgOCAxNC41di01WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZFN0b3AyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0IDI2YTEyIDEyIDAgMSAwIDAtMjQgMTIgMTIgMCAwIDAgMCAyNFpNMTAuNSA5aDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSA5IDE3LjV2LTdjMC0uODMuNjctMS41IDEuNS0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmRTdG9wMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZFN0b3AyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNCAzLjVhMTAuNSAxMC41IDAgMSAwIDAgMjEgMTAuNSAxMC41IDAgMCAwIDAtMjFaTTIgMTRhMTIgMTIgMCAxIDEgMjQgMCAxMiAxMiAwIDAgMS0yNCAwWm03LTMuNWMwLS44My42Ny0xLjUgMS41LTEuNWg3Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgOSAxNy41di03WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY29yZFN0b3AzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgMTZhMTQgMTQgMCAxIDEgMjggMCAxNCAxNCAwIDAgMS0yOCAwWm0xMC02YTIgMiAwIDAgMC0yIDJ2OGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMnYtOGEyIDIgMCAwIDAtMi0yaC04WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTYgNGExMiAxMiAwIDEgMCAwIDI0IDEyIDEyIDAgMCAwIDAtMjRaTTIgMTZhMTQgMTQgMCAxIDEgMjggMCAxNCAxNCAwIDAgMS0yOCAwWm04LTRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC04YTIgMiAwIDAgMS0yLTJ2LThaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWNvcmRTdG9wNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjb3JkU3RvcDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDQgMjRhMjAgMjAgMCAxIDEtNDAgMCAyMCAyMCAwIDAgMSA0MCAwWm0tMjctOWEyIDIgMCAwIDAtMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRhMiAyIDAgMCAwIDItMlYxN2EyIDIgMCAwIDAtMi0ySDE3WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjb3JkU3RvcDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWNvcmRTdG9wNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTcgMTVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YTIgMiAwIDAgMCAyLTJWMTdhMiAyIDAgMCAwLTItMkgxN1ptMjcgOWEyMCAyMCAwIDEgMS00MCAwIDIwIDIwIDAgMCAxIDQwIDBabS0yLjUgMGExNy41IDE3LjUgMCAxIDAtMzUgMCAxNy41IDE3LjUgMCAwIDAgMzUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZTEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZTEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMyAyYTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZTEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGUxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0xIDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUgzWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zLjUgM0EyLjUgMi41IDAgMCAwIDEgNS41djVBMi41IDIuNSAwIDAgMCAzLjUgMTNoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTVBMi41IDIuNSAwIDAgMCAxMi41IDNoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSA1LjVBMi41IDIuNSAwIDAgMSAzLjUgM2g5QTIuNSAyLjUgMCAwIDEgMTUgNS41djVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMSAxMC41di01Wk0zLjUgNEMyLjY3IDQgMiA0LjY3IDIgNS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDRhMyAzIDAgMCAwLTMgM3Y2YTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1Y3YTMgMyAwIDAgMC0zLTNINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWN1ptMy0yYTIgMiAwIDAgMC0yIDJ2NmMwIDEuMS45IDIgMiAyaDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0ySDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuMjUgNEEzLjI1IDMuMjUgMCAwIDAgMiA3LjI1djkuNUMyIDE4LjU1IDMuNDYgMjAgNS4yNSAyMGgxMy41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTkuNUMyMiA1LjQ1IDIwLjU0IDQgMTguNzUgNEg1LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIgNy4yNUMyIDUuNDUgMy40NiA0IDUuMjUgNGgxMy41QzIwLjU1IDQgMjIgNS40NiAyMiA3LjI1djkuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTYuNzV2LTkuNVpNNS4yNSA1LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djkuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMy41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtOS41YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg1LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01Ljc1IDRBMy43NSAzLjc1IDAgMCAwIDIgNy43NXYxMi41QTMuNzUgMy43NSAwIDAgMCA1Ljc1IDI0aDE2LjVBMy43NSAzLjc1IDAgMCAwIDI2IDIwLjI1VjcuNzVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDRINS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yIDcuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgNGgxNi41QTMuNzUgMy43NSAwIDAgMSAyNiA3Ljc1djEyLjVBMy43NSAzLjc1IDAgMCAxIDIyLjI1IDI0SDUuNzVBMy43NSAzLjc1IDAgMCAxIDIgMjAuMjVWNy43NVpNNS43NSA1LjVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djEyLjVjMCAxLjI0IDEuMDEgMi4yNSAyLjI1IDIuMjVoMTYuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY3Ljc1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMTlBNC41IDQuNSAwIDAgMSAzMCA4LjV2MTVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xOUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGUzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZTMyTGlnaHQnLCBcIjMyXCIsIFtcIk0yIDguNUE0LjUgNC41IDAgMCAxIDYuNSA0aDE5QTQuNSA0LjUgMCAwIDEgMzAgOC41djE1YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTlBNC41IDQuNSAwIDAgMSAyIDIzLjV2LTE1Wk02LjUgNUEzLjUgMy41IDAgMCAwIDMgOC41djE1QTMuNSAzLjUgMCAwIDAgNi41IDI3aDE5YTMuNSAzLjUgMCAwIDAgMy41LTMuNXYtMTVBMy41IDMuNSAwIDAgMCAyNS41IDVoLTE5WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIgOC41QTQuNSA0LjUgMCAwIDEgNi41IDRoMTlBNC41IDQuNSAwIDAgMSAzMCA4LjV2MTVhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xOUE0LjUgNC41IDAgMCAxIDIgMjMuNXYtMTVaTTYuNSA2QTIuNSAyLjUgMCAwIDAgNCA4LjV2MTVBMi41IDIuNSAwIDAgMCA2LjUgMjZoMTlhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xNUEyLjUgMi41IDAgMCAwIDI1LjUgNmgtMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQgMTMuMjVDNCAxMC4zNSA2LjM1IDggOS4yNSA4aDI5LjVjMi45IDAgNS4yNSAyLjM1IDUuMjUgNS4yNXYyMS41YzAgMi45LTIuMzUgNS4yNS01LjI1IDUuMjVIOS4yNUE1LjI1IDUuMjUgMCAwIDEgNCAzNC43NXYtMjEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk00IDE0LjI1QzQgMTAuOCA2LjggOCAxMC4yNSA4aDI3LjVDNDEuMiA4IDQ0IDEwLjggNDQgMTQuMjV2MTkuNUM0NCAzNy4yIDQxLjIgNDAgMzcuNzUgNDBoLTI3LjVBNi4yNSA2LjI1IDAgMCAxIDQgMzMuNzV2LTE5LjVabTYuMjUtMy43NWEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1djE5LjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWgyNy41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTE5LjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtMjcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZUhpbnRDb3B5MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlSGludENvcHkxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQgMy43NUM0IDIuNzggNC43OCAyIDUuNzUgMmguNzVhLjUuNSAwIDAgMSAwIDFoLS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1di43NWEuNS41IDAgMCAxLTEgMHYtLjc1Wk04IDIuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNS4yNS0uNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYuNzVhLjUuNSAwIDAgMS0xIDB2LS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtLjc1YS41LjUgMCAwIDEgMC0xaC43NVpNOCAxMS41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41Wm0tMi4yNS41QzQuNzggMTIgNCAxMS4yMiA0IDEwLjI1VjkuNWEuNS41IDAgMCAxIDEgMHYuNzVjMCAuNDEuMzQuNzUuNzUuNzVoLjc1YS41LjUgMCAwIDEgMCAxaC0uNzVaTTE1IDEwLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtLjc1YS41LjUgMCAwIDEgMC0xaC43NWMuNDEgMCAuNzUtLjM0Ljc1LS43NVY5LjVhLjUuNSAwIDAgMSAxIDB2Ljc1Wk00LjUgNmEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIDEgMHYtMWEuNS41IDAgMCAwLS41LS41Wm05LjUuNWEuNS41IDAgMCAxIDEgMHYxYS41LjUgMCAwIDEtMSAwdi0xWk0xIDcuNGEzLjQgMy40IDAgMCAxIDItMy4xdjUuOTVBMi43NSAyLjc1IDAgMCAwIDUuNzUgMTNoNi45NWEzLjQgMy40IDAgMCAxLTMuMSAySDUuNzVBNC43NSA0Ljc1IDAgMCAxIDEgMTAuMjVWNy40WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlSGludENvcHkxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlSGludENvcHkxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDMuNzVDNCAyLjc4IDQuNzggMiA1Ljc1IDJoLjc1YS41LjUgMCAwIDEgMCAxaC0uNzVhLjc1Ljc1IDAgMCAwLS43NS43NXYuNzVhLjUuNSAwIDAgMS0xIDB2LS43NVpNOCAyLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVabTUuMjUtLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2Ljc1YS41LjUgMCAwIDEtMSAwdi0uNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLS43NWEuNS41IDAgMCAxIDAtMWguNzVaTTggMTEuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNVptLTIuMjUuNUM0Ljc4IDEyIDQgMTEuMjIgNCAxMC4yNVY5LjVhLjUuNSAwIDAgMSAxIDB2Ljc1YzAgLjQxLjM0Ljc1Ljc1Ljc1aC43NWEuNS41IDAgMCAxIDAgMWgtLjc1Wk0xNSAxMC4yNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLS43NWEuNS41IDAgMCAxIDAtMWguNzVjLjQxIDAgLjc1LS4zNC43NS0uNzVWOS41YS41LjUgMCAwIDEgMSAwdi43NVpNNC41IDZhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAxIDB2LTFhLjUuNSAwIDAgMC0uNS0uNVptOS41LjVhLjUuNSAwIDAgMSAxIDB2MWEuNS41IDAgMCAxLTEgMHYtMVpNMSA3LjQxYzAtLjk0LjM4LTEuOCAxLTIuNHY1LjI0QTMuNzMgMy43MyAwIDAgMCA1Ljc1IDE0SDEyYy0uNjIuNjItMS40NyAxLTIuNDEgMUg1Ljc1QTQuNzUgNC43NSAwIDAgMSAxIDEwLjI1VjcuNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVIaW50Q29weTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZUhpbnRDb3B5MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNyA1LjVhLjUuNSAwIDAgMCAxIDBWNWEyIDIgMCAwIDAtMi0yaC0xLjVhLjUuNSAwIDAgMCAwIDFIMTZhMSAxIDAgMCAxIDEgMXYuNVptLTgtMmEuNS41IDAgMCAxLS41LjVIN2ExIDEgMCAwIDAtMSAxdi41YS41LjUgMCAwIDEtMSAwVjVjMC0xLjEuOS0yIDItMmgxLjVjLjI3IDAgLjUuMjIuNS41Wk01LjUgMTFjLjI4IDAgLjUuMjIuNS41di41YTEgMSAwIDAgMCAxIDFoMS41YS41LjUgMCAwIDEgMCAxSDdhMiAyIDAgMCAxLTItMnYtLjVjMC0uMjguMjItLjUuNS0uNVptMTEuNS41YS41LjUgMCAwIDEgMSAwdi41YTIgMiAwIDAgMS0yIDJoLTEuNWEuNS41IDAgMSAxIDAtMUgxNmExIDEgMCAwIDAgMS0xdi0uNVptLTQtOGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMmMuMjggMCAuNS4yMi41LjVaTTUuNSA3Yy4yOCAwIC41LjIzLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI3LjIyLS41LjUtLjVabTEyLjUuNWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yWk0xMi41IDE0YS41LjUgMCAxIDAgMC0xaC0yYS41LjUgMCAxIDAgMCAxaDJaTTIgNy40MWMwLTEuMzguODItMi41NyAyLTMuMXY3Ljk0QTIuNzUgMi43NSAwIDAgMCA2Ljc1IDE1aDkuOTVhMy40MSAzLjQxIDAgMCAxLTMuMTEgMkg2LjVBNC41IDQuNSAwIDAgMSAyIDEyLjVWNy40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZUhpbnRDb3B5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZUhpbnRDb3B5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSA1YzAtMS4xLjktMiAyLTJoMS41YS41LjUgMCAwIDEgMCAxSDdhMSAxIDAgMCAwLTEgMXYuNWEuNS41IDAgMCAxLTEgMFY1Wm01LTEuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNVptNi0uNWEyIDIgMCAwIDEgMiAydi41YS41LjUgMCAwIDEtMSAwVjVhMSAxIDAgMCAwLTEtMWgtMS41YS41LjUgMCAwIDEgMC0xSDE2Wm0tNiAxMC41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41Wk03IDE0YTIgMiAwIDAgMS0yLTJ2LS41YS41LjUgMCAwIDEgMSAwdi41YTEgMSAwIDAgMCAxIDFoMS41YS41LjUgMCAwIDEgMCAxSDdabTExLTJhMiAyIDAgMCAxLTIgMmgtMS41YS41LjUgMCAwIDEgMC0xSDE2YTEgMSAwIDAgMCAxLTF2LS41YS41LjUgMCAwIDEgMSAwdi41Wk01LjUgN2EuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAwIDEgMHYtMmEuNS41IDAgMCAwLS41LS41Wm0xMS41LjVhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMHYtMlpNMiA3LjQxYzAtLjk0LjM4LTEuOCAxLTIuNDF2Ny41QTMuNSAzLjUgMCAwIDAgNi41IDE2SDE2YTMuNCAzLjQgMCAwIDEtMi40MSAxSDYuNUE0LjUgNC41IDAgMCAxIDIgMTIuNVY3LjQxWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlSGludENvcHkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVIaW50Q29weTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy41MSA2LjI1YzAtLjk2Ljc5LTEuNzUgMS43NS0xLjc1aDFhLjc1Ljc1IDAgMCAwIDAtMS41aC0xYTMuMjUgMy4yNSAwIDAgMC0zLjI1IDMuMjV2LjVhLjc1Ljc1IDAgMSAwIDEuNSAwdi0uNVpNMTIuNzYgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wm0tLjc1IDEzLjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm04LjUtMi41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtMWEuNzUuNzUgMCAwIDAgMCAxLjVoMWMxLjggMCAzLjI1LTEuNDUgMy4yNS0zLjI1di0uNDhhLjc1Ljc1IDAgMCAwLTEuNSAwdi40OFpNMTguNzYgNC41Yy45NyAwIDEuNzUuNzkgMS43NSAxLjc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVjMC0xLjgtMS40NS0zLjI1LTMuMjUtMy4yNWgtMWEuNzUuNzUgMCAwIDAgMCAxLjVoMVpNNy41MSAxMy43NWMwIC45Ny43OSAxLjc1IDEuNzUgMS43NWgxYS43NS43NSAwIDAgMSAwIDEuNWgtMWEzLjI1IDMuMjUgMCAwIDEtMy4yNS0zLjI1di0uNDhhLjc1Ljc1IDAgMCAxIDEuNSAwdi40OFpNMiA5LjZhNS4xIDUuMSAwIDAgMSAzLTQuNjV2OC44QzUgMTYuMSA2LjkgMTggOS4yNSAxOGgxMS44YTUuMSA1LjEgMCAwIDEtNC42NSAzSDkuMjVDNS4yNSAyMSAyIDE3Ljc1IDIgMTMuNzVWOS42Wm01LjUtLjM0YS43NS43NSAwIDAgMC0xLjUgMGwuMDEgMS41YS43NS43NSAwIDAgMCAxLjUgMGwtLjAxLTEuNVptMTMuNzUtLjc1Yy40MSAwIC43NS4zNC43NS43NWwuMDEgMS41YS43NS43NSAwIDAgMS0xLjUgMGwtLjAxLTEuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlSGludENvcHkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlSGludENvcHkyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxYS43NS43NSAwIDAgMCAwLTEuNWgtMUEzLjI1IDMuMjUgMCAwIDAgNiA2LjI1di40OWEuNzUuNzUgMCAwIDAgMS41IDB2LS40OVptLTEuNSAzYS43NS43NSAwIDAgMSAxLjUgMHYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjVabTE0LjUgMGEuNzUuNzUgMCAxIDEgMS41IDB2MS41YS43NS43NSAwIDAgMS0xLjUgMHYtMS41Wk0xOC43NSA0LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2LjQ5YS43NS43NSAwIDEgMCAxLjUgMHYtLjQ5QzIyIDQuNDUgMjAuNTUgMyAxOC43NSAzaC0xYS43NS43NSAwIDEgMCAwIDEuNWgxWm0tNi0xLjVhLjc1Ljc1IDAgMSAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVptLTMuNSAxMi41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LS41YS43NS43NSAwIDAgMC0xLjUgMHYuNUM2IDE1LjU1IDcuNDYgMTcgOS4yNSAxN2gxYS43NS43NSAwIDAgMCAwLTEuNWgtMVptMTEuMjUtMS43NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTFhLjc1Ljc1IDAgMSAwIDAgMS41aDFjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41Wm0tOC41IDIuNWMwIC40MS4zNC43NS43NS43NWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVhLjc1Ljc1IDAgMCAwLS43NS43NVpNMiA5LjZjMC0xLjQxLjU3LTIuNjkgMS41LTMuNjF2Ny43NmE1Ljc1IDUuNzUgMCAwIDAgNS43NSA1Ljc1aDEwLjc2Yy0uOTIuOTMtMi4yIDEuNS0zLjYxIDEuNUg5LjI1QzUuMjUgMjEgMiAxNy43NSAyIDEzLjc1VjkuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm0xMC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMNy4yOCAzLjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlptLTMuMDIgMy41NmMuMjEuMTUuNDcuMjMuNzQuMjNzLjUzLS4wNS43NS0uMjFjLjIyLS4xNi4zOC0uMzcuNDgtLjY1bC4yNS0uNzYuMDItLjA2di4xOGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAxIDEwLjV2LTVBMi41IDIuNSAwIDAgMSAzLjUgM2gyLjU5YTEuNDIgMS40MiAwIDAgMCAuMTcgMS4zMmMuMTcuMjQuNDEuNDMuNzEuNTNsMS4wNi4zNWMuMTUuMDUuMy4xMy40Ny4yOS4xMS4xMS4yLjI0LjMuNDdsLjM1IDEuMWMuMS4yNC4yNS40Ny41Mi42OC4xNC4xLjMuMTcuNDUuMjFhMS4zIDEuMyAwIDAgMCAuNzcgMS43OWwuNzcuMjVjLjA4LjAzLjE2LjA4LjIyLjE0LjA3LjA2LjEuMTQuMTQuMjJsLjI2LjhjLjEuMjUuMjYuNDYuNDguNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm0xMC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIgMi4yIDAgMCAwLTEuNC0xLjRMNy4yOCAzLjlhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTMuNSAxMmgtMTBBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTVDMiA0LjY3IDIuNjcgNCAzLjUgNGgyLjZhMS40MiAxLjQyIDAgMCAxLS4wMS0xSDMuNUEyLjUgMi41IDAgMCAwIDEgNS41djVBMi41IDIuNSAwIDAgMCAzLjUgMTNoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LS4xOGwtLjAyLjA2LS4yNS43NmMtLjEuMjgtLjI2LjQ5LS40OC42NS0uMjIuMTYtLjQ4LjItLjc1LjIxWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljg4IDEuMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJabS0zLjAyIDMuNTZjLjIxLjE1LjQ3LjIzLjc0LjIzLjE3IDAgLjM0LS4wMi41LS4wOFYxM2EzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y3YTMgMyAwIDAgMSAzLTNoNS4wOWExLjQyIDEuNDIgMCAwIDAgLjE3IDEuMzJjLjE3LjI0LjQxLjQzLjcxLjUzbDEuMDYuMzVjLjE1LjA1LjMuMTMuNDcuMjkuMTEuMTEuMi4yNC4zLjQ3bC4zNSAxLjFjLjEuMjQuMjUuNDcuNTIuNjguMTQuMS4zLjE3LjQ1LjIxYTEuMyAxLjMgMCAwIDAgLjc3IDEuNzlsLjc3LjI1Yy4wOC4wMy4xNi4wOC4yMi4xNC4wNy4wNi4xLjE0LjE0LjIybC4yNi44Yy4xLjI1LjI2LjQ2LjQ4LjYyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTQuODggMS4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTcgMTIuOTFjLjE2LjA2LjMzLjA5LjUuMDkuMTcgMCAuMzQtLjAyLjUtLjA4VjEzYTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM2g1LjA5YTEuNDIgMS40MiAwIDAgMCAwIDFINWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmgxMGEyIDIgMCAwIDAgMi0ydi0uMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi4wOSA2LjQxYTIuODQgMi44NCAwIDAgMC0xLjM1LS45NUwxMy4zNiA1YS41NC41NCAwIDAgMSAwLTEuMDNsMS4zOC0uNDRhMi44NCAyLjg0IDAgMCAwIDEuNzYtMS43N2wuMDEtLjAzLjQ1LTEuMzhhLjU0LjU0IDAgMCAxIDEuMDMgMGwuNDQgMS4zOGEyLjg0IDIuODQgMCAwIDAgMS44IDEuOGwxLjM4LjQ0LjAzLjAxYS41NC41NCAwIDAgMSAwIDEuMDNsLTEuMzguNDRhMi44NCAyLjg0IDAgMCAwLTEuOCAxLjhsLS40NSAxLjM4YS41NC41NCAwIDAgMS0xLjAzIDBsLS40NC0xLjM4Yy0uMS0uMy0uMjUtLjYtLjQ1LS44NVptNy43IDMuOC0uNzctLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMi4wNiA0SDUuMjVBMy4yNSAzLjI1IDAgMCAwIDIgNy4yNXY5LjVDMiAxOC41NSAzLjQ2IDIwIDUuMjUgMjBoMTMuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0yLjgyYTEuMyAxLjMgMCAwIDEtMS4yOS0uMTJjLS4yMy0uMTYtLjQtLjM5LS40OS0uNjVsLS4yNC0uNzZhLjU5LjU5IDAgMCAwLS4xNC0uMjMuNzQuNzQgMCAwIDAtLjIyLS4xNGwtLjc5LS4yNWExLjMgMS4zIDAgMCAxLS42OS0xLjljLS4yMS4xMi0uNDQuMTctLjY4LjE3LS4zMiAwLS42My0uMS0uODktLjI4LS4yNy0uMi0uNDYtLjQ2LS41Ny0uNzdsLS40MS0xLjQ1Yy0uMDctLjItLjE2LS4zOC0uMjktLjU1bC0uMTgtLjFjLS4yLS4yLS40NS0uMzUtLjcyLS40NEwxMyA2Yy0uMy0uMTMtLjU1LS4zNi0uNzItLjY0YTEuNTcgMS41NyAwIDAgMS0uMi0xLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuMDkgNi40MWEyLjg0IDIuODQgMCAwIDAtMS4zNS0uOTVMMTMuMzYgNWEuNTQuNTQgMCAwIDEgMC0xLjAzbDEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMCAxLjc2LTEuNzdsLjAxLS4wMy40NS0xLjM4YS41NC41NCAwIDAgMSAxLjAzIDBsLjQ0IDEuMzhhMi44NCAyLjg0IDAgMCAwIDEuOCAxLjhsMS4zOC40NC4wMy4wMWEuNTQuNTQgMCAwIDEgMCAxLjAzbC0xLjM4LjQ0YTIuODQgMi44NCAwIDAgMC0xLjggMS44bC0uNDUgMS4zOGEuNTQuNTQgMCAwIDEtMS4wMyAwbC0uNDQtMS4zOGMtLjEtLjMtLjI1LS42LS40NS0uODVabTcuNyAzLjgtLjc3LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTIuMDYgNEg1LjI1QTMuMjUgMy4yNSAwIDAgMCAyIDcuMjV2OS41QzIgMTguNTUgMy40NiAyMCA1LjI1IDIwaDEzLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtMi44MmExLjMgMS4zIDAgMCAxLTEuNS0uM3YzLjEyYzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUg1LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTkuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg3LjEybC0uMDktLjE0YTEuNTcgMS41NyAwIDAgMS0uMi0xLjM2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4LjE3IDYuODNhMy4xNiAzLjE2IDAgMCAxIC43NiAxLjI0bC41IDEuNTNhLjYuNiAwIDAgMCAxLjE0IDBsLjUtMS41M2EzLjE1IDMuMTUgMCAwIDEgMi0ybDEuNTMtLjVhLjYuNiAwIDAgMCAwLTEuMTRoLS4wM2wtMS41NC0uNWEzLjE1IDMuMTUgMCAwIDEtMi0yTDIwLjU1LjRhLjYuNiAwIDAgMC0xLjE0IDBsLS41IDEuNTMtLjAxLjA0YTMuMTUgMy4xNSAwIDAgMS0xLjk2IDEuOTZsLTEuNTMuNWEuNi42IDAgMCAwIDAgMS4xNGwxLjUzLjVjLjQ3LjE1LjkuNDEgMS4yNC43NlptOC42NSAzLjUzLjkyLjNoLjAyYS4zNi4zNiAwIDAgMSAwIC42OGwtLjkyLjNhMS45IDEuOSAwIDAgMC0xLjIgMS4ybC0uMy45MmEuMzYuMzYgMCAwIDEtLjY4IDBsLS4zLS45MmExLjkgMS45IDAgMCAwLTEuMi0xLjJsLS45Mi0uM2EuMzYuMzYgMCAwIDEgMC0uNjhsLjkyLS4zYTEuOSAxLjkgMCAwIDAgMS4xOC0xLjJsLjMtLjkyYS4zNi4zNiAwIDAgMSAuNjggMGwuMy45MmExLjg5IDEuODkgMCAwIDAgMS4yIDEuMlpNMTQuMzcgNEg1Ljc1QTMuNzUgMy43NSAwIDAgMCAyIDcuNzV2MTIuNUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGgxNi41QTMuNzUgMy43NSAwIDAgMCAyNiAyMC4yNXYtNS42OGExLjM3IDEuMzcgMCAwIDEtMS44LjE4Yy0uMjMtLjE3LS40LS40LS41LS42OGwtLjMtLjkyYS44Ny44NyAwIDAgMC0uMjEtLjM1Ljg1Ljg1IDAgMCAwLS4zNC0uMjFsLS45NC0uMzFhMS4zIDEuMyAwIDAgMS0uNjYtLjQ5IDEuMzQgMS4zNCAwIDAgMS0uMTktMS4xN2wtLjEzLjFhMS42NCAxLjY0IDAgMCAxLTEuODYgMCAxLjcgMS43IDAgMCAxLS42LS43OWwtLjUtMS41M2EyIDIgMCAwIDAtLjUxLS44NSAyLjI1IDIuMjUgMCAwIDAtLjgzLS41MmwtMS41Ni0uNWMtLjMxLS4xMS0uNTgtLjMyLS43Ny0uNmExLjU4IDEuNTggMCAwIDEgLjA3LTEuOTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xOC4xNyA2LjgzYTMuMTYgMy4xNiAwIDAgMSAuNzYgMS4yNGwuNSAxLjUzYS42LjYgMCAwIDAgMS4xNCAwbC41LTEuNTNhMy4xNSAzLjE1IDAgMCAxIDItMmwxLjUzLS41YS42LjYgMCAwIDAgMC0xLjE0aC0uMDNsLTEuNTQtLjVhMy4xNSAzLjE1IDAgMCAxLTItMkwyMC41NS40YS42LjYgMCAwIDAtMS4xNCAwbC0uNSAxLjUzLS4wMS4wNGEzLjE1IDMuMTUgMCAwIDEtMS45NiAxLjk2bC0xLjUzLjVhLjYuNiAwIDAgMCAwIDEuMTRsMS41My41Yy40Ny4xNS45LjQxIDEuMjQuNzZabTguNjUgMy41My45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaTTE0LjM3IDRINS43NUEzLjc1IDMuNzUgMCAwIDAgMiA3Ljc1djEyLjVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjRoMTYuNUEzLjc1IDMuNzUgMCAwIDAgMjYgMjAuMjV2LTUuNjlhMS4zNyAxLjM3IDAgMCAxLTEuNS4zNHY1LjM1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDUuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1VjcuNzVjMC0xLjI0IDEuMDEtMi4yNSAyLjI1LTIuMjVoOC4zM2ExLjU4IDEuNTggMCAwIDEgLjI5LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMS40OSA3LjUxYTMuNDkgMy40OSAwIDAgMSAuODQgMS4zNmwuNTQgMS42OWEuNjYuNjYgMCAwIDAgMS4yNiAwbC41NC0xLjY5YTMuNDcgMy40NyAwIDAgMSAyLjItMi4ybDEuNjktLjU0YS42Ny42NyAwIDAgMCAwLTEuMjVsLS4wNC0uMDEtMS42OC0uNTVhMy40NyAzLjQ3IDAgMCAxLTIuMi0yLjJMMjQuMS40NWEuNjYuNjYgMCAwIDAtMS4yNSAwbC0uNTUgMS42OS0uMDEuMDRhMy40NyAzLjQ3IDAgMCAxLTIuMTUgMi4xNWwtMS42OS41NWEuNjcuNjcgMCAwIDAgMCAxLjI1bDEuNjkuNTVjLjUxLjE3Ljk4LjQ2IDEuMzYuODRabTkuMzMgNC44NS45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaTTE3LjExIDRINi41QTQuNSA0LjUgMCAwIDAgMiA4LjV2MTVBNC41IDQuNSAwIDAgMCA2LjUgMjhoMTlhNC41IDQuNSAwIDAgMCA0LjUtNC41di02LjI4YTEuODkgMS44OSAwIDAgMS0yLjA0LS4wOCAyIDIgMCAwIDEtLjY5LS45NGwtLjMtLjkxYS4yOS4yOSAwIDAgMC0uMDktLjE1LjQxLjQxIDAgMCAwLS4xNC0uMWwtMS0uMzFhMS44NCAxLjg0IDAgMCAxLTEuMjQtMS43NWMwLS4zMi4xLS42My4yNS0uOWEyLjE2IDIuMTYgMCAwIDEtMy4zLTEuMDhsLS41NS0xLjdhMS44IDEuOCAwIDAgMC0uMzktLjY2Yy0uMDQtLjA0LS4wOC0uMDctLjA4LS4xMWExLjkzIDEuOTMgMCAwIDAtLjc3LS40N2wtMS43MS0uNTZhMi4xNyAyLjE3IDAgMCAxLTEuNDUtMiAyLjE3IDIuMTcgMCAwIDEgLjYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3BhcmtsZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjEuNDkgNy41MWEzLjQ5IDMuNDkgMCAwIDEgLjg0IDEuMzZsLjU0IDEuNjlhLjY2LjY2IDAgMCAwIDEuMjYgMGwuNTQtMS42OWEzLjQ3IDMuNDcgMCAwIDEgMi4yLTIuMmwxLjY5LS41NGEuNjcuNjcgMCAwIDAgMC0xLjI1bC0uMDQtLjAxLTEuNjgtLjU1YTMuNDcgMy40NyAwIDAgMS0yLjItMi4yTDI0LjEuNDVhLjY2LjY2IDAgMCAwLTEuMjUgMGwtLjU1IDEuNjktLjAxLjA0YTMuNDcgMy40NyAwIDAgMS0yLjE1IDIuMTVsLTEuNjkuNTVhLjY3LjY3IDAgMCAwIDAgMS4yNWwxLjY5LjU1Yy41MS4xNy45OC40NiAxLjM2Ljg0Wm05LjMzIDQuODUuOTIuM2guMDJhLjM2LjM2IDAgMCAxIDAgLjY4bC0uOTIuM2ExLjkgMS45IDAgMCAwLTEuMiAxLjJsLS4zLjkyYS4zNi4zNiAwIDAgMS0uNjggMGwtLjMtLjkyYTEuOSAxLjkgMCAwIDAtMS4yLTEuMmwtLjkyLS4zYS4zNi4zNiAwIDAgMSAwLS42OGwuOTItLjNhMS45IDEuOSAwIDAgMCAxLjE4LTEuMmwuMy0uOTJhLjM2LjM2IDAgMCAxIC42OCAwbC4zLjkyYTEuODkgMS44OSAwIDAgMCAxLjIgMS4yWk0xNy4xMSA0SDYuNUE0LjUgNC41IDAgMCAwIDIgOC41djE1QTQuNSA0LjUgMCAwIDAgNi41IDI4aDE5YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtNi4yOGExLjg5IDEuODkgMCAwIDEtMi0uMDV2Ni4zM2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTE5QTIuNSAyLjUgMCAwIDEgNCAyMy41di0xNUEyLjUgMi41IDAgMCAxIDYuNSA2aDEwLjA3YTIuMTcgMi4xNyAwIDAgMS0uMDctLjUgMi4xNyAyLjE3IDAgMCAxIC42LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGU0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0zMi44MyAxMy4xMWE1LjM2IDUuMzYgMCAwIDAtMi41NC0xLjhsLTIuNi0uODVhMS4wMyAxLjAzIDAgMCAxIDAtMS45NGwyLjYtLjg0YTUuMzYgNS4zNiAwIDAgMCAzLjMyLTMuMzNsLjAyLS4wNi44NS0yLjZhMS4wMyAxLjAzIDAgMCAxIDEuOTQgMGwuODQgMi42YTUuMzYgNS4zNiAwIDAgMCAzLjQgMy4zOWwyLjYuODQuMDUuMDJhMS4wMyAxLjAzIDAgMCAxIDAgMS45NGwtMi42Ljg0YTUuMzYgNS4zNiAwIDAgMC0zLjQgMy40bC0uODQgMi42LS4wMy4wNmExLjAzIDEuMDMgMCAwIDEtMS45LS4wN2wtLjg2LTIuNmE1LjM1IDUuMzUgMCAwIDAtLjg1LTEuNlptMTQuNzggNi44Ny0xLjM4LS40NGEyLjg0IDIuODQgMCAwIDEtMS44LTEuOEw0NCAxNi4zNmEuNTQuNTQgMCAwIDAtMS4wMyAwbC0uNDUgMS4zOGEyLjg0IDIuODQgMCAwIDEtMS43NyAxLjhsLTEuMzguNDRhLjU0LjU0IDAgMCAwIDAgMS4wM2wxLjM4LjQ1Yy4xNS4wNS4zLjExLjQ0LjE4di4wMmEyLjg0IDIuODQgMCAwIDEgMS4zNiAxLjYxbC40NSAxLjM4YS41NC41NCAwIDAgMCAxIC4wNHYtLjAxYS41LjUgMCAwIDAgLjAyLS4wNGwuNDUtMS4zOGEyLjg0IDIuODQgMCAwIDEgMS44LTEuOGwxLjM4LS40NGEuNTQuNTQgMCAwIDAgMC0xLjAzaC0uMDNaTTI1LjQgOEEzIDMgMCAwIDAgMjcgMTIuMzVsMi42NS44NmEzLjI4IDMuMjggMCAwIDEgMi4xNyAyLjExbC44NCAyLjU5YTMgMyAwIDAgMCA0LjU5IDEuNTFjLS4xNC4zMS0uMjIuNjYtLjIyIDFhMi41NSAyLjU1IDAgMCAwIDEuNyAyLjRsMS40Mi40Ni4xMi4wNmEuODYuODYgMCAwIDEgLjQuNDhsLjQ0IDEuMzdjLjE0LjU0LjQ1IDEgLjg5IDEuMzVhMi41NSAyLjU1IDAgMCAwIDIgLjQxdjYuOEM0NCAzNy4yIDQxLjIgNDAgMzcuNzUgNDBoLTI3LjVBNi4yNSA2LjI1IDAgMCAxIDQgMzMuNzV2LTE5LjVDNCAxMC44IDYuOCA4IDEwLjI1IDhoMTUuMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTcGFya2xlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVNwYXJrbGU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0zMi44MyAxMy4xMWE1LjM2IDUuMzYgMCAwIDAtMi41NC0xLjhsLTIuNi0uODVhMS4wMyAxLjAzIDAgMCAxIDAtMS45NGwyLjYtLjg0YTUuMzYgNS4zNiAwIDAgMCAzLjMyLTMuMzNsLjAyLS4wNi44NS0yLjZhMS4wMyAxLjAzIDAgMCAxIDEuOTQgMGwuODQgMi42YTUuMzYgNS4zNiAwIDAgMCAzLjQgMy4zOWwyLjYuODQuMDUuMDJhMS4wMyAxLjAzIDAgMCAxIDAgMS45NGwtMi42Ljg0YTUuMzYgNS4zNiAwIDAgMC0zLjQgMy40bC0uODQgMi42LS4wMy4wNmExLjAzIDEuMDMgMCAwIDEtMS45LS4wN2wtLjg2LTIuNmE1LjM1IDUuMzUgMCAwIDAtLjg1LTEuNlptMTQuNzggNi44Ny0xLjM4LS40NGEyLjg0IDIuODQgMCAwIDEtMS44LTEuOEw0NCAxNi4zNmEuNTQuNTQgMCAwIDAtMS4wMyAwbC0uNDUgMS4zOGEyLjg0IDIuODQgMCAwIDEtMS43NyAxLjhsLTEuMzguNDRhLjU0LjU0IDAgMCAwIDAgMS4wM2wxLjM4LjQ1Yy4xNS4wNS4zLjExLjQ0LjE4di4wMmEyLjg0IDIuODQgMCAwIDEgMS4zNiAxLjYxbC40NSAxLjM4YS41NC41NCAwIDAgMCAxIC4wNHYtLjAxYS41LjUgMCAwIDAgLjAyLS4wNGwuNDUtMS4zOGEyLjg0IDIuODQgMCAwIDEgMS44LTEuOGwxLjM4LS40NGEuNTQuNTQgMCAwIDAgMC0xLjAzaC0uMDNaTTI1LjQgOEgxMC4yNUE2LjI1IDYuMjUgMCAwIDAgNCAxNC4yNXYxOS41QzQgMzcuMiA2LjggNDAgMTAuMjUgNDBoMjcuNUM0MS4yIDQwIDQ0IDM3LjIgNDQgMzMuNzV2LTYuOGEyLjU1IDIuNTUgMCAwIDEtMi0uNGMtLjItLjE2LS4zNi0uMzQtLjUtLjUzdjcuNzNhMy43NSAzLjc1IDAgMCAxLTMuNzUgMy43NWgtMjcuNWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1di0xOS41YTMuNzUgMy43NSAwIDAgMSAzLjc1LTMuNzVoMTQuOTFhMy4wNyAzLjA3IDAgMCAxLS4xMy0xLjQ1QTMgMyAwIDAgMSAyNS40MSA4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luYzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVN5bmMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNS41QTIuNSAyLjUgMCAwIDEgMy41IDNoOUEyLjUgMi41IDAgMCAxIDE1IDUuNXYxLjg0QTUuNSA1LjUgMCAwIDAgNS42IDEzSDMuNUEyLjUgMi41IDAgMCAxIDEgMTAuNXYtNVptNSA1YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxMWEuNS41IDAgMCAxIDAtMWguNDdhMS45OCAxLjk4IDAgMCAwLTEuNzItLjEgMiAyIDAgMCAwLS42Ni40NC41LjUgMCAwIDEtLjcxLS43MUEzIDMgMCAwIDEgMTIgOC4xNVY4YzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M0EzIDMgMCAwIDEgOSAxMi44NVYxM2EuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVIMTBhLjUuNSAwIDAgMSAwIDFoLS40N2ExLjk5IDEuOTkgMCAwIDAgMi4zOC0uMzQuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTeW5jMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVN5bmMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDUuNUEyLjUgMi41IDAgMCAxIDMuNSAzaDlBMi41IDIuNSAwIDAgMSAxNSA1LjV2MS44NGMtLjI4LS40LS42Mi0uNzctMS0xLjA4VjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDMi42NyA0IDIgNC42NyAyIDUuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuN2MuMS4zNS4yNC42OC40IDFIMy41QTIuNSAyLjUgMCAwIDEgMSAxMC41di01Wm01IDVhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTYuNS0zYy4yOCAwIC41LjIyLjUuNXYxLjVhLjUuNSAwIDAgMS0uNS41SDExYS41LjUgMCAwIDEgMC0xaC40N2ExLjk4IDEuOTggMCAwIDAtMS43Mi0uMSAyIDIgMCAwIDAtLjY2LjQ0LjUuNSAwIDAgMS0uNzEtLjcxQTMgMyAwIDAgMSAxMiA4LjE1VjhjMC0uMjguMjItLjUuNS0uNVptLS44OCA1LjUzQTMgMyAwIDAgMSA5IDEyLjg1VjEzYS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxMGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTkgMS45OSAwIDAgMCAyLjM4LS4zNC41LjUgMCAwIDEgLjcxLjcxIDMgMyAwIDAgMS0xIC42NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjIuMjZBNS41IDUuNSAwIDAgMCA5LjYgMTZINWEzIDMgMCAwIDEtMy0zVjdabTggNi41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm02LjUtM2MuMjggMCAuNS4yMi41LjV2MS41YS41LjUgMCAwIDEtLjUuNUgxNWEuNS41IDAgMCAxIDAtMWguNDdhMS45NyAxLjk3IDAgMCAwLS45NC0uMjUgMiAyIDAgMCAwLTEuNDQuNTkuNS41IDAgMCAxLS43MS0uNzEgMyAzIDAgMCAxIDMuNjItLjQ4VjExYzAtLjI4LjIyLS41LjUtLjVabS0uODggNS41M2EzIDMgMCAwIDEtMi42Mi0uMThWMTZhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDE0YS41LjUgMCAwIDEgMCAxaC0uNDdhMS45NyAxLjk3IDAgMCAwIC45NC4yNSAyIDIgMCAwIDAgMS40NC0uNTkuNS41IDAgMCAxIC43MS43MSAzIDMgMCAwIDEtMSAuNjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTeW5jMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVN5bmMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxMGEzIDMgMCAwIDEgMyAzdjIuMjZhNS41IDUuNSAwIDAgMC0xLS42NlY3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg0LjJjLjEuMzUuMjQuNjguNCAxSDVhMyAzIDAgMCAxLTMtM1Y3Wm04IDYuNWE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptNi41LTNjLjI4IDAgLjUuMjIuNS41djEuNWEuNS41IDAgMCAxLS41LjVIMTVhLjUuNSAwIDAgMSAwLTFoLjQ3YTEuOTcgMS45NyAwIDAgMC0uOTQtLjI1IDIgMiAwIDAgMC0xLjQ0LjU5LjUuNSAwIDAgMS0uNzEtLjcxIDMgMyAwIDAgMSAzLjYyLS40OFYxMWMwLS4yOC4yMi0uNS41LS41Wm0tLjg4IDUuNTNhMyAzIDAgMCAxLTIuNjItLjE4VjE2YS41LjUgMCAwIDEtMSAwdi0xLjVjMC0uMjguMjItLjUuNS0uNUgxNGEuNS41IDAgMCAxIDAgMWgtLjQ3YTEuOTcgMS45NyAwIDAgMCAuOTQuMjUgMiAyIDAgMCAwIDEuNDQtLjU5LjUuNSAwIDAgMSAuNzEuNzEgMyAzIDAgMCAxLTEgLjY2WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luYzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZUxhbmRzY2FwZVN5bmMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIgNy4yNUMyIDUuNDUgMy40NiA0IDUuMjUgNGgxMy41QzIwLjU1IDQgMjIgNS40NiAyMiA3LjI1djQuNTZBNi41IDYuNSAwIDAgMCAxMi4wMiAyMEg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1di05LjVabTEwIDkuMjVhNS41IDUuNSAwIDEgMCAxMSAwIDUuNSA1LjUgMCAwIDAtMTEgMFptOC41LTMuNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMWEyLjUgMi41IDAgMCAwLTQuMDMuMDQuNS41IDAgMCAxLS44LS41OSAzLjUgMy41IDAgMCAxIDUuMzMtLjR2LS41NWMwLS4yOC4yMi0uNS41LS41Wk0xNSAxOC45NXYuNTVhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0xYTIuNSAyLjUgMCAwIDAgMy45MS4xMS41LjUgMCAwIDEgLjc3LjY1IDMuNSAzLjUgMCAwIDEtNS4xOC4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlU3luYzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIgNy4yNUMyIDUuNDUgMy40NiA0IDUuMjUgNGgxMy41QzIwLjU1IDQgMjIgNS40NiAyMiA3LjI1djQuNTZhNi41MiA2LjUyIDAgMCAwLTEuNS0xLjA4VjcuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djkuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjA2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1di05LjVabTEwIDkuMjVhNS41IDUuNSAwIDEgMCAxMSAwIDUuNSA1LjUgMCAwIDAtMTEgMFptOC41LTMuNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMWEyLjUgMi41IDAgMCAwLTQuMDMuMDQuNS41IDAgMCAxLS44LS41OSAzLjUgMy41IDAgMCAxIDUuMzMtLjR2LS41NWMwLS4yOC4yMi0uNS41LS41Wk0xNSAxOC45NXYuNTVhLjUuNSAwIDAgMS0xIDB2LTJjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0xYTIuNSAyLjUgMCAwIDAgMy45MS4xMS41LjUgMCAwIDEgLjc3LjY1IDMuNSAzLjUgMCAwIDEtNS4xOC4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmMyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0yIDcuNzVBMy43NSAzLjc1IDAgMCAxIDUuNzUgNGgxNi41QTMuNzUgMy43NSAwIDAgMSAyNiA3Ljc1djYuNjVBNy41IDcuNSAwIDAgMCAxNC41IDI0SDUuNzVBMy43NSAzLjc1IDAgMCAxIDIgMjAuMjVWNy43NVpNMTQgMTkuNWE2LjUgNi41IDAgMSAwIDEzIDAgNi41IDYuNSAwIDAgMC0xMyAwWm01LjM1LTQuMDhhNCA0IDAgMCAxIDQuNjUgMS45di0uODJhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoLjczYTMgMyAwIDAgMC00Ljg1LS44Ny41LjUgMCAwIDEtLjctLjcgNCA0IDAgMCAxIDEuNjctMS4wMVptMi4zIDguMTZhNCA0IDAgMCAxLTQuNjUtMS45di44MmEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFoLS43M2EzIDMgMCAwIDAgNC44NS44Ny41LjUgMCAwIDEgLjcuNyA0IDQgMCAwIDEtMS42NyAxLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luYzI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMiA3Ljc1QTMuNzUgMy43NSAwIDAgMSA1Ljc1IDRoMTYuNUEzLjc1IDMuNzUgMCAwIDEgMjYgNy43NXY2LjY1Yy0uNDQtLjQ4LS45NS0uOS0xLjUtMS4yNXYtNS40YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDUuNzVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djEyLjVjMCAxLjI0IDEuMDEgMi4yNSAyLjI1IDIuMjVoNy44N2MuMjQuNTQuNTMgMS4wNC44OCAxLjVINS43NUEzLjc1IDMuNzUgMCAwIDEgMiAyMC4yNVY3Ljc1Wk0xNCAxOS41YTYuNSA2LjUgMCAxIDAgMTMgMCA2LjUgNi41IDAgMCAwLTEzIDBabTUuMzUtNC4wOGE0IDQgMCAwIDEgNC42NSAxLjl2LS44MmEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWguNzNhMyAzIDAgMCAwLTQuODUtLjg3LjUuNSAwIDAgMS0uNy0uNyA0IDQgMCAwIDEgMS42Ny0xLjAxWm0yLjMgOC4xNmE0IDQgMCAwIDEtNC42NS0xLjl2LjgyYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtLjczYTMgMyAwIDAgMCA0Ljg1Ljg3LjUuNSAwIDAgMSAuNy43IDQgNCAwIDAgMS0xLjY3IDEuMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJtMTMuMyAxNC4wMi44NS44M2EuNS41IDAgMCAwIC43LS43bC0xMy0xM2EuNS41IDAgMSAwLS43LjdMMi41IDMuMjFBMi41IDIuNSAwIDAgMCAxIDUuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDEzaDIuMWE1LjQ4IDUuNDggMCAwIDEgLjY3LTYuMDJsLjcxLjcxYTQuNSA0LjUgMCAwIDAgNi4zMiA2LjMyWk0xMi4xIDEyLjhhMyAzIDAgMCAxLTMuMDkuMDVWMTNhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDEwYS41LjUgMCAwIDEgMCAxaC0uNDdhMS45OSAxLjk5IDAgMCAwIDEuODIuMDZsLjc0Ljc0Wk04LjU2IDYuNDQgOS45MyA3LjhhMyAzIDAgMCAxIDIuMDcuMzRWOGEuNS41IDAgMCAxIDEgMHYxLjVhLjUuNSAwIDAgMS0uNS41aC0uMzhsMi40NCAyLjQ0YTQuNSA0LjUgMCAwIDAtNi02Wk0xMS4xMiA5bC0uMi0uMmEyIDIgMCAwIDEgLjU1LjJoLS4zNVptLTYtNiAyLjcgMi43QTUuNDggNS40OCAwIDAgMSAxNSA3LjM0VjUuNUEyLjUgMi41IDAgMCAwIDEyLjUgM0g1LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTMuMyAxNC4wMi44NS44M2EuNS41IDAgMCAwIC43LS43bC0xMy0xM2EuNS41IDAgMSAwLS43LjdMMi41IDMuMjFBMi41IDIuNSAwIDAgMCAxIDUuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDEzaDIuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUgzLjVBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTVjMC0uNzYuNTctMS40IDEuMy0xLjQ5TDYuOTkgNy43YTQuNSA0LjUgMCAwIDAgNi4zMiA2LjMyWk0xMi4xIDEyLjhhMyAzIDAgMCAxLTMuMDkuMDVWMTNhLjUuNSAwIDAgMS0xIDB2LTEuNWMwLS4yOC4yMi0uNS41LS41SDEwYS41LjUgMCAwIDEgMCAxaC0uNDdhMS45OSAxLjk5IDAgMCAwIDEuODIuMDZsLjc0Ljc0Wk04LjU2IDYuNDQgOS45MyA3LjhhMyAzIDAgMCAxIDIuMDcuMzRWOGEuNS41IDAgMCAxIDEgMHYxLjVhLjUuNSAwIDAgMS0uNS41aC0uMzhsMi40NCAyLjQ0YTQuNSA0LjUgMCAwIDAtNi02Wk0xMS4xMiA5bC0uMi0uMmEyIDIgMCAwIDEgLjU1LjJoLS4zNVptLTYtNiAxIDFoNi4zOGMuODMgMCAxLjUuNjcgMS41IDEuNXYuNzZjLjM4LjMxLjcyLjY3IDEgMS4wOFY1LjVBMi41IDIuNSAwIDAgMCAxMi41IDNINS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmNPZmYyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43bDEuNDggMS40OEEzIDMgMCAwIDAgMiA3djZhMyAzIDAgMCAwIDMgM2g0LjZhNS40OCA1LjQ4IDAgMCAxIC4yNS01LjQ0bC43My43M2E0LjUgNC41IDAgMCAwIDYuMTMgNi4xM2wuNDQuNDNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTE1LjQgMTYuMWEzIDMgMCAwIDEtMi40LS4yNlYxNmEuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVoLjhsLjkzLjk0QS41LjUgMCAwIDEgMTQgMTVoLS40N2ExLjk3IDEuOTcgMCAwIDAgMS4wMS4yNWwuODYuODZaTTE5IDEzLjVjMCAuOTYtLjMgMS44NC0uOCAyLjU3TDE1LjExIDEzaDEuMzhhLjUuNSAwIDAgMCAuNS0uNVYxMWEuNS41IDAgMCAwLTEgMHYuMTVhMy4wMSAzLjAxIDAgMCAwLTIuODItLjFsLTEuMjUtMS4yNEE0LjUgNC41IDAgMCAxIDE5IDEzLjVaTTE1IDEyYS41LjUgMCAwIDAtLjQ5LjRsLS41Ni0uNTdhMiAyIDAgMCAxIDEuNTIuMTdIMTVaTTYuMTIgNGw1LjEgNS4xYTUuNDggNS40OCAwIDAgMSA2Ljc4LjE2VjdhMyAzIDAgMCAwLTMtM0g2LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi44NSAyLjE1YS41LjUgMCAxIDAtLjcuN2wxLjQ4IDEuNDhBMyAzIDAgMCAwIDIgN3Y2YTMgMyAwIDAgMCAzIDNoNC42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAxLjM5LTEuOWw2LjIgNi4xOWE0LjUgNC41IDAgMCAwIDYuMTMgNi4xM2wuNDMuNDNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVaTTE1LjQgMTYuMWEzIDMgMCAwIDEtMi40LS4yNlYxNmEuNS41IDAgMCAxLTEgMHYtMS41YzAtLjI4LjIyLS41LjUtLjVoLjhsLjkzLjk0QS41LjUgMCAwIDEgMTQgMTVoLS40N2ExLjk3IDEuOTcgMCAwIDAgMS4wMS4yNWwuODYuODZaTTE5IDEzLjVjMCAuOTYtLjMgMS44NC0uOCAyLjU3TDE1LjExIDEzaDEuMzhhLjUuNSAwIDAgMCAuNS0uNVYxMWEuNS41IDAgMCAwLTEgMHYuMTVhMy4wMSAzLjAxIDAgMCAwLTIuODItLjFsLTEuMjUtMS4yNEE0LjUgNC41IDAgMCAxIDE5IDEzLjVaTTE1IDEyYS41LjUgMCAwIDAtLjQ5LjRsLS41Ni0uNTdhMiAyIDAgMCAxIDEuNTIuMTdIMTVaTTYuMTIgNGwxIDFIMTVhMiAyIDAgMCAxIDIgMnYxLjZjLjM2LjE4LjcuNCAxIC42NlY3YTMgMyAwIDAgMC0zLTNINi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmNPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmwxLjI1IDEuMjVBMy4yNSAzLjI1IDAgMCAwIDIgNy4yNXY5LjVDMiAxOC41NSAzLjQ2IDIwIDUuMjUgMjBoNi43N2E2LjQ3IDYuNDcgMCAwIDEtLjAzLTYuOTVsLjczLjczYTUuNSA1LjUgMCAwIDAgNy41IDcuNWwuNS41YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWm0xNS40NCAxNy41NmEzLjUgMy41IDAgMCAxLTMuNzItLjgzdi41NWEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDEuNDRsLjg4Ljg4YS41LjUgMCAwIDEtLjMyLjEyaC0xYTIuNSAyLjUgMCAwIDAgMi40Ljk3bC44Mi44MVptLTMuODYtOC4xIDEuNSAxLjVhMy41IDMuNSAwIDAgMSAzLjY0Ljg3di0uNTVhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLS41LjVoLTEuMzJsMy4xNCAzLjE0YTUuNSA1LjUgMCAwIDAtNy40Ny03LjQ3Wm0zLjM5IDMuMzktMS4wNS0xLjA1LjMtLjAyYy44MiAwIDEuNTQuNCAyIDFoLTFhLjUuNSAwIDAgMC0uMjUuMDdaTTcuMTggNGw2Ljk1IDYuOTRhNi40NyA2LjQ3IDAgMCAxIDcuODcuODdWNy4yNUMyMiA1LjQ1IDIwLjU0IDQgMTguNzUgNEg3LjE4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMS4yNSAxLjI1QTMuMjUgMy4yNSAwIDAgMCAyIDcuMjV2OS41QzIgMTguNTUgMy40NiAyMCA1LjI1IDIwaDYuNzdjLS4zLS40Ni0uNTMtLjk3LS43LTEuNUg1LjI0Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTkuNWMwLS43My40NC0xLjM1IDEuMDctMS42MWw4LjE1IDguMTRhNS41IDUuNSAwIDAgMCA3LjUgNy41bC41LjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTE1LjQ0IDE3LjU2YTMuNSAzLjUgMCAwIDEtMy43Mi0uODN2LjU1YS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMS40NGwuODguODhhLjUuNSAwIDAgMS0uMzIuMTJoLTFhMi41IDIuNSAwIDAgMCAyLjQuOTdsLjgyLjgxWm0tMy44Ni04LjEgMS41IDEuNWEzLjUgMy41IDAgMCAxIDMuNjQuODd2LS41NWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtLjUuNWgtMS4zMmwzLjE0IDMuMTRhNS41IDUuNSAwIDAgMC03LjQ3LTcuNDdabTMuMzkgMy4zOS0xLjA1LTEuMDUuMy0uMDJjLjgyIDAgMS41NC40IDIgMWgtMWEuNS41IDAgMCAwLS4yNS4wN1pNNy4xOCA0bDEuNSAxLjVoMTAuMDdjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2My40OGMuNTUuMjkgMS4wNi42NSAxLjUgMS4wOFY3LjI1QzIyIDUuNDUgMjAuNTQgNCAxOC43NSA0SDcuMThaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN0YW5nbGVMYW5kc2NhcGVTeW5jT2ZmMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMS4zOSAxLjM5QTMuNzUgMy43NSAwIDAgMCAyIDcuNzV2MTIuNUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGg4Ljc1YTcuNDcgNy40NyAwIDAgMS0uMjMtOC42N2wuNzIuNzJhNi41IDYuNSAwIDAgMCA4Ljk2IDguOTZsLjc3Ljc3YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWm0xOSAyMS4xMkE0IDQgMCAwIDEgMTcgMjEuNjl2LjgxYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtLjczYTMgMyAwIDAgMCAzLjc0IDEuNTdsLjc2Ljc3Wk03LjE3IDRsOS4yMiA5LjIyQTcuNDcgNy40NyAwIDAgMSAyNiAxNC40VjcuNzVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDRINy4xOFpNMjcgMTkuNWMwIDEuMjQtLjM0IDIuNC0uOTQgMy4zN2wtNi40OC02LjQ3YTIuOTIgMi45MiAwIDAgMSAxLjUyLS4wOUEzIDMgMCAwIDEgMjMuMjMgMThoLS43M2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0xIDB2LjgxYTQgNCAwIDAgMC01LjItMS42OGwtMS42Ny0xLjY5QTYuNSA2LjUgMCAwIDEgMjcgMTkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlY3RhbmdsZUxhbmRzY2FwZVN5bmNPZmYyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjdGFuZ2xlTGFuZHNjYXBlU3luY09mZjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDEuNCAxLjRDMi42MyA1LjM0IDIgNi40NyAyIDcuNzR2MTIuNUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNGg4Ljc1YTcuNSA3LjUgMCAwIDEtLjg4LTEuNUg1Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVY3Ljc1YzAtLjg2LjQ5LTEuNjEgMS4yLTEuOTlMMTUgMTYuMDZhNi41IDYuNSAwIDAgMCA4Ljk2IDguOTZsLjc3Ljc2YS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWm0xOSAyMS4xMkE0IDQgMCAwIDEgMTcgMjEuNjl2LjgxYS41LjUgMCAwIDEtMSAwdi0yYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtLjczYTMgMyAwIDAgMCAzLjc0IDEuNTdsLjc2Ljc3Wk03LjE3IDRsMS41IDEuNWgxMy41N2MxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY1LjRjLjU1LjM1IDEuMDYuNzcgMS41IDEuMjVWNy43NUEzLjc1IDMuNzUgMCAwIDAgMjIuMjUgNEg3LjE4Wk0yNyAxOS41YzAgMS4yNC0uMzQgMi40LS45NCAzLjM3bC02LjQ4LTYuNDdhMi45MiAyLjkyIDAgMCAxIDEuNTItLjA5QTMgMyAwIDAgMSAyMy4yMyAxOGgtLjczYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYuODFhNCA0IDAgMCAwLTUuMi0xLjY4bC0xLjY3LTEuNjlBNi41IDYuNSAwIDAgMSAyNyAxOS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlUG9ydHJhaXRMb2NhdGlvblRhcmdldDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3RhbmdsZVBvcnRyYWl0TG9jYXRpb25UYXJnZXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMmEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNS43YTQuNSA0LjUgMCAwIDEtMS40My0yLjAyIDEuNSAxLjUgMCAwIDEgMC0yLjk2IDQuNDkgNC40OSAwIDAgMSAyLjc1LTIuNzUgMS41IDEuNSAwIDAgMSAyLjk2IDBIMTZWNGEyIDIgMCAwIDAtMi0ySDZabTkuMDYgMTMuMzNhMSAxIDAgMSAxLTEuMTItMS42NiAxIDEgMCAwIDEgMS4xMiAxLjY2Wk0xNy45NSAxNGguNTVhLjUuNSAwIDAgMSAwIDFoLS41NUEzLjQ5IDMuNDkgMCAwIDEgMTUgMTcuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0uNTVBMy40OSAzLjQ5IDAgMCAxIDExLjA1IDE1aC0uNTVhLjUuNSAwIDAgMSAwLTFoLjU1QTMuNDkgMy40OSAwIDAgMSAxNCAxMS4wNXYtLjU1YS41LjUgMCAwIDEgMSAwdi41NUEzLjQ5IDMuNDkgMCAwIDEgMTcuOTUgMTRabS0zLjIgMi45OWEyLjUgMi41IDAgMSAwLS41LTQuOTggMi41IDIuNSAwIDAgMCAuNSA0Ljk4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlUG9ydHJhaXRMb2NhdGlvblRhcmdldDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN0YW5nbGVQb3J0cmFpdExvY2F0aW9uVGFyZ2V0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNCA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjYuMjdoLS4wMkExLjUgMS41IDAgMCAwIDE1IDkuMDlWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDQuNzhhNC41IDQuNSAwIDAgMCAuOTIgMUg2YTIgMiAwIDAgMS0yLTJWNFptMTEuMDYgMTEuMzNhMSAxIDAgMSAxLTEuMTItMS42NiAxIDEgMCAwIDEgMS4xMiAxLjY2Wk0xNy45NSAxNGguNTVhLjUuNSAwIDAgMSAwIDFoLS41NUEzLjQ5IDMuNDkgMCAwIDEgMTUgMTcuOTV2LjU1YS41LjUgMCAwIDEtMSAwdi0uNTVBMy40OSAzLjQ5IDAgMCAxIDExLjA1IDE1aC0uNTVhLjUuNSAwIDAgMSAwLTFoLjU1QTMuNDkgMy40OSAwIDAgMSAxNCAxMS4wNXYtLjU1YS41LjUgMCAwIDEgMSAwdi41NUEzLjQ5IDMuNDkgMCAwIDEgMTcuOTUgMTRabS0zLjIgMi45OWEyLjUgMi41IDAgMSAwLS41LTQuOTggMi41IDIuNSAwIDAgMCAuNSA0Ljk4WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjeWNsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3ljbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguOSAzLjA0YTEuMjUgMS4yNSAwIDAgMSAyLjIgMGwxLjY2IDMuMS0xLjAyLS4zNWEuNzUuNzUgMCAwIDAtLjQ4IDEuNDJsMyAxYS43NS43NSAwIDAgMCAuOTgtLjU5bC41LTNhLjc1Ljc1IDAgMSAwLTEuNDgtLjI0bC0uMTcgMS4wNC0xLjY3LTMuMWEyLjc1IDIuNzUgMCAwIDAtNC44NCAwTDUuODQgNS41N2EuNzUuNzUgMCAwIDAgMS4zMy43TDguOSAzLjA1Wm04LjA0IDEwLjg3LTEuOTEtMy41NmEuNzUuNzUgMCAxIDEgMS4zMi0uNzFsMS45MSAzLjU2YTIuNzUgMi43NSAwIDAgMS0yLjQyIDQuMDVIMTIuM2wuNzIuNzJhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi0yYS43NS43NSAwIDAgMSAwLTEuMDZsMi0yYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLS43Mi43MmgzLjUzYy45NCAwIDEuNTUtMSAxLjEtMS44NFptLTkuNjkgMS44NGEuNzUuNzUgMCAwIDEgMCAxLjVINC4xNmEyLjc1IDIuNzUgMCAwIDEtMi40Mi00LjA1TDMuNiA5Ljc2bC0xLjM1LjQ1YS43NS43NSAwIDEgMS0uNDgtMS40MmwzLTFhLjc1Ljc1IDAgMCAxIC45NS40N2wxIDNhLjc1Ljc1IDAgMSAxLTEuNDIuNDhsLS40LTEuMjItMS44MyAzLjM5Yy0uNDQuODMuMTYgMS44NCAxLjEgMS44NGgzLjA5WlwiXSk7XG5leHBvcnQgY29uc3QgUmVjeWNsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZWN5Y2xlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTEuMzIgMi45MmExLjUgMS41IDAgMCAwLTIuNjQgMEw2LjgzIDYuMzdhLjUuNSAwIDEgMS0uODgtLjQ3TDcuOCAyLjQ1YTIuNSAyLjUgMCAwIDEgNC40IDBsMi4wMSAzLjc0LjMtMS43N2EuNS41IDAgMCAxIC45OC4xNmwtLjUgM2EuNS41IDAgMCAxLS42NS40bC0zLTFhLjUuNSAwIDAgMSAuMzItLjk1bDEuNjIuNTQtMS45Ni0zLjY1Wm00LjAzIDYuNGEuNS41IDAgMCAwLS4yMi43bDIuMDMgMy43N2MuNTQgMS0uMTkgMi4yMS0xLjMyIDIuMjFIMTEuN2wxLjE0LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMiAyYS41LjUgMCAwIDAgMCAuN2wyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMS43MSAxN2g0LjEzYTIuNSAyLjUgMCAwIDAgMi4yLTMuNjhsLTIuMDMtMy43OGEuNS41IDAgMCAwLS42Ni0uMjFaTTQuMTYgMTZINy41YS41LjUgMCAwIDEgMCAxSDQuMTZhMi41IDIuNSAwIDAgMS0yLjItMy42OGwyLjE1LTQtMS45NS42NWEuNS41IDAgMSAxLS4zMi0uOTRsMy0xYS41LjUgMCAwIDEgLjYzLjMxbDEgM2EuNS41IDAgMCAxLS45NC4zMmwtLjYtMS43Ny0yLjA5IDMuOUExLjUgMS41IDAgMCAwIDQuMTYgMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN5Y2xlMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVjeWNsZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTQuMDQgNS42NWEyLjI1IDIuMjUgMCAwIDEgMy45MiAwbDIuNiA0LjY1LTEuNi0uMjhhMS4yNSAxLjI1IDAgMSAwLS40MyAyLjQ2bDQuMjUuNzVjLjYxLjEgMS4yMS0uMjUgMS40LS44M2wxLjI2LTMuNzZhMS4yNSAxLjI1IDAgMCAwLTIuMzgtLjc5bC0uMzcgMS4xMi0yLjU1LTQuNTRhNC43NSA0Ljc1IDAgMCAwLTguMjggMGwtMi4yIDMuOTNhMS4yNSAxLjI1IDAgMSAwIDIuMTcgMS4yM2wyLjItMy45NFptMTIuMDUgOS4zOGExLjI1IDEuMjUgMCAwIDAtMi4xOSAxLjIybDMuMyA1LjlhMi4yNSAyLjI1IDAgMCAxLTEuOTUgMy4zNWgtNi4zM2wuNzktLjk1YTEuMjUgMS4yNSAwIDAgMC0xLjkyLTEuNmwtMi41IDNhMS4yNSAxLjI1IDAgMCAwIDAgMS42bDIuNSAzYTEuMjUgMS4yNSAwIDAgMCAxLjkyLTEuNmwtLjc5LS45NWg2LjMzYzMuNjIgMCA1LjkxLTMuOSA0LjE0LTcuMDdsLTMuMy01LjlaTTExLjc1IDI1LjVoLTVhMi4yNSAyLjI1IDAgMCAxLTEuOTYtMy4zNWwzLjU1LTYuMzMuOCAxLjUyYTEuMjUgMS4yNSAwIDAgMCAyLjIxLTEuMThsLTItMy43NWExLjI1IDEuMjUgMCAwIDAtMS4zLS42NGwtNC41Ljc1YTEuMjUgMS4yNSAwIDEgMCAuNCAyLjQ2bDIuMi0uMzYtMy41NCA2LjNBNC43NSA0Ljc1IDAgMCAwIDYuNzUgMjhoNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZWN5Y2xlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlY3ljbGUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xOC4xOCA1LjI4YTIuNSAyLjUgMCAwIDAtNC4zNiAwbC0yLjkgNS4xOC0xLjc5LS45IDIuOTQtNS4yNmE0LjUgNC41IDAgMCAxIDcuODYgMGwyLjc0IDQuOS4zNi0xLjQ0YTEgMSAwIDAgMSAxLjk0LjQ4bC0xIDRhMSAxIDAgMCAxLTEuMjEuNzNsLTQtMWExIDEgMCAxIDEgLjQ4LTEuOTRsMS44Ni40Ni0yLjkyLTUuMjFabTUuNCA5LjY4IDEuOC0uOSA0LjA0IDcuMjRjMS42OCAzLS40OSA2LjctMy45MiA2LjdIMTguNGwxLjMgMS4zYTEgMSAwIDEgMS0xLjQyIDEuNGwtMy0zYTEgMSAwIDAgMSAwLTEuNGwzLTNhMSAxIDAgMSAxIDEuNDIgMS40TDE4LjQgMjZoNy4wOWEyLjUgMi41IDAgMCAwIDIuMTgtMy43MmwtNC4xLTcuMzJaTTEzIDI2SDYuNWEyLjUgMi41IDAgMCAxLTIuMTgtMy43MmwzLjg3LTYuOTMuOSAyLjA1YTEgMSAwIDAgMCAxLjgzLS44bC0xLjc1LTRhMSAxIDAgMCAwLTEuMTUtLjU3bC00LjI1IDFhMSAxIDAgMSAwIC40NiAxLjk0bDIuMTctLjUtMy44MyA2LjgzQTQuNSA0LjUgMCAwIDAgNi41IDI4SDEzdi0yWlwiXSk7XG5leHBvcnQgY29uc3QgUmVtaXhBZGQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW1peEFkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxYTcgNyAwIDAgMSA1LjM2IDExLjVoLTIuMkE1LjUgNS41IDAgMCAwIDggMi41SDEuNzVhLjc1Ljc1IDAgMCAxIDAtMS41SDhabTAgMTRBNyA3IDAgMCAxIDIuNjQgMy41aDIuMkE1LjUgNS41IDAgMCAwIDggMTMuNWg2LjI1YS43NS43NSAwIDAgMSAwIDEuNUg4Wm0uNzUtOS4yNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41aC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNXYxLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW1peEFkZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW1peEFkZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgMS41YzAtLjI4LjIyLS41LjUtLjVIOGE3LjAzIDcuMDMgMCAwIDEgNi44NCA1LjVBNyA3IDAgMCAxIDEyLjkgMTNoLTEuNThBNiA2IDAgMCAwIDggMkgxLjVhLjUuNSAwIDAgMS0uNS0uNVpNMSA4YTcgNyAwIDAgMCA3IDdoNi41YS41LjUgMCAwIDAgMC0xSDhhNi4wMiA2LjAyIDAgMCAxLTYtNiA2IDYgMCAwIDEgMi42OC01SDMuMUE2Ljk4IDYuOTggMCAwIDAgMSA4Wm03LTNjLjI4IDAgLjUuMjIuNS41djJoMmEuNS41IDAgMCAxIDAgMWgtMnYyYS41LjUgMCAwIDEtMSAwdi0yaC0yYS41LjUgMCAwIDEgMC0xaDJ2LTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbWl4QWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVtaXhBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNzUgMmEuNzUuNzUgMCAwIDAgMCAxLjVIMTBhNi41MiA2LjUyIDAgMCAxIDYuNSA2LjUgNi41IDYuNSAwIDAgMS0zLjAzIDUuNWgyLjM0QTggOCAwIDAgMCAxMCAySDIuNzVabTUuNiAxNS44M0E4IDggMCAwIDEgNC4xOSA0LjVoMi4zNGE2LjUgNi41IDAgMCAwIDMuNDcgMTJoNy4yNWEuNzUuNzUgMCAwIDEgMCAxLjVIMTBjLS41NyAwLTEuMTItLjA2LTEuNjUtLjE3Wk0xMCA3Yy40MSAwIC43NS4zNC43NS43NXYxLjVoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41djEuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTEuNWgtMS41YS43NS43NSAwIDAgMSAwLTEuNWgxLjV2LTEuNWMwLS40MS4zNC0uNzUuNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVtaXhBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVtaXhBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDIuNWMwLS4yOC4yMi0uNS41LS41SDEwYTcuOTggNy45OCAwIDAgMSA1LjMgMTRoLTEuN0E3IDcgMCAwIDAgMTAgM0gyLjVhLjUuNSAwIDAgMS0uNS0uNVpNMTAgMThBOCA4IDAgMCAxIDQuNyA0aDEuN0E3IDcgMCAwIDAgMTAgMTdoNy41YS41LjUgMCAwIDEgMCAxSDEwWm0uNS0xMC41YS41LjUgMCAwIDAtMSAwdjJoLTJhLjUuNSAwIDEgMCAwIDFoMnYyYS41LjUgMCAwIDAgMSAwdi0yaDJhLjUuNSAwIDAgMCAwLTFoLTJ2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW1peEFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbWl4QWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDNhMSAxIDAgMCAxIDEtMWg5YTEwIDEwIDAgMCAxIDcuMTQgMTdoLTMuMjZBOCA4IDAgMCAwIDEyIDRIM2ExIDEgMCAwIDEtMS0xWm04LjE4IDE4Ljg0Yy42LjEgMS4yLjE2IDEuODIuMTZoOWExIDEgMCAxIDAgMC0yaC05QTggOCAwIDAgMSA4LjEyIDVINC44NmExMCAxMCAwIDAgMCA1LjMyIDE2LjgzWk0xMiA4YTEgMSAwIDAgMSAxIDF2MmgyYTEgMSAwIDEgMSAwIDJoLTJ2MmExIDEgMCAxIDEtMiAwdi0ySDlhMSAxIDAgMSAxIDAtMmgyVjlhMSAxIDAgMCAxIDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbWl4QWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbWl4QWRkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiAyLjc1YzAtLjQxLjM0LS43NS43NS0uNzVIMTJhMTAgMTAgMCAwIDEgNi42MSAxNy41aC0yLjZBOC41IDguNSAwIDAgMCAxMiAzLjVIMi43NUEuNzUuNzUgMCAwIDEgMiAyLjc1Wm04LjM2IDE5LjEyYy41My4wOCAxLjA4LjEzIDEuNjQuMTNoOS4yNWEuNzUuNzUgMCAwIDAgMC0xLjVIMTJhOC41IDguNSAwIDAgMS00LTE2SDUuMzlhMTAgMTAgMCAwIDAgNC45OCAxNy4zN1pNMTIgOGMuNDEgMCAuNzUuMzQuNzUuNzV2Mi41aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjVoLTIuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMi41di0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbWl4QWRkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVtaXhBZGQzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgMy4yNUMyIDIuNTYgMi41NiAyIDMuMjUgMkgxNmExNCAxNCAwIDAgMSA5LjggMjRoLTQuMTJBMTEuNSAxMS41IDAgMCAwIDE2IDQuNUgzLjI1QzIuNTYgNC41IDIgMy45NCAyIDMuMjVaTTIgMTZhMTMuOTQgMTMuOTQgMCAwIDAgMi4wNCA3LjI5QTE0IDE0IDAgMCAwIDE2IDMwaDExLjc1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUgxNkExMS41IDExLjUgMCAwIDEgMTAuMzIgNkg2LjJBMTMuOTYgMTMuOTYgMCAwIDAgMiAxNlptMTQtNmMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYzLjVoMy41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMy41djMuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LTMuNWgtMy41YTEuMjUgMS4yNSAwIDEgMSAwLTIuNWgzLjV2LTMuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbWl4QWRkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbWl4QWRkMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMiAzYTEgMSAwIDAgMSAxLTFoMTNhMTQgMTQgMCAwIDEgOS4yNiAyNC41aC0zLjQ1QTEyIDEyIDAgMCAwIDE2IDRIM2ExIDEgMCAwIDEtMS0xWm0wIDEzYTEzLjk1IDEzLjk1IDAgMCAwIDEuMjggNS44NUExNCAxNCAwIDAgMCAxNiAzMGgxM2ExIDEgMCAxIDAgMC0ySDE2YTEyIDEyIDAgMCAxLTUuODEtMjIuNUg2Ljc0QTEzLjk3IDEzLjk3IDAgMCAwIDIgMTZabTE0LTZhMSAxIDAgMCAxIDEgMXY0aDRhMSAxIDAgMSAxIDAgMmgtNHY0YTEgMSAwIDEgMS0yIDB2LTRoLTRhMSAxIDAgMSAxIDAtMmg0di00YTEgMSAwIDAgMSAxLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW1vdGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW1vdGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzLjggMy4yNmEuNzUuNzUgMCAxIDAtMS4xLTEuMDJsLTQgNC4yNWEuNzUuNzUgMCAwIDAgMCAxLjAybDQgNC4yNWEuNzUuNzUgMCAxIDAgMS4xLTEuMDJMMTAuMjggN2wzLjUyLTMuNzRabS0xMC41Ljk4YS43NS43NSAwIDEgMC0xLjEgMS4wMkw1LjcyIDkgMi4yIDEyLjc0YS43NS43NSAwIDEgMCAxLjEgMS4wMmw0LTQuMjVhLjc1Ljc1IDAgMCAwIDAtMS4wMmwtNC00LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVtb3RlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbW90ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzLjg1IDIuODVhLjUuNSAwIDAgMC0uNy0uN2wtNC41IDQuNWEuNS41IDAgMCAwIDAgLjdsNC41IDQuNWEuNS41IDAgMCAwIC43LS43TDkuNzEgN2w0LjE0LTQuMTVabS0xMSAxLjNhLjUuNSAwIDEgMC0uNy43TDYuMjkgOWwtNC4xNCA0LjE1YS41LjUgMCAwIDAgLjcuN2w0LjUtNC41YS41LjUgMCAwIDAgMC0uN2wtNC41LTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlbW90ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbW90ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYuOTcgMTUuMDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMi41NiA4LjVsNS40Ny01LjQ3YS43NS43NSAwIDAgMC0xLjA2LTEuMDZsLTYgNmMtLjMuMy0uMy43NyAwIDEuMDZsNiA2Wk0zLjAzIDQuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmw1LjQ3IDUuNDctNS40NyA1LjQ3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZsNi02Yy4zLS4zLjMtLjc3IDAtMS4wNmwtNi02WlwiXSk7XG5leHBvcnQgY29uc3QgUmVtb3RlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbW90ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjE1IDE0Ljg1YS41LjUgMCAwIDAgLjctLjdMMTIuMjEgOC41bDUuNjQtNS42NWEuNS41IDAgMCAwLS43LS43bC02IDZhLjUuNSAwIDAgMCAwIC43bDYgNlptLTE0LjMtOS43YS41LjUgMCAxIDAtLjcuN2w1LjY0IDUuNjUtNS42NCA1LjY1YS41LjUgMCAwIDAgLjcuN2w2LTZhLjUuNSAwIDAgMCAwLS43bC02LTZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW5hbWUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW5hbWUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNSAyYS41LjUgMCAwIDAgMCAxaDF2MTBoLTFhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtMVYzaDFhLjUuNSAwIDAgMCAwLTFoLTNaTTQgNGgyLjV2OEg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yWm04IDhIOS41VjRIMTJhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW5hbWUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVuYW1lMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi41IDJhLjUuNSAwIDAgMCAwIDFoMXYxMGgtMWEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0xVjNoMWEuNS41IDAgMCAwIDAtMWgtM1pNNCA0aDIuNXYxSDRhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMi41djFINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptOCA3SDkuNXYxSDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDkuNXYxSDEyYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgUmVuYW1lMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVuYW1lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjUgMmEuNS41IDAgMCAwIDAgMWgxdjE0aC0xYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTFWM2gxYS41LjUgMCAwIDAgMC0xaC0zWm0tNCAyaDR2MTJoLTRBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdBMi41IDIuNSAwIDAgMSA0LjUgNFptMTEgMTJoLTRWNGg0QTIuNSAyLjUgMCAwIDEgMTggNi41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVuYW1lMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbmFtZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTguNSAyYS41LjUgMCAwIDAgMCAxaDF2MTRoLTFhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtMVYzaDFhLjUuNSAwIDAgMCAwLTFoLTNabS00IDJoNHYxaC00QzMuNjcgNSAzIDUuNjcgMyA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg0djFoLTRBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdBMi41IDIuNSAwIDAgMSA0LjUgNFptMTEgMTFoLTR2MWg0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNGgtNHYxaDRjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZW5hbWUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW5hbWUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkuNzUgMmg0YS43NS43NSAwIDAgMSAuMSAxLjVIMTIuNXYxN2gxLjI1Yy4zNyAwIC42OS4yOC43NC42NXYuMWMwIC4zOC0uMjguNy0uNjQuNzRsLS4xLjAxaC00YS43NS43NSAwIDAgMS0uMS0xLjVIMTF2LTE3SDkuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNjVMOSAyLjc1YzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFabTguNSAzYzEuNzkgMCAzLjI0IDEuNDUgMy4yNSAzLjI1djcuNUEzLjI1IDMuMjUgMCAwIDEgMTguNDQgMTlIMTMuNVY1aDQuNzRaTTEwIDV2MTRINS4yNEEzLjI1IDMuMjUgMCAwIDEgMiAxNS43NXYtNy41QzIgNi40NSAzLjQ2IDUgNS4yNSA1SDEwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVuYW1lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbmFtZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuNzUgMmg0YS43NS43NSAwIDAgMSAuMSAxLjVIMTIuNXYxN2gxLjI1Yy4zNyAwIC42OS4yOC43NC42NXYuMWMwIC4zOC0uMjguNy0uNjQuNzRsLS4xLjAxaC00YS43NS43NSAwIDAgMS0uMS0xLjVIMTF2LTE3SDkuNzVhLjc1Ljc1IDAgMCAxLS43NC0uNjVMOSAyLjc1YzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFoNC00Wm04LjUgM2MxLjc5IDAgMy4yNCAxLjQ1IDMuMjUgMy4yNXY3LjVBMy4yNSAzLjI1IDAgMCAxIDE4LjQ0IDE5SDEzLjV2LTEuNWg0LjhjLjk0LS4wMyAxLjctLjggMS42OS0xLjc1di03LjVjMC0uOTctLjc5LTEuNzUtMS43NS0xLjc1SDEzLjVWNWg0Ljc0Wk0xMCA1djEuNUg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY3LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIMTBWMTlINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNS43NXYtNy41QzIgNi40NSAzLjQ2IDUgNS4yNSA1SDEwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVuYW1lMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVuYW1lMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMS43NSAyYS43NS43NSAwIDAgMCAwIDEuNWgxLjV2MjFoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41di0yMWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVabS01LjUgNC4wMmg2djE2aC02QTMuMjUgMy4yNSAwIDAgMSAzIDE4Ljc3di05LjVjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNVptMTUuNSAxNmgtNnYtMTZoNmMxLjggMCAzLjI1IDEuNDUgMy4yNSAzLjI1djkuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVuYW1lMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlbmFtZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTExLjc1IDJhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNXYyMWgtMS41YS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjV2LTIxaDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTQuNVptLTUuNSA0LjAyaDZ2MS41aC02Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY5LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoNnYxLjVoLTZBMy4yNSAzLjI1IDAgMCAxIDMgMTguNzd2LTkuNWMwLTEuOCAxLjQ2LTMuMjUgMy4yNS0zLjI1Wm0xNS41IDE0LjVoLTZ2MS41aDZjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOS41YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTZ2MS41aDZjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2OS41YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlb3JkZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZW9yZGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yLjc1IDcuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDIuNzVabTAgM2EuNzUuNzUgMCAwIDAgMCAxLjVoMTQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlb3JkZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVvcmRlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuNSA4YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVptMCAzYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlcGxheTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi41IDMuNjdWMi41YS41LjUgMCAwIDAtMSAwdjNjMCAuMjguMjIuNS41LjVoMi41YS41LjUgMCAwIDAgMC0xSDIuOGE2IDYgMCAxIDEtLjc4IDMuNS41My41MyAwIDAgMC0uNTItLjVjLS4yOCAwLS41LjIyLS40OC41QTcgNyAwIDEgMCAyLjUgMy42N1ptNSAxLjQ2QTEgMSAwIDAgMCA2IDZ2NGExIDEgMCAwIDAgMS41Ljg3bDMuNS0yYTEgMSAwIDAgMCAwLTEuNzRsLTMuNS0yWlwiXSk7XG5leHBvcnQgY29uc3QgUmVwbGF5MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIuNSAzLjY3VjIuNWEuNS41IDAgMCAwLTEgMHYzYzAgLjI4LjIyLjUuNS41aDIuNWEuNS41IDAgMCAwIDAtMUgyLjhhNiA2IDAgMSAxLS43OCAzLjUuNTMuNTMgMCAwIDAtLjUyLS41Yy0uMjggMC0uNS4yMi0uNDguNUE3IDcgMCAxIDAgMi41IDMuNjdaTTYgNmExIDEgMCAwIDEgMS41LS44N2wzLjUgMmExIDEgMCAwIDEgMCAxLjc0bC0zLjUgMkExIDEgMCAwIDEgNiAxMFY2Wm00LjUgMkw3IDZ2NGwzLjUtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlcGxheTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC4yNSA2YTcgNyAwIDEgMS0xLjI0IDMuNTdBLjUzLjUzIDAgMCAwIDIuNSA5YS40Ny40NyAwIDAgMC0uNDguNDRMMiAxMGE4IDggMCAxIDAgMS41LTQuNjZWMy41YS41LjUgMCAwIDAtMSAwdjNjMCAuMjguMjIuNS41LjVoM2EuNS41IDAgMCAwIDAtMUg0LjI1Wm01LjI0Ljg4QTEgMSAwIDAgMCA4IDcuNzV2NC41YTEgMSAwIDAgMCAxLjUuODdsMy45OS0yLjI1YTEgMSAwIDAgMCAwLTEuNzRsLTQtMi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlcGxheTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXBsYXkyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjI1IDZhNyA3IDAgMSAxLTEuMjQgMy41N0EuNTMuNTMgMCAwIDAgMi41IDlhLjQ3LjQ3IDAgMCAwLS40OC40NEwyIDEwYTggOCAwIDEgMCAxLjUtNC42NlYzLjVhLjUuNSAwIDAgMC0xIDB2M2MwIC4yOC4yMi41LjUuNWgzYS41LjUgMCAwIDAgMC0xSDQuMjVaTTggNy43NWExIDEgMCAwIDEgMS41LS44N2wzLjk5IDIuMjVhMSAxIDAgMCAxIDAgMS43NGwtNCAyLjI1QTEgMSAwIDAgMSA4IDEyLjI1di00LjVaTTEzIDEwIDkgNy43NXY0LjVMMTMgMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXBsYXkyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXBsYXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQuNSA1LjM5YTEwIDEwIDAgMSAxLTIuNCA1LjIuNy43IDAgMCAxIC43LS41OWMuNDggMCAuODMuNDUuNzcuOTJBOC41IDguNSAwIDEgMCA1LjUyIDYuNWgxLjczYS43NS43NSAwIDAgMSAwIDEuNWgtMy41QS43NS43NSAwIDAgMSAzIDcuMjV2LTMuNWEuNzUuNzUgMCAwIDEgMS41IDB2MS42NFptNi43MyAyLjhBMS41IDEuNSAwIDAgMCA5IDkuNXY1YTEuNSAxLjUgMCAwIDAgMi4yMyAxLjMxbDQuNS0yLjVhMS41IDEuNSAwIDAgMCAwLTIuNjJsLTQuNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXBsYXkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVwbGF5MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMy41YTguNDggOC40OCAwIDAgMC02LjQ4IDNoMS43M2EuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNUEuNzUuNzUgMCAwIDEgMyA3LjI1di0zLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNjRhMTAgMTAgMCAxIDEtMi40IDUuMi43LjcgMCAwIDEgLjctLjU5Yy40OCAwIC44My40NS43Ny45MkE4LjUgOC41IDAgMSAwIDEyIDMuNVptLS43NyA0LjY5QTEuNSAxLjUgMCAwIDAgOSA5LjV2NWExLjUgMS41IDAgMCAwIDIuMjMgMS4zMWw0LjUtMi41YTEuNSAxLjUgMCAwIDAgMC0yLjYybC00LjUtMi41Wk0xMC41IDkuNSAxNSAxMmwtNC41IDIuNXYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlcGxheTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMy41Yy0zLjM0IDAtNi4zMiAxLjU2LTguMjUgNGgyLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00YS43NS43NSAwIDAgMS0uNzUtLjc1di00YS43NS43NSAwIDAgMSAxLjUgMHYxLjgxYTEyIDEyIDAgMSAxLTIuOTIgNi41Ni43MS43MSAwIDAgMSAuNzEtLjYyLjguOCAwIDAgMSAuNzcuODlBMTAuNSAxMC41IDAgMSAwIDE0IDMuNVptLTMgN2ExLjUgMS41IDAgMCAxIDIuMjYtMS4zbDYgMy41Yy45OS41OC45OSAyLjAyIDAgMi42bC02IDMuNDlhMS41IDEuNSAwIDAgMS0yLjI2LTEuM1YxMC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVwbGF5MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0IDMuNWMtMy4zNCAwLTYuMzIgMS41Ni04LjI1IDRoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtNGEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNGEuNzUuNzUgMCAwIDEgMS41IDB2MS44MWExMiAxMiAwIDEgMS0yLjkyIDYuNTYuNzEuNzEgMCAwIDEgLjcxLS42Mi44LjggMCAwIDEgLjc3Ljg5QTEwLjUgMTAuNSAwIDEgMCAxNCAzLjVabS0uNzQgNS43QTEuNSAxLjUgMCAwIDAgMTEgMTAuNXY3YTEuNSAxLjUgMCAwIDAgMi4yNiAxLjI5bDYtMy41Yy45OS0uNTcuOTktMiAwLTIuNTlsLTYtMy41Wm0tLjc2IDEuMyA2IDMuNS02IDMuNXYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlcGxheTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JlcGxheTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNy4wNiA4YTEyIDEyIDAgMSAxLTMuMDMgNy4xNkM0LjA3IDE0LjU1IDMuNiAxNCAzIDE0Yy0uNSAwLS45MS4zNi0uOTUuODVBMTQgMTQgMCAxIDAgNiA2LjJWNGExIDEgMCAwIDAtMiAwdjVhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDEgMCAwLTJINy4wNlptNy45MyAyLjI3QTIgMiAwIDAgMCAxMiAxMnY4YTIgMiAwIDAgMCAzIDEuNzNsNi45OS00YTIgMiAwIDAgMCAwLTMuNDdsLTctNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlcGxheTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXBsYXkzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiA0Yy0zLjU1IDAtNi43NSAxLjU0LTguOTQgNEgxMGExIDEgMCAxIDEgMCAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAyIDB2Mi4yYTE0IDE0IDAgMSAxLTMuOTUgOC42NUEuOTQuOTQgMCAwIDEgMyAxNGMuNiAwIDEuMDcuNTUgMS4wMyAxLjE2TDQgMTZBMTIgMTIgMCAxIDAgMTYgNFptLTEgNi4yN0EyIDIgMCAwIDAgMTIgMTJ2OGEyIDIgMCAwIDAgMyAxLjczbDYuOTktNGEyIDIgMCAwIDAgMC0zLjQ3bC03LTRaTTE0IDEybDcgNC03IDR2LThaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTYuNSAyaC0yQTIuNSAyLjUgMCAwIDAgMiA0LjVhLjUuNSAwIDAgMCAxIDBDMyAzLjY3IDMuNjcgMyA0LjUgM2gyYS41LjUgMCAwIDAgMC0xWk0yIDExLjVBMi41IDIuNSAwIDAgMCA0LjUgMTRoM2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNBMi41IDIuNSAwIDAgMCA3LjUgNmgtM0EyLjUgMi41IDAgMCAwIDIgOC41djNabTkuNSAyLjVhLjUuNSAwIDAgMSAwLTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYS41LjUgMCAwIDEgMSAwdjJhMi41IDIuNSAwIDAgMS0yLjUgMi41Wk0xNCA2LjVhLjUuNSAwIDAgMS0xIDB2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yYS41LjUgMCAwIDEgMC0xaDJBMi41IDIuNSAwIDAgMSAxNCA0LjV2MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjUgMmgtMkEyLjUgMi41IDAgMCAwIDIgNC41YS41LjUgMCAwIDAgMSAwQzMgMy42NyAzLjY3IDMgNC41IDNoMmEuNS41IDAgMCAwIDAtMVptLTIgMTFoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNDOSA3LjY3IDguMzMgNyA3LjUgN2gtM0MzLjY3IDcgMyA3LjY3IDMgOC41djNjMCAuODMuNjcgMS41IDEuNSAxLjVabTAgMUEyLjUgMi41IDAgMCAxIDIgMTEuNXYtM0EyLjUgMi41IDAgMCAxIDQuNSA2aDNBMi41IDIuNSAwIDAgMSAxMCA4LjV2M0EyLjUgMi41IDAgMCAxIDcuNSAxNGgtM1ptNyAwYS41LjUgMCAwIDEgMC0xYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmEuNS41IDAgMCAxIDEgMHYyYTIuNSAyLjUgMCAwIDEtMi41IDIuNVpNMTQgNi41YS41LjUgMCAwIDEtMSAwdi0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMmEuNS41IDAgMCAxIDAtMWgyQTIuNSAyLjUgMCAwIDEgMTQgNC41djJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAzSDZhMyAzIDAgMCAwLTMgM3YuNWEuNS41IDAgMCAwIDEgMFY2YzAtMS4xLjktMiAyLTJoMi41YS41LjUgMCAwIDAgMC0xWk0zIDE0YTMgMyAwIDAgMCAzIDNoM2EzIDMgMCAwIDAgMy0zdi0zYTMgMyAwIDAgMC0zLTNINmEzIDMgMCAwIDAtMyAzdjNabTEwLjUgM2EuNS41IDAgMCAxIDAtMWguNWEyIDIgMCAwIDAgMi0ydi0yLjVhLjUuNSAwIDAgMSAxIDBWMTRhMyAzIDAgMCAxLTMgM2gtLjVaTTE3IDguNWEuNS41IDAgMCAxLTEgMFY2YTIgMiAwIDAgMC0yLTJoLTIuNWEuNS41IDAgMCAxIDAtMUgxNGEzIDMgMCAwIDEgMyAzdjIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjUgM0g2YTMgMyAwIDAgMC0zIDN2LjVhLjUuNSAwIDAgMCAxIDBWNmMwLTEuMS45LTIgMi0yaDIuNWEuNS41IDAgMCAwIDAtMVpNNS44IDE1Ljk5QTIgMiAwIDAgMSA0IDE0di0zYzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg2bC0uMi0uMDFaTTMgMTRhMyAzIDAgMCAwIDMgM2gzYTMgMyAwIDAgMCAzLTN2LTNhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2M1ptMTAuNSAzYS41LjUgMCAwIDEgMC0xaC41YTIgMiAwIDAgMCAyLTJ2LTIuNWEuNS41IDAgMCAxIDEgMFYxNGEzIDMgMCAwIDEtMyAzaC0uNVpNMTcgOC41YS41LjUgMCAwIDEtMSAwVjZhMiAyIDAgMCAwLTItMmgtMi41YS41LjUgMCAwIDEgMC0xSDE0YTMgMyAwIDAgMSAzIDN2Mi41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC4yNSAzaC00QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNGEuNzUuNzUgMCAwIDAgMC0xLjVabS41IDE4YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTQuNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC00LjVBMy4yNSAzLjI1IDAgMCAwIDMgMTMuMjV2NC41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDQuNVptNSAwYS43NS43NSAwIDAgMSAwLTEuNWgyYy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNGEuNzUuNzUgMCAwIDEgMS41IDB2NGMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC0yWk0yMSAxMC4yNXYtNEMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM2gtNGEuNzUuNzUgMCAwIDAgMCAxLjVoNGMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0YS43NS43NSAwIDAgMCAxLjUgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC4yNSAzaC00QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNGEuNzUuNzUgMCAwIDAgMC0xLjVaTTQuNSAxNy43NXYtNC41YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDQuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY0LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC00LjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVpNMTAuNzUgMjFjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNC41YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLTQuNUEzLjI1IDMuMjUgMCAwIDAgMyAxMy4yNXY0LjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoNC41Wm01IDBhLjc1Ljc1IDAgMCAxIDAtMS41aDJjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di00YS43NS43NSAwIDAgMSAxLjUgMHY0YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTJaTTIxIDEwLjI1di00QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzaC00YS43NS43NSAwIDAgMCAwIDEuNWg0Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djRhLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMS43NSAzaC01QTMuNzUgMy43NSAwIDAgMCAzIDYuNzV2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoNWEuNzUuNzUgMCAwIDAgMC0xLjVaTTMgMjEuMjVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVoNi41QTMuNzUgMy43NSAwIDAgMCAxNyAyMS4yNXYtNi41QTMuNzUgMy43NSAwIDAgMCAxMy4yNSAxMWgtNi41QTMuNzUgMy43NSAwIDAgMCAzIDE0Ljc1djYuNVpNMTkuMjUgMjVhLjc1Ljc1IDAgMCAxIDAtMS41aDJjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTVhLjc1Ljc1IDAgMCAxIDEuNSAwdjVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1aC0yWk0yNSAxMS43NWEuNzUuNzUgMCAwIDEtMS41IDB2LTVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVoLTVhLjc1Ljc1IDAgMCAxIDAtMS41aDVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMS43NSAzaC01QTMuNzUgMy43NSAwIDAgMCAzIDYuNzV2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoNWEuNzUuNzUgMCAwIDAgMC0xLjVabS01IDIwLjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di02LjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoNi41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djYuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtNi41Wk0zIDIxLjI1QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDYuNUEzLjc1IDMuNzUgMCAwIDAgMTcgMjEuMjV2LTYuNUEzLjc1IDMuNzUgMCAwIDAgMTMuMjUgMTFoLTYuNUEzLjc1IDMuNzUgMCAwIDAgMyAxNC43NXY2LjVaTTE5LjI1IDI1YS43NS43NSAwIDAgMSAwLTEuNWgyYzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di01YS43NS43NSAwIDAgMSAxLjUgMHY1QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNWgtMlpNMjUgMTEuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwdi01YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1aC01YS43NS43NSAwIDAgMSAwLTEuNWg1QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1djVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTEzIDNINy41QTQuNSA0LjUgMCAwIDAgMyA3LjVWOWExIDEgMCAwIDAgMiAwVjcuNUEyLjUgMi41IDAgMCAxIDcuNSA1SDEzYTEgMSAwIDEgMCAwLTJabTIuNSAyNmE0LjUgNC41IDAgMCAwIDQuNS00LjV2LThhNC41IDQuNSAwIDAgMC00LjUtNC41aC04QTQuNSA0LjUgMCAwIDAgMyAxNi41djhBNC41IDQuNSAwIDAgMCA3LjUgMjloOFptNi41LTFhMSAxIDAgMCAxIDEtMWgxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE5YTEgMSAwIDEgMSAyIDB2NS41YTQuNSA0LjUgMCAwIDEtNC41IDQuNUgyM2ExIDEgMCAwIDEtMS0xWm03LTE1VjcuNUE0LjUgNC41IDAgMCAwIDI0LjUgM0gxOWExIDEgMCAxIDAgMCAyaDUuNUEyLjUgMi41IDAgMCAxIDI3IDcuNVYxM2ExIDEgMCAxIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTEzIDNINy41QTQuNSA0LjUgMCAwIDAgMyA3LjVWOWExIDEgMCAwIDAgMiAwVjcuNUEyLjUgMi41IDAgMCAxIDcuNSA1SDEzYTEgMSAwIDEgMCAwLTJaTTUgMjQuNXYtOEEyLjUgMi41IDAgMCAxIDcuNSAxNGg4YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY4YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOEEyLjUgMi41IDAgMCAxIDUgMjQuNVpNMTUuNSAyOWE0LjUgNC41IDAgMCAwIDQuNS00LjV2LThhNC41IDQuNSAwIDAgMC00LjUtNC41aC04QTQuNSA0LjUgMCAwIDAgMyAxNi41djhBNC41IDQuNSAwIDAgMCA3LjUgMjloOFptNi41LTFhMSAxIDAgMCAxIDEtMWgxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE5YTEgMSAwIDEgMSAyIDB2NS41YTQuNSA0LjUgMCAwIDEtNC41IDQuNUgyM2ExIDEgMCAwIDEtMS0xWm03LTE1VjcuNUE0LjUgNC41IDAgMCAwIDI0LjUgM0gxOWExIDEgMCAxIDAgMCAyaDUuNUEyLjUgMi41IDAgMCAxIDI3IDcuNVYxM2ExIDEgMCAxIDAgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xOS43NSA2YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtNy41YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzV2Mi41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtMi41QzYgOC44IDguOCA2IDEyLjI1IDZoNy41Wk02IDI1LjI1QzYgMjEuOCA4LjggMTkgMTIuMjUgMTloMTAuNUMyNi4yIDE5IDI5IDIxLjggMjkgMjUuMjV2MTAuNUMyOSAzOS4yIDI2LjIgNDIgMjIuNzUgNDJoLTEwLjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzV2LTEwLjVaTTMzLjI1IDQyYTEuMjUgMS4yNSAwIDEgMSAwLTIuNWgyLjVhMy43NSAzLjc1IDAgMCAwIDMuNzUtMy43NXYtNy41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHY3LjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0yLjVabS01LTMzLjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDcuNUMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djcuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LTcuNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemU0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTkuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTcuNWEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1djIuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LTIuNUM2IDguOCA4LjggNiAxMi4yNSA2aDcuNVpNNiAyNS4yNUM2IDIxLjggOC44IDE5IDEyLjI1IDE5aDEwLjVDMjYuMiAxOSAyOSAyMS44IDI5IDI1LjI1djEwLjVDMjkgMzkuMiAyNi4yIDQyIDIyLjc1IDQyaC0xMC41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di0xMC41Wk0yMi43NSAzOS41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTEwLjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtMTAuNWEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1djEwLjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWgxMC41Wm0xMC41IDIuNWExLjI1IDEuMjUgMCAxIDEgMC0yLjVoMi41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTcuNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2Ny41QzQyIDM5LjIgMzkuMiA0MiAzNS43NSA0MmgtMi41Wm0tNS0zMy41YTEuMjUgMS4yNSAwIDEgMSAwLTIuNWg3LjVDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXY3LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi03LjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtNy41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplSW1hZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVJbWFnZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS4yNSAyQTMuMjUgMy4yNSAwIDAgMCAyIDUuMjV2M2EuNzUuNzUgMCAwIDAgMS41IDB2LTNjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNabTYuNSAwYS43NS43NSAwIDAgMCAwIDEuNWgzYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djNhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zQzE4IDMuNDUgMTYuNTQgMiAxNC43NSAyaC0zWk0xOCAxMS43NWEuNzUuNzUgMCAwIDAtMS41IDB2M2MwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTNhLjc1Ljc1IDAgMCAwIDAgMS41aDNjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtM1pNMSAxMi41QTIuNSAyLjUgMCAwIDEgMy41IDEwaDRhMi41IDIuNSAwIDAgMSAyLjUgMi41djRjMCAuNS0uMTUuOTgtLjQxIDEuMzhsLTMuMDMtMy4wM2ExLjUgMS41IDAgMCAwLTIuMTIgMEwxLjQgMTcuODhDMS4xNSAxNy40OCAxIDE3IDEgMTYuNXYtNFptNyAuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptLTUuODggNS44NGMuNC4yNi44Ny40MSAxLjM4LjQxaDRjLjUxIDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMEwyLjEyIDE4LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVJbWFnZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVJbWFnZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjMuNWEuNS41IDAgMCAwIDEgMFY1YzAtMS4xLjktMiAyLTJoMy41YS41LjUgMCAwIDAgMC0xSDVabTYuNSAwYS41LjUgMCAwIDAgMCAxSDE1YTIgMiAwIDAgMSAyIDJ2My41YS41LjUgMCAwIDAgMSAwVjVhMyAzIDAgMCAwLTMtM2gtMy41Wm02LjUgOS41YS41LjUgMCAwIDAtMSAwVjE1YTIgMiAwIDAgMS0yIDJoLTMuNWEuNS41IDAgMCAwIDAgMUgxNWEzIDMgMCAwIDAgMy0zdi0zLjVabS0xNyAxQTIuNSAyLjUgMCAwIDEgMy41IDEwaDRhMi41IDIuNSAwIDAgMSAyLjUgMi41djRjMCAuNS0uMTUuOTgtLjQxIDEuMzhsLTMuMDMtMy4wM2ExLjUgMS41IDAgMCAwLTIuMTIgMEwxLjQgMTcuODhDMS4xNSAxNy40OCAxIDE3IDEgMTYuNXYtNFptNyAuMjVhLjc1Ljc1IDAgMSAwLTEuNSAwIC43NS43NSAwIDAgMCAxLjUgMFptLTUuODggNS44NGMuNC4yNi44Ny40MSAxLjM4LjQxaDRjLjUxIDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMEwyLjEyIDE4LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVJbWFnZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZUltYWdlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMSAzYTEgMSAwIDAgMC0xLTFINS4yNUEzLjI1IDMuMjUgMCAwIDAgMiA1LjI1VjEwYTEgMSAwIDEgMCAyIDBWNS4yNUM0IDQuNTYgNC41NiA0IDUuMjUgNEgxMGExIDEgMCAwIDAgMS0xWm0zLTFhMSAxIDAgMSAwIDAgMmg0Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1VjEwYTEgMSAwIDEgMCAyIDBWNS4yNUMyMiAzLjQ1IDIwLjU0IDIgMTguNzUgMkgxNFptMCAyMGExIDEgMCAxIDEgMC0yaDQuNzVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjE0YTEgMSAwIDEgMSAyIDB2NC43NWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDE0Wk00IDEyYTMgMyAwIDAgMC0zIDN2NWMwIC41Ni4xNSAxLjA4LjQyIDEuNTJsMy40OS0zLjQ5Yy44OC0uODggMi4zLS44OCAzLjE4IDBsMy41IDMuNWMuMjYtLjQ1LjQxLS45Ny40MS0xLjUzdi01YTMgMyAwIDAgMC0zLTNINFptMCAxMWMtLjU2IDAtMS4wOC0uMTUtMS41Mi0uNDJsMy40OS0zLjQ5Yy4zLS4zLjc3LS4zIDEuMDYgMGwzLjUgMy41Yy0uNDUuMjYtLjk3LjQxLTEuNTMuNDFINFptNS03YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZUltYWdlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZUltYWdlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTEgMi43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNUEzLjI1IDMuMjUgMCAwIDAgMiA1LjI1djVhLjc1Ljc1IDAgMCAwIDEuNSAwdi01YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDVjLjQxIDAgLjc1LS4zNC43NS0uNzVaTTEzLjc1IDJhLjc1Ljc1IDAgMCAwIDAgMS41aDVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NWEuNzUuNzUgMCAwIDAgMS41IDB2LTVDMjIgMy40NSAyMC41NCAyIDE4Ljc1IDJoLTVabTAgMjBhLjc1Ljc1IDAgMCAxIDAtMS41aDVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di01YS43NS43NSAwIDAgMSAxLjUgMHY1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTVaTTQgMTJhMyAzIDAgMCAwLTMgM3Y1YzAgLjU2LjE1IDEuMDguNDIgMS41MmwzLjQ5LTMuNDljLjg4LS44OCAyLjMtLjg4IDMuMTggMGwzLjUgMy41Yy4yNi0uNDUuNDEtLjk3LjQxLTEuNTN2LTVhMyAzIDAgMCAwLTMtM0g0Wm0wIDExYy0uNTYgMC0xLjA4LS4xNS0xLjUyLS40MmwzLjQ5LTMuNDljLjMtLjMuNzctLjMgMS4wNiAwbDMuNSAzLjVjLS40NS4yNi0uOTcuNDEtMS41My40MUg0Wm01LTdhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplTGFyZ2UxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVMYXJnZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYxYS41LjUgMCAwIDEtMSAwdi0xQTIuNSAyLjUgMCAwIDEgNC41IDJoMWEuNS41IDAgMCAxIDAgMWgtMVptMSAxQzQuNjcgNCA0IDQuNjcgNCA1LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTVabTYtMWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYS41LjUgMCAwIDAgMSAwdi0xQTIuNSAyLjUgMCAwIDAgMTEuNSAyaC0xYS41LjUgMCAwIDAgMCAxaDFabTAgMTBjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYS41LjUgMCAwIDEgMSAwdjFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xYS41LjUgMCAwIDEgMC0xaDFabS03IDBBMS41IDEuNSAwIDAgMSAzIDExLjV2LTEuMjVhLjUuNSAwIDAgMC0xIDB2MS4yNUEyLjUgMi41IDAgMCAwIDQuNSAxNGgxLjI1YS41LjUgMCAwIDAgMC0xSDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZUxhcmdlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZUxhcmdlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYxYS41LjUgMCAwIDEtMSAwdi0xQTIuNSAyLjUgMCAwIDEgNC41IDJoMWEuNS41IDAgMCAxIDAgMWgtMVpNMTMgNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMWEuNS41IDAgMCAxIDAtMWgxQTIuNSAyLjUgMCAwIDEgMTQgNC41djFhLjUuNSAwIDAgMS0xIDB2LTFabTAgN2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFhLjUuNSAwIDAgMC0xIDB2MVptLTEwIDBjMCAuODMuNjcgMS41IDEuNSAxLjVoMS4yNWEuNS41IDAgMCAxIDAgMUg0LjVBMi41IDIuNSAwIDAgMSAyIDExLjV2LTEuMjVhLjUuNSAwIDAgMSAxIDB2MS4yNVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVpNNSA1LjVjMC0uMjguMjItLjUuNS0uNWg1Yy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di01WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplTGFyZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVMYXJnZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXYxYS41LjUgMCAwIDEtMSAwdi0xQTIuNSAyLjUgMCAwIDEgNS41IDNoMWEuNS41IDAgMCAxIDAgMWgtMVptMSAxQzUuNjcgNSA1IDUuNjcgNSA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTgtMWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYS41LjUgMCAwIDAgMSAwdi0xQTIuNSAyLjUgMCAwIDAgMTQuNSAzaC0xYS41LjUgMCAwIDAgMCAxaDFabTAgMTJjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYS41LjUgMCAwIDEgMSAwdjFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xYS41LjUgMCAwIDEgMC0xaDFabS05IDBBMS41IDEuNSAwIDAgMSA0IDE0LjV2LTEuMjVhLjUuNSAwIDAgMC0xIDB2MS4yNUEyLjUgMi41IDAgMCAwIDUuNSAxN2gxLjI1YS41LjUgMCAwIDAgMC0xSDUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZUxhcmdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZUxhcmdlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXYxYS41LjUgMCAwIDEtMSAwdi0xQTIuNSAyLjUgMCAwIDEgNS41IDNoMWEuNS41IDAgMCAxIDAgMWgtMVpNMTYgNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMWEuNS41IDAgMCAxIDAtMWgxQTIuNSAyLjUgMCAwIDEgMTcgNS41djFhLjUuNSAwIDAgMS0xIDB2LTFabTAgOWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFhLjUuNSAwIDAgMCAwIDFoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFhLjUuNSAwIDAgMC0xIDB2MVptLTEyIDBjMCAuODMuNjcgMS41IDEuNSAxLjVoMS4yNWEuNS41IDAgMCAxIDAgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTEuMjVhLjUuNSAwIDAgMSAxIDB2MS4yNVpNNi41IDVDNS42NyA1IDUgNS42NyA1IDYuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNNiA2LjVjMC0uMjguMjItLjUuNS0uNWg3Yy4yOCAwIC41LjIyLjUuNXY3YS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di03WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplTGFyZ2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVMYXJnZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MS41YS43NS43NSAwIDAgMCAxLjUgMHYtMS41Wk0xNy43NSA0LjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41YS43NS43NSAwIDAgMCAxLjUgMHYtMS41QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzaC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNVptMCAxNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTEuNWEuNzUuNzUgMCAwIDEgMS41IDB2MS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTEuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMS41Wm0tMTEuNSAwYy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTEuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVptMi0xMy41QzcuMDEgNiA2IDcgNiA4LjI1djcuNUM2IDE2Ljk5IDcgMTggOC4yNSAxOGg3LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTcuNUMxOCA3LjAxIDE3IDYgMTUuNzUgNmgtNy41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplTGFyZ2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplTGFyZ2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MS41YS43NS43NSAwIDAgMS0xLjUgMHYtMS41QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNVpNMTkuNSA2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41YS43NS43NSAwIDAgMSAwLTEuNWgxLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MS41YS43NS43NSAwIDAgMS0xLjUgMHYtMS41Wm0wIDExLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0xLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuNVptLTE1IDBjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1di0xLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjEuNVpNOC4yNSA2QzcuMDEgNiA2IDcgNiA4LjI1djcuNUM2IDE2Ljk5IDcgMTggOC4yNSAxOGg3LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTcuNUMxOCA3LjAxIDE3IDYgMTUuNzUgNmgtNy41Wk03LjUgOC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDcuNWMuNDEgMCAuNzUuMzQuNzUuNzV2Ny41YzAgLjQxLS4zNC43NS0uNzUuNzVoLTcuNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNy41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplU21hbGwxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVTbWFsbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYxYS41LjUgMCAwIDEtMSAwdi0xQTIuNSAyLjUgMCAwIDEgNC41IDJoMWEuNS41IDAgMCAxIDAgMWgtMVptMyAzQzYuNjcgNiA2IDYuNjcgNiA3LjV2MWMwIC44My42NyAxLjUgMS41IDEuNWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMUMxMCA2LjY3IDkuMzMgNiA4LjUgNmgtMVptNC0zYy44MyAwIDEuNS42NyAxLjUgMS41djFhLjUuNSAwIDAgMCAxIDB2LTFBMi41IDIuNSAwIDAgMCAxMS41IDJoLTFhLjUuNSAwIDAgMCAwIDFoMVptMCAxMGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFhLjUuNSAwIDAgMSAxIDB2MWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTFhLjUuNSAwIDAgMSAwLTFoMVptLTcgMEExLjUgMS41IDAgMCAxIDMgMTEuNXYtMS4yNWEuNS41IDAgMCAwLTEgMHYxLjI1QTIuNSAyLjUgMCAwIDAgNC41IDE0aDEuMjVhLjUuNSAwIDAgMCAwLTFINC41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplU21hbGwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplU21hbGwxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00LjUgM0MzLjY3IDMgMyAzLjY3IDMgNC41djFhLjUuNSAwIDAgMS0xIDB2LTFBMi41IDIuNSAwIDAgMSA0LjUgMmgxYS41LjUgMCAwIDEgMCAxaC0xWk02IDcuNUM2IDYuNjcgNi42NyA2IDcuNSA2aDFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSA2IDguNXYtMVpNNy41IDdhLjUuNSAwIDAgMC0uNS41djFjMCAuMjguMjIuNS41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFabTQtNGMuODMgMCAxLjUuNjcgMS41IDEuNXYxYS41LjUgMCAwIDAgMSAwdi0xQTIuNSAyLjUgMCAwIDAgMTEuNSAyaC0xYS41LjUgMCAwIDAgMCAxaDFabTAgMTBjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYS41LjUgMCAwIDEgMSAwdjFhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xYS41LjUgMCAwIDEgMC0xaDFabS03IDBBMS41IDEuNSAwIDAgMSAzIDExLjV2LTEuMjVhLjUuNSAwIDAgMC0xIDB2MS4yNUEyLjUgMi41IDAgMCAwIDQuNSAxNGgxLjI1YS41LjUgMCAwIDAgMC0xSDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVNtYWxsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplU21hbGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2MWEuNS41IDAgMCAxLTEgMHYtMUEyLjUgMi41IDAgMCAxIDUuNSAzaDFhLjUuNSAwIDAgMSAwIDFoLTFabTMgM0M3LjY3IDcgNyA3LjY3IDcgOC41djNjMCAuODMuNjcgMS41IDEuNSAxLjVoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zWm02LTNjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWEuNS41IDAgMCAwIDEgMHYtMUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtMWEuNS41IDAgMCAwIDAgMWgxWm0wIDEyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWEuNS41IDAgMCAxIDEgMHYxYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMWEuNS41IDAgMCAxIDAtMWgxWm0tOSAwQTEuNSAxLjUgMCAwIDEgNCAxNC41di0xLjI1YS41LjUgMCAwIDAtMSAwdjEuMjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoMS4yNWEuNS41IDAgMCAwIDAtMUg1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVTbWFsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXNpemVTbWFsbDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2MWEuNS41IDAgMCAxLTEgMHYtMUEyLjUgMi41IDAgMCAxIDUuNSAzaDFhLjUuNSAwIDAgMSAwIDFoLTFaTTE2IDUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTFhLjUuNSAwIDAgMSAwLTFoMUEyLjUgMi41IDAgMCAxIDE3IDUuNXYxYS41LjUgMCAwIDEtMSAwdi0xWm0wIDljMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xYS41LjUgMCAwIDAgMCAxaDFhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xYS41LjUgMCAwIDAtMSAwdjFabS0xMiAwYzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuMjVhLjUuNSAwIDAgMSAwIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di0xLjI1YS41LjUgMCAwIDEgMSAwdjEuMjVaTTguNSA3QzcuNjcgNyA3IDcuNjcgNyA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtM2MwLS44My0uNjctMS41LTEuNS0xLjVoLTNaTTggOC41YzAtLjI4LjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjV2M2EuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVNtYWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplU21hbGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgNC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41Wk0xMC4yIDhjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djMuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgzLjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTMuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtMy41Wm03LjU1LTMuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xLjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41Wm0wIDE1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMS41YS43NS43NSAwIDAgMSAxLjUgMHYxLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtMS41YS43NS43NSAwIDAgMSAwLTEuNWgxLjVabS0xMS41IDBjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMS41YS43NS43NSAwIDAgMC0xLjUgMHYxLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplU21hbGwyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplU21hbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MS41YS43NS43NSAwIDAgMS0xLjUgMHYtMS41QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNVptMS43IDUuNzVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoMy41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djMuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtMy41Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtMy41Wm0yLjI1LS43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djMuNWMwIC40MS4zNC43NS43NS43NWgzLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTMuNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMy41Wm03LjU1LTVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MS41YS43NS43NSAwIDAgMCAxLjUgMHYtMS41QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzaC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNVptMCAxNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTEuNWEuNzUuNzUgMCAwIDEgMS41IDB2MS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTEuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMS41Wm0tMTEuNSAwYy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTEuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVRhYmxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplVGFibGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUgMmEzIDMgMCAwIDAtMyAzdjIuMzVjLjI5LS4zMi42Mi0uNiAxLS44MVY1YzAtMS4xLjktMiAyLTJoMy41YS41LjUgMCAwIDAgMC0xSDVabTEwIDE2aC0yLjM1Yy4zMi0uMjkuNi0uNjIuODEtMUgxNWEyIDIgMCAwIDAgMi0ydi0zLjVhLjUuNSAwIDAgMSAxIDBWMTVhMyAzIDAgMCAxLTMgM1pNMTEuNSAyYS41LjUgMCAwIDAgMCAxSDE1YTIgMiAwIDAgMSAyIDJ2My41YS41LjUgMCAwIDAgMSAwVjVhMyAzIDAgMCAwLTMtM2gtMy41Wk01IDdhMyAzIDAgMCAwLTMgM2gzVjdabTAgNHYzSDJ2LTNoM1ptMCA0SDJhMyAzIDAgMCAwIDMgM3YtM1ptMSAwaDN2M0g2di0zWm0wLTFoM3YtM0g2djNabTQgMWgzYTMgMyAwIDAgMS0zIDN2LTNabTAtNHYzaDN2LTNoLTNabTAtMVY3YTMgMyAwIDAgMSAzIDNoLTNaTTYgN2gzdjNINlY3WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplVGFibGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplVGFibGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3YyLjM1Yy4yOS0uMzIuNjItLjYgMS0uODFWNWMwLTEuMS45LTIgMi0yaDMuNWEuNS41IDAgMCAwIDAtMUg1Wm0xMCAxNmgtMi4zNWMuMzItLjI5LjYtLjYyLjgxLTFIMTVhMiAyIDAgMCAwIDItMnYtMy41YS41LjUgMCAwIDEgMSAwVjE1YTMgMyAwIDAgMS0zIDNaTTExLjUgMmEuNS41IDAgMCAwIDAgMUgxNWEyIDIgMCAwIDEgMiAydjMuNWEuNS41IDAgMCAwIDEgMFY1YTMgMyAwIDAgMC0zLTNoLTMuNVpNNSA3YTMgMyAwIDAgMC0zIDN2NWEzIDMgMCAwIDAgMyAzaDVhMyAzIDAgMCAwIDMtM3YtNWEzIDMgMCAwIDAtMy0zSDVabS0yIDNjMC0xLjEuOS0yIDItMnYySDNabTMgMFY4aDN2Mkg2Wm00IDBWOGEyIDIgMCAwIDEgMiAyaC0yWm0tNCAxaDN2M0g2di0zWm00IDBoMnYzaC0ydi0zWm0tNCA0aDN2Mkg2di0yWm02IDBhMiAyIDAgMCAxLTIgMnYtMmgyWm0tOS00aDJ2M0gzdi0zWm0wIDRoMnYyYTIgMiAwIDAgMS0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVUYWJsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVRhYmxlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01LjI1IDJoNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djIuOTZjLS41OC4yLTEuMS41NS0xLjUuOTlWNS4yNUMyIDMuNDUgMy40NiAyIDUuMjUgMlptMTAuNTQgMTguNWMtLjIuNTgtLjU1IDEuMS0uOTkgMS41aDMuOTVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNWEuNzUuNzUgMCAwIDAtMS41IDB2NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTIuOTZabTUuNDYtOS41Yy40MSAwIC43NS0uMzQuNzUtLjc1di01QzIyIDMuNDUgMjAuNTQgMiAxOC43NSAyaC01YS43NS43NSAwIDAgMCAwIDEuNWg1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djVjMCAuNDEuMzQuNzUuNzUuNzVaTTcgOWgzdjMuNUg3VjlabTAgNWgzdjMuNUg3VjE0Wm00LjUgMHYzLjVIMTVWMTRoLTMuNVpNNyAxOWgzdjNIN3YtM1ptNC41IDB2M2guNzVBMi43NSAyLjc1IDAgMCAwIDE1IDE5LjI1VjE5aC0zLjVabTAtMTB2My41SDE1di0uNzVBMi43NSAyLjc1IDAgMCAwIDEyLjI1IDloLS43NVptLTYgMGgtLjc1QTIuNzUgMi43NSAwIDAgMCAyIDExLjc1di43NWgzLjVWOVptMCA1SDJ2My41aDMuNVYxNFptMCA1SDJ2LjI1QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDIyaC43NXYtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVRhYmxlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVRhYmxlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS4yNSAyaDVhLjc1Ljc1IDAgMCAxIDAgMS41aC01Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYzLjEzYy0uNTguMjYtMS4xLjY1LTEuNSAxLjEzVjUuMjVDMiAzLjQ1IDMuNDYgMiA1LjI1IDJabTEwLjM3IDE4LjVjLS4yNi41OC0uNjUgMS4xLTEuMTMgMS41aDQuMjZjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNWEuNzUuNzUgMCAwIDAtMS41IDB2NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTMuMTNabTUuNjMtOS41Yy40MSAwIC43NS0uMzQuNzUtLjc1di01QzIyIDMuNDUgMjAuNTQgMiAxOC43NSAyaC01YS43NS43NSAwIDAgMCAwIDEuNWg1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djVjMCAuNDEuMzQuNzUuNzUuNzVabS0xNi0yQTMuMjUgMy4yNSAwIDAgMCAyIDEyLjI1djYuNUMyIDIwLjU1IDMuNDYgMjIgNS4yNSAyMmg2LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtNi41QzE1IDEwLjQ1IDEzLjU0IDkgMTEuNzUgOWgtNi41Wk0zLjUgMTIuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVINlYxM0gzLjV2LS43NVpNNiAxNC41VjE3SDMuNXYtMi41SDZaTTcuNSAxN3YtMi41aDJWMTdoLTJabTMuNSAwdi0yLjVoMi41VjE3SDExWm0tMy41IDEuNWgydjJoLTJ2LTJabTMuNSAwaDIuNXYuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDExdi0yWm0wLThoLjc1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjEzSDExdi0yLjVaTTkuNSAxM2gtMnYtMi41aDJWMTNaTTYgMTguNXYyaC0uNzVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtLjI1SDZaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVWaWRlbzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVZpZGVvMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjI1IDJBMy4yNSAzLjI1IDAgMCAwIDIgNS4yNXYzYS43NS43NSAwIDAgMCAxLjUgMHYtM2MwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgzYS43NS43NSAwIDAgMCAwLTEuNWgtM1ptNi41IDBhLjc1Ljc1IDAgMCAwIDAgMS41aDNjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2M2EuNzUuNzUgMCAwIDAgMS41IDB2LTNDMTggMy40NSAxNi41NCAyIDE0Ljc1IDJoLTNaTTE4IDExLjc1YS43NS43NSAwIDAgMC0xLjUgMHYzYzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtM2EuNzUuNzUgMCAwIDAgMCAxLjVoM2MxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di0zWk0zLjUgMTBoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NEEyLjUgMi41IDAgMCAxIDcuNSAxOWgtNEEyLjUgMi41IDAgMCAxIDEgMTYuNXYtNEEyLjUgMi41IDAgMCAxIDMuNSAxMFptLjcyIDIuNTVhLjUuNSAwIDAgMC0uNzIuNDV2M2EuNS41IDAgMCAwIC43Mi40NWwzLTEuNWEuNS41IDAgMCAwIDAtLjlsLTMtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplVmlkZW8yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplVmlkZW8yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01IDJhMyAzIDAgMCAwLTMgM3YzLjVhLjUuNSAwIDAgMCAxIDBWNWMwLTEuMS45LTIgMi0yaDMuNWEuNS41IDAgMCAwIDAtMUg1Wm02LjUgMGEuNS41IDAgMCAwIDAgMUgxNWEyIDIgMCAwIDEgMiAydjMuNWEuNS41IDAgMCAwIDEgMFY1YTMgMyAwIDAgMC0zLTNoLTMuNVptNi41IDkuNWEuNS41IDAgMCAwLTEgMFYxNWEyIDIgMCAwIDEtMiAyaC0zLjVhLjUuNSAwIDAgMCAwIDFIMTVhMyAzIDAgMCAwIDMtM3YtMy41Wk0zLjUgMTBBMi41IDIuNSAwIDAgMCAxIDEyLjV2NEEyLjUgMi41IDAgMCAwIDMuNSAxOWg0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNEEyLjUgMi41IDAgMCAwIDcuNSAxMGgtNFptLjcyIDIuNTUgMyAxLjVhLjUuNSAwIDAgMSAwIC45bC0zIDEuNUEuNS41IDAgMCAxIDMuNSAxNnYtM2EuNS41IDAgMCAxIC43Mi0uNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXNpemVWaWRlbzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jlc2l6ZVZpZGVvMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS4yNSAxM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXY1YTMuMjUgMy4yNSAwIDAgMS0zLjA3IDMuMjRsLS4xOC4wMWgtNC42N2MuNTQtLjM5Ljk4LS45IDEuMjctMS41aDMuNGMuOTIgMCAxLjY3LS43IDEuNzQtMS42bC4wMS0uMTV2LTVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTkuNS00YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2Ni41YzAgMS44LTEuNDUgMy4yNS0zLjI1IDMuMjVoLTYuNUEzLjI1IDMuMjUgMCAwIDEgMiAxOC43NXYtNi41QzIgMTAuNDUgMy40NiA5IDUuMjUgOWg2LjVabS01LjY5IDQuMWEuNS41IDAgMCAwLS4wNi4yNHY0LjMyYS41LjUgMCAwIDAgLjc0LjQ0bDMuOTYtMi4xNmEuNS41IDAgMCAwIDAtLjg4TDYuNzQgMTIuOWEuNS41IDAgMCAwLS42OC4yWk0xOC43NSAyQTMuMjUgMy4yNSAwIDAgMSAyMiA1LjA3djUuMThhLjc1Ljc1IDAgMCAxLTEuNS4xdi01LjFjMC0uOTItLjctMS42Ny0xLjYtMS43NGwtLjE1LS4wMWgtNWEuNzUuNzUgMCAwIDEtLjEtMS41aDUuMVptLTguNSAwYS43NS43NSAwIDAgMSAuMSAxLjVoLTUuMWMtLjkyIDAtMS42Ny43LTEuNzQgMS42bC0uMDEuMTV2My40Yy0uNi4zLTEuMTEuNzMtMS41IDEuMjdWNS4yNWEzLjI1IDMuMjUgMCAwIDEgMy4wNy0zLjI0TDUuMjUgMmg1WlwiXSk7XG5leHBvcnQgY29uc3QgUmVzaXplVmlkZW8yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmVzaXplVmlkZW8yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMS4yNSAxM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMXY1YTMuMjUgMy4yNSAwIDAgMS0zLjA3IDMuMjRsLS4xOC4wMWgtNC42N2MuNTQtLjM5Ljk4LS45IDEuMjctMS41aDMuNGMuOTIgMCAxLjY3LS43IDEuNzQtMS42bC4wMS0uMTV2LTVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTkuNS00YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2Ni41YzAgMS44LTEuNDUgMy4yNS0zLjI1IDMuMjVoLTYuNUEzLjI1IDMuMjUgMCAwIDEgMiAxOC43NXYtNi41QzIgMTAuNDUgMy40NiA5IDUuMjUgOWg2LjVabTAgMS41aC02LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di02LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1Wm0tNS42OSAyLjZhLjUuNSAwIDAgMSAuNi0uMjNsLjA4LjAzIDMuOTYgMi4xNmEuNS41IDAgMCAxIC4wNy44M2wtLjA3LjA1LTMuOTYgMi4xNmEuNS41IDAgMCAxLS43My0uMzVsLS4wMS0uMXYtNC4zYS41LjUgMCAwIDEgLjA2LS4yNVpNMTguNzUgMkEzLjI1IDMuMjUgMCAwIDEgMjIgNS4wN3Y1LjE4YS43NS43NSAwIDAgMS0xLjUuMXYtNS4xYzAtLjkyLS43LTEuNjctMS42LTEuNzRsLS4xNS0uMDFoLTVhLjc1Ljc1IDAgMCAxLS4xLTEuNWg1LjFabS04LjUgMGEuNzUuNzUgMCAwIDEgLjEgMS41aC01LjFjLS45MiAwLTEuNjcuNy0xLjc0IDEuNmwtLjAxLjE1djMuNGMtLjYuMy0xLjExLjczLTEuNSAxLjI3VjUuMjVhMy4yNSAzLjI1IDAgMCAxIDMuMDctMy4yNEw1LjI1IDJoNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2FyZDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMi4yNSAxQzEuNTYgMSAxIDEuNTYgMSAyLjI1djEuMTZjMCAuNTUuMyAxLjA1Ljc3IDEuMzFsMi44OCAxLjZhMyAzIDAgMSAwIDIuNyAwbDIuODgtMS42Yy40Ny0uMjYuNzctLjc2Ljc3LTEuM1YyLjI0QzExIDEuNTYgMTAuNDQgMSA5Ljc1IDFoLTcuNVpNNSA1LjM3VjJoMnYzLjM3bC0xIC41Ni0xLS41NlpNOCA5YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdhcmQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0yLjI1IDFDMS41NiAxIDEgMS41NiAxIDIuMjV2MS4xNmMwIC41NS4zIDEuMDUuNzcgMS4zMWwyLjg4IDEuNmEzIDMgMCAxIDAgMi43IDBsMi44OC0xLjZjLjQ3LS4yNi43Ny0uNzYuNzctMS4zVjIuMjRDMTEgMS41NiAxMC40NCAxIDkuNzUgMWgtNy41Wk0yIDIuMjVjMC0uMTQuMTEtLjI1LjI1LS4yNUg0djIuODJsLTEuNzQtLjk3QS41LjUgMCAwIDEgMiAzLjRWMi4yNVptMyAzLjEyVjJoMnYzLjM3bC0xIC41Ni0xLS41NlptMy0uNTVWMmgxLjc1Yy4xNCAwIC4yNS4xMS4yNS4yNXYxLjE2YS41LjUgMCAwIDEtLjI2LjQ0TDggNC44MlpNOCA5YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2FyZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNXYxLjJjMCAuNTEuMjcgMSAuNzEgMS4yN2wzLjg3IDIuMzlhMyAzIDAgMSAwIDIuODQgMGwzLjg3LTIuNGMuNDQtLjI2LjcxLS43NS43MS0xLjI3VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTYgNi44M1YzaDR2My44M0w4LjI2IDcuOWEuNS41IDAgMCAxLS41MiAwTDYgNi44M1pNOCA5YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdhcmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjUgMkMyLjY3IDIgMiAyLjY3IDIgMy41djEuMmMwIC41MS4yNyAxIC43MSAxLjI3bDMuODcgMi4zOWEzIDMgMCAxIDAgMi44NCAwbDMuODctMi40Yy40NC0uMjYuNzEtLjc1LjcxLTEuMjdWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOVpNMyAzLjVjMC0uMjguMjItLjUuNS0uNUg1djMuMkwzLjI0IDUuMTNBLjUuNSAwIDAgMSAzIDQuNjlWMy41Wm0zIDMuMzNWM2g0djMuODNMOC4yNiA3LjlhLjUuNSAwIDAgMS0uNTIgMEw2IDYuODNabTUtLjYyVjNoMS41Yy4yOCAwIC41LjIyLjUuNXYxLjJhLjUuNSAwIDAgMS0uMjQuNDJMMTEgNi4yWk02IDExYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2FyZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTUuNTMgM2MuODIgMCAxLjUuNjcgMS41IDEuNXYxLjRjMCAuOTMtLjUzIDEuOC0xLjM3IDIuMjJsLTQuMTkgMi4xNGEzLjU0IDMuNTQgMCAxIDEtMi45MiAwTDQuMzYgOC4xMmEyLjUgMi41IDAgMCAxLTEuMzUtMi4wNEwzIDUuOVY0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2gxMS4wM1pNMTAgMTAuOTVhMi41NCAyLjU0IDAgMSAwIDAgNS4wNyAyLjU0IDIuNTQgMCAwIDAgMC01LjA3Wk0xMi42MSA0aC01LjJ2NC41NWwyLjM4IDEuMjJhLjUuNSAwIDAgMCAuNDUgMGwyLjM4LTEuMjJWNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdhcmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNS41MyAzYy44MyAwIDEuNS42NyAxLjUgMS41djEuNGMwIC45NC0uNTMgMS44LTEuMzYgMi4yMmwtNC4yIDIuMTRhMy41NCAzLjU0IDAgMSAxLTIuOTIgMEw0LjM2IDguMTJhMi41IDIuNSAwIDAgMS0xLjM1LTIuMDRWNC41QzMgMy42NyAzLjY2IDMgNC41IDNoMTEuMDJaTTEwIDEwLjk1YTIuNTQgMi41NCAwIDEgMCAwIDUuMDggMi41NCAyLjU0IDAgMCAwIDAtNS4wOFpNMTIuNTUgNEg3LjQ3VjguNkw5LjggOS43N2EuNS41IDAgMCAwIC40NSAwbDIuMzEtMS4xOFY0Wk02LjQ3IDRINC41YS41LjUgMCAwIDAtLjUuNXYxLjU0Yy4wNi41LjM2Ljk2LjgyIDEuMmwxLjY1Ljg0VjRabTkuMDYgMGgtMS45OHY0LjA4bDEuNjYtLjg1Yy41LS4yNS44Mi0uNzcuODItMS4zM1Y0LjVhLjUuNSAwIDAgMC0uNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2FyZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjAuMjUgMmMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYzLjA0YzAgMS4wMy0uNTcgMS45Ny0xLjQ4IDIuNDRsLTYuMyAzLjI5YTUgNSAwIDEgMS00LjQ0IDBsLTYuMy0zLjNBMi43NSAyLjc1IDAgMCAxIDIgNi44VjMuNzVDMiAyLjc4IDIuNzggMiAzLjc1IDJoMTYuNVpNMTIgMTMuNWEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN1ptNC0xMEg4djYuNGwzLjg4IDIuMDNjLjA4LjA0LjE2LjA0LjI0IDBMMTYgOS45VjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2FyZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdhcmQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMC4yNSAyYy45NyAwIDEuNzUuNzggMS43NSAxLjc1djMuMDRjMCAxLjAzLS41NyAxLjk3LTEuNDggMi40NGwtNi4yOCAzLjI4YTUgNSAwIDEgMS00LjQ4IDBMMy40OCA5LjIzQTIuNzUgMi43NSAwIDAgMSAyIDYuNzlWMy43NUMyIDIuNzggMi43OCAyIDMuNzUgMmgxNi41Wk0xMiAxMy40OGEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN1ptMy41LTkuOThoLTd2Ni42NmwzLjM4IDEuNzdjLjA4LjA0LjE2LjA0LjI0IDBsMy4zOC0xLjc3VjMuNVpNNyAzLjVIMy43NWEuMjUuMjUgMCAwIDAtLjI1LjI1djMuMDRjMCAuNDcuMjYuOS42NyAxLjExTDcgOS4zOFYzLjVabTEzLjI1IDBIMTd2NS44OGwyLjgzLTEuNDhjLjQxLS4yMi42Ny0uNjQuNjctMS4xVjMuNzRhLjI1LjI1IDAgMCAwLS4yNS0uMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdpbmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdpbmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggNC40NmExIDEgMCAwIDAtMS41OC0uODFsLTUgMy41M2ExIDEgMCAwIDAgMCAxLjY0bDUgMy41M0ExIDEgMCAwIDAgOCAxMS41NHYtMi4zbDQuNDIgMy4xMWExIDEgMCAwIDAgMS41OC0uODFWNC40NmExIDEgMCAwIDAtMS41OC0uODFMOCA2Ljc3di0yLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdpbmQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmV3aW5kMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCA0LjQ2YTEgMSAwIDAgMC0xLjU4LS44MWwtNSAzLjUzYTEgMSAwIDAgMCAwIDEuNjRsNSAzLjUzQTEgMSAwIDAgMCA4IDExLjU0di0yLjNsNC40MiAzLjExYTEgMSAwIDAgMCAxLjU4LS44MVY0LjQ2YTEgMSAwIDAgMC0xLjU4LS44MUw4IDYuNzd2LTIuM1ptMCAzLjU1di0uMDJsNS0zLjUzdjcuMDhMOCA4Wm0tMSAzLjUzTDEuOTkgOCA3IDQuNDZ2Ny4wOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2luZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2luZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNS40OWExIDEgMCAwIDAtMS42LS44bC01Ljg3IDQuM2MtLjY4LjUtLjY4IDEuNTIgMCAyLjAybDUuODggNC4zMWExIDEgMCAwIDAgMS41OS0uOHYtMy4xN2w1LjQgMy45N2ExIDEgMCAwIDAgMS42LS44VjUuNDhhMSAxIDAgMCAwLTEuNi0uOEwxMCA4LjY0VjUuNDlabS0xLjYtLjguMy4zOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2luZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdpbmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCA1LjQ5YTEgMSAwIDAgMC0xLjYtLjhsLTUuODcgNC4zYy0uNjguNS0uNjggMS41MiAwIDIuMDJsNS44OCA0LjMxYTEgMSAwIDAgMCAxLjU5LS44di0zLjE3bDUuNCAzLjk3YTEgMSAwIDAgMCAxLjYtLjhWNS40OGExIDEgMCAwIDAtMS42LS44TDEwIDguNjRWNS40OVptLTYuODggNC4zTDkgNS41djkuMDJsLTUuODgtNC4zYS4yNS4yNSAwIDAgMSAwLS40MVptNyAwTDE2IDUuNXY5LjAybC01Ljg4LTQuM2EuMjUuMjUgMCAwIDEgMC0uNDFaXCJdKTtcbmV4cG9ydCBjb25zdCBSZXdpbmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdpbmQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjAzIDQuMzZBMS41IDEuNSAwIDAgMSAxMi41IDUuNXY0bDYuMDMtNS4xNEExLjUgMS41IDAgMCAxIDIxIDUuNTFWMTguNWMwIC44OC0uNyAxLjQ4LTEuNDYgMS41aC0uMDljLS4zMiAwLS42NC0uMTItLjkyLS4zNmwtNi4wMy01LjEzdjMuOTlhMS41IDEuNSAwIDAgMS0yLjQ3IDEuMTRsLTcuNDEtNi4zYTEuNzUgMS43NSAwIDAgMSAwLTIuNjdsNy40MS02LjNabS03LjQxIDYuMy40OS41OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJld2luZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSZXdpbmQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi41IDUuNWExLjUgMS41IDAgMCAwLTIuNDctMS4xNGwtNy40MSA2LjNjLS44Mi43LS44MiAxLjk3IDAgMi42N2w3LjQgNi4zYTEuNSAxLjUgMCAwIDAgMi40OC0xLjEzdi00bDYuMDMgNS4xNEExLjUgMS41IDAgMCAwIDIxIDE4LjV2LTEzYTEuNSAxLjUgMCAwIDAtMi40Ny0xLjE0TDEyLjUgOS41VjUuNVptMCA3LjA0di0xLjA4bDctNS45NnYxM2wtNy01Ljk2Wm0tOC45LS43M0wxMSA1LjVWMTguNWwtNy40LTYuMzFhLjI1LjI1IDAgMCAxIDAtLjM4WlwiXSk7XG5leHBvcnQgY29uc3QgUmV3aW5kMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmV3aW5kMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMi4zNiA0Ljg2QTEuNjMgMS42MyAwIDAgMSAxNSA2LjEzdjQuNTdsNy4zNi01Ljg0QTEuNjMgMS42MyAwIDAgMSAyNSA2LjEzdjE1Ljc0YTEuNjMgMS42MyAwIDAgMS0yLjY0IDEuMjhMMTUgMTcuM3Y0LjU2YTEuNjMgMS42MyAwIDAgMS0yLjY0IDEuMjdMMi43MyAxNS41YTEuOTIgMS45MiAwIDAgMSAwLTNsOS42My03LjY0WlwiXSk7XG5leHBvcnQgY29uc3QgUmV3aW5kMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jld2luZDI4UmVndWxhcicsIFwiMjhcIiwgW1wibTE1IDE3LjMgNy4zNiA1Ljg0YzEuMDcuODUgMi42NC4wOSAyLjY0LTEuMjdWNi4xM2ExLjYzIDEuNjMgMCAwIDAtMi42NC0xLjI3TDE1IDEwLjdWNi4xM2ExLjYzIDEuNjMgMCAwIDAtMi42NC0xLjI3TDIuNzMgMTIuNWExLjkyIDEuOTIgMCAwIDAgMCAzbDkuNjMgNy42NGMxLjA3Ljg1IDIuNjQuMDkgMi42NC0xLjI3VjE3LjNabTAtNC42OSA4LjMtNi41OGEuMTIuMTIgMCAwIDEgLjA2LS4wM2MuMDIgMCAuMDQgMCAuMDcuMDJsLjA1LjA0LjAyLjA3djE1Ljc0YzAgLjAzIDAgLjA1LS4wMi4wN2EuMTMuMTMgMCAwIDEtLjA1LjA0LjEzLjEzIDAgMCAxLS4wNy4wMmwtLjA2LS4wMy04LjMtNi41OFYxMi42Wm0tMS43LTYuNThhLjEyLjEyIDAgMCAxIC4wNi0uMDNjLjAyIDAgLjA0IDAgLjA3LjAybC4wNS4wNC4wMi4wN3YxNS43NGwtLjAyLjA3YS4xMy4xMyAwIDAgMS0uMDUuMDQuMTMuMTMgMCAwIDEtLjA3LjAybC0uMDYtLjAzLTkuNjQtNy42NGEuNDIuNDIgMCAwIDEgMC0uNjZsOS42NC03LjY0WlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1czE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Job21idXMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuOSA0LjA3QzQuMTYgMy40MiA0LjggMyA1LjUgM2g3Ljc1YzEuMjUgMCAyLjEgMS4yOCAxLjYxIDIuNDNsLTIuNzQgNi41Yy0uMjguNjUtLjkxIDEuMDctMS42MiAxLjA3SDIuNzZhMS43NSAxLjc1IDAgMCAxLTEuNjItMi40M2wyLjc1LTYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJob21idXMxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmhvbWJ1czE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMuOSA0LjA3QzQuMTYgMy40MiA0LjggMyA1LjUgM2g3Ljc1YzEuMjUgMCAyLjEgMS4yOCAxLjYxIDIuNDNsLTIuNzQgNi41Yy0uMjguNjUtLjkxIDEuMDctMS42MiAxLjA3SDIuNzZhMS43NSAxLjc1IDAgMCAxLTEuNjItMi40M2wyLjc1LTYuNVpNNS41IDRjLS4zIDAtLjU3LjE4LS42OS40NmwtMi43NSA2LjVjLS4yLjUuMTYgMS4wNC43IDEuMDRoNy43NGMuMyAwIC41OC0uMTguNy0uNDZsMi43NC02LjVBLjc1Ljc1IDAgMCAwIDEzLjI1IDRINS41WlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1czIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Job21idXMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQuODkgNC4zQTIgMiAwIDAgMSA2Ljc2IDNIMTdhMiAyIDAgMCAxIDEuODcgMi43bC0zLjc2IDEwYTIgMiAwIDAgMS0xLjg3IDEuM0gzYTIgMiAwIDAgMS0xLjg3LTIuN2wzLjc2LTEwWlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1czIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaG9tYnVzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC44OSA0LjNBMiAyIDAgMCAxIDYuNzYgM0gxN2EyIDIgMCAwIDEgMS44NyAyLjdsLTMuNzYgMTBhMiAyIDAgMCAxLTEuODcgMS4zSDNhMiAyIDAgMCAxLTEuODctMi43bDMuNzYtMTBaTTYuNzYgNGExIDEgMCAwIDAtLjkzLjY1bC0zLjc2IDEwQTEgMSAwIDAgMCAzIDE2aDEwLjI0YTEgMSAwIDAgMCAuOTMtLjY1bDMuNzYtMTBBMSAxIDAgMCAwIDE3IDRINi43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJob21idXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaG9tYnVzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01LjggNS40QTIuMjUgMi4yNSAwIDAgMSA3LjkgNGgxMi44NWMxLjYgMCAyLjY5IDEuNjEgMi4wOSAzLjFMMTguMiAxOC42QTIuMjUgMi4yNSAwIDAgMSAxNi4xIDIwSDMuMjVhMi4yNSAyLjI1IDAgMCAxLTIuMDgtMy4xTDUuOCA1LjRaXCJdKTtcbmV4cG9ydCBjb25zdCBSaG9tYnVzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Job21idXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01LjggNS40QTIuMjUgMi4yNSAwIDAgMSA3LjkgNGgxMi44NWMxLjYgMCAyLjY5IDEuNjEgMi4wOSAzLjFMMTguMiAxOC42QTIuMjUgMi4yNSAwIDAgMSAxNi4xIDIwSDMuMjVhMi4yNSAyLjI1IDAgMCAxLTIuMDgtMy4xTDUuOCA1LjRabTIuMS4xYy0uMzEgMC0uNTkuMTktLjcuNDdsLTQuNjQgMTEuNWMtLjIuNS4xNiAxLjAzLjcgMS4wM0gxNi4xYy4zIDAgLjU4LS4xOS43LS40N2w0LjY0LTExLjVhLjc1Ljc1IDAgMCAwLS43LTEuMDNINy45WlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1czI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Job21idXMyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTYuNTUgNS45M0EzIDMgMCAwIDEgOS4zNSA0SDI0YTMgMyAwIDAgMSAyLjggNC4wN2wtNS4zNiAxNGEzIDMgMCAwIDEtMi44IDEuOTNINGEzIDMgMCAwIDEtMi44LTQuMDdsNS4zNS0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJob21idXMyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmhvbWJ1czI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNTUgNS45M0EzIDMgMCAwIDEgOS4zNSA0SDI0YTMgMyAwIDAgMSAyLjggNC4wN2wtNS4zNiAxNGEzIDMgMCAwIDEtMi44IDEuOTNINGEzIDMgMCAwIDEtMi44LTQuMDdsNS4zNS0xNFptMi44LS40M2ExLjUgMS41IDAgMCAwLTEuNC45NmwtNS4zNSAxNEExLjUgMS41IDAgMCAwIDQgMjIuNWgxNC42NGExLjUgMS41IDAgMCAwIDEuNC0uOTZsNS4zNi0xNEExLjUgMS41IDAgMCAwIDI0IDUuNUg5LjM2WlwiXSk7XG5leHBvcnQgY29uc3QgUmhvbWJ1czMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Job21idXMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTEwLjUyIDVDOS4yIDUgOCA1LjggNy41MSA3LjA0bC02LjIgMTUuNUEzLjI1IDMuMjUgMCAwIDAgNC4zMiAyN2gxNy4xNmMxLjMzIDAgMi41Mi0uOCAzLjAxLTIuMDRsNi4yLTE1LjVBMy4yNSAzLjI1IDAgMCAwIDI3LjY4IDVIMTAuNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSaG9tYnVzMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Job21idXMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk03LjUgNy4wNEEzLjI1IDMuMjUgMCAwIDEgMTAuNTMgNWgxNy4xNmMyLjMgMCAzLjg3IDIuMzIgMy4wMSA0LjQ2bC02LjIgMTUuNUEzLjI1IDMuMjUgMCAwIDEgMjEuNDggMjdINC4zMmEzLjI1IDMuMjUgMCAwIDEtMy4wMS00LjQ2bDYuMi0xNS41Wk0xMC41MyA3Yy0uNSAwLS45Ny4zMS0xLjE2Ljc5bC02LjIgMTUuNWMtLjMzLjgyLjI4IDEuNzEgMS4xNiAxLjcxaDE3LjE2Yy41IDAgLjk3LS4zMSAxLjE2LS43OWw2LjItMTUuNUExLjI1IDEuMjUgMCAwIDAgMjcuNjggN0gxMC41MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJob21idXM0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaG9tYnVzNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMiAxMS4wNEE0Ljc1IDQuNzUgMCAwIDEgMTYuNDUgOGgyMy44YTQuNzUgNC43NSAwIDAgMSA0LjQ0IDYuNDZsLTguNjkgMjIuNUE0Ljc1IDQuNzUgMCAwIDEgMzEuNTYgNDBINy43NmE0Ljc1IDQuNzUgMCAwIDEtNC40NC02LjQ2bDguNjktMjIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJob21idXM0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmhvbWJ1czQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEyIDExLjA0QTQuNzUgNC43NSAwIDAgMSAxNi40NSA4aDIzLjhhNC43NSA0Ljc1IDAgMCAxIDQuNDQgNi40NmwtOC42OSAyMi41QTQuNzUgNC43NSAwIDAgMSAzMS41NiA0MEg3Ljc2YTQuNzUgNC43NSAwIDAgMS00LjQ0LTYuNDZsOC42OS0yMi41Wm00LjQ0LS41NGMtLjkzIDAtMS43Ny41Ny0yLjEgMS40NGwtOC42OCAyMi41YTIuMjUgMi4yNSAwIDAgMCAyLjEgMy4wNmgyMy44Yy45MyAwIDEuNzctLjU3IDIuMS0xLjQ0bDguNjktMjIuNWEyLjI1IDIuMjUgMCAwIDAtMi4xLTMuMDZIMTYuNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib24xMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib24xMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTYgOGEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN1ptMCAxYy43MyAwIDEuNDEtLjIgMi0uNTR2Mi4wNGEuNS41IDAgMCAxLS43OC40Mkw2IDEwLjFsLTEuMjIuODJBLjUuNSAwIDAgMSA0IDEwLjVWOC40NmMuNTkuMzUgMS4yNy41NCAyIC41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib24xMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0zLjUgNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWk02IDFhMy41IDMuNSAwIDAgMC0yIDYuMzd2My4xM2EuNS41IDAgMCAwIC43OC40Mkw2IDEwLjFsMS4yMi44MkEuNS41IDAgMCAwIDggMTAuNVY3LjM3QTMuNSAzLjUgMCAwIDAgNiAxWm0xIDYuODZ2MS43bC0uNzItLjQ4YS41LjUgMCAwIDAtLjU2IDBMNSA5LjU3VjcuODZhMy41IDMuNSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib24xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTggMWE1IDUgMCAxIDAgMCAxMEE1IDUgMCAwIDAgOCAxWk01IDE0LjV2LTMuM2E1Ljk3IDUuOTcgMCAwIDAgNiAwdjMuM2EuNS41IDAgMCAxLS43Ni40M0w4IDEzLjU4bC0yLjI0IDEuMzVBLjUuNSAwIDAgMSA1IDE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAxYTUgNSAwIDAgMC0zIDl2NC41YS41LjUgMCAwIDAgLjc2LjQzTDggMTMuNThsMi4yNCAxLjM1YS41LjUgMCAwIDAgLjc2LS40M1YxMGE1IDUgMCAwIDAtMy05Wk00IDZhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwWm02IDQuNTh2My4wNGwtMS43NC0xLjA1YS41LjUgMCAwIDAtLjUyIDBMNiAxMy42MnYtMy4wNGE0Ljk4IDQuOTggMCAwIDAgNCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNiA4QTYgNiAwIDEgMSA0IDhhNiA2IDAgMCAxIDEyIDBabS02IDdjMS40OSAwIDIuODctLjQ2IDQtMS4yNXYzLjc1YS41LjUgMCAwIDEtLjguNEwxMCAxNmwtMy4yIDEuOWEuNS41IDAgMCAxLS44LS40di0zLjc1QTYuOTcgNi45NyAwIDAgMCAxMCAxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNiA4YzAgMS43OC0uNzcgMy4zNy0yIDQuNDd2NS4wM2EuNS41IDAgMCAxLS43NS40M0wxMCAxNi4wOGwtMy4yNSAxLjg1QS41LjUgMCAwIDEgNiAxNy41di01LjAzQTUuOTggNS45OCAwIDAgMSAxMCAyYTYgNiAwIDAgMSA2IDZabS02IDZjLTEuMSAwLTIuMTItLjMtMy0uOHYzLjQ0bDIuNzUtMS41N2EuNS41IDAgMCAxIC41IDBMMTMgMTYuNjRWMTMuMmMtLjg4LjUtMS45LjgtMyAuOFptMC0xYTUgNSAwIDEgMCAwLTEwIDUgNSAwIDAgMCAwIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNyAxNS4yNHY2YzAgLjYxLS42OC45Ny0xLjE4LjYyTDEyIDE5LjE3bC0zLjgyIDIuNjlBLjc1Ljc1IDAgMCAxIDcgMjEuMjV2LTZhNy45NyA3Ljk3IDAgMCAwIDEwIDBaTTEyIDJhNyA3IDAgMSAxIDAgMTQgNyA3IDAgMCAxIDAtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmE3IDcgMCAwIDEgNSAxMS45djcuMzVjMCAuNTctLjYuOTItMS4xLjY3bC0uMDgtLjA2TDEyIDE5LjE4bC0zLjgyIDIuNjhhLjc1Ljc1IDAgMCAxLTEuMTctLjV2LS4xMUw3IDEzLjlBNyA3IDAgMCAxIDEyIDJabTMuNSAxNy44di00Ljc0YTYuOTcgNi45NyAwIDAgMS03IDB2NC43NGwzLjA3LTIuMTVhLjc1Ljc1IDAgMCAxIC43Ni0uMDZsLjEuMDYgMy4wNyAyLjE2di00Ljc1IDQuNzVaTTEyIDMuNWE1LjUgNS41IDAgMSAwIDAgMTEgNS41IDUuNSAwIDAgMCAwLTExWlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xMCAyMS44MVYyOWExIDEgMCAwIDAgMS41MS44Nmw0LjQ5LTIuNyA0LjQ5IDIuN0ExIDEgMCAwIDAgMjIgMjl2LTcuMTlhMTEuNDUgMTEuNDUgMCAwIDEtMTIgMFptMTItMS44YTkuOTYgOS45NiAwIDAgMS0xMi4zNi0uM0ExMCAxMCAwIDEgMSAyMiAyMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib24zMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNiAyYTEwIDEwIDAgMCAwLTYgMTh2OWExIDEgMCAwIDAgMS41MS44Nmw0LjQ5LTIuNyA0LjQ5IDIuN0ExIDEgMCAwIDAgMjIgMjl2LTlhOS45OCA5Ljk4IDAgMCAwLTYtMThaTTggMTJhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTEyIDkuMTd2Ni4wNmwtMy40OS0yLjA5YTEgMSAwIDAgMC0xLjAyIDBMMTIgMjcuMjR2LTYuMDdhOS45NyA5Ljk3IDAgMCAwIDggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbkFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbkFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTkgNS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjVoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjVhLjUuNSAwIDAgMCAwLTFIMTVWMy41Wm0tNiAyYzAtMS4yOC40NC0yLjQ1IDEuMTctMy4zOUE2IDYgMCAxIDAgMTQuMiAxMSA1LjUgNS41IDAgMCAxIDkgNS41Wk05IDE1YzEuNDkgMCAyLjg3LS40NiA0LTEuMjV2My43NWEuNS41IDAgMCAxLS44LjRMOSAxNmwtMy4yIDEuOWEuNS41IDAgMCAxLS44LS40di0zLjc1QTYuOTcgNi45NyAwIDAgMCA5IDE1WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uQWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbkFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE5IDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFY1aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjZoMS41YS41LjUgMCAwIDAgMC0xSDE1VjMuNVpNOSAyYy40IDAgLjc5LjA0IDEuMTcuMTEtLjIzLjI5LS40Mi42LS41OS45MmE1IDUgMCAxIDAgMy41NCA3LjhjLjM1LjA5LjcxLjE0IDEuMDguMTZhNi4wMyA2LjAzIDAgMCAxLTEuMiAxLjQ4djUuMDNhLjUuNSAwIDAgMS0uNzUuNDNMOSAxNi4wOGwtMy4yNSAxLjg1QS41LjUgMCAwIDEgNSAxNy41di01LjAzQTUuOTggNS45OCAwIDAgMSA5IDJabTAgMTJjLTEuMSAwLTIuMTItLjMtMy0uOHYzLjQ0bDIuNzUtMS41N2EuNS41IDAgMCAxIC41IDBMMTIgMTYuNjRWMTMuMmMtLjg4LjUtMS45LjgtMyAuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbkFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbkFkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMjMgNi41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBaTTE4IDd2Mi41YS41LjUgMCAxIDEtMSAwVjdoLTIuNWEuNS41IDAgMCAxIDAtMUgxN1YzLjVhLjUuNSAwIDEgMSAxIDBWNmgyLjVhLjUuNSAwIDAgMSAwIDFIMThabS03LS41YzAtMS42NS42Mi0zLjE2IDEuNjMtNC4zQTcuMDIgNy4wMiAwIDAgMCA0IDlhNyA3IDAgMCAwIDEyLjc3IDMuOTZBNi41IDYuNSAwIDAgMSAxMSA2LjVabTUgOC43NXY2YzAgLjYtLjY4Ljk2LTEuMTguNjFMMTEgMTkuMTdsLTMuODIgMi43QS43NS43NSAwIDAgMSA2IDIxLjI0di02YTcuOTcgNy45NyAwIDAgMCAxMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uQWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbkFkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIzIDYuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWk0xOCA3djIuNWEuNS41IDAgMSAxLTEgMFY3aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTdWMy41YS41LjUgMCAwIDEgMSAwVjZoMi41YS41LjUgMCAwIDEgMCAxSDE4Wm0tNy01Yy41NiAwIDEuMS4wNyAxLjYzLjItLjM2LjQtLjY3Ljg1LS45MiAxLjM1YTUuNSA1LjUgMCAxIDAgMy40NyA5LjAzYy41LjE5IDEuMDQuMzIgMS42LjM4LS4yNC4zMy0uNS42NS0uNzguOTR2Ny4zNWMwIC41Ny0uNi45Mi0xLjEuNjdsLS4wOC0uMDZMMTEgMTkuMTdsLTMuODIgMi43YS43NS43NSAwIDAgMS0xLjE3LS41MnYtLjFMNiAxMy45QTcgNyAwIDAgMSAxMSAyWm0zLjUgMTcuOHYtNC43NGE2Ljk3IDYuOTcgMCAwIDEtNyAwdjQuNzRsMy4wNy0yLjE2YS43NS43NSAwIDAgMSAuNzYtLjA2bC4xLjA2IDMuMDcgMi4xNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbk9mZjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMi42OCAzLjM5YTMuNSAzLjUgMCAwIDAgNC40MyA0LjQzbC43My43M0EzLjk4IDMuOTggMCAwIDEgNCA4LjQ2djIuMDRhLjUuNSAwIDAgMCAuNzguNDJMNiAxMC4xbDEuMjIuODJBLjUuNSAwIDAgMCA4IDEwLjVWOC43bDIuMTUgMi4xNWEuNS41IDAgMCAwIC43LS43bC05LTlhLjUuNSAwIDEgMC0uNy43TDIuNjggMy40Wk05LjUgNC41YzAgLjgtLjI3IDEuNTUtLjczIDIuMTRsLTQuOTEtNC45QTMuNSAzLjUgMCAwIDEgOS41IDQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25PZmYxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0yLjY4IDMuMzkgMS4xNSAxLjg1YS41LjUgMCAxIDEgLjctLjdsOSA5YS41LjUgMCAwIDEtLjcuN0w4IDguNzF2MS43OWEuNS41IDAgMCAxLS43OC40Mkw2IDEwLjFsLTEuMjIuODJBLjUuNSAwIDAgMSA0IDEwLjVWNy4zN0EzLjUgMy41IDAgMCAxIDIuNjggMy40Wm0zLjYgMy42TDMuNTIgNC4yMWwtLjAyLjI4YTIuNSAyLjUgMCAwIDAgMi43OCAyLjQ4Wk04LjUgNC41YzAgLjUzLS4xNyAxLjAyLS40NSAxLjQzbC43Mi43MWEzLjUgMy41IDAgMCAwLTQuOTEtNC45MWwuNzEuNzJBMi41IDIuNSAwIDAgMSA4LjUgNC41Wk03IDcuODZhMy41IDMuNSAwIDAgMS0yIDB2MS43bC43Mi0uNDhhLjUuNSAwIDAgMSAuNTYgMGwuNzIuNDlWNy44NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbk9mZjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMy4zOCA0LjA5QTQuOTggNC45OCAwIDAgMCA4IDExYy42OCAwIDEuMzItLjEzIDEuOTEtLjM4bC43Ni43NkE1Ljk4IDUuOTggMCAwIDEgNSAxMS4ydjMuM2EuNS41IDAgMCAwIC43Ni40M0w4IDEzLjU4bDIuMjQgMS4zNWEuNS41IDAgMCAwIC43Ni0uNDN2LTIuOGwzLjE1IDMuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDMuMzggNC4xWk0xMyA2YzAgMS4zNS0uNTMgMi41Ny0xLjQgMy40N0w0LjUzIDIuNEE0Ljk4IDQuOTggMCAwIDEgMTMgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25PZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0zLjM4IDQuMDkgMS4xNSAxLjg1YS41LjUgMCAxIDEgLjctLjdsMTMgMTNhLjUuNSAwIDAgMS0uNy43TDExIDExLjcxdjIuNzlhLjUuNSAwIDAgMS0uNzYuNDNMOCAxMy41OGwtMi4yNCAxLjM1QS41LjUgMCAwIDEgNSAxNC41VjEwYTUgNSAwIDAgMS0xLjYyLTUuOTFabTYuNTMgNi41M0E0Ljk4IDQuOTggMCAwIDEgNiAxMC41OHYzLjA0bDEuNzQtMS4wNWEuNS41IDAgMCAxIC41MiAwTDEwIDEzLjYyVjEwLjdsLS4wOS0uMDlabS0uNzgtLjc4TDQuMTYgNC44N2E0IDQgMCAwIDAgNC45NyA0Ljk3Wk0xMiA2YzAgMS4wNy0uNDIgMi4wNS0xLjExIDIuNzdsLjcuN0E0Ljk4IDQuOTggMCAwIDAgOCAxYy0xLjM1IDAtMi41Ny41My0zLjQ3IDEuNGwuNy43MUEzLjk5IDMuOTkgMCAwIDEgMTIgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbk9mZjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC42MiA1LjMzYTYgNiAwIDAgMCA4LjA0IDguMDRsLjc1Ljc1QTYuOTcgNi45NyAwIDAgMSA2IDEzLjc1djMuNzVhLjUuNSAwIDAgMCAuOC40TDEwIDE2bDMuMiAxLjlhLjUuNSAwIDAgMCAuOC0uNHYtMi44bDMuMTUgMy4xNWEuNS41IDAgMCAwIC43LS43bC0xNS0xNWEuNS41IDAgMSAwLS43LjdsMi40NyAyLjQ4Wm0xLjItMS42MyA4LjQ4IDguNDhBNiA2IDAgMCAwIDUuODIgMy43WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JpYmJvbk9mZjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNjIgNS4zMyAyLjE1IDIuODVhLjUuNSAwIDEgMSAuNy0uN2wxNSAxNWEuNS41IDAgMCAxLS43LjdMMTQgMTQuNzF2Mi43OWEuNS41IDAgMCAxLS43NS40M0wxMCAxNi4wOGwtMy4yNSAxLjg1QS41LjUgMCAwIDEgNiAxNy41di01LjAzYTUuOTggNS45OCAwIDAgMS0xLjM4LTcuMTRabTguMDUgOC4wNUE1Ljk4IDUuOTggMCAwIDEgNyAxMy4ydjMuNDRsMi43NS0xLjU3YS41LjUgMCAwIDEgLjUgMEwxMyAxNi42NFYxMy43bC0uMzMtLjMzWm0tLjc2LS43Nkw1LjM4IDYuMUE0Ljk4IDQuOTggMCAwIDAgMTAgMTNjLjY4IDAgMS4zMi0uMTMgMS45MS0uMzhaTTE1IDhjMCAxLjM1LS41MyAyLjU3LTEuNCAzLjQ3bC43LjcxQTYgNiAwIDAgMCA1LjgyIDMuN2wuNy43QTQuOTggNC45OCAwIDAgMSAxNSA4WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01LjQ1IDYuNTFBNi45OCA2Ljk4IDAgMCAwIDEyIDE2Yy44OCAwIDEuNzEtLjE2IDIuNDktLjQ1bC43Ni43NkE3Ljk3IDcuOTcgMCAwIDEgNyAxNS4yNXY2YzAgLjYuNjkuOTYgMS4xOC42TDEyIDE5LjE4bDMuODIgMi42OWMuNS4zNSAxLjE4IDAgMS4xOC0uNjF2LTMuMTlsMy43MiAzLjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMy4yMyAzLjIzWm0xLjctMi41NSA5Ljg5IDkuOWE3IDcgMCAwIDAtOS45LTkuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25PZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01LjQ1IDYuNTEgMi4yMiAzLjI4YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMTguNSAxOC41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZMMTcgMTguMDZ2My4xOWMwIC41Ny0uNi45Mi0xLjEuNjdsLS4wOC0uMDZMMTIgMTkuMThsLTMuODIgMi42OGEuNzUuNzUgMCAwIDEtMS4xNy0uNXYtLjExTDcgMTMuOUE2Ljk4IDYuOTggMCAwIDEgNS40NSA2LjVaTTE1LjUgMTYuNTZsLTEuMDEtMS4wMWE2Ljk4IDYuOTggMCAwIDEtNS45OS0uNDl2NC43NGwzLjA3LTIuMTVhLjc1Ljc1IDAgMCAxIC43Ni0uMDZsLjEuMDYgMy4wNyAyLjE2di0zLjI1Wm0tMi4yMS0yLjIxTDYuNjUgNy43YTUuNTEgNS41MSAwIDAgMCA2LjY0IDYuNjRaTTE3LjUgOWMwIDEuNDctLjU4IDIuODEtMS41MiAzLjhsMS4wNiAxLjA2YTcgNyAwIDAgMC05LjktOS45TDguMiA1LjAyQTUuNSA1LjUgMCAwIDEgMTcuNSA5WlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uT2ZmMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uT2ZmMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk02Ljc2IDguMTdBOS45NyA5Ljk3IDAgMCAwIDEwIDIwYTkuOTYgOS45NiAwIDAgMCA5LjgzIDEuMjRsMS4xMyAxLjE0QTExLjQ1IDExLjQ1IDAgMCAxIDEwIDIxLjhWMjlhMSAxIDAgMCAwIDEuNTEuODZsNC40OS0yLjcgNC40OSAyLjdBMSAxIDAgMCAwIDIyIDI5di01LjU5bDYuMyA2LjNhMSAxIDAgMCAwIDEuNC0xLjQybC0yNi0yNmExIDEgMCAwIDAtMS40IDEuNDJsNC40NiA0LjQ2Wm0xLjk0LTNMMjIuODMgMTkuM0ExMCAxMCAwIDEgMCA4LjcgNS4xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvbk9mZjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25PZmYzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk02Ljc2IDguMTcgMi4yOSAzLjcxYTEgMSAwIDAgMSAxLjQyLTEuNDJsMjYgMjZhMSAxIDAgMSAxLTEuNDIgMS40MkwyMiAyMy40VjI5YTEgMSAwIDAgMS0xLjUxLjg2TDE2IDI3LjE2bC00LjQ5IDIuN0ExIDEgMCAwIDEgMTAgMjl2LTlBOS45OCA5Ljk4IDAgMCAxIDYuNzYgOC4xN1ptMTMuMDcgMTMuMDdhOS45NyA5Ljk3IDAgMCAxLTcuODMtLjA3djYuMDZsMy40OS0yLjA5YTEgMSAwIDAgMSAxLjAyIDBsMy40OSAyLjFWMjEuNGwtLjE3LS4xN1ptLTEuNTctMS41Nkw4LjMyIDkuNzRhOCA4IDAgMCAwIDkuOTQgOS45NFpNMjQgMTJjMCAyLjMzLTEgNC40Mi0yLjU4IDUuODhsMS40MSAxLjQyQTEwIDEwIDAgMSAwIDguNyA1LjE3bDEuNDEgMS40MUE4IDggMCAwIDEgMjQgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSaWJib25TdGFyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uU3RhcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYgOEE2IDYgMCAxIDEgNCA4YTYgNiAwIDAgMSAxMiAwWk05Ljg1IDUuMWwtLjcyIDEuNTVhLjE4LjE4IDAgMCAxLS4xNC4xbC0xLjcuMmMtLjE0LjAyLS4yLjItLjEuM2wxLjI2IDEuMTdjLjA1LjA0LjA3LjEuMDUuMTZsLS4zMyAxLjY4Yy0uMDMuMTUuMTMuMjYuMjYuMTlsMS40OS0uODRhLjE4LjE4IDAgMCAxIC4xNyAwbDEuNS44NGMuMTIuMDcuMjgtLjA0LjI1LS4xOWwtLjMzLTEuNjhhLjE3LjE3IDAgMCAxIC4wNS0uMTZsMS4yNi0xLjE2YS4xOC4xOCAwIDAgMC0uMS0uM2wtMS43LS4yYS4xNy4xNyAwIDAgMS0uMTQtLjFsLS43Mi0xLjU2YS4xNy4xNyAwIDAgMC0uMzEgMFpNMTAgMTVjMS40OSAwIDIuODctLjQ2IDQtMS4yNXYzLjc1YS41LjUgMCAwIDEtLjguNEwxMCAxNmwtMy4yIDEuOWEuNS41IDAgMCAxLS44LS40di0zLjc1QTYuOTcgNi45NyAwIDAgMCAxMCAxNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvblN0YXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUmliYm9uU3RhcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjE2IDUuMWEuMTguMTggMCAwIDAtLjMxIDBsLS43MiAxLjU1YS4xOC4xOCAwIDAgMS0uMTQuMWwtMS43LjJjLS4xNS4wMi0uMi4yLS4xLjNsMS4yNiAxLjE3Yy4wNS4wNC4wNy4xLjA1LjE2bC0uMzMgMS42OGMtLjAzLjE1LjEzLjI2LjI2LjE5bDEuNDktLjg0YS4xNy4xNyAwIDAgMSAuMTcgMGwxLjUuODRjLjEyLjA3LjI4LS4wNC4yNS0uMTlsLS4zMy0xLjY4YS4xOC4xOCAwIDAgMSAuMDUtLjE2bDEuMjYtMS4xNmEuMTcuMTcgMCAwIDAtLjEtLjNsLTEuNy0uMmEuMTguMTggMCAwIDEtLjE0LS4xbC0uNzItMS41NlpNMTYgOGMwIDEuNzgtLjc3IDMuMzctMiA0LjQ3djUuMDNhLjUuNSAwIDAgMS0uNzUuNDNMMTAgMTYuMDhsLTMuMjUgMS44NUEuNS41IDAgMCAxIDYgMTcuNXYtNS4wM0E1Ljk4IDUuOTggMCAwIDEgMTAgMmE2IDYgMCAwIDEgNiA2Wm0tNiA2Yy0xLjEgMC0yLjEyLS4zLTMtLjh2My40NGwyLjc1LTEuNTdhLjUuNSAwIDAgMSAuNSAwTDEzIDE2LjY0VjEzLjJjLS44OC41LTEuOS44LTMgLjhabTAtMWE1IDUgMCAxIDAgMC0xMCA1IDUgMCAwIDAgMCAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJpYmJvblN0YXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25TdGFyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNyAyMS4yNXYtNmE3Ljk3IDcuOTcgMCAwIDEtMTAgMHY2YzAgLjYuNjkuOTYgMS4xOC42TDEyIDE5LjE4bDMuODIgMi42OWMuNS4zNSAxLjE4IDAgMS4xOC0uNjFaTTE5IDlBNyA3IDAgMSAwIDUgOWE3IDcgMCAwIDAgMTQgMFptLTYuNzctMy4zNi45MSAxLjg2IDIuMDUuMjljLjIuMDMuMjkuMjkuMTQuNDRsLTEuNDggMS40NC4zNSAyLjAzYy4wMy4yMS0uMTkuMzctLjM3LjI3TDEyIDExLjAxbC0xLjgzLjk2YS4yNS4yNSAwIDAgMS0uMzctLjI3bC4zNS0yLjAzLTEuNDgtMS40NGEuMjYuMjYgMCAwIDEgLjE0LS40NGwyLjA1LS4zLjkxLTEuODVjLjEtLjE5LjM3LS4xOS40NiAwWlwiXSk7XG5leHBvcnQgY29uc3QgUmliYm9uU3RhcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSaWJib25TdGFyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJtMTIuMjMgNS42NC45MSAxLjg2IDIuMDUuMjljLjIuMDMuMjkuMjkuMTQuNDRsLTEuNDggMS40NC4zNSAyLjAzYy4wMy4yMS0uMTkuMzctLjM3LjI3TDEyIDExLjAxbC0xLjgzLjk2YS4yNS4yNSAwIDAgMS0uMzctLjI3bC4zNS0yLjAzLTEuNDgtMS40NGEuMjYuMjYgMCAwIDEgLjE0LS40NGwyLjA1LS4zLjkxLTEuODVjLjEtLjE5LjM3LS4xOS40NiAwWk0xOSA5YTcgNyAwIDEgMC0xMiA0LjlWMjEuMzVjLjA4LjU1LjcxLjg0IDEuMTguNTFMMTIgMTkuMThsMy44MiAyLjY4LjA5LjA2YS43NS43NSAwIDAgMCAxLjA5LS42N1YxMy45YzEuMjQtMS4yNiAyLTMgMi00LjlabS0zLjUgNi4wNnY0Ljc1bC0zLjA3LTIuMTYtLjEtLjA2YS43NS43NSAwIDAgMC0uNzYuMDZMOC41IDE5Ljh2LTQuNzRhNi45NyA2Ljk3IDAgMCAwIDcgMFpNNi41IDlhNS41IDUuNSAwIDEgMSAxMSAwIDUuNSA1LjUgMCAwIDEtMTEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvYWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE0LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVabTExLjUgMGEuNzUuNzUgMCAwIDAtMS41IDB2MTQuNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NVptLTUuNzUgMGEuNzUuNzUgMCAwIDAtMS41IDB2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41Wm0tMS41IDguNWEuNzUuNzUgMCAwIDAgMS41IDB2LTIuNWEuNzUuNzUgMCAwIDAtMS41IDB2Mi41Wm0wIDMuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSAyLjVhLjUuNSAwIDAgMC0xIDB2MTVhLjUuNSAwIDAgMCAxIDB2LTE1Wm0xMSAwYS41LjUgMCAwIDAtMSAwdjE1YS41LjUgMCAwIDAgMSAwdi0xNVptLTUuNSAwYS41LjUgMCAwIDAtMSAwdjNhLjUuNSAwIDAgMCAxIDB2LTNabS0xIDlhLjUuNSAwIDAgMCAxIDB2LTNhLjUuNSAwIDAgMC0xIDB2M1ptMCAzYS41LjUgMCAwIDEgMSAwdjNhLjUuNSAwIDAgMS0xIDB2LTNaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2FkMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9hZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNiAzYTEgMSAwIDAgMC0yIDB2MThhMSAxIDAgMSAwIDIgMFYzWm0xNCAwYTEgMSAwIDEgMC0yIDB2MThhMSAxIDAgMSAwIDIgMFYzWm0tNyAwYTEgMSAwIDEgMC0yIDB2M2ExIDEgMCAxIDAgMiAwVjNabS0yIDEwLjVhMSAxIDAgMSAwIDIgMHYtM2ExIDEgMCAxIDAtMiAwdjNabTAgNC41YTEgMSAwIDEgMSAyIDB2M2ExIDEgMCAxIDEtMiAwdi0zWlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVabTE0LjUgMGEuNzUuNzUgMCAwIDAtMS41IDB2MTguNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NVptLTcuMjUgMGEuNzUuNzUgMCAwIDAtMS41IDB2My41YS43NS43NSAwIDAgMCAxLjUgMHYtMy41Wm0tMS41IDExYS43NS43NSAwIDAgMCAxLjUgMHYtMy41YS43NS43NSAwIDAgMC0xLjUgMHYzLjVabTAgNGEuNzUuNzUgMCAwIDEgMS41IDB2My41YS43NS43NSAwIDAgMS0xLjUgMHYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZENvbmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkQ29uZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNy40NiAxYTEgMSAwIDAgMC0uOTcuNzZMNS4wNiA3LjVIOC41YS41LjUgMCAwIDEgMCAxSDQuOGwtLjUgMmg0Ljk1YS41LjUgMCAwIDEgMCAxaC01LjJMMy40NCAxNEgxLjVhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEuOTNMOS41IDEuNzZBMSAxIDAgMCAwIDguNTQgMUg3LjQ2WlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZENvbmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9hZENvbmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03LjQ2IDFhMSAxIDAgMCAwLS45Ny43NkwzLjQzIDE0SDEuNWEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMS45M0w5LjUgMS43NkExIDEgMCAwIDAgOC41NCAxSDcuNDZabTQuMDggMTNINC40NmwuNjMtMi41aDQuMTZhLjUuNSAwIDAgMCAwLTFINS4zNGwuNS0ySDguNWEuNS41IDAgMCAwIDAtMUg2LjA5TDcuNDYgMmgxLjA4bDMgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2FkQ29uZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvYWRDb25lMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04LjQyIDIuNzZBMSAxIDAgMCAxIDkuNCAyaDEuMjNhMSAxIDAgMCAxIC45Ni43NEwxNS4zOCAxN2gyLjEyYS41LjUgMCAwIDEgMCAxaC0xNWEuNS41IDAgMCAxIDAtMWgyLjExbC44LTNoNi4wOWEuNS41IDAgMCAwIDAtMUg1LjY5bC40NS0xLjYzLjEtLjM3aDQuMjZhLjUuNSAwIDAgMCAwLTFINi41MmMuNjgtMi40OCAxLjM1LTQuOTYgMS45LTcuMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2FkQ29uZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkQ29uZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuMzggMmExIDEgMCAwIDAtLjk2Ljc0TDQuNjIgMTdIMi41YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0yLjEybC0zLjgtMTQuMjZhMSAxIDAgMCAwLS45Ni0uNzRIOS4zOFpNNS42NSAxN2wuOC0zaDUuMDVhLjUuNSAwIDAgMCAwLTFINi43MmwuNTMtMmgzLjI1YS41LjUgMCAwIDAgMC0xSDcuNTJsMS44Ni03aDEuMjRsMy43MyAxNGgtOC43WlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZENvbmUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkQ29uZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEuMiAyYy0uNTggMC0xLjA4LjQtMS4yMi45NkEzMjUuNCAzMjUuNCAwIDAgMSA3LjU5IDEyaDUuMTZhLjc1Ljc1IDAgMCAxIDAgMS41SDcuMThsLS41NSAyaDcuMTJhLjc1Ljc1IDAgMCAxIDAgMS41SDYuMjJsLS45MyAzLjVIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMTguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNTRMMTQuMDIgMi45M2ExLjI1IDEuMjUgMCAwIDAtMS4yLS45M2gtMS42M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFJvYWRDb25lMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvYWRDb25lMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTEuMTggMmMtLjU2IDAtMS4wNi4zOC0xLjIuOTNMNS4yOSAyMC41SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjU0TDE0LjAyIDIuOTNhMS4yNSAxLjI1IDAgMCAwLTEuMi0uOTNoLTEuNjRaTTYuODQgMjAuNWwuOTQtMy41aDUuOTdhLjc1Ljc1IDAgMCAwIDAtMS41SDguMThsLjUzLTJoNC4wNGEuNzUuNzUgMCAwIDAgMC0xLjVIOS4xMWwyLjI3LTguNWgxLjI0bDQuNTQgMTdINi44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvYWRDb25lMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9hZENvbmUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTEyLjk4IDJjLS41NiAwLTEuMDUuMzgtMS4yLjkyTDguNjcgMTQuMjVoNi41OGEuNzUuNzUgMCAwIDEgMCAxLjVoLTdsLS42OCAyLjVoOC42OGEuNzUuNzUgMCAwIDEgMCAxLjVINy4xNmwtMS4zIDQuNzVIMy4wOGEuNzUuNzUgMCAwIDAgMCAxLjVoMjEuODRhLjc1Ljc1IDAgMSAwIDAtMS41aC0yLjc4TDE2LjIyIDIuOTJhMS4yNSAxLjI1IDAgMCAwLTEuMi0uOTJoLTIuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2FkQ29uZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkQ29uZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEyLjk4IDJjLS41NiAwLTEuMDYuMzgtMS4yLjkyTDUuODYgMjQuNUgzLjA4YS43NS43NSAwIDAgMCAwIDEuNWgyMS44NGEuNzUuNzUgMCAxIDAgMC0xLjVoLTIuNzhMMTYuMjIgMi45MmExLjI1IDEuMjUgMCAwIDAtMS4yLS45MmgtMi4wNFptLTUuNSAyMi4yNSAxLjI0LTQuNWg3LjUzYS43NS43NSAwIDAgMCAwLTEuNUg5LjEzbC42OC0yLjVoNS40NGEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuMDNMMTMuMTcgMy41aDEuNjZsNS42OSAyMC43NUg3LjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgUm9hZENvbmUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkQ29uZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTQuNzcgMmExLjUgMS41IDAgMCAwLTEuNDMgMS4wNkw5LjQgMTZIMTdhMSAxIDAgMSAxIDAgMkg4LjhsLS44MSAyLjY3SDE4LjVhMSAxIDAgMSAxIDAgMmgtMTFsLS4xMi0uMDFMNS43NiAyOEgzYTEgMSAwIDEgMCAwIDJoMjZhMSAxIDAgMSAwIDAtMmgtMi43NkwxOC42NiAzLjA2QTEuNSAxLjUgMCAwIDAgMTcuMjMgMmgtMi40NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvYWRDb25lMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvYWRDb25lMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTQuNzcgMmExLjUgMS41IDAgMCAwLTEuNDMgMS4wNkw1Ljc2IDI4SDNhMSAxIDAgMSAwIDAgMmgyNmExIDEgMCAxIDAgMC0yaC0yLjc2TDE4LjY2IDMuMDZBMS41IDEuNSAwIDAgMCAxNy4yMyAyaC0yLjQ2Wk03Ljg1IDI4bDEuNjYtNS40NmExIDEgMCAwIDAgLjQ5LjEzaDguNWExIDEgMCAxIDAgMC0yaC04LjQybC44LTIuNjdIMTdhMSAxIDAgMSAwIDAtMmgtNS41bDMuNjQtMTJoMS43Mmw3LjMgMjRINy44NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvYWRDb25lNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9hZENvbmU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTIyLjM5IDRhMi41IDIuNSAwIDAgMC0yLjQzIDEuOTFBNjUwLjY5IDY1MC42OSAwIDAgMSAxNS4xOSAyNEgyNS41YTEuNSAxLjUgMCAxIDEgMCAzSDE0LjM2bC0xLjEgNEgyNy41YTEuNSAxLjUgMCAwIDEgMCAzSDEyLjQ0Yy0uNjUgMi40LTEuMjcgNC43NC0xLjg2IDdINS41YTEuNSAxLjUgMCAwIDAgMCAzaDM3YTEuNSAxLjUgMCAxIDAgMC0zaC01LjA4TDI4LjA1IDUuODZBMi41IDIuNSAwIDAgMCAyNS42MyA0SDIyLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2FkQ29uZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2FkQ29uZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTIyLjM3IDRhMi41IDIuNSAwIDAgMC0yLjQyIDEuODZMMTAuNTggNDFINS41YTEuNSAxLjUgMCAwIDAgMCAzaDM3YTEuNSAxLjUgMCAxIDAgMC0zaC01LjA4TDI4LjA1IDUuODZBMi41IDIuNSAwIDAgMCAyNS42MyA0aC0zLjI2Wm0tOC42OCAzNyAxLjg2LTdIMjcuNWExLjUgMS41IDAgMCAwIDAtM0gxNi4zNWwxLjA3LTRoOC4wOGExLjUgMS41IDAgMCAwIDAtM2gtNy4yOGw0LjUzLTE3aDIuNWw5LjA2IDM0SDEzLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2NrZXQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2NrZXQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguMzYgNS4zNWExLjYyIDEuNjIgMCAxIDEgMi4zIDIuMyAxLjYyIDEuNjIgMCAwIDEtMi4zLTIuM1ptMS41OS43YS42Mi42MiAwIDAgMC0uODggMCAuNjIuNjIgMCAwIDAgMCAuODhjLjI1LjI1LjY0LjI1Ljg4IDBhLjYyLjYyIDAgMCAwIDAtLjg3Wk03LjUgMTFsLjE3LjE3Yy4zOS40Ljk0LjUyIDEuNDQuNGwuODUuODRjLjIuMi41MS4yLjcgMGwxLjA4LTEuMDdjLjY2LS42Ni43NS0xLjY2LjMtMi40MWwuNTQtLjU1YTQuODQgNC44NCAwIDAgMCAxLjItNC44OGMtLjItLjYtLjY3LTEuMDgtMS4yNy0xLjI3YTQuODQgNC44NCAwIDAgMC00Ljg4IDEuMmwtLjU1LjU0YTEuOTcgMS45NyAwIDAgMC0yLjQxLjNMMy42IDUuMzRhLjUuNSAwIDAgMCAwIC43bC44NS44NmMtLjEzLjUgMCAxLjA1LjM5IDEuNDRMNSA4LjVsLS43Ny40NmEuNS41IDAgMCAwLS4xLjc4bDIuMTMgMi4xMmEuNS41IDAgMCAwIC43OC0uMUw3LjUgMTFabTUuMzItNy4yYTMuODQgMy44NCAwIDAgMS0uOTQgMy44N2wtMi44IDIuOGEuNS41IDAgMCAxLS43IDBsLS42Mi0uNjItMS42LTEuNi0uNjItLjYyYS41LjUgMCAwIDEgMC0uN2wyLjgtMi44YTMuODQgMy44NCAwIDAgMSAzLjg3LS45NWMuMjkuMS41Mi4zMy42MS42MlptLTcuOTcgOC4wNmEuNS41IDAgMSAwLS43LS43bC0xLjMzIDEuMzJhLjUuNSAwIDEgMCAuNy43bDEuMzMtMS4zMlpNMy43OSAxMC4xYy4yLjIuMi41IDAgLjdsLS41My41M2EuNS41IDAgMSAxLS43LS43bC41Mi0uNTNjLjItLjIuNTEtLjIuNyAwWm0yLjEyIDIuODNhLjUuNSAwIDEgMC0uNy0uNzFsLS41NC41M2EuNS41IDAgMSAwIC43MS43bC41My0uNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2NrZXQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9ja2V0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC4zNiA1LjM1YTEuNjIgMS42MiAwIDEgMSAyLjMgMi4zIDEuNjIgMS42MiAwIDAgMS0yLjMtMi4zWm0xLjU5LjdhLjYyLjYyIDAgMCAwLS44OCAwIC42Mi42MiAwIDAgMCAwIC44OGMuMjUuMjUuNjQuMjUuODggMGEuNjIuNjIgMCAwIDAgMC0uODdabTMuODMtMi41NWMtLjItLjYtLjY3LTEuMDgtMS4yNy0xLjI3YTQuODQgNC44NCAwIDAgMC00Ljg4IDEuMkw3IDQuMDRhMi4zOCAyLjM4IDAgMCAwLTIuNjIuNWwtLjc4Ljc5YS41LjUgMCAwIDAgMCAuN2wuODUuODZjLS4xMy41IDAgMS4wNS4zOSAxLjQ0TDUgOC41bC0uNzcuNDZhLjUuNSAwIDAgMC0uMS43OGwyLjEzIDIuMTJhLjUuNSAwIDAgMCAuNzgtLjFMNy41IDExbC4xNy4xN2MuMzkuNC45NC41MiAxLjQ0LjRsLjg1Ljg0Yy4yLjIuNTEuMi43IDBsLjgtLjc4Yy43LS43MS44Ny0xLjc2LjUtMi42M2wuNjItLjYyYTQuODQgNC44NCAwIDAgMCAxLjItNC44OFptLTEuNTctLjMyYy4yOS4xLjUyLjMzLjYxLjYyYTMuODQgMy44NCAwIDAgMS0uOTQgMy44N2wtMi44IDIuOGEuNS41IDAgMCAxLS43IDBMNS41MyA3LjYyYS41LjUgMCAwIDEgMC0uN2wyLjgtMi44YTMuODQgMy44NCAwIDAgMSAzLjg3LS45NVptLTEuMDcgNi42NGMuMDQuMzktLjEuOC0uNCAxLjFsLS40My40My0uMzUtLjM1IDEuMTgtMS4xOFpNNS4xIDUuMjZjLjMtLjMuNy0uNDMgMS4xLS40TDUgNi4wNGwtLjM1LS4zNS40My0uNDNabTEuNjggNS4wMS0uMjYuNDRMNS4yOSA5LjVsLjQ0LS4yNyAxLjA0IDEuMDRabS0xLjkyIDEuNmEuNS41IDAgMSAwLS43LS43MWwtMS4zMyAxLjMyYS41LjUgMCAxIDAgLjcuN2wxLjMzLTEuMzJaTTMuNzkgMTAuMWMuMi4yLjIuNSAwIC43bC0uNTMuNTNhLjUuNSAwIDEgMS0uNy0uN2wuNTItLjUzYy4yLS4yLjUxLS4yLjcgMFptMi4xMiAyLjgzYS41LjUgMCAxIDAtLjctLjcxbC0uNTQuNTNhLjUuNSAwIDEgMCAuNzEuN2wuNTMtLjUyWlwiXSk7XG5leHBvcnQgY29uc3QgUm9ja2V0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9ja2V0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC43NiA2LjQzYTIgMiAwIDEgMSAyLjgyIDIuODIgMiAyIDAgMCAxLTIuODItMi44MlptMi4xMS43YTEgMSAwIDEgMC0xLjQgMS40MSAxIDEgMCAwIDAgMS40LTEuNFpNOS40NCAxMy42bC42LjZhMS41IDEuNSAwIDAgMCAxLjcxLjNsMS4xMiAxLjEyYy4yLjIuNTEuMi43IDBMMTUgMTQuMmMuODYtLjg2Ljk2LTIuMTcuMzEtMy4xNGwuODUtLjg1YTYuMyA2LjMgMCAwIDAgMS41Ni02LjMzIDIuNDMgMi40MyAwIDAgMC0xLjYtMS42QTYuMyA2LjMgMCAwIDAgOS44IDMuODZsLS44NS44NUEyLjUgMi41IDAgMCAwIDUuOCA1TDQuMzggNi40M2EuNS41IDAgMCAwIDAgLjdMNS41IDguMjdhMS41IDEuNSAwIDAgMCAuMyAxLjdsLjYuNjEtMS4yMS43M2EuNS41IDAgMCAwLS4xLjc4bDIuODMgMi44M2EuNS41IDAgMCAwIC43OS0uMWwuNzMtMS4yMVptNy4zMi05LjQyYTUuMyA1LjMgMCAwIDEtMS4zIDUuMzNsLTQgNGEuNS41IDAgMCAxLS43IDBsLTEuMDctMS4wNy0yLjEyLTIuMTJMNi41IDkuMjRhLjUuNSAwIDAgMSAwLS43bDMuOTktNGE1LjMgNS4zIDAgMCAxIDUuMzMtMS4zYy40NC4xMy44LjQ4LjkzLjkzWk01LjggMTQuOTFhLjUuNSAwIDAgMC0uNy0uN2wtMS43NyAxLjc2YS41LjUgMCAxIDAgLjcuN2wxLjc3LTEuNzZaTTQuNCAxMi43OWMuMi4yLjIuNSAwIC43bC0uNy43MWEuNS41IDAgMSAxLS43Mi0uN2wuNzEtLjcxYy4yLS4yLjUxLS4yLjcxIDBabTIuODMgMy41M2EuNS41IDAgMSAwLS43LS43bC0uNzIuN2EuNS41IDAgMSAwIC43MS43MWwuNzEtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2NrZXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm9ja2V0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuNzYgNi40M2EyIDIgMCAxIDEgMi44MiAyLjgyIDIgMiAwIDAgMS0yLjgyLTIuODJabTIuMTEuN2ExIDEgMCAxIDAtMS40IDEuNDIgMSAxIDAgMCAwIDEuNC0xLjQyWm0tMS4xMiA3LjM3YTEuNSAxLjUgMCAwIDEtMS43LS4zbC0uNjEtLjYtLjc0IDEuMjJhLjUuNSAwIDAgMS0uNzguMUw1LjEgMTIuMDlhLjUuNSAwIDAgMSAuMS0uNzlsMS4yMi0uNzMtLjYxLS42YTEuNSAxLjUgMCAwIDEtLjMtMS43MUw0LjM4IDcuMTRhLjUuNSAwIDAgMSAwLS43bDEuMDYtMS4wN2EzIDMgMCAwIDEgMy40Mi0uNTlsLjkzLS45M2E2LjMgNi4zIDAgMCAxIDYuMzMtMS41NmMuNzYuMjQgMS4zNi44MyAxLjYgMS42YTYuMyA2LjMgMCAwIDEtMS41NiA2LjMybC0uOTQuOTRhMyAzIDAgMCAxLS41OCAzLjQxbC0xLjA2IDEuMDZhLjUuNSAwIDAgMS0uNzEgMGwtMS4xMi0xLjEyWm00LjA4LTExLjI2YTUuMyA1LjMgMCAwIDAtNS4zMyAxLjMxbC0uODEuODItLjcuN2gtLjAxTDYuODYgOC4ybC0uNC40YS41LjUgMCAwIDAgLjA1LjY2bDQuMjQgNC4yNGMuMTguMTguNDYuMi42Ni4wNWwuNC0uNCAyLjEyLTIuMTIuNy0uNzEuODItLjgxYTUuMyA1LjMgMCAwIDAgMS4zMS01LjMzYy0uMTQtLjQ1LS40OS0uOC0uOTMtLjk0Wm0tMy4zMSAxMC42Mi43LjcuNy0uN2EyIDIgMCAwIDAgLjUzLTEuOTNsLTEuOTMgMS45M1ptLTQuNDQtOC4zYTIgMiAwIDAgMC0xLjkzLjUybC0uNy43LjcuNzEgMS45My0xLjkzWm0uNjMgNy4zMUw3LjE0IDExLjNsLS44OS41MyAxLjkzIDEuOTMuNTMtLjg5Wm0tMi45IDIuMDRhLjUuNSAwIDEgMC0uNzEtLjdsLTEuNzcgMS43NmEuNS41IDAgMSAwIC43LjcxbDEuNzctMS43N1pNNC4zOCAxMi44Yy4yLjIuMi41MSAwIC43bC0uNzEuNzJhLjUuNSAwIDAgMS0uNy0uNzFsLjctLjcxYy4yLS4yLjUxLS4yLjcgMFptMi44MyAzLjU0YS41LjUgMCAwIDAtLjctLjcxbC0uNzIuN2EuNS41IDAgMSAwIC43LjcybC43Mi0uNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBSb2NrZXQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb2NrZXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjA2IDcuNDNhMi41IDIuNSAwIDEgMSAzLjUzIDMuNTQgMi41IDIuNSAwIDAgMS0zLjUzLTMuNTRabTIuNDcgMS4wNmExIDEgMCAxIDAtMS40MSAxLjQyIDEgMSAwIDAgMCAxLjQxLTEuNDJabTQuMTctNS45OGMuODYuMjcgMS41NC45NSAxLjggMS44MWwuMjEuNjdjLjc1IDIuNC4xIDUtMS42NyA2Ljc3bC0xIDFhMy41IDMuNSAwIDAgMS0uMzIgNC41N2wtMS4yNSAxLjI0Yy0uMjkuMy0uNzYuMy0xLjA2IDBsLTEuNTktMS41OS0uMTcuMThjLS42OS42OC0xLjguNjgtMi40OCAwbC0uNDgtLjQ5LS44MiAxLjRhLjc1Ljc1IDAgMCAxLTEuMTcuMTRsLTMuOS0zLjg5YS43NS43NSAwIDAgMSAuMTUtMS4xN2wxLjM5LS44My0uNDctLjQ3YTEuNzUgMS43NSAwIDAgMSAwLTIuNDdsLjE4LS4xOC0xLjYtMS42YS43NS43NSAwIDAgMSAwLTEuMDVMNi43IDUuM2EzLjUgMy41IDAgMCAxIDQuNTctLjMybDEtMWE2Ljc1IDYuNzUgMCAwIDEgNi43Ny0xLjY3bC42Ni4yWm0uMzggMi4yNmMtLjEzLS40LS40My0uNy0uODMtLjgzbC0uNjYtLjJhNS4yNSA1LjI1IDAgMCAwLTUuMjcgMS4zbC01LjQgNS40Yy0uMS4xLS4xLjI1IDAgLjM1bDUuMzEgNS4zYy4xLjEuMjYuMS4zNiAwbDUuNC01LjM5YTUuMjUgNS4yNSAwIDAgMCAxLjMtNS4yN2wtLjIxLS42NlpNNi42OSAxOC4zOWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjQ4IDIuNDhhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwyLjQ4LTIuNDhabS0xLjk0LTNjLjI5LjMuMjkuNzcgMCAxLjA2bC0xLjA3IDEuMDZhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjA2LTEuMDZjLjMtLjMuNzctLjMgMS4wNyAwWm0zLjg4IDQuOTVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMS4wNiAxLjA2YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMS4wNi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgUm9ja2V0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvY2tldDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjA2IDcuNDNhMi41IDIuNSAwIDEgMSAzLjUzIDMuNTQgMi41IDIuNSAwIDAgMS0zLjUzLTMuNTRabTIuNDcgMS4wNmExIDEgMCAxIDAtMS40MSAxLjQyIDEgMSAwIDAgMCAxLjQxLTEuNDJabTUuOTgtNC4xN2EyLjc1IDIuNzUgMCAwIDAtMS44MS0xLjhsLS42Ni0uMjFjLTIuNC0uNzUtNS0uMS02Ljc4IDEuNjdsLTEgMWEzLjUgMy41IDAgMCAwLTQuNTYuMzJMNS40NSA2LjU1Yy0uMjkuMjktLjI5Ljc2IDAgMS4wNmwxLjYgMS41OS0uMTguMThjLS42OS42OC0uNjkgMS43OSAwIDIuNDdsLjUuNS0xLjQuOGEuNzUuNzUgMCAwIDAtLjE2IDEuMTdsMy44OSAzLjlhLjc1Ljc1IDAgMCAwIDEuMTgtLjE2bC44LTEuNC41LjVjLjY4LjY4IDEuNzguNjggMi40NyAwbC4xNy0uMTggMS42IDEuNmMuMjkuMjguNzYuMjggMS4wNSAwbDEuMjUtMS4yNWEzLjUgMy41IDAgMCAwIC4zMi00LjU3bDEtMUE2Ljc1IDYuNzUgMCAwIDAgMjEuNzIgNWwtLjIxLS42N1ptLTIuMjYtLjM4Yy40LjEzLjcuNDMuODMuODNsLjIuNjZjLjU4IDEuODYuMDggMy45LTEuMyA1LjI3bC01LjQgNS40Yy0uMS4xLS4yNS4xLS4zNSAwbC01LjMtNS4zYS4yNS4yNSAwIDAgMSAwLS4zNmw1LjQtNS40YTUuMjUgNS4yNSAwIDAgMSA1LjI2LTEuM2wuNjYuMlptLTEuMjkgOS45YTIgMiAwIDAgMS0uMyAyLjQzbC0uNzIuNzEtMS4wNi0xLjA2IDIuMDgtMi4wOFpNNy43NiA2LjM2YTIgMiAwIDAgMSAyLjQzLS4zTDguMSA4LjE0IDcuMDUgNy4wOGwuNy0uNzJabTIuODIgOS4yLS41Mi45LTIuNS0yLjUuOS0uNTEgMi4xMiAyLjExWk02LjY5IDE4LjRhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi40OCAyLjQ4YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi40OC0yLjQ4Wm0tMS45NC0zYy4yOS4zLjI5Ljc3IDAgMS4wNmwtMS4wNyAxLjA2YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsMS4wNi0xLjA2Yy4zLS4zLjc3LS4zIDEuMDcgMFptMy44OCA0Ljk1YS43NS43NSAwIDEgMC0xLjA2LTEuMDZsLTEuMDYgMS4wNmEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDEuMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdGF0ZUxlZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3RhdGVMZWZ0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMi4zOSAxMmEuNTMuNTMgMCAwIDEtLjU0LS41MmMwLS4yOS4yNC0uNTIuNTQtLjUyaC4zNWMxLjc3IDAgMy4yLTEuMDggMy4yLTIuNDIgMC0xLjMtMS4zNS0yLjM2LTMuMDQtMi40Mkg3LjgyTDkuMDQgNy4zYy4yLjIuMi41MyAwIC43M2EuNTQuNTQgMCAwIDEtLjcuMDVsLS4wNi0uMDUtMi4xMi0yLjA4YS41MS41MSAwIDAgMSAwLS43M2wyLjEyLTIuMDguMDYtLjA1Yy4yMS0uMTUuNS0uMTMuNy4wNS4yLjIuMi41MyAwIC43NEw3LjgyIDUuMDhoNC45MkMxNS4xIDUuMDggMTcgNi42MyAxNyA4LjU0UzE1LjEgMTIgMTIuNzQgMTJoLS4zNVptLTktM2MtLjIxIDAtLjM5LjE3LS4zOS4zOHY2Ljg3YzAgLjQxLjM2Ljc1LjguNzVoMTIuOGEuNC40IDAgMCAwIC4zNS0uMTkuMzcuMzcgMCAwIDAtLjE1LS41MUwzLjYgOS4wNUEuNDEuNDEgMCAwIDAgMy40IDlaXCJdKTtcbmV4cG9ydCBjb25zdCBSb3RhdGVMZWZ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvdGF0ZUxlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMi4zOSAxMmEuNTMuNTMgMCAwIDEtLjU0LS41MmMwLS4yOS4yNC0uNTIuNTQtLjUyaC4zNWMxLjc3IDAgMy4yLTEuMDggMy4yLTIuNDIgMC0xLjMtMS4zNS0yLjM2LTMuMDQtMi40Mkg3LjgyTDkuMDQgNy4zYy4yLjIuMi41MyAwIC43M2EuNTQuNTQgMCAwIDEtLjcuMDVsLS4wNi0uMDUtMi4xMi0yLjA4YS41MS41MSAwIDAgMSAwLS43M2wyLjEyLTIuMDguMDYtLjA1Yy4yMS0uMTUuNS0uMTMuNy4wNS4yLjIuMi41MyAwIC43NEw3LjgyIDUuMDhoNC45MkMxNS4xIDUuMDggMTcgNi42MyAxNyA4LjU0UzE1LjEgMTIgMTIuNzQgMTJoLS4zNVpNNCAxMC40MVYxNmgxMC4xOEw0IDEwLjQxWk0zLjggMTdhLjc3Ljc3IDAgMCAxLS44LS43NVY5LjM4YzAtLjIxLjE4LS4zOC40LS4zOC4wNyAwIC4xNC4wMi4yLjA1bDEzLjIgNy4yNWMuMi4xLjI2LjMzLjE1LjUxYS40LjQgMCAwIDEtLjM1LjE5SDMuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdGF0ZUxlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3RhdGVMZWZ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNC41IDE1YS43NS43NSAwIDAgMSAwLTEuNWguNWMyLjQ5IDAgNC41LTEuNTcgNC41LTMuNSAwLTEuODctMS45LTMuNC00LjI4LTMuNUg4LjA2bDEuNzIgMS43MmEuNzUuNzUgMCAwIDEtLjk4IDEuMTNsLS4wOC0uMDctMy0zYS43NS43NSAwIDAgMSAwLTEuMDZsMy0zIC4wOC0uMDdhLjc1Ljc1IDAgMCAxIC45OCAxLjEzTDguMDYgNUgxNWMzLjMxIDAgNiAyLjI0IDYgNXMtMi42OSA1LTYgNWgtLjVabS0xMS00LjYzYS41LjUgMCAwIDAtLjUuNVYyMGExIDEgMCAwIDAgMSAxaDE2LjE0YS41LjUgMCAwIDAgLjI1LS45M0wzLjc1IDEwLjQzYS41LjUgMCAwIDAtLjI1LS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdGF0ZUxlZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm90YXRlTGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjAyIDVoLjI2YzEuMTYuMDUgMi4yNC4zNyAzLjEzLjg5QzE5Ljk4IDYuNzkgMjEgOC4yOSAyMSAxMGMwIDEuNy0xLjAzIDMuMjItMi42IDQuMTItLjk2LjU1LTIuMTQuODgtMy40Ljg4aC0uNWEuNzUuNzUgMCAxIDEgMC0xLjVoLjVhNS40IDUuNCAwIDAgMCAyLjU5LS42NGMxLjE1LS42MyAxLjkxLTEuNjggMS45MS0yLjg2cy0uNzYtMi4yMy0xLjkxLTIuODZhNS4zNiA1LjM2IDAgMCAwLTIuMzctLjY0SDguMDZsMS43MiAxLjcyYS43NS43NSAwIDAgMS0uOTggMS4xM2wtLjA4LS4wNy0zLTMtLjAyLS4wMmEuNzUuNzUgMCAwIDEgLjAyLTEuMDRsMy0zIC4wOC0uMDdhLjc1Ljc1IDAgMCAxIC45OCAxLjEzTDguMDYgNWg2Ljk2Wm01LjM3IDE1LjA3YS41LjUgMCAwIDEtLjI1LjkzSDRhMSAxIDAgMCAxLTEtMXYtOS4xM2EuNS41IDAgMCAxIC43NS0uNDRsMTYuNjQgOS42NFptLTMuOTctLjU3TDQuNSAxMi42djYuOWgxMS45MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdGF0ZUxlZnQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvdGF0ZUxlZnQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMTIuODUgMi44NWEuNS41IDAgMCAwLS43LS43bC01IDVhLjUuNSAwIDAgMCAwIC43bDUgNWEuNS41IDAgMCAwIC43LS43TDguNzEgOEgyM2E1IDUgMCAwIDEgMCAxMGgtMi41YS41LjUgMCAwIDAgMCAxSDIzYTYgNiAwIDAgMCAwLTEySDguN2w0LjE1LTQuMTVabS05LjEgMTEuMjFhLjUuNSAwIDAgMC0uNzUuNDRWMjhhMSAxIDAgMCAwIDEgMWgyNC41YS41LjUgMCAwIDAgLjI0LS45NGwtMjUtMTRaTTQgMjhWMTUuMzVMMjYuNTggMjhINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdGF0ZVJpZ2h0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm90YXRlUmlnaHQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuNjEgMTJjLjMgMCAuNTQtLjIzLjU0LS41MmEuNTMuNTMgMCAwIDAtLjU0LS41MmgtLjM1Yy0xLjc3IDAtMy4yLTEuMDgtMy4yLTIuNDIgMC0xLjMgMS4zNS0yLjM2IDMuMDQtMi40Mmg1LjA4TDEwLjk2IDcuM2MtLjIuMi0uMi41MyAwIC43My4yLjE4LjQ5LjIuNy4wNWwuMDYtLjA1IDIuMTItMi4wOGMuMjEtLjIuMjEtLjUzIDAtLjczbC0yLjEyLTIuMDgtLjA2LS4wNWEuNTQuNTQgMCAwIDAtLjcuMDVjLS4yLjItLjIuNTMgMCAuNzRsMS4yMiAxLjE5SDcuMjZDNC45IDUuMDggMyA2LjYzIDMgOC41NFM0LjkgMTIgNy4yNiAxMmguMzVabTktM2MuMjEgMCAuMzkuMTcuMzkuMzh2Ni44N2MwIC40MS0uMzYuNzUtLjguNzVIMy40YS40LjQgMCAwIDEtLjM1LS4xOS4zNy4zNyAwIDAgMSAuMTUtLjUxbDEzLjItNy4yNWEuNDEuNDEgMCAwIDEgLjItLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgUm90YXRlUmlnaHQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm90YXRlUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjYxIDEyYy4zIDAgLjU0LS4yMy41NC0uNTJhLjUzLjUzIDAgMCAwLS41NC0uNTJoLS4zNWMtMS43NyAwLTMuMi0xLjA4LTMuMi0yLjQyIDAtMS4zIDEuMzUtMi4zNiAzLjA0LTIuNDJoNS4wOEwxMC45NiA3LjNjLS4yLjItLjIuNTMgMCAuNzMuMi4xOC40OS4yLjcuMDVsLjA2LS4wNSAyLjEyLTIuMDhjLjIxLS4yLjIxLS41MyAwLS43M2wtMi4xMi0yLjA4LS4wNi0uMDVhLjU0LjU0IDAgMCAwLS43LjA1Yy0uMi4yLS4yLjUzIDAgLjc0bDEuMjIgMS4xOUg3LjI2QzQuOSA1LjA4IDMgNi42MyAzIDguNTRTNC45IDEyIDcuMjYgMTJoLjM1Wk0xNiAxMC40MVYxNkg1LjgyTDE2IDEwLjQxWm0uMiA2LjU5Yy40NCAwIC44LS4zNC44LS43NVY5LjM4YzAtLjIxLS4xOC0uMzgtLjQtLjM4YS40MS40MSAwIDAgMC0uMi4wNUwzLjIgMTYuM2EuMzcuMzcgMCAwIDAtLjE1LjUxYy4wNy4xMi4yLjE5LjM1LjE5aDEyLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBSb3RhdGVSaWdodDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JvdGF0ZVJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMTVhLjc1Ljc1IDAgMCAwIDAtMS41SDljLTIuNDkgMC00LjUtMS41Ny00LjUtMy41IDAtMS44NyAxLjktMy40IDQuMjgtMy41aDcuMTZsLTEuNzIgMS43MmEuNzUuNzUgMCAwIDAgLjk4IDEuMTNsLjA4LS4wNyAzLTNjLjMtLjMuMy0uNzcgMC0xLjA2bC0zLTMtLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4IDEuMTNMMTUuOTQgNUg5Yy0zLjMxIDAtNiAyLjI0LTYgNXMyLjY5IDUgNiA1aC41Wm0xMS00LjYzYy4yOCAwIC41LjIyLjUuNVYyMGExIDEgMCAwIDEtMSAxSDMuODZhLjUuNSAwIDAgMS0uMjUtLjkzbDE2LjY0LTkuNjRhLjUuNSAwIDAgMSAuMjUtLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgUm90YXRlUmlnaHQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm90YXRlUmlnaHQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk04Ljk4IDVoLS4yNmE2Ljc5IDYuNzkgMCAwIDAtMy4xMy44OUE0LjgyIDQuODIgMCAwIDAgMyAxMGMwIDEuNyAxLjAzIDMuMjIgMi42IDQuMTIuOTYuNTUgMi4xNC44OCAzLjQuODhoLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDlhNS40IDUuNCAwIDAgMS0yLjU5LS42NEM1LjI2IDEyLjIzIDQuNSAxMS4xOCA0LjUgMTBzLjc2LTIuMjMgMS45MS0yLjg2Yy42OC0uMzcgMS40OS0uNiAyLjM3LS42NGg3LjE2bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMCAwIC45OCAxLjEzbC4wOC0uMDcgMy0zIC4wMi0uMDJhLjc1Ljc1IDAgMCAwLS4wMi0xLjA0bC0zLTMtLjA4LS4wN2EuNzUuNzUgMCAwIDAtLjk4IDEuMTNMMTUuOTQgNUg4Ljk4Wk0zLjYxIDIwLjA3YS41LjUgMCAwIDAgLjI1LjkzSDIwYTEgMSAwIDAgMCAxLTF2LTkuMTNhLjUuNSAwIDAgMC0uNzUtLjQ0TDMuNiAyMC4wN1ptMy45Ny0uNTcgMTEuOTItNi45djYuOUg3LjU4WlwiXSk7XG5leHBvcnQgY29uc3QgUm91dGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm91dGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjUgOS41YTYuNSA2LjUgMCAwIDEgMTMgMCAuNS41IDAgMCAwIDEgMCA3LjUgNy41IDAgMCAwLTE1IDAgLjUuNSAwIDAgMCAxIDBabTYuNS00YTQgNCAwIDAgMC00IDQgLjUuNSAwIDAgMS0xIDAgNSA1IDAgMCAxIDEwIDAgLjUuNSAwIDAgMS0xIDAgNCA0IDAgMCAwLTQtNFpNNy43NSA5LjI1YTIuMjUgMi4yNSAwIDEgMSAyLjc1IDIuMlYxM2g0YTIuNSAyLjUgMCAwIDEgMCA1aC05YTIuNSAyLjUgMCAwIDEgMC01aDR2LTEuNTZhMi4yNSAyLjI1IDAgMCAxLTEuNzUtMi4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvdXRlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3V0ZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zLjUgOS41YTYuNSA2LjUgMCAwIDEgMTMgMCAuNS41IDAgMCAwIDEgMCA3LjUgNy41IDAgMCAwLTE1IDAgLjUuNSAwIDAgMCAxIDBabTYuNS00YTQgNCAwIDAgMC00IDQgLjUuNSAwIDAgMS0xIDAgNSA1IDAgMCAxIDEwIDAgLjUuNSAwIDAgMS0xIDAgNCA0IDAgMCAwLTQtNFpNNy43NSA5LjI1YTIuMjUgMi4yNSAwIDEgMSAyLjc1IDIuMlYxM2g0YTIuNSAyLjUgMCAwIDEgMCA1aC05YTIuNSAyLjUgMCAwIDEgMC01aDR2LTEuNTZhMi4yNSAyLjI1IDAgMCAxLTEuNzUtMi4xOVpNMTAgOGExLjI1IDEuMjUgMCAxIDAgMCAyLjVBMS4yNSAxLjI1IDAgMCAwIDEwIDhabS00LjUgNmExLjUgMS41IDAgMCAwIDAgM2g5YTEuNSAxLjUgMCAwIDAgMC0zaC05WlwiXSk7XG5leHBvcnQgY29uc3QgUm91dGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm91dGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAzLjVBNy41IDcuNSAwIDAgMCA0LjUgMTF2LjI1YS43NS43NSAwIDAgMS0xLjUgMFYxMWE5IDkgMCAwIDEgMTggMHYuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjExQTcuNSA3LjUgMCAwIDAgMTIgMy41Wm0wIDNBNC41IDQuNSAwIDAgMCA3LjUgMTF2LjI1YS43NS43NSAwIDAgMS0xLjUgMFYxMWE2IDYgMCAxIDEgMTIgMHYuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwVjExQTQuNSA0LjUgMCAwIDAgMTIgNi41Wk05IDExYTMgMyAwIDEgMSAzLjc1IDIuOVYxNkgxOGEzIDMgMCAxIDEgMCA2SDZhMyAzIDAgMSAxIDAtNmg1LjI1di0yLjFBMyAzIDAgMCAxIDkgMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBSb3V0ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm91dGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMy41QTcuNSA3LjUgMCAwIDAgNC41IDExdi4yNWEuNzUuNzUgMCAwIDEtMS41IDBWMTFhOSA5IDAgMCAxIDE4IDB2LjI1YS43NS43NSAwIDAgMS0xLjUgMFYxMUE3LjUgNy41IDAgMCAwIDEyIDMuNVptMCAzQTQuNSA0LjUgMCAwIDAgNy41IDExdi4yNWEuNzUuNzUgMCAwIDEtMS41IDBWMTFhNiA2IDAgMSAxIDEyIDB2LjI1YS43NS43NSAwIDAgMS0xLjUgMFYxMUE0LjUgNC41IDAgMCAwIDEyIDYuNVpNMTIgOGEzIDMgMCAwIDAtLjc1IDUuOVYxNkg2YTMgMyAwIDEgMCAwIDZoMTJhMyAzIDAgMSAwIDAtNmgtNS4yNXYtMi4xQTMgMyAwIDAgMCAxMiA4Wm0tMS41IDNhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTYgMTcuNWgxMmExLjUgMS41IDAgMCAxIDAgM0g2YTEuNSAxLjUgMCAwIDEgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgUm93VHJpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUm93VHJpcGxlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00LjUgMkMzLjY3IDIgMyAyLjY3IDMgMy41djFDMyA1LjMzIDMuNjcgNiA0LjUgNmgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVptMCA2QzMuNjcgOCAzIDguNjcgMyA5LjV2MWMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTFjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVptMCA2Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxYzAgLjgzLjY3IDEuNSAxLjUgMS41aDExYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMWMwLS44My0uNjctMS41LTEuNS0xLjVoLTExWlwiXSk7XG5leHBvcnQgY29uc3QgUm93VHJpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jvd1RyaXBsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgMy41QzMgMi42NyAzLjY3IDIgNC41IDJoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyA0LjV2LTFaTTQuNSAzYS41LjUgMCAwIDAtLjUuNXYxYzAgLjI4LjIyLjUuNS41aDExYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMTFaTTMgOS41QzMgOC42NyAzLjY3IDggNC41IDhoMTFjLjgzIDAgMS41LjY3IDEuNSAxLjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMyAxMC41di0xWk00LjUgOWEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWgxMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTExWm0wIDVjLS44MyAwLTEuNS42Ny0xLjUgMS41djFjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaTTQgMTUuNWMwLS4yOC4yMi0uNS41LS41aDExYy4yOCAwIC41LjIyLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvd1RyaXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Jvd1RyaXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNS43NSAyLjAyQzQuNzggMi4wMiA0IDIuOCA0IDMuNzd2Mi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEyLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di0yLjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDUuNzVabTAgN0M0Ljc4IDkuMDIgNCA5LjggNCAxMC43N3YyLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTIuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTIuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINS43NVptMCA3Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYyLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTIuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTIuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJvd1RyaXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSb3dUcmlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDMuNzdjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTIuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDUuNzVDNC43OCA4LjAyIDQgNy4yNCA0IDYuMjd2LTIuNVptMS43NS0uMjVhLjI1LjI1IDAgMCAwLS4yNS4yNXYyLjVjMCAuMTQuMTEuMjUuMjUuMjVoMTIuNWMuMTQgMCAuMjUtLjExLjI1LS4yNXYtMi41YS4yNS4yNSAwIDAgMC0uMjUtLjI1SDUuNzVaTTQgMTAuNzdjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTIuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYyLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDUuNzVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMi41Wm0xLjc1LS4yNWEuMjUuMjUgMCAwIDAtLjI1LjI1djIuNWMwIC4xNC4xMS4yNS4yNS4yNWgxMi41Yy4xNCAwIC4yNS0uMTEuMjUtLjI1di0yLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVINS43NVptMCA1LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMi41YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg1Ljc1Wm0tLjI1IDEuNzVjMC0uMTQuMTEtLjI1LjI1LS4yNWgxMi41Yy4xNCAwIC4yNS4xMS4yNS4yNXYyLjVjMCAuMTQtLjExLjI1LS4yNS4yNUg1Ljc1YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBSc3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSc3MxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTExLjUgMmgtN0EyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRoN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTdBMi41IDIuNSAwIDAgMCAxMS41IDJabS02IDkuMjVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41Wm0zLS4yNWEuNS41IDAgMCAxLS41LS41QTIuNSAyLjUgMCAwIDAgNS41IDhhLjUuNSAwIDAgMSAwLTFBMy41IDMuNSAwIDAgMSA5IDEwLjVhLjUuNSAwIDAgMS0uNS41Wm0zIDBhLjUuNSAwIDAgMS0uNS0uNUE1LjUgNS41IDAgMCAwIDUuNSA1YS41LjUgMCAwIDEgMC0xIDYuNSA2LjUgMCAwIDEgNi41IDYuNS41LjUgMCAwIDEtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFJzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSc3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTdBMi41IDIuNSAwIDAgMSAyIDExLjV2LTdaTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWg3Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjVoLTdabTEgOC4yNWEuNzUuNzUgMCAxIDAgMC0xLjUuNzUuNzUgMCAwIDAgMCAxLjVaTTkgMTAuNUEzLjUgMy41IDAgMCAwIDUuNSA3YS41LjUgMCAwIDAgMCAxQTIuNSAyLjUgMCAwIDEgOCAxMC41YS41LjUgMCAwIDAgMSAwWm0zIDBBNi41IDYuNSAwIDAgMCA1LjUgNGEuNS41IDAgMCAwIDAgMSA1LjUgNS41IDAgMCAxIDUuNSA1LjUuNS41IDAgMCAwIDEgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFJzczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptLjUgM2E3LjUgNy41IDAgMCAxIDcuNSA3LjUuNS41IDAgMCAxLTEgMEE2LjUgNi41IDAgMCAwIDYuNSA3YS41LjUgMCAwIDEgMC0xWk02IDkuNWMwLS4yOC4yMi0uNS41LS41YTQuNSA0LjUgMCAwIDEgNC41IDQuNS41LjUgMCAwIDEtMSAwQTMuNSAzLjUgMCAwIDAgNi41IDEwYS41LjUgMCAwIDEtLjUtLjVaTTcgMTRhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgUnNzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1JzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zSDZaTTQgNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZabTIuNSAwYS41LjUgMCAwIDAgMCAxIDYuNSA2LjUgMCAwIDEgNi41IDYuNS41LjUgMCAwIDAgMSAwQTcuNSA3LjUgMCAwIDAgNi41IDZaTTYgOS41YzAtLjI4LjIyLS41LjUtLjVhNC41IDQuNSAwIDAgMSA0LjUgNC41LjUuNSAwIDAgMS0xIDBBMy41IDMuNSAwIDAgMCA2LjUgMTBhLjUuNSAwIDAgMS0uNS0uNVpNNyAxNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBSc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSc3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVptLjUgNC41QS43NC43NCAwIDAgMSA2IDYuNzh2LS4wNmMwLS4zOS4zLS43Mi43LS43MmguMDVDMTIuOTYgNiAxOCAxMS4wNCAxOCAxNy4yNXYuMDVjMCAuNC0uMzMuNy0uNzIuN2gtLjA2YS43NC43NCAwIDAgMS0uNzItLjc1QTkuNzUgOS43NSAwIDAgMCA2Ljc1IDcuNVpNMTMuMjkgMThoLS4wOWMtLjQgMC0uNy0uMzUtLjctLjc1YTUuNzUgNS43NSAwIDAgMC01Ljc1LTUuNzVjLS40IDAtLjc1LS4zLS43NS0uN3YtLjFhLjY5LjY5IDAgMCAxIC43NS0uN0E3LjI1IDcuMjUgMCAwIDEgMTQgMTcuMzNjMCAuMzgtLjMzLjY3LS43LjY3Wk03LjUgMThhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBSc3MyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi43NSA3LjVBLjc0Ljc0IDAgMCAxIDYgNi43OHYtLjA2YzAtLjM5LjMtLjcyLjctLjcyaC4wNUMxMi45NiA2IDE4IDExLjA0IDE4IDE3LjI1di4wNWMwIC40LS4zMy43LS43Mi43aC0uMDZhLjc0Ljc0IDAgMCAxLS43Mi0uNzVBOS43NSA5Ljc1IDAgMCAwIDYuNzUgNy41WlwiLCBcIk0xMy4zIDE4YS42OS42OSAwIDAgMCAuNy0uNzVBNy4yNSA3LjI1IDAgMCAwIDYuNjcgMTBhLjY5LjY5IDAgMCAwLS42Ny43di4xYzAgLjQuMzUuNy43NS43YTUuNzUgNS43NSAwIDAgMSA1Ljc1IDUuNzVjMCAuNC4zLjc1LjcuNzVoLjFaXCIsIFwiTTkgMTYuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIiwgXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djExLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgUnVsZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdSdWxlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOS41IDJjLjgzIDAgMS41LjY3IDEuNSAxLjV2OWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTNBMS41IDEuNSAwIDAgMSA1IDEyLjV2LTlDNSAyLjY3IDUuNjcgMiA2LjUgMmgzWm0tMiA5YS41LjUgMCAwIDAgMC0xSDZ2MWgxLjVaTTggOC41YS41LjUgMCAwIDAgMC0xSDZ2MWgyWk03LjUgNmEuNS41IDAgMCAwIDAtMUg2djFoMS41WlwiXSk7XG5leHBvcnQgY29uc3QgUnVsZXIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignUnVsZXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMSAzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zQzUuNjcgMiA1IDIuNjcgNSAzLjV2OWMwIC44My42NyAxLjUgMS41IDEuNWgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOVpNOS41IDNjLjI4IDAgLjUuMjIuNS41djlhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjVWMTFoMS41YS41LjUgMCAwIDAgMC0xSDZWOC41aDJhLjUuNSAwIDEgMCAwLTFINlY2aDEuNWEuNS41IDAgMSAwIDAtMUg2VjMuNWMwLS4yOC4yMi0uNS41LS41aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBSdWxlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1J1bGVyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIm0xMy45NyAzLjIuMDMuM3YxM2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA2IDE2LjV2LTEzQTEuNSAxLjUgMCAwIDEgNy41IDJoNWMuNzIgMCAxLjMzLjUxIDEuNDcgMS4yWk03IDE0LjV2MWgxLjVhLjUuNSAwIDAgMCAwLTFIN1ptMC0xMHYxaDEuNWEuNS41IDAgMCAwIDAtMUg3Wk03IDd2MWgyLjVhLjUuNSAwIDAgMCAwLTFIN1ptMCAyLjV2MWgxLjVhLjUuNSAwIDAgMCAwLTFIN1pNNyAxMnYxaDIuNWEuNS41IDAgMSAwIDAtMUg3WlwiXSk7IiwiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZsdWVudEljb24gfSBmcm9tIFwiLi4vdXRpbHMvY3JlYXRlRmx1ZW50SWNvblwiO1xuZXhwb3J0IGNvbnN0IFNwYWNlM0QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2UzRDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3Y4YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zVjZabTEzIDBhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2M2gxMlY2Wk00IDEybDEuMTQtMkg0djJabS44Ni41aDIuNzZsLjcyLTIuNUg2LjI5bC0xLjQzIDIuNVptLS44NiAxdi41YzAgMS4xLjkgMiAyIDJoLjYybC43Mi0yLjVINFptNC4zOCAwTDcuNjYgMTZoNC42OGwtLjcyLTIuNUg4LjM4Wm00LjI4IDAgLjcyIDIuNUgxNGEyIDIgMCAwIDAgMi0ydi0uNWgtMy4zNFptMi40OC0xTDEzLjcgMTBoLTIuMDVsLjcyIDIuNWgyLjc2Wm0tMy44IDAtLjcyLTIuNUg5LjM4bC0uNzIgMi41aDIuNjhaTTE2IDEydi0yaC0xLjE0TDE2IDEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhY2UzRDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYWNlM0QyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1VjE1aC0uODFsLTIuMjUtM2gxLjU2VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjEyaDEuNTZsLTIuMjUgM0gzVjYuMjVaTTE1LjcgMTYuNUgyMXYxLjI1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLS42N2wtLjM2LTEuMjItMS4wMy0zLjI4Wk0xOC4zIDE1aC0zLjA5bC0uOTMtM2gxLjc3bDIuMjUgM1ptLTcuNzkgMGgzLjEzbC0uOTQtM2gtMS40NGwtLjc1IDNabTMuNiAxLjVoLTMuOTdMOS4wMiAyMWg2LjVsLS4yNC0uNzgtMS4xNi0zLjcyWk05LjcyIDEybC0uNzQgM2gtMy4zbDIuMjYtM2gxLjc5Wk04LjYgMTYuNUgzdjEuMjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMS4yM2wxLjEyLTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYWNlM0QyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2UzRDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTYuMjUgNC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVYxMWgxNVY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg2LjI1Wk00LjUgMTQuMDhsMS4xOS0xLjU4SDQuNXYxLjU4Wm0xLjE5LjkyaDMuMjlsLjYyLTIuNUg3LjU2TDUuNyAxNVpNNC41IDE2LjV2MS4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxLjZsLjc1LTNINC41Wm01LjY1IDAtLjc1IDNoNS42NmwtLjk0LTNoLTMuOTdabTUuNTQgMCAuOTQgM2gxLjEyYy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNi41aC0zLjhabTIuNjItMS41LTEuODctMi41aC0ybC43OCAyLjVoMy4xWm0tNC42NiAwLS43OC0yLjVoLTEuNzJsLS42MyAyLjVoMy4xM1ptNS44NS0uOTJWMTIuNWgtMS4xOWwxLjE5IDEuNThaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFjZTNEMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2UzRDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoMTQuNUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NVYxOGgtLjg0bC0zLjItNGgyLjU0VjYuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVINi43NWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjVWMTRoMi41NGwtMy4yIDRIM1Y2Ljc1Wk0xOC42OCAxOS41SDI1djEuNzVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1aC0uODdsLS4yOS0uOTctMS40MS00LjUzWm0zLjU2LTEuNUgxOC4ybC0xLjI2LTRoMi4wOWwzLjIgNFptLTEwLjM3IDBoNC43NmwtMS4yNS00aC0yLjI2bC0xLjI1IDRabTUuMjMgMS41aC01LjdsLTEuNTYgNC45Ny0uMTYuNTNoOS4xM2wtLjE1LS41My0xLjU2LTQuOTdaTTExLjU1IDE0bC0xLjI2IDRINS43NmwzLjItNGgyLjU5Wm0tMS43MiA1LjVIM3YxLjc1QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1SDguMWwuMzEtLjk4IDEuNDItNC41MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYWNlM0QyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2UzRDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk02Ljc1IDQuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjVWMTNoMTlWNi43NWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUg2Ljc1Wk00LjUgMTcuMTdsMi4xNC0yLjY3SDQuNXYyLjY3Wm0xLjI2LjgzaDQuNTNsMS4xLTMuNUg4LjU2TDUuNzYgMThaTTQuNSAxOS41djEuNzVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMS44MmwxLjI2LTRINC41Wm02LjkgMC0xLjI1IDRoOC4ybC0xLjI1LTRoLTUuN1ptNy4yOCAwIDEuMjUgNGgxLjMyYzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjE5LjVoLTQuODJabTMuNTYtMS41LTIuOC0zLjVIMTcuMWwxLjEgMy41aDQuMDNabS01LjYgMC0xLjEtMy41aC0yLjU4bC0xLjEgMy41aDQuNzdabTYuODYtLjgzVjE0LjVoLTIuMTRsMi4xNCAyLjY3WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhY2UzRDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYWNlM0QzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTMgNy41QTQuNSA0LjUgMCAwIDEgNy41IDNoMTdBNC41IDQuNSAwIDAgMSAyOSA3LjVWMjFoLS45OWwtNC4zOS01SDI3VjcuNUEyLjUgMi41IDAgMCAwIDI0LjUgNWgtMTdBMi41IDIuNSAwIDAgMCA1IDcuNVYxNmgzLjM4bC00LjQgNUgzVjcuNVpNMjEuNDggMjNIMjl2MS41YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMS4xNWwtLjQtMS4zLTEuNDctNC43Wm0zLjg3LTJoLTQuNWwtMS41Ni01aDEuNjdsNC40IDVabS0xMi4xMSAwaDUuNTJsLTEuNTYtNWgtMi40bC0xLjU2IDVabTYuMTUgMkgxMi42bC0xLjg3IDZoMTAuNTJsLS4yMS0uNy0xLjY2LTUuM1ptLTYuNjgtNy0xLjU3IDVoLTQuNWw0LjQtNWgxLjY3Wk0zIDI0LjVWMjNoNy41MmwtMS44OCA2SDcuNUE0LjUgNC41IDAgMCAxIDMgMjQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYWNlM0QzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2UzRDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMgNy41QTQuNSA0LjUgMCAwIDEgNy41IDNoMTdBNC41IDQuNSAwIDAgMSAyOSA3LjV2MTdhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xN0E0LjUgNC41IDAgMCAxIDMgMjQuNXYtMTdaTTcuNSA1QTIuNSAyLjUgMCAwIDAgNSA3LjVWMTVoMjJWNy41QTIuNSAyLjUgMCAwIDAgMjQuNSA1aC0xN1pNNSAxOS44NSA3LjUgMTdINXYyLjg1Wk02LjY1IDIxaDQuNWwxLjI0LTRoLTIuMjNsLTMuNTEgNFpNNSAyM3YxLjVBMi41IDIuNSAwIDAgMCA3LjUgMjdoMS43N2wxLjI1LTRINVptNy42MSAwLTEuMjUgNGg5LjI4bC0xLjI1LTRIMTIuNlptOC44NyAwIDEuMjUgNGgxLjc3YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYyM2gtNS41MlptMy44Ny0yLTMuNTEtNEgxOS42bDEuMjUgNGg0LjVabS02LjU5IDAtMS4yNS00SDE0LjVsLTEuMjUgNGg1LjUyWk0yNyAxOS44NVYxN2gtMi41bDIuNSAyLjg1WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhY2UzRDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYWNlM0Q0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTYgMTIuMjVDNiA4LjggOC44IDYgMTIuMjUgNmgyMy41QzM5LjIgNiA0MiA4LjggNDIgMTIuMjVWMzFoLTEuNzdsLTQuODgtN2g0LjE1VjEyLjI1YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLTIzLjVhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NVYyNGg0LjE1bC00Ljg4IDdINlYxMi4yNVpNMzcuMTkgMzFoLTYuNWwtMi4yLTdoMy44Mmw0Ljg4IDdabS05LjEzIDBoLTguMTJsMi4xOS03aDMuNzRsMi4yIDdabS43OCAyLjVoLTkuNjhsLTIuNDcgNy44N3YuMDFsLS4yLjYyaDE1bC0uMTgtLjYzLTIuNDctNy44N1pNMTkuNTEgMjRsLTIuMiA3aC02LjVsNC44OC03aDMuODJabS0yLjk3IDkuNUg2djIuMjVDNiAzOS4yIDguOCA0MiAxMi4yNSA0MmgxLjYybC40NC0xLjM3di0uMDFsMi4yMy03LjEyWm0yNS40NiAwSDMxLjQ2bDIuMjMgNy4xMy40MiAxLjM3aDEuNjRDMzkuMiA0MiA0MiAzOS4yIDQyIDM1Ljc1VjMzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFjZTNENDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYWNlM0Q0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02IDEyLjI1QzYgOC44IDguOCA2IDEyLjI1IDZoMjMuNUMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djIzLjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0yMy41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di0yMy41Wm02LjI1LTMuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NVYyM2gzMVYxMi4yNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yMy41Wk04LjUgMjkuOTVsMy4xLTQuNDVIOC41djQuNDVaTTEwLjgxIDMxaDYuNWwxLjczLTUuNWgtNC40TDEwLjgyIDMxWk04LjUgMzMuNXYyLjI1YTMuNzUgMy43NSAwIDAgMCAzLjc1IDMuNzVoMi40bDEuODktNkg4LjVabTEwLjY2IDAtMS44OCA2aDEzLjQ0bC0xLjg4LTZoLTkuNjhabTEyLjMgMCAxLjg4IDZoMi40MWEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1VjMzLjVoLTguMDRaTTM3LjIgMzFsLTMuODQtNS41aC00LjM5bDEuNzIgNS41aDYuNVptLTkuMTMgMC0xLjcyLTUuNWgtNC42OEwxOS45NCAzMWg4LjEyWm0xMS40NC0xLjA1VjI1LjVoLTMuMWwzLjEgNC40NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYWNlYmFyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2ViYXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuNzUgNy43NWMuNDEgMCAuNzUuMzQuNzUuNzV2MmgxM3YtMmEuNzUuNzUgMCAwIDEgMS41IDB2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiAxMC41di0yYzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFjZWJhcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFjZWJhcjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTIuNSA4Yy4yOCAwIC41LjIyLjUuNXYyYzAgLjI4LjIyLjUuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMSAxIDB2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMiAxMC41di0yYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFjZWJhcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYWNlYmFyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMCAxMXYySDR2LTJhMSAxIDAgMSAwLTIgMHYyYzAgMS4xLjkgMiAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmExIDEgMCAxIDAtMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhY2ViYXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhY2ViYXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMC41IDExdjJjMCAuMTQtLjExLjI1LS4yNS4yNUgzLjc1QS4yNS4yNSAwIDAgMSAzLjUgMTN2LTJBLjc1Ljc1IDAgMCAwIDIgMTF2MmMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxNi41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMmEuNzUuNzUgMCAwIDAtMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNS40NyA5LjgzYS45Mi45MiAwIDAgMCAxLjQtLjQ2bC4zNS0xLjA3QTEuNzIgMS43MiAwIDAgMSA4LjMgNy4yMmwxLjA5LS4zNWEuOTIuOTIgMCAwIDAtLjA0LTEuNzVsLTEuMDctLjM1QTEuNyAxLjcgMCAwIDEgNy4yIDMuN0w2Ljg1IDIuNmEuOTIuOTIgMCAwIDAtLjg3LS42Yy0uMiAwLS4zOC4wNS0uNTMuMTZhLjkyLjkyIDAgMCAwLS4zNS40NmwtLjM1IDEuMDlBMS43MSAxLjcxIDAgMCAxIDMuNyA0Ljc3bC0xLjA4LjM2YS45Mi45MiAwIDAgMCAwIDEuNzRsMS4wOC4zNUExLjcxIDEuNzEgMCAwIDEgNC43OCA4LjNsLjM1IDEuMDhjLjA2LjE4LjE4LjM0LjM0LjQ1Wm01LjA2IDQuMDJhLjguOCAwIDAgMCAuOTIgMGMuMTUtLjEuMjUtLjI0LjMtLjRsLjI2LS43NmExLjA5IDEuMDkgMCAwIDEgLjY4LS42OGwuNzctLjI1YS44LjggMCAwIDAtLjAyLTEuNTNsLS43Ny0uMjVhMS4wOCAxLjA4IDAgMCAxLS42OC0uNjdsLS4yNS0uNzhBLjguOCAwIDAgMCAxMS4xIDhhLjguOCAwIDAgMC0uODguNTRsLS4yNS43N2ExLjEgMS4xIDAgMCAxLS42Ni42N2wtLjc4LjI2YS44LjggMCAwIDAtLjM4IDEuMjJjLjEuMTQuMjMuMjQuNC4zbC43Ni4yNWExLjA5IDEuMDkgMCAwIDEgLjY4LjY4bC4yNS43N2MuMDYuMTYuMTYuMy4zLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjQ3IDkuODNhLjkyLjkyIDAgMCAwIDEuNC0uNDZsLjM1LTEuMDdBMS43MiAxLjcyIDAgMCAxIDguMyA3LjIybDEuMDktLjM1YS45Mi45MiAwIDAgMC0uMDQtMS43NWwtMS4wNy0uMzVBMS43IDEuNyAwIDAgMSA3LjIgMy43TDYuODUgMi42YS45Mi45MiAwIDAgMC0uODctLjZjLS4yIDAtLjM4LjA1LS41My4xNmEuOTIuOTIgMCAwIDAtLjM1LjQ2bC0uMzUgMS4wOUExLjcxIDEuNzEgMCAwIDEgMy43IDQuNzdsLTEuMDguMzZhLjkyLjkyIDAgMCAwIDAgMS43NGwxLjA4LjM1QTEuNzEgMS43MSAwIDAgMSA0Ljc4IDguM2wuMzUgMS4wOGMuMDYuMTguMTguMzQuMzQuNDVaTTQgNi4yNiAzLjE1IDZsLjg3LS4yOEEyLjcyIDIuNzIgMCAwIDAgNS43IDRsLjI2LS44Ni4yOC44N2EyLjcgMi43IDAgMCAwIDEuNzIgMS43MWwuODguMjctLjg2LjI4YTIuNyAyLjcgMCAwIDAtMS43MiAxLjcybC0uMjYuODUtLjI4LS44NkEyLjcgMi43IDAgMCAwIDQgNi4yNlptNi41MiA3LjZjLjE0LjA5LjMuMTQuNDcuMTRhLjgxLjgxIDAgMCAwIC43Ni0uNTVsLjI1LS43NmExLjA5IDEuMDkgMCAwIDEgLjY4LS42OGwuNzctLjI1YS44LjggMCAwIDAtLjAyLTEuNTNsLS43Ny0uMjVhMS4wOCAxLjA4IDAgMCAxLS42OC0uNjdsLS4yNS0uNzhBLjguOCAwIDAgMCAxMS4xIDhhLjguOCAwIDAgMC0uODguNTRsLS4yNS43N2ExLjEgMS4xIDAgMCAxLS42Ni42N2wtLjc4LjI2YS44LjggMCAwIDAtLjM4IDEuMjJjLjEuMTQuMjMuMjQuNC4zbC43Ni4yNWExLjA5IDEuMDkgMCAwIDEgLjY4LjY4bC4yNS43N2MuMDYuMTYuMTYuMy4zLjRabS0uOTEtMi44TDkuNDQgMTFsLjE5LS4wNmEyLjA5IDIuMDkgMCAwIDAgMS4zLTEuMzJsLjA1LS4xOC4wNi4xOGEyLjA4IDIuMDggMCAwIDAgMS4zMiAxLjMybC4yLjA2LS4xOC4wNmEyLjA4IDIuMDggMCAwIDAtMS4zMiAxLjMybC0uMDYuMTgtLjA2LS4xOGEyLjA3IDIuMDcgMCAwIDAtMS4zMi0xLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhcmtsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcuNCAxMi44YTEuMDQgMS4wNCAwIDAgMCAxLjU5LS41MWwuNDUtMS4zN2EyLjM0IDIuMzQgMCAwIDEgMS40Ny0xLjQ4bDEuNC0uNDVBMS4wNCAxLjA0IDAgMCAwIDEyLjI1IDdsLTEuMzctLjQ1QTIuMzQgMi4zNCAwIDAgMSA5LjQgNS4wOEw4Ljk1IDMuN2ExLjAzIDEuMDMgMCAwIDAtLjgyLS42OCAxLjA0IDEuMDQgMCAwIDAtMS4xNS43bC0uNDYgMS40YTIuMzQgMi4zNCAwIDAgMS0xLjQ0IDEuNDVMMy43IDdhMS4wNCAxLjA0IDAgMCAwIC4wMiAxLjk3bDEuMzcuNDVhMi4zMyAyLjMzIDAgMCAxIDEuNDggMS40OGwuNDYgMS40Yy4wNy4yLjIuMzcuMzguNVptNi4xNCA0LjA1YS44LjggMCAwIDAgMS4yMi0uNGwuMjUtLjc2YTEuMDkgMS4wOSAwIDAgMSAuNjgtLjY4bC43Ny0uMjVhLjguOCAwIDAgMC0uMDItMS41MmwtLjc3LS4yNWExLjA4IDEuMDggMCAwIDEtLjY4LS42OGwtLjI1LS43N2EuOC44IDAgMCAwLTEuNTIuMDFsLS4yNC43NmExLjEgMS4xIDAgMCAxLS42Ny42OGwtLjc3LjI1YS44LjggMCAwIDAgMCAxLjUybC43Ny4yNWExLjA5IDEuMDkgMCAwIDEgLjY4LjY4bC4yNS43N2MuMDYuMTYuMTYuMy4zLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk03LjQgMTIuOGExLjA0IDEuMDQgMCAwIDAgMS41OS0uNTFsLjQ1LTEuMzdhMi4zNCAyLjM0IDAgMCAxIDEuNDctMS40OGwxLjQtLjQ1QTEuMDQgMS4wNCAwIDAgMCAxMi4yNSA3bC0xLjM3LS40NUEyLjM0IDIuMzQgMCAwIDEgOS40IDUuMDhMOC45NSAzLjdhMS4wMyAxLjAzIDAgMCAwLS44Mi0uNjggMS4wNCAxLjA0IDAgMCAwLTEuMTUuN2wtLjQ2IDEuNGEyLjM0IDIuMzQgMCAwIDEtMS40NCAxLjQ1TDMuNyA3YTEuMDQgMS4wNCAwIDAgMCAuMDIgMS45N2wxLjM3LjQ1YTIuMzMgMi4zMyAwIDAgMSAxLjQ4IDEuNDhsLjQ2IDEuNGMuMDcuMi4yLjM3LjM4LjVabS4wOC03LjQuNTMtMS4zOC40NCAxLjM3YTMuMzMgMy4zMyAwIDAgMCAyLjEyIDIuMTJsMS40LjUzLTEuMzguNDVhMy4zNCAzLjM0IDAgMCAwLTIuMTEgMi4xMWwtLjUzIDEuMzgtLjQ1LTEuMzhhMy4zNCAzLjM0IDAgMCAwLTIuMS0yLjEyTDQgNy45NiA1LjQgNy41YTMuMzYgMy4zNiAwIDAgMCAyLjA4LTIuMTJabTYuMDYgMTEuNDVhLjguOCAwIDAgMCAxLjIyLS40bC4yNS0uNzZhMS4wOSAxLjA5IDAgMCAxIC42OC0uNjhsLjc3LS4yNWEuOC44IDAgMCAwLS4wMi0xLjUybC0uNzctLjI1YTEuMDggMS4wOCAwIDAgMS0uNjgtLjY4bC0uMjUtLjc3YS44LjggMCAwIDAtMS41Mi4wMWwtLjI0Ljc2YTEuMSAxLjEgMCAwIDEtLjY3LjY4bC0uNzcuMjVhLjguOCAwIDAgMCAwIDEuNTJsLjc3LjI1YTEuMDkgMS4wOSAwIDAgMSAuNjguNjhsLjI1Ljc3Yy4wNi4xNi4xNi4zLjMuNFptLS45Mi0yLjgtLjE4LS4wNS4xOS0uMDZhMi4wOSAyLjA5IDAgMCAwIDEuMy0xLjMybC4wNi0uMTguMDUuMThhMi4wOCAyLjA4IDAgMCAwIDEuMzIgMS4zMmwuMi4wNi0uMTguMDZhMi4wOCAyLjA4IDAgMCAwLTEuMzIgMS4zMmwtLjA2LjE4LS4wNi0uMThhMi4wNyAyLjA3IDAgMCAwLTEuMzItMS4zMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFya2xlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk04LjY3IDE1LjczYTEuNDQgMS40NCAwIDAgMCAyLjE2LS42MWwuNjEtMS44NmEyLjg3IDIuODcgMCAwIDEgMS44Mi0xLjgxbDEuNzgtLjU4YTEuNDQgMS40NCAwIDAgMC0uMDYtMi43NGwtMS43NS0uNTdhMi44OCAyLjg4IDAgMCAxLTEuODItMS44MmwtLjU4LTEuNzhhMS40NSAxLjQ1IDAgMCAwLTIuNzMuMDJsLS41OSAxLjhhMi44OCAyLjg4IDAgMCAxLTEuNzcgMS43OGwtMS43Ny41N2ExLjQ0IDEuNDQgMCAwIDAgLjAxIDIuNzNsMS43Ni41N2EyLjg5IDIuODkgMCAwIDEgMS44MiAxLjgzbC41OCAxLjc3Yy4xLjI5LjI4LjUzLjUzLjdabTcuNjYgNS4wNWMtLjE5LS4xMy0uMzMtLjMzLS40LS41NWwtLjM0LTFhMS4zMSAxLjMxIDAgMCAwLS44Mi0uODNsLS45OS0uMzJBMS4xNSAxLjE1IDAgMCAxIDEzIDE3YTEuMTQgMS4xNCAwIDAgMSAuNzctMS4wOGwxLS4zM2ExLjMgMS4zIDAgMCAwIC44LS44MmwuMzMtLjk5YTEuMTQgMS4xNCAwIDAgMSAyLjE2LS4wMmwuMzMgMS4wMWExLjMgMS4zIDAgMCAwIC44Mi44MmwuOTkuMzJhMS4xNCAxLjE0IDAgMCAxIC4wNCAyLjE3bC0xLjAxLjMzYTEuMzIgMS4zMiAwIDAgMC0uODIuODJsLS4zMi45OWExLjE0IDEuMTQgMCAwIDEtMS43Ni41NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTguNjcgMTUuNzNhMS40NCAxLjQ0IDAgMCAwIDIuMTYtLjYxbC42MS0xLjg2YTIuODcgMi44NyAwIDAgMSAxLjgyLTEuODFsMS43OC0uNThhMS40NCAxLjQ0IDAgMCAwLS4wNi0yLjc0bC0xLjc1LS41N2EyLjg4IDIuODggMCAwIDEtMS44Mi0xLjgybC0uNTgtMS43OGExLjQ1IDEuNDUgMCAwIDAtMi43My4wMmwtLjU5IDEuOGEyLjg4IDIuODggMCAwIDEtMS43NyAxLjc4bC0xLjc3LjU3YTEuNDQgMS40NCAwIDAgMCAuMDEgMi43M2wxLjc2LjU3YTIuODkgMi44OSAwIDAgMSAxLjgyIDEuODNsLjU4IDEuNzdjLjEuMjkuMjguNTMuNTMuN1ptLS4zOC00LjI1QTQuNCA0LjQgMCAwIDAgNi4yMSAxMGwtMS42LS41IDEuNjEtLjUyQTQuNCA0LjQgMCAwIDAgOC45NSA2LjJsLjUyLTEuNTguNTEgMS41OWE0LjM3IDQuMzcgMCAwIDAgMi43OSAyLjc3bDEuNjEuNTItMS41OC41MmE0LjM4IDQuMzggMCAwIDAtMi43OCAyLjc3bC0uNTEgMS41OS0uNTItMS41OWMtLjE2LS40Ny0uNC0uOTEtLjctMS4zWm04LjA0IDkuM2MtLjE5LS4xMy0uMzMtLjMzLS40LS41NWwtLjM0LTFhMS4zMSAxLjMxIDAgMCAwLS44Mi0uODNsLS45OS0uMzJBMS4xNSAxLjE1IDAgMCAxIDEzIDE3YTEuMTQgMS4xNCAwIDAgMSAuNzctMS4wOGwxLS4zM2ExLjMgMS4zIDAgMCAwIC44LS44MmwuMzMtLjk5YTEuMTQgMS4xNCAwIDAgMSAyLjE2LS4wMmwuMzMgMS4wMWExLjMgMS4zIDAgMCAwIC44Mi44MmwuOTkuMzJhMS4xNCAxLjE0IDAgMCAxIC4wNCAyLjE3bC0xLjAxLjMzYTEuMzIgMS4zMiAwIDAgMC0uODIuODJsLS4zMi45OWExLjE0IDEuMTQgMCAwIDEtMS43Ni41NlpNMTUuMyAxN2EyLjggMi44IDAgMCAxIDEuNyAxLjcgMi44IDIuOCAwIDAgMSAxLjctMS43IDIuODEgMi44MSAwIDAgMS0xLjcyLTEuN0EyLjggMi44IDAgMCAxIDE1LjMgMTdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTAuMDYgMTguN2ExLjYzIDEuNjMgMCAwIDAgMi40My0uNjdsLjc3LTIuMzRhMy44MiAzLjgyIDAgMCAxIDIuNDItMi40MmwyLjIzLS43M2ExLjYxIDEuNjEgMCAwIDAgMS4wNy0xLjMgMS42MiAxLjYyIDAgMCAwLTEuMTMtMS43OGwtMi4yMS0uNzJhMy44MiAzLjgyIDAgMCAxLTIuNDItMi40MmwtLjczLTIuMjNhMS42MiAxLjYyIDAgMCAwLTMuMDcuMDFsLS43NCAyLjI3YTMuODIgMy44MiAwIDAgMS0yLjM2IDIuMzZsLTIuMjQuNzNhMS42MyAxLjYzIDAgMCAwIC4wMiAzLjA3bDIuMjIuNzJhMy44NiAzLjg2IDAgMCAxIDIuNDIgMi40M2wuNzMgMi4yM2MuMS4zMi4zMi42LjYuOFptOS43NCA2LjA4YTEuMiAxLjIgMCAwIDAgMS44NC0uNmwuMzctMS4xNGExLjYgMS42IDAgMCAxIDEuMDItMS4wMmwxLjE2LS4zOGExLjIxIDEuMjEgMCAwIDAgLjU5LTEuODMgMS4yMyAxLjIzIDAgMCAwLS42Mi0uNDVMMjMgMTguOTlBMS42IDEuNiAwIDAgMSAyMiAxNy45N2wtLjM4LTEuMTZhMS4yIDEuMiAwIDAgMC0yLjI3LjAxbC0uMzggMS4xNWExLjYgMS42IDAgMCAxLS45OSAxLjAybC0xLjE3LjM4YTEuMjEgMS4yMSAwIDAgMC0uNTggMS44M2MuMTUuMi4zNi4zNi42LjQ0bDEuMTQuMzdBMS42IDEuNiAwIDAgMSAxOSAyMy4wNGwuMzcgMS4xNmMuMDkuMjQuMjQuNDQuNDQuNThaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMC4wNiAxOC43YTEuNjMgMS42MyAwIDAgMCAyLjQzLS42N2wuNzctMi4zNGEzLjgyIDMuODIgMCAwIDEgMi40Mi0yLjQybDIuMjMtLjczYTEuNjEgMS42MSAwIDAgMCAxLjA3LTEuMyAxLjYyIDEuNjIgMCAwIDAtMS4xMy0xLjc4bC0yLjIxLS43MmEzLjgyIDMuODIgMCAwIDEtMi40Mi0yLjQybC0uNzMtMi4yM2ExLjYyIDEuNjIgMCAwIDAtMy4wNy4wMWwtLjc0IDIuMjdhMy44MiAzLjgyIDAgMCAxLTIuMzYgMi4zNmwtMi4yNC43M2ExLjYzIDEuNjMgMCAwIDAgLjAyIDMuMDdsMi4yMi43MmEzLjg2IDMuODYgMCAwIDEgMi40MiAyLjQzbC43MyAyLjIzYy4xLjMyLjMyLjYuNi44Wk02LjggMTEuODNsLTIuMjItLjcycy0uMDktLjA0LS4wOS0uMTFhLjE0LjE0IDAgMCAxIC4wOS0uMTFsMi4yMy0uNzNhNS4zNCA1LjM0IDAgMCAwIDMuMzItMy4zN2wuNzItMi4yMnMuMDQtLjA5LjEyLS4wOWMuMDcgMCAuMS4wOS4xLjA5bC43MyAyLjIyYTUuMzIgNS4zMiAwIDAgMCAzLjM4IDMuMzdsMi4yNy43NGEuMTMuMTMgMCAwIDEgLjA4LjEuMTUuMTUgMCAwIDEtLjA5LjEybC0yLjIyLjcyYTUuMzIgNS4zMiAwIDAgMC0zLjM4IDMuMzhsLS43MSAyLjJhLjExLjExIDAgMCAxLS4xMi4wOWMtLjEgMC0uMTEtLjA4LS4xMS0uMDhsLS43My0yLjIyYTUuMzIgNS4zMiAwIDAgMC0zLjM3LTMuMzhaTTE5LjggMjQuNzhhMS4yIDEuMiAwIDAgMCAxLjg0LS42bC4zNy0xLjE0YTEuNiAxLjYgMCAwIDEgMS4wMi0xLjAybDEuMTYtLjM4YTEuMjEgMS4yMSAwIDAgMCAuNTktMS44MyAxLjIzIDEuMjMgMCAwIDAtLjYyLS40NUwyMyAxOC45OUExLjYgMS42IDAgMCAxIDIyIDE3Ljk3bC0uMzgtMS4xNmExLjIgMS4yIDAgMCAwLTIuMjcuMDFsLS4zOCAxLjE1YTEuNiAxLjYgMCAwIDEtLjk5IDEuMDJsLTEuMTcuMzhhMS4yMSAxLjIxIDAgMCAwLS41OCAxLjgzYy4xNS4yLjM2LjM2LjYuNDRsMS4xNC4zN0ExLjYgMS42IDAgMCAxIDE5IDIzLjA0bC4zNyAxLjE2Yy4wOS4yNC4yNC40NC40NC41OFptLTEuMzctNC4yLS4yNy0uMDguMjktLjFhMy4xMiAzLjEyIDAgMCAwIDEuOTQtMS45N2wuMDktLjI3LjA5LjI3YTMuMTEgMy4xMSAwIDAgMCAxLjk3IDEuOThsLjMuMS0uMjguMDhhMy4xMiAzLjEyIDAgMCAwLTEuOTcgMS45OGwtLjA5LjI3LS4wOS0uMjdhMy4xMiAzLjEyIDAgMCAwLTEuOTgtMS45OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFya2xlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xMiAyMWEyLjA3IDIuMDcgMCAwIDEtMS45Ni0xLjRsLS44LTIuNDJhMy44IDMuOCAwIDAgMC0yLjQzLTIuNDRsLTIuNC0uNzhhMi4wOCAyLjA4IDAgMCAxLS4wMy0zLjkzbDIuNDQtLjc5YTMuODUgMy44NSAwIDAgMCAyLjM2LTIuMzhsLjgtMi40NmEyLjA3IDIuMDcgMCAwIDEgMy4xNy0xLjAzYy4zNS4yNS42Mi42Ljc2IDFsLjggMi40NGEzLjgzIDMuODMgMCAwIDAgMi40MiAyLjQzbDIuNC43OGEyLjA3IDIuMDcgMCAwIDEgLjA4IDMuOTRsLTIuNDMuOGEzLjgxIDMuODEgMCAwIDAtMi40MyAyLjQybC0uNzggMi40QTIuMDYgMi4wNiAwIDAgMSAxMiAyMVptMTEuNSA5YTEuNzUgMS43NSAwIDAgMS0xLjY0LTEuMTZsLS41NC0xLjY4YTIuMjggMi4yOCAwIDAgMC0xLjQ4LTEuNDhsLTEuNjUtLjUzYTEuNzUgMS43NSAwIDAgMS0uMDMtMy4zbDEuNjktLjU0YTIuMzIgMi4zMiAwIDAgMCAxLjQzLTEuNDdsLjU0LTEuNjVhMS43MyAxLjczIDAgMCAxIDMuMjktLjAybC41NCAxLjY3YTIuMzMgMi4zMyAwIDAgMCAxLjQ4IDEuNDdsMS42NS41NGExLjczIDEuNzMgMCAwIDEgLjA1IDMuM2wtMS42Ny41NGEyLjI3IDIuMjcgMCAwIDAtMS40NyAxLjQ3bC0uNTQgMS42NUExLjc2IDEuNzYgMCAwIDEgMjMuNSAzMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMuNCAxMy4yYy4yNS4zNi42LjYyIDEuMDEuNzZsMi40Ljc4YTMuODUgMy44NSAwIDAgMSAyLjQ0IDIuNDRsLjc5IDIuNDNhMi4wNyAyLjA3IDAgMCAwIDMuOTMtLjAzbC43OC0yLjRhMy44NyAzLjg3IDAgMCAxIDIuNDMtMi40M2wyLjQ0LS44YTIuMDggMi4wOCAwIDAgMC0uMDgtMy45M2wtMi40LS43OGEzLjgyIDMuODIgMCAwIDEtMi40NC0yLjQzbC0uOC0yLjQ0QTIuMDYgMi4wNiAwIDAgMCAxMS45NiAzYTIuMDcgMi4wNyAwIDAgMC0xLjk3IDEuNGwtLjggMi40NmEzLjg1IDMuODUgMCAwIDEtMi4zNiAyLjM4bC0yLjQ0Ljc5YTIuMDggMi4wOCAwIDAgMC0uOTkgMy4xOFpNMTIgMTlhLjA3LjA3IDAgMCAxLS4wNy0uMDRsLS43OC0yLjRhNS43NSA1Ljc1IDAgMCAwLTMuNy0zLjcxdi0uMDFsLTIuNC0uNzhBLjA4LjA4IDAgMCAxIDUgMTJhLjA4LjA4IDAgMCAxIC4wNC0uMDdsMi40Mi0uNzloLjAzYTUuODUgNS44NSAwIDAgMCAzLjU5LTMuNjJ2LS4wMmwuOC0yLjQ1czAtLjAyLjAyLS4wM2EuMTEuMTEgMCAwIDEgLjEgMGwuMDIuMDIuNzggMi40di4wMWE1LjgzIDUuODMgMCAwIDAgMy43IDMuN2wyLjQyLjc4LjA3LjA1YS4wNy4wNyAwIDAgMSAwIC4wN2wtLjAzLjAzLTIuNC43OGgtLjAxYTUuODEgNS44MSAwIDAgMC0zLjcgMy43bC0uNzcgMi4zN2EuMi4yIDAgMCAxLS4wNS4wN2wtLjAyLjAxWm0xMy42NS44NGEyLjMzIDIuMzMgMCAwIDAgMS40OCAxLjQ3bDEuNjUuNTRhMS43MyAxLjczIDAgMCAxIC4wNSAzLjNsLTEuNjcuNTRhMi4yNyAyLjI3IDAgMCAwLTEuNDcgMS40N2wtLjU0IDEuNjVBMS43NiAxLjc2IDAgMCAxIDIzLjUgMzBhMS43NSAxLjc1IDAgMCAxLTEuNjQtMS4xNmwtLjU0LTEuNjhhMi4yOCAyLjI4IDAgMCAwLTEuNDgtMS40OGwtMS42NS0uNTNhMS43NSAxLjc1IDAgMCAxLS4wMy0zLjNsMS42OS0uNTRhMi4zMiAyLjMyIDAgMCAwIDEuNDMtMS40N2wuNTQtMS42NWExLjczIDEuNzMgMCAwIDEgMy4yOS0uMDJsLjU0IDEuNjdabS44NSAzLjM3YTQuMzMgNC4zMyAwIDAgMS0yLjc0LTIuNzN2LS4wMWwtLjMtLjg4LS4yOC44OGE0LjMzIDQuMzMgMCAwIDEtMi42NyAyLjczaC0uMDJsLS45LjMuODguMjloLjAxYTQuMjggNC4yOCAwIDAgMSAyLjc0IDIuNzZsLjI4Ljg2LjI5LS44OGE0LjM2IDQuMzYgMCAwIDEgMi43NS0yLjc0bC44Ni0uMjktLjktLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTcuNDYgMzEuNTFhMi42NyAyLjY3IDAgMCAwIDQtMS4xM2wxLjIzLTMuNzdhNi4xNiA2LjE2IDAgMCAxIDMuOS0zLjlsMy42My0xLjE4YTIuNjcgMi42NyAwIDAgMCAwLTUuMDRsLTMuNy0xLjJhNi4yIDYuMiAwIDAgMS0zLjktMy44OGwtMS4xNy0zLjYzYTIuNjYgMi42NiAwIDAgMC00LjA2LTEuMjljLS40Ni4zMy0uOC43OS0xIDEuMzJsLTEuMTggMy42N2E2LjE5IDYuMTkgMCAwIDEtMy44IDMuODFsLTMuNjMgMS4xOGEyLjY3IDIuNjcgMCAwIDAgLjAzIDUuMDVsMy41OSAxLjE2YTYuMTkgNi4xOSAwIDAgMSAzLjkgMy45MWwxLjE4IDMuNjNjLjE4LjUyLjUzLjk3Ljk4IDEuMjlabTE1LjQxIDkuMTNhMS45NSAxLjk1IDAgMCAwIDIuOTctLjk3bC41OC0xLjc0YTIuNDEgMi40MSAwIDAgMSAxLjUtMS41bDEuNzktLjU5YTEuOTUgMS45NSAwIDAgMC0uMDctMy42OWwtMS43Ni0uNTZhMi4zOCAyLjM4IDAgMCAxLTEuNS0xLjVsLS41OC0xLjhhMS45MyAxLjkzIDAgMCAwLTEuNTQtMS4yNyAxLjk1IDEuOTUgMCAwIDAtMi4xNCAxLjNsLS41NyAxLjc2YTIuMzggMi4zOCAwIDAgMS0xLjQ2IDEuNWwtMS43OS41OGExLjk0IDEuOTQgMCAwIDAgLjAzIDMuNjhsMS43NS41N2EyLjM3IDIuMzcgMCAwIDEgMS41IDEuNWwuNTggMS44Yy4xNC4zNy4zOS43LjcxLjkzWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhcmtsZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFya2xlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTcuNDYgMzEuNTFhMi42NyAyLjY3IDAgMCAwIDQtMS4xM2wxLjIzLTMuNzdhNi4xNiA2LjE2IDAgMCAxIDMuOS0zLjlsMy42My0xLjE4YTIuNjcgMi42NyAwIDAgMCAwLTUuMDRsLTMuNy0xLjJhNi4yIDYuMiAwIDAgMS0zLjktMy44OGwtMS4xNy0zLjYzYTIuNjYgMi42NiAwIDAgMC00LjA2LTEuMjljLS40Ni4zMy0uOC43OS0xIDEuMzJsLTEuMTggMy42N2E2LjE5IDYuMTkgMCAwIDEtMy44IDMuODFsLTMuNjMgMS4xOGEyLjY3IDIuNjcgMCAwIDAgLjAzIDUuMDVsMy41OSAxLjE2YTYuMTkgNi4xOSAwIDAgMSAzLjkgMy45MWwxLjE4IDMuNjNjLjE4LjUyLjUzLjk3Ljk4IDEuMjlabTEuNy0yLjEyLS4wNi4wOGEuMTguMTggMCAwIDEtLjIgMCAuMi4yIDAgMCAxLS4wNS0uMDZsLTEuMTctMy42YTguNiA4LjYgMCAwIDAtNS41LTUuNWwtMy41Ny0xLjE1YS4xOC4xOCAwIDAgMS0uMDgtLjA3LjE2LjE2IDAgMCAxLS4wMy0uMWMwLS4wMy4wMS0uMDcuMDMtLjFhLjIyLjIyIDAgMCAxIC4wNS0uMDVsMy42Mi0xLjE3YTguNyA4LjcgMCAwIDAgNS4zNy01LjRsMS4yLTMuNjVhLjE3LjE3IDAgMCAxIC4xNi0uMTIuMTguMTggMCAwIDEgLjE1LjA5bDEuMTcgMy42YTguNyA4LjcgMCAwIDAgNS41IDUuNDhsMy42IDEuMTcuMDYuMDJhLjE3LjE3IDAgMCAxIC4wOS4xNWMwIC4wNC0uMDEuMDctLjAzLjFhLjI5LjI5IDAgMCAxLS4wNS4wNWwtMy42MSAxLjE3YTguNjUgOC42NSAwIDAgMC01LjQ5IDUuNWwtMS4xNiAzLjU2Wm0xMy43MSAxMS4yNWExLjk1IDEuOTUgMCAwIDAgMi45Ny0uOTdsLjU4LTEuNzRhMi40MSAyLjQxIDAgMCAxIDEuNS0xLjVsMS43OS0uNTlhMS45NSAxLjk1IDAgMCAwLS4wNy0zLjY5bC0xLjc2LS41NmEyLjM4IDIuMzggMCAwIDEtMS41LTEuNWwtLjU4LTEuOGExLjkzIDEuOTMgMCAwIDAtMS41NC0xLjI3IDEuOTUgMS45NSAwIDAgMC0yLjE0IDEuM2wtLjU3IDEuNzZhMi4zOCAyLjM4IDAgMCAxLTEuNDYgMS41bC0xLjc5LjU4YTEuOTQgMS45NCAwIDAgMCAuMDMgMy42OGwxLjc1LjU3YTIuMzcgMi4zNyAwIDAgMSAxLjUgMS41bC41OCAxLjhjLjE0LjM3LjM5LjcuNzEuOTNabS0yLjAxLTYuNi0uMTItLjA0LjE0LS4wNWE0Ljg4IDQuODggMCAwIDAgMy4wNC0zLjA5bC4wNC0uMTIuMDUuMTNhNC44NyA0Ljg3IDAgMCAwIDMuMDkgMy4wOWwuMTUuMDUtLjEyLjA0YTQuODcgNC44NyAwIDAgMC0zLjEgMy4xbC0uMDMuMTEtLjA0LS4xMmE0Ljg3IDQuODcgMCAwIDAtMy4xLTMuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVDaXJjbGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFya2xlQ2lyY2xlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDJhNiA2IDAgMSAxIDAgMTJBNiA2IDAgMCAxIDggMlptMS45IDYuM2EuNDIuNDIgMCAwIDAtLjggMGwtLjExLjM2YS41LjUgMCAwIDEtLjMzLjMzbC0uMzYuMWMtLjQuMTMtLjQuNyAwIC44MWwuMzUuMWEuNS41IDAgMCAxIC4zNC4zNGwuMS4zNmMuMTMuNC43LjQuODEgMGwuMS0uMzZhLjUuNSAwIDAgMSAuMzQtLjMzbC4zNi0uMWMuNC0uMTMuNC0uNyAwLS44MWwtLjM2LS4xYS41LjUgMCAwIDEtLjMzLS4zNGwtLjEtLjM2Wk03LjU1IDUuMzlhLjU4LjU4IDAgMCAwLTEuMSAwbC0uMTcuNDhhLjY3LjY3IDAgMCAxLS40LjRsLS41LjE4YS41OC41OCAwIDAgMCAwIDEuMWwuNS4xN2MuMTguMDcuMzMuMjIuNC40bC4xNy41Yy4xOC41LjkyLjUxIDEuMSAwbC4xNy0uNWEuNjcuNjcgMCAwIDEgLjQtLjRsLjUtLjE3YS41OC41OCAwIDAgMCAwLTEuMWwtLjUtLjE3YS42Ny42NyAwIDAgMS0uNC0uNGwtLjE3LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhcmtsZUNpcmNsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFya2xlQ2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOS45IDguM2EuNDIuNDIgMCAwIDAtLjggMGwtLjExLjM2YS41LjUgMCAwIDEtLjMzLjMzbC0uMzYuMWMtLjQuMTMtLjQuNyAwIC44MWwuMzUuMWEuNS41IDAgMCAxIC4zNC4zNGwuMS4zNmMuMTMuNC43LjQuODEgMGwuMS0uMzZhLjUuNSAwIDAgMSAuMzQtLjMzbC4zNi0uMWMuNC0uMTMuNC0uNyAwLS44MWwtLjM2LS4xYS41LjUgMCAwIDEtLjMzLS4zNGwtLjEtLjM2Wk03LjU1IDUuMzlhLjU4LjU4IDAgMCAwLTEuMSAwbC0uMTcuNDhhLjY3LjY3IDAgMCAxLS40LjRsLS41LjE4YS41OC41OCAwIDAgMCAwIDEuMWwuNS4xN2MuMTguMDcuMzMuMjIuNC40bC4xNy41Yy4xOC41LjkyLjUxIDEuMSAwbC4xNy0uNWEuNjcuNjcgMCAwIDEgLjQtLjRsLjUtLjE3YS41OC41OCAwIDAgMCAwLTEuMWwtLjUtLjE3YS42Ny42NyAwIDAgMS0uNC0uNGwtLjE3LS41Wk0yIDhhNiA2IDAgMSAxIDEyIDBBNiA2IDAgMCAxIDIgOFptNi01YTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA4IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlQ2lyY2xlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZUNpcmNsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNOC44MiA1LjU4bC4yNi43M2MuMS4yOC4zMy41LjYxLjZsLjczLjI2YS44Ny44NyAwIDAgMSAwIDEuNjVsLS43My4yNmExIDEgMCAwIDAtLjYuNjFsLS4yNy43M2EuODcuODcgMCAwIDEtMS42NSAwbC0uMjUtLjczYTEgMSAwIDAgMC0uNjEtLjZsLS43My0uMjdhLjg4Ljg4IDAgMCAxIDAtMS42NWwuNzMtLjI1YTEgMSAwIDAgMCAuNi0uNjFsLjI2LS43M2EuODcuODcgMCAwIDEgMS42NSAwWk0xMS4zMyAxMGEuNy43IDAgMCAxIDEuMzQgMGwuMTguNmMuMDguMjYuMjkuNDcuNTYuNTVsLjYuMThhLjcuNyAwIDAgMSAwIDEuMzRsLS42LjE4YS44My44MyAwIDAgMC0uNTYuNTZsLS4xOC42YS43LjcgMCAwIDEtMS4zNCAwbC0uMTgtLjZhLjgzLjgzIDAgMCAwLS41Ni0uNTZsLS41OS0uMThhLjcuNyAwIDAgMSAwLTEuMzRsLjYtLjE4YS44My44MyAwIDAgMCAuNTUtLjU2bC4xOC0uNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVDaXJjbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZUNpcmNsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwIDNhNyA3IDAgMSAwIDAgMTQgNyA3IDAgMCAwIDAtMTRabS04IDdhOCA4IDAgMSAxIDE2IDAgOCA4IDAgMCAxLTE2IDBabTUuMTctNC40MmEuODcuODcgMCAwIDEgMS42NSAwbC4yNi43M2MuMS4yOC4zMy41LjYxLjZsLjczLjI2YS44Ny44NyAwIDAgMSAwIDEuNjVsLS43My4yNmExIDEgMCAwIDAtLjYuNjFsLS4yNy43M2EuODcuODcgMCAwIDEtMS42NSAwbC0uMjUtLjczYTEgMSAwIDAgMC0uNjEtLjZsLS43My0uMjdhLjg4Ljg4IDAgMCAxIDAtMS42NWwuNzMtLjI1YTEgMSAwIDAgMCAuNi0uNjFsLjI2LS43M1ptNS41IDQuNDJhLjcuNyAwIDAgMC0xLjM0IDBsLS4xOC42YS44My44MyAwIDAgMS0uNTYuNTVsLS41OS4xOGEuNy43IDAgMCAwIDAgMS4zNGwuNi4xOGMuMjYuMDguNDcuMjkuNTUuNTZsLjE4LjZhLjcuNyAwIDAgMCAxLjM0IDBsLjE4LS42YS44My44MyAwIDAgMSAuNTYtLjU2bC42LS4xOGEuNy43IDAgMCAwIDAtMS4zNGwtLjYtLjE4YS44My44MyAwIDAgMS0uNTYtLjU2bC0uMTgtLjU5WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhcmtsZUNpcmNsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGVDaXJjbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDIyYTEwIDEwIDAgMSAwIDAtMjAgMTAgMTAgMCAwIDAgMCAyMFpNOC41NiA2LjE3YTEgMSAwIDAgMSAxLjg4IDBsLjQ2IDEuM2MuMS4yOS4zNC41Mi42NC42M2wxLjMuNDZhMSAxIDAgMCAxIDAgMS44OGwtMS4zLjQ2Yy0uMy4xLS41My4zNC0uNjQuNjRsLS40NiAxLjNhMSAxIDAgMCAxLTEuODggMGwtLjQ2LTEuM2MtLjEtLjMtLjM0LS41My0uNjQtLjY0bC0xLjMtLjQ2YTEgMSAwIDAgMSAwLTEuODhsMS4zLS40NmMuMy0uMS41NC0uMzQuNjQtLjY0bC40Ni0xLjNabTcuMzkgNi41NC4xOC42Yy4wOC4yNy4zLjQ4LjU3LjU2bC42LjE4YS45OS45OSAwIDAgMSAwIDEuOWwtLjYuMThhLjg1Ljg1IDAgMCAwLS41Ny41N2wtLjE4LjZhLjk5Ljk5IDAgMCAxLTEuOSAwbC0uMTgtLjZhLjg1Ljg1IDAgMCAwLS41Ny0uNTdsLS42LS4xOGEuOTkuOTkgMCAwIDEgMC0xLjlsLjYtLjE4Yy4yOC0uMDguNDktLjMuNTctLjU3bC4xOC0uNmEuOTkuOTkgMCAwIDEgMS45IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlQ2lyY2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGVDaXJjbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAzLjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN1pNMiAxMmExMCAxMCAwIDEgMSAyMCAwIDEwIDEwIDAgMCAxLTIwIDBabTYuNTYtNS44M2ExIDEgMCAwIDEgMS44OCAwbC40NiAxLjNjLjEuMjkuMzQuNTIuNjQuNjNsMS4zLjQ2YTEgMSAwIDAgMSAwIDEuODhsLTEuMy40NmMtLjMuMS0uNTMuMzQtLjY0LjY0bC0uNDYgMS4zYTEgMSAwIDAgMS0xLjg4IDBsLS40Ni0xLjNjLS4xLS4zLS4zNC0uNTMtLjY0LS42NGwtMS4zLS40NmExIDEgMCAwIDEgMC0xLjg4bDEuMy0uNDZjLjMtLjEuNTQtLjM0LjY0LS42NGwuNDYtMS4zWm03LjM5IDYuNTRhLjk5Ljk5IDAgMCAwLTEuOSAwbC0uMTguNmEuODUuODUgMCAwIDEtLjU3LjU2bC0uNi4xOGEuOTkuOTkgMCAwIDAgMCAxLjlsLjYuMThjLjI4LjA4LjQ5LjMuNTcuNTdsLjE4LjZhLjk5Ljk5IDAgMCAwIDEuOSAwbC4xOC0uNmMuMDgtLjI3LjMtLjQ5LjU3LS41N2wuNi0uMThhLjk5Ljk5IDAgMCAwIDAtMS45bC0uNi0uMThhLjg1Ljg1IDAgMCAxLS41Ny0uNTdsLS4xOC0uNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVDaXJjbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGFya2xlQ2lyY2xlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNCAyYTEyIDEyIDAgMSAwIDAgMjQgMTIgMTIgMCAwIDAgMC0yNFptLTMuNTYgNS43NWMuMzUtMSAxLjc3LTEgMi4xMiAwbC41MiAxLjQ2Yy4xMi4zMy4zOC42LjcyLjcxbDEuNDUuNTJjMSAuMzUgMSAxLjc3IDAgMi4xMmwtMS40NS41MWMtLjM0LjEyLS42LjM5LS43Mi43MmwtLjUyIDEuNDZjLS4zNSAxLTEuNzcgMS0yLjEyIDBsLS41MS0xLjQ1Yy0uMTItLjM0LS4zOS0uNi0uNzItLjczbC0xLjQ2LS41MWMtMS0uMzUtMS0xLjc3IDAtMi4xMmwxLjQ2LS41MmMuMzMtLjExLjYtLjM4LjcyLS43MmwuNTEtMS40NVptNy44OCA2LjgzLjQgMS4xNGMuMS4yNi4zLjQ2LjU3LjU1bDEuMTMuNGEuODcuODcgMCAwIDEgMCAxLjY1bC0xLjEzLjRjLS4yNy4xLS40Ny4zLS41Ni41NmwtLjQgMS4xNGEuODcuODcgMCAwIDEtMS42NSAwbC0uNC0xLjEzYS45Mi45MiAwIDAgMC0uNTYtLjU2bC0xLjE0LS40YS44Ny44NyAwIDAgMSAwLTEuNjVsMS4xNC0uNGMuMjYtLjEuNDYtLjMuNTYtLjU3bC40LTEuMTNhLjg3Ljg3IDAgMCAxIDEuNjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVDaXJjbGUyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZUNpcmNsZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEwLjQ0IDcuNzVjLjM1LTEgMS43Ny0xIDIuMTIgMGwuNTIgMS40NmMuMTIuMzMuMzguNi43Mi43MWwxLjQ1LjUyYzEgLjM1IDEgMS43NyAwIDIuMTJsLTEuNDUuNTFjLS4zNC4xMi0uNi4zOS0uNzIuNzJsLS41MiAxLjQ2Yy0uMzUgMS0xLjc3IDEtMi4xMiAwbC0uNTEtMS40NWMtLjEyLS4zNC0uMzktLjYtLjcyLS43M2wtMS40Ni0uNTFjLTEtLjM1LTEtMS43NyAwLTIuMTJsMS40Ni0uNTJjLjMzLS4xMS42LS4zOC43Mi0uNzJsLjUxLTEuNDVabTcuODggNi44M2EuODcuODcgMCAwIDAtMS42NCAwbC0uNCAxLjEzYy0uMS4yNy0uMy40Ny0uNTYuNTZsLTEuMTQuNGEuODcuODcgMCAwIDAgMCAxLjY1bDEuMTQuNGMuMjYuMS40Ni4zLjU2LjU3bC40IDEuMTNhLjg3Ljg3IDAgMCAwIDEuNjQgMGwuNC0xLjE0Yy4xLS4yNi4zLS40Ni41Ny0uNTVsMS4xMy0uNGEuODcuODcgMCAwIDAgMC0xLjY1bC0xLjEzLS40YS45Mi45MiAwIDAgMS0uNTYtLjU2bC0uNC0xLjE0Wk0yIDE0YTEyIDEyIDAgMSAxIDI0IDAgMTIgMTIgMCAwIDEtMjQgMFpNMTQgMy41YTEwLjUgMTAuNSAwIDEgMCAwIDIxIDEwLjUgMTAuNSAwIDAgMCAwLTIxWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhcmtsZUNpcmNsZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGVDaXJjbGUzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE2IDJhMTQgMTQgMCAxIDAgMCAyOCAxNCAxNCAwIDAgMCAwLTI4Wm0tMy44IDYuOTJhMS4zNyAxLjM3IDAgMCAxIDIuNiAwbC42MyAxLjc4Yy4xNC40LjQ3LjczLjg4Ljg3bDEuNzcuNjNhMS4zNyAxLjM3IDAgMCAxIDAgMi42bC0xLjc3LjYzYy0uNDEuMTQtLjc0LjQ2LS44OC44N2wtLjYzIDEuNzhhMS4zNyAxLjM3IDAgMCAxLTIuNiAwbC0uNjItMS43N2ExLjQ0IDEuNDQgMCAwIDAtLjg4LS44OGwtMS43OC0uNjNhMS4zNyAxLjM3IDAgMCAxIDAtMi42bDEuNzgtLjYzYy40LS4xNC43My0uNDYuODgtLjg4bC42Mi0xLjc3Wm05LjEzIDguNjYuNCAxLjE0Yy4wOS4yNi4zLjQ2LjU2LjU1bDEuMTMuNGEuODcuODcgMCAwIDEgMCAxLjY1bC0xLjEzLjRjLS4yNy4xLS40Ny4zLS41Ni41NmwtLjQgMS4xNGEuODcuODcgMCAwIDEtMS42NSAwbC0uNC0xLjEzYS45Mi45MiAwIDAgMC0uNTYtLjU2bC0xLjE0LS40YS44Ny44NyAwIDAgMSAwLTEuNjVsMS4xNC0uNGMuMjYtLjEuNDYtLjMuNTYtLjU3bC40LTEuMTNhLjg3Ljg3IDAgMCAxIDEuNjQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXJrbGVDaXJjbGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZUNpcmNsZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTEyLjIgOC45MmExLjM3IDEuMzcgMCAwIDEgMi42IDBsLjYzIDEuNzhjLjE0LjQuNDcuNzMuODguODdsMS43Ny42M2ExLjM3IDEuMzcgMCAwIDEgMCAyLjZsLTEuNzcuNjNjLS40MS4xNC0uNzQuNDYtLjg4Ljg3bC0uNjMgMS43OGExLjM3IDEuMzcgMCAwIDEtMi42IDBsLS42Mi0xLjc3YTEuNDQgMS40NCAwIDAgMC0uODgtLjg4bC0xLjc4LS42M2ExLjM3IDEuMzcgMCAwIDEgMC0yLjZsMS43OC0uNjNjLjQtLjE0LjczLS40Ni44OC0uODhsLjYyLTEuNzdabTkuMTMgOC42NmEuODcuODcgMCAwIDAtMS42NSAwbC0uNCAxLjEzYy0uMS4yNy0uMy40Ny0uNTYuNTZsLTEuMTQuNGEuODcuODcgMCAwIDAgMCAxLjY1bDEuMTQuNGMuMjYuMS40Ni4zLjU2LjU3bC40IDEuMTNhLjg3Ljg3IDAgMCAwIDEuNjQgMGwuNC0xLjE0Yy4xLS4yNi4zLS40Ni41Ny0uNTVsMS4xMy0uNGEuODcuODcgMCAwIDAgMC0xLjY1bC0xLjEzLS40YS45Mi45MiAwIDAgMS0uNTYtLjU2bC0uNC0xLjE0Wk0yIDE2YTE0IDE0IDAgMSAxIDI4IDAgMTQgMTQgMCAwIDEtMjggMFpNMTYgNGExMiAxMiAwIDEgMCAwIDI0IDEyIDEyIDAgMCAwIDAtMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlQ2lyY2xlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhcmtsZUNpcmNsZTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNNDQgMjRhMjAgMjAgMCAxIDEtNDAgMCAyMCAyMCAwIDAgMSA0MCAwWk0xNy4xMiAxMi4zM2wtLjkyIDIuNTlhMi4xIDIuMSAwIDAgMS0xLjI4IDEuMjhsLTIuNTkuOTJhMiAyIDAgMCAwIDAgMy43N2wyLjYuOTFjLjU5LjIxIDEuMDYuNjggMS4yNyAxLjI4bC45MiAyLjU5YTIgMiAwIDAgMCAzLjc3IDBsLjkxLTIuNTlhMi4xIDIuMSAwIDAgMSAxLjI4LTEuMjhsMi41OS0uOTFhMiAyIDAgMCAwIDAtMy43N2wtMi41OS0uOTJhMi4xIDIuMSAwIDAgMS0xLjI4LTEuMjhsLS45MS0yLjU5YTIgMiAwIDAgMC0zLjc3IDBaTTMxLjQyIDI1YTEuNSAxLjUgMCAwIDAtMi44MyAwbC0uNjkgMS45NGMtLjE2LjQ1LS41MS44LS45Ni45NmwtMS45NC42OWExLjUgMS41IDAgMCAwIDAgMi44MmwxLjk0LjY5Yy40NS4xNi44LjUxLjk2Ljk2TDI4LjYgMzVhMS41IDEuNSAwIDAgMCAyLjgyIDBsLjctMS45NGMuMTUtLjQ1LjUtLjguOTUtLjk2bDEuOTQtLjY5YTEuNSAxLjUgMCAwIDAgMC0yLjgybC0xLjk0LS43Yy0uNDUtLjE1LS44LS41LS45Ni0uOTVMMzEuNDEgMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGFya2xlQ2lyY2xlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXJrbGVDaXJjbGU0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNy4xMiAxMi4zM2EyIDIgMCAwIDEgMy43NyAwbC45MSAyLjZjLjIyLjU5LjY5IDEuMDYgMS4yOCAxLjI3bDIuNTkuOTJhMiAyIDAgMCAxIDAgMy43N2wtMi41OS45MWEyLjEgMi4xIDAgMCAwLTEuMjggMS4yOGwtLjkxIDIuNTlhMiAyIDAgMCAxLTMuNzcgMGwtLjkyLTIuNTlhMi4xIDIuMSAwIDAgMC0xLjI4LTEuMjhsLTIuNTktLjkxYTIgMiAwIDAgMSAwLTMuNzdsMi42LS45MmEyLjEgMi4xIDAgMCAwIDEuMjctMS4yOGwuOTItMi41OVpNMzEuNDIgMjVhMS41IDEuNSAwIDAgMC0yLjgzIDBsLS42OSAxLjk0Yy0uMTYuNDUtLjUxLjgtLjk2Ljk2bC0xLjk0LjY5YTEuNSAxLjUgMCAwIDAgMCAyLjgybDEuOTQuNjljLjQ1LjE2LjguNTEuOTYuOTZMMjguNiAzNWExLjUgMS41IDAgMCAwIDIuODIgMGwuNy0xLjk0Yy4xNS0uNDUuNS0uOC45NS0uOTZsMS45NC0uNjlhMS41IDEuNSAwIDAgMCAwLTIuODJsLTEuOTQtLjdjLS40NS0uMTUtLjgtLjUtLjk2LS45NUwzMS40MSAyNVpNNCAyNGEyMCAyMCAwIDEgMSA0MCAwIDIwIDIwIDAgMCAxLTQwIDBaTTI0IDYuNWExNy41IDE3LjUgMCAxIDAgMCAzNSAxNy41IDE3LjUgMCAwIDAgMC0zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXR1bGFTcG9vbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXR1bGFTcG9vbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC4xNCA5Ljk2IDIuNTIgMTEuNXYuMDFBMS43NSAxLjc1IDAgMSAwIDQuOTggMTR2LS4wMWwyLjItMi4zTDUuNjggMTBINC42MmEzIDMgMCAwIDEtLjQ4LS4wNFptNy4wOC0yLjIyYy4xOC0uMDguMzgtLjEzLjU5LS4xOGE2LjE2IDYuMTYgMCAwIDAgMi44LTEuNDQgMyAzIDAgMSAwLTQuMjMtNC4yNEE1Ljc1IDUuNzUgMCAwIDAgOS4yIDMuOGMuMi40LjMuODUuMyAxLjMxdjEuMDVsMS43MiAxLjU3Wk0xMSAzLjc1Yy4yOCAwIC41LjIyLjUuNSAwIC40MS4zNC43NS43NS43NWEuNS41IDAgMCAxIDAgMWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1IDAtLjI4LjIyLS41LjUtLjVaTTIuOTYgMS41OWEyIDIgMCAwIDEgMi44MyAwTDcuOTEgMy43YTIgMiAwIDAgMSAuNTkgMS40MVY2LjRjMCAuMTQuMDYuMjguMTYuMzdsNC43NSA0LjMyYTIgMiAwIDEgMS0yLjgyIDIuODNoLS4wMUw2LjI2IDkuMTdBLjUuNSAwIDAgMCA1LjkgOUg0LjYyYTIgMiAwIDAgMS0xLjQxLS41OEwxLjA5IDYuMjlhMiAyIDAgMCAxIDAtMi44MmwxLjg3LTEuODhabS40IDMuMDZhLjUuNSAwIDEgMC0uNzEuN2wxLjUgMS41YS41LjUgMCAxIDAgLjctLjdsLTEuNS0xLjVabS43OS0xLjVhLjUuNSAwIDAgMCAwIC43bDEuNSAxLjVhLjUuNSAwIDEgMCAuNy0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24xNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhdHVsYVNwb29uMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTEuMDggMi41OUE1LjE5IDUuMTkgMCAwIDAgOS45MSA0LjljLS4xMy41OS0uMzYgMS4yNi0uODggMS43NmwtLjIzLjIyLjg1Ljc3LjE4LS4yYy41LS41MSAxLjE3LS43NSAxLjc2LS44Ny45MS0uMiAxLjg2LS43MSAyLjMyLTEuMThhMiAyIDAgMCAwLTIuODMtMi44MlptLS41MiA1LjU3LS4xNy4xNyAzLjAyIDIuNzVhMiAyIDAgMSAxLTIuODIgMi44M2gtLjAxbC0yLjctMi45Nkw0Ljk5IDE0YTEuNzUgMS43NSAwIDAgMS0yLjQ3LTIuNDhoLjAxTDUuMTQgOWgtLjUyYTIgMiAwIDAgMS0xLjQxLS42TDEuMDkgNi4zYTIgMiAwIDAgMSAwLTIuODJsMS44Ny0xLjg4YTIgMiAwIDAgMSAyLjgzIDBMNy45MSAzLjdhMiAyIDAgMCAxIC41OSAxLjQxdi42NGMuMi0uMjguMzQtLjY0LjQzLTEuMDcuMjMtMS4wNi44Mi0yLjE5IDEuNDUtMi44MWEzIDMgMCAxIDEgNC4yNCA0LjI0IDYuMTYgNi4xNiAwIDAgMS0yLjgxIDEuNDRjLS41Mi4xMi0uOTYuMy0xLjI1LjZaTTYuMzMgOS4yNGwtMy4xMSAyLjk4YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMi45My0zLjA3LS44OC0uOTdaTTUuMSAyLjNhMSAxIDAgMCAwLTEuNDIgMEwxLjggNC4xN2ExIDEgMCAwIDAgMCAxLjQyTDMuOTEgNy43YTEgMSAwIDAgMCAuNzEuM0g1LjljLjQzIDAgLjgzLjE3IDEuMTEuNDhsNC4zIDQuNzJhMSAxIDAgMCAwIDEuNDEtMS40MUw4IDcuNWExLjUgMS41IDAgMCAxLS40OS0xLjFWNS4xMWExIDEgMCAwIDAtLjMtLjdMNS4xIDIuMjlaTTMuMzUgNC42NWEuNS41IDAgMSAwLS43LjdsMS41IDEuNWEuNS41IDAgMSAwIC43LS43bC0xLjUtMS41Wm0uOC0xLjVjLjItLjIuNS0uMi43IDBsMS41IDEuNWEuNS41IDAgMSAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43Wm03LjYuODVhLjUuNSAwIDAgMC0xIDBjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVhLjUuNSAwIDAgMCAwLTEgLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGF0dWxhU3Bvb24yMEZpbGxlZCcsIFwiMjBcIiwgW1wibTYuNCAxMi0yLjggMi41OGgtLjAxYTIgMiAwIDAgMCAyLjgyIDIuODNoLjAxbDIuNjgtMi45Mkw3LjAxIDEySDYuNFptNi45NC0yLjAzYy4zMi0uMi43My0uMyAxLjItLjM3YTYuNTMgNi41MyAwIDAgMCAzLjQ0LTEuNjMgMy41IDMuNSAwIDEgMC00Ljk1LTQuOTQgNi41MyA2LjUzIDAgMCAwLTEuNjMgMy40NGMtLjA2LjQ3LS4xOS45LS40IDEuMjNWOGwyLjM0IDEuOTZabS4xNi00LjQ3Yy4yOCAwIC41LjIyLjUuNWExIDEgMCAwIDAgMSAxIC41LjUgMCAwIDEgMCAxIDIgMiAwIDAgMS0yLTJjMC0uMjguMjItLjUuNS0uNVpNMy45NiAyLjU5YTIgMiAwIDAgMSAyLjgzIDBMOS40MSA1LjJBMiAyIDAgMCAxIDEwIDYuNjJ2MS42M2MwIC4xNC4wNy4yOC4xOC4zOGw2LjA3IDUuMDkuMDIuMDFhMi41IDIuNSAwIDEgMS0zLjU0IDMuNTRsLS4wMS0uMDItNS4wOS02LjA3YS41LjUgMCAwIDAtLjM4LS4xOEg1LjYyYTIgMiAwIDAgMS0xLjQxLS41OUwxLjU5IDcuOGEyIDIgMCAwIDEgMC0yLjgzTDMuOTYgMi42Wk0zLjQgNi4xNWEuNS41IDAgMCAwIDAgLjdsMiAyYS41LjUgMCAxIDAgLjctLjdsLTItMmEuNS41IDAgMCAwLS43IDBaTTUuODUgNC40YS41LjUgMCAxIDAtLjcuN2wyIDJhLjUuNSAwIDEgMCAuNy0uN2wtMi0yWlwiXSk7XG5leHBvcnQgY29uc3QgU3BhdHVsYVNwb29uMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXR1bGFTcG9vbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMDkgMy4zYTEgMSAwIDAgMC0xLjQyIDBMMi4zIDUuNjZhMSAxIDAgMCAwIDAgMS40Mkw0LjkxIDkuN2ExIDEgMCAwIDAgLjcxLjI5aDEuNjNjLjQ0IDAgLjg2LjIgMS4xNS41NGw1LjA1IDYuMDNhMS41IDEuNSAwIDAgMCAyLjEyLTIuMTJMOS41NCA5LjRBMS41IDEuNSAwIDAgMSA5IDguMjVWNi42MmExIDEgMCAwIDAtLjMtLjdMNi4xIDMuMjhabS0yLjEzLS43MWEyIDIgMCAwIDEgMi44MyAwTDkuNDEgNS4yQTIgMiAwIDAgMSAxMCA2LjYydjEuNjNjMCAuMTIuMDQuMjMuMTIuMzJsLjY0LS41OWMuMzctLjMzLjU1LS44OC42NC0xLjUxYTYuNTMgNi41MyAwIDAgMSAxLjYzLTMuNDQgMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTQgNi41MyA2LjUzIDAgMCAxLTMuNDUgMS42M2MtLjYzLjA5LTEuMTguMjctMS41Mi42NGwtLjQuNDMgMy42NCAzLjA1LjAyLjAxYTIuNSAyLjUgMCAxIDEtMy41NCAzLjU0bC0uMDEtLjAyLTIuOTQtMy41LTMuMzYgMy42NmEyIDIgMCAwIDEtMi44My0yLjgydi0uMDFsMy44NS0zLjU0YS41LjUgMCAwIDAtLjItLjA0SDUuNjNhMiAyIDAgMCAxLTEuNDEtLjU5TDEuNTkgNy44YTIgMiAwIDAgMSAwLTIuODNMMy45NiAyLjZabTcuODkgNy40NC40My0uNDZhMy40NSAzLjQ1IDAgMCAxIDIuMTItLjk2IDUuNTQgNS41NCAwIDAgMCAyLjg3LTEuMzQgMi41IDIuNSAwIDAgMC0zLjU0LTMuNTRjLS42LjYtMS4xOSAxLjc5LTEuMzQgMi44Ny0uMS43LS4zMyAxLjU0LS45NSAyLjEybC0uNTUuNS45Ni44MVptLTMuNzMgMS43NEw0LjMgMTUuM0ExIDEgMCAwIDAgNS43IDE2LjdsMy40NC0zLjczLTEuMDItMS4yMVpNNC4zNSA2LjE1YS41LjUgMCAxIDAtLjcuN0w1LjQgOC42YS41LjUgMCAxIDAgLjctLjdMNC4zNSA2LjE1Wm0uOC0xLjVjLjItLjIuNS0uMi43IDBMNy42IDYuNGEuNS41IDAgMSAxLS43LjdMNS4xNSA1LjM1YS41LjUgMCAwIDEgMC0uN1pNMTQgNmEuNS41IDAgMCAwLTEgMGMwIDEuMS45IDIgMiAyYS41LjUgMCAwIDAgMC0xIDEgMSAwIDAgMS0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGF0dWxhU3Bvb24yNEZpbGxlZCcsIFwiMjRcIiwgW1wibTExLjExIDE3LjE2LTIuMjMtMi41N2EuMjUuMjUgMCAwIDAtLjE5LS4wOUg3LjJsLTMuNDUgMy4yMnYuMDFhMi41IDIuNSAwIDAgMCAzLjUzIDMuNTR2LS4wMWwzLjg0LTQuMVpNMTYgMTEuOTdjLjMtLjIxLjczLS4zMyAxLjI0LS4zNiAxLjYyLS4xIDMuNDEtLjkgNC40NS0xLjkzYTQuNSA0LjUgMCAxIDAtNi4zNi02LjM2Yy0uOS45LTEuNjEgMi4zNS0xLjg1IDMuNzcuMDIuMTYuMDMuMzMuMDMuNDl2Mi4xMWMwIC4wNy4wMy4xNC4wOS4xOWwyLjQgMi4xWk0xNi4yNSA2Yy40MSAwIC43NS4zNC43NS43NSAwIC42OS41NiAxLjI1IDEuMjUgMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjUgMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wk00Ljk4IDIuOGEyLjc1IDIuNzUgMCAwIDEgMy44OSAwbDIuODIgMi44M2MuNTIuNTIuOCAxLjIyLjggMS45NXYyLjExYzAgLjM2LjE3LjcuNDQuOTVsNy4xNyA2LjIyLjAyLjAyYTMgMyAwIDEgMS00LjI0IDQuMjRsLS4wMi0uMDItNi4yMy03LjE3YTEuMjUgMS4yNSAwIDAgMC0uOTQtLjQzaC0yLjFjLS43NCAwLTEuNDQtLjI5LTEuOTUtLjhMMS44IDkuODdhMi43NSAyLjc1IDAgMCAxIDAtMy45bDMuMTctMy4xNlptMi4zIDIuMTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41YS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTIuNS0yLjVaTTMuOTcgNy4yMmMtLjMuMy0uMy43NyAwIDEuMDZsMi41IDIuNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMC0xLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhdHVsYVNwb29uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuMzggNC4zOGE1Ljg5IDUuODkgMCAwIDAtMS41IDMuNDggMy41NSAzLjU1IDAgMCAxLS45OSAyLjQzbC0uNjUuNjEuOTIuOC41NS0uNmEzLjU1IDMuNTUgMCAwIDEgMi40My0uOTkgNS44OSA1Ljg5IDAgMCAwIDMuNDgtMS40OSAzIDMgMCAxIDAtNC4yNC00LjI0Wm0tLjU3IDcuNzUtLjUyLjU2IDQuODEgNC4xNy4wMi4wMmEzIDMgMCAxIDEtNC4yNCA0LjI0bC0uMDItLjAyLTQuMDYtNC42OC00LjUyIDQuODRoLS4wMWEyLjUgMi41IDAgMCAxLTMuNTQtMy41M2guMDFsNC41Mi00LjIzSDYuNThjLS43MyAwLTEuNDMtLjI5LTEuOTQtLjhMMS44IDkuODdhMi43NSAyLjc1IDAgMCAxIDAtMy45bDMuMTctMy4xNmEyLjc1IDIuNzUgMCAwIDEgMy44OSAwbDIuODIgMi44MmMuNTIuNTIuOCAxLjIyLjggMS45NXYxLjk2bC4zOC0uMzVjLjMxLS4zLjQ4LS43OS41Mi0xLjQyLjEtMS42Mi45LTMuNDIgMS45My00LjQ1YTQuNSA0LjUgMCAwIDEgNi4zNiA2LjM2IDcuMzcgNy4zNyAwIDAgMS00LjQ1IDEuOTNjLS42My4wNC0xLjEzLjItMS40Mi41MlpNOS44IDE0LjEyIDQuNzkgMTguOGExIDEgMCAwIDAgMS40IDEuNDFsNC42Mi00LjkzLTEuMDEtMS4xNlptLTItMTAuMjVhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMEwyLjg3IDcuMDRhMS4yNSAxLjI1IDAgMCAwIDAgMS43N2wyLjgzIDIuODJjLjIzLjI0LjU1LjM3Ljg4LjM3SDguN2MuOCAwIDEuNTUuMzUgMi4wOC45NWw2LjE4IDcuMTNhMS41IDEuNSAwIDAgMCAyLjEzLTIuMTJsLTcuMTMtNi4yQTIuNzUgMi43NSAwIDAgMSAxMSA5LjdWNy41OGMwLS4zMy0uMTMtLjY1LS4zNy0uODhMNy44IDMuODdabS0uMjcgMS42YS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMiAyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZsLTItMlptLTMuMDYgMmMuMy0uMy43Ny0uMyAxLjA2IDBsMiAyYS43NS43NSAwIDEgMS0xLjA2IDEuMDZsLTItMmEuNzUuNzUgMCAwIDEgMC0xLjA2Wm0xMy4wMy0uNzJhLjc1Ljc1IDAgMCAwLTEuNSAwQzE2IDcuOTkgMTcgOSAxOC4yNSA5YS43NS43NSAwIDAgMCAwLTEuNS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3BhdHVsYVNwb29uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhdHVsYVNwb29uMjhGaWxsZWQnLCBcIjI4XCIsIFtcIm0xMy4xMSAxOS42LTIuMjctMi42NmExLjI1IDEuMjUgMCAwIDAtLjk1LS40NEg4LjcybC00LjgxIDQuMzUtLjAzLjAzYTMgMyAwIDEgMCA0LjI3IDQuMjFsNC45Ni01LjQ5Wm01LjItNS43NC0yLjM3LTIuMDJhMS4yNSAxLjI1IDAgMCAxLS40NC0uOTV2LS43NGMuMDgtLjIuMTMtLjQyLjE2LS42Ni4xMi0xLjExLjUyLTIuMzEgMS4wMy0zLjM3LjUtMS4wNSAxLjE0LTIuMDIgMS43Ny0yLjY2YTUgNSAwIDEgMSA3LjA3IDcuMDhjLS42My42My0xLjYgMS4yNi0yLjY1IDEuNzctMS4wNS41LTIuMjUuOS0zLjM2IDEuMDMtLjU0LjA2LS45Ni4yNC0xLjIyLjUyWm0uNDQtNi4zNmEuNzUuNzUgMCAwIDAtLjc1Ljc1QTIuNzUgMi43NSAwIDAgMCAyMC43NSAxMWEuNzUuNzUgMCAwIDAgMC0xLjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NVpNNi4wOSAyLjhhMi43NSAyLjc1IDAgMCAxIDMuODggMGwzLjczIDMuNzNjLjUxLjUxLjggMS4yMS44IDEuOTR2Mi40MmMwIC42Ni4yOSAxLjI5Ljc5IDEuNzFsOC42NiA3LjQuMDIuMDJhMy41IDMuNSAwIDEgMS00Ljk1IDQuOTVsLS4wMi0uMDItNy40LTguNjZhMi4yNSAyLjI1IDAgMCAwLTEuNzEtLjc5SDcuNDhjLS43MyAwLTEuNDMtLjI5LTEuOTUtLjhsLTMuNzItMy43MmEyLjc1IDIuNzUgMCAwIDEgMC0zLjlsNC4yOC00LjI3Wm0yLjQ0IDIuNjdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwzIDNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMy0zWm0tNC4wNiAzYy0uMy4zLS4zLjc3IDAgMS4wNmwzIDNhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNmwtMy0zYS43NS43NSAwIDAgMC0xLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhdHVsYVNwb29uMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTkuNTIgNC41M2E4LjU4IDguNTggMCAwIDAtMS40OCAyLjI0Yy0uNDUuOTUtLjggMS45OS0uODkgMi44OGEzLjM3IDMuMzcgMCAwIDEtMSAyLjE3bC0uODcuNzggMS4yMSAxLjAzLjctLjc3Yy42LS42NiAxLjQzLS45MyAyLjE2LTEuMDEuOS0uMSAxLjkzLS40NCAyLjg4LS45Ljk2LS40NSAxLjc3LTEgMi4yNC0xLjQ4YTMuNSAzLjUgMCAwIDAtNC45NS00Ljk0Wm0tMS4yMiA5LjMzLS42Ny43NCA2LjMyIDUuNC4wMi4wMmEzLjUgMy41IDAgMSAxLTQuOTUgNC45NWwtLjAyLS4wMi01LjIxLTYuMS01LjY0IDYuMjQtLjAzLjAzYTMgMyAwIDEgMS00LjIxLTQuMjdsNS45Mi01LjM1SDcuNDhjLS43MyAwLTEuNDMtLjI5LTEuOTUtLjhsLTMuNzItMy43MmEyLjc1IDIuNzUgMCAwIDEgMC0zLjlsNC4yOC00LjI3YTIuNzUgMi43NSAwIDAgMSAzLjg4IDBsMy43MyAzLjcyYy41MS41MS44IDEuMjEuOCAxLjk0djIuNDJsLjAzLjM2LjYtLjU1Yy4zLS4yNS40Ny0uNjguNTMtMS4yMS4xMi0xLjExLjUyLTIuMzEgMS4wMy0zLjM3LjUtMS4wNSAxLjE0LTIuMDIgMS43Ny0yLjY2YTUgNSAwIDEgMSA3LjA3IDcuMDhjLS42My42My0xLjYgMS4yNi0yLjY1IDEuNzctMS4wNS41LTIuMjUuOS0zLjM2IDEuMDMtLjU0LjA2LS45Ni4yNC0xLjIyLjUyWm0tNi43IDIuNDNhMi4yNCAyLjI0IDAgMCAwLS4xOS0uMmwtNi40OCA1Ljg2YTEuNSAxLjUgMCAwIDAgMi4xMiAyLjEybDUuNzYtNi4zNy0xLjItMS40MVpNOC45MSAzLjg3YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDBMMi44NyA4LjE1YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzZsMy43MiAzLjczYy4yNC4yMy41NS4zNi44OS4zNmgyLjQxYzEuMSAwIDIuMTQuNDggMi44NSAxLjMybDcuMzYgOC42MWEyIDIgMCAwIDAgMi44My0yLjgzbC04LjYyLTcuMzZhMy43NSAzLjc1IDAgMCAxLTEuMy0yLjg1VjguNDdjMC0uMzMtLjE0LS42NS0uMzgtLjg4TDguOTEgMy44N1ptLS4zOCAyLjFhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVabS0zLjU2IDIuNWMuMy0uMy43Ny0uMyAxLjA2IDBsMi41IDIuNWEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0yLjUtMi41YS43NS43NSAwIDAgMSAwLTEuMDZaTTIwIDcuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwIDIuNzUgMi43NSAwIDAgMCAyLjc1IDIuNzUuNzUuNzUgMCAwIDAgMC0xLjVDMjAuNTYgOSAyMCA4LjQ0IDIwIDcuNzVaTTQuOTQgMjQuMDZsLS41My41My41My0uNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24zMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGF0dWxhU3Bvb24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTEwLjEgMTguNSA0LjA2IDI0bC0uMDMuMDNBMy41IDMuNSAwIDEgMCA5IDI4Ljk0bDUuNzgtNi4zNi0zLjUyLTQuMDhIMTAuMVptNy40LTYuODZ2LjYzbDMuNzkgMy4yN2MuMjItLjEyLjUtLjIuODUtLjIxIDEuMy0uMDYgMi43LS40NyAzLjk0LTEuMDNhMTAuOSAxMC45IDAgMCAwIDMuMTYtMi4wNiA2IDYgMCAwIDAtOC40OC04LjQ4Yy0uNzguNzctMS41MSAxLjkzLTIuMDYgMy4xNmExMS4zIDExLjMgMCAwIDAtMS4wMyAzLjk0Yy0uMDEuMzEtLjA3LjU3LS4xNy43OFptNC0zLjY0YTEgMSAwIDAgMSAxIDFjMCAuODMuNjcgMS41IDEuNSAxLjVhMSAxIDAgMSAxIDAgMkEzLjUgMy41IDAgMCAxIDIwLjUgOWExIDEgMCAwIDEgMS0xWk01LjkzIDMuMTdhNCA0IDAgMCAxIDUuNjYgMGwzLjI0IDMuMjRBNCA0IDAgMCAxIDE2IDkuMjR2My43MWwxMS44IDEwLjIuMDMuMDJhNCA0IDAgMCAxLTUuNjYgNS42NmwtLjAyLS4wM0wxMS45NSAxN2gtMy43YTQgNCAwIDAgMS0yLjg0LTEuMTdsLTMuMjQtMy4yNGE0IDQgMCAwIDEgMC01LjY2bDMuNzYtMy43NlpNOS43IDYuM2ExIDEgMCAwIDAtMS40MiAxLjQybDIuMjUgMi4yNWExIDEgMCAwIDAgMS40Mi0xLjQyTDkuNyA2LjNabS00LjQyIDNhMSAxIDAgMCAwIDAgMS40MmwyLjI1IDIuMjVhMSAxIDAgMCAwIDEuNDItMS40Mkw2LjcgOS4zYTEgMSAwIDAgMC0xLjQyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGF0dWxhU3Bvb24zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BhdHVsYVNwb29uMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTAuMTcgNC41OWEyIDIgMCAwIDAtMi44MyAwTDMuNiA4LjM0YTIgMiAwIDAgMCAwIDIuODNsMy4yNCAzLjI0YTIgMiAwIDAgMCAxLjQxLjU5SDEyYy40NiAwIDEgLjE2IDEuNC42MmwxMC4yIDExLjgyYTIgMiAwIDAgMCAyLjg0LTIuODNMMTQuNjIgMTQuNGMtLjQ2LS40LS42Mi0uOTQtLjYyLTEuNFY5LjI0YTIgMiAwIDAgMC0uNTktMS40MWwtMy4yNC0zLjI0Wk01LjkzIDMuMTdhNCA0IDAgMCAxIDUuNjYgMGwzLjI0IDMuMjRBNCA0IDAgMCAxIDE2IDkuMjR2My43MWwuMS4wOSAxLjE1LTEuMDVjLjI0LS4yMi40LS42LjQyLTEuMTMuMDYtMS4zLjQ3LTIuNyAxLjAzLTMuOTRhMTAuOTEgMTAuOTEgMCAwIDEgMi4wNi0zLjE2IDYgNiAwIDAgMSA4LjQ4IDguNDggMTAuOSAxMC45IDAgMCAxLTMuMTYgMi4wNiAxMS4zIDExLjMgMCAwIDEtMy45NCAxLjAzYy0uNTMuMDItLjkyLjE4LTEuMTMuNDJsLS43OC44NiA3LjU3IDYuNTQuMDMuMDJhNCA0IDAgMCAxLTUuNjYgNS42NmwtLjAyLS4wMy02LjM0LTcuMzNMOSAyOC45NEEzLjUgMy41IDAgMSAxIDQuMDYgMjRMMTEuNzQgMTdoLTMuNWE0IDQgMCAwIDEtMi44My0xLjE3bC0zLjI0LTMuMjRhNCA0IDAgMCAxIDAtNS42NmwzLjc2LTMuNzZaTTE4LjcyIDE1LjNsLjgtLjlhMy41OCAzLjU4IDAgMCAxIDIuNTMtMS4wNyA5LjMyIDkuMzIgMCAwIDAgMy4yMS0uODUgOC45NiA4Ljk2IDAgMCAwIDIuNTctMS42NSA0IDQgMCAxIDAtNS42Ni01LjY2IDguOTYgOC45NiAwIDAgMC0xLjY1IDIuNTcgOS4zMiA5LjMyIDAgMCAwLS44NSAzLjIxYy0uMDQuODQtLjMgMS44Mi0xLjA4IDIuNTJsLS45Ny44OCAxLjEuOTVabS01LjU1IDMuMS03Ljc1IDcuMDVhMS41IDEuNSAwIDAgMCAyLjEzIDIuMTNsNi45NC03LjY0LTEuMzItMS41M1pNOS43IDYuM2ExIDEgMCAwIDAtMS40MiAxLjRsMi4yNSAyLjI2YTEgMSAwIDAgMCAxLjQyLTEuNDJMOS43IDYuM1ptLTQuNDIgM2ExIDEgMCAwIDEgMS40MiAwbDIuMjUgMi4yNGExIDEgMCAxIDEtMS40MiAxLjQyTDUuMyAxMC43YTEgMSAwIDAgMSAwLTEuNDJaTTIzIDlhMSAxIDAgMSAwLTIgMCAzIDMgMCAwIDAgMyAzIDEgMSAwIDEgMCAwLTIgMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXR1bGFTcG9vbjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwYXR1bGFTcG9vbjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjIuMTkgMzQuOTIgMTYuMzIgMjhoLTEuNDVsLTcuMjIgNi41Ny0uMDQuMDRhNS41IDUuNSAwIDEgMCA3LjgyIDcuNzRsNi43Ni03LjQzWm0xMC41Mi0xMC45LTYuNy01LjdWMTcuMmwuMDQtLjM2Yy4xNi0xLjg4Ljc4LTMuODkgMS42LTUuNjZhMTYuMDYgMTYuMDYgMCAwIDEgMi45OS00LjUzIDkgOSAwIDEgMSAxMi43MiAxMi43MiAxNi4wNiAxNi4wNiAwIDAgMS00LjUzIDMgMTcuNjQgMTcuNjQgMCAwIDEtNS42NiAxLjU5Yy0uMTYuMDEtLjMxLjAzLS40Ni4wN1pNMzEuMjUgMTNjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1QTUuNzUgNS43NSAwIDAgMCAzNS43NSAyMGExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMy4yNSAzLjI1IDAgMCAxLTMuMjUtMy4yNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVaTTkuOCA1LjM4YTUuMjUgNS4yNSAwIDAgMSA3LjI2LjE2bDUuNCA1LjRBNS4yNSA1LjI1IDAgMCAxIDI0IDE0LjY2djMuNzhjMCAuNTIuMjMgMSAuNjIgMS4zNGwxNS40NCAxMy4wOS4wMy4wM2E2LjUgNi41IDAgMCAxLTkuMTkgOS4ybC0uMDMtLjA0LTEzLjEtMTUuNDRjLS4zMy0uNC0uODItLjYyLTEuMzMtLjYyaC0zLjI4Yy0xLjQgMC0yLjczLS41NS0zLjcxLTEuNTRsLTUuOTEtNS45YTUuMjUgNS4yNSAwIDAgMSAuMTYtNy42bDYuMS01LjU4Wm0uMzMgOC45OWExLjI1IDEuMjUgMCAwIDAtMS43NiAxLjc2bDQgNGExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2bC00LTRabTIuMjQtNGExLjI1IDEuMjUgMCAwIDAgMCAxLjc2bDQgNGExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2bC00LTRhMS4yNSAxLjI1IDAgMCAwLTEuNzYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwYXR1bGFTcG9vbjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGF0dWxhU3Bvb240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0xNS4zIDcuM2EyLjc1IDIuNzUgMCAwIDAtMy44MS0uMDhsLTYuMSA1LjZhMi43NSAyLjc1IDAgMCAwLS4wOCAzLjk2bDUuOSA1LjkxYy41Mi41MiAxLjIyLjgxIDEuOTUuODFoMy4yOGMxLjI0IDAgMi40My41NSAzLjI0IDEuNUwzMi43IDQwLjM2YTQgNCAwIDAgMCA1LjY2LTUuNjVMMjMgMjEuNjhjLS45NS0uOC0xLjUtMS45OS0xLjUtMy4yNHYtMy43OGMwLS43My0uMjktMS40My0uOC0xLjk1bC01LjQtNS40Wk05LjggNS4zOWE1LjI1IDUuMjUgMCAwIDEgNy4yNi4xNmw1LjQgNS40QTUuMjUgNS4yNSAwIDAgMSAyNCAxNC42NnYzLjc4YzAgLjM1LjExLjcuMy45OGwxLjA2LS45NmMuMzgtLjM1LjYzLS45Mi43LTEuNjMuMTUtMS44OC43Ny0zLjg5IDEuNTgtNS42NmExNi4wNiAxNi4wNiAwIDAgMSAzLTQuNTMgOSA5IDAgMSAxIDEyLjcyIDEyLjcyIDE2LjA2IDE2LjA2IDAgMCAxLTQuNTMgMyAxNy42NCAxNy42NCAwIDAgMS01LjY2IDEuNTljLS43MS4wNi0xLjI4LjMtMS42My42OWwtLjUxLjU3IDkuMDMgNy42Ni4wMy4wM2E2LjUgNi41IDAgMCAxLTkuMTkgOS4ybC0uMDMtLjA0LTcuMzItOC42My04LjEyIDguOTItLjA0LjA0YTUuNSA1LjUgMCAxIDEtNy43NC03LjgybDkuMzMtOC40OGExLjc1IDEuNzUgMCAwIDAtLjU0LS4wOWgtMy4yOGMtMS40IDAtMi43My0uNTUtMy43MS0xLjU0bC01LjkxLTUuOWE1LjI1IDUuMjUgMCAwIDEgLjE2LTcuNmw2LjEtNS41OFptMTkuMzIgMTguMi41Ny0uNjJjLjktLjk5IDIuMTMtMS40IDMuMjYtMS41IDEuNTMtLjE0IDMuMjUtLjY1IDQuODQtMS4zOCAxLjYtLjczIDIuOTYtMS42MyAzLjgtMi40OGE2LjUgNi41IDAgMCAwLTkuMTktOS4yYy0uODUuODUtMS43NSAyLjIyLTIuNDggMy44MWExNS4xNiAxNS4xNiAwIDAgMC0xLjM4IDQuODQgNC45MiA0LjkyIDAgMCAxLTEuNSAzLjI2bC0uODYuNzggMi45NCAyLjVabS0xMC4zMyA0LjI0TDkuMzYgMzYuNGEzIDMgMCAwIDAgNC4yNCA0LjI0bDguMzItOS4xNC0zLjEzLTMuNjhaTTMzLjUgMTMuNzVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwYzAgMi45IDIuMzUgNS4yNSA1LjI1IDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41IDIuNzUgMi43NSAwIDAgMS0yLjc1LTIuNzVabS0yNS4xMy42MmExLjI1IDEuMjUgMCAwIDEgMS43NiAwbDQgNGExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2bC00LTRhMS4yNSAxLjI1IDAgMCAxIDAtMS43NlptNS43Ni00YTEuMjUgMS4yNSAwIDAgMC0xLjc2IDEuNzZsNCA0YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZsLTQtNFptMTYuNS0zLjczLjg5Ljg4LS44OC0uODhaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIwMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk05IDIuNWEuNS41IDAgMCAwLS44NS0uMzZMNS4yMiA1SDMuNUMyLjY3IDUgMiA1LjY2IDIgNi41djNjMCAuODIuNjcgMS41IDEuNSAxLjVoMS43MmwyLjkzIDIuODdBLjUuNSAwIDAgMCA5IDEzLjV2LTExWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjAxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjcgMi4wNGMuMTguMDguMy4yNi4zLjQ2djExYS41LjUgMCAwIDEtLjg1LjM2bC0yLjkzLTIuODhIMy41QTEuNSAxLjUgMCAwIDEgMiA5LjQ4VjYuNUMyIDUuNjYgMi42NyA1IDMuNSA1aDEuNzJsMi45My0yLjg1YS41LjUgMCAwIDEgLjU0LS4xWk04IDMuNjkgNS43OCA1Ljg1YS41LjUgMCAwIDEtLjM1LjE0SDMuNWEuNS41IDAgMCAwLS41LjV2M2MwIC4yNy4yMi41LjUuNWgxLjkzYS41LjUgMCAwIDEgLjM1LjEzTDggMTIuMzFWMy42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg3IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM1LjEzbDMuODcgMy42YTEgMSAwIDAgMCAxLjY4LS43NFYzLjAxWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjAyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44OCAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNC4xM2wzLjg4IDMuNmExIDEgMCAwIDAgMS42OC0uNzRWMy4wMVpNNy4xMiA2LjYgMTEgM3YxNGwtMy44OC0zLjZBMS41IDEuNSAwIDAgMCA2LjEgMTNIMy41YS41LjUgMCAwIDEtLjUtLjV2LTVjMC0uMjguMjItLjUuNS0uNWgyLjZjLjM4IDAgLjc1LS4xNCAxLjAyLS40WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQuNyAzLjQ0Yy4yLjIzLjMuNTEuMy44djE1LjUxYTEuMjUgMS4yNSAwIDAgMS0yLjA2Ljk1bC00Ljk2LTQuMkg0LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNC41QzIgOC41IDMgNy41IDQuMjUgNy41aDMuNzNsNC45Ni00LjJhMS4yNSAxLjI1IDAgMCAxIDEuNzYuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0LjcgMy40NGMuMi4yMy4zLjUxLjMuOHYxNS41MWExLjI1IDEuMjUgMCAwIDEtMi4wNi45NWwtNC45Ni00LjJINC4yNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTQuNUMyIDguNSAzIDcuNSA0LjI1IDcuNWgzLjczbDQuOTYtNC4yYTEuMjUgMS4yNSAwIDAgMSAxLjc2LjE0Wk0xMy41IDQuOGwtNC45OCA0LjJINC4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc2djQuNWMwIC40MS4zNC43NS43NS43NWg0LjI3bDQuOTggNC4yMVY0Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjAyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuNCAzLjljLjgtLjc1IDIuMS0uMTggMi4xLjkxdjE4LjM3YzAgMS4xLTEuMyAxLjY2LTIuMS45MmwtNC45NC00LjYzYy0uMzMtLjMtLjc1LS40Ny0xLjItLjQ3SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTUuNzV2LTMuNWMwLTEuNzkgMS40Ni0zLjI0IDMuMjUtMy4yNGgzLjAxYy40NSAwIC44Ny0uMTcgMS4yLS40OGw0LjkzLTQuNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE2LjUgNC44MWMwLTEuMDktMS4zLTEuNjYtMi4xLS45TDkuNDUgOC41MmMtLjMzLjMtLjc1LjQ4LTEuMi40OEg1LjI1QTMuMjUgMy4yNSAwIDAgMCAyIDEyLjI2djMuNDlDMiAxNy41NSAzLjQ2IDE5IDUuMjUgMTloMy4wMWMuNDUgMCAuODcuMTcgMS4yLjQ3bDQuOTQgNC42M2MuOC43NCAyLjEuMTggMi4xLS45MlY0LjgxWm0tNi4wMiA0LjgyTDE1IDUuMzl2MTcuMjJsLTQuNTItNC4yM2MtLjYtLjU3LTEuNC0uODgtMi4yMi0uODhINS4yNWMtLjk3IDAtMS43NS0uNzktMS43NS0xLjc1di0zLjVjMC0uOTYuNzgtMS43NCAxLjc1LTEuNzRoMy4wMWMuODMgMCAxLjYyLS4zMiAyLjIyLS44OFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIwMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjAzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE4IDUuNDNhMS41IDEuNSAwIDAgMC0yLjY1LS45N0wxMS4yNyA5LjNhMiAyIDAgMCAxLTEuNTMuNzFINmE0IDQgMCAwIDAtNCA0djRhNCA0IDAgMCAwIDQgNGgzLjc0YTIgMiAwIDAgMSAxLjUzLjdsNC4wOCA0Ljg0YTEuNSAxLjUgMCAwIDAgMi42NS0uOTdWNS40M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIwMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIwMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTUuODcgNC43MkExLjI1IDEuMjUgMCAwIDEgMTggNS42djIwLjhhMS4yNSAxLjI1IDAgMCAxLTIuMTMuODhsLTQuNy00LjdBMiAyIDAgMCAwIDkuNzYgMjJINmE0IDQgMCAwIDEtNC00di00YTQgNCAwIDAgMSA0LTRoMy43NmEyIDIgMCAwIDAgMS40MS0uNTlsNC43LTQuN1ptLjEzIDIuNy0zLjQxIDMuNEE0IDQgMCAwIDEgOS43NiAxMkg2YTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDMuNzZhNCA0IDAgMCAxIDIuODMgMS4xN0wxNiAyNC42VjcuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIwNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjA0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1LjA4IDYuNDJBMS43NSAxLjc1IDAgMCAxIDI4IDcuNzJ2MzIuNTZjMCAxLjUxLTEuOCAyLjMxLTIuOTIgMS4zbC04LjItNy4zNmMtLjg4LS43OS0yLTEuMjItMy4xOC0xLjIySDlhNS4yNSA1LjI1IDAgMCAxLTUuMjUtNS4yNXYtNy41QzMuNzUgMTcuMzUgNi4xIDE1IDkgMTVoNC43YzEuMTcgMCAyLjMtLjQzIDMuMTgtMS4yMWw4LjItNy4zN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIwNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIwNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjUuMDggNi40MkExLjc1IDEuNzUgMCAwIDEgMjggNy43MnYzMi41NmMwIDEuNTEtMS44IDIuMzEtMi45MiAxLjNsLTguMi03LjM2Yy0uODgtLjc5LTItMS4yMi0zLjE4LTEuMjJIOWE1LjI1IDUuMjUgMCAwIDEtNS4yNS01LjI1di03LjVDMy43NSAxNy4zNSA2LjEgMTUgOSAxNWg0LjdjMS4xNyAwIDIuMy0uNDMgMy4xOC0xLjIxbDguMi03LjM3Wm0uNDIgMi45OC02Ljk1IDYuMjVhNy4yNSA3LjI1IDAgMCAxLTQuODUgMS44NUg5YTIuNzUgMi43NSAwIDAgMC0yLjc1IDIuNzV2Ny41QTIuNzUgMi43NSAwIDAgMCA5IDMwLjVoNC43YzEuNzkgMCAzLjUxLjY2IDQuODUgMS44Nmw2Ljk1IDYuMjRWOS40WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjExNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSAyLjVhLjUuNSAwIDAgMC0uODUtLjM2TDUuMjIgNUgzLjVDMi42NyA1IDIgNS42NiAyIDYuNXYzYzAgLjgyLjY3IDEuNSAxLjUgMS41aDEuNzJsMi45MyAyLjg3QS41LjUgMCAwIDAgOSAxMy41di0xMVptMS4xMSAyLjY5YS41LjUgMCAwIDEgLjctLjA4aC4wMWwuMDIuMDJhMS42IDEuNiAwIDAgMSAuMTkuMThjLjEuMTIuMjYuMy40LjU0LjMuNDguNTcgMS4yLjU3IDIuMTVhNC4xIDQuMSAwIDAgMS0uOTcgMi42OSAyLjUgMi41IDAgMCAxLS4yLjJoLS4wMXMtLjQ1LjI0LS43LS4wOGEuNS41IDAgMCAxIC4wNy0uN2wuMDItLjAxLjA4LS4wOWMuMDgtLjA4LjE4LS4yLjI5LS4zOC4yLS4zNS40Mi0uODguNDItMS42M2EzLjA5IDMuMDkgMCAwIDAtLjctMiAxLjUyIDEuNTIgMCAwIDAtLjExLS4xMS41LjUgMCAwIDEtLjA4LS43Wm0uMDguN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIxMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIxMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC43IDIuMDRjLjE4LjA4LjMuMjYuMy40NnYxMWEuNS41IDAgMCAxLS44NS4zNmwtMi45My0yLjg4SDMuNUExLjUgMS41IDAgMCAxIDIgOS40OFY2LjVDMiA1LjY2IDIuNjcgNSAzLjUgNWgxLjcybDIuOTMtMi44NWEuNS41IDAgMCAxIC41NC0uMVpNOCAzLjY5IDUuNzggNS44NWEuNS41IDAgMCAxLS4zNS4xNEgzLjVhLjUuNSAwIDAgMC0uNS41djNjMCAuMjcuMjIuNS41LjVoMS45M2EuNS41IDAgMCAxIC4zNS4xM0w4IDEyLjMxVjMuNjlabTIuMTEgMS41YS41LjUgMCAwIDEgLjctLjA4aC4wMWwuMDIuMDJhMS42IDEuNiAwIDAgMSAuMTkuMThjLjEuMTIuMjYuMy40LjU0LjMuNDguNTcgMS4yLjU3IDIuMTVhNC4xIDQuMSAwIDAgMS0uOTcgMi42OSAyLjUgMi41IDAgMCAxLS4yLjJoLS4wMXMtLjQ1LjI0LS43LS4wOGEuNS41IDAgMCAxIC4wNy0uN2wuMDItLjAxLjA4LS4wOWMuMDgtLjA4LjE4LS4yLjI5LS4zOC4yLS4zNS40Mi0uODguNDItMS42M2EzLjA5IDMuMDkgMCAwIDAtLjctMiAxLjUyIDEuNTIgMCAwIDAtLjExLS4xMS41LjUgMCAwIDEtLjA4LS43Wm0uMDguN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIxMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjEyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg3IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM1LjEzbDMuODcgMy42YTEgMSAwIDAgMCAxLjY4LS43NFYzLjAxWm0yLjA4IDkuOTNhLjUuNSAwIDAgMS0uMTktLjY4IDQuNSA0LjUgMCAwIDAgMC00LjUuNS41IDAgMSAxIC44Ny0uNSA1LjUgNS41IDAgMCAxIDAgNS41LjUuNSAwIDAgMS0uNjguMThaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEyIDNhMSAxIDAgMCAwLTEuNjgtLjczbC0zLjg4IDMuNkEuNS41IDAgMCAxIDYuMSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM0LjEzbDMuODggMy42YTEgMSAwIDAgMCAxLjY4LS43NFYzLjAxWk03LjEyIDYuNiAxMSAzdjE0bC0zLjg4LTMuNkExLjUgMS41IDAgMCAwIDYuMSAxM0gzLjVhLjUuNSAwIDAgMS0uNS0uNXYtNWMwLS4yOC4yMi0uNS41LS41aDIuNmMuMzggMCAuNzUtLjE0IDEuMDItLjRabTYuOTYgNi4zM2EuNS41IDAgMCAxLS4xOC0uNjggNC41IDQuNSAwIDAgMCAwLTQuNS41LjUgMCAxIDEgLjg2LS41IDUuNSA1LjUgMCAwIDEgMCA1LjUuNS41IDAgMCAxLS42OC4xOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIxMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjEyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE0LjcgMy40NGMuMi4yMy4zLjUxLjMuODF2MTUuNWExLjI1IDEuMjUgMCAwIDEtMi4wNi45Nkw3Ljk4IDE2LjVINC4yNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTQuNUMyIDguNTEgMyA3LjUgNC4yNSA3LjVoMy43M2w0Ljk2LTQuMmExLjI1IDEuMjUgMCAwIDEgMS43Ni4xNFptMi40IDUuMmEuNzUuNzUgMCAwIDEgMS4wMy4yNWMuNTguOTQuODcgMiAuODcgMy4xNCAwIDEuMTUtLjMgMi4yLS44NyAzLjE0YS43NS43NSAwIDEgMS0xLjI4LS43OGMuNDMtLjcuNjUtMS40OC42NS0yLjM2IDAtLjg4LS4yMi0xLjY2LS42NS0yLjM2YS43NS43NSAwIDAgMSAuMjUtMS4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIxMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIxMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTQuNyAzLjQ0Yy4yLjIzLjMuNTEuMy44MXYxNS41YTEuMjUgMS4yNSAwIDAgMS0yLjA2Ljk2TDcuOTggMTYuNUg0LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNC41QzIgOC41MSAzIDcuNSA0LjI1IDcuNWgzLjczbDQuOTYtNC4yYTEuMjUgMS4yNSAwIDAgMSAxLjc2LjE0Wk0xMy41IDQuOCA4LjUyIDlINC4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djQuNWMwIC40MS4zNC43NS43NS43NWg0LjI3bDQuOTggNC4yMVY0LjhabTMuNiAzLjg1YS43NS43NSAwIDAgMSAxLjAzLjI1Yy41OC45NC44NyAyIC44NyAzLjE0IDAgMS4xNS0uMyAyLjItLjg3IDMuMTRhLjc1Ljc1IDAgMSAxLTEuMjgtLjc4Yy40My0uNy42NS0xLjQ4LjY1LTIuMzYgMC0uODgtLjIyLTEuNjYtLjY1LTIuMzZhLjc1Ljc1IDAgMCAxIC4yNS0xLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjEyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuNCAzLjljLjgtLjc1IDIuMS0uMTggMi4xLjkxdjE4LjM3YzAgMS4xLTEuMyAxLjY2LTIuMS45MmwtNC45NC00LjYzYy0uMzMtLjMtLjc1LS40Ny0xLjItLjQ3SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTUuNzV2LTMuNWMwLTEuNzkgMS40Ni0zLjI0IDMuMjUtMy4yNGgzLjAxYy40NSAwIC44Ny0uMTcgMS4yLS40OGw0LjkzLTQuNjNabTUuOTUgNC40YS43NS43NSAwIDEgMC0xLjIuOSA3Ljk2IDcuOTYgMCAwIDEgMCA5LjYuNzUuNzUgMCAxIDAgMS4yLjkgOS40NiA5LjQ2IDAgMCAwIDAtMTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIxMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIxMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTYuNSA0LjgxYzAtMS4wOS0xLjMtMS42Ni0yLjEtLjlMOS40NSA4LjUyYy0uMzMuMy0uNzUuNDgtMS4yLjQ4SDUuMjVBMy4yNSAzLjI1IDAgMCAwIDIgMTIuMjZ2My40OUMyIDE3LjU1IDMuNDYgMTkgNS4yNSAxOWgzLjAxYy40NSAwIC44Ny4xNyAxLjIuNDdsNC45NCA0LjYzYy44Ljc0IDIuMS4xOCAyLjEtLjkyVjQuODFabS02LjAyIDQuODJMMTUgNS4zOXYxNy4yMmwtNC41Mi00LjIzYy0uNi0uNTctMS40LS44OC0yLjIyLS44OEg1LjI1Yy0uOTcgMC0xLjc1LS43OS0xLjc1LTEuNzV2LTMuNWMwLS45Ni43OC0xLjc0IDEuNzUtMS43NGgzLjAxYy44MyAwIDEuNjItLjMyIDIuMjItLjg4Wm05Ljg3LTEuMzNhLjc1Ljc1IDAgMSAwLTEuMi45IDcuOTYgNy45NiAwIDAgMSAwIDkuNi43NS43NSAwIDAgMCAxLjIuOSA5LjQ2IDkuNDYgMCAwIDAgMC0xMS40WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjEzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTUuMzUgNC40NmExLjUgMS41IDAgMCAxIDIuNjUuOTd2MjEuMTRhMS41IDEuNSAwIDAgMS0yLjY1Ljk3bC00LjA4LTQuODNBMiAyIDAgMCAwIDkuNzQgMjJINmE0IDQgMCAwIDEtNC00di00YTQgNCAwIDAgMSA0LTRoMy43NGEyIDIgMCAwIDAgMS41My0uN2w0LjA4LTQuODRabTcuNDcgNC45N2ExIDEgMCAxIDAtMS42NCAxLjE0QTkuNTQgOS41NCAwIDAgMSAyMy4wNiAxNmMwIDEuNzYtLjYgMy41Ni0xLjg4IDUuNDNhMSAxIDAgMCAwIDEuNjQgMS4xNEExMS41MyAxMS41MyAwIDAgMCAyNS4wNiAxNmMwLTIuMjQtLjc3LTQuNDQtMi4yNC02LjU3WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjEzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjEzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNS44NyA0LjcyQTEuMjUgMS4yNSAwIDAgMSAxOCA1LjZ2MjAuOGExLjI1IDEuMjUgMCAwIDEtMi4xMy44OGwtNC43LTQuN0EyIDIgMCAwIDAgOS43NiAyMkg2YTQgNCAwIDAgMS00LTR2LTRhNCA0IDAgMCAxIDQtNGgzLjc2YTIgMiAwIDAgMCAxLjQxLS41OWw0LjctNC43Wm0uMTMgMi43LTMuNDEgMy40QTQgNCAwIDAgMSA5Ljc2IDEySDZhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDJoMy43NmE0IDQgMCAwIDEgMi44MyAxLjE3TDE2IDI0LjZWNy40Wm01LjQzIDEuNzZhMSAxIDAgMCAxIDEuNC4yNUExMS41MyAxMS41MyAwIDAgMSAyNS4wNSAxNmMwIDIuMjQtLjc3IDQuNDQtMi4yNCA2LjU3YTEgMSAwIDEgMS0xLjY0LTEuMTRBOS41NCA5LjU0IDAgMCAwIDIzLjA2IDE2YzAtMS43Ni0uNi0zLjU2LTEuODgtNS40M2ExIDEgMCAwIDEgLjI1LTEuNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIxNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjE0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1LjA4IDYuNDJBMS43NSAxLjc1IDAgMCAxIDI4IDcuNzJ2MzIuNTZjMCAxLjUxLTEuOCAyLjMxLTIuOTIgMS4zbC04LjItNy4zNmMtLjg4LS43OS0yLTEuMjItMy4xOC0xLjIySDlhNS4yNSA1LjI1IDAgMCAxLTUuMjUtNS4yNXYtNy41QzMuNzUgMTcuMzUgNi4xIDE1IDkgMTVoNC43YzEuMTcgMCAyLjMtLjQzIDMuMTgtMS4yMWw4LjItNy4zN1ptNy4yNSA3Ljk4Yy40Ny0uNSAxLjI2LS41NCAxLjc3LS4wN2wuMDYuMDctLjA2LS4wNi4wMi4wMmEyLjYyIDIuNjIgMCAwIDEgLjE4LjE3Yy4xMi4xMi4yNy4zLjQ1LjUxYTEzLjk4IDEzLjk4IDAgMCAxLS41OSAxOC41NmwtLjAxLjAyLS4wMy4wM2gtLjAxdi4wMXMuMzktLjQgMCAwYTEuMjUgMS4yNSAwIDAgMS0xLjcxLTEuODJsLjAxLS4wMmE0LjU3IDQuNTcgMCAwIDAgLjQzLS40NyAxMS40OCAxMS40OCAwIDAgMC0uNDMtMTUuMTdsLS4wMS0uMDJhMS4yNSAxLjI1IDAgMCAxLS4wNy0xLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjE0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjE0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNS4wOCA2LjQyQTEuNzUgMS43NSAwIDAgMSAyOCA3LjcydjMyLjU2YzAgMS41MS0xLjggMi4zMS0yLjkyIDEuM2wtOC4yLTcuMzZjLS44OC0uNzktMi0xLjIyLTMuMTgtMS4yMkg5YTUuMjUgNS4yNSAwIDAgMS01LjI1LTUuMjV2LTcuNUMzLjc1IDE3LjM1IDYuMSAxNSA5IDE1aDQuN2MxLjE3IDAgMi4zLS40MyAzLjE4LTEuMjFsOC4yLTcuMzdabS40MiAyLjk4LTYuOTUgNi4yNWE3LjI1IDcuMjUgMCAwIDEtNC44NSAxLjg1SDlhMi43NSAyLjc1IDAgMCAwLTIuNzUgMi43NXY3LjVBMi43NSAyLjc1IDAgMCAwIDkgMzAuNWg0LjdjMS43OSAwIDMuNTEuNjYgNC44NSAxLjg2bDYuOTUgNi4yNFY5LjRabTYuODMgNWMuNDctLjUgMS4yNi0uNTQgMS43Ny0uMDd2LjAxbC4wMi4wMmEzLjEzIDMuMTMgMCAwIDEgLjE4LjE3Yy4xMi4xMi4yNy4zLjQ1LjUxYTEzLjk4IDEzLjk4IDAgMCAxLS41OSAxOC41NmwtLjAxLjAyLS4wMy4wM2gtLjAxdi4wMWExLjI1IDEuMjUgMCAwIDEtMS43MS0xLjgybC4wMS0uMDJhNC4yIDQuMiAwIDAgMCAuNDMtLjQ3IDExLjQ4IDExLjQ4IDAgMCAwLS40My0xNS4xN2wtLjAxLS4wMmExLjI1IDEuMjUgMCAwIDEtLjA3LTEuNzZabTEuNzctLjA3LjA2LjA3YS40NS40NSAwIDAgMS0uMDYtLjA3WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSAyLjVhLjUuNSAwIDAgMC0uODUtLjM2TDUuMjIgNUgzLjVDMi42NyA1IDIgNS42NiAyIDYuNXYzYzAgLjgyLjY3IDEuNSAxLjUgMS41aDEuNzJsMi45MyAyLjg3QS41LjUgMCAwIDAgOSAxMy41di0xMVptMS4xMSAyLjY5YS41LjUgMCAwIDEgLjctLjA4aC4wMWwuMDIuMDJhMS42IDEuNiAwIDAgMSAuMTkuMThjLjEuMTIuMjYuMy40LjU0LjMuNDguNTcgMS4yLjU3IDIuMTVhNC4xIDQuMSAwIDAgMS0uOTcgMi42OSAyLjUgMi41IDAgMCAxLS4yLjJoLS4wMXMtLjQ1LjI0LS43LS4wOGEuNS41IDAgMCAxIC4wNy0uN2wuMDItLjAxLjA4LS4wOWMuMDgtLjA4LjE4LS4yLjI5LS4zOC4yLS4zNS40Mi0uODguNDItMS42M2EzLjA5IDMuMDkgMCAwIDAtLjctMiAxLjUyIDEuNTIgMCAwIDAtLjExLS4xMS41LjUgMCAwIDEtLjA4LS43Wm0xLjctMi4wOGEuNS41IDAgMSAwLS42Mi43OGwuMDEuMDFhMi4wNSAyLjA1IDAgMCAxIC4yNS4yNEE1LjUyIDUuNTIgMCAwIDEgMTMgOGE1LjUyIDUuNTIgMCAwIDEtMS44IDQuMWgtLjAxYS41LjUgMCAwIDAgLjYyLjhsLjA0LS4wNGEzLjA5IDMuMDkgMCAwIDAgLjMyLS4zQTYuNDggNi40OCAwIDAgMCAxNCA4YTYuNTQgNi41NCAwIDAgMC0yLjE1LTQuODZsLS4wMy0uMDJWMy4xWk0xMC4yIDUuODlaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTguNyAyLjA0Yy4xOC4wOC4zLjI2LjMuNDZ2MTFhLjUuNSAwIDAgMS0uODUuMzZsLTIuOTMtMi44OEgzLjVBMS41IDEuNSAwIDAgMSAyIDkuNDhWNi41QzIgNS42NiAyLjY3IDUgMy41IDVoMS43MmwyLjkzLTIuODVhLjUuNSAwIDAgMSAuNTQtLjFaTTggMy42OSA1Ljc4IDUuODVhLjUuNSAwIDAgMS0uMzUuMTRIMy41YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI3LjIyLjUuNS41aDEuOTNhLjUuNSAwIDAgMSAuMzUuMTNMOCAxMi4zMVYzLjY5Wm0yLjExIDEuNWEuNS41IDAgMCAxIC43LS4wOGguMDFsLjAyLjAyYTEuNiAxLjYgMCAwIDEgLjE5LjE4Yy4xLjEyLjI2LjMuNC41NC4zLjQ4LjU3IDEuMi41NyAyLjE1YTQuMSA0LjEgMCAwIDEtLjk3IDIuNjkgMi41IDIuNSAwIDAgMS0uMi4yaC0uMDFzLS40NS4yNC0uNy0uMDhhLjUuNSAwIDAgMSAuMDctLjdsLjAyLS4wMS4wOC0uMDljLjA4LS4wOC4xOC0uMi4yOS0uMzguMi0uMzUuNDItLjg4LjQyLTEuNjNhMy4wOSAzLjA5IDAgMCAwLS43LTIgMS41MiAxLjUyIDAgMCAwLS4xMS0uMTEuNS41IDAgMCAxLS4wOC0uN1ptMS43LTIuMDhhLjUuNSAwIDEgMC0uNjIuNzhsLjAxLjAxYTIuMDUgMi4wNSAwIDAgMSAuMjUuMjRBNS41MiA1LjUyIDAgMCAxIDEzIDhhNS41MiA1LjUyIDAgMCAxLTEuOCA0LjFoLS4wMWEuNS41IDAgMCAwIC42Mi44bC4wNC0uMDRhMy4wOSAzLjA5IDAgMCAwIC4zMi0uM0E2LjQ4IDYuNDggMCAwIDAgMTQgOGE2LjU0IDYuNTQgMCAwIDAtMi4xNS00Ljg2bC0uMDMtLjAyVjMuMVpNMTAuMiA1Ljg5WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODcgMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzUuMTNsMy44NyAzLjZhMSAxIDAgMCAwIDEuNjgtLjc0VjMuMDFabTMuMjUgMS42M2EuNS41IDAgMCAxIC43MS4wNCA4IDggMCAwIDEgMCAxMC42Ni41LjUgMCAxIDEtLjc1LS42NiA3IDcgMCAwIDAgMC05LjM0LjUuNSAwIDAgMSAuMDQtLjdabS0xLjE3IDguM2EuNS41IDAgMCAxLS4xOS0uNjggNC41IDQuNSAwIDAgMCAwLTQuNS41LjUgMCAxIDEgLjg3LS41IDUuNSA1LjUgMCAwIDEgMCA1LjUuNS41IDAgMCAxLS42OC4xOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODggMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzQuMTNsMy44OCAzLjZhMSAxIDAgMCAwIDEuNjgtLjc0VjMuMDFaTTcuMTIgNi42IDExIDN2MTRsLTMuODgtMy42QTEuNSAxLjUgMCAwIDAgNi4xIDEzSDMuNWEuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVoMi42Yy4zOCAwIC43NS0uMTQgMS4wMi0uNFptOC4xNC0xLjk3YS41LjUgMCAwIDEgLjcuMDQgOCA4IDAgMCAxIDAgMTAuNjYuNS41IDAgMCAxLS43NC0uNjYgNyA3IDAgMCAwIDAtOS4zNC41LjUgMCAwIDEgLjA0LS43Wm0tMS4xOCA4LjNhLjUuNSAwIDAgMS0uMTgtLjY4IDQuNSA0LjUgMCAwIDAgMC00LjUuNS41IDAgMSAxIC44Ni0uNSA1LjUgNS41IDAgMCAxIDAgNS41LjUuNSAwIDAgMS0uNjguMThaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNSA0LjI1djE1LjVhMS4yNSAxLjI1IDAgMCAxLTIuMDguOTNsLTQuNS00YS43NS43NSAwIDAgMC0uNDktLjE4SDQuMjVDMy4wMSAxNi41IDIgMTUuNDkgMiAxNC4yNXYtNC41QzIgOC41IDMgNy41IDQuMjUgNy41aDMuNjhjLjE4IDAgLjM2LS4wNy41LS4xOWw0LjQ5LTRjLjgtLjcxIDIuMDgtLjE0IDIuMDguOTRabTQgMS42NWEuNzUuNzUgMCAwIDEgMS4wNC4xNSA5Ljk2IDkuOTYgMCAwIDEgMCAxMS45Ljc1Ljc1IDAgMCAxLTEuMi0uOSA4LjQ2IDguNDYgMCAwIDAgMC0xMC4xLjc1Ljc1IDAgMCAxIC4xNS0xLjA1Wm0tMS44NiAyLjQ3YS43NS43NSAwIDAgMSAxLjAyLjMgNi45NyA2Ljk3IDAgMCAxIDAgNi42Ni43NS43NSAwIDAgMS0xLjMyLS43MiA1LjQ3IDUuNDcgMCAwIDAgMC01LjIyLjc1Ljc1IDAgMCAxIC4zLTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1IDQuMjVhMS4yNSAxLjI1IDAgMCAwLTIuMDgtLjkzTDguNDIgNy4zYS43NS43NSAwIDAgMS0uNDkuMTlINC4yNUMzLjAxIDcuNSAyIDguNSAyIDkuNzV2NC41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDMuNjhjLjE4IDAgLjM2LjA2LjUuMTlsNC40OSAzLjk5Yy44LjcyIDIuMDguMTQgMi4wOC0uOTNWNC4yNVpNOS40MiA4LjQzbDQuMDgtMy42MnYxNC4zOGwtNC4wOC0zLjYzQTIuMjUgMi4yNSAwIDAgMCA3LjkzIDE1SDQuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTQuNWMwLS40Mi4zNC0uNzUuNzUtLjc1aDMuNjhjLjU1IDAgMS4wOC0uMiAxLjUtLjU3Wk0xOSA1LjlhLjc1Ljc1IDAgMCAxIDEuMDUuMTUgOS45NiA5Ljk2IDAgMCAxIDAgMTEuOS43NS43NSAwIDEgMS0xLjItLjkgOC40NiA4LjQ2IDAgMCAwIDAtMTAuMS43NS43NSAwIDAgMSAuMTUtMS4wNVptLTEuODUgMi40N2EuNzUuNzUgMCAwIDEgMS4wMi4zIDYuOTcgNi45NyAwIDAgMSAwIDYuNjYuNzUuNzUgMCAwIDEtMS4zMi0uNzIgNS40NyA1LjQ3IDAgMCAwIDAtNS4yMi43NS43NSAwIDAgMSAuMy0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjIyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyMjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuNCAzLjljLjgtLjc1IDIuMS0uMTggMi4xLjkxdjE4LjM3YzAgMS4xLTEuMyAxLjY2LTIuMS45MmwtNC45NC00LjYzYy0uMzMtLjMtLjc1LS40Ny0xLjItLjQ3SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTUuNzV2LTMuNWMwLTEuNzkgMS40Ni0zLjI0IDMuMjUtMy4yNGgzLjAxYy40NSAwIC44Ny0uMTcgMS4yLS40OGw0LjkzLTQuNjNabTcuMjQgMS4yOGEuNzUuNzUgMCAwIDEgMS4wNi4wNyAxMy4yIDEzLjIgMCAwIDEgMCAxNy41Ljc1Ljc1IDAgMSAxLTEuMTItMSAxMS43IDExLjcgMCAwIDAgMC0xNS41Ljc1Ljc1IDAgMCAxIC4wNi0xLjA3Wk0yMC4zNSA4LjNhLjc1Ljc1IDAgMSAwLTEuMi45IDcuOTYgNy45NiAwIDAgMSAwIDkuNi43NS43NSAwIDEgMCAxLjIuOSA5LjQ2IDkuNDYgMCAwIDAgMC0xMS40WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjIyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjIyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNi41IDQuODFjMC0xLjA5LTEuMy0xLjY2LTIuMS0uOUw5LjQ1IDguNTJjLS4zMy4zLS43NS40OC0xLjIuNDhINS4yNUEzLjI1IDMuMjUgMCAwIDAgMiAxMi4yNnYzLjQ5QzIgMTcuNTUgMy40NiAxOSA1LjI1IDE5aDMuMDFjLjQ1IDAgLjg3LjE3IDEuMi40N2w0Ljk0IDQuNjNjLjguNzQgMi4xLjE4IDIuMS0uOTJWNC44MVptLTYuMDIgNC44MkwxNSA1LjM5djE3LjIybC00LjUyLTQuMjNjLS42LS41Ny0xLjQtLjg4LTIuMjItLjg4SDUuMjVjLS45NyAwLTEuNzUtLjc5LTEuNzUtMS43NXYtMy41YzAtLjk2Ljc4LTEuNzQgMS43NS0xLjc0aDMuMDFjLjgzIDAgMS42Mi0uMzIgMi4yMi0uODhaTTIyLjcgNS4yNWEuNzUuNzUgMCAwIDAtMS4xMiAxIDExLjcgMTEuNyAwIDAgMSAwIDE1LjUuNzUuNzUgMCAxIDAgMS4xMiAxIDEzLjIgMTMuMiAwIDAgMCAwLTE3LjVaTTIwLjM1IDguM2EuNzUuNzUgMCAxIDAtMS4yLjkgNy45NiA3Ljk2IDAgMCAxIDAgOS42Ljc1Ljc1IDAgMCAwIDEuMi45IDkuNDYgOS40NiAwIDAgMCAwLTExLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyMjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIyMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xOCA1LjQzYTEuNSAxLjUgMCAwIDAtMi42NS0uOTdMMTEuMjcgOS4zYTIgMiAwIDAgMS0xLjUzLjcxSDZhNCA0IDAgMCAwLTQgNHY0YTQgNCAwIDAgMCA0IDRoMy43NGEyIDIgMCAwIDEgMS41My43bDQuMDggNC44NGExLjUgMS41IDAgMCAwIDIuNjUtLjk3VjUuNDNabTMuNDMgMy43NWExIDEgMCAwIDEgMS40LjI1QTExLjUzIDExLjUzIDAgMCAxIDI1LjA1IDE2YzAgMi4yNC0uNzcgNC40NC0yLjI0IDYuNTdhMSAxIDAgMSAxLTEuNjQtMS4xNEE5LjU0IDkuNTQgMCAwIDAgMjMuMDYgMTZjMC0xLjc2LS42LTMuNTYtMS44OC01LjQzYTEgMSAwIDAgMSAuMjUtMS40Wm00LjI2LTMuOWExIDEgMCAwIDAtMS4zOCAxLjQ0QzI2LjcgOSAyNy45NCAxMi40NiAyNy45NCAxNmMwIDMuNTQtMS4yNCA3LTMuNjMgOS4yOGExIDEgMCAwIDAgMS4zOCAxLjQ0QzI4LjU1IDI0IDI5Ljk0IDE5Ljk2IDI5Ljk0IDE2YzAtMy45Ni0xLjM5LTgtNC4yNS0xMC43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIyMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXIyMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTggNS42YTEuMjUgMS4yNSAwIDAgMC0yLjEzLS44OGwtNC43IDQuN2EyIDIgMCAwIDEtMS40MS41OEg2YTQgNCAwIDAgMC00IDR2NGE0IDQgMCAwIDAgNCA0aDMuNzZhMiAyIDAgMCAxIDEuNDEuNTlsNC43IDQuN2MuNzguNzggMi4xMy4yMiAyLjEzLS45VjUuNlptLTUuNDEgNS4yM0wxNiA3LjRWMjQuNmwtMy40MS0zLjQyQTQgNCAwIDAgMCA5Ljc2IDIwSDZhMiAyIDAgMCAxLTItMnYtNGMwLTEuMS45LTIgMi0yaDMuNzZhNCA0IDAgMCAwIDIuODMtMS4xN1ptMTAuMjMtMS40YTEgMSAwIDEgMC0xLjY0IDEuMTRBOS41NCA5LjU0IDAgMCAxIDIzLjA2IDE2YzAgMS43Ni0uNiAzLjU2LTEuODggNS40M2ExIDEgMCAxIDAgMS42NCAxLjE0QTExLjUzIDExLjUzIDAgMCAwIDI1LjA2IDE2YzAtMi4yNC0uNzctNC40NC0yLjI0LTYuNTdabTIuODctNC4xNWExIDEgMCAwIDAtMS4zOCAxLjQ0QzI2LjcgOSAyNy45NCAxMi40NiAyNy45NCAxNmMwIDMuNTQtMS4yNCA3LTMuNjMgOS4yOGExIDEgMCAxIDAgMS4zOCAxLjQ0QzI4LjU1IDI0IDI5Ljk0IDE5Ljk2IDI5Ljk0IDE2YzAtMy45Ni0xLjM5LTgtNC4yNS0xMC43MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXIyNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjI0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1LjA4IDYuNDJBMS43NSAxLjc1IDAgMCAxIDI4IDcuNzJ2MzIuNTZjMCAxLjUxLTEuOCAyLjMxLTIuOTIgMS4zbC04LjItNy4zNmMtLjg4LS43OS0yLTEuMjItMy4xOC0xLjIySDlhNS4yNSA1LjI1IDAgMCAxLTUuMjUtNS4yNXYtNy41QzMuNzUgMTcuMzUgNi4xIDE1IDkgMTVoNC43YzEuMTcgMCAyLjMtLjQzIDMuMTgtMS4yMWw4LjItNy4zN1pNMzYuMzQgOC40Yy40Ny0uNSAxLjI2LS41MyAxLjc2LS4wNmguMDJjLS4zNS0uMzQtLjAxIDAtLjAxIDBsLjAyLjAzYTUuMzcgNS4zNyAwIDAgMSAuMjcuMjYgMjAuNCAyMC40IDAgMCAxIDIuNyAzLjc5QTIzLjc2IDIzLjc2IDAgMCAxIDQ0IDI0YzAgNS4wNS0xLjQ1IDguOTQtMi45IDExLjU4YTIwLjQxIDIwLjQxIDAgMCAxLTIuOSA0bC0uMDcuMDYtLjAyLjAxdi4wMXMuNjYtLjY2IDAgMGExLjI1IDEuMjUgMCAwIDEtMS43Mi0xLjgyIDMuMjYgMy4yNiAwIDAgMCAuMTktLjE5IDE3LjkgMTcuOSAwIDAgMCAyLjMzLTMuMjhDNDAuMiAzMi4wMyA0MS41IDI4LjU1IDQxLjUgMjRjMC00LjU1LTEuMy04LjAzLTIuNi0xMC4zN2ExNy45IDE3LjkgMCAwIDAtMi41LTMuNDYgMS4yNSAxLjI1IDAgMCAxLS4wNi0xLjc3Wm0tNCA2Yy40Ni0uNSAxLjI1LS41NCAxLjc2LS4wN2wuMDYuMDctLjA2LS4wNi4wMi4wMmEyLjYyIDIuNjIgMCAwIDEgLjE4LjE3Yy4xMi4xMi4yNy4zLjQ1LjUxYTEzLjk4IDEzLjk4IDAgMCAxLS41OSAxOC41NmwtLjAxLjAyLS4wMy4wM2gtLjAxdi4wMXMuMzktLjQgMCAwYTEuMjUgMS4yNSAwIDAgMS0xLjcxLTEuODJsLjAxLS4wMmE0LjU3IDQuNTcgMCAwIDAgLjQzLS40NyAxMS40OCAxMS40OCAwIDAgMC0uNDMtMTUuMTdsLS4wMS0uMDJhMS4yNSAxLjI1IDAgMCAxLS4wNy0xLjc2WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlcjI0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlcjI0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yNS4wOCA2LjQyQTEuNzUgMS43NSAwIDAgMSAyOCA3LjcydjMyLjU2YzAgMS41MS0xLjggMi4zMS0yLjkyIDEuM2wtOC4yLTcuMzZjLS44OC0uNzktMi0xLjIyLTMuMTgtMS4yMkg5YTUuMjUgNS4yNSAwIDAgMS01LjI1LTUuMjV2LTcuNUMzLjc1IDE3LjM1IDYuMSAxNSA5IDE1aDQuN2MxLjE3IDAgMi4zLS40MyAzLjE4LTEuMjFsOC4yLTcuMzdabS40MiAyLjk4LTYuOTUgNi4yNWE3LjI1IDcuMjUgMCAwIDEtNC44NSAxLjg1SDlhMi43NSAyLjc1IDAgMCAwLTIuNzUgMi43NXY3LjVBMi43NSAyLjc1IDAgMCAwIDkgMzAuNWg0LjdjMS43OSAwIDMuNTEuNjYgNC44NSAxLjg2bDYuOTUgNi4yNFY5LjRabTEwLjg0LTFjLjQ3LS41IDEuMjYtLjUzIDEuNzYtLjA2IDAgMC0uMzMtLjM0LjAyIDBsLjAxLjAzYTYuMSA2LjEgMCAwIDEgLjI3LjI2IDIwLjQgMjAuNCAwIDAgMSAyLjcgMy43OUEyMy43NiAyMy43NiAwIDAgMSA0NCAyNGMwIDUuMDUtMS40NSA4Ljk0LTIuOSAxMS41OGEyMC40MSAyMC40MSAwIDAgMS0yLjkgNGwtLjA3LjA2LS4wMS4wMWgtLjAxdi4wMWwuMjItLjIyLS4yMy4yMmExLjI1IDEuMjUgMCAwIDEtMS43LTEuODIgNS4wMyA1LjAzIDAgMCAwIC4xOC0uMTkgMTcuOTEgMTcuOTEgMCAwIDAgMi4zMy0zLjI4QzQwLjIgMzIuMDMgNDEuNSAyOC41NSA0MS41IDI0YzAtNC41NS0xLjMtOC4wMy0yLjYtMTAuMzdhMTcuOTEgMTcuOTEgMCAwIDAtMi41LTMuNDYgMS4yNSAxLjI1IDAgMCAxLS4wNi0xLjc3Wm0tNCA2YTEuMjUgMS4yNSAwIDAgMSAxLjc2LS4wNmwuMDIuMDJhMy4xMyAzLjEzIDAgMCAxIC4xOC4xN2MuMTIuMTIuMjcuMy40NS41MWExMy45OCAxMy45OCAwIDAgMS0uNTkgMTguNTZsLS4wMS4wMi0uMDMuMDNoLS4wMXYuMDFhMS4yNSAxLjI1IDAgMCAxLTEuNzEtMS44MmwuMDEtLjAyYTQuMiA0LjIgMCAwIDAgLjQzLS40NyAxMS40OCAxMS40OCAwIDAgMC0uNDMtMTUuMTdsLS4wMS0uMDJhMS4yNSAxLjI1IDAgMCAxLS4wNy0xLjc2Wm01Ljc4LTYuMDUtLjAxLS4wMVptLTQuMDIgNS45OC4wNi4wN2EuNDUuNDUgMCAwIDEtLjA2LS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGgyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyQmx1ZXRvb3RoMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMC4zMiAyLjI3YTEgMSAwIDAgMSAxLjY4Ljc0djEzLjk4YTEgMSAwIDAgMS0xLjY4Ljc0bC0zLjg3LTMuNkEuNS41IDAgMCAwIDYuMSAxNEgzLjVBMS41IDEuNSAwIDAgMSAyIDEyLjV2LTVDMiA2LjY3IDIuNjcgNiAzLjUgNmgyLjZhLjUuNSAwIDAgMCAuMzUtLjEzbDMuODctMy42Wm01LjUzIDIuODhhLjUuNSAwIDAgMC0uODUuMzV2My40NmwtMS4xOS0uOTVhLjUuNSAwIDEgMC0uNjIuNzhMMTQuNyAxMGwtMS41MSAxLjIxYS41LjUgMCAxIDAgLjYyLjc4bDEuMTktLjk1djMuNDZhLjUuNSAwIDAgMCAuODUuMzVsMi41LTIuNWEuNS41IDAgMCAwLS4wNC0uNzRMMTYuMyAxMGwyLjAxLTEuNjFhLjUuNSAwIDAgMCAuMDQtLjc0bC0yLjUtMi41Wm0xLjQgNi45TDE2IDEzLjI4di0yLjI1bDEuMjUgMVpNMTYgNi43bDEuMjUgMS4yNS0xLjI1IDFWNi43MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGgyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJsdWV0b290aDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjMyIDIuMjdhMSAxIDAgMCAxIDEuNjguNzR2MTMuOThhMSAxIDAgMCAxLTEuNjguNzRsLTMuODgtMy42QS41LjUgMCAwIDAgNi4xIDE0SDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtNUMyIDYuNjcgMi42NyA2IDMuNSA2aDIuNmEuNS41IDAgMCAwIC4zNC0uMTNsMy44OC0zLjZabS42OC43NEw3LjEyIDYuNmMtLjI3LjI2LS42NC40LTEuMDIuNEgzLjVhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoMi42Yy4zOCAwIC43NS4xNCAxLjAyLjRMMTEgMTdWM1ptNC44NSAyLjE0YS41LjUgMCAwIDAtLjg1LjM1djMuNDZsLTEuMTktLjk1YS41LjUgMCAxIDAtLjYyLjc4TDE0LjcgMTBsLTEuNTEgMS4yMWEuNS41IDAgMSAwIC42Mi43OGwxLjE5LS45NXYzLjQ2YS41LjUgMCAwIDAgLjg1LjM1bDIuNS0yLjVhLjUuNSAwIDAgMC0uMDQtLjc0TDE2LjMgMTBsMi4wMS0xLjYxYS41LjUgMCAwIDAgLjA0LS43NGwtMi41LTIuNVptMS40IDYuOUwxNiAxMy4yOHYtMi4yNWwxLjI1IDFaTTE2IDYuN2wxLjI1IDEuMjUtMS4yNSAxVjYuNzFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyQmx1ZXRvb3RoMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJsdWV0b290aDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQuNyAzLjQ0Yy4yLjIzLjMuNTEuMy44MXYxNS41YTEuMjUgMS4yNSAwIDAgMS0yLjA2Ljk2TDcuOTggMTYuNUg0LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNC41QzIgOC41MSAzIDcuNSA0LjI1IDcuNWgzLjczbDQuOTYtNC4yYTEuMjUgMS4yNSAwIDAgMSAxLjc2LjE0Wm0yLjggNi40NlY2Ljc1YzAtLjY1Ljc1LS45OCAxLjIzLS41OGwuMDcuMDcgMyAzLjI1Yy4yNy4yOS4yNi43MyAwIDEuMDFsLS4wNy4wOC0xLjcgMS40MiAxLjcgMS40MmMuMy4yNi4zNS43LjE0IDFsLS4wNy4wOS0zIDMuMjVhLjc1Ljc1IDAgMCAxLTEuMy0uNFYxNC4xbC0uMjcuMjJhLjc1Ljc1IDAgMCAxLTEuMDQtMS4wN2wuMDgtLjA4IDEuMjMtMS4wMnYtLjNsLTEuMjMtMS4wMmEuNzUuNzUgMCAwIDEgLjg3LTEuMjJsLjEuMDYuMjYuMjNWNi43NSA5LjlabTEuNSAzLjJ2Mi4yM2wxLjE2LTEuMjZMMTkgMTMuMVptMC00LjQzdjIuMjNsMS4xNi0uOTdMMTkgOC42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGgyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJsdWV0b290aDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0LjcgMy40NGMuMi4yMy4zLjUxLjMuODF2MTUuNWExLjI1IDEuMjUgMCAwIDEtMi4wNi45Nkw3Ljk4IDE2LjVINC4yNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTQuNUMyIDguNTEgMyA3LjUgNC4yNSA3LjVoMy43M2w0Ljk2LTQuMmExLjI1IDEuMjUgMCAwIDEgMS43Ni4xNFpNMTMuNSA0LjggOC41MiA5SDQuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjVjMCAuNDEuMzQuNzUuNzUuNzVoNC4yN2w0Ljk4IDQuMjFWNC44Wm00IDUuMVY2Ljc2YzAtLjY1Ljc1LS45OCAxLjIzLS41OGwuMDcuMDcgMyAzLjI1Yy4yNy4yOS4yNi43MyAwIDEuMDFsLS4wNy4wOC0xLjcgMS40MiAxLjcgMS40MmMuMy4yNi4zNS43LjE0IDFsLS4wNy4wOS0zIDMuMjVhLjc1Ljc1IDAgMCAxLTEuMy0uNFYxNC4xbC0uMjcuMjJhLjc1Ljc1IDAgMCAxLTEuMDQtMS4wN2wuMDgtLjA4IDEuMjMtMS4wMnYtLjNsLTEuMjMtMS4wMmEuNzUuNzUgMCAwIDEgLjg3LTEuMjJsLjEuMDYuMjYuMjNWNi43NSA5LjlaTTE5IDEzLjF2Mi4yM2wxLjE2LTEuMjZMMTkgMTMuMVptMC00LjQzdjIuMjNsMS4xNi0uOTdMMTkgOC42N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGgyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyQmx1ZXRvb3RoMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNi41IDQuODFjMC0xLjA5LTEuMy0xLjY2LTIuMS0uOUw5LjQ1IDguNTJjLS4zMy4zLS43NS40OC0xLjIuNDhINS4yNUEzLjI1IDMuMjUgMCAwIDAgMiAxMi4yNnYzLjQ5QzIgMTcuNTUgMy40NiAxOSA1LjI1IDE5aDMuMDFjLjQ1IDAgLjg3LjE3IDEuMi40N2w0Ljk0IDQuNjNjLjguNzQgMi4xLjE4IDIuMS0uOTJWNC44MVptNS4xNiAxLjQzQTEgMSAwIDAgMCAyMCA3djUuMDNsLS4zNi0uM2ExIDEgMCAxIDAtMS4yOCAxLjU0bC44OC43My0uODguNzNhMSAxIDAgMCAwIDEuMjggMS41NGwuMzYtLjNWMjFhMSAxIDAgMCAwIDEuNjYuNzVsNC0zLjVhMSAxIDAgMCAwLS4wMi0xLjUyTDIyLjM2IDE0bDMuMjgtMi43M2ExIDEgMCAwIDAgLjAyLTEuNTJsLTQtMy41Wm0xLjggMTEuMjhMMjIgMTguOHYtMi41bDEuNDYgMS4yMlpNMjIgOS4ybDEuNDYgMS4yOEwyMiAxMS43VjkuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCbHVldG9vdGgyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJsdWV0b290aDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE2LjUgNC44MWMwLTEuMDktMS4zLTEuNjYtMi4xLS45TDkuNDUgOC41MmMtLjMzLjMtLjc1LjQ4LTEuMi40OEg1LjI1QTMuMjUgMy4yNSAwIDAgMCAyIDEyLjI2djMuNDlDMiAxNy41NSAzLjQ2IDE5IDUuMjUgMTloMy4wMWMuNDUgMCAuODcuMTcgMS4yLjQ3bDQuOTQgNC42M2MuOC43NCAyLjEuMTggMi4xLS45MlY0LjgxWm0tNi4wMiA0LjgyTDE1IDUuMzl2MTcuMjJsLTQuNTItNC4yM2MtLjYtLjU3LTEuNC0uODgtMi4yMi0uODhINS4yNWMtLjk3IDAtMS43NS0uNzktMS43NS0xLjc1di0zLjVjMC0uOTYuNzgtMS43NCAxLjc1LTEuNzRoMy4wMWMuODMgMCAxLjYyLS4zMiAyLjIyLS44OFptMTAuOC0zLjQxYS43NS43NSAwIDAgMC0xLjI4LjUzdjUuNTdsLS43Ny0uNjVhLjc1Ljc1IDAgMSAwLS45NiAxLjE2bDEuNCAxLjE3LTEuNCAxLjE4YS43NS43NSAwIDEgMCAuOTYgMS4xNWwuNzctLjY0djUuNTZhLjc1Ljc1IDAgMCAwIDEuMjguNTNsNC00YS43NS43NSAwIDAgMC0uMDUtMS4xTDIyLjAzIDE0bDMuMi0yLjY3YS43NS43NSAwIDAgMCAuMDUtMS4xMWwtNC00Wm0yLjM2IDExLjA4LTIuMTQgMi4xNHYtMy45MmwyLjE0IDEuNzhaTTIxLjUgOC41NmwyLjE0IDIuMTQtMi4xNCAxLjc4VjguNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyQm94MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJveDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAzLjVBMi41IDIuNSAwIDAgMSA1LjUgMWg1QTIuNSAyLjUgMCAwIDEgMTMgMy41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01QTIuNSAyLjUgMCAwIDEgMyAxMi41di05Wk05IDVhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwWm0tMi41IDVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBaTTggNy41YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlckJveDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyQm94MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMyAzLjVBMi41IDIuNSAwIDAgMSA1LjUgMWg1QTIuNSAyLjUgMCAwIDEgMTMgMy41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC01QTIuNSAyLjUgMCAwIDEgMyAxMi41di05Wk01LjUgMkM0LjY3IDIgNCAyLjY3IDQgMy41djljMCAuODMuNjcgMS41IDEuNSAxLjVoNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41aC01Wk04IDguNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM1pNNS41IDEwYTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwWk04IDZhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlckJveDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJCb3gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgNWEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3YxMGEzIDMgMCAwIDEtMyAzSDdhMyAzIDAgMCAxLTMtM1Y1Wm02IDVhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tMyAyYTMgMyAwIDEgMCA2IDAgMyAzIDAgMCAwLTYgMFptMy01YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJCb3gyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJveDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgNWEzIDMgMCAwIDEgMy0zaDZhMyAzIDAgMCAxIDMgM3YxMGEzIDMgMCAwIDEtMyAzSDdhMyAzIDAgMCAxLTMtM1Y1Wm0zLTJhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJIN1ptMyA3YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptLTMgMmEzIDMgMCAxIDEgNiAwIDMgMyAwIDAgMS02IDBabTMtNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyQm94MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckJveDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNCA1LjI1QzQgMy40NSA1LjQ2IDIgNy4yNSAyaDkuNUMxOC41NSAyIDIwIDMuNDYgMjAgNS4yNXYxMy41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLTkuNUEzLjI1IDMuMjUgMCAwIDEgNCAxOC43NVY1LjI1Wm04IDcuMjVhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00Wm0tMy41IDJhMy41IDMuNSAwIDEgMCA3IDAgMy41IDMuNSAwIDAgMC03IDBaTTEyIDlhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyQm94MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJCb3gyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDUuMjVDNCAzLjQ1IDUuNDYgMiA3LjI1IDJoOS41QzE4LjU1IDIgMjAgMy40NiAyMCA1LjI1djEzLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtOS41QTMuMjUgMy4yNSAwIDAgMSA0IDE4Ljc1VjUuMjVaTTcuMjUgMy41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxMy41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDkuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTkuNVptNC43NSA5YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNFptLTMuNSAyYTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAwIDEtNyAwWk0xMiA5YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlckVkaXQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyRWRpdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC43IDIuMDRjLjE4LjA4LjMuMjYuMy40NnY2Ljg4bC0xLjY2IDEuNjVjLS4zNS4zNi0uNjMuNzctLjgyIDEuMjNsLTEuMy0xLjI4SDMuNUExLjUgMS41IDAgMCAxIDIgOS40OFY2LjQ5QzIgNS42NiAyLjY3IDUgMy41IDVoMS43MmwyLjkzLTIuODVhLjUuNSAwIDAgMSAuNTQtLjFabS0uNjUgOS43Yy0uMzYuMzYtLjYxLjgtLjczIDEuM2wtLjMgMS4yYS42LjYgMCAwIDAgLjczLjc0bDEuMjItLjNjLjQ4LS4xMi45My0uMzggMS4yOS0uNzNsNC4yOC00LjI5YTEuNTYgMS41NiAwIDAgMC0xLjYxLTIuNThjLS4yMi4wOC0uNDIuMi0uNi4zN0wxMiA3LjhsLTEuMTIgMS4xMi0yLjgzIDIuODNabTUuNjQtNS43M2E2LjYzIDYuNjMgMCAwIDAtMS44NS0yLjg3bC0uMDItLjAyVjMuMWEuNS41IDAgMSAwLS42My43OGwuMDEuMDFhMi4zIDIuMyAwIDAgMSAuMjUuMjQgNS41MiA1LjUyIDAgMCAxIDEuMjIgMS45N2MuMzMtLjEuNjgtLjEzIDEuMDItLjFabS0xLjkuNmEzLjgyIDMuODIgMCAwIDAtLjk1LTEuNDhsLS4wMi0uMDFWNS4xYS41LjUgMCAwIDAtLjYzLjc4bC4wMi4wMi4wOC4wOGEyLjkzIDIuOTMgMCAwIDEgLjY3IDEuNDNsLjY3LS42Ny4xNS0uMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyRWRpdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyRWRpdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkgMi41YS41LjUgMCAwIDAtLjg1LS4zNkw1LjIyIDVIMy41QzIuNjcgNSAyIDUuNjYgMiA2LjV2Mi45OWMwIC44My42NyAxLjUgMS41IDEuNWgxLjcybDEuMyAxLjI4Yy4xNC0uMzIuMzEtLjYyLjUyLS45bC0xLjI2LTEuMjRhLjUuNSAwIDAgMC0uMzUtLjE0SDMuNWEuNS41IDAgMCAxLS41LS41VjYuNDljMC0uMjcuMjItLjUuNS0uNWgxLjkzYS41LjUgMCAwIDAgLjM1LS4xNEw4IDMuNjh2Ni43bDEtMVYyLjVabS0uOTUgOS4yNGEyLjc4IDIuNzggMCAwIDAtLjczIDEuM2wtLjMgMS4yYS42LjYgMCAwIDAgLjczLjc0bDEuMjItLjNjLjQ4LS4xMi45My0uMzggMS4yOS0uNzNsNC4yOC00LjI5YTEuNTYgMS41NiAwIDAgMC0xLjYxLTIuNThjLS4yMi4wOC0uNDIuMi0uNi4zN0wxMiA3LjhsLTEuMTIgMS4xMi0yLjgzIDIuODNabTUuNjQtNS43M2E2LjYzIDYuNjMgMCAwIDAtMS44NS0yLjg3bC0uMDItLjAyVjMuMWEuNS41IDAgMSAwLS42My43OGwuMDEuMDFhMi4zIDIuMyAwIDAgMSAuMjUuMjQgNS41MiA1LjUyIDAgMCAxIDEuMjIgMS45N2MuMzMtLjEuNjgtLjEzIDEuMDItLjFabS0xLjkuNmEzLjgyIDMuODIgMCAwIDAtLjk1LTEuNDhsLS4wMi0uMDFWNS4xYS41LjUgMCAwIDAtLjYzLjc4bC4wMi4wMi4wOC4wOGEyLjkzIDIuOTMgMCAwIDEgLjY3IDEuNDNsLjY3LS42Ny4xNS0uMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyRWRpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJFZGl0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMiAzYTEgMSAwIDAgMC0xLjY4LS43M2wtMy44NyAzLjZBLjUuNSAwIDAgMSA2LjEgNkgzLjVDMi42NyA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDIuNmEuNS41IDAgMCAxIC4zNS4xM2wyLjgzIDIuNjMuMTUtLjZhMy4yIDMuMiAwIDAgMSAuODQtMS41TDEyIDEyLjk1VjNabTMuOTYgMS42NmE3Ljk3IDcuOTcgMCAwIDEgMS45OSA0LjQ2Yy0uMzQtLjEtLjY4LS4xNC0xLjAyLS4xMmE2Ljk3IDYuOTcgMCAwIDAtMS43Mi0zLjY3LjUuNSAwIDAgMSAuNzUtLjY3Wm0tMS4yIDIuNTljLjQxLjcyLjY1IDEuNS43MiAyLjI3LS4xNC4xLS4yNi4yLS4zOC4zMmwtLjYzLjYzYy4xLS45Mi0uMDgtMS44Ny0uNTgtMi43MmEuNS41IDAgMCAxIC44Ny0uNVptLTMuNzggOC4xMiA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NWwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDhsLjM3LTEuNWMuMS0uMzguMy0uNzMuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJFZGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJFZGl0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODcgMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzUuMTNsMi44MyAyLjYzLjE1LS42Yy4wNC0uMTcuMS0uMzIuMTYtLjQ4TDcuMTMgMTMuNEExLjUgMS41IDAgMCAwIDYuMSAxM0gzLjVhLjUuNSAwIDAgMS0uNS0uNXYtNWMwLS4yOC4yMi0uNS41LS41aDIuNmMuMzggMCAuNzUtLjE1IDEuMDMtLjRMMTEgM3YxMC45NGwxLTFWM1ptMy45NiAxLjY2YTcuOTcgNy45NyAwIDAgMSAxLjk5IDQuNDZjLS4zMy0uMS0uNjgtLjE0LTEuMDItLjEyYTYuOTcgNi45NyAwIDAgMC0xLjcxLTMuNjcuNS41IDAgMCAxIC43NC0uNjdabS0xLjIgMi41OWMuNDIuNzIuNjUgMS41LjcyIDIuMjctLjEzLjEtLjI2LjItLjM4LjMybC0uNjIuNjJjLjEtLjktLjA5LTEuODYtLjU4LTIuNzFhLjUuNSAwIDAgMSAuODYtLjVabS0zLjc4IDguMTIgNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjVsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA4bC4zNy0xLjVjLjEtLjM4LjMtLjczLjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyRWRpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJFZGl0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNSA0LjI1djExLjFsLTIuNTEgMi41MWMtLjQ1LjQ1LS43NyAxLS45NCAxLjZMOC40MyAxNi43YS43NS43NSAwIDAgMC0uNS0uMkg0LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNHYtNC41QzIgOC41MSAzIDcuNSA0LjI1IDcuNWgzLjY4Yy4xOCAwIC4zNi0uMDcuNS0uMTlsNC40OS00Yy44LS43IDIuMDgtLjE0IDIuMDguOTRabTMuNCA3LjcxYy4xNy0uMTguMzctLjM0LjU4LS40N2E2Ljk2IDYuOTYgMCAwIDAtLjgyLTIuODIuNzUuNzUgMCAwIDAtMS4zMi43MiA1LjQ3IDUuNDcgMCAwIDEgLjU4IDMuNTRsLjk3LS45N1ptMi4wNC0uOTVhMy4zIDMuMyAwIDAgMSAxLjUzLjI0IDkuOTUgOS45NSAwIDAgMC0xLjkzLTUuMi43NS43NSAwIDAgMC0xLjIuOSA4LjQ1IDguNDUgMCAwIDEgMS42IDQuMDZabS0xLjM0IDEuNjYtNS45IDUuOWMtLjM1LjM1LS42Ljc4LS43MSAxLjI1bC0uNDYgMS44M2MtLjIuOC41MiAxLjUyIDEuMzIgMS4zMmwxLjgzLS40NmMuNDctLjEyLjktLjM2IDEuMjUtLjdsNS45LTUuOWEyLjI4IDIuMjggMCAxIDAtMy4yMy0zLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlckVkaXQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlckVkaXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNSA0LjI1YTEuMjUgMS4yNSAwIDAgMC0yLjA4LS45M2wtNC41IDRhLjc1Ljc1IDAgMCAxLS41LjE4SDQuMjZDMy4wMSA3LjUgMiA4LjUgMiA5Ljc1djQuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgzLjY4Yy4xOCAwIC4zNi4wNi41LjE5bDMuMTIgMi43N2MuMTQtLjUuMzktLjk2LjcyLTEuMzZsLTIuODUtMi41NGEyLjI1IDIuMjUgMCAwIDAtMS41LS41Nkg0LjI2YS43NS43NSAwIDAgMS0uNzUtLjc1di00LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjY4Yy41NSAwIDEuMDgtLjIgMS41LS41N2w0LjA3LTMuNjJ2MTIuMDRsMS41LTEuNVY0LjI1Wm01LjA0IDEuOGE5Ljk1IDkuOTUgMCAwIDEgMS45MyA1LjIgMy4zIDMuMyAwIDAgMC0xLjUzLS4yNCA4LjQ1IDguNDUgMCAwIDAtMS42LTQuMDYuNzUuNzUgMCAxIDEgMS4yLS45Wm0tMS44OCAyLjYyYy40Ni44NS43NSAxLjgxLjgyIDIuODItLjIuMTMtLjQuMy0uNTkuNDdsLS45Ny45N2E1LjU0IDUuNTQgMCAwIDAtLjU4LTMuNTQuNzUuNzUgMCAxIDEgMS4zMi0uNzJabS45NCA0LTUuOSA1LjljLS4zNS4zNS0uNi43OC0uNzEgMS4yNWwtLjQ2IDEuODNjLS4yLjguNTIgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlhMi4yOCAyLjI4IDAgMSAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJNdXRlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck11dGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgMi41YS41LjUgMCAwIDAtLjg1LS4zNkw1LjIyIDVIMy41QzIuNjcgNSAyIDUuNjYgMiA2LjV2M2MwIC44Mi42NyAxLjUgMS41IDEuNWgxLjcybDIuOTMgMi44N0EuNS41IDAgMCAwIDkgMTMuNXYtMTFabTEuMTUgMy42NWMuMi0uMi41LS4yLjcgMEwxMiA3LjI5bDEuMTUtMS4xNGEuNS41IDAgMSAxIC43LjdMMTIuNzEgOGwxLjE0IDEuMTVhLjUuNSAwIDEgMS0uNy43TDEyIDguNzFsLTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43TDExLjI5IDhsLTEuMTQtMS4xNWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyTXV0ZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyTXV0ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTguNyAyLjA0Yy4xOC4wOC4zLjI2LjMuNDZ2MTFhLjUuNSAwIDAgMS0uODUuMzZsLTIuOTMtMi44OEgzLjVBMS41IDEuNSAwIDAgMSAyIDkuNDhWNi41QzIgNS42NiAyLjY3IDUgMy41IDVoMS43MmwyLjkzLTIuODVhLjUuNSAwIDAgMSAuNTQtLjFaTTggMy42OSA1Ljc4IDUuODVhLjUuNSAwIDAgMS0uMzUuMTRIMy41YS41LjUgMCAwIDAtLjUuNXYzYzAgLjI3LjIyLjUuNS41aDEuOTNhLjUuNSAwIDAgMSAuMzUuMTNMOCAxMi4zMVYzLjY5Wm0yLjE1IDIuNDZjLjItLjIuNS0uMi43IDBMMTIgNy4yOWwxLjE1LTEuMTRhLjUuNSAwIDEgMSAuNy43TDEyLjcxIDhsMS4xNCAxLjE1YS41LjUgMCAxIDEtLjcuN0wxMiA4LjcxbC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN0wxMS4yOSA4bC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlck11dGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyTXV0ZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODggMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzQuMTNsMy44OCAzLjZhMSAxIDAgMCAwIDEuNjgtLjc0VjMuMDFabTEuMTQgNC42NWMuMi0uMi41MS0uMi43MSAwbDEuNjUgMS42NCAxLjY0LTEuNjRhLjUuNSAwIDEgMSAuNzEuN0wxNi4yIDEwbDEuNjUgMS42NWEuNS41IDAgMSAxLS43LjdsLTEuNjUtMS42NC0xLjY1IDEuNjRhLjUuNSAwIDEgMS0uNy0uN0wxNC43OCAxMGwtMS42NS0xLjY1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJNdXRlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJNdXRlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODggMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzQuMTNsMy44OCAzLjZhMSAxIDAgMCAwIDEuNjgtLjc0VjMuMDFaTTcuMTIgNi42IDExIDN2MTRsLTMuODgtMy42QTEuNSAxLjUgMCAwIDAgNi4xIDEzSDMuNWEuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVoMi42Yy4zOCAwIC43NS0uMTQgMS4wMi0uNFptNi4wMiAxLjA1Yy4yLS4yLjUxLS4yLjcxIDBsMS42NSAxLjY0IDEuNjQtMS42NGEuNS41IDAgMSAxIC43MS43TDE2LjIgMTBsMS42NSAxLjY1YS41LjUgMCAxIDEtLjcuN2wtMS42NS0xLjY0LTEuNjUgMS42NGEuNS41IDAgMSAxLS43LS43TDE0Ljc4IDEwbC0xLjY1LTEuNjVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlck11dGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyTXV0ZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUgNC4yNWExLjI1IDEuMjUgMCAwIDAtMi4wOC0uOTNMOC40MiA3LjNhLjc1Ljc1IDAgMCAxLS40OS4xOUg0LjI1QzMuMDEgNy41IDIgOC41IDIgOS43NXY0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoMy42OGMuMTggMCAuMzYuMDYuNS4xOWw0LjQ5IDMuOTljLjguNzIgMi4wOC4xNCAyLjA4LS45M1Y0LjI1Wm0xLjIyIDQuOTdjLjMtLjMuNzctLjMgMS4wNiAwTDE5IDEwLjk0bDEuNzItMS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2TDIwLjA2IDEybDEuNzIgMS43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2TDE5IDEzLjA2bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNkwxNy45NCAxMmwtMS43Mi0xLjcyYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyTXV0ZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyTXV0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjkyIDMuMzJjLjgtLjcyIDIuMDgtLjE1IDIuMDguOTN2MTUuNWExLjI1IDEuMjUgMCAwIDEtMi4wOC45M2wtNC41LTRhLjc1Ljc1IDAgMCAwLS40OS0uMThINC4yNUMzLjAxIDE2LjUgMiAxNS40OSAyIDE0LjI1di00LjVDMiA4LjUgMyA3LjUgNC4yNSA3LjVoMy42OGMuMTggMCAuMzYtLjA3LjUtLjJsNC40OS0zLjk4Wm0uNTggMS40OUw5LjQyIDguNDNjLS40LjM3LS45NC41Ny0xLjQ5LjU3SDQuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjVjMCAuNDEuMzQuNzUuNzUuNzVoMy42OGMuNTUgMCAxLjA4LjIgMS41LjU2bDQuMDcgMy42M1Y0LjhabTIuNzIgNC40Yy4zLS4yOC43Ny0uMjggMS4wNiAwTDE5IDEwLjk1bDEuNzItMS43MmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2TDIwLjA2IDEybDEuNzIgMS43MmEuNzUuNzUgMCAwIDEtMS4wNiAxLjA2TDE5IDEzLjA2bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNkwxNy45NCAxMmwtMS43Mi0xLjcyYS43NS43NSAwIDAgMSAwLTEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyTXV0ZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJNdXRlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNi41IDQuODFjMC0xLjA5LTEuMy0xLjY2LTIuMS0uOUw5LjQ1IDguNTJjLS4zMy4zLS43NS40OC0xLjIuNDhINS4yNUEzLjI1IDMuMjUgMCAwIDAgMiAxMi4yNnYzLjQ5QzIgMTcuNTUgMy40NiAxOSA1LjI1IDE5aDMuMDFjLjQ1IDAgLjg3LjE3IDEuMi40N2w0Ljk0IDQuNjNjLjguNzQgMi4xLjE4IDIuMS0uOTJWNC44MVptMy4yOCA1LjkxYS43NS43NSAwIDAgMC0xLjA2IDEuMDZMMjAuOTQgMTRsLTIuMjIgMi4yYS43NS43NSAwIDAgMCAxLjA2IDEuMDdsMi4yMi0yLjIgMi4yMiAyLjJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi4yMi0yLjIgMi4yMi0yLjI0YS43NS43NSAwIDAgMC0xLjA2LTEuMDZMMjIgMTIuOTVsLTIuMjItMi4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJNdXRlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJNdXRlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTQuNCAzLjljLjgtLjc1IDIuMS0uMTggMi4xLjkxdjE4LjM3YzAgMS4xLTEuMyAxLjY2LTIuMS45MmwtNC45NC00LjYzYy0uMzMtLjMtLjc1LS40Ny0xLjItLjQ3SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTUuNzV2LTMuNWMwLTEuNzkgMS40Ni0zLjI0IDMuMjUtMy4yNGgzLjAxYy40NSAwIC44Ny0uMTcgMS4yLS40OGw0LjkzLTQuNjNabS42IDEuNS00LjUyIDQuMjNjLS42LjU2LTEuNC44OC0yLjIyLjg4SDUuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djMuNDljMCAuOTYuNzggMS43NSAxLjc1IDEuNzVoMy4wMWMuODMgMCAxLjYyLjMxIDIuMjIuODhMMTUgMjIuNlY1LjM5Wm00Ljc4IDUuMzJhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNkwyMC45NCAxNGwtMi4yMiAyLjJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wN2wyLjIyLTIuMiAyLjIyIDIuMmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjIyLTIuMiAyLjIyLTIuMjRhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwyMiAxMi45NWwtMi4yMi0yLjIzWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlck11dGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyTXV0ZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTggNS42YTEuMjUgMS4yNSAwIDAgMC0yLjEzLS44OGwtNC43IDQuN2EyIDIgMCAwIDEtMS40MS41OEg2YTQgNCAwIDAgMC00IDR2NGE0IDQgMCAwIDAgNCA0aDMuNzZhMiAyIDAgMCAxIDEuNDEuNTlsNC43IDQuNjljLjc4Ljc5IDIuMTMuMjMgMi4xMy0uODhWNS42Wm0zLjMgNi43YTEgMSAwIDAgMSAxLjQgMGwyLjMgMi4yOSAyLjMtMi4zYTEgMSAwIDAgMSAxLjQgMS40MkwyNi40MiAxNmwyLjMgMi4zYTEgMSAwIDAgMS0xLjQyIDEuNEwyNSAxNy40MmwtMi4zIDIuM2ExIDEgMCAwIDEtMS40LTEuNDJMMjMuNTggMTZsLTIuMy0yLjNhMSAxIDAgMCAxIDAtMS40WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlck11dGUzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck11dGUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xOCA1LjZhMS4yNSAxLjI1IDAgMCAwLTIuMTMtLjg4bC00LjcgNC43YTIgMiAwIDAgMS0xLjQxLjU4SDZhNCA0IDAgMCAwLTQgNHY0YTQgNCAwIDAgMCA0IDRoMy43NmEyIDIgMCAwIDEgMS40MS41OWw0LjcgNC42OWMuNzguNzkgMi4xMy4yMyAyLjEzLS44OFY1LjZabS01LjQxIDUuMjNMMTYgNy40VjI0LjZsLTMuNDEtMy40MkE0IDQgMCAwIDAgOS43NiAyMEg2YTIgMiAwIDAgMS0yLTJ2LTRjMC0xLjEuOS0yIDItMmgzLjc2YTQgNCAwIDAgMCAyLjgzLTEuMTdabTEwLjEyIDEuNDZhMSAxIDAgMCAwLTEuNDIgMS40MkwyMy42IDE2bC0yLjMgMi4zYTEgMSAwIDAgMCAxLjQyIDEuNEwyNSAxNy40MmwyLjMgMi4zYTEgMSAwIDAgMCAxLjQtMS40MkwyNi40MiAxNmwyLjMtMi4zYTEgMSAwIDAgMC0xLjQyLTEuNEwyNSAxNC41OGwtMi4zLTIuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJNdXRlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck11dGU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTI1LjA4IDYuNDJBMS43NSAxLjc1IDAgMCAxIDI4IDcuNzJ2MzIuNTZjMCAxLjUxLTEuOCAyLjMxLTIuOTIgMS4zbC04LjItNy4zNmMtLjg4LS43OS0yLTEuMjItMy4xOC0xLjIySDlhNS4yNSA1LjI1IDAgMCAxLTUuMjUtNS4yNXYtNy41QzMuNzUgMTcuMzUgNi4xIDE1IDkgMTVoNC43YzEuMTcgMCAyLjMtLjQzIDMuMTgtMS4yMWw4LjItNy4zN1ptNy4yOSAxMS45NWExLjI1IDEuMjUgMCAwIDEgMS43NiAwTDM4IDIyLjIzbDMuODctMy44NmExLjI1IDEuMjUgMCAxIDEgMS43NiAxLjc2TDM5Ljc3IDI0bDMuODYgMy44N2ExLjI1IDEuMjUgMCAwIDEtMS43NiAxLjc2TDM4IDI1Ljc3bC0zLjg3IDMuODZhMS4yNSAxLjI1IDAgMCAxLTEuNzYtMS43NkwzNi4yMyAyNGwtMy44Ni0zLjg3YTEuMjUgMS4yNSAwIDAgMSAwLTEuNzZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyTXV0ZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyTXV0ZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI1LjA4IDYuNDJBMS43NSAxLjc1IDAgMCAxIDI4IDcuNzJ2MzIuNTZjMCAxLjUxLTEuOCAyLjMxLTIuOTIgMS4zbC04LjItNy4zNmMtLjg4LS43OS0yLTEuMjItMy4xOC0xLjIySDlhNS4yNSA1LjI1IDAgMCAxLTUuMjUtNS4yNXYtNy41QzMuNzUgMTcuMzUgNi4xIDE1IDkgMTVoNC43YzEuMTcgMCAyLjMtLjQzIDMuMTgtMS4yMWw4LjItNy4zN1ptLjQyIDIuOTgtNi45NSA2LjI1YTcuMjUgNy4yNSAwIDAgMS00Ljg1IDEuODVIOWEyLjc1IDIuNzUgMCAwIDAtMi43NSAyLjc1djcuNUEyLjc1IDIuNzUgMCAwIDAgOSAzMC41aDQuN2MxLjc5IDAgMy41MS42NiA0Ljg1IDEuODZsNi45NSA2LjI0VjkuNFptNi44NyA4Ljk3YTEuMjUgMS4yNSAwIDAgMSAxLjc2IDBMMzggMjIuMjNsMy44Ny0zLjg2YTEuMjUgMS4yNSAwIDEgMSAxLjc2IDEuNzZMMzkuNzcgMjRsMy44NiAzLjg3YTEuMjUgMS4yNSAwIDAgMS0xLjc2IDEuNzZMMzggMjUuNzdsLTMuODcgMy44NmExLjI1IDEuMjUgMCAwIDEtMS43Ni0xLjc2TDM2LjIzIDI0bC0zLjg2LTMuODdhMS4yNSAxLjI1IDAgMCAxIDAtMS43NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJPZmYxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyT2ZmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIm05IDkuNyA1LjE1IDUuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDQuMjkgNUgzLjVDMi42NyA1IDIgNS42NiAyIDYuNXYzYzAgLjgyLjY3IDEuNSAxLjUgMS41aDEuNzJsMi45MyAyLjg3QS41LjUgMCAwIDAgOSAxMy41VjkuN1ptMi43LS4xMS0uNzktLjhhMy40MyAzLjQzIDAgMCAwLS4zMy0yLjQyIDIuMzggMi4zOCAwIDAgMC0uNC0uNDhoLjAxYS41LjUgMCAwIDEgLjYyLS43OGguMDFsLjAyLjAyYTEuNiAxLjYgMCAwIDEgLjE5LjE4Yy4xLjEyLjI2LjMuNC41NC4zLjQ4LjU3IDEuMi41NyAyLjE1IDAgLjYzLS4xMiAxLjE2LS4zIDEuNTlabTEuNTMgMS41MS0uNzUtLjc0YTUuNSA1LjUgMCAwIDAtLjQtNS40MiA1LjUxIDUuNTEgMCAwIDAtLjg4LTEuMDRoLS4wMWEuNS41IDAgMCAxIC42Mi0uOHYuMDFoLjAxbC4wMy4wM2EzLjE0IDMuMTQgMCAwIDEgLjMyLjNBNi41MiA2LjUyIDAgMCAxIDE0IDhhNi41IDYuNSAwIDAgMS0uNzcgMy4xWk05IDYuODggNi4xOCA0LjA2bDEuOTctMS45MkEuNS41IDAgMCAxIDkgMi41djQuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyT2ZmMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJPZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIm05IDkuNyA1LjE1IDUuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMTMtMTNhLjUuNSAwIDEgMC0uNy43TDQuMjkgNUgzLjVDMi42NyA1IDIgNS42NiAyIDYuNXYzYzAgLjgyLjY3IDEuNSAxLjUgMS41aDEuNzJsMi45MyAyLjg3QS41LjUgMCAwIDAgOSAxMy41VjkuN1ptLTEtMXYzLjZsLTIuMjItMi4xOGEuNS41IDAgMCAwLS4zNS0uMTRIMy41YS41LjUgMCAwIDEtLjUtLjVWNi41YzAtLjI3LjIyLS41LjUtLjVoMS43OWwyLjcgMi43MlptMC0yLjgydi0yLjJMNi44OSA0Ljc4bC0uNy0uNzEgMS45Ni0xLjkyQS41LjUgMCAwIDEgOSAyLjV2NC4zOGwtMS0xWm0zLjcgMy43LS43OS0uNzlhMy40MyAzLjQzIDAgMCAwLS4zMy0yLjQyIDIuMzggMi4zOCAwIDAgMC0uNC0uNDhoLjAxYS41LjUgMCAwIDEgLjYyLS43OGguMDFsLjAyLjAyYTEuNiAxLjYgMCAwIDEgLjE5LjE4Yy4xLjEyLjI2LjMuNC41NC4zLjQ4LjU3IDEuMi41NyAyLjE1IDAgLjYzLS4xMiAxLjE2LS4zIDEuNTlabTEuNTMgMS41Mi0uNzUtLjc0YTUuNSA1LjUgMCAwIDAtLjQtNS40MiA1LjUxIDUuNTEgMCAwIDAtLjg4LTEuMDRoLS4wMWEuNS41IDAgMCAxIC42Mi0uOHYuMDFoLjAxbC4wMy4wM2EzLjE0IDMuMTQgMCAwIDEgLjMyLjNBNi41MiA2LjUyIDAgMCAxIDE0IDhhNi41IDYuNSAwIDAgMS0uNzcgMy4xWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlck9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODUgMi4xNWEuNS41IDAgMSAwLS43LjdMNS4yOSA2SDMuNUMyLjY3IDYgMiA2LjY3IDIgNy41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMi42YS41LjUgMCAwIDEgLjM1LjEzbDMuODcgMy42YTEgMSAwIDAgMCAxLjY4LS43NHYtNC4yOGw1LjE1IDUuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMi41Ni0yLjU3TDIuODUgMi4xNVptMTMuMTEgMi41MmE4IDggMCAwIDEgLjY2IDkuODNsLS43My0uNzNhNyA3IDAgMCAwLS42OC04LjQ0LjUuNSAwIDEgMSAuNzUtLjY2Wm0tMS4yIDIuNThjMSAxLjc0Ljk1IDMuOC4wNCA1LjQzbC0uNzQtLjc0YTQuNSA0LjUgMCAwIDAtLjE3LTQuMTkuNS41IDAgMSAxIC44Ny0uNVpNMTIgMy4wMXY2Ljg3TDcuMjUgNS4xM2wzLjA3LTIuODZhMSAxIDAgMCAxIDEuNjguNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyT2ZmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJPZmYyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjg1IDIuMTVhLjUuNSAwIDEgMC0uNy43TDUuMjkgNkgzLjVDMi42OCA2IDIgNi42NyAyIDcuNXY1YzAgLjgzLjY4IDEuNSAxLjUgMS41SDYuMWEuNS41IDAgMCAxIC4zNC4xM2wzLjg4IDMuNmExIDEgMCAwIDAgMS42OC0uNzRWMTIuN2w1LjE1IDUuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMi41Ni0yLjU3TDIuODUgMi4xNVpNMTEgMTEuN1YxN2wtMy44OC0zLjZBMS41IDEuNSAwIDAgMCA2LjEgMTNIMy41YS41LjUgMCAwIDEtLjUtLjV2LTVjMC0uMjguMjItLjUuNS0uNWgyLjZsLjE4LS4wMUwxMSAxMS43Wk0xMSAzdjUuODhsMSAxVjNhMSAxIDAgMCAwLTEuNjgtLjc0TDcuMjQgNS4xMmwuNzEuNzFMMTEgMy4wMVptMy4wNiA4Ljk0Ljc0Ljc0YTUuNSA1LjUgMCAwIDAtLjA0LTUuNDMuNS41IDAgMSAwLS44Ni41IDQuNSA0LjUgMCAwIDEgLjE2IDQuMTlabTEuODQgMS44NC43Mi43MmE4IDggMCAwIDAtLjY2LTkuODMuNS41IDAgMSAwLS43NC42NiA3IDcgMCAwIDEgLjY4IDguNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyT2ZmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck9mZjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZMNi40NCA3LjVINC4yNUMzLjAxIDcuNSAyIDguNSAyIDkuNzV2NC41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDMuNjhjLjE4IDAgLjM2LjA2LjUuMTlsNC40OSAzLjk5Yy44LjcyIDIuMDguMTQgMi4wOC0uOTN2LTMuNjlsNS43MiA1LjcyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWm0xMy44NiAxMS43NCAxLjE0IDEuMTRhNi45NyA2Ljk3IDAgMCAwLS4xMi02LjQzLjc1Ljc1IDAgMCAwLTEuMzIuNzIgNS40NyA1LjQ3IDAgMCAxIC4zIDQuNTdabTIuMjUgMi4yNSAxLjEgMS4wOWE5Ljk2IDkuOTYgMCAwIDAtLjQ1LTExLjI1Ljc1Ljc1IDAgMCAwLTEuMi45IDguNDYgOC40NiAwIDAgMSAuNTUgOS4yNlpNOS41MiA2LjM0IDE1IDExLjgyVjQuMjVhMS4yNSAxLjI1IDAgMCAwLTIuMDgtLjkzbC0zLjQgMy4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJPZmYyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck9mZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDYuNDQgNy41SDQuMjVDMy4wMSA3LjUgMiA4LjUgMiA5Ljc1djQuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgzLjY4Yy4xOCAwIC4zNi4wNi41LjE5bDQuNDkgMy45OWMuOC43MiAyLjA4LjE0IDIuMDgtLjkzdi0zLjY5bDUuNzIgNS43MmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTMuNSAxNC41NnY0LjYzbC00LjA4LTMuNjNBMi4yNSAyLjI1IDAgMCAwIDcuOTMgMTVINC4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNC41YzAtLjQyLjM0LS43NS43NS0uNzVoMy42OGw1LjU3IDUuNTZabTAtOS43NXY1LjVsMS41IDEuNVY0LjI2YTEuMjUgMS4yNSAwIDAgMC0yLjA4LS45M2wtMy40IDMuMDIgMS4wNiAxLjA2IDIuOTItMi42Wm0zLjY0IDkuMTUgMS4xNCAxLjE0YTYuOTcgNi45NyAwIDAgMC0uMTItNi40My43NS43NSAwIDAgMC0xLjMyLjcyIDUuNDcgNS40NyAwIDAgMSAuMyA0LjU3Wm0yLjI1IDIuMjUgMS4xIDEuMDlhOS45NiA5Ljk2IDAgMCAwLS40NS0xMS4yNS43NS43NSAwIDAgMC0xLjIuOSA4LjQ2IDguNDYgMCAwIDEgLjU1IDkuMjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyT2ZmMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck9mZjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMy4yOCAyLjIyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsNS43MiA1LjczSDUuMjVBMy4yNSAzLjI1IDAgMCAwIDIgMTIuMjZ2My40OUMyIDE3LjU1IDMuNDYgMTkgNS4yNSAxOWgzLjAxYy40NSAwIC44Ny4xNyAxLjIuNDdsNC45NCA0LjYzYy44Ljc0IDIuMS4xOCAyLjEtLjkydi01LjYybDguMjIgOC4yMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptNy4zNCA1LjIyIDUuODggNS44OHYtOC41YzAtMS4xLTEuMy0xLjY3LTIuMS0uOTJsLTMuNzggMy41NFptOS41NSA5LjU1IDEuMTQgMS4xNGE5LjQ2IDkuNDYgMCAwIDAtLjk2LTkuODMuNzUuNzUgMCAxIDAtMS4yLjkgNy45NiA3Ljk2IDAgMCAxIDEuMDIgNy44Wm0yLjggMi44IDEuMSAxLjFBMTMuMiAxMy4yIDAgMCAwIDIyLjcgNS4yNWEuNzUuNzUgMCAxIDAtMS4xMiAxIDExLjcgMTEuNyAwIDAgMSAxLjQgMTMuNTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyT2ZmMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJPZmYyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw1LjcyIDUuNzNINS4yNUEzLjI1IDMuMjUgMCAwIDAgMiAxMi4yNnYzLjQ5QzIgMTcuNTUgMy40NiAxOSA1LjI1IDE5aDMuMDFjLjQ1IDAgLjg3LjE3IDEuMi40N2w0Ljk0IDQuNjNjLjguNzQgMi4xLjE4IDIuMS0uOTJ2LTUuNjJsOC4yMiA4LjIyYS43NS43NSAwIDAgMCAxLjA2LTEuMDZMMy4yOCAyLjIyWk0xNSAxNi4wNnY2LjU1bC00LjUyLTQuMjNjLS42LS41Ny0xLjQtLjg4LTIuMjItLjg4SDUuMjVjLS45NyAwLTEuNzUtLjc5LTEuNzUtMS43NXYtMy41YzAtLjk2Ljc4LTEuNzQgMS43NS0xLjc0aDMuMDFjLjM1IDAgLjctLjA2IDEuMDItLjE3TDE1IDE2LjA2Wm0tNC4zOC04LjYyIDEuMDYgMS4wNkwxNSA1LjR2Ni40MmwxLjUgMS41di04LjVjMC0xLjEtMS4zLTEuNjctMi4xLS45MmwtMy43OCAzLjU0Wm05LjU1IDkuNTUgMS4xNCAxLjE0YTkuNDYgOS40NiAwIDAgMC0uOTYtOS44My43NS43NSAwIDEgMC0xLjIuOSA3Ljk2IDcuOTYgMCAwIDEgMS4wMiA3LjhabTIuOCAyLjggMS4xIDEuMUExMy4yIDEzLjIgMCAwIDAgMjIuNyA1LjI1YS43NS43NSAwIDAgMC0xLjEyIDEgMTEuNyAxMS43IDAgMCAxIDEuNCAxMy41NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJPZmY0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyT2ZmNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIm0yOCAyOS43NyAxMy44NyAxMy44NmExLjI1IDEuMjUgMCAwIDAgMS43Ni0xLjc2TDYuMTMgNC4zN2ExLjI1IDEuMjUgMCAxIDAtMS43NiAxLjc2TDEzLjIzIDE1SDlhNS4yNSA1LjI1IDAgMCAwLTUuMjUgNS4yNXY3LjVDMy43NSAzMC42NSA2LjEgMzMgOSAzM2g0LjdjMS4xNyAwIDIuMy40MyAzLjE4IDEuMjJsOC4yIDcuMzZhMS43NSAxLjc1IDAgMCAwIDIuOTItMS4zVjI5Ljc3Wm0wLTcuMDctOS45Ni05Ljk2IDcuMDQtNi4zMkExLjc1IDEuNzUgMCAwIDEgMjggNy43MlYyMi43Wm04LjE5IDguMTgtMS44NS0xLjg1YTExLjQyIDExLjQyIDAgMCAwLTEuOTMtMTIuODVsLS4wMS0uMDJhMS4yNSAxLjI1IDAgMCAxIDEuNy0xLjgzYy4xNy4xNyAwIDAgMCAwdi4wMWwuMDIuMDIuMDQuMDRhNi4zNCA2LjM0IDAgMCAxIC42LjY0IDEzLjk4IDEzLjk4IDAgMCAxIDEuNDMgMTUuODRaTTQxIDM1LjdsLTEuODUtMS44NEEyMS4zMyAyMS4zMyAwIDAgMCA0MS41MSAyNGMwLTQuNS0xLjMtNy45OC0yLjYtMTAuMzNhMTguNDUgMTguNDUgMCAwIDAtMi40OS0zLjQ4bC0uMDMtLjAzYTEuMjUgMS4yNSAwIDAgMSAxLjcyLTEuODFjLjQ1LjQ2IDAgMCAwIDBoLjAxbC4wMi4wMmE1LjIzIDUuMjMgMCAwIDEgLjI2LjI3IDIwLjk0IDIwLjk0IDAgMCAxIDIuNyAzLjgyQTIzLjc3IDIzLjc3IDAgMCAxIDQ0LjAxIDI0YTIzLjc3IDIzLjc3IDAgMCAxLTMgMTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJPZmY0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlck9mZjQ4UmVndWxhcicsIFwiNDhcIiwgW1wibTI4IDI5Ljc3IDEzLjg3IDEzLjg2YTEuMjUgMS4yNSAwIDAgMCAxLjc2LTEuNzZMNi4xMyA0LjM3YTEuMjUgMS4yNSAwIDEgMC0xLjc2IDEuNzZMMTMuMjMgMTVIOWE1LjI1IDUuMjUgMCAwIDAtNS4yNSA1LjI1djcuNUMzLjc1IDMwLjY1IDYuMSAzMyA5IDMzaDQuN2MxLjE3IDAgMi4zLjQzIDMuMTggMS4yMmw4LjIgNy4zNmExLjc1IDEuNzUgMCAwIDAgMi45Mi0xLjNWMjkuNzdabS0yLjUtMi41VjM4LjZsLTYuOTUtNi4yNWE3LjI1IDcuMjUgMCAwIDAtNC44NS0xLjg1SDlhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NXYtNy41QTIuNzUgMi43NSAwIDAgMSA5IDE3LjVoNC43Yy42MSAwIDEuMjItLjA4IDEuOC0uMjNsMTAgMTBaTTE5LjgxIDE0LjVsLTEuNzctMS43NyA3LjA0LTYuMzJBMS43NSAxLjc1IDAgMCAxIDI4IDcuNzJWMjIuN2wtMi41LTIuNVY5LjRsLTUuNjkgNS4xWk0zNi4yIDMwLjg4bC0xLjg1LTEuODVhMTEuNDIgMTEuNDIgMCAwIDAtMS45My0xMi44NWwtLjAxLS4wMmExLjI1IDEuMjUgMCAwIDEgMS43LTEuODNsLS44NS45Mi44NS0uOTJ2LjAxbC4wMi4wMmEzLjk1IDMuOTUgMCAwIDEgLjE4LjE3Yy4xMi4xMi4yNy4zLjQ1LjUxYTEzLjk4IDEzLjk4IDAgMCAxIDEuNDMgMTUuODRabTQuODMgNC44NC0xLjg1LTEuODVBMjEuMzYgMjEuMzYgMCAwIDAgNDEuNSAyNGMwLTQuNTUtMS4zLTguMDMtMi42LTEwLjM3YTE3LjkgMTcuOSAwIDAgMC0yLjUtMy40NyAxLjI1IDEuMjUgMCAwIDEgMS43LTEuODJsLS44NS45MS44Ni0uOTEuMDIuMDNhNS4yOCA1LjI4IDAgMCAxIC4yNy4yNiAyMC40IDIwLjQgMCAwIDEgMi43IDMuNzlBMjMuNzYgMjMuNzYgMCAwIDEgNDQgMjRjMCA1LjA1LTEuNDUgOC45NC0yLjkgMTEuNThsLS4wMy4wNC0uMDUuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJTZXR0aW5nczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJTZXR0aW5nczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODcgMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzUuMTNsMy4yMSAyLjk4QTUuNDggNS40OCAwIDAgMSAxMiA5LjZWM1ptLjA3IDguNDQtLjE2LS41NWMuMjUtLjIuNTMtLjM3LjgyLS41bC4zNC4zNmEyIDIgMCAwIDAgMi45IDBsLjMzLS4zNWMuMy4xNC41OC4zMi44NC41MmwtLjEzLjQyYTIgMiAwIDAgMCAxLjQ2IDIuNTJsLjM1LjA5YTQuNyA0LjcgMCAwIDEgMCAxLjAxbC0uNDUuMTJhMiAyIDAgMCAwLTEuNDMgMi40OGwuMTUuNTVjLS4yNS4yLS41My4zNy0uODIuNWwtLjM0LS4zNmEyIDIgMCAwIDAtMi45IDBsLS4zMy4zNWMtLjMtLjE0LS41OC0uMzItLjg0LS41MmwuMTMtLjQyYTIgMiAwIDAgMC0xLjQ2LTIuNTJsLS4zNS0uMDlhNC43MSA0LjcxIDAgMCAxIDAtMS4wMWwuNDUtLjEyYTIgMiAwIDAgMCAxLjQ0LTIuNDhabTIuNDMgNC4wNmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyU2V0dGluZ3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlclNldHRpbmdzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTIgM2ExIDEgMCAwIDAtMS42OC0uNzNsLTMuODggMy42QS41LjUgMCAwIDEgNi4xIDZIMy41QzIuNjcgNiAyIDYuNjcgMiA3LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWgyLjZhLjUuNSAwIDAgMSAuMzQuMTNsMy4yMiAyLjk5YTUuNDYgNS40NiAwIDAgMS0uNjItMS45NEw3LjEyIDEzLjRBMS41IDEuNSAwIDAgMCA2LjEgMTNIMy41YS41LjUgMCAwIDEtLjUtLjV2LTVjMC0uMjguMjItLjUuNS0uNWgyLjZjLjM4IDAgLjc1LS4xNCAxLjAyLS40TDExIDN2Ny4yNmMuMy0uMjUuNjQtLjQ4IDEtLjY2VjNabS4wNiA4LjQ0YTIgMiAwIDAgMS0xLjQzIDIuNDhsLS40Ni4xMmE0LjcgNC43IDAgMCAwIC4wMSAxLjAxbC4zNS4wOUEyIDIgMCAwIDEgMTIgMTcuNjZsLS4xMy40MmMuMjYuMi41NC4zOC44NC41MmwuMzItLjM1YTIgMiAwIDAgMSAyLjkxIDBsLjM0LjM2Yy4zLS4xMy41Ny0uMy44Mi0uNWwtLjE2LS41NWEyIDIgMCAwIDEgMS40My0yLjQ4bC40Ny0uMTJhNC43IDQuNyAwIDAgMC0uMDEtMS4wMWwtLjM1LS4wOUEyIDIgMCAwIDEgMTcgMTEuMzRsLjEzLS40MmMtLjI2LS4yLS41NC0uMzgtLjg0LS41MmwtLjMyLjM1YTIgMiAwIDAgMS0yLjkxIDBsLS4zNC0uMzZjLS4zLjEzLS41Ny4zLS44Mi41bC4xNS41NVptMi40NCA0LjA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJTZXR0aW5nczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJTZXR0aW5nczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQuNyAzLjQ0Yy4yLjIzLjMuNTEuMy44MXY3LjI1YTYuNSA2LjUgMCAwIDAtMy43NiA3Ljc3TDcuOTggMTYuNUg0LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNC41QzIgOC41MSAzIDcuNSA0LjI1IDcuNWgzLjczbDQuOTYtNC4yYTEuMjUgMS4yNSAwIDAgMSAxLjc2LjE0Wm0tLjQyIDEwLjU0YTIgMiAwIDAgMS0xLjQ0IDIuNWwtLjU5LjE0YTUuNzMgNS43MyAwIDAgMCAwIDEuOGwuNTUuMTNhMiAyIDAgMCAxIDEuNDUgMi41MmwtLjE5LjYzYy40NC4zOC45NC43IDEuNDkuOTJsLjQ5LS41MmEyIDIgMCAwIDEgMi45IDBsLjUuNTJhNS4yOCA1LjI4IDAgMCAwIDEuNDgtLjlsLS4yLS43YTIgMiAwIDAgMSAxLjQ0LTIuNWwuNTktLjEzYTUuNzIgNS43MiAwIDAgMCAwLTEuODFsLS41NS0uMTNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMTktLjYzYy0uNDQtLjM5LS45NC0uNy0xLjQ5LS45M2wtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjkxbC4yLjY5Wk0xNy41IDE5Yy0uOCAwLTEuNDUtLjY3LTEuNDUtMS41UzE2LjcgMTYgMTcuNSAxNmMuOCAwIDEuNDUuNjcgMS40NSAxLjVTMTguMyAxOSAxNy41IDE5WlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlclNldHRpbmdzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJTZXR0aW5nczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0LjcgMy40NGMuMi4yMy4zLjUxLjMuODF2Ny4yNWE2LjUgNi41IDAgMCAwLTEuNS44OHYtNy42TDguNTIgOUg0LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2NC41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDQuMjdsMi41IDIuMWE2LjU4IDYuNTggMCAwIDAgLjIyIDIuMTdMNy45OCAxNi41SDQuMjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di00LjVDMiA4LjUxIDMgNy41IDQuMjUgNy41aDMuNzNsNC45Ni00LjJhMS4yNSAxLjI1IDAgMCAxIDEuNzYuMTRabS0uNDIgMTAuNTRhMiAyIDAgMCAxLTEuNDQgMi41bC0uNTkuMTRhNS43MyA1LjczIDAgMCAwIDAgMS44bC41NS4xM2EyIDIgMCAwIDEgMS40NSAyLjUybC0uMTkuNjNjLjQ0LjM4Ljk0LjcgMS40OS45MmwuNDktLjUyYTIgMiAwIDAgMSAyLjkgMGwuNS41MmE1LjI4IDUuMjggMCAwIDAgMS40OC0uOWwtLjItLjdhMiAyIDAgMCAxIDEuNDQtMi41bC41OS0uMTNhNS43MiA1LjcyIDAgMCAwIDAtMS44MWwtLjU1LS4xM2EyIDIgMCAwIDEtMS40NS0yLjUxbC4xOS0uNjNjLS40NC0uMzktLjk0LS43LTEuNDktLjkzbC0uNDkuNTJhMiAyIDAgMCAxLTIuOSAwbC0uNS0uNTJjLS41NC4yMi0xLjA0LjUzLTEuNDguOTFsLjIuNjlaTTE3LjUgMTljLS44IDAtMS40NS0uNjctMS40NS0xLjVTMTYuNyAxNiAxNy41IDE2Yy44IDAgMS40NS42NyAxLjQ1IDEuNVMxOC4zIDE5IDE3LjUgMTlaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyU2V0dGluZ3MyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGVha2VyU2V0dGluZ3MyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE0LjQgMy44NGMuOC0uNzUgMi4xLS4xOCAyLjEuOXY5LjRBNy40OSA3LjQ5IDAgMCAwIDEzLjQzIDIzbC0zLjk3LTMuN2MtLjMzLS4zLS43NS0uNDctMS4yLS40N0g1LjI1QTMuMjQgMy4yNCAwIDAgMSAyIDE1LjZ2LTMuNDZBMy4yNCAzLjI0IDAgMCAxIDUuMjUgOC45aDMuMDFjLjQ1IDAgLjg3LS4xNyAxLjItLjQ3bDQuOTMtNC42Wm0yLjQgMTIuODZhMiAyIDAgMCAxLTEuNDUgMi41bC0xLjAyLjI1YTYuOCA2LjggMCAwIDAgMCAyLjE1bC45OC4yM2EyIDIgMCAwIDEgMS40NSAyLjUybC0uMzIgMS4xYy41Mi40NSAxLjExLjgzIDEuNzUgMS4xbC44NS0uOWEyIDIgMCAwIDEgMi45IDBsLjg1LjlhNi4yIDYuMiAwIDAgMCAxLjc1LTEuMDlsLS4zNC0xLjE2YTIgMiAwIDAgMSAxLjQ0LTIuNWwxLjAzLS4yNWE2LjggNi44IDAgMCAwIDAtMi4xNWwtLjk5LS4yM2EyIDIgMCAwIDEtMS40NS0yLjUxbC4zMy0xLjFhNi4yIDYuMiAwIDAgMC0xLjc1LTEuMWwtLjg1Ljg4YTIgMiAwIDAgMS0yLjkgMGwtLjg1LS45YTYuMiA2LjIgMCAwIDAtMS43NSAxLjFsLjM0IDEuMTZabTMuNyA1LjNhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyU2V0dGluZ3MyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlclNldHRpbmdzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTYuNSA0Ljc0YzAtMS4wOC0xLjMtMS42NS0yLjEtLjlsLTQuOTQgNC42Yy0uMzMuMy0uNzUuNDctMS4yLjQ3SDUuMjVBMy4yNCAzLjI0IDAgMCAwIDIgMTIuMTR2My40NmEzLjI0IDMuMjQgMCAwIDAgMy4yNSAzLjIzaDMuMDFjLjQ1IDAgLjg3LjE3IDEuMi40N2wzLjk3IDMuN2E3LjQ3IDcuNDcgMCAwIDEtLjQzLTIuNDRsLTIuNTItMi4zNWMtLjYtLjU2LTEuNC0uODctMi4yMi0uODdINS4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc0di0zLjQ2YzAtLjk2Ljc4LTEuNzQgMS43NS0xLjc0aDMuMDFjLjgzIDAgMS42Mi0uMzIgMi4yMi0uODhMMTUgNS4zMnYxMC4wN2MuNDQtLjQ3Ljk1LS45IDEuNS0xLjI0di05LjRabS4zIDExLjk2YTIgMiAwIDAgMS0xLjQ1IDIuNWwtMS4wMi4yNWE2LjggNi44IDAgMCAwIDAgMi4xNWwuOTguMjNhMiAyIDAgMCAxIDEuNDUgMi41MmwtLjMyIDEuMWMuNTIuNDUgMS4xMS44MyAxLjc1IDEuMWwuODUtLjlhMiAyIDAgMCAxIDIuOSAwbC44NS45YTYuMiA2LjIgMCAwIDAgMS43NS0xLjA5bC0uMzQtMS4xNmEyIDIgMCAwIDEgMS40NC0yLjVsMS4wMy0uMjVhNi44IDYuOCAwIDAgMCAwLTIuMTVsLS45OS0uMjNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMzMtMS4xYTYuMiA2LjIgMCAwIDAtMS43NS0xLjFsLS44NS44OGEyIDIgMCAwIDEtMi45IDBsLS44NS0uOWE2LjIgNi4yIDAgMCAwLTEuNzUgMS4xbC4zNCAxLjE2Wm0zLjcgNS4zYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgU3BlYWtlclVzYjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJVc2IyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjMyIDIuMjdhMSAxIDAgMCAxIDEuNjguNzR2MTMuOThhMSAxIDAgMCAxLTEuNjguNzRsLTMuODctMy42QS41LjUgMCAwIDAgNi4xIDE0SDMuNUExLjUgMS41IDAgMCAxIDIgMTIuNXYtNUMyIDYuNjcgMi42NyA2IDMuNSA2aDIuNmEuNS41IDAgMCAwIC4zNS0uMTNsMy44Ny0zLjZaTTE0IDhWNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMSAxIDF2Mi4yYTEgMSAwIDAgMS0uMi42bC0xLjMgMS44VjE1YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMXYtMS40bC0xLjMxLTEuODRhMSAxIDAgMCAxLS4xOS0uNThWOWExIDEgMCAwIDEgMS0xWm0xIDBoMlY2aC0ydjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyVXNiMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJVc2IyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC4zMiAyLjI3YTEgMSAwIDAgMSAxLjY4Ljc0djEzLjk4YTEgMSAwIDAgMS0xLjY4Ljc0bC0zLjg4LTMuNkEuNS41IDAgMCAwIDYuMSAxNEgzLjVBMS41IDEuNSAwIDAgMSAyIDEyLjV2LTVDMiA2LjY3IDIuNjcgNiAzLjUgNmgyLjZhLjUuNSAwIDAgMCAuMzQtLjEzbDMuODgtMy42Wm0uNjguNzRMNy4xMiA2LjZjLS4yNy4yNi0uNjQuNC0xLjAyLjRIMy41YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDIuNmMuMzggMCAuNzUuMTQgMS4wMi40TDExIDE3VjNaTTE0IDhWNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMSAxIDF2Mi4yYTEgMSAwIDAgMS0uMi42bC0xLjMgMS44VjE1YTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMXYtMS40bC0xLjMxLTEuODRhMSAxIDAgMCAxLS4xOS0uNThWOWExIDEgMCAwIDEgMS0xWm0xIDBoMlY2aC0ydjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyVXNiMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlclVzYjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUgNC4yNWExLjI1IDEuMjUgMCAwIDAtMi4wNi0uOTZMNy45OCA3LjVINC4yNUMzLjAxIDcuNSAyIDguNTIgMiA5Ljc2djQuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgzLjczbDQuOTYgNC4yYTEuMjUgMS4yNSAwIDAgMCAyLjA2LS45NVY0LjI1Wm0xLjE2IDkuN0wxNy41IDE2djJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJsMS4zMy0yYTEgMSAwIDAgMCAuMTctLjU2VjEwYTEgMSAwIDAgMC0xLTFWN2ExIDEgMCAwIDAtMS0xaC0zYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAtMSAxdjMuNGMwIC4yLjA2LjQuMTYuNTVaTTE4LjUgNy41aDJWOWgtMlY3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyVXNiMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwZWFrZXJVc2IyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNSA0LjI1YTEuMjUgMS4yNSAwIDAgMC0yLjA2LS45Nkw3Ljk4IDcuNUg0LjI1QzMuMDEgNy41IDIgOC41MiAyIDkuNzZ2NC41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aDMuNzNsNC45NiA0LjJhMS4yNSAxLjI1IDAgMCAwIDIuMDYtLjk1VjQuMjVaTTguNTIgOWw0Ljk4LTQuMjFWMTkuMkw4LjUyIDE1SDQuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTQuNWMwLS40Mi4zNC0uNzUuNzUtLjc1aDQuMjdabTcuNjQgNC45NUwxNy41IDE2djJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJsMS4zMy0yYTEgMSAwIDAgMCAuMTctLjU2VjEwYTEgMSAwIDAgMC0xLTFWN2ExIDEgMCAwIDAtMS0xaC0zYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAtMSAxdjMuNGMwIC4yLjA2LjQuMTYuNTVaTTE4LjUgNy41aDJWOWgtMlY3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGVha2VyVXNiMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlclVzYjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTYuNSA0LjgxYzAtMS4wOS0xLjMtMS42Ni0yLjEtLjlMOS40NSA4LjUyYy0uMzMuMy0uNzUuNDgtMS4yLjQ4SDUuMjVBMy4yNSAzLjI1IDAgMCAwIDIgMTIuMjZ2My40OUMyIDE3LjU1IDMuNDYgMTkgNS4yNSAxOWgzLjAxYy40NSAwIC44Ny4xNyAxLjIuNDdsNC45NCA0LjYzYy44Ljc0IDIuMS4xOCAyLjEtLjkyVjQuODFabTMgMTYuMTl2LTIuMzNsLTEuMzctMi40NGExIDEgMCAwIDEtLjEzLS41di00LjE2YTEgMSAwIDAgMSAxLTFWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyLjU3YTEgMSAwIDAgMSAxIDF2NC4xN2ExIDEgMCAwIDEtLjEzLjQ5bC0xLjM3IDIuNDRWMjFhMSAxIDAgMCAxLTEgMWgtM2ExIDEgMCAwIDEtMS0xWm00LTEyLjVoLTN2Mi4wN2gzVjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwZWFrZXJVc2IyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BlYWtlclVzYjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE0LjQgMy45Yy44LS43NSAyLjEtLjE4IDIuMS45MXYxOC4zN2MwIDEuMS0xLjMgMS42Ni0yLjEuOTJsLTQuOTQtNC42M2MtLjMzLS4zLS43NS0uNDctMS4yLS40N0g1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE1Ljc1di0zLjVjMC0xLjc5IDEuNDYtMy4yNCAzLjI1LTMuMjRoMy4wMWMuNDUgMCAuODctLjE3IDEuMi0uNDhsNC45My00LjYzWm0uNiAxLjUtNC41MiA0LjIzYy0uNi41Ni0xLjQuODgtMi4yMi44OEg1LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYzLjQ5YzAgLjk2Ljc4IDEuNzUgMS43NSAxLjc1aDMuMDFjLjgzIDAgMS42Mi4zMSAyLjIyLjg4TDE1IDIyLjZWNS4zOVpNMTkuNSAyMXYtMi4zM2wtMS4zNy0yLjQ0YTEgMSAwIDAgMS0uMTMtLjV2LTQuMTZhMSAxIDAgMCAxIDEtMVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIuNTdhMSAxIDAgMCAxIDEgMXY0LjE3YTEgMSAwIDAgMS0uMTMuNDlsLTEuMzcgMi40NFYyMWExIDEgMCAwIDEtMSAxaC0zYTEgMSAwIDAgMS0xLTFabTQtMTIuNWgtM3YyLjA3aDNWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3Bpbm5lcklvczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwaW5uZXJJb3MxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuNSA4QTUuNSA1LjUgMCAxIDEgOCAxMy41Ljc1Ljc1IDAgMCAwIDggMTVhNyA3IDAgMSAwLTctNyAuNzUuNzUgMCAwIDAgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGlubmVySW9zMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwaW5uZXJJb3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDhhNiA2IDAgMSAxIDYgNiAuNS41IDAgMCAwIDAgMSA3IDcgMCAxIDAtNy03IC41LjUgMCAwIDAgMSAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3Bpbm5lcklvczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwaW5uZXJJb3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDMuNUE2LjUgNi41IDAgMCAwIDMuNSAxMCAuNzUuNzUgMCAwIDEgMiAxMGE4IDggMCAxIDEgOCA4IC43NS43NSAwIDAgMSAwLTEuNSA2LjUgNi41IDAgMSAwIDAtMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGlubmVySW9zMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwaW5uZXJJb3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAzYTcgNyAwIDAgMC03IDcgLjUuNSAwIDAgMS0xIDAgOCA4IDAgMSAxIDggOCAuNS41IDAgMCAxIDAtMSA3IDcgMCAxIDAgMC0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0SGludDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0SGludDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS41IDJjLjI4IDAgLjUuMjIuNS41djE1YS41LjUgMCAwIDEtMSAwdi0xNWMwLS4yOC4yMi0uNS41LS41Wk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNFY0SDRabTExIDFhMSAxIDAgMCAxIDEgMXYuNWEuNS41IDAgMCAwIDEgMFY2YTIgMiAwIDAgMC0yLTJoLS41YS41LjUgMCAwIDAgMCAxaC41Wm0wIDEwYTEgMSAwIDAgMCAxLTF2LS41YS41LjUgMCAwIDEgMSAwdi41YTIgMiAwIDAgMS0yIDJoLS41YS41LjUgMCAwIDEgMC0xaC41Wm0xLjUtN2EuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLS41LS41Wm0tNC00YS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEgMC0xaDFabS41IDExLjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhpbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIaW50MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS41IDJjLjI4IDAgLjUuMjIuNS41djE1YS41LjUgMCAwIDEtMSAwdi0xNWMwLS4yOC4yMi0uNS41LS41Wk0yIDZjMC0xLjEuOS0yIDItMmg0djFINGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg0djFINGEyIDIgMCAwIDEtMi0yVjZabTEzLTFhMSAxIDAgMCAxIDEgMXYuNWEuNS41IDAgMCAwIDEgMFY2YTIgMiAwIDAgMC0yLTJoLS41YS41LjUgMCAwIDAgMCAxaC41Wm0wIDEwYTEgMSAwIDAgMCAxLTF2LS41YS41LjUgMCAwIDEgMSAwdi41YTIgMiAwIDAgMS0yIDJoLS41YS41LjUgMCAwIDEgMC0xaC41Wm0xLjUtN2EuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLS41LS41Wm0tNC00YS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEgMC0xaDFabS41IDExLjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWwxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTguNSAxYy44MyAwIDEuNS42NyAxLjUgMS41VjRIMlYyLjVDMiAxLjY3IDIuNjcgMSAzLjUgMWg1Wm0yIDRhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTFoOVpNMiA3djEuNWMwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMTEgNS41YS41LjUgMCAwIDAtLjUtLjVoLTlhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIC41LS41Wm0tMS0zVjRIOVYyLjVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwLS41LjVWNEgyVjIuNUMyIDEuNjcgMi42NyAxIDMuNSAxaDVjLjgzIDAgMS41LjY3IDEuNSAxLjVabS03IDZWN0gydjEuNWMwIC44My42NyAxLjUgMS41IDEuNWg1Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDl2MS41YS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRIb3Jpem9udGFsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNC41IDhhLjUuNSAwIDAgMCAwLTFoLTEzYS41LjUgMCAwIDAgMCAxaDEzWk0xMSAxYTIgMiAwIDAgMSAyIDJ2M0gzVjNjMC0xLjEuOS0yIDItMmg2Wk0zIDl2M2MwIDEuMS45IDIgMiAyaDZhMiAyIDAgMCAwIDItMlY5SDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTQuNSA4YS41LjUgMCAwIDAgMC0xaC0xM2EuNS41IDAgMCAwIDAgMWgxM1pNMyA2aDFWM2ExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXYzaDFWM2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYzWm0wIDZWOWgxdjNhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWOWgxdjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3LjUgMTBhLjUuNSAwIDAgMCAwLTFoLTE1YS41LjUgMCAwIDAgMCAxaDE1Wk0xNCAyYTIgMiAwIDAgMSAyIDJ2NEg0VjRjMC0xLjEuOS0yIDItMmg4Wk00IDExdjRjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTRINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0SG9yaXpvbnRhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNy41IDEwYS41LjUgMCAwIDAgMC0xaC0xNWEuNS41IDAgMCAwIDAgMWgxNVpNMTYgNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0aDFWNGExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY0aDFWNFptMCA3aC0xdjRhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF2LTRINHY0YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0ydi00WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRIb3Jpem9udGFsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMS4yNSAxMi41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxOC41Wk0xNy43NSAyQzE4Ljk5IDIgMjAgMyAyMCA0LjI1VjEwSDRWNC4yNUM0IDMuMDEgNSAyIDYuMjUgMmgxMS41Wk00IDE5LjI1VjEzLjVoMTZ2NS43NWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg2LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0SG9yaXpvbnRhbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0yMS4yNSAxMi41YS43NS43NSAwIDAgMCAwLTEuNUgyLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxOC41Wk0yMCA0LjI1QzIwIDMuMDEgMTkgMiAxNy43NSAySDYuMjVDNS4wMSAyIDQgMyA0IDQuMjVWMTBoMS41VjQuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMS41Yy40MSAwIC43NS4zNC43NS43NVYxMEgyMFY0LjI1Wm0tMTQuNSAxNVYxMy41SDR2NS43NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxMS41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjEzLjVoLTEuNXY1Ljc1YzAgLjQxLS4zNC43NS0uNzUuNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0SG9yaXpvbnRhbDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0SG9yaXpvbnRhbDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMi43NSAxM2EuNzUuNzUgMCAwIDAgMCAxLjVoMjIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVptMTguNS0xMUEyLjc1IDIuNzUgMCAwIDEgMjQgNC43NVYxMkg0VjQuNzVBMi43NSAyLjc1IDAgMCAxIDYuNzUgMmgxNC41Wk00IDIyLjc1VjE1LjVoMjB2Ny4yNWEyLjc1IDIuNzUgMCAwIDEtMi43NSAyLjc1SDYuNzVBMi43NSAyLjc1IDAgMCAxIDQgMjIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMi43NSAxM2EuNzUuNzUgMCAwIDAgMCAxLjVoMjIuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMi43NVpNMjQgNC43NUEyLjc1IDIuNzUgMCAwIDAgMjEuMjUgMkg2Ljc1QTIuNzUgMi43NSAwIDAgMCA0IDQuNzVWMTJoMS41VjQuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTQuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVYxMkgyNFY0Ljc1Wm0tMTguNSAxOFYxNS41SDR2Ny4yNWEyLjc1IDIuNzUgMCAwIDAgMi43NSAyLjc1aDE0LjVBMi43NSAyLjc1IDAgMCAwIDI0IDIyLjc1VjE1LjVoLTEuNXY3LjI1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg2Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWwzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTMgMTVhMSAxIDAgMSAwIDAgMmgyNmExIDEgMCAxIDAgMC0ySDNabTMgMTEuNXYtOGgyMHY4YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtMTNBMy41IDMuNSAwIDAgMSA2IDI2LjVabTIwLTEzdi04QTMuNSAzLjUgMCAwIDAgMjIuNSAyaC0xM0EzLjUgMy41IDAgMCAwIDYgNS41djhoMjBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWwzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMyAxNWExIDEgMCAxIDAgMCAyaDI2YTEgMSAwIDEgMCAwLTJIM1ptNSAxMS41di04SDZ2OEEzLjUgMy41IDAgMCAwIDkuNSAzMGgxM2EzLjUgMy41IDAgMCAwIDMuNS0zLjV2LThoLTJ2OGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgOCAyNi41Wm0xOC0xM3YtOEEzLjUgMy41IDAgMCAwIDIyLjUgMmgtMTNBMy41IDMuNSAwIDAgMCA2IDUuNXY4aDJ2LThDOCA0LjY3IDguNjcgNCA5LjUgNGgxM2MuODMgMCAxLjUuNjcgMS41IDEuNXY4aDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWw0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdEhvcml6b250YWw0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTQyLjc1IDI1LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41SDUuMjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDM3LjVaTTggMzkuNzVWMjcuNWgzMnYxMi4yNUM0MCA0Mi4xIDM4LjEgNDQgMzUuNzUgNDRoLTIzLjVBNC4yNSA0LjI1IDAgMCAxIDggMzkuNzVaTTQwIDIxVjguMjVDNDAgNS45IDM4LjEgNCAzNS43NSA0aC0yMy41QTQuMjUgNC4yNSAwIDAgMCA4IDguMjVWMjFoMzJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdEhvcml6b250YWw0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRIb3Jpem9udGFsNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNDIuNzUgMjUuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVINS4yNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMzcuNVpNMTAuNSAzOS43NVYyNy41SDh2MTIuMjVDOCA0Mi4xIDkuOSA0NCAxMi4yNSA0NGgyMy41QzM4LjEgNDQgNDAgNDIuMSA0MCAzOS43NVYyNy41aC0yLjV2MTIuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0yMy41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVaTTQwIDIxVjguMjVDNDAgNS45IDM4LjEgNCAzNS43NSA0aC0yMy41QTQuMjUgNC4yNSAwIDAgMCA4IDguMjVWMjFoMi41VjguMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMjMuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVYyMUg0MFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0VmVydGljYWwxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk02IDEuNWEuNS41IDAgMCAwLTEgMHY5YS41LjUgMCAwIDAgMSAwdi05Wm0tNSAyQzEgMi42NyAxLjY3IDIgMi41IDJINHY4SDIuNUExLjUgMS41IDAgMCAxIDEgOC41di01Wk03IDEwaDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVDMTAgMi42NyA5LjMzIDIgOC41IDJIN3Y4WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRWZXJ0aWNhbDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNS41IDFhLjUuNSAwIDAgMC0uNS41djlhLjUuNSAwIDAgMCAxIDB2LTlhLjUuNSAwIDAgMC0uNS0uNVptLTMgMUg0djFIMi41YS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41SDR2MUgyLjVBMS41IDEuNSAwIDAgMSAxIDguNXYtNUMxIDIuNjcgMS42NyAyIDIuNSAyWm02IDdIN3YxaDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVDMTAgMi42NyA5LjMzIDIgOC41IDJIN3YxaDEuNWMuMjggMCAuNS4yMi41LjV2NWEuNS41IDAgMCAxLS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdFZlcnRpY2FsMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRWZXJ0aWNhbDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWk0xIDVjMC0xLjEuOS0yIDItMmgzdjEwSDNhMiAyIDAgMCAxLTItMlY1Wm04IDhoM2EyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg5djEwWlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRWZXJ0aWNhbDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOCAxLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWk02IDEzdi0xSDNhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTFoM1YzSDNhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoM1ptNiAwSDl2LTFoM2ExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUg5VjNoM2EyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0VmVydGljYWwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMCAyLjVhLjUuNSAwIDAgMC0xIDB2MTVhLjUuNSAwIDAgMCAxIDB2LTE1Wk0yIDZjMC0xLjEuOS0yIDItMmg0djEySDRhMiAyIDAgMCAxLTItMlY2Wm05IDEwaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTR2MTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdFZlcnRpY2FsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0VmVydGljYWwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyLjVhLjUuNSAwIDAgMC0xIDB2MTVhLjUuNSAwIDAgMCAxIDB2LTE1Wk00IDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoNHYtMUg0YTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDRWNEg0Wm03IDB2MWg0YTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxaC00djFoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0VmVydGljYWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMi41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVaTTIgNi4yNUMyIDUuMDEgMyA0IDQuMjUgNEgxMHYxNkg0LjI1QzMuMDEgMjAgMiAxOSAyIDE3Ljc1VjYuMjVaTTE5LjI1IDIwSDEzLjVWNGg1Ljc1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djExLjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcGxpdFZlcnRpY2FsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0VmVydGljYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi41IDIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE4LjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVaTTQuMjUgNEMzLjAxIDQgMiA1IDIgNi4yNXYxMS41QzIgMTguOTkgMyAyMCA0LjI1IDIwSDEwdi0xLjVINC4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVIMTBWNEg0LjI1Wm0xNSAxNC41SDEzLjVWMjBoNS43NWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVY2LjI1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDEzLjV2MS41aDUuNzVjLjQxIDAgLjc1LjM0Ljc1Ljc1djExLjVjMCAuNDEtLjM0Ljc1LS43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0VmVydGljYWwyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMyAyNS4yNWEuNzUuNzUgMCAwIDAgMS41IDBWMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2MjIuNVpNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRIMTJ2MjBINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAyMS4yNVY2Ljc1Wk0yMi43NSAyNEgxNS41VjRoNy4yNWEyLjc1IDIuNzUgMCAwIDEgMi43NSAyLjc1djE0LjVBMi43NSAyLjc1IDAgMCAxIDIyLjc1IDI0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRWZXJ0aWNhbDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTMgMjUuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIyLjVaTTQuNzUgNEEyLjc1IDIuNzUgMCAwIDAgMiA2Ljc1djE0LjVBMi43NSAyLjc1IDAgMCAwIDQuNzUgMjRIMTJ2LTEuNUg0Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNi43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNUgxMlY0SDQuNzVabTE4IDE4LjVIMTUuNVYyNGg3LjI1YTIuNzUgMi43NSAwIDAgMCAyLjc1LTIuNzVWNi43NUEyLjc1IDIuNzUgMCAwIDAgMjIuNzUgNEgxNS41djEuNWg3LjI1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djE0LjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRWZXJ0aWNhbDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwbGl0VmVydGljYWwzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE1IDI5YTEgMSAwIDEgMCAyIDBWM2ExIDEgMCAxIDAtMiAwdjI2Wm0xMS41LTNoLThWNmg4QTMuNSAzLjUgMCAwIDEgMzAgOS41djEzYTMuNSAzLjUgMCAwIDEtMy41IDMuNVptLTEzLTIwaC04QTMuNSAzLjUgMCAwIDAgMiA5LjV2MTNBMy41IDMuNSAwIDAgMCA1LjUgMjZoOFY2WlwiXSk7XG5leHBvcnQgY29uc3QgU3BsaXRWZXJ0aWNhbDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMTUgMjlhMSAxIDAgMSAwIDIgMFYzYTEgMSAwIDEgMC0yIDB2MjZabTExLjUtNWgtOHYyaDhhMy41IDMuNSAwIDAgMCAzLjUtMy41di0xM0EzLjUgMy41IDAgMCAwIDI2LjUgNmgtOHYyaDhjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTNjMCAuODMtLjY3IDEuNS0xLjUgMS41Wm0tMTMtMThoLThBMy41IDMuNSAwIDAgMCAyIDkuNXYxM0EzLjUgMy41IDAgMCAwIDUuNSAyNmg4di0yaC04QTEuNSAxLjUgMCAwIDEgNCAyMi41di0xM0M0IDguNjcgNC42NyA4IDUuNSA4aDhWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0VmVydGljYWw0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcGxpdFZlcnRpY2FsNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNS41IDUuMjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjM3LjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwVjUuMjVaTTM5Ljc1IDQwSDI3LjVWOGgxMi4yNUM0Mi4xIDggNDQgOS45IDQ0IDEyLjI1djIzLjVDNDQgMzguMSA0Mi4xIDQwIDM5Ljc1IDQwWk0yMSA4SDguMjVBNC4yNSA0LjI1IDAgMCAwIDQgMTIuMjV2MjMuNUM0IDM4LjEgNS45IDQwIDguMjUgNDBIMjFWOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwbGl0VmVydGljYWw0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BsaXRWZXJ0aWNhbDQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTI1LjUgNS4yNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2MzcuNWExLjI1IDEuMjUgMCAxIDAgMi41IDBWNS4yNVpNMzkuNzUgMzcuNUgyNy41VjQwaDEyLjI1QzQyLjEgNDAgNDQgMzguMSA0NCAzNS43NXYtMjMuNUM0NCA5LjkgNDIuMSA4IDM5Ljc1IDhIMjcuNXYyLjVoMTIuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2MjMuNWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVaTTIxIDhIOC4yNUE0LjI1IDQuMjUgMCAwIDAgNCAxMi4yNXYyMy41QzQgMzguMSA1LjkgNDAgOC4yNSA0MEgyMXYtMi41SDguMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtMjMuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUgyMVY4WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMTQuNTMgNC4yOGE1LjUgNS41IDAgMCAwLS44LTEuM2wtMS43NSAxLjc0YTIgMiAwIDAgMCAyLjU1LS40NFptLTMuMjUtLjI2IDEuNzQtMS43NWE1LjUgNS41IDAgMCAwLTEuMy0uOCAyIDIgMCAwIDAtLjQ0IDIuNTVaTTEwIDNjMCAuNjUuMiAxLjI1LjU1IDEuNzRsLS44LjgtMy40OS0zLjQ5YTUuNDggNS40OCAwIDAgMSA0LjQtLjkzQTIuOTkgMi45OSAwIDAgMCAxMCAzWm0uNDYgMy4yNS44LS44YTIuOTkgMi45OSAwIDAgMCAzLjYyLS4xMSA1LjUzIDUuNTMgMCAwIDEtLjk0IDQuNGwtMy40OC0zLjQ5Wm0yLjgyIDQuMjRMOS43NSA2Ljk2bC0uNi42YTcuNDcgNy40NyAwIDAgMSAxLjgyIDQuMjQgNS41IDUuNSAwIDAgMCAyLjMxLTEuM1pNNC4yIDUuMDNhNS41IDUuNSAwIDAgMSAxLjMtMi4zMWwzLjU0IDMuNTMtLjYuNkE3LjQ3IDcuNDcgMCAwIDAgNC4yIDUuMDNaTTIuNSA2QzEuNjcgNiAxIDYuNjcgMSA3LjV2MUE2LjUgNi41IDAgMCAwIDcuNSAxNWgxYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMUE2LjUgNi41IDAgMCAwIDMuNSA2aC0xWm0xLjkgMy40Yy4yLS4yLjUtLjIuNyAwbDEuNSAxLjVhLjUuNSAwIDAgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTMuMDIgOS4zYTQuNDggNC40OCAwIDAgMCAuOTUtMy4zIDIuOTkgMi45OSAwIDAgMS0yLjk2LS4zbC0uOC44TDEzIDkuM1ptLS43MS43Mkw5LjE2IDYuODdhLjUyLjUyIDAgMCAxLS4wMy0uMDNMNS45OCAzLjY5Yy0uMzUuNDQtLjYyLjk1LS43OSAxLjVhNy40OCA3LjQ4IDAgMCAwLTEtLjE2IDUuNSA1LjUgMCAwIDEgNi40NS0zLjkxIDUuNTIgNS41MiAwIDAgMSAzLjg2IDMuMSA1LjUyIDUuNTIgMCAwIDEtMy41NCA3LjU5IDcuNDcgNy40NyAwIDAgMC0uMTUtMSA0LjQ5IDQuNDkgMCAwIDAgMS41LS44Wm0xLjQzLTUuMDNhNC41IDQuNSAwIDAgMC0uNzItMS4zbC0xLjI5IDEuMjhhMiAyIDAgMCAwIDIgLjAyWm0tMi43MS0uNzIgMS4yOC0xLjI5YTQuNSA0LjUgMCAwIDAtMS4zLS43MiAyIDIgMCAwIDAgLjAyIDJaTTEwIDIuMDNhNC41NSA0LjU1IDAgMCAwLTMuMzIuOTVMOS41IDUuOGwuOC0uOGEyLjk5IDIuOTkgMCAwIDEtLjMtMi45NlpNMi41IDdhLjUuNSAwIDAgMC0uNS41djFBNS41IDUuNSAwIDAgMCA3LjUgMTRoMWEuNS41IDAgMCAwIC41LS41di0xQTUuNSA1LjUgMCAwIDAgMy41IDdoLTFaTTEgNy41QzEgNi42NyAxLjY3IDYgMi41IDZoMWE2LjUgNi41IDAgMCAxIDYuNSA2LjV2MWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTFBNi41IDYuNSAwIDAgMSAxIDguNXYtMVptMy40IDEuOWMuMi0uMi41LS4yLjcgMGwxLjUgMS41YS41LjUgMCAwIDEtLjcuN2wtMS41LTEuNWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNi41OCA0LjEzYTYgNiAwIDAgMSAuODMgMS4yOCAyIDIgMCAwIDEtMi40My4zMWwxLjYtMS42Wm0tLjctLjcxLTEuNiAxLjZhMiAyIDAgMCAxIC4zLTIuNDQgNiA2IDAgMCAxIDEuMy44NFpNMTggOGE2IDYgMCAwIDAtLjIxLTEuNTkgMi45OSAyLjk5IDAgMCAxLTMuNTMuMDRMMTMuMjEgNy41bDMuOCAzLjhjLjYzLS45NC45OS0yLjA4Ljk5LTMuM1ptLTUtNGMwLS42Ny4yMi0xLjI5LjU5LTEuNzlhNiA2IDAgMCAwLTQuOS43OGwzLjgxIDMuOCAxLjA1LTEuMDVBMi45OSAyLjk5IDAgMCAxIDEzIDRabS0xLjMgNWE4Ljk3IDguOTcgMCAwIDEgMi4yIDQuNyA2IDYgMCAwIDAgMi40OS0xLjZMMTIuNSA4LjJsLS44LjhabS4xLTEuNS0uOC44YTguOTcgOC45NyAwIDAgMC00LjctMi4yQTYgNiAwIDAgMSA3LjkgMy42bDMuOSAzLjg5Wk0zLjUgN0MyLjY3IDcgMiA3LjY3IDIgOC41VjEwYTggOCAwIDAgMCA4IDhoMS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNWE4IDggMCAwIDAtOC04SDMuNVptMi42NSA0LjE1Yy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEzLjcgMTIuN2E1IDUgMCAwIDAgMS40Ni0uODNMOC4xMyA0Ljg0QTUgNSAwIDAgMCA3LjMgNi4zYTguOTUgOC45NSAwIDAgMC0xLS4yIDYgNiAwIDEgMSA3LjYgNy42IDguOTcgOC45NyAwIDAgMC0uMi0xWm0tMS00LjcgMy4xNyAzLjE2YTQuOTggNC45OCAwIDAgMCAxLjA2LTQuMDIgMi45OSAyLjk5IDAgMCAxLTMuMTctLjJMMTIuNzEgOFptMy4xNy0zLjE2LTEuMzkgMS4zOGEyIDIgMCAwIDAgMi4xNi0uMDggNSA1IDAgMCAwLS43Ny0xLjNaTTEyLjUgNC41YzAtLjUyLjEzLTEgLjM2LTEuNDNhNS4wMyA1LjAzIDAgMCAwLTQuMDIgMS4wNkwxMiA3LjI5bDEuMDUtMS4wNWEyLjk5IDIuOTkgMCAwIDEtLjU1LTEuNzRabTEgMGMwIC4zNy4xLjcyLjI4IDEuMDJsMS4zOC0xLjRhNSA1IDAgMCAwLTEuMy0uNzYgMiAyIDAgMCAwLS4zNiAxLjE0Wk0zLjUgOGEuNS41IDAgMCAwLS41LjVWMTBhNyA3IDAgMCAwIDcgN2gxLjVhLjUuNSAwIDAgMCAuNS0uNVYxNWE3IDcgMCAwIDAtNy03SDMuNVpNMiA4LjVDMiA3LjY3IDIuNjcgNyAzLjUgN0g1YTggOCAwIDAgMSA4IDh2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxMGE4IDggMCAwIDEtOC04VjguNVptNC4xNSAyLjY1Yy4yLS4yLjUtLjIuNyAwbDIgMmEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMC4xNiA0LjlhOCA4IDAgMCAxIDEuMDQgMS42IDIuNzUgMi43NSAwIDAgMS0zLjggMS4xNWwyLjc2LTIuNzVaTTE5LjEgMy44NGwtMi43NSAyLjc1QTIuNzQgMi43NCAwIDAgMSAxNy41IDIuOGMuNTcuMjggMS4xMS42MyAxLjYgMS4wNFpNMjIgMTBjMC0uNjItLjA3LTEuMjEtLjItMS43OWE0LjI0IDQuMjQgMCAwIDEtNS40OC41M2wtLjc2Ljc2IDUuMDMgNS4wM0E3Ljk2IDcuOTYgMCAwIDAgMjIgMTBabS03LjUtNC43NWMwLTEuMi41LTIuMjggMS4yOS0zLjA1YTguMDMgOC4wMyAwIDAgMC02LjMyIDEuMmw1LjAzIDUuMDQuNzYtLjc2YTQuMjMgNC4yMyAwIDAgMS0uNzYtMi40M1ptMCA1LjMxIDUuMTMgNS4xM0E3Ljk5IDcuOTkgMCAwIDEgMTYgMTcuNzVjMC0yLjQyLS44OC00LjY0LTIuMzUtNi4zNGwuODUtLjg1Wm0tMS45LS4yMUE5LjcxIDkuNzEgMCAwIDAgNi4yNCA4YTcuOTkgNy45OSAwIDAgMSAyLjA2LTMuNjNsNS4xMyA1LjEzLS44NS44NVpNNC4yNCA5QzMuMDEgOSAyIDEwIDIgMTEuMjV2MkE4Ljc1IDguNzUgMCAwIDAgMTAuNzUgMjJoMmMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMkE4Ljc1IDguNzUgMCAwIDAgNi4yNSA5aC0yWm0yLjQ3IDQuNzJjLjMtLjMuNzctLjMgMS4wNiAwbDIuNSAyLjVhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi41LTIuNWEuNzUuNzUgMCAwIDEgMC0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xOC4wNCAxNS4xYy0uNjQuNS0xLjM3Ljg4LTIuMTYgMS4xMi4wOC41LjEyIDEgLjEyIDEuNTNBOCA4IDAgMSAwIDYuMjUgOGMuNTIgMCAxLjAzLjA0IDEuNTMuMTIuMjQtLjguNjItMS41MiAxLjEyLTIuMTZsOS4xNCA5LjE0Wm0xLjA2LTEuMDZMMTUuMDYgMTBsLjc2LS43NmE0LjIzIDQuMjMgMCAwIDAgNC42NS4xMyA2LjU2IDYuNTYgMCAwIDEtMS4zNyA0LjY3Wk0xNi4yMiAzLjg5Yy42Ni4yNCAxLjI3LjU5IDEuODIgMS4wMWwtMi4yIDIuMmEyLjc0IDIuNzQgMCAwIDEgLjM4LTMuMjFabS0xLjQ2IDQuMjktLjc2Ljc2TDkuOTYgNC45YTYuNDcgNi40NyAwIDAgMSA0LjY3LTEuMzcgNC4yMyA0LjIzIDAgMCAwIC4xMyA0LjY1Wm01LjM1LS40YTIuNzQgMi43NCAwIDAgMS0zLjIuMzdsMi4xOS0yLjE5Yy40Mi41NS43NyAxLjE2IDEgMS44MlpNNC4yNSAxMC41YS43NS43NSAwIDAgMC0uNzUuNzV2MmMwIDQgMy4yNSA3LjI1IDcuMjUgNy4yNWgyYy40MSAwIC43NS0uMzQuNzUtLjc1di0yYzAtNC0zLjI1LTcuMjUtNy4yNS03LjI1aC0yWk0yIDExLjI1QzIgMTAuMDEgMyA5IDQuMjUgOWgyQTguNzUgOC43NSAwIDAgMSAxNSAxNy43NXYyYzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC0yQTguNzUgOC43NSAwIDAgMSAyIDEzLjI1di0yWm01Ljc4IDIuNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41YS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEFtZXJpY2FuRm9vdGJhbGwyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEFtZXJpY2FuRm9vdGJhbGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjk0IDIuNjRBMTEuNjMgMTEuNjMgMCAwIDAgMi42IDEwLjlsNi42IDYuNmExMC45IDEwLjkgMCAwIDAgNi4wOC00LjA4IDEzLjMyIDEzLjMyIDAgMCAwIDIuMDctNC4zNWwtNi40Mi02LjQzWm0uOTEgNS41Yy4yLjIuMi41MiAwIC43MWwtMyAzYS41LjUgMCAwIDEtLjctLjdsMy0zYy4yLS4yLjUtLjIuNyAwWm01LjgtLjJjLjI2LTEuMy4zNi0yLjU2LjM1LTMuNzFBMi4yNSAyLjI1IDAgMCAwIDE1LjcgMmMtMS4zMi4wMi0yLjUzLjE1LTMuNjIuMzdsNS41NiA1LjU2Wm0tOS42IDkuODEtNS43Mi01LjcyQTE2LjEgMTYuMSAwIDAgMCAyIDE1Ljg0Yy4wNCAxLjE4IDEgMi4wOSAyLjE1IDIuMTQgMS40My4wNyAyLjcyLS4wMiAzLjg5LS4yM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QW1lcmljYW5Gb290YmFsbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEFtZXJpY2FuRm9vdGJhbGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMS44NSA4Ljg1YS41LjUgMCAxIDAtLjctLjdsLTMgM2EuNS41IDAgMSAwIC43LjdsMy0zWk0xOCA0LjIzQTIuMjUgMi4yNSAwIDAgMCAxNS43IDJjLTUuNjIuMDctOS4xMiAyLjE1LTExLjE4IDQuOTYtMi4wNCAyLjc4LTIuNiA2LjItMi41MSA4Ljg4LjA0IDEuMTggMSAyLjA5IDIuMTUgMi4xNCA1LjUzLjI2IDkuMDMtMS43MyAxMS4xMy00LjU2IDIuMDctMi44IDIuNzMtNi4zNiAyLjcxLTkuMlpNMTUuNzEgM2MuNzIgMCAxLjI5LjU0IDEuMyAxLjIzIDAgLjktLjA3IDEuODYtLjIzIDIuODRsLTMuODQtMy44NEMxMy43OSAzLjA5IDE0LjcgMyAxNS43IDNabS0zLjk1LjQ2IDQuNzkgNC44Yy0uMzkgMS42LTEuMDQgMy4xOS0yLjA3IDQuNTZhMTAuMDEgMTAuMDEgMCAwIDEtNi4xIDMuODUuNS41IDAgMCAwLS4wMy0uMDJsLTQuOTMtNC45M2ExMS44IDExLjggMCAwIDEgMS45LTQuMTcgMTAuOCAxMC44IDAgMCAxIDYuNDQtNC4wOVpNMy4xOSAxMi45bDMuOTggMy45OWMtLjkuMTEtMS44OS4xNS0yLjk2LjFBMS4yNCAxLjI0IDAgMCAxIDMgMTUuODFjLS4wMy0uOTEuMDItMS45LjE4LTIuOTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEFtZXJpY2FuRm9vdGJhbGwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEFtZXJpY2FuRm9vdGJhbGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIxLjM4IDExLjVhMTQuNzggMTQuNzggMCAwIDEtOS45NyA5LjlsLTguODItOC44YTE0Ljc4IDE0Ljc4IDAgMCAxIDkuOTEtOS45OGw4Ljg4IDguODhabS03LjY2LTIuMjgtNC41IDQuNWEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDQuNS00LjVhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNlpNMi4yIDE0LjMybDcuNDggNy40OGMtLjguMTMtMS42LjItMi40My4yaC0xQTQuMjUgNC4yNSAwIDAgMSAyIDE3Ljc1di0xYzAtLjgzLjA3LTEuNjQuMi0yLjQzWm0xMi4wMi0xMi4xIDcuNTYgNy41NmMuMTUtLjgyLjIyLTEuNjcuMjItMi41M3YtMUMyMiAzLjkgMjAuMSAyIDE3Ljc1IDJoLTFjLS44NiAwLTEuNzEuMDctMi41My4yMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QW1lcmljYW5Gb290YmFsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEFtZXJpY2FuRm9vdGJhbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy43MiA5LjIyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTQuNSA0LjVhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmw0LjUtNC41Wk0xNy43NSAyQzIwLjEgMiAyMiAzLjkgMjIgNi4yNXYxQzIyIDE1LjQgMTUuNCAyMiA3LjI1IDIyaC0xQTQuMjUgNC4yNSAwIDAgMSAyIDE3Ljc1di0xQzIgOC42IDguNiAyIDE2Ljc1IDJoMVptMi43NSA0LjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVoLTFjLS40IDAtLjguMDItMS4yLjA1bDQuOSA0LjljLjAzLS40LjA1LS44LjA1LTEuMnYtMVptLS4zNSA0LjAyLTYuNDItNi40MmExMy4yNyAxMy4yNyAwIDAgMC05LjkgOS45N2w2LjM1IDYuMzZhMTMuMjcgMTMuMjcgMCAwIDAgOS45Ny05LjlabS0xNi42IDUuNGMtLjA0LjM1LS4wNS43MS0uMDUgMS4wOHYxYTIuNzUgMi43NSAwIDAgMCAyLjc1IDIuNzVoMWMuMzcgMCAuNzMtLjAxIDEuMDktLjA0bC00LjgtNC44WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRCYXNlYmFsbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0QmFzZWJhbGwyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4IDEwYzAgMS41NS0uNDQgMy0xLjIgNC4yMi0uOTUtLjctMi0xLjI0LTMuMTQtMS42M2EuNS41IDAgMSAwLS4zMi45NWMxLjA0LjM1IDIgLjg2IDIuODggMS41YTcuOTggNy45OCAwIDAgMS0xMi40NCAwYy44Ny0uNjQgMS44NC0xLjE1IDIuODgtMS41YS41LjUgMCAwIDAtLjMyLS45NWMtMS4xMy4zOS0yLjIuOTQtMy4xNCAxLjYzYTcuOTYgNy45NiAwIDAgMSAwLTguNDNjLjk0LjcgMiAxLjI1IDMuMTQgMS42M2EuNS41IDAgMSAwIC4zMi0uOTUgMTAuNDcgMTAuNDcgMCAwIDEtMi44OC0xLjUgNy45OCA3Ljk4IDAgMCAxIDEyLjQ0IDBjLS44Ny42NC0xLjg0IDEuMTUtMi44OCAxLjVhLjUuNSAwIDEgMCAuMzIuOTVjMS4xNC0uMzggMi4yLS45NCAzLjE0LTEuNjNBNy45NiA3Ljk2IDAgMCAxIDE4IDEwWm0tOCAzYy40OSAwIC45Ni4wMyAxLjQzLjFhLjUuNSAwIDEgMCAuMTQtMSAxMS42IDExLjYgMCAwIDAtMy4xNCAwIC41LjUgMCAwIDAgLjE0IDFjLjQ3LS4wNy45NC0uMSAxLjQzLS4xWk04LjU3IDYuOTJhLjUuNSAwIDAgMC0uMTQuOTkgMTEuNiAxMS42IDAgMCAwIDMuMTQgMCAuNS41IDAgMSAwLS4xNC0xIDEwLjYgMTAuNiAwIDAgMS0yLjg2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEJhc2ViYWxsMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0QmFzZWJhbGwyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk00LjYxIDUuNTNhNi45OSA2Ljk5IDAgMCAxIDEwLjc4IDBjLS42NC4zOC0xLjMzLjctMi4wNS45NGEuNS41IDAgMCAwIC4zMi45NWMuODEtLjI3IDEuNTktLjY0IDIuMzEtMS4wOGE2Ljk3IDYuOTcgMCAwIDEgMCA3LjMzYy0uNzMtLjQ0LTEuNS0uOC0yLjMxLTEuMDhhLjUuNSAwIDAgMC0uMzIuOTVjLjcyLjI0IDEuNC41NiAyLjA0Ljk0YTYuOTkgNi45OSAwIDAgMS0xMC43NiAwYy42NC0uMzggMS4zMi0uNyAyLjA0LS45NGEuNS41IDAgMSAwLS4zMi0uOTVjLS44MS4yOC0xLjU4LjY0LTIuMyAxLjA4YTYuOTcgNi45NyAwIDAgMS0uMDEtNy4zM2MuNzIuNDQgMS41LjggMi4zMSAxLjA4YS41LjUgMCAwIDAgLjMyLS45NWMtLjcyLS4yNC0xLjQtLjU2LTIuMDUtLjk0Wk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk04LjU3IDYuOTJhMTAuNiAxMC42IDAgMCAwIDIuODYgMCAuNS41IDAgMCAxIC4xNC45OSAxMS42IDExLjYgMCAwIDEtMy4xNCAwIC41LjUgMCAwIDEgLjE0LTFabTAgNi4xOGExMC42IDEwLjYgMCAwIDEgMi44NiAwIC41LjUgMCAwIDAgLjE0LTEgMTEuNiAxMS42IDAgMCAwLTMuMTQgMCAuNS41IDAgMSAwIC4xNCAxWlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRCYXNlYmFsbDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0QmFzZWJhbGwyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuOTQgNi4wOGE5Ljk2IDkuOTYgMCAwIDAtLjAxIDExLjgzbC4yMy0uMjJBOC4yMyA4LjIzIDAgMCAxIDcgMTYuMDFhLjc1Ljc1IDAgMSAxIC40OCAxLjQyIDYuNzMgNi43MyAwIDAgMC0yLjU4IDEuNjIgOS45NyA5Ljk3IDAgMCAwIDE0LjE4IDAgNy4yMyA3LjIzIDAgMCAwLTIuNTgtMS42Mi43NS43NSAwIDEgMSAuNDgtMS40MiA4LjIzIDguMjMgMCAwIDEgMy4wOCAxLjkgOS45NiA5Ljk2IDAgMCAwLS4wMS0xMS44M2wtLjIyLjJBOC4yMyA4LjIzIDAgMCAxIDE3IDcuOTZhLjc1Ljc1IDAgMCAxLS40OC0xLjQyIDYuNzQgNi43NCAwIDAgMCAyLjU3LTEuNiA5Ljk3IDkuOTcgMCAwIDAtMTQuMTYgMCA3LjI4IDcuMjggMCAwIDAgMi41NyAxLjZBLjc1Ljc1IDAgMSAxIDcgNy45NmE4LjIzIDguMjMgMCAwIDEtMy4wNy0xLjg4Wm01LjA4IDEwLjA3Yy0uMS0uNC4xNS0uOC41NS0uOWguMDFsLjAyLS4wMWEzLjg5IDMuODkgMCAwIDEgLjM3LS4wOCAxMi41NCAxMi41NCAwIDAgMSA0LjQyLjA3Ljc1Ljc1IDAgMCAxLS4yOSAxLjQ4IDExLjA0IDExLjA0IDAgMCAwLTQuMTctLjAxcy0uNzUuMS0uOS0uNTVabS45MS04Ljg4LjA3LjAyYTYuMDggNi4wOCAwIDAgMCAxLjEyLjE1Yy43Ni4wNiAxLjgyLjA2IDIuOTgtLjE4YS43NS43NSAwIDAgMSAuMyAxLjQ4IDEyLjU0IDEyLjU0IDAgMCAxLTQuOCAwaC0uMDJ2LS4wMWgtLjAxYS43Ni43NiAwIDAgMS0uNTUtLjkxYy4xNi0uNjUuOTEtLjU1LjkxLS41NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QmFzZWJhbGwyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRCYXNlYmFsbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkuOTMgMTYuN3MtLjc1LjEtLjktLjU1Yy0uMS0uNC4xNC0uOC41NC0uOWguMDFsLjAyLS4wMWEzLjkyIDMuOTIgMCAwIDEgLjM3LS4wOCAxMi41NCAxMi41NCAwIDAgMSA0LjQyLjA3Ljc1Ljc1IDAgMCAxLS4yOSAxLjQ4IDExLjA0IDExLjA0IDAgMCAwLTQuMTctLjAxWm0tLjktOC44Yy4xNS0uNjUuOS0uNTUuOS0uNTVhNi4zNSA2LjM1IDAgMCAwIDEuMTkuMTdjLjc2LjA1IDEuODIuMDUgMi45OC0uMThhLjc1Ljc1IDAgMCAxIC4zIDEuNDcgMTIuNTQgMTIuNTQgMCAwIDEtNC44IDBoLS4wM2EuNzYuNzYgMCAwIDEtLjU1LS45MlpNMTIgMjJhOS45NyA5Ljk3IDAgMCAwIDEwLTEwIDEwIDEwIDAgMSAwLTEwIDEwWk01LjA3IDcuMDdjLjU0LjM3IDEuMTkuNzIgMS45NC45N0EuNzUuNzUgMCAxIDAgNy41IDYuNmE2LjM2IDYuMzYgMCAwIDEtMS40My0uNjkgOC40NyA4LjQ3IDAgMCAxIDExLjg4IDBjLS40LjI3LS44OS41MS0xLjQzLjdBLjc1Ljc1IDAgMSAwIDE3IDguMDNjLjc1LS4yNSAxLjQtLjYgMS45NC0uOTdhOC40NiA4LjQ2IDAgMCAxLS4wMyA5LjlBNy45IDcuOSAwIDAgMCAxNyAxNmEuNzUuNzUgMCAxIDAtLjQ4IDEuNDJjLjUzLjE4IDEgLjQyIDEuNC42OGE4LjQ3IDguNDcgMCAwIDEtMTEuODIgMGMuNC0uMjYuODctLjUgMS40LS42OEEuNzUuNzUgMCAxIDAgNyAxNi4wMWMtLjc0LjI1LTEuMzguNi0xLjkxLjk1YTguNDYgOC40NiAwIDAgMS0uMDMtOS44OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QmFza2V0YmFsbDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0QmFza2V0YmFsbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC43IDRBNy45NyA3Ljk3IDAgMCAxIDkgMi4wNmMuMDcuNDMuMTQuOTEuMjQgMS40LjE4LjkuNDMgMS44OS43OCAyLjc5LjI4LjcxLjYyIDEuNCAxLjA2IDEuOTZMMTAgOS4zIDQuNyA0Wm0tLjcuN0E3Ljk3IDcuOTcgMCAwIDAgMi4wNiA5Yy40My4wNy45LjE0IDEuNC4yNC45LjE4IDEuODkuNDMgMi43OS43OC43MS4yOCAxLjQuNjIgMS45NiAxLjA2TDkuMjkgMTAgNCA0LjdabTMuNSA3LjFjLS40My0uMzItLjk5LS42LTEuNjEtLjg1LS44My0uMzEtMS43NS0uNTUtMi42Mi0uNzItLjQ1LS4xLS44OC0uMTctMS4yNy0uMjIgMCAyLjAyLjc2IDMuODcgMiA1LjI4bDMuNS0zLjVaTTQuNyAxNmwzLjUtMy41Yy4zMi40My42Ljk4Ljg1IDEuNjEuMzEuODMuNTUgMS43NS43MiAyLjYyLjEuNDUuMTcuODguMjIgMS4yN2E3Ljk3IDcuOTcgMCAwIDEtNS4yOC0yWm00LjIyLTQuMjFMMTAgMTAuNzEgMTUuMyAxNmE3Ljk3IDcuOTcgMCAwIDEtNC4zIDEuOTRjLS4wNy0uNDMtLjE1LS45MS0uMjUtMS40LS4xOC0uOS0uNDMtMS44OS0uNzctMi43OWE3LjU3IDcuNTcgMCAwIDAtMS4wNi0xLjk2Wm03LjA4IDMuNWE3Ljk3IDcuOTcgMCAwIDAgMS45NC00LjMgMTcuMzcgMTcuMzcgMCAwIDEtNC4xOC0xLjAyIDcuNTcgNy41NyAwIDAgMS0xLjk3LTEuMDVMMTAuNyAxMCAxNiAxNS4zWk0xMi41IDguMmMuNDMuMzMuOTguNiAxLjYxLjg1LjgzLjMyIDEuNzUuNTUgMi42Mi43Mi40NS4xLjg4LjE3IDEuMjcuMjIgMC0yLjAyLS43Ni0zLjg3LTItNS4yOGwtMy41IDMuNVpNMTUuMyA0QTcuOTcgNy45NyAwIDAgMCAxMCAyYy4wNi40LjE0LjgyLjIzIDEuMjcuMTcuODcuNCAxLjguNzIgMi42Mi4yNC42My41MyAxLjE4Ljg1IDEuNkwxNS4zIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEJhc2tldGJhbGwyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRCYXNrZXRiYWxsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTAgOS4zIDEuMDgtMS4wOWE3LjU3IDcuNTcgMCAwIDEtMS4wNi0xLjk2IDE3LjM3IDE3LjM3IDAgMCAxLS44NS0zLjIgNi45NyA2Ljk3IDAgMCAwLTMuNzUgMS42NkwxMCA5LjI5Wm0xLjc5LS4zOEwxMC43MSAxMGw0LjU4IDQuNThhNi45NyA2Ljk3IDAgMCAwIDEuNjYtMy43NWwtLjQyLS4wN2MtLjktLjE4LTEuODgtLjQzLTIuNzctLjc4YTcuNTcgNy41NyAwIDAgMS0xLjk3LTEuMDZabTUuMi45YTYuOTcgNi45NyAwIDAgMC0xLjctNC40TDEyLjUgOC4yYy40My4zMi45OS42IDEuNjEuODVhMTYuMzkgMTYuMzkgMCAwIDAgMi44OS43OFpNMTEuOCA3LjVsMi44LTIuOEE2Ljk4IDYuOTggMCAwIDAgMTAuMTYgM2wuMDYuMjdjLjE3Ljg3LjQgMS44LjcyIDIuNjIuMjUuNjIuNTMgMS4xOC44NSAxLjZaTTEwIDEwLjcgOC45MiAxMS44Yy40NC41NS43OSAxLjI1IDEuMDYgMS45NmExNy4zNyAxNy4zNyAwIDAgMSAuODYgMy4yIDYuOTcgNi45NyAwIDAgMCAzLjc0LTEuNjZMMTAgMTAuNzFabS0xLjggMS44LTIuNzggMi44YTYuOTcgNi45NyAwIDAgMCA0LjQgMS43YzAtLjEtLjAzLS4xOC0uMDQtLjI3LS4xOC0uODctLjQxLTEuOC0uNzMtMi42MmE2LjgzIDYuODMgMCAwIDAtLjg0LTEuNlptLS43LS43Yy0uNDMtLjMzLS45OC0uNi0xLjYxLS44NUExNi4zOCAxNi4zOCAwIDAgMCAzIDEwLjE3Yy4wNCAxLjU4LjYxIDMuMTUgMS43IDQuNDFsMi44LTIuNzlabS43MS0uNzJMOS4zIDEwIDQuNzEgNS40MmE2Ljk3IDYuOTcgMCAwIDAtMS42NiAzLjc0bC40Mi4wOGMuOS4xOCAxLjg4LjQzIDIuNzguNzguNzIuMjggMS40LjYyIDEuOTYgMS4wNlptNy40NSA0LjU4QTggOCAwIDEgMSA0LjM0IDQuMzRhOCA4IDAgMCAxIDExLjMyIDExLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRCYXNrZXRiYWxsMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRCYXNrZXRiYWxsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xOC40MyAxMi44N2MtMS4yOC0uMzktMi43Ni0uOS00LjE2LTIuMDhMMTMuMDcgMTJsNi41MSA2LjUyYTkuOTQgOS45NCAwIDAgMCAyLjE2LTQuMjJsLS4wMS0uMDF2LS4wMWEzLjc0IDMuNzQgMCAwIDAtMS4zNS0uOGMtLjQzLS4xNy0uOS0uMy0xLjQyLS40NmwtLjUzLS4xNVptLjEtOC40NS00LjI1IDQuMjRhOS42IDkuNiAwIDAgMS0xLjctMy41MmwtLjE1LS40N2MtLjE1LS41NC0uMzEtMS4xLS41LTEuNi0uMTUtLjM2LS4zMS0uNzEtLjUyLTEuMDVhOS45OCA5Ljk4IDAgMCAxIDcuMTEgMi40Wm0xLjA1IDEuMDYtNC4yNCA0LjI0YTkuNiA5LjYgMCAwIDAgMy41MiAxLjdsLjQ3LjE1Yy41NC4xNSAxLjEuMzEgMS42LjUuMzYuMTUuNzEuMzEgMS4wNS41MmE5Ljk4IDkuOTggMCAwIDAtMi40LTcuMTFabS05Ljg2LTMuMi0uMDEtLjAxYTkuOTQgOS45NCAwIDAgMC00LjIzIDIuMTVMMTIgMTAuOTRsMS4yMS0xLjIxYTEwLjkzIDEwLjkzIDAgMCAxLTIuMDgtNC4xNmwtLjE1LS41MmMtLjE1LS41My0uMjktMS0uNDYtMS40My0uMjEtLjU2LS40Ni0xLS44LTEuMzRabS03LjU5IDguMWE5Ljk1IDkuOTUgMCAwIDEgMi4yOS00LjlMMTAuOTQgMTJsLTEuMDkgMS4wOWExMC4zNCAxMC4zNCAwIDAgMC00LjY2LTEuOTFsLS42LS4xMmMtLjYtLjEyLTEuMTUtLjIyLTEuNjQtLjM3LS4zMi0uMDktLjU5LS4xOS0uODItLjNaTTIgMTEuOTdjMCAyLjM0LjggNC42OCAyLjQyIDYuNTZsNC4zNi00LjM2YTkuMTMgOS4xMyAwIDAgMC0zLjg5LTEuNTFsLS41NC0uMUEyMS4xNCAyMS4xNCAwIDAgMSAyIDExLjk1Wm03Ljg1IDMuMjUtNC4zNyA0LjM3QTkuOTcgOS45NyAwIDAgMCAxMi4yNCAyMmMtLjE1LS4zLS4yNy0uNjItLjM3LS45My0uMTctLjU0LS4yOS0xLjEzLS40LTEuN2wtLjExLS41YTguNiA4LjYgMCAwIDAtMS41MS0zLjY2Wm00LjA1IDYuNjFhOS45NCA5Ljk0IDAgMCAwIDQuNjItMi4yNEwxMiAxMy4wNmwtMS4wOCAxLjA5YTkuODggOS44OCAwIDAgMSAxLjkgNC40bC4xMi41NmMuMTIuNTYuMjIgMS4wNS4zNiAxLjUxLjE2LjUuMzUuOS42IDEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0QmFza2V0YmFsbDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEJhc2tldGJhbGwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMi45NCAyMS45NmExMCAxMCAwIDEgMC0xLjg4LTE5LjkxIDEwIDEwIDAgMCAwIDEuODggMTkuOVptLTkuMzYtMTEuMWMuMi0xLjU1Ljg0LTMuMDUgMS45LTQuMzJMMTAuOTQgMTJsLTEuMDkgMS4wOWE4LjgxIDguODEgMCAwIDAtMy4zNC0xLjYxYy0uNjUtLjE3LTEuMy0uMy0xLjg5LS40MWgtLjAxYy0uMzctLjA4LS43MS0uMTQtMS4wMy0uMjJabS0uMDcgMS41MS44LjE2aC4wMWMuNi4xMiAxLjIuMjQgMS44LjQuOTUuMjYgMS44Ni42MSAyLjY2IDEuMjNsLTMuMyAzLjNhOC40NyA4LjQ3IDAgMCAxLTEuOTctNS4wOVptNi4zNCAyLjg0Yy42Ny44NyAxLjA0IDEuODEgMS4zIDIuNzhhMjYuMiAyNi4yIDAgMCAxIC40IDEuNzhsLjE2LjczYTguNDcgOC40NyAwIDAgMS01LjE3LTEuOThsMy4zLTMuM1ptMy4zOSA1LjItLjIzLS45NS0uMDctLjM3Yy0uMS0uNDctLjIxLS45OC0uMzUtMS40OWE4Ljg2IDguODYgMCAwIDAtMS42OC0zLjQ1TDEyIDEzLjA2bDUuNDYgNS40NmE4LjQ2IDguNDYgMCAwIDEtNC4yMiAxLjg5Wk0xMy4wNiAxMmwxLjIxLTEuMjFhMTAgMTAgMCAwIDAgMy4zNyAxLjgzYy40NC4xNS45LjI4IDEuMy40bC40Ny4xM2MuMzUuMS42Ny4yMS45Ni4zMmE4LjQ1IDguNDUgMCAwIDEtMS44NSAzLjk5TDEzLjA2IDEyWm02Ljc4LS4yOC0uNS0uMTUtMS4yMi0uMzhhOC42IDguNiAwIDAgMS0yLjc4LTEuNDdsMy4xOC0zLjE4YTguNDcgOC40NyAwIDAgMSAxLjk4IDUuMzhsLS42Ni0uMlptLTIuMzgtNi4yNC0zLjE4IDMuMThhOC42IDguNiAwIDAgMS0xLjQ3LTIuNzhjLS4xNS0uNDEtLjI2LS44MS0uMzgtMS4yMmwtLjE1LS41LS4yLS42NmMxLjkxLjAyIDMuODIuNjggNS4zOCAxLjk4Wm0tNi4wOC44OGExMCAxMCAwIDAgMCAxLjgzIDMuMzdMMTIgMTAuOTMgNi41NCA1LjQ5YTguNDUgOC40NSAwIDAgMSAzLjk5LTEuODUgMTMuMjEgMTMuMjEgMCAwIDEgLjQ1IDEuNDJjLjEyLjQyLjI1Ljg2LjQgMS4zMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0SG9ja2V5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRIb2NrZXkyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTExLjk3IDIuMDZhMy43IDMuNyAwIDAgMSAzLjQ1IDEuM2wxLjcxIDEuOTNjLjc1Ljg0IDEuMDggMi4wMi43MyAzLjEzLTIuMSA2LjctNy4wMyA5LjA4LTEwLjE5IDkuNTUtLjkuMTQtMS43Ni0uMjItMi4zOS0uNzhsLTEuOC0xLjZBNC4wNyA0LjA3IDAgMCAxIDIuMiAxMS4yYzIuMTItNS45OSA2LjQ2LTguNDcgOS43Ni05LjE1Wm0yLjUyIDMuNTJhLjUuNSAwIDEgMC0uOTgtLjE2IDEwLjkgMTAuOSAwIDAgMS0zLjA1IDUuOSAxMC4zMiAxMC4zMiAwIDAgMS00LjEgMi43LjUuNSAwIDEgMCAuMjguOTZjMS4yNS0uMzYgMy0xLjM4IDQuNTMtMi45NmExMS44OSAxMS44OSAwIDAgMCAzLjMyLTYuNDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydEhvY2tleTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydEhvY2tleTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTExLjk3IDIuMDZhMy43IDMuNyAwIDAgMSAzLjQ1IDEuM2wxLjcxIDEuOTNjLjc1Ljg0IDEuMDggMi4wMi43MyAzLjEzLTIuMSA2LjctNy4wMyA5LjA4LTEwLjE5IDkuNTUtLjkuMTQtMS43Ni0uMjItMi4zOS0uNzhsLTEuOC0xLjZBNC4wNyA0LjA3IDAgMCAxIDIuMiAxMS4yYzIuMTItNS45OSA2LjQ2LTguNDcgOS43Ni05LjE1Wm0yLjcgMS45N2MtLjY4LS43Ni0xLjYtMS4xNy0yLjUtLjk5LTMgLjYxLTcuMDMgMi44OS05LjAyIDguNS0uNCAxLjE1LjAyIDIuNDQuOTggMy4zbDEuODIgMS42Yy40Ni40MSAxLjAzLjYzIDEuNTcuNTQgMi44NS0uNDIgNy40MS0yLjU3IDkuMzktOC44Ni4yMy0uNzMuMDItMS41NS0uNTMtMi4xNmwtMS43MS0xLjkzWm0tLjYuOThjLjI4LjA0LjQ3LjMuNDIuNTdhMTEuODkgMTEuODkgMCAwIDEtMy4zMiA2LjQ0IDExLjI4IDExLjI4IDAgMCAxLTQuNTMgMi45Ni41LjUgMCAwIDEtLjI4LS45NmMxLjA1LS4zIDIuNjYtMS4yMiA0LjEtMi43YTEwLjkgMTAuOSAwIDAgMCAzLjA1LTUuOS41LjUgMCAwIDEgLjU3LS40MVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0SG9ja2V5MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRIb2NrZXkyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIuMzUgMTIuNTdjLS42OCAxLjktLjc3IDMuODguNDQgNS4xbC4yNC4yNGE2MjkuODUgNjI5Ljg1IDAgMCAwIDMuMDIgMy4wNGMxLjI4IDEuMjggMy4zIDEuMyA1LjI5LjY2YTE2LjMgMTYuMyAwIDAgMCA2LjIyLTQuMDQgMTYuMyAxNi4zIDAgMCAwIDQuMDQtNi4yMmMuNjQtMS45OS42Mi00LjAxLS42Ni01LjNhNzU2Ljk0IDc1Ni45NCAwIDAgMS0yLjg5LTIuOWwtLjM2LS4zN2MtMS4yMy0xLjIxLTMuMi0xLjEyLTUuMS0uNDQtMS45Ny43MS00LjE1IDIuMTQtNi4xMiA0LjExYTE3LjQ1IDE3LjQ1IDAgMCAwLTQuMTIgNi4xMlptMTUuMTQtNS43di4wNmE1LjEyIDUuMTIgMCAwIDEtLjE1LjU3IDE0LjM0IDE0LjM0IDAgMCAxLTMuNiA2LjAzIDE1LjYxIDE1LjYxIDAgMCAxLTYuNzggMy45NGwtLjAzLjAxSDYuOXMtLjc1LjA5LS45LS41N2MtLjA4LS40LjE4LS44LjU4LS45aC4wM2E0LjM4IDQuMzggMCAwIDAgLjUtLjE0IDE0LjEgMTQuMSAwIDAgMCA1LjU3LTMuNCAxMi44NCAxMi44NCAwIDAgMCAzLjItNS4zNiA2Ljg1IDYuODUgMCAwIDAgLjEyLS40NmMuMDctLjQuNDQtLjcuODYtLjY0LjQxLjA3LjY5LjQ1LjYyLjg2WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRIb2NrZXkyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRIb2NrZXkyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy40OSA2Ljg3YS43NS43NSAwIDAgMC0uNjItLjg2Ljc3Ljc3IDAgMCAwLS44Ni42NCAzLjc3IDMuNzcgMCAwIDEtLjExLjQ2Yy0uMS4zMi0uMjQuNzktLjQ4IDEuMzVhMTIuODQgMTIuODQgMCAwIDEtMi43MyA0LjAxIDE0LjExIDE0LjExIDAgMCAxLTYuMDggMy41NEg2LjZhLjc1Ljc1IDAgMCAwLS41Ny45Yy4xNC42Ni44OS41Ny44OS41N2guMDVhNS45NSA1Ljk1IDAgMCAwIC42LS4xOCAxNS42MSAxNS42MSAwIDAgMCA2LjE4LTMuNzcgMTQuMzQgMTQuMzQgMCAwIDAgMy42LTYuMDMgOC4zMyA4LjMzIDAgMCAwIC4xNC0uNTd2LS4wNVptLTE1LjE0IDUuN2MtLjY4IDEuOS0uNzcgMy44OC40NCA1LjFsLjIzLjI0YTYyNy45IDYyNy45IDAgMCAwIDMuMDMgMy4wNGMxLjI4IDEuMjggMy4zIDEuMyA1LjI5LjY2YTE2LjMgMTYuMyAwIDAgMCA2LjIyLTQuMDQgMTYuMyAxNi4zIDAgMCAwIDQuMDQtNi4yMmMuNjQtMS45OS42Mi00LjAxLS42Ni01LjNhNzU2Ljk0IDc1Ni45NCAwIDAgMS0yLjktMi45bC0uMzYtLjM3Yy0xLjIyLTEuMjEtMy4yLTEuMTItNS4xLS40NC0xLjk2LjcxLTQuMTUgMi4xNC02LjEyIDQuMTFhMTcuNDUgMTcuNDUgMCAwIDAtNC4xIDYuMTJabTEuNDEuNTFhMTUuOTggMTUuOTggMCAwIDEgMy43Ny01LjU2IDE1Ljk4IDE1Ljk4IDAgMCAxIDUuNTYtMy43N2MxLjc4LS42NCAyLjk3LS40NyAzLjU0LjFsLjM1LjM1Ljg4Ljg5IDIuMDIgMi4wM2MuNjcuNjcuODcgMS45Ny4zIDMuNzdhMTQuODEgMTQuODEgMCAwIDEtMy42OCA1LjYyIDE0LjgxIDE0LjgxIDAgMCAxLTUuNjMgMy42N2MtMS44LjU4LTMuMDkuMzgtMy43Ni0uM2E4MzUuNTYgODM1LjU2IDAgMCAxLTMuMDItMy4wMmwtLjIzLS4yNGMtLjU3LS41Ny0uNzQtMS43Ni0uMS0zLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRTb2NjZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydFNvY2NlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMS41IDhhNi41IDYuNSAwIDEgMSAxMyAwIDYuNSA2LjUgMCAwIDEtMTMgMFptNC4xNC00Ljk3Yy0uNzMuMzUtMS4zNy44NS0xLjg5IDEuNDdsLjY1IDIuMSAxIC4zNCAyLjEtMS41OVY0LjI3TDUuNjQgMy4wM1ptLTMuMSA1LjZjLjEuODcuNCAxLjY3Ljg1IDIuMzdoMS45bC42NC0uNjNMNS4xIDcuOWwtMS4wMi0uMzUtMS41NCAxLjA4Wm00LjM1IDQuNzZhNS41MyA1LjUzIDAgMCAwIDIuMjIgMGwuOC0xLjc4LS42Mi0uNjFINi43MWwtLjYxLjYxLjc5IDEuNzhaTTEyLjYgMTFjLjQ0LS42Ny43NC0xLjQ1Ljg0LTIuMjhsLTEuNTQtMS4xNi0xLjAxLjM0LS44MyAyLjQ2LjY0LjY0aDEuOVptLS4zOC02LjUxYTUuNTIgNS41MiAwIDAgMC0xLjg3LTEuNDZMOC41IDQuMjd2MS4wOGwyLjEgMS42IDEtLjM0LjYzLTIuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydFNvY2NlcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydFNvY2NlcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggMS41YTYuNSA2LjUgMCAxIDEgMCAxMyA2LjUgNi41IDAgMCAxIDAtMTNaTTYuODQgMi42MiA4IDMuNGwxLjE2LS43OGE1LjUyIDUuNTIgMCAwIDAtMi4zMiAwWm0tMS4yLjRjLS43My4zNi0xLjM3Ljg2LTEuODkgMS40OGwuNjUgMi4xIDEgLjM0IDIuMS0xLjU5VjQuMjdMNS42NCAzLjAzWk0zLjA0IDUuNmE1LjQ2IDUuNDYgMCAwIDAtLjUxIDEuODJsLjg5LS42Mi0uMzctMS4yWm0tLjUgMy4wM2MuMS44Ny40IDEuNjcuODUgMi4zN2gxLjlsLjY0LS42M0w1LjEgNy45bC0xLjAyLS4zNS0xLjU0IDEuMDhaTTQuMjMgMTJjLjQuMzguODYuNyAxLjM3Ljk1TDUuMTggMTJoLS45NVptMi42NiAxLjM5YTUuNTMgNS41MyAwIDAgMCAyLjIyIDBsLjgtMS43OC0uNjItLjYxSDYuNzFsLS42MS42MS43OSAxLjc4Wm0zLjUxLS40NGMuNS0uMjUuOTctLjU3IDEuMzctLjk1aC0uOTVsLS40Mi45NVpNMTIuNjEgMTFjLjQ0LS42Ny43NC0xLjQ1Ljg0LTIuMjhsLTEuNTQtMS4xNi0xLjAxLjM0LS44MyAyLjQ2LjY0LjY0aDEuOVptLjg3LTMuNTJhNS40NiA1LjQ2IDAgMCAwLS41My0xLjg5bC0uMzcgMS4yMi45LjY3Wm0tMS4yNS0zYTUuNTIgNS41MiAwIDAgMC0xLjg3LTEuNDVMOC41IDQuMjd2MS4wOGwyLjEgMS42IDEtLjM0LjYzLTIuMTJaTTYuMSA3LjY5IDYuODYgMTBoMi4yOGwuNzctMi4zMkw4IDYuMjMgNi4wOSA3LjY4WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRTb2NjZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcG9ydFNvY2NlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgMmE4IDggMCAxIDAgMCAxNiA4IDggMCAwIDAgMC0xNlpNNy4xIDMuNjNsMi40IDEuNHYxLjdMNi43MyA4LjdsLTEuNTYtLjU3LS42Mi0yLjUxYTcuMDIgNy4wMiAwIDAgMSAyLjU0LTEuOThaTTMuMDIgMTAuN2wxLjgzLTEuNjIgMS41NS41NiAxLjA0IDMuM0w2LjczIDE0SDQuMjVhNi45NiA2Ljk2IDAgMCAxLTEuMjItMy4zWm01LjM0IDYuMTItLjgxLTIuMjUuNy0xLjA2aDMuNDdsLjcyIDEuMDYtLjgyIDIuMjVhNy4wMiA3LjAyIDAgMCAxLTMuMjYgMFpNMTUuNzUgMTRoLTIuNDhsLS43Mi0xLjA4IDEuMDItMy4yOSAxLjU3LS41NiAxLjgzIDEuNjJhNi45NiA2Ljk2IDAgMCAxLTEuMjIgMy4zWm0tLjMtOC4zOC0uNjIgMi41LTEuNTguNTctMi43NS0xLjk1di0xLjdsMi40LTEuNGMxIC40NSAxLjg4IDEuMTMgMi41NiAxLjk4WlwiXSk7XG5leHBvcnQgY29uc3QgU3BvcnRTb2NjZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3BvcnRTb2NjZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMCAyYTggOCAwIDEgMCAwIDE2IDggOCAwIDAgMCAwLTE2Wk04LjM0IDMuMmE3LjAyIDcuMDIgMCAwIDEgMy4zMyAwTDEwIDQuMTcgOC4zNCAzLjJabS0xLjI1LjQzIDIuNDEgMS40djEuN0w2LjczIDguN2wtMS41Ni0uNTctLjYyLTIuNTFhNy4wMiA3LjAyIDAgMCAxIDIuNTQtMS45OFpNMy44IDYuNzVsLjQgMS41OC0xLjE3IDEuMDNjLjA4LS45NC4zNS0xLjgyLjc3LTIuNjFabS0uNzcgMy45NCAxLjgzLTEuNjIgMS41NS41NiAxLjA0IDMuM0w2LjczIDE0SDQuMjVhNi45NiA2Ljk2IDAgMCAxLTEuMjItMy4zWk01LjEgMTVoMS41NWwuNTEgMS40MUE3LjAxIDcuMDEgMCAwIDEgNS4xIDE1Wm0zLjI3IDEuODItLjgxLTIuMjUuNy0xLjA2aDMuNDdsLjcyIDEuMDYtLjgyIDIuMjVhNy4wMiA3LjAyIDAgMCAxLTMuMjYgMFptNC40Ny0uNDEuNTEtMS40aDEuNTVhNy4wMiA3LjAyIDAgMCAxLTIuMDYgMS40Wm0yLjktMi40aC0yLjQ3bC0uNzItMS4wOCAxLjAyLTMuMjkgMS41Ny0uNTYgMS44MyAxLjYyYTYuOTYgNi45NiAwIDAgMS0xLjIyIDMuM1ptMS4yMy00LjY0LTEuMTYtMS4wMy40LTEuNThjLjQuOC42OCAxLjY4Ljc2IDIuNlptLTEuNTEtMy43NC0uNjMgMi41LTEuNTguNTctMi43NS0xLjk1di0xLjdsMi40LTEuNGMxIC40NSAxLjg4IDEuMTMgMi41NiAxLjk4Wk03LjQgOS40NSAxMCA3LjZsMi41OSAxLjg0LS45NiAzLjA1SDguMzdMNy40IDkuNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcG9ydFNvY2NlcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0U29jY2VyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAyYTEwIDEwIDAgMSAwIDAgMjAgMTAgMTAgMCAwIDAgMC0yMFpNOC4yNCA0LjM3bDMuMDEgMS44djIuMmwtMi43OSAyLjAyLTIuMDQtLjctLjU5LTMuNTRhOC41MyA4LjUzIDAgMCAxIDIuNDEtMS43OFptLTQuNjIgOS4wNyAyLjMzLTIuMzMgMi4wNC43IDEuMDggMy4zNC0uOTcgMS41OC0zLjMtLjJjLS41OC0uOTItLjk5LTEuOTctMS4xOC0zLjFabTYuOTEgNi45My0xLjE4LTIuOC45Ni0xLjU3aDMuMzdsLjkxIDEuNTgtMS4wNCAyLjc4YTguNTUgOC41NSAwIDAgMS0zLjAyLjAxWm04LjM2LTMuNC0zLjAyLS4xOC0uOTQtMS42MyAxLjA5LTMuMzQgMi4wMS0uNyAyLjMxIDIuNTJhOC40NiA4LjQ2IDAgMCAxLTEuNDUgMy4zNFptLS43Mi0xMC44MS0uNTkgMy41My0yLjA0LjctMi43OS0yLjAydi0yLjJsMy0xLjhhOC41MyA4LjUzIDAgMCAxIDIuNDIgMS43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwb3J0U29jY2VyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1Nwb3J0U29jY2VyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMCAwIDIwIDEwIDEwIDAgMCAwIDAtMjBabS0xLjkzIDEuNzJhOC41MyA4LjUzIDAgMCAxIDMuODYgMEwxMiA0Ljg3bC0xLjkzLTEuMTVabS0xLjgzLjY1IDMuMDEgMS44djIuMmwtMi43OSAyLjAyLTIuMDQtLjctLjU5LTMuNTRhOC41MyA4LjUzIDAgMCAxIDIuNDEtMS43OFpNNC42IDcuODMgNC45NSAxMGwtMS40MyAxLjQzYy4wOS0xLjMuNDYtMi41MSAxLjA3LTMuNTlabS0uOTcgNS42IDIuMzMtMi4zMiAyLjA0LjcgMS4wOCAzLjM0LS45NyAxLjU4LTMuMy0uMmMtLjU4LS45Mi0uOTktMS45Ny0xLjE4LTMuMVptMi40NyA0LjY4IDEuOS4xMS42OCAxLjZjLS45Ni0uNC0xLjg0LTEtMi41OC0xLjcxWm00LjQ0IDIuMjYtMS4xOC0yLjguOTYtMS41N2gzLjM3bC45MSAxLjU4LTEuMDQgMi43OGE4LjU1IDguNTUgMCAwIDEtMy4wMi4wMVptNC44My0uNTYuNTctMS41MiAxLjY3LjFhOC41IDguNSAwIDAgMS0yLjI0IDEuNDJabTMuNTMtMi44My0zLjAyLS4yLS45NC0xLjYyIDEuMDktMy4zNCAyLjAxLS43IDIuMzEgMi41MmE4LjQ2IDguNDYgMCAwIDEtMS40NSAzLjM0Wm0xLjYtNS40LTEuNDQtMS41Ny4zNi0yLjE3YTguNDUgOC40NSAwIDAgMSAxLjA4IDMuNzRabS0yLjMyLTUuNDItLjU5IDMuNTMtMi4wNC43LTIuNzktMi4wMnYtMi4ybDMtMS44YTguNTMgOC41MyAwIDAgMSAyLjQyIDEuNzlabS04LjcgNS4zNkwxMiA5LjY4bDIuNTQgMS44NC0uOTcgMi45OGgtMy4xM2wtLjk3LTIuOThaXCJdKTtcbmV4cG9ydCBjb25zdCBTcHJheUNhbjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwcmF5Q2FuMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNCAxLjVhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabS0yIDFhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBaTTEwLjUgNGEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMVptMiAwYS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xWm0yLTFhLjUuNSAwIDEgMCAwIDEgLjUuNSAwIDAgMCAwLTFaTTE0IDUuNWEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptLTMuMDEuOTRjMC0uMDMgMC0uMDUtLjAyLS4wN2EuNS41IDAgMCAwLS4xMi0uMjJMOSA0LjI5VjIuNWEuNS41IDAgMCAwLS41LS41aC0yYS41LjUgMCAwIDAtLjUuNXYxLjhMNC4xNSA2LjE0YS41LjUgMCAwIDAtLjE0LjI5di4wMkw0IDYuNXY2Ljc1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDMuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNi40N2wtLjAxLS4wM1pNNyAzaDF2MUg3VjNabS0uMyAyaDEuNmwxIDFINS43bDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNwcmF5Q2FuMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NwcmF5Q2FuMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOS41IDRhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTExIDIuNWEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMCAyYS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0yLTNhLjUuNSAwIDEgMSAxIDAgLjUuNSAwIDAgMS0xIDBabTAgMmEuNS41IDAgMSAxIDEgMCAuNS41IDAgMCAxLTEgMFptMCAyYS41LjUgMCAxIDEgMSAwIC41LjUgMCAwIDEtMSAwWm0tMy4wMy44Ny4wMi4wN3YuMDJsLjAxLjA0djYuNzVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC0zLjVDMy43OCAxNSAzIDE0LjIyIDMgMTMuMjVWNi40NmwuMDEtLjAyLjAyLS4wN2EuNS41IDAgMCAxIC4xMi0uMjJMNSA0LjI5VjIuNWMwLS4yOC4yMi0uNS41LS41aDJjLjI4IDAgLjUuMjIuNS41djEuOGwxLjg1IDEuODVjLjA2LjA2LjEuMTQuMTMuMjJaTTcgM0g2djFoMVYzWm0uMyAySDUuN2wtMSAxaDMuNmwtMS0xWm0uOTUgOWMuNDEgMCAuNzUtLjM0Ljc1LS43NVY3SDR2Ni4yNWMwIC40MS4zNC43NS43NS43NWgzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmUxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTIgNGMwLTEuMS45LTIgMi0yaDRhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmUxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoNGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtN0EyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1pNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjhhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTNWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2OGEzIDMgMCAwIDEtMyAzSDZhMyAzIDAgMCAxLTMtM1Y2Wm0zLTJhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg2WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxMS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTYuMjUgNC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxMS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDExLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDYuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk02Ljc1IDQuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2MTQuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWgxNC41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjYuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVINi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNNy41IDNBNC41IDQuNSAwIDAgMCAzIDcuNXYxN0E0LjUgNC41IDAgMCAwIDcuNSAyOWgxN2E0LjUgNC41IDAgMCAwIDQuNS00LjV2LTE3QTQuNSA0LjUgMCAwIDAgMjQuNSAzaC0xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmUzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0zIDcuNUE0LjUgNC41IDAgMCAxIDcuNSAzaDE3QTQuNSA0LjUgMCAwIDEgMjkgNy41djE3YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTdBNC41IDQuNSAwIDAgMSAzIDI0LjV2LTE3Wk03LjUgNUEyLjUgMi41IDAgMCAwIDUgNy41djE3QTIuNSAyLjUgMCAwIDAgNy41IDI3aDE3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTdBMi41IDIuNSAwIDAgMCAyNC41IDVoLTE3WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk02IDEyLjI1QzYgOC44IDguOCA2IDEyLjI1IDZoMjMuNUMzOS4yIDYgNDIgOC44IDQyIDEyLjI1djIzLjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0yMy41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di0yMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTYgMTIuMjVDNiA4LjggOC44IDYgMTIuMjUgNmgyMy41QzM5LjIgNiA0MiA4LjggNDIgMTIuMjV2MjMuNUM0MiAzOS4yIDM5LjIgNDIgMzUuNzUgNDJoLTIzLjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzV2LTIzLjVabTYuMjUtMy43NWEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1djIzLjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWgyMy41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTIzLjVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWgtMjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFkZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE0aDEuNzZBNS41IDUuNSAwIDAgMSAxNCA2LjI2VjQuNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtN1ptNiAxM2E0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMC03Yy4yOCAwIC41LjIyLjUuNVYxMGgxLjVhLjUuNSAwIDAgMSAwIDFIMTF2MS41YS41LjUgMCAwIDEtMSAwVjExSDguNWEuNS41IDAgMCAxIDAtMUgxMFY4LjVjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFkZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVBZGQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2MS43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDMy42NyAzIDMgMy42NyAzIDQuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuMWMuMTguMzYuNC43LjY2IDFINC41QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wm0xMyA2YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjEwSDguNWEuNS41IDAgMCAwIDAgMUgxMHYxLjVhLjUuNSAwIDAgMCAxIDBWMTFoMS41YS41LjUgMCAwIDAgMC0xSDExVjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNkE1LjUgNS41IDAgMCAxIDE3IDkuNlY2YTMgMyAwIDAgMC0zLTNINlptOC41IDE2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNmMtLjE2LS4zMi0uMy0uNjUtLjQtMUg2YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDhhMiAyIDAgMCAxIDIgMnYzLjJjLjM1LjEuNjguMjQgMSAuNFY2YTMgMyAwIDAgMC0zLTNINlptOC41IDE2YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDEuNWEuNS41IDAgMCAxIDAgMUgxNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTVoLTEuNWEuNS41IDAgMCAxIDAtMUgxNHYtMS41YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVBcnJvd0ZvcndhcmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVBcnJvd0ZvcndhcmQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuNSA0LjVjMC0xLjEuOS0yIDItMmg3YTIgMiAwIDAgMSAyIDJ2MS4zOWE1LjUgNS41IDAgMCAwLTcuNjEgNy42MUg0LjVhMiAyIDAgMCAxLTItMnYtN1ptOCAxMC41YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0uOS02LjQuOS45aC0xLjU1QTIuNzUgMi43NSAwIDAgMCA4IDEyLjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDEuNTRsLS45LjlhLjUuNSAwIDAgMCAuNzEuN2wxLjc2LTEuNzVhLjUuNSAwIDAgMCAwLS43TDEyLjEgNy45YS41LjUgMCAwIDAtLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFycm93Rm9yd2FyZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVBcnJvd0ZvcndhcmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2MS43NmE1LjUgNS41IDAgMCAwLTEtLjY2VjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTdDMy42NyAzIDMgMy42NyAzIDQuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDEuMWMuMTguMzYuNC43LjY2IDFINC41QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk0xMC41IDE1YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0uOS02LjQuOS45aC0xLjU1QTIuNzUgMi43NSAwIDAgMCA4IDEyLjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDEuNTRsLS45LjlhLjUuNSAwIDAgMCAuNzEuN2wxLjc2LTEuNzVhLjUuNSAwIDAgMCAwLS43TDEyLjEgNy45YS41LjUgMCAwIDAtLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFycm93Rm9yd2FyZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDMuNkE1LjUgNS41IDAgMCAxIDE3IDkuNlY2YTMgMyAwIDAgMC0zLTNINlptOC41IDE2YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0uOS02LjQuOS45aC0xLjU1QTIuNzUgMi43NSAwIDAgMCAxMiAxNi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxLjU0bC0uOS45YS41LjUgMCAwIDAgLjcxLjdsMS43Ni0xLjc1YS41LjUgMCAwIDAgMC0uN0wxNi4xIDExLjlhLjUuNSAwIDAgMC0uNy43WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMy4yYy4xLjM1LjI0LjY4LjQgMUg2YTMgMyAwIDAgMS0zLTNWNlptMTEuNSAxM2E0LjUgNC41IDAgMSAxIDAtOSA0LjUgNC41IDAgMCAxIDAgOVptLjktNi40LjkuOWgtMS41NUEyLjc1IDIuNzUgMCAwIDAgMTIgMTYuMjV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMS41NGwtLjkuOWEuNS41IDAgMCAwIC43MS43bDEuNzYtMS43NWEuNS41IDAgMCAwIDAtLjdMMTYuMSAxMS45YS41LjUgMCAwIDAtLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFycm93Rm9yd2FyZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWg1Ljc3QTYuNSA2LjUgMCAwIDEgMjEgMTIuMDJWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk0xMiAxNy41YTUuNSA1LjUgMCAxIDAgMTEgMCA1LjUgNS41IDAgMCAwLTExIDBabTYuNjUtMi4xNWEuNS41IDAgMCAxIC43LS43bDEuNSAxLjVjLjIuMi4yLjUgMCAuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43LS43bC42NC0uNjVoLTIuMDRDMTYuMDEgMTcgMTUgMTggMTUgMTkuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWgyLjA0bC0uNjQtLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djUuNzdjLS40Ni0uMy0uOTctLjUzLTEuNS0uN1Y2LjI0YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxMS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDUuMDZjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNVptOSAxMS4yNWE1LjUgNS41IDAgMSAwIDExIDAgNS41IDUuNSAwIDAgMC0xMSAwWm02LjY1LTIuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNy0uN2wuNjQtLjY1aC0yLjA0QzE2LjAxIDE3IDE1IDE4IDE1IDE5LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtMS44IDEuNDYtMy4yNSAzLjI1LTMuMjVoMi4wNGwtLjY0LS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUFycm93Rm9yd2FyZDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoMTQuNUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NXY3Ljc1QTcuNSA3LjUgMCAwIDAgMTQuNSAyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjYuNzVaTTIwLjUgMjdhNi41IDYuNSAwIDEgMSAwLTEzIDYuNSA2LjUgMCAwIDEgMCAxM1ptMS42NS05Ljg1YS41LjUgMCAwIDAgMCAuN0wyMy4yOSAxOWgtMi41NEEzLjc1IDMuNzUgMCAwIDAgMTcgMjIuNzVWMjNhLjUuNSAwIDAgMCAxIDB2LS4yNUEyLjc1IDIuNzUgMCAwIDEgMjAuNzUgMjBoMi41NGwtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2Ny43NWE3LjQ5IDcuNDkgMCAwIDAtMS41LS44OFY2Ljc1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDYuNzVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djE0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVoNi44N2MuMjQuNTQuNTMgMS4wNC44OCAxLjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk0xNCAyMC41YTYuNSA2LjUgMCAxIDAgMTMgMCA2LjUgNi41IDAgMCAwLTEzIDBabTguMTUtMi42NWEuNS41IDAgMCAxIC43LS43bDIgMmMuMi4yLjIuNSAwIC43bC0yIDJhLjUuNSAwIDAgMS0uNy0uN0wyMy4yOSAyMGgtMi41NEEyLjc1IDIuNzUgMCAwIDAgMTggMjIuNzVWMjNhLjUuNSAwIDAgMS0xIDB2LS4yNUEzLjc1IDMuNzUgMCAwIDEgMjAuNzUgMTloMi41NGwtMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlQXJyb3dGb3J3YXJkMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk03LjUgM0E0LjUgNC41IDAgMCAwIDMgNy41djE3QTQuNSA0LjUgMCAwIDAgNy41IDI5aDguNzdBOSA5IDAgMSAxIDI5IDE2LjI3VjcuNUE0LjUgNC41IDAgMCAwIDI0LjUgM2gtMTdaTTMwIDIyLjVhNy41IDcuNSAwIDEgMS0xNSAwIDcuNSA3LjUgMCAwIDEgMTUgMFptLTQuNzItMy43OGEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDI1LjQ0IDIxSDIyLjVhNC4yNSA0LjI1IDAgMCAwLTQuMjUgNC4yNXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41YTIuNzUgMi43NSAwIDAgMSAyLjc1LTIuNzVoMi45NGwtMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZsMi41LTIuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTIuNS0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVBcnJvd0ZvcndhcmQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDMyTGlnaHQnLCBcIjMyXCIsIFtcIk0zIDcuNUE0LjUgNC41IDAgMCAxIDcuNSAzaDE3QTQuNSA0LjUgMCAwIDEgMjkgNy41djguNzdhOS4wNiA5LjA2IDAgMCAwLTEtLjlWNy41QTMuNSAzLjUgMCAwIDAgMjQuNSA0aC0xN0EzLjUgMy41IDAgMCAwIDQgNy41djE3QTMuNSAzLjUgMCAwIDAgNy41IDI4aDcuODhjLjI3LjM2LjU3LjY5LjkgMUg3LjVBNC41IDQuNSAwIDAgMSAzIDI0LjV2LTE3Wk0yMi41IDMwYTcuNSA3LjUgMCAxIDEgMC0xNSA3LjUgNy41IDAgMCAxIDAgMTVabTEuMjItMTAuMjJMMjQuOTQgMjFoLTIuNjlBNC4yNSA0LjI1IDAgMCAwIDE4IDI1LjI1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVhMi43NSAyLjc1IDAgMCAxIDIuNzUtMi43NWgyLjY5bC0xLjIyIDEuMjJhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNmwyLjUtMi41Yy4zLS4zLjMtLjc3IDAtMS4wNmwtMi41LTIuNWEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUFycm93Rm9yd2FyZDMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTMgNy41QTQuNSA0LjUgMCAwIDEgNy41IDNoMTdBNC41IDQuNSAwIDAgMSAyOSA3LjV2OC43N2E5LjA0IDkuMDQgMCAwIDAtMi0xLjU3VjcuNUEyLjUgMi41IDAgMCAwIDI0LjUgNWgtMTdBMi41IDIuNSAwIDAgMCA1IDcuNXYxN0EyLjUgMi41IDAgMCAwIDcuNSAyN2g3LjJjLjQzLjc0Ljk2IDEuNDEgMS41NyAySDcuNUE0LjUgNC41IDAgMCAxIDMgMjQuNXYtMTdabTI3IDE1YTcuNSA3LjUgMCAxIDEtMTUgMCA3LjUgNy41IDAgMCAxIDE1IDBabS00LjcyLTMuNzhhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwyNS40NCAyMUgyMi41YTQuMjUgNC4yNSAwIDAgMC00LjI1IDQuMjV2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWEyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aDIuOTRsLTEuMjIgMS4yMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuNS0yLjVjLjMtLjMuMy0uNzcgMC0xLjA2bC0yLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlQXJyb3dGb3J3YXJkNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlQXJyb3dGb3J3YXJkNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMS4yNSA2QTUuMjUgNS4yNSAwIDAgMCA2IDExLjI1djI1LjVDNiAzOS42NSA4LjM1IDQyIDExLjI1IDQyaDEyLjhBMTMgMTMgMCAwIDEgNDIgMjQuMDRWMTEuMjVDNDEuOTkgOC4zNSAzOS42NCA2IDM2Ljc0IDZoLTI1LjVaTTI0IDM1YTExIDExIDAgMSAwIDIyIDAgMTEgMTEgMCAwIDAtMjIgMFptMTQuMy0zLjNhMSAxIDAgMCAxIDEuNC0xLjRsMyAzYTEgMSAwIDAgMSAwIDEuNGwtMyAzYTEgMSAwIDAgMS0xLjQtMS40bDEuMjktMS4zSDM0YTQgNCAwIDAgMC00IDQgMSAxIDAgMSAxLTIgMCA2IDYgMCAwIDEgNi02aDUuNTlsLTEuMy0xLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVBcnJvd0ZvcndhcmQ0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlQXJyb3dGb3J3YXJkNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNiAxMS4yNUM2IDguMzUgOC4zNSA2IDExLjI1IDZoMjUuNUMzOS42NSA2IDQyIDguMzUgNDIgMTEuMjV2MTIuOGMtLjc4LS41LTEuNjItLjkyLTIuNS0xLjI1VjExLjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVoLTI1LjVhMi43NSAyLjc1IDAgMCAwLTIuNzUgMi43NXYyNS41YTIuNzUgMi43NSAwIDAgMCAyLjc1IDIuNzVIMjIuOGMuMzMuODguNzQgMS43MiAxLjI0IDIuNUgxMS4yNUE1LjI1IDUuMjUgMCAwIDEgNiAzNi43NXYtMjUuNVpNMjQgMzVhMTEgMTEgMCAxIDAgMjIgMCAxMSAxMSAwIDAgMC0yMiAwWm0xNC4zLTMuM2ExIDEgMCAwIDEgMS40LTEuNGwzIDNhMSAxIDAgMCAxIDAgMS40bC0zIDNhMSAxIDAgMCAxLTEuNC0xLjRsMS4yOS0xLjNIMzRhNCA0IDAgMCAwLTQgNCAxIDEgMCAxIDEtMiAwIDYgNiAwIDAgMSA2LTZoNS41OWwtMS4zLTEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZURpc21pc3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEaXNtaXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRoMS43NkE1LjUgNS41IDAgMCAxIDE0IDYuMjZWNC41QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03Wm02IDEzYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0xLjg1LTYuMzVjLjIuMi4yLjUgMCAuN2wtMS4xNCAxLjE1IDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdsLTEuMTUtMS4xNC0xLjE1IDEuMTRhLjUuNSAwIDAgMS0uNy0uN2wxLjE0LTEuMTUtMS4xNC0xLjE1YS41LjUgMCAxIDEgLjctLjdsMS4xNSAxLjE0IDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZURpc21pc3MxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRGlzbWlzczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGgxLjc2YTUuNSA1LjUgMCAwIDEtLjY2LTFINC41QTEuNSAxLjUgMCAwIDEgMyAxMS41di03QzMgMy42NyAzLjY3IDMgNC41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNXYxLjFjLjM2LjE4LjcuNCAxIC42NlY0LjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdabTYgMTNhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43bC0xLjE0IDEuMTUgMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS4xNS0xLjE0LTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNS0xLjE0LTEuMTVhLjUuNSAwIDEgMSAuNy0uN2wxLjE1IDEuMTQgMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRGlzbWlzczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURpc21pc3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gzLjZBNS41IDUuNSAwIDAgMSAxNyA5LjZWNmEzIDMgMCAwIDAtMy0zSDZabTguNSAxNmE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptMS44NS02LjM1Yy4yLjIuMi41IDAgLjdsLTEuMTQgMS4xNSAxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43bC0xLjE1LTEuMTQtMS4xNSAxLjE0YS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1LTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDEuMTUgMS4xNCAxLjE1LTEuMTRjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEaXNtaXNzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURpc21pc3MyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMy42Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjMuMmMuMzUuMS42OC4yNCAxIC40VjZhMyAzIDAgMCAwLTMtM0g2Wm04LjUgMTZhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabTEuODUtNi4zNWMuMi4yLjIuNSAwIC43bC0xLjE0IDEuMTUgMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN2wtMS4xNS0xLjE0LTEuMTUgMS4xNGEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNS0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjE1IDEuMTQgMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludDEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURvdmV0YWlsSm9pbnQxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTUuMiA2LjZBLjUuNSAwIDAgMCA1IDd2M0g0YTIgMiAwIDAgMS0yLTJWNGMwLTEuMS45LTIgMi0yaDF2M2EuNS41IDAgMCAwIC42Mi40OEw3IDUuMTR2MS43MmwtMS4zOC0uMzRhLjUuNSAwIDAgMC0uNDMuMDlaTTYgMmgyYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDZWNy42NEw3LjM4IDhBLjUuNSAwIDAgMCA4IDcuNXYtM2EuNS41IDAgMCAwLS42Mi0uNDhMNiA0LjM2VjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEb3ZldGFpbEpvaW50MTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURvdmV0YWlsSm9pbnQxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk04IDJINGEyIDIgMCAwIDAtMiAydjRjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0yWk0zIDhWNGExIDEgMCAwIDEgMS0xaDF2MmEuNS41IDAgMCAwIC42Mi40OUw3IDUuMTR2MS43MmwtMS4zOC0uMzRBLjUuNSAwIDAgMCA1IDd2Mkg0YTEgMSAwIDAgMS0xLTFabTYgMGExIDEgMCAwIDEtMSAxSDZWNy42NEw3LjM4IDhjLjE1LjAzLjMgMCAuNDMtLjFBLjUuNSAwIDAgMCA4IDcuNXYtM2EuNS41IDAgMCAwLS42Mi0uNDlMNiA0LjM2VjNoMmExIDEgMCAwIDEgMSAxdjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEb3ZldGFpbEpvaW50MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRG92ZXRhaWxKb2ludDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNiA5LjVhLjUuNSAwIDAgMSAuNjYtLjQ3TDkgOS44VjYuMTlsLTIuMzQuNzhBLjUuNSAwIDAgMSA2IDYuNVYySDQuNUEyLjUgMi41IDAgMCAwIDIgNC41djdBMi41IDIuNSAwIDAgMCA0LjUgMTRINlY5LjVaTTExLjUgMkg3djMuOGwyLjM0LS43N2EuNS41IDAgMCAxIC42Ni40N3Y1YS41LjUgMCAwIDEtLjIuNC41LjUgMCAwIDEtLjQ2LjA3TDcgMTAuMlYxNGg0LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTEuNSAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEb3ZldGFpbEpvaW50MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTEuNSAyaC03QTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMlpNMyAxMS41di03QzMgMy42NyAzLjY3IDMgNC41IDNINnYzLjVhLjUuNSAwIDAgMCAuNjYuNDdMOSA2LjJ2My42MmwtMi4zNC0uNzhBLjUuNSAwIDAgMCA2IDkuNVYxM0g0LjVBMS41IDEuNSAwIDAgMSAzIDExLjVabTEwIDBjMCAuODMtLjY3IDEuNS0xLjUgMS41SDd2LTIuOGwyLjM0Ljc3YS41LjUgMCAwIDAgLjY2LS40N3YtNWEuNS41IDAgMCAwLS42Ni0uNDdMNyA1LjhWM2g0LjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2N1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZURvdmV0YWlsSm9pbnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEb3ZldGFpbEpvaW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk04IDExLjc1YS41LjUgMCAwIDEgLjY4LS40N0wxMiAxMi41M1Y3LjQ3TDguNjcgOC43QS41LjUgMCAwIDEgOCA4LjIzVjNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2gydi01LjI1Wk0xNCAzSDl2NC41MWwzLjMzLTEuMjNhLjUuNSAwIDAgMSAuNjcuNDd2Ni41YS41LjUgMCAwIDEtLjY4LjQ3TDkgMTIuNDdWMTdoNWEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZURvdmV0YWlsSm9pbnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRG92ZXRhaWxKb2ludDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0IDNINmEzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNmEzIDMgMCAwIDAtMy0zWk00IDE0VjZjMC0xLjEuOS0yIDItMmgydjQuMjNhLjUuNSAwIDAgMCAuNjcuNDdMMTIgNy40N3Y1LjA2bC0zLjMyLTEuMjVhLjUuNSAwIDAgMC0uNjguNDdWMTZINmEyIDIgMCAwIDEtMi0yWm0xMiAwYTIgMiAwIDAgMS0yIDJIOXYtMy41M2wzLjMyIDEuMjVhLjUuNSAwIDAgMCAuNjgtLjQ3di02LjVhLjUuNSAwIDAgMC0uNjctLjQ3TDkgNy41MXYtMy41aDVhMiAyIDAgMCAxIDIgMnY4VjE0WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURvdmV0YWlsSm9pbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTkgMTQuMjVhLjc1Ljc1IDAgMCAxIC45OS0uNzFsMy41MSAxLjE3VjkuMjlMMTAgMTAuNDZBLjc1Ljc1IDAgMCAxIDkgOS43NVYzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxSDl2LTYuNzVaTTE3Ljc1IDNIMTAuNXY1LjdsMy41MS0xLjE2YS43NS43NSAwIDAgMSAxIC43MXY3LjVhLjc1Ljc1IDAgMCAxLTEgLjcxTDEwLjUgMTUuM1YyMWg3LjI1YzEuOCAwIDMuMjUtMS40NSAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU1IDMgMTcuNzUgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZURvdmV0YWlsSm9pbnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRG92ZXRhaWxKb2ludDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc1IDNINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDUgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NSAzIDE3Ljc1IDNaTTQuNSAxNy43NVY2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1SDl2NS4yNWEuNzUuNzUgMCAwIDAgLjk5LjcxTDEzLjUgOS4zdjUuNDJMMTAgMTMuNTRhLjc1Ljc1IDAgMCAwLS45OS43djUuMjZINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1Wm0xNSAwYzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxMC41di00LjJsMy41MSAxLjE2YS43NS43NSAwIDAgMCAxLS43di03LjVhLjc1Ljc1IDAgMCAwLTEtLjcyTDEwLjUgOC43MXYtNC4yaDcuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzR2MTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZURvdmV0YWlsSm9pbnQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEb3ZldGFpbEpvaW50MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMCAxNi44YS43NS43NSAwIDAgMSAuOTYtLjczbDUuNTQgMS42di03LjMzbC01LjU0IDEuNTlhLjc1Ljc1IDAgMCAxLS45Ni0uNzJWM0g2Ljc1QTMuNzUgMy43NSAwIDAgMCAzIDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNUgxMHYtOC4yWk0yMS4yNSAzSDExLjV2Ny4ybDUuNTQtMS41OGEuNzUuNzUgMCAwIDEgLjk2LjcydjkuMzJhLjc1Ljc1IDAgMCAxLS45Ni43MmwtNS41NC0xLjU5VjI1aDkuNzVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEb3ZldGFpbEpvaW50MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURvdmV0YWlsSm9pbnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0yMS4yNSAzSDYuNzVBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDE0LjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNaTTQuNSAyMS4yNVY2Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1SDEwdjYuN2EuNzUuNzUgMCAwIDAgLjk2LjczbDUuNTQtMS42djcuMzNsLTUuNTQtMS41OWEuNzUuNzUgMCAwIDAtLjk2LjczdjYuN0g2Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVptMTkgMGMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxMS41di01LjdsNS41NCAxLjU4YS43NS43NSAwIDAgMCAuOTYtLjcyVjkuMzRhLjc1Ljc1IDAgMCAwLS45Ni0uNzJsLTUuNTQgMS42VjQuNWg5Ljc1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djE0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEb3ZldGFpbEpvaW50MzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlRG92ZXRhaWxKb2ludDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMTEgMTkuMjdhMSAxIDAgMCAxIDEuMjYtLjk2TDE5IDIwLjE0di04LjI5bC02Ljc0IDEuODRhMSAxIDAgMCAxLTEuMjYtLjk2VjNINy41QTQuNSA0LjUgMCAwIDAgMyA3LjV2MTdBNC41IDQuNSAwIDAgMCA3LjUgMjlIMTF2LTkuNzNaTTI0LjUgM0gxM3Y4LjQybDYuNzQtMS44NGExIDEgMCAwIDEgMS4yNi45NnYxMC45MWExIDEgMCAwIDEtMS4yNi45N0wxMyAyMC41OFYyOWgxMS41YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTdBNC41IDQuNSAwIDAgMCAyNC41IDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVEb3ZldGFpbEpvaW50MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURvdmV0YWlsSm9pbnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yNC41IDNoLTE3QTQuNSA0LjUgMCAwIDAgMyA3LjV2MTdBNC41IDQuNSAwIDAgMCA3LjUgMjloMTdhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xN0E0LjUgNC41IDAgMCAwIDI0LjUgM1pNNSAyNC41di0xN0EyLjUgMi41IDAgMCAxIDcuNSA1SDExdjcuNzNhMSAxIDAgMCAwIDEuMjYuOTZMMTkgMTEuODZ2OC4yOWwtNi43NC0xLjg0YTEgMSAwIDAgMC0xLjI2Ljk2VjI3SDcuNUEyLjUgMi41IDAgMCAxIDUgMjQuNVptMjIgMGEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTN2LTYuNDJsNi43NCAxLjg0YTEgMSAwIDAgMCAxLjI2LS45N3YtMTAuOWExIDEgMCAwIDAtMS4yNi0uOTdMMTMgMTEuNDJWNWgxMS41QTIuNSAyLjUgMCAwIDEgMjcgNy41djE3WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZURvdmV0YWlsSm9pbnQ0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTE4IDI4LjU3YTEuMjUgMS4yNSAwIDAgMSAxLjYzLTEuMmw3Ljg3IDIuNTNWMTguMWwtNy44NyAyLjUyYTEuMjUgMS4yNSAwIDAgMS0xLjYzLTEuMlY2aC01Ljc1QTYuMjUgNi4yNSAwIDAgMCA2IDEyLjI1djIzLjVDNiAzOS4yIDguOCA0MiAxMi4yNSA0MkgxOFYyOC41N1pNMzUuNzUgNkgyMC41djExLjcybDcuODctMi41MkExLjI1IDEuMjUgMCAwIDEgMzAgMTYuMzlWMzEuNmExLjI1IDEuMjUgMCAwIDEtMS42MyAxLjJsLTcuODctMi41M1Y0MmgxNS4yNUMzOS4yIDQyIDQyIDM5LjIgNDIgMzUuNzV2LTIzLjVDNDIgOC44IDM5LjIgNiAzNS43NSA2WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlRG92ZXRhaWxKb2ludDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVEb3ZldGFpbEpvaW50NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMzUuNzUgNmgtMjMuNUE2LjI1IDYuMjUgMCAwIDAgNiAxMi4yNXYyMy41QzYgMzkuMiA4LjggNDIgMTIuMjUgNDJoMjMuNUMzOS4yIDQyIDQyIDM5LjIgNDIgMzUuNzV2LTIzLjVDNDIgOC44IDM5LjIgNiAzNS43NSA2Wk04LjUgMzUuNzV2LTIzLjVhMy43NSAzLjc1IDAgMCAxIDMuNzUtMy43NUgxOHYxMC45M2ExLjI1IDEuMjUgMCAwIDAgMS42MyAxLjJsNy44Ny0yLjUzdjExLjhsLTcuODctMi41MmExLjI1IDEuMjUgMCAwIDAtMS42MyAxLjJWMzkuNWgtNS43NWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1Wm0zMSAwYTMuNzUgMy43NSAwIDAgMS0zLjc1IDMuNzVIMjAuNXYtOS4yMmw3Ljg3IDIuNTJBMS4yNSAxLjI1IDAgMCAwIDMwIDMxLjYxVjE2LjRhMS4yNSAxLjI1IDAgMCAwLTEuNjMtMS4ybC03Ljg3IDIuNTNWOC41aDE1LjI1YTMuNzUgMy43NSAwIDAgMSAzLjc1IDMuNzV2MjMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUVyYXNlcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUVyYXNlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJtOC43MyAxMy42NCA0LjktNC45QTIuNDggMi40OCAwIDAgMSAxNyA4LjU5VjZhMyAzIDAgMCAwLTMtM0g2YTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDIuNmEyLjUgMi41IDAgMCAxIC4xMy0zLjM2Wm03Ljc0LTQuMiAyLjEgMi4xYTEuNSAxLjUgMCAwIDEgMCAyLjEybC0zLjYgMy42LTQuMjItNC4yMiAzLjYtMy42YTEuNSAxLjUgMCAwIDEgMi4xMiAwWm0tMi4yMSA4LjUyLTQuMjItNC4yMi0uNi42YTEuNSAxLjUgMCAwIDAgMCAyLjEzbDIuMSAyLjFhMS41IDEuNSAwIDAgMCAxLjEyLjQzaDQuMDlhLjUuNSAwIDAgMCAwLTFoLTIuNTNsLjA0LS4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUVyYXNlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVFcmFzZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjA4IDE2SDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjIuMDhjLjM3LjA5LjcxLjI2IDEgLjVWNmEzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoMi42YTIuNDcgMi40NyAwIDAgMS0uNTItMVptMS4zNi40N2ExLjUgMS41IDAgMCAxIDAtMi4xM2w0LjktNC45YTEuNSAxLjUgMCAwIDEgMi4xMiAwbDIuMSAyLjFhMS41IDEuNSAwIDAgMSAwIDIuMTNMMTQuMjIgMThoMi41M2EuNS41IDAgMCAxIDAgMWgtNC4xYTEuNSAxLjUgMCAwIDEtMS4xMi0uNDRsLTIuMS0yLjFabTUuNjEtNi4zMi0zLjYgMy42IDIuOCAyLjggMy42LTMuNmEuNS41IDAgMCAwIDAtLjcxbC0yLjEtMi4xYS41LjUgMCAwIDAtLjcgMFptLTEuNSA3LjEtMi44LTIuOC0uNi42YS41LjUgMCAwIDAgMCAuNzFsMi4xIDIuMWEuNS41IDAgMCAwIC43IDBsLjYtLjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNy4yNSAyYS43NS43NSAwIDAgMCAwIDEuNWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVaTTMuNSA3LjI1YS43NS43NSAwIDAgMC0xLjUgMHYxLjVhLjc1Ljc1IDAgMSAwIDEuNSAwdi0xLjVabTkuNzUtLjc1Yy40MSAwIC43NS4zNC43NS43NXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVptLTYgNy41YS43NS43NSAwIDAgMSAwLTEuNWgxLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjVaTTExIDIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NUMxMi45OSAyIDE0IDMgMTQgNC4yNWEuNzUuNzUgMCAwIDEtMS41IDAgLjc1Ljc1IDAgMCAwLS43NS0uNzUuNzUuNzUgMCAwIDEtLjc1LS43NVpNMTEuNzUgMTRhLjc1Ljc1IDAgMCAxIDAtMS41Yy40MSAwIC43NS0uMzQuNzUtLjc1YS43NS43NSAwIDAgMSAxLjUgMGMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNVpNNSAyLjc1QS43NS43NSAwIDAgMCA0LjI1IDJDMy4wMSAyIDIgMyAyIDQuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwYzAtLjQxLjM0LS43NS43NS0uNzVTNSAzLjE2IDUgMi43NVpNNC4yNSAxNGEuNzUuNzUgMCAwIDAgMC0xLjUuNzUuNzUgMCAwIDEtLjc1LS43NS43NS43NSAwIDAgMC0xLjUgMEMyIDEyLjk5IDMgMTQgNC4yNSAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkuNSAyLjVBLjUuNSAwIDAgMCA5IDJIN2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjUtLjVabTEuNSAwYzAgLjI4LjIyLjUuNS41LjgzIDAgMS41LjY3IDEuNSAxLjVhLjUuNSAwIDAgMCAxIDBBMi41IDIuNSAwIDAgMCAxMS41IDJhLjUuNSAwIDAgMC0uNS41Wk0xNCA3YS41LjUgMCAwIDAtMSAwdjJhLjUuNSAwIDAgMCAxIDBWN1ptMCA0LjVhLjUuNSAwIDAgMC0xIDBjMCAuODMtLjY3IDEuNS0xLjUgMS41YS41LjUgMCAwIDAgMCAxIDIuNSAyLjUgMCAwIDAgMi41LTIuNVptLTcuNSAyYzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg3YS41LjUgMCAwIDEtLjUtLjVaTTUgMi41YS41LjUgMCAwIDAtLjUtLjVBMi41IDIuNSAwIDAgMCAyIDQuNWEuNS41IDAgMCAwIDEgMEMzIDMuNjcgMy42NyAzIDQuNSAzYS41LjUgMCAwIDAgLjUtLjVaTTQuNSAxM2EuNS41IDAgMCAxIDAgMUEyLjUgMi41IDAgMCAxIDIgMTEuNWEuNS41IDAgMCAxIDEgMGMwIC44My42NyAxLjUgMS41IDEuNVpNMyA5YS41LjUgMCAwIDEtMSAwVjdhLjUuNSAwIDAgMSAxIDB2MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05LjI1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVpNMyAxMC43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTEuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41Wm01LjUgNS41YzAtLjQxLjM0LS43NS43NS0uNzVoMS41YS43NS43NSAwIDAgMSAwIDEuNWgtMS41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm03LTUuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTEuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41Wm0tOS41LTdBLjc1Ljc1IDAgMCAwIDUuMjUgM0M0LjAxIDMgMyA0IDMgNS4yNWEuNzUuNzUgMCAwIDAgMS41IDBjMC0uNDEuMzQtLjc1Ljc1LS43NVM2IDQuMTYgNiAzLjc1Wk01LjI1IDE3YS43NS43NSAwIDAgMCAwLTEuNS43NS43NSAwIDAgMS0uNzUtLjc1Ljc1Ljc1IDAgMCAwLTEuNSAwQzMgMTUuOTkgNCAxNyA1LjI1IDE3Wk0xNCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVDMTUuOTkgMyAxNyA0IDE3IDUuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwIC43NS43NSAwIDAgMC0uNzUtLjc1Ljc1Ljc1IDAgMCAxLS43NS0uNzVaTTE0Ljc1IDE3YS43NS43NSAwIDAgMSAwLTEuNWMuNDEgMCAuNzUtLjM0Ljc1LS43NWEuNzUuNzUgMCAwIDEgMS41IDBjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDMuNWEuNS41IDAgMCAwLS41LS41QTIuNSAyLjUgMCAwIDAgMyA1LjVhLjUuNSAwIDAgMCAxIDBDNCA0LjY3IDQuNjcgNCA1LjUgNGEuNS41IDAgMCAwIC41LS41Wk0xNi41IDZhLjUuNSAwIDAgMCAuNS0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM2EuNS41IDAgMCAwIDAgMWMuODMgMCAxLjUuNjcgMS41IDEuNSAwIC4yOC4yMi41LjUuNVptLTIgMTFhLjUuNSAwIDAgMSAwLTFjLjgzIDAgMS41LS42NyAxLjUtMS41YS41LjUgMCAwIDEgMSAwIDIuNSAyLjUgMCAwIDEtMi41IDIuNVptLTExLTNhLjUuNSAwIDAgMC0uNS41QTIuNSAyLjUgMCAwIDAgNS41IDE3YS41LjUgMCAwIDAgMC0xQTEuNSAxLjUgMCAwIDEgNCAxNC41YS41LjUgMCAwIDAtLjUtLjVaTTMgOWEuNS41IDAgMCAxIDEgMHYyYS41LjUgMCAwIDEtMSAwVjlabTEzLjUtLjVhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAxIDBWOWEuNS41IDAgMCAwLS41LS41Wm0tOC01YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg5YS41LjUgMCAwIDEtLjUtLjVaTTkgMTZhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg5WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwIDRhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDEgMSAwIDJoLTJhMSAxIDAgMCAxLTEtMVptNy41IDFhMSAxIDAgMSAxIDAtMkEzLjUgMy41IDAgMCAxIDIxIDYuNWExIDEgMCAxIDEtMiAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNVptLTExLTJhMSAxIDAgMCAxIDAgMkM1LjY3IDUgNSA1LjY3IDUgNi41YTEgMSAwIDAgMS0yIDBBMy41IDMuNSAwIDAgMSA2LjUgM1pNNCAxNi41YTEgMSAwIDAgMC0xIDFBMy41IDMuNSAwIDAgMCA2LjUgMjFhMSAxIDAgMSAwIDAtMkExLjUgMS41IDAgMCAxIDUgMTcuNWExIDEgMCAwIDAtMS0xWm03IDIuNWExIDEgMCAxIDAgMCAyaDJhMSAxIDAgMSAwIDAtMmgtMlptNi41IDBhMSAxIDAgMSAwIDAgMiAzLjUgMy41IDAgMCAwIDMuNS0zLjUgMSAxIDAgMSAwLTIgMGMwIC44My0uNjcgMS41LTEuNSAxLjVabTIuNS05YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAxIDEtMiAwdi0yYTEgMSAwIDAgMSAxLTFaTTMgMTNhMSAxIDAgMSAwIDIgMHYtMmExIDEgMCAxIDAtMiAwdjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMCAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm03Ljc1Ljc1YS43NS43NSAwIDAgMSAwLTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNWEuNzUuNzUgMCAwIDEtMS41IDBjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1Wk02LjI1IDNhLjc1Ljc1IDAgMCAxIDAgMS41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NWEuNzUuNzUgMCAwIDEtMS41IDBDMyA0LjQ1IDQuNDYgMyA2LjI1IDNabS0yLjUgMTRhLjc1Ljc1IDAgMCAwLS43NS43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWEuNzUuNzUgMCAwIDAgMC0xLjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NVptNyAyLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNVptNyAwYS43NS43NSAwIDAgMCAwIDEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1YS43NS43NSAwIDAgMC0xLjUgMGMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVabTIuNS05LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djIuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTIuNWMwLS40MS4zNC0uNzUuNzUtLjc1Wk0zIDEzLjI1YS43NS43NSAwIDAgMCAxLjUgMHYtMi41YS43NS43NSAwIDAgMC0xLjUgMHYyLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTIuNSAzYTEgMSAwIDEgMCAwIDJoM2ExIDEgMCAxIDAgMC0yaC0zWm0wIDIwYTEgMSAwIDEgMCAwIDJoM2ExIDEgMCAxIDAgMC0yaC0zWk00IDE2LjVhMSAxIDAgMCAxLTEtMXYtM2ExIDEgMCAxIDEgMiAwdjNhMSAxIDAgMCAxLTEgMVptMTktMWExIDEgMCAxIDAgMiAwdi0zYTEgMSAwIDEgMC0yIDB2M1pNOCA0YTEgMSAwIDAgMC0xLTFoLS4yNUEzLjc1IDMuNzUgMCAwIDAgMyA2Ljc1VjdhMSAxIDAgMCAwIDIgMHYtLjI1QzUgNS43OCA1Ljc4IDUgNi43NSA1SDdhMSAxIDAgMCAwIDEtMVpNNyAyNWExIDEgMCAxIDAgMC0yaC0uMjVDNS43OCAyMyA1IDIyLjIyIDUgMjEuMjVWMjFhMSAxIDAgMSAwLTIgMHYuMjVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVIN1pNMjAgNGExIDEgMCAwIDEgMS0xaC4yNUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NVY3YTEgMSAwIDEgMS0yIDB2LS4yNUMyMyA1Ljc4IDIyLjIyIDUgMjEuMjUgNUgyMWExIDEgMCAwIDEtMS0xWm0xIDIxYTEgMSAwIDEgMSAwLTJoLjI1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYyMWExIDEgMCAxIDEgMiAwdi4yNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVIMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMi4yNSAzYS43NS43NSAwIDAgMCAwIDEuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVabTAgMjAuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41Wm0tOC41LTdhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTMuNWEuNzUuNzUgMCAwIDEgMS41IDB2My41YzAgLjQxLS4zNC43NS0uNzUuNzVabTE5Ljc1LS43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuNWEuNzUuNzUgMCAwIDAtMS41IDB2My41Wm0tMy41LTEyYzAtLjQxLjM0LS43NS43NS0uNzVoLjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNWgtLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIwLjc1IDI1YS43NS43NSAwIDAgMSAwLTEuNWguNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNWgtLjVaTTggMy43NUEuNzUuNzUgMCAwIDAgNy4yNSAzaC0uNUEzLjc1IDMuNzUgMCAwIDAgMyA2Ljc1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVaTTcuMjUgMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LS41YS43NS43NSAwIDAgMC0xLjUgMHYuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNWguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnQzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50MzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0xNC4yNSAzYTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgzLjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC0zLjVabTAgMjMuNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMy41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtMy41Wm0xMy41LTcuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di0zLjVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjMuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVaTTMgMTcuNzVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi0zLjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjMuNVptNi0xMy41QzkgMy41NiA4LjQ0IDMgNy43NSAzQTQuNzUgNC43NSAwIDAgMCAzIDcuNzVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwYzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1QzguNDQgNS41IDkgNC45NCA5IDQuMjVaTTcuNzUgMjlhMS4yNSAxLjI1IDAgMSAwIDAtMi41Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNWExLjI1IDEuMjUgMCAxIDAtMi41IDBBNC43NSA0Ljc1IDAgMCAwIDcuNzUgMjlaTTIzIDQuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVBNC43NSA0Ljc1IDAgMCAxIDI5IDcuNzVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwYzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1LS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpNMjQuMjUgMjlhMS4yNSAxLjI1IDAgMSAxIDAtMi41YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMEE0Ljc1IDQuNzUgMCAwIDEgMjQuMjUgMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnQzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0xNCAzYTEgMSAwIDEgMCAwIDJoNGExIDEgMCAxIDAgMC0yaC00Wm0wIDI0YTEgMSAwIDEgMCAwIDJoNGExIDEgMCAxIDAgMC0yaC00Wk00IDE5YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMSAxIDIgMHY0YTEgMSAwIDAgMS0xIDFabTIzLTFhMSAxIDAgMSAwIDIgMHYtNGExIDEgMCAxIDAtMiAwdjRaTTkgNGExIDEgMCAwIDAtMS0xaC0uMjVBNC43NSA0Ljc1IDAgMCAwIDMgNy43NVY4YTEgMSAwIDAgMCAyIDB2LS4yNUEyLjc1IDIuNzUgMCAwIDEgNy43NSA1SDhhMSAxIDAgMCAwIDEtMVpNOCAyOWExIDEgMCAxIDAgMC0yaC0uMjVBMi43NSAyLjc1IDAgMCAxIDUgMjQuMjVWMjRhMSAxIDAgMSAwLTIgMHYuMjVBNC43NSA0Ljc1IDAgMCAwIDcuNzUgMjlIOFpNMjMgNGExIDEgMCAwIDEgMS0xaC4yNUE0Ljc1IDQuNzUgMCAwIDEgMjkgNy43NVY4YTEgMSAwIDEgMS0yIDB2LS4yNUEyLjc1IDIuNzUgMCAwIDAgMjQuMjUgNUgyNGExIDEgMCAwIDEtMS0xWm0xIDI1YTEgMSAwIDEgMSAwLTJoLjI1QTIuNzUgMi43NSAwIDAgMCAyNyAyNC4yNVYyNGExIDEgMCAxIDEgMiAwdi4yNUE0Ljc1IDQuNzUgMCAwIDEgMjQuMjUgMjlIMjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50NDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjEuNSA2YTEuNSAxLjUgMCAwIDAgMCAzaDVhMS41IDEuNSAwIDAgMCAwLTNoLTVaTTQyIDIxLjVhMS41IDEuNSAwIDAgMC0zIDB2NWExLjUgMS41IDAgMCAwIDMgMHYtNVptLTIyIDE5YzAtLjgzLjY3LTEuNSAxLjUtMS41aDVhMS41IDEuNSAwIDAgMSAwIDNoLTVhMS41IDEuNSAwIDAgMS0xLjUtMS41Wm0tMTEtMTlhMS41IDEuNSAwIDAgMC0zIDB2NWExLjUgMS41IDAgMCAwIDMgMHYtNVptNS0xNGMwLS44My0uNjctMS41LTEuNS0xLjVBNi41IDYuNSAwIDAgMCA2IDEyLjVhMS41IDEuNSAwIDAgMCAzIDBBMy41IDMuNSAwIDAgMSAxMi41IDljLjgzIDAgMS41LS42NyAxLjUtMS41Wk0xMi41IDQyYTEuNSAxLjUgMCAwIDAgMC0zQTMuNSAzLjUgMCAwIDEgOSAzNS41YTEuNSAxLjUgMCAwIDAtMyAwIDYuNSA2LjUgMCAwIDAgNi41IDYuNVpNMzQgNy41YzAtLjgzLjY3LTEuNSAxLjUtMS41YTYuNSA2LjUgMCAwIDEgNi41IDYuNSAxLjUgMS41IDAgMCAxLTMgMEEzLjUgMy41IDAgMCAwIDM1LjUgOSAxLjUgMS41IDAgMCAxIDM0IDcuNVpNMzUuNSA0MmExLjUgMS41IDAgMCAxIDAtMyAzLjUgMy41IDAgMCAwIDMuNS0zLjUgMS41IDEuNSAwIDAgMSAzIDAgNi41IDYuNSAwIDAgMS02LjUgNi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludDQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50NDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjEuMjUgNmExLjI1IDEuMjUgMCAxIDAgMCAyLjVoNS41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtNS41Wm0wIDM2YTEuMjUgMS4yNSAwIDEgMSAwLTIuNWg1LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC01LjVabS0xNC0xNEM2LjU2IDI4IDYgMjcuNDQgNiAyNi43NXYtNS41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHY1LjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1Wm0zMi4yNS0xLjI1YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNS41YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHY1LjVaTTE0IDcuMjVDMTQgNi41NiAxMy40NCA2IDEyLjc1IDZoLS41QTYuMjUgNi4yNSAwIDAgMCA2IDEyLjI1di41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtLjVhMy43NSAzLjc1IDAgMCAxIDMuNzUtMy43NWguNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVaTTEyLjc1IDQyYTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtLjVhMy43NSAzLjc1IDAgMCAxLTMuNzUtMy43NXYtLjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdi41QzYgMzkuMiA4LjggNDIgMTIuMjUgNDJoLjVaTTM0IDcuMjVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoLjVDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXYuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LS41YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLS41Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVaTTM1LjI1IDQyYTEuMjUgMS4yNSAwIDEgMSAwLTIuNWguNWEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1di0uNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2LjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQyaC0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRBcHBzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEFwcHMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNSAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNaTTQuMDUgNS41NGEyIDIgMCAwIDEgMS41NS0xLjUuNS41IDAgMCAwIC40LS41OS41LjUgMCAwIDAtLjY2LS4zOCAzIDMgMCAwIDAtMi4yOSAyLjM0LjUuNSAwIDAgMCAuNC42LjUuNSAwIDAgMCAuNi0uNDdabTAgOC45MmEyIDIgMCAwIDAgMS41NSAxLjUuNS41IDAgMCAxIC40LjU5LjUuNSAwIDAgMS0uNjYuMzggMyAzIDAgMCAxLTIuMjktMi4zNC41LjUgMCAwIDEgLjQtLjYuNS41IDAgMCAxIC42LjQ3Wk0xNC42NiAzLjA3YS41LjUgMCAwIDAtLjY2LjM4LjUuNSAwIDAgMCAuNDYuNiAyIDIgMCAwIDEgMS41IDEuNTUuNS41IDAgMCAwIC41OS40LjUuNSAwIDAgMCAuMzgtLjY2IDMgMyAwIDAgMC0yLjI3LTIuMjdaTTMgMTEuNWEuNS41IDAgMCAwIDEgMHYtM2EuNS41IDAgMCAwLTEgMHYzWk02LjUgNUM1LjY3IDUgNSA1LjY3IDUgNi41djdjMCAuODMuNjcgMS41IDEuNSAxLjVIN3YtLjI1QTIuNzUgMi43NSAwIDAgMSA5Ljc1IDEySDEyVjkuNzVBMi43NSAyLjc1IDAgMCAxIDE0Ljc1IDdIMTV2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1pNMTkgOS43NUMxOSA4Ljc4IDE4LjIyIDggMTcuMjUgOGgtMi41QzEzLjc4IDggMTMgOC43OCAxMyA5Ljc1VjEzSDkuNzVDOC43OCAxMyA4IDEzLjc4IDggMTQuNzV2Mi41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDYuNzVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjkuNzVaTTE0IDEzVjkuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1VjEzaC00Wm0yLjUgNUgxNHYtNGg0djIuNWMwIC44My0uNjcgMS41LTEuNSAxLjVabS02Ljc1LTRIMTN2NEg5Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1di0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRBcHBzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRBcHBzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOC41IDNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNNC4wNSA1LjU0YTIgMiAwIDAgMSAxLjU1LTEuNS41LjUgMCAwIDAgLjQtLjU5LjUuNSAwIDAgMC0uNjYtLjM4IDMgMyAwIDAgMC0yLjI5IDIuMzQuNS41IDAgMCAwIC40LjYuNS41IDAgMCAwIC42LS40N1ptMCA4LjkyYTIgMiAwIDAgMCAxLjU1IDEuNS41LjUgMCAwIDEgLjQuNTkuNS41IDAgMCAxLS42Ni4zOCAzIDMgMCAwIDEtMi4yOS0yLjM0LjUuNSAwIDAgMSAuNC0uNi41LjUgMCAwIDEgLjYuNDdaTTE0LjY2IDMuMDdhLjUuNSAwIDAgMC0uNjYuMzguNS41IDAgMCAwIC40Ni42IDIgMiAwIDAgMSAxLjUgMS41NS41LjUgMCAwIDAgLjU5LjQuNS41IDAgMCAwIC4zOC0uNjYgMyAzIDAgMCAwLTIuMjctMi4yN1pNMyAxMS41YS41LjUgMCAwIDAgMSAwdi0zYS41LjUgMCAwIDAtMSAwdjNabTE2LTEuNzVDMTkgOC43OCAxOC4yMiA4IDE3LjI1IDhoLTIuNUMxMy43OCA4IDEzIDguNzggMTMgOS43NVYxM0g5Ljc1QzguNzggMTMgOCAxMy43OCA4IDE0Ljc1djIuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg2Ljc1YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5Ljc1Wk0xNCAxM1Y5Ljc1YzAtLjQxLjM0LS43NS43NS0uNzVoMi41Yy40MSAwIC43NS4zNC43NS43NVYxM2gtNFptMi41IDVIMTR2LTRoNHYyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41Wm0tNi43NS00SDEzdjRIOS43NWEuNzUuNzUgMCAwIDEtLjc1LS43NXYtMi41YzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50QXBwczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRBcHBzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNhLjc1Ljc1IDAgMCAxIDAgMS41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NWEuNzUuNzUgMCAwIDEtMS41IDBDMyA0LjQ1IDQuNDYgMyA2LjI1IDNabTMuNSAwYS43NS43NSAwIDAgMCAwIDEuNWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC00LjVabTcuMjUuNzVjMCAuNDEuMzQuNzUuNzUuNzUuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYxYS43NS43NSAwIDAgMCAxLjUgMHYtMUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM2EuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0tMTQgMTRhLjc1Ljc1IDAgMCAxIDEuNSAwYzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDFhLjc1Ljc1IDAgMCAxIDAgMS41aC0xQTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1Wm0wLTMuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTQuNWEuNzUuNzUgMCAwIDAtMS41IDB2NC41Wk03IDUuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MTBjMCAuODMuNjcgMS41IDEuNSAxLjVoMnYtLjc1YzAtMS44IDEuNDYtMy4yNSAzLjI1LTMuMjVoMi4yNXYtMi4yNWMwLTEuOCAxLjQ2LTMuMjUgMy4yNS0zLjI1aC43NVY3YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg3Wm01LjI1IDEwaDMuMjV2LTMuMjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoM2MxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXY3LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtNy41QzExLjAxIDIzIDEwIDIyIDEwIDIwLjc1di0zYzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1Wk0xNyAxMi4yNXYzLjI1aDQuNXYtMy4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtM2EuNzUuNzUgMCAwIDAtLjc1Ljc1Wm0tMS41IDkuMjVWMTdoLTMuMjVhLjc1Ljc1IDAgMCAwLS43NS43NXYzYzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuMjVaTTE3IDE3djQuNWgyLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxN0gxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRBcHBzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRBcHBzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNyAzLjc1QS43NS43NSAwIDAgMCA2LjI1IDMgMy4yNSAzLjI1IDAgMCAwIDMgNi4yNWEuNzUuNzUgMCAwIDAgMS41IDBjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzUuNDEgMCAuNzUtLjM0Ljc1LS43NVptMiAwYzAtLjQxLjM0LS43NS43NS0uNzVoNC41YS43NS43NSAwIDAgMSAwIDEuNWgtNC41QS43NS43NSAwIDAgMSA5IDMuNzVabTguNzUuNzVhLjc1Ljc1IDAgMCAxIDAtMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djFhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xYzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NVpNMy43NSAxN2EuNzUuNzUgMCAwIDAtLjc1Ljc1QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDFhLjc1Ljc1IDAgMCAwIDAtMS41aC0xYy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVabTAtMmEuNzUuNzUgMCAwIDEtLjc1LS43NXYtNC41YS43NS43NSAwIDAgMSAxLjUgMHY0LjVjMCAuNDEtLjM0Ljc1LS43NS43NVptOC41LjVoMy4yNXYtMy4yNWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNWgzYzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djcuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC03LjVDMTEuMDEgMjMgMTAgMjIgMTAgMjAuNzV2LTNjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVaTTE3IDEyLjI1djMuMjVoNC41di0zLjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0zYS43NS43NSAwIDAgMC0uNzUuNzVabS0xLjUgOS4yNVYxN2gtMy4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djNjMCAuNDEuMzQuNzUuNzUuNzVoMy4yNVpNMTcgMTd2NC41aDIuNzVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjE3SDE3WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEFycm93QmFjazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRBcnJvd0JhY2sxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTcuMjUgMmEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YS43NS43NSAwIDAgMCAwLTEuNWgtMS41Wk0zLjUgNy4yNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41YS43NS43NSAwIDEgMCAxLjUgMHYtMS41Wm03LjUtNC41YzAtLjQxLjM0LS43NS43NS0uNzVDMTIuOTkgMiAxNCAzIDE0IDQuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwIC43NS43NSAwIDAgMC0uNzUtLjc1Ljc1Ljc1IDAgMCAxLS43NS0uNzVaTTQuMjUgMmEuNzUuNzUgMCAwIDEgMCAxLjUuNzUuNzUgMCAwIDAtLjc1Ljc1Ljc1Ljc1IDAgMCAxLTEuNSAwQzIgMy4wMSAzIDIgNC4yNSAyWk01IDEzLjI1YzAgLjQxLS4zNC43NS0uNzUuNzVDMy4wMSAxNCAyIDEzIDIgMTEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwYzAgLjQxLjM0Ljc1Ljc1Ljc1cy43NS4zNC43NS43NVptMTAtMi43NWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFpNOS42IDcuOWEuNS41IDAgMCAwLS43IDBMNy4xNSA5LjY1YS41LjUgMCAwIDAgMCAuN0w4LjkgMTIuMWEuNS41IDAgMCAwIC43LS43bC0uOS0uOWgxLjU1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVIOC43MWwuOS0uOWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50QXJyb3dCYWNrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRBcnJvd0JhY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00LjUgMmEuNS41IDAgMCAxIDAgMUMzLjY3IDMgMyAzLjY3IDMgNC41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgNC41IDJabTUgLjVBLjUuNSAwIDAgMCA5IDJIN2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjUtLjVabTEuNSAwYzAgLjI4LjIyLjUuNS41LjgzIDAgMS41LjY3IDEuNSAxLjVhLjUuNSAwIDAgMCAxIDBBMi41IDIuNSAwIDAgMCAxMS41IDJhLjUuNSAwIDAgMC0uNS41Wk00LjUgMTNhLjUuNSAwIDAgMSAwIDFBMi41IDIuNSAwIDAgMSAyIDExLjVhLjUuNSAwIDAgMSAxIDBjMCAuODMuNjcgMS41IDEuNSAxLjVabS0yLTMuNUEuNS41IDAgMCAwIDMgOVY3YS41LjUgMCAwIDAtMSAwdjJjMCAuMjguMjIuNS41LjVabTggNS41YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wk04LjkgNy45YS41LjUgMCAxIDEgLjcuN2wtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxMyAxMi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC43MWwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdMOC45IDcuOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRBcnJvd0JhY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50QXJyb3dCYWNrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05LjI1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNVpNMyAxMC43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTEuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41Wm00LjUgNS41YzAtLjQxLjM0LS43NS43NS0uNzVoLjg0Yy4xLjUzLjI3IDEuMDMuNTEgMS41SDguMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTgtNy4xNmMuNTMuMSAxLjAzLjI3IDEuNS41MVY4LjI1YS43NS43NSAwIDAgMC0xLjUgMHYuODRaTTYgMy43NUEuNzUuNzUgMCAwIDAgNS4yNSAzQzQuMDEgMyAzIDQgMyA1LjI1YS43NS43NSAwIDAgMCAxLjUgMGMwLS40MS4zNC0uNzUuNzUtLjc1UzYgNC4xNiA2IDMuNzVaTTUuMjUgMTdhLjc1Ljc1IDAgMCAwIDAtMS41Ljc1Ljc1IDAgMCAxLS43NS0uNzUuNzUuNzUgMCAwIDAtMS41IDBDMyAxNS45OSA0IDE3IDUuMjUgMTdaTTE0IDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NUMxNS45OSAzIDE3IDQgMTcgNS4yNWEuNzUuNzUgMCAwIDEtMS41IDAgLjc1Ljc1IDAgMCAwLS43NS0uNzUuNzUuNzUgMCAwIDEtLjc1LS43NVpNMTQuNSAxOWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRBcnJvd0JhY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEFycm93QmFjazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYgMy41YS41LjUgMCAwIDAtLjUtLjVBMi41IDIuNSAwIDAgMCAzIDUuNWEuNS41IDAgMCAwIDEgMEM0IDQuNjcgNC42NyA0IDUuNSA0YS41LjUgMCAwIDAgLjUtLjVaTTE2LjUgNmEuNS41IDAgMCAwIC41LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzYS41LjUgMCAwIDAgMCAxYy44MyAwIDEuNS42NyAxLjUgMS41IDAgLjI4LjIyLjUuNS41Wm0tMTMgOGEuNS41IDAgMCAwLS41LjVBMi41IDIuNSAwIDAgMCA1LjUgMTdhLjUuNSAwIDAgMCAwLTFBMS41IDEuNSAwIDAgMSA0IDE0LjVhLjUuNSAwIDAgMC0uNS0uNVpNMyA5YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0xIDBWOVptMTMuNS0xLjVhLjUuNSAwIDAgMC0uNS41djEuMmMuMzUuMS42OC4yNCAxIC40VjhhLjUuNSAwIDAgMC0uNS0uNVpNOS42IDE3Yy0uMTYtLjMyLS4zLS42NS0uNC0xSDhhLjUuNSAwIDAgMCAwIDFoMS42Wk04LjUgMy41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg5YS41LjUgMCAwIDEtLjUtLjVabTYgMTUuNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDE3IDE2LjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NWgtMS41NGwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdsMS43Ni0xLjc1YS41LjUgMCAwIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRIZXhhZ29uMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEhleGFnb24xMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTMuNSAyQzIuNjcgMiAyIDIuNjcgMiAzLjVhLjUuNSAwIDAgMCAxIDBjMC0uMjguMjItLjUuNS0uNWEuNS41IDAgMCAwIDAtMVptMiAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabTMgMGEuNS41IDAgMCAwIDAgMWMuMjggMCAuNS4yMi41LjVhLjUuNSAwIDAgMCAxIDBDMTAgMi42NyA5LjMzIDIgOC41IDJaTTMgNS41YS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabTcgMGEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xWm0tNyAzYS41LjUgMCAwIDAtMSAwYzAgLjgzLjY3IDEuNSAxLjUgMS41YS41LjUgMCAwIDAgMC0xIC41LjUgMCAwIDEtLjUtLjVabTcgMGEuNS41IDAgMCAwLTEgMCAuNS41IDAgMCAxLS41LjUuNS41IDAgMCAwIDAgMWMuODMgMCAxLjUtLjY3IDEuNS0xLjVaTTUuNSA5YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTFabS0uODctNC42M0EuNzUuNzUgMCAwIDEgNS4yOCA0aDEuNDVjLjI2IDAgLjUxLjE0LjY0LjM3bC43MyAxLjI1Yy4xMy4yNC4xMy41MiAwIC43NmwtLjczIDEuMjRhLjc1Ljc1IDAgMCAxLS42NC4zOEg1LjI4YS43NS43NSAwIDAgMS0uNjUtLjM4TDMuOSA2LjM4YS43NS43NSAwIDAgMSAwLS43NmwuNzMtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRIZXhhZ29uMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRIZXhhZ29uMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNMy41IDJDMi42NyAyIDIgMi42NyAyIDMuNWEuNS41IDAgMCAwIDEgMGMwLS4yOC4yMi0uNS41LS41YS41LjUgMCAwIDAgMC0xWm0yIDBhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVptMyAwYS41LjUgMCAwIDAgMCAxYy4yOCAwIC41LjIyLjUuNWEuNS41IDAgMCAwIDEgMEMxMCAyLjY3IDkuMzMgMiA4LjUgMlpNMyA1LjVhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAwIDEgMHYtMVptNyAwYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTFabS03IDNhLjUuNSAwIDAgMC0xIDBjMCAuODMuNjcgMS41IDEuNSAxLjVhLjUuNSAwIDAgMCAwLTEgLjUuNSAwIDAgMS0uNS0uNVptNyAwYS41LjUgMCAwIDAtMSAwIC41LjUgMCAwIDEtLjUuNS41LjUgMCAwIDAgMCAxYy44MyAwIDEuNS0uNjcgMS41LTEuNVpNNS41IDlhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMVptLS42Ni0zIC41OC0xaDEuMTZsLjU4IDEtLjU4IDFINS40MmwtLjU4LTFabS40NC0yYS43NS43NSAwIDAgMC0uNjUuMzdMMy45IDUuNjJhLjc1Ljc1IDAgMCAwIDAgLjc2bC43MyAxLjI0Yy4xMy4yNC4zOC4zOC42NS4zOGgxLjQ1Yy4yNiAwIC41MS0uMTQuNjQtLjM4bC43My0xLjI0YS43NS43NSAwIDAgMCAwLS43NmwtLjczLTEuMjVBLjc1Ljc1IDAgMCAwIDYuNzMgNEg1LjI4WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEhleGFnb24xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50SGV4YWdvbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOSAyYS41LjUgMCAwIDEgMCAxSDdhLjUuNSAwIDAgMSAwLTFoMlptMi41IDFhLjUuNSAwIDAgMSAwLTFBMi41IDIuNSAwIDAgMSAxNCA0LjVhLjUuNSAwIDAgMS0xIDBjMC0uODMtLjY3LTEuNS0xLjUtMS41Wm0yIDMuNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLTEgMFY3YzAtLjI4LjIyLS41LjUtLjVabTAgNC41Yy4yOCAwIC41LjIyLjUuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjUuNS41IDAgMCAxIDAtMWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMjguMjItLjUuNS0uNVpNNyAxM2EuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgMC0xSDdaTTQuNSAyYS41LjUgMCAwIDEgMCAxQzMuNjcgMyAzIDMuNjcgMyA0LjVhLjUuNSAwIDAgMS0xIDBBMi41IDIuNSAwIDAgMSA0LjUgMlpNNSAxMy41YS41LjUgMCAwIDAtLjUtLjVBMS41IDEuNSAwIDAgMSAzIDExLjVhLjUuNSAwIDAgMC0xIDBBMi41IDIuNSAwIDAgMCA0LjUgMTRhLjUuNSAwIDAgMCAuNS0uNVptLTIuNS00QS41LjUgMCAwIDAgMyA5VjdhLjUuNSAwIDAgMC0xIDB2MmMwIC4yOC4yMi41LjUuNVptMy40Ny00YTEgMSAwIDAgMSAuODctLjVoMi4zMmExIDEgMCAwIDEgLjg3LjVsMS4xNiAyYTEgMSAwIDAgMSAwIDFsLTEuMTYgMmExIDEgMCAwIDEtLjg3LjVINi44NGExIDEgMCAwIDEtLjg3LS41bC0xLjE2LTJhMSAxIDAgMCAxIDAtMWwxLjE2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50SGV4YWdvbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50SGV4YWdvbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkgMmEuNS41IDAgMCAxIDAgMUg3YS41LjUgMCAwIDEgMC0xaDJabTIuNSAxYS41LjUgMCAwIDEgMC0xQTIuNSAyLjUgMCAwIDEgMTQgNC41YS41LjUgMCAwIDEtMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNVptMiAzLjVjLjI4IDAgLjUuMjIuNS41djJhLjUuNSAwIDAgMS0xIDBWN2MwLS4yOC4yMi0uNS41LS41Wm0wIDQuNWMuMjggMCAuNS4yMi41LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41LjUuNSAwIDAgMSAwLTFjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjI4LjIyLS41LjUtLjVaTTcgMTNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg3Wk00LjUgMmEuNS41IDAgMCAxIDAgMUMzLjY3IDMgMyAzLjY3IDMgNC41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgNC41IDJaTTUgMTMuNWEuNS41IDAgMCAwLS41LS41QTEuNSAxLjUgMCAwIDEgMyAxMS41YS41LjUgMCAwIDAtMSAwQTIuNSAyLjUgMCAwIDAgNC41IDE0YS41LjUgMCAwIDAgLjUtLjVabS0yLjUtNEEuNS41IDAgMCAwIDMgOVY3YS41LjUgMCAwIDAtMSAwdjJjMCAuMjguMjIuNS41LjVaTTYuODQgNWExIDEgMCAwIDAtLjg3LjVsLTEuMTYgMmExIDEgMCAwIDAgMCAxbDEuMTYgMmMuMTguMzEuNTEuNS44Ny41aDIuMzJhMSAxIDAgMCAwIC44Ny0uNWwxLjE2LTJhMSAxIDAgMCAwIDAtMWwtMS4xNi0yYTEgMSAwIDAgMC0uODctLjVINi44NFptMCAxaDIuMzJsMS4xNiAyLTEuMTYgMkg2Ljg0TDUuNjggOGwxLjE2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50SGV4YWdvbjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRIZXhhZ29uMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM2EuNS41IDAgMCAxIDAgMUM0LjY3IDQgNCA0LjY3IDQgNS41YS41LjUgMCAwIDEtMSAwQTIuNSAyLjUgMCAwIDEgNS41IDNaTTE3IDUuNWEuNS41IDAgMCAxLTEgMGMwLS44My0uNjctMS41LTEuNS0xLjVhLjUuNSAwIDAgMSAwLTFBMi41IDIuNSAwIDAgMSAxNyA1LjVabS0zIDExYzAgLjI4LjIyLjUuNS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNS41LjUgMCAwIDAtMSAwYzAgLjgzLS42NyAxLjUtMS41IDEuNWEuNS41IDAgMCAwLS41LjVabS0xMS0yYS41LjUgMCAwIDEgMSAwYzAgLjgzLjY3IDEuNSAxLjUgMS41YS41LjUgMCAwIDEgMCAxQTIuNSAyLjUgMCAwIDEgMyAxNC41Wm0uNS02QS41LjUgMCAwIDAgMyA5djJhLjUuNSAwIDAgMCAxIDBWOWEuNS41IDAgMCAwLS41LS41Wk0xNiA5YS41LjUgMCAwIDEgMSAwdjJhLjUuNSAwIDAgMS0xIDBWOVpNOSAzYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFIOVptLS41IDEzLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDlhLjUuNSAwIDAgMS0uNS0uNVpNNy4zMyA2LjYzYy4yMy0uNC42NC0uNjMgMS4wOS0uNjNoMy4xN2MuNDQgMCAuODYuMjQgMS4wOC42M2wxLjU4IDIuNzVjLjIzLjM4LjIzLjg2IDAgMS4yNGwtMS41OCAyLjc1Yy0uMjIuNC0uNjQuNjMtMS4wOC42M0g4LjQyYy0uNDUgMC0uODYtLjI0LTEuMDktLjYzbC0xLjU4LTIuNzVhMS4yNSAxLjI1IDAgMCAxIDAtMS4yNGwxLjU4LTIuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50SGV4YWdvbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50SGV4YWdvbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNSAzYS41LjUgMCAwIDEgMCAxQzQuNjcgNCA0IDQuNjcgNCA1LjVhLjUuNSAwIDAgMS0xIDBBMi41IDIuNSAwIDAgMSA1LjUgM1pNMTcgNS41YS41LjUgMCAwIDEtMSAwYzAtLjgzLS42Ny0xLjUtMS41LTEuNWEuNS41IDAgMCAxIDAtMUEyLjUgMi41IDAgMCAxIDE3IDUuNVptLTMgMTFjMCAuMjguMjIuNS41LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41LjUuNSAwIDAgMC0xIDBjMCAuODMtLjY3IDEuNS0xLjUgMS41YS41LjUgMCAwIDAtLjUuNVptLTExLTJhLjUuNSAwIDAgMSAxIDBjMCAuODMuNjcgMS41IDEuNSAxLjVhLjUuNSAwIDAgMSAwIDFBMi41IDIuNSAwIDAgMSAzIDE0LjVabS41LTZBLjUuNSAwIDAgMCAzIDl2MmEuNS41IDAgMCAwIDEgMFY5YS41LjUgMCAwIDAtLjUtLjVaTTE2IDlhLjUuNSAwIDAgMSAxIDB2MmEuNS41IDAgMCAxLTEgMFY5Wk05IDNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUg5Wm0tLjUgMTMuNWMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDAgMSAwIDFIOWEuNS41IDAgMCAxLS41LS41Wm0tLjMtOS4zN0EuMjUuMjUgMCAwIDEgOC40MiA3aDMuMTdjLjA5IDAgLjE3LjA1LjIxLjEzbDEuNTkgMi43NWMuMDQuMDcuMDQuMTcgMCAuMjRsLTEuNTkgMi43NWEuMjUuMjUgMCAwIDEtLjIxLjEzSDguNDJhLjI1LjI1IDAgMCAxLS4yMi0uMTNsLTEuNTktMi43NWEuMjUuMjUgMCAwIDEgMC0uMjRMOC4yIDcuMTNaTTguNDIgNmMtLjQ1IDAtLjg2LjI0LTEuMDkuNjNMNS43NSA5LjM4Yy0uMjMuMzgtLjIzLjg2IDAgMS4yNGwxLjU4IDIuNzVjLjIzLjQuNjQuNjMgMS4wOS42M2gzLjE3Yy40NCAwIC44Ni0uMjQgMS4wOC0uNjNsMS41OC0yLjc1Yy4yMy0uMzguMjMtLjg2IDAtMS4yNGwtMS41OC0yLjc1QTEuMjUgMS4yNSAwIDAgMCAxMS41OSA2SDguNDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50SGV4YWdvbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRIZXhhZ29uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC43NSAzYS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVabTYuMjUuNzVjMCAuNDEuMzQuNzUuNzUuNzUuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NWEuNzUuNzUgMCAwIDAgMS41IDBDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNhLjc1Ljc1IDAgMCAwLS43NS43NVptLTEwIDBBLjc1Ljc1IDAgMCAwIDYuMjUgMyAzLjI1IDMuMjUgMCAwIDAgMyA2LjI1YS43NS43NSAwIDAgMCAxLjUgMGMwLS45Ny43OC0xLjc1IDEuNzUtMS43NS40MSAwIC43NS0uMzQuNzUtLjc1Wm0tNCAxNGEuNzUuNzUgMCAwIDEgMS41IDBjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVhLjc1Ljc1IDAgMCAxIDAgMS41QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1Wm03IDIuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNyAwYzAtLjQxLjM0LS43NS43NS0uNzUuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwYzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTQtOS41YS43NS43NSAwIDAgMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVaTTMuNzUgMTRhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVabTQuOTMtNi4yNUExLjUgMS41IDAgMCAxIDkuOTggN2g0LjA0Yy41NCAwIDEuMDMuMjkgMS4zLjc1bDIuMDIgMy41YTEuNSAxLjUgMCAwIDEgMCAxLjVsLTIuMDIgMy41YTEuNSAxLjUgMCAwIDEtMS4zLjc1SDkuOThhMS41IDEuNSAwIDAgMS0xLjMtLjc1bC0yLjAyLTMuNWExLjUgMS41IDAgMCAxIDAtMS41bDIuMDItMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEhleGFnb24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEhleGFnb24yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC43NSAzYS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVabTYuMjUuNzVjMCAuNDEuMzQuNzUuNzUuNzUuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NWEuNzUuNzUgMCAwIDAgMS41IDBDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNhLjc1Ljc1IDAgMCAwLS43NS43NVptLTEwIDBBLjc1Ljc1IDAgMCAwIDYuMjUgMyAzLjI1IDMuMjUgMCAwIDAgMyA2LjI1YS43NS43NSAwIDAgMCAxLjUgMGMwLS45Ny43OC0xLjc1IDEuNzUtMS43NS40MSAwIC43NS0uMzQuNzUtLjc1Wm0tNCAxNGEuNzUuNzUgMCAwIDEgMS41IDBjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVhLjc1Ljc1IDAgMCAxIDAgMS41QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1Wm03IDIuNWMwLS40MS4zNC0uNzUuNzUtLjc1aDIuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTIuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNyAwYzAtLjQxLjM0LS43NS43NS0uNzUuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwYzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTQtOS41YS43NS43NSAwIDAgMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVaTTMuNzUgMTRhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTIuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjQxLS4zNC43NS0uNzUuNzVabTYuMjMtN2ExLjUgMS41IDAgMCAwLTEuMy43NWwtMi4wMiAzLjVhMS41IDEuNSAwIDAgMCAwIDEuNWwyLjAyIDMuNWMuMjcuNDYuNzcuNzUgMS4zLjc1aDQuMDRhMS41IDEuNSAwIDAgMCAxLjMtLjc1bDIuMDItMy41YTEuNSAxLjUgMCAwIDAgMC0xLjVsLTIuMDItMy41YTEuNSAxLjUgMCAwIDAtMS4zLS43NUg5Ljk4Wm0wIDEuNWg0LjA0bDIuMDIgMy41LTIuMDIgMy41SDkuOThMNy45NiAxMmwyLjAyLTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRIZXhhZ29uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEhleGFnb24yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTExLjUgMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptMCAyMC41YzAtLjQxLjM0LS43NS43NS0uNzVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1Wk0zIDE1Ljc1YS43NS43NSAwIDAgMCAxLjUgMHYtMy41YS43NS43NSAwIDAgMC0xLjUgMHYzLjVabTIxLjI1Ljc1YS43NS43NSAwIDAgMS0uNzUtLjc1di0zLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wk0yMC43NSAzYS43NS43NSAwIDAgMCAwIDEuNWguNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzaC0uNVpNMjAgMjQuMjVjMCAuNDEuMzQuNzUuNzUuNzVoLjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1di0uNWEuNzUuNzUgMCAwIDAtMS41IDB2LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLS41YS43NS43NSAwIDAgMC0uNzUuNzVaTTcuMjUgM2EuNzUuNzUgMCAwIDEgMCAxLjVoLS41Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoLjVaTTggMjQuMjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtLjVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjV2LS41YS43NS43NSAwIDAgMSAxLjUgMHYuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWguNWMuNDEgMCAuNzUuMzQuNzUuNzVabTIuMDMtMTUuMzdjLjMxLS41NS45LS44OCAxLjUyLS44OGg0LjljLjYzIDAgMS4yLjMzIDEuNTIuODhsMi40NSA0LjI1Yy4zMi41NC4zMiAxLjIgMCAxLjc1bC0yLjQ1IDQuMjVjLS4zMS41NC0uOS44Ny0xLjUyLjg3aC00LjljLS42MyAwLTEuMi0uMzMtMS41Mi0uODdsLTIuNDUtNC4yNWExLjc1IDEuNzUgMCAwIDEgMC0xLjc1bDIuNDUtNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRIZXhhZ29uMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRIZXhhZ29uMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTEuNSAzLjc1YzAtLjQxLjM0LS43NS43NS0uNzVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0wIDIwLjVjMC0uNDEuMzQtLjc1Ljc1LS43NWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTMgMTUuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0zLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjMuNVptMjEuMjUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTMuNWEuNzUuNzUgMCAwIDEgMS41IDB2My41YzAgLjQxLS4zNC43NS0uNzUuNzVaTTIwLjc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aC41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1di41YS43NS43NSAwIDAgMCAxLjUgMHYtLjVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNoLS41Wk0yMCAyNC4yNWMwIC40MS4zNC43NS43NS43NWguNUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjV2LS41YS43NS43NSAwIDAgMC0xLjUgMHYuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtLjVhLjc1Ljc1IDAgMCAwLS43NS43NVpNNy4yNSAzYS43NS43NSAwIDAgMSAwIDEuNWgtLjVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM2guNVpNOCAyNC4yNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0uNUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNXYtLjVhLjc1Ljc1IDAgMCAxIDEuNSAwdi41YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1aC41Yy40MSAwIC43NS4zNC43NS43NVpNMTEuNTUgOGMtLjYzIDAtMS4yLjMzLTEuNTIuODhsLTIuNDUgNC4yNWMtLjMxLjU0LS4zMSAxLjIgMCAxLjc1bDIuNDUgNC4yNWMuMzEuNTQuOS44NyAxLjUyLjg3aDQuOWMuNjMgMCAxLjItLjMzIDEuNTItLjg3bDIuNDUtNC4yNWMuMzItLjU0LjMyLTEuMjEgMC0xLjc1bC0yLjQ1LTQuMjVBMS43NSAxLjc1IDAgMCAwIDE2LjQ1IDhoLTQuOVptLS4yMiAxLjYzYS4yNS4yNSAwIDAgMSAuMjItLjEzaDQuOWMuMSAwIC4xOC4wNS4yMi4xM2wyLjQ1IDQuMjVjLjA1LjA3LjA1LjE3IDAgLjI1bC0yLjQ1IDQuMjVhLjI1LjI1IDAgMCAxLS4yMi4xMmgtNC45YS4yNS4yNSAwIDAgMS0uMjItLjEybC0yLjQ1LTQuMjVhLjI1LjI1IDAgMCAxIDAtLjI1bDIuNDUtNC4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRIZXhhZ29uMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEhleGFnb24zMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTEzIDRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDEgMSAwIDJoLTRhMSAxIDAgMCAxLTEtMVptMCAyNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMSAxIDAgMmgtNGExIDEgMCAwIDEtMS0xWk0zIDE4YTEgMSAwIDEgMCAyIDB2LTRhMSAxIDAgMSAwLTIgMHY0Wm0yNSAxYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMSAxIDIgMHY0YTEgMSAwIDAgMS0xIDFaTTggM2ExIDEgMCAwIDEgMCAyaC0uMjVBMi43NSAyLjc1IDAgMCAwIDUgNy43NVY4YTEgMSAwIDAgMS0yIDB2LS4yNUE0Ljc1IDQuNzUgMCAwIDEgNy43NSAzSDhabTEgMjVhMSAxIDAgMCAxLTEgMWgtLjI1QTQuNzUgNC43NSAwIDAgMSAzIDI0LjI1VjI0YTEgMSAwIDEgMSAyIDB2LjI1QTIuNzUgMi43NSAwIDAgMCA3Ljc1IDI3SDhhMSAxIDAgMCAxIDEgMVpNMjQgM2ExIDEgMCAxIDAgMCAyaC4yNUEyLjc1IDIuNzUgMCAwIDEgMjcgNy43NVY4YTEgMSAwIDEgMCAyIDB2LS4yNUE0Ljc1IDQuNzUgMCAwIDAgMjQuMjUgM0gyNFptLTEgMjVhMSAxIDAgMCAwIDEgMWguMjVBNC43NSA0Ljc1IDAgMCAwIDI5IDI0LjI1VjI0YTEgMSAwIDEgMC0yIDB2LjI1QTIuNzUgMi43NSAwIDAgMSAyNC4yNSAyN0gyNGExIDEgMCAwIDAtMSAxWk0xMy4xMSA5YTIgMiAwIDAgMC0xLjczIDFsLTIuODkgNWEyIDIgMCAwIDAgMCAybDIuODkgNWEyIDIgMCAwIDAgMS43MyAxaDUuNzdhMiAyIDAgMCAwIDEuNzQtMWwyLjg4LTVhMiAyIDAgMCAwIDAtMmwtMi44OC01YTIgMiAwIDAgMC0xLjc0LTFoLTUuNzdaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50SGV4YWdvbjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50SGV4YWdvbjMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTEzIDRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDEgMSAwIDJoLTRhMSAxIDAgMCAxLTEtMVptMCAyNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMSAxIDAgMmgtNGExIDEgMCAwIDEtMS0xWk0zIDE4YTEgMSAwIDEgMCAyIDB2LTRhMSAxIDAgMSAwLTIgMHY0Wm0yNSAxYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMSAxIDIgMHY0YTEgMSAwIDAgMS0xIDFaTTggM2ExIDEgMCAwIDEgMCAyaC0uMjVBMi43NSAyLjc1IDAgMCAwIDUgNy43NVY4YTEgMSAwIDAgMS0yIDB2LS4yNUE0Ljc1IDQuNzUgMCAwIDEgNy43NSAzSDhabTEgMjVhMSAxIDAgMCAxLTEgMWgtLjI1QTQuNzUgNC43NSAwIDAgMSAzIDI0LjI1VjI0YTEgMSAwIDEgMSAyIDB2LjI1QTIuNzUgMi43NSAwIDAgMCA3Ljc1IDI3SDhhMSAxIDAgMCAxIDEgMVpNMjQgM2ExIDEgMCAxIDAgMCAyaC4yNUEyLjc1IDIuNzUgMCAwIDEgMjcgNy43NVY4YTEgMSAwIDEgMCAyIDB2LS4yNUE0Ljc1IDQuNzUgMCAwIDAgMjQuMjUgM0gyNFptLTEgMjVhMSAxIDAgMCAwIDEgMWguMjVBNC43NSA0Ljc1IDAgMCAwIDI5IDI0LjI1VjI0YTEgMSAwIDEgMC0yIDB2LjI1QTIuNzUgMi43NSAwIDAgMSAyNC4yNSAyN0gyNGExIDEgMCAwIDAtMSAxWk0xMS4zOCAxMGEyIDIgMCAwIDEgMS43My0xaDUuNzdhMiAyIDAgMCAxIDEuNzQgMWwyLjg4IDVhMiAyIDAgMCAxIDAgMmwtMi44OCA1YTIgMiAwIDAgMS0xLjc0IDFoLTUuNzdhMiAyIDAgMCAxLTEuNzMtMWwtMi44OS01YTIgMiAwIDAgMSAwLTJsMi44OS01Wm03LjUgMWgtNS43N2wtMi44OCA1IDIuODggNWg1Ljc3bDIuODktNS0yLjg5LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50SGV4YWdvbjQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRIZXhhZ29uNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yMCA3LjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDUuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTUuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wm0wIDMzLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoNS41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtNS41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNVptLTE0LTE0YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNS41YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHY1LjVaTTQwLjc1IDI4Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTUuNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2NS41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNVptLTI4LTIyYTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtLjVhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NXYuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LS41QzYgOC44IDguOCA2IDEyLjI1IDZoLjVaTTE0IDQwLjc1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtLjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzV2LS41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYuNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1Wk0zNS4yNSA2YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWguNWEzLjc1IDMuNzUgMCAwIDEgMy43NSAzLjc1di41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtLjVDNDIgOC44IDM5LjIgNiAzNS43NSA2aC0uNVpNMzQgNDAuNzVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoLjVDMzkuMiA0MiA0MiAzOS4yIDQyIDM1Ljc1di0uNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2LjVhMy43NSAzLjc1IDAgMCAxLTMuNzUgMy43NWgtLjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1Wk0xNi44NiAxNC4zOWMuNDktLjg2IDEuNC0xLjM4IDIuMzgtMS4zOGg5LjUyYy45OCAwIDEuOS41MiAyLjM4IDEuMzhsNC43NiA4LjI0Yy41Ljg1LjUgMS45IDAgMi43NWwtNC43NiA4LjI1Yy0uNDkuODUtMS40IDEuMzgtMi4zOCAxLjM4aC05LjUyYy0uOTggMC0xLjg5LS41My0yLjM4LTEuMzhsLTQuNzYtOC4yNWMtLjUtLjg1LS41LTEuOSAwLTIuNzVsNC43Ni04LjI0WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludEhleGFnb240OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludEhleGFnb240OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0yMCA3LjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDUuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTUuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1Wm0wIDMzLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoNS41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNWgtNS41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNVptLTE0LTE0YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtNS41YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHY1LjVaTTQwLjc1IDI4Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTUuNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2NS41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNVptLTI4LTIyYTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtLjVhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NXYuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LS41QzYgOC44IDguOCA2IDEyLjI1IDZoLjVaTTE0IDQwLjc1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtLjVBNi4yNSA2LjI1IDAgMCAxIDYgMzUuNzV2LS41YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHYuNWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1aC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1Wk0zNS4yNSA2YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWguNWEzLjc1IDMuNzUgMCAwIDEgMy43NSAzLjc1di41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtLjVDNDIgOC44IDM5LjIgNiAzNS43NSA2aC0uNVpNMzQgNDAuNzVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoLjVDMzkuMiA0MiA0MiAzOS4yIDQyIDM1Ljc1di0uNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2LjVhMy43NSAzLjc1IDAgMCAxLTMuNzUgMy43NWgtLjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1Wk0xOS4yNCAxMy4wMWMtLjk4IDAtMS44OS41Mi0yLjM4IDEuMzhsLTQuNzYgOC4yNGMtLjUuODUtLjUgMS45IDAgMi43NWw0Ljc2IDguMjVjLjQ5Ljg1IDEuNCAxLjM4IDIuMzggMS4zOGg5LjUyYy45OCAwIDEuOS0uNTMgMi4zOC0xLjM4bDQuNzYtOC4yNWMuNS0uODUuNS0xLjkgMC0yLjc1bC00Ljc2LTguMjRBMi43NSAyLjc1IDAgMCAwIDI4Ljc2IDEzaC05LjUyWm0tLjIyIDIuNjJhLjI1LjI1IDAgMCAxIC4yMi0uMTJoOS41MmMuMDkgMCAuMTcuMDUuMjIuMTJsNC43NiA4LjI1Yy4wNC4wOC4wNC4xOCAwIC4yNWwtNC43NiA4LjI1YS4yNS4yNSAwIDAgMS0uMjIuMTNoLTkuNTJhLjI1LjI1IDAgMCAxLS4yMi0uMTNsLTQuNzYtOC4yNWEuMjUuMjUgMCAwIDEgMC0uMjVsNC43Ni04LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludFNwYXJrbGVzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludFNwYXJrbGVzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMy44IDIuMjJoLS4wMmwtLjc2LS4yNmExLjU4IDEuNTggMCAwIDEtMS0xTDExLjc3LjJhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjI5LjIuMy4zIDAgMCAwIC4yOS0uMmwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3Wm0xLjQxIDMuMzUuNjIuMmEuMjQuMjQgMCAwIDEgMCAuNDZsLS42LjJhMS4yNiAxLjI2IDAgMCAwLS44LjhsLS4yLjZhLjI0LjI0IDAgMCAxLS40NiAwbC0uMi0uNmExLjI2IDEuMjYgMCAwIDAtLjgtLjhsLS42LS4yYS4yNC4yNCAwIDAgMSAwLS40NmwuNi0uMmExLjI2IDEuMjYgMCAwIDAgLjgtLjhsLjE5LS42YS4yNC4yNCAwIDAgMSAuNDYgMGwuMi42YTEuMjYgMS4yNiAwIDAgMCAuOC44Wk04IDIuNWMwLS4xNy4wMy0uMzQuMS0uNWgtLjg1YS43NS43NSAwIDAgMCAwIDEuNWgxLjIyYTEuMzEgMS4zMSAwIDAgMS0uNDctMVpNNC43NSAyYS43NS43NSAwIDAgMSAwIDEuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVhLjc1Ljc1IDAgMCAxLTEuNSAwQTIuNzUgMi43NSAwIDAgMSA0Ljc1IDJabTguNSA4LjVjLjQxIDAgLjc1LjM0Ljc1Ljc1QTIuNzUgMi43NSAwIDAgMSAxMS4yNSAxNGEuNzUuNzUgMCAwIDEgMC0xLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1IDAtLjQxLjM0LS43NS43NS0uNzVaTTYuNSAxMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDEuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTEuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptLTEuNzUtLjc1YS43NS43NSAwIDAgMSAwIDEuNUEyLjc1IDIuNzUgMCAwIDEgMiAxMS4yNWEuNzUuNzUgMCAwIDEgMS41IDBjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVabS0yLTNjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTEuNWEuNzUuNzUgMCAwIDAtMS41IDB2MS41YzAgLjQxLjM0Ljc1Ljc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludFNwYXJrbGVzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRTcGFya2xlczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEzLjggMi4yMmgtLjAybC0uNzYtLjI2YTEuNTggMS41OCAwIDAgMS0xLTFMMTEuNzcuMmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuMjkuMi4zLjMgMCAwIDAgLjI5LS4ybC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdabTEuNDEgMy4zNS42Mi4yYS4yNC4yNCAwIDAgMSAwIC40NmwtLjYuMmExLjI2IDEuMjYgMCAwIDAtLjguOGwtLjIuNmEuMjQuMjQgMCAwIDEtLjQ2IDBsLS4yLS42YTEuMjYgMS4yNiAwIDAgMC0uOC0uOGwtLjYtLjJhLjI0LjI0IDAgMCAxIDAtLjQ2bC42LS4yYTEuMjYgMS4yNiAwIDAgMCAuOC0uOGwuMTktLjZhLjI0LjI0IDAgMCAxIC40NiAwbC4yLjZhMS4yNiAxLjI2IDAgMCAwIC44LjhaTTggMi41YzAtLjE3LjAzLS4zNC4xLS41SDdhLjUuNSAwIDAgMCAwIDFoMS4xYy0uMDctLjE2LS4xLS4zMy0uMS0uNVpNNC41IDJhLjUuNSAwIDAgMSAwIDFDMy42NyAzIDMgMy42NyAzIDQuNWEuNS41IDAgMCAxLTEgMEEyLjUgMi41IDAgMCAxIDQuNSAyWm05IDljLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNS41LjUgMCAwIDEgMC0xYy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLS4yOC4yMi0uNS41LS41Wm0tNyAyLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxSDdhLjUuNSAwIDAgMS0uNS0uNVptLTItLjVhLjUuNSAwIDAgMSAwIDFBMi41IDIuNSAwIDAgMSAyIDExLjVhLjUuNSAwIDAgMSAxIDBjMCAuODMuNjcgMS41IDEuNSAxLjVabS0yLTMuNUEuNS41IDAgMCAwIDMgOVY3YS41LjUgMCAwIDAtMSAwdjJjMCAuMjguMjIuNS41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXMyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xMCAzLjVjMC0uMTcuMDQtLjM0LjEtLjVoLS44NWEuNzUuNzUgMCAwIDAgMCAxLjVoMS4xOGExLjQzIDEuNDMgMCAwIDEtLjQzLTFabS02LjI1IDhhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTEuNWEuNzUuNzUgMCAwIDEgMS41IDB2MS41YzAgLjQxLS4zNC43NS0uNzUuNzVabTUuNSA0YS43NS43NSAwIDAgMCAwIDEuNWgxLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVaTTUuMjUgM2EuNzUuNzUgMCAwIDEgMCAxLjUuNzUuNzUgMCAwIDAtLjc1Ljc1Ljc1Ljc1IDAgMCAxLTEuNSAwQzMgNC4wMSA0IDMgNS4yNSAzWk02IDE2LjI1YzAgLjQxLS4zNC43NS0uNzUuNzVDNC4wMSAxNyAzIDE2IDMgMTQuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwYzAgLjQxLjM0Ljc1Ljc1Ljc1cy43NS4zNC43NS43NVptOCAwYzAgLjQxLjM0Ljc1Ljc1Ljc1IDEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1YS43NS43NSAwIDAgMC0xLjUgMGMwIC40MS0uMzQuNzUtLjc1Ljc1YS43NS43NSAwIDAgMC0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludFNwYXJrbGVzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJtMTQuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yMyAyLjIzIDAgMCAwLTEuNC0xLjRsLTEuMDctLjM1YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEwIDMuNWMwLS4xNy4wNC0uMzQuMS0uNUg5YS41LjUgMCAwIDAgMCAxaDEuMWMtLjA2LS4xNi0uMS0uMzMtLjEtLjVaTTUuNSAzYS41LjUgMCAwIDEgMCAxQzQuNjcgNCA0IDQuNjcgNCA1LjVhLjUuNSAwIDAgMS0xIDBBMi41IDIuNSAwIDAgMSA1LjUgM1pNMTQgMTYuNWMwIC4yOC4yMi41LjUuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjUuNS41IDAgMCAwLTEgMGMwIC44My0uNjcgMS41LTEuNSAxLjVhLjUuNSAwIDAgMC0uNS41Wm0tMTEtMmEuNS41IDAgMCAxIDEgMGMwIC44My42NyAxLjUgMS41IDEuNWEuNS41IDAgMCAxIDAgMUEyLjUgMi41IDAgMCAxIDMgMTQuNVptLjUtNkEuNS41IDAgMCAwIDMgOXYyYS41LjUgMCAwIDAgMSAwVjlhLjUuNSAwIDAgMC0uNS0uNVptNSA4YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMUg5YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjA5IDYuNDFhMi44NCAyLjg0IDAgMCAwLTEuMzUtLjk1TDEzLjM2IDVhLjU0LjU0IDAgMCAxIDAtMS4wM2wxLjM4LS40NGEyLjg0IDIuODQgMCAwIDAgMS43Ni0xLjc3bC4wMS0uMDMuNDUtMS4zOGEuNTQuNTQgMCAwIDEgMS4wMyAwbC40NCAxLjM4YTIuODQgMi44NCAwIDAgMCAxLjggMS44bDEuMzguNDQuMDMuMDFhLjU0LjU0IDAgMCAxIDAgMS4wM2wtMS4zOC40NGEyLjg0IDIuODQgMCAwIDAtMS44IDEuOGwtLjQ1IDEuMzhhLjU0LjU0IDAgMCAxLTEuMDMgMGwtLjQ0LTEuMzhjLS4xLS4zLS4yNS0uNi0uNDUtLjg1Wm03LjcgMy44LS43Ny0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEyLjI3IDMuNTdjLjItLjI2LjQ2LS40Ni43Ni0uNTdIMTFhMSAxIDAgMSAwIDAgMmgxLjFhMS41NyAxLjU3IDAgMCAxIC4xOC0xLjQzWk00IDEwYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAxIDEtMiAwdi0yYTEgMSAwIDAgMSAxLTFabTEwIDEwYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMSAxIDAtMmgyYTEgMSAwIDAgMSAxIDFaTTYgM2ExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMC0xIDEgMSAxIDAgMCAxLTIgMCAzIDMgMCAwIDEgMy0zWm0wIDE4YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAxLTEtMSAxIDEgMCAxIDAtMiAwIDMgMyAwIDAgMCAzIDNabTExLTFhMSAxIDAgMCAwIDEgMSAzIDMgMCAwIDAgMy0zIDEgMSAwIDEgMC0yIDAgMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDAtMSAxWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlSGludFNwYXJrbGVzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZUhpbnRTcGFya2xlczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE2LjA5IDYuNDFhMi44NCAyLjg0IDAgMCAwLTEuMzUtLjk1TDEzLjM2IDVhLjU0LjU0IDAgMCAxIDAtMS4wM2wxLjM4LS40NGEyLjg0IDIuODQgMCAwIDAgMS43Ni0xLjc3bC4wMS0uMDMuNDUtMS4zOGEuNTQuNTQgMCAwIDEgMS4wMyAwbC40NCAxLjM4YTIuODQgMi44NCAwIDAgMCAxLjggMS44bDEuMzguNDQuMDMuMDFhLjU0LjU0IDAgMCAxIDAgMS4wM2wtMS4zOC40NGEyLjg0IDIuODQgMCAwIDAtMS44IDEuOGwtLjQ1IDEuMzhhLjU0LjU0IDAgMCAxLTEuMDMgMGwtLjQ0LTEuMzhjLS4xLS4zLS4yNS0uNi0uNDUtLjg1Wm03LjcgMy44LS43Ny0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEyLjI3IDMuNTdjLjItLjI2LjQ2LS40Ni43Ny0uNTdoLTIuM2EuNzUuNzUgMCAwIDAgMCAxLjVIMTJhMS42IDEuNiAwIDAgMSAuMjgtLjkzWk0zLjc1IDEwYy40MSAwIC43NS4zNC43NS43NXYyLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yLjVjMC0uNDEuMzQtLjc1Ljc1LS43NVpNMTQgMjAuMjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtMi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1Wk02LjI1IDNhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2LjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0uNUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaC41Wm0wIDE4YS43NS43NSAwIDAgMCAwLTEuNWgtLjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXYtLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdi41QTIuNzUgMi43NSAwIDAgMCA1Ljc1IDIxaC41Wk0xNyAyMC4yNWMwIC40MS4zNC43NS43NS43NWguNUEyLjc1IDIuNzUgMCAwIDAgMjEgMTguMjV2LS41YS43NS43NSAwIDAgMC0xLjUgMHYuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLS41YS43NS43NSAwIDAgMC0uNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXMyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXMyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4LjE3IDYuODNhMy4xNiAzLjE2IDAgMCAxIC43NiAxLjI0bC41IDEuNTNhLjYuNiAwIDAgMCAxLjE0IDBsLjUtMS41M2EzLjE1IDMuMTUgMCAwIDEgMi0ybDEuNTMtLjVhLjYuNiAwIDAgMCAwLTEuMTRoLS4wM2wtMS41NC0uNWEzLjE1IDMuMTUgMCAwIDEtMi0yTDIwLjU1LjRhLjYuNiAwIDAgMC0xLjE0IDBsLS41IDEuNTMtLjAxLjA0YTMuMTUgMy4xNSAwIDAgMS0xLjk2IDEuOTZsLTEuNTMuNWEuNi42IDAgMCAwIDAgMS4xNGwxLjUzLjVjLjQ3LjE1LjkuNDEgMS4yNC43NlptOC42NSAzLjUzLjkyLjNoLjAyYS4zNi4zNiAwIDAgMSAwIC42OGwtLjkyLjNhMS45IDEuOSAwIDAgMC0xLjIgMS4ybC0uMy45MmEuMzYuMzYgMCAwIDEtLjY4IDBsLS4zLS45MmExLjkgMS45IDAgMCAwLTEuMi0xLjJsLS45Mi0uM2EuMzYuMzYgMCAwIDEgMC0uNjhsLjkyLS4zYTEuOSAxLjkgMCAwIDAgMS4xOC0xLjJsLjMtLjkyYS4zNi4zNiAwIDAgMSAuNjggMGwuMy45MmExLjg5IDEuODkgMCAwIDAgMS4yIDEuMlpNMTUuMSAzLjVsLjk4LS4zMkExIDEgMCAwIDAgMTUuNSAzaC0zYTEgMSAwIDEgMCAwIDJIMTRjMC0uMzMuMS0uNjUuMy0uOTEuMi0uMjguNDctLjQ4Ljc5LS42Wk0xMS41IDI0YTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAxIDEgMCAyaC0zYTEgMSAwIDAgMS0xLTFaTTMgMTUuNWExIDEgMCAxIDAgMiAwdi0zYTEgMSAwIDEgMC0yIDB2M1pNNyAzYTEgMSAwIDAgMSAwIDJoLS4yNUM1Ljc4IDUgNSA1Ljc4IDUgNi43NVY3YTEgMSAwIDAgMS0yIDB2LS4yNUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzSDdabTEgMjFhMSAxIDAgMCAxLTEgMWgtLjI1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjIxYTEgMSAwIDEgMSAyIDB2LjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDdhMSAxIDAgMCAxIDEgMVptMTIgMGExIDEgMCAwIDAgMSAxaC4yNUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjVWMjFhMSAxIDAgMSAwLTIgMHYuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDIxYTEgMSAwIDAgMC0xIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXMyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlSGludFNwYXJrbGVzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTguMTcgNi44M2EzLjE2IDMuMTYgMCAwIDEgLjc2IDEuMjRsLjUgMS41M2EuNi42IDAgMCAwIDEuMTQgMGwuNS0xLjUzYTMuMTUgMy4xNSAwIDAgMSAyLTJsMS41My0uNWEuNi42IDAgMCAwIDAtMS4xNGgtLjAzbC0xLjU0LS41YTMuMTUgMy4xNSAwIDAgMS0yLTJMMjAuNTUuNGEuNi42IDAgMCAwLTEuMTQgMGwtLjUgMS41My0uMDEuMDRhMy4xNSAzLjE1IDAgMCAxLTEuOTYgMS45NmwtMS41My41YS42LjYgMCAwIDAgMCAxLjE0bDEuNTMuNWMuNDcuMTUuOS40MSAxLjI0Ljc2Wm04LjY1IDMuNTMuOTIuM2guMDJhLjM2LjM2IDAgMCAxIDAgLjY4bC0uOTIuM2ExLjkgMS45IDAgMCAwLTEuMiAxLjJsLS4zLjkyYS4zNi4zNiAwIDAgMS0uNjggMGwtLjMtLjkyYTEuOSAxLjkgMCAwIDAtMS4yLTEuMmwtLjkyLS4zYS4zNi4zNiAwIDAgMSAwLS42OGwuOTItLjNhMS45IDEuOSAwIDAgMCAxLjE4LTEuMmwuMy0uOTJhLjM2LjM2IDAgMCAxIC42OCAwbC4zLjkyYTEuODkgMS44OSAwIDAgMCAxLjIgMS4yWk0xNS4xIDMuNWwxLjEtLjM2YS43NS43NSAwIDAgMC0uNDQtLjE0aC0zLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuODRhMS41NyAxLjU3IDAgMCAxIDEtMVpNMTEuNSAyNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNMyAxNS43NWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuNWEuNzUuNzUgMCAwIDAtMS41IDB2My41Wm0xNyA4LjVjMCAuNDEuMzQuNzUuNzUuNzVoLjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1di0uNWEuNzUuNzUgMCAwIDAtMS41IDB2LjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLS41YS43NS43NSAwIDAgMC0uNzUuNzVaTTcuMjUgM2EuNzUuNzUgMCAwIDEgMCAxLjVoLS41Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNXYuNWEuNzUuNzUgMCAwIDEtMS41IDB2LS41QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoLjVaTTggMjQuMjVjMCAuNDEtLjM0Ljc1LS43NS43NWgtLjVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjV2LS41YS43NS43NSAwIDAgMSAxLjUgMHYuNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWguNWMuNDEgMCAuNzUuMzQuNzUuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXMzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIxLjc3IDcuODRhMy40OSAzLjQ5IDAgMCAwLTEuNjQtMS4xN2wtMS42OS0uNTVhLjY3LjY3IDAgMCAxIDAtMS4yNWwxLjY5LS41NWEzLjQ3IDMuNDcgMCAwIDAgMi4xNS0yLjE1bC4wMS0uMDQuNTUtMS42OWEuNjYuNjYgMCAwIDEgMS4yNSAwbC41NSAxLjY5YTMuNDcgMy40NyAwIDAgMCAyLjIgMi4ybDEuNjguNTRoLjA0YS42Ny42NyAwIDAgMSAwIDEuMjZsLTEuNjkuNTVhMy40NyAzLjQ3IDAgMCAwLTIuMiAyLjJsLS41NCAxLjY4LS4wMi4wNGEuNjYuNjYgMCAwIDEtMS4yNC0uMDRsLS41NC0xLjY5YTMuNDYgMy40NiAwIDAgMC0uNTYtMS4wM1ptLTMuMjUtNC41OC0uNTIuMThhMi4xNyAyLjE3IDAgMCAwLTEuNSAyLjA2aC0yLjI1YTEuMjUgMS4yNSAwIDEgMSAwLTIuNWgzLjVjLjI5IDAgLjU2LjEuNzcuMjZaTTE0LjI1IDI2LjVhMS4yNSAxLjI1IDAgMSAwIDAgMi41aDMuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTMuNVpNMyAxNy43NWExLjI1IDEuMjUgMCAxIDAgMi41IDB2LTMuNWExLjI1IDEuMjUgMCAxIDAtMi41IDB2My41Wm02LTEzLjVDOSAzLjU2IDguNDQgMyA3Ljc1IDNBNC43NSA0Ljc1IDAgMCAwIDMgNy43NWExLjI1IDEuMjUgMCAxIDAgMi41IDBjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVDOC40NCA1LjUgOSA0Ljk0IDkgNC4yNVpNNy43NSAyOWExLjI1IDEuMjUgMCAxIDAgMC0yLjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1YTEuMjUgMS4yNSAwIDEgMC0yLjUgMEE0Ljc1IDQuNzUgMCAwIDAgNy43NSAyOVptMTYuNSAwYTEuMjUgMS4yNSAwIDEgMSAwLTIuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNWExLjI1IDEuMjUgMCAxIDEgMi41IDBBNC43NSA0Ljc1IDAgMCAxIDI0LjI1IDI5Wm02LjU3LTE2LjY0LjkyLjNoLjAyYS4zNi4zNiAwIDAgMSAwIC42OGwtLjkyLjNhMS45IDEuOSAwIDAgMC0xLjIgMS4ybC0uMy45MmEuMzYuMzYgMCAwIDEtLjY4IDBsLS4zLS45MmExLjkgMS45IDAgMCAwLTEuMi0xLjJsLS45Mi0uM2EuMzYuMzYgMCAwIDEgMC0uNjhsLjkyLS4zYTEuOSAxLjkgMCAwIDAgMS4xOC0xLjJsLjMtLjkyYS4zNi4zNiAwIDAgMSAuNjggMGwuMy45MmExLjg5IDEuODkgMCAwIDAgMS4yIDEuMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRTcGFya2xlczMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yMS43NyA3Ljg0YTMuNDkgMy40OSAwIDAgMC0xLjY0LTEuMTdsLTEuNjktLjU1YS42Ny42NyAwIDAgMSAwLTEuMjVsMS42OS0uNTVhMy40NyAzLjQ3IDAgMCAwIDIuMTUtMi4xNWwuMDEtLjA0LjU1LTEuNjlhLjY2LjY2IDAgMCAxIDEuMjUgMGwuNTUgMS42OWEzLjQ3IDMuNDcgMCAwIDAgMi4yIDIuMmwxLjY4LjU0aC4wNGEuNjcuNjcgMCAwIDEgMCAxLjI2bC0xLjY5LjU1YTMuNDcgMy40NyAwIDAgMC0yLjIgMi4ybC0uNTQgMS42OC0uMDIuMDRhLjY2LjY2IDAgMCAxLTEuMjQtLjA0bC0uNTQtMS42OWEzLjQ2IDMuNDYgMCAwIDAtLjU2LTEuMDNabS0zLjE0LTQuNjItLjYzLjIyQTIuMTcgMi4xNyAwIDAgMCAxNi41NiA1SDE0YTEgMSAwIDEgMSAwLTJoNGExIDEgMCAwIDEgLjYzLjIyWk0xNCAyN2ExIDEgMCAxIDAgMCAyaDRhMSAxIDAgMSAwIDAtMmgtNFpNNCAxOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDEgMSAyIDB2NGExIDEgMCAwIDEtMSAxWk05IDRhMSAxIDAgMCAwLTEtMWgtLjI1QTQuNzUgNC43NSAwIDAgMCAzIDcuNzVWOGExIDEgMCAwIDAgMiAwdi0uMjVBMi43NSAyLjc1IDAgMCAxIDcuNzUgNUg4YTEgMSAwIDAgMCAxLTFaTTggMjlhMSAxIDAgMSAwIDAtMmgtLjI1QTIuNzUgMi43NSAwIDAgMSA1IDI0LjI1VjI0YTEgMSAwIDEgMC0yIDB2LjI1QTQuNzUgNC43NSAwIDAgMCA3Ljc1IDI5SDhabTE2IDBhMSAxIDAgMSAxIDAtMmguMjVBMi43NSAyLjc1IDAgMCAwIDI3IDI0LjI1VjI0YTEgMSAwIDEgMSAyIDB2LjI1QTQuNzUgNC43NSAwIDAgMSAyNC4yNSAyOUgyNFptNi44Mi0xNi42NC45Mi4zaC4wMmEuMzYuMzYgMCAwIDEgMCAuNjhsLS45Mi4zYTEuOSAxLjkgMCAwIDAtMS4yIDEuMmwtLjMuOTJhLjM2LjM2IDAgMCAxLS42OCAwbC0uMy0uOTJhMS45IDEuOSAwIDAgMC0xLjItMS4ybC0uOTItLjNhLjM2LjM2IDAgMCAxIDAtLjY4bC45Mi0uM2ExLjkgMS45IDAgMCAwIDEuMTgtMS4ybC4zLS45MmEuMzYuMzYgMCAwIDEgLjY4IDBsLjMuOTJhMS44OSAxLjg5IDAgMCAwIDEuMiAxLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVIaW50U3BhcmtsZXM0OEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXM0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTMyLjgzIDEyLjExYTUuMzYgNS4zNiAwIDAgMC0yLjU0LTEuOGwtMi42LS44NWExLjAzIDEuMDMgMCAwIDEgMC0xLjk0bDIuNi0uODRhNS4zNiA1LjM2IDAgMCAwIDMuMzItMy4zM2wuMDItLjA2Ljg1LTIuNmExLjAzIDEuMDMgMCAwIDEgMS45NCAwbC44NCAyLjZhNS4zNiA1LjM2IDAgMCAwIDMuNCAzLjM5bDIuNi44NC4wNS4wMmExLjAzIDEuMDMgMCAwIDEgMCAxLjk0bC0yLjYuODRhNS4zNiA1LjM2IDAgMCAwLTMuNCAzLjRsLS44NCAyLjYtLjAzLjA2YTEuMDMgMS4wMyAwIDAgMS0xLjktLjA3bC0uODYtMi42YTUuMzUgNS4zNSAwIDAgMC0uODUtMS42Wm0xNC43OCA2Ljg3LTEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMS0xLjgtMS44TDQ0IDE1LjM2YS41NC41NCAwIDAgMC0xLjAzIDBsLS40NSAxLjM4YTIuODQgMi44NCAwIDAgMS0xLjc3IDEuOGwtMS4zOC40NGEuNTQuNTQgMCAwIDAgMCAxLjAzbDEuMzguNDVjLjE1LjA1LjMuMTEuNDQuMTh2LjAyYTIuODQgMi44NCAwIDAgMSAxLjM2IDEuNjFsLjQ1IDEuMzhhLjU0LjU0IDAgMCAwIDEgLjA0di0uMDFhLjUuNSAwIDAgMCAuMDItLjA0bC40NS0xLjM4YTIuODQgMi44NCAwIDAgMSAxLjgtMS44bDEuMzgtLjQ0YS41NC41NCAwIDAgMCAwLTEuMDNoLS4wM1pNMjUuNTYgNi43N2MuMjItLjMuNDktLjU2LjgtLjc3SDIxLjVhMS41IDEuNSAwIDAgMCAwIDNoMy41M2EzIDMgMCAwIDEgLjUzLTIuMjNaTTIxLjUgMzlhMS41IDEuNSAwIDAgMCAwIDNoNWExLjUgMS41IDAgMCAwIDAtM2gtNVptLTE0LTE5Yy44MyAwIDEuNS42NyAxLjUgMS41djVhMS41IDEuNSAwIDAgMS0zIDB2LTVjMC0uODMuNjctMS41IDEuNS0xLjVabTUtMTRhMS41IDEuNSAwIDAgMSAwIDNBMy41IDMuNSAwIDAgMCA5IDEyLjVhMS41IDEuNSAwIDAgMS0zIDBBNi41IDYuNSAwIDAgMSAxMi41IDZaTTE0IDQwLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41QTYuNSA2LjUgMCAwIDEgNiAzNS41YTEuNSAxLjUgMCAwIDEgMyAwIDMuNSAzLjUgMCAwIDAgMy41IDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNVptMjAgMGMwIC44My42NyAxLjUgMS41IDEuNWE2LjUgNi41IDAgMCAwIDYuNS02LjUgMS41IDEuNSAwIDAgMC0zIDAgMy41IDMuNSAwIDAgMS0zLjUgMy41Yy0uODMgMC0xLjUuNjctMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZUhpbnRTcGFya2xlczQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVIaW50U3BhcmtsZXM0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0zMi44MyAxMi4xMWE1LjM2IDUuMzYgMCAwIDAtMi41NC0xLjhsLTIuNi0uODVhMS4wMyAxLjAzIDAgMCAxIDAtMS45NGwyLjYtLjg0YTUuMzYgNS4zNiAwIDAgMCAzLjMyLTMuMzNsLjAyLS4wNi44NS0yLjZhMS4wMyAxLjAzIDAgMCAxIDEuOTQgMGwuODQgMi42YTUuMzYgNS4zNiAwIDAgMCAzLjQgMy4zOWwyLjYuODQuMDUuMDJhMS4wMyAxLjAzIDAgMCAxIDAgMS45NGwtMi42Ljg0YTUuMzYgNS4zNiAwIDAgMC0zLjQgMy40bC0uODQgMi42LS4wMy4wNmExLjAzIDEuMDMgMCAwIDEtMS45LS4wN2wtLjg2LTIuNmE1LjM1IDUuMzUgMCAwIDAtLjg1LTEuNlptMTQuNzggNi44Ny0xLjM4LS40NGEyLjg0IDIuODQgMCAwIDEtMS44LTEuOEw0NCAxNS4zNmEuNTQuNTQgMCAwIDAtMS4wMyAwbC0uNDUgMS4zOGEyLjg0IDIuODQgMCAwIDEtMS43NyAxLjhsLTEuMzguNDRhLjU0LjU0IDAgMCAwIDAgMS4wM2wxLjM4LjQ1Yy4xNS4wNS4zLjExLjQ0LjE4di4wMmEyLjg0IDIuODQgMCAwIDEgMS4zNiAxLjYxbC40NSAxLjM4YS41NC41NCAwIDAgMCAxIC4wNHYtLjAxYS41LjUgMCAwIDAgLjAyLS4wNGwuNDUtMS4zOGEyLjg0IDIuODQgMCAwIDEgMS44LTEuOGwxLjM4LS40NGEuNTQuNTQgMCAwIDAgMC0xLjAzaC0uMDNaTTI1LjU2IDYuNzdjLjIyLS4zLjQ5LS41Ni44LS43N2gtNS4xMWExLjI1IDEuMjUgMCAxIDAgMCAyLjVIMjVhMyAzIDAgMCAxIC41Ni0xLjczWk0yMCA0MC43NWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg1LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC01LjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1Wm0tMTQtMTRhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi01LjVhMS4yNSAxLjI1IDAgMSAwLTIuNSAwdjUuNVpNMTIuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLS41YTMuNzUgMy43NSAwIDAgMC0zLjc1IDMuNzV2LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwdi0uNUM2IDguOCA4LjggNiAxMi4yNSA2aC41Wk0xNCA0MC43NWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLS41QTYuMjUgNi4yNSAwIDAgMSA2IDM1Ljc1di0uNWExLjI1IDEuMjUgMCAxIDEgMi41IDB2LjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWguNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVptMjAgMGMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWguNUMzOS4yIDQyIDQyIDM5LjIgNDIgMzUuNzV2LS41YTEuMjUgMS4yNSAwIDEgMC0yLjUgMHYuNWEzLjc1IDMuNzUgMCAwIDEtMy43NSAzLjc1aC0uNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZU11bHRpcGxlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01LjA4IDRIMTBhMiAyIDAgMCAxIDIgMnY0LjkxYy41OC0uMiAxLS43NiAxLTEuNDFWNmEzIDMgMCAwIDAtMy0zSDYuNWMtLjY1IDAtMS4yLjQyLTEuNDIgMVpNNC41IDVDMy42NyA1IDMgNS42NyAzIDYuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZU11bHRpcGxlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZU11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNS4wOCA0Yy4yMS0uNTguNzctMSAxLjQyLTFIMTBhMyAzIDAgMCAxIDMgM3YzLjVjMCAuNjUtLjQyIDEuMi0xIDEuNDFWNmEyIDIgMCAwIDAtMi0ySDUuMDhaTTQuNSA1aDVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSAzIDExLjV2LTVDMyA1LjY3IDMuNjcgNSA0LjUgNVptMCAxYS41LjUgMCAwIDAtLjUuNXY1YzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAuNS0uNXYtNWEuNS41IDAgMCAwLS41LS41aC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNi4wOSA0SDUuMDVBMi41IDIuNSAwIDAgMSA3LjUgMkgxNGE0IDQgMCAwIDEgNCA0djYuNWEyLjUgMi41IDAgMCAxLTIgMi40NXYtMS4wNGMuNTgtLjIgMS0uNzYgMS0xLjQxVjZhMyAzIDAgMCAwLTMtM0g3LjVjLS42NSAwLTEuMi40Mi0xLjQxIDFaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOEEyLjUgMi41IDAgMCAxIDE1IDcuNXY4YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOEEyLjUgMi41IDAgMCAxIDIgMTUuNXYtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZU11bHRpcGxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNi4wOSA0SDUuMDVBMi41IDIuNSAwIDAgMSA3LjUgMkgxNGE0IDQgMCAwIDEgNCA0djYuNWEyLjUgMi41IDAgMCAxLTIgMi40NXYtMS4wNGMuNTgtLjIgMS0uNzYgMS0xLjQxVjZhMyAzIDAgMCAwLTMtM0g3LjVjLS42NSAwLTEuMi40Mi0xLjQxIDFaTTQuNSA1QTIuNSAyLjUgMCAwIDAgMiA3LjV2OEEyLjUgMi41IDAgMCAwIDQuNSAxOGg4YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtOEEyLjUgMi41IDAgMCAwIDEyLjUgNWgtOFpNMyA3LjVDMyA2LjY3IDMuNjcgNiA0LjUgNmg4Yy44MyAwIDEuNS42NyAxLjUgMS41djhjMCAuODMtLjY3IDEuNS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMyAxNS41di04WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVNdWx0aXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNy41MiA1SDZjLjEzLTEuNjggMS41My0zIDMuMjQtM2g4QTQuNzUgNC43NSAwIDAgMSAyMiA2Ljc1djhhMy4yNSAzLjI1IDAgMCAxLTMgMy4yNHYtMS41Yy44NS0uMTMgMS41LS44NiAxLjUtMS43NHYtOGMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC04Yy0uODggMC0xLjYxLjY1LTEuNzMgMS41Wk01LjI1IDZBMy4yNSAzLjI1IDAgMCAwIDIgOS4yNXY5LjVDMiAyMC41NSAzLjQ2IDIyIDUuMjUgMjJoOS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjV2LTkuNUMxOCA3LjQ1IDE2LjU1IDYgMTQuNzUgNmgtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlTXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk03LjUyIDVINmMuMTMtMS42OCAxLjUzLTMgMy4yNC0zaDhBNC43NSA0Ljc1IDAgMCAxIDIyIDYuNzV2OGEzLjI1IDMuMjUgMCAwIDEtMyAzLjI0di0xLjVjLjg1LS4xMyAxLjUtLjg2IDEuNS0xLjc0di04YzAtMS44LTEuNDYtMy4yNS0zLjI1LTMuMjVoLThjLS44OCAwLTEuNjEuNjUtMS43MyAxLjVaTTUuMjUgNkEzLjI1IDMuMjUgMCAwIDAgMiA5LjI1djkuNUMyIDIwLjU1IDMuNDYgMjIgNS4yNSAyMmg5LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOS41QzE4IDcuNDUgMTYuNTUgNiAxNC43NSA2aC05LjVaTTMuNSA5LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDkuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY5LjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1aC05LjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtOS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVNdWx0aXBsZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNy4wNyA1aDEuNTVjLjMtLjg3IDEuMTQtMS41IDIuMTItMS41aDkuNWMyLjM1IDAgNC4yNSAxLjkgNC4yNSA0LjI1djkuNWMwIC45OC0uNjIgMS44LTEuNDkgMi4xMnYxLjU1YTMuNzUgMy43NSAwIDAgMCAzLTMuNjd2LTkuNUE1Ljc1IDUuNzUgMCAwIDAgMjAuMjMgMmgtOS41YTMuNzUgMy43NSAwIDAgMC0zLjY3IDNaTTUuNzUgNkEzLjc1IDMuNzUgMCAwIDAgMiA5Ljc1djEyLjVBMy43NSAzLjc1IDAgMCAwIDUuNzUgMjZoMTIuNUEzLjc1IDMuNzUgMCAwIDAgMjIgMjIuMjVWOS43NUEzLjc1IDMuNzUgMCAwIDAgMTguMjUgNkg1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGUyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlTXVsdGlwbGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk04LjYyIDVINy4wN2MuMzUtMS43MSAxLjg2LTMgMy42Ny0zaDkuNUE1Ljc1IDUuNzUgMCAwIDEgMjYgNy43NXY5LjVBMy43NSAzLjc1IDAgMCAxIDIzIDIwLjkydi0xLjU1YTIuMjUgMi4yNSAwIDAgMCAxLjUtMi4xMnYtOS41YzAtMi4zNS0xLjktNC4yNS00LjI2LTQuMjVoLTkuNWMtLjk4IDAtMS44MS42My0yLjEyIDEuNVpNNS43NSA2QTMuNzUgMy43NSAwIDAgMCAyIDkuNzV2MTIuNUEzLjc1IDMuNzUgMCAwIDAgNS43NSAyNmgxMi41QTMuNzUgMy43NSAwIDAgMCAyMiAyMi4yNVY5Ljc1QTMuNzUgMy43NSAwIDAgMCAxOC4yNSA2SDUuNzVaTTMuNSA5Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDEyLjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2MTIuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg1Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVY5Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlTXVsdGlwbGUzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVNdWx0aXBsZTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOC4xMSA1LjVoMi4xYTIuNSAyLjUgMCAwIDEgMi4zLTEuNWgxMUE0LjUgNC41IDAgMCAxIDI4IDguNXYxMWEyLjUgMi41IDAgMCAxLTEuNTEgMi4zdjIuMDlBNC41IDQuNSAwIDAgMCAzMCAxOS41di0xMUE2LjUgNi41IDAgMCAwIDIzLjUgMmgtMTFhNC41IDQuNSAwIDAgMC00LjM5IDMuNVpNNi41IDdBNC41IDQuNSAwIDAgMCAyIDExLjV2MTRBNC41IDQuNSAwIDAgMCA2LjUgMzBoMTRhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xNEE0LjUgNC41IDAgMCAwIDIwLjUgN2gtMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTcXVhcmVNdWx0aXBsZTMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVNdWx0aXBsZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTEwLjIgNS41SDguMTJBNC41IDQuNSAwIDAgMSAxMi41IDJoMTFBNi41IDYuNSAwIDAgMSAzMCA4LjV2MTFhNC41IDQuNSAwIDAgMS0zLjUgNC4zOXYtMi4xQTIuNSAyLjUgMCAwIDAgMjggMTkuNXYtMTFBNC41IDQuNSAwIDAgMCAyMy41IDRoLTExYTIuNSAyLjUgMCAwIDAtMi4zIDEuNVpNNi41IDdBNC41IDQuNSAwIDAgMCAyIDExLjV2MTRBNC41IDQuNSAwIDAgMCA2LjUgMzBoMTRhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xNEE0LjUgNC41IDAgMCAwIDIwLjUgN2gtMTRaTTQgMTEuNUEyLjUgMi41IDAgMCAxIDYuNSA5aDE0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXYxNGEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTE0QTIuNSAyLjUgMCAwIDEgNCAyNS41di0xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZU11bHRpcGxlNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlTXVsdGlwbGU0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTE2LjUgMTBIMTRjLjEyLTMuMzQgMi44Ny02IDYuMjQtNmgxNC41YzUuMSAwIDkuMjUgNC4xNCA5LjI1IDkuMjV2MTQuNWMwIDMuMzYtMi42NiA2LjEtNiA2LjI0di0yLjVhMy43NSAzLjc1IDAgMCAwIDMuNS0zLjc0di0xNC41YTYuNzUgNi43NSAwIDAgMC02Ljc1LTYuNzVoLTE0LjVBMy43NSAzLjc1IDAgMCAwIDE2LjUgMTBaTTQgMTguMjVDNCAxNC44IDYuOCAxMiAxMC4yNSAxMmgxOS41QzMzLjIgMTIgMzYgMTQuOCAzNiAxOC4yNXYxOS41QzM2IDQxLjIgMzMuMiA0NCAyOS43NSA0NGgtMTkuNUE2LjI1IDYuMjUgMCAwIDEgNCAzNy43NXYtMTkuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZU11bHRpcGxlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZU11bHRpcGxlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMTYuNSAxMEgxNGMuMTMtMy4zNCAyLjg3LTYgNi4yNC02aDE0LjVjNS4xIDAgOS4yNSA0LjE0IDkuMjUgOS4yNXYxNC41YzAgMy4zNi0yLjY2IDYuMS01Ljk5IDYuMjR2LTIuNWEzLjc1IDMuNzUgMCAwIDAgMy40OS0zLjc0di0xNC41YTYuNzUgNi43NSAwIDAgMC02Ljc1LTYuNzVoLTE0LjVBMy43NSAzLjc1IDAgMCAwIDE2LjUgMTBabS02LjI1IDJBNi4yNSA2LjI1IDAgMCAwIDQgMTguMjV2MTkuNUM0IDQxLjIgNi44IDQ0IDEwLjI1IDQ0aDE5LjVDMzMuMiA0NCAzNiA0MS4yIDM2IDM3Ljc1di0xOS41QzM2IDE0LjggMzMuMiAxMiAyOS43NSAxMmgtMTkuNVpNNi41IDE4LjI1YTMuNzUgMy43NSAwIDAgMSAzLjc1LTMuNzVoMTkuNWEzLjc1IDMuNzUgMCAwIDEgMy43NSAzLjc1djE5LjVhMy43NSAzLjc1IDAgMCAxLTMuNzUgMy43NWgtMTkuNWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1di0xOS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlU2hhZG93MTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3F1YXJlU2hhZG93MTJGaWxsZWQnLCBcIjEyXCIsIFtcIk0zIDFhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDIgMCAxLjEuOSAyIDIgMmgzLjVBMi41IDIuNSAwIDAgMCAxMSA4LjVWNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yLTJIM1ptLS41IDJjMC0uMjguMjItLjUuNS0uNWg0Yy4yOCAwIC41LjIyLjUuNXY0YS41LjUgMCAwIDEtLjUuNUgzYS41LjUgMCAwIDEtLjUtLjVWM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZVNoYWRvdzEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVTaGFkb3cxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk0zIDFhMiAyIDAgMCAwLTIgMnY0YzAgMS4xLjkgMiAyIDIgMCAxLjEuOSAyIDIgMmgzLjVBMi41IDIuNSAwIDAgMCAxMSA4LjVWNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yLTJIM1ptNSAydjRhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZVNoYWRvdzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZVNoYWRvdzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE0SDZ2MS41QTIuNSAyLjUgMCAwIDAgOC41IDE4aDdhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTUuNSA2SDE0VjQuNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtN1ptLTEgMi41YTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjdhMSAxIDAgMCAxLTEgMWgtN2ExIDEgMCAwIDEtMS0xdi03WlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlU2hhZG93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1NxdWFyZVNoYWRvdzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNEg2djEuNUEyLjUgMi41IDAgMCAwIDguNSAxOGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDE1LjUgNkgxNFY0LjVBMi41IDIuNSAwIDAgMCAxMS41IDJoLTdaTTMgNC41QzMgMy42NyAzLjY3IDMgNC41IDNoN2MuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTEuNXYtN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFNxdWFyZXNOZXN0ZWQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVzTmVzdGVkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDZhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDN2MS43NkEyLjk5IDIuOTkgMCAwIDAgMTUgN2gtNWEzIDMgMCAwIDAtMyAzdjVjMCAuNzcuMjkgMS40Ny43NiAySDZhMyAzIDAgMCAxLTMtM1Y2Wm03IDExaDRhMyAzIDAgMCAwIDMtM3YtNGEyIDIgMCAwIDAtMi0yaC01YTIgMiAwIDAgMC0yIDJ2NWMwIDEuMS45IDIgMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3F1YXJlc05lc3RlZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTcXVhcmVzTmVzdGVkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptMTAgNC43NkEyLjk5IDIuOTkgMCAwIDAgMTQgN2gtNGEzIDMgMCAwIDAtMyAzdjRjMCAuNzcuMjkgMS40Ny43NiAySDZhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjEuNzZaTTEwIDE2YTIgMiAwIDAgMS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC00WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2sxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFjazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi41IDJDMS42NyAyIDEgMi42NyAxIDMuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1ptMi41OCAxMWMuMjEuNTguNzcgMSAxLjQyIDFoM0E1LjUgNS41IDAgMCAwIDE1IDguNXYtMWMwLS42NS0uNDItMS4yLTEtMS40MVY4LjVBNC41IDQuNSAwIDAgMSA5LjUgMTNINS4wOFptLS41OC0xYTEuNSAxLjUgMCAwIDEtMS40Mi0xSDkuNUEyLjUgMi41IDAgMCAwIDEyIDguNVY0LjA5Yy41OC4yIDEgLjc2IDEgMS40MXYzQTMuNSAzLjUgMCAwIDEgOS41IDEyaC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDMuNUMxIDIuNjcgMS42NyAyIDIuNSAyaDdjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTdBMS41IDEuNSAwIDAgMSAxIDguNXYtNVpNMi41IDNhLjUuNSAwIDAgMC0uNS41djVjMCAuMjguMjIuNS41LjVoN2EuNS41IDAgMCAwIC41LS41di01YS41LjUgMCAwIDAtLjUtLjVoLTdabTIuNTggMTBjLjIxLjU4Ljc3IDEgMS40MiAxaDNBNS41IDUuNSAwIDAgMCAxNSA4LjV2LTFjMC0uNjUtLjQyLTEuMi0xLTEuNDFWOC41QTQuNSA0LjUgMCAwIDEgOS41IDEzSDUuMDhabS0uNTgtMWExLjUgMS41IDAgMCAxLTEuNDItMUg5LjVBMi41IDIuNSAwIDAgMCAxMiA4LjVWNC4wOWMuNTguMiAxIC43NiAxIDEuNDF2M0EzLjUgMy41IDAgMCAxIDkuNSAxMmgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2syMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTQgM2EyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDRabS4yNyAxMWMuMzQuNi45OSAxIDEuNzMgMWg2YTQgNCAwIDAgMCA0LTRWN2EyIDIgMCAwIDAtMS0xLjczVjExYTMgMyAwIDAgMS0zIDNINC4yN1ptMiAyYy4zNC42Ljk5IDEgMS43MyAxaDRhNiA2IDAgMCAwIDYtNlY5YTIgMiAwIDAgMC0xLTEuNzNWMTFhNSA1IDAgMCAxLTUgNUg2LjI3WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yIDVjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1Wm0yLTFhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAwLTEtMUg0Wm0yIDExYTIgMiAwIDAgMS0xLjczLTFIMTJhMyAzIDAgMCAwIDMtM1Y1LjI3Yy42LjM0IDEgLjk5IDEgMS43M3Y0YTQgNCAwIDAgMS00IDRINlptMiAyYTIgMiAwIDAgMS0xLjczLTFIMTJhNSA1IDAgMCAwIDUtNVY3LjI3Yy42LjM0IDEgLjk5IDEgMS43M3YyYTYgNiAwIDAgMS02IDZIOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjdjMCAxLjEuOSAyIDIgMmgxMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0Wm0yLjUgMTMuNUEyIDIgMCAwIDEgNC41NiAxNkgxNS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY2LjU2YTIgMiAwIDAgMSAxLjUgMS45NHY1YTQgNCAwIDAgMS00IDRoLTlaTTkgMjBhMiAyIDAgMCAxLTEuOTQtMS41aDkuMTljMi4zNSAwIDQuMjUtMS45IDQuMjUtNC4yNVY5LjA2QTIgMiAwIDAgMSAyMiAxMXYzLjI1QTUuNzUgNS43NSAwIDAgMSAxNi4yNSAyMEg5WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2syNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00IDRoMTFhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMlptMTEgMS41SDRhLjUuNSAwIDAgMC0uNS41djdjMCAuMjguMjIuNS41LjVoMTFhLjUuNSAwIDAgMCAuNS0uNVY2YS41LjUgMCAwIDAtLjUtLjVaTTQuNTYgMTZhMiAyIDAgMCAwIDEuOTQgMS41aDlhNCA0IDAgMCAwIDQtNHYtNUEyIDIgMCAwIDAgMTggNi41NnY2Ljk0YTIuNSAyLjUgMCAwIDEtMi41IDIuNUg0LjU2Wm0yLjUgMi41QTIgMiAwIDAgMCA5IDIwaDcuMjVBNS43NSA1Ljc1IDAgMCAwIDIyIDE0LjI1VjExYTIgMiAwIDAgMC0xLjUtMS45NHY1LjE5YzAgMi4zNS0xLjkgNC4yNS00LjI1IDQuMjVINy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2szMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTIgN2EzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTBhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWN1ptOC4xNyAxOUEzIDMgMCAwIDAgMTMgMjhoNmExMSAxMSAwIDAgMCAxMS0xMXYtMmEzIDMgMCAwIDAtMi0yLjgzVjE3YTkgOSAwIDAgMS05IDloLTguODNaTTkgMjRhMyAzIDAgMCAxLTIuODMtMkgxOWE1IDUgMCAwIDAgNS01VjguMTdBMyAzIDAgMCAxIDI2IDExdjZhNyA3IDAgMCAxLTcgN0g5WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2szMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2szMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk0yIDdhMyAzIDAgMCAxIDMtM2gxNGEzIDMgMCAwIDEgMyAzdjEwYTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjdabTMtMWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMVY3YTEgMSAwIDAgMC0xLTFINVptNS4xNyAyMEEzIDMgMCAwIDAgMTMgMjhoNmExMSAxMSAwIDAgMCAxMS0xMXYtMmEzIDMgMCAwIDAtMi0yLjgzVjE3YTkgOSAwIDAgMS05IDloLTguODNaTTkgMjRhMyAzIDAgMCAxLTIuODMtMkgxOWE1IDUgMCAwIDAgNS01VjguMTdBMyAzIDAgMCAxIDI2IDExdjZhNyA3IDAgMCAxLTcgN0g5WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2tBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja0FkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjZIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjdoMS41YS41LjUgMCAwIDAgMC0xSDZWNC41Wk01LjUgMTJhNS41IDUuNSAwIDAgMCA0LjktOEgxMmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEuMjZBNS40OCA1LjQ4IDAgMCAwIDUuNSAxMlptLTEuMjMgM2MuMzQuNi45OSAxIDEuNzMgMWg2YTQgNCAwIDAgMCA0LTRWOGEyIDIgMCAwIDAtMS0xLjczVjEyYTMgMyAwIDAgMS0zIDNINC4yN1ptMiAyYy4zNC42Ljk5IDEgMS43MyAxaDRhNiA2IDAgMCAwIDYtNnYtMmEyIDIgMCAwIDAtMS0xLjczVjEyYTUgNSAwIDAgMS01IDVINi4yN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrQWRkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjZIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjdoMS41YS41LjUgMCAwIDAgMC0xSDZWNC41Wm02IC41aC0xLjJjLS4xLS4zNS0uMjQtLjY4LS40LTFIMTJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0xLjI2Yy4zLjI2LjY0LjQ4IDEgLjY2di42YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMVpNNiAxNmEyIDIgMCAwIDEtMS43My0xSDEyYTMgMyAwIDAgMCAzLTNWNi4yN2MuNi4zNCAxIC45OSAxIDEuNzN2NGE0IDQgMCAwIDEtNCA0SDZabTIgMmEyIDIgMCAwIDEtMS43My0xSDEyYTUgNSAwIDAgMCA1LTVWOC4yN2MuNi4zNCAxIC45OSAxIDEuNzN2MmE2IDYgMCAwIDEtNiA2SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0FkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiA3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFpNNyA4djIuNWEuNS41IDAgMSAxLTEgMFY4SDMuNWEuNS41IDAgMCAxIDAtMUg2VjQuNWEuNS41IDAgMCAxIDEgMFY3aDIuNWEuNS41IDAgMCAxIDAgMUg3Wm0tLjUgNmE2LjUgNi41IDAgMCAwIDYtOUgxNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEuODFBNi40OCA2LjQ4IDAgMCAwIDYuNSAxNFptMCA0LjVBMiAyIDAgMCAxIDQuNTYgMTdIMTUuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWNy41NmEyIDIgMCAwIDEgMS41IDEuOTR2NWE0IDQgMCAwIDEtNCA0aC05Wk05IDIxYTIgMiAwIDAgMS0xLjk0LTEuNWg5LjE5YzIuMzUgMCA0LjI1LTEuOSA0LjI1LTQuMjV2LTUuMTlBMiAyIDAgMCAxIDIyIDEydjMuMjVBNS43NSA1Ljc1IDAgMCAxIDE2LjI1IDIxSDlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0FkZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja0FkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDcuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWk03IDh2Mi41YS41LjUgMCAxIDEtMSAwVjhIMy41YS41LjUgMCAwIDEgMC0xSDZWNC41YS41LjUgMCAwIDEgMSAwVjdoMi41YS41LjUgMCAwIDEgMCAxSDdabTgtMS41aC0yLjA4QTYuNDUgNi40NSAwIDAgMCAxMi41IDVIMTVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0xLjgxYy40NC40My45NS44IDEuNSAxLjA4VjE0YzAgLjI4LjIyLjUuNS41aDExYS41LjUgMCAwIDAgLjUtLjVWN2EuNS41IDAgMCAwLS41LS41Wk00LjU2IDE3YTIgMiAwIDAgMCAxLjk0IDEuNWg5YTQgNCAwIDAgMCA0LTR2LTVBMiAyIDAgMCAwIDE4IDcuNTZ2Ni45NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVINC41NlptMi41IDIuNUEyIDIgMCAwIDAgOSAyMWg3LjI1QTUuNzUgNS43NSAwIDAgMCAyMiAxNS4yNVYxMmEyIDIgMCAwIDAtMS41LTEuOTR2NS4xOWMwIDIuMzUtMS45IDQuMjUtNC4yNSA0LjI1SDcuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0Fycm93Rm9yd2FyZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQXJyb3dGb3J3YXJkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC41IDEwYTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0xLjYtNy4xYS41LjUgMCAwIDAtLjcuN2wuOS45aC0xLjU1QTIuNzUgMi43NSAwIDAgMCAxMiA3LjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDEuNTRsLS45LjlhLjUuNSAwIDAgMCAuNzEuN2wxLjc2LTEuNzVhLjUuNSAwIDAgMCAwLS43TDE2LjEgMi45Wk00IDNoNS42YTUuNSA1LjUgMCAwIDAgNC40IDcuOThWMTFhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yWm0xMSA3Ljk4Yy4zNC0uMDMuNjgtLjEgMS0uMTlWMTFhNCA0IDAgMCAxLTQgNEg2YTIgMiAwIDAgMS0xLjczLTFIMTJhMyAzIDAgMCAwIDMtM3YtLjAyWm0zLTEuMjRjLS4zLjI2LS42NC40OC0xIC42NnYuNmE1IDUgMCAwIDEtNSA1SDYuMjdjLjM0LjYuOTkgMSAxLjczIDFoNGE2IDYgMCAwIDAgNi02VjkuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0Fycm93Rm9yd2FyZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja0Fycm93Rm9yd2FyZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjUgMTBhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabTEuNi03LjFhLjUuNSAwIDAgMC0uNy43bC45LjloLTEuNTVBMi43NSAyLjc1IDAgMCAwIDEyIDcuMjV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMS41NGwtLjkuOWEuNS41IDAgMCAwIC43MS43bDEuNzYtMS43NWEuNS41IDAgMCAwIDAtLjdMMTYuMSAyLjlaTTE0IDExdi0uMDJjLS4zNC0uMDMtLjY4LS4xLTEtLjE5VjExYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg1LjJjLjEtLjM1LjI0LS42OC40LTFINGEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJabTEtLjAyYy4zNC0uMDMuNjgtLjEgMS0uMTlWMTFhNCA0IDAgMCAxLTQgNEg2YTIgMiAwIDAgMS0xLjczLTFIMTJhMyAzIDAgMCAwIDMtM3YtLjAyWm0zLTEuMjRjLS4zLjI2LS42NC40OC0xIC42NnYuNmE1IDUgMCAwIDEtNSA1SDYuMjdjLjM0LjYuOTkgMSAxLjczIDFoNGE2IDYgMCAwIDAgNi02VjkuNzRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja0Fycm93Rm9yd2FyZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQXJyb3dGb3J3YXJkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNy41IDEyYTUuNSA1LjUgMCAxIDEgMC0xMSA1LjUgNS41IDAgMCAxIDAgMTFabTEuODUtOC4zNWEuNS41IDAgMCAwLS43LjdsLjY0LjY1aC0yLjA0QTMuMjUgMy4yNSAwIDAgMCAxNCA4LjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1QzE1IDcuMDEgMTYgNiAxNy4yNSA2aDIuMDRsLS42NC42NWEuNS41IDAgMCAwIC43LjdsMS41LTEuNWEuNS41IDAgMCAwIDAtLjdsLTEuNS0xLjVaTTQgNGg3LjVhNi41IDYuNSAwIDAgMCA1LjUgOC45OFYxM2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTE0IDguOThhNi40NyA2LjQ3IDAgMCAwIDEuNS0uM3YuODJhNCA0IDAgMCAxLTQgNGgtOUEyIDIgMCAwIDEgNC41NiAxNkgxNS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtLjUyWm00LTEuNzljLS40NC40My0uOTUuOC0xLjUgMS4wOHYxLjk4YzAgMi4zNS0xLjkgNC4yNS00LjI1IDQuMjVINy4wNkEyIDIgMCAwIDAgOSAyMGg3LjI1QTUuNzUgNS43NSAwIDAgMCAyMiAxNC4yNXYtMy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrQXJyb3dGb3J3YXJkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrQXJyb3dGb3J3YXJkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTcuNSAxMmE1LjUgNS41IDAgMSAxIDAtMTEgNS41IDUuNSAwIDAgMSAwIDExWm0xLjg1LTguMzVhLjUuNSAwIDAgMC0uNy43bC42NC42NWgtMi4wNEEzLjI1IDMuMjUgMCAwIDAgMTQgOC4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNUMxNSA3LjAxIDE2IDYgMTcuMjUgNmgyLjA0bC0uNjQuNjVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41Wk0xNyAxM3YtLjAyYTYuNDggNi40OCAwIDAgMS0xLjUtLjNWMTNhLjUuNSAwIDAgMS0uNS41SDRhLjUuNSAwIDAgMS0uNS0uNVY2YzAtLjI4LjIyLS41LjUtLjVoNy4wOGMuMDgtLjUyLjIyLTEuMDMuNDItMS41SDRhMiAyIDAgMCAwLTIgMnY3YzAgMS4xLjkgMiAyIDJoMTFhMiAyIDAgMCAwIDItMlptMS0uMDJhNi40NyA2LjQ3IDAgMCAwIDEuNS0uM3YuODJhNCA0IDAgMCAxLTQgNGgtOUEyIDIgMCAwIDEgNC41NiAxNkgxNS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtLjUyWm00LTEuNzljLS40NC40My0uOTUuOC0xLjUgMS4wOHYxLjk4YzAgMi4zNS0xLjkgNC4yNS00LjI1IDQuMjVINy4wNkEyIDIgMCAwIDAgOSAyMGg3LjI1QTUuNzUgNS43NSAwIDAgMCAyMiAxNC4yNXYtMy4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrU3RhcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrU3RhcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi41IDJDMS42NyAyIDEgMi42NyAxIDMuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1ptMy45MiAxLjczLjYzLjk4IDEuMDQuMmEuNS41IDAgMCAxIC4yNS44NmwtLjc3LjczLjQgMS4zNmEuNS41IDAgMCAxLS43NC41Nkw2IDcuNjVsLTEuMjMuNzdhLjUuNSAwIDAgMS0uNzUtLjU2bC40MS0xLjM2LS43Ny0uNzNhLjUuNSAwIDAgMSAuMjUtLjg2bDEuMDQtLjIuNjMtLjk4YS41LjUgMCAwIDEgLjg0IDBaTTMuMDkgMTFjLjIuNTguNzYgMSAxLjQxIDFIMTBhMyAzIDAgMCAwIDMtM1Y1LjVjMC0uNjUtLjQyLTEuMi0xLTEuNDFWOWEyIDIgMCAwIDEtMiAySDMuMDlabTIgMmMuMi41OC43NiAxIDEuNDEgMWg0QTQuNSA0LjUgMCAwIDAgMTUgOS41di0yYzAtLjY1LS40Mi0xLjItMS0xLjQxVjkuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVINS4wOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrU3RhcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1N0YXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk02LjQyIDMuNzNhLjUuNSAwIDAgMC0uODQgMGwtLjYzLjk4LTEuMDQuMmEuNS41IDAgMCAwLS4yNS44NmwuNzcuNzMtLjQgMS4zNmEuNS41IDAgMCAwIC43NC41Nkw2IDcuNjVsMS4yMy43N2EuNS41IDAgMCAwIC43NS0uNTZMNy41NyA2LjVsLjc3LS43M2EuNS41IDAgMCAwLS4yNS0uODZsLTEuMDQtLjItLjYzLS45OFpNMi41IDJDMS42NyAyIDEgMi42NyAxIDMuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN1ptNyAxYy4yOCAwIC41LjIyLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di01YzAtLjI4LjIyLS41LjUtLjVoN1ptLTUgOWExLjUgMS41IDAgMCAxLTEuNDEtMUgxMGEyIDIgMCAwIDAgMi0yVjQuMDljLjU4LjIgMSAuNzYgMSAxLjQxVjlhMyAzIDAgMCAxLTMgM0g0LjVabTIgMmExLjUgMS41IDAgMCAxLTEuNDEtMWg1LjQxQTMuNSAzLjUgMCAwIDAgMTQgOS41VjYuMDljLjU4LjIgMSAuNzYgMSAxLjQxdjJhNC41IDQuNSAwIDAgMS00LjUgNC41aC00WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2tTdGFyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2tTdGFyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk00IDNhMiAyIDAgMCAwLTIgMnY2YzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg0Wm00LjMzIDIuMDguOTEgMS43MyAxLjguMjJhLjM4LjM4IDAgMCAxIC4yLjY3TDkuOTEgOC43NGwuNDUgMS45M2EuMzguMzggMCAwIDEtLjU2LjRMOCAxMGwtMS44IDEuMDhhLjM4LjM4IDAgMCAxLS41Ny0uNGwuNDUtMS45M0w0Ljc3IDcuN2EuMzguMzggMCAwIDEgLjE5LS42N2wxLjgtLjIyLjktMS43M2EuMzguMzggMCAwIDEgLjY3IDBaTTQuMjcgMTRjLjM0LjYuOTkgMSAxLjczIDFoNmE0IDQgMCAwIDAgNC00VjdhMiAyIDAgMCAwLTEtMS43M1YxMWEzIDMgMCAwIDEtMyAzSDQuMjdabTIgMmMuMzQuNi45OSAxIDEuNzMgMWg0YTYgNiAwIDAgMCA2LTZWOWEyIDIgMCAwIDAtMS0xLjczVjExYTUgNSAwIDAgMS01IDVINi4yN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrU3RhcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1N0YXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04IDQuNzVjLjE5IDAgLjM2LjEuNDQuMjdsLjg4IDEuNjggMS43NC4yYS41LjUgMCAwIDEgLjI1LjlsLTEuMjUgMSAuNDMgMS44NGEuNS41IDAgMCAxLS43NS41NEw4IDEwLjE0bC0xLjc0IDEuMDRhLjUuNSAwIDAgMS0uNzUtLjU0bC40My0xLjg1LTEuMjUtMWEuNS41IDAgMCAxIC4yNS0uODhsMS43NC0uMjEuODgtMS42OEEuNS41IDAgMCAxIDggNC43NVpNMiA1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNVptMi0xYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFINFptMiAxMWEyIDIgMCAwIDEtMS43My0xSDEyYTMgMyAwIDAgMCAzLTNWNS4yN2MuNi4zNCAxIC45OSAxIDEuNzN2NGE0IDQgMCAwIDEtNCA0SDZabTIgMmEyIDIgMCAwIDEtMS43My0xSDEyYTUgNSAwIDAgMCA1LTVWNy4yN2MuNi4zNCAxIC45OSAxIDEuNzN2MmE2IDYgMCAwIDEtNiA2SDhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja1N0YXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1N0YXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgNGEyIDIgMCAwIDAtMiAydjdjMCAxLjEuOSAyIDIgMmgxMWEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0Wm01LjUgMi4xYy4xOSAwIC4zNi4xLjQ1LjI4bC44OCAxLjc2IDEuNzMuMjFhLjUuNSAwIDAgMSAuMjYuODhsLTEuMjcgMS4wNi40NCAxLjk1YS41LjUgMCAwIDEtLjc2LjUzTDkuNSAxMS43bC0xLjc0IDEuMDhhLjUuNSAwIDAgMS0uNzUtLjUzbC40NC0xLjk1LTEuMjctMS4wNmEuNS41IDAgMCAxIC4yNi0uODhsMS43My0uMjEuODgtMS43NmEuNS41IDAgMCAxIC40NS0uMjhabS0zIDExLjRBMiAyIDAgMCAxIDQuNTYgMTZIMTUuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWNi41NmEyIDIgMCAwIDEgMS41IDEuOTR2NWE0IDQgMCAwIDEtNCA0aC05Wk05IDIwYTIgMiAwIDAgMS0xLjk0LTEuNWg5LjE5YzIuMzUgMCA0LjI1LTEuOSA0LjI1LTQuMjVWOS4wNkEyIDIgMCAwIDEgMjIgMTF2My4yNUE1Ljc1IDUuNzUgMCAwIDEgMTYuMjUgMjBIOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrU3RhcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1N0YXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjUgNS44NWMuMjggMCAuNTQuMTYuNjcuNDFMMTEgNy45MWwxLjYuMmEuNzUuNzUgMCAwIDEgLjM5IDEuMzJsLTEuMTUuOTUuNCAxLjhhLjc1Ljc1IDAgMCAxLTEuMTMuOGwtMS42LTEtMS42IDFhLjc1Ljc1IDAgMCAxLTEuMTMtLjhsLjQtMS44LTEuMTUtLjk1YS43NS43NSAwIDAgMSAuMzktMS4zMkw4IDcuOWwuODItMS42NWEuNzUuNzUgMCAwIDEgLjY3LS40MVpNNCA0aDExYTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJabTExIDEuNUg0YS41LjUgMCAwIDAtLjUuNXY3YzAgLjI4LjIyLjUuNS41aDExYS41LjUgMCAwIDAgLjUtLjVWNmEuNS41IDAgMCAwLS41LS41Wk00LjU2IDE2YTIgMiAwIDAgMCAxLjk0IDEuNWg5YTQgNCAwIDAgMCA0LTR2LTVBMiAyIDAgMCAwIDE4IDYuNTZ2Ni45NGEyLjUgMi41IDAgMCAxLTIuNSAyLjVINC41NlptMi41IDIuNUEyIDIgMCAwIDAgOSAyMGg3LjI1QTUuNzUgNS43NSAwIDAgMCAyMiAxNC4yNVYxMWEyIDIgMCAwIDAtMS41LTEuOTR2NS4xOWMwIDIuMzUtMS45IDQuMjUtNC4yNSA0LjI1SDcuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja1ZlcnRpY2FsMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhY2tWZXJ0aWNhbDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djEwLjc1YS43NS43NSAwIDAgMS0xLjUgMFYxMy41YTEgMSAwIDAgMC0xLTFoLTlhMSAxIDAgMCAwLTEgMXYyLjc1YS43NS43NSAwIDAgMS0xLjUgMFY1LjVabTEuNSA1LjdjLjMtLjEzLjY0LS4yIDEtLjJoOWMuMzYgMCAuNy4wNyAxIC4yVjkuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2MS43Wm0xMS01LjdhMSAxIDAgMCAwLTEtMWgtOWExIDEgMCAwIDAtMSAxdjEuN2MuMy0uMTMuNjQtLjIgMS0uMmg5Yy4zNiAwIC43LjA3IDEgLjJWNS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhY2tWZXJ0aWNhbDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1ZlcnRpY2FsMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djExYS41LjUgMCAwIDEtMSAwdi0zYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2M2EuNS41IDAgMCAxLTEgMHYtMTFabTEgNmMuNDItLjMxLjk0LS41IDEuNS0uNWg5Yy41NiAwIDEuMDguMTkgMS41LjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgOCA0IDguNjcgNCA5LjV2MlptMTItNmMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXYyYy40Mi0uMzEuOTQtLjUgMS41LS41aDljLjU2IDAgMS4wOC4xOSAxLjUuNXYtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YWNrVmVydGljYWwyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFja1ZlcnRpY2FsMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNVYyMGExIDEgMCAxIDEtMiAwdi0zLjc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg2LjI1QzUuNTYgMTUgNSAxNS41NiA1IDE2LjI1VjIwYTEgMSAwIDEgMS0yIDBWNi4yNVptMiA3Yy4zOC0uMTYuOC0uMjUgMS4yNS0uMjVoMTEuNWMuNDQgMCAuODcuMDkgMS4yNS4yNXYtMmMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINi4yNUM1LjU2IDEwIDUgMTAuNTYgNSAxMS4yNXYyWm0xNC03QzE5IDUuNTYgMTguNDQgNSAxNy43NSA1SDYuMjVDNS41NiA1IDUgNS41NiA1IDYuMjV2MmMuMzgtLjE2LjgtLjI1IDEuMjUtLjI1aDExLjVjLjQ0IDAgLjg3LjA5IDEuMjUuMjV2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFja1ZlcnRpY2FsMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YWNrVmVydGljYWwyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxNGEuNzUuNzUgMCAwIDEtMS41IDB2LTRjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djRhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xNFptMS41IDcuMjZDNSAxMy4yIDUuNiAxMyA2LjI1IDEzaDExLjVjLjY0IDAgMS4yNC4xOSAxLjc1LjUxdi0yLjI2YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYyLjI2Wm0xNS03LjI2YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYyLjI2QzUgOC4yIDUuNiA4IDYuMjUgOGgxMS41Yy42NCAwIDEuMjQuMTkgMS43NS41MVY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhbXAzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YW1wMzJMaWdodCcsIFwiMzJcIiwgW1wiTTIyLjE3IDQuMTdhNCA0IDAgMSAxIDUuNjYgNS42NmMtLjczLjcyLTIuNCAxLjg4LTMuODMgMi44NGExMTQuMSAxMTQuMSAwIDAgMS0yLjIgMS40MmwzLjIyIDMuMjNhNC41IDQuNSAwIDAgMSAwIDYuMzZsLTMuNDYgMy40N2ExLjUgMS41IDAgMCAxLTIuMTIgMGwtLjk0LS45NC0yLjk0IDIuOTRhMS41IDEuNSAwIDAgMS0yLjEyIDBMMi44NSAxOC41NmExLjUgMS41IDAgMCAxIDAtMi4xMkw1LjggMTMuNWwtLjk0LS45NGExLjUgMS41IDAgMCAxIDAtMi4xMmwzLjQ3LTMuNDdhNC41IDQuNSAwIDAgMSA2LjM2IDBsMy4yMyAzLjIzQTExOS43IDExOS43IDAgMCAxIDE5LjMzIDhjLjk2LTEuNDQgMi4xMi0zLjEgMi44NC0zLjgzWm0tMS4xIDkuMmExMDkuMTIgMTA5LjEyIDAgMCAwIDIuMzgtMS41NCAzMC41OCAzMC41OCAwIDAgMCAzLjY3LTIuNyAzIDMgMCAxIDAtNC4yNC00LjI1Yy0uNjQuNjQtMS43NCAyLjIxLTIuNzEgMy42N2ExMTMuODEgMTEzLjgxIDAgMCAwLTEuNTQgMi4zOGwyLjQ0IDIuNDRabS03LjEtNS42OWEzLjUgMy41IDAgMCAwLTQuOTUgMGwtMy40NiAzLjQ3YS41LjUgMCAwIDAgMCAuN2wxNC41OSAxNC41OWMuMi4yLjUuMi43IDBsMy40Ny0zLjQ3YTMuNSAzLjUgMCAwIDAgMC00Ljk0TDEzLjk3IDcuNjhabS0xMC40IDkuNDdhLjUuNSAwIDAgMCAwIC43bDEwLjU4IDEwLjU5Yy4yLjIuNS4yLjcgMGwyLjk0LTIuOTRMNi41IDE0LjJsLTIuOTQgMi45NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXIxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyMTJGaWxsZWQnLCBcIjEyXCIsIFtcIk01LjI4IDEuNTVhLjguOCAwIDAgMSAxLjQ0IDBMNy44MyAzLjhsMi40OS4zNmMuNjUuMS45MS45LjQ0IDEuMzZsLTEuOCAxLjc2LjQzIDIuNDdhLjguOCAwIDAgMS0xLjE3Ljg1TDYgOS40MyAzLjc4IDEwLjZhLjguOCAwIDAgMS0xLjE2LS44NWwuNDItMi40Ny0xLjgtMS43NmEuOC44IDAgMCAxIC40NS0xLjM2bDIuNDgtLjM2IDEuMTEtMi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXIxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhcjEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTUuMjggMS41NWEuOC44IDAgMCAxIDEuNDQgMEw3LjgzIDMuOGwyLjQ5LjM2Yy42NS4xLjkxLjkuNDQgMS4zNmwtMS44IDEuNzYuNDMgMi40N2EuOC44IDAgMCAxLTEuMTcuODVMNiA5LjQzIDMuNzggMTAuNmEuOC44IDAgMCAxLTEuMTYtLjg1bC40Mi0yLjQ3LTEuOC0xLjc2YS44LjggMCAwIDEgLjQ1LTEuMzZsMi40OC0uMzYgMS4xMS0yLjI1Wm0uNzIuOC0uOTggMS45OWEuOC44IDAgMCAxLS42LjQzbC0yLjE5LjMyIDEuNTggMS41NGEuOC44IDAgMCAxIC4yMy43MWwtLjM3IDIuMThMNS42MyA4LjVhLjguOCAwIDAgMSAuNzQgMGwxLjk2IDEuMDMtLjM3LTIuMThhLjguOCAwIDAgMSAuMjMtLjdsMS41OC0xLjU1LTIuMTktLjMyYS44LjggMCAwIDEtLjYtLjQzTDYgMi4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03LjIgMi4xYS45LjkgMCAwIDEgMS42IDBsMS41MyAzLjA4IDMuNC41YS45LjkgMCAwIDEgLjUgMS41M2wtMi40NiAyLjQuNTggMy4zOWEuOS45IDAgMCAxLTEuMy45NUw4IDEyLjM1bC0zLjA0IDEuNmEuOS45IDAgMCAxLTEuMy0uOTVsLjU3LTMuMzktMi40Ni0yLjRhLjkuOSAwIDAgMSAuNS0xLjUzbDMuNC0uNUw3LjIgMi4xWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNy4yIDIuMWEuOS45IDAgMCAxIDEuNiAwbDEuNTMgMy4wOCAzLjQuNWEuOS45IDAgMCAxIC41IDEuNTNsLTIuNDYgMi40LjU4IDMuMzlhLjkuOSAwIDAgMS0xLjMuOTVMOCAxMi4zNWwtMy4wNCAxLjZhLjkuOSAwIDAgMS0xLjMtLjk1bC41Ny0zLjM5LTIuNDYtMi40YS45LjkgMCAwIDEgLjUtMS41M2wzLjQtLjVMNy4yIDIuMVptLjguNjNMNi41NSA1LjY3YS45LjkgMCAwIDEtLjY4LjVsLTMuMjUuNDcgMi4zNSAyLjNjLjIxLjIuMy41LjI2Ljc5bC0uNTYgMy4yNCAyLjkxLTEuNTNhLjkuOSAwIDAgMSAuODQgMGwyLjkgMS41My0uNTUtMy4yNGEuOS45IDAgMCAxIC4yNi0uOGwyLjM2LTIuMy0zLjI2LS40NmEuOS45IDAgMCAxLS42Ny0uNUw4IDIuNzNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNS43MyA0LjNhMSAxIDAgMCAxLTEuNDUgMS4wNUwxMCAxNS41MWwtMy44NiAyLjAzYTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNS43MyA0LjNhMSAxIDAgMCAxLTEuNDUgMS4wNUwxMCAxNS41MWwtMy44NiAyLjAzYTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wm0uOS40NEw4LjA3IDcuMjVhMSAxIDAgMCAxLS43NS41NUwzIDguNDNsMy4xMiAzLjA0YTEgMSAwIDAgMSAuMy44OWwtLjc1IDQuMyAzLjg3LTIuMDNhMSAxIDAgMCAxIC45MyAwbDMuODYgMi4wMy0uNzQtNC4zYTEgMSAwIDAgMSAuMjktLjg5TDE3IDguNDNsLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuNzkgMy4xYy41LTEgMS45Mi0xIDIuNDIgMGwyLjM2IDQuNzggNS4yNy43N2MxLjEuMTYgMS41NSAxLjUyLjc1IDIuM2wtMy44MiAzLjcyLjkgNS4yNWExLjM1IDEuMzUgMCAwIDEtMS45NiAxLjQyTDEyIDE4Ljg2bC00LjcyIDIuNDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0zLjgyIDMuNzIuOSA1LjI1YTEuMzUgMS4zNSAwIDAgMS0xLjk2IDEuNDJMMTIgMTguODZsLTQuNzIgMi40OGExLjM1IDEuMzUgMCAwIDEtMS45Ni0xLjQybC45LTUuMjUtMy44MS0zLjcyYy0uOC0uNzgtLjM2LTIuMTQuNzUtMi4zbDUuMjctLjc3IDIuMzYtNC43OFptMS4yLjk0TDkuNzUgOC42Yy0uMi40LS41OC42OC0xLjAyLjc0bC01LjA1Ljc0IDMuNjYgMy41NmMuMzIuMy40Ni43Ni4zOSAxLjJsLS44NyA1LjAyIDQuNTItMi4zN2MuNC0uMi44Ni0uMiAxLjI2IDBsNC41MSAyLjM3LS44Ni01LjAzYy0uMDctLjQzLjA3LS44OC4zOS0xLjJsMy42NS0zLjU1LTUuMDUtLjc0YTEuMzUgMS4zNSAwIDAgMS0xLjAxLS43NEwxMiA0LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhcjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXIyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTEyLjcgMy45YTEuNDUgMS40NSAwIDAgMSAyLjYgMEwxOCA5LjM3bDYuMDEuODdhMS40NSAxLjQ1IDAgMCAxIC44IDIuNDhsLTQuMzUgNC4yNCAxLjAzIDZhMS40NSAxLjQ1IDAgMCAxLTIuMSAxLjUyTDE0IDIxLjY0bC01LjM4IDIuODNhMS40NSAxLjQ1IDAgMCAxLTIuMS0xLjUybDEuMDItNi00LjM1LTQuMjRjLS44Ni0uODQtLjM5LTIuMy44LTIuNDhsNi4wMi0uODcgMi43LTUuNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXIyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMi43IDMuOWExLjQ1IDEuNDUgMCAwIDEgMi42IDBMMTggOS4zN2w2LjAxLjg3YTEuNDUgMS40NSAwIDAgMSAuOCAyLjQ4bC00LjM1IDQuMjQgMS4wMyA2YTEuNDUgMS40NSAwIDAgMS0yLjEgMS41MkwxNCAyMS42NGwtNS4zOCAyLjgzYTEuNDUgMS40NSAwIDAgMS0yLjEtMS41MmwxLjAyLTYtNC4zNS00LjI0Yy0uODYtLjg0LS4zOS0yLjMuOC0yLjQ4bDYuMDItLjg3IDIuNy01LjQ1Wm0xLjMuNzYtMi42NiA1LjM5Yy0uMi40My0uNjIuNzItMS4wOS44bC01Ljk0Ljg1IDQuMyA0LjJjLjM0LjMzLjUuOC40MiAxLjI4TDggMjMuMWw1LjMyLTIuOGMuNDItLjIyLjkyLS4yMiAxLjM1IDBsNS4zMSAyLjgtMS4wMS01LjkyYy0uMDgtLjQ3LjA3LS45NS40MS0xLjI4bDQuMy00LjItNS45NC0uODZhMS40NSAxLjQ1IDAgMCAxLTEuMS0uOEwxNCA0LjY3WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhcjMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXIzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE0LjY1IDMuODRhMS41IDEuNSAwIDAgMSAyLjcgMGwzLjIgNi41MiA3LjE3IDEuMDVhMS41IDEuNSAwIDAgMSAuODMgMi41NWwtNS4yIDUuMSAxLjIzIDcuMThhMS41IDEuNSAwIDAgMS0yLjE4IDEuNThMMTYgMjQuNDRsLTYuNCAzLjM4YTEuNSAxLjUgMCAwIDEtMi4xOC0xLjU4bDEuMjMtNy4xOC01LjItNS4xYTEuNSAxLjUgMCAwIDEgLjgzLTIuNTVsNy4xOC0xLjA1IDMuMi02LjUyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhcjMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJtMjAuMjYgMTIuMzQgNi4xNy45LTQuNDcgNC40YTIgMiAwIDAgMC0uNTggMS43NmwxLjA2IDYuMTgtNS41LTIuOTFhMiAyIDAgMCAwLTEuODcgMGwtNS41IDIuOTEgMS4wNS02LjE4YTIgMiAwIDAgMC0uNTctMS43N2wtNC40OC00LjM5IDYuMTgtLjlhMiAyIDAgMCAwIDEuNS0xLjFMMTYgNS42NGwyLjc1IDUuNmEyIDIgMCAwIDAgMS41IDEuMVptLTIuOTEtOC41YTEuNSAxLjUgMCAwIDAtMi43IDBsLTMuMiA2LjUyLTcuMTcgMS4wNWExLjUgMS41IDAgMCAwLS44MyAyLjU1bDUuMiA1LjEtMS4yMyA3LjE4YTEuNSAxLjUgMCAwIDAgMi4xOCAxLjU4bDYuNC0zLjM4IDYuNCAzLjM4YTEuNSAxLjUgMCAwIDAgMi4xOC0xLjU4bC0xLjIyLTcuMTggNS4yLTUuMWExLjUgMS41IDAgMCAwLS44NC0yLjU1bC03LjE3LTEuMDUtMy4yLTYuNTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhcjQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMjEuOCA2LjA5YTIuNDUgMi40NSAwIDAgMSA0LjQgMGw0Ljg1IDkuODMgMTAuODUgMS41N2EyLjQ1IDIuNDUgMCAwIDEgMS4zNiA0LjE4bC03Ljg1IDcuNjYgMS44NSAxMC44Yy4zNCAyLTEuNzYgMy41My0zLjU2IDIuNTlsLTkuNy01LjEtOS43IDUuMWMtMS44Ljk0LTMuOS0uNTktMy41Ni0yLjU5bDEuODUtMTAuOC03Ljg1LTcuNjZBMi40NSAyLjQ1IDAgMCAxIDYuMSAxNy41bDEwLjg1LTEuNTcgNC44NS05LjgzWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhcjQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMjEuOCA2LjA5YTIuNDUgMi40NSAwIDAgMSA0LjQgMGw0Ljg1IDkuODMgMTAuODUgMS41N2EyLjQ1IDIuNDUgMCAwIDEgMS4zNiA0LjE4bC03Ljg1IDcuNjYgMS44NSAxMC44Yy4zNCAyLTEuNzYgMy41My0zLjU2IDIuNTlsLTkuNy01LjEtOS43IDUuMWMtMS44Ljk0LTMuOS0uNTktMy41Ni0yLjU5bDEuODUtMTAuOC03Ljg1LTcuNjZBMi40NSAyLjQ1IDAgMCAxIDYuMSAxNy41bDEwLjg1LTEuNTcgNC44NS05LjgzWm0yLjIgMS4yLTQuODIgOS43NmEyLjQ1IDIuNDUgMCAwIDEtMS44NCAxLjM0TDYuNTYgMTkuOTVsNy44IDcuNmMuNTguNTcuODQgMS4zOC43IDIuMTdsLTEuODQgMTAuNzQgOS42NC01LjA3YTIuNDUgMi40NSAwIDAgMSAyLjI4IDBsOS42NCA1LjA3LTEuODQtMTAuNzRjLS4xNC0uOC4xMi0xLjYuNy0yLjE3bDcuOC03LjYtMTAuNzgtMS41NmEyLjQ1IDIuNDUgMCAwIDEtMS44NC0xLjM0TDI0IDcuMjhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQWRkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFkZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVsLjkyLS40OEE1LjUgNS41IDAgMCAxIDEwLjI0IDVMOC44MSAyLjFabTYuMiA4LjRhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTBIOC41YS41LjUgMCAwIDAgMCAxSDEwdjEuNWEuNS41IDAgMSAwIDEgMFYxMWgxLjVhLjUuNSAwIDEgMCAwLTFIMTFWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFkZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQWRkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVsLjkyLS40OGE1LjQ4IDUuNDggMCAwIDEtLjQ2LS44OWwtLjc0LjM5LjU2LTMuMjRhLjkuOSAwIDAgMC0uMjYtLjhsLTIuMzUtMi4zIDMuMjUtLjQ2YS45LjkgMCAwIDAgLjY4LS41TDggMi43M2wxLjIgMi40MmE1LjUgNS41IDAgMCAxIDEuMDQtLjE0TDguODEgMi4xWk01IDEwLjV2LS4xLjItLjFabTEwIDBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTBIOC41YS41LjUgMCAwIDAgMCAxSDEwdjEuNWEuNS41IDAgMSAwIDEgMFYxMWgxLjVhLjUuNSAwIDEgMCAwLTFIMTFWOC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBZGQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0uNTUuNTRhNS41IDUuNSAwIDAgMC03Ljk2IDYuMjZsLTMuMDUgMS42YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDEgMCAwIDFIMTR2MS41YS41LjUgMCAxIDAgMSAwVjE1aDEuNWEuNS41IDAgMSAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFkZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLS41NS41NGE1LjQ2IDUuNDYgMCAwIDAtMS0uNDNsLjg1LS44Mi00LjMyLS42M2ExIDEgMCAwIDEtLjc1LS41NUwxMCAzLjM1bC0xLjkzIDMuOWExIDEgMCAwIDEtLjc1LjU1TDMgOC40M2wzLjEyIDMuMDRhMSAxIDAgMCAxIC4zLjg5bC0uNzUgNC4zIDMuMzUtMS43NmMuMDIuMzYuMDguNy4xNyAxLjA0bC0zLjA1IDEuNmExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAxIDAgMCAxSDE0djEuNWEuNS41IDAgMSAwIDEgMFYxNWgxLjVhLjUuNSAwIDEgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBZGQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0uOS44OGE2LjUgNi41IDAgMCAwLTkuNDQgNy40M2wtMy45NyAyLjA4YTEuMzUgMS4zNSAwIDAgMS0xLjk2LTEuNDJsLjktNS4yNS0zLjgxLTMuNzJjLS44LS43OC0uMzYtMi4xNC43NS0yLjNsNS4yNy0uNzcgMi4zNi00Ljc4Wm0xMi4yIDE0LjRhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMSAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQWRkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0uOS44OGE2LjQ2IDYuNDYgMCAwIDAtMS41Mi0uNjJsMS4xNS0xLjEyLTUuMDUtLjc0YTEuMzUgMS4zNSAwIDAgMS0xLjAxLS43NEwxMiA0LjA0IDkuNzQgOC42Yy0uMi40LS41OC42OC0xLjAyLjc0bC01LjA1Ljc0IDMuNjYgMy41NmMuMzIuMy40Ni43Ni4zOSAxLjJsLS44NyA1LjAyTDExIDE3LjdjLjAyLjU0LjEgMS4wNy4yNCAxLjU3bC0zLjk2IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaTTIzIDE3LjVhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMFptLTUgLjV2Mi41YS41LjUgMCAxIDEtMSAwVjE4aC0yLjVhLjUuNSAwIDAgMSAwLTFIMTd2LTIuNWEuNS41IDAgMCAxIDEgMFYxN2gyLjVhLjUuNSAwIDAgMSAwIDFIMThaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQWRkMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFkZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTIuNyAzLjlhMS40NSAxLjQ1IDAgMCAxIDIuNiAwTDE4IDkuMzdsNi4wMS44N2ExLjQ1IDEuNDUgMCAwIDEgLjggMi40OGwtMS4wNiAxLjAzYTcuNSA3LjUgMCAwIDAtMTAuNTkgOC4zNGwtNC41NCAyLjRhMS40NSAxLjQ1IDAgMCAxLTIuMS0xLjUzbDEuMDItNi00LjM1LTQuMjRjLS44Ni0uODQtLjM5LTIuMy44LTIuNDhsNi4wMi0uODcgMi43LTUuNDVaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTYtNGEuNS41IDAgMCAwLTEgMFYyMGgtMy41YS41LjUgMCAwIDAgMCAxSDIwdjMuNWEuNS41IDAgMSAwIDEgMFYyMWgzLjVhLjUuNSAwIDEgMCAwLTFIMjF2LTMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBZGQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFkZDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEyLjcgMy45YTEuNDUgMS40NSAwIDAgMSAyLjYgMEwxOCA5LjM3bDYuMDEuODdhMS40NSAxLjQ1IDAgMCAxIC44IDIuNDhsLTEuMDYgMS4wM2E3LjQ0IDcuNDQgMCAwIDAtMS41OC0uNTVsMS41Mi0xLjQ5LTUuOTQtLjg2YTEuNDUgMS40NSAwIDAgMS0xLjEtLjhMMTQgNC42N2wtMi42NiA1LjM5Yy0uMi40My0uNjIuNzItMS4wOS44bC01Ljk0Ljg1IDQuMyA0LjJjLjM0LjMzLjUuOC40MiAxLjI4TDggMjMuMSAxMyAyMC40OHYuMDJjMCAuNTQuMDYgMS4wNy4xNyAxLjU4bC00LjU1IDIuNGExLjQ1IDEuNDUgMCAwIDEtMi4xLTEuNTNsMS4wMi02LTQuMzUtNC4yNGMtLjg2LS44NC0uMzktMi4zLjgtMi40OGw2LjAyLS44NyAyLjctNS40NVpNMjcgMjAuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tNi00YS41LjUgMCAwIDAtMSAwVjIwaC0zLjVhLjUuNSAwIDAgMCAwIDFIMjB2My41YS41LjUgMCAwIDAgMSAwVjIxaDMuNWEuNS41IDAgMCAwIDAtMUgyMXYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFkZDMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFkZDMyTGlnaHQnLCBcIjMyXCIsIFtcIk0yMC40IDExLjM1YTEgMSAwIDAgMS0uNzUtLjU1bC0zLjItNi41MmEuNS41IDAgMCAwLS45IDBsLTMuMiA2LjUyYTEgMSAwIDAgMS0uNzUuNTVMNC40MyAxMi40YS41LjUgMCAwIDAtLjI4Ljg1bDUuMiA1LjFhMSAxIDAgMCAxIC4yOC44OEw4LjQxIDI2LjRhLjUuNSAwIDAgMCAuNzIuNTNsNC42LTIuNDNjLjA3LjMzLjE3LjY2LjI4Ljk4bC00LjQgMi4zM2ExLjUgMS41IDAgMCAxLTIuMTktMS41OGwxLjIzLTcuMTgtNS4yLTUuMWExLjUgMS41IDAgMCAxIC44My0yLjU1bDcuMTgtMS4wNSAzLjItNi41MmExLjUgMS41IDAgMCAxIDIuNjkgMGwzLjIgNi41MiA3LjE3IDEuMDVhMS41IDEuNSAwIDAgMSAuODMgMi41NWwtMS4wNiAxLjA1Yy0uMjktLjItLjU5LS4zNy0uOS0uNTNsMS4yNi0xLjIzYS41LjUgMCAwIDAtLjI4LS44NWwtNy4xNy0xLjA1Wk0yMi41IDMwYTcuNSA3LjUgMCAxIDAgMC0xNSA3LjUgNy41IDAgMCAwIDAgMTVabTEtMTIuMjV2My43NWgzLjc1YS43NS43NSAwIDAgMSAwIDEuNUgyMy41djMuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwVjIzaC0zLjc1YS43NS43NSAwIDAgMSAwLTEuNUgyMnYtMy43NWEuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dCYWNrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93QmFjazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVsLjkyLS40OGE1LjUgNS41IDAgMCAxIDQuMzctOC40Nkw4LjgxIDIuMVpNMTAuNSAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOVptLS45LTYuNC0uOS45aDEuNTVBMi43NSAyLjc1IDAgMCAxIDEzIDEyLjI1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUg4LjcxbC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN0w4LjkgNy45YS41LjUgMCAxIDEgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd0JhY2sxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93QmFjazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTguOCAyLjFhLjkuOSAwIDAgMC0xLjYgMEw1LjY2IDUuMThsLTMuNC41YS45LjkgMCAwIDAtLjUgMS41M2wyLjQ2IDIuNEwzLjY1IDEzYS45LjkgMCAwIDAgMS4zLjk1bC45Mi0uNDhhNS40OSA1LjQ5IDAgMCAxLS40Ni0uODlsLS43NC4zOS4zNS0yLjAyYTUuNTggNS41OCAwIDAgMSAuMTQtMS43Ni45LjkgMCAwIDAtLjE5LS4yNmwtMi4zNS0yLjMgMy4yNS0uNDZhLjkuOSAwIDAgMCAuNjgtLjVMOCAyLjczbDEuMiAyLjQyYTUuNSA1LjUgMCAwIDEgMS4wNC0uMTRMOC44MSAyLjFaTTEwLjUgMTVhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxMyAxMi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIOC43MWwuOS45YS41LjUgMCAwIDEtLjcxLjdsLTEuNzYtMS43NWEuNS41IDAgMCAxIDAtLjdMOC45IDcuOWEuNS41IDAgMSAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dCYWNrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93QmFjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLS41NS41NGE1LjUgNS41IDAgMCAwLTcuOTYgNi4yNmwtMy4wNSAxLjZhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlaTTE0LjUgMTlhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDlabS0uOS02LjQtLjkuOWgxLjU1QTIuNzUgMi43NSAwIDAgMSAxNyAxNi4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTEuNTRsLjkuOWEuNS41IDAgMCAxLS43MS43bC0xLjc2LTEuNzVhLjUuNSAwIDAgMSAwLS43bDEuNzYtMS43NWEuNS41IDAgMCAxIC43LjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dCYWNrMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd0JhY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtLjU1LjU0YTUuNDcgNS40NyAwIDAgMC0xLS40M2wuODUtLjgyLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVsLTEuOTMgMy45YTEgMSAwIDAgMS0uNzUuNTVMMyA4LjQzbDMuMTIgMy4wNGExIDEgMCAwIDEgLjMuODlsLS43NSA0LjMgMy4zNC0xLjc2Yy4wMy4zNi4wOS43LjE4IDEuMDRsLTMuMDUgMS42YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0tLjktNi40LS45LjloMS41NUEyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xLjU0bC45LjlhLjUuNSAwIDAgMS0uNzEuN2wtMS43Ni0xLjc1YS41LjUgMCAwIDEgMC0uN2wxLjc2LTEuNzVhLjUuNSAwIDAgMSAuNy43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFycm93QmFjazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd0JhY2syNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjc5IDMuMWMuNS0xIDEuOTItMSAyLjQyIDBsMi4zNiA0Ljc4IDUuMjcuNzdjMS4xLjE2IDEuNTUgMS41Mi43NSAyLjNsLS45Ljg4YTYuNSA2LjUgMCAwIDAtOS40NCA3LjQzbC0zLjk3IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaTTIzIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYuNjUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoMi4wNGMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC0yLjA0bC42NC0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dCYWNrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd0JhY2syNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0uOS44OGE2LjQ2IDYuNDYgMCAwIDAtMS41Mi0uNjFsMS4xNS0xLjEzLTUuMDUtLjc0YTEuMzUgMS4zNSAwIDAgMS0xLjAxLS43NEwxMiA0LjA0IDkuNzQgOC42Yy0uMi40LS41OC42OC0xLjAyLjc0bC01LjA1Ljc0IDMuNjYgMy41NmMuMzIuMy40Ni43Ni4zOSAxLjJsLS44NyA1LjAyTDExIDE3LjdjLjAyLjU0LjEgMS4wNy4yNCAxLjU3bC0zLjk2IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaTTIzIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTYuNjUtMi4xNWEuNS41IDAgMCAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoMi4wNGMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYuMjVhLjUuNSAwIDAgMCAxIDB2LS4yNWMwLTEuOC0xLjQ2LTMuMjUtMy4yNS0zLjI1aC0yLjA0bC42NC0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dSaWdodDMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93UmlnaHQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMjAuNCAxMS4zNWExIDEgMCAwIDEtLjc1LS41NWwtMy4yLTYuNTJhLjUuNSAwIDAgMC0uOSAwbC0zLjIgNi41MmExIDEgMCAwIDEtLjc1LjU1TDQuNDMgMTIuNGEuNS41IDAgMCAwLS4yOC44NWwxLjI2IDEuMjNhOSA5IDAgMCAwLS45LjUzbC0xLjA2LTEuMDVhMS41IDEuNSAwIDAgMSAuODMtMi41NWw3LjE4LTEuMDUgMy4yLTYuNTJhMS41IDEuNSAwIDAgMSAyLjY5IDBsMy4yIDYuNTIgNy4xNyAxLjA1YTEuNSAxLjUgMCAwIDEgLjgzIDIuNTVsLTUuMiA1LjEgMS4yMyA3LjE4YTEuNSAxLjUgMCAwIDEtMi4xOCAxLjU4TDE4IDI1LjVjLjEtLjMyLjItLjY1LjI3LS45OGw0LjYgMi40M2MuMzYuMi44LS4xMi43Mi0uNTNsLTEuMjItNy4xOGExIDEgMCAwIDEgLjI5LS44OGw1LjItNS4xYS41LjUgMCAwIDAtLjI5LS44NWwtNy4xNy0xLjA1Wk0xNyAyMi41YTcuNSA3LjUgMCAxIDAtMTUgMCA3LjUgNy41IDAgMCAwIDE1IDBabS0xMi4yNS0xaDcuNjlsLTIuNzItMi43MmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDQgNGMuMy4zLjMuNzcgMCAxLjA2bC00IDRhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNkwxMi40NCAyM0g0Ljc1YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0RW5kMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93UmlnaHRFbmQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjkgMi41NmExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjQ1bC00LjMxLjYyYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wMy0uNzQgNC4yOGExIDEgMCAwIDAgMS40NSAxLjA1bDMuMDUtMS42YTUuNDYgNS40NiAwIDAgMSA1LjMxLTYuOWMuOTYgMCAxLjg2LjI0IDIuNjUuNjdsLjU1LS41M2ExIDEgMCAwIDAtLjU2LTEuN2wtNC4zMS0uNjItMS45My0zLjlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMC05IDAgNC41IDQuNSAwIDAgMCA5IDBabS00LjE1IDIuMzVhLjUuNSAwIDAgMS0uNy0uN0wxNS4yOSAxNUgxMi41YS41LjUgMCAwIDEgMC0xaDIuOGwtMS4xNS0xLjE1YS41LjUgMCAwIDEgLjctLjdsMiAyYS41LjUgMCAwIDEgLjE1LjM1LjUuNSAwIDAgMS0uMTQuMzVsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0RW5kMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd1JpZ2h0RW5kMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuOSAyLjU2YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuNDVsLTQuMzEuNjJhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjAzLS43NCA0LjI4YTEgMSAwIDAgMCAxLjQ1IDEuMDVsMy4wNS0xLjZhNS40NCA1LjQ0IDAgMCAxLS4xNy0xLjAzbC0zLjM1IDEuNzUuNzQtNC4yOGExIDEgMCAwIDAtLjI5LS44OEwzIDguMDZsNC4zMi0uNjNhMSAxIDAgMCAwIC43NS0uNTRMMTAgMi45OWwxLjkzIDMuOWMuMTUuMy40My41Ljc1LjU0bDQuMzIuNjMtLjg1LjgyYy4zNS4xMS42OS4yNSAxIC40MmwuNTUtLjUzYTEgMSAwIDAgMC0uNTYtMS43bC00LjMxLS42Mi0xLjkzLTMuOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAwLTkgMCA0LjUgNC41IDAgMCAwIDkgMFptLTQuMTUgMi4zNWEuNS41IDAgMCAxLS43LS43TDE1LjI5IDE1SDEyLjVhLjUuNSAwIDAgMSAwLTFoMi44bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJhLjUuNSAwIDAgMSAuMTUuMzUuNS41IDAgMCAxLS4xNC4zNWwtMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFycm93UmlnaHRFbmQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQXJyb3dSaWdodEVuZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuNzkgMy4xYy41LTEgMS45Mi0xIDIuNDIgMGwyLjM2IDQuNzggNS4yNy43N2MxLjEuMTYgMS41NSAxLjUyLjc1IDIuM2wtLjkuODhhNi41IDYuNSAwIDAgMC05LjQ0IDcuNDNsLTMuOTcgMi4wOGExLjM1IDEuMzUgMCAwIDEtMS45Ni0xLjQybC45LTUuMjUtMy44MS0zLjcyYy0uOC0uNzgtLjM2LTIuMTQuNzUtMi4zbDUuMjctLjc3IDIuMzYtNC43OFptMTIuMiAxNC40YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS04LjUtLjVhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDEgMCAuNzEuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMSAwLS43LjdMMTkuMjggMTdoLTQuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0RW5kMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd1JpZ2h0RW5kMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuNzkgMy4xYy41LTEgMS45Mi0xIDIuNDIgMGwyLjM2IDQuNzggNS4yNy43N2MxLjEuMTYgMS41NSAxLjUyLjc1IDIuM2wtLjkuODhhNi40NiA2LjQ2IDAgMCAwLTEuNTItLjYybDEuMTUtMS4xMi01LjA1LS43NGExLjM1IDEuMzUgMCAwIDEtMS4wMS0uNzRMMTIgNC4wNCA5Ljc0IDguNmMtLjIuNC0uNTguNjgtMS4wMi43NGwtNS4wNS43NCAzLjY2IDMuNTZjLjMyLjMuNDYuNzYuMzkgMS4ybC0uODcgNS4wMkwxMSAxNy43Yy4wMi41NC4xIDEuMDcuMjQgMS41N2wtMy45NiAyLjA4YTEuMzUgMS4zNSAwIDAgMS0xLjk2LTEuNDJsLjktNS4yNS0zLjgxLTMuNzJjLS44LS43OC0uMzYtMi4xNC43NS0yLjNsNS4yNy0uNzcgMi4zNi00Ljc4Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS04LjUtLjVhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDAgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAwIDAtLjcuN0wxOS4yOSAxN0gxNC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckFycm93UmlnaHRTdGFydDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd1JpZ2h0U3RhcnQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkuMSAyLjU2YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOSA0LjMxLjY0YTEgMSAwIDAgMSAuNTYgMS43bC0zLjEzIDMuMDUuNzQgNC4zYTEgMSAwIDAgMS0xLjQ1IDEuMDVsLTIuOTgtMS41N2E1LjUyIDUuNTIgMCAwIDAtNy44LTYuMDdMMi4zIDguOGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi41NlpNNS41IDEwYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0yLjM1IDQuODVBLjUuNSAwIDAgMCA4IDE0LjVhLjUuNSAwIDAgMC0uMTUtLjM1bC0yLTJhLjUuNSAwIDAgMC0uNy43TDYuMjkgMTRIMy41YS41LjUgMCAwIDAgMCAxaDIuOGwtMS4xNSAxLjE1YS41LjUgMCAwIDAgLjcuN2wyLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQXJyb3dSaWdodFN0YXJ0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJBcnJvd1JpZ2h0U3RhcnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjEgMi41NmExIDEgMCAwIDEgMS44IDBsMS45MyAzLjg5IDQuMzEuNjJhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTMgMy4wMy43NCA0LjI4YTEgMSAwIDAgMS0xLjQ1IDEuMDVsLTIuOTctMS41NWMuMDctLjM1LjEtLjcuMTEtMS4wN2wzLjMzIDEuNzQtLjc0LTQuMjhhMSAxIDAgMCAxIC4yOS0uODhMMTcgOC4wNmwtNC4zMi0uNjNhMSAxIDAgMCAxLS43NS0uNTRMMTAgMi45OSA4LjA3IDYuOWExIDEgMCAwIDEtLjc1LjU0TDMgOC4wNmwxLjE0IDEuMWMtLjM2LjEtLjcuMjMtMS4wNC4zOWwtLjgtLjc4YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYyIDEuOTMtMy45Wk01LjUgMTBhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTIuMzUgNC44NUEuNS41IDAgMCAwIDggMTQuNWEuNS41IDAgMCAwLS4xNS0uMzVsLTItMmEuNS41IDAgMCAwLS43LjdMNi4yOSAxNEgzLjVhLjUuNSAwIDAgMCAwIDFoMi44bC0xLjE1IDEuMTVhLjUuNSAwIDAgMCAuNy43bDItMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0U3RhcnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQXJyb3dSaWdodFN0YXJ0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkzLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0zLjgyIDMuNzIuOSA1LjI1YTEuMzUgMS4zNSAwIDAgMS0xLjk1IDEuNDJsLTMuOTYtMi4wOGE2LjUgNi41IDAgMCAwLTkuNDQtNy40M2wtLjktLjg4Yy0uODEtLjc4LS4zNy0yLjE0Ljc0LTIuM2w1LjI3LS43N0wxMC44IDMuMVpNMTIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWk0zLjUgMTdhLjUuNSAwIDAgMCAwIDFoNC44bC0xLjY1IDEuNjVhLjUuNSAwIDEgMCAuNy43bDIuNS0yLjVhLjUuNSAwIDAgMCAwLS43bC0yLjUtMi41YS41LjUgMCAxIDAtLjcuN0w4LjI5IDE3SDMuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJBcnJvd1JpZ2h0U3RhcnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckFycm93UmlnaHRTdGFydDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEwLjc5IDMuMWMuNS0xIDEuOTItMSAyLjQyIDBsMi4zNiA0Ljc4IDUuMjcuNzdjMS4xLjE2IDEuNTUgMS41Mi43NSAyLjNsLTMuODIgMy43Mi45IDUuMjVhMS4zNSAxLjM1IDAgMCAxLTEuOTYgMS40MmwtMy45NS0yLjA4Yy4xNC0uNS4yMi0xLjAyLjI0LTEuNTdsNC4xNCAyLjE4LS44Ni01LjAzYy0uMDctLjQzLjA3LS44OC4zOS0xLjJsMy42NS0zLjU1LTUuMDUtLjc0YTEuMzUgMS4zNSAwIDAgMS0xLjAxLS43NEwxMiA0LjA0IDkuNzQgOC42Yy0uMi40LS41OC42OC0xLjAyLjc0bC01LjA1Ljc0IDEuMTYgMS4xM2MtLjUzLjE0LTEuMDQuMzUtMS41MS42MWwtLjkxLS44OGMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaTTEyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFpNMy41IDE3YS41LjUgMCAwIDAgMCAxaDQuOGwtMS42NSAxLjY1YS41LjUgMCAxIDAgLjcuN2wyLjUtMi41YS41LjUgMCAwIDAgMC0uN2wtMi41LTIuNWEuNS41IDAgMSAwLS43LjdMOC4yOSAxN0gzLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQ2hlY2ttYXJrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckNoZWNrbWFyazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVsLjkyLS40OGE1LjUgNS41IDAgMCAxIDQuMzctOC40Nkw4LjgxIDIuMVptNi4yIDguNGE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBMOS41IDExLjI5bC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQ2hlY2ttYXJrMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJDaGVja21hcmsxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjggMi4xYS45LjkgMCAwIDAtMS42IDBMNS42NiA1LjE4bC0zLjQuNWEuOS45IDAgMCAwLS41IDEuNTNsMi40NiAyLjRMMy42NSAxM2EuOS45IDAgMCAwIDEuMy45NWwuOTItLjQ4YTUuNDkgNS40OSAwIDAgMS0uNDYtLjg5bC0uNzQuMzkuMzUtMi4wMmE1LjU4IDUuNTggMCAwIDEgLjE0LTEuNzYuOS45IDAgMCAwLS4xOS0uMjZsLTIuMzUtMi4zIDMuMjUtLjQ2YS45LjkgMCAwIDAgLjY4LS41TDggMi43M2wxLjIgMi40M0E1LjUgNS41IDAgMCAxIDEwLjI0IDVMOC44MSAyLjFabTYuMiA4LjRhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjE1LTEuODVhLjUuNSAwIDAgMC0uNyAwTDkuNSAxMS4yOWwtLjY1LS42NGEuNS41IDAgMCAwLS43LjdsMSAxYy4yLjIuNS4yLjcgMGwzLTNhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckNoZWNrbWFyazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJDaGVja21hcmsyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1bDMuMDUtMS42YTUuNSA1LjUgMCAwIDEgNy45Ni02LjI2bC41NS0uNTRhMSAxIDAgMCAwLS41Ni0xLjdsLTQuMzEtLjYzTDEwLjkgMi45Wk0xOSAxNC41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS0xLjg1YS41LjUgMCAwIDAtLjcgMGwtMi42NSAyLjY0LS42NS0uNjRhLjUuNSAwIDAgMC0uNy43bDEgMWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJDaGVja21hcmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckNoZWNrbWFyazIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1bDMuMDUtMS42YTUuNDkgNS40OSAwIDAgMS0uMTgtMS4wNGwtMy4zNCAxLjc2Ljc0LTQuM2ExIDEgMCAwIDAtLjI5LS44OUwzIDguNDNsNC4zMi0uNjNhMSAxIDAgMCAwIC43NS0uNTVMMTAgMy4zNWwxLjkzIDMuOWMuMTUuMy40My41Ljc1LjU1bDQuMzIuNjMtLjg1LjgyYy4zNS4xMS42OS4yNiAxIC40M2wuNTUtLjU0YTEgMSAwIDAgMC0uNTYtMS43bC00LjMxLS42M0wxMC45IDIuOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUtMS44NWEuNS41IDAgMCAwLS43IDBsLTIuNjUgMi42NC0uNjUtLjY0YS41LjUgMCAwIDAtLjcuN2wxIDFjLjIuMi41LjIuNyAwbDMtM2EuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQ2hlY2ttYXJrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckNoZWNrbWFyazI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTMuMiAzLjFjLS40OS0xLTEuOTItMS0yLjQxIDBMOC40MyA3Ljg4bC01LjI3Ljc3YTEuMzUgMS4zNSAwIDAgMC0uNzUgMi4zbDMuODEgMy43Mi0uOSA1LjI1YTEuMzUgMS4zNSAwIDAgMCAxLjk2IDEuNDJsMy45Ni0yLjA4YTYuNSA2LjUgMCAwIDEgOS40NC03LjQzbC45LS44OGMuOC0uNzguMzctMi4xNC0uNzQtMi4zbC01LjI3LS43N0wxMy4yIDMuMVpNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tMi4xNS0yLjM1YS41LjUgMCAwIDAtLjcgMGwtMy42NSAzLjY0LTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw0LTRhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckNoZWNrbWFyazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyQ2hlY2ttYXJrMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuMiAzLjFjLS40OS0xLTEuOTItMS0yLjQxIDBMOC40MyA3Ljg4bC01LjI3Ljc3YTEuMzUgMS4zNSAwIDAgMC0uNzUgMi4zbDMuODEgMy43Mi0uOSA1LjI1YTEuMzUgMS4zNSAwIDAgMCAxLjk2IDEuNDJsMy45Ni0yLjA4QTYuNSA2LjUgMCAwIDEgMTEgMTcuN2wtNC4xNSAyLjE4Ljg3LTUuMDNjLjA3LS40My0uMDctLjg4LS40LTEuMkwzLjY4IDEwLjFsNS4wNS0uNzRjLjQ0LS4wNi44Mi0uMzQgMS4wMi0uNzNMMTIgNC4wNGwyLjI2IDQuNThjLjIuNC41Ny42NyAxLjAxLjczbDUuMDUuNzQtMS4xNSAxLjEzYy41My4xNCAxLjA0LjM1IDEuNTEuNjFsLjktLjg4Yy44LS43OC4zNy0yLjE0LS43NC0yLjNsLTUuMjctLjc3TDEzLjIgMy4xWk0yMyAxNy41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS0yLjE1LTIuMzVhLjUuNSAwIDAgMC0uNyAwbC0zLjY1IDMuNjQtMS42NS0xLjY0YS41LjUgMCAwIDAtLjcuN2wyIDJjLjIuMi41LjIuNyAwbDQtNGEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyQ2hlY2ttYXJrMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckNoZWNrbWFyazI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTUuMyAzLjlhMS40NSAxLjQ1IDAgMCAwLTIuNiAwbC0yLjY5IDUuNDYtNi4wMi44N2ExLjQ1IDEuNDUgMCAwIDAtLjggMi40OGw0LjM1IDQuMjQtMS4wMiA2YTEuNDUgMS40NSAwIDAgMCAyLjEgMS41Mmw0LjU1LTIuMzlBNy41MyA3LjUzIDAgMCAxIDIwLjUgMTNjMS4xNyAwIDIuMjcuMjcgMy4yNS43NGwxLjA2LTEuMDNjLjg2LS44NC4zOS0yLjMtLjgtMi40OGwtNi4wMi0uODctMi42OS01LjQ1Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS0yLjY1LTIuODVhLjUuNSAwIDAgMC0uNyAwTDE5IDIyLjI5bC0xLjY1LTEuNjRhLjUuNSAwIDAgMC0uNy43bDIgMmMuMi4yLjUuMi43IDBsNS01YS41LjUgMCAwIDAgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJDaGVja21hcmsyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckNoZWNrbWFyazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE1LjMgMy45YTEuNDUgMS40NSAwIDAgMC0yLjYgMGwtMi42OSA1LjQ2LTYuMDIuODdhMS40NSAxLjQ1IDAgMCAwLS44IDIuNDhsNC4zNSA0LjI0LTEuMDIgNmExLjQ1IDEuNDUgMCAwIDAgMi4xIDEuNTJsNC41NS0yLjM5QTcuNTMgNy41MyAwIDAgMSAxMyAyMC41di0uMDJMOC4wMSAyMy4xbDEuMDItNS45MmMuMDgtLjQ3LS4wOC0uOTUtLjQyLTEuMjhsLTQuMy00LjIgNS45NC0uODZjLjQ3LS4wNy44OC0uMzYgMS4xLS44TDE0IDQuNjdsMi42NiA1LjM5Yy4yMS40My42Mi43MiAxLjEuOGw1LjkzLjg1LTEuNTIgMS40OWMuNTYuMTIgMS4wOS4zMSAxLjU4LjU1bDEuMDYtMS4wM2MuODYtLjg0LjM5LTIuMy0uOC0yLjQ4bC02LjAyLS44Ny0yLjY5LTUuNDVaTTI3IDIwLjVhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTIuNjUtMi44NWEuNS41IDAgMCAwLS43IDBMMTkgMjIuMjlsLTEuNjUtMS42NGEuNS41IDAgMCAwLS43LjdsMiAyYy4yLjIuNS4yLjcgMGw1LTVhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckRpc21pc3MxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRGlzbWlzczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNy4yIDIuMWEuOS45IDAgMCAxIDEuNiAwTDEwLjI1IDVhNS41IDUuNSAwIDAgMC00LjM3IDguNDdsLS45MS40OGEuOS45IDAgMCAxLTEuMy0uOTVsLjU3LTMuMzktMi40Ni0yLjRhLjkuOSAwIDAgMSAuNS0xLjUzbDMuNC0uNUw3LjIgMi4xWm03LjggOC40YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi42NS0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTAuNSA5Ljc5IDkuMzUgOC42NWEuNS41IDAgMSAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckRpc21pc3MxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckRpc21pc3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk03LjIgMi4xYS45LjkgMCAwIDEgMS42IDBMMTAuMjUgNWMtLjM2LjAyLS43LjA3LTEuMDQuMTZMOCAyLjczIDYuNTUgNS42N2EuOS45IDAgMCAxLS42OC41bC0zLjI1LjQ3IDIuMzUgMi4zYS45LjkgMCAwIDEgLjE5LjI1IDUuNTEgNS41MSAwIDAgMC0uMTQgMS43NmwtLjM1IDIuMDIuNzQtLjM5Yy4xMy4zMS4yOC42MS40Ni44OWwtLjkxLjQ4YS45LjkgMCAwIDEtMS4zLS45NWwuNTctMy4zOS0yLjQ2LTIuNGEuOS45IDAgMCAxIC41LTEuNTNsMy40LS41TDcuMiAyLjFabTcuOCA4LjRhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN0wxMC41IDkuNzkgOS4zNSA4LjY1YS41LjUgMCAxIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRGlzbWlzczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJEaXNtaXNzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtLjU1LjU0YTUuNSA1LjUgMCAwIDAtNy45NiA2LjI2bC0zLjA1IDEuNmExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVpNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNSAxLjE0LTEuMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRGlzbWlzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRGlzbWlzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0uNTUuNTRhNS40NyA1LjQ3IDAgMCAwLTEtLjQzbC44NS0uODItNC4zMi0uNjNhMSAxIDAgMCAxLS43NS0uNTVMMTAgMy4zNWwtMS45MyAzLjlhMSAxIDAgMCAxLS43NS41NUwzIDguNDNsMy4xMiAzLjA0YTEgMSAwIDAgMSAuMy44OWwtLjc1IDQuMyAzLjM0LTEuNzZjLjAzLjM2LjA5LjcuMTggMS4wNGwtMy4wNSAxLjZhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlaTTE5IDE0LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS0yLjY1LTEuMTVhLjUuNSAwIDAgMC0uNy0uN2wtMS4xNSAxLjE0LTEuMTUtMS4xNGEuNS41IDAgMCAwLS43LjdsMS4xNCAxLjE1LTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdsMS4xNS0xLjE0IDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43bC0xLjE0LTEuMTUgMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckRpc21pc3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTAuNzkgMy4xYy41LTEgMS45Mi0xIDIuNDIgMGwyLjM2IDQuNzggNS4yNy43N2MxLjEuMTYgMS41NSAxLjUyLjc1IDIuM2wtLjkuODhhNi41IDYuNSAwIDAgMC05LjQ0IDcuNDNsLTMuOTcgMi4wOGExLjM1IDEuMzUgMCAwIDEtMS45Ni0xLjQybC45LTUuMjUtMy44MS0zLjcyYy0uOC0uNzgtLjM2LTIuMTQuNzUtMi4zbDUuMjctLjc3IDIuMzYtNC43OFpNMjMgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNS0yLjM1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdsLTEuNjQtMS42NSAxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMS42NSAxLjY0LTEuNjUtMS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJEaXNtaXNzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJEaXNtaXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTAuNzkgMy4xYy41LTEgMS45Mi0xIDIuNDIgMGwyLjM2IDQuNzggNS4yNy43N2MxLjEuMTYgMS41NSAxLjUyLjc1IDIuM2wtLjkuODhhNi40NiA2LjQ2IDAgMCAwLTEuNTItLjYxbDEuMTUtMS4xMy01LjA1LS43NGExLjM1IDEuMzUgMCAwIDEtMS4wMS0uNzNMMTIgNC4wNCA5Ljc0IDguNjJjLS4yLjQtLjU4LjY3LTEuMDIuNzNsLTUuMDUuNzQgMy42NiAzLjU2Yy4zMi4zMS40Ni43Ni4zOSAxLjJsLS44NyA1LjAyTDExIDE3LjdjLjAyLjU0LjEgMS4wNy4yNCAxLjU3bC0zLjk2IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaTTIzIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTcuMTUtMi4zNWEuNS41IDAgMCAwLS43LjdsMS42NCAxLjY1LTEuNjQgMS42NWEuNS41IDAgMCAwIC43LjdsMS42NS0xLjY0IDEuNjUgMS42NGEuNS41IDAgMCAwIC43LS43bC0xLjY0LTEuNjUgMS42NC0xLjY1YS41LjUgMCAwIDAtLjctLjdsLTEuNjUgMS42NC0xLjY1LTEuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRGlzbWlzczI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJEaXNtaXNzMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMi43IDMuOWExLjQ1IDEuNDUgMCAwIDEgMi42IDBMMTggOS4zN2w2LjAxLjg3YTEuNDUgMS40NSAwIDAgMSAuOCAyLjQ4bC0xLjA2IDEuMDNhNy41IDcuNSAwIDAgMC0xMC41OSA4LjM0bC00LjU0IDIuNGExLjQ1IDEuNDUgMCAwIDEtMi4xLTEuNTNsMS4wMi02LTQuMzUtNC4yNGMtLjg2LS44NC0uMzktMi4zLjgtMi40OGw2LjAyLS44NyAyLjctNS40NVpNMjcgMjAuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tOS4xNS0zLjM1YS41LjUgMCAwIDAtLjcuN2wyLjY0IDIuNjUtMi42NCAyLjY1YS41LjUgMCAwIDAgLjcuN2wyLjY1LTIuNjQgMi42NSAyLjY0YS41LjUgMCAwIDAgLjctLjdsLTIuNjQtMi42NSAyLjY0LTIuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMi42NSAyLjY0LTIuNjUtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJEaXNtaXNzMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJEaXNtaXNzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTIuNyAzLjlhMS40NSAxLjQ1IDAgMCAxIDIuNiAwTDE4IDkuMzdsNi4wMS44N2ExLjQ1IDEuNDUgMCAwIDEgLjggMi40OGwtMS4wNiAxLjAzYTcuNDQgNy40NCAwIDAgMC0xLjU4LS41NWwxLjUyLTEuNDktNS45NC0uODZhMS40NSAxLjQ1IDAgMCAxLTEuMS0uOEwxNCA0LjY3bC0yLjY2IDUuMzljLS4yLjQzLS42Mi43Mi0xLjA5LjhsLTUuOTQuODUgNC4zIDQuMmMuMzQuMzMuNS44LjQyIDEuMjhMOCAyMy4xIDEzIDIwLjQ4di4wMmMwIC41NC4wNiAxLjA3LjE3IDEuNThsLTQuNTUgMi40YTEuNDUgMS40NSAwIDAgMS0yLjEtMS41M2wxLjAyLTYtNC4zNS00LjI0Yy0uODYtLjg0LS4zOS0yLjMuOC0yLjQ4bDYuMDItLjg3IDIuNy01LjQ1Wk0yNyAyMC41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS05LjE1LTMuMzVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NS0yLjY0IDIuNjVhLjUuNSAwIDAgMCAuNy43bDIuNjUtMi42NCAyLjY1IDIuNjRhLjUuNSAwIDAgMCAuNy0uN2wtMi42NC0yLjY1IDIuNjQtMi42NWEuNS41IDAgMCAwLS43LS43bC0yLjY1IDIuNjQtMi42NS0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckVkaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRWRpdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuOSAyLjlhMSAxIDAgMCAwLTEuOCAwTDcuMTcgNi44bC00LjMxLjYzYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVsMy40My0xLjhjLjE2LS40LjQtLjc2LjctMS4wN2w0LjgzLTQuODNhMi44NyAyLjg3IDAgMCAxIDIuNjctLjc3IDEgMSAwIDAgMC0uNjMtMS42M2wtNC4zMS0uNjNMMTAuOSAyLjlabTQuOSA3LjY1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRWRpdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRWRpdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1bDMuNDMtMS44Yy4xNi0uNC40LS43Ni43LTEuMDdsLjEtLjA5YTEgMSAwIDAgMC0uODMuMDVsLTMuODcgMi4wMy43NC00LjNhMSAxIDAgMCAwLS4yOS0uODlMMyA4LjQzbDQuMzItLjYzYTEgMSAwIDAgMCAuNzUtLjU1TDEwIDMuMzVsMS45MyAzLjljLjE1LjMuNDMuNS43NS41NWw0LjMyLjYzLS43Mi43Yy40OC0uMTUgMS0uMTcgMS40OS0uMDZhMSAxIDAgMCAwLS42My0xLjYzbC00LjMxLS42M0wxMC45IDIuOVptNC45IDcuNjUtNC44MiA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJFZGl0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckVkaXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjIgMy4xYy0uNDktMS0xLjkyLTEtMi40MSAwTDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgxIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NiAxLjQybDIuOTQtMS41NC4zLTEuMjJjLjE3LS42NS41LTEuMjQuOTgtMS43Mmw1LjktNS45YTMuMjggMy4yOCAwIDAgMSA0LjM3LS4yM2MuNTMtLjguMDgtMS45NC0uOTMtMi4wOGwtNS4yNy0uNzdMMTMuMiAzLjFabTQuOSA4LjU3LTUuOSA1LjljLS4zNC4zNS0uNTguNzgtLjcgMS4yNWwtLjQ2IDEuODNjLS4yLjguNTIgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI0LS43bDUuOS01LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJFZGl0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFZGl0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuMiAzLjFjLS40OS0xLTEuOTItMS0yLjQxIDBMOC40MyA3Ljg4bC01LjI3Ljc3YTEuMzUgMS4zNSAwIDAgMC0uNzUgMi4zbDMuODEgMy43Mi0uOSA1LjI1YTEuMzUgMS4zNSAwIDAgMCAxLjk2IDEuNDJsMi45NS0xLjU1LjMtMS4yMWMuMDctLjI4LjE3LS41NS4zLS44bC0zLjk4IDIuMS44Ny01LjA0Yy4wNy0uNDMtLjA3LS44OC0uNC0xLjJMMy42OCAxMC4xbDUuMDUtLjc0Yy40NC0uMDYuODItLjM0IDEuMDItLjc0TDEyIDQuMDRsMi4yNiA0LjU3Yy4yLjQuNTcuNjggMS4wMS43NGw0LjQ1LjY1Yy43MyAwIDEuNDYuMjQgMi4wNS43Mi41My0uNzkuMDgtMS45My0uOTMtMi4wN2wtNS4yNy0uNzdMMTMuMiAzLjFabTQuOSA4LjU3LTUuOSA1LjljLS4zNC4zNS0uNTguNzgtLjcgMS4yNWwtLjQ2IDEuODNjLS4yLjguNTIgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI0LS43bDUuOS01LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJFbXBoYXNpczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFbXBoYXNpczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNy4yIDIuMWEuOS45IDAgMCAxIDEuNiAwbDEuNTMgMy4wOCAzLjQuNWEuOS45IDAgMCAxIC41IDEuNTNsLTIuNDYgMi40LjU4IDMuMzlhLjkuOSAwIDAgMS0xLjMuOTVMOCAxMi4zNWwtMy4wNCAxLjZhLjkuOSAwIDAgMS0xLjMtLjk1bC41Ny0zLjM5LTIuNDYtMi40YS45LjkgMCAwIDEgLjUtMS41M2wzLjQtLjVMNy4yIDIuMVptLTcuMS4xYS41LjUgMCAwIDEgLjctLjFsMiAxLjVhLjUuNSAwIDAgMS0uNi44bC0yLTEuNWEuNS41IDAgMCAxLS4xLS43Wm0xNS4xLS4xYS41LjUgMCAwIDEgLjYuOGwtMiAxLjVhLjUuNSAwIDAgMS0uNi0uOGwyLTEuNVpNLjEgMTIuM2EuNS41IDAgMCAwIC43LjFsMi0xLjVhLjUuNSAwIDAgMC0uNi0uOGwtMiAxLjVhLjUuNSAwIDAgMC0uMS43Wm0xNS4xLjFhLjUuNSAwIDAgMCAuNi0uOGwtMi0xLjVhLjUuNSAwIDAgMC0uNi44bDIgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckVtcGhhc2lzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFbXBoYXNpczE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcuMiAyLjFhLjkuOSAwIDAgMSAxLjYgMGwxLjUzIDMuMDggMy40LjVhLjkuOSAwIDAgMSAuNSAxLjUzbC0yLjQ2IDIuNC41OCAzLjM5YS45LjkgMCAwIDEtMS4zLjk1TDggMTIuMzVsLTMuMDQgMS42YS45LjkgMCAwIDEtMS4zLS45NWwuNTctMy4zOS0yLjQ2LTIuNGEuOS45IDAgMCAxIC41LTEuNTNsMy40LS41TDcuMiAyLjFabS44LjYzTDYuNTUgNS42N2EuOS45IDAgMCAxLS42OC41bC0zLjI1LjQ3IDIuMzUgMi4zYy4yMS4yLjMuNS4yNi43OWwtLjU2IDMuMjQgMi45MS0xLjUzYS45LjkgMCAwIDEgLjg0IDBsMi45IDEuNTMtLjU1LTMuMjRhLjkuOSAwIDAgMSAuMjYtLjhsMi4zNi0yLjMtMy4yNi0uNDZhLjkuOSAwIDAgMS0uNjctLjVMOCAyLjczWk0uMSAyLjJhLjUuNSAwIDAgMSAuNy0uMWwyIDEuNWEuNS41IDAgMCAxLS42LjhsLTItMS41YS41LjUgMCAwIDEtLjEtLjdabTE1LjEtLjFhLjUuNSAwIDAgMSAuNi44bC0yIDEuNWEuNS41IDAgMCAxLS42LS44bDItMS41Wk0uMSAxMi4zYS41LjUgMCAwIDAgLjcuMWwyLTEuNWEuNS41IDAgMCAwLS42LS44bC0yIDEuNWEuNS41IDAgMCAwLS4xLjdabTE1LjEuMWEuNS41IDAgMCAwIC42LS44bC0yLTEuNWEuNS41IDAgMCAwLS42LjhsMiAxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRW1waGFzaXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRW1waGFzaXMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0zLjEyIDMuMDUuNzMgNC4zYTEgMSAwIDAgMS0xLjQ1IDEuMDVMMTAgMTUuNTFsLTMuODYgMi4wM2ExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVpNNC40IDEyLjY5YS41LjUgMCAwIDEtLjA4LjdsLTIuNSAyYS41LjUgMCAxIDEtLjYyLS43OGwyLjUtMmEuNS41IDAgMCAxIC43LjA4Wk00LjMxIDUuMWEuNS41IDAgMSAxLS42Mi43OGwtMi41LTJhLjUuNSAwIDEgMSAuNjItLjc4bDIuNSAyWm0xMS4zIDcuNThhLjUuNSAwIDAgMCAuMDguN2wyLjUgMmEuNS41IDAgMSAwIC42Mi0uNzhsLTIuNS0yYS41LjUgMCAwIDAtLjcuMDhabS4wOC03LjU4YS41LjUgMCAwIDAgLjYyLjc4bDIuNS0yYS41LjUgMCAxIDAtLjYyLS43OGwtMi41IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRW1waGFzaXMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckVtcGhhc2lzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLTMuMTIgMy4wNS43MyA0LjNhMSAxIDAgMCAxLTEuNDUgMS4wNUwxMCAxNS41MWwtMy44NiAyLjAzYTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wm0uOS40NEw4LjA3IDcuMjVhMSAxIDAgMCAxLS43NS41NUwzIDguNDNsMy4xMiAzLjA0YTEgMSAwIDAgMSAuMy44OWwtLjc1IDQuMyAzLjg3LTIuMDNhMSAxIDAgMCAxIC45MyAwbDMuODYgMi4wMy0uNzQtNC4zYTEgMSAwIDAgMSAuMjktLjg5TDE3IDguNDNsLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVaTTQuNCAxMi43YS41LjUgMCAwIDEtLjA4LjdsLTIuNSAyYS41LjUgMCAxIDEtLjYyLS43OGwyLjUtMmEuNS41IDAgMCAxIC43LjA4Wk00LjMxIDUuMWEuNS41IDAgMSAxLS42Mi43OGwtMi41LTJhLjUuNSAwIDEgMSAuNjItLjc4bDIuNSAyWm0xMS4zIDcuNThhLjUuNSAwIDAgMCAuMDguN2wyLjUgMmEuNS41IDAgMSAwIC42Mi0uNzhsLTIuNS0yYS41LjUgMCAwIDAtLjcuMDhabS4wOC03LjU4YS41LjUgMCAwIDAgLjYyLjc4bDIuNS0yYS41LjUgMCAxIDAtLjYyLS43OGwtMi41IDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRW1waGFzaXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRW1waGFzaXMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEzLjIxIDMuMWMtLjUtMS0xLjkzLTEtMi40MiAwTDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgyIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NSAxLjQyTDEyIDE4Ljg2bDQuNzIgMi40OGMuOTkuNTIgMi4xNC0uMzIgMS45Ni0xLjQybC0uOS01LjI1IDMuODEtMy43MmMuOC0uNzguMzYtMi4xNC0uNzUtMi4zbC01LjI3LS43N0wxMy4yIDMuMVptLTEyLjA1LjY4Yy0uMjUuMzItLjIuOC4xMiAxLjA2bDIuNSAyYS43NS43NSAwIDEgMCAuOTQtMS4xOGwtMi41LTJhLjc1Ljc1IDAgMCAwLTEuMDYuMTJabTIxLjY4IDE0LjQ0Yy4yNS0uMzMuMi0uOC0uMTItMS4wNmwtMi41LTJhLjc1Ljc1IDAgMCAwLS45NCAxLjE4bDIuNSAyYy4zMi4yNS44LjIgMS4wNi0uMTJaTTEuMjggMTcuMTZhLjc1Ljc1IDAgMSAwIC45NCAxLjE4bDIuNS0yYS43NS43NSAwIDAgMC0uOTQtMS4xOGwtMi41IDJaTTIyLjg0IDMuNzhjLjI1LjMyLjIuOC0uMTIgMS4wNmwtMi41IDJhLjc1Ljc1IDAgMCAxLS45NC0xLjE4bDIuNS0yYy4zMi0uMjUuOC0uMiAxLjA2LjEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckVtcGhhc2lzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFbXBoYXNpczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjIgMy4xYy0uNDktMS0xLjkyLTEtMi40MSAwTDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgxIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NiAxLjQyTDEyIDE4Ljg2bDQuNzEgMi40OGMxIC41MiAyLjE1LS4zMiAxLjk2LTEuNDJsLS45LTUuMjUgMy44Mi0zLjcyYy44LS43OC4zNi0yLjE0LS43NS0yLjNsLTUuMjctLjc3TDEzLjIgMy4xWk05Ljc1IDguNjEgMTIgNC4wNGwyLjI2IDQuNTdjLjIuNC41Ny42OCAxLjAxLjc0bDUuMDUuNzQtMy42NSAzLjU2Yy0uMzIuMy0uNDYuNzYtLjM5IDEuMmwuODYgNS4wMi00LjUxLTIuMzdjLS40LS4yLS44Ny0uMi0xLjI2IDBsLTQuNTIgMi4zNy44Ny01LjAzYy4wNy0uNDMtLjA3LS44OC0uNC0xLjJMMy42OCAxMC4xbDUuMDUtLjc0Yy40NC0uMDYuODItLjM0IDEuMDItLjc0Wk0xLjE2IDMuNzhjLS4yNS4zMi0uMi44LjEyIDEuMDZsMi41IDJhLjc1Ljc1IDAgMSAwIC45NC0xLjE4bC0yLjUtMmEuNzUuNzUgMCAwIDAtMS4wNi4xMlptMjEuNjggMTQuNDRjLjI1LS4zMy4yLS44LS4xMi0xLjA2bC0yLjUtMmEuNzUuNzUgMCAwIDAtLjk0IDEuMThsMi41IDJjLjMyLjI1LjguMiAxLjA2LS4xMlpNMS4yOCAxNy4xNmEuNzUuNzUgMCAxIDAgLjk0IDEuMThsMi41LTJhLjc1Ljc1IDAgMCAwLS45NC0xLjE4bC0yLjUgMlpNMjIuODQgMy43OGMuMjUuMzIuMi44LS4xMiAxLjA2bC0yLjUgMmEuNzUuNzUgMCAwIDEtLjk0LTEuMThsMi41LTJjLjMyLS4yNS44LS4yIDEuMDYuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyRW1waGFzaXMzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyRW1waGFzaXMzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTE3LjM1IDMuODRhMS41IDEuNSAwIDAgMC0yLjcgMGwtMy4yIDYuNTItNy4xNyAxLjA1YTEuNSAxLjUgMCAwIDAtLjgzIDIuNTVsNS4yIDUuMS0xLjIzIDcuMThhMS41IDEuNSAwIDAgMCAyLjE4IDEuNThsNi40LTMuMzggNi40IDMuMzhhMS41IDEuNSAwIDAgMCAyLjE4LTEuNThsLTEuMjItNy4xOCA1LjItNS4xYTEuNSAxLjUgMCAwIDAtLjg0LTIuNTVsLTcuMTctMS4wNS0zLjItNi41MlpNMi4yOSA1LjE2YTEgMSAwIDAgMSAxLjQyIDBsMyAzYTEgMSAwIDAgMS0xLjQyIDEuNDJsLTMtM2ExIDEgMCAwIDEgMC0xLjQyWm0yMyAzYTEgMSAwIDAgMCAxLjQyIDEuNDJsMy0zYTEgMSAwIDAgMC0xLjQyLTEuNDJsLTMgM1ptLTIzIDE2LjQyYTEgMSAwIDAgMSAwLTEuNDJsMy0zYTEgMSAwIDAgMSAxLjQyIDEuNDJsLTMgM2ExIDEgMCAwIDEtMS40MiAwWm0yMy00LjQyYTEgMSAwIDAgMSAxLjQyIDBsMyAzYTEgMSAwIDAgMS0xLjQyIDEuNDJsLTMtM2ExIDEgMCAwIDEgMC0xLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckVtcGhhc2lzMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJFbXBoYXNpczMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTE4Ljc1IDExLjI0IDE2IDUuNjRsLTIuNzUgNS42YTIgMiAwIDAgMS0xLjUgMS4xbC02LjE4LjkgNC40OCA0LjRhMiAyIDAgMCAxIC41NyAxLjc2bC0xLjA2IDYuMTggNS41LTIuOTFhMiAyIDAgMCAxIDEuODggMGw1LjUgMi45MS0xLjA2LTYuMThhMiAyIDAgMCAxIC41OC0xLjc3bDQuNDctNC4zOS02LjE3LS45YTIgMiAwIDAgMS0xLjUtMS4xWm0tNC4xLTcuNGExLjUgMS41IDAgMCAxIDIuNyAwbDMuMiA2LjUyIDcuMTcgMS4wNWExLjUgMS41IDAgMCAxIC44MyAyLjU1bC01LjIgNS4xIDEuMjMgNy4xOGExLjUgMS41IDAgMCAxLTIuMTggMS41OEwxNiAyNC40NGwtNi40IDMuMzhhMS41IDEuNSAwIDAgMS0yLjE4LTEuNThsMS4yMy03LjE4LTUuMi01LjFhMS41IDEuNSAwIDAgMSAuODMtMi41NWw3LjE4LTEuMDUgMy4yLTYuNTJaTTIuMyA1LjE2YTEgMSAwIDAgMSAxLjQyIDBsMyAzYTEgMSAwIDAgMS0xLjQyIDEuNDJsLTMtM2ExIDEgMCAwIDEgMC0xLjQyWm0yMyAzYTEgMSAwIDAgMCAxLjQyIDEuNDJsMy0zYTEgMSAwIDAgMC0xLjQyLTEuNDJsLTMgM1ptLTIzIDE2LjQyYTEgMSAwIDAgMSAwLTEuNDJsMy0zYTEgMSAwIDAgMSAxLjQyIDEuNDJsLTMgM2ExIDEgMCAwIDEtMS40MiAwWm0yMy00LjQyYTEgMSAwIDAgMSAxLjQyIDBsMyAzYTEgMSAwIDAgMS0xLjQyIDEuNDJsLTMtM2ExIDEgMCAwIDEgMC0xLjQyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckhhbGYxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFySGFsZjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxLjFhLjguOCAwIDAgMC0uNzIuNDVMNC4xOCAzLjhsLTIuNS4zNmEuOC44IDAgMCAwLS40NCAxLjM2bDEuOCAxLjc2LS40MiAyLjQ3YS44LjggMCAwIDAgMS4xNi44NUw2IDkuNDNWMS4xWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckhhbGYxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckhhbGYxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02IDkuNDMgMy43OCAxMC42YS44LjggMCAwIDEtMS4xNi0uODVsLjQyLTIuNDctMS44LTEuNzZhLjguOCAwIDAgMSAuNDUtMS4zNmwyLjQ4LS4zNiAxLjExLTIuMjVBLjguOCAwIDAgMSA2IDEuMWEuOC44IDAgMCAxIC43Mi40NUw3LjgzIDMuOGwyLjQ5LjM2Yy42NS4xLjkxLjkuNDQgMS4zNmwtMS44IDEuNzYuNDMgMi40N2EuOC44IDAgMCAxLTEuMTcuODVMNiA5LjQzWm0wLTcuMDhWOC40YS44LjggMCAwIDEgLjM3LjFsMS45NiAxLjAyLS4zNy0yLjE4YS44LjggMCAwIDEgLjIzLS43bDEuNTgtMS41NS0yLjE5LS4zMmEuOC44IDAgMCAxLS42LS40M0w2IDIuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFySGFsZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJIYWxmMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04IDEuNmEuODkuODkgMCAwIDAtLjguNUw1LjY2IDUuMThsLTMuNC41YS45LjkgMCAwIDAtLjUgMS41M2wyLjQ2IDIuNEwzLjY1IDEzYS45LjkgMCAwIDAgMS4zLjk1TDggMTIuMzVWMS42WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckhhbGYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckhhbGYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjY3IDUuMTggNy4yIDIuMWMuMTctLjMzLjQ5LS41LjgxLS41LjMyIDAgLjY0LjE3LjguNWwxLjUzIDMuMDggMy40LjVhLjkuOSAwIDAgMSAuNSAxLjUzbC0yLjQ2IDIuNC41OCAzLjM5YS45LjkgMCAwIDEtMS4zLjk1TDggMTIuMzVsLTMuMDQgMS42YS45LjkgMCAwIDEtMS4zLS45NWwuNTctMy4zOS0yLjQ2LTIuNGEuOS45IDAgMCAxIC41LTEuNTNsMy40LS41Wk04IDExLjM0YS45LjkgMCAwIDEgLjQyLjFsMi45IDEuNTMtLjU1LTMuMjRhLjkuOSAwIDAgMSAuMjYtLjhsMi4zNi0yLjMtMy4yNi0uNDZhLjkuOSAwIDAgMS0uNjctLjVMOCAyLjczdjguNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJIYWxmMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckhhbGYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDIuMzRhLjk5Ljk5IDAgMCAwLS45LjU2TDcuMTcgNi44bC00LjMxLjYzYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVMMTAgMTUuNTFWMi4zNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJIYWxmMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJIYWxmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4xIDIuOWEuOTkuOTkgMCAwIDEgLjktLjU2Yy4zNiAwIC43MS4xOS45LjU2bDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0zLjEyIDMuMDUuNzMgNC4zYTEgMSAwIDAgMS0xLjQ1IDEuMDVMMTAgMTUuNTFsLTMuODYgMi4wM2ExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVpNMTAgMTQuNWExIDEgMCAwIDEgLjQ3LjEybDMuODYgMi4wMy0uNzQtNC4zYTEgMSAwIDAgMSAuMjktLjg5TDE3IDguNDNsLTQuMzItLjYzYTEgMSAwIDAgMS0uNzUtLjU1TDEwIDMuMzVWMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJIYWxmMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckhhbGYyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDIuMzVjLS40OCAwLS45Ni4yNS0xLjIxLjc1TDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgxIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NiAxLjQyTDEyIDE4Ljg2VjIuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFySGFsZjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFySGFsZjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDIuMzVjLS40OCAwLS45Ni4yNS0xLjIxLjc1TDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgxIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NiAxLjQyTDEyIDE4Ljg2bDQuNzEgMi40OGMxIC41MiAyLjE1LS4zMiAxLjk2LTEuNDJsLS45LTUuMjUgMy44Mi0zLjcyYy44LS43OC4zNi0yLjE0LS43NS0yLjNsLTUuMjctLjc3TDEzLjIgMy4xYy0uMjUtLjUtLjczLS43NS0xLjIxLS43NVptMCAxNVY0LjA0bDIuMjYgNC41NmMuMi40LjU3LjY4IDEuMDEuNzRsNS4wNS43NC0zLjY1IDMuNTZjLS4zMi4zLS40Ni43Ni0uMzkgMS4ybC44NiA1LjAyLTQuNTEtMi4zN2MtLjItLjEtLjQxLS4xNi0uNjMtLjE2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckhhbGYyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFySGFsZjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMy4xYy0uNTIgMC0xLjAzLjI3LTEuMy44bC0yLjY5IDUuNDYtNi4wMi44N2ExLjQ1IDEuNDUgMCAwIDAtLjggMi40OGw0LjM1IDQuMjQtMS4wMiA2YTEuNDUgMS40NSAwIDAgMCAyLjEgMS41MkwxNCAyMS42NVYzLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFySGFsZjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFySGFsZjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTEyLjcgMy45Yy4yNy0uNTMuNzgtLjggMS4zLS44czEuMDQuMjcgMS4zLjhMMTggOS4zN2w2LjAxLjg3YTEuNDUgMS40NSAwIDAgMSAuOCAyLjQ4bC00LjM1IDQuMjQgMS4wMyA2YTEuNDUgMS40NSAwIDAgMS0yLjEgMS41MkwxNCAyMS42NGwtNS4zOCAyLjgzYTEuNDUgMS40NSAwIDAgMS0yLjEtMS41MmwxLjAyLTYtNC4zNS00LjI0Yy0uODYtLjg0LS4zOS0yLjMuOC0yLjQ4bDYuMDItLjg3IDIuNy01LjQ1Wk0xNCAyMC4xNWMuMjMgMCAuNDcuMDUuNjguMTZsNS4zMSAyLjgtMS4wMS01LjkyYy0uMDgtLjQ3LjA3LS45NS40MS0xLjI4bDQuMy00LjItNS45NC0uODZhMS40NSAxLjQ1IDAgMCAxLTEuMS0uOEwxNCA0LjY3djE1LjQ4WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckxpbmVIb3Jpem9udGFsMzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJMaW5lSG9yaXpvbnRhbDMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTguOCAyLjFhLjkuOSAwIDAgMC0xLjYgMEw1LjY2IDUuMThsLTMuNC41YS45LjkgMCAwIDAtLjUgMS41M2wyLjQ2IDIuNEwzLjY1IDEzYS45LjkgMCAwIDAgMS4zLjk1TDggMTIuMzVsLjQ4LjI1QTEuNSAxLjUgMCAwIDEgOS41IDEwYTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAxIDEgMC0zaC4yNGwtLjkzLTEuOVpNOS41IDVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMCAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVabTAgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAxIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckxpbmVIb3Jpem9udGFsMzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyTGluZUhvcml6b250YWwzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVMOCAxMi4zNWwuNDguMjVhMS41IDEuNSAwIDAgMS0uNDctMS4yNi45LjkgMCAwIDAtLjQzLjFsLTIuOSAxLjUzLjU1LTMuMjRhLjkuOSAwIDAgMC0uMjYtLjhsLTIuMzUtMi4zIDMuMjUtLjQ2YS45LjkgMCAwIDAgLjY4LS41TDggMi43M2wuNzMgMS40OGMuMjMtLjEzLjQ5LS4yMS43Ny0uMjFoLjI0bC0uOTMtMS45Wk05LjUgNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01Wm0wIDNhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVptMCAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDEgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyTGluZUhvcml6b250YWwzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckxpbmVIb3Jpem9udGFsMzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuOSAyLjlhMSAxIDAgMCAwLTEuOCAwTDcuMTcgNi44bC00LjMxLjYzYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVMMTEgMTQuOThWMTMuNWMwLS44My42Ny0xLjUgMS41LTEuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxLS4wNy0zTDEwLjkgMi45Wm0xLjYgNy4xYS41LjUgMCAxIDAgMCAxaDVhLjUuNSAwIDEgMCAwLTFoLTVaTTEyIDcuNWMwLS4yOC4yMy0uNS41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNVptLjUgNS41YS41LjUgMCAxIDAgMCAxaDVhLjUuNSAwIDEgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyTGluZUhvcml6b250YWwzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJMaW5lSG9yaXpvbnRhbDMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk05LjEgMi45YTEgMSAwIDAgMSAxLjggMEwxMi45MiA3aDQuNThhLjUuNSAwIDEgMSAwIDFoLTQuNThhMSAxIDAgMCAxLS45LS41NkwxMCAzLjM0IDguMDcgNy4yNWExIDEgMCAwIDEtLjc1LjU1TDMgOC40M2wzLjEyIDMuMDRhMSAxIDAgMCAxIC4zLjg5bC0uNzUgNC4zIDQuMS0yLjE2YS41LjUgMCAwIDEgLjQ2Ljg5bC00LjA5IDIuMTVhMSAxIDAgMCAxLTEuNDUtMS4wNWwuNzQtNC4zTDIuMyA5LjE0YTEgMSAwIDAgMSAuNTYtMS43bDQuMzEtLjYzTDkuMSAyLjlabTIuOSA3LjZjMC0uMjguMjItLjUuNS0uNWg1YS41LjUgMCAxIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjVabS41IDIuNWEuNS41IDAgMSAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhckxpbmVIb3Jpem9udGFsMzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJMaW5lSG9yaXpvbnRhbDMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjc5IDMuMWMuNS0xIDEuOTItMSAyLjQyIDBsMS42OSAzLjQzYTIuMjUgMi4yNSAwIDAgMC0uNjggNC4yMiAyLjI1IDIuMjUgMCAwIDAgMCA0IDIuMjUgMi4yNSAwIDAgMC0uNzcgMy4zNWwtNi4xNyAzLjI0YTEuMzUgMS4zNSAwIDAgMS0xLjk2LTEuNDJsLjktNS4yNS0zLjgxLTMuNzJjLS44LS43OC0uMzYtMi4xNC43NS0yLjNsNS4yNy0uNzcgMi4zNi00Ljc4Wm0zLjcxIDEzLjY1YzAtLjQxLjM0LS43NS43NS0uNzVoNmEuNzUuNzUgMCAwIDEgMCAxLjVoLTZhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAtNGMwLS40MS4zNC0uNzUuNzUtLjc1aDZhLjc1Ljc1IDAgMCAxIDAgMS41aC02YS43NS43NSAwIDAgMS0uNzUtLjc1Wm0wLTRjMC0uNDEuMzQtLjc1Ljc1LS43NWg2YS43NS43NSAwIDAgMSAwIDEuNWgtNmEuNzUuNzUgMCAwIDEtLjc1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJMaW5lSG9yaXpvbnRhbDMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhckxpbmVIb3Jpem9udGFsMzI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEzLjIgMy4xYy0uNDktMS0xLjkyLTEtMi40MSAwTDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgxIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NiAxLjQybDUuMDctMi42NmEuNzUuNzUgMCAxIDAtLjctMS4zM2wtNC44IDIuNTIuODctNS4wM2MuMDctLjQzLS4wNy0uODgtLjQtMS4yTDMuNjggMTAuMWw1LjA1LS43NGMuNDQtLjA2LjgyLS4zNCAxLjAyLS43NEwxMiA0LjA0bDIuNDkgNS4wNGMuMTIuMjYuMzguNDIuNjcuNDJoNi4wOWEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNjJMMTMuMiAzLjFabTEuMyA5LjY1YzAtLjQxLjM0LS43NS43NS0uNzVoNmEuNzUuNzUgMCAwIDEgMCAxLjVoLTZhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTAgNGMwLS40MS4zNC0uNzUuNzUtLjc1aDZhLjc1Ljc1IDAgMCAxIDAgMS41aC02YS43NS43NSAwIDAgMS0uNzUtLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9mZjEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTEuODUgMS4xNWEuNS41IDAgMSAwLS43LjdsMi4wOCAyLjA5LTEuNTQuMjJhLjguOCAwIDAgMC0uNDUgMS4zNmwxLjggMS43Ni0uNDIgMi40N2EuOC44IDAgMCAwIDEuMTYuODVMNiA5LjQzbDIuMjIgMS4xN2EuOC44IDAgMCAwIDEuMTUtLjUybC43OC43N2EuNS41IDAgMCAwIC43LS43bC05LTlabTguOSA0LjM3TDkuMTkgNy4wNiA0Ljc1IDIuNjNsLjUzLTEuMDhhLjguOCAwIDAgMSAxLjQ0IDBMNy44MyAzLjhsMi40OS4zNmMuNjUuMS45MS45LjQ0IDEuMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT2ZmMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIm0xLjg1IDEuMTUgOSA5YS41LjUgMCAwIDEtLjcuN2wtLjc4LS43N2EuOC44IDAgMCAxLTEuMTUuNTJMNiA5LjQzIDMuNzggMTAuNmEuOC44IDAgMCAxLTEuMTYtLjg1bC40Mi0yLjQ3LTEuOC0xLjc2YS44LjggMCAwIDEgLjQ1LTEuMzZsMS41NC0uMjItMi4wOC0yLjA5YS41LjUgMCAxIDEgLjctLjdabTYuMzggNy43OUw0LjExIDQuODJsLTEuODguMjcgMS41OCAxLjU0YS44LjggMCAwIDEgLjIzLjcxbC0uMzcgMi4xOEw1LjYzIDguNWEuOC44IDAgMCAxIC43NCAwbDEuOTYgMS4wMy0uMS0uNThabTEuNTQtMy44NS0xLjMgMS4yNi43MS43MSAxLjU4LTEuNTRhLjguOCAwIDAgMC0uNDQtMS4zNkw3LjgzIDMuOCA2LjcyIDEuNTVhLjguOCAwIDAgMC0xLjQ0IDBsLS41MyAxLjA4Ljc1Ljc0LjUtMS4wMi45OCAxLjk5Yy4xMi4yMy4zNC40LjYuNDNsMi4yLjMyWlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTEyLjM2IDEzLjA2IDEuNzkgMS44YS41LjUgMCAwIDAgLjctLjcxbC0xMy0xM2EuNS41IDAgMSAwLS43LjdsMy40OCAzLjQ5LTIuMzYuMzRhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVMOCAxMi4zNWwzLjA0IDEuNmEuOS45IDAgMCAwIDEuMzItLjg4Wm0tLjYtMy40NS4wMi4wNEw2LjIgNC4xIDcuMiAyLjFhLjkuOSAwIDAgMSAxLjYyIDBsMS41MiAzLjA4IDMuNC41YS45LjkgMCAwIDEgLjUgMS41M2wtMi40NiAyLjRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT2ZmMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi4zNiAxMy4wNmEuOS45IDAgMCAxLTEuMzIuODlMOCAxMi4zNWwtMy4wNCAxLjZhLjkuOSAwIDAgMS0xLjMtLjk1bC41Ny0zLjM5LTIuNDYtMi40YS45LjkgMCAwIDEgLjUtMS41M2wyLjM2LS4zNC0zLjQ4LTMuNDlhLjUuNSAwIDEgMSAuNy0uN2wxMyAxM2EuNS41IDAgMCAxLS43LjdsLTEuOC0xLjc5Wm0tMS4yMi0xLjIyTDUuNSA2LjIybC0yLjkuNDIgMi4zNiAyLjNjLjIxLjIuMy41LjI2Ljc5bC0uNTYgMy4yNCAyLjkxLTEuNTNhLjkuOSAwIDAgMSAuODQgMGwyLjkgMS41My0uMTgtMS4xM1ptMi4yNS01LjItMi4zNSAyLjI4Ljc0LjczLS4wMS0uMDQgMi40Ni0yLjRhLjkuOSAwIDAgMC0uNS0xLjUzbC0zLjQtLjVMOC44IDIuMWEuOS45IDAgMCAwLTEuNjIgMGwtLjk4IDIgLjc1Ljc0TDggMi43M2wxLjQ2IDIuOTRhLjkuOSAwIDAgMCAuNjcuNWwzLjI2LjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIuODYgMi4xNWEuNS41IDAgMSAwLS43MS43bDQuMSA0LjEtMy40LjQ5YTEgMSAwIDAgMC0uNTUgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVMMTAgMTUuNTFsMy44NiAyLjAzYTEgMSAwIDAgMCAxLjQ1LTEuMDVsLS4xLS41NyAxLjk0IDEuOTNhLjUuNSAwIDAgMCAuNy0uN2wtMTUtMTVabTExLjcyIDEwLjA0LjA1LjMyLTYuODctNi44OEw5LjEgMi45YTEgMSAwIDAgMSAxLjggMGwxLjkzIDMuOTEgNC4zMS42M2ExIDEgMCAwIDEgLjU2IDEuN2wtMy4xMiAzLjA1WlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMi44NiAyLjE1YS41LjUgMCAxIDAtLjcxLjdsNC4xIDQuMS0zLjQuNDlhMSAxIDAgMCAwLS41NSAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNUwxMCAxNS41MWwzLjg2IDIuMDNhMSAxIDAgMCAwIDEuNDUtMS4wNWwtLjEtLjU3IDEuOTQgMS45M2EuNS41IDAgMCAwIC43LS43bC0xNS0xNVpNMTMuOTkgMTQuN2wuMzQgMS45Ni0zLjg2LTIuMDNhMSAxIDAgMCAwLS45MyAwbC0zLjg3IDIuMDMuNzQtNC4zYTEgMSAwIDAgMC0uMjktLjg5TDMgOC40M2w0LjEyLS42TDE0IDE0LjdabS0uMTEtMy4yM2ExIDEgMCAwIDAtLjEzLjE2bC44OC44OC0uMDUtLjMyIDMuMTItMy4wNWExIDEgMCAwIDAtLjU2LTEuN2wtNC4zMS0uNjNMMTAuOSAyLjlhMSAxIDAgMCAwLTEuOCAwTDcuNzYgNS42M2wuNzQuNzVMMTAgMy4zNGwxLjkzIDMuOTFjLjE1LjMuNDMuNS43NS41NWw0LjMyLjYzLTMuMTIgMy4wNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPZmYyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT2ZmMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw0LjggNC44LTMuODYuNTdhMS4zNSAxLjM1IDAgMCAwLS43NSAyLjNsMy44MiAzLjcyLS45IDUuMjVhMS4zNSAxLjM1IDAgMCAwIDEuOTUgMS40MkwxMiAxOC44Nmw0LjcyIDIuNDhjLjk5LjUyIDIuMTQtLjMyIDEuOTYtMS40MmwtLjA0LS4yMiAyLjA4IDIuMDhhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNkwzLjI4IDIuMjJabTE4LjMxIDguNzMtMy43OCAzLjY4LTguNS04LjUxIDEuNDgtMy4wMmMuNS0xIDEuOTMtMSAyLjQyIDBsMi4zNiA0Ljc4IDUuMjcuNzdjMS4xLjE2IDEuNTUgMS41Mi43NSAyLjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT2ZmMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw0LjggNC44LTMuODYuNTdhMS4zNSAxLjM1IDAgMCAwLS43NSAyLjNsMy44MSAzLjcyLS45IDUuMjVhMS4zNSAxLjM1IDAgMCAwIDEuOTYgMS40MkwxMiAxOC44Nmw0LjcxIDIuNDhjMSAuNTIgMi4xNS0uMzIgMS45Ni0xLjQybC0uMDQtLjIyIDIuMDkgMi4wOGEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlpNMTYuOCAxNy44NmwuMzQgMi4wMS00LjUxLTIuMzdjLS40LS4yLS44Ny0uMi0xLjI2IDBsLTQuNTIgMi4zNy44Ny01LjAzYy4wNy0uNDMtLjA3LS44OC0uNC0xLjJMMy42OCAxMC4xbDQuNjgtLjY4IDguNDUgOC40NVptMy41Mi03Ljc3LTMuNTcgMy40OCAxLjA2IDEuMDYgMy43OC0zLjY4Yy44LS43OC4zNi0yLjE0LS43NS0yLjNsLTUuMjctLjc3TDEzLjIgMy4xYy0uNS0xLTEuOTMtMS0yLjQyIDBMOS4zIDYuMTJsMS4xMiAxLjEyTDEyIDQuMDRsMi4yNiA0LjU3Yy4yLjQuNTcuNjggMS4wMS43NGw1LjA1Ljc0WlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9mZjI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMuMjggMi4yMmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDYuMyA2LjMtNC41My42NmExLjQ1IDEuNDUgMCAwIDAtLjggMi40N2w0LjM1IDQuMjQtMS4wMyA2YTEuNDUgMS40NSAwIDAgMCAyLjEgMS41MkwxNCAyMS42NGw1LjM4IDIuODNjMS4wNy41NiAyLjMtLjM0IDIuMS0xLjUybC0uMDgtLjQ5IDMuMzIgMy4zMmEuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDMuMjggMi4yMlptNy41NyA1LjQ0IDkuNjcgOS42OC0uMDYtLjM5IDQuMzUtNC4yNGMuODYtLjg0LjM5LTIuMy0uOC0yLjQ3bC02LjAyLS44OC0yLjY5LTUuNDVhMS40NSAxLjQ1IDAgMCAwLTIuNiAwbC0xLjg1IDMuNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT2ZmMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPZmYyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIm0zLjI4IDIuMjIgMjIuNSAyMi41YS43NS43NSAwIDAgMS0xLjA2IDEuMDZsLTMuMzItMy4zMi4wOS40OWExLjQ1IDEuNDUgMCAwIDEtMi4xIDEuNTJMMTQgMjEuNjRsLTUuMzggMi44M2ExLjQ1IDEuNDUgMCAwIDEtMi4xLTEuNTJsMS4wMi02LTQuMzUtNC4yNGMtLjg2LS44NC0uMzktMi4zLjgtMi40N2w0LjUzLS42Ni02LjMtNi4zYS43NS43NSAwIDEgMSAxLjA2LTEuMDZabTE2LjI5IDE4LjRMOS44NCAxMC45bC01LjUzLjggNC4zIDQuMmMuMzQuMzMuNS44MS40MSAxLjI4TDguMDEgMjMuMWw1LjMxLTIuOGMuNDMtLjIyLjkzLS4yMiAxLjM1IDBMMjAgMjMuMWwtLjQyLTIuNDdaTTEwLjg1IDcuNjdsMS4xMiAxLjEyTDE0IDQuNjZsMi42NiA1LjM5Yy4yLjQzLjYyLjcyIDEuMDkuOGw1Ljk0Ljg2LTQuMyA0LjE5LS4xNS4xNiAxLjI4IDEuMjgtLjA2LS4zOSA0LjM1LTQuMjRjLjg2LS44NC4zOS0yLjMtLjgtMi40N2wtNi4wMi0uODgtMi42OS01LjQ1YTEuNDUgMS40NSAwIDAgMC0yLjYgMGwtMS44NSAzLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9uZVF1YXJ0ZXIxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT25lUXVhcnRlcjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNSAyLjEyIDQuMTcgMy44bC0yLjQ4LjM2YS44LjggMCAwIDAtLjQ1IDEuMzZsMS44IDEuNzYtLjQyIDIuNDdhLjg0Ljg0IDAgMCAwIDAgLjI2LjguOCAwIDAgMCAxLjE2LjU5TDUgOS45NVYyLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9uZVF1YXJ0ZXIxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3Rhck9uZVF1YXJ0ZXIxMlJlZ3VsYXInLCBcIjEyXCIsIFtcIk02LjcyIDEuNTVhLjguOCAwIDAgMC0xLjQ0IDBMNC4xOCAzLjhsLTIuNS4zNmEuOC44IDAgMCAwLS40NCAxLjM2bDEuOCAxLjc2LS40MiAyLjQ3YS44NC44NCAwIDAgMCAwIC4yNi44LjggMCAwIDAgMS4xNi41OUw2IDkuNDNsMi4yMiAxLjE3YS44LjggMCAwIDAgMS4xNy0uODVsLS40My0yLjQ3IDEuOC0xLjc2YS44LjggMCAwIDAtLjQ0LTEuMzZMNy44MyAzLjggNi43MiAxLjU1Wk01IDguODJWNC4zOGEuOC44IDAgMCAwIC4wMi0uMDRMNiAyLjM1bC45OCAxLjk5Yy4xMi4yMy4zNC40LjYuNDNsMi4yLjMyLTEuNiAxLjU0YS44LjggMCAwIDAtLjIyLjcxbC4zNyAyLjE4TDYuMzcgOC41YS44LjggMCAwIDAtLjc0IDBMNSA4LjgyWlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9uZVF1YXJ0ZXIxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT25lUXVhcnRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJtNiA0LjUyLS4zMy42Ni0zLjQuNWEuOS45IDAgMCAwLS41IDEuNTNsMi40NiAyLjRMMy42NSAxM2EuOS45IDAgMCAwIDEuMy45NUw2IDEzLjRWNC41MlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPbmVRdWFydGVyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPbmVRdWFydGVyMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVMOCAxMi4zNWwzLjA0IDEuNmEuOS45IDAgMCAwIDEuMy0uOTVsLS41Ny0zLjM5IDIuNDYtMi40YS45LjkgMCAwIDAtLjUtMS41M2wtMy40LS41TDguOCAyLjFaTTYgMTIuMjdWNi4xNGEuOS45IDAgMCAwIC41NS0uNDdMOCAyLjczbDEuNDYgMi45NGEuOS45IDAgMCAwIC42Ny41bDMuMjYuNDctMi4zNiAyLjNhLjkuOSAwIDAgMC0uMjYuNzlsLjU2IDMuMjQtMi45MS0xLjUzYS45LjkgMCAwIDAtLjg0IDBMNiAxMi4yN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPbmVRdWFydGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3Rhck9uZVF1YXJ0ZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTggNS4xNCA3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1TDggMTYuNTZWNS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPbmVRdWFydGVyMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJPbmVRdWFydGVyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuOSAyLjlhMSAxIDAgMCAwLTEuOCAwTDggNS4xM2wtLjgzIDEuNjgtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1TDEwIDE1LjUxbDMuODYgMi4wM2ExIDEgMCAwIDAgMS40NS0xLjA1bC0uNzMtNC4zIDMuMTItMy4wNWExIDEgMCAwIDAtLjU1LTEuN2wtNC4zMi0uNjNMMTAuOSAyLjlaTTggMTUuNDNWNy4zN2ExIDEgMCAwIDAgLjA3LS4xMkwxMCAzLjM1bDEuOTMgMy45Yy4xNS4zLjQzLjUuNzYuNTVsNC4zMS42My0zLjEyIDMuMDRhMSAxIDAgMCAwLS4yOS44OWwuNzQgNC4zLTMuODYtMi4wM2ExIDEgMCAwIDAtLjkzIDBsLTEuNTQuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJPbmVRdWFydGVyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3Rhck9uZVF1YXJ0ZXIyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTkgNi43Mi0uNTcgMS4xNi01LjI3Ljc3YTEuMzUgMS4zNSAwIDAgMC0uNzUgMi4zbDMuODEgMy43Mi0uOSA1LjI1YTEuMzUgMS4zNSAwIDAgMCAxLjk2IDEuNDJsMS43Mi0uOVY2LjcyWlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9uZVF1YXJ0ZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3Rhck9uZVF1YXJ0ZXIyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMy4yIDMuMWMtLjQ5LTEtMS45Mi0xLTIuNDEgMEw4LjQzIDcuODhsLTUuMjcuNzdhMS4zNSAxLjM1IDAgMCAwLS43NSAyLjNsMy44MSAzLjcyLS45IDUuMjVhMS4zNSAxLjM1IDAgMCAwIDEuOTYgMS40MmwxLjcyLS45IDMtMS41OCA0LjcxIDIuNDhjMSAuNTIgMi4xNS0uMzIgMS45Ni0xLjQybC0uOS01LjI1IDMuODItMy43MmMuOC0uNzguMzYtMi4xNC0uNzUtMi4zbC01LjI3LS43N0wxMy4yIDMuMVpNOSAxOC43NFY5LjI4Yy4zMi0uMTIuNTktLjM1Ljc0LS42N0wxMiA0LjA0bDIuMjYgNC41N2MuMi40LjU3LjY4IDEuMDEuNzRsNS4wNS43NC0zLjY1IDMuNTZjLS4zMi4zLS40Ni43Ni0uMzkgMS4ybC44NiA1LjAyLTQuNTEtMi4zN2MtLjQtLjItLjg3LS4yLTEuMjYgMEw5IDE4Ljc0WlwiXSk7XG5leHBvcnQgY29uc3QgU3Rhck9uZVF1YXJ0ZXIyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT25lUXVhcnRlcjI4RmlsbGVkJywgXCIyOFwiLCBbXCJtMTEgNy4zNi0uOTkgMi02LjAyLjg4YTEuNDUgMS40NSAwIDAgMC0uOCAyLjQ3bDQuMzUgNC4yNC0xLjAyIDZjLS4xMS42My4xOSAxLjE4LjY2IDEuNDcuNC4yNi45NC4zMiAxLjQ0LjA1TDExIDIzLjIyVjcuMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyT25lUXVhcnRlcjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyT25lUXVhcnRlcjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTE1LjMgMy45YTEuNDUgMS40NSAwIDAgMC0yLjYgMGwtMi42OSA1LjQ2LTYuMDIuODdhMS40NSAxLjQ1IDAgMCAwLS44IDIuNDhsNC4zNSA0LjI0LTEuMDIgNmMtLjExLjYzLjE5IDEuMTguNjYgMS40Ny40LjI2Ljk0LjMyIDEuNDQuMDVMMTQgMjEuNjRsNS4zOCAyLjgzYzEuMDcuNTYgMi4zMS0uMzQgMi4xLTEuNTJsLTEuMDItNiA0LjM1LTQuMjRjLjg2LS44NC4zOS0yLjMtLjgtMi40OGwtNi4wMi0uODctMi42OS01LjQ1Wk0xMSAyMS41NFYxMC40OWMuMTQtLjEyLjI2LS4yNy4zNC0uNDRMMTQgNC42NmwyLjY2IDUuMzljLjIxLjQzLjYyLjcyIDEuMS44bDUuOTMuODUtNC4zIDQuMmMtLjM0LjMzLS41LjgtLjQxIDEuMjhsMS4wMSA1LjkyLTUuMzEtMi44YTEuNDUgMS40NSAwIDAgMC0xLjM1IDBMMTEgMjEuNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyUHJvaGliaXRlZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJQcm9oaWJpdGVkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk04LjggMi4xYS45LjkgMCAwIDAtMS42IDBMNS42NiA1LjE4bC0zLjQuNWEuOS45IDAgMCAwLS41IDEuNTNsMi40NiAyLjRMMy42NSAxM2EuOS45IDAgMCAwIDEuMy45NWwuOTItLjQ4QTUuNSA1LjUgMCAwIDEgMTAuMjQgNUw4LjgxIDIuMVpNNiAxMC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJQcm9oaWJpdGVkMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJQcm9oaWJpdGVkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNOC44IDIuMWEuOS45IDAgMCAwLTEuNiAwTDUuNjYgNS4xOGwtMy40LjVhLjkuOSAwIDAgMC0uNSAxLjUzbDIuNDYgMi40TDMuNjUgMTNhLjkuOSAwIDAgMCAxLjMuOTVsLjkyLS40OGE1LjQ5IDUuNDkgMCAwIDEtLjQ2LS44OWwtLjc0LjM5LjM1LTIuMDJhNS41OCA1LjU4IDAgMCAxIC4xNC0xLjc2LjkuOSAwIDAgMC0uMTktLjI2bC0yLjM1LTIuMyAzLjI1LS40NmEuOS45IDAgMCAwIC42OC0uNUw4IDIuNzNsMS4yIDIuNDJhNS41IDUuNSAwIDAgMSAxLjA0LS4xNEw4LjgxIDIuMVpNNiAxMC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJQcm9oaWJpdGVkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclByb2hpYml0ZWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTkuMSAyLjlhMSAxIDAgMCAxIDEuOCAwbDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0uNTUuNTRhNS41IDUuNSAwIDAgMC03Ljk2IDYuMjZsLTMuMDUgMS42YTEgMSAwIDAgMS0xLjQ1LTEuMDVsLjc0LTQuM0wyLjMgOS4xNGExIDEgMCAwIDEgLjU2LTEuN2w0LjMxLS42M0w5LjEgMi45Wm0uOSAxMS42YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OCAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJQcm9oaWJpdGVkMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJQcm9oaWJpdGVkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS4xIDIuOWExIDEgMCAwIDEgMS44IDBsMS45MyAzLjkxIDQuMzEuNjNhMSAxIDAgMCAxIC41NiAxLjdsLS41NS41NGE1LjQ2IDUuNDYgMCAwIDAtMS0uNDNsLjg1LS44Mi00LjMyLS42M2ExIDEgMCAwIDEtLjc1LS41NUwxMCAzLjM1bC0xLjkzIDMuOWExIDEgMCAwIDEtLjc1LjU1TDMgOC40M2wzLjEyIDMuMDRhMSAxIDAgMCAxIC4zLjg5bC0uNzUgNC4zIDMuMzUtMS43NmMuMDIuMzYuMDguNy4xNyAxLjA0bC0zLjA1IDEuNmExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOVptLjkgMTEuNmE0LjUgNC41IDAgMSAwIDkgMCA0LjUgNC41IDAgMCAwLTkgMFptMSAwYTMuNSAzLjUgMCAwIDEgNS42LTIuOGwtNC45IDQuOWEzLjQ4IDMuNDggMCAwIDEtLjctMi4xWm0zLjUgMy41Yy0uNzggMC0xLjUxLS4yNi0yLjEtLjdsNC45LTQuOWEzLjUgMy41IDAgMCAxLTIuOCA1LjZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyUHJvaGliaXRlZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJQcm9oaWJpdGVkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0uOS44OGE2LjUgNi41IDAgMCAwLTkuNDQgNy40M2wtMy45NyAyLjA4YTEuMzUgMS4zNSAwIDAgMS0xLjk2LTEuNDJsLjktNS4yNS0zLjgxLTMuNzJjLS44LS43OC0uMzYtMi4xNC43NS0yLjNsNS4yNy0uNzcgMi4zNi00Ljc4Wm0xMi4yIDE0LjRhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTkuNSAwYzAgLjgzLjI2IDEuNi43IDIuMjVsNS41Ni01LjU2YTQgNCAwIDAgMC02LjI1IDMuM1ptNCA0YTQgNCAwIDAgMCAzLjMyLTYuMjVsLTUuNTYgNS41NmMuNjQuNDMgMS40MS42OSAyLjI1LjY5WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclByb2hpYml0ZWQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclByb2hpYml0ZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0uOS44OGE2LjQ2IDYuNDYgMCAwIDAtMS41Mi0uNjJsMS4xNS0xLjEyLTUuMDUtLjc0YTEuMzUgMS4zNSAwIDAgMS0xLjAxLS43NEwxMiA0LjA0IDkuNzQgOC42Yy0uMi40LS41OC42OC0xLjAyLjc0bC01LjA1Ljc0IDMuNjYgMy41NmMuMzIuMy40Ni43Ni4zOSAxLjJsLS44NyA1LjAyTDExIDE3LjdjLjAyLjU0LjEgMS4wNy4yNCAxLjU3bC0zLjk2IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhaTTIzIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMFptLTkuNSAwYzAgLjgzLjI2IDEuNi43IDIuMjVsNS41NS01LjU2YTQgNCAwIDAgMC02LjI1IDMuM1ptNCA0YTQgNCAwIDAgMCAzLjMtNi4yNWwtNS41NSA1LjU2Yy42NC40MyAxLjQyLjY5IDIuMjUuNjlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyU2V0dGluZ3MyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyU2V0dGluZ3MyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjkgMi45YTEgMSAwIDAgMC0xLjggMEw3LjE3IDYuOGwtNC4zMS42M2ExIDEgMCAwIDAtLjU2IDEuN2wzLjEzIDMuMDUtLjc0IDQuM2ExIDEgMCAwIDAgMS40NSAxLjA1bDMuMDUtMS42YTUuNSA1LjUgMCAwIDEgNy45Ni02LjI2bC41NS0uNTRhMSAxIDAgMCAwLS41Ni0xLjdsLTQuMzEtLjYzTDEwLjkgMi45Wm0tLjI3IDExLjAyLS40Ni4xMmE0Ljc0IDQuNzQgMCAwIDAgLjAxIDEuMDFsLjM1LjA5QTIgMiAwIDAgMSAxMiAxNy42NmwtLjEzLjQyYy4yNi4yLjU0LjM4Ljg0LjUybC4zMi0uMzVhMiAyIDAgMCAxIDIuOTEgMGwuMzQuMzZjLjMtLjEzLjU3LS4zLjgyLS41bC0uMTUtLjU1YTIgMiAwIDAgMSAxLjQzLTIuNDhsLjQ2LS4xMmE0LjczIDQuNzMgMCAwIDAtLjAxLTEuMDFsLS4zNS0uMDlBMiAyIDAgMCAxIDE3IDExLjM0bC4xMy0uNDJjLS4yNi0uMi0uNTQtLjM4LS44NC0uNTJsLS4zMi4zNWEyIDIgMCAwIDEtMi45MSAwbC0uMzQtLjM2Yy0uMy4xMy0uNTcuMy0uODIuNWwuMTYuNTVhMiAyIDAgMCAxLTEuNDQgMi40OFptNC44Ny41OGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyU2V0dGluZ3MyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclNldHRpbmdzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAuOSAyLjlhMSAxIDAgMCAwLTEuOCAwTDcuMTcgNi44bC00LjMxLjYzYTEgMSAwIDAgMC0uNTYgMS43bDMuMTMgMy4wNS0uNzQgNC4zYTEgMSAwIDAgMCAxLjQ1IDEuMDVsMy4wNS0xLjZhNS40OSA1LjQ5IDAgMCAxLS4xOC0xLjA0bC0zLjM0IDEuNzYuNzQtNC4zYTEgMSAwIDAgMC0uMjktLjg5TDMgOC40M2w0LjMyLS42M2ExIDEgMCAwIDAgLjc1LS41NUwxMCAzLjM1bDEuOTMgMy45Yy4xNS4zLjQzLjUuNzUuNTVsNC4zMi42My0uODUuODJjLjM1LjExLjY5LjI2IDEgLjQzbC41NS0uNTRhMSAxIDAgMCAwLS41Ni0xLjdsLTQuMzEtLjYzTDEwLjkgMi45Wm0tLjI3IDExLjAyYTIgMiAwIDAgMCAxLjQ0LTIuNDhsLS4xNi0uNTVjLjI1LS4yLjUzLS4zNy44Mi0uNWwuMzQuMzZhMiAyIDAgMCAwIDIuOSAwbC4zMy0uMzVjLjMuMTQuNTguMzIuODQuNTJsLS4xMy40MmEyIDIgMCAwIDAgMS40NiAyLjUybC4zNS4wOWE0LjcgNC43IDAgMCAxIDAgMS4wMWwtLjQ1LjEyYTIgMiAwIDAgMC0xLjQzIDIuNDhsLjE1LjU1Yy0uMjUuMi0uNTMuMzctLjgyLjVsLS4zNC0uMzZhMiAyIDAgMCAwLTIuOSAwbC0uMzMuMzVjLS4zLS4xNC0uNTgtLjMyLS44NC0uNTJsLjEzLS40MmEyIDIgMCAwIDAtMS40Ni0yLjUybC0uMzUtLjA5YTQuNzEgNC43MSAwIDAgMSAwLTEuMDFsLjQ1LS4xMlptNC44Ny41OGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyU2V0dGluZ3MyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyU2V0dGluZ3MyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEwLjc5IDMuMWMuNS0xIDEuOTItMSAyLjQyIDBsMi4zNiA0Ljc4IDUuMjcuNzdjMS4xLjE2IDEuNTUgMS41Mi43NSAyLjNsLS45Ljg4YTYuNSA2LjUgMCAwIDAtOS40NCA3LjQzbC0zLjk3IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhabTMuNDkgMTAuODdhMiAyIDAgMCAxLTEuNDQgMi41bC0uNTkuMTVhNS43MyA1LjczIDAgMCAwIDAgMS44bC41NS4xM2EyIDIgMCAwIDEgMS40NSAyLjUxbC0uMTkuNjNjLjQ0LjM5Ljk0LjcgMS40OS45M2wuNDktLjUyYTIgMiAwIDAgMSAyLjkgMGwuNS41MmE1LjI4IDUuMjggMCAwIDAgMS40OC0uOTFsLS4yLS42OWEyIDIgMCAwIDEgMS40NC0yLjVsLjU5LS4xNGE1LjcyIDUuNzIgMCAwIDAgMC0xLjhsLS41NS0uMTNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMTktLjY0Yy0uNDQtLjM4LS45NC0uNy0xLjQ5LS45MmwtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjlsLjIuN1pNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJTZXR0aW5nczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyU2V0dGluZ3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMC43OSAzLjFjLjUtMSAxLjkyLTEgMi40MiAwbDIuMzYgNC43OCA1LjI3Ljc3YzEuMS4xNiAxLjU1IDEuNTIuNzUgMi4zbC0uOS44OGE2LjQ2IDYuNDYgMCAwIDAtMS41Mi0uNjJsMS4xNS0xLjEyLTUuMDUtLjc0YTEuMzUgMS4zNSAwIDAgMS0xLjAxLS43NEwxMiA0LjA0IDkuNzQgOC42Yy0uMi40LS41OC42OC0xLjAyLjc0bC01LjA1Ljc0IDMuNjYgMy41NmMuMzIuMy40Ni43Ni4zOSAxLjJsLS44NyA1LjAyTDExIDE3LjdjLjAyLjU0LjEgMS4wNy4yNCAxLjU3bC0zLjk2IDIuMDhhMS4zNSAxLjM1IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhabTMuNDkgMTAuODdhMiAyIDAgMCAxLTEuNDQgMi41bC0uNTkuMTVhNS43MyA1LjczIDAgMCAwIDAgMS44bC41NS4xM2EyIDIgMCAwIDEgMS40NSAyLjUxbC0uMTkuNjNjLjQ0LjM5Ljk0LjcgMS40OS45M2wuNDktLjUyYTIgMiAwIDAgMSAyLjkgMGwuNS41MmE1LjI4IDUuMjggMCAwIDAgMS40OC0uOTFsLS4yLS42OWEyIDIgMCAwIDEgMS40NC0yLjVsLjU5LS4xNGE1LjcyIDUuNzIgMCAwIDAgMC0xLjhsLS41NS0uMTNhMiAyIDAgMCAxLTEuNDUtMi41MWwuMTktLjY0Yy0uNDQtLjM4LS45NC0uNy0xLjQ5LS45MmwtLjQ5LjUyYTIgMiAwIDAgMS0yLjkgMGwtLjUtLjUyYy0uNTQuMjItMS4wNC41My0xLjQ4LjlsLjIuN1pNMTcuNSAxOWMtLjggMC0xLjQ1LS42Ny0xLjQ1LTEuNVMxNi43IDE2IDE3LjUgMTZjLjggMCAxLjQ1LjY3IDEuNDUgMS41UzE4LjMgMTkgMTcuNSAxOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJUaHJlZVF1YXJ0ZXIxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyMTJGaWxsZWQnLCBcIjEyXCIsIFtcIm03IDIuMTItLjI4LS41N2EuOC44IDAgMCAwLTEuNDQgMEw0LjE4IDMuOGwtMi41LjM2YS44LjggMCAwIDAtLjQ0IDEuMzZsMS44IDEuNzYtLjQyIDIuNDdhLjguOCAwIDAgMCAxLjE2Ljg1TDYgOS40M2wxIC41MlYyLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclRocmVlUXVhcnRlcjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNi43MiAxLjU1IDcuODMgMy44bDIuNDkuMzZjLjY1LjEuOTEuOS40NCAxLjM2bC0xLjggMS43Ni40MyAyLjQ3YS44LjggMCAwIDEtMS4xNy44NUw2IDkuNDMgMy43OCAxMC42YS44LjggMCAwIDEtMS4xNi0uODVsLjQyLTIuNDctMS44LTEuNzZhLjguOCAwIDAgMSAuNDUtMS4zNmwyLjQ4LS4zNiAxLjExLTIuMjVhLjguOCAwIDAgMSAxLjQ0IDBaTTcgOC44MmwxLjMzLjctLjM3LTIuMThhLjguOCAwIDAgMSAuMjMtLjdsMS41OC0xLjU1LTIuMTktLjMyYS44LjggMCAwIDEtLjU4LS40djQuNDVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyVGhyZWVRdWFydGVyMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclRocmVlUXVhcnRlcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNy4yIDIuMWEuOS45IDAgMCAxIDEuNiAwTDEwIDQuNTJ2OC44OGwtMi0xLjA1LTMuMDQgMS42YS45LjkgMCAwIDEtMS4zLS45NWwuNTctMy4zOS0yLjQ2LTIuNGEuOS45IDAgMCAxIC41LTEuNTNsMy40LS41TDcuMiAyLjFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyVGhyZWVRdWFydGVyMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJUaHJlZVF1YXJ0ZXIxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04LjggMi4xYS45LjkgMCAwIDAtMS42IDBMNS42NiA1LjE4bC0zLjQuNWEuOS45IDAgMCAwLS41IDEuNTNsMi40NiAyLjRMMy42NSAxM2EuOS45IDAgMCAwIDEuMy45NUw4IDEyLjM1bDMuMDQgMS42YS45LjkgMCAwIDAgMS4zLS45NWwtLjU3LTMuMzkgMi40Ni0yLjRhLjkuOSAwIDAgMC0uNS0xLjUzbC0zLjQtLjVMOC44IDIuMVpNMTAgMTIuMjdWNi4xNGEuOS45IDAgMCAwIC4xMy4wM2wzLjI2LjQ3LTIuMzYgMi4zYS45LjkgMCAwIDAtLjI2Ljc5bC41NiAzLjI0LTEuMzMtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyVGhyZWVRdWFydGVyMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclRocmVlUXVhcnRlcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTIgNS4xMyAxMC45IDIuOWExIDEgMCAwIDAtMS44IDBMNy4xNyA2LjhsLTQuMzEuNjNhMSAxIDAgMCAwLS41NiAxLjdsMy4xMyAzLjA1LS43NCA0LjNhMSAxIDAgMCAwIDEuNDUgMS4wNUwxMCAxNS41MWwyIDEuMDVWNS4xM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJUaHJlZVF1YXJ0ZXIyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhclRocmVlUXVhcnRlcjIwUmVndWxhcicsIFwiMjBcIiwgW1wibTEwLjkgMi45IDEuOTMgMy45MSA0LjMxLjYzYTEgMSAwIDAgMSAuNTYgMS43bC0zLjEyIDMuMDUuNzMgNC4zYTEgMSAwIDAgMS0xLjQ1IDEuMDVMMTAgMTUuNTFsLTMuODYgMi4wM2ExIDEgMCAwIDEtMS40NS0xLjA1bC43NC00LjNMMi4zIDkuMTRhMSAxIDAgMCAxIC41Ni0xLjdsNC4zMS0uNjNMOS4xIDIuOWExIDEgMCAwIDEgMS44IDBaTTEyIDcuMzd2OC4wNmwyLjMzIDEuMjMtLjc0LTQuM2ExIDEgMCAwIDEgLjI5LS44OUwxNyA4LjQzbC00LjMyLS42M2ExIDEgMCAwIDEtLjY4LS40M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJUaHJlZVF1YXJ0ZXIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNSA2LjczIDEzLjIxIDMuMWMtLjI1LS41LS43My0uNzUtMS4yMS0uNzVzLS45Ni4yNS0xLjIxLjc1TDguNDMgNy44OGwtNS4yNy43N2ExLjM1IDEuMzUgMCAwIDAtLjc1IDIuM2wzLjgxIDMuNzItLjkgNS4yNWExLjM1IDEuMzUgMCAwIDAgMS45NiAxLjQyTDEyIDE4Ljg2bDMgMS41OFY2LjczWlwiXSk7XG5leHBvcnQgY29uc3QgU3RhclRocmVlUXVhcnRlcjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTMuMjEgMy4xIDE1IDYuNzNsLjU3IDEuMTUgNS4yNy43N2MxLjEuMTYgMS41NSAxLjUyLjc1IDIuM2wtMy44MiAzLjcyLjkgNS4yNWExLjM1IDEuMzUgMCAwIDEtMS45NiAxLjQyTDEyIDE4Ljg2bC00LjcyIDIuNDhhMS4zNCAxLjM0IDAgMCAxLTEuOTYtMS40MmwuOS01LjI1LTMuODEtMy43MmMtLjgtLjc4LS4zNi0yLjE0Ljc1LTIuM2w1LjI3LS43NyAyLjM2LTQuNzhjLjI1LS41LjczLS43NSAxLjItLjc1LjUgMCAuOTcuMjUgMS4yMi43NVpNMTUgOS4yOHY5LjQ3bDIuMTQgMS4xMi0uODYtNS4wM2MtLjA3LS40My4wNy0uODguMzktMS4ybDMuNjUtMy41NS01LjA1LS43NGMtLjEtLjAxLS4xOC0uMDMtLjI3LS4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXJUaHJlZVF1YXJ0ZXIyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGFyVGhyZWVRdWFydGVyMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xNyA3LjM1IDE1LjMgMy45YTEuNDUgMS40NSAwIDAgMC0yLjYgMGwtMi42OSA1LjQ1LTYuMDIuODdhMS40NSAxLjQ1IDAgMCAwLS44IDIuNDhsNC4zNSA0LjI0LTEuMDIgNmExLjQ1IDEuNDUgMCAwIDAgMi4xIDEuNTJMMTQgMjEuNjRsMyAxLjU4VjcuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGFyVGhyZWVRdWFydGVyMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXJUaHJlZVF1YXJ0ZXIyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xNS4zIDMuOSAxOCA5LjM3bDYuMDEuODdhMS40NSAxLjQ1IDAgMCAxIC44IDIuNDhsLTQuMzUgNC4yNCAxLjAzIDZhMS40NSAxLjQ1IDAgMCAxLTIuMSAxLjUyTDE0IDIxLjY0bC01LjM4IDIuODNhMS40NSAxLjQ1IDAgMCAxLTIuMS0xLjUybDEuMDItNi00LjM1LTQuMjRjLS44Ni0uODQtLjM5LTIuMy44LTIuNDhsNi4wMi0uODcgMi43LTUuNDVhMS40NSAxLjQ1IDAgMCAxIDIuNiAwWm0xLjcgNi42djExLjAzbDMgMS41Ny0xLjAyLTUuOTJjLS4wOC0uNDcuMDctLjk1LjQxLTEuMjhsNC4zLTQuMi01Ljk0LS44NmExLjQ1IDEuNDUgMCAwIDEtLjc1LS4zNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXR1czEyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXR1czEyRmlsbGVkJywgXCIxMlwiLCBbXCJNNiAxYy4yOCAwIC41NS4wMi44Mi4wN0w1Ljg4IDJBNCA0IDAgMSAwIDEwIDYuMTNsLjkzLS45NEE1IDUgMCAxIDEgNiAxWm00LjQ0LjU2YTEuOTEgMS45MSAwIDAgMC0yLjcgMGwtMi42IDIuNTlhLjUuNSAwIDAgMC0uMTEuMTlsLS45OCAyLjkyYy0uMTUuNDMuMjYuODQuNy43bDIuOTEtLjk5YS41LjUgMCAwIDAgLjItLjEybDIuNTgtMi41OGMuNzUtLjc1Ljc1LTEuOTYgMC0yLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGF0dXMxMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNiAxYy4yOCAwIC41NS4wMi44Mi4wN0w1Ljg4IDJBNCA0IDAgMSAwIDEwIDYuMTNsLjkzLS45NEE1IDUgMCAxIDEgNiAxWm00LjQ0LjU2YTEuOTEgMS45MSAwIDAgMC0yLjcgMGwtMi42IDIuNTlhLjUuNSAwIDAgMC0uMTEuMTlsLS45OCAyLjkyYy0uMTUuNDMuMjYuODQuNy43bDIuOTEtLjk5YS41LjUgMCAwIDAgLjItLjEybDIuNTgtMi41OGMuNzUtLjc1Ljc1LTEuOTYgMC0yLjdabS0yIC43YS45MS45MSAwIDAgMSAxLjMgMS4zbC0yLjUgMi41LTEuOTYuNjYuNjYtMS45NSAyLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhdHVzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNC4zNSAxLjY1YTIuMjcgMi4yNyAwIDAgMC0zLjIgMEw2LjkgNS45YS41LjUgMCAwIDAtLjEyLjJMNS41MyA5LjgzYS41LjUgMCAwIDAgLjYzLjYzTDkuOSA5LjIyYS41LjUgMCAwIDAgLjItLjEybDQuMjQtNC4yNWMuODktLjg4Ljg5LTIuMzIgMC0zLjJaTTEzIDcuNjMgMTMgOGE1IDUgMCAxIDEtNC42My00Ljk5bC44OC0uODhBNi4wMiA2LjAyIDAgMCAwIDIgOGE2IDYgMCAxIDAgMTEuODctMS4yNWwtLjg4Ljg4WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhdHVzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXR1czE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0LjM1IDEuNjVhMi4yNyAyLjI3IDAgMCAwLTMuMiAwTDYuOSA1LjlhLjUuNSAwIDAgMC0uMTIuMkw1LjUzIDkuODNhLjUuNSAwIDAgMCAuNjMuNjNMOS45IDkuMjJhLjUuNSAwIDAgMCAuMi0uMTJsNC4yNC00LjI1Yy44OS0uODguODktMi4zMiAwLTMuMlptLTIuNS43YTEuMjcgMS4yNyAwIDAgMSAxLjggMS44TDkuNDggOC4zbC0yLjY5LjkuOS0yLjY5IDQuMTYtNC4xN1pNOCAzbC4zNy4wMS44OC0uODhBNi4wMiA2LjAyIDAgMCAwIDIgOGE2IDYgMCAxIDAgMTEuODctMS4yNWwtLjg4Ljg4TDEzIDhhNSA1IDAgMSAxLTUtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXR1czIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXR1czIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTcuMzUgMi42NWEyLjYyIDIuNjIgMCAwIDAtMy43IDBsLTUuNSA1LjVhLjUuNSAwIDAgMC0uMTQuMjNsLTEgNGEuNS41IDAgMCAwIC42MS42bDQtMWEuNS41IDAgMCAwIC4yMy0uMTNsNS41LTUuNWEyLjYyIDIuNjIgMCAwIDAgMC0zLjdabS0xLjQgNi41M2E2IDYgMCAxIDEtNS4xMi01LjEybC44NS0uODZBNy4wMiA3LjAyIDAgMCAwIDMgMTBhNyA3IDAgMSAwIDEzLjgtMS42OGwtLjg2Ljg2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhdHVzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXR1czIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3LjM1IDIuNjVhMi42MiAyLjYyIDAgMCAwLTMuNyAwbC01LjUgNS41YS41LjUgMCAwIDAtLjE0LjIzbC0xIDRhLjUuNSAwIDAgMCAuNjEuNmw0LTFhLjUuNSAwIDAgMCAuMjMtLjEzbDUuNS01LjVhMi42MiAyLjYyIDAgMCAwIDAtMy43Wm0tMyAuN2ExLjYyIDEuNjIgMCAwIDEgMi4zIDIuM2wtNS40IDUuNC0zLjA2Ljc2Ljc2LTMuMDUgNS40LTUuNFpNMTAgNGMuMjggMCAuNTUuMDIuODIuMDZsLjg2LS44NkE3LjAyIDcuMDIgMCAwIDAgMyAxMGE3IDcgMCAxIDAgMTMuOC0xLjY4bC0uODYuODZBNiA2IDAgMSAxIDEwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGF0dXMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGF0dXMyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2LjAzIDMuMDNhMy41IDMuNSAwIDAgMSA0Ljk0IDQuOTRsLTYuMDUgNi4wNmMtLjM1LjM1LS43OC42LTEuMjYuNzJsLTQuNzIgMS4yM2EuNzUuNzUgMCAwIDEtLjkyLS45MmwxLjIzLTQuNzJjLjEyLS40OC4zNy0uOS43Mi0xLjI2bDYuMDYtNi4wNVptLTEuNy4yN0E5LjAxIDkuMDEgMCAxIDAgMTIgMjFhOSA5IDAgMCAwIDguNy0xMS4zM2wtMS4yNyAxLjI3YTcuNSA3LjUgMCAxIDEtNi4zNi02LjM2bDEuMjYtMS4yOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXR1czI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGF0dXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xNy4wOSA0LjA5QTIgMiAwIDEgMSAxOS45IDYuOWwtNi4wNiA2LjA2Yy0uMTUuMTYtLjM1LjI3LS41Ny4zM2wtMy40OC45LjktMy40OGMuMDYtLjIyLjE3LS40Mi4zMy0uNTdsNi4wNi02LjA2Wm0zLjg4LTEuMDZhMy41IDMuNSAwIDAgMC00Ljk0IDBMOS45NyA5LjA4Yy0uMzUuMzUtLjYuNzgtLjcyIDEuMjZsLTEuMjMgNC43MmEuNzUuNzUgMCAwIDAgLjkyLjkybDQuNzItMS4yM2MuNDgtLjEyLjktLjM3IDEuMjYtLjcybDYuMDUtNi4wNmEzLjUgMy41IDAgMCAwIDAtNC45NFpNMTIgM2MuOCAwIDEuNTkuMSAyLjMzLjNsLTEuMjcgMS4yN2E3LjUgNy41IDAgMSAwIDYuMzYgNi4zNmwxLjI4LTEuMjZBOS4wMSA5LjAxIDAgMSAxIDEyIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGF0dXMyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGF0dXMyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTE4Ljc0IDMuMjRhNC4yNSA0LjI1IDAgMSAxIDYuMDIgNi4wMmwtNy40IDcuMzljLS4zNC4zNC0uNzcuNTktMS4yNS43MWwtNi4xNyAxLjYyYS43NS43NSAwIDAgMS0uOTItLjkybDEuNjItNi4xN2MuMTItLjQ4LjM3LS45LjcxLTEuMjVsNy40LTcuNFpNMTQgNC41Yy42NSAwIDEuMjguMDYgMS44OS4xOWwxLjI0LTEuMjRhMTEgMTEgMCAxIDAgNy40MiA3LjQybC0xLjI0IDEuMjRBOS41IDkuNSAwIDEgMSAxNCA0LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGF0dXMyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTkuOCA0LjNhMi43NSAyLjc1IDAgMSAxIDMuOSAzLjlsLTcuNCA3LjM5Yy0uMTUuMTUtLjM1LjI3LS41Ni4zMmwtNC45NCAxLjMgMS4yOS00Ljk1Yy4wNS0uMjEuMTctLjQuMzItLjU2bDcuNC03LjRabTQuOTYtMS4wNmE0LjI1IDQuMjUgMCAwIDAtNi4wMiAwbC03LjM5IDcuNGMtLjM0LjM0LS41OS43Ny0uNzEgMS4yNWwtMS42MiA2LjE3YS43NS43NSAwIDAgMCAuOTIuOTJsNi4xNy0xLjYyYy40OC0uMTIuOS0uMzcgMS4yNS0uNzFsNy40LTcuNGE0LjI1IDQuMjUgMCAwIDAgMC02Wk0xNS44OSA0LjdhOS41IDkuNSAwIDEgMCA3LjQyIDcuNDJsMS4yNC0xLjI0YTExIDExIDAgMSAxLTcuNDItNy40MmwtMS4yNCAxLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhdHVzMzJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMi4zMiAzLjMyYTQuNSA0LjUgMCAwIDEgNi4zNiA2LjM2bC04LjY2IDguNjZhMyAzIDAgMCAxLTEuMjkuNzZsLTYuNDUgMS44NmExIDEgMCAwIDEtMS4yNC0xLjI0bDEuODYtNi40NWEzIDMgMCAwIDEgLjc2LTEuM2w4LjY2LTguNjVaTTE2IDZjLjQ4IDAgLjk1LjAzIDEuNDIuMWwxLjY5LTEuN0ExMi4wMiAxMi4wMiAwIDAgMCA0IDE2YTEyIDEyIDAgMSAwIDIzLjYtMy4xbC0xLjcgMS42OEExMCAxMCAwIDEgMSAxNiA2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhdHVzMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0YXR1czMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIzLjczIDQuNzNhMi41IDIuNSAwIDAgMSAzLjU0IDMuNTRsLTguNjYgOC42NmExIDEgMCAwIDEtLjQzLjI1bC00LjcyIDEuMzYgMS4zNi00LjcyYTEgMSAwIDAgMSAuMjUtLjQzbDguNjYtOC42NlptNC45NS0xLjQxYTQuNSA0LjUgMCAwIDAtNi4zNiAwbC04LjY2IDguNjZhMyAzIDAgMCAwLS43NiAxLjI5bC0xLjg2IDYuNDVhMSAxIDAgMCAwIDEuMjQgMS4yNGw2LjQ1LTEuODZhMyAzIDAgMCAwIDEuMy0uNzZsOC42NS04LjY2YTQuNSA0LjUgMCAwIDAgMC02LjM2Wk0xNy40MiA2LjFhMTAgMTAgMCAxIDAgOC40OSA4LjQ5bDEuNjgtMS43QTEyLjAxIDEyLjAxIDAgMSAxIDQgMTYgMTIgMTIgMCAwIDEgMTkuMSA0LjRsLTEuNjggMS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3RhdHVzNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RhdHVzNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0zMi4wNSA2LjA1YTcgNyAwIDEgMSA5LjkgOS45TDI5LjYgMjguM2MtLjU0LjU0LTEuMjIuOTMtMS45NiAxLjExbC0xMC4wOCAyLjU1YTEuMjUgMS4yNSAwIDAgMS0xLjUyLTEuNTJsMi41NS0xMC4wOGMuMTgtLjc0LjU3LTEuNDIgMS4xMS0xLjk2TDMyLjA1IDYuMDVaTTI0IDguNWMuODcgMCAxLjczLjA3IDIuNTYuMjFsMi4xLTIuMUExOC4wMiAxOC4wMiAwIDAgMCA2IDI0YTE4IDE4IDAgMSAwIDM1LjM5LTQuNjZsLTIuMSAyLjFBMTUuNSAxNS41IDAgMSAxIDI0IDguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0YXR1czQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGF0dXM0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0zMy44MiA3LjgyYTQuNSA0LjUgMCAwIDEgNi4zNiA2LjM2TDI3LjgzIDI2LjUzYy0uMjIuMjItLjUuMzgtLjguNDZsLTguMDUgMi4wM0wyMSAyMC45OGMuMDgtLjMxLjI0LS41OS40Ni0uODFMMzMuODIgNy44MlptOC4xMy0xLjc3YTcgNyAwIDAgMC05LjkgMEwxOS43IDE4LjRhNC4yNSA0LjI1IDAgMCAwLTEuMTEgMS45NmwtMi41NSAxMC4wOGExLjI1IDEuMjUgMCAwIDAgMS41MiAxLjUybDEwLjA4LTIuNTVhNC4yNSA0LjI1IDAgMCAwIDEuOTYtMS4xMWwxMi4zNS0xMi4zNWE3IDcgMCAwIDAgMC05LjlaTTI2LjU2IDguNzFBMTUuNSAxNS41IDAgMSAwIDM5LjMgMjEuNDRsMi4xLTIuMUExOC4wMiAxOC4wMiAwIDAgMSAyNCA0MmExOCAxOCAwIDEgMSA0LjY2LTM1LjM5bC0yLjEgMi4xWlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXAxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTkgM2ExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXY4LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDJhMSAxIDAgMCAxLTEtMXYtM2ExIDEgMCAwIDEgMS0xaDNWN2ExIDEgMCAwIDEgMS0xaDNWM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0ZXAxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RlcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTkgM2ExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXY4LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDJhMSAxIDAgMCAxLTEtMXYtM2ExIDEgMCAwIDEgMS0xaDNWN2ExIDEgMCAwIDEgMS0xaDNWM1ptNCAwaC0zdjNhMSAxIDAgMCAxLTEgMUg2djJhMSAxIDAgMCAxLTEgMUgydjNoOS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYzWlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzIDJhMSAxIDAgMCAwLTEgMXY0SDhhMSAxIDAgMCAwLTEgMXY0SDNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMTJhMyAzIDAgMCAwIDMtM1YzYTEgMSAwIDAgMC0xLTFoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMiAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjEyYTMgMyAwIDAgMS0zIDNIM2ExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoNFY4YTEgMSAwIDAgMSAxLTFoNFYzWm01IDBoLTR2NGExIDEgMCAwIDEtMSAxSDh2NGExIDEgMCAwIDEtMSAxSDN2NGgxMmEyIDIgMCAwIDAgMi0yVjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RlcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTUuNzUgMmMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVWOEg5LjI1QzguNTYgOCA4IDguNTYgOCA5LjI1djUuMjVIMy4yNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2NWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxNS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWMy4yNUMyMiAyLjU2IDIxLjQ0IDIgMjAuNzUgMmgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0ZXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RlcDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0LjUgMy4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWg1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djE1LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUgzLjI1QzIuNTYgMjIgMiAyMS40NCAyIDIwLjc1di01YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1SDhWOS4yNUM4IDguNTYgOC41NiA4IDkuMjUgOGg1LjI1VjMuMjVabTEuNS4yNXY0Ljc1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg5LjV2NS4yNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVIMy41djQuNWgxNS4yNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMy41SDE2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcHMxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGVwczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNSAxM0gyYTEgMSAwIDAgMS0xLTFWOWExIDEgMCAwIDEgMS0xaDNWNmExIDEgMCAwIDEgMS0xaDNWMmExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXY0aC0xVjJoLTN2M2ExIDEgMCAwIDEtMSAxSDZ2MmExIDEgMCAwIDEtMSAxSDJ2M2gzdjFabTEwLS41VjhhMSAxIDAgMCAwLTEtMWgtM2ExIDEgMCAwIDAtMSAxdjJIN2ExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg1LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcHMxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RlcHMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01IDEzSDJhMSAxIDAgMCAxLTEtMVY5YTEgMSAwIDAgMSAxLTFoM1Y2YTEgMSAwIDAgMSAxLTFoM1YyYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjRoLTFWMmgtM3YzYTEgMSAwIDAgMS0xIDFINnYyYTEgMSAwIDAgMS0xIDFIMnYzaDN2MVptMTAtLjVWOGExIDEgMCAwIDAtMS0xaC0zYTEgMSAwIDAgMC0xIDF2Mkg3YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDUuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVaTTEwIDExYTEgMSAwIDAgMCAxLTFWOGgzdjQuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIN3YtM2gzWlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcHMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGVwczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTEgM2ExIDEgMCAwIDEgMS0xaDNhMSAxIDAgMCAxIDEgMXY0aC0xVjNoLTN2M2ExIDEgMCAwIDEtMSAxSDh2M2ExIDEgMCAwIDEtMSAxSDR2M2g0djFINGExIDEgMCAwIDEtMS0xdi0zYTEgMSAwIDAgMSAxLTFoM1Y3YTEgMSAwIDAgMSAxLTFoM1YzWm0yIDZhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2NS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMGExIDEgMCAwIDEtMS0xdi0zYTEgMSAwIDAgMSAxLTFoM1Y5WlwiXSk7XG5leHBvcnQgY29uc3QgU3RlcHMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RlcHMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMSAzYTEgMSAwIDAgMSAxLTFoM2ExIDEgMCAwIDEgMSAxdjRoLTFWM2gtM3YzYTEgMSAwIDAgMS0xIDFIOHYzYTEgMSAwIDAgMS0xIDFINHYzaDR2MUg0YTEgMSAwIDAgMS0xLTF2LTNhMSAxIDAgMCAxIDEtMWgzVjdhMSAxIDAgMCAxIDEtMWgzVjNabTMgNWExIDEgMCAwIDAtMSAxdjNoLTNhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY5YTEgMSAwIDAgMC0xLTFoLTNabTAgMWgzdjUuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTB2LTNoM2ExIDEgMCAwIDAgMS0xVjlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXBzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMiAzLjM4YzAtLjc2LjYyLTEuMzggMS4zOC0xLjM4aDMuNzRjLjc2IDAgMS4zOC42MiAxLjM4IDEuMzhWOUgxN1YzLjVoLTMuNXYzLjYzYzAgLjc1LS42MiAxLjM3LTEuMzggMS4zN0g4LjV2My42M2MwIC43NS0uNjIgMS4zNy0xLjM4IDEuMzdIMy41VjE3SDl2MS41SDMuMzdjLS43NSAwLTEuMzctLjYyLTEuMzctMS4zOHYtMy43NWMwLS43NS42Mi0xLjM3IDEuMzgtMS4zN0g3VjguMzdDNyA3LjYzIDcuNjIgNyA4LjM4IDdIMTJWMy4zN1ptMyA4YzAtLjc2LjYyLTEuMzggMS4zOC0xLjM4aDMuNzVjLjc1IDAgMS4zNy42MiAxLjM3IDEuMzh2Ni44N2MwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC02Ljg4Yy0uNzUgMC0xLjM3LS42Mi0xLjM3LTEuMzh2LTMuNzVjMC0uNzUuNjItMS4zNyAxLjM4LTEuMzdIMTV2LTMuNjNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGVwczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGVwczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDMuMzhjMC0uNzYuNjItMS4zOCAxLjM4LTEuMzhoMy43NGMuNzYgMCAxLjM4LjYyIDEuMzggMS4zOFY5SDE3VjMuNWgtMy41djMuNjNjMCAuNzUtLjYyIDEuMzctMS4zOCAxLjM3SDguNXYzLjYzYzAgLjc1LS42MiAxLjM3LTEuMzggMS4zN0gzLjVWMTdIOXYxLjVIMy4zN2MtLjc1IDAtMS4zNy0uNjItMS4zNy0xLjM4di0zLjc1YzAtLjc1LjYyLTEuMzcgMS4zOC0xLjM3SDdWOC4zN0M3IDcuNjMgNy42MiA3IDguMzggN0gxMlYzLjM3Wk0xNi4zOCAxMGMtLjc2IDAtMS4zOC42Mi0xLjM4IDEuMzhWMTVoLTMuNjNjLS43NSAwLTEuMzcuNjItMS4zNyAxLjM4djMuNzVjMCAuNzUuNjIgMS4zNyAxLjM4IDEuMzdoNi44N2MxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1di02Ljg4YzAtLjc1LS42Mi0xLjM3LTEuMzgtMS4zN2gtMy43NVptLjEyIDUuMTNWMTEuNUgyMHY2Ljc1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxMS41di0zLjVoMy42M2MuNzUgMCAxLjM3LS42MiAxLjM3LTEuMzhaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGV0aG9zY29wZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXRob3Njb3BlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yLjc1IDJhLjc1Ljc1IDAgMCAwLS43NS43NXY1YTQuNSA0LjUgMCAwIDAgMy43NSA0LjQ0djEuMDZhNS4yNSA1LjI1IDAgMSAwIDEwLjUgMHYtMS4xYTIuNzUgMi43NSAwIDEgMC0xLjUgMHYxLjFhMy43NSAzLjc1IDAgMSAxLTcuNSAwdi0xLjA2QTQuNSA0LjUgMCAwIDAgMTEgNy43NXYtNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMS41YS43NS43NSAwIDAgMCAwIDEuNWguNzV2NC4yNWEzIDMgMCAxIDEtNiAwVjMuNWguNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVaTTE1LjUgOC4yNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RldGhvc2NvcGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RldGhvc2NvcGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0yLjUgMmEuNS41IDAgMCAwLS41LjV2NWE0LjUgNC41IDAgMCAwIDQgNC40N1YxM2E1IDUgMCAwIDAgMTAgMHYtMS4wNWEyLjUgMi41IDAgMSAwLTEgMFYxM2E0IDQgMCAxIDEtOCAwdi0xLjAzYTQuNSA0LjUgMCAwIDAgNC00LjQ3di01YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMCAwIDFIMTB2NC41YTMuNSAzLjUgMCAwIDEtNyAwVjNoMS41YS41LjUgMCAwIDAgMC0xaC0yWm0xMyA2YTEuNSAxLjUgMCAxIDEgMCAzIDEuNSAxLjUgMCAwIDEgMC0zWlwiXSk7XG5leHBvcnQgY29uc3QgU3RldGhvc2NvcGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGV0aG9zY29wZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyAyLjVhMSAxIDAgMCAwLTEgMVY5YzAgMS43NC42MSAzLjI2IDEuNzEgNC4zNC44Ny44NiAyLjAxIDEuNCAzLjI5IDEuNTl2LjgyYTYuMjUgNi4yNSAwIDEgMCAxMi41IDB2LS42NmEzLjI1IDMuMjUgMCAxIDAtMiAwdi42NmE0LjI1IDQuMjUgMCAxIDEtOC41IDB2LS44MmE1LjgyIDUuODIgMCAwIDAgMy4yOS0xLjZBNS45NyA1Ljk3IDAgMCAwIDE0IDlWMy41YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMSAwIDAgMmgxVjljMCAxLjI2LS40NCAyLjI0LTEuMTEgMi45MUE0LjAyIDQuMDIgMCAwIDEgOCAxM2MtMS4yMiAwLTIuMi0uNDItMi44OS0xLjA5QTMuOTggMy45OCAwIDAgMSA0IDlWNC41aDFhMSAxIDAgMCAwIDAtMkgzWm0xNS41IDguMjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0ZXRob3Njb3BlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0ZXRob3Njb3BlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMi43NSAyLjVhLjc1Ljc1IDAgMCAwLS43NS43NVY5YTYgNiAwIDAgMCA1LjI1IDUuOTV2LjhhNiA2IDAgMCAwIDEyIDB2LS44NGEzIDMgMCAxIDAtMS41IDB2Ljg0YTQuNSA0LjUgMCAwIDEtOSAwdi0uOEE2IDYgMCAwIDAgMTQgOVYzLjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNzV2NWE0LjUgNC41IDAgMSAxLTkgMFY0aDEuNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVabTE1Ljc1IDhhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGlja2VyMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RpY2tlcjEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMyAxaDZhMiAyIDAgMCAxIDIgMnYzSDhhMiAyIDAgMCAwLTEuNzEuOTYuOTIuOTIgMCAwIDEtLjMuMDVjLS4zMSAwLS41Ny0uMTYtLjc2LS4zNWExLjc5IDEuNzkgMCAwIDEtLjI4LS4zNy41LjUgMCAwIDAtLjkuNDR2LjAxbC4wMS4wMmExLjc4IDEuNzggMCAwIDAgLjEyLjE4Yy4wNy4xMi4xOS4yNy4zNC40Mi4zLjMuOC42NSAxLjQ4LjY1VjExSDNhMiAyIDAgMCAxLTItMlYzYzAtMS4xLjktMiAyLTJabTEuNSA0YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWm0zIDBhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDFaTTExIDdIOGExIDEgMCAwIDAtMSAxdjNoLjVhLjUuNSAwIDAgMCAuMzUtLjE1bDMtM0EuNS41IDAgMCAwIDExIDcuNVY3WlwiXSk7XG5leHBvcnQgY29uc3QgU3RpY2tlcjEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGlja2VyMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNSA0LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDBabTIuNS41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxWk0xIDNjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NC41YS41LjUgMCAwIDEtLjE1LjM1bC0zIDNhLjUuNSAwIDAgMS0uMzUuMTVIM2EyIDIgMCAwIDEtMi0yVjNabTItMWExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgzVjguMDFjLS42OCAwLTEuMTgtLjM0LTEuNDgtLjY1YTIuNzggMi43OCAwIDAgMS0uNDYtLjZ2LS4wMmEuNS41IDAgMSAxIC45LS40M2wuMDUuMDhjLjA1LjA3LjEyLjE3LjIyLjI3LjIuMi40NS4zNS43Ny4zNS4xIDAgLjItLjAyLjI5LS4wNUEyIDIgMCAwIDEgOCA2aDJWM2ExIDEgMCAwIDAtMS0xSDNabTcgNUg4YTEgMSAwIDAgMC0xIDF2MmguM0wxMCA3LjNWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0aWNrZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGlja2VyMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoNXYtMy4wOGE1Ljg3IDUuODcgMCAwIDEtMy40Ny0uNDcgNC4yIDQuMiAwIDAgMS0uODYtLjU3bC0uMDEtLjAyaC0uMDFhLjUuNSAwIDAgMSAuNy0uNzIgMSAxIDAgMCAwIC4xNC4xMmMuMS4wNy4yNi4xOC40OC4zQTQuNSA0LjUgMCAwIDAgMTAgMTNjLjQzIDAgLjgxLS4wNSAxLjE1LS4xNGEyLjc1IDIuNzUgMCAwIDEgMi42LTEuODZIMTdWNmEzIDMgMCAwIDAtMy0zSDZabTEuNSA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlptNi0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptLS43IDguNDFhMiAyIDAgMCAxLS44LjV2LTMuMTZjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMy4xNWEyIDIgMCAwIDEtLjQ5LjhMMTIuOCAxNi40WlwiXSk7XG5leHBvcnQgY29uc3QgU3RpY2tlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdGlja2VyMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDlhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm02LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWk0zIDZ2OGEzIDMgMCAwIDAgMyAzaDUuMzhhMS45NyAxLjk3IDAgMCAwIDEuNDEtLjU5bDMuNjItMy42MmEyIDIgMCAwIDAgLjU5LTEuNDFWNmEzIDMgMCAwIDAtMy0zSDZhMyAzIDAgMCAwLTMgM1ptMTMgMHY1aC0yLjI1Yy0xLjIgMC0yLjI0Ljc4LTIuNiAxLjg2LS4zNC4wOS0uNzIuMTQtMS4xNS4xNGE0LjUgNC41IDAgMCAxLTIuNTEtLjc0IDEuOTcgMS45NyAwIDAgMS0uMTQtLjExLjUuNSAwIDAgMC0uNy43di4wMWwuMDIuMDJhMiAyIDAgMCAwIC4yMi4xOCA1LjUgNS41IDAgMCAwIDQuMTEuODZWMTZINmEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJabS0zLjkxIDkuN2ExIDEgMCAwIDEtLjA5LjA4di0yLjAzYzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDIuMDNsLS4wNy4wOS0zLjYyIDMuNjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGlja2VyMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RpY2tlcjI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTcuNzUgM0MxOS41NSAzIDIxIDQuNDYgMjEgNi4yNVYxM2gtNC45NmMtMS4yLjA4LTIuMjIuODEtMi43MiAxLjg0YTUuMDUgNS4wNSAwIDAgMS00LjE0LS43Ljc1Ljc1IDAgMSAwLS44NiAxLjIzIDYuMzMgNi4zMyAwIDAgMCA0LjM1IDEuMWwuMzMtLjAzVjIxSDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41Wm0yLjYgMTEuNzItNS42MyA1LjYyLS4yMi4yVjE2LjFjLjA4LS44NS43NS0xLjUzIDEuNi0xLjZsLjE1LS4wMWg0LjI4bC0uMTkuMjJaTTkgNy43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0aWNrZXIyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RpY2tlcjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3Ljc1IDNDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2Ni44OGMwIC42LS4yNCAxLjE3LS42NiAxLjU5bC01LjYyIDUuNjJjLS40Mi40Mi0xIC42Ni0xLjYuNjZINi4yNkEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVabTAgMS41SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djExLjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIMTN2LTMuMDZjLS4yMi4wMy0uNDUuMDUtLjY3LjA2bC0uMzMuMDFhNi4zMyA2LjMzIDAgMCAxLTMuNjgtMS4xNC43NS43NSAwIDEgMSAuODYtMS4yMyA1LjA1IDUuMDUgMCAwIDAgNC4xNS43IDMuMjUgMy4yNSAwIDAgMSAyLjctMS44M2wuMjItLjAxaDMuMjVWNi4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVabS42OSAxMGgtMi4xOWMtLjkyIDAtMS42Ny43LTEuNzQgMS42di4xNWwtLjAxIDIuMTkgMy45NC0zLjk0Wk05IDcuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNVptNiAwYTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdGlja2VyQWRkMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RpY2tlckFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzdjMuNmE1LjUgNS41IDAgMCAwLTcuNzggMy4zNCA0LjIzIDQuMjMgMCAwIDEtMS43My0uNjggMS45NyAxLjk3IDAgMCAxLS4xNC0uMTEuNS41IDAgMCAwLS43Ljd2LjAxbC4wMi4wMmEyIDIgMCAwIDAgLjIyLjE4IDUuMjIgNS4yMiAwIDAgMCAyLjE0Ljg3QTUuNTYgNS41NiAwIDAgMCA5LjYgMTdINmEzIDMgMCAwIDEtMy0zVjZabTQuNSAzYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNi0xYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptNS41IDYuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0aWNrZXJBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RpY2tlckFkZDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNmEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgM3YzLjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMy4yYy4xLjM1LjI0LjY4LjQgMUg2YTMgMyAwIDAgMS0zLTNWNlptNC45NyA2LjU1Yy4zLjE1LjcyLjMxIDEuMjUuNC0uMDkuMy0uMTYuNjQtLjE5Ljk3YTUuMjIgNS4yMiAwIDAgMS0yLjE0LS44NiAyLjkzIDIuOTMgMCAwIDEtLjIyLS4xOGwtLjAxLS4wMmgtLjAxYS41LjUgMCAwIDEgLjctLjcyIDEgMSAwIDAgMCAuMTQuMTJjLjEuMDcuMjYuMTguNDguM1pNNy41IDlhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm02LTFhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm01LjUgNi41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RpY2tlckFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0aWNrZXJBZGQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptMCAyaC0uMDlhLjUuNSAwIDAgMC0uNC40bC0uMDEuMVYxN2gtMi42YS41LjUgMCAwIDAtLjQuNDF2LjE4Yy4wNC4yLjIuMzYuNC40bC4xLjAxSDE3djIuNmMuMDUuMi4yLjM2LjQxLjRoLjE4YS41LjUgMCAwIDAgLjQtLjRsLjAxLS4xVjE4aDIuNmEuNS41IDAgMCAwIC40LS40MXYtLjE4YS41LjUgMCAwIDAtLjQtLjRsLS4xLS4wMUgxOHYtMi42YS41LjUgMCAwIDAtLjQxLS40aC0uMDlabS4yNS0xMUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY1Ljc3YTYuNSA2LjUgMCAwIDAtOS41IDIuOTYgNC43OCA0Ljc4IDAgMCAxLTIuMzItLjg0Ljc1Ljc1IDAgMSAwLS44NiAxLjIzIDYuMyA2LjMgMCAwIDAgMi43NyAxLjA4IDYuNSA2LjUgMCAwIDAgLjkzIDQuNTVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVaTTkgNy43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41Wm02IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0aWNrZXJBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RpY2tlckFkZDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3LjUgMTJhNS41IDUuNSAwIDEgMSAwIDExIDUuNSA1LjUgMCAwIDEgMC0xMVptMCAyaC0uMDlhLjUuNSAwIDAgMC0uNC40bC0uMDEuMVYxN2gtMi42YS41LjUgMCAwIDAtLjQuNDF2LjE4Yy4wNC4yLjIuMzYuNC40bC4xLjAxSDE3djIuNmMuMDUuMi4yLjM2LjQxLjRoLjE4YS41LjUgMCAwIDAgLjQtLjRsLjAxLS4xVjE4aDIuNmEuNS41IDAgMCAwIC40LS40MXYtLjE4YS41LjUgMCAwIDAtLjQtLjRsLS4xLS4wMUgxOHYtMi42YS41LjUgMCAwIDAtLjQxLS40aC0uMDlabS4yNS0xMUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY1Ljc3Yy0uNDYtLjMtLjk3LS41My0xLjUtLjdWNi4yNGMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINi4yNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2MTEuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWg1LjA2Yy4xOC41My40MiAxLjA0LjcxIDEuNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNVpNOS4xOCAxNC4xNGMuNy40OSAxLjQ4Ljc3IDIuMzIuODUtLjE5LjQ2LS4zMy45NS0uNDIgMS40Ni0uOTktLjE0LTEuOTEtLjUtMi43Ni0xLjA4YS43NS43NSAwIDEgMSAuODYtMS4yM1pNOSA3Ljc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjVabTYgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3AxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNSAyQzIuNjcgMiAyIDIuNjcgMiAzLjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9wMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3AxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMi41IDNjLjI4IDAgLjUuMjIuNS41djlhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTljMC0uMjguMjItLjUuNS0uNWg5Wm0tOS0xQzIuNjcgMiAyIDIuNjcgMiAzLjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9wMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXYxMWMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTExYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9wMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3AyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNS41IDRjLjI4IDAgLjUuMjIuNS41djExYS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNXYtMTFjMC0uMjguMjItLjUuNS0uNWgxMVptLTExLTFDMy42NyAzIDMgMy42NyAzIDQuNXYxMWMwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTExYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9wMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC43NSAzQzMuNzggMyAzIDMuNzggMyA0Ljc1djE0LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTQuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNC43NUMyMSAzLjc4IDIwLjIyIDMgMTkuMjUgM0g0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9wMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTkuMjUgNC41Yy4xNCAwIC4yNS4xMS4yNS4yNXYxNC41YzAgLjE0LS4xMS4yNS0uMjUuMjVINC43NWEuMjUuMjUgMCAwIDEtLjI1LS4yNVY0Ljc1YzAtLjE0LjExLS4yNS4yNS0uMjVoMTQuNVpNNC43NSAzQzMuNzggMyAzIDMuNzggMyA0Ljc1djE0LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTQuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNC43NUMyMSAzLjc4IDIwLjIyIDMgMTkuMjUgM0g0Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcmFnZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JhZ2UxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMuNSA0QTIuNSAyLjUgMCAwIDAgMSA2LjV2MkEyLjUgMi41IDAgMCAwIDMuNSAxMWg5QTIuNSAyLjUgMCAwIDAgMTUgOC41di0yQTIuNSAyLjUgMCAwIDAgMTIuNSA0aC05Wk0xMCA3YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcmFnZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTEgNi41QTIuNSAyLjUgMCAwIDEgMy41IDRoOUEyLjUgMi41IDAgMCAxIDE1IDYuNXYyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDEgOC41di0yWk0zLjUgNUMyLjY3IDUgMiA1LjY3IDIgNi41djJjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05Wk0xMCA3YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2UyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yYWdlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0yIDguNUEyLjUgMi41IDAgMCAxIDQuNSA2aDExQTIuNSAyLjUgMCAwIDEgMTggOC41djNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMUEyLjUgMi41IDAgMCAxIDIgMTEuNXYtM1pNMTMgOWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBabTMgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JhZ2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMyA5YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFptMiAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlpNMiA4LjVBMi41IDIuNSAwIDAgMSA0LjUgNmgxMUEyLjUgMi41IDAgMCAxIDE4IDguNXYzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDExLjV2LTNaTTQuNSA3QzMuNjcgNyAzIDcuNjcgMyA4LjV2M2MwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yYWdlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01IDdoMTRhMyAzIDAgMCAxIDMgMi44MlYxNGEzIDMgMCAwIDEtMi44MiAzSDVhMyAzIDAgMCAxLTMtMi44MlYxMGEzIDMgMCAwIDEgMi44Mi0zSDE5IDVabTEzIDNhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWm0tNCAwYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcmFnZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUgN2gxNGEzIDMgMCAwIDEgMyAyLjgyVjE0YTMgMyAwIDAgMS0yLjgyIDNINWEzIDMgMCAwIDEtMy0yLjgyVjEwYTMgMyAwIDAgMSAyLjgyLTNIMTkgNVptMTQgMS41SDVjLS44MyAwLTEuNS42Ny0xLjUgMS41djRjMCAuODMuNjcgMS41IDEuNSAxLjVoMTRjLjgzIDAgMS41LS42NyAxLjUtMS41di00YzAtLjgzLS42Ny0xLjUtMS41LTEuNVpNMTggMTBhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yWm0tNCAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2UyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yYWdlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk01Ljc1IDhBMy43NSAzLjc1IDAgMCAwIDIgMTEuNzV2NC41QTMuNzUgMy43NSAwIDAgMCA1Ljc1IDIwaDE2LjVBMy43NSAzLjc1IDAgMCAwIDI2IDE2LjI1di00LjVBMy43NSAzLjc1IDAgMCAwIDIyLjI1IDhINS43NVptMTMgNC41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabTIuNzUgMS4yNWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcmFnZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yYWdlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMiAxMS43NUEzLjc1IDMuNzUgMCAwIDEgNS43NSA4aDE2LjVBMy43NSAzLjc1IDAgMCAxIDI2IDExLjc1djQuNUEzLjc1IDMuNzUgMCAwIDEgMjIuMjUgMjBINS43NUEzLjc1IDMuNzUgMCAwIDEgMiAxNi4yNXYtNC41Wk01Ljc1IDkuNWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2NC41YzAgMS4yNCAxLjAxIDIuMjUgMi4yNSAyLjI1aDE2LjVjMS4yNCAwIDIuMjUtMSAyLjI1LTIuMjV2LTQuNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUg1Ljc1Wm0xMyAzYTEuMjUgMS4yNSAwIDEgMS0yLjUgMCAxLjI1IDEuMjUgMCAwIDEgMi41IDBabTIuNzUgMS4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcmFnZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JhZ2UzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTYuNSA5QTQuNSA0LjUgMCAwIDAgMiAxMy41djVBNC41IDQuNSAwIDAgMCA2LjUgMjNoMTlhNC41IDQuNSAwIDAgMCA0LjUtNC41di01QTQuNSA0LjUgMCAwIDAgMjUuNSA5aC0xOVpNMjEgMTQuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFptMy41IDEuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JhZ2UzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcmFnZTMyUmVndWxhcicsIFwiMzJcIiwgW1wiTTIgMTMuNUE0LjUgNC41IDAgMCAxIDYuNSA5aDE5YTQuNSA0LjUgMCAwIDEgNC41IDQuNXY1YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtMTlBNC41IDQuNSAwIDAgMSAyIDE4LjV2LTVaTTYuNSAxMUEyLjUgMi41IDAgMCAwIDQgMTMuNXY1QTIuNSAyLjUgMCAwIDAgNi41IDIxaDE5YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTE5Wk0yMSAxNC41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0zLjUgMS41YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcmFnZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JhZ2U0OEZpbGxlZCcsIFwiNDhcIiwgW1wiTTEwLjI1IDE0QTYuMjUgNi4yNSAwIDAgMCA0IDIwLjI1djcuNUM0IDMxLjIgNi44IDM0IDEwLjI1IDM0aDI3LjVDNDEuMiAzNCA0NCAzMS4yIDQ0IDI3Ljc1di03LjVDNDQgMTYuOCA0MS4yIDE0IDM3Ljc1IDE0aC0yNy41Wk0zMiAyMWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTUgMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JhZ2U0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk00IDIwLjI1QzQgMTYuOCA2LjggMTQgMTAuMjUgMTRoMjcuNUM0MS4yIDE0IDQ0IDE2LjggNDQgMjAuMjV2Ny41QzQ0IDMxLjIgNDEuMiAzNCAzNy43NSAzNGgtMjcuNUE2LjI1IDYuMjUgMCAwIDEgNCAyNy43NXYtNy41Wm02LjI1LTMuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUgMy43NXY3LjVhMy43NSAzLjc1IDAgMCAwIDMuNzUgMy43NWgyNy41YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzV2LTcuNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0yNy41Wk0zMiAyMWEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBabTUgMmEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yZU1pY3Jvc29mdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JlTWljcm9zb2Z0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01IDMuNVY1SDIuNWEuNS41IDAgMCAwLS41LjVWMTJjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNS41YS41LjUgMCAwIDAtLjUtLjVIMTFWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM0M1LjY3IDIgNSAyLjY3IDUgMy41Wk02LjUgM2gzYy4yOCAwIC41LjIyLjUuNVY1SDZWMy41YzAtLjI4LjIyLS41LjUtLjVabS0xIDZWN2gydjJoLTJabTAgM3YtMmgydjJoLTJabTUtM2gtMlY3aDJ2MlptLTIgM3YtMmgydjJoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yZU1pY3Jvc29mdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yZU1pY3Jvc29mdDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTcuNSA3djJoLTJWN2gyWm0wIDV2LTJoLTJ2MmgyWm0zLTV2MmgtMlY3aDJabTAgNXYtMmgtMnYyaDJaTTUgNVYzLjVDNSAyLjY3IDUuNjcgMiA2LjUgMmgzYy44MyAwIDEuNS42NyAxLjUgMS41VjVoMi41Yy4yOCAwIC41LjIyLjUuNVYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1LjVhLjUuNSAwIDAgMSAuNS0uNUg1Wm0xLTEuNVY1aDRWMy41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41Wk0zIDEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjZIM3Y2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcmVNaWNyb3NvZnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdG9yZU1pY3Jvc29mdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNyAyLjVWNEgyLjVhLjUuNSAwIDAgMC0uNS41djEwQTIuNSAyLjUgMCAwIDAgNC41IDE3aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTBhLjUuNSAwIDAgMC0uNS0uNUgxM1YyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zQzcuNjcgMSA3IDEuNjcgNyAyLjVaTTguNSAyaDNjLjI4IDAgLjUuMjIuNS41VjRIOFYyLjVjMC0uMjguMjItLjUuNS0uNVptLTIgOFY3aDN2M2gtM1ptMCA0di0zaDN2M2gtM1ptNy00aC0zVjdoM3YzWm0tMyA0di0zaDN2M2gtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN0b3JlTWljcm9zb2Z0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JlTWljcm9zb2Z0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS41IDd2M2gtM1Y3aDNabTAgN3YtM2gtM3YzaDNabTQtN3YzaC0zVjdoM1ptMCA3di0zaC0zdjNoM1pNNyA0VjIuNUM3IDEuNjcgNy42NyAxIDguNSAxaDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWNGg0LjVjLjI4IDAgLjUuMjIuNS41djEwYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDE0LjV2LTEwYzAtLjI4LjIyLS41LjUtLjVIN1ptMS0xLjVWNGg0VjIuNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVptLTUgMTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41VjVIM3Y5LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdG9yZU1pY3Jvc29mdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0b3JlTWljcm9zb2Z0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk04IDMuNzVWNkgyLjc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTEuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAyMWgxNC41QTIuNzUgMi43NSAwIDAgMCAyMiAxOC4yNVY2Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1SDE2VjMuNzVDMTYgMi43OCAxNS4yMiAyIDE0LjI1IDJoLTQuNUM4Ljc4IDIgOCAyLjc4IDggMy43NVptMS43NS0uMjVoNC41Yy4xNCAwIC4yNS4xMS4yNS4yNVY2aC01VjMuNzVjMC0uMTQuMTEtLjI1LjI1LS4yNVpNOCAxM1Y5LjVoMy41VjEzSDhabTAgNC41VjE0aDMuNXYzLjVIOFptOC00LjVoLTMuNVY5LjVIMTZWMTNabS0zLjUgNC41VjE0SDE2djMuNWgtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3RvcmVNaWNyb3NvZnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RvcmVNaWNyb3NvZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMS41IDkuNVYxM0g4VjkuNWgzLjVabTAgOFYxNEg4djMuNWgzLjVabTQuNS04VjEzaC0zLjVWOS41SDE2Wm0wIDhWMTRoLTMuNXYzLjVIMTZaTTggNlYzLjc1QzggMi43OCA4Ljc4IDIgOS43NSAyaDQuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY2aDUuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djExLjVBMi43NSAyLjc1IDAgMCAxIDE5LjI1IDIxSDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTguMjVWNi43NWMwLS40MS4zNC0uNzUuNzUtLjc1SDhabTEuNS0yLjI1VjZoNVYzLjc1YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC00LjVhLjI1LjI1IDAgMCAwLS4yNS4yNVptLTYgMTQuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxNC41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVY3LjVoLTE3djEwLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWFtMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03LjUgOS4yNWE1Ljc1IDUuNzUgMCAwIDEgNS43NS01Ljc1aC41YS43NS43NSAwIDAgMCAwLTEuNWgtLjVDOS4yNSAyIDYgNS4yNSA2IDkuMjV2MWMwIC40MS0uMzQuNzUtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNXYtMVptNi4yNS0zQTMuMjUgMy4yNSAwIDAgMCAxMC41IDkuNXYxYTQuNzUgNC43NSAwIDAgMS00Ljc1IDQuNzVoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aDNjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtMWE0Ljc1IDQuNzUgMCAwIDEgNC43NS00Ljc1aDMuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTMuNVptLjUgMi43NWEuNzUuNzUgMCAwIDAtLjc1Ljc1djFjMCA0LTMuMjUgNy4yNS03LjI1IDcuMjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNUE1Ljc1IDUuNzUgMCAwIDAgMTIgMTAuNzV2LTFjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoM2EuNzUuNzUgMCAwIDEgMCAxLjVoLTNaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW0yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyA5YTYgNiAwIDAgMSA2LTZoLjVhLjUuNSAwIDAgMCAwLTFIMTNhNyA3IDAgMCAwLTcgN3YxYTEgMSAwIDAgMS0xIDFIMi41YS41LjUgMCAwIDAgMCAxSDVhMiAyIDAgMCAwIDItMlY5Wm02LjUtM0EzLjUgMy41IDAgMCAwIDEwIDkuNXYxQTQuNSA0LjUgMCAwIDEgNS41IDE1aC0zYS41LjUgMCAwIDEgMC0xaDNBMy41IDMuNSAwIDAgMCA5IDEwLjV2LTFBNC41IDQuNSAwIDAgMSAxMy41IDVoNGEuNS41IDAgMCAxIDAgMWgtNFptLjUgM2ExIDEgMCAwIDAtMSAxdjFhNyA3IDAgMCAxLTcgN2gtLjVhLjUuNSAwIDAgMSAwLTFINmE2IDYgMCAwIDAgNi02di0xYzAtMS4xLjktMiAyLTJoMy41YS41LjUgMCAwIDEgMCAxSDE0WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWFtMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05IDExYTcgNyAwIDAgMSA3LTdoMS41YTEgMSAwIDEgMCAwLTJIMTZhOSA5IDAgMCAwLTkgOSAxIDEgMCAwIDEtMSAxSDNhMSAxIDAgMSAwIDAgMmgzYTMgMyAwIDAgMCAzLTNabTgtM2E0IDQgMCAwIDAtNCA0IDYgNiAwIDAgMS02IDZIM2ExIDEgMCAxIDEgMC0yaDRhNCA0IDAgMCAwIDQtNCA2IDYgMCAwIDEgNi02aDRhMSAxIDAgMSAxIDAgMmgtNFptMSA0YTEgMSAwIDAgMC0xIDEgOSA5IDAgMCAxLTkgOUg2YTEgMSAwIDEgMSAwLTJoMmE3IDcgMCAwIDAgNy03IDMgMyAwIDAgMSAzLTNoM2ExIDEgMCAxIDEgMCAyaC0zWlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWFtMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTkgMTFhNy41IDcuNSAwIDAgMSA3LjUtNy41aC4xYS43NS43NSAwIDAgMCAwLTEuNWgtLjFhOSA5IDAgMCAwLTkgOXYxLjI1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMy41YS43NS43NSAwIDAgMCAwIDEuNWgzLjVBMi43NSAyLjc1IDAgMCAwIDkgMTIuMjVWMTFabTcuNzUtNGE0LjI1IDQuMjUgMCAwIDAtNC4yNSA0LjI1djEuNWE1Ljc1IDUuNzUgMCAwIDEtNS43NSA1Ljc1aC00YS43NS43NSAwIDAgMSAwLTEuNWg0QzkuMSAxNyAxMSAxNS4xIDExIDEyLjc1di0xLjVhNS43NSA1Ljc1IDAgMCAxIDUuNzUtNS43NWg0LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC00LjVabS41IDMuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVWMTNhOSA5IDAgMCAxLTkgOWgtLjI1YS43NS43NSAwIDAgMSAwLTEuNUg3YTcuNSA3LjUgMCAwIDAgNy41LTcuNXYtMS4yNUEyLjc1IDIuNzUgMCAwIDEgMTcuMjUgOWg0YS43NS43NSAwIDAgMSAwIDEuNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbTMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjAuNzUgM0ExMC43NSAxMC43NSAwIDAgMCAxMCAxMy43NXYxQzEwIDE1Ljk5IDkgMTcgNy43NSAxN2gtMy41YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWgzLjVhNC43NSA0Ljc1IDAgMCAwIDQuNzUtNC43NXYtMWMwLTQuNTYgMy43LTguMjUgOC4yNS04LjI1aDJhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC0yWm0tNi41IDExLjc1QTYuNzUgNi43NSAwIDAgMSAyMSA4aDYuNzVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDIxYTQuMjUgNC4yNSAwIDAgMC00LjI1IDQuMjV2MkE3Ljc1IDcuNzUgMCAwIDEgOSAyNC41SDQuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41SDljMi45IDAgNS4yNS0yLjM1IDUuMjUtNS4yNXYtMlptNyAzLjg5QTExLjA5IDExLjA5IDAgMCAxIDEwLjE2IDI5LjVoLS45MWExLjI1IDEuMjUgMCAwIDEgMC0yLjVoLjkxYTguNTkgOC41OSAwIDAgMCA4LjU5LTguNTl2LTIuMTZjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWg1Ljc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNUgyMmEuNzUuNzUgMCAwIDAtLjc1Ljc1djIuMzlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW0zMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjAuNSAzQzE0LjcgMyAxMCA3LjcgMTAgMTMuNXYxQTIuNSAyLjUgMCAwIDEgNy41IDE3SDRhMSAxIDAgMSAwIDAgMmgzLjVhNC41IDQuNSAwIDAgMCA0LjUtNC41di0xQzEyIDguOCAxNS44IDUgMjAuNSA1SDIzYTEgMSAwIDEgMCAwLTJoLTIuNVptLTYgMTEuNUE2LjUgNi41IDAgMCAxIDIxIDhoN2ExIDEgMCAxIDEgMCAyaC03YTQuNSA0LjUgMCAwIDAtNC41IDQuNXYyQTcuNSA3LjUgMCAwIDEgOSAyNEg0YTEgMSAwIDEgMSAwLTJoNWE1LjUgNS41IDAgMCAwIDUuNS01LjV2LTJaTTkgMjdoMS4xNkE4Ljg0IDguODQgMCAwIDAgMTkgMTguMTZWMTZhMyAzIDAgMCAxIDMtM2g2YTEgMSAwIDEgMSAwIDJoLTZhMSAxIDAgMCAwLTEgMXYyLjMxQTEwLjg0IDEwLjg0IDAgMCAxIDEwLjE2IDI5SDlhMSAxIDAgMSAxIDAtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbTQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMzAuNSA3QzIzLjYgNyAxOCAxMi42IDE4IDE5LjV2MWE3LjUgNy41IDAgMCAxLTcuNSA3LjVoLTVhMS41IDEuNSAwIDAgMSAwLTNoNWE0LjUgNC41IDAgMCAwIDQuNS00LjV2LTFBMTUuNSAxNS41IDAgMCAxIDMwLjUgNGg0LjI1YTEuNSAxLjUgMCAwIDEgMCAzSDMwLjVabTIgOGE2LjUgNi41IDAgMCAwLTYuNSA2LjV2MUExMy41IDEzLjUgMCAwIDEgMTIuNSAzNmgtN2ExLjUgMS41IDAgMCAxIDAtM2g3QzE4LjMgMzMgMjMgMjguMyAyMyAyMi41di0xYTkuNSA5LjUgMCAwIDEgOS41LTkuNWgxMGExLjUgMS41IDAgMCAxIDAgM2gtMTBabTEuNSA5LjM2YzAtLjc1LjYxLTEuMzYgMS4zNi0xLjM2aDcuMTRhMS41IDEuNSAwIDAgMCAwLTNoLTcuMTRBNC4zNiA0LjM2IDAgMCAwIDMxIDI0LjM2QzMxIDMzLjU2IDIzLjU1IDQxIDE0LjM2IDQxaC0uODZhMS41IDEuNSAwIDAgMCAwIDNoLjg2QzI1LjIxIDQ0IDM0IDM1LjIgMzQgMjQuMzZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW00OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNMzAuMjUgNi41Yy03LjA0IDAtMTIuNzUgNS43LTEyLjc1IDEyLjc1djFjMCA0LTMuMjUgNy4yNS03LjI1IDcuMjVoLTVhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDVBNC43NSA0Ljc1IDAgMCAwIDE1IDIwLjI1di0xQzE1IDEwLjgzIDIxLjgzIDQgMzAuMjUgNGg0LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41aC00LjVabTIgOGE2Ljc1IDYuNzUgMCAwIDAtNi43NSA2Ljc1djFjMCA3LjMyLTUuOTMgMTMuMjUtMTMuMjUgMTMuMjVoLTdhMS4yNSAxLjI1IDAgMSAxIDAtMi41aDdDMTguMTkgMzMgMjMgMjguMTkgMjMgMjIuMjV2LTFjMC01LjEgNC4xNC05LjI1IDkuMjUtOS4yNWgxMC41YTEuMjUgMS4yNSAwIDEgMSAwIDIuNWgtMTAuNVptMS4yNSA5LjYxYzAtLjg5LjcyLTEuNjEgMS42MS0xLjYxaDcuNjRhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC03LjY0QTQuMTEgNC4xMSAwIDAgMCAzMSAyNC4xMUMzMSAzMy40NCAyMy40NCA0MSAxNC4xMSA0MWgtLjg2YTEuMjUgMS4yNSAwIDEgMCAwIDIuNWguODZjMTAuNzEgMCAxOS4zOS04LjY4IDE5LjM5LTE5LjM5WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWFtSW5wdXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlYW1JbnB1dDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNy41IDkuMjVhNS43NSA1Ljc1IDAgMCAxIDUuNzUtNS43NWguNWEuNzUuNzUgMCAwIDAgMC0xLjVoLS41QzkuMjUgMiA2IDUuMjUgNiA5LjI1djFjMCAuNDEtLjM0Ljc1LS43NS43NUg0LjlsMS4zIDEuM2EyLjI1IDIuMjUgMCAwIDAgMS4zLTIuMDV2LTFaTTYuNCAxNi41bC0xLjIzIDEuMjNjLjE0LjE2LjM1LjI3LjU4LjI3aC41YzQgMCA3LjI1LTMuMjUgNy4yNS03LjI1di0xYzAtLjQxLjM0LS43NS43NS0uNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djFjMCAzLjEyLTIuNSA1LjY3LTUuNiA1Ljc1Wm0uOC0zLjA5Yy4yNi40OC4zNCAxLjAyLjIzIDEuNTNhNC43NSA0Ljc1IDAgMCAwIDMuMDctNC40NHYtMWMwLTEuOCAxLjQ2LTMuMjUgMy4yNS0zLjI1aDMuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTMuNUE0Ljc1IDQuNzUgMCAwIDAgOSA5LjV2MWMwIDEuMjgtLjc0IDIuMzgtMS44IDIuOTFabS01LjQ4LTIuNDRjLjMtLjMuNzctLjMgMS4wNiAwbDMgM2MuMy4zLjMuNzcgMCAxLjA2bC0zIDNhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwxLjcyLTEuNzJILjc1YS43NS43NSAwIDAgMSAwLTEuNWgyLjY5bC0xLjcyLTEuNzJhLjc1Ljc1IDAgMCAxIDAtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbUlucHV0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbUlucHV0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyA5YTYgNiAwIDAgMSA2LTZoLjVhLjUuNSAwIDAgMCAwLTFIMTNhNyA3IDAgMCAwLTcgN3YxYTEgMSAwIDAgMS0xIDFoLS45bDEgMUEyIDIgMCAwIDAgNyAxMFY5Wk0uNSAxNGEuNS41IDAgMCAwIDAgMWgzLjY4bC0yLjE0IDIuMTVhLjUuNSAwIDAgMCAuNy43bDMtMi45OWEuNS41IDAgMCAwIDAtLjcybC0zLTNhLjUuNSAwIDAgMC0uNy43MUw0LjE4IDE0SC41Wm05LjUtMy41YTQuNSA0LjUgMCAwIDEtMy4xNSA0LjNjLjA2LS4zNS4wMS0uNy0uMTItMS4wMkEzLjUgMy41IDAgMCAwIDkgMTAuNXYtMUE0LjUgNC41IDAgMCAxIDEzLjUgNWg0YS41LjUgMCAwIDEgMCAxaC00QTMuNSAzLjUgMCAwIDAgMTAgOS41djFaTTE0IDlhMSAxIDAgMCAwLTEgMXYxYTcgNyAwIDAgMS03IDdoLS41YS41LjUgMCAwIDEgMC0xSDZhNiA2IDAgMCAwIDYtNnYtMWMwLTEuMS45LTIgMi0yaDMuNWEuNS41IDAgMCAxIDAgMUgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbUlucHV0T3V0cHV0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtSW5wdXRPdXRwdXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzLjI1IDMuNUE1Ljc1IDUuNzUgMCAwIDAgNy41IDkuMjV2MWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtMi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTFDNiA1LjI1IDkuMjUgMiAxMy4yNSAyaC41YS43NS43NSAwIDAgMSAwIDEuNWgtLjVabS0yLjc1IDZjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjVBNC43NSA0Ljc1IDAgMCAwIDkgOS41djFjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtM2EuNzUuNzUgMCAwIDAgMCAxLjVoM2E0Ljc1IDQuNzUgMCAwIDAgNC43NS00Ljc1di0xWm0zLjc1LS41YS43NS43NSAwIDAgMC0uNzUuNzV2MWMwIC42Ni0uMDkgMS4zLS4yNSAxLjlhMS45IDEuOSAwIDAgMC0xLjU5LjA1Yy4yMi0uNjEuMzQtMS4yNy4zNC0xLjk1di0xYzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDNhLjc1Ljc1IDAgMCAxIDAgMS41aC0zWm0tMS40IDkuMTZhLjUuNSAwIDAgMS0uNy43bC0yLTJhLjUuNSAwIDAgMSAwLS43bDItMmEuNS41IDAgMCAxIC43LjdsLTEuMTQgMS4xNmg1LjU4bC0xLjE0LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wyIDJjLjIuMTkuMi41IDAgLjdsLTIgMmEuNS41IDAgMCAxLS43LS43bDEuMTQtMS4xNWgtNS41OGwxLjE0IDEuMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW1JbnB1dE91dHB1dDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlYW1JbnB1dE91dHB1dDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEzIDNhNiA2IDAgMCAwLTYgNnYxYTIgMiAwIDAgMS0yIDJIMi41YS41LjUgMCAwIDEgMC0xSDVhMSAxIDAgMCAwIDEtMVY5YTcgNyAwIDAgMSA3LTdoLjVhLjUuNSAwIDAgMSAwIDFIMTNabS0zIDYuNUEzLjUgMy41IDAgMCAxIDEzLjUgNmg0YS41LjUgMCAwIDAgMC0xaC00QTQuNSA0LjUgMCAwIDAgOSA5LjV2MUEzLjUgMy41IDAgMCAxIDUuNSAxNGgtM2EuNS41IDAgMCAwIDAgMWgzYTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMVptMyAuNWMwLS42LjQtMSAxLTFoMy41Yy4zIDAgLjUtLjIuNS0uNXMtLjItLjUtLjUtLjVIMTRhMiAyIDAgMCAwLTIgMnYxYzAgLjktLjIgMS43LS41IDIuNC4zLS4yLjYtLjQgMS0uNGguMmMuMi0uNi4zLTEuMy4zLTJ2LTFabS0uMTUgOC4xNmEuNS41IDAgMCAxLS43LjdsLTItMmEuNS41IDAgMCAxIDAtLjdsMi0yYS41LjUgMCAwIDEgLjcuN2wtMS4xNCAxLjE2aDUuNThsLTEuMTQtMS4xNWEuNS41IDAgMCAxIC43LS43bDIgMmMuMi4xOS4yLjUgMCAuN2wtMiAyYS41LjUgMCAwIDEtLjctLjdsMS4xNC0xLjE1aC01LjU4bDEuMTQgMS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVhbU91dHB1dDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0cmVhbU91dHB1dDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYuNzggMS45N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDEuNzIgMS43MmgtMy42OUE0Ljc1IDQuNzUgMCAwIDAgOSA5LjV2MWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC0zYS43NS43NSAwIDAgMCAwIDEuNWgzYTQuNzUgNC43NSAwIDAgMCA0Ljc1LTQuNzV2LTFjMC0xLjggMS40Ni0zLjI1IDMuMjUtMy4yNWgzLjY5bC0xLjcyIDEuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwzLTNjLjMtLjMuMy0uNzcgMC0xLjA2bC0zLTNaTTEzLjI1IDMuNUE1Ljc1IDUuNzUgMCAwIDAgNy41IDkuMjV2MWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNWgtMi41YS43NS43NSAwIDAgMSAwLTEuNWgyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTFDNiA1LjI1IDkuMjUgMiAxMy4yNSAyaC41YS43NS43NSAwIDAgMSAwIDEuNWgtLjVabS45MSA0Yy0uMjQuNDktLjMgMS4wMy0uMTcgMS41NC0uMjguMS0uNDkuMzktLjQ5LjcxdjFjMCA0LTMuMjUgNy4yNS03LjI1IDcuMjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNUE1Ljc1IDUuNzUgMCAwIDAgMTIgMTAuNzV2LTFjMC0xLjIxLjk2LTIuMiAyLjE2LTIuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHJlYW1PdXRwdXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWFtT3V0cHV0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuMTUgMi4xNWMuMi0uMi41LS4yLjcgMGwzIDIuOTlhLjUuNSAwIDAgMSAwIC43MmwtMyAzYS41LjUgMCAwIDEtLjctLjcxTDE4LjI5IDZIMTMuNUMxMS42IDYgMTAgNy42IDEwIDkuNXYxQzEwIDEzIDggMTUgNS41IDE1aC0zYy0uMyAwLS41LS4yLS41LS41cy4yLS41LjUtLjVoM0M3LjQgMTQgOSAxMi40IDkgMTAuNXYtMUM5IDcgMTEgNSAxMy41IDVoNC44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMSAwLS43Wk0yLjUgMTJINWEyIDIgMCAwIDAgMi0yVjljMC0zLjMgMi43LTYgNi02aC41Yy4zIDAgLjUtLjIuNS0uNXMtLjItLjUtLjUtLjVIMTNDOS4xIDIgNiA1LjEgNiA5djFjMCAuNi0uNCAxLTEgMUgyLjVjLS4zIDAtLjUuMi0uNS41cy4yLjUuNS41Wm0xMi42LTRIMTRhMiAyIDAgMCAwLTIgMnYxYzAgMy4zLTIuNyA2LTYgNmgtLjVjLS4zIDAtLjUuMi0uNS41cy4yLjUuNS41SDZjMy45IDAgNy0zLjEgNy03di0xYzAtLjYuNC0xIDEtMWgxLjFjLS4xLS4zLS4xLS43IDAtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVldFNpZ24yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlZXRTaWduMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk03IDRhMiAyIDAgMSAxIDQgMHYxaDIuMzhhMiAyIDAgMCAxIDEuNDEuNTlsMi4wNiAyLjA2YS41LjUgMCAwIDEgMCAuN2wtMi4wNiAyLjA2YTIgMiAwIDAgMS0xLjQxLjU5SDExdjZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LTZINWEyIDIgMCAwIDEtMi0yVjdjMC0xLjEuOS0yIDItMmgyVjRabTMgMGExIDEgMCAwIDAtMiAwdjFoMlY0Wk04IDE3aDJ2LTZIOHY2WlwiXSk7XG5leHBvcnQgY29uc3QgU3RyZWV0U2lnbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlZXRTaWduMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyA0YTIgMiAwIDEgMSA0IDB2MWgyLjM4YTIgMiAwIDAgMSAxLjQxLjU5bDIuMDYgMi4wNmEuNS41IDAgMCAxIDAgLjdsLTIuMDYgMi4wNmEyIDIgMCAwIDEtMS40MS41OUgxMXY2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi02SDVhMiAyIDAgMCAxLTItMlY3YzAtMS4xLjktMiAyLTJoMlY0Wm0xIDFoMlY0YTEgMSAwIDAgMC0yIDB2MVptMCA2djZoMnYtNkg4Wk00IDd2MmExIDEgMCAwIDAgMSAxaDguMzhhMSAxIDAgMCAwIC43LS4zTDE1LjggOGwtMS43LTEuN2ExIDEgMCAwIDAtLjcxLS4zSDVhMSAxIDAgMCAwLTEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVldFNpZ24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdHJlZXRTaWduMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk04IDQuNWEyLjUgMi41IDAgMCAxIDUgMFY2aDMuMzhjLjYgMCAxLjE3LjI0IDEuNTkuNjZsMi44MSAyLjgxYy4zLjMuMy43NyAwIDEuMDZsLTIuODEgMi44MWMtLjQyLjQyLTEgLjY2LTEuNi42NkgxM3Y2Ljc1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtMi41QzguNTYgMjIgOCAyMS40NCA4IDIwLjc1VjE0SDUuMjVDNC4wMSAxNCAzIDEzIDMgMTEuNzV2LTMuNUMzIDcuMDEgNCA2IDUuMjUgNkg4VjQuNVptMy41IDBhMSAxIDAgMSAwLTIgMFY2aDJWNC41Wm0tMiAxNmgyVjE0aC0ydjYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0cmVldFNpZ24yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3RyZWV0U2lnbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTggNC41YTIuNSAyLjUgMCAwIDEgNSAwVjZoMy4zOGMuNiAwIDEuMTcuMjQgMS41OS42NmwyLjgxIDIuODFjLjMuMy4zLjc3IDAgMS4wNmwtMi44MSAyLjgxYy0uNDIuNDItMSAuNjYtMS42LjY2SDEzdjYuNzVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1aC0yLjVDOC41NiAyMiA4IDIxLjQ0IDggMjAuNzVWMTRINS4yNUM0LjAxIDE0IDMgMTMgMyAxMS43NXYtMy41QzMgNy4wMSA0IDYgNS4yNSA2SDhWNC41Wk05LjUgNmgyVjQuNWExIDEgMCAxIDAtMiAwVjZabTAgOHY2LjVoMlYxNGgtMlptLTUtNS43NXYzLjVjMCAuNDEuMzQuNzUuNzUuNzVoMTEuMTNjLjIgMCAuMzktLjA4LjUzLS4yMkwxOS4xOSAxMCAxNi45IDcuNzJhLjc1Ljc1IDAgMCAwLS41My0uMjJINS4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgU3R5bGVHdWlkZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0eWxlR3VpZGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYuODIgMTcuMjZjLjA3LjI3LjE5LjUyLjMzLjc0SDdhMiAyIDAgMCAxLTItMnYtNS41NGwxLjgyIDYuOFpNNCAxNi41YzAgLjE1LjAxLjMuMDQuNDRsLS4wNi0uMDFhMiAyIDAgMCAxLTEuNDEtMi40NWwxLjQyLTUuMzRMNCAxNi41Wm0zLjY1LjAyYTIgMiAwIDAgMCAyLjQ2IDEuNDFsNS40MS0xLjQ1YTIgMiAwIDAgMCAxLjQxLTIuNDVMMTQuMSAzLjQ4YTIgMiAwIDAgMC0yLjQ1LTEuNDFMNi4yMyAzLjUyYTIgMiAwIDAgMC0xLjQxIDIuNDVsMi44MyAxMC41NVpNOSA2LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdHlsZUd1aWRlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0eWxlR3VpZGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk04LjYyIDE2LjI2YTEgMSAwIDAgMCAxLjIzLjdsNS40MS0xLjQ1YTEgMSAwIDAgMCAuNy0xLjIyTDEzLjE0IDMuNzRhMSAxIDAgMCAwLTEuMjItLjdMNi40OSA0LjQ4YTEgMSAwIDAgMC0uNyAxLjIybDIuODMgMTAuNTVabTEuNDkgMS42N2EyIDIgMCAwIDEtMi40Ni0xLjQxTDQuODIgNS45N2EyIDIgMCAwIDEgMS40MS0yLjQ1bDUuNDItMS40NWEyIDIgMCAwIDEgMi40NSAxLjQxbDIuODMgMTAuNTVhMiAyIDAgMCAxLTEuNCAyLjQ1bC01LjQyIDEuNDVaTTcgMThoLjE0YTIuNDggMi40OCAwIDAgMS0uMzMtLjc0bC0uMDgtLjNBMSAxIDAgMCAxIDYgMTZ2LTEuNzlsLTEtMy43M1YxNmEyIDIgMCAwIDAgMiAyWk00IDE2LjVjMCAuMTUuMDEuMy4wNC40NWwtLjA2LS4wMmEyIDIgMCAwIDEtMS40MS0yLjQ1bDEuNDItNS4zM3YzLjg2bC0uNDYgMS43M0ExIDEgMCAwIDAgNCAxNS44NnYuNjRabTQuMjUtMTFhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgU3R5bGVHdWlkZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N0eWxlR3VpZGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE3LjQgNC43MiAyLjcyIDEwLjE0YTIuNzUgMi43NSAwIDAgMS0xLjk0IDMuMzdsLTYuMjggMS42OWEyLjc1IDIuNzUgMCAwIDEtMy4zNy0xLjk1TDUuOCA3LjgzYTIuNzUgMi43NSAwIDAgMSAxLjk1LTMuMzdsNi4yNy0xLjY4YzEuNDctLjQgMi45OC40OCAzLjM3IDEuOTRabS02LjQ0IDMuMDJhMSAxIDAgMSAwLTEuOTMuNTIgMSAxIDAgMCAwIDEuOTMtLjUyWk01LjggMTEuNjZsMS43NiA2LjU3Yy4xOC42Ny41NCAxLjI2IDEgMS43MWwtLjQ0LS4wMmEyLjc1IDIuNzUgMCAwIDEtMi42LTIuOWwuMjgtNS4zNlptLS45Mi0xLjQ4LS4zNiA2LjhjLS4wNC43LjEyIDEuMzYuNDMgMS45NGwtLjQyLS4xNmEyLjc1IDIuNzUgMCAwIDEtMS41OC0zLjU2bDEuOTMtNS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN0eWxlR3VpZGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3R5bGVHdWlkZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE0LjAzIDIuNzhjMS40Ny0uNCAyLjk4LjQ4IDMuMzcgMS45NGwyLjcyIDEwLjE0YTIuNzUgMi43NSAwIDAgMS0xLjk0IDMuMzdsLTYuMjggMS42OWEyLjc1IDIuNzUgMCAwIDEtMy4zNy0xLjk1TDUuOCA3LjgzYTIuNzUgMi43NSAwIDAgMSAxLjk1LTMuMzdsNi4yNy0xLjY4Wk01LjggMTEuNjZsMS43NiA2LjU3Yy4xOC42Ny41NCAxLjI2IDEgMS43MWwtLjQ0LS4wMmEyLjc1IDIuNzUgMCAwIDEtMi42LTIuOWwuMjgtNS4zNlptOC42Mi03LjQzTDguMTQgNS45Yy0uNjYuMTgtMS4wNi44Ni0uODggMS41M2wyLjcyIDEwLjE0Yy4xOC42Ny44NiAxLjA2IDEuNTMuODlsNi4yOC0xLjY5Yy42Ni0uMTcgMS4wNi0uODYuODgtMS41M0wxNS45NSA1LjExYTEuMjUgMS4yNSAwIDAgMC0xLjUzLS44OFptLTkuNTQgNS45NS0uMzYgNi44Yy0uMDQuNy4xMiAxLjM2LjQzIDEuOTRsLS40Mi0uMTZhMi43NSAyLjc1IDAgMCAxLTEuNTgtMy41NmwxLjkzLTUuMDJabTQuODYtMy4xNWExIDEgMCAxIDEgLjUyIDEuOTQgMSAxIDAgMCAxLS41Mi0xLjk0WlwiXSk7XG5leHBvcnQgY29uc3QgU3ViR3JpZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YkdyaWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTYgMTAuNXYyYzAgLjgzLjY3IDEuNSAxLjUgMS41aDJ2LTMuNUg2Wm0wLTF2LTJDNiA2LjY3IDYuNjcgNiA3LjUgNmgydjMuNUg2Wk0xMC41IDZ2My41SDE0di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMlptMy41IDQuNWgtMy41VjE0aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di0yWk02IDNhMyAzIDAgMCAwLTMgM3Y4YTMgMyAwIDAgMCAzIDNoOGEzIDMgMCAwIDAgMy0zVjZhMyAzIDAgMCAwLTMtM0g2Wm0tMiA3LjVoMnYtMUg0VjZjMC0xLjEuOS0yIDItMmgzLjV2MmgxVjRIMTRhMiAyIDAgMCAxIDIgMnYzLjVoLTJ2MWgyVjE0YTIgMiAwIDAgMS0yIDJoLTMuNXYtMmgtMXYySDZhMiAyIDAgMCAxLTItMnYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3ViR3JpZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJHcmlkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCAxNHYtMy41aDJ2MmMwIC44My42NyAxLjUgMS41IDEuNWgydjJINmEyIDIgMCAwIDEtMi0yWm02LjUgMGgyYy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmgyVjE0YTIgMiAwIDAgMS0yIDJoLTMuNXYtMlptMi41LTMuNXYyYS41LjUgMCAwIDEtLjUuNWgtMnYtMi41SDEzWm0xLTF2LTJjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0yVjRIMTRhMiAyIDAgMCAxIDIgMnYzLjVoLTJaTTEwLjUgN2gyYy4yOCAwIC41LjIyLjUuNXYyaC0yLjVWN1ptLTEtMWgtMkM2LjY3IDYgNiA2LjY3IDYgNy41djJINFY2YzAtMS4xLjktMiAyLTJoMy41djJaTTcgOS41di0yYzAtLjI4LjIyLS41LjUtLjVoMnYyLjVIN1ptMCAxaDIuNVYxM2gtMmEuNS41IDAgMCAxLS41LS41di0yWlwiXSk7XG5leHBvcnQgY29uc3QgU3ViR3JpZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YkdyaWQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoNVY3aC0xLjVBMi43NSAyLjc1IDAgMCAwIDcgOS43NXYxLjVINC41di01Wm0yLjUgNi41di0xLjVoNC4yNVY3aDEuNXY0LjI1SDE3djEuNWgtNC4yNVYxN2gtMS41di00LjI1SDdabTAgMHYxLjVBMi43NSAyLjc1IDAgMCAwIDkuNzUgMTdoMS41djIuNWgtNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di01SDdaTTEyLjc1IDE3aDEuNUEyLjc1IDIuNzUgMCAwIDAgMTcgMTQuMjV2LTEuNWgyLjV2NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTVWMTdaTTE3IDExLjI1di0xLjVBMi43NSAyLjc1IDAgMCAwIDE0LjI1IDdoLTEuNVY0LjVoNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXY1SDE3WlwiXSk7XG5leHBvcnQgY29uc3QgU3ViR3JpZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJHcmlkMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWg1VjdoLTEuNUEyLjc1IDIuNzUgMCAwIDAgNyA5Ljc1djEuNUg0LjV2LTVabTIuNSA2LjV2MS41QTIuNzUgMi43NSAwIDAgMCA5Ljc1IDE3aDEuNXYyLjVoLTVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtNUg3Wm00LjI1IDIuNzVoLTEuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di0xLjVoMi43NXYyLjc1Wm0xLjUgMS41aDEuNUEyLjc1IDIuNzUgMCAwIDAgMTcgMTQuMjV2LTEuNWgyLjV2NWMwIC45Ny0uNzggMS43NS0xLjc1IDEuNzVoLTVWMTdabTIuNzUtNC4yNXYxLjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1aC0xLjV2LTIuNzVoMi43NVptMS41LTEuNXYtMS41QTIuNzUgMi43NSAwIDAgMCAxNC4yNSA3aC0xLjVWNC41aDVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzV2NUgxN1pNMTIuNzUgOC41aDEuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYxLjVoLTIuNzVWOC41Wm0tMS41IDB2Mi43NUg4LjV2LTEuNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0aXRsZXMxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0aXRsZXMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgNS41QTIuNSAyLjUgMCAwIDEgMy41IDNoOUEyLjUgMi41IDAgMCAxIDE1IDUuNXY1YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDEgMTAuNXYtNVptMiAzYzAgLjI4LjIyLjUuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTAgOC41YzAgLjI4LjIyLjUuNS41aDJhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMC0uNS41Wk04LjUgMTBhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRpdGxlczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0aXRsZXMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xIDUuNUEyLjUgMi41IDAgMCAxIDMuNSAzaDlBMi41IDIuNSAwIDAgMSAxNSA1LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAxIDEwLjV2LTVaTTMuNSA0QzIuNjcgNCAyIDQuNjcgMiA1LjV2NWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaTTMgOC41YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1pNMTAgOC41YzAtLjI4LjIyLS41LjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41Wk04LjUgMTBhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRpdGxlczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRpdGxlczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE2SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjV2LTYuNVptMiA0Ljc1YzAgLjI4LjIyLjUuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41Wm0uNSAxLjVhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMWgtM1ptOC41LTEuNWMwIC4yOC4yMi41LjUuNWgyYS41LjUgMCAwIDAgMC0xaC0yYS41LjUgMCAwIDAtLjUuNVpNOS41IDEzYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0aXRsZXMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidGl0bGVzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA2Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDRoMTAuNUEyLjc1IDIuNzUgMCAwIDEgMTggNi43NXY2LjVBMi43NSAyLjc1IDAgMCAxIDE1LjI1IDE2SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjV2LTYuNVpNNC43NSA1QzMuNzggNSAzIDUuNzggMyA2Ljc1djYuNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NWgxMC41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtNi41QzE3IDUuNzggMTYuMjIgNSAxNS4yNSA1SDQuNzVaTTQgMTEuNWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNVptLjUgMS41YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTNabTguNS0xLjVjMC0uMjguMjItLjUuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjVaTTkuNSAxM2EuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC02WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidGl0bGVzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidGl0bGVzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yIDcuMjVDMiA1LjQ1IDMuNDYgNCA1LjI1IDRoMTMuNUMyMC41NSA0IDIyIDUuNDYgMjIgNy4yNXY5LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg1LjI1QTMuMjUgMy4yNSAwIDAgMSAyIDE2Ljc1di05LjVabTMgNmMwIC40MS4zNC43NS43NS43NWg3LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NVptMTAuNzUtLjc1YS43NS43NSAwIDAgMCAwIDEuNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVaTTUgMTYuMjVjMCAuNDEuMzQuNzUuNzUuNzVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41YS43NS43NSAwIDAgMC0uNzUuNzVabTYuNzUtLjc1YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0aXRsZXMyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidGl0bGVzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA3LjI1QzIgNS40NSAzLjQ2IDQgNS4yNSA0aDEzLjVDMjAuNTUgNCAyMiA1LjQ2IDIyIDcuMjV2OS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNi43NXYtOS41Wk01LjI1IDUuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2OS41YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1aDEzLjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1di05LjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDUuMjVaTTUgMTMuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTEwLjc1LS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMi41YS43NS43NSAwIDAgMCAwLTEuNWgtMi41Wk01IDE2LjI1YzAtLjQxLjM0LS43NS43NS0uNzVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1Wm02Ljc1LS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNWgtNi41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3QxMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdDEyRmlsbGVkJywgXCIxMlwiLCBbXCJNMiA2YzAtLjQxLjM0LS43NS43NS0uNzVoNi41YS43NS43NSAwIDAgMSAwIDEuNWgtNi41QS43NS43NSAwIDAgMSAyIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdDEyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdDEyUmVndWxhcicsIFwiMTJcIiwgW1wiTTIgNmMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSAyIDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0zIDhjMC0uNDEuMzQtLjc1Ljc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVBLjc1Ljc1IDAgMCAxIDMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMyA4YzAtLjI4LjIyLS41LjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOUEuNS41IDAgMCAxIDMgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3QyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgMTBjMC0uNDEuMzQtLjc1Ljc1LS43NWgxMi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1QS43NS43NSAwIDAgMSAzIDEwWlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3QyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3QyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDEwYzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzQS41LjUgMCAwIDEgMyAxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3QyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTQgMTNoMTZhMSAxIDAgMSAwIDAtMkg0YTEgMSAwIDEgMCAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMuNzUgMTIuNWgxNi41YS43NS43NSAwIDAgMCAwLTEuNUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3QyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMgMTRhMSAxIDAgMCAxIDEtMWgyMGExIDEgMCAxIDEgMCAySDRhMSAxIDAgMCAxLTEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMyAxMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDIwLjVhLjc1Ljc1IDAgMCAxIDAgMS41SDMuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk02IDIzLjVjMC0uODMuNjctMS41IDEuNS0xLjVoMzNhMS41IDEuNSAwIDAgMSAwIDNoLTMzQTEuNSAxLjUgMCAwIDEgNiAyMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3Q0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3Q0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk02IDIzLjI1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDMzLjVhMS4yNSAxLjI1IDAgMSAxIDAgMi41SDcuMjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMTJGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGUxMkZpbGxlZCcsIFwiMTJcIiwgW1wiTTEgNmE1IDUgMCAxIDEgMTAgMEE1IDUgMCAwIDEgMSA2Wm0zLS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMTJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMTJSZWd1bGFyJywgXCIxMlwiLCBbXCJNNCA1LjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMUg0Wk02IDFhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDYgMVpNMiA2YTQgNCAwIDEgMSA4IDAgNCA0IDAgMCAxLTggMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEgOGE3IDcgMCAxIDEgMTQgMEE3IDcgMCAwIDEgMSA4Wm00IDBjMCAuMjguMjIuNS41LjVoNWEuNS41IDAgMCAwIDAtMWgtNUEuNS41IDAgMCAwIDUgOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAyIDhabTYtN2E3IDcgMCAxIDAgMCAxNEE3IDcgMCAwIDAgOCAxWk01LjUgNy41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xOCAxMGE4IDggMCAxIDEtMTYgMCA4IDggMCAwIDEgMTYgMFpNNiAxMGMwIC4yOC4yMi41LjUuNWg3YS41LjUgMCAwIDAgMC0xaC03YS41LjUgMCAwIDAtLjUuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNiAxMGMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSA2IDEwWm00IDhhOCA4IDAgMSAwIDAtMTYgOCA4IDAgMCAwIDAgMTZabTAtMWE3IDcgMCAxIDEgMC0xNCA3IDcgMCAwIDEgMCAxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDJhMTAgMTAgMCAxIDEgMCAyMCAxMCAxMCAwIDAgMSAwLTIwWm0tNC4yNSA5LjI1YS43NS43NSAwIDAgMC0uMSAxLjVoOC42YS43NS43NSAwIDAgMCAuMS0xLjVoLTguNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTIgMmExMCAxMCAwIDEgMSAwIDIwIDEwIDEwIDAgMCAxIDAtMjBabTAgMS41YTguNSA4LjUgMCAxIDAgMCAxNyA4LjUgOC41IDAgMCAwIDAtMTdabTQuMjUgNy43NWEuNzUuNzUgMCAwIDEgMCAxLjVoLTguNWEuNzUuNzUgMCAwIDEgMC0xLjVoOC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdENpcmNsZTI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQgMmExMiAxMiAwIDEgMSAwIDI0IDEyIDEyIDAgMCAxIDAtMjRaTTguNzUgMTMuMjVhLjc1Ljc1IDAgMCAwLS4xIDEuNWgxMC42YS43NS43NSAwIDAgMCAuMS0xLjVIOC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMTQgMmExMiAxMiAwIDEgMSAwIDI0IDEyIDEyIDAgMCAxIDAtMjRabTAgMS41YTEwLjUgMTAuNSAwIDEgMCAwIDIxIDEwLjUgMTAuNSAwIDAgMCAwLTIxWm01LjI1IDkuNzVhLjc1Ljc1IDAgMCAxIDAgMS41SDguNzVhLjc1Ljc1IDAgMCAxIDAtMS41aDEwLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0zMCAxNmExNCAxNCAwIDEgMS0yOCAwIDE0IDE0IDAgMCAxIDI4IDBabS0yMC0xYTEgMSAwIDEgMCAwIDJoMTJhMSAxIDAgMSAwIDAtMkgxMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMjggMTZhMTIgMTIgMCAxIDAtMjQgMCAxMiAxMiAwIDAgMCAyNCAwWm0yIDBhMTQgMTQgMCAxIDEtMjggMCAxNCAxNCAwIDAgMSAyOCAwWm0tMjAtMWExIDEgMCAxIDAgMCAyaDEyYTEgMSAwIDEgMCAwLTJIMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0yNCA0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAwIDAgMC00MFpNMTQgMjRjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTE3LjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlNDhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNNi41IDI0YTE3LjUgMTcuNSAwIDEgMSAzNSAwIDE3LjUgMTcuNSAwIDAgMS0zNSAwWk0yNCA0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAwIDAgMC00MFpNMTQgMjRjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoMTcuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjVoLTE3LjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0Q2lyY2xlQXJyb3dCYWNrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVBcnJvd0JhY2sxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgOGE2IDYgMCAxIDEgMTIgLjI1IDQuNSA0LjUgMCAwIDAtMi41MS0uMTQuNS41IDAgMCAwLS40OS0uNjFINWEuNS41IDAgMCAwIDAgMWg1LjQ0QTQuNSA0LjUgMCAwIDAgOC4yNSAxNEg4YTYgNiAwIDAgMS02LTZabTE0IDQuNWEzLjUgMy41IDAgMSAxLTcgMCAzLjUgMy41IDAgMCAxIDcgMFptLTQuMTUtLjY1YS41LjUgMCAwIDAtLjctLjdsLTEgMWEuNS41IDAgMCAwIDAgLjdsMSAxYS41LjUgMCAwIDAgLjctLjdsLS4xNC0uMTVoMi4wNGMuMTQgMCAuMjUuMTEuMjUuMjV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1aC0yLjA0bC4xNC0uMTVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZUFycm93QmFjazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdENpcmNsZUFycm93QmFjazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTMgOGE1IDUgMCAwIDEgMTAgMHYuMDNjLjM0LjA0LjY4LjExIDEgLjIyVjhhNiA2IDAgMSAwLTUuNzUgNiA0LjQ3IDQuNDcgMCAwIDEtLjIyLTFIOGE1IDUgMCAwIDEtNS01Wm04LjUgMGEuNS41IDAgMCAxLS4wMS4xMWMtLjM3LjA5LS43Mi4yMi0xLjA1LjM5SDVhLjUuNSAwIDAgMSAwLTFoNmMuMjggMCAuNS4yMi41LjVabTQuNSA0LjVhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDBabS00LjE1LS42NWEuNS41IDAgMCAwLS43LS43bC0xIDFhLjUuNSAwIDAgMCAwIC43bDEgMWEuNS41IDAgMCAwIC43LS43bC0uMTQtLjE1aDIuMDRjLjE0IDAgLjI1LjExLjI1LjI1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNWgtMi4wNGwuMTQtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVBcnJvd0JhY2syMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdENpcmNsZUFycm93QmFjazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYuOTggOS41OSAxNyA5YTggOCAwIDEgMC03LjQxIDcuOThBNS40OCA1LjQ4IDAgMCAxIDEyLjIgOS41SDUuNWEuNS41IDAgMCAxIDAtMWg3YS41LjUgMCAwIDEgLjQ1LjcyIDUuNSA1LjUgMCAwIDEgNC4wMy4zN1pNMTkgMTQuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTUuNC0yLjZhLjUuNSAwIDAgMC0uNyAwbC0xLjc1IDEuNzVhLjUuNSAwIDAgMCAwIC43bDEuNzUgMS43NWEuNS41IDAgMCAwIC43LS43bC0uOS0uOWgxLjU1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVoLTEuNTRsLjktLjlhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVBcnJvd0JhY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVBcnJvd0JhY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjUgOC41YS41LjUgMCAwIDAgMCAxaDYuN2MuMjQtLjExLjUtLjIuNzUtLjI4YS41LjUgMCAwIDAtLjQ1LS43MmgtN1ptMTAuNS43VjlhNyA3IDAgMSAwLTYuOCA3Yy4xLjM0LjIzLjY3LjM5Ljk4TDkgMTdhOCA4IDAgMSAxIDcuOTgtNy40MUE1LjQ2IDUuNDYgMCAwIDAgMTYgOS4yWm0zIDUuM2E0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTUuNC0yLjZhLjUuNSAwIDAgMC0uNyAwbC0xLjc1IDEuNzVhLjUuNSAwIDAgMCAwIC43bDEuNzUgMS43NWEuNS41IDAgMCAwIC43LS43bC0uOS0uOWgxLjU1Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1di4yNWEuNS41IDAgMCAwIDEgMHYtLjI1YTIuNzUgMi43NSAwIDAgMC0yLjc1LTIuNzVoLTEuNTRsLjktLjlhLjUuNSAwIDAgMCAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVBcnJvd0ZvcndhcmQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdENpcmNsZUFycm93Rm9yd2FyZDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA4YTYgNiAwIDEgMSAxMiAuMjUgNC41IDQuNSAwIDAgMC0yLjUxLS4xNC41LjUgMCAwIDAtLjQ5LS42MUg1YS41LjUgMCAwIDAgMCAxaDUuNDRBNC41IDQuNSAwIDAgMCA4LjI1IDE0SDhhNiA2IDAgMCAxLTYtNlptNyA0LjVhMy41IDMuNSAwIDEgMCA3IDAgMy41IDMuNSAwIDAgMC03IDBabTQuMTUtLjY1YS41LjUgMCAwIDEgLjctLjdsMSAxYy4yLjIuMi41IDAgLjdsLTEgMWEuNS41IDAgMCAxLS43LS43bC4xNC0uMTVoLTIuMDRhLjI1LjI1IDAgMCAwLS4yNS4yNXYuMjVhLjUuNSAwIDAgMS0xIDB2LS4yNWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgyLjA0bC0uMTQtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVBcnJvd0ZvcndhcmQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVBcnJvd0ZvcndhcmQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk04IDNhNSA1IDAgMCAwIDAgMTBoLjAzYy4wNC4zNC4xMS42OC4yMiAxSDhhNiA2IDAgMSAxIDYtNS43NSA0LjQ3IDQuNDcgMCAwIDAtMS0uMjJWOGE1IDUgMCAwIDAtNS01Wm0yLjQ0IDUuNWMuMzMtLjE3LjY4LS4zIDEuMDUtLjM5QS41LjUgMCAwIDAgMTEgNy41SDVhLjUuNSAwIDAgMCAwIDFoNS40NFpNMTIuNSAxNmEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN1ptLjY1LTQuODVhLjUuNSAwIDAgMCAwIC43bC4xNC4xNWgtMi4wNGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2LjI1YS41LjUgMCAwIDAgMSAwdi0uMjVjMC0uMTQuMTEtLjI1LjI1LS4yNWgyLjA0bC0uMTQuMTVhLjUuNSAwIDAgMCAuNy43bDEtMWEuNS41IDAgMCAwIDAtLjdsLTEtMWEuNS41IDAgMCAwLS43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdENpcmNsZUFycm93Rm9yd2FyZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0Q2lyY2xlQXJyb3dGb3J3YXJkMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNi45OCA5LjU5IDE3IDlhOCA4IDAgMSAwLTcuNDEgNy45OEE1LjQ4IDUuNDggMCAwIDEgMTIuMiA5LjVINS41YS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAuNDUuNzIgNS41IDUuNSAwIDAgMSA0LjAzLjM3Wk0xMCAxNC41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm01LjQtMi42Yy4yLS4yLjUtLjIuNyAwbDEuNzUgMS43NWEuNS41IDAgMCAxIDAgLjdMMTYuMSAxNi4xYS41LjUgMCAwIDEtLjctLjdsLjktLjloLTEuNTVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1di4yNWEuNS41IDAgMCAxLTEgMHYtLjI1YTIuNzUgMi43NSAwIDAgMSAyLjc1LTIuNzVoMS41NGwtLjktLjlhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RDaXJjbGVBcnJvd0ZvcndhcmQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RDaXJjbGVBcnJvd0ZvcndhcmQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjUgOC41YS41LjUgMCAwIDAgMCAxaDYuN2MuMjQtLjExLjUtLjIuNzUtLjI4YS41LjUgMCAwIDAtLjQ1LS43MmgtN1ptMTAuNS43VjlhNyA3IDAgMSAwLTYuOCA3Yy4xLjM0LjIzLjY3LjM5Ljk4TDkgMTdhOCA4IDAgMSAxIDcuOTgtNy40MUE1LjQ2IDUuNDYgMCAwIDAgMTYgOS4yWm0tNiA1LjNhNC41IDQuNSAwIDEgMCA5IDAgNC41IDQuNSAwIDAgMC05IDBabTUuNC0yLjZjLjItLjIuNS0uMi43IDBsMS43NSAxLjc1YS41LjUgMCAwIDEgMCAuN0wxNi4xIDE2LjFhLjUuNSAwIDAgMS0uNy0uN2wuOS0uOWgtMS41NWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVhMi43NSAyLjc1IDAgMCAxIDIuNzUtMi43NWgxLjU0bC0uOS0uOWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RQYXJlbnRoZXNlczE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC43IDMuNmEuNzUuNzUgMCAxIDAtLjktMS4yIDcgNyAwIDAgMCAwIDExLjIuNzUuNzUgMCAwIDAgLjktMS4yIDUuNSA1LjUgMCAwIDEgMC04LjhabTcuNS0xLjJhLjc1Ljc1IDAgMSAwLS45IDEuMiA1LjQ5IDUuNDkgMCAwIDEgMCA4LjguNzUuNzUgMCAxIDAgLjkgMS4yIDYuOTkgNi45OSAwIDAgMCAwLTExLjJaTTUuNzUgNy4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNWgtNC41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RQYXJlbnRoZXNlczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFBhcmVudGhlc2VzMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC43NyAyLjk0YS41LjUgMCAxIDAtLjU0LS44NCA3IDcgMCAwIDAgMCAxMS44LjUuNSAwIDEgMCAuNTQtLjg0IDYgNiAwIDAgMSAwLTEwLjEyWm03LS44NGEuNS41IDAgMCAwLS41NC44NCA2IDYgMCAwIDEgMCAxMC4xMi41LjUgMCAxIDAgLjU0Ljg0IDcgNyAwIDAgMCAwLTExLjhaTTUuNSA3LjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0UGFyZW50aGVzZXMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFBhcmVudGhlc2VzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01Ljc3IDUuMDdhLjc1Ljc1IDAgMSAwLS45OC0xLjE0IDcuOTggNy45OCAwIDAgMCAwIDEyLjE0Ljc1Ljc1IDAgMSAwIC45OC0xLjE0IDYuNDggNi40OCAwIDAgMSAwLTkuODZabTkuNDQtMS4xNGEuNzUuNzUgMCAxIDAtLjk4IDEuMTQgNi40OCA2LjQ4IDAgMCAxIDAgOS44Ni43NS43NSAwIDEgMCAuOTggMS4xNCA3Ljk4IDcuOTggMCAwIDAgMC0xMi4xNFpNNi43NSA5LjI1YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC02LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0UGFyZW50aGVzZXMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjggNC40YS41LjUgMCAwIDAtLjYtLjggNy45OSA3Ljk5IDAgMCAwIDAgMTIuOC41LjUgMCAwIDAgLjYtLjggNi45OSA2Ljk5IDAgMCAxIDAtMTEuMlptOS0uOGEuNS41IDAgMCAwLS42LjggNi45OSA2Ljk5IDAgMCAxIDAgMTEuMi41LjUgMCAxIDAgLjYuOCA3Ljk5IDcuOTkgMCAwIDAgMC0xMi44Wk02LjUgOS41YS41LjUgMCAxIDAgMCAxaDdhLjUuNSAwIDEgMCAwLTFoLTdaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RQYXJlbnRoZXNlczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi42NyA2LjA0YTEgMSAwIDEgMC0xLjM0LTEuNSA5Ljk4IDkuOTggMCAwIDAgLjM4IDE1LjI0IDEgMSAwIDAgMCAxLjI2LTEuNTYgNy45OCA3Ljk4IDAgMCAxLS4zLTEyLjE4Wm0xMi0xLjVhMSAxIDAgMSAwLTEuMzQgMS41IDcuOTggNy45OCAwIDAgMSAwIDExLjkyIDEgMSAwIDAgMCAxLjM0IDEuNSA5Ljk4IDkuOTggMCAwIDAgMC0xNC45MVpNNyAxMmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMSAxIDAgMkg4YTEgMSAwIDAgMS0xLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0UGFyZW50aGVzZXMyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjcyIDUuMzRhLjc1Ljc1IDAgMSAwLS45My0xLjE4IDkuOTggOS45OCAwIDAgMCAwIDE1LjY4Ljc1Ljc1IDAgMSAwIC45My0xLjE4IDguNDggOC40OCAwIDAgMSAwLTEzLjMyWm0xMS41LTEuMThhLjc1Ljc1IDAgMSAwLS45NCAxLjE4IDguNDggOC40OCAwIDAgMSAwIDEzLjMyLjc1Ljc1IDAgMCAwIC45MyAxLjE4IDkuOTggOS45OCAwIDAgMCAwLTE1LjY4Wk03Ljc0IDExLjI1YS43NS43NSAwIDAgMCAwIDEuNWg4LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC04LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RQYXJlbnRoZXNlczI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNy42NCA2LjI5YTEgMSAwIDEgMC0xLjI4LTEuNTUgMTEuOTggMTEuOTggMCAwIDAgMCAxOC41MiAxIDEgMCAwIDAgMS4yOC0xLjU1IDkuOTggOS45OCAwIDAgMSAwLTE1LjQyWm0xNC0xLjU1YTEgMSAwIDEgMC0xLjI4IDEuNTUgOS45OCA5Ljk4IDAgMCAxIDAgMTUuNDIgMSAxIDAgMCAwIDEuMjggMS41NSAxMS45OCAxMS45OCAwIDAgMCAwLTE4LjUyWk05IDEzYTEgMSAwIDEgMCAwIDJoMTBhMSAxIDAgMSAwIDAtMkg5WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RQYXJlbnRoZXNlczI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFBhcmVudGhlc2VzMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNy43IDUuNmEuNzUuNzUgMCAxIDAtLjktMS4yIDExLjk4IDExLjk4IDAgMCAwIDAgMTkuMi43NS43NSAwIDEgMCAuOS0xLjIgMTAuNDggMTAuNDggMCAwIDEgMC0xNi44Wm0xMy41LTEuMmEuNzUuNzUgMCAxIDAtLjkgMS4yIDEwLjQ4IDEwLjQ4IDAgMCAxIC4yMyAxNi42Mi43NS43NSAwIDEgMCAuOTQgMS4xN0ExMS45OCAxMS45OCAwIDAgMCAyMS4yIDQuNFpNOC43NSAxMy4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTAuNWEuNzUuNzUgMCAwIDAgMC0xLjVIOC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0UGFyZW50aGVzZXMzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFBhcmVudGhlc2VzMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk04LjU2IDcuMjNhMS4yNSAxLjI1IDAgMCAwLTEuNjItMS45IDEzLjk3IDEzLjk3IDAgMCAwIDAgMjEuMzQgMS4yNSAxLjI1IDAgMSAwIDEuNjItMS45IDExLjQ3IDExLjQ3IDAgMCAxIDAtMTcuNTRabTE2LjUtMS45YTEuMjUgMS4yNSAwIDEgMC0xLjYyIDEuOSAxMS40NyAxMS40NyAwIDAgMSAwIDE3LjU0IDEuMjUgMS4yNSAwIDAgMCAxLjYyIDEuOSAxMy45NyAxMy45NyAwIDAgMCAwLTIxLjM0Wm0tMTQuODEgOS40MmExLjI1IDEuMjUgMCAxIDAgMCAyLjVoMTEuNWExLjI1IDEuMjUgMCAxIDAgMC0yLjVoLTExLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0UGFyZW50aGVzZXMzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk04LjYyIDYuNTRhMSAxIDAgMSAwLTEuMjQtMS41OCAxMy45OCAxMy45OCAwIDAgMCAwIDIyLjA4IDEgMSAwIDEgMCAxLjI0LTEuNTggMTEuOTggMTEuOTggMCAwIDEgMC0xOC45MlptMTYtMS41OGExIDEgMCAxIDAtMS4yNCAxLjU4IDExLjk4IDExLjk4IDAgMCAxIDAgMTguOTIgMSAxIDAgMSAwIDEuMjQgMS41OCAxMy45OCAxMy45OCAwIDAgMCAwLTIyLjA4Wk0xMCAxNWExIDEgMCAxIDAgMCAyaDEyYTEgMSAwIDEgMCAwLTJIMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFBhcmVudGhlc2VzNDhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RQYXJlbnRoZXNlczQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTMuNDMgMTAuNjhhMS41IDEuNSAwIDEgMC0xLjg2LTIuMzVBMTkuOTcgMTkuOTcgMCAwIDAgNCAyNGMwIDYuMzUgMi45NiAxMiA3LjU3IDE1LjY3YTEuNSAxLjUgMCAxIDAgMS44Ni0yLjM1QTE2Ljk3IDE2Ljk3IDAgMCAxIDcgMjRjMC01LjQgMi41MS0xMC4yIDYuNDMtMTMuMzJabTIzLTIuMzVhMS41IDEuNSAwIDAgMC0xLjg2IDIuMzVBMTYuOTcgMTYuOTcgMCAwIDEgNDEgMjRjMCA1LjQtMi41MSAxMC4yLTYuNDMgMTMuMzJhMS41IDEuNSAwIDEgMCAxLjg2IDIuMzVBMTkuOTcgMTkuOTcgMCAwIDAgNDQgMjRjMC02LjM1LTIuOTYtMTItNy41Ny0xNS42N1pNMTUuNSAyMi41YTEuNSAxLjUgMCAwIDAgMCAzaDE3YTEuNSAxLjUgMCAwIDAgMC0zaC0xN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0UGFyZW50aGVzZXM0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RQYXJlbnRoZXNlczQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTEzLjUgMTBBMS4yNSAxLjI1IDAgMSAwIDEyIDhhMTkuOTcgMTkuOTcgMCAwIDAgMCAzMiAxLjI1IDEuMjUgMCAxIDAgMS41LTIgMTcuNDcgMTcuNDcgMCAwIDEgMC0yOFpNMzYgOGExLjI1IDEuMjUgMCAxIDAtMS41IDIgMTcuNDcgMTcuNDcgMCAwIDEgMCAyOCAxLjI1IDEuMjUgMCAwIDAgMS41IDIgMTkuOTcgMTkuOTcgMCAwIDAgMC0zMlpNMTUuMjUgMjIuNzVhMS4yNSAxLjI1IDAgMCAwIDAgMi41aDE3LjVhMS4yNSAxLjI1IDAgMSAwIDAtMi41aC0xNy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFNxdWFyZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wm0zLjUgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RTcXVhcmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk01LjUgNy41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTVaTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMmgtN1pNMyA0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC03QTEuNSAxLjUgMCAwIDEgMyAxMS41di03WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFNxdWFyZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlptLjUgNi41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFNxdWFyZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFNxdWFyZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuNSA5LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN1pNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA2YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0U3F1YXJlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VidHJhY3RTcXVhcmUyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NSAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVabTEzLjI1IDVoLTguNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1YnRyYWN0U3F1YXJlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0U3F1YXJlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuMjUgMTEuMjVoLTguNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNVpNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djExLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVY2LjI1WlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmVNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0U3F1YXJlTXVsdGlwbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjZjMCAxLjEuOSAyIDIgMmg2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDRabS41IDQuNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAxIDEgMC0xWm04LjUgNGEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMy4yN2MuMzQuNi45OSAxIDEuNzMgMWg1LjVhMy41IDMuNSAwIDAgMCAzLjUtMy41VjVhMiAyIDAgMCAwLTEtMS43M3Y3LjIzWlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmVNdWx0aXBsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdWJ0cmFjdFNxdWFyZU11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNC41IDYuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAxIDAgMC0xaC01Wk0yIDRjMC0xLjEuOS0yIDItMmg2YTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0Wm0yLTFhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg0Wm05IDcuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMy4yN2MuMzQuNi45OSAxIDEuNzMgMWg1LjVhMy41IDMuNSAwIDAgMCAzLjUtMy41VjVhMiAyIDAgMCAwLTEtMS43M3Y3LjIzWlwiXSk7XG5leHBvcnQgY29uc3QgU3VidHJhY3RTcXVhcmVNdWx0aXBsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0U3F1YXJlTXVsdGlwbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2IDUuMjdjLjYuMzQgMSAuOTkgMSAxLjczdjZhNCA0IDAgMCAxLTQgNEg3YTIgMiAwIDAgMS0xLjczLTFIMTNhMyAzIDAgMCAwIDMtM1Y1LjI3Wk0xNSA1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNVptLTMgNGEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDEgMSAwLTFoNWMuMjggMCAuNS4yMi41LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTdWJ0cmFjdFNxdWFyZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1YnRyYWN0U3F1YXJlTXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNiA1LjI3VjEzYTMgMyAwIDAgMS0zIDNINS4yN2MuMzQuNi45OSAxIDEuNzMgMWg2YTQgNCAwIDAgMCA0LTRWN2EyIDIgMCAwIDAtMS0xLjczWk0xMS41IDkuNWEuNS41IDAgMCAwIDAtMWgtNWEuNS41IDAgMSAwIDAgMWg1Wk0xMyAzYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoOFptMSAyYTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN1cmZhY2VFYXJidWRzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VyZmFjZUVhcmJ1ZHMyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTguNTUgMTQuMDNhNS43NSA1Ljc1IDAgMCAwIDIuOSA0LjI0bC0xLjQuNTdhMiAyIDAgMCAxLTIuMzctLjY2bC0uMjctLjM3YTIgMiAwIDAgMSAuMDYtMi40NGwxLjA4LTEuMzRabTUuNy01LjUzYTQuNzUgNC43NSAwIDEgMSAwIDkuNSA0Ljc1IDQuNzUgMCAwIDEgMC05LjVaTTUuNzUgMWMuMiAwIC4zOS4wMS41OC4wM2wuMjguMDUtLjE0LjA0QTMuNzIgMy43MiAwIDAgMCA0LjU0IDYuNmEzLjY1IDMuNjUgMCAwIDAgNS43NS41NkE0Ljc1IDQuNzUgMCAxIDEgNS43NSAxWm01LjM3LjQ2LjA5LjEuMDkuMTIuNDQuNjVhMS41IDEuNSAwIDAgMS0uMDMgMS43MmwtLjA5LjEyLTEuODggMi4xOGEyLjY1IDIuNjUgMCAwIDEtNC4yNi0uMTggMi43MiAyLjcyIDAgMCAxIDEuNDMtNC4xbDIuNjItLjk3YTEuNSAxLjUgMCAwIDEgMS41OS4zNlptLTEuMTQuNjhhLjUuNSAwIDAgMC0uMi42MWwuMDMuMDguMjYuNDMuMDYuMDdhLjUuNSAwIDAgMCAuODQtLjVsLS4wNC0uMDktLjI2LS40My0uMDUtLjA3YS41LjUgMCAwIDAtLjY0LS4xWlwiXSk7XG5leHBvcnQgY29uc3QgU3VyZmFjZUVhcmJ1ZHMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3VyZmFjZUVhcmJ1ZHMyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC4xMyA4LjI1YTQuODcgNC44NyAwIDEgMS0xLjEgOS42M2wtLjEuMDMtMi4yMS45Yy0xIC40MS0yLjE1LjEzLTIuODUtLjY4bC0uMS0uMTUtLjI4LS4zNmEyLjUgMi41IDAgMCAxLS4wNC0yLjkxbC4xLS4xNSAxLjU4LTEuOTQuMTctLjJhNC44NyA0Ljg3IDAgMCAxIDQuODMtNC4xN1ptLTQuOCA1LjcyLTEgMS4yMmExLjUgMS41IDAgMCAwLS4xMiAxLjcxbC4wOC4xMi4yOC4zN2ExLjUgMS41IDAgMCAwIDEuNjMuNTVsLjE0LS4wNSAxLjM0LS41NWE0Ljg4IDQuODggMCAwIDEtMi4zNi0zLjM3Wm00LjgtNC43MmEzLjg4IDMuODggMCAwIDAtMy43NiAyLjkzbC0uMDcuMy0uMDMuMjUtLjAxLjE4di4yMWMwIDEuNzggMS4xOCAzLjI4IDIuODEgMy43NGwuMi4wNC4yMi4wNS4yLjAyLjE3LjAySDE0LjMzYTMuODggMy44OCAwIDAgMC0uMi03Ljc0Wk01Ljg4IDFjLjY2IDAgMS4yOS4xMyAxLjg2LjM3bC43LS4yM2EyLjUgMi41IDAgMCAxIDIuNjYuNzNsLjEyLjE0LjEyLjE3LjI5LjQ2Yy41My44NC41IDEuOTEtLjA1IDIuNzRsLS4xLjE1LS4xMy4xNC0uNjIuNjdBNC44OCA0Ljg4IDAgMSAxIDUuODggMVptLS4wNCAxaC4wNEEzLjg3IDMuODcgMCAxIDAgOS4xIDguMDJsLS4wNi4wNC0uMi4xM2EzLjQ0IDMuNDQgMCAwIDEtNC43Ny0xLjA1QTMuNSAzLjUgMCAwIDEgNS42MSAyLjFsLjIzLS4xWm00LjU4LjYxYTEuNSAxLjUgMCAwIDAtMS41My0uNTZsLS4xNC4wNC0yLjM2Ljc4YTIuNSAyLjUgMCAwIDAtMS40NiAzLjc0IDIuNDQgMi40NCAwIDAgMCAzLjc1LjQ2bC4xNi0uMTZMMTAuNiA1bC4xLS4xMWExLjUgMS41IDAgMCAwIC4xNS0xLjZsLS4wNy0uMTItLjI4LS40NS0uMDgtLjEyWm0tLjguNTMuMDUuMDguMjYuNDJhLjUuNSAwIDAgMS0uOC42bC0uMDYtLjA4LS4yNi0uNDNhLjUuNSAwIDAgMSAuOC0uNTlaXCJdKTtcbmV4cG9ydCBjb25zdCBTdXJmYWNlRWFyYnVkczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1cmZhY2VFYXJidWRzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMC4xMSAxNy4yNGE3IDcgMCAwIDAgMy40MSA0Ljg0bC0yLjQ3LjgyYTIgMiAwIDAgMS0yLjMyLS44M2wtLjQzLS42OWEyIDIgMCAwIDEgLjIyLTIuNDJsMS41OS0xLjcyWk0xNyAxMGE2IDYgMCAxIDEgMCAxMiA2IDYgMCAwIDEgMC0xMlpNNyAxYy4yMSAwIC40My4wMS42My4wM2wtLjM1LjEyQTQuNTMgNC41MyAwIDAgMCA0LjcgNy45MmE0LjUgNC41IDAgMCAwIDcuMTYuNThMMTMgNy4zQTYgNiAwIDEgMSA3IDFabTUuOC42NS4xLjEzLjEuMTMuNjQgMS4wMmEyIDIgMCAwIDEtLjExIDIuM2wtLjExLjE0LTIuMjkgMi40NWEzLjUgMy41IDAgMSAxLTQuNS01LjNjLjMxLS4xOS42NC0uMzMuOTctLjQybDMuMDgtMS4wMmEyIDIgMCAwIDEgMi4xMi41N1ptLTIuNDUgMS40YS43NS43NSAwIDAgMC0uMjYuOTVsLjA1LjEuMjcuMzkuMDYuMDlhLjc1Ljc1IDAgMCAwIDEuMjQtLjgzbC0uMDYtLjEtLjI2LS4zOC0uMDctLjFhLjc1Ljc1IDAgMCAwLS45Ny0uMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTdXJmYWNlRWFyYnVkczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlRWFyYnVkczI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE3IDEwYTYgNiAwIDEgMS0xLjY4IDExLjc2bC0uNDQuMTgtLjIuMDctMi42Mi44NmEyLjc1IDIuNzUgMCAwIDEtMy4xLTFsLS4xLS4xNC0uNDItLjY4Yy0uNjMtMS0uNTUtMi4yOC4xOC0zLjE5bC4xMi0uMTUgMS45Ny0yLjEzLjMzLS4zMkE2IDYgMCAwIDEgMTcgMTBabS01Ljg1IDcuMzItMS4zIDEuNDFjLS4zNi4zOC0uNDQuOTQtLjIxIDEuNGwuMDYuMTIuNDQuNjhjLjI4LjQ1LjgxLjY3IDEuMzIuNTVsLjEzLS4wMyAxLjg1LS42MmE2IDYgMCAwIDEtMi4zLTMuNVpNMTcgMTEuNWE0LjUgNC41IDAgMCAwLTQuMTMgMi43bC0uMDYuMTYtLjA5LjIzLS4wNy4yNGMtLjA1LjE4LS4wOC4zNy0uMS41NmwtLjA0LjI5LS4wMS4zMnYuMjFhNC41IDQuNSAwIDAgMCAyLjY0IDMuODlsLjQ5LjE5LjEuMDIuMTQuMDUuMzYuMDcuMTkuMDNhNC41MSA0LjUxIDAgMCAwIC41LjA0SDE3YTQuNSA0LjUgMCAxIDAgMC05Wk03IDFjLjc1IDAgMS40Ny4xNCAyLjE0LjRsLjgtLjI2YTIuNzUgMi43NSAwIDAgMSAyLjg4Ljc4bC4xMy4xNS4xMy4xOS41Mi44Yy42Mi45NC42IDIuMTUtLjA1IDMuMDlsLS4xMy4xNi0uMTMuMTUtLjMuM0wxMyA3YTYgNiAwIDEgMS02LTZaTTUuNzMgMi42OGwtLjE1LjA1YTQuNSA0LjUgMCAxIDAgNS42IDUuOTQgNC4xNiA0LjE2IDAgMCAxLTYuNTMtLjUzIDQgNCAwIDAgMSAxLjA4LTUuNDZabTQuOC0uMTUtLjE0LjA0LTIuOTUuOTRjLS4yNS4wNy0uNS4xNy0uNzIuMzJhMi41IDIuNSAwIDAgMC0uODIgMy41IDIuNjYgMi42NiAwIDAgMCA0LjA2LjQ0bC4xMy0uMTMgMi4xLTIuMi4wOS0uMWMuMy0uMzguMzYtLjkxLjEzLTEuMzRsLS4wNi0uMTItLjUtLjc4LS4xLS4xMi0uMDctLjA5YTEuMjUgMS4yNSAwIDAgMC0xLS4zOGwtLjE1LjAyWm0uNCAxLjE1LjA3LjEuMjUuMzZhLjc1Ljc1IDAgMCAxLTEuMTguOTNsLS4wNy0uMS0uMjUtLjM2YS43NS43NSAwIDAgMSAxLjE4LS45M1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN1cmZhY2VIdWIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlSHViMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjI2IDJhLjUuNSAwIDAgMC0uNS40NWwtLjc2IDhhLjUuNSAwIDAgMCAuNS41NWgyLjQybC0uOTEgNi40M2EuNS41IDAgMCAwIC45OC4xNEw3LjM2IDE1aDNMMTAgMTcuNDNhLjUuNSAwIDAgMCAuOTguMTRsLjM3LTIuNTdoMi4yOGwuMzcgMi41N2EuNS41IDAgMCAwIC45OC0uMTRMMTQuMDggMTFoLjY2YS41LjUgMCAwIDAgLjUtLjQ1bC43Ni04YS41LjUgMCAwIDAtLjUtLjU1SDUuMjZabTguMjMgMTJoLTEuOThsLjQyLTNoMS4xNGwuNDIgM1ptLTMgMEg3LjUxbC40Mi0zaDNsLS40NCAzWlwiXSk7XG5leHBvcnQgY29uc3QgU3VyZmFjZUh1YjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlSHViMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC43NiAyLjQ1YS41LjUgMCAwIDEgLjUtLjQ1SDE1LjVhLjUuNSAwIDAgMSAuNS41NWwtLjc2IDhhLjUuNSAwIDAgMS0uNS40NWgtLjY2bC45MSA2LjQzYS41LjUgMCAwIDEtLjk4LjE0TDEzLjY0IDE1aC0yLjI4TDExIDE3LjU3YS41LjUgMCAwIDEtLjk4LS4xNGwuMzQtMi40M0g3LjM2TDcgMTcuNTdhLjUuNSAwIDAgMS0uOTgtLjE0TDYuOTIgMTFINC41YS41LjUgMCAwIDEtLjUtLjU1bC43Ni04Wk03LjUxIDE0aDIuOThsLjQzLTNINy45M2wtLjQyIDNabTQgMGgxLjk4bC0uNDItM2gtMS4xNGwtLjQyIDNabTIuNzgtNCAuNjYtN0g1LjcxbC0uNjYgN2g5LjI0WlwiXSk7XG5leHBvcnQgY29uc3QgU3VyZmFjZUh1YjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N1cmZhY2VIdWIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE5LjI1IDJjLjQxIDAgLjc0LjMzLjc1Ljczdi4xbC0xIDkuNWEuNzUuNzUgMCAwIDEtLjY1LjY2bC0uMS4wMWgtLjczTDE5IDIxLjEydi4xYS43NS43NSAwIDAgMS0xLjQ1LjI2bC0uMDMtLjFMMTYuOSAxOGgtMi44bC0uNiAzLjM4YS43NS43NSAwIDAgMS0xLjUtLjE2bC4wMi0uMS41Ni0zLjEySDguMWwtLjYgMy4zOGEuNzUuNzUgMCAwIDEtMS41LS4xNmwuMDItLjFMNy40OCAxM0g0Ljc1YS43NS43NSAwIDAgMS0uNzUtLjczdi0uMWwxLTkuNWMuMDQtLjM1LjMxLS42Mi42NS0uNjZsLjEtLjAxaDEzLjVabS01Ljc3IDExSDlsLS42MyAzLjVoNC40OGwuNjMtMy41Wk0xNiAxM2gtMWwtLjYzIDMuNWgyLjI2TDE2IDEzWlwiXSk7XG5leHBvcnQgY29uc3QgU3VyZmFjZUh1YjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTdXJmYWNlSHViMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTkuMjUgMmMuNDEgMCAuNzQuMzMuNzUuNzN2LjFsLTEgOS41YS43NS43NSAwIDAgMS0uNjUuNjZsLS4xLjAxaC0uNzNMMTkgMjEuMTJ2LjFhLjc1Ljc1IDAgMCAxLTEuNDUuMjZsLS4wMy0uMUwxNi45IDE4aC0yLjhsLS42IDMuMzhhLjc1Ljc1IDAgMCAxLTEuNS0uMTZsLjAyLS4xLjU2LTMuMTJIOC4xbC0uNiAzLjM4YS43NS43NSAwIDAgMS0xLjUtLjE2bC4wMi0uMUw3LjQ4IDEzSDQuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzN2LS4xbDEtOS41Yy4wNC0uMzUuMzEtLjYyLjY1LS42NmwuMS0uMDFoMTMuNVptLTUuNzcgMTFIOWwtLjYzIDMuNWg0LjQ4bC42My0zLjVaTTE2IDEzaC0xbC0uNjMgMy41aDIuMjZMMTYgMTNabTIuNDItOS41aC0xMmwtLjg0IDhoMTJsLjg0LThaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2ltbWluZ1Bvb2wyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2ltbWluZ1Bvb2wyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNzUgNGEuNzUuNzUgMCAwIDAtLjc1Ljc1di41YS43NS43NSAwIDAgMS0xLjUgMHYtLjVhMi4yNSAyLjI1IDAgMCAxIDQuNSAwVjcuNWg1VjQuNzVhLjc1Ljc1IDAgMSAwLTEuNSAwdi41YS43NS43NSAwIDEgMS0xLjUgMHYtLjVhMi4yNSAyLjI1IDAgMCAxIDQuNSAwdjcuMDNjLS40LjEzLS45MS4yMy0xLjUuMjJWOUg4djEuMjNBNy4xNiA3LjE2IDAgMCAwIDYuNSAxMFY0Ljc1QS43NS43NSAwIDAgMCA1Ljc1IDRabS4wNiA4LjUzYy0uOC4wOS0xLjM1LjQyLTEuNi42MWEuNzUuNzUgMCAwIDEtLjktMS4yYy40LS4zMSAxLjItLjc3IDIuMzMtLjlhNi44NCA2Ljg0IDAgMCAxIDQuMjQgMS4wNWMyLjkzIDEuNyA1LjMuNTggNiAuMTdhLjc1Ljc1IDAgMSAxIC43NSAxLjMgNy4zMyA3LjMzIDAgMCAxLTcuNS0uMTcgNS4zNiA1LjM2IDAgMCAwLTMuMzItLjg2Wm0wIDNjLS44LjA5LTEuMzUuNDItMS42LjYxYS43NS43NSAwIDAgMS0uOS0xLjJjLjQtLjMxIDEuMi0uNzcgMi4zMy0uOWE2Ljg0IDYuODQgMCAwIDEgNC4yNCAxLjA1YzIuOTMgMS43IDUuMy41OCA2IC4xN2EuNzUuNzUgMCAxIDEgLjc1IDEuMyA3LjMzIDcuMzMgMCAwIDEtNy41LS4xNyA1LjM2IDUuMzYgMCAwIDAtMy4zMi0uODZaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2ltbWluZ1Bvb2wyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpbW1pbmdQb29sMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNSA1YTEgMSAwIDAgMSAyIDB2NS4wNWMuMzIuMDMuNjUuMSAxIC4xOVY5aDV2M2MuMzcgMCAuNy0uMDMgMS0uMDlWNWEyIDIgMCAxIDAtNCAwdi41YS41LjUgMCAwIDAgMSAwVjVhMSAxIDAgMSAxIDIgMHYzSDhWNWEyIDIgMCAxIDAtNCAwdi41YS41LjUgMCAwIDAgMSAwVjVabTguMDggOWE3LjYgNy42IDAgMCAxLTMuODMtMS4wOGMtMy40Mi0xLjk3LTUuMzItLjE1LTUuMzktLjA4YS41LjUgMCAwIDEtLjcxIDAgLjQ4LjQ4IDAgMCAxIDAtLjdjLjEtLjEgMi40OC0yLjQ2IDYuNi0uMWE2IDYgMCAwIDAgNi40NS4wNWMuMjItLjE2LjUzLS4xMS43LjFhLjUuNSAwIDAgMS0uMS43IDYuNjUgNi42NSAwIDAgMS0zLjcyIDEuMVYxNFptLTMuODMgMS45MkE3LjYgNy42IDAgMCAwIDEzLjA4IDE3di0uMDFhNi42NSA2LjY1IDAgMCAwIDMuNzEtMS4xLjUuNSAwIDAgMCAuMTEtLjcuNTEuNTEgMCAwIDAtLjctLjEgNiA2IDAgMCAxLTYuNDQtLjA0Yy00LjEzLTIuMzctNi41IDAtNi42MS4xLS4yLjE5LS4yLjUgMCAuNy4yLjE5LjUyLjE4LjcxIDAgLjA3LS4wOCAxLjk3LTEuOSA1LjM5LjA3WlwiXSk7XG5leHBvcnQgY29uc3QgU3dpbW1pbmdQb29sMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpbW1pbmdQb29sMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02IDZhMSAxIDAgMCAxIDIgMHY2LjAzYy42My4wNiAxLjMuMTkgMiAuNDFWMTFoNnYzLjQ4Yy44IDAgMS40OC0uMTcgMi0uMzVWNmEzIDMgMCAwIDAtNiAwIDEgMSAwIDEgMCAyIDAgMSAxIDAgMSAxIDIgMHYzaC02VjZhMyAzIDAgMCAwLTYgMCAxIDEgMCAwIDAgMiAwWm0uNiA5LjAyYy0xLjAzLjEzLTEuNy41NS0yIC43N2ExIDEgMCAwIDEtMS4yLTEuNmMuNDktLjM3IDEuNDktLjk3IDIuOTUtMS4xNWE4Ljg3IDguODcgMCAwIDEgNS41MSAxLjMyIDcuNSA3LjUgMCAwIDAgNy42My4xOCAxIDEgMCAwIDEgMS4wMiAxLjcyIDkuNDkgOS40OSAwIDAgMS05LjY0LS4xN0M5LjAzIDE1LjA1IDcuNiAxNC45IDYuNiAxNS4wMlptLTIgNC43N2MuMy0uMjIuOTctLjY0IDItLjc3IDEtLjEyIDIuNDMuMDMgNC4yNyAxLjA3YTkuNDkgOS40OSAwIDAgMCA5LjY0LjE3IDEgMSAwIDEgMC0xLjAyLTEuNzIgNy41IDcuNSAwIDAgMS03LjYzLS4xOCA4Ljg3IDguODcgMCAwIDAtNS41MS0xLjMyIDYuMTQgNi4xNCAwIDAgMC0yLjk2IDEuMTYgMSAxIDAgMCAwIDEuMjIgMS42WlwiXSk7XG5leHBvcnQgY29uc3QgU3dpbW1pbmdQb29sMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aW1taW5nUG9vbDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNSA1Ljc1YTEuMjUgMS4yNSAwIDEgMSAyLjUgMHY2LjI5Yy40OC4wNC45OC4xMyAxLjUuMjdWMTFIMTZ2My41YTYuNTIgNi41MiAwIDAgMCAxLjUtLjJWNS43NWEyLjc1IDIuNzUgMCAxIDAtNS41IDB2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0uNWExLjI1IDEuMjUgMCAxIDEgMi41IDBWOS41SDkuNVY1Ljc1YTIuNzUgMi43NSAwIDAgMC01LjUgMHYuNWEuNzUuNzUgMCAwIDAgMS41IDB2LS41Wm0tMS4yMiA5Ljc4YS43NS43NSAwIDAgMS0xLjA2LTEuMDZsLjAyLS4wMmEyLjE1IDIuMTUgMCAwIDEgLjE2LS4xNGMuMS0uMS4yNS0uMi40NC0uMzMuNC0uMjYuOTYtLjU2IDEuNy0uNzYgMS41LS40IDMuNi0uMzcgNi4yIDEuMTFhNy45NCA3Ljk0IDAgMCAwIDUuNzcgMSA3LjUgNy41IDAgMCAwIDIuMy0uOTQuNzUuNzUgMCAwIDEgLjg4IDEuMjFsLS4wMi4wMmEzLjA2IDMuMDYgMCAwIDEtLjIuMTNjLS4xNC4wOC0uMzMuMi0uNTcuMzJhOS40MyA5LjQzIDAgMCAxLTguOS0uNDNjLTIuMjgtMS4zLTMuOTgtMS4yNy01LjA3LS45N2E0LjQzIDQuNDMgMCAwIDAtMS42NC44NVptLTEuMDYgNGMuMy4yOS43Ny4yOSAxLjA2IDBsLjAxLS4wMS4wNy0uMDZhNC40MyA0LjQzIDAgMCAxIDEuNTctLjc5YzEuMS0uMyAyLjgtLjMzIDUuMDYuOTZhOS40MyA5LjQzIDAgMCAwIDYuODUgMS4xNiA4Ljk5IDguOTkgMCAwIDAgMi44My0xLjE3bC4wMS0uMDFoLjAxYS43NS43NSAwIDAgMC0uODgtMS4yMmwtLjAyLjAyYTMuNTYgMy41NiAwIDAgMS0uNTYuMzEgNy45NCA3Ljk0IDAgMCAxLTcuNS0uNGMtMi41OS0xLjQ3LTQuNy0xLjUtNi4yLTEuMWE1LjkyIDUuOTIgMCAwIDAtMi4zIDEuMjN2LjAxaC0uMDF2LjAxYS43NS43NSAwIDAgMCAwIDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2ltbWluZ1Bvb2wzMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2ltbWluZ1Bvb2wzMkZpbGxlZCcsIFwiMzJcIiwgW1wiTTguMjUgNS41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LS41YTQuMjUgNC4yNSAwIDAgMSA4LjUgMHY0LjI1SDIyVjcuMjVhMS43NSAxLjc1IDAgMSAwLTMuNSAwdi41YTEuMjUgMS4yNSAwIDEgMS0yLjUgMHYtLjVhNC4yNSA0LjI1IDAgMCAxIDguNSAwdjExLjQyQTkuNzIgOS43MiAwIDAgMSAyMiAxOXYtNWgtOS41djEuOThjLS44OC0uMjMtMS43MS0uMzctMi41LS40NFY3LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NVpNMy4zOSAxOC45di0uMDFsLjAzLS4wM2EyLjkzIDIuOTMgMCAwIDEgLjI0LS4yYy4xNS0uMTEuMzYtLjI3LjY0LS40NGE4LjQ2IDguNDYgMCAwIDEgMi40Mi0uOTZjMi4xNC0uNSA1LjE2LS40MSA4Ljk0IDEuNTlhMTIuNzIgMTIuNzIgMCAwIDAgOC4yNiAxLjQ4IDEwLjcyIDEwLjcyIDAgMCAwIDMuMTMtMS4wN2wuMDMtLjAyYTEuMjUgMS4yNSAwIDAgMSAxLjM1IDIuMWwtLjAxLjAxLS4wMy4wMmE0LjYyIDQuNjIgMCAwIDEtLjMuMTcgMTMuMjEgMTMuMjEgMCAwIDEtMy43NSAxLjI1Yy0yLjUuNDQtNS45NS4zMy05Ljg1LTEuNzMtMy4yOS0xLjc0LTUuNjktMS43Mi03LjItMS4zN2E1Ljk3IDUuOTcgMCAwIDAtMi4xOCAxLjAxIDEuMjUgMS4yNSAwIDAgMS0xLjcyLTEuOFptMCA2di0uMDFsLjAzLS4wM2EyLjkzIDIuOTMgMCAwIDEgLjI0LS4yYy4xNS0uMTEuMzYtLjI3LjY0LS40NGE4LjQ2IDguNDYgMCAwIDEgMi40Mi0uOTZjMi4xNC0uNSA1LjE2LS40MSA4Ljk0IDEuNTlhMTIuNzIgMTIuNzIgMCAwIDAgOC4yNiAxLjQ4IDEwLjcyIDEwLjcyIDAgMCAwIDMuMTMtMS4wN2wuMDMtLjAyYTEuMjUgMS4yNSAwIDAgMSAxLjM1IDIuMWwtLjAxLjAxLS4wMy4wMmE0LjYyIDQuNjIgMCAwIDEtLjMuMTcgMTMuMjEgMTMuMjEgMCAwIDEtMy43NSAxLjI1Yy0yLjUuNDQtNS45NS4zMy05Ljg1LTEuNzMtMy4yOS0xLjc0LTUuNjktMS43Mi03LjItMS4zN2E1Ljk3IDUuOTcgMCAwIDAtMi4xOCAxLjAxIDEuMjUgMS4yNSAwIDAgMS0xLjcyLTEuOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aW1taW5nUG9vbDMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2ltbWluZ1Bvb2wzMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk04IDVhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMS0yIDBWN2E0IDQgMCAxIDEgOCAwdjVoMTBWN2EyIDIgMCAxIDAtNCAwdjFhMSAxIDAgMSAxLTIgMFY3YTQgNCAwIDAgMSA4IDB2MTEuODJhMTAuOCAxMC44IDAgMCAxLTIgLjE4di01SDEydjEuODdjLS43LS4xNy0xLjM2LS4yNy0yLS4zMlY3YTIgMiAwIDAgMC0yLTJaTTQuNjYgMjAuM2ExIDEgMCAwIDEtMS4zMy0xLjVoLjAxbC4wMi0uMDJhMi45NSAyLjk1IDAgMCAxIC4yMy0uMTljLjE1LS4xLjM3LS4yNS42NS0uNDEuNTYtLjMyIDEuMzctLjcgMi40Mi0uOTMgMi4xMy0uNDkgNS4xNC0uNCA4Ljg4IDEuNTcgMy40IDEuOCA2LjQgMS44NyA4LjU1IDEuNWExMS44MSAxMS44MSAwIDAgMCAzLjM1LTEuMWwuMDMtLjAyaC4wMWExIDEgMCAwIDEgMS4wNCAxLjdsLS4wMy4wMmE0LjUgNC41IDAgMCAxLS4yOS4xNiAxMy44IDEzLjggMCAwIDEtMy43OCAxLjIyYy0yLjUuNDItNS45Ny4zMi05LjgxLTEuNzEtMy4zNC0xLjc2LTUuODYtMS43Ny03LjUtMS40YTYuODMgNi44MyAwIDAgMC0yLjQzIDEuMWgtLjAyWm0wIDZhMSAxIDAgMCAxLTEuMzMtMS41aC4wMWwuMDItLjAyYTIuOTUgMi45NSAwIDAgMSAuMjMtLjE5Yy4xNS0uMS4zNy0uMjUuNjUtLjQxLjU2LS4zMiAxLjM3LS43IDIuNDItLjkzIDIuMTMtLjQ5IDUuMTQtLjQgOC44OCAxLjU3IDMuNCAxLjggNi40IDEuODcgOC41NSAxLjVhMTEuODEgMTEuODEgMCAwIDAgMy4zNS0xLjFsLjAzLS4wMmguMDFhMSAxIDAgMCAxIDEuMDQgMS43bC0uMDMuMDJhNC41IDQuNSAwIDAgMS0uMjkuMTYgMTMuOCAxMy44IDAgMCAxLTMuNzggMS4yMmMtMi41LjQyLTUuOTcuMzItOS44MS0xLjcxLTMuMzQtMS43Ni01Ljg2LTEuNzctNy41LTEuNGE2LjgzIDYuODMgMCAwIDAtMi40MyAxLjFoLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aW1taW5nUG9vbDQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aW1taW5nUG9vbDQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTIgOGEzIDMgMCAwIDAtMyAzdjEuNWExLjUgMS41IDAgMCAxLTMgMFYxMWE2IDYgMCAxIDEgMTIgMHY3aDE1di03YTMgMyAwIDEgMC02IDB2MS41YTEuNSAxLjUgMCAxIDEtMyAwVjExYTYgNiAwIDAgMSAxMiAwdjE3LjcxYTE2Ljk2IDE2Ljk2IDAgMCAxLTMgLjI5di04SDE4djMuNTJhMjEuMTUgMjEuMTUgMCAwIDAtMy0uNDZWMTFhMyAzIDAgMCAwLTMtM1pNNS4zNCAzMC40OGExLjUgMS41IDAgMCAxIC4yLTIuMXYtLjAxaC4wMWwuMDEtLjAxLjAzLS4wMmE0Ljk4IDQuOTggMCAwIDEgLjM0LS4yNSAxMy4yNCAxMy4yNCAwIDAgMSA0LjQ4LTEuOGMzLjEtLjYxIDcuNDctLjQ1IDEyLjkyIDIuMzJhMjAuMyAyMC4zIDAgMCAwIDEyLjQ4IDIuMTcgMTcuODMgMTcuODMgMCAwIDAgNC44OS0xLjUybC4wNS0uMDJhMS41IDEuNSAwIDAgMSAxLjUgMi42aC0uMDJsLS4wMi4wMmE3LjEzIDcuMTMgMCAwIDEtLjQzLjIyIDIwLjgyIDIwLjgyIDAgMCAxLTUuNTEgMS42NmMtMy42NS41Ny04LjcuNC0xNC4zLTIuNDUtNC44Ny0yLjQ4LTguNTYtMi41My0xMC45Ny0yLjA1YTEwLjI1IDEwLjI1IDAgMCAwLTMuMzkgMS4zMyAzLjU3IDMuNTcgMCAwIDAtLjE2LjEyIDEuNSAxLjUgMCAwIDEtMi4xLS4yWm0wIDlhMS41IDEuNSAwIDAgMSAuMi0yLjF2LS4wMWguMDFsLjAxLS4wMS4wMy0uMDJhNC45OCA0Ljk4IDAgMCAxIC4zNC0uMjUgMTMuMjQgMTMuMjQgMCAwIDEgNC40OC0xLjc5YzMuMS0uNjIgNy40Ny0uNDYgMTIuOTIgMi4zMWEyMC4zIDIwLjMgMCAwIDAgMTIuNDggMi4xNyAxNy44MyAxNy44MyAwIDAgMCA0Ljg5LTEuNTJsLjA1LS4wMmExLjUgMS41IDAgMCAxIDEuNSAyLjZoLS4wMmwtLjAyLjAyYTcuMTMgNy4xMyAwIDAgMS0uNDMuMjIgMjAuODIgMjAuODIgMCAwIDEtNS41MSAxLjY2Yy0zLjY1LjU3LTguNy40LTE0LjMtMi40NS00Ljg3LTIuNDgtOC41Ni0yLjUzLTEwLjk3LTIuMDVhMTAuMjUgMTAuMjUgMCAwIDAtMy4zOSAxLjMzIDMuNTcgMy41NyAwIDAgMC0uMTYuMTIgMS41IDEuNSAwIDAgMS0yLjEtLjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2ltbWluZ1Bvb2w0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpbW1pbmdQb29sNDhSZWd1bGFyJywgXCI0OFwiLCBbXCJNOSAxMC43NWEzLjI1IDMuMjUgMCAwIDEgNi41IDB2MTMuNGMuOC4wOCAxLjYzLjIgMi41LjRWMjFoMTUuNXY4LjA2YTE3LjIyIDE3LjIyIDAgMCAwIDIuNS0uMjdWMTAuNzVhNS43NSA1Ljc1IDAgMCAwLTExLjUgMHYxYTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtMWEzLjI1IDMuMjUgMCAwIDEgNi41IDB2Ny43NUgxOHYtNy43NWE1Ljc1IDUuNzUgMCAwIDAtMTEuNSAwdjFhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi0xWm0xMy4wNSAyMEMxMi41NyAyNS45IDcuMzMgMzAuNCA3LjEgMzAuNmMtLjUxLjQ2LTEuMy40Mi0xLjc2LS4wOS0uNDYtLjUtLjQzLTEuMjguMDgtMS43NS4yNy0uMjUgNi42OS01Ljk0IDE3LjgtLjIzIDkuOTMgNS4xIDE3LjU5Ljc2IDE3LjkxLjU3YTEuMjYgMS4yNiAwIDAgMSAxLjcuNDRjLjM2LjU5LjE3IDEuMzUtLjQzIDEuNy0uMjMuMTQtMy45IDIuMjYtOS40NCAyLjI2LTMuODQtLjEtNy40Ny0uOTgtMTAuOS0yLjc1Wk03LjEgMzkuNmMuMjQtLjIgNS40OC00LjcxIDE0Ljk2LjE1YTI0LjkzIDI0LjkzIDAgMCAwIDEwLjkgMi43NWM1LjU0IDAgOS4yLTIuMTIgOS40NC0yLjI2LjYtLjM1Ljc5LTEuMTEuNDQtMS43YTEuMjYgMS4yNiAwIDAgMC0xLjcxLS40NGMtLjMyLjItNy45OCA0LjU0LTE3LjktLjU3LTExLjEyLTUuNy0xNy41NC0uMDItMTcuODEuMjNhMS4yNCAxLjI0IDAgMCAwLS4wOCAxLjc1Yy40Ni41MSAxLjI1LjU1IDEuNzYuMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlRG93bjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlRG93bjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQgNmE0IDQgMCAwIDEtMi4yNSAzLjZWOC40NGEzIDMgMCAxIDAtMy41IDBWOS42QTQgNCAwIDEgMSAxNCA2Wk05LjQ3IDE3Ljc4Yy4zLjMuNzcuMyAxLjA2IDBsMi41LTIuNWEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2bC0xLjIyIDEuMjJWNS43NWEuNzUuNzUgMCAwIDAtMS41IDB2OS42OWwtMS4yMi0xLjIyYS43NS43NSAwIDAgMC0xLjA2IDEuMDZsMi41IDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlRG93bjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZURvd24yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNCA2YTQgNCAwIDAgMS0yLjUgMy43VjguNmEzIDMgMCAxIDAtMyAwdjEuMUE0IDQgMCAxIDEgMTQgNlpNOS42NSAxNy44NWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdsLTIuMTUgMi4xNFY1LjVhLjUuNSAwIDAgMC0xIDB2MTAuOGwtMi4xNS0yLjE1YS41LjUgMCAxIDAtLjcuN2wzIDNaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZURvd24yNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZURvd24yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyIDZhMSAxIDAgMCAxIDEgMXYxMS41OWwxLjMtMS4zYTEgMSAwIDAgMSAxLjMxLS4wOGwuMS4wOGExIDEgMCAwIDEgLjA4IDEuMzJsLS4wOC4xLTMgM2ExIDEgMCAwIDEtMS4zMi4wOGwtLjEtLjA4LTMtM2ExIDEgMCAwIDEgMS4zMi0xLjVsLjEuMDhMMTEgMTguNlY3YTEgMSAwIDAgMSAxLTFabTAtNGE1IDUgMCAwIDEgMiA5LjU4di0xLjdhMy41IDMuNSAwIDEgMC00IDB2MS43QTUgNSAwIDAgMSAxMiAyWlwiXSk7XG5leHBvcnQgY29uc3QgU3dpcGVEb3duMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlRG93bjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyIDZjLjM4IDAgLjcuMjguNzQuNjRsLjAxLjF2MTIuN2wyLjIyLTIuMjJhLjc1Ljc1IDAgMCAxIC45OC0uMDdsLjA4LjA3Yy4yNy4yNy4zLjY5LjA3Ljk4bC0uMDcuMDgtMy41IDMuNWEuNzUuNzUgMCAwIDEtLjk4LjA3bC0uMDgtLjA3LTMuNS0zLjVhLjc1Ljc1IDAgMCAxIC45OC0xLjEzbC4wOC4wNyAyLjIyIDIuMjJWNi43NGMwLS40LjM0LS43NC43NS0uNzRabTAtNGE1IDUgMCAwIDEgMS43NSA5LjY4di0xLjY2YTMuNSAzLjUgMCAxIDAtMy41IDB2MS42NkE1IDUgMCAwIDEgMTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZVJpZ2h0MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk02IDZhNCA0IDAgMCAxIDMuNiAyLjI1SDguNDRhMyAzIDAgMSAwIDAgMy41SDkuNkE0IDQgMCAxIDEgNiA2Wm05LjI4IDcuMDMgMi41LTIuNWMuMy0uMy4zLS43NyAwLTEuMDZsLTIuNS0yLjVhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxLjIyIDEuMjJINS43NWEuNzUuNzUgMCAxIDAgMCAxLjVoOS42OWwtMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2IDEuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZVJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlUmlnaHQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk02IDZhNCA0IDAgMCAxIDMuNyAyLjVIOC42YTMgMyAwIDEgMCAwIDNoMS4xQTQgNCAwIDEgMSA2IDZabTguODUgNy4zNSAzLTNhLjUuNSAwIDAgMCAwLS43bC0zLTNhLjUuNSAwIDEgMC0uNy43bDIuMTQgMi4xNUg1LjVhLjUuNSAwIDAgMCAwIDFoMTAuOGwtMi4xNSAyLjE1YS41LjUgMCAwIDAgLjcuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN3aXBlUmlnaHQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZVJpZ2h0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02IDEyYTEgMSAwIDAgMCAxIDFoMTEuNTlsLTEuMyAxLjNhMSAxIDAgMCAwLS4wOCAxLjMxbC4wOC4xYTEgMSAwIDAgMCAxLjMyLjA4bC4xLS4wOCAzLTNhMSAxIDAgMCAwIC4wOC0xLjMybC0uMDgtLjEtMy0zYTEgMSAwIDAgMC0xLjUgMS4zMmwuMDguMUwxOC42IDExSDdhMSAxIDAgMCAwLTEgMVptLTQgMGE1IDUgMCAwIDAgOS41OCAyaC0xLjdhMy41IDMuNSAwIDEgMSAwLTRoMS43QTUgNSAwIDAgMCAyIDEyWlwiXSk7XG5leHBvcnQgY29uc3QgU3dpcGVSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTd2lwZVJpZ2h0MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNiAxMmMwIC4zOC4yOC43LjY0Ljc0bC4xLjAxaDEyLjdsLTIuMjIgMi4yMmEuNzUuNzUgMCAwIDAtLjA3Ljk4bC4wNy4wOGMuMjcuMjcuNjkuMy45OC4wN2wuMDgtLjA3IDMuNS0zLjVhLjc1Ljc1IDAgMCAwIC4wNy0uOThsLS4wNy0uMDgtMy41LTMuNWEuNzUuNzUgMCAwIDAtMS4xMy45OGwuMDcuMDggMi4yMiAyLjIySDYuNzRBLjc1Ljc1IDAgMCAwIDYgMTJabS00IDBhNSA1IDAgMCAwIDkuNjggMS43NWgtMS42NmEzLjUgMy41IDAgMSAxIDAtMy41aDEuNjZBNSA1IDAgMCAwIDIgMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZVVwMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpcGVVcDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTAuNTMgMi4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwbC0yLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDEuMDZsMS4yMi0xLjIydjkuNjlhLjc1Ljc1IDAgMCAwIDEuNSAwVjQuNTZsMS4yMiAxLjIyYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNS0yLjVaTTYgMTRhNCA0IDAgMCAxIDIuMjUtMy42djEuMTZhMyAzIDAgMSAwIDMuNSAwVjEwLjRBNCA0IDAgMSAxIDYgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZVVwMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlVXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC4zNSAyLjE1YS41LjUgMCAwIDAtLjcgMGwtMyAzYS41LjUgMCAxIDAgLjcuN0w5LjUgMy43MVYxNC41YS41LjUgMCAwIDAgMSAwVjMuN2wyLjE1IDIuMTVhLjUuNSAwIDAgMCAuNy0uN2wtMy0zWk02IDE0YTQgNCAwIDAgMSAyLjUtMy43djEuMWEzIDMgMCAxIDAgMyAwdi0xLjFBNCA0IDAgMSAxIDYgMTRaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZVVwMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3dpcGVVcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTIgMThhMSAxIDAgMCAwIDEtMVY1LjQxbDEuMyAxLjNhMSAxIDAgMCAwIDEuMzEuMDhsLjEtLjA4YTEgMSAwIDAgMCAuMDgtMS4zMmwtLjA4LS4xLTMtM2ExIDEgMCAwIDAtMS4zMi0uMDhsLS4xLjA4LTMgM2ExIDEgMCAwIDAgMS4zMiAxLjVsLjEtLjA4TDExIDUuNFYxN2ExIDEgMCAwIDAgMSAxWm0wIDRhNSA1IDAgMCAwIDItOS41OHYxLjdhMy41IDMuNSAwIDEgMS00IDB2LTEuN0E1IDUgMCAwIDAgMTIgMjJaXCJdKTtcbmV4cG9ydCBjb25zdCBTd2lwZVVwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N3aXBlVXAyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0xMiAxOGMuMzggMCAuNy0uMjguNzQtLjY0bC4wMS0uMVY0LjU1bDIuMjIgMi4yMmMuMjcuMjYuNjguMjkuOTguMDdsLjA4LS4wN2EuNzUuNzUgMCAwIDAgLjA3LS45OGwtLjA3LS4wOC0zLjUtMy41YS43NS43NSAwIDAgMC0uOTgtLjA3bC0uMDguMDctMy41IDMuNWEuNzUuNzUgMCAwIDAgLjk4IDEuMTNsLjA4LS4wNyAyLjIyLTIuMjJ2MTIuN2MwIC40LjM0Ljc0Ljc1Ljc0Wm0wIDRhNSA1IDAgMCAwIDEuNzUtOS42OHYxLjY2YTMuNSAzLjUgMCAxIDEtMy41IDB2LTEuNjZBNSA1IDAgMCAwIDEyIDIyWlwiXSk7XG5leHBvcnQgY29uc3QgU3ltYm9sczE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5bWJvbHMxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTExLjkgMi40YTEuNTYgMS41NiAwIDEgMSAyLjIgMi4ybC0yLjI1IDIuMjVhLjUuNSAwIDAgMS0uNyAwTDguOSA0LjZhMS41NiAxLjU2IDAgMSAxIDIuMi0yLjJsLjQuNC40LS40Wk03IDQuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFpNNS4xNSA1Ljg1bC0yLTJhMS41IDEuNSAwIDAgMCAyIDJabS43LS43YTEuNSAxLjUgMCAwIDAtMi0ybDIgMlpNNSA5LjVhLjUuNSAwIDAgMC0xIDBWMTFIMi41YS41LjUgMCAwIDAgMCAxSDR2MS41YS41LjUgMCAxIDAgMSAwVjEyaDEuNWEuNS41IDAgMSAwIDAtMUg1VjkuNVpNOS41IDE1YS41LjUgMCAwIDEtLjUtLjV2LTJhLjUuNSAwIDAgMSAuNTEtLjVIMTFhLjUuNSAwIDAgMSAwIDFoLS42NGwuMTQuMTdjLjM4LjQzLjk0LjgzIDEuNzUuODNhMi41IDIuNSAwIDAgMCAxLjg1LS44LjUuNSAwIDAgMSAuOC42bC0uNC0uMy40LjMtLjAyLjAyYTEuNDUgMS40NSAwIDAgMS0uMTcuMTkgMy41IDMuNSAwIDAgMS0yLjQ2Ljk5Yy0xIDAtMS43NC0uNDMtMi4yNS0uOXYuNGEuNS41IDAgMCAxLS41LjVabTUtNmMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41MS41SDEzYS41LjUgMCAxIDEgMC0xaC42NGEyLjI3IDIuMjcgMCAwIDAtMS44OS0xIDIuNSAyLjUgMCAwIDAtMS44NC43OHYuMDFsLS4wMS4wMWEuNS41IDAgMCAxLS44LS42bC40LjMtLjQtLjMuMDItLjAyYTEuNzggMS43OCAwIDAgMSAuMTctLjE5QTMuNSAzLjUgMCAwIDEgMTEuNzUgOWMxIDAgMS43NC40MyAyLjI1Ljl2LS40YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBTeW1ib2xzMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5bWJvbHMxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMS45IDIuNGExLjU2IDEuNTYgMCAxIDEgMi4yIDIuMmwtMi4yNSAyLjI1YS41LjUgMCAwIDEtLjcgMEw4LjkgNC42YTEuNTYgMS41NiAwIDEgMSAyLjItMi4ybC40LjQuNC0uNFptMS41LjdhLjU2LjU2IDAgMCAwLS44IDBsLS43NS43NWEuNS41IDAgMCAxLS43IDBsLS43NS0uNzVhLjU2LjU2IDAgMCAwLS44LjhsMS45IDEuOSAxLjktMS45YS41Ni41NiAwIDAgMCAwLS44Wk00LjUgN2EyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNVptMS4zNS0xLjg1LTItMmExLjUgMS41IDAgMCAxIDIgMlptLS43LjdhMS41IDEuNSAwIDAgMS0yLTJsMiAyWk01IDkuNWEuNS41IDAgMCAwLTEgMFYxMUgyLjVhLjUuNSAwIDAgMCAwIDFINHYxLjVhLjUuNSAwIDEgMCAxIDBWMTJoMS41YS41LjUgMCAxIDAgMC0xSDVWOS41Wk05LjUgMTVhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAxIC41MS0uNUgxMWEuNS41IDAgMCAxIDAgMWgtLjY0bC4xNC4xN2MuMzguNDMuOTQuODMgMS43NS44M2EyLjUgMi41IDAgMCAwIDEuODUtLjguNS41IDAgMCAxIC44LjZsLS40LS4zLjQuMy0uMDIuMDJhMS40NSAxLjQ1IDAgMCAxLS4xNy4xOSAzLjUgMy41IDAgMCAxLTIuNDYuOTljLTEgMC0xLjc0LS40My0yLjI1LS45di40YS41LjUgMCAwIDEtLjUuNVptNS02Yy4yOCAwIC41LjIyLjUuNXYyYS41LjUgMCAwIDEtLjUxLjVIMTNhLjUuNSAwIDEgMSAwLTFoLjY0YTIuMjcgMi4yNyAwIDAgMC0xLjg5LTEgMi41IDIuNSAwIDAgMC0xLjg0Ljc4di4wMWwtLjAxLjAxYS41LjUgMCAwIDEtLjgtLjZsLjQuMy0uNC0uMy4wMi0uMDJhMS43OCAxLjc4IDAgMCAxIC4xNy0uMTlBMy41IDMuNSAwIDAgMSAxMS43NSA5YzEgMCAxLjc0LjQzIDIuMjUuOXYtLjRjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bWJvbHMyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTeW1ib2xzMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC4xNCA3Ljk3Yy4yLjIuNTEuMi43IDBsMi41Ni0yLjU1YTIgMiAwIDEgMC0yLjgzLTIuODNsLS4wNy4wOC0uMDgtLjA4YTIgMiAwIDAgMC0yLjgzIDIuODNsMi41NSAyLjU1Wk0yIDUuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFpNNS41IDNjLS41IDAtLjk4LjE2LTEuMzguNDJMNy42IDYuODhBMi41IDIuNSAwIDAgMCA1LjUgM1pNMyA1LjVBMi41IDIuNSAwIDAgMCA2Ljg4IDcuNkwzLjQgNC4xMkMzLjE1IDQuNTIgMyA1IDMgNS41Wm05LjM0IDcuNzVBMi41IDIuNSAwIDAgMSAxNi41IDEzaC0xYS41LjUgMCAxIDAgMCAxaDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYuNTVhMy40OSAzLjQ5IDAgMCAwLTUuNTMuNy41LjUgMCAwIDAgLjg3LjVabS0uMzQgMy43di41NWEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDEgMSAwIDFoLTFhMi41IDIuNSAwIDAgMCA0LjE3LS4yNS41LjUgMCAwIDEgLjg2LjUgMy41IDMuNSAwIDAgMS01LjUzLjdaTTUuNSAxMWMuMjggMCAuNS4yMy41LjVWMTRoMi41YS41LjUgMCAxIDEgMCAxSDZ2Mi41YS41LjUgMCAwIDEtMSAwVjE1SDIuNWEuNS41IDAgMSAxIDAtMUg1di0yLjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bWJvbHMyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3ltYm9sczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjE0IDcuOTdjLjIuMi41MS4yLjcgMGwyLjU2LTIuNTVhMiAyIDAgMSAwLTIuODMtMi44M2wtLjA3LjA4LS4wOC0uMDhhMiAyIDAgMCAwLTIuODMgMi44M2wyLjU1IDIuNTVaTTEyLjMgNC43MWExIDEgMCAxIDEgMS40Mi0xLjQxbC43OS43OC41LS41LjI4LS4yOGExIDEgMCAwIDEgMS40MyAwIDEgMSAwIDAgMSAwIDEuNEwxNC41IDYuOTJsLTIuMi0yLjJaTTIgNS41MWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFpNNS41IDNjLS41IDAtLjk4LjE1LTEuMzguNEw3LjYgNi44OUEyLjUgMi41IDAgMCAwIDUuNSAzWk0zIDUuNWEyLjUgMi41IDAgMCAwIDMuODggMi4wOEwzLjQgNC4xMkMzLjE1IDQuNTIgMyA1IDMgNS41Wm05LjM0IDcuNzRBMi41IDIuNSAwIDAgMSAxNi41IDEzaC0xYS41LjUgMCAxIDAgMCAxaDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLTEgMHYuNTVhMy40OSAzLjQ5IDAgMCAwLTUuNTMuNy41LjUgMCAwIDAgLjg3LjVabS0uMzQgMy43di41NWEuNS41IDAgMCAxLTEgMHYtMmMwLS4yOC4yMi0uNS41LS41aDJhLjUuNSAwIDEgMSAwIDFoLTFhMi41IDIuNSAwIDAgMCA0LjE3LS4yNS41LjUgMCAwIDEgLjg2LjUgMy41IDMuNSAwIDAgMS01LjUzLjdaTTUuNSAxMWMuMjggMCAuNS4yMy41LjVWMTRoMi41YS41LjUgMCAxIDEgMCAxSDZ2Mi41YS41LjUgMCAwIDEtMSAwVjE1SDIuNWEuNS41IDAgMSAxIDAtMUg1di0yLjVjMC0uMjcuMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bWJvbHMyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTeW1ib2xzMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xNi45MiAxOGEuNzUuNzUgMCAwIDEgLjEgMS41SDE1Ljg4YTMgMyAwIDAgMCA0LjctLjMuNzUuNzUgMCAxIDEgMS4yNC44NyA0LjUgNC41IDAgMCAxLTYuNjUuODN2LjM1YS43NS43NSAwIDAgMS0xLjUuMXYtMi42YzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFoMi41Wk02LjQgMTNoLjFjLjM4IDAgLjcuMjguNzQuNjVsLjAxLjF2M2gzYy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xYzAgLjM4LS4yOC43LS42NS43NGwtLjEuMDFoLTN2M2MwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxYS43NS43NSAwIDAgMS0uNzQtLjY1bC0uMDEtLjF2LTNoLTNhLjc1Ljc1IDAgMCAxLS43NC0uNjVMMiAxNy41YzAtLjM4LjI4LS43LjY1LS43NGwuMS0uMDFoM3YtM2MwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaC0uMVptMTEuMSAwYzEuMTEgMCAyLjE1LjQgMi45NSAxLjF2LS4zNWEuNzUuNzUgMCAwIDEgMS41LS4xdjIuNmMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxaC0yLjVhLjc1Ljc1IDAgMCAxLS4xLTEuNUgxOS43NGEzIDMgMCAwIDAtNC43LjI5Ljc1Ljc1IDAgMSAxLTEuMjQtLjg2QTQuNSA0LjUgMCAwIDEgMTcuNSAxM1pNNi41IDJhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTlabTEyLjcxIDBDMjAuNzcgMiAyMiAzLjM5IDIyIDUuMDhhMy4yIDMuMiAwIDAgMS0uODUgMi4yMWwtMi41IDMuMTRhMS40OSAxLjQ5IDAgMCAxLTIuMzUgMGwtMi42Ny0zLjRBMy4yNyAzLjI3IDAgMCAxIDEzIDUuMDhDMTMgMy4zOSAxNC4yMyAyIDE1Ljc5IDJjLjU2IDAgMS4xLjE5IDEuNTUuNTJsLjE2LjEzLjE2LS4xM0EyLjYgMi42IDAgMCAxIDE5LjIxIDJaTTMuOTEgNC45OGEzIDMgMCAwIDAgNC4xIDQuMWwtNC4xLTQuMVpNNi41IDMuNWMtLjU2IDAtMS4wOC4xNS0xLjUyLjQxbDQuMSA0LjExQTMgMyAwIDAgMCA2LjUgMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3ltYm9sczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTeW1ib2xzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMTYuOTIgMThhLjc1Ljc1IDAgMCAxIC4xIDEuNUgxNS44OGEzIDMgMCAwIDAgNC43LS4zLjc1Ljc1IDAgMSAxIDEuMjQuODcgNC41IDQuNSAwIDAgMS02LjY1Ljgzdi4zNWEuNzUuNzUgMCAwIDEtMS41LjF2LTIuNmMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDIuNVpNNi40IDEzaC4xYy4zOCAwIC43LjI4Ljc0LjY1bC4wMS4xdjNoM2MuMzggMCAuNy4yOC43NC42NWwuMDEuMWMwIC4zOC0uMjguNy0uNjUuNzRsLS4xLjAxaC0zdjNjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWEuNzUuNzUgMCAwIDEtLjc0LS42NWwtLjAxLS4xdi0zaC0zYS43NS43NSAwIDAgMS0uNzQtLjY1TDIgMTcuNWMwLS4zOC4yOC0uNy42NS0uNzRsLjEtLjAxaDN2LTNjMC0uMzguMjgtLjcuNjUtLjc0bC4xLS4wMWgtLjFabTExLjEgMGMxLjExIDAgMi4xNS40IDIuOTUgMS4xdi0uMzVhLjc1Ljc1IDAgMCAxIDEuNS0uMXYyLjZjMCAuMzgtLjI4LjctLjY1Ljc0bC0uMS4wMWgtMi41YS43NS43NSAwIDAgMS0uMS0xLjVIMTkuNzRhMyAzIDAgMCAwLTQuNy4yOS43NS43NSAwIDEgMS0xLjI0LS44NkE0LjUgNC41IDAgMCAxIDE3LjUgMTNaTTYuNSAyYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05Wm0xMi43MSAwQzIwLjc3IDIgMjIgMy4zOSAyMiA1LjA4YTMuMiAzLjIgMCAwIDEtLjg1IDIuMjFsLTIuNSAzLjE0YTEuNDkgMS40OSAwIDAgMS0yLjM1IDBsLTIuNjctMy40QTMuMjcgMy4yNyAwIDAgMSAxMyA1LjA4QzEzIDMuMzkgMTQuMjMgMiAxNS43OSAyYy41NiAwIDEuMS4xOSAxLjU1LjUybC4xNi4xMy4xNi0uMTNBMi42IDIuNiAwIDAgMSAxOS4yMSAyWk0zLjkxIDQuOThhMyAzIDAgMCAwIDQuMSA0LjFsLTQuMS00LjFabTE1LjMtMS40N2MtLjM1IDAtLjY4LjE4LS45Mi41bC0uNzkgMS0uNzgtMWExLjE5IDEuMTkgMCAwIDAtLjkzLS41Yy0uNjkgMC0xLjI5LjY4LTEuMjkgMS41NyAwIC40LjEyLjc2LjMyIDEuMDJsMi42NiAzLjM4IDIuNTYtMy4yMWMuMjktLjMuNDYtLjcyLjQ2LTEuMiAwLS44OC0uNi0xLjU2LTEuMjktMS41NlpNNi41IDMuNWMtLjU2IDAtMS4wOC4xNS0xLjUyLjQxbDQuMSA0LjExQTMgMyAwIDAgMCA2LjUgMy41WlwiXSk7XG5leHBvcnQgY29uc3QgU3luY09mZjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5bmNPZmYxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTE0IDhBNiA2IDAgMCAxIDIgOGgzLjg4bC0uODUgMi4zM2EuNS41IDAgMCAwIC45NC4zNGwyLTUuNWEuNS41IDAgMSAwLS45NC0uMzRMNi4yNCA3SDIuMDhhNiA2IDAgMCAxIDExLjg0IDBIMTAuM2wuNjctMS44M2EuNS41IDAgMSAwLS45NC0uMzRsLTIgNS41YS41LjUgMCAwIDAgLjk0LjM0TDkuOTQgOEgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5bmNPZmYxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3luY09mZjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTE0IDhBNiA2IDAgMSAxIDIgOGE2IDYgMCAwIDEgMTIgMFptLTEgMEg5Ljk0bC0uOTcgMi42N2EuNS41IDAgMSAxLS45NC0uMzRsMi01LjVhLjUuNSAwIDAgMSAuOTQuMzRMMTAuMyA3aDIuNmE1IDUgMCAwIDAtOS44IDBoMy4xNGwuNzktMi4xN2EuNS41IDAgMCAxIC45NC4zNGwtMiA1LjVhLjUuNSAwIDEgMS0uOTQtLjM0TDUuODggOEgzYTUgNSAwIDAgMCAxMCAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3luY09mZjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5bmNPZmYyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3Ljk0IDlIMTIuM2wuNjctMi4zNmEuNS41IDAgMCAwLS45Ni0uMjhsLTIgN2EuNS41IDAgMCAwIC45Ni4yOEwxMi4wMiAxMEgxOGE4IDggMCAwIDEtMTYgMGg1Ljk4bC0uOTYgMy4zNmEuNS41IDAgMCAwIC45Ni4yOGwyLTdhLjUuNSAwIDAgMC0uOTYtLjI4TDguMjcgOWgtNi4yYTggOCAwIDAgMSAxNS44NyAwWlwiXSk7XG5leHBvcnQgY29uc3QgU3luY09mZjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdTeW5jT2ZmMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiAxMGE4IDggMCAxIDEgMTYgMCA4IDggMCAwIDEtMTYgMFptOC03YTcgNyAwIDAgMC02LjkzIDZoNS4ybC43NS0yLjY0YS41LjUgMCAxIDEgLjk2LjI4bC0yIDdhLjUuNSAwIDEgMS0uOTYtLjI4TDcuOTggMTBIM2E3IDcgMCAxIDAgMTQgMGgtNC45OGwtMS4wNCAzLjY0YS41LjUgMCAxIDEtLjk2LS4yOGwyLTdhLjUuNSAwIDEgMSAuOTYuMjhMMTIuMzEgOWg0LjYyQTcgNyAwIDAgMCAxMCAzWlwiXSk7XG5leHBvcnQgY29uc3QgU3lyaW5nZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5cmluZ2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE0LjE1IDIuMTVjLjItLjIuNS0uMi43IDBsMyAzYS41LjUgMCAwIDEtLjcuN2wtLjQtLjQtMS44IDEuOCAxLjkgMS45YS41LjUgMCAwIDEtLjcuN0wxNSA4LjcxbC01LjU2IDUuNTZhMi41IDIuNSAwIDAgMS0xLjc3LjczSDUuNzFsLTIuODYgMi44NWEuNS41IDAgMCAxLS43LS43TDUgMTQuMjl2LTEuOTZjMC0uNjYuMjYtMS4zLjczLTEuNzdMNi4zIDEwbC44Ni44NWEuNS41IDAgMCAwIC43LS43TDcgOS4yOWwuOC0uNzkuODUuODVhLjUuNSAwIDEgMCAuNy0uN2wtLjg1LS44Ni44LS43OS44NS44NWEuNS41IDAgMCAwIC43LS43TDEwIDYuMjkgMTEuMyA1bC0xLjE1LTEuMTVhLjUuNSAwIDAgMSAuNy0uN2wxLjkgMS45IDEuOC0xLjgtLjQtLjRhLjUuNSAwIDAgMSAwLS43Wm0xLjkgMi42LS44LS44LTEuOCAxLjguOC44IDEuOC0xLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBTeXJpbmdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5cmluZ2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC4xNSAyLjE1Yy4yLS4yLjUtLjIuNyAwbDMgM2EuNS41IDAgMCAxLS43LjdsLS40LS40LTEuOCAxLjggMS45IDEuOWEuNS41IDAgMCAxLS43LjdMMTUgOC43MWwtNS41NiA1LjU2YTIuNSAyLjUgMCAwIDEtMS43Ny43M0g1LjcxbC0yLjg2IDIuODVhLjUuNSAwIDAgMS0uNy0uN0w1IDE0LjI5di0xLjk2YzAtLjY2LjI2LTEuMy43My0xLjc3TDExLjMgNWwtMS4xNC0xLjE1YS41LjUgMCAwIDEgLjctLjdsMS45IDEuOSAxLjgtMS44LS40LS40YS41LjUgMCAwIDEgMC0uN1pNMTAgNy43bC0uOC43OS42NS42NWEuNS41IDAgMCAxLS43LjdsLS42NS0uNjQtLjguNzkuNjUuNjVhLjUuNSAwIDAgMS0uNy43TDcgMTAuNzFsLS41Ni41NkExLjUgMS41IDAgMCAwIDYgMTIuMzNWMTRoMS42N2MuNCAwIC43OC0uMTYgMS4wNi0uNDRMMTQuMyA4IDEyIDUuNyAxMC43IDdsLjY1LjY1YS41LjUgMCAwIDEtLjcuN0wxMCA3LjcxWm02LjA0LTIuOTYtLjc5LS44LTEuOCAxLjguOC44IDEuOC0xLjhaXCJdKTtcbmV4cG9ydCBjb25zdCBTeXJpbmdlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3lyaW5nZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTYuNzIgMi4yMmMuMy0uMy43Ny0uMyAxLjA3IDBsNCA0YS43NS43NSAwIDAgMS0xLjA3IDEuMDZsLS40Ny0uNDctMS42OSAxLjY5IDIuNDcgMi40N2EuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0xLjQ3LTEuNDctNi44NCA2Ljg0Yy0uNy43LTEuNjYgMS4xLTIuNjUgMS4xSDYuNTZsLTMuMjggMy4yOGEuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDMuMjgtMy4yOHYtMi40NWMwLTEgLjQtMS45NSAxLjEtMi42NWwuMzQtLjM0IDEuNTMgMS41M2EuNzUuNzUgMCAwIDAgMS4wNi0xLjA2TDggMTAuOTRsLjk0LS45NCAxLjUzIDEuNTNhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMCA4Ljk0bC45NC0uOTQgMS41MyAxLjUzYS43NS43NSAwIDEgMCAxLjA2LTEuMDZMMTIgNi45NGwxLjQ0LTEuNDQtMS40Ny0xLjQ3YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMi40NyAyLjQ3IDEuNy0xLjctLjQ4LS40NmEuNzUuNzUgMCAwIDEgMC0xLjA2Wm0yLjQ3IDMuNTMtLjk0LS45NC0xLjY5IDEuNjkuOTQuOTQgMS43LTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN5cmluZ2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3lyaW5nZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE2LjcyIDIuMjJjLjMtLjMuNzctLjMgMS4wNyAwbDQgNGEuNzUuNzUgMCAwIDEtMS4wNyAxLjA2bC0uNDctLjQ3LTEuNjkgMS42OSAyLjQ3IDIuNDdhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMS40Ny0xLjQ3LTYuODQgNi44NGMtLjcuNy0xLjY2IDEuMS0yLjY1IDEuMUg2LjU2bC0zLjI4IDMuMjhhLjc1Ljc1IDAgMCAxLTEuMDYtMS4wNmwzLjI4LTMuMjh2LTIuNDVjMC0xIC40LTEuOTUgMS4xLTIuNjVsLjg3LS44NyAyLTIgMi0yIDEuOTctMS45Ny0xLjQ3LTEuNDdhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwyLjQ3IDIuNDcgMS43LTEuNy0uNDgtLjQ2YS43NS43NSAwIDAgMSAwLTEuMDZaTTEyIDkuMDZsLS45NC45NC43Mi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0uNzItLjcyLS45NC45NC43Mi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2TDggMTMuMDZsLS4zNC4zNGMtLjQyLjQyLS42NiAxLS42NiAxLjZ2MmgyYy42IDAgMS4xOC0uMjQgMS42LS42Nmw2Ljg0LTYuODQtMi45NC0yLjk0TDEzLjA2IDhsLjcyLjcyYS43NS43NSAwIDAgMS0xLjA2IDEuMDZMMTIgOS4wNlptNy4yLTMuMzEtLjk1LS45NC0xLjY5IDEuNjkuOTQuOTQgMS43LTEuN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFN5c3RlbTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5c3RlbTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGgxMUEyLjUgMi41IDAgMCAxIDE4IDYuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdabTIuNS0xYTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDExYTEgMSAwIDAgMCAxLTF2LTdhMSAxIDAgMCAwLTEtMWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBTeXN0ZW0yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignU3lzdGVtMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMiA2LjVBMi41IDIuNSAwIDAgMSA0LjUgNGgxMUEyLjUgMi41IDAgMCAxIDE4IDYuNXY3YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFBMi41IDIuNSAwIDAgMSAyIDEzLjV2LTdaTTQuNSA1QzMuNjcgNSAzIDUuNjcgMyA2LjV2N2MwIC44My42NyAxLjUgMS41IDEuNWgxMWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTdjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0xMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFN5c3RlbTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5c3RlbTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC45NSA1aDE0LjFDMjAuNjggNSAyMiA2LjMgMjIgNy45MnY4LjE2QTIuOTMgMi45MyAwIDAgMSAxOS4wNSAxOUg0Ljk1QTIuOTMgMi45MyAwIDAgMSAyIDE2LjA4VjcuOTJBMi45MyAyLjkzIDAgMCAxIDQuOTUgNVptMCAyYS45My45MyAwIDAgMC0uOTUuOTJ2OC4xNmMwIC41LjQyLjkyLjk1LjkyaDE0LjFjLjUzIDAgLjk1LS40MS45NS0uOTJWNy45MmMwLS41LS40Mi0uOTItLjk1LS45Mkg0Ljk1WlwiXSk7XG5leHBvcnQgY29uc3QgU3lzdGVtMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1N5c3RlbTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTQuNzUgNWgxNC41QTIuNzUgMi43NSAwIDAgMSAyMiA3Ljc1djguNUEyLjc1IDIuNzUgMCAwIDEgMTkuMjUgMTlINC43NUEyLjc1IDIuNzUgMCAwIDEgMiAxNi4yNXYtOC41QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDVabTAgMS41Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXY4LjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoMTQuNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTguNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNFptMi0uNWEuNS41IDAgMCAwLS41LjV2OGMwIC4yOC4yMi41LjUuNWg4YS41LjUgMCAwIDAgLjUtLjVWNGEuNS41IDAgMCAwLS41LS41SDRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWIxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNFptMi0xYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wm0yLjUtMWExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDEgMWg5YTEgMSAwIDAgMCAxLTF2LTlhMSAxIDAgMCAwLTEtMWgtOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWIyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWIyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDEyLjVBMi43NSAyLjc1IDAgMCAxIDIxIDUuNzV2MTIuNUEyLjc1IDIuNzUgMCAwIDEgMTguMjUgMjFINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxOC4yNVY1Ljc1Wk01Ljc1IDVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMi41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDEyLjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUg1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDEyLjVBMi43NSAyLjc1IDAgMCAxIDIxIDUuNzV2MTIuNUEyLjc1IDIuNzUgMCAwIDEgMTguMjUgMjFINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxOC4yNVY1Ljc1Wk01Ljc1IDQuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMi41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVY1Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg1Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTUuNUMyMy41NSAzIDI1IDQuNDYgMjUgNi4yNXYxNS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAyMS43NVY2LjI1Wk02LjI1IDVDNS41NiA1IDUgNS41NiA1IDYuMjV2MTUuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxNS41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNVY2LjI1QzIzIDUuNTYgMjIuNDQgNSAyMS43NSA1SDYuMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWIyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDE1LjVDMjMuNTUgMyAyNSA0LjQ2IDI1IDYuMjV2MTUuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMjEuNzVWNi4yNVpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1djE1LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoMTUuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWNi4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVINi4yNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWE1LjQ2IDUuNDYgMCAwIDAtMS41LS41VjUuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDMuNmMuMDkuNTMuMjYgMS4wMy41IDEuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlabTE2IDlhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWMtLjMyLS4xNi0uNjUtLjMtMS0uNFY1LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWgzLjdjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptMTYgOWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxNGgtMS41YS41LjUgMCAwIDAgMCAxSDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFIMTV2LTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkFkZDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyA1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNoMTIuNUEyLjc1IDIuNzUgMCAwIDEgMjEgNS43NXY2LjI3YTYuNDYgNi40NiAwIDAgMC0yLS44NVY1Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1SDUuNzVhLjc1Ljc1IDAgMCAwLS43NS43NXYxMi41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDUuNDJjLjE3LjcyLjQ2IDEuNC44NSAySDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTguMjVWNS43NVpNMjMgMTcuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWm0tNSAuNXYyLjVhLjUuNSAwIDEgMS0xIDBWMThoLTIuNWEuNS41IDAgMCAxIDAtMUgxN3YtMi41YS41LjUgMCAxIDEgMSAwVjE3aDIuNWEuNS41IDAgMCAxIDAgMUgxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFkZDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2gxMi41QTIuNzUgMi43NSAwIDAgMSAyMSA1Ljc1djYuMjdjLS40Ni0uMy0uOTctLjUzLTEuNS0uN1Y1Ljc0YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg1Ljc1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxMi41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDUuNTZjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTguMjVWNS43NVpNMjMgMTcuNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWm0tNSAuNXYyLjVhLjUuNSAwIDEgMS0xIDBWMThoLTIuNWEuNS41IDAgMCAxIDAtMUgxN3YtMi41YS41LjUgMCAxIDEgMSAwVjE3aDIuNWEuNS41IDAgMCAxIDAgMUgxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFycm93TGVmdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkFycm93TGVmdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djQuMWE1LjQ2IDUuNDYgMCAwIDAtMS41LS41VjUuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDMuNmMuMDkuNTMuMjYgMS4wMy41IDEuNUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTE0LjUgMTlhNC41IDQuNSAwIDEgMSAwLTkgNC41IDQuNSAwIDAgMSAwIDlabS0yLjM1LTQuODVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0wxMy43MSAxNWgyLjc5YS41LjUgMCAwIDAgMC0xaC0yLjhsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkFycm93TGVmdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJBcnJvd0xlZnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjUuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuN2MuMS4zNS4yNC42OC40IDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0tMi4zNS00Ljg1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMMTMuNzEgMTVoMi43OWEuNS41IDAgMCAwIDAtMWgtMi44bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJBcnJvd0xlZnQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJBcnJvd0xlZnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDEyLjVBMi43NSAyLjc1IDAgMCAxIDIxIDUuNzV2Ni4yN2E2LjQ2IDYuNDYgMCAwIDAtMi0uODVWNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUg1Ljc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTIuNWMwIC40MS4zNC43NS43NS43NWg1LjQyYy4xNy43Mi40NiAxLjQuODUgMkg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE4LjI1VjUuNzVaTTE3LjUgMjNhNS41IDUuNSAwIDEgMSAwLTExIDUuNSA1LjUgMCAwIDEgMCAxMVptMy01YS41LjUgMCAwIDAgMC0xaC00LjhsMS42NS0xLjY1YS41LjUgMCAwIDAtLjctLjdsLTIuNSAyLjVhLjUuNSAwIDAgMCAwIC43bDIuNSAyLjVhLjUuNSAwIDAgMCAuNy0uN0wxNS43MSAxOGg0Ljc5WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiQXJyb3dMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkFycm93TGVmdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDEyLjVBMi43NSAyLjc1IDAgMCAxIDIxIDUuNzV2Ni4yN2MtLjQ2LS4zLS45Ny0uNTMtMS41LS43VjUuNzRjMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1SDUuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djEyLjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVoNS41NmMuMTguNTMuNDIgMS4wNC43MSAxLjVINS43NUEyLjc1IDIuNzUgMCAwIDEgMyAxOC4yNVY1Ljc1Wk0xNy41IDIzYTUuNSA1LjUgMCAxIDEgMC0xMSA1LjUgNS41IDAgMCAxIDAgMTFabTMtNWEuNS41IDAgMCAwIDAtMWgtNC44bDEuNjUtMS42NWEuNS41IDAgMCAwLS43LS43bC0yLjUgMi41YS41LjUgMCAwIDAgMCAuN2wyLjUgMi41YS41LjUgMCAwIDAgLjctLjdMMTUuNzEgMThoNC43OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3AxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk03IDJINGEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNUg4LjVBMS41IDEuNSAwIDAgMSA3IDMuNVYyWm03IDJhMiAyIDAgMCAwLTItMkg4djEuNWMwIC4yOC4yMi41LjUuNUgxNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3AxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDRabTMgMXYuNUM3IDQuMzMgNy42NyA1IDguNSA1SDEzdjdhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDNabTYgMUg4LjVhLjUuNSAwIDAgMS0uNS0uNVYzaDRhMSAxIDAgMCAxIDEgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3AyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVYzSDUuNVpNOSAzdjIuNWMwIC4yOC4yMi41LjUuNUgxN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3AyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNMTYgNnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDl2MS41YzAgLjI4LjIyLjUuNS41SDE2Wk04IDRINS41QzQuNjcgNCA0IDQuNjcgNCA1LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEgM0g2YTMgMyAwIDAgMC0zIDN2MTJhMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zVjhoLTcuNzVDMTIuMDEgOCAxMSA3IDExIDUuNzVWM1ptMTAgMy41VjZhMyAzIDAgMCAwLTMtM2gtNS41djIuNzVjMCAuNDEuMzQuNzUuNzUuNzVIMjFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3AyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01Ljc1IDNBMi43NSAyLjc1IDAgMCAwIDMgNS43NXYxMi41QTIuNzUgMi43NSAwIDAgMCA1Ljc1IDIxaDEyLjVBMi43NSAyLjc1IDAgMCAwIDIxIDE4LjI1VjUuNzVBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDNINS43NVpNMTEgNC41djEuMjVDMTEgNi45OSAxMiA4IDEzLjI1IDhoNi4yNXYxMC4yNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINS43NWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjUuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVIMTFabTguNSAyaC02LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjQuNWg1Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1di43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3AyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMyAzdjMuMjVBMi43NSAyLjc1IDAgMCAwIDE1Ljc1IDlIMjV2MTIuMjVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1SDYuNzVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjVWNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzSDEzWm0xLjUgMHYzLjI1YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDI1di0uNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNIMTQuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3AyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNzUgM0EzLjc1IDMuNzUgMCAwIDAgMyA2Ljc1djE0LjVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVoMTQuNUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0g2Ljc1Wk00LjUgNi43NWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNUgxM3YxLjc1QTIuNzUgMi43NSAwIDAgMCAxNS43NSA5aDcuNzV2MTIuMjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVINi43NWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVWNi43NVptMTkgLjc1aC03Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNC41aDYuNzVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDRjMC0xLjEuOS0yIDItMmgzdjEuNzVDNyA0LjQ0IDcuNTYgNSA4LjI1IDVIMTR2N2EyIDIgMCAwIDEtMiAySDlhNC45OCA0Ljk4IDAgMCAwIC4yNS01LjY0VjcuMjVhMS41IDEuNSAwIDAgMC0yLjYzLS45OEE1IDUgMCAwIDAgMiA3VjRabTYtMnYxLjc1YzAgLjE0LjExLjI1LjI1LjI1SDE0YTIgMiAwIDAgMC0yLTJIOFptLjI1IDUuMmEuNS41IDAgMCAwLTEgLjA1di40NEE0IDQgMCAxIDAgOSAxMWEuNS41IDAgMCAwLTEgLjAxIDMgMyAwIDEgMS0xLjM0LTIuNUg2YS41LjUgMCAwIDAgMCAxaDEuNzVhLjUuNSAwIDAgMCAuNS0uNVY3LjI1YS41LjUgMCAwIDAgMC0uMDVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQXJyb3dDbG9ja3dpc2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNCAyYTIgMiAwIDAgMC0yIDJ2M2E1IDUgMCAwIDEgMS0uNThWNGExIDEgMCAwIDEgMS0xaDN2Ljc1QzcgNC40NCA3LjU2IDUgOC4yNSA1SDEzdjdhMSAxIDAgMCAxLTEgMUg5LjU4QTUgNSAwIDAgMSA5IDE0aDNhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINFptOSAySDguMjVBLjI1LjI1IDAgMCAxIDggMy43NVYzaDRhMSAxIDAgMCAxIDEgMVpNNy43NSA2Ljc1Yy4yOCAwIC41LjIyLjUuNVY5YS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEgMC0xaC42NkEzIDMgMCAxIDAgOCAxMWEuNS41IDAgMCAxIDEgMCA0IDQgMCAxIDEtMS43NS0zLjN2LS40NWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djMuNzZhNS40OCA1LjQ4IDAgMCAxIDUuMi0xQTEuNSAxLjUgMCAwIDEgMTEgOXYxLjM0YTUuNDggNS40OCAwIDAgMS0uMjYgNi42NmgzLjc2YTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjNINS41Wk05IDN2Mi41YzAgLjI4LjIyLjUuNS41SDE3di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM0g5Wm0xIDhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaC44YTMuNSAzLjUgMCAxIDAgMS43IDMgLjUuNSAwIDAgMSAxIDAgNC41IDQuNSAwIDEgMS0yLTMuNzRWOWEuNS41IDAgMCAxIC41LS41Yy4yOCAwIC41LjIyLjUuNXYyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEFycm93Q2xvY2t3aXNlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BBcnJvd0Nsb2Nrd2lzZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMy43NmMuMjYtLjMuNDgtLjY0LjY2LTFoMy4xYy44MyAwIDEuNS0uNjcgMS41LTEuNVY3SDkuNUExLjUgMS41IDAgMCAxIDggNS41VjRINS41QzQuNjcgNCA0IDQuNjcgNCA1LjV2My4xYy0uMzYuMTgtLjcuNC0xIC42NlY1LjVaTTE2IDZ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUg5djEuNWMwIC4yOC4yMi41LjUuNUgxNlpNOS41IDguNWMuMjggMCAuNS4yMi41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoLjhhMy41IDMuNSAwIDEgMCAxLjcgMyAuNS41IDAgMCAxIDEgMCA0LjUgNC41IDAgMSAxLTItMy43NFY5YzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQXJyb3dDbG9ja3dpc2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wQXJyb3dDbG9ja3dpc2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuNzUgM0EyLjc1IDIuNzUgMCAwIDAgMyA1Ljc1djUuMzVhNi45OCA2Ljk4IDAgMCAxIDcuNzctMS41MyAxLjc1IDEuNzUgMCAwIDEgMy4yMy45M3YxLjlhNi45NyA2Ljk3IDAgMCAxLTEuMSA4LjZoNS4zNUEyLjc1IDIuNzUgMCAwIDAgMjEgMTguMjVWOGgtNy43NUMxMi4wMSA4IDExIDcgMTEgNS43NVYzSDUuNzVabTYuNzUgMHYyLjc1YzAgLjQxLjM0Ljc1Ljc1Ljc1SDIxdi0uNzVBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDNIMTIuNVptLjUgMTAuMjVjMCAuNDEtLjM0Ljc1LS43NS43NUg5LjVhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMzNsLS4wMi0uMDFBNC41IDQuNSAwIDEgMCAxMi41IDE2YS43NS43NSAwIDAgMSAxLjUgMCA2IDYgMCAxIDEtMi41LTQuODd2LS42M2EuNzUuNzUgMCAwIDEgLjc1LS43NWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BBcnJvd0Nsb2Nrd2lzZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wQXJyb3dDbG9ja3dpc2UyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01Ljc1IDNBMi43NSAyLjc1IDAgMCAwIDMgNS43NXY1LjM1Yy40NC0uNDUuOTUtLjg0IDEuNS0xLjE2VjUuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVIMTF2MS4yNUMxMSA2Ljk5IDEyIDggMTMuMjUgOGg2LjI1djEwLjI1YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWgtNC4xOUE3LjAzIDcuMDMgMCAwIDEgMTIuOSAyMWg1LjM1QTIuNzUgMi43NSAwIDAgMCAyMSAxOC4yNVY1Ljc1QTIuNzUgMi43NSAwIDAgMCAxOC4yNSAzSDUuNzVaTTE5LjUgNi41aC02LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjQuNWg1Ljc1Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1di43NVptLTcuMjUgMy4yNWMuNDEgMCAuNzUuMzQuNzUuNzV2Mi43NWMwIC40MS0uMzQuNzUtLjc1Ljc1SDkuNWEuNzUuNzUgMCAwIDEgMC0xLjVoMS4zM2wtLjAyLS4wMUE0LjUgNC41IDAgMSAwIDEyLjUgMTZhLjc1Ljc1IDAgMCAxIDEuNSAwIDYgNiAwIDEgMS0yLjUtNC44N3YtLjYzYzAtLjQxLjM0LS43NS43NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQXJyb3dMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEFycm93TGVmdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY0LjFhNS41IDUuNSAwIDAgMSA3LjQgNy40aDQuMWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVYzSDUuNVpNOSAzdjIuNWMwIC4yOC4yMi41LjUuNUgxN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOVptMSAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNi44NS0uMzVhLjUuNSAwIDAgMC0uMTUuMzUuNS41IDAgMCAwIC4xNS4zNWwyIDJhLjUuNSAwIDAgMCAuNy0uN0w0LjcxIDE1SDcuNWEuNS41IDAgMCAwIDAtMUg0LjdsMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTIgMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BBcnJvd0xlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEFycm93TGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtNC4xYy4xNi0uMzIuMy0uNjUuNC0xaDMuN2MuODIgMCAxLjUtLjY3IDEuNS0xLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVY0SDUuNUM0LjY3IDQgNCA0LjY3IDQgNS41djMuN2MtLjM1LjEtLjY5LjI0LTEgLjRWNS41Wk0xNiA2di0uNWMwLS44My0uNjgtMS41LTEuNS0xLjVIOXYxLjVjMCAuMjguMjIuNS41LjVIMTZabS02IDguNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTYuODUtLjM1YS41LjUgMCAwIDAtLjE1LjM1LjUuNSAwIDAgMCAuMTUuMzVsMiAyYS41LjUgMCAwIDAgLjctLjdMNC43MSAxNUg3LjVhLjUuNSAwIDAgMCAwLTFINC43bDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0yIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQm90dG9tMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEJvdHRvbTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQuNSAxN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNVYxM2g3LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTdoMi41Wk0xMSAxN3YtMi41YS41LjUgMCAwIDAtLjUtLjVIM3YuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BCb3R0b20yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEJvdHRvbTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDE0LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5Wk00IDE0di41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDExdi0xLjVhLjUuNSAwIDAgMC0uNS0uNUg0Wm04IDJoMi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtOWMwLS44My0uNjctMS41LTEuNS0xLjVoLTlDNC42NyA0IDQgNC42NyA0IDUuNVYxM2g2LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wQm90dG9tMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEJvdHRvbTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDE0LjV2LTMuMjVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVIM1Y2LjI1Wk0zIDE3di43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMUgxM3YtMy4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NUgzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEJvdHRvbTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wQm90dG9tMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djExLjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDE0LjV2LTEuNzVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVINC41VjYuMjVaTTQuNSAxN2g3Ljc1Yy40MSAwIC43NS4zNC43NS43NXYxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NVYxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BDbG9jazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BDbG9jazIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY0LjFhNS41IDUuNSAwIDAgMSA3LjQgNy40aDQuMWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVYzSDUuNVpNOSAzdjIuNWMwIC4yOC4yMi41LjUuNUgxN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOVpNNS41IDE5YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjE0aDFhLjUuNSAwIDAgMSAwIDFINS41YS41LjUgMCAwIDEtLjUtLjV2LTJjMC0uMjguMjItLjUuNS0uNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BDbG9jazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wQ2xvY2syMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTQuMWMuMTYtLjMyLjMtLjY1LjQtMWgzLjdjLjgzIDAgMS41LS42NyAxLjUtMS41VjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWNEg1LjVDNC42NyA0IDQgNC42NyA0IDUuNXYzLjdjLS4zNS4xLS42OC4yNC0xIC40VjUuNVpNMTYgNnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDl2MS41YzAgLjI4LjIyLjUuNS41SDE2Wm0tNiA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBaTTUuNSAxMmEuNS41IDAgMCAwLS41LjV2MmMwIC4yOC4yMi41LjUuNUg3YS41LjUgMCAwIDAgMC0xSDZ2LTEuNWEuNS41IDAgMCAwLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcENvcHkyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wQ29weTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNSA0LjVBMi41IDIuNSAwIDAgMSA3LjUgMkg5djIuNWMwIC44My42NyAxLjUgMS41IDEuNUgxOHY2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC04QTIuNSAyLjUgMCAwIDEgNSAxMi41di04Wm01IDBWMmg1LjVBMi41IDIuNSAwIDAgMSAxOCA0LjVWNWgtNy41YS41LjUgMCAwIDEtLjUtLjVaTTEyLjUgMThhMi41IDIuNSAwIDAgMCAyLjQ1LTJINy41QTMuNSAzLjUgMCAwIDEgNCAxMi41VjUuMDVBMi41IDIuNSAwIDAgMCAyIDcuNVYxNGE0IDQgMCAwIDAgNCA0aDYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BDb3B5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BDb3B5MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNy41IDJBMi41IDIuNSAwIDAgMCA1IDQuNXY4QTIuNSAyLjUgMCAwIDAgNy41IDE1aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di04QTIuNSAyLjUgMCAwIDAgMTUuNSAyaC04Wk0xNyA0LjVWNWgtNi41YS41LjUgMCAwIDEtLjUtLjVWM2g1LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVabS04IDBjMCAuODMuNjcgMS41IDEuNSAxLjVIMTd2Ni41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDYgMTIuNXYtOEM2IDMuNjcgNi42NyAzIDcuNSAzSDl2MS41Wk0xMi41IDE4YTIuNSAyLjUgMCAwIDAgMi40NS0yaC0xLjA0Yy0uMi41OC0uNzYgMS0xLjQxIDFINmEzIDMgMCAwIDEtMy0zVjcuNWMwLS42NS40Mi0xLjIgMS0xLjQxVjUuMDVBMi41IDIuNSAwIDAgMCAyIDcuNVYxNGE0IDQgMCAwIDAgNCA0aDYuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BJbWFnZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BJbWFnZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNyAySDRhMiAyIDAgMCAwLTIgMnYxLjM0Yy40NS0uMjIuOTYtLjM0IDEuNS0uMzRoNEEzLjUgMy41IDAgMCAxIDExIDguNXY0YzAgLjU0LS4xMiAxLjA1LS4zNCAxLjVIMTJhMiAyIDAgMCAwIDItMlY1SDguNUExLjUgMS41IDAgMCAxIDcgMy41VjJabTcgMmEyIDIgMCAwIDAtMi0ySDh2MS41YzAgLjI4LjIyLjUuNS41SDE0Wk0xIDguNUEyLjUgMi41IDAgMCAxIDMuNSA2aDRBMi41IDIuNSAwIDAgMSAxMCA4LjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDEuNCAxMy44OEMxLjE1IDEzLjQ4IDEgMTMgMSAxMi41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDIuMTIgMTQuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BJbWFnZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wSW1hZ2UxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnYxLjM0Yy4zMS0uMTUuNjUtLjI1IDEtLjNWNGExIDEgMCAwIDEgMS0xaDN2LjVDNyA0LjMzIDcuNjcgNSA4LjUgNUgxM3Y3YTEgMSAwIDAgMS0xIDFoLTEuMDRjLS4wNS4zNS0uMTUuNjktLjMgMUgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0Wm05IDJIOC41YS41LjUgMCAwIDEtLjUtLjVWM2g0YTEgMSAwIDAgMSAxIDFaTTEgOC41QTIuNSAyLjUgMCAwIDEgMy41IDZoNEEyLjUgMi41IDAgMCAxIDEwIDguNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBMMS40IDEzLjg4QzEuMTUgMTMuNDggMSAxMyAxIDEyLjV2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41MSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBMMi4xMiAxNC42WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcEltYWdlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEltYWdlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djIuODRjLjQ1LS4yMi45Ni0uMzQgMS41LS4zNGg0YTMuNSAzLjUgMCAwIDEgMy41IDMuNXY0YzAgLjU0LS4xMiAxLjA1LS4zNCAxLjVoMi44NGEyLjUgMi41IDAgMCAwIDIuNS0yLjVWN0g5LjVBMS41IDEuNSAwIDAgMSA4IDUuNVYzSDUuNVpNOSAzdjIuNWMwIC4yOC4yMi41LjUuNUgxN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOVptLTcgOC41QTIuNSAyLjUgMCAwIDEgNC41IDloNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDIuNCAxNi44OEMyLjE1IDE2LjQ4IDIgMTYgMiAxNS41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDMuMTIgMTcuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BJbWFnZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wSW1hZ2UyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTIuODRjLjE1LS4zMS4yNS0uNjUuMy0xaDIuNTRjLjgyIDAgMS41LS42NyAxLjUtMS41VjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWNEg1LjVDNC42NyA0IDQgNC42NyA0IDUuNXYyLjU0Yy0uMzYuMDUtLjcuMTUtMSAuM1Y1LjVaTTE2IDZ2LS41YzAtLjgzLS42OC0xLjUtMS41LTEuNUg5djEuNWMwIC4yOC4yMi41LjUuNUgxNlpNMiAxMS41QTIuNSAyLjUgMCAwIDEgNC41IDloNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwTDIuNCAxNi44OEMyLjE1IDE2LjQ4IDIgMTYgMiAxNS41di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNTEgMCAuOTgtLjE1IDEuMzgtLjQxbC0zLjAzLTMuMDNhLjUuNSAwIDAgMC0uNyAwTDMuMTIgMTcuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BJbWFnZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BJbWFnZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTEgM0g2YTMgMyAwIDAgMC0zIDN2NC41NEEzLjk4IDMuOTggMCAwIDEgNSAxMGg1YTQgNCAwIDAgMSA0IDR2NWMwIC43My0uMiAxLjQxLS41NCAySDE4YTMgMyAwIDAgMCAzLTNWOGgtNy43NUMxMi4wMSA4IDExIDcgMTEgNS43NVYzWm0xMCAzLjVWNmEzIDMgMCAwIDAtMy0zaC01LjV2Mi43NWMwIC40MS4zNC43NS43NS43NUgyMVpNNSAxMWEzIDMgMCAwIDAtMyAzdjVjMCAuNTYuMTUgMS4wOC40MiAxLjUybDMuNDktMy40OWMuODgtLjg4IDIuMy0uODggMy4xOCAwbDMuNSAzLjVjLjI2LS40NS40MS0uOTcuNDEtMS41M3YtNWEzIDMgMCAwIDAtMy0zSDVabTAgMTFjLS41NiAwLTEuMDgtLjE1LTEuNTItLjQybDMuNDktMy40OWMuMy0uMy43Ny0uMyAxLjA2IDBsMy41IDMuNWMtLjQ1LjI2LS45Ny40MS0xLjUzLjQxSDVabTUtN2ExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wSW1hZ2UyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcEltYWdlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS43NSAzQTIuNzUgMi43NSAwIDAgMCAzIDUuNzV2NC43OWMuNDUtLjI3Ljk2LS40NCAxLjUtLjVWNS43NGMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNUgxMXYxLjI1QzExIDYuOTkgMTIgOCAxMy4yNSA4aDYuMjV2MTAuMjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1aC00LjI4YTMuOTggMy45OCAwIDAgMS0uNSAxLjVoNC43OEEyLjc1IDIuNzUgMCAwIDAgMjEgMTguMjVWNS43NUEyLjc1IDIuNzUgMCAwIDAgMTguMjUgM0g1Ljc1Wk0xOS41IDYuNWgtNi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVY0LjVoNS43NWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXYuNzVaTTUgMTFhMyAzIDAgMCAwLTMgM3Y1YzAgLjU2LjE1IDEuMDguNDIgMS41MmwzLjQ5LTMuNDljLjg4LS44OCAyLjMtLjg4IDMuMTggMGwzLjUgMy41Yy4yNi0uNDUuNDEtLjk3LjQxLTEuNTN2LTVhMyAzIDAgMCAwLTMtM0g1Wm0wIDExYy0uNTYgMC0xLjA4LS4xNS0xLjUyLS40MmwzLjQ5LTMuNDljLjMtLjMuNzctLjMgMS4wNiAwbDMuNSAzLjVjLS40NS4yNi0uOTcuNDEtMS41My40MUg1Wm01LTdhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcExpbmsxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTGluazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNyAySDRhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMi4wNGEzLjUgMy41IDAgMCAxIDMuNDYtNGg0Yy4xNyAwIC4zNC4wMS41LjA0VjVIOC41QTEuNSAxLjUgMCAwIDEgNyAzLjVWMlptNyAyYTIgMiAwIDAgMC0yLTJIOHYxLjVjMCAuMjguMjIuNS41LjVIMTRabS00LjUgN2EyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxM2EuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxM1ptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcExpbmsxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcExpbmsxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk00IDJhMiAyIDAgMCAwLTIgMnY4YzAgMS4xLjkgMiAyIDJoMi4wNGEzLjUzIDMuNTMgMCAwIDEgMC0xSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoM3YuNUM3IDQuMzMgNy42NyA1IDguNSA1SDEzdjVoLjVjLjE3IDAgLjM0LjAxLjUuMDRWNGEyIDIgMCAwIDAtMi0ySDRabTkgMkg4LjVhLjUuNSAwIDAgMS0uNS0uNVYzaDRhMSAxIDAgMCAxIDEgMVptLTMuNSA3YTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDEzYS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDEzWm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTGluazIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BMaW5rMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoMy41NGEzLjUgMy41IDAgMCAxIDMuNDYtNGg0Yy4xNyAwIC4zMy4wMS41LjAzVjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWM0g1LjVaTTkgM3YyLjVjMCAuMjguMjIuNS41LjVIMTd2LS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDlabTMuNSAxMWEyLjUgMi41IDAgMCAwIDAgNWguNWEuNS41IDAgMCAwIDAtMWgtLjVhMS41IDEuNSAwIDAgMSAwLTNoLjVhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxNmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxNlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcExpbmsyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcExpbmsyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2Ny41M2EzLjUzIDMuNTMgMCAwIDAtLjUtLjAzSDE2VjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWNEg1LjVDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDMuNTRhMy41MyAzLjUzIDAgMCAwIDAgMUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjV2LTlaTTE2IDZ2LS41YzAtLjgzLS42OC0xLjUtMS41LTEuNUg5djEuNWMwIC4yOC4yMi41LjUuNUgxNlptLTMuNSA4YTIuNSAyLjUgMCAwIDAgMCA1aC41YS41LjUgMCAwIDAgMC0xaC0uNWExLjUgMS41IDAgMCAxIDAtM2guNWEuNS41IDAgMCAwIDAtMWgtLjVabTMuNSAwYS41LjUgMCAwIDAgMCAxaC41YTEuNSAxLjUgMCAwIDEgMCAzSDE2YS41LjUgMCAwIDAgMCAxaC41YTIuNSAyLjUgMCAwIDAgMC01SDE2Wm0tNCAyLjVjMC0uMjguMjItLjUuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTGluazI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BMaW5rMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMSAzSDZhMyAzIDAgMCAwLTMgM3YxMmEzIDMgMCAwIDAgMyAzaDUuMzNhNC43NCA0Ljc0IDAgMCAxIDQuNDItNi41aDMuNWMuNjIgMCAxLjIuMTIgMS43NS4zM1Y4aC03Ljc1QzEyLjAxIDggMTEgNyAxMSA1Ljc1VjNabTEwIDMuNVY2YTMgMyAwIDAgMC0zLTNoLTUuNXYyLjc1YzAgLjQxLjM0Ljc1Ljc1Ljc1SDIxWm0yIDEyLjc1YTMuNzUgMy43NSAwIDAgMC0zLjc1LTMuNzVoLS4xYS43NS43NSAwIDAgMCAuMSAxLjVoLjE1YTIuMjUgMi4yNSAwIDAgMS0uMTUgNC41bC0uMS4wMWEuNzUuNzUgMCAwIDAgLjEgMS41VjIzaC4yQTMuNzUgMy43NSAwIDAgMCAyMyAxOS4yNFptLTYuNS0zYS43NS43NSAwIDAgMC0uNzUtLjc1aC0uMmEzLjc1IDMuNzUgMCAwIDAgLjIgNy41aC4xYS43NS43NSAwIDAgMC0uMS0xLjVoLS4xNWEyLjI1IDIuMjUgMCAwIDEgLjE1LTQuNWguMWEuNzUuNzUgMCAwIDAgLjY1LS43NVptMy41IDNhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNmEuNzUuNzUgMCAwIDAgLjEgMS41aDMuNmEuNzUuNzUgMCAwIDAgLjY1LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BMaW5rMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BMaW5rMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNS43NSAzQTIuNzUgMi43NSAwIDAgMCAzIDUuNzV2MTIuNUEyLjc1IDIuNzUgMCAwIDAgNS43NSAyMWg1LjU4Yy0uMTgtLjQ3LS4zLS45Ny0uMzItMS41SDUuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVY1Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1SDExdjEuMjVDMTEgNi45OSAxMiA4IDEzLjI1IDhoNi4yNXY2LjVjLjUzLjAzIDEuMDMuMTUgMS41LjMzVjUuNzVBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDNINS43NVpNMTkuNSA2LjVoLTYuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNC41aDUuNzVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2Ljc1Wk0yMyAxOS4yNWEzLjc1IDMuNzUgMCAwIDAtMy43NS0zLjc1aC0uMWEuNzUuNzUgMCAwIDAgLjEgMS41aC4xNWEyLjI1IDIuMjUgMCAwIDEtLjE1IDQuNWwtLjEuMDFhLjc1Ljc1IDAgMCAwIC4xIDEuNVYyM2guMkEzLjc1IDMuNzUgMCAwIDAgMjMgMTkuMjRabS02LjUtM2EuNzUuNzUgMCAwIDAtLjc1LS43NWgtLjJhMy43NSAzLjc1IDAgMCAwIC4yIDcuNWguMWEuNzUuNzUgMCAwIDAtLjEtMS41aC0uMTVhMi4yNSAyLjI1IDAgMCAxIC4xNS00LjVoLjFhLjc1Ljc1IDAgMCAwIC42NS0uNzVabTMuNSAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjZhLjc1Ljc1IDAgMCAwIC4xIDEuNWgzLjZhLjc1Ljc1IDAgMCAwIC42NS0uNzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTGluazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BMaW5rMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0xMyAzdjMuMjVBMi43NSAyLjc1IDAgMCAwIDE1Ljc1IDlIMjV2OS44M2E0Ljc0IDQuNzQgMCAwIDAtMS43NS0uMzNoLTUuNWE0Ljc1IDQuNzUgMCAwIDAtNC40MiA2LjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNIMTNabTEuNSAwdjMuMjVjMCAuNjkuNTYgMS4yNSAxLjI1IDEuMjVIMjV2LS43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0gxNC41Wm0zLjI1IDE4YTIuMjUgMi4yNSAwIDAgMCAwIDQuNWguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLS41YTMuNzUgMy43NSAwIDEgMSAwLTcuNWguNWEuNzUuNzUgMCAwIDEgMCAxLjVoLS41Wk0xNyAyMy4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NVptNi4yNSAyLjI1YTIuMjUgMi4yNSAwIDAgMCAwLTQuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41YTMuNzUgMy43NSAwIDEgMSAwIDcuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcExpbmsyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcExpbmsyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDYuNThjLS4xOC0uNDctLjMtLjk3LS4zMi0xLjVINi43NWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVWNi43NWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNUgxM3YxLjc1QTIuNzUgMi43NSAwIDAgMCAxNS43NSA5aDcuNzV2OS41Yy41My4wMyAxLjAzLjE1IDEuNS4zM1Y2Ljc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzSDYuNzVaTTIzLjUgNy41aC03Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNC41aDYuNzVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Ljc1Wk0xNy43NSAyMWEyLjI1IDIuMjUgMCAwIDAgMCA0LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNWEzLjc1IDMuNzUgMCAxIDEgMC03LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNVpNMTcgMjMuMjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabTYuMjUgMi4yNWEyLjI1IDIuMjUgMCAwIDAgMC00LjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNWEzLjc1IDMuNzUgMCAxIDEgMCA3LjVoLS41YS43NS43NSAwIDAgMSAwLTEuNWguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDJINXYxLjVDNSA0LjMzIDUuNjcgNSA2LjUgNUgxMnY0LjVBMi41IDIuNSAwIDAgMSA5LjUgMTJoLTVBMi41IDIuNSAwIDAgMSAyIDkuNXYtNUEyLjUgMi41IDAgMCAxIDQuNSAyWm01IDBhMi41IDIuNSAwIDAgMSAyLjQ1IDJINi41YS41LjUgMCAwIDEtLjUtLjVWMmgzLjVabS01IDExYy40NS42IDEuMTggMSAyIDFIMTBhNCA0IDAgMCAwIDQtNFY2LjVjMC0uODItLjQtMS41NC0xLTJWMTAuMDFhMyAzIDAgMCAxLTMgM0w0LjUgMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg1QTIuNSAyLjUgMCAwIDEgMTIgNC41djVBMi41IDIuNSAwIDAgMSA5LjUgMTJoLTVBMi41IDIuNSAwIDAgMSAyIDkuNXYtNVpNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNXY1YzAgLjgzLjY3IDEuNSAxLjUgMS41aDVjLjgzIDAgMS41LS42NyAxLjUtMS41VjVINi41QTEuNSAxLjUgMCAwIDEgNSAzLjVWM2gtLjVaTTYgM3YuNWMwIC4yOC4yMi41LjUuNWg0LjQxYy0uMi0uNTgtLjc2LTEtMS40MS0xSDZabS41IDExYTIuNSAyLjUgMCAwIDEtMi0xSDEwYTMgMyAwIDAgMCAzLTNWNC41Yy42LjQ2IDEgMS4xOCAxIDJWMTBhNCA0IDAgMCAxLTQgNEg2LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJINnYyLjVDNiA1LjMzIDYuNjcgNiA3LjUgNkgxNXY2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC04QTIuNSAyLjUgMCAwIDEgMiAxMi41di04Wm01IDBWMmg1LjVBMi41IDIuNSAwIDAgMSAxNSA0LjVWNUg3LjVhLjUuNSAwIDAgMS0uNS0uNVpNNy41IDE4YTIuNSAyLjUgMCAwIDEtMi40NS0yaDcuNDVhMy41IDMuNSAwIDAgMCAzLjUtMy41VjUuMDVhMi41IDIuNSAwIDAgMSAyIDIuNDVWMTRhNCA0IDAgMCAxLTQgNEg3LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGUyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY4QTIuNSAyLjUgMCAwIDAgNC41IDE1aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di04QTIuNSAyLjUgMCAwIDAgMTIuNSAyaC04Wk0xNCA0LjVWNUg3LjVhLjUuNSAwIDAgMS0uNS0uNVYzaDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNVptLTggMEM2IDUuMzMgNi42NyA2IDcuNSA2SDE0djYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSAzIDEyLjV2LThDMyAzLjY3IDMuNjcgMyA0LjUgM0g2djEuNVpNNy41IDE4YTIuNSAyLjUgMCAwIDEtMi40NS0yaDEuMDRjLjIuNTguNzYgMSAxLjQxIDFIMTRhMyAzIDAgMCAwIDMtM1Y3LjVjMC0uNjUtLjQyLTEuMi0xLTEuNDFWNS4wNWEyLjUgMi41IDAgMCAxIDIgMi40NVYxNGE0IDQgMCAwIDEtNCA0SDcuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTkgNmMxLjY4LjE0IDMgMS41NCAzIDMuMjV2OEE0Ljc1IDQuNzUgMCAwIDEgMTcuMjUgMjJoLThhMy4yNSAzLjI1IDAgMCAxLTMuMjQtM2g4Ljc0QzE3LjEgMTkgMTkgMTcuMSAxOSAxNC43NVY2LjAxWk01LjI1IDJBMy4yNSAzLjI1IDAgMCAwIDIgNS4yNXY5LjVDMiAxNi41NSAzLjQ2IDE4IDUuMjUgMThoOS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNy41aC03LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVYySDUuMjVabTUuNSA0SDE4di0uNzVDMTggMy40NSAxNi41NCAyIDE0Ljc1IDJIMTB2My4yNWMwIC40MS4zNC43NS43NS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk05LjI1IDIyQTMuMjUgMy4yNSAwIDAgMSA2IDE5aDEuNWMuMTMuODUuODYgMS41IDEuNzQgMS41aDhjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOGMwLS44OC0uNjUtMS42MS0xLjUtMS43M1Y2YzEuNjguMTMgMyAxLjUzIDMgMy4yNHY4QTQuNzUgNC43NSAwIDAgMSAxNy4yNSAyMmgtOFpNMiA1LjI1QzIgMy40NSAzLjQ2IDIgNS4yNSAyaDkuNUMxNi41NSAyIDE4IDMuNDYgMTggNS4yNXY5LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtOS41QTMuMjUgMy4yNSAwIDAgMSAyIDE0Ljc1di05LjVaTTUuMjUgMy41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXY5LjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVoOS41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVY3LjVoLTUuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1VjMuNUg1LjI1Wm00Ljc1IDB2MS43NWMwIC40MS4zNC43NS43NS43NWg1Ljc1di0uNzVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDEwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlQWRkMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlQWRkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk01LjUgMUg2djEuNUM2IDMuMzMgNi42NyA0IDcuNSA0SDEzdjQuNWEyLjUgMi41IDAgMCAxLTIuMDIgMi40NWwuMDItLjQ1YTUuNSA1LjUgMCAwIDAtOC00LjlWMy41QTIuNSAyLjUgMCAwIDEgNS41IDFabTUuMyAxMWMtLjEuMzUtLjI0LjY4LS40IDFoLjZhNCA0IDAgMCAwIDQtNFY1LjVjMC0uODItLjQtMS41NC0xLTJWOS4wMWEzIDMgMCAwIDEtMyAzaC0uMlptLS4zLTExYTIuNSAyLjUgMCAwIDEgMi40NSAySDcuNWEuNS41IDAgMCAxLS41LS41VjFoMy41Wm0tLjUgOS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjEwSDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxMWgxLjVhLjUuNSAwIDAgMCAwLTFINlY4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGVBZGQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlQWRkMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMyAzLjVBMi41IDIuNSAwIDAgMSA1LjUgMWg1QTIuNSAyLjUgMCAwIDEgMTMgMy41djVhMi41IDIuNSAwIDAgMS0yLjAyIDIuNDUgNS41OCA1LjU4IDAgMCAwLS4wMS0xLjAzQTEuNSAxLjUgMCAwIDAgMTIgOC41VjRINy41QTEuNSAxLjUgMCAwIDEgNiAyLjVWMmgtLjVDNC42NyAyIDQgMi42NyA0IDMuNXYxLjdjLS4zNS4xLS42OC4yNC0xIC40VjMuNVptNy44IDguNWMtLjEuMzUtLjI0LjY4LS40IDFoLjZhNCA0IDAgMCAwIDQtNFY1LjVjMC0uODItLjQtMS41NC0xLTJWOS4wMWEzIDMgMCAwIDEtMyAzaC0uMlpNNyAydi41YzAgLjI4LjIyLjUuNS41aDQuNDFjLS4yLS41OC0uNzYtMS0xLjQxLTFIN1ptMyA4LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTBIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjExaDEuNWEuNS41IDAgMCAwIDAtMUg2VjguNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZUFkZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZUFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMkg2djIuNUM2IDUuMzMgNi42NyA2IDcuNSA2SDE1djYuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTEuNTJsLjAyLS41YTUuNSA1LjUgMCAwIDAtOS00LjI0VjQuNVpNMTAuOCAxNmE1LjQ5IDUuNDkgMCAwIDEtMS4wNiAySDE0YTQgNCAwIDAgMCA0LTRWNy41YTIuNSAyLjUgMCAwIDAtMi0yLjQ1djcuNDVhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0xLjdaTTcgNC41VjJoNS41QTIuNSAyLjUgMCAwIDEgMTUgNC41VjVINy41YS41LjUgMCAwIDEtLjUtLjVabTMgMTBhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRIMy41YS41LjUgMCAwIDAgMCAxSDV2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUg2di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGVBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlQWRkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY1Ljc2Yy4zLS4yNi42NC0uNDggMS0uNjZWNC41QzMgMy42NyAzLjY3IDMgNC41IDNINnYxLjVDNiA1LjMzIDYuNjcgNiA3LjUgNkgxNHY2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xLjUyYTUuNTkgNS41OSAwIDAgMSAwIDFoMS41MmEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LThBMi41IDIuNSAwIDAgMCAxMi41IDJoLThaTTE0IDE4SDkuNzRjLjI2LS4zLjQ4LS42NC42Ni0xSDE0YTMgMyAwIDAgMCAzLTNWNy41YzAtLjY1LS40Mi0xLjItMS0xLjQxVjUuMDVhMi41IDIuNSAwIDAgMSAyIDIuNDVWMTRhNCA0IDAgMCAxLTQgNFptMC0xMy41VjVINy41YS41LjUgMCAwIDEtLjUtLjVWM2g1LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVabS00IDEwYTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0SDMuNWEuNS41IDAgMCAwIDAgMUg1djEuNWEuNS41IDAgMCAwIDEgMFYxNWgxLjVhLjUuNSAwIDAgMCAwLTFINnYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlQm90dG9tMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE11bHRpcGxlQm90dG9tMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjA1IDRoNy40NUEzLjUgMy41IDAgMCAxIDE2IDcuNXY3LjQ1YTIuNSAyLjUgMCAwIDAgMi0yLjQ1VjZhNCA0IDAgMCAwLTQtNEg3LjVhMi41IDIuNSAwIDAgMC0yLjQ1IDJaTTIgNy41QTIuNSAyLjUgMCAwIDEgNC41IDVoOEEyLjUgMi41IDAgMCAxIDE1IDcuNXY4YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMXYtMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgyVjcuNVptOCA4VjE4SDQuNUEyLjUgMi41IDAgMCAxIDIgMTUuNVYxNWg3LjVjLjI4IDAgLjUuMjIuNS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlQm90dG9tMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZUJvdHRvbTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTYuMDkgNEg1LjA1QTIuNSAyLjUgMCAwIDEgNy41IDJIMTRhNCA0IDAgMCAxIDQgNHY2LjVhMi41IDIuNSAwIDAgMS0yIDIuNDV2LTEuMDRjLjU4LS4yIDEtLjc2IDEtMS40MVY2YTMgMyAwIDAgMC0zLTNINy41Yy0uNjUgMC0xLjIuNDItMS40MSAxWk05LjUgMTVIM3YuNWMwIC44My42NyAxLjUgMS41IDEuNUgxMHYtMS41YS41LjUgMCAwIDAtLjUtLjVaTTMgMTRoNi41Yy44MyAwIDEuNS42NyAxLjUgMS41VjE3aDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LThjMC0uODMtLjY3LTEuNS0xLjUtMS41aC04QzMuNjcgNiAzIDYuNjcgMyA3LjVWMTRabTEuNSA0QTIuNSAyLjUgMCAwIDEgMiAxNS41di04QTIuNSAyLjUgMCAwIDEgNC41IDVoOEEyLjUgMi41IDAgMCAxIDE1IDcuNXY4YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZUJvdHRvbTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZUJvdHRvbTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNiA1Yy4xNC0xLjY4IDEuNTQtMyAzLjI1LTNoOEE0Ljc1IDQuNzUgMCAwIDEgMjIgNi43NXY4YTMuMjUgMy4yNSAwIDAgMS0zIDMuMjRWOS4yNUMxOSA2LjkgMTcuMSA1IDE0Ljc1IDVINlptLS43NSAxQTMuMjUgMy4yNSAwIDAgMCAyIDkuMjV2Ny4yNWg3LjI1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1VjIyaDMuMjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtOS41QzE4IDcuNDUgMTYuNTUgNiAxNC43NSA2aC05LjVaTTIgMTguNzVWMThoNy4yNWMuNDEgMCAuNzUuMzQuNzUuNzVWMjJINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxOC43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BNdWx0aXBsZUJvdHRvbTI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGVCb3R0b20yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02IDVoMS41MmMuMTItLjg1Ljg1LTEuNSAxLjczLTEuNWg4YzEuOCAwIDMuMjUgMS40NiAzLjI1IDMuMjV2OGMwIC44OC0uNjUgMS42MS0xLjUgMS43M1YxOGMxLjY4LS4xMyAzLTEuNTMgMy0zLjI0di04QTQuNzUgNC43NSAwIDAgMCAxNy4yNSAyaC04YTMuMjUgMy4yNSAwIDAgMC0zLjI0IDNaTTIgOS4yNUMyIDcuNDUgMy40NiA2IDUuMjUgNmg5LjVDMTYuNTUgNiAxOCA3LjQ2IDE4IDkuMjV2OS41YzAgMS44LTEuNDUgMy4yNS0zLjI1IDMuMjVoLTkuNUEzLjI1IDMuMjUgMCAwIDEgMiAxOC43NXYtOS41Wk01LjI1IDcuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzV2Ny4yNWg1Ljc1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djEuNzVoMy4yNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzV2LTkuNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVoLTkuNVptNC43NSAxM3YtMS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUgzLjV2Ljc1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDEwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlU3BhcmtsZTE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wibTEwLjg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMiAyLjIgMCAwIDAtMS40LTEuNEw3LjI4IDMuOWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk01IDNoMS4wOWExLjQyIDEuNDIgMCAwIDAgLjE3IDEuMzJjLjE3LjI0LjQxLjQzLjcxLjUzbC40Ni4xNUg1LjVhLjUuNSAwIDAgMS0uNS0uNVYzWm0uNSAzaDMuM2wuMzUgMS4wNWMuMS4yNS4yNS40OC41Mi43LjE0LjEuMy4xNi40NS4yYTEuMyAxLjMgMCAwIDAgLjc3IDEuNzlsLjExLjAzdi43M0EyLjUgMi41IDAgMCAxIDguNSAxM2gtNUEyLjUgMi41IDAgMCAxIDEgMTAuNXYtNUEyLjUgMi41IDAgMCAxIDMuNSAzSDR2MS41QzQgNS4zMyA0LjY3IDYgNS41IDZabTYuNSA0LjV2LS4xOWwuMDIuMDQuMjYuOGExLjQgMS40IDAgMCAwIC42My43QTQgNCAwIDAgMSA5IDE1SDUuNWEyLjUgMi41IDAgMCAxLTItMUg5YTMgMyAwIDAgMCAzLTN2LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlU3BhcmtsZTE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wTXVsdGlwbGVTcGFya2xlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTAuODguMjguMzUgMS4wN2EyLjIgMi4yIDAgMCAwIDEuNCAxLjRsMS4wNy4zNWguMDJhLjQyLjQyIDAgMCAxIDAgLjhsLTEuMDcuMzVhMi4yIDIuMiAwIDAgMC0xLjQgMS40bC0uMzUgMS4wN2EuNDIuNDIgMCAwIDEtLjggMGwtLjM1LTEuMDdhMi4yIDIuMiAwIDAgMC0xLjQtMS40TDcuMjggMy45YS40Mi40MiAwIDAgMSAwLS44bDEuMDctLjM1YTIuMiAyLjIgMCAwIDAgMS4zOC0xLjRsLjM1LTEuMDdhLjQyLjQyIDAgMCAxIC44IDBabTQuOSA3LjkzLS43Ni0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaTTEyIDEwLjV2LS4xOWwuMDIuMDQuMjYuOGExLjQgMS40IDAgMCAwIC42My43QTQgNCAwIDAgMSA5IDE1SDUuNWEyLjUgMi41IDAgMCAxLTItMUg5YTMgMyAwIDAgMCAzLTN2LS41Wk02LjEgM0gzLjVBMi41IDIuNSAwIDAgMCAxIDUuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDEzaDVhMi41IDIuNSAwIDAgMCAyLjUtMi41di0uNzNsLS4xLS4wM2MtLjI4LS4xLS41LS4yNi0uNjYtLjQ4QTEuMjcgMS4yNyAwIDAgMSAxMCA4LjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSAyIDEwLjV2LTVDMiA0LjY3IDIuNjcgNCAzLjUgNEg0di41QzQgNS4zMyA0LjY3IDYgNS41IDZoMy4zdi0uMDRhMS4yNyAxLjI3IDAgMCAwLS4zLS40NyAxLjMgMS4zIDAgMCAwLS40Ny0uM0w3LjQzIDVINS41YS41LjUgMCAwIDEtLjUtLjVWNGgxLjFhMS40MiAxLjQyIDAgMCAxLS4wMS0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlU3BhcmtsZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGUyMEZpbGxlZCcsIFwiMjBcIiwgW1wibTE0Ljg4LjI4LjM1IDEuMDdhMi4yIDIuMiAwIDAgMCAxLjQgMS40bDEuMDcuMzVoLjAyYS40Mi40MiAwIDAgMSAwIC44bC0xLjA3LjM1YTIuMiAyLjIgMCAwIDAtMS40IDEuNGwtLjM1IDEuMDdhLjQyLjQyIDAgMCAxLS44IDBsLS4zNS0xLjA3YTIuMjMgMi4yMyAwIDAgMC0xLjQtMS40bC0xLjA3LS4zNWEuNDIuNDIgMCAwIDEgMC0uOGwxLjA3LS4zNWEyLjIgMi4yIDAgMCAwIDEuMzgtMS40bC4zNS0xLjA3YS40Mi40MiAwIDAgMSAuOCAwWm00LjkgNy45My0uNzYtLjI1YTEuNTggMS41OCAwIDAgMS0xLTFsLS4yNS0uNzZhLjMuMyAwIDAgMC0uNTcgMGwtLjI1Ljc3YTEuNTggMS41OCAwIDAgMS0uOTggMWwtLjc3LjI0YS4zLjMgMCAwIDAgMCAuNTdsLjc3LjI1YTEuNTggMS41OCAwIDAgMSAxIDFsLjI0Ljc3YS4zLjMgMCAwIDAgLjU4IDBsLjI0LS43N2ExLjU4IDEuNTggMCAwIDEgMS0xbC43Ny0uMjRhLjMuMyAwIDAgMCAwLS41N2gtLjAyWk0xNy41IDEyYy0uMjcgMC0uNTItLjA4LS43NC0uMjNhMS40IDEuNCAwIDAgMS0uNDgtLjYybC0uMjYtLjgtLjAyLS4wNHYyLjE5YTMuNSAzLjUgMCAwIDEtMy41IDMuNUg1LjA1YTIuNSAyLjUgMCAwIDAgMi40NSAySDE0YTQgNCAwIDAgMCA0LTR2LTIuMDhjLS4xNi4wNi0uMzMuMDgtLjUuMDhabS00LjM1LTQuOTVMMTIuODEgNkg3LjVBMS41IDEuNSAwIDAgMSA2IDQuNVYySDQuNUEyLjUgMi41IDAgMCAwIDIgNC41djhBMi41IDIuNSAwIDAgMCA0LjUgMTVoOGEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOS43N2wtLjEtLjAzYy0uMjgtLjEtLjUtLjI2LS42Ni0uNDhhMS4zIDEuMyAwIDAgMS0uMTItMS4zIDEuMzIgMS4zMiAwIDAgMS0uNDUtLjIyIDEuNTEgMS41MSAwIDAgMS0uNTItLjY5Wm0tMi4yLTQuOS40OC0uMTVIN3YyLjVjMCAuMjguMjIuNS41LjVoMy45M2wtLjQ2LS4xNUExLjQxIDEuNDEgMCAwIDEgMTAgMy41YTEuNCAxLjQgMCAwIDEgLjk1LTEuMzVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGVTcGFya2xlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIm0xNC44OC4yOC4zNSAxLjA3YTIuMiAyLjIgMCAwIDAgMS40IDEuNGwxLjA3LjM1aC4wMmEuNDIuNDIgMCAwIDEgMCAuOGwtMS4wNy4zNWEyLjIgMi4yIDAgMCAwLTEuNCAxLjRsLS4zNSAxLjA3YS40Mi40MiAwIDAgMS0uOCAwbC0uMzUtMS4wN2EyLjIzIDIuMjMgMCAwIDAtMS40LTEuNGwtMS4wNy0uMzVhLjQyLjQyIDAgMCAxIDAtLjhsMS4wNy0uMzVhMi4yIDIuMiAwIDAgMCAxLjM4LTEuNGwuMzUtMS4wN2EuNDIuNDIgMCAwIDEgLjggMFptNC45IDcuOTMtLjc2LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpNMTcgMTEuOTFjLjE2LjA2LjMzLjA5LjUuMDkuMTcgMCAuMzQtLjAyLjUtLjA4VjE0YTQgNCAwIDAgMS00IDRINy41YTIuNSAyLjUgMCAwIDEtMi40NS0yaDEuMDRjLjIuNTguNzYgMSAxLjQxIDFIMTRhMyAzIDAgMCAwIDMtM3YtMi4xWk0xMS40MyAySDQuNUEyLjUgMi41IDAgMCAwIDIgNC41djhBMi41IDIuNSAwIDAgMCA0LjUgMTVoOGEyLjUgMi41IDAgMCAwIDIuNS0yLjVWOS43N2wtLjEtLjAzYy0uMjgtLjEtLjUtLjI2LS42Ni0uNDhBMS4yNyAxLjI3IDAgMCAxIDE0IDguNXY0YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOEExLjUgMS41IDAgMCAxIDMgMTIuNXYtOEMzIDMuNjcgMy42NyAzIDQuNSAzSDZ2MS41QzYgNS4zMyA2LjY3IDYgNy41IDZoNS4zdi0uMDRhMS4yNyAxLjI3IDAgMCAwLS4zLS40NyAxLjMgMS4zIDAgMCAwLS40Ny0uM2wtLjYtLjE5SDcuNWEuNS41IDAgMCAxLS41LS41VjNoMy4wOWExLjQyIDEuNDIgMCAwIDEgLjg2LS44NWwuNDgtLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcE11bHRpcGxlU3BhcmtsZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGUyNEZpbGxlZCcsIFwiMjRcIiwgW1wibTE5IDExLjgzLjA3LjAyYy4zNi4wOS44LjIuOTEuNTVsLjAxLjA0Yy4yNC43NS41MSAxLjYxIDEuNDcgMS42MS4yMSAwIC40LS4wNC41NC0uMTJ2My4zMkE0Ljc1IDQuNzUgMCAwIDEgMTcuMjUgMjJoLThhMy4yNSAzLjI1IDAgMCAxLTMuMjQtM2g4Ljc0QzE3LjEgMTkgMTkgMTcuMSAxOSAxNC43NXYtMi45MlptLTEgMi45MmMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1aC05LjVBMy4yNSAzLjI1IDAgMCAxIDIgMTQuNzV2LTkuNUMyIDMuNDUgMy40NiAyIDUuMjUgMkg4LjV2My4yNWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg0LjgybC4wMi4wNUwxNiA5YTEuNTUgMS41NSAwIDAgMCAyIC45NXY0LjhaTTEzIDZoLTIuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMmg0Ljc1Yy4xNSAwIC4zLjAxLjQzLjAzLS4yLjI0LS40OC40My0uNzkuNTNMMTMuMDUgM2MtLjYzLjIyLTEuMDUuOC0xLjA1IDEuNDcgMCAuNjMuNDIgMS4yOCAxIDEuNTNabTMuMDkuNDFhMi44NCAyLjg0IDAgMCAwLTEuMzUtLjk1TDEzLjM2IDVhLjU0LjU0IDAgMCAxIDAtMS4wM2wxLjM4LS40NGEyLjg0IDIuODQgMCAwIDAgMS43Ni0xLjc3bC4wMS0uMDMuNDUtMS4zOGEuNTQuNTQgMCAwIDEgMS4wMyAwbC40NCAxLjM4YTIuODQgMi44NCAwIDAgMCAxLjggMS44bDEuMzguNDQuMDMuMDFhLjU0LjU0IDAgMCAxIDAgMS4wM2wtMS4zOC40NGEyLjg0IDIuODQgMCAwIDAtMS44IDEuOGwtLjQ1IDEuMzhhLjU0LjU0IDAgMCAxLTEuMDMgMGwtLjQ0LTEuMzhjLS4xLS4zLS4yNS0uNi0uNDUtLjg1Wm03LjcgMy44LS43Ny0uMjVhMS41OCAxLjU4IDAgMCAxLTEtMWwtLjI1LS43NmEuMy4zIDAgMCAwLS41NyAwbC0uMjUuNzdhMS41OCAxLjU4IDAgMCAxLS45OCAxbC0uNzcuMjRhLjMuMyAwIDAgMCAwIC41N2wuNzcuMjVhMS41OCAxLjU4IDAgMCAxIDEgMWwuMjQuNzdhLjMuMyAwIDAgMCAuNTggMGwuMjQtLjc3YTEuNTggMS41OCAwIDAgMSAxLTFsLjc3LS4yNGEuMy4zIDAgMCAwIDAtLjU3aC0uMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJEZXNrdG9wTXVsdGlwbGVTcGFya2xlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BNdWx0aXBsZVNwYXJrbGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02IDE5Yy4xNCAxLjY4IDEuNTQgMyAzLjI1IDNoOEE0Ljc1IDQuNzUgMCAwIDAgMjIgMTcuMjV2LTMuMzFjLS4xNS4wNy0uMzMuMTEtLjU0LjExLS40NSAwLS43NS0uMTktLjk2LS40NnYzLjY2YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVoLThjLS44OCAwLTEuNjEtLjY1LTEuNzMtMS41SDZabTEyLTguNzd2LS4yOGExLjU0IDEuNTQgMCAwIDEtMS41LS4yNHY1LjA0YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NWgtOS41Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzV2LTkuNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUg4LjV2MS43NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNWg0LjgyYTEuOSAxLjkgMCAwIDAtMS4xNy0xLjA0TDEzIDZoLTIuMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMy41aDIuMzRjLjE4LS4yMi40My0uNC43MS0uNWwxLjM0LS40NGMuMy0uMS41OC0uMjkuOC0uNTNhMy4yOCAzLjI4IDAgMCAwLS40NC0uMDNoLTkuNUEzLjI1IDMuMjUgMCAwIDAgMiA1LjI1djkuNUMyIDE2LjU1IDMuNDYgMTggNS4yNSAxOGg5LjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNXYtMy44OGExLjIyIDEuMjIgMCAwIDEgMC0uNjRaTTE2LjA5IDYuNGEyLjg0IDIuODQgMCAwIDAtMS4zNS0uOTVMMTMuMzYgNWEuNTQuNTQgMCAwIDEgMC0xLjAzbDEuMzgtLjQ0YTIuODQgMi44NCAwIDAgMCAxLjc2LTEuNzdsLjAxLS4wMy40NS0xLjM4YS41NC41NCAwIDAgMSAxLjAzIDBsLjQ0IDEuMzhhMi44NCAyLjg0IDAgMCAwIDEuOCAxLjhsMS4zOC40NC4wMy4wMWEuNTQuNTQgMCAwIDEgMCAxLjAzbC0xLjM4LjQ0YTIuODQgMi44NCAwIDAgMC0xLjggMS44bC0uNDUgMS4zOGEuNTQuNTQgMCAwIDEtMS4wMyAwbC0uNDQtMS4zOGMtLjEtLjMtLjI1LS42LS40NS0uODVabTcuNyAzLjgtLjc3LS4yNWExLjU4IDEuNTggMCAwIDEtMS0xbC0uMjUtLjc2YS4zLjMgMCAwIDAtLjU3IDBsLS4yNS43N2ExLjU4IDEuNTggMCAwIDEtLjk4IDFsLS43Ny4yNGEuMy4zIDAgMCAwIDAgLjU3bC43Ny4yNWExLjU4IDEuNTggMCAwIDEgMSAxbC4yNC43N2EuMy4zIDAgMCAwIC41OCAwbC4yNC0uNzdhMS41OCAxLjU4IDAgMCAxIDEtMWwuNzctLjI0YS4zLjMgMCAwIDAgMC0uNTdoLS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BOZXdQYWdlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcE5ld1BhZ2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIOHYyLjVDOCA2LjMzIDguNjcgNyA5LjUgN0gxN3Y3LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wk04IDExYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptMiAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMlptNC0xYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMFptMy01di0uNUEyLjUgMi41IDAgMCAwIDE0LjUgM0g5djIuNWMwIC4yOC4yMi41LjUuNUgxN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BOZXdQYWdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BOZXdQYWdlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNyAxMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBabTIgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJaTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOUEyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVpNNS41IDRDNC42NyA0IDQgNC42NyA0IDUuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDljLjgzIDAgMS41LS42NyAxLjUtMS41VjdIOS41QTEuNSAxLjUgMCAwIDEgOCA1LjVWNEg1LjVaTTE2IDUuNWMwLS44My0uNjctMS41LTEuNS0xLjVIOXYxLjVjMCAuMjguMjIuNS41LjVIMTZ2LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcFNlYXJjaDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BTZWFyY2gxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQgMmgzdjEuNUM3IDQuMzMgNy42NyA1IDguNSA1SDE0djdhMiAyIDAgMCAxLTIgMmgtMS4wOWExLjUgMS41IDAgMCAwLS4zNS0uNTZsLTItMkE0LjUgNC41IDAgMCAwIDIgNS43NlY0YzAtMS4xLjktMiAyLTJabTggMGEyIDIgMCAwIDEgMiAySDguNWEuNS41IDAgMCAxLS41LS41VjJoNFpNNC41IDEzYy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTEuNkEzLjUgMy41IDAgMSAwIDQuNSAxM1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcFNlYXJjaDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wU2VhcmNoMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMS4wOWExLjUgMS41IDAgMCAwLS4zNS0uNTZsLS40NC0uNDRIMTJhMSAxIDAgMCAwIDEtMVY1SDguNUExLjUgMS41IDAgMCAxIDcgMy41VjNINGExIDEgMCAwIDAtMSAxdjEuMjZjLS4zNi4xMi0uNy4zLTEgLjVWNFptNi41IDBIMTNhMSAxIDAgMCAwLTEtMUg4di41YzAgLjI4LjIyLjUuNS41Wm0tNCA5Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w3LjMgMTEuNkEzLjUgMy41IDAgMSAwIDQuNSAxM1ptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcFNlYXJjaDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BTZWFyY2gyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIOHYyLjVDOCA2LjMzIDguNjcgNyA5LjUgN0gxN3Y3LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDExLjlhMS41IDEuNSAwIDAgMC0uMzUtLjU2bC0yLTJBNC41IDQuNSAwIDAgMCAzIDguNzZWNS41Wm02IDBWM2g1LjVBMi41IDIuNSAwIDAgMSAxNyA1LjVWNkg5LjVhLjUuNSAwIDAgMS0uNS0uNVpNNS41IDE2Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w4LjMgMTQuNkEzLjUgMy41IDAgMSAwIDUuNSAxNlptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcFNlYXJjaDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJEZXNrdG9wU2VhcmNoMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXYzLjI2Yy4zLS4yLjY0LS4zOCAxLS41VjUuNUM0IDQuNjcgNC42NyA0IDUuNSA0SDh2MS41QzggNi4zMyA4LjY3IDcgOS41IDdIMTZ2Ny41YzAgLjgzLS42OCAxLjUtMS41IDEuNWgtMy4zOGwuNDQuNDRjLjE2LjE2LjI4LjM2LjM1LjU2aDIuNTlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk0xNiA1LjVWNkg5LjVhLjUuNSAwIDAgMS0uNS0uNVY0aDUuNWMuODIgMCAxLjUuNjcgMS41IDEuNVpNNS41IDE2Yy43OSAwIDEuNTEtLjI2IDIuMS0uN2wyLjU1IDIuNTVhLjUuNSAwIDEgMCAuNy0uN0w4LjMgMTQuNkEzLjUgMy41IDAgMSAwIDUuNSAxNlptMC0xYTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiRGVza3RvcFNlYXJjaDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkRlc2t0b3BTZWFyY2gyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuNzUgM0gxMXYyLjc1QzExIDYuOTkgMTIgOCAxMy4yNSA4SDIxdjEwLjI1QTIuNzUgMi43NSAwIDAgMSAxOC4yNSAyMWgtNC4yN2MtLjA1LS4zNi0uMjEtLjctLjUtLjk5bC0yLjA1LTIuMDZBNS41IDUuNSAwIDAgMCAzIDExLjI1di01LjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM1pNMjEgNS43NXYuNzVoLTcuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWM2g1Ljc1QTIuNzUgMi43NSAwIDAgMSAyMSA1Ljc1Wk02LjUgMjBjLjk3IDAgMS44Ny0uMyAyLjYtLjgzbDIuNjIgMi42MWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0yLjYxLTIuNjFBNC41IDQuNSAwIDEgMCA2LjUgMjBabTAtMS41YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkRlc2t0b3BTZWFyY2gyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiRGVza3RvcFNlYXJjaDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDEyLjVBMi43NSAyLjc1IDAgMCAxIDIxIDUuNzV2MTIuNUEyLjc1IDIuNzUgMCAwIDEgMTguMjUgMjFoLTQuMjdjLS4wNS0uMzYtLjIxLS43LS41LS45OWwtLjUtLjUxaDUuMjdjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjhoLTYuMjVDMTIuMDEgOCAxMSA3IDExIDUuNzVWNC41SDUuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djQuNjJhNS41IDUuNSAwIDAgMC0xLjUuODlWNS43NVptMTAuMjUuNzVoNi4yNXYtLjc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUgxMi41djEuMjVjMCAuNDEuMzQuNzUuNzUuNzVaTTYuNSAyMGMuOTcgMCAxLjg3LS4zIDIuNi0uODNsMi42MiAyLjYxYS43NS43NSAwIDEgMCAxLjA2LTEuMDZsLTIuNjEtMi42MUE0LjUgNC41IDAgMSAwIDYuNSAyMFptMC0xLjVhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiR3JvdXAxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJHcm91cDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMyAzYTIgMiAwIDAgMC0yIDJ2NGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJIM1ptMSA0YzAtLjI4LjIyLS41LjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNUEuNS41IDAgMCAxIDQgN1ptMSA2YTIgMiAwIDAgMS0xLjczLTFIMTFhMyAzIDAgMCAwIDMtM1Y1LjI3Yy42LjM0IDEgLjk5IDEgMS43M3YyYTQgNCAwIDAgMS00IDRINVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkdyb3VwMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkdyb3VwMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMSA1YzAtMS4xLjktMiAyLTJoOGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWNVptMi0xYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFIM1ptLjI3IDhjLjM0LjYuOTkgMSAxLjczIDFoNmE0IDQgMCAwIDAgNC00VjdhMiAyIDAgMCAwLTEtMS43M1Y5YTMgMyAwIDAgMS0zIDNIMy4yN1pNNC41IDYuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiR3JvdXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJHcm91cDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMy41IDRBMi41IDIuNSAwIDAgMCAxIDYuNXY1QTIuNSAyLjUgMCAwIDAgMy41IDE0aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtNUEyLjUgMi41IDAgMCAwIDE0LjUgNGgtMTFaTTUgOWMwLS4yOC4yMi0uNS41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSA1IDlabS0xLjUgNmMuNDYuNiAxLjE5IDEgMiAxaDlhNC41IDQuNSAwIDAgMCA0LjUtNC41di0zYzAtLjgyLS4zOS0xLjU0LTEtMnY1YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJHcm91cDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJHcm91cDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTEgNi41QTIuNSAyLjUgMCAwIDEgMy41IDRoMTFBMi41IDIuNSAwIDAgMSAxNyA2LjV2NWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMSAxMS41di01Wk0zLjUgNUMyLjY3IDUgMiA1LjY3IDIgNi41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoMTFjLjgzIDAgMS41LS42NyAxLjUtMS41di01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTFabTIgMTFhMi41IDIuNSAwIDAgMS0yLTFoMTFhMy41IDMuNSAwIDAgMCAzLjUtMy41di01Yy42MS40NiAxIDEuMTggMSAydjNhNC41IDQuNSAwIDAgMS00LjUgNC41aC05Wm0wLTcuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiR3JvdXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJHcm91cDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNC43NSA1QTIuNzUgMi43NSAwIDAgMCAyIDcuNzV2NS41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE2aDEyLjVBMi43NSAyLjc1IDAgMCAwIDIwIDEzLjI1di01LjVBMi43NSAyLjc1IDAgMCAwIDE3LjI1IDVINC43NVptMS43NSA1LjVjMC0uNDEuMzQtLjc1Ljc1LS43NWg3LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC03LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVabS43NSA4Yy0xLjA3IDAtMi0uNjEtMi40NS0xLjVoMTIuNDVBMy43NSAzLjc1IDAgMCAwIDIxIDEzLjI1VjcuOGMuODkuNDYgMS41IDEuMzggMS41IDIuNDV2M2MwIDIuOS0yLjM1IDUuMjUtNS4yNSA1LjI1aC0xMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkdyb3VwMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkdyb3VwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMiA3Ljc1QTIuNzUgMi43NSAwIDAgMSA0Ljc1IDVoMTIuNUEyLjc1IDIuNzUgMCAwIDEgMjAgNy43NXY1LjVBMi43NSAyLjc1IDAgMCAxIDE3LjI1IDE2SDQuNzVBMi43NSAyLjc1IDAgMCAxIDIgMTMuMjV2LTUuNVpNNC43NSA2LjVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djUuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWgxMi41Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNXYtNS41YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg0Ljc1Wk00LjggMTdjLjQ1Ljg5IDEuMzggMS41IDIuNDUgMS41aDEwYzIuOSAwIDUuMjUtMi4zNSA1LjI1LTUuMjV2LTNjMC0xLjA3LS42MS0yLTEuNS0yLjQ1djUuNDVBMy43NSAzLjc1IDAgMCAxIDE3LjI1IDE3SDQuOFptMi40NS03LjI1YS43NS43NSAwIDAgMCAwIDEuNWg3LjVhLjc1Ljc1IDAgMCAwIDAtMS41aC03LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJJblByaXZhdGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJblByaXZhdGUxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDRabS0uNSAyYzAtLjI4LjIyLS41LjUtLjVoMS44TDMuNSA1LjhWNFptMCAzLjIgMy43LTMuN2gyLjZMMy41IDkuOFY3LjJabTcuNy0zLjdoLjhjLjI4IDAgLjUuMjIuNS41di44bC03LjcgNy43SDRhLjUuNSAwIDAgMS0uNS0uNXYtLjhsNy43LTcuN1ptMS4zIDIuN3YyLjZsLTMuNyAzLjdINi4ybDYuMy02LjNabTAgNFYxMmEuNS41IDAgMCAxLS41LjVoLTEuOGwyLjMtMi4zWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiSW5Qcml2YXRlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkluUHJpdmF0ZTE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQgMmEyIDIgMCAwIDAtMiAydjhjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDRaTTMgNGExIDEgMCAwIDEgMS0xaDIuM0wzIDYuM1Y0Wm0wIDMuN0w3LjcgM2gyLjZMMyAxMC4zVjcuN1pNMTEuNyAzaC4zYTEgMSAwIDAgMSAxIDF2LjNMNC4zIDEzSDRhMSAxIDAgMCAxLTEtMXYtLjNMMTEuNyAzWk0xMyA1Ljd2Mi42TDguMyAxM0g1LjdMMTMgNS43Wm0wIDRWMTJhMSAxIDAgMCAxLTEgMUg5LjdMMTMgOS43WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiSW5Qcml2YXRlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiSW5Qcml2YXRlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk01LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNabS0xIDIuNXYxLjNsMi4zLTIuM0g1LjVhMSAxIDAgMCAwLTEgMVptMCAyLjd2Mi42bDYuMy02LjNIOC4yTDQuNSA4LjJabTcuNy0zLjctNy43IDcuN3YyLjNhMSAxIDAgMCAwIC4wMy4yNkwxNC43NiA0LjUzYTEgMSAwIDAgMC0uMjYtLjAzaC0yLjNabTMuMjcuNzRMNS4yNCAxNS40N2ExIDEgMCAwIDAgLjI2LjAzaDIuM2w3LjctNy43VjUuNWExIDEgMCAwIDAtLjAzLS4yNlptLjAzIDMuOTdMOS4yIDE1LjVoMi42bDMuNy0zLjdWOS4yWm0wIDQtMi4zIDIuMjloMS4zYTEgMSAwIDAgMCAxLTF2LTEuM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkluUHJpdmF0ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJblByaXZhdGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNaTTQgNS41djEuOEw3LjMgNEg1LjVDNC42NyA0IDQgNC42NyA0IDUuNVptMCAzLjJ2Mi42TDExLjMgNEg4LjdMNCA4LjdaTTEyLjcgNCA0IDEyLjd2MS44YzAgLjIzLjA1LjQ1LjE1LjY1bDExLTExQTEuNSAxLjUgMCAwIDAgMTQuNSA0aC0xLjhabTMuMTUuODUtMTEgMTFjLjIuMS40Mi4xNS42NS4xNWgxLjhMMTYgNy4zVjUuNWMwLS4yMy0uMDUtLjQ1LS4xNS0uNjVaTTE2IDguNzEgOC43IDE2aDIuNmw0LjctNC43VjguN1ptMCA0TDEyLjcgMTZoMS44Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMS44WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiSW5Qcml2YXRlMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiSW5Qcml2YXRlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01Ljc1IDNoMTIuNUEyLjc1IDIuNzUgMCAwIDEgMjEgNS43NXYxMi41QTIuNzUgMi43NSAwIDAgMSAxOC4yNSAyMUg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE4LjI1VjUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM1pNNSA1Ljc1di41NEw2LjMgNWgtLjU1YS43NS43NSAwIDAgMC0uNzUuNzVabTAgMS45NnYyLjU4TDEwLjMgNUg3LjdMNSA3LjdaTTExLjcgNSA1IDExLjd2Mi42TDE0LjMgNWgtMi42Wm00IDBMNSAxNS43djIuNTlMMTguMyA1SDE1LjdabTMuMy43TDUuNyAxOUg4LjNMMTkgOC4zVjUuN1ptMCA0TDkuNyAxOWgyLjZsNi43LTYuN1Y5LjdabTAgNEwxMy43IDE5aDIuNmwyLjctMi43di0yLjZabTAgNEwxNy43IDE5aC41NWMuNDEgMCAuNzUtLjM0Ljc1LS43NXYtLjU0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiSW5Qcml2YXRlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYkluUHJpdmF0ZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTUuNzUgM2gxMi41QTIuNzUgMi43NSAwIDAgMSAyMSA1Ljc1djEyLjVBMi43NSAyLjc1IDAgMCAxIDE4LjI1IDIxSDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTguMjVWNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzWk00LjUgNS43NXYxLjA0TDYuOCA0LjVINS43NGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVabTAgMi40NnYyLjU4bDYuMy02LjI5SDguMkw0LjUgOC4yWm03LjctMy43MS03LjcgNy43djIuNkwxNC44IDQuNWgtMi42Wm00IDBMNC41IDE2LjJ2Mi4wNWMwIC4xNi4wMy4zMi4wOS40NkwxOC43IDQuNTljLS4xNC0uMDYtLjMtLjA5LS40Ni0uMDloLTIuMDRabTMuMjEuOEw1LjMgMTkuNGMuMTQuMDYuMy4wOS40Ni4wOWgyLjA0TDE5LjUgNy44VjUuNzRjMC0uMTYtLjAzLS4zMi0uMDktLjQ2Wm0uMDkgMy45TDkuMiAxOS41aDIuNmw3LjctNy43VjkuMlptMCA0LTYuMyA2LjNoMi42bDMuNy0zLjd2LTIuNlptMCA0LTIuMyAyLjNoMS4wNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LTEuMDRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJJblByaXZhdGUyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJblByaXZhdGUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTYuMjUgM2gxNS41QzIzLjU1IDMgMjUgNC40NiAyNSA2LjI1djE1LjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDIxLjc1VjYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNaTTUgNi4yNXYuNjlMNi45NCA1aC0uNjlDNS41NiA1IDUgNS41NiA1IDYuMjVabTAgMi44MXYyLjg4TDExLjk0IDVIOS4wNkw1IDkuMDZaTTE0LjA2IDUgNSAxNC4wNnYyLjg4TDE2Ljk0IDVoLTIuODhabTUgMEw1IDE5LjA2djIuNjlsLjAxLjE4TDIxLjkzIDUgMjEuNzUgNWgtMi42OVptMy45MyAxLjA3TDYuMDcgMjNsLjE4LjAxaDIuNjlMMjMgOC45NFY2LjI1bC0uMDEtLjE4Wm0uMDEgNC45OUwxMS4wNiAyM2gyLjg4TDIzIDEzLjk0di0yLjg4Wm0wIDVMMTYuMDYgMjNoMi44OEwyMyAxOC45NHYtMi44OFptMCA1TDIxLjA2IDIzaC42OWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjV2LS42OVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYkluUHJpdmF0ZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJblByaXZhdGUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02LjI1IDNoMTUuNUMyMy41NSAzIDI1IDQuNDYgMjUgNi4yNXYxNS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAyMS43NVY2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzWk00LjUgNi4yNXYxLjE5TDcuNDQgNC41SDYuMjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1Wm0wIDMuMzF2Mi44OGw3Ljk0LTcuOTRIOS41Nkw0LjUgOS41NlpNMTQuNTYgNC41IDQuNSAxNC41NnYyLjg4TDE3LjQ0IDQuNWgtMi44OFptNSAwTDQuNSAxOS41NnYyLjE5YzAgLjIuMDQuNC4xLjU5TDIyLjM0IDQuNmMtLjE5LS4wNi0uMzgtLjEtLjU5LS4xaC0yLjE5Wm0zLjg0IDEuMTZMNS42NiAyMy40Yy4xOS4wNi4zOC4xLjU5LjFoMi4xOUwyMy41IDguNDRWNi4yNWMwLS4yLS4wNC0uNC0uMS0uNTlabS4xIDQuOUwxMC41NiAyMy41aDIuODhMMjMuNSAxMy40NHYtMi44OFptMCA1LTcuOTQgNy45NGgyLjg4bDUuMDYtNS4wNnYtMi44OFptMCA1LTIuOTQgMi45NGgxLjE5Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NXYtMS4xOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYklucHJpdmF0ZUFjY291bnQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJJbnByaXZhdGVBY2NvdW50MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDUuNUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2Mi4xM2MtLjQ0LS4zLS45NS0uNTItMS41LS42VjUuNWExIDEgMCAwIDAtMS0xaC05YTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxSDEwdi40NGMwIC4zNy4wNi43My4xNiAxLjA2SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOVptMTUuNTcgOS4wM2ExLjUgMS41IDAgMCAwLTEuMTItLjUzaC00LjljLS40NiAwLS44Ni4yNC0xLjEyLjUzLS4yNi4yOS0uNDMuNjktLjQzIDEuMDl2LjMyYzAgMS42MyAxLjYzIDMuMDYgNCAzLjA2IDEuMjQgMCAyLjI4LS40IDIuOTktMUgxNXYtMWgzLjc2Yy4xNS0uMzIuMjMtLjY1LjI0LTFoLTR2LTFoMy44N2ExLjc4IDEuNzggMCAwIDAtLjMtLjQ3Wk0xNSAxM2EyLjUgMi41IDAgMSAxIDItNGgtMnYxaDIuNDVhMi41MSAyLjUxIDAgMCAxIDAgMUgxNXYxaDJjLS40Ni42LTEuMTggMS0yIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJJbnByaXZhdGVBY2NvdW50MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYklucHJpdmF0ZUFjY291bnQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjUgM0EyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC42NmMtLjEtLjMyLS4xNS0uNjUtLjE2LTFINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41di05QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNXYxLjY0Yy4zNi4xMS43LjI4IDEgLjQ5VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOVptOCA3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMmEyLjUgMi41IDAgMSAxIDAtM2gtMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVabS0xLjMyIDQuN2MuMTItLjE0LjI2LS4yLjM3LS4yaDYuMzJhMS43OCAxLjc4IDAgMCAwLS4zLS40NyAxLjUgMS41IDAgMCAwLTEuMTItLjUzaC00LjljLS40NiAwLS44Ni4yNC0xLjEyLjUzLS4yNi4yOS0uNDMuNjktLjQzIDEuMDl2LjMyYzAgMS42MyAxLjYzIDMuMDYgNCAzLjA2IDEuMjQgMCAyLjI4LS40IDIuOTktMUgxNWMtMi4wMyAwLTMtMS4xNy0zLTIuMDZ2LS4zMmMwLS4xMy4wNi0uMy4xOC0uNDNabTUuMzItNC43YzAgLjE3LS4wMi4zNC0uMDUuNUgxNXYtMWgyLjQ1Yy4wMy4xNi4wNS4zMy4wNS41Wm0xLjI2IDYuNUgxNXYtMWg0YzAgLjM1LS4xLjY4LS4yNCAxWlwiXSk7XG5leHBvcnQgY29uc3QgVGFiSW5wcml2YXRlQWNjb3VudDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYklucHJpdmF0ZUFjY291bnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuNzUgM0EyLjc1IDIuNzUgMCAwIDAgMyA1Ljc1djEyLjVBMi43NSAyLjc1IDAgMCAwIDUuNzUgMjFoNi42MmEzLjkgMy45IDAgMCAxLS4zNy0xLjY3VjE5SDUuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWNS43NWMwLS40MS4zNC0uNzUuNzUtLjc1aDEyLjVjLjQxIDAgLjc1LjM0Ljc1Ljc1djMuMzhhNCA0IDAgMCAxIDIgMS4yMnYtNC42QTIuNzUgMi43NSAwIDAgMCAxOC4yNSAzSDUuNzVaTTE1IDEzYTMgMyAwIDAgMSAzLTN2MWgyLjI0YTMgMyAwIDAgMSAuNTkgMUgxOHYxaDNhMyAzIDAgMCAxLS4xNyAxSDE4djFoMi4yNEEzIDMgMCAwIDEgMTUgMTNabS0uMDYgNGMtLjU4IDAtMS4wNy4yOC0xLjQuNjMtLjMyLjM1LS41NC44My0uNTQgMS4zMXYuMzljMCAxLjk2IDIuMDQgMy42NyA1IDMuNjd2LTFoMy40N2MuNDEtLjI5Ljc1LS42MyAxLTFIMTh2LTFoNC45MmMuMDUtLjIyLjA4LS40NC4wOC0uNjdWMTloLTV2LTFoNC43M2EyLjEzIDIuMTMgMCAwIDAtLjI3LS4zNyAxLjkxIDEuOTEgMCAwIDAtMS40LS42M2gtNi4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYklucHJpdmF0ZUFjY291bnQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiSW5wcml2YXRlQWNjb3VudDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNS43NUEyLjc1IDIuNzUgMCAwIDEgNS43NSAzaDEyLjVBMi43NSAyLjc1IDAgMCAxIDIxIDUuNzV2NC42YTQgNCAwIDAgMC0xLjUtMS4wNlY1Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNUg1Ljc1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxMi41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDEyYy4wMy41NC4xNSAxLjA0LjM3IDEuNUg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE4LjI1VjUuNzVabTE1IDguNzVhMS41IDEuNSAwIDAgMSAwLTN2LjVoMi44M2EzIDMgMCAwIDAtLjYtMUgxOHYtMWEzIDMgMCAxIDAgMi4yNCA1SDE4di0uNVpNMTQuOTQgMTdjLS41OCAwLTEuMDcuMjgtMS40LjYzLS4zMi4zNS0uNTQuODMtLjU0IDEuMzF2LjM5YzAgMS45NiAyLjA0IDMuNjcgNSAzLjY3di0xaDMuNDdjLjQxLS4yOS43NS0uNjMgMS0xSDE4di41Yy0yLjUzIDAtMy41LTEuMzktMy41LTIuMTd2LS4zOWEuNS41IDAgMCAxIC4xNC0uMjljLjExLS4xMS4yMi0uMTUuMy0uMTVIMThWMThoNC43M2EyLjEzIDIuMTMgMCAwIDAtLjI3LS4zNyAxLjkxIDEuOTEgMCAwIDAtMS40LS42M2gtNi4xMlpNMTggMTR2LTFoM2EzIDMgMCAwIDEtLjE3IDFIMThabTQuOTIgNkgxOHYtMWg1di4zM2MwIC4yMy0uMDMuNDUtLjA4LjY3WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiUHJvaGliaXRlZDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYlByb2hpYml0ZWQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMgNS4yNUMzIDQuMDEgNCAzIDUuMjUgM2g5LjVDMTUuOTkgMyAxNyA0IDE3IDUuMjVWOS42YTUuNDYgNS40NiAwIDAgMC0xLjUtLjVWNS4yNGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOS41YS43NS43NSAwIDAgMC0uNzUuNzV2OS41YzAgLjQxLjM0Ljc1Ljc1Ljc1aDMuODRjLjEuNTMuMjcgMS4wMy41MSAxLjVINS4yNUM0LjAxIDE3IDMgMTYgMyAxNC43NXYtOS41Wk0xNC41IDE5YTQuNSA0LjUgMCAxIDEgMC05IDQuNSA0LjUgMCAwIDEgMCA5Wm0wLThhMy41IDMuNSAwIDAgMC0yLjggNS42bDQuOS00LjlhMy40OCAzLjQ4IDAgMCAwLTIuMS0uN1ptLTIuMSA2LjNhMy41IDMuNSAwIDAgMCA0LjktNC45bC00LjkgNC45WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiUHJvaGliaXRlZDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJQcm9oaWJpdGVkMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA1YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0LjZjLS4zMi0uMTYtLjY1LS4zLTEtLjRWNWExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDQuMmMuMS4zNS4yNC42OC40IDFINWEyIDIgMCAwIDEtMi0yVjVabTcgOS41YTQuNSA0LjUgMCAxIDAgOSAwIDQuNSA0LjUgMCAwIDAtOSAwWm0xIDBhMy41IDMuNSAwIDAgMSA1LjYtMi44bC00LjkgNC45YTMuNDggMy40OCAwIDAgMS0uNy0yLjFabTMuNSAzLjVjLS43OSAwLTEuNTEtLjI2LTIuMS0uN2w0LjktNC45YTMuNSAzLjUgMCAwIDEtMi44IDUuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYlByb2hpYml0ZWQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJQcm9oaWJpdGVkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk01Ljg2IDNhMyAzIDAgMCAwLTMgM3YxMmEzIDMgMCAwIDAgMyAzaDYuMTZhNi40NiA2LjQ2IDAgMCAxLS44NS0ySDUuODZhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXY1LjE0Yy43MS4xNSAxLjM5LjQzIDIgLjhWNmEzIDMgMCAwIDAtMy0zaC0xMlpNMTcuNSAyM2E1LjUgNS41IDAgMSAwIDAtMTEgNS41IDUuNSAwIDAgMCAwIDExWm0tMy4zLTMuMjVhNCA0IDAgMCAxIDUuNTYtNS41NmwtNS41NyA1LjU2Wm0xLjA1IDEuMDYgNS41Ni01LjU2YTQgNCAwIDAgMS01LjU2IDUuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJQcm9oaWJpdGVkMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYlByb2hpYml0ZWQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk01Ljc1IDNBMi43NSAyLjc1IDAgMCAwIDMgNS43NXYxMi41QTIuNzUgMi43NSAwIDAgMCA1Ljc1IDIxaDYuMjdjLS4zLS40Ni0uNTMtLjk3LS43LTEuNUg1Ljc0Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjVWNS43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxMi41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djUuNTZjLjUzLjE4IDEuMDQuNDIgMS41LjcxVjUuNzVBMi43NSAyLjc1IDAgMCAwIDE4LjI1IDNINS43NVpNMTcuNSAyM2E1LjUgNS41IDAgMSAwIDAtMTEgNS41IDUuNSAwIDAgMCAwIDExWm0tMy4zLTMuMjVhNCA0IDAgMCAxIDUuNTYtNS41NmwtNS41NyA1LjU2Wm0xLjA1IDEuMDYgNS41Ni01LjU2YTQgNCAwIDAgMS01LjU2IDUuNTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJTaGllbGREaXNtaXNzMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiU2hpZWxkRGlzbWlzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djIuNzNjLS4zNC0uMi0uNjctLjQ2LTEtLjhhMS40IDEuNCAwIDAgMC0uNS0uMzRWNS41YTEgMSAwIDAgMC0xLTFoLTlhMSAxIDAgMCAwLTEgMXY5YTEgMSAwIDAgMCAxIDFoNS4wN2E1LjggNS44IDAgMCAwIC45NiAxLjVINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wm0xMi4yOCAyLjYyYzEgMS4wNCAyLjEgMS41NSAzLjMyIDEuNTUuMiAwIC4zNi4xNC40LjM0djIuNTdjMCAyLjY5LTEuMzEgNC41MS0zLjg3IDUuNGEuMzkuMzkgMCAwIDEtLjI2IDBjLTIuNDgtLjg2LTMuNzktMi42LTMuODctNS4xNXYtMi43NWEuNC40IDAgMCAxIC40LS40MSA0LjUgNC41IDAgMCAwIDMuMzItMS41NS4zOS4zOSAwIDAgMSAuNTYgMFpNMTUgMTIuNDdsLTEuMzYtMS4zNmEuMzguMzggMCAwIDAtLjUzLjUzTDE0LjQ3IDEzbC0xLjM2IDEuMzVhLjM4LjM4IDAgMCAwIC41NC41NEwxNSAxMy41M2wxLjM1IDEuMzZhLjM4LjM4IDAgMCAwIC41NC0uNTRMMTUuNTMgMTNsMS4zNi0xLjM2YS4zOC4zOCAwIDAgMC0uNTQtLjUzTDE1IDEyLjQ3WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiU2hpZWxkRGlzbWlzczIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJTaGllbGREaXNtaXNzMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMyA1LjVBMi41IDIuNSAwIDAgMSA1LjUgM2g5QTIuNSAyLjUgMCAwIDEgMTcgNS41djIuNzNjLS4zNC0uMi0uNjctLjQ2LTEtLjhWNS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtOUM0LjY3IDQgNCA0LjY3IDQgNS41djljMCAuODMuNjcgMS41IDEuNSAxLjVoNS4zMmE1Ljc1IDUuNzUgMCAwIDAgLjcxIDFINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41di05Wm0xNS42IDQuMTdjLTEuMjIgMC0yLjMyLS41MS0zLjMyLTEuNTVhLjM5LjM5IDAgMCAwLS41NiAwIDQuNSA0LjUgMCAwIDEtMy4zMiAxLjU1LjQuNCAwIDAgMC0uNC40MXYyLjc1Yy4wOCAyLjU1IDEuNCA0LjI5IDMuODcgNS4xNS4wOS4wMy4xNy4wMy4yNiAwIDIuNTYtLjg5IDMuODctMi43MSAzLjg3LTUuNHYtMi41N2EuNC40IDAgMCAwLS40LS4zNFptLTQuOTYgMS40NEwxNSAxMi40N2wxLjM1LTEuMzZhLjM4LjM4IDAgMCAxIC41NC41NEwxNS41MyAxM2wxLjM2IDEuMzVhLjM4LjM4IDAgMCAxLS41NC41NEwxNSAxMy41M2wtMS4zNSAxLjM2YS4zOC4zOCAwIDAgMS0uNTQtLjU0TDE0LjQ3IDEzbC0xLjM2LTEuMzZhLjM4LjM4IDAgMCAxIC41My0uNTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJTaGllbGREaXNtaXNzMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFiU2hpZWxkRGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMyA1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNoMTIuNUEyLjc1IDIuNzUgMCAwIDEgMjEgNS43NXY0Ljk5YTUuMzYgNS4zNiAwIDAgMS0yLTEuMzZWNS43NWEuNzUuNzUgMCAwIDAtLjc1LS43NUg1Ljc1YS43NS43NSAwIDAgMC0uNzUuNzV2MTIuNWMwIC40MS4zNC43NS43NS43NWg2Ljk4YTYuNyA2LjcgMCAwIDAgMS40NSAySDUuNzVBMi43NSAyLjc1IDAgMCAxIDMgMTguMjVWNS43NVptMTUuMzUgNC40QTUuNzEgNS43MSAwIDAgMCAyMi41IDEyYS41LjUgMCAwIDEgLjUuNDF2My4wOWMwIDMuMjItMS42NCA1LjQtNC44NCA2LjQ3YS41LjUgMCAwIDEtLjMyIDBjLTMuMS0xLjAzLTQuNzQtMy4xMi00Ljg0LTYuMThWMTIuNWMwLS4yOC4yMi0uNS41LS41IDEuNTMgMCAyLjktLjYxIDQuMTUtMS44NS4yLS4yLjUxLS4yLjcgMFptLTIuMzggMy42OS0uMDcuMDYtLjA2LjA3YS41LjUgMCAwIDAgMCAuNTZsLjA2LjA3IDEuNCAxLjQtMS40IDEuNC0uMDYuMDdhLjUuNSAwIDAgMCAwIC41NmwuMDYuMDcuMDcuMDZjLjE3LjEyLjQuMTIuNTYgMGwuMDctLjA2IDEuNC0xLjQgMS40IDEuNC4wNy4wNmMuMTcuMTIuNC4xMi41NiAwbC4wNy0uMDYuMDYtLjA3YS41LjUgMCAwIDAgMC0uNTZsLS4wNi0uMDctMS40LTEuNCAxLjQtMS40LjA2LS4wN2EuNS41IDAgMCAwIDAtLjU2bC0uMDYtLjA3LS4wNy0uMDZhLjUuNSAwIDAgMC0uNTYgMGwtLjA3LjA2LTEuNCAxLjQtMS40LTEuNC0uMDctLjA2YS41LjUgMCAwIDAtLjQ5LS4wNGwtLjA3LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFiU2hpZWxkRGlzbWlzczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJTaGllbGREaXNtaXNzMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA1Ljc1QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDNoMTIuNUEyLjc1IDIuNzUgMCAwIDEgMjEgNS43NXY0Ljk5YTUgNSAwIDAgMS0xLjUtLjlWNS43NWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWg3LjI0YTYuNjcgNi42NyAwIDAgMCAxLjIgMS41SDUuNzRBMi43NSAyLjc1IDAgMCAxIDMgMTguMjVWNS43NVptMTUuMzUgNC40QTUuNzEgNS43MSAwIDAgMCAyMi41IDEyYS41LjUgMCAwIDEgLjUuNDF2My4wOWMwIDMuMjItMS42NCA1LjQtNC44NCA2LjQ3YS41LjUgMCAwIDEtLjMyIDBjLTMuMS0xLjAzLTQuNzQtMy4xMi00Ljg0LTYuMThWMTIuNWMwLS4yOC4yMi0uNS41LS41IDEuNTMgMCAyLjktLjYxIDQuMTUtMS44NS4yLS4yLjUxLS4yLjcgMFptLTIuMzggMy42OS0uMDcuMDYtLjA2LjA3YS41LjUgMCAwIDAgMCAuNTZsLjA2LjA3IDEuNCAxLjQtMS40IDEuNC0uMDYuMDdhLjUuNSAwIDAgMCAwIC41NmwuMDYuMDcuMDcuMDZjLjE3LjEyLjQuMTIuNTYgMGwuMDctLjA2IDEuNC0xLjQgMS40IDEuNC4wNy4wNmMuMTcuMTIuNC4xMi41NiAwbC4wNy0uMDYuMDYtLjA3YS41LjUgMCAwIDAgMC0uNTZsLS4wNi0uMDctMS40LTEuNCAxLjQtMS40LjA2LS4wN2EuNS41IDAgMCAwIDAtLjU2bC0uMDYtLjA3LS4wNy0uMDZhLjUuNSAwIDAgMC0uNTYgMGwtLjA3LjA2LTEuNCAxLjQtMS40LTEuNC0uMDctLjA2YS41LjUgMCAwIDAtLjQ5LS4wNGwtLjA3LjA0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNVY1aDNWMmgtLjVaTTYgMnYzaDRWMkg2Wk01IDZIMnY0aDNWNlptMSA0VjZoNHY0SDZabS0xIDFIMnYuNUEyLjUgMi41IDAgMCAwIDQuNSAxNEg1di0zWm0xIDNoNHYtM0g2djNabTUgMHYtM2gzdi41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMVptMy04djRoLTNWNmgzWm0wLTF2LS41QTIuNSAyLjUgMCAwIDAgMTEuNSAySDExdjNoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk02IDEzaDR2LTJINnYyWm0tMS0ySDN2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINXYtMlptMS0xaDRWNkg2djRaTTUgNkgzdjRoMlY2Wm0xLTFoNFYzSDZ2MlpNNSAzaC0uNUMzLjY3IDMgMyAzLjY3IDMgNC41VjVoMlYzWm04IDNoLTJ2NGgyVjZabTAgNWgtMnYyaC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMVptMC02di0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTF2MmgyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGUyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgMTdoMS41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxM2gtNHY0Wm0wLTVWOGg0djRoLTRabS0xIDBIOFY4aDR2NFptLTQgMWg0djRIOHYtNFptLTEtMVY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wm04LTEuNXYzSDh2LTNoNFptMi41IDNIMTN2LTNoM1YxNC42NEExLjUgMS41IDAgMCAxIDE0LjUgMTZaTTEyIDh2NEg4VjhoNFptMSAwaDN2NGgtM1Y4Wm0tMS00djNIOFY0aDRabTEgMEgxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTcgNHYzSDRWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDdabTAgNHY0SDRWOGgzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGUyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZTI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOS41IDIxaDV2LTVoLTV2NVptNi41IDBoMS43NWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjE2aC01djVabTUtNi41di01aC01djVoNVpNMjEgOFY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDE2djVoNVptLTYuNS01aC01djVoNVYzWk04IDNINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1VjhoNVYzWk0zIDkuNXY1aDV2LTVIM1pNMyAxNnYxLjc1QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxSDh2LTVIM1ptMTEuNS02LjV2NWgtNXYtNWg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGUyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGUyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxMS41YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1Wk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWOC41aDR2LTRINi4yNVpNNC41IDEwdjRoNHYtNGgtNFptNS41IDB2NGg0di00aC00Wm01LjUgMHY0aDR2LTRoLTRaTTE0IDE1LjVoLTR2NGg0di00Wm0xLjUgNGgyLjI1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNS41aC00djRabTAtMTFoNFY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djRabS0xLjUtNGgtNHY0aDR2LTRabS05LjUgMTF2Mi4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg4LjV2LTRoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZTI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM0g5LjV2Ni41SDNWNi43NVpNMyAxMXY2aDYuNXYtNkgzWm0wIDcuNXYyLjc1QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1SDkuNXYtNi41SDNabTggNi41aDZ2LTYuNWgtNlYyNVptNy41IDBoMi43NUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjVWMTguNWgtNi41VjI1Wm02LjUtOHYtNmgtNi41djZIMjVabTAtNy41VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNIMTguNXY2LjVIMjVaTTE3IDNoLTZ2Ni41aDZWM1ptMCA4djZoLTZ2LTZoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlMjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoMTQuNUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjYuNzVaTTQuNSAxOC41djIuNzVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVIOS41di01aC01Wm01LTEuNXYtNmgtNXY2aDVabTEuNSAxLjV2NWg2di01aC02Wm02LTEuNXYtNmgtNnY2aDZabTEuNSAxLjV2NWgyLjc1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjE4LjVoLTVabTUtMS41di02aC01djZoNVptMC0xMC4yNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxOC41djVoNVY2Ljc1Wk0xNyA0LjVoLTZ2NWg2di01Wm0tNy41IDBINi43NWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjVWOS41aDV2LTVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZTMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlMzJGaWxsZWQnLCBcIjMyXCIsIFtcIk0yMCA0aC04djZoOFY0WlwiLCBcIk0yMCAxMmgtOHY4aDh2LThaXCIsIFwiTTIyIDIwdi04aDZ2OGgtNlpcIiwgXCJNMjAgMjJoLTh2Nmg4di02WlwiLCBcIk0yMiAyOHYtNmg2djFhNSA1IDAgMCAxLTUgNWgtMVpcIiwgXCJNMjIgMTBWNGgxYTUgNSAwIDAgMSA1IDV2MWgtNlpcIiwgXCJNOSA0aDF2Nkg0VjlhNSA1IDAgMCAxIDUtNVpcIiwgXCJNNCAxMmg2djhINHYtOFpcIiwgXCJNNCAyMmg2djZIOWE1IDUgMCAwIDEtNS01di0xWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGUzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlMzJMaWdodCcsIFwiMzJcIiwgW1wiTTMgNy41QTQuNSA0LjUgMCAwIDEgNy41IDNoMTdBNC41IDQuNSAwIDAgMSAyOSA3LjV2MTdhNC41IDQuNSAwIDAgMS00LjUgNC41aC0xN0E0LjUgNC41IDAgMCAxIDMgMjQuNXYtMTdaTTQgMjF2My41QTMuNSAzLjUgMCAwIDAgNy41IDI4SDExdi03SDRabTctMXYtOEg0djhoN1ptMSAxdjdoOHYtN2gtOFptOC0xdi04aC04djhoOFptMSAxdjdoMy41YTMuNSAzLjUgMCAwIDAgMy41LTMuNVYyMWgtN1ptNy0xdi04aC03djhoN1pNNy41IDRBMy41IDMuNSAwIDAgMCA0IDcuNVYxMWg3VjRINy41Wk0yMCA0aC04djdoOFY0Wm0xIDB2N2g3VjcuNUEzLjUgMy41IDAgMCAwIDI0LjUgNEgyMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlMzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlMzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNNCA5YTUgNSAwIDAgMSA1LTVoMTRhNSA1IDAgMCAxIDUgNXYxNGE1IDUgMCAwIDEtNSA1SDlhNSA1IDAgMCAxLTUtNVY5Wm01LTNhMyAzIDAgMCAwLTMgM3YyaDVWNkg5Wm00IDB2NWg2VjZoLTZabTAgN3Y2aDZ2LTZoLTZabS0yIDZ2LTZINnY2aDVabS01IDJ2MmEzIDMgMCAwIDAgMyAzaDJ2LTVINlptNyAwdjVoNnYtNWgtNlptOCAwdjVoMmEzIDMgMCAwIDAgMy0zdi0yaC01Wm01LTJ2LTZoLTV2Nmg1Wk0yMSA2djVoNVY5YTMgMyAwIDAgMC0zLTNoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZTQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlNDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk0xMi4yNSA2QTYuMjUgNi4yNSAwIDAgMCA2IDEyLjI1djQuMjVoMTAuNVY2aC00LjI1Wk0xOSA2djEwLjVoMTBWNkgxOVptLTIuNSAxM0g2djEwaDEwLjVWMTlaTTE5IDI5VjE5aDEwdjEwSDE5Wm0tMi41IDIuNUg2djQuMjVDNiAzOS4yIDguOCA0MiAxMi4yNSA0Mmg0LjI1VjMxLjVaTTE5IDQyaDEwVjMxLjVIMTlWNDJabTEyLjUgMFYzMS41SDQydjQuMjVDNDIgMzkuMiAzOS4yIDQyIDM1Ljc1IDQySDMxLjVaTTQyIDE5djEwSDMxLjVWMTlINDJabTAtMi41di00LjI1QzQyIDguOCAzOS4yIDYgMzUuNzUgNkgzMS41djEwLjVINDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZTQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZTQ4UmVndWxhcicsIFwiNDhcIiwgW1wiTTM1Ljc1IDZDMzkuMiA2IDQyIDguOCA0MiAxMi4yNXYyMy41QzQyIDM5LjIgMzkuMiA0MiAzNS43NSA0MmgtMjMuNUE2LjI1IDYuMjUgMCAwIDEgNiAzNS43NXYtMjMuNUM2IDguOCA4LjggNiAxMi4yNSA2aDIzLjVaTTguNSAxOS41djlIMTd2LTlIOC41Wm0wIDExLjV2NC43NWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDE3VjMxSDguNVptMTEgOC41aDlWMzFoLTl2OC41Wm0xMS41IDBoNC43NWEzLjc1IDMuNzUgMCAwIDAgMy43NS0zLjc1VjMxSDMxdjguNVptOC41LTExdi05SDMxdjloOC41Wm0wLTExLjV2LTQuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NUgzMVYxN2g4LjVabS0xMS04LjVoLTlWMTdoOVY4LjVaTTE3IDguNWgtNC43NWEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1VjE3SDE3VjguNVptMTEuNSAyMHYtOWgtOXY5aDlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFkZDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQWRkMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41VjVoM1YyaC0uNVpNNiAyaDR2M0g2VjJaTTUgNkgydjRoM1Y2Wm0xIDEuMzRjLjM3LS41Mi44Mi0uOTcgMS4zNC0xLjM0SDZ2MS4zNFpNNSAxMUgydi41QTIuNSAyLjUgMCAwIDAgNC41IDE0SDV2LTNabTktNnYtLjVBMi41IDIuNSAwIDAgMCAxMS41IDJIMTF2M2gzWm0xIDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTQtMmEuNS41IDAgMCAwLTEgMFYxMEg4LjVhLjUuNSAwIDAgMCAwIDFIMTB2MS41YS41LjUgMCAwIDAgMSAwVjExaDEuNWEuNS41IDAgMCAwIDAtMUgxMVY4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFkZDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFkZDE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGgxLjc2QTUuNDggNS40OCAwIDAgMSA2IDcuMzRWNmgxLjM0YTUuNDcgNS40NyAwIDAgMSA2LjY2LjI2VjQuNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtN1pNMyAxMWgydjJoLS41QTEuNSAxLjUgMCAwIDEgMyAxMS41VjExWm0wLTVoMnY0SDNWNlptNy0xSDZWM2g0djJaTTQuNSAzSDV2Mkgzdi0uNUMzIDMuNjcgMy42NyAzIDQuNSAzWk0xMyA0LjVWNWgtMlYzaC41Yy44MyAwIDEuNS42NyAxLjUgMS41Wk0xMC41IDE1YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5Wm0wLTdjLjI4IDAgLjUuMjIuNS41VjEwaDEuNWEuNS41IDAgMCAxIDAgMUgxMXYxLjVhLjUuNSAwIDAgMS0xIDBWMTFIOC41YS41LjUgMCAwIDEgMC0xSDEwVjguNWMwLS4yOC4yMi0uNS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgN2g0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tNiA1VjhIM3Y0aDRabTIuNiAwQTUuNTIgNS41MiAwIDAgMSAxMiA5LjZWOEg4djRoMS42Wm00LjktM2MuOSAwIDEuNzUuMjIgMi41LjZWOGgtNHYxLjJjLjQ4LS4xMy45OC0uMiAxLjUtLjJaTTkgMTQuNWMwLS41Mi4wNy0xLjAyLjItMS41SDh2NGgxLjZjLS4zOC0uNzUtLjYtMS42LS42LTIuNVpNNyAxM0gzdjEuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0g3di00Wm01LTZWM0g4djRoNFpNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3Wm0xMiAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVBZGQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVBZGQyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDQuMWMtLjE2LS4zMi0uMy0uNjUtLjQtMUg4di0zaDEuMmMuMS0uMzUuMjQtLjY4LjQtMUg4VjhoNHYxLjZjLjMyLS4xNi42NS0uMyAxLS40VjhoM3YxLjJjLjM1LjEuNjguMjQgMSAuNFY1LjVabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk0xMiA0djNIOFY0aDRabTEgMEgxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTcgNHYzSDRWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDdabTAgNHY0SDRWOGgzWm0xMiA2LjVhNC41IDQuNSAwIDEgMS05IDAgNC41IDQuNSAwIDAgMSA5IDBabS00LTJhLjUuNSAwIDAgMC0xIDBWMTRoLTEuNWEuNS41IDAgMCAwIDAgMUgxNHYxLjVhLjUuNSAwIDAgMCAxIDBWMTVoMS41YS41LjUgMCAwIDAgMC0xSDE1di0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFkZDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQWRkMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMjFoMi41MmE2LjQ3IDYuNDcgMCAwIDEtLjg1LTVIOS41djVaTTIxIDkuNXYyLjUyYTYuNDcgNi40NyAwIDAgMC01LS44NVY5LjVoNVptLTYuNSAwdjIuMjNhNi41MyA2LjUzIDAgMCAwLTIuNzcgMi43N0g5LjV2LTVoNVpNMjEgOFY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDE2djVoNVptLTYuNS01aC01djVoNVYzWk04IDNINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1VjhoNVYzWk0zIDkuNXY1aDV2LTVIM1pNMyAxNnYxLjc1QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxSDh2LTVIM1ptMjAgMS41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS01IC41djIuNWEuNS41IDAgMSAxLTEgMFYxOGgtMi41YS41LjUgMCAxIDEgMC0xSDE3di0yLjVhLjUuNSAwIDAgMSAxIDBWMTdoMi41YS41LjUgMCAxIDEgMCAxSDE4WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVBZGQyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVBZGQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY1Ljc3Yy0uNDYtLjMtLjk3LS41My0xLjUtLjdWMTBoLTR2MS4zMWMtLjUzLjE4LTEuMDQuNDItMS41LjcxVjEwaC00djRoMi4wMmMtLjMuNDYtLjUzLjk3LS43IDEuNUgxMHY0aDEuMzFjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNVpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjguNWg0di00SDYuMjVaTTQuNSAxMHY0aDR2LTRoLTRabTExLTEuNWg0VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDE1LjV2NFptLTEuNS00aC00djRoNHYtNFptLTkuNSAxMXYyLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDguNXYtNGgtNFptMTguNSAyYTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBabS01IC41djIuNWEuNS41IDAgMSAxLTEgMFYxOGgtMi41YS41LjUgMCAxIDEgMC0xSDE3di0yLjVhLjUuNSAwIDAgMSAxIDBWMTdoMi41YS41LjUgMCAxIDEgMCAxSDE4WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVBZGQyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFkZDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNIOS41djYuNUgzVjYuNzVaTTMgMTF2Nmg2LjV2LTZIM1ptMCA3LjV2Mi43NUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNUg5LjV2LTYuNUgzWm04IDYuNWgzLjVhNy40NyA3LjQ3IDAgMCAxLTEuMjMtNi41SDExVjI1Wm0xNC0xNHYzLjVhNy40NyA3LjQ3IDAgMCAwLTYuNS0xLjIzVjExSDI1Wm0tOCAwdjIuODdBNy41MyA3LjUzIDAgMCAwIDEzLjg3IDE3SDExdi02aDZabTgtMS41VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNIMTguNXY2LjVIMjVaTTE3IDNoLTZ2Ni41aDZWM1ptMTAgMTcuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwWm0tNi00YS41LjUgMCAwIDAtMSAwVjIwaC0zLjVhLjUuNSAwIDAgMCAwIDFIMjB2My41YS41LjUgMCAwIDAgMSAwVjIxaDMuNWEuNS41IDAgMCAwIDAtMUgyMXYtMy41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVBZGQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVBZGQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM2gxNC41QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1djcuNzVhNy40OSA3LjQ5IDAgMCAwLTEuNS0uODhWMTFoLTV2Mi4yN2MtLjUzLjE0LTEuMDMuMzUtMS41LjZWMTFoLTZ2NmgyLjg3Yy0uMjUuNDctLjQ2Ljk3LS42IDEuNUgxMXY1aDIuNjJjLjI0LjU0LjUzIDEuMDQuODggMS41SDYuNzVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjVWNi43NVpNNC41IDE4LjV2Mi43NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNUg5LjV2LTVoLTVabTUtMS41di02aC01djZoNVptMTQtMTAuMjVjMC0xLjI0LTEtMi4yNS0yLjI1LTIuMjVIMTguNXY1aDVWNi43NVpNMTcgNC41aC02djVoNnYtNVptLTcuNSAwSDYuNzVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1VjkuNWg1di01Wm0xNy41IDE2YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS02LTRhLjUuNSAwIDAgMC0xIDBWMjBoLTMuNWEuNS41IDAgMCAwIDAgMUgyMHYzLjVhLjUuNSAwIDAgMCAxIDBWMjFoMy41YS41LjUgMCAwIDAgMC0xSDIxdi0zLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFycm93VXAyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFycm93VXAyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE3IDdoLTRWM2gxLjVBMi41IDIuNSAwIDAgMSAxNyA1LjVWN1pNNyA4djRIM1Y4aDRabTUgMS42QTUuNTIgNS41MiAwIDAgMCA5LjYgMTJIOFY4aDR2MS42Wm01IDBhNS40OCA1LjQ4IDAgMCAwLTQtLjRWOGg0djEuNlpNOS4yIDEzYTUuNSA1LjUgMCAwIDAgLjQgNEg4di00aDEuMlpNMyAxM2g0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm05LTEwdjRIOFYzaDRaTTcgN1YzSDUuNUEyLjUgMi41IDAgMCAwIDMgNS41VjdoNFptMTIgNy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMi4xNS4zNWEuNS41IDAgMCAwIDAtLjdsLTItMmEuNS41IDAgMCAwLS4zNS0uMTUuNS41IDAgMCAwLS4zNS4xNWwtMiAyYS41LjUgMCAwIDAgLjcuN0wxNCAxMy43MXYyLjc5YS41LjUgMCAxIDAgMSAwdi0yLjhsMS4xNSAxLjE1Yy4yLjIuNS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQXJyb3dVcDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFycm93VXAyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNC41IDNBMi41IDIuNSAwIDAgMSAxNyA1LjV2NC4xYy0uMzItLjE2LS42NS0uMy0xLS40VjhoLTN2MS4yYy0uMzUuMS0uNjguMjQtMSAuNFY4SDh2NGgxLjZjLS4xNi4zMi0uMy42NS0uNCAxSDh2M2gxLjJjLjEuMzUuMjQuNjguNCAxSDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlaTTQgMTN2MS41YzAgLjc4LjYgMS40MiAxLjM2IDEuNUg3di0zSDRabTQtNmg0VjRIOHYzWm02LjUtM0gxM3YzaDNWNS41YzAtLjc4LS42LTEuNDItMS4zNi0xLjVoLS4xNFpNNCA1LjVWN2gzVjRINS41Yy0uNzggMC0xLjQyLjYtMS41IDEuMzZ2LjE0Wk03IDEyVjhINHY0aDNabTEyIDIuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuMTUuMzVhLjUuNSAwIDAgMCAwLS43bC0yLTJhLjUuNSAwIDAgMC0uMzUtLjE1LjUuNSAwIDAgMC0uMzUuMTVsLTIgMmEuNS41IDAgMCAwIC43LjdMMTQgMTMuNzF2Mi43OWEuNS41IDAgMSAwIDEgMHYtMi44bDEuMTUgMS4xNWMuMi4yLjUuMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFycm93VXAyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUFycm93VXAyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTEyLjAyIDIxSDkuNXYtNWgxLjY3YTYuNTIgNi41MiAwIDAgMCAuODUgNVpNMjEgMTIuMDJWOS41aC01djEuNjdhNi41MiA2LjUyIDAgMCAxIDUgLjg1Wm0tNi41LS4yOVY5LjVoLTV2NWgyLjIzYTYuNTMgNi41MyAwIDAgMSAyLjc3LTIuNzdaTTIxIDYuMjVWOGgtNVYzaDEuNzVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjVaTTkuNSAzaDV2NWgtNVYzWk02LjI1IDNIOHY1SDNWNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM1pNMyAxNC41di01aDV2NUgzWm0wIDMuMjVWMTZoNXY1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVabTIwLS4yNWE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwWk0xNy40MyAxNGguMDhhLjUuNSAwIDAgMSAuMDYgMGwuMDYuMDIuMDYuMDIuMDcuMDMuMDUuMDMgMi41NCAyLjU1LjA2LjA3YS41LjUgMCAwIDEtLjcuN2wtLjA2LS4wN0wxOCAxNS43MXY1LjM4YS41LjUgMCAwIDEtLjQxLjRsLS4wOS4wMWgtLjA5YS41LjUgMCAwIDEtLjQtLjQxTDE3IDIxdi01LjNsLTEuNjUgMS42NS0uMDcuMDZhLjUuNSAwIDAgMS0uNTYgMGwtLjA3LS4wNi0uMDYtLjA3YS41LjUgMCAwIDEgMC0uNTZsLjA2LS4wNyAyLjUtMi41Mi4wNy0uMDQuMDctLjA0LjA4LS4wMy4wNi0uMDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUFycm93VXAyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVBcnJvd1VwMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWg1Ljc3Yy0uMy0uNDYtLjUzLS45Ny0uNy0xLjVIMTB2LTRoMS4zMWMuMTgtLjUzLjQyLTEuMDQuNzEtMS41SDEwdi00aDR2Mi4wMmMuNDYtLjMuOTctLjUzIDEuNS0uN1YxMGg0djEuMzFjLjUzLjE4IDEuMDQuNDIgMS41LjcxVjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVIOC41djRoLTRWNi4yNVptMCA3Ljc1di00aDR2NGgtNFptMTUtNS41aC00di00aDIuMjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOC41Wm0tOS41LTRoNHY0aC00di00Wk00LjUgMTcuNzVWMTUuNWg0djRINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1Wk0yMyAxNy41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBaTTE3LjQzIDE0aC4wOGEuNS41IDAgMCAxIC4wNiAwbC4wNi4wMi4wNi4wMi4wNy4wMy4wNS4wMyAyLjU0IDIuNTUuMDYuMDdhLjUuNSAwIDAgMS0uNy43bC0uMDYtLjA3TDE4IDE1LjcxdjUuMzhhLjUuNSAwIDAgMS0uNDEuNGwtLjA5LjAxaC0uMDlhLjUuNSAwIDAgMS0uNC0uNDFMMTcgMjF2LTUuM2wtMS42NSAxLjY1LS4wNy4wNmEuNS41IDAgMCAxLS41NiAwbC0uMDctLjA2LS4wNi0uMDdhLjUuNSAwIDAgMSAwLS41NmwuMDYtLjA3IDIuNS0yLjUyLjA3LS4wNC4wNy0uMDQuMDgtLjAzLjA2LS4wMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQm90dG9tUm93MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVCb3R0b21Sb3cxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjVWMTBoMVY0LjVDMyAzLjY3IDMuNjcgMyA0LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjEwaDFWNC41QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03Wk0zIDEzLjVhMi41IDIuNSAwIDAgMS0xLTJWMTFoM3YzaC0uNWMtLjU2IDAtMS4wOC0uMTktMS41LS41Wk0xMy45NSAxMmMuMDMtLjE2LjA1LS4zMy4wNS0uNVYxMWgtM3YzaC41YTIuNDkgMi40OSAwIDAgMCAyLjQ1LTJaTTYgMTRoNHYtM0g2djNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUJvdHRvbVJvdzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvdzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMmgtN1ptNS41IDl2Mkg2di0yaDRabS03IDBoMnYyaC0uNUExLjUgMS41IDAgMCAxIDMgMTEuNVYxMVptMC0xVjQuNUMzIDMuNjcgMy42NyAzIDQuNSAzaDdjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTBIM1ptOCAzdi0yaDJ2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3cyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvdzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41VjEyaC0xVjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjEySDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNMTcgMTQuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTN2LTRoNHYxLjVabS0xMyAyYy40Mi4zMS45NC41IDEuNS41SDd2LTRIM3YxLjVjMCAuODIuNCAxLjU0IDEgMlpNOCAxM2g0djRIOHYtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQm90dG9tUm93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQm90dG9tUm93MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNSAzQTIuNSAyLjUgMCAwIDEgMTcgNS41djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMyAxNC41di05QTIuNSAyLjUgMCAwIDEgNS41IDNoOVpNNCAxM3YxLjVjMCAuNzguNiAxLjQyIDEuMzYgMS41SDd2LTNINFptNCAzaDR2LTNIOHYzWm01IDBoMS41Yy43OCAwIDEuNDItLjYgMS41LTEuMzZWMTNoLTN2M1ptMy00VjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjEyaDEyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3cyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvdzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2OC4yNWgxLjVWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1djguMjVIMjFWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk00LjUgMjAuNDlBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWMTZoNXY1SDYuMjVjLS42NCAwLTEuMjQtLjE5LTEuNzUtLjUxWm0xNi40MS0xLjk5Yy4wNi0uMjQuMDktLjUuMDktLjc1VjE2aC01djVoMS43NWEzLjIzIDMuMjMgMCAwIDAgMy4xNi0yLjVaTTE0LjUgMjF2LTVoLTV2NWg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3cyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVCb3R0b21Sb3cyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVaTTQuNSA2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWMTRoLTE1VjYuMjVaTTEwIDE1LjVoNHY0aC00di00Wm03Ljc1IDRIMTUuNXYtNGg0djIuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1Wk00LjUgMTcuNzVWMTUuNWg0djRINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3cyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvdzI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNi43NSAzQTMuNzUgMy43NSAwIDAgMCAzIDYuNzVWMTdoMS41VjYuNzVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoMTQuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNVYxN0gyNVY2Ljc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzSDYuNzVaTTMgMjEuMjVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVIOS41di02LjVIM3YyLjc1Wk0xNyAyNWgtNnYtNi41aDZWMjVabTQuMjUgMEgxOC41di02LjVIMjV2Mi43NUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUJvdHRvbVJvdzI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvdzI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTYuNzUgM0EzLjc1IDMuNzUgMCAwIDAgMyA2Ljc1djE0LjVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVoMTQuNUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0g2Ljc1Wk00LjUgMjEuMjVWMTguNWg1djVINi43NWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVaTTExIDIzLjV2LTVoNnY1aC02Wk00LjUgMTdWNi43NWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNWgxNC41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1VjE3aC0xOVptMTQgNi41di01aDV2Mi43NWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxOC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3czMkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUJvdHRvbVJvdzMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOSA0YTUgNSAwIDAgMC01IDV2MTFoMlY5YTMgMyAwIDAgMSAzLTNoMTRhMyAzIDAgMCAxIDMgM3YxMWgyVjlhNSA1IDAgMCAwLTUtNUg5Wm0xMSAxOHY2aC04di02aDhabTMgNmgtMXYtNmg2djFhNSA1IDAgMCAxLTUgNVptLTEzLTZ2Nkg5YTUgNSAwIDAgMS01LTV2LTFoNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQm90dG9tUm93MzJSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQm90dG9tUm93MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNOSA0YTUgNSAwIDAgMC01IDV2MTRhNSA1IDAgMCAwIDUgNWgxNGE1IDUgMCAwIDAgNS01VjlhNSA1IDAgMCAwLTUtNUg5Wk02IDlhMyAzIDAgMCAxIDMtM2gxNGEzIDMgMCAwIDEgMyAzdjEwSDZWOVptMCAxNHYtMmg1djVIOWEzIDMgMCAwIDEtMy0zWm03IDN2LTVoNnY1aC02Wm04IDB2LTVoNXYyYTMgMyAwIDAgMS0zIDNoLTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUJvdHRvbVJvdzQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQm90dG9tUm93NDhGaWxsZWQnLCBcIjQ4XCIsIFtcIk00MiAxMi4yNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZoLTIzLjVBNi4yNSA2LjI1IDAgMCAwIDYgMTIuMjVWMjloMi41VjEyLjI1YTMuNzUgMy43NSAwIDAgMSAzLjc1LTMuNzVoMjMuNWEzLjc1IDMuNzUgMCAwIDEgMy43NSAzLjc1VjI5SDQyVjEyLjI1Wk04LjUgNDAuNzVhNi4yNCA2LjI0IDAgMCAxLTIuNS01VjMxLjVoMTAuNVY0MmgtNC4yNWMtMS40IDAtMi43LS40Ni0zLjc1LTEuMjVaTTQyIDMxLjVIMzEuNVY0Mmg0LjI1QTYuMjIgNi4yMiAwIDAgMCA0MiAzNS43NVYzMS41Wk0yOSA0MkgxOVYzMS41aDEwVjQyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVCb3R0b21Sb3c0OFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVCb3R0b21Sb3c0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk00MiAxMi4yNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZoLTIzLjVBNi4yNSA2LjI1IDAgMCAwIDYgMTIuMjV2MjMuNUM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDIzLjVDMzkuMiA0MiA0MiAzOS4yIDQyIDM1Ljc1di0yMy41Wk04LjUgMjguNVYxMi4yNWEzLjc1IDMuNzUgMCAwIDEgMy43NS0zLjc1aDIzLjVhMy43NSAzLjc1IDAgMCAxIDMuNzUgMy43NVYyOC41aC0zMVptMCA3LjI1VjMxSDE3djguNWgtNC43NWEzLjc1IDMuNzUgMCAwIDEtMy43NS0zLjc1Wm0yMCAzLjc1aC05VjMxaDl2OC41Wm03LjI1IDBIMzFWMzFoOC41djQuNzVhMy43NSAzLjc1IDAgMCAxLTMuNzUgMy43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2FsY3VsYXRvcjE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2FsY3VsYXRvcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMkg1djNIMnYtLjVaTTYgNVYyaDR2M0g2Wk01IDZIMnY0aDNWNlptMSAwdjRoMlY3LjVjMC0uNTYuMTktMS4wOC41LTEuNUg2Wm0yIDh2LTNINnYzaDJabS02LTNoM3YzaC0uNUEyLjUgMi41IDAgMCAxIDIgMTEuNVYxMVptMTItNnYtLjVBMi41IDIuNSAwIDAgMCAxMS41IDJIMTF2M2gzWm0tMy41IDFDOS42NyA2IDkgNi42NyA5IDcuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNFptLS41IDQuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNC41LS41YS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEgMC0xaDFaTTEwIDEyLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTQuNS0uNWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMWgxWk0xMCAxNC41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm00LjUtLjVhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFoMVpNMTAgNy41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2FsY3VsYXRvcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNhbGN1bGF0b3IxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjVWNWgtMy41Yy0uODIgMC0xLjU0LjQtMiAxSDZ2NGgydjFINnYyaDJ2MUg0LjVBMi41IDIuNSAwIDAgMSAyIDExLjV2LTdaTTUgMTFIM3YuNWMwIC44My42NyAxLjUgMS41IDEuNUg1di0yWm0wLTVIM3Y0aDJWNlptMS0xaDRWM0g2djJaTTUgM2gtLjVDMy42NyAzIDMgMy42NyAzIDQuNVY1aDJWM1ptOCAydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTF2MmgyWm0tMi41IDFDOS42NyA2IDkgNi42NyA5IDcuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDRjLjgzIDAgMS41LS42NyAxLjUtMS41di03YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNFptLS41IDQuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNVptNC41LS41YS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEgMC0xaDFaTTEwIDEyLjVjMC0uMjguMjItLjUuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjVabTQuNS0uNWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxIDAtMWgxWk0xMCAxNC41YzAtLjI4LjIyLS41LjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41Wm00LjUtLjVhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMSAwLTFoMVpNMTAgNy41YzAtLjI4LjIyLS41LjUtLjVoNGMuMjggMCAuNS4yMi41LjV2MWEuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2FsY3VsYXRvcjIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2FsY3VsYXRvcjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgN2g0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tNiA1VjhIM3Y0aDRabTUtMy41VjhIOHY0aDN2LTEuNWMwLS44Mi40LTEuNTQgMS0yWk0xMSAxM0g4djRoM3YtNFptLTQgMEgzdjEuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0g3di00Wm01LTZWM0g4djRoNFpNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3Wm01IDcuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtN1ptMi41IDIuNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWm0zLjUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpNMTQuNSAxNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWm0zLjUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpNMTQuNSAxN2gtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWm0zLjUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpNMTMuNSAxMGEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2FsY3VsYXRvcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNhbGN1bGF0b3IyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3SDExdi0xSDh2LTNoM3YtMUg4VjhoNHYuNWMuMy0uMjIuNjMtLjM4IDEtLjQ1VjhoNFY1LjVabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk0xMiA3SDhWNGg0djNabTEtM0gxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTQgN1Y1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRabTMgMXY0SDRWOGgzWm01IDIuNWMwLS44My42Ny0xLjUgMS41LTEuNWg0Yy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC00YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtN1ptMi41IDIuNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWm0zLjUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpNMTQuNSAxNWgtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWm0zLjUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpNMTQuNSAxN2gtMWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xWm0zLjUuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAuNS0uNVpNMTMuNSAxMGEuNS41IDAgMCAwLS41LjV2MWMwIC4yOC4yMi41LjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbEVkaXQxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxFZGl0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk02IDV2NC45OGwuMjctLjMxTDEwIDUuOTRWNUg2Wm0tMi41IDZBMS41IDEuNSAwIDAgMSAyIDkuNXYtM0MyIDUuNjcgMi42NyA1IDMuNSA1SDV2NkgzLjVabTMuNDgtLjYyIDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxFZGl0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJtMTAuOTQgNS0xIDFINnYzLjk4Yy0uMjMuMy0uNDEuNjUtLjUyIDEuMDJIMy41QTEuNSAxLjUgMCAwIDEgMiA5LjV2LTNDMiA1LjY3IDIuNjcgNSAzLjUgNWg3LjQ0Wk0zIDkuNWMwIC4yOC4yMi41LjUuNUg1VjZIMy41YS41LjUgMCAwIDAtLjUuNXYzWm0zLjk4Ljg4IDQuODMtNC44M2ExLjg3IDEuODcgMCAxIDEgMi42NCAyLjY0bC00LjgzIDQuODNhMi4yIDIuMiAwIDAgMS0xLjAyLjU4bC0xLjUuMzdhLjg5Ljg5IDAgMCAxLTEuMDctMS4wN2wuMzctMS41Yy4xLS4zOS4zLS43NC41OC0xLjAyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdDIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbEVkaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTggMTNoMS45OGMuMS0uMTIuMTktLjIzLjMtLjMzTDEyIDEwLjk0VjdIOHY2Wm03LjEtNS4xNmMuMjYtLjI2LjU1LS40NS44Ni0uNkEyIDIgMCAwIDAgMTUgN2gtMnYyLjk0bDIuMS0yLjFaTTUgMTNhMiAyIDAgMCAxLTItMlY5YzAtMS4xLjktMiAyLTJoMnY2SDVabTEwLjgtNC40NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdDIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxFZGl0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNOS45OCAxM2MuMS0uMTIuMTktLjIzLjMtLjMzbC42Ni0uNjdIOFY4aDR2Mi45NGwxLTFWOGgxLjk0bC4xNi0uMTZjLjI2LS4yNi41NS0uNDUuODYtLjZBMiAyIDAgMCAwIDE1IDdINWEyIDIgMCAwIDAtMiAydjJjMCAxLjEuOSAyIDIgMmg0Ljk4Wk03IDh2NEg1YTEgMSAwIDAgMS0xLTFWOWExIDEgMCAwIDEgMS0xaDJabTguOC41NS00LjgyIDQuODNhMi4yIDIuMiAwIDAgMC0uNTggMS4wMmwtLjM3IDEuNWEuODkuODkgMCAwIDAgMS4wOCAxLjA3bDEuNS0uMzdjLjM4LS4xLjczLS4zIDEuMDEtLjU4bDQuODMtNC44M2ExLjg3IDEuODcgMCAwIDAtMi42NC0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbEVkaXQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTUuMjUgNi41QzQuMDEgNi41IDMgNy41IDMgOC43NXY0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVIOHYtOUg1LjI1WlwiLCBcIk0xMi40OSAxNC44NmMtLjIuMi0uMzcuNDEtLjUxLjY0SDkuNXYtOWg1djYuMzVsLTIuMDEgMi4wMVpcIiwgXCJNMjAuNzIgOGguMTVhMi4yNSAyLjI1IDAgMCAwLTIuMTItMS41SDE2djQuODVsMi40LTIuMzlBMy4yOCAzLjI4IDAgMCAxIDIwLjcgOFpcIiwgXCJNMjAuNzIgOWMtLjYgMC0xLjE4LjIyLTEuNjIuNjdsLTUuOSA1LjljLS4zNS4zNS0uNi43OC0uNzEgMS4yNWwtLjQ2IDEuODNjLS4yLjguNTIgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlBMi4yOSAyLjI5IDAgMCAwIDIwLjcyIDlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxFZGl0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbEVkaXQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDguNzVDMyA3LjUxIDQgNi41IDUuMjUgNi41aDEzLjVjLjk4IDAgMS44Mi42MyAyLjEyIDEuNWgtLjE1Yy0uNDcgMC0uOTQuMS0xLjM3LjNhLjc1Ljc1IDAgMCAwLS42LS4zSDE1LjV2My44NWwtMS41IDEuNVY4aC00djZoMy4zNWwtLjg2Ljg2Yy0uMi4yLS4zNy40MS0uNTEuNjRINS4yNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjV2LTQuNVpNNS4yNSA4YS43NS43NSAwIDAgMC0uNzUuNzV2NC41YzAgLjQxLjM0Ljc1Ljc1Ljc1SDguNVY4SDUuMjVaXCIsIFwiTTIwLjcyIDljLS42IDAtMS4xOC4yMi0xLjYyLjY3bC01LjkgNS45Yy0uMzUuMzUtLjYuNzgtLjcxIDEuMjVsLS40NiAxLjgzYy0uMi44LjUyIDEuNTIgMS4zMiAxLjMybDEuODMtLjQ2Yy40Ny0uMTIuOS0uMzYgMS4yNS0uN2w1LjktNS45QTIuMjkgMi4yOSAwIDAgMCAyMC43MiA5WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbEVkaXQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTUuNzUgMTlBMi43NSAyLjc1IDAgMCAxIDMgMTYuMjV2LTQuNUEyLjc1IDIuNzUgMCAwIDEgNS43NSA5SDkuNXYxMEg1Ljc1Wk0xMSAxOWgzLjM2bC4xMy0uMTQgMi41MS0yLjVWOWgtNnYxMFpNMjIuMjUgOWMuODYgMCAxLjYzLjQgMi4xNCAxLjAyLS43My4wNy0xLjQ0LjM5LTIgLjk0bC0zLjg5IDMuOVY5aDMuNzVabS44NSAyLjY3LTcuOSA3LjljLS4zNS4zNS0uNi43OC0uNyAxLjI1bC0uNDcgMS44M2MtLjIuOC41MyAxLjUyIDEuMzIgMS4zMmwxLjgzLS40NmMuNDctLjEyLjktLjM2IDEuMjUtLjdsNy45LTcuOWEyLjI5IDIuMjkgMCAwIDAtMy4yMy0zLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsRWRpdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxFZGl0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNNS43NSAxOUEyLjc1IDIuNzUgMCAwIDEgMyAxNi4yNXYtNC41QTIuNzUgMi43NSAwIDAgMSA1Ljc1IDloMTYuNWMuODYgMCAxLjYzLjQgMi4xNCAxLjAyLS41Ny4wNS0xLjEyLjI2LTEuNi42YTEuMjQgMS4yNCAwIDAgMC0uNTQtLjEySDE4djQuODZsLTEuNSAxLjVWMTAuNWgtNXY3aDQuMzZsLTEuMzcgMS4zNi0uMTMuMTRINS43NVpNNC41IDE2LjI1YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDEwdi03SDUuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djQuNVptMTguNi00LjU4LTcuOSA3LjljLS4zNS4zNS0uNi43OC0uNyAxLjI1bC0uNDcgMS44M2MtLjIuOC41MyAxLjUyIDEuMzIgMS4zMmwxLjgzLS40NmMuNDctLjEyLjktLjM2IDEuMjUtLjdsNy45LTcuOWEyLjI5IDIuMjkgMCAwIDAtMy4yMy0zLjI0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc01lcmdlMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc01lcmdlMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMmEyLjUgMi41IDAgMCAwLTIuNDUgMmgxMS45YTIuNSAyLjUgMCAwIDAtMi40NS0yaC03Wk0yIDExVjVoMTJ2NkgyWm00LjM1LTQuODVhLjUuNSAwIDAgMC0uNyAwbC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoNC41OGwtLjY0LjY1YS41LjUgMCAxIDAgLjcuN2wxLjUtMS41YS41LjUgMCAwIDAgMC0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43LjdsLjY0LjY1SDUuNzFsLjY0LS42NWEuNS41IDAgMCAwIDAtLjdabTcuNiA1Ljg1YTIuNSAyLjUgMCAwIDEtMi40NSAyaC03YTIuNSAyLjUgMCAwIDEtMi40NS0yaDExLjlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzTWVyZ2UxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc01lcmdlMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNNi4zNSA2LjE1Yy4yLjIuMi41IDAgLjdsLS42NC42NWg0LjU4bC0uNjQtLjY1YS41LjUgMCAxIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjctLjdsLjY0LS42NUg1LjcxbC42NC42NWEuNS41IDAgMSAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBaTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN0EyLjUgMi41IDAgMCAwIDExLjUgMmgtN1ptOC40MSAySDMuMWMuMi0uNTguNzYtMSAxLjQxLTFoN2MuNjUgMCAxLjIuNDIgMS40MSAxWk0zIDVoMTB2NkgzVjVabS4wOSA3aDkuODJjLS4yLjU4LS43NiAxLTEuNDEgMWgtN2ExLjUgMS41IDAgMCAxLTEuNDEtMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNNZXJnZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNNZXJnZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyA2YTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzSDNabTAgMXY2aDE0VjdIM1ptNC4zNSAxLjg1LS42NC42NWg2LjU4bC0uNjQtLjY1YS41LjUgMCAwIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjctLjdsLjY0LS42NUg2LjcxbC42NC42NWEuNS41IDAgMCAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVhLjUuNSAwIDEgMSAuNy43Wk0zIDE0aDE0YTMgMyAwIDAgMS0zIDNINmEzIDMgMCAwIDEtMy0zWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc01lcmdlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNNZXJnZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTcuMzUgOC44NWEuNS41IDAgMSAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVoNi41OGwtLjY0LjY1YS41LjUgMCAwIDAgLjcuN2wxLjUtMS41YS41LjUgMCAwIDAgMC0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43LjdsLjY0LjY1SDYuNzFsLjY0LS42NVpNNiAzYTMgMyAwIDAgMC0zIDN2OGEzIDMgMCAwIDAgMyAzaDhhMyAzIDAgMCAwIDMtM1Y2YTMgMyAwIDAgMC0zLTNINlpNNCA3aDEydjZINFY3Wm0xMCA5SDZhMiAyIDAgMCAxLTItMmgxMmEyIDIgMCAwIDEtMiAyWm0yLTEwSDRjMC0xLjEuOS0yIDItMmg4YTIgMiAwIDAgMSAyIDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzTWVyZ2UyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxzTWVyZ2UyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1di4yNUgzdi0uMjVaTTMgOHY4aDE4VjhIM1ptMTIuNTggMy4yNS0uODktMWEuNzUuNzUgMCAwIDEgMS4xMi0xbDIgMi4yNWEuNzUuNzUgMCAwIDEgLjAxLjk5bC0yIDIuMjZhLjc1Ljc1IDAgMSAxLTEuMTMtMWwuODktMUg4LjQybC45IDFhLjc1Ljc1IDAgMCAxLTEuMTMgMWwtMi0yLjI1YS43NS43NSAwIDAgMSAwLTFsMi0yLjI1YS43NS43NSAwIDEgMSAxLjEyIDFsLS44OSAxaDcuMTZaTTMgMTcuNzV2LS4yNWgxOHYuMjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc01lcmdlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNNZXJnZTI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjU4IDExLjI1SDguNDJsLjktMWEuNzUuNzUgMCAwIDAtMS4xMy0xbC0yIDIuMjVhLjc1Ljc1IDAgMCAwIDAgMWwyIDIuMjVhLjc1Ljc1IDAgMSAwIDEuMTItMWwtLjg5LTFoNy4xNmwtLjg5IDFhLjc1Ljc1IDAgMCAwIDEuMTIgMWwyLTIuMjUuMDEtLjAxYS43NS43NSAwIDAgMC0uMDEtMWwtMi0yLjI0YS43NS43NSAwIDAgMC0xLjEyIDFsLjg5IDFaTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NXYuMjVoLTE1di0uMjVaTTQuNSA4aDE1djhoLTE1VjhabTE1IDkuNXYuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDYuMjVjLS45NyAwLTEuNzUtLjc4LTEuNzUtMS43NXYtLjI1aDE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc01lcmdlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc01lcmdlMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYuNzVoMjJ2LS43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0g2Ljc1Wk0yNSA5SDN2MTBoMjJWOVptLTYuNDIgNC4yNS0uODktMWEuNzUuNzUgMCAwIDEgMS4xMi0xbDIgMi4yNWEuNzUuNzUgMCAwIDEgLjAxLjk5bC0yIDIuMjZhLjc1Ljc1IDAgMSAxLTEuMTMtMWwuODktMUg5LjQybC45IDFhLjc1Ljc1IDAgMCAxLTEuMTMgMWwtMi0yLjI1YS43NS43NSAwIDAgMSAwLTFsMi0yLjI1YS43NS43NSAwIDAgMSAxLjEyIDFsLS44OSAxaDkuMTZaTTI1IDIwLjVIM3YuNzVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVoMTQuNUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjV2LS43NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNNZXJnZTI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxzTWVyZ2UyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDE0LjVBMy43NSAzLjc1IDAgMCAwIDI1IDIxLjI1VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNINi43NVptMTQuNSAxLjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Ljc1aC0xOXYtLjc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDE0LjVaTTQuNSA5aDE5djEwaC0xOVY5Wm0wIDEyLjI1di0uNzVoMTl2Ljc1YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1SDYuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1Wm0xNC4wOC04SDkuNDJsLjktMWEuNzUuNzUgMCAwIDAtMS4xMy0xbC0yIDIuMjVhLjc1Ljc1IDAgMCAwIDAgMWwyIDIuMjVhLjc1Ljc1IDAgMSAwIDEuMTItMWwtLjg5LTFoOS4xNmwtLjg5IDFhLjc1Ljc1IDAgMCAwIDEuMTIgMWwyLTIuMjUuMDEtLjAxYS43NS43NSAwIDAgMC0uMDEtMWwtMi0yLjI0YS43NS43NSAwIDAgMC0xLjEyIDFsLjg5IDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzTWVyZ2UzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNNZXJnZTMyTGlnaHQnLCBcIjMyXCIsIFtcIk03LjUgM0E0LjUgNC41IDAgMCAwIDMgNy41djE3QTQuNSA0LjUgMCAwIDAgNy41IDI5aDE3YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTdBNC41IDQuNSAwIDAgMCAyNC41IDNoLTE3Wk00IDI0LjVWMjRoMjR2LjVhMy41IDMuNSAwIDAgMS0zLjUgMy41aC0xN0EzLjUgMy41IDAgMCAxIDQgMjQuNVpNNCAyM1Y5aDI0djE0SDRaTTI4IDhINHYtLjVBMy41IDMuNSAwIDAgMSA3LjUgNGgxN0EzLjUgMy41IDAgMCAxIDI4IDcuNVY4Wm0tNC43IDguNUg4LjdsMi42NSAyLjY1YS41LjUgMCAwIDEtLjcuN2wtMy41LTMuNWEuNS41IDAgMCAxIDAtLjdsMy41LTMuNWEuNS41IDAgMCAxIC43LjdMOC43MSAxNS41aDE0LjU4bC0yLjY0LTIuNjVhLjUuNSAwIDAgMSAuNy0uN2wzLjUgMy41YS41LjUgMCAwIDEgMCAuN2wtMy41IDMuNWEuNS41IDAgMCAxLS43LS43bDIuNjQtMi42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNTcGxpdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNTcGxpdDE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCA0aDUuOTVhMi41IDIuNSAwIDAgMC0yLjQ1LTJIOHYyWk03IDJINC41YTIuNSAyLjUgMCAwIDAtMi40NSAySDdWMlptMSAxMmgzLjVhMi41IDIuNSAwIDAgMCAyLjQ1LTJIOHYyWm0tMS0ySDIuMDVhMi41IDIuNSAwIDAgMCAyLjQ1IDJIN3YtMlptLTUtMVY1aDEydjZIMlptNS01djRoMVY2SDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzU3BsaXQxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc1NwbGl0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk0zLjA5IDRIN1YzSDQuNWMtLjY1IDAtMS4yLjQyLTEuNDEgMVpNOCAzdjFoNC45MWMtLjItLjU4LS43Ni0xLTEuNDEtMUg4Wm01IDJIM3Y2aDEwVjVabS0uMDkgN0g4djFoMy41Yy42NSAwIDEuMi0uNDIgMS40MS0xWk03IDEzdi0xSDMuMDljLjIuNTguNzYgMSAxLjQxIDFIN1ptMC0zVjZoMXY0SDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzU3BsaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxzU3BsaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwIDZoN3YtLjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTB2M1ptNyA3VjdIM3Y2aDE0Wm0tNy01djRIOVY4aDFabTAgOWg0LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE0aC03djNabS0xLTNIM3YuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0g5di0zWm0wLThWM0g1LjVBMi41IDIuNSAwIDAgMCAzIDUuNVY2aDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzU3BsaXQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc1NwbGl0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTAgOHY0SDlWOGgxWm03LTIuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlabS0xMyA5VjE0aDV2Mkg1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk05IDR2Mkg0di0uNjRBMS41IDEuNSAwIDAgMSA1LjUgNEg5Wm0xIDJWNGg0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjZoLTZabTYgN0g0VjdoMTJ2NlptMCAxLjV2LjE0QTEuNSAxLjUgMCAwIDEgMTQuNSAxNkgxMHYtMmg2di41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc1NwbGl0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDZWxsc1NwbGl0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk02LjI1IDNIMTF2NEgzdi0uNzVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNaTTIxIDd2LS43NUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0gxMi41djRIMjFabS04LjUgMTRoNS4yNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjE3aC04LjV2NFpNMyA4LjV2N2gxOHYtN0gzWm05LjUgMS41djRIMTF2LTRoMS41Wk0zIDE3Ljc1VjE3aDh2NEg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDZWxsc1NwbGl0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNTcGxpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTEyLjUgMTBIMTF2NGgxLjV2LTRaTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTYuMjUgNC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVY3LjVIMTF2LTNINi4yNVptMTMuMjUgMTJoLTd2M2g1LjI1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNi41Wm0wLTEwLjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxMi41djNoN1Y2LjI1Wk00LjUgMTYuNXYxLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDExdi0zSDQuNVptMC0xLjVoMTVWOWgtMTV2NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNTcGxpdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNTcGxpdDI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMTQuNSA3LjVIMjV2LS43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0gxNC41djQuNVpNMTMgM0g2Ljc1QTMuNzUgMy43NSAwIDAgMCAzIDYuNzV2Ljc1aDEwVjNabTEuNSAyMmg2Ljc1QTMuNzUgMy43NSAwIDAgMCAyNSAyMS4yNXYtLjc1SDE0LjVWMjVaTTEzIDIwLjVIM3YuNzVBMy43NSAzLjc1IDAgMCAwIDYuNzUgMjVIMTN2LTQuNVpNMyA5aDIydjEwSDNWOVptMTAgMXY4aDEuNXYtOEgxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbHNTcGxpdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNlbGxzU3BsaXQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMyAxMHY4aDEuNXYtOEgxM1pNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNoMTQuNUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjYuNzVabTIwLjUgMGMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxNC41djNoOXYtLjc1Wk0xMyA3LjV2LTNINi43NWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjV2Ljc1SDEzWk00LjUgMTloMTlWOWgtMTl2MTBabTAgMS41di43NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNUgxM3YtM0g0LjVabTEwIDB2M2g2Ljc1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1di0uNzVoLTlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNlbGxzU3BsaXQzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ2VsbHNTcGxpdDMyTGlnaHQnLCBcIjMyXCIsIFtcIk03LjUgM0E0LjUgNC41IDAgMCAwIDMgNy41djE3QTQuNSA0LjUgMCAwIDAgNy41IDI5aDE3YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtMTdBNC41IDQuNSAwIDAgMCAyNC41IDNoLTE3Wm05IDI1di00SDI4di41YTMuNSAzLjUgMCAwIDEtMy41IDMuNWgtOFptLTEtNHY0aC04QTMuNSAzLjUgMCAwIDEgNCAyNC41VjI0aDExLjVabS41LTFINFY5aDI0djE0SDE2Wm0tLjUtMTl2NEg0di0uNUEzLjUgMy41IDAgMCAxIDcuNSA0aDhabTEgNFY0aDhBMy41IDMuNSAwIDAgMSAyOCA3LjVWOEgxNi41Wm0tLjUgMmMuMjggMCAuNS4yMi41LjV2MTFhLjUuNSAwIDAgMS0xIDB2LTExYzAtLjI4LjIyLS41LjUtLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNoZWNrZXIyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNoZWNrZXIyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1ptNSA1SDh2NGg0VjhabTEgNWg0djEuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTN2LTRaTTggNGg2LjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWMTJoMVY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOHYxWk01LjUgMTZIMTJ2MUg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWOGgxdjYuNWMwIC44My42NyAxLjUgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2hlY2tlcjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNoZWNrZXIyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNiA1LjVWMTFoMVY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIOXYxaDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNVpNMyA5djUuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMXYtMUg1LjVBMS41IDEuNSAwIDAgMSA0IDE0LjVWOUgzWm0yLjUtNkg4djRoNXY1aDR2Mi41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMnYtNEg3VjhIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM1ptOSAxM2MuNzggMCAxLjQyLS42IDEuNS0xLjM2VjEzaC0zdjNoMS41Wk0xMiA4SDh2NGg0VjhaTTQgN2gzVjRINS41Yy0uNzggMC0xLjQyLjYtMS41IDEuMzZWN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ29sdW1uVG9wQm90dG9tMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDb2x1bW5Ub3BCb3R0b20yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzIDE3aDEuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMTNoLTR2NFptMC01VjhoNHY0aC00Wm0tMSAwSDhWOGg0djRabS00IDRoNHYxSDh2LTFabS0xLTRWOEgzdjRoNFptLTQgMWg0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm0xMC02aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRaTTggNGg0VjNIOHYxWk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNvbHVtblRvcEJvdHRvbTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUNvbHVtblRvcEJvdHRvbTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoOWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk0xNC41IDE2SDEzdi0zaDNWMTQuNjRBMS41IDEuNSAwIDAgMSAxNC41IDE2Wk0xMiA4djRIOFY4aDRabTEgMGgzdjRoLTNWOFptMC00SDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNCA3VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3djNINFptMyAxdjRINFY4aDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUNvbHVtblRvcEJvdHRvbTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ29sdW1uVG9wQm90dG9tMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMjFoNXYtMS41aC01VjIxWm02LjUgMGgxLjc1YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWMTZoLTV2NVptNS02LjV2LTVoLTV2NWg1Wk0yMSA4VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNIMTZ2NWg1Wm0tNi41LTVoLTV2MS41aDVWM1pNOCAzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNVY4aDVWM1pNMyA5LjV2NWg1di01SDNaTTMgMTZ2MS43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMUg4di01SDNabTExLjUtNi41djVoLTV2LTVoNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ29sdW1uVG9wQm90dG9tMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ29sdW1uVG9wQm90dG9tMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNVpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjguNWg0di00SDYuMjVaTTQuNSAxMHY0aDR2LTRoLTRabTUuNSAwdjRoNHYtNGgtNFptNS41IDB2NGg0di00aC00Wm0wIDkuNWgyLjI1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNS41aC00djRabTAtMTFoNFY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djRabS0xMSA3djIuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIOC41di00aC00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDb3B5MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDb3B5MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zIDEzLjVBMy41IDMuNSAwIDAgMCA2LjUgMTdoNy44M2MtLjc3LjYzLTEuNzYgMS0yLjgzIDFoLTVBNC41IDQuNSAwIDAgMSAyIDEzLjV2LTVjMC0xLjA3LjM3LTIuMDYgMS0yLjgzdjcuODNaTTE1LjUgMTZIMTR2LTRoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41Wk0xNCA3djRoNFY3aC00Wm0tNSA0aDRWN0g5djRabTQgMUg5djRoNHYtNFpNOCA3djRINFY3aDRabTAgNUg0djEuNUEyLjUgMi41IDAgMCAwIDYuNSAxNkg4di00Wm0xMC02aC00VjJoMS41QTIuNSAyLjUgMCAwIDEgMTggNC41VjZabS01IDBWMkg5djRoNFpNOCA2VjJINi41QTIuNSAyLjUgMCAwIDAgNCA0LjVWNmg0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDb3B5MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ29weTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgMTMuNUEzLjUgMy41IDAgMCAwIDYuNSAxN2g3LjgzYy0uNzcuNjMtMS43NiAxLTIuODMgMWgtNUE0LjUgNC41IDAgMCAxIDIgMTMuNXYtNWMwLTEuMDcuMzctMi4wNiAxLTIuODN2Ny44M1ptMS43MyAxLjc3QTIuNSAyLjUgMCAwIDEgNCAxMy41di05QTIuNSAyLjUgMCAwIDEgNi41IDJoOUEyLjUgMi41IDAgMCAxIDE4IDQuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOWEyLjUgMi41IDAgMCAxLTEuNzctLjczWk0xNyA2VjQuNUExLjUgMS41IDAgMCAwIDE1LjY0IDNIMTR2M2gzWm0tNC0zSDl2M2g0VjNaTTggM0g2LjVBMS41IDEuNSAwIDAgMCA1IDQuMzZWNmgzVjNabTEgNHY0aDRWN0g5Wm0tNCA0aDNWN0g1djRabTQgMXYzaDR2LTNIOVptLTIuNSAzSDh2LTNINXYxLjVBMS41IDEuNSAwIDAgMCA2LjM2IDE1aC4xNFptNy41LTN2M2gxLjVhMS41IDEuNSAwIDAgMCAxLjUtMS4zNlYxMmgtM1ptMC01djRoM1Y3aC0zWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVDdXJzb3IxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUN1cnNvcjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMkg1djNIMnYtLjVaTTYgNVYyaDR2M0g2Wk0yIDZoM3Y0SDJWNlptNCAwdjRoMlY3LjVBMS41IDEuNSAwIDAgMSA5LjUgNkg2Wm04IDMuODQtMy0yLjk3VjZoM3YzLjg0Wk04IDExdjNINnYtM2gyWm0tNiAwaDN2M2gtLjVBMi41IDIuNSAwIDAgMSAyIDExLjVWMTFabTEyLTYuNVY1aC0zVjJoLjVBMi41IDIuNSAwIDAgMSAxNCA0LjVaTTkuODYgNy4xNUEuNS41IDAgMCAwIDkgNy41djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUN1cnNvcjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUN1cnNvcjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNXY1LjM0bC0xLS45OVY2aC0ydi44N2wtLjQ0LS40M2ExLjUgMS41IDAgMCAwLS41Ni0uMzVWNkg2djRoMnYxSDZ2MmgydjFINC41QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk01IDExSDN2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINXYtMlptMC01SDN2NGgyVjZabTEtMWg0VjNINnYyWk01IDNoLS41QzMuNjcgMyAzIDMuNjcgMyA0LjVWNWgyVjNabTggMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDExdjJoMlpNOS44NiA3LjE1QS41LjUgMCAwIDAgOSA3LjV2OGEuNS41IDAgMCAwIC45LjNsMi0yLjY1IDMuNS43OGEuNS41IDAgMCAwIC40NS0uODRsLTYtNS45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ3Vyc29yMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVDdXJzb3IyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEzLjU2IDkuNDQgMTYuMTUgMTJIMTdWOGgtNHYxLjA4Yy4yLjA4LjQuMi41Ni4zNlpNMTEgMTd2LTRIOHY0aDNabS45My03Ljg4LjA3LS4wM1Y4SDh2NGgzdi0xLjVjMC0uNi4zNy0xLjE1LjkzLTEuMzhaTTcgMTJWOEgzdjRoNFptLTQgMWg0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm0xMC02aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabS0xLTR2NEg4VjNoNFpNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3Wm01Ljg2IDcuMTVhLjUuNSAwIDAgMC0uODYuMzV2OGEuNS41IDAgMCAwIC45LjNsMi0yLjY1IDMuNS43OGEuNS41IDAgMCAwIC40NS0uODRsLTYtNS45NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ3Vyc29yMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ3Vyc29yMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMXYtMUg4di0zaDN2LTFIOFY4aDR2MS4wOWExLjUgMS41IDAgMCAxIDEgMFY4aDN2My44NWwxIDFWNS41Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgN0g4VjRoNHYzWm0xLTNIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk00IDdWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDd2M0g0Wm0zIDF2NEg0VjhoM1ptNS44NiAyLjE1YS41LjUgMCAwIDAtLjg2LjM1djhhLjUuNSAwIDAgMCAuOS4zbDItMi42NSAzLjUuNzhhLjUuNSAwIDAgMCAuNDUtLjg0bC02LTUuOTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUN1cnNvcjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ3Vyc29yMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMjFIMTR2LTVIOS41djVaTTIxIDE0LjVoLTEuMzFsLTIuNjQtMi45MmMtLjI4LS4zMS0uNjUtLjUtMS4wNS0uNTZWOS41aDV2NVptLTYuNS01djIuMDNjLS4zMS4zMi0uNS43NS0uNSAxLjIydjEuNzVIOS41di01aDVaTTIxIDhWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0gxNnY1aDVabS02LjUtNWgtNXY1aDVWM1pNOCAzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNVY4aDVWM1pNMyA5LjV2NWg1di01SDNaTTMgMTZ2MS43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMUg4di01SDNabTEyLjQ5LTMuOTVhLjc1Ljc1IDAgMCAxIC44Mi4ybDYuMzcgNy4wNmEuNzUuNzUgMCAwIDEtLjc0IDEuMjNsLTMuNTQtLjg4LTIuMDMgMy4wMWEuNzUuNzUgMCAwIDEtMS4zNy0uNDJ2LTkuNWMwLS4zMS4yLS41OS40OS0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlQ3Vyc29yMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlQ3Vyc29yMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2OS43TDE5LjI0IDE0aC4yNnYtNGgtNHYxLjAyYTEuNzUgMS43NSAwIDAgMC0xLjUgMS43M1YxMGgtNHY0aDR2MS41aC00djRoNFYyMUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTYuMjUgNC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVY4LjVoNHYtNEg2LjI1Wk00LjUgMTB2NGg0di00aC00Wm0xMS0xLjVoNFY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djRabS0xLjUtNGgtNHY0aDR2LTRabS05LjUgMTF2Mi4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg4LjV2LTRoLTRabTEwLjk5LTMuNDVhLjc1Ljc1IDAgMCAxIC44Mi4ybDYuMzcgNy4wNmEuNzUuNzUgMCAwIDEtLjc0IDEuMjNsLTMuNTQtLjg4LTIuMDMgMy4wMWEuNzUuNzUgMCAwIDEtMS4zNy0uNDJ2LTkuNWMwLS4zMS4yLS41OS40OS0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVmYXVsdDMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVmYXVsdDMyRmlsbGVkJywgXCIzMlwiLCBbXCJNMjIgMjloMi41YTQuNSA0LjUgMCAwIDAgNC41LTQuNVYyMmgtN3Y3Wm0wLTloN3YtOGgtN3Y4Wm0tMi04djhoLTh2LThoOFptMi0yaDdWNy41QTQuNSA0LjUgMCAwIDAgMjQuNSAzSDIydjdabS0yLTd2N2gtOFYzaDhabTAgMTl2N2gtOHYtN2g4Wm0tMTAtMnYtOEgzdjhoN1ptMC0xMFYzSDcuNUE0LjUgNC41IDAgMCAwIDMgNy41VjEwaDdabTAgMTl2LTdIM3YyLjVBNC41IDQuNSAwIDAgMCA3LjUgMjlIMTBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlZmF1bHQzMlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWZhdWx0MzJSZWd1bGFyJywgXCIzMlwiLCBbXCJNMyA3LjVBNC41IDQuNSAwIDAgMSA3LjUgM2gxN0E0LjUgNC41IDAgMCAxIDI5IDcuNXYxN2E0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTE3QTQuNSA0LjUgMCAwIDEgMyAyNC41di0xN1pNNy41IDVBMi41IDIuNSAwIDAgMCA1IDcuNVYxMWg2VjVINy41Wk01IDEzdjZoNnYtNkg1Wm04IDB2Nmg2di02aC02Wm04IDB2Nmg2di02aC02Wm0tMiA4aC02djZoNnYtNlptMiA2aDMuNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVWMjFoLTZ2NlptMC0xNmg2VjcuNUEyLjUgMi41IDAgMCAwIDI0LjUgNUgyMXY2Wm0tMi02aC02djZoNlY1Wk01IDIxdjMuNUEyLjUgMi41IDAgMCAwIDcuNSAyN0gxMXYtNkg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEZWxldGVDb2x1bW4xNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZURlbGV0ZUNvbHVtbjE2RmlsbGVkJywgXCIxNlwiLCBbXCJNOCAxLjVjLjI4IDAgLjUuMjIuNS41djMuMzhhMS41IDEuNSAwIDAgMC0uMDcuMDdMOCA1Ljg4bC0uNDQtLjQ0YTEuNSAxLjUgMCAwIDAtLjA2LS4wNlYyYzAtLjI4LjIyLS41LjUtLjVabS40MyA5LjA1LjA3LjA3VjE0YS41LjUgMCAwIDEtMSAwdi0zLjM4bC4wNi0uMDYuNDQtLjQ0LjQzLjQzWk0yLjUgMTRhLjUuNSAwIDAgMS0uNS0uNVYxMWgzdi41QTIuNSAyLjUgMCAwIDEgMi41IDE0Wk01IDZ2NEgyVjZoM1ptMC0xdi0uNUEyLjUgMi41IDAgMCAwIDIuNSAyYS41LjUgMCAwIDAtLjUuNVY1aDNabTguNS0zQTIuNSAyLjUgMCAwIDAgMTEgNC41VjVoM1YyLjVhLjUuNSAwIDAgMC0uNS0uNVpNMTEgNmgzdjRoLTNWNlptMyA1aC0zdi41YTIuNSAyLjUgMCAwIDAgMi41IDIuNS41LjUgMCAwIDAgLjUtLjVWMTFaTTYuMTUgNi4xNWMuMi0uMi41LS4yLjcgMEw4IDcuMjlsMS4xNS0xLjE0YS41LjUgMCAxIDEgLjcuN0w4LjcxIDhsMS4xNCAxLjE1YS41LjUgMCAwIDEtLjcuN0w4IDguNzEgNi44NSA5Ljg1YS41LjUgMCAwIDEtLjctLjdMNy4yOSA4IDYuMTUgNi44NWEuNS41IDAgMCAxIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZUNvbHVtbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZURlbGV0ZUNvbHVtbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTggMS41Yy4yOCAwIC41LjIyLjUuNXYzLjM4YTEuNSAxLjUgMCAwIDAtLjA3LjA3TDggNS44OGwtLjQ0LS40NGExLjUgMS41IDAgMCAwLS4wNi0uMDZWMmMwLS4yOC4yMi0uNS41LS41Wm0uNDMgOS4wNS4wNy4wN1YxNGEuNS41IDAgMCAxLTEgMHYtMy4zOGwuMDYtLjA2LjQ0LS40NC40My40M1pNMi41IDNDMy4zMyAzIDQgMy42NyA0IDQuNVY1SDIuNWEuNS41IDAgMCAwIDAgMUg0djRIMi41YS41LjUgMCAwIDAgMCAxSDR2LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41YS41LjUgMCAwIDAgMCAxQTIuNSAyLjUgMCAwIDAgNSAxMS41di03QTIuNSAyLjUgMCAwIDAgMi41IDJhLjUuNSAwIDAgMCAwIDFabTExLTFBMi41IDIuNSAwIDAgMCAxMSA0LjV2N2EyLjUgMi41IDAgMCAwIDIuNSAyLjUuNS41IDAgMCAwIDAtMSAxLjUgMS41IDAgMCAxLTEuNS0xLjVWMTFoMS41YS41LjUgMCAwIDAgMC0xSDEyVjZoMS41YS41LjUgMCAwIDAgMC0xSDEydi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWEuNS41IDAgMCAwIDAtMVpNNi4xNSA2LjE1Yy4yLS4yLjUtLjIuNyAwTDggNy4yOWwxLjE1LTEuMTRhLjUuNSAwIDEgMSAuNy43TDguNzEgOGwxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43TDggOC43MSA2Ljg1IDkuODVhLjUuNSAwIDAgMS0uNy0uN0w3LjI5IDggNi4xNSA2Ljg1YS41LjUgMCAwIDEgMC0uN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVsZXRlQ29sdW1uMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVDb2x1bW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTEwLjUgMi41YS41LjUgMCAwIDAtMSAwdjQuODhjLjEzLjEuMjQuMjIuMzYuMzRsLjE0LjE1LjE0LS4xNWMuMTItLjEyLjIzLS4yNC4zNi0uMzRWMi41Wm0tMSAxNXYtNC44OWMuMTMtLjEuMjQtLjIzLjM2LS4zNWwuMTQtLjE0LjE0LjE0Yy4xMi4xMi4yMy4yNC4zNi4zNXY0Ljg5YS41LjUgMCAwIDEtMSAwWk0yIDMuNWMwLS4yOC4yMi0uNS41LS41SDRhMiAyIDAgMCAxIDIgMnYySDJWMy41Wm0wIDEzVjEzaDR2MmEyIDIgMCAwIDEtMiAySDIuNWEuNS41IDAgMCAxLS41LS41Wk02IDh2NEgyVjhoNFptMTItNC41YS41LjUgMCAwIDAtLjUtLjVIMTZhMiAyIDAgMCAwLTIgMnYyaDRWMy41Wk0xNCAxM3YyYzAgMS4xLjkgMiAyIDJoMS41YS41LjUgMCAwIDAgLjUtLjVWMTNoLTRabS0yLjE1LTQuODVhLjUuNSAwIDAgMC0uNyAwTDEwIDkuMjkgOC44NSA4LjE1YS41LjUgMCAxIDAtLjcuN0w5LjI5IDEwbC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43TDEwIDEwLjcxbDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDEwLjcxIDEwbDEuMTQtMS4xNWEuNS41IDAgMCAwIDAtLjdaTTE4IDEyVjhoLTR2NGg0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEZWxldGVDb2x1bW4yMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVDb2x1bW4yMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xMC41IDIuNWEuNS41IDAgMCAwLTEgMHY0Ljg4Yy4xMy4xLjI0LjIyLjM2LjM0bC4xNC4xNS4xNC0uMTVjLjEyLS4xMi4yMy0uMjQuMzYtLjM0VjIuNVptLTEgMTV2LTQuODljLjEzLS4xLjI0LS4yMy4zNi0uMzVsLjE0LS4xNC4xNC4xNGMuMTIuMTIuMjMuMjQuMzYuMzV2NC44OWEuNS41IDAgMCAxLTEgMFpNMiAzLjVjMC0uMjguMjItLjUuNS0uNUg0YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgyLjVhLjUuNSAwIDAgMSAwLTFINGExIDEgMCAwIDAgMS0xdi0ySDIuNWEuNS41IDAgMCAxIDAtMUg1VjhIMi41YS41LjUgMCAwIDEgMC0xSDVWNWExIDEgMCAwIDAtMS0xSDIuNWEuNS41IDAgMCAxLS41LS41Wm0xNiAwYS41LjUgMCAwIDAtLjUtLjVIMTZhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDEuNWEuNS41IDAgMCAwIDAtMUgxNmExIDEgMCAwIDEtMS0xdi0yaDIuNWEuNS41IDAgMCAwIDAtMUgxNVY4aDIuNWEuNS41IDAgMCAwIDAtMUgxNVY1YTEgMSAwIDAgMSAxLTFoMS41YS41LjUgMCAwIDAgLjUtLjVabS02LjE1IDQuNjVhLjUuNSAwIDAgMC0uNyAwTDEwIDkuMjkgOC44NSA4LjE1YS41LjUgMCAxIDAtLjcuN0w5LjI5IDEwbC0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43TDEwIDEwLjcxbDEuMTUgMS4xNGEuNS41IDAgMCAwIC43LS43TDEwLjcxIDEwbDEuMTQtMS4xNWEuNS41IDAgMCAwIDAtLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZUNvbHVtbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlQ29sdW1uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMiAzLjc1VjhoLTVWNi4yNUMxNyA0LjQ1IDE4LjQ2IDMgMjAuMjUgM2gxYy40MSAwIC43NS4zNC43NS43NVptMCA1Ljc1djVoLTV2LTVoNVpNMjEuMjUgMjFjLjQxIDAgLjc1LS4zNC43NS0uNzVWMTZoLTV2MS43NWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDFaTTIgMjAuMjVjMCAuNDEuMzQuNzUuNzUuNzVoMUM1LjU1IDIxIDcgMTkuNTQgNyAxNy43NVYxNkgydjQuMjVaTTIgOS41djVoNXYtNUgyWm0wLTUuNzVWOGg1VjYuMjVDNyA0LjQ1IDUuNTQgMyAzLjc1IDNoLTFhLjc1Ljc1IDAgMCAwLS43NS43NVptOS4yNSAxMS43N3Y1LjczYS43NS43NSAwIDAgMCAxLjUgMHYtNS43M2ExLjgzIDEuODMgMCAwIDEtLjA4LS4wN2wtLjY3LS42Ny0uNjcuNjctLjA4LjA3Wm0wLTYuOC4wOC4wOC42Ny42Ny42Ny0uNjcuMDgtLjA3VjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjUuOThabS0xLjc4IDUuODFhLjc1Ljc1IDAgMCAxIDAtMS4wNkwxMC45NCAxMmwtMS40Ny0xLjQ3YS43NS43NSAwIDEgMSAxLjA2LTEuMDZMMTIgMTAuOTRsMS40Ny0xLjQ3YS43NS43NSAwIDEgMSAxLjA2IDEuMDZMMTMuMDYgMTJsMS40NyAxLjQ3YS43NS43NSAwIDEgMS0xLjA2IDEuMDZMMTIgMTMuMDZsLTEuNDcgMS40N2MtLjMuMy0uNzcuMy0xLjA2IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZUNvbHVtbjI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZURlbGV0ZUNvbHVtbjI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTIyIDMuNzVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTFBMy4yNSAzLjI1IDAgMCAwIDE3IDYuMjV2MTEuNWMwIDEuOCAxLjQ2IDMuMjUgMy4yNSAzLjI1aDFhLjc1Ljc1IDAgMCAwIDAtMS41aC0xYy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTUuNWgyLjc1YS43NS43NSAwIDAgMCAwLTEuNUgxOC41di00aDIuNzVhLjc1Ljc1IDAgMCAwIDAtMS41SDE4LjVWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxYy40MSAwIC43NS0uMzQuNzUtLjc1Wm0tMjAgMGMwLS40MS4zNC0uNzUuNzUtLjc1aDFDNS41NSAzIDcgNC40NiA3IDYuMjV2MTEuNUM3IDE5LjU1IDUuNTQgMjEgMy43NSAyMWgtMWEuNzUuNzUgMCAwIDEgMC0xLjVoMWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMTUuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNUg1LjV2LTRIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVINS41VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1aC0xQS43NS43NSAwIDAgMSAyIDMuNzVaTTEwLjk0IDEybC0xLjQ3IDEuNDdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxMiAxMy4wNmwxLjQ3IDEuNDdhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxMy4wNiAxMmwxLjQ3LTEuNDdhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkwxMiAxMC45NGwtMS40Ny0xLjQ3YS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMTAuOTQgMTJabS4zMS0zLjI3LjA4LjA3LjY3LjY3LjY3LS42Ny4wOC0uMDdWMi43NWEuNzUuNzUgMCAwIDAtMS41IDB2NS45OFptMCA2Ljh2NS43MmEuNzUuNzUgMCAwIDAgMS41IDB2LTUuNzNhMS44MyAxLjgzIDAgMCAxLS4wOC0uMDdsLS42Ny0uNjctLjY3LjY3LS4wOC4wN1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVsZXRlQ29sdW1uMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVDb2x1bW4yOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTEzLjI1IDI1LjI1di03LjczbC4wOC0uMDcuNjctLjY3LjY3LjY3LjA4LjA3djcuNzNhLjc1Ljc1IDAgMCAxLTEuNSAwWm0uMDgtMTQuNDVhMS44MyAxLjgzIDAgMCAwLS4wOC0uMDdWMi43NWEuNzUuNzUgMCAwIDEgMS41IDB2Ny45OGwtLjA4LjA3LS42Ny42Ny0uNjctLjY3Wm0tMS44NiA0LjY3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZMMTQgMTUuMDZsMS40NyAxLjQ3YS43NS43NSAwIDEgMCAxLjA2LTEuMDZMMTUuMDYgMTRsMS40Ny0xLjQ3YS43NS43NSAwIDEgMC0xLjA2LTEuMDZMMTQgMTIuOTRsLTEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDEyLjk0IDE0bC0xLjQ3IDEuNDdaTTQgMjVhMSAxIDAgMCAxLTEtMXYtNS41aDZ2Mi43NUEzLjc1IDMuNzUgMCAwIDEgNS4yNSAyNUg0Wm01LTE0djZIM3YtNmg2Wm0wLTQuMjVWOS41SDNWNGExIDEgMCAwIDEgMS0xaDEuMjVBMy43NSAzLjc1IDAgMCAxIDkgNi43NVpNMjIuNzUgM0EzLjc1IDMuNzUgMCAwIDAgMTkgNi43NVY5LjVoNlY0YTEgMSAwIDAgMC0xLTFoLTEuMjVaTTI1IDExaC02djZoNnYtNlptLTYgMTAuMjVWMTguNWg2VjI0YTEgMSAwIDAgMS0xIDFoLTEuMjVBMy43NSAzLjc1IDAgMCAxIDE5IDIxLjI1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEZWxldGVDb2x1bW4yOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVDb2x1bW4yOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0xMy4yNSAyNS4yNXYtNy43M2wuMDgtLjA3LjY3LS42Ny42Ny42Ny4wOC4wN3Y3LjczYS43NS43NSAwIDAgMS0xLjUgMFptLjA4LTE0LjQ1YTEuODMgMS44MyAwIDAgMC0uMDgtLjA3VjIuNzVhLjc1Ljc1IDAgMCAxIDEuNSAwdjcuOThsLS4wOC4wNy0uNjcuNjctLjY3LS42N1ptLTEuODYgNC42N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2TDE0IDE1LjA2bDEuNDcgMS40N2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2TDE1LjA2IDE0bDEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDE0IDEyLjk0bC0xLjQ3LTEuNDdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwxMi45NCAxNGwtMS40NyAxLjQ3Wk0zLjc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDEuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNVY5LjVIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVINy41djZIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVINy41djIuNzVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41QTMuNzUgMy43NSAwIDAgMCA5IDIxLjI1VjYuNzVBMy43NSAzLjc1IDAgMCAwIDUuMjUgM2gtMS41Wm0xOSAwQTMuNzUgMy43NSAwIDAgMCAxOSA2Ljc1djE0LjVBMy43NSAzLjc1IDAgMCAwIDIyLjc1IDI1aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTIuNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVWMTguNWg0Ljc1YS43NS43NSAwIDAgMCAwLTEuNUgyMC41di02aDQuNzVhLjc1Ljc1IDAgMCAwIDAtMS41SDIwLjVWNi43NWMwLTEuMjQgMS0yLjI1IDIuMjUtMi4yNWgyLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0yLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZVJvdzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDJoM3YzaC0uNUEyLjUgMi41IDAgMCAxIDIgMi41VjJabTggM0g2VjJoNHYzWm0xIDBoLjVBMi41IDIuNSAwIDAgMCAxNCAyLjVWMmgtM3YzWm0zIDguNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTF2M2gzdi0uNVpNMTAgMTF2M0g2di0zaDRabS01IDN2LTNoLS41QTIuNSAyLjUgMCAwIDAgMiAxMy41di41aDNabTQuODUtNy44NWMuMi4yLjIuNSAwIC43TDguNzEgOGwxLjE0IDEuMTVhLjUuNSAwIDAgMS0uNy43TDggOC43MSA2Ljg1IDkuODVhLjUuNSAwIDAgMS0uNy0uN0w3LjI5IDggNi4xNSA2Ljg1YS41LjUgMCAxIDEgLjctLjdMOCA3LjI5bDEuMTUtMS4xNGMuMi0uMi41LS4yLjcgMFpNMTQuNSA4YS41LjUgMCAwIDEtLjUuNWgtMy4zOGExLjQ4IDEuNDggMCAwIDAtLjA3LS4wN0wxMC4xMiA4bC40NC0uNDQuMDYtLjA2SDE0Yy4yOCAwIC41LjIyLjUuNVptLTkuMDUuNDMtLjA3LjA3SDJhLjUuNSAwIDAgMSAwLTFoMy4zOGwuMDYuMDYuNDQuNDQtLjQzLjQzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEZWxldGVSb3cxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVSb3cxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMyAyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExVjIuNWEuNS41IDAgMCAwLTEgMFY0SDZWMi41YS41LjUgMCAwIDAtMSAwVjRoLS41QTEuNSAxLjUgMCAwIDEgMyAyLjVhLjUuNSAwIDAgMC0xIDBBMi41IDIuNSAwIDAgMCA0LjUgNWg3QTIuNSAyLjUgMCAwIDAgMTQgMi41YS41LjUgMCAwIDAtMSAwWm0xIDExYTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtN0EyLjUgMi41IDAgMCAwIDIgMTMuNWEuNS41IDAgMCAwIDEgMGMwLS44My42Ny0xLjUgMS41LTEuNUg1djEuNWEuNS41IDAgMCAwIDEgMFYxMmg0djEuNWEuNS41IDAgMCAwIDEgMFYxMmguNWMuODMgMCAxLjUuNjcgMS41IDEuNWEuNS41IDAgMCAwIDEgMFpNOS44NSA2LjE1Yy4yLjIuMi41IDAgLjdMOC43MSA4bDEuMTQgMS4xNWEuNS41IDAgMCAxLS43LjdMOCA4LjcxIDYuODUgOS44NWEuNS41IDAgMCAxLS43LS43TDcuMjkgOCA2LjE1IDYuODVhLjUuNSAwIDEgMSAuNy0uN0w4IDcuMjlsMS4xNS0xLjE0Yy4yLS4yLjUtLjIuNyAwWk0xNC41IDhhLjUuNSAwIDAgMS0uNS41aC0zLjM4YTEuNDggMS40OCAwIDAgMC0uMDctLjA3TDEwLjEyIDhsLjQ0LS40NC4wNi0uMDZIMTRjLjI4IDAgLjUuMjIuNS41Wm0tOS4wNS40My0uMDcuMDdIMmEuNS41IDAgMCAxIDAtMWgzLjM4bC4wNi4wNi40NC40NC0uNDMuNDNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZVJvdzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xMiA2SDhWMmg0djRaTTMuNSAySDd2NEg1YTIgMiAwIDAgMS0yLTJWMi41YzAtLjI4LjIyLS41LjUtLjVaTTE1IDZoLTJWMmgzLjVjLjI4IDAgLjUuMjIuNS41VjRhMiAyIDAgMCAxLTIgMlptMS41IDEyYS41LjUgMCAwIDAgLjUtLjVWMTZhMiAyIDAgMCAwLTItMmgtMnY0aDMuNVpNMTIgMTh2LTRIOHY0aDRabS01IDBIMy41YS41LjUgMCAwIDEtLjUtLjVWMTZjMC0xLjEuOS0yIDItMmgydjRabTEwLjUtNy41YS41LjUgMCAwIDAgMC0xaC00Ljg5YTUgNSAwIDAgMS0uNDguNWwuMTQuMTNjLjEyLjEyLjI1LjI0LjM1LjM3aDQuODhabS0xNS0xaDQuODlhNSA1IDAgMCAwIC4zNC4zNWwuMTQuMTQtLjE0LjE0Yy0uMTIuMTItLjI1LjI0LS4zNS4zN0gyLjVhLjUuNSAwIDAgMSAwLTFabTkuMzUgMi4zNWEuNS41IDAgMCAwIDAtLjdMMTAuNzEgMTBsMS4xNC0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTAgOS4yOSA4Ljg1IDguMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMS4xNSAxLjE0Yy4yLjIuNS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVsZXRlUm93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuNSAyYy4yOCAwIC41LjIyLjUuNVY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjIuNWEuNS41IDAgMCAxIDEgMFY0YTEgMSAwIDAgMCAxIDFoMlYyLjVhLjUuNSAwIDAgMSAxIDBWNWg0VjIuNWEuNS41IDAgMCAxIDEgMFY1aDJhMSAxIDAgMCAwIDEtMVYyLjVjMC0uMjguMjItLjUuNS0uNVptMCAxNmEuNS41IDAgMCAwIC41LS41VjE2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjEuNWEuNS41IDAgMCAwIDEgMFYxNmExIDEgMCAwIDEgMS0xaDJ2Mi41YS41LjUgMCAwIDAgMSAwVjE1aDR2Mi41YS41LjUgMCAwIDAgMSAwVjE1aDJhMSAxIDAgMCAxIDEgMXYxLjVjMCAuMjguMjIuNS41LjVabTEtNy41YS41LjUgMCAwIDAgMC0xaC00Ljg5YTUgNSAwIDAgMS0uNDguNWwuMTQuMTNjLjEyLjEyLjI1LjI0LjM1LjM3aDQuODhabS0xNS0xaDQuODlhNSA1IDAgMCAwIC4zNC4zNWwuMTQuMTQtLjE0LjE0Yy0uMTIuMTItLjI1LjI0LS4zNS4zN0gyLjVhLjUuNSAwIDAgMSAwLTFabTkuMzUgMi4zNWEuNS41IDAgMCAwIDAtLjdMMTAuNzEgMTBsMS4xNC0xLjE1YS41LjUgMCAwIDAtLjctLjdMMTAgOS4yOSA4Ljg1IDguMTVhLjUuNSAwIDEgMC0uNy43TDkuMjkgMTBsLTEuMTQgMS4xNWEuNS41IDAgMCAwIC43LjdMMTAgMTAuNzFsMS4xNSAxLjE0Yy4yLjIuNS4yLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVsZXRlUm93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEZWxldGVSb3cyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTMuNzUgMkg4djVINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAzLjc1di0xYzAtLjQxLjM0LS43NS43NS0uNzVaTTkuNSAyaDV2NWgtNVYyWm0xMS41Ljc1YS43NS43NSAwIDAgMC0uNzUtLjc1SDE2djVoMS43NUMxOS41NSA3IDIxIDUuNTQgMjEgMy43NXYtMVpNMjAuMjUgMjJjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTFjMC0xLjgtMS40Ni0zLjI1LTMuMjUtMy4yNUgxNnY1aDQuMjVaTTkuNSAyMmg1di01aC01djVabS01Ljc1IDBIOHYtNUg2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDIwLjI1djFjMCAuNDEuMzQuNzUuNzUuNzVabTExLjc3LTkuMjVoNS43M2EuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNzNsLS4wNy4wOC0uNjcuNjcuNjcuNjcuMDcuMDhabS02LjggMCAuMDgtLjA4LjY3LS42Ny0uNjctLjY3YTEuODUgMS44NSAwIDAgMS0uMDctLjA4SDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuOThabTUuODEgMS43OGMtLjMuMy0uNzcuMy0xLjA2IDBMMTIgMTMuMDZsLTEuNDcgMS40N2EuNzUuNzUgMCAxIDEtMS4wNi0xLjA2TDEwLjk0IDEybC0xLjQ3LTEuNDdhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkwxMiAxMC45NGwxLjQ3LTEuNDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkwxMy4wNiAxMmwxLjQ3IDEuNDdjLjMuMy4zLjc3IDAgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGVsZXRlUm93MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMy43NSAyYS43NS43NSAwIDAgMC0uNzUuNzV2MUMzIDUuNTUgNC40NiA3IDYuMjUgN2gxMS41QzE5LjU1IDcgMjEgNS41NCAyMSAzLjc1di0xYS43NS43NSAwIDAgMC0xLjUgMHYxYzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxNS41VjIuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwVjUuNWgtNFYyLjc1YS43NS43NSAwIDAgMC0xLjUgMFY1LjVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1di0xQS43NS43NSAwIDAgMCAzLjc1IDJabTAgMjBhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTFDMyAxOC40NSA0LjQ2IDE3IDYuMjUgMTdoMTEuNWMxLjggMCAzLjI1IDEuNDYgMy4yNSAzLjI1djFhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xYzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djIuNzVhLjc1Ljc1IDAgMCAxLTEuNSAwVjE4LjVoLTR2Mi43NWEuNzUuNzUgMCAwIDEtMS41IDBWMTguNUg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NXYxYzAgLjQxLS4zNC43NS0uNzUuNzVaTTEyIDEzLjA2bDEuNDcgMS40N2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2TDEzLjA2IDEybDEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDEyIDEwLjk0bC0xLjQ3LTEuNDdhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNkwxMC45NCAxMmwtMS40NyAxLjQ3YS43NS43NSAwIDEgMCAxLjA2IDEuMDZMMTIgMTMuMDZabS0zLjI3LS4zMS4wNy0uMDguNjctLjY3LS42Ny0uNjdhMS44NSAxLjg1IDAgMCAxLS4wNy0uMDhIMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNS45OFptNi44IDBoNS43MmEuNzUuNzUgMCAwIDAgMC0xLjVoLTUuNzNsLS4wNy4wOC0uNjcuNjcuNjcuNjcuMDcuMDhaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZVJvdzI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGVsZXRlUm93MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDRhMSAxIDAgMCAxIDEtMWg1LjV2Nkg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDUuMjVWNFptMTQgNWgtNlYzaDZ2NlptNC4yNSAwSDE4LjVWM0gyNGExIDEgMCAwIDEgMSAxdjEuMjVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDlaTTI1IDIyLjc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAxOUgxOC41djZIMjRhMSAxIDAgMCAwIDEtMXYtMS4yNVpNMTcgMTloLTZ2Nmg2di02Wk02Ljc1IDE5SDkuNXY2SDRhMSAxIDAgMCAxLTEtMXYtMS4yNUEzLjc1IDMuNzUgMCAwIDEgNi43NSAxOVptLTQtNS43NWg3LjczbC4wNy4wOC42Ny42Ny0uNjcuNjctLjA3LjA4SDIuNzVhLjc1Ljc1IDAgMCAxIDAtMS41Wm0xNC40NS4wOC4wNy0uMDhoNy45OGEuNzUuNzUgMCAwIDEgMCAxLjVoLTcuOThhMS44MyAxLjgzIDAgMCAwLS4wNy0uMDhsLS42Ny0uNjcuNjctLjY3Wm0tNC42Ny0xLjg2YS43NS43NSAwIDEgMC0xLjA2IDEuMDZMMTIuOTQgMTRsLTEuNDcgMS40N2EuNzUuNzUgMCAxIDAgMS4wNiAxLjA2TDE0IDE1LjA2bDEuNDcgMS40N2EuNzUuNzUgMCAxIDAgMS4wNi0xLjA2TDE1LjA2IDE0bDEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDE0IDEyLjk0bC0xLjQ3LTEuNDdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURlbGV0ZVJvdzI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZURlbGV0ZVJvdzI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIuNzUgMTMuMjVoNy43M2wuMDcuMDguNjcuNjctLjY3LjY3LS4wNy4wOEgyLjc1YS43NS43NSAwIDAgMSAwLTEuNVptMTQuNDUuMDguMDctLjA4aDcuOThhLjc1Ljc1IDAgMCAxIDAgMS41aC03Ljk4YTEuODMgMS44MyAwIDAgMC0uMDctLjA4bC0uNjctLjY3LjY3LS42N1ptLTQuNjctMS44NmEuNzUuNzUgMCAxIDAtMS4wNiAxLjA2TDEyLjk0IDE0bC0xLjQ3IDEuNDdhLjc1Ljc1IDAgMSAwIDEuMDYgMS4wNkwxNCAxNS4wNmwxLjQ3IDEuNDdhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNkwxNS4wNiAxNGwxLjQ3LTEuNDdhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNkwxNCAxMi45NGwtMS40Ny0xLjQ3Wk0yNSAzLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxLjVjMCAxLjI0LTEgMi4yNS0yLjI1IDIuMjVIMTguNVYzLjc1YS43NS43NSAwIDAgMC0xLjUgMFY3LjVoLTZWMy43NWEuNzUuNzUgMCAwIDAtMS41IDBWNy41SDYuNzVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1di0xLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSA5aDE0LjVBMy43NSAzLjc1IDAgMCAwIDI1IDUuMjV2LTEuNVptMCAxOUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgMTlINi43NUEzLjc1IDMuNzUgMCAwIDAgMyAyMi43NXYyLjVhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yLjVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVIOS41djQuNzVhLjc1Ljc1IDAgMCAwIDEuNSAwVjIwLjVoNnY0Ljc1YS43NS43NSAwIDAgMCAxLjUgMFYyMC41aDIuNzVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2Mi41YS43NS43NSAwIDAgMCAxLjUgMHYtMi41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEaXNtaXNzMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEaXNtaXNzMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41VjVoM1YyaC0uNVpNNiAydjNoNFYySDZaTTUgNkgydjRoM1Y2Wm0xIDEuMzRjLjM3LS41Mi44Mi0uOTcgMS4zNC0xLjM0SDZ2MS4zNFpNNSAxMUgydi41QTIuNSAyLjUgMCAwIDAgNC41IDE0SDV2LTNabTktNnYtLjVBMi41IDIuNSAwIDAgMCAxMS41IDJIMTF2M2gzWm0xIDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDEwLjUgOS43OSA5LjM1IDguNjVhLjUuNSAwIDEgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGlzbWlzczE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZURpc21pc3MxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2MS43NkE1LjQ4IDUuNDggMCAwIDAgNy4zNCA2SDZ2MS4zNEE1LjQ3IDUuNDcgMCAwIDAgNi4yNiAxNEg0LjVBMi41IDIuNSAwIDAgMSAyIDExLjV2LTdaTTUgMTFIM3YuNWMwIC44My42NyAxLjUgMS41IDEuNUg1di0yWm0wLTVIM3Y0aDJWNlptMS0xaDRWM0g2djJaTTUgM2gtLjVDMy42NyAzIDMgMy42NyAzIDQuNVY1aDJWM1ptOCAydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTF2MmgyWm0yIDUuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTIuNjUtMS4xNWEuNS41IDAgMCAwLS43LS43TDEwLjUgOS43OSA5LjM1IDguNjVhLjUuNSAwIDEgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1IDEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGlzbWlzczIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzczIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMgN2g0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tNiA1VjhIM3Y0aDRabTIuNiAwQTUuNTIgNS41MiAwIDAgMSAxMiA5LjZWOEg4djRoMS42Wm00LjktM2MuOSAwIDEuNzUuMjIgMi41LjZWOGgtNHYxLjJjLjQ4LS4xMy45OC0uMiAxLjUtLjJaTTkgMTQuNWMwLS41Mi4wNy0xLjAyLjItMS41SDh2NGgxLjZjLS4zOC0uNzUtLjYtMS42LS42LTIuNVpNNyAxM0gzdjEuNUEyLjUgMi41IDAgMCAwIDUuNSAxN0g3di00Wm01LTZWM0g4djRoNFpNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3Wm0xMiAxMS41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tMy44IDAgMS4xNS0xLjE1YS41LjUgMCAwIDAtLjctLjdsLTEuMTUgMS4xNC0xLjE1LTEuMTRhLjUuNSAwIDAgMC0uNy43bDEuMTQgMS4xNS0xLjE0IDEuMTVhLjUuNSAwIDAgMCAuNy43bDEuMTUtMS4xNCAxLjE1IDEuMTRhLjUuNSAwIDAgMCAuNy0uN2wtMS4xNC0xLjE1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEaXNtaXNzMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzczIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMTYtLjMyLS4zLS42NS0uNC0xSDh2LTNoMS4yYy4xLS4zNS4yNC0uNjguNC0xSDhWOGg0djEuNmMuMzItLjE2LjY1LS4zIDEtLjRWOGgzdjEuMmMuMzUuMS42OC4yNCAxIC40VjUuNVptLTEzIDlWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTEyIDR2M0g4VjRoNFptMSAwSDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNyA0djNINFY1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN1ptMCA0djRINFY4aDNabTEyIDYuNWE0LjUgNC41IDAgMSAxLTkgMCA0LjUgNC41IDAgMCAxIDkgMFptLTMuOCAwIDEuMTUtMS4xNWEuNS41IDAgMCAwLS43LS43bC0xLjE1IDEuMTQtMS4xNS0xLjE0YS41LjUgMCAwIDAtLjcuN2wxLjE0IDEuMTUtMS4xNCAxLjE1YS41LjUgMCAwIDAgLjcuN2wxLjE1LTEuMTQgMS4xNSAxLjE0YS41LjUgMCAwIDAgLjctLjdsLTEuMTQtMS4xNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGlzbWlzczI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzczI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOS41IDIxaDIuNTJhNi40NyA2LjQ3IDAgMCAxLS44NS01SDkuNXY1Wk0yMSA5LjV2Mi41MmE2LjQ3IDYuNDcgMCAwIDAtNS0uODVWOS41aDVabS02LjUgMHYyLjIzYTYuNTMgNi41MyAwIDAgMC0yLjc3IDIuNzdIOS41di01aDVaTTIxIDhWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0gxNnY1aDVabS02LjUtNWgtNXY1aDVWM1pNOCAzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNVY4aDVWM1pNMyA5LjV2NWg1di01SDNaTTMgMTZ2MS43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMUg4di01SDNabTIwIDEuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwWm0tNy4xNS0yLjM1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdsLTEuNjQtMS42NSAxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMS42NSAxLjY0LTEuNjUtMS42NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRGlzbWlzczI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZURpc21pc3MyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY1Ljc3Yy0uNDYtLjMtLjk3LS41My0xLjUtLjdWMTBoLTR2MS4zMWMtLjUzLjE4LTEuMDQuNDItMS41LjcxVjEwaC00djRoMi4wMmMtLjMuNDYtLjUzLjk3LS43IDEuNUgxMHY0aDEuMzFjLjE4LjUzLjQyIDEuMDQuNzEgMS41SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWNi4yNVpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjguNWg0di00SDYuMjVaTTQuNSAxMHY0aDR2LTRoLTRabTExLTEuNWg0VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDE1LjV2NFptLTEuNS00aC00djRoNHYtNFptLTkuNSAxMXYyLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDguNXYtNGgtNFptMTguNSAyYTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBabS01LjUtLjctMS42NS0xLjY1YS41LjUgMCAwIDAtLjcuN2wxLjY0IDEuNjUtMS42NCAxLjY1YS41LjUgMCAwIDAgLjcuN2wxLjY1LTEuNjQgMS42NSAxLjY0YS41LjUgMCAwIDAgLjctLjdsLTEuNjQtMS42NSAxLjY0LTEuNjVhLjUuNSAwIDAgMC0uNy0uN2wtMS42NSAxLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEaXNtaXNzMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVEaXNtaXNzMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM0g5LjV2Ni41SDNWNi43NVpNMyAxMXY2aDYuNXYtNkgzWm0wIDcuNXYyLjc1QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1SDkuNXYtNi41SDNabTggNi41aDMuNWE3LjQ3IDcuNDcgMCAwIDEtMS4yMy02LjVIMTFWMjVabTE0LTE0djMuNWE3LjQ3IDcuNDcgMCAwIDAtNi41LTEuMjNWMTFIMjVabS04IDB2Mi44N0E3LjUzIDcuNTMgMCAwIDAgMTMuODcgMTdIMTF2LTZoNlptOC0xLjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0gxOC41djYuNUgyNVpNMTcgM2gtNnY2LjVoNlYzWm0xMCAxNy41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDBabS05LjE1LTMuMzVhLjUuNSAwIDAgMC0uNy43bDIuNjQgMi42NS0yLjY0IDIuNjVhLjUuNSAwIDAgMCAuNy43bDIuNjUtMi42NCAyLjY1IDIuNjRhLjUuNSAwIDAgMCAuNy0uN2wtMi42NC0yLjY1IDIuNjQtMi42NWEuNS41IDAgMCAwLS43LS43bC0yLjY1IDIuNjQtMi42NS0yLjY0WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVEaXNtaXNzMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzczI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2Ny43NWE3LjQ5IDcuNDkgMCAwIDAtMS41LS44OFYxMWgtNXYyLjI3Yy0uNTMuMTQtMS4wMy4zNS0xLjUuNlYxMWgtNnY2aDIuODdjLS4yNS40Ny0uNDYuOTctLjYgMS41SDExdjVoMi42MmMuMjQuNTQuNTMgMS4wNC44OCAxLjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk00LjUgMTguNXYyLjc1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1SDkuNXYtNWgtNVptNS0xLjV2LTZoLTV2Nmg1Wm0xNC0xMC4yNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxOC41djVoNVY2Ljc1Wk0xNyA0LjVoLTZ2NWg2di01Wm0tNy41IDBINi43NWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjVWOS41aDV2LTVabTE3LjUgMTZhNi41IDYuNSAwIDEgMS0xMyAwIDYuNSA2LjUgMCAwIDEgMTMgMFptLTkuMTUtMy4zNWEuNS41IDAgMCAwLS43LjdsMi42NCAyLjY1LTIuNjQgMi42NWEuNS41IDAgMCAwIC43LjdsMi42NS0yLjY0IDIuNjUgMi42NGEuNS41IDAgMCAwIC43LS43bC0yLjY0LTIuNjUgMi42NC0yLjY1YS41LjUgMCAwIDAtLjctLjdsLTIuNjUgMi42NC0yLjY1LTIuNjRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZURpc21pc3MzMkxpZ2h0ID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRGlzbWlzczMyTGlnaHQnLCBcIjMyXCIsIFtcIk0zIDcuNUE0LjUgNC41IDAgMCAxIDcuNSAzaDE3QTQuNSA0LjUgMCAwIDEgMjkgNy41djguODhhOS4wMyA5LjAzIDAgMCAwLTEtLjY4VjEyaC03djIuODVjLS4zNC4xLS42OC4yMi0xIC4zNlYxMmgtOHY4aDMuMmMtLjEzLjMyLS4yNS42Ni0uMzUgMUgxMnY3aDMuN2MuMi4zNS40My42OC42OCAxSDcuNUE0LjUgNC41IDAgMCAxIDMgMjQuNXYtMTdaTTQgMjF2My41QTMuNSAzLjUgMCAwIDAgNy41IDI4SDExdi03SDRabTAtMWg3di04SDR2OFpNNy41IDRBMy41IDMuNSAwIDAgMCA0IDcuNVYxMWg3VjRINy41Wk0yMCA0aC04djdoOFY0Wm0xIDB2N2g3VjcuNUEzLjUgMy41IDAgMCAwIDI0LjUgNEgyMVptMi41IDEyYTcuNSA3LjUgMCAxIDEgMCAxNSA3LjUgNy41IDAgMCAxIDAtMTVabTIuNzIgMy43Mi0yLjcyIDIuNzItMi43Mi0yLjcyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMi43MiAyLjcyLTIuNzIgMi43MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDIuNzItMi43MiAyLjcyIDIuNzJhLjc1Ljc1IDAgMSAwIDEuMDYtMS4wNmwtMi43Mi0yLjcyIDIuNzItMi43MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVFZGl0MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVFZGl0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk00LjUgMkEyLjUgMi41IDAgMCAwIDIgNC41VjVoM1YyaC0uNVpNNiAydjNoNFYySDZaTTUgNkgydjRoM1Y2Wm0xIDRWNmg0di45NEw2Ljk0IDEwSDZabS0xIDFIMnYuNUEyLjUgMi41IDAgMCAwIDQuNSAxNEg1di0zWm05LTZ2LS41QTIuNSAyLjUgMCAwIDAgMTEuNSAySDExdjNoM1ptLTcuMDIgNi4zOCA0LjgzLTQuODNhMS44NyAxLjg3IDAgMSAxIDIuNjQgMi42NGwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDEtMS4wMi41OGwtMS41LjM3YS44OS44OSAwIDAgMS0xLjA3LTEuMDdsLjM3LTEuNWMuMS0uMzkuMy0uNzQuNTgtMS4wMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRWRpdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUVkaXQxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2LjYzYTIuODcgMi44NyAwIDAgMC0yLjkuNzFMMTAgNi45NFY2SDZ2NGguOTRsLS42Ny42N2MtLjQuNDEtLjcuOTItLjg0IDEuNDlsLS4zNyAxLjVjLS4wMy4xMS0uMDUuMjMtLjA2LjM0aC0uNUEyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1pNNSAxMUgzdi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDV2LTJabTAtNUgzdjRoMlY2Wm0xLTFoNFYzSDZ2MlpNNSAzaC0uNUMzLjY3IDMgMyAzLjY3IDMgNC41VjVoMlYzWm04IDJ2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMXYyaDJabS02LjAyIDYuMzggNC44My00LjgzYTEuODcgMS44NyAwIDEgMSAyLjY0IDIuNjRsLTQuODMgNC44M2EyLjIgMi4yIDAgMCAxLTEuMDIuNThsLTEuNS4zN2EuODkuODkgMCAwIDEtMS4wNy0xLjA3bC4zNy0xLjVjLjEtLjM5LjMtLjc0LjU4LTEuMDJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUVkaXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUVkaXQyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE4LjQ1IDEzLjJhMS44NyAxLjg3IDAgMCAwLTIuNjQtMi42NWwtNC44MyA0LjgzYTIuMiAyLjIgMCAwIDAtLjU4IDEuMDJsLS4zNyAxLjVhLjg5Ljg5IDAgMCAwIDEuMDggMS4wN2wxLjUtLjM3Yy4zOC0uMS43My0uMyAxLjAxLS41OGw0LjgzLTQuODNaTTE1LjEgOS44M2MuNTMtLjUzIDEuMjEtLjggMS45LS44NFY4aC00djMuOTRsMi4xLTIuMVptLTQuODMgNC44M0wxMS45NCAxM0g4djRoMS4yMmwuMjEtLjg1YTMuMiAzLjIgMCAwIDEgLjg0LTEuNDhaTTEyIDEySDhWOGg0djRabS01IDBWOEgzdjRoNFptLTQgMWg0djRINS41QTIuNSAyLjUgMCAwIDEgMyAxNC41VjEzWm0xMC02aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabS0xLTR2NEg4VjNoNFpNNyAzdjRIM1Y1LjVBMi41IDIuNSAwIDAgMSA1LjUgM0g3WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVFZGl0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRWRpdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoMy43MmwuMjEtLjg1LjA1LS4xNUg4di0zaDMuOTRMMTMgMTEuOTRWOGgzdjEuMjNjLjMyLS4xNC42Ni0uMjEgMS0uMjNWNS41Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgOHY0SDhWOGg0Wm0wLTFIOFY0aDR2M1ptMS0zSDE0LjY0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdoLTNWNFpNNCA3VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNEg3djNINFptMyAxdjRINFY4aDNabTguOCAyLjU1LTQuODIgNC44M2EyLjIgMi4yIDAgMCAwLS41OCAxLjAybC0uMzcgMS41YS44OS44OSAwIDAgMCAxLjA4IDEuMDdsMS41LS4zN2MuMzgtLjEuNzMtLjMgMS4wMS0uNThsNC44My00LjgzYTEuODcgMS44NyAwIDAgMC0yLjY0LTIuNjRaTTE0LjY2IDE3IDE3IDE0LjY1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVFZGl0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVFZGl0MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0xMi40OSAxOS44MmMuMTItLjQ3LjM2LS45LjctMS4yNWw1LjktNS45YTIuMjcgMi4yNyAwIDAgMSAzLjI0IDBjLjkuOS45IDIuMzQgMCAzLjIzbC01LjkgNS45Yy0uMzUuMzUtLjc4LjYtMS4yNS43bC0xLjgzLjQ3Yy0uOC4yLTEuNTItLjUzLTEuMzItMS4zMmwuNDYtMS44M1ptLTMgMS4xOGgxLjY3bC4zNi0xLjQyYy4xNi0uNjUuNS0xLjI0Ljk3LTEuNzJMMTQuMzUgMTZIOS41djVaTTE2IDkuNXY0Ljg1bDIuNC0yLjM5YTMuMjggMy4yOCAwIDAgMSAyLjYtLjk1VjkuNWgtNVpNMjEgOFY2LjI1QzIxIDQuNDUgMTkuNTUgMyAxNy43NiAzSDE2djVoNVptLTYuNS01aC01djVoNVYzWk04IDNINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1VjhoNVYzWk0zIDkuNXY1aDV2LTVIM1pNMyAxNnYxLjc1QzMgMTkuNTUgNC40NSAyMSA2LjI1IDIxSDh2LTVIM1ptMTEuNS02LjV2NWgtNXYtNWg1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVFZGl0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRWRpdDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NSAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NSAyMSA2LjI1djQuNzZhMy4zIDMuMyAwIDAgMC0xLjUuMjJWMTBoLTR2NGguODVMMTQgMTYuMzV2LS44NWgtNHY0aDEuNTRsLS4wMi4wOC0uMzYgMS40Mkg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTYuMjUgNC41Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVY4LjVoNHYtNEg2LjI1Wk00LjUgMTB2NGg0di00aC00Wm01LjUgMHY0aDR2LTRoLTRabTUuNS0xLjVoNFY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djRabS0xLjUtNGgtNHY0aDR2LTRabS05LjUgMTF2Mi4yNWMwIC45Ny43OCAxLjc1IDEuNzUgMS43NUg4LjV2LTRoLTRabTE1LjI2LTMuM2EyLjI3IDIuMjcgMCAwIDAtLjY2LjQ3bC01LjkgNS45YTIuNjggMi42OCAwIDAgMC0uNzEgMS4yNWwtLjQ2IDEuODNjLS4yLjguNTIgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDUuOS01LjlhMi4yOSAyLjI5IDAgMCAwLTIuNTctMy43WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVFZGl0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVFZGl0MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM0g5LjV2Ni41SDNWNi43NVpNMyAxMXY2aDYuNXYtNkgzWm0wIDcuNXYyLjc1QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1SDkuNXYtNi41SDNabTggNi41aDIuMTdsLjM1LTEuNDJjLjE2LS42NS41LTEuMjQuOTctMS43MmwyLjUxLTIuNXYtLjg2aC02VjI1Wm0xNC0xNHYyLjAxYy0uOTMtLjA4LTEuOS4yNC0yLjYuOTVMMTkuMzUgMTdoLS44NnYtNkgyNVptMC0xLjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0gxOC41djYuNUgyNVpNMTcgM2gtNnY2LjVoNlYzWm0wIDh2NmgtNnYtNmg2Wm02LjEgMy42Ny03LjkgNy45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ3IDEuODNjLS4yLjguNTMgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDcuOS03LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRWRpdDI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUVkaXQyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM2gxNC41QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1djYuMjZhMy4zIDMuMyAwIDAgMC0xLjUuMjJWMTFoLTV2NmguODZMMTcgMTkuMzZ2LS44NmgtNnY1aDIuNTRsLS4wMi4wOC0uMzUgMS40Mkg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjYuNzVaTTQuNSAxOC41djIuNzVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVIOS41di01aC01Wm01LTEuNXYtNmgtNXY2aDVabTcuNSAwdi02aC02djZoNlptNi41LTEwLjI1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDE4LjV2NWg1VjYuNzVaTTE3IDQuNWgtNnY1aDZ2LTVabS03LjUgMEg2Ljc1Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNVY5LjVoNXYtNVptMTMuNiAxMC4xNy03LjkgNy45Yy0uMzUuMzUtLjYuNzgtLjcgMS4yNWwtLjQ3IDEuODNjLS4yLjguNTMgMS41MiAxLjMyIDEuMzJsMS44My0uNDZjLjQ3LS4xMi45LS4zNiAxLjI1LS43bDcuOS03LjlhMi4yOSAyLjI5IDAgMCAwLTMuMjMtMy4yNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW4xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzIDExLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEwdi0ySDZ2M2g1LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTEuNSAySDZ2M2g0VjNoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41djdaTTEwIDEwVjZINnY0aDRaTTUgNVYyaC0uNUEyLjUgMi41IDAgMCAwIDIgNC41VjVoM1pNMiA2djRoM1Y2SDJabTAgNS41VjExaDN2M2gtLjVBMi41IDIuNSAwIDAgMSAyIDExLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbjE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbjE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTExLjUgMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di03QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03QTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGg3Wk02IDNoNHYySDZWM1ptMCAzaDR2NEg2VjZabTAgNWg0djJINnYtMlptLTEtMUgzVjZoMnY0Wm0wLTVIM3YtLjVDMyAzLjY3IDMuNjcgMyA0LjUgM0g1djJabS0yIDYuNVYxMWgydjJoLS41QTEuNSAxLjUgMCAwIDEgMyAxMS41Wk0xMS41IDNjLjgzIDAgMS41LjY3IDEuNSAxLjV2N2MwIC44My0uNjcgMS41LTEuNSAxLjVIMTFWM2guNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW4yMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2IDE0LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDEydi0zSDh2NGg2LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDh2NGg0VjRoMi41Yy44MyAwIDEuNS42NyAxLjUgMS41djlaTTUuNSAzSDd2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzWk03IDEyVjhIM3Y0aDRabTUtNEg4djRoNFY4Wm0tOSA1aDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTUuNSAxN0EyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlBMi41IDIuNSAwIDAgMSAxNyA1LjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlaTTEyIDRIOHYzaDRWNFpNNyA0SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2VjdoM1Y0Wm0xIDR2NGg0VjhIOFptLTQgNGgzVjhINHY0Wm00IDF2M2g0di0zSDhabS0yLjUgM0g3di0zSDR2MS41YzAgLjc4LjYgMS40MiAxLjM2IDEuNWguMTRabTktMTJIMTN2MTJoMS41Yy43OCAwIDEuNDItLjYgMS41LTEuMzZWNS41YzAtLjc4LS42LTEuNDItMS4zNi0xLjVoLS4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW4yNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTggM0g2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjVWOGg1VjNabTAgNi41SDN2NWg1di01Wm0xLjUgNXYtNWg1djVoLTVabTAgMS41aDV2My41aDMuMjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDE0LjVWOGgtNVYzaDguMjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjV2MTEuNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDkuNXYtNVpNOCAxNkgzdjEuNzVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFIOHYtNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplQ29sdW1uMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjEgMTcuNzVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXYxMS41Wm0tMy4yNSAxLjc1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djE1aDIuMjVaTTEwIDQuNXY0aDR2LTRoLTRabS0xLjUgMEg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVY4LjVoNHYtNFptMCA1LjVoLTR2NGg0di00Wm0xLjUgNGg0di00aC00djRabTAgMS41djRoNHYtNGgtNFptLTEuNSAwaC00djIuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIOC41di00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVGcmVlemVDb2x1bW4yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjMuNSAyMS4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxN3YtNWgtNlYyNWgxMC4yNUEzLjc1IDMuNzUgMCAwIDAgMjUgMjEuMjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0gxMXY2LjVoNnYtNWg0LjI1YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djE0LjVaTTYuNzUgM0g5LjV2Ni41SDNWNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzWk0zIDE3di02aDYuNXY2SDNabTAgNC4yNVYxOC41aDYuNVYyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1Wk0xMSAxMXY2aDZ2LTZoLTZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTIxLjI1IDI1QTMuNzUgMy43NSAwIDAgMCAyNSAyMS4yNVY2Ljc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzSDYuNzVBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDE0LjVaTTE3IDQuNXY1aC02di01aDZaTTExIDE3di02aDZ2NmgtNlpNOS41IDQuNXY1aC01VjYuNzVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVIOS41Wk00LjUgMTd2LTZoNXY2aC01Wm0yLjI1IDYuNWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVWMTguNWg1djVINi43NVptMTAuMjUgMGgtNnYtNWg2djVabTQuMjUtMTljMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjV2MTQuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxOC41di0xOWgyLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVGcmVlemVDb2x1bW5BbmRSb3cxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvdzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNXY3QTIuNSAyLjUgMCAwIDAgNC41IDE0SDEwdi0zSDZ2Mkg0LjVBMS41IDEuNSAwIDAgMSAzIDExLjV2LTdDMyAzLjY3IDMuNjcgMyA0LjUgM2g3Yy44MyAwIDEuNS42NyAxLjUgMS41VjZoLTJ2NGgzVjQuNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtN1pNNiA2djRoNFY2SDZabTUgNXYzaC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxMWgtM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uQW5kUm93MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplQ29sdW1uQW5kUm93MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiA0LjVBMi41IDIuNSAwIDAgMSA0LjUgMmg3QTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03Wk02IDEzaDR2LTJINnYyWm0wLTNoNFY2SDZ2NFptNy00aC0ydjRoMlY2Wm0wIDVoLTJ2MmguNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTFabS04LjUgMkg1VjVoOHYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC03QzMuNjcgMyAzIDMuNjcgMyA0LjV2N2MwIC44My42NyAxLjUgMS41IDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uQW5kUm93MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW5BbmRSb3cyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTUuNSAzQTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMnYtNEg4djNINS41QTEuNSAxLjUgMCAwIDEgNCAxNC41di05QzQgNC42NyA0LjY3IDQgNS41IDRoOWMuODMgMCAxLjUuNjcgMS41IDEuNVY4aC0zdjRoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlabTkgMTRIMTN2LTRoNHYxLjVhMi41IDIuNSAwIDAgMS0yLjUgMi41Wk04IDEyaDRWOEg4djRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvdzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvdzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE0LjUgM0EyLjUgMi41IDAgMCAxIDE3IDUuNXY5YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtOUEyLjUgMi41IDAgMCAxIDMgMTQuNXYtOUEyLjUgMi41IDAgMCAxIDUuNSAzaDlaTTggMTZoNHYtM0g4djNabTUgMGgxLjVjLjc4IDAgMS40Mi0uNiAxLjUtMS4zNlYxM2gtM3YzWm0tMS00VjhIOHY0aDRabTQtNGgtM3Y0aDNWOFpNNS41IDE2SDdWN2g5VjUuNWMwLS43OC0uNi0xLjQyLTEuMzYtMS41SDUuNWMtLjc4IDAtMS40Mi42LTEuNSAxLjM2djkuMTRjMCAuNzguNiAxLjQyIDEuMzYgMS41aC4xNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uQW5kUm93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVDb2x1bW5BbmRSb3cyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoOC4yNXYtNWgtNXYzLjVINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY5LjVIMTZ2NWg1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNMTYgMTZ2NWgxLjc1YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWMTZoLTVabS0xLjUtMS41di01aC01djVoNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplQ29sdW1uQW5kUm93MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplQ29sdW1uQW5kUm93MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWgxMS41YzEuOCAwIDMuMjUtMS40NiAzLjI1LTMuMjVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk0xOS41IDguNUg5LjI1YS43NS43NSAwIDAgMC0uNzUuNzVWMTkuNUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjguNVpNMTQgMTB2NGgtNHYtNGg0Wm0xLjUgNHYtNGg0djRoLTRaTTE0IDE1LjV2NGgtNHYtNGg0Wm0xLjUgNHYtNGg0djIuMjVjMCAuOTctLjc4IDEuNzUtMS43NSAxLjc1SDE1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvdzI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplQ29sdW1uQW5kUm93MjhGaWxsZWQnLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1SDE3di02LjVoLTZ2NUg2Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVY2Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDE0LjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjVWMTFoLTV2NkgyNVY2Ljc1QTMuNzUgMy43NSAwIDAgMCAyMS4yNSAzSDYuNzVabTE0LjUgMjJIMTguNXYtNi41SDI1djIuNzVBMy43NSAzLjc1IDAgMCAxIDIxLjI1IDI1Wk0xNyAxN3YtNmgtNnY2aDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvdzI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZUNvbHVtbkFuZFJvdzI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk02Ljc1IDIzLjVIOS41di0xNGgxNFY2Ljc1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDYuNzVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1djE0LjVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVaTTE3IDE3di02aC02djZoNlptNi41LTZoLTV2Nmg1di02Wk0xMSAxOC41djVoNnYtNWgtNlptNy41IDVoMi43NWMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVYxOC41aC01djVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZVJvdzE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xMS41IDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWNmgtMnY0aDNWNC41QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03QTIuNSAyLjUgMCAwIDAgMiA0LjVWMTBoM1Y2SDNWNC41QzMgMy42NyAzLjY3IDMgNC41IDNoN1pNMTAgNkg2djRoNFY2Wm0tNSA1SDJ2LjVBMi41IDIuNSAwIDAgMCA0LjUgMTRINXYtM1ptMSAzaDR2LTNINnYzWm01LjUgMEgxMXYtM2gzdi41YTIuNSAyLjUgMCAwIDEtMi41IDIuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplUm93MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTEuNSAyQTIuNSAyLjUgMCAwIDEgMTQgNC41djdhMi41IDIuNSAwIDAgMS0yLjUgMi41aC03QTIuNSAyLjUgMCAwIDEgMiAxMS41di03QTIuNSAyLjUgMCAwIDEgNC41IDJoN1pNMyA2djRoMlY2SDNabTEwLTF2LS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtN0MzLjY3IDMgMyAzLjY3IDMgNC41VjVoMTBaTTYgNnY0aDRWNkg2Wm01IDB2NGgyVjZoLTJabS0xIDd2LTJINnYyaDRabS01IDB2LTJIM3YuNWMwIC44My42NyAxLjUgMS41IDEuNUg1Wm02IDBoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjExaC0ydjJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUZyZWV6ZVJvdzIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93MjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNC41IDRjLjgzIDAgMS41LjY3IDEuNSAxLjVWOGgtM3Y0aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjVWMTJoNFY4SDRWNS41QzQgNC42NyA0LjY3IDQgNS41IDRoOVpNMyAxNC41VjEzaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVabTktMS41SDh2NGg0di00Wk04IDh2NGg0VjhIOFptNSA5di00aDR2MS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplUm93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTQuNSAxN2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTlBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlaTTQgMTJWOGgzdjRINFptMTItNUg0VjUuMzZBMS41IDEuNSAwIDAgMSA1LjUgNGg5LjE0QTEuNSAxLjUgMCAwIDEgMTYgNS41VjdaTTggOGg0djRIOFY4Wm0tNCA2LjVWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVabTgtMS41djNIOHYtM2g0Wm00LTV2NGgtM1Y4aDNabTAgNVYxNC42NEExLjUgMS41IDAgMCAxIDE0LjUgMTZIMTN2LTNoM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplUm93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVSb3cyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djguMjVoNXYtNUg0LjVWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NyAwIDEuNzUuNzggMS43NSAxLjc1VjkuNUgxNnY1aDVWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0g2LjI1Wk0yMSAxNmgtNXY1aDEuNzVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVYxNlptLTYuNS0xLjV2LTVoLTV2NWg1Wm0tNSAxLjVoNXY1aC01di01Wk04IDE2SDN2MS43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMUg4di01WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVGcmVlemVSb3cyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVGcmVlemVSb3cyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QzMgMTkuNTUgNC40NiAyMSA2LjI1IDIxaDExLjVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDYuMjVaTTQuNSA2LjI1YzAtLjk3Ljc4LTEuNzUgMS43NS0xLjc1aDExLjVjLjk3IDAgMS43NS43OCAxLjc1IDEuNzVWOC41aC0xNVY2LjI1Wk0xMCAxMGg0djRoLTR2LTRabS0xLjUgMHY0aC00di00aDRabTAgNS41djRINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1VjE1LjVoNFptMS41IDR2LTRoNHY0aC00Wm01LjUtNS41di00aDR2NGgtNFptMCAxLjVoNHYyLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxNS41di00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVGcmVlemVSb3cyOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUZyZWV6ZVJvdzI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMjEuMjUgNC41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1VjExaC01djZIMjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0g2Ljc1QTMuNzUgMy43NSAwIDAgMCAzIDYuNzVWMTdoNi41di02aC01VjYuNzVjMC0xLjI0IDEtMi4yNSAyLjI1LTIuMjVoMTQuNVpNMyAyMS4yNVYxOC41aDYuNVYyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1Wk0xNyAyNWgtNnYtNi41aDZWMjVabTQuMjUgMEgxOC41di02LjVIMjV2Mi43NUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVaTTExIDE3aDZ2LTZoLTZ2NlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlRnJlZXplUm93MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlRnJlZXplUm93MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjUgNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0g2Ljc1QTMuNzUgMy43NSAwIDAgMCAzIDYuNzV2MTQuNUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNWgxNC41QTMuNzUgMy43NSAwIDAgMCAyNSAyMS4yNVY2Ljc1Wk00LjUgMTFoNXY2aC01di02Wk0xNyAxN2gtNnYtNmg2djZaTTQuNSAxOC41aDV2NUg2Ljc1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNVYxOC41Wm0xMi41IDVoLTZ2LTVoNnY1Wm02LjUtMi4yNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUgxOC41di01aDV2Mi43NVptMC0xMC4yNXY2aC01di02aDVabS0xOS00LjI1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1aDE0LjVjMS4yNCAwIDIuMjUgMSAyLjI1IDIuMjVWOS41aC0xOVY2Ljc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbWFnZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW1hZ2UyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTE2LjUgOWMuMTcgMCAuMzQuMDEuNS4wNFY4aC00djFoMy41Wk05IDE2LjVWMTNIOHY0aDEuMDRhMy41MyAzLjUzIDAgMCAxLS4wNC0uNVptLjA0LTQuNUEzLjUgMy41IDAgMCAxIDEyIDkuMDRWOEg4djRoMS4wNFpNNyAxMlY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTMgOS41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWg0YTIuNSAyLjUgMCAwIDEgMi41IDIuNXY0YzAgLjUtLjE1Ljk4LS40MSAxLjM4bC0zLjAzLTMuMDNhMS41IDEuNSAwIDAgMC0yLjEyIDBsLTMuMDMgMy4wM2MtLjI2LS40LS40MS0uODctLjQxLTEuMzh2LTRabTcgLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabS01Ljg4IDUuODRjLjQuMjYuODcuNDEgMS4zOC40MWg0Yy41IDAgLjk4LS4xNSAxLjM4LS40MWwtMy4wMy0zLjAzYS41LjUgMCAwIDAtLjcgMGwtMy4wMyAzLjAzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbWFnZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUltYWdlMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN2gzLjU0YTMuNTMgMy41MyAwIDAgMS0uMDQtLjVWMTZIOHYtM2gxdi0uNWMwLS4xNy4wMS0uMzQuMDQtLjVIOFY4aDR2MS4wNGMuMTYtLjAzLjMzLS4wNC41LS4wNGguNVY4aDN2MWguNWMuMTcgMCAuMzQuMDEuNS4wNFY1LjVabS0xMyA5VjEzaDN2M0g1LjM2QTEuNSAxLjUgMCAwIDEgNCAxNC41Wk0xMiA3SDhWNGg0djNabTEtM0gxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTQgN1Y1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRabTMgMXY0SDRWOGgzWm0zIDQuNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoNGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2NGMwIC41LS4xNS45OC0uNDEgMS4zOGwtMy4wMy0zLjAzYTEuNSAxLjUgMCAwIDAtMi4xMiAwbC0zLjAzIDMuMDNjLS4yNi0uNC0uNDEtLjg3LS40MS0xLjM4di00Wm03IC4yNWEuNzUuNzUgMCAxIDAtMS41IDAgLjc1Ljc1IDAgMCAwIDEuNSAwWm0tNS44OCA1Ljg0Yy40LjI2Ljg3LjQxIDEuMzguNDFoNGMuNSAwIC45OC0uMTUgMS4zOC0uNDFsLTMuMDMtMy4wM2EuNS41IDAgMCAwLS43IDBsLTMuMDMgMy4wM1pcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Q29sdW1uMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRDb2x1bW4xNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTMgMi41YS41LjUgMCAwIDAtMSAwdjExYS41LjUgMCAwIDAgMSAwdi0xMVptMTEgMGEuNS41IDAgMCAwLTEgMHYxMWEuNS41IDAgMCAwIDEgMHYtMTFaTTYuNSAyQzUuNjcgMiA1IDIuNjcgNSAzLjVWNWg2VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTNaTTUgMTBWNmg2djRINVptMCAxaDZ2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDUgMTIuNVYxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Q29sdW1uMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Q29sdW1uMTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMyAyLjVhLjUuNSAwIDAgMC0xIDB2MTFhLjUuNSAwIDAgMCAxIDB2LTExWm0xMSAwYS41LjUgMCAwIDAtMSAwdjExYS41LjUgMCAwIDAgMSAwdi0xMVpNNi41IDJDNS42NyAyIDUgMi42NyA1IDMuNXY5YzAgLjgzLjY3IDEuNSAxLjUgMS41aDNjLjgzIDAgMS41LS42NyAxLjUtMS41di05YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM1pNNiAzLjVjMC0uMjguMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNVY1SDZWMy41Wk02IDZoNHY0SDZWNlptMCA1aDR2MS41YS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41VjExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRDb2x1bW4yMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUluc2VydENvbHVtbjIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNCAzLjVhLjUuNSAwIDAgMC0xIDB2MTNhLjUuNSAwIDAgMCAxIDB2LTEzWm0xMyAwYS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1pNOSAzYTIgMiAwIDAgMC0yIDJ2Mmg2VjVhMiAyIDAgMCAwLTItMkg5Wm0tMiA5VjhoNnY0SDdabTAgMWg2djJhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJ2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUluc2VydENvbHVtbjIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUluc2VydENvbHVtbjIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTQgMy41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1ptMTMgMGEuNS41IDAgMCAwLTEgMHYxM2EuNS41IDAgMCAwIDEgMHYtMTNaTTkgM2EyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoMmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg5Wm0tMSA5VjhoNHY0SDhabTQtN3YySDhWNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMVptLTQgOGg0djJhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF2LTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUluc2VydENvbHVtbjI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Q29sdW1uMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk00LjUgMy43NXYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1YS43NS43NSAwIDAgMSAxLjUgMFpNMTYgNS4yNUMxNiA0LjAxIDE1LjEgMyAxNCAzaC00QzguOSAzIDggNCA4IDUuMjVWOGg4VjUuMjVaTTggMTQuNXYtNWg4djVIOFpNOCAxNnYyLjc1YzAgMS4yNC45IDIuMjUgMiAyLjI1aDRjMS4xIDAgMi0xIDItMi4yNVYxNkg4Wm0xMyA0LjI1VjMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRDb2x1bW4yNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRDb2x1bW4yNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjUgMy43NXYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1YS43NS43NSAwIDAgMSAxLjUgMFpNMTQuMjUgM2MxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNXYxMy41YzAgMS4yNC0xIDIuMjUtMi4yNSAyLjI1aC00LjVjLTEuMjQgMC0yLjI1LTEtMi4yNS0yLjI1VjUuMjVDNy41IDQuMDEgOC41IDMgOS43NSAzaDQuNVpNMTUgNS4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMC0uNzUuNzVWOC41aDZWNS4yNVpNOSAxNGg2di00SDl2NFptMCAxLjV2My4yNWMwIC40MS4zNC43NS43NS43NWg0LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVWMTUuNUg5Wm0xMiA0Ljc1VjMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE2LjVhLjc1Ljc1IDAgMCAwIDEuNSAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRDb2x1bW4yOEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUluc2VydENvbHVtbjI4RmlsbGVkJywgXCIyOFwiLCBbXCJNNC41IDMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjMuNzVabTIwLjUgMGEuNzUuNzUgMCAwIDAtMS41IDB2MjAuNWEuNzUuNzUgMCAwIDAgMS41IDBWMy43NVpNMTEuNzUgM0EyLjc1IDIuNzUgMCAwIDAgOSA1Ljc1VjkuNWgxMFY1Ljc1QTIuNzUgMi43NSAwIDAgMCAxNi4yNSAzaC00LjVaTTkgMTd2LTZoMTB2Nkg5Wm0wIDEuNWgxMHYzLjc1QTIuNzUgMi43NSAwIDAgMSAxNi4yNSAyNWgtNC41QTIuNzUgMi43NSAwIDAgMSA5IDIyLjI1VjE4LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUluc2VydENvbHVtbjI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUluc2VydENvbHVtbjI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTQuNSAzLjc1YS43NS43NSAwIDAgMC0xLjUgMHYyMC41YS43NS43NSAwIDAgMCAxLjUgMFYzLjc1Wm0yMC41IDBhLjc1Ljc1IDAgMCAwLTEuNSAwdjIwLjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjMuNzVaTTExLjc1IDNBMi43NSAyLjc1IDAgMCAwIDkgNS43NXYxNi41QTIuNzUgMi43NSAwIDAgMCAxMS43NSAyNWg0LjVBMi43NSAyLjc1IDAgMCAwIDE5IDIyLjI1VjUuNzVBMi43NSAyLjc1IDAgMCAwIDE2LjI1IDNoLTQuNVpNMTAuNSA1Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDQuNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNVYxMGgtN1Y1Ljc1Wm0wIDUuNzVoN3Y1aC03di01Wm0wIDYuNWg3djQuMjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1aC00LjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNVYxOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Um93MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3cxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIuNSAxM2EuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTFabTAtMTFhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExWk0yIDkuNWMwIC44My42NyAxLjUgMS41IDEuNUg1VjVIMy41QzIuNjcgNSAyIDUuNjcgMiA2LjV2M1ptOCAxLjVINlY1aDR2NlptMSAwVjVoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41djNjMCAuODMtLjY3IDEuNS0xLjUgMS41SDExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRSb3cxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3cxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yLjUgMTNhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExWm0wLTExYS41LjUgMCAwIDAgMCAxaDExYS41LjUgMCAwIDAgMC0xaC0xMVpNMiA5LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNjMC0uODMtLjY3LTEuNS0xLjUtMS41aC05QzIuNjcgNSAyIDUuNjcgMiA2LjV2M1ptMS41LjVhLjUuNSAwIDAgMS0uNS0uNXYtM2MwLS4yOC4yMi0uNS41LS41SDV2NEgzLjVaTTYgMTBWNmg0djRINlptNSAwVjZoMS41Yy4yOCAwIC41LjIyLjUuNXYzYS41LjUgMCAwIDEtLjUuNUgxMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Um93MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3cyMEZpbGxlZCcsIFwiMjBcIiwgW1wiTTMuNSAxNmEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNabTAtMTNhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFoLTEzWk0zIDExYzAgMS4xLjkgMiAyIDJoMlY3SDVhMiAyIDAgMCAwLTIgMnYyWm05IDJIOFY3aDR2NlptMSAwVjdoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Um93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Um93MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMy41IDE2YS41LjUgMCAwIDAgMCAxaDEzYS41LjUgMCAwIDAgMC0xaC0xM1ptMC0xM2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaTTMgMTFjMCAxLjEuOSAyIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MlptOSAxSDhWOGg0djRaTTUgOGgydjRINWExIDEgMCAwIDEtMS0xVjlhMSAxIDAgMCAxIDEtMVptOCA0VjhoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Um93MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3cyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTIwLjI1IDQuNUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWgxNi41YS43NS43NSAwIDAgMSAwIDEuNVpNOCA4SDUuMjVDNC4wMSA4IDMgOC45IDMgMTB2NGMwIDEuMSAxIDIgMi4yNSAySDhWOFptMS41IDhoNVY4aC01djhabTkuMjUgMEgxNlY4aDIuNzVjMS4yNCAwIDIuMjUuOSAyLjI1IDJ2NGMwIDEuMS0xIDItMi4yNSAyWm0tMTUgNWgxNi41YS43NS43NSAwIDAgMCAwLTEuNUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Um93MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlSW5zZXJ0Um93MjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAuMjUgM0gzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxNi41YS43NS43NSAwIDAgMCAwLTEuNVpNMyA5Ljc1QzMgOC41MSA0IDcuNSA1LjI1IDcuNWgxMy41YzEuMjQgMCAyLjI1IDEgMi4yNSAyLjI1djQuNWMwIDEuMjQtMSAyLjI1LTIuMjUgMi4yNUg1LjI1Yy0xLjI0IDAtMi4yNS0xLTIuMjUtMi4yNXYtNC41Wk01LjI1IDlhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjVjMCAuNDEuMzQuNzUuNzUuNzVIOC41VjlINS4yNVpNMTQgMTVWOWgtNHY2aDRabTEuNSAwaDMuMjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTQuNWEuNzUuNzUgMCAwIDAtLjc1LS43NUgxNS41djZaTTMuNzUgMTkuNWgxNi41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlSW5zZXJ0Um93MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3cyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMuNzUgMjMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMjAuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVptMC0yMC41YS43NS43NSAwIDAgMCAwIDEuNWgyMC41YS43NS43NSAwIDAgMCAwLTEuNUgzLjc1Wk0zIDE2LjI1QTIuNzUgMi43NSAwIDAgMCA1Ljc1IDE5SDkuNVY5SDUuNzVBMi43NSAyLjc1IDAgMCAwIDMgMTEuNzV2NC41Wk0xNyAxOWgtNlY5aDZ2MTBabTEuNSAwVjloMy43NUEyLjc1IDIuNzUgMCAwIDEgMjUgMTEuNzV2NC41QTIuNzUgMi43NSAwIDAgMSAyMi4yNSAxOUgxOC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVJbnNlcnRSb3cyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVJbnNlcnRSb3cyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zLjc1IDIzLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDIwLjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVabTAtMjAuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMjAuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVpNMyAxNi4yNUEyLjc1IDIuNzUgMCAwIDAgNS43NSAxOWgxNi41QTIuNzUgMi43NSAwIDAgMCAyNSAxNi4yNXYtNC41QTIuNzUgMi43NSAwIDAgMCAyMi4yNSA5SDUuNzVBMi43NSAyLjc1IDAgMCAwIDMgMTEuNzV2NC41Wm0yLjc1IDEuMjVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXYtNC41YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1SDEwdjdINS43NVptNS43NSAwdi03aDV2N2gtNVptNi41IDB2LTdoNC4yNWMuNjkgMCAxLjI1LjU2IDEuMjUgMS4yNXY0LjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDE4WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaWdodG5pbmcxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpZ2h0bmluZzE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNVY1aDNWMmgtLjVaTTYgMnYzaDRWMkg2Wm0wIDRoMi4xN0w2LjUgMTBINlY2Wm0wIDh2LTIuNWMwIC44LjY0IDEuNSAxLjUgMS41aC40N2wtLjI1IDFINlpNNSA2SDJ2NGgzVjZabTAgNUgydi41QTIuNSAyLjUgMCAwIDAgNC41IDE0SDV2LTNabTktNnYtLjVBMi41IDIuNSAwIDAgMCAxMS41IDJIMTF2M2gzWm0tNS4zOSA3Yy4zMyAwIC41Ni4zLjQ5LjYybC0uNDQgMS43NGMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtLjRhLjUuNSAwIDAgMS0uNDgtLjY2bC41Ni0xLjY4YS41LjUgMCAwIDAtLjQ3LS42Nkg5LjU4YS41LjUgMCAwIDAtLjQ2LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43aDEuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUxpZ2h0bmluZzE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpZ2h0bmluZzE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTQuNSAyQTIuNSAyLjUgMCAwIDAgMiA0LjV2N0EyLjUgMi41IDAgMCAwIDQuNSAxNGgzLjIybC4yNS0xSDZ2LTJoLjA5YzAtLjAzLjAyLS4wNS4wMy0uMDhMNi41IDEwSDZWNmgyLjE3bC4wMy0uMDhBMS41IDEuNSAwIDAgMSA5LjU4IDVoMy40OGMuMzYgMCAuNjkuMTMuOTQuMzNWNC41QTIuNSAyLjUgMCAwIDAgMTEuNSAyaC03Wm01LjA4IDNINlYzaDR2MmgtLjQyWk0zIDExaDJ2MmgtLjVBMS41IDEuNSAwIDAgMSAzIDExLjVWMTFabTAtNWgydjRIM1Y2Wm0xLjUtM0g1djJIM3YtLjVDMyAzLjY3IDMuNjcgMyA0LjUgM1pNMTMgNC41VjVoLTJWM2guNWMuODMgMCAxLjUuNjcgMS41IDEuNVpNOC42MSAxMmMuMzMgMCAuNTYuMy40OS42MmwtLjQ0IDEuNzRjLS4xMi40OC40Ni44My44My40OWw0Ljg3LTQuNTVhLjc1Ljc1IDAgMCAwLS41MS0xLjNoLS40YS41LjUgMCAwIDEtLjQ4LS42NmwuNTYtMS42OGEuNS41IDAgMCAwLS40Ny0uNjZIOS41OGEuNS41IDAgMCAwLS40Ni4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN2gxLjExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaWdodG5pbmcyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpZ2h0bmluZzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTMuNTggOUgxN1Y4aC00djEuMTJjLjE4LS4wOC4zOC0uMTIuNTgtLjEyWm0tMi4yNSAzIC42Ny0xLjZWOEg4djRoMy4zM1ptLTEuMjEgMi45Mi44LTEuOTJIOHY0aDMuNWExLjUgMS41IDAgMCAxLTEuMzgtMi4wOFpNNyAxMlY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTUuNjEgMTNjLjMzIDAgLjU2LjMuNDkuNjJsLS40NCAxLjc0Yy0uMTIuNDguNDYuODMuODMuNDlsNC44Ny00LjU1YS43NS43NSAwIDAgMC0uNTEtMS4zaC0uNGEuNS41IDAgMCAxLS40OC0uNjZsLjU2LTEuNjhhLjUuNSAwIDAgMC0uNDctLjY2aC0zLjQ4YS41LjUgMCAwIDAtLjQ2LjNsLTIuMDggNWMtLjE0LjM0LjEuNy40Ni43aDEuMTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUxpZ2h0bmluZzIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpZ2h0bmluZzIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTE3IDUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM2gtOUEyLjUgMi41IDAgMCAwIDMgNS41djlBMi41IDIuNSAwIDAgMCA1LjUgMTdoNmExLjUgMS41IDAgMCAxLTEuNDEtMUg4di0zaDIuOTJsLjQxLTFIOFY4aDR2Mi40bC4yLS40OGMuMTUtLjM3LjQ1LS42NS44LS44VjhoM3YxaDFWNS41Wm0tMTMgOVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgN0g4VjRoNHYzWm0xLTNIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk00IDdWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDd2M0g0Wm0zIDF2NEg0VjhoM1ptNS42MSA4Yy4zMyAwIC41Ni4zLjQ5LjYybC0uNDQgMS43NGMtLjEyLjQ4LjQ2LjgzLjgzLjQ5bDQuODctNC41NWEuNzUuNzUgMCAwIDAtLjUxLTEuM2gtLjRhLjUuNSAwIDAgMS0uNDgtLjY2bC41Ni0xLjY4YS41LjUgMCAwIDAtLjQ3LS42NmgtMy40OGEuNS41IDAgMCAwLS40Ni4zbC0yLjA4IDVjLS4xNC4zNC4xLjcuNDYuN2gxLjExWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaWdodG5pbmcyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpZ2h0bmluZzI0RmlsbGVkJywgXCIyNFwiLCBbXCJNOS41IDIxaDV2LTFoLTFhMS41IDEuNSAwIDAgMS0xLjM2LTIuMTRsLjg4LTEuODZIOS41djVaTTIxIDkuNVYxMWgtNC42OGMtLjExIDAtLjIyLjAxLS4zMi4wM1Y5LjVoNVptLTYuNSAwdjMuMzRsLS43OCAxLjY2SDkuNXYtNWg1Wk0yMSA4VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNIMTZ2NWg1Wm0tNi41LTVoLTV2NWg1VjNaTTggM0g2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjVWOGg1VjNaTTMgOS41djVoNXYtNUgzWk0zIDE2djEuNzVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFIOHYtNUgzWm0xMy4zMi00aDQuODJhLjUuNSAwIDAgMSAuNDQuNzVMMTkuNzUgMTZoMS41Yy42NCAwIC45OC43Ni41NiAxLjI0bC00LjgyIDUuNTFjLS41LjU4LTEuNDUuMDktMS4yNi0uNjZMMTYuNSAxOWgtM2EuNS41IDAgMCAxLS40Ni0uNzFsMi44Mi02YS41LjUgMCAwIDEgLjQ2LS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTGlnaHRuaW5nMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGlnaHRuaW5nMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMyA2LjI1QzMgNC40NSA0LjQ2IDMgNi4yNSAzaDExLjVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjVWMTFoLTEuNXYtMWgtNHYxLjI0YTEuNSAxLjUgMCAwIDAtLjU0LjYyTDE0IDEzLjkxVjEwaC00djRoMy45NmwtLjcxIDEuNUgxMHY0aDIuMzhjLjI3LjMuNjYuNSAxLjEyLjVoMS43MmwtLjI1IDFINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1Wk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWOC41aDR2LTRINi4yNVpNNC41IDEwdjRoNHYtNGgtNFptMTEtMS41aDRWNi4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIMTUuNXY0Wm0tMS41LTRoLTR2NGg0di00Wm0tOS41IDExdjIuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIOC41di00aC00Wk0xNi4zMiAxMmg0LjgyYS41LjUgMCAwIDEgLjQ0Ljc1TDE5Ljc1IDE2aDEuNWMuNjQgMCAuOTguNzYuNTYgMS4yNGwtNC44MiA1LjUxYy0uNS41OC0xLjQ1LjA5LTEuMjYtLjY2TDE2LjUgMTloLTNhLjUuNSAwIDAgMS0uNDYtLjcxbDIuODItNmEuNS41IDAgMCAxIC40Ni0uMjlaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUxpZ2h0bmluZzI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGlnaHRuaW5nMjhGaWxsZWQnLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NVY5LjVoNi41VjNINi43NVpNMyAxN3YtNmg2LjV2NkgzWm0wIDQuMjVWMTguNWg2LjVWMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVpNMTcgMjVoLTZ2LTYuNWg0LjI2bC0xLjExIDIuMzZBMS41IDEuNSAwIDAgMCAxNS41IDIzSDE3djJabTgtMTJ2LTJoLTYuNXYyLjAzYy4xLS4wMi4yMS0uMDMuMzItLjAzSDI1Wm0tOCAxLjgzVjExaC02djZoNC45N0wxNyAxNC44M1ptOC04LjA4VjkuNWgtNi41VjNoMi43NUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NVpNMTEgM2g2djYuNWgtNlYzWm03LjgyIDExaDYuMzNhLjUuNSAwIDAgMSAuNDMuNzVMMjMuNzUgMThoMS41MmMuNjQgMCAuOTguNzUuNTYgMS4yNGwtNi40MSA3LjQ1Yy0uNTIuNi0xLjUuMDUtMS4yNS0uN0wxOS41IDIyaC00YS41LjUgMCAwIDEtLjQ1LS43MWwzLjMxLTdhLjUuNSAwIDAgMSAuNDYtLjI5WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaWdodG5pbmcyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMaWdodG5pbmcyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk02Ljc1IDNBMy43NSAzLjc1IDAgMCAwIDMgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMCA2Ljc1IDI1aDEwLjdsLjY2LTJIMTd2LjVoLTZ2LTVoNC4yNmwuNzEtMS41SDExdi02aDZ2My44M2wuNDYtLjk3Yy4yLS40My42LS43MyAxLjA0LS44M1YxMWg1djJIMjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0g2Ljc1Wk00LjUgMjEuMjVWMTguNWg1djVINi43NWMtMS4yNCAwLTIuMjUtMS0yLjI1LTIuMjVaTTkuNSAxMXY2aC01di02aDVabTExLjc1LTYuNWMxLjI0IDAgMi4yNSAxIDIuMjUgMi4yNVY5LjVoLTV2LTVoMi43NVpNMTEgNC41aDZ2NWgtNnYtNVptLTQuMjUgMEg5LjV2NWgtNVY2Ljc1YzAtMS4yNCAxLTIuMjUgMi4yNS0yLjI1Wk0xOC44MiAxNGg2LjMzYS41LjUgMCAwIDEgLjQzLjc1TDIzLjc1IDE4aDEuNTJjLjY0IDAgLjk4Ljc1LjU2IDEuMjRsLTYuNDEgNy40NWMtLjUyLjYtMS41LjA1LTEuMjUtLjdMMTkuNSAyMmgtNGEuNS41IDAgMCAxLS40NS0uNzFsMy4zMS03YS41LjUgMCAwIDEgLjQ2LS4yOVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTGluazE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGluazE2RmlsbGVkJywgXCIxNlwiLCBbXCJNNC41IDJBMi41IDIuNSAwIDAgMCAyIDQuNVY1aDNWMmgtLjVaTTYgMnYzaDRWMkg2Wk01IDZIMnY0aDNWNlptMSA0VjZoNHYzSDguNWMtLjk1IDAtMS44Mi4zOC0yLjQ1IDFINlptNi41LTFjLjU0IDAgMS4wNS4xMiAxLjUuMzRWNmgtM3YzaDEuNVpNNSAxMXYzaC0uNUEyLjUgMi41IDAgMCAxIDIgMTEuNVYxMWgzWm05LTZ2LS41QTIuNSAyLjUgMCAwIDAgMTEuNSAySDExdjNoM1ptLTUuNSA1YTIuNSAyLjUgMCAwIDAgMCA1SDlhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDlhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxMmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxMlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaW5rMTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGluazE2UmVndWxhcicsIFwiMTZcIiwgW1wiTTIgNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoN0EyLjUgMi41IDAgMCAxIDE0IDQuNXY0Ljg0YTMuNDggMy40OCAwIDAgMC0xLS4zVjZoLTJ2M2gtMVY2SDZ2NGguMDVBMy40OSAzLjQ5IDAgMCAwIDUgMTIuNVYxMUgzdi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDV2LS41YzAgLjU0LjEyIDEuMDUuMzQgMS41SDQuNUEyLjUgMi41IDAgMCAxIDIgMTEuNXYtN1pNNSA2SDN2NGgyVjZabTEtMWg0VjNINnYyWk01IDNoLS41QzMuNjcgMyAzIDMuNjcgMyA0LjVWNWgyVjNabTggMnYtLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDExdjJoMlptLTQuNSA1YTIuNSAyLjUgMCAwIDAgMCA1SDlhLjUuNSAwIDAgMCAwLTFoLS41YTEuNSAxLjUgMCAwIDEgMC0zSDlhLjUuNSAwIDAgMCAwLTFoLS41Wm0zLjUgMGEuNS41IDAgMCAwIDAgMWguNWExLjUgMS41IDAgMCAxIDAgM0gxMmEuNS41IDAgMCAwIDAgMWguNWEyLjUgMi41IDAgMCAwIDAtNUgxMlptLTQgMi41YzAtLjI4LjIyLS41LjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaW5rMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMaW5rMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk05IDE1LjVjMCAuNTQuMTIgMS4wNS4zNCAxLjVIOHYtNGgyLjA1QTMuNDkgMy40OSAwIDAgMCA5IDE1LjVaTTEzIDh2NGgzLjVjLjE3IDAgLjM0LjAxLjUuMDRWOGgtNFptLTEgNFY4SDh2NGg0Wm0tNSAwVjhIM3Y0aDRabS00IDFoNHY0SDUuNUEyLjUgMi41IDAgMCAxIDMgMTQuNVYxM1ptMTAtNmg0VjUuNUEyLjUgMi41IDAgMCAwIDE0LjUgM0gxM3Y0Wm0tMS00djRIOFYzaDRaTTcgM3Y0SDNWNS41QTIuNSAyLjUgMCAwIDEgNS41IDNIN1ptMyAxMi41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWguNWEuNS41IDAgMCAxIDAgMWgtLjVhMS41IDEuNSAwIDAgMCAwIDNoLjVhLjUuNSAwIDAgMSAwIDFoLS41YTIuNSAyLjUgMCAwIDEtMi41LTIuNVptNS41LTJjMC0uMjguMjItLjUuNS0uNWguNWEyLjUgMi41IDAgMCAxIDAgNUgxNmEuNS41IDAgMCAxIDAtMWguNWExLjUgMS41IDAgMCAwIDAtM0gxNmEuNS41IDAgMCAxLS41LS41Wm0tMyAxLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTGluazIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpbmsyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk0xNyA1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNoLTlBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDMuODRhMy40OCAzLjQ4IDAgMCAxLS4zLTFIOHYtM2gyLjA1YTMuNDkgMy40OSAwIDAgMSAyLjQ1LTFoLjVWOGgzdjRoLjVjLjE3IDAgLjM0LjAxLjUuMDRWNS41Wk0xMiA4djRIOFY4aDRabS04IDYuNVYxM2gzdjNINS4zNkExLjUgMS41IDAgMCAxIDQgMTQuNVpNMTIgN0g4VjRoNHYzWm0xLTNIMTQuNjRBMS41IDEuNSAwIDAgMSAxNiA1LjVWN2gtM1Y0Wk00IDdWNS4zNkExLjUgMS41IDAgMCAxIDUuNSA0SDd2M0g0Wm0zIDF2NEg0VjhoM1ptMyA3LjVhMi41IDIuNSAwIDAgMSAyLjUtMi41aC41YS41LjUgMCAwIDEgMCAxaC0uNWExLjUgMS41IDAgMCAwIDAgM2guNWEuNS41IDAgMCAxIDAgMWgtLjVhMi41IDIuNSAwIDAgMS0yLjUtMi41Wm01LjUtMmMwLS4yOC4yMi0uNS41LS41aC41YTIuNSAyLjUgMCAwIDEgMCA1SDE2YS41LjUgMCAwIDEgMC0xaC41YTEuNSAxLjUgMCAwIDAgMC0zSDE2YS41LjUgMCAwIDEtLjUtLjVabS0zIDEuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaW5rMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMaW5rMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMjFoMi4wN2E0LjczIDQuNzMgMCAwIDEgLjMtNUg5LjV2NVpNMjEgOS41djQuODNhNC43NCA0Ljc0IDAgMCAwLTEuNzUtLjMzSDE2VjkuNWg1Wm0tNi41IDB2NC42N2MtLjMuMDgtLjYuMi0uODcuMzNIOS41di01aDVaTTIxIDhWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0gxNnY1aDVabS02LjUtNWgtNXY1aDVWM1pNOCAzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNVY4aDVWM1pNMyA5LjV2NWg1di01SDNaTTMgMTZ2MS43NUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMUg4di01SDNabTE2LjI1LTFhMy43NSAzLjc1IDAgMCAxIC4yIDcuNWgtLjJhLjc1Ljc1IDAgMCAxLS4xLTEuNDloLjFWMjFhMi4yNSAyLjI1IDAgMCAwIC4xNS00LjVoLS4xNWEuNzUuNzUgMCAwIDEtLjEtMS41aC4xWm0tMy41IDBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtLjFhMi4yNSAyLjI1IDAgMCAwLS4xNSA0LjVoLjE1YS43NS43NSAwIDAgMSAuMSAxLjVoLS4xYTMuNzUgMy43NSAwIDAgMS0uMi03LjVoLjJabTMuNSAzYS43NS43NSAwIDAgMSAuMSAxLjVoLTMuNmEuNzUuNzUgMCAwIDEtLjEtMS41aDMuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTGluazI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxpbmsyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zIDYuMjVDMyA0LjQ1IDQuNDYgMyA2LjI1IDNoMTEuNUMxOS41NSAzIDIxIDQuNDYgMjEgNi4yNXY4LjA4Yy0uNDctLjE4LS45Ny0uMy0xLjUtLjMyVjEwaC00djRhNC43NCA0Ljc0IDAgMCAwLTMuMjEgMS41SDEwdjRoMS4wNmMuMDguNTQuMjYgMS4wNC41IDEuNUg2LjI2QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVaTTE0IDEwaC00djRoNHYtNFpNNi4yNSA0LjVjLS45NyAwLTEuNzUuNzgtMS43NSAxLjc1VjguNWg0di00SDYuMjVaTTQuNSAxMHY0aDR2LTRoLTRabTExLTEuNWg0VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDE1LjV2NFptLTEuNS00aC00djRoNHYtNFptLTkuNSAxMXYyLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDguNXYtNGgtNFptMTQuNzUtLjVhMy43NSAzLjc1IDAgMCAxIC4yIDcuNWgtLjJhLjc1Ljc1IDAgMCAxLS4xLTEuNDloLjFWMjFhMi4yNSAyLjI1IDAgMCAwIC4xNS00LjVoLS4xNWEuNzUuNzUgMCAwIDEtLjEtMS41aC4xWm0tMy41IDBhLjc1Ljc1IDAgMCAxIC4xIDEuNWgtLjFhMi4yNSAyLjI1IDAgMCAwLS4xNSA0LjVoLjE1YS43NS43NSAwIDAgMSAuMSAxLjVoLS4xYTMuNzUgMy43NSAwIDAgMS0uMi03LjVoLjJabTMuNSAzYS43NS43NSAwIDAgMSAuMSAxLjVoLTMuNmEuNzUuNzUgMCAwIDEtLjEtMS41aDMuNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTGluazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGluazI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNIOS41djYuNUgzVjYuNzVaTTMgMTF2Nmg2LjV2LTZIM1ptMCA3LjV2Mi43NUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNUg5LjV2LTYuNUgzWm04IDYuNWgyLjU3YTQuNzMgNC43MyAwIDAgMSAyLjA2LTYuNUgxMVYyNVptMTQtOHYtNmgtNi41djZIMjVabTAtNy41VjYuNzVBMy43NSAzLjc1IDAgMCAwIDIxLjI1IDNIMTguNXY2LjVIMjVaTTE3IDNoLTZ2Ni41aDZWM1ptMCA4djZoLTZ2LTZoNlptLjc1IDkuNWEyLjI1IDIuMjUgMCAwIDAgMCA0LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNWEzLjc1IDMuNzUgMCAxIDEgMC03LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNVpNMTcgMjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIzLjI1IDI1YTIuMjUgMi4yNSAwIDAgMCAwLTQuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41YTMuNzUgMy43NSAwIDEgMSAwIDcuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMaW5rMjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTGluazI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMgNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzaDE0LjVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzV2MTEuNThhNC43NCA0Ljc0IDAgMCAwLTEuNzUtLjMzaC01LjVjLS43NiAwLTEuNDguMTgtMi4xMi41SDExdjVoMi4wNmMuMDguNTQuMjYgMS4wNC41IDEuNUg2Ljc2QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjYuNzVaTTQuNSAxOC41djIuNzVjMCAxLjI0IDEgMi4yNSAyLjI1IDIuMjVIOS41di01aC01Wm01LTEuNXYtNmgtNXY2aDVabTcuNSAwdi02aC02djZoNlptNi41IDB2LTZoLTV2Nmg1Wm0wLTEwLjI1YzAtMS4yNC0xLTIuMjUtMi4yNS0yLjI1SDE4LjV2NWg1VjYuNzVaTTE3IDQuNWgtNnY1aDZ2LTVabS03LjUgMEg2Ljc1Yy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNVY5LjVoNXYtNVptOC4yNSAxNmEyLjI1IDIuMjUgMCAwIDAgMCA0LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNWEzLjc1IDMuNzUgMCAxIDEgMC03LjVoLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0uNVpNMTcgMjIuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWg1LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTIzLjI1IDI1YTIuMjUgMi4yNSAwIDAgMCAwLTQuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41YTMuNzUgMy43NSAwIDEgMSAwIDcuNWgtLjVhLjc1Ljc1IDAgMCAxIDAtMS41aC41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMb2NrMTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMb2NrMTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAySDV2M0gydi0uNVpNNiA1VjJoNHYzSDZaTTIgNmgzdjRIMlY2Wm00IDB2NGgxYTIgMiAwIDAgMSAxLjUtMS45NFY4YzAtLjc3LjI5LTEuNDcuNzYtMkg2Wm0xIDV2M0g2di0zaDFabS01IDBoM3YzaC0uNUEyLjUgMi41IDAgMCAxIDIgMTEuNVYxMVptMTItNi41VjVoLTNWMmguNUEyLjUgMi41IDAgMCAxIDE0IDQuNVpNOS41IDh2MUg5YTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNVY4YTIgMiAwIDEgMC00IDBabTEgMVY4YTEgMSAwIDEgMSAyIDB2MWgtMlptMSAyLjI1YS43NS43NSAwIDEgMSAwIDEuNS43NS43NSAwIDAgMSAwLTEuNVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxvY2sxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yIDQuNUEyLjUgMi41IDAgMCAxIDQuNSAyaDdBMi41IDIuNSAwIDAgMSAxNCA0LjV2MS44NEEzIDMgMCAwIDAgOS4yNiA2SDZ2NGgxdjFINnYyaDF2MUg0LjVBMi41IDIuNSAwIDAgMSAyIDExLjV2LTdaTTUgMTFIM3YuNWMwIC44My42NyAxLjUgMS41IDEuNUg1di0yWm0wLTVIM3Y0aDJWNlptMS0xaDRWM0g2djJaTTUgM2gtLjVDMy42NyAzIDMgMy42NyAzIDQuNVY1aDJWM1ptOCAydi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTF2MmgyWk05LjUgOHYxSDlhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41VjhhMiAyIDAgMSAwLTQgMFptMSAxVjhhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMb2NrMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMb2NrMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0xNS41IDljLjU1IDAgMS4wNi4xNSAxLjUuNFY4aC00djIuMzRBMyAzIDAgMCAxIDE1LjUgOVpNMTEgMTRjMC0uMzYuMS0uNy4yNy0xSDh2NGgzdi0zWm0xLTJIOFY4aDR2NFptLTUgMFY4SDN2NGg0Wm0tNCAxaDR2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFptLTEtNHY0SDhWM2g0Wk03IDN2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzSDdabTYuNSA5djFIMTNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLS41di0xYTIgMiAwIDEgMC00IDBabTEgMXYtMWExIDEgMCAxIDEgMiAwdjFoLTJabTEgMi4yNWEuNzUuNzUgMCAxIDEgMCAxLjUuNzUuNzUgMCAwIDEgMC0xLjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZUxvY2syMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMb2NrMjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05QTIuNSAyLjUgMCAwIDAgMyA1LjV2OUEyLjUgMi41IDAgMCAwIDUuNSAxN0gxMXYtMUg4di0zaDMuMjdhMiAyIDAgMCAxIDEuMjMtLjk0VjEyYzAtLjYxLjE4LTEuMTguNS0xLjY2VjhoM3YxLjA0Yy4zNi4wNi43LjE5IDEgLjM2VjUuNVptLTEzIDlWMTNoM3YzSDUuMzZBMS41IDEuNSAwIDAgMSA0IDE0LjVaTTEyIDh2NEg4VjhoNFptMC0xSDhWNGg0djNabTEtM0gxNC42NEExLjUgMS41IDAgMCAxIDE2IDUuNVY3aC0zVjRaTTQgN1Y1LjM2QTEuNSAxLjUgMCAwIDEgNS41IDRIN3YzSDRabTMgMXY0SDRWOGgzWm02LjUgNHYxSDEzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xaC0uNXYtMWEyIDIgMCAxIDAtNCAwWm0xIDF2LTFhMSAxIDAgMSAxIDIgMHYxaC0yWm0xIDIuMjVhLjc1Ljc1IDAgMSAxIDAgMS41Ljc1Ljc1IDAgMCAxIDAtMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMb2NrMjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVMb2NrMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgMjFIMTN2LTQuNWMwLS4xNy4wMi0uMzQuMDUtLjVIOS41djVaTTIxIDkuNXYyLjA1YTMuNDkgMy40OSAwIDAgMC01IDBWOS41aDVabS02LjUgMHY0LjdhMi41IDIuNSAwIDAgMC0uNS4zSDkuNXYtNWg1Wk0yMSA4VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNIMTZ2NWg1Wm0tNi41LTVoLTV2NWg1VjNaTTggM0g2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjVWOGg1VjNaTTMgOS41djVoNXYtNUgzWk0zIDE2djEuNzVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFIOHYtNUgzWm0xMi41LTFjLS44MyAwLTEuNS42Ny0xLjUgMS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDIxdi0xYTIuNSAyLjUgMCAwIDAtNSAwdjFoLS41Wm0yLTFhMSAxIDAgMSAxIDIgMHYxaC0ydi0xWm0yIDVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVMb2NrMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTG9jazI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTMgNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djUuM2EzLjUgMy41IDAgMCAwLTEuNS0uOVYxMGgtNHYyLjJjLS4zMi41Mi0uNSAxLjE0LS41IDEuOHYuMDVhMi41IDIuNSAwIDAgMC0xLjggMS40NUgxMHY0aDNWMjFINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1Wk02LjI1IDQuNWMtLjk3IDAtMS43NS43OC0xLjc1IDEuNzVWOC41aDR2LTRINi4yNVpNNC41IDEwdjRoNHYtNGgtNFptNS41IDB2NGg0di00aC00Wm01LjUtMS41aDRWNi4yNWMwLS45Ny0uNzgtMS43NS0xLjc1LTEuNzVIMTUuNXY0Wm0tMS41LTRoLTR2NGg0di00Wm0tOS41IDExdjIuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVIOC41di00aC00Wk0xNiAxNWgtLjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djVjMCAuODMuNjcgMS41IDEuNSAxLjVoNmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDIxdi0xYTIuNSAyLjUgMCAwIDAtNSAwdjFabTEuNS0xYTEgMSAwIDEgMSAyIDB2MWgtMnYtMVptMiA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTG9jazI4RmlsbGVkJywgXCIyOFwiLCBbXCJNMyA2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNIOS41djYuNUgzVjYuNzVaTTMgMTF2Nmg2LjV2LTZIM1ptMCA3LjV2Mi43NUEzLjc1IDMuNzUgMCAwIDAgNi43NSAyNUg5LjV2LTYuNUgzWm04IDYuNWg0di01YzAtLjU1LjE1LTEuMDYuNC0xLjVIMTFWMjVabTE0LTE0djQuMDZhNCA0IDAgMCAwLTYuNS0uN1YxMUgyNVptMC0xLjVWNi43NUEzLjc1IDMuNzUgMCAwIDAgMjEuMjUgM0gxOC41djYuNUgyNVpNMTcgM2gtNnY2LjVoNlYzWm0wIDh2NmgtNnYtNmg2Wm0xLjUgN0gxOGEyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMmgtLjV2LTFhMyAzIDAgMSAwLTYgMHYxWm0xLjUtMWExLjUgMS41IDAgMCAxIDMgMHYxaC0zdi0xWm0zIDUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazI4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxvY2syOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM2gxNC41QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1djguMzFhNC4wMiA0LjAyIDAgMCAwLTEuNS0xLjUyVjExaC01djMuMzVjLS42Mi43LTEgMS42NC0xIDIuNjV2LjA0YTMgMyAwIDAgMC0yLjEgMS40NkgxMXY1aDRWMjVINi43NUEzLjc1IDMuNzUgMCAwIDEgMyAyMS4yNVY2Ljc1Wk00LjUgMTguNXYyLjc1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1SDkuNXYtNWgtNVptNS0xLjV2LTZoLTV2Nmg1Wm03LjUgMHYtNmgtNnY2aDZabTYuNS0xMC4yNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxOC41djVoNVY2Ljc1Wk0xNyA0LjVoLTZ2NWg2di01Wm0tNy41IDBINi43NWMtMS4yNCAwLTIuMjUgMS0yLjI1IDIuMjVWOS41aDV2LTVabTkgMTMuNUgxOGEyIDIgMCAwIDAtMiAydjVjMCAxLjEuOSAyIDIgMmg3YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTItMmgtLjV2LTFhMyAzIDAgMSAwLTYgMHYxWm0xLjUtMWExLjUgMS41IDAgMCAxIDMgMHYxaC0zdi0xWm0zIDUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazMyRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTG9jazMyRmlsbGVkJywgXCIzMlwiLCBbXCJNOSA0aDF2Nkg0VjlhNSA1IDAgMCAxIDUtNVptMyAwaDh2NmgtOFY0Wm0wIDhoOHY0Yy0uNDYuNi0uNzggMS4zMy0uOTIgMi4xYTQgNCAwIDAgMC0yLjU0IDEuOUgxMnYtOFptMTIgMmE1IDUgMCAwIDEgNCAydi00aC02djIuNDJhNC45OCA0Ljk4IDAgMCAxIDItLjQyWm0tMTIgOGg0djZoLTR2LTZaTTIyIDR2Nmg2VjlhNSA1IDAgMCAwLTUtNWgtMVptLTEyIDhINHY4aDZ2LThaTTQgMjJoNnY2SDlhNSA1IDAgMCAxLTUtNXYtMVptMTYuNS0yLjVIMjBhMi41IDIuNSAwIDAgMC0yLjUgMi41djZhMi41IDIuNSAwIDAgMCAyLjUgMi41aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di02YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtLjVWMTlhMy41IDMuNSAwIDEgMC03IDB2LjVabTItLjVhMS41IDEuNSAwIDAgMSAzIDB2LjVoLTNWMTlabTMuNSA2YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazMyUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxvY2szMlJlZ3VsYXInLCBcIjMyXCIsIFtcIk00IDlhNSA1IDAgMCAxIDUtNWgxNGE1IDUgMCAwIDEgNSA1djdhNS4wMiA1LjAyIDAgMCAwLTItMS41OFYxM2gtNXYyYTUgNSAwIDAgMC0xLjkyIDMuMWwtLjA4LjAzVjEzaC02djZoNC4zNWE0IDQgMCAwIDAtMS4yMiAySDEzdjVoM3YySDlhNSA1IDAgMCAxLTUtNVY5Wm01LTNhMyAzIDAgMCAwLTMgM3YyaDVWNkg5Wm00IDB2NWg2VjZoLTZabS0yIDEzdi02SDZ2Nmg1Wm0tNSAydjJhMyAzIDAgMCAwIDMgM2gydi01SDZaTTIxIDZ2NWg1VjlhMyAzIDAgMCAwLTMtM2gtMlptLS41IDEzLjVIMjBhMi41IDIuNSAwIDAgMC0yLjUgMi41djZhMi41IDIuNSAwIDAgMCAyLjUgMi41aDhhMi41IDIuNSAwIDAgMCAyLjUtMi41di02YTIuNSAyLjUgMCAwIDAtMi41LTIuNWgtLjVWMTlhMy41IDMuNSAwIDEgMC03IDB2LjVabTItLjVhMS41IDEuNSAwIDAgMSAzIDB2LjVoLTNWMTlabTMuNSA2YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazQ4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTG9jazQ4RmlsbGVkJywgXCI0OFwiLCBbXCJNMTIuMjUgNkE2LjI1IDYuMjUgMCAwIDAgNiAxMi4yNXY0LjI1aDEwLjVWNmgtNC4yNVpNMTkgNnYxMC41aDEwVjZIMTlabS0yLjUgMTNINnYxMGgxMC41VjE5Wk0xOSAyOVYxOWgxMHY5LjQyYTUgNSAwIDAgMC0xIC41OGgtOVptMTgtN2MxLjk2IDAgMy43My44IDUgMi4xVjE5SDMxLjV2NS42N0E2Ljk5IDYuOTkgMCAwIDEgMzcgMjJaTTI2IDMzYTUgNSAwIDAgMSAuMjMtMS41SDE5VjQyaDd2LTlabS05LjUtMS41SDZ2NC4yNUM2IDM5LjIgOC44IDQyIDEyLjI1IDQyaDQuMjVWMzEuNVptMjUuNS0xNXYtNC4yNUM0MiA4LjggMzkuMiA2IDM1Ljc1IDZIMzEuNXYxMC41SDQyWk0zMiAzMGgtMWEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtM1YzM2EzIDMgMCAwIDAtMy0zaC0xdi0xYTUgNSAwIDAgMC0xMCAwdjFabTIuNS0xYTIuNSAyLjUgMCAwIDEgNSAwdjFoLTV2LTFabTUuNSA5YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTG9jazQ4UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZUxvY2s0OFJlZ3VsYXInLCBcIjQ4XCIsIFtcIk0zNS43NSA2QzM5LjIgNiA0MiA4LjggNDIgMTIuMjVWMjQuMWE3IDcgMCAwIDAtMi41LTEuNjRWMTkuNUgzMXY1LjljLS40OS44LS44MSAxLjcxLS45NCAyLjY5QTUgNSAwIDAgMCAyNi40MiAzMUgxOS41djguNUgyNlY0MkgxMi4yNUE2LjI1IDYuMjUgMCAwIDEgNiAzNS43NXYtMjMuNUM2IDguOCA4LjggNiAxMi4yNSA2aDIzLjVaTTguNSAxOS41djlIMTd2LTlIOC41Wm0wIDExLjV2NC43NWEzLjc1IDMuNzUgMCAwIDAgMy43NSAzLjc1SDE3VjMxSDguNVptMzEtMTR2LTQuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NUgzMVYxN2g4LjVabS0xMS04LjVoLTlWMTdoOVY4LjVaTTE3IDguNWgtNC43NWEzLjc1IDMuNzUgMCAwIDAtMy43NSAzLjc1VjE3SDE3VjguNVptMTEuNSAyMHYtOWgtOXY5aDlaTTMyIDMwaC0xYTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zVjMzYTMgMyAwIDAgMC0zLTNoLTF2LTFhNSA1IDAgMCAwLTEwIDB2MVptMi41LTFhMi41IDIuNSAwIDAgMSA1IDB2MWgtNXYtMVptNS41IDlhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQWJvdmUxNkZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVBYm92ZTE2RmlsbGVkJywgXCIxNlwiLCBbXCJNMi41IDJhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExWk0xMSA2aDIuNWMuMjggMCAuNS4yMi41LjVWMTBoLTNWNlptLTkgLjVjMC0uMjguMjItLjUuNS0uNUg1djRIMlY2LjVaTTYgMTBWNy40MWMuMTYuMDYuMzMuMDkuNS4wOWExLjUgMS41IDAgMSAwIDMgMGMuMTcgMCAuMzQtLjAzLjUtLjA5VjEwSDZabS0xIDFIMnYuNUEyLjUgMi41IDAgMCAwIDQuNSAxNEg1di0zWm01IDN2LTNINnYzaDRabTEuNSAwSDExdi0zaDN2LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41Wk05Ljg1IDYuMzVhLjUuNSAwIDAgMS0uNyAwbC0uNjUtLjY0VjcuNWEuNS41IDAgMCAxLTEgMFY1LjdsLS42NS42NWEuNS41IDAgMSAxLS43LS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBsMS41IDEuNWMuMi4yLjIuNSAwIC43WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQWJvdmUxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQWJvdmUxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0yLjUgMmEuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTFabTkgMTJhMi41IDIuNSAwIDAgMCAyLjUtMi41di01YS41LjUgMCAwIDAtLjUtLjVIMTFhMS41IDEuNSAwIDAgMS0xIDEuNDFWMTBINlY3LjQxQTEuNSAxLjUgMCAwIDEgNSA2SDIuNWEuNS41IDAgMCAwLS41LjV2NUEyLjUgMi41IDAgMCAwIDQuNSAxNGg3Wk0zIDEwVjdoMnYzSDNabTgtM2gydjNoLTJWN1ptLTEgNkg2di0yaDR2MlptLTUgMGgtLjVBMS41IDEuNSAwIDAgMSAzIDExLjVWMTFoMnYyWm02IDB2LTJoMnYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTFaTTkuODUgNi4zNWEuNS41IDAgMCAxLS43IDBsLS42NS0uNjRWNy41YS41LjUgMCAwIDEtMSAwVjUuN2wtLjY1LjY1YS41LjUgMCAxIDEtLjctLjdsMS41LTEuNWMuMi0uMi41LS4yLjcgMGwxLjUgMS41Yy4yLjIuMi41IDAgLjdaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVBYm92ZTIwRmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUFib3ZlMjBGaWxsZWQnLCBcIjIwXCIsIFtcIk0zLjUgM2EuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMWgtMTNaTTggMTJWOC40MWMuMTYuMDYuMzMuMDkuNS4wOXYxYTEuNSAxLjUgMCAwIDAgMyAwdi0xYy4xNyAwIC4zNC0uMDMuNS0uMDlWMTJIOFptNyA1aC0ydi00aDR2MmEyIDIgMCAwIDEtMiAyWm0yLTVoLTRWOGgzLjVjLjI4IDAgLjUuMjIuNS41VjEyWm0tOSA1aDR2LTRIOHY0Wk03IDh2NEgzVjguNWMwLS4yOC4yMi0uNS41LS41SDdabTAgOUg1YTIgMiAwIDAgMS0yLTJ2LTJoNHY0Wm00LjE1LTkuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBsLTEuNSAxLjVhLjUuNSAwIDEgMCAuNy43bC42NS0uNjRWOS41YS41LjUgMCAwIDAgMSAwVjYuN2wuNjUuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVBYm92ZTIwUmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVBYm92ZTIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMgMy41YzAtLjI4LjIyLS41LjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjVaTTMuNSA4aDMuODhhMS41MiAxLjUyIDAgMCAwIC42Mi40MVYxMmg0VjguNDFhMS41IDEuNSAwIDAgMCAuNjItLjQxaDMuODhjLjI4IDAgLjUuMjIuNS41VjE1YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjguNWMwLS4yOC4yMi0uNS41LS41Wm0uNSA1djJhMSAxIDAgMCAwIDEgMWgydi0zSDRabTggM3YtM0g4djNoNFptMSAwaDJhMSAxIDAgMCAwIDEtMXYtMmgtM3YzWm0wLTRoM1Y5aC0zdjNaTTQgOXYzaDNWOUg0Wm03LjE1LTEuNjVhLjUuNSAwIDAgMCAuNy0uN2wtMS41LTEuNWEuNS41IDAgMCAwLS43IDBsLTEuNSAxLjVhLjUuNSAwIDEgMCAuNy43bC42NS0uNjRWOS41YS41LjUgMCAwIDAgMSAwVjYuN2wuNjUuNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVBYm92ZTI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUFib3ZlMjRGaWxsZWQnLCBcIjI0XCIsIFtcIk0yMC4yNSA0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDE2LjVabS41MyA1LjIyYy4xNC4xNC4yMi4zMy4yMi41M3Y0LjI1aC01di01aDQuMjVjLjIgMCAuMzkuMDguNTMuMjJaTTE0LjUgMTQuNXYtNC4wMmMtLjI1LjA0LS41LjAyLS43NS0uMDV2LjgyYTEuNzUgMS43NSAwIDEgMS0zLjUgMHYtLjgyYy0uMjQuMDctLjUuMDktLjc1LjA1djQuMDJoNVptLTUgMS41aDV2NWgtNXYtNVpNOCAxNC41di01SDMuNzVhLjc1Ljc1IDAgMCAwLS43NS43NXY0LjI1aDVaTTMgMTZoNXY1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzVWMTZabTEzIDBoNXYxLjc1YzAgMS44LTEuNDYgMy4yNS0zLjI1IDMuMjVIMTZ2LTVabS0xLjE5LTYuNzVhLjc1Ljc1IDAgMCAxLTEuMDYuMDZsLTEtLjg5djIuODNhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNDJsLTEgLjlhLjc1Ljc1IDAgMCAxLTEtMS4xM2wyLjI1LTJhLjc1Ljc1IDAgMCAxIDEgMGwyLjI1IDJjLjMuMjcuMzQuNzUuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUFib3ZlMjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUFib3ZlMjRSZWd1bGFyJywgXCIyNFwiLCBbXCJNMjAuMjUgNC41YS43NS43NSAwIDAgMCAwLTEuNUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxNi41Wm0wIDRjLjQxIDAgLjc1LjM0Ljc1Ljc1djguNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDYuMjVBMy4yNSAzLjI1IDAgMCAxIDMgMTcuNzV2LTguNWMwLS40MS4zNC0uNzUuNzUtLjc1aDQuMjdBMS43NSAxLjc1IDAgMCAwIDEwIDEwLjQ4VjE0aDR2LTMuNTJhMS43NSAxLjc1IDAgMCAwIDEuOTgtMS45OGg0LjI3Wk04LjUgMTBoLTR2NGg0di00Wm0wIDUuNWgtNHYyLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1SDguNXYtNFptNS41IDR2LTRoLTR2NGg0Wm0xLjUgMGgyLjI1Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVYxNS41aC00djRabTAtOS41djRoNHYtNGgtNFptLS42OS0uNzVhLjc1Ljc1IDAgMCAxLTEuMDYuMDZsLTEtLjg5djIuODNhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNDJsLTEgLjlhLjc1Ljc1IDAgMCAxLTEtMS4xM2wyLjI1LTJhLjc1Ljc1IDAgMCAxIDEgMGwyLjI1IDJjLjMuMjcuMzQuNzUuMDYgMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUFib3ZlMjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQWJvdmUyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTI0LjI1IDQuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NWEuNzUuNzUgMCAwIDAgMCAxLjVoMjAuNVpNMyAxN3YtNWExIDEgMCAwIDEgMS0xaDUuNXY2SDNabTAgNC4yNVYxOC41aDYuNVYyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1Wk0xNyAyNWgtNnYtNi41aDZWMjVabTQuMjUgMEgxOC41di02LjVIMjV2Mi43NUEzLjc1IDMuNzUgMCAwIDEgMjEuMjUgMjVaTTI0IDExYTEgMSAwIDAgMSAxIDF2NWgtNi41di02SDI0Wm0tMTMgNmg2di02aC0xLjI1djFhMS43NSAxLjc1IDAgMSAxLTMuNSAwdi0xSDExdjZabTQuNzUtNy42OS0xLS44OVYxMmEuNzUuNzUgMCAwIDEtMS41IDBWOC40MmwtMSAuOWEuNzUuNzUgMCAwIDEtMS0xLjEzbDIuMjUtMmEuNzUuNzUgMCAwIDEgMSAwbDIuMjUgMmEuNzUuNzUgMCAwIDEtMSAxLjEyWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQWJvdmUyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQWJvdmUyOFJlZ3VsYXInLCBcIjI4XCIsIFtcIk0zIDMuNzVjMC0uNDEuMzQtLjc1Ljc1LS43NWgyMC41YS43NS43NSAwIDAgMSAwIDEuNUgzLjc1QS43NS43NSAwIDAgMSAzIDMuNzVabTcuNDQgNi4xNmMuMTYuMTguMzUuMzIuNTYuNDJWMTdoNnYtNi42N2ExLjc1IDEuNzUgMCAwIDAgLjgzLS44M0gyNGExIDEgMCAwIDEgMSAxdjEwLjc1QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1VjEwLjVhMSAxIDAgMCAxIDEtMWg2LjE3Yy4wNy4xNS4xNi4yOS4yNy40MVpNOS41IDExaC01djZoNXYtNlptMCA3LjVoLTV2Mi43NWMwIDEuMjQgMSAyLjI1IDIuMjUgMi4yNUg5LjV2LTVabTEuNSA1aDZ2LTVoLTZ2NVptMTAuMjUgMGMxLjI0IDAgMi4yNS0xIDIuMjUtMi4yNVYxOC41aC01djVoMi43NVpNMjMuNSAxN3YtNmgtNXY2aDVabS03Ljc1LTcuNjktMS0uODlWMTJhLjc1Ljc1IDAgMCAxLTEuNSAwVjguNDJsLTEgLjlhLjc1Ljc1IDAgMCAxLTEtMS4xM2wyLjI1LTJhLjc1Ljc1IDAgMCAxIDEgMGwyLjI1IDJhLjc1Ljc1IDAgMCAxLTEgMS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUFib3ZlMzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVBYm92ZTMyTGlnaHQnLCBcIjMyXCIsIFtcIk0zLjUgM2EuNS41IDAgMCAwIDAgMWgyNWEuNS41IDAgMCAwIDAtMWgtMjVabTEyLjE1IDMuMTVjLjItLjIuNS0uMi43IDBsMyAzYS41LjUgMCAwIDEtLjcuN0wxNi41IDcuNzF2Ni43OWEuNS41IDAgMCAxLTEgMFY3LjdsLTIuMTUgMi4xNWEuNS41IDAgMCAxLS43LS43bDMtM1pNMy41IDExYS41LjUgMCAwIDAtLjUuNXYxM0E0LjUgNC41IDAgMCAwIDcuNSAyOWgxN2E0LjUgNC41IDAgMCAwIDQuNS00LjV2LTEzYS41LjUgMCAwIDAtLjUtLjVoLThhLjUuNSAwIDAgMC0uNS41VjIwaC04di04LjVhLjUuNSAwIDAgMC0uNS0uNWgtOFptNy41IDlINHYtOGg3djhabS03IDFoN3Y3SDcuNUEzLjUgMy41IDAgMCAxIDQgMjQuNVYyMVptMTcgN3YtN2g3djMuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVIMjFabTctOGgtN3YtOGg3djhabS0xNiA4di03aDh2N2gtOFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUJlbG93MTZGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQmVsb3cxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTEzLjUgMTRhLjUuNSAwIDAgMCAwLTFoLTExYS41LjUgMCAwIDAgMCAxaDExWk01IDEwSDIuNWEuNS41IDAgMCAxLS41LS41VjZoM3Y0Wm05LS41YS41LjUgMCAwIDEtLjUuNUgxMVY2aDN2My41Wk0xMCA2djIuNTlhMS41IDEuNSAwIDAgMC0uNS0uMDkgMS41IDEuNSAwIDEgMC0zIDBjLS4xNyAwLS4zNC4wMy0uNS4wOVY2aDRabTEtMWgzdi0uNUEyLjUgMi41IDAgMCAwIDExLjUgMkgxMXYzWk02IDJ2M2g0VjJINlpNNC41IDJINXYzSDJ2LS41QTIuNSAyLjUgMCAwIDEgNC41IDJabTEuNjUgNy42NWMuMi0uMi41LS4yLjcgMGwuNjUuNjRWOC41YS41LjUgMCAwIDEgMSAwdjEuOGwuNjUtLjY1YS41LjUgMCAxIDEgLjcuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQmVsb3cxNlJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQmVsb3cxNlJlZ3VsYXInLCBcIjE2XCIsIFtcIk0xMy41IDE0YS41LjUgMCAwIDAgMC0xaC0xMWEuNS41IDAgMCAwIDAgMWgxMVptLTktMTJBMi41IDIuNSAwIDAgMCAyIDQuNXY1YzAgLjI4LjIyLjUuNS41SDVhMS41IDEuNSAwIDAgMSAxLTEuNDFWNmg0djIuNTlBMS41IDEuNSAwIDAgMSAxMSAxMGgyLjVhLjUuNSAwIDAgMCAuNS0uNXYtNUEyLjUgMi41IDAgMCAwIDExLjUgMmgtN1pNMTMgNnYzaC0yVjZoMlpNNSA5SDNWNmgydjNabTEtNmg0djJINlYzWm01IDBoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNWgtMlYzWk01IDN2Mkgzdi0uNUMzIDMuNjcgMy42NyAzIDQuNSAzSDVabTEuMTUgNi42NWMuMi0uMi41LS4yLjcgMGwuNjUuNjRWOC41YS41LjUgMCAwIDEgMSAwdjEuOGwuNjUtLjY1YS41LjUgMCAxIDEgLjcuN2wtMS41IDEuNWEuNS41IDAgMCAxLS43IDBsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQmVsb3cyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVCZWxvdzIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTYuNSAxN2EuNS41IDAgMCAwIDAtMWgtMTNhLjUuNSAwIDAgMCAwIDFoMTNaTTEyIDh2My41OWExLjUgMS41IDAgMCAwLS41LS4wOXYtMWExLjUgMS41IDAgMCAwLTMgMHYxYy0uMTcgMC0uMzQuMDMtLjUuMDlWOGg0Wk01IDNoMnY0SDNWNWMwLTEuMS45LTIgMi0yWk0zIDhoNHY0SDMuNWEuNS41IDAgMCAxLS41LS41VjhabTktNUg4djRoNFYzWm0xIDlWOGg0djMuNWEuNS41IDAgMCAxLS41LjVIMTNabTAtOWgyYTIgMiAwIDAgMSAyIDJ2MmgtNFYzWm0tNC4xNSA5LjY1YS41LjUgMCAwIDAtLjcuN2wxLjUgMS41Yy4yLjIuNS4yLjcgMGwxLjUtMS41YS41LjUgMCAwIDAtLjctLjdsLS42NS42NFYxMC41YS41LjUgMCAwIDAtMSAwdjIuOGwtLjY1LS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUJlbG93MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUJlbG93MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTcgMTYuNWEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEgMC0xaDEzYy4yOCAwIC41LjIyLjUuNVptLS41LTQuNWgtMy44OGExLjUgMS41IDAgMCAwLS42Mi0uNDFWOEg4djMuNTlhMS41IDEuNSAwIDAgMC0uNjIuNDFIMy41YS41LjUgMCAwIDEtLjUtLjVWNWMwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2Ni41YS41LjUgMCAwIDEtLjUuNVpNMTYgN1Y1YTEgMSAwIDAgMC0xLTFoLTJ2M2gzWk04IDR2M2g0VjRIOFpNNyA0SDVhMSAxIDAgMCAwLTEgMXYyaDNWNFptMCA0SDR2M2gzVjhabTkgM1Y4aC0zdjNoM1ptLTcuMTUgMS42NWEuNS41IDAgMCAwLS43LjdsMS41IDEuNWMuMi4yLjUuMi43IDBsMS41LTEuNWEuNS41IDAgMCAwLS43LS43bC0uNjUuNjRWMTAuNWEuNS41IDAgMCAwLTEgMHYyLjhsLS42NS0uNjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVCZWxvdzI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUJlbG93MjRGaWxsZWQnLCBcIjI0XCIsIFtcIk05LjUgOS41djQuMDJjLjI1LS4wNC41LS4wMi43NS4wNXYtLjgyYTEuNzUgMS43NSAwIDEgMSAzLjUgMHYuODJjLjI0LS4wNy41LS4wOS43NS0uMDVWOS41aC01Wk04IDkuNXY1SDMuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWOS41aDVaTTkuNSA4aDVWM2gtNXY1Wk0xNiA5LjV2NWg0LjI1Yy40MSAwIC43NS0uMzQuNzUtLjc1VjkuNWgtNVpNMjEgOGgtNVYzaDEuNzVDMTkuNTUgMyAyMSA0LjQ2IDIxIDYuMjVWOFpNOCA4SDNWNi4yNUMzIDQuNDUgNC40NiAzIDYuMjUgM0g4djVaTTMuNzUgMTkuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTYuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVptNS40NC00Ljc1YS43NS43NSAwIDAgMSAxLjA2LS4wNmwxIC44OXYtMi44M2EuNzUuNzUgMCAwIDEgMS41IDB2Mi44M2wxLS45YS43NS43NSAwIDAgMSAxIDEuMTNsLTIuMjUgMmEuNzUuNzUgMCAwIDEtMSAwbC0yLjI1LTJhLjc1Ljc1IDAgMCAxLS4wNi0xLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlQmVsb3cyNFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQmVsb3cyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk0zLjc1IDE1LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzV2LTguNUMzIDQuNDUgNC40NiAzIDYuMjUgM2gxMS41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djguNWMwIC40MS0uMzQuNzUtLjc1Ljc1aC00LjI3QTEuNzUgMS43NSAwIDAgMCAxNCAxMy41MlYxMGgtNHYzLjUyYTEuNzUgMS43NSAwIDAgMC0xLjk4IDEuOThIMy43NVptNi4yNS03aDR2LTRoLTR2NFptOS41IDUuNXYtNGgtNHY0aDRabS00LTUuNWg0VjYuMjVjMC0uOTctLjc4LTEuNzUtMS43NS0xLjc1SDE1LjV2NFptLTctNEg2LjI1Yy0uOTcgMC0xLjc1Ljc4LTEuNzUgMS43NVY4LjVoNHYtNFptLTQgOS41aDR2LTRoLTR2NFptLS43NSA1LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDE2LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDMuNzVabTUuNDQtNC43NWEuNzUuNzUgMCAwIDEgMS4wNi0uMDZsMSAuODl2LTIuODNhLjc1Ljc1IDAgMCAxIDEuNSAwdjIuODNsMS0uOWEuNzUuNzUgMCAwIDEgMSAxLjEzbC0yLjI1IDJhLjc1Ljc1IDAgMCAxLTEgMGwtMi4yNS0yYS43NS43NSAwIDAgMS0uMDYtMS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUJlbG93MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQmVsb3cyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTMuNzUgMjMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMjAuNWEuNzUuNzUgMCAwIDAgMC0xLjVIMy43NVpNMjUgMTF2NWExIDEgMCAwIDEtMSAxaC01LjV2LTZIMjVabTAtNC4yNVY5LjVoLTYuNVYzaDIuNzVBMy43NSAzLjc1IDAgMCAxIDI1IDYuNzVaTTExIDNoNnY2LjVoLTZWM1pNNi43NSAzSDkuNXY2LjVIM1Y2Ljc1QTMuNzUgMy43NSAwIDAgMSA2Ljc1IDNaTTQgMTdhMSAxIDAgMCAxLTEtMXYtNWg2LjV2Nkg0Wm0xMy02aC02djZoMS4yNXYtMWExLjc1IDEuNzUgMCAxIDEgMy41IDB2MUgxN3YtNlptLTQuNzUgNy42OSAxIC44OVYxNmEuNzUuNzUgMCAwIDEgMS41IDB2My41OGwxLS45YS43NS43NSAwIDAgMSAxIDEuMTNsLTIuMjUgMmEuNzUuNzUgMCAwIDEtMSAwbC0yLjI1LTJhLjc1Ljc1IDAgMCAxIDEtMS4xMlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUJlbG93MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUJlbG93MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjUgMjQuMjVjMCAuNDEtLjM0Ljc1LS43NS43NUgzLjc1YS43NS43NSAwIDAgMSAwLTEuNWgyMC41Yy40MSAwIC43NS4zNC43NS43NVptLTcuNDQtNi4xNmExLjc0IDEuNzQgMCAwIDAtLjU2LS40MlYxMWgtNnY2LjY3YTEuNzQgMS43NCAwIDAgMC0uODMuODNINGExIDEgMCAwIDEtMS0xVjYuNzVBMy43NSAzLjc1IDAgMCAxIDYuNzUgM2gxNC41QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1VjE3LjVhMSAxIDAgMCAxLTEgMWgtNi4xN2ExLjc1IDEuNzUgMCAwIDAtLjI3LS40MVpNMTguNSAxN2g1di02aC01djZabTAtNy41aDVWNi43NWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxOC41djVabS0xLjUtNWgtNnY1aDZ2LTVabS0xMC4yNSAwYy0xLjI0IDAtMi4yNSAxLTIuMjUgMi4yNVY5LjVoNXYtNUg2Ljc1Wk00LjUgMTF2Nmg1di02aC01Wm03Ljc1IDcuNjkgMSAuODlWMTZhLjc1Ljc1IDAgMCAxIDEuNSAwdjMuNThsMS0uOWEuNzUuNzUgMCAwIDEgMSAxLjEzbC0yLjI1IDJhLjc1Ljc1IDAgMCAxLTEgMGwtMi4yNS0yYS43NS43NSAwIDAgMSAxLTEuMTJaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVCZWxvdzMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlQmVsb3czMkxpZ2h0JywgXCIzMlwiLCBbXCJNMy41IDI5YS41LjUgMCAwIDEgMC0xaDI1YS41LjUgMCAwIDEgMCAxaC0yNVptMTIuMTUtMy4xNWMuMi4yLjUuMi43IDBsMy0zYS41LjUgMCAwIDAtLjctLjdsLTIuMTUgMi4xNFYxNy41YS41LjUgMCAwIDAtMSAwdjYuOGwtMi4xNS0yLjE1YS41LjUgMCAwIDAtLjcuN2wzIDNaTTMuNSAyMWEuNS41IDAgMCAxLS41LS41di0xM0E0LjUgNC41IDAgMCAxIDcuNSAzaDE3QTQuNSA0LjUgMCAwIDEgMjkgNy41djEzYS41LjUgMCAwIDEtLjUuNWgtOGEuNS41IDAgMCAxLS41LS41VjEyaC04djguNWEuNS41IDAgMCAxLS41LjVoLThabTcuNS05SDR2OGg3di04Wm0tNy0xaDdWNEg3LjVBMy41IDMuNSAwIDAgMCA0IDcuNVYxMVptMTctN3Y3aDdWNy41QTMuNSAzLjUgMCAwIDAgMjQuNSA0SDIxWm03IDhoLTd2OGg3di04Wk0xMiA0djdoOFY0aC04WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlTGVmdDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUxlZnQxNkZpbGxlZCcsIFwiMTZcIiwgW1wiTTIgMTMuNWEuNS41IDAgMCAwIDEgMHYtMTFhLjUuNSAwIDAgMC0xIDB2MTFaTTYgNVYyLjVjMC0uMjguMjItLjUuNS0uNUgxMHYzSDZabS41IDlhLjUuNSAwIDAgMS0uNS0uNVYxMWg0djNINi41Wm0zLjUtNEg3LjQxYy4wNi0uMTYuMDktLjMzLjA5LS41YTEuNSAxLjUgMCAxIDAgMC0zYzAtLjE3LS4wMy0uMzQtLjA5LS41SDEwdjRabTEgMXYzaC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxMWgtM1ptMy01aC0zdjRoM1Y2Wm0wLTEuNVY1aC0zVjJoLjVBMi41IDIuNSAwIDAgMSAxNCA0LjVaTTYuMzUgNi4xNWMuMi4yLjIuNSAwIC43bC0uNjQuNjVINy41YS41LjUgMCAwIDEgMCAxSDUuN2wuNjUuNjVhLjUuNSAwIDEgMS0uNy43bC0xLjUtMS41YS41LjUgMCAwIDEgMC0uN2wxLjUtMS41Yy4yLS4yLjUtLjIuNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlTGVmdDE2UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVMZWZ0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMiAxMy41YS41LjUgMCAwIDAgMSAwdi0xMWEuNS41IDAgMCAwLTEgMHYxMVptMTItOUEyLjUgMi41IDAgMCAwIDExLjUgMmgtNWEuNS41IDAgMCAwLS41LjVWNWExLjUgMS41IDAgMCAxIDEuNDEgMUgxMHY0SDcuNDFBMS41IDEuNSAwIDAgMSA2IDExdjIuNWMwIC4yOC4yMi41LjUuNWg1YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN1pNMTAgMTNIN3YtMmgzdjJaTTcgNVYzaDN2Mkg3Wm02IDF2NGgtMlY2aDJabTAgNXYuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTF2LTJoMlptMC02aC0yVjNoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNVpNNi4zNSA2LjE1Yy4yLjIuMi41IDAgLjdsLS42NC42NUg3LjVhLjUuNSAwIDAgMSAwIDFINS43bC42NS42NWEuNS41IDAgMSAxLS43LjdsLTEuNS0xLjVhLjUuNSAwIDAgMSAwLS43bDEuNS0xLjVjLjItLjIuNS0uMi43IDBaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVMZWZ0MjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlTGVmdDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMyAxNi41YS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLTEgMHYxM1ptOS00LjVIOC40MWMuMDYtLjE2LjA5LS4zMy4wOS0uNWgxYTEuNSAxLjUgMCAwIDAgMC0zaC0xYzAtLjE3LS4wMy0uMzQtLjA5LS41SDEydjRabTUtN3YyaC00VjNoMmEyIDIgMCAwIDEgMiAyWm0tNS0ydjRIOFYzLjVjMC0uMjguMjItLjUuNS0uNUgxMlptNSA5VjhoLTR2NGg0Wm0tOSAxaDR2NEg4LjVhLjUuNSAwIDAgMS0uNS0uNVYxM1ptOSAwdjJhMiAyIDAgMCAxLTIgMmgtMnYtNGg0Wk03LjM1IDguODVhLjUuNSAwIDEgMC0uNy0uN2wtMS41IDEuNWEuNS41IDAgMCAwIDAgLjdsMS41IDEuNWEuNS41IDAgMCAwIC43LS43bC0uNjQtLjY1SDkuNWEuNS41IDAgMCAwIDAtMUg2LjdsLjY1LS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUxlZnQyMFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlTGVmdDIwUmVndWxhcicsIFwiMjBcIiwgW1wiTTMuNSAxN2EuNS41IDAgMCAxLS41LS41di0xM2EuNS41IDAgMCAxIDEgMHYxM2EuNS41IDAgMCAxLS41LjVabTQuNS0uNXYtMy44OGExLjU1IDEuNTUgMCAwIDAgLjQxLS42MkgxMlY4SDguNDFBMS41IDEuNSAwIDAgMCA4IDcuMzhWMy41YzAtLjI4LjIyLS41LjUtLjVIMTVhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDguNWEuNS41IDAgMCAxLS41LS41Wm01LS41aDJhMSAxIDAgMCAwIDEtMXYtMmgtM3YzWm0zLThoLTN2NGgzVjhabTAtMVY1YTEgMSAwIDAgMC0xLTFoLTJ2M2gzWm0tNCAwVjRIOXYzaDNabS0zIDloM3YtM0g5djNaTTcuMzUgOC44NWEuNS41IDAgMSAwLS43LS43bC0xLjUgMS41YS41LjUgMCAwIDAgMCAuN2wxLjUgMS41YS41LjUgMCAwIDAgLjctLjdsLS42NC0uNjVIOS41YS41LjUgMCAwIDAgMC0xSDYuN2wuNjUtLjY1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlTGVmdDI0RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUxlZnQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTE2IDIxaDEuNzVjMS44IDAgMy4yNS0xLjQ2IDMuMjUtMy4yNVYxNmgtNXY1Wm0wLTYuNWg1di01aC01djVabS01LjUyLTVoNC4wMnY1aC00LjAyYy4wNC0uMjUuMDItLjUtLjA1LS43NWguODJhMS43NSAxLjc1IDAgMSAwIDAtMy41aC0uODJjLjA3LS4yNC4wOS0uNS4wNS0uNzVaTTE2IDhoNVY2LjI1QzIxIDQuNDUgMTkuNTQgMyAxNy43NSAzSDE2djVabS0xLjUtNXY1aC01VjMuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoNC4yNVptMCAxM3Y1aC00LjI1YS43NS43NSAwIDAgMS0uNzUtLjc1VjE2aDVaTTQuNSAzLjc1YS43NS43NSAwIDAgMC0xLjUgMHYxNi41YS43NS43NSAwIDAgMCAxLjUgMFYzLjc1Wm00Ljc1IDUuNDRjLjMuMjcuMzQuNzUuMDYgMS4wNmwtLjg5IDFoMi44M2EuNzUuNzUgMCAwIDEgMCAxLjVIOC40MmwuOSAxYS43NS43NSAwIDAgMS0xLjEzIDFsLTItMi4yNWEuNzUuNzUgMCAwIDEgMC0xbDItMi4yNWEuNzUuNzUgMCAwIDEgMS4wNi0uMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVMZWZ0MjRSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUxlZnQyNFJlZ3VsYXInLCBcIjI0XCIsIFtcIk00LjUgMy43NWEuNzUuNzUgMCAwIDAtMS41IDB2MTYuNWEuNzUuNzUgMCAwIDAgMS41IDBWMy43NVptNCAwYzAtLjQxLjM0LS43NS43NS0uNzVoOC41QzE5LjU1IDMgMjEgNC40NiAyMSA2LjI1djExLjVjMCAxLjgtMS40NiAzLjI1LTMuMjUgMy4yNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1di00LjI3QTEuNzUgMS43NSAwIDAgMCAxMC40OCAxNEgxNHYtNGgtMy41MkExLjc1IDEuNzUgMCAwIDAgOC41IDguMDJWMy43NVpNMTAgMTkuNWg0di00aC00djRabTUuNS00djRoMi4yNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVWMTUuNWgtNFptNC01LjVoLTR2NGg0di00Wm0wLTEuNVY2LjI1YzAtLjk3LS43OC0xLjc1LTEuNzUtMS43NUgxNS41djRoNFptLTkuNS00djRoNHYtNGgtNFptLS43NSA0LjY5Yy4zLjI3LjM0Ljc1LjA2IDEuMDZsLS44OSAxaDIuODNhLjc1Ljc1IDAgMCAxIDAgMS41SDguNDJsLjkgMWEuNzUuNzUgMCAwIDEtMS4xMyAxbC0yLTIuMjVhLjc1Ljc1IDAgMCAxIDAtMWwyLTIuMjVhLjc1Ljc1IDAgMCAxIDEuMDYtLjA2WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlTGVmdDI4RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZUxlZnQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTQuNSAzLjc1YS43NS43NSAwIDAgMC0xLjUgMHYyMC41YS43NS43NSAwIDAgMCAxLjUgMFYzLjc1Wk0xNyAyNWgtNWExIDEgMCAwIDEtMS0xdi01LjVoNlYyNVptNC4yNSAwSDE4LjV2LTYuNUgyNXYyLjc1QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNVpNMjUgMTF2NmgtNi41di02SDI1Wm0wLTQuMjVWOS41aC02LjVWM2gyLjc1QTMuNzUgMy43NSAwIDAgMSAyNSA2Ljc1Wk0xMSA0YTEgMSAwIDAgMSAxLTFoNXY2LjVoLTZWNFptNiAxM3YtNmgtNnYxLjI1aDFhMS43NSAxLjc1IDAgMSAxIDAgMy41aC0xVjE3aDZabS03LjY5LTQuNzUtLjg5IDFIMTJhLjc1Ljc1IDAgMCAxIDAgMS41SDguNDJsLjkgMWEuNzUuNzUgMCAwIDEtMS4xMyAxbC0yLTIuMjVhLjc1Ljc1IDAgMCAxIDAtMWwyLTIuMjVhLjc1Ljc1IDAgMCAxIDEuMTIgMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZUxlZnQyOFJlZ3VsYXIgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlTGVmdDI4UmVndWxhcicsIFwiMjhcIiwgW1wiTTMuNzUgMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVWMy43NWEuNzUuNzUgMCAwIDEgMS41IDB2MjAuNWMwIC40MS0uMzQuNzUtLjc1Ljc1Wm02LjE2LTcuNDRjLjE4LS4xNi4zMi0uMzUuNDItLjU2SDE3di02aC02LjY3YTEuNzUgMS43NSAwIDAgMC0uODMtLjgzVjRhMSAxIDAgMCAxIDEtMWgxMC43NUEzLjc1IDMuNzUgMCAwIDEgMjUgNi43NXYxNC41QTMuNzUgMy43NSAwIDAgMSAyMS4yNSAyNUgxMC41YTEgMSAwIDAgMS0xLTF2LTYuMTdjLjE1LS4wNy4yOS0uMTYuNDEtLjI3Wm0xLjA5Ljk0djVoNnYtNWgtNlptNy41IDB2NWgyLjc1YzEuMjQgMCAyLjI1LTEgMi4yNS0yLjI1VjE4LjVoLTVabTAtMS41aDV2LTZoLTV2NlptNS0xMC4yNWMwLTEuMjQtMS0yLjI1LTIuMjUtMi4yNUgxOC41djVoNVY2Ljc1Wk0xNyA0LjVoLTZ2NWg2di01Wm0tNy42OSA3Ljc1LS44OSAxSDEyYS43NS43NSAwIDAgMSAwIDEuNUg4LjQybC45IDFhLjc1Ljc1IDAgMCAxLTEuMTMgMWwtMi0yLjI1YS43NS43NSAwIDAgMSAwLTFsMi0yLjI1YS43NS43NSAwIDAgMSAxLjEyIDFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVMZWZ0MzJMaWdodCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVMZWZ0MzJMaWdodCcsIFwiMzJcIiwgW1wiTTMgMjguNWEuNS41IDAgMCAwIDEgMHYtMjVhLjUuNSAwIDAgMC0xIDB2MjVabTMuMTUtMTIuMTVhLjUuNSAwIDAgMSAwLS43bDMtM2EuNS41IDAgMCAxIC43LjdMNy43MSAxNS41aDYuNzlhLjUuNSAwIDAgMSAwIDFINy43bDIuMTUgMi4xNWEuNS41IDAgMCAxLS43LjdsLTMtM1pNMTEgMjguNWMwIC4yOC4yMi41LjUuNWgxM2E0LjUgNC41IDAgMCAwIDQuNS00LjV2LTE3QTQuNSA0LjUgMCAwIDAgMjQuNSAzaC0xM2EuNS41IDAgMCAwLS41LjV2OGMwIC4yOC4yMi41LjUuNUgyMHY4aC04LjVhLjUuNSAwIDAgMC0uNS41djhabTktNy41djdoLTh2LTdoOFptMSA3di03aDd2My41YTMuNSAzLjUgMCAwIDEtMy41IDMuNUgyMVptNy0xN2gtN1Y0aDMuNUEzLjUgMy41IDAgMCAxIDI4IDcuNVYxMVptLTgtN3Y3aC04VjRoOFptOCAxNmgtN3YtOGg3djhaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVSaWdodDE2RmlsbGVkID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZVJpZ2h0MTZGaWxsZWQnLCBcIjE2XCIsIFtcIk0xNCAyLjVhLjUuNSAwIDAgMC0xIDB2MTFhLjUuNSAwIDAgMCAxIDB2LTExWk0xMCAxMXYyLjVhLjUuNSAwIDAgMS0uNS41SDZ2LTNoNFptLS41LTljLjI4IDAgLjUuMjIuNS41VjVINlYyaDMuNVpNNiA2aDIuNTlhMS41IDEuNSAwIDAgMC0uMDkuNSAxLjUgMS41IDAgMSAwIDAgM2MwIC4xNy4wMy4zNC4wOS41SDZWNlpNNSA1VjJoLS41QTIuNSAyLjUgMCAwIDAgMiA0LjVWNWgzWm0tMyA1aDNWNkgydjRabTAgMS41VjExaDN2M2gtLjVBMi41IDIuNSAwIDAgMSAyIDExLjVabTcuNjUtMS42NWEuNS41IDAgMCAxIDAtLjdsLjY0LS42NUg4LjVhLjUuNSAwIDAgMSAwLTFoMS44bC0uNjUtLjY1YS41LjUgMCAxIDEgLjctLjdsMS41IDEuNWMuMi4yLjIuNSAwIC43bC0xLjUgMS41YS41LjUgMCAwIDEtLjcgMFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZVJpZ2h0MTZSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZVJpZ2h0MTZSZWd1bGFyJywgXCIxNlwiLCBbXCJNMTQgMi41YS41LjUgMCAwIDAtMSAwdjExYS41LjUgMCAwIDAgMSAwdi0xMVptLTEyIDlBMi41IDIuNSAwIDAgMCA0LjUgMTRoNWEuNS41IDAgMCAwIC41LS41VjExYTEuNSAxLjUgMCAwIDEtMS40MS0xSDZWNmgyLjU5QTEuNSAxLjUgMCAwIDEgMTAgNVYyLjVhLjUuNSAwIDAgMC0uNS0uNWgtNUEyLjUgMi41IDAgMCAwIDIgNC41djdaTTYgM2gzdjJINlYzWm0zIDh2Mkg2di0yaDNabS02LTFWNmgydjRIM1ptMC01di0uNUMzIDMuNjcgMy42NyAzIDQuNSAzSDV2MkgzWm0wIDZoMnYyaC0uNUExLjUgMS41IDAgMCAxIDMgMTEuNVYxMVptNi42NS0xLjE1YS41LjUgMCAwIDEgMC0uN2wuNjQtLjY1SDguNWEuNS41IDAgMCAxIDAtMWgxLjhsLS42NS0uNjVhLjUuNSAwIDEgMSAuNy0uN2wxLjUgMS41Yy4yLjIuMi41IDAgLjdsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNyAwWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVNb3ZlUmlnaHQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVSaWdodDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTcgMy41YS41LjUgMCAwIDAtMSAwdjEzYS41LjUgMCAwIDAgMSAwdi0xM1pNOCA4aDMuNTlhMS41IDEuNSAwIDAgMC0uMDkuNWgtMWExLjUgMS41IDAgMSAwIDAgM2gxYzAgLjE3LjAzLjM0LjA5LjVIOFY4Wm0tNSA3di0yaDR2NEg1YTIgMiAwIDAgMS0yLTJabTUgMnYtNGg0djMuNWEuNS41IDAgMCAxLS41LjVIOFpNMyA4djRoNFY4SDNabTktMUg4VjNoMy41Yy4yOCAwIC41LjIyLjUuNVY3Wk0zIDdWNWMwLTEuMS45LTIgMi0yaDJ2NEgzWm05LjY1IDQuMTVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcuN2wuNjQuNjVIMTAuNWEuNS41IDAgMCAwIDAgMWgyLjhsLS42NS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZVJpZ2h0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZVJpZ2h0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNMTYuNSAzYy4yOCAwIC41LjIyLjUuNXYxM2EuNS41IDAgMCAxLTEgMHYtMTNjMC0uMjguMjItLjUuNS0uNVptLTQuNS41djMuODhhMS41IDEuNSAwIDAgMC0uNDEuNjJIOHY0aDMuNTlhMS41IDEuNSAwIDAgMCAuNDEuNjJ2My44OGEuNS41IDAgMCAxLS41LjVINWEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmg2LjVjLjI4IDAgLjUuMjIuNS41Wk03IDRINWExIDEgMCAwIDAtMSAxdjJoM1Y0Wm0tMyA4aDNWOEg0djRabTAgMXYyYTEgMSAwIDAgMCAxIDFoMnYtM0g0Wm00IDB2M2gzdi0zSDhabTMtOUg4djNoM1Y0Wm0xLjY1IDcuMTVhLjUuNSAwIDAgMCAuNy43bDEuNS0xLjVhLjUuNSAwIDAgMCAwLS43bC0xLjUtMS41YS41LjUgMCAwIDAtLjcuN2wuNjQuNjVIMTAuNWEuNS41IDAgMCAwIDAgMWgyLjhsLS42NS42NVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZVJpZ2h0MjRGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlUmlnaHQyNEZpbGxlZCcsIFwiMjRcIiwgW1wiTTggM0g2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjVWOGg1VjNabTAgNi41SDN2NWg1di01Wm0xLjUgNXYtNWg0LjAyYy0uMDQuMjUtLjAyLjUuMDUuNzVoLS44MmExLjc1IDEuNzUgMCAxIDAgMCAzLjVoLjgyYy0uMDcuMjQtLjA5LjUtLjA1Ljc1SDkuNVpNOCAxNkgzdjEuNzVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFIOHYtNVptMS41IDV2LTVoNXY0LjI1YS43NS43NSAwIDAgMS0uNzUuNzVIOS41Wm0wLTEzVjNoNC4yNWMuNDEgMCAuNzUuMzQuNzUuNzVWOGgtNVptMTAgMTIuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjE2LjVabS00Ljc1LTUuNDRhLjc1Ljc1IDAgMCAxLS4wNi0xLjA2bC44OS0xaC0yLjgzYS43NS43NSAwIDAgMSAwLTEuNWgyLjgzbC0uODktMWEuNzUuNzUgMCAxIDEgMS4xMi0xbDIgMi4yNWMuMjUuMjkuMjUuNzEgMCAxbC0yIDIuMjVhLjc1Ljc1IDAgMCAxLTEuMDYuMDZaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVSaWdodDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU1vdmVSaWdodDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTE1LjUgMy43NWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtOC41QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUMzIDE5LjU1IDQuNDYgMjEgNi4yNSAyMWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzV2LTQuMjdBMS43NSAxLjc1IDAgMCAxIDEzLjUyIDE0SDEwdi00aDMuNTJhMS43NSAxLjc1IDAgMCAxIDEuOTgtMS45OFYzLjc1Wk00LjUgMTR2LTRoNHY0aC00Wk0xNCA4LjVoLTR2LTRoNHY0Wm0tNS41IDBoLTRWNi4yNWMwLS45Ny43OC0xLjc1IDEuNzUtMS43NUg4LjV2NFptMCAxMUg2LjI1Yy0uOTcgMC0xLjc1LS43OC0xLjc1LTEuNzVWMTUuNWg0djRabTEuNS00aDR2NGgtNHYtNFptOS41LTExLjc1YS43NS43NSAwIDAgMSAxLjUgMHYxNi41YS43NS43NSAwIDAgMS0xLjUgMFYzLjc1Wm0tNC43NSA1LjQ0YS43NS43NSAwIDAgMC0uMDYgMS4wNmwuODkgMWgtMi44M2EuNzUuNzUgMCAwIDAgMCAxLjVoMi44M2wtLjg5IDFhLjc1Ljc1IDAgMSAwIDEuMTIgMWwyLTIuMjVhLjc1Ljc1IDAgMCAwIDAtMWwtMi0yLjI1YS43NS43NSAwIDAgMC0xLjA2LS4wNlpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZVJpZ2h0MjhGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlUmlnaHQyOEZpbGxlZCcsIFwiMjhcIiwgW1wiTTIzLjUgMjQuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjMuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjIwLjVaTTExIDNoNS41Yy4yOCAwIC41LjIyLjUuNXY2aC02VjNaTTYuNzUgM0g5LjV2Ni41SDNWNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzWk0zIDE3di02aDYuNXY2SDNabTAgNC4yNVYxOC41aDYuNVYyNUg2Ljc1QTMuNzUgMy43NSAwIDAgMSAzIDIxLjI1Wm0xNCAzLjI1YS41LjUgMCAwIDEtLjUuNUgxMXYtNi41aDZ2NlpNMTEgMTF2Nmg2di0xLjI1aC0xYTEuNzUgMS43NSAwIDEgMSAwLTMuNWgxVjExaC02Wm03LjY5IDQuNzUuODktMUgxNmEuNzUuNzUgMCAwIDEgMC0xLjVoMy41OGwtLjktMWEuNzUuNzUgMCAwIDEgMS4xMy0xbDIgMi4yNWMuMjUuMjkuMjUuNzEgMCAxbC0yIDIuMjVhLjc1Ljc1IDAgMCAxLTEuMTItMVpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlTW92ZVJpZ2h0MjhSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTW92ZVJpZ2h0MjhSZWd1bGFyJywgXCIyOFwiLCBbXCJNMjQuMjUgM2MuNDEgMCAuNzUuMzQuNzUuNzV2MjAuNWEuNzUuNzUgMCAwIDEtMS41IDBWMy43NWMwLS40MS4zNC0uNzUuNzUtLjc1Wm0tNi4xNiA3LjQ0Yy0uMTguMTYtLjMyLjM1LS40Mi41NkgxMXY2aDYuNjdhMS43NCAxLjc0IDAgMCAwIC44My44M1YyNGExIDEgMCAwIDEtMSAxSDYuNzVBMy43NSAzLjc1IDAgMCAxIDMgMjEuMjVWNi43NUEzLjc1IDMuNzUgMCAwIDEgNi43NSAzSDE3LjVhMSAxIDAgMCAxIDEgMXY2LjE3Yy0uMTUuMDctLjI5LjE2LS40MS4yN1pNMTcgOS41di01aC02djVoNlptLTcuNSAwdi01SDYuNzVjLTEuMjQgMC0yLjI1IDEtMi4yNSAyLjI1VjkuNWg1Wm0wIDEuNWgtNXY2aDV2LTZabS01IDEwLjI1YzAgMS4yNCAxIDIuMjUgMi4yNSAyLjI1SDkuNXYtNWgtNXYyLjc1Wk0xMSAyMy41aDZ2LTVoLTZ2NVptNy42OS03Ljc1Ljg5LTFIMTZhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNThsLS45LTFhLjc1Ljc1IDAgMCAxIDEuMTMtMWwyIDIuMjVjLjI1LjI5LjI1LjcxIDAgMWwtMiAyLjI1YS43NS43NSAwIDAgMS0xLjEyLTFaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU1vdmVSaWdodDMyTGlnaHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNb3ZlUmlnaHQzMkxpZ2h0JywgXCIzMlwiLCBbXCJNMjkgMy41YS41LjUgMCAwIDAtMSAwdjI1YS41LjUgMCAwIDAgMSAwdi0yNVptLTMuMTUgMTIuMTVjLjIuMi4yLjUgMCAuN2wtMyAzYS41LjUgMCAwIDEtLjctLjdsMi4xNC0yLjE1SDE3LjVhLjUuNSAwIDAgMSAwLTFoNi44bC0yLjE1LTIuMTVhLjUuNSAwIDAgMSAuNy0uN2wzIDNaTTIxIDMuNWEuNS41IDAgMCAwLS41LS41aC0xM0E0LjUgNC41IDAgMCAwIDMgNy41djE3QTQuNSA0LjUgMCAwIDAgNy41IDI5aDEzYS41LjUgMCAwIDAgLjUtLjV2LThhLjUuNSAwIDAgMC0uNS0uNUgxMnYtOGg4LjVhLjUuNSAwIDAgMCAuNS0uNXYtOFpNMTIgMTFWNGg4djdoLThabS0xLTd2N0g0VjcuNUEzLjUgMy41IDAgMCAxIDcuNSA0SDExWk00IDIxaDd2N0g3LjVBMy41IDMuNSAwIDAgMSA0IDI0LjVWMjFabTggN3YtN2g4djdoLThaTTQgMTJoN3Y4SDR2LThaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU11bHRpcGxlMjBGaWxsZWQgPSAvKiNfX1BVUkVfXyovY3JlYXRlRmx1ZW50SWNvbignVGFibGVNdWx0aXBsZTIwRmlsbGVkJywgXCIyMFwiLCBbXCJNMTcgMTMuNWEzLjUgMy41IDAgMCAxLTMuNSAzLjVINS42N2MuNzguNjMgMS43NiAxIDIuODMgMWg1YTQuNSA0LjUgMCAwIDAgNC41LTQuNXYtNWMwLTEuMDctLjM3LTIuMDYtMS0yLjgzdjcuODNaTTQuNSAxNkg2di00SDJ2MS41QTIuNSAyLjUgMCAwIDAgNC41IDE2Wk02IDd2NEgyVjdoNFptNSA0SDdWN2g0djRabS00IDFoNHY0SDd2LTRabTUtNXY0aDRWN2gtNFptMCA1aDR2MS41YTIuNSAyLjUgMCAwIDEtMi41IDIuNUgxMnYtNFpNMiA2aDRWMkg0LjVBMi41IDIuNSAwIDAgMCAyIDQuNVY2Wm01IDBWMmg0djRIN1ptNSAwVjJoMS41QTIuNSAyLjUgMCAwIDEgMTYgNC41VjZoLTRaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU11bHRpcGxlMjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlTXVsdGlwbGUyMFJlZ3VsYXInLCBcIjIwXCIsIFtcIk01LjY3IDE3aDcuODRjLjk1IDAgMS44Mi0uMzkgMi40NS0xLjAxbC4wMi0uMDJBMy40OSAzLjQ5IDAgMCAwIDE3IDEzLjVWNS42N2MuNjMuNzcgMSAxLjc2IDEgMi44M3Y1YTQuNSA0LjUgMCAwIDEtNC41IDQuNWgtNWE0LjQ4IDQuNDggMCAwIDEtMi44My0xWm05LjYtMTQuMjdjLjQ3LjQ3LjczIDEuMS43MyAxLjc3djlhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMiAxMy41di05QTIuNSAyLjUgMCAwIDEgNC41IDJoOWMuNjYgMCAxLjMuMjYgMS43Ny43M1pNNC41IDNoLS4xNEExLjUgMS41IDAgMCAwIDMgNC41VjZoM1YzSDQuNVpNMTEgM0g3djNoNFYzWm00IDEuNXYtLjE0QTEuNSAxLjUgMCAwIDAgMTMuNSAzSDEydjNoM1Y0LjVaTTcgN3Y0aDRWN0g3Wm04IDBoLTN2NGgzVjdabS04IDV2M2g0di0zSDdabTggMGgtM3YzSDEzLjY0QTEuNSAxLjUgMCAwIDAgMTUgMTMuNVYxMlpNMy41IDE0LjYxYy4yNy4yNS42My4zOSAxIC4zOUg2di0zSDNWMTMuNjRjLjA0LjM4LjIyLjcyLjUuOTdaTTMgN3Y0aDNWN0gzWlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVPZmZzZXQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNIMTJ2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzWk04IDhoOXY0SDhWOFptLTEgNFY4SDN2NGg0Wm0tNCAxaDl2NEg1LjVBMi41IDIuNSAwIDAgMSAzIDE0LjVWMTNabTEwIDB2NGgxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjEzaC00Wm0wLTZoNFY1LjVBMi41IDIuNSAwIDAgMCAxNC41IDNIMTN2NFpcIl0pO1xuZXhwb3J0IGNvbnN0IFRhYmxlT2Zmc2V0MjBSZWd1bGFyID0gLyojX19QVVJFX18qL2NyZWF0ZUZsdWVudEljb24oJ1RhYmxlT2Zmc2V0MjBSZWd1bGFyJywgXCIyMFwiLCBbXCJNNS41IDNBMi41IDIuNSAwIDAgMCAzIDUuNXY5QTIuNSAyLjUgMCAwIDAgNS41IDE3aDlhMi41IDIuNSAwIDAgMCAyLjUtMi41di05QTIuNSAyLjUgMCAwIDAgMTQuNSAzaC05Wk0xNiAxMkg4VjhoOHY0Wm0tMyAxaDN2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNUgxM3YtM1ptLTEgMHYzSDUuNUExLjUgMS41IDAgMCAxIDQgMTQuNVYxM2g4Wm0tOC0xVjhoM3Y0SDRabTAtNVY1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNEgxMnYzSDRabTEyLTEuNVY3aC0zVjRoMS41Yy44MyAwIDEuNS42NyAxLjUgMS41WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVPZmZzZXQyNEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldDI0RmlsbGVkJywgXCIyNFwiLCBbXCJNMTQgM0g2LjI1QTMuMjUgMy4yNSAwIDAgMCAzIDYuMjVWOC41aDExVjNabTEuNSA1LjVIMjFWNi4yNUMyMSA0LjQ1IDE5LjU0IDMgMTcuNzUgM0gxNS41djUuNVpNMjEgMTBIMTB2NGgxMXYtNFpNOC41IDEwSDN2NGg1LjV2LTRaTTMgMTcuNzVWMTUuNWgxMVYyMUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1Wk0xNS41IDIxdi01LjVIMjF2Mi4yNWMwIDEuOC0xLjQ2IDMuMjUtMy4yNSAzLjI1SDE1LjVaXCJdKTtcbmV4cG9ydCBjb25zdCBUYWJsZU9mZnNldDI0UmVndWxhciA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldDI0UmVndWxhcicsIFwiMjRcIiwgW1wiTTYuMjUgM0EzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djExLjVDMyAxOS41NSA0LjQ2IDIxIDYuMjUgMjFoMTEuNWMxLjggMCAzLjI1LTEuNDYgMy4yNS0zLjI1VjYuMjVDMjEgNC40NSAxOS41NCAzIDE3Ljc1IDNINi4yNVpNNC41IDYuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVIMTR2NEg0LjVWNi4yNVptMCAzLjc1aDR2NGgtNHYtNFptNS41IDBoOS41djRIMTB2LTRabTkuNS0xLjVoLTR2LTRoMi4yNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVY4LjVabS00IDdoNHYyLjI1YzAgLjk3LS43OCAxLjc1LTEuNzUgMS43NUgxNS41di00Wm0tMTEgMi4yNVYxNS41SDE0djRINi4yNWMtLjk3IDAtMS43NS0uNzgtMS43NS0xLjc1WlwiXSk7XG5leHBvcnQgY29uc3QgVGFibGVPZmZzZXRBZGQyMEZpbGxlZCA9IC8qI19fUFVSRV9fKi9jcmVhdGVGbHVlbnRJY29uKCdUYWJsZU9mZnNldEFkZDIwRmlsbGVkJywgXCIyMFwiLCBbXCJNNS41IDNIMTJ2NEgzVjUuNUEyLjUgMi41IDAgMCAxIDUuNSAzWk04IDhoOXYxLjZBNS40OCA1LjQ4IDAgMCAwIDkuNiAxMkg4VjhabTEgNi41YzAtLjUyLjA3LTEuMDIuMi0xLjVIM3YxLjVBMi41IDIuNSAwIDAgMCA1LjUgMTdoNC4xYy0uMzgtLjc1LS42LTEuNi0uNi0yLjVaTTcgMTJWOEgzdjRoNFptNi01aDRWNS41QTIuNSAyLjUgMCAwIDAgMTQuNSAzSDEzdjRabTYgNy41YTQuNSA0LjUgMCAxIDEtOSAwIDQuNSA0LjUgMCAwIDEgOSAwWm0tNC0yYS41LjUgMCAwIDAtMSAwVjE0aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTR2MS41YS41LjUgMCAwIDAgMSAwVjE1aDEuNWEuNS41IDAgMCAwIDAtMUgxNXYtMS41WlwiXSk7IiwiZXhwb3J0IGNvbnN0IGljb25GaWxsZWRDbGFzc05hbWUgPSBcImZ1aS1JY29uLWZpbGxlZFwiO1xuZXhwb3J0IGNvbnN0IGljb25SZWd1bGFyQ2xhc3NOYW1lID0gXCJmdWktSWNvbi1yZWd1bGFyXCI7XG5leHBvcnQgY29uc3QgaWNvbkxpZ2h0Q2xhc3NOYW1lID0gXCJmdWktSWNvbi1saWdodFwiO1xuZXhwb3J0IGNvbnN0IGZvbnRJY29uQ2xhc3NOYW1lID0gXCJmdWktSWNvbi1mb250XCI7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBpY29uRmlsbGVkQ2xhc3NOYW1lLCBpY29uUmVndWxhckNsYXNzTmFtZSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gXCJAZ3JpZmZlbC9yZWFjdFwiO1xuY29uc3QgdXNlQnVuZGxlZEljb25TdHlsZXMgPSBfX3N0eWxlcyh7XG4gIFwicm9vdFwiOiB7XG4gICAgXCJtYzlsNXhcIjogXCJmanNlb3hcIlxuICB9LFxuICBcInZpc2libGVcIjoge1xuICAgIFwibWM5bDV4XCI6IFwiZjF3N2dwZHZcIlxuICB9XG59LCB7XG4gIFwiZFwiOiBbXCIuZmpzZW94e2Rpc3BsYXk6bm9uZTt9XCIsIFwiLmYxdzdncGR2e2Rpc3BsYXk6aW5saW5lO31cIl1cbn0pO1xuY29uc3QgYnVuZGxlSWNvbiA9IChGaWxsZWRJY29uLCBSZWd1bGFySWNvbikgPT4ge1xuICBjb25zdCBDb21wb25lbnQgPSBwcm9wcyA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NOYW1lLFxuICAgICAgZmlsbGVkLFxuICAgICAgLi4ucmVzdFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBzdHlsZXMgPSB1c2VCdW5kbGVkSWNvblN0eWxlcygpO1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KEZpbGxlZEljb24sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHtcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKHN0eWxlcy5yb290LCBmaWxsZWQgJiYgc3R5bGVzLnZpc2libGUsIGljb25GaWxsZWRDbGFzc05hbWUsIGNsYXNzTmFtZSlcbiAgICB9KSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVndWxhckljb24sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHtcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKHN0eWxlcy5yb290LCAhZmlsbGVkICYmIHN0eWxlcy52aXNpYmxlLCBpY29uUmVndWxhckNsYXNzTmFtZSwgY2xhc3NOYW1lKVxuICAgIH0pKSk7XG4gIH07XG4gIENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiQ29tcG91bmRJY29uXCI7XG4gIHJldHVybiBDb21wb25lbnQ7XG59O1xuZXhwb3J0IGRlZmF1bHQgYnVuZGxlSWNvbjsiLCIvLyBDb3BpZWQgZnJvbSBwYWNrYWdlcy90b2tlbnMvc3JjL2dsb2JhbC9kdXJhdGlvbnMudHNcbi8vIFZhbHVlcyBhcmUgbnVtZXJpYyBpbiBtaWxsaXNlY29uZHMgZm9yIGVhc2Ugb2YgdXNlIGluIFdlYiBBbmltYXRpb25zIEFQSVxuLy8gKHJhdGhlciB0aGFuIHBhcnNpbmcgJ19fbXMnKVxuZXhwb3J0IGNvbnN0IGR1cmF0aW9ucyA9IHtcbiAgICBkdXJhdGlvblVsdHJhRmFzdDogNTAsXG4gICAgZHVyYXRpb25GYXN0ZXI6IDEwMCxcbiAgICBkdXJhdGlvbkZhc3Q6IDE1MCxcbiAgICBkdXJhdGlvbk5vcm1hbDogMjAwLFxuICAgIGR1cmF0aW9uR2VudGxlOiAyNTAsXG4gICAgZHVyYXRpb25TbG93OiAzMDAsXG4gICAgZHVyYXRpb25TbG93ZXI6IDQwMCxcbiAgICBkdXJhdGlvblVsdHJhU2xvdzogNTAwXG59O1xuLy8gQ29waWVkIGZyb20gcGFja2FnZXMvdG9rZW5zL3NyYy9nbG9iYWwvY3VydmVzLnRzXG4vLyBOYW1lcyBhbmQgdmFsdWVzIGFyZSBwcmVzZXJ2ZWQgZXhhY3RseVxuZXhwb3J0IGNvbnN0IGN1cnZlcyA9IHtcbiAgICBjdXJ2ZUFjY2VsZXJhdGVNYXg6ICdjdWJpYy1iZXppZXIoMC45LDAuMSwxLDAuMiknLFxuICAgIGN1cnZlQWNjZWxlcmF0ZU1pZDogJ2N1YmljLWJlemllcigxLDAsMSwxKScsXG4gICAgY3VydmVBY2NlbGVyYXRlTWluOiAnY3ViaWMtYmV6aWVyKDAuOCwwLDAuNzgsMSknLFxuICAgIGN1cnZlRGVjZWxlcmF0ZU1heDogJ2N1YmljLWJlemllcigwLjEsMC45LDAuMiwxKScsXG4gICAgY3VydmVEZWNlbGVyYXRlTWlkOiAnY3ViaWMtYmV6aWVyKDAsMCwwLDEpJyxcbiAgICBjdXJ2ZURlY2VsZXJhdGVNaW46ICdjdWJpYy1iZXppZXIoMC4zMywwLDAuMSwxKScsXG4gICAgY3VydmVFYXN5RWFzZU1heDogJ2N1YmljLWJlemllcigwLjgsMCwwLjIsMSknLFxuICAgIGN1cnZlRWFzeUVhc2U6ICdjdWJpYy1iZXppZXIoMC4zMywwLDAuNjcsMSknLFxuICAgIGN1cnZlTGluZWFyOiAnY3ViaWMtYmV6aWVyKDAsMCwxLDEpJ1xufTtcbi8vIEEgbWVyZ2VkIGZsYXQgbG9va3VwIGZvciBjb252ZW5pZW5jZVxuZXhwb3J0IGNvbnN0IG1vdGlvblRva2VucyA9IHtcbiAgICAuLi5kdXJhdGlvbnMsXG4gICAgLi4uY3VydmVzXG59OyAvKlxuVE9ETzogZW5mb3JjZSBuYW1pbmcgY29udmVudGlvbnMgd2hlbiBUeXBlU2NyaXB0IDQuNCBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkIGluIEZsdWVudDpcblxudHlwZSBEdXJhdGlvbktleSA9IGBkdXJhdGlvbiR7Q2FwaXRhbGl6ZTxzdHJpbmc+fWA7XG50eXBlIEN1cnZlS2V5ID0gYGN1cnZlJHtDYXBpdGFsaXplPHN0cmluZz59YDtcbnR5cGUgQ3VydmVWYWx1ZSA9IGBjdWJpYy1iZXppZXIoJHtudW1iZXJ9LCR7bnVtYmVyfSwke251bWJlcn0sJHtudW1iZXJ9KWA7XG5cbnR5cGUgRHVyYXRpb25Ub2tlbnMgPSBSZWNvcmQ8RHVyYXRpb25LZXksIG51bWJlcj47XG50eXBlIEN1cnZlVG9rZW5zID0gUmVjb3JkPEN1cnZlS2V5LCBDdXJ2ZVZhbHVlPjtcbiovIFxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZnVuY3Rpb24gdXNlQW5pbWF0ZUF0b21zSW5TdXBwb3J0ZWRFbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soKGVsZW1lbnQsIHZhbHVlLCBvcHRpb25zKT0+e1xuICAgICAgICBjb25zdCBhdG9tcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICBdO1xuICAgICAgICBjb25zdCB7IGlzUmVkdWNlZE1vdGlvbiB9ID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IGF0b21zLm1hcCgobW90aW9uKT0+e1xuICAgICAgICAgICAgY29uc3QgeyBrZXlmcmFtZXMsIC4uLnBhcmFtcyB9ID0gbW90aW9uO1xuICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gZWxlbWVudC5hbmltYXRlKGtleWZyYW1lcywge1xuICAgICAgICAgICAgICAgIGZpbGw6ICdmb3J3YXJkcycsXG4gICAgICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgICAgIC4uLmlzUmVkdWNlZE1vdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhbmltYXRpb24ucGVyc2lzdCgpO1xuICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZXQgcGxheWJhY2tSYXRlIChyYXRlKXtcbiAgICAgICAgICAgICAgICBhbmltYXRpb25zLmZvckVhY2goKGFuaW1hdGlvbik9PntcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLnBsYXliYWNrUmF0ZSA9IHJhdGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW90aW9uRW5kQ2FsbGJhY2tzIChvbmZpbmlzaCwgb25jYW5jZWwpIHtcbiAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChhbmltYXRpb25zLm1hcCgoYW5pbWF0aW9uKT0+YW5pbWF0aW9uLmZpbmlzaGVkKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICAgICBvbmZpbmlzaCgpO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgICAgIHZhciBfZWxlbWVudF9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBET01FeGNlcHRpb24gPSAoX2VsZW1lbnRfb3duZXJEb2N1bWVudF9kZWZhdWx0VmlldyA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgPT09IG51bGwgfHwgX2VsZW1lbnRfb3duZXJEb2N1bWVudF9kZWZhdWx0VmlldyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2VsZW1lbnRfb3duZXJEb2N1bWVudF9kZWZhdWx0Vmlldy5ET01FeGNlcHRpb247XG4gICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZXMgXCJET01FeGNlcHRpb246IFRoZSB1c2VyIGFib3J0ZWQgYSByZXF1ZXN0XCIgdGhhdCBhcHBlYXJzIGlmIGFuaW1hdGlvbnMgYXJlIGNhbmNlbGxlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoRE9NRXhjZXB0aW9uICYmIGVyciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbmNhbmNlbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYW5jZWw6ICgpPT57XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9ucy5mb3JFYWNoKChhbmltYXRpb24pPT57XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXVzZTogKCk9PntcbiAgICAgICAgICAgICAgICBhbmltYXRpb25zLmZvckVhY2goKGFuaW1hdGlvbik9PntcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGxheTogKCk9PntcbiAgICAgICAgICAgICAgICBhbmltYXRpb25zLmZvckVhY2goKGFuaW1hdGlvbik9PntcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLnBsYXkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaW5pc2g6ICgpPT57XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9ucy5mb3JFYWNoKChhbmltYXRpb24pPT57XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi5maW5pc2goKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG59XG4vKipcbiAqIEluIHRlc3QgZW52aXJvbm1lbnRzLCB0aGlzIGhvb2sgaXMgdXNlZCB0byBkZWxheSB0aGUgZXhlY3V0aW9uIG9mIGEgY2FsbGJhY2sgdW50aWwgdGhlIG5leHQgcmVuZGVyLiBUaGlzIGlzIG5lY2Vzc2FyeVxuICogdG8gZW5zdXJlIHRoYXQgdGhlIGNhbGxiYWNrIGlzIG5vdCBleGVjdXRlZCBzeW5jaHJvbm91c2x5LCB3aGljaCB3b3VsZCBjYXVzZSB0aGUgdGVzdCB0byBmYWlsLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMzE3MDFcbiAqLyBmdW5jdGlvbiB1c2VBbmltYXRlQXRvbXNJblRlc3RFbnZpcm9ubWVudCgpIHtcbiAgICBjb25zdCBbY291bnQsIHNldENvdW50XSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gUmVhY3QudXNlUmVmKCk7XG4gICAgY29uc3QgcmVhbEFuaW1hdGVBdG9tcyA9IHVzZUFuaW1hdGVBdG9tc0luU3VwcG9ydGVkRW52aXJvbm1lbnQoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgdmFyIF9jYWxsYmFja1JlZl9jdXJyZW50O1xuICAgICAgICAgICAgKF9jYWxsYmFja1JlZl9jdXJyZW50ID0gY2FsbGJhY2tSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2NhbGxiYWNrUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jYWxsYmFja1JlZl9jdXJyZW50LmNhbGwoY2FsbGJhY2tSZWYpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjb3VudFxuICAgIF0pO1xuICAgIHJldHVybiBSZWFjdC51c2VDYWxsYmFjaygoZWxlbWVudCwgdmFsdWUsIG9wdGlvbnMpPT57XG4gICAgICAgIGNvbnN0IEVMRU1FTlRfU1VQUE9SVFNfV0VCX0FOSU1BVElPTlMgPSB0eXBlb2YgZWxlbWVudC5hbmltYXRlID09PSAnZnVuY3Rpb24nO1xuICAgICAgICAvLyBIZWFkcyB1cCFcbiAgICAgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHN1cHBvcnRzIFdlYiBBbmltYXRpb25zIEFQSSwgd2UgY2FuIHVzZSB0aGUgbmF0aXZlIGltcGxlbWVudGF0aW9uLlxuICAgICAgICBpZiAoRUxFTUVOVF9TVVBQT1JUU19XRUJfQU5JTUFUSU9OUykge1xuICAgICAgICAgICAgcmV0dXJuIHJlYWxBbmltYXRlQXRvbXMoZWxlbWVudCwgdmFsdWUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZXRNb3Rpb25FbmRDYWxsYmFja3MgKG9uZmluaXNoKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2tSZWYuY3VycmVudCA9IG9uZmluaXNoO1xuICAgICAgICAgICAgICAgIHNldENvdW50KCh2KT0+diArIDEpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBwbGF5YmFja1JhdGUgKHJhdGUpe1xuICAgICAgICAgICAgLyogbm8tb3AgKi8gfSxcbiAgICAgICAgICAgIGNhbmNlbCAoKSB7XG4gICAgICAgICAgICAvKiBuby1vcCAqLyB9LFxuICAgICAgICAgICAgcGF1c2UgKCkge1xuICAgICAgICAgICAgLyogbm8tb3AgKi8gfSxcbiAgICAgICAgICAgIHBsYXkgKCkge1xuICAgICAgICAgICAgLyogbm8tb3AgKi8gfSxcbiAgICAgICAgICAgIGZpbmlzaCAoKSB7XG4gICAgICAgICAgICAvKiBuby1vcCAqLyB9XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByZWFsQW5pbWF0ZUF0b21zXG4gICAgXSk7XG59XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VBbmltYXRlQXRvbXMoKSB7XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICd0ZXN0Jykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgcmV0dXJuIHVzZUFuaW1hdGVBdG9tc0luVGVzdEVudmlyb25tZW50KCk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHJldHVybiB1c2VBbmltYXRlQXRvbXNJblN1cHBvcnRlZEVudmlyb25tZW50KCk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZnVuY3Rpb24gdXNlTW90aW9uSW1wZXJhdGl2ZVJlZihpbXBlcmF0aXZlUmVmKSB7XG4gICAgY29uc3QgYW5pbWF0aW9uUmVmID0gUmVhY3QudXNlUmVmKCk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShpbXBlcmF0aXZlUmVmLCAoKT0+KHtcbiAgICAgICAgICAgIHNldFBsYXlTdGF0ZTogKHN0YXRlKT0+e1xuICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gJ3J1bm5pbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYW5pbWF0aW9uUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIChfYW5pbWF0aW9uUmVmX2N1cnJlbnQgPSBhbmltYXRpb25SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2FuaW1hdGlvblJlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYW5pbWF0aW9uUmVmX2N1cnJlbnQucGxheSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT09ICdwYXVzZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYW5pbWF0aW9uUmVmX2N1cnJlbnQxO1xuICAgICAgICAgICAgICAgICAgICAoX2FuaW1hdGlvblJlZl9jdXJyZW50MSA9IGFuaW1hdGlvblJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYW5pbWF0aW9uUmVmX2N1cnJlbnQxID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYW5pbWF0aW9uUmVmX2N1cnJlbnQxLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFBsYXliYWNrUmF0ZTogKHJhdGUpPT57XG4gICAgICAgICAgICAgICAgaWYgKGFuaW1hdGlvblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvblJlZi5jdXJyZW50LnBsYXliYWNrUmF0ZSA9IHJhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgcmV0dXJuIGFuaW1hdGlvblJlZjtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmNvbnN0IFJFRFVDRURfTUVESUFfUVVFUlkgPSAnc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSc7XG4vLyBUT0RPOiBmaW5kIGEgYmV0dGVyIGFwcHJvYWNoIHRoZXJlIGFzIGVhY2ggaG9vayBjcmVhdGVzIGEgc2VwYXJhdGUgc3Vic2NyaXB0aW9uXG5leHBvcnQgZnVuY3Rpb24gdXNlSXNSZWR1Y2VkTW90aW9uKCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0RG9jdW1lbnQgfSA9IHVzZUZsdWVudCgpO1xuICAgIHZhciBfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXc7XG4gICAgY29uc3QgdGFyZ2V0V2luZG93ID0gKF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldyA9IHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5kZWZhdWx0VmlldykgIT09IG51bGwgJiYgX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3ICE9PSB2b2lkIDAgPyBfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXcgOiBudWxsO1xuICAgIGNvbnN0IHF1ZXJ5VmFsdWUgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGlzRW5hYmxlZCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpPT5xdWVyeVZhbHVlLmN1cnJlbnQsIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHRhcmdldFdpbmRvdyA9PT0gbnVsbCB8fCB0eXBlb2YgdGFyZ2V0V2luZG93Lm1hdGNoTWVkaWEgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeU1hdGNoID0gdGFyZ2V0V2luZG93Lm1hdGNoTWVkaWEoUkVEVUNFRF9NRURJQV9RVUVSWSk7XG4gICAgICAgIGlmIChxdWVyeU1hdGNoLm1hdGNoZXMpIHtcbiAgICAgICAgICAgIHF1ZXJ5VmFsdWUuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hMaXN0ZW5lciA9IChlKT0+e1xuICAgICAgICAgICAgcXVlcnlWYWx1ZS5jdXJyZW50ID0gZS5tYXRjaGVzO1xuICAgICAgICB9O1xuICAgICAgICBxdWVyeU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG1hdGNoTGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIHF1ZXJ5TWF0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgbWF0Y2hMaXN0ZW5lcik7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICB0YXJnZXRXaW5kb3dcbiAgICBdKTtcbiAgICByZXR1cm4gaXNFbmFibGVkO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RJcyBmcm9tICdyZWFjdC1pcyc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hpbGRFbGVtZW50KGNoaWxkcmVuKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKHR5cGVvZiBjaGlsZC50eXBlID09PSAnc3RyaW5nJyB8fCBSZWFjdElzLmlzRm9yd2FyZFJlZihjaGlsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfVxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZTogd2UgY2F0Y2ggdGhlIGV4Y2VwdGlvbiBmcm9tIFJlYWN0IHRvIHRocm93IGEgbW9yZSBtZWFuaW5nZnVsIGVycm9yXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gICAgfSBjYXRjaCAge31cbiAgICB0aHJvdyBuZXcgRXJyb3IoW1xuICAgICAgICAnQGZsdWVudHVpL3JlYWN0LW1vdGlvbjogSW52YWxpZCBjaGlsZCBlbGVtZW50LicsXG4gICAgICAgICdcXG4nLFxuICAgICAgICAnTW90aW9uIGZhY3RvcmllcyByZXF1aXJlIGEgc2luZ2xlIGNoaWxkIGVsZW1lbnQgdG8gYmUgcGFzc2VkLiAnLFxuICAgICAgICAnVGhhdCBlbGVtZW50IGVsZW1lbnQgc2hvdWxkIHN1cHBvcnQgcmVmIGZvcndhcmRpbmcgaS5lLiBpdCBzaG91bGQgYmUgZWl0aGVyIGFuIGludHJpbnNpYyBlbGVtZW50IChlLmcuIGRpdikgb3IgYSBjb21wb25lbnQgdGhhdCB1c2VzIFJlYWN0LmZvcndhcmRSZWYoKS4nXG4gICAgXS5qb2luKCcnKSk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBQcmVzZW5jZUdyb3VwQ2hpbGRDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuIiwiaW1wb3J0IHsgdXNlRm9yY2VVcGRhdGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogVGhpcyBob29rIG1hbmFnZXMgdGhlIG1vdW50ZWQgc3RhdGUgb2YgYSBjb21wb25lbnQsIGJhc2VkIG9uIHRoZSBcInZpc2libGVcIiBhbmQgXCJ1bm1vdW50T25FeGl0XCIgcHJvcHMuXG4gKiBJdCBzaW11bGF0ZXMgdGhlIGJlaGF2aW9yIG9mIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGluIGZ1bmN0aW9uYWwgY29tcG9uZW50cy5cbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlTW91bnRlZFN0YXRlKHZpc2libGUgPSBmYWxzZSwgdW5tb3VudE9uRXhpdCA9IGZhbHNlKSB7XG4gICAgY29uc3QgbW91bnRlZFJlZiA9IFJlYWN0LnVzZVJlZih1bm1vdW50T25FeGl0ID8gdmlzaWJsZSA6IHRydWUpO1xuICAgIGNvbnN0IGZvcmNlVXBkYXRlID0gdXNlRm9yY2VVcGRhdGUoKTtcbiAgICBjb25zdCBzZXRNb3VudGVkID0gUmVhY3QudXNlQ2FsbGJhY2soKG5ld1ZhbHVlKT0+e1xuICAgICAgICBpZiAobW91bnRlZFJlZi5jdXJyZW50ICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgbW91bnRlZFJlZi5jdXJyZW50ID0gbmV3VmFsdWU7XG4gICAgICAgICAgICBmb3JjZVVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBmb3JjZVVwZGF0ZVxuICAgIF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgbW91bnRlZFJlZi5jdXJyZW50ID0gdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHZpc2libGUgfHwgbW91bnRlZFJlZi5jdXJyZW50LFxuICAgICAgICBzZXRNb3VudGVkXG4gICAgXTtcbn1cbiIsImltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUZpcnN0TW91bnQsIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QsIHVzZU1lcmdlZFJlZnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByZXNlbmNlR3JvdXBDaGlsZENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0cy9QcmVzZW5jZUdyb3VwQ2hpbGRDb250ZXh0JztcbmltcG9ydCB7IHVzZUFuaW1hdGVBdG9tcyB9IGZyb20gJy4uL2hvb2tzL3VzZUFuaW1hdGVBdG9tcyc7XG5pbXBvcnQgeyB1c2VNb3Rpb25JbXBlcmF0aXZlUmVmIH0gZnJvbSAnLi4vaG9va3MvdXNlTW90aW9uSW1wZXJhdGl2ZVJlZic7XG5pbXBvcnQgeyB1c2VNb3VudGVkU3RhdGUgfSBmcm9tICcuLi9ob29rcy91c2VNb3VudGVkU3RhdGUnO1xuaW1wb3J0IHsgdXNlSXNSZWR1Y2VkTW90aW9uIH0gZnJvbSAnLi4vaG9va3MvdXNlSXNSZWR1Y2VkTW90aW9uJztcbmltcG9ydCB7IGdldENoaWxkRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2dldENoaWxkRWxlbWVudCc7XG4vKipcbiAqIEBpbnRlcm5hbCBBIHByaXZhdGUgc3ltYm9sIHRvIHN0b3JlIHRoZSBtb3Rpb24gZGVmaW5pdGlvbiBvbiB0aGUgY29tcG9uZW50IGZvciB2YXJpYW50cy5cbiAqLyBleHBvcnQgY29uc3QgTU9USU9OX0RFRklOSVRJT04gPSBTeW1ib2woJ01PVElPTl9ERUZJTklUSU9OJyk7XG5mdW5jdGlvbiBzaG91bGRTa2lwQW5pbWF0aW9uKGFwcGVhciwgaXNGaXJzdE1vdW50LCB2aXNpYmxlKSB7XG4gICAgcmV0dXJuICFhcHBlYXIgJiYgaXNGaXJzdE1vdW50ICYmICEhdmlzaWJsZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcmVzZW5jZUNvbXBvbmVudCh2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKChwcm9wcyk9PntcbiAgICAgICAgJ3VzZSBubyBtZW1vJztcbiAgICAgICAgY29uc3QgaXRlbUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFByZXNlbmNlR3JvdXBDaGlsZENvbnRleHQpO1xuICAgICAgICBjb25zdCBtZXJnZWQgPSB7XG4gICAgICAgICAgICAuLi5pdGVtQ29udGV4dCxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgYXBwZWFyLCBjaGlsZHJlbiwgaW1wZXJhdGl2ZVJlZiwgb25FeGl0LCBvbk1vdGlvbkZpbmlzaCwgb25Nb3Rpb25TdGFydCwgb25Nb3Rpb25DYW5jZWwsIHZpc2libGUsIHVubW91bnRPbkV4aXQsIC4uLl9yZXN0IH0gPSBtZXJnZWQ7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IF9yZXN0O1xuICAgICAgICBjb25zdCBbbW91bnRlZCwgc2V0TW91bnRlZF0gPSB1c2VNb3VudGVkU3RhdGUodmlzaWJsZSwgdW5tb3VudE9uRXhpdCk7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ2V0Q2hpbGRFbGVtZW50KGNoaWxkcmVuKTtcbiAgICAgICAgY29uc3QgaGFuZGxlUmVmID0gdXNlTW90aW9uSW1wZXJhdGl2ZVJlZihpbXBlcmF0aXZlUmVmKTtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICAgICAgICBjb25zdCByZWYgPSB1c2VNZXJnZWRSZWZzKGVsZW1lbnRSZWYsIGNoaWxkLnJlZik7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNSZWYgPSBSZWFjdC51c2VSZWYoe1xuICAgICAgICAgICAgYXBwZWFyLFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBhbmltYXRlQXRvbXMgPSB1c2VBbmltYXRlQXRvbXMoKTtcbiAgICAgICAgY29uc3QgaXNGaXJzdE1vdW50ID0gdXNlRmlyc3RNb3VudCgpO1xuICAgICAgICBjb25zdCBpc1JlZHVjZWRNb3Rpb24gPSB1c2VJc1JlZHVjZWRNb3Rpb24oKTtcbiAgICAgICAgY29uc3QgaGFuZGxlTW90aW9uU3RhcnQgPSB1c2VFdmVudENhbGxiYWNrKChkaXJlY3Rpb24pPT57XG4gICAgICAgICAgICBvbk1vdGlvblN0YXJ0ID09PSBudWxsIHx8IG9uTW90aW9uU3RhcnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uTW90aW9uU3RhcnQobnVsbCwge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBoYW5kbGVNb3Rpb25GaW5pc2ggPSB1c2VFdmVudENhbGxiYWNrKChkaXJlY3Rpb24pPT57XG4gICAgICAgICAgICBvbk1vdGlvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbk1vdGlvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Nb3Rpb25GaW5pc2gobnVsbCwge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAnZXhpdCcgJiYgdW5tb3VudE9uRXhpdCkge1xuICAgICAgICAgICAgICAgIHNldE1vdW50ZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uRXhpdCA9PT0gbnVsbCB8fCBvbkV4aXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRXhpdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlTW90aW9uQ2FuY2VsID0gdXNlRXZlbnRDYWxsYmFjaygoZGlyZWN0aW9uKT0+e1xuICAgICAgICAgICAgb25Nb3Rpb25DYW5jZWwgPT09IG51bGwgfHwgb25Nb3Rpb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uTW90aW9uQ2FuY2VsKG51bGwsIHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICAgICAgLy8gSGVhZHMgdXAhXG4gICAgICAgICAgICAvLyBXZSBzdG9yZSB0aGUgcGFyYW1zIGluIGEgcmVmIHRvIGF2b2lkIHJlLXJlbmRlcmluZyB0aGUgY29tcG9uZW50IHdoZW4gdGhlIHBhcmFtcyBjaGFuZ2UuXG4gICAgICAgICAgICBvcHRpb25zUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICAgICAgYXBwZWFyLFxuICAgICAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIWVsZW1lbnQgfHwgc2hvdWxkU2tpcEFuaW1hdGlvbihvcHRpb25zUmVmLmN1cnJlbnQuYXBwZWFyLCBpc0ZpcnN0TW91bnQsIHZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJlc2VuY2VNb3Rpb24gPSB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zUmVmLmN1cnJlbnQucGFyYW1zXG4gICAgICAgICAgICB9KSA6IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgYXRvbXMgPSB2aXNpYmxlID8gcHJlc2VuY2VNb3Rpb24uZW50ZXIgOiBwcmVzZW5jZU1vdGlvbi5leGl0O1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gdmlzaWJsZSA/ICdlbnRlcicgOiAnZXhpdCc7XG4gICAgICAgICAgICBjb25zdCBmb3JjZUZpbmlzaE1vdGlvbiA9ICF2aXNpYmxlICYmIGlzRmlyc3RNb3VudDtcbiAgICAgICAgICAgIGlmICghZm9yY2VGaW5pc2hNb3Rpb24pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVNb3Rpb25TdGFydChkaXJlY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaGFuZGxlID0gYW5pbWF0ZUF0b21zKGVsZW1lbnQsIGF0b21zLCB7XG4gICAgICAgICAgICAgICAgaXNSZWR1Y2VkTW90aW9uOiBpc1JlZHVjZWRNb3Rpb24oKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZm9yY2VGaW5pc2hNb3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBIZWFkcyB1cCFcbiAgICAgICAgICAgICAgICAvLyAuZmluaXNoKCkgaXMgdXNlZCB0aGVyZSB0byBza2lwIGFuaW1hdGlvbiBvbiBmaXJzdCBtb3VudCwgYnV0IGFwcGx5IGFuaW1hdGlvbiBzdHlsZXMgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICBoYW5kbGUuZmluaXNoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFuZGxlUmVmLmN1cnJlbnQgPSBoYW5kbGU7XG4gICAgICAgICAgICBoYW5kbGUuc2V0TW90aW9uRW5kQ2FsbGJhY2tzKCgpPT5oYW5kbGVNb3Rpb25GaW5pc2goZGlyZWN0aW9uKSwgKCk9PmhhbmRsZU1vdGlvbkNhbmNlbChkaXJlY3Rpb24pKTtcbiAgICAgICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgICAgIGhhbmRsZS5jYW5jZWwoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIC8vIEV4Y2x1ZGluZyBgaXNGaXJzdE1vdW50YCBmcm9tIGRlcHMgdG8gcHJldmVudCByZS10cmlnZ2VyaW5nIHRoZSBhbmltYXRpb24gb24gc3Vic2VxdWVudCByZW5kZXJzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgICAgW1xuICAgICAgICAgICAgYW5pbWF0ZUF0b21zLFxuICAgICAgICAgICAgaGFuZGxlUmVmLFxuICAgICAgICAgICAgaXNSZWR1Y2VkTW90aW9uLFxuICAgICAgICAgICAgaGFuZGxlTW90aW9uRmluaXNoLFxuICAgICAgICAgICAgaGFuZGxlTW90aW9uU3RhcnQsXG4gICAgICAgICAgICBoYW5kbGVNb3Rpb25DYW5jZWwsXG4gICAgICAgICAgICB2aXNpYmxlXG4gICAgICAgIF0pO1xuICAgICAgICBpZiAobW91bnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgIHJlZlxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSwge1xuICAgICAgICAvLyBIZWFkcyB1cCFcbiAgICAgICAgLy8gQWx3YXlzIG5vcm1hbGl6ZSBpdCB0byBhIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5IHR5cGVzXG4gICAgICAgIFtNT1RJT05fREVGSU5JVElPTl06IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogKCk9PnZhbHVlXG4gICAgfSk7XG59XG4iLCJpbXBvcnQgeyBNT1RJT05fREVGSU5JVElPTiwgY3JlYXRlUHJlc2VuY2VDb21wb25lbnQgfSBmcm9tICcuL2NyZWF0ZVByZXNlbmNlQ29tcG9uZW50Jztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIG92ZXJyaWRlUHJlc2VuY2VNb3Rpb24ocHJlc2VuY2VNb3Rpb24sIG92ZXJyaWRlKSB7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICBjb25zdCB7IGVudGVyLCBleGl0IH0gPSBwcmVzZW5jZU1vdGlvbiguLi5hcmdzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVudGVyOiB7XG4gICAgICAgICAgICAgICAgLi4uZW50ZXIsXG4gICAgICAgICAgICAgICAgLi4ub3ZlcnJpZGUuYWxsLFxuICAgICAgICAgICAgICAgIC4uLm92ZXJyaWRlLmVudGVyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhpdDoge1xuICAgICAgICAgICAgICAgIC4uLmV4aXQsXG4gICAgICAgICAgICAgICAgLi4ub3ZlcnJpZGUuYWxsLFxuICAgICAgICAgICAgICAgIC4uLm92ZXJyaWRlLmV4aXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByZXNlbmNlQ29tcG9uZW50VmFyaWFudChjb21wb25lbnQsIG92ZXJyaWRlKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVByZXNlbmNlQ29tcG9uZW50KG92ZXJyaWRlUHJlc2VuY2VNb3Rpb24oY29tcG9uZW50W01PVElPTl9ERUZJTklUSU9OXSwgb3ZlcnJpZGUpKTtcbn1cbiIsImZ1bmN0aW9uIF9kZWZpbmVfcHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gICAgaWYgKGtleSBpbiBvYmopIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgICB9IGVsc2Ugb2JqW2tleV0gPSB2YWx1ZTtcblxuICAgIHJldHVybiBvYmo7XG59XG5leHBvcnQgeyBfZGVmaW5lX3Byb3BlcnR5IGFzIF8gfTtcbiIsImltcG9ydCB7IFNMT1RfRUxFTUVOVF9UWVBFX1NZTUJPTCwgU0xPVF9SRU5ERVJfRlVOQ1RJT05fU1lNQk9MIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZnVuY3Rpb24gcHJlc2VuY2VNb3Rpb25TbG90KG1vdGlvbiwgb3B0aW9ucykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvblxuICAgIGNvbnN0IHsgYXMsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBtb3Rpb24gIT09IG51bGwgJiYgbW90aW9uICE9PSB2b2lkIDAgPyBtb3Rpb24gOiB7fTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAodHlwZW9mIGFzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBAZmx1ZW50dWkvcmVhY3QtbW90aW9uOiBcImFzXCIgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCBvbiBtb3Rpb24gc2xvdHMuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1vdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAvLyBIZWFkcyB1cCFcbiAgICAgICAgLy8gUmVuZGVyIGZ1bmN0aW9uIGlzIHVzZWQgdGhlcmUgdG8gYXZvaWQgcmVuZGVyaW5nIGEgbW90aW9uIGNvbXBvbmVudCBhbmQgaGFuZGxlIHVubW91bnRpbmcgbG9naWNcbiAgICAgICAgY29uc3QgaXNVbm1vdW50ZWQgPSAhb3B0aW9ucy5kZWZhdWx0UHJvcHMudmlzaWJsZSAmJiBvcHRpb25zLmRlZmF1bHRQcm9wcy51bm1vdW50T25FeGl0O1xuICAgICAgICBjb25zdCByZW5kZXJGbiA9IChfLCBwcm9wcyk9PmlzVW5tb3VudGVkID8gbnVsbCA6IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgcHJvcHMuY2hpbGRyZW4pO1xuICAgICAgICAvKipcbiAgICAgKiBDYXN0aW5nIGlzIHJlcXVpcmVkIGhlcmUgYXMgU2xvdENvbXBvbmVudFR5cGUgaXMgYSBmdW5jdGlvbiwgbm90IGFuIG9iamVjdC5cbiAgICAgKiBBbHRob3VnaCBTbG90Q29tcG9uZW50VHlwZSBoYXMgYSBmdW5jdGlvbiBzaWduYXR1cmUsIGl0IGlzIHN0aWxsIGp1c3QgYW4gb2JqZWN0LlxuICAgICAqIFRoaXMgaXMgcmVxdWlyZWQgdG8gbWFrZSBhIHNsb3QgY2FsbGFibGUgKEpTWCBjb21wYXRpYmxlKSwgdGhpcyBpcyB0aGUgZXhhY3Qgc2FtZSBhcHByb2FjaFxuICAgICAqIHRoYXQgaXMgdXNlZCBvbiBgQHR5cGVzL3JlYWN0YCBjb21wb25lbnRzXG4gICAgICovIHJldHVybiB7XG4gICAgICAgICAgICBbU0xPVF9SRU5ERVJfRlVOQ1RJT05fU1lNQk9MXTogcmVuZGVyRm4sXG4gICAgICAgICAgICBbU0xPVF9FTEVNRU5UX1RZUEVfU1lNQk9MXTogb3B0aW9ucy5lbGVtZW50VHlwZVxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICogQ2FzdGluZyBpcyByZXF1aXJlZCBoZXJlIGFzIFNsb3RDb21wb25lbnRUeXBlIGlzIGEgZnVuY3Rpb24sIG5vdCBhbiBvYmplY3QuXG4gICAqIEFsdGhvdWdoIFNsb3RDb21wb25lbnRUeXBlIGhhcyBhIGZ1bmN0aW9uIHNpZ25hdHVyZSwgaXQgaXMgc3RpbGwganVzdCBhbiBvYmplY3QuXG4gICAqIFRoaXMgaXMgcmVxdWlyZWQgdG8gbWFrZSBhIHNsb3QgY2FsbGFibGUgKEpTWCBjb21wYXRpYmxlKSwgdGhpcyBpcyB0aGUgZXhhY3Qgc2FtZSBhcHByb2FjaFxuICAgKiB0aGF0IGlzIHVzZWQgb24gYEB0eXBlcy9yZWFjdGAgY29tcG9uZW50c1xuICAgKi8gY29uc3QgcHJvcHNXaXRoTWV0YWRhdGEgPSB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGVmYXVsdFByb3BzLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgICBbU0xPVF9FTEVNRU5UX1RZUEVfU1lNQk9MXTogb3B0aW9ucy5lbGVtZW50VHlwZVxuICAgIH07XG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwcm9wc1dpdGhNZXRhZGF0YVtTTE9UX1JFTkRFUl9GVU5DVElPTl9TWU1CT0xdID0gY2hpbGRyZW47XG4gICAgfVxuICAgIHJldHVybiBwcm9wc1dpdGhNZXRhZGF0YTtcbn1cbiIsImltcG9ydCB7IG1vdGlvblRva2VucywgY3JlYXRlUHJlc2VuY2VDb21wb25lbnQsIGNyZWF0ZVByZXNlbmNlQ29tcG9uZW50VmFyaWFudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24nO1xuLyoqIERlZmluZSBhIHByZXNlbmNlIG1vdGlvbiBmb3IgY29sbGFwc2UvZXhwYW5kICovIGNvbnN0IGNvbGxhcHNlTW90aW9uID0gKHsgZWxlbWVudCwgYW5pbWF0ZU9wYWNpdHkgPSB0cnVlIH0pPT57XG4gICAgY29uc3QgZnJvbU9wYWNpdHkgPSBhbmltYXRlT3BhY2l0eSA/IDAgOiAxO1xuICAgIGNvbnN0IHRvT3BhY2l0eSA9IDE7XG4gICAgY29uc3QgZnJvbUhlaWdodCA9ICcwJzsgLy8gQ291bGQgYmUgYSBjdXN0b20gcGFyYW0gaW4gdGhlIGZ1dHVyZTogc3RhcnQgcGFydGlhbGx5IGV4cGFuZGVkXG4gICAgY29uc3QgdG9IZWlnaHQgPSBgJHtlbGVtZW50LnNjcm9sbEhlaWdodH1weGA7XG4gICAgY29uc3Qgb3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBjb25zdCBkdXJhdGlvbiA9IG1vdGlvblRva2Vucy5kdXJhdGlvbk5vcm1hbDtcbiAgICBjb25zdCBlYXNpbmcgPSBtb3Rpb25Ub2tlbnMuY3VydmVFYXN5RWFzZU1heDtcbiAgICBjb25zdCBlbnRlcktleWZyYW1lcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgb3BhY2l0eTogZnJvbU9wYWNpdHksXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IGZyb21IZWlnaHQsXG4gICAgICAgICAgICBvdmVyZmxvd1xuICAgICAgICB9LFxuICAgICAgICAvLyBUcmFuc2l0aW9uIHRvIHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQsIGF0IDk5Ljk5JSBvZiB0aGUgZHVyYXRpb24uXG4gICAgICAgIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHRvT3BhY2l0eSxcbiAgICAgICAgICAgIG1heEhlaWdodDogdG9IZWlnaHQsXG4gICAgICAgICAgICBvZmZzZXQ6IDAuOTk5OSxcbiAgICAgICAgICAgIG92ZXJmbG93XG4gICAgICAgIH0sXG4gICAgICAgIC8vIE9uIGNvbXBsZXRpb24sIHJlbW92ZSB0aGUgbWF4SGVpZ2h0IGJlY2F1c2UgdGhlIGNvbnRlbnQgbWlnaHQgbmVlZCB0byBleHBhbmQgbGF0ZXIuXG4gICAgICAgIC8vIFRoaXMgZXh0cmEga2V5ZnJhbWUgaXMgc2ltcGxlciB0aGFuIGZpcmluZyBhIGNhbGxiYWNrIG9uIGNvbXBsZXRpb24uXG4gICAgICAgIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHRvT3BhY2l0eSxcbiAgICAgICAgICAgIG1heEhlaWdodDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIG92ZXJmbG93XG4gICAgICAgIH1cbiAgICBdO1xuICAgIGNvbnN0IGV4aXRLZXlmcmFtZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IHRvT3BhY2l0eSxcbiAgICAgICAgICAgIG1heEhlaWdodDogdG9IZWlnaHQsXG4gICAgICAgICAgICBvdmVyZmxvd1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBvcGFjaXR5OiBmcm9tT3BhY2l0eSxcbiAgICAgICAgICAgIG1heEhlaWdodDogZnJvbUhlaWdodCxcbiAgICAgICAgICAgIG92ZXJmbG93XG4gICAgICAgIH1cbiAgICBdO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVudGVyOiB7XG4gICAgICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgICAgIGVhc2luZyxcbiAgICAgICAgICAgIGtleWZyYW1lczogZW50ZXJLZXlmcmFtZXNcbiAgICAgICAgfSxcbiAgICAgICAgZXhpdDoge1xuICAgICAgICAgICAgZHVyYXRpb24sXG4gICAgICAgICAgICBlYXNpbmcsXG4gICAgICAgICAgICBrZXlmcmFtZXM6IGV4aXRLZXlmcmFtZXNcbiAgICAgICAgfVxuICAgIH07XG59O1xuLyoqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgYXBwbGllcyBjb2xsYXBzZS9leHBhbmQgdHJhbnNpdGlvbnMgdG8gaXRzIGNoaWxkcmVuLiAqLyBleHBvcnQgY29uc3QgQ29sbGFwc2UgPSBjcmVhdGVQcmVzZW5jZUNvbXBvbmVudChjb2xsYXBzZU1vdGlvbik7XG5leHBvcnQgY29uc3QgQ29sbGFwc2VTbmFwcHkgPSBjcmVhdGVQcmVzZW5jZUNvbXBvbmVudFZhcmlhbnQoQ29sbGFwc2UsIHtcbiAgICBhbGw6IHtcbiAgICAgICAgZHVyYXRpb246IG1vdGlvblRva2Vucy5kdXJhdGlvblVsdHJhRmFzdFxuICAgIH1cbn0pO1xuZXhwb3J0IGNvbnN0IENvbGxhcHNlRXhhZ2dlcmF0ZWQgPSBjcmVhdGVQcmVzZW5jZUNvbXBvbmVudFZhcmlhbnQoQ29sbGFwc2UsIHtcbiAgICBlbnRlcjoge1xuICAgICAgICBkdXJhdGlvbjogbW90aW9uVG9rZW5zLmR1cmF0aW9uU2xvdyxcbiAgICAgICAgZWFzaW5nOiBtb3Rpb25Ub2tlbnMuY3VydmVFYXN5RWFzZU1heFxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgICBkdXJhdGlvbjogbW90aW9uVG9rZW5zLmR1cmF0aW9uTm9ybWFsLFxuICAgICAgICBlYXNpbmc6IG1vdGlvblRva2Vucy5jdXJ2ZUVhc3lFYXNlTWF4XG4gICAgfVxufSk7XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmV4cG9ydCBjb25zdCByZW5kZXJBdmF0YXJfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0YXRlLmluaXRpYWxzICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5pbml0aWFscywge30pLFxuICAgICAgICAgICAgc3RhdGUuaWNvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuaWNvbiwge30pLFxuICAgICAgICAgICAgc3RhdGUuaW1hZ2UgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmltYWdlLCB7fSksXG4gICAgICAgICAgICBzdGF0ZS5iYWRnZSAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuYmFkZ2UsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLmFjdGl2ZUFyaWFMYWJlbEVsZW1lbnRcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbiIsIi8qKlxuICogUmVndWxhciBleHByZXNzaW9ucyBtYXRjaGluZyBjaGFyYWN0ZXJzIHRvIGlnbm9yZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBpbml0aWFscy5cbiAqLyAvKipcbiAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyBjaGFyYWN0ZXJzIHdpdGhpbiB2YXJpb3VzIHR5cGVzIG9mIGVuY2xvc3VyZXMsIGluY2x1ZGluZyB0aGUgZW5jbG9zdXJlcyB0aGVtc2VsdmVzXG4gKiAgc28gZm9yIGV4YW1wbGUsICh4eXopIFt4eXpdIHt4eXp9IGFsbCB3b3VsZCBiZSBpZ25vcmVkXG4gKi8gY29uc3QgVU5XQU5URURfRU5DTE9TVVJFU19SRUdFWCA9IC9bXFwoXFxbXFx7XVteXFwpXFxdXFx9XSpbXFwpXFxdXFx9XS9nO1xuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgc3BlY2lhbCBBU0NJSSBjaGFyYWN0ZXJzIGV4Y2VwdCBzcGFjZSwgcGx1cyBzb21lIHVuaWNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICogQXBwbGllcyBhZnRlciB1bndhbnRlZCBlbmNsb3N1cmVzIGhhdmUgYmVlbiByZW1vdmVkXG4gKi8gY29uc3QgVU5XQU5URURfQ0hBUlNfUkVHRVggPSAvW1xcMC1cXHUwMDFGXFwhLS86LUBcXFstYFxcey1cXHUwMEJGXFx1MDI1MC1cXHUwMzZGXFx1RDgwMC1cXHVGRkZGXS9nO1xuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgcGhvbmUgbnVtYmVycy4gQXBwbGllZCBhZnRlciBjaGFycyBtYXRjaGluZyBVTldBTlRFRF9DSEFSU19SRUdFWCBoYXZlIGJlZW4gcmVtb3ZlZFxuICogYW5kIG51bWJlciBoYXMgYmVlbiB0cmltbWVkIGZvciB3aGl0ZXNwYWNlc1xuICovIGNvbnN0IFBIT05FTlVNQkVSX1JFR0VYID0gL15cXGQrW1xcZFxcc10qKDo/ZXh0fHh8KVxccypcXGQrJC9pO1xuLyoqIFJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyBvbmUgb3IgbW9yZSBzcGFjZXMuICovIGNvbnN0IE1VTFRJUExFX1dISVRFU1BBQ0VTX1JFR0VYID0gL1xccysvZztcbi8qKlxuICogUmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nIGxhbmd1YWdlcyBmb3Igd2hpY2ggd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgaW5pdGlhbHMuXG4gKiBBcmFiaWM6ICAgQXJhYmljLCBBcmFiaWMgU3VwcGxlbWVudCwgQXJhYmljIEV4dGVuZGVkLUEuXG4gKiBLb3JlYW46ICAgSGFuZ3VsIEphbW8sIEhhbmd1bCBDb21wYXRpYmlsaXR5IEphbW8sIEhhbmd1bCBKYW1vIEV4dGVuZGVkLUEsIEhhbmd1bCBTeWxsYWJsZXMsIEhhbmd1bCBKYW1vIEV4dGVuZGVkLUIuXG4gKiBKYXBhbmVzZTogSGlyYWdhbmEsIEthdGFrYW5hLlxuICogQ0pLOiAgICAgIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEsIENKSyBVbmlmaWVkIElkZW9ncmFwaHMsIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMsXG4gKiAgICAgICAgICAgICBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBCXG4gKi8gY29uc3QgVU5TVVBQT1JURURfVEVYVF9SRUdFWCA9IC9bXFx1MDYwMC1cXHUwNkZGXFx1MDc1MC1cXHUwNzdGXFx1MDhBMC1cXHUwOEZGXFx1MTEwMC1cXHUxMUZGXFx1MzEzMC1cXHUzMThGXFx1QTk2MC1cXHVBOTdGXFx1QUMwMC1cXHVEN0FGXFx1RDdCMC1cXHVEN0ZGXFx1MzA0MC1cXHUzMDlGXFx1MzBBMC1cXHUzMEZGXFx1MzQwMC1cXHU0REJGXFx1NEUwMC1cXHU5RkZGXFx1RjkwMC1cXHVGQUZGXXxbXFx1RDg0MC1cXHVEODY5XVtcXHVEQzAwLVxcdURFRDZdLztcbmZ1bmN0aW9uIGdldEluaXRpYWxzTGF0aW4oZGlzcGxheU5hbWUsIGlzUnRsLCBmaXJzdEluaXRpYWxPbmx5KSB7XG4gICAgbGV0IGluaXRpYWxzID0gJyc7XG4gICAgY29uc3Qgc3BsaXRzID0gZGlzcGxheU5hbWUuc3BsaXQoJyAnKTtcbiAgICBpZiAoc3BsaXRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBpbml0aWFscyArPSBzcGxpdHNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmICghZmlyc3RJbml0aWFsT25seSkge1xuICAgICAgICBpZiAoc3BsaXRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgaW5pdGlhbHMgKz0gc3BsaXRzWzFdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHNwbGl0cy5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgIGluaXRpYWxzICs9IHNwbGl0c1syXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNSdGwgJiYgaW5pdGlhbHMubGVuZ3RoID4gMSkge1xuICAgICAgICByZXR1cm4gaW5pdGlhbHMuY2hhckF0KDEpICsgaW5pdGlhbHMuY2hhckF0KDApO1xuICAgIH1cbiAgICByZXR1cm4gaW5pdGlhbHM7XG59XG5mdW5jdGlvbiBjbGVhbnVwRGlzcGxheU5hbWUoZGlzcGxheU5hbWUpIHtcbiAgICBkaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lLnJlcGxhY2UoVU5XQU5URURfRU5DTE9TVVJFU19SRUdFWCwgJycpO1xuICAgIGRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWUucmVwbGFjZShVTldBTlRFRF9DSEFSU19SRUdFWCwgJycpO1xuICAgIGRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWUucmVwbGFjZShNVUxUSVBMRV9XSElURVNQQUNFU19SRUdFWCwgJyAnKTtcbiAgICBkaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lLnRyaW0oKTtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG59XG4vKipcbiAqIEdldCAodXAgdG8gMiBjaGFyYWN0ZXJzKSBpbml0aWFscyBiYXNlZCBvbiBkaXNwbGF5IG5hbWUgb2YgdGhlIHBlcnNvbmEuXG4gKlxuICogQHBhcmFtIGRpc3BsYXlOYW1lIC0gVGhlIGZ1bGwgbmFtZSBvZiB0aGUgcGVyc29uIG9yIGVudGl0eVxuICogQHBhcmFtIGlzUnRsIC0gV2hldGhlciB0aGUgZGlzcGxheSBpcyBpbiBSVExcbiAqIEBwYXJhbSBvcHRpb25zIC0gRXh0cmEgb3B0aW9ucyB0byBjb250cm9sIHRoZSBiZWhhdmlvciBvZiBnZXRJbml0aWFsc1xuICpcbiAqIEByZXR1cm5zIFRoZSAxIG9yIDIgY2hhcmFjdGVyIGluaXRpYWxzIGJhc2VkIG9uIHRoZSBuYW1lLiBPciBhbiBlbXB0eSBzdHJpbmcgaWYgbm8gaW5pdGlhbHNcbiAqIGNvdWxkIGJlIGRlcml2ZWQgZnJvbSB0aGUgbmFtZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbHMoZGlzcGxheU5hbWUsIGlzUnRsLCBvcHRpb25zKSB7XG4gICAgaWYgKCFkaXNwbGF5TmFtZSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGRpc3BsYXlOYW1lID0gY2xlYW51cERpc3BsYXlOYW1lKGRpc3BsYXlOYW1lKTtcbiAgICAvLyBGb3IgbmFtZXMgY29udGFpbmluZyBDSksgY2hhcmFjdGVycywgYW5kIHBob25lIG51bWJlcnMsIHdlIGRvbid0IGRpc3BsYXkgaW5pdGlhbHNcbiAgICBpZiAoVU5TVVBQT1JURURfVEVYVF9SRUdFWC50ZXN0KGRpc3BsYXlOYW1lKSB8fCAhKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5hbGxvd1Bob25lSW5pdGlhbHMpICYmIFBIT05FTlVNQkVSX1JFR0VYLnRlc3QoZGlzcGxheU5hbWUpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGdldEluaXRpYWxzTGF0aW4oZGlzcGxheU5hbWUsIGlzUnRsLCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmlyc3RJbml0aWFsT25seSk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmV0dXJucyB0aGUgcHJvcHMgYW5kIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciB0aGUgY29tcG9uZW50XG4gKi8gZXhwb3J0IGNvbnN0IHVzZUJhZGdlX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBzaGFwZSA9ICdjaXJjdWxhcicsIHNpemUgPSAnbWVkaXVtJywgaWNvblBvc2l0aW9uID0gJ2JlZm9yZScsIGFwcGVhcmFuY2UgPSAnZmlsbGVkJywgY29sb3IgPSAnYnJhbmQnIH0gPSBwcm9wcztcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgc2hhcGUsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGljb25Qb3NpdGlvbixcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgY29sb3IsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgaWNvbjogJ3NwYW4nXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiByZWYsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBpY29uOiBzbG90Lm9wdGlvbmFsKHByb3BzLmljb24sIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBzdGF0ZTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmV4cG9ydCBjb25zdCByZW5kZXJCYWRnZV91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgc3RhdGUuaWNvblBvc2l0aW9uID09PSAnYmVmb3JlJyAmJiBzdGF0ZS5pY29uICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5pY29uLCB7fSksXG4gICAgICAgICAgICBzdGF0ZS5yb290LmNoaWxkcmVuLFxuICAgICAgICAgICAgc3RhdGUuaWNvblBvc2l0aW9uID09PSAnYWZ0ZXInICYmIHN0YXRlLmljb24gJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmljb24sIHt9KVxuICAgICAgICBdXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJlc2VuY2VBdmFpbGFibGUxMFJlZ3VsYXIsIFByZXNlbmNlQXZhaWxhYmxlMTJSZWd1bGFyLCBQcmVzZW5jZUF2YWlsYWJsZTE2UmVndWxhciwgUHJlc2VuY2VBdmFpbGFibGUyMFJlZ3VsYXIsIFByZXNlbmNlQXZhaWxhYmxlMTBGaWxsZWQsIFByZXNlbmNlQXZhaWxhYmxlMTJGaWxsZWQsIFByZXNlbmNlQXZhaWxhYmxlMTZGaWxsZWQsIFByZXNlbmNlQXZhaWxhYmxlMjBGaWxsZWQsIFByZXNlbmNlQXdheTEwUmVndWxhciwgUHJlc2VuY2VBd2F5MTJSZWd1bGFyLCBQcmVzZW5jZUF3YXkxNlJlZ3VsYXIsIFByZXNlbmNlQXdheTIwUmVndWxhciwgUHJlc2VuY2VBd2F5MTBGaWxsZWQsIFByZXNlbmNlQXdheTEyRmlsbGVkLCBQcmVzZW5jZUF3YXkxNkZpbGxlZCwgUHJlc2VuY2VBd2F5MjBGaWxsZWQsIFByZXNlbmNlQmxvY2tlZDEwUmVndWxhciwgUHJlc2VuY2VCbG9ja2VkMTJSZWd1bGFyLCBQcmVzZW5jZUJsb2NrZWQxNlJlZ3VsYXIsIFByZXNlbmNlQmxvY2tlZDIwUmVndWxhciwgUHJlc2VuY2VCdXN5MTBGaWxsZWQsIFByZXNlbmNlQnVzeTEyRmlsbGVkLCBQcmVzZW5jZUJ1c3kxNkZpbGxlZCwgUHJlc2VuY2VCdXN5MjBGaWxsZWQsIFByZXNlbmNlRG5kMTBSZWd1bGFyLCBQcmVzZW5jZURuZDEyUmVndWxhciwgUHJlc2VuY2VEbmQxNlJlZ3VsYXIsIFByZXNlbmNlRG5kMjBSZWd1bGFyLCBQcmVzZW5jZURuZDEwRmlsbGVkLCBQcmVzZW5jZURuZDEyRmlsbGVkLCBQcmVzZW5jZURuZDE2RmlsbGVkLCBQcmVzZW5jZURuZDIwRmlsbGVkLCBQcmVzZW5jZU9vZjEwUmVndWxhciwgUHJlc2VuY2VPb2YxMlJlZ3VsYXIsIFByZXNlbmNlT29mMTZSZWd1bGFyLCBQcmVzZW5jZU9vZjIwUmVndWxhciwgUHJlc2VuY2VPZmZsaW5lMTBSZWd1bGFyLCBQcmVzZW5jZU9mZmxpbmUxMlJlZ3VsYXIsIFByZXNlbmNlT2ZmbGluZTE2UmVndWxhciwgUHJlc2VuY2VPZmZsaW5lMjBSZWd1bGFyLCBQcmVzZW5jZVVua25vd24xMFJlZ3VsYXIsIFByZXNlbmNlVW5rbm93bjEyUmVndWxhciwgUHJlc2VuY2VVbmtub3duMTZSZWd1bGFyLCBQcmVzZW5jZVVua25vd24yMFJlZ3VsYXIgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtaWNvbnMnO1xuZXhwb3J0IGNvbnN0IHByZXNlbmNlQXdheVJlZ3VsYXIgPSB7XG4gICAgLy8gRklYTUUgbm90IGFsbCBwcmVzZW5jZSBpY29uIHNpemVzIGFyZSBhdmFpbGFibGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yMDY1MFxuICAgIHRpbnk6IFByZXNlbmNlQXdheTEwUmVndWxhcixcbiAgICAnZXh0cmEtc21hbGwnOiBQcmVzZW5jZUF3YXkxMFJlZ3VsYXIsXG4gICAgc21hbGw6IFByZXNlbmNlQXdheTEyUmVndWxhcixcbiAgICBtZWRpdW06IFByZXNlbmNlQXdheTE2UmVndWxhcixcbiAgICBsYXJnZTogUHJlc2VuY2VBd2F5MjBSZWd1bGFyLFxuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICAnZXh0cmEtbGFyZ2UnOiBQcmVzZW5jZUF3YXkyMFJlZ3VsYXJcbn07XG5leHBvcnQgY29uc3QgcHJlc2VuY2VBd2F5RmlsbGVkID0ge1xuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICB0aW55OiBQcmVzZW5jZUF3YXkxMEZpbGxlZCxcbiAgICAnZXh0cmEtc21hbGwnOiBQcmVzZW5jZUF3YXkxMEZpbGxlZCxcbiAgICBzbWFsbDogUHJlc2VuY2VBd2F5MTJGaWxsZWQsXG4gICAgbWVkaXVtOiBQcmVzZW5jZUF3YXkxNkZpbGxlZCxcbiAgICBsYXJnZTogUHJlc2VuY2VBd2F5MjBGaWxsZWQsXG4gICAgLy8gRklYTUUgbm90IGFsbCBwcmVzZW5jZSBpY29uIHNpemVzIGFyZSBhdmFpbGFibGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yMDY1MFxuICAgICdleHRyYS1sYXJnZSc6IFByZXNlbmNlQXdheTIwRmlsbGVkXG59O1xuZXhwb3J0IGNvbnN0IHByZXNlbmNlQXZhaWxhYmxlUmVndWxhciA9IHtcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgdGlueTogUHJlc2VuY2VBdmFpbGFibGUxMFJlZ3VsYXIsXG4gICAgJ2V4dHJhLXNtYWxsJzogUHJlc2VuY2VBdmFpbGFibGUxMFJlZ3VsYXIsXG4gICAgc21hbGw6IFByZXNlbmNlQXZhaWxhYmxlMTJSZWd1bGFyLFxuICAgIG1lZGl1bTogUHJlc2VuY2VBdmFpbGFibGUxNlJlZ3VsYXIsXG4gICAgbGFyZ2U6IFByZXNlbmNlQXZhaWxhYmxlMjBSZWd1bGFyLFxuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICAnZXh0cmEtbGFyZ2UnOiBQcmVzZW5jZUF2YWlsYWJsZTIwUmVndWxhclxufTtcbmV4cG9ydCBjb25zdCBwcmVzZW5jZUF2YWlsYWJsZUZpbGxlZCA9IHtcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgdGlueTogUHJlc2VuY2VBdmFpbGFibGUxMEZpbGxlZCxcbiAgICAnZXh0cmEtc21hbGwnOiBQcmVzZW5jZUF2YWlsYWJsZTEwRmlsbGVkLFxuICAgIHNtYWxsOiBQcmVzZW5jZUF2YWlsYWJsZTEyRmlsbGVkLFxuICAgIG1lZGl1bTogUHJlc2VuY2VBdmFpbGFibGUxNkZpbGxlZCxcbiAgICBsYXJnZTogUHJlc2VuY2VBdmFpbGFibGUyMEZpbGxlZCxcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgJ2V4dHJhLWxhcmdlJzogUHJlc2VuY2VBdmFpbGFibGUyMEZpbGxlZFxufTtcbmV4cG9ydCBjb25zdCBwcmVzZW5jZUJsb2NrZWRSZWd1bGFyID0ge1xuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICB0aW55OiBQcmVzZW5jZUJsb2NrZWQxMFJlZ3VsYXIsXG4gICAgJ2V4dHJhLXNtYWxsJzogUHJlc2VuY2VCbG9ja2VkMTBSZWd1bGFyLFxuICAgIHNtYWxsOiBQcmVzZW5jZUJsb2NrZWQxMlJlZ3VsYXIsXG4gICAgbWVkaXVtOiBQcmVzZW5jZUJsb2NrZWQxNlJlZ3VsYXIsXG4gICAgbGFyZ2U6IFByZXNlbmNlQmxvY2tlZDIwUmVndWxhcixcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgJ2V4dHJhLWxhcmdlJzogUHJlc2VuY2VCbG9ja2VkMjBSZWd1bGFyXG59O1xuZXhwb3J0IGNvbnN0IHByZXNlbmNlQnVzeUZpbGxlZCA9IHtcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgdGlueTogUHJlc2VuY2VCdXN5MTBGaWxsZWQsXG4gICAgJ2V4dHJhLXNtYWxsJzogUHJlc2VuY2VCdXN5MTBGaWxsZWQsXG4gICAgc21hbGw6IFByZXNlbmNlQnVzeTEyRmlsbGVkLFxuICAgIG1lZGl1bTogUHJlc2VuY2VCdXN5MTZGaWxsZWQsXG4gICAgbGFyZ2U6IFByZXNlbmNlQnVzeTIwRmlsbGVkLFxuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICAnZXh0cmEtbGFyZ2UnOiBQcmVzZW5jZUJ1c3kyMEZpbGxlZFxufTtcbmV4cG9ydCBjb25zdCBwcmVzZW5jZURuZEZpbGxlZCA9IHtcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgdGlueTogUHJlc2VuY2VEbmQxMEZpbGxlZCxcbiAgICAnZXh0cmEtc21hbGwnOiBQcmVzZW5jZURuZDEwRmlsbGVkLFxuICAgIHNtYWxsOiBQcmVzZW5jZURuZDEyRmlsbGVkLFxuICAgIG1lZGl1bTogUHJlc2VuY2VEbmQxNkZpbGxlZCxcbiAgICBsYXJnZTogUHJlc2VuY2VEbmQyMEZpbGxlZCxcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgJ2V4dHJhLWxhcmdlJzogUHJlc2VuY2VEbmQyMEZpbGxlZFxufTtcbmV4cG9ydCBjb25zdCBwcmVzZW5jZURuZFJlZ3VsYXIgPSB7XG4gICAgLy8gRklYTUUgbm90IGFsbCBwcmVzZW5jZSBpY29uIHNpemVzIGFyZSBhdmFpbGFibGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yMDY1MFxuICAgIHRpbnk6IFByZXNlbmNlRG5kMTBSZWd1bGFyLFxuICAgICdleHRyYS1zbWFsbCc6IFByZXNlbmNlRG5kMTBSZWd1bGFyLFxuICAgIHNtYWxsOiBQcmVzZW5jZURuZDEyUmVndWxhcixcbiAgICBtZWRpdW06IFByZXNlbmNlRG5kMTZSZWd1bGFyLFxuICAgIGxhcmdlOiBQcmVzZW5jZURuZDIwUmVndWxhcixcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgJ2V4dHJhLWxhcmdlJzogUHJlc2VuY2VEbmQyMFJlZ3VsYXJcbn07XG5leHBvcnQgY29uc3QgcHJlc2VuY2VPb2ZSZWd1bGFyID0ge1xuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICB0aW55OiBQcmVzZW5jZU9vZjEwUmVndWxhcixcbiAgICAnZXh0cmEtc21hbGwnOiBQcmVzZW5jZU9vZjEwUmVndWxhcixcbiAgICBzbWFsbDogUHJlc2VuY2VPb2YxMlJlZ3VsYXIsXG4gICAgbWVkaXVtOiBQcmVzZW5jZU9vZjE2UmVndWxhcixcbiAgICBsYXJnZTogUHJlc2VuY2VPb2YyMFJlZ3VsYXIsXG4gICAgLy8gRklYTUUgbm90IGFsbCBwcmVzZW5jZSBpY29uIHNpemVzIGFyZSBhdmFpbGFibGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yMDY1MFxuICAgICdleHRyYS1sYXJnZSc6IFByZXNlbmNlT29mMjBSZWd1bGFyXG59O1xuZXhwb3J0IGNvbnN0IHByZXNlbmNlT2ZmbGluZVJlZ3VsYXIgPSB7XG4gICAgLy8gRklYTUUgbm90IGFsbCBwcmVzZW5jZSBpY29uIHNpemVzIGFyZSBhdmFpbGFibGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yMDY1MFxuICAgIHRpbnk6IFByZXNlbmNlT2ZmbGluZTEwUmVndWxhcixcbiAgICAnZXh0cmEtc21hbGwnOiBQcmVzZW5jZU9mZmxpbmUxMFJlZ3VsYXIsXG4gICAgc21hbGw6IFByZXNlbmNlT2ZmbGluZTEyUmVndWxhcixcbiAgICBtZWRpdW06IFByZXNlbmNlT2ZmbGluZTE2UmVndWxhcixcbiAgICBsYXJnZTogUHJlc2VuY2VPZmZsaW5lMjBSZWd1bGFyLFxuICAgIC8vIEZJWE1FIG5vdCBhbGwgcHJlc2VuY2UgaWNvbiBzaXplcyBhcmUgYXZhaWxhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjA2NTBcbiAgICAnZXh0cmEtbGFyZ2UnOiBQcmVzZW5jZU9mZmxpbmUyMFJlZ3VsYXJcbn07XG5leHBvcnQgY29uc3QgcHJlc2VuY2VVbmtub3duUmVndWxhciA9IHtcbiAgICAvLyBGSVhNRSBub3QgYWxsIHByZXNlbmNlIGljb24gc2l6ZXMgYXJlIGF2YWlsYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzIwNjUwXG4gICAgdGlueTogUHJlc2VuY2VVbmtub3duMTBSZWd1bGFyLFxuICAgICdleHRyYS1zbWFsbCc6IFByZXNlbmNlVW5rbm93bjEwUmVndWxhcixcbiAgICBzbWFsbDogUHJlc2VuY2VVbmtub3duMTJSZWd1bGFyLFxuICAgIG1lZGl1bTogUHJlc2VuY2VVbmtub3duMTZSZWd1bGFyLFxuICAgIGxhcmdlOiBQcmVzZW5jZVVua25vd24yMFJlZ3VsYXIsXG4gICAgLy8gRklYTUUgbm90IGFsbCBwcmVzZW5jZSBpY29uIHNpemVzIGFyZSBhdmFpbGFibGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yMDY1MFxuICAgICdleHRyYS1sYXJnZSc6IFByZXNlbmNlVW5rbm93bjIwUmVndWxhclxufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHByZXNlbmNlQXZhaWxhYmxlRmlsbGVkLCBwcmVzZW5jZUF2YWlsYWJsZVJlZ3VsYXIsIHByZXNlbmNlQXdheUZpbGxlZCwgcHJlc2VuY2VCbG9ja2VkUmVndWxhciwgcHJlc2VuY2VCdXN5RmlsbGVkLCBwcmVzZW5jZURuZEZpbGxlZCwgcHJlc2VuY2VEbmRSZWd1bGFyLCBwcmVzZW5jZU9mZmxpbmVSZWd1bGFyLCBwcmVzZW5jZU9vZlJlZ3VsYXIsIHByZXNlbmNlVW5rbm93blJlZ3VsYXIgfSBmcm9tICcuL3ByZXNlbmNlSWNvbnMnO1xuaW1wb3J0IHsgdXNlQmFkZ2VfdW5zdGFibGUgfSBmcm9tICcuLi9CYWRnZS9pbmRleCc7XG5jb25zdCBpY29uTWFwID0gKHN0YXR1cywgb3V0T2ZPZmZpY2UsIHNpemUpPT57XG4gICAgc3dpdGNoKHN0YXR1cyl7XG4gICAgICAgIGNhc2UgJ2F2YWlsYWJsZSc6XG4gICAgICAgICAgICByZXR1cm4gb3V0T2ZPZmZpY2UgPyBwcmVzZW5jZUF2YWlsYWJsZVJlZ3VsYXJbc2l6ZV0gOiBwcmVzZW5jZUF2YWlsYWJsZUZpbGxlZFtzaXplXTtcbiAgICAgICAgY2FzZSAnYXdheSc6XG4gICAgICAgICAgICByZXR1cm4gb3V0T2ZPZmZpY2UgPyBwcmVzZW5jZU9vZlJlZ3VsYXJbc2l6ZV0gOiBwcmVzZW5jZUF3YXlGaWxsZWRbc2l6ZV07XG4gICAgICAgIGNhc2UgJ2Jsb2NrZWQnOlxuICAgICAgICAgICAgcmV0dXJuIHByZXNlbmNlQmxvY2tlZFJlZ3VsYXJbc2l6ZV07XG4gICAgICAgIGNhc2UgJ2J1c3knOlxuICAgICAgICAgICAgcmV0dXJuIG91dE9mT2ZmaWNlID8gcHJlc2VuY2VVbmtub3duUmVndWxhcltzaXplXSA6IHByZXNlbmNlQnVzeUZpbGxlZFtzaXplXTtcbiAgICAgICAgY2FzZSAnZG8tbm90LWRpc3R1cmInOlxuICAgICAgICAgICAgcmV0dXJuIG91dE9mT2ZmaWNlID8gcHJlc2VuY2VEbmRSZWd1bGFyW3NpemVdIDogcHJlc2VuY2VEbmRGaWxsZWRbc2l6ZV07XG4gICAgICAgIGNhc2UgJ29mZmxpbmUnOlxuICAgICAgICAgICAgcmV0dXJuIG91dE9mT2ZmaWNlID8gcHJlc2VuY2VPb2ZSZWd1bGFyW3NpemVdIDogcHJlc2VuY2VPZmZsaW5lUmVndWxhcltzaXplXTtcbiAgICAgICAgY2FzZSAnb3V0LW9mLW9mZmljZSc6XG4gICAgICAgICAgICByZXR1cm4gcHJlc2VuY2VPb2ZSZWd1bGFyW3NpemVdO1xuICAgICAgICBjYXNlICd1bmtub3duJzpcbiAgICAgICAgICAgIHJldHVybiBwcmVzZW5jZVVua25vd25SZWd1bGFyW3NpemVdO1xuICAgIH1cbn07XG5jb25zdCBERUZBVUxUX1NUUklOR1MgPSB7XG4gICAgYnVzeTogJ2J1c3knLFxuICAgICdvdXQtb2Ytb2ZmaWNlJzogJ291dCBvZiBvZmZpY2UnLFxuICAgIGF3YXk6ICdhd2F5JyxcbiAgICBhdmFpbGFibGU6ICdhdmFpbGFibGUnLFxuICAgIG9mZmxpbmU6ICdvZmZsaW5lJyxcbiAgICAnZG8tbm90LWRpc3R1cmInOiAnZG8gbm90IGRpc3R1cmInLFxuICAgIHVua25vd246ICd1bmtub3duJyxcbiAgICBibG9ja2VkOiAnYmxvY2tlZCdcbn07XG4vKipcbiAqIFJldHVybnMgdGhlIHByb3BzIGFuZCBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgdGhlIGNvbXBvbmVudFxuICovIGV4cG9ydCBjb25zdCB1c2VQcmVzZW5jZUJhZGdlX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBzaXplID0gJ21lZGl1bScsIHN0YXR1cyA9ICdhdmFpbGFibGUnLCBvdXRPZk9mZmljZSA9IGZhbHNlIH0gPSBwcm9wcztcbiAgICBjb25zdCBzdGF0dXNUZXh0ID0gREVGQVVMVF9TVFJJTkdTW3N0YXR1c107XG4gICAgY29uc3Qgb29mVGV4dCA9IHByb3BzLm91dE9mT2ZmaWNlICYmIHByb3BzLnN0YXR1cyAhPT0gJ291dC1vZi1vZmZpY2UnID8gYCAke0RFRkFVTFRfU1RSSU5HU1snb3V0LW9mLW9mZmljZSddfWAgOiAnJztcbiAgICBjb25zdCBJY29uRWxlbWVudCA9IGljb25NYXAoc3RhdHVzLCBvdXRPZk9mZmljZSwgc2l6ZSk7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIC4uLnVzZUJhZGdlX3Vuc3RhYmxlKHtcbiAgICAgICAgICAgICdhcmlhLWxhYmVsJzogc3RhdHVzVGV4dCArIG9vZlRleHQsXG4gICAgICAgICAgICByb2xlOiAnaW1nJyxcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIGljb246IHNsb3Qub3B0aW9uYWwocHJvcHMuaWNvbiwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogSWNvbkVsZW1lbnQgPyAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkVsZW1lbnQsIG51bGwpIDogbnVsbFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sIHJlZiksXG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgb3V0T2ZPZmZpY2VcbiAgICB9O1xuICAgIHJldHVybiBzdGF0ZTtcbn07XG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCBwcmVzZW5jZUJhZGdlQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1QcmVzZW5jZUJhZGdlJyxcbiAgaWNvbjogJ2Z1aS1QcmVzZW5jZUJhZGdlX19pY29uJ1xufTtcbmNvbnN0IGdldElzQnVzeSA9IHN0YXR1cyA9PiB7XG4gIGlmIChzdGF0dXMgPT09ICdidXN5JyB8fCBzdGF0dXMgPT09ICdkby1ub3QtZGlzdHVyYicgfHwgc3RhdHVzID09PSAnYmxvY2tlZCcpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgdXNlUm9vdENsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjgzMnlkb1wiLCBudWxsLCBbXCIucjgzMnlkb3tkaXNwbGF5OmlubGluZS1mbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c0NpcmN1bGFyKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTtwYWRkaW5nOjFweDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7fVwiXSk7XG5jb25zdCB1c2VJY29uQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyMTFhZzRxclwiLCBudWxsLCBbXCIucjExYWc0cXJ7ZGlzcGxheTpmbGV4O21hcmdpbjotMXB4O31cIl0pO1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgc3RhdHVzQnVzeToge1xuICAgIHNqNTV6ZDogXCJmdmk4NXd0XCJcbiAgfSxcbiAgc3RhdHVzQXdheToge1xuICAgIHNqNTV6ZDogXCJmMTRrOGE4OVwiXG4gIH0sXG4gIHN0YXR1c0F2YWlsYWJsZToge1xuICAgIHNqNTV6ZDogXCJmcWE1aGdwXCJcbiAgfSxcbiAgc3RhdHVzT2ZmbGluZToge1xuICAgIHNqNTV6ZDogXCJmMTFkNGtwblwiXG4gIH0sXG4gIHN0YXR1c091dE9mT2ZmaWNlOiB7XG4gICAgc2o1NXpkOiBcImZkY2U4cjNcIlxuICB9LFxuICBzdGF0dXNVbmtub3duOiB7XG4gICAgc2o1NXpkOiBcImYxMWQ0a3BuXCJcbiAgfSxcbiAgb3V0T2ZPZmZpY2U6IHtcbiAgICBzajU1emQ6IFwiZnIwYmtya1wiXG4gIH0sXG4gIG91dE9mT2ZmaWNlQXZhaWxhYmxlOiB7XG4gICAgc2o1NXpkOiBcImZxYTVoZ3BcIlxuICB9LFxuICBvdXRPZk9mZmljZUJ1c3k6IHtcbiAgICBzajU1emQ6IFwiZnZpODV3dFwiXG4gIH0sXG4gIG91dE9mT2ZmaWNlVW5rbm93bjoge1xuICAgIHNqNTV6ZDogXCJmMTFkNGtwblwiXG4gIH0sXG4gIHRpbnk6IHtcbiAgICBCdWJqeDY5OiBcImY5aWttdGdcIixcbiAgICBhOWI2Nzc6IFwiZjE2ZG42djNcIixcbiAgICBCMmVldDFsOiBcImYxdzJpcmo3XCIsXG4gICAgQjVwZTZ3NzogXCJmYWI1a2JxXCIsXG4gICAgcDR1emRkOiBcImYxbXMxZDkxXCJcbiAgfSxcbiAgbGFyZ2U6IHtcbiAgICBCdWJqeDY5OiBcImY5aWttdGdcIixcbiAgICBhOWI2Nzc6IFwiZjY0ZnVxM1wiLFxuICAgIEI1cGU2dzc6IFwiZjF2ZmkxeWpcIixcbiAgICBwNHV6ZGQ6IFwiZjE1czM0Z3pcIlxuICB9LFxuICBleHRyYUxhcmdlOiB7XG4gICAgQnViang2OTogXCJmOWlrbXRnXCIsXG4gICAgYTliNjc3OiBcImYxdzlkY2hrXCIsXG4gICAgQjVwZTZ3NzogXCJmMTRlZnk5YlwiLFxuICAgIHA0dXpkZDogXCJmaGlwZ2R1XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZnZpODV3dHtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVSZWRCYWNrZ3JvdW5kMyk7fVwiLCBcIi5mMTRrOGE4OXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVNYXJpZ29sZEJhY2tncm91bmQzKTt9XCIsIFwiLmZxYTVoZ3B7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlTGlnaHRHcmVlbkZvcmVncm91bmQzKTt9XCIsIFwiLmYxMWQ0a3Bue2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzKTt9XCIsIFwiLmZkY2U4cjN7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlQmVycnlGb3JlZ3JvdW5kMyk7fVwiLCBcIi5mcjBia3Jre2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTt9XCIsIFwiLmY5aWttdGd7YXNwZWN0LXJhdGlvOjE7fVwiLCBcIi5mMTZkbjZ2M3t3aWR0aDo2cHg7fVwiLCBcIi5mMXcyaXJqN3tiYWNrZ3JvdW5kLWNsaXA6dW5zZXQ7fVwiLCBcIi5mYWI1a2JxIHN2Z3t3aWR0aDo2cHghaW1wb3J0YW50O31cIiwgXCIuZjFtczFkOTEgc3Zne2hlaWdodDo2cHghaW1wb3J0YW50O31cIiwgXCIuZjY0ZnVxM3t3aWR0aDoyMHB4O31cIiwgXCIuZjF2ZmkxeWogc3Zne3dpZHRoOjIwcHghaW1wb3J0YW50O31cIiwgXCIuZjE1czM0Z3ogc3Zne2hlaWdodDoyMHB4IWltcG9ydGFudDt9XCIsIFwiLmYxdzlkY2hre3dpZHRoOjI4cHg7fVwiLCBcIi5mMTRlZnk5YiBzdmd7d2lkdGg6MjhweCFpbXBvcnRhbnQ7fVwiLCBcIi5maGlwZ2R1IHN2Z3toZWlnaHQ6MjhweCFpbXBvcnRhbnQ7fVwiXVxufSk7XG4vKipcbiAqIEFwcGxpZXMgc3R5bGUgY2xhc3NuYW1lcyB0byBzbG90c1xuICovXG5leHBvcnQgY29uc3QgdXNlUHJlc2VuY2VCYWRnZVN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlUm9vdENsYXNzTmFtZSgpO1xuICBjb25zdCBpY29uQ2xhc3NOYW1lID0gdXNlSWNvbkNsYXNzTmFtZSgpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3QgaXNCdXN5ID0gZ2V0SXNCdXN5KHN0YXRlLnN0YXR1cyk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHByZXNlbmNlQmFkZ2VDbGFzc05hbWVzLnJvb3QsIHJvb3RDbGFzc05hbWUsIGlzQnVzeSAmJiBzdHlsZXMuc3RhdHVzQnVzeSwgc3RhdGUuc3RhdHVzID09PSAnYXdheScgJiYgc3R5bGVzLnN0YXR1c0F3YXksIHN0YXRlLnN0YXR1cyA9PT0gJ2F2YWlsYWJsZScgJiYgc3R5bGVzLnN0YXR1c0F2YWlsYWJsZSwgc3RhdGUuc3RhdHVzID09PSAnb2ZmbGluZScgJiYgc3R5bGVzLnN0YXR1c09mZmxpbmUsIHN0YXRlLnN0YXR1cyA9PT0gJ291dC1vZi1vZmZpY2UnICYmIHN0eWxlcy5zdGF0dXNPdXRPZk9mZmljZSwgc3RhdGUuc3RhdHVzID09PSAndW5rbm93bicgJiYgc3R5bGVzLnN0YXR1c1Vua25vd24sIHN0YXRlLm91dE9mT2ZmaWNlICYmIHN0eWxlcy5vdXRPZk9mZmljZSwgc3RhdGUub3V0T2ZPZmZpY2UgJiYgc3RhdGUuc3RhdHVzID09PSAnYXZhaWxhYmxlJyAmJiBzdHlsZXMub3V0T2ZPZmZpY2VBdmFpbGFibGUsIHN0YXRlLm91dE9mT2ZmaWNlICYmIGlzQnVzeSAmJiBzdHlsZXMub3V0T2ZPZmZpY2VCdXN5LCBzdGF0ZS5vdXRPZk9mZmljZSAmJiAoc3RhdGUuc3RhdHVzID09PSAnb3V0LW9mLW9mZmljZScgfHwgc3RhdGUuc3RhdHVzID09PSAnYXdheScgfHwgc3RhdGUuc3RhdHVzID09PSAnb2ZmbGluZScpICYmIHN0eWxlcy5zdGF0dXNPdXRPZk9mZmljZSwgc3RhdGUub3V0T2ZPZmZpY2UgJiYgc3RhdGUuc3RhdHVzID09PSAndW5rbm93bicgJiYgc3R5bGVzLm91dE9mT2ZmaWNlVW5rbm93biwgc3RhdGUuc2l6ZSA9PT0gJ3RpbnknICYmIHN0eWxlcy50aW55LCBzdGF0ZS5zaXplID09PSAnbGFyZ2UnICYmIHN0eWxlcy5sYXJnZSwgc3RhdGUuc2l6ZSA9PT0gJ2V4dHJhLWxhcmdlJyAmJiBzdHlsZXMuZXh0cmFMYXJnZSwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBpZiAoc3RhdGUuaWNvbikge1xuICAgIHN0YXRlLmljb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHByZXNlbmNlQmFkZ2VDbGFzc05hbWVzLmljb24sIGljb25DbGFzc05hbWUsIHN0YXRlLmljb24uY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlUHJlc2VuY2VCYWRnZVN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUHJlc2VuY2VCYWRnZV91bnN0YWJsZSB9IGZyb20gJy4vdXNlUHJlc2VuY2VCYWRnZSc7XG5pbXBvcnQgeyB1c2VQcmVzZW5jZUJhZGdlU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VQcmVzZW5jZUJhZGdlU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IHJlbmRlckJhZGdlX3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vQmFkZ2UnO1xuLyoqXG4gKiBEZWZpbmUgYSBzdHlsZWQgQmFkZ2UsIHVzaW5nIHRoZSBgdXNlQmFkZ2VfdW5zdGFibGVgIGhvb2suXG4gKi8gZXhwb3J0IGNvbnN0IFByZXNlbmNlQmFkZ2UgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VQcmVzZW5jZUJhZGdlX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVByZXNlbmNlQmFkZ2VTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlUHJlc2VuY2VCYWRnZVN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyQmFkZ2VfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5QcmVzZW5jZUJhZGdlLmRpc3BsYXlOYW1lID0gJ1ByZXNlbmNlQmFkZ2UnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgYXZhdGFyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbmNvbnN0IGF2YXRhckNvbnRleHREZWZhdWx0VmFsdWUgPSB7fTtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IEF2YXRhckNvbnRleHRQcm92aWRlciA9IGF2YXRhckNvbnRleHQuUHJvdmlkZXI7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCB1c2VBdmF0YXJDb250ZXh0ID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoYXZhdGFyQ29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IGF2YXRhckNvbnRleHREZWZhdWx0VmFsdWU7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBtZXJnZUNhbGxiYWNrcywgdXNlSWQsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IGdldEluaXRpYWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW5kZXgnO1xuaW1wb3J0IHsgUGVyc29uUmVndWxhciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1pY29ucyc7XG5pbXBvcnQgeyBQcmVzZW5jZUJhZGdlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWJhZGdlJztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IHVzZUF2YXRhckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9BdmF0YXJDb250ZXh0JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NUUklOR1MgPSB7XG4gICAgYWN0aXZlOiAnYWN0aXZlJyxcbiAgICBpbmFjdGl2ZTogJ2luYWN0aXZlJ1xufTtcbmV4cG9ydCBjb25zdCB1c2VBdmF0YXJfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IGRpciB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3QgeyBzaGFwZTogY29udGV4dFNoYXBlLCBzaXplOiBjb250ZXh0U2l6ZSB9ID0gdXNlQXZhdGFyQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgbmFtZSwgc2l6ZSA9IGNvbnRleHRTaXplICE9PSBudWxsICYmIGNvbnRleHRTaXplICE9PSB2b2lkIDAgPyBjb250ZXh0U2l6ZSA6IDMyLCBzaGFwZSA9IGNvbnRleHRTaGFwZSAhPT0gbnVsbCAmJiBjb250ZXh0U2hhcGUgIT09IHZvaWQgMCA/IGNvbnRleHRTaGFwZSA6ICdjaXJjdWxhcicsIGFjdGl2ZSA9ICd1bnNldCcsIGFjdGl2ZUFwcGVhcmFuY2UgPSAncmluZycsIGlkRm9yQ29sb3IgfSA9IHByb3BzO1xuICAgIGxldCB7IGNvbG9yID0gJ25ldXRyYWwnIH0gPSBwcm9wcztcbiAgICAvLyBSZXNvbHZlICdjb2xvcmZ1bCcgdG8gYSBzcGVjaWZpYyBjb2xvciBuYW1lXG4gICAgaWYgKGNvbG9yID09PSAnY29sb3JmdWwnKSB7XG4gICAgICAgIHZhciBfcmVmO1xuICAgICAgICBjb2xvciA9IGF2YXRhckNvbG9yc1tnZXRIYXNoQ29kZSgoX3JlZiA9IGlkRm9yQ29sb3IgIT09IG51bGwgJiYgaWRGb3JDb2xvciAhPT0gdm9pZCAwID8gaWRGb3JDb2xvciA6IG5hbWUpICE9PSBudWxsICYmIF9yZWYgIT09IHZvaWQgMCA/IF9yZWYgOiAnJykgJSBhdmF0YXJDb2xvcnMubGVuZ3RoXTtcbiAgICB9XG4gICAgY29uc3QgYmFzZUlkID0gdXNlSWQoJ2F2YXRhci0nKTtcbiAgICBjb25zdCByb290ID0gc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdzcGFuJywge1xuICAgICAgICByb2xlOiAnaW1nJyxcbiAgICAgICAgaWQ6IGJhc2VJZCxcbiAgICAgICAgLy8gYXJpYS1sYWJlbCBhbmQvb3IgYXJpYS1sYWJlbGxlZGJ5IGFyZSByZXNvbHZlZCBiZWxvd1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgcmVmXG4gICAgfSwgLyogZXhjbHVkZWRQcm9wTmFtZXM6ICovIFtcbiAgICAgICAgJ25hbWUnXG4gICAgXSksIHtcbiAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgIH0pO1xuICAgIGNvbnN0IFtpbWFnZUhpZGRlbiwgc2V0SW1hZ2VIaWRkZW5dID0gUmVhY3QudXNlU3RhdGUodW5kZWZpbmVkKTtcbiAgICBsZXQgaW1hZ2UgPSBzbG90Lm9wdGlvbmFsKHByb3BzLmltYWdlLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgYWx0OiAnJyxcbiAgICAgICAgICAgIHJvbGU6ICdwcmVzZW50YXRpb24nLFxuICAgICAgICAgICAgJ2FyaWEtaGlkZGVuJzogdHJ1ZSxcbiAgICAgICAgICAgIGhpZGRlbjogaW1hZ2VIaWRkZW5cbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudFR5cGU6ICdpbWcnXG4gICAgfSk7IC8vIEltYWdlIHNob3VsZG4ndCBiZSByZW5kZXJlZCBpZiBpdHMgc3JjIGlzIG5vdCBzZXRcbiAgICBpZiAoIShpbWFnZSA9PT0gbnVsbCB8fCBpbWFnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW1hZ2Uuc3JjKSkge1xuICAgICAgICBpbWFnZSA9IHVuZGVmaW5lZDtcbiAgICB9IC8vIEhpZGUgdGhlIGltYWdlIGlmIGl0IGZhaWxzIHRvIGxvYWQgYW5kIHJlc3RvcmUgaXQgb24gYSBzdWNjZXNzZnVsIGxvYWRcbiAgICBpZiAoaW1hZ2UpIHtcbiAgICAgICAgaW1hZ2Uub25FcnJvciA9IG1lcmdlQ2FsbGJhY2tzKGltYWdlLm9uRXJyb3IsICgpPT5zZXRJbWFnZUhpZGRlbih0cnVlKSk7XG4gICAgICAgIGltYWdlLm9uTG9hZCA9IG1lcmdlQ2FsbGJhY2tzKGltYWdlLm9uTG9hZCwgKCk9PnNldEltYWdlSGlkZGVuKHVuZGVmaW5lZCkpO1xuICAgIH0gLy8gUmVzb2x2ZSB0aGUgaW5pdGlhbHMgc2xvdCwgZGVmYXVsdGVkIHRvIGdldEluaXRpYWxzLlxuICAgIGxldCBpbml0aWFscyA9IHNsb3Qub3B0aW9uYWwocHJvcHMuaW5pdGlhbHMsIHtcbiAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBnZXRJbml0aWFscyhuYW1lLCBkaXIgPT09ICdydGwnLCB7XG4gICAgICAgICAgICAgICAgZmlyc3RJbml0aWFsT25seTogc2l6ZSA8PSAxNlxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBpZDogYmFzZUlkICsgJ19faW5pdGlhbHMnXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTsgLy8gRG9uJ3QgcmVuZGVyIHRoZSBpbml0aWFscyBzbG90IGlmIGl0J3MgZW1wdHlcbiAgICBpZiAoIShpbml0aWFscyA9PT0gbnVsbCB8fCBpbml0aWFscyA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5pdGlhbHMuY2hpbGRyZW4pKSB7XG4gICAgICAgIGluaXRpYWxzID0gdW5kZWZpbmVkO1xuICAgIH0gLy8gUmVuZGVyIHRoZSBpY29uIHNsb3QgKm9ubHkgaWYqIHRoZXJlIGFyZW4ndCBhbnkgaW5pdGlhbHMgb3IgaW1hZ2UgdG8gZGlzcGxheVxuICAgIGxldCBpY29uID0gdW5kZWZpbmVkO1xuICAgIGlmICghaW5pdGlhbHMgJiYgKCFpbWFnZSB8fCBpbWFnZUhpZGRlbikpIHtcbiAgICAgICAgaWNvbiA9IHNsb3Qub3B0aW9uYWwocHJvcHMuaWNvbiwge1xuICAgICAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChQZXJzb25SZWd1bGFyLCBudWxsKSxcbiAgICAgICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgYmFkZ2UgPSBzbG90Lm9wdGlvbmFsKHByb3BzLmJhZGdlLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgc2l6ZTogZ2V0QmFkZ2VTaXplKHNpemUpLFxuICAgICAgICAgICAgaWQ6IGJhc2VJZCArICdfX2JhZGdlJ1xuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogUHJlc2VuY2VCYWRnZVxuICAgIH0pO1xuICAgIGxldCBhY3RpdmVBcmlhTGFiZWxFbGVtZW50OyAvLyBSZXNvbHZlIGFyaWEtbGFiZWwgYW5kL29yIGFyaWEtbGFiZWxsZWRieSBpZiBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXJcbiAgICBpZiAoIXJvb3RbJ2FyaWEtbGFiZWwnXSAmJiAhcm9vdFsnYXJpYS1sYWJlbGxlZGJ5J10pIHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHJvb3RbJ2FyaWEtbGFiZWwnXSA9IG5hbWU7IC8vIEluY2x1ZGUgdGhlIGJhZGdlIGluIGxhYmVsbGVkYnkgaWYgaXQgZXhpc3RzXG4gICAgICAgICAgICBpZiAoYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICByb290WydhcmlhLWxhYmVsbGVkYnknXSA9IHJvb3QuaWQgKyAnICcgKyBiYWRnZS5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChpbml0aWFscykge1xuICAgICAgICAgICAgLy8gcm9vdCdzIGFyaWEtbGFiZWwgc2hvdWxkIGJlIHRoZSBuYW1lLCBidXQgZmFsbCBiYWNrIHRvIGJlaW5nIGxhYmVsbGVkYnkgdGhlIGluaXRpYWxzIGlmIG5hbWUgaXMgbWlzc2luZ1xuICAgICAgICAgICAgcm9vdFsnYXJpYS1sYWJlbGxlZGJ5J10gPSBpbml0aWFscy5pZCArIChiYWRnZSA/ICcgJyArIGJhZGdlLmlkIDogJycpO1xuICAgICAgICB9IC8vIEFkZCB0aGUgYWN0aXZlIHN0YXRlIHRvIHRoZSBhcmlhIGxhYmVsXG4gICAgICAgIGlmIChhY3RpdmUgPT09ICdhY3RpdmUnIHx8IGFjdGl2ZSA9PT0gJ2luYWN0aXZlJykge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlVGV4dCA9IERFRkFVTFRfU1RSSU5HU1thY3RpdmVdO1xuICAgICAgICAgICAgaWYgKHJvb3RbJ2FyaWEtbGFiZWxsZWRieSddKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdXNpbmcgYXJpYS1sYWJlbGxlZGJ5LCByZW5kZXIgYSBoaWRkZW4gc3BhbiBhbmQgYXBwZW5kIGl0IHRvIHRoZSBsYWJlbGxlZGJ5XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSWQgPSBiYXNlSWQgKyAnX19hY3RpdmUnO1xuICAgICAgICAgICAgICAgIHJvb3RbJ2FyaWEtbGFiZWxsZWRieSddICs9ICcgJyArIGFjdGl2ZUlkO1xuICAgICAgICAgICAgICAgIGFjdGl2ZUFyaWFMYWJlbEVsZW1lbnQgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpZDogYWN0aXZlSWRcbiAgICAgICAgICAgICAgICB9LCBhY3RpdmVUZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocm9vdFsnYXJpYS1sYWJlbCddKSB7XG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBqdXN0IGFwcGVuZCBpdCB0byB0aGUgYXJpYS1sYWJlbFxuICAgICAgICAgICAgICAgIHJvb3RbJ2FyaWEtbGFiZWwnXSArPSAnICcgKyBhY3RpdmVUZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHNpemUsXG4gICAgICAgIHNoYXBlLFxuICAgICAgICBhY3RpdmUsXG4gICAgICAgIGFjdGl2ZUFwcGVhcmFuY2UsXG4gICAgICAgIGFjdGl2ZUFyaWFMYWJlbEVsZW1lbnQsXG4gICAgICAgIGNvbG9yLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnc3BhbicsXG4gICAgICAgICAgICBpbml0aWFsczogJ3NwYW4nLFxuICAgICAgICAgICAgaWNvbjogJ3NwYW4nLFxuICAgICAgICAgICAgaW1hZ2U6ICdpbWcnLFxuICAgICAgICAgICAgYmFkZ2U6IFByZXNlbmNlQmFkZ2VcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdCxcbiAgICAgICAgaW5pdGlhbHMsXG4gICAgICAgIGljb24sXG4gICAgICAgIGltYWdlLFxuICAgICAgICBiYWRnZVxuICAgIH07XG59O1xuY29uc3QgZ2V0QmFkZ2VTaXplID0gKHNpemUpPT57XG4gICAgaWYgKHNpemUgPj0gOTYpIHtcbiAgICAgICAgcmV0dXJuICdleHRyYS1sYXJnZSc7XG4gICAgfSBlbHNlIGlmIChzaXplID49IDY0KSB7XG4gICAgICAgIHJldHVybiAnbGFyZ2UnO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA+PSA1Nikge1xuICAgICAgICByZXR1cm4gJ21lZGl1bSc7XG4gICAgfSBlbHNlIGlmIChzaXplID49IDQwKSB7XG4gICAgICAgIHJldHVybiAnc21hbGwnO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA+PSAyOCkge1xuICAgICAgICByZXR1cm4gJ2V4dHJhLXNtYWxsJztcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJ3RpbnknO1xuICAgIH1cbn07XG5jb25zdCBhdmF0YXJDb2xvcnMgPSBbXG4gICAgJ2RhcmstcmVkJyxcbiAgICAnY3JhbmJlcnJ5JyxcbiAgICAncmVkJyxcbiAgICAncHVtcGtpbicsXG4gICAgJ3BlYWNoJyxcbiAgICAnbWFyaWdvbGQnLFxuICAgICdnb2xkJyxcbiAgICAnYnJhc3MnLFxuICAgICdicm93bicsXG4gICAgJ2ZvcmVzdCcsXG4gICAgJ3NlYWZvYW0nLFxuICAgICdkYXJrLWdyZWVuJyxcbiAgICAnbGlnaHQtdGVhbCcsXG4gICAgJ3RlYWwnLFxuICAgICdzdGVlbCcsXG4gICAgJ2JsdWUnLFxuICAgICdyb3lhbC1ibHVlJyxcbiAgICAnY29ybmZsb3dlcicsXG4gICAgJ25hdnknLFxuICAgICdsYXZlbmRlcicsXG4gICAgJ3B1cnBsZScsXG4gICAgJ2dyYXBlJyxcbiAgICAnbGlsYWMnLFxuICAgICdwaW5rJyxcbiAgICAnbWFnZW50YScsXG4gICAgJ3BsdW0nLFxuICAgICdiZWlnZScsXG4gICAgJ21pbmsnLFxuICAgICdwbGF0aW51bScsXG4gICAgJ2FuY2hvcidcbl07XG5jb25zdCBnZXRIYXNoQ29kZSA9IChzdHIpPT57XG4gICAgbGV0IGhhc2hDb2RlID0gMDtcbiAgICBmb3IobGV0IGxlbiA9IHN0ci5sZW5ndGggLSAxOyBsZW4gPj0gMDsgbGVuLS0pe1xuICAgICAgICBjb25zdCBjaCA9IHN0ci5jaGFyQ29kZUF0KGxlbik7XG4gICAgICAgIGNvbnN0IHNoaWZ0ID0gbGVuICUgODtcbiAgICAgICAgaGFzaENvZGUgXj0gKGNoIDw8IHNoaWZ0KSArIChjaCA+PiA4IC0gc2hpZnQpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWJpdHdpc2VcbiAgICB9XG4gICAgcmV0dXJuIGhhc2hDb2RlO1xufTtcbiIsImltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuZXhwb3J0IGNvbnN0IGF2YXRhckNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktQXZhdGFyJyxcbiAgaW1hZ2U6ICdmdWktQXZhdGFyX19pbWFnZScsXG4gIGluaXRpYWxzOiAnZnVpLUF2YXRhcl9faW5pdGlhbHMnLFxuICBpY29uOiAnZnVpLUF2YXRhcl9faWNvbicsXG4gIGJhZGdlOiAnZnVpLUF2YXRhcl9fYmFkZ2UnXG59O1xuLy8gQ1NTIHZhcmlhYmxlcyB1c2VkIGludGVybmFsbHkgaW4gQXZhdGFyJ3Mgc3R5bGVzXG5jb25zdCB2YXJzID0ge1xuICBiYWRnZVJhZGl1czogJy0tZnVpLUF2YXRhci1iYWRnZVJhZGl1cycsXG4gIGJhZGdlR2FwOiAnLS1mdWktQXZhdGFyLWJhZGdlR2FwJyxcbiAgYmFkZ2VBbGlnbjogJy0tZnVpLUF2YXRhci1iYWRnZUFsaWduJyxcbiAgcmluZ1dpZHRoOiAnLS1mdWktQXZhdGFyLXJpbmdXaWR0aCdcbn07XG5jb25zdCB1c2VSb290Q2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyODFiMjl6XCIsIFwicjFhYXRtdlwiLCB7XG4gIHI6IFtcIi5yODFiMjl6e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzQ2lyY3VsYXIpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7fVwiLCBcIi5yODFiMjl6OjpiZWZvcmUsLnI4MWIyOXo6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3R0b206MDtyaWdodDowO3otaW5kZXg6LTE7bWFyZ2luOmNhbGMoLTIgKiB2YXIoLS1mdWktQXZhdGFyLXJpbmdXaWR0aCwgMHB4KSk7Ym9yZGVyLXJhZGl1czppbmhlcml0O3RyYW5zaXRpb24tcHJvcGVydHk6bWFyZ2luLG9wYWNpdHk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tY3VydmVFYXN5RWFzZU1heCksdmFyKC0tY3VydmVMaW5lYXIpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tZHVyYXRpb25VbHRyYVNsb3cpLHZhcigtLWR1cmF0aW9uU2xvd2VyKTt9XCIsIFwiLnI4MWIyOXo6OmJlZm9yZXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOnZhcigtLWZ1aS1BdmF0YXItcmluZ1dpZHRoKTt9XCIsIFwiLnIxYWF0bXZ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1zaHJpbms6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNDaXJjdWxhcik7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDt9XCIsIFwiLnIxYWF0bXY6OmJlZm9yZSwucjFhYXRtdjo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDotMTttYXJnaW46Y2FsYygtMiAqIHZhcigtLWZ1aS1BdmF0YXItcmluZ1dpZHRoLCAwcHgpKTtib3JkZXItcmFkaXVzOmluaGVyaXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTptYXJnaW4sb3BhY2l0eTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1jdXJ2ZUVhc3lFYXNlTWF4KSx2YXIoLS1jdXJ2ZUxpbmVhcik7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvblVsdHJhU2xvdyksdmFyKC0tZHVyYXRpb25TbG93ZXIpO31cIiwgXCIucjFhYXRtdjo6YmVmb3Jle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6dmFyKC0tZnVpLUF2YXRhci1yaW5nV2lkdGgpO31cIl0sXG4gIHM6IFtcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5yODFiMjl6OjpiZWZvcmUsLnI4MWIyOXo6OmFmdGVye3RyYW5zaXRpb24tZHVyYXRpb246MC4wMW1zO319XCIsIFwiQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7LnIxYWF0bXY6OmJlZm9yZSwucjFhYXRtdjo6YWZ0ZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjowLjAxbXM7fX1cIl1cbn0pO1xuY29uc3QgdXNlSW1hZ2VDbGFzc05hbWUgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxMzZkYzBuXCIsIFwicmpseTBubFwiLCBbXCIucjEzNmRjMG57cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czppbmhlcml0O29iamVjdC1maXQ6Y292ZXI7dmVydGljYWwtYWxpZ246dG9wO31cIiwgXCIucmpseTBubHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czppbmhlcml0O29iamVjdC1maXQ6Y292ZXI7dmVydGljYWwtYWxpZ246dG9wO31cIl0pO1xuY29uc3QgdXNlSWNvbkluaXRpYWxzQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyaXAwNHZcIiwgXCJyMzF1emlsXCIsIFtcIi5yaXAwNHZ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2xpbmUtaGVpZ2h0OjE7Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3ZlcnRpY2FsLWFsaWduOmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0O31cIiwgXCIucjMxdXppbHtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2xpbmUtaGVpZ2h0OjE7Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3ZlcnRpY2FsLWFsaWduOmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Ym9yZGVyLXJhZGl1czppbmhlcml0O31cIl0pO1xuLyoqXG4gKiBIZWxwZXIgdG8gY3JlYXRlIGEgbWFza0ltYWdlIHRoYXQgcHVuY2hlcyBvdXQgYSBjaXJjbGUgbGFyZ2VyIHRoYW4gdGhlIGJhZGdlIGJ5IGBiYWRnZUdhcGAuXG4gKiBUaGlzIGNyZWF0ZXMgYSB0cmFuc3BhcmVudCBnYXAgYmV0d2VlbiB0aGUgYmFkZ2UgYW5kIEF2YXRhci5cbiAqXG4gKiBVc2VkIGJ5IHRoZSBpY29uLCBpbml0aWFscywgYW5kIGltYWdlIHNsb3RzLCBhcyB3ZWxsIGFzIHRoZSByaW5nIDo6YmVmb3JlIHBzZXVkby1lbGVtZW50LlxuICovXG5jb25zdCBiYWRnZU1hc2sgPSBtYXJnaW4gPT4ge1xuICAvLyBDZW50ZXIgdGhlIGN1dG91dCBhdCB0aGUgYmFkZ2UncyByYWRpdXMgYXdheSBmcm9tIHRoZSBlZGdlLlxuICAvLyBUaGUgcmluZyAoOjpiZWZvcmUpIGFsc28gaGFzIGEgMiAqIHJpbmdXaWR0aCBtYXJnaW4gdGhhdCBhbHNvIG5lZWRzIHRvIGJlIG9mZnNldC5cbiAgY29uc3QgY2VudGVyT2Zmc2V0ID0gbWFyZ2luID8gYGNhbGModmFyKCR7dmFycy5iYWRnZVJhZGl1c30pICsgJHttYXJnaW59KWAgOiBgdmFyKCR7dmFycy5iYWRnZVJhZGl1c30pYDtcbiAgLy8gcmFkaWFsLWdyYWRpZW50IGRvZXMgbm90IGhhdmUgYW50aS1hbGlhc2luZywgc28gdGhlIHRyYW5zcGFyZW50IGFuZCBvcGFxdWUgZ3JhZGllbnQgc3RvcHMgYXJlIG9mZnNldCBieSArLy0gMC4yNXB4XG4gIC8vIHRvIFwiZmFkZVwiIGZyb20gdHJhbnNwYXJlbnQgdG8gb3BhcXVlIG92ZXIgYSBoYWxmLXBpeGVsIGFuZCBlYXNlIHRoZSB0cmFuc2l0aW9uLlxuICBjb25zdCBpbm5lclJhZGl1cyA9IGBjYWxjKHZhcigke3ZhcnMuYmFkZ2VSYWRpdXN9KSArIHZhcigke3ZhcnMuYmFkZ2VHYXB9KSAtIDAuMjVweClgO1xuICBjb25zdCBvdXRlclJhZGl1cyA9IGBjYWxjKHZhcigke3ZhcnMuYmFkZ2VSYWRpdXN9KSArIHZhcigke3ZhcnMuYmFkZ2VHYXB9KSArIDAuMjVweClgO1xuICByZXR1cm4gYHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tICR7Y2VudGVyT2Zmc2V0fSB2YXIoJHt2YXJzLmJhZGdlQWxpZ259KSAke2NlbnRlck9mZnNldH0sIGAgKyBgdHJhbnNwYXJlbnQgJHtpbm5lclJhZGl1c30sIHdoaXRlICR7b3V0ZXJSYWRpdXN9KWA7XG59O1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgdGV4dENhcHRpb24yU3Ryb25nOiB7XG4gICAgQmUydHdkNzogXCJmMTNtcXkxaFwiXG4gIH0sXG4gIHRleHRDYXB0aW9uMVN0cm9uZzoge1xuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiXG4gIH0sXG4gIHRleHRTdWJ0aXRsZTI6IHtcbiAgICBCZTJ0d2Q3OiBcImZvZDVpa25cIlxuICB9LFxuICB0ZXh0U3VidGl0bGUxOiB7XG4gICAgQmUydHdkNzogXCJmMXBwMzBwb1wiXG4gIH0sXG4gIHRleHRUaXRsZTM6IHtcbiAgICBCZTJ0d2Q3OiBcImYxeDBtM2Y1XCJcbiAgfSxcbiAgc3F1YXJlU21hbGw6IHtcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmcTl6cTkxXCJcbiAgfSxcbiAgc3F1YXJlTWVkaXVtOiB7XG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZnQ4NW5wNVwiXG4gIH0sXG4gIHNxdWFyZUxhcmdlOiB7XG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZjFvMHF2eXZcIlxuICB9LFxuICBzcXVhcmVYTGFyZ2U6IHtcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmMWtpanpmdVwiXG4gIH0sXG4gIGFjdGl2ZU9ySW5hY3RpdmU6IHtcbiAgICBCejEwYWlwOiBcImZ0ZngzNWlcIixcbiAgICBCbXkxdm80OiBcImZ2MGF0azlcIixcbiAgICBCM281N3lpOiBcImYxaXJ5NWJvXCIsXG4gICAgQmtxdmQ3cDogXCJmMTVuNDFqOFwiLFxuICAgIEh3ZmRxczogXCJmMW9ueDFnM1wiXG4gIH0sXG4gIHJpbmc6IHtcbiAgICBGdGloNDU6IFwiZjF3bDlrOHNcIlxuICB9LFxuICByaW5nQmFkZ2VDdXRvdXQ6IHtcbiAgICBmNGE1MDI6IFwiZnAyZ3VqeFwiXG4gIH0sXG4gIHJpbmdUaGljazoge1xuICAgIG9mMzkzYzogXCJmcTF3MXZxXCJcbiAgfSxcbiAgcmluZ1RoaWNrZXI6IHtcbiAgICBvZjM5M2M6IFwiZnpnNmFjZVwiXG4gIH0sXG4gIHJpbmdUaGlja2VzdDoge1xuICAgIG9mMzkzYzogXCJmMW51OHA3MVwiXG4gIH0sXG4gIHNoYWRvdzoge1xuICAgIEJzZnQ1ejI6IFwiZjEzemo2ZnFcIlxuICB9LFxuICBzaGFkb3c0OiB7XG4gICAgQmU2dmoxeDogXCJmY2puMTVsXCJcbiAgfSxcbiAgc2hhZG93ODoge1xuICAgIEJlNnZqMXg6IFwiZjF0bTh0OWZcIlxuICB9LFxuICBzaGFkb3cxNjoge1xuICAgIEJlNnZqMXg6IFwiZjFhMWFvaGpcIlxuICB9LFxuICBzaGFkb3cyODoge1xuICAgIEJlNnZqMXg6IFwiZm9uZDZ2NVwiXG4gIH0sXG4gIGluYWN0aXZlOiB7XG4gICAgYWJzNjRuOiBcImZwMjVlaFwiLFxuICAgIEJ6MTBhaXA6IFwiZjFjbGN6emlcIixcbiAgICBCa3F2ZDdwOiBcImYxbDNzMzR4XCIsXG4gICAgQmZnb3J0eDogMCxcbiAgICBCbnZyM3g5OiAwLFxuICAgIGIydHYwOTogMCxcbiAgICBCdWNtaHA0OiAwLFxuICAgIGlheWFjMjogXCJmbGthaHU1XCIsXG4gICAgYjZ1Ym9uOiBcImZ3NDU3a25cIixcbiAgICBCcWluYjJoOiBcImYxd21sbHhsXCJcbiAgfSxcbiAgYmFkZ2U6IHtcbiAgICBxaGY4eHE6IFwiZjFldXY0M2ZcIixcbiAgICBCNWt6dm9pOiBcImYxeWFiM3IxXCIsXG4gICAgajM1amJxOiBbXCJmMWUzMWI0ZFwiLCBcImYxdmdjMnMzXCJdXG4gIH0sXG4gIGJhZGdlQ3V0b3V0OiB7XG4gICAgYnR4bWNrOiBcImYxZXVna3FzXCJcbiAgfSxcbiAgYmFkZ2VBbGlnbjoge1xuICAgIERubGZidTogW1wiZjF0bG52OW9cIiwgXCJmMXk5a3lpaFwiXVxuICB9LFxuICB0aW55OiB7XG4gICAgQmRqZW5pejogXCJmMXV3b3VibFwiLFxuICAgIG5pdTZqaDogXCJmaWQwNDh6XCJcbiAgfSxcbiAgXCJleHRyYS1zbWFsbFwiOiB7XG4gICAgQmRqZW5pejogXCJmMTNhcjBlMFwiLFxuICAgIG5pdTZqaDogXCJmaWQwNDh6XCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBCZGplbml6OiBcImZ3d3VydWZcIixcbiAgICBuaXU2amg6IFwiZmlkMDQ4elwiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJkamVuaXo6IFwiZjFhZjI3cTVcIixcbiAgICBuaXU2amg6IFwiZmlkMDQ4elwiXG4gIH0sXG4gIGxhcmdlOiB7XG4gICAgQmRqZW5pejogXCJmMTh5eTU3YVwiLFxuICAgIG5pdTZqaDogXCJmOTI0Ynh0XCJcbiAgfSxcbiAgXCJleHRyYS1sYXJnZVwiOiB7XG4gICAgQmRqZW5pejogXCJmMmpnMDQyXCIsXG4gICAgbml1NmpoOiBcImY5MjRieHRcIlxuICB9LFxuICBpY29uMTI6IHtcbiAgICBCZTJ0d2Q3OiBcImYxdWd6d3dnXCJcbiAgfSxcbiAgaWNvbjE2OiB7XG4gICAgQmUydHdkNzogXCJmNHlic3J4XCJcbiAgfSxcbiAgaWNvbjIwOiB7XG4gICAgQmUydHdkNzogXCJmZTVqMXVhXCJcbiAgfSxcbiAgaWNvbjI0OiB7XG4gICAgQmUydHdkNzogXCJmMXJ0MmJveVwiXG4gIH0sXG4gIGljb24yODoge1xuICAgIEJlMnR3ZDc6IFwiZjI0bDFwdFwiXG4gIH0sXG4gIGljb24zMjoge1xuICAgIEJlMnR3ZDc6IFwiZmZsNTFiXCJcbiAgfSxcbiAgaWNvbjQ4OiB7XG4gICAgQmUydHdkNzogXCJmMThtOHUxM1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxM21xeTFoe2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UxMDApO31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZvZDVpa257Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTQwMCk7fVwiLCBcIi5mMXBwMzBwb3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNTAwKTt9XCIsIFwiLmYxeDBtM2Y1e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2U2MDApO31cIiwgW1wiLmZxOXpxOTF7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNTbWFsbCk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mdDg1bnA1e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxbzBxdnl2e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTGFyZ2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFraWp6ZnV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNYTGFyZ2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mdGZ4MzVpe3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxcHgpO31cIiwgXCIuZnYwYXRrOXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5O31cIiwgXCIuZjFpcnk1Ym97dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvblVsdHJhU2xvdyksdmFyKC0tZHVyYXRpb25GYXN0ZXIpO31cIiwgXCIuZjE1bjQxajh7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tY3VydmVFYXN5RWFzZU1heCksdmFyKC0tY3VydmVMaW5lYXIpO31cIiwgXCIuZjF3bDlrOHM6OmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZnAyZ3VqeDo6YmVmb3Jley13ZWJraXQtbWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGJvdHRvbSBjYWxjKHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpICsgMiAqIHZhcigtLWZ1aS1BdmF0YXItcmluZ1dpZHRoKSkgdmFyKC0tZnVpLUF2YXRhci1iYWRnZUFsaWduKSBjYWxjKHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpICsgMiAqIHZhcigtLWZ1aS1BdmF0YXItcmluZ1dpZHRoKSksIHRyYW5zcGFyZW50IGNhbGModmFyKC0tZnVpLUF2YXRhci1iYWRnZVJhZGl1cykgKyB2YXIoLS1mdWktQXZhdGFyLWJhZGdlR2FwKSAtIDAuMjVweCksIHdoaXRlIGNhbGModmFyKC0tZnVpLUF2YXRhci1iYWRnZVJhZGl1cykgKyB2YXIoLS1mdWktQXZhdGFyLWJhZGdlR2FwKSArIDAuMjVweCkpO21hc2staW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20gY2FsYyh2YXIoLS1mdWktQXZhdGFyLWJhZGdlUmFkaXVzKSArIDIgKiB2YXIoLS1mdWktQXZhdGFyLXJpbmdXaWR0aCkpIHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VBbGlnbikgY2FsYyh2YXIoLS1mdWktQXZhdGFyLWJhZGdlUmFkaXVzKSArIDIgKiB2YXIoLS1mdWktQXZhdGFyLXJpbmdXaWR0aCkpLCB0cmFuc3BhcmVudCBjYWxjKHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpICsgdmFyKC0tZnVpLUF2YXRhci1iYWRnZUdhcCkgLSAwLjI1cHgpLCB3aGl0ZSBjYWxjKHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpICsgdmFyKC0tZnVpLUF2YXRhci1iYWRnZUdhcCkgKyAwLjI1cHgpKTt9XCIsIFwiLmZxMXcxdnF7LS1mdWktQXZhdGFyLXJpbmdXaWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrKTt9XCIsIFwiLmZ6ZzZhY2V7LS1mdWktQXZhdGFyLXJpbmdXaWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrZXIpO31cIiwgXCIuZjFudThwNzF7LS1mdWktQXZhdGFyLXJpbmdXaWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrZXN0KTt9XCIsIFwiLmYxM3pqNmZxOjphZnRlcntjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZmNqbjE1bDo6YWZ0ZXJ7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3c0KTt9XCIsIFwiLmYxdG04dDlmOjphZnRlcntib3gtc2hhZG93OnZhcigtLXNoYWRvdzgpO31cIiwgXCIuZjFhMWFvaGo6OmFmdGVye2JveC1zaGFkb3c6dmFyKC0tc2hhZG93MTYpO31cIiwgXCIuZm9uZDZ2NTo6YWZ0ZXJ7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cyOCk7fVwiLCBcIi5mcDI1ZWh7b3BhY2l0eTowLjg7fVwiLCBcIi5mMWNsY3p6aXt0cmFuc2Zvcm06c2NhbGUoMC44NzUpO31cIiwgXCIuZjFsM3MzNHh7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tY3VydmVEZWNlbGVyYXRlTWluKSx2YXIoLS1jdXJ2ZUxpbmVhcik7fVwiLCBbXCIuZmxrYWh1NTo6YmVmb3JlLC5mbGthaHU1OjphZnRlcnttYXJnaW46MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZnc0NTdrbjo6YmVmb3JlLC5mdzQ1N2tuOjphZnRlcntvcGFjaXR5OjA7fVwiLCBcIi5mMXdtbGx4bDo6YmVmb3JlLC5mMXdtbGx4bDo6YWZ0ZXJ7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tY3VydmVEZWNlbGVyYXRlTWluKSx2YXIoLS1jdXJ2ZUxpbmVhcik7fVwiLCBcIi5mMWV1djQzZntwb3NpdGlvbjphYnNvbHV0ZTt9XCIsIFwiLmYxeWFiM3Ixe2JvdHRvbTowO31cIiwgXCIuZjFlMzFiNGR7cmlnaHQ6MDt9XCIsIFwiLmYxdmdjMnMze2xlZnQ6MDt9XCIsIFwiLmYxZXVna3Fzey13ZWJraXQtbWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGJvdHRvbSB2YXIoLS1mdWktQXZhdGFyLWJhZGdlUmFkaXVzKSB2YXIoLS1mdWktQXZhdGFyLWJhZGdlQWxpZ24pIHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpLCB0cmFuc3BhcmVudCBjYWxjKHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpICsgdmFyKC0tZnVpLUF2YXRhci1iYWRnZUdhcCkgLSAwLjI1cHgpLCB3aGl0ZSBjYWxjKHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpICsgdmFyKC0tZnVpLUF2YXRhci1iYWRnZUdhcCkgKyAwLjI1cHgpKTttYXNrLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXMpIHZhcigtLWZ1aS1BdmF0YXItYmFkZ2VBbGlnbikgdmFyKC0tZnVpLUF2YXRhci1iYWRnZVJhZGl1cyksIHRyYW5zcGFyZW50IGNhbGModmFyKC0tZnVpLUF2YXRhci1iYWRnZVJhZGl1cykgKyB2YXIoLS1mdWktQXZhdGFyLWJhZGdlR2FwKSAtIDAuMjVweCksIHdoaXRlIGNhbGModmFyKC0tZnVpLUF2YXRhci1iYWRnZVJhZGl1cykgKyB2YXIoLS1mdWktQXZhdGFyLWJhZGdlR2FwKSArIDAuMjVweCkpO31cIiwgXCIuZjF0bG52OW97LS1mdWktQXZhdGFyLWJhZGdlQWxpZ246cmlnaHQ7fVwiLCBcIi5mMXk5a3lpaHstLWZ1aS1BdmF0YXItYmFkZ2VBbGlnbjpsZWZ0O31cIiwgXCIuZjF1d291Ymx7LS1mdWktQXZhdGFyLWJhZGdlUmFkaXVzOjNweDt9XCIsIFwiLmZpZDA0OHp7LS1mdWktQXZhdGFyLWJhZGdlR2FwOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7fVwiLCBcIi5mMTNhcjBlMHstLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXM6NXB4O31cIiwgXCIuZnd3dXJ1ZnstLWZ1aS1BdmF0YXItYmFkZ2VSYWRpdXM6NnB4O31cIiwgXCIuZjFhZjI3cTV7LS1mdWktQXZhdGFyLWJhZGdlUmFkaXVzOjhweDt9XCIsIFwiLmYxOHl5NTdhey0tZnVpLUF2YXRhci1iYWRnZVJhZGl1czoxMHB4O31cIiwgXCIuZjkyNGJ4dHstLWZ1aS1BdmF0YXItYmFkZ2VHYXA6dmFyKC0tc3Ryb2tlV2lkdGhUaGljayk7fVwiLCBcIi5mMmpnMDQyey0tZnVpLUF2YXRhci1iYWRnZVJhZGl1czoxNHB4O31cIiwgXCIuZjF1Z3p3d2d7Zm9udC1zaXplOjEycHg7fVwiLCBcIi5mNHlic3J4e2ZvbnQtc2l6ZToxNnB4O31cIiwgXCIuZmU1ajF1YXtmb250LXNpemU6MjBweDt9XCIsIFwiLmYxcnQyYm95e2ZvbnQtc2l6ZToyNHB4O31cIiwgXCIuZjI0bDFwdHtmb250LXNpemU6MjhweDt9XCIsIFwiLmZmbDUxYntmb250LXNpemU6MzJweDt9XCIsIFwiLmYxOG04dTEze2ZvbnQtc2l6ZTo0OHB4O31cIl0sXG4gIG06IFtbXCJAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsuZjFvbngxZzN7dHJhbnNpdGlvbi1kdXJhdGlvbjowLjAxbXM7fX1cIiwge1xuICAgIG06IFwic2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKVwiXG4gIH1dXVxufSk7XG5leHBvcnQgY29uc3QgdXNlU2l6ZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIFwiMTZcIjoge1xuICAgIGE5YjY3NzogXCJmanc1Zng3XCIsXG4gICAgQnFlbnZpajogXCJmZDQ2MXl0XCJcbiAgfSxcbiAgXCIyMFwiOiB7XG4gICAgYTliNjc3OiBcImY2NGZ1cTNcIixcbiAgICBCcWVudmlqOiBcImZqYW1xNmJcIlxuICB9LFxuICBcIjI0XCI6IHtcbiAgICBhOWI2Nzc6IFwiZnE0bWN1blwiLFxuICAgIEJxZW52aWo6IFwiZnJ2Z2g1NVwiXG4gIH0sXG4gIFwiMjhcIjoge1xuICAgIGE5YjY3NzogXCJmMXc5ZGNoa1wiLFxuICAgIEJxZW52aWo6IFwiZnhsZGFvOVwiXG4gIH0sXG4gIFwiMzJcIjoge1xuICAgIGE5YjY3NzogXCJmMXN6b2U5NlwiLFxuICAgIEJxZW52aWo6IFwiZjFkMnJxMTBcIlxuICB9LFxuICBcIjM2XCI6IHtcbiAgICBhOWI2Nzc6IFwiZnBkejFlclwiLFxuICAgIEJxZW52aWo6IFwiZjhsam4yM1wiXG4gIH0sXG4gIFwiNDBcIjoge1xuICAgIGE5YjY3NzogXCJmZXFtYzJ1XCIsXG4gICAgQnFlbnZpajogXCJmYmhub2FjXCJcbiAgfSxcbiAgXCI0OFwiOiB7XG4gICAgYTliNjc3OiBcImYxMjRha2dlXCIsXG4gICAgQnFlbnZpajogXCJmZjJzbTcxXCJcbiAgfSxcbiAgXCI1NlwiOiB7XG4gICAgYTliNjc3OiBcImYxdTY2enIxXCIsXG4gICAgQnFlbnZpajogXCJmemtpMGtvXCJcbiAgfSxcbiAgXCI2NFwiOiB7XG4gICAgYTliNjc3OiBcImZhOWxuNnBcIixcbiAgICBCcWVudmlqOiBcImYxNms5aTJtXCJcbiAgfSxcbiAgXCI3MlwiOiB7XG4gICAgYTliNjc3OiBcImZoY2FlOHhcIixcbiAgICBCcWVudmlqOiBcImYxc2h1c2ZnXCJcbiAgfSxcbiAgXCI5NlwiOiB7XG4gICAgYTliNjc3OiBcImYxa3lyMmduXCIsXG4gICAgQnFlbnZpajogXCJmeXB1MGdlXCJcbiAgfSxcbiAgXCIxMjBcIjoge1xuICAgIGE5YjY3NzogXCJmd2ZxeWdhXCIsXG4gICAgQnFlbnZpajogXCJmanI1YjcxXCJcbiAgfSxcbiAgXCIxMjhcIjoge1xuICAgIGE5YjY3NzogXCJmMWlrc2dteVwiLFxuICAgIEJxZW52aWo6IFwiZmVsZTJhdVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZqdzVmeDd7d2lkdGg6MTZweDt9XCIsIFwiLmZkNDYxeXR7aGVpZ2h0OjE2cHg7fVwiLCBcIi5mNjRmdXEze3dpZHRoOjIwcHg7fVwiLCBcIi5mamFtcTZie2hlaWdodDoyMHB4O31cIiwgXCIuZnE0bWN1bnt3aWR0aDoyNHB4O31cIiwgXCIuZnJ2Z2g1NXtoZWlnaHQ6MjRweDt9XCIsIFwiLmYxdzlkY2hre3dpZHRoOjI4cHg7fVwiLCBcIi5meGxkYW85e2hlaWdodDoyOHB4O31cIiwgXCIuZjFzem9lOTZ7d2lkdGg6MzJweDt9XCIsIFwiLmYxZDJycTEwe2hlaWdodDozMnB4O31cIiwgXCIuZnBkejFlcnt3aWR0aDozNnB4O31cIiwgXCIuZjhsam4yM3toZWlnaHQ6MzZweDt9XCIsIFwiLmZlcW1jMnV7d2lkdGg6NDBweDt9XCIsIFwiLmZiaG5vYWN7aGVpZ2h0OjQwcHg7fVwiLCBcIi5mMTI0YWtnZXt3aWR0aDo0OHB4O31cIiwgXCIuZmYyc203MXtoZWlnaHQ6NDhweDt9XCIsIFwiLmYxdTY2enIxe3dpZHRoOjU2cHg7fVwiLCBcIi5memtpMGtve2hlaWdodDo1NnB4O31cIiwgXCIuZmE5bG42cHt3aWR0aDo2NHB4O31cIiwgXCIuZjE2azlpMm17aGVpZ2h0OjY0cHg7fVwiLCBcIi5maGNhZTh4e3dpZHRoOjcycHg7fVwiLCBcIi5mMXNodXNmZ3toZWlnaHQ6NzJweDt9XCIsIFwiLmYxa3lyMmdue3dpZHRoOjk2cHg7fVwiLCBcIi5meXB1MGdle2hlaWdodDo5NnB4O31cIiwgXCIuZndmcXlnYXt3aWR0aDoxMjBweDt9XCIsIFwiLmZqcjViNzF7aGVpZ2h0OjEyMHB4O31cIiwgXCIuZjFpa3NnbXl7d2lkdGg6MTI4cHg7fVwiLCBcIi5mZWxlMmF1e2hlaWdodDoxMjhweDt9XCJdXG59KTtcbmNvbnN0IHVzZUNvbG9yU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgbmV1dHJhbDoge1xuICAgIHNqNTV6ZDogXCJmMTFkNGtwblwiLFxuICAgIERlM3B6cTogXCJmMThmMDNodlwiXG4gIH0sXG4gIGJyYW5kOiB7XG4gICAgc2o1NXpkOiBcImZvbnJndjdcIixcbiAgICBEZTNwenE6IFwiZjFibG5ubWpcIlxuICB9LFxuICBcImRhcmstcmVkXCI6IHtcbiAgICBzajU1emQ6IFwiZnFqZDF5MVwiLFxuICAgIERlM3B6cTogXCJmMXZxMm9vNFwiXG4gIH0sXG4gIGNyYW5iZXJyeToge1xuICAgIHNqNTV6ZDogXCJmZzlnc2VzXCIsXG4gICAgRGUzcHpxOiBcImYxbHd4c3p0XCJcbiAgfSxcbiAgcmVkOiB7XG4gICAgc2o1NXpkOiBcImYyM2Y3aTBcIixcbiAgICBEZTNwenE6IFwiZjFxOXFoZnFcIlxuICB9LFxuICBwdW1wa2luOiB7XG4gICAgc2o1NXpkOiBcImZqbmFuMDhcIixcbiAgICBEZTNwenE6IFwiZno5MWJpM1wiXG4gIH0sXG4gIHBlYWNoOiB7XG4gICAgc2o1NXpkOiBcImZrbnUxNXBcIixcbiAgICBEZTNwenE6IFwiZjFiOW5yNTFcIlxuICB9LFxuICBtYXJpZ29sZDoge1xuICAgIHNqNTV6ZDogXCJmOTYwM3Z3XCIsXG4gICAgRGUzcHpxOiBcImYzejR3NmRcIlxuICB9LFxuICBnb2xkOiB7XG4gICAgc2o1NXpkOiBcImZtcTB1d3BcIixcbiAgICBEZTNwenE6IFwiZmc1MGt5YVwiXG4gIH0sXG4gIGJyYXNzOiB7XG4gICAgc2o1NXpkOiBcImYyOGc1dm9cIixcbiAgICBEZTNwenE6IFwiZjR3MmdkMFwiXG4gIH0sXG4gIGJyb3duOiB7XG4gICAgc2o1NXpkOiBcImZ0bDU3MmJcIixcbiAgICBEZTNwenE6IFwiZjE0d3UxZjRcIlxuICB9LFxuICBmb3Jlc3Q6IHtcbiAgICBzajU1emQ6IFwiZjFneW1sdmRcIixcbiAgICBEZTNwenE6IFwiZjE5dXQ0eTZcIlxuICB9LFxuICBzZWFmb2FtOiB7XG4gICAgc2o1NXpkOiBcImZubmI2d25cIixcbiAgICBEZTNwenE6IFwiZjFuMDU3amNcIlxuICB9LFxuICBcImRhcmstZ3JlZW5cIjoge1xuICAgIHNqNTV6ZDogXCJmZjU4cXc4XCIsXG4gICAgRGUzcHpxOiBcImYxMXQwNXdrXCJcbiAgfSxcbiAgXCJsaWdodC10ZWFsXCI6IHtcbiAgICBzajU1emQ6IFwiZjF1cDlxYmpcIixcbiAgICBEZTNwenE6IFwiZjQyZmVnMVwiXG4gIH0sXG4gIHRlYWw6IHtcbiAgICBzajU1emQ6IFwiZjEzNWRzYjRcIixcbiAgICBEZTNwenE6IFwiZjZodnYxcFwiXG4gIH0sXG4gIHN0ZWVsOiB7XG4gICAgc2o1NXpkOiBcImYxNTFkbGNwXCIsXG4gICAgRGUzcHpxOiBcImYxbG5wOHpmXCJcbiAgfSxcbiAgYmx1ZToge1xuICAgIHNqNTV6ZDogXCJmMXJqdjUwdVwiLFxuICAgIERlM3B6cTogXCJmMWdnY3B5NlwiXG4gIH0sXG4gIFwicm95YWwtYmx1ZVwiOiB7XG4gICAgc2o1NXpkOiBcImYxZW15a2s1XCIsXG4gICAgRGUzcHpxOiBcImYxMnJqNjFmXCJcbiAgfSxcbiAgY29ybmZsb3dlcjoge1xuICAgIHNqNTV6ZDogXCJmcXNpZ2o3XCIsXG4gICAgRGUzcHpxOiBcImY4azdodXJcIlxuICB9LFxuICBuYXZ5OiB7XG4gICAgc2o1NXpkOiBcImYxbmo5N3hpXCIsXG4gICAgRGUzcHpxOiBcImYxOWd3MHV4XCJcbiAgfSxcbiAgbGF2ZW5kZXI6IHtcbiAgICBzajU1emQ6IFwiZndjdGcwaVwiLFxuICAgIERlM3B6cTogXCJmZjM3OXZtXCJcbiAgfSxcbiAgcHVycGxlOiB7XG4gICAgc2o1NXpkOiBcImZqcnNncHVcIixcbiAgICBEZTNwenE6IFwiZjFtemYxZTFcIlxuICB9LFxuICBncmFwZToge1xuICAgIHNqNTV6ZDogXCJmMWZpaXlkcVwiLFxuICAgIERlM3B6cTogXCJmMW80azhveVwiXG4gIH0sXG4gIGxpbGFjOiB7XG4gICAgc2o1NXpkOiBcImYxcmVzOWp0XCIsXG4gICAgRGUzcHpxOiBcImYxeDZtejFvXCJcbiAgfSxcbiAgcGluazoge1xuICAgIHNqNTV6ZDogXCJmdjNmYmJpXCIsXG4gICAgRGUzcHpxOiBcImZ5ZGx2NnRcIlxuICB9LFxuICBtYWdlbnRhOiB7XG4gICAgc2o1NXpkOiBcImYxZjFmd256XCIsXG4gICAgRGUzcHpxOiBcImY0eGI2ajVcIlxuICB9LFxuICBwbHVtOiB7XG4gICAgc2o1NXpkOiBcImY4cHRsNmpcIixcbiAgICBEZTNwenE6IFwiZnFvOGUyNlwiXG4gIH0sXG4gIGJlaWdlOiB7XG4gICAgc2o1NXpkOiBcImYxbnR2M2xkXCIsXG4gICAgRGUzcHpxOiBcImYxMDFlbGhqXCJcbiAgfSxcbiAgbWluazoge1xuICAgIHNqNTV6ZDogXCJmMWZzY21wXCIsXG4gICAgRGUzcHpxOiBcImYxM2c4bzVjXCJcbiAgfSxcbiAgcGxhdGludW06IHtcbiAgICBzajU1emQ6IFwiZjFkcjAwdjJcIixcbiAgICBEZTNwenE6IFwiZmtoN2Jsd1wiXG4gIH0sXG4gIGFuY2hvcjoge1xuICAgIHNqNTV6ZDogXCJmMWYzdGk1M1wiLFxuICAgIERlM3B6cTogXCJmdTR5ajBqXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjExZDRrcG57Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDMpO31cIiwgXCIuZjE4ZjAzaHZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kNik7fVwiLCBcIi5mb25yZ3Y3e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRTdGF0aWNJbnZlcnRlZCk7fVwiLCBcIi5mMWJsbm5tantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kU3RhdGljKTt9XCIsIFwiLmZxamQxeTF7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlRGFya1JlZEZvcmVncm91bmQyKTt9XCIsIFwiLmYxdnEyb280e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlRGFya1JlZEJhY2tncm91bmQyKTt9XCIsIFwiLmZnOWdzZXN7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlQ3JhbmJlcnJ5Rm9yZWdyb3VuZDIpO31cIiwgXCIuZjFsd3hzenR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVDcmFuYmVycnlCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMjNmN2kwe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVJlZEZvcmVncm91bmQyKTt9XCIsIFwiLmYxcTlxaGZxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlUmVkQmFja2dyb3VuZDIpO31cIiwgXCIuZmpuYW4wOHtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQdW1wa2luRm9yZWdyb3VuZDIpO31cIiwgXCIuZno5MWJpM3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVB1bXBraW5CYWNrZ3JvdW5kMik7fVwiLCBcIi5ma251MTVwe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVBlYWNoRm9yZWdyb3VuZDIpO31cIiwgXCIuZjFiOW5yNTF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQZWFjaEJhY2tncm91bmQyKTt9XCIsIFwiLmY5NjAzdnd7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlTWFyaWdvbGRGb3JlZ3JvdW5kMik7fVwiLCBcIi5mM3o0dzZke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlTWFyaWdvbGRCYWNrZ3JvdW5kMik7fVwiLCBcIi5mbXEwdXdwe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUdvbGRGb3JlZ3JvdW5kMik7fVwiLCBcIi5mZzUwa3lhe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlR29sZEJhY2tncm91bmQyKTt9XCIsIFwiLmYyOGc1dm97Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlQnJhc3NGb3JlZ3JvdW5kMik7fVwiLCBcIi5mNHcyZ2Qwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlQnJhc3NCYWNrZ3JvdW5kMik7fVwiLCBcIi5mdGw1NzJie2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUJyb3duRm9yZWdyb3VuZDIpO31cIiwgXCIuZjE0d3UxZjR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCcm93bkJhY2tncm91bmQyKTt9XCIsIFwiLmYxZ3ltbHZke2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUZvcmVzdEZvcmVncm91bmQyKTt9XCIsIFwiLmYxOXV0NHk2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlRm9yZXN0QmFja2dyb3VuZDIpO31cIiwgXCIuZm5uYjZ3bntjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVTZWFmb2FtRm9yZWdyb3VuZDIpO31cIiwgXCIuZjFuMDU3amN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVTZWFmb2FtQmFja2dyb3VuZDIpO31cIiwgXCIuZmY1OHF3OHtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVEYXJrR3JlZW5Gb3JlZ3JvdW5kMik7fVwiLCBcIi5mMTF0MDV3a3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZURhcmtHcmVlbkJhY2tncm91bmQyKTt9XCIsIFwiLmYxdXA5cWJqe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUxpZ2h0VGVhbEZvcmVncm91bmQyKTt9XCIsIFwiLmY0MmZlZzF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVMaWdodFRlYWxCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMTM1ZHNiNHtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVUZWFsRm9yZWdyb3VuZDIpO31cIiwgXCIuZjZodnYxcHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVRlYWxCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMTUxZGxjcHtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVTdGVlbEZvcmVncm91bmQyKTt9XCIsIFwiLmYxbG5wOHpme2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlU3RlZWxCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMXJqdjUwdXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCbHVlRm9yZWdyb3VuZDIpO31cIiwgXCIuZjFnZ2NweTZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCbHVlQmFja2dyb3VuZDIpO31cIiwgXCIuZjFlbXlrazV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlUm95YWxCbHVlRm9yZWdyb3VuZDIpO31cIiwgXCIuZjEycmo2MWZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVSb3lhbEJsdWVCYWNrZ3JvdW5kMik7fVwiLCBcIi5mcXNpZ2o3e2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUNvcm5mbG93ZXJGb3JlZ3JvdW5kMik7fVwiLCBcIi5mOGs3aHVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlQ29ybmZsb3dlckJhY2tncm91bmQyKTt9XCIsIFwiLmYxbmo5N3hpe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZU5hdnlGb3JlZ3JvdW5kMik7fVwiLCBcIi5mMTlndzB1eHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZU5hdnlCYWNrZ3JvdW5kMik7fVwiLCBcIi5md2N0ZzBpe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUxhdmVuZGVyRm9yZWdyb3VuZDIpO31cIiwgXCIuZmYzNzl2bXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUxhdmVuZGVyQmFja2dyb3VuZDIpO31cIiwgXCIuZmpyc2dwdXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQdXJwbGVGb3JlZ3JvdW5kMik7fVwiLCBcIi5mMW16ZjFlMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVB1cnBsZUJhY2tncm91bmQyKTt9XCIsIFwiLmYxZmlpeWRxe2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUdyYXBlRm9yZWdyb3VuZDIpO31cIiwgXCIuZjFvNGs4b3l7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVHcmFwZUJhY2tncm91bmQyKTt9XCIsIFwiLmYxcmVzOWp0e2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUxpbGFjRm9yZWdyb3VuZDIpO31cIiwgXCIuZjF4Nm16MW97YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVMaWxhY0JhY2tncm91bmQyKTt9XCIsIFwiLmZ2M2ZiYml7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlUGlua0ZvcmVncm91bmQyKTt9XCIsIFwiLmZ5ZGx2NnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQaW5rQmFja2dyb3VuZDIpO31cIiwgXCIuZjFmMWZ3bnp7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlTWFnZW50YUZvcmVncm91bmQyKTt9XCIsIFwiLmY0eGI2ajV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVNYWdlbnRhQmFja2dyb3VuZDIpO31cIiwgXCIuZjhwdGw2antjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQbHVtRm9yZWdyb3VuZDIpO31cIiwgXCIuZnFvOGUyNntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVBsdW1CYWNrZ3JvdW5kMik7fVwiLCBcIi5mMW50djNsZHtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCZWlnZUZvcmVncm91bmQyKTt9XCIsIFwiLmYxMDFlbGhqe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlQmVpZ2VCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMWZzY21we2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZU1pbmtGb3JlZ3JvdW5kMik7fVwiLCBcIi5mMTNnOG81Y3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZU1pbmtCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMWRyMDB2Mntjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQbGF0aW51bUZvcmVncm91bmQyKTt9XCIsIFwiLmZraDdibHd7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQbGF0aW51bUJhY2tncm91bmQyKTt9XCIsIFwiLmYxZjN0aTUze2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUFuY2hvckZvcmVncm91bmQyKTt9XCIsIFwiLmZ1NHlqMGp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVBbmNob3JCYWNrZ3JvdW5kMik7fVwiXVxufSk7XG5jb25zdCB1c2VSaW5nQ29sb3JTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBuZXV0cmFsOiB7XG4gICAgQmljNWlydTogXCJmMXV1aWFmblwiXG4gIH0sXG4gIGJyYW5kOiB7XG4gICAgQmljNWlydTogXCJmMXV1aWFmblwiXG4gIH0sXG4gIFwiZGFyay1yZWRcIjoge1xuICAgIEJpYzVpcnU6IFwiZjF0Mng5b25cIlxuICB9LFxuICBjcmFuYmVycnk6IHtcbiAgICBCaWM1aXJ1OiBcImYxcHZzaGM5XCJcbiAgfSxcbiAgcmVkOiB7XG4gICAgQmljNWlydTogXCJmMWVjdGJrOVwiXG4gIH0sXG4gIHB1bXBraW46IHtcbiAgICBCaWM1aXJ1OiBcImZ2enBsMGJcIlxuICB9LFxuICBwZWFjaDoge1xuICAgIEJpYzVpcnU6IFwiZndqMmtkN1wiXG4gIH0sXG4gIG1hcmlnb2xkOiB7XG4gICAgQmljNWlydTogXCJmcjEyMHZ5XCJcbiAgfSxcbiAgZ29sZDoge1xuICAgIEJpYzVpcnU6IFwiZjh4bW1hclwiXG4gIH0sXG4gIGJyYXNzOiB7XG4gICAgQmljNWlydTogXCJmMWhiZXR5MlwiXG4gIH0sXG4gIGJyb3duOiB7XG4gICAgQmljNWlydTogXCJmMXZnM3M0Z1wiXG4gIH0sXG4gIGZvcmVzdDoge1xuICAgIEJpYzVpcnU6IFwiZjFtM29sbTVcIlxuICB9LFxuICBzZWFmb2FtOiB7XG4gICAgQmljNWlydTogXCJmMTd4aXF0clwiXG4gIH0sXG4gIFwiZGFyay1ncmVlblwiOiB7XG4gICAgQmljNWlydTogXCJmeDMydnloXCJcbiAgfSxcbiAgXCJsaWdodC10ZWFsXCI6IHtcbiAgICBCaWM1aXJ1OiBcImYxbWtpaHd2XCJcbiAgfSxcbiAgdGVhbDoge1xuICAgIEJpYzVpcnU6IFwiZmVjbm9vaFwiXG4gIH0sXG4gIHN0ZWVsOiB7XG4gICAgQmljNWlydTogXCJmMTVoZmd6bVwiXG4gIH0sXG4gIGJsdWU6IHtcbiAgICBCaWM1aXJ1OiBcImZxcHJva2FcIlxuICB9LFxuICBcInJveWFsLWJsdWVcIjoge1xuICAgIEJpYzVpcnU6IFwiZjE3djJ3NTlcIlxuICB9LFxuICBjb3JuZmxvd2VyOiB7XG4gICAgQmljNWlydTogXCJmcDBxMW1vXCJcbiAgfSxcbiAgbmF2eToge1xuICAgIEJpYzVpcnU6IFwiZjFubHltNTVcIlxuICB9LFxuICBsYXZlbmRlcjoge1xuICAgIEJpYzVpcnU6IFwiZjYydms4aFwiXG4gIH0sXG4gIHB1cnBsZToge1xuICAgIEJpYzVpcnU6IFwiZjE1emw2OXFcIlxuICB9LFxuICBncmFwZToge1xuICAgIEJpYzVpcnU6IFwiZjUzdzRqN1wiXG4gIH0sXG4gIGxpbGFjOiB7XG4gICAgQmljNWlydTogXCJmdTI3NzF0XCJcbiAgfSxcbiAgcGluazoge1xuICAgIEJpYzVpcnU6IFwiZnpmbHNjc1wiXG4gIH0sXG4gIG1hZ2VudGE6IHtcbiAgICBCaWM1aXJ1OiBcImZiNnJtcWNcIlxuICB9LFxuICBwbHVtOiB7XG4gICAgQmljNWlydTogXCJmMWE0Z201YlwiXG4gIH0sXG4gIGJlaWdlOiB7XG4gICAgQmljNWlydTogXCJmMXFwZjl6MVwiXG4gIH0sXG4gIG1pbms6IHtcbiAgICBCaWM1aXJ1OiBcImYxbDdvcjgzXCJcbiAgfSxcbiAgcGxhdGludW06IHtcbiAgICBCaWM1aXJ1OiBcImZ6cmowaXVcIlxuICB9LFxuICBhbmNob3I6IHtcbiAgICBCaWM1aXJ1OiBcImY4b3o2d2ZcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXV1aWFmbjo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yQnJhbmRTdHJva2UxKTt9XCIsIFwiLmYxdDJ4OW9uOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlRGFya1JlZEJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMXB2c2hjOTo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUNyYW5iZXJyeUJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMWVjdGJrOTo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVJlZEJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mdnpwbDBiOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlUHVtcGtpbkJvcmRlckFjdGl2ZSk7fVwiLCBcIi5md2oya2Q3OjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlUGVhY2hCb3JkZXJBY3RpdmUpO31cIiwgXCIuZnIxMjB2eTo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZU1hcmlnb2xkQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmY4eG1tYXI6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVHb2xkQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmYxaGJldHkyOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlQnJhc3NCb3JkZXJBY3RpdmUpO31cIiwgXCIuZjF2ZzNzNGc6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCcm93bkJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMW0zb2xtNTo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUZvcmVzdEJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMTd4aXF0cjo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVNlYWZvYW1Cb3JkZXJBY3RpdmUpO31cIiwgXCIuZngzMnZ5aDo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZURhcmtHcmVlbkJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMW1raWh3djo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUxpZ2h0VGVhbEJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mZWNub29oOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlVGVhbEJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMTVoZmd6bTo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVN0ZWVsQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmZxcHJva2E6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCbHVlQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmYxN3YydzU5OjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlUm95YWxCbHVlQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmZwMHExbW86OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVDb3JuZmxvd2VyQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmYxbmx5bTU1OjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlTmF2eUJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mNjJ2azhoOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlTGF2ZW5kZXJCb3JkZXJBY3RpdmUpO31cIiwgXCIuZjE1emw2OXE6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVQdXJwbGVCb3JkZXJBY3RpdmUpO31cIiwgXCIuZjUzdzRqNzo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZUdyYXBlQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmZ1Mjc3MXQ6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVMaWxhY0JvcmRlckFjdGl2ZSk7fVwiLCBcIi5memZsc2NzOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlUGlua0JvcmRlckFjdGl2ZSk7fVwiLCBcIi5mYjZybXFjOjpiZWZvcmV7Y29sb3I6dmFyKC0tY29sb3JQYWxldHRlTWFnZW50YUJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMWE0Z201Yjo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVBsdW1Cb3JkZXJBY3RpdmUpO31cIiwgXCIuZjFxcGY5ejE6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVCZWlnZUJvcmRlckFjdGl2ZSk7fVwiLCBcIi5mMWw3b3I4Mzo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZU1pbmtCb3JkZXJBY3RpdmUpO31cIiwgXCIuZnpyajBpdTo6YmVmb3Jle2NvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVBsYXRpbnVtQm9yZGVyQWN0aXZlKTt9XCIsIFwiLmY4b3o2d2Y6OmJlZm9yZXtjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVBbmNob3JCb3JkZXJBY3RpdmUpO31cIl1cbn0pO1xuZXhwb3J0IGNvbnN0IHVzZUF2YXRhclN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCB7XG4gICAgc2l6ZSxcbiAgICBzaGFwZSxcbiAgICBhY3RpdmUsXG4gICAgYWN0aXZlQXBwZWFyYW5jZSxcbiAgICBjb2xvclxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VSb290Q2xhc3NOYW1lKCk7XG4gIGNvbnN0IGltYWdlQ2xhc3NOYW1lID0gdXNlSW1hZ2VDbGFzc05hbWUoKTtcbiAgY29uc3QgaWNvbkluaXRpYWxzQ2xhc3NOYW1lID0gdXNlSWNvbkluaXRpYWxzQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBjb25zdCBzaXplU3R5bGVzID0gdXNlU2l6ZVN0eWxlcygpO1xuICBjb25zdCBjb2xvclN0eWxlcyA9IHVzZUNvbG9yU3R5bGVzKCk7XG4gIGNvbnN0IHJpbmdDb2xvclN0eWxlcyA9IHVzZVJpbmdDb2xvclN0eWxlcygpO1xuICBjb25zdCByb290Q2xhc3NlcyA9IFtyb290Q2xhc3NOYW1lLCBzaXplICE9PSAzMiAmJiBzaXplU3R5bGVzW3NpemVdXTtcbiAgaWYgKHN0YXRlLmJhZGdlKSB7XG4gICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMuYmFkZ2VBbGlnbiwgc3R5bGVzW3N0YXRlLmJhZGdlLnNpemUgfHwgJ21lZGl1bSddKTtcbiAgfVxuICBpZiAoc2l6ZSA8PSAyNCkge1xuICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnRleHRDYXB0aW9uMlN0cm9uZyk7XG4gIH0gZWxzZSBpZiAoc2l6ZSA8PSAyOCkge1xuICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnRleHRDYXB0aW9uMVN0cm9uZyk7XG4gIH0gZWxzZSBpZiAoc2l6ZSA8PSA0MCkge1xuICAgIC8vIERlZmF1bHQgdGV4dCBzaXplIGluY2x1ZGVkIGluIHVzZVJvb3RDbGFzc05hbWVcbiAgfSBlbHNlIGlmIChzaXplIDw9IDU2KSB7XG4gICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMudGV4dFN1YnRpdGxlMik7XG4gIH0gZWxzZSBpZiAoc2l6ZSA8PSA5Nikge1xuICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnRleHRTdWJ0aXRsZTEpO1xuICB9IGVsc2Uge1xuICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnRleHRUaXRsZTMpO1xuICB9XG4gIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcbiAgICBpZiAoc2l6ZSA8PSAyNCkge1xuICAgICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMuc3F1YXJlU21hbGwpO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA8PSA0OCkge1xuICAgICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMuc3F1YXJlTWVkaXVtKTtcbiAgICB9IGVsc2UgaWYgKHNpemUgPD0gNzIpIHtcbiAgICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnNxdWFyZUxhcmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMuc3F1YXJlWExhcmdlKTtcbiAgICB9XG4gIH1cbiAgaWYgKGFjdGl2ZSA9PT0gJ2FjdGl2ZScgfHwgYWN0aXZlID09PSAnaW5hY3RpdmUnKSB7XG4gICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMuYWN0aXZlT3JJbmFjdGl2ZSk7XG4gICAgaWYgKGFjdGl2ZUFwcGVhcmFuY2UgPT09ICdyaW5nJyB8fCBhY3RpdmVBcHBlYXJhbmNlID09PSAncmluZy1zaGFkb3cnKSB7XG4gICAgICByb290Q2xhc3Nlcy5wdXNoKHN0eWxlcy5yaW5nLCByaW5nQ29sb3JTdHlsZXNbY29sb3JdKTtcbiAgICAgIGlmIChzdGF0ZS5iYWRnZSkge1xuICAgICAgICByb290Q2xhc3Nlcy5wdXNoKHN0eWxlcy5yaW5nQmFkZ2VDdXRvdXQpO1xuICAgICAgfVxuICAgICAgaWYgKHNpemUgPD0gNDgpIHtcbiAgICAgICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMucmluZ1RoaWNrKTtcbiAgICAgIH0gZWxzZSBpZiAoc2l6ZSA8PSA2NCkge1xuICAgICAgICByb290Q2xhc3Nlcy5wdXNoKHN0eWxlcy5yaW5nVGhpY2tlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb290Q2xhc3Nlcy5wdXNoKHN0eWxlcy5yaW5nVGhpY2tlc3QpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWN0aXZlQXBwZWFyYW5jZSA9PT0gJ3NoYWRvdycgfHwgYWN0aXZlQXBwZWFyYW5jZSA9PT0gJ3Jpbmctc2hhZG93Jykge1xuICAgICAgcm9vdENsYXNzZXMucHVzaChzdHlsZXMuc2hhZG93KTtcbiAgICAgIGlmIChzaXplIDw9IDI4KSB7XG4gICAgICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnNoYWRvdzQpO1xuICAgICAgfSBlbHNlIGlmIChzaXplIDw9IDQ4KSB7XG4gICAgICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnNoYWRvdzgpO1xuICAgICAgfSBlbHNlIGlmIChzaXplIDw9IDY0KSB7XG4gICAgICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnNoYWRvdzE2KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RDbGFzc2VzLnB1c2goc3R5bGVzLnNoYWRvdzI4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gTm90ZTogVGhlIGluYWN0aXZlIHN0eWxlIG92ZXJyaWRlcyBzb21lIG9mIHRoZSBhY3RpdmVBcHBlYXJhbmNlIHN0eWxlcyBhbmQgbXVzdCBiZSBhcHBsaWVkIGFmdGVyIHRoZW1cbiAgICBpZiAoYWN0aXZlID09PSAnaW5hY3RpdmUnKSB7XG4gICAgICByb290Q2xhc3Nlcy5wdXNoKHN0eWxlcy5pbmFjdGl2ZSk7XG4gICAgfVxuICB9XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGF2YXRhckNsYXNzTmFtZXMucm9vdCwgLi4ucm9vdENsYXNzZXMsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmJhZGdlKSB7XG4gICAgc3RhdGUuYmFkZ2UuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGF2YXRhckNsYXNzTmFtZXMuYmFkZ2UsIHN0eWxlcy5iYWRnZSwgc3RhdGUuYmFkZ2UuY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUuaW1hZ2UpIHtcbiAgICBzdGF0ZS5pbWFnZS5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoYXZhdGFyQ2xhc3NOYW1lcy5pbWFnZSwgaW1hZ2VDbGFzc05hbWUsIGNvbG9yU3R5bGVzW2NvbG9yXSwgc3RhdGUuYmFkZ2UgJiYgc3R5bGVzLmJhZGdlQ3V0b3V0LCBzdGF0ZS5pbWFnZS5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5pbml0aWFscykge1xuICAgIHN0YXRlLmluaXRpYWxzLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhhdmF0YXJDbGFzc05hbWVzLmluaXRpYWxzLCBpY29uSW5pdGlhbHNDbGFzc05hbWUsIGNvbG9yU3R5bGVzW2NvbG9yXSwgc3RhdGUuYmFkZ2UgJiYgc3R5bGVzLmJhZGdlQ3V0b3V0LCBzdGF0ZS5pbml0aWFscy5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5pY29uKSB7XG4gICAgbGV0IGljb25TaXplQ2xhc3M7XG4gICAgaWYgKHNpemUgPD0gMTYpIHtcbiAgICAgIGljb25TaXplQ2xhc3MgPSBzdHlsZXMuaWNvbjEyO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA8PSAyNCkge1xuICAgICAgaWNvblNpemVDbGFzcyA9IHN0eWxlcy5pY29uMTY7XG4gICAgfSBlbHNlIGlmIChzaXplIDw9IDQwKSB7XG4gICAgICBpY29uU2l6ZUNsYXNzID0gc3R5bGVzLmljb24yMDtcbiAgICB9IGVsc2UgaWYgKHNpemUgPD0gNDgpIHtcbiAgICAgIGljb25TaXplQ2xhc3MgPSBzdHlsZXMuaWNvbjI0O1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA8PSA1Nikge1xuICAgICAgaWNvblNpemVDbGFzcyA9IHN0eWxlcy5pY29uMjg7XG4gICAgfSBlbHNlIGlmIChzaXplIDw9IDcyKSB7XG4gICAgICBpY29uU2l6ZUNsYXNzID0gc3R5bGVzLmljb24zMjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWNvblNpemVDbGFzcyA9IHN0eWxlcy5pY29uNDg7XG4gICAgfVxuICAgIHN0YXRlLmljb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGF2YXRhckNsYXNzTmFtZXMuaWNvbiwgaWNvbkluaXRpYWxzQ2xhc3NOYW1lLCBpY29uU2l6ZUNsYXNzLCBjb2xvclN0eWxlc1tjb2xvcl0sIHN0YXRlLmJhZGdlICYmIHN0eWxlcy5iYWRnZUN1dG91dCwgc3RhdGUuaWNvbi5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VBdmF0YXJTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlckF2YXRhcl91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyQXZhdGFyJztcbmltcG9ydCB7IHVzZUF2YXRhcl91bnN0YWJsZSB9IGZyb20gJy4vdXNlQXZhdGFyJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlQXZhdGFyU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VBdmF0YXJTdHlsZXMuc3R5bGVzJztcbmV4cG9ydCBjb25zdCBBdmF0YXIgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VBdmF0YXJfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlQXZhdGFyU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZUF2YXRhclN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyQXZhdGFyX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuQXZhdGFyLmRpc3BsYXlOYW1lID0gJ0F2YXRhcic7XG4iLCIvKipcbiAqIENyZWF0ZXMgYSB2aXJ0dWFsIGVsZW1lbnQgYmFzZWQgb24gdGhlIHBvc2l0aW9uIG9mIGEgY2xpY2sgZXZlbnRcbiAqIENhbiBiZSB1c2VkIGFzIGEgdGFyZ2V0IGZvciBwb3BwZXIgaW4gc2NlbmFyaW9zIHN1Y2ggYXMgY29udGV4dCBtZW51c1xuICovIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWaXJ0dWFsRWxlbWVudEZyb21DbGljayhuYXRpdmVFdmVudCkge1xuICAgIGNvbnN0IGxlZnQgPSBuYXRpdmVFdmVudC5jbGllbnRYO1xuICAgIGNvbnN0IHRvcCA9IG5hdGl2ZUV2ZW50LmNsaWVudFk7XG4gICAgY29uc3QgcmlnaHQgPSBsZWZ0ICsgMTtcbiAgICBjb25zdCBib3R0b20gPSB0b3AgKyAxO1xuICAgIGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxlZnQsXG4gICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICByaWdodCxcbiAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICB5OiB0b3AsXG4gICAgICAgICAgICBoZWlnaHQ6IDEsXG4gICAgICAgICAgICB3aWR0aDogMVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAgICB9O1xufVxuIiwiZXhwb3J0IGNvbnN0IERBVEFfUE9TSVRJT05JTkdfSU5URVJTRUNUSU5HID0gJ2RhdGEtcG9wcGVyLWlzLWludGVyc2VjdGluZyc7XG5leHBvcnQgY29uc3QgREFUQV9QT1NJVElPTklOR19FU0NBUEVEID0gJ2RhdGEtcG9wcGVyLWVzY2FwZWQnO1xuZXhwb3J0IGNvbnN0IERBVEFfUE9TSVRJT05JTkdfSElEREVOID0gJ2RhdGEtcG9wcGVyLXJlZmVyZW5jZS1oaWRkZW4nO1xuZXhwb3J0IGNvbnN0IERBVEFfUE9TSVRJT05JTkdfUExBQ0VNRU5UID0gJ2RhdGEtcG9wcGVyLXBsYWNlbWVudCc7XG5leHBvcnQgY29uc3QgUE9TSVRJT05JTkdfRU5EX0VWRU5UID0gJ2Z1aS1wb3NpdGlvbmluZ2VuZCc7XG4iLCIvKipcbiAqIEN1c3RvbSBwb3NpdGlvbmluZyByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy92aXJ0dWFsLWVsZW1lbnRzXG4gKi9cblxuY29uc3Qgc2lkZXMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xuY29uc3QgYWxpZ25tZW50cyA9IFsnc3RhcnQnLCAnZW5kJ107XG5jb25zdCBwbGFjZW1lbnRzID0gLyojX19QVVJFX18qL3NpZGVzLnJlZHVjZSgoYWNjLCBzaWRlKSA9PiBhY2MuY29uY2F0KHNpZGUsIHNpZGUgKyBcIi1cIiArIGFsaWdubWVudHNbMF0sIHNpZGUgKyBcIi1cIiArIGFsaWdubWVudHNbMV0pLCBbXSk7XG5jb25zdCBtaW4gPSBNYXRoLm1pbjtcbmNvbnN0IG1heCA9IE1hdGgubWF4O1xuY29uc3Qgcm91bmQgPSBNYXRoLnJvdW5kO1xuY29uc3QgZmxvb3IgPSBNYXRoLmZsb29yO1xuY29uc3QgY3JlYXRlQ29vcmRzID0gdiA9PiAoe1xuICB4OiB2LFxuICB5OiB2XG59KTtcbmNvbnN0IG9wcG9zaXRlU2lkZU1hcCA9IHtcbiAgbGVmdDogJ3JpZ2h0JyxcbiAgcmlnaHQ6ICdsZWZ0JyxcbiAgYm90dG9tOiAndG9wJyxcbiAgdG9wOiAnYm90dG9tJ1xufTtcbmNvbnN0IG9wcG9zaXRlQWxpZ25tZW50TWFwID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmZ1bmN0aW9uIGNsYW1wKHN0YXJ0LCB2YWx1ZSwgZW5kKSB7XG4gIHJldHVybiBtYXgoc3RhcnQsIG1pbih2YWx1ZSwgZW5kKSk7XG59XG5mdW5jdGlvbiBldmFsdWF0ZSh2YWx1ZSwgcGFyYW0pIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlKHBhcmFtKSA6IHZhbHVlO1xufVxuZnVuY3Rpb24gZ2V0U2lkZShwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMV07XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufVxuZnVuY3Rpb24gZ2V0QXhpc0xlbmd0aChheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG59XG5mdW5jdGlvbiBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIFsndG9wJywgJ2JvdHRvbSddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSkgPyAneScgOiAneCc7XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCkge1xuICByZXR1cm4gZ2V0T3Bwb3NpdGVBeGlzKGdldFNpZGVBeGlzKHBsYWNlbWVudCkpO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50U2lkZXMocGxhY2VtZW50LCByZWN0cywgcnRsKSB7XG4gIGlmIChydGwgPT09IHZvaWQgMCkge1xuICAgIHJ0bCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBjb25zdCBhbGlnbm1lbnRBeGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICBjb25zdCBsZW5ndGggPSBnZXRBeGlzTGVuZ3RoKGFsaWdubWVudEF4aXMpO1xuICBsZXQgbWFpbkFsaWdubWVudFNpZGUgPSBhbGlnbm1lbnRBeGlzID09PSAneCcgPyBhbGlnbm1lbnQgPT09IChydGwgPyAnZW5kJyA6ICdzdGFydCcpID8gJ3JpZ2h0JyA6ICdsZWZ0JyA6IGFsaWdubWVudCA9PT0gJ3N0YXJ0JyA/ICdib3R0b20nIDogJ3RvcCc7XG4gIGlmIChyZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSA+IHJlY3RzLmZsb2F0aW5nW2xlbmd0aF0pIHtcbiAgICBtYWluQWxpZ25tZW50U2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKTtcbiAgfVxuICByZXR1cm4gW21haW5BbGlnbm1lbnRTaWRlLCBnZXRPcHBvc2l0ZVBsYWNlbWVudChtYWluQWxpZ25tZW50U2lkZSldO1xufVxuZnVuY3Rpb24gZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBjb25zdCBvcHBvc2l0ZVBsYWNlbWVudCA9IGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHJldHVybiBbZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSwgb3Bwb3NpdGVQbGFjZW1lbnQsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KG9wcG9zaXRlUGxhY2VtZW50KV07XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9zdGFydHxlbmQvZywgYWxpZ25tZW50ID0+IG9wcG9zaXRlQWxpZ25tZW50TWFwW2FsaWdubWVudF0pO1xufVxuZnVuY3Rpb24gZ2V0U2lkZUxpc3Qoc2lkZSwgaXNTdGFydCwgcnRsKSB7XG4gIGNvbnN0IGxyID0gWydsZWZ0JywgJ3JpZ2h0J107XG4gIGNvbnN0IHJsID0gWydyaWdodCcsICdsZWZ0J107XG4gIGNvbnN0IHRiID0gWyd0b3AnLCAnYm90dG9tJ107XG4gIGNvbnN0IGJ0ID0gWydib3R0b20nLCAndG9wJ107XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGlmIChydGwpIHJldHVybiBpc1N0YXJ0ID8gcmwgOiBscjtcbiAgICAgIHJldHVybiBpc1N0YXJ0ID8gbHIgOiBybDtcbiAgICBjYXNlICdsZWZ0JzpcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICByZXR1cm4gaXNTdGFydCA/IHRiIDogYnQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBbXTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyhwbGFjZW1lbnQsIGZsaXBBbGlnbm1lbnQsIGRpcmVjdGlvbiwgcnRsKSB7XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBsZXQgbGlzdCA9IGdldFNpZGVMaXN0KGdldFNpZGUocGxhY2VtZW50KSwgZGlyZWN0aW9uID09PSAnc3RhcnQnLCBydGwpO1xuICBpZiAoYWxpZ25tZW50KSB7XG4gICAgbGlzdCA9IGxpc3QubWFwKHNpZGUgPT4gc2lkZSArIFwiLVwiICsgYWxpZ25tZW50KTtcbiAgICBpZiAoZmxpcEFsaWdubWVudCkge1xuICAgICAgbGlzdCA9IGxpc3QuY29uY2F0KGxpc3QubWFwKGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsaXN0O1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csIHNpZGUgPT4gb3Bwb3NpdGVTaWRlTWFwW3NpZGVdKTtcbn1cbmZ1bmN0aW9uIGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykge1xuICByZXR1cm4ge1xuICAgIHRvcDogMCxcbiAgICByaWdodDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMCxcbiAgICAuLi5wYWRkaW5nXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykgOiB7XG4gICAgdG9wOiBwYWRkaW5nLFxuICAgIHJpZ2h0OiBwYWRkaW5nLFxuICAgIGJvdHRvbTogcGFkZGluZyxcbiAgICBsZWZ0OiBwYWRkaW5nXG4gIH07XG59XG5mdW5jdGlvbiByZWN0VG9DbGllbnRSZWN0KHJlY3QpIHtcbiAgY29uc3Qge1xuICAgIHgsXG4gICAgeSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IHJlY3Q7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHRvcDogeSxcbiAgICBsZWZ0OiB4LFxuICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5leHBvcnQgeyBhbGlnbm1lbnRzLCBjbGFtcCwgY3JlYXRlQ29vcmRzLCBldmFsdWF0ZSwgZXhwYW5kUGFkZGluZ09iamVjdCwgZmxvb3IsIGdldEFsaWdubWVudCwgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldEF4aXNMZW5ndGgsIGdldEV4cGFuZGVkUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQsIGdldE9wcG9zaXRlQXhpcywgZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQsIGdldFBhZGRpbmdPYmplY3QsIGdldFNpZGUsIGdldFNpZGVBeGlzLCBtYXgsIG1pbiwgcGxhY2VtZW50cywgcmVjdFRvQ2xpZW50UmVjdCwgcm91bmQsIHNpZGVzIH07XG4iLCJpbXBvcnQgeyBnZXRTaWRlQXhpcywgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QXhpc0xlbmd0aCwgZ2V0U2lkZSwgZ2V0QWxpZ25tZW50LCBldmFsdWF0ZSwgZ2V0UGFkZGluZ09iamVjdCwgcmVjdFRvQ2xpZW50UmVjdCwgbWluLCBjbGFtcCwgcGxhY2VtZW50cywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBzaWRlcywgbWF4LCBnZXRPcHBvc2l0ZUF4aXMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuZXhwb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5cbmZ1bmN0aW9uIGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KF9yZWYsIHBsYWNlbWVudCwgcnRsKSB7XG4gIGxldCB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gPSBfcmVmO1xuICBjb25zdCBzaWRlQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWduTGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IHNpZGVBeGlzID09PSAneSc7XG4gIGNvbnN0IGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBmbG9hdGluZy53aWR0aCAvIDI7XG4gIGNvbnN0IGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZmxvYXRpbmcuaGVpZ2h0IC8gMjtcbiAgY29uc3QgY29tbW9uQWxpZ24gPSByZWZlcmVuY2VbYWxpZ25MZW5ndGhdIC8gMiAtIGZsb2F0aW5nW2FsaWduTGVuZ3RoXSAvIDI7XG4gIGxldCBjb29yZHM7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZmxvYXRpbmcuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCAtIGZsb2F0aW5nLndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG4gIHN3aXRjaCAoZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkpIHtcbiAgICBjYXNlICdzdGFydCc6XG4gICAgICBjb29yZHNbYWxpZ25tZW50QXhpc10gLT0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kJzpcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSArPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29vcmRzO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyB0aGF0IHdpbGwgcGxhY2UgdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAqIG5leHQgdG8gYSBnaXZlbiByZWZlcmVuY2UgZWxlbWVudC5cbiAqXG4gKiBUaGlzIGV4cG9ydCBkb2VzIG5vdCBoYXZlIGFueSBgcGxhdGZvcm1gIGludGVyZmFjZSBsb2dpYy4gWW91IHdpbGwgbmVlZCB0b1xuICogd3JpdGUgb25lIGZvciB0aGUgcGxhdGZvcm0geW91IGFyZSB1c2luZyBGbG9hdGluZyBVSSB3aXRoLlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSBhc3luYyAocmVmZXJlbmNlLCBmbG9hdGluZywgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICBzdHJhdGVneSA9ICdhYnNvbHV0ZScsXG4gICAgbWlkZGxld2FyZSA9IFtdLFxuICAgIHBsYXRmb3JtXG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IHZhbGlkTWlkZGxld2FyZSA9IG1pZGRsZXdhcmUuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGZsb2F0aW5nKSk7XG4gIGxldCByZWN0cyA9IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nLFxuICAgIHN0cmF0ZWd5XG4gIH0pO1xuICBsZXQge1xuICAgIHgsXG4gICAgeVxuICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHBsYWNlbWVudCwgcnRsKTtcbiAgbGV0IHN0YXRlZnVsUGxhY2VtZW50ID0gcGxhY2VtZW50O1xuICBsZXQgbWlkZGxld2FyZURhdGEgPSB7fTtcbiAgbGV0IHJlc2V0Q291bnQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbGlkTWlkZGxld2FyZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBmblxuICAgIH0gPSB2YWxpZE1pZGRsZXdhcmVbaV07XG4gICAgY29uc3Qge1xuICAgICAgeDogbmV4dFgsXG4gICAgICB5OiBuZXh0WSxcbiAgICAgIGRhdGEsXG4gICAgICByZXNldFxuICAgIH0gPSBhd2FpdCBmbih7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIGluaXRpYWxQbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9KTtcbiAgICB4ID0gbmV4dFggIT0gbnVsbCA/IG5leHRYIDogeDtcbiAgICB5ID0gbmV4dFkgIT0gbnVsbCA/IG5leHRZIDogeTtcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHtcbiAgICAgIC4uLm1pZGRsZXdhcmVEYXRhLFxuICAgICAgW25hbWVdOiB7XG4gICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhW25hbWVdLFxuICAgICAgICAuLi5kYXRhXG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAocmVzZXQgJiYgcmVzZXRDb3VudCA8PSA1MCkge1xuICAgICAgcmVzZXRDb3VudCsrO1xuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKHJlc2V0LnBsYWNlbWVudCkge1xuICAgICAgICAgIHN0YXRlZnVsUGxhY2VtZW50ID0gcmVzZXQucGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNldC5yZWN0cykge1xuICAgICAgICAgIHJlY3RzID0gcmVzZXQucmVjdHMgPT09IHRydWUgPyBhd2FpdCBwbGF0Zm9ybS5nZXRFbGVtZW50UmVjdHMoe1xuICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgZmxvYXRpbmcsXG4gICAgICAgICAgICBzdHJhdGVneVxuICAgICAgICAgIH0pIDogcmVzZXQucmVjdHM7XG4gICAgICAgIH1cbiAgICAgICAgKHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHlcbiAgICAgICAgfSA9IGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KHJlY3RzLCBzdGF0ZWZ1bFBsYWNlbWVudCwgcnRsKSk7XG4gICAgICB9XG4gICAgICBpID0gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgc3RyYXRlZ3ksXG4gICAgbWlkZGxld2FyZURhdGFcbiAgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICB2YXIgX2F3YWl0JHBsYXRmb3JtJGlzRWxlO1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgcGxhdGZvcm0sXG4gICAgcmVjdHMsXG4gICAgZWxlbWVudHMsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IHN0YXRlO1xuICBjb25zdCB7XG4gICAgYm91bmRhcnkgPSAnY2xpcHBpbmdBbmNlc3RvcnMnLFxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXG4gICAgZWxlbWVudENvbnRleHQgPSAnZmxvYXRpbmcnLFxuICAgIGFsdEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgcGFkZGluZyA9IDBcbiAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcbiAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgY29uc3QgY2xpcHBpbmdDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChhd2FpdCBwbGF0Zm9ybS5nZXRDbGlwcGluZ1JlY3Qoe1xuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSkpO1xuICBjb25zdCByZWN0ID0gZWxlbWVudENvbnRleHQgPT09ICdmbG9hdGluZycgPyB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0cy5mbG9hdGluZy53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodFxuICB9IDogcmVjdHMucmVmZXJlbmNlO1xuICBjb25zdCBvZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgb2Zmc2V0U2NhbGUgPSAoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KG9mZnNldFBhcmVudCkpKSA/IChhd2FpdCAocGxhdGZvcm0uZ2V0U2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldFNjYWxlKG9mZnNldFBhcmVudCkpKSB8fCB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH0gOiB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCA/IGF3YWl0IHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9KSA6IHJlY3QpO1xuICByZXR1cm4ge1xuICAgIHRvcDogKGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGJvdHRvbTogKGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGxlZnQ6IChjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQpIC8gb2Zmc2V0U2NhbGUueCxcbiAgICByaWdodDogKGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodCkgLyBvZmZzZXRTY2FsZS54XG4gIH07XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gb3B0aW9ucyA9PiAoe1xuICBuYW1lOiAnYXJyb3cnLFxuICBvcHRpb25zLFxuICBhc3luYyBmbihzdGF0ZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgbWlkZGxld2FyZURhdGFcbiAgICB9ID0gc3RhdGU7XG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGUuXG4gICAgY29uc3Qge1xuICAgICAgZWxlbWVudCxcbiAgICAgIHBhZGRpbmcgPSAwXG4gICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKSB8fCB7fTtcbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpO1xuICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgIHgsXG4gICAgICB5XG4gICAgfTtcbiAgICBjb25zdCBheGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYXhpcyk7XG4gICAgY29uc3QgYXJyb3dEaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50KTtcbiAgICBjb25zdCBpc1lBeGlzID0gYXhpcyA9PT0gJ3knO1xuICAgIGNvbnN0IG1pblByb3AgPSBpc1lBeGlzID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgY29uc3QgbWF4UHJvcCA9IGlzWUF4aXMgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgY29uc3QgY2xpZW50UHJvcCA9IGlzWUF4aXMgPyAnY2xpZW50SGVpZ2h0JyA6ICdjbGllbnRXaWR0aCc7XG4gICAgY29uc3QgZW5kRGlmZiA9IHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdICsgcmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gY29vcmRzW2F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XG4gICAgY29uc3QgYXJyb3dPZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkpO1xuICAgIGxldCBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBhcnJvd09mZnNldFBhcmVudFtjbGllbnRQcm9wXSA6IDA7XG5cbiAgICAvLyBET00gcGxhdGZvcm0gY2FuIHJldHVybiBgd2luZG93YCBhcyB0aGUgYG9mZnNldFBhcmVudGAuXG4gICAgaWYgKCFjbGllbnRTaXplIHx8ICEoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGFycm93T2Zmc2V0UGFyZW50KSkpKSB7XG4gICAgICBjbGllbnRTaXplID0gZWxlbWVudHMuZmxvYXRpbmdbY2xpZW50UHJvcF0gfHwgcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICB9XG4gICAgY29uc3QgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7XG5cbiAgICAvLyBJZiB0aGUgcGFkZGluZyBpcyBsYXJnZSBlbm91Z2ggdGhhdCBpdCBjYXVzZXMgdGhlIGFycm93IHRvIG5vIGxvbmdlciBiZVxuICAgIC8vIGNlbnRlcmVkLCBtb2RpZnkgdGhlIHBhZGRpbmcgc28gdGhhdCBpdCBpcyBjZW50ZXJlZC5cbiAgICBjb25zdCBsYXJnZXN0UG9zc2libGVQYWRkaW5nID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgLSAxO1xuICAgIGNvbnN0IG1pblBhZGRpbmcgPSBtaW4ocGFkZGluZ09iamVjdFttaW5Qcm9wXSwgbGFyZ2VzdFBvc3NpYmxlUGFkZGluZyk7XG4gICAgY29uc3QgbWF4UGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21heFByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpZiB0aGUgY2VudGVyXG4gICAgLy8gcG9pbnQgaXMgb3V0c2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCdzIGJvdW5kcy5cbiAgICBjb25zdCBtaW4kMSA9IG1pblBhZGRpbmc7XG4gICAgY29uc3QgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC0gbWF4UGFkZGluZztcbiAgICBjb25zdCBjZW50ZXIgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiArIGNlbnRlclRvUmVmZXJlbmNlO1xuICAgIGNvbnN0IG9mZnNldCA9IGNsYW1wKG1pbiQxLCBjZW50ZXIsIG1heCk7XG5cbiAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIHNtYWxsIGVub3VnaCB0aGF0IHRoZSBhcnJvdydzIHBhZGRpbmcgY2F1c2VzIGl0IHRvXG4gICAgLy8gdG8gcG9pbnQgdG8gbm90aGluZyBmb3IgYW4gYWxpZ25lZCBwbGFjZW1lbnQsIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgaXRzZWxmLiBUbyBlbnN1cmUgYHNoaWZ0KClgIGNvbnRpbnVlcyB0byB0YWtlIGFjdGlvbixcbiAgICAvLyBhIHNpbmdsZSByZXNldCBpcyBwZXJmb3JtZWQgd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgY29uc3Qgc2hvdWxkQWRkT2Zmc2V0ID0gIW1pZGRsZXdhcmVEYXRhLmFycm93ICYmIGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9IG51bGwgJiYgY2VudGVyICE9PSBvZmZzZXQgJiYgcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gLyAyIC0gKGNlbnRlciA8IG1pbiQxID8gbWluUGFkZGluZyA6IG1heFBhZGRpbmcpIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyIDwgMDtcbiAgICBjb25zdCBhbGlnbm1lbnRPZmZzZXQgPSBzaG91bGRBZGRPZmZzZXQgPyBjZW50ZXIgPCBtaW4kMSA/IGNlbnRlciAtIG1pbiQxIDogY2VudGVyIC0gbWF4IDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgW2F4aXNdOiBjb29yZHNbYXhpc10gKyBhbGlnbm1lbnRPZmZzZXQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtheGlzXTogb2Zmc2V0LFxuICAgICAgICBjZW50ZXJPZmZzZXQ6IGNlbnRlciAtIG9mZnNldCAtIGFsaWdubWVudE9mZnNldCxcbiAgICAgICAgLi4uKHNob3VsZEFkZE9mZnNldCAmJiB7XG4gICAgICAgICAgYWxpZ25tZW50T2Zmc2V0XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgcmVzZXQ6IHNob3VsZEFkZE9mZnNldFxuICAgIH07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBnZXRQbGFjZW1lbnRMaXN0KGFsaWdubWVudCwgYXV0b0FsaWdubWVudCwgYWxsb3dlZFBsYWNlbWVudHMpIHtcbiAgY29uc3QgYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudCA9IGFsaWdubWVudCA/IFsuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpID09PSBhbGlnbm1lbnQpLCAuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9PSBhbGlnbm1lbnQpXSA6IGFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0U2lkZShwbGFjZW1lbnQpID09PSBwbGFjZW1lbnQpO1xuICByZXR1cm4gYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudC5maWx0ZXIocGxhY2VtZW50ID0+IHtcbiAgICBpZiAoYWxpZ25tZW50KSB7XG4gICAgICByZXR1cm4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCB8fCAoYXV0b0FsaWdubWVudCA/IGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkgIT09IHBsYWNlbWVudCA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XG4gKi9cbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXV0b1AsIF9taWRkbGV3YXJlRGF0YSRhdXRvUDIsIF9wbGFjZW1lbnRzVGhhdEZpdE9uRTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBjcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMsXG4gICAgICAgIGF1dG9BbGlnbm1lbnQgPSB0cnVlLFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzJDEgPSBhbGlnbm1lbnQgIT09IHVuZGVmaW5lZCB8fCBhbGxvd2VkUGxhY2VtZW50cyA9PT0gcGxhY2VtZW50cyA/IGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50IHx8IG51bGwsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKSA6IGFsbG93ZWRQbGFjZW1lbnRzO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICgoX21pZGRsZXdhcmVEYXRhJGF1dG9QID0gbWlkZGxld2FyZURhdGEuYXV0b1BsYWNlbWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRhdXRvUC5pbmRleCkgfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4XTtcbiAgICAgIGlmIChjdXJyZW50UGxhY2VtZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgYWxpZ25tZW50U2lkZXMgPSBnZXRBbGlnbm1lbnRTaWRlcyhjdXJyZW50UGxhY2VtZW50LCByZWN0cywgYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKTtcblxuICAgICAgLy8gTWFrZSBgY29tcHV0ZUNvb3Jkc2Agc3RhcnQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXG4gICAgICBpZiAocGxhY2VtZW50ICE9PSBjdXJyZW50UGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50cyQxWzBdXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE92ZXJmbG93cyA9IFtvdmVyZmxvd1tnZXRTaWRlKGN1cnJlbnRQbGFjZW1lbnQpXSwgb3ZlcmZsb3dbYWxpZ25tZW50U2lkZXNbMF1dLCBvdmVyZmxvd1thbGlnbm1lbnRTaWRlc1sxXV1dO1xuICAgICAgY29uc3QgYWxsT3ZlcmZsb3dzID0gWy4uLigoKF9taWRkbGV3YXJlRGF0YSRhdXRvUDIgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QMi5vdmVyZmxvd3MpIHx8IFtdKSwge1xuICAgICAgICBwbGFjZW1lbnQ6IGN1cnJlbnRQbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93czogY3VycmVudE92ZXJmbG93c1xuICAgICAgfV07XG4gICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50cyQxW2N1cnJlbnRJbmRleCArIDFdO1xuXG4gICAgICAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrLlxuICAgICAgaWYgKG5leHRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4ICsgMSxcbiAgICAgICAgICAgIG92ZXJmbG93czogYWxsT3ZlcmZsb3dzXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlID0gYWxsT3ZlcmZsb3dzLm1hcChkID0+IHtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KGQucGxhY2VtZW50KTtcbiAgICAgICAgcmV0dXJuIFtkLnBsYWNlbWVudCwgYWxpZ25tZW50ICYmIGNyb3NzQXhpcyA/XG4gICAgICAgIC8vIENoZWNrIGFsb25nIHRoZSBtYWluQXhpcyBhbmQgbWFpbiBjcm9zc0F4aXMgc2lkZS5cbiAgICAgICAgZC5vdmVyZmxvd3Muc2xpY2UoMCwgMikucmVkdWNlKChhY2MsIHYpID0+IGFjYyArIHYsIDApIDpcbiAgICAgICAgLy8gQ2hlY2sgb25seSB0aGUgbWFpbkF4aXMuXG4gICAgICAgIGQub3ZlcmZsb3dzWzBdLCBkLm92ZXJmbG93c107XG4gICAgICB9KS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzVGhhdEZpdE9uRWFjaFNpZGUgPSBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2UuZmlsdGVyKGQgPT4gZFsyXS5zbGljZSgwLFxuICAgICAgLy8gQWxpZ25lZCBwbGFjZW1lbnRzIHNob3VsZCBub3QgY2hlY2sgdGhlaXIgb3Bwb3NpdGUgY3Jvc3NBeGlzXG4gICAgICAvLyBzaWRlLlxuICAgICAgZ2V0QWxpZ25tZW50KGRbMF0pID8gMiA6IDMpLmV2ZXJ5KHYgPT4gdiA8PSAwKSk7XG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9ICgoX3BsYWNlbWVudHNUaGF0Rml0T25FID0gcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3BsYWNlbWVudHNUaGF0Rml0T25FWzBdKSB8fCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2VbMF1bMF07XG4gICAgICBpZiAocmVzZXRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxuICAgICAgICAgICAgb3ZlcmZsb3dzOiBhbGxPdmVyZmxvd3NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmbGlwJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGFycm93LCBfbWlkZGxld2FyZURhdGEkZmxpcDtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlLFxuICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyxcbiAgICAgICAgZmFsbGJhY2tTdHJhdGVneSA9ICdiZXN0Rml0JyxcbiAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9ICdub25lJyxcbiAgICAgICAgZmxpcEFsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcblxuICAgICAgLy8gSWYgYSByZXNldCBieSB0aGUgYXJyb3cgd2FzIGNhdXNlZCBkdWUgdG8gYW4gYWxpZ25tZW50IG9mZnNldCBiZWluZ1xuICAgICAgLy8gYWRkZWQsIHdlIHNob3VsZCBza2lwIGFueSBsb2dpYyBub3cgc2luY2UgYGZsaXAoKWAgaGFzIGFscmVhZHkgZG9uZSBpdHNcbiAgICAgIC8vIHdvcmsuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI1NDkjaXNzdWVjb21tZW50LTE3MTk2MDE2NDNcbiAgICAgIGlmICgoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgaW5pdGlhbFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoaW5pdGlhbFBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc0Jhc2VQbGFjZW1lbnQgPSBnZXRTaWRlKGluaXRpYWxQbGFjZW1lbnQpID09PSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xuICAgICAgY29uc3QgZmFsbGJhY2tQbGFjZW1lbnRzID0gc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIHx8IChpc0Jhc2VQbGFjZW1lbnQgfHwgIWZsaXBBbGlnbm1lbnQgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQoaW5pdGlhbFBsYWNlbWVudCldIDogZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKGluaXRpYWxQbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24gPSBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uICE9PSAnbm9uZSc7XG4gICAgICBpZiAoIXNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyAmJiBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50cy5wdXNoKC4uLmdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiwgcnRsKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gW2luaXRpYWxQbGFjZW1lbnQsIC4uLmZhbGxiYWNrUGxhY2VtZW50c107XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3dzID0gW107XG4gICAgICBsZXQgb3ZlcmZsb3dzRGF0YSA9ICgoX21pZGRsZXdhcmVEYXRhJGZsaXAgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAub3ZlcmZsb3dzKSB8fCBbXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCk7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVzWzBdXSwgb3ZlcmZsb3dbc2lkZXNbMV1dKTtcbiAgICAgIH1cbiAgICAgIG92ZXJmbG93c0RhdGEgPSBbLi4ub3ZlcmZsb3dzRGF0YSwge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93c1xuICAgICAgfV07XG5cbiAgICAgIC8vIE9uZSBvciBtb3JlIHNpZGVzIGlzIG92ZXJmbG93aW5nLlxuICAgICAgaWYgKCFvdmVyZmxvd3MuZXZlcnkoc2lkZSA9PiBzaWRlIDw9IDApKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcDIsIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKCgoX21pZGRsZXdhcmVEYXRhJGZsaXAyID0gbWlkZGxld2FyZURhdGEuZmxpcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRmbGlwMi5pbmRleCkgfHwgMCkgKyAxO1xuICAgICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50c1tuZXh0SW5kZXhdO1xuICAgICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xuICAgICAgICAgIC8vIFRyeSBuZXh0IHBsYWNlbWVudCBhbmQgcmUtcnVuIHRoZSBsaWZlY3ljbGUuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgaW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dzOiBvdmVyZmxvd3NEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0LCBmaW5kIHRoZSBjYW5kaWRhdGVzIHRoYXQgZml0IG9uIHRoZSBtYWluQXhpcyBzaWRlIG9mIG92ZXJmbG93LFxuICAgICAgICAvLyB0aGVuIGZpbmQgdGhlIHBsYWNlbWVudCB0aGF0IGZpdHMgdGhlIGJlc3Qgb24gdGhlIG1haW4gY3Jvc3NBeGlzIHNpZGUuXG4gICAgICAgIGxldCByZXNldFBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IGQub3ZlcmZsb3dzWzBdIDw9IDApLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzFdIC0gYi5vdmVyZmxvd3NbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyLnBsYWNlbWVudDtcblxuICAgICAgICAvLyBPdGhlcndpc2UgZmFsbGJhY2suXG4gICAgICAgIGlmICghcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICBzd2l0Y2ggKGZhbGxiYWNrU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jlc3RGaXQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjI7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gKF9vdmVyZmxvd3NEYXRhJGZpbHRlcjIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlQXhpcyA9IGdldFNpZGVBeGlzKGQucGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTaWRlQXhpcyA9PT0gaW5pdGlhbFNpZGVBeGlzIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGJpYXMgdG8gdGhlIGB5YCBzaWRlIGF4aXMgZHVlIHRvIGhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZyBkaXJlY3Rpb25zIGZhdm9yaW5nIGdyZWF0ZXIgd2lkdGguXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTaWRlQXhpcyA9PT0gJ3knO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSkubWFwKGQgPT4gW2QucGxhY2VtZW50LCBkLm92ZXJmbG93cy5maWx0ZXIob3ZlcmZsb3cgPT4gb3ZlcmZsb3cgPiAwKS5yZWR1Y2UoKGFjYywgb3ZlcmZsb3cpID0+IGFjYyArIG92ZXJmbG93LCAwKV0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vdmVyZmxvd3NEYXRhJGZpbHRlcjJbMF07XG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdpbml0aWFsUGxhY2VtZW50JzpcbiAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudCAhPT0gcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiByZXNldFBsYWNlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQsXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoXG4gIH07XG59XG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIHNpZGVzLnNvbWUoc2lkZSA9PiBvdmVyZmxvd1tzaWRlXSA+PSAwKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdoaWRlJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlY3RzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHN0cmF0ZWd5ID0gJ3JlZmVyZW5jZUhpZGRlbicsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAncmVmZXJlbmNlSGlkZGVuJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW5PZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbjogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICdlc2NhcGVkJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5mbG9hdGluZyk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZE9mZnNldHM6IG9mZnNldHMsXG4gICAgICAgICAgICAgICAgZXNjYXBlZDogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdSZWN0KHJlY3RzKSB7XG4gIGNvbnN0IG1pblggPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gIGNvbnN0IG1pblkgPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC50b3ApKTtcbiAgY29uc3QgbWF4WCA9IG1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnJpZ2h0KSk7XG4gIGNvbnN0IG1heFkgPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5ib3R0b20pKTtcbiAgcmV0dXJuIHtcbiAgICB4OiBtaW5YLFxuICAgIHk6IG1pblksXG4gICAgd2lkdGg6IG1heFggLSBtaW5YLFxuICAgIGhlaWdodDogbWF4WSAtIG1pbllcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFJlY3RzQnlMaW5lKHJlY3RzKSB7XG4gIGNvbnN0IHNvcnRlZFJlY3RzID0gcmVjdHMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkpO1xuICBjb25zdCBncm91cHMgPSBbXTtcbiAgbGV0IHByZXZSZWN0ID0gbnVsbDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJlY3QgPSBzb3J0ZWRSZWN0c1tpXTtcbiAgICBpZiAoIXByZXZSZWN0IHx8IHJlY3QueSAtIHByZXZSZWN0LnkgPiBwcmV2UmVjdC5oZWlnaHQgLyAyKSB7XG4gICAgICBncm91cHMucHVzaChbcmVjdF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cHNbZ3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gocmVjdCk7XG4gICAgfVxuICAgIHByZXZSZWN0ID0gcmVjdDtcbiAgfVxuICByZXR1cm4gZ3JvdXBzLm1hcChyZWN0ID0+IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KHJlY3QpKSk7XG59XG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2lubGluZScsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIGVsZW1lbnRzLFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICAvLyBBIE1vdXNlRXZlbnQncyBjbGllbnR7WCxZfSBjb29yZHMgY2FuIGJlIHVwIHRvIDIgcGl4ZWxzIG9mZiBhXG4gICAgICAvLyBDbGllbnRSZWN0J3MgYm91bmRzLCBkZXNwaXRlIHRoZSBldmVudCBsaXN0ZW5lciBiZWluZyB0cmlnZ2VyZWQuIEFcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFkZGluZyA9IDIsXG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBuYXRpdmVDbGllbnRSZWN0cyA9IEFycmF5LmZyb20oKGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpIHx8IFtdKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gZ2V0UmVjdHNCeUxpbmUobmF0aXZlQ2xpZW50UmVjdHMpO1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSByZWN0VG9DbGllbnRSZWN0KGdldEJvdW5kaW5nUmVjdChuYXRpdmVDbGllbnRSZWN0cykpO1xuICAgICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gICAgICBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSB0d28gcmVjdHMgYW5kIHRoZXkgYXJlIGRpc2pvaW5lZC5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMiAmJiBjbGllbnRSZWN0c1swXS5sZWZ0ID4gY2xpZW50UmVjdHNbMV0ucmlnaHQgJiYgeCAhPSBudWxsICYmIHkgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHJlY3QgaW4gd2hpY2ggdGhlIHBvaW50IGlzIGZ1bGx5IGluc2lkZS5cbiAgICAgICAgICByZXR1cm4gY2xpZW50UmVjdHMuZmluZChyZWN0ID0+IHggPiByZWN0LmxlZnQgLSBwYWRkaW5nT2JqZWN0LmxlZnQgJiYgeCA8IHJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0ICYmIHkgPiByZWN0LnRvcCAtIHBhZGRpbmdPYmplY3QudG9wICYmIHkgPCByZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSB8fCBmYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZXJlIGFyZSAyIG9yIG1vcmUgY29ubmVjdGVkIHJlY3RzLlxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICBpZiAoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFJlY3QgPSBjbGllbnRSZWN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBpc1RvcCA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ3RvcCc7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBmaXJzdFJlY3QudG9wO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGlzVG9wID8gZmlyc3RSZWN0LmxlZnQgOiBsYXN0UmVjdC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBpc1RvcCA/IGZpcnN0UmVjdC5yaWdodCA6IGxhc3RSZWN0LnJpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICAgIHk6IHRvcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXNMZWZ0U2lkZSA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ2xlZnQnO1xuICAgICAgICAgIGNvbnN0IG1heFJpZ2h0ID0gbWF4KC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QucmlnaHQpKTtcbiAgICAgICAgICBjb25zdCBtaW5MZWZ0ID0gbWluKC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QubGVmdCkpO1xuICAgICAgICAgIGNvbnN0IG1lYXN1cmVSZWN0cyA9IGNsaWVudFJlY3RzLmZpbHRlcihyZWN0ID0+IGlzTGVmdFNpZGUgPyByZWN0LmxlZnQgPT09IG1pbkxlZnQgOiByZWN0LnJpZ2h0ID09PSBtYXhSaWdodCk7XG4gICAgICAgICAgY29uc3QgdG9wID0gbWVhc3VyZVJlY3RzWzBdLnRvcDtcbiAgICAgICAgICBjb25zdCBib3R0b20gPSBtZWFzdXJlUmVjdHNbbWVhc3VyZVJlY3RzLmxlbmd0aCAtIDFdLmJvdHRvbTtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gbWluTGVmdDtcbiAgICAgICAgICBjb25zdCByaWdodCA9IG1heFJpZ2h0O1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgIHJpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB4OiBsZWZ0LFxuICAgICAgICAgICAgeTogdG9wXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gICAgICAgIH0sXG4gICAgICAgIGZsb2F0aW5nOiBlbGVtZW50cy5mbG9hdGluZyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlY3RzLnJlZmVyZW5jZS54ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS54IHx8IHJlY3RzLnJlZmVyZW5jZS55ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS55IHx8IHJlY3RzLnJlZmVyZW5jZS53aWR0aCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2Uud2lkdGggfHwgcmVjdHMucmVmZXJlbmNlLmhlaWdodCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2UuaGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHJlY3RzOiByZXNldFJlY3RzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIEZvciB0eXBlIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LCB0aGUgYE9mZnNldE9wdGlvbnNgIHR5cGUgd2FzIGFsc29cbi8vIERlcml2YWJsZS5cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCxcbiAgICBwbGF0Zm9ybSxcbiAgICBlbGVtZW50c1xuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJ0bCA9IGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGlzVmVydGljYWwgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gIGNvbnN0IG1haW5BeGlzTXVsdGkgPSBbJ2xlZnQnLCAndG9wJ10uaW5jbHVkZXMoc2lkZSkgPyAtMSA6IDE7XG4gIGNvbnN0IGNyb3NzQXhpc011bHRpID0gcnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDE7XG4gIGNvbnN0IHJhd1ZhbHVlID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgbGV0IHtcbiAgICBtYWluQXhpcyxcbiAgICBjcm9zc0F4aXMsXG4gICAgYWxpZ25tZW50QXhpc1xuICB9ID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnbnVtYmVyJyA/IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXG4gICAgY3Jvc3NBeGlzOiAwLFxuICAgIGFsaWdubWVudEF4aXM6IG51bGxcbiAgfSA6IHtcbiAgICBtYWluQXhpczogMCxcbiAgICBjcm9zc0F4aXM6IDAsXG4gICAgYWxpZ25tZW50QXhpczogbnVsbCxcbiAgICAuLi5yYXdWYWx1ZVxuICB9O1xuICBpZiAoYWxpZ25tZW50ICYmIHR5cGVvZiBhbGlnbm1lbnRBeGlzID09PSAnbnVtYmVyJykge1xuICAgIGNyb3NzQXhpcyA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyBhbGlnbm1lbnRBeGlzICogLTEgOiBhbGlnbm1lbnRBeGlzO1xuICB9XG4gIHJldHVybiBpc1ZlcnRpY2FsID8ge1xuICAgIHg6IGNyb3NzQXhpcyAqIGNyb3NzQXhpc011bHRpLFxuICAgIHk6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aVxuICB9IDoge1xuICAgIHg6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aSxcbiAgICB5OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aVxuICB9O1xufVxuXG4vKipcbiAqIE1vZGlmaWVzIHRoZSBwbGFjZW1lbnQgYnkgdHJhbnNsYXRpbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYWxvbmcgdGhlXG4gKiBzcGVjaWZpZWQgYXhlcy5cbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cbiAqIG9iamVjdCBtYXkgYmUgcGFzc2VkLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxuICovXG5jb25zdCBvZmZzZXQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IDA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnb2Zmc2V0JyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJG9mZnNlLCBfbWlkZGxld2FyZURhdGEkYXJyb3c7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IGRpZmZDb29yZHMgPSBhd2FpdCBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhzdGF0ZSwgb3B0aW9ucyk7XG5cbiAgICAgIC8vIElmIHRoZSBwbGFjZW1lbnQgaXMgdGhlIHNhbWUgYW5kIHRoZSBhcnJvdyBjYXVzZWQgYW4gYWxpZ25tZW50IG9mZnNldFxuICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgcG9zaXRpb25pbmcgY29vcmRpbmF0ZXMuXG4gICAgICBpZiAocGxhY2VtZW50ID09PSAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZS5wbGFjZW1lbnQpICYmIChfbWlkZGxld2FyZURhdGEkYXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdykgIT0gbnVsbCAmJiBfbWlkZGxld2FyZURhdGEkYXJyb3cuYWxpZ25tZW50T2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggKyBkaWZmQ29vcmRzLngsXG4gICAgICAgIHk6IHkgKyBkaWZmQ29vcmRzLnksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5kaWZmQ29vcmRzLFxuICAgICAgICAgIHBsYWNlbWVudFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IHNoaWZ0aW5nIGl0IGluIG9yZGVyIHRvXG4gKiBrZWVwIGl0IGluIHZpZXcgd2hlbiBpdCB3aWxsIG92ZXJmbG93IHRoZSBjbGlwcGluZyBib3VuZGFyeS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxuICovXG5jb25zdCBzaGlmdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc2hpZnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcGxhY2VtZW50XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IGZhbHNlLFxuICAgICAgICBsaW1pdGVyID0ge1xuICAgICAgICAgIGZuOiBfcmVmID0+IHtcbiAgICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH0gPSBfcmVmO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBjcm9zc0F4aXMgPSBnZXRTaWRlQXhpcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgY29uc3QgbWFpbkF4aXMgPSBnZXRPcHBvc2l0ZUF4aXMoY3Jvc3NBeGlzKTtcbiAgICAgIGxldCBtYWluQXhpc0Nvb3JkID0gY29vcmRzW21haW5BeGlzXTtcbiAgICAgIGxldCBjcm9zc0F4aXNDb29yZCA9IGNvb3Jkc1tjcm9zc0F4aXNdO1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IG1haW5BeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IG1haW5BeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IG1haW5BeGlzQ29vcmQgKyBvdmVyZmxvd1ttaW5TaWRlXTtcbiAgICAgICAgY29uc3QgbWF4ID0gbWFpbkF4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBtYWluQXhpc0Nvb3JkID0gY2xhbXAobWluLCBtYWluQXhpc0Nvb3JkLCBtYXgpO1xuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBjcm9zc0F4aXMgPT09ICd5JyA/ICd0b3AnIDogJ2xlZnQnO1xuICAgICAgICBjb25zdCBtYXhTaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IGNyb3NzQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IGNyb3NzQXhpc0Nvb3JkIC0gb3ZlcmZsb3dbbWF4U2lkZV07XG4gICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gY2xhbXAobWluLCBjcm9zc0F4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpbWl0ZWRDb29yZHMgPSBsaW1pdGVyLmZuKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5saW1pdGVkQ29vcmRzLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgeDogbGltaXRlZENvb3Jkcy54IC0geCxcbiAgICAgICAgICB5OiBsaW1pdGVkQ29vcmRzLnkgLSB5XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICB4LFxuICAgICAgICB5XG4gICAgICB9O1xuICAgICAgY29uc3QgY3Jvc3NBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGNvbnN0IHJhd09mZnNldCA9IGV2YWx1YXRlKG9mZnNldCwgc3RhdGUpO1xuICAgICAgY29uc3QgY29tcHV0ZWRPZmZzZXQgPSB0eXBlb2YgcmF3T2Zmc2V0ID09PSAnbnVtYmVyJyA/IHtcbiAgICAgICAgbWFpbkF4aXM6IHJhd09mZnNldCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwXG4gICAgICB9IDoge1xuICAgICAgICBtYWluQXhpczogMCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwLFxuICAgICAgICAuLi5yYXdPZmZzZXRcbiAgICAgIH07XG4gICAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgICBjb25zdCBsZW4gPSBtYWluQXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW21haW5BeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dIC0gY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGlmIChtYWluQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBtYWluQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAobWFpbkF4aXNDb29yZCA+IGxpbWl0TWF4KSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tDcm9zc0F4aXMpIHtcbiAgICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRvZmZzZSwgX21pZGRsZXdhcmVEYXRhJG9mZnNlMjtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICAgICAgY29uc3QgaXNPcmlnaW5TaWRlID0gWyd0b3AnLCAnbGVmdCddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWluID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgKGlzT3JpZ2luU2lkZSA/ICgoX21pZGRsZXdhcmVEYXRhJG9mZnNlID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlW2Nyb3NzQXhpc10pIHx8IDAgOiAwKSArIChpc09yaWdpblNpZGUgPyAwIDogY29tcHV0ZWRPZmZzZXQuY3Jvc3NBeGlzKTtcbiAgICAgICAgY29uc3QgbGltaXRNYXggPSByZWN0cy5yZWZlcmVuY2VbY3Jvc3NBeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dICsgKGlzT3JpZ2luU2lkZSA/IDAgOiAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZTIgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UyW2Nyb3NzQXhpc10pIHx8IDApIC0gKGlzT3JpZ2luU2lkZSA/IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyA6IDApO1xuICAgICAgICBpZiAoY3Jvc3NBeGlzQ29vcmQgPCBsaW1pdE1pbikge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAoY3Jvc3NBeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNYXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcbiAqIGZvciBpbnN0YW5jZSwgcHJldmVudCBpdCBmcm9tIG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyBib3VuZGFyeSBvciBtYXRjaCB0aGVcbiAqIHdpZHRoIG9mIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXG4gKi9cbmNvbnN0IHNpemUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpemUnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIGVsZW1lbnRzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFwcGx5ID0gKCkgPT4ge30sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc1lBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knO1xuICAgICAgY29uc3Qge1xuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgICB9ID0gcmVjdHMuZmxvYXRpbmc7XG4gICAgICBsZXQgaGVpZ2h0U2lkZTtcbiAgICAgIGxldCB3aWR0aFNpZGU7XG4gICAgICBpZiAoc2lkZSA9PT0gJ3RvcCcgfHwgc2lkZSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgaGVpZ2h0U2lkZSA9IHNpZGU7XG4gICAgICAgIHdpZHRoU2lkZSA9IGFsaWdubWVudCA9PT0gKChhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSkpID8gJ3N0YXJ0JyA6ICdlbmQnKSA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aWR0aFNpZGUgPSBzaWRlO1xuICAgICAgICBoZWlnaHRTaWRlID0gYWxpZ25tZW50ID09PSAnZW5kJyA/ICd0b3AnIDogJ2JvdHRvbSc7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQgPSBoZWlnaHQgLSBvdmVyZmxvdy50b3AgLSBvdmVyZmxvdy5ib3R0b207XG4gICAgICBjb25zdCBtYXhpbXVtQ2xpcHBpbmdXaWR0aCA9IHdpZHRoIC0gb3ZlcmZsb3cubGVmdCAtIG92ZXJmbG93LnJpZ2h0O1xuICAgICAgY29uc3Qgb3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQgPSBtaW4oaGVpZ2h0IC0gb3ZlcmZsb3dbaGVpZ2h0U2lkZV0sIG1heGltdW1DbGlwcGluZ0hlaWdodCk7XG4gICAgICBjb25zdCBvdmVyZmxvd0F2YWlsYWJsZVdpZHRoID0gbWluKHdpZHRoIC0gb3ZlcmZsb3dbd2lkdGhTaWRlXSwgbWF4aW11bUNsaXBwaW5nV2lkdGgpO1xuICAgICAgY29uc3Qgbm9TaGlmdCA9ICFzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdDtcbiAgICAgIGxldCBhdmFpbGFibGVIZWlnaHQgPSBvdmVyZmxvd0F2YWlsYWJsZUhlaWdodDtcbiAgICAgIGxldCBhdmFpbGFibGVXaWR0aCA9IG92ZXJmbG93QXZhaWxhYmxlV2lkdGg7XG4gICAgICBpZiAoaXNZQXhpcykge1xuICAgICAgICBhdmFpbGFibGVXaWR0aCA9IGFsaWdubWVudCB8fCBub1NoaWZ0ID8gbWluKG92ZXJmbG93QXZhaWxhYmxlV2lkdGgsIG1heGltdW1DbGlwcGluZ1dpZHRoKSA6IG1heGltdW1DbGlwcGluZ1dpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gYWxpZ25tZW50IHx8IG5vU2hpZnQgPyBtaW4ob3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQsIG1heGltdW1DbGlwcGluZ0hlaWdodCkgOiBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQ7XG4gICAgICB9XG4gICAgICBpZiAobm9TaGlmdCAmJiAhYWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnN0IHhNaW4gPSBtYXgob3ZlcmZsb3cubGVmdCwgMCk7XG4gICAgICAgIGNvbnN0IHhNYXggPSBtYXgob3ZlcmZsb3cucmlnaHQsIDApO1xuICAgICAgICBjb25zdCB5TWluID0gbWF4KG92ZXJmbG93LnRvcCwgMCk7XG4gICAgICAgIGNvbnN0IHlNYXggPSBtYXgob3ZlcmZsb3cuYm90dG9tLCAwKTtcbiAgICAgICAgaWYgKGlzWUF4aXMpIHtcbiAgICAgICAgICBhdmFpbGFibGVXaWR0aCA9IHdpZHRoIC0gMiAqICh4TWluICE9PSAwIHx8IHhNYXggIT09IDAgPyB4TWluICsgeE1heCA6IG1heChvdmVyZmxvdy5sZWZ0LCBvdmVyZmxvdy5yaWdodCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGhlaWdodCAtIDIgKiAoeU1pbiAhPT0gMCB8fCB5TWF4ICE9PSAwID8geU1pbiArIHlNYXggOiBtYXgob3ZlcmZsb3cudG9wLCBvdmVyZmxvdy5ib3R0b20pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgYXBwbHkoe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYXZhaWxhYmxlV2lkdGgsXG4gICAgICAgIGF2YWlsYWJsZUhlaWdodFxuICAgICAgfSk7XG4gICAgICBjb25zdCBuZXh0RGltZW5zaW9ucyA9IGF3YWl0IHBsYXRmb3JtLmdldERpbWVuc2lvbnMoZWxlbWVudHMuZmxvYXRpbmcpO1xuICAgICAgaWYgKHdpZHRoICE9PSBuZXh0RGltZW5zaW9ucy53aWR0aCB8fCBoZWlnaHQgIT09IG5leHREaW1lbnNpb25zLmhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICByZWN0czogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgY29tcHV0ZVBvc2l0aW9uLCBkZXRlY3RPdmVyZmxvdywgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplIH07XG4iLCJmdW5jdGlvbiBnZXROb2RlTmFtZShub2RlKSB7XG4gIGlmIChpc05vZGUobm9kZSkpIHtcbiAgICByZXR1cm4gKG5vZGUubm9kZU5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgLy8gTW9ja2VkIG5vZGVzIGluIHRlc3RpbmcgZW52aXJvbm1lbnRzIG1heSBub3QgYmUgaW5zdGFuY2VzIG9mIE5vZGUuIEJ5XG4gIC8vIHJldHVybmluZyBgI2RvY3VtZW50YCBhbiBpbmZpbml0ZSBsb29wIHdvbid0IG9jY3VyLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzIzMTdcbiAgcmV0dXJuICcjZG9jdW1lbnQnO1xufVxuZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgdmFyIF9ub2RlJG93bmVyRG9jdW1lbnQ7XG4gIHJldHVybiAobm9kZSA9PSBudWxsIHx8IChfbm9kZSRvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgfHwgd2luZG93O1xufVxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRFbGVtZW50KG5vZGUpIHtcbiAgdmFyIF9yZWY7XG4gIHJldHVybiAoX3JlZiA9IChpc05vZGUobm9kZSkgPyBub2RlLm93bmVyRG9jdW1lbnQgOiBub2RlLmRvY3VtZW50KSB8fCB3aW5kb3cuZG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfcmVmLmRvY3VtZW50RWxlbWVudDtcbn1cbmZ1bmN0aW9uIGlzTm9kZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBOb2RlIHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5Ob2RlO1xufVxuZnVuY3Rpb24gaXNFbGVtZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50IHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5IVE1MRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGlzU2hhZG93Um9vdCh2YWx1ZSkge1xuICAvLyBCcm93c2VycyB3aXRob3V0IGBTaGFkb3dSb290YCBzdXBwb3J0LlxuICBpZiAodHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLlNoYWRvd1Jvb3Q7XG59XG5mdW5jdGlvbiBpc092ZXJmbG93RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZLFxuICAgIGRpc3BsYXlcbiAgfSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkgJiYgIVsnaW5saW5lJywgJ2NvbnRlbnRzJ10uaW5jbHVkZXMoZGlzcGxheSk7XG59XG5mdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpO1xufVxuZnVuY3Rpb24gaXNUb3BMYXllcihlbGVtZW50KSB7XG4gIHJldHVybiBbJzpwb3BvdmVyLW9wZW4nLCAnOm1vZGFsJ10uc29tZShzZWxlY3RvciA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gaXNDb250YWluaW5nQmxvY2soZWxlbWVudE9yQ3NzKSB7XG4gIGNvbnN0IHdlYmtpdCA9IGlzV2ViS2l0KCk7XG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnLCAnZmlsdGVyJ10uc29tZSh2YWx1ZSA9PiAoY3NzLndpbGxDaGFuZ2UgfHwgJycpLmluY2x1ZGVzKHZhbHVlKSkgfHwgWydwYWludCcsICdsYXlvdXQnLCAnc3RyaWN0JywgJ2NvbnRlbnQnXS5zb21lKHZhbHVlID0+IChjc3MuY29udGFpbiB8fCAnJykuaW5jbHVkZXModmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGlmIChpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2UgaWYgKGlzVG9wTGF5ZXIoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzV2ViS2l0KCkge1xuICBpZiAodHlwZW9mIENTUyA9PT0gJ3VuZGVmaW5lZCcgfHwgIUNTUy5zdXBwb3J0cykgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gQ1NTLnN1cHBvcnRzKCctd2Via2l0LWJhY2tkcm9wLWZpbHRlcicsICdub25lJyk7XG59XG5mdW5jdGlvbiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUobm9kZSkge1xuICByZXR1cm4gWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUobm9kZSkpO1xufVxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGdldE5vZGVTY3JvbGwoZWxlbWVudCkge1xuICBpZiAoaXNFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxYLFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxZXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgaWYgKGdldE5vZGVOYW1lKG5vZGUpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICBjb25zdCByZXN1bHQgPVxuICAvLyBTdGVwIGludG8gdGhlIHNoYWRvdyBET00gb2YgdGhlIHBhcmVudCBvZiBhIHNsb3R0ZWQgbm9kZS5cbiAgbm9kZS5hc3NpZ25lZFNsb3QgfHxcbiAgLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWQuXG4gIG5vZGUucGFyZW50Tm9kZSB8fFxuICAvLyBTaGFkb3dSb290IGRldGVjdGVkLlxuICBpc1NoYWRvd1Jvb3Qobm9kZSkgJiYgbm9kZS5ob3N0IHx8XG4gIC8vIEZhbGxiYWNrLlxuICBnZXREb2N1bWVudEVsZW1lbnQobm9kZSk7XG4gIHJldHVybiBpc1NoYWRvd1Jvb3QocmVzdWx0KSA/IHJlc3VsdC5ob3N0IDogcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgaWYgKGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgPyBub2RlLm93bmVyRG9jdW1lbnQuYm9keSA6IG5vZGUuYm9keTtcbiAgfVxuICBpZiAoaXNIVE1MRWxlbWVudChwYXJlbnROb2RlKSAmJiBpc092ZXJmbG93RWxlbWVudChwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG4gIHJldHVybiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvcihwYXJlbnROb2RlKTtcbn1cbmZ1bmN0aW9uIGdldE92ZXJmbG93QW5jZXN0b3JzKG5vZGUsIGxpc3QsIHRyYXZlcnNlSWZyYW1lcykge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDI7XG4gIGlmIChsaXN0ID09PSB2b2lkIDApIHtcbiAgICBsaXN0ID0gW107XG4gIH1cbiAgaWYgKHRyYXZlcnNlSWZyYW1lcyA9PT0gdm9pZCAwKSB7XG4gICAgdHJhdmVyc2VJZnJhbWVzID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBzY3JvbGxhYmxlQW5jZXN0b3IgPSBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKTtcbiAgY29uc3QgaXNCb2R5ID0gc2Nyb2xsYWJsZUFuY2VzdG9yID09PSAoKF9ub2RlJG93bmVyRG9jdW1lbnQyID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudDIuYm9keSk7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhzY3JvbGxhYmxlQW5jZXN0b3IpO1xuICBpZiAoaXNCb2R5KSB7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KHdpbiwgd2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc092ZXJmbG93RWxlbWVudChzY3JvbGxhYmxlQW5jZXN0b3IpID8gc2Nyb2xsYWJsZUFuY2VzdG9yIDogW10sIHdpbi5mcmFtZUVsZW1lbnQgJiYgdHJhdmVyc2VJZnJhbWVzID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMod2luLmZyYW1lRWxlbWVudCkgOiBbXSk7XG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KHNjcm9sbGFibGVBbmNlc3RvciwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoc2Nyb2xsYWJsZUFuY2VzdG9yLCBbXSwgdHJhdmVyc2VJZnJhbWVzKSk7XG59XG5cbmV4cG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGdldENvbnRhaW5pbmdCbG9jaywgZ2V0RG9jdW1lbnRFbGVtZW50LCBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvciwgZ2V0Tm9kZU5hbWUsIGdldE5vZGVTY3JvbGwsIGdldE92ZXJmbG93QW5jZXN0b3JzLCBnZXRQYXJlbnROb2RlLCBnZXRXaW5kb3csIGlzQ29udGFpbmluZ0Jsb2NrLCBpc0VsZW1lbnQsIGlzSFRNTEVsZW1lbnQsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNOb2RlLCBpc092ZXJmbG93RWxlbWVudCwgaXNTaGFkb3dSb290LCBpc1RhYmxlRWxlbWVudCwgaXNUb3BMYXllciwgaXNXZWJLaXQgfTtcbiIsImltcG9ydCB7IHJlY3RUb0NsaWVudFJlY3QsIGRldGVjdE92ZXJmbG93IGFzIGRldGVjdE92ZXJmbG93JDEsIG9mZnNldCBhcyBvZmZzZXQkMSwgYXV0b1BsYWNlbWVudCBhcyBhdXRvUGxhY2VtZW50JDEsIHNoaWZ0IGFzIHNoaWZ0JDEsIGZsaXAgYXMgZmxpcCQxLCBzaXplIGFzIHNpemUkMSwgaGlkZSBhcyBoaWRlJDEsIGFycm93IGFzIGFycm93JDEsIGlubGluZSBhcyBpbmxpbmUkMSwgbGltaXRTaGlmdCBhcyBsaW1pdFNoaWZ0JDEsIGNvbXB1dGVQb3NpdGlvbiBhcyBjb21wdXRlUG9zaXRpb24kMSB9IGZyb20gJ0BmbG9hdGluZy11aS9jb3JlJztcbmltcG9ydCB7IHJvdW5kLCBjcmVhdGVDb29yZHMsIG1heCwgbWluLCBmbG9vciB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5pbXBvcnQgeyBnZXRDb21wdXRlZFN0eWxlLCBpc0hUTUxFbGVtZW50LCBpc0VsZW1lbnQsIGdldFdpbmRvdywgaXNXZWJLaXQsIGdldERvY3VtZW50RWxlbWVudCwgaXNUb3BMYXllciwgZ2V0Tm9kZU5hbWUsIGlzT3ZlcmZsb3dFbGVtZW50LCBnZXROb2RlU2Nyb2xsLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgaXNMYXN0VHJhdmVyc2FibGVOb2RlLCBpc0NvbnRhaW5pbmdCbG9jaywgaXNUYWJsZUVsZW1lbnQsIGdldENvbnRhaW5pbmdCbG9jayB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xuZXhwb3J0IHsgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcblxuZnVuY3Rpb24gZ2V0Q3NzRGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIC8vIEluIHRlc3RpbmcgZW52aXJvbm1lbnRzLCB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBhcmUgZW1wdHlcbiAgLy8gc3RyaW5ncyBmb3IgU1ZHIGVsZW1lbnRzLCByZXR1cm5pbmcgTmFOLiBGYWxsYmFjayB0byBgMGAgaW4gdGhpcyBjYXNlLlxuICBsZXQgd2lkdGggPSBwYXJzZUZsb2F0KGNzcy53aWR0aCkgfHwgMDtcbiAgbGV0IGhlaWdodCA9IHBhcnNlRmxvYXQoY3NzLmhlaWdodCkgfHwgMDtcbiAgY29uc3QgaGFzT2Zmc2V0ID0gaXNIVE1MRWxlbWVudChlbGVtZW50KTtcbiAgY29uc3Qgb2Zmc2V0V2lkdGggPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldFdpZHRoIDogd2lkdGg7XG4gIGNvbnN0IG9mZnNldEhlaWdodCA9IGhhc09mZnNldCA/IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogaGVpZ2h0O1xuICBjb25zdCBzaG91bGRGYWxsYmFjayA9IHJvdW5kKHdpZHRoKSAhPT0gb2Zmc2V0V2lkdGggfHwgcm91bmQoaGVpZ2h0KSAhPT0gb2Zmc2V0SGVpZ2h0O1xuICBpZiAoc2hvdWxkRmFsbGJhY2spIHtcbiAgICB3aWR0aCA9IG9mZnNldFdpZHRoO1xuICAgIGhlaWdodCA9IG9mZnNldEhlaWdodDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICAkOiBzaG91bGRGYWxsYmFja1xuICB9O1xufVxuXG5mdW5jdGlvbiB1bndyYXBFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuICFpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50LmNvbnRleHRFbGVtZW50IDogZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZ2V0U2NhbGUoZWxlbWVudCkge1xuICBjb25zdCBkb21FbGVtZW50ID0gdW53cmFwRWxlbWVudChlbGVtZW50KTtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGRvbUVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvb3JkcygxKTtcbiAgfVxuICBjb25zdCByZWN0ID0gZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICAkXG4gIH0gPSBnZXRDc3NEaW1lbnNpb25zKGRvbUVsZW1lbnQpO1xuICBsZXQgeCA9ICgkID8gcm91bmQocmVjdC53aWR0aCkgOiByZWN0LndpZHRoKSAvIHdpZHRoO1xuICBsZXQgeSA9ICgkID8gcm91bmQocmVjdC5oZWlnaHQpIDogcmVjdC5oZWlnaHQpIC8gaGVpZ2h0O1xuXG4gIC8vIDAsIE5hTiwgb3IgSW5maW5pdHkgc2hvdWxkIGFsd2F5cyBmYWxsYmFjayB0byAxLlxuXG4gIGlmICgheCB8fCAhTnVtYmVyLmlzRmluaXRlKHgpKSB7XG4gICAgeCA9IDE7XG4gIH1cbiAgaWYgKCF5IHx8ICFOdW1iZXIuaXNGaW5pdGUoeSkpIHtcbiAgICB5ID0gMTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5jb25zdCBub09mZnNldHMgPSAvKiNfX1BVUkVfXyovY3JlYXRlQ29vcmRzKDApO1xuZnVuY3Rpb24gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgaWYgKCFpc1dlYktpdCgpIHx8ICF3aW4udmlzdWFsVmlld3BvcnQpIHtcbiAgICByZXR1cm4gbm9PZmZzZXRzO1xuICB9XG4gIHJldHVybiB7XG4gICAgeDogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQsXG4gICAgeTogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcFxuICB9O1xufVxuZnVuY3Rpb24gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhlbGVtZW50LCBpc0ZpeGVkLCBmbG9hdGluZ09mZnNldFBhcmVudCkge1xuICBpZiAoaXNGaXhlZCA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZCA9IGZhbHNlO1xuICB9XG4gIGlmICghZmxvYXRpbmdPZmZzZXRQYXJlbnQgfHwgaXNGaXhlZCAmJiBmbG9hdGluZ09mZnNldFBhcmVudCAhPT0gZ2V0V2luZG93KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBpc0ZpeGVkO1xufVxuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgaW5jbHVkZVNjYWxlLCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuICBpZiAoaXNGaXhlZFN0cmF0ZWd5ID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkU3RyYXRlZ3kgPSBmYWxzZTtcbiAgfVxuICBjb25zdCBjbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGxldCBzY2FsZSA9IGNyZWF0ZUNvb3JkcygxKTtcbiAgaWYgKGluY2x1ZGVTY2FsZSkge1xuICAgIGlmIChvZmZzZXRQYXJlbnQpIHtcbiAgICAgIGlmIChpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgICBzY2FsZSA9IGdldFNjYWxlKG9mZnNldFBhcmVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUoZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHZpc3VhbE9mZnNldHMgPSBzaG91bGRBZGRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQsIGlzRml4ZWRTdHJhdGVneSwgb2Zmc2V0UGFyZW50KSA/IGdldFZpc3VhbE9mZnNldHMoZG9tRWxlbWVudCkgOiBjcmVhdGVDb29yZHMoMCk7XG4gIGxldCB4ID0gKGNsaWVudFJlY3QubGVmdCArIHZpc3VhbE9mZnNldHMueCkgLyBzY2FsZS54O1xuICBsZXQgeSA9IChjbGllbnRSZWN0LnRvcCArIHZpc3VhbE9mZnNldHMueSkgLyBzY2FsZS55O1xuICBsZXQgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoIC8gc2NhbGUueDtcbiAgbGV0IGhlaWdodCA9IGNsaWVudFJlY3QuaGVpZ2h0IC8gc2NhbGUueTtcbiAgaWYgKGRvbUVsZW1lbnQpIHtcbiAgICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZG9tRWxlbWVudCk7XG4gICAgY29uc3Qgb2Zmc2V0V2luID0gb2Zmc2V0UGFyZW50ICYmIGlzRWxlbWVudChvZmZzZXRQYXJlbnQpID8gZ2V0V2luZG93KG9mZnNldFBhcmVudCkgOiBvZmZzZXRQYXJlbnQ7XG4gICAgbGV0IGN1cnJlbnRXaW4gPSB3aW47XG4gICAgbGV0IGN1cnJlbnRJRnJhbWUgPSBjdXJyZW50V2luLmZyYW1lRWxlbWVudDtcbiAgICB3aGlsZSAoY3VycmVudElGcmFtZSAmJiBvZmZzZXRQYXJlbnQgJiYgb2Zmc2V0V2luICE9PSBjdXJyZW50V2luKSB7XG4gICAgICBjb25zdCBpZnJhbWVTY2FsZSA9IGdldFNjYWxlKGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY29uc3QgaWZyYW1lUmVjdCA9IGN1cnJlbnRJRnJhbWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY29uc3QgbGVmdCA9IGlmcmFtZVJlY3QubGVmdCArIChjdXJyZW50SUZyYW1lLmNsaWVudExlZnQgKyBwYXJzZUZsb2F0KGNzcy5wYWRkaW5nTGVmdCkpICogaWZyYW1lU2NhbGUueDtcbiAgICAgIGNvbnN0IHRvcCA9IGlmcmFtZVJlY3QudG9wICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50VG9wICsgcGFyc2VGbG9hdChjc3MucGFkZGluZ1RvcCkpICogaWZyYW1lU2NhbGUueTtcbiAgICAgIHggKj0gaWZyYW1lU2NhbGUueDtcbiAgICAgIHkgKj0gaWZyYW1lU2NhbGUueTtcbiAgICAgIHdpZHRoICo9IGlmcmFtZVNjYWxlLng7XG4gICAgICBoZWlnaHQgKj0gaWZyYW1lU2NhbGUueTtcbiAgICAgIHggKz0gbGVmdDtcbiAgICAgIHkgKz0gdG9wO1xuICAgICAgY3VycmVudFdpbiA9IGdldFdpbmRvdyhjdXJyZW50SUZyYW1lKTtcbiAgICAgIGN1cnJlbnRJRnJhbWUgPSBjdXJyZW50V2luLmZyYW1lRWxlbWVudDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3Qoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgdG9wTGF5ZXIgPSBlbGVtZW50cyA/IGlzVG9wTGF5ZXIoZWxlbWVudHMuZmxvYXRpbmcpIDogZmFsc2U7XG4gIGlmIChvZmZzZXRQYXJlbnQgPT09IGRvY3VtZW50RWxlbWVudCB8fCB0b3BMYXllciAmJiBpc0ZpeGVkKSB7XG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50KTtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUob2Zmc2V0UGFyZW50KTtcbiAgICAgIG9mZnNldHMueCA9IG9mZnNldFJlY3QueCArIG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogcmVjdC53aWR0aCAqIHNjYWxlLngsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCAqIHNjYWxlLnksXG4gICAgeDogcmVjdC54ICogc2NhbGUueCAtIHNjcm9sbC5zY3JvbGxMZWZ0ICogc2NhbGUueCArIG9mZnNldHMueCxcbiAgICB5OiByZWN0LnkgKiBzY2FsZS55IC0gc2Nyb2xsLnNjcm9sbFRvcCAqIHNjYWxlLnkgKyBvZmZzZXRzLnlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdHMoZWxlbWVudCkge1xuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LmdldENsaWVudFJlY3RzKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQpIHtcbiAgLy8gSWYgPGh0bWw+IGhhcyBhIENTUyB3aWR0aCBncmVhdGVyIHRoYW4gdGhlIHZpZXdwb3J0LCB0aGVuIHRoaXMgd2lsbCBiZVxuICAvLyBpbmNvcnJlY3QgZm9yIFJUTC5cbiAgcmV0dXJuIGdldEJvdW5kaW5nQ2xpZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpLmxlZnQgKyBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpLnNjcm9sbExlZnQ7XG59XG5cbi8vIEdldHMgdGhlIGVudGlyZSBzaXplIG9mIHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50IGFyZWEsIGV2ZW4gZXh0ZW5kaW5nIG91dHNpZGVcbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUuXG5mdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpO1xuICBjb25zdCBib2R5ID0gZWxlbWVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpO1xuICBjb25zdCBoZWlnaHQgPSBtYXgoaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5jbGllbnRIZWlnaHQpO1xuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIGNvbnN0IHkgPSAtc2Nyb2xsLnNjcm9sbFRvcDtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSkuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpIC0gd2lkdGg7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICBsZXQgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICBsZXQgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIGxldCB4ID0gMDtcbiAgbGV0IHkgPSAwO1xuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcbiAgICB3aWR0aCA9IHZpc3VhbFZpZXdwb3J0LndpZHRoO1xuICAgIGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodDtcbiAgICBjb25zdCB2aXN1YWxWaWV3cG9ydEJhc2VkID0gaXNXZWJLaXQoKTtcbiAgICBpZiAoIXZpc3VhbFZpZXdwb3J0QmFzZWQgfHwgdmlzdWFsVmlld3BvcnRCYXNlZCAmJiBzdHJhdGVneSA9PT0gJ2ZpeGVkJykge1xuICAgICAgeCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQ7XG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuLy8gUmV0dXJucyB0aGUgaW5uZXIgY2xpZW50IHJlY3QsIHN1YnRyYWN0aW5nIHNjcm9sbGJhcnMgaWYgcHJlc2VudC5cbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgc3RyYXRlZ3kgPT09ICdmaXhlZCcpO1xuICBjb25zdCB0b3AgPSBjbGllbnRSZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICBjb25zdCBzY2FsZSA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCkgPyBnZXRTY2FsZShlbGVtZW50KSA6IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgd2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoICogc2NhbGUueDtcbiAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgKiBzY2FsZS55O1xuICBjb25zdCB4ID0gbGVmdCAqIHNjYWxlLng7XG4gIGNvbnN0IHkgPSB0b3AgKiBzY2FsZS55O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkge1xuICBsZXQgcmVjdDtcbiAgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICd2aWV3cG9ydCcpIHtcbiAgICByZWN0ID0gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIGlmIChjbGlwcGluZ0FuY2VzdG9yID09PSAnZG9jdW1lbnQnKSB7XG4gICAgcmVjdCA9IGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpO1xuICB9IGVsc2UgaWYgKGlzRWxlbWVudChjbGlwcGluZ0FuY2VzdG9yKSkge1xuICAgIHJlY3QgPSBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmlzdWFsT2Zmc2V0cyA9IGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCk7XG4gICAgcmVjdCA9IHtcbiAgICAgIC4uLmNsaXBwaW5nQW5jZXN0b3IsXG4gICAgICB4OiBjbGlwcGluZ0FuY2VzdG9yLnggLSB2aXN1YWxPZmZzZXRzLngsXG4gICAgICB5OiBjbGlwcGluZ0FuY2VzdG9yLnkgLSB2aXN1YWxPZmZzZXRzLnlcbiAgICB9O1xuICB9XG4gIHJldHVybiByZWN0VG9DbGllbnRSZWN0KHJlY3QpO1xufVxuZnVuY3Rpb24gaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIHN0b3BOb2RlKSB7XG4gIGNvbnN0IHBhcmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICBpZiAocGFyZW50Tm9kZSA9PT0gc3RvcE5vZGUgfHwgIWlzRWxlbWVudChwYXJlbnROb2RlKSB8fCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUocGFyZW50Tm9kZSkucG9zaXRpb24gPT09ICdmaXhlZCcgfHwgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKHBhcmVudE5vZGUsIHN0b3BOb2RlKTtcbn1cblxuLy8gQSBcImNsaXBwaW5nIGFuY2VzdG9yXCIgaXMgYW4gYG92ZXJmbG93YCBlbGVtZW50IHdpdGggdGhlIGNoYXJhY3RlcmlzdGljIG9mXG4vLyBjbGlwcGluZyAob3IgaGlkaW5nKSBjaGlsZCBlbGVtZW50cy4gVGhpcyByZXR1cm5zIGFsbCBjbGlwcGluZyBhbmNlc3RvcnNcbi8vIG9mIHRoZSBnaXZlbiBlbGVtZW50IHVwIHRoZSB0cmVlLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIGNhY2hlKSB7XG4gIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGNhY2hlLmdldChlbGVtZW50KTtcbiAgaWYgKGNhY2hlZFJlc3VsdCkge1xuICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gIH1cbiAgbGV0IHJlc3VsdCA9IGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnQsIFtdLCBmYWxzZSkuZmlsdGVyKGVsID0+IGlzRWxlbWVudChlbCkgJiYgZ2V0Tm9kZU5hbWUoZWwpICE9PSAnYm9keScpO1xuICBsZXQgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xuICBjb25zdCBlbGVtZW50SXNGaXhlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCc7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSA6IGVsZW1lbnQ7XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcbiAgd2hpbGUgKGlzRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShjdXJyZW50Tm9kZSkpIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7XG4gICAgY29uc3QgY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgPSBpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSk7XG4gICAgaWYgKCFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHNob3VsZERyb3BDdXJyZW50Tm9kZSA9IGVsZW1lbnRJc0ZpeGVkID8gIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmICFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA6ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJyAmJiAhIWN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlICYmIFsnYWJzb2x1dGUnLCAnZml4ZWQnXS5pbmNsdWRlcyhjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZS5wb3NpdGlvbikgfHwgaXNPdmVyZmxvd0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgY3VycmVudE5vZGUpO1xuICAgIGlmIChzaG91bGREcm9wQ3VycmVudE5vZGUpIHtcbiAgICAgIC8vIERyb3Agbm9uLWNvbnRhaW5pbmcgYmxvY2tzLlxuICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihhbmNlc3RvciA9PiBhbmNlc3RvciAhPT0gY3VycmVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZWNvcmQgbGFzdCBjb250YWluaW5nIGJsb2NrIGZvciBuZXh0IGl0ZXJhdGlvbi5cbiAgICAgIGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gY29tcHV0ZWRTdHlsZTtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICBjYWNoZS5zZXQoZWxlbWVudCwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gR2V0cyB0aGUgbWF4aW11bSBhcmVhIHRoYXQgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiBkdWUgdG8gYW55IG51bWJlciBvZlxuLy8gY2xpcHBpbmcgYW5jZXN0b3JzLlxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KF9yZWYpIHtcbiAgbGV0IHtcbiAgICBlbGVtZW50LFxuICAgIGJvdW5kYXJ5LFxuICAgIHJvb3RCb3VuZGFyeSxcbiAgICBzdHJhdGVneVxuICB9ID0gX3JlZjtcbiAgY29uc3QgZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ0FuY2VzdG9ycycgPyBpc1RvcExheWVyKGVsZW1lbnQpID8gW10gOiBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMoZWxlbWVudCwgdGhpcy5fYykgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICBjb25zdCBjbGlwcGluZ0FuY2VzdG9ycyA9IFsuLi5lbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMsIHJvb3RCb3VuZGFyeV07XG4gIGNvbnN0IGZpcnN0Q2xpcHBpbmdBbmNlc3RvciA9IGNsaXBwaW5nQW5jZXN0b3JzWzBdO1xuICBjb25zdCBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ0FuY2VzdG9ycy5yZWR1Y2UoKGFjY1JlY3QsIGNsaXBwaW5nQW5jZXN0b3IpID0+IHtcbiAgICBjb25zdCByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KTtcbiAgICBhY2NSZWN0LnRvcCA9IG1heChyZWN0LnRvcCwgYWNjUmVjdC50b3ApO1xuICAgIGFjY1JlY3QucmlnaHQgPSBtaW4ocmVjdC5yaWdodCwgYWNjUmVjdC5yaWdodCk7XG4gICAgYWNjUmVjdC5ib3R0b20gPSBtaW4ocmVjdC5ib3R0b20sIGFjY1JlY3QuYm90dG9tKTtcbiAgICBhY2NSZWN0LmxlZnQgPSBtYXgocmVjdC5sZWZ0LCBhY2NSZWN0LmxlZnQpO1xuICAgIHJldHVybiBhY2NSZWN0O1xuICB9LCBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgZmlyc3RDbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiBjbGlwcGluZ1JlY3QucmlnaHQgLSBjbGlwcGluZ1JlY3QubGVmdCxcbiAgICBoZWlnaHQ6IGNsaXBwaW5nUmVjdC5ib3R0b20gLSBjbGlwcGluZ1JlY3QudG9wLFxuICAgIHg6IGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIHk6IGNsaXBwaW5nUmVjdC50b3BcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGVsZW1lbnQsIG9mZnNldFBhcmVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBpc0ZpeGVkID0gc3RyYXRlZ3kgPT09ICdmaXhlZCc7XG4gIGNvbnN0IHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcbiAgbGV0IHNjcm9sbCA9IHtcbiAgICBzY3JvbGxMZWZ0OiAwLFxuICAgIHNjcm9sbFRvcDogMFxuICB9O1xuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xuICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgfHwgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkKSB7XG4gICAgaWYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgIT09ICdib2R5JyB8fCBpc092ZXJmbG93RWxlbWVudChkb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKG9mZnNldFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfSBlbHNlIGlmIChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIG9mZnNldHMueCA9IGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgY29uc3QgeCA9IHJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gb2Zmc2V0cy54O1xuICBjb25zdCB5ID0gcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55O1xuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeSxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGljUG9zaXRpb25lZChlbGVtZW50KSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJztcbn1cblxuZnVuY3Rpb24gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChwb2x5ZmlsbCkge1xuICAgIHJldHVybiBwb2x5ZmlsbChlbGVtZW50KTtcbiAgfVxuICByZXR1cm4gZWxlbWVudC5vZmZzZXRQYXJlbnQ7XG59XG5cbi8vIEdldHMgdGhlIGNsb3Nlc3QgYW5jZXN0b3IgcG9zaXRpb25lZCBlbGVtZW50LiBIYW5kbGVzIHNvbWUgZWRnZSBjYXNlcyxcbi8vIHN1Y2ggYXMgdGFibGUgYW5jZXN0b3JzIGFuZCBjcm9zcyBicm93c2VyIGJ1Z3MuXG5mdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCwgcG9seWZpbGwpIHtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICBpZiAoaXNUb3BMYXllcihlbGVtZW50KSkge1xuICAgIHJldHVybiB3aW47XG4gIH1cbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgbGV0IHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gICAgd2hpbGUgKHN2Z09mZnNldFBhcmVudCAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKHN2Z09mZnNldFBhcmVudCkpIHtcbiAgICAgIGlmIChpc0VsZW1lbnQoc3ZnT2Zmc2V0UGFyZW50KSAmJiAhaXNTdGF0aWNQb3NpdGlvbmVkKHN2Z09mZnNldFBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHN2Z09mZnNldFBhcmVudDtcbiAgICAgIH1cbiAgICAgIHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoc3ZnT2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBsZXQgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCk7XG4gIHdoaWxlIChvZmZzZXRQYXJlbnQgJiYgaXNUYWJsZUVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50KSkge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50LCBwb2x5ZmlsbCk7XG4gIH1cbiAgaWYgKG9mZnNldFBhcmVudCAmJiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUob2Zmc2V0UGFyZW50KSAmJiBpc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50KSAmJiAhaXNDb250YWluaW5nQmxvY2sob2Zmc2V0UGFyZW50KSkge1xuICAgIHJldHVybiB3aW47XG4gIH1cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luO1xufVxuXG5jb25zdCBnZXRFbGVtZW50UmVjdHMgPSBhc3luYyBmdW5jdGlvbiAoZGF0YSkge1xuICBjb25zdCBnZXRPZmZzZXRQYXJlbnRGbiA9IHRoaXMuZ2V0T2Zmc2V0UGFyZW50IHx8IGdldE9mZnNldFBhcmVudDtcbiAgY29uc3QgZ2V0RGltZW5zaW9uc0ZuID0gdGhpcy5nZXREaW1lbnNpb25zO1xuICBjb25zdCBmbG9hdGluZ0RpbWVuc2lvbnMgPSBhd2FpdCBnZXREaW1lbnNpb25zRm4oZGF0YS5mbG9hdGluZyk7XG4gIHJldHVybiB7XG4gICAgcmVmZXJlbmNlOiBnZXRSZWN0UmVsYXRpdmVUb09mZnNldFBhcmVudChkYXRhLnJlZmVyZW5jZSwgYXdhaXQgZ2V0T2Zmc2V0UGFyZW50Rm4oZGF0YS5mbG9hdGluZyksIGRhdGEuc3RyYXRlZ3kpLFxuICAgIGZsb2F0aW5nOiB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICAgIHdpZHRoOiBmbG9hdGluZ0RpbWVuc2lvbnMud2lkdGgsXG4gICAgICBoZWlnaHQ6IGZsb2F0aW5nRGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBpc1JUTChlbGVtZW50KSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpcmVjdGlvbiA9PT0gJ3J0bCc7XG59XG5cbmNvbnN0IHBsYXRmb3JtID0ge1xuICBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCxcbiAgZ2V0RG9jdW1lbnRFbGVtZW50LFxuICBnZXRDbGlwcGluZ1JlY3QsXG4gIGdldE9mZnNldFBhcmVudCxcbiAgZ2V0RWxlbWVudFJlY3RzLFxuICBnZXRDbGllbnRSZWN0cyxcbiAgZ2V0RGltZW5zaW9ucyxcbiAgZ2V0U2NhbGUsXG4gIGlzRWxlbWVudCxcbiAgaXNSVExcbn07XG5cbi8vIGh0dHBzOi8vc2FtdGhvci5hdS8yMDIxL29ic2VydmluZy1kb20vXG5mdW5jdGlvbiBvYnNlcnZlTW92ZShlbGVtZW50LCBvbk1vdmUpIHtcbiAgbGV0IGlvID0gbnVsbDtcbiAgbGV0IHRpbWVvdXRJZDtcbiAgY29uc3Qgcm9vdCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICB2YXIgX2lvO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgIChfaW8gPSBpbykgPT0gbnVsbCB8fCBfaW8uZGlzY29ubmVjdCgpO1xuICAgIGlvID0gbnVsbDtcbiAgfVxuICBmdW5jdGlvbiByZWZyZXNoKHNraXAsIHRocmVzaG9sZCkge1xuICAgIGlmIChza2lwID09PSB2b2lkIDApIHtcbiAgICAgIHNraXAgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRocmVzaG9sZCA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJlc2hvbGQgPSAxO1xuICAgIH1cbiAgICBjbGVhbnVwKCk7XG4gICAgY29uc3Qge1xuICAgICAgbGVmdCxcbiAgICAgIHRvcCxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0XG4gICAgfSA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYgKCFza2lwKSB7XG4gICAgICBvbk1vdmUoKTtcbiAgICB9XG4gICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluc2V0VG9wID0gZmxvb3IodG9wKTtcbiAgICBjb25zdCBpbnNldFJpZ2h0ID0gZmxvb3Iocm9vdC5jbGllbnRXaWR0aCAtIChsZWZ0ICsgd2lkdGgpKTtcbiAgICBjb25zdCBpbnNldEJvdHRvbSA9IGZsb29yKHJvb3QuY2xpZW50SGVpZ2h0IC0gKHRvcCArIGhlaWdodCkpO1xuICAgIGNvbnN0IGluc2V0TGVmdCA9IGZsb29yKGxlZnQpO1xuICAgIGNvbnN0IHJvb3RNYXJnaW4gPSAtaW5zZXRUb3AgKyBcInB4IFwiICsgLWluc2V0UmlnaHQgKyBcInB4IFwiICsgLWluc2V0Qm90dG9tICsgXCJweCBcIiArIC1pbnNldExlZnQgKyBcInB4XCI7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHJvb3RNYXJnaW4sXG4gICAgICB0aHJlc2hvbGQ6IG1heCgwLCBtaW4oMSwgdGhyZXNob2xkKSkgfHwgMVxuICAgIH07XG4gICAgbGV0IGlzRmlyc3RVcGRhdGUgPSB0cnVlO1xuICAgIGZ1bmN0aW9uIGhhbmRsZU9ic2VydmUoZW50cmllcykge1xuICAgICAgY29uc3QgcmF0aW8gPSBlbnRyaWVzWzBdLmludGVyc2VjdGlvblJhdGlvO1xuICAgICAgaWYgKHJhdGlvICE9PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgaWYgKCFpc0ZpcnN0VXBkYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJhdGlvKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHJlZmVyZW5jZSBpcyBjbGlwcGVkLCB0aGUgcmF0aW8gaXMgMC4gVGhyb3R0bGUgdGhlIHJlZnJlc2hcbiAgICAgICAgICAvLyB0byBwcmV2ZW50IGFuIGluZmluaXRlIGxvb3Agb2YgdXBkYXRlcy5cbiAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHJlZnJlc2goZmFsc2UsIDFlLTcpO1xuICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlZnJlc2goZmFsc2UsIHJhdGlvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaXNGaXJzdFVwZGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE9sZGVyIGJyb3dzZXJzIGRvbid0IHN1cHBvcnQgYSBgZG9jdW1lbnRgIGFzIHRoZSByb290IGFuZCB3aWxsIHRocm93IGFuXG4gICAgLy8gZXJyb3IuXG4gICAgdHJ5IHtcbiAgICAgIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGhhbmRsZU9ic2VydmUsIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgLy8gSGFuZGxlIDxpZnJhbWU+c1xuICAgICAgICByb290OiByb290Lm93bmVyRG9jdW1lbnRcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGhhbmRsZU9ic2VydmUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpby5vYnNlcnZlKGVsZW1lbnQpO1xuICB9XG4gIHJlZnJlc2godHJ1ZSk7XG4gIHJldHVybiBjbGVhbnVwO1xufVxuXG4vKipcbiAqIEF1dG9tYXRpY2FsbHkgdXBkYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgd2hlbiBuZWNlc3NhcnkuXG4gKiBTaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpcyBtb3VudGVkIG9uIHRoZSBET00gb3JcbiAqIHZpc2libGUgb24gdGhlIHNjcmVlbi5cbiAqIEByZXR1cm5zIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBzaG91bGQgYmUgaW52b2tlZCB3aGVuIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzXG4gKiByZW1vdmVkIGZyb20gdGhlIERPTSBvciBoaWRkZW4gZnJvbSB0aGUgc2NyZWVuLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9VcGRhdGVcbiAqL1xuZnVuY3Rpb24gYXV0b1VwZGF0ZShyZWZlcmVuY2UsIGZsb2F0aW5nLCB1cGRhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgYW5jZXN0b3JTY3JvbGwgPSB0cnVlLFxuICAgIGFuY2VzdG9yUmVzaXplID0gdHJ1ZSxcbiAgICBlbGVtZW50UmVzaXplID0gdHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSAnZnVuY3Rpb24nLFxuICAgIGxheW91dFNoaWZ0ID0gdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyID09PSAnZnVuY3Rpb24nLFxuICAgIGFuaW1hdGlvbkZyYW1lID0gZmFsc2VcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHJlZmVyZW5jZUVsID0gdW53cmFwRWxlbWVudChyZWZlcmVuY2UpO1xuICBjb25zdCBhbmNlc3RvcnMgPSBhbmNlc3RvclNjcm9sbCB8fCBhbmNlc3RvclJlc2l6ZSA/IFsuLi4ocmVmZXJlbmNlRWwgPyBnZXRPdmVyZmxvd0FuY2VzdG9ycyhyZWZlcmVuY2VFbCkgOiBbXSksIC4uLmdldE92ZXJmbG93QW5jZXN0b3JzKGZsb2F0aW5nKV0gOiBbXTtcbiAgYW5jZXN0b3JzLmZvckVhY2goYW5jZXN0b3IgPT4ge1xuICAgIGFuY2VzdG9yU2Nyb2xsICYmIGFuY2VzdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGFuY2VzdG9yUmVzaXplICYmIGFuY2VzdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSk7XG4gIH0pO1xuICBjb25zdCBjbGVhbnVwSW8gPSByZWZlcmVuY2VFbCAmJiBsYXlvdXRTaGlmdCA/IG9ic2VydmVNb3ZlKHJlZmVyZW5jZUVsLCB1cGRhdGUpIDogbnVsbDtcbiAgbGV0IHJlb2JzZXJ2ZUZyYW1lID0gLTE7XG4gIGxldCByZXNpemVPYnNlcnZlciA9IG51bGw7XG4gIGlmIChlbGVtZW50UmVzaXplKSB7XG4gICAgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoX3JlZiA9PiB7XG4gICAgICBsZXQgW2ZpcnN0RW50cnldID0gX3JlZjtcbiAgICAgIGlmIChmaXJzdEVudHJ5ICYmIGZpcnN0RW50cnkudGFyZ2V0ID09PSByZWZlcmVuY2VFbCAmJiByZXNpemVPYnNlcnZlcikge1xuICAgICAgICAvLyBQcmV2ZW50IHVwZGF0ZSBsb29wcyB3aGVuIHVzaW5nIHRoZSBgc2l6ZWAgbWlkZGxld2FyZS5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8xNzQwXG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShmbG9hdGluZyk7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJlb2JzZXJ2ZUZyYW1lKTtcbiAgICAgICAgcmVvYnNlcnZlRnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHZhciBfcmVzaXplT2JzZXJ2ZXI7XG4gICAgICAgICAgKF9yZXNpemVPYnNlcnZlciA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB1cGRhdGUoKTtcbiAgICB9KTtcbiAgICBpZiAocmVmZXJlbmNlRWwgJiYgIWFuaW1hdGlvbkZyYW1lKSB7XG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHJlZmVyZW5jZUVsKTtcbiAgICB9XG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShmbG9hdGluZyk7XG4gIH1cbiAgbGV0IGZyYW1lSWQ7XG4gIGxldCBwcmV2UmVmUmVjdCA9IGFuaW1hdGlvbkZyYW1lID8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHJlZmVyZW5jZSkgOiBudWxsO1xuICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICBmcmFtZUxvb3AoKTtcbiAgfVxuICBmdW5jdGlvbiBmcmFtZUxvb3AoKSB7XG4gICAgY29uc3QgbmV4dFJlZlJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QocmVmZXJlbmNlKTtcbiAgICBpZiAocHJldlJlZlJlY3QgJiYgKG5leHRSZWZSZWN0LnggIT09IHByZXZSZWZSZWN0LnggfHwgbmV4dFJlZlJlY3QueSAhPT0gcHJldlJlZlJlY3QueSB8fCBuZXh0UmVmUmVjdC53aWR0aCAhPT0gcHJldlJlZlJlY3Qud2lkdGggfHwgbmV4dFJlZlJlY3QuaGVpZ2h0ICE9PSBwcmV2UmVmUmVjdC5oZWlnaHQpKSB7XG4gICAgICB1cGRhdGUoKTtcbiAgICB9XG4gICAgcHJldlJlZlJlY3QgPSBuZXh0UmVmUmVjdDtcbiAgICBmcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lTG9vcCk7XG4gIH1cbiAgdXBkYXRlKCk7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgdmFyIF9yZXNpemVPYnNlcnZlcjI7XG4gICAgYW5jZXN0b3JzLmZvckVhY2goYW5jZXN0b3IgPT4ge1xuICAgICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKTtcbiAgICAgIGFuY2VzdG9yUmVzaXplICYmIGFuY2VzdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSk7XG4gICAgfSk7XG4gICAgY2xlYW51cElvID09IG51bGwgfHwgY2xlYW51cElvKCk7XG4gICAgKF9yZXNpemVPYnNlcnZlcjIgPSByZXNpemVPYnNlcnZlcikgPT0gbnVsbCB8fCBfcmVzaXplT2JzZXJ2ZXIyLmRpc2Nvbm5lY3QoKTtcbiAgICByZXNpemVPYnNlcnZlciA9IG51bGw7XG4gICAgaWYgKGFuaW1hdGlvbkZyYW1lKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZUlkKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5jb25zdCBkZXRlY3RPdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93JDE7XG5cbi8qKlxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcbiAqIHNwZWNpZmllZCBheGVzLlxuICogQSBudW1iZXIgKHNob3J0aGFuZCBmb3IgYG1haW5BeGlzYCBvciBkaXN0YW5jZSksIG9yIGFuIGF4ZXMgY29uZmlndXJhdGlvblxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0XG4gKi9cbmNvbnN0IG9mZnNldCA9IG9mZnNldCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBjaG9vc2luZyB0aGUgcGxhY2VtZW50XG4gKiB0aGF0IGhhcyB0aGUgbW9zdCBzcGFjZSBhdmFpbGFibGUgYXV0b21hdGljYWxseSwgd2l0aG91dCBuZWVkaW5nIHRvIHNwZWNpZnkgYVxuICogcHJlZmVycmVkIHBsYWNlbWVudC4gQWx0ZXJuYXRpdmUgdG8gYGZsaXBgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9QbGFjZW1lbnRcbiAqL1xuY29uc3QgYXV0b1BsYWNlbWVudCA9IGF1dG9QbGFjZW1lbnQkMTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cbiAqIGtlZXAgaXQgaW4gdmlldyB3aGVuIGl0IHdpbGwgb3ZlcmZsb3cgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0XG4gKi9cbmNvbnN0IHNoaWZ0ID0gc2hpZnQkMTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgZmxpcHBpbmcgdGhlIGBwbGFjZW1lbnRgXG4gKiBpbiBvcmRlciB0byBrZWVwIGl0IGluIHZpZXcgd2hlbiB0aGUgcHJlZmVycmVkIHBsYWNlbWVudChzKSB3aWxsIG92ZXJmbG93IHRoZVxuICogY2xpcHBpbmcgYm91bmRhcnkuIEFsdGVybmF0aXZlIHRvIGBhdXRvUGxhY2VtZW50YC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwXG4gKi9cbmNvbnN0IGZsaXAgPSBmbGlwJDE7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0aGF0IGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IOKAlFxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxuICogd2lkdGggb2YgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NpemVcbiAqL1xuY29uc3Qgc2l6ZSA9IHNpemUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXG4gKiB3aGVuIGl0IGlzIG5vdCBpbiB0aGUgc2FtZSBjbGlwcGluZyBjb250ZXh0IGFzIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXG4gKi9cbmNvbnN0IGhpZGUgPSBoaWRlJDE7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gYXJyb3ckMTtcblxuLyoqXG4gKiBQcm92aWRlcyBpbXByb3ZlZCBwb3NpdGlvbmluZyBmb3IgaW5saW5lIHJlZmVyZW5jZSBlbGVtZW50cyB0aGF0IGNhbiBzcGFuXG4gKiBvdmVyIG11bHRpcGxlIGxpbmVzLCBzdWNoIGFzIGh5cGVybGlua3Mgb3IgcmFuZ2Ugc2VsZWN0aW9ucy5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9pbmxpbmVcbiAqL1xuY29uc3QgaW5saW5lID0gaW5saW5lJDE7XG5cbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBsaW1pdFNoaWZ0JDE7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIHRoYXQgd2lsbCBwbGFjZSB0aGUgZmxvYXRpbmcgZWxlbWVudFxuICogbmV4dCB0byBhIGdpdmVuIHJlZmVyZW5jZSBlbGVtZW50LlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSAocmVmZXJlbmNlLCBmbG9hdGluZywgb3B0aW9ucykgPT4ge1xuICAvLyBUaGlzIGNhY2hlcyB0aGUgZXhwZW5zaXZlIGBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnNgIGZ1bmN0aW9uIHNvIHRoYXRcbiAgLy8gbXVsdGlwbGUgbGlmZWN5Y2xlIHJlc2V0cyByZS11c2UgdGhlIHNhbWUgcmVzdWx0LiBJdCBvbmx5IGxpdmVzIGZvciBhXG4gIC8vIHNpbmdsZSBjYWxsLiBJZiBvdGhlciBmdW5jdGlvbnMgYmVjb21lIGV4cGVuc2l2ZSwgd2UgY2FuIGFkZCB0aGVtIGFzIHdlbGwuXG4gIGNvbnN0IGNhY2hlID0gbmV3IE1hcCgpO1xuICBjb25zdCBtZXJnZWRPcHRpb25zID0ge1xuICAgIHBsYXRmb3JtLFxuICAgIC4uLm9wdGlvbnNcbiAgfTtcbiAgY29uc3QgcGxhdGZvcm1XaXRoQ2FjaGUgPSB7XG4gICAgLi4ubWVyZ2VkT3B0aW9ucy5wbGF0Zm9ybSxcbiAgICBfYzogY2FjaGVcbiAgfTtcbiAgcmV0dXJuIGNvbXB1dGVQb3NpdGlvbiQxKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLFxuICAgIHBsYXRmb3JtOiBwbGF0Zm9ybVdpdGhDYWNoZVxuICB9KTtcbn07XG5cbmV4cG9ydCB7IGFycm93LCBhdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBmbGlwLCBoaWRlLCBpbmxpbmUsIGxpbWl0U2hpZnQsIG9mZnNldCwgcGxhdGZvcm0sIHNoaWZ0LCBzaXplIH07XG4iLCIvKipcbiAqIFBhcnNlcyBGbG9hdGluZyBVSSBwbGFjZW1lbnQgYW5kIHJldHVybnMgdGhlIGRpZmZlcmVudCBjb21wb25lbnRzXG4gKiBAcGFyYW0gcGxhY2VtZW50IC0gdGhlIGZsb2F0aW5nIHVpIHBsYWNlbWVudCAoaS5lLiBib3R0b20tc3RhcnQpXG4gKlxuICogQHJldHVybnMgc2lkZSBhbmQgYWxpZ25tZW50IGNvbXBvbmVudHMgb2YgdGhlIHBsYWNlbWVudFxuICovIGV4cG9ydCBmdW5jdGlvbiBwYXJzZUZsb2F0aW5nVUlQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gICAgY29uc3QgdG9rZW5zID0gcGxhY2VtZW50LnNwbGl0KCctJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2lkZTogdG9rZW5zWzBdLFxuICAgICAgICBhbGlnbm1lbnQ6IHRva2Vuc1sxXVxuICAgIH07XG59XG4iLCIvKipcbiAqIFJldHVybnMgdGhlIHBhcmVudCBub2RlIG9yIHRoZSBob3N0IG9mIHRoZSBub2RlIGFyZ3VtZW50LlxuICogQHBhcmFtIG5vZGUgLSBET00gbm9kZS5cbiAqIEByZXR1cm5zIC0gcGFyZW50IERPTSBub2RlLlxuICovIGV4cG9ydCBjb25zdCBnZXRQYXJlbnROb2RlID0gKG5vZGUpPT57XG4gICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICdIVE1MJykge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlIHx8IG5vZGUuaG9zdDtcbn07XG4vKipcbiAqIFJldHVybnMgQ1NTIHN0eWxlcyBvZiB0aGUgZ2l2ZW4gbm9kZS5cbiAqIEBwYXJhbSBub2RlIC0gRE9NIG5vZGUuXG4gKiBAcmV0dXJucyAtIENTUyBzdHlsZXMuXG4gKi8gY29uc3QgZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5ID0gKG5vZGUpPT57XG4gICAgdmFyIF9ub2RlX293bmVyRG9jdW1lbnQ7XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgIT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB3aW5kb3cgPSAoX25vZGVfb3duZXJEb2N1bWVudCA9IG5vZGUub3duZXJEb2N1bWVudCkgPT09IG51bGwgfHwgX25vZGVfb3duZXJEb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGVfb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSwgbnVsbCk7XG59O1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBzY3JvbGxhYmxlIHBhcmVudCBvZiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIEBwYXJhbSBub2RlIC0gRE9NIG5vZGUuXG4gKiBAcmV0dXJucyAtIHRoZSBmaXJzdCBzY3JvbGxhYmxlIHBhcmVudC5cbiAqLyBleHBvcnQgY29uc3QgZ2V0U2Nyb2xsUGFyZW50ID0gKG5vZGUpPT57XG4gICAgLy8gUmV0dXJuIGJvZHksIGBnZXRTY3JvbGxgIHdpbGwgdGFrZSBjYXJlIHRvIGdldCB0aGUgY29ycmVjdCBgc2Nyb2xsVG9wYCBmcm9tIGl0XG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG5vZGUgJiYgZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBpZiAoIXBhcmVudE5vZGUpIHJldHVybiBkb2N1bWVudC5ib2R5O1xuICAgIHN3aXRjaChwYXJlbnROb2RlLm5vZGVOYW1lKXtcbiAgICAgICAgY2FzZSAnSFRNTCc6XG4gICAgICAgIGNhc2UgJ0JPRFknOlxuICAgICAgICAgICAgcmV0dXJuIHBhcmVudE5vZGUub3duZXJEb2N1bWVudC5ib2R5O1xuICAgICAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgICAgICAgICAgcmV0dXJuIHBhcmVudE5vZGUuYm9keTtcbiAgICB9XG4gICAgLy8gSWYgYW55IG9mIHRoZSBvdmVyZmxvdyBwcm9wcyBpcyBkZWZpbmVkIGZvciB0aGUgbm9kZSB0aGVuIHdlIHJldHVybiBpdCBhcyB0aGUgcGFyZW50XG4gICAgY29uc3QgeyBvdmVyZmxvdywgb3ZlcmZsb3dYLCBvdmVyZmxvd1kgfSA9IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShwYXJlbnROb2RlKTtcbiAgICBpZiAoLyhhdXRvfHNjcm9sbHxvdmVybGF5KS8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gICAgfVxuICAgIHJldHVybiBnZXRTY3JvbGxQYXJlbnQocGFyZW50Tm9kZSk7XG59O1xuZXhwb3J0IGNvbnN0IGhhc1Njcm9sbFBhcmVudCA9IChub2RlKT0+e1xuICAgIHZhciBfc2Nyb2xsUGFyZW50RWxlbWVudF9vd25lckRvY3VtZW50O1xuICAgIGNvbnN0IHNjcm9sbFBhcmVudEVsZW1lbnQgPSBnZXRTY3JvbGxQYXJlbnQobm9kZSk7XG4gICAgcmV0dXJuIHNjcm9sbFBhcmVudEVsZW1lbnQgPyBzY3JvbGxQYXJlbnRFbGVtZW50ICE9PSAoKF9zY3JvbGxQYXJlbnRFbGVtZW50X293bmVyRG9jdW1lbnQgPSBzY3JvbGxQYXJlbnRFbGVtZW50Lm93bmVyRG9jdW1lbnQpID09PSBudWxsIHx8IF9zY3JvbGxQYXJlbnRFbGVtZW50X293bmVyRG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9zY3JvbGxQYXJlbnRFbGVtZW50X293bmVyRG9jdW1lbnQuYm9keSkgOiBmYWxzZTtcbn07XG4iLCJpbXBvcnQgeyBnZXRTY3JvbGxQYXJlbnQgfSBmcm9tICcuL2dldFNjcm9sbFBhcmVudCc7XG4vKipcbiAqIEFsbG93cyB0byBtaW1pYyBhIGJlaGF2aW9yIGZyb20gVjEgb2YgUG9wcGVyIGFuZCBhY2NlcHQgYHdpbmRvd2AgYW5kIGBzY3JvbGxQYXJlbnRgIGFzIHN0cmluZ3MuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEJvdW5kYXJ5KGVsZW1lbnQsIGJvdW5kYXJ5KSB7XG4gICAgaWYgKGJvdW5kYXJ5ID09PSAnd2luZG93Jykge1xuICAgICAgICByZXR1cm4gZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICBpZiAoYm91bmRhcnkgPT09ICdjbGlwcGluZ1BhcmVudHMnKSB7XG4gICAgICAgIHJldHVybiAnY2xpcHBpbmdBbmNlc3RvcnMnO1xuICAgIH1cbiAgICBpZiAoYm91bmRhcnkgPT09ICdzY3JvbGxQYXJlbnQnKSB7XG4gICAgICAgIGxldCBib3VuZGFyaWVzTm9kZSA9IGdldFNjcm9sbFBhcmVudChlbGVtZW50KTtcbiAgICAgICAgaWYgKGJvdW5kYXJpZXNOb2RlLm5vZGVOYW1lID09PSAnQk9EWScpIHtcbiAgICAgICAgICAgIGJvdW5kYXJpZXNOb2RlID0gZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib3VuZGFyaWVzTm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIGJvdW5kYXJ5O1xufVxuIiwiLyoqXG4gKiBHZW5lcmFsbHkgd2hlbiBhZGRpbmcgYW4gYXJyb3cgdG8gcG9wcGVyLCBpdCdzIG5lY2Vzc2FyeSB0byBvZmZzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3BwZXIgYnkgdGhlXG4gKiBoZWlnaHQgb2YgdGhlIGFycm93LiBBIHNpbXBsZSB1dGlsaXR5IHRvIG1lcmdlIGEgcHJvdmlkZWQgb2Zmc2V0IHdpdGggYW4gYXJyb3cgaGVpZ2h0IHRvIHJldHVybiB0aGUgZmluYWwgb2Zmc2V0XG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gdXNlck9mZnNldCAtIFRoZSBvZmZzZXQgcHJvdmlkZWQgYnkgdGhlIHVzZXJcbiAqIEBwYXJhbSBhcnJvd0hlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIGFycm93IGluIHB4XG4gKiBAcmV0dXJucyBVc2VyIG9mZnNldCBhdWdtZW50ZWQgd2l0aCBhcnJvdyBoZWlnaHRcbiAqLyBleHBvcnQgZnVuY3Rpb24gbWVyZ2VBcnJvd09mZnNldCh1c2VyT2Zmc2V0LCBhcnJvd0hlaWdodCkge1xuICAgIGlmICh0eXBlb2YgdXNlck9mZnNldCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIGFkZEFycm93T2Zmc2V0KHVzZXJPZmZzZXQsIGFycm93SGVpZ2h0KTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB1c2VyT2Zmc2V0ID09PSAnb2JqZWN0JyAmJiB1c2VyT2Zmc2V0ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBhZGRBcnJvd09mZnNldCh1c2VyT2Zmc2V0LCBhcnJvd0hlaWdodCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdXNlck9mZnNldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gKG9mZnNldFBhcmFtcyk9PntcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHVzZXJPZmZzZXQob2Zmc2V0UGFyYW1zKTtcbiAgICAgICAgICAgIHJldHVybiBhZGRBcnJvd09mZnNldChvZmZzZXQsIGFycm93SGVpZ2h0KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWFpbkF4aXM6IGFycm93SGVpZ2h0XG4gICAgfTtcbn1cbmNvbnN0IGFkZEFycm93T2Zmc2V0ID0gKG9mZnNldCwgYXJyb3dIZWlnaHQpPT57XG4gICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYWluQXhpczogb2Zmc2V0ICsgYXJyb3dIZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIF9vZmZzZXRfbWFpbkF4aXM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2Zmc2V0LFxuICAgICAgICBtYWluQXhpczogKChfb2Zmc2V0X21haW5BeGlzID0gb2Zmc2V0Lm1haW5BeGlzKSAhPT0gbnVsbCAmJiBfb2Zmc2V0X21haW5BeGlzICE9PSB2b2lkIDAgPyBfb2Zmc2V0X21haW5BeGlzIDogMCkgKyBhcnJvd0hlaWdodFxuICAgIH07XG59O1xuIiwiZXhwb3J0IGZ1bmN0aW9uIHRvRmxvYXRpbmdVSVBhZGRpbmcocGFkZGluZywgaXNSdGwpIHtcbiAgICBpZiAodHlwZW9mIHBhZGRpbmcgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBwYWRkaW5nO1xuICAgIH1cbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQsIC4uLnZlcnRpY2FsUGFkZGluZyB9ID0gcGFkZGluZztcbiAgICBjb25zdCBwYWRkaW5nT2JqZWN0ID0gdmVydGljYWxQYWRkaW5nO1xuICAgIGNvbnN0IGxlZnQgPSBpc1J0bCA/ICdlbmQnIDogJ3N0YXJ0JztcbiAgICBjb25zdCByaWdodCA9IGlzUnRsID8gJ3N0YXJ0JyA6ICdlbmQnO1xuICAgIC8vIGFzc2lnbiBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgc2luY2UgdW5kZWZpbmVkIHZhbHVlcyBhcmUgYWN0dWFsbHkgaGFuZGxlZCBieSBmbG9hdGluZyBVSVxuICAgIC8vIFRPRE8gY3JlYXRlIGZsb2F0aW5nIFVJIGlzc3VlXG4gICAgaWYgKHBhZGRpbmdbbGVmdF0pIHtcbiAgICAgICAgcGFkZGluZ09iamVjdC5sZWZ0ID0gcGFkZGluZ1tsZWZ0XTtcbiAgICB9XG4gICAgaWYgKHBhZGRpbmdbcmlnaHRdKSB7XG4gICAgICAgIHBhZGRpbmdPYmplY3QucmlnaHQgPSBwYWRkaW5nW3JpZ2h0XTtcbiAgICB9XG4gICAgcmV0dXJuIHBhZGRpbmdPYmplY3Q7XG59XG4iLCJjb25zdCBnZXRQb3NpdGlvbk1hcCA9IChydGwpPT4oe1xuICAgICAgICBhYm92ZTogJ3RvcCcsXG4gICAgICAgIGJlbG93OiAnYm90dG9tJyxcbiAgICAgICAgYmVmb3JlOiBydGwgPyAncmlnaHQnIDogJ2xlZnQnLFxuICAgICAgICBhZnRlcjogcnRsID8gJ2xlZnQnIDogJ3JpZ2h0J1xuICAgIH0pO1xuLy8gRmxvYXRpbmcgVUkgYXV0b21hdGljYWxseSBmbGlwcyBhbGlnbm1lbnRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMTU2M1xuY29uc3QgZ2V0QWxpZ25tZW50TWFwID0gKCk9Pih7XG4gICAgICAgIHN0YXJ0OiAnc3RhcnQnLFxuICAgICAgICBlbmQ6ICdlbmQnLFxuICAgICAgICB0b3A6ICdzdGFydCcsXG4gICAgICAgIGJvdHRvbTogJ2VuZCcsXG4gICAgICAgIGNlbnRlcjogdW5kZWZpbmVkXG4gICAgfSk7XG5jb25zdCBzaG91bGRBbGlnblRvQ2VudGVyID0gKHAsIGEpPT57XG4gICAgY29uc3QgcG9zaXRpb25lZFZlcnRpY2FsbHkgPSBwID09PSAnYWJvdmUnIHx8IHAgPT09ICdiZWxvdyc7XG4gICAgY29uc3QgYWxpZ25lZFZlcnRpY2FsbHkgPSBhID09PSAndG9wJyB8fCBhID09PSAnYm90dG9tJztcbiAgICByZXR1cm4gcG9zaXRpb25lZFZlcnRpY2FsbHkgJiYgYWxpZ25lZFZlcnRpY2FsbHkgfHwgIXBvc2l0aW9uZWRWZXJ0aWNhbGx5ICYmICFhbGlnbmVkVmVydGljYWxseTtcbn07XG4vKipcbiAqIE1hcHMgaW50ZXJuYWwgcG9zaXRpb25pbmcgdmFsdWVzIHRvIEZsb2F0aW5nIFVJIHBsYWNlbWVudFxuICogQHNlZSBwb3NpdGlvbmluZ0hlbHBlci50ZXN0LnRzIGZvciBleHBlY3RlZCBwbGFjZW1lbnQgdmFsdWVzXG4gKi8gZXhwb3J0IGNvbnN0IHRvRmxvYXRpbmdVSVBsYWNlbWVudCA9IChhbGlnbiwgcG9zaXRpb24sIHJ0bCk9PntcbiAgICBjb25zdCBhbGlnbm1lbnQgPSBzaG91bGRBbGlnblRvQ2VudGVyKHBvc2l0aW9uLCBhbGlnbikgPyAnY2VudGVyJyA6IGFsaWduO1xuICAgIGNvbnN0IGNvbXB1dGVkUG9zaXRpb24gPSBwb3NpdGlvbiAmJiBnZXRQb3NpdGlvbk1hcChydGwpW3Bvc2l0aW9uXTtcbiAgICBjb25zdCBjb21wdXRlZEFsaWdubWVudCA9IGFsaWdubWVudCAmJiBnZXRBbGlnbm1lbnRNYXAoKVthbGlnbm1lbnRdO1xuICAgIGlmIChjb21wdXRlZFBvc2l0aW9uICYmIGNvbXB1dGVkQWxpZ25tZW50KSB7XG4gICAgICAgIHJldHVybiBgJHtjb21wdXRlZFBvc2l0aW9ufS0ke2NvbXB1dGVkQWxpZ25tZW50fWA7XG4gICAgfVxuICAgIHJldHVybiBjb21wdXRlZFBvc2l0aW9uO1xufTtcbiIsImltcG9ydCB7IHBhcnNlRmxvYXRpbmdVSVBsYWNlbWVudCB9IGZyb20gJy4vcGFyc2VGbG9hdGluZ1VJUGxhY2VtZW50JztcbmNvbnN0IGdldFBvc2l0aW9uTWFwID0gKCk9Pih7XG4gICAgICAgIHRvcDogJ2Fib3ZlJyxcbiAgICAgICAgYm90dG9tOiAnYmVsb3cnLFxuICAgICAgICByaWdodDogJ2FmdGVyJyxcbiAgICAgICAgbGVmdDogJ2JlZm9yZSdcbiAgICB9KTtcbi8vIEZsb2F0aW5nIFVJIGF1dG9tYXRpY2FsbHkgZmxpcHMgYWxpZ25tZW50XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE1NjNcbmNvbnN0IGdldEFsaWdubWVudE1hcCA9IChwb3NpdGlvbik9PntcbiAgICBpZiAocG9zaXRpb24gPT09ICdhYm92ZScgfHwgcG9zaXRpb24gPT09ICdiZWxvdycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXJ0OiAnc3RhcnQnLFxuICAgICAgICAgICAgZW5kOiAnZW5kJ1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogJ3RvcCcsXG4gICAgICAgIGVuZDogJ2JvdHRvbSdcbiAgICB9O1xufTtcbi8qKlxuICogTWFwcyBGbG9hdGluZyBVSSBwbGFjZW1lbnQgdG8gcG9zaXRpb25pbmcgdmFsdWVzXG4gKiBAc2VlIHBvc2l0aW9uaW5nSGVscGVyLnRlc3QudHMgZm9yIGV4cGVjdGVkIHBsYWNlbWVudCB2YWx1ZXNcbiAqLyBleHBvcnQgY29uc3QgZnJvbUZsb2F0aW5nVUlQbGFjZW1lbnQgPSAocGxhY2VtZW50KT0+e1xuICAgIGNvbnN0IHsgc2lkZSwgYWxpZ25tZW50OiBmbG9hdGluZ1VJQWxpZ25tZW50IH0gPSBwYXJzZUZsb2F0aW5nVUlQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICBjb25zdCBwb3NpdGlvbiA9IGdldFBvc2l0aW9uTWFwKClbc2lkZV07XG4gICAgY29uc3QgYWxpZ25tZW50ID0gZmxvYXRpbmdVSUFsaWdubWVudCAmJiBnZXRBbGlnbm1lbnRNYXAocG9zaXRpb24pW2Zsb2F0aW5nVUlBbGlnbm1lbnRdO1xuICAgIHJldHVybiB7XG4gICAgICAgIHBvc2l0aW9uLFxuICAgICAgICBhbGlnbm1lbnRcbiAgICB9O1xufTtcbiIsIi8vIExvb2sgdXAgdGFibGUgZm9yIHNob3J0aGFuZCB0byBhdm9pZCBwYXJzaW5nIHN0cmluZ3NcbmNvbnN0IHNob3J0aGFuZExvb2t1cCA9IHtcbiAgICBhYm92ZToge1xuICAgICAgICBwb3NpdGlvbjogJ2Fib3ZlJyxcbiAgICAgICAgYWxpZ246ICdjZW50ZXInXG4gICAgfSxcbiAgICAnYWJvdmUtc3RhcnQnOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJvdmUnLFxuICAgICAgICBhbGlnbjogJ3N0YXJ0J1xuICAgIH0sXG4gICAgJ2Fib3ZlLWVuZCc6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYm92ZScsXG4gICAgICAgIGFsaWduOiAnZW5kJ1xuICAgIH0sXG4gICAgYmVsb3c6IHtcbiAgICAgICAgcG9zaXRpb246ICdiZWxvdycsXG4gICAgICAgIGFsaWduOiAnY2VudGVyJ1xuICAgIH0sXG4gICAgJ2JlbG93LXN0YXJ0Jzoge1xuICAgICAgICBwb3NpdGlvbjogJ2JlbG93JyxcbiAgICAgICAgYWxpZ246ICdzdGFydCdcbiAgICB9LFxuICAgICdiZWxvdy1lbmQnOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYmVsb3cnLFxuICAgICAgICBhbGlnbjogJ2VuZCdcbiAgICB9LFxuICAgIGJlZm9yZToge1xuICAgICAgICBwb3NpdGlvbjogJ2JlZm9yZScsXG4gICAgICAgIGFsaWduOiAnY2VudGVyJ1xuICAgIH0sXG4gICAgJ2JlZm9yZS10b3AnOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYmVmb3JlJyxcbiAgICAgICAgYWxpZ246ICd0b3AnXG4gICAgfSxcbiAgICAnYmVmb3JlLWJvdHRvbSc6IHtcbiAgICAgICAgcG9zaXRpb246ICdiZWZvcmUnLFxuICAgICAgICBhbGlnbjogJ2JvdHRvbSdcbiAgICB9LFxuICAgIGFmdGVyOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWZ0ZXInLFxuICAgICAgICBhbGlnbjogJ2NlbnRlcidcbiAgICB9LFxuICAgICdhZnRlci10b3AnOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWZ0ZXInLFxuICAgICAgICBhbGlnbjogJ3RvcCdcbiAgICB9LFxuICAgICdhZnRlci1ib3R0b20nOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWZ0ZXInLFxuICAgICAgICBhbGlnbjogJ2JvdHRvbSdcbiAgICB9XG59O1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQb3NpdGlvbmluZ1Nob3J0aGFuZChzaG9ydGhhbmQpIHtcbiAgICBpZiAoc2hvcnRoYW5kID09PSB1bmRlZmluZWQgfHwgc2hvcnRoYW5kID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzaG9ydGhhbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBzaG9ydGhhbmRMb29rdXBbc2hvcnRoYW5kXTtcbiAgICB9XG4gICAgcmV0dXJuIHNob3J0aGFuZDtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogQ3JlYXRlcyBhIE11dGFibGVSZWYgd2l0aCByZWYgY2hhbmdlIGNhbGxiYWNrLiBJcyB1c2VmdWwgYXMgUmVhY3QudXNlUmVmKCkgZG9lc24ndCBub3RpZnkgeW91IHdoZW4gaXRzIGNvbnRlbnRcbiAqIGNoYW5nZXMgYW5kIG11dGF0aW5nIHRoZSAuY3VycmVudCBwcm9wZXJ0eSBkb2Vzbid0IGNhdXNlIGEgcmUtcmVuZGVyLiBBbiBvcHQtb3V0IHdpbGwgYmUgdXNlIGEgY2FsbGJhY2sgcmVmIHZpYVxuICogUmVhY3QudXNlU3RhdGUoKSwgYnV0IGl0IHdpbGwgY2F1c2UgcmUtcmVuZGVycyBhbHdheXMuXG4gKlxuICogaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2hvb2tzLXJlZmVyZW5jZS5odG1sI3VzZXJlZlxuICogaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZWNhbGxiYWNrcmVmLS0tdG8tcmVwbGFjZS1yZWFjdHVzZXJlZlxuICpcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHJlZiB2YWx1ZVxuICogQHBhcmFtIGNhbGxiYWNrIC0gYSBjYWxsYmFjayB0byBydW4gd2hlbiB2YWx1ZSBjaGFuZ2VzXG4gKiBAcGFyYW0gc2tpcEluaXRpYWxSZXNvbHZlIC0gYSBmbGFnIHRvIHNraXAgYW4gaW5pdGlhbCByZWYgcmVwb3J0XG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlZiA9IHVzZUNhbGxiYWNrUmVmKDAsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IGNvbnNvbGUubG9nKG9sZFZhbHVlLCAnLT4nLCBuZXdWYWx1ZSk7XG4gKiByZWYuY3VycmVudCA9IDE7XG4gKiAvLyBwcmludHMgMCAtPiAxXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUNhbGxiYWNrUmVmKGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIHNraXBJbml0aWFsUmVzb2x2ZSkge1xuICAgIGNvbnN0IGlzRmlyc3QgPSBSZWFjdC51c2VSZWYodHJ1ZSk7XG4gICAgY29uc3QgW3JlZl0gPSBSZWFjdC51c2VTdGF0ZSgoKT0+KHtcbiAgICAgICAgICAgIC8vIHZhbHVlXG4gICAgICAgICAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxuICAgICAgICAgICAgLy8gbGFzdCBjYWxsYmFja1xuICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICAvLyBcIm1lbW9pemVkXCIgcHVibGljIGludGVyZmFjZVxuICAgICAgICAgICAgZmFjYWRlOiB7XG4gICAgICAgICAgICAgICAgZ2V0IGN1cnJlbnQgKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmLnZhbHVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0IGN1cnJlbnQgKHZhbHVlKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHJlZi52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3QgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChza2lwSW5pdGlhbFJlc29sdmUgJiYgaXNGaXJzdC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmNhbGxiYWNrKHZhbHVlLCBsYXN0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgaXNGaXJzdC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSwgW10pO1xuICAgIC8vIHVwZGF0ZSBjYWxsYmFja1xuICAgIHJlZi5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHJldHVybiByZWYuZmFjYWRlO1xufVxuIiwiLyoqXG4gKiBQcm9taXNlIG1pY3JvdGFzayBkZWJvdW5jZXIgdXNlZCBieSBQb3BwZXIuanMgdjJcbiAqIFRoaXMgaXMgbm8gbG9uZ2VyIGV4cG9ydGVkIGluIEZsb2F0aW5nIFVJIChQb3BwZXIuanMgdjMpXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvYmxvYi92Mi54L3NyYy91dGlscy9kZWJvdW5jZS5qc1xuICogQHBhcmFtIGZuIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBkZWJvdW5jZWRcbiAqLyBleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgICBsZXQgcGVuZGluZztcbiAgICByZXR1cm4gKCk9PntcbiAgICAgICAgaWYgKCFwZW5kaW5nKSB7XG4gICAgICAgICAgICBwZW5kaW5nID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZuKCkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBlbmRpbmc7XG4gICAgfTtcbn1cbiIsIi8qKlxuICogV3JpdGVzIGFsbCBET00gZWxlbWVudCB1cGRhdGVzIGFmdGVyIHBvc2l0aW9uIGlzIGNvbXB1dGVkXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHdyaXRlQXJyb3dVcGRhdGVzKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGFycm93LCBtaWRkbGV3YXJlRGF0YSB9ID0gb3B0aW9ucztcbiAgICBpZiAoIW1pZGRsZXdhcmVEYXRhLmFycm93IHx8ICFhcnJvdykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgeDogYXJyb3dYLCB5OiBhcnJvd1kgfSA9IG1pZGRsZXdhcmVEYXRhLmFycm93O1xuICAgIE9iamVjdC5hc3NpZ24oYXJyb3cuc3R5bGUsIHtcbiAgICAgICAgbGVmdDogYCR7YXJyb3dYfXB4YCxcbiAgICAgICAgdG9wOiBgJHthcnJvd1l9cHhgXG4gICAgfSk7XG59XG4iLCJpbXBvcnQgeyBEQVRBX1BPU0lUSU9OSU5HX0VTQ0FQRUQsIERBVEFfUE9TSVRJT05JTkdfSElEREVOLCBEQVRBX1BPU0lUSU9OSU5HX0lOVEVSU0VDVElORywgREFUQV9QT1NJVElPTklOR19QTEFDRU1FTlQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuLyoqXG4gKiBXcml0ZXMgYWxsIGNvbnRhaW5lciBlbGVtZW50IHBvc2l0aW9uIHVwZGF0ZXMgYWZ0ZXIgdGhlIHBvc2l0aW9uIGlzIGNvbXB1dGVkXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHdyaXRlQ29udGFpbmVyVXBkYXRlcyhvcHRpb25zKSB7XG4gICAgdmFyIF9taWRkbGV3YXJlRGF0YV9oaWRlLCBfbWlkZGxld2FyZURhdGFfaGlkZTEsIF9jb250YWluZXJfb3duZXJEb2N1bWVudF9kZWZhdWx0VmlldztcbiAgICBjb25zdCB7IGNvbnRhaW5lciwgcGxhY2VtZW50LCBtaWRkbGV3YXJlRGF0YSwgc3RyYXRlZ3ksIGxvd1BQSSwgY29vcmRpbmF0ZXMsIHVzZVRyYW5zZm9ybSA9IHRydWUgfSA9IG9wdGlvbnM7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb250YWluZXIuc2V0QXR0cmlidXRlKERBVEFfUE9TSVRJT05JTkdfUExBQ0VNRU5ULCBwbGFjZW1lbnQpO1xuICAgIGNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoREFUQV9QT1NJVElPTklOR19JTlRFUlNFQ1RJTkcpO1xuICAgIGlmIChtaWRkbGV3YXJlRGF0YS5pbnRlcnNlY3Rpb25PYnNlcnZlci5pbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZShEQVRBX1BPU0lUSU9OSU5HX0lOVEVSU0VDVElORywgJycpO1xuICAgIH1cbiAgICBjb250YWluZXIucmVtb3ZlQXR0cmlidXRlKERBVEFfUE9TSVRJT05JTkdfRVNDQVBFRCk7XG4gICAgaWYgKChfbWlkZGxld2FyZURhdGFfaGlkZSA9IG1pZGRsZXdhcmVEYXRhLmhpZGUpID09PSBudWxsIHx8IF9taWRkbGV3YXJlRGF0YV9oaWRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGFfaGlkZS5lc2NhcGVkKSB7XG4gICAgICAgIGNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoREFUQV9QT1NJVElPTklOR19FU0NBUEVELCAnJyk7XG4gICAgfVxuICAgIGNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoREFUQV9QT1NJVElPTklOR19ISURERU4pO1xuICAgIGlmICgoX21pZGRsZXdhcmVEYXRhX2hpZGUxID0gbWlkZGxld2FyZURhdGEuaGlkZSkgPT09IG51bGwgfHwgX21pZGRsZXdhcmVEYXRhX2hpZGUxID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGFfaGlkZTEucmVmZXJlbmNlSGlkZGVuKSB7XG4gICAgICAgIGNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoREFUQV9QT1NJVElPTklOR19ISURERU4sICcnKTtcbiAgICB9XG4gICAgLy8gUm91bmQgc28gdGhhdCB0aGUgY29vcmRpbmF0ZXMgbGFuZCBvbiBkZXZpY2UgcGl4ZWxzLlxuICAgIC8vIFRoaXMgcHJldmVudHMgYmx1cnJpbmVzcyBpbiBjYXNlcyB3aGVyZSB0aGUgYnJvd3NlciBkb2Vzbid0IGFwcGx5IHBpeGVsIHNuYXBwaW5nLCBzdWNoIGFzIHdoZW4gb3RoZXIgZWZmZWN0cyBsaWtlXG4gICAgLy8gYGJhY2tkcm9wLWZpbHRlcjogYmx1cigpYCBhcmUgYXBwbGllZCB0byB0aGUgY29udGFpbmVyLCBhbmQgdGhlIGJyb3dzZXIgaXMgem9vbWVkIGluLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yNjc2NCBmb3IgbW9yZSBpbmZvLlxuICAgIGNvbnN0IGRldmljZVBpeGVsUmF0aW8gPSAoKF9jb250YWluZXJfb3duZXJEb2N1bWVudF9kZWZhdWx0VmlldyA9IGNvbnRhaW5lci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSA9PT0gbnVsbCB8fCBfY29udGFpbmVyX293bmVyRG9jdW1lbnRfZGVmYXVsdFZpZXcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jb250YWluZXJfb3duZXJEb2N1bWVudF9kZWZhdWx0Vmlldy5kZXZpY2VQaXhlbFJhdGlvKSB8fCAxO1xuICAgIGNvbnN0IHggPSBNYXRoLnJvdW5kKGNvb3JkaW5hdGVzLnggKiBkZXZpY2VQaXhlbFJhdGlvKSAvIGRldmljZVBpeGVsUmF0aW87XG4gICAgY29uc3QgeSA9IE1hdGgucm91bmQoY29vcmRpbmF0ZXMueSAqIGRldmljZVBpeGVsUmF0aW8pIC8gZGV2aWNlUGl4ZWxSYXRpbztcbiAgICBPYmplY3QuYXNzaWduKGNvbnRhaW5lci5zdHlsZSwge1xuICAgICAgICBwb3NpdGlvbjogc3RyYXRlZ3lcbiAgICB9KTtcbiAgICBpZiAodXNlVHJhbnNmb3JtKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY29udGFpbmVyLnN0eWxlLCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IGxvd1BQSSA/IGB0cmFuc2xhdGUoJHt4fXB4LCAke3l9cHgpYCA6IGB0cmFuc2xhdGUzZCgke3h9cHgsICR7eX1weCwgMClgXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIE9iamVjdC5hc3NpZ24oY29udGFpbmVyLnN0eWxlLCB7XG4gICAgICAgIGxlZnQ6IGAke3h9cHhgLFxuICAgICAgICB0b3A6IGAke3l9cHhgXG4gICAgfSk7XG59XG4iLCIvKipcbiAqIEF1dG9TaXplcyBjb250YWlucyBtYW55IG9wdGlvbnMgZnJvbSBoaXN0b3JpYyBpbXBsZW1lbnRhdGlvbi5cbiAqIE5vdyBvcHRpb25zICdhbHdheXMnLydoZWlnaHQtYWx3YXlzJy8nd2lkdGgtYWx3YXlzJyBhcmUgb2Jzb2xldGUuXG4gKiBUaGlzIGZ1bmN0aW9uIG1hcHMgdGhlbSB0byB0cnVlLydoZWlnaHQnLyd3aWR0aCdcbiAqLyBleHBvcnQgY29uc3Qgbm9ybWFsaXplQXV0b1NpemUgPSAoYXV0b1NpemUpPT57XG4gICAgc3dpdGNoKGF1dG9TaXplKXtcbiAgICAgICAgY2FzZSAnYWx3YXlzJzpcbiAgICAgICAgY2FzZSB0cnVlOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBhcHBseU1heFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFwcGx5TWF4SGVpZ2h0OiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd3aWR0aC1hbHdheXMnOlxuICAgICAgICBjYXNlICd3aWR0aCc6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGFwcGx5TWF4V2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgYXBwbHlNYXhIZWlnaHQ6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdoZWlnaHQtYWx3YXlzJzpcbiAgICAgICAgY2FzZSAnaGVpZ2h0JzpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYXBwbHlNYXhXaWR0aDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYXBwbHlNYXhIZWlnaHQ6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcbiIsImltcG9ydCB7IHBhcnNlRmxvYXRpbmdVSVBsYWNlbWVudCB9IGZyb20gJy4uL3V0aWxzL2luZGV4JztcbmV4cG9ydCBmdW5jdGlvbiBjb3ZlclRhcmdldCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAnY292ZXJUYXJnZXQnLFxuICAgICAgICBmbjogKG1pZGRsZXdhcmVBcmd1bWVudHMpPT57XG4gICAgICAgICAgICBjb25zdCB7IHBsYWNlbWVudCwgcmVjdHMsIHgsIHkgfSA9IG1pZGRsZXdhcmVBcmd1bWVudHM7XG4gICAgICAgICAgICBjb25zdCBiYXNlUGxhY2VtZW50ID0gcGFyc2VGbG9hdGluZ1VJUGxhY2VtZW50KHBsYWNlbWVudCkuc2lkZTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0Nvb3JkcyA9IHtcbiAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzd2l0Y2goYmFzZVBsYWNlbWVudCl7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29vcmRzLnkgLT0gcmVjdHMucmVmZXJlbmNlLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29vcmRzLnkgKz0gcmVjdHMucmVmZXJlbmNlLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIG5ld0Nvb3Jkcy54ICs9IHJlY3RzLnJlZmVyZW5jZS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICBuZXdDb29yZHMueCAtPSByZWN0cy5yZWZlcmVuY2Uud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld0Nvb3JkcztcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCJpbXBvcnQgeyBmbGlwIGFzIGJhc2VGbGlwIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBnZXRCb3VuZGFyeSwgcmVzb2x2ZVBvc2l0aW9uaW5nU2hvcnRoYW5kLCB0b0Zsb2F0aW5nVUlQbGFjZW1lbnQgfSBmcm9tICcuLi91dGlscy9pbmRleCc7XG5leHBvcnQgZnVuY3Rpb24gZmxpcChvcHRpb25zKSB7XG4gICAgY29uc3QgeyBoYXNTY3JvbGxhYmxlRWxlbWVudCwgZmxpcEJvdW5kYXJ5LCBjb250YWluZXIsIGZhbGxiYWNrUG9zaXRpb25zID0gW10sIGlzUnRsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGZhbGxiYWNrUGxhY2VtZW50cyA9IGZhbGxiYWNrUG9zaXRpb25zLnJlZHVjZSgoYWNjLCBzaG9ydGhhbmQpPT57XG4gICAgICAgIGNvbnN0IHsgcG9zaXRpb24sIGFsaWduIH0gPSByZXNvbHZlUG9zaXRpb25pbmdTaG9ydGhhbmQoc2hvcnRoYW5kKTtcbiAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gdG9GbG9hdGluZ1VJUGxhY2VtZW50KGFsaWduLCBwb3NpdGlvbiwgaXNSdGwpO1xuICAgICAgICBpZiAocGxhY2VtZW50KSB7XG4gICAgICAgICAgICBhY2MucHVzaChwbGFjZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBiYXNlRmxpcCh7XG4gICAgICAgIC4uLmhhc1Njcm9sbGFibGVFbGVtZW50ICYmIHtcbiAgICAgICAgICAgIGJvdW5kYXJ5OiAnY2xpcHBpbmdBbmNlc3RvcnMnXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmZsaXBCb3VuZGFyeSAmJiB7XG4gICAgICAgICAgICBhbHRCb3VuZGFyeTogdHJ1ZSxcbiAgICAgICAgICAgIGJvdW5kYXJ5OiBnZXRCb3VuZGFyeShjb250YWluZXIsIGZsaXBCb3VuZGFyeSlcbiAgICAgICAgfSxcbiAgICAgICAgZmFsbGJhY2tTdHJhdGVneTogJ2Jlc3RGaXQnLFxuICAgICAgICAuLi5mYWxsYmFja1BsYWNlbWVudHMubGVuZ3RoICYmIHtcbiAgICAgICAgICAgIGZhbGxiYWNrUGxhY2VtZW50c1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iLCJpbXBvcnQgeyBkZXRlY3RPdmVyZmxvdyB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuZXhwb3J0IGZ1bmN0aW9uIGludGVyc2VjdGluZygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAnaW50ZXJzZWN0aW9uT2JzZXJ2ZXInLFxuICAgICAgICBmbjogYXN5bmMgKG1pZGRsZXdhcmVBcmd1bWVudHMpPT57XG4gICAgICAgICAgICBjb25zdCBmbG9hdGluZ1JlY3QgPSBtaWRkbGV3YXJlQXJndW1lbnRzLnJlY3RzLmZsb2F0aW5nO1xuICAgICAgICAgICAgY29uc3QgYWx0T3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhtaWRkbGV3YXJlQXJndW1lbnRzLCB7XG4gICAgICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaXNJbnRlcnNlY3RpbmdUb3AgPSBhbHRPdmVyZmxvdy50b3AgPCBmbG9hdGluZ1JlY3QuaGVpZ2h0ICYmIGFsdE92ZXJmbG93LnRvcCA+IDA7XG4gICAgICAgICAgICBjb25zdCBpc0ludGVyc2VjdGluZ0JvdHRvbSA9IGFsdE92ZXJmbG93LmJvdHRvbSA8IGZsb2F0aW5nUmVjdC5oZWlnaHQgJiYgYWx0T3ZlcmZsb3cuYm90dG9tID4gMDtcbiAgICAgICAgICAgIGNvbnN0IGlzSW50ZXJzZWN0aW5nID0gaXNJbnRlcnNlY3RpbmdUb3AgfHwgaXNJbnRlcnNlY3RpbmdCb3R0b207XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJzZWN0aW5nOiBpc0ludGVyc2VjdGluZ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgc2l6ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgZ2V0Qm91bmRhcnkgfSBmcm9tICcuLi91dGlscy9nZXRCb3VuZGFyeSc7XG5pbXBvcnQgeyB0b0Zsb2F0aW5nVUlQYWRkaW5nIH0gZnJvbSAnLi4vdXRpbHMnO1xuLyoqXG4gKiBmbG9hdGluZy11aSBgc2l6ZWAgbWlkZGxld2FyZSB1c2VzIGZsb2F0aW5nIGVsZW1lbnQncyBoZWlnaHQvd2lkdGggdG8gY2FsY3VsYXRlIGF2YWlsYWJsZSBoZWlnaHQvd2lkdGguXG4gKiBUaGlzIG1pZGRsZXdhcmUgb25seSBydW5zIG9uY2UgcGVyIGxpZmVjeWNsZSwgcmVzZXR0aW5nIHN0eWxlcyBhcHBsaWVkIGJ5IG1heFNpemUgZnJvbSBwcmV2aW91cyBsaWZlY3ljbGUuXG4gKiBUaGVuIGZsb2F0aW5nIGVsZW1lbnQncyBvcmlnaW5hbCBzaXplIGlzIHJlc3RvcmVkIGFuZCBgc2l6ZWAgbWlkZGxld2FyZSBjYW4gY2FsY3VsYXRlIGF2YWlsYWJsZSBoZWlnaHQvd2lkdGggY29ycmVjdGx5LlxuICovIGV4cG9ydCBjb25zdCByZXNldE1heFNpemUgPSAoYXV0b1NpemUpPT4oe1xuICAgICAgICBuYW1lOiAncmVzZXRNYXhTaXplJyxcbiAgICAgICAgZm4gKHsgbWlkZGxld2FyZURhdGEsIGVsZW1lbnRzIH0pIHtcbiAgICAgICAgICAgIHZhciBfbWlkZGxld2FyZURhdGFfcmVzZXRNYXhTaXplO1xuICAgICAgICAgICAgaWYgKChfbWlkZGxld2FyZURhdGFfcmVzZXRNYXhTaXplID0gbWlkZGxld2FyZURhdGEucmVzZXRNYXhTaXplKSA9PT0gbnVsbCB8fCBfbWlkZGxld2FyZURhdGFfcmVzZXRNYXhTaXplID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGFfcmVzZXRNYXhTaXplLm1heFNpemVBbHJlYWR5UmVzZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGFwcGx5TWF4V2lkdGgsIGFwcGx5TWF4SGVpZ2h0IH0gPSBhdXRvU2l6ZTtcbiAgICAgICAgICAgIGlmIChhcHBseU1heFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JveC1zaXppbmcnKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5mbG9hdGluZy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbWF4LXdpZHRoJyk7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3dpZHRoJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYXBwbHlNYXhIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5mbG9hdGluZy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYm94LXNpemluZycpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdtYXgtaGVpZ2h0Jyk7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2hlaWdodCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIG1heFNpemVBbHJlYWR5UmVzZXQ6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIHJlY3RzOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pO1xuZXhwb3J0IGZ1bmN0aW9uIG1heFNpemUoYXV0b1NpemUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciwgb3ZlcmZsb3dCb3VuZGFyeSwgb3ZlcmZsb3dCb3VuZGFyeVBhZGRpbmcsIGlzUnRsIH0gPSBvcHRpb25zO1xuICAgIHJldHVybiBzaXplKHtcbiAgICAgICAgLi4ub3ZlcmZsb3dCb3VuZGFyeVBhZGRpbmcgJiYge1xuICAgICAgICAgICAgcGFkZGluZzogdG9GbG9hdGluZ1VJUGFkZGluZyhvdmVyZmxvd0JvdW5kYXJ5UGFkZGluZywgaXNSdGwpXG4gICAgICAgIH0sXG4gICAgICAgIC4uLm92ZXJmbG93Qm91bmRhcnkgJiYge1xuICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWUsXG4gICAgICAgICAgICBib3VuZGFyeTogZ2V0Qm91bmRhcnkoY29udGFpbmVyLCBvdmVyZmxvd0JvdW5kYXJ5KVxuICAgICAgICB9LFxuICAgICAgICBhcHBseSAoeyBhdmFpbGFibGVIZWlnaHQsIGF2YWlsYWJsZVdpZHRoLCBlbGVtZW50cywgcmVjdHMgfSkge1xuICAgICAgICAgICAgY29uc3QgYXBwbHlNYXhTaXplU3R5bGVzID0gKGFwcGx5LCBkaW1lbnNpb24sIGF2YWlsYWJsZVNpemUpPT57XG4gICAgICAgICAgICAgICAgaWYgKCFhcHBseSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLnNldFByb3BlcnR5KCdib3gtc2l6aW5nJywgJ2JvcmRlci1ib3gnKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5mbG9hdGluZy5zdHlsZS5zZXRQcm9wZXJ0eShgbWF4LSR7ZGltZW5zaW9ufWAsIGAke2F2YWlsYWJsZVNpemV9cHhgKTtcbiAgICAgICAgICAgICAgICBpZiAocmVjdHMuZmxvYXRpbmdbZGltZW5zaW9uXSA+IGF2YWlsYWJsZVNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUuc2V0UHJvcGVydHkoZGltZW5zaW9uLCBgJHthdmFpbGFibGVTaXplfXB4YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF4aXMgPSBkaW1lbnNpb24gPT09ICd3aWR0aCcgPyAneCcgOiAneSc7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShgb3ZlcmZsb3ctJHtheGlzfWApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5mbG9hdGluZy5zdHlsZS5zZXRQcm9wZXJ0eShgb3ZlcmZsb3ctJHtheGlzfWAsICdhdXRvJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgeyBhcHBseU1heFdpZHRoLCBhcHBseU1heEhlaWdodCB9ID0gYXV0b1NpemU7XG4gICAgICAgICAgICBhcHBseU1heFNpemVTdHlsZXMoYXBwbHlNYXhXaWR0aCwgJ3dpZHRoJywgYXZhaWxhYmxlV2lkdGgpO1xuICAgICAgICAgICAgYXBwbHlNYXhTaXplU3R5bGVzKGFwcGx5TWF4SGVpZ2h0LCAnaGVpZ2h0JywgYXZhaWxhYmxlSGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwiaW1wb3J0IHsgZnJvbUZsb2F0aW5nVUlQbGFjZW1lbnQgfSBmcm9tICcuL2Zyb21GbG9hdGluZ1VJUGxhY2VtZW50Jztcbi8qKlxuICogU2hpbSB0byB0cmFuc2Zvcm0gb2Zmc2V0IHZhbHVlcyBmcm9tIHRoaXMgbGlicmFyeSB0byBGbG9hdGluZyBVSVxuICogQHBhcmFtIHJhd09mZnNldCBPZmZzZXQgZnJvbSB0aGlzIGxpYnJhcnlcbiAqIEByZXR1cm5zIEFuIG9mZnNldCB2YWx1ZSBjb21wYXRpYmxlIHdpdGggRmxvYXRpbmcgVUlcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0RmxvYXRpbmdVSU9mZnNldChyYXdPZmZzZXQpIHtcbiAgICBpZiAoIXJhd09mZnNldCkge1xuICAgICAgICByZXR1cm4gcmF3T2Zmc2V0O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJhd09mZnNldCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHJhd09mZnNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHJhd09mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuICh7IHJlY3RzOiB7IGZsb2F0aW5nLCByZWZlcmVuY2UgfSwgcGxhY2VtZW50IH0pPT57XG4gICAgICAgIGNvbnN0IHsgcG9zaXRpb24sIGFsaWdubWVudCB9ID0gZnJvbUZsb2F0aW5nVUlQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICAgICAgcmV0dXJuIHJhd09mZnNldCh7XG4gICAgICAgICAgICBwb3NpdGlvbmVkUmVjdDogZmxvYXRpbmcsXG4gICAgICAgICAgICB0YXJnZXRSZWN0OiByZWZlcmVuY2UsXG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGFsaWdubWVudFxuICAgICAgICB9KTtcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgb2Zmc2V0IGFzIGJhc2VPZmZzZXQgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IGdldEZsb2F0aW5nVUlPZmZzZXQgfSBmcm9tICcuLi91dGlscy9nZXRGbG9hdGluZ1VJT2Zmc2V0Jztcbi8qKlxuICogV3JhcHMgZmxvYXRpbmcgVUkgb2Zmc2V0IG1pZGRsZXdhcmUgdG8gdG8gdHJhbnNmb3JtIG9mZnNldCB2YWx1ZVxuICovIGV4cG9ydCBmdW5jdGlvbiBvZmZzZXQob2Zmc2V0VmFsdWUpIHtcbiAgICBjb25zdCBmbG9hdGluZ1VJT2Zmc2V0ID0gZ2V0RmxvYXRpbmdVSU9mZnNldChvZmZzZXRWYWx1ZSk7XG4gICAgcmV0dXJuIGJhc2VPZmZzZXQoZmxvYXRpbmdVSU9mZnNldCk7XG59XG4iLCJpbXBvcnQgeyBzaGlmdCBhcyBiYXNlU2hpZnQsIGxpbWl0U2hpZnQgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IGdldEJvdW5kYXJ5LCB0b0Zsb2F0aW5nVUlQYWRkaW5nIH0gZnJvbSAnLi4vdXRpbHMvaW5kZXgnO1xuLyoqXG4gKiBXcmFwcyB0aGUgZmxvYXRpbmcgVUkgc2hpZnQgbWlkZGxld2FyZSBmb3IgZWFzaWVyIHVzYWdlIG9mIG91ciBvcHRpb25zXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHNoaWZ0KG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGhhc1Njcm9sbGFibGVFbGVtZW50LCBkaXNhYmxlVGV0aGVyLCBvdmVyZmxvd0JvdW5kYXJ5LCBjb250YWluZXIsIG92ZXJmbG93Qm91bmRhcnlQYWRkaW5nLCBpc1J0bCB9ID0gb3B0aW9ucztcbiAgICByZXR1cm4gYmFzZVNoaWZ0KHtcbiAgICAgICAgLi4uaGFzU2Nyb2xsYWJsZUVsZW1lbnQgJiYge1xuICAgICAgICAgICAgYm91bmRhcnk6ICdjbGlwcGluZ0FuY2VzdG9ycydcbiAgICAgICAgfSxcbiAgICAgICAgLi4uZGlzYWJsZVRldGhlciAmJiB7XG4gICAgICAgICAgICBjcm9zc0F4aXM6IGRpc2FibGVUZXRoZXIgPT09ICdhbGwnLFxuICAgICAgICAgICAgbGltaXRlcjogbGltaXRTaGlmdCh7XG4gICAgICAgICAgICAgICAgY3Jvc3NBeGlzOiBkaXNhYmxlVGV0aGVyICE9PSAnYWxsJyxcbiAgICAgICAgICAgICAgICBtYWluQXhpczogZmFsc2VcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIC4uLm92ZXJmbG93Qm91bmRhcnlQYWRkaW5nICYmIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHRvRmxvYXRpbmdVSVBhZGRpbmcob3ZlcmZsb3dCb3VuZGFyeVBhZGRpbmcsIGlzUnRsKVxuICAgICAgICB9LFxuICAgICAgICAuLi5vdmVyZmxvd0JvdW5kYXJ5ICYmIHtcbiAgICAgICAgICAgIGFsdEJvdW5kYXJ5OiB0cnVlLFxuICAgICAgICAgICAgYm91bmRhcnk6IGdldEJvdW5kYXJ5KGNvbnRhaW5lciwgb3ZlcmZsb3dCb3VuZGFyeSlcbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwiZXhwb3J0IGNvbnN0IG1hdGNoVGFyZ2V0U2l6ZUNzc1ZhciA9ICctLWZ1aS1tYXRjaC10YXJnZXQtc2l6ZSc7XG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hUYXJnZXRTaXplKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6ICdtYXRjaFRhcmdldFNpemUnLFxuICAgICAgICBmbjogYXN5bmMgKG1pZGRsZXdhcmVBcmd1bWVudHMpPT57XG4gICAgICAgICAgICBjb25zdCB7IHJlY3RzOiB7IHJlZmVyZW5jZTogcmVmZXJlbmNlUmVjdCwgZmxvYXRpbmc6IGZsb2F0aW5nUmVjdCB9LCBlbGVtZW50czogeyBmbG9hdGluZzogZmxvYXRpbmdFbGVtZW50IH0sIG1pZGRsZXdhcmVEYXRhOiB7IG1hdGNoVGFyZ2V0U2l6ZTogeyBtYXRjaFRhcmdldFNpemVBdHRlbXB0ID0gZmFsc2UgfSA9IHt9IH0gfSA9IG1pZGRsZXdhcmVBcmd1bWVudHM7XG4gICAgICAgICAgICBpZiAocmVmZXJlbmNlUmVjdC53aWR0aCA9PT0gZmxvYXRpbmdSZWN0LndpZHRoIHx8IG1hdGNoVGFyZ2V0U2l6ZUF0dGVtcHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSByZWZlcmVuY2VSZWN0O1xuICAgICAgICAgICAgZmxvYXRpbmdFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG1hdGNoVGFyZ2V0U2l6ZUNzc1ZhciwgYCR7d2lkdGh9cHhgKTtcbiAgICAgICAgICAgIGlmICghZmxvYXRpbmdFbGVtZW50LnN0eWxlLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgZmxvYXRpbmdFbGVtZW50LnN0eWxlLndpZHRoID0gYHZhcigke21hdGNoVGFyZ2V0U2l6ZUNzc1Zhcn0pYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaFRhcmdldFNpemVBdHRlbXB0OiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgICAgICAgICByZWN0czogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgZ2V0U2Nyb2xsUGFyZW50IH0gZnJvbSAnLi9nZXRTY3JvbGxQYXJlbnQnO1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RTY3JvbGxQYXJlbnRzKG5vZGUpIHtcbiAgICBjb25zdCBzY3JvbGxQYXJlbnRzID0gW107XG4gICAgbGV0IGN1ciA9IG5vZGU7XG4gICAgd2hpbGUoY3VyKXtcbiAgICAgICAgY29uc3Qgc2Nyb2xsUGFyZW50ID0gZ2V0U2Nyb2xsUGFyZW50KGN1cik7XG4gICAgICAgIGlmIChub2RlLm93bmVyRG9jdW1lbnQuYm9keSA9PT0gc2Nyb2xsUGFyZW50KSB7XG4gICAgICAgICAgICBzY3JvbGxQYXJlbnRzLnB1c2goc2Nyb2xsUGFyZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY3JvbGxQYXJlbnQubm9kZU5hbWUgPT09ICdCT0RZJyAmJiBzY3JvbGxQYXJlbnQgIT09IG5vZGUub3duZXJEb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nOiBZb3UgYXJlIGNvbXBhcmluZyB0d28gZGlmZmVyZW50IGRvY3VtZW50cyEgVGhpcyBpcyBhbiB1bmV4cGVjdGVkIGVycm9yLCBwbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWcgdG8gdGhlIEZsdWVudCBVSSB0ZWFtICcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc2Nyb2xsUGFyZW50cy5wdXNoKHNjcm9sbFBhcmVudCk7XG4gICAgICAgIGN1ciA9IHNjcm9sbFBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIHNjcm9sbFBhcmVudHM7XG59XG4iLCJleHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzaXplT2JzZXJ2ZXIodGFyZ2V0V2luZG93LCBjYWxsYmFjaykge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2RvbS9qc2RvbS9pc3N1ZXMvMzM2OFxuICAgIC8vIEFkZCB0aGUgcG9seWZpbGwgaGVyZSBzbyBpdCBpcyBub3QgbmVlZGVkIGZvciBhbGwgdW5pdCB0ZXN0cyB0aGF0IGxldmVyYWdlIHBvc2l0aW9uaW5nXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcbiAgICAgICAgdGFyZ2V0V2luZG93LlJlc2l6ZU9ic2VydmVyID0gY2xhc3MgUmVzaXplT2JzZXJ2ZXIge1xuICAgICAgICAgICAgb2JzZXJ2ZSgpIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBuZXcgdGFyZ2V0V2luZG93LlJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrKTtcbn1cbiIsImltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIHdyaXRlQXJyb3dVcGRhdGVzLCB3cml0ZUNvbnRhaW5lclVwZGF0ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGxpc3RTY3JvbGxQYXJlbnRzIH0gZnJvbSAnLi91dGlscy9saXN0U2Nyb2xsUGFyZW50cyc7XG5pbXBvcnQgeyBQT1NJVElPTklOR19FTkRfRVZFTlQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjcmVhdGVSZXNpemVPYnNlcnZlciB9IGZyb20gJy4vdXRpbHMvY3JlYXRlUmVzaXplT2JzZXJ2ZXInO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEByZXR1cm5zIG1hbmFnZXIgdGhhdCBoYW5kbGVzIHBvc2l0aW9uaW5nIG91dCBvZiB0aGUgcmVhY3QgbGlmZWN5Y2xlXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc2l0aW9uTWFuYWdlcihvcHRpb25zKSB7XG4gICAgbGV0IGlzRGVzdHJveWVkID0gZmFsc2U7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHRhcmdldCwgYXJyb3csIHN0cmF0ZWd5LCBtaWRkbGV3YXJlLCBwbGFjZW1lbnQsIHVzZVRyYW5zZm9ybSA9IHRydWUsIGRpc2FibGVVcGRhdGVPblJlc2l6ZSA9IGZhbHNlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHRhcmdldFdpbmRvdyA9IGNvbnRhaW5lci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIGlmICghdGFyZ2V0IHx8ICFjb250YWluZXIgfHwgIXRhcmdldFdpbmRvdykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdXBkYXRlUG9zaXRpb246ICgpPT51bmRlZmluZWQsXG4gICAgICAgICAgICBkaXNwb3NlOiAoKT0+dW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vIFdoZW4gdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHRhcmdldCBvciB0aGUgY29udGFpbmVyIGNoYW5nZSAtIHRyaWdnZXIgYSBwb3NpdGlvbiB1cGRhdGVcbiAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IGRpc2FibGVVcGRhdGVPblJlc2l6ZSA/IG51bGwgOiBjcmVhdGVSZXNpemVPYnNlcnZlcih0YXJnZXRXaW5kb3csIChlbnRyaWVzKT0+e1xuICAgICAgICAvLyBJZiBjb250ZW50IHJlY3QgZGltZW5zaW9ucyB0byBnbyAwIC0+IHZlcnkgbGlrZWx5IHRoYXQgYGRpc3BsYXk6IG5vbmVgIGlzIGJlaW5nIHVzZWQgdG8gaGlkZSB0aGUgZWxlbWVudFxuICAgICAgICAvLyBJbiB0aGlzIGNhc2UgZG9uJ3QgdXBkYXRlIGFuZCBsZXQgdXNlcnMgdXBkYXRlIGltcGVyYXRpdmVseVxuICAgICAgICBjb25zdCBzaG91bGRVcGRhdGVPblJlc2l6ZSA9IGVudHJpZXMuZXZlcnkoKGVudHJ5KT0+e1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoID4gMCAmJiBlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQgPiAwO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNob3VsZFVwZGF0ZU9uUmVzaXplKSB7XG4gICAgICAgICAgICB1cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGlzRmlyc3RVcGRhdGUgPSB0cnVlO1xuICAgIGNvbnN0IHNjcm9sbFBhcmVudHMgPSBuZXcgU2V0KCk7XG4gICAgLy8gV2hlbiB0aGUgY29udGFpbmVyIGlzIGZpcnN0IHJlc29sdmVkLCBzZXQgcG9zaXRpb24gYGZpeGVkYCB0byBhdm9pZCBzY3JvbGwganVtcHMuXG4gICAgLy8gV2l0aG91dCB0aGlzIHNjcm9sbCBqdW1wcyBjYW4gb2NjdXIgd2hlbiB0aGUgZWxlbWVudCBpcyByZW5kZXJlZCBpbml0aWFsbHkgYW5kIHJlY2VpdmVzIGZvY3VzXG4gICAgT2JqZWN0LmFzc2lnbihjb250YWluZXIuc3R5bGUsIHtcbiAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbWFyZ2luOiAwXG4gICAgfSk7XG4gICAgY29uc3QgZm9yY2VVcGRhdGUgPSAoKT0+e1xuICAgICAgICAvLyBkZWJvdW5jZWQgdXBkYXRlIGNhbiBzdGlsbCBvY2N1ciBhZnRlcndhcmRzXG4gICAgICAgIC8vIGVhcmx5IHJldHVybiB0byBhdm9pZCBtZW1vcnkgbGVha3NcbiAgICAgICAgaWYgKGlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgICAgIGxpc3RTY3JvbGxQYXJlbnRzKGNvbnRhaW5lcikuZm9yRWFjaCgoc2Nyb2xsUGFyZW50KT0+c2Nyb2xsUGFyZW50cy5hZGQoc2Nyb2xsUGFyZW50KSk7XG4gICAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgbGlzdFNjcm9sbFBhcmVudHModGFyZ2V0KS5mb3JFYWNoKChzY3JvbGxQYXJlbnQpPT5zY3JvbGxQYXJlbnRzLmFkZChzY3JvbGxQYXJlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjcm9sbFBhcmVudHMuZm9yRWFjaCgoc2Nyb2xsUGFyZW50KT0+e1xuICAgICAgICAgICAgICAgIHNjcm9sbFBhcmVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGVQb3NpdGlvbiwge1xuICAgICAgICAgICAgICAgICAgICBwYXNzaXZlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc2l6ZU9ic2VydmVyID09PSBudWxsIHx8IHJlc2l6ZU9ic2VydmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lcik7XG4gICAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgcmVzaXplT2JzZXJ2ZXIgPT09IG51bGwgfHwgcmVzaXplT2JzZXJ2ZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzRmlyc3RVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKGNvbnRhaW5lci5zdHlsZSwge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0cmF0ZWd5XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wdXRlUG9zaXRpb24odGFyZ2V0LCBjb250YWluZXIsIHtcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIG1pZGRsZXdhcmUsXG4gICAgICAgICAgICBzdHJhdGVneVxuICAgICAgICB9KS50aGVuKCh7IHgsIHksIG1pZGRsZXdhcmVEYXRhLCBwbGFjZW1lbnQ6IGNvbXB1dGVkUGxhY2VtZW50IH0pPT57XG4gICAgICAgICAgICAvLyBQcm9taXNlIGNhbiBzdGlsbCByZXNvbHZlIGFmdGVyIGRlc3RydWN0aW9uXG4gICAgICAgICAgICAvLyBlYXJseSByZXR1cm4gdG8gYXZvaWQgYXBwbHlpbmcgb3V0ZGF0ZWQgcG9zaXRpb25cbiAgICAgICAgICAgIGlmIChpc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyaXRlQXJyb3dVcGRhdGVzKHtcbiAgICAgICAgICAgICAgICBhcnJvdyxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3cml0ZUNvbnRhaW5lclVwZGF0ZXMoe1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IGNvbXB1dGVkUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxvd1BQSTogKCh0YXJnZXRXaW5kb3cgPT09IG51bGwgfHwgdGFyZ2V0V2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXRXaW5kb3cuZGV2aWNlUGl4ZWxSYXRpbykgfHwgMSkgPD0gMSxcbiAgICAgICAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICAgICAgICB1c2VUcmFuc2Zvcm1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29udGFpbmVyLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFBPU0lUSU9OSU5HX0VORF9FVkVOVCkpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8xODQ1XG4gICAgICAgICAgICAvLyBGSVhNRSBmb3Igbm9kZSA+IDE0XG4gICAgICAgICAgICAvLyBub2RlIDE1IGludHJvZHVjZXMgcHJvbWlzZSByZWplY3Rpb24gd2hpY2ggbWVhbnMgdGhhdCBhbnkgY29tcG9uZW50c1xuICAgICAgICAgICAgLy8gdGVzdHMgbmVlZCB0byBiZSBgaXQoJycsIGFzeW5jICgpID0+IHt9KWAgb3RoZXJ3aXNlIHRoZXJlIGNhbiBiZSByYWNlIGNvbmRpdGlvbnMgd2l0aFxuICAgICAgICAgICAgLy8gSlNET00gYmVpbmcgdG9ybiBkb3duIGJlZm9yZSB0aGlzIHByb21pc2UgaXMgcmVzb2x2ZWQgc28gZ2xvYmFscyBsaWtlIGB3aW5kb3dgIGFuZCBgZG9jdW1lbnRgIGRvbid0IGV4aXN0XG4gICAgICAgICAgICAvLyBVbmxlc3MgYWxsIHRlc3RzIHRoYXQgZXZlciB1c2UgYHVzZVBvc2l0aW9uaW5nYCBhcmUgdHVybmVkIGludG8gYXN5bmMgdGVzdHMsIGFueSBsb2dnaW5nIGR1cmluZyB0ZXN0aW5nXG4gICAgICAgICAgICAvLyB3aWxsIGFjdHVhbGx5IGJlIGNvdW50ZXIgcHJvZHVjdGl2ZVxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdXNlUG9zaXRpb25pbmddOiBGYWlsZWQgdG8gY2FsY3VsYXRlIHBvc2l0aW9uJywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCB1cGRhdGVQb3NpdGlvbiA9IGRlYm91bmNlKCgpPT5mb3JjZVVwZGF0ZSgpKTtcbiAgICBjb25zdCBkaXNwb3NlID0gKCk9PntcbiAgICAgICAgaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGFyZ2V0V2luZG93KSB7XG4gICAgICAgICAgICB0YXJnZXRXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlUG9zaXRpb24pO1xuICAgICAgICAgICAgdGFyZ2V0V2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZVBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goKHNjcm9sbFBhcmVudCk9PntcbiAgICAgICAgICAgIHNjcm9sbFBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGVQb3NpdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgICBzY3JvbGxQYXJlbnRzLmNsZWFyKCk7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyID09PSBudWxsIHx8IHJlc2l6ZU9ic2VydmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfTtcbiAgICBpZiAodGFyZ2V0V2luZG93KSB7XG4gICAgICAgIHRhcmdldFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGVQb3NpdGlvbiwge1xuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgdGFyZ2V0V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZVBvc2l0aW9uKTtcbiAgICB9XG4gICAgLy8gVXBkYXRlIHRoZSBwb3NpdGlvbiBvbiBpbml0aWFsaXphdGlvblxuICAgIHVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXBkYXRlUG9zaXRpb24sXG4gICAgICAgIGRpc3Bvc2VcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgaGlkZSBhcyBoaWRlTWlkZGxld2FyZSwgYXJyb3cgYXMgYXJyb3dNaWRkbGV3YXJlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyBjYW5Vc2VET00sIHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmLCB0b0Zsb2F0aW5nVUlQbGFjZW1lbnQsIGhhc0F1dG9mb2N1c0ZpbHRlciwgaGFzU2Nyb2xsUGFyZW50LCBub3JtYWxpemVBdXRvU2l6ZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgc2hpZnQgYXMgc2hpZnRNaWRkbGV3YXJlLCBmbGlwIGFzIGZsaXBNaWRkbGV3YXJlLCBjb3ZlclRhcmdldCBhcyBjb3ZlclRhcmdldE1pZGRsZXdhcmUsIG1heFNpemUgYXMgbWF4U2l6ZU1pZGRsZXdhcmUsIHJlc2V0TWF4U2l6ZSBhcyByZXNldE1heFNpemVNaWRkbGV3YXJlLCBvZmZzZXQgYXMgb2Zmc2V0TWlkZGxld2FyZSwgaW50ZXJzZWN0aW5nIGFzIGludGVyc2VjdGluZ01pZGRsZXdhcmUsIG1hdGNoVGFyZ2V0U2l6ZSBhcyBtYXRjaFRhcmdldFNpemVNaWRkbGV3YXJlIH0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB7IGNyZWF0ZVBvc2l0aW9uTWFuYWdlciB9IGZyb20gJy4vY3JlYXRlUG9zaXRpb25NYW5hZ2VyJztcbmltcG9ydCB7IGRldnRvb2xzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RldnRvb2xzJztcbmltcG9ydCB7IGRldnRvb2xzQ2FsbGJhY2sgfSBmcm9tICcuL3V0aWxzL2RldnRvb2xzJztcbmltcG9ydCB7IFBPU0lUSU9OSU5HX0VORF9FVkVOVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVBvc2l0aW9uaW5nKG9wdGlvbnMpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IG1hbmFnZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG92ZXJyaWRlVGFyZ2V0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBhcnJvd1JlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB7IGVuYWJsZWQgPSB0cnVlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHJlc29sdmVQb3NpdGlvbmluZ09wdGlvbnMgPSB1c2VQb3NpdGlvbmluZ09wdGlvbnMob3B0aW9ucyk7XG4gICAgY29uc3QgdXBkYXRlUG9zaXRpb25NYW5hZ2VyID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgaWYgKG1hbmFnZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbWFuYWdlclJlZi5jdXJyZW50LmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBtYW5hZ2VyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB2YXIgX292ZXJyaWRlVGFyZ2V0UmVmX2N1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IChfb3ZlcnJpZGVUYXJnZXRSZWZfY3VycmVudCA9IG92ZXJyaWRlVGFyZ2V0UmVmLmN1cnJlbnQpICE9PSBudWxsICYmIF9vdmVycmlkZVRhcmdldFJlZl9jdXJyZW50ICE9PSB2b2lkIDAgPyBfb3ZlcnJpZGVUYXJnZXRSZWZfY3VycmVudCA6IHRhcmdldFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoZW5hYmxlZCAmJiBjYW5Vc2VET00oKSAmJiB0YXJnZXQgJiYgY29udGFpbmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1hbmFnZXJSZWYuY3VycmVudCA9IGNyZWF0ZVBvc2l0aW9uTWFuYWdlcih7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyOiBjb250YWluZXJSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICAgICAgYXJyb3c6IGFycm93UmVmLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgLi4ucmVzb2x2ZVBvc2l0aW9uaW5nT3B0aW9ucyhjb250YWluZXJSZWYuY3VycmVudCwgYXJyb3dSZWYuY3VycmVudClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBlbmFibGVkLFxuICAgICAgICByZXNvbHZlUG9zaXRpb25pbmdPcHRpb25zXG4gICAgXSk7XG4gICAgY29uc3Qgc2V0T3ZlcnJpZGVUYXJnZXQgPSB1c2VFdmVudENhbGxiYWNrKCh0YXJnZXQpPT57XG4gICAgICAgIG92ZXJyaWRlVGFyZ2V0UmVmLmN1cnJlbnQgPSB0YXJnZXQ7XG4gICAgICAgIHVwZGF0ZVBvc2l0aW9uTWFuYWdlcigpO1xuICAgIH0pO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUob3B0aW9ucy5wb3NpdGlvbmluZ1JlZiwgKCk9Pih7XG4gICAgICAgICAgICB1cGRhdGVQb3NpdGlvbjogKCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX21hbmFnZXJSZWZfY3VycmVudDtcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9tYW5hZ2VyUmVmX2N1cnJlbnQgPSBtYW5hZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9tYW5hZ2VyUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9tYW5hZ2VyUmVmX2N1cnJlbnQudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRUYXJnZXQ6ICh0YXJnZXQpPT57XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudGFyZ2V0ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignSW1wZXJhdGl2ZSBzZXRUYXJnZXQgc2hvdWxkIG5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGFyZ2V0IG9wdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyLnN0YWNrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0T3ZlcnJpZGVUYXJnZXQodGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIFtcbiAgICAgICAgb3B0aW9ucy50YXJnZXQsXG4gICAgICAgIHNldE92ZXJyaWRlVGFyZ2V0XG4gICAgXSk7XG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICB2YXIgX29wdGlvbnNfdGFyZ2V0O1xuICAgICAgICBzZXRPdmVycmlkZVRhcmdldCgoX29wdGlvbnNfdGFyZ2V0ID0gb3B0aW9ucy50YXJnZXQpICE9PSBudWxsICYmIF9vcHRpb25zX3RhcmdldCAhPT0gdm9pZCAwID8gX29wdGlvbnNfdGFyZ2V0IDogbnVsbCk7XG4gICAgfSwgW1xuICAgICAgICBvcHRpb25zLnRhcmdldCxcbiAgICAgICAgc2V0T3ZlcnJpZGVUYXJnZXRcbiAgICBdKTtcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgIHVwZGF0ZVBvc2l0aW9uTWFuYWdlcigpO1xuICAgIH0sIFtcbiAgICAgICAgdXBkYXRlUG9zaXRpb25NYW5hZ2VyXG4gICAgXSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gVGhpcyBjaGVja2VkIHNob3VsZCBydW4gb25seSBpbiBkZXZlbG9wbWVudCBtb2RlXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgICAgIGlmIChjb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHZhciBfY29udGVudE5vZGVfb3duZXJEb2N1bWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50Tm9kZSA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyZWVXYWxrZXIgPSAoX2NvbnRlbnROb2RlX293bmVyRG9jdW1lbnQgPSBjb250ZW50Tm9kZS5vd25lckRvY3VtZW50KSA9PT0gbnVsbCB8fCBfY29udGVudE5vZGVfb3duZXJEb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NvbnRlbnROb2RlX293bmVyRG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb250ZW50Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0Tm9kZTogaGFzQXV0b2ZvY3VzRmlsdGVyXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgd2hpbGUodHJlZVdhbGtlci5uZXh0Tm9kZSgpKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRyZWVXYWxrZXIuY3VycmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignPFBvcHBlcj46Jywgbm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihbXG4gICAgICAgICAgICAgICAgICAgICAgICAnPFBvcHBlcj46IF4gdGhpcyBub2RlIGNvbnRhaW5zIFwiYXV0b0ZvY3VzXCIgcHJvcCBvbiBhIFJlYWN0IGVsZW1lbnQuIFRoaXMgY2FuIGJyZWFrIHRoZSBpbml0aWFsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbmluZyBvZiBhbiBlbGVtZW50IGFuZCBjYXVzZSBhIHdpbmRvdyBqdW1wIGVmZmVjdC4gVGhpcyBpc3N1ZSBvY2N1cnMgYmVjYXVzZSBSZWFjdCBwb2x5ZmlsbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1wiYXV0b0ZvY3VzXCIgYmVoYXZpb3IgdG8gc29sdmUgaW5jb25zaXN0ZW5jaWVzIGJldHdlZW4gZGlmZmVyZW50IGJyb3dzZXJzOicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTg1MSNpc3N1ZWNvbW1lbnQtMzUxNzg3MDc4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdcXG4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0hvd2V2ZXIsIFwiLmZvY3VzKClcIiBpbiB0aGlzIGNhc2Ugb2NjdXJzIGJlZm9yZSBhbnkgb3RoZXIgUmVhY3QgZWZmZWN0cyB3aWxsIGJlIGV4ZWN1dGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICcoUmVhY3QudXNlRWZmZWN0KCksIGNvbXBvbmVudERpZE1vdW50KCksIGV0Yy4pIGFuZCB3ZSBjYW4gbm90IHByZXZlbnQgdGhpcyBiZWhhdmlvci4gSWYgeW91IHJlYWxseScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnd2FudCB0byB1c2UgXCJhdXRvRm9jdXNcIiBwbGVhc2UgYWRkIFwicG9zaXRpb246IGZpeGVkXCIgdG8gc3R5bGVzIG9mIHRoZSBlbGVtZW50IHRoYXQgaXMgd3JhcHBlZCBieScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnXCJQb3BwZXJcIi4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgYEluIGdlbmVyYWwsIGl0J3Mgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBcImF1dG9Gb2N1c1wiIGFzIGl0IG1heSBicmVhayBhY2Nlc3NpYmlsaXR5IGFzcGVjdHM6YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL2dpdGh1Yi5jb20vanN4LWVzbGludC9lc2xpbnQtcGx1Z2luLWpzeC1hMTF5L2Jsb2IvbWFzdGVyL2RvY3MvcnVsZXMvbm8tYXV0b2ZvY3VzLm1kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdcXG4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1dlIHN1Z2dlc3QgdG8gdXNlIHRoZSBcInRyYXBGb2N1c1wiIHByb3Agb24gRmx1ZW50IGNvbXBvbmVudHMgb3IgYSBjYXRjaCBcInJlZlwiIGFuZCB0aGVuIHVzZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnXCJyZWYuY3VycmVudC5mb2N1c1wiIGluIFJlYWN0LnVzZUVmZmVjdCgpOicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlZnMtYW5kLXRoZS1kb20uaHRtbCNhZGRpbmctYS1yZWYtdG8tYS1kb20tZWxlbWVudCdcbiAgICAgICAgICAgICAgICAgICAgXS5qb2luKCcgJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgLy8gV2UgcnVuIHRoaXMgY2hlY2sgb25jZSwgbm8gbmVlZCB0byBhZGQgZGVwcyBoZXJlXG4gICAgICAgIC8vIFRPRE86IFNob3VsZCBiZSByZXdvcmsgdG8gaGFuZGxlIG9wdGlvbnMuZW5hYmxlZCBhbmQgY29udGVudFJlZiB1cGRhdGVzXG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG4gICAgY29uc3Qgc2V0VGFyZ2V0ID0gdXNlQ2FsbGJhY2tSZWYobnVsbCwgKHRhcmdldCk9PntcbiAgICAgICAgaWYgKHRhcmdldFJlZi5jdXJyZW50ICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICAgIHRhcmdldFJlZi5jdXJyZW50ID0gdGFyZ2V0O1xuICAgICAgICAgICAgdXBkYXRlUG9zaXRpb25NYW5hZ2VyKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvblBvc2l0aW9uaW5nRW5kID0gdXNlRXZlbnRDYWxsYmFjaygoKT0+e1xuICAgICAgICB2YXIgX29wdGlvbnNfb25Qb3NpdGlvbmluZ0VuZDtcbiAgICAgICAgcmV0dXJuIChfb3B0aW9uc19vblBvc2l0aW9uaW5nRW5kID0gb3B0aW9ucy5vblBvc2l0aW9uaW5nRW5kKSA9PT0gbnVsbCB8fCBfb3B0aW9uc19vblBvc2l0aW9uaW5nRW5kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfb3B0aW9uc19vblBvc2l0aW9uaW5nRW5kLmNhbGwob3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0Q29udGFpbmVyID0gdXNlQ2FsbGJhY2tSZWYobnVsbCwgKGNvbnRhaW5lcik9PntcbiAgICAgICAgaWYgKGNvbnRhaW5lclJlZi5jdXJyZW50ICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgICAgIHZhciBfY29udGFpbmVyUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICAoX2NvbnRhaW5lclJlZl9jdXJyZW50ID0gY29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jb250YWluZXJSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NvbnRhaW5lclJlZl9jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoUE9TSVRJT05JTkdfRU5EX0VWRU5ULCBvblBvc2l0aW9uaW5nRW5kKTtcbiAgICAgICAgICAgIGNvbnRhaW5lciA9PT0gbnVsbCB8fCBjb250YWluZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFBPU0lUSU9OSU5HX0VORF9FVkVOVCwgb25Qb3NpdGlvbmluZ0VuZCk7XG4gICAgICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCA9IGNvbnRhaW5lcjtcbiAgICAgICAgICAgIHVwZGF0ZVBvc2l0aW9uTWFuYWdlcigpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0QXJyb3cgPSB1c2VDYWxsYmFja1JlZihudWxsLCAoYXJyb3cpPT57XG4gICAgICAgIGlmIChhcnJvd1JlZi5jdXJyZW50ICE9PSBhcnJvdykge1xuICAgICAgICAgICAgYXJyb3dSZWYuY3VycmVudCA9IGFycm93O1xuICAgICAgICAgICAgdXBkYXRlUG9zaXRpb25NYW5hZ2VyKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBMZXQgdXNlcnMgdXNlIGNhbGxiYWNrIHJlZnMgc28gdGhleSBmZWVsIGxpa2UgJ25vcm1hbCcgRE9NIHJlZnNcbiAgICByZXR1cm4ge1xuICAgICAgICB0YXJnZXRSZWY6IHNldFRhcmdldCxcbiAgICAgICAgY29udGFpbmVyUmVmOiBzZXRDb250YWluZXIsXG4gICAgICAgIGFycm93UmVmOiBzZXRBcnJvd1xuICAgIH07XG59XG5mdW5jdGlvbiB1c2VQb3NpdGlvbmluZ09wdGlvbnMob3B0aW9ucykge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgeyBhbGlnbiwgYXJyb3dQYWRkaW5nLCBhdXRvU2l6ZTogcmF3QXV0b1NpemUsIGNvdmVyVGFyZ2V0LCBmbGlwQm91bmRhcnksIG9mZnNldCwgb3ZlcmZsb3dCb3VuZGFyeSwgcGlubmVkLCBwb3NpdGlvbiwgdW5zdGFibGVfZGlzYWJsZVRldGhlcjogZGlzYWJsZVRldGhlciwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlcHJlY2F0aW9uL2RlcHJlY2F0aW9uXG4gICAgcG9zaXRpb25GaXhlZCwgc3RyYXRlZ3ksIG92ZXJmbG93Qm91bmRhcnlQYWRkaW5nLCBmYWxsYmFja1Bvc2l0aW9ucywgdXNlVHJhbnNmb3JtLCBtYXRjaFRhcmdldFNpemUsIGRpc2FibGVVcGRhdGVPblJlc2l6ZSA9IGZhbHNlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHsgZGlyLCB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3QgaXNSdGwgPSBkaXIgPT09ICdydGwnO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSAoc3RyYXRlZ3kgIT09IG51bGwgJiYgc3RyYXRlZ3kgIT09IHZvaWQgMCA/IHN0cmF0ZWd5IDogcG9zaXRpb25GaXhlZCkgPyAnZml4ZWQnIDogJ2Fic29sdXRlJztcbiAgICBjb25zdCBhdXRvU2l6ZSA9IG5vcm1hbGl6ZUF1dG9TaXplKHJhd0F1dG9TaXplKTtcbiAgICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soKGNvbnRhaW5lciwgYXJyb3cpPT57XG4gICAgICAgIGNvbnN0IGhhc1Njcm9sbGFibGVFbGVtZW50ID0gaGFzU2Nyb2xsUGFyZW50KGNvbnRhaW5lcik7XG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmUgPSBbXG4gICAgICAgICAgICBhdXRvU2l6ZSAmJiByZXNldE1heFNpemVNaWRkbGV3YXJlKGF1dG9TaXplKSxcbiAgICAgICAgICAgIG1hdGNoVGFyZ2V0U2l6ZSAmJiBtYXRjaFRhcmdldFNpemVNaWRkbGV3YXJlKCksXG4gICAgICAgICAgICBvZmZzZXQgJiYgb2Zmc2V0TWlkZGxld2FyZShvZmZzZXQpLFxuICAgICAgICAgICAgY292ZXJUYXJnZXQgJiYgY292ZXJUYXJnZXRNaWRkbGV3YXJlKCksXG4gICAgICAgICAgICAhcGlubmVkICYmIGZsaXBNaWRkbGV3YXJlKHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgICAgICAgZmxpcEJvdW5kYXJ5LFxuICAgICAgICAgICAgICAgIGhhc1Njcm9sbGFibGVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGlzUnRsLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrUG9zaXRpb25zXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoaWZ0TWlkZGxld2FyZSh7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgICAgICAgIGhhc1Njcm9sbGFibGVFbGVtZW50LFxuICAgICAgICAgICAgICAgIG92ZXJmbG93Qm91bmRhcnksXG4gICAgICAgICAgICAgICAgZGlzYWJsZVRldGhlcixcbiAgICAgICAgICAgICAgICBvdmVyZmxvd0JvdW5kYXJ5UGFkZGluZyxcbiAgICAgICAgICAgICAgICBpc1J0bFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBhdXRvU2l6ZSAmJiBtYXhTaXplTWlkZGxld2FyZShhdXRvU2l6ZSwge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICBvdmVyZmxvd0JvdW5kYXJ5LFxuICAgICAgICAgICAgICAgIG92ZXJmbG93Qm91bmRhcnlQYWRkaW5nLFxuICAgICAgICAgICAgICAgIGlzUnRsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGludGVyc2VjdGluZ01pZGRsZXdhcmUoKSxcbiAgICAgICAgICAgIGFycm93ICYmIGFycm93TWlkZGxld2FyZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogYXJyb3csXG4gICAgICAgICAgICAgICAgcGFkZGluZzogYXJyb3dQYWRkaW5nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhpZGVNaWRkbGV3YXJlKHtcbiAgICAgICAgICAgICAgICBzdHJhdGVneTogJ3JlZmVyZW5jZUhpZGRlbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGlkZU1pZGRsZXdhcmUoe1xuICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiAnZXNjYXBlZCdcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0YXJnZXREb2N1bWVudCAmJiBkZXZ0b29scyh0YXJnZXREb2N1bWVudCwgZGV2dG9vbHNDYWxsYmFjayhvcHRpb25zKSlcbiAgICAgICAgXS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IHRvRmxvYXRpbmdVSVBsYWNlbWVudChhbGlnbiwgcG9zaXRpb24sIGlzUnRsKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIG1pZGRsZXdhcmUsXG4gICAgICAgICAgICBzdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgIHVzZVRyYW5zZm9ybSxcbiAgICAgICAgICAgIGRpc2FibGVVcGRhdGVPblJlc2l6ZVxuICAgICAgICB9O1xuICAgIH0sIC8vIE9wdGlvbnMgaXMgbWlzc2luZyBoZXJlLCBidXQgaXQncyBub3QgcmVxdWlyZWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgW1xuICAgICAgICBhbGlnbixcbiAgICAgICAgYXJyb3dQYWRkaW5nLFxuICAgICAgICBhdXRvU2l6ZSxcbiAgICAgICAgY292ZXJUYXJnZXQsXG4gICAgICAgIGRpc2FibGVUZXRoZXIsXG4gICAgICAgIGZsaXBCb3VuZGFyeSxcbiAgICAgICAgaXNSdGwsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgb3ZlcmZsb3dCb3VuZGFyeSxcbiAgICAgICAgcGlubmVkLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgb3ZlcmZsb3dCb3VuZGFyeVBhZGRpbmcsXG4gICAgICAgIGZhbGxiYWNrUG9zaXRpb25zLFxuICAgICAgICB1c2VUcmFuc2Zvcm0sXG4gICAgICAgIG1hdGNoVGFyZ2V0U2l6ZSxcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGRpc2FibGVVcGRhdGVPblJlc2l6ZVxuICAgIF0pO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlVmlydHVhbEVsZW1lbnRGcm9tQ2xpY2sgfSBmcm9tICcuL2NyZWF0ZVZpcnR1YWxFbGVtZW50RnJvbUNsaWNrJztcbi8qKlxuICogQGludGVybmFsXG4gKiBBIHN0YXRlIGhvb2sgdGhhdCBtYW5hZ2VzIGEgcG9wcGVyIHZpcnR1YWwgZWxlbWVudCBmcm9tIG1vdXNlZXZlbnRzLlxuICogVXNlZnVsIGZvciBzY2VuYXJpb3Mgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCBieSBtb3VzZSBjbGljayAoZS5nLiBjb250ZXh0bWVudSlcbiAqIFJlYWN0IHN5bnRoZXRpYyBldmVudHMgYXJlIG5vdCBwZXJzaXN0ZWQgYnkgdGhpcyBob29rXG4gKlxuICogQHBhcmFtIGluaXRpYWxTdGF0ZSAtIGluaXRpYWxpemVzIGEgdXNlciBwcm92aWRlZCBzdGF0ZSBzaW1pbGFyZSB0byB1c2VTdGF0ZVxuICogQHJldHVybnMgc3RhdGUgYW5kIGRpc3BhdGNoZXIgZm9yIGEgUG9wcGVyIHZpcnR1YWwgZWxlbWVudCB0aGF0IHVzZXMgbmF0aXZlL3N5bnRoZXRpYyBtb3VzZSBldmVudHNcbiAqLyBleHBvcnQgY29uc3QgdXNlUG9zaXRpb25pbmdNb3VzZVRhcmdldCA9IChpbml0aWFsU3RhdGUpPT57XG4gICAgY29uc3QgW3ZpcnR1YWxFbGVtZW50LCBzZXRWaXJ0dWFsRWxlbWVudF0gPSBSZWFjdC51c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgIGNvbnN0IHNldFZpcnR1YWxNb3VzZVRhcmdldCA9IChldmVudCk9PntcbiAgICAgICAgaWYgKGV2ZW50ID09PSB1bmRlZmluZWQgfHwgZXZlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZpcnR1YWxFbGVtZW50KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1vdXNlZXZlbnQ7XG4gICAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkpIHtcbiAgICAgICAgICAgIG1vdXNlZXZlbnQgPSBldmVudC5uYXRpdmVFdmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vdXNlZXZlbnQgPSBldmVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShtb3VzZWV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3VzZVBvc2l0aW9uaW5nTW91c2VUYXJnZXQgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIE1vdXNlRXZlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0VGFyZ2V0ID0gY3JlYXRlVmlydHVhbEVsZW1lbnRGcm9tQ2xpY2sobW91c2VldmVudCk7XG4gICAgICAgIHNldFZpcnR1YWxFbGVtZW50KGNvbnRleHRUYXJnZXQpO1xuICAgIH07XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdmlydHVhbEVsZW1lbnQsXG4gICAgICAgIHNldFZpcnR1YWxNb3VzZVRhcmdldFxuICAgIF07XG59O1xuIiwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuZXhwb3J0IGNvbnN0IFBvcG92ZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgcG9wb3ZlckNvbnRleHREZWZhdWx0VmFsdWUgPSB7XG4gICAgb3BlbjogZmFsc2UsXG4gICAgc2V0T3BlbjogKCk9Pm51bGwsXG4gICAgdG9nZ2xlT3BlbjogKCk9Pm51bGwsXG4gICAgdHJpZ2dlclJlZjoge1xuICAgICAgICBjdXJyZW50OiBudWxsXG4gICAgfSxcbiAgICBjb250ZW50UmVmOiB7XG4gICAgICAgIGN1cnJlbnQ6IG51bGxcbiAgICB9LFxuICAgIGFycm93UmVmOiB7XG4gICAgICAgIGN1cnJlbnQ6IG51bGxcbiAgICB9LFxuICAgIG9wZW5PbkNvbnRleHQ6IGZhbHNlLFxuICAgIG9wZW5PbkhvdmVyOiBmYWxzZSxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgICB0cmFwRm9jdXM6IGZhbHNlLFxuICAgIGlubGluZTogZmFsc2Vcbn07XG5leHBvcnQgY29uc3QgUG9wb3ZlclByb3ZpZGVyID0gUG9wb3ZlckNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUgPSAoc2VsZWN0b3IpPT51c2VDb250ZXh0U2VsZWN0b3IoUG9wb3ZlckNvbnRleHQsIChjdHggPSBwb3BvdmVyQ29udGV4dERlZmF1bHRWYWx1ZSk9PnNlbGVjdG9yKGN0eCkpO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCB1c2VNZXJnZWRSZWZzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VNb2RhbEF0dHJpYnV0ZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uLy4uL3BvcG92ZXJDb250ZXh0Jztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgUG9wb3ZlclN1cmZhY2UuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlUG9wb3ZlclN1cmZhY2VTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclBvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBQb3BvdmVyU3VyZmFjZVxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxEaXZFbGVtZW50IG9mIFBvcG92ZXJTdXJmYWNlXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVBvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgY29udGVudFJlZiA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5jb250ZW50UmVmKTtcbiAgICBjb25zdCBvcGVuT25Ib3ZlciA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuT25Ib3Zlcik7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5zZXRPcGVuKTtcbiAgICBjb25zdCBtb3VudE5vZGUgPSB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQubW91bnROb2RlKTtcbiAgICBjb25zdCBhcnJvd1JlZiA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5hcnJvd1JlZik7XG4gICAgY29uc3Qgc2l6ZSA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5zaXplKTtcbiAgICBjb25zdCB3aXRoQXJyb3cgPSB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQud2l0aEFycm93KTtcbiAgICBjb25zdCBhcHBlYXJhbmNlID0gdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LmFwcGVhcmFuY2UpO1xuICAgIGNvbnN0IHRyYXBGb2N1cyA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC50cmFwRm9jdXMpO1xuICAgIGNvbnN0IGluZXJ0VHJhcEZvY3VzID0gdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LmluZXJ0VHJhcEZvY3VzKTtcbiAgICBjb25zdCBpbmxpbmUgPSB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQuaW5saW5lKTtcbiAgICBjb25zdCB7IG1vZGFsQXR0cmlidXRlcyB9ID0gdXNlTW9kYWxBdHRyaWJ1dGVzKHtcbiAgICAgICAgdHJhcEZvY3VzLFxuICAgICAgICBsZWdhY3lUcmFwRm9jdXM6ICFpbmVydFRyYXBGb2N1cyxcbiAgICAgICAgYWx3YXlzRm9jdXNhYmxlOiAhdHJhcEZvY3VzXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGlubGluZSxcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgd2l0aEFycm93LFxuICAgICAgICBzaXplLFxuICAgICAgICBhcnJvd1JlZixcbiAgICAgICAgbW91bnROb2RlLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnZGl2J1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYGNvbnRlbnRSZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHVzZU1lcmdlZFJlZnMocmVmLCBjb250ZW50UmVmKSxcbiAgICAgICAgICAgIHJvbGU6IHRyYXBGb2N1cyA/ICdkaWFsb2cnIDogJ2dyb3VwJyxcbiAgICAgICAgICAgICdhcmlhLW1vZGFsJzogdHJhcEZvY3VzID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLm1vZGFsQXR0cmlidXRlcyxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSlcbiAgICB9O1xuICAgIGNvbnN0IHsgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXJPcmlnaW5hbCwgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVPcmlnaW5hbCwgb25LZXlEb3duOiBvbktleURvd25PcmlnaW5hbCB9ID0gc3RhdGUucm9vdDtcbiAgICBzdGF0ZS5yb290Lm9uTW91c2VFbnRlciA9IChlKT0+e1xuICAgICAgICBpZiAob3Blbk9uSG92ZXIpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgb25Nb3VzZUVudGVyT3JpZ2luYWwgPT09IG51bGwgfHwgb25Nb3VzZUVudGVyT3JpZ2luYWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uTW91c2VFbnRlck9yaWdpbmFsKGUpO1xuICAgIH07XG4gICAgc3RhdGUucm9vdC5vbk1vdXNlTGVhdmUgPSAoZSk9PntcbiAgICAgICAgaWYgKG9wZW5PbkhvdmVyKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGUsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBvbk1vdXNlTGVhdmVPcmlnaW5hbCA9PT0gbnVsbCB8fCBvbk1vdXNlTGVhdmVPcmlnaW5hbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Nb3VzZUxlYXZlT3JpZ2luYWwoZSk7XG4gICAgfTtcbiAgICBzdGF0ZS5yb290Lm9uS2V5RG93biA9IChlKT0+e1xuICAgICAgICB2YXIgX2NvbnRlbnRSZWZfY3VycmVudDtcbiAgICAgICAgLy8gb25seSBjbG9zZSBpZiB0aGUgZXZlbnQgaGFwcGVuZWQgaW5zaWRlIHRoZSBjdXJyZW50IHBvcG92ZXJcbiAgICAgICAgLy8gSWYgdXNpbmcgYSBzdGFjayBvZiBpbmxpbmUgcG9wb3ZlcnMsIHRoZSB1c2VyIHNob3VsZCBjYWxsIGBzdG9wUHJvcGFnYXRpb25gIHRvIGF2b2lkIGRpc21pc3NpbmcgdGhlIGVudGlyZSBzdGFja1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmICgoX2NvbnRlbnRSZWZfY3VycmVudCA9IGNvbnRlbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2NvbnRlbnRSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NvbnRlbnRSZWZfY3VycmVudC5jb250YWlucyhlLnRhcmdldCkpKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRPcGVuKGUsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBvbktleURvd25PcmlnaW5hbCA9PT0gbnVsbCB8fCBvbktleURvd25PcmlnaW5hbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25LZXlEb3duT3JpZ2luYWwoZSk7XG4gICAgfTtcbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIiwiaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBUaGUgZnVuY3Rpb24gdGhhdCBub3JtYWxpemVzIHRoZSBgbW91bnROb2RlYCBwcm9wIGludG8gYW4gb2JqZWN0IHdpdGggZWxlbWVudCBhbmQgY2xhc3NOYW1lIHByb3BzLlxuICpcbiAqIEBwYXJhbSBtb3VudE5vZGUgLSBhbiBIVE1MIGVsZW1lbnQgb3IgYW4gb2JqZWN0IHdpdGggcHJvcHNcbiAqLyBleHBvcnQgZnVuY3Rpb24gdG9Nb3VudE5vZGVQcm9wcyhtb3VudE5vZGUpIHtcbiAgICBpZiAoaXNIVE1MRWxlbWVudChtb3VudE5vZGUpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbGVtZW50OiBtb3VudE5vZGVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtb3VudE5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChtb3VudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW91bnROb2RlO1xuICAgIH1cbiAgICByZXR1cm4ge307XG59XG4iLCIvLyBzcmMvdXNlSXNTdHJpY3RNb2RlLnRzXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBnZXRDdXJyZW50T3duZXIgPSAoKSA9PiBSZWFjdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpO1xudmFyIHVzZUlzU3RyaWN0TW9kZSA9ICgpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBpc1N0cmljdE1vZGUgPSBSZWFjdC51c2VSZWYodm9pZCAwKTtcbiAgY29uc3QgcmVhY3RNYWpvclZlcnNpb24gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gTnVtYmVyKFJlYWN0LnZlcnNpb24uc3BsaXQoXCIuXCIpWzBdKTtcbiAgfSwgW1JlYWN0LnZlcnNpb25dKTtcbiAgaWYgKGlzTmFOKHJlYWN0TWFqb3JWZXJzaW9uKSB8fCByZWFjdE1ham9yVmVyc2lvbiA8IDE4KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChpc1N0cmljdE1vZGUuY3VycmVudCA9PT0gdm9pZCAwKSB7XG4gICAgbGV0IGN1cnJlbnRPd25lciA9IGdldEN1cnJlbnRPd25lcigpO1xuICAgIHdoaWxlIChjdXJyZW50T3duZXIgJiYgY3VycmVudE93bmVyLnJldHVybikge1xuICAgICAgY3VycmVudE93bmVyID0gY3VycmVudE93bmVyLnJldHVybjtcbiAgICAgIGlmIChjdXJyZW50T3duZXIudHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCBjdXJyZW50T3duZXIuZWxlbWVudFR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUpIHtcbiAgICAgICAgaXNTdHJpY3RNb2RlLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gISFpc1N0cmljdE1vZGUuY3VycmVudDtcbn07XG5cbi8vIHNyYy91c2VEaXNwb3NhYmxlLnRzXG5pbXBvcnQgKiBhcyBSZWFjdDQgZnJvbSBcInJlYWN0XCI7XG5cbi8vIHNyYy91c2VTdHJpY3RFZmZlY3QudHNcbmltcG9ydCAqIGFzIFJlYWN0MiBmcm9tIFwicmVhY3RcIjtcbnZhciBlZmZlY3RTZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKTtcbmZ1bmN0aW9uIHVzZVN0cmljdEVmZmVjdChlZmZlY3QsIGRlcHMpIHtcbiAgY29uc3QgY3VycmVudE93bmVyID0gZ2V0Q3VycmVudE93bmVyKCk7XG4gIFJlYWN0Mi51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWZmZWN0U2V0LmhhcyhjdXJyZW50T3duZXIpKSB7XG4gICAgICBlZmZlY3RTZXQuYWRkKGN1cnJlbnRPd25lcik7XG4gICAgICBlZmZlY3QoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGlzcG9zZSA9IGVmZmVjdCgpO1xuICAgIHJldHVybiBkaXNwb3NlO1xuICB9LCBkZXBzKTtcbn1cblxuLy8gc3JjL3VzZVN0cmljdE1lbW8udHNcbmltcG9ydCAqIGFzIFJlYWN0MyBmcm9tIFwicmVhY3RcIjtcbnZhciBtZW1vU2V0ID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrU2V0KCk7XG5mdW5jdGlvbiB1c2VTdHJpY3RNZW1vKGZhY3RvcnksIGRlcHMpIHtcbiAgcmV0dXJuIFJlYWN0My51c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50T3duZXIgPSBnZXRDdXJyZW50T3duZXIoKTtcbiAgICBpZiAoIW1lbW9TZXQuaGFzKGN1cnJlbnRPd25lcikpIHtcbiAgICAgIG1lbW9TZXQuYWRkKGN1cnJlbnRPd25lcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGZhY3RvcnkoKTtcbiAgfSwgZGVwcyk7XG59XG5cbi8vIHNyYy91c2VEaXNwb3NhYmxlLnRzXG5mdW5jdGlvbiB1c2VEaXNwb3NhYmxlKGZhY3RvcnksIGRlcHMpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBpc1N0cmljdE1vZGUgPSB1c2VJc1N0cmljdE1vZGUoKSAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCI7XG4gIGNvbnN0IHVzZU1lbW80ID0gaXNTdHJpY3RNb2RlID8gdXNlU3RyaWN0TWVtbyA6IFJlYWN0NC51c2VNZW1vO1xuICBjb25zdCB1c2VFZmZlY3QzID0gaXNTdHJpY3RNb2RlID8gdXNlU3RyaWN0RWZmZWN0IDogUmVhY3Q0LnVzZUVmZmVjdDtcbiAgY29uc3QgW2Rpc3Bvc2FibGUsIGRpc3Bvc2VdID0gKF9hID0gdXNlTWVtbzQoKCkgPT4gZmFjdG9yeSgpLCBkZXBzKSkgIT0gbnVsbCA/IF9hIDogW1xuICAgIG51bGwsXG4gICAgKCkgPT4gbnVsbFxuICBdO1xuICB1c2VFZmZlY3QzKCgpID0+IHtcbiAgICByZXR1cm4gZGlzcG9zZTtcbiAgfSwgZGVwcyk7XG4gIHJldHVybiBkaXNwb3NhYmxlO1xufVxuZXhwb3J0IHtcbiAgdXNlRGlzcG9zYWJsZSxcbiAgdXNlSXNTdHJpY3RNb2RlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxld29nSUNKMlpYSnphVzl1SWpvZ015d0tJQ0FpYzI5MWNtTmxjeUk2SUZzaUxpNHZjM0pqTDNWelpVbHpVM1J5YVdOMFRXOWtaUzUwY3lJc0lDSXVMaTl6Y21NdmRYTmxSR2x6Y0c5ellXSnNaUzUwY3lJc0lDSXVMaTl6Y21NdmRYTmxVM1J5YVdOMFJXWm1aV04wTG5Seklpd2dJaTR1TDNOeVl5OTFjMlZUZEhKcFkzUk5aVzF2TG5SeklsMHNDaUFnSW5OdmRYSmpaWE5EYjI1MFpXNTBJam9nV3lKcGJYQnZjblFnS2lCaGN5QlNaV0ZqZENCbWNtOXRJRndpY21WaFkzUmNJanRjYmx4dUx5b3FYRzRnS2lCQWNtVjBkWEp1Y3lCRGRYSnlaVzUwSUhKbFlXTjBJR1pwWW1WeUlHSmxhVzVuSUhKbGJtUmxjbVZrWEc0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUkRkWEp5Wlc1MFQzZHVaWElnUFNBb0tTQTlQbHh1SUNBdkx5QkFkSE10YVdkdWIzSmxJQzBnZFhOcGJtY2djbVZoWTNRZ2FXNTBaWEp1WVd4elhHNGdJRkpsWVdOMExsOWZVMFZEVWtWVVgwbE9WRVZTVGtGTVUxOUVUMTlPVDFSZlZWTkZYMDlTWDFsUFZWOVhTVXhNWDBKRlgwWkpVa1ZFTGxKbFlXTjBRM1Z5Y21WdWRFOTNibVZ5WEc0Z0lDQWdMbU4xY25KbGJuUTdYRzVjYm1OdmJuTjBJRkpGUVVOVVgxTlVVa2xEVkY5TlQwUkZYMVJaVUVVZ1BTQXZLaU5mWDFCVlVrVmZYeW92SUZONWJXSnZiQzVtYjNJb1hDSnlaV0ZqZEM1emRISnBZM1JmYlc5a1pWd2lLVHRjYmx4dUx5b3FYRzRnS2lCVWNtRjJaWEp6WlhNZ2RYQWdkR2hsSUZKbFlXTjBJR1pwWW1WeUlIUnlaV1VnZEc4Z1ptbHVaQ0IwYUdVZ1UzUnlhV04wVFc5a1pTQmpiMjF3YjI1bGJuUXVYRzRnS2lCT2IzUmxPaUJVYUdseklHOXViSGtnWkdWMFpXTjBjeUJ6ZEhKcFkzUWdiVzlrWlNCbWNtOXRJRkpsWVdOMElENDlJREU0WEc0Z0tpQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZjbVZoWTNSM1p5OXlaV0ZqZEMweE9DOWthWE5qZFhOemFXOXVjeTh4T1Z4dUlDb2dRSEpsZEhWeWJuTWdTV1lnYzNSeWFXTjBJRzF2WkdVZ2FYTWdZbVZwYm1jZ2RYTmxaQ0JwYmlCMGFHVWdVbVZoWTNRZ2RISmxaVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnZFhObFNYTlRkSEpwWTNSTmIyUmxJRDBnS0NrNklHSnZiMnhsWVc0Z1BUNGdlMXh1SUNBdkx5QlVhR2x6SUdOb1pXTnJJSFpwYjJ4aGRHVnpJRkoxYkdWeklHOW1JRWh2YjJ0ekxDQmlkWFFnWENKd2NtOWpaWE56TG1WdWRpNU9UMFJGWDBWT1Zsd2lJR1J2WlhNZ2JtOTBJR05vWVc1blpTQnBiaUJpZFc1a2JHVmNiaUFnTHk4Z2IzSWdaSFZ5YVc1bklHRndjR3hwWTJGMGFXOXVJR3hwWm1WamVXTnNaVnh1SUNCcFppQW9jSEp2WTJWemN5NWxibll1VGs5RVJWOUZUbFlnUFQwOUlGd2ljSEp2WkhWamRHbHZibHdpS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2FYTlRkSEpwWTNSTmIyUmxJRDBnVW1WaFkzUXVkWE5sVW1WbVBHSnZiMnhsWVc0Z2ZDQjFibVJsWm1sdVpXUStLSFZ1WkdWbWFXNWxaQ2s3WEc0Z0lHTnZibk4wSUhKbFlXTjBUV0ZxYjNKV1pYSnphVzl1SUQwZ1VtVmhZM1F1ZFhObFRXVnRieWdvS1NBOVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUU1MWJXSmxjaWhTWldGamRDNTJaWEp6YVc5dUxuTndiR2wwS0Z3aUxsd2lLVnN3WFNrN1hHNGdJSDBzSUZ0U1pXRmpkQzUyWlhKemFXOXVYU2s3WEc1Y2JpQWdhV1lnS0dselRtRk9LSEpsWVdOMFRXRnFiM0pXWlhKemFXOXVLU0I4ZkNCeVpXRmpkRTFoYW05eVZtVnljMmx2YmlBOElERTRLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQjlYRzVjYmlBZ2FXWWdLR2x6VTNSeWFXTjBUVzlrWlM1amRYSnlaVzUwSUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQnNaWFFnWTNWeWNtVnVkRTkzYm1WeUlEMGdaMlYwUTNWeWNtVnVkRTkzYm1WeUtDazdYRzRnSUNBZ2QyaHBiR1VnS0dOMWNuSmxiblJQZDI1bGNpQW1KaUJqZFhKeVpXNTBUM2R1WlhJdWNtVjBkWEp1S1NCN1hHNGdJQ0FnSUNCamRYSnlaVzUwVDNkdVpYSWdQU0JqZFhKeVpXNTBUM2R1WlhJdWNtVjBkWEp1TzF4dUlDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFQzZHVaWEl1ZEhsd1pTQTlQVDBnVWtWQlExUmZVMVJTU1VOVVgwMVBSRVZmVkZsUVJTQjhmRnh1SUNBZ0lDQWdJQ0JqZFhKeVpXNTBUM2R1WlhJdVpXeGxiV1Z1ZEZSNWNHVWdQVDA5SUZKRlFVTlVYMU5VVWtsRFZGOU5UMFJGWDFSWlVFVmNiaUFnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0JwYzFOMGNtbGpkRTF2WkdVdVkzVnljbVZ1ZENBOUlIUnlkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY21WMGRYSnVJQ0VoYVhOVGRISnBZM1JOYjJSbExtTjFjbkpsYm5RN1hHNTlPMXh1SWl3Z0ltbHRjRzl5ZENBcUlHRnpJRkpsWVdOMElHWnliMjBnWENKeVpXRmpkRndpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJFYVhOd2IzTmhZbXhsUm1GamRHOXllU0I5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCMWMyVkpjMU4wY21samRFMXZaR1VnZlNCbWNtOXRJRndpTGk5MWMyVkpjMU4wY21samRFMXZaR1ZjSWp0Y2JtbHRjRzl5ZENCN0lIVnpaVk4wY21samRFVm1abVZqZENCOUlHWnliMjBnWENJdUwzVnpaVk4wY21samRFVm1abVZqZEZ3aU8xeHVhVzF3YjNKMElIc2dkWE5sVTNSeWFXTjBUV1Z0YnlCOUlHWnliMjBnWENJdUwzVnpaVk4wY21samRFMWxiVzljSWp0Y2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdaR2x6Y0c5ellXSnNaU0JwYm5OMFlXNWpaU0JrZFhKcGJtY2dLaXB5Wlc1a1pYSWdkR2x0WlNvcUlIUm9ZWFFnZDJsc2JGeHVJQ29nWW1VZ1kzSmxZWFJsWkNCdmJtTmxJQ2hpWVhObFpDQnZiaUJrWlhCbGJtUmxibU41SUdGeWNtRjVLU0JsZG1WdUlHUjFjbWx1WnlCemRISnBZM1FnYlc5a1pTNWNiaUFxSUZSb1pTQmthWE53YjNOaFlteGxJSGRwYkd3Z1ltVWdaR2x6Y0c5elpXUWdZbUZ6WldRZ2IyNGdkR2hsSUdSbGNHVnVaR1Z1WTNrZ1lYSnlZWGtnYzJsdGFXeGhjaUIwYjF4dUlDb2dkWE5sUldabVpXTjBMbHh1SUNwY2JpQXFJRngxTWpaQk1GeDFSa1V3UmlCVWFHbHpJR05oYmlCdmJteDVJR0psSUdOaGJHeGxaQ0FxS205dVkyVXFLaUJ3WlhJZ1kyOXRjRzl1Wlc1MFhHNGdLaUJBY0dGeVlXMGdabUZqZEc5eWVTQXRJR1poWTNSdmNua2dabTl5SUdScGMzQnZjMkZpYkdVZ1lXNWtJR2wwY3lCa2FYTndiM05sSUdaMWJtTjBhVzl1WEc0Z0tpQkFjR0Z5WVcwZ1pHVndjeUF0SUZOcGJXbHNZWElnZEc4Z1lTQlNaV0ZqZENCa1pYQmxibVJsYm1ONUlHRnljbUY1WEc0Z0tpQkFjbVYwZFhKdWN5QXRJRlJvWlNCa2FYTndiM05oWW14bElHbHVjM1JoYm1ObFhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIxYzJWRWFYTndiM05oWW14bFBGUkpibk4wWVc1alpUNG9YRzRnSUdaaFkzUnZjbms2SUVScGMzQnZjMkZpYkdWR1lXTjBiM0o1UEZSSmJuTjBZVzVqWlQ0c1hHNGdJR1JsY0hNNklHRnVlVnRkWEc0cElIdGNiaUFnTHk4Z1NXNGdjSEp2WkhWamRHbHZiaXdnYzNSeWFXTjBJRzF2WkdVZ1pHOWxjeUJ1YjNRZ2NtVnhkV2x5WlNCemNHVmphV0ZzSUdoaGJtUnNhVzVuWEc0Z0lHTnZibk4wSUdselUzUnlhV04wVFc5a1pTQTlYRzRnSUNBZ2RYTmxTWE5UZEhKcFkzUk5iMlJsS0NrZ0ppWWdjSEp2WTJWemN5NWxibll1VGs5RVJWOUZUbFlnSVQwOUlGd2ljSEp2WkhWamRHbHZibHdpTzF4dVhHNGdJR052Ym5OMElIVnpaVTFsYlc4Z1BTQnBjMU4wY21samRFMXZaR1VnUHlCMWMyVlRkSEpwWTNSTlpXMXZJRG9nVW1WaFkzUXVkWE5sVFdWdGJ6dGNiaUFnWTI5dWMzUWdkWE5sUldabVpXTjBJRDBnYVhOVGRISnBZM1JOYjJSbElEOGdkWE5sVTNSeWFXTjBSV1ptWldOMElEb2dVbVZoWTNRdWRYTmxSV1ptWldOME8xeHVYRzRnSUdOdmJuTjBJRnRrYVhOd2IzTmhZbXhsTENCa2FYTndiM05sWFNBOUlIVnpaVTFsYlc4b0tDa2dQVDRnWm1GamRHOXllU2dwTENCa1pYQnpLU0EvUHlCYlhHNGdJQ0FnYm5Wc2JDeGNiaUFnSUNBb0tTQTlQaUJ1ZFd4c0xGeHVJQ0JkTzF4dUlDQjFjMlZGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUJrYVhOd2IzTmxPMXh1SUNCOUxDQmtaWEJ6S1R0Y2JseHVJQ0J5WlhSMWNtNGdaR2x6Y0c5ellXSnNaVHRjYm4xY2JpSXNJQ0pwYlhCdmNuUWdLaUJoY3lCU1pXRmpkQ0JtY205dElGd2ljbVZoWTNSY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEVOMWNuSmxiblJQZDI1bGNpQjlJR1p5YjIwZ1hDSXVMM1Z6WlVselUzUnlhV04wVFc5a1pWd2lPMXh1WEc0dkx5QjNaU0JyYm05M0lITjBjbWxqZENCdGIyUmxJSGRwYkd3Z2NtVnVaR1Z5SUhWelpVMWxiVzhnWm1GamIzSjVJSFIzYVdObFhHNHZMeUJyWldWd0lHRWdkMlZoYXlCelpYUWdkRzhnWkdWMFpXTjBJSGRvWlc0Z2RHaGxJSE5sWTI5dVpDQnlaVzVrWlhJZ2FHRndjR1Z1YzF4dVkyOXVjM1FnWldabVpXTjBVMlYwSUQwZ2JtVjNJRmRsWVd0VFpYUW9LVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhWelpWTjBjbWxqZEVWbVptVmpkQ2hjYmlBZ1pXWm1aV04wT2lBb0tTQTlQaUFvS1NBOVBpQjJiMmxrTEZ4dUlDQmtaWEJ6T2lCU1pXRmpkQzVFWlhCbGJtUmxibU41VEdsemRDQjhJSFZ1WkdWbWFXNWxaRnh1S1NCN1hHNGdJR052Ym5OMElHTjFjbkpsYm5SUGQyNWxjaUE5SUdkbGRFTjFjbkpsYm5SUGQyNWxjaWdwTzF4dUlDQlNaV0ZqZEM1MWMyVkZabVpsWTNRb0tDa2dQVDRnZTF4dUlDQWdJR2xtSUNnaFpXWm1aV04wVTJWMExtaGhjeWhqZFhKeVpXNTBUM2R1WlhJcEtTQjdYRzRnSUNBZ0lDQmxabVpsWTNSVFpYUXVZV1JrS0dOMWNuSmxiblJQZDI1bGNpazdYRzRnSUNBZ0lDQmxabVpsWTNRb0tUdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQmthWE53YjNObElEMGdaV1ptWldOMEtDazdYRzRnSUNBZ2NtVjBkWEp1SUdScGMzQnZjMlU3WEc0Z0lIMHNJR1JsY0hNcE8xeHVmVnh1SWl3Z0ltbHRjRzl5ZENBcUlHRnpJRkpsWVdOMElHWnliMjBnWENKeVpXRmpkRndpTzF4dWFXMXdiM0owSUhzZ1oyVjBRM1Z5Y21WdWRFOTNibVZ5SUgwZ1puSnZiU0JjSWk0dmRYTmxTWE5UZEhKcFkzUk5iMlJsWENJN1hHNWNiaTh2SUhkbElHdHViM2NnYzNSeWFXTjBJRzF2WkdVZ2QybHNiQ0J5Wlc1a1pYSWdkWE5sVFdWdGJ5Qm1ZV052Y25rZ2RIZHBZMlZjYmk4dklHdGxaWEFnWVNCM1pXRnJJSE5sZENCMGJ5QmtaWFJsWTNRZ2QyaGxiaUIwYUdVZ2MyVmpiMjVrSUhKbGJtUmxjaUJvWVhCd1pXNXpYRzVqYjI1emRDQnRaVzF2VTJWMElEMGdibVYzSUZkbFlXdFRaWFFvS1R0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIVnpaVk4wY21samRFMWxiVzg4VkUxbGJXOXBlbVZrUGloY2JpQWdabUZqZEc5eWVUb2dLQ2tnUFQ0Z1lXNTVMRnh1SUNCa1pYQnpPaUJTWldGamRDNUVaWEJsYm1SbGJtTjVUR2x6ZENCOElIVnVaR1ZtYVc1bFpGeHVLVG9nVkUxbGJXOXBlbVZrSUh3Z2JuVnNiQ0I3WEc0Z0lISmxkSFZ5YmlCU1pXRmpkQzUxYzJWTlpXMXZLQ2dwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JqZFhKeVpXNTBUM2R1WlhJZ1BTQm5aWFJEZFhKeVpXNTBUM2R1WlhJb0tUdGNiaUFnSUNCcFppQW9JVzFsYlc5VFpYUXVhR0Z6S0dOMWNuSmxiblJQZDI1bGNpa3BJSHRjYmlBZ0lDQWdJRzFsYlc5VFpYUXVZV1JrS0dOMWNuSmxiblJQZDI1bGNpazdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1ptRmpkRzl5ZVNncE8xeHVJQ0I5TENCa1pYQnpLVHRjYm4xY2JpSmRMQW9nSUNKdFlYQndhVzVuY3lJNklDSTdRVUZCUVN4WlFVRlpMRmRCUVZjN1FVRkxhRUlzU1VGQlRTeHJRa0ZCYTBJc1RVRkZka0lzZVVSQlFXMUVMR3RDUVVOMFJEdEJRVVZNTEVsQlFVMHNlVUpCUVhWRExIVkNRVUZQTEVsQlFVa3NiVUpCUVcxQ08wRkJVWEJGTEVsQlFVMHNhMEpCUVd0Q0xFMUJRV1U3UVVGSE5VTXNUVUZCU1N4UlFVRlJMRWxCUVVrc1lVRkJZU3hqUVVGak8wRkJRM3BETEZkQlFVODdRVUZCUVN4RlFVTlVPMEZCUlVFc1VVRkJUU3hsUVVGeFFpeGhRVUUwUWl4TlFVRlRPMEZCUTJoRkxGRkJRVTBzYjBKQlFUQkNMR05CUVZFc1RVRkJUVHRCUVVNMVF5eFhRVUZQTEU5QlFXRXNZMEZCVVN4TlFVRk5MRWRCUVVjc1JVRkJSU3hGUVVGRk8wRkJRVUVzUlVGRE0wTXNSMEZCUnl4RFFVRlBMR0ZCUVU4c1EwRkJRenRCUVVWc1FpeE5RVUZKTEUxQlFVMHNhVUpCUVdsQ0xFdEJRVXNzYjBKQlFXOUNMRWxCUVVrN1FVRkRkRVFzVjBGQlR6dEJRVUZCTEVWQlExUTdRVUZGUVN4TlFVRkpMR0ZCUVdFc1dVRkJXU3hSUVVGWE8wRkJRM1JETEZGQlFVa3NaVUZCWlN4blFrRkJaMEk3UVVGRGJrTXNWMEZCVHl4blFrRkJaMElzWVVGQllTeFJRVUZSTzBGQlF6RkRMSEZDUVVGbExHRkJRV0U3UVVGRE5VSXNWVUZEUlN4aFFVRmhMRk5CUVZNc01FSkJRM1JDTEdGQlFXRXNaMEpCUVdkQ0xIZENRVU0zUWp0QlFVTkJMSEZDUVVGaExGVkJRVlU3UVVGQlFTeE5RVU42UWp0QlFVRkJMRWxCUTBZN1FVRkJRU3hGUVVOR08wRkJSVUVzVTBGQlR5eERRVUZETEVOQlFVTXNZVUZCWVR0QlFVTjRRanM3TzBGRGFFUkJMRmxCUVZsQkxGbEJRVmM3T3p0QlEwRjJRaXhaUVVGWlF5eFpRVUZYTzBGQlMzWkNMRWxCUVUwc1dVRkJXU3h2UWtGQlNTeFJRVUZSTzBGQlJYWkNMRk5CUVZNc1owSkJRMlFzVVVGRFFTeE5RVU5CTzBGQlEwRXNVVUZCVFN4bFFVRmxMR2RDUVVGblFqdEJRVU55UXl4RlFVRk5MR2xDUVVGVkxFMUJRVTA3UVVGRGNFSXNVVUZCU1N4RFFVRkRMRlZCUVZVc1NVRkJTU3haUVVGWkxFZEJRVWM3UVVGRGFFTXNaMEpCUVZVc1NVRkJTU3haUVVGWk8wRkJRekZDTEdGQlFVODdRVUZEVUR0QlFVRkJMRWxCUTBZN1FVRkZRU3hWUVVGTkxGVkJRVlVzVDBGQlR6dEJRVU4yUWl4WFFVRlBPMEZCUVVFc1JVRkRWQ3hIUVVGSExFbEJRVWs3UVVGRFZEczdPMEZEZEVKQkxGbEJRVmxETEZsQlFWYzdRVUZMZGtJc1NVRkJUU3hWUVVGVkxHOUNRVUZKTEZGQlFWRTdRVUZGY2tJc1UwRkJVeXhqUVVOa0xGTkJRMEVzVFVGRGEwSTdRVUZEYkVJc1UwRkJZU3hsUVVGUkxFMUJRVTA3UVVGRGVrSXNWVUZCVFN4bFFVRmxMR2RDUVVGblFqdEJRVU55UXl4UlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxGbEJRVmtzUjBGQlJ6dEJRVU01UWl4alFVRlJMRWxCUVVrc1dVRkJXVHRCUVVONFFpeGhRVUZQTzBGQlFVRXNTVUZEVkR0QlFVVkJMRmRCUVU4c1VVRkJVVHRCUVVGQkxFVkJRMnBDTEVkQlFVY3NTVUZCU1R0QlFVTlVPenM3UVVaSVR5eFRRVUZUTEdOQlEyUXNVMEZEUVN4TlFVTkJPMEZCY0VKR08wRkJjMEpGTEZGQlFVMHNaVUZEU2l4blFrRkJaMElzUzBGQlN5eFJRVUZSTEVsQlFVa3NZVUZCWVR0QlFVVm9SQ3hSUVVGTlF5eFhRVUZWTEdWQlFXVXNaMEpCUVhOQ08wRkJRM0pFTEZGQlFVMURMR0ZCUVZrc1pVRkJaU3hyUWtGQmQwSTdRVUZGZWtRc1VVRkJUU3hEUVVGRExGbEJRVmtzVDBGQlR5eExRVUZKTEV0QlFVRkVMRk5CUVZFc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeE5RVUUzUWl4WlFVRnJRenRCUVVGQkxFbEJRemxFTzBGQlFVRXNTVUZEUVN4TlFVRk5PMEZCUVVFc1JVRkRVanRCUVVOQkxFVkJRVUZETEZkQlFWVXNUVUZCVFR0QlFVTmtMRmRCUVU4N1FVRkJRU3hGUVVOVUxFZEJRVWNzU1VGQlNUdEJRVVZRTEZOQlFVODdRVUZEVkRzaUxBb2dJQ0p1WVcxbGN5STZJRnNpVW1WaFkzUWlMQ0FpVW1WaFkzUWlMQ0FpVW1WaFkzUWlMQ0FpZFhObFRXVnRieUlzSUNKMWMyVkZabVpsWTNRaVhRcDlDZz09IiwiaW1wb3J0IHsgX19zdHlsZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5leHBvcnQgY29uc3QgdXNlUG9ydGFsTW91bnROb2RlU3R5bGVzU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIHFoZjh4cTogXCJmMWV1djQzZlwiLFxuICAgIEJoemV3eHo6IFwiZjE1dHd0dWtcIixcbiAgICBveWg3bXo6IFtcImYxdmdjMnMzXCIsIFwiZjFlMzFiNGRcIl0sXG4gICAgajM1amJxOiBbXCJmMWUzMWI0ZFwiLCBcImYxdmdjMnMzXCJdLFxuICAgIEJqM3JoMWg6IFwiZjQ5NHdvaFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxZXV2NDNme3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjE1dHd0dWt7dG9wOjA7fVwiLCBcIi5mMXZnYzJzM3tsZWZ0OjA7fVwiLCBcIi5mMWUzMWI0ZHtyaWdodDowO31cIiwgXCIuZjQ5NHdvaHt6LWluZGV4OjEwMDAwMDA7fVwiXVxufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VQb3J0YWxNb3VudE5vZGVTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRoZW1lQ2xhc3NOYW1lX3Vuc3RhYmxlIGFzIHVzZVRoZW1lQ2xhc3NOYW1lLCB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50LCB1c2VQb3J0YWxNb3VudE5vZGUgYXMgdXNlUG9ydGFsTW91bnROb2RlQ29udGV4dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdXNlRm9jdXNWaXNpYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdXNlRGlzcG9zYWJsZSB9IGZyb20gJ3VzZS1kaXNwb3NhYmxlJztcbmltcG9ydCB7IHVzZVBvcnRhbE1vdW50Tm9kZVN0eWxlc1N0eWxlcyB9IGZyb20gJy4vdXNlUG9ydGFsTW91bnROb2RlU3R5bGVzLnN0eWxlcyc7XG5jb25zdCB1c2VJbnNlcnRpb25FZmZlY3QgPSBSZWFjdFsndXNlSW5zZXJ0aW9uJyArICdFZmZlY3QnXTtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBlbGVtZW50IG9uIGEgXCJkb2N1bWVudC5ib2R5XCIgdG8gbW91bnQgcG9ydGFscy5cbiAqLyBleHBvcnQgY29uc3QgdXNlUG9ydGFsTW91bnROb2RlID0gKG9wdGlvbnMpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50LCBkaXIgfSA9IHVzZUZsdWVudCgpO1xuICAgIGNvbnN0IG1vdW50Tm9kZSA9IHVzZVBvcnRhbE1vdW50Tm9kZUNvbnRleHQoKTtcbiAgICBjb25zdCBmb2N1c1Zpc2libGVSZWYgPSB1c2VGb2N1c1Zpc2libGUoKTtcbiAgICBjb25zdCBjbGFzc2VzID0gdXNlUG9ydGFsTW91bnROb2RlU3R5bGVzU3R5bGVzKCk7XG4gICAgY29uc3QgdGhlbWVDbGFzc05hbWUgPSB1c2VUaGVtZUNsYXNzTmFtZSgpO1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0aGVtZUNsYXNzTmFtZSwgY2xhc3Nlcy5yb290LCBvcHRpb25zLmNsYXNzTmFtZSk7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZSA9IG1vdW50Tm9kZSAhPT0gbnVsbCAmJiBtb3VudE5vZGUgIT09IHZvaWQgMCA/IG1vdW50Tm9kZSA6IHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5ib2R5O1xuICAgIGNvbnN0IGVsZW1lbnQgPSB1c2VEaXNwb3NhYmxlKCgpPT57XG4gICAgICAgIGlmICh0YXJnZXROb2RlID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICgpPT5udWxsXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB0YXJnZXROb2RlLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRhcmdldE5vZGUuYXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuZXdFbGVtZW50LFxuICAgICAgICAgICAgKCk9Pm5ld0VsZW1lbnQucmVtb3ZlKClcbiAgICAgICAgXTtcbiAgICB9LCBbXG4gICAgICAgIHRhcmdldE5vZGVcbiAgICBdKTtcbiAgICBpZiAodXNlSW5zZXJ0aW9uRWZmZWN0KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICB1c2VJbnNlcnRpb25FZmZlY3QoKCk9PntcbiAgICAgICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNsYXNzZXNUb0FwcGx5ID0gY2xhc3NOYW1lLnNwbGl0KCcgJykuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzZXNUb0FwcGx5KTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXInLCBkaXIpO1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcG9ydGFsLW5vZGUnLCAndHJ1ZScpO1xuICAgICAgICAgICAgZm9jdXNWaXNpYmxlUmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXNUb0FwcGx5KTtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGlyJyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBkaXIsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgZm9jdXNWaXNpYmxlUmVmXG4gICAgICAgIF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXNlTWVtbyBjYWxsIGlzIGludGVudGlvbmFsIGZvciBSZWFjdCAxN1xuICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHJlLWNyZWF0ZSB0aGUgcG9ydGFsIGVsZW1lbnQgd2hlbiBpdHMgYXR0cmlidXRlcyBjaGFuZ2UuXG4gICAgICAgIC8vIFRoaXMgYWxzbyBzaG91bGQgbm90IGJlIGRvbmUgaW4gYW4gZWZmZWN0IGJlY2F1c2UsIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBjc3MgdmFyaWFibGVzXG4gICAgICAgIC8vIGFmdGVyIGluaXRpYWwgbW91bnQgY2FuIHRyaWdnZXIgaW50ZXJlc3RpbmcgQ1NTIHNpZGUgZWZmZWN0cyBsaWtlIHRyYW5zaXRpb25zLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9yY2UgcmVwbGFjZSBhbGwgY2xhc3Nlc1xuICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlyJywgZGlyKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXBvcnRhbC1ub2RlJywgJ3RydWUnKTtcbiAgICAgICAgICAgIGZvY3VzVmlzaWJsZVJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICAgICAgfSwgW1xuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgZGlyLFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIGZvY3VzVmlzaWJsZVJlZlxuICAgICAgICBdKTtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuIiwiaW1wb3J0IHsgc2V0VmlydHVhbFBhcmVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdG9Nb3VudE5vZGVQcm9wcyB9IGZyb20gJy4uLy4uL3V0aWxzL3RvTW91bnROb2RlUHJvcHMnO1xuaW1wb3J0IHsgdXNlUG9ydGFsTW91bnROb2RlIH0gZnJvbSAnLi91c2VQb3J0YWxNb3VudE5vZGUnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBQb3J0YWwuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlUG9ydGFsU3R5bGVzLCBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclBvcnRhbF91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgUG9ydGFsXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVBvcnRhbF91bnN0YWJsZSA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGVsZW1lbnQsIGNsYXNzTmFtZSB9ID0gdG9Nb3VudE5vZGVQcm9wcyhwcm9wcy5tb3VudE5vZGUpO1xuICAgIGNvbnN0IHZpcnR1YWxQYXJlbnRSb290UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZhbGxiYWNrRWxlbWVudCA9IHVzZVBvcnRhbE1vdW50Tm9kZSh7XG4gICAgICAgIGRpc2FibGVkOiAhIWVsZW1lbnQsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIH0pO1xuICAgIGNvbnN0IG1vdW50Tm9kZSA9IGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudCAhPT0gdm9pZCAwID8gZWxlbWVudCA6IGZhbGxiYWNrRWxlbWVudDtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBtb3VudE5vZGUsXG4gICAgICAgIHZpcnR1YWxQYXJlbnRSb290UmVmXG4gICAgfTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFtb3VudE5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2aXJ0dWFsUGFyZW50ID0gdmlydHVhbFBhcmVudFJvb3RSZWYuY3VycmVudDtcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwgd2UgY3JlYXRlIGEgbW91bnQgbm9kZSBmb3IgcG9ydGFsIG9uIGBkb2N1bWVudC5ib2R5YCAoc2VlIHVzZVBvcnRhbE1vdW50Tm9kZSgpKSBhbmQgaGF2ZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgICAgICAvL1xuICAgICAgICAvLyA8Ym9keT5cbiAgICAgICAgLy8gICA8IS0tIOKam++4jyBhcHBsaWNhdGlvbiByb290IC0tPlxuICAgICAgICAvLyAgIDxkaXYgaWQ9XCJyb290XCI+XG4gICAgICAgIC8vICAgICA8IS0tIOKsh++4jyBwb3J0YWwgbm9kZSByZW5kZXJlZCBpbiBhIHRyZWUgdG8gYW5jaG9yICh2aXJ0dWFsIHBhcmVudCBub2RlKSAtLT5cbiAgICAgICAgLy8gICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgLy8gICA8L2Rpdj5cbiAgICAgICAgLy8gICA8ZGl2IGlkPVwicG9ydGFsLW1vdW50LW5vZGVcIj5cbiAgICAgICAgLy8gICAgIDwhLS0g8J+nqXBvcnRhbCBjb250ZW50IC0tPlxuICAgICAgICAvLyAgIDwvZGl2PlxuICAgICAgICAvLyA8L2JvZHk+XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRvIG1ha2Ugc3VyZSB0aGF0IGAuZWxlbWVudENvbnRhaW5zKClgIHdvcmtzIGNvcnJlY3RseSwgd2UgbGluayBhIHZpcnR1YWwgcGFyZW50IHRvIGEgcG9ydGFsIG5vZGUgKGEgdmlydHVhbCBwYXJlbnQgbm9kZSBiZWNvbWVzIGEgcGFyZW50IG9mIG1vdW50IG5vZGUpOlxuICAgICAgICAvLyAgIHZpcnR1YWwuY29udGFpbnMobW91bnROb2RlKSA9PT0gZmFsc2VcbiAgICAgICAgLy8gICAod2hpbGUgd2UgbmVlZCDirIfvuI/irIfvuI/irIfvuI8pXG4gICAgICAgIC8vICAgZWxlbWVudHNDb250YWlucyh2aXJ0dWFsUGFyZW50LCBtb3VudE5vZGUpID09PSB0cnVlXG4gICAgICAgIC8vICAgZWxlbWVudHNDb250YWlucyhtb3VudE5vZGUsIHZpcnR1YWxQYXJlbnQpID09PSBmYWxzZVxuICAgICAgICAvL1xuICAgICAgICAvLyBGb3IgbW9yZSBkZXRhaWxzLCBjaGVjayBkb2NzIGZvciB2aXJ0dWFsIHBhcmVudCB1dGlscy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gSG93ZXZlciwgaWYgYSB1c2VyIHByb3ZpZGVzIGEgY3VzdG9tIG1vdW50IG5vZGUgKHZpYSBgcHJvcHNgKSB0aGUgc3RydWN0dXJlIGNvdWxkIGJlIGRpZmZlcmVudDpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gPGJvZHk+XG4gICAgICAgIC8vICAgPCEtLSBhcHBsaWNhdGlvbiByb290IC0tPlxuICAgICAgICAvLyAgIDxkaXYgaWQ9XCJyb290XCI+XG4gICAgICAgIC8vICAgICA8ZGl2IGlkPVwicG9ydGFsLW1vdW50LW5vZGVcIj5cbiAgICAgICAgLy8gICAgICAgPCEtLSDwn6epcG9ydGFsIGNvbnRlbnQgLS0+XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgLy8gICAgIDwvZGl2PlxuICAgICAgICAvLyAgIDwvZGl2PlxuICAgICAgICAvLyA8L2JvZHk+XG4gICAgICAgIC8vXG4gICAgICAgIC8vIEEgbW91bnQgbm9kZSBpbiB0aGlzIGNhc2UgY29udGFpbnMgcG9ydGFsJ3MgY29udGVudCBhbmQgYSB2aXJ0dWFsIHBhcmVudCBub2RlLiBJbiB0aGlzIGNhc2Ugbm9kZXMgbGlua2luZyBpcyByZWR1bmRhbnQgYW5kIHRoZSBjaGVjayBiZWxvdyBhdm9pZHMgaXQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIE90aGVyd2lzZSwgdGhlcmUgaXMgYSBjaXJjdWxhciByZWZlcmVuY2UgLSBib3RoIGVsZW1lbnRzIGFyZSBwYXJlbnRzIG9mIGVhY2ggb3RoZXI6XG4gICAgICAgIC8vICAgZWxlbWVudHNDb250YWlucyhtb3VudE5vZGUsIHZpcnR1YWxQYXJlbnQpID09PSB0cnVlXG4gICAgICAgIC8vICAgZWxlbWVudHNDb250YWlucyh2aXJ0dWFsUGFyZW50LCBtb3VudE5vZGUpID09PSB0cnVlXG4gICAgICAgIGNvbnN0IGlzVmlydHVhbFBhcmVudEluc2lkZUNoaWxkID0gbW91bnROb2RlLmNvbnRhaW5zKHZpcnR1YWxQYXJlbnQpO1xuICAgICAgICBpZiAodmlydHVhbFBhcmVudCAmJiAhaXNWaXJ0dWFsUGFyZW50SW5zaWRlQ2hpbGQpIHtcbiAgICAgICAgICAgIHNldFZpcnR1YWxQYXJlbnQobW91bnROb2RlLCB2aXJ0dWFsUGFyZW50KTtcbiAgICAgICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgICAgIHNldFZpcnR1YWxQYXJlbnQobW91bnROb2RlLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlydHVhbFBhcmVudFJvb3RSZWYsXG4gICAgICAgIG1vdW50Tm9kZVxuICAgIF0pO1xuICAgIHJldHVybiBzdGF0ZTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBQb3J0YWxcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyUG9ydGFsX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICByZWY6IHN0YXRlLnZpcnR1YWxQYXJlbnRSb290UmVmXG4gICAgfSwgc3RhdGUubW91bnROb2RlICYmIC8qI19fUFVSRV9fKi8gUmVhY3RET00uY3JlYXRlUG9ydGFsKHN0YXRlLmNoaWxkcmVuLCBzdGF0ZS5tb3VudE5vZGUpKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VQb3J0YWxfdW5zdGFibGUgfSBmcm9tICcuL3VzZVBvcnRhbCc7XG5pbXBvcnQgeyByZW5kZXJQb3J0YWxfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclBvcnRhbCc7XG4vKipcbiAqIEEgcG9ydGFsIHByb3ZpZGVzIGEgd2F5IHRvIHJlbmRlciBjaGlsZHJlbiBpbnRvIGEgRE9NIG5vZGVcbiAqIHRoYXQgZXhpc3RzIG91dHNpZGUgdGhlIERPTSBoaWVyYXJjaHkgb2YgdGhlIHBhcmVudCBjb21wb25lbnQuXG4gKi8gZXhwb3J0IGNvbnN0IFBvcnRhbCA9IChwcm9wcyk9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVBvcnRhbF91bnN0YWJsZShwcm9wcyk7XG4gICAgcmV0dXJuIHJlbmRlclBvcnRhbF91bnN0YWJsZShzdGF0ZSk7XG59O1xuUG9ydGFsLmRpc3BsYXlOYW1lID0gJ1BvcnRhbCc7XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1wb3J0YWwnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBQb3BvdmVyU3VyZmFjZVxuICovIGV4cG9ydCBjb25zdCByZW5kZXJQb3BvdmVyU3VyZmFjZV91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgY29uc3Qgc3VyZmFjZSA9IC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgc3RhdGUud2l0aEFycm93ICYmIC8qI19fUFVSRV9fKi8gX2pzeChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgcmVmOiBzdGF0ZS5hcnJvd1JlZixcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHN0YXRlLmFycm93Q2xhc3NOYW1lXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0YXRlLnJvb3QuY2hpbGRyZW5cbiAgICAgICAgXVxuICAgIH0pO1xuICAgIGlmIChzdGF0ZS5pbmxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHN1cmZhY2U7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goUG9ydGFsLCB7XG4gICAgICAgIG1vdW50Tm9kZTogc3RhdGUubW91bnROb2RlLFxuICAgICAgICBjaGlsZHJlbjogc3VyZmFjZVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVBcnJvd0hlaWdodFN0eWxlcywgY3JlYXRlQXJyb3dTdHlsZXMsIGNyZWF0ZVNsaWRlU3R5bGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nJztcbmltcG9ydCB7IHRva2VucywgdHlwb2dyYXBoeVN0eWxlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5leHBvcnQgY29uc3QgcG9wb3ZlclN1cmZhY2VDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVBvcG92ZXJTdXJmYWNlJ1xufTtcbmV4cG9ydCBjb25zdCBhcnJvd0hlaWdodHMgPSB7XG4gIHNtYWxsOiA2LFxuICBtZWRpdW06IDgsXG4gIGxhcmdlOiA4XG59O1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgRGUzcHpxOiBcImZ4dWd3NHJcIixcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmdDg1bnA1XCIsXG4gICAgQmdmZzVkYTogMCxcbiAgICBCOXhhdjBnOiAwLFxuICAgIG9pdmp3ZTogMCxcbiAgICBCbjBxZ3ptOiAwLFxuICAgIEI0ZzluZWI6IDAsXG4gICAgemhqd3kzOiAwLFxuICAgIHd2cHFlNTogMCxcbiAgICBpYnY2aGg6IDAsXG4gICAgdTFtdGp1OiAwLFxuICAgIGgzYzVybTogMCxcbiAgICB2cmFmang6IDAsXG4gICAgQmVrcmM0aTogMCxcbiAgICBpOHZ2cWM6IDAsXG4gICAgZzJ1M3dlOiAwLFxuICAgIGljdnlvdDogMCxcbiAgICBCNGo1MmZvOiAwLFxuICAgIGlyc3dwczogXCJmOWdnZXppXCIsXG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJma2hqNTA4XCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmMWkzaXVtaVwiLFxuICAgIEI5M290ZjM6IFwiZjE4azRibjZcIixcbiAgICB2aW4xN2Q6IFwiZm8xa3l2ZlwiLFxuICAgIEV6a24zYjogXCJmZXR4bzdlXCIsXG4gICAgbnlpeTJnOiBcImY4eDF2ejFcIixcbiAgICBzd3ZydnE6IFwiZjhnMGFuelwiLFxuICAgIEJrb3ZidDM6IFwiZmV6d245aVwiLFxuICAgIGhnamRobjogXCJmejVlZmdlXCIsXG4gICAgZnN5OWRrOiBcImYxeWRpeGw0XCIsXG4gICAgQjNvZ3JlaDogXCJmOGRncWo1XCIsXG4gICAganY0OXg1OiBcImZueWZucjhcIixcbiAgICBCazdvNDhjOiBcImZndzc3cjRcIixcbiAgICBCdjEyeWIzOiBcImZ0amUwczRcIixcbiAgICB6MHQxY3U6IFwiZmkxOXhjdlwiLFxuICAgIEJrczA1eng6IFwiZjFtemFqaGtcIixcbiAgICBCdnRnbGFnOiBcImZqcDRoOXlcIixcbiAgICBCaHUycWM5OiBcImZ5bWI2azhcIlxuICB9LFxuICBpbmxpbmU6IHtcbiAgICBCajNyaDFoOiBcImYxOWcwYWNcIlxuICB9LFxuICBpbnZlcnRlZDoge1xuICAgIERlM3B6cTogXCJmZzNyNnhrXCIsXG4gICAgc2o1NXpkOiBcImZvbnJndjdcIlxuICB9LFxuICBicmFuZDoge1xuICAgIERlM3B6cTogXCJmZnA3ZXNvXCIsXG4gICAgc2o1NXpkOiBcImYxcGhyYWdrXCJcbiAgfSxcbiAgc21hbGxQYWRkaW5nOiB7XG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxc3k0a3I0XCJcbiAgfSxcbiAgbWVkaXVtUGFkZGluZzoge1xuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmNHp5cXN2XCJcbiAgfSxcbiAgbGFyZ2VQYWRkaW5nOiB7XG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImZvcDh1ZzJcIlxuICB9LFxuICBzbWFsbEFycm93OiB7XG4gICAgcmhud3J4OiBcImYxczNqbjIyXCIsXG4gICAgQmR5NTN4YjogXCJmdjQwdXF6XCJcbiAgfSxcbiAgbWVkaXVtTGFyZ2VBcnJvdzoge1xuICAgIHJobndyeDogXCJmMWY3MmdqclwiLFxuICAgIEJkeTUzeGI6IFwiZjY5eW9lNVwiXG4gIH0sXG4gIGFycm93OiB7XG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIHFoZjh4cTogXCJmMWV1djQzZlwiLFxuICAgIEJqM3JoMWg6IFwiZjFic3VpbWhcIixcbiAgICBEZTNwenE6IFwiZjF1MnI0OXdcIixcbiAgICBCMmVldDFsOiBcImZxaGdubFwiLFxuICAgIEJleWZhNnk6IFwiZjE3YnowNGlcIixcbiAgICBCejEwYWlwOiBcImYzNm8zeDNcIixcbiAgICBCcWVudmlqOiBcImZ6b2ZrOHFcIixcbiAgICBhOWI2Nzc6IFwiZjF3YngxaWVcIixcbiAgICBGdGloNDU6IFwiZjF3bDlrOHNcIixcbiAgICBCcjBzZHd6OiBcImYxYW9jcml4XCIsXG4gICAgY214NW83OiBcImYxbGpyNXEyXCIsXG4gICAgc3VzcTRrOiAwLFxuICAgIEJpaWJ2Z3Y6IDAsXG4gICAgQmljZmFqZjogMCxcbiAgICBxZWhhZnE6IDAsXG4gICAgQnJzNXU4ajogXCJmMTU1ZjFxdFwiLFxuICAgIENjcThxcDogXCJmOW1oenE3XCIsXG4gICAgQmF6MjVqZTogXCJmcjZyaHZ4XCIsXG4gICAgQmNnY25yZTogMCxcbiAgICBCcWpncnJrOiAwLFxuICAgIHFhM2JtYTogMCxcbiAgICB5MG9lYmw6IDAsXG4gICAgQmlxbXpudjogMCxcbiAgICBCbTZ2Z2ZxOiAwLFxuICAgIEJidjB3Mmk6IDAsXG4gICAgdXZmdHRtOiAwLFxuICAgIGVxcmpqOiAwLFxuICAgIEJrNXptNmU6IDAsXG4gICAgbTU5OGx2OiAwLFxuICAgIEI0ZjZhcHU6IDAsXG4gICAgeWR0MDE5OiAwLFxuICAgIEJxNHo3dTY6IDAsXG4gICAgQmRrdmdwdjogMCxcbiAgICBCMHFmYnF5OiAwLFxuICAgIGtqOG14eDogXCJmMWtjMHd6NFwiLFxuICAgIHI1OXZkdjogXCJmZ3E5MGR6XCIsXG4gICAgQmt3NXh3NDogXCJmcTB5NDdmXCIsXG4gICAgaGw2Y3YzOiBcImYxcHdyYno2XCIsXG4gICAgYWVhOWdhOiBcImYxaHh4Y3ZtXCIsXG4gICAgeWF5dTN0OiBcImZ3OHJneW9cIixcbiAgICBCaHN2OTc1OiBcImYxd256eWN4XCIsXG4gICAgcmhsOW85OiBcImYxNzMwd2FsXCIsXG4gICAgQjdneHJ2YjogXCJmMWZ5NGl4clwiLFxuICAgIEI2cTZvcmI6IFwiZm9ia2F1Y1wiLFxuICAgIEIwbHUxZjg6IFwiZjE2YnF2MWxcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmZ4dWd3NHJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7fVwiLCBbXCIuZnQ4NW5wNXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mOWdnZXppe2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCB7XG4gICAgcDogLTJcbiAgfV0sIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZmtoajUwOHtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZjFpM2l1bWl7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO31cIiwgXCIuZjE4azRibjZ7YW5pbWF0aW9uLWNvbXBvc2l0aW9uOmFjY3VtdWxhdGU7fVwiLCBcIi5mbzFreXZme2FuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvblNsb3dlcik7fVwiLCBcIi5mZXR4bzdle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tY3VydmVEZWNlbGVyYXRlTWlkKTt9XCIsIFwiLmY4eDF2ejF7LS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteDowcHg7fVwiLCBcIi5mOGcwYW56ey0tZnVpLXBvc2l0aW9uaW5nLXNsaWRlLWRpc3RhbmNlLXk6MTBweDt9XCIsIFwiLmZlenduOWlbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF17LS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteDotMTBweDt9XCIsIFwiLmZ6NWVmZ2VbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF17LS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteTowcHg7fVwiLCBcIi5mMXlkaXhsNFtkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV17LS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteDowcHg7fVwiLCBcIi5mOGRncWo1W2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXXstLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS15Oi0xMHB4O31cIiwgXCIuZm55Zm5yOFtkYXRhLXBvcHBlci1wbGFjZW1lbnRePWxlZnRdey0tZnVpLXBvc2l0aW9uaW5nLXNsaWRlLWRpc3RhbmNlLXg6MTBweDt9XCIsIFwiLmZndzc3cjRbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XXstLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS15OjBweDt9XCIsIFwiLmZ0amUwczR7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaSxmNzlzdWFkO31cIiwgXCIuZnltYjZrOHtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDJweCB2YXIoLS1jb2xvck5ldXRyYWxTaGFkb3dBbWJpZW50KSkgZHJvcC1zaGFkb3coMCA4cHggMTZweCB2YXIoLS1jb2xvck5ldXRyYWxTaGFkb3dLZXkpKTt9XCIsIFwiLmYxOWcwYWN7ei1pbmRleDoxO31cIiwgXCIuZmczcjZ4a3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmRTdGF0aWMpO31cIiwgXCIuZm9ucmd2N3tjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kU3RhdGljSW52ZXJ0ZWQpO31cIiwgXCIuZmZwN2Vzb3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxcGhyYWdre2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFtcIi5mMXN5NGtyNHtwYWRkaW5nOjEycHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mNHp5cXN2e3BhZGRpbmc6MTZweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmZvcDh1ZzJ7cGFkZGluZzoyMHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMXMzam4yMnstLWZ1aS1wb3NpdGlvbmluZy1hcnJvdy1oZWlnaHQ6OC40ODRweDt9XCIsIFwiLmZ2NDB1cXp7LS1mdWktcG9zaXRpb25pbmctYXJyb3ctb2Zmc2V0Oi00LjI0MnB4O31cIiwgXCIuZjFmNzJnanJ7LS1mdWktcG9zaXRpb25pbmctYXJyb3ctaGVpZ2h0OjExLjMxMnB4O31cIiwgXCIuZjY5eW9lNXstLWZ1aS1wb3NpdGlvbmluZy1hcnJvdy1vZmZzZXQ6LTUuNjU2cHg7fVwiLCBcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBcIi5mMWV1djQzZntwb3NpdGlvbjphYnNvbHV0ZTt9XCIsIFwiLmYxYnN1aW1oe3otaW5kZXg6LTE7fVwiLCBcIi5mMXUycjQ5d3tiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7fVwiLCBcIi5mcWhnbmx7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O31cIiwgXCIuZjE3YnowNGl7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNTbWFsbCk7fVwiLCBcIi5mMzZvM3gze3RyYW5zZm9ybTpyb3RhdGUodmFyKC0tZnVpLXBvc2l0aW9uaW5nLWFycm93LWFuZ2xlKSk7fVwiLCBcIi5mem9mazhxe2hlaWdodDp2YXIoLS1mdWktcG9zaXRpb25pbmctYXJyb3ctaGVpZ2h0KTt9XCIsIFwiLmYxd2J4MWlle3dpZHRoOnZhcigtLWZ1aS1wb3NpdGlvbmluZy1hcnJvdy1oZWlnaHQpO31cIiwgXCIuZjF3bDlrOHM6OmJlZm9yZXtjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZjFhb2NyaXg6OmJlZm9yZXtkaXNwbGF5OmJsb2NrO31cIiwgXCIuZjFsanI1cTI6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7fVwiLCBbXCIuZjE1NWYxcXQ6OmJlZm9yZXttYXJnaW46LTFweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjltaHpxNzo6YmVmb3Jle3dpZHRoOjEwMCU7fVwiLCBcIi5mcjZyaHZ4OjpiZWZvcmV7aGVpZ2h0OjEwMCU7fVwiLCBbXCIuZjFrYzB3ejQ6OmJlZm9yZXtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO31cIiwge1xuICAgIHA6IC0yXG4gIH1dLCBcIi5mZ3E5MGR6OjpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNTbWFsbCk7fVwiLCBcIi5mcTB5NDdmOjpiZWZvcmV7Y2xpcC1wYXRoOnBvbHlnb24oMCUgMCUsIDEwMCUgMTAwJSwgMCUgMTAwJSk7fVwiLCBcIltkYXRhLXBvcHBlci1wbGFjZW1lbnRePVxcXCJ0b3BcXFwiXSAuZjFwd3JiejZ7Ym90dG9tOnZhcigtLWZ1aS1wb3NpdGlvbmluZy1hcnJvdy1vZmZzZXQpO31cIiwgXCJbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1cXFwidG9wXFxcIl0gLmYxaHh4Y3Ztey0tZnVpLXBvc2l0aW9uaW5nLWFycm93LWFuZ2xlOi00NWRlZzt9XCIsIFwiW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49XFxcInJpZ2h0XFxcIl0gLmZ3OHJneW97bGVmdDp2YXIoLS1mdWktcG9zaXRpb25pbmctYXJyb3ctb2Zmc2V0KTt9XCIsIFwiW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49XFxcInJpZ2h0XFxcIl0gLmYxd256eWN4ey0tZnVpLXBvc2l0aW9uaW5nLWFycm93LWFuZ2xlOjQ1ZGVnO31cIiwgXCJbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1cXFwiYm90dG9tXFxcIl0gLmYxNzMwd2Fse3RvcDp2YXIoLS1mdWktcG9zaXRpb25pbmctYXJyb3ctb2Zmc2V0KTt9XCIsIFwiW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49XFxcImJvdHRvbVxcXCJdIC5mMWZ5NGl4cnstLWZ1aS1wb3NpdGlvbmluZy1hcnJvdy1hbmdsZToxMzVkZWc7fVwiLCBcIltkYXRhLXBvcHBlci1wbGFjZW1lbnRePVxcXCJsZWZ0XFxcIl0gLmZvYmthdWN7cmlnaHQ6dmFyKC0tZnVpLXBvc2l0aW9uaW5nLWFycm93LW9mZnNldCk7fVwiLCBcIltkYXRhLXBvcHBlci1wbGFjZW1lbnRePVxcXCJsZWZ0XFxcIl0gLmYxNmJxdjFsey0tZnVpLXBvc2l0aW9uaW5nLWFycm93LWFuZ2xlOjIyNWRlZzt9XCJdLFxuICBrOiBbXCJAa2V5ZnJhbWVzIGY1ajhiaWl7ZnJvbXtvcGFjaXR5OjA7fXRve29wYWNpdHk6MTt9fVwiLCBcIkBrZXlmcmFtZXMgZjc5c3VhZHtmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tZnVpLXBvc2l0aW9uaW5nLXNsaWRlLWRpc3RhbmNlLXgpLCB2YXIoLS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteSkpO319XCJdLFxuICBtOiBbW1wiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKXsuZmkxOXhjdltkYXRhLXBvcHBlci1wbGFjZW1lbnRde2FuaW1hdGlvbi1kdXJhdGlvbjoxbXM7fX1cIiwge1xuICAgIG06IFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pXCJcbiAgfV0sIFtcIkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbil7LmYxbXphamhrW2RhdGEtcG9wcGVyLXBsYWNlbWVudF17YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaTt9fVwiLCB7XG4gICAgbTogXCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbilcIlxuICB9XV0sXG4gIHQ6IFtcIkBzdXBwb3J0cyBub3QgKGFuaW1hdGlvbi1jb21wb3NpdGlvbjogYWNjdW11bGF0ZSl7LmZqcDRoOXlbZGF0YS1wb3BwZXItcGxhY2VtZW50XXthbmltYXRpb24tbmFtZTpmNWo4YmlpO319XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgUG9wb3ZlclN1cmZhY2Ugc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VQb3BvdmVyU3VyZmFjZVN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMocG9wb3ZlclN1cmZhY2VDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5pbmxpbmUgJiYgc3R5bGVzLmlubGluZSwgc3RhdGUuc2l6ZSA9PT0gJ3NtYWxsJyAmJiBzdHlsZXMuc21hbGxQYWRkaW5nLCBzdGF0ZS5zaXplID09PSAnbWVkaXVtJyAmJiBzdHlsZXMubWVkaXVtUGFkZGluZywgc3RhdGUuc2l6ZSA9PT0gJ2xhcmdlJyAmJiBzdHlsZXMubGFyZ2VQYWRkaW5nLCBzdGF0ZS5hcHBlYXJhbmNlID09PSAnaW52ZXJ0ZWQnICYmIHN0eWxlcy5pbnZlcnRlZCwgc3RhdGUuYXBwZWFyYW5jZSA9PT0gJ2JyYW5kJyAmJiBzdHlsZXMuYnJhbmQsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgc3RhdGUuYXJyb3dDbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoc3R5bGVzLmFycm93LCBzdGF0ZS5zaXplID09PSAnc21hbGwnID8gc3R5bGVzLnNtYWxsQXJyb3cgOiBzdHlsZXMubWVkaXVtTGFyZ2VBcnJvdyk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VQb3BvdmVyU3VyZmFjZVN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUgfSBmcm9tICcuL3VzZVBvcG92ZXJTdXJmYWNlJztcbmltcG9ydCB7IHJlbmRlclBvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJQb3BvdmVyU3VyZmFjZSc7XG5pbXBvcnQgeyB1c2VQb3BvdmVyU3VyZmFjZVN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlUG9wb3ZlclN1cmZhY2VTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBQb3BvdmVyU3VyZmFjZSBjb21wb25lbnQgcmVuZGVycyByZWFjdCBjaGlsZHJlbiBpbiBhIHBvc2l0aW9uZWQgYm94XG4gKi8gZXhwb3J0IGNvbnN0IFBvcG92ZXJTdXJmYWNlID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlUG9wb3ZlclN1cmZhY2VTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlUG9wb3ZlclN1cmZhY2VTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclBvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuUG9wb3ZlclN1cmZhY2UuZGlzcGxheU5hbWUgPSAnUG9wb3ZlclN1cmZhY2UnO1xuIiwiLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSB0b29sdGlwJ3MgYm9yZGVyIHJhZGl1cyAoYm9yZGVyUmFkaXVzTWVkaXVtKS5cbiAqXG4gKiBVbmZvcnR1bmF0ZWx5LCBQb3BwZXIgcmVxdWlyZXMgaXQgdG8gYmUgc3BlY2lmaWVkIGFzIGEgdmFyaWFibGUgaW5zdGVhZCBvZiB1c2luZyBDU1MuXG4gKiBXaGlsZSB3ZSBjb3VsZCB1c2UgZ2V0Q29tcHV0ZWRTdHlsZSwgdGhhdCBhZGRzIGEgcGVyZm9ybWFuY2UgcGVuYWx0eSBmb3Igc29tZXRoaW5nIHRoYXRcbiAqIHdpbGwgbGlrZWx5IG5ldmVyIGNoYW5nZS5cbiAqLyBleHBvcnQgY29uc3QgcG9wb3ZlclN1cmZhY2VCb3JkZXJSYWRpdXMgPSA0O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2ssIHVzZU9uQ2xpY2tPdXRzaWRlLCB1c2VPblNjcm9sbE91dHNpZGUsIGVsZW1lbnRDb250YWlucywgdXNlVGltZW91dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlUG9zaXRpb25pbmcsIHJlc29sdmVQb3NpdGlvbmluZ1Nob3J0aGFuZCwgbWVyZ2VBcnJvd09mZnNldCwgdXNlUG9zaXRpb25pbmdNb3VzZVRhcmdldCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1wb3NpdGlvbmluZyc7XG5pbXBvcnQgeyB1c2VGb2N1c0ZpbmRlcnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyBhcnJvd0hlaWdodHMgfSBmcm9tICcuLi9Qb3BvdmVyU3VyZmFjZS9pbmRleCc7XG5pbXBvcnQgeyBwb3BvdmVyU3VyZmFjZUJvcmRlclJhZGl1cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgUG9wb3Zlci5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VQb3BvdmVyU3R5bGVzLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJQb3BvdmVyX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBQb3BvdmVyXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVBvcG92ZXJfdW5zdGFibGUgPSAocHJvcHMpPT57XG4gICAgY29uc3QgW2NvbnRleHRUYXJnZXQsIHNldENvbnRleHRUYXJnZXRdID0gdXNlUG9zaXRpb25pbmdNb3VzZVRhcmdldCgpO1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgIGNvbnRleHRUYXJnZXQsXG4gICAgICAgIHNldENvbnRleHRUYXJnZXQsXG4gICAgICAgIC4uLnByb3BzXG4gICAgfTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkocHJvcHMuY2hpbGRyZW4pO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BvcG92ZXIgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGlsZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdQb3BvdmVyIG11c3QgY29udGFpbiBhdCBtb3N0IHR3byBjaGlsZHJlbicpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBwb3BvdmVyVHJpZ2dlciA9IHVuZGVmaW5lZDtcbiAgICBsZXQgcG9wb3ZlclN1cmZhY2UgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBwb3BvdmVyVHJpZ2dlciA9IGNoaWxkcmVuWzBdO1xuICAgICAgICBwb3BvdmVyU3VyZmFjZSA9IGNoaWxkcmVuWzFdO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHBvcG92ZXJTdXJmYWNlID0gY2hpbGRyZW5bMF07XG4gICAgfVxuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuU3RhdGVdID0gdXNlT3BlblN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgY29uc3QgW3NldE9wZW5UaW1lb3V0LCBjbGVhck9wZW5UaW1lb3V0XSA9IHVzZVRpbWVvdXQoKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygoZSwgc2hvdWxkT3Blbik9PntcbiAgICAgICAgY2xlYXJPcGVuVGltZW91dCgpO1xuICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgRXZlbnQpICYmIGUucGVyc2lzdCkge1xuICAgICAgICAgICAgLy8gPCBSZWFjdCAxNyBzdGlsbCB1c2VzIHBvb2xlZCBzeW50aGV0aWMgZXZlbnRzXG4gICAgICAgICAgICBlLnBlcnNpc3QoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZS50eXBlID09PSAnbW91c2VsZWF2ZScpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHNfbW91c2VMZWF2ZURlbGF5O1xuICAgICAgICAgICAgLy8gRklYTUUgbGVha2luZyBOb2RlIHRpbWVvdXQgdHlwZVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgc2V0T3BlblRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICBzZXRPcGVuU3RhdGUoZSwgc2hvdWxkT3Blbik7XG4gICAgICAgICAgICB9LCAoX3Byb3BzX21vdXNlTGVhdmVEZWxheSA9IHByb3BzLm1vdXNlTGVhdmVEZWxheSkgIT09IG51bGwgJiYgX3Byb3BzX21vdXNlTGVhdmVEZWxheSAhPT0gdm9pZCAwID8gX3Byb3BzX21vdXNlTGVhdmVEZWxheSA6IDUwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRPcGVuU3RhdGUoZSwgc2hvdWxkT3Blbik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB0b2dnbGVPcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soKGUpPT57XG4gICAgICAgIHNldE9wZW4oZSwgIW9wZW4pO1xuICAgIH0sIFtcbiAgICAgICAgc2V0T3BlbixcbiAgICAgICAgb3BlblxuICAgIF0pO1xuICAgIGNvbnN0IHBvc2l0aW9uaW5nUmVmcyA9IHVzZVBvcG92ZXJSZWZzKGluaXRpYWxTdGF0ZSk7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgdmFyIF9wcm9wc19jbG9zZU9uSWZyYW1lRm9jdXM7XG4gICAgdXNlT25DbGlja091dHNpZGUoe1xuICAgICAgICBjb250YWluczogZWxlbWVudENvbnRhaW5zLFxuICAgICAgICBlbGVtZW50OiB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgY2FsbGJhY2s6IChldik9PnNldE9wZW4oZXYsIGZhbHNlKSxcbiAgICAgICAgcmVmczogW1xuICAgICAgICAgICAgcG9zaXRpb25pbmdSZWZzLnRyaWdnZXJSZWYsXG4gICAgICAgICAgICBwb3NpdGlvbmluZ1JlZnMuY29udGVudFJlZlxuICAgICAgICBdLFxuICAgICAgICBkaXNhYmxlZDogIW9wZW4sXG4gICAgICAgIGRpc2FibGVkRm9jdXNPbklmcmFtZTogISgoX3Byb3BzX2Nsb3NlT25JZnJhbWVGb2N1cyA9IHByb3BzLmNsb3NlT25JZnJhbWVGb2N1cykgIT09IG51bGwgJiYgX3Byb3BzX2Nsb3NlT25JZnJhbWVGb2N1cyAhPT0gdm9pZCAwID8gX3Byb3BzX2Nsb3NlT25JZnJhbWVGb2N1cyA6IHRydWUpXG4gICAgfSk7XG4gICAgLy8gb25seSBjbG9zZSBvbiBzY3JvbGwgZm9yIGNvbnRleHQsIG9yIHdoZW4gY2xvc2VPblNjcm9sbCBpcyBzcGVjaWZpZWRcbiAgICBjb25zdCBjbG9zZU9uU2Nyb2xsID0gaW5pdGlhbFN0YXRlLm9wZW5PbkNvbnRleHQgfHwgaW5pdGlhbFN0YXRlLmNsb3NlT25TY3JvbGw7XG4gICAgdXNlT25TY3JvbGxPdXRzaWRlKHtcbiAgICAgICAgY29udGFpbnM6IGVsZW1lbnRDb250YWlucyxcbiAgICAgICAgZWxlbWVudDogdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGNhbGxiYWNrOiAoZXYpPT5zZXRPcGVuKGV2LCBmYWxzZSksXG4gICAgICAgIHJlZnM6IFtcbiAgICAgICAgICAgIHBvc2l0aW9uaW5nUmVmcy50cmlnZ2VyUmVmLFxuICAgICAgICAgICAgcG9zaXRpb25pbmdSZWZzLmNvbnRlbnRSZWZcbiAgICAgICAgXSxcbiAgICAgICAgZGlzYWJsZWQ6ICFvcGVuIHx8ICFjbG9zZU9uU2Nyb2xsXG4gICAgfSk7XG4gICAgY29uc3QgeyBmaW5kRmlyc3RGb2N1c2FibGUgfSA9IHVzZUZvY3VzRmluZGVycygpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAocHJvcHMudW5zdGFibGVfZGlzYWJsZUF1dG9Gb2N1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVuICYmIHBvc2l0aW9uaW5nUmVmcy5jb250ZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHZhciBfcG9zaXRpb25pbmdSZWZzX2NvbnRlbnRSZWZfY3VycmVudF9nZXRBdHRyaWJ1dGU7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJUYWJJbmRleCA9IChfcG9zaXRpb25pbmdSZWZzX2NvbnRlbnRSZWZfY3VycmVudF9nZXRBdHRyaWJ1dGUgPSBwb3NpdGlvbmluZ1JlZnMuY29udGVudFJlZi5jdXJyZW50LmdldEF0dHJpYnV0ZSgndGFiSW5kZXgnKSkgIT09IG51bGwgJiYgX3Bvc2l0aW9uaW5nUmVmc19jb250ZW50UmVmX2N1cnJlbnRfZ2V0QXR0cmlidXRlICE9PSB2b2lkIDAgPyBfcG9zaXRpb25pbmdSZWZzX2NvbnRlbnRSZWZfY3VycmVudF9nZXRBdHRyaWJ1dGUgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IGlzTmFOKGNvbnRhaW5lclRhYkluZGV4KSA/IGZpbmRGaXJzdEZvY3VzYWJsZShwb3NpdGlvbmluZ1JlZnMuY29udGVudFJlZi5jdXJyZW50KSA6IHBvc2l0aW9uaW5nUmVmcy5jb250ZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBmaXJzdEZvY3VzYWJsZSA9PT0gbnVsbCB8fCBmaXJzdEZvY3VzYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgZmluZEZpcnN0Rm9jdXNhYmxlLFxuICAgICAgICBvcGVuLFxuICAgICAgICBwb3NpdGlvbmluZ1JlZnMuY29udGVudFJlZixcbiAgICAgICAgcHJvcHMudW5zdGFibGVfZGlzYWJsZUF1dG9Gb2N1c1xuICAgIF0pO1xuICAgIHZhciBfcHJvcHNfaW5lcnRUcmFwRm9jdXMsIF9wcm9wc19pbmxpbmU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5pdGlhbFN0YXRlLFxuICAgICAgICAuLi5wb3NpdGlvbmluZ1JlZnMsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvblxuICAgICAgICBpbmVydFRyYXBGb2N1czogKF9wcm9wc19pbmVydFRyYXBGb2N1cyA9IHByb3BzLmluZXJ0VHJhcEZvY3VzKSAhPT0gbnVsbCAmJiBfcHJvcHNfaW5lcnRUcmFwRm9jdXMgIT09IHZvaWQgMCA/IF9wcm9wc19pbmVydFRyYXBGb2N1cyA6IHByb3BzLmxlZ2FjeVRyYXBGb2N1cyA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiAhcHJvcHMubGVnYWN5VHJhcEZvY3VzLFxuICAgICAgICBwb3BvdmVyVHJpZ2dlcixcbiAgICAgICAgcG9wb3ZlclN1cmZhY2UsXG4gICAgICAgIG9wZW4sXG4gICAgICAgIHNldE9wZW4sXG4gICAgICAgIHRvZ2dsZU9wZW4sXG4gICAgICAgIHNldENvbnRleHRUYXJnZXQsXG4gICAgICAgIGNvbnRleHRUYXJnZXQsXG4gICAgICAgIGlubGluZTogKF9wcm9wc19pbmxpbmUgPSBwcm9wcy5pbmxpbmUpICE9PSBudWxsICYmIF9wcm9wc19pbmxpbmUgIT09IHZvaWQgMCA/IF9wcm9wc19pbmxpbmUgOiBmYWxzZVxuICAgIH07XG59O1xuLyoqXG4gKiBDcmVhdGVzIGFuZCBtYW5hZ2VzIHRoZSBQb3BvdmVyIG9wZW4gc3RhdGVcbiAqLyBmdW5jdGlvbiB1c2VPcGVuU3RhdGUoc3RhdGUpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IG9uT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUsIGRhdGEpPT57XG4gICAgICAgIHZhciBfc3RhdGVfb25PcGVuQ2hhbmdlO1xuICAgICAgICByZXR1cm4gKF9zdGF0ZV9vbk9wZW5DaGFuZ2UgPSBzdGF0ZS5vbk9wZW5DaGFuZ2UpID09PSBudWxsIHx8IF9zdGF0ZV9vbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9zdGF0ZV9vbk9wZW5DaGFuZ2UuY2FsbChzdGF0ZSwgZSwgZGF0YSk7XG4gICAgfSk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5TdGF0ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBzdGF0ZS5vcGVuLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHN0YXRlLmRlZmF1bHRPcGVuLFxuICAgICAgICBpbml0aWFsU3RhdGU6IGZhbHNlXG4gICAgfSk7XG4gICAgc3RhdGUub3BlbiA9IG9wZW4gIT09IHVuZGVmaW5lZCA/IG9wZW4gOiBzdGF0ZS5vcGVuO1xuICAgIGNvbnN0IHNldENvbnRleHRUYXJnZXQgPSBzdGF0ZS5zZXRDb250ZXh0VGFyZ2V0O1xuICAgIGNvbnN0IHNldE9wZW4gPSBSZWFjdC51c2VDYWxsYmFjaygoZSwgc2hvdWxkT3Blbik9PntcbiAgICAgICAgaWYgKHNob3VsZE9wZW4gJiYgZS50eXBlID09PSAnY29udGV4dG1lbnUnKSB7XG4gICAgICAgICAgICBzZXRDb250ZXh0VGFyZ2V0KGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2hvdWxkT3Blbikge1xuICAgICAgICAgICAgc2V0Q29udGV4dFRhcmdldCh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgICAgIHNldE9wZW5TdGF0ZShzaG91bGRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKGUsIHtcbiAgICAgICAgICAgIG9wZW46IHNob3VsZE9wZW5cbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBzZXRPcGVuU3RhdGUsXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgc2V0Q29udGV4dFRhcmdldFxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIG9wZW4sXG4gICAgICAgIHNldE9wZW5cbiAgICBdO1xufVxuLyoqXG4gKiBDcmVhdGVzIGFuZCBzZXRzIHRoZSBuZWNlc3NhcnkgdHJpZ2dlciwgdGFyZ2V0IGFuZCBjb250ZW50IHJlZnMgdXNlZCBieSBQb3BvdmVyXG4gKi8gZnVuY3Rpb24gdXNlUG9wb3ZlclJlZnMoc3RhdGUpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IHBvc2l0aW9uaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgcG9zaXRpb246ICdhYm92ZScsXG4gICAgICAgIGFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgYXJyb3dQYWRkaW5nOiAyICogcG9wb3ZlclN1cmZhY2VCb3JkZXJSYWRpdXMsXG4gICAgICAgIHRhcmdldDogc3RhdGUub3Blbk9uQ29udGV4dCA/IHN0YXRlLmNvbnRleHRUYXJnZXQgOiB1bmRlZmluZWQsXG4gICAgICAgIC4uLnJlc29sdmVQb3NpdGlvbmluZ1Nob3J0aGFuZChzdGF0ZS5wb3NpdGlvbmluZylcbiAgICB9O1xuICAgIC8vIG5vIHJlYXNvbiB0byByZW5kZXIgYXJyb3cgd2hlbiBjb3ZlcmluZyB0aGUgdGFyZ2V0XG4gICAgaWYgKHBvc2l0aW9uaW5nT3B0aW9ucy5jb3ZlclRhcmdldCkge1xuICAgICAgICBzdGF0ZS53aXRoQXJyb3cgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlLndpdGhBcnJvdykge1xuICAgICAgICBwb3NpdGlvbmluZ09wdGlvbnMub2Zmc2V0ID0gbWVyZ2VBcnJvd09mZnNldChwb3NpdGlvbmluZ09wdGlvbnMub2Zmc2V0LCBhcnJvd0hlaWdodHNbc3RhdGUuc2l6ZV0pO1xuICAgIH1cbiAgICBjb25zdCB7IHRhcmdldFJlZjogdHJpZ2dlclJlZiwgY29udGFpbmVyUmVmOiBjb250ZW50UmVmLCBhcnJvd1JlZiB9ID0gdXNlUG9zaXRpb25pbmcocG9zaXRpb25pbmdPcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0cmlnZ2VyUmVmLFxuICAgICAgICBjb250ZW50UmVmLFxuICAgICAgICBhcnJvd1JlZlxuICAgIH07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udGV4dCB9IGZyb20gJy4uLy4uL3BvcG92ZXJDb250ZXh0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgUG9wb3ZlclxuICovIGV4cG9ydCBjb25zdCByZW5kZXJQb3BvdmVyX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGNvbnN0IHsgYXBwZWFyYW5jZSwgYXJyb3dSZWYsIGNvbnRlbnRSZWYsIGlubGluZSwgbW91bnROb2RlLCBvcGVuLCBvcGVuT25Db250ZXh0LCBvcGVuT25Ib3Zlciwgc2V0T3Blbiwgc2l6ZSwgdG9nZ2xlT3BlbiwgdHJhcEZvY3VzLCB0cmlnZ2VyUmVmLCB3aXRoQXJyb3csIGluZXJ0VHJhcEZvY3VzIH0gPSBzdGF0ZTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFBvcG92ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBhcHBlYXJhbmNlLFxuICAgICAgICAgICAgYXJyb3dSZWYsXG4gICAgICAgICAgICBjb250ZW50UmVmLFxuICAgICAgICAgICAgaW5saW5lLFxuICAgICAgICAgICAgbW91bnROb2RlLFxuICAgICAgICAgICAgb3BlbixcbiAgICAgICAgICAgIG9wZW5PbkNvbnRleHQsXG4gICAgICAgICAgICBvcGVuT25Ib3ZlcixcbiAgICAgICAgICAgIHNldE9wZW4sXG4gICAgICAgICAgICB0b2dnbGVPcGVuLFxuICAgICAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICB0cmFwRm9jdXMsXG4gICAgICAgICAgICBpbmVydFRyYXBGb2N1cyxcbiAgICAgICAgICAgIHdpdGhBcnJvd1xuICAgICAgICB9XG4gICAgfSwgc3RhdGUucG9wb3ZlclRyaWdnZXIsIHN0YXRlLm9wZW4gJiYgc3RhdGUucG9wb3ZlclN1cmZhY2UpO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVBvcG92ZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVBvcG92ZXInO1xuaW1wb3J0IHsgcmVuZGVyUG9wb3Zlcl91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyUG9wb3Zlcic7XG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IHRoYXQgbWFuYWdlcyBzdGF0ZSBmb3IgYSBQb3BvdmVyVHJpZ2dlciBhbmQgYSBQb3BvdmVyU3VyZmFjZSBjb21wb25lbnRzLlxuICovIGV4cG9ydCBjb25zdCBQb3BvdmVyID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlUG9wb3Zlcl91bnN0YWJsZShwcm9wcyk7XG4gICAgcmV0dXJuIHJlbmRlclBvcG92ZXJfdW5zdGFibGUoc3RhdGUpO1xufTtcblBvcG92ZXIuZGlzcGxheU5hbWUgPSAnUG9wb3Zlcic7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhcHBseVRyaWdnZXJQcm9wc1RvQ2hpbGRyZW4sIGdldFRyaWdnZXJDaGlsZCwgbWVyZ2VDYWxsYmFja3MsIHVzZU1lcmdlZFJlZnMsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZU1vZGFsQXR0cmlidXRlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vcG9wb3ZlckNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQVJJQUJ1dHRvblByb3BzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgRXNjYXBlIH0gZnJvbSAnQGZsdWVudHVpL2tleWJvYXJkLWtleXMnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBQb3BvdmVyVHJpZ2dlci5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VQb3BvdmVyVHJpZ2dlclN0eWxlcyxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyUG9wb3ZlclRyaWdnZXJfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFBvcG92ZXJUcmlnZ2VyXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVBvcG92ZXJUcmlnZ2VyX3Vuc3RhYmxlID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGRpc2FibGVCdXR0b25FbmhhbmNlbWVudCA9IGZhbHNlIH0gPSBwcm9wcztcbiAgICBjb25zdCBjaGlsZCA9IGdldFRyaWdnZXJDaGlsZChjaGlsZHJlbik7XG4gICAgY29uc3Qgb3BlbiA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LnNldE9wZW4pO1xuICAgIGNvbnN0IHRvZ2dsZU9wZW4gPSB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQudG9nZ2xlT3Blbik7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC50cmlnZ2VyUmVmKTtcbiAgICBjb25zdCBvcGVuT25Ib3ZlciA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuT25Ib3Zlcik7XG4gICAgY29uc3Qgb3Blbk9uQ29udGV4dCA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuT25Db250ZXh0KTtcbiAgICBjb25zdCB7IHRyaWdnZXJBdHRyaWJ1dGVzIH0gPSB1c2VNb2RhbEF0dHJpYnV0ZXMoKTtcbiAgICBjb25zdCBvbkNvbnRleHRNZW51ID0gKGUpPT57XG4gICAgICAgIGlmIChvcGVuT25Db250ZXh0KSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRPcGVuKGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbkNsaWNrID0gKGUpPT57XG4gICAgICAgIGlmICghb3Blbk9uQ29udGV4dCkge1xuICAgICAgICAgICAgdG9nZ2xlT3BlbihlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25LZXlEb3duID0gKGUpPT57XG4gICAgICAgIGlmIChlLmtleSA9PT0gRXNjYXBlICYmIG9wZW4gJiYgIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZSwgZmFsc2UpO1xuICAgICAgICAgICAgLy8gc3RvcCBwcm9wYWdhdGlvbiB0byBhdm9pZCBjb25mbGljdGluZyB3aXRoIG90aGVyIGVsZW1lbnRzIHRoYXQgbGlzdGVuIGZvciBgRXNjYXBlYFxuICAgICAgICAgICAgLy8gZSxnOiBEaWFsb2csIFBvcG92ZXIsIE1lbnUgYW5kIFRvb2x0aXBcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmIChvcGVuT25Ib3Zlcikge1xuICAgICAgICAgICAgc2V0T3BlbihlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25Nb3VzZUxlYXZlID0gKGUpPT57XG4gICAgICAgIGlmIChvcGVuT25Ib3Zlcikge1xuICAgICAgICAgICAgc2V0T3BlbihlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGNvbnRleHRNZW51UHJvcHMgPSB7XG4gICAgICAgIC4uLnRyaWdnZXJBdHRyaWJ1dGVzLFxuICAgICAgICAnYXJpYS1leHBhbmRlZCc6IGAke29wZW59YCxcbiAgICAgICAgLi4uY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnByb3BzLFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3MoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciwgb25Nb3VzZUVudGVyKSksXG4gICAgICAgIG9uTW91c2VMZWF2ZTogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25Nb3VzZUxlYXZlLCBvbk1vdXNlTGVhdmUpKSxcbiAgICAgICAgb25Db250ZXh0TWVudTogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25Db250ZXh0TWVudSwgb25Db250ZXh0TWVudSkpLFxuICAgICAgICByZWY6IHVzZU1lcmdlZFJlZnModHJpZ2dlclJlZiwgY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnJlZilcbiAgICB9O1xuICAgIGNvbnN0IHRyaWdnZXJDaGlsZFByb3BzID0ge1xuICAgICAgICAuLi5jb250ZXh0TWVudVByb3BzLFxuICAgICAgICBvbkNsaWNrOiB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZC5wcm9wcy5vbkNsaWNrLCBvbkNsaWNrKSksXG4gICAgICAgIG9uS2V5RG93bjogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25LZXlEb3duLCBvbktleURvd24pKVxuICAgIH07XG4gICAgY29uc3QgYXJpYUJ1dHRvblRyaWdnZXJDaGlsZFByb3BzID0gdXNlQVJJQUJ1dHRvblByb3BzKChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQudHlwZSkgPT09ICdidXR0b24nIHx8IChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQudHlwZSkgPT09ICdhJyA/IGNoaWxkLnR5cGUgOiAnZGl2JywgdHJpZ2dlckNoaWxkUHJvcHMpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNoaWxkcmVuOiBhcHBseVRyaWdnZXJQcm9wc1RvQ2hpbGRyZW4ocHJvcHMuY2hpbGRyZW4sIHVzZUFSSUFCdXR0b25Qcm9wcygoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnR5cGUpID09PSAnYnV0dG9uJyB8fCAoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnR5cGUpID09PSAnYScgPyBjaGlsZC50eXBlIDogJ2RpdicsIG9wZW5PbkNvbnRleHQgPyBjb250ZXh0TWVudVByb3BzIDogZGlzYWJsZUJ1dHRvbkVuaGFuY2VtZW50ID8gdHJpZ2dlckNoaWxkUHJvcHMgOiBhcmlhQnV0dG9uVHJpZ2dlckNoaWxkUHJvcHMpKVxuICAgIH07XG59O1xuIiwiLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBQb3BvdmVyVHJpZ2dlclxuICovIGV4cG9ydCBjb25zdCByZW5kZXJQb3BvdmVyVHJpZ2dlcl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW47XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUG9wb3ZlclRyaWdnZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVBvcG92ZXJUcmlnZ2VyJztcbmltcG9ydCB7IHJlbmRlclBvcG92ZXJUcmlnZ2VyX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJQb3BvdmVyVHJpZ2dlcic7XG4vKipcbiAqIFdyYXBzIGEgdHJpZ2dlciBlbGVtZW50IGFzIGFuIG9ubHkgY2hpbGQgYW5kIGFkZHMgdGhlIG5lY2Vzc2FyeSBldmVudCBoYW5kbGluZyB0byBvcGVuIGEgcG9wb3Zlci5cbiAqLyBleHBvcnQgY29uc3QgUG9wb3ZlclRyaWdnZXIgPSAocHJvcHMpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VQb3BvdmVyVHJpZ2dlcl91bnN0YWJsZShwcm9wcyk7XG4gICAgcmV0dXJuIHJlbmRlclBvcG92ZXJUcmlnZ2VyX3Vuc3RhYmxlKHN0YXRlKTtcbn07XG5Qb3BvdmVyVHJpZ2dlci5kaXNwbGF5TmFtZSA9ICdQb3BvdmVyVHJpZ2dlcic7XG4vLyB0eXBlIGNhc3RpbmcgaGVyZSBpcyByZXF1aXJlZCB0byBlbnN1cmUgaW50ZXJuYWwgdHlwZSBGbHVlbnRUcmlnZ2VyQ29tcG9uZW50IGlzIG5vdCBsZWFrZWRcblBvcG92ZXJUcmlnZ2VyLmlzRmx1ZW50VHJpZ2dlckNvbXBvbmVudCA9IHRydWU7XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVycyBhIEJ1dHRvbiBjb21wb25lbnQgYnkgcGFzc2luZyB0aGUgc3RhdGUgZGVmaW5lZCBwcm9wcyB0byB0aGUgYXBwcm9wcmlhdGUgc2xvdHMuXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlckJ1dHRvbl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgY29uc3QgeyBpY29uT25seSwgaWNvblBvc2l0aW9uIH0gPSBzdGF0ZTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBpY29uUG9zaXRpb24gIT09ICdhZnRlcicgJiYgc3RhdGUuaWNvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuaWNvbiwge30pLFxuICAgICAgICAgICAgIWljb25Pbmx5ICYmIHN0YXRlLnJvb3QuY2hpbGRyZW4sXG4gICAgICAgICAgICBpY29uUG9zaXRpb24gPT09ICdhZnRlcicgJiYgc3RhdGUuaWNvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuaWNvbiwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBidXR0b25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgYnV0dG9uQ29udGV4dERlZmF1bHRWYWx1ZSA9IHt9O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIGNvbnRleHQgcHJvdmlkZXIgdXNlZCB0byB1cGRhdGUgZGVmYXVsdCB2YWx1ZXMgYmV0d2VlbiBpbnRlcm5hbCBjb21wb25lbnRzXG4gKi8gZXhwb3J0IGNvbnN0IEJ1dHRvbkNvbnRleHRQcm92aWRlciA9IGJ1dHRvbkNvbnRleHQuUHJvdmlkZXI7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogSW50ZXJuYWwgY29udGV4dCBob29rIHVzZWQgdG8gdXBkYXRlIGRlZmF1bHQgdmFsdWVzIGJldHdlZW4gaW50ZXJuYWwgY29tcG9uZW50c1xuICovIGV4cG9ydCBjb25zdCB1c2VCdXR0b25Db250ZXh0ID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoYnV0dG9uQ29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IGJ1dHRvbkNvbnRleHREZWZhdWx0VmFsdWU7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQVJJQUJ1dHRvblByb3BzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VCdXR0b25Db250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dHMvQnV0dG9uQ29udGV4dCc7XG4vKipcbiAqIEdpdmVuIHVzZXIgcHJvcHMsIGRlZmluZXMgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIEJ1dHRvbiwgY2FsbHMgdXNlQnV0dG9uU3RhdGUsIGFuZCByZXR1cm5zIHByb2Nlc3NlZCBzdGF0ZS5cbiAqIEBwYXJhbSBwcm9wcyAtIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gdGhlIEJ1dHRvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0gcmVmIC0gVXNlciBwcm92aWRlZCByZWYgdG8gYmUgcGFzc2VkIHRvIHRoZSBCdXR0b24gY29tcG9uZW50LlxuICovIGV4cG9ydCBjb25zdCB1c2VCdXR0b25fdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IHNpemU6IGNvbnRleHRTaXplIH0gPSB1c2VCdXR0b25Db250ZXh0KCk7XG4gICAgY29uc3QgeyBhcHBlYXJhbmNlID0gJ3NlY29uZGFyeScsIGFzID0gJ2J1dHRvbicsIGRpc2FibGVkID0gZmFsc2UsIGRpc2FibGVkRm9jdXNhYmxlID0gZmFsc2UsIGljb24sIGljb25Qb3NpdGlvbiA9ICdiZWZvcmUnLCBzaGFwZSA9ICdyb3VuZGVkJywgc2l6ZSA9IGNvbnRleHRTaXplICE9PSBudWxsICYmIGNvbnRleHRTaXplICE9PSB2b2lkIDAgPyBjb250ZXh0U2l6ZSA6ICdtZWRpdW0nIH0gPSBwcm9wcztcbiAgICBjb25zdCBpY29uU2hvcnRoYW5kID0gc2xvdC5vcHRpb25hbChpY29uLCB7XG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBQcm9wcyBwYXNzZWQgYXQgdGhlIHRvcC1sZXZlbFxuICAgICAgICBhcHBlYXJhbmNlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgZGlzYWJsZWRGb2N1c2FibGUsXG4gICAgICAgIGljb25Qb3NpdGlvbixcbiAgICAgICAgc2hhcGUsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGljb25Pbmx5OiBCb29sZWFuKChpY29uU2hvcnRoYW5kID09PSBudWxsIHx8IGljb25TaG9ydGhhbmQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGljb25TaG9ydGhhbmQuY2hpbGRyZW4pICYmICFwcm9wcy5jaGlsZHJlbiksXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgaWNvbjogJ3NwYW4nXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcyhhcywgdXNlQVJJQUJ1dHRvblByb3BzKHByb3BzLmFzLCBwcm9wcykpLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgaWNvbjogaWNvblNob3J0aGFuZFxuICAgIH07XG59O1xuIiwiaW1wb3J0IHsgaWNvbkZpbGxlZENsYXNzTmFtZSwgaWNvblJlZ3VsYXJDbGFzc05hbWUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRm9jdXNJbmRpY2F0b3JTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBzaG9ydGhhbmRzLCBfX3N0eWxlcywgX19yZXNldFN0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuZXhwb3J0IGNvbnN0IGJ1dHRvbkNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktQnV0dG9uJyxcbiAgaWNvbjogJ2Z1aS1CdXR0b25fX2ljb24nXG59O1xuY29uc3QgaWNvblNwYWNpbmdWYXIgPSAnLS1mdWktQnV0dG9uX19pY29uLS1zcGFjaW5nJztcbmNvbnN0IGJ1dHRvblNwYWNpbmdTbWFsbCA9ICczcHgnO1xuY29uc3QgYnV0dG9uU3BhY2luZ1NtYWxsV2l0aEljb24gPSAnMXB4JztcbmNvbnN0IGJ1dHRvblNwYWNpbmdNZWRpdW0gPSAnNXB4JztcbmNvbnN0IGJ1dHRvblNwYWNpbmdMYXJnZSA9ICc4cHgnO1xuY29uc3QgYnV0dG9uU3BhY2luZ0xhcmdlV2l0aEljb24gPSAnN3B4Jztcbi8qIEZpcmVmb3ggaGFzIGJveCBzaGFkb3cgc2l6aW5nIGlzc3VlIGF0IHNvbWUgem9vbSBsZXZlbHNcbiAqIHRoaXMgd2lsbCBlbnN1cmUgdGhlIGluc2V0IGJveFNoYWRvdyBpcyBhbHdheXMgdW5pZm9ybVxuICogd2l0aG91dCBhZmZlY3Rpbmcgb3RoZXIgYnJvd3NlciBwbGF0Zm9ybXNcbiAqL1xuY29uc3QgYm94U2hhZG93U3Ryb2tlV2lkdGhUaGluTW96ID0gYGNhbGMoJHt0b2tlbnMuc3Ryb2tlV2lkdGhUaGlufSArIDAuMjVweClgO1xuY29uc3QgdXNlUm9vdEJhc2VDbGFzc05hbWUgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxYWxyaGNzXCIsIG51bGwsIHtcbiAgcjogW1wiLnIxYWxyaGNze2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO291dGxpbmUtc3R5bGU6bm9uZTtwYWRkaW5nOjVweCB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pO21pbi13aWR0aDo5NnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLWR1cmF0aW9uRmFzdGVyKTt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQsYm9yZGVyLGNvbG9yO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWN1cnZlRWFzeUVhc2UpO31cIiwgXCIucjFhbHJoY3M6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMUhvdmVyKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyKTtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMUhvdmVyKTtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLnIxYWxyaGNzOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxUHJlc3NlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFQcmVzc2VkKTtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVByZXNzZWQpO291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnIxYWxyaGNzW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO2JvcmRlci13aWR0aDoxcHg7b3V0bGluZTp2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTtib3gtc2hhZG93OjAgMCAwIHZhcigtLXN0cm9rZVdpZHRoVGhpbikgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpIGluc2V0O3otaW5kZXg6MTt9XCJdLFxuICBzOiBbXCJAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsucjFhbHJoY3N7dHJhbnNpdGlvbi1kdXJhdGlvbjowLjAxbXM7fX1cIiwgXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnIxYWxyaGNzOmZvY3Vze2JvcmRlci1jb2xvcjpCdXR0b25UZXh0O30ucjFhbHJoY3M6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHRUZXh0O2JvcmRlci1jb2xvcjpIaWdobGlnaHQ7Y29sb3I6SGlnaGxpZ2h0O2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9LnIxYWxyaGNzOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOkhpZ2hsaWdodFRleHQ7Ym9yZGVyLWNvbG9yOkhpZ2hsaWdodDtjb2xvcjpIaWdobGlnaHQ7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO319XCIsIFwiQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6YnV0dG9uKXsucjFhbHJoY3NbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym94LXNoYWRvdzowIDAgMCBjYWxjKHZhcigtLXN0cm9rZVdpZHRoVGhpbikgKyAwLjI1cHgpIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKSBpbnNldDt9fVwiXVxufSk7XG5jb25zdCB1c2VJY29uQmFzZUNsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicnl3bnZ2MlwiLCBudWxsLCBbXCIucnl3bnZ2MnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyMHB4O2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7LS1mdWktQnV0dG9uX19pY29uLS1zcGFjaW5nOnZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCJdKTtcbmNvbnN0IHVzZVJvb3RTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBvdXRsaW5lOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgSndlZjh5OiBcImZqeHV0d2JcIixcbiAgICBpcm8zem06IFwiZndpbWw3MlwiXG4gIH0sXG4gIHByaW1hcnk6IHtcbiAgICBEZTNwenE6IFwiZmZwN2Vzb1wiLFxuICAgIGcydTN3ZTogXCJmMXAzbndoeVwiLFxuICAgIGgzYzVybTogW1wiZjExNTg5dWVcIiwgXCJmMXBkZmxidVwiXSxcbiAgICBCOXhhdjBnOiBcImYxcTVvOGV2XCIsXG4gICAgemhqd3kzOiBbXCJmMXBkZmxidVwiLCBcImYxMTU4OXVlXCJdLFxuICAgIHNqNTV6ZDogXCJmMXBocmFna1wiLFxuICAgIEp3ZWY4eTogXCJmMTV3a2tmM1wiLFxuICAgIEJnb2U4d3k6IFwiZjFzMnV3ZXFcIixcbiAgICBCd3pwcGZkOiBbXCJmcjgwc3NjXCIsIFwiZmVjc2RsYlwiXSxcbiAgICBvZXR1NGk6IFwiZjF1a3JweGxcIixcbiAgICBnZzVlOW46IFtcImZlY3NkbGJcIiwgXCJmcjgwc3NjXCJdLFxuICAgIEJpOTFrOWM6IFwiZjFycTcyeGNcIixcbiAgICBpcm8zem06IFwiZm5wOWxwdFwiLFxuICAgIGI2NjFidzogXCJmMWgwdXNucVwiLFxuICAgIEJrNnI0aWE6IFtcImZzNGt0bHFcIiwgXCJmeDJibXJ0XCJdLFxuICAgIEI5em44MHA6IFwiZjE2aDl1bHZcIixcbiAgICBCcGxkMjMzOiBbXCJmeDJibXJ0XCIsIFwiZnM0a3RscVwiXSxcbiAgICBCMmQ1M2ZxOiBcImYxZDZ2NXkyXCIsXG4gICAgQnN3NmZ2ZzogXCJmMXJpcm5ydFwiLFxuICAgIEJqd2FzMmY6IFwiZjF1dTAwdWtcIixcbiAgICBCbjFkNjVxOiBbXCJma3Zha2E4XCIsIFwiZjlhMHF6dVwiXSxcbiAgICBCeGV1YXRuOiBcImYxdXg3dGlsXCIsXG4gICAgbjUxZ3A4OiBbXCJmOWEwcXp1XCIsIFwiZmt2YWthOFwiXSxcbiAgICBCYnVzdXpwOiBcImYxbGtnOGozXCIsXG4gICAgeWNiZnNtOiBcImZrYzQyYXlcIixcbiAgICBCcXJ4MW5tOiBcImZxNzExM3ZcIixcbiAgICBwZ3ZmMzU6IFwiZmYxd2d2bVwiLFxuICAgIEJoN2xjemg6IFtcImZpb2IwdHVcIiwgXCJmMXg0aDc1a1wiXSxcbiAgICBkcHYzZjQ6IFwiZjFqNnNjZ2ZcIixcbiAgICBCcG5qaGFxOiBbXCJmMXg0aDc1a1wiLCBcImZpb2IwdHVcIl0sXG4gICAgemU1eHl5OiBcImY0eGp5bjFcIixcbiAgICBnMmtqMjc6IFwiZmJnY3Z1clwiLFxuICAgIEJmNzU2c3c6IFwiZjFrczF5eDhcIixcbiAgICBCb3cyZHI3OiBbXCJmMW82cWVnaVwiLCBcImZteGpoaHBcIl0sXG4gICAgQnZoZWRmazogXCJmY254eXdqXCIsXG4gICAgR3llNGxmOiBbXCJmbXhqaGhwXCIsIFwiZjFvNnFlZ2lcIl0sXG4gICAgcGM2ZXZ3OiBcImY5ZGRqdjNcIlxuICB9LFxuICBzZWNvbmRhcnk6IHt9LFxuICBzdWJ0bGU6IHtcbiAgICBEZTNwenE6IFwiZmhvdnE5dlwiLFxuICAgIGcydTN3ZTogXCJmMXAzbndoeVwiLFxuICAgIGgzYzVybTogW1wiZjExNTg5dWVcIiwgXCJmMXBkZmxidVwiXSxcbiAgICBCOXhhdjBnOiBcImYxcTVvOGV2XCIsXG4gICAgemhqd3kzOiBbXCJmMXBkZmxidVwiLCBcImYxMTU4OXVlXCJdLFxuICAgIHNqNTV6ZDogXCJma2ZxNHpiXCIsXG4gICAgSndlZjh5OiBcImYxdDk0Ym42XCIsXG4gICAgQmdvZTh3eTogXCJmMXMydXdlcVwiLFxuICAgIEJ3enBwZmQ6IFtcImZyODBzc2NcIiwgXCJmZWNzZGxiXCJdLFxuICAgIG9ldHU0aTogXCJmMXVrcnB4bFwiLFxuICAgIGdnNWU5bjogW1wiZmVjc2RsYlwiLCBcImZyODBzc2NcIl0sXG4gICAgQmk5MWs5YzogXCJmbnd5cTB2XCIsXG4gICAgQmszZmhyNDogXCJmdDFobjIxXCIsXG4gICAgQm1majhpZDogXCJmdXhuZ3Z2XCIsXG4gICAgQmJkbm5jNzogXCJmeTViczE0XCIsXG4gICAgaXJvM3ptOiBcImZzdjJyY2RcIixcbiAgICBiNjYxYnc6IFwiZjFoMHVzbnFcIixcbiAgICBCazZyNGlhOiBbXCJmczRrdGxxXCIsIFwiZngyYm1ydFwiXSxcbiAgICBCOXpuODBwOiBcImYxNmg5dWx2XCIsXG4gICAgQnBsZDIzMzogW1wiZngyYm1ydFwiLCBcImZzNGt0bHFcIl0sXG4gICAgQjJkNTNmcTogXCJmMW9tenlxZFwiLFxuICAgIGVtNmk2MTogXCJmMWRmam9vd1wiLFxuICAgIHZtNnA4cDogXCJmMWo5OHZqOVwiLFxuICAgIHgzYnIzazogXCJmajh5cTk0XCIsXG4gICAgemU1eHl5OiBcImY0eGp5bjFcIixcbiAgICBCeDNxOXN1OiBcImYxZXQwdG1oXCIsXG4gICAgcGM2ZXZ3OiBcImY5ZGRqdjNcIixcbiAgICB4ZDJjY2k6IFwiZjF3aThuZ2xcIlxuICB9LFxuICB0cmFuc3BhcmVudDoge1xuICAgIERlM3B6cTogXCJmMWMyMWR3aFwiLFxuICAgIGcydTN3ZTogXCJmMXAzbndoeVwiLFxuICAgIGgzYzVybTogW1wiZjExNTg5dWVcIiwgXCJmMXBkZmxidVwiXSxcbiAgICBCOXhhdjBnOiBcImYxcTVvOGV2XCIsXG4gICAgemhqd3kzOiBbXCJmMXBkZmxidVwiLCBcImYxMTU4OXVlXCJdLFxuICAgIHNqNTV6ZDogXCJma2ZxNHpiXCIsXG4gICAgSndlZjh5OiBcImZqeHV0d2JcIixcbiAgICBCZ29lOHd5OiBcImYxczJ1d2VxXCIsXG4gICAgQnd6cHBmZDogW1wiZnI4MHNzY1wiLCBcImZlY3NkbGJcIl0sXG4gICAgb2V0dTRpOiBcImYxdWtycHhsXCIsXG4gICAgZ2c1ZTluOiBbXCJmZWNzZGxiXCIsIFwiZnI4MHNzY1wiXSxcbiAgICBCaTkxazljOiBcImYxMzlvajVmXCIsXG4gICAgQmszZmhyNDogXCJmdDFobjIxXCIsXG4gICAgQm1majhpZDogXCJmdXhuZ3Z2XCIsXG4gICAgaXJvM3ptOiBcImZ3aW1sNzJcIixcbiAgICBiNjYxYnc6IFwiZjFoMHVzbnFcIixcbiAgICBCazZyNGlhOiBbXCJmczRrdGxxXCIsIFwiZngyYm1ydFwiXSxcbiAgICBCOXpuODBwOiBcImYxNmg5dWx2XCIsXG4gICAgQnBsZDIzMzogW1wiZngyYm1ydFwiLCBcImZzNGt0bHFcIl0sXG4gICAgQjJkNTNmcTogXCJmMWZnMXA1bVwiLFxuICAgIGVtNmk2MTogXCJmMWRmam9vd1wiLFxuICAgIHZtNnA4cDogXCJmMWo5OHZqOVwiLFxuICAgIEJxcngxbm06IFwiZjF0bWUwdmZcIixcbiAgICB6ZTV4eXk6IFwiZjR4anluMVwiLFxuICAgIGcya2oyNzogXCJmMThvbnUzcVwiLFxuICAgIHBjNmV2dzogXCJmOWRkanYzXCJcbiAgfSxcbiAgY2lyY3VsYXI6IHtcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmNDRsa3c5XCJcbiAgfSxcbiAgcm91bmRlZDoge30sXG4gIHNxdWFyZToge1xuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImYxZmFibml3XCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBCZjRqZWRrOiBcImZoN25jdGFcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZm5ldGg1YlwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZ0ODVucDVcIixcbiAgICBCZTJ0d2Q3OiBcImZ5OXJrbmNcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCZzk2Z3dwOiBcImZ3cmM0cG1cIlxuICB9LFxuICBzbWFsbFdpdGhJY29uOiB7XG4gICAgQnlvajh0djogXCJmMWJybGh2bVwiLFxuICAgIHo4dG51dDogXCJmMXNsM2s3d1wiXG4gIH0sXG4gIG1lZGl1bToge30sXG4gIGxhcmdlOiB7XG4gICAgQmY0amVkazogXCJmMTRlczI3YlwiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmNGRiMXd3XCIsXG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZnQ4NW5wNVwiLFxuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIEJnOTZnd3A6IFwiZmFhejU3a1wiXG4gIH0sXG4gIGxhcmdlV2l0aEljb246IHtcbiAgICBCeW9qOHR2OiBcImZ5N3Y0MTZcIixcbiAgICB6OHRudXQ6IFwiZjFhMWJ3d3pcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMWMyMWR3aHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmZmcDdlc297YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZCk7fVwiLCBcIi5mMXAzbndoeXtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjExNTg5dWV7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFwZGZsYnV7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMXE1bzhldntib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFwaHJhZ2t7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZmhvdnE5dntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZCk7fVwiLCBcIi5ma2ZxNHpie2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyKTt9XCIsIFtcIi5mNDRsa3c5e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzQ2lyY3VsYXIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFmYWJuaXd7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNOb25lKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZmg3bmN0YXttaW4td2lkdGg6NjRweDt9XCIsIFtcIi5mbmV0aDVie3BhZGRpbmc6M3B4IHZhcigtLXNwYWNpbmdIb3Jpem9udGFsUyk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mdDg1bnA1e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZndyYzRwbXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTIwMCk7fVwiLCBcIi5mMWJybGh2bXtwYWRkaW5nLWJvdHRvbToxcHg7fVwiLCBcIi5mMXNsM2s3d3twYWRkaW5nLXRvcDoxcHg7fVwiLCBcIi5mMTRlczI3YnttaW4td2lkdGg6OTZweDt9XCIsIFtcIi5mNGRiMXd3e3BhZGRpbmc6OHB4IHZhcigtLXNwYWNpbmdIb3Jpem9udGFsTCk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mdDg1bnA1e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZm9kNWlrbntmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNDAwKTt9XCIsIFwiLmZsNDN1ZWZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFNlbWlib2xkKTt9XCIsIFwiLmZhYXo1N2t7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U0MDApO31cIiwgXCIuZnk3djQxNntwYWRkaW5nLWJvdHRvbTo3cHg7fVwiLCBcIi5mMWExYnd3entwYWRkaW5nLXRvcDo3cHg7fVwiXSxcbiAgaDogW1wiLmZqeHV0d2I6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmZ3aW1sNzI6aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmRQcmVzc2VkKTt9XCIsIFwiLmYxNXdra2YzOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRIb3Zlcik7fVwiLCBcIi5mMXMydXdlcTpob3Zlcntib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZnI4MHNzYzpob3Zlcntib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mZWNzZGxiOmhvdmVye2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjF1a3JweGw6aG92ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxcnE3MnhjOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmZucDlscHQ6aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRQcmVzc2VkKTt9XCIsIFwiLmYxaDB1c25xOmhvdmVyOmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZnM0a3RscTpob3ZlcjphY3RpdmV7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZngyYm1ydDpob3ZlcjphY3RpdmV7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMTZoOXVsdjpob3ZlcjphY3RpdmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxZDZ2NXkyOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mMXQ5NGJuNjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmZud3lxMHY6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJIb3Zlcik7fVwiLCBcIi5mdDFobjIxOmhvdmVyIC5mdWktSWNvbi1maWxsZWR7ZGlzcGxheTppbmxpbmU7fVwiLCBcIi5mdXhuZ3Z2OmhvdmVyIC5mdWktSWNvbi1yZWd1bGFye2Rpc3BsYXk6bm9uZTt9XCIsIFwiLmZ5NWJzMTQ6aG92ZXIgLmZ1aS1CdXR0b25fX2ljb257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJCcmFuZEhvdmVyKTt9XCIsIFwiLmZzdjJyY2Q6aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiLCBcIi5mMW9tenlxZDpob3ZlcjphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJQcmVzc2VkKTt9XCIsIFwiLmYxZGZqb293OmhvdmVyOmFjdGl2ZSAuZnVpLUljb24tZmlsbGVke2Rpc3BsYXk6aW5saW5lO31cIiwgXCIuZjFqOTh2ajk6aG92ZXI6YWN0aXZlIC5mdWktSWNvbi1yZWd1bGFye2Rpc3BsYXk6bm9uZTt9XCIsIFwiLmZqOHlxOTQ6aG92ZXI6YWN0aXZlIC5mdWktQnV0dG9uX19pY29ue2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRQcmVzc2VkKTt9XCIsIFwiLmYxMzlvajVmOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyQnJhbmRIb3Zlcik7fVwiLCBcIi5mMWZnMXA1bTpob3ZlcjphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJCcmFuZFByZXNzZWQpO31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxcmlybnJ0e2JhY2tncm91bmQtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjF1dTAwdWt7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHRUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjlhMHF6dXtib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHRUZXh0O30uZmt2YWthOHtib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxdXg3dGlse2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxbGtnOGoze2NvbG9yOkhpZ2hsaWdodFRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5ma2M0MmF5e2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZxNzExM3Y6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHRUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmYxd2d2bTpob3Zlcntib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxeDRoNzVrOmhvdmVye2JvcmRlci1sZWZ0LWNvbG9yOkhpZ2hsaWdodDt9LmZpb2IwdHU6aG92ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxajZzY2dmOmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjR4anluMTpob3Zlcntjb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mYmdjdnVyOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOkhpZ2hsaWdodFRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWtzMXl4ODpob3ZlcjphY3RpdmV7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMW82cWVnaTpob3ZlcjphY3RpdmV7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDt9LmZteGpoaHA6aG92ZXI6YWN0aXZle2JvcmRlci1sZWZ0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZjbnh5d2o6aG92ZXI6YWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjlkZGp2Mzpob3ZlcjphY3RpdmV7Y29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFldDB0bWg6aG92ZXIgLmZ1aS1CdXR0b25fX2ljb257Y29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjF3aThuZ2w6aG92ZXI6YWN0aXZlIC5mdWktQnV0dG9uX19pY29ue2NvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxdG1lMHZmOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjE4b251M3E6aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dXG59KTtcbmNvbnN0IHVzZVJvb3REaXNhYmxlZFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBEZTNwenE6IFwiZjFiZzlhMnBcIixcbiAgICBnMnUzd2U6IFwiZjFqajhlcDFcIixcbiAgICBoM2M1cm06IFtcImYxNXhiYXVcIiwgXCJmeTBmc2tsXCJdLFxuICAgIEI5eGF2MGc6IFwiZjRpa25nelwiLFxuICAgIHpoand5MzogW1wiZnkwZnNrbFwiLCBcImYxNXhiYXVcIl0sXG4gICAgc2o1NXpkOiBcImYxczJhcTdvXCIsXG4gICAgQmNlZWk5YzogXCJmZHJ6dXFyXCIsXG4gICAgQmZpbm13cDogXCJmMTV4OGI1clwiLFxuICAgIEp3ZWY4eTogXCJmMWZhbHI5blwiLFxuICAgIEJnb2U4d3k6IFwiZjEybXBjc3lcIixcbiAgICBCd3pwcGZkOiBbXCJmMWd3dmlna1wiLCBcImYxOHJtZnhwXCJdLFxuICAgIG9ldHU0aTogXCJmMWpuc2hwMFwiLFxuICAgIGdnNWU5bjogW1wiZjE4cm1meHBcIiwgXCJmMWd3dmlna1wiXSxcbiAgICBCaTkxazljOiBcImZ2Z3hrdHBcIixcbiAgICBlb2F2cWQ6IFwiZnBoYndtd1wiLFxuICAgIEJrM2ZocjQ6IFwiZjE5dnBwczdcIixcbiAgICBCbWZqOGlkOiBcImZ2NXN3em9cIixcbiAgICBCYmRubmM3OiBcImYxYWwwMmRxXCIsXG4gICAgaXJvM3ptOiBcImYxdDZvNGRjXCIsXG4gICAgYjY2MWJ3OiBcImYxMHp0aWdpXCIsXG4gICAgQms2cjRpYTogW1wiZjFmdDVzZHVcIiwgXCJmMWd6Zjgyd1wiXSxcbiAgICBCOXpuODBwOiBcImYxMnpidG4yXCIsXG4gICAgQnBsZDIzMzogW1wiZjFnemY4MndcIiwgXCJmMWZ0NXNkdVwiXSxcbiAgICBCMmQ1M2ZxOiBcImZjdnd4eW9cIixcbiAgICBjM2l6NzI6IFwiZjh3NGM0M1wiLFxuICAgIGVtNmk2MTogXCJmMW9sNGZ3NlwiLFxuICAgIHZtNnA4cDogXCJmMXExbHc0ZVwiLFxuICAgIHgzYnIzazogXCJmMWR3anYyZ1wiXG4gIH0sXG4gIGhpZ2hDb250cmFzdDoge1xuICAgIEJzdzZmdmc6IFwiZjRsa29tYVwiLFxuICAgIEJqd2FzMmY6IFwiZmc0NTV5OVwiLFxuICAgIEJuMWQ2NXE6IFtcImYxcnZ5dnFnXCIsIFwiZjE0Zzg2bXVcIl0sXG4gICAgQnhldWF0bjogXCJmMWN3end6XCIsXG4gICAgbjUxZ3A4OiBbXCJmMTRnODZtdVwiLCBcImYxcnZ5dnFnXCJdLFxuICAgIEJidXN1enA6IFwiZjFkY3M4eXpcIixcbiAgICBHODY3bDM6IFwiZmp3cTZlYVwiLFxuICAgIGdkYm5qOiBbXCJmMWxyM25oY1wiLCBcImYxbWJ4dmk2XCJdLFxuICAgIG14bnM1bDogXCJmbjVnbXZ2XCIsXG4gICAgbzNuYXNiOiBbXCJmMW1ieHZpNlwiLCBcImYxbHIzbmhjXCJdLFxuICAgIEJxcngxbm06IFwiZjF2bWtiNWdcIixcbiAgICBwZ3ZmMzU6IFwiZjUzcHBncVwiLFxuICAgIEJoN2xjemg6IFtcImYxNjYzeTExXCIsIFwiZjgwZmtpeVwiXSxcbiAgICBkcHYzZjQ6IFwiZjE4djUyNzBcIixcbiAgICBCcG5qaGFxOiBbXCJmODBma2l5XCIsIFwiZjE2NjN5MTFcIl0sXG4gICAgemU1eHl5OiBcImYxa2MybWk5XCIsXG4gICAgZzJrajI3OiBcImYxeTBzdmZoXCIsXG4gICAgQmY3NTZzdzogXCJmaWh1YWl0XCIsXG4gICAgQm93MmRyNzogW1wiZm54aHVwcVwiLCBcImZ5ZDZsNnhcIl0sXG4gICAgQnZoZWRmazogXCJmeDUwN2Z0XCIsXG4gICAgR3llNGxmOiBbXCJmeWQ2bDZ4XCIsIFwiZm54aHVwcVwiXSxcbiAgICBwYzZldnc6IFwiZmIzcmYyeFwiXG4gIH0sXG4gIG91dGxpbmU6IHtcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBKd2VmOHk6IFwiZjlxbDZyZlwiLFxuICAgIGlybzN6bTogXCJmM2gxemM0XCJcbiAgfSxcbiAgcHJpbWFyeToge1xuICAgIGcydTN3ZTogXCJmMXAzbndoeVwiLFxuICAgIGgzYzVybTogW1wiZjExNTg5dWVcIiwgXCJmMXBkZmxidVwiXSxcbiAgICBCOXhhdjBnOiBcImYxcTVvOGV2XCIsXG4gICAgemhqd3kzOiBbXCJmMXBkZmxidVwiLCBcImYxMTU4OXVlXCJdLFxuICAgIEJnb2U4d3k6IFwiZjFzMnV3ZXFcIixcbiAgICBCd3pwcGZkOiBbXCJmcjgwc3NjXCIsIFwiZmVjc2RsYlwiXSxcbiAgICBvZXR1NGk6IFwiZjF1a3JweGxcIixcbiAgICBnZzVlOW46IFtcImZlY3NkbGJcIiwgXCJmcjgwc3NjXCJdLFxuICAgIGI2NjFidzogXCJmMWgwdXNucVwiLFxuICAgIEJrNnI0aWE6IFtcImZzNGt0bHFcIiwgXCJmeDJibXJ0XCJdLFxuICAgIEI5em44MHA6IFwiZjE2aDl1bHZcIixcbiAgICBCcGxkMjMzOiBbXCJmeDJibXJ0XCIsIFwiZnM0a3RscVwiXVxuICB9LFxuICBzZWNvbmRhcnk6IHt9LFxuICBzdWJ0bGU6IHtcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBnMnUzd2U6IFwiZjFwM253aHlcIixcbiAgICBoM2M1cm06IFtcImYxMTU4OXVlXCIsIFwiZjFwZGZsYnVcIl0sXG4gICAgQjl4YXYwZzogXCJmMXE1bzhldlwiLFxuICAgIHpoand5MzogW1wiZjFwZGZsYnVcIiwgXCJmMTE1ODl1ZVwiXSxcbiAgICBKd2VmOHk6IFwiZjlxbDZyZlwiLFxuICAgIEJnb2U4d3k6IFwiZjFzMnV3ZXFcIixcbiAgICBCd3pwcGZkOiBbXCJmcjgwc3NjXCIsIFwiZmVjc2RsYlwiXSxcbiAgICBvZXR1NGk6IFwiZjF1a3JweGxcIixcbiAgICBnZzVlOW46IFtcImZlY3NkbGJcIiwgXCJmcjgwc3NjXCJdLFxuICAgIGlybzN6bTogXCJmM2gxemM0XCIsXG4gICAgYjY2MWJ3OiBcImYxaDB1c25xXCIsXG4gICAgQms2cjRpYTogW1wiZnM0a3RscVwiLCBcImZ4MmJtcnRcIl0sXG4gICAgQjl6bjgwcDogXCJmMTZoOXVsdlwiLFxuICAgIEJwbGQyMzM6IFtcImZ4MmJtcnRcIiwgXCJmczRrdGxxXCJdXG4gIH0sXG4gIHRyYW5zcGFyZW50OiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgZzJ1M3dlOiBcImYxcDNud2h5XCIsXG4gICAgaDNjNXJtOiBbXCJmMTE1ODl1ZVwiLCBcImYxcGRmbGJ1XCJdLFxuICAgIEI5eGF2MGc6IFwiZjFxNW84ZXZcIixcbiAgICB6aGp3eTM6IFtcImYxcGRmbGJ1XCIsIFwiZjExNTg5dWVcIl0sXG4gICAgSndlZjh5OiBcImY5cWw2cmZcIixcbiAgICBCZ29lOHd5OiBcImYxczJ1d2VxXCIsXG4gICAgQnd6cHBmZDogW1wiZnI4MHNzY1wiLCBcImZlY3NkbGJcIl0sXG4gICAgb2V0dTRpOiBcImYxdWtycHhsXCIsXG4gICAgZ2c1ZTluOiBbXCJmZWNzZGxiXCIsIFwiZnI4MHNzY1wiXSxcbiAgICBpcm8zem06IFwiZjNoMXpjNFwiLFxuICAgIGI2NjFidzogXCJmMWgwdXNucVwiLFxuICAgIEJrNnI0aWE6IFtcImZzNGt0bHFcIiwgXCJmeDJibXJ0XCJdLFxuICAgIEI5em44MHA6IFwiZjE2aDl1bHZcIixcbiAgICBCcGxkMjMzOiBbXCJmeDJibXJ0XCIsIFwiZnM0a3RscVwiXVxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMWJnOWEycHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmREaXNhYmxlZCk7fVwiLCBcIi5mMWpqOGVwMXtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmYxNXhiYXV7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmZ5MGZza2x7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlRGlzYWJsZWQpO31cIiwgXCIuZjRpa25nentib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmYxczJhcTdve2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmREaXNhYmxlZCk7fVwiLCBcIi5mZHJ6dXFye2N1cnNvcjpub3QtYWxsb3dlZDt9XCIsIFwiLmYxNXg4YjVyIC5mdWktQnV0dG9uX19pY29ue2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmREaXNhYmxlZCk7fVwiLCBcIi5mMWMyMWR3aHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxcDNud2h5e2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMTE1ODl1ZXtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMXBkZmxidXtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxcTVvOGV2e2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7fVwiXSxcbiAgaDogW1wiLmYxZmFscjluOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxMm1wY3N5OmhvdmVye2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlRGlzYWJsZWQpO31cIiwgXCIuZjFnd3ZpZ2s6aG92ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmYxOHJtZnhwOmhvdmVye2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmYxam5zaHAwOmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlRGlzYWJsZWQpO31cIiwgXCIuZnZneGt0cDpob3Zlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZnBoYndtdzpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWQ7fVwiLCBcIi5mMTl2cHBzNzpob3ZlciAuZnVpLUljb24tZmlsbGVke2Rpc3BsYXk6bm9uZTt9XCIsIFwiLmZ2NXN3em86aG92ZXIgLmZ1aS1JY29uLXJlZ3VsYXJ7ZGlzcGxheTppbmxpbmU7fVwiLCBcIi5mMWFsMDJkcTpob3ZlciAuZnVpLUJ1dHRvbl9faWNvbntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZjF0Nm80ZGM6aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxMHp0aWdpOmhvdmVyOmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmYxZnQ1c2R1OmhvdmVyOmFjdGl2ZXtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlRGlzYWJsZWQpO31cIiwgXCIuZjFnemY4Mnc6aG92ZXI6YWN0aXZle2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmYxMnpidG4yOmhvdmVyOmFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmZjdnd4eW86aG92ZXI6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmREaXNhYmxlZCk7fVwiLCBcIi5mOHc0YzQzOmhvdmVyOmFjdGl2ZXtjdXJzb3I6bm90LWFsbG93ZWQ7fVwiLCBcIi5mMW9sNGZ3Njpob3ZlcjphY3RpdmUgLmZ1aS1JY29uLWZpbGxlZHtkaXNwbGF5Om5vbmU7fVwiLCBcIi5mMXExbHc0ZTpob3ZlcjphY3RpdmUgLmZ1aS1JY29uLXJlZ3VsYXJ7ZGlzcGxheTppbmxpbmU7fVwiLCBcIi5mMWR3anYyZzpob3ZlcjphY3RpdmUgLmZ1aS1CdXR0b25fX2ljb257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmY5cWw2cmY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBcIi5mM2gxemM0OmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxczJ1d2VxOmhvdmVye2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mcjgwc3NjOmhvdmVye2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmZlY3NkbGI6aG92ZXJ7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMXVrcnB4bDpob3Zlcntib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFoMHVzbnE6aG92ZXI6YWN0aXZle2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mczRrdGxxOmhvdmVyOmFjdGl2ZXtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5meDJibXJ0OmhvdmVyOmFjdGl2ZXtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxNmg5dWx2OmhvdmVyOmFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmY0bGtvbWF7YmFja2dyb3VuZC1jb2xvcjpCdXR0b25GYWNlO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmc0NTV5OXtib3JkZXItdG9wLWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjE0Zzg2bXV7Ym9yZGVyLWxlZnQtY29sb3I6R3JheVRleHQ7fS5mMXJ2eXZxZ3tib3JkZXItcmlnaHQtY29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWN3end6e2JvcmRlci1ib3R0b20tY29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWRjczh5entjb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZqd3E2ZWE6Zm9jdXN7Ym9yZGVyLXRvcC1jb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxbHIzbmhjOmZvY3Vze2JvcmRlci1yaWdodC1jb2xvcjpHcmF5VGV4dDt9LmYxbWJ4dmk2OmZvY3Vze2JvcmRlci1sZWZ0LWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZm41Z212djpmb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjF2bWtiNWc6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpCdXR0b25GYWNlO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjUzcHBncTpob3Zlcntib3JkZXItdG9wLWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjE2NjN5MTE6aG92ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkdyYXlUZXh0O30uZjgwZmtpeTpob3Zlcntib3JkZXItbGVmdC1jb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxOHY1MjcwOmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWtjMm1pOTpob3Zlcntjb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxeTBzdmZoOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOkJ1dHRvbkZhY2U7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5maWh1YWl0OmhvdmVyOmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZm54aHVwcTpob3ZlcjphY3RpdmV7Ym9yZGVyLXJpZ2h0LWNvbG9yOkdyYXlUZXh0O30uZnlkNmw2eDpob3ZlcjphY3RpdmV7Ym9yZGVyLWxlZnQtY29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5meDUwN2Z0OmhvdmVyOmFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmIzcmYyeDpob3ZlcjphY3RpdmV7Y29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuY29uc3QgdXNlUm9vdEZvY3VzU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgY2lyY3VsYXI6IHtcbiAgICBCdzgxcmQ3OiAwLFxuICAgIGtkcHVnYTogMCxcbiAgICBkbTIzOHM6IDAsXG4gICAgQjZ4Ym1vMDogMCxcbiAgICBCM3doYngyOiBcImYxMDYycmJmXCJcbiAgfSxcbiAgcm91bmRlZDoge30sXG4gIHNxdWFyZToge1xuICAgIEJ3ODFyZDc6IDAsXG4gICAga2RwdWdhOiAwLFxuICAgIGRtMjM4czogMCxcbiAgICBCNnhibW8wOiAwLFxuICAgIEIzd2hieDI6IFwiZmowcnlrMVwiXG4gIH0sXG4gIHByaW1hcnk6IHtcbiAgICBCOHE1czF3OiBcImYxN3QweDhnXCIsXG4gICAgQmNpNW81ZzogW1wiZjE5NHY1b3dcIiwgXCJmazdqbTA0XCJdLFxuICAgIG44cXcxMDogXCJmMXFnZzY1cFwiLFxuICAgIEJkcmd3bXA6IFtcImZrN2ptMDRcIiwgXCJmMTk0djVvd1wiXSxcbiAgICBqNmV3Mms6IFtcImZoZ2NjcHlcIiwgXCJmam83cHE2XCJdLFxuICAgIGhlNG10aDogXCJmMzJ3dTlrXCIsXG4gICAgQnlyNGFrYTogXCJmdTVucXFxXCIsXG4gICAgbGtzN3E1OiBbXCJmMTNwcmpsMlwiLCBcImYxbmw4M3J2XCJdLFxuICAgIEJuYW4zcXQ6IFwiZjFjemZ0cjVcIixcbiAgICBrMWRuOTogW1wiZjFubDgzcnZcIiwgXCJmMTNwcmpsMlwiXSxcbiAgICBCb2l1bTNhOiBbXCJmMTJrMzdvYVwiLCBcImZkbnlrbTJcIl0sXG4gICAgdG04ZTQ3OiBcImZyOTZ1MjNcIlxuICB9LFxuICBzbWFsbDoge1xuICAgIEJ3ODFyZDc6IDAsXG4gICAga2RwdWdhOiAwLFxuICAgIGRtMjM4czogMCxcbiAgICBCNnhibW8wOiAwLFxuICAgIEIzd2hieDI6IFwiZmF6bXhoXCJcbiAgfSxcbiAgbWVkaXVtOiB7fSxcbiAgbGFyZ2U6IHtcbiAgICBCdzgxcmQ3OiAwLFxuICAgIGtkcHVnYTogMCxcbiAgICBkbTIzOHM6IDAsXG4gICAgQjZ4Ym1vMDogMCxcbiAgICBCM3doYngyOiBcImYxYjZhbHFoXCJcbiAgfVxufSwge1xuICBkOiBbW1wiLmYxMDYycmJmW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzQ2lyY3VsYXIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZmowcnlrMVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c05vbmUpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTd0MHg4Z1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIFwiLmYxOTR2NW93W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7fVwiLCBcIi5mazdqbTA0W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIFwiLmYxcWdnNjVwW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwgXCIuZmhnY2NweVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3gtc2hhZG93OnZhcigtLXNoYWRvdzIpLDAgMCAwIHZhcigtLXN0cm9rZVdpZHRoVGhpbikgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpIGluc2V0LDAgMCAwIHZhcigtLXN0cm9rZVdpZHRoVGhpY2spIHZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKSBpbnNldDt9XCIsIFwiLmZqbzdwcTZbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cyKSwwIDAgMCB2YXIoLS1zdHJva2VXaWR0aFRoaW4pIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKSBpbnNldCwwIDAgMCB2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSB2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCkgaW5zZXQ7fVwiLCBcIi5mMzJ3dTlrW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOmhvdmVye2JveC1zaGFkb3c6dmFyKC0tc2hhZG93MiksMCAwIDAgdmFyKC0tc3Ryb2tlV2lkdGhUaGluKSB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMikgaW5zZXQ7fVwiLCBcIi5mdTVucXFxW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOmhvdmVye2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwgXCIuZjEzcHJqbDJbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06aG92ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIFwiLmYxbmw4M3J2W2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOmhvdmVye2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIFwiLmYxY3pmdHI1W2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwgW1wiLmZhem14aFtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c1NtYWxsKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxYjZhbHFoW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTGFyZ2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dXSxcbiAgdDogW1wiQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6YnV0dG9uKXsuZjEyazM3b2FbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cyKSwwIDAgMCBjYWxjKHZhcigtLXN0cm9rZVdpZHRoVGhpbikgKyAwLjI1cHgpIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKSBpbnNldCwwIDAgMCB2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSB2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCkgaW5zZXQ7fS5mZG55a20yW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JveC1zaGFkb3c6dmFyKC0tc2hhZG93MiksMCAwIDAgY2FsYyh2YXIoLS1zdHJva2VXaWR0aFRoaW4pICsgMC4yNXB4KSB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMikgaW5zZXQsMCAwIDAgdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgdmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpIGluc2V0O319XCIsIFwiQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6YnV0dG9uKXsuZnI5NnUyM1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTpob3Zlcntib3gtc2hhZG93OnZhcigtLXNoYWRvdzIpLDAgMCAwIGNhbGModmFyKC0tc3Ryb2tlV2lkdGhUaGluKSArIDAuMjVweCkgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpIGluc2V0O319XCJdXG59KTtcbmNvbnN0IHVzZVJvb3RJY29uT25seVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHNtYWxsOiB7XG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImZ1OTdtNXpcIixcbiAgICBCZjRqZWRrOiBcImYxN2ZncGJxXCIsXG4gICAgQjJ1MHk2YjogXCJmMWp0MTdibVwiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmMThrdGFpMlwiLFxuICAgIEJmNGplZGs6IFwiZndibXIwZFwiLFxuICAgIEIydTB5NmI6IFwiZjQ0YzZsYVwiXG4gIH0sXG4gIGxhcmdlOiB7XG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxaGJkMWF3XCIsXG4gICAgQmY0amVkazogXCJmMTJjbHpjMlwiLFxuICAgIEIydTB5NmI6IFwiZmp5MWNyclwiXG4gIH1cbn0sIHtcbiAgZDogW1tcIi5mdTk3bTV6e3BhZGRpbmc6MXB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTdmZ3BicXttaW4td2lkdGg6MjRweDt9XCIsIFwiLmYxanQxN2Jte21heC13aWR0aDoyNHB4O31cIiwgW1wiLmYxOGt0YWkye3BhZGRpbmc6NXB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5md2JtcjBke21pbi13aWR0aDozMnB4O31cIiwgXCIuZjQ0YzZsYXttYXgtd2lkdGg6MzJweDt9XCIsIFtcIi5mMWhiZDFhd3twYWRkaW5nOjdweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjEyY2x6YzJ7bWluLXdpZHRoOjQwcHg7fVwiLCBcIi5mankxY3Jye21heC13aWR0aDo0MHB4O31cIl1cbn0pO1xuY29uc3QgdXNlSWNvblN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHNtYWxsOiB7XG4gICAgQmUydHdkNzogXCJmZTVqMXVhXCIsXG4gICAgQnFlbnZpajogXCJmamFtcTZiXCIsXG4gICAgYTliNjc3OiBcImY2NGZ1cTNcIixcbiAgICBCcXJseXlsOiBcImZiYWlhaHhcIlxuICB9LFxuICBtZWRpdW06IHt9LFxuICBsYXJnZToge1xuICAgIEJlMnR3ZDc6IFwiZjFydDJib3lcIixcbiAgICBCcWVudmlqOiBcImZydmdoNTVcIixcbiAgICBhOWI2Nzc6IFwiZnE0bWN1blwiLFxuICAgIEJxcmx5eWw6IFwiZjFleGpxdzVcIlxuICB9LFxuICBiZWZvcmU6IHtcbiAgICB0MjFjcTA6IFtcImYxbml6cGcyXCIsIFwiZjFhNjk1a3pcIl1cbiAgfSxcbiAgYWZ0ZXI6IHtcbiAgICBGcmc2ZjM6IFtcImYxYTY5NWt6XCIsIFwiZjFuaXpwZzJcIl1cbiAgfVxufSwge1xuICBkOiBbXCIuZmU1ajF1YXtmb250LXNpemU6MjBweDt9XCIsIFwiLmZqYW1xNmJ7aGVpZ2h0OjIwcHg7fVwiLCBcIi5mNjRmdXEze3dpZHRoOjIwcHg7fVwiLCBcIi5mYmFpYWh4ey0tZnVpLUJ1dHRvbl9faWNvbi0tc3BhY2luZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFwiLmYxcnQyYm95e2ZvbnQtc2l6ZToyNHB4O31cIiwgXCIuZnJ2Z2g1NXtoZWlnaHQ6MjRweDt9XCIsIFwiLmZxNG1jdW57d2lkdGg6MjRweDt9XCIsIFwiLmYxZXhqcXc1ey0tZnVpLUJ1dHRvbl9faWNvbi0tc3BhY2luZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCBcIi5mMW5penBnMnttYXJnaW4tcmlnaHQ6dmFyKC0tZnVpLUJ1dHRvbl9faWNvbi0tc3BhY2luZyk7fVwiLCBcIi5mMWE2OTVrenttYXJnaW4tbGVmdDp2YXIoLS1mdWktQnV0dG9uX19pY29uLS1zcGFjaW5nKTt9XCJdXG59KTtcbmV4cG9ydCBjb25zdCB1c2VCdXR0b25TdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgcm9vdEJhc2VDbGFzc05hbWUgPSB1c2VSb290QmFzZUNsYXNzTmFtZSgpO1xuICBjb25zdCBpY29uQmFzZUNsYXNzTmFtZSA9IHVzZUljb25CYXNlQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IHJvb3RTdHlsZXMgPSB1c2VSb290U3R5bGVzKCk7XG4gIGNvbnN0IHJvb3REaXNhYmxlZFN0eWxlcyA9IHVzZVJvb3REaXNhYmxlZFN0eWxlcygpO1xuICBjb25zdCByb290Rm9jdXNTdHlsZXMgPSB1c2VSb290Rm9jdXNTdHlsZXMoKTtcbiAgY29uc3Qgcm9vdEljb25Pbmx5U3R5bGVzID0gdXNlUm9vdEljb25Pbmx5U3R5bGVzKCk7XG4gIGNvbnN0IGljb25TdHlsZXMgPSB1c2VJY29uU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBhcHBlYXJhbmNlLFxuICAgIGRpc2FibGVkLFxuICAgIGRpc2FibGVkRm9jdXNhYmxlLFxuICAgIGljb24sXG4gICAgaWNvbk9ubHksXG4gICAgaWNvblBvc2l0aW9uLFxuICAgIHNoYXBlLFxuICAgIHNpemVcbiAgfSA9IHN0YXRlO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhidXR0b25DbGFzc05hbWVzLnJvb3QsIHJvb3RCYXNlQ2xhc3NOYW1lLCBhcHBlYXJhbmNlICYmIHJvb3RTdHlsZXNbYXBwZWFyYW5jZV0sIHJvb3RTdHlsZXNbc2l6ZV0sIGljb24gJiYgc2l6ZSA9PT0gJ3NtYWxsJyAmJiByb290U3R5bGVzLnNtYWxsV2l0aEljb24sIGljb24gJiYgc2l6ZSA9PT0gJ2xhcmdlJyAmJiByb290U3R5bGVzLmxhcmdlV2l0aEljb24sIHJvb3RTdHlsZXNbc2hhcGVdLFxuICAvLyBEaXNhYmxlZCBzdHlsZXNcbiAgKGRpc2FibGVkIHx8IGRpc2FibGVkRm9jdXNhYmxlKSAmJiByb290RGlzYWJsZWRTdHlsZXMuYmFzZSwgKGRpc2FibGVkIHx8IGRpc2FibGVkRm9jdXNhYmxlKSAmJiByb290RGlzYWJsZWRTdHlsZXMuaGlnaENvbnRyYXN0LCBhcHBlYXJhbmNlICYmIChkaXNhYmxlZCB8fCBkaXNhYmxlZEZvY3VzYWJsZSkgJiYgcm9vdERpc2FibGVkU3R5bGVzW2FwcGVhcmFuY2VdLFxuICAvLyBGb2N1cyBzdHlsZXNcbiAgYXBwZWFyYW5jZSA9PT0gJ3ByaW1hcnknICYmIHJvb3RGb2N1c1N0eWxlcy5wcmltYXJ5LCByb290Rm9jdXNTdHlsZXNbc2l6ZV0sIHJvb3RGb2N1c1N0eWxlc1tzaGFwZV0sXG4gIC8vIEljb24tb25seSBzdHlsZXNcbiAgaWNvbk9ubHkgJiYgcm9vdEljb25Pbmx5U3R5bGVzW3NpemVdLFxuICAvLyBVc2VyIHByb3ZpZGVkIGNsYXNzIG5hbWVcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBpZiAoc3RhdGUuaWNvbikge1xuICAgIHN0YXRlLmljb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGJ1dHRvbkNsYXNzTmFtZXMuaWNvbiwgaWNvbkJhc2VDbGFzc05hbWUsICEhc3RhdGUucm9vdC5jaGlsZHJlbiAmJiBpY29uU3R5bGVzW2ljb25Qb3NpdGlvbl0sIGljb25TdHlsZXNbc2l6ZV0sIHN0YXRlLmljb24uY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlQnV0dG9uU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXJCdXR0b25fdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlckJ1dHRvbic7XG5pbXBvcnQgeyB1c2VCdXR0b25fdW5zdGFibGUgfSBmcm9tICcuL3VzZUJ1dHRvbic7XG5pbXBvcnQgeyB1c2VCdXR0b25TdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZUJ1dHRvblN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIEJ1dHRvbnMgZ2l2ZSBwZW9wbGUgYSB3YXkgdG8gdHJpZ2dlciBhbiBhY3Rpb24uXG4gKi8gZXhwb3J0IGNvbnN0IEJ1dHRvbiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZUJ1dHRvbl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VCdXR0b25TdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlQnV0dG9uU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJCdXR0b25fdW5zdGFibGUoc3RhdGUpO1xuLy8gQ2FzdGluZyBpcyByZXF1aXJlZCBkdWUgdG8gbGFjayBvZiBkaXN0cmlidXRpdmUgdW5pb24gdG8gc3VwcG9ydCB1bmlvbnMgb24gQHR5cGVzL3JlYWN0XG59KTtcbkJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdCdXR0b24nO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgRmllbGRDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IEZpZWxkQ29udGV4dFByb3ZpZGVyID0gRmllbGRDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGNvbnN0IHVzZUZpZWxkQ29udGV4dF91bnN0YWJsZSA9ICgpPT5SZWFjdC51c2VDb250ZXh0KEZpZWxkQ29udGV4dCk7XG4iLCJpbXBvcnQgeyB1c2VGaWVsZENvbnRleHRfdW5zdGFibGUgfSBmcm9tICcuL0ZpZWxkQ29udGV4dCc7XG5leHBvcnQgZnVuY3Rpb24gdXNlRmllbGRDb250cm9sUHJvcHNfdW5zdGFibGUocHJvcHMsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gZ2V0RmllbGRDb250cm9sUHJvcHModXNlRmllbGRDb250ZXh0X3Vuc3RhYmxlKCksIHByb3BzLCBvcHRpb25zKTtcbn1cbi8qKlxuICogQGludGVybmFsXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB1c2VGaWVsZENvbnRyb2xQcm9wc191bnN0YWJsZS5cbiAqIFNwbGl0IG91dCBzbyBpdCBjYW4gYmUgdXNlZCBkaXJlY3RseSBpbiByZW5kZXJGaWVsZF91bnN0YWJsZS5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRDb250cm9sUHJvcHMoY29udGV4dCwgcHJvcHMsIG9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICAvLyBDcmVhdGUgYSBjb3B5IG9mIHByb3BzIHNvIHdlIGRvbid0IG1vZGlmeSB0aGUgb3JpZ2luYWxcbiAgICBwcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHNcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2VuZXJhdGVkQ29udHJvbElkLCBoaW50SWQsIGxhYmVsRm9yLCBsYWJlbElkLCByZXF1aXJlZCwgdmFsaWRhdGlvbk1lc3NhZ2VJZCwgdmFsaWRhdGlvblN0YXRlIH0gPSBjb250ZXh0O1xuICAgIGlmIChnZW5lcmF0ZWRDb250cm9sSWQpIHtcbiAgICAgICAgdmFyIF9wcm9wcztcbiAgICAgICAgdmFyIF9pZDtcbiAgICAgICAgKF9pZCA9IChfcHJvcHMgPSBwcm9wcykuaWQpICE9PSBudWxsICYmIF9pZCAhPT0gdm9pZCAwID8gX2lkIDogX3Byb3BzLmlkID0gZ2VuZXJhdGVkQ29udHJvbElkO1xuICAgIH1cbiAgICAvLyBTZXQgYXJpYS1sYWJlbGxlZGJ5IGlmIHRoZSBjb250cm9sIGRvZXNuJ3Qgc3VwcG9ydCBsYWJlbC5odG1sRm9yLCBvciBpZiB0aGUgbGFiZWwncyBodG1sRm9yIGRvZXNuJ3QgcmVmZXJcbiAgICAvLyB0byB0aGlzIGNvbnRyb2wgKGkuZS4gdGhlIHVzZXIgc2V0IHRoaXMgY29udHJvbCdzIGlkIHByb3Agd2l0aG91dCBhbHNvIHNldHRpbmcgdGhlIEZpZWxkJ3MgbGFiZWwuaHRtbEZvcikuXG4gICAgaWYgKGxhYmVsSWQgJiYgKCEob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnN1cHBvcnRzTGFiZWxGb3IpIHx8IGxhYmVsRm9yICE9PSBwcm9wcy5pZCkpIHtcbiAgICAgICAgdmFyIF9wcm9wczEsIF9hcmlhbGFiZWxsZWRieTtcbiAgICAgICAgdmFyIF87XG4gICAgICAgIChfID0gKF9wcm9wczEgPSBwcm9wcylbX2FyaWFsYWJlbGxlZGJ5ID0gJ2FyaWEtbGFiZWxsZWRieSddKSAhPT0gbnVsbCAmJiBfICE9PSB2b2lkIDAgPyBfIDogX3Byb3BzMVtfYXJpYWxhYmVsbGVkYnldID0gbGFiZWxJZDtcbiAgICB9XG4gICAgLy8gVGhlIGNvbnRyb2wgaXMgZGVzY3JpYmVkIGJ5IHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UsIG9yIGhpbnQsIG9yIGJvdGguXG4gICAgLy8gV2UgYWxzbyBwcmVzZXJ2ZSBhbmQgYXBwZW5kIGFueSBhcmlhLWRlc2NyaWJlZGJ5IGZyb20gcHJvcHMuXG4gICAgLy8gRm9yIHJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9wdWxsLzI1NTgwI2Rpc2N1c3Npb25fcjEwMTcyNTk5MzNcbiAgICBpZiAodmFsaWRhdGlvbk1lc3NhZ2VJZCB8fCBoaW50SWQpIHtcbiAgICAgICAgLy8gTk9URTogTm90IHVzaW5nID8/PSBzaW5jZSB3ZSdyZSBtZXJnaW5nIGFuZCBvdmVycmlkaW5nIHRoZSB1c2VyLXByb3ZpZGVkIHZhbHVlLlxuICAgICAgICBwcm9wc1snYXJpYS1kZXNjcmliZWRieSddID0gW1xuICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VJZCxcbiAgICAgICAgICAgIGhpbnRJZCxcbiAgICAgICAgICAgIHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wc1snYXJpYS1kZXNjcmliZWRieSddXG4gICAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgICB9XG4gICAgaWYgKHZhbGlkYXRpb25TdGF0ZSA9PT0gJ2Vycm9yJykge1xuICAgICAgICB2YXIgX3Byb3BzMiwgX2FyaWFpbnZhbGlkO1xuICAgICAgICB2YXIgXzE7XG4gICAgICAgIChfMSA9IChfcHJvcHMyID0gcHJvcHMpW19hcmlhaW52YWxpZCA9ICdhcmlhLWludmFsaWQnXSkgIT09IG51bGwgJiYgXzEgIT09IHZvaWQgMCA/IF8xIDogX3Byb3BzMltfYXJpYWludmFsaWRdID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc3VwcG9ydHNSZXF1aXJlZCkge1xuICAgICAgICAgICAgdmFyIF9wcm9wczM7XG4gICAgICAgICAgICB2YXIgX3JlcXVpcmVkO1xuICAgICAgICAgICAgKF9yZXF1aXJlZCA9IChfcHJvcHMzID0gcHJvcHMpLnJlcXVpcmVkKSAhPT0gbnVsbCAmJiBfcmVxdWlyZWQgIT09IHZvaWQgMCA/IF9yZXF1aXJlZCA6IF9wcm9wczMucmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIF9wcm9wczQsIF9hcmlhcmVxdWlyZWQ7XG4gICAgICAgICAgICB2YXIgXzI7XG4gICAgICAgICAgICAoXzIgPSAoX3Byb3BzNCA9IHByb3BzKVtfYXJpYXJlcXVpcmVkID0gJ2FyaWEtcmVxdWlyZWQnXSkgIT09IG51bGwgJiYgXzIgIT09IHZvaWQgMCA/IF8yIDogX3Byb3BzNFtfYXJpYXJlcXVpcmVkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSW5jbHVkZSB0aGUgc2l6ZSBwcm9wIGlmIHRoaXMgY29udHJvbCBzdXBwb3J0cyBpdFxuICAgIGlmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuc3VwcG9ydHNTaXplKSB7XG4gICAgICAgIHZhciBfcHJvcHM1O1xuICAgICAgICB2YXIgX3NpemU7XG4gICAgICAgIChfc2l6ZSA9IChfcHJvcHM1ID0gcHJvcHMpLnNpemUpICE9PSBudWxsICYmIF9zaXplICE9PSB2b2lkIDAgPyBfc2l6ZSA6IF9wcm9wczUuc2l6ZSA9IGNvbnRleHQuc2l6ZTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIExhYmVsLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZUxhYmVsU3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJMYWJlbF91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgTGFiZWxcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBMYWJlbFxuICovIGV4cG9ydCBjb25zdCB1c2VMYWJlbF91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSwgcmVxdWlyZWQgPSBmYWxzZSwgd2VpZ2h0ID0gJ3JlZ3VsYXInLCBzaXplID0gJ21lZGl1bScgfSA9IHByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZXF1aXJlZDogc2xvdC5vcHRpb25hbChyZXF1aXJlZCA9PT0gdHJ1ZSA/ICcqJyA6IHJlcXVpcmVkIHx8IHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KSxcbiAgICAgICAgd2VpZ2h0LFxuICAgICAgICBzaXplLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnbGFiZWwnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdzcGFuJ1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2xhYmVsJywge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTExhYmVsRWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2xhYmVsJ1xuICAgICAgICB9KVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIExhYmVsXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlckxhYmVsX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzdGF0ZS5yb290LmNoaWxkcmVuLFxuICAgICAgICAgICAgc3RhdGUucmVxdWlyZWQgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJlcXVpcmVkLCB7fSlcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IGxhYmVsQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1MYWJlbCcsXG4gIHJlcXVpcmVkOiAnZnVpLUxhYmVsX19yZXF1aXJlZCdcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIGxhYmVsXG4gKi9cbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBzajU1emQ6IFwiZjE5bjBlNVwiXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgc2o1NXpkOiBcImYxczJhcTdvXCIsXG4gICAgQmJ1c3V6cDogXCJmMWRjczh5elwiXG4gIH0sXG4gIHJlcXVpcmVkOiB7XG4gICAgc2o1NXpkOiBcImYxd2h5dXk2XCIsXG4gICAgdXdtcW0zOiBbXCJmcnVxMjkxXCIsIFwiZjd4NDFwbFwiXVxuICB9LFxuICBzbWFsbDoge1xuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiLFxuICAgIEJnOTZnd3A6IFwiZndyYzRwbVwiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIlxuICB9LFxuICBsYXJnZToge1xuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJnOTZnd3A6IFwiZmFhejU3a1wiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiXG4gIH0sXG4gIHNlbWlib2xkOiB7XG4gICAgQmhyZDd6cDogXCJmbDQzdWVmXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZms2Zm91Y3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5QmFzZSk7fVwiLCBcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmYxczJhcTdve2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmREaXNhYmxlZCk7fVwiLCBcIi5mMXdoeXV5Nntjb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVSZWRGb3JlZ3JvdW5kMyk7fVwiLCBcIi5mcnVxMjkxe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFwiLmY3eDQxcGx7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFwiLmZ5OXJrbmN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTIwMCk7fVwiLCBcIi5md3JjNHBte2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMjAwKTt9XCIsIFwiLmZraGo1MDh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7fVwiLCBcIi5mMWkzaXVtaXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7fVwiLCBcIi5mb2Q1aWtue2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2U0MDApO31cIiwgXCIuZmFhejU3a3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTQwMCk7fVwiLCBcIi5mbDQzdWVme2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFkY3M4eXp7Y29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBMYWJlbCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUxhYmVsU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhsYWJlbENsYXNzTmFtZXMucm9vdCwgc3R5bGVzLnJvb3QsIHN0YXRlLmRpc2FibGVkICYmIHN0eWxlcy5kaXNhYmxlZCwgc3R5bGVzW3N0YXRlLnNpemVdLCBzdGF0ZS53ZWlnaHQgPT09ICdzZW1pYm9sZCcgJiYgc3R5bGVzLnNlbWlib2xkLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIGlmIChzdGF0ZS5yZXF1aXJlZCkge1xuICAgIHN0YXRlLnJlcXVpcmVkLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhsYWJlbENsYXNzTmFtZXMucmVxdWlyZWQsIHN0eWxlcy5yZXF1aXJlZCwgc3RhdGUuZGlzYWJsZWQgJiYgc3R5bGVzLmRpc2FibGVkLCBzdGF0ZS5yZXF1aXJlZC5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VMYWJlbFN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTGFiZWxfdW5zdGFibGUgfSBmcm9tICcuL3VzZUxhYmVsJztcbmltcG9ydCB7IHJlbmRlckxhYmVsX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJMYWJlbCc7XG5pbXBvcnQgeyB1c2VMYWJlbFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlTGFiZWxTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBBIGxhYmVsIGNvbXBvbmVudCBwcm92aWRlcyBhIHRpdGxlIG9yIG5hbWUgdG8gYSBjb21wb25lbnQuXG4gKi8gZXhwb3J0IGNvbnN0IExhYmVsID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlTGFiZWxfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlTGFiZWxTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlTGFiZWxTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlckxhYmVsX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuTGFiZWwuZGlzcGxheU5hbWUgPSAnTGFiZWwnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRmllbGRDb250cm9sUHJvcHNfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtZmllbGQnO1xuaW1wb3J0IHsgZ2V0UGFydGl0aW9uZWROYXRpdmVQcm9wcywgdXNlQ29udHJvbGxhYmxlU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUlkLCB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LCB1c2VNZXJnZWRSZWZzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBDaGVja21hcmsxMkZpbGxlZCwgQ2hlY2ttYXJrMTZGaWxsZWQsIFNxdWFyZTEyRmlsbGVkLCBTcXVhcmUxNkZpbGxlZCwgQ2lyY2xlRmlsbGVkIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWljb25zJztcbmltcG9ydCB7IExhYmVsIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWxhYmVsJztcbmltcG9ydCB7IHVzZUZvY3VzV2l0aGluIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBDaGVja2JveC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VDaGVja2JveFN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyQ2hlY2tib3hfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIENoZWNrYm94XG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIGA8aW5wdXQ+YCBlbGVtZW50IG9mIENoZWNrYm94XG4gKi8gZXhwb3J0IGNvbnN0IHVzZUNoZWNrYm94X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICAvLyBNZXJnZSBwcm9wcyBmcm9tIHN1cnJvdW5kaW5nIDxGaWVsZD4sIGlmIGFueVxuICAgIHByb3BzID0gdXNlRmllbGRDb250cm9sUHJvcHNfdW5zdGFibGUocHJvcHMsIHtcbiAgICAgICAgc3VwcG9ydHNMYWJlbEZvcjogdHJ1ZSxcbiAgICAgICAgc3VwcG9ydHNSZXF1aXJlZDogdHJ1ZVxuICAgIH0pO1xuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSwgcmVxdWlyZWQsIHNoYXBlID0gJ3NxdWFyZScsIHNpemUgPSAnbWVkaXVtJywgbGFiZWxQb3NpdGlvbiA9ICdhZnRlcicsIG9uQ2hhbmdlIH0gPSBwcm9wcztcbiAgICBjb25zdCBbY2hlY2tlZCwgc2V0Q2hlY2tlZF0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIGRlZmF1bHRTdGF0ZTogcHJvcHMuZGVmYXVsdENoZWNrZWQsXG4gICAgICAgIHN0YXRlOiBwcm9wcy5jaGVja2VkLFxuICAgICAgICBpbml0aWFsU3RhdGU6IGZhbHNlXG4gICAgfSk7XG4gICAgY29uc3QgbmF0aXZlUHJvcHMgPSBnZXRQYXJ0aXRpb25lZE5hdGl2ZVByb3BzKHtcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIHByaW1hcnlTbG90VGFnTmFtZTogJ2lucHV0JyxcbiAgICAgICAgZXhjbHVkZWRQcm9wTmFtZXM6IFtcbiAgICAgICAgICAgICdjaGVja2VkJyxcbiAgICAgICAgICAgICdkZWZhdWx0Q2hlY2tlZCcsXG4gICAgICAgICAgICAnc2l6ZScsXG4gICAgICAgICAgICAnb25DaGFuZ2UnXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBtaXhlZCA9IGNoZWNrZWQgPT09ICdtaXhlZCc7XG4gICAgY29uc3QgaWQgPSB1c2VJZCgnY2hlY2tib3gtJywgbmF0aXZlUHJvcHMucHJpbWFyeS5pZCk7XG4gICAgbGV0IGNoZWNrbWFya0ljb247XG4gICAgaWYgKG1peGVkKSB7XG4gICAgICAgIGlmIChzaGFwZSA9PT0gJ2NpcmN1bGFyJykge1xuICAgICAgICAgICAgY2hlY2ttYXJrSWNvbiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDaXJjbGVGaWxsZWQsIG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2hlY2ttYXJrSWNvbiA9IHNpemUgPT09ICdsYXJnZScgPyAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3F1YXJlMTZGaWxsZWQsIG51bGwpIDogLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNxdWFyZTEyRmlsbGVkLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2hlY2tlZCkge1xuICAgICAgICBjaGVja21hcmtJY29uID0gc2l6ZSA9PT0gJ2xhcmdlJyA/IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja21hcmsxNkZpbGxlZCwgbnVsbCkgOiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hlY2ttYXJrMTJGaWxsZWQsIG51bGwpO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgc2hhcGUsXG4gICAgICAgIGNoZWNrZWQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbFBvc2l0aW9uLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnc3BhbicsXG4gICAgICAgICAgICBpbnB1dDogJ2lucHV0JyxcbiAgICAgICAgICAgIGluZGljYXRvcjogJ2RpdicsXG4gICAgICAgICAgICBsYWJlbDogTGFiZWxcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMocHJvcHMucm9vdCwge1xuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgcmVmOiB1c2VGb2N1c1dpdGhpbigpLFxuICAgICAgICAgICAgICAgIC4uLm5hdGl2ZVByb3BzLnJvb3RcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgICAgIH0pLFxuICAgICAgICBpbnB1dDogc2xvdC5hbHdheXMocHJvcHMuaW5wdXQsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGNoZWNrZWQgPT09IHRydWUsXG4gICAgICAgICAgICAgICAgLi4ubmF0aXZlUHJvcHMucHJpbWFyeVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnaW5wdXQnXG4gICAgICAgIH0pLFxuICAgICAgICBsYWJlbDogc2xvdC5vcHRpb25hbChwcm9wcy5sYWJlbCwge1xuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgaHRtbEZvcjogaWQsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogTGFiZWxcbiAgICAgICAgfSksXG4gICAgICAgIGluZGljYXRvcjogc2xvdC5vcHRpb25hbChwcm9wcy5pbmRpY2F0b3IsIHtcbiAgICAgICAgICAgIHJlbmRlckJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6IHRydWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNoZWNrbWFya0ljb25cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSlcbiAgICB9O1xuICAgIHN0YXRlLmlucHV0Lm9uQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXYpPT57XG4gICAgICAgIGNvbnN0IHZhbCA9IGV2LmN1cnJlbnRUYXJnZXQuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiBldi5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShldiwge1xuICAgICAgICAgICAgY2hlY2tlZDogdmFsXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRDaGVja2VkKHZhbCk7XG4gICAgfSk7XG4gICAgLy8gQ3JlYXRlIGEgcmVmIG9iamVjdCBmb3IgdGhlIGlucHV0IGVsZW1lbnQgc28gd2UgY2FuIHVzZSBpdCB0byBzZXQgdGhlIGluZGV0ZXJtaW5hdGUgcHJvcC5cbiAgICAvLyBVc2UgdXNlTWVyZ2VkUmVmcywgc2luY2UgdGhlIHJlZiBtaWdodCBiZSB1bmRlZmluZWQgb3IgYSBmdW5jdGlvbi1yZWYgKG5vIC5jdXJyZW50KVxuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlTWVyZ2VkUmVmcyhzdGF0ZS5pbnB1dC5yZWYpO1xuICAgIHN0YXRlLmlucHV0LnJlZiA9IGlucHV0UmVmO1xuICAgIC8vIFNldCB0aGUgPGlucHV0PiBlbGVtZW50J3MgY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZSBwcm9wZXJ0aWVzIGJhc2VkIG9uIG91ciB0cmktc3RhdGUgcHJvcGVydHkuXG4gICAgLy8gU2luY2UgaW5kZXRlcm1pbmF0ZSBjYW4gb25seSBiZSBzZXQgdmlhIGphdmFzY3JpcHQsIGl0IGhhcyB0byBiZSBkb25lIGluIGEgbGF5b3V0IGVmZmVjdC5cbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmluZGV0ZXJtaW5hdGUgPSBtaXhlZDtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaW5wdXRSZWYsXG4gICAgICAgIG1peGVkXG4gICAgXSk7XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuZXhwb3J0IGNvbnN0IHJlbmRlckNoZWNrYm94X3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuaW5wdXQsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLmxhYmVsUG9zaXRpb24gPT09ICdiZWZvcmUnICYmIHN0YXRlLmxhYmVsICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5sYWJlbCwge30pLFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmluZGljYXRvciwge30pLFxuICAgICAgICAgICAgc3RhdGUubGFiZWxQb3NpdGlvbiA9PT0gJ2FmdGVyJyAmJiBzdGF0ZS5sYWJlbCAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubGFiZWwsIHt9KVxuICAgICAgICBdXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0IHsgX19yZXNldFN0eWxlcywgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUZvY3VzT3V0bGluZVN0eWxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCBjaGVja2JveENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktQ2hlY2tib3gnLFxuICBsYWJlbDogJ2Z1aS1DaGVja2JveF9fbGFiZWwnLFxuICBpbnB1dDogJ2Z1aS1DaGVja2JveF9faW5wdXQnLFxuICBpbmRpY2F0b3I6ICdmdWktQ2hlY2tib3hfX2luZGljYXRvcidcbn07XG4vLyBDU1MgdmFyaWFibGVzIHVzZWQgaW50ZXJuYWxseSBpbiBDaGVja2JveCdzIHN0eWxlc1xuY29uc3QgdmFycyA9IHtcbiAgaW5kaWNhdG9yQ29sb3I6ICctLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1jb2xvcicsXG4gIGluZGljYXRvckJvcmRlckNvbG9yOiAnLS1mdWktQ2hlY2tib3hfX2luZGljYXRvci0tYm9yZGVyQ29sb3InLFxuICBpbmRpY2F0b3JCYWNrZ3JvdW5kQ29sb3I6ICctLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1iYWNrZ3JvdW5kQ29sb3InXG59O1xuLy8gVGhlIGluZGljYXRvciBzaXplIGlzIHVzZWQgYnkgdGhlIGluZGljYXRvciBhbmQgbGFiZWwgc3R5bGVzXG5jb25zdCBpbmRpY2F0b3JTaXplTWVkaXVtID0gJzE2cHgnO1xuY29uc3QgaW5kaWNhdG9yU2l6ZUxhcmdlID0gJzIwcHgnO1xuY29uc3QgdXNlUm9vdEJhc2VDbGFzc05hbWUgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxcTIyazFqXCIsIFwicjE4emU0azJcIiwge1xuICByOiBbXCIucjFxMjJrMWp7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDtjdXJzb3I6cG9pbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDMpO31cIiwgXCIucjFxMjJrMWo6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIucjFxMjJrMWo6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMXEyMmsxaltkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbntib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIucjFxMjJrMWpbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjE7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3RvcDpjYWxjKDJweCAqIC0xKTtyaWdodDpjYWxjKDJweCAqIC0xKTtib3R0b206Y2FsYygycHggKiAtMSk7bGVmdDpjYWxjKDJweCAqIC0xKTt9XCIsIFwiLnIxOHplNGsye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7Y3Vyc29yOnBvaW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzKTt9XCIsIFwiLnIxOHplNGsyOmZvY3Vze291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnIxOHplNGsyOmZvY3VzLXZpc2libGV7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIucjE4emU0azJbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW57Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLnIxOHplNGsyW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntjb250ZW50OlxcXCJcXFwiO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxO2JvcmRlcjoycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt0b3A6Y2FsYygycHggKiAtMSk7bGVmdDpjYWxjKDJweCAqIC0xKTtib3R0b206Y2FsYygycHggKiAtMSk7cmlnaHQ6Y2FsYygycHggKiAtMSk7fVwiXSxcbiAgczogW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5yMXEyMmsxaltkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDtib3JkZXItYm90dG9tLWNvbG9yOkhpZ2hsaWdodDtib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwgXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnIxOHplNGsyW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDtib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDt9fVwiXVxufSk7XG5jb25zdCB1c2VSb290U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgdW5jaGVja2VkOiB7XG4gICAgQmk5MWs5YzogXCJmM3A4YnFhXCIsXG4gICAgcHY1aDFpOiBcImZpdW0xM2ZcIixcbiAgICBsajcyM2g6IFwiZjFyMmRvc3JcIixcbiAgICBIbnRodm86IFwiZjE3MjllczZcIlxuICB9LFxuICBjaGVja2VkOiB7XG4gICAgc2o1NXpkOiBcImYxOW4wZTVcIixcbiAgICB3a25jcnQ6IFwiZjM1ZHM5OFwiLFxuICAgIHp4azd6NzogXCJmMTJtbmtuZVwiLFxuICAgIEhtc25meTogXCJmZWk5YThoXCIsXG4gICAgZTZjemFuOiBcImZpeDU2eTNcIixcbiAgICBwdjVoMWk6IFwiZjFiY3YyanNcIixcbiAgICBxYnlkdHo6IFwiZjdkcjRnb1wiLFxuICAgIEhudGh2bzogXCJmMXI1Y3B1YVwiXG4gIH0sXG4gIG1peGVkOiB7XG4gICAgc2o1NXpkOiBcImYxOW4wZTVcIixcbiAgICBIbXNuZnk6IFwiZjFsMjd0ZjBcIixcbiAgICB6eGs3ejc6IFwiZmNpbGt0alwiLFxuICAgIHB2NWgxaTogXCJmMWxwaGQ1NFwiLFxuICAgIEJ1bmZhNmg6IFwiZjFvYmt2cTdcIixcbiAgICBIbnRodm86IFwiZjJnbWJ1aFwiLFxuICAgIEIxNXlrbXY6IFwiZjFveTRmYTFcIlxuICB9LFxuICBkaXNhYmxlZDoge1xuICAgIEJjZWVpOWM6IFwiZjE1OGt3enBcIixcbiAgICBzajU1emQ6IFwiZjFzMmFxN29cIixcbiAgICBIbXNuZnk6IFwiZjF3N21mbDVcIixcbiAgICB6eGs3ejc6IFwiZmNvYWZxNlwiLFxuICAgIEJidXN1enA6IFwiZjFkY3M4eXpcIixcbiAgICBtcnFmcDk6IFwiZnhiM2VoM1wiXG4gIH1cbn0sIHtcbiAgaDogW1wiLmYzcDhicWE6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDIpO31cIiwgXCIuZml1bTEzZjpob3ZlcnstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlSG92ZXIpO31cIiwgXCIuZml4NTZ5Mzpob3ZlcnstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1iYWNrZ3JvdW5kQ29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmYxYmN2MmpzOmhvdmVyey0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmRIb3Zlcik7fVwiLCBcIi5mMWxwaGQ1NDpob3ZlcnstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2VIb3Zlcik7fVwiLCBcIi5mMW9ia3ZxNzpob3ZlcnstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRGb3JlZ3JvdW5kMUhvdmVyKTt9XCJdLFxuICBhOiBbXCIuZjFyMmRvc3I6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmYxNzI5ZXM2OmFjdGl2ZXstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlUHJlc3NlZCk7fVwiLCBcIi5mN2RyNGdvOmFjdGl2ZXstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1iYWNrZ3JvdW5kQ29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZFByZXNzZWQpO31cIiwgXCIuZjFyNWNwdWE6YWN0aXZley0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmRQcmVzc2VkKTt9XCIsIFwiLmYyZ21idWg6YWN0aXZley0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZVByZXNzZWQpO31cIiwgXCIuZjFveTRmYTE6YWN0aXZley0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxUHJlc3NlZCk7fVwiXSxcbiAgZDogW1wiLmYxOW4wZTV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIuZjM1ZHM5OHstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1iYWNrZ3JvdW5kQ29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZCk7fVwiLCBcIi5mMTJtbmtuZXstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kSW52ZXJ0ZWQpO31cIiwgXCIuZmVpOWE4aHstLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxbDI3dGYwey0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZSk7fVwiLCBcIi5mY2lsa3Rqey0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxKTt9XCIsIFwiLmYxNThrd3pwe2N1cnNvcjpkZWZhdWx0O31cIiwgXCIuZjFzMmFxN297Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxdzdtZmw1ey0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmZjb2FmcTZ7LS1mdWktQ2hlY2tib3hfX2luZGljYXRvci0tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWRjczh5entjb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ4YjNlaDN7LS1mdWktQ2hlY2tib3hfX2luZGljYXRvci0tY29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuY29uc3QgdXNlSW5wdXRCYXNlQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJydW85c3Z1XCIsIG51bGwsIFtcIi5ydW85c3Z1e2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6aW5oZXJpdDtoZWlnaHQ6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6Y2FsYygxNnB4ICsgMiAqIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsUykpO31cIl0pO1xuY29uc3QgdXNlSW5wdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiZWZvcmU6IHtcbiAgICBqMzVqYnE6IFtcImYxZTMxYjRkXCIsIFwiZjF2Z2MyczNcIl1cbiAgfSxcbiAgYWZ0ZXI6IHtcbiAgICBveWg3bXo6IFtcImYxdmdjMnMzXCIsIFwiZjFlMzFiNGRcIl1cbiAgfSxcbiAgbGFyZ2U6IHtcbiAgICBhOWI2Nzc6IFwiZjFtcTVqdDZcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMWUzMWI0ZHtyaWdodDowO31cIiwgXCIuZjF2Z2MyczN7bGVmdDowO31cIiwgXCIuZjFtcTVqdDZ7d2lkdGg6Y2FsYygyMHB4ICsgMiAqIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsUykpO31cIl1cbn0pO1xuY29uc3QgdXNlSW5kaWNhdG9yQmFzZUNsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicmw3Y2k2ZFwiLCBudWxsLCBbXCIucmw3Y2k2ZHthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbjtjb2xvcjp2YXIoLS1mdWktQ2hlY2tib3hfX2luZGljYXRvci0tY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tZnVpLUNoZWNrYm94X19pbmRpY2F0b3ItLWJhY2tncm91bmRDb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWZ1aS1DaGVja2JveF9faW5kaWNhdG9yLS1ib3JkZXJDb2xvciwgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZSkpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c1NtYWxsKTttYXJnaW46dmFyKC0tc3BhY2luZ1ZlcnRpY2FsUykgdmFyKC0tc3BhY2luZ0hvcml6b250YWxTKTtmaWxsOmN1cnJlbnRDb2xvcjtwb2ludGVyLWV2ZW50czpub25lO2ZvbnQtc2l6ZToxMnB4O2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7fVwiXSk7XG5jb25zdCB1c2VJbmRpY2F0b3JTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBsYXJnZToge1xuICAgIEJlMnR3ZDc6IFwiZjR5YnNyeFwiLFxuICAgIEJxZW52aWo6IFwiZmphbXE2YlwiLFxuICAgIGE5YjY3NzogXCJmNjRmdXEzXCJcbiAgfSxcbiAgY2lyY3VsYXI6IHtcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmNDRsa3c5XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjR5YnNyeHtmb250LXNpemU6MTZweDt9XCIsIFwiLmZqYW1xNmJ7aGVpZ2h0OjIwcHg7fVwiLCBcIi5mNjRmdXEze3dpZHRoOjIwcHg7fVwiLCBbXCIuZjQ0bGt3OXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c0NpcmN1bGFyKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XV1cbn0pO1xuLy8gQ2FuJ3QgdXNlIG1ha2VSZXNldFN0eWxlcyBoZXJlIGJlY2F1c2UgTGFiZWwgaXMgYSBjb21wb25lbnQgdGhhdCBtYXkgaXRzZWxmIHVzZSBtYWtlUmVzZXRTdHlsZXMuXG5jb25zdCB1c2VMYWJlbFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBxYjJkbWE6IFwiZjdubGJwNFwiLFxuICAgIHNqNTV6ZDogXCJmMXltM2J4NFwiLFxuICAgIEJjZWVpOWM6IFwiZnBvMXNjcVwiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmMWY1cTBuOFwiXG4gIH0sXG4gIGJlZm9yZToge1xuICAgIHoxODlzajogW1wiZjd4NDFwbFwiLCBcImZydXEyOTFcIl1cbiAgfSxcbiAgYWZ0ZXI6IHtcbiAgICB1d21xbTM6IFtcImZydXEyOTFcIiwgXCJmN3g0MXBsXCJdXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEI2b2YzamE6IFwiZmp6d3B0NlwiLFxuICAgIGpyYXBreTogXCJmaDZqMmZvXCJcbiAgfSxcbiAgbGFyZ2U6IHtcbiAgICBCNm9mM2phOiBcImYxeGx2c3RyXCIsXG4gICAganJhcGt5OiBcImY0OWFkNWdcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mN25sYnA0e2FsaWduLXNlbGY6Y2VudGVyO31cIiwgXCIuZjF5bTNieDR7Y29sb3I6aW5oZXJpdDt9XCIsIFwiLmZwbzFzY3F7Y3Vyc29yOmluaGVyaXQ7fVwiLCBbXCIuZjFmNXEwbjh7cGFkZGluZzp2YXIoLS1zcGFjaW5nVmVydGljYWxTKSB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mN3g0MXBse3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiLCBcIi5mcnVxMjkxe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFwiLmZqendwdDZ7bWFyZ2luLXRvcDpjYWxjKCgxNnB4IC0gdmFyKC0tbGluZUhlaWdodEJhc2UzMDApKSAvIDIpO31cIiwgXCIuZmg2ajJmb3ttYXJnaW4tYm90dG9tOmNhbGMoKDE2cHggLSB2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCkpIC8gMik7fVwiLCBcIi5mMXhsdnN0cnttYXJnaW4tdG9wOmNhbGMoKDIwcHggLSB2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCkpIC8gMik7fVwiLCBcIi5mNDlhZDVne21hcmdpbi1ib3R0b206Y2FsYygoMjBweCAtIHZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKSkgLyAyKTt9XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgQ2hlY2tib3ggc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VDaGVja2JveFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCB7XG4gICAgY2hlY2tlZCxcbiAgICBkaXNhYmxlZCxcbiAgICBsYWJlbFBvc2l0aW9uLFxuICAgIHNoYXBlLFxuICAgIHNpemVcbiAgfSA9IHN0YXRlO1xuICBjb25zdCByb290QmFzZUNsYXNzTmFtZSA9IHVzZVJvb3RCYXNlQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IHJvb3RTdHlsZXMgPSB1c2VSb290U3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGNoZWNrYm94Q2xhc3NOYW1lcy5yb290LCByb290QmFzZUNsYXNzTmFtZSwgZGlzYWJsZWQgPyByb290U3R5bGVzLmRpc2FibGVkIDogY2hlY2tlZCA9PT0gJ21peGVkJyA/IHJvb3RTdHlsZXMubWl4ZWQgOiBjaGVja2VkID8gcm9vdFN0eWxlcy5jaGVja2VkIDogcm9vdFN0eWxlcy51bmNoZWNrZWQsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgY29uc3QgaW5wdXRCYXNlQ2xhc3NOYW1lID0gdXNlSW5wdXRCYXNlQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IGlucHV0U3R5bGVzID0gdXNlSW5wdXRTdHlsZXMoKTtcbiAgc3RhdGUuaW5wdXQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGNoZWNrYm94Q2xhc3NOYW1lcy5pbnB1dCwgaW5wdXRCYXNlQ2xhc3NOYW1lLCBzaXplID09PSAnbGFyZ2UnICYmIGlucHV0U3R5bGVzLmxhcmdlLCBpbnB1dFN0eWxlc1tsYWJlbFBvc2l0aW9uXSwgc3RhdGUuaW5wdXQuY2xhc3NOYW1lKTtcbiAgY29uc3QgaW5kaWNhdG9yQmFzZUNsYXNzTmFtZSA9IHVzZUluZGljYXRvckJhc2VDbGFzc05hbWUoKTtcbiAgY29uc3QgaW5kaWNhdG9yU3R5bGVzID0gdXNlSW5kaWNhdG9yU3R5bGVzKCk7XG4gIGlmIChzdGF0ZS5pbmRpY2F0b3IpIHtcbiAgICBzdGF0ZS5pbmRpY2F0b3IuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGNoZWNrYm94Q2xhc3NOYW1lcy5pbmRpY2F0b3IsIGluZGljYXRvckJhc2VDbGFzc05hbWUsIHNpemUgPT09ICdsYXJnZScgJiYgaW5kaWNhdG9yU3R5bGVzLmxhcmdlLCBzaGFwZSA9PT0gJ2NpcmN1bGFyJyAmJiBpbmRpY2F0b3JTdHlsZXMuY2lyY3VsYXIsIHN0YXRlLmluZGljYXRvci5jbGFzc05hbWUpO1xuICB9XG4gIGNvbnN0IGxhYmVsU3R5bGVzID0gdXNlTGFiZWxTdHlsZXMoKTtcbiAgaWYgKHN0YXRlLmxhYmVsKSB7XG4gICAgc3RhdGUubGFiZWwuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGNoZWNrYm94Q2xhc3NOYW1lcy5sYWJlbCwgbGFiZWxTdHlsZXMuYmFzZSwgbGFiZWxTdHlsZXNbc2l6ZV0sIGxhYmVsU3R5bGVzW2xhYmVsUG9zaXRpb25dLCBzdGF0ZS5sYWJlbC5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDaGVja2JveFN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2hlY2tib3hfdW5zdGFibGUgfSBmcm9tICcuL3VzZUNoZWNrYm94JztcbmltcG9ydCB7IHJlbmRlckNoZWNrYm94X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJDaGVja2JveCc7XG5pbXBvcnQgeyB1c2VDaGVja2JveFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlQ2hlY2tib3hTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBDaGVja2JveGVzIGdpdmUgcGVvcGxlIGEgd2F5IHRvIHNlbGVjdCBvbmUgb3IgbW9yZSBpdGVtcyBmcm9tIGEgZ3JvdXAsXG4gKiBvciBzd2l0Y2ggYmV0d2VlbiB0d28gbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnMgKGNoZWNrZWQgb3IgdW5jaGVja2VkKS5cbiAqLyBleHBvcnQgY29uc3QgQ2hlY2tib3ggPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VDaGVja2JveF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VDaGVja2JveFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VDaGVja2JveFN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyQ2hlY2tib3hfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5DaGVja2JveC5kaXNwbGF5TmFtZSA9ICdDaGVja2JveCc7XG4iLCJpbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCAtIHVzZSBMaXN0Ym94Q29udGV4dCBpbnN0ZWFkXG4gKiBAc2VlIExpc3Rib3hDb250ZXh0XG4gKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBmbHVlbnR1aS9uby1jb250ZXh0LWRlZmF1bHQtdmFsdWVcbmV4cG9ydCBjb25zdCBDb21ib2JveENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBhY3RpdmVPcHRpb246IHVuZGVmaW5lZCxcbiAgICBhcHBlYXJhbmNlOiAnb3V0bGluZScsXG4gICAgZm9jdXNWaXNpYmxlOiBmYWxzZSxcbiAgICBvcGVuOiBmYWxzZSxcbiAgICByZWdpc3Rlck9wdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoKT0+dW5kZWZpbmVkO1xuICAgIH0sXG4gICAgc2VsZWN0ZWRPcHRpb25zOiBbXSxcbiAgICBzZWxlY3RPcHRpb24gKCkge1xuICAgIC8vIG5vb3BcbiAgICB9LFxuICAgIHNldEFjdGl2ZU9wdGlvbiAoKSB7XG4gICAgLy8gbm9vcFxuICAgIH0sXG4gICAgc2V0T3BlbiAoKSB7XG4gICAgLy8gbm9vcFxuICAgIH0sXG4gICAgc2l6ZTogJ21lZGl1bSdcbn0pO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCAtIHJlbmRlciBMaXN0Ym94UHJvdmlkZXIgaW5zdGVhZFxuICogQHNlZSBMaXN0Ym94UHJvdmlkZXJcbiAqIEBzZWUgdXNlTGlzdGJveENvbnRleHRfdW5zdGFibGVcbiAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbmV4cG9ydCBjb25zdCBDb21ib2JveFByb3ZpZGVyID0gQ29tYm9ib3hDb250ZXh0LlByb3ZpZGVyO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuY29uc3QgbGlzdGJveENvbnRleHREZWZhdWx0VmFsdWUgPSB7XG4gICAgYWN0aXZlT3B0aW9uOiB1bmRlZmluZWQsXG4gICAgZm9jdXNWaXNpYmxlOiBmYWxzZSxcbiAgICBtdWx0aXNlbGVjdDogZmFsc2UsXG4gICAgZ2V0T3B0aW9uQnlJZCAoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBnZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSAoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9LFxuICAgIHJlZ2lzdGVyT3B0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICgpPT51bmRlZmluZWQ7XG4gICAgfSxcbiAgICBzZWxlY3RlZE9wdGlvbnM6IFtdLFxuICAgIG9uT3B0aW9uQ2xpY2sgKCkge1xuICAgIC8vIG5vb3BcbiAgICB9LFxuICAgIG9uQWN0aXZlRGVzY2VuZGFudENoYW5nZSAoKSB7XG4gICAgLy8gbm9vcFxuICAgIH0sXG4gICAgc2VsZWN0T3B0aW9uICgpIHtcbiAgICAvLyBub29wXG4gICAgfSxcbiAgICBzZXRBY3RpdmVPcHRpb24gKCkge1xuICAgIC8vIG5vb3BcbiAgICB9XG59O1xuZXhwb3J0IGNvbnN0IExpc3Rib3hDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlID0gKHNlbGVjdG9yKT0+dXNlQ29udGV4dFNlbGVjdG9yKExpc3Rib3hDb250ZXh0LCAoY3R4ID0gbGlzdGJveENvbnRleHREZWZhdWx0VmFsdWUpPT5zZWxlY3RvcihjdHgpKTtcbmV4cG9ydCBjb25zdCBMaXN0Ym94UHJvdmlkZXIgPSBMaXN0Ym94Q29udGV4dC5Qcm92aWRlcjtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBmdW5jdGlvbiB1c2VDb21ib2JveENvbnRleHRWYWx1ZXMoc3RhdGUpIHtcbiAgICBjb25zdCB7IGFwcGVhcmFuY2UsIG9wZW4sIGdldE9wdGlvbkJ5SWQsIGdldE9wdGlvbnNNYXRjaGluZ1ZhbHVlLCByZWdpc3Rlck9wdGlvbiwgc2VsZWN0ZWRPcHRpb25zLCBzZWxlY3RPcHRpb24sIHNldE9wZW4sIHNpemUsIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLCBvbk9wdGlvbkNsaWNrLCBvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2UgfSA9IHN0YXRlO1xuICAgIGNvbnN0IGNvbWJvYm94ID0ge1xuICAgICAgICBhY3RpdmVPcHRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgZm9jdXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgb3BlbixcbiAgICAgICAgcmVnaXN0ZXJPcHRpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgc2VsZWN0T3B0aW9uLFxuICAgICAgICBzZXRBY3RpdmVPcHRpb246ICgpPT5udWxsLFxuICAgICAgICBzZXRPcGVuLFxuICAgICAgICBzaXplXG4gICAgfTtcbiAgICBjb25zdCBsaXN0Ym94ID0ge1xuICAgICAgICBhY3RpdmVPcHRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgZm9jdXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgZ2V0T3B0aW9uQnlJZCxcbiAgICAgICAgZ2V0T3B0aW9uc01hdGNoaW5nVmFsdWUsXG4gICAgICAgIHJlZ2lzdGVyT3B0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNlbGVjdE9wdGlvbixcbiAgICAgICAgc2V0QWN0aXZlT3B0aW9uOiAoKT0+bnVsbCxcbiAgICAgICAgb25PcHRpb25DbGljayxcbiAgICAgICAgb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlXG4gICAgfTtcbiAgICBjb25zdCBhY3RpdmVEZXNjZW5kYW50ID0gUmVhY3QudXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXI6IGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tYm9ib3gsXG4gICAgICAgIGFjdGl2ZURlc2NlbmRhbnQsXG4gICAgICAgIGxpc3Rib3hcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSGFzUGFyZW50Q29udGV4dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yJztcbmltcG9ydCB7IExpc3Rib3hDb250ZXh0LCB1c2VMaXN0Ym94Q29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4vTGlzdGJveENvbnRleHQnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUxpc3Rib3hDb250ZXh0VmFsdWVzKHN0YXRlKSB7XG4gICAgY29uc3QgaGFzTGlzdGJveENvbnRleHQgPSB1c2VIYXNQYXJlbnRDb250ZXh0KExpc3Rib3hDb250ZXh0KTtcbiAgICBjb25zdCB7IGdldE9wdGlvbkJ5SWQsIGdldE9wdGlvbnNNYXRjaGluZ1ZhbHVlLCBtdWx0aXNlbGVjdCwgcmVnaXN0ZXJPcHRpb24sIHNlbGVjdGVkT3B0aW9ucywgc2VsZWN0T3B0aW9uLCBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlciB9ID0gc3RhdGU7XG4gICAgLy8gZ2V0IHJlZ2lzdGVyL3VucmVnaXN0ZXIgZnVuY3Rpb25zIGZyb20gcGFyZW50IGNvbWJvYm94IGNvbnRleHRcbiAgICBjb25zdCBwYXJlbnRSZWdpc3Rlck9wdGlvbiA9IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgucmVnaXN0ZXJPcHRpb24pO1xuICAgIGNvbnN0IG9uT3B0aW9uQ2xpY2sgPSB1c2VMaXN0Ym94Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4Lm9uT3B0aW9uQ2xpY2spO1xuICAgIGNvbnN0IG9uQWN0aXZlRGVzY2VuZGFudENoYW5nZSA9IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgub25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlKTtcbiAgICBjb25zdCByZWdpc3Rlck9wdGlvblZhbHVlID0gaGFzTGlzdGJveENvbnRleHQgPyBwYXJlbnRSZWdpc3Rlck9wdGlvbiA6IHJlZ2lzdGVyT3B0aW9uO1xuICAgIGNvbnN0IGxpc3Rib3ggPSB7XG4gICAgICAgIGFjdGl2ZU9wdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICBmb2N1c1Zpc2libGU6IGZhbHNlLFxuICAgICAgICBnZXRPcHRpb25CeUlkLFxuICAgICAgICBnZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSxcbiAgICAgICAgbXVsdGlzZWxlY3QsXG4gICAgICAgIHJlZ2lzdGVyT3B0aW9uOiByZWdpc3Rlck9wdGlvblZhbHVlLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNlbGVjdE9wdGlvbixcbiAgICAgICAgc2V0QWN0aXZlT3B0aW9uOiAoKT0+dW5kZWZpbmVkLFxuICAgICAgICBvbk9wdGlvbkNsaWNrLFxuICAgICAgICBvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VcbiAgICB9O1xuICAgIGNvbnN0IGFjdGl2ZURlc2NlbmRhbnQgPSBSZWFjdC51c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgY29udHJvbGxlcjogYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXJcbiAgICAgICAgfSksIFtcbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXJcbiAgICBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBsaXN0Ym94LFxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50XG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIGtleXMgZnJvbSAnQGZsdWVudHVpL2tleWJvYXJkLWtleXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBDb252ZXJ0cyBhIGtleWJvYXJkIGludGVyYWN0aW9uIGludG8gYSBkZWZpbmVkIGFjdGlvblxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXREcm9wZG93bkFjdGlvbkZyb21LZXkoZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgeyBvcGVuID0gdHJ1ZSwgbXVsdGlzZWxlY3QgPSBmYWxzZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjb2RlID0gZS5rZXk7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIGtleSwgbWV0YUtleSB9ID0gZTtcbiAgICAvLyB0eXBpbmcgYWN0aW9uIG9jY3VycyB3aGV0aGVyIG9wZW4gb3IgY2xvc2VkXG4gICAgaWYgKGtleS5sZW5ndGggPT09IDEgJiYgY29kZSAhPT0ga2V5cy5TcGFjZSAmJiAhYWx0S2V5ICYmICFjdHJsS2V5ICYmICFtZXRhS2V5KSB7XG4gICAgICAgIHJldHVybiAnVHlwZSc7XG4gICAgfVxuICAgIC8vIGhhbmRsZSBvcGVuaW5nIHRoZSBkcm9wZG93biBpZiBjbG9zZWRcbiAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgaWYgKGNvZGUgPT09IGtleXMuQXJyb3dEb3duIHx8IGNvZGUgPT09IGtleXMuQXJyb3dVcCB8fCBjb2RlID09PSBrZXlzLkVudGVyIHx8IGNvZGUgPT09IGtleXMuU3BhY2UpIHtcbiAgICAgICAgICAgIHJldHVybiAnT3Blbic7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIGRyb3Bkb3duIGlzIGNsb3NlZCBhbmQgYW4gYWN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIGFib3ZlLCBkbyBub3RoaW5nXG4gICAgICAgIHJldHVybiAnTm9uZSc7XG4gICAgfVxuICAgIC8vIHNlbGVjdCBvciBjbG9zZSBhY3Rpb25zXG4gICAgaWYgKGNvZGUgPT09IGtleXMuQXJyb3dVcCAmJiBhbHRLZXkgfHwgY29kZSA9PT0ga2V5cy5FbnRlciB8fCAhbXVsdGlzZWxlY3QgJiYgY29kZSA9PT0ga2V5cy5TcGFjZSkge1xuICAgICAgICByZXR1cm4gJ0Nsb3NlU2VsZWN0JztcbiAgICB9XG4gICAgaWYgKG11bHRpc2VsZWN0ICYmIGNvZGUgPT09IGtleXMuU3BhY2UpIHtcbiAgICAgICAgcmV0dXJuICdTZWxlY3QnO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0ga2V5cy5Fc2NhcGUpIHtcbiAgICAgICAgcmV0dXJuICdDbG9zZSc7XG4gICAgfVxuICAgIC8vIG5hdmlnYXRpb24gaW50ZXJhY3Rpb25zXG4gICAgaWYgKGNvZGUgPT09IGtleXMuQXJyb3dEb3duKSB7XG4gICAgICAgIHJldHVybiAnTmV4dCc7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSBrZXlzLkFycm93VXApIHtcbiAgICAgICAgcmV0dXJuICdQcmV2aW91cyc7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSBrZXlzLkhvbWUpIHtcbiAgICAgICAgcmV0dXJuICdGaXJzdCc7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSBrZXlzLkVuZCkge1xuICAgICAgICByZXR1cm4gJ0xhc3QnO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0ga2V5cy5QYWdlVXApIHtcbiAgICAgICAgcmV0dXJuICdQYWdlVXAnO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0ga2V5cy5QYWdlRG93bikge1xuICAgICAgICByZXR1cm4gJ1BhZ2VEb3duJztcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IGtleXMuVGFiKSB7XG4gICAgICAgIHJldHVybiAnVGFiJztcbiAgICB9XG4gICAgLy8gaWYgbm90aGluZyBtYXRjaGVkLCByZXR1cm4gbm9uZVxuICAgIHJldHVybiAnTm9uZSc7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEEgaG9vayBmb3IgbWFuYWdpbmcgYSBjb2xsZWN0aW9uIG9mIGNoaWxkIE9wdGlvbnNcbiAqLyBleHBvcnQgY29uc3QgdXNlT3B0aW9uQ29sbGVjdGlvbiA9ICgpPT57XG4gICAgY29uc3Qgb3B0aW9uc0J5SWQgPSBSZWFjdC51c2VSZWYobmV3IE1hcCgpKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uQVBJID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBnZXRDb3VudCA9ICgpPT5vcHRpb25zQnlJZC5jdXJyZW50LnNpemU7XG4gICAgICAgIC8vIGluZGV4IHNlYXJjaGVzIGFyZSBubyBsb25nZXIgdXNlZFxuICAgICAgICBjb25zdCBnZXRPcHRpb25BdEluZGV4ID0gKCk9PnVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZ2V0SW5kZXhPZklkID0gKCk9Pi0xO1xuICAgICAgICBjb25zdCBnZXRPcHRpb25CeUlkID0gKGlkKT0+e1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnNCeUlkLmN1cnJlbnQuZ2V0KGlkKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZ2V0T3B0aW9uc01hdGNoaW5nVGV4dCA9IChtYXRjaGVyKT0+e1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20ob3B0aW9uc0J5SWQuY3VycmVudC52YWx1ZXMoKSkuZmlsdGVyKCh7IHRleHQgfSk9Pm1hdGNoZXIodGV4dCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBnZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSA9IChtYXRjaGVyKT0+e1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9uc0J5SWQuY3VycmVudC52YWx1ZXMoKSl7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZXIob3B0aW9uLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2gob3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlcztcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldENvdW50LFxuICAgICAgICAgICAgZ2V0T3B0aW9uQXRJbmRleCxcbiAgICAgICAgICAgIGdldEluZGV4T2ZJZCxcbiAgICAgICAgICAgIGdldE9wdGlvbkJ5SWQsXG4gICAgICAgICAgICBnZXRPcHRpb25zTWF0Y2hpbmdUZXh0LFxuICAgICAgICAgICAgZ2V0T3B0aW9uc01hdGNoaW5nVmFsdWVcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgcmVnaXN0ZXJPcHRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygob3B0aW9uKT0+e1xuICAgICAgICBvcHRpb25zQnlJZC5jdXJyZW50LnNldChvcHRpb24uaWQsIG9wdGlvbik7XG4gICAgICAgIHJldHVybiAoKT0+b3B0aW9uc0J5SWQuY3VycmVudC5kZWxldGUob3B0aW9uLmlkKTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY29sbGVjdGlvbkFQSSxcbiAgICAgICAgb3B0aW9uczogQXJyYXkuZnJvbShvcHRpb25zQnlJZC5jdXJyZW50LnZhbHVlcygpKSxcbiAgICAgICAgcmVnaXN0ZXJPcHRpb25cbiAgICB9O1xufTtcbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmV4cG9ydCBjb25zdCB1c2VTZWxlY3Rpb24gPSAocHJvcHMpPT57XG4gICAgY29uc3QgeyBkZWZhdWx0U2VsZWN0ZWRPcHRpb25zLCBtdWx0aXNlbGVjdCwgb25PcHRpb25TZWxlY3QgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtzZWxlY3RlZE9wdGlvbnMsIHNldFNlbGVjdGVkT3B0aW9uc10gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBwcm9wcy5zZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIGRlZmF1bHRTdGF0ZTogZGVmYXVsdFNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiBbXVxuICAgIH0pO1xuICAgIGNvbnN0IHNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKChldmVudCwgb3B0aW9uKT0+e1xuICAgICAgICAvLyBpZiB0aGUgb3B0aW9uIGlzIGRpc2FibGVkLCBkbyBub3RoaW5nXG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBmb3Igc2luZ2xlLXNlbGVjdCwgYWx3YXlzIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gICAgICAgIGxldCBuZXdTZWxlY3Rpb24gPSBbXG4gICAgICAgICAgICBvcHRpb24udmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgLy8gdG9nZ2xlIHNlbGVjdGVkIHN0YXRlIG9mIHRoZSBvcHRpb24gZm9yIG11bHRpc2VsZWN0XG4gICAgICAgIGlmIChtdWx0aXNlbGVjdCkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkT3B0aW9ucy5maW5kSW5kZXgoKG8pPT5vID09PSBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIC8vIGRlc2VsZWN0IG9wdGlvblxuICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFtcbiAgICAgICAgICAgICAgICAgICAgLi4uc2VsZWN0ZWRPcHRpb25zLnNsaWNlKDAsIHNlbGVjdGVkSW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAuLi5zZWxlY3RlZE9wdGlvbnMuc2xpY2Uoc2VsZWN0ZWRJbmRleCArIDEpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gc2VsZWN0IG9wdGlvblxuICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFtcbiAgICAgICAgICAgICAgICAgICAgLi4uc2VsZWN0ZWRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWVcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNldFNlbGVjdGVkT3B0aW9ucyhuZXdTZWxlY3Rpb24pO1xuICAgICAgICBvbk9wdGlvblNlbGVjdCA9PT0gbnVsbCB8fCBvbk9wdGlvblNlbGVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcHRpb25TZWxlY3QoZXZlbnQsIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICBvcHRpb25UZXh0OiBvcHRpb24udGV4dCxcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uczogbmV3U2VsZWN0aW9uXG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgb25PcHRpb25TZWxlY3QsXG4gICAgICAgIG11bHRpc2VsZWN0LFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNldFNlbGVjdGVkT3B0aW9uc1xuICAgIF0pO1xuICAgIGNvbnN0IGNsZWFyU2VsZWN0aW9uID0gKGV2ZW50KT0+e1xuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbnMoW10pO1xuICAgICAgICBvbk9wdGlvblNlbGVjdCA9PT0gbnVsbCB8fCBvbk9wdGlvblNlbGVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcHRpb25TZWxlY3QoZXZlbnQsIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBvcHRpb25UZXh0OiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnM6IFtdXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2xlYXJTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdE9wdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zXG4gICAgfTtcbn07XG4iLCJpbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgQUNUSVZFREVTQ0VOREFOVF9GT0NVU1ZJU0lCTEVfQVRUUklCVVRFIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmV4cG9ydCBjb25zdCBvcHRpb25DbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLU9wdGlvbicsXG4gIGNoZWNrSWNvbjogJ2Z1aS1PcHRpb25fX2NoZWNrSWNvbidcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZnQ4NW5wNVwiLFxuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgaThra3ZsOiBcImYxdWZub3BnXCIsXG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJma2hqNTA4XCIsXG4gICAgQmc5Nmd3cDogXCJmMWkzaXVtaVwiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmbTVlb21qXCIsXG4gICAgcWhmOHhxOiBcImYxMHBpMTNuXCIsXG4gICAgSndlZjh5OiBcImYxa25hczQ4XCIsXG4gICAgQmk5MWs5YzogXCJmZXUxZzN1XCIsXG4gICAgenFia3ZnOiBcImZvNzlyaTlcIixcbiAgICBoODJ4MDU6IFtcImYxb3NpYWJjXCIsIFwiZjFlOGxlMjVcIl0sXG4gICAgY3FqOTk4OiBcImYxeXVzanR5XCIsXG4gICAgajNobHNoOiBbXCJmMWU4bGUyNVwiLCBcImYxb3NpYWJjXCJdLFxuICAgIGVjcjJzMjogXCJmYjQwbjJkXCIsXG4gICAgbGo3MjNoOiBcImYxZzRoa2p2XCIsXG4gICAgQnR4eDJ2YjogXCJmMWxucjJ6cFwiLFxuICAgIHNsdGN3eTogW1wiZjFvZ2ZrOXpcIiwgXCJmMWc3ajhlY1wiXSxcbiAgICBkbnd2dm06IFwiZml1ZjQ2clwiLFxuICAgIEJseXZrdnM6IFtcImYxZzdqOGVjXCIsIFwiZjFvZ2ZrOXpcIl1cbiAgfSxcbiAgYWN0aXZlOiB7XG4gICAgQm93ejF6bDogXCJmMTF2cnZkd1wiLFxuICAgIG94b2diMTogXCJmMTdoeGpiN1wiLFxuICAgIEl4MnNuODogXCJmMWRoYTY5Y1wiLFxuICAgIHE3djMycDogXCJmMWxtNzUwMFwiLFxuICAgIEI3Y2JqMDQ6IDAsXG4gICAgQmV3dG9qbTogMCxcbiAgICBiNTBmc3o6IDAsXG4gICAgQjF3emIzdjogMCxcbiAgICBCcXdrNzBuOiAwLFxuICAgIEIzN3U4ejg6IDAsXG4gICAgYXZ0MGN4OiAwLFxuICAgIGYwc3JlZjogMCxcbiAgICBCOWZrem52OiAwLFxuICAgIEJlM28yN3Q6IDAsXG4gICAgQmVydGFwZzogMCxcbiAgICBCNTN4cHNmOiAwLFxuICAgIEJzdjcycmo6IDAsXG4gICAgQjM5ZHpkZDogMCxcbiAgICBCdHE5YmQzOiAwLFxuICAgIEJxZnhkMTQ6IDAsXG4gICAgYXR1cDBzOiBcImZvN3hxYlwiLFxuICAgIEZmZnV4dDogMCxcbiAgICBCdHRjZDEyOiAwLFxuICAgIEJlaXR6dWc6IDAsXG4gICAgQnFvdWdlZTogMCxcbiAgICBCODZpOHBpOiBcImYxa3VydGhlXCIsXG4gICAgQmhpanN4ZzogXCJmd3ExNWR5XCIsXG4gICAga2t0ZHM0OiBcImYxcGIzd3J5XCIsXG4gICAgQm1hdTNibzogW1wiZnRqdjJmNFwiLCBcImYxZmxoYjFmXCJdLFxuICAgIG5wZWt0djogW1wiZjFmbGhiMWZcIiwgXCJmdGp2MmY0XCJdXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgc2o1NXpkOiBcImYxczJhcTdvXCIsXG4gICAgSndlZjh5OiBcImY5cWw2cmZcIixcbiAgICBCaTkxazljOiBcImZ2Z3hrdHBcIixcbiAgICB6cWJrdmc6IFwiZjE4NWozcWpcIixcbiAgICBoODJ4MDU6IFtcImYxZGxpZ2kzXCIsIFwiZjF2eWR6aWVcIl0sXG4gICAgY3FqOTk4OiBcImZqdzFkaTNcIixcbiAgICBqM2hsc2g6IFtcImYxdnlkemllXCIsIFwiZjFkbGlnaTNcIl0sXG4gICAgZWNyMnMyOiBcImZnajl1bTNcIixcbiAgICBsajcyM2g6IFwiZjE5d2xkaGdcIixcbiAgICBCdHh4MnZiOiBcImYxc3Mwa3QyXCIsXG4gICAgc2x0Y3d5OiBbXCJmMXQ2b2xpM1wiLCBcImZqeTljaThcIl0sXG4gICAgZG53dnZtOiBcImZyZXNheGtcIixcbiAgICBCbHl2a3ZzOiBbXCJmank5Y2k4XCIsIFwiZjF0Nm9saTNcIl0sXG4gICAgQmJ1c3V6cDogXCJmMWRjczh5elwiXG4gIH0sXG4gIHNlbGVjdGVkOiB7fSxcbiAgY2hlY2tJY29uOiB7XG4gICAgQmUydHdkNzogXCJmb2Q1aWtuXCIsXG4gICAgRnJnNmYzOiBbXCJmMThiOWhkcVwiLCBcImZuNnFqOHRcIl0sXG4gICAgdDIxY3EwOiBbXCJmMXhrNTU3Y1wiLCBcImYxaDllbjV5XCJdLFxuICAgIEJjZHcxaTA6IFwiZmQ3ZnB5MFwiLFxuICAgIEJvNzBoN2Q6IFwiZnZjOXYzZ1wiXG4gIH0sXG4gIHNlbGVjdGVkQ2hlY2s6IHtcbiAgICBCY2R3MWkwOiBcImYxMDIybTY4XCJcbiAgfSxcbiAgbXVsdGlzZWxlY3RDaGVjazoge1xuICAgIEJnZmc1ZGE6IDAsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiAwLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZjFsM2NmN29cIixcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmcTl6cTkxXCIsXG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgQnJmMXA4MDogXCJmNGQ5ajIzXCIsXG4gICAgQmtmbW0zMTogXCJmMXc5aDYyelwiLFxuICAgIEJlMnR3ZDc6IFwiZjF1Z3p3d2dcIixcbiAgICBCcWVudmlqOiBcImZkNDYxeXRcIixcbiAgICBhOWI2Nzc6IFwiZmp3NWZ4N1wiLFxuICAgIEJjZHcxaTA6IFwiZjEwMjJtNjhcIlxuICB9LFxuICBzZWxlY3RlZE11bHRpc2VsZWN0Q2hlY2s6IHtcbiAgICBEZTNwenE6IFwiZnR5d3NnelwiLFxuICAgIHNqNTV6ZDogXCJmcXBidnZ0XCIsXG4gICAgZzJ1M3dlOiBcImYzeGk3bWhcIixcbiAgICBoM2M1cm06IFtcImZ0b3ZoZTRcIiwgXCJmMXdjenZpblwiXSxcbiAgICBCOXhhdjBnOiBcImY2OHZicjZcIixcbiAgICB6aGp3eTM6IFtcImYxd2N6dmluXCIsIFwiZnRvdmhlNFwiXVxuICB9LFxuICBjaGVja0Rpc2FibGVkOiB7XG4gICAgc2o1NXpkOiBcImYxczJhcTdvXCIsXG4gICAgQmJ1c3V6cDogXCJmMWRjczh5elwiXG4gIH0sXG4gIG11bHRpc2VsZWN0Q2hlY2tEaXNhYmxlZDoge1xuICAgIGcydTN3ZTogXCJmMXIxdDR5MVwiLFxuICAgIGgzYzVybTogW1wiZm1qOGlqd1wiLCBcImZpZ3g1NG1cIl0sXG4gICAgQjl4YXYwZzogXCJmMzYwc3M4XCIsXG4gICAgemhqd3kzOiBbXCJmaWd4NTRtXCIsIFwiZm1qOGlqd1wiXVxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTIybjU5e2FsaWduLWl0ZW1zOmNlbnRlcjt9XCIsIFtcIi5mdDg1bnA1e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjE5bjBlNXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiLCBcIi5mMXVmbm9wZ3tjb2x1bW4tZ2FwOnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFMpO31cIiwgXCIuZjFrNmZkdWh7Y3Vyc29yOnBvaW50ZXI7fVwiLCBcIi5mMjJpYWd3e2Rpc3BsYXk6ZmxleDt9XCIsIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZmtoajUwOHtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTt9XCIsIFwiLmYxaTNpdW1pe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTt9XCIsIFtcIi5mbTVlb21qe3BhZGRpbmc6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsU051ZGdlKSB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTBwaTEzbntwb3NpdGlvbjpyZWxhdGl2ZTt9XCIsIFwiLmYxMXZydmR3W2RhdGEtYWN0aXZlZGVzY2VuZGFudC1mb2N1c3Zpc2libGVdOjphZnRlcntjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZjE3aHhqYjdbZGF0YS1hY3RpdmVkZXNjZW5kYW50LWZvY3VzdmlzaWJsZV06OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjFkaGE2OWNbZGF0YS1hY3RpdmVkZXNjZW5kYW50LWZvY3VzdmlzaWJsZV06OmFmdGVye3BvaW50ZXItZXZlbnRzOm5vbmU7fVwiLCBcIi5mMWxtNzUwMFtkYXRhLWFjdGl2ZWRlc2NlbmRhbnQtZm9jdXN2aXNpYmxlXTo6YWZ0ZXJ7ei1pbmRleDoxO31cIiwgW1wiLmZvN3hxYltkYXRhLWFjdGl2ZWRlc2NlbmRhbnQtZm9jdXN2aXNpYmxlXTo6YWZ0ZXJ7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7fVwiLCB7XG4gICAgcDogLTJcbiAgfV0sIFtcIi5mMWt1cnRoZVtkYXRhLWFjdGl2ZWRlc2NlbmRhbnQtZm9jdXN2aXNpYmxlXTo6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5md3ExNWR5W2RhdGEtYWN0aXZlZGVzY2VuZGFudC1mb2N1c3Zpc2libGVdOjphZnRlcnt0b3A6LTJweDt9XCIsIFwiLmYxcGIzd3J5W2RhdGEtYWN0aXZlZGVzY2VuZGFudC1mb2N1c3Zpc2libGVdOjphZnRlcntib3R0b206LTJweDt9XCIsIFwiLmZ0anYyZjRbZGF0YS1hY3RpdmVkZXNjZW5kYW50LWZvY3VzdmlzaWJsZV06OmFmdGVye2xlZnQ6LTJweDt9XCIsIFwiLmYxZmxoYjFmW2RhdGEtYWN0aXZlZGVzY2VuZGFudC1mb2N1c3Zpc2libGVdOjphZnRlcntyaWdodDotMnB4O31cIiwgXCIuZjFzMmFxN297Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZvZDVpa257Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTQwMCk7fVwiLCBcIi5mMThiOWhkcXttYXJnaW4tbGVmdDpjYWxjKHZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKSAqIC0xKTt9XCIsIFwiLmZuNnFqOHR7bWFyZ2luLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpICogLTEpO31cIiwgXCIuZjF4azU1N2N7bWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCIsIFwiLmYxaDllbjV5e21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCIsIFwiLmZkN2ZweTB7dmlzaWJpbGl0eTpoaWRkZW47fVwiLCBcIi5mdmM5djNnIHN2Z3tkaXNwbGF5OmJsb2NrO31cIiwgXCIuZjEwMjJtNjh7dmlzaWJpbGl0eTp2aXNpYmxlO31cIiwgW1wiLmYxbDNjZjdve2JvcmRlcjp2YXIoLS1zdHJva2VXaWR0aFRoaW4pIHNvbGlkIHZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGUpO31cIiwge1xuICAgIHA6IC0yXG4gIH1dLCBbXCIuZnE5enE5MXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c1NtYWxsKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjFld3RxY2x7Ym94LXNpemluZzpib3JkZXItYm94O31cIiwgXCIuZjRkOWoyM3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO31cIiwgXCIuZjF3OWg2Mnp7ZmlsbDpjdXJyZW50Q29sb3I7fVwiLCBcIi5mMXVnend3Z3tmb250LXNpemU6MTJweDt9XCIsIFwiLmZkNDYxeXR7aGVpZ2h0OjE2cHg7fVwiLCBcIi5manc1Zng3e3dpZHRoOjE2cHg7fVwiLCBcIi5mdHl3c2d6e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZCk7fVwiLCBcIi5mcXBidnZ0e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRJbnZlcnRlZCk7fVwiLCBcIi5mM3hpN21oe2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kQmFja2dyb3VuZCk7fVwiLCBcIi5mdG92aGU0e2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxd2N6dmlue2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmQpO31cIiwgXCIuZjY4dmJyNntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEJhY2tncm91bmQpO31cIiwgXCIuZjFyMXQ0eTF7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZm1qOGlqd3tib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZpZ3g1NG17Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYzNjBzczh7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIl0sXG4gIGg6IFtcIi5mMWtuYXM0ODpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxSG92ZXIpO31cIiwgXCIuZmV1MWczdTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMUhvdmVyKTt9XCIsIFwiLmZvNzlyaTk6aG92ZXIgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZjFvc2lhYmM6aG92ZXIgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFIb3Zlcik7fVwiLCBcIi5mMWU4bGUyNTpob3ZlciAuZnVpLU9wdGlvbl9fY2hlY2tJY29ue2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZjF5dXNqdHk6aG92ZXIgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZjlxbDZyZjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmZ2Z3hrdHA6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxODVqM3FqOmhvdmVyIC5mdWktT3B0aW9uX19jaGVja0ljb257Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZjFkbGlnaTM6aG92ZXIgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxdnlkemllOmhvdmVyIC5mdWktT3B0aW9uX19jaGVja0ljb257Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZqdzFkaTM6aG92ZXIgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmREaXNhYmxlZCk7fVwiXSxcbiAgYTogW1wiLmZiNDBuMmQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFQcmVzc2VkKTt9XCIsIFwiLmYxZzRoa2p2OmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVByZXNzZWQpO31cIiwgXCIuZjFsbnIyenA6YWN0aXZlIC5mdWktT3B0aW9uX19jaGVja0ljb257Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMUhvdmVyKTt9XCIsIFwiLmYxb2dmazl6OmFjdGl2ZSAuZnVpLU9wdGlvbl9fY2hlY2tJY29ue2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMUhvdmVyKTt9XCIsIFwiLmYxZzdqOGVjOmFjdGl2ZSAuZnVpLU9wdGlvbl9fY2hlY2tJY29ue2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZml1ZjQ2cjphY3RpdmUgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZmdqOXVtMzphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBcIi5mMTl3bGRoZzphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxc3Mwa3QyOmFjdGl2ZSAuZnVpLU9wdGlvbl9fY2hlY2tJY29ue2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYxdDZvbGkzOmFjdGl2ZSAuZnVpLU9wdGlvbl9fY2hlY2tJY29ue2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZmp5OWNpODphY3RpdmUgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZnJlc2F4azphY3RpdmUgLmZ1aS1PcHRpb25fX2NoZWNrSWNvbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmREaXNhYmxlZCk7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFkY3M4eXp7Y29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBPcHRpb24gc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPcHRpb25TdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVkLFxuICAgIG11bHRpc2VsZWN0LFxuICAgIHNlbGVjdGVkXG4gIH0gPSBzdGF0ZTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKG9wdGlvbkNsYXNzTmFtZXMucm9vdCwgc3R5bGVzLnJvb3QsIHN0eWxlcy5hY3RpdmUsIGRpc2FibGVkICYmIHN0eWxlcy5kaXNhYmxlZCwgc2VsZWN0ZWQgJiYgc3R5bGVzLnNlbGVjdGVkLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIGlmIChzdGF0ZS5jaGVja0ljb24pIHtcbiAgICBzdGF0ZS5jaGVja0ljb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKG9wdGlvbkNsYXNzTmFtZXMuY2hlY2tJY29uLCBzdHlsZXMuY2hlY2tJY29uLCBtdWx0aXNlbGVjdCAmJiBzdHlsZXMubXVsdGlzZWxlY3RDaGVjaywgc2VsZWN0ZWQgJiYgc3R5bGVzLnNlbGVjdGVkQ2hlY2ssIHNlbGVjdGVkICYmIG11bHRpc2VsZWN0ICYmIHN0eWxlcy5zZWxlY3RlZE11bHRpc2VsZWN0Q2hlY2ssIGRpc2FibGVkICYmIHN0eWxlcy5jaGVja0Rpc2FibGVkLCBkaXNhYmxlZCAmJiBtdWx0aXNlbGVjdCAmJiBzdHlsZXMubXVsdGlzZWxlY3RDaGVja0Rpc2FibGVkLCBzdGF0ZS5jaGVja0ljb24uY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlT3B0aW9uU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIG1lcmdlQ2FsbGJhY2tzLCB1c2VFdmVudENhbGxiYWNrLCBzbG90LCB1c2VNZXJnZWRSZWZzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VIYXNQYXJlbnRDb250ZXh0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuaW1wb3J0IHsgdXNlQWN0aXZlRGVzY2VuZGFudCwgdXNlQWN0aXZlRGVzY2VuZGFudENvbnRleHQsIHVzZUhhc1BhcmVudEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgZ2V0RHJvcGRvd25BY3Rpb25Gcm9tS2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZHJvcGRvd25LZXlBY3Rpb25zJztcbmltcG9ydCB7IHVzZU9wdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi91dGlscy91c2VPcHRpb25Db2xsZWN0aW9uJztcbmltcG9ydCB7IHVzZVNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZVNlbGVjdGlvbic7XG5pbXBvcnQgeyBvcHRpb25DbGFzc05hbWVzIH0gZnJvbSAnLi4vT3B0aW9uL3VzZU9wdGlvblN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgTGlzdGJveENvbnRleHQsIHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvTGlzdGJveENvbnRleHQnO1xuaW1wb3J0IHsgdXNlT25LZXlib2FyZE5hdmlnYXRpb25DaGFuZ2UgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5jb25zdCBVTlNBRkVfbm9Mb25nZXJVc2VkID0ge1xuICAgIGFjdGl2ZU9wdGlvbjogdW5kZWZpbmVkLFxuICAgIGZvY3VzVmlzaWJsZTogZmFsc2UsXG4gICAgc2V0QWN0aXZlT3B0aW9uOiAoKT0+bnVsbFxufTtcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgTGlzdGJveC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VMaXN0Ym94U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJMaXN0Ym94X3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBMaXN0Ym94XG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgTGlzdGJveFxuICovIGV4cG9ydCBjb25zdCB1c2VMaXN0Ym94X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCB7IG11bHRpc2VsZWN0LCBkaXNhYmxlQXV0b0ZvY3VzID0gZmFsc2UgfSA9IHByb3BzO1xuICAgIGNvbnN0IG9wdGlvbkNvbGxlY3Rpb24gPSB1c2VPcHRpb25Db2xsZWN0aW9uKCk7XG4gICAgY29uc3QgeyBsaXN0Ym94UmVmOiBhY3RpdmVEZXNjZW5kYW50TGlzdGJveFJlZiwgYWN0aXZlUGFyZW50UmVmLCBjb250cm9sbGVyIH0gPSB1c2VBY3RpdmVEZXNjZW5kYW50KHtcbiAgICAgICAgbWF0Y2hPcHRpb246IChlbCk9PmVsLmNsYXNzTGlzdC5jb250YWlucyhvcHRpb25DbGFzc05hbWVzLnJvb3QpXG4gICAgfSk7XG4gICAgY29uc3QgaGFzTGlzdGJveENvbnRleHQgPSB1c2VIYXNQYXJlbnRDb250ZXh0KExpc3Rib3hDb250ZXh0KTtcbiAgICBjb25zdCBvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2UgPSB1c2VMaXN0Ym94Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4Lm9uQWN0aXZlRGVzY2VuZGFudENoYW5nZSk7XG4gICAgY29uc3QgY29udGV4dEdldE9wdGlvbkJ5SWQgPSB1c2VMaXN0Ym94Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LmdldE9wdGlvbkJ5SWQpO1xuICAgIGNvbnN0IGNvbnRleHRHZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSA9IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHguZ2V0T3B0aW9uc01hdGNoaW5nVmFsdWUpO1xuICAgIGNvbnN0IGdldE9wdGlvbkJ5SWQgPSBoYXNMaXN0Ym94Q29udGV4dCA/IGNvbnRleHRHZXRPcHRpb25CeUlkIDogb3B0aW9uQ29sbGVjdGlvbi5nZXRPcHRpb25CeUlkO1xuICAgIGNvbnN0IGdldE9wdGlvbnNNYXRjaGluZ1ZhbHVlID0gaGFzTGlzdGJveENvbnRleHQgPyBjb250ZXh0R2V0T3B0aW9uc01hdGNoaW5nVmFsdWUgOiBvcHRpb25Db2xsZWN0aW9uLmdldE9wdGlvbnNNYXRjaGluZ1ZhbHVlO1xuICAgIGNvbnN0IGxpc3RlbmVyUmVmID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBsZXQgZWxlbWVudCA9IG51bGw7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVyID0gKHVudHlwZWRFdmVudCk9PntcbiAgICAgICAgICAgIC8vIFR5cGVzY3JpcHQgZG9lc24ndCBzdXBwb3J0IGN1c3RvbSBldmVudCB0eXBlcyBvbiBoYW5kbGVyXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IHVudHlwZWRFdmVudDtcbiAgICAgICAgICAgIG9uQWN0aXZlRGVzY2VuZGFudENoYW5nZSA9PT0gbnVsbCB8fCBvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQWN0aXZlRGVzY2VuZGFudENoYW5nZShldmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiAoZWwpPT57XG4gICAgICAgICAgICBpZiAoIWVsKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FjdGl2ZWRlc2NlbmRhbnRjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxlbWVudCA9IGVsO1xuICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmVkZXNjZW5kYW50Y2hhbmdlJywgbGlzdGVuZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlXG4gICAgXSk7XG4gICAgY29uc3QgW2lzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCwgc2V0SXNOYXZpZ2F0aW5nV2l0aEtleWJvYXJkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICB1c2VPbktleWJvYXJkTmF2aWdhdGlvbkNoYW5nZShzZXRJc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmQpO1xuICAgIGNvbnN0IGFjdGl2ZURlc2NlbmRhbnRDb250ZXh0ID0gdXNlQWN0aXZlRGVzY2VuZGFudENvbnRleHQoKTtcbiAgICBjb25zdCBoYXNQYXJlbnRBY3RpdmVEZXNjZW5kYW50Q29udGV4dCA9IHVzZUhhc1BhcmVudEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0KCk7XG4gICAgY29uc3QgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIgPSBoYXNQYXJlbnRBY3RpdmVEZXNjZW5kYW50Q29udGV4dCA/IGFjdGl2ZURlc2NlbmRhbnRDb250ZXh0LmNvbnRyb2xsZXIgOiBjb250cm9sbGVyO1xuICAgIGNvbnN0IHsgY2xlYXJTZWxlY3Rpb24sIHNlbGVjdGVkT3B0aW9ucywgc2VsZWN0T3B0aW9uIH0gPSB1c2VTZWxlY3Rpb24ocHJvcHMpO1xuICAgIGNvbnN0IG9uS2V5RG93biA9IChldmVudCk9PntcbiAgICAgICAgY29uc3QgYWN0aW9uID0gZ2V0RHJvcGRvd25BY3Rpb25Gcm9tS2V5KGV2ZW50LCB7XG4gICAgICAgICAgICBvcGVuOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBhY3RpdmVPcHRpb24gPSBhY3RpdmVPcHRpb25JZCA/IGdldE9wdGlvbkJ5SWQoYWN0aXZlT3B0aW9uSWQpIDogbnVsbDtcbiAgICAgICAgc3dpdGNoKGFjdGlvbil7XG4gICAgICAgICAgICBjYXNlICdGaXJzdCc6XG4gICAgICAgICAgICBjYXNlICdMYXN0JzpcbiAgICAgICAgICAgIGNhc2UgJ05leHQnOlxuICAgICAgICAgICAgY2FzZSAnUHJldmlvdXMnOlxuICAgICAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgICAgIGNhc2UgJ0Nsb3NlU2VsZWN0JzpcbiAgICAgICAgICAgIGNhc2UgJ1NlbGVjdCc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2goYWN0aW9uKXtcbiAgICAgICAgICAgIGNhc2UgJ05leHQnOlxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmZpcnN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUHJldmlvdXMnOlxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIucHJldigpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmZpcnN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgICAgIGNhc2UgJ0ZpcnN0JzpcbiAgICAgICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5maXJzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgICAgY2FzZSAnTGFzdCc6XG4gICAgICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIubGFzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU2VsZWN0JzpcbiAgICAgICAgICAgIGNhc2UgJ0Nsb3NlU2VsZWN0JzpcbiAgICAgICAgICAgICAgICBhY3RpdmVPcHRpb24gJiYgc2VsZWN0T3B0aW9uKGV2ZW50LCBhY3RpdmVPcHRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBnZXQgc3RhdGUgZnJvbSBwYXJlbnQgY29tYm9ib3gsIGlmIGl0IGV4aXN0c1xuICAgIGNvbnN0IGNvbnRleHRTZWxlY3RlZE9wdGlvbnMgPSB1c2VMaXN0Ym94Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LnNlbGVjdGVkT3B0aW9ucyk7XG4gICAgY29uc3QgY29udGV4dFNlbGVjdE9wdGlvbiA9IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHguc2VsZWN0T3B0aW9uKTtcbiAgICAvLyB3aXRob3V0IGEgcGFyZW50IGNvbWJvYm94IGNvbnRleHQsIHByb3ZpZGUgdmFsdWVzIGRpcmVjdGx5IGZyb20gTGlzdGJveFxuICAgIGNvbnN0IG9wdGlvbkNvbnRleHRWYWx1ZXMgPSBoYXNMaXN0Ym94Q29udGV4dCA/IHtcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zOiBjb250ZXh0U2VsZWN0ZWRPcHRpb25zLFxuICAgICAgICBzZWxlY3RPcHRpb246IGNvbnRleHRTZWxlY3RPcHRpb24sXG4gICAgICAgIC4uLlVOU0FGRV9ub0xvbmdlclVzZWRcbiAgICB9IDoge1xuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNlbGVjdE9wdGlvbixcbiAgICAgICAgLi4uVU5TQUZFX25vTG9uZ2VyVXNlZFxuICAgIH07XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIC8vIGlmIHRoZSBsaXN0Ym94IGhhcyBhIHBhcmVudCBjb250ZXh0LCB0aGF0IHBhcmVudCBjb250ZXh0IHNob3VsZCBoYW5kbGUgdGhlIGFjdGl2ZWRlc2NlbmRhbnRcbiAgICAgICAgaWYgKGhhc1BhcmVudEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGlzYWJsZSBmb2N1cy12aXNpYmxlIGF0dHJpYnV0ZXMgdW50aWwgZm9jdXMgaXMgcmVjZWl2ZWRcbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuaGlkZUZvY3VzVmlzaWJsZUF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFkaXNhYmxlQXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICAvLyBpZiBpdCBpcyBzaW5nbGUtc2VsZWN0IGFuZCB0aGVyZSBpcyBhIHNlbGVjdGVkIG9wdGlvbiwgc3RhcnQgYXQgdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgICAgICAgICAgaWYgKCFtdWx0aXNlbGVjdCAmJiBvcHRpb25Db250ZXh0VmFsdWVzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBnZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSgodik9PnYgPT09IG9wdGlvbkNvbnRleHRWYWx1ZXMuc2VsZWN0ZWRPcHRpb25zWzBdKS5wb3AoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb24gPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlbGVjdGVkT3B0aW9uLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmZvY3VzKHNlbGVjdGVkT3B0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5ibHVyKCk7XG4gICAgICAgIH07XG4gICAgLy8gdGhpcyBzaG91bGQgb25seSBiZSBydW4gb25jZSBpbiB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBMaXN0Ym94XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBvbkZvY3VzID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgaWYgKGhhc1BhcmVudEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuc2hvd0ZvY3VzVmlzaWJsZUF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKGlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCkge1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuc2Nyb2xsQWN0aXZlSW50b1ZpZXcoKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIsXG4gICAgICAgIGhhc1BhcmVudEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0LFxuICAgICAgICBpc05hdmlnYXRpbmdXaXRoS2V5Ym9hcmRcbiAgICBdKTtcbiAgICBjb25zdCBvbkJsdXIgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBpZiAoaGFzUGFyZW50QWN0aXZlRGVzY2VuZGFudENvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5oaWRlRm9jdXNWaXNpYmxlQXR0cmlidXRlcygpO1xuICAgIH0sIFtcbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIsXG4gICAgICAgIGhhc1BhcmVudEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0XG4gICAgXSk7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiB1c2VNZXJnZWRSZWZzKHJlZiwgYWN0aXZlUGFyZW50UmVmLCBhY3RpdmVEZXNjZW5kYW50TGlzdGJveFJlZiwgbGlzdGVuZXJSZWYpLFxuICAgICAgICAgICAgcm9sZTogbXVsdGlzZWxlY3QgPyAnbWVudScgOiAnbGlzdGJveCcsXG4gICAgICAgICAgICB0YWJJbmRleDogMCxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSksXG4gICAgICAgIHN0YW5kYWxvbmU6ICFoYXNMaXN0Ym94Q29udGV4dCxcbiAgICAgICAgbXVsdGlzZWxlY3QsXG4gICAgICAgIGNsZWFyU2VsZWN0aW9uLFxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlcixcbiAgICAgICAgb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlLFxuICAgICAgICAuLi5vcHRpb25Db2xsZWN0aW9uLFxuICAgICAgICAuLi5vcHRpb25Db250ZXh0VmFsdWVzXG4gICAgfTtcbiAgICBzdGF0ZS5yb290Lm9uS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3Moc3RhdGUucm9vdC5vbktleURvd24sIG9uS2V5RG93bikpO1xuICAgIHN0YXRlLnJvb3Qub25Gb2N1cyA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3Moc3RhdGUucm9vdC5vbkZvY3VzLCBvbkZvY3VzKSk7XG4gICAgc3RhdGUucm9vdC5vbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKHN0YXRlLnJvb3Qub25CbHVyLCBvbkJsdXIpKTtcbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50Q29udGV4dFByb3ZpZGVyIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgTGlzdGJveENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9MaXN0Ym94Q29udGV4dCc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIExpc3Rib3hcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyTGlzdGJveF91bnN0YWJsZSA9IChzdGF0ZSwgY29udGV4dFZhbHVlcyk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChBY3RpdmVEZXNjZW5kYW50Q29udGV4dFByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmFjdGl2ZURlc2NlbmRhbnQsXG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goTGlzdGJveENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmxpc3Rib3gsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KVxuICAgICAgICB9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuZXhwb3J0IGNvbnN0IGxpc3Rib3hDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLUxpc3Rib3gnXG59O1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIERlM3B6cTogXCJmeHVndzRyXCIsXG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQmVpeTNlNDogXCJmMXZ4OWw2MlwiLFxuICAgIEJmNGplZGs6IFwiZjNoc3kxZVwiLFxuICAgIEJteGJ5ZzU6IFwiZjV6cDRmXCIsXG4gICAgQncweHhrbjogMCxcbiAgICBvZWF1ZWg6IDAsXG4gICAgQnBkNGlxbTogMCxcbiAgICBCZWZiNGxnOiBcImYxaWVwYzZpXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxdDM1cGRnXCIsXG4gICAgQmVscjl3NDogXCJmaXV0OGRyXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZnh1Z3c0cntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTt9XCIsIFwiLmYxZXd0cWNse2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XCIsIFwiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZjF2eDlsNjJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO31cIiwgXCIuZjNoc3kxZXttaW4td2lkdGg6MTYwcHg7fVwiLCBcIi5mNXpwNGZ7b3ZlcmZsb3cteTphdXRvO31cIiwgW1wiLmYxaWVwYzZpe291dGxpbmU6MXB4IHNvbGlkIHZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjF0MzVwZGd7cGFkZGluZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZml1dDhkcntyb3ctZ2FwOnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgTGlzdGJveCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUxpc3Rib3hTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGxpc3Rib3hDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VMaXN0Ym94U3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMaXN0Ym94X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VMaXN0Ym94JztcbmltcG9ydCB7IHJlbmRlckxpc3Rib3hfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlckxpc3Rib3gnO1xuaW1wb3J0IHsgdXNlTGlzdGJveFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlTGlzdGJveFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlTGlzdGJveENvbnRleHRWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb250ZXh0cy91c2VMaXN0Ym94Q29udGV4dFZhbHVlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogTGlzdGJveCBjb21wb25lbnQ6IGEgc3RhbmRhbG9uZSBzZWxlY3Rpb24gY29udHJvbCwgb3IgdGhlIHBvcHVwIGluIGEgQ29tYm9ib3hcbiAqLyBleHBvcnQgY29uc3QgTGlzdGJveCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZUxpc3Rib3hfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgY29uc3QgY29udGV4dFZhbHVlcyA9IHVzZUxpc3Rib3hDb250ZXh0VmFsdWVzKHN0YXRlKTtcbiAgICB1c2VMaXN0Ym94U3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZUxpc3Rib3hTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlckxpc3Rib3hfdW5zdGFibGUoc3RhdGUsIGNvbnRleHRWYWx1ZXMpO1xufSk7XG5MaXN0Ym94LmRpc3BsYXlOYW1lID0gJ0xpc3Rib3gnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCB1c2VJZCwgdXNlTWVyZ2VkUmVmcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlQWN0aXZlRGVzY2VuZGFudENvbnRleHQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtYXJpYSc7XG5pbXBvcnQgeyBDaGVja21hcmtGaWxsZWQsIENoZWNrbWFyazEyRmlsbGVkIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWljb25zJztcbmltcG9ydCB7IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvTGlzdGJveENvbnRleHQnO1xuZnVuY3Rpb24gZ2V0VGV4dFN0cmluZyh0ZXh0LCBjaGlsZHJlbikge1xuICAgIGlmICh0ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIGxldCB0ZXh0U3RyaW5nID0gJyc7XG4gICAgbGV0IGhhc05vblN0cmluZ0NoaWxkID0gZmFsc2U7XG4gICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgKGNoaWxkKT0+e1xuICAgICAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGV4dFN0cmluZyArPSBjaGlsZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhhc05vblN0cmluZ0NoaWxkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIHdhcm4gaWYgYW4gT3B0aW9uIGhhcyBub24tc3RyaW5nIGNoaWxkcmVuIGFuZCBubyB0ZXh0IHByb3BcbiAgICBpZiAoaGFzTm9uU3RyaW5nQ2hpbGQpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKCdQcm92aWRlIGEgYHRleHRgIHByb3AgdG8gT3B0aW9uIGNvbXBvbmVudHMgd2hlbiB0aGV5IGNvbnRhaW4gbm9uLXN0cmluZyBjaGlsZHJlbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRTdHJpbmc7XG59XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIE9wdGlvbi5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VPcHRpb25TdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlck9wdGlvbl91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgT3B0aW9uXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgT3B0aW9uXG4gKi8gZXhwb3J0IGNvbnN0IHVzZU9wdGlvbl91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGRpc2FibGVkLCB0ZXh0LCB2YWx1ZSB9ID0gcHJvcHM7XG4gICAgY29uc3Qgb3B0aW9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSBnZXRUZXh0U3RyaW5nKHRleHQsIGNoaWxkcmVuKTtcbiAgICBjb25zdCBvcHRpb25WYWx1ZSA9IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgPyB2YWx1ZSA6IG9wdGlvblRleHQ7XG4gICAgLy8gdXNlIHRoZSBpZCBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIHVzZSBhIGdlbmVyYXRlZCBpZFxuICAgIGNvbnN0IGlkID0gdXNlSWQoJ2ZsdWVudC1vcHRpb24nLCBwcm9wcy5pZCk7XG4gICAgLy8gZGF0YSB1c2VkIGZvciBjb250ZXh0IHJlZ2lzdHJhdGlvbiAmIGV2ZW50c1xuICAgIGNvbnN0IG9wdGlvbkRhdGEgPSBSZWFjdC51c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIHRleHQ6IG9wdGlvblRleHQsXG4gICAgICAgICAgICB2YWx1ZTogb3B0aW9uVmFsdWVcbiAgICAgICAgfSksIFtcbiAgICAgICAgaWQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBvcHRpb25UZXh0LFxuICAgICAgICBvcHRpb25WYWx1ZVxuICAgIF0pO1xuICAgIC8vIGNvbnRleHQgdmFsdWVzXG4gICAgY29uc3QgeyBjb250cm9sbGVyOiBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlciB9ID0gdXNlQWN0aXZlRGVzY2VuZGFudENvbnRleHQoKTtcbiAgICBjb25zdCBtdWx0aXNlbGVjdCA9IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgubXVsdGlzZWxlY3QpO1xuICAgIGNvbnN0IHJlZ2lzdGVyT3B0aW9uID0gdXNlTGlzdGJveENvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5yZWdpc3Rlck9wdGlvbik7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB1c2VMaXN0Ym94Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+e1xuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSBjdHguc2VsZWN0ZWRPcHRpb25zO1xuICAgICAgICByZXR1cm4gb3B0aW9uVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBzZWxlY3RlZE9wdGlvbnMuZmluZCgobyk9Pm8gPT09IG9wdGlvblZhbHVlKSAhPT0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIGNvbnN0IHNlbGVjdE9wdGlvbiA9IHVzZUxpc3Rib3hDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHguc2VsZWN0T3B0aW9uKTtcbiAgICBjb25zdCBvbk9wdGlvbkNsaWNrID0gdXNlTGlzdGJveENvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5vbk9wdGlvbkNsaWNrKTtcbiAgICAvLyBjaGVjayBpY29uXG4gICAgbGV0IENoZWNrSWNvbiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja21hcmtGaWxsZWQsIG51bGwpO1xuICAgIGlmIChtdWx0aXNlbGVjdCkge1xuICAgICAgICBDaGVja0ljb24gPSBzZWxlY3RlZCA/IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja21hcmsxMkZpbGxlZCwgbnVsbCkgOiAnJztcbiAgICB9XG4gICAgY29uc3Qgb25DbGljayA9IChldmVudCk9PntcbiAgICAgICAgdmFyIF9wcm9wc19vbkNsaWNrO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuZm9jdXMoaWQpO1xuICAgICAgICAvLyBoYW5kbGUgc2VsZWN0aW9uIGNoYW5nZVxuICAgICAgICBzZWxlY3RPcHRpb24oZXZlbnQsIG9wdGlvbkRhdGEpO1xuICAgICAgICBvbk9wdGlvbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgKF9wcm9wc19vbkNsaWNrID0gcHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX3Byb3BzX29uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbkNsaWNrLmNhbGwocHJvcHMsIGV2ZW50KTtcbiAgICB9O1xuICAgIC8vIHJlZ2lzdGVyIG9wdGlvbiBkYXRhIHdpdGggY29udGV4dFxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoaWQgJiYgb3B0aW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3Rlck9wdGlvbihvcHRpb25EYXRhLCBvcHRpb25SZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGlkLFxuICAgICAgICBvcHRpb25EYXRhLFxuICAgICAgICByZWdpc3Rlck9wdGlvblxuICAgIF0pO1xuICAgIGNvbnN0IHNlbWFudGljUHJvcHMgPSBtdWx0aXNlbGVjdCA/IHtcbiAgICAgICAgcm9sZTogJ21lbnVpdGVtY2hlY2tib3gnLFxuICAgICAgICAnYXJpYS1jaGVja2VkJzogc2VsZWN0ZWRcbiAgICB9IDoge1xuICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdicsXG4gICAgICAgICAgICBjaGVja0ljb246ICdzcGFuJ1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIG9wdGlvblJlZiksXG4gICAgICAgICAgICAnYXJpYS1kaXNhYmxlZCc6IGRpc2FibGVkID8gJ3RydWUnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAuLi5zZW1hbnRpY1Byb3BzLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICBvbkNsaWNrXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSksXG4gICAgICAgIGNoZWNrSWNvbjogc2xvdC5vcHRpb25hbChwcm9wcy5jaGVja0ljb24sIHtcbiAgICAgICAgICAgIHJlbmRlckJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogQ2hlY2tJY29uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG11bHRpc2VsZWN0LFxuICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgLy8gbm8gbG9uZ2VyIHVzZWRcbiAgICAgICAgZm9jdXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgYWN0aXZlOiBmYWxzZVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIE9wdGlvblxuICovIGV4cG9ydCBjb25zdCByZW5kZXJPcHRpb25fdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0YXRlLmNoZWNrSWNvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuY2hlY2tJY29uLCB7fSksXG4gICAgICAgICAgICBzdGF0ZS5yb290LmNoaWxkcmVuXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VPcHRpb25fdW5zdGFibGUgfSBmcm9tICcuL3VzZU9wdGlvbic7XG5pbXBvcnQgeyByZW5kZXJPcHRpb25fdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlck9wdGlvbic7XG5pbXBvcnQgeyB1c2VPcHRpb25TdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZU9wdGlvblN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIE9wdGlvbiBjb21wb25lbnQ6IGEgc3R5bGVkIGNoaWxkIG9wdGlvbiBvZiBhIENvbWJvYm94XG4gKi8gZXhwb3J0IGNvbnN0IE9wdGlvbiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZU9wdGlvbl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VPcHRpb25TdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlT3B0aW9uU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJPcHRpb25fdW5zdGFibGUoc3RhdGUpO1xufSk7XG5PcHRpb24uZGlzcGxheU5hbWUgPSAnT3B0aW9uJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjaywgdXNlRmlyc3RNb3VudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlT3B0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3V0aWxzL3VzZU9wdGlvbkNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgdXNlU2VsZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvdXNlU2VsZWN0aW9uJztcbi8qKlxuICogQGludGVybmFsXG4gKiBTdGF0ZSBzaGFyZWQgYmV0d2VlbiBDb21ib2JveCBhbmQgRHJvcGRvd24gY29tcG9uZW50c1xuICovIGV4cG9ydCBjb25zdCB1c2VDb21ib2JveEJhc2VTdGF0ZSA9IChwcm9wcyk9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IHsgYXBwZWFyYW5jZSA9ICdvdXRsaW5lJywgZGlzYWJsZUF1dG9Gb2N1cywgY2hpbGRyZW4sIGNsZWFyYWJsZSA9IGZhbHNlLCBlZGl0YWJsZSA9IGZhbHNlLCBpbmxpbmVQb3B1cCA9IGZhbHNlLCBtb3VudE5vZGUgPSB1bmRlZmluZWQsIG11bHRpc2VsZWN0LCBvbk9wZW5DaGFuZ2UsIHNpemUgPSAnbWVkaXVtJywgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIsIGZyZWVmb3JtID0gZmFsc2UsIGRpc2FibGVkID0gZmFsc2UsIG9uQWN0aXZlT3B0aW9uQ2hhbmdlID0gbnVsbCB9ID0gcHJvcHM7XG4gICAgY29uc3Qgb3B0aW9uQ29sbGVjdGlvbiA9IHVzZU9wdGlvbkNvbGxlY3Rpb24oKTtcbiAgICBjb25zdCB7IGdldE9wdGlvbnNNYXRjaGluZ1ZhbHVlIH0gPSBvcHRpb25Db2xsZWN0aW9uO1xuICAgIGNvbnN0IHsgZ2V0T3B0aW9uQnlJZCB9ID0gb3B0aW9uQ29sbGVjdGlvbjtcbiAgICBjb25zdCBnZXRBY3RpdmVPcHRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmFjdGl2ZSgpO1xuICAgICAgICByZXR1cm4gYWN0aXZlT3B0aW9uSWQgPyBnZXRPcHRpb25CeUlkKGFjdGl2ZU9wdGlvbklkKSA6IHVuZGVmaW5lZDtcbiAgICB9LCBbXG4gICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLFxuICAgICAgICBnZXRPcHRpb25CeUlkXG4gICAgXSk7XG4gICAgLy8gS2VlcGluZyBzb21lIGtpbmQgb2YgYmFja3dhcmRzIGNvbXBhdGlibGUgZnVuY3Rpb25hbGl0eSBoZXJlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIGNvbnN0IFVOU0FGRV9hY3RpdmVPcHRpb24gPSBnZXRBY3RpdmVPcHRpb24oKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY29uc3QgVU5TQUZFX3NldEFjdGl2ZU9wdGlvbiA9IFJlYWN0LnVzZUNhbGxiYWNrKChvcHRpb24pPT57XG4gICAgICAgIGxldCBuZXh0T3B0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlT3B0aW9uID0gZ2V0QWN0aXZlT3B0aW9uKCk7XG4gICAgICAgICAgICBuZXh0T3B0aW9uID0gb3B0aW9uKGFjdGl2ZU9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5leHRPcHRpb24pIHtcbiAgICAgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmZvY3VzKG5leHRPcHRpb24uaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuYmx1cigpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlcixcbiAgICAgICAgZ2V0QWN0aXZlT3B0aW9uXG4gICAgXSk7XG4gICAgLy8gdHJhY2sgd2hldGhlciBrZXlib2FyZCBmb2N1cyBvdXRsaW5lIHNob3VsZCBiZSBzaG93blxuICAgIC8vIHRhYnN0ZXIva2V5Ym9yZyBkb2Vzbid0IHdvcmsgaGVyZSwgc2luY2UgdGhlIGFjdHVhbCBrZXlib2FyZCBmb2N1cyB0YXJnZXQgZG9lc24ndCBtb3ZlXG4gICAgY29uc3QgW2ZvY3VzVmlzaWJsZSwgc2V0Rm9jdXNWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICAvLyB0cmFjayBmb2N1c2VkIHN0YXRlIHRvIGNvbmRpdGlvbmFsbHkgcmVuZGVyIGNvbGxhcHNlZCBsaXN0Ym94XG4gICAgLy8gd2hlbiB0aGUgdHJpZ2dlciBpcyBmb2N1c2VkIC0gdGhlIGxpc3Rib3ggc2hvdWxkIGJ1dCBoaWRkZW4gdW50aWwgdGhlIG9wZW4gc3RhdGUgaXMgY2hhbmdlZFxuICAgIGNvbnN0IFtoYXNGb2N1cywgc2V0SGFzRm9jdXNdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGlnbm9yZU5leHRCbHVyID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICAvLyBjYWxjdWxhdGUgdmFsdWUgYmFzZWQgb24gcHJvcHMsIGludGVybmFsIHZhbHVlIGNoYW5nZXMsIGFuZCBzZWxlY3RlZCBvcHRpb25zXG4gICAgY29uc3QgaXNGaXJzdE1vdW50ID0gdXNlRmlyc3RNb3VudCgpO1xuICAgIGNvbnN0IFtjb250cm9sbGFibGVWYWx1ZSwgc2V0VmFsdWVdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBzdGF0ZTogcHJvcHMudmFsdWUsXG4gICAgICAgIGluaXRpYWxTdGF0ZTogdW5kZWZpbmVkXG4gICAgfSk7XG4gICAgY29uc3QgeyBzZWxlY3RlZE9wdGlvbnMsIHNlbGVjdE9wdGlvbjogYmFzZVNlbGVjdE9wdGlvbiwgY2xlYXJTZWxlY3Rpb24gfSA9IHVzZVNlbGVjdGlvbihwcm9wcyk7XG4gICAgLy8gcmVzZXQgYW55IHR5cGVkIHZhbHVlIHdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkXG4gICAgY29uc3Qgc2VsZWN0T3B0aW9uID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2LCBvcHRpb24pPT57XG4gICAgICAgIFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKCgpPT57XG4gICAgICAgICAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICAgICAgYmFzZVNlbGVjdE9wdGlvbihldiwgb3B0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBzZXRWYWx1ZSxcbiAgICAgICAgYmFzZVNlbGVjdE9wdGlvblxuICAgIF0pO1xuICAgIGNvbnN0IHZhbHVlID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICAvLyBkb24ndCBjb21wdXRlIHRoZSB2YWx1ZSBpZiBpdCBpcyBkZWZpbmVkIHRocm91Z2ggcHJvcHMgb3Igc2V0VmFsdWUsXG4gICAgICAgIGlmIChjb250cm9sbGFibGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbGxhYmxlVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaGFuZGxlIGRlZmF1bHRWYWx1ZSBoZXJlLCBzbyBpdCBpcyBvdmVycmlkZGVuIGJ5IHNlbGVjdGlvblxuICAgICAgICBpZiAoaXNGaXJzdE1vdW50ICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uc1RleHQgPSBnZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSgob3B0aW9uVmFsdWUpPT57XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvblZhbHVlKTtcbiAgICAgICAgfSkubWFwKChvcHRpb24pPT5vcHRpb24udGV4dCk7XG4gICAgICAgIGlmIChtdWx0aXNlbGVjdCkge1xuICAgICAgICAgICAgLy8gZWRpdGFibGUgaW5wdXRzIHNob3VsZCBub3QgZGlzcGxheSBtdWx0aXBsZSBzZWxlY3RlZCBvcHRpb25zIGluIHRoZSBpbnB1dCBhcyB0ZXh0XG4gICAgICAgICAgICByZXR1cm4gZWRpdGFibGUgPyAnJyA6IHNlbGVjdGVkT3B0aW9uc1RleHQuam9pbignLCAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zVGV4dFswXTtcbiAgICAvLyBkbyBub3QgY2hhbmdlIHZhbHVlIGFmdGVyIGlzRmlyc3RNb3VudCBjaGFuZ2VzLFxuICAgIC8vIHdlIGRvIG5vdCB3YW50IHRvIGFjY2lkZW50YWxseSBvdmVycmlkZSBkZWZhdWx0VmFsdWUgb24gYSBzZWNvbmQgcmVuZGVyXG4gICAgLy8gdW5sZXNzIGFub3RoZXIgdmFsdWUgaXMgaW50ZW50aW9uYWxseSBzZXRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW1xuICAgICAgICBjb250cm9sbGFibGVWYWx1ZSxcbiAgICAgICAgZWRpdGFibGUsXG4gICAgICAgIGdldE9wdGlvbnNNYXRjaGluZ1ZhbHVlLFxuICAgICAgICBtdWx0aXNlbGVjdCxcbiAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnNcbiAgICBdKTtcbiAgICAvLyBIYW5kbGUgb3BlbiBzdGF0ZSwgd2hpY2ggaXMgc2hhcmVkIHdpdGggb3B0aW9ucyBpbiBjb250ZXh0XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5TdGF0ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBwcm9wcy5vcGVuLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHByb3BzLmRlZmF1bHRPcGVuLFxuICAgICAgICBpbml0aWFsU3RhdGU6IGZhbHNlXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0T3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCwgbmV3U3RhdGUpPT57XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShldmVudCwge1xuICAgICAgICAgICAgb3BlbjogbmV3U3RhdGVcbiAgICAgICAgfSk7XG4gICAgICAgIFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKCgpPT57XG4gICAgICAgICAgICBpZiAoIW5ld1N0YXRlICYmICFmcmVlZm9ybSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRPcGVuU3RhdGUobmV3U3RhdGUpO1xuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgc2V0T3BlblN0YXRlLFxuICAgICAgICBzZXRWYWx1ZSxcbiAgICAgICAgZnJlZWZvcm0sXG4gICAgICAgIGRpc2FibGVkXG4gICAgXSk7XG4gICAgLy8gdXBkYXRlIGFjdGl2ZSBvcHRpb24gYmFzZWQgb24gY2hhbmdlIGluIG9wZW4gc3RhdGVcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIC8vIGlmIGl0IGlzIHNpbmdsZS1zZWxlY3QgYW5kIHRoZXJlIGlzIGEgc2VsZWN0ZWQgb3B0aW9uLCBzdGFydCBhdCB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gICAgICAgICAgICBpZiAoIW11bHRpc2VsZWN0ICYmIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBnZXRPcHRpb25zTWF0Y2hpbmdWYWx1ZSgodik9PnYgPT09IHNlbGVjdGVkT3B0aW9uc1swXSkucG9wKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9uID09PSBudWxsIHx8IHNlbGVjdGVkT3B0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWxlY3RlZE9wdGlvbi5pZCkge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5mb2N1cyhzZWxlY3RlZE9wdGlvbi5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuYmx1cigpO1xuICAgICAgICB9XG4gICAgLy8gdGhpcyBzaG91bGQgb25seSBiZSBydW4gaW4gcmVzcG9uc2UgdG8gY2hhbmdlcyBpbiB0aGUgb3BlbiBzdGF0ZVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbXG4gICAgICAgIG9wZW4sXG4gICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyXG4gICAgXSk7XG4gICAgLy8gRmFsbGJhY2sgZm9jdXMgd2hlbiBjaGlsZHJlbiBhcmUgdXBkYXRlZCBpbiBhbiBvcGVuIHBvcG92ZXIgcmVzdWx0cyBpbiBubyBpdGVtIGJlaW5nIGZvY3VzZWRcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKG9wZW4gJiYgIWRpc2FibGVBdXRvRm9jdXMgJiYgIWFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmFjdGl2ZSgpKSB7XG4gICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5maXJzdCgpO1xuICAgICAgICB9XG4gICAgLy8gdGhpcyBzaG91bGQgb25seSBiZSBydW4gaW4gcmVzcG9uc2UgdG8gY2hhbmdlcyBpbiB0aGUgb3BlbiBzdGF0ZSBvciBjaGlsZHJlblxuICAgIH0sIFtcbiAgICAgICAgb3BlbixcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIGRpc2FibGVBdXRvRm9jdXMsXG4gICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLFxuICAgICAgICBnZXRPcHRpb25CeUlkXG4gICAgXSk7XG4gICAgY29uc3Qgb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpPT57XG4gICAgICAgIGNvbnN0IHByZXZpb3VzT3B0aW9uID0gZXZlbnQuZGV0YWlsLnByZXZpb3VzSWQgPyBvcHRpb25Db2xsZWN0aW9uLmdldE9wdGlvbkJ5SWQoZXZlbnQuZGV0YWlsLnByZXZpb3VzSWQpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbiA9IG9wdGlvbkNvbGxlY3Rpb24uZ2V0T3B0aW9uQnlJZChldmVudC5kZXRhaWwuaWQpO1xuICAgICAgICBvbkFjdGl2ZU9wdGlvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkFjdGl2ZU9wdGlvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BY3RpdmVPcHRpb25DaGFuZ2UoZXZlbnQsIHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdHlwZTogJ2NoYW5nZScsXG4gICAgICAgICAgICBwcmV2aW91c09wdGlvbixcbiAgICAgICAgICAgIG5leHRPcHRpb25cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3B0aW9uQ29sbGVjdGlvbixcbiAgICAgICAgZnJlZWZvcm0sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBzZWxlY3RPcHRpb24sXG4gICAgICAgIGNsZWFyU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIGFjdGl2ZU9wdGlvbjogVU5TQUZFX2FjdGl2ZU9wdGlvbixcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgY2xlYXJhYmxlLFxuICAgICAgICBmb2N1c1Zpc2libGUsXG4gICAgICAgIGlnbm9yZU5leHRCbHVyLFxuICAgICAgICBpbmxpbmVQb3B1cCxcbiAgICAgICAgbW91bnROb2RlLFxuICAgICAgICBvcGVuLFxuICAgICAgICBoYXNGb2N1cyxcbiAgICAgICAgc2V0QWN0aXZlT3B0aW9uOiBVTlNBRkVfc2V0QWN0aXZlT3B0aW9uLFxuICAgICAgICBzZXRGb2N1c1Zpc2libGUsXG4gICAgICAgIHNldEhhc0ZvY3VzLFxuICAgICAgICBzZXRPcGVuLFxuICAgICAgICBzZXRWYWx1ZSxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIG11bHRpc2VsZWN0LFxuICAgICAgICBvbk9wdGlvbkNsaWNrOiB1c2VFdmVudENhbGxiYWNrKChlKT0+e1xuICAgICAgICAgICAgaWYgKCFtdWx0aXNlbGVjdCkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlXG4gICAgfTtcbn07XG4iLCJpbXBvcnQgeyByZXNvbHZlUG9zaXRpb25pbmdTaG9ydGhhbmQsIHVzZVBvc2l0aW9uaW5nIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBmdW5jdGlvbiB1c2VDb21ib2JveFBvc2l0aW9uaW5nKHByb3BzKSB7XG4gICAgY29uc3QgeyBwb3NpdGlvbmluZyB9ID0gcHJvcHM7XG4gICAgLy8gU2V0IGEgZGVmYXVsdCBzZXQgb2YgZmFsbGJhY2sgcG9zaXRpb25zIHRvIHRyeSBpZiB0aGUgZHJvcGRvd24gZG9lcyBub3QgZml0IG9uIHNjcmVlblxuICAgIGNvbnN0IGZhbGxiYWNrUG9zaXRpb25zID0gW1xuICAgICAgICAnYWJvdmUnLFxuICAgICAgICAnYWZ0ZXInLFxuICAgICAgICAnYWZ0ZXItdG9wJyxcbiAgICAgICAgJ2JlZm9yZScsXG4gICAgICAgICdiZWZvcmUtdG9wJ1xuICAgIF07XG4gICAgLy8gcG9wcGVyIG9wdGlvbnNcbiAgICBjb25zdCBwb3BwZXJPcHRpb25zID0ge1xuICAgICAgICBwb3NpdGlvbjogJ2JlbG93JyxcbiAgICAgICAgYWxpZ246ICdzdGFydCcsXG4gICAgICAgIG9mZnNldDoge1xuICAgICAgICAgICAgY3Jvc3NBeGlzOiAwLFxuICAgICAgICAgICAgbWFpbkF4aXM6IDJcbiAgICAgICAgfSxcbiAgICAgICAgZmFsbGJhY2tQb3NpdGlvbnMsXG4gICAgICAgIG1hdGNoVGFyZ2V0U2l6ZTogJ3dpZHRoJyxcbiAgICAgICAgYXV0b1NpemU6IHRydWUsXG4gICAgICAgIC4uLnJlc29sdmVQb3NpdGlvbmluZ1Nob3J0aGFuZChwb3NpdGlvbmluZylcbiAgICB9O1xuICAgIGNvbnN0IHsgdGFyZ2V0UmVmLCBjb250YWluZXJSZWYgfSA9IHVzZVBvc2l0aW9uaW5nKHBvcHBlck9wdGlvbnMpO1xuICAgIHJldHVybiBbXG4gICAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgICAgdGFyZ2V0UmVmXG4gICAgXTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2FsbGJhY2tzLCB1c2VJZCwgdXNlRXZlbnRDYWxsYmFjaywgc2xvdCwgaXNSZXNvbHZlZFNob3J0aGFuZCwgdXNlTWVyZ2VkUmVmcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgTGlzdGJveCB9IGZyb20gJy4uL0xpc3Rib3gnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEByZXR1cm5zICBsaXN0Ym94IHNsb3Qgd2l0aCBkZXNpcmVkIGJlaGF2aW91ciBhbmQgcHJvcHNcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlTGlzdGJveFNsb3QobGlzdGJveFNsb3RGcm9tUHJvcCwgcmVmLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBzdGF0ZTogeyBtdWx0aXNlbGVjdCB9LCB0cmlnZ2VyUmVmLCBkZWZhdWx0UHJvcHMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgbGlzdGJveElkID0gdXNlSWQoJ2ZsdWVudC1saXN0Ym94JywgaXNSZXNvbHZlZFNob3J0aGFuZChsaXN0Ym94U2xvdEZyb21Qcm9wKSA/IGxpc3Rib3hTbG90RnJvbVByb3AuaWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGxpc3Rib3hTbG90ID0gc2xvdC5vcHRpb25hbChsaXN0Ym94U2xvdEZyb21Qcm9wLCB7XG4gICAgICAgIHJlbmRlckJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgZWxlbWVudFR5cGU6IExpc3Rib3gsXG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgaWQ6IGxpc3Rib3hJZCxcbiAgICAgICAgICAgIG11bHRpc2VsZWN0LFxuICAgICAgICAgICAgdGFiSW5kZXg6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLmRlZmF1bHRQcm9wc1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLyoqXG4gICAqIENsaWNraW5nIG9uIHRoZSBsaXN0Ym94IHNob3VsZCBuZXZlciBibHVyIHRoZSB0cmlnZ2VyXG4gICAqIGluIGEgY29tYm9ib3hcbiAgICovIGNvbnN0IG9uTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcygoZXZlbnQpPT57XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSwgbGlzdGJveFNsb3QgPT09IG51bGwgfHwgbGlzdGJveFNsb3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxpc3Rib3hTbG90Lm9uTW91c2VEb3duKSk7XG4gICAgY29uc3Qgb25DbGljayA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3MoKGV2ZW50KT0+e1xuICAgICAgICB2YXIgX3RyaWdnZXJSZWZfY3VycmVudDtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgKF90cmlnZ2VyUmVmX2N1cnJlbnQgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF90cmlnZ2VyUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmlnZ2VyUmVmX2N1cnJlbnQuZm9jdXMoKTtcbiAgICB9LCBsaXN0Ym94U2xvdCA9PT0gbnVsbCB8fCBsaXN0Ym94U2xvdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbGlzdGJveFNsb3Qub25DbGljaykpO1xuICAgIGNvbnN0IGxpc3Rib3hSZWYgPSB1c2VNZXJnZWRSZWZzKGxpc3Rib3hTbG90ID09PSBudWxsIHx8IGxpc3Rib3hTbG90ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsaXN0Ym94U2xvdC5yZWYsIHJlZik7XG4gICAgaWYgKGxpc3Rib3hTbG90KSB7XG4gICAgICAgIGxpc3Rib3hTbG90LnJlZiA9IGxpc3Rib3hSZWY7XG4gICAgICAgIGxpc3Rib3hTbG90Lm9uTW91c2VEb3duID0gb25Nb3VzZURvd247XG4gICAgICAgIGxpc3Rib3hTbG90Lm9uQ2xpY2sgPSBvbkNsaWNrO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdGJveFNsb3Q7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZXRLZXlib2FyZE5hdmlnYXRpb24gfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyBtZXJnZUNhbGxiYWNrcywgc2xvdCwgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVyZ2VkUmVmcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgZ2V0RHJvcGRvd25BY3Rpb25Gcm9tS2V5IH0gZnJvbSAnLi4vdXRpbHMvZHJvcGRvd25LZXlBY3Rpb25zJztcbi8qKlxuICogU2hhcmVkIHRyaWdnZXIgYmVoYXZpb3VyIGZvciBjb21ib2JveCBhbmQgZHJvcGRvd25cbiAqIEByZXR1cm5zIHRyaWdnZXIgc2xvdCB3aXRoIGRlc2lyZWQgYmVoYXZpb3VyIGFuZCBwcm9wc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VUcmlnZ2VyU2xvdCh0cmlnZ2VyU2xvdEZyb21Qcm9wLCByZWYsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHN0YXRlOiB7IG9wZW4sIHNldE9wZW4sIHNldEhhc0ZvY3VzIH0sIGRlZmF1bHRQcm9wcywgZWxlbWVudFR5cGUsIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHRyaWdnZXIgPSBzbG90LmFsd2F5cyh0cmlnZ2VyU2xvdEZyb21Qcm9wLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBvcGVuLFxuICAgICAgICAgICAgcm9sZTogJ2NvbWJvYm94JyxcbiAgICAgICAgICAgIC4uLnR5cGVvZiBkZWZhdWx0UHJvcHMgPT09ICdvYmplY3QnICYmIGRlZmF1bHRQcm9wc1xuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZVxuICAgIH0pO1xuICAgIC8vIGhhbmRsZSB0cmlnZ2VyIGZvY3VzL2JsdXJcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHRyaWdnZXIucmVmID0gdXNlTWVyZ2VkUmVmcyh0cmlnZ2VyUmVmLCB0cmlnZ2VyLnJlZiwgcmVmKTtcbiAgICAvLyB0aGUgdHJpZ2dlciBzaG91bGQgb3Blbi9jbG9zZSB0aGUgcG9wdXAgb24gY2xpY2sgb3IgYmx1clxuICAgIHRyaWdnZXIub25CbHVyID0gbWVyZ2VDYWxsYmFja3MoKGV2ZW50KT0+e1xuICAgICAgICBzZXRPcGVuKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgIHNldEhhc0ZvY3VzKGZhbHNlKTtcbiAgICB9LCB0cmlnZ2VyLm9uQmx1cik7XG4gICAgdHJpZ2dlci5vbkZvY3VzID0gbWVyZ2VDYWxsYmFja3MoKGV2ZW50KT0+e1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICBzZXRIYXNGb2N1cyh0cnVlKTtcbiAgICAgICAgfVxuICAgIH0sIHRyaWdnZXIub25Gb2N1cyk7XG4gICAgdHJpZ2dlci5vbkNsaWNrID0gbWVyZ2VDYWxsYmFja3MoKGV2ZW50KT0+e1xuICAgICAgICBzZXRPcGVuKGV2ZW50LCAhb3Blbik7XG4gICAgfSwgdHJpZ2dlci5vbkNsaWNrKTtcbiAgICAvLyBoYW5kbGUgY29tYm9ib3gga2V5Ym9hcmQgaW50ZXJhY3Rpb25cbiAgICB0cmlnZ2VyLm9uS2V5RG93biA9IG1lcmdlQ2FsbGJhY2tzKHVzZVRyaWdnZXJLZXlkb3duKHtcbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIsXG4gICAgICAgIC4uLm9wdGlvbnMuc3RhdGVcbiAgICB9KSwgdHJpZ2dlci5vbktleURvd24pO1xuICAgIHJldHVybiB0cmlnZ2VyO1xufVxuZnVuY3Rpb24gdXNlVHJpZ2dlcktleWRvd24ob3B0aW9ucykge1xuICAgIGNvbnN0IHsgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIsIGdldE9wdGlvbkJ5SWQsIHNldE9wZW4sIHNlbGVjdE9wdGlvbiwgbXVsdGlzZWxlY3QsIG9wZW4gfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZ2V0QWN0aXZlT3B0aW9uID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgY29uc3QgYWN0aXZlT3B0aW9uSWQgPSBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5hY3RpdmUoKTtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZU9wdGlvbklkID8gZ2V0T3B0aW9uQnlJZChhY3RpdmVPcHRpb25JZCkgOiB1bmRlZmluZWQ7XG4gICAgfSwgW1xuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlcixcbiAgICAgICAgZ2V0T3B0aW9uQnlJZFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0ID0gKCk9PntcbiAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuZmlyc3QoKTtcbiAgICB9O1xuICAgIGNvbnN0IGxhc3QgPSAoKT0+e1xuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5sYXN0KCk7XG4gICAgfTtcbiAgICBjb25zdCBuZXh0ID0gKGFjdGl2ZU9wdGlvbik9PntcbiAgICAgICAgaWYgKGFjdGl2ZU9wdGlvbikge1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIubmV4dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuZmlyc3QoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcHJldmlvdXMgPSAoYWN0aXZlT3B0aW9uKT0+e1xuICAgICAgICBpZiAoYWN0aXZlT3B0aW9uKSB7XG4gICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5wcmV2KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5maXJzdCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBwYWdlVXAgPSAoKT0+e1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgMTA7IGkrKyl7XG4gICAgICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlci5wcmV2KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHBhZ2VEb3duID0gKCk9PntcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IDEwOyBpKyspe1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIubmV4dCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBzZXRLZXlib2FyZE5hdmlnYXRpb24gPSB1c2VTZXRLZXlib2FyZE5hdmlnYXRpb24oKTtcbiAgICByZXR1cm4gdXNlRXZlbnRDYWxsYmFjaygoZSk9PntcbiAgICAgICAgY29uc3QgYWN0aW9uID0gZ2V0RHJvcGRvd25BY3Rpb25Gcm9tS2V5KGUsIHtcbiAgICAgICAgICAgIG9wZW4sXG4gICAgICAgICAgICBtdWx0aXNlbGVjdFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgYWN0aXZlT3B0aW9uID0gZ2V0QWN0aXZlT3B0aW9uKCk7XG4gICAgICAgIHN3aXRjaChhY3Rpb24pe1xuICAgICAgICAgICAgY2FzZSAnRmlyc3QnOlxuICAgICAgICAgICAgY2FzZSAnTGFzdCc6XG4gICAgICAgICAgICBjYXNlICdOZXh0JzpcbiAgICAgICAgICAgIGNhc2UgJ1ByZXZpb3VzJzpcbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgICAgICBjYXNlICdPcGVuJzpcbiAgICAgICAgICAgIGNhc2UgJ0Nsb3NlJzpcbiAgICAgICAgICAgIGNhc2UgJ0Nsb3NlU2VsZWN0JzpcbiAgICAgICAgICAgIGNhc2UgJ1NlbGVjdCc6XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHNldEtleWJvYXJkTmF2aWdhdGlvbih0cnVlKTtcbiAgICAgICAgc3dpdGNoKGFjdGlvbil7XG4gICAgICAgICAgICBjYXNlICdGaXJzdCc6XG4gICAgICAgICAgICAgICAgZmlyc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0xhc3QnOlxuICAgICAgICAgICAgICAgIGxhc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ05leHQnOlxuICAgICAgICAgICAgICAgIG5leHQoYWN0aXZlT3B0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1ByZXZpb3VzJzpcbiAgICAgICAgICAgICAgICBwcmV2aW91cyhhY3RpdmVPcHRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgICAgICAgIHBhZ2VEb3duKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgICAgICAgIHBhZ2VVcCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnT3Blbic6XG4gICAgICAgICAgICAgICAgc2V0T3BlbihlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Nsb3NlJzpcbiAgICAgICAgICAgICAgICAvLyBzdG9wIHByb3BhZ2F0aW9uIGZvciBlc2NhcGUga2V5IHRvIGF2b2lkIGRpc21pc3NpbmcgYW55IHBhcmVudCBwb3B1cHNcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQ2xvc2VTZWxlY3QnOlxuICAgICAgICAgICAgICAgICFtdWx0aXNlbGVjdCAmJiAhKGFjdGl2ZU9wdGlvbiA9PT0gbnVsbCB8fCBhY3RpdmVPcHRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZU9wdGlvbi5kaXNhYmxlZCkgJiYgc2V0T3BlbihlLCBmYWxzZSk7XG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAnU2VsZWN0JzpcbiAgICAgICAgICAgICAgICBhY3RpdmVPcHRpb24gJiYgc2VsZWN0T3B0aW9uKGUsIGFjdGl2ZU9wdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgICAgICFtdWx0aXNlbGVjdCAmJiBhY3RpdmVPcHRpb24gJiYgc2VsZWN0T3B0aW9uKGUsIGFjdGl2ZU9wdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2FsbGJhY2tzLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBBcnJvd0xlZnQsIEFycm93UmlnaHQgfSBmcm9tICdAZmx1ZW50dWkva2V5Ym9hcmQta2V5cyc7XG5pbXBvcnQgeyB1c2VUcmlnZ2VyU2xvdCB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZVRyaWdnZXJTbG90JztcbmltcG9ydCB7IGdldERyb3Bkb3duQWN0aW9uRnJvbUtleSB9IGZyb20gJy4uLy4uL3V0aWxzL2Ryb3Bkb3duS2V5QWN0aW9ucyc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogdXNlSW5wdXRUcmlnZ2VyU2xvdCByZXR1cm5zIGEgdHVwbGUgb2YgdHJpZ2dlci9saXN0Ym94IHNob3J0aGFuZCxcbiAqIHdpdGggdGhlIHNlbWFudGljcyBhbmQgZXZlbnQgaGFuZGxlcnMgbmVlZGVkIGZvciB0aGUgQ29tYm9ib3ggYW5kIERyb3Bkb3duIGNvbXBvbmVudHMuXG4gKiBUaGUgZWxlbWVudCB0eXBlIG9mIHRoZSByZWYgc2hvdWxkIGFsd2F5cyBtYXRjaCB0aGUgZWxlbWVudCB0eXBlIHVzZWQgaW4gdGhlIHRyaWdnZXIgc2hvcnRoYW5kLlxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VJbnB1dFRyaWdnZXJTbG90KHRyaWdnZXJGcm9tUHJvcHMsIHJlZiwgb3B0aW9ucykge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgeyBzdGF0ZTogeyBvcGVuLCB2YWx1ZSwgc2VsZWN0T3B0aW9uLCBzZXRWYWx1ZSwgbXVsdGlzZWxlY3QsIHNlbGVjdGVkT3B0aW9ucywgY2xlYXJTZWxlY3Rpb24sIGdldE9wdGlvbkJ5SWQsIHNldE9wZW4gfSwgZnJlZWZvcm0sIGRlZmF1bHRQcm9wcywgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3Qgb25CbHVyID0gKGV2ZW50KT0+e1xuICAgICAgICAvLyBoYW5kbGUgc2VsZWN0aW9uIGFuZCB1cGRhdGluZyB2YWx1ZSBpZiBmcmVlZm9ybSBpcyBmYWxzZVxuICAgICAgICBpZiAoIW9wZW4gJiYgIWZyZWVmb3JtKSB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmFjdGl2ZSgpO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlT3B0aW9uID0gYWN0aXZlT3B0aW9uSWQgPyBnZXRPcHRpb25CeUlkKGFjdGl2ZU9wdGlvbklkKSA6IG51bGw7XG4gICAgICAgICAgICAvLyBzZWxlY3QgbWF0Y2hpbmcgb3B0aW9uLCBpZiB0aGUgdmFsdWUgZnVsbHkgbWF0Y2hlc1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIGFjdGl2ZU9wdGlvbiAmJiB2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gKGFjdGl2ZU9wdGlvbiA9PT0gbnVsbCB8fCBhY3RpdmVPcHRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZU9wdGlvbi50ZXh0LnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0T3B0aW9uKGV2ZW50LCBhY3RpdmVPcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmVzZXQgdHlwZWQgdmFsdWUgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMgd2hpbGUgY29sbGFwc2VkLCB1bmxlc3MgZnJlZWZvcm0gaXMgdHJ1ZVxuICAgICAgICAgICAgc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgZ2V0T3B0aW9uRnJvbUlucHV0ID0gKGlucHV0VmFsdWUpPT57XG4gICAgICAgIGNvbnN0IHNlYXJjaFN0cmluZyA9IGlucHV0VmFsdWUgPT09IG51bGwgfHwgaW5wdXRWYWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5wdXRWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCFzZWFyY2hTdHJpbmcgfHwgc2VhcmNoU3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuYmx1cigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZXIgPSAob3B0aW9uVGV4dCk9Pm9wdGlvblRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFN0cmluZykgPT09IDA7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gYWN0aXZlRGVzY2VuZGFudENvbnRyb2xsZXIuZmluZCgoaWQpPT57XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBnZXRPcHRpb25CeUlkKGlkKTtcbiAgICAgICAgICAgIHJldHVybiAhIW9wdGlvbiAmJiBtYXRjaGVyKG9wdGlvbi50ZXh0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLmJsdXIoKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldE9wdGlvbkJ5SWQobWF0Y2gpO1xuICAgIH07XG4gICAgLy8gdXBkYXRlIHZhbHVlIGFuZCBhY3RpdmUgb3B0aW9uIGJhc2VkIG9uIGlucHV0XG4gICAgY29uc3Qgb25DaGFuZ2UgPSAoZXZlbnQpPT57XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgIC8vIHVwZGF0ZSB1bmNvbnRyb2xsZWQgdmFsdWVcbiAgICAgICAgc2V0VmFsdWUoaW5wdXRWYWx1ZSk7XG4gICAgICAgIC8vIGhhbmRsZSB1cGRhdGluZyBhY3RpdmUgb3B0aW9uIGJhc2VkIG9uIGlucHV0XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gZ2V0T3B0aW9uRnJvbUlucHV0KGlucHV0VmFsdWUpO1xuICAgICAgICAvLyBjbGVhciBzZWxlY3Rpb24gZm9yIHNpbmdsZS1zZWxlY3QgaWYgdGhlIGlucHV0IHZhbHVlIG5vIGxvbmdlciBtYXRjaGVzIHRoZSBzZWxlY3Rpb25cbiAgICAgICAgaWYgKCFtdWx0aXNlbGVjdCAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAxICYmIChpbnB1dFZhbHVlLmxlbmd0aCA8IDEgfHwgIW1hdGNoaW5nT3B0aW9uKSkge1xuICAgICAgICAgICAgY2xlYXJTZWxlY3Rpb24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB0cmlnZ2VyID0gdXNlVHJpZ2dlclNsb3QodHJpZ2dlckZyb21Qcm9wcywgcmVmLCB7XG4gICAgICAgIHN0YXRlOiBvcHRpb25zLnN0YXRlLFxuICAgICAgICBkZWZhdWx0UHJvcHMsXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnaW5wdXQnLFxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlclxuICAgIH0pO1xuICAgIHRyaWdnZXIub25DaGFuZ2UgPSBtZXJnZUNhbGxiYWNrcyh0cmlnZ2VyLm9uQ2hhbmdlLCBvbkNoYW5nZSk7XG4gICAgdHJpZ2dlci5vbkJsdXIgPSBtZXJnZUNhbGxiYWNrcyh0cmlnZ2VyLm9uQmx1ciwgb25CbHVyKTtcbiAgICAvLyBOVkRBIGFuZCBKQVdTIGhhdmUgYnVncyB0aGF0IHN1cHByZXNzIHJlYWRpbmcgdGhlIGlucHV0IHZhbHVlIHRleHQgd2hlbiBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgaXMgc2V0XG4gICAgLy8gVG8gcHJldmVudCB0aGlzLCB3ZSBjbGVhciB0aGUgSFRNTCBhdHRyaWJ1dGUgKGJ1dCBzYXZlIHRoZSBzdGF0ZSkgd2hlbiBhIHVzZXIgcHJlc3NlcyBsZWZ0L3JpZ2h0IGFycm93c1xuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjYzNTkjaXNzdWVjb21tZW50LTEzOTc3NTk4ODhcbiAgICBjb25zdCBbaGlkZUFjdGl2ZURlc2NlbmRhbnQsIHNldEhpZGVBY3RpdmVEZXNjZW5kYW50XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICAvLyBzYXZlIHRoZSB0eXBpbmcgdnMuIG5hdmlnYXRpbmcgb3B0aW9ucyBzdGF0ZSwgYXMgdGhlIHNwYWNlIGtleSBzaG91bGQgYmVoYXZlIGRpZmZlcmVudGx5IGluIGVhY2ggY2FzZVxuICAgIC8vIHdlIGRvIG5vdCB3YW50IHRvIHVwZGF0ZSB0aGUgY29tYm9ib3ggd2hlbiB0aGlzIGNoYW5nZXMsIGp1c3Qgc2F2ZSB0aGUgdmFsdWUgYmV0d2VlbiByZW5kZXJzXG4gICAgY29uc3QgaXNUeXBpbmcgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIC8qKlxuICAgKiBGcmVlZm9ybSBjb21ib2JveCBzaG91bGQgbm90IHNlbGVjdFxuICAgKi8gY29uc3QgZGVmYXVsdE9uS2V5RG93biA9IHRyaWdnZXIub25LZXlEb3duO1xuICAgIGNvbnN0IG9uS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBpZiAoIW9wZW4gJiYgZ2V0RHJvcGRvd25BY3Rpb25Gcm9tS2V5KGV2ZW50KSA9PT0gJ1R5cGUnKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGV2ZW50LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjbGVhciBhY3RpdmVkZXNjZW5kYW50IHdoZW4gbW92aW5nIHRoZSB0ZXh0IGluc2VydGlvbiBjdXJzb3JcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gQXJyb3dMZWZ0IHx8IGV2ZW50LmtleSA9PT0gQXJyb3dSaWdodCkge1xuICAgICAgICAgICAgc2V0SGlkZUFjdGl2ZURlc2NlbmRhbnQodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRIaWRlQWN0aXZlRGVzY2VuZGFudChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdXBkYXRlIHR5cGluZyBzdGF0ZSB0byB0cnVlIGlmIHRoZSB1c2VyIGlzIHR5cGluZ1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBnZXREcm9wZG93bkFjdGlvbkZyb21LZXkoZXZlbnQsIHtcbiAgICAgICAgICAgIG9wZW4sXG4gICAgICAgICAgICBtdWx0aXNlbGVjdFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ1R5cGUnKSB7XG4gICAgICAgICAgICBpc1R5cGluZy5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdPcGVuJyAmJiBldmVudC5rZXkgIT09ICcgJyB8fCBhY3Rpb24gPT09ICdOZXh0JyB8fCBhY3Rpb24gPT09ICdQcmV2aW91cycgfHwgYWN0aW9uID09PSAnRmlyc3QnIHx8IGFjdGlvbiA9PT0gJ0xhc3QnIHx8IGFjdGlvbiA9PT0gJ1BhZ2VVcCcgfHwgYWN0aW9uID09PSAnUGFnZURvd24nKSB7XG4gICAgICAgICAgICBpc1R5cGluZy5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYWxsb3cgc3BhY2UgdG8gaW5zZXJ0IGEgY2hhcmFjdGVyIGlmIGZyZWVmb3JtICYgdGhlIGxhc3QgYWN0aW9uIHdhcyB0eXBpbmcsIG9yIGlmIHRoZSBwb3B1cCBpcyBjbG9zZWRcbiAgICAgICAgaWYgKChpc1R5cGluZy5jdXJyZW50IHx8ICFvcGVuKSAmJiBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICAgICAgdmFyIF90cmlnZ2VyRnJvbVByb3BzX29uS2V5RG93bjtcbiAgICAgICAgICAgIHRyaWdnZXJGcm9tUHJvcHMgPT09IG51bGwgfHwgdHJpZ2dlckZyb21Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF90cmlnZ2VyRnJvbVByb3BzX29uS2V5RG93biA9IHRyaWdnZXJGcm9tUHJvcHMub25LZXlEb3duKSA9PT0gbnVsbCB8fCBfdHJpZ2dlckZyb21Qcm9wc19vbktleURvd24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmlnZ2VyRnJvbVByb3BzX29uS2V5RG93bi5jYWxsKHRyaWdnZXJGcm9tUHJvcHMsIGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0T25LZXlEb3duID09PSBudWxsIHx8IGRlZmF1bHRPbktleURvd24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlZmF1bHRPbktleURvd24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRyaWdnZXIub25LZXlEb3duID0gb25LZXlEb3duO1xuICAgIGlmIChoaWRlQWN0aXZlRGVzY2VuZGFudCkge1xuICAgICAgICB0cmlnZ2VyWydhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnXSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRyaWdnZXI7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBY3RpdmVEZXNjZW5kYW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgdXNlRmllbGRDb250cm9sUHJvcHNfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtZmllbGQnO1xuaW1wb3J0IHsgQ2hldnJvbkRvd25SZWd1bGFyIGFzIENoZXZyb25Eb3duSWNvbiwgRGlzbWlzc1JlZ3VsYXIgYXMgRGlzbWlzc0ljb24gfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgZ2V0UGFydGl0aW9uZWROYXRpdmVQcm9wcywgbWVyZ2VDYWxsYmFja3MsIHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUlkLCB1c2VNZXJnZWRSZWZzLCBzbG90LCB1c2VPbkNsaWNrT3V0c2lkZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlQ29tYm9ib3hCYXNlU3RhdGUgfSBmcm9tICcuLi8uLi91dGlscy91c2VDb21ib2JveEJhc2VTdGF0ZSc7XG5pbXBvcnQgeyB1c2VDb21ib2JveFBvc2l0aW9uaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlQ29tYm9ib3hQb3NpdGlvbmluZyc7XG5pbXBvcnQgeyBMaXN0Ym94IH0gZnJvbSAnLi4vTGlzdGJveC9MaXN0Ym94JztcbmltcG9ydCB7IHVzZUxpc3Rib3hTbG90IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlTGlzdGJveFNsb3QnO1xuaW1wb3J0IHsgdXNlSW5wdXRUcmlnZ2VyU2xvdCB9IGZyb20gJy4vdXNlSW5wdXRUcmlnZ2VyU2xvdCc7XG5pbXBvcnQgeyBvcHRpb25DbGFzc05hbWVzIH0gZnJvbSAnLi4vT3B0aW9uL3VzZU9wdGlvblN0eWxlcy5zdHlsZXMnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBDb21ib2JveC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VDb21ib2JveFN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyQ29tYm9ib3hfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIENvbWJvYm94XG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgQ29tYm9ib3hcbiAqLyBleHBvcnQgY29uc3QgdXNlQ29tYm9ib3hfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIHZhciBfc3RhdGVfY2xlYXJJY29uLCBfc3RhdGVfY2xlYXJJY29uMTtcbiAgICAvLyBNZXJnZSBwcm9wcyBmcm9tIHN1cnJvdW5kaW5nIDxGaWVsZD4sIGlmIGFueVxuICAgIHByb3BzID0gdXNlRmllbGRDb250cm9sUHJvcHNfdW5zdGFibGUocHJvcHMsIHtcbiAgICAgICAgc3VwcG9ydHNMYWJlbEZvcjogdHJ1ZSxcbiAgICAgICAgc3VwcG9ydHNSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgc3VwcG9ydHNTaXplOiB0cnVlXG4gICAgfSk7XG4gICAgY29uc3QgeyBsaXN0Ym94UmVmOiBhY3RpdmVEZXNjZW5kYW50TGlzdGJveFJlZiwgYWN0aXZlUGFyZW50UmVmLCBjb250cm9sbGVyOiBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlciB9ID0gdXNlQWN0aXZlRGVzY2VuZGFudCh7XG4gICAgICAgIG1hdGNoT3B0aW9uOiAoZWwpPT5lbC5jbGFzc0xpc3QuY29udGFpbnMob3B0aW9uQ2xhc3NOYW1lcy5yb290KVxuICAgIH0pO1xuICAgIGNvbnN0IGJhc2VTdGF0ZSA9IHVzZUNvbWJvYm94QmFzZVN0YXRlKHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlclxuICAgIH0pO1xuICAgIGNvbnN0IHsgY2xlYXJhYmxlLCBjbGVhclNlbGVjdGlvbiwgZGlzYWJsZWQsIG11bHRpc2VsZWN0LCBvcGVuLCBzZWxlY3RlZE9wdGlvbnMsIHNldE9wZW4sIHZhbHVlLCBoYXNGb2N1cyB9ID0gYmFzZVN0YXRlO1xuICAgIGNvbnN0IFtjb21ib2JveFBvcHVwUmVmLCBjb21ib2JveFRhcmdldFJlZl0gPSB1c2VDb21ib2JveFBvc2l0aW9uaW5nKHByb3BzKTtcbiAgICBjb25zdCB7IGRpc2FibGVBdXRvRm9jdXMgPSBmYWxzZSwgZnJlZWZvcm0sIGlubGluZVBvcHVwIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb21ib0lkID0gdXNlSWQoJ2NvbWJvYm94LScpO1xuICAgIGNvbnN0IHsgcHJpbWFyeTogdHJpZ2dlck5hdGl2ZVByb3BzLCByb290OiByb290TmF0aXZlUHJvcHMgfSA9IGdldFBhcnRpdGlvbmVkTmF0aXZlUHJvcHMoe1xuICAgICAgICBwcm9wcyxcbiAgICAgICAgcHJpbWFyeVNsb3RUYWdOYW1lOiAnaW5wdXQnLFxuICAgICAgICBleGNsdWRlZFByb3BOYW1lczogW1xuICAgICAgICAgICAgJ2NoaWxkcmVuJyxcbiAgICAgICAgICAgICdzaXplJ1xuICAgICAgICBdXG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBsaXN0Ym94ID0gdXNlTGlzdGJveFNsb3QocHJvcHMubGlzdGJveCwgdXNlTWVyZ2VkUmVmcyhjb21ib2JveFBvcHVwUmVmLCBhY3RpdmVEZXNjZW5kYW50TGlzdGJveFJlZiksIHtcbiAgICAgICAgc3RhdGU6IGJhc2VTdGF0ZSxcbiAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzXG4gICAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgX3Byb3BzX2lucHV0O1xuICAgIGNvbnN0IHRyaWdnZXJTbG90ID0gdXNlSW5wdXRUcmlnZ2VyU2xvdCgoX3Byb3BzX2lucHV0ID0gcHJvcHMuaW5wdXQpICE9PSBudWxsICYmIF9wcm9wc19pbnB1dCAhPT0gdm9pZCAwID8gX3Byb3BzX2lucHV0IDoge30sIHVzZU1lcmdlZFJlZnModHJpZ2dlclJlZiwgYWN0aXZlUGFyZW50UmVmLCByZWYpLCB7XG4gICAgICAgIHN0YXRlOiBiYXNlU3RhdGUsXG4gICAgICAgIGZyZWVmb3JtLFxuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwID8gdmFsdWUgOiAnJyxcbiAgICAgICAgICAgICdhcmlhLWNvbnRyb2xzJzogb3BlbiA/IGxpc3Rib3ggPT09IG51bGwgfHwgbGlzdGJveCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbGlzdGJveC5pZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLnRyaWdnZXJOYXRpdmVQcm9wc1xuICAgICAgICB9LFxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50Q29udHJvbGxlclxuICAgIH0pO1xuICAgIGNvbnN0IHJvb3RTbG90ID0gc2xvdC5hbHdheXMocHJvcHMucm9vdCwge1xuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICdhcmlhLW93bnMnOiAhaW5saW5lUG9wdXAgJiYgb3BlbiA/IGxpc3Rib3ggPT09IG51bGwgfHwgbGlzdGJveCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbGlzdGJveC5pZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLnJvb3ROYXRpdmVQcm9wc1xuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICB9KTtcbiAgICByb290U2xvdC5yZWYgPSB1c2VNZXJnZWRSZWZzKHJvb3RTbG90LnJlZiwgY29tYm9ib3hUYXJnZXRSZWYpO1xuICAgIGNvbnN0IHNob3dDbGVhckljb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCAmJiBjbGVhcmFibGUgJiYgIW11bHRpc2VsZWN0O1xuICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnZGl2JyxcbiAgICAgICAgICAgIGlucHV0OiAnaW5wdXQnLFxuICAgICAgICAgICAgZXhwYW5kSWNvbjogJ3NwYW4nLFxuICAgICAgICAgICAgbGlzdGJveDogTGlzdGJveCxcbiAgICAgICAgICAgIGNsZWFySWNvbjogJ3NwYW4nXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHJvb3RTbG90LFxuICAgICAgICBpbnB1dDogdHJpZ2dlclNsb3QsXG4gICAgICAgIGxpc3Rib3g6IG9wZW4gfHwgaGFzRm9jdXMgPyBsaXN0Ym94IDogdW5kZWZpbmVkLFxuICAgICAgICBjbGVhckljb246IHNsb3Qub3B0aW9uYWwocHJvcHMuY2xlYXJJY29uLCB7XG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiAndHJ1ZScsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChEaXNtaXNzSWNvbiwgbnVsbClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nLFxuICAgICAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlXG4gICAgICAgIH0pLFxuICAgICAgICBleHBhbmRJY29uOiBzbG90Lm9wdGlvbmFsKHByb3BzLmV4cGFuZEljb24sIHtcbiAgICAgICAgICAgIHJlbmRlckJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgICdhcmlhLWRpc2FibGVkJzogZGlzYWJsZWQgPyAndHJ1ZScgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBvcGVuLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvbkRvd25JY29uLCBudWxsKSxcbiAgICAgICAgICAgICAgICByb2xlOiAnYnV0dG9uJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSksXG4gICAgICAgIHNob3dDbGVhckljb24sXG4gICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyLFxuICAgICAgICAuLi5iYXNlU3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IHsgdGFyZ2V0RG9jdW1lbnQgfSA9IHVzZUZsdWVudCgpO1xuICAgIHVzZU9uQ2xpY2tPdXRzaWRlKHtcbiAgICAgICAgZWxlbWVudDogdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGNhbGxiYWNrOiAoZXZlbnQpPT5zZXRPcGVuKGV2ZW50LCBmYWxzZSksXG4gICAgICAgIHJlZnM6IFtcbiAgICAgICAgICAgIHRyaWdnZXJSZWYsXG4gICAgICAgICAgICBjb21ib2JveFBvcHVwUmVmLFxuICAgICAgICAgICAgY29tYm9ib3hUYXJnZXRSZWZcbiAgICAgICAgXSxcbiAgICAgICAgZGlzYWJsZWQ6ICFvcGVuXG4gICAgfSk7XG4gICAgLyogaGFuZGxlIG9wZW4vY2xvc2UgKyBmb2N1cyBjaGFuZ2Ugd2hlbiBjbGlja2luZyBleHBhbmRJY29uICovIGNvbnN0IHsgb25Nb3VzZURvd246IG9uSWNvbk1vdXNlRG93biB9ID0gc3RhdGUuZXhwYW5kSWNvbiB8fCB7fTtcbiAgICBjb25zdCBvbkV4cGFuZEljb25Nb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKG9uSWNvbk1vdXNlRG93biwgKGV2ZW50KT0+e1xuICAgICAgICB2YXIgX3RyaWdnZXJSZWZfY3VycmVudDtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3RhdGUuc2V0T3BlbihldmVudCwgIXN0YXRlLm9wZW4pO1xuICAgICAgICAoX3RyaWdnZXJSZWZfY3VycmVudCA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3RyaWdnZXJSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RyaWdnZXJSZWZfY3VycmVudC5mb2N1cygpO1xuICAgIH0pKTtcbiAgICBpZiAoc3RhdGUuZXhwYW5kSWNvbikge1xuICAgICAgICBzdGF0ZS5leHBhbmRJY29uLm9uTW91c2VEb3duID0gb25FeHBhbmRJY29uTW91c2VEb3duO1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBleHBsaWNpdCBhcmlhLWxhYmVsLCBjYWxjdWxhdGUgZGVmYXVsdCBhY2NOYW1lIGF0dHJpYnV0ZSBmb3IgZXhwYW5kSWNvbiBidXR0b24sXG4gICAgICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4gICAgICAgIC8vIDEuIElmIHRoZXJlIGlzIGFuIGFyaWEtbGFiZWwsIGl0IGlzIFwiT3BlbiBbYXJpYS1sYWJlbF1cIlxuICAgICAgICAvLyAyLiBJZiB0aGVyZSBpcyBhbiBhcmlhLWxhYmVsbGVkYnksIGl0IGlzIFwiT3BlbiBbYXJpYS1sYWJlbGxlZGJ5IHRhcmdldF1cIiAodXNpbmcgYXJpYS1sYWJlbGxlZGJ5ICsgaWRzKVxuICAgICAgICAvLyAzLiBJZiB0aGVyZSBpcyBubyBhcmlhLWxhYmVsL2xlZGJ5IGF0dHIsIGl0IGZhbGxzIGJhY2sgdG8gXCJPcGVuXCJcbiAgICAgICAgLy8gV2UgY2FuJ3QgZmFsbCBiYWNrIHRvIGEgbGFiZWwvaHRtbEZvciBuYW1lIGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL3czYy9hY2NuYW1lL2lzc3Vlcy8xNzlcbiAgICAgICAgY29uc3QgaGFzRXhwYW5kTGFiZWwgPSBzdGF0ZS5leHBhbmRJY29uWydhcmlhLWxhYmVsJ10gfHwgc3RhdGUuZXhwYW5kSWNvblsnYXJpYS1sYWJlbGxlZGJ5J107XG4gICAgICAgIGNvbnN0IGRlZmF1bHRPcGVuU3RyaW5nID0gJ09wZW4nOyAvLyB0aGlzIGlzIGVuZ2xpc2gtb25seSBzaW5jZSBpdCBpcyB0aGUgZmFsbGJhY2tcbiAgICAgICAgaWYgKCFoYXNFeHBhbmRMYWJlbCkge1xuICAgICAgICAgICAgaWYgKHByb3BzWydhcmlhLWxhYmVsbGVkYnknXSkge1xuICAgICAgICAgICAgICAgIHZhciBfc3RhdGVfZXhwYW5kSWNvbl9pZDtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGV2cm9uSWQgPSAoX3N0YXRlX2V4cGFuZEljb25faWQgPSBzdGF0ZS5leHBhbmRJY29uLmlkKSAhPT0gbnVsbCAmJiBfc3RhdGVfZXhwYW5kSWNvbl9pZCAhPT0gdm9pZCAwID8gX3N0YXRlX2V4cGFuZEljb25faWQgOiBgJHtjb21ib0lkfS1jaGV2cm9uYDtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGV2cm9uTGFiZWxsZWRCeSA9IGAke2NoZXZyb25JZH0gJHtzdGF0ZS5pbnB1dFsnYXJpYS1sYWJlbGxlZGJ5J119YDtcbiAgICAgICAgICAgICAgICBzdGF0ZS5leHBhbmRJY29uWydhcmlhLWxhYmVsJ10gPSBkZWZhdWx0T3BlblN0cmluZztcbiAgICAgICAgICAgICAgICBzdGF0ZS5leHBhbmRJY29uLmlkID0gY2hldnJvbklkO1xuICAgICAgICAgICAgICAgIHN0YXRlLmV4cGFuZEljb25bJ2FyaWEtbGFiZWxsZWRieSddID0gY2hldnJvbkxhYmVsbGVkQnk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzWydhcmlhLWxhYmVsJ10pIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5leHBhbmRJY29uWydhcmlhLWxhYmVsJ10gPSBgJHtkZWZhdWx0T3BlblN0cmluZ30gJHtwcm9wc1snYXJpYS1sYWJlbCddfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0YXRlLmV4cGFuZEljb25bJ2FyaWEtbGFiZWwnXSA9IGRlZmF1bHRPcGVuU3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG9uQ2xlYXJJY29uTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcygoX3N0YXRlX2NsZWFySWNvbiA9IHN0YXRlLmNsZWFySWNvbikgPT09IG51bGwgfHwgX3N0YXRlX2NsZWFySWNvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3N0YXRlX2NsZWFySWNvbi5vbk1vdXNlRG93biwgKGV2KT0+e1xuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0pKTtcbiAgICBjb25zdCBvbkNsZWFySWNvbkNsaWNrID0gdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcygoX3N0YXRlX2NsZWFySWNvbjEgPSBzdGF0ZS5jbGVhckljb24pID09PSBudWxsIHx8IF9zdGF0ZV9jbGVhckljb24xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc3RhdGVfY2xlYXJJY29uMS5vbkNsaWNrLCAoZXYpPT57XG4gICAgICAgIGNsZWFyU2VsZWN0aW9uKGV2KTtcbiAgICB9KSk7XG4gICAgaWYgKHN0YXRlLmNsZWFySWNvbikge1xuICAgICAgICBzdGF0ZS5jbGVhckljb24ub25Nb3VzZURvd24gPSBvbkNsZWFySWNvbk1vdXNlRG93bjtcbiAgICAgICAgc3RhdGUuY2xlYXJJY29uLm9uQ2xpY2sgPSBvbkNsZWFySWNvbkNsaWNrO1xuICAgIH1cbiAgICAvLyBIZWFkcyB1cCEgV2UgZG9uJ3Qgc3VwcG9ydCBcImNsZWFyYWJsZVwiIGluIG11bHRpc2VsZWN0IG1vZGUsIHNvIHdlIHNob3VsZCBuZXZlciBkaXNwbGF5IGEgc2xvdFxuICAgIGlmIChtdWx0aXNlbGVjdCkge1xuICAgICAgICBzdGF0ZS5jbGVhckljb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rcyAtLSBcInByb2Nlc3MuZW52XCIgZG9lcyBub3QgY2hhbmdlIGluIHJ1bnRpbWVcbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICBpZiAoY2xlYXJhYmxlICYmIG11bHRpc2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbQGZsdWVudHVpL3JlYWN0LWNvbWJvYm94XSBcImNsZWFyYWJsZVwiIHByb3AgaXMgbm90IHN1cHBvcnRlZCBpbiBtdWx0aXNlbGVjdCBtb2RlLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXG4gICAgICAgICAgICBjbGVhcmFibGUsXG4gICAgICAgICAgICBtdWx0aXNlbGVjdFxuICAgICAgICBdKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0UHJvdmlkZXIgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtYXJpYSc7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dHMvQ29tYm9ib3hDb250ZXh0JztcbmltcG9ydCB7IExpc3Rib3hQcm92aWRlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0xpc3Rib3hDb250ZXh0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgQ29tYm9ib3hcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyQ29tYm9ib3hfdW5zdGFibGUgPSAoc3RhdGUsIGNvbnRleHRWYWx1ZXMpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KEFjdGl2ZURlc2NlbmRhbnRDb250ZXh0UHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmFjdGl2ZURlc2NlbmRhbnQsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KExpc3Rib3hQcm92aWRlciwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmxpc3Rib3gsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeHMoQ29tYm9ib3hDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmNvbWJvYm94LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmlucHV0LCB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jbGVhckljb24gJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmNsZWFySWNvbiwge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuZXhwYW5kSWNvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuZXhwYW5kSWNvbiwge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUubGlzdGJveCAmJiAoc3RhdGUuaW5saW5lUG9wdXAgPyAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubGlzdGJveCwge30pIDogLyojX19QVVJFX18qLyBfanN4KFBvcnRhbCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdW50Tm9kZTogc3RhdGUubW91bnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubGlzdGJveCwge30pXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IHRva2VucywgdHlwb2dyYXBoeVN0eWxlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzLCBzaG9ydGhhbmRzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgaWNvblNpemVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJuYWxUb2tlbnMnO1xuZXhwb3J0IGNvbnN0IGNvbWJvYm94Q2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1Db21ib2JveCcsXG4gIGlucHV0OiAnZnVpLUNvbWJvYm94X19pbnB1dCcsXG4gIGV4cGFuZEljb246ICdmdWktQ29tYm9ib3hfX2V4cGFuZEljb24nLFxuICBjbGVhckljb246ICdmdWktQ29tYm9ib3hfX2NsZWFySWNvbicsXG4gIGxpc3Rib3g6ICdmdWktQ29tYm9ib3hfX2xpc3Rib3gnXG59O1xuLy8gTWF0Y2hlcyBpbnRlcm5hbCBoZWlnaHRzIGZvciBTZWxlY3QgYW5kIElucHV0LCBidXQgdGhlcmUgYXJlIG5vIHRoZW1lIHZhcmlhYmxlcyBmb3IgdGhlc2VcbmNvbnN0IGZpZWxkSGVpZ2h0cyA9IHtcbiAgc21hbGw6ICcyNHB4JyxcbiAgbWVkaXVtOiAnMzJweCcsXG4gIGxhcmdlOiAnNDBweCdcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgQ29tYm9ib3hcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZ0ODVucDVcIixcbiAgICBCN2NrODRkOiBcImYxZXd0cWNsXCIsXG4gICAgaThra3ZsOiBcImYxNG1qNTRjXCIsXG4gICAgbWM5bDV4OiBcImZ3azNuampcIixcbiAgICBCdWRsMWRxOiBcImZ6MTd4OW9cIixcbiAgICBCcmYxcDgwOiBcImYxODY5YnBsXCIsXG4gICAgQmY0amVkazogXCJmMWV4ZnZncVwiLFxuICAgIHFoZjh4cTogXCJmMTBwaTEzblwiLFxuICAgIGhhNGRveTogXCJmbXJ2NGxzXCIsXG4gICAgQmJyMncxcDogXCJmMTRhMWZ4c1wiLFxuICAgIEJkdWVzZjQ6IFwiZjNlOTlndlwiLFxuICAgIEJwcTc5dm46IFwiZmhsanNmN1wiLFxuICAgIGxpMXJwdDogXCJmMWd3M3NmMlwiLFxuICAgIEJzZnQ1ejI6IFwiZjEzemo2ZnFcIixcbiAgICBFM3pkdHI6IFwiZjFtZGxjejlcIixcbiAgICBFcXg4Z2Q6IFtcImYxYTdvcDNcIiwgXCJmMWNqamQ0N1wiXSxcbiAgICBCeTM4NWk1OiBcImYxZ2JvaTJqXCIsXG4gICAgQjFwaWluMzogW1wiZjFjampkNDdcIiwgXCJmMWE3b3AzXCJdLFxuICAgIERsbnNqZTogXCJmMTQ1ZzRkd1wiLFxuICAgIGQ5dzNoMzogW1wiZjFrcDkxdmRcIiwgXCJmMWlid3owOVwiXSxcbiAgICBCMzc3OGllOiBbXCJmMWlid3owOVwiLCBcImYxa3A5MXZkXCJdLFxuICAgIEIxcTM1a3c6IDAsXG4gICAgQncxN2JoYTogMCxcbiAgICBCY2d5OHZrOiAwLFxuICAgIEJqdWhrOTM6IFwiZjFtbmp5ZHhcIixcbiAgICBHamRtN206IFwiZjEzZXZ0YmFcIixcbiAgICBiMWtjbzU6IFwiZjF5azlocVwiLFxuICAgIEJhMnBwaTM6IFwiZmh3cHk3aVwiLFxuICAgIEYyZm9sMTogXCJmMTRlZTB4ZVwiLFxuICAgIGxjazIzZzogXCJmMXhoYnN1aFwiLFxuICAgIGRmOTJjejogXCJmdjhlM3llXCIsXG4gICAgSTE4OG1kOiBcImZ0YjV3YzZcIixcbiAgICB1bXV3aTU6IFwiZmp3NXhjMVwiLFxuICAgIEJsY3FlcGQ6IFwiZjF4ZHlkNWNcIixcbiAgICBucGx1NHU6IFwiZmF0cGJlb1wiLFxuICAgIEJpb2thNW86IFwiZmI3dXlwc1wiLFxuICAgIEg3MTNmczogXCJmMWNtZnQ0a1wiLFxuICAgIEI5b29vbWc6IFwiZjF4NTh0OG9cIixcbiAgICBCZXJjdnVkOiBcImYxaWJlbzUxXCJcbiAgfSxcbiAgbGlzdGJveDoge1xuICAgIEU1cGl6bzogXCJmMWhnOTAxclwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZ0ODVucDVcIixcbiAgICBCeHl4Y2JjOiBcImZtbWs2MmRcIixcbiAgICBCN2NrODRkOiBcImYxZXd0cWNsXCJcbiAgfSxcbiAgbGlzdGJveENvbGxhcHNlZDoge1xuICAgIG1jOWw1eDogXCJmanNlb3hcIlxuICB9LFxuICBpbmxpbmVMaXN0Ym94OiB7XG4gICAgQmozcmgxaDogXCJmMTlnMGFjXCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBCcWVudmlqOiBcImZydmdoNTVcIixcbiAgICB6MTg5c2o6IFtcImZkdzB5aThcIiwgXCJmazhqMDlzXCJdXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJxZW52aWo6IFwiZjFkMnJxMTBcIixcbiAgICB6MTg5c2o6IFtcImYxMWdjeTBwXCIsIFwiZjFuZzg0eWJcIl1cbiAgfSxcbiAgbGFyZ2U6IHtcbiAgICBpOGtrdmw6IFwiZjFyamlpNTJcIixcbiAgICBCcWVudmlqOiBcImZiaG5vYWNcIixcbiAgICB6MTg5c2o6IFtcImZ3NWRiN2VcIiwgXCJmMXV3NTl0b1wiXVxuICB9LFxuICBvdXRsaW5lOiB7XG4gICAgRGUzcHpxOiBcImZ4dWd3NHJcIixcbiAgICBCZ2ZnNWRhOiAwLFxuICAgIEI5eGF2MGc6IFwiZjFjMXpzdGpcIixcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiAwLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZmh6OTZybVwiXG4gIH0sXG4gIG91dGxpbmVJbnRlcmFjdGl2ZToge1xuICAgIEJnb2U4d3k6IFwiZnZjeG9xelwiLFxuICAgIEJ3enBwZmQ6IFtcImYxdWIzeTR0XCIsIFwiZjFtNTJuYmlcIl0sXG4gICAgb2V0dTRpOiBcImZsbXc2M3NcIixcbiAgICBnZzVlOW46IFtcImYxbTUybmJpXCIsIFwiZjF1YjN5NHRcIl0sXG4gICAgQjZvYzl2ZDogXCJmdnMwMGFhXCIsXG4gICAgYWs0M3k4OiBbXCJmMWFzc2Y2eFwiLCBcImY0cnV1eDRcIl0sXG4gICAgd214azVsOiBcImZxaG10NHpcIixcbiAgICBCNTB6aDU4OiBbXCJmNHJ1dXg0XCIsIFwiZjFhc3NmNnhcIl1cbiAgfSxcbiAgdW5kZXJsaW5lOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCZ2ZnNWRhOiBcImY5ZXo3bmVcIixcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmb2tyNzc5XCJcbiAgfSxcbiAgXCJmaWxsZWQtbGlnaHRlclwiOiB7XG4gICAgRGUzcHpxOiBcImZ4dWd3NHJcIixcbiAgICBCZ2ZnNWRhOiAwLFxuICAgIEI5eGF2MGc6IDAsXG4gICAgb2l2andlOiAwLFxuICAgIEJuMHFnem06IDAsXG4gICAgQjRnOW5lYjogMCxcbiAgICB6aGp3eTM6IDAsXG4gICAgd3ZwcWU1OiAwLFxuICAgIGlidjZoaDogMCxcbiAgICB1MW10anU6IDAsXG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIGk4dnZxYzogMCxcbiAgICBnMnUzd2U6IDAsXG4gICAgaWN2eW90OiAwLFxuICAgIEI0ajUyZm86IDAsXG4gICAgaXJzd3BzOiBcImY4ODAzNXdcIlxuICB9LFxuICBcImZpbGxlZC1kYXJrZXJcIjoge1xuICAgIERlM3B6cTogXCJmMTZ4cTdkMVwiLFxuICAgIEJnZmc1ZGE6IDAsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiAwLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZjg4MDM1d1wiXG4gIH0sXG4gIGludmFsaWQ6IHtcbiAgICB0dmNrd3E6IFwiZnM0azNxalwiLFxuICAgIGdrMnU5NTogW1wiZmNlZTA3OVwiLCBcImZteXc3OHJcIl0sXG4gICAgaGh4NjVqOiBcImYxZmdteWY0XCIsXG4gICAgQnhvd216MDogW1wiZm15dzc4clwiLCBcImZjZWUwNzlcIl1cbiAgfSxcbiAgaW52YWxpZFVuZGVybGluZToge1xuICAgIGhoeDY1ajogXCJmMWZnbXlmNFwiXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgQmNlZWk5YzogXCJmZHJ6dXFyXCIsXG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgZzJ1M3dlOiBcImYxamo4ZXAxXCIsXG4gICAgaDNjNXJtOiBbXCJmMTV4YmF1XCIsIFwiZnkwZnNrbFwiXSxcbiAgICBCOXhhdjBnOiBcImY0aWtuZ3pcIixcbiAgICB6aGp3eTM6IFtcImZ5MGZza2xcIiwgXCJmMTV4YmF1XCJdLFxuICAgIEJqd2FzMmY6IFwiZmc0NTV5OVwiLFxuICAgIEJuMWQ2NXE6IFtcImYxcnZ5dnFnXCIsIFwiZjE0Zzg2bXVcIl0sXG4gICAgQnhldWF0bjogXCJmMWN3end6XCIsXG4gICAgbjUxZ3A4OiBbXCJmMTRnODZtdVwiLCBcImYxcnZ5dnFnXCJdXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIiwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBcIi5mMTRtajU0Y3tjb2x1bW4tZ2FwOnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCIsIFwiLmZ3azNuamp7ZGlzcGxheTppbmxpbmUtZ3JpZDt9XCIsIFwiLmZ6MTd4OW97Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciBhdXRvO31cIiwgXCIuZjE4NjlicGx7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fVwiLCBcIi5mMWV4ZnZncXttaW4td2lkdGg6MjUwcHg7fVwiLCBcIi5mMTBwaTEzbntwb3NpdGlvbjpyZWxhdGl2ZTt9XCIsIFwiLmZtcnY0bHN7dmVydGljYWwtYWxpZ246bWlkZGxlO31cIiwgXCIuZjFndzNzZjI6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XCIsIFwiLmYxM3pqNmZxOjphZnRlcntjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZjFtZGxjejk6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjFhN29wMzo6YWZ0ZXJ7bGVmdDotMXB4O31cIiwgXCIuZjFjampkNDc6OmFmdGVye3JpZ2h0Oi0xcHg7fVwiLCBcIi5mMWdib2kyajo6YWZ0ZXJ7Ym90dG9tOi0xcHg7fVwiLCBcIi5mMTQ1ZzRkdzo6YWZ0ZXJ7aGVpZ2h0Om1heCgycHgsIHZhcigtLWJvcmRlclJhZGl1c01lZGl1bSkpO31cIiwgXCIuZjFrcDkxdmQ6OmFmdGVye2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIFwiLmYxaWJ3ejA5OjphZnRlcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwgW1wiLmYxbW5qeWR4OjphZnRlcntib3JkZXItYm90dG9tOnZhcigtLXN0cm9rZVdpZHRoVGhpY2spIHNvbGlkIHZhcigtLWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxM2V2dGJhOjphZnRlcntjbGlwLXBhdGg6aW5zZXQoY2FsYygxMDAlIC0gMnB4KSAwIDAgMCk7fVwiLCBcIi5mMXlrOWhxOjphZnRlcnt0cmFuc2Zvcm06c2NhbGVYKDApO31cIiwgXCIuZmh3cHk3aTo6YWZ0ZXJ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07fVwiLCBcIi5mMTRlZTB4ZTo6YWZ0ZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvblVsdHJhRmFzdCk7fVwiLCBcIi5mMXhoYnN1aDo6YWZ0ZXJ7dHJhbnNpdGlvbi1kZWxheTp2YXIoLS1jdXJ2ZUFjY2VsZXJhdGVNaWQpO31cIiwgXCIuZjFoZzkwMXJ7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cxNik7fVwiLCBbXCIuZnQ4NW5wNXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZtbWs2MmR7bWF4LWhlaWdodDo4MHZoO31cIiwgXCIuZmpzZW94e2Rpc3BsYXk6bm9uZTt9XCIsIFwiLmYxOWcwYWN7ei1pbmRleDoxO31cIiwgXCIuZnJ2Z2g1NXtoZWlnaHQ6MjRweDt9XCIsIFwiLmZkdzB5aTh7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCBcIi5mazhqMDlze3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCBcIi5mMWQycnExMHtoZWlnaHQ6MzJweDt9XCIsIFwiLmYxMWdjeTBwe3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpO31cIiwgXCIuZjFuZzg0eWJ7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTU51ZGdlKTt9XCIsIFwiLmYxcmppaTUye2NvbHVtbi1nYXA6dmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpO31cIiwgXCIuZmJobm9hY3toZWlnaHQ6NDBweDt9XCIsIFwiLmZ3NWRiN2V7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pO31cIiwgXCIuZjF1dzU5dG97cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSk7fVwiLCBcIi5meHVndzRye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpO31cIiwgW1wiLmZoejk2cm17Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7fVwiLCB7XG4gICAgcDogLTJcbiAgfV0sIFwiLmYxYzF6c3Rqe2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZSk7fVwiLCBcIi5mMWMyMWR3aHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFtcIi5mOWV6N25le2JvcmRlci1ib3R0b206dmFyKC0tc3Ryb2tlV2lkdGhUaGluKSBzb2xpZCB2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmZva3I3Nzl7Ym9yZGVyLXJhZGl1czowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjg4MDM1d3tib3JkZXI6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKSBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgXCIuZjE2eHE3ZDF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMyk7fVwiLCBbXCIuZjg4MDM1d3tib3JkZXI6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKSBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgXCIuZnM0azNxajpub3QoOmZvY3VzLXdpdGhpbiksLmZzNGszcWo6aG92ZXI6bm90KDpmb2N1cy13aXRoaW4pe2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlUmVkQm9yZGVyMik7fVwiLCBcIi5mY2VlMDc5Om5vdCg6Zm9jdXMtd2l0aGluKSwuZmNlZTA3OTpob3Zlcjpub3QoOmZvY3VzLXdpdGhpbil7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVJlZEJvcmRlcjIpO31cIiwgXCIuZm15dzc4cjpub3QoOmZvY3VzLXdpdGhpbiksLmZteXc3OHI6aG92ZXI6bm90KDpmb2N1cy13aXRoaW4pe2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVJlZEJvcmRlcjIpO31cIiwgXCIuZjFmZ215ZjQ6bm90KDpmb2N1cy13aXRoaW4pLC5mMWZnbXlmNDpob3Zlcjpub3QoOmZvY3VzLXdpdGhpbil7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVSZWRCb3JkZXIyKTt9XCIsIFwiLmZkcnp1cXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO31cIiwgXCIuZjFqajhlcDF7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7fVwiLCBcIi5mMTV4YmF1e2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7fVwiLCBcIi5meTBmc2tse2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmY0aWtuZ3p7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7fVwiXSxcbiAgdzogW1wiLmYxNGExZnhzOmZvY3VzLXdpdGhpbntvdXRsaW5lLXdpZHRoOjJweDt9XCIsIFwiLmYzZTk5Z3Y6Zm9jdXMtd2l0aGlue291dGxpbmUtc3R5bGU6c29saWQ7fVwiLCBcIi5maGxqc2Y3OmZvY3VzLXdpdGhpbntvdXRsaW5lLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZmp3NXhjMTpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zZm9ybTpzY2FsZVgoMSk7fVwiLCBcIi5mMXhkeWQ1Yzpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO31cIiwgXCIuZmF0cGJlbzpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tZHVyYXRpb25Ob3JtYWwpO31cIiwgXCIuZmI3dXlwczpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zaXRpb24tZGVsYXk6dmFyKC0tY3VydmVEZWNlbGVyYXRlTWlkKTt9XCIsIFwiLmYxaWJlbzUxOmZvY3VzLXdpdGhpbjphY3RpdmU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlUHJlc3NlZCk7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5mdjhlM3llOjphZnRlcnt0cmFuc2l0aW9uLWR1cmF0aW9uOjAuMDFtczt9fVwiLCB7XG4gICAgbTogXCJzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCJcbiAgfV0sIFtcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5mdGI1d2M2OjphZnRlcnt0cmFuc2l0aW9uLWRlbGF5OjAuMDFtczt9fVwiLCB7XG4gICAgbTogXCJzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCJcbiAgfV0sIFtcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5mMWNtZnQ0azpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zaXRpb24tZHVyYXRpb246MC4wMW1zO319XCIsIHtcbiAgICBtOiBcInNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIlxuICB9XSwgW1wiQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7LmYxeDU4dDhvOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7dHJhbnNpdGlvbi1kZWxheTowLjAxbXM7fX1cIiwge1xuICAgIG06IFwic2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZnNDU1eTl7Ym9yZGVyLXRvcC1jb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxNGc4Nm11e2JvcmRlci1sZWZ0LWNvbG9yOkdyYXlUZXh0O30uZjFydnl2cWd7Ym9yZGVyLXJpZ2h0LWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFjd3p3entib3JkZXItYm90dG9tLWNvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dLFxuICBoOiBbXCIuZnZjeG9xejpob3Zlcntib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFIb3Zlcik7fVwiLCBcIi5mMXViM3k0dDpob3Zlcntib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyKTt9XCIsIFwiLmYxbTUybmJpOmhvdmVye2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFIb3Zlcik7fVwiLCBcIi5mbG13NjNzOmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZSk7fVwiXSxcbiAgYTogW1wiLmZ2czAwYWE6YWN0aXZle2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQpO31cIiwgXCIuZjFhc3NmNng6YWN0aXZle2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZCk7fVwiLCBcIi5mNHJ1dXg0OmFjdGl2ZXtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZCk7fVwiLCBcIi5mcWhtdDR6OmFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGUpO31cIl1cbn0pO1xuY29uc3QgdXNlSW5wdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBpbnB1dDoge1xuICAgIHFiMmRtYTogXCJmMXViN3UwZFwiLFxuICAgIERlM3B6cTogXCJmMWMyMWR3aFwiLFxuICAgIEJnZmc1ZGE6IDAsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiAwLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZjNiaGdxaFwiLFxuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQnJvdmxwdTogXCJmdHFhNG9rXCIsXG4gICAgeXZkbGFqOiBcImZ3eWMxY3FcIixcbiAgICBCM283a2doOiBcImYxM3RhN2loXCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZ5OXJrbmNcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCZzk2Z3dwOiBcImZ3cmM0cG1cIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFtcImZ4ZTJyc1wiLCBcImYxZ2ZscXppXCJdXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFtcImZ6eTgxeG9cIiwgXCJmNThiNTNiXCJdXG4gIH0sXG4gIGxhcmdlOiB7XG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJmb2Q1aWtuXCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmYWF6NTdrXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBbXCJmMWtkYXY3YVwiLCBcImZvb3RxbTZcIl1cbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBzajU1emQ6IFwiZjFzMmFxN29cIixcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBCY2VlaTljOiBcImZkcnp1cXJcIixcbiAgICB5dmRsYWo6IFwiZmFoaG54bVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxdWI3dTBke2FsaWduLXNlbGY6c3RyZXRjaDt9XCIsIFwiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgW1wiLmYzYmhncWh7Ym9yZGVyOm5vbmU7fVwiLCB7XG4gICAgcDogLTJcbiAgfV0sIFwiLmYxOW4wZTV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIuZms2Zm91Y3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5QmFzZSk7fVwiLCBcIi5md3ljMWNxOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQ0KTt9XCIsIFwiLmZ3eWMxY3E6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDQpO31cIiwgXCIuZjEzdGE3aWg6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7b3BhY2l0eToxO31cIiwgXCIuZjEzdGE3aWg6Oi1tb3otcGxhY2Vob2xkZXJ7b3BhY2l0eToxO31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZndyYzRwbXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTIwMCk7fVwiLCBbXCIuZnhlMnJze3BhZGRpbmc6MCAwIDAgY2FsYyh2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSkgKyB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYUykpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFnZmxxeml7cGFkZGluZzowIGNhbGModmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpICsgdmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpKSAwIDA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZraGo1MDh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7fVwiLCBcIi5mMWkzaXVtaXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7fVwiLCBbXCIuZnp5ODF4b3twYWRkaW5nOjAgMCAwIGNhbGModmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpICsgdmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmY1OGI1M2J7cGFkZGluZzowIGNhbGModmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpICsgdmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpKSAwIDA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZvZDVpa257Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTQwMCk7fVwiLCBcIi5mYWF6NTdre2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlNDAwKTt9XCIsIFtcIi5mMWtkYXY3YXtwYWRkaW5nOjAgMCAwIGNhbGModmFyKC0tc3BhY2luZ0hvcml6b250YWxNKSArIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mb290cW02e3BhZGRpbmc6MCBjYWxjKHZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSkgKyB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSkpIDAgMDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjFzMmFxN297Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZkcnp1cXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO31cIiwgXCIuZmFoaG54bTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZmFoaG54bTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIl0sXG4gIGY6IFtcIi5mdHFhNG9rOmZvY3Vze291dGxpbmUtc3R5bGU6bm9uZTt9XCJdXG59KTtcbmNvbnN0IHVzZUljb25TdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBpY29uOiB7XG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIHNqNTV6ZDogXCJmeGtiaWo0XCIsXG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIG1jOWw1eDogXCJmdGdtMzA0XCIsXG4gICAgQmUydHdkNzogXCJmMXBwMzBwb1wiLFxuICAgIEJvNzBoN2Q6IFwiZnZjOXYzZ1wiXG4gIH0sXG4gIGhpZGRlbjoge1xuICAgIG1jOWw1eDogXCJmanNlb3hcIlxuICB9LFxuICB2aXN1YWxseUhpZGRlbjoge1xuICAgIEJoODRwZ3U6IFwiZjFla2NhaW9cIixcbiAgICBCcWVudmlqOiBcImYxbXBlNGwzXCIsXG4gICAganJhcGt5OiAwLFxuICAgIEZyZzZmMzogMCxcbiAgICB0MjFjcTA6IDAsXG4gICAgQjZvZjNqYTogMCxcbiAgICBCNzRzemxrOiBcImYxamxwYjJyXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFjNWZ2cWdcIixcbiAgICBhOWI2Nzc6IFwiZnJrcm9nOFwiLFxuICAgIHFoZjh4cTogXCJmMWV1djQzZlwiXG4gIH0sXG4gIHNtYWxsOiB7XG4gICAgQmUydHdkNzogXCJmNHlic3J4XCIsXG4gICAgRnJnNmYzOiBbXCJmMWg5ZW41eVwiLCBcImYxeGs1NTdjXCJdXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJlMnR3ZDc6IFwiZmU1ajF1YVwiLFxuICAgIEZyZzZmMzogW1wiZjFoOWVuNXlcIiwgXCJmMXhrNTU3Y1wiXVxuICB9LFxuICBsYXJnZToge1xuICAgIEJlMnR3ZDc6IFwiZjFydDJib3lcIixcbiAgICBGcmc2ZjM6IFtcImYxdDVxeWs1XCIsIFwiZjFpa3IzNzJcIl1cbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBzajU1emQ6IFwiZjFzMmFxN29cIixcbiAgICBCY2VlaTljOiBcImZkcnp1cXJcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBcIi5meGtiaWo0e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGUpO31cIiwgXCIuZjFrNmZkdWh7Y3Vyc29yOnBvaW50ZXI7fVwiLCBcIi5mdGdtMzA0e2Rpc3BsYXk6YmxvY2s7fVwiLCBcIi5mMXBwMzBwb3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNTAwKTt9XCIsIFwiLmZ2Yzl2M2cgc3Zne2Rpc3BsYXk6YmxvY2s7fVwiLCBcIi5manNlb3h7ZGlzcGxheTpub25lO31cIiwgXCIuZjFla2NhaW97Y2xpcDpyZWN0KDBweCwgMHB4LCAwcHgsIDBweCk7fVwiLCBcIi5mMW1wZTRsM3toZWlnaHQ6MXB4O31cIiwgW1wiLmYxamxwYjJye21hcmdpbjotMXB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFhM3AxdnB7b3ZlcmZsb3c6aGlkZGVuO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFjNWZ2cWd7cGFkZGluZzowcHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZya3JvZzh7d2lkdGg6MXB4O31cIiwgXCIuZjFldXY0M2Z7cG9zaXRpb246YWJzb2x1dGU7fVwiLCBcIi5mNHlic3J4e2ZvbnQtc2l6ZToxNnB4O31cIiwgXCIuZjFoOWVuNXl7bWFyZ2luLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpO31cIiwgXCIuZjF4azU1N2N7bWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCIsIFwiLmZlNWoxdWF7Zm9udC1zaXplOjIwcHg7fVwiLCBcIi5mMXJ0MmJveXtmb250LXNpemU6MjRweDt9XCIsIFwiLmYxdDVxeWs1e21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIFwiLmYxaWtyMzcye21hcmdpbi1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCBcIi5mMXMyYXE3b3tjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZmRyenVxcntjdXJzb3I6bm90LWFsbG93ZWQ7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIENvbWJvYm94IHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlQ29tYm9ib3hTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qge1xuICAgIGFwcGVhcmFuY2UsXG4gICAgb3BlbixcbiAgICBzaXplLFxuICAgIHNob3dDbGVhckljb25cbiAgfSA9IHN0YXRlO1xuICBjb25zdCBpbnZhbGlkID0gYCR7c3RhdGUuaW5wdXRbJ2FyaWEtaW52YWxpZCddfWAgPT09ICd0cnVlJztcbiAgY29uc3QgZGlzYWJsZWQgPSBzdGF0ZS5pbnB1dC5kaXNhYmxlZDtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IGljb25TdHlsZXMgPSB1c2VJY29uU3R5bGVzKCk7XG4gIGNvbnN0IGlucHV0U3R5bGVzID0gdXNlSW5wdXRTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoY29tYm9ib3hDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdHlsZXNbYXBwZWFyYW5jZV0sIHN0eWxlc1tzaXplXSwgIWRpc2FibGVkICYmIGFwcGVhcmFuY2UgPT09ICdvdXRsaW5lJyAmJiBzdHlsZXMub3V0bGluZUludGVyYWN0aXZlLCBpbnZhbGlkICYmIGFwcGVhcmFuY2UgIT09ICd1bmRlcmxpbmUnICYmIHN0eWxlcy5pbnZhbGlkLCBpbnZhbGlkICYmIGFwcGVhcmFuY2UgPT09ICd1bmRlcmxpbmUnICYmIHN0eWxlcy5pbnZhbGlkVW5kZXJsaW5lLCBkaXNhYmxlZCAmJiBzdHlsZXMuZGlzYWJsZWQsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgc3RhdGUuaW5wdXQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGNvbWJvYm94Q2xhc3NOYW1lcy5pbnB1dCwgaW5wdXRTdHlsZXMuaW5wdXQsIGlucHV0U3R5bGVzW3NpemVdLCBkaXNhYmxlZCAmJiBpbnB1dFN0eWxlcy5kaXNhYmxlZCwgc3RhdGUuaW5wdXQuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmxpc3Rib3gpIHtcbiAgICBzdGF0ZS5saXN0Ym94LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyhjb21ib2JveENsYXNzTmFtZXMubGlzdGJveCwgc3R5bGVzLmxpc3Rib3gsIHN0YXRlLmlubGluZVBvcHVwICYmIHN0eWxlcy5pbmxpbmVMaXN0Ym94LCAhb3BlbiAmJiBzdHlsZXMubGlzdGJveENvbGxhcHNlZCwgc3RhdGUubGlzdGJveC5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5leHBhbmRJY29uKSB7XG4gICAgc3RhdGUuZXhwYW5kSWNvbi5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoY29tYm9ib3hDbGFzc05hbWVzLmV4cGFuZEljb24sIGljb25TdHlsZXMuaWNvbiwgaWNvblN0eWxlc1tzaXplXSwgZGlzYWJsZWQgJiYgaWNvblN0eWxlcy5kaXNhYmxlZCwgc2hvd0NsZWFySWNvbiAmJiBpY29uU3R5bGVzLnZpc3VhbGx5SGlkZGVuLCBzdGF0ZS5leHBhbmRJY29uLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKHN0YXRlLmNsZWFySWNvbikge1xuICAgIHN0YXRlLmNsZWFySWNvbi5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoY29tYm9ib3hDbGFzc05hbWVzLmNsZWFySWNvbiwgaWNvblN0eWxlcy5pY29uLCBpY29uU3R5bGVzW3NpemVdLCBkaXNhYmxlZCAmJiBpY29uU3R5bGVzLmRpc2FibGVkLCAhc2hvd0NsZWFySWNvbiAmJiBpY29uU3R5bGVzLmhpZGRlbiwgc3RhdGUuY2xlYXJJY29uLmNsYXNzTmFtZSk7XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZUNvbWJvYm94U3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb21ib2JveF91bnN0YWJsZSB9IGZyb20gJy4vdXNlQ29tYm9ib3gnO1xuaW1wb3J0IHsgcmVuZGVyQ29tYm9ib3hfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlckNvbWJvYm94JztcbmltcG9ydCB7IHVzZUNvbWJvYm94U3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VDb21ib2JveFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ29tYm9ib3hDb250ZXh0VmFsdWVzIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvdXNlQ29tYm9ib3hDb250ZXh0VmFsdWVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBDb21ib2JveCBjb21wb25lbnQ6IGEgc2VsZWN0aW9uIGNvbnRyb2wgdGhhdCBhbGxvd3MgdXNlcnMgdG8gY2hvb3NlIGZyb20gYSBzZXQgb2YgcG9zc2libGUgb3B0aW9uc1xuICovIGV4cG9ydCBjb25zdCBDb21ib2JveCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZUNvbWJvYm94X3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIGNvbnN0IGNvbnRleHRWYWx1ZXMgPSB1c2VDb21ib2JveENvbnRleHRWYWx1ZXMoc3RhdGUpO1xuICAgIHVzZUNvbWJvYm94U3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZUNvbWJvYm94U3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJDb21ib2JveF91bnN0YWJsZShzdGF0ZSwgY29udGV4dFZhbHVlcyk7XG59KTtcbkNvbWJvYm94LmRpc3BsYXlOYW1lID0gJ0NvbWJvYm94JztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgdXNlSWQsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgT3B0aW9uR3JvdXAuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlT3B0aW9uR3JvdXBTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlck9wdGlvbkdyb3VwX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBPcHRpb25Hcm91cFxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIE9wdGlvbkdyb3VwXG4gKi8gZXhwb3J0IGNvbnN0IHVzZU9wdGlvbkdyb3VwX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCdncm91cC1sYWJlbCcpO1xuICAgIGNvbnN0IHsgbGFiZWwgfSA9IHByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgbGFiZWw6ICdzcGFuJ1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogcmVmLFxuICAgICAgICAgICAgcm9sZTogJ2dyb3VwJyxcbiAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBsYWJlbDogc2xvdC5vcHRpb25hbChsYWJlbCwge1xuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGxhYmVsSWQsXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgICAgIH0pXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgT3B0aW9uR3JvdXBcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyT3B0aW9uR3JvdXBfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0YXRlLmxhYmVsICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5sYWJlbCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBzdGF0ZS5sYWJlbC5jaGlsZHJlblxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGF0ZS5yb290LmNoaWxkcmVuXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmV4cG9ydCBjb25zdCBvcHRpb25Hcm91cENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktT3B0aW9uR3JvdXAnLFxuICBsYWJlbDogJ2Z1aS1PcHRpb25Hcm91cF9fbGFiZWwnXG59O1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQmVpeTNlNDogXCJmMXZ4OWw2MlwiLFxuICAgIEJlbHI5dzQ6IFwiZml1dDhkclwiLFxuICAgIEI4bGtxN2w6IFwiZjF4eHpqZHNcIixcbiAgICBlaWkxaW46IDAsXG4gICAgSDkzbzJnOiAwLFxuICAgIEd3cDh4dTogMCxcbiAgICBCZDM5aWdvOiBcImYxNmNtbjhrXCIsXG4gICAgb20wcTQ1OiBcImY1NjQyeVwiLFxuICAgIEhsOW8zczogXCJmZmRmODFoXCIsXG4gICAgc2wxYzJjOiAwLFxuICAgIHo0aHhidzogMCxcbiAgICBCMGk1OGQ5OiAwLFxuICAgIEJpOXgweDQ6IDAsXG4gICAgQmd1cnEzbTogXCJmMWJzbjlrblwiXG4gIH0sXG4gIGxhYmVsOiB7XG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZnQ4NW5wNVwiLFxuICAgIHNqNTV6ZDogXCJmMTFkNGtwblwiLFxuICAgIG1jOWw1eDogXCJmdGdtMzA0XCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQmhyZDd6cDogXCJmbDQzdWVmXCIsXG4gICAgQmc5Nmd3cDogXCJmd3JjNHBtXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbXBxMHp6XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMXZ4OWw2MntmbGV4LWRpcmVjdGlvbjpjb2x1bW47fVwiLCBcIi5maXV0OGRye3Jvdy1nYXA6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpO31cIiwgXCIuZjF4eHpqZHM6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXJ7Y29udGVudDpcXFwiXFxcIjt9XCIsIFtcIi5mMTZjbW44azpub3QoOmxhc3QtY2hpbGQpOjphZnRlcntib3JkZXItYm90dG9tOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMik7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmY1NjQyeTpub3QoOmxhc3QtY2hpbGQpOjphZnRlcntkaXNwbGF5OmJsb2NrO31cIiwgXCIuZmZkZjgxaDpub3QoOmxhc3QtY2hpbGQpOjphZnRlcntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFtcIi5mMWJzbjlrbjpub3QoOmxhc3QtY2hpbGQpOjphZnRlcnttYXJnaW46MCBjYWxjKHZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFMpICogLTEpIHZhcigtLXNwYWNpbmdWZXJ0aWNhbFhTKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTFkNGtwbntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMyk7fVwiLCBcIi5mdGdtMzA0e2Rpc3BsYXk6YmxvY2s7fVwiLCBcIi5meTlya25je2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UyMDApO31cIiwgXCIuZmw0M3VlZntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO31cIiwgXCIuZndyYzRwbXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTIwMCk7fVwiLCBbXCIuZjFtcHEwenp7cGFkZGluZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XV1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBPcHRpb25Hcm91cCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU9wdGlvbkdyb3VwU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhvcHRpb25Hcm91cENsYXNzTmFtZXMucm9vdCwgc3R5bGVzLnJvb3QsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmxhYmVsKSB7XG4gICAgc3RhdGUubGFiZWwuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKG9wdGlvbkdyb3VwQ2xhc3NOYW1lcy5sYWJlbCwgc3R5bGVzLmxhYmVsLCBzdGF0ZS5sYWJlbC5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VPcHRpb25Hcm91cFN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlT3B0aW9uR3JvdXBfdW5zdGFibGUgfSBmcm9tICcuL3VzZU9wdGlvbkdyb3VwJztcbmltcG9ydCB7IHJlbmRlck9wdGlvbkdyb3VwX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJPcHRpb25Hcm91cCc7XG5pbXBvcnQgeyB1c2VPcHRpb25Hcm91cFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlT3B0aW9uR3JvdXBTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBPcHRpb25Hcm91cCBjb21wb25lbnQ6IGFsbG93cyBncm91cGluZyBvZiBPcHRpb24gY29tcG9uZW50cyB3aXRoaW4gYSBDb21ib2JveFxuICovIGV4cG9ydCBjb25zdCBPcHRpb25Hcm91cCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZU9wdGlvbkdyb3VwX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZU9wdGlvbkdyb3VwU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZU9wdGlvbkdyb3VwU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJPcHRpb25Hcm91cF91bnN0YWJsZShzdGF0ZSk7XG59KTtcbk9wdGlvbkdyb3VwLmRpc3BsYXlOYW1lID0gJ09wdGlvbkdyb3VwJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZpZWxkQ29udHJvbFByb3BzX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWZpZWxkJztcbmltcG9ydCB7IGdldFBhcnRpdGlvbmVkTmF0aXZlUHJvcHMsIHVzZUNvbnRyb2xsYWJsZVN0YXRlLCB1c2VFdmVudENhbGxiYWNrLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VPdmVycmlkZXNfdW5zdGFibGUgYXMgdXNlT3ZlcnJpZGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIElucHV0LlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZUlucHV0U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJJbnB1dF91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgSW5wdXRcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gYDxpbnB1dD5gIGVsZW1lbnQgb2YgSW5wdXRcbiAqLyBleHBvcnQgY29uc3QgdXNlSW5wdXRfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBwcm9wcyA9IHVzZUZpZWxkQ29udHJvbFByb3BzX3Vuc3RhYmxlKHByb3BzLCB7XG4gICAgICAgIHN1cHBvcnRzTGFiZWxGb3I6IHRydWUsXG4gICAgICAgIHN1cHBvcnRzUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHN1cHBvcnRzU2l6ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHVzZU92ZXJyaWRlcygpO1xuICAgIHZhciBfb3ZlcnJpZGVzX2lucHV0RGVmYXVsdEFwcGVhcmFuY2U7XG4gICAgY29uc3QgeyBzaXplID0gJ21lZGl1bScsIGFwcGVhcmFuY2UgPSAoX292ZXJyaWRlc19pbnB1dERlZmF1bHRBcHBlYXJhbmNlID0gb3ZlcnJpZGVzLmlucHV0RGVmYXVsdEFwcGVhcmFuY2UpICE9PSBudWxsICYmIF9vdmVycmlkZXNfaW5wdXREZWZhdWx0QXBwZWFyYW5jZSAhPT0gdm9pZCAwID8gX292ZXJyaWRlc19pbnB1dERlZmF1bHRBcHBlYXJhbmNlIDogJ291dGxpbmUnLCBvbkNoYW5nZSB9ID0gcHJvcHM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgKGFwcGVhcmFuY2UgPT09ICdmaWxsZWQtZGFya2VyLXNoYWRvdycgfHwgYXBwZWFyYW5jZSA9PT0gJ2ZpbGxlZC1saWdodGVyLXNoYWRvdycpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGUgJ2ZpbGxlZC1kYXJrZXItc2hhZG93JyBhbmQgJ2ZpbGxlZC1saWdodGVyLXNoYWRvdycgYXBwZWFyYW5jZXMgYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGVcIiArICcgZnV0dXJlLicpO1xuICAgIH1cbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgICAgc3RhdGU6IHByb3BzLnZhbHVlLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiAnJ1xuICAgIH0pO1xuICAgIGNvbnN0IG5hdGl2ZVByb3BzID0gZ2V0UGFydGl0aW9uZWROYXRpdmVQcm9wcyh7XG4gICAgICAgIHByb3BzLFxuICAgICAgICBwcmltYXJ5U2xvdFRhZ05hbWU6ICdpbnB1dCcsXG4gICAgICAgIGV4Y2x1ZGVkUHJvcE5hbWVzOiBbXG4gICAgICAgICAgICAnc2l6ZScsXG4gICAgICAgICAgICAnb25DaGFuZ2UnLFxuICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICAgICdkZWZhdWx0VmFsdWUnXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ3NwYW4nLFxuICAgICAgICAgICAgaW5wdXQ6ICdpbnB1dCcsXG4gICAgICAgICAgICBjb250ZW50QmVmb3JlOiAnc3BhbicsXG4gICAgICAgICAgICBjb250ZW50QWZ0ZXI6ICdzcGFuJ1xuICAgICAgICB9LFxuICAgICAgICBpbnB1dDogc2xvdC5hbHdheXMocHJvcHMuaW5wdXQsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgLi4ubmF0aXZlUHJvcHMucHJpbWFyeVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnaW5wdXQnXG4gICAgICAgIH0pLFxuICAgICAgICBjb250ZW50QWZ0ZXI6IHNsb3Qub3B0aW9uYWwocHJvcHMuY29udGVudEFmdGVyLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgICAgIH0pLFxuICAgICAgICBjb250ZW50QmVmb3JlOiBzbG90Lm9wdGlvbmFsKHByb3BzLmNvbnRlbnRCZWZvcmUsIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSksXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKHByb3BzLnJvb3QsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczogbmF0aXZlUHJvcHMucm9vdCxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSlcbiAgICB9O1xuICAgIHN0YXRlLmlucHV0LnZhbHVlID0gdmFsdWU7XG4gICAgc3RhdGUuaW5wdXQub25DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChldik9PntcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBldi50YXJnZXQudmFsdWU7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShldiwge1xuICAgICAgICAgICAgdmFsdWU6IG5ld1ZhbHVlXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBJbnB1dFxuICovIGV4cG9ydCBjb25zdCByZW5kZXJJbnB1dF91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgc3RhdGUuY29udGVudEJlZm9yZSAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuY29udGVudEJlZm9yZSwge30pLFxuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmlucHV0LCB7fSksXG4gICAgICAgICAgICBzdGF0ZS5jb250ZW50QWZ0ZXIgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmNvbnRlbnRBZnRlciwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyB0b2tlbnMsIHR5cG9ncmFwaHlTdHlsZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgX19yZXNldFN0eWxlcywgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmV4cG9ydCBjb25zdCBpbnB1dENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktSW5wdXQnLFxuICBpbnB1dDogJ2Z1aS1JbnB1dF9faW5wdXQnLFxuICBjb250ZW50QmVmb3JlOiAnZnVpLUlucHV0X19jb250ZW50QmVmb3JlJyxcbiAgY29udGVudEFmdGVyOiAnZnVpLUlucHV0X19jb250ZW50QWZ0ZXInXG59O1xuLy8gVE9ETyhzaGFyaW5nKSBzaG91bGQgdGhlc2UgYmUgc2hhcmVkIHNvbWV3aGVyZT9cbmNvbnN0IGZpZWxkSGVpZ2h0cyA9IHtcbiAgc21hbGw6ICcyNHB4JyxcbiAgbWVkaXVtOiAnMzJweCcsXG4gIGxhcmdlOiAnNDBweCdcbn07XG4vLyBXaXRoIG5vIGNvbnRlbnRCZWZvcmUgb3IgY29udGVudEFmdGVyLCB0aGUgaW5wdXQgc2xvdCB1c2VzIGNvbWJpbmVkIHBhZGRpbmcgdG8gaW5jcmVhc2UgaXRzIGhpdCB0YXJnZXQuXG4vLyBJZiB0aGVyZSBpcyBjb250ZW50QmVmb3JlIG9yIGNvbnRlbnRBZnRlciwgdGhlbiB0aGUgcm9vdCBhbmQgaW5wdXQgc2xvdHMgdXNlIHRoZWlyIGluZGl2aWR1YWwgcGFkZGluZy5cbmNvbnN0IGhvcml6b250YWxQYWRkaW5nID0ge1xuICByb290OiB7XG4gICAgc21hbGw6IHRva2Vucy5zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSxcbiAgICBtZWRpdW06IHRva2Vucy5zcGFjaW5nSG9yaXpvbnRhbE1OdWRnZSxcbiAgICBsYXJnZTogdG9rZW5zLnNwYWNpbmdIb3Jpem9udGFsTVxuICB9LFxuICBpbnB1dDoge1xuICAgIHNtYWxsOiB0b2tlbnMuc3BhY2luZ0hvcml6b250YWxYWFMsXG4gICAgbWVkaXVtOiB0b2tlbnMuc3BhY2luZ0hvcml6b250YWxYWFMsXG4gICAgbGFyZ2U6IHRva2Vucy5zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZVxuICB9LFxuICBjb21iaW5lZDoge1xuICAgIHNtYWxsOiB0b2tlbnMuc3BhY2luZ0hvcml6b250YWxTLFxuICAgIG1lZGl1bTogdG9rZW5zLnNwYWNpbmdIb3Jpem9udGFsTSxcbiAgICBsYXJnZTogYGNhbGMoJHt0b2tlbnMuc3BhY2luZ0hvcml6b250YWxNfSArICR7dG9rZW5zLnNwYWNpbmdIb3Jpem9udGFsU051ZGdlfSlgXG4gIH1cbn07XG5jb25zdCB1c2VSb290Q2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyMW9lZW85blwiLCBcInI5c3hoNVwiLCB7XG4gIHI6IFtcIi5yMW9lZW85bntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6bm93cmFwO2dhcDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYUyk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWluLWhlaWdodDozMnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlKTt9XCIsIFwiLnIxb2VlbzluOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDpcXFwiXFxcIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xcHg7Ym90dG9tOi0xcHg7cmlnaHQ6LTFweDtoZWlnaHQ6bWF4KDJweCwgdmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7Ym9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlKTtjbGlwLXBhdGg6aW5zZXQoY2FsYygxMDAlIC0gMnB4KSAwIDAgMCk7dHJhbnNmb3JtOnNjYWxlWCgwKTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLWR1cmF0aW9uVWx0cmFGYXN0KTt0cmFuc2l0aW9uLWRlbGF5OnZhcigtLWN1cnZlQWNjZWxlcmF0ZU1pZCk7fVwiLCBcIi5yMW9lZW85bjpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvbk5vcm1hbCk7dHJhbnNpdGlvbi1kZWxheTp2YXIoLS1jdXJ2ZURlY2VsZXJhdGVNaWQpO31cIiwgXCIucjFvZWVvOW46Zm9jdXMtd2l0aGluOmFjdGl2ZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2VQcmVzc2VkKTt9XCIsIFwiLnIxb2VlbzluOmZvY3VzLXdpdGhpbntvdXRsaW5lOjJweCBzb2xpZCB0cmFuc3BhcmVudDt9XCIsIFwiLnI5c3hoNXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6bm93cmFwO2dhcDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYUyk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWluLWhlaWdodDozMnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDEpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlKTt9XCIsIFwiLnI5c3hoNTo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTFweDtib3R0b206LTFweDtsZWZ0Oi0xcHg7aGVpZ2h0Om1heCgycHgsIHZhcigtLWJvcmRlclJhZGl1c01lZGl1bSkpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZSk7Y2xpcC1wYXRoOmluc2V0KGNhbGMoMTAwJSAtIDJweCkgMCAwIDApO3RyYW5zZm9ybTpzY2FsZVgoMCk7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvblVsdHJhRmFzdCk7dHJhbnNpdGlvbi1kZWxheTp2YXIoLS1jdXJ2ZUFjY2VsZXJhdGVNaWQpO31cIiwgXCIucjlzeGg1OmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7dHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLWR1cmF0aW9uTm9ybWFsKTt0cmFuc2l0aW9uLWRlbGF5OnZhcigtLWN1cnZlRGVjZWxlcmF0ZU1pZCk7fVwiLCBcIi5yOXN4aDU6Zm9jdXMtd2l0aGluOmFjdGl2ZTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2VQcmVzc2VkKTt9XCIsIFwiLnI5c3hoNTpmb2N1cy13aXRoaW57b3V0bGluZToycHggc29saWQgdHJhbnNwYXJlbnQ7fVwiXSxcbiAgczogW1wiQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7LnIxb2VlbzluOjphZnRlcnt0cmFuc2l0aW9uLWR1cmF0aW9uOjAuMDFtczt0cmFuc2l0aW9uLWRlbGF5OjAuMDFtczt9fVwiLCBcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5yMW9lZW85bjpmb2N1cy13aXRoaW46OmFmdGVye3RyYW5zaXRpb24tZHVyYXRpb246MC4wMW1zO3RyYW5zaXRpb24tZGVsYXk6MC4wMW1zO319XCIsIFwiQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7LnI5c3hoNTo6YWZ0ZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjowLjAxbXM7dHJhbnNpdGlvbi1kZWxheTowLjAxbXM7fX1cIiwgXCJAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsucjlzeGg1OmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjowLjAxbXM7dHJhbnNpdGlvbi1kZWxheTowLjAxbXM7fX1cIl1cbn0pO1xuY29uc3QgdXNlUm9vdFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHNtYWxsOiB7XG4gICAgc3NoaTV3OiBcImYxcGhhN2Z5XCIsXG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmd3JjNHBtXCJcbiAgfSxcbiAgbWVkaXVtOiB7fSxcbiAgbGFyZ2U6IHtcbiAgICBzc2hpNXc6IFwiZjF3NWpwaHJcIixcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZvZDVpa25cIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCZzk2Z3dwOiBcImZhYXo1N2tcIixcbiAgICBpOGtrdmw6IDAsXG4gICAgQmVscjl3NDogMCxcbiAgICBybW9oeWc6IFwiZjFleWhmOXZcIlxuICB9LFxuICBvdXRsaW5lOiB7fSxcbiAgb3V0bGluZUludGVyYWN0aXZlOiB7XG4gICAgQmdvZTh3eTogXCJmdmN4b3F6XCIsXG4gICAgQnd6cHBmZDogW1wiZjF1YjN5NHRcIiwgXCJmMW01Mm5iaVwiXSxcbiAgICBvZXR1NGk6IFwiZjFsNHpjNjRcIixcbiAgICBnZzVlOW46IFtcImYxbTUybmJpXCIsIFwiZjF1YjN5NHRcIl0sXG4gICAgRHJiY3c3OiBcImY4dm5qcWlcIixcbiAgICB1ZHowYnU6IFtcImZ6MWV0bGtcIiwgXCJmMWhjMTZnbVwiXSxcbiAgICBCZThpdnFoOiBcImYxa2x3eDg4XCIsXG4gICAgb2ZkZXBsOiBbXCJmMWhjMTZnbVwiLCBcImZ6MWV0bGtcIl1cbiAgfSxcbiAgdW5kZXJsaW5lOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZm9rcjc3OVwiLFxuICAgIGljdnlvdDogXCJmMWVybjQ1ZVwiLFxuICAgIHZyYWZqeDogW1wiZjFuNzFvdG5cIiwgXCJmMWRlZWZpd1wiXSxcbiAgICB3dnBxZTU6IFtcImYxZGVlZml3XCIsIFwiZjFuNzFvdG5cIl0sXG4gICAgRXF4OGdkOiBbXCJmMW42Z2I1Z1wiLCBcImYxNXl2bmhnXCJdLFxuICAgIEIxcGlpbjM6IFtcImYxNXl2bmhnXCIsIFwiZjFuNmdiNWdcIl1cbiAgfSxcbiAgdW5kZXJsaW5lSW50ZXJhY3RpdmU6IHtcbiAgICBvZXR1NGk6IFwiZjFsNHpjNjRcIixcbiAgICBCZThpdnFoOiBcImYxa2x3eDg4XCIsXG4gICAgZDl3M2gzOiAwLFxuICAgIEIzNzc4aWU6IDAsXG4gICAgQjRqOGFycjogMCxcbiAgICBCbDE4c3pzOiAwLFxuICAgIEJscnpoOGQ6IFwiZjJhbGUxeFwiXG4gIH0sXG4gIGZpbGxlZDoge1xuICAgIGcydTN3ZTogXCJmZ2hscTRmXCIsXG4gICAgaDNjNXJtOiBbXCJmMWduNTkxc1wiLCBcImZqc2NwbHpcIl0sXG4gICAgQjl4YXYwZzogXCJmYjA3M3ByXCIsXG4gICAgemhqd3kzOiBbXCJmanNjcGx6XCIsIFwiZjFnbjU5MXNcIl1cbiAgfSxcbiAgZmlsbGVkSW50ZXJhY3RpdmU6IHtcbiAgICBxN3YwcWU6IFwiZnRtamg1YlwiLFxuICAgIGttaDVmdDogW1wiZjE3YmxwdXVcIiwgXCJmc3JjZGJqXCJdLFxuICAgIG5hZ2FhNDogXCJmMXRwd24zMlwiLFxuICAgIEIxeWhrY2I6IFtcImZzcmNkYmpcIiwgXCJmMTdibHB1dVwiXVxuICB9LFxuICBpbnZhbGlkOiB7XG4gICAgdHZja3dxOiBcImZzNGszcWpcIixcbiAgICBnazJ1OTU6IFtcImZjZWUwNzlcIiwgXCJmbXl3NzhyXCJdLFxuICAgIGhoeDY1ajogXCJmMWZnbXlmNFwiLFxuICAgIEJ4b3dtejA6IFtcImZteXc3OHJcIiwgXCJmY2VlMDc5XCJdXG4gIH0sXG4gIFwiZmlsbGVkLWRhcmtlclwiOiB7XG4gICAgRGUzcHpxOiBcImYxNnhxN2QxXCJcbiAgfSxcbiAgXCJmaWxsZWQtbGlnaHRlclwiOiB7XG4gICAgRGUzcHpxOiBcImZ4dWd3NHJcIlxuICB9LFxuICBcImZpbGxlZC1kYXJrZXItc2hhZG93XCI6IHtcbiAgICBEZTNwenE6IFwiZjE2eHE3ZDFcIixcbiAgICBFNXBpem86IFwiZnllZDAyd1wiXG4gIH0sXG4gIFwiZmlsbGVkLWxpZ2h0ZXItc2hhZG93XCI6IHtcbiAgICBEZTNwenE6IFwiZnh1Z3c0clwiLFxuICAgIEU1cGl6bzogXCJmeWVkMDJ3XCJcbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBCY2VlaTljOiBcImZkcnp1cXJcIixcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBnMnUzd2U6IFwiZjFqajhlcDFcIixcbiAgICBoM2M1cm06IFtcImYxNXhiYXVcIiwgXCJmeTBmc2tsXCJdLFxuICAgIEI5eGF2MGc6IFwiZjRpa25nelwiLFxuICAgIHpoand5MzogW1wiZnkwZnNrbFwiLCBcImYxNXhiYXVcIl0sXG4gICAgQmp3YXMyZjogXCJmZzQ1NXk5XCIsXG4gICAgQm4xZDY1cTogW1wiZjFydnl2cWdcIiwgXCJmMTRnODZtdVwiXSxcbiAgICBCeGV1YXRuOiBcImYxY3d6d3pcIixcbiAgICBuNTFncDg6IFtcImYxNGc4Nm11XCIsIFwiZjFydnl2cWdcIl0sXG4gICAgQnNmdDV6MjogXCJmaHI5b2NjXCIsXG4gICAgQmR1ZXNmNDogXCJmOTl3MXdzXCJcbiAgfSxcbiAgc21hbGxXaXRoQ29udGVudEJlZm9yZToge1xuICAgIHV3bXFtMzogW1wiZms4ajA5c1wiLCBcImZkdzB5aThcIl1cbiAgfSxcbiAgc21hbGxXaXRoQ29udGVudEFmdGVyOiB7XG4gICAgejE4OXNqOiBbXCJmZHcweWk4XCIsIFwiZms4ajA5c1wiXVxuICB9LFxuICBtZWRpdW1XaXRoQ29udGVudEJlZm9yZToge1xuICAgIHV3bXFtMzogW1wiZjFuZzg0eWJcIiwgXCJmMTFnY3kwcFwiXVxuICB9LFxuICBtZWRpdW1XaXRoQ29udGVudEFmdGVyOiB7XG4gICAgejE4OXNqOiBbXCJmMTFnY3kwcFwiLCBcImYxbmc4NHliXCJdXG4gIH0sXG4gIGxhcmdlV2l0aENvbnRlbnRCZWZvcmU6IHtcbiAgICB1d21xbTM6IFtcImYxdXc1OXRvXCIsIFwiZnc1ZGI3ZVwiXVxuICB9LFxuICBsYXJnZVdpdGhDb250ZW50QWZ0ZXI6IHtcbiAgICB6MTg5c2o6IFtcImZ3NWRiN2VcIiwgXCJmMXV3NTl0b1wiXVxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXBoYTdmeXttaW4taGVpZ2h0OjI0cHg7fVwiLCBcIi5mazZmb3Vje2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTt9XCIsIFwiLmZ5OXJrbmN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTIwMCk7fVwiLCBcIi5maWdzb2s2e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTt9XCIsIFwiLmZ3cmM0cG17bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UyMDApO31cIiwgXCIuZjF3NWpwaHJ7bWluLWhlaWdodDo0MHB4O31cIiwgXCIuZm9kNWlrbntmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNDAwKTt9XCIsIFwiLmZhYXo1N2t7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U0MDApO31cIiwgW1wiLmYxZXloZjl2e2dhcDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgW1wiLmZva3I3Nzl7Ym9yZGVyLXJhZGl1czowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWVybjQ1ZXtib3JkZXItdG9wLXN0eWxlOm5vbmU7fVwiLCBcIi5mMW43MW90bntib3JkZXItcmlnaHQtc3R5bGU6bm9uZTt9XCIsIFwiLmYxZGVlZml3e2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7fVwiLCBcIi5mMW42Z2I1Zzo6YWZ0ZXJ7bGVmdDowO31cIiwgXCIuZjE1eXZuaGc6OmFmdGVye3JpZ2h0OjA7fVwiLCBbXCIuZjJhbGUxeDo6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mZ2hscTRme2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCBcIi5mMWduNTkxc3tib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCBcIi5manNjcGx6e2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO31cIiwgXCIuZmIwNzNwcntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO31cIiwgXCIuZnM0azNxajpub3QoOmZvY3VzLXdpdGhpbiksLmZzNGszcWo6aG92ZXI6bm90KDpmb2N1cy13aXRoaW4pe2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JQYWxldHRlUmVkQm9yZGVyMik7fVwiLCBcIi5mY2VlMDc5Om5vdCg6Zm9jdXMtd2l0aGluKSwuZmNlZTA3OTpob3Zlcjpub3QoOmZvY3VzLXdpdGhpbil7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVJlZEJvcmRlcjIpO31cIiwgXCIuZm15dzc4cjpub3QoOmZvY3VzLXdpdGhpbiksLmZteXc3OHI6aG92ZXI6bm90KDpmb2N1cy13aXRoaW4pe2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yUGFsZXR0ZVJlZEJvcmRlcjIpO31cIiwgXCIuZjFmZ215ZjQ6bm90KDpmb2N1cy13aXRoaW4pLC5mMWZnbXlmNDpob3Zlcjpub3QoOmZvY3VzLXdpdGhpbil7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvclBhbGV0dGVSZWRCb3JkZXIyKTt9XCIsIFwiLmYxNnhxN2Qxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDMpO31cIiwgXCIuZnh1Z3c0cntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTt9XCIsIFwiLmZ5ZWQwMnd7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cyKTt9XCIsIFwiLmZkcnp1cXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO31cIiwgXCIuZjFqajhlcDF7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7fVwiLCBcIi5mMTV4YmF1e2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7fVwiLCBcIi5meTBmc2tse2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZURpc2FibGVkKTt9XCIsIFwiLmY0aWtuZ3p7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7fVwiLCBcIi5maHI5b2NjOjphZnRlcntjb250ZW50OnVuc2V0O31cIiwgXCIuZms4ajA5c3twYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpO31cIiwgXCIuZmR3MHlpOHtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIFwiLmYxbmc4NHlie3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE1OdWRnZSk7fVwiLCBcIi5mMTFnY3kwcHtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTU51ZGdlKTt9XCIsIFwiLmYxdXc1OXRve3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pO31cIiwgXCIuZnc1ZGI3ZXtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSk7fVwiXSxcbiAgaDogW1wiLmZ2Y3hvcXo6aG92ZXJ7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxSG92ZXIpO31cIiwgXCIuZjF1YjN5NHQ6aG92ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFIb3Zlcik7fVwiLCBcIi5mMW01Mm5iaTpob3Zlcntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxSG92ZXIpO31cIiwgXCIuZjFsNHpjNjQ6aG92ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VBY2Nlc3NpYmxlSG92ZXIpO31cIiwgXCIuZnRtamg1Yjpob3ZlciwuZnRtamg1Yjpmb2N1cy13aXRoaW57Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlSW50ZXJhY3RpdmUpO31cIiwgXCIuZjE3YmxwdXU6aG92ZXIsLmYxN2JscHV1OmZvY3VzLXdpdGhpbntib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZUludGVyYWN0aXZlKTt9XCIsIFwiLmZzcmNkYmo6aG92ZXIsLmZzcmNkYmo6Zm9jdXMtd2l0aGlue2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2VJbnRlcmFjdGl2ZSk7fVwiLCBcIi5mMXRwd24zMjpob3ZlciwuZjF0cHduMzI6Zm9jdXMtd2l0aGlue2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZUludGVyYWN0aXZlKTt9XCJdLFxuICBhOiBbXCIuZjh2bmpxaTphY3RpdmUsLmY4dm5qcWk6Zm9jdXMtd2l0aGlue2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQpO31cIiwgXCIuZnoxZXRsazphY3RpdmUsLmZ6MWV0bGs6Zm9jdXMtd2l0aGlue2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZCk7fVwiLCBcIi5mMWhjMTZnbTphY3RpdmUsLmYxaGMxNmdtOmZvY3VzLXdpdGhpbntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZCk7fVwiLCBcIi5mMWtsd3g4ODphY3RpdmUsLmYxa2x3eDg4OmZvY3VzLXdpdGhpbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVQcmVzc2VkKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mZzQ1NXk5e2JvcmRlci10b3AtY29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMTRnODZtdXtib3JkZXItbGVmdC1jb2xvcjpHcmF5VGV4dDt9LmYxcnZ5dnFne2JvcmRlci1yaWdodC1jb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxY3d6d3p7Ym9yZGVyLWJvdHRvbS1jb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXSxcbiAgdzogW1wiLmY5OXcxd3M6Zm9jdXMtd2l0aGlue291dGxpbmUtc3R5bGU6bm9uZTt9XCJdXG59KTtcbmNvbnN0IHVzZUlucHV0Q2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyMTJzdHVsMFwiLCBudWxsLCBbXCIucjEyc3R1bDB7YWxpZ24tc2VsZjpzdHJldGNoO2JveC1zaXppbmc6Ym9yZGVyLWJveDtmbGV4LWdyb3c6MTttaW4td2lkdGg6MDtib3JkZXItc3R5bGU6bm9uZTtwYWRkaW5nOjAgdmFyKC0tc3BhY2luZ0hvcml6b250YWxNKTtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lLXN0eWxlOm5vbmU7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7fVwiLCBcIi5yMTJzdHVsMDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kNCk7b3BhY2l0eToxO31cIiwgXCIucjEyc3R1bDA6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDQpO29wYWNpdHk6MTt9XCIsIFwiLnIxMnN0dWwwOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kNCk7b3BhY2l0eToxO31cIl0pO1xuY29uc3QgdXNlSW5wdXRFbGVtZW50U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgc21hbGw6IHtcbiAgICB1d21xbTM6IFtcImYxZjVnZzhkXCIsIFwiZjF2ZGZieGtcIl0sXG4gICAgejE4OXNqOiBbXCJmMXZkZmJ4a1wiLCBcImYxZjVnZzhkXCJdXG4gIH0sXG4gIG1lZGl1bToge30sXG4gIGxhcmdlOiB7XG4gICAgdXdtcW0zOiBbXCJmbnBoenQ5XCIsIFwiZmx0MWRsZlwiXSxcbiAgICB6MTg5c2o6IFtcImZsdDFkbGZcIiwgXCJmbnBoenQ5XCJdXG4gIH0sXG4gIHNtYWxsV2l0aENvbnRlbnRCZWZvcmU6IHtcbiAgICB1d21xbTM6IFtcImZnaXY0NDZcIiwgXCJmZmN6ZGxhXCJdXG4gIH0sXG4gIHNtYWxsV2l0aENvbnRlbnRBZnRlcjoge1xuICAgIHoxODlzajogW1wiZmZjemRsYVwiLCBcImZnaXY0NDZcIl1cbiAgfSxcbiAgbWVkaXVtV2l0aENvbnRlbnRCZWZvcmU6IHtcbiAgICB1d21xbTM6IFtcImZnaXY0NDZcIiwgXCJmZmN6ZGxhXCJdXG4gIH0sXG4gIG1lZGl1bVdpdGhDb250ZW50QWZ0ZXI6IHtcbiAgICB6MTg5c2o6IFtcImZmY3pkbGFcIiwgXCJmZ2l2NDQ2XCJdXG4gIH0sXG4gIGxhcmdlV2l0aENvbnRlbnRCZWZvcmU6IHtcbiAgICB1d21xbTM6IFtcImZrOGowOXNcIiwgXCJmZHcweWk4XCJdXG4gIH0sXG4gIGxhcmdlV2l0aENvbnRlbnRBZnRlcjoge1xuICAgIHoxODlzajogW1wiZmR3MHlpOFwiLCBcImZrOGowOXNcIl1cbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBzajU1emQ6IFwiZjFzMmFxN29cIixcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBCY2VlaTljOiBcImZkcnp1cXJcIixcbiAgICB5dmRsYWo6IFwiZmFoaG54bVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxZjVnZzhke3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwgXCIuZjF2ZGZieGt7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwgXCIuZm5waHp0OXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pICsgdmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpKTt9XCIsIFwiLmZsdDFkbGZ7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSkgKyB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSkpO31cIiwgXCIuZmdpdjQ0NntwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpO31cIiwgXCIuZmZjemRsYXtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCIsIFwiLmZrOGowOXN7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIFwiLmZkdzB5aTh7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCBcIi5mMXMyYXE3b3tjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBcIi5mZHJ6dXFye2N1cnNvcjpub3QtYWxsb3dlZDt9XCIsIFwiLmZhaGhueG06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZhaGhueG06Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCJdXG59KTtcbmNvbnN0IHVzZUNvbnRlbnRDbGFzc05hbWUgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxNTcydG9rXCIsIG51bGwsIFtcIi5yMTU3MnRva3tib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDMpO2Rpc3BsYXk6ZmxleDt9XCIsIFwiLnIxNTcydG9rPnN2Z3tmb250LXNpemU6MjBweDt9XCJdKTtcbmNvbnN0IHVzZUNvbnRlbnRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBkaXNhYmxlZDoge1xuICAgIHNqNTV6ZDogXCJmMXMyYXE3b1wiXG4gIH0sXG4gIHNtYWxsOiB7XG4gICAgRHVvYXNlOiBcImYzcXY5d1wiXG4gIH0sXG4gIG1lZGl1bToge30sXG4gIGxhcmdlOiB7XG4gICAgRHVvYXNlOiBcImYxNnUyc2NiXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFzMmFxN297Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmYzcXY5dz5zdmd7Zm9udC1zaXplOjE2cHg7fVwiLCBcIi5mMTZ1MnNjYj5zdmd7Zm9udC1zaXplOjI0cHg7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIElucHV0IHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlSW5wdXRTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qge1xuICAgIHNpemUsXG4gICAgYXBwZWFyYW5jZVxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IGRpc2FibGVkID0gc3RhdGUuaW5wdXQuZGlzYWJsZWQ7XG4gIGNvbnN0IGludmFsaWQgPSBgJHtzdGF0ZS5pbnB1dFsnYXJpYS1pbnZhbGlkJ119YCA9PT0gJ3RydWUnO1xuICBjb25zdCBmaWxsZWQgPSBhcHBlYXJhbmNlLnN0YXJ0c1dpdGgoJ2ZpbGxlZCcpO1xuICBjb25zdCByb290U3R5bGVzID0gdXNlUm9vdFN0eWxlcygpO1xuICBjb25zdCBpbnB1dFN0eWxlcyA9IHVzZUlucHV0RWxlbWVudFN0eWxlcygpO1xuICBjb25zdCBjb250ZW50U3R5bGVzID0gdXNlQ29udGVudFN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhpbnB1dENsYXNzTmFtZXMucm9vdCwgdXNlUm9vdENsYXNzTmFtZSgpLCByb290U3R5bGVzW3NpemVdLCBzdGF0ZS5jb250ZW50QmVmb3JlICYmIHJvb3RTdHlsZXNbYCR7c2l6ZX1XaXRoQ29udGVudEJlZm9yZWBdLCBzdGF0ZS5jb250ZW50QWZ0ZXIgJiYgcm9vdFN0eWxlc1tgJHtzaXplfVdpdGhDb250ZW50QWZ0ZXJgXSwgcm9vdFN0eWxlc1thcHBlYXJhbmNlXSwgIWRpc2FibGVkICYmIGFwcGVhcmFuY2UgPT09ICdvdXRsaW5lJyAmJiByb290U3R5bGVzLm91dGxpbmVJbnRlcmFjdGl2ZSwgIWRpc2FibGVkICYmIGFwcGVhcmFuY2UgPT09ICd1bmRlcmxpbmUnICYmIHJvb3RTdHlsZXMudW5kZXJsaW5lSW50ZXJhY3RpdmUsICFkaXNhYmxlZCAmJiBmaWxsZWQgJiYgcm9vdFN0eWxlcy5maWxsZWRJbnRlcmFjdGl2ZSwgZmlsbGVkICYmIHJvb3RTdHlsZXMuZmlsbGVkLCAhZGlzYWJsZWQgJiYgaW52YWxpZCAmJiByb290U3R5bGVzLmludmFsaWQsIGRpc2FibGVkICYmIHJvb3RTdHlsZXMuZGlzYWJsZWQsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgc3RhdGUuaW5wdXQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGlucHV0Q2xhc3NOYW1lcy5pbnB1dCwgdXNlSW5wdXRDbGFzc05hbWUoKSwgaW5wdXRTdHlsZXNbc2l6ZV0sIHN0YXRlLmNvbnRlbnRCZWZvcmUgJiYgaW5wdXRTdHlsZXNbYCR7c2l6ZX1XaXRoQ29udGVudEJlZm9yZWBdLCBzdGF0ZS5jb250ZW50QWZ0ZXIgJiYgaW5wdXRTdHlsZXNbYCR7c2l6ZX1XaXRoQ29udGVudEFmdGVyYF0sIGRpc2FibGVkICYmIGlucHV0U3R5bGVzLmRpc2FibGVkLCBzdGF0ZS5pbnB1dC5jbGFzc05hbWUpO1xuICBjb25zdCBjb250ZW50Q2xhc3NlcyA9IFt1c2VDb250ZW50Q2xhc3NOYW1lKCksIGRpc2FibGVkICYmIGNvbnRlbnRTdHlsZXMuZGlzYWJsZWQsIGNvbnRlbnRTdHlsZXNbc2l6ZV1dO1xuICBpZiAoc3RhdGUuY29udGVudEJlZm9yZSkge1xuICAgIHN0YXRlLmNvbnRlbnRCZWZvcmUuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGlucHV0Q2xhc3NOYW1lcy5jb250ZW50QmVmb3JlLCAuLi5jb250ZW50Q2xhc3Nlcywgc3RhdGUuY29udGVudEJlZm9yZS5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5jb250ZW50QWZ0ZXIpIHtcbiAgICBzdGF0ZS5jb250ZW50QWZ0ZXIuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGlucHV0Q2xhc3NOYW1lcy5jb250ZW50QWZ0ZXIsIC4uLmNvbnRlbnRDbGFzc2VzLCBzdGF0ZS5jb250ZW50QWZ0ZXIuY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlSW5wdXRTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlucHV0X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VJbnB1dCc7XG5pbXBvcnQgeyByZW5kZXJJbnB1dF91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVySW5wdXQnO1xuaW1wb3J0IHsgdXNlSW5wdXRTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZUlucHV0U3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogVGhlIElucHV0IGNvbXBvbmVudCBhbGxvd3MgcGVvcGxlIHRvIGVudGVyIGFuZCBlZGl0IHRleHQuXG4gKi8gZXhwb3J0IGNvbnN0IElucHV0ID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlSW5wdXRfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlSW5wdXRTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlSW5wdXRTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlcklucHV0X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuSW5wdXQuZGlzcGxheU5hbWUgPSAnSW5wdXQnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuZXhwb3J0IGNvbnN0IE1lbnVDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgbWVudUNvbnRleHREZWZhdWx0VmFsdWUgPSB7XG4gICAgb3BlbjogZmFsc2UsXG4gICAgc2V0T3BlbjogKCk9PmZhbHNlLFxuICAgIGNoZWNrZWRWYWx1ZXM6IHt9LFxuICAgIG9uQ2hlY2tlZFZhbHVlQ2hhbmdlOiAoKT0+bnVsbCxcbiAgICBpc1N1Ym1lbnU6IGZhbHNlLFxuICAgIHRyaWdnZXJSZWY6IHtcbiAgICAgICAgY3VycmVudDogbnVsbFxuICAgIH0sXG4gICAgbWVudVBvcG92ZXJSZWY6IHtcbiAgICAgICAgY3VycmVudDogbnVsbFxuICAgIH0sXG4gICAgbW91bnROb2RlOiBudWxsLFxuICAgIHRyaWdnZXJJZDogJycsXG4gICAgb3Blbk9uQ29udGV4dDogZmFsc2UsXG4gICAgb3Blbk9uSG92ZXI6IGZhbHNlLFxuICAgIGhhc0ljb25zOiBmYWxzZSxcbiAgICBoYXNDaGVja21hcmtzOiBmYWxzZSxcbiAgICBpbmxpbmU6IGZhbHNlLFxuICAgIHBlcnNpc3RPbkl0ZW1DbGljazogZmFsc2Vcbn07XG5leHBvcnQgY29uc3QgTWVudVByb3ZpZGVyID0gTWVudUNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlTWVudUNvbnRleHRfdW5zdGFibGUgPSAoc2VsZWN0b3IpPT51c2VDb250ZXh0U2VsZWN0b3IoTWVudUNvbnRleHQsIChjdHggPSBtZW51Q29udGV4dERlZmF1bHRWYWx1ZSk9PnNlbGVjdG9yKGN0eCkpO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBDb250ZXh0IHVzZWQgY29tbXVuaWNhdGUgd2l0aCBhIGNoaWxkIG1lbnUgaXRlbSB0aGF0IGl0IGlzIGEgdHJpZ2dlciBmb3IgYSBzdWJtZW51XG4gKi8gY29uc3QgTWVudVRyaWdnZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgbWVudVRyaWdnZXJDb250ZXh0RGVmYXVsdFZhbHVlID0gZmFsc2U7XG5leHBvcnQgY29uc3QgTWVudVRyaWdnZXJDb250ZXh0UHJvdmlkZXIgPSBNZW51VHJpZ2dlckNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlTWVudVRyaWdnZXJDb250ZXh0X3Vuc3RhYmxlID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoTWVudVRyaWdnZXJDb250ZXh0KSkgIT09IG51bGwgJiYgX1JlYWN0X3VzZUNvbnRleHQgIT09IHZvaWQgMCA/IF9SZWFjdF91c2VDb250ZXh0IDogbWVudVRyaWdnZXJDb250ZXh0RGVmYXVsdFZhbHVlO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHRTZWxlY3RvciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yJztcbmV4cG9ydCBjb25zdCBNZW51TGlzdENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5jb25zdCBtZW51TGlzdENvbnRleHREZWZhdWx0VmFsdWUgPSB7XG4gICAgY2hlY2tlZFZhbHVlczoge30sXG4gICAgc2V0Rm9jdXNCeUZpcnN0Q2hhcmFjdGVyOiAoKT0+bnVsbCxcbiAgICB0b2dnbGVDaGVja2JveDogKCk9Pm51bGwsXG4gICAgc2VsZWN0UmFkaW86ICgpPT5udWxsLFxuICAgIGhhc0ljb25zOiBmYWxzZSxcbiAgICBoYXNDaGVja21hcmtzOiBmYWxzZVxufTtcbmV4cG9ydCBjb25zdCBNZW51TGlzdFByb3ZpZGVyID0gTWVudUxpc3RDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGNvbnN0IHVzZU1lbnVMaXN0Q29udGV4dF91bnN0YWJsZSA9IChzZWxlY3Rvcik9PnVzZUNvbnRleHRTZWxlY3RvcihNZW51TGlzdENvbnRleHQsIChjdHggPSBtZW51TGlzdENvbnRleHREZWZhdWx0VmFsdWUpPT5zZWxlY3RvcihjdHgpKTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIGVsZW1lbnRDb250YWlucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBjdXN0b20gZXZlbnRcbiAqLyBleHBvcnQgY29uc3QgTUVOVV9FTlRFUl9FVkVOVCA9ICdmdWltZW51ZW50ZXInO1xuLyoqXG4gKiBUaGlzIGhvb2sgd29ya3Mgc2ltaWxhcmx5IHRvIEBzZWUgdXNlT25DbGlja091dHNpZGVcbiAqXG4gKiBQcm9ibGVtOiBUcnlpbmcgdG8gYmVoYXZlIHRoZSBzYW1lIGFzIHN5c3RlbSBtZW51czpcbiAqIFdoZW4gdGhlIG1vdXNlIGxlYXZlcyBhIHN0YWNrIG9mIG5lc3RlZCBtZW51cyB0aGUgc3RhY2sgc2hvdWxkIG5vdCBkaXNtaXNzLlxuICogSG93ZXZlciBpZiB0aGUgbW91c2UgbGVhdmVzIGEgc3RhY2sgb2YgbWVudXMgYW5kIGVudGVycyBhIHBhcmVudCBtZW51IGFsbCBpdHMgY2hpbGRyZW4gbWVudSBzaG91bGQgZGlzbWlzcy5cbiAqXG4gKiBXZSBkb24ndCB1c2UgdGhlIG5hdGl2ZSBtb3VzZWVudGVyIGV2ZW50IGJlY2F1c2UgaXQgd291bGQgdHJpZ2dlciB0b28gbWFueSB0aW1lcyBpbiB0aGUgZG9jdW1lbnRcbiAqIEluc3RlYWQsIGRpc3BhdGNoIGN1c3RvbSBET00gZXZlbnQgZnJvbSB0aGUgbWVudSBzbyB0aGF0IGl0IGNhbiBidWJibGVcbiAqIEVhY2ggbmVzdGVkIG1lbnUgY2FuIHVzZSB0aGUgbGlzdGVuZXIgdG8gY2hlY2sgaWYgdGhlIGV2ZW50IGlzIGZyb20gYSBjaGlsZCBvciBwYXJlbnQgbWVudVxuICovIGV4cG9ydCBjb25zdCB1c2VPbk1lbnVNb3VzZUVudGVyID0gKG9wdGlvbnMpPT57XG4gICAgY29uc3QgeyByZWZzLCBjYWxsYmFjaywgZWxlbWVudCwgZGlzYWJsZWQgfSA9IG9wdGlvbnM7XG4gICAgLy8gS2VlcCBtb3VzZSBldmVudCBoZXJlIGJlY2F1c2UgdGhpcyBpcyBlc3NlbnRpYWxseSBhIGN1c3RvbSAnbW91c2VlbnRlcicgZXZlbnRcbiAgICBjb25zdCBsaXN0ZW5lciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2KT0+e1xuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gcmVmc1swXTtcbiAgICAgICAgY29uc3Qgc29tZU1lbnVQb3BvdmVyID0gZXYudGFyZ2V0O1xuICAgICAgICB2YXIgX3BvcG92ZXJSZWZfY3VycmVudDtcbiAgICAgICAgLy8gc29tZU1lbnUgaXMgYSBjaGlsZCAtPiB3aWxsIGFsd2F5cyBiZSBjb250YWluZWQgYmVjYXVzZSBvZiB2UGFyZW50c1xuICAgICAgICAvLyBzb21lTWVudSBpcyBhIHBhcmVudCAtPiB3aWxsIGFsd2F5cyBub3QgYmUgY29udGFpbmVkIGJlY2F1c2Ugbm8gdlBhcmVudFxuICAgICAgICAvLyBzb21lTWVudSBpcyB0aGUgY3VycmVudCBwb3BvdmVyIC0+IGl0IHdpbGwgY29udGFpbiBpdHNlbGZcbiAgICAgICAgY29uc3QgaXNPdXRzaWRlUG9wb3ZlciA9ICFlbGVtZW50Q29udGFpbnMoKF9wb3BvdmVyUmVmX2N1cnJlbnQgPSBwb3BvdmVyUmVmLmN1cnJlbnQpICE9PSBudWxsICYmIF9wb3BvdmVyUmVmX2N1cnJlbnQgIT09IHZvaWQgMCA/IF9wb3BvdmVyUmVmX2N1cnJlbnQgOiBudWxsLCBzb21lTWVudVBvcG92ZXIpO1xuICAgICAgICBpZiAoaXNPdXRzaWRlUG9wb3ZlciAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGV2KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoTUVOVV9FTlRFUl9FVkVOVCwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKE1FTlVfRU5URVJfRVZFTlQsIGxpc3RlbmVyKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGxpc3RlbmVyLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBkaXNhYmxlZFxuICAgIF0pO1xufTtcbi8qKlxuICogRGlzcGF0Y2hlcyB0aGUgY3VzdG9tIE1vdXNlRXZlbnQgZW50ZXIgZXZlbnQuIFNpbWlsYXIgdG8gY2FsbGluZyBgZWwuY2xpY2soKWBcbiAqIEBwYXJhbSBlbCAtIGVsZW1lbnQgZm9yIHRoZSBldmVudCB0YXJnZXRcbiAqIEBwYXJhbSBuYXRpdmVFdmVudCAtIHRoZSBuYXRpdmUgbW91c2UgZXZlbnQgdGhpcyBpcyBtYXBwZWQgdG9cbiAqLyBleHBvcnQgY29uc3QgZGlzcGF0Y2hNZW51RW50ZXJFdmVudCA9IChlbCwgbmF0aXZlRXZlbnQpPT57XG4gICAgZWwuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoTUVOVV9FTlRFUl9FVkVOVCwge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50XG4gICAgICAgIH1cbiAgICB9KSk7XG59O1xuIiwiaW1wb3J0IHsgdXNlSGFzUGFyZW50Q29udGV4dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yJztcbmltcG9ydCB7IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vY29udGV4dHMvbWVudUNvbnRleHQnO1xuaW1wb3J0IHsgTWVudUxpc3RDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dHMvbWVudUxpc3RDb250ZXh0Jztcbi8qKlxuICogQSBjb21wb25lbnQgY2FuIGJlIGEgcGFydCBvZiBhIHN1Ym1lbnUgd2hldGhlciBpdHMgbWVudSBjb250ZXh0IGBpc1N1Ym1lbnVgIGZsYWcgaXMgdHJ1ZVxuICogb3Igd2hldGhlciBpdCBpcyBhIHBhcnQgb2YgYSBgTWVudUxpc3RgXG4gKlxuICogQSBzaW1wbGUgaG9vayB0byBjaGVjayBib3ggY29udGV4dHMgZWFzaWx5XG4gKlxuICogQHJldHVybnMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIHBhcnQgb2YgYSBzdWJtZW51XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUlzU3VibWVudSgpIHtcbiAgICBjb25zdCBtZW51Q29udGV4dFZhbHVlID0gdXNlTWVudUNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LmlzU3VibWVudSk7XG4gICAgY29uc3QgaGFzTWVudUxpc3RDb250ZXh0ID0gdXNlSGFzUGFyZW50Q29udGV4dChNZW51TGlzdENvbnRleHQpO1xuICAgIHJldHVybiBtZW51Q29udGV4dFZhbHVlIHx8IGhhc01lbnVMaXN0Q29udGV4dDtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVBvc2l0aW9uaW5nTW91c2VUYXJnZXQsIHVzZVBvc2l0aW9uaW5nLCByZXNvbHZlUG9zaXRpb25pbmdTaG9ydGhhbmQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9zaXRpb25pbmcnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUsIHVzZUlkLCB1c2VPbkNsaWNrT3V0c2lkZSwgdXNlRXZlbnRDYWxsYmFjaywgdXNlT25TY3JvbGxPdXRzaWRlLCBlbGVtZW50Q29udGFpbnMsIHVzZVRpbWVvdXQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IHVzZUZvY3VzRmluZGVycyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvbWVudUNvbnRleHQnO1xuaW1wb3J0IHsgTUVOVV9FTlRFUl9FVkVOVCwgdXNlT25NZW51TW91c2VFbnRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2luZGV4JztcbmltcG9ydCB7IHVzZUlzU3VibWVudSB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZUlzU3VibWVudSc7XG4vLyBJZiBpdCdzIG5vdCBwb3NzaWJsZSB0byBwb3NpdGlvbiB0aGUgc3VibWVudSBpbiBzbWFsbGVyIHZpZXdwb3J0cywgdHJ5XG4vLyBhbmQgZmFsbGJhY2sgdG8gdGhpcyBvcmRlciBvZiBwb3NpdGlvbnNcbmNvbnN0IHN1Ym1lbnVGYWxsYmFja1Bvc2l0aW9ucyA9IFtcbiAgICAnYWZ0ZXInLFxuICAgICdhZnRlci1ib3R0b20nLFxuICAgICdiZWZvcmUtdG9wJyxcbiAgICAnYmVmb3JlJyxcbiAgICAnYmVmb3JlLWJvdHRvbScsXG4gICAgJ2Fib3ZlJ1xuXTtcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgTWVudS5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VNZW51U3R5bGVzLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJNZW51X3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBNZW51XG4gKi8gZXhwb3J0IGNvbnN0IHVzZU1lbnVfdW5zdGFibGUgPSAocHJvcHMpPT57XG4gICAgY29uc3QgaXNTdWJtZW51ID0gdXNlSXNTdWJtZW51KCk7XG4gICAgY29uc3QgeyBob3ZlckRlbGF5ID0gNTAwLCBpbmxpbmUgPSBmYWxzZSwgaGFzQ2hlY2ttYXJrcyA9IGZhbHNlLCBoYXNJY29ucyA9IGZhbHNlLCBjbG9zZU9uU2Nyb2xsID0gZmFsc2UsIG9wZW5PbkNvbnRleHQgPSBmYWxzZSwgcGVyc2lzdE9uSXRlbUNsaWNrID0gZmFsc2UsIG9wZW5PbkhvdmVyID0gaXNTdWJtZW51LCBkZWZhdWx0Q2hlY2tlZFZhbHVlcywgbW91bnROb2RlID0gbnVsbCB9ID0gcHJvcHM7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gdXNlSWQoJ21lbnUnKTtcbiAgICBjb25zdCBbY29udGV4dFRhcmdldCwgc2V0Q29udGV4dFRhcmdldF0gPSB1c2VQb3NpdGlvbmluZ01vdXNlVGFyZ2V0KCk7XG4gICAgY29uc3QgcG9zaXRpb25pbmdTdGF0ZSA9IHtcbiAgICAgICAgcG9zaXRpb246IGlzU3VibWVudSA/ICdhZnRlcicgOiAnYmVsb3cnLFxuICAgICAgICBhbGlnbjogaXNTdWJtZW51ID8gJ3RvcCcgOiAnc3RhcnQnLFxuICAgICAgICB0YXJnZXQ6IHByb3BzLm9wZW5PbkNvbnRleHQgPyBjb250ZXh0VGFyZ2V0IDogdW5kZWZpbmVkLFxuICAgICAgICBmYWxsYmFja1Bvc2l0aW9uczogaXNTdWJtZW51ID8gc3VibWVudUZhbGxiYWNrUG9zaXRpb25zIDogdW5kZWZpbmVkLFxuICAgICAgICAuLi5yZXNvbHZlUG9zaXRpb25pbmdTaG9ydGhhbmQocHJvcHMucG9zaXRpb25pbmcpXG4gICAgfTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkocHJvcHMuY2hpbGRyZW4pO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ01lbnUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGlsZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdNZW51IG11c3QgY29udGFpbiBhdCBtb3N0IHR3byBjaGlsZHJlbicpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBtZW51VHJpZ2dlciA9IHVuZGVmaW5lZDtcbiAgICBsZXQgbWVudVBvcG92ZXIgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBtZW51VHJpZ2dlciA9IGNoaWxkcmVuWzBdO1xuICAgICAgICBtZW51UG9wb3ZlciA9IGNoaWxkcmVuWzFdO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIG1lbnVQb3BvdmVyID0gY2hpbGRyZW5bMF07XG4gICAgfVxuICAgIGNvbnN0IHsgdGFyZ2V0UmVmOiB0cmlnZ2VyUmVmLCBjb250YWluZXJSZWY6IG1lbnVQb3BvdmVyUmVmIH0gPSB1c2VQb3NpdGlvbmluZyhwb3NpdGlvbmluZ1N0YXRlKTtcbiAgICAvLyBUT0RPIEJldHRlciB3YXkgdG8gbmFycm93IHR5cGVzID9cbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VNZW51T3BlblN0YXRlKHtcbiAgICAgICAgaG92ZXJEZWxheSxcbiAgICAgICAgaXNTdWJtZW51LFxuICAgICAgICBzZXRDb250ZXh0VGFyZ2V0LFxuICAgICAgICBjbG9zZU9uU2Nyb2xsLFxuICAgICAgICBtZW51UG9wb3ZlclJlZixcbiAgICAgICAgdHJpZ2dlclJlZixcbiAgICAgICAgb3BlbjogcHJvcHMub3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW46IHByb3BzLmRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IHByb3BzLm9uT3BlbkNoYW5nZSxcbiAgICAgICAgb3Blbk9uQ29udGV4dFxuICAgIH0pO1xuICAgIGNvbnN0IFtjaGVja2VkVmFsdWVzLCBvbkNoZWNrZWRWYWx1ZUNoYW5nZV0gPSB1c2VNZW51U2VsZWN0YWJsZVN0YXRlKHtcbiAgICAgICAgY2hlY2tlZFZhbHVlczogcHJvcHMuY2hlY2tlZFZhbHVlcyxcbiAgICAgICAgZGVmYXVsdENoZWNrZWRWYWx1ZXMsXG4gICAgICAgIG9uQ2hlY2tlZFZhbHVlQ2hhbmdlOiBwcm9wcy5vbkNoZWNrZWRWYWx1ZUNoYW5nZVxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlubGluZSxcbiAgICAgICAgaG92ZXJEZWxheSxcbiAgICAgICAgdHJpZ2dlcklkLFxuICAgICAgICBpc1N1Ym1lbnUsXG4gICAgICAgIG9wZW5PbkhvdmVyLFxuICAgICAgICBjb250ZXh0VGFyZ2V0LFxuICAgICAgICBzZXRDb250ZXh0VGFyZ2V0LFxuICAgICAgICBoYXNDaGVja21hcmtzLFxuICAgICAgICBoYXNJY29ucyxcbiAgICAgICAgY2xvc2VPblNjcm9sbCxcbiAgICAgICAgbWVudVRyaWdnZXIsXG4gICAgICAgIG1lbnVQb3BvdmVyLFxuICAgICAgICBtb3VudE5vZGUsXG4gICAgICAgIHRyaWdnZXJSZWYsXG4gICAgICAgIG1lbnVQb3BvdmVyUmVmLFxuICAgICAgICBjb21wb25lbnRzOiB7fSxcbiAgICAgICAgb3Blbk9uQ29udGV4dCxcbiAgICAgICAgb3BlbixcbiAgICAgICAgc2V0T3BlbixcbiAgICAgICAgY2hlY2tlZFZhbHVlcyxcbiAgICAgICAgb25DaGVja2VkVmFsdWVDaGFuZ2UsXG4gICAgICAgIHBlcnNpc3RPbkl0ZW1DbGlja1xuICAgIH07XG59O1xuLyoqXG4gKiBBZGRzIGFwcHJvcHJpYXRlIHN0YXRlIHZhbHVlcyBhbmQgaGFuZGxlcnMgZm9yIHNlbGVjdGFibGUgaXRlbXNcbiAqIGkuZSBjaGVja2JveGVzIGFuZCByYWRpb3NcbiAqLyBjb25zdCB1c2VNZW51U2VsZWN0YWJsZVN0YXRlID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IFtjaGVja2VkVmFsdWVzLCBzZXRDaGVja2VkVmFsdWVzXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgICAgc3RhdGU6IHByb3BzLmNoZWNrZWRWYWx1ZXMsXG4gICAgICAgIGRlZmF1bHRTdGF0ZTogcHJvcHMuZGVmYXVsdENoZWNrZWRWYWx1ZXMsXG4gICAgICAgIGluaXRpYWxTdGF0ZToge31cbiAgICB9KTtcbiAgICBjb25zdCBvbkNoZWNrZWRWYWx1ZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUsIHsgbmFtZSwgY2hlY2tlZEl0ZW1zIH0pPT57XG4gICAgICAgIHZhciBfcHJvcHNfb25DaGVja2VkVmFsdWVDaGFuZ2U7XG4gICAgICAgIChfcHJvcHNfb25DaGVja2VkVmFsdWVDaGFuZ2UgPSBwcm9wcy5vbkNoZWNrZWRWYWx1ZUNoYW5nZSkgPT09IG51bGwgfHwgX3Byb3BzX29uQ2hlY2tlZFZhbHVlQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfb25DaGVja2VkVmFsdWVDaGFuZ2UuY2FsbChwcm9wcywgZSwge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGNoZWNrZWRJdGVtc1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0Q2hlY2tlZFZhbHVlcygoY3VycmVudFZhbHVlKT0+KHtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgW25hbWVdOiBjaGVja2VkSXRlbXNcbiAgICAgICAgICAgIH0pKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW1xuICAgICAgICBjaGVja2VkVmFsdWVzLFxuICAgICAgICBvbkNoZWNrZWRWYWx1ZUNoYW5nZVxuICAgIF07XG59O1xuY29uc3QgdXNlTWVudU9wZW5TdGF0ZSA9IChzdGF0ZSk9PntcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBwYXJlbnRTZXRPcGVuID0gdXNlTWVudUNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LnNldE9wZW4pO1xuICAgIGNvbnN0IG9uT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUsIGRhdGEpPT57XG4gICAgICAgIHZhciBfc3RhdGVfb25PcGVuQ2hhbmdlO1xuICAgICAgICByZXR1cm4gKF9zdGF0ZV9vbk9wZW5DaGFuZ2UgPSBzdGF0ZS5vbk9wZW5DaGFuZ2UpID09PSBudWxsIHx8IF9zdGF0ZV9vbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9zdGF0ZV9vbk9wZW5DaGFuZ2UuY2FsbChzdGF0ZSwgZSwgZGF0YSk7XG4gICAgfSk7XG4gICAgY29uc3QgZW50ZXJpbmdUcmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3BlblN0YXRlXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgICAgc3RhdGU6IHN0YXRlLm9wZW4sXG4gICAgICAgIGRlZmF1bHRTdGF0ZTogc3RhdGUuZGVmYXVsdE9wZW4sXG4gICAgICAgIGluaXRpYWxTdGF0ZTogZmFsc2VcbiAgICB9KTtcbiAgICBjb25zdCB0cnlTZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygoZSwgZGF0YSk9PntcbiAgICAgICAgY29uc3QgZXZlbnQgPSBlIGluc3RhbmNlb2YgQ3VzdG9tRXZlbnQgJiYgZS50eXBlID09PSBNRU5VX0VOVEVSX0VWRU5UID8gZS5kZXRhaWwubmF0aXZlRXZlbnQgOiBlO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UoZXZlbnQsIHtcbiAgICAgICAgICAgIC4uLmRhdGFcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLm9wZW4gJiYgZS50eXBlID09PSAnY29udGV4dG1lbnUnKSB7XG4gICAgICAgICAgICBzdGF0ZS5zZXRDb250ZXh0VGFyZ2V0KGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZGF0YS5vcGVuKSB7XG4gICAgICAgICAgICBzdGF0ZS5zZXRDb250ZXh0VGFyZ2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYnViYmxlKSB7XG4gICAgICAgICAgICBwYXJlbnRTZXRPcGVuKGUsIHtcbiAgICAgICAgICAgICAgICAuLi5kYXRhXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzZXRPcGVuU3RhdGUoZGF0YS5vcGVuKTtcbiAgICB9KTtcbiAgICBjb25zdCBbc2V0T3BlblRpbWVvdXQsIGNsZWFyT3BlblRpbWVvdXRdID0gdXNlVGltZW91dCgpO1xuICAgIGNvbnN0IHNldE9wZW4gPSB1c2VFdmVudENhbGxiYWNrKChlLCBkYXRhKT0+e1xuICAgICAgICBjbGVhck9wZW5UaW1lb3V0KCk7XG4gICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBFdmVudCkgJiYgZS5wZXJzaXN0KSB7XG4gICAgICAgICAgICAvLyA8IFJlYWN0IDE3IHN0aWxsIHVzZXMgcG9vbGVkIHN5bnRoZXRpYyBldmVudHNcbiAgICAgICAgICAgIGUucGVyc2lzdCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdtb3VzZWxlYXZlJyB8fCBlLnR5cGUgPT09ICdtb3VzZWVudGVyJyB8fCBlLnR5cGUgPT09ICdtb3VzZW1vdmUnIHx8IGUudHlwZSA9PT0gTUVOVV9FTlRFUl9FVkVOVCkge1xuICAgICAgICAgICAgdmFyIF9zdGF0ZV90cmlnZ2VyUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoKF9zdGF0ZV90cmlnZ2VyUmVmX2N1cnJlbnQgPSBzdGF0ZS50cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9zdGF0ZV90cmlnZ2VyUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9zdGF0ZV90cmlnZ2VyUmVmX2N1cnJlbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgZW50ZXJpbmdUcmlnZ2VyUmVmLmN1cnJlbnQgPSBlLnR5cGUgPT09ICdtb3VzZWVudGVyJyB8fCBlLnR5cGUgPT09ICdtb3VzZW1vdmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0T3BlblRpbWVvdXQoKCk9PnRyeVNldE9wZW4oZSwgZGF0YSksIHN0YXRlLmhvdmVyRGVsYXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5U2V0T3BlbihlLCBkYXRhKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHVzZU9uQ2xpY2tPdXRzaWRlKHtcbiAgICAgICAgY29udGFpbnM6IGVsZW1lbnRDb250YWlucyxcbiAgICAgICAgZGlzYWJsZWQ6ICFvcGVuLFxuICAgICAgICBlbGVtZW50OiB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgcmVmczogW1xuICAgICAgICAgICAgc3RhdGUubWVudVBvcG92ZXJSZWYsXG4gICAgICAgICAgICAhc3RhdGUub3Blbk9uQ29udGV4dCAmJiBzdGF0ZS50cmlnZ2VyUmVmXG4gICAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICBjYWxsYmFjazogKGV2ZW50KT0+c2V0T3BlbihldmVudCwge1xuICAgICAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdjbGlja091dHNpZGUnLFxuICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICB9KVxuICAgIH0pO1xuICAgIC8vIG9ubHkgY2xvc2Ugb24gc2Nyb2xsIGZvciBjb250ZXh0LCBvciB3aGVuIGNsb3NlT25TY3JvbGwgaXMgc3BlY2lmaWVkXG4gICAgY29uc3QgY2xvc2VPblNjcm9sbCA9IHN0YXRlLm9wZW5PbkNvbnRleHQgfHwgc3RhdGUuY2xvc2VPblNjcm9sbDtcbiAgICB1c2VPblNjcm9sbE91dHNpZGUoe1xuICAgICAgICBjb250YWluczogZWxlbWVudENvbnRhaW5zLFxuICAgICAgICBlbGVtZW50OiB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgY2FsbGJhY2s6IChldmVudCk9PnNldE9wZW4oZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2Nyb2xsT3V0c2lkZScsXG4gICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgIH0pLFxuICAgICAgICByZWZzOiBbXG4gICAgICAgICAgICBzdGF0ZS5tZW51UG9wb3ZlclJlZixcbiAgICAgICAgICAgICFzdGF0ZS5vcGVuT25Db250ZXh0ICYmIHN0YXRlLnRyaWdnZXJSZWZcbiAgICAgICAgXS5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIGRpc2FibGVkOiAhb3BlbiB8fCAhY2xvc2VPblNjcm9sbFxuICAgIH0pO1xuICAgIHVzZU9uTWVudU1vdXNlRW50ZXIoe1xuICAgICAgICBlbGVtZW50OiB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgY2FsbGJhY2s6IChldmVudCk9PntcbiAgICAgICAgICAgIC8vIFdoZW4gbW92aW5nIGZyb20gYSBtZW51IGRpcmVjdGx5IGJhY2sgdG8gaXRzIHRyaWdnZXIsIHRoaXMgaGFuZGxlciBjYW4gY2xvc2UgdGhlIG1lbnVcbiAgICAgICAgICAgIC8vIEV4cGxpY2l0bHkgY2hlY2sgYSBmbGFnIHRvIHNlZSBpZiB0aGlzIHNpdHVhdGlvbiBoYXBwZW5zXG4gICAgICAgICAgICBpZiAoIWVudGVyaW5nVHJpZ2dlclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgc2V0T3BlbihldmVudCwge1xuICAgICAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbnVNb3VzZUVudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6ICFvcGVuLFxuICAgICAgICByZWZzOiBbXG4gICAgICAgICAgICBzdGF0ZS5tZW51UG9wb3ZlclJlZlxuICAgICAgICBdXG4gICAgfSk7XG4gICAgLy8gTWFuYWdlIGZvY3VzIGZvciBvcGVuIHN0YXRlXG4gICAgY29uc3QgeyBmaW5kRmlyc3RGb2N1c2FibGUgfSA9IHVzZUZvY3VzRmluZGVycygpO1xuICAgIGNvbnN0IGZvY3VzRmlyc3QgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IGZpbmRGaXJzdEZvY3VzYWJsZShzdGF0ZS5tZW51UG9wb3ZlclJlZi5jdXJyZW50KTtcbiAgICAgICAgZmlyc3RGb2N1c2FibGUgPT09IG51bGwgfHwgZmlyc3RGb2N1c2FibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpcnN0Rm9jdXNhYmxlLmZvY3VzKCk7XG4gICAgfSwgW1xuICAgICAgICBmaW5kRmlyc3RGb2N1c2FibGUsXG4gICAgICAgIHN0YXRlLm1lbnVQb3BvdmVyUmVmXG4gICAgXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICBmb2N1c0ZpcnN0KCk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIG9wZW4sXG4gICAgICAgIGZvY3VzRmlyc3RcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBvcGVuLFxuICAgICAgICBzZXRPcGVuXG4gICAgXTtcbn07XG4iLCJleHBvcnQgZnVuY3Rpb24gdXNlTWVudUNvbnRleHRWYWx1ZXNfdW5zdGFibGUoc3RhdGUpIHtcbiAgICBjb25zdCB7IGNoZWNrZWRWYWx1ZXMsIGhhc0NoZWNrbWFya3MsIGhhc0ljb25zLCBpbmxpbmUsIGlzU3VibWVudSwgbWVudVBvcG92ZXJSZWYsIG1vdW50Tm9kZSwgb25DaGVja2VkVmFsdWVDaGFuZ2UsIG9wZW4sIG9wZW5PbkNvbnRleHQsIG9wZW5PbkhvdmVyLCBwZXJzaXN0T25JdGVtQ2xpY2ssIHNldE9wZW4sIHRyaWdnZXJJZCwgdHJpZ2dlclJlZiB9ID0gc3RhdGU7XG4gICAgLy8gVGhpcyBjb250ZXh0IGlzIGNyZWF0ZWQgd2l0aCBcIkBmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yXCIsIHRoZXNlIGlzIG5vIHNlbnNlIHRvIG1lbW9pemUgaXRcbiAgICBjb25zdCBtZW51ID0ge1xuICAgICAgICBjaGVja2VkVmFsdWVzLFxuICAgICAgICBoYXNDaGVja21hcmtzLFxuICAgICAgICBoYXNJY29ucyxcbiAgICAgICAgaW5saW5lLFxuICAgICAgICBpc1N1Ym1lbnUsXG4gICAgICAgIG1lbnVQb3BvdmVyUmVmLFxuICAgICAgICBtb3VudE5vZGUsXG4gICAgICAgIG9uQ2hlY2tlZFZhbHVlQ2hhbmdlLFxuICAgICAgICBvcGVuLFxuICAgICAgICBvcGVuT25Db250ZXh0LFxuICAgICAgICBvcGVuT25Ib3ZlcixcbiAgICAgICAgcGVyc2lzdE9uSXRlbUNsaWNrLFxuICAgICAgICBzZXRPcGVuLFxuICAgICAgICB0cmlnZ2VySWQsXG4gICAgICAgIHRyaWdnZXJSZWZcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIG1lbnVcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVudVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvbWVudUNvbnRleHQnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBNZW51XG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlck1lbnVfdW5zdGFibGUgPSAoc3RhdGUsIGNvbnRleHRWYWx1ZXMpPT57XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChNZW51UHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbnRleHRWYWx1ZXMubWVudVxuICAgIH0sIHN0YXRlLm1lbnVUcmlnZ2VyLCBzdGF0ZS5vcGVuICYmIHN0YXRlLm1lbnVQb3BvdmVyKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW51X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VNZW51JztcbmltcG9ydCB7IHVzZU1lbnVDb250ZXh0VmFsdWVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VNZW51Q29udGV4dFZhbHVlcyc7XG5pbXBvcnQgeyByZW5kZXJNZW51X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJNZW51Jztcbi8qKlxuICogV3JhcHBlciBjb21wb25lbnQgdGhhdCBtYW5hZ2VzIHN0YXRlIGZvciBhIHBvcHVwIE1lbnVMaXN0IGFuZCBhIE1lbnVUcmlnZ2VyXG4gKi8gZXhwb3J0IGNvbnN0IE1lbnUgPSAocHJvcHMpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VNZW51X3Vuc3RhYmxlKHByb3BzKTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gdXNlTWVudUNvbnRleHRWYWx1ZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJNZW51X3Vuc3RhYmxlKHN0YXRlLCBjb250ZXh0VmFsdWVzKTtcbn07XG5NZW51LmRpc3BsYXlOYW1lID0gJ01lbnUnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQXJyb3dMZWZ0LCBUYWIsIEFycm93UmlnaHQsIEVzY2FwZSB9IGZyb20gJ0BmbHVlbnR1aS9rZXlib2FyZC1rZXlzJztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVyZ2VkUmVmcywgc2xvdCwgdXNlVGltZW91dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlTWVudUNvbnRleHRfdW5zdGFibGUgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9tZW51Q29udGV4dCc7XG5pbXBvcnQgeyBkaXNwYXRjaE1lbnVFbnRlckV2ZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvaW5kZXgnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlSXNTdWJtZW51IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlSXNTdWJtZW51JztcbmltcG9ydCB7IHVzZVJlc3RvcmVGb2N1c1NvdXJjZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgTWVudVBvcG92ZXIuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlTWVudVBvcG92ZXJTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlck1lbnVQb3BvdmVyX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBNZW51UG9wb3ZlclxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIE1lbnVQb3BvdmVyXG4gKi8gZXhwb3J0IGNvbnN0IHVzZU1lbnVQb3BvdmVyX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCBwb3BvdmVyUmVmID0gdXNlTWVudUNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0Lm1lbnVQb3BvdmVyUmVmKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlTWVudUNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LnNldE9wZW4pO1xuICAgIGNvbnN0IG9wZW4gPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQub3Blbik7XG4gICAgY29uc3Qgb3Blbk9uSG92ZXIgPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQub3Blbk9uSG92ZXIpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQudHJpZ2dlclJlZik7XG4gICAgY29uc3QgaXNTdWJtZW51ID0gdXNlSXNTdWJtZW51KCk7XG4gICAgY29uc3QgY2FuRGlzcGF0Y2hDdXN0b21FdmVudFJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcbiAgICBjb25zdCByZXN0b3JlRm9jdXNTb3VyY2VBdHRyaWJ1dGVzID0gdXNlUmVzdG9yZUZvY3VzU291cmNlKCk7XG4gICAgY29uc3QgW3NldFRocm90dGxlVGltZW91dCwgY2xlYXJUaHJvdHRsZVRpbWVvdXRdID0gdXNlVGltZW91dCgpO1xuICAgIGNvbnN0IHsgZGlyIH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBDbG9zZUFycm93S2V5ID0gZGlyID09PSAnbHRyJyA/IEFycm93TGVmdCA6IEFycm93UmlnaHQ7XG4gICAgLy8gdXNlIERPTSBsaXN0ZW5lciBzaW5jZSByZWFjdCBldmVudHMgcHJvcGFnYXRlIHVwIHRoZSByZWFjdCB0cmVlXG4gICAgLy8gbm8gbmVlZCB0byBkbyBgY29udGFpbnNgIGxvZ2ljIGFzIG1lbnVzIGFyZSBhbGwgcG9zaXRpb25lZCBpbiBkaWZmZXJlbnQgcG9ydGFsc1xuICAgIGNvbnN0IG1vdXNlT3Zlckxpc3RlbmVyQ2FsbGJhY2tSZWYgPSBSZWFjdC51c2VDYWxsYmFjaygobm9kZSk9PntcbiAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgIC8vIERpc3BhdGNoZXMgdGhlIGN1c3RvbSBtZW51IG1vdXNlIGVudGVyIGV2ZW50IHdpdGggdGhyb3R0bGluZ1xuICAgICAgICAgICAgLy8gTmVlZHMgdG8gdHJpZ2dlciBvbiBtb3VzZW92ZXIgdG8gc3VwcG9ydCBrZXlib2FyZCArIG1vdXNlIHRvZ2V0aGVyXG4gICAgICAgICAgICAvLyBpLmUuIGtleWJvYXJkIG9wZW5zIHN1Ym1lbnVzIHdoaWxlIGN1cnNvciBpcyBzdGlsbCBvbiB0aGUgcGFyZW50XG4gICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIChlKT0+e1xuICAgICAgICAgICAgICAgIGlmIChjYW5EaXNwYXRjaEN1c3RvbUV2ZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuRGlzcGF0Y2hDdXN0b21FdmVudFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoTWVudUVudGVyRXZlbnQocG9wb3ZlclJlZi5jdXJyZW50LCBlKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGhyb3R0bGVUaW1lb3V0KCgpPT5jYW5EaXNwYXRjaEN1c3RvbUV2ZW50UmVmLmN1cnJlbnQgPSB0cnVlLCAyNTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBwb3BvdmVyUmVmLFxuICAgICAgICBzZXRUaHJvdHRsZVRpbWVvdXRcbiAgICBdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgKCk9PmNsZWFyVGhyb3R0bGVUaW1lb3V0KCk7XG4gICAgfSwgW1xuICAgICAgICBjbGVhclRocm90dGxlVGltZW91dFxuICAgIF0pO1xuICAgIHZhciBfdXNlTWVudUNvbnRleHRfdW5zdGFibGU7XG4gICAgY29uc3QgaW5saW5lID0gKF91c2VNZW51Q29udGV4dF91bnN0YWJsZSA9IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5pbmxpbmUpKSAhPT0gbnVsbCAmJiBfdXNlTWVudUNvbnRleHRfdW5zdGFibGUgIT09IHZvaWQgMCA/IF91c2VNZW51Q29udGV4dF91bnN0YWJsZSA6IGZhbHNlO1xuICAgIGNvbnN0IG1vdW50Tm9kZSA9IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5tb3VudE5vZGUpO1xuICAgIGNvbnN0IHJvb3RQcm9wcyA9IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcbiAgICAgICAgLi4ucmVzdG9yZUZvY3VzU291cmNlQXR0cmlidXRlcyxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIHBvcG92ZXJSZWYsIG1vdXNlT3Zlckxpc3RlbmVyQ2FsbGJhY2tSZWYpXG4gICAgfSksIHtcbiAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgfSk7XG4gICAgY29uc3QgeyBvbk1vdXNlRW50ZXI6IG9uTW91c2VFbnRlck9yaWdpbmFsLCBvbktleURvd246IG9uS2V5RG93bk9yaWdpbmFsIH0gPSByb290UHJvcHM7XG4gICAgcm9vdFByb3BzLm9uTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBpZiAob3Blbk9uSG92ZXIgfHwgaXNTdWJtZW51KSB7XG4gICAgICAgICAgICBzZXRPcGVuKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogJ21lbnVQb3BvdmVyTW91c2VFbnRlcicsXG4gICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIG9uTW91c2VFbnRlck9yaWdpbmFsID09PSBudWxsIHx8IG9uTW91c2VFbnRlck9yaWdpbmFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk1vdXNlRW50ZXJPcmlnaW5hbChldmVudCk7XG4gICAgfSk7XG4gICAgcm9vdFByb3BzLm9uS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgICAgIGlmIChrZXkgPT09IEVzY2FwZSB8fCBpc1N1Ym1lbnUgJiYga2V5ID09PSBDbG9zZUFycm93S2V5KSB7XG4gICAgICAgICAgICB2YXIgX3BvcG92ZXJSZWZfY3VycmVudDtcbiAgICAgICAgICAgIGlmIChvcGVuICYmICgoX3BvcG92ZXJSZWZfY3VycmVudCA9IHBvcG92ZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3BvcG92ZXJSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3BvcG92ZXJSZWZfY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQpKSAmJiAhZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHtcbiAgICAgICAgICAgICAgICBzZXRPcGVuKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBrZXlib2FyZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbnVQb3BvdmVyS2V5RG93bicsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gc3RvcCBwcm9wYWdhdGlvbiB0byBhdm9pZCBjb25mbGljdGluZyB3aXRoIG90aGVyIGVsZW1lbnRzIHRoYXQgbGlzdGVuIGZvciBgRXNjYXBlYFxuICAgICAgICAgICAgICAgIC8vIGUsZzogRGlhbG9nLCBQb3BvdmVyLCBNZW51IGFuZCBUb29sdGlwXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSBUYWIpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbWVudVBvcG92ZXJLZXlEb3duJyxcbiAgICAgICAgICAgICAgICBldmVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIWlzU3VibWVudSkge1xuICAgICAgICAgICAgICAgIHZhciBfdHJpZ2dlclJlZl9jdXJyZW50O1xuICAgICAgICAgICAgICAgIChfdHJpZ2dlclJlZl9jdXJyZW50ID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfdHJpZ2dlclJlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHJpZ2dlclJlZl9jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25LZXlEb3duT3JpZ2luYWwgPT09IG51bGwgfHwgb25LZXlEb3duT3JpZ2luYWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uS2V5RG93bk9yaWdpbmFsKGV2ZW50KTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpbmxpbmUsXG4gICAgICAgIG1vdW50Tm9kZSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogcm9vdFByb3BzXG4gICAgfTtcbn07XG4iLCJpbXBvcnQgeyBtZXJnZUNsYXNzZXMsIF9fc3R5bGVzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zLCB0eXBvZ3JhcGh5U3R5bGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IGNyZWF0ZVNsaWRlU3R5bGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nJztcbmV4cG9ydCBjb25zdCBtZW51UG9wb3ZlckNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktTWVudVBvcG92ZXInXG59O1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZ0ODVucDVcIixcbiAgICBEZTNwenE6IFwiZnh1Z3c0clwiLFxuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIEJmNGplZGs6IFwiZmw4ZnVzaVwiLFxuICAgIEIydTB5NmI6IFwiZjFrYWFpM3ZcIixcbiAgICBCNjh0YzgyOiBcImYxcDlvMWJhXCIsXG4gICAgYTliNjc3OiBcImYxYWhwcDgyXCIsXG4gICAgRTVwaXpvOiBcImYxaGc5MDFyXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImZkM3BkOGhcIixcbiAgICBCZ2ZnNWRhOiAwLFxuICAgIEI5eGF2MGc6IDAsXG4gICAgb2l2andlOiAwLFxuICAgIEJuMHFnem06IDAsXG4gICAgQjRnOW5lYjogMCxcbiAgICB6aGp3eTM6IDAsXG4gICAgd3ZwcWU1OiAwLFxuICAgIGlidjZoaDogMCxcbiAgICB1MW10anU6IDAsXG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIGk4dnZxYzogMCxcbiAgICBnMnUzd2U6IDAsXG4gICAgaWN2eW90OiAwLFxuICAgIEI0ajUyZm86IDAsXG4gICAgaXJzd3BzOiBcImY5Z2dlemlcIixcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZraGo1MDhcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCZzk2Z3dwOiBcImYxaTNpdW1pXCIsXG4gICAgQjkzb3RmMzogXCJmMThrNGJuNlwiLFxuICAgIHZpbjE3ZDogXCJmbzFreXZmXCIsXG4gICAgRXprbjNiOiBcImZldHhvN2VcIixcbiAgICBueWl5Mmc6IFwiZjh4MXZ6MVwiLFxuICAgIHN3dnJ2cTogXCJmOGcwYW56XCIsXG4gICAgQmtvdmJ0MzogXCJmZXp3bjlpXCIsXG4gICAgaGdqZGhuOiBcImZ6NWVmZ2VcIixcbiAgICBmc3k5ZGs6IFwiZjF5ZGl4bDRcIixcbiAgICBCM29ncmVoOiBcImY4ZGdxajVcIixcbiAgICBqdjQ5eDU6IFwiZm55Zm5yOFwiLFxuICAgIEJrN280OGM6IFwiZmd3NzdyNFwiLFxuICAgIEJ2MTJ5YjM6IFwiZnRqZTBzNFwiLFxuICAgIHowdDFjdTogXCJmaTE5eGN2XCIsXG4gICAgQmtzMDV6eDogXCJmMW16YWpoa1wiLFxuICAgIEJ2dGdsYWc6IFwiZmpwNGg5eVwiXG4gIH1cbn0sIHtcbiAgZDogW1tcIi5mdDg1bnA1e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZnh1Z3c0cntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTt9XCIsIFwiLmYxOW4wZTV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIuZjFld3RxY2x7Ym94LXNpemluZzpib3JkZXItYm94O31cIiwgXCIuZmw4ZnVzaXttaW4td2lkdGg6MTM4cHg7fVwiLCBcIi5mMWthYWkzdnttYXgtd2lkdGg6MzAwcHg7fVwiLCBcIi5mMXA5bzFiYXtvdmVyZmxvdy14OmhpZGRlbjt9XCIsIFwiLmYxYWhwcDgye3dpZHRoOm1heC1jb250ZW50O31cIiwgXCIuZjFoZzkwMXJ7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cxNik7fVwiLCBbXCIuZmQzcGQ4aHtwYWRkaW5nOjRweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmY5Z2dleml7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgXCIuZms2Zm91Y3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5QmFzZSk7fVwiLCBcIi5ma2hqNTA4e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO31cIiwgXCIuZmlnc29rNntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7fVwiLCBcIi5mMWkzaXVtaXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7fVwiLCBcIi5mMThrNGJuNnthbmltYXRpb24tY29tcG9zaXRpb246YWNjdW11bGF0ZTt9XCIsIFwiLmZvMWt5dmZ7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWR1cmF0aW9uU2xvd2VyKTt9XCIsIFwiLmZldHhvN2V7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1jdXJ2ZURlY2VsZXJhdGVNaWQpO31cIiwgXCIuZjh4MXZ6MXstLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS14OjBweDt9XCIsIFwiLmY4ZzBhbnp7LS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteToxMHB4O31cIiwgXCIuZmV6d245aVtkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XXstLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS14Oi0xMHB4O31cIiwgXCIuZno1ZWZnZVtkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XXstLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS15OjBweDt9XCIsIFwiLmYxeWRpeGw0W2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXXstLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS14OjBweDt9XCIsIFwiLmY4ZGdxajVbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1ib3R0b21dey0tZnVpLXBvc2l0aW9uaW5nLXNsaWRlLWRpc3RhbmNlLXk6LTEwcHg7fVwiLCBcIi5mbnlmbnI4W2RhdGEtcG9wcGVyLXBsYWNlbWVudF49bGVmdF17LS1mdWktcG9zaXRpb25pbmctc2xpZGUtZGlzdGFuY2UteDoxMHB4O31cIiwgXCIuZmd3NzdyNFtkYXRhLXBvcHBlci1wbGFjZW1lbnRePWxlZnRdey0tZnVpLXBvc2l0aW9uaW5nLXNsaWRlLWRpc3RhbmNlLXk6MHB4O31cIiwgXCIuZnRqZTBzNHthbmltYXRpb24tbmFtZTpmNWo4YmlpLGY3OXN1YWQ7fVwiXSxcbiAgazogW1wiQGtleWZyYW1lcyBmNWo4Ymlpe2Zyb217b3BhY2l0eTowO310b3tvcGFjaXR5OjE7fX1cIiwgXCJAa2V5ZnJhbWVzIGY3OXN1YWR7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLWZ1aS1wb3NpdGlvbmluZy1zbGlkZS1kaXN0YW5jZS14KSwgdmFyKC0tZnVpLXBvc2l0aW9uaW5nLXNsaWRlLWRpc3RhbmNlLXkpKTt9fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbil7LmZpMTl4Y3ZbZGF0YS1wb3BwZXItcGxhY2VtZW50XXthbmltYXRpb24tZHVyYXRpb246MW1zO319XCIsIHtcbiAgICBtOiBcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uKVwiXG4gIH1dLCBbXCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pey5mMW16YWpoa1tkYXRhLXBvcHBlci1wbGFjZW1lbnRde2FuaW1hdGlvbi1uYW1lOmY1ajhiaWk7fX1cIiwge1xuICAgIG06IFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pXCJcbiAgfV1dLFxuICB0OiBbXCJAc3VwcG9ydHMgbm90IChhbmltYXRpb24tY29tcG9zaXRpb246IGFjY3VtdWxhdGUpey5manA0aDl5W2RhdGEtcG9wcGVyLXBsYWNlbWVudF17YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaTt9fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIE1lbnUgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZW51UG9wb3ZlclN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMobWVudVBvcG92ZXJDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VNZW51UG9wb3ZlclN0eWxlcy5zdHlsZXMuanMubWFwIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9ydGFsJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgTWVudVBvcG92ZXJcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyTWVudVBvcG92ZXJfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIGlmIChzdGF0ZS5pbmxpbmUpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7fSk7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goUG9ydGFsLCB7XG4gICAgICAgIG1vdW50Tm9kZTogc3RhdGUubW91bnROb2RlLFxuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbnVQb3BvdmVyX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VNZW51UG9wb3Zlcic7XG5pbXBvcnQgeyB1c2VNZW51UG9wb3ZlclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVudVBvcG92ZXJTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHJlbmRlck1lbnVQb3BvdmVyX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJNZW51UG9wb3Zlcic7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogUG9wb3ZlciBpbnRlbmRlZCB0byB3cmFwIGBNZW51TGlzdGAgYW5kIGFkZHMgc3R5bGluZyBhbmQgaW50ZXJhY3Rpb24gc3VwcG9ydCBzcGVjaWZpYyB0byBtZW51c1xuICovIGV4cG9ydCBjb25zdCBNZW51UG9wb3ZlciA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZU1lbnVQb3BvdmVyX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZU1lbnVQb3BvdmVyU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZU1lbnVQb3BvdmVyU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJNZW51UG9wb3Zlcl91bnN0YWJsZShzdGF0ZSk7XG59KTtcbk1lbnVQb3BvdmVyLmRpc3BsYXlOYW1lID0gJ01lbnVQb3BvdmVyJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvbWVudUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlSXNTdWJtZW51IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlSXNTdWJtZW51JztcbmltcG9ydCB7IHVzZUZvY3VzRmluZGVycywgdXNlUmVzdG9yZUZvY3VzVGFyZ2V0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgQXJyb3dSaWdodCwgQXJyb3dMZWZ0LCBFc2NhcGUsIEFycm93RG93biB9IGZyb20gJ0BmbHVlbnR1aS9rZXlib2FyZC1rZXlzJztcbmltcG9ydCB7IGFwcGx5VHJpZ2dlclByb3BzVG9DaGlsZHJlbiwgZ2V0VHJpZ2dlckNoaWxkLCBpc0hUTUxFbGVtZW50LCBtZXJnZUNhbGxiYWNrcywgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVyZ2VkUmVmcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlQVJJQUJ1dHRvblByb3BzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBNZW51VHJpZ2dlci5cbiAqIENsb25lcyB0aGUgb25seSBjaGlsZCBjb21wb25lbnQgYW5kIGFkZHMgbmVjZXNzYXJ5IGV2ZW50IGhhbmRsaW5nIGJlaGF2aW91cnMgdG8gb3BlbiBhIHBvcHVwIG1lbnVcbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgTWVudVRyaWdnZXJcbiAqLyBleHBvcnQgY29uc3QgdXNlTWVudVRyaWdnZXJfdW5zdGFibGUgPSAocHJvcHMpPT57XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgZGlzYWJsZUJ1dHRvbkVuaGFuY2VtZW50ID0gZmFsc2UgfSA9IHByb3BzO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQudHJpZ2dlclJlZik7XG4gICAgY29uc3QgbWVudVBvcG92ZXJSZWYgPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQubWVudVBvcG92ZXJSZWYpO1xuICAgIGNvbnN0IHNldE9wZW4gPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQuc2V0T3Blbik7XG4gICAgY29uc3Qgb3BlbiA9IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSB1c2VNZW51Q29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQudHJpZ2dlcklkKTtcbiAgICBjb25zdCBvcGVuT25Ib3ZlciA9IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuT25Ib3Zlcik7XG4gICAgY29uc3Qgb3Blbk9uQ29udGV4dCA9IHVzZU1lbnVDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5vcGVuT25Db250ZXh0KTtcbiAgICBjb25zdCByZXN0b3JlRm9jdXNUYXJnZXRBdHRyaWJ1dGUgPSB1c2VSZXN0b3JlRm9jdXNUYXJnZXQoKTtcbiAgICBjb25zdCBpc1N1Ym1lbnUgPSB1c2VJc1N1Ym1lbnUoKTtcbiAgICBjb25zdCB7IGZpbmRGaXJzdEZvY3VzYWJsZSB9ID0gdXNlRm9jdXNGaW5kZXJzKCk7XG4gICAgY29uc3QgZm9jdXNGaXJzdCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZmluZEZpcnN0Rm9jdXNhYmxlKG1lbnVQb3BvdmVyUmVmLmN1cnJlbnQpO1xuICAgICAgICBmaXJzdEZvY3VzYWJsZSA9PT0gbnVsbCB8fCBmaXJzdEZvY3VzYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgICB9LCBbXG4gICAgICAgIGZpbmRGaXJzdEZvY3VzYWJsZSxcbiAgICAgICAgbWVudVBvcG92ZXJSZWZcbiAgICBdKTtcbiAgICBjb25zdCBvcGVuZWRXaXRoS2V5Ym9hcmRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGhhc01vdXNlTW92ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHsgZGlyIH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBPcGVuQXJyb3dLZXkgPSBkaXIgPT09ICdsdHInID8gQXJyb3dSaWdodCA6IEFycm93TGVmdDtcbiAgICBjb25zdCBjaGlsZCA9IGdldFRyaWdnZXJDaGlsZChjaGlsZHJlbik7XG4gICAgY29uc3Qgb25Db250ZXh0TWVudSA9IChldmVudCk9PntcbiAgICAgICAgaWYgKGlzVGFyZ2V0RGlzYWJsZWQoZXZlbnQpIHx8IGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wZW5PbkNvbnRleHQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRPcGVuKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogJ21lbnVUcmlnZ2VyQ29udGV4dE1lbnUnLFxuICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25DbGljayA9IChldmVudCk9PntcbiAgICAgICAgaWYgKGlzVGFyZ2V0RGlzYWJsZWQoZXZlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcGVuT25Db250ZXh0KSB7XG4gICAgICAgICAgICBzZXRPcGVuKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgb3BlbjogIW9wZW4sXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ6IG9wZW5lZFdpdGhLZXlib2FyZFJlZi5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHR5cGU6ICdtZW51VHJpZ2dlckNsaWNrJyxcbiAgICAgICAgICAgICAgICBldmVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvcGVuZWRXaXRoS2V5Ym9hcmRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbktleURvd24gPSAoZXZlbnQpPT57XG4gICAgICAgIGlmIChpc1RhcmdldERpc2FibGVkKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgaWYgKCFvcGVuT25Db250ZXh0ICYmIChpc1N1Ym1lbnUgJiYga2V5ID09PSBPcGVuQXJyb3dLZXkgfHwgIWlzU3VibWVudSAmJiBrZXkgPT09IEFycm93RG93bikpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBvcGVuOiB0cnVlLFxuICAgICAgICAgICAgICAgIGtleWJvYXJkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdtZW51VHJpZ2dlcktleURvd24nLFxuICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSBFc2NhcGUgJiYgIWlzU3VibWVudSkge1xuICAgICAgICAgICAgc2V0T3BlbihldmVudCwge1xuICAgICAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICAgICAgICAgIGtleWJvYXJkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdtZW51VHJpZ2dlcktleURvd24nLFxuICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiBtZW51IGlzIGFscmVhZHkgb3BlbiwgY2FuJ3QgcmVseSBvbiBlZmZlY3RzIHRvIGZvY3VzXG4gICAgICAgIGlmIChvcGVuICYmIGtleSA9PT0gT3BlbkFycm93S2V5ICYmIGlzU3VibWVudSkge1xuICAgICAgICAgICAgZm9jdXNGaXJzdCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbk1vdXNlRW50ZXIgPSAoZXZlbnQpPT57XG4gICAgICAgIGlmIChpc1RhcmdldERpc2FibGVkKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVuT25Ib3ZlciAmJiBoYXNNb3VzZU1vdmVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBvcGVuOiB0cnVlLFxuICAgICAgICAgICAgICAgIGtleWJvYXJkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbWVudVRyaWdnZXJNb3VzZUVudGVyJyxcbiAgICAgICAgICAgICAgICBldmVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIE9wZW5pbmcgYSBtZW51IHdoZW4gYSBtb3VzZSBoYXNuJ3QgbW92ZWQgYW5kIGp1c3QgZW50ZXJpbmcgdGhlIHRyaWdnZXIgaXMgYSBiYWQgYTExeSBleHBlcmllbmNlXG4gICAgLy8gRmlyc3QgdGltZSBvcGVuIHRoZSBtb3VzZSB1c2luZyBtb3VzZW1vdmUgYW5kIHRoZW4gY29udGludWUgd2l0aCBtb3VzZWVudGVyXG4gICAgLy8gT25seSB1c2Ugb25jZSB0byBkZXRlcm1pbmUgdGhhdCB0aGUgdXNlciBpcyB1c2luZyB0aGUgbW91c2Ugc2luY2UgaXQgaXMgYW4gZXhwZW5zaXZlIGV2ZW50IHRvIGhhbmRsZVxuICAgIGNvbnN0IG9uTW91c2VNb3ZlID0gKGV2ZW50KT0+e1xuICAgICAgICBpZiAoaXNUYXJnZXREaXNhYmxlZChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3Blbk9uSG92ZXIgJiYgIWhhc01vdXNlTW92ZWQuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0T3BlbihldmVudCwge1xuICAgICAgICAgICAgICAgIG9wZW46IHRydWUsXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdtZW51VHJpZ2dlck1vdXNlTW92ZScsXG4gICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaGFzTW91c2VNb3ZlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25Nb3VzZUxlYXZlID0gKGV2ZW50KT0+e1xuICAgICAgICBpZiAoaXNUYXJnZXREaXNhYmxlZChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3Blbk9uSG92ZXIpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogJ21lbnVUcmlnZ2VyTW91c2VMZWF2ZScsXG4gICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBjb250ZXh0TWVudVByb3BzID0ge1xuICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAuLi5yZXN0b3JlRm9jdXNUYXJnZXRBdHRyaWJ1dGUsXG4gICAgICAgIC4uLmNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZC5wcm9wcyxcbiAgICAgICAgcmVmOiB1c2VNZXJnZWRSZWZzKHRyaWdnZXJSZWYsIGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZC5yZWYpLFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3MoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciwgb25Nb3VzZUVudGVyKSksXG4gICAgICAgIG9uTW91c2VMZWF2ZTogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25Nb3VzZUxlYXZlLCBvbk1vdXNlTGVhdmUpKSxcbiAgICAgICAgb25Db250ZXh0TWVudTogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25Db250ZXh0TWVudSwgb25Db250ZXh0TWVudSkpLFxuICAgICAgICBvbk1vdXNlTW92ZTogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25Nb3VzZU1vdmUsIG9uTW91c2VNb3ZlKSlcbiAgICB9O1xuICAgIGNvbnN0IHRyaWdnZXJDaGlsZFByb3BzID0ge1xuICAgICAgICAnYXJpYS1oYXNwb3B1cCc6ICdtZW51JyxcbiAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiAhb3BlbiAmJiAhaXNTdWJtZW51ID8gdW5kZWZpbmVkIDogb3BlbixcbiAgICAgICAgLi4uY29udGV4dE1lbnVQcm9wcyxcbiAgICAgICAgb25DbGljazogdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMub25DbGljaywgb25DbGljaykpLFxuICAgICAgICBvbktleURvd246IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3MoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnByb3BzLm9uS2V5RG93biwgb25LZXlEb3duKSlcbiAgICB9O1xuICAgIGNvbnN0IGFyaWFCdXR0b25UcmlnZ2VyQ2hpbGRQcm9wcyA9IHVzZUFSSUFCdXR0b25Qcm9wcygoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnR5cGUpID09PSAnYnV0dG9uJyB8fCAoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnR5cGUpID09PSAnYScgPyBjaGlsZC50eXBlIDogJ2RpdicsIHRyaWdnZXJDaGlsZFByb3BzKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc1N1Ym1lbnUsXG4gICAgICAgIGNoaWxkcmVuOiBhcHBseVRyaWdnZXJQcm9wc1RvQ2hpbGRyZW4oY2hpbGRyZW4sIG9wZW5PbkNvbnRleHQgPyBjb250ZXh0TWVudVByb3BzIDogZGlzYWJsZUJ1dHRvbkVuaGFuY2VtZW50ID8gdHJpZ2dlckNoaWxkUHJvcHMgOiBhcmlhQnV0dG9uVHJpZ2dlckNoaWxkUHJvcHMpXG4gICAgfTtcbn07XG5jb25zdCBpc1RhcmdldERpc2FibGVkID0gKGV2ZW50KT0+e1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSAoZWwpPT5lbC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgfHwgZWwuaGFzQXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJykgJiYgZWwuZ2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJykgPT09ICd0cnVlJztcbiAgICBpZiAoaXNIVE1MRWxlbWVudChldmVudC50YXJnZXQpICYmIGlzRGlzYWJsZWQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzSFRNTEVsZW1lbnQoZXZlbnQuY3VycmVudFRhcmdldCkgJiYgaXNEaXNhYmxlZChldmVudC5jdXJyZW50VGFyZ2V0KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZW51VHJpZ2dlckNvbnRleHRQcm92aWRlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL21lbnVUcmlnZ2VyQ29udGV4dCc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIE1lbnVUcmlnZ2VyXG4gKlxuICogT25seSByZW5kZXJzIGNoaWxkcmVuXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlck1lbnVUcmlnZ2VyX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWVudVRyaWdnZXJDb250ZXh0UHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHN0YXRlLmlzU3VibWVudVxuICAgIH0sIHN0YXRlLmNoaWxkcmVuKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW51VHJpZ2dlcl91bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVudVRyaWdnZXInO1xuaW1wb3J0IHsgcmVuZGVyTWVudVRyaWdnZXJfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlck1lbnVUcmlnZ2VyJztcbi8qKlxuICogV3JhcHMgYSB0cmlnZ2VyIGVsZW1lbnQgYXMgYW4gb25seSBjaGlsZFxuICogYW5kIGFkZHMgdGhlIG5lY2Vzc2FyeSBldmVudCBoYW5kbGluZyB0byBvcGVuIGEgcG9wdXAgbWVudVxuICovIGV4cG9ydCBjb25zdCBNZW51VHJpZ2dlciA9IChwcm9wcyk9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZU1lbnVUcmlnZ2VyX3Vuc3RhYmxlKHByb3BzKTtcbiAgICByZXR1cm4gcmVuZGVyTWVudVRyaWdnZXJfdW5zdGFibGUoc3RhdGUpO1xufTtcbk1lbnVUcmlnZ2VyLmRpc3BsYXlOYW1lID0gJ01lbnVUcmlnZ2VyJztcbi8vIHR5cGUgY2FzdGluZyBoZXJlIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBpbnRlcm5hbCB0eXBlIEZsdWVudFRyaWdnZXJDb21wb25lbnQgaXMgbm90IGxlYWtlZFxuTWVudVRyaWdnZXIuaXNGbHVlbnRUcmlnZ2VyQ29tcG9uZW50ID0gdHJ1ZTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBQZXJzb25hXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclBlcnNvbmFfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgY29uc3QgeyBwcmVzZW5jZU9ubHksIHRleHRQb3NpdGlvbiB9ID0gc3RhdGU7XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIGNvbnN0IGNvaW4gPSBwcmVzZW5jZU9ubHkgPyBzdGF0ZS5wcmVzZW5jZSAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucHJlc2VuY2UsIHt9KSA6IHN0YXRlLmF2YXRhciAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuYXZhdGFyLCB7fSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgKHRleHRQb3NpdGlvbiA9PT0gJ2FmdGVyJyB8fCB0ZXh0UG9zaXRpb24gPT09ICdiZWxvdycpICYmIGNvaW4sXG4gICAgICAgICAgICBzdGF0ZS5wcmltYXJ5VGV4dCAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucHJpbWFyeVRleHQsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLnNlY29uZGFyeVRleHQgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnNlY29uZGFyeVRleHQsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLnRlcnRpYXJ5VGV4dCAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUudGVydGlhcnlUZXh0LCB7fSksXG4gICAgICAgICAgICBzdGF0ZS5xdWF0ZXJuYXJ5VGV4dCAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucXVhdGVybmFyeVRleHQsIHt9KSxcbiAgICAgICAgICAgIHRleHRQb3NpdGlvbiA9PT0gJ2JlZm9yZScgJiYgY29pblxuICAgICAgICBdXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWF2YXRhcic7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IFByZXNlbmNlQmFkZ2UgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtYmFkZ2UnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBQZXJzb25hLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVBlcnNvbmFTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclBlcnNvbmFfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFBlcnNvbmFcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBQZXJzb25hXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVBlcnNvbmFfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IG5hbWUsIHByZXNlbmNlT25seSA9IGZhbHNlLCBzaXplID0gJ21lZGl1bScsIHRleHRBbGlnbm1lbnQgPSAnc3RhcnQnLCB0ZXh0UG9zaXRpb24gPSAnYWZ0ZXInIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmltYXJ5VGV4dCA9IHNsb3Qub3B0aW9uYWwocHJvcHMucHJpbWFyeVRleHQsIHtcbiAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBuYW1lXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICBjb25zdCBzZWNvbmRhcnlUZXh0ID0gc2xvdC5vcHRpb25hbChwcm9wcy5zZWNvbmRhcnlUZXh0LCB7XG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICBjb25zdCB0ZXJ0aWFyeVRleHQgPSBzbG90Lm9wdGlvbmFsKHByb3BzLnRlcnRpYXJ5VGV4dCwge1xuICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgfSk7XG4gICAgY29uc3QgcXVhdGVybmFyeVRleHQgPSBzbG90Lm9wdGlvbmFsKHByb3BzLnF1YXRlcm5hcnlUZXh0LCB7XG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICBjb25zdCBudW1UZXh0TGluZXMgPSBbXG4gICAgICAgIHByaW1hcnlUZXh0LFxuICAgICAgICBzZWNvbmRhcnlUZXh0LFxuICAgICAgICB0ZXJ0aWFyeVRleHQsXG4gICAgICAgIHF1YXRlcm5hcnlUZXh0XG4gICAgXS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgIHJldHVybiB7XG4gICAgICAgIG51bVRleHRMaW5lcyxcbiAgICAgICAgcHJlc2VuY2VPbmx5LFxuICAgICAgICBzaXplLFxuICAgICAgICB0ZXh0QWxpZ25tZW50LFxuICAgICAgICB0ZXh0UG9zaXRpb24sXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgYXZhdGFyOiBBdmF0YXIsXG4gICAgICAgICAgICBwcmVzZW5jZTogUHJlc2VuY2VCYWRnZSxcbiAgICAgICAgICAgIHByaW1hcnlUZXh0OiAnc3BhbicsXG4gICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiAnc3BhbicsXG4gICAgICAgICAgICB0ZXJ0aWFyeVRleHQ6ICdzcGFuJyxcbiAgICAgICAgICAgIHF1YXRlcm5hcnlUZXh0OiAnc3BhbidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogcmVmXG4gICAgICAgIH0sIC8qIGV4Y2x1ZGVkUHJvcE5hbWVzICovIFtcbiAgICAgICAgICAgICduYW1lJ1xuICAgICAgICBdKSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBhdmF0YXI6ICFwcmVzZW5jZU9ubHkgPyBzbG90Lm9wdGlvbmFsKHByb3BzLmF2YXRhciwge1xuICAgICAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBiYWRnZTogcHJvcHMucHJlc2VuY2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogYXZhdGFyU2l6ZXNbc2l6ZV1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogQXZhdGFyXG4gICAgICAgIH0pIDogdW5kZWZpbmVkLFxuICAgICAgICBwcmVzZW5jZTogcHJlc2VuY2VPbmx5ID8gc2xvdC5vcHRpb25hbChwcm9wcy5wcmVzZW5jZSwge1xuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgc2l6ZTogcHJlc2VuY2VTaXplc1tzaXplXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBQcmVzZW5jZUJhZGdlXG4gICAgICAgIH0pIDogdW5kZWZpbmVkLFxuICAgICAgICBwcmltYXJ5VGV4dCxcbiAgICAgICAgc2Vjb25kYXJ5VGV4dCxcbiAgICAgICAgdGVydGlhcnlUZXh0LFxuICAgICAgICBxdWF0ZXJuYXJ5VGV4dFxuICAgIH07XG59O1xuY29uc3QgcHJlc2VuY2VTaXplcyA9IHtcbiAgICAnZXh0cmEtc21hbGwnOiAndGlueScsXG4gICAgc21hbGw6ICdleHRyYS1zbWFsbCcsXG4gICAgbWVkaXVtOiAnc21hbGwnLFxuICAgIGxhcmdlOiAnbWVkaXVtJyxcbiAgICAnZXh0cmEtbGFyZ2UnOiAnbGFyZ2UnLFxuICAgIGh1Z2U6ICdsYXJnZSdcbn07XG5jb25zdCBhdmF0YXJTaXplcyA9IHtcbiAgICAnZXh0cmEtc21hbGwnOiAyMCxcbiAgICBzbWFsbDogMjgsXG4gICAgbWVkaXVtOiAzMixcbiAgICBsYXJnZTogMzYsXG4gICAgJ2V4dHJhLWxhcmdlJzogNDAsXG4gICAgaHVnZTogNTZcbn07XG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zLCB0eXBvZ3JhcGh5U3R5bGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCBwZXJzb25hQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1QZXJzb25hJyxcbiAgYXZhdGFyOiAnZnVpLVBlcnNvbmFfX2F2YXRhcicsXG4gIHByZXNlbmNlOiAnZnVpLVBlcnNvbmFfX3ByZXNlbmNlJyxcbiAgcHJpbWFyeVRleHQ6ICdmdWktUGVyc29uYV9fcHJpbWFyeVRleHQnLFxuICBzZWNvbmRhcnlUZXh0OiAnZnVpLVBlcnNvbmFfX3NlY29uZGFyeVRleHQnLFxuICB0ZXJ0aWFyeVRleHQ6ICdmdWktUGVyc29uYV9fdGVydGlhcnlUZXh0JyxcbiAgcXVhdGVybmFyeVRleHQ6ICdmdWktUGVyc29uYV9fcXVhdGVybmFyeVRleHQnXG59O1xuY29uc3QgYXZhdGFyU3BhY2luZyA9IGAtLWZ1aS1QZXJzb25hX19hdmF0YXItLXNwYWNpbmdgO1xuY29uc3QgdXNlUm9vdENsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicmxyb2k5aVwiLCBudWxsLCBbXCIucmxyb2k5aXtkaXNwbGF5OmlubGluZS1ncmlkO2dyaWQtYXV0by1yb3dzOm1heC1jb250ZW50O2dyaWQtYXV0by1mbG93OmNvbHVtbjtqdXN0aWZ5LWl0ZW1zOnN0YXJ0O2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBbbWlkZGxlXSBhdXRvO31cIl0pO1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmVmb3JlQWZ0ZXJDZW50ZXI6IHtcbiAgICB3a2NjZGM6IFwiZjFpYW50dWxcIlxuICB9LFxuICBhZnRlcjoge30sXG4gIGJlZm9yZToge1xuICAgIEI3aHZpMGE6IFwiZjF0bGwydzVcIixcbiAgICBCdWRsMWRxOiBcImZmdmt3ZHJcIlxuICB9LFxuICBiZWxvdzoge1xuICAgIEJ4b3R3Y3I6IFwiZjFua2VlZGhcIixcbiAgICBCN2h2aTBhOiBcImYxb2lva3JzXCIsXG4gICAgQnVkbDFkcTogXCJmMWVtZ3doMlwiXG4gIH0sXG4gIG1lZGlhOiB7XG4gICAgSWphcTUwOiBcImYxaGVrMml5XCJcbiAgfSxcbiAgbWVkaWFCZWZvcmVBZnRlckNlbnRlcjoge1xuICAgIElqYXE1MDogXCJmYTRkaXB1XCJcbiAgfSxcbiAgc3RhcnQ6IHtcbiAgICBxYjJkbWE6IFwiZjloNzI5bVwiXG4gIH0sXG4gIGNlbnRlcjoge1xuICAgIHFiMmRtYTogXCJmN25sYnA0XCJcbiAgfSxcbiAgYWZ0ZXJBbGlnblRvUHJpbWFyeToge1xuICAgIHFiMmRtYTogXCJmN25sYnA0XCIsXG4gICAgSWphcTUwOiBcImYxcm5ra3VjXCIsXG4gICAgQncwaWU2NTogXCJmMXdhcmpwZlwiXG4gIH0sXG4gIGJlZm9yZUFsaWduVG9QcmltYXJ5OiB7XG4gICAgcWIyZG1hOiBcImY3bmxicDRcIixcbiAgICBJamFxNTA6IFwiZjFybmtrdWNcIixcbiAgICBCcjMxMnBtOiBcImZ3dTUyeXVcIlxuICB9LFxuICBzZWNvbmRMaW5lU3BhY2luZzoge1xuICAgIEI2b2YzamE6IFwiZjFyeXE2c2lcIlxuICB9LFxuICBwcmltYXJ5OiB7XG4gICAgSWphcTUwOiBcImYxcTNpcGdiXCJcbiAgfSxcbiAgc2Vjb25kYXJ5OiB7XG4gICAgSWphcTUwOiBcImYzZHJ0ZGtcIlxuICB9LFxuICB0ZXJ0aWFyeToge1xuICAgIElqYXE1MDogXCJmYTFvNnMxXCJcbiAgfSxcbiAgcXVhdGVybmFyeToge1xuICAgIElqYXE1MDogXCJmMXR1d2FpYVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxaWFudHVse2dyaWQtdGVtcGxhdGUtcm93czoxZnIgW3ByaW1hcnldIG1heC1jb250ZW50IFtzZWNvbmRhcnldIG1heC1jb250ZW50IFt0ZXJ0aWFyeV0gbWF4LWNvbnRlbnQgW3F1YXRlcm5hcnldIG1heC1jb250ZW50IDFmcjt9XCIsIFwiLmYxdGxsMnc1e2p1c3RpZnktaXRlbXM6ZW5kO31cIiwgXCIuZmZ2a3dkcntncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byBbbWlkZGxlXSBtYXgtY29udGVudDt9XCIsIFwiLmYxbmtlZWRoe2dyaWQtYXV0by1mbG93OnVuc2V0O31cIiwgXCIuZjFvaW9rcnN7anVzdGlmeS1pdGVtczpjZW50ZXI7fVwiLCBcIi5mMWVtZ3doMntncmlkLXRlbXBsYXRlLWNvbHVtbnM6dW5zZXQ7fVwiLCBcIi5mMWhlazJpeXtncmlkLXJvdy1zdGFydDpzcGFuIDU7fVwiLCBcIi5mYTRkaXB1e2dyaWQtcm93LXN0YXJ0OnNwYW4gNjt9XCIsIFwiLmY5aDcyOW17YWxpZ24tc2VsZjpzdGFydDt9XCIsIFwiLmY3bmxicDR7YWxpZ24tc2VsZjpjZW50ZXI7fVwiLCBcIi5mMXJua2t1Y3tncmlkLXJvdy1zdGFydDp1bnNldDt9XCIsIFwiLmYxd2FyanBme2dyaWQtY29sdW1uLWVuZDptaWRkbGU7fVwiLCBcIi5md3U1Mnl1e2dyaWQtY29sdW1uLXN0YXJ0Om1pZGRsZTt9XCIsIFwiLmYxcnlxNnNpe21hcmdpbi10b3A6LTJweDt9XCIsIFwiLmYxcTNpcGdie2dyaWQtcm93LXN0YXJ0OnByaW1hcnk7fVwiLCBcIi5mM2RydGRre2dyaWQtcm93LXN0YXJ0OnNlY29uZGFyeTt9XCIsIFwiLmZhMW82czF7Z3JpZC1yb3ctc3RhcnQ6dGVydGlhcnk7fVwiLCBcIi5mMXR1d2FpYXtncmlkLXJvdy1zdGFydDpxdWF0ZXJuYXJ5O31cIl1cbn0pO1xuY29uc3QgdXNlQXZhdGFyU3BhY2luZ1N0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIFwiZXh0cmEtc21hbGxcIjoge1xuICAgIEJzMWdtNHI6IFwiZjFlNDh0c2VcIlxuICB9LFxuICBzbWFsbDoge1xuICAgIEJzMWdtNHI6IFwiZjE4cTl2a2RcIlxuICB9LFxuICBtZWRpdW06IHtcbiAgICBCczFnbTRyOiBcImYxOHE5dmtkXCJcbiAgfSxcbiAgbGFyZ2U6IHtcbiAgICBCczFnbTRyOiBcImZ4MzRiaTZcIlxuICB9LFxuICBcImV4dHJhLWxhcmdlXCI6IHtcbiAgICBCczFnbTRyOiBcImZ4MzRiaTZcIlxuICB9LFxuICBodWdlOiB7XG4gICAgQnMxZ200cjogXCJmMW85NnF0bVwiXG4gIH0sXG4gIGFmdGVyOiB7XG4gICAgdDIxY3EwOiBbXCJmMTAzeWN1NFwiLCBcImYxdGFvNTFcIl1cbiAgfSxcbiAgYmVsb3c6IHtcbiAgICBqcmFwa3k6IFwiZmJvN2FjeVwiXG4gIH0sXG4gIGJlZm9yZToge1xuICAgIEZyZzZmMzogW1wiZjF0YW81MVwiLCBcImYxMDN5Y3U0XCJdXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxZTQ4dHNley0tZnVpLVBlcnNvbmFfX2F2YXRhci0tc3BhY2luZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCBcIi5mMThxOXZrZHstLWZ1aS1QZXJzb25hX19hdmF0YXItLXNwYWNpbmc6dmFyKC0tc3BhY2luZ0hvcml6b250YWxTKTt9XCIsIFwiLmZ4MzRiaTZ7LS1mdWktUGVyc29uYV9fYXZhdGFyLS1zcGFjaW5nOnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTU51ZGdlKTt9XCIsIFwiLmYxbzk2cXRtey0tZnVpLVBlcnNvbmFfX2F2YXRhci0tc3BhY2luZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pO31cIiwgXCIuZjEwM3ljdTR7bWFyZ2luLXJpZ2h0OnZhcigtLWZ1aS1QZXJzb25hX19hdmF0YXItLXNwYWNpbmcpO31cIiwgXCIuZjF0YW81MXttYXJnaW4tbGVmdDp2YXIoLS1mdWktUGVyc29uYV9fYXZhdGFyLS1zcGFjaW5nKTt9XCIsIFwiLmZibzdhY3l7bWFyZ2luLWJvdHRvbTp2YXIoLS1mdWktUGVyc29uYV9fYXZhdGFyLS1zcGFjaW5nKTt9XCJdXG59KTtcbmNvbnN0IHVzZVByZXNlbmNlU3BhY2luZ1N0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHNtYWxsOiB7XG4gICAgQnMxZ200cjogXCJmMWU0OHRzZVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxZTQ4dHNley0tZnVpLVBlcnNvbmFfX2F2YXRhci0tc3BhY2luZzp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFBlcnNvbmEgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VQZXJzb25hU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHtcbiAgICBwcmVzZW5jZU9ubHksXG4gICAgc2l6ZSxcbiAgICB0ZXh0QWxpZ25tZW50LFxuICAgIHRleHRQb3NpdGlvblxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IGFsaWduVG9QcmltYXJ5ID0gcHJlc2VuY2VPbmx5ICYmIHRleHRBbGlnbm1lbnQgPT09ICdzdGFydCcgJiYgc2l6ZSAhPT0gJ2V4dHJhLWxhcmdlJyAmJiBzaXplICE9PSAnaHVnZSc7XG4gIGNvbnN0IGFsaWduQmVmb3JlQWZ0ZXJDZW50ZXIgPSB0ZXh0UG9zaXRpb24gIT09ICdiZWxvdycgJiYgdGV4dEFsaWdubWVudCA9PT0gJ2NlbnRlcic7XG4gIGNvbnN0IHtcbiAgICBwcmltYXJ5VGV4dENsYXNzTmFtZSxcbiAgICBvcHRpb25hbFRleHRDbGFzc05hbWVcbiAgfSA9IHVzZVRleHRDbGFzc05hbWVzKHN0YXRlLCBhbGlnblRvUHJpbWFyeSk7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VSb290Q2xhc3NOYW1lKCk7XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBjb25zdCBhdmF0YXJTcGFjaW5nU3R5bGVzID0gdXNlQXZhdGFyU3BhY2luZ1N0eWxlcygpO1xuICBjb25zdCBwcmVzZW5jZVNwYWNpbmdTdHlsZXMgPSB7XG4gICAgLi4uYXZhdGFyU3BhY2luZ1N0eWxlcyxcbiAgICAuLi51c2VQcmVzZW5jZVNwYWNpbmdTdHlsZXMoKVxuICB9O1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhwZXJzb25hQ2xhc3NOYW1lcy5yb290LCByb290Q2xhc3NOYW1lLCBhbGlnbkJlZm9yZUFmdGVyQ2VudGVyICYmIHN0eWxlcy5iZWZvcmVBZnRlckNlbnRlciwgc3R5bGVzW3RleHRQb3NpdGlvbl0sIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmF2YXRhcikge1xuICAgIHN0YXRlLmF2YXRhci5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMocGVyc29uYUNsYXNzTmFtZXMuYXZhdGFyLCB0ZXh0UG9zaXRpb24gIT09ICdiZWxvdycgJiYgc3R5bGVzLm1lZGlhLCBhbGlnbkJlZm9yZUFmdGVyQ2VudGVyICYmIHN0eWxlcy5tZWRpYUJlZm9yZUFmdGVyQ2VudGVyLCBzdHlsZXNbdGV4dEFsaWdubWVudF0sIGF2YXRhclNwYWNpbmdTdHlsZXNbc2l6ZV0sIGF2YXRhclNwYWNpbmdTdHlsZXNbdGV4dFBvc2l0aW9uXSwgc3RhdGUuYXZhdGFyLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKHN0YXRlLnByZXNlbmNlKSB7XG4gICAgc3RhdGUucHJlc2VuY2UuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHBlcnNvbmFDbGFzc05hbWVzLnByZXNlbmNlLCB0ZXh0UG9zaXRpb24gIT09ICdiZWxvdycgJiYgc3R5bGVzLm1lZGlhLCBhbGlnbkJlZm9yZUFmdGVyQ2VudGVyICYmIHN0eWxlcy5tZWRpYUJlZm9yZUFmdGVyQ2VudGVyLCBzdHlsZXNbdGV4dEFsaWdubWVudF0sIHByZXNlbmNlU3BhY2luZ1N0eWxlc1tzaXplXSwgcHJlc2VuY2VTcGFjaW5nU3R5bGVzW3RleHRQb3NpdGlvbl0sIHRleHRQb3NpdGlvbiA9PT0gJ2FmdGVyJyAmJiBhbGlnblRvUHJpbWFyeSAmJiBzdHlsZXMuYWZ0ZXJBbGlnblRvUHJpbWFyeSwgdGV4dFBvc2l0aW9uID09PSAnYmVmb3JlJyAmJiBhbGlnblRvUHJpbWFyeSAmJiBzdHlsZXMuYmVmb3JlQWxpZ25Ub1ByaW1hcnksIHN0YXRlLnByZXNlbmNlLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKHN0YXRlLnByaW1hcnlUZXh0KSB7XG4gICAgc3RhdGUucHJpbWFyeVRleHQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHBlcnNvbmFDbGFzc05hbWVzLnByaW1hcnlUZXh0LCBhbGlnbkJlZm9yZUFmdGVyQ2VudGVyICYmIHN0eWxlcy5wcmltYXJ5LCBwcmltYXJ5VGV4dENsYXNzTmFtZSwgc3RhdGUucHJpbWFyeVRleHQuY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUuc2Vjb25kYXJ5VGV4dCkge1xuICAgIHN0YXRlLnNlY29uZGFyeVRleHQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHBlcnNvbmFDbGFzc05hbWVzLnNlY29uZGFyeVRleHQsIGFsaWduQmVmb3JlQWZ0ZXJDZW50ZXIgJiYgc3R5bGVzLnNlY29uZGFyeSwgb3B0aW9uYWxUZXh0Q2xhc3NOYW1lLCBzdHlsZXMuc2Vjb25kTGluZVNwYWNpbmcsIHN0YXRlLnNlY29uZGFyeVRleHQuY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUudGVydGlhcnlUZXh0KSB7XG4gICAgc3RhdGUudGVydGlhcnlUZXh0LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhwZXJzb25hQ2xhc3NOYW1lcy50ZXJ0aWFyeVRleHQsIGFsaWduQmVmb3JlQWZ0ZXJDZW50ZXIgJiYgc3R5bGVzLnRlcnRpYXJ5LCBvcHRpb25hbFRleHRDbGFzc05hbWUsIHN0YXRlLnRlcnRpYXJ5VGV4dC5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5xdWF0ZXJuYXJ5VGV4dCkge1xuICAgIHN0YXRlLnF1YXRlcm5hcnlUZXh0LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhwZXJzb25hQ2xhc3NOYW1lcy5xdWF0ZXJuYXJ5VGV4dCwgYWxpZ25CZWZvcmVBZnRlckNlbnRlciAmJiBzdHlsZXMucXVhdGVybmFyeSwgb3B0aW9uYWxUZXh0Q2xhc3NOYW1lLCBzdGF0ZS5xdWF0ZXJuYXJ5VGV4dC5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG5jb25zdCB1c2VQcmltYXJ5VGV4dEJhc2VDbGFzc05hbWUgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInJ2ajQxazlcIiwgbnVsbCwgW1wiLnJ2ajQxazl7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7fVwiXSk7XG5jb25zdCB1c2VPcHRpb25hbFRleHRCYXNlQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJycDFwZjllXCIsIG51bGwsIFtcIi5ycDFwZjlle2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDIpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UyMDApO31cIl0pO1xuY29uc3QgdXNlVGV4dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJlZm9yZUFsaWduVG9QcmltYXJ5OiB7XG4gICAgQncwaWU2NTogXCJmMXdhcmpwZlwiXG4gIH0sXG4gIGFmdGVyQWxpZ25Ub1ByaW1hcnk6IHtcbiAgICBCcjMxMnBtOiBcImZ3dTUyeXVcIlxuICB9LFxuICBib2R5MToge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIlxuICB9LFxuICBjYXB0aW9uMToge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZndyYzRwbVwiXG4gIH0sXG4gIHN1YnRpdGxlMjoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIEJnOTZnd3A6IFwiZmFhejU3a1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxd2FyanBme2dyaWQtY29sdW1uLWVuZDptaWRkbGU7fVwiLCBcIi5md3U1Mnl1e2dyaWQtY29sdW1uLXN0YXJ0Om1pZGRsZTt9XCIsIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZmtoajUwOHtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZjFpM2l1bWl7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZ3cmM0cG17bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UyMDApO31cIiwgXCIuZm9kNWlrbntmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNDAwKTt9XCIsIFwiLmZsNDN1ZWZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFNlbWlib2xkKTt9XCIsIFwiLmZhYXo1N2t7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U0MDApO31cIl1cbn0pO1xuY29uc3QgdXNlVGV4dENsYXNzTmFtZXMgPSAoc3RhdGUsIGFsaWduVG9QcmltYXJ5KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwcmVzZW5jZU9ubHksXG4gICAgc2l6ZSxcbiAgICB0ZXh0UG9zaXRpb25cbiAgfSA9IHN0YXRlO1xuICBjb25zdCBwcmltYXJ5VGV4dEJhc2VDbGFzc05hbWUgPSB1c2VQcmltYXJ5VGV4dEJhc2VDbGFzc05hbWUoKTtcbiAgY29uc3Qgb3B0aW9uYWxUZXh0QmFzZUNsYXNzTmFtZSA9IHVzZU9wdGlvbmFsVGV4dEJhc2VDbGFzc05hbWUoKTtcbiAgY29uc3QgdGV4dFN0eWxlcyA9IHVzZVRleHRTdHlsZXMoKTtcbiAgbGV0IHByaW1hcnlUZXh0U2l6ZTtcbiAgbGV0IGFsaWduVG9QcmltYXJ5Q2xhc3NOYW1lO1xuICBpZiAocHJlc2VuY2VPbmx5KSB7XG4gICAgaWYgKHNpemUgPT09ICdleHRyYS1zbWFsbCcpIHtcbiAgICAgIHByaW1hcnlUZXh0U2l6ZSA9IHN0YXRlLm51bVRleHRMaW5lcyA8PSAxICYmIHRleHRTdHlsZXMuY2FwdGlvbjE7XG4gICAgfSBlbHNlIGlmIChzaXplID09PSAnZXh0cmEtbGFyZ2UnIHx8IHNpemUgPT09ICdodWdlJykge1xuICAgICAgcHJpbWFyeVRleHRTaXplID0gdGV4dFN0eWxlcy5zdWJ0aXRsZTI7XG4gICAgfVxuICAgIGlmIChhbGlnblRvUHJpbWFyeSkge1xuICAgICAgaWYgKHRleHRQb3NpdGlvbiA9PT0gJ2JlZm9yZScpIHtcbiAgICAgICAgYWxpZ25Ub1ByaW1hcnlDbGFzc05hbWUgPSB0ZXh0U3R5bGVzLmJlZm9yZUFsaWduVG9QcmltYXJ5O1xuICAgICAgfSBlbHNlIGlmICh0ZXh0UG9zaXRpb24gPT09ICdhZnRlcicpIHtcbiAgICAgICAgYWxpZ25Ub1ByaW1hcnlDbGFzc05hbWUgPSB0ZXh0U3R5bGVzLmFmdGVyQWxpZ25Ub1ByaW1hcnk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChzaXplID09PSAnaHVnZScpIHtcbiAgICAgIHByaW1hcnlUZXh0U2l6ZSA9IHRleHRTdHlsZXMuc3VidGl0bGUyO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA9PT0gJ2V4dHJhLWxhcmdlJykge1xuICAgICAgcHJpbWFyeVRleHRTaXplID0gdGV4dFN0eWxlcy5zdWJ0aXRsZTI7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgcHJpbWFyeVRleHRDbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhwcmltYXJ5VGV4dEJhc2VDbGFzc05hbWUsIHByaW1hcnlUZXh0U2l6ZSwgYWxpZ25Ub1ByaW1hcnlDbGFzc05hbWUpLFxuICAgIG9wdGlvbmFsVGV4dENsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKG9wdGlvbmFsVGV4dEJhc2VDbGFzc05hbWUsICFwcmVzZW5jZU9ubHkgJiYgc2l6ZSA9PT0gJ2h1Z2UnICYmIHRleHRTdHlsZXMuYm9keTEsIGFsaWduVG9QcmltYXJ5Q2xhc3NOYW1lKVxuICB9O1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVBlcnNvbmFTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlclBlcnNvbmFfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclBlcnNvbmEnO1xuaW1wb3J0IHsgdXNlUGVyc29uYV91bnN0YWJsZSB9IGZyb20gJy4vdXNlUGVyc29uYSc7XG5pbXBvcnQgeyB1c2VQZXJzb25hU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VQZXJzb25hU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogQSBQZXJzb25hIGlzIGEgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgcGVyc29uIG9yIHN0YXR1cyB0aGF0IHNob3djYXNlcyBhbiBBdmF0YXIsIFByZXNlbmNlQmFkZ2UsXG4gKiBvciBhbiBBdmF0YXIgd2l0aCBhIFByZXNlbmNlQmFkZ2UuXG4gKi8gZXhwb3J0IGNvbnN0IFBlcnNvbmEgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VQZXJzb25hX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVBlcnNvbmFTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlUGVyc29uYVN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyUGVyc29uYV91bnN0YWJsZShzdGF0ZSk7XG59KTtcblBlcnNvbmEuZGlzcGxheU5hbWUgPSAnUGVyc29uYSc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFJhZGlvR3JvdXBDb250ZXh0IGlzIHByb3ZpZGVkIGJ5IFJhZGlvR3JvdXAsIGFuZCBpcyBjb25zdW1lZCBieSBSYWRpbyB0byBkZXRlcm1pbmUgZGVmYXVsdCB2YWx1ZXMgb2Ygc29tZSBwcm9wcy5cbiAqLyBleHBvcnQgY29uc3QgUmFkaW9Hcm91cENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5jb25zdCByYWRpb0dyb3VwQ29udGV4dERlZmF1bHRWYWx1ZSA9IHt9O1xuZXhwb3J0IGNvbnN0IFJhZGlvR3JvdXBQcm92aWRlciA9IFJhZGlvR3JvdXBDb250ZXh0LlByb3ZpZGVyO1xuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBSYWRpb0dyb3VwQ29udGV4dC5cbiAqLyBleHBvcnQgY29uc3QgdXNlUmFkaW9Hcm91cENvbnRleHRWYWx1ZV91bnN0YWJsZSA9ICgpPT5SZWFjdC51c2VDb250ZXh0KFJhZGlvR3JvdXBDb250ZXh0KSB8fCByYWRpb0dyb3VwQ29udGV4dERlZmF1bHRWYWx1ZTtcbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHVzZVJhZGlvR3JvdXBDb250ZXh0VmFsdWVfdW5zdGFibGUgaW5zdGVhZC5cbiAqIFJhZGlvR3JvdXBDb250ZXh0IGlzIG5vIGxvbmdlciBhIHNlbGVjdG9yIGNvbnRleHQsIGFuZCBubyBsb25nZXIgYmVuZWZpdHMgZnJvbSBoYXZpbmcgYSBzZWxlY3Rvci5cbiAqLyBleHBvcnQgY29uc3QgdXNlUmFkaW9Hcm91cENvbnRleHRfdW5zdGFibGUgPSAoc2VsZWN0b3IpPT5zZWxlY3Rvcih1c2VSYWRpb0dyb3VwQ29udGV4dFZhbHVlX3Vuc3RhYmxlKCkpO1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFJhZGlvXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclJhZGlvX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuaW5wdXQsIHt9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5pbmRpY2F0b3IsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLmxhYmVsICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5sYWJlbCwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1sYWJlbCc7XG5pbXBvcnQgeyBnZXRQYXJ0aXRpb25lZE5hdGl2ZVByb3BzLCBtZXJnZUNhbGxiYWNrcywgdXNlSWQsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZVJhZGlvR3JvdXBDb250ZXh0VmFsdWVfdW5zdGFibGUgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9SYWRpb0dyb3VwQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VGb2N1c1dpdGhpbiB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgUmFkaW8uXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlUmFkaW9TdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclJhZGlvX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBSYWRpb1xuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byBgPGlucHV0PmAgZWxlbWVudCBvZiBSYWRpb1xuICovIGV4cG9ydCBjb25zdCB1c2VSYWRpb191bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IGdyb3VwID0gdXNlUmFkaW9Hcm91cENvbnRleHRWYWx1ZV91bnN0YWJsZSgpO1xuICAgIGNvbnN0IHsgbmFtZSA9IGdyb3VwLm5hbWUsIGNoZWNrZWQgPSBncm91cC52YWx1ZSAhPT0gdW5kZWZpbmVkID8gZ3JvdXAudmFsdWUgPT09IHByb3BzLnZhbHVlIDogdW5kZWZpbmVkLCBkZWZhdWx0Q2hlY2tlZCA9IGdyb3VwLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gZ3JvdXAuZGVmYXVsdFZhbHVlID09PSBwcm9wcy52YWx1ZSA6IHVuZGVmaW5lZCwgbGFiZWxQb3NpdGlvbiA9IGdyb3VwLmxheW91dCA9PT0gJ2hvcml6b250YWwtc3RhY2tlZCcgPyAnYmVsb3cnIDogJ2FmdGVyJywgZGlzYWJsZWQgPSBncm91cC5kaXNhYmxlZCwgcmVxdWlyZWQgPSBncm91cC5yZXF1aXJlZCwgJ2FyaWEtZGVzY3JpYmVkYnknOiBhcmlhRGVzY3JpYmVkQnkgPSBncm91cFsnYXJpYS1kZXNjcmliZWRieSddLCBvbkNoYW5nZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgbmF0aXZlUHJvcHMgPSBnZXRQYXJ0aXRpb25lZE5hdGl2ZVByb3BzKHtcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIHByaW1hcnlTbG90VGFnTmFtZTogJ2lucHV0JyxcbiAgICAgICAgZXhjbHVkZWRQcm9wTmFtZXM6IFtcbiAgICAgICAgICAgICdjaGVja2VkJyxcbiAgICAgICAgICAgICdkZWZhdWx0Q2hlY2tlZCcsXG4gICAgICAgICAgICAnb25DaGFuZ2UnXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCByb290ID0gc2xvdC5hbHdheXMocHJvcHMucm9vdCwge1xuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIHJlZjogdXNlRm9jdXNXaXRoaW4oKSxcbiAgICAgICAgICAgIC4uLm5hdGl2ZVByb3BzLnJvb3RcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgIH0pO1xuICAgIGNvbnN0IGlucHV0ID0gc2xvdC5hbHdheXMocHJvcHMuaW5wdXQsIHtcbiAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICB0eXBlOiAncmFkaW8nLFxuICAgICAgICAgICAgaWQ6IHVzZUlkKCdyYWRpby0nLCBuYXRpdmVQcm9wcy5wcmltYXJ5LmlkKSxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBjaGVja2VkLFxuICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBhcmlhRGVzY3JpYmVkQnksXG4gICAgICAgICAgICAuLi5uYXRpdmVQcm9wcy5wcmltYXJ5XG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnaW5wdXQnXG4gICAgfSk7XG4gICAgaW5wdXQub25DaGFuZ2UgPSBtZXJnZUNhbGxiYWNrcyhpbnB1dC5vbkNoYW5nZSwgKGV2KT0+b25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGV2LCB7XG4gICAgICAgICAgICB2YWx1ZTogZXYuY3VycmVudFRhcmdldC52YWx1ZVxuICAgICAgICB9KSk7XG4gICAgY29uc3QgbGFiZWwgPSBzbG90Lm9wdGlvbmFsKHByb3BzLmxhYmVsLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgaHRtbEZvcjogaW5wdXQuaWQsXG4gICAgICAgICAgICBkaXNhYmxlZDogaW5wdXQuZGlzYWJsZWRcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudFR5cGU6IExhYmVsXG4gICAgfSk7XG4gICAgY29uc3QgaW5kaWNhdG9yID0gc2xvdC5hbHdheXMocHJvcHMuaW5kaWNhdG9yLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgJ2FyaWEtaGlkZGVuJzogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbFBvc2l0aW9uLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnc3BhbicsXG4gICAgICAgICAgICBpbnB1dDogJ2lucHV0JyxcbiAgICAgICAgICAgIGxhYmVsOiBMYWJlbCxcbiAgICAgICAgICAgIGluZGljYXRvcjogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdCxcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGxhYmVsLFxuICAgICAgICBpbmRpY2F0b3JcbiAgICB9O1xufTtcbiIsImltcG9ydCB7IGNyZWF0ZUZvY3VzT3V0bGluZVN0eWxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IF9fcmVzZXRTdHlsZXMsIF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5leHBvcnQgY29uc3QgcmFkaW9DbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVJhZGlvJyxcbiAgaW5kaWNhdG9yOiAnZnVpLVJhZGlvX19pbmRpY2F0b3InLFxuICBpbnB1dDogJ2Z1aS1SYWRpb19faW5wdXQnLFxuICBsYWJlbDogJ2Z1aS1SYWRpb19fbGFiZWwnXG59O1xuLy8gVGhlIGluZGljYXRvciBzaXplIGlzIHVzZWQgYnkgdGhlIGluZGljYXRvciBhbmQgbGFiZWwgc3R5bGVzXG5jb25zdCBpbmRpY2F0b3JTaXplID0gJzE2cHgnO1xuY29uc3QgdXNlUm9vdEJhc2VDbGFzc05hbWUgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxc2lxd2Q4XCIsIFwicm1ucGx5Y1wiLCB7XG4gIHI6IFtcIi5yMXNpcXdkOHtkaXNwbGF5OmlubGluZS1mbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO31cIiwgXCIucjFzaXF3ZDg6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIucjFzaXF3ZDg6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMXNpcXdkOFtkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbntib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIucjFzaXF3ZDhbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjE7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3RvcDpjYWxjKDJweCAqIC0xKTtyaWdodDpjYWxjKDJweCAqIC0xKTtib3R0b206Y2FsYygycHggKiAtMSk7bGVmdDpjYWxjKDJweCAqIC0xKTt9XCIsIFwiLnJtbnBseWN7ZGlzcGxheTppbmxpbmUtZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt9XCIsIFwiLnJtbnBseWM6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIucm1ucGx5Yzpmb2N1cy12aXNpYmxle291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnJtbnBseWNbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW57Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLnJtbnBseWNbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjE7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3RvcDpjYWxjKDJweCAqIC0xKTtsZWZ0OmNhbGMoMnB4ICogLTEpO2JvdHRvbTpjYWxjKDJweCAqIC0xKTtyaWdodDpjYWxjKDJweCAqIC0xKTt9XCJdLFxuICBzOiBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnIxc2lxd2Q4W2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDtib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0O2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O2JvcmRlci1sZWZ0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCBcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsucm1ucGx5Y1tkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWxlZnQtY29sb3I6SGlnaGxpZ2h0O2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O2JvcmRlci1yaWdodC1jb2xvcjpIaWdobGlnaHQ7fX1cIl1cbn0pO1xuY29uc3QgdXNlUm9vdFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHZlcnRpY2FsOiB7XG4gICAgQmVpeTNlNDogXCJmMXZ4OWw2MlwiLFxuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxdng5bDYye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9XCIsIFwiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIl1cbn0pO1xuY29uc3QgdXNlSW5wdXRCYXNlQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyZzF1cG9rXCIsIFwicnp3ZHpiNFwiLCB7XG4gIHI6IFtcIi5yZzF1cG9re3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDpjYWxjKDE2cHggKyAyICogdmFyKC0tc3BhY2luZ0hvcml6b250YWxTKSk7aGVpZ2h0OjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO29wYWNpdHk6MDt9XCIsIFwiLnJnMXVwb2s6ZW5hYmxlZHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLnJnMXVwb2s6ZW5hYmxlZH4uZnVpLVJhZGlvX19sYWJlbHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLnJnMXVwb2s6ZW5hYmxlZDpub3QoOmNoZWNrZWQpfi5mdWktUmFkaW9fX2xhYmVse2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzKTt9XCIsIFwiLnJnMXVwb2s6ZW5hYmxlZDpub3QoOmNoZWNrZWQpfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZSk7fVwiLCBcIi5yZzF1cG9rOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpob3Zlcn4uZnVpLVJhZGlvX19sYWJlbHtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMik7fVwiLCBcIi5yZzF1cG9rOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpob3Zlcn4uZnVpLVJhZGlvX19pbmRpY2F0b3J7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVIb3Zlcik7fVwiLCBcIi5yZzF1cG9rOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpob3ZlcjphY3RpdmV+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIucmcxdXBvazplbmFibGVkOm5vdCg6Y2hlY2tlZCk6aG92ZXI6YWN0aXZlfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZVByZXNzZWQpO31cIiwgXCIucmcxdXBvazplbmFibGVkOmNoZWNrZWR+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIucmcxdXBvazplbmFibGVkOmNoZWNrZWR+LmZ1aS1SYWRpb19faW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2UpO2NvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxKTt9XCIsIFwiLnJnMXVwb2s6ZW5hYmxlZDpjaGVja2VkOmhvdmVyfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlSG92ZXIpO2NvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIucmcxdXBvazplbmFibGVkOmNoZWNrZWQ6aG92ZXI6YWN0aXZlfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlUHJlc3NlZCk7Y29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFQcmVzc2VkKTt9XCIsIFwiLnJnMXVwb2s6ZGlzYWJsZWR+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTtjdXJzb3I6ZGVmYXVsdDt9XCIsIFwiLnJnMXVwb2s6ZGlzYWJsZWR+LmZ1aS1SYWRpb19faW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLnJ6d2R6YjR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt3aWR0aDpjYWxjKDE2cHggKyAyICogdmFyKC0tc3BhY2luZ0hvcml6b250YWxTKSk7aGVpZ2h0OjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO29wYWNpdHk6MDt9XCIsIFwiLnJ6d2R6YjQ6ZW5hYmxlZHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLnJ6d2R6YjQ6ZW5hYmxlZH4uZnVpLVJhZGlvX19sYWJlbHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLnJ6d2R6YjQ6ZW5hYmxlZDpub3QoOmNoZWNrZWQpfi5mdWktUmFkaW9fX2xhYmVse2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzKTt9XCIsIFwiLnJ6d2R6YjQ6ZW5hYmxlZDpub3QoOmNoZWNrZWQpfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZSk7fVwiLCBcIi5yendkemI0OmVuYWJsZWQ6bm90KDpjaGVja2VkKTpob3Zlcn4uZnVpLVJhZGlvX19sYWJlbHtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMik7fVwiLCBcIi5yendkemI0OmVuYWJsZWQ6bm90KDpjaGVja2VkKTpob3Zlcn4uZnVpLVJhZGlvX19pbmRpY2F0b3J7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZUFjY2Vzc2libGVIb3Zlcik7fVwiLCBcIi5yendkemI0OmVuYWJsZWQ6bm90KDpjaGVja2VkKTpob3ZlcjphY3RpdmV+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIucnp3ZHpiNDplbmFibGVkOm5vdCg6Y2hlY2tlZCk6aG92ZXI6YWN0aXZlfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWNjZXNzaWJsZVByZXNzZWQpO31cIiwgXCIucnp3ZHpiNDplbmFibGVkOmNoZWNrZWR+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIucnp3ZHpiNDplbmFibGVkOmNoZWNrZWR+LmZ1aS1SYWRpb19faW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2UpO2NvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxKTt9XCIsIFwiLnJ6d2R6YjQ6ZW5hYmxlZDpjaGVja2VkOmhvdmVyfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlSG92ZXIpO2NvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIucnp3ZHpiNDplbmFibGVkOmNoZWNrZWQ6aG92ZXI6YWN0aXZlfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlUHJlc3NlZCk7Y29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFQcmVzc2VkKTt9XCIsIFwiLnJ6d2R6YjQ6ZGlzYWJsZWR+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTtjdXJzb3I6ZGVmYXVsdDt9XCIsIFwiLnJ6d2R6YjQ6ZGlzYWJsZWR+LmZ1aS1SYWRpb19faW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VEaXNhYmxlZCk7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCJdLFxuICBzOiBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnJnMXVwb2s6ZW5hYmxlZDpub3QoOmNoZWNrZWQpfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6QnV0dG9uQm9yZGVyO319XCIsIFwiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5yZzF1cG9rOmVuYWJsZWQ6Y2hlY2tlZH4uZnVpLVJhZGlvX19pbmRpY2F0b3J7Ym9yZGVyLWNvbG9yOkhpZ2hsaWdodDtjb2xvcjpIaWdobGlnaHQ7fS5yZzF1cG9rOmVuYWJsZWQ6Y2hlY2tlZH4uZnVpLVJhZGlvX19pbmRpY2F0b3I6OmFmdGVye2JhY2tncm91bmQtY29sb3I6SGlnaGxpZ2h0O319XCIsIFwiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5yZzF1cG9rOmRpc2FibGVkfi5mdWktUmFkaW9fX2xhYmVse2NvbG9yOkdyYXlUZXh0O319XCIsIFwiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5yZzF1cG9rOmRpc2FibGVkfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6R3JheVRleHQ7Y29sb3I6R3JheVRleHQ7fS5yZzF1cG9rOmRpc2FibGVkfi5mdWktUmFkaW9fX2luZGljYXRvcjo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjpHcmF5VGV4dDt9fVwiLCBcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsucnp3ZHpiNDplbmFibGVkOm5vdCg6Y2hlY2tlZCl+LmZ1aS1SYWRpb19faW5kaWNhdG9ye2JvcmRlci1jb2xvcjpCdXR0b25Cb3JkZXI7fX1cIiwgXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnJ6d2R6YjQ6ZW5hYmxlZDpjaGVja2Vkfi5mdWktUmFkaW9fX2luZGljYXRvcntib3JkZXItY29sb3I6SGlnaGxpZ2h0O2NvbG9yOkhpZ2hsaWdodDt9LnJ6d2R6YjQ6ZW5hYmxlZDpjaGVja2Vkfi5mdWktUmFkaW9fX2luZGljYXRvcjo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwgXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnJ6d2R6YjQ6ZGlzYWJsZWR+LmZ1aS1SYWRpb19fbGFiZWx7Y29sb3I6R3JheVRleHQ7fX1cIiwgXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnJ6d2R6YjQ6ZGlzYWJsZWR+LmZ1aS1SYWRpb19faW5kaWNhdG9ye2JvcmRlci1jb2xvcjpHcmF5VGV4dDtjb2xvcjpHcmF5VGV4dDt9LnJ6d2R6YjQ6ZGlzYWJsZWR+LmZ1aS1SYWRpb19faW5kaWNhdG9yOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOkdyYXlUZXh0O319XCJdXG59KTtcbmNvbnN0IHVzZUlucHV0U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmVsb3c6IHtcbiAgICBhOWI2Nzc6IFwiZmx5NXgzZlwiLFxuICAgIEJxZW52aWo6IFwiZjFqZTZ6aWZcIlxuICB9LFxuICBkZWZhdWx0SW5kaWNhdG9yOiB7XG4gICAgQmxieXM3ZjogXCJmOW1hMWd4XCJcbiAgfSxcbiAgY3VzdG9tSW5kaWNhdG9yOiB7XG4gICAgQmo1M3drajogXCJmMTJ6eGFvMFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZseTV4M2Z7d2lkdGg6MTAwJTt9XCIsIFwiLmYxamU2emlme2hlaWdodDpjYWxjKDE2cHggKyAyICogdmFyKC0tc3BhY2luZ1ZlcnRpY2FsUykpO31cIiwgXCIuZjltYTFneDpjaGVja2Vkfi5mdWktUmFkaW9fX2luZGljYXRvcjo6YWZ0ZXJ7Y29udGVudDpcXFwiXFxcIjt9XCIsIFwiLmYxMnp4YW8wOm5vdCg6Y2hlY2tlZCl+LmZ1aS1SYWRpb19faW5kaWNhdG9yPip7b3BhY2l0eTowO31cIl1cbn0pO1xuY29uc3QgdXNlSW5kaWNhdG9yQmFzZUNsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicnd0ZWt2d1wiLCBudWxsLCBbXCIucnd0ZWt2d3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2ZvbnQtc2l6ZToxMnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmbGV4LXNocmluazowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNDaXJjdWxhcik7bWFyZ2luOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFMpIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsUyk7ZmlsbDpjdXJyZW50Q29sb3I7cG9pbnRlci1ldmVudHM6bm9uZTt9XCIsIFwiLnJ3dGVrdnc6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNDaXJjdWxhcik7dHJhbnNmb3JtOnNjYWxlKDAuNjI1KTtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjt9XCJdKTtcbi8vIENhbid0IHVzZSBtYWtlUmVzZXRTdHlsZXMgaGVyZSBiZWNhdXNlIExhYmVsIGlzIGEgY29tcG9uZW50IHRoYXQgbWF5IGl0c2VsZiB1c2UgbWFrZVJlc2V0U3R5bGVzLlxuY29uc3QgdXNlTGFiZWxTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgcWIyZG1hOiBcImY3bmxicDRcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFmNXEwbjhcIlxuICB9LFxuICBhZnRlcjoge1xuICAgIHV3bXFtMzogW1wiZnJ1cTI5MVwiLCBcImY3eDQxcGxcIl0sXG4gICAgQjZvZjNqYTogXCJmanp3cHQ2XCIsXG4gICAganJhcGt5OiBcImZoNmoyZm9cIlxuICB9LFxuICBiZWxvdzoge1xuICAgIHo4dG51dDogXCJmMXl3bTdobVwiLFxuICAgIGZzb3c2ZjogXCJmMTdtY2NsYVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmY3bmxicDR7YWxpZ24tc2VsZjpjZW50ZXI7fVwiLCBbXCIuZjFmNXEwbjh7cGFkZGluZzp2YXIoLS1zcGFjaW5nVmVydGljYWxTKSB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mcnVxMjkxe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFwiLmY3eDQxcGx7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhTKTt9XCIsIFwiLmZqendwdDZ7bWFyZ2luLXRvcDpjYWxjKCgxNnB4IC0gdmFyKC0tbGluZUhlaWdodEJhc2UzMDApKSAvIDIpO31cIiwgXCIuZmg2ajJmb3ttYXJnaW4tYm90dG9tOmNhbGMoKDE2cHggLSB2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCkpIC8gMik7fVwiLCBcIi5mMXl3bTdobXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjaW5nVmVydGljYWxYUyk7fVwiLCBcIi5mMTdtY2NsYXt0ZXh0LWFsaWduOmNlbnRlcjt9XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgUmFkaW8gc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSYWRpb1N0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCB7XG4gICAgbGFiZWxQb3NpdGlvblxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJvb3RCYXNlQ2xhc3NOYW1lID0gdXNlUm9vdEJhc2VDbGFzc05hbWUoKTtcbiAgY29uc3Qgcm9vdFN0eWxlcyA9IHVzZVJvb3RTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMocmFkaW9DbGFzc05hbWVzLnJvb3QsIHJvb3RCYXNlQ2xhc3NOYW1lLCBsYWJlbFBvc2l0aW9uID09PSAnYmVsb3cnICYmIHJvb3RTdHlsZXMudmVydGljYWwsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgY29uc3QgaW5wdXRCYXNlQ2xhc3NOYW1lID0gdXNlSW5wdXRCYXNlQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IGlucHV0U3R5bGVzID0gdXNlSW5wdXRTdHlsZXMoKTtcbiAgc3RhdGUuaW5wdXQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHJhZGlvQ2xhc3NOYW1lcy5pbnB1dCwgaW5wdXRCYXNlQ2xhc3NOYW1lLCBsYWJlbFBvc2l0aW9uID09PSAnYmVsb3cnICYmIGlucHV0U3R5bGVzLmJlbG93LCBzdGF0ZS5pbmRpY2F0b3IuY2hpbGRyZW4gPyBpbnB1dFN0eWxlcy5jdXN0b21JbmRpY2F0b3IgOiBpbnB1dFN0eWxlcy5kZWZhdWx0SW5kaWNhdG9yLCBzdGF0ZS5pbnB1dC5jbGFzc05hbWUpO1xuICBjb25zdCBpbmRpY2F0b3JCYXNlQ2xhc3NOYW1lID0gdXNlSW5kaWNhdG9yQmFzZUNsYXNzTmFtZSgpO1xuICBzdGF0ZS5pbmRpY2F0b3IuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHJhZGlvQ2xhc3NOYW1lcy5pbmRpY2F0b3IsIGluZGljYXRvckJhc2VDbGFzc05hbWUsIHN0YXRlLmluZGljYXRvci5jbGFzc05hbWUpO1xuICBjb25zdCBsYWJlbFN0eWxlcyA9IHVzZUxhYmVsU3R5bGVzKCk7XG4gIGlmIChzdGF0ZS5sYWJlbCkge1xuICAgIHN0YXRlLmxhYmVsLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhyYWRpb0NsYXNzTmFtZXMubGFiZWwsIGxhYmVsU3R5bGVzLmJhc2UsIGxhYmVsU3R5bGVzW2xhYmVsUG9zaXRpb25dLCBzdGF0ZS5sYWJlbC5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VSYWRpb1N0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyUmFkaW9fdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclJhZGlvJztcbmltcG9ydCB7IHVzZVJhZGlvX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VSYWRpbyc7XG5pbXBvcnQgeyB1c2VSYWRpb1N0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlUmFkaW9TdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBSYWRpbyBjb21wb25lbnQgaXMgYSB3cmFwcGVyIGZvciBhIHJhZGlvIGJ1dHRvbiB3aXRoIGEgbGFiZWwuXG4gKi8gZXhwb3J0IGNvbnN0IFJhZGlvID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlUmFkaW9fdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlUmFkaW9TdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlUmFkaW9TdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclJhZGlvX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuUmFkaW8uZGlzcGxheU5hbWUgPSAnUmFkaW8nO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgU2tlbGV0b25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3Qgc2tlbGV0b25Db250ZXh0RGVmYXVsdFZhbHVlID0ge307XG5leHBvcnQgY29uc3QgU2tlbGV0b25Db250ZXh0UHJvdmlkZXIgPSBTa2VsZXRvbkNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlU2tlbGV0b25Db250ZXh0ID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoU2tlbGV0b25Db250ZXh0KSkgIT09IG51bGwgJiYgX1JlYWN0X3VzZUNvbnRleHQgIT09IHZvaWQgMCA/IF9SZWFjdF91c2VDb250ZXh0IDogc2tlbGV0b25Db250ZXh0RGVmYXVsdFZhbHVlO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlU2tlbGV0b25Db250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dHMvU2tlbGV0b25Db250ZXh0Jztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgU2tlbGV0b25JdGVtLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVNrZWxldG9uSXRlbVN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyU2tlbGV0b25JdGVtX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBTa2VsZXRvbkl0ZW1cbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBTa2VsZXRvbkl0ZW1cbiAqLyBleHBvcnQgY29uc3QgdXNlU2tlbGV0b25JdGVtX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBhbmltYXRpb246IGNvbnRleHRBbmltYXRpb24sIGFwcGVhcmFuY2U6IGNvbnRleHRBcHBlYXJhbmNlIH0gPSB1c2VTa2VsZXRvbkNvbnRleHQoKTtcbiAgICBjb25zdCB7IGFuaW1hdGlvbiA9IGNvbnRleHRBbmltYXRpb24gIT09IG51bGwgJiYgY29udGV4dEFuaW1hdGlvbiAhPT0gdm9pZCAwID8gY29udGV4dEFuaW1hdGlvbiA6ICd3YXZlJywgYXBwZWFyYW5jZSA9IGNvbnRleHRBcHBlYXJhbmNlICE9PSBudWxsICYmIGNvbnRleHRBcHBlYXJhbmNlICE9PSB2b2lkIDAgPyBjb250ZXh0QXBwZWFyYW5jZSA6ICdvcGFxdWUnLCBzaXplID0gMTYsIHNoYXBlID0gJ3JlY3RhbmdsZScgfSA9IHByb3BzO1xuICAgIGNvbnN0IHJvb3QgPSBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgLy8gRklYTUU6XG4gICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgcmVmOiByZWYsXG4gICAgICAgIC4uLnByb3BzXG4gICAgfSksIHtcbiAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBzaXplLFxuICAgICAgICBzaGFwZSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdFxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFNrZWxldG9uSXRlbVxuICovIGV4cG9ydCBjb25zdCByZW5kZXJTa2VsZXRvbkl0ZW1fdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IHNrZWxldG9uSXRlbUNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktU2tlbGV0b25JdGVtJ1xufTtcbmNvbnN0IHNrZWxldG9uV2F2ZUFuaW1hdGlvbiA9IHtcbiAgdG86IHtcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMTAwJSknXG4gIH1cbn07XG5jb25zdCBza2VsZXRvblB1bHNlQW5pbWF0aW9uID0ge1xuICAnMCUnOiB7XG4gICAgb3BhY2l0eTogJzEnXG4gIH0sXG4gICc1MCUnOiB7XG4gICAgb3BhY2l0eTogJzAuNCdcbiAgfSxcbiAgJzEwMCUnOiB7XG4gICAgb3BhY2l0eTogJzEnXG4gIH1cbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgcWhmOHhxOiBcImYxMHBpMTNuXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBCc2Z0NXoyOiBcImYxM3pqNmZxXCIsXG4gICAgYXAxN2c2OiBcImYyZ3o3eXdcIixcbiAgICBFM3pkdHI6IFwiZjFtZGxjejlcIixcbiAgICBCeTM4NWk1OiAwLFxuICAgIEVxeDhnZDogMCxcbiAgICBCMXBpaW4zOiAwLFxuICAgIGJuNXNhazogMCxcbiAgICBCNThvbnVrOiBcImYxbnQ1M2hzXCIsXG4gICAgczlvdXZ2OiBcImYxOHhzN2V6XCIsXG4gICAgeHIzNmVwOiBcImZmbTM2MjlcIixcbiAgICBCaXR2NHNjOiBcImYxZjl6c3ZtXCIsXG4gICAgSng1c3VnOiBcImYxdWI4MHBuXCIsXG4gICAgSHp5enJoOiBcImYxZTd0d2VwXCJcbiAgfSxcbiAgd2F2ZToge1xuICAgIERlM3B6cTogXCJmMWdqeGc2M1wiLFxuICAgIEJyMTI4c2Q6IFtcImYzZm80MTlcIiwgXCJmNm05cjRcIl0sXG4gICAgaDYycndpOiBbXCJmdG52MmpzXCIsIFwiZjEyanpoeXRcIl0sXG4gICAgYjFrY281OiBbXCJmaWcxYzZsXCIsIFwiZjFydjV5OWhcIl0sXG4gICAgb2kzMW1lOiBcImYxMDNuMTVuXCJcbiAgfSxcbiAgcHVsc2U6IHtcbiAgICBCcjEyOHNkOiBcImYxNzF6d3ZtXCIsXG4gICAgeHIzNmVwOiBcImZzM3BjeWZcIixcbiAgICBCanlrNmM1OiBcImYxeXU1cmlxXCJcbiAgfSxcbiAgdHJhbnNsdWNlbnQ6IHtcbiAgICBEZTNwenE6IFwiZjE2Mm1oNHpcIixcbiAgICBoNjJyd2k6IFtcImZsdmY0cjBcIiwgXCJmMXVlazk3YlwiXVxuICB9LFxuICB0cmFuc2x1Y2VudFB1bHNlOiB7XG4gICAgRGUzcHpxOiBcImZsdTNicW1cIixcbiAgICBCanlrNmM1OiBcImZ4dWNjMHdcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTBwaTEzbntwb3NpdGlvbjpyZWxhdGl2ZTt9XCIsIFtcIi5mMWEzcDF2cHtvdmVyZmxvdzpoaWRkZW47fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxM3pqNmZxOjphZnRlcntjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZjJnejd5dzo6YWZ0ZXJ7ZGlzcGxheTpibG9jazt9XCIsIFwiLmYxbWRsY3o5OjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt9XCIsIFtcIi5mMW50NTNoczo6YWZ0ZXJ7aW5zZXQ6MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjE4eHM3ZXo6OmFmdGVye2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7fVwiLCBcIi5mZm0zNjI5OjphZnRlcnthbmltYXRpb24tZHVyYXRpb246M3M7fVwiLCBcIi5mMWY5enN2bTo6YWZ0ZXJ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDt9XCIsIFwiLmYxZ2p4ZzYze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDEpO31cIiwgXCIuZjNmbzQxOTo6YWZ0ZXJ7YW5pbWF0aW9uLW5hbWU6ZjFlZnd4N3E7fVwiLCBcIi5mNm05cjQ6OmFmdGVye2FuaW1hdGlvbi1uYW1lOmYxa2tncHoxO31cIiwgXCIuZnRudjJqczo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgICB0byByaWdodCxcXG4gICAgICAgIHZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwxKSAwJSxcXG4gICAgICAgIHZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwyKSA1MCUsXFxuICAgICAgICB2YXIoLS1jb2xvck5ldXRyYWxTdGVuY2lsMSkgMTAwJSk7fVwiLCBcIi5mMTJqemh5dDo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgICB0byBsZWZ0LFxcbiAgICAgICAgdmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDEpIDAlLFxcbiAgICAgICAgdmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDIpIDUwJSxcXG4gICAgICAgIHZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwxKSAxMDAlKTt9XCIsIFwiLmZpZzFjNmw6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUpO31cIiwgXCIuZjFydjV5OWg6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSk7fVwiLCBcIi5mMTcxend2bTo6YWZ0ZXJ7YW5pbWF0aW9uLW5hbWU6ZjEybzdnZzY7fVwiLCBcIi5mczNwY3lmOjphZnRlcnthbmltYXRpb24tZHVyYXRpb246MXM7fVwiLCBcIi5mMXl1NXJpcTo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdGVuY2lsMSk7fVwiLCBcIi5mMTYybWg0entiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwxQWxwaGEpO31cIiwgXCIuZmx2ZjRyMDo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgdG8gcmlnaHQsXFxuICAgICAgdHJhbnNwYXJlbnQgMCUsXFxuICAgICAgdmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDFBbHBoYSkgNTAlLFxcbiAgICAgIHRyYW5zcGFyZW50IDEwMCUpO31cIiwgXCIuZjF1ZWs5N2I6OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KFxcbiAgICAgIHRvIGxlZnQsXFxuICAgICAgdHJhbnNwYXJlbnQgMCUsXFxuICAgICAgdmFyKC0tY29sb3JOZXV0cmFsU3RlbmNpbDFBbHBoYSkgNTAlLFxcbiAgICAgIHRyYW5zcGFyZW50IDEwMCUpO31cIiwgXCIuZmx1M2JxbXtiYWNrZ3JvdW5kLWNvbG9yOm5vbmU7fVwiLCBcIi5meHVjYzB3OjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0ZW5jaWwxQWxwaGEpO31cIl0sXG4gIG06IFtbXCJAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsuZjF1YjgwcG46OmFmdGVye2FuaW1hdGlvbi1kdXJhdGlvbjowLjAxbXM7fX1cIiwge1xuICAgIG06IFwic2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKVwiXG4gIH1dLCBbXCJAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsuZjFlN3R3ZXA6OmFmdGVye2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTt9fVwiLCB7XG4gICAgbTogXCJzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCJcbiAgfV0sIFtcIkBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMTAzbjE1bjo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjpXaW5kb3dUZXh0O319XCIsIHtcbiAgICBtOiBcInNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV0sXG4gIGs6IFtcIkBrZXlmcmFtZXMgZjFlZnd4N3F7dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlKTt9fVwiLCBcIkBrZXlmcmFtZXMgZjFra2dwejF7dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSk7fX1cIiwgXCJAa2V5ZnJhbWVzIGYxMm83Z2c2ezAle29wYWNpdHk6MTt9NTAle29wYWNpdHk6MC40O30xMDAle29wYWNpdHk6MTt9fVwiXVxufSk7XG5jb25zdCB1c2VSZWN0YW5nbGVTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBcIjhcIjoge1xuICAgIEJxZW52aWo6IFwiZjF4ODJndWFcIlxuICB9LFxuICBcIjEyXCI6IHtcbiAgICBCcWVudmlqOiBcImZ2YmxnaGFcIlxuICB9LFxuICBcIjE2XCI6IHtcbiAgICBCcWVudmlqOiBcImZkNDYxeXRcIlxuICB9LFxuICBcIjIwXCI6IHtcbiAgICBCcWVudmlqOiBcImZqYW1xNmJcIlxuICB9LFxuICBcIjI0XCI6IHtcbiAgICBCcWVudmlqOiBcImZydmdoNTVcIlxuICB9LFxuICBcIjI4XCI6IHtcbiAgICBCcWVudmlqOiBcImZ4bGRhbzlcIlxuICB9LFxuICBcIjMyXCI6IHtcbiAgICBCcWVudmlqOiBcImYxZDJycTEwXCJcbiAgfSxcbiAgXCIzNlwiOiB7XG4gICAgQnFlbnZpajogXCJmOGxqbjIzXCJcbiAgfSxcbiAgXCI0MFwiOiB7XG4gICAgQnFlbnZpajogXCJmYmhub2FjXCJcbiAgfSxcbiAgXCI0OFwiOiB7XG4gICAgQnFlbnZpajogXCJmZjJzbTcxXCJcbiAgfSxcbiAgXCI1NlwiOiB7XG4gICAgQnFlbnZpajogXCJmemtpMGtvXCJcbiAgfSxcbiAgXCI2NFwiOiB7XG4gICAgQnFlbnZpajogXCJmMTZrOWkybVwiXG4gIH0sXG4gIFwiNzJcIjoge1xuICAgIEJxZW52aWo6IFwiZjFzaHVzZmdcIlxuICB9LFxuICBcIjk2XCI6IHtcbiAgICBCcWVudmlqOiBcImZ5cHUwZ2VcIlxuICB9LFxuICBcIjEyMFwiOiB7XG4gICAgQnFlbnZpajogXCJmanI1YjcxXCJcbiAgfSxcbiAgXCIxMjhcIjoge1xuICAgIEJxZW52aWo6IFwiZmVsZTJhdVwiXG4gIH0sXG4gIHJvb3Q6IHtcbiAgICBhOWI2Nzc6IFwiZmx5NXgzZlwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZmM2dsdzZcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXg4Mmd1YXtoZWlnaHQ6OHB4O31cIiwgXCIuZnZibGdoYXtoZWlnaHQ6MTJweDt9XCIsIFwiLmZkNDYxeXR7aGVpZ2h0OjE2cHg7fVwiLCBcIi5mamFtcTZie2hlaWdodDoyMHB4O31cIiwgXCIuZnJ2Z2g1NXtoZWlnaHQ6MjRweDt9XCIsIFwiLmZ4bGRhbzl7aGVpZ2h0OjI4cHg7fVwiLCBcIi5mMWQycnExMHtoZWlnaHQ6MzJweDt9XCIsIFwiLmY4bGpuMjN7aGVpZ2h0OjM2cHg7fVwiLCBcIi5mYmhub2Fje2hlaWdodDo0MHB4O31cIiwgXCIuZmYyc203MXtoZWlnaHQ6NDhweDt9XCIsIFwiLmZ6a2kwa297aGVpZ2h0OjU2cHg7fVwiLCBcIi5mMTZrOWkybXtoZWlnaHQ6NjRweDt9XCIsIFwiLmYxc2h1c2Zne2hlaWdodDo3MnB4O31cIiwgXCIuZnlwdTBnZXtoZWlnaHQ6OTZweDt9XCIsIFwiLmZqcjViNzF7aGVpZ2h0OjEyMHB4O31cIiwgXCIuZmVsZTJhdXtoZWlnaHQ6MTI4cHg7fVwiLCBcIi5mbHk1eDNme3dpZHRoOjEwMCU7fVwiLCBbXCIuZmYzZ2x3Nntib3JkZXItcmFkaXVzOjRweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XV1cbn0pO1xuY29uc3QgdXNlU2l6ZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIFwiOFwiOiB7XG4gICAgYTliNjc3OiBcImYxbzNjYnc0XCIsXG4gICAgQnFlbnZpajogXCJmMXg4Mmd1YVwiXG4gIH0sXG4gIFwiMTJcIjoge1xuICAgIGE5YjY3NzogXCJmcng5NGZrXCIsXG4gICAgQnFlbnZpajogXCJmdmJsZ2hhXCJcbiAgfSxcbiAgXCIxNlwiOiB7XG4gICAgYTliNjc3OiBcImZqdzVmeDdcIixcbiAgICBCcWVudmlqOiBcImZkNDYxeXRcIlxuICB9LFxuICBcIjIwXCI6IHtcbiAgICBhOWI2Nzc6IFwiZjY0ZnVxM1wiLFxuICAgIEJxZW52aWo6IFwiZmphbXE2YlwiXG4gIH0sXG4gIFwiMjRcIjoge1xuICAgIGE5YjY3NzogXCJmcTRtY3VuXCIsXG4gICAgQnFlbnZpajogXCJmcnZnaDU1XCJcbiAgfSxcbiAgXCIyOFwiOiB7XG4gICAgYTliNjc3OiBcImYxdzlkY2hrXCIsXG4gICAgQnFlbnZpajogXCJmeGxkYW85XCJcbiAgfSxcbiAgXCIzMlwiOiB7XG4gICAgYTliNjc3OiBcImYxc3pvZTk2XCIsXG4gICAgQnFlbnZpajogXCJmMWQycnExMFwiXG4gIH0sXG4gIFwiMzZcIjoge1xuICAgIGE5YjY3NzogXCJmcGR6MWVyXCIsXG4gICAgQnFlbnZpajogXCJmOGxqbjIzXCJcbiAgfSxcbiAgXCI0MFwiOiB7XG4gICAgYTliNjc3OiBcImZlcW1jMnVcIixcbiAgICBCcWVudmlqOiBcImZiaG5vYWNcIlxuICB9LFxuICBcIjQ4XCI6IHtcbiAgICBhOWI2Nzc6IFwiZjEyNGFrZ2VcIixcbiAgICBCcWVudmlqOiBcImZmMnNtNzFcIlxuICB9LFxuICBcIjU2XCI6IHtcbiAgICBhOWI2Nzc6IFwiZjF1NjZ6cjFcIixcbiAgICBCcWVudmlqOiBcImZ6a2kwa29cIlxuICB9LFxuICBcIjY0XCI6IHtcbiAgICBhOWI2Nzc6IFwiZmE5bG42cFwiLFxuICAgIEJxZW52aWo6IFwiZjE2azlpMm1cIlxuICB9LFxuICBcIjcyXCI6IHtcbiAgICBhOWI2Nzc6IFwiZmhjYWU4eFwiLFxuICAgIEJxZW52aWo6IFwiZjFzaHVzZmdcIlxuICB9LFxuICBcIjk2XCI6IHtcbiAgICBhOWI2Nzc6IFwiZjFreXIyZ25cIixcbiAgICBCcWVudmlqOiBcImZ5cHUwZ2VcIlxuICB9LFxuICBcIjEyMFwiOiB7XG4gICAgYTliNjc3OiBcImZ3ZnF5Z2FcIixcbiAgICBCcWVudmlqOiBcImZqcjViNzFcIlxuICB9LFxuICBcIjEyOFwiOiB7XG4gICAgYTliNjc3OiBcImYxaWtzZ215XCIsXG4gICAgQnFlbnZpajogXCJmZWxlMmF1XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFvM2NidzR7d2lkdGg6OHB4O31cIiwgXCIuZjF4ODJndWF7aGVpZ2h0OjhweDt9XCIsIFwiLmZyeDk0Zmt7d2lkdGg6MTJweDt9XCIsIFwiLmZ2YmxnaGF7aGVpZ2h0OjEycHg7fVwiLCBcIi5manc1Zng3e3dpZHRoOjE2cHg7fVwiLCBcIi5mZDQ2MXl0e2hlaWdodDoxNnB4O31cIiwgXCIuZjY0ZnVxM3t3aWR0aDoyMHB4O31cIiwgXCIuZmphbXE2YntoZWlnaHQ6MjBweDt9XCIsIFwiLmZxNG1jdW57d2lkdGg6MjRweDt9XCIsIFwiLmZydmdoNTV7aGVpZ2h0OjI0cHg7fVwiLCBcIi5mMXc5ZGNoa3t3aWR0aDoyOHB4O31cIiwgXCIuZnhsZGFvOXtoZWlnaHQ6MjhweDt9XCIsIFwiLmYxc3pvZTk2e3dpZHRoOjMycHg7fVwiLCBcIi5mMWQycnExMHtoZWlnaHQ6MzJweDt9XCIsIFwiLmZwZHoxZXJ7d2lkdGg6MzZweDt9XCIsIFwiLmY4bGpuMjN7aGVpZ2h0OjM2cHg7fVwiLCBcIi5mZXFtYzJ1e3dpZHRoOjQwcHg7fVwiLCBcIi5mYmhub2Fje2hlaWdodDo0MHB4O31cIiwgXCIuZjEyNGFrZ2V7d2lkdGg6NDhweDt9XCIsIFwiLmZmMnNtNzF7aGVpZ2h0OjQ4cHg7fVwiLCBcIi5mMXU2NnpyMXt3aWR0aDo1NnB4O31cIiwgXCIuZnpraTBrb3toZWlnaHQ6NTZweDt9XCIsIFwiLmZhOWxuNnB7d2lkdGg6NjRweDt9XCIsIFwiLmYxNms5aTJte2hlaWdodDo2NHB4O31cIiwgXCIuZmhjYWU4eHt3aWR0aDo3MnB4O31cIiwgXCIuZjFzaHVzZmd7aGVpZ2h0OjcycHg7fVwiLCBcIi5mMWt5cjJnbnt3aWR0aDo5NnB4O31cIiwgXCIuZnlwdTBnZXtoZWlnaHQ6OTZweDt9XCIsIFwiLmZ3ZnF5Z2F7d2lkdGg6MTIwcHg7fVwiLCBcIi5manI1Yjcxe2hlaWdodDoxMjBweDt9XCIsIFwiLmYxaWtzZ215e3dpZHRoOjEyOHB4O31cIiwgXCIuZmVsZTJhdXtoZWlnaHQ6MTI4cHg7fVwiXVxufSk7XG5jb25zdCB1c2VDaXJjbGVTaXplU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImY1cTJjdnNcIlxuICB9XG59LCB7XG4gIGQ6IFtbXCIuZjVxMmN2c3tib3JkZXItcmFkaXVzOjUwJTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XV1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBTa2VsZXRvbkl0ZW0gc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VTa2VsZXRvbkl0ZW1TdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qge1xuICAgIGFuaW1hdGlvbixcbiAgICBhcHBlYXJhbmNlLFxuICAgIHNpemUsXG4gICAgc2hhcGVcbiAgfSA9IHN0YXRlO1xuICBjb25zdCByb290U3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHJlY3RTdHlsZXMgPSB1c2VSZWN0YW5nbGVTdHlsZXMoKTtcbiAgY29uc3Qgc2l6ZVN0eWxlcyA9IHVzZVNpemVTdHlsZXMoKTtcbiAgY29uc3QgY2lyY2xlU3R5bGVzID0gdXNlQ2lyY2xlU2l6ZVN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyhza2VsZXRvbkl0ZW1DbGFzc05hbWVzLnJvb3QsIHJvb3RTdHlsZXMucm9vdCwgYW5pbWF0aW9uID09PSAnd2F2ZScgJiYgcm9vdFN0eWxlcy53YXZlLCBhbmltYXRpb24gPT09ICdwdWxzZScgJiYgcm9vdFN0eWxlcy5wdWxzZSwgYXBwZWFyYW5jZSA9PT0gJ3RyYW5zbHVjZW50JyAmJiByb290U3R5bGVzLnRyYW5zbHVjZW50LCBhbmltYXRpb24gPT09ICdwdWxzZScgJiYgYXBwZWFyYW5jZSA9PT0gJ3RyYW5zbHVjZW50JyAmJiByb290U3R5bGVzLnRyYW5zbHVjZW50UHVsc2UsIHNoYXBlID09PSAncmVjdGFuZ2xlJyAmJiByZWN0U3R5bGVzLnJvb3QsIHNoYXBlID09PSAncmVjdGFuZ2xlJyAmJiByZWN0U3R5bGVzW3NpemVdLCBzaGFwZSA9PT0gJ3NxdWFyZScgJiYgc2l6ZVN0eWxlc1tzaXplXSwgc2hhcGUgPT09ICdjaXJjbGUnICYmIGNpcmNsZVN0eWxlcy5yb290LCBzaGFwZSA9PT0gJ2NpcmNsZScgJiYgc2l6ZVN0eWxlc1tzaXplXSwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlU2tlbGV0b25JdGVtU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTa2VsZXRvbkl0ZW1fdW5zdGFibGUgfSBmcm9tICcuL3VzZVNrZWxldG9uSXRlbSc7XG5pbXBvcnQgeyByZW5kZXJTa2VsZXRvbkl0ZW1fdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclNrZWxldG9uSXRlbSc7XG5pbXBvcnQgeyB1c2VTa2VsZXRvbkl0ZW1TdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVNrZWxldG9uSXRlbVN0eWxlcy5zdHlsZXMnO1xuZXhwb3J0IGNvbnN0IFNrZWxldG9uSXRlbSA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVNrZWxldG9uSXRlbV91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VTa2VsZXRvbkl0ZW1TdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJTa2VsZXRvbkl0ZW1fdW5zdGFibGUoc3RhdGUpO1xufSk7XG5Ta2VsZXRvbkl0ZW0uZGlzcGxheU5hbWUgPSAnU2tlbGV0b25JdGVtJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IFNwaW5uZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgU3Bpbm5lckNvbnRleHREZWZhdWx0VmFsdWUgPSB7fTtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IFNwaW5uZXJDb250ZXh0UHJvdmlkZXIgPSBTcGlubmVyQ29udGV4dC5Qcm92aWRlcjtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVNwaW5uZXJDb250ZXh0ID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoU3Bpbm5lckNvbnRleHQpKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dCAhPT0gdm9pZCAwID8gX1JlYWN0X3VzZUNvbnRleHQgOiBTcGlubmVyQ29udGV4dERlZmF1bHRWYWx1ZTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHVzZUlkLCB1c2VUaW1lb3V0LCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1sYWJlbCc7XG5pbXBvcnQgeyB1c2VTcGlubmVyQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHRzL1NwaW5uZXJDb250ZXh0Jztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgU3Bpbm5lci5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VTcGlubmVyU3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJTcGlubmVyX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBTcGlubmVyXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgU3Bpbm5lclxuICovIGV4cG9ydCBjb25zdCB1c2VTcGlubmVyX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgLy8gUHJvcHNcbiAgICBjb25zdCB7IHNpemU6IGNvbnRleHRTaXplIH0gPSB1c2VTcGlubmVyQ29udGV4dCgpO1xuICAgIGNvbnN0IHsgYXBwZWFyYW5jZSA9ICdwcmltYXJ5JywgbGFiZWxQb3NpdGlvbiA9ICdhZnRlcicsIHNpemUgPSBjb250ZXh0U2l6ZSAhPT0gbnVsbCAmJiBjb250ZXh0U2l6ZSAhPT0gdm9pZCAwID8gY29udGV4dFNpemUgOiAnbWVkaXVtJywgZGVsYXkgPSAwIH0gPSBwcm9wcztcbiAgICBjb25zdCBiYXNlSWQgPSB1c2VJZCgnc3Bpbm5lcicpO1xuICAgIGNvbnN0IHsgcm9sZSA9ICdwcm9ncmVzc2JhcicsIC4uLnJlc3QgfSA9IHByb3BzO1xuICAgIGNvbnN0IG5hdGl2ZVJvb3QgPSBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgLy8gRklYTUU6XG4gICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgcmVmOiByZWYsXG4gICAgICAgIHJvbGUsXG4gICAgICAgIC4uLnJlc3RcbiAgICB9LCBbXG4gICAgICAgICdzaXplJ1xuICAgIF0pLCB7XG4gICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgIH0pO1xuICAgIGNvbnN0IFtpc1Nob3duQWZ0ZXJEZWxheSwgc2V0SXNTaG93bkFmdGVyRGVsYXldID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzZXREZWxheVRpbWVvdXQsIGNsZWFyRGVsYXlUaW1lb3V0XSA9IHVzZVRpbWVvdXQoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGRlbGF5IDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXREZWxheVRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIHNldElzU2hvd25BZnRlckRlbGF5KHRydWUpO1xuICAgICAgICB9LCBkZWxheSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgY2xlYXJEZWxheVRpbWVvdXQoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHNldERlbGF5VGltZW91dCxcbiAgICAgICAgY2xlYXJEZWxheVRpbWVvdXQsXG4gICAgICAgIGRlbGF5XG4gICAgXSk7XG4gICAgY29uc3QgbGFiZWxTaG9ydGhhbmQgPSBzbG90Lm9wdGlvbmFsKHByb3BzLmxhYmVsLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgaWQ6IGJhc2VJZFxuICAgICAgICB9LFxuICAgICAgICByZW5kZXJCeURlZmF1bHQ6IGZhbHNlLFxuICAgICAgICBlbGVtZW50VHlwZTogTGFiZWxcbiAgICB9KTtcbiAgICBjb25zdCBzcGlubmVyU2hvcnRIYW5kID0gc2xvdC5vcHRpb25hbChwcm9wcy5zcGlubmVyLCB7XG4gICAgICAgIHJlbmRlckJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgIH0pO1xuICAgIGlmIChsYWJlbFNob3J0aGFuZCAmJiBuYXRpdmVSb290ICYmICFuYXRpdmVSb290WydhcmlhLWxhYmVsbGVkYnknXSkge1xuICAgICAgICBuYXRpdmVSb290WydhcmlhLWxhYmVsbGVkYnknXSA9IGxhYmVsU2hvcnRoYW5kLmlkO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgZGVsYXksXG4gICAgICAgIGxhYmVsUG9zaXRpb24sXG4gICAgICAgIHNpemUsXG4gICAgICAgIHNob3VsZFJlbmRlclNwaW5uZXI6ICFkZWxheSB8fCBpc1Nob3duQWZ0ZXJEZWxheSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdicsXG4gICAgICAgICAgICBzcGlubmVyOiAnc3BhbicsXG4gICAgICAgICAgICBzcGlubmVyVGFpbDogJ3NwYW4nLFxuICAgICAgICAgICAgbGFiZWw6IExhYmVsXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IG5hdGl2ZVJvb3QsXG4gICAgICAgIHNwaW5uZXI6IHNwaW5uZXJTaG9ydEhhbmQsXG4gICAgICAgIHNwaW5uZXJUYWlsOiBzbG90LmFsd2F5cyhwcm9wcy5zcGlubmVyVGFpbCwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KSxcbiAgICAgICAgbGFiZWw6IGxhYmVsU2hvcnRoYW5kXG4gICAgfTtcbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFNwaW5uZXJcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyU3Bpbm5lcl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgY29uc3QgeyBsYWJlbFBvc2l0aW9uLCBzaG91bGRSZW5kZXJTcGlubmVyIH0gPSBzdGF0ZTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzdGF0ZS5sYWJlbCAmJiBzaG91bGRSZW5kZXJTcGlubmVyICYmIChsYWJlbFBvc2l0aW9uID09PSAnYWJvdmUnIHx8IGxhYmVsUG9zaXRpb24gPT09ICdiZWZvcmUnKSAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubGFiZWwsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLnNwaW5uZXIgJiYgc2hvdWxkUmVuZGVyU3Bpbm5lciAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuc3Bpbm5lciwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBzdGF0ZS5zcGlubmVyVGFpbCAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuc3Bpbm5lclRhaWwsIHt9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGF0ZS5sYWJlbCAmJiBzaG91bGRSZW5kZXJTcGlubmVyICYmIChsYWJlbFBvc2l0aW9uID09PSAnYmVsb3cnIHx8IGxhYmVsUG9zaXRpb24gPT09ICdhZnRlcicpICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5sYWJlbCwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyB0b2tlbnMsIHR5cG9ncmFwaHlTdHlsZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgX19yZXNldFN0eWxlcywgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmV4cG9ydCBjb25zdCBzcGlubmVyQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1TcGlubmVyJyxcbiAgc3Bpbm5lcjogJ2Z1aS1TcGlubmVyX19zcGlubmVyJyxcbiAgc3Bpbm5lclRhaWw6ICdmdWktU3Bpbm5lcl9fc3Bpbm5lclRhaWwnLFxuICBsYWJlbDogJ2Z1aS1TcGlubmVyX19sYWJlbCdcbn07XG4vKipcbiAqIENTUyB2YXJpYWJsZXMgdXNlZCBpbnRlcm5hbGx5IGJ5IFNwaW5uZXJcbiAqL1xuY29uc3QgdmFycyA9IHtcbiAgc3Ryb2tlV2lkdGg6ICctLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aCdcbn07XG5jb25zdCB1c2VSb290QmFzZUNsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjgyYXBvNVwiLCBudWxsLCBbXCIucjgyYXBvNXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MDtnYXA6OHB4O292ZXJmbG93OmhpZGRlbjt9XCJdKTtcbmNvbnN0IHVzZVJvb3RTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICB2ZXJ0aWNhbDoge1xuICAgIEJlaXkzZTQ6IFwiZjF2eDlsNjJcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXZ4OWw2MntmbGV4LWRpcmVjdGlvbjpjb2x1bW47fVwiXVxufSk7XG5jb25zdCB1c2VTcGlubmVyQmFzZUNsYXNzTmFtZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicnZnY2c1MFwiLCBcInIxNW5kMmpvXCIsIHtcbiAgcjogW1wiLnJ2Z2NnNTB7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MDstd2Via2l0LW1hc2staW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgY2FsYygxMDAlIC0gdmFyKC0tZnVpLVNwaW5uZXItLXN0cm9rZVdpZHRoKSAtIDFweCksIHdoaXRlIGNhbGMoMTAwJSAtIHZhcigtLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aCkpIGNhbGMoMTAwJSAtIDFweCksIHRyYW5zcGFyZW50IDEwMCUpO21hc2staW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgY2FsYygxMDAlIC0gdmFyKC0tZnVpLVNwaW5uZXItLXN0cm9rZVdpZHRoKSAtIDFweCksIHdoaXRlIGNhbGMoMTAwJSAtIHZhcigtLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aCkpIGNhbGMoMTAwJSAtIDFweCksIHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZFN0cm9rZTJDb250cmFzdCk7Y29sb3I6dmFyKC0tY29sb3JCcmFuZFN0cm9rZTEpO2FuaW1hdGlvbi1kdXJhdGlvbjoxLjVzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7YW5pbWF0aW9uLW5hbWU6cmI3bjFvbjt9XCIsIFwiQGtleWZyYW1lcyByYjduMW9uezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7fTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO319XCIsIFwiLnIxNW5kMmpve3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7LXdlYmtpdC1tYXNrLWltYWdlOnJhZGlhbC1ncmFkaWVudChjbG9zZXN0LXNpZGUsIHRyYW5zcGFyZW50IGNhbGMoMTAwJSAtIHZhcigtLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aCkgLSAxcHgpLCB3aGl0ZSBjYWxjKDEwMCUgLSB2YXIoLS1mdWktU3Bpbm5lci0tc3Ryb2tlV2lkdGgpKSBjYWxjKDEwMCUgLSAxcHgpLCB0cmFuc3BhcmVudCAxMDAlKTttYXNrLWltYWdlOnJhZGlhbC1ncmFkaWVudChjbG9zZXN0LXNpZGUsIHRyYW5zcGFyZW50IGNhbGMoMTAwJSAtIHZhcigtLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aCkgLSAxcHgpLCB3aGl0ZSBjYWxjKDEwMCUgLSB2YXIoLS1mdWktU3Bpbm5lci0tc3Ryb2tlV2lkdGgpKSBjYWxjKDEwMCUgLSAxcHgpLCB0cmFuc3BhcmVudCAxMDAlKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRTdHJva2UyQ29udHJhc3QpO2NvbG9yOnZhcigtLWNvbG9yQnJhbmRTdHJva2UxKTthbmltYXRpb24tZHVyYXRpb246MS41czthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO2FuaW1hdGlvbi1uYW1lOnIxZ3gzam9mO31cIiwgXCJAa2V5ZnJhbWVzIHIxZ3gzam9mezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7fTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgtMzYwZGVnKTt9fVwiXSxcbiAgczogW1wiQG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnJ2Z2NnNTB7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHRUZXh0O2NvbG9yOkhpZ2hsaWdodDtmb3JjZWQtY29sb3ItYWRqdXN0Om5vbmU7fX1cIiwgXCJAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsucnZnY2c1MHthbmltYXRpb24tZHVyYXRpb246MS44czt9fVwiLCBcIkBtZWRpYSBzY3JlZW4gYW5kIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5yMTVuZDJqb3tiYWNrZ3JvdW5kLWNvbG9yOkhpZ2hsaWdodFRleHQ7Y29sb3I6SGlnaGxpZ2h0O2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCBcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5yMTVuZDJqb3thbmltYXRpb24tZHVyYXRpb246MS44czt9fVwiXVxufSk7XG4vLyBUaGUgc3Bpbm5lciB0YWlsIGlzIHJlbmRlcmVkIHVzaW5nIHR3byAxMzVkZWcgYXJjIHNlZ21lbnRzLCBiZWhpbmQgYSAxMDVkZWcgYXJjIG1hc2suXG4vLyBUaGUgc2VnbWVudHMgYXJlIHJvdGF0ZWQgb3V0IGZyb20gYmVoaW5kIHRoZSBtYXNrIHRvIGV4cGFuZCB0aGUgdmlzaWJsZSBhcmMgZnJvbVxuLy8gMzBkZWcgKG1pbikgdG8gMjU1ZGVnIChtYXgpLCBhbmQgdGhlbiBiYWNrIGJlaGluZCB0aGUgbWFzayBhZ2FpbiB0byBzaHJpbmsgdGhlIGFyYy5cbi8vIFRoZSB0YWlsIGFuZCBzcGlubmVyIGl0c2VsZiBhbHNvIGhhdmUgMzYwZGVnIHJvdGF0aW9uIGFuaW1hdGlvbnMgZm9yIHRoZSBzcGluLlxuY29uc3QgdXNlU3Bpbm5lclRhaWxCYXNlQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyeG92M3hhXCIsIFwicjFvNTQ0bXZcIiwge1xuICByOiBbXCIucnhvdjN4YXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC1tYXNrLWltYWdlOmNvbmljLWdyYWRpZW50KHRyYW5zcGFyZW50IDEwNWRlZywgd2hpdGUgMTA1ZGVnKTttYXNrLWltYWdlOmNvbmljLWdyYWRpZW50KHRyYW5zcGFyZW50IDEwNWRlZywgd2hpdGUgMTA1ZGVnKTthbmltYXRpb24tZHVyYXRpb246MS41czthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tY3VydmVFYXN5RWFzZSk7YW5pbWF0aW9uLW5hbWU6cjE1bWltNms7fVwiLCBcIi5yeG92M3hhOjpiZWZvcmUsLnJ4b3YzeGE6OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2FuaW1hdGlvbjppbmhlcml0O2JhY2tncm91bmQtaW1hZ2U6Y29uaWMtZ3JhZGllbnQoY3VycmVudGNvbG9yIDEzNWRlZywgdHJhbnNwYXJlbnQgMTM1ZGVnKTt9XCIsIFwiQGtleWZyYW1lcyByMTVtaW02a3swJXt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpO301MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyk7fX1cIiwgXCIucnhvdjN4YTo6YmVmb3Jle2FuaW1hdGlvbi1uYW1lOnIxOHZobW44O31cIiwgXCJAa2V5ZnJhbWVzIHIxOHZobW44ezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7fTUwJXt0cmFuc2Zvcm06cm90YXRlKDEwNWRlZyk7fTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt9fVwiLCBcIi5yeG92M3hhOjphZnRlcnthbmltYXRpb24tbmFtZTpya2dydm9pO31cIiwgXCJAa2V5ZnJhbWVzIHJrZ3J2b2l7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt9NTAle3RyYW5zZm9ybTpyb3RhdGUoMjI1ZGVnKTt9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO319XCIsIFwiLnIxbzU0NG12e3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LW1hc2staW1hZ2U6Y29uaWMtZ3JhZGllbnQodHJhbnNwYXJlbnQgMTA1ZGVnLCB3aGl0ZSAxMDVkZWcpO21hc2staW1hZ2U6Y29uaWMtZ3JhZGllbnQodHJhbnNwYXJlbnQgMTA1ZGVnLCB3aGl0ZSAxMDVkZWcpO2FuaW1hdGlvbi1kdXJhdGlvbjoxLjVzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1jdXJ2ZUVhc3lFYXNlKTthbmltYXRpb24tbmFtZTpyMTA5Z21pNTt9XCIsIFwiLnIxbzU0NG12OjpiZWZvcmUsLnIxbzU0NG12OjphZnRlcntjb250ZW50OlxcXCJcXFwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTthbmltYXRpb246aW5oZXJpdDtiYWNrZ3JvdW5kLWltYWdlOmNvbmljLWdyYWRpZW50KGN1cnJlbnRjb2xvciAxMzVkZWcsIHRyYW5zcGFyZW50IDEzNWRlZyk7fVwiLCBcIkBrZXlmcmFtZXMgcjEwOWdtaTV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO301MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt9MTAwJXt0cmFuc2Zvcm06cm90YXRlKC0yMjVkZWcpO319XCIsIFwiLnIxbzU0NG12OjpiZWZvcmV7YW5pbWF0aW9uLW5hbWU6cjE3d2hmbGg7fVwiLCBcIkBrZXlmcmFtZXMgcjE3d2hmbGh7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt9NTAle3RyYW5zZm9ybTpyb3RhdGUoLTEwNWRlZyk7fTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt9fVwiLCBcIi5yMW81NDRtdjo6YWZ0ZXJ7YW5pbWF0aW9uLW5hbWU6cmU0b2RobDt9XCIsIFwiQGtleWZyYW1lcyByZTRvZGhsezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7fTUwJXt0cmFuc2Zvcm06cm90YXRlKC0yMjVkZWcpO30xMDAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7fX1cIl0sXG4gIHM6IFtcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5yeG92M3hhe2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MDtiYWNrZ3JvdW5kLWltYWdlOmNvbmljLWdyYWRpZW50KHRyYW5zcGFyZW50IDEyMGRlZywgY3VycmVudGNvbG9yIDM2MGRlZyk7fS5yeG92M3hhOjpiZWZvcmUsLnJ4b3YzeGE6OmFmdGVye2NvbnRlbnQ6bm9uZTt9fVwiLCBcIkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2Upey5yMW81NDRtdnthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjA7YmFja2dyb3VuZC1pbWFnZTpjb25pYy1ncmFkaWVudCh0cmFuc3BhcmVudCAxMjBkZWcsIGN1cnJlbnRjb2xvciAzNjBkZWcpO30ucjFvNTQ0bXY6OmJlZm9yZSwucjFvNTQ0bXY6OmFmdGVye2NvbnRlbnQ6bm9uZTt9fVwiXVxufSk7XG5jb25zdCB1c2VTcGlubmVyU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgaW52ZXJ0ZWQ6IHtcbiAgICBEZTNwenE6IFwiZnI0MDdqMFwiLFxuICAgIHNqNTV6ZDogXCJmMWY3dm9lZFwiXG4gIH0sXG4gIHJ0bFRhaWw6IHtcbiAgICBidHhtY2s6IFwiZjE3OWRlcDNcIixcbiAgICBnYjVqajI6IFwiZmJ6OWlocFwiLFxuICAgIEJyMmtlZTc6IFwiZjF3a2t4bzdcIlxuICB9LFxuICBcImV4dHJhLXRpbnlcIjoge1xuICAgIEJxZW52aWo6IFwiZmQ0NjF5dFwiLFxuICAgIGE5YjY3NzogXCJmanc1Zng3XCIsXG4gICAgcW1wNmZzOiBcImYxdjNwaDNtXCJcbiAgfSxcbiAgdGlueToge1xuICAgIEJxZW52aWo6IFwiZmphbXE2YlwiLFxuICAgIGE5YjY3NzogXCJmNjRmdXEzXCIsXG4gICAgcW1wNmZzOiBcImYxdjNwaDNtXCJcbiAgfSxcbiAgXCJleHRyYS1zbWFsbFwiOiB7XG4gICAgQnFlbnZpajogXCJmcnZnaDU1XCIsXG4gICAgYTliNjc3OiBcImZxNG1jdW5cIixcbiAgICBxbXA2ZnM6IFwiZjF2M3BoM21cIlxuICB9LFxuICBzbWFsbDoge1xuICAgIEJxZW52aWo6IFwiZnhsZGFvOVwiLFxuICAgIGE5YjY3NzogXCJmMXc5ZGNoa1wiLFxuICAgIHFtcDZmczogXCJmMXYzcGgzbVwiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJxZW52aWo6IFwiZjFkMnJxMTBcIixcbiAgICBhOWI2Nzc6IFwiZjFzem9lOTZcIixcbiAgICBxbXA2ZnM6IFwiZmI1MnU5MFwiXG4gIH0sXG4gIGxhcmdlOiB7XG4gICAgQnFlbnZpajogXCJmOGxqbjIzXCIsXG4gICAgYTliNjc3OiBcImZwZHoxZXJcIixcbiAgICBxbXA2ZnM6IFwiZmI1MnU5MFwiXG4gIH0sXG4gIFwiZXh0cmEtbGFyZ2VcIjoge1xuICAgIEJxZW52aWo6IFwiZmJobm9hY1wiLFxuICAgIGE5YjY3NzogXCJmZXFtYzJ1XCIsXG4gICAgcW1wNmZzOiBcImZiNTJ1OTBcIlxuICB9LFxuICBodWdlOiB7XG4gICAgQnFlbnZpajogXCJmMWZ0NDI2NlwiLFxuICAgIGE5YjY3NzogXCJma3NjMGJwXCIsXG4gICAgcW1wNmZzOiBcImZhM3U5aWlcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mcjQwN2owe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlQWxwaGEyKTt9XCIsIFwiLmYxZjd2b2Vke2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQyKTt9XCIsIFwiLmYxNzlkZXAzey13ZWJraXQtbWFzay1pbWFnZTpjb25pYy1ncmFkaWVudCh3aGl0ZSAyNTVkZWcsIHRyYW5zcGFyZW50IDI1NWRlZyk7bWFzay1pbWFnZTpjb25pYy1ncmFkaWVudCh3aGl0ZSAyNTVkZWcsIHRyYW5zcGFyZW50IDI1NWRlZyk7fVwiLCBcIi5mYno5aWhwOjpiZWZvcmUsLmZiejlpaHA6OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6Y29uaWMtZ3JhZGllbnQodHJhbnNwYXJlbnQgMjI1ZGVnLCBjdXJyZW50Y29sb3IgMjI1ZGVnKTt9XCIsIFwiLmZkNDYxeXR7aGVpZ2h0OjE2cHg7fVwiLCBcIi5manc1Zng3e3dpZHRoOjE2cHg7fVwiLCBcIi5mMXYzcGgzbXstLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrKTt9XCIsIFwiLmZqYW1xNmJ7aGVpZ2h0OjIwcHg7fVwiLCBcIi5mNjRmdXEze3dpZHRoOjIwcHg7fVwiLCBcIi5mcnZnaDU1e2hlaWdodDoyNHB4O31cIiwgXCIuZnE0bWN1bnt3aWR0aDoyNHB4O31cIiwgXCIuZnhsZGFvOXtoZWlnaHQ6MjhweDt9XCIsIFwiLmYxdzlkY2hre3dpZHRoOjI4cHg7fVwiLCBcIi5mMWQycnExMHtoZWlnaHQ6MzJweDt9XCIsIFwiLmYxc3pvZTk2e3dpZHRoOjMycHg7fVwiLCBcIi5mYjUydTkwey0tZnVpLVNwaW5uZXItLXN0cm9rZVdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpY2tlcik7fVwiLCBcIi5mOGxqbjIze2hlaWdodDozNnB4O31cIiwgXCIuZnBkejFlcnt3aWR0aDozNnB4O31cIiwgXCIuZmJobm9hY3toZWlnaHQ6NDBweDt9XCIsIFwiLmZlcW1jMnV7d2lkdGg6NDBweDt9XCIsIFwiLmYxZnQ0MjY2e2hlaWdodDo0NHB4O31cIiwgXCIuZmtzYzBicHt3aWR0aDo0NHB4O31cIiwgXCIuZmEzdTlpaXstLWZ1aS1TcGlubmVyLS1zdHJva2VXaWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrZXN0KTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7LmYxd2treG83e2JhY2tncm91bmQtaW1hZ2U6Y29uaWMtZ3JhZGllbnQoY3VycmVudGNvbG9yIDBkZWcsIHRyYW5zcGFyZW50IDI0MGRlZyk7fX1cIiwge1xuICAgIG06IFwic2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKVwiXG4gIH1dXVxufSk7XG5jb25zdCB1c2VMYWJlbFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGludmVydGVkOiB7XG4gICAgc2o1NXpkOiBcImZvbnJndjdcIlxuICB9LFxuICBcImV4dHJhLXRpbnlcIjoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIlxuICB9LFxuICB0aW55OiB7XG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJma2hqNTA4XCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmMWkzaXVtaVwiXG4gIH0sXG4gIFwiZXh0cmEtc21hbGxcIjoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIlxuICB9LFxuICBzbWFsbDoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIlxuICB9LFxuICBtZWRpdW06IHtcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZvZDVpa25cIixcbiAgICBCaHJkN3pwOiBcImZsNDN1ZWZcIixcbiAgICBCZzk2Z3dwOiBcImZhYXo1N2tcIlxuICB9LFxuICBsYXJnZToge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIEJnOTZnd3A6IFwiZmFhejU3a1wiXG4gIH0sXG4gIFwiZXh0cmEtbGFyZ2VcIjoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIEJnOTZnd3A6IFwiZmFhejU3a1wiXG4gIH0sXG4gIGh1Z2U6IHtcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImYxcHAzMHBvXCIsXG4gICAgQmhyZDd6cDogXCJmbDQzdWVmXCIsXG4gICAgQmc5Nmd3cDogXCJmMTA2bXZqdVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZvbnJndjd7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZFN0YXRpY0ludmVydGVkKTt9XCIsIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZmtoajUwOHtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZjFpM2l1bWl7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO31cIiwgXCIuZm9kNWlrbntmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNDAwKTt9XCIsIFwiLmZsNDN1ZWZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFNlbWlib2xkKTt9XCIsIFwiLmZhYXo1N2t7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U0MDApO31cIiwgXCIuZjFwcDMwcG97Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTUwMCk7fVwiLCBcIi5mMTA2bXZqdXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTUwMCk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFNwaW5uZXIgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VTcGlubmVyU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHtcbiAgICBsYWJlbFBvc2l0aW9uLFxuICAgIHNpemUsXG4gICAgYXBwZWFyYW5jZVxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHtcbiAgICBkaXJcbiAgfSA9IHVzZUZsdWVudCgpO1xuICBjb25zdCByb290QmFzZUNsYXNzTmFtZSA9IHVzZVJvb3RCYXNlQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IHJvb3RTdHlsZXMgPSB1c2VSb290U3R5bGVzKCk7XG4gIGNvbnN0IHNwaW5uZXJCYXNlQ2xhc3NOYW1lID0gdXNlU3Bpbm5lckJhc2VDbGFzc05hbWUoKTtcbiAgY29uc3Qgc3Bpbm5lclN0eWxlcyA9IHVzZVNwaW5uZXJTdHlsZXMoKTtcbiAgY29uc3Qgc3Bpbm5lclRhaWxCYXNlQ2xhc3NOYW1lID0gdXNlU3Bpbm5lclRhaWxCYXNlQ2xhc3NOYW1lKCk7XG4gIGNvbnN0IGxhYmVsU3R5bGVzID0gdXNlTGFiZWxTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoc3Bpbm5lckNsYXNzTmFtZXMucm9vdCwgcm9vdEJhc2VDbGFzc05hbWUsIChsYWJlbFBvc2l0aW9uID09PSAnYWJvdmUnIHx8IGxhYmVsUG9zaXRpb24gPT09ICdiZWxvdycpICYmIHJvb3RTdHlsZXMudmVydGljYWwsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLnNwaW5uZXIpIHtcbiAgICBzdGF0ZS5zcGlubmVyLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhzcGlubmVyQ2xhc3NOYW1lcy5zcGlubmVyLCBzcGlubmVyQmFzZUNsYXNzTmFtZSwgc3Bpbm5lclN0eWxlc1tzaXplXSwgYXBwZWFyYW5jZSA9PT0gJ2ludmVydGVkJyAmJiBzcGlubmVyU3R5bGVzLmludmVydGVkLCBzdGF0ZS5zcGlubmVyLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKHN0YXRlLnNwaW5uZXJUYWlsKSB7XG4gICAgc3RhdGUuc3Bpbm5lclRhaWwuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHNwaW5uZXJDbGFzc05hbWVzLnNwaW5uZXJUYWlsLCBzcGlubmVyVGFpbEJhc2VDbGFzc05hbWUsIGRpciA9PT0gJ3J0bCcgJiYgc3Bpbm5lclN0eWxlcy5ydGxUYWlsLCBzdGF0ZS5zcGlubmVyVGFpbC5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5sYWJlbCkge1xuICAgIHN0YXRlLmxhYmVsLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhzcGlubmVyQ2xhc3NOYW1lcy5sYWJlbCwgbGFiZWxTdHlsZXNbc2l6ZV0sIGFwcGVhcmFuY2UgPT09ICdpbnZlcnRlZCcgJiYgbGFiZWxTdHlsZXMuaW52ZXJ0ZWQsIHN0YXRlLmxhYmVsLmNsYXNzTmFtZSk7XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVNwaW5uZXJTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNwaW5uZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVNwaW5uZXInO1xuaW1wb3J0IHsgcmVuZGVyU3Bpbm5lcl91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyU3Bpbm5lcic7XG5pbXBvcnQgeyB1c2VTcGlubmVyU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VTcGlubmVyU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogQ29udmVyZ2VkIFNwaW5uZXIgY29tcG9uZW50IGZvciB0aGUgZmx1ZW50dWkgcmVwb1xuICovIGV4cG9ydCBjb25zdCBTcGlubmVyID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlU3Bpbm5lcl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VTcGlubmVyU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZVNwaW5uZXJTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclNwaW5uZXJfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5TcGlubmVyLmRpc3BsYXlOYW1lID0gJ1NwaW5uZXInO1xuIiwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuY29uc3QgdGFiTGlzdENvbnRleHREZWZhdWx0VmFsdWUgPSB7XG4gICAgYXBwZWFyYW5jZTogJ3RyYW5zcGFyZW50JyxcbiAgICByZXNlcnZlU2VsZWN0ZWRUYWJTcGFjZTogdHJ1ZSxcbiAgICBzZWxlY3RUYWJPbkZvY3VzOiBmYWxzZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgc2VsZWN0ZWRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIG9uUmVnaXN0ZXI6ICgpPT57XG4gICAgLyogbm9vcCAqLyB9LFxuICAgIG9uVW5yZWdpc3RlcjogKCk9PntcbiAgICAvKiBub29wICovIH0sXG4gICAgb25TZWxlY3Q6ICgpPT57XG4gICAgLyogbm9vcCAqLyB9LFxuICAgIGdldFJlZ2lzdGVyZWRUYWJzOiAoKT0+e1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVnaXN0ZXJlZFRhYnM6IHt9XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgICB2ZXJ0aWNhbDogZmFsc2Vcbn07XG5leHBvcnQgY29uc3QgVGFiTGlzdENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgVGFiTGlzdFByb3ZpZGVyID0gVGFiTGlzdENvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUgPSAoc2VsZWN0b3IpPT51c2VDb250ZXh0U2VsZWN0b3IoVGFiTGlzdENvbnRleHQsIChjdHggPSB0YWJMaXN0Q29udGV4dERlZmF1bHRWYWx1ZSk9PnNlbGVjdG9yKGN0eCkpO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBtZXJnZUNhbGxiYWNrcywgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVyZ2VkUmVmcywgc2xvdCwgb21pdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUgfSBmcm9tICcuLi9UYWJMaXN0L1RhYkxpc3RDb250ZXh0Jztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGFiLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVRhYlN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyVGFiX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUYWJcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUYWJcbiAqLyBleHBvcnQgY29uc3QgdXNlVGFiX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBjb250ZW50LCBkaXNhYmxlZDogdGFiRGlzYWJsZWQgPSBmYWxzZSwgaWNvbiwgb25DbGljaywgb25Gb2N1cywgdmFsdWUgfSA9IHByb3BzO1xuICAgIGNvbnN0IGFwcGVhcmFuY2UgPSB1c2VUYWJMaXN0Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LmFwcGVhcmFuY2UpO1xuICAgIGNvbnN0IHJlc2VydmVTZWxlY3RlZFRhYlNwYWNlID0gdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5yZXNlcnZlU2VsZWN0ZWRUYWJTcGFjZSk7XG4gICAgY29uc3Qgc2VsZWN0VGFiT25Gb2N1cyA9IHVzZVRhYkxpc3RDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHguc2VsZWN0VGFiT25Gb2N1cyk7XG4gICAgY29uc3QgbGlzdERpc2FibGVkID0gdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5kaXNhYmxlZCk7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB1c2VUYWJMaXN0Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LnNlbGVjdGVkVmFsdWUgPT09IHZhbHVlKTtcbiAgICBjb25zdCBvblJlZ2lzdGVyID0gdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5vblJlZ2lzdGVyKTtcbiAgICBjb25zdCBvblVucmVnaXN0ZXIgPSB1c2VUYWJMaXN0Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4Lm9uVW5yZWdpc3Rlcik7XG4gICAgY29uc3Qgb25TZWxlY3QgPSB1c2VUYWJMaXN0Q29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4Lm9uU2VsZWN0KTtcbiAgICBjb25zdCBzaXplID0gdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5zaXplKTtcbiAgICBjb25zdCB2ZXJ0aWNhbCA9IHVzZVRhYkxpc3RDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT4hIWN0eC52ZXJ0aWNhbCk7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBsaXN0RGlzYWJsZWQgfHwgdGFiRGlzYWJsZWQ7XG4gICAgY29uc3QgaW5uZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb25TZWxlY3RDYWxsYmFjayA9IChldmVudCk9Pm9uU2VsZWN0KGV2ZW50LCB7XG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICBjb25zdCBvblRhYkNsaWNrID0gdXNlRXZlbnRDYWxsYmFjayhtZXJnZUNhbGxiYWNrcyhvbkNsaWNrLCBvblNlbGVjdENhbGxiYWNrKSk7XG4gICAgY29uc3Qgb25UYWJGb2N1cyA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3Mob25Gb2N1cywgb25TZWxlY3RDYWxsYmFjaykpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBvblJlZ2lzdGVyKHtcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBvblVucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHJlZjogaW5uZXJSZWZcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgb25SZWdpc3RlcixcbiAgICAgICAgb25VbnJlZ2lzdGVyLFxuICAgICAgICBpbm5lclJlZixcbiAgICAgICAgdmFsdWVcbiAgICBdKTtcbiAgICBjb25zdCBpY29uU2xvdCA9IHNsb3Qub3B0aW9uYWwoaWNvbiwge1xuICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgfSk7XG4gICAgY29uc3QgY29udGVudFNsb3QgPSBzbG90LmFsd2F5cyhjb250ZW50LCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICBjb25zdCBjb250ZW50UmVzZXJ2ZWRTcGFjZSA9IGNvbnRlbnQgJiYgdHlwZW9mIGNvbnRlbnQgPT09ICdvYmplY3QnID8gb21pdChjb250ZW50LCBbXG4gICAgICAgICdyZWYnXG4gICAgXSkgOiBjb250ZW50O1xuICAgIGNvbnN0IGljb25Pbmx5ID0gQm9vbGVhbigoaWNvblNsb3QgPT09IG51bGwgfHwgaWNvblNsb3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGljb25TbG90LmNoaWxkcmVuKSAmJiAhY29udGVudFNsb3QuY2hpbGRyZW4pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgaWNvbjogJ3NwYW4nLFxuICAgICAgICAgICAgY29udGVudDogJ3NwYW4nLFxuICAgICAgICAgICAgY29udGVudFJlc2VydmVkU3BhY2U6ICdzcGFuJ1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2J1dHRvbicsIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxCdXR0b25FbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIGlubmVyUmVmKSxcbiAgICAgICAgICAgIHJvbGU6ICd0YWInLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAvLyBhcmlhLXNlbGVjdGVkIHVuZGVmaW5lZCBpbmRpY2F0ZXMgaXQgaXMgbm90IHNlbGVjdGFibGVcbiAgICAgICAgICAgIC8vIGFjY29yZGluZyB0byBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtMS4xLyNhcmlhLXNlbGVjdGVkXG4gICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogYCR7c2VsZWN0ZWR9YCxcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBvbkNsaWNrOiBvblRhYkNsaWNrLFxuICAgICAgICAgICAgb25Gb2N1czogc2VsZWN0VGFiT25Gb2N1cyA/IG9uVGFiRm9jdXMgOiBvbkZvY3VzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2J1dHRvbidcbiAgICAgICAgfSksXG4gICAgICAgIGljb246IGljb25TbG90LFxuICAgICAgICBpY29uT25seSxcbiAgICAgICAgY29udGVudDogY29udGVudFNsb3QsXG4gICAgICAgIGNvbnRlbnRSZXNlcnZlZFNwYWNlOiBzbG90Lm9wdGlvbmFsKGNvbnRlbnRSZXNlcnZlZFNwYWNlLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6ICFzZWxlY3RlZCAmJiAhaWNvbk9ubHkgJiYgcmVzZXJ2ZVNlbGVjdGVkVGFiU3BhY2UsXG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgICAgIH0pLFxuICAgICAgICBhcHBlYXJhbmNlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICB2ZXJ0aWNhbFxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRhYlxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUYWJfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0YXRlLmljb24gJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmljb24sIHt9KSxcbiAgICAgICAgICAgICFzdGF0ZS5pY29uT25seSAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuY29udGVudCwge30pLFxuICAgICAgICAgICAgc3RhdGUuY29udGVudFJlc2VydmVkU3BhY2UgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmNvbnRlbnRSZXNlcnZlZFNwYWNlLCB7fSlcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB1c2VUYWJMaXN0Q29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uL1RhYkxpc3QvVGFiTGlzdENvbnRleHQnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IHRhYkluZGljYXRvckNzc1ZhcnNfdW5zdGFibGUgPSB7XG4gIG9mZnNldFZhcjogJy0tZnVpLVRhYl9faW5kaWNhdG9yLS1vZmZzZXQnLFxuICBzY2FsZVZhcjogJy0tZnVpLVRhYl9faW5kaWNhdG9yLS1zY2FsZSdcbn07XG5jb25zdCB1c2VBY3RpdmVJbmRpY2F0b3JTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFnbDgxdGdcIlxuICB9LFxuICBhbmltYXRlZDoge1xuICAgIEJhMnBwaTM6IFwiZmh3cHk3aVwiLFxuICAgIEYyZm9sMTogXCJmNnp6MjBqXCIsXG4gICAgQjFkeWZsOTogXCJmMWFpNHNjMVwiLFxuICAgIEIwdm15NzI6IFwiZjlxeGxxNVwiLFxuICAgIHU5YmltdzogXCJmMWFxbDM3NlwiXG4gIH0sXG4gIGhvcml6b250YWw6IHtcbiAgICBzanYzYjI6IFtcImZ1ZzRhajhcIiwgXCJmMWk1eHpnN1wiXSxcbiAgICBiMWtjbzU6IFwiZjFxN3VqaFwiXG4gIH0sXG4gIHZlcnRpY2FsOiB7XG4gICAgc2p2M2IyOiBcImYxaHFib3lrXCIsXG4gICAgYjFrY281OiBcImYxZHh1cGE2XCJcbiAgfVxufSwge1xuICBkOiBbW1wiLmYxZ2w4MXRne292ZXJmbG93OnZpc2libGU7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZod3B5N2k6OmFmdGVye3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO31cIiwgXCIuZjZ6ejIwajo6YWZ0ZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS1kdXJhdGlvblNsb3cpO31cIiwgXCIuZjFhaTRzYzE6OmFmdGVye3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWN1cnZlRGVjZWxlcmF0ZU1heCk7fVwiLCBcIi5mdWc0YWo4OjphZnRlcnt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQ7fVwiLCBcIi5mMWk1eHpnNzo6YWZ0ZXJ7dHJhbnNmb3JtLW9yaWdpbjpyaWdodDt9XCIsIFwiLmYxcTd1amg6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLWZ1aS1UYWJfX2luZGljYXRvci0tb2Zmc2V0KSkgc2NhbGVYKHZhcigtLWZ1aS1UYWJfX2luZGljYXRvci0tc2NhbGUpKTt9XCIsIFwiLmYxaHFib3lrOjphZnRlcnt0cmFuc2Zvcm0tb3JpZ2luOnRvcDt9XCIsIFwiLmYxZHh1cGE2OjphZnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSh2YXIoLS1mdWktVGFiX19pbmRpY2F0b3ItLW9mZnNldCkpIHNjYWxlWSh2YXIoLS1mdWktVGFiX19pbmRpY2F0b3ItLXNjYWxlKSk7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsuZjlxeGxxNTo6YWZ0ZXJ7dHJhbnNpdGlvbi1wcm9wZXJ0eTpub25lO319XCIsIHtcbiAgICBtOiBcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCJcbiAgfV0sIFtcIkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsuZjFhcWwzNzY6OmFmdGVye3RyYW5zaXRpb24tZHVyYXRpb246MC4wMW1zO319XCIsIHtcbiAgICBtOiBcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCJcbiAgfV1dXG59KTtcbmNvbnN0IGNhbGN1bGF0ZVRhYlJlY3QgPSBlbGVtZW50ID0+IHtcbiAgaWYgKGVsZW1lbnQpIHtcbiAgICB2YXIgX2VsZW1lbnRfcGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnRSZWN0ID0gKChfZWxlbWVudF9wYXJlbnRFbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50KSA9PT0gbnVsbCB8fCBfZWxlbWVudF9wYXJlbnRFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZWxlbWVudF9wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSB8fCB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICBjb25zdCB0YWJSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4ge1xuICAgICAgeDogdGFiUmVjdC54IC0gcGFyZW50UmVjdC54LFxuICAgICAgeTogdGFiUmVjdC55IC0gcGFyZW50UmVjdC55LFxuICAgICAgd2lkdGg6IHRhYlJlY3Qud2lkdGgsXG4gICAgICBoZWlnaHQ6IHRhYlJlY3QuaGVpZ2h0XG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbmNvbnN0IGdldFJlZ2lzdGVyZWRUYWJSZWN0ID0gKHJlZ2lzdGVyZWRUYWJzLCB2YWx1ZSkgPT4ge1xuICB2YXIgX3JlZ2lzdGVyZWRUYWJzX0pTT05fc3RyaW5naWZ5O1xuICBjb25zdCBlbGVtZW50ID0gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCA/IChfcmVnaXN0ZXJlZFRhYnNfSlNPTl9zdHJpbmdpZnkgPSByZWdpc3RlcmVkVGFic1tKU09OLnN0cmluZ2lmeSh2YWx1ZSldKSA9PT0gbnVsbCB8fCBfcmVnaXN0ZXJlZFRhYnNfSlNPTl9zdHJpbmdpZnkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yZWdpc3RlcmVkVGFic19KU09OX3N0cmluZ2lmeS5yZWYuY3VycmVudCA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGVsZW1lbnQgPyBjYWxjdWxhdGVUYWJSZWN0KGVsZW1lbnQpIDogdW5kZWZpbmVkO1xufTtcbi8qKlxuICogQWRkcyBhZGRpdGlvbmFsIHN0eWxpbmcgdG8gdGhlIGFjdGl2ZSB0YWIgc2VsZWN0aW9uIGluZGljYXRvciB0byBjcmVhdGUgYSBzbGlkaW5nIGFuaW1hdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYkFuaW1hdGVkSW5kaWNhdG9yU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICBjb25zdCB7XG4gICAgZGlzYWJsZWQsXG4gICAgc2VsZWN0ZWQsXG4gICAgdmVydGljYWxcbiAgfSA9IHN0YXRlO1xuICBjb25zdCBhY3RpdmVJbmRpY2F0b3JTdHlsZXMgPSB1c2VBY3RpdmVJbmRpY2F0b3JTdHlsZXMoKTtcbiAgY29uc3QgW2xhc3RBbmltYXRlZEZyb20sIHNldExhc3RBbmltYXRlZEZyb21dID0gUmVhY3QudXNlU3RhdGUoKTtcbiAgY29uc3QgW2FuaW1hdGlvblZhbHVlcywgc2V0QW5pbWF0aW9uVmFsdWVzXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBvZmZzZXQ6IDAsXG4gICAgc2NhbGU6IDFcbiAgfSk7XG4gIGNvbnN0IGdldFJlZ2lzdGVyZWRUYWJzID0gdXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUoY3R4ID0+IGN0eC5nZXRSZWdpc3RlcmVkVGFicyk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhc3RBbmltYXRlZEZyb20pIHtcbiAgICAgIHNldEFuaW1hdGlvblZhbHVlcyh7XG4gICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgc2NhbGU6IDFcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2xhc3RBbmltYXRlZEZyb21dKTtcbiAgaWYgKHNlbGVjdGVkKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJldmlvdXNTZWxlY3RlZFZhbHVlLFxuICAgICAgc2VsZWN0ZWRWYWx1ZSxcbiAgICAgIHJlZ2lzdGVyZWRUYWJzXG4gICAgfSA9IGdldFJlZ2lzdGVyZWRUYWJzKCk7XG4gICAgaWYgKHByZXZpb3VzU2VsZWN0ZWRWYWx1ZSAmJiBsYXN0QW5pbWF0ZWRGcm9tICE9PSBwcmV2aW91c1NlbGVjdGVkVmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRUYWJSZWN0ID0gZ2V0UmVnaXN0ZXJlZFRhYlJlY3QocmVnaXN0ZXJlZFRhYnMsIHByZXZpb3VzU2VsZWN0ZWRWYWx1ZSk7XG4gICAgICBjb25zdCBzZWxlY3RlZFRhYlJlY3QgPSBnZXRSZWdpc3RlcmVkVGFiUmVjdChyZWdpc3RlcmVkVGFicywgc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICBpZiAoc2VsZWN0ZWRUYWJSZWN0ICYmIHByZXZpb3VzU2VsZWN0ZWRUYWJSZWN0KSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHZlcnRpY2FsID8gcHJldmlvdXNTZWxlY3RlZFRhYlJlY3QueSAtIHNlbGVjdGVkVGFiUmVjdC55IDogcHJldmlvdXNTZWxlY3RlZFRhYlJlY3QueCAtIHNlbGVjdGVkVGFiUmVjdC54O1xuICAgICAgICBjb25zdCBzY2FsZSA9IHZlcnRpY2FsID8gcHJldmlvdXNTZWxlY3RlZFRhYlJlY3QuaGVpZ2h0IC8gc2VsZWN0ZWRUYWJSZWN0LmhlaWdodCA6IHByZXZpb3VzU2VsZWN0ZWRUYWJSZWN0LndpZHRoIC8gc2VsZWN0ZWRUYWJSZWN0LndpZHRoO1xuICAgICAgICBzZXRBbmltYXRpb25WYWx1ZXMoe1xuICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICBzY2FsZVxuICAgICAgICB9KTtcbiAgICAgICAgc2V0TGFzdEFuaW1hdGVkRnJvbShwcmV2aW91c1NlbGVjdGVkVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChsYXN0QW5pbWF0ZWRGcm9tKSB7XG4gICAgLy8gbmVlZCB0byBjbGVhciB0aGUgbGFzdCBhbmltYXRlZCBmcm9tIHNvIHRoYXQgaWYgdGhpcyB0YWIgaXMgc2VsZWN0ZWQgYWdhaW5cbiAgICAvLyBmcm9tIHRoZSBzYW1lIHByZXZpb3VzIHRhYiBhcyBsYXN0IHRpbWUsIHRoYXQgYW5pbWF0aW9uIHN0aWxsIGhhcHBlbnMuXG4gICAgc2V0TGFzdEFuaW1hdGVkRnJvbSh1bmRlZmluZWQpO1xuICB9XG4gIC8vIGRvIG5vdCBhcHBseSBhbnkgYW5pbWF0aW9uIGlmIHRoZSB0YWIgaXMgZGlzYWJsZWRcbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIC8vIHRoZSBhbmltYXRpb24gc2hvdWxkIG9ubHkgaGFwcGVuIGFzIHRoZSBzZWxlY3Rpb24gaW5kaWNhdG9yIHJldHVybnMgdG8gaXRzXG4gIC8vIG9yaWdpbmFsIHBvc2l0aW9uIGFuZCBub3Qgd2hlbiBzZXQgYXQgdGhlIHByZXZpb3VzIHRhYnMgcG9zaXRpb24uXG4gIGNvbnN0IGFuaW1hdGluZyA9IGFuaW1hdGlvblZhbHVlcy5vZmZzZXQgPT09IDAgJiYgYW5pbWF0aW9uVmFsdWVzLnNjYWxlID09PSAxO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhzdGF0ZS5yb290LmNsYXNzTmFtZSwgc2VsZWN0ZWQgJiYgYWN0aXZlSW5kaWNhdG9yU3R5bGVzLmJhc2UsIHNlbGVjdGVkICYmIGFuaW1hdGluZyAmJiBhY3RpdmVJbmRpY2F0b3JTdHlsZXMuYW5pbWF0ZWQsIHNlbGVjdGVkICYmICh2ZXJ0aWNhbCA/IGFjdGl2ZUluZGljYXRvclN0eWxlcy52ZXJ0aWNhbCA6IGFjdGl2ZUluZGljYXRvclN0eWxlcy5ob3Jpem9udGFsKSk7XG4gIGNvbnN0IHJvb3RDc3NWYXJzID0ge1xuICAgIFt0YWJJbmRpY2F0b3JDc3NWYXJzX3Vuc3RhYmxlLm9mZnNldFZhcl06IGAke2FuaW1hdGlvblZhbHVlcy5vZmZzZXR9cHhgLFxuICAgIFt0YWJJbmRpY2F0b3JDc3NWYXJzX3Vuc3RhYmxlLnNjYWxlVmFyXTogYCR7YW5pbWF0aW9uVmFsdWVzLnNjYWxlfWBcbiAgfTtcbiAgc3RhdGUucm9vdC5zdHlsZSA9IHtcbiAgICAuLi5yb290Q3NzVmFycyxcbiAgICAuLi5zdGF0ZS5yb290LnN0eWxlXG4gIH07XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUYWJBbmltYXRlZEluZGljYXRvci5zdHlsZXMuanMubWFwIiwiaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUZvY3VzSW5kaWNhdG9yU3R5bGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyB0b2tlbnMsIHR5cG9ncmFwaHlTdHlsZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgdXNlVGFiQW5pbWF0ZWRJbmRpY2F0b3JTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYkFuaW1hdGVkSW5kaWNhdG9yLnN0eWxlcyc7XG5leHBvcnQgY29uc3QgdGFiQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UYWInLFxuICBpY29uOiAnZnVpLVRhYl9faWNvbicsXG4gIGNvbnRlbnQ6ICdmdWktVGFiX19jb250ZW50J1xufTtcbmNvbnN0IHJlc2VydmVkU3BhY2VDbGFzc05hbWVzID0ge1xuICBjb250ZW50OiAnZnVpLVRhYl9fY29udGVudC0tcmVzZXJ2ZWQtc3BhY2UnXG59O1xuLy8gVGhlc2Ugc2hvdWxkIG1hdGNoIHRoZSBjb25zdGFudHMgZGVmaW5lZCBpbiBAZmx1ZW50dWkvcmVhY3QtaWNvbnNcbi8vIFRoaXMgcGFja2FnZSBhdm9pZHMgdGFraW5nIGEgZGVwZW5kZW5jeSBvbiB0aGUgaWNvbnMgcGFja2FnZSBmb3Igb25seSB0aGUgY29uc3RhbnRzLlxuY29uc3QgaWNvbkNsYXNzTmFtZXMgPSB7XG4gIGZpbGxlZDogJ2Z1aS1JY29uLWZpbGxlZCcsXG4gIHJlZ3VsYXI6ICdmdWktSWNvbi1yZWd1bGFyJ1xufTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgcm9vdCBzbG90XG4gKi8gLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCB1c2VSb290U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiLFxuICAgIEJnZmc1ZGE6IDAsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiAwLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZjNiaGdxaFwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZ0ODVucDVcIixcbiAgICBCY2VlaTljOiBcImYxazZmZHVoXCIsXG4gICAgbWM5bDV4OiBcImYxM3FoOTRzXCIsXG4gICAgQm5uc3M2czogXCJmaTY0enBnXCIsXG4gICAgQnhvdHdjcjogXCJmMXUwN3lhaVwiLFxuICAgIEJ1ZGwxZHE6IFwiZnJuMmhteVwiLFxuICAgIHdrY2NkYzogXCJmMW9sc2V2eVwiLFxuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIixcbiAgICBvZWF1ZWg6IFwiZjFzNmZjbmZcIixcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBCNjh0YzgyOiAwLFxuICAgIEJteGJ5ZzU6IDAsXG4gICAgQnBnNTRjZTogXCJmMWEzcDF2cFwiLFxuICAgIEI5YmZ4eDk6IFwiZjFjeHBlazhcIlxuICB9LFxuICBob3Jpem9udGFsOiB7XG4gICAgQnJmMXA4MDogXCJmNGQ5ajIzXCJcbiAgfSxcbiAgdmVydGljYWw6IHtcbiAgICBCcmYxcDgwOiBcImYxczlrdTZiXCJcbiAgfSxcbiAgc21hbGxIb3Jpem9udGFsOiB7XG4gICAgaThra3ZsOiBcImYxNG1qNTRjXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxd21vcGk0XCJcbiAgfSxcbiAgc21hbGxWZXJ0aWNhbDoge1xuICAgIGk4a2t2bDogXCJmMTRtajU0Y1wiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmMTJvcjYzcVwiXG4gIH0sXG4gIG1lZGl1bUhvcml6b250YWw6IHtcbiAgICBpOGtrdmw6IFwiZjFyamlpNTJcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjF3MDhmMnBcIlxuICB9LFxuICBtZWRpdW1WZXJ0aWNhbDoge1xuICAgIGk4a2t2bDogXCJmMXJqaWk1MlwiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmeW14czI1XCJcbiAgfSxcbiAgbGFyZ2VIb3Jpem9udGFsOiB7XG4gICAgaThra3ZsOiBcImYxcmppaTUyXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxc3NmdnViXCJcbiAgfSxcbiAgbGFyZ2VWZXJ0aWNhbDoge1xuICAgIGk4a2t2bDogXCJmMXJqaWk1MlwiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmd2tkMXJxXCJcbiAgfSxcbiAgdHJhbnNwYXJlbnQ6IHtcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBKd2VmOHk6IFwiZmp4dXR3YlwiLFxuICAgIGVjcjJzMjogXCJmb3BoaGFrXCIsXG4gICAgQnB0eGMzeDogXCJmbW1qb3p4XCIsXG4gICAgQjA3Nnh2azogXCJmMW1mcWY0MVwiLFxuICAgIHE5cjl3NTogXCJmMTBhaWlkNFwiLFxuICAgIGNsNGFoYTogXCJmcGt6ZTVnXCIsXG4gICAgQms0NTJ6YzogXCJmMTQ5d2MzeFwiLFxuICAgIGE0aGtjdzogXCJmamlvb3U3XCJcbiAgfSxcbiAgc3VidGxlOiB7XG4gICAgRGUzcHpxOiBcImZob3ZxOXZcIixcbiAgICBKd2VmOHk6IFwiZjF0OTRibjZcIixcbiAgICBlY3IyczI6IFwiZjF3Zm41a2RcIixcbiAgICBCcHR4YzN4OiBcImZtbWpvenhcIixcbiAgICBCMDc2eHZrOiBcImYxbWZxZjQxXCIsXG4gICAgcTlyOXc1OiBcImYxMGFpaWQ0XCIsXG4gICAgY2w0YWhhOiBcImZwa3plNWdcIixcbiAgICBCazQ1MnpjOiBcImYxNDl3YzN4XCIsXG4gICAgYTRoa2N3OiBcImZqaW9vdTdcIlxuICB9LFxuICBkaXNhYmxlZDoge1xuICAgIERlM3B6cTogXCJmMWMyMWR3aFwiLFxuICAgIEJwdHhjM3g6IFwiZmF0bzdyNlwiLFxuICAgIGNsNGFoYTogXCJmYW8xYm51XCIsXG4gICAgQmNlZWk5YzogXCJmZHJ6dXFyXCJcbiAgfSxcbiAgc2VsZWN0ZWQ6IHtcbiAgICBCcHR4YzN4OiBcImYxY2FkejV6XCIsXG4gICAgQjA3Nnh2azogXCJmMWNrMTdsXCIsXG4gICAgcTlyOXc1OiBcImY0MmFrMGdcIixcbiAgICBjbDRhaGE6IFwiZmZwbGhkclwiLFxuICAgIEJrNDUyemM6IFwiZmZ0aDYwMVwiLFxuICAgIGE0aGtjdzogXCJmaGtseXU1XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjEyMm41OXthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBbXCIuZjNiaGdxaHtib3JkZXI6bm9uZTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWs2ZmR1aHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLmYxM3FoOTRze2Rpc3BsYXk6Z3JpZDt9XCIsIFwiLmZpNjR6cGd7ZmxleC1zaHJpbms6MDt9XCIsIFwiLmYxdTA3eWFpe2dyaWQtYXV0by1mbG93OmNvbHVtbjt9XCIsIFwiLmZybjJobXl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmF1dG87fVwiLCBcIi5mMW9sc2V2eXtncmlkLXRlbXBsYXRlLXJvd3M6YXV0bzt9XCIsIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZjFpM2l1bWl7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO31cIiwgXCIuZjFzNmZjbmZ7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBbXCIuZjFhM3AxdnB7b3ZlcmZsb3c6aGlkZGVuO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWN4cGVrOHt0ZXh0LXRyYW5zZm9ybTpub25lO31cIiwgXCIuZjRkOWoyM3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO31cIiwgXCIuZjFzOWt1NmJ7anVzdGlmeS1jb250ZW50OnN0YXJ0O31cIiwgXCIuZjE0bWo1NGN7Y29sdW1uLWdhcDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYUyk7fVwiLCBbXCIuZjF3bW9waTR7cGFkZGluZzp2YXIoLS1zcGFjaW5nVmVydGljYWxTTnVkZ2UpIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxMm9yNjNxe3BhZGRpbmc6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsWFhTKSB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFNOdWRnZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxcmppaTUye2NvbHVtbi1nYXA6dmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpO31cIiwgW1wiLmYxdzA4ZjJwe3BhZGRpbmc6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsTSkgdmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZnlteHMyNXtwYWRkaW5nOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFNOdWRnZSkgdmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFzc2Z2dWJ7cGFkZGluZzp2YXIoLS1zcGFjaW5nVmVydGljYWxMKSB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE1OdWRnZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5md2tkMXJxe3BhZGRpbmc6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsUykgdmFyKC0tc3BhY2luZ0hvcml6b250YWxNTnVkZ2UpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWMyMWR3aHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmZtbWpvenggLmZ1aS1UYWJfX2ljb257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDIpO31cIiwgXCIuZnBremU1ZyAuZnVpLVRhYl9fY29udGVudHtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMik7fVwiLCBcIi5maG92cTl2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kKTt9XCIsIFwiLmZhdG83cjYgLmZ1aS1UYWJfX2ljb257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZhbzFibnUgLmZ1aS1UYWJfX2NvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZkcnp1cXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO31cIiwgXCIuZjFjYWR6NXogLmZ1aS1UYWJfX2ljb257Y29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDEpO31cIiwgXCIuZmZwbGhkciAuZnVpLVRhYl9fY29udGVudHtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiXSxcbiAgaDogW1wiLmZqeHV0d2I6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmYxbWZxZjQxOmhvdmVyIC5mdWktVGFiX19pY29ue2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQySG92ZXIpO31cIiwgXCIuZjE0OXdjM3g6aG92ZXIgLmZ1aS1UYWJfX2NvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJIb3Zlcik7fVwiLCBcIi5mMXQ5NGJuNjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmYxY2sxN2w6aG92ZXIgLmZ1aS1UYWJfX2ljb257Y29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFIb3Zlcik7fVwiLCBcIi5mZnRoNjAxOmhvdmVyIC5mdWktVGFiX19jb250ZW50e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIl0sXG4gIGE6IFtcIi5mb3BoaGFrOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiLCBcIi5mMTBhaWlkNDphY3RpdmUgLmZ1aS1UYWJfX2ljb257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDJQcmVzc2VkKTt9XCIsIFwiLmZqaW9vdTc6YWN0aXZlIC5mdWktVGFiX19jb250ZW50e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyUHJlc3NlZCk7fVwiLCBcIi5mMXdmbjVrZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRQcmVzc2VkKTt9XCIsIFwiLmY0MmFrMGc6YWN0aXZlIC5mdWktVGFiX19pY29ue2NvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxUHJlc3NlZCk7fVwiLCBcIi5maGtseXU1OmFjdGl2ZSAuZnVpLVRhYl9fY29udGVudHtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVByZXNzZWQpO31cIl1cbn0pO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi8gLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEZvY3VzIHN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbmNvbnN0IHVzZUZvY3VzU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIEI4cTVzMXc6IFwiZjhoa2kzeFwiLFxuICAgIEJjaTVvNWc6IFtcImYxZDI0NDhtXCIsIFwiZmZoNjd3aVwiXSxcbiAgICBuOHF3MTA6IFwiZjFiamlhMm9cIixcbiAgICBCZHJnd21wOiBbXCJmZmg2N3dpXCIsIFwiZjFkMjQ0OG1cIl0sXG4gICAgQm40dm9xOTogXCJmMXA3aGd4d1wiLFxuICAgIEJmcHE3enA6IFwiZjF3YXk1YmJcIixcbiAgICBnOWs2enQ6IFwiZjl6bmh4cFwiLFxuICAgIGo2ZXcyazogW1wiZnFhMzE4aFwiLCBcImZxYTMxOGhcIl0sXG4gICAgQmh4cTE3YTogXCJmMXZqcG5nMlwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmY4aGtpM3hbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxZDI0NDhtW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmZmaDY3d2lbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMWJqaWEyb1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFwN2hneHdbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17b3V0bGluZS13aWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrKTt9XCIsIFwiLmYxd2F5NWJiW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde291dGxpbmUtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mOXpuaHhwW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde291dGxpbmUtc3R5bGU6c29saWQ7fVwiLCBcIi5mcWEzMThoW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JveC1zaGFkb3c6dmFyKC0tc2hhZG93NCksMCAwIDAgdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwgXCIuZjF2anBuZzJbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17ei1pbmRleDoxO31cIl1cbn0pO1xuLyoqIEluZGljYXRvciBzdHlsZXMgZm9yIHdoZW4gcGVuZGluZyBzZWxlY3Rpb24gKi9cbmNvbnN0IHVzZVBlbmRpbmdJbmRpY2F0b3JTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgYXo3bDJlOiBcImZodzE3OW5cIixcbiAgICB2cW9mcjogMCxcbiAgICBCdjRuM3ZpOiAwLFxuICAgIEJncWI5aHE6IDAsXG4gICAgQjB1eGJrODogMCxcbiAgICBCZjNqanU2OiBcImZnOWo1bjRcIixcbiAgICBhbWc1bTY6IFwiZjFrbWhyNGNcIixcbiAgICB6a2ZxZm06IFwiZmwxeWRkZVwiLFxuICAgIEJreWRvemI6IFwiZjF5N21heHpcIixcbiAgICBCa2EyYXpvOiAwLFxuICAgIHZ6cThsMDogMCxcbiAgICBjc21nYmQ6IDAsXG4gICAgQnI0b3ZrZzogMCxcbiAgICBhZWxyaWY6IFwiZmNleXZyNFwiLFxuICAgIHkzNmMxODogXCJmMTZjeHUwXCIsXG4gICAgQjFjdHlteTogXCJmMW53Z2FjZlwiLFxuICAgIEJndnJydjA6IFwiZjE1b3ZvbmtcIixcbiAgICBkZHI2cDU6IFwiZnZqZTQ2bFwiXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgYXo3bDJlOiBcImYxdXQyMGZ3XCIsXG4gICAgQmt5ZG96YjogXCJmaHJ6Y2ZuXCJcbiAgfSxcbiAgc21hbGxIb3Jpem9udGFsOiB7XG4gICAgbGF3cDR5OiBcImZjaGNhN3BcIixcbiAgICBCYXoyNWplOiBcImYxcjUzYjVlXCIsXG4gICAgRmJka2x5OiBbXCJmMXM2cnh6NVwiLCBcImZvMzV2OHNcIl0sXG4gICAgbWR3eXFjOiBbXCJmbzM1djhzXCIsIFwiZjFzNnJ4ejVcIl1cbiAgfSxcbiAgc21hbGxWZXJ0aWNhbDoge1xuICAgIGxhd3A0eTogXCJmemU0enVkXCIsXG4gICAgRmJka2x5OiBbXCJmMWZ6cjF4NlwiLCBcImYxZjM1MWlkXCJdLFxuICAgIEJjaXVzdHE6IFwiZmRwMzJwOFwiLFxuICAgIENjcThxcDogXCJmMWFpajNxXCJcbiAgfSxcbiAgbWVkaXVtSG9yaXpvbnRhbDoge1xuICAgIGxhd3A0eTogXCJmY2hjYTdwXCIsXG4gICAgQmF6MjVqZTogXCJmMXMycjlheFwiLFxuICAgIEZiZGtseTogW1wiZjFvMG5ua2tcIiwgXCJmeGI3cm9sXCJdLFxuICAgIG1kd3lxYzogW1wiZnhiN3JvbFwiLCBcImYxbzBubmtrXCJdXG4gIH0sXG4gIG1lZGl1bVZlcnRpY2FsOiB7XG4gICAgbGF3cDR5OiBcImYxN2pyYWNuXCIsXG4gICAgRmJka2x5OiBbXCJmMWZ6cjF4NlwiLCBcImYxZjM1MWlkXCJdLFxuICAgIEJjaXVzdHE6IFwiZjExN2xjYjJcIixcbiAgICBDY3E4cXA6IFwiZjFhaWozcVwiXG4gIH0sXG4gIGxhcmdlSG9yaXpvbnRhbDoge1xuICAgIGxhd3A0eTogXCJmY2hjYTdwXCIsXG4gICAgQmF6MjVqZTogXCJmMXMycjlheFwiLFxuICAgIEZiZGtseTogW1wiZjFvMG5ua2tcIiwgXCJmeGI3cm9sXCJdLFxuICAgIG1kd3lxYzogW1wiZnhiN3JvbFwiLCBcImYxbzBubmtrXCJdXG4gIH0sXG4gIGxhcmdlVmVydGljYWw6IHtcbiAgICBsYXdwNHk6IFwiZmVsOWQzelwiLFxuICAgIEZiZGtseTogW1wiZjFmenIxeDZcIiwgXCJmMWYzNTFpZFwiXSxcbiAgICBCY2l1c3RxOiBcImY2dnFscmVcIixcbiAgICBDY3E4cXA6IFwiZjFhaWozcVwiXG4gIH1cbn0sIHtcbiAgaDogW1wiLmZodzE3OW46aG92ZXI6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFIb3Zlcik7fVwiLCBbXCIuZmc5ajVuNDpob3Zlcjo6YmVmb3Jle2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzQ2lyY3VsYXIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWttaHI0Yzpob3Zlcjo6YmVmb3Jle2NvbnRlbnQ6XFxcIlxcXCI7fVwiLCBcIi5mbDF5ZGRlOmhvdmVyOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7fVwiLCBcIi5mMXV0MjBmdzpob3Zlcjo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiXSxcbiAgYTogW1wiLmYxeTdtYXh6OmFjdGl2ZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQpO31cIiwgW1wiLmZjZXl2cjQ6YWN0aXZlOjpiZWZvcmV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNDaXJjdWxhcik7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxNmN4dTA6YWN0aXZlOjpiZWZvcmV7Y29udGVudDpcXFwiXFxcIjt9XCIsIFwiLmYxbndnYWNmOmFjdGl2ZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZmhyemNmbjphY3RpdmU6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxNW92b25rOmhvdmVyOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mdmplNDZsOmFjdGl2ZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dLFxuICBkOiBbXCIuZmNoY2E3cDo6YmVmb3Jle2JvdHRvbTowO31cIiwgXCIuZjFyNTNiNWU6OmJlZm9yZXtoZWlnaHQ6dmFyKC0tc3Ryb2tlV2lkdGhUaGljayk7fVwiLCBcIi5mMXM2cnh6NTo6YmVmb3Jle2xlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpO31cIiwgXCIuZm8zNXY4czo6YmVmb3Jle3JpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIFwiLmZ6ZTR6dWQ6OmJlZm9yZXtib3R0b206dmFyKC0tc3BhY2luZ1ZlcnRpY2FsWFMpO31cIiwgXCIuZjFmenIxeDY6OmJlZm9yZXtsZWZ0OjA7fVwiLCBcIi5mMWYzNTFpZDo6YmVmb3Jle3JpZ2h0OjA7fVwiLCBcIi5mZHAzMnA4OjpiZWZvcmV7dG9wOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFhTKTt9XCIsIFwiLmYxYWlqM3E6OmJlZm9yZXt3aWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaWNrZXIpO31cIiwgXCIuZjFzMnI5YXg6OmJlZm9yZXtoZWlnaHQ6dmFyKC0tc3Ryb2tlV2lkdGhUaGlja2VyKTt9XCIsIFwiLmYxbzBubmtrOjpiZWZvcmV7bGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pO31cIiwgXCIuZnhiN3JvbDo6YmVmb3Jle3JpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSk7fVwiLCBcIi5mMTdqcmFjbjo6YmVmb3Jle2JvdHRvbTp2YXIoLS1zcGFjaW5nVmVydGljYWxTKTt9XCIsIFwiLmYxMTdsY2IyOjpiZWZvcmV7dG9wOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFMpO31cIiwgXCIuZmVsOWQzejo6YmVmb3Jle2JvdHRvbTp2YXIoLS1zcGFjaW5nVmVydGljYWxNTnVkZ2UpO31cIiwgXCIuZjZ2cWxyZTo6YmVmb3Jle3RvcDp2YXIoLS1zcGFjaW5nVmVydGljYWxNTnVkZ2UpO31cIl1cbn0pO1xuY29uc3QgdXNlQWN0aXZlSW5kaWNhdG9yU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIEJqeWs2YzU6IFwiZjFycDBqZ2hcIixcbiAgICBkOXczaDM6IDAsXG4gICAgQjM3NzhpZTogMCxcbiAgICBCNGo4YXJyOiAwLFxuICAgIEJsMThzenM6IDAsXG4gICAgQmxyemg4ZDogXCJmM2I5ZW1pXCIsXG4gICAgQnNmdDV6MjogXCJmMTN6ajZmcVwiLFxuICAgIEUzemR0cjogXCJmMW1kbGN6OVwiXG4gIH0sXG4gIHNlbGVjdGVkOiB7XG4gICAgQmp5azZjNTogXCJmMWtzaXZ1ZFwiLFxuICAgIEdsa3N1azogXCJmMWV5dHZ2aFwiLFxuICAgIEJsemwweTc6IFwiZnVhYTlzXCIsXG4gICAgZjdkaWdjOiBcImZ5N2t0anRcIixcbiAgICBCaXFwaGcxOiBcImYxNnRwMGdmXCIsXG4gICAgQm50b2xvYTogXCJmajB5cDdqXCJcbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBCanlrNmM1OiBcImYxM2xremV0XCJcbiAgfSxcbiAgc21hbGxIb3Jpem9udGFsOiB7XG4gICAgQnkzODVpNTogXCJmbzcya3hxXCIsXG4gICAgRGxuc2plOiBcImY5YmIyb2JcIixcbiAgICBFcXg4Z2Q6IFtcImYxcTcwYWp3XCIsIFwiZjE4cmJ6ZHhcIl0sXG4gICAgQjFwaWluMzogW1wiZjE4cmJ6ZHhcIiwgXCJmMXE3MGFqd1wiXVxuICB9LFxuICBzbWFsbFZlcnRpY2FsOiB7XG4gICAgQnkzODVpNTogXCJmcWJ1ZTliXCIsXG4gICAgRXF4OGdkOiBbXCJmMW42Z2I1Z1wiLCBcImYxNXl2bmhnXCJdLFxuICAgIGJuNXNhazogXCJmazFrbGt0XCIsXG4gICAgYTJicjZvOiBcImYxbzI1bGlwXCJcbiAgfSxcbiAgbWVkaXVtSG9yaXpvbnRhbDoge1xuICAgIEJ5Mzg1aTU6IFwiZm83Mmt4cVwiLFxuICAgIERsbnNqZTogXCJmMXZ4N2x1OFwiLFxuICAgIEVxeDhnZDogW1wiZm5hN201blwiLCBcImYxb3hwZnd2XCJdLFxuICAgIEIxcGlpbjM6IFtcImYxb3hwZnd2XCIsIFwiZm5hN201blwiXVxuICB9LFxuICBtZWRpdW1WZXJ0aWNhbDoge1xuICAgIEJ5Mzg1aTU6IFwiZmlweWxnMFwiLFxuICAgIEVxeDhnZDogW1wiZjFuNmdiNWdcIiwgXCJmMTV5dm5oZ1wiXSxcbiAgICBibjVzYWs6IFwiZnFjaGlvbFwiLFxuICAgIGEyYnI2bzogXCJmMW8yNWxpcFwiXG4gIH0sXG4gIGxhcmdlSG9yaXpvbnRhbDoge1xuICAgIEJ5Mzg1aTU6IFwiZm83Mmt4cVwiLFxuICAgIERsbnNqZTogXCJmMXZ4N2x1OFwiLFxuICAgIEVxeDhnZDogW1wiZm5hN201blwiLCBcImYxb3hwZnd2XCJdLFxuICAgIEIxcGlpbjM6IFtcImYxb3hwZnd2XCIsIFwiZm5hN201blwiXVxuICB9LFxuICBsYXJnZVZlcnRpY2FsOiB7XG4gICAgQnkzODVpNTogXCJmMXc3ZG01Z1wiLFxuICAgIEVxeDhnZDogW1wiZjFuNmdiNWdcIiwgXCJmMTV5dm5oZ1wiXSxcbiAgICBibjVzYWs6IFwiZjFwNmVtNG1cIixcbiAgICBhMmJyNm86IFwiZjFvMjVsaXBcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXJwMGpnaDo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIFtcIi5mM2I5ZW1pOjphZnRlcntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c0NpcmN1bGFyKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjEzemo2ZnE6OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7fVwiLCBcIi5mMW1kbGN6OTo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7fVwiLCBcIi5mMWtzaXZ1ZDo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckNvbXBvdW5kQnJhbmRTdHJva2UpO31cIiwgXCIuZjEzbGt6ZXQ6OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZvNzJreHE6OmFmdGVye2JvdHRvbTowO31cIiwgXCIuZjliYjJvYjo6YWZ0ZXJ7aGVpZ2h0OnZhcigtLXN0cm9rZVdpZHRoVGhpY2spO31cIiwgXCIuZjFxNzBhanc6OmFmdGVye2xlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxTTnVkZ2UpO31cIiwgXCIuZjE4cmJ6ZHg6OmFmdGVye3JpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsU051ZGdlKTt9XCIsIFwiLmZxYnVlOWI6OmFmdGVye2JvdHRvbTp2YXIoLS1zcGFjaW5nVmVydGljYWxYUyk7fVwiLCBcIi5mMW42Z2I1Zzo6YWZ0ZXJ7bGVmdDowO31cIiwgXCIuZjE1eXZuaGc6OmFmdGVye3JpZ2h0OjA7fVwiLCBcIi5mazFrbGt0OjphZnRlcnt0b3A6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsWFMpO31cIiwgXCIuZjFvMjVsaXA6OmFmdGVye3dpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpY2tlcik7fVwiLCBcIi5mMXZ4N2x1ODo6YWZ0ZXJ7aGVpZ2h0OnZhcigtLXN0cm9rZVdpZHRoVGhpY2tlcik7fVwiLCBcIi5mbmE3bTVuOjphZnRlcntsZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSk7fVwiLCBcIi5mMW94cGZ3djo6YWZ0ZXJ7cmlnaHQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxNKTt9XCIsIFwiLmZpcHlsZzA6OmFmdGVye2JvdHRvbTp2YXIoLS1zcGFjaW5nVmVydGljYWxTKTt9XCIsIFwiLmZxY2hpb2w6OmFmdGVye3RvcDp2YXIoLS1zcGFjaW5nVmVydGljYWxTKTt9XCIsIFwiLmYxdzdkbTVnOjphZnRlcntib3R0b206dmFyKC0tc3BhY2luZ1ZlcnRpY2FsTU51ZGdlKTt9XCIsIFwiLmYxcDZlbTRtOjphZnRlcnt0b3A6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsTU51ZGdlKTt9XCJdLFxuICBoOiBbXCIuZjFleXR2dmg6aG92ZXI6OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kU3Ryb2tlSG92ZXIpO31cIl0sXG4gIGE6IFtcIi5mdWFhOXM6YWN0aXZlOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZFN0cm9rZVByZXNzZWQpO31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ5N2t0anQ6OmFmdGVye2JhY2tncm91bmQtY29sb3I6QnV0dG9uVGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxNnRwMGdmOmhvdmVyOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOkJ1dHRvblRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5majB5cDdqOmFjdGl2ZTo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjpCdXR0b25UZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dXG59KTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgaWNvbiBzbG90LlxuICovXG5jb25zdCB1c2VJY29uU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIEJyMzEycG06IFwiZndwZmRzYVwiLFxuICAgIElqYXE1MDogXCJmMTZoc2c5NFwiLFxuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiLFxuICAgIG1jOWw1eDogXCJmdHV3eHU2XCIsXG4gICAgQnJmMXA4MDogXCJmNGQ5ajIzXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBEMHN4azM6IFwiZjE2dTFyZVwiLFxuICAgIHQ2eWV6MzogXCJmOGJzYm1vXCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBCZTJ0d2Q3OiBcImZlNWoxdWFcIixcbiAgICBCcWVudmlqOiBcImZqYW1xNmJcIixcbiAgICBhOWI2Nzc6IFwiZjY0ZnVxM1wiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJlMnR3ZDc6IFwiZmU1ajF1YVwiLFxuICAgIEJxZW52aWo6IFwiZmphbXE2YlwiLFxuICAgIGE5YjY3NzogXCJmNjRmdXEzXCJcbiAgfSxcbiAgbGFyZ2U6IHtcbiAgICBCZTJ0d2Q3OiBcImYxcnQyYm95XCIsXG4gICAgQnFlbnZpajogXCJmcnZnaDU1XCIsXG4gICAgYTliNjc3OiBcImZxNG1jdW5cIlxuICB9LFxuICBzZWxlY3RlZDoge1xuICAgIEQwc3hrMzogXCJmeG9pYnk1XCIsXG4gICAgdDZ5ZXozOiBcImYxNXEwbzlnXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZndwZmRzYXtncmlkLWNvbHVtbi1zdGFydDoxO31cIiwgXCIuZjE2aHNnOTR7Z3JpZC1yb3ctc3RhcnQ6MTt9XCIsIFwiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIiwgXCIuZnR1d3h1NntkaXNwbGF5OmlubGluZS1mbGV4O31cIiwgXCIuZjRkOWoyM3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO31cIiwgW1wiLmYxYTNwMXZwe292ZXJmbG93OmhpZGRlbjt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjE2dTFyZSAuZnVpLUljb24tZmlsbGVke2Rpc3BsYXk6bm9uZTt9XCIsIFwiLmY4YnNibW8gLmZ1aS1JY29uLXJlZ3VsYXJ7ZGlzcGxheTppbmxpbmU7fVwiLCBcIi5mZTVqMXVhe2ZvbnQtc2l6ZToyMHB4O31cIiwgXCIuZmphbXE2YntoZWlnaHQ6MjBweDt9XCIsIFwiLmY2NGZ1cTN7d2lkdGg6MjBweDt9XCIsIFwiLmYxcnQyYm95e2ZvbnQtc2l6ZToyNHB4O31cIiwgXCIuZnJ2Z2g1NXtoZWlnaHQ6MjRweDt9XCIsIFwiLmZxNG1jdW57d2lkdGg6MjRweDt9XCIsIFwiLmZ4b2lieTUgLmZ1aS1JY29uLWZpbGxlZHtkaXNwbGF5OmlubGluZTt9XCIsIFwiLmYxNXEwbzlnIC5mdWktSWNvbi1yZWd1bGFye2Rpc3BsYXk6bm9uZTt9XCJdXG59KTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgY29udGVudCBzbG90IChjaGlsZHJlbilcbiAqL1xuY29uc3QgdXNlQ29udGVudFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZraGo1MDhcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCZzk2Z3dwOiBcImYxaTNpdW1pXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFid3B0cGRcIlxuICB9LFxuICBzZWxlY3RlZDoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIlxuICB9LFxuICBsYXJnZToge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZmFhejU3a1wiXG4gIH0sXG4gIGxhcmdlU2VsZWN0ZWQ6IHtcbiAgICBCYWhxdHJmOiBcImZrNmZvdWNcIixcbiAgICBCZTJ0d2Q3OiBcImZvZDVpa25cIixcbiAgICBCaHJkN3pwOiBcImZsNDN1ZWZcIixcbiAgICBCZzk2Z3dwOiBcImZhYXo1N2tcIlxuICB9LFxuICBub0ljb25CZWZvcmU6IHtcbiAgICBCcjMxMnBtOiBcImZ3cGZkc2FcIixcbiAgICBJamFxNTA6IFwiZjE2aHNnOTRcIlxuICB9LFxuICBpY29uQmVmb3JlOiB7XG4gICAgQnIzMTJwbTogXCJmZDQ2dGo0XCIsXG4gICAgSWphcTUwOiBcImYxNmhzZzk0XCJcbiAgfSxcbiAgcGxhY2Vob2xkZXI6IHtcbiAgICBCY2R3MWkwOiBcImZkN2ZweTBcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mazZmb3Vje2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTt9XCIsIFwiLmZraGo1MDh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7fVwiLCBcIi5maWdzb2s2e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTt9XCIsIFwiLmYxaTNpdW1pe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTt9XCIsIFtcIi5mMWEzcDF2cHtvdmVyZmxvdzpoaWRkZW47fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWJ3cHRwZHtwYWRkaW5nOnZhcigtLXNwYWNpbmdWZXJ0aWNhbE5vbmUpIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZmw0M3VlZntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO31cIiwgXCIuZm9kNWlrbntmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlNDAwKTt9XCIsIFwiLmZhYXo1N2t7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U0MDApO31cIiwgXCIuZndwZmRzYXtncmlkLWNvbHVtbi1zdGFydDoxO31cIiwgXCIuZjE2aHNnOTR7Z3JpZC1yb3ctc3RhcnQ6MTt9XCIsIFwiLmZkNDZ0ajR7Z3JpZC1jb2x1bW4tc3RhcnQ6Mjt9XCIsIFwiLmZkN2ZweTB7dmlzaWJpbGl0eTpoaWRkZW47fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRhYiBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYlN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCByb290U3R5bGVzID0gdXNlUm9vdFN0eWxlcygpO1xuICBjb25zdCBmb2N1c1N0eWxlcyA9IHVzZUZvY3VzU3R5bGVzKCk7XG4gIGNvbnN0IHBlbmRpbmdJbmRpY2F0b3JTdHlsZXMgPSB1c2VQZW5kaW5nSW5kaWNhdG9yU3R5bGVzKCk7XG4gIGNvbnN0IGFjdGl2ZUluZGljYXRvclN0eWxlcyA9IHVzZUFjdGl2ZUluZGljYXRvclN0eWxlcygpO1xuICBjb25zdCBpY29uU3R5bGVzID0gdXNlSWNvblN0eWxlcygpO1xuICBjb25zdCBjb250ZW50U3R5bGVzID0gdXNlQ29udGVudFN0eWxlcygpO1xuICBjb25zdCB7XG4gICAgYXBwZWFyYW5jZSxcbiAgICBkaXNhYmxlZCxcbiAgICBzZWxlY3RlZCxcbiAgICBzaXplLFxuICAgIHZlcnRpY2FsXG4gIH0gPSBzdGF0ZTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFiQ2xhc3NOYW1lcy5yb290LCByb290U3R5bGVzLmJhc2UsIHZlcnRpY2FsID8gcm9vdFN0eWxlcy52ZXJ0aWNhbCA6IHJvb3RTdHlsZXMuaG9yaXpvbnRhbCwgc2l6ZSA9PT0gJ3NtYWxsJyAmJiAodmVydGljYWwgPyByb290U3R5bGVzLnNtYWxsVmVydGljYWwgOiByb290U3R5bGVzLnNtYWxsSG9yaXpvbnRhbCksIHNpemUgPT09ICdtZWRpdW0nICYmICh2ZXJ0aWNhbCA/IHJvb3RTdHlsZXMubWVkaXVtVmVydGljYWwgOiByb290U3R5bGVzLm1lZGl1bUhvcml6b250YWwpLCBzaXplID09PSAnbGFyZ2UnICYmICh2ZXJ0aWNhbCA/IHJvb3RTdHlsZXMubGFyZ2VWZXJ0aWNhbCA6IHJvb3RTdHlsZXMubGFyZ2VIb3Jpem9udGFsKSwgZm9jdXNTdHlsZXMuYmFzZSwgIWRpc2FibGVkICYmIGFwcGVhcmFuY2UgPT09ICdzdWJ0bGUnICYmIHJvb3RTdHlsZXMuc3VidGxlLCAhZGlzYWJsZWQgJiYgYXBwZWFyYW5jZSA9PT0gJ3RyYW5zcGFyZW50JyAmJiByb290U3R5bGVzLnRyYW5zcGFyZW50LCAhZGlzYWJsZWQgJiYgc2VsZWN0ZWQgJiYgcm9vdFN0eWxlcy5zZWxlY3RlZCwgZGlzYWJsZWQgJiYgcm9vdFN0eWxlcy5kaXNhYmxlZCxcbiAgLy8gcGVuZGluZyBpbmRpY2F0b3IgKGJlZm9yZSBwc2V1ZG8gZWxlbWVudClcbiAgcGVuZGluZ0luZGljYXRvclN0eWxlcy5iYXNlLCBzaXplID09PSAnc21hbGwnICYmICh2ZXJ0aWNhbCA/IHBlbmRpbmdJbmRpY2F0b3JTdHlsZXMuc21hbGxWZXJ0aWNhbCA6IHBlbmRpbmdJbmRpY2F0b3JTdHlsZXMuc21hbGxIb3Jpem9udGFsKSwgc2l6ZSA9PT0gJ21lZGl1bScgJiYgKHZlcnRpY2FsID8gcGVuZGluZ0luZGljYXRvclN0eWxlcy5tZWRpdW1WZXJ0aWNhbCA6IHBlbmRpbmdJbmRpY2F0b3JTdHlsZXMubWVkaXVtSG9yaXpvbnRhbCksIHNpemUgPT09ICdsYXJnZScgJiYgKHZlcnRpY2FsID8gcGVuZGluZ0luZGljYXRvclN0eWxlcy5sYXJnZVZlcnRpY2FsIDogcGVuZGluZ0luZGljYXRvclN0eWxlcy5sYXJnZUhvcml6b250YWwpLCBkaXNhYmxlZCAmJiBwZW5kaW5nSW5kaWNhdG9yU3R5bGVzLmRpc2FibGVkLFxuICAvLyBhY3RpdmUgaW5kaWNhdG9yIChhZnRlciBwc2V1ZG8gZWxlbWVudClcbiAgc2VsZWN0ZWQgJiYgYWN0aXZlSW5kaWNhdG9yU3R5bGVzLmJhc2UsIHNlbGVjdGVkICYmICFkaXNhYmxlZCAmJiBhY3RpdmVJbmRpY2F0b3JTdHlsZXMuc2VsZWN0ZWQsIHNlbGVjdGVkICYmIHNpemUgPT09ICdzbWFsbCcgJiYgKHZlcnRpY2FsID8gYWN0aXZlSW5kaWNhdG9yU3R5bGVzLnNtYWxsVmVydGljYWwgOiBhY3RpdmVJbmRpY2F0b3JTdHlsZXMuc21hbGxIb3Jpem9udGFsKSwgc2VsZWN0ZWQgJiYgc2l6ZSA9PT0gJ21lZGl1bScgJiYgKHZlcnRpY2FsID8gYWN0aXZlSW5kaWNhdG9yU3R5bGVzLm1lZGl1bVZlcnRpY2FsIDogYWN0aXZlSW5kaWNhdG9yU3R5bGVzLm1lZGl1bUhvcml6b250YWwpLCBzZWxlY3RlZCAmJiBzaXplID09PSAnbGFyZ2UnICYmICh2ZXJ0aWNhbCA/IGFjdGl2ZUluZGljYXRvclN0eWxlcy5sYXJnZVZlcnRpY2FsIDogYWN0aXZlSW5kaWNhdG9yU3R5bGVzLmxhcmdlSG9yaXpvbnRhbCksIHNlbGVjdGVkICYmIGRpc2FibGVkICYmIGFjdGl2ZUluZGljYXRvclN0eWxlcy5kaXNhYmxlZCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBpZiAoc3RhdGUuaWNvbikge1xuICAgIHN0YXRlLmljb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYkNsYXNzTmFtZXMuaWNvbiwgaWNvblN0eWxlcy5iYXNlLCBpY29uU3R5bGVzW3NpemVdLCBzZWxlY3RlZCAmJiBpY29uU3R5bGVzLnNlbGVjdGVkLCBzdGF0ZS5pY29uLmNsYXNzTmFtZSk7XG4gIH1cbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBiZWZvcmUgc3RhdGUuY29udGVudC5jbGFzc05hbWUgaXMgdXBkYXRlZFxuICBpZiAoc3RhdGUuY29udGVudFJlc2VydmVkU3BhY2UpIHtcbiAgICBzdGF0ZS5jb250ZW50UmVzZXJ2ZWRTcGFjZS5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMocmVzZXJ2ZWRTcGFjZUNsYXNzTmFtZXMuY29udGVudCwgY29udGVudFN0eWxlcy5iYXNlLCBzaXplID09PSAnbGFyZ2UnID8gY29udGVudFN0eWxlcy5sYXJnZVNlbGVjdGVkIDogY29udGVudFN0eWxlcy5zZWxlY3RlZCwgc3RhdGUuaWNvbiA/IGNvbnRlbnRTdHlsZXMuaWNvbkJlZm9yZSA6IGNvbnRlbnRTdHlsZXMubm9JY29uQmVmb3JlLCBjb250ZW50U3R5bGVzLnBsYWNlaG9sZGVyLCBzdGF0ZS5jb250ZW50LmNsYXNzTmFtZSk7XG4gICAgLy8gRklYTUU6IHRoaXMgaXMgYSBkZXByZWNhdGVkIEFQSVxuICAgIC8vIHNob3VsZCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb25cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbiAgICBzdGF0ZS5jb250ZW50UmVzZXJ2ZWRTcGFjZUNsYXNzTmFtZSA9IHN0YXRlLmNvbnRlbnRSZXNlcnZlZFNwYWNlLmNsYXNzTmFtZTtcbiAgfVxuICBzdGF0ZS5jb250ZW50LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0YWJDbGFzc05hbWVzLmNvbnRlbnQsIGNvbnRlbnRTdHlsZXMuYmFzZSwgc2l6ZSA9PT0gJ2xhcmdlJyAmJiBjb250ZW50U3R5bGVzLmxhcmdlLCBzZWxlY3RlZCAmJiAoc2l6ZSA9PT0gJ2xhcmdlJyA/IGNvbnRlbnRTdHlsZXMubGFyZ2VTZWxlY3RlZCA6IGNvbnRlbnRTdHlsZXMuc2VsZWN0ZWQpLCBzdGF0ZS5pY29uID8gY29udGVudFN0eWxlcy5pY29uQmVmb3JlIDogY29udGVudFN0eWxlcy5ub0ljb25CZWZvcmUsIHN0YXRlLmNvbnRlbnQuY2xhc3NOYW1lKTtcbiAgdXNlVGFiQW5pbWF0ZWRJbmRpY2F0b3JTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGFiU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUYWJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYic7XG5pbXBvcnQgeyByZW5kZXJUYWJfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRhYic7XG5pbXBvcnQgeyB1c2VUYWJTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYlN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIEEgdGFiIHByb3ZpZGVzIGEgc2VsZWN0YWJsZSBpdGVtIGluIGEgdGFiIGxpc3QuXG4gKi8gZXhwb3J0IGNvbnN0IFRhYiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRhYl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUYWJTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlVGFiU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJUYWJfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UYWIuZGlzcGxheU5hbWUgPSAnVGFiJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUFycm93TmF2aWdhdGlvbkdyb3VwIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCB1c2VDb250cm9sbGFibGVTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVyZ2VkUmVmcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBUYWJMaXN0LlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVRhYkxpc3RTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclRhYkxpc3RfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFRhYkxpc3RcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUYWJMaXN0XG4gKi8gZXhwb3J0IGNvbnN0IHVzZVRhYkxpc3RfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IGFwcGVhcmFuY2UgPSAndHJhbnNwYXJlbnQnLCByZXNlcnZlU2VsZWN0ZWRUYWJTcGFjZSA9IHRydWUsIGRpc2FibGVkID0gZmFsc2UsIG9uVGFiU2VsZWN0LCBzZWxlY3RUYWJPbkZvY3VzID0gZmFsc2UsIHNpemUgPSAnbWVkaXVtJywgdmVydGljYWwgPSBmYWxzZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgaW5uZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZm9jdXNBdHRyaWJ1dGVzID0gdXNlQXJyb3dOYXZpZ2F0aW9uR3JvdXAoe1xuICAgICAgICBjaXJjdWxhcjogdHJ1ZSxcbiAgICAgICAgYXhpczogdmVydGljYWwgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnLFxuICAgICAgICBtZW1vcml6ZUN1cnJlbnQ6IHRydWVcbiAgICB9KTtcbiAgICBjb25zdCBbc2VsZWN0ZWRWYWx1ZSwgc2V0U2VsZWN0ZWRWYWx1ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIHN0YXRlOiBwcm9wcy5zZWxlY3RlZFZhbHVlLFxuICAgICAgICBkZWZhdWx0U3RhdGU6IHByb3BzLmRlZmF1bHRTZWxlY3RlZFZhbHVlLFxuICAgICAgICBpbml0aWFsU3RhdGU6IHVuZGVmaW5lZFxuICAgIH0pO1xuICAgIC8vIGNvbnNpZGVyZWQgdXNlUHJldmlvdXMsIGJ1dCBpdCBpcyBzZW5zaXRpdmUgdG8gcmUtcmVuZGVyc1xuICAgIC8vIHRoaXMgY291bGQgY2F1c2UgdGhlIHByZXZpb3VzIHRvIG1vdmUgdG8gY3VycmVudCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgdGFiIGxpc3QgcmUtcmVuZGVycy5cbiAgICAvLyB0aGVzZSByZWZzIGF2b2lkIGdldFJlZ2lzdGVyZWRUYWJzIGNoYW5naW5nIHdoZW4gc2VsZWN0ZWRWYWx1ZSBjaGFuZ2VzIGFuZCBjYXVzaW5nXG4gICAgLy8gcmVuZGVycyBmb3IgdGFicyB0aGF0IGhhdmUgbm90IGNoYW5nZWQuXG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkVmFsdWUgPSBSZWFjdC51c2VSZWYodW5kZWZpbmVkKTtcbiAgICBjb25zdCBwcmV2aW91c1NlbGVjdGVkVmFsdWUgPSBSZWFjdC51c2VSZWYodW5kZWZpbmVkKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgcHJldmlvdXNTZWxlY3RlZFZhbHVlLmN1cnJlbnQgPSBjdXJyZW50U2VsZWN0ZWRWYWx1ZS5jdXJyZW50O1xuICAgICAgICBjdXJyZW50U2VsZWN0ZWRWYWx1ZS5jdXJyZW50ID0gc2VsZWN0ZWRWYWx1ZTtcbiAgICB9LCBbXG4gICAgICAgIHNlbGVjdGVkVmFsdWVcbiAgICBdKTtcbiAgICBjb25zdCBvblNlbGVjdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50LCBkYXRhKT0+e1xuICAgICAgICBzZXRTZWxlY3RlZFZhbHVlKGRhdGEudmFsdWUpO1xuICAgICAgICBvblRhYlNlbGVjdCA9PT0gbnVsbCB8fCBvblRhYlNlbGVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25UYWJTZWxlY3QoZXZlbnQsIGRhdGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyZWRUYWJzID0gUmVhY3QudXNlUmVmKHt9KTtcbiAgICBjb25zdCBvblJlZ2lzdGVyID0gdXNlRXZlbnRDYWxsYmFjaygoZGF0YSk9PntcbiAgICAgICAgcmVnaXN0ZXJlZFRhYnMuY3VycmVudFtKU09OLnN0cmluZ2lmeShkYXRhLnZhbHVlKV0gPSBkYXRhO1xuICAgIH0pO1xuICAgIGNvbnN0IG9uVW5yZWdpc3RlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGRhdGEpPT57XG4gICAgICAgIGRlbGV0ZSByZWdpc3RlcmVkVGFicy5jdXJyZW50W0pTT04uc3RyaW5naWZ5KGRhdGEudmFsdWUpXTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRSZWdpc3RlcmVkVGFicyA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWxlY3RlZFZhbHVlOiBjdXJyZW50U2VsZWN0ZWRWYWx1ZS5jdXJyZW50LFxuICAgICAgICAgICAgcHJldmlvdXNTZWxlY3RlZFZhbHVlOiBwcmV2aW91c1NlbGVjdGVkVmFsdWUuY3VycmVudCxcbiAgICAgICAgICAgIHJlZ2lzdGVyZWRUYWJzOiByZWdpc3RlcmVkVGFicy5jdXJyZW50XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiB1c2VNZXJnZWRSZWZzKHJlZiwgaW5uZXJSZWYpLFxuICAgICAgICAgICAgcm9sZTogJ3RhYmxpc3QnLFxuICAgICAgICAgICAgJ2FyaWEtb3JpZW50YXRpb24nOiB2ZXJ0aWNhbCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAuLi5mb2N1c0F0dHJpYnV0ZXMsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBhcHBlYXJhbmNlLFxuICAgICAgICByZXNlcnZlU2VsZWN0ZWRUYWJTcGFjZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHNlbGVjdFRhYk9uRm9jdXMsXG4gICAgICAgIHNlbGVjdGVkVmFsdWUsXG4gICAgICAgIHNpemUsXG4gICAgICAgIHZlcnRpY2FsLFxuICAgICAgICBvblJlZ2lzdGVyLFxuICAgICAgICBvblVucmVnaXN0ZXIsXG4gICAgICAgIG9uU2VsZWN0LFxuICAgICAgICBnZXRSZWdpc3RlcmVkVGFic1xuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBUYWJMaXN0UHJvdmlkZXIgfSBmcm9tICcuL1RhYkxpc3RDb250ZXh0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGFiTGlzdFxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUYWJMaXN0X3Vuc3RhYmxlID0gKHN0YXRlLCBjb250ZXh0VmFsdWVzKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChUYWJMaXN0UHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLnRhYkxpc3QsXG4gICAgICAgICAgICBjaGlsZHJlbjogc3RhdGUucm9vdC5jaGlsZHJlblxuICAgICAgICB9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5leHBvcnQgY29uc3QgdGFiTGlzdENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktVGFiTGlzdCdcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCZWl5M2U0OiBcImYxMDYzcHlxXCIsXG4gICAgQm5uc3M2czogXCJmaTY0enBnXCIsXG4gICAgRWgxNDFhOiBcImZsdnl2ZGhcIixcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIlxuICB9LFxuICBob3Jpem9udGFsOiB7XG4gICAgQnQ5ODRnajogXCJmMXE5aDJwZVwiLFxuICAgIEJlaXkzZTQ6IFwiZjEwNjNweXFcIlxuICB9LFxuICB2ZXJ0aWNhbDoge1xuICAgIEJ0OTg0Z2o6IFwiZjFxOWgycGVcIixcbiAgICBCZWl5M2U0OiBcImYxdng5bDYyXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMTA2M3B5cXtmbGV4LWRpcmVjdGlvbjpyb3c7fVwiLCBcIi5maTY0enBne2ZsZXgtc2hyaW5rOjA7fVwiLCBcIi5mbHZ5dmRoe2ZsZXgtd3JhcDpub3dyYXA7fVwiLCBcIi5mMTBwaTEzbntwb3NpdGlvbjpyZWxhdGl2ZTt9XCIsIFwiLmYxcTloMnBle2FsaWduLWl0ZW1zOnN0cmV0Y2g7fVwiLCBcIi5mMXZ4OWw2MntmbGV4LWRpcmVjdGlvbjpjb2x1bW47fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRhYkxpc3Qgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VUYWJMaXN0U3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHtcbiAgICB2ZXJ0aWNhbFxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0YWJMaXN0Q2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgdmVydGljYWwgPyBzdHlsZXMudmVydGljYWwgOiBzdHlsZXMuaG9yaXpvbnRhbCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGFiTGlzdFN0eWxlcy5zdHlsZXMuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYkxpc3RDb250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKSB7XG4gICAgY29uc3QgeyBhcHBlYXJhbmNlLCByZXNlcnZlU2VsZWN0ZWRUYWJTcGFjZSwgZGlzYWJsZWQsIHNlbGVjdFRhYk9uRm9jdXMsIHNlbGVjdGVkVmFsdWU6IHNlbGVjdGVkS2V5LCBvblJlZ2lzdGVyLCBvblVucmVnaXN0ZXIsIG9uU2VsZWN0LCBnZXRSZWdpc3RlcmVkVGFicywgc2l6ZSwgdmVydGljYWwgfSA9IHN0YXRlO1xuICAgIGNvbnN0IHRhYkxpc3QgPSB7XG4gICAgICAgIGFwcGVhcmFuY2UsXG4gICAgICAgIHJlc2VydmVTZWxlY3RlZFRhYlNwYWNlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgc2VsZWN0VGFiT25Gb2N1cyxcbiAgICAgICAgc2VsZWN0ZWRWYWx1ZTogc2VsZWN0ZWRLZXksXG4gICAgICAgIG9uU2VsZWN0LFxuICAgICAgICBvblJlZ2lzdGVyLFxuICAgICAgICBvblVucmVnaXN0ZXIsXG4gICAgICAgIGdldFJlZ2lzdGVyZWRUYWJzLFxuICAgICAgICBzaXplLFxuICAgICAgICB2ZXJ0aWNhbFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGFiTGlzdFxuICAgIH07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUYWJMaXN0X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUYWJMaXN0JztcbmltcG9ydCB7IHJlbmRlclRhYkxpc3RfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRhYkxpc3QnO1xuaW1wb3J0IHsgdXNlVGFiTGlzdFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFiTGlzdFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGFiTGlzdENvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYkxpc3RDb250ZXh0VmFsdWVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBBIHRhYiBsaXN0IHByb3ZpZGVzIHNpbmdsZSBzZWxlY3Rpb24gZnJvbSBhIHNldCBvZiB0YWJzLlxuICovIGV4cG9ydCBjb25zdCBUYWJMaXN0ID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVGFiTGlzdF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gdXNlVGFiTGlzdENvbnRleHRWYWx1ZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZVRhYkxpc3RTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlVGFiTGlzdFN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGFiTGlzdF91bnN0YWJsZShzdGF0ZSwgY29udGV4dFZhbHVlcyk7XG59KTtcblRhYkxpc3QuZGlzcGxheU5hbWUgPSAnVGFiTGlzdCc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGV4dC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VUZXh0U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJUZXh0X3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUZXh0XG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgVGV4dFxuICovIGV4cG9ydCBjb25zdCB1c2VUZXh0X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyB3cmFwLCB0cnVuY2F0ZSwgYmxvY2ssIGl0YWxpYywgdW5kZXJsaW5lLCBzdHJpa2V0aHJvdWdoLCBzaXplLCBmb250LCB3ZWlnaHQsIGFsaWduIH0gPSBwcm9wcztcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgYWxpZ246IGFsaWduICE9PSBudWxsICYmIGFsaWduICE9PSB2b2lkIDAgPyBhbGlnbiA6ICdzdGFydCcsXG4gICAgICAgIGJsb2NrOiBibG9jayAhPT0gbnVsbCAmJiBibG9jayAhPT0gdm9pZCAwID8gYmxvY2sgOiBmYWxzZSxcbiAgICAgICAgZm9udDogZm9udCAhPT0gbnVsbCAmJiBmb250ICE9PSB2b2lkIDAgPyBmb250IDogJ2Jhc2UnLFxuICAgICAgICBpdGFsaWM6IGl0YWxpYyAhPT0gbnVsbCAmJiBpdGFsaWMgIT09IHZvaWQgMCA/IGl0YWxpYyA6IGZhbHNlLFxuICAgICAgICBzaXplOiBzaXplICE9PSBudWxsICYmIHNpemUgIT09IHZvaWQgMCA/IHNpemUgOiAzMDAsXG4gICAgICAgIHN0cmlrZXRocm91Z2g6IHN0cmlrZXRocm91Z2ggIT09IG51bGwgJiYgc3RyaWtldGhyb3VnaCAhPT0gdm9pZCAwID8gc3RyaWtldGhyb3VnaCA6IGZhbHNlLFxuICAgICAgICB0cnVuY2F0ZTogdHJ1bmNhdGUgIT09IG51bGwgJiYgdHJ1bmNhdGUgIT09IHZvaWQgMCA/IHRydW5jYXRlIDogZmFsc2UsXG4gICAgICAgIHVuZGVybGluZTogdW5kZXJsaW5lICE9PSBudWxsICYmIHVuZGVybGluZSAhPT0gdm9pZCAwID8gdW5kZXJsaW5lIDogZmFsc2UsXG4gICAgICAgIHdlaWdodDogd2VpZ2h0ICE9PSBudWxsICYmIHdlaWdodCAhPT0gdm9pZCAwID8gd2VpZ2h0IDogJ3JlZ3VsYXInLFxuICAgICAgICB3cmFwOiB3cmFwICE9PSBudWxsICYmIHdyYXAgIT09IHZvaWQgMCA/IHdyYXAgOiB0cnVlLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnc3BhbidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdzcGFuJywge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTEhlYWRpbmdFbGVtZW50ICYgSFRNTFByZUVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiByZWYsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBUZXh0XG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRleHRfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IHRleHRDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRleHQnXG59O1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBmc293NmY6IFwiZnBnem9sblwiLFxuICAgIG1jOWw1eDogXCJmMXc3Z3BkdlwiLFxuICAgIEh1Y2U3MTogXCJmNmp1aHRvXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFnbDgxdGdcIixcbiAgICB5Z240NHk6IFwiZjJqZjY0OVwiXG4gIH0sXG4gIG5vd3JhcDoge1xuICAgIEh1Y2U3MTogXCJmejVzdGl4XCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIlxuICB9LFxuICB0cnVuY2F0ZToge1xuICAgIHlnbjQ0eTogXCJmMWNtYnV3alwiXG4gIH0sXG4gIGJsb2NrOiB7XG4gICAgbWM5bDV4OiBcImZ0Z20zMDRcIlxuICB9LFxuICBpdGFsaWM6IHtcbiAgICBCODBja2tzOiBcImYxajRkZ2x6XCJcbiAgfSxcbiAgdW5kZXJsaW5lOiB7XG4gICAgdzcxcWUxOiBcImYxM212ZjM2XCJcbiAgfSxcbiAgc3RyaWtldGhyb3VnaDoge1xuICAgIHc3MXFlMTogXCJmdjVxMms3XCJcbiAgfSxcbiAgc3RyaWtldGhyb3VnaFVuZGVybGluZToge1xuICAgIHc3MXFlMTogXCJmMWRyazRvNlwiXG4gIH0sXG4gIGJhc2UxMDA6IHtcbiAgICBCZTJ0d2Q3OiBcImYxM21xeTFoXCIsXG4gICAgQmc5Nmd3cDogXCJmY3BsNzN0XCJcbiAgfSxcbiAgYmFzZTIwMDoge1xuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiLFxuICAgIEJnOTZnd3A6IFwiZndyYzRwbVwiXG4gIH0sXG4gIGJhc2U0MDA6IHtcbiAgICBCZTJ0d2Q3OiBcImZvZDVpa25cIixcbiAgICBCZzk2Z3dwOiBcImZhYXo1N2tcIlxuICB9LFxuICBiYXNlNTAwOiB7XG4gICAgQmUydHdkNzogXCJmMXBwMzBwb1wiLFxuICAgIEJnOTZnd3A6IFwiZjEwNm12anVcIlxuICB9LFxuICBiYXNlNjAwOiB7XG4gICAgQmUydHdkNzogXCJmMXgwbTNmNVwiLFxuICAgIEJnOTZnd3A6IFwiZmI4NmdpNlwiXG4gIH0sXG4gIGhlcm83MDA6IHtcbiAgICBCZTJ0d2Q3OiBcImZvamd0MDlcIixcbiAgICBCZzk2Z3dwOiBcImZjZW44cnBcIlxuICB9LFxuICBoZXJvODAwOiB7XG4gICAgQmUydHdkNzogXCJmY2N3Njc1XCIsXG4gICAgQmc5Nmd3cDogXCJmMWVieDVra1wiXG4gIH0sXG4gIGhlcm85MDA6IHtcbiAgICBCZTJ0d2Q3OiBcImYxNWFmbmh3XCIsXG4gICAgQmc5Nmd3cDogXCJmcjN3M3dwXCJcbiAgfSxcbiAgaGVybzEwMDA6IHtcbiAgICBCZTJ0d2Q3OiBcImZweWx0Y2JcIixcbiAgICBCZzk2Z3dwOiBcImYxaXZnd3J0XCJcbiAgfSxcbiAgbW9ub3NwYWNlOiB7XG4gICAgQmFocXRyZjogXCJmMWZlZHdlbVwiXG4gIH0sXG4gIG51bWVyaWM6IHtcbiAgICBCYWhxdHJmOiBcImYxdXEwbG41XCJcbiAgfSxcbiAgd2VpZ2h0TWVkaXVtOiB7XG4gICAgQmhyZDd6cDogXCJmZGo2YnRwXCJcbiAgfSxcbiAgd2VpZ2h0U2VtaWJvbGQ6IHtcbiAgICBCaHJkN3pwOiBcImZsNDN1ZWZcIlxuICB9LFxuICB3ZWlnaHRCb2xkOiB7XG4gICAgQmhyZDd6cDogXCJmbGgzZWt2XCJcbiAgfSxcbiAgYWxpZ25DZW50ZXI6IHtcbiAgICBmc293NmY6IFwiZjE3bWNjbGFcIlxuICB9LFxuICBhbGlnbkVuZDoge1xuICAgIGZzb3c2ZjogXCJmMTJ5bWhxNVwiXG4gIH0sXG4gIGFsaWduSnVzdGlmeToge1xuICAgIGZzb3c2ZjogXCJmMWo1OWUxMFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZmtoajUwOHtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTt9XCIsIFwiLmYxaTNpdW1pe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZnBnem9sbnt0ZXh0LWFsaWduOnN0YXJ0O31cIiwgXCIuZjF3N2dwZHZ7ZGlzcGxheTppbmxpbmU7fVwiLCBcIi5mNmp1aHRve3doaXRlLXNwYWNlOm5vcm1hbDt9XCIsIFtcIi5mMWdsODF0Z3tvdmVyZmxvdzp2aXNpYmxlO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMmpmNjQ5e3RleHQtb3ZlcmZsb3c6Y2xpcDt9XCIsIFwiLmZ6NXN0aXh7d2hpdGUtc3BhY2U6bm93cmFwO31cIiwgW1wiLmYxYTNwMXZwe292ZXJmbG93OmhpZGRlbjt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjFjbWJ1d2p7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt9XCIsIFwiLmZ0Z20zMDR7ZGlzcGxheTpibG9jazt9XCIsIFwiLmYxajRkZ2x6e2ZvbnQtc3R5bGU6aXRhbGljO31cIiwgXCIuZjEzbXZmMzZ7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lO31cIiwgXCIuZnY1cTJrN3t0ZXh0LWRlY29yYXRpb24tbGluZTpsaW5lLXRocm91Z2g7fVwiLCBcIi5mMWRyazRvNnt0ZXh0LWRlY29yYXRpb24tbGluZTpsaW5lLXRocm91Z2ggdW5kZXJsaW5lO31cIiwgXCIuZjEzbXF5MWh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTEwMCk7fVwiLCBcIi5mY3BsNzN0e2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMTAwKTt9XCIsIFwiLmZ5OXJrbmN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTIwMCk7fVwiLCBcIi5md3JjNHBte2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMjAwKTt9XCIsIFwiLmZvZDVpa257Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTQwMCk7fVwiLCBcIi5mYWF6NTdre2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlNDAwKTt9XCIsIFwiLmYxcHAzMHBve2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2U1MDApO31cIiwgXCIuZjEwNm12anV7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U1MDApO31cIiwgXCIuZjF4MG0zZjV7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTYwMCk7fVwiLCBcIi5mYjg2Z2k2e2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlNjAwKTt9XCIsIFwiLmZvamd0MDl7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplSGVybzcwMCk7fVwiLCBcIi5mY2VuOHJwe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRIZXJvNzAwKTt9XCIsIFwiLmZjY3c2NzV7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplSGVybzgwMCk7fVwiLCBcIi5mMWVieDVra3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0SGVybzgwMCk7fVwiLCBcIi5mMTVhZm5od3tmb250LXNpemU6dmFyKC0tZm9udFNpemVIZXJvOTAwKTt9XCIsIFwiLmZyM3czd3B7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEhlcm85MDApO31cIiwgXCIuZnB5bHRjYntmb250LXNpemU6dmFyKC0tZm9udFNpemVIZXJvMTAwMCk7fVwiLCBcIi5mMWl2Z3dydHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0SGVybzEwMDApO31cIiwgXCIuZjFmZWR3ZW17Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseU1vbm9zcGFjZSk7fVwiLCBcIi5mMXVxMGxuNXtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5TnVtZXJpYyk7fVwiLCBcIi5mZGo2YnRwe2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRNZWRpdW0pO31cIiwgXCIuZmw0M3VlZntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO31cIiwgXCIuZmxoM2Vrdntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0Qm9sZCk7fVwiLCBcIi5mMTdtY2NsYXt0ZXh0LWFsaWduOmNlbnRlcjt9XCIsIFwiLmYxMnltaHE1e3RleHQtYWxpZ246ZW5kO31cIiwgXCIuZjFqNTllMTB7dGV4dC1hbGlnbjpqdXN0aWZ5O31cIl1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBUZXh0IHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVGV4dFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGV4dENsYXNzTmFtZXMucm9vdCwgc3R5bGVzLnJvb3QsIHN0YXRlLndyYXAgPT09IGZhbHNlICYmIHN0eWxlcy5ub3dyYXAsIHN0YXRlLnRydW5jYXRlICYmIHN0eWxlcy50cnVuY2F0ZSwgc3RhdGUuYmxvY2sgJiYgc3R5bGVzLmJsb2NrLCBzdGF0ZS5pdGFsaWMgJiYgc3R5bGVzLml0YWxpYywgc3RhdGUudW5kZXJsaW5lICYmIHN0eWxlcy51bmRlcmxpbmUsIHN0YXRlLnN0cmlrZXRocm91Z2ggJiYgc3R5bGVzLnN0cmlrZXRocm91Z2gsIHN0YXRlLnVuZGVybGluZSAmJiBzdGF0ZS5zdHJpa2V0aHJvdWdoICYmIHN0eWxlcy5zdHJpa2V0aHJvdWdoVW5kZXJsaW5lLCBzdGF0ZS5zaXplID09PSAxMDAgJiYgc3R5bGVzLmJhc2UxMDAsIHN0YXRlLnNpemUgPT09IDIwMCAmJiBzdHlsZXMuYmFzZTIwMCwgc3RhdGUuc2l6ZSA9PT0gNDAwICYmIHN0eWxlcy5iYXNlNDAwLCBzdGF0ZS5zaXplID09PSA1MDAgJiYgc3R5bGVzLmJhc2U1MDAsIHN0YXRlLnNpemUgPT09IDYwMCAmJiBzdHlsZXMuYmFzZTYwMCwgc3RhdGUuc2l6ZSA9PT0gNzAwICYmIHN0eWxlcy5oZXJvNzAwLCBzdGF0ZS5zaXplID09PSA4MDAgJiYgc3R5bGVzLmhlcm84MDAsIHN0YXRlLnNpemUgPT09IDkwMCAmJiBzdHlsZXMuaGVybzkwMCwgc3RhdGUuc2l6ZSA9PT0gMTAwMCAmJiBzdHlsZXMuaGVybzEwMDAsIHN0YXRlLmZvbnQgPT09ICdtb25vc3BhY2UnICYmIHN0eWxlcy5tb25vc3BhY2UsIHN0YXRlLmZvbnQgPT09ICdudW1lcmljJyAmJiBzdHlsZXMubnVtZXJpYywgc3RhdGUud2VpZ2h0ID09PSAnbWVkaXVtJyAmJiBzdHlsZXMud2VpZ2h0TWVkaXVtLCBzdGF0ZS53ZWlnaHQgPT09ICdzZW1pYm9sZCcgJiYgc3R5bGVzLndlaWdodFNlbWlib2xkLCBzdGF0ZS53ZWlnaHQgPT09ICdib2xkJyAmJiBzdHlsZXMud2VpZ2h0Qm9sZCwgc3RhdGUuYWxpZ24gPT09ICdjZW50ZXInICYmIHN0eWxlcy5hbGlnbkNlbnRlciwgc3RhdGUuYWxpZ24gPT09ICdlbmQnICYmIHN0eWxlcy5hbGlnbkVuZCwgc3RhdGUuYWxpZ24gPT09ICdqdXN0aWZ5JyAmJiBzdHlsZXMuYWxpZ25KdXN0aWZ5LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUZXh0U3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUZXh0JztcbmltcG9ydCB7IHJlbmRlclRleHRfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRleHQnO1xuaW1wb3J0IHsgdXNlVGV4dFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGV4dFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIFR5cG9ncmFwaHkgYW5kIHN0eWxpbmcgYWJzdHJhY3Rpb24gY29tcG9uZW50IHVzZWQgdG8gZW5zdXJlIGNvbnNpc3RlbmN5IG9mIHRleHQuXG4gKi8gZXhwb3J0IGNvbnN0IFRleHQgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUZXh0X3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRleHRTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlVGV4dFN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGV4dF91bnN0YWJsZShzdGF0ZSk7XG4vLyBXb3JrIGFyb3VuZCBzb21lIHNtYWxsIG1pc21hdGNoZXMgaW4gaW5mZXJyZWQgdHlwZXMgd2hpY2ggZG9uJ3QgbWF0dGVyIGluIHByYWN0aWNlXG59KTtcblRleHQuZGlzcGxheU5hbWUgPSAnVGV4dCc7XG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuLy8gdGhpcyBzdHlsZSBtdXN0IGJlIGFwcGxpZWQgdG8gdGhlIGh0bWwgZWxlbWVudCB0byBkaXNhYmxlIHNjcm9sbGluZ1xuZXhwb3J0IGNvbnN0IHVzZUhUTUxOb1Njcm9sbFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjZwenozelwiLCBudWxsLCBbXCIucjZwenozentvdmVyZmxvdy15OmhpZGRlbjtvdmVyZmxvdy15OmNsaXA7c2Nyb2xsYmFyLWd1dHRlcjpzdGFibGU7fVwiXSk7XG5leHBvcnQgY29uc3QgdXNlQm9keU5vU2Nyb2xsU3R5bGVzID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyMTQ0dmx1OVwiLCBudWxsLCBbXCIucjE0NHZsdTl7b3ZlcmZsb3cteTpoaWRkZW47fVwiXSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VEaXNhYmxlQm9keVNjcm9sbC5zdHlsZXMuanMubWFwIiwiaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUJvZHlOb1Njcm9sbFN0eWxlcywgdXNlSFRNTE5vU2Nyb2xsU3R5bGVzIH0gZnJvbSAnLi91c2VEaXNhYmxlQm9keVNjcm9sbC5zdHlsZXMnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEEgUmVhY3QgKmhvb2sqIHRoYXQgZGlzYWJsZXMgYm9keSBzY3JvbGxpbmcgdGhyb3VnaCBgb3ZlcmZsb3dZOiBoaWRkZW5gIENTUyBwcm9wZXJ0eVxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VEaXNhYmxlQm9keVNjcm9sbCgpIHtcbiAgICBjb25zdCBodG1sTm9TY3JvbGxTdHlsZXMgPSB1c2VIVE1MTm9TY3JvbGxTdHlsZXMoKTtcbiAgICBjb25zdCBib2R5Tm9TY3JvbGxTdHlsZXMgPSB1c2VCb2R5Tm9TY3JvbGxTdHlsZXMoKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnRfdW5zdGFibGUoKTtcbiAgICBjb25zdCBkaXNhYmxlQm9keVNjcm9sbCA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIHZhciBfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXc7XG4gICAgICAgIGlmICghdGFyZ2V0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3X2lubmVySGVpZ2h0O1xuICAgICAgICBjb25zdCBpc0hvcml6b250YWxTY3JvbGxiYXJWaXNpYmxlID0gdGFyZ2V0RG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgPiAoKF90YXJnZXREb2N1bWVudF9kZWZhdWx0Vmlld19pbm5lckhlaWdodCA9IChfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXcgPSB0YXJnZXREb2N1bWVudC5kZWZhdWx0VmlldykgPT09IG51bGwgfHwgX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXcuaW5uZXJIZWlnaHQpICE9PSBudWxsICYmIF90YXJnZXREb2N1bWVudF9kZWZhdWx0Vmlld19pbm5lckhlaWdodCAhPT0gdm9pZCAwID8gX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3X2lubmVySGVpZ2h0IDogMCk7XG4gICAgICAgIGlmICghaXNIb3Jpem9udGFsU2Nyb2xsYmFyVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldERvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKGh0bWxOb1Njcm9sbFN0eWxlcyk7XG4gICAgICAgIHRhcmdldERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChib2R5Tm9TY3JvbGxTdHlsZXMpO1xuICAgICAgICByZXR1cm47XG4gICAgfSwgW1xuICAgICAgICB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgaHRtbE5vU2Nyb2xsU3R5bGVzLFxuICAgICAgICBib2R5Tm9TY3JvbGxTdHlsZXNcbiAgICBdKTtcbiAgICBjb25zdCBlbmFibGVCb2R5U2Nyb2xsID0gdXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgaWYgKCF0YXJnZXREb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldERvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGh0bWxOb1Njcm9sbFN0eWxlcyk7XG4gICAgICAgIHRhcmdldERvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShib2R5Tm9TY3JvbGxTdHlsZXMpO1xuICAgIH0sIFtcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGh0bWxOb1Njcm9sbFN0eWxlcyxcbiAgICAgICAgYm9keU5vU2Nyb2xsU3R5bGVzXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwsXG4gICAgICAgIGVuYWJsZUJvZHlTY3JvbGxcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRm9jdXNGaW5kZXJzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIEZvY3VzIGZpcnN0IGVsZW1lbnQgb24gY29udGVudCB3aGVuIGRpYWxvZyBpcyBvcGVuZWQsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZUZvY3VzRmlyc3RFbGVtZW50KG9wZW4sIG1vZGFsVHlwZSkge1xuICAgIGNvbnN0IHsgZmluZEZpcnN0Rm9jdXNhYmxlIH0gPSB1c2VGb2N1c0ZpbmRlcnMoKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnRfdW5zdGFibGUoKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmICghb3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkaWFsb2dSZWYuY3VycmVudCAmJiBmaW5kRmlyc3RGb2N1c2FibGUoZGlhbG9nUmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIF9kaWFsb2dSZWZfY3VycmVudDtcbiAgICAgICAgICAgIChfZGlhbG9nUmVmX2N1cnJlbnQgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2RpYWxvZ1JlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZGlhbG9nUmVmX2N1cnJlbnQuZm9jdXMoKTsgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMjUxNTBcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBAZmx1ZW50dWkvcmVhY3QtZGlhbG9nIFt1c2VGb2N1c0ZpcnN0RWxlbWVudF06XG5BIERpYWxvZyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgZm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIERpYWxvZ1N1cmZhY2UuXG5QbGVhc2UgYWRkIGF0IGxlYXN0IGEgY2xvc2UgYnV0dG9uIGVpdGhlciBvbiBcXGBEaWFsb2dUaXRsZVxcYCBhY3Rpb24gc2xvdCBvciBpbnNpZGUgXFxgRGlhbG9nQWN0aW9uc1xcYGApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBmaW5kRmlyc3RGb2N1c2FibGUsXG4gICAgICAgIG9wZW4sXG4gICAgICAgIG1vZGFsVHlwZSxcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuY29uc3QgZGVmYXVsdENvbnRleHRWYWx1ZSA9IHtcbiAgICBvcGVuOiBmYWxzZSxcbiAgICBpbmVydFRyYXBGb2N1czogZmFsc2UsXG4gICAgbW9kYWxUeXBlOiAnbW9kYWwnLFxuICAgIGlzTmVzdGVkRGlhbG9nOiBmYWxzZSxcbiAgICBkaWFsb2dSZWY6IHtcbiAgICAgICAgY3VycmVudDogbnVsbFxuICAgIH0sXG4gICAgcmVxdWVzdE9wZW5DaGFuZ2UgKCkge1xuICAgIC8qIG5vb3AgKi8gfVxufTtcbi8vIENvbnRleHRzIHNob3VsZCBkZWZhdWx0IHRvIHVuZGVmaW5lZFxuZXhwb3J0IGNvbnN0IERpYWxvZ0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgRGlhbG9nUHJvdmlkZXIgPSBEaWFsb2dDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGNvbnN0IHVzZURpYWxvZ0NvbnRleHRfdW5zdGFibGUgPSAoc2VsZWN0b3IpPT51c2VDb250ZXh0U2VsZWN0b3IoRGlhbG9nQ29udGV4dCwgKGN0eCA9IGRlZmF1bHRDb250ZXh0VmFsdWUpPT5zZWxlY3RvcihjdHgpKTtcbiIsImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5jb25zdCBkZWZhdWx0Q29udGV4dFZhbHVlID0gZmFsc2U7XG5leHBvcnQgY29uc3QgRGlhbG9nU3VyZmFjZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgRGlhbG9nU3VyZmFjZVByb3ZpZGVyID0gRGlhbG9nU3VyZmFjZUNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlRGlhbG9nU3VyZmFjZUNvbnRleHRfdW5zdGFibGUgPSAoKT0+e1xuICAgIHZhciBfdXNlQ29udGV4dDtcbiAgICByZXR1cm4gKF91c2VDb250ZXh0ID0gdXNlQ29udGV4dChEaWFsb2dTdXJmYWNlQ29udGV4dCkpICE9PSBudWxsICYmIF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfdXNlQ29udGV4dCA6IGRlZmF1bHRDb250ZXh0VmFsdWU7XG59O1xuIiwiaW1wb3J0IHsgY3JlYXRlUHJlc2VuY2VDb21wb25lbnQsIG1vdGlvblRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24nO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmNvbnN0IGtleWZyYW1lcyA9IFtcbiAgICB7XG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIGJveFNoYWRvdzogJzBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSknLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjg1KSB0cmFuc2xhdGVaKDApJ1xuICAgIH0sXG4gICAge1xuICAgICAgICBib3hTaGFkb3c6IHRva2Vucy5zaGFkb3c2NCxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMSkgdHJhbnNsYXRlWigwKScsXG4gICAgICAgIG9wYWNpdHk6IDFcbiAgICB9XG5dO1xuZXhwb3J0IGNvbnN0IERpYWxvZ1N1cmZhY2VNb3Rpb24gPSBjcmVhdGVQcmVzZW5jZUNvbXBvbmVudCh7XG4gICAgZW50ZXI6IHtcbiAgICAgICAga2V5ZnJhbWVzLFxuICAgICAgICBlYXNpbmc6IG1vdGlvblRva2Vucy5jdXJ2ZURlY2VsZXJhdGVNaWQsXG4gICAgICAgIGR1cmF0aW9uOiBtb3Rpb25Ub2tlbnMuZHVyYXRpb25HZW50bGVcbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgICAga2V5ZnJhbWVzOiBbXG4gICAgICAgICAgICAuLi5rZXlmcmFtZXNcbiAgICAgICAgXS5yZXZlcnNlKCksXG4gICAgICAgIGVhc2luZzogbW90aW9uVG9rZW5zLmN1cnZlQWNjZWxlcmF0ZU1pbixcbiAgICAgICAgZHVyYXRpb246IG1vdGlvblRva2Vucy5kdXJhdGlvbkdlbnRsZVxuICAgIH1cbn0pO1xuIiwiaW1wb3J0IHsgdXNlSGFzUGFyZW50Q29udGV4dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yJztcbmltcG9ydCB7IHVzZU1vZGFsQXR0cmlidXRlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHByZXNlbmNlTW90aW9uU2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24nO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUlkIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb2N1c0ZpcnN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cyc7XG5pbXBvcnQgeyBEaWFsb2dTdXJmYWNlTW90aW9uIH0gZnJvbSAnLi4vRGlhbG9nU3VyZmFjZU1vdGlvbic7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIERpYWxvZy5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VEaWFsb2dTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlckRpYWxvZ191bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgRGlhbG9nXG4gKi8gZXhwb3J0IGNvbnN0IHVzZURpYWxvZ191bnN0YWJsZSA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBtb2RhbFR5cGUgPSAnbW9kYWwnLCBvbk9wZW5DaGFuZ2UsIGluZXJ0VHJhcEZvY3VzID0gZmFsc2UgfSA9IHByb3BzO1xuICAgIGNvbnN0IFt0cmlnZ2VyLCBjb250ZW50XSA9IGNoaWxkcmVuVG9UcmlnZ2VyQW5kQ29udGVudChjaGlsZHJlbik7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBzdGF0ZTogcHJvcHMub3BlbixcbiAgICAgICAgZGVmYXVsdFN0YXRlOiBwcm9wcy5kZWZhdWx0T3BlbixcbiAgICAgICAgaW5pdGlhbFN0YXRlOiBmYWxzZVxuICAgIH0pO1xuICAgIGNvbnN0IHJlcXVlc3RPcGVuQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZGF0YSk9PntcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKGRhdGEuZXZlbnQsIGRhdGEpO1xuICAgICAgICAvLyBpZiB1c2VyIHByZXZlbnRzIGRlZmF1bHQgdGhlbiBkbyBub3QgY2hhbmdlIHN0YXRlIHZhbHVlXG4gICAgICAgIC8vIG90aGVyd2lzZSB1cGRhdGVzIHN0YXRlIHZhbHVlIGFuZCB0cmlnZ2VyIHJlZmVyZW5jZSB0byB0aGUgZWxlbWVudCB0aGF0IGNhdXNlZCB0aGUgb3BlbmluZ1xuICAgICAgICBpZiAoIWRhdGEuZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHtcbiAgICAgICAgICAgIHNldE9wZW4oZGF0YS5vcGVuKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGZvY3VzUmVmID0gdXNlRm9jdXNGaXJzdEVsZW1lbnQob3BlbiwgbW9kYWxUeXBlKTtcbiAgICBjb25zdCB7IG1vZGFsQXR0cmlidXRlcywgdHJpZ2dlckF0dHJpYnV0ZXMgfSA9IHVzZU1vZGFsQXR0cmlidXRlcyh7XG4gICAgICAgIHRyYXBGb2N1czogbW9kYWxUeXBlICE9PSAnbm9uLW1vZGFsJyxcbiAgICAgICAgbGVnYWN5VHJhcEZvY3VzOiAhaW5lcnRUcmFwRm9jdXNcbiAgICB9KTtcbiAgICBjb25zdCBpc05lc3RlZERpYWxvZyA9IHVzZUhhc1BhcmVudENvbnRleHQoRGlhbG9nQ29udGV4dCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgLy8gVE9ETzogcmVtb3ZlIG9uY2UgUmVhY3QgdjE4IHNsb3QgQVBJIGlzIG1vZGlmaWVkXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSBhdCB0aGUgbW9tZW50IGR1ZSB0byBVbmtub3duU2xvdFByb3BzIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIHRoYXQgYGNoaWxkcmVuYCBwcm9wZXJ0eSBpcyBgUmVhY3ROb2RlYCwgd2hpY2ggaW4gdGhpcyBjYXNlIGlzIG5vdCB2YWxpZFxuICAgICAgICAgICAgLy8gYXMgUHJlc2VuY2VDb21wb25lbnRQcm9wc1snY2hpbGRyZW4nXSBpcyBgUmVhY3RFbGVtZW50YFxuICAgICAgICAgICAgc3VyZmFjZU1vdGlvbjogRGlhbG9nU3VyZmFjZU1vdGlvblxuICAgICAgICB9LFxuICAgICAgICBpbmVydFRyYXBGb2N1cyxcbiAgICAgICAgb3BlbixcbiAgICAgICAgbW9kYWxUeXBlLFxuICAgICAgICBjb250ZW50LFxuICAgICAgICB0cmlnZ2VyLFxuICAgICAgICByZXF1ZXN0T3BlbkNoYW5nZSxcbiAgICAgICAgZGlhbG9nVGl0bGVJZDogdXNlSWQoJ2RpYWxvZy10aXRsZS0nKSxcbiAgICAgICAgaXNOZXN0ZWREaWFsb2csXG4gICAgICAgIGRpYWxvZ1JlZjogZm9jdXNSZWYsXG4gICAgICAgIG1vZGFsQXR0cmlidXRlcyxcbiAgICAgICAgdHJpZ2dlckF0dHJpYnV0ZXMsXG4gICAgICAgIHN1cmZhY2VNb3Rpb246IHByZXNlbmNlTW90aW9uU2xvdChwcm9wcy5zdXJmYWNlTW90aW9uLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogRGlhbG9nU3VyZmFjZU1vdGlvbixcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIGFwcGVhcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiBvcGVuLFxuICAgICAgICAgICAgICAgIHVubW91bnRPbkV4aXQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9O1xufTtcbi8qKlxuICogRXh0cmFjdHMgdHJpZ2dlciBhbmQgY29udGVudCBmcm9tIGNoaWxkcmVuXG4gKi8gZnVuY3Rpb24gY2hpbGRyZW5Ub1RyaWdnZXJBbmRDb250ZW50KGNoaWxkcmVuKSB7XG4gICAgY29uc3QgY2hpbGRyZW5BcnJheSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChjaGlsZHJlbkFycmF5Lmxlbmd0aCAhPT0gMSAmJiBjaGlsZHJlbkFycmF5Lmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgQGZsdWVudHVpL3JlYWN0LWRpYWxvZyBbdXNlRGlhbG9nXTpcbkRpYWxvZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoaWxkIDxEaWFsb2dTdXJmYWNlLz4sXG5hbmQgYXQgbW9zdCB0d28gY2hpbGRyZW4gPERpYWxvZ1RyaWdnZXIvPiA8RGlhbG9nU3VyZmFjZS8+IChpbiB0aGlzIG9yZGVyKS5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2goY2hpbGRyZW5BcnJheS5sZW5ndGgpe1xuICAgICAgICAvLyBjYXNlIHdoZXJlIHRoZXJlJ3MgYSB0cmlnZ2VyIGZvbGxvd2VkIGJ5IGNvbnRlbnRcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuQXJyYXk7XG4gICAgICAgIC8vIGNhc2Ugd2hlcmUgdGhlcmUncyBvbmx5IGNvbnRlbnRcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW5BcnJheVswXVxuICAgICAgICAgICAgXTtcbiAgICAgICAgLy8gdW5rbm93biBjYXNlXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgIF07XG4gICAgfVxufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgTW90aW9uUmVmRm9yd2FyZGVyQ29udGV4dCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlTW90aW9uRm9yd2FyZGVkUmVmKCkge1xuICAgIHJldHVybiBSZWFjdC51c2VDb250ZXh0KE1vdGlvblJlZkZvcndhcmRlckNvbnRleHQpO1xufVxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGZvcndhcmRzIGEgcmVmIHRvIGl0cyBjaGlsZHJlbiB2aWEgYSBSZWFjdCBjb250ZXh0LlxuICpcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBNb3Rpb25SZWZGb3J3YXJkZXIgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChNb3Rpb25SZWZGb3J3YXJkZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiByZWZcbiAgICB9LCBwcm9wcy5jaGlsZHJlbik7XG59KTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW90aW9uUmVmRm9yd2FyZGVyIH0gZnJvbSAnLi4vTW90aW9uUmVmRm9yd2FyZGVyJztcbmltcG9ydCB7IERpYWxvZ1Byb3ZpZGVyLCBEaWFsb2dTdXJmYWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIERpYWxvZ1xuICovIGV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dfdW5zdGFibGUgPSAoc3RhdGUsIGNvbnRleHRWYWx1ZXMpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goRGlhbG9nUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbnRleHRWYWx1ZXMuZGlhbG9nLFxuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4cyhEaWFsb2dTdXJmYWNlUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmRpYWxvZ1N1cmZhY2UsXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIHN0YXRlLnRyaWdnZXIsXG4gICAgICAgICAgICAgICAgc3RhdGUuY29udGVudCAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuc3VyZmFjZU1vdGlvbiwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KE1vdGlvblJlZkZvcndhcmRlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHN0YXRlLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXVxuICAgICAgICB9KVxuICAgIH0pO1xufTtcbiIsImV4cG9ydCBmdW5jdGlvbiB1c2VEaWFsb2dDb250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKSB7XG4gICAgY29uc3QgeyBtb2RhbFR5cGUsIG9wZW4sIGRpYWxvZ1JlZiwgZGlhbG9nVGl0bGVJZCwgaXNOZXN0ZWREaWFsb2csIGluZXJ0VHJhcEZvY3VzLCByZXF1ZXN0T3BlbkNoYW5nZSwgbW9kYWxBdHRyaWJ1dGVzLCB0cmlnZ2VyQXR0cmlidXRlcyB9ID0gc3RhdGU7XG4gICAgLyoqXG4gICAqIFRoaXMgY29udGV4dCBpcyBjcmVhdGVkIHdpdGggXCJAZmx1ZW50dWkvcmVhY3QtY29udGV4dC1zZWxlY3RvclwiLFxuICAgKiB0aGVyZSBpcyBubyBzZW5zZSB0byBtZW1vaXplIGl0XG4gICAqLyBjb25zdCBkaWFsb2cgPSB7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIG1vZGFsVHlwZSxcbiAgICAgICAgZGlhbG9nUmVmLFxuICAgICAgICBkaWFsb2dUaXRsZUlkLFxuICAgICAgICBpc05lc3RlZERpYWxvZyxcbiAgICAgICAgaW5lcnRUcmFwRm9jdXMsXG4gICAgICAgIG1vZGFsQXR0cmlidXRlcyxcbiAgICAgICAgdHJpZ2dlckF0dHJpYnV0ZXMsXG4gICAgICAgIHJlcXVlc3RPcGVuQ2hhbmdlXG4gICAgfTtcbiAgICBjb25zdCBkaWFsb2dTdXJmYWNlID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGlhbG9nLFxuICAgICAgICBkaWFsb2dTdXJmYWNlXG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpYWxvZ191bnN0YWJsZSB9IGZyb20gJy4vdXNlRGlhbG9nJztcbmltcG9ydCB7IHJlbmRlckRpYWxvZ191bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyRGlhbG9nJztcbmltcG9ydCB7IHVzZURpYWxvZ0NvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZURpYWxvZ0NvbnRleHRWYWx1ZXMnO1xuLyoqXG4gKiBUaGUgYERpYWxvZ2Agcm9vdCBsZXZlbCBjb21wb25lbnQgc2VydmVzIGFzIGFuIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpb24gd2l0aCBhbGwgcG9zc2libGUgYmVoYXZpb3JzIGV4cG9zZWQuXG4gKiBJdCBwcm92aWRlcyBjb250ZXh0IGRvd24gdGhlIGhpZXJhcmNoeSB0byBgY2hpbGRyZW5gIGNvbXBvdW5kIGNvbXBvbmVudHMgdG8gYWxsb3cgZnVuY3Rpb25hbGl0eS5cbiAqIFRoaXMgY29tcG9uZW50IGV4cGVjdHMgdG8gcmVjZWl2ZSBhcyBjaGlsZHJlbiBlaXRoZXIgYSBgRGlhbG9nU3VyZmFjZWAgb3IgYSBgRGlhbG9nVHJpZ2dlcmBcbiAqIGFuZCBhIGBEaWFsb2dTdXJmYWNlYCAob3Igc29tZSBjb21wb25lbnQgdGhhdCB3aWxsIGV2ZW50dWFsbHkgcmVuZGVyIG9uZSBvZiB0aG9zZSBjb21wb3VuZCBjb21wb25lbnRzKVxuICogaW4gdGhpcyBzcGVjaWZpYyBvcmRlclxuICovIGV4cG9ydCBjb25zdCBEaWFsb2cgPSAvKiNfX1BVUkVfXyovIFJlYWN0Lm1lbW8oKHByb3BzKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlRGlhbG9nX3Vuc3RhYmxlKHByb3BzKTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gdXNlRGlhbG9nQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlckRpYWxvZ191bnN0YWJsZShzdGF0ZSwgY29udGV4dFZhbHVlcyk7XG59KTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYXBwbHlUcmlnZ2VyUHJvcHNUb0NoaWxkcmVuLCBnZXRUcmlnZ2VyQ2hpbGQsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZURpYWxvZ0NvbnRleHRfdW5zdGFibGUsIHVzZURpYWxvZ1N1cmZhY2VDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlQVJJQUJ1dHRvblByb3BzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgdXNlTW9kYWxBdHRyaWJ1dGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBEaWFsb2dUcmlnZ2VyLlxuICogQ2xvbmVzIHRoZSBvbmx5IGNoaWxkIGNvbXBvbmVudCBhbmQgYWRkcyBuZWNlc3NhcnkgZXZlbnQgaGFuZGxpbmcgYmVoYXZpb3VycyB0byBvcGVuIGEgcG9wdXAgRGlhbG9nXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIERpYWxvZ1RyaWdnZXJcbiAqLyBleHBvcnQgY29uc3QgdXNlRGlhbG9nVHJpZ2dlcl91bnN0YWJsZSA9IChwcm9wcyk9PntcbiAgICBjb25zdCBpc0luc2lkZVN1cmZhY2VEaWFsb2cgPSB1c2VEaWFsb2dTdXJmYWNlQ29udGV4dF91bnN0YWJsZSgpO1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGRpc2FibGVCdXR0b25FbmhhbmNlbWVudCA9IGZhbHNlLCBhY3Rpb24gPSBpc0luc2lkZVN1cmZhY2VEaWFsb2cgPyAnY2xvc2UnIDogJ29wZW4nIH0gPSBwcm9wcztcbiAgICBjb25zdCBjaGlsZCA9IGdldFRyaWdnZXJDaGlsZChjaGlsZHJlbik7XG4gICAgY29uc3QgcmVxdWVzdE9wZW5DaGFuZ2UgPSB1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgucmVxdWVzdE9wZW5DaGFuZ2UpO1xuICAgIGNvbnN0IHsgdHJpZ2dlckF0dHJpYnV0ZXMgfSA9IHVzZU1vZGFsQXR0cmlidXRlcygpO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpPT57XG4gICAgICAgIHZhciBfY2hpbGRfcHJvcHNfb25DbGljaywgX2NoaWxkX3Byb3BzO1xuICAgICAgICBjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF9jaGlsZF9wcm9wc19vbkNsaWNrID0gKF9jaGlsZF9wcm9wcyA9IGNoaWxkLnByb3BzKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfY2hpbGRfcHJvcHNfb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NoaWxkX3Byb3BzX29uQ2xpY2suY2FsbChfY2hpbGRfcHJvcHMsIGV2ZW50KTtcbiAgICAgICAgaWYgKCFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkge1xuICAgICAgICAgICAgcmVxdWVzdE9wZW5DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0cmlnZ2VyQ2xpY2snLFxuICAgICAgICAgICAgICAgIG9wZW46IGFjdGlvbiA9PT0gJ29wZW4nXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHRyaWdnZXJDaGlsZFByb3BzID0ge1xuICAgICAgICAuLi5jaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQucHJvcHMsXG4gICAgICAgIHJlZjogY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkLnJlZixcbiAgICAgICAgb25DbGljazogaGFuZGxlQ2xpY2ssXG4gICAgICAgIC4uLnRyaWdnZXJBdHRyaWJ1dGVzXG4gICAgfTtcbiAgICBjb25zdCBhcmlhQnV0dG9uVHJpZ2dlckNoaWxkUHJvcHMgPSB1c2VBUklBQnV0dG9uUHJvcHMoKGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZC50eXBlKSA9PT0gJ2J1dHRvbicgfHwgKGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZC50eXBlKSA9PT0gJ2EnID8gY2hpbGQudHlwZSA6ICdkaXYnLCB7XG4gICAgICAgIC4uLnRyaWdnZXJDaGlsZFByb3BzLFxuICAgICAgICB0eXBlOiAnYnV0dG9uJ1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNoaWxkcmVuOiBhcHBseVRyaWdnZXJQcm9wc1RvQ2hpbGRyZW4oY2hpbGRyZW4sIGRpc2FibGVCdXR0b25FbmhhbmNlbWVudCA/IHRyaWdnZXJDaGlsZFByb3BzIDogYXJpYUJ1dHRvblRyaWdnZXJDaGlsZFByb3BzKVxuICAgIH07XG59O1xuIiwiLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBNZW51VHJpZ2dlclxuICpcbiAqIE9ubHkgcmVuZGVycyBjaGlsZHJlblxuICovIGV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dUcmlnZ2VyX3Vuc3RhYmxlID0gKHN0YXRlKT0+c3RhdGUuY2hpbGRyZW47XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaWFsb2dUcmlnZ2VyX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VEaWFsb2dUcmlnZ2VyJztcbmltcG9ydCB7IHJlbmRlckRpYWxvZ1RyaWdnZXJfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlckRpYWxvZ1RyaWdnZXInO1xuLyoqXG4gKiBBIG5vbi12aXN1YWwgY29tcG9uZW50IHRoYXQgd3JhcHMgaXRzIGNoaWxkXG4gKiBhbmQgY29uZmlndXJlcyB0aGVtIHRvIGJlIHRoZSB0cmlnZ2VyIHRoYXQgd2lsbCBvcGVuIG9yIGNsb3NlIGEgYERpYWxvZ2AuXG4gKiBUaGlzIGNvbXBvbmVudCBzaG91bGQgb25seSBhY2NlcHQgb25lIGNoaWxkLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IHNvbGUgcHVycG9zZSBpcyB0byBhdm9pZCBvcHRpbmcgb3V0IG9mIHRoZSBpbnRlcm5hbCBjb250cm9sbGVkIG9wZW4gc3RhdGUgb2YgYSBgRGlhbG9nYFxuICogQmVzaWRlcyBiZWluZyBhIHRyaWdnZXIgdGhhdCBvcGVucy9jbG9zZSBhIGRpYWxvZyB0aHJvdWdoIGNvbnRleHQgdGhpcyBjb21wb25lbnQgZG9lc24ndCBkbyBtdWNoLFxuICogbWFraW5nIGl0IGJhc2ljYWxseSB1bm5lY2Vzc2FyeSBpbiBjYXNlcyB3aGVyZSB0aGUgdHJpZ2dlciBpcyBvdXRzaWRlIG9mIHRoZSBgRGlhbG9nYCBjb21wb25lbnQuXG4gKi8gZXhwb3J0IGNvbnN0IERpYWxvZ1RyaWdnZXIgPSAocHJvcHMpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VEaWFsb2dUcmlnZ2VyX3Vuc3RhYmxlKHByb3BzKTtcbiAgICByZXR1cm4gcmVuZGVyRGlhbG9nVHJpZ2dlcl91bnN0YWJsZShzdGF0ZSk7XG59O1xuRGlhbG9nVHJpZ2dlci5kaXNwbGF5TmFtZSA9ICdEaWFsb2dUcmlnZ2VyJztcbi8vIHR5cGUgY2FzdGluZyBoZXJlIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBpbnRlcm5hbCB0eXBlIEZsdWVudFRyaWdnZXJDb21wb25lbnQgaXMgbm90IGxlYWtlZFxuRGlhbG9nVHJpZ2dlci5pc0ZsdWVudFRyaWdnZXJDb21wb25lbnQgPSB0cnVlO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIERpYWxvZ0JvZHkuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlRGlhbG9nQm9keVN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyRGlhbG9nQm9keV91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgRGlhbG9nQm9keVxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIERpYWxvZ0JvZHlcbiAqLyBleHBvcnQgY29uc3QgdXNlRGlhbG9nQm9keV91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIHZhciBfcHJvcHNfYXM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKChfcHJvcHNfYXMgPSBwcm9wcy5hcykgIT09IG51bGwgJiYgX3Byb3BzX2FzICE9PSB2b2lkIDAgPyBfcHJvcHNfYXMgOiAnZGl2Jywge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiByZWYsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgRGlhbG9nQm9keVxuICovIGV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dCb2R5X3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICAvLyBUT0RPIEFkZCBhZGRpdGlvbmFsIHNsb3RzIGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fcmVzZXRTdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IERJQUxPR19HQVAsIE1FRElBX1FVRVJZX0JSRUFLUE9JTlRfU0VMRUNUT1IsIE1FRElBX1FVRVJZX1NIT1JUX1NDUkVFTiwgU1VSRkFDRV9QQURESU5HIH0gZnJvbSAnLi4vLi4vY29udGV4dHMnO1xuZXhwb3J0IGNvbnN0IGRpYWxvZ0JvZHlDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLURpYWxvZ0JvZHknXG59O1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlUmVzZXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxaDNxcWw5XCIsIG51bGwsIHtcbiAgcjogW1wiLnIxaDNxcWw5e292ZXJmbG93OnVuc2V0O2dhcDo4cHg7ZGlzcGxheTpncmlkO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDIgKiAyNHB4KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gMWZyO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyIGF1dG87fVwiXSxcbiAgczogW1wiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpey5yMWgzcXFsOXttYXgtd2lkdGg6MTAwdnc7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gMWZyIGF1dG87fX1cIiwgXCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzU5cHgpey5yMWgzcXFsOXttYXgtaGVpZ2h0OnVuc2V0O319XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgRGlhbG9nQm9keSBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZURpYWxvZ0JvZHlTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3QgcmVzZXRTdHlsZXMgPSB1c2VSZXNldFN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhkaWFsb2dCb2R5Q2xhc3NOYW1lcy5yb290LCByZXNldFN0eWxlcywgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlRGlhbG9nQm9keVN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlhbG9nQm9keV91bnN0YWJsZSB9IGZyb20gJy4vdXNlRGlhbG9nQm9keSc7XG5pbXBvcnQgeyByZW5kZXJEaWFsb2dCb2R5X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJEaWFsb2dCb2R5JztcbmltcG9ydCB7IHVzZURpYWxvZ0JvZHlTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZURpYWxvZ0JvZHlTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBUaGUgYERpYWxvZ0JvZHlgIGlzIGEgY29udGFpbmVyIHdoZXJlIHRoZSBjb250ZW50IG9mIHRoZSBkaWFsb2cgaXMgcmVuZGVyZWQuXG4gKiBBcGFydCBmcm9tIHN0eWxpbmcsIHRoaXMgY29tcG9uZW50IGRvZXMgbm90IGhhdmUgb3RoZXIgYmVoYXZpb3IuXG4gKi8gZXhwb3J0IGNvbnN0IERpYWxvZ0JvZHkgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VEaWFsb2dCb2R5X3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZURpYWxvZ0JvZHlTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlRGlhbG9nQm9keVN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyRGlhbG9nQm9keV91bnN0YWJsZShzdGF0ZSk7XG59KTtcbkRpYWxvZ0JvZHkuZGlzcGxheU5hbWUgPSAnRGlhbG9nQm9keSc7XG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdHlwb2dyYXBoeVN0eWxlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBjcmVhdGVGb2N1c091dGxpbmVTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmV4cG9ydCBjb25zdCBkaWFsb2dUaXRsZUNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktRGlhbG9nVGl0bGUnLFxuICBhY3Rpb246ICdmdWktRGlhbG9nVGl0bGVfX2FjdGlvbidcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VSb290UmVzZXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInJ4am02MzZcIiwgbnVsbCwgW1wiLnJ4am02MzZ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2U1MDApO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U1MDApO21hcmdpbjowO2dyaWQtcm93LXN0YXJ0OjE7Z3JpZC1yb3ctZW5kOjE7Z3JpZC1jb2x1bW4tc3RhcnQ6MTtncmlkLWNvbHVtbi1lbmQ6Mzt9XCJdKTtcbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3RXaXRob3V0QWN0aW9uOiB7XG4gICAgQncwaWU2NTogXCJmc3lqc2tvXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZnN5anNrb3tncmlkLWNvbHVtbi1lbmQ6NDt9XCJdXG59KTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgYWN0aW9uIHNsb3RcbiAqL1xuY29uc3QgdXNlQWN0aW9uUmVzZXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxM2tjcnplXCIsIG51bGwsIFtcIi5yMTNrY3J6ZXtncmlkLXJvdy1zdGFydDoxO2dyaWQtcm93LWVuZDoxO2dyaWQtY29sdW1uLXN0YXJ0OjM7anVzdGlmeS1zZWxmOmVuZDthbGlnbi1zZWxmOnN0YXJ0O31cIl0pO1xuLyoqXG4gKiBTdHlsZXMgdG8gYmUgYXBwbGllZCBvbiBpbnRlcm5hbCBlbGVtZW50cyB1c2VkIGJ5IGRlZmF1bHQgYWN0aW9uIG9uIG5vbi1tb2RhbCBEaWFsb2dcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdXNlRGlhbG9nVGl0bGVJbnRlcm5hbFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjJhdnQ2ZVwiLCBcInJvajJiYmNcIiwge1xuICByOiBbXCIucjJhdnQ2ZXtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6MDtib3JkZXItc3R5bGU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtjb2xvcjppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MDstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO3RleHQtYWxpZ246dW5zZXQ7fVwiLCBcIi5yMmF2dDZlOmZvY3Vze291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnIyYXZ0NmU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMmF2dDZlW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5yMmF2dDZlW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntjb250ZW50OlxcXCJcXFwiO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxO2JvcmRlcjoycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt0b3A6Y2FsYygycHggKiAtMSk7cmlnaHQ6Y2FsYygycHggKiAtMSk7Ym90dG9tOmNhbGMoMnB4ICogLTEpO2xlZnQ6Y2FsYygycHggKiAtMSk7fVwiLCBcIi5yb2oyYmJje292ZXJmbG93OnZpc2libGU7cGFkZGluZzowO2JvcmRlci1zdHlsZTpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2NvbG9yOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDowOy13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247dGV4dC1hbGlnbjp1bnNldDt9XCIsIFwiLnJvajJiYmM6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIucm9qMmJiYzpmb2N1cy12aXNpYmxle291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnJvajJiYmNbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLnJvajJiYmNbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjE7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3RvcDpjYWxjKDJweCAqIC0xKTtsZWZ0OmNhbGMoMnB4ICogLTEpO2JvdHRvbTpjYWxjKDJweCAqIC0xKTtyaWdodDpjYWxjKDJweCAqIC0xKTt9XCJdLFxuICBzOiBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnIyYXZ0NmVbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2JvcmRlci10b3AtY29sb3I6SGlnaGxpZ2h0O2JvcmRlci1yaWdodC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWxlZnQtY29sb3I6SGlnaGxpZ2h0O319XCIsIFwiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5yb2oyYmJjW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDtib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDt9fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIERpYWxvZ1RpdGxlIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlRGlhbG9nVGl0bGVTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgcm9vdFJlc2V0U3R5bGVzID0gdXNlUm9vdFJlc2V0U3R5bGVzKCk7XG4gIGNvbnN0IGFjdGlvblJlc2V0U3R5bGVzID0gdXNlQWN0aW9uUmVzZXRTdHlsZXMoKTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGRpYWxvZ1RpdGxlQ2xhc3NOYW1lcy5yb290LCByb290UmVzZXRTdHlsZXMsICFzdGF0ZS5hY3Rpb24gJiYgc3R5bGVzLnJvb3RXaXRob3V0QWN0aW9uLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIGlmIChzdGF0ZS5hY3Rpb24pIHtcbiAgICBzdGF0ZS5hY3Rpb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGRpYWxvZ1RpdGxlQ2xhc3NOYW1lcy5hY3Rpb24sIGFjdGlvblJlc2V0U3R5bGVzLCBzdGF0ZS5hY3Rpb24uY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlRGlhbG9nVGl0bGVTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlRGlhbG9nQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uLy4uL2NvbnRleHRzL2RpYWxvZ0NvbnRleHQnO1xuaW1wb3J0IHsgRGlzbWlzczIwUmVndWxhciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1pY29ucyc7XG5pbXBvcnQgeyBEaWFsb2dUcmlnZ2VyIH0gZnJvbSAnLi4vRGlhbG9nVHJpZ2dlci9EaWFsb2dUcmlnZ2VyJztcbmltcG9ydCB7IHVzZURpYWxvZ1RpdGxlSW50ZXJuYWxTdHlsZXMgfSBmcm9tICcuL3VzZURpYWxvZ1RpdGxlU3R5bGVzLnN0eWxlcyc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIERpYWxvZ1RpdGxlLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZURpYWxvZ1RpdGxlU3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJEaWFsb2dUaXRsZV91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgRGlhbG9nVGl0bGVcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBEaWFsb2dUaXRsZVxuICovIGV4cG9ydCBjb25zdCB1c2VEaWFsb2dUaXRsZV91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgYWN0aW9uIH0gPSBwcm9wcztcbiAgICBjb25zdCBtb2RhbFR5cGUgPSB1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgubW9kYWxUeXBlKTtcbiAgICBjb25zdCBpbnRlcm5hbFN0eWxlcyA9IHVzZURpYWxvZ1RpdGxlSW50ZXJuYWxTdHlsZXMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnaDInLFxuICAgICAgICAgICAgYWN0aW9uOiAnZGl2J1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2gyJywge1xuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgaWQ6IHVzZURpYWxvZ0NvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5kaWFsb2dUaXRsZUlkKSxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2gyJ1xuICAgICAgICB9KSxcbiAgICAgICAgYWN0aW9uOiBzbG90Lm9wdGlvbmFsKGFjdGlvbiwge1xuICAgICAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiBtb2RhbFR5cGUgPT09ICdub24tbW9kYWwnLFxuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dUcmlnZ2VyLCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVCdXR0b25FbmhhbmNlbWVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBcImNsb3NlXCJcbiAgICAgICAgICAgICAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGludGVybmFsU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHdheSB0byBhZGQgaW50ZXJuYWwgbGFiZWxzXG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBcImNsb3NlXCJcbiAgICAgICAgICAgICAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlzbWlzczIwUmVndWxhciwgbnVsbCkpKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgRGlhbG9nVGl0bGVcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyRGlhbG9nVGl0bGVfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogc3RhdGUucm9vdC5jaGlsZHJlblxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGF0ZS5hY3Rpb24gJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmFjdGlvbiwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaWFsb2dUaXRsZV91bnN0YWJsZSB9IGZyb20gJy4vdXNlRGlhbG9nVGl0bGUnO1xuaW1wb3J0IHsgcmVuZGVyRGlhbG9nVGl0bGVfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlckRpYWxvZ1RpdGxlJztcbmltcG9ydCB7IHVzZURpYWxvZ1RpdGxlU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VEaWFsb2dUaXRsZVN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIFRoZSBgRGlhbG9nVGl0bGVgIGNvbXBvbmVudCBleHBlY3RzIHRvIGhhdmUgYSB0aXRsZS9oZWFkZXJcbiAqIGFuZCB3aGVuIGBEaWFsb2dgIGlzIGBub24tbW9kYWxgIGEgY2xvc2UgKFggaWNvbikgYnV0dG9uIGlzIHByb3ZpZGVkIHRocm91Z2ggYGFjdGlvbmAgc2xvdCBieSBkZWZhdWx0LlxuICovIGV4cG9ydCBjb25zdCBEaWFsb2dUaXRsZSA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZURpYWxvZ1RpdGxlX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZURpYWxvZ1RpdGxlU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZURpYWxvZ1RpdGxlU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJEaWFsb2dUaXRsZV91bnN0YWJsZShzdGF0ZSk7XG59KTtcbkRpYWxvZ1RpdGxlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZ1RpdGxlJztcbiIsImltcG9ydCB7IGNyZWF0ZVByZXNlbmNlQ29tcG9uZW50LCBtb3Rpb25Ub2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtbW90aW9uJztcbmNvbnN0IGtleWZyYW1lcyA9IFtcbiAgICB7XG4gICAgICAgIG9wYWNpdHk6IDBcbiAgICB9LFxuICAgIHtcbiAgICAgICAgb3BhY2l0eTogMVxuICAgIH1cbl07XG5leHBvcnQgY29uc3QgRGlhbG9nQmFja2Ryb3BNb3Rpb24gPSBjcmVhdGVQcmVzZW5jZUNvbXBvbmVudCh7XG4gICAgZW50ZXI6IHtcbiAgICAgICAga2V5ZnJhbWVzLFxuICAgICAgICBlYXNpbmc6IG1vdGlvblRva2Vucy5jdXJ2ZUxpbmVhcixcbiAgICAgICAgZHVyYXRpb246IG1vdGlvblRva2Vucy5kdXJhdGlvbkdlbnRsZVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgICBrZXlmcmFtZXM6IFtcbiAgICAgICAgICAgIC4uLmtleWZyYW1lc1xuICAgICAgICBdLnJldmVyc2UoKSxcbiAgICAgICAgZWFzaW5nOiBtb3Rpb25Ub2tlbnMuY3VydmVMaW5lYXIsXG4gICAgICAgIGR1cmF0aW9uOiBtb3Rpb25Ub2tlbnMuZHVyYXRpb25HZW50bGVcbiAgICB9XG59KTtcbiIsImltcG9ydCB7IEVzY2FwZSB9IGZyb20gJ0BmbHVlbnR1aS9rZXlib2FyZC1rZXlzJztcbmltcG9ydCB7IHByZXNlbmNlTW90aW9uU2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24nO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVyZ2VkUmVmcywgaXNSZXNvbHZlZFNob3J0aGFuZCwgc2xvdCwgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlRGlzYWJsZUJvZHlTY3JvbGwgfSBmcm9tICcuLi8uLi91dGlscy91c2VEaXNhYmxlQm9keVNjcm9sbCc7XG5pbXBvcnQgeyBEaWFsb2dCYWNrZHJvcE1vdGlvbiB9IGZyb20gJy4uL0RpYWxvZ0JhY2tkcm9wTW90aW9uJztcbmltcG9ydCB7IHVzZU1vdGlvbkZvcndhcmRlZFJlZiB9IGZyb20gJy4uL01vdGlvblJlZkZvcndhcmRlcic7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIERpYWxvZ1N1cmZhY2UuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlRGlhbG9nU3VyZmFjZVN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyRGlhbG9nU3VyZmFjZV91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgRGlhbG9nU3VyZmFjZVxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIERpYWxvZ1N1cmZhY2VcbiAqLyBleHBvcnQgY29uc3QgdXNlRGlhbG9nU3VyZmFjZV91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IGNvbnRleHRSZWYgPSB1c2VNb3Rpb25Gb3J3YXJkZWRSZWYoKTtcbiAgICBjb25zdCBtb2RhbFR5cGUgPSB1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgubW9kYWxUeXBlKTtcbiAgICBjb25zdCBpc05lc3RlZERpYWxvZyA9IHVzZURpYWxvZ0NvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5pc05lc3RlZERpYWxvZyk7XG4gICAgY29uc3QgbW9kYWxBdHRyaWJ1dGVzID0gdXNlRGlhbG9nQ29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4Lm1vZGFsQXR0cmlidXRlcyk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlRGlhbG9nQ29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LmRpYWxvZ1JlZik7XG4gICAgY29uc3QgcmVxdWVzdE9wZW5DaGFuZ2UgPSB1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgucmVxdWVzdE9wZW5DaGFuZ2UpO1xuICAgIGNvbnN0IGRpYWxvZ1RpdGxlSUQgPSB1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHguZGlhbG9nVGl0bGVJZCk7XG4gICAgY29uc3Qgb3BlbiA9IHVzZURpYWxvZ0NvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5vcGVuKTtcbiAgICBjb25zdCBoYW5kbGVkQmFja2Ryb3BDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBpZiAoaXNSZXNvbHZlZFNob3J0aGFuZChwcm9wcy5iYWNrZHJvcCkpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHNfYmFja2Ryb3Bfb25DbGljaywgX3Byb3BzX2JhY2tkcm9wO1xuICAgICAgICAgICAgKF9wcm9wc19iYWNrZHJvcF9vbkNsaWNrID0gKF9wcm9wc19iYWNrZHJvcCA9IHByb3BzLmJhY2tkcm9wKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfcHJvcHNfYmFja2Ryb3Bfb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX2JhY2tkcm9wX29uQ2xpY2suY2FsbChfcHJvcHNfYmFja2Ryb3AsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kYWxUeXBlID09PSAnbW9kYWwnICYmICFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkge1xuICAgICAgICAgICAgcmVxdWVzdE9wZW5DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdiYWNrZHJvcENsaWNrJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpPT57XG4gICAgICAgIHZhciBfcHJvcHNfb25LZXlEb3duO1xuICAgICAgICAoX3Byb3BzX29uS2V5RG93biA9IHByb3BzLm9uS2V5RG93bikgPT09IG51bGwgfHwgX3Byb3BzX29uS2V5RG93biA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX29uS2V5RG93bi5jYWxsKHByb3BzLCBldmVudCk7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEVzY2FwZSAmJiAhZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHtcbiAgICAgICAgICAgIHJlcXVlc3RPcGVuQ2hhbmdlKHtcbiAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZXNjYXBlS2V5RG93bidcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gc3RvcCBwcm9wYWdhdGlvbiB0byBhdm9pZCBjb25mbGljdGluZyB3aXRoIG90aGVyIGVsZW1lbnRzIHRoYXQgbGlzdGVuIGZvciBgRXNjYXBlYFxuICAgICAgICAgICAgLy8gZSxnOiBuZXN0ZWQgRGlhbG9nLCBQb3BvdmVyLCBNZW51IGFuZCBUb29sdGlwXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgYmFja2Ryb3AgPSBzbG90Lm9wdGlvbmFsKHByb3BzLmJhY2tkcm9wLCB7XG4gICAgICAgIHJlbmRlckJ5RGVmYXVsdDogbW9kYWxUeXBlICE9PSAnbm9uLW1vZGFsJyxcbiAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiAndHJ1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgfSk7XG4gICAgaWYgKGJhY2tkcm9wKSB7XG4gICAgICAgIGJhY2tkcm9wLm9uQ2xpY2sgPSBoYW5kbGVkQmFja2Ryb3BDbGljaztcbiAgICB9XG4gICAgY29uc3QgeyBkaXNhYmxlQm9keVNjcm9sbCwgZW5hYmxlQm9keVNjcm9sbCB9ID0gdXNlRGlzYWJsZUJvZHlTY3JvbGwoKTtcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChpc05lc3RlZERpYWxvZyB8fCBtb2RhbFR5cGUgPT09ICdub24tbW9kYWwnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwoKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBlbmFibGVCb2R5U2Nyb2xsKCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBlbmFibGVCb2R5U2Nyb2xsLFxuICAgICAgICBpc05lc3RlZERpYWxvZyxcbiAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwsXG4gICAgICAgIG1vZGFsVHlwZVxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIGJhY2tkcm9wOiAnZGl2JyxcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgLy8gVE9ETzogcmVtb3ZlIG9uY2UgUmVhY3QgdjE4IHNsb3QgQVBJIGlzIG1vZGlmaWVkXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSBhdCB0aGUgbW9tZW50IGR1ZSB0byBVbmtub3duU2xvdFByb3BzIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIHRoYXQgYGNoaWxkcmVuYCBwcm9wZXJ0eSBpcyBgUmVhY3ROb2RlYCwgd2hpY2ggaW4gdGhpcyBjYXNlIGlzIG5vdCB2YWxpZFxuICAgICAgICAgICAgLy8gYXMgUHJlc2VuY2VDb21wb25lbnRQcm9wc1snY2hpbGRyZW4nXSBpcyBgUmVhY3RFbGVtZW50YFxuICAgICAgICAgICAgYmFja2Ryb3BNb3Rpb246IERpYWxvZ0JhY2tkcm9wTW90aW9uXG4gICAgICAgIH0sXG4gICAgICAgIG9wZW4sXG4gICAgICAgIGJhY2tkcm9wLFxuICAgICAgICBpc05lc3RlZERpYWxvZyxcbiAgICAgICAgbW91bnROb2RlOiBwcm9wcy5tb3VudE5vZGUsXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgICAgJ2FyaWEtbW9kYWwnOiBtb2RhbFR5cGUgIT09ICdub24tbW9kYWwnLFxuICAgICAgICAgICAgcm9sZTogbW9kYWxUeXBlID09PSAnYWxlcnQnID8gJ2FsZXJ0ZGlhbG9nJyA6ICdkaWFsb2cnLFxuICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IHByb3BzWydhcmlhLWxhYmVsJ10gPyB1bmRlZmluZWQgOiBkaWFsb2dUaXRsZUlELFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICAuLi5tb2RhbEF0dHJpYnV0ZXMsXG4gICAgICAgICAgICBvbktleURvd246IGhhbmRsZUtleURvd24sXG4gICAgICAgICAgICAvLyBGSVhNRTpcbiAgICAgICAgICAgIC8vIGBEaWFsb2dTdXJmYWNlRWxlbWVudGAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIGNvbnRleHRSZWYsIGRpYWxvZ1JlZilcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgYmFja2Ryb3BNb3Rpb246IHByZXNlbmNlTW90aW9uU2xvdChwcm9wcy5iYWNrZHJvcE1vdGlvbiwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6IERpYWxvZ0JhY2tkcm9wTW90aW9uLFxuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgYXBwZWFyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZpc2libGU6IG9wZW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIC8vIERlcHJlY2F0ZWQgcHJvcGVydGllc1xuICAgICAgICB0cmFuc2l0aW9uU3RhdHVzOiB1bmRlZmluZWRcbiAgICB9O1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBEaWFsb2dTdXJmYWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIERpYWxvZ1N1cmZhY2VcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyRGlhbG9nU3VyZmFjZV91bnN0YWJsZSA9IChzdGF0ZSwgY29udGV4dFZhbHVlcyk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoUG9ydGFsLCB7XG4gICAgICAgIG1vdW50Tm9kZTogc3RhdGUubW91bnROb2RlLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgc3RhdGUuYmFja2Ryb3AgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmJhY2tkcm9wTW90aW9uLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5iYWNrZHJvcCwge30pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChEaWFsb2dTdXJmYWNlUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy5kaWFsb2dTdXJmYWNlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pXG4gICAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0IHsgX19yZXNldFN0eWxlcywgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBjcmVhdGVGb2N1c091dGxpbmVTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IEZVTExTQ1JFRU5fRElBTE9HX1NDUk9MTEJBUl9PRkZTRVQsIE1FRElBX1FVRVJZX0JSRUFLUE9JTlRfU0VMRUNUT1IsIE1FRElBX1FVRVJZX1NIT1JUX1NDUkVFTiwgU1VSRkFDRV9CT1JERVJfV0lEVEgsIFNVUkZBQ0VfUEFERElORyB9IGZyb20gJy4uLy4uL2NvbnRleHRzJztcbmV4cG9ydCBjb25zdCBkaWFsb2dTdXJmYWNlQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1EaWFsb2dTdXJmYWNlJyxcbiAgYmFja2Ryb3A6ICdmdWktRGlhbG9nU3VyZmFjZV9fYmFja2Ryb3AnXG59O1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlUm9vdEJhc2VTdHlsZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjFzdmpidHRcIiwgXCJyMTMxeXVvcVwiLCB7XG4gIHI6IFtcIi5yMXN2amJ0dHtpbnNldDowO3BhZGRpbmc6MjRweDttYXJnaW46YXV0bztib3JkZXItc3R5bGU6bm9uZTtvdmVyZmxvdzp1bnNldDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzWExhcmdlKTtkaXNwbGF5OmJsb2NrOy13ZWJraXQtdXNlci1zZWxlY3Q6dW5zZXQ7LW1vei11c2VyLXNlbGVjdDp1bnNldDt1c2VyLXNlbGVjdDp1bnNldDt2aXNpYmlsaXR5OnVuc2V0O3Bvc2l0aW9uOmZpeGVkO2hlaWdodDpmaXQtY29udGVudDttYXgtd2lkdGg6NjAwcHg7bWF4LWhlaWdodDoxMDB2aDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDEpO31cIiwgXCIucjFzdmpidHQ6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIiwgXCIucjFzdmpidHQ6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMXN2amJ0dFtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIucjFzdmpidHRbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjE7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO3RvcDpjYWxjKDJweCAqIC0xKTtyaWdodDpjYWxjKDJweCAqIC0xKTtib3R0b206Y2FsYygycHggKiAtMSk7bGVmdDpjYWxjKDJweCAqIC0xKTt9XCIsIFwiLnIxMzF5dW9xe2luc2V0OjA7cGFkZGluZzoyNHB4O21hcmdpbjphdXRvO2JvcmRlci1zdHlsZTpub25lO292ZXJmbG93OnVuc2V0O2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNYTGFyZ2UpO2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC11c2VyLXNlbGVjdDp1bnNldDstbW96LXVzZXItc2VsZWN0OnVuc2V0O3VzZXItc2VsZWN0OnVuc2V0O3Zpc2liaWxpdHk6dW5zZXQ7cG9zaXRpb246Zml4ZWQ7aGVpZ2h0OmZpdC1jb250ZW50O21heC13aWR0aDo2MDBweDttYXgtaGVpZ2h0OjEwMHZoO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiLCBcIi5yMTMxeXVvcTpmb2N1c3tvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMTMxeXVvcTpmb2N1cy12aXNpYmxle291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnIxMzF5dW9xW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5yMTMxeXVvcVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Y29udGVudDpcXFwiXFxcIjtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7dG9wOmNhbGMoMnB4ICogLTEpO2xlZnQ6Y2FsYygycHggKiAtMSk7Ym90dG9tOmNhbGMoMnB4ICogLTEpO3JpZ2h0OmNhbGMoMnB4ICogLTEpO31cIl0sXG4gIHM6IFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsucjFzdmpidHRbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2JvcmRlci10b3AtY29sb3I6SGlnaGxpZ2h0O2JvcmRlci1yaWdodC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWxlZnQtY29sb3I6SGlnaGxpZ2h0O319XCIsIFwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpey5yMXN2amJ0dHttYXgtd2lkdGg6MTAwdnc7fX1cIiwgXCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzU5cHgpey5yMXN2amJ0dHtvdmVyZmxvdy15OmF1dG87cGFkZGluZy1yaWdodDpjYWxjKDI0cHggLSA0cHgpO2JvcmRlci1yaWdodC13aWR0aDo0cHg7Ym9yZGVyLXRvcC13aWR0aDo0cHg7Ym9yZGVyLWJvdHRvbS13aWR0aDo0cHg7fX1cIiwgXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LnIxMzF5dW9xW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDtib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCBcIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KXsucjEzMXl1b3F7bWF4LXdpZHRoOjEwMHZ3O319XCIsIFwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDM1OXB4KXsucjEzMXl1b3F7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmctbGVmdDpjYWxjKDI0cHggLSA0cHgpO2JvcmRlci1sZWZ0LXdpZHRoOjRweDtib3JkZXItdG9wLXdpZHRoOjRweDtib3JkZXItYm90dG9tLXdpZHRoOjRweDt9fVwiXVxufSk7XG5jb25zdCB1c2VCYWNrZHJvcEJhc2VTdHlsZSA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicnNwdGxoNVwiLCBudWxsLCBbXCIucnNwdGxoNXtpbnNldDowcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNCk7cG9zaXRpb246Zml4ZWQ7fVwiXSk7XG5jb25zdCB1c2VCYWNrZHJvcFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIG5lc3RlZERpYWxvZ0JhY2tkcm9wOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIERpYWxvZ1N1cmZhY2Ugc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VEaWFsb2dTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHtcbiAgICBpc05lc3RlZERpYWxvZyxcbiAgICByb290LFxuICAgIGJhY2tkcm9wXG4gIH0gPSBzdGF0ZTtcbiAgY29uc3Qgcm9vdEJhc2VTdHlsZSA9IHVzZVJvb3RCYXNlU3R5bGUoKTtcbiAgY29uc3QgYmFja2Ryb3BCYXNlU3R5bGUgPSB1c2VCYWNrZHJvcEJhc2VTdHlsZSgpO1xuICBjb25zdCBiYWNrZHJvcFN0eWxlcyA9IHVzZUJhY2tkcm9wU3R5bGVzKCk7XG4gIHJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGRpYWxvZ1N1cmZhY2VDbGFzc05hbWVzLnJvb3QsIHJvb3RCYXNlU3R5bGUsIHJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKGJhY2tkcm9wKSB7XG4gICAgYmFja2Ryb3AuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGRpYWxvZ1N1cmZhY2VDbGFzc05hbWVzLmJhY2tkcm9wLCBiYWNrZHJvcEJhc2VTdHlsZSwgaXNOZXN0ZWREaWFsb2cgJiYgYmFja2Ryb3BTdHlsZXMubmVzdGVkRGlhbG9nQmFja2Ryb3AsIGJhY2tkcm9wLmNsYXNzTmFtZSk7XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURpYWxvZ1N1cmZhY2VTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImV4cG9ydCBmdW5jdGlvbiB1c2VEaWFsb2dTdXJmYWNlQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSkge1xuICAgIGNvbnN0IGRpYWxvZ1N1cmZhY2UgPSB0cnVlO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRpYWxvZ1N1cmZhY2VcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlhbG9nU3VyZmFjZV91bnN0YWJsZSB9IGZyb20gJy4vdXNlRGlhbG9nU3VyZmFjZSc7XG5pbXBvcnQgeyByZW5kZXJEaWFsb2dTdXJmYWNlX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJEaWFsb2dTdXJmYWNlJztcbmltcG9ydCB7IHVzZURpYWxvZ1N1cmZhY2VTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZURpYWxvZ1N1cmZhY2VTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZURpYWxvZ1N1cmZhY2VDb250ZXh0VmFsdWVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VEaWFsb2dTdXJmYWNlQ29udGV4dFZhbHVlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogRGlhbG9nU3VyZmFjZSBjb21wb25lbnQgcmVwcmVzZW50cyB0aGUgdmlzdWFsIHBhcnQgb2YgYSBgRGlhbG9nYCBhcyBhIHdob2xlLFxuICogaXQgY29udGFpbnMgZXZlcnl0aGluZyB0aGF0IHNob3VsZCBiZSB2aXNpYmxlLlxuICovIGV4cG9ydCBjb25zdCBEaWFsb2dTdXJmYWNlID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlRGlhbG9nU3VyZmFjZV91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gdXNlRGlhbG9nU3VyZmFjZUNvbnRleHRWYWx1ZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZURpYWxvZ1N1cmZhY2VTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlRGlhbG9nU3VyZmFjZVN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyRGlhbG9nU3VyZmFjZV91bnN0YWJsZShzdGF0ZSwgY29udGV4dFZhbHVlcyk7XG59KTtcbkRpYWxvZ1N1cmZhY2UuZGlzcGxheU5hbWUgPSAnRGlhbG9nU3VyZmFjZSc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgRGlhbG9nQm9keS5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VEaWFsb2dCb2R5U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJEaWFsb2dCb2R5X3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBEaWFsb2dCb2R5XG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgRGlhbG9nQm9keVxuICovIGV4cG9ydCBjb25zdCB1c2VEaWFsb2dDb250ZW50X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgdmFyIF9wcm9wc19hcztcbiAgICByZXR1cm4ge1xuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnZGl2J1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoKF9wcm9wc19hcyA9IHByb3BzLmFzKSAhPT0gbnVsbCAmJiBfcHJvcHNfYXMgIT09IHZvaWQgMCA/IF9wcm9wc19hcyA6ICdkaXYnLCB7XG4gICAgICAgICAgICAvLyBGSVhNRTpcbiAgICAgICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSlcbiAgICB9O1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBEaWFsb2dDb250ZW50XG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlckRpYWxvZ0NvbnRlbnRfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fcmVzZXRTdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHRva2VucywgdHlwb2dyYXBoeVN0eWxlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBNRURJQV9RVUVSWV9TSE9SVF9TQ1JFRU4gfSBmcm9tICcuLi8uLi9jb250ZXh0cyc7XG5leHBvcnQgY29uc3QgZGlhbG9nQ29udGVudENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktRGlhbG9nQ29udGVudCdcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxdjV6d3NtXCIsIG51bGwsIHtcbiAgcjogW1wiLnIxdjV6d3Nte3BhZGRpbmc6dmFyKC0tc3Ryb2tlV2lkdGhUaGljayk7bWFyZ2luOmNhbGModmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgKiAtMSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7b3ZlcmZsb3cteTphdXRvO21pbi1oZWlnaHQ6MzJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Z3JpZC1yb3ctc3RhcnQ6MjtncmlkLXJvdy1lbmQ6MjtncmlkLWNvbHVtbi1zdGFydDoxO2dyaWQtY29sdW1uLWVuZDo0O31cIl0sXG4gIHM6IFtcIkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzNTlweCl7LnIxdjV6d3Nte292ZXJmbG93LXk6dW5zZXQ7fX1cIl1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBEaWFsb2dDb250ZW50IHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlRGlhbG9nQ29udGVudFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoZGlhbG9nQ29udGVudENsYXNzTmFtZXMucm9vdCwgc3R5bGVzLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VEaWFsb2dDb250ZW50U3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaWFsb2dDb250ZW50X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VEaWFsb2dDb250ZW50JztcbmltcG9ydCB7IHJlbmRlckRpYWxvZ0NvbnRlbnRfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlckRpYWxvZ0NvbnRlbnQnO1xuaW1wb3J0IHsgdXNlRGlhbG9nQ29udGVudFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlRGlhbG9nQ29udGVudFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIFRoZSBgRGlhbG9nQ29udGVudGAgaXMgYSBjb250YWluZXIgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhlIGRpYWxvZyBpcyByZW5kZXJlZC5cbiAqIEFwYXJ0IGZyb20gc3R5bGluZywgdGhpcyBjb21wb25lbnQgZG9lcyBub3QgaGF2ZSBvdGhlciBiZWhhdmlvci5cbiAqLyBleHBvcnQgY29uc3QgRGlhbG9nQ29udGVudCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZURpYWxvZ0NvbnRlbnRfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlRGlhbG9nQ29udGVudFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VEaWFsb2dDb250ZW50U3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJEaWFsb2dDb250ZW50X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuRGlhbG9nQ29udGVudC5kaXNwbGF5TmFtZSA9ICdEaWFsb2dDb250ZW50JztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIHVzZVNlbGVjdGlvbiB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuY29uc3Qgbm9vcCA9ICgpPT51bmRlZmluZWQ7XG5leHBvcnQgY29uc3QgZGVmYXVsdFRhYmxlU2VsZWN0aW9uU3RhdGUgPSB7XG4gICAgYWxsUm93c1NlbGVjdGVkOiBmYWxzZSxcbiAgICBjbGVhclJvd3M6IG5vb3AsXG4gICAgZGVzZWxlY3RSb3c6IG5vb3AsXG4gICAgaXNSb3dTZWxlY3RlZDogKCk9PmZhbHNlLFxuICAgIHNlbGVjdFJvdzogbm9vcCxcbiAgICBzZWxlY3RlZFJvd3M6IG5ldyBTZXQoKSxcbiAgICBzb21lUm93c1NlbGVjdGVkOiBmYWxzZSxcbiAgICB0b2dnbGVBbGxSb3dzOiBub29wLFxuICAgIHRvZ2dsZVJvdzogbm9vcCxcbiAgICBzZWxlY3Rpb25Nb2RlOiAnbXVsdGlzZWxlY3QnXG59O1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlU2VsZWN0aW9uKG9wdGlvbnMpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIC8vIEZhbHNlIHBvc2l0aXZlLCB0aGVzZSBwbHVnaW4gaG9va3MgYXJlIGludGVuZGVkIHRvIGJlIHJ1biBvbiBldmVyeSByZW5kZXJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICByZXR1cm4gKHRhYmxlU3RhdGUpPT51c2VUYWJsZVNlbGVjdGlvblN0YXRlKHRhYmxlU3RhdGUsIG9wdGlvbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlU2VsZWN0aW9uU3RhdGUodGFibGVTdGF0ZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgaXRlbXMsIGdldFJvd0lkIH0gPSB0YWJsZVN0YXRlO1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uTW9kZTogc2VsZWN0aW9uTW9kZSwgZGVmYXVsdFNlbGVjdGVkSXRlbXMsIHNlbGVjdGVkSXRlbXMsIG9uU2VsZWN0aW9uQ2hhbmdlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgc2VsZWN0aW9uTWV0aG9kc10gPSB1c2VTZWxlY3Rpb24oe1xuICAgICAgICBzZWxlY3Rpb25Nb2RlLFxuICAgICAgICBkZWZhdWx0U2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2VcbiAgICB9KTtcbiAgICAvLyBTZWxlY3Rpb24gc3RhdGUgY2FuIGNvbnRhaW4gb2JzZWxldGUgaXRlbXMgKGkuZS4gcm93cyB0aGF0IGFyZSByZW1vdmVkKVxuICAgIGNvbnN0IHNlbGVjdGFibGVSb3dJZHMgPSBSZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIGNvbnN0IHJvd0lkcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIHZhciBfZ2V0Um93SWQ7XG4gICAgICAgICAgICByb3dJZHMuYWRkKChfZ2V0Um93SWQgPSBnZXRSb3dJZCA9PT0gbnVsbCB8fCBnZXRSb3dJZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0Um93SWQoaXRlbXNbaV0pKSAhPT0gbnVsbCAmJiBfZ2V0Um93SWQgIT09IHZvaWQgMCA/IF9nZXRSb3dJZCA6IGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dJZHM7XG4gICAgfSwgW1xuICAgICAgICBpdGVtcyxcbiAgICAgICAgZ2V0Um93SWRcbiAgICBdKTtcbiAgICBjb25zdCBhbGxSb3dzU2VsZWN0ZWQgPSBSZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIGlmIChzZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRSb3cgPSBBcnJheS5mcm9tKHNlbGVjdGVkKVswXTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RhYmxlUm93SWRzLmhhcyhzZWxlY3RlZFJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbXVsdGlzZWxlY3QgY2FzZVxuICAgICAgICBpZiAoc2VsZWN0ZWQuc2l6ZSA8IHNlbGVjdGFibGVSb3dJZHMuc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZWxlY3RhYmxlUm93SWRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzID0gdHJ1ZTtcbiAgICAgICAgc2VsZWN0YWJsZVJvd0lkcy5mb3JFYWNoKChzZWxlY3RhYmxlUm93SWQpPT57XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkLmhhcyhzZWxlY3RhYmxlUm93SWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH0sIFtcbiAgICAgICAgc2VsZWN0YWJsZVJvd0lkcyxcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIHNlbGVjdGlvbk1vZGVcbiAgICBdKTtcbiAgICBjb25zdCBzb21lUm93c1NlbGVjdGVkID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBpZiAoc2VsZWN0ZWQuc2l6ZSA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlcyA9IGZhbHNlO1xuICAgICAgICBzZWxlY3RhYmxlUm93SWRzLmZvckVhY2goKHNlbGVjdGFibGVSb3dJZCk9PntcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZC5oYXMoc2VsZWN0YWJsZVJvd0lkKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH0sIFtcbiAgICAgICAgc2VsZWN0YWJsZVJvd0lkcyxcbiAgICAgICAgc2VsZWN0ZWRcbiAgICBdKTtcbiAgICBjb25zdCB0b2dnbGVBbGxSb3dzID0gdXNlRXZlbnRDYWxsYmFjaygoZSk9PntcbiAgICAgICAgc2VsZWN0aW9uTWV0aG9kcy50b2dnbGVBbGxJdGVtcyhlLCBpdGVtcy5tYXAoKGl0ZW0sIGkpPT57XG4gICAgICAgICAgICB2YXIgX2dldFJvd0lkO1xuICAgICAgICAgICAgcmV0dXJuIChfZ2V0Um93SWQgPSBnZXRSb3dJZCA9PT0gbnVsbCB8fCBnZXRSb3dJZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0Um93SWQoaXRlbSkpICE9PSBudWxsICYmIF9nZXRSb3dJZCAhPT0gdm9pZCAwID8gX2dldFJvd0lkIDogaTtcbiAgICAgICAgfSkpO1xuICAgIH0pO1xuICAgIGNvbnN0IHRvZ2dsZVJvdyA9IHVzZUV2ZW50Q2FsbGJhY2soKGUsIHJvd0lkKT0+c2VsZWN0aW9uTWV0aG9kcy50b2dnbGVJdGVtKGUsIHJvd0lkKSk7XG4gICAgY29uc3QgZGVzZWxlY3RSb3cgPSB1c2VFdmVudENhbGxiYWNrKChlLCByb3dJZCk9PnNlbGVjdGlvbk1ldGhvZHMuZGVzZWxlY3RJdGVtKGUsIHJvd0lkKSk7XG4gICAgY29uc3Qgc2VsZWN0Um93ID0gdXNlRXZlbnRDYWxsYmFjaygoZSwgcm93SWQpPT5zZWxlY3Rpb25NZXRob2RzLnNlbGVjdEl0ZW0oZSwgcm93SWQpKTtcbiAgICBjb25zdCBpc1Jvd1NlbGVjdGVkID0gKHJvd0lkKT0+c2VsZWN0aW9uTWV0aG9kcy5pc1NlbGVjdGVkKHJvd0lkKTtcbiAgICBjb25zdCBjbGVhclJvd3MgPSB1c2VFdmVudENhbGxiYWNrKChlKT0+c2VsZWN0aW9uTWV0aG9kcy5jbGVhckl0ZW1zKGUpKTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi50YWJsZVN0YXRlLFxuICAgICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGUsXG4gICAgICAgICAgICBzb21lUm93c1NlbGVjdGVkLFxuICAgICAgICAgICAgYWxsUm93c1NlbGVjdGVkLFxuICAgICAgICAgICAgc2VsZWN0ZWRSb3dzOiBzZWxlY3RlZCxcbiAgICAgICAgICAgIHRvZ2dsZVJvdyxcbiAgICAgICAgICAgIHRvZ2dsZUFsbFJvd3MsXG4gICAgICAgICAgICBjbGVhclJvd3MsXG4gICAgICAgICAgICBkZXNlbGVjdFJvdyxcbiAgICAgICAgICAgIHNlbGVjdFJvdyxcbiAgICAgICAgICAgIGlzUm93U2VsZWN0ZWRcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuY29uc3Qgbm9vcCA9ICgpPT51bmRlZmluZWQ7XG5leHBvcnQgY29uc3QgZGVmYXVsdFRhYmxlU29ydFN0YXRlID0ge1xuICAgIGdldFNvcnREaXJlY3Rpb246ICgpPT4nYXNjZW5kaW5nJyxcbiAgICBzZXRDb2x1bW5Tb3J0OiBub29wLFxuICAgIHNvcnQ6IChyb3dzKT0+W1xuICAgICAgICAgICAgLi4ucm93c1xuICAgICAgICBdLFxuICAgIHNvcnRDb2x1bW46IHVuZGVmaW5lZCxcbiAgICBzb3J0RGlyZWN0aW9uOiAnYXNjZW5kaW5nJyxcbiAgICB0b2dnbGVDb2x1bW5Tb3J0OiBub29wXG59O1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlU29ydChvcHRpb25zKSB7XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICAvLyBGYWxzZSBwb3NpdGl2ZSwgdGhlc2UgcGx1Z2luIGhvb2tzIGFyZSBpbnRlbmRlZCB0byBiZSBydW4gb24gZXZlcnkgcmVuZGVyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgcmV0dXJuICh0YWJsZVN0YXRlKT0+dXNlVGFibGVTb3J0U3RhdGUodGFibGVTdGF0ZSwgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlVGFibGVTb3J0U3RhdGUodGFibGVTdGF0ZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgY29sdW1ucyB9ID0gdGFibGVTdGF0ZTtcbiAgICBjb25zdCB7IHNvcnRTdGF0ZSwgZGVmYXVsdFNvcnRTdGF0ZSwgb25Tb3J0Q2hhbmdlOiBvblNvcnRDaGFuZ2VQcm9wID0gbm9vcCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBbc29ydGVkLCBzZXRTb3J0ZWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgIHNvcnREaXJlY3Rpb246ICdhc2NlbmRpbmcnLFxuICAgICAgICAgICAgc29ydENvbHVtbjogdW5kZWZpbmVkXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRTdGF0ZTogZGVmYXVsdFNvcnRTdGF0ZSxcbiAgICAgICAgc3RhdGU6IHNvcnRTdGF0ZVxuICAgIH0pO1xuICAgIGNvbnN0IHsgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiB9ID0gc29ydGVkO1xuICAgIGNvbnN0IG9uU29ydENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2sob25Tb3J0Q2hhbmdlUHJvcCk7XG4gICAgY29uc3QgdG9nZ2xlQ29sdW1uU29ydCA9IFJlYWN0LnVzZUNhbGxiYWNrKChlLCBjb2x1bW5JZCk9PntcbiAgICAgICAgc2V0U29ydGVkKChzKT0+e1xuICAgICAgICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4ucyxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiBjb2x1bW5JZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChzLnNvcnRDb2x1bW4gPT09IGNvbHVtbklkKSB7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGUuc29ydERpcmVjdGlvbiA9IHMuc29ydERpcmVjdGlvbiA9PT0gJ2FzY2VuZGluZycgPyAnZGVzY2VuZGluZycgOiAnYXNjZW5kaW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGUuc29ydERpcmVjdGlvbiA9ICdhc2NlbmRpbmcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25Tb3J0Q2hhbmdlID09PSBudWxsIHx8IG9uU29ydENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Tb3J0Q2hhbmdlKGUsIG5ld1N0YXRlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBvblNvcnRDaGFuZ2UsXG4gICAgICAgIHNldFNvcnRlZFxuICAgIF0pO1xuICAgIGNvbnN0IHNldENvbHVtblNvcnQgPSAoZSwgbmV4dFNvcnRDb2x1bW4sIG5leHRTb3J0RGlyZWN0aW9uKT0+e1xuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgIHNvcnRDb2x1bW46IG5leHRTb3J0Q29sdW1uLFxuICAgICAgICAgICAgc29ydERpcmVjdGlvbjogbmV4dFNvcnREaXJlY3Rpb25cbiAgICAgICAgfTtcbiAgICAgICAgb25Tb3J0Q2hhbmdlID09PSBudWxsIHx8IG9uU29ydENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Tb3J0Q2hhbmdlKGUsIG5ld1N0YXRlKTtcbiAgICAgICAgc2V0U29ydGVkKG5ld1N0YXRlKTtcbiAgICB9O1xuICAgIGNvbnN0IHNvcnQgPSBSZWFjdC51c2VDYWxsYmFjaygocm93cyk9PntcbiAgICAgICAgcmV0dXJuIHJvd3Muc2xpY2UoKS5zb3J0KChhLCBiKT0+e1xuICAgICAgICAgICAgY29uc3Qgc29ydENvbHVtbkRlZiA9IGNvbHVtbnMuZmluZCgoY29sdW1uKT0+Y29sdW1uLmNvbHVtbklkID09PSBzb3J0Q29sdW1uKTtcbiAgICAgICAgICAgIGlmICghKHNvcnRDb2x1bW5EZWYgPT09IG51bGwgfHwgc29ydENvbHVtbkRlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc29ydENvbHVtbkRlZi5jb21wYXJlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbW9kID0gc29ydERpcmVjdGlvbiA9PT0gJ2FzY2VuZGluZycgPyAxIDogLTE7XG4gICAgICAgICAgICByZXR1cm4gc29ydENvbHVtbkRlZi5jb21wYXJlKGEuaXRlbSwgYi5pdGVtKSAqIG1vZDtcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBzb3J0Q29sdW1uLFxuICAgICAgICBzb3J0RGlyZWN0aW9uXG4gICAgXSk7XG4gICAgY29uc3QgZ2V0U29ydERpcmVjdGlvbiA9IChjb2x1bW5JZCk9PntcbiAgICAgICAgcmV0dXJuIHNvcnRDb2x1bW4gPT09IGNvbHVtbklkID8gc29ydERpcmVjdGlvbiA6IHVuZGVmaW5lZDtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnRhYmxlU3RhdGUsXG4gICAgICAgIHNvcnQ6IHtcbiAgICAgICAgICAgIHNvcnQsXG4gICAgICAgICAgICBzb3J0Q29sdW1uLFxuICAgICAgICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgICAgICAgIHNldENvbHVtblNvcnQsXG4gICAgICAgICAgICB0b2dnbGVDb2x1bW5Tb3J0LFxuICAgICAgICAgICAgZ2V0U29ydERpcmVjdGlvblxuICAgICAgICB9XG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgdXNlRXZlbnRDYWxsYmFjaywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBUYWJsZVJlc2l6ZUhhbmRsZS5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VUYWJsZVJlc2l6ZUhhbmRsZVN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyVGFibGVSZXNpemVIYW5kbGVfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFRhYmxlUmVzaXplSGFuZGxlXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgVGFibGVSZXNpemVIYW5kbGVcbiAqLyBleHBvcnQgY29uc3QgdXNlVGFibGVSZXNpemVIYW5kbGVfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBvbkNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpPT57XG4gICAgICAgIHZhciBfcHJvcHNfb25DbGljaztcbiAgICAgICAgKF9wcm9wc19vbkNsaWNrID0gcHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX3Byb3BzX29uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbkNsaWNrLmNhbGwocHJvcHMsIGV2ZW50KTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICAvLyBGSVhNRTpcbiAgICAgICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgb25DbGlja1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGFibGVSZXNpemVIYW5kbGVcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyVGFibGVSZXNpemVIYW5kbGVfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IHRhYmxlUmVzaXplSGFuZGxlQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UYWJsZVJlc2l6ZUhhbmRsZSdcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgcWhmOHhxOiBcImYxZXV2NDNmXCIsXG4gICAgajM1amJxOiBbXCJmMWUzMWI0ZFwiLCBcImYxdmdjMnMzXCJdLFxuICAgIEJoemV3eHo6IFwiZjE1dHd0dWtcIixcbiAgICBCNWt6dm9pOiBcImYxeWFiM3IxXCIsXG4gICAgYTliNjc3OiBcImZqdzVmeDdcIixcbiAgICBqcmFwa3k6IDAsXG4gICAgRnJnNmYzOiAwLFxuICAgIHQyMWNxMDogMCxcbiAgICBCNm9mM2phOiAwLFxuICAgIEI3NHN6bGs6IFwiZmcwNm8xalwiLFxuICAgIEJjZWVpOWM6IFwiZmMzZW4xY1wiLFxuICAgIGFiczY0bjogXCJmazczdngxXCIsXG4gICAgQm15MXZvNDogXCJmMTN1MXV5bFwiLFxuICAgIEIzbzU3eWk6IFwiZmV6cXVpY1wiLFxuICAgIEJqM3JoMWg6IFwiZjE5ZzBhY1wiLFxuICAgIEIzY25hMHk6IFwiZjF0a2FlNTlcIixcbiAgICBCcm92bHB1OiBcImZ0cWE0b2tcIixcbiAgICBCN3p1NXNkOiBcImYxNXBqb2R2XCIsXG4gICAgQnM2dDZ6MDogXCJmdGdyYjVmXCIsXG4gICAgRmR2eWpkOiBcImYyZGY2anNcIixcbiAgICBCaW9idnZ3OiBcImZzaHNyeWJcIixcbiAgICBIZGJqcGo6IFwiZjExZWY2OVwiLFxuICAgIGpjNTF0NjogW1wiZjEybGIxZHhcIiwgXCJmMTN0Ynhlb1wiXSxcbiAgICB1NmQyNTogXCJmdTR1bHNlXCIsXG4gICAgQmo1NXl6azogXCJmdzJ3c3FzXCIsXG4gICAgQmtid2R6NDogXCJmMXN3em43eVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxZXV2NDNme3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjFlMzFiNGR7cmlnaHQ6MDt9XCIsIFwiLmYxdmdjMnMze2xlZnQ6MDt9XCIsIFwiLmYxNXR3dHVre3RvcDowO31cIiwgXCIuZjF5YWIzcjF7Ym90dG9tOjA7fVwiLCBcIi5manc1Zng3e3dpZHRoOjE2cHg7fVwiLCBbXCIuZmcwNm8xanttYXJnaW46MCAtOHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mYzNlbjFje2N1cnNvcjpjb2wtcmVzaXplO31cIiwgXCIuZms3M3Z4MXtvcGFjaXR5OjA7fVwiLCBcIi5mMTN1MXV5bHt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7fVwiLCBcIi5mZXpxdWlje3RyYW5zaXRpb24tZHVyYXRpb246LjJzO31cIiwgXCIuZjE5ZzBhY3t6LWluZGV4OjE7fVwiLCBcIi5mdGdyYjVmOmFmdGVye2NvbnRlbnQ6XFxcIiBcXFwiO31cIiwgXCIuZjJkZjZqczphZnRlcntkaXNwbGF5OmJsb2NrO31cIiwgXCIuZnNoc3J5YjphZnRlcnt3aWR0aDoxcHg7fVwiLCBcIi5mMTFlZjY5OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjEybGIxZHg6YWZ0ZXJ7bGVmdDo1MCU7fVwiLCBcIi5mMTN0YnhlbzphZnRlcntyaWdodDo1MCU7fVwiLCBcIi5mdTR1bHNlOmFmdGVye3RvcDowO31cIiwgXCIuZncyd3NxczphZnRlcntib3R0b206MDt9XCIsIFwiLmYxc3d6bjd5OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7fVwiXSxcbiAgZjogW1wiLmYxdGthZTU5OmZvY3Vze29wYWNpdHk6MTt9XCIsIFwiLmZ0cWE0b2s6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIl0sXG4gIGg6IFtcIi5mMTVwam9kdjpob3ZlcntvcGFjaXR5OjE7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRhYmxlUmVzaXplSGFuZGxlIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVGFibGVSZXNpemVIYW5kbGVTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlUmVzaXplSGFuZGxlQ2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGFibGVSZXNpemVIYW5kbGVTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRhYmxlUmVzaXplSGFuZGxlX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUYWJsZVJlc2l6ZUhhbmRsZSc7XG5pbXBvcnQgeyByZW5kZXJUYWJsZVJlc2l6ZUhhbmRsZV91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVGFibGVSZXNpemVIYW5kbGUnO1xuaW1wb3J0IHsgdXNlVGFibGVSZXNpemVIYW5kbGVTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlUmVzaXplSGFuZGxlU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogVGFibGVSZXNpemVIYW5kbGUgY29tcG9uZW50IC0gVE9ETzogYWRkIG1vcmUgZG9jc1xuICovIGV4cG9ydCBjb25zdCBUYWJsZVJlc2l6ZUhhbmRsZSA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRhYmxlUmVzaXplSGFuZGxlX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRhYmxlUmVzaXplSGFuZGxlU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZVRhYmxlUmVzaXplSGFuZGxlU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJUYWJsZVJlc2l6ZUhhbmRsZV91bnN0YWJsZShzdGF0ZSk7XG59KTtcblRhYmxlUmVzaXplSGFuZGxlLmRpc3BsYXlOYW1lID0gJ1RhYmxlUmVzaXplSGFuZGxlJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogUHJvdmlkZXMgYSB3YXkgb2YgcmVwb3J0aW5nIGVsZW1lbnQgd2lkdGguXG4gKiBSZXR1cm5zXG4gKiBgd2lkdGhgIC0gY3VycmVudCBlbGVtZW50IHdpZHRoICgwIGJ5IGRlZmF1bHQpLFxuICogYG1lYXN1cmVFbGVtZW50UmVmYCAtIGEgcmVmIGZ1bmN0aW9uIHRvIGJlIHBhc3NlZCBhcyBgcmVmYCB0byB0aGUgZWxlbWVudCB5b3Ugd2FudCB0byBtZWFzdXJlXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZU1lYXN1cmVFbGVtZW50KCkge1xuICAgIGNvbnN0IFt3aWR0aCwgc2V0V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gUmVhY3QudXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgLy8gVE9ETzogZXhjbHVkZSB0eXBlcyBmcm9tIHRoaXMgbGludCBydWxlOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8zMTI4NlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICBjb25zdCByZXNpemVPYnNlcnZlclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICAvLyB0aGUgaGFuZGxlciBmb3IgcmVzaXplIG9ic2VydmVyXG4gICAgY29uc3QgaGFuZGxlUmVzaXplID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgdmFyIF9jb250YWluZXJfY3VycmVudDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSAoX2NvbnRhaW5lcl9jdXJyZW50ID0gY29udGFpbmVyLmN1cnJlbnQpID09PSBudWxsIHx8IF9jb250YWluZXJfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2NvbnRhaW5lcl9jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBzZXRXaWR0aChjb250YWluZXJXaWR0aCB8fCAwKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgbWVhc3VyZUVsZW1lbnRSZWYgPSBSZWFjdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIGlmICghdGFyZ2V0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgZWxlbWVudCBpcyByZW1vdmVkLCBzdG9wIG9ic2VydmluZyBpdFxuICAgICAgICBpZiAoIWVsICYmIHJlc2l6ZU9ic2VydmVyUmVmLmN1cnJlbnQgJiYgY29udGFpbmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJlc2l6ZU9ic2VydmVyUmVmLmN1cnJlbnQudW5vYnNlcnZlKGNvbnRhaW5lci5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGVsID09PSBudWxsIHx8IGVsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICBjb250YWluZXIuY3VycmVudCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICBoYW5kbGVSZXNpemUoKTtcbiAgICAgICAgICAgIChfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudCA9IHJlc2l6ZU9ic2VydmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlclJlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudC5vYnNlcnZlKGNvbnRhaW5lci5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnQsXG4gICAgICAgIGhhbmRsZVJlc2l6ZVxuICAgIF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICByZXNpemVPYnNlcnZlclJlZi5jdXJyZW50ID0gY3JlYXRlUmVzaXplT2JzZXJ2ZXJGcm9tRG9jdW1lbnQodGFyZ2V0RG9jdW1lbnQsIGhhbmRsZVJlc2l6ZSk7XG4gICAgICAgIGlmICghY29udGFpbmVyLmN1cnJlbnQgfHwgIXJlc2l6ZU9ic2VydmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXNpemVPYnNlcnZlclJlZi5jdXJyZW50Lm9ic2VydmUoY29udGFpbmVyLmN1cnJlbnQpO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIHZhciBfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudDtcbiAgICAgICAgICAgIChfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudCA9IHJlc2l6ZU9ic2VydmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlclJlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudC5kaXNjb25uZWN0KCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBoYW5kbGVSZXNpemUsXG4gICAgICAgIHRhcmdldERvY3VtZW50XG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1lYXN1cmVFbGVtZW50UmVmXG4gICAgfTtcbn1cbi8qKlxuICogRklYTUUgLSBUUyAzLjgvMy45IGRvbid0IGhhdmUgUmVzaXplT2JzZXJ2ZXIgdHlwZXMgYnkgZGVmYXVsdCwgbW92ZSB0aGlzIHRvIGEgc2hhcmVkIHV0aWxpdHkgb25jZSB3ZSBidW1wIHRoZSBtaW5iYXJcbiAqIEEgdXRpbGl0eSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgUmVzaXplT2JzZXJ2ZXIgZnJvbSBhIHRhcmdldCBkb2N1bWVudFxuICogQHBhcmFtIHRhcmdldERvY3VtZW50IC0gZG9jdW1lbnQgdG8gdXNlIHRvIGNyZWF0ZSB0aGUgUmVzaXplT2JzZXJ2ZXJcbiAqIEBwYXJhbSBjYWxsYmFjayAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVzaXplT2JzZXJ2ZXIvUmVzaXplT2JzZXJ2ZXIjY2FsbGJhY2tcbiAqIEByZXR1cm5zIGEgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugb3IgbnVsbCBpZiB0aGUgZ2xvYmFsIGRvZXMgbm90IGV4aXN0IG9uIHRoZSBkb2N1bWVudFxuICovIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXNpemVPYnNlcnZlckZyb21Eb2N1bWVudCh0YXJnZXREb2N1bWVudCwgY2FsbGJhY2spIHtcbiAgICB2YXIgX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3O1xuICAgIGlmICghKHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3ID0gdGFyZ2V0RG9jdW1lbnQuZGVmYXVsdFZpZXcpID09PSBudWxsIHx8IF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RhcmdldERvY3VtZW50X2RlZmF1bHRWaWV3LlJlc2l6ZU9ic2VydmVyKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyB0YXJnZXREb2N1bWVudC5kZWZhdWx0Vmlldy5SZXNpemVPYnNlcnZlcihjYWxsYmFjayk7XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyBnZXRFdmVudENsaWVudENvb3JkcywgaXNNb3VzZUV2ZW50LCBpc1RvdWNoRXZlbnQsIHVzZUFuaW1hdGlvbkZyYW1lIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5leHBvcnQgZnVuY3Rpb24gdXNlVGFibGVDb2x1bW5SZXNpemVNb3VzZUhhbmRsZXIoY29sdW1uUmVzaXplU3RhdGUpIHtcbiAgICBjb25zdCBtb3VzZVggPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgY29uc3QgY3VycmVudFdpZHRoID0gUmVhY3QudXNlUmVmKDApO1xuICAgIGNvbnN0IGNvbElkID0gUmVhY3QudXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgY29uc3QgW2RyYWdnaW5nLCBzZXREcmFnZ2luZ10gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3QgeyBnZXRDb2x1bW5XaWR0aCwgc2V0Q29sdW1uV2lkdGggfSA9IGNvbHVtblJlc2l6ZVN0YXRlO1xuICAgIGNvbnN0IHJlY2FsY3VsYXRlUG9zaXRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoZSk9PntcbiAgICAgICAgY29uc3QgeyBjbGllbnRYIH0gPSBnZXRFdmVudENsaWVudENvb3JkcyhlKTtcbiAgICAgICAgY29uc3QgZHggPSBjbGllbnRYIC0gbW91c2VYLmN1cnJlbnQ7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgbG9jYWwgd2lkdGggZm9yIHRoZSBjb2x1bW4gYW5kIHNldCBpdFxuICAgICAgICBjdXJyZW50V2lkdGguY3VycmVudCArPSBkeDtcbiAgICAgICAgY29sSWQuY3VycmVudCAmJiBzZXRDb2x1bW5XaWR0aChlLCB7XG4gICAgICAgICAgICBjb2x1bW5JZDogY29sSWQuY3VycmVudCxcbiAgICAgICAgICAgIHdpZHRoOiBjdXJyZW50V2lkdGguY3VycmVudFxuICAgICAgICB9KTtcbiAgICAgICAgbW91c2VYLmN1cnJlbnQgPSBjbGllbnRYO1xuICAgIH0sIFtcbiAgICAgICAgc2V0Q29sdW1uV2lkdGhcbiAgICBdKTtcbiAgICBjb25zdCBbcmVxdWVzdFJlY2FsY0ZyYW1lXSA9IHVzZUFuaW1hdGlvbkZyYW1lKCk7XG4gICAgY29uc3Qgb25EcmFnID0gUmVhY3QudXNlQ2FsbGJhY2soKGUpPT57XG4gICAgICAgIC8vIFVzaW5nIHJlcXVlc3RBbmltYXRpb25GcmFtZSBoZXJlIGRyYXN0aWNhbGx5IGltcHJvdmVzIHJlc2l6aW5nIGV4cGVyaWVuY2Ugb24gc2xvd2VyIENQVXNcbiAgICAgICAgcmVxdWVzdFJlY2FsY0ZyYW1lKCgpPT5yZWNhbGN1bGF0ZVBvc2l0aW9uKGUpKTtcbiAgICB9LCBbXG4gICAgICAgIHJlcXVlc3RSZWNhbGNGcmFtZSxcbiAgICAgICAgcmVjYWxjdWxhdGVQb3NpdGlvblxuICAgIF0pO1xuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgaWYgKGlzTW91c2VFdmVudChldmVudCkpIHtcbiAgICAgICAgICAgIHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25EcmFnRW5kKTtcbiAgICAgICAgICAgIHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbkRyYWcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICB0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbkRyYWdFbmQpO1xuICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uRHJhZyk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0RHJhZ2dpbmcoZmFsc2UpO1xuICAgIH0sIFtcbiAgICAgICAgb25EcmFnLFxuICAgICAgICB0YXJnZXREb2N1bWVudFxuICAgIF0pO1xuICAgIGNvbnN0IGdldE9uTW91c2VEb3duID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbHVtbklkKT0+KGV2ZW50KT0+e1xuICAgICAgICAgICAgLy8gS2VlcCB0aGUgd2lkdGggbG9jYWxseSBzbyB0aGF0IHdlIGRlY291cGxlIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbmV4dCB3aXRoIGZyb20gcmVuZGVyaW5nLlxuICAgICAgICAgICAgLy8gVGhpcyBtYWtlcyB0aGUgd2hvbGUgZXhwZXJpZW5jZSBtdWNoIGZhc3RlciBhbmQgbW9yZSBwcmVjaXNlXG4gICAgICAgICAgICBjdXJyZW50V2lkdGguY3VycmVudCA9IGdldENvbHVtbldpZHRoKGNvbHVtbklkKTtcbiAgICAgICAgICAgIG1vdXNlWC5jdXJyZW50ID0gZ2V0RXZlbnRDbGllbnRDb29yZHMoZXZlbnQpLmNsaWVudFg7XG4gICAgICAgICAgICBjb2xJZC5jdXJyZW50ID0gY29sdW1uSWQ7XG4gICAgICAgICAgICBpZiAoaXNNb3VzZUV2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBvdGhlciBidXR0b25zIHRoYW4gcHJpbWFyeSBtb3VzZSBidXR0b25cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0IHx8IGV2ZW50LmJ1dHRvbiAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25EcmFnRW5kKTtcbiAgICAgICAgICAgICAgICB0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25EcmFnKTtcbiAgICAgICAgICAgICAgICBzZXREcmFnZ2luZyh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgb25EcmFnRW5kKTtcbiAgICAgICAgICAgICAgICB0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25EcmFnKTtcbiAgICAgICAgICAgICAgICBzZXREcmFnZ2luZyh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW1xuICAgICAgICBnZXRDb2x1bW5XaWR0aCxcbiAgICAgICAgb25EcmFnLFxuICAgICAgICBvbkRyYWdFbmQsXG4gICAgICAgIHRhcmdldERvY3VtZW50XG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ2V0T25Nb3VzZURvd24sXG4gICAgICAgIGRyYWdnaW5nXG4gICAgfTtcbn1cbiIsImNvbnN0IERFRkFVTFRfV0lEVEggPSAxNTA7XG5jb25zdCBERUZBVUxUX01JTl9XSURUSCA9IDEwMDtcbi8qKlxuICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgY29sdW1uIGRlZmluaXRpb25zIGFuZCB0aGUgY3VyZW50IENvbHVtbldpZHRoU3RhdGUgYW5kIHJldHVybnMgbmV3IHN0YXRlLlxuICogIC0gSXQgdXNlcyBleGlzdGluZyBzdGF0ZSBmb3IgZXhpc3RpbmcgY29sdW1ucy5cbiAqICAtIEl0IHJlbW92ZXMgYW55IHN0YXRlIGZvciBjb2x1bW5zIG5vIGxvbmdlciBwcmVzZW50LlxuICogIC0gSXQgY2hlY2tzIGlmIGFueSBjb2x1bW4gaGFzIGJlZW4gcmVwbGFjZWQgYW5kIHJldHVybnMgdXBkYXRlZCBzdGF0ZSBpZiBzb1xuICogIC0gSXQgcmV0dXJucyBvbGQgc3RhdGUgaWYgbm8gY2hhbmdlcyBpbiB0aGUgc3RhdGUgaGF2ZSBiZWVuIG1hZGUgKHNvIHRoYXQgcmVhY3QgZG9lc24ndCBjYWxsIGVmZmVjdHMpXG4gKiBAcGFyYW0gY29sdW1uc1xuICogQHBhcmFtIHN0YXRlXG4gKiBAcmV0dXJuc1xuICovIGV4cG9ydCBmdW5jdGlvbiBjb2x1bW5EZWZpbml0aW9uc1RvU3RhdGUoY29sdW1ucywgc3RhdGUgPSBbXSwgY29sdW1uU2l6aW5nT3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IHVwZGF0ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBzdGF0ZU1hcCA9IG5ldyBNYXAoc3RhdGUubWFwKChzKT0+W1xuICAgICAgICAgICAgcy5jb2x1bW5JZCxcbiAgICAgICAgICAgIHNcbiAgICAgICAgXSkpO1xuICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGNvbHVtbnMubWFwKChjb2x1bW4pPT57XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nQ29sdW1uU3RhdGUgPSBzdGF0ZU1hcC5nZXQoY29sdW1uLmNvbHVtbklkKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nQ29sdW1uU3RhdGUpIHtcbiAgICAgICAgICAgIHZhciBfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQ7XG4gICAgICAgICAgICBjb25zdCB7IGlkZWFsV2lkdGggPSBleGlzdGluZ0NvbHVtblN0YXRlLmlkZWFsV2lkdGgsIG1pbldpZHRoID0gZXhpc3RpbmdDb2x1bW5TdGF0ZS5taW5XaWR0aCwgcGFkZGluZyA9IGV4aXN0aW5nQ29sdW1uU3RhdGUucGFkZGluZyB9ID0gKF9jb2x1bW5TaXppbmdPcHRpb25zX2NvbHVtbl9jb2x1bW5JZCA9IGNvbHVtblNpemluZ09wdGlvbnNbY29sdW1uLmNvbHVtbklkXSkgIT09IG51bGwgJiYgX2NvbHVtblNpemluZ09wdGlvbnNfY29sdW1uX2NvbHVtbklkICE9PSB2b2lkIDAgPyBfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQgOiB7fTtcbiAgICAgICAgICAgIGlmIChpZGVhbFdpZHRoICE9PSBleGlzdGluZ0NvbHVtblN0YXRlLmlkZWFsV2lkdGggfHwgbWluV2lkdGggIT09IGV4aXN0aW5nQ29sdW1uU3RhdGUubWluV2lkdGggfHwgcGFkZGluZyAhPT0gZXhpc3RpbmdDb2x1bW5TdGF0ZS5wYWRkaW5nKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZXhpc3RpbmdDb2x1bW5TdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaWRlYWxXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGlkZWFsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIG1pbldpZHRoLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBleGlzdGluZ0NvbHVtblN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQxO1xuICAgICAgICBjb25zdCB7IGRlZmF1bHRXaWR0aCwgaWRlYWxXaWR0aCA9IERFRkFVTFRfV0lEVEgsIG1pbldpZHRoID0gREVGQVVMVF9NSU5fV0lEVEgsIHBhZGRpbmcgfSA9IChfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQxID0gY29sdW1uU2l6aW5nT3B0aW9uc1tjb2x1bW4uY29sdW1uSWRdKSAhPT0gbnVsbCAmJiBfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQxICE9PSB2b2lkIDAgPyBfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQxIDoge307XG4gICAgICAgIHVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sdW1uSWQ6IGNvbHVtbi5jb2x1bW5JZCxcbiAgICAgICAgICAgIHdpZHRoOiBNYXRoLm1heChkZWZhdWx0V2lkdGggIT09IG51bGwgJiYgZGVmYXVsdFdpZHRoICE9PSB2b2lkIDAgPyBkZWZhdWx0V2lkdGggOiBpZGVhbFdpZHRoLCBtaW5XaWR0aCksXG4gICAgICAgICAgICBtaW5XaWR0aCxcbiAgICAgICAgICAgIGlkZWFsV2lkdGg6IE1hdGgubWF4KGRlZmF1bHRXaWR0aCAhPT0gbnVsbCAmJiBkZWZhdWx0V2lkdGggIT09IHZvaWQgMCA/IGRlZmF1bHRXaWR0aCA6IGlkZWFsV2lkdGgsIG1pbldpZHRoKSxcbiAgICAgICAgICAgIHBhZGRpbmc6IHBhZGRpbmcgIT09IG51bGwgJiYgcGFkZGluZyAhPT0gdm9pZCAwID8gcGFkZGluZyA6IDE2XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgLy8gSWYgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IHN0YXRlIGNoYW5nZWQgKGNvbHVtbiB3YXMgYWRkZWQgb3IgcmVtb3ZlZCkgb3IgYW55IG9mXG4gICAgLy8gdGhlIGluZGl2aWR1YWwgc3RhdGVzIGhhcyBhIG5ldyByZWZlcmVuY2UgKGNvbHVtbiB3YXMgcmVwbGFjZWQpLFxuICAgIC8vIHdlIGhhdmUgdG8gcmVzZXQgdGhlIGNvbHVtbiB3aWR0aHMgdG8gdGhlaXIgaWRlYWwgd2lkdGggKGJlY2F1c2UgdGhlIGNvbHVtbiB3aGljaCB3YXMgbGFzdCBtYXkgbm90IGJlIGxhc3Qgbm93KS5cbiAgICAvLyBUaGVuIHRoZSBhZGp1c3RDb2x1bW5XaWR0aHNUb0ZpdENvbnRhaW5lciBjYW4gZG8gaXRzIGpvYiBhbmQgcHJvcGVybHkgc3RyZXRjaCB0aGUgbGFzdCBjb2x1bW4uXG4gICAgaWYgKHVwZGF0ZWRTdGF0ZS5sZW5ndGggIT09IHN0YXRlLmxlbmd0aCB8fCB1cGRhdGVkKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHVwZGF0ZWRTdGF0ZS5maW5kKChjb2wpPT5jb2wud2lkdGggPiBjb2wuaWRlYWxXaWR0aCk7XG4gICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNvbHVtbi5pZGVhbFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdXBkYXRlZCA/IHVwZGF0ZWRTdGF0ZSA6IHN0YXRlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtbkJ5SWQoc3RhdGUsIGNvbHVtbklkKSB7XG4gICAgcmV0dXJuIHN0YXRlLmZpbmQoKGMpPT5jLmNvbHVtbklkID09PSBjb2x1bW5JZCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uQnlJbmRleChzdGF0ZSwgaW5kZXgpIHtcbiAgICByZXR1cm4gc3RhdGVbaW5kZXhdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvdGFsV2lkdGgoc3RhdGUpIHtcbiAgICByZXR1cm4gc3RhdGUucmVkdWNlKChzdW0sIGNvbHVtbik9PnN1bSArIGNvbHVtbi53aWR0aCArIGNvbHVtbi5wYWRkaW5nLCAwKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZW5ndGgoc3RhdGUpIHtcbiAgICByZXR1cm4gc3RhdGUubGVuZ3RoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtbldpZHRoKHN0YXRlLCBjb2x1bW5JZCkge1xuICAgIGNvbnN0IGNvbHVtbiA9IGdldENvbHVtbkJ5SWQoc3RhdGUsIGNvbHVtbklkKTtcbiAgICB2YXIgX2NvbHVtbl93aWR0aDtcbiAgICByZXR1cm4gKF9jb2x1bW5fd2lkdGggPSBjb2x1bW4gPT09IG51bGwgfHwgY29sdW1uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2x1bW4ud2lkdGgpICE9PSBudWxsICYmIF9jb2x1bW5fd2lkdGggIT09IHZvaWQgMCA/IF9jb2x1bW5fd2lkdGggOiAwO1xufVxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjdXJyZW50IHN0YXRlIGFuZCByZXR1cm5zIGFuIHVwZGF0ZWQgc3RhdGUsIHNvIHRoYXQgaXQgY2FuIGJlIHNldC5cbiAqIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB3ZSBjYW4gdXBkYXRlIHRoZSBzdGF0ZSBtdWx0aXBsZSB0aW1lcyBiZWZvcmUgY29tbWl0aW5nIHRvIHJlbmRlci5cbiAqIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIGFuZCBhbHNvIHByZXZlbnRzIGZsaWNrZXJpbmcuXG4gKiBJdCBhbHNvIHJldHVybnMgbmV3IGNvcHkgb2YgdGhlIHN0YXRlIG9ubHkgaWYgdGhlIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBvbmUgY3VycmVudGx5IGluXG4gKiB0aGUgc3RhdGUsIGZ1cnRoZXIgcHJldmVudGluZyB1bm5lY2Vzc2FyeSB1cGRhdGVzLlxuICogQHBhcmFtIGxvY2FsU3RhdGVcbiAqIEBwYXJhbSBjb2x1bW5JZFxuICogQHBhcmFtIHByb3BlcnR5XG4gKiBAcGFyYW0gdmFsdWVcbiAqIEByZXR1cm5zXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHNldENvbHVtblByb3BlcnR5KGxvY2FsU3RhdGUsIGNvbHVtbklkLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICBjb25zdCBjdXJyZW50Q29sdW1uID0gZ2V0Q29sdW1uQnlJZChsb2NhbFN0YXRlLCBjb2x1bW5JZCk7XG4gICAgaWYgKCFjdXJyZW50Q29sdW1uIHx8IChjdXJyZW50Q29sdW1uID09PSBudWxsIHx8IGN1cnJlbnRDb2x1bW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRDb2x1bW5bcHJvcGVydHldKSA9PT0gdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RhdGU7XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZWRDb2x1bW4gPSB7XG4gICAgICAgIC4uLmN1cnJlbnRDb2x1bW4sXG4gICAgICAgIFtwcm9wZXJ0eV06IHZhbHVlXG4gICAgfTtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IGxvY2FsU3RhdGUucmVkdWNlKChhY2MsIGN1cnJlbnQpPT57XG4gICAgICAgIGlmIChjdXJyZW50LmNvbHVtbklkID09PSB1cGRhdGVkQ29sdW1uLmNvbHVtbklkKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkQ29sdW1uXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICBjdXJyZW50XG4gICAgICAgIF07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBuZXdTdGF0ZTtcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgc3RhdGUgYW5kIGNvbnRhaW5lciB3aWR0aCBhbmQgbWFrZXMgc3VyZSB0aGUgZWFjaCBjb2x1bW4gaW4gdGhlIHN0YXRlXG4gKiBpcyBpdHMgb3B0aW1hbCB3aWR0aCwgYW5kIHRoYXQgdGhlIGNvbHVtbnNcbiAqIGEpIGZpdCB0byB0aGUgY29udGFpbmVyXG4gKiBiKSBhbHdheXMgZmlsbCB0aGUgd2hvbGUgY29udGFpbmVyXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBjb250YWluZXJXaWR0aFxuICogQHJldHVybnNcbiAqLyBleHBvcnQgZnVuY3Rpb24gYWRqdXN0Q29sdW1uV2lkdGhzVG9GaXRDb250YWluZXIoc3RhdGUsIGNvbnRhaW5lcldpZHRoKSB7XG4gICAgbGV0IG5ld1N0YXRlID0gc3RhdGU7XG4gICAgY29uc3QgdG90YWxXaWR0aCA9IGdldFRvdGFsV2lkdGgobmV3U3RhdGUpO1xuICAgIC8vIFRoZSB0b3RhbCB3aWR0aCBpcyBzbWFsbGVyLCB3ZSBhcmUgZXhwYW5kaW5nIGNvbHVtbnNcbiAgICBpZiAodG90YWxXaWR0aCA8IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgIGxldCBkaWZmZXJlbmNlID0gY29udGFpbmVyV2lkdGggLSB0b3RhbFdpZHRoO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIC8vIFdlIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGFzc2lnbiB0aGUgY29sdW1ucyB0aGVpciBpZGVhbCB3aWR0aFxuICAgICAgICB3aGlsZShpIDwgbmV3U3RhdGUubGVuZ3RoICYmIGRpZmZlcmVuY2UgPiAwKXtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb2wgPSBnZXRDb2x1bW5CeUluZGV4KG5ld1N0YXRlLCBpKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbEFkanVzdG1lbnQgPSBNYXRoLm1pbihjdXJyZW50Q29sLmlkZWFsV2lkdGggLSBjdXJyZW50Q29sLndpZHRoLCBkaWZmZXJlbmNlKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gc2V0Q29sdW1uUHJvcGVydHkobmV3U3RhdGUsIGN1cnJlbnRDb2wuY29sdW1uSWQsICd3aWR0aCcsIGN1cnJlbnRDb2wud2lkdGggKyBjb2xBZGp1c3RtZW50KTtcbiAgICAgICAgICAgIGRpZmZlcmVuY2UgLT0gY29sQWRqdXN0bWVudDtcbiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIHN0aWxsIGVtcHR5IHNwYWNlLCBhZnRlciBhbGwgY29sdW1ucyBhcmUgdGhlaXIgaWRlYWwgc2l6ZXMsIGFzc2lnbiBpdCB0byB0aGUgbGFzdCBjb2x1bW5cbiAgICAgICAgICAgIGlmIChpID09PSBuZXdTdGF0ZS5sZW5ndGggLSAxICYmIGRpZmZlcmVuY2UgIT09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q29sID0gZ2V0Q29sdW1uQnlJbmRleChuZXdTdGF0ZSwgaSk7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGUgPSBzZXRDb2x1bW5Qcm9wZXJ0eShuZXdTdGF0ZSwgbGFzdENvbC5jb2x1bW5JZCwgJ3dpZHRoJywgbGFzdENvbC53aWR0aCArIGRpZmZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0b3RhbFdpZHRoID49IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgIGxldCBkaWZmZXJlbmNlID0gdG90YWxXaWR0aCAtIGNvbnRhaW5lcldpZHRoO1xuICAgICAgICAvLyBXZSBzdGFydCB3aXRoIHRoZSBsYXN0IGNvbHVtblxuICAgICAgICBsZXQgaiA9IG5ld1N0YXRlLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlKGogPj0gMCAmJiBkaWZmZXJlbmNlID4gMCl7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29sID0gZ2V0Q29sdW1uQnlJbmRleChuZXdTdGF0ZSwgaik7XG4gICAgICAgICAgICBpZiAoY3VycmVudENvbC53aWR0aCA+IGN1cnJlbnRDb2wubWluV2lkdGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xBZGp1c3RtZW50ID0gTWF0aC5taW4oY3VycmVudENvbC53aWR0aCAtIGN1cnJlbnRDb2wubWluV2lkdGgsIGRpZmZlcmVuY2UpO1xuICAgICAgICAgICAgICAgIGRpZmZlcmVuY2UgLT0gY29sQWRqdXN0bWVudDtcbiAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHNldENvbHVtblByb3BlcnR5KG5ld1N0YXRlLCBjdXJyZW50Q29sLmNvbHVtbklkLCAnd2lkdGgnLCBjdXJyZW50Q29sLndpZHRoIC0gY29sQWRqdXN0bWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBqLS07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1N0YXRlO1xufVxuIiwiaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjaywgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29sdW1uRGVmaW5pdGlvbnNUb1N0YXRlLCBhZGp1c3RDb2x1bW5XaWR0aHNUb0ZpdENvbnRhaW5lciwgZ2V0Q29sdW1uQnlJZCwgc2V0Q29sdW1uUHJvcGVydHksIGdldENvbHVtbldpZHRoIH0gZnJvbSAnLi4vdXRpbHMvY29sdW1uUmVzaXplVXRpbHMnO1xuY29uc3QgY3JlYXRlUmVkdWNlciA9IChhdXRvRml0Q29sdW1ucyk9PihzdGF0ZSwgYWN0aW9uKT0+e1xuICAgICAgICBzd2l0Y2goYWN0aW9uLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAnQ09OVEFJTkVSX1dJRFRIX1VQREFURUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXaWR0aDogYWN0aW9uLmNvbnRhaW5lcldpZHRoLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aFN0YXRlOiBhdXRvRml0Q29sdW1ucyA/IGFkanVzdENvbHVtbldpZHRoc1RvRml0Q29udGFpbmVyKHN0YXRlLmNvbHVtbldpZHRoU3RhdGUsIGFjdGlvbi5jb250YWluZXJXaWR0aCkgOiBzdGF0ZS5jb2x1bW5XaWR0aFN0YXRlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNhc2UgJ0NPTFVNTlNfVVBEQVRFRCc6XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UyA9IGNvbHVtbkRlZmluaXRpb25zVG9TdGF0ZShhY3Rpb24uY29sdW1ucywgc3RhdGUuY29sdW1uV2lkdGhTdGF0ZSwgc3RhdGUuY29sdW1uU2l6aW5nT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGFjdGlvbi5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aFN0YXRlOiBhdXRvRml0Q29sdW1ucyA/IGFkanVzdENvbHVtbldpZHRoc1RvRml0Q29udGFpbmVyKG5ld1MsIHN0YXRlLmNvbnRhaW5lcldpZHRoKSA6IG5ld1NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSAnQ09MVU1OX1NJWklOR19PUFRJT05TX1VQREFURUQnOlxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0gY29sdW1uRGVmaW5pdGlvbnNUb1N0YXRlKHN0YXRlLmNvbHVtbnMsIHN0YXRlLmNvbHVtbldpZHRoU3RhdGUsIGFjdGlvbi5jb2x1bW5TaXppbmdPcHRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uU2l6aW5nT3B0aW9uczogYWN0aW9uLmNvbHVtblNpemluZ09wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoU3RhdGU6IGF1dG9GaXRDb2x1bW5zID8gYWRqdXN0Q29sdW1uV2lkdGhzVG9GaXRDb250YWluZXIobmV3U3RhdGUsIHN0YXRlLmNvbnRhaW5lcldpZHRoKSA6IG5ld1N0YXRlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNhc2UgJ1NFVF9DT0xVTU5fV0lEVEgnOlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgY29sdW1uSWQsIHdpZHRoIH0gPSBhY3Rpb247XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjb250YWluZXJXaWR0aCB9ID0gc3RhdGU7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gZ2V0Q29sdW1uQnlJZChzdGF0ZS5jb2x1bW5XaWR0aFN0YXRlLCBjb2x1bW5JZCk7XG4gICAgICAgICAgICAgICAgbGV0IG5ld0NvbHVtbldpZHRoU3RhdGUgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLmNvbHVtbldpZHRoU3RhdGVcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmICghY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQWRqdXN0IHRoZSBjb2x1bW4gd2lkdGggYW5kIG1lYXN1cmUgdGhlIG5ldyB0b3RhbCB3aWR0aFxuICAgICAgICAgICAgICAgIG5ld0NvbHVtbldpZHRoU3RhdGUgPSBzZXRDb2x1bW5Qcm9wZXJ0eShuZXdDb2x1bW5XaWR0aFN0YXRlLCBjb2x1bW5JZCwgJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGlzIHdpZHRoIGFzIGlkZWFsV2lkdGgsIGJlY2F1c2UgaXRzIGEgZGVsaWJlcmF0ZSBjaGFuZ2UsIG5vdCBhIHJlY2FsY3VsYXRpb24gYmVjYXVzZSBvZiBjb250YWluZXJcbiAgICAgICAgICAgICAgICBuZXdDb2x1bW5XaWR0aFN0YXRlID0gc2V0Q29sdW1uUHJvcGVydHkobmV3Q29sdW1uV2lkdGhTdGF0ZSwgY29sdW1uSWQsICdpZGVhbFdpZHRoJywgd2lkdGgpO1xuICAgICAgICAgICAgICAgIC8vIEFkanVzdCB0aGUgd2lkdGhzIHRvIHRoZSBjb250YWluZXIgc2l6ZVxuICAgICAgICAgICAgICAgIGlmIChhdXRvRml0Q29sdW1ucykge1xuICAgICAgICAgICAgICAgICAgICBuZXdDb2x1bW5XaWR0aFN0YXRlID0gYWRqdXN0Q29sdW1uV2lkdGhzVG9GaXRDb250YWluZXIobmV3Q29sdW1uV2lkdGhTdGF0ZSwgY29udGFpbmVyV2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGhTdGF0ZTogbmV3Q29sdW1uV2lkdGhTdGF0ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlQ29sdW1uUmVzaXplU3RhdGUoY29sdW1ucywgY29udGFpbmVyV2lkdGgsIHBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgeyBvbkNvbHVtblJlc2l6ZSwgY29sdW1uU2l6aW5nT3B0aW9ucywgYXV0b0ZpdENvbHVtbnMgPSB0cnVlIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgcmVkdWNlciA9IFJlYWN0LnVzZU1lbW8oKCk9PmNyZWF0ZVJlZHVjZXIoYXV0b0ZpdENvbHVtbnMpLCBbXG4gICAgICAgIGF1dG9GaXRDb2x1bW5zXG4gICAgXSk7XG4gICAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSBSZWFjdC51c2VSZWR1Y2VyKHJlZHVjZXIsIHtcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgY29udGFpbmVyV2lkdGg6IDAsXG4gICAgICAgIGNvbHVtbldpZHRoU3RhdGU6IGNvbHVtbkRlZmluaXRpb25zVG9TdGF0ZShjb2x1bW5zLCB1bmRlZmluZWQsIGNvbHVtblNpemluZ09wdGlvbnMpLFxuICAgICAgICBjb2x1bW5TaXppbmdPcHRpb25zXG4gICAgfSk7XG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnQ09OVEFJTkVSX1dJRFRIX1VQREFURUQnLFxuICAgICAgICAgICAgY29udGFpbmVyV2lkdGhcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBjb250YWluZXJXaWR0aFxuICAgIF0pO1xuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ0NPTFVNTlNfVVBEQVRFRCcsXG4gICAgICAgICAgICBjb2x1bW5zXG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgY29sdW1uc1xuICAgIF0pO1xuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgICAgdHlwZTogJ0NPTFVNTl9TSVpJTkdfT1BUSU9OU19VUERBVEVEJyxcbiAgICAgICAgICAgIGNvbHVtblNpemluZ09wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBjb2x1bW5TaXppbmdPcHRpb25zXG4gICAgXSk7XG4gICAgY29uc3Qgc2V0Q29sdW1uV2lkdGggPSB1c2VFdmVudENhbGxiYWNrKChldmVudCwgZGF0YSk9PntcbiAgICAgICAgbGV0IHsgd2lkdGggfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uSWQgfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGNvbCA9IGdldENvbHVtbkJ5SWQoc3RhdGUuY29sdW1uV2lkdGhTdGF0ZSwgY29sdW1uSWQpO1xuICAgICAgICBpZiAoIWNvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHdpZHRoID0gTWF0aC5tYXgoY29sLm1pbldpZHRoIHx8IDAsIHdpZHRoKTtcbiAgICAgICAgaWYgKG9uQ29sdW1uUmVzaXplKSB7XG4gICAgICAgICAgICBvbkNvbHVtblJlc2l6ZShldmVudCwge1xuICAgICAgICAgICAgICAgIGNvbHVtbklkLFxuICAgICAgICAgICAgICAgIHdpZHRoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnU0VUX0NPTFVNTl9XSURUSCcsXG4gICAgICAgICAgICBjb2x1bW5JZCxcbiAgICAgICAgICAgIHdpZHRoXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldENvbHVtbkJ5SWQ6IFJlYWN0LnVzZUNhbGxiYWNrKChjb2xJZCk9PmdldENvbHVtbkJ5SWQoc3RhdGUuY29sdW1uV2lkdGhTdGF0ZSwgY29sSWQpLCBbXG4gICAgICAgICAgICBzdGF0ZS5jb2x1bW5XaWR0aFN0YXRlXG4gICAgICAgIF0pLFxuICAgICAgICBnZXRDb2x1bW5zOiBSZWFjdC51c2VDYWxsYmFjaygoKT0+c3RhdGUuY29sdW1uV2lkdGhTdGF0ZSwgW1xuICAgICAgICAgICAgc3RhdGUuY29sdW1uV2lkdGhTdGF0ZVxuICAgICAgICBdKSxcbiAgICAgICAgZ2V0Q29sdW1uV2lkdGg6IFJlYWN0LnVzZUNhbGxiYWNrKChjb2xJZCk9PmdldENvbHVtbldpZHRoKHN0YXRlLmNvbHVtbldpZHRoU3RhdGUsIGNvbElkKSwgW1xuICAgICAgICAgICAgc3RhdGUuY29sdW1uV2lkdGhTdGF0ZVxuICAgICAgICBdKSxcbiAgICAgICAgc2V0Q29sdW1uV2lkdGhcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQXJyb3dMZWZ0LCBBcnJvd1JpZ2h0LCBFbnRlciwgRXNjYXBlLCBTaGlmdCwgU3BhY2UgfSBmcm9tICdAZmx1ZW50dWkva2V5Ym9hcmQta2V5cyc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VGb2N1c0ZpbmRlcnMsIHVzZVRhYnN0ZXJBdHRyaWJ1dGVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuY29uc3QgU1RFUCA9IDIwO1xuY29uc3QgUFJFQ0lTSU9OX01PRElGSUVSID0gU2hpZnQ7XG5jb25zdCBQUkVDSVNJT05fRkFDVE9SID0gMSAvIDQ7XG5leHBvcnQgZnVuY3Rpb24gdXNlS2V5Ym9hcmRSZXNpemluZyhjb2x1bW5SZXNpemVTdGF0ZSkge1xuICAgIGNvbnN0IFtjb2x1bW5JZCwgc2V0Q29sdW1uSWRdID0gUmVhY3QudXNlU3RhdGUoKTtcbiAgICBjb25zdCBvbkNoYW5nZVJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICAgIGNvbnN0IHsgZmluZFByZXZGb2N1c2FibGUgfSA9IHVzZUZvY3VzRmluZGVycygpO1xuICAgIGNvbnN0IGNvbHVtblJlc2l6ZVN0YXRlUmVmID0gUmVhY3QudXNlUmVmKGNvbHVtblJlc2l6ZVN0YXRlKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgY29sdW1uUmVzaXplU3RhdGVSZWYuY3VycmVudCA9IGNvbHVtblJlc2l6ZVN0YXRlO1xuICAgIH0sIFtcbiAgICAgICAgY29sdW1uUmVzaXplU3RhdGVcbiAgICBdKTtcbiAgICBjb25zdCBbcmVzaXplSGFuZGxlUmVmc10gPSBSZWFjdC51c2VTdGF0ZSgoKT0+bmV3IE1hcCgpKTtcbiAgICBjb25zdCBrZXlib2FyZEhhbmRsZXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgaWYgKCFjb2x1bW5JZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdpZHRoID0gY29sdW1uUmVzaXplU3RhdGVSZWYuY3VycmVudC5nZXRDb2x1bW5XaWR0aChjb2x1bW5JZCk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbk1vZGlmaWVyID0gZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZShQUkVDSVNJT05fTU9ESUZJRVIpO1xuICAgICAgICBjb25zdCBzdG9wRXZlbnQgPSAoKT0+e1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9O1xuICAgICAgICBzd2l0Y2goZXZlbnQua2V5KXtcbiAgICAgICAgICAgIGNhc2UgQXJyb3dMZWZ0OlxuICAgICAgICAgICAgICAgIHN0b3BFdmVudCgpO1xuICAgICAgICAgICAgICAgIGNvbHVtblJlc2l6ZVN0YXRlUmVmLmN1cnJlbnQuc2V0Q29sdW1uV2lkdGgoZXZlbnQubmF0aXZlRXZlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uSWQsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCAtIChwcmVjaXNpb25Nb2RpZmllciA/IFNURVAgKiBQUkVDSVNJT05fRkFDVE9SIDogU1RFUClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlIEFycm93UmlnaHQ6XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgY29sdW1uUmVzaXplU3RhdGVSZWYuY3VycmVudC5zZXRDb2x1bW5XaWR0aChldmVudC5uYXRpdmVFdmVudCwge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JZCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoICsgKHByZWNpc2lvbk1vZGlmaWVyID8gU1RFUCAqIFBSRUNJU0lPTl9GQUNUT1IgOiBTVEVQKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNhc2UgU3BhY2U6XG4gICAgICAgICAgICBjYXNlIEVudGVyOlxuICAgICAgICAgICAgY2FzZSBFc2NhcGU6XG4gICAgICAgICAgICAgICAgdmFyIC8vIEp1c3QgYmx1ciBoZXJlLCB0aGUgb25CbHVyIGhhbmRsZXIgd2lsbCB0YWtlIGNhcmUgb2YgdGhlIHJlc3QgKGRpc2FibGVJbnRlcmFjdGl2ZU1vZGUpLlxuICAgICAgICAgICAgICAgIF9yZXNpemVIYW5kbGVSZWZzX2dldF9jdXJyZW50LCBfcmVzaXplSGFuZGxlUmVmc19nZXQ7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgKF9yZXNpemVIYW5kbGVSZWZzX2dldCA9IHJlc2l6ZUhhbmRsZVJlZnMuZ2V0KGNvbHVtbklkKSkgPT09IG51bGwgfHwgX3Jlc2l6ZUhhbmRsZVJlZnNfZ2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX3Jlc2l6ZUhhbmRsZVJlZnNfZ2V0X2N1cnJlbnQgPSBfcmVzaXplSGFuZGxlUmVmc19nZXQuY3VycmVudCkgPT09IG51bGwgfHwgX3Jlc2l6ZUhhbmRsZVJlZnNfZ2V0X2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yZXNpemVIYW5kbGVSZWZzX2dldF9jdXJyZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGVuYWJsZUludGVyYWN0aXZlTW9kZSA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb2xJZCk9PntcbiAgICAgICAgdmFyIF9vbkNoYW5nZVJlZl9jdXJyZW50LCBfcmVzaXplSGFuZGxlUmVmc19nZXQ7XG4gICAgICAgIHNldENvbHVtbklkKGNvbElkKTtcbiAgICAgICAgKF9vbkNoYW5nZVJlZl9jdXJyZW50ID0gb25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX29uQ2hhbmdlUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9vbkNoYW5nZVJlZl9jdXJyZW50LmNhbGwob25DaGFuZ2VSZWYsIGNvbElkLCB0cnVlKTtcbiAgICAgICAgY29uc3QgaGFuZGxlID0gKF9yZXNpemVIYW5kbGVSZWZzX2dldCA9IHJlc2l6ZUhhbmRsZVJlZnMuZ2V0KGNvbElkKSkgPT09IG51bGwgfHwgX3Jlc2l6ZUhhbmRsZVJlZnNfZ2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVzaXplSGFuZGxlUmVmc19nZXQuY3VycmVudDtcbiAgICAgICAgaWYgKGhhbmRsZSkge1xuICAgICAgICAgICAgaGFuZGxlLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgICAgICAgICAgIGhhbmRsZS50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgaGFuZGxlLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHJlc2l6ZUhhbmRsZVJlZnNcbiAgICBdKTtcbiAgICBjb25zdCBkaXNhYmxlSW50ZXJhY3RpdmVNb2RlID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgdmFyIC8vIE5vdGlmeSB0aGUgb25DaGFuZ2UgbGlzdGVuZXIgdGhhdCB3ZSBhcmUgZGlzYWJsaW5nIGludGVyYWN0aXZlIG1vZGUuXG4gICAgICAgIF9vbkNoYW5nZVJlZl9jdXJyZW50LCBfcmVzaXplSGFuZGxlUmVmc19nZXQ7XG4gICAgICAgIGlmICghY29sdW1uSWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX29uQ2hhbmdlUmVmX2N1cnJlbnQgPSBvbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfb25DaGFuZ2VSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29uQ2hhbmdlUmVmX2N1cnJlbnQuY2FsbChvbkNoYW5nZVJlZiwgY29sdW1uSWQsIGZhbHNlKTtcbiAgICAgICAgLy8gRmluZCB0aGUgcHJldmlvdXMgZm9jdXNhYmxlIGVsZW1lbnQgKHRhYmxlIGhlYWRlciBidXR0b24pIGFuZCBmb2N1cyBpdC5cbiAgICAgICAgY29uc3QgZWwgPSAoX3Jlc2l6ZUhhbmRsZVJlZnNfZ2V0ID0gcmVzaXplSGFuZGxlUmVmcy5nZXQoY29sdW1uSWQpKSA9PT0gbnVsbCB8fCBfcmVzaXplSGFuZGxlUmVmc19nZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yZXNpemVIYW5kbGVSZWZzX2dldC5jdXJyZW50O1xuICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgIHZhciBfZmluZFByZXZGb2N1c2FibGU7XG4gICAgICAgICAgICAoX2ZpbmRQcmV2Rm9jdXNhYmxlID0gZmluZFByZXZGb2N1c2FibGUoZWwpKSA9PT0gbnVsbCB8fCBfZmluZFByZXZGb2N1c2FibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9maW5kUHJldkZvY3VzYWJsZS5mb2N1cygpOyAvLyBGb2N1cyB0aGUgcHJldmlvdXMgZm9jdXNhYmxlIGVsZW1lbnQgKGhlYWRlciBidXR0b24pLlxuICAgICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbHVtbklkKHVuZGVmaW5lZCk7XG4gICAgfSwgW1xuICAgICAgICBjb2x1bW5JZCxcbiAgICAgICAgZmluZFByZXZGb2N1c2FibGUsXG4gICAgICAgIHJlc2l6ZUhhbmRsZVJlZnNcbiAgICBdKTtcbiAgICBjb25zdCB0b2dnbGVJbnRlcmFjdGl2ZU1vZGUgPSAoY29sSWQsIG9uQ2hhbmdlKT0+e1xuICAgICAgICBvbkNoYW5nZVJlZi5jdXJyZW50ID0gb25DaGFuZ2U7XG4gICAgICAgIGlmICghY29sdW1uSWQpIHtcbiAgICAgICAgICAgIGVuYWJsZUludGVyYWN0aXZlTW9kZShjb2xJZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29sSWQgJiYgY29sdW1uSWQgIT09IGNvbElkKSB7XG4gICAgICAgICAgICBlbmFibGVJbnRlcmFjdGl2ZU1vZGUoY29sSWQpO1xuICAgICAgICAgICAgc2V0Q29sdW1uSWQoY29sSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzYWJsZUludGVyYWN0aXZlTW9kZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBnZXRLZXlib2FyZFJlc2l6aW5nUmVmID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbElkKT0+e1xuICAgICAgICBjb25zdCByZWYgPSByZXNpemVIYW5kbGVSZWZzLmdldChjb2xJZCkgfHwgUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgICAgIHJlc2l6ZUhhbmRsZVJlZnMuc2V0KGNvbElkLCByZWYpO1xuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH0sIFtcbiAgICAgICAgcmVzaXplSGFuZGxlUmVmc1xuICAgIF0pO1xuICAgIC8vIFRoaXMgbWFrZXMgc3VyZSB0aGUgbGVmdCBhbmQgcmlnaHQgYXJyb3cga2V5cyBhcmUgaWdub3JlZCBpbiB0YWJzdGVyLFxuICAgIC8vIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBmb3IgcmVzaXppbmcuXG4gICAgY29uc3QgdGFic3RlckF0dHJzID0gdXNlVGFic3RlckF0dHJpYnV0ZXMoe1xuICAgICAgICBmb2N1c2FibGU6IHtcbiAgICAgICAgICAgIGlnbm9yZUtleWRvd246IHtcbiAgICAgICAgICAgICAgICBBcnJvd0xlZnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgQXJyb3dSaWdodDogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdG9nZ2xlSW50ZXJhY3RpdmVNb2RlLFxuICAgICAgICBjb2x1bW5JZCxcbiAgICAgICAgZ2V0S2V5Ym9hcmRSZXNpemluZ1Byb3BzOiBSZWFjdC51c2VDYWxsYmFjaygoY29sSWQsIGN1cnJlbnRXaWR0aCk9Pih7XG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBrZXlib2FyZEhhbmRsZXIsXG4gICAgICAgICAgICAgICAgb25CbHVyOiBkaXNhYmxlSW50ZXJhY3RpdmVNb2RlLFxuICAgICAgICAgICAgICAgIHJlZjogZ2V0S2V5Ym9hcmRSZXNpemluZ1JlZihjb2xJZCksXG4gICAgICAgICAgICAgICAgcm9sZTogJ3NlcGFyYXRvcicsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiAnUmVzaXplIGNvbHVtbicsXG4gICAgICAgICAgICAgICAgJ2FyaWEtdmFsdWV0ZXh0JzogYCR7Y3VycmVudFdpZHRofSBwaXhlbHNgLFxuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6IGNvbElkID09PSBjb2x1bW5JZCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0YWJJbmRleDogY29sSWQgPT09IGNvbHVtbklkID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAuLi50YWJzdGVyQXR0cnNcbiAgICAgICAgICAgIH0pLCBbXG4gICAgICAgICAgICBjb2x1bW5JZCxcbiAgICAgICAgICAgIGRpc2FibGVJbnRlcmFjdGl2ZU1vZGUsXG4gICAgICAgICAgICBnZXRLZXlib2FyZFJlc2l6aW5nUmVmLFxuICAgICAgICAgICAga2V5Ym9hcmRIYW5kbGVyLFxuICAgICAgICAgICAgdGFic3RlckF0dHJzXG4gICAgICAgIF0pXG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRhYmxlUmVzaXplSGFuZGxlIH0gZnJvbSAnLi4vVGFibGVSZXNpemVIYW5kbGUnO1xuaW1wb3J0IHsgdXNlTWVhc3VyZUVsZW1lbnQgfSBmcm9tICcuL3VzZU1lYXN1cmVFbGVtZW50JztcbmltcG9ydCB7IHVzZVRhYmxlQ29sdW1uUmVzaXplTW91c2VIYW5kbGVyIH0gZnJvbSAnLi91c2VUYWJsZUNvbHVtblJlc2l6ZU1vdXNlSGFuZGxlcic7XG5pbXBvcnQgeyB1c2VUYWJsZUNvbHVtblJlc2l6ZVN0YXRlIH0gZnJvbSAnLi91c2VUYWJsZUNvbHVtblJlc2l6ZVN0YXRlJztcbmltcG9ydCB7IHVzZUtleWJvYXJkUmVzaXppbmcgfSBmcm9tICcuL3VzZUtleWJvYXJkUmVzaXppbmcnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb2x1bW5TaXppbmdTdGF0ZSA9IHtcbiAgICBnZXRDb2x1bW5XaWR0aHM6ICgpPT5bXSxcbiAgICBnZXRPbk1vdXNlRG93bjogKCk9PigpPT5udWxsLFxuICAgIHNldENvbHVtbldpZHRoOiAoKT0+bnVsbCxcbiAgICBnZXRUYWJsZVByb3BzOiAoKT0+KHt9KSxcbiAgICBnZXRUYWJsZUhlYWRlckNlbGxQcm9wczogKCk9Pih7XG4gICAgICAgICAgICBzdHlsZToge30sXG4gICAgICAgICAgICBjb2x1bW5JZDogJydcbiAgICAgICAgfSksXG4gICAgZ2V0VGFibGVDZWxsUHJvcHM6ICgpPT4oe1xuICAgICAgICAgICAgc3R5bGU6IHt9LFxuICAgICAgICAgICAgY29sdW1uSWQ6ICcnXG4gICAgICAgIH0pLFxuICAgIGVuYWJsZUtleWJvYXJkTW9kZTogKCk9PigpPT5udWxsXG59O1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlQ29sdW1uU2l6aW5nX3Vuc3RhYmxlKHBhcmFtcykge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgLy8gRmFsc2UgcG9zaXRpdmUsIHRoZXNlIHBsdWdpbiBob29rcyBhcmUgaW50ZW5kZWQgdG8gYmUgcnVuIG9uIGV2ZXJ5IHJlbmRlclxuICAgIHJldHVybiAodGFibGVTdGF0ZSk9Pi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICB1c2VUYWJsZUNvbHVtblNpemluZ1N0YXRlKHRhYmxlU3RhdGUsIHtcbiAgICAgICAgICAgIGF1dG9GaXRDb2x1bW5zOiB0cnVlLFxuICAgICAgICAgICAgLi4ucGFyYW1zXG4gICAgICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0Q29sdW1uU3R5bGVzKGNvbHVtbiwgZHJhZ2dpbmcpIHtcbiAgICBjb25zdCB3aWR0aCA9IGNvbHVtbi53aWR0aDtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBuYXRpdmUgc3R5bGVzXG4gICAgICAgIHdpZHRoLFxuICAgICAgICAvLyBub24tbmF0aXZlIGVsZW1lbnQgc3R5bGVzIChmbGV4IGxheW91dClcbiAgICAgICAgbWluV2lkdGg6IHdpZHRoLFxuICAgICAgICBtYXhXaWR0aDogd2lkdGgsXG4gICAgICAgIC8vIEZpeGVkIHRoZSB1bndhbnRlZCBzb3J0OiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8yNzgwM1xuICAgICAgICAuLi5kcmFnZ2luZyA/IHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJ1xuICAgICAgICB9IDoge31cbiAgICB9O1xufVxuZnVuY3Rpb24gdXNlVGFibGVDb2x1bW5TaXppbmdTdGF0ZSh0YWJsZVN0YXRlLCBwYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHsgY29sdW1ucyB9ID0gdGFibGVTdGF0ZTtcbiAgICAvLyBHZXRzIHRoZSBjb250YWluZXIgd2lkdGhcbiAgICBjb25zdCB7IHdpZHRoLCBtZWFzdXJlRWxlbWVudFJlZiB9ID0gdXNlTWVhc3VyZUVsZW1lbnQoKTtcbiAgICAvLyBDcmVhdGVzIHRoZSBzdGF0ZSBiYXNlZCBvbiBjb2x1bW5zIGFuZCBhdmFpbGFibGUgY29udGFpbmVyV2lkdGhcbiAgICBjb25zdCBjb2x1bW5SZXNpemVTdGF0ZSA9IHVzZVRhYmxlQ29sdW1uUmVzaXplU3RhdGUoY29sdW1ucywgd2lkdGggKyAoKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5jb250YWluZXJXaWR0aE9mZnNldCkgfHwgMCksIHBhcmFtcyk7XG4gICAgLy8gQ3JlYXRlcyB0aGUgbW91c2UgaGFuZGxlciBhbmQgYXR0YWNoZXMgdGhlIHN0YXRlIHRvIGl0XG4gICAgY29uc3QgbW91c2VIYW5kbGVyID0gdXNlVGFibGVDb2x1bW5SZXNpemVNb3VzZUhhbmRsZXIoY29sdW1uUmVzaXplU3RhdGUpO1xuICAgIC8vIENyZWF0ZXMgdGhlIGtleWJvYXJkIGhhbmRsZXIgZm9yIHJlc2l6aW5nIGNvbHVtbnNcbiAgICBjb25zdCB7IHRvZ2dsZUludGVyYWN0aXZlTW9kZSwgZ2V0S2V5Ym9hcmRSZXNpemluZ1Byb3BzIH0gPSB1c2VLZXlib2FyZFJlc2l6aW5nKGNvbHVtblJlc2l6ZVN0YXRlKTtcbiAgICBjb25zdCB7IGF1dG9GaXRDb2x1bW5zIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgZW5hYmxlS2V5Ym9hcmRNb2RlID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbHVtbklkLCBvbkNoYW5nZSk9PihlKT0+e1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRvZ2dsZUludGVyYWN0aXZlTW9kZShjb2x1bW5JZCwgb25DaGFuZ2UpO1xuICAgICAgICB9LCBbXG4gICAgICAgIHRvZ2dsZUludGVyYWN0aXZlTW9kZVxuICAgIF0pO1xuICAgIGNvbnN0IHsgZ2V0Q29sdW1uQnlJZCwgc2V0Q29sdW1uV2lkdGgsIGdldENvbHVtbnMgfSA9IGNvbHVtblJlc2l6ZVN0YXRlO1xuICAgIGNvbnN0IHsgZ2V0T25Nb3VzZURvd24sIGRyYWdnaW5nIH0gPSBtb3VzZUhhbmRsZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4udGFibGVTdGF0ZSxcbiAgICAgICAgdGFibGVSZWY6IG1lYXN1cmVFbGVtZW50UmVmLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgICAgIGNvbHVtblNpemluZ191bnN0YWJsZToge1xuICAgICAgICAgICAgZ2V0T25Nb3VzZURvd24sXG4gICAgICAgICAgICBzZXRDb2x1bW5XaWR0aDogKGNvbHVtbklkLCB3KT0+c2V0Q29sdW1uV2lkdGgodW5kZWZpbmVkLCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbklkLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogd1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZ2V0Q29sdW1uV2lkdGhzOiBnZXRDb2x1bW5zLFxuICAgICAgICAgICAgZ2V0VGFibGVQcm9wczogKHByb3BzID0ge30pPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLnN0eWxlIHx8IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFRhYmxlSGVhZGVyQ2VsbFByb3BzOiBSZWFjdC51c2VDYWxsYmFjaygoY29sdW1uSWQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9jb2x1bW5zXztcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSBnZXRDb2x1bW5CeUlkKGNvbHVtbklkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0xhc3RDb2x1bW4gPSAoKF9jb2x1bW5zXyA9IGNvbHVtbnNbY29sdW1ucy5sZW5ndGggLSAxXSkgPT09IG51bGwgfHwgX2NvbHVtbnNfID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY29sdW1uc18uY29sdW1uSWQpID09PSBjb2x1bW5JZDtcbiAgICAgICAgICAgICAgICBjb25zdCBhc2lkZSA9IGlzTGFzdENvbHVtbiAmJiBhdXRvRml0Q29sdW1ucyA/IG51bGwgOiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFibGVSZXNpemVIYW5kbGUsIHtcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd246IGdldE9uTW91c2VEb3duKGNvbHVtbklkKSxcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFN0YXJ0OiBnZXRPbk1vdXNlRG93bihjb2x1bW5JZCksXG4gICAgICAgICAgICAgICAgICAgIC4uLmdldEtleWJvYXJkUmVzaXppbmdQcm9wcyhjb2x1bW5JZCwgKGNvbCA9PT0gbnVsbCB8fCBjb2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbC53aWR0aCkgfHwgMClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sID8ge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZTogZ2V0Q29sdW1uU3R5bGVzKGNvbCwgZHJhZ2dpbmcpLFxuICAgICAgICAgICAgICAgICAgICBhc2lkZVxuICAgICAgICAgICAgICAgIH0gOiB7fTtcbiAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgICBnZXRDb2x1bW5CeUlkLFxuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgZHJhZ2dpbmcsXG4gICAgICAgICAgICAgICAgZ2V0S2V5Ym9hcmRSZXNpemluZ1Byb3BzLFxuICAgICAgICAgICAgICAgIGdldE9uTW91c2VEb3duLFxuICAgICAgICAgICAgICAgIGF1dG9GaXRDb2x1bW5zXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIGdldFRhYmxlQ2VsbFByb3BzOiBSZWFjdC51c2VDYWxsYmFjaygoY29sdW1uSWQpPT57XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gZ2V0Q29sdW1uQnlJZChjb2x1bW5JZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbCA/IHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGdldENvbHVtblN0eWxlcyhjb2wpXG4gICAgICAgICAgICAgICAgfSA6IHt9O1xuICAgICAgICAgICAgfSwgW1xuICAgICAgICAgICAgICAgIGdldENvbHVtbkJ5SWRcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgZW5hYmxlS2V5Ym9hcmRNb2RlXG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdFRhYmxlU2VsZWN0aW9uU3RhdGUgfSBmcm9tICcuL3VzZVRhYmxlU2VsZWN0aW9uJztcbmltcG9ydCB7IGRlZmF1bHRUYWJsZVNvcnRTdGF0ZSB9IGZyb20gJy4vdXNlVGFibGVTb3J0JztcbmltcG9ydCB7IGRlZmF1bHRDb2x1bW5TaXppbmdTdGF0ZSB9IGZyb20gJy4vdXNlVGFibGVDb2x1bW5TaXppbmcnO1xuY29uc3QgZGVmYXVsdFJvd0VuaGFuY2VyID0gKHJvdyk9PnJvdztcbmV4cG9ydCBjb25zdCBkZWZhdWx0VGFibGVTdGF0ZSA9IHtcbiAgICBzZWxlY3Rpb246IGRlZmF1bHRUYWJsZVNlbGVjdGlvblN0YXRlLFxuICAgIHNvcnQ6IGRlZmF1bHRUYWJsZVNvcnRTdGF0ZSxcbiAgICBnZXRSb3dzOiAoKT0+W10sXG4gICAgZ2V0Um93SWQ6ICgpPT4nJyxcbiAgICBpdGVtczogW10sXG4gICAgY29sdW1uczogW10sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIGNvbHVtblNpemluZ191bnN0YWJsZTogZGVmYXVsdENvbHVtblNpemluZ1N0YXRlLFxuICAgIHRhYmxlUmVmOiBSZWFjdC5jcmVhdGVSZWYoKVxufTtcbmV4cG9ydCBmdW5jdGlvbiB1c2VUYWJsZUZlYXR1cmVzKG9wdGlvbnMsIHBsdWdpbnMgPSBbXSkge1xuICAgIGNvbnN0IHsgaXRlbXMsIGdldFJvd0lkLCBjb2x1bW5zIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGdldFJvd3MgPSBSZWFjdC51c2VDYWxsYmFjaygocm93RW5oYW5jZXIgPSBkZWZhdWx0Um93RW5oYW5jZXIpPT57XG4gICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGkpPT57XG4gICAgICAgICAgICB2YXIgX2dldFJvd0lkO1xuICAgICAgICAgICAgcmV0dXJuIHJvd0VuaGFuY2VyKHtcbiAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgIHJvd0lkOiAoX2dldFJvd0lkID0gZ2V0Um93SWQgPT09IG51bGwgfHwgZ2V0Um93SWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGdldFJvd0lkKGl0ZW0pKSAhPT0gbnVsbCAmJiBfZ2V0Um93SWQgIT09IHZvaWQgMCA/IF9nZXRSb3dJZCA6IGlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGl0ZW1zLFxuICAgICAgICBnZXRSb3dJZFxuICAgIF0pO1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgICAgZ2V0Um93SWQsXG4gICAgICAgIGl0ZW1zLFxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBnZXRSb3dzLFxuICAgICAgICBzZWxlY3Rpb246IGRlZmF1bHRUYWJsZVNlbGVjdGlvblN0YXRlLFxuICAgICAgICBzb3J0OiBkZWZhdWx0VGFibGVTb3J0U3RhdGUsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAgICAgY29sdW1uU2l6aW5nX3Vuc3RhYmxlOiBkZWZhdWx0Q29sdW1uU2l6aW5nU3RhdGUsXG4gICAgICAgIHRhYmxlUmVmOiBSZWFjdC5jcmVhdGVSZWYoKVxuICAgIH07XG4gICAgcmV0dXJuIHBsdWdpbnMucmVkdWNlKChzdGF0ZSwgcGx1Z2luKT0+cGx1Z2luKHN0YXRlKSwgaW5pdGlhbFN0YXRlKTtcbn1cbiIsImNvbnN0IGRlZmF1bHRDb21wYXJlID0gKCk9PjA7XG5jb25zdCBkZWZhdWx0UmVuZGVyQ2VsbCA9ICgpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKCdAZmx1ZW50dWkvcmVhY3QtdGFibGU6IFlvdSBhcmUgdXNpbmcgdGhlIGRlZmF1bHQgY29sdW1uIHJlbmRlckNlbGwgZnVuY3Rpb24gdGhhdCByZW5kZXJzIG51bGwnKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuY29uc3QgZGVmYXVsdFJlbmRlckhlYWRlckNlbGwgPSAoKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybignQGZsdWVudHVpL3JlYWN0LXRhYmxlOiBZb3UgYXJlIHVzaW5nIHRoZSBkZWZhdWx0IGNvbHVtbiByZW5kZXJIZWFkZXJDZWxsIGZ1bmN0aW9uIHRoYXQgcmVuZGVycyBudWxsJyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBjb2x1bW4gZGVmaW5pdGlvbiB3aXRoIGRlZmF1bHRzXG4gKiBAcGFyYW0gb3B0aW9ucyAtIGNvbHVtbiBkZWZpbml0aW9uIG9wdGlvbnNcbiAqIEByZXR1cm5zIC0gY29sdW1uIGRlZmluaXRpb24gd2l0aCBkZWZhdWx0c1xuICovIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWJsZUNvbHVtbihvcHRpb25zKSB7XG4gICAgY29uc3QgeyBjb2x1bW5JZCwgcmVuZGVyQ2VsbCA9IGRlZmF1bHRSZW5kZXJDZWxsLCByZW5kZXJIZWFkZXJDZWxsID0gZGVmYXVsdFJlbmRlckhlYWRlckNlbGwsIGNvbXBhcmUgPSBkZWZhdWx0Q29tcGFyZSB9ID0gb3B0aW9ucztcbiAgICByZXR1cm4ge1xuICAgICAgICBjb2x1bW5JZCxcbiAgICAgICAgcmVuZGVyQ2VsbCxcbiAgICAgICAgcmVuZGVySGVhZGVyQ2VsbCxcbiAgICAgICAgY29tcGFyZVxuICAgIH07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCB0YWJsZUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgdGFibGVDb250ZXh0RGVmYXVsdFZhbHVlID0ge1xuICAgIHNpemU6ICdtZWRpdW0nLFxuICAgIG5vTmF0aXZlRWxlbWVudHM6IGZhbHNlLFxuICAgIHNvcnRhYmxlOiBmYWxzZVxufTtcbmV4cG9ydCBjb25zdCBUYWJsZUNvbnRleHRQcm92aWRlciA9IHRhYmxlQ29udGV4dC5Qcm92aWRlcjtcbmV4cG9ydCBjb25zdCB1c2VUYWJsZUNvbnRleHQgPSAoKT0+e1xuICAgIHZhciBfUmVhY3RfdXNlQ29udGV4dDtcbiAgICByZXR1cm4gKF9SZWFjdF91c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dCh0YWJsZUNvbnRleHQpKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dCAhPT0gdm9pZCAwID8gX1JlYWN0X3VzZUNvbnRleHQgOiB0YWJsZUNvbnRleHREZWZhdWx0VmFsdWU7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cy90YWJsZUNvbnRleHQnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBUYWJsZUNlbGwuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlVGFibGVDZWxsU3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJUYWJsZUNlbGxfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFRhYmxlQ2VsbFxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIFRhYmxlQ2VsbFxuICovIGV4cG9ydCBjb25zdCB1c2VUYWJsZUNlbGxfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IG5vTmF0aXZlRWxlbWVudHMsIHNpemUgfSA9IHVzZVRhYmxlQ29udGV4dCgpO1xuICAgIHZhciBfcHJvcHNfYXM7XG4gICAgY29uc3Qgcm9vdENvbXBvbmVudCA9ICgoX3Byb3BzX2FzID0gcHJvcHMuYXMpICE9PSBudWxsICYmIF9wcm9wc19hcyAhPT0gdm9pZCAwID8gX3Byb3BzX2FzIDogbm9OYXRpdmVFbGVtZW50cykgPyAnZGl2JyA6ICd0ZCc7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogcm9vdENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMocm9vdENvbXBvbmVudCwge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiByZWYsXG4gICAgICAgICAgICByb2xlOiByb290Q29tcG9uZW50ID09PSAnZGl2JyA/ICdjZWxsJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogcm9vdENvbXBvbmVudFxuICAgICAgICB9KSxcbiAgICAgICAgbm9OYXRpdmVFbGVtZW50cyxcbiAgICAgICAgc2l6ZVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRhYmxlQ2VsbFxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUYWJsZUNlbGxfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRm9jdXNJbmRpY2F0b3JTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmV4cG9ydCBjb25zdCB0YWJsZUNlbGxDbGFzc05hbWUgPSAnZnVpLVRhYmxlQ2VsbCc7XG5leHBvcnQgY29uc3QgdGFibGVDZWxsQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogdGFibGVDZWxsQ2xhc3NOYW1lXG59O1xuY29uc3QgdXNlVGFibGVMYXlvdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYxNXB0NWVzXCIsXG4gICAgaGE0ZG95OiBcImZtcnY0bHNcIlxuICB9LFxuICBtZWRpdW06IHtcbiAgICBCcWVudmlqOiBcImYxZnQ0MjY2XCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBCcWVudmlqOiBcImZic3UyNWVcIlxuICB9LFxuICBcImV4dHJhLXNtYWxsXCI6IHtcbiAgICBCcWVudmlqOiBcImZydmdoNTVcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTVwdDVlc3tkaXNwbGF5OnRhYmxlLWNlbGw7fVwiLCBcIi5mbXJ2NGxze3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt9XCIsIFwiLmYxZnQ0MjY2e2hlaWdodDo0NHB4O31cIiwgXCIuZmJzdTI1ZXtoZWlnaHQ6MzRweDt9XCIsIFwiLmZydmdoNTV7aGVpZ2h0OjI0cHg7fVwiXVxufSk7XG5jb25zdCB1c2VGbGV4TGF5b3V0U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQmY0amVkazogXCJmMTB0aXFpeFwiLFxuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiLFxuICAgIHhhd3o6IDAsXG4gICAgQmg2Nzk1cjogMCxcbiAgICBCbm5zczZzOiAwLFxuICAgIGZrbWMzYTogXCJmMWl6ZnlyclwiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIHNzaGk1dzogXCJmNXBndGs5XCJcbiAgfSxcbiAgc21hbGw6IHtcbiAgICBzc2hpNXc6IFwiZmNlcDl0Z1wiXG4gIH0sXG4gIFwiZXh0cmEtc21hbGxcIjoge1xuICAgIHNzaGk1dzogXCJmMXBoYTdmeVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZjEwdGlxaXh7bWluLXdpZHRoOjBweDt9XCIsIFwiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIiwgW1wiLmYxaXpmeXJye2ZsZXg6MSAxIDBweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjVwZ3RrOXttaW4taGVpZ2h0OjQ0cHg7fVwiLCBcIi5mY2VwOXRne21pbi1oZWlnaHQ6MzRweDt9XCIsIFwiLmYxcGhhN2Z5e21pbi1oZWlnaHQ6MjRweDt9XCJdXG59KTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgcm9vdCBzbG90XG4gKi9cbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjNncGtydVwiLFxuICAgIEJmcHE3enA6IDAsXG4gICAgZzlrNnp0OiAwLFxuICAgIEJuNHZvcTk6IDAsXG4gICAgZ2l2aXFzOiBcImYxZHhmb3l0XCIsXG4gICAgQnc4MXJkNzogMCxcbiAgICBrZHB1Z2E6IDAsXG4gICAgZG0yMzhzOiAwLFxuICAgIEI2eGJtbzA6IDAsXG4gICAgQjN3aGJ4MjogXCJmMmtyYzl3XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBbXCIuZjNncGtydXtwYWRkaW5nOjBweCB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFkeGZveXRbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17b3V0bGluZToycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjJrcmM5d1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV1dXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgVGFibGVDZWxsIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVGFibGVDZWxsU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBjb25zdCBsYXlvdXRTdHlsZXMgPSB7XG4gICAgdGFibGU6IHVzZVRhYmxlTGF5b3V0U3R5bGVzKCksXG4gICAgZmxleDogdXNlRmxleExheW91dFN0eWxlcygpXG4gIH07XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlQ2VsbENsYXNzTmFtZXMucm9vdCwgc3R5bGVzLnJvb3QsIHN0YXRlLm5vTmF0aXZlRWxlbWVudHMgPyBsYXlvdXRTdHlsZXMuZmxleC5yb290IDogbGF5b3V0U3R5bGVzLnRhYmxlLnJvb3QsIHN0YXRlLm5vTmF0aXZlRWxlbWVudHMgPyBsYXlvdXRTdHlsZXMuZmxleFtzdGF0ZS5zaXplXSA6IGxheW91dFN0eWxlcy50YWJsZVtzdGF0ZS5zaXplXSwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGFibGVDZWxsU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUYWJsZUNlbGxfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlQ2VsbCc7XG5pbXBvcnQgeyByZW5kZXJUYWJsZUNlbGxfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRhYmxlQ2VsbCc7XG5pbXBvcnQgeyB1c2VUYWJsZUNlbGxTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlQ2VsbFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIFRhYmxlQ2VsbCBjb21wb25lbnRcbiAqLyBleHBvcnQgY29uc3QgVGFibGVDZWxsID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVGFibGVDZWxsX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRhYmxlQ2VsbFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUYWJsZUNlbGxTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRhYmxlQ2VsbF91bnN0YWJsZShzdGF0ZSk7XG59KTtcblRhYmxlQ2VsbC5kaXNwbGF5TmFtZSA9ICdUYWJsZUNlbGwnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgdGFibGVIZWFkZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuY29uc3QgdGFibGVIZWFkZXJDb250ZXh0RGVmYXVsdFZhbHVlID0gJyc7XG5leHBvcnQgY29uc3QgVGFibGVIZWFkZXJDb250ZXh0UHJvdmlkZXIgPSB0YWJsZUhlYWRlckNvbnRleHQuUHJvdmlkZXI7XG5leHBvcnQgY29uc3QgdXNlSXNJblRhYmxlSGVhZGVyID0gKCk9PlJlYWN0LnVzZUNvbnRleHQodGFibGVIZWFkZXJDb250ZXh0KSA9PT0gdGFibGVIZWFkZXJDb250ZXh0RGVmYXVsdFZhbHVlO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCB1c2VNZXJnZWRSZWZzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VGb2N1c1Zpc2libGUsIHVzZUZvY3VzV2l0aGluIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dHMvdGFibGVDb250ZXh0JztcbmltcG9ydCB7IHVzZUlzSW5UYWJsZUhlYWRlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL3RhYmxlSGVhZGVyQ29udGV4dCc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIFRhYmxlUm93LlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVRhYmxlUm93U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJUYWJsZVJvd191bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgVGFibGVSb3dcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUYWJsZVJvd1xuICovIGV4cG9ydCBjb25zdCB1c2VUYWJsZVJvd191bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgbm9OYXRpdmVFbGVtZW50cywgc2l6ZSB9ID0gdXNlVGFibGVDb250ZXh0KCk7XG4gICAgdmFyIF9wcm9wc19hcztcbiAgICBjb25zdCByb290Q29tcG9uZW50ID0gKChfcHJvcHNfYXMgPSBwcm9wcy5hcykgIT09IG51bGwgJiYgX3Byb3BzX2FzICE9PSB2b2lkIDAgPyBfcHJvcHNfYXMgOiBub05hdGl2ZUVsZW1lbnRzKSA/ICdkaXYnIDogJ3RyJztcbiAgICBjb25zdCBmb2N1c1Zpc2libGVSZWYgPSB1c2VGb2N1c1Zpc2libGUoKTtcbiAgICBjb25zdCBmb2N1c1dpdGhpblJlZiA9IHVzZUZvY3VzV2l0aGluKCk7XG4gICAgY29uc3QgaXNIZWFkZXJSb3cgPSB1c2VJc0luVGFibGVIZWFkZXIoKTtcbiAgICB2YXIgX3Byb3BzX2FwcGVhcmFuY2U7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogcm9vdENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMocm9vdENvbXBvbmVudCwge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiB1c2VNZXJnZWRSZWZzKHJlZiwgZm9jdXNWaXNpYmxlUmVmLCBmb2N1c1dpdGhpblJlZiksXG4gICAgICAgICAgICByb2xlOiByb290Q29tcG9uZW50ID09PSAnZGl2JyA/ICdyb3cnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiByb290Q29tcG9uZW50XG4gICAgICAgIH0pLFxuICAgICAgICBzaXplLFxuICAgICAgICBub05hdGl2ZUVsZW1lbnRzLFxuICAgICAgICBhcHBlYXJhbmNlOiAoX3Byb3BzX2FwcGVhcmFuY2UgPSBwcm9wcy5hcHBlYXJhbmNlKSAhPT0gbnVsbCAmJiBfcHJvcHNfYXBwZWFyYW5jZSAhPT0gdm9pZCAwID8gX3Byb3BzX2FwcGVhcmFuY2UgOiAnbm9uZScsXG4gICAgICAgIGlzSGVhZGVyUm93XG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGFibGVSb3dcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyVGFibGVSb3dfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDdXN0b21Gb2N1c0luZGljYXRvclN0eWxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCBDRUxMX1dJRFRIID0gNDQ7XG5leHBvcnQgY29uc3QgdGFibGVTZWxlY3Rpb25DZWxsQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UYWJsZVNlbGVjdGlvbkNlbGwnLFxuICBjaGVja2JveEluZGljYXRvcjogJ2Z1aS1UYWJsZVNlbGVjdGlvbkNlbGxfX2NoZWNrYm94SW5kaWNhdG9yJyxcbiAgcmFkaW9JbmRpY2F0b3I6ICdmdWktVGFibGVTZWxlY3Rpb25DZWxsX19yYWRpb0luZGljYXRvcidcbn07XG5jb25zdCB1c2VUYWJsZUxheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjE1cHQ1ZXNcIixcbiAgICBhOWI2Nzc6IFwiZmtzYzBicFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxNXB0NWVze2Rpc3BsYXk6dGFibGUtY2VsbDt9XCIsIFwiLmZrc2MwYnB7d2lkdGg6NDRweDt9XCJdXG59KTtcbmNvbnN0IHVzZUZsZXhMYXlvdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICB4YXd6OiAwLFxuICAgIEJoNjc5NXI6IDAsXG4gICAgQm5uc3M2czogMCxcbiAgICBma21jM2E6IFwiZjFpemZ5cnJcIixcbiAgICBCZjRqZWRrOiBcImZ2cmx1MGZcIixcbiAgICBCMnUweTZiOiBcImYxYzcxeTA1XCIsXG4gICAgQnJmMXA4MDogXCJmNGQ5ajIzXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBbXCIuZjFpemZ5cnJ7ZmxleDoxIDEgMHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mdnJsdTBme21pbi13aWR0aDo0NHB4O31cIiwgXCIuZjFjNzF5MDV7bWF4LXdpZHRoOjQ0cHg7fVwiLCBcIi5mNGQ5ajIze2p1c3RpZnktY29udGVudDpjZW50ZXI7fVwiXVxufSk7XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgZnNvdzZmOiBcImYxN21jY2xhXCIsXG4gICAgSHVjZTcxOiBcImZ6NXN0aXhcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFtazhsYWlcIixcbiAgICBCZnBxN3pwOiAwLFxuICAgIGc5azZ6dDogMCxcbiAgICBCbjR2b3E5OiAwLFxuICAgIGdpdmlxczogXCJmMWR4Zm95dFwiLFxuICAgIEJ3ODFyZDc6IDAsXG4gICAga2RwdWdhOiAwLFxuICAgIGRtMjM4czogMCxcbiAgICBCNnhibW8wOiAwLFxuICAgIEIzd2hieDI6IFwiZjJrcmM5d1wiXG4gIH0sXG4gIHJhZGlvSW5kaWNhdG9yOiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCaDY3OTVyOiBcImZxZXJvcnhcIixcbiAgICBCdDk4NGdqOiBcImYxMjJuNTlcIixcbiAgICBCcmYxcDgwOiBcImY0ZDlqMjNcIlxuICB9LFxuICBzdWJ0bGU6IHtcbiAgICBhYnM2NG46IFwiZms3M3Z4MVwiLFxuICAgIEI4YTg0anY6IFwiZjF5N2lqNmNcIlxuICB9LFxuICBoaWRkZW46IHtcbiAgICBhYnM2NG46IFwiZms3M3Z4MVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxN21jY2xhe3RleHQtYWxpZ246Y2VudGVyO31cIiwgXCIuZno1c3RpeHt3aGl0ZS1zcGFjZTpub3dyYXA7fVwiLCBbXCIuZjFtazhsYWl7cGFkZGluZzowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFkeGZveXRbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17b3V0bGluZToycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjJrcmM5d1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZnFlcm9yeHtmbGV4LWdyb3c6MTt9XCIsIFwiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIiwgXCIuZjRkOWoyM3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO31cIiwgXCIuZms3M3Z4MXtvcGFjaXR5OjA7fVwiLCBcIi5mMXk3aWo2Y1tkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbntvcGFjaXR5OjE7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRhYmxlU2VsZWN0aW9uQ2VsbCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlU2VsZWN0aW9uQ2VsbFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3QgbGF5b3V0U3R5bGVzID0ge1xuICAgIHRhYmxlOiB1c2VUYWJsZUxheW91dFN0eWxlcygpLFxuICAgIGZsZXg6IHVzZUZsZXhMYXlvdXRTdHlsZXMoKVxuICB9O1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0YWJsZVNlbGVjdGlvbkNlbGxDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5ub05hdGl2ZUVsZW1lbnRzID8gbGF5b3V0U3R5bGVzLmZsZXgucm9vdCA6IGxheW91dFN0eWxlcy50YWJsZS5yb290LCBzdGF0ZS5zdWJ0bGUgJiYgc3RhdGUuY2hlY2tlZCA9PT0gZmFsc2UgJiYgc3R5bGVzLnN1YnRsZSwgc3RhdGUuaGlkZGVuICYmIHN0eWxlcy5oaWRkZW4sIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmNoZWNrYm94SW5kaWNhdG9yKSB7XG4gICAgc3RhdGUuY2hlY2tib3hJbmRpY2F0b3IuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlU2VsZWN0aW9uQ2VsbENsYXNzTmFtZXMuY2hlY2tib3hJbmRpY2F0b3IsIHN0YXRlLmNoZWNrYm94SW5kaWNhdG9yLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKHN0YXRlLnJhZGlvSW5kaWNhdG9yKSB7XG4gICAgc3RhdGUucmFkaW9JbmRpY2F0b3IuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlU2VsZWN0aW9uQ2VsbENsYXNzTmFtZXMucmFkaW9JbmRpY2F0b3IsIHN0eWxlcy5yYWRpb0luZGljYXRvciwgc3RhdGUucmFkaW9JbmRpY2F0b3IuY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGFibGVTZWxlY3Rpb25DZWxsU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzLCBzaG9ydGhhbmRzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IHRhYmxlQ2VsbEFjdGlvbnNDbGFzc05hbWVzIH0gZnJvbSAnLi4vVGFibGVDZWxsQWN0aW9ucy91c2VUYWJsZUNlbGxBY3Rpb25zU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB0YWJsZVNlbGVjdGlvbkNlbGxDbGFzc05hbWVzIH0gZnJvbSAnLi4vVGFibGVTZWxlY3Rpb25DZWxsL3VzZVRhYmxlU2VsZWN0aW9uQ2VsbFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRm9jdXNJbmRpY2F0b3JTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmV4cG9ydCBjb25zdCB0YWJsZVJvd0NsYXNzTmFtZSA9ICdmdWktVGFibGVSb3cnO1xuZXhwb3J0IGNvbnN0IHRhYmxlUm93Q2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogdGFibGVSb3dDbGFzc05hbWVcbn07XG5jb25zdCB1c2VUYWJsZUxheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjF1MHJ6Y2tcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXUwcnpja3tkaXNwbGF5OnRhYmxlLXJvdzt9XCJdXG59KTtcbmNvbnN0IHVzZUZsZXhMYXlvdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCdDk4NGdqOiBcImYxMjJuNTlcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMjJpYWd3e2Rpc3BsYXk6ZmxleDt9XCIsIFwiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIl1cbn0pO1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSByb290IHNsb3RcbiAqL1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIEJjb255cGE6IFwiZjFqYXp1NzVcIixcbiAgICBCNmd1Ym95OiBcImYxeGVxZWU2XCIsXG4gICAgQmZwcTd6cDogMCxcbiAgICBnOWs2enQ6IDAsXG4gICAgQm40dm9xOTogMCxcbiAgICBnaXZpcXM6IFwiZjFkeGZveXRcIixcbiAgICBCdzgxcmQ3OiAwLFxuICAgIGtkcHVnYTogMCxcbiAgICBkbTIzOHM6IDAsXG4gICAgQjZ4Ym1vMDogMCxcbiAgICBCM3doYngyOiBcImYya3JjOXdcIlxuICB9LFxuICByb290SW50ZXJhY3RpdmU6IHtcbiAgICBlY3IyczI6IFwiZjF3Zm41a2RcIixcbiAgICBsajcyM2g6IFwiZjFnNGhranZcIixcbiAgICBCNDN4bTl1OiBcImYxNW5neHJ3XCIsXG4gICAgaTkyMWlhOiBcImZqYmJyZHBcIixcbiAgICBKd2VmOHk6IFwiZjF0OTRibjZcIixcbiAgICBCaTkxazljOiBcImZldTFnM3VcIixcbiAgICBCcHQ2cm00OiBcImYxdW9yZmVtXCIsXG4gICAgZmY2bXBsOiBcImZ3NjBrd3dcIixcbiAgICB6ZTV4eXk6IFwiZjR4anluMVwiLFxuICAgIHBndmYzNTogXCJmZjF3Z3ZtXCIsXG4gICAgQmg3bGN6aDogW1wiZmlvYjB0dVwiLCBcImYxeDRoNzVrXCJdLFxuICAgIGRwdjNmNDogXCJmMWo2c2NnZlwiLFxuICAgIEJwbmpoYXE6IFtcImYxeDRoNzVrXCIsIFwiZmlvYjB0dVwiXVxuICB9LFxuICBtZWRpdW06IHtcbiAgICBCOXhhdjBnOiAwLFxuICAgIG9pdmp3ZTogMCxcbiAgICBCbjBxZ3ptOiAwLFxuICAgIEJnZmc1ZGE6IFwiZjFmYWNiejNcIlxuICB9LFxuICBzbWFsbDoge1xuICAgIEI5eGF2MGc6IDAsXG4gICAgb2l2andlOiAwLFxuICAgIEJuMHFnem06IDAsXG4gICAgQmdmZzVkYTogXCJmMWZhY2J6M1wiXG4gIH0sXG4gIFwiZXh0cmEtc21hbGxcIjoge1xuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiXG4gIH0sXG4gIGJyYW5kOiB7XG4gICAgRGUzcHpxOiBcImYxNnhreXNrXCIsXG4gICAgZzJ1M3dlOiBcImYxYmgzeXZ3XCIsXG4gICAgaDNjNXJtOiBbXCJmbWk3OW5pXCIsIFwiZjExZm96c3hcIl0sXG4gICAgQjl4YXYwZzogXCJmbnp3NGM2XCIsXG4gICAgemhqd3kzOiBbXCJmMTFmb3pzeFwiLCBcImZtaTc5bmlcIl0sXG4gICAgZWNyMnMyOiBcImY3dGttZnlcIixcbiAgICBsajcyM2g6IFwiZjFyMmRvc3JcIixcbiAgICB1dTY4aWQ6IDAsXG4gICAgQnhldWF0bjogMCxcbiAgICBmZWxvMzA6IDAsXG4gICAgQmM3MzZzczogMCxcbiAgICBCaHo4ODJrOiAwLFxuICAgIG41MWdwODogMCxcbiAgICBFc2h1NWw6IDAsXG4gICAgQms2cmk3bjogMCxcbiAgICB2NDljNGY6IDAsXG4gICAgQm4xZDY1cTogMCxcbiAgICBjNGV5cHo6IDAsXG4gICAgdjNheW06IDAsXG4gICAgaGZ0OWdrOiAwLFxuICAgIEJqd2FzMmY6IDAsXG4gICAgQms1bGQ4bzogMCxcbiAgICBnd3h0OXY6IDAsXG4gICAgQjZrOGdvOiBcImY5NWw5Z3dcIixcbiAgICBoNmxvNnI6IDAsXG4gICAgQmVvMmI0ejogMCxcbiAgICB3MXB3aWQ6IDAsXG4gICAgQnR5dzZhcDogMCxcbiAgICBIa3hoeXI6IFwiZnc4a21jdVwiLFxuICAgIEJyd3ZneTM6IFwiZmQ5NG41M1wiLFxuICAgIHlhZGtnbTogXCJmMWUwd2xkNVwiXG4gIH0sXG4gIG5ldXRyYWw6IHtcbiAgICB1dTY4aWQ6IDAsXG4gICAgQnhldWF0bjogMCxcbiAgICBmZWxvMzA6IDAsXG4gICAgQmM3MzZzczogMCxcbiAgICBCaHo4ODJrOiAwLFxuICAgIG41MWdwODogMCxcbiAgICBFc2h1NWw6IDAsXG4gICAgQms2cmk3bjogMCxcbiAgICB2NDljNGY6IDAsXG4gICAgQm4xZDY1cTogMCxcbiAgICBjNGV5cHo6IDAsXG4gICAgdjNheW06IDAsXG4gICAgaGZ0OWdrOiAwLFxuICAgIEJqd2FzMmY6IDAsXG4gICAgQms1bGQ4bzogMCxcbiAgICBnd3h0OXY6IDAsXG4gICAgQjZrOGdvOiBcImY5NWw5Z3dcIixcbiAgICBoNmxvNnI6IDAsXG4gICAgQmVvMmI0ejogMCxcbiAgICB3MXB3aWQ6IDAsXG4gICAgQnR5dzZhcDogMCxcbiAgICBIa3hoeXI6IFwiZnc4a21jdVwiLFxuICAgIEJyd3ZneTM6IFwiZmQ5NG41M1wiLFxuICAgIHlhZGtnbTogXCJmMWUwd2xkNVwiLFxuICAgIERlM3B6cTogXCJmcTVnbDFwXCIsXG4gICAgc2o1NXpkOiBcImYxY2dzYm12XCIsXG4gICAgSndlZjh5OiBcImYxdXFheGR0XCIsXG4gICAgZWNyMnMyOiBcImZhOW83NTRcIixcbiAgICBnMnUzd2U6IFwiZnJtc2loaFwiLFxuICAgIGgzYzVybTogW1wiZnJ0dHhhNVwiLCBcImYxMW8ycjdmXCJdLFxuICAgIEI5eGF2MGc6IFwiZmVtNWV0MFwiLFxuICAgIHpoand5MzogW1wiZjExbzJyN2ZcIiwgXCJmcnR0eGE1XCJdXG4gIH0sXG4gIG5vbmU6IHt9XG59LCB7XG4gIGQ6IFtcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmYxZXd0cWNse2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XCIsIFwiLmYxamF6dTc1W2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluIC5mdWktVGFibGVTZWxlY3Rpb25DZWxse29wYWNpdHk6MTt9XCIsIFwiLmYxeGVxZWU2W2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluIC5mdWktVGFibGVDZWxsQWN0aW9uc3tvcGFjaXR5OjE7fVwiLCBbXCIuZjFkeGZveXRbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17b3V0bGluZToycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjJrcmM5d1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWZhY2J6M3tib3JkZXItYm90dG9tOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMik7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWZhY2J6M3tib3JkZXItYm90dG9tOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMik7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZ5OXJrbmN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTIwMCk7fVwiLCBcIi5mMTZ4a3lza3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kMik7fVwiLCBcIi5mMWJoM3l2d3tib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2VJbnRlcmFjdGl2ZSk7fVwiLCBcIi5mbWk3OW5pe2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlSW50ZXJhY3RpdmUpO31cIiwgXCIuZjExZm96c3h7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZUludGVyYWN0aXZlKTt9XCIsIFwiLmZuenc0YzZ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlSW50ZXJhY3RpdmUpO31cIiwgXCIuZnE1Z2wxcHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZFNlbGVjdGVkKTt9XCIsIFwiLmYxY2dzYm12e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZnJtc2loaHtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZU9uQnJhbmQpO31cIiwgXCIuZnJ0dHhhNXtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlT25CcmFuZCk7fVwiLCBcIi5mMTFvMnI3Zntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VPbkJyYW5kKTt9XCIsIFwiLmZlbTVldDB7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2VPbkJyYW5kKTt9XCJdLFxuICBhOiBbXCIuZjF3Zm41a2Q6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiLCBcIi5mMWc0aGtqdjphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFQcmVzc2VkKTt9XCIsIFwiLmYxNW5neHJ3OmFjdGl2ZSAuZnVpLVRhYmxlQ2VsbEFjdGlvbnN7b3BhY2l0eToxO31cIiwgXCIuZmpiYnJkcDphY3RpdmUgLmZ1aS1UYWJsZVNlbGVjdGlvbkNlbGx7b3BhY2l0eToxO31cIiwgXCIuZjd0a21meTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZDIpO31cIiwgXCIuZjFyMmRvc3I6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmZhOW83NTQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kU2VsZWN0ZWQpO31cIl0sXG4gIGg6IFtcIi5mMXQ5NGJuNjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmZldTFnM3U6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFIb3Zlcik7fVwiLCBcIi5mMXVvcmZlbTpob3ZlciAuZnVpLVRhYmxlQ2VsbEFjdGlvbnN7b3BhY2l0eToxO31cIiwgXCIuZnc2MGt3dzpob3ZlciAuZnVpLVRhYmxlU2VsZWN0aW9uQ2VsbHtvcGFjaXR5OjE7fVwiLCBcIi5mMXVxYXhkdDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZFNlbGVjdGVkKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mNHhqeW4xOmhvdmVye2NvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZmMXdndm06aG92ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMXg0aDc1azpob3Zlcntib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7fS5maW9iMHR1OmhvdmVye2JvcmRlci1yaWdodC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWo2c2NnZjpob3Zlcntib3JkZXItYm90dG9tLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmY5NWw5Z3d7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDt9fVwiLCB7XG4gICAgcDogLTIsXG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ3OGttY3V7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO319XCIsIHtcbiAgICBwOiAtMSxcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmQ5NG41M3tib3gtc2l6aW5nOmJvcmRlci1ib3g7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWUwd2xkNTpmb2N1cy12aXNpYmxle291dGxpbmUtb2Zmc2V0Oi00cHg7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBUYWJsZVJvdyBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlUm93U3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBjb25zdCBsYXlvdXRTdHlsZXMgPSB7XG4gICAgdGFibGU6IHVzZVRhYmxlTGF5b3V0U3R5bGVzKCksXG4gICAgZmxleDogdXNlRmxleExheW91dFN0eWxlcygpXG4gIH07XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlUm93Q2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgIXN0YXRlLmlzSGVhZGVyUm93ICYmIHN0eWxlcy5yb290SW50ZXJhY3RpdmUsIHN0eWxlc1tzdGF0ZS5zaXplXSwgc3RhdGUubm9OYXRpdmVFbGVtZW50cyA/IGxheW91dFN0eWxlcy5mbGV4LnJvb3QgOiBsYXlvdXRTdHlsZXMudGFibGUucm9vdCwgc3R5bGVzW3N0YXRlLmFwcGVhcmFuY2VdLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUYWJsZVJvd1N0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGFibGVSb3dfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlUm93JztcbmltcG9ydCB7IHJlbmRlclRhYmxlUm93X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJUYWJsZVJvdyc7XG5pbXBvcnQgeyB1c2VUYWJsZVJvd1N0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFibGVSb3dTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBUYWJsZVJvdyBjb21wb25lbnRcbiAqLyBleHBvcnQgY29uc3QgVGFibGVSb3cgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUYWJsZVJvd191bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUYWJsZVJvd1N0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUYWJsZVJvd1N0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGFibGVSb3dfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UYWJsZVJvdy5kaXNwbGF5TmFtZSA9ICdUYWJsZVJvdyc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZVRhYmxlQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHRzL3RhYmxlQ29udGV4dCc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIFRhYmxlQm9keS5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VUYWJsZUJvZHlTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclRhYmxlQm9keV91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgVGFibGVCb2R5XG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgVGFibGVCb2R5XG4gKi8gZXhwb3J0IGNvbnN0IHVzZVRhYmxlQm9keV91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgbm9OYXRpdmVFbGVtZW50cyB9ID0gdXNlVGFibGVDb250ZXh0KCk7XG4gICAgdmFyIF9wcm9wc19hcztcbiAgICBjb25zdCByb290Q29tcG9uZW50ID0gKChfcHJvcHNfYXMgPSBwcm9wcy5hcykgIT09IG51bGwgJiYgX3Byb3BzX2FzICE9PSB2b2lkIDAgPyBfcHJvcHNfYXMgOiBub05hdGl2ZUVsZW1lbnRzKSA/ICdkaXYnIDogJ3Rib2R5JztcbiAgICByZXR1cm4ge1xuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiByb290Q29tcG9uZW50XG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcyhyb290Q29tcG9uZW50LCB7XG4gICAgICAgICAgICAvLyBGSVhNRTpcbiAgICAgICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgIHJvbGU6IHJvb3RDb21wb25lbnQgPT09ICdkaXYnID8gJ3Jvd2dyb3VwJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogcm9vdENvbXBvbmVudFxuICAgICAgICB9KSxcbiAgICAgICAgbm9OYXRpdmVFbGVtZW50c1xuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRhYmxlQm9keVxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUYWJsZUJvZHlfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IG1lcmdlQ2xhc3NlcywgX19zdHlsZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5jb25zdCB1c2VUYWJsZUxheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjF0cDFhdm5cIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXRwMWF2bntkaXNwbGF5OnRhYmxlLXJvdy1ncm91cDt9XCJdXG59KTtcbmNvbnN0IHVzZUZsZXhMYXlvdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImZ0Z20zMDRcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mdGdtMzA0e2Rpc3BsYXk6YmxvY2s7fVwiXVxufSk7XG5leHBvcnQgY29uc3QgdGFibGVCb2R5Q2xhc3NOYW1lID0gJ2Z1aS1UYWJsZUJvZHknO1xuZXhwb3J0IGNvbnN0IHRhYmxlQm9keUNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktVGFibGVCb2R5J1xufTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgVGFibGVCb2R5IHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVGFibGVCb2R5U3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IGxheW91dFN0eWxlcyA9IHtcbiAgICB0YWJsZTogdXNlVGFibGVMYXlvdXRTdHlsZXMoKSxcbiAgICBmbGV4OiB1c2VGbGV4TGF5b3V0U3R5bGVzKClcbiAgfTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFibGVCb2R5Q2xhc3NOYW1lLCBzdGF0ZS5ub05hdGl2ZUVsZW1lbnRzID8gbGF5b3V0U3R5bGVzLmZsZXgucm9vdCA6IGxheW91dFN0eWxlcy50YWJsZS5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUYWJsZUJvZHlTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRhYmxlQm9keV91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFibGVCb2R5JztcbmltcG9ydCB7IHJlbmRlclRhYmxlQm9keV91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVGFibGVCb2R5JztcbmltcG9ydCB7IHVzZVRhYmxlQm9keVN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFibGVCb2R5U3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogVGFibGVCb2R5IGNvbXBvbmVudFxuICovIGV4cG9ydCBjb25zdCBUYWJsZUJvZHkgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUYWJsZUJvZHlfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlVGFibGVCb2R5U3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZVRhYmxlQm9keVN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGFibGVCb2R5X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuVGFibGVCb2R5LmRpc3BsYXlOYW1lID0gJ1RhYmxlQm9keSc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGFibGUuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlVGFibGVTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclRhYmxlX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUYWJsZVxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIFRhYmxlXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVRhYmxlX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgdmFyIF9wcm9wc19hcztcbiAgICBjb25zdCByb290Q29tcG9uZW50ID0gKChfcHJvcHNfYXMgPSBwcm9wcy5hcykgIT09IG51bGwgJiYgX3Byb3BzX2FzICE9PSB2b2lkIDAgPyBfcHJvcHNfYXMgOiBwcm9wcy5ub05hdGl2ZUVsZW1lbnRzKSA/ICdkaXYnIDogJ3RhYmxlJztcbiAgICB2YXIgX3Byb3BzX3NpemUsIF9wcm9wc19ub05hdGl2ZUVsZW1lbnRzLCBfcHJvcHNfc29ydGFibGU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogcm9vdENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMocm9vdENvbXBvbmVudCwge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiByZWYsXG4gICAgICAgICAgICByb2xlOiByb290Q29tcG9uZW50ID09PSAnZGl2JyA/ICd0YWJsZScgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6IHJvb3RDb21wb25lbnRcbiAgICAgICAgfSksXG4gICAgICAgIHNpemU6IChfcHJvcHNfc2l6ZSA9IHByb3BzLnNpemUpICE9PSBudWxsICYmIF9wcm9wc19zaXplICE9PSB2b2lkIDAgPyBfcHJvcHNfc2l6ZSA6ICdtZWRpdW0nLFxuICAgICAgICBub05hdGl2ZUVsZW1lbnRzOiAoX3Byb3BzX25vTmF0aXZlRWxlbWVudHMgPSBwcm9wcy5ub05hdGl2ZUVsZW1lbnRzKSAhPT0gbnVsbCAmJiBfcHJvcHNfbm9OYXRpdmVFbGVtZW50cyAhPT0gdm9pZCAwID8gX3Byb3BzX25vTmF0aXZlRWxlbWVudHMgOiBmYWxzZSxcbiAgICAgICAgc29ydGFibGU6IChfcHJvcHNfc29ydGFibGUgPSBwcm9wcy5zb3J0YWJsZSkgIT09IG51bGwgJiYgX3Byb3BzX3NvcnRhYmxlICE9PSB2b2lkIDAgPyBfcHJvcHNfc29ydGFibGUgOiBmYWxzZVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBUYWJsZUNvbnRleHRQcm92aWRlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL3RhYmxlQ29udGV4dCc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRhYmxlXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRhYmxlX3Vuc3RhYmxlID0gKHN0YXRlLCBjb250ZXh0VmFsdWVzKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFRhYmxlQ29udGV4dFByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLnRhYmxlLFxuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IHRhYmxlQ2xhc3NOYW1lID0gJ2Z1aS1UYWJsZSc7XG5leHBvcnQgY29uc3QgdGFibGVDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRhYmxlJ1xufTtcbmNvbnN0IHVzZVRhYmxlTGF5b3V0U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge1xuICAgIG1jOWw1eDogXCJmMXc0bm1wMFwiLFxuICAgIGhhNGRveTogXCJmbXJ2NGxzXCIsXG4gICAgYTliNjc3OiBcImZseTV4M2ZcIixcbiAgICBCNzNtZmEzOiBcImYxNG0zbmlwXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjF3NG5tcDB7ZGlzcGxheTp0YWJsZTt9XCIsIFwiLmZtcnY0bHN7dmVydGljYWwtYWxpZ246bWlkZGxlO31cIiwgXCIuZmx5NXgzZnt3aWR0aDoxMDAlO31cIiwgXCIuZjE0bTNuaXB7dGFibGUtbGF5b3V0OmZpeGVkO31cIl1cbn0pO1xuY29uc3QgdXNlRmxleExheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZnRnbTMwNFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZ0Z20zMDR7ZGlzcGxheTpibG9jazt9XCJdXG59KTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgcm9vdCBzbG90XG4gKi9cbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBwbzUzcDg6IFwiZmdrYjQ3alwiLFxuICAgIERlM3B6cTogXCJmaG92cTl2XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZmdrYjQ3antib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7fVwiLCBcIi5maG92cTl2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kKTt9XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgVGFibGUgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VUYWJsZVN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3QgbGF5b3V0U3R5bGVzID0ge1xuICAgIHRhYmxlOiB1c2VUYWJsZUxheW91dFN0eWxlcygpLFxuICAgIGZsZXg6IHVzZUZsZXhMYXlvdXRTdHlsZXMoKVxuICB9O1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0YWJsZUNsYXNzTmFtZSwgc3R5bGVzLnJvb3QsIHN0YXRlLm5vTmF0aXZlRWxlbWVudHMgPyBsYXlvdXRTdHlsZXMuZmxleC5yb290IDogbGF5b3V0U3R5bGVzLnRhYmxlLnJvb3QsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVRhYmxlU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZnVuY3Rpb24gdXNlVGFibGVDb250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKSB7XG4gICAgY29uc3QgeyBzaXplLCBub05hdGl2ZUVsZW1lbnRzLCBzb3J0YWJsZSB9ID0gc3RhdGU7XG4gICAgY29uc3QgdGFibGVDb250ZXh0ID0gUmVhY3QudXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIG5vTmF0aXZlRWxlbWVudHMsXG4gICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgc29ydGFibGVcbiAgICAgICAgfSksIFtcbiAgICAgICAgbm9OYXRpdmVFbGVtZW50cyxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgc29ydGFibGVcbiAgICBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0YWJsZTogdGFibGVDb250ZXh0XG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRhYmxlX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUYWJsZSc7XG5pbXBvcnQgeyByZW5kZXJUYWJsZV91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVGFibGUnO1xuaW1wb3J0IHsgdXNlVGFibGVTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUNvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlQ29udGV4dFZhbHVlcyc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbi8qKlxuICogVGFibGUgY29tcG9uZW50XG4gKi8gZXhwb3J0IGNvbnN0IFRhYmxlID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVGFibGVfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlVGFibGVTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlVGFibGVTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRhYmxlX3Vuc3RhYmxlKHN0YXRlLCB1c2VUYWJsZUNvbnRleHRWYWx1ZXNfdW5zdGFibGUoc3RhdGUpKTtcbn0pO1xuVGFibGUuZGlzcGxheU5hbWUgPSAnVGFibGUnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cy90YWJsZUNvbnRleHQnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBUYWJsZUhlYWRlci5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VUYWJsZUhlYWRlclN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyVGFibGVIZWFkZXJfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFRhYmxlSGVhZGVyXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgVGFibGVIZWFkZXJcbiAqLyBleHBvcnQgY29uc3QgdXNlVGFibGVIZWFkZXJfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IG5vTmF0aXZlRWxlbWVudHMgfSA9IHVzZVRhYmxlQ29udGV4dCgpO1xuICAgIHZhciBfcHJvcHNfYXM7XG4gICAgY29uc3Qgcm9vdENvbXBvbmVudCA9ICgoX3Byb3BzX2FzID0gcHJvcHMuYXMpICE9PSBudWxsICYmIF9wcm9wc19hcyAhPT0gdm9pZCAwID8gX3Byb3BzX2FzIDogbm9OYXRpdmVFbGVtZW50cykgPyAnZGl2JyA6ICd0aGVhZCc7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogcm9vdENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMocm9vdENvbXBvbmVudCwge1xuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICAvLyBgcmVmYCBpcyB3cm9uZ2x5IGFzc2lnbmVkIHRvIGJlIGBIVE1MRWxlbWVudGAgaW5zdGVhZCBvZiBgSFRNTERpdkVsZW1lbnRgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UgdG8gZml4IGl0LCB3ZSBhcmUgY2FzdGluZyByZWYgdG8gaXQncyBwcm9wZXIgdHlwZVxuICAgICAgICAgICAgcmVmOiByZWYsXG4gICAgICAgICAgICByb2xlOiByb290Q29tcG9uZW50ID09PSAnZGl2JyA/ICdyb3dncm91cCcgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6IHJvb3RDb21wb25lbnRcbiAgICAgICAgfSksXG4gICAgICAgIG5vTmF0aXZlRWxlbWVudHNcbiAgICB9O1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDb250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy90YWJsZUhlYWRlckNvbnRleHQnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBUYWJsZUhlYWRlclxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUYWJsZUhlYWRlcl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChUYWJsZUhlYWRlckNvbnRleHRQcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7fSlcbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyBtZXJnZUNsYXNzZXMsIF9fc3R5bGVzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuZXhwb3J0IGNvbnN0IHRhYmxlSGVhZGVyQ2xhc3NOYW1lID0gJ2Z1aS1UYWJsZUhlYWRlcic7XG5leHBvcnQgY29uc3QgdGFibGVIZWFkZXJDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRhYmxlSGVhZGVyJ1xufTtcbmNvbnN0IHVzZUZsZXhMYXlvdXRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImZ0Z20zMDRcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mdGdtMzA0e2Rpc3BsYXk6YmxvY2s7fVwiXVxufSk7XG5jb25zdCB1c2VUYWJsZUxheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjF0cDFhdm5cIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXRwMWF2bntkaXNwbGF5OnRhYmxlLXJvdy1ncm91cDt9XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgVGFibGVIZWFkZXIgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VUYWJsZUhlYWRlclN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBsYXlvdXRTdHlsZXMgPSB7XG4gICAgdGFibGU6IHVzZVRhYmxlTGF5b3V0U3R5bGVzKCksXG4gICAgZmxleDogdXNlRmxleExheW91dFN0eWxlcygpXG4gIH07XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlSGVhZGVyQ2xhc3NOYW1lLCBzdGF0ZS5ub05hdGl2ZUVsZW1lbnRzID8gbGF5b3V0U3R5bGVzLmZsZXgucm9vdCA6IGxheW91dFN0eWxlcy50YWJsZS5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUYWJsZUhlYWRlclN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGFibGVIZWFkZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlSGVhZGVyJztcbmltcG9ydCB7IHJlbmRlclRhYmxlSGVhZGVyX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJUYWJsZUhlYWRlcic7XG5pbXBvcnQgeyB1c2VUYWJsZUhlYWRlclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFibGVIZWFkZXJTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBUYWJsZUhlYWRlciBjb21wb25lbnRcbiAqLyBleHBvcnQgY29uc3QgVGFibGVIZWFkZXIgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUYWJsZUhlYWRlcl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUYWJsZUhlYWRlclN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUYWJsZUhlYWRlclN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGFibGVIZWFkZXJfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UYWJsZUhlYWRlci5kaXNwbGF5TmFtZSA9ICdUYWJsZUhlYWRlcic7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHVzZU1lcmdlZFJlZnMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZUZvY3VzV2l0aGluIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgQXJyb3dVcFJlZ3VsYXIsIEFycm93RG93blJlZ3VsYXIgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgdXNlQVJJQUJ1dHRvblByb3BzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dHMvdGFibGVDb250ZXh0JztcbmNvbnN0IHNvcnRJY29ucyA9IHtcbiAgICBhc2NlbmRpbmc6IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChBcnJvd1VwUmVndWxhciwge1xuICAgICAgICBmb250U2l6ZTogMTJcbiAgICB9KSxcbiAgICBkZXNjZW5kaW5nOiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJyb3dEb3duUmVndWxhciwge1xuICAgICAgICBmb250U2l6ZTogMTJcbiAgICB9KVxufTtcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGFibGVIZWFkZXJDZWxsLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVRhYmxlSGVhZGVyQ2VsbFN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyVGFibGVIZWFkZXJDZWxsX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUYWJsZUhlYWRlckNlbGxcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUYWJsZUhlYWRlckNlbGxcbiAqLyBleHBvcnQgY29uc3QgdXNlVGFibGVIZWFkZXJDZWxsX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBub05hdGl2ZUVsZW1lbnRzLCBzb3J0YWJsZTogY29udGV4dFNvcnRhYmxlIH0gPSB1c2VUYWJsZUNvbnRleHQoKTtcbiAgICBjb25zdCB7IHNvcnRhYmxlID0gY29udGV4dFNvcnRhYmxlIH0gPSBwcm9wcztcbiAgICB2YXIgX3Byb3BzX2FzO1xuICAgIGNvbnN0IHJvb3RDb21wb25lbnQgPSAoKF9wcm9wc19hcyA9IHByb3BzLmFzKSAhPT0gbnVsbCAmJiBfcHJvcHNfYXMgIT09IHZvaWQgMCA/IF9wcm9wc19hcyA6IG5vTmF0aXZlRWxlbWVudHMpID8gJ2RpdicgOiAndGgnO1xuICAgIGNvbnN0IGJ1dHRvblNsb3QgPSBzbG90LmFsd2F5cyhwcm9wcy5idXR0b24sIHtcbiAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnLFxuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIGFzOiAnZGl2JyxcbiAgICAgICAgICAgIC4uLiFzb3J0YWJsZSAmJiB7XG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgdmFyIF9wcm9wc19zb3J0RGlyZWN0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6IHJvb3RDb21wb25lbnQsXG4gICAgICAgICAgICBidXR0b246ICdkaXYnLFxuICAgICAgICAgICAgc29ydEljb246ICdzcGFuJyxcbiAgICAgICAgICAgIGFzaWRlOiAnc3BhbidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKHJvb3RDb21wb25lbnQsIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIHVzZUZvY3VzV2l0aGluKCkpLFxuICAgICAgICAgICAgcm9sZTogcm9vdENvbXBvbmVudCA9PT0gJ2RpdicgPyAnY29sdW1uaGVhZGVyJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhcmlhLXNvcnQnOiBzb3J0YWJsZSA/IChfcHJvcHNfc29ydERpcmVjdGlvbiA9IHByb3BzLnNvcnREaXJlY3Rpb24pICE9PSBudWxsICYmIF9wcm9wc19zb3J0RGlyZWN0aW9uICE9PSB2b2lkIDAgPyBfcHJvcHNfc29ydERpcmVjdGlvbiA6ICdub25lJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogcm9vdENvbXBvbmVudFxuICAgICAgICB9KSxcbiAgICAgICAgYXNpZGU6IHNsb3Qub3B0aW9uYWwocHJvcHMuYXNpZGUsIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSksXG4gICAgICAgIHNvcnRJY29uOiBzbG90Lm9wdGlvbmFsKHByb3BzLnNvcnRJY29uLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6ICEhcHJvcHMuc29ydERpcmVjdGlvbixcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBwcm9wcy5zb3J0RGlyZWN0aW9uID8gc29ydEljb25zW3Byb3BzLnNvcnREaXJlY3Rpb25dIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KSxcbiAgICAgICAgYnV0dG9uOiB1c2VBUklBQnV0dG9uUHJvcHMoYnV0dG9uU2xvdC5hcywgYnV0dG9uU2xvdCksXG4gICAgICAgIHNvcnRhYmxlLFxuICAgICAgICBub05hdGl2ZUVsZW1lbnRzXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGFibGVIZWFkZXJDZWxsXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRhYmxlSGVhZGVyQ2VsbF91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5idXR0b24sIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5yb290LmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zb3J0SWNvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuc29ydEljb24sIHt9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RhdGUuYXNpZGUgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmFzaWRlLCB7fSlcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRm9jdXNJbmRpY2F0b3JTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmV4cG9ydCBjb25zdCB0YWJsZUhlYWRlckNlbGxDbGFzc05hbWUgPSAnZnVpLVRhYmxlSGVhZGVyQ2VsbCc7XG5leHBvcnQgY29uc3QgdGFibGVIZWFkZXJDZWxsQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UYWJsZUhlYWRlckNlbGwnLFxuICBidXR0b246ICdmdWktVGFibGVIZWFkZXJDZWxsX19idXR0b24nLFxuICBzb3J0SWNvbjogJ2Z1aS1UYWJsZUhlYWRlckNlbGxfX3NvcnRJY29uJyxcbiAgYXNpZGU6ICdmdWktVGFibGVIZWFkZXJDZWxsX19hc2lkZSdcbn07XG5jb25zdCB1c2VUYWJsZUxheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjE1cHQ1ZXNcIixcbiAgICBoYTRkb3k6IFwiZm1ydjRsc1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxNXB0NWVze2Rpc3BsYXk6dGFibGUtY2VsbDt9XCIsIFwiLmZtcnY0bHN7dmVydGljYWwtYWxpZ246bWlkZGxlO31cIl1cbn0pO1xuY29uc3QgdXNlRmxleExheW91dFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiLFxuICAgIHhhd3o6IDAsXG4gICAgQmg2Nzk1cjogMCxcbiAgICBCbm5zczZzOiAwLFxuICAgIGZrbWMzYTogXCJmMWl6ZnlyclwiLFxuICAgIEJmNGplZGs6IFwiZjEwdGlxaXhcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMjJpYWd3e2Rpc3BsYXk6ZmxleDt9XCIsIFtcIi5mMWl6ZnlycntmbGV4OjEgMSAwcHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxMHRpcWl4e21pbi13aWR0aDowcHg7fVwiXVxufSk7XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYzZ3BrcnVcIixcbiAgICByb2JrZzE6IDAsXG4gICAgQm12aDIweDogMCxcbiAgICBCM254anNjOiAwLFxuICAgIEJta2hjc3g6IFwiZjE0eW00cTJcIixcbiAgICBCOG9zanp4OiAwLFxuICAgIHBlaHpkMzogMCxcbiAgICBCbHN2OXRlOiAwLFxuICAgIHU3eGVicTogMCxcbiAgICBCc3Z3bWY3OiBcImYxZXVvdTE4XCIsXG4gICAgcWhmOHhxOiBcImYxMHBpMTNuXCJcbiAgfSxcbiAgcm9vdEludGVyYWN0aXZlOiB7XG4gICAgSndlZjh5OiBcImYxdDk0Ym42XCIsXG4gICAgZWNyMnMyOiBcImYxd2ZuNWtkXCJcbiAgfSxcbiAgcmVzZXRCdXR0b246IHtcbiAgICBCM3J6azh3OiBcImZxNm5tdG5cIixcbiAgICBCN2NrODRkOiBcImYxZTRscWx6XCIsXG4gICAgRGUzcHpxOiBcImYxdTJyNDl3XCIsXG4gICAgc2o1NXpkOiBcImYxeW0zYng0XCIsXG4gICAgQmFocXRyZjogXCJmMW1vMGlicFwiLFxuICAgIEJlMnR3ZDc6IFwiZmpveTU2OFwiLFxuICAgIEJnOTZnd3A6IFwiZnl0ZHUyZVwiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxZ2w4MXRnXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbWs4bGFpXCIsXG4gICAgQmdmZzVkYTogMCxcbiAgICBCOXhhdjBnOiAwLFxuICAgIG9pdmp3ZTogMCxcbiAgICBCbjBxZ3ptOiAwLFxuICAgIEI0ZzluZWI6IDAsXG4gICAgemhqd3kzOiAwLFxuICAgIHd2cHFlNTogMCxcbiAgICBpYnY2aGg6IDAsXG4gICAgdTFtdGp1OiAwLFxuICAgIGgzYzVybTogMCxcbiAgICB2cmFmang6IDAsXG4gICAgQmVrcmM0aTogMCxcbiAgICBpOHZ2cWM6IDAsXG4gICAgZzJ1M3dlOiAwLFxuICAgIGljdnlvdDogMCxcbiAgICBCNGo1MmZvOiAwLFxuICAgIGlyc3dwczogXCJmM2JoZ3FoXCIsXG4gICAgZnNvdzZmOiBcImZndXNneWNcIlxuICB9LFxuICBidXR0b246IHtcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBhOWI2Nzc6IFwiZmx5NXgzZlwiLFxuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQmg2Nzk1cjogMCxcbiAgICBCcWVudmlqOiBcImYxbDAyc2psXCIsXG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgaThra3ZsOiAwLFxuICAgIEJlbHI5dzQ6IDAsXG4gICAgcm1vaHlnOiBcImZrbG41enJcIixcbiAgICBzc2hpNXc6IFwiZjFueHM1eG5cIixcbiAgICB4YXd6OiAwLFxuICAgIEJubnNzNnM6IDAsXG4gICAgZmttYzNhOiBcImYxaXpmeXJyXCIsXG4gICAgb2VhdWVoOiBcImYxczZmY25mXCJcbiAgfSxcbiAgc29ydGFibGU6IHtcbiAgICBCY2VlaTljOiBcImYxazZmZHVoXCJcbiAgfSxcbiAgc29ydEljb246IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiLFxuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiLFxuICAgIHo4dG51dDogXCJmY2x3Z2xjXCJcbiAgfSxcbiAgcmVzaXplSGFuZGxlOiB7fVxufSwge1xuICBkOiBbXCIuZmlnc29rNntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7fVwiLCBbXCIuZjNncGtydXtwYWRkaW5nOjBweCB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjE0eW00cTJbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW57b3V0bGluZToycHggc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFldW91MThbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW57Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTBwaTEzbntwb3NpdGlvbjpyZWxhdGl2ZTt9XCIsIFwiLmZxNm5tdG57cmVzaXplOmhvcml6b250YWw7fVwiLCBcIi5mMWU0bHFsentib3gtc2l6aW5nOmNvbnRlbnQtYm94O31cIiwgXCIuZjF1MnI0OXd7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O31cIiwgXCIuZjF5bTNieDR7Y29sb3I6aW5oZXJpdDt9XCIsIFwiLmYxbW8waWJwe2ZvbnQtZmFtaWx5OmluaGVyaXQ7fVwiLCBcIi5mam95NTY4e2ZvbnQtc2l6ZTppbmhlcml0O31cIiwgXCIuZnl0ZHUyZXtsaW5lLWhlaWdodDpub3JtYWw7fVwiLCBbXCIuZjFnbDgxdGd7b3ZlcmZsb3c6dmlzaWJsZTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxbWs4bGFpe3BhZGRpbmc6MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYzYmhncWh7Ym9yZGVyOm5vbmU7fVwiLCB7XG4gICAgcDogLTJcbiAgfV0sIFwiLmZndXNneWN7dGV4dC1hbGlnbjp1bnNldDt9XCIsIFwiLmZseTV4M2Z7d2lkdGg6MTAwJTt9XCIsIFwiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZnFlcm9yeHtmbGV4LWdyb3c6MTt9XCIsIFwiLmYxbDAyc2pse2hlaWdodDoxMDAlO31cIiwgXCIuZjEyMm41OXthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBbXCIuZmtsbjV6cntnYXA6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxbnhzNXhue21pbi1oZWlnaHQ6MzJweDt9XCIsIFtcIi5mMWl6ZnlycntmbGV4OjEgMSAwcHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxczZmY25me291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLmYxazZmZHVoe2N1cnNvcjpwb2ludGVyO31cIiwgXCIuZmNsd2dsY3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjaW5nVmVydGljYWxYWFMpO31cIl0sXG4gIGg6IFtcIi5mMXQ5NGJuNjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEhvdmVyKTt9XCJdLFxuICBhOiBbXCIuZjF3Zm41a2Q6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRhYmxlSGVhZGVyQ2VsbCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlSGVhZGVyQ2VsbFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3QgbGF5b3V0U3R5bGVzID0ge1xuICAgIHRhYmxlOiB1c2VUYWJsZUxheW91dFN0eWxlcygpLFxuICAgIGZsZXg6IHVzZUZsZXhMYXlvdXRTdHlsZXMoKVxuICB9O1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0YWJsZUhlYWRlckNlbGxDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5zb3J0YWJsZSAmJiBzdHlsZXMucm9vdEludGVyYWN0aXZlLCBzdGF0ZS5ub05hdGl2ZUVsZW1lbnRzID8gbGF5b3V0U3R5bGVzLmZsZXgucm9vdCA6IGxheW91dFN0eWxlcy50YWJsZS5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHN0YXRlLmJ1dHRvbi5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFibGVIZWFkZXJDZWxsQ2xhc3NOYW1lcy5idXR0b24sIHN0eWxlcy5yZXNldEJ1dHRvbiwgc3R5bGVzLmJ1dHRvbiwgc3RhdGUuc29ydGFibGUgJiYgc3R5bGVzLnNvcnRhYmxlLCBzdGF0ZS5idXR0b24uY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLnNvcnRJY29uKSB7XG4gICAgc3RhdGUuc29ydEljb24uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlSGVhZGVyQ2VsbENsYXNzTmFtZXMuc29ydEljb24sIHN0eWxlcy5zb3J0SWNvbiwgc3RhdGUuc29ydEljb24uY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUuYXNpZGUpIHtcbiAgICBzdGF0ZS5hc2lkZS5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFibGVIZWFkZXJDZWxsQ2xhc3NOYW1lcy5hc2lkZSwgc3R5bGVzLnJlc2l6ZUhhbmRsZSwgc3RhdGUuYXNpZGUuY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGFibGVIZWFkZXJDZWxsU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUYWJsZUhlYWRlckNlbGxfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlSGVhZGVyQ2VsbCc7XG5pbXBvcnQgeyByZW5kZXJUYWJsZUhlYWRlckNlbGxfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRhYmxlSGVhZGVyQ2VsbCc7XG5pbXBvcnQgeyB1c2VUYWJsZUhlYWRlckNlbGxTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlSGVhZGVyQ2VsbFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIFRhYmxlSGVhZGVyQ2VsbCBjb21wb25lbnRcbiAqLyBleHBvcnQgY29uc3QgVGFibGVIZWFkZXJDZWxsID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVGFibGVIZWFkZXJDZWxsX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRhYmxlSGVhZGVyQ2VsbFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUYWJsZUhlYWRlckNlbGxTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRhYmxlSGVhZGVyQ2VsbF91bnN0YWJsZShzdGF0ZSk7XG59KTtcblRhYmxlSGVhZGVyQ2VsbC5kaXNwbGF5TmFtZSA9ICdUYWJsZUhlYWRlckNlbGwnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSWQsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNoZWNrYm94JztcbmltcG9ydCB7IFJhZGlvIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXJhZGlvJztcbmltcG9ydCB7IHVzZVRhYmxlQ2VsbF91bnN0YWJsZSB9IGZyb20gJy4uL1RhYmxlQ2VsbC91c2VUYWJsZUNlbGwnO1xuaW1wb3J0IHsgdXNlVGFibGVDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dHMvdGFibGVDb250ZXh0Jztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGFibGVTZWxlY3Rpb25DZWxsLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVRhYmxlU2VsZWN0aW9uQ2VsbFN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyVGFibGVTZWxlY3Rpb25DZWxsX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUYWJsZVNlbGVjdGlvbkNlbGxcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUYWJsZVNlbGVjdGlvbkNlbGxcbiAqLyBleHBvcnQgY29uc3QgdXNlVGFibGVTZWxlY3Rpb25DZWxsX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgdGFibGVDZWxsU3RhdGUgPSB1c2VUYWJsZUNlbGxfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgY29uc3QgeyBub05hdGl2ZUVsZW1lbnRzIH0gPSB1c2VUYWJsZUNvbnRleHQoKTtcbiAgICBjb25zdCB7IHR5cGUgPSAnY2hlY2tib3gnLCBjaGVja2VkID0gZmFsc2UsIHN1YnRsZSA9IGZhbHNlLCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbiAgICBoaWRkZW4gPSBmYWxzZSwgaW52aXNpYmxlID0gZmFsc2UgfSA9IHByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnRhYmxlQ2VsbFN0YXRlLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICAuLi50YWJsZUNlbGxTdGF0ZS5jb21wb25lbnRzLFxuICAgICAgICAgICAgY2hlY2tib3hJbmRpY2F0b3I6IENoZWNrYm94LFxuICAgICAgICAgICAgcmFkaW9JbmRpY2F0b3I6IFJhZGlvXG4gICAgICAgIH0sXG4gICAgICAgIGNoZWNrYm94SW5kaWNhdG9yOiBzbG90Lm9wdGlvbmFsKHByb3BzLmNoZWNrYm94SW5kaWNhdG9yLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6IHR5cGUgPT09ICdjaGVja2JveCcgJiYgIWludmlzaWJsZSxcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHByb3BzLmNoZWNrZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogQ2hlY2tib3hcbiAgICAgICAgfSksXG4gICAgICAgIHJhZGlvSW5kaWNhdG9yOiBzbG90Lm9wdGlvbmFsKHByb3BzLnJhZGlvSW5kaWNhdG9yLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6IHR5cGUgPT09ICdyYWRpbycgJiYgIWludmlzaWJsZSxcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIGNoZWNrZWQ6ICEhY2hlY2tlZCxcbiAgICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB1c2VJZCgndGFibGUtc2VsZWN0aW9uLXJhZGlvJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6IFJhZGlvXG4gICAgICAgIH0pLFxuICAgICAgICB0eXBlLFxuICAgICAgICBjaGVja2VkLFxuICAgICAgICBub05hdGl2ZUVsZW1lbnRzLFxuICAgICAgICBzdWJ0bGUsXG4gICAgICAgIGhpZGRlbjogaW52aXNpYmxlIHx8IGhpZGRlblxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRhYmxlU2VsZWN0aW9uQ2VsbFxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUYWJsZVNlbGVjdGlvbkNlbGxfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHN0YXRlLnR5cGUgPT09ICdjaGVja2JveCcgJiYgc3RhdGUuY2hlY2tib3hJbmRpY2F0b3IgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmNoZWNrYm94SW5kaWNhdG9yLCB7fSksXG4gICAgICAgICAgICBzdGF0ZS50eXBlID09PSAncmFkaW8nICYmIHN0YXRlLnJhZGlvSW5kaWNhdG9yICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yYWRpb0luZGljYXRvciwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUYWJsZVNlbGVjdGlvbkNlbGxfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlU2VsZWN0aW9uQ2VsbCc7XG5pbXBvcnQgeyByZW5kZXJUYWJsZVNlbGVjdGlvbkNlbGxfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRhYmxlU2VsZWN0aW9uQ2VsbCc7XG5pbXBvcnQgeyB1c2VUYWJsZVNlbGVjdGlvbkNlbGxTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRhYmxlU2VsZWN0aW9uQ2VsbFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIFRhYmxlU2VsZWN0aW9uQ2VsbCBjb21wb25lbnRcbiAqLyBleHBvcnQgY29uc3QgVGFibGVTZWxlY3Rpb25DZWxsID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVGFibGVTZWxlY3Rpb25DZWxsX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRhYmxlU2VsZWN0aW9uQ2VsbFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUYWJsZVNlbGVjdGlvbkNlbGxTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRhYmxlU2VsZWN0aW9uQ2VsbF91bnN0YWJsZShzdGF0ZSk7XG59KTtcblRhYmxlU2VsZWN0aW9uQ2VsbC5kaXNwbGF5TmFtZSA9ICdUYWJsZVNlbGVjdGlvbkNlbGwnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cy90YWJsZUNvbnRleHQnO1xuY29uc3QgdGFibGVBdmF0YXJTaXplTWFwID0ge1xuICAgIG1lZGl1bTogMzIsXG4gICAgc21hbGw6IDI0LFxuICAgICdleHRyYS1zbWFsbCc6IDIwXG59O1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBUYWJsZUNlbGxMYXlvdXQuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlVGFibGVDZWxsTGF5b3V0U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJUYWJsZUNlbGxMYXlvdXRfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFRhYmxlQ2VsbExheW91dFxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIFRhYmxlQ2VsbExheW91dFxuICovIGV4cG9ydCBjb25zdCB1c2VUYWJsZUNlbGxMYXlvdXRfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IHNpemUgfSA9IHVzZVRhYmxlQ29udGV4dCgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgbWFpbjogJ3NwYW4nLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdzcGFuJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdkaXYnLFxuICAgICAgICAgICAgbWVkaWE6ICdzcGFuJ1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogcmVmLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgYXBwZWFyYW5jZTogcHJvcHMuYXBwZWFyYW5jZSxcbiAgICAgICAgdHJ1bmNhdGU6IHByb3BzLnRydW5jYXRlLFxuICAgICAgICBtYWluOiBzbG90Lm9wdGlvbmFsKHByb3BzLm1haW4sIHtcbiAgICAgICAgICAgIHJlbmRlckJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSksXG4gICAgICAgIG1lZGlhOiBzbG90Lm9wdGlvbmFsKHByb3BzLm1lZGlhLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ3NwYW4nXG4gICAgICAgIH0pLFxuICAgICAgICBkZXNjcmlwdGlvbjogc2xvdC5vcHRpb25hbChwcm9wcy5kZXNjcmlwdGlvbiwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdzcGFuJ1xuICAgICAgICB9KSxcbiAgICAgICAgY29udGVudDogc2xvdC5vcHRpb25hbChwcm9wcy5jb250ZW50LCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6ICEhcHJvcHMuZGVzY3JpcHRpb24gfHwgISFwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgYXZhdGFyU2l6ZTogdGFibGVBdmF0YXJTaXplTWFwW3NpemVdLFxuICAgICAgICBzaXplXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IEF2YXRhckNvbnRleHRQcm92aWRlciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1hdmF0YXInO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBUYWJsZUNlbGxMYXlvdXRcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyVGFibGVDZWxsTGF5b3V0X3Vuc3RhYmxlID0gKHN0YXRlLCBjb250ZXh0VmFsdWVzKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzdGF0ZS5tZWRpYSAmJiAvKiNfX1BVUkVfXyovIF9qc3goQXZhdGFyQ29udGV4dFByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbnRleHRWYWx1ZXMuYXZhdGFyLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubWVkaWEsIHt9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGF0ZS5jb250ZW50ICYmIC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUuY29udGVudCwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLm1haW4gJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLm1haW4sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBzdGF0ZS5yb290LmNoaWxkcmVuXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5kZXNjcmlwdGlvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuZGVzY3JpcHRpb24sIHt9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IHR5cG9ncmFwaHlTdHlsZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IHRhYmxlQ2VsbExheW91dENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktVGFibGVDZWxsTGF5b3V0JyxcbiAgbWVkaWE6ICdmdWktVGFibGVDZWxsTGF5b3V0X19tZWRpYScsXG4gIG1haW46ICdmdWktVGFibGVDZWxsTGF5b3V0X19tYWluJyxcbiAgZGVzY3JpcHRpb246ICdmdWktVGFibGVDZWxsTGF5b3V0X19kZXNjcmlwdGlvbicsXG4gIGNvbnRlbnQ6ICdmdWktVGFibGVDZWxsTGF5b3V0X19jb250ZW50J1xufTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgcm9vdCBzbG90XG4gKi9cbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiLFxuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiLFxuICAgIGk4a2t2bDogMCxcbiAgICBCZWxyOXc0OiAwLFxuICAgIHJtb2h5ZzogXCJmYXFld2Z0XCIsXG4gICAgeGF3ejogMCxcbiAgICBCaDY3OTVyOiAwLFxuICAgIEJubnNzNnM6IDAsXG4gICAgZmttYzNhOiBcImYxaXpmeXJyXCJcbiAgfSxcbiAgcm9vdFRydW5jYXRlOiB7XG4gICAgQjY4dGM4MjogXCJmMXA5bzFiYVwiXG4gIH0sXG4gIGNvbnRlbnQ6IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiLFxuICAgIEJlaXkzZTQ6IFwiZjF2eDlsNjJcIlxuICB9LFxuICBjb250ZW50VHJ1bmNhdGU6IHtcbiAgICBCNjh0YzgyOiBcImYxcDlvMWJhXCJcbiAgfSxcbiAgbWVkaWE6IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiLFxuICAgIEJ0OTg0Z2o6IFwiZjEyMm41OVwiXG4gIH0sXG4gIG1lZGlhRXh0cmFTbWFsbDoge1xuICAgIEJlMnR3ZDc6IFwiZjR5YnNyeFwiXG4gIH0sXG4gIG1lZGlhU21hbGxBbmRNZWRpdW06IHtcbiAgICBCZTJ0d2Q3OiBcImZlNWoxdWFcIlxuICB9LFxuICBtZWRpYVByaW1hcnk6IHtcbiAgICBCZTJ0d2Q3OiBcImYxcnQyYm95XCJcbiAgfSxcbiAgbWFpblByaW1hcnk6IHtcbiAgICBCaHJkN3pwOiBcImZsNDN1ZWZcIlxuICB9LFxuICBtYWluVHJ1bmNhdGU6IHtcbiAgICBCNjh0YzgyOiBcImYxcDlvMWJhXCIsXG4gICAgSHVjZTcxOiBcImZ6NXN0aXhcIixcbiAgICB5Z240NHk6IFwiZjFjbWJ1d2pcIlxuICB9LFxuICBkZXNjcmlwdGlvbjoge1xuICAgIHNqNTV6ZDogXCJma2ZxNHpiXCIsXG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmd3JjNHBtXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMTIybjU5e2FsaWduLWl0ZW1zOmNlbnRlcjt9XCIsIFtcIi5mYXFld2Z0e2dhcDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFpemZ5cnJ7ZmxleDoxIDEgMHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMXA5bzFiYXtvdmVyZmxvdy14OmhpZGRlbjt9XCIsIFwiLmYxdng5bDYye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9XCIsIFwiLmY0eWJzcnh7Zm9udC1zaXplOjE2cHg7fVwiLCBcIi5mZTVqMXVhe2ZvbnQtc2l6ZToyMHB4O31cIiwgXCIuZjFydDJib3l7Zm9udC1zaXplOjI0cHg7fVwiLCBcIi5mbDQzdWVme2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7fVwiLCBcIi5mejVzdGl4e3doaXRlLXNwYWNlOm5vd3JhcDt9XCIsIFwiLmYxY21idXdqe3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7fVwiLCBcIi5ma2ZxNHpie2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyKTt9XCIsIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZndyYzRwbXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTIwMCk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRhYmxlQ2VsbExheW91dCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlQ2VsbExheW91dFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3Qge1xuICAgIHRydW5jYXRlXG4gIH0gPSBzdGF0ZTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFibGVDZWxsTGF5b3V0Q2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgdHJ1bmNhdGUgJiYgc3R5bGVzLnJvb3RUcnVuY2F0ZSwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBjb25zdCBwcmltYXJ5ID0gc3RhdGUuYXBwZWFyYW5jZSA9PT0gJ3ByaW1hcnknO1xuICBpZiAoc3RhdGUubWVkaWEpIHtcbiAgICBjb25zdCBtZWRpYVNpemVkU3R5bGVzID0ge1xuICAgICAgc21hbGw6IHN0eWxlcy5tZWRpYVNtYWxsQW5kTWVkaXVtLFxuICAgICAgbWVkaXVtOiBzdHlsZXMubWVkaWFTbWFsbEFuZE1lZGl1bSxcbiAgICAgICdleHRyYS1zbWFsbCc6IHN0eWxlcy5tZWRpYUV4dHJhU21hbGxcbiAgICB9O1xuICAgIHN0YXRlLm1lZGlhLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0YWJsZUNlbGxMYXlvdXRDbGFzc05hbWVzLm1lZGlhLCBzdHlsZXMubWVkaWEsIG1lZGlhU2l6ZWRTdHlsZXNbc3RhdGUuc2l6ZV0sIHByaW1hcnkgJiYgc3R5bGVzLm1lZGlhUHJpbWFyeSwgc3RhdGUubWVkaWEuY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUubWFpbikge1xuICAgIHN0YXRlLm1haW4uY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRhYmxlQ2VsbExheW91dENsYXNzTmFtZXMubWFpbiwgdHJ1bmNhdGUgJiYgc3R5bGVzLm1haW5UcnVuY2F0ZSwgcHJpbWFyeSAmJiBzdHlsZXMubWFpblByaW1hcnksIHN0YXRlLm1haW4uY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUuZGVzY3JpcHRpb24pIHtcbiAgICBzdGF0ZS5kZXNjcmlwdGlvbi5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFibGVDZWxsTGF5b3V0Q2xhc3NOYW1lcy5kZXNjcmlwdGlvbiwgc3R5bGVzLmRlc2NyaXB0aW9uLCBzdGF0ZS5kZXNjcmlwdGlvbi5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzdGF0ZS5jb250ZW50KSB7XG4gICAgc3RhdGUuY29udGVudC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGFibGVDZWxsTGF5b3V0Q2xhc3NOYW1lcy5jb250ZW50LCBzdHlsZXMuY29udGVudCwgdHJ1bmNhdGUgJiYgc3R5bGVzLmNvbnRlbnRUcnVuY2F0ZSwgc3RhdGUuY29udGVudC5jbGFzc05hbWUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUYWJsZUNlbGxMYXlvdXRTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBmdW5jdGlvbiB1c2VUYWJsZUNlbGxMYXlvdXRDb250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKSB7XG4gICAgY29uc3QgeyBhdmF0YXJTaXplIH0gPSBzdGF0ZTtcbiAgICBjb25zdCBhdmF0YXIgPSBSZWFjdC51c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgc2l6ZTogYXZhdGFyU2l6ZVxuICAgICAgICB9KSwgW1xuICAgICAgICBhdmF0YXJTaXplXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXZhdGFyXG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRhYmxlQ2VsbExheW91dF91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFibGVDZWxsTGF5b3V0JztcbmltcG9ydCB7IHJlbmRlclRhYmxlQ2VsbExheW91dF91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVGFibGVDZWxsTGF5b3V0JztcbmltcG9ydCB7IHVzZVRhYmxlQ2VsbExheW91dFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGFibGVDZWxsTGF5b3V0U3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUNlbGxMYXlvdXRDb250ZXh0VmFsdWVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUYWJsZUNlbGxMYXlvdXRDb250ZXh0VmFsdWVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBUYWJsZUNlbGxMYXlvdXQgY29tcG9uZW50XG4gKi8gZXhwb3J0IGNvbnN0IFRhYmxlQ2VsbExheW91dCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRhYmxlQ2VsbExheW91dF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUYWJsZUNlbGxMYXlvdXRTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlVGFibGVDZWxsTGF5b3V0U3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJUYWJsZUNlbGxMYXlvdXRfdW5zdGFibGUoc3RhdGUsIHVzZVRhYmxlQ2VsbExheW91dENvbnRleHRWYWx1ZXNfdW5zdGFibGUoc3RhdGUpKTtcbn0pO1xuVGFibGVDZWxsTGF5b3V0LmRpc3BsYXlOYW1lID0gJ1RhYmxlQ2VsbExheW91dCc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBtZXJnZUNhbGxiYWNrcywgc2xvdCwgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IEVudGVyIH0gZnJvbSAnQGZsdWVudHVpL2tleWJvYXJkLWtleXMnO1xuaW1wb3J0IHsgdXNlRm9jdXNGaW5kZXJzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlbGF0ZWQgdG8gc2VsZWN0YWJsZSBjYXJkcy5cbiAqXG4gKiBUaGlzIGludGVybmFsIGhvb2sgY29udHJvbHMgYWxsIHRoZSBsb2dpYyBmb3Igc2VsZWN0YWJsZSBjYXJkcyBhbmQgaXNcbiAqIGludGVuZGVkIHRvIGJlIHVzZWQgYWxvbmdzaWRlIHdpdGggdXNlQ2FyZF91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgQ2FyZFxuICogQHBhcmFtIGExMXlQcm9wcyAtIGFjY2Vzc2liaWxpdHkgcHJvcHMgc2hhcmVkIGJldHdlZW4gZWxlbWVudHMgb2YgdGhlIGNhcmRcbiAqIEBwYXJhbSBjYXJkUmVmIC0gcmVmZXJlbmNlIHRvIHRoZSByb290IGVsZW1lbnQgb2YgQ2FyZFxuICovIGV4cG9ydCBjb25zdCB1c2VDYXJkU2VsZWN0YWJsZSA9IChwcm9wcywgeyByZWZlcmVuY2VMYWJlbCwgcmVmZXJlbmNlSWQgfSwgY2FyZFJlZik9PntcbiAgICBjb25zdCB7IGNoZWNrYm94ID0ge30sIG9uU2VsZWN0aW9uQ2hhbmdlLCBmbG9hdGluZ0FjdGlvbiwgb25DbGljaywgb25LZXlEb3duIH0gPSBwcm9wcztcbiAgICBjb25zdCB7IGZpbmRBbGxGb2N1c2FibGUgfSA9IHVzZUZvY3VzRmluZGVycygpO1xuICAgIGNvbnN0IGNoZWNrYm94UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBzdGF0ZTogcHJvcHMuc2VsZWN0ZWQsXG4gICAgICAgIGRlZmF1bHRTdGF0ZTogcHJvcHMuZGVmYXVsdFNlbGVjdGVkLFxuICAgICAgICBpbml0aWFsU3RhdGU6IGZhbHNlXG4gICAgfSk7XG4gICAgY29uc3Qgc2VsZWN0YWJsZSA9IFtcbiAgICAgICAgcHJvcHMuc2VsZWN0ZWQsXG4gICAgICAgIHByb3BzLmRlZmF1bHRTZWxlY3RlZCxcbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2VcbiAgICBdLnNvbWUoKHByb3ApPT50eXBlb2YgcHJvcCAhPT0gJ3VuZGVmaW5lZCcpO1xuICAgIGNvbnN0IFtzZWxlY3RGb2N1c2VkLCBzZXRTZWxlY3RGb2N1c2VkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzaG91bGRSZXN0cmljdFRyaWdnZXJBY3Rpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpPT57XG4gICAgICAgIGlmICghY2FyZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBmaW5kQWxsRm9jdXNhYmxlKGNhcmRSZWYuY3VycmVudCk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgY29uc3QgaXNFbGVtZW50SW5Gb2N1c2FibGVHcm91cCA9IGZvY3VzYWJsZUVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpPT5lbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpO1xuICAgICAgICBjb25zdCBpc0NoZWNrYm94U2xvdCA9IChjaGVja2JveFJlZiA9PT0gbnVsbCB8fCBjaGVja2JveFJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hlY2tib3hSZWYuY3VycmVudCkgPT09IHRhcmdldDtcbiAgICAgICAgcmV0dXJuIGlzRWxlbWVudEluRm9jdXNhYmxlR3JvdXAgJiYgIWlzQ2hlY2tib3hTbG90O1xuICAgIH0sIFtcbiAgICAgICAgY2FyZFJlZixcbiAgICAgICAgZmluZEFsbEZvY3VzYWJsZVxuICAgIF0pO1xuICAgIGNvbnN0IG9uQ2hhbmdlSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgaWYgKHNob3VsZFJlc3RyaWN0VHJpZ2dlckFjdGlvbihldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDaGVja2VkVmFsdWUgPSAhc2VsZWN0ZWQ7XG4gICAgICAgIHNldFNlbGVjdGVkKG5ld0NoZWNrZWRWYWx1ZSk7XG4gICAgICAgIGlmIChvblNlbGVjdGlvbkNoYW5nZSkge1xuICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogbmV3Q2hlY2tlZFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2UsXG4gICAgICAgIHNlbGVjdGVkLFxuICAgICAgICBzZXRTZWxlY3RlZCxcbiAgICAgICAgc2hvdWxkUmVzdHJpY3RUcmlnZ2VyQWN0aW9uXG4gICAgXSk7XG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgaWYgKFtcbiAgICAgICAgICAgIEVudGVyXG4gICAgICAgIF0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIG9uQ2hhbmdlSGFuZGxlcihldmVudCk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIG9uQ2hhbmdlSGFuZGxlclxuICAgIF0pO1xuICAgIGNvbnN0IGNoZWNrYm94U2xvdCA9IFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgaWYgKCFzZWxlY3RhYmxlIHx8IGZsb2F0aW5nQWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0YWJsZUNoZWNrYm94UHJvcHMgPSB7fTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZUlkKSB7XG4gICAgICAgICAgICBzZWxlY3RhYmxlQ2hlY2tib3hQcm9wc1snYXJpYS1sYWJlbGxlZGJ5J10gPSByZWZlcmVuY2VJZDtcbiAgICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2VMYWJlbCkge1xuICAgICAgICAgICAgc2VsZWN0YWJsZUNoZWNrYm94UHJvcHNbJ2FyaWEtbGFiZWwnXSA9IHJlZmVyZW5jZUxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzbG90Lm9wdGlvbmFsKGNoZWNrYm94LCB7XG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICByZWY6IGNoZWNrYm94UmVmLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgICAgICAgY2hlY2tlZDogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IChldmVudCk9Pm9uQ2hhbmdlSGFuZGxlcihldmVudCksXG4gICAgICAgICAgICAgICAgb25Gb2N1czogKCk9PnNldFNlbGVjdEZvY3VzZWQodHJ1ZSksXG4gICAgICAgICAgICAgICAgb25CbHVyOiAoKT0+c2V0U2VsZWN0Rm9jdXNlZChmYWxzZSksXG4gICAgICAgICAgICAgICAgLi4uc2VsZWN0YWJsZUNoZWNrYm94UHJvcHNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2lucHV0J1xuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGNoZWNrYm94LFxuICAgICAgICBmbG9hdGluZ0FjdGlvbixcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgIG9uQ2hhbmdlSGFuZGxlcixcbiAgICAgICAgcmVmZXJlbmNlSWQsXG4gICAgICAgIHJlZmVyZW5jZUxhYmVsXG4gICAgXSk7XG4gICAgY29uc3QgZmxvYXRpbmdBY3Rpb25TbG90ID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBpZiAoIWZsb2F0aW5nQWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNsb3Qub3B0aW9uYWwoZmxvYXRpbmdBY3Rpb24sIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIHJlZjogY2hlY2tib3hSZWZcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBmbG9hdGluZ0FjdGlvblxuICAgIF0pO1xuICAgIGNvbnN0IHNlbGVjdGFibGVDYXJkUHJvcHMgPSBSZWFjdC51c2VNZW1vKCgpPT57XG4gICAgICAgIGlmICghc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9uQ2xpY2s6IG1lcmdlQ2FsbGJhY2tzKG9uQ2xpY2ssIG9uQ2hhbmdlSGFuZGxlciksXG4gICAgICAgICAgICBvbktleURvd246IG1lcmdlQ2FsbGJhY2tzKG9uS2V5RG93biwgb25LZXlEb3duSGFuZGxlcilcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgIG9uQ2hhbmdlSGFuZGxlcixcbiAgICAgICAgb25DbGljayxcbiAgICAgICAgb25LZXlEb3duLFxuICAgICAgICBvbktleURvd25IYW5kbGVyXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgIHNlbGVjdEZvY3VzZWQsXG4gICAgICAgIHNlbGVjdGFibGVDYXJkUHJvcHMsXG4gICAgICAgIGNoZWNrYm94U2xvdCxcbiAgICAgICAgZmxvYXRpbmdBY3Rpb25TbG90XG4gICAgfTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjYXJkQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IGNhcmRDb250ZXh0RGVmYXVsdFZhbHVlID0ge1xuICAgIHNlbGVjdGFibGVBMTF5UHJvcHM6IHtcbiAgICAgICAgcmVmZXJlbmNlSWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgc2V0UmVmZXJlbmNlSWQgKCkge1xuICAgICAgICAvKiBOb29wICovIH0sXG4gICAgICAgIHJlZmVyZW5jZUxhYmVsOiB1bmRlZmluZWQsXG4gICAgICAgIHNldFJlZmVyZW5jZUxhYmVsICgpIHtcbiAgICAgICAgLyogTm9vcCAqLyB9XG4gICAgfVxufTtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IENhcmRQcm92aWRlciA9IGNhcmRDb250ZXh0LlByb3ZpZGVyO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgdXNlQ2FyZENvbnRleHRfdW5zdGFibGUgPSAoKT0+e1xuICAgIHZhciBfUmVhY3RfdXNlQ29udGV4dDtcbiAgICByZXR1cm4gKF9SZWFjdF91c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChjYXJkQ29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IGNhcmRDb250ZXh0RGVmYXVsdFZhbHVlO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgdXNlTWVyZ2VkUmVmcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlRm9jdXNhYmxlR3JvdXAsIHVzZUZvY3VzV2l0aGluIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdXNlQ2FyZFNlbGVjdGFibGUgfSBmcm9tICcuL3VzZUNhcmRTZWxlY3RhYmxlJztcbmltcG9ydCB7IGNhcmRDb250ZXh0RGVmYXVsdFZhbHVlIH0gZnJvbSAnLi9DYXJkQ29udGV4dCc7XG5jb25zdCBmb2N1c01hcCA9IHtcbiAgICBvZmY6IHVuZGVmaW5lZCxcbiAgICAnbm8tdGFiJzogJ2xpbWl0ZWQtdHJhcC1mb2N1cycsXG4gICAgJ3RhYi1leGl0JzogJ2xpbWl0ZWQnLFxuICAgICd0YWItb25seSc6ICd1bmxpbWl0ZWQnXG59O1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIGZvciBpbnRlcmFjdGl2ZSBjYXJkcy5cbiAqXG4gKiBUaGlzIGludGVybmFsIGhvb2sgZGVmaW5lcyBpZiB0aGUgY2FyZCBpcyBpbnRlcmFjdGl2ZVxuICogYW5kIGNvbnRyb2wgZm9jdXMgcHJvcGVydGllcyBiYXNlZCBvbiB0aGF0LlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBDYXJkXG4gKi8gY29uc3QgdXNlQ2FyZEludGVyYWN0aXZlID0gKHsgZm9jdXNNb2RlOiBpbml0aWFsRm9jdXNNb2RlLCAuLi5wcm9wcyB9KT0+e1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gW1xuICAgICAgICAnb25DbGljaycsXG4gICAgICAgICdvbkRvdWJsZUNsaWNrJyxcbiAgICAgICAgJ29uTW91c2VVcCcsXG4gICAgICAgICdvbk1vdXNlRG93bicsXG4gICAgICAgICdvblBvaW50ZXJVcCcsXG4gICAgICAgICdvblBvaW50ZXJEb3duJyxcbiAgICAgICAgJ29uVG91Y2hTdGFydCcsXG4gICAgICAgICdvblRvdWNoRW5kJyxcbiAgICAgICAgJ29uRHJhZ1N0YXJ0JyxcbiAgICAgICAgJ29uRHJhZ0VuZCdcbiAgICBdLnNvbWUoKHByb3ApPT5wcm9wc1twcm9wXSk7XG4gICAgLy8gZGVmYXVsdCBmb2N1c01vZGUgdG8gdGFiLW9ubHkgd2hlbiBpbnRlcmFjdGl2ZSwgYW5kIG9mZiB3aGVuIG5vdFxuICAgIGNvbnN0IGZvY3VzTW9kZSA9IGluaXRpYWxGb2N1c01vZGUgIT09IG51bGwgJiYgaW5pdGlhbEZvY3VzTW9kZSAhPT0gdm9pZCAwID8gaW5pdGlhbEZvY3VzTW9kZSA6IGludGVyYWN0aXZlID8gJ25vLXRhYicgOiAnb2ZmJztcbiAgICBjb25zdCBncm91cHBlckF0dHJzID0gdXNlRm9jdXNhYmxlR3JvdXAoe1xuICAgICAgICB0YWJCZWhhdmlvcjogZm9jdXNNYXBbZm9jdXNNb2RlXVxuICAgIH0pO1xuICAgIGNvbnN0IGludGVyYWN0aXZlRm9jdXNBdHRyaWJ1dGVzID0ge1xuICAgICAgICAuLi5ncm91cHBlckF0dHJzLFxuICAgICAgICB0YWJJbmRleDogMFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaW50ZXJhY3RpdmUsXG4gICAgICAgIGZvY3VzQXR0cmlidXRlczogZm9jdXNNb2RlID09PSAnb2ZmJyA/IG51bGwgOiBpbnRlcmFjdGl2ZUZvY3VzQXR0cmlidXRlc1xuICAgIH07XG59O1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBDYXJkLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZUNhcmRTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlckNhcmRfdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIENhcmRcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gdGhlIHJvb3QgZWxlbWVudCBvZiBDYXJkXG4gKi8gZXhwb3J0IGNvbnN0IHVzZUNhcmRfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IGFwcGVhcmFuY2UgPSAnZmlsbGVkJywgb3JpZW50YXRpb24gPSAndmVydGljYWwnLCBzaXplID0gJ21lZGl1bScgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtyZWZlcmVuY2VJZCwgc2V0UmVmZXJlbmNlSWRdID0gUmVhY3QudXNlU3RhdGUoY2FyZENvbnRleHREZWZhdWx0VmFsdWUuc2VsZWN0YWJsZUExMXlQcm9wcy5yZWZlcmVuY2VJZCk7XG4gICAgY29uc3QgW3JlZmVyZW5jZUxhYmVsLCBzZXRSZWZlcmVuY2VMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZShjYXJkQ29udGV4dERlZmF1bHRWYWx1ZS5zZWxlY3RhYmxlQTExeVByb3BzLnJlZmVyZW5jZUlkKTtcbiAgICBjb25zdCBjYXJkQmFzZVJlZiA9IHVzZUZvY3VzV2l0aGluKCk7XG4gICAgY29uc3QgeyBzZWxlY3RhYmxlLCBzZWxlY3RlZCwgc2VsZWN0YWJsZUNhcmRQcm9wcywgc2VsZWN0Rm9jdXNlZCwgY2hlY2tib3hTbG90LCBmbG9hdGluZ0FjdGlvblNsb3QgfSA9IHVzZUNhcmRTZWxlY3RhYmxlKHByb3BzLCB7XG4gICAgICAgIHJlZmVyZW5jZUlkLFxuICAgICAgICByZWZlcmVuY2VMYWJlbFxuICAgIH0sIGNhcmRCYXNlUmVmKTtcbiAgICBjb25zdCBjYXJkUmVmID0gdXNlTWVyZ2VkUmVmcyhjYXJkQmFzZVJlZiwgcmVmKTtcbiAgICBjb25zdCB7IGludGVyYWN0aXZlLCBmb2N1c0F0dHJpYnV0ZXMgfSA9IHVzZUNhcmRJbnRlcmFjdGl2ZShwcm9wcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgb3JpZW50YXRpb24sXG4gICAgICAgIHNpemUsXG4gICAgICAgIGludGVyYWN0aXZlLFxuICAgICAgICBzZWxlY3RhYmxlLFxuICAgICAgICBzZWxlY3RGb2N1c2VkLFxuICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgc2VsZWN0YWJsZUExMXlQcm9wczoge1xuICAgICAgICAgICAgc2V0UmVmZXJlbmNlSWQsXG4gICAgICAgICAgICByZWZlcmVuY2VJZCxcbiAgICAgICAgICAgIHJlZmVyZW5jZUxhYmVsLFxuICAgICAgICAgICAgc2V0UmVmZXJlbmNlTGFiZWxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdicsXG4gICAgICAgICAgICBmbG9hdGluZ0FjdGlvbjogJ2RpdicsXG4gICAgICAgICAgICBjaGVja2JveDogJ2lucHV0J1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgICAgIHJlZjogY2FyZFJlZixcbiAgICAgICAgICAgIHJvbGU6ICdncm91cCcsXG4gICAgICAgICAgICAuLi4hc2VsZWN0YWJsZSA/IGZvY3VzQXR0cmlidXRlcyA6IG51bGwsXG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIC4uLnNlbGVjdGFibGVDYXJkUHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgZmxvYXRpbmdBY3Rpb246IGZsb2F0aW5nQWN0aW9uU2xvdCxcbiAgICAgICAgY2hlY2tib3g6IGNoZWNrYm94U2xvdFxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBDYXJkUHJvdmlkZXIgfSBmcm9tICcuL0NhcmRDb250ZXh0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgQ2FyZC5cbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyQ2FyZF91bnN0YWJsZSA9IChzdGF0ZSwgY2FyZENvbnRleHRWYWx1ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3hzKENhcmRQcm92aWRlciwge1xuICAgICAgICAgICAgdmFsdWU6IGNhcmRDb250ZXh0VmFsdWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIHN0YXRlLmNoZWNrYm94ID8gLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmNoZWNrYm94LCB7fSkgOiBudWxsLFxuICAgICAgICAgICAgICAgIHN0YXRlLmZsb2F0aW5nQWN0aW9uID8gLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmZsb2F0aW5nQWN0aW9uLCB7fSkgOiBudWxsLFxuICAgICAgICAgICAgICAgIHN0YXRlLnJvb3QuY2hpbGRyZW5cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSlcbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaG9ydGhhbmRzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzLCBfX3Jlc2V0U3R5bGVzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IHRleHRDbGFzc05hbWVzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRleHQnO1xuaW1wb3J0IHsgY3JlYXRlRm9jdXNPdXRsaW5lU3R5bGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyBjYXJkUHJldmlld0NsYXNzTmFtZXMgfSBmcm9tICcuLi9DYXJkUHJldmlldy91c2VDYXJkUHJldmlld1N0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgY2FyZEhlYWRlckNsYXNzTmFtZXMgfSBmcm9tICcuLi9DYXJkSGVhZGVyL3VzZUNhcmRIZWFkZXJTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IGNhcmRGb290ZXJDbGFzc05hbWVzIH0gZnJvbSAnLi4vQ2FyZEZvb3Rlci91c2VDYXJkRm9vdGVyU3R5bGVzLnN0eWxlcyc7XG4vKipcbiAqIFN0YXRpYyBDU1MgY2xhc3MgbmFtZXMgdXNlZCBpbnRlcm5hbGx5IGZvciB0aGUgY29tcG9uZW50IHNsb3RzLlxuICovXG5leHBvcnQgY29uc3QgY2FyZENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktQ2FyZCcsXG4gIGZsb2F0aW5nQWN0aW9uOiAnZnVpLUNhcmRfX2Zsb2F0aW5nQWN0aW9uJyxcbiAgY2hlY2tib3g6ICdmdWktQ2FyZF9fY2hlY2tib3gnXG59O1xuLyoqXG4gKiBDU1MgdmFyaWFibGUgbmFtZXMgdXNlZCBpbnRlcm5hbGx5IGZvciB1bmlmb3JtIHN0eWxpbmcgaW4gQ2FyZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNhcmRDU1NWYXJzID0ge1xuICBjYXJkU2l6ZVZhcjogJy0tZnVpLUNhcmQtLXNpemUnLFxuICBjYXJkQm9yZGVyUmFkaXVzVmFyOiAnLS1mdWktQ2FyZC0tYm9yZGVyLXJhZGl1cydcbn07XG5jb25zdCBmb2N1c091dGxpbmVTdHlsZSA9IHtcbiAgb3V0bGluZVJhZGl1czogYHZhcigke2NhcmRDU1NWYXJzLmNhcmRCb3JkZXJSYWRpdXNWYXJ9KWAsXG4gIG91dGxpbmVXaWR0aDogdG9rZW5zLnN0cm9rZVdpZHRoVGhpY2ssXG4gIG91dGxpbmVPZmZzZXQ6ICctMnB4J1xufTtcbmNvbnN0IHVzZUNhcmRSZXNldFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicmZ4bzJrMlwiLCBcInJnbGU3dzlcIiwgW1wiLnJmeG8yazJ7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6dmFyKC0tZnVpLUNhcmQtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6dmFyKC0tZnVpLUNhcmQtLXNpemUpO2dhcDp2YXIoLS1mdWktQ2FyZC0tc2l6ZSk7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiLCBcIi5yZnhvMmsyOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtjb250ZW50OlxcXCJcXFwiO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7Ym9yZGVyLXJpZ2h0LXdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1zdHJva2VXaWR0aFRoaW4pO2JvcmRlci1sZWZ0LXdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7Ym9yZGVyLXJhZGl1czp2YXIoLS1mdWktQ2FyZC0tYm9yZGVyLXJhZGl1cyk7fVwiLCBcIi5yZnhvMmsyPi5mdWktQ2FyZEhlYWRlciwucmZ4bzJrMj4uZnVpLUNhcmRGb290ZXJ7ZmxleC1zaHJpbms6MDt9XCIsIFwiLnJnbGU3dzl7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6dmFyKC0tZnVpLUNhcmQtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6dmFyKC0tZnVpLUNhcmQtLXNpemUpO2dhcDp2YXIoLS1mdWktQ2FyZC0tc2l6ZSk7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiLCBcIi5yZ2xlN3c5OjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2xlZnQ6MDtib3R0b206MDtjb250ZW50OlxcXCJcXFwiO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7Ym9yZGVyLWxlZnQtd2lkdGg6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7Ym9yZGVyLXJpZ2h0LXdpZHRoOnZhcigtLXN0cm9rZVdpZHRoVGhpbik7Ym9yZGVyLXJhZGl1czp2YXIoLS1mdWktQ2FyZC0tYm9yZGVyLXJhZGl1cyk7fVwiLCBcIi5yZ2xlN3c5Pi5mdWktQ2FyZEhlYWRlciwucmdsZTd3OT4uZnVpLUNhcmRGb290ZXJ7ZmxleC1zaHJpbms6MDt9XCJdKTtcbmNvbnN0IHVzZUNhcmRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBmb2N1c2VkOiB7XG4gICAgQnJvdmxwdTogXCJmdHFhNG9rXCIsXG4gICAgQjQ4NmVxdjogXCJmMmhrdzF3XCIsXG4gICAgQjhxNXMxdzogXCJmOGhraTN4XCIsXG4gICAgQmNpNW81ZzogW1wiZjFkMjQ0OG1cIiwgXCJmZmg2N3dpXCJdLFxuICAgIG44cXcxMDogXCJmMWJqaWEyb1wiLFxuICAgIEJkcmd3bXA6IFtcImZmaDY3d2lcIiwgXCJmMWQyNDQ4bVwiXSxcbiAgICBCYjdkMXZrOiBcImYyMjZpNjFcIixcbiAgICB6aHdoZ2I6IFtcImYxM2t6dWZtXCIsIFwiZnN4NzVnOFwiXSxcbiAgICBkaHkybzE6IFwiZmx1andhMlwiLFxuICAgIEdmeXNvOiBbXCJmc3g3NWc4XCIsIFwiZjEza3p1Zm1cIl0sXG4gICAgQm00aDdhZTogXCJmMTVic2d3OVwiLFxuICAgIEI3eXM1aTk6IFwiZjE0ZTQ4ZnFcIixcbiAgICBCdXNqZnY5OiBcImYxOHliMmt2XCIsXG4gICAgQmhrMzJ1ejogXCJmZDZvMzcwXCIsXG4gICAgZjZnNW90OiAwLFxuICAgIEJveGN0aDc6IDAsXG4gICAgQmhkZ3dxMzogMCxcbiAgICBoZ3dqdXk6IDAsXG4gICAgQnNocGRwODogMCxcbiAgICBCc29tNmZkOiAwLFxuICAgIEJsa2hoczQ6IDAsXG4gICAgQm9uZ2djOTogMCxcbiAgICBEZGZ1eGs6IDAsXG4gICAgaTAzcmFvOiAwLFxuICAgIGtjbG9uczogMCxcbiAgICBjbGc0cGo6IDAsXG4gICAgQnBxajluajogMCxcbiAgICBCNmRocDM3OiAwLFxuICAgIEJmNHB0anQ6IDAsXG4gICAgQnF0cGwwdzogMCxcbiAgICBpNHJ3Z2M6IFwiZnBxaXp4elwiLFxuICAgIERhaDV6aTogMCxcbiAgICBCMXRzcnI5OiAwLFxuICAgIHFxZHF5ODogMCxcbiAgICBCa2g2NHJrOiAwLFxuICAgIGUzZnduZTogXCJmbmQ4bnpoXCIsXG4gICAgSjByODgyOiBcImYxNWZyN2EwXCIsXG4gICAgQnVsZThodjogW1wiZndzcTQwelwiLCBcImZ5MHk0d3RcIl0sXG4gICAgQmp3dWhuZTogXCJmMzRsZDlmXCIsXG4gICAgR2hzdXBkOiBbXCJmeTB5NHd0XCIsIFwiZndzcTQwelwiXVxuICB9LFxuICBzZWxlY3RhYmxlRm9jdXNlZDoge1xuICAgIEJyb3ZscHU6IFwiZnRxYTRva1wiLFxuICAgIEI0ODZlcXY6IFwiZjJoa3cxd1wiLFxuICAgIEJzc3g3Zmo6IFwiZjFiMWs1NHJcIixcbiAgICB1aDdpZjU6IFtcImY0bmU3MjNcIiwgXCJmcXFjanVkXCJdLFxuICAgIGNsbnRtMDogXCJmaDdhaW9pXCIsXG4gICAgRGxrMnI2OiBbXCJmcXFjanVkXCIsIFwiZjRuZTcyM1wiXSxcbiAgICBCbTN3ZDVqOiBcImYxazU1a2E5XCIsXG4gICAgQmJyaGtjcjogW1wiZmdjbGludVwiLCBcImYxNnBjczhuXCJdLFxuICAgIGYxb2t1OiBcImZ5Y2J4ZWRcIixcbiAgICBheXd2ZjI6IFtcImYxNnBjczhuXCIsIFwiZmdjbGludVwiXSxcbiAgICBCMmoybW1qOiBcImZmaHQwcDJcIixcbiAgICB3aWdzODogXCJmMXAwdWwxcVwiLFxuICAgIHBiZnk2dDogXCJmMWM5MDFtc1wiLFxuICAgIEIwdjR1cmU6IFwiZjFhbG9rZDdcIixcbiAgICBCeXJmMGZzOiAwLFxuICAgIEJzaWVtbXE6IDAsXG4gICAgQndja21pZzogMCxcbiAgICBza2Z4bzA6IDAsXG4gICAgSWlkeTB1OiAwLFxuICAgIEI5OHUyMXQ6IDAsXG4gICAgQnZ3bG1rYzogMCxcbiAgICBqbzF6dGc6IDAsXG4gICAgQmExaWV6cjogMCxcbiAgICBCbG12azZnOiAwLFxuICAgIEIyNGN5MHY6IDAsXG4gICAgQmlsN3Y3cjogMCxcbiAgICBCcjNnaW40OiAwLFxuICAgIG5yMDYzZzogMCxcbiAgICBnaHEwOTogMCxcbiAgICBCYmdvNDR6OiAwLFxuICAgIEJzZWgwOXo6IFwiZjFpOTc4bmRcIixcbiAgICBhejFkem86IDAsXG4gICAgQmEzeWJqYTogMCxcbiAgICBCNjM1Mm12OiAwLFxuICAgIHZwcGsyejogMCxcbiAgICBCaWFqNmo3OiBcImYxbmg4aHNxXCIsXG4gICAgQjJwbnJxcjogXCJmMWFteHVtN1wiLFxuICAgIEIyOXc1ZzQ6IFtcImYxY2VjOHc3XCIsIFwiZjU1NG12MFwiXSxcbiAgICBCaGh6aGNuOiBcImYxc2o2a2JyXCIsXG4gICAgQmVjMG42OTogW1wiZjU1NG12MFwiLCBcImYxY2VjOHc3XCJdXG4gIH0sXG4gIG9yaWVudGF0aW9uSG9yaXpvbnRhbDoge1xuICAgIEJlaXkzZTQ6IFwiZjEwNjNweXFcIixcbiAgICBCdDk4NGdqOiBcImYxMjJuNTlcIixcbiAgICBCaW5wYjNiOiBcImZ0cnc3dmdcIixcbiAgICBxcnQ4cDI6IFwiZjE4b3Bham1cIixcbiAgICBrNndzM3I6IFtcImYxMzAwMml0XCIsIFwiZnFvMTgydFwiXSxcbiAgICBCdGN3ZWxhOiBbXCJmMTh5bmE5N1wiLCBcImYxa2Q2d2g3XCJdLFxuICAgIEZlcjltODogXCJmNGk0NzU5XCJcbiAgfSxcbiAgb3JpZW50YXRpb25WZXJ0aWNhbDoge1xuICAgIEJlaXkzZTQ6IFwiZjF2eDlsNjJcIixcbiAgICBCNW52djdpOiBbXCJmMTRrNDE5eVwiLCBcImYxZmdvOWZ6XCJdLFxuICAgIEJheGc5NGs6IFtcImYxZmdvOWZ6XCIsIFwiZjE0azQxOXlcIl0sXG4gICAgdG4yMWlpOiBcImZ2cW1mc21cIixcbiAgICBCMHVkNmJqOiBcImYzYW02eWZcIixcbiAgICBCZ2RvNGo6IFwiZjFyNXdnc29cIlxuICB9LFxuICBzaXplU21hbGw6IHtcbiAgICBCN2JhbGJ3OiBcImYxcGk5dXh5XCIsXG4gICAgQjFoODhuNzogXCJmMWgxemdseVwiXG4gIH0sXG4gIHNpemVNZWRpdW06IHtcbiAgICBCN2JhbGJ3OiBcImZyc211Z2FcIixcbiAgICBCMWg4OG43OiBcImZ1bGRra3lcIlxuICB9LFxuICBzaXplTGFyZ2U6IHtcbiAgICBCN2JhbGJ3OiBcImYxcXVhNHhvXCIsXG4gICAgQjFoODhuNzogXCJmaW1rdDZ2XCJcbiAgfSxcbiAgaW50ZXJhY3RpdmU6IHtcbiAgICByaGpkOGY6IFwiZjFlcHFtM2VcIlxuICB9LFxuICBmaWxsZWQ6IHtcbiAgICBEZTNwenE6IFwiZnh1Z3c0clwiLFxuICAgIEU1cGl6bzogXCJmMXdodmxjNlwiLFxuICAgIEIwbjVnYTg6IFwiZjE2Z3hlMmlcIixcbiAgICBzOTI0bTI6IFtcImZwZ3lraXhcIiwgXCJmenliazRvXCJdLFxuICAgIEIxcTM1a3c6IFwiZjFvc2k4MjZcIixcbiAgICBHcDE0YW06IFtcImZ6eWJrNG9cIiwgXCJmcGd5a2l4XCJdXG4gIH0sXG4gIGZpbGxlZEludGVyYWN0aXZlOiB7XG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIERlM3B6cTogXCJmeHVndzRyXCIsXG4gICAgRTVwaXpvOiBcImYxd2h2bGM2XCIsXG4gICAgQjBuNWdhODogXCJmMTZneGUyaVwiLFxuICAgIHM5MjRtMjogW1wiZnBneWtpeFwiLCBcImZ6eWJrNG9cIl0sXG4gICAgQjFxMzVrdzogXCJmMW9zaTgyNlwiLFxuICAgIEdwMTRhbTogW1wiZnp5Yms0b1wiLCBcImZwZ3lraXhcIl0sXG4gICAgQmk5MWs5YzogXCJmZXUxZzN1XCIsXG4gICAgSndlZjh5OiBcImYxa25hczQ4XCIsXG4gICAgQnZ4ZDBlejogXCJmMW0xNDVkZlwiLFxuICAgIGVjcjJzMjogXCJmYjQwbjJkXCJcbiAgfSxcbiAgZmlsbGVkSW50ZXJhY3RpdmVTZWxlY3RlZDoge1xuICAgIERlM3B6cTogXCJmMW5mbTIwdFwiLFxuICAgIEIwbjVnYTg6IFwiZjE2ZWxuNWZcIixcbiAgICBzOTI0bTI6IFtcImZhMm9reHNcIiwgXCJmZzR6cTNsXCJdLFxuICAgIEIxcTM1a3c6IFwiZmY2OTMycFwiLFxuICAgIEdwMTRhbTogW1wiZmc0enEzbFwiLCBcImZhMm9reHNcIl0sXG4gICAgQmk5MWs5YzogXCJmeDl0ZWltXCIsXG4gICAgSndlZjh5OiBcImYxa3o2Z29xXCJcbiAgfSxcbiAgZmlsbGVkQWx0ZXJuYXRpdmU6IHtcbiAgICBEZTNwenE6IFwiZjFkbWRiamFcIixcbiAgICBFNXBpem86IFwiZjF3aHZsYzZcIixcbiAgICBCMG41Z2E4OiBcImYxNmd4ZTJpXCIsXG4gICAgczkyNG0yOiBbXCJmcGd5a2l4XCIsIFwiZnp5Yms0b1wiXSxcbiAgICBCMXEzNWt3OiBcImYxb3NpODI2XCIsXG4gICAgR3AxNGFtOiBbXCJmenliazRvXCIsIFwiZnBneWtpeFwiXVxuICB9LFxuICBmaWxsZWRBbHRlcm5hdGl2ZUludGVyYWN0aXZlOiB7XG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIERlM3B6cTogXCJmMWRtZGJqYVwiLFxuICAgIEU1cGl6bzogXCJmMXdodmxjNlwiLFxuICAgIEIwbjVnYTg6IFwiZjE2Z3hlMmlcIixcbiAgICBzOTI0bTI6IFtcImZwZ3lraXhcIiwgXCJmenliazRvXCJdLFxuICAgIEIxcTM1a3c6IFwiZjFvc2k4MjZcIixcbiAgICBHcDE0YW06IFtcImZ6eWJrNG9cIiwgXCJmcGd5a2l4XCJdLFxuICAgIEJpOTFrOWM6IFwiZm53eXEwdlwiLFxuICAgIEp3ZWY4eTogXCJmMXV2eW52M1wiLFxuICAgIEJ2eGQwZXo6IFwiZjFtMTQ1ZGZcIixcbiAgICBlY3IyczI6IFwiZjF5aGdrYmhcIlxuICB9LFxuICBmaWxsZWRBbHRlcm5hdGl2ZUludGVyYWN0aXZlU2VsZWN0ZWQ6IHtcbiAgICBEZTNwenE6IFwiZmp4YTB2aFwiLFxuICAgIEIwbjVnYTg6IFwiZjE2ZWxuNWZcIixcbiAgICBzOTI0bTI6IFtcImZhMm9reHNcIiwgXCJmZzR6cTNsXCJdLFxuICAgIEIxcTM1a3c6IFwiZmY2OTMycFwiLFxuICAgIEdwMTRhbTogW1wiZmc0enEzbFwiLCBcImZhMm9reHNcIl0sXG4gICAgQmk5MWs5YzogXCJmMWx1dmt0eVwiLFxuICAgIEp3ZWY4eTogXCJmZWhpMHZwXCJcbiAgfSxcbiAgb3V0bGluZToge1xuICAgIERlM3B6cTogXCJmMWMyMWR3aFwiLFxuICAgIEU1cGl6bzogXCJmMWNvdWhsM1wiLFxuICAgIEIwbjVnYTg6IFwiZnQ4M3oxZlwiLFxuICAgIHM5MjRtMjogW1wiZjFnNDE1MGNcIiwgXCJmMTkyZHI2ZVwiXSxcbiAgICBCMXEzNWt3OiBcImYxcW5hd2g2XCIsXG4gICAgR3AxNGFtOiBbXCJmMTkyZHI2ZVwiLCBcImYxZzQxNTBjXCJdXG4gIH0sXG4gIG91dGxpbmVJbnRlcmFjdGl2ZToge1xuICAgIEJjZWVpOWM6IFwiZjFrNmZkdWhcIixcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBFNXBpem86IFwiZjFjb3VobDNcIixcbiAgICBCMG41Z2E4OiBcImZ0ODN6MWZcIixcbiAgICBzOTI0bTI6IFtcImYxZzQxNTBjXCIsIFwiZjE5MmRyNmVcIl0sXG4gICAgQjFxMzVrdzogXCJmMXFuYXdoNlwiLFxuICAgIEdwMTRhbTogW1wiZjE5MmRyNmVcIiwgXCJmMWc0MTUwY1wiXSxcbiAgICBCaTkxazljOiBcImZldTFnM3VcIixcbiAgICBKd2VmOHk6IFwiZmp4dXR3YlwiLFxuICAgIEJlMHY2YWU6IFwiZjFsbHI3N3lcIixcbiAgICBCNWt4Z2x6OiBbXCJmemswa2h3XCIsIFwiZmpqOHRvZ1wiXSxcbiAgICBCM3B3eXc2OiBcImZiMXU4dWJcIixcbiAgICBCeW1ndHpmOiBbXCJmamo4dG9nXCIsIFwiZnprMGtod1wiXSxcbiAgICBlY3IyczI6IFwiZm9waGhha1wiLFxuICAgIGRtZms6IFwiZjF1b2hiNzBcIixcbiAgICBCNG9maTg6IFtcImYxam03djFuXCIsIFwiZjFidXMzcnFcIl0sXG4gICAgamdxNnV2OiBcImYxZmJ1N3JyXCIsXG4gICAgQmF4ZXd3czogW1wiZjFidXMzcnFcIiwgXCJmMWptN3YxblwiXVxuICB9LFxuICBvdXRsaW5lSW50ZXJhY3RpdmVTZWxlY3RlZDoge1xuICAgIERlM3B6cTogXCJmMXE5cG0xclwiLFxuICAgIEIwbjVnYTg6IFwiZjE2ZWxuNWZcIixcbiAgICBzOTI0bTI6IFtcImZhMm9reHNcIiwgXCJmZzR6cTNsXCJdLFxuICAgIEIxcTM1a3c6IFwiZmY2OTMycFwiLFxuICAgIEdwMTRhbTogW1wiZmc0enEzbFwiLCBcImZhMm9reHNcIl0sXG4gICAgQmk5MWs5YzogXCJmeDl0ZWltXCIsXG4gICAgSndlZjh5OiBcImZnNTl2bTRcIlxuICB9LFxuICBzdWJ0bGU6IHtcbiAgICBEZTNwenE6IFwiZmhvdnE5dlwiLFxuICAgIEU1cGl6bzogXCJmMWNvdWhsM1wiLFxuICAgIEIwbjVnYTg6IFwiZjE2Z3hlMmlcIixcbiAgICBzOTI0bTI6IFtcImZwZ3lraXhcIiwgXCJmenliazRvXCJdLFxuICAgIEIxcTM1a3c6IFwiZjFvc2k4MjZcIixcbiAgICBHcDE0YW06IFtcImZ6eWJrNG9cIiwgXCJmcGd5a2l4XCJdXG4gIH0sXG4gIHN1YnRsZUludGVyYWN0aXZlOiB7XG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIERlM3B6cTogXCJmaG92cTl2XCIsXG4gICAgRTVwaXpvOiBcImYxY291aGwzXCIsXG4gICAgQjBuNWdhODogXCJmMTZneGUyaVwiLFxuICAgIHM5MjRtMjogW1wiZnBneWtpeFwiLCBcImZ6eWJrNG9cIl0sXG4gICAgQjFxMzVrdzogXCJmMW9zaTgyNlwiLFxuICAgIEdwMTRhbTogW1wiZnp5Yms0b1wiLCBcImZwZ3lraXhcIl0sXG4gICAgQmk5MWs5YzogXCJmZXUxZzN1XCIsXG4gICAgSndlZjh5OiBcImYxdDk0Ym42XCIsXG4gICAgZWNyMnMyOiBcImYxd2ZuNWtkXCJcbiAgfSxcbiAgc3VidGxlSW50ZXJhY3RpdmVTZWxlY3RlZDoge1xuICAgIERlM3B6cTogXCJmcTVnbDFwXCIsXG4gICAgQjBuNWdhODogXCJmMTZlbG41ZlwiLFxuICAgIHM5MjRtMjogW1wiZmEyb2t4c1wiLCBcImZnNHpxM2xcIl0sXG4gICAgQjFxMzVrdzogXCJmZjY5MzJwXCIsXG4gICAgR3AxNGFtOiBbXCJmZzR6cTNsXCIsIFwiZmEyb2t4c1wiXSxcbiAgICBCaTkxazljOiBcImZ4OXRlaW1cIixcbiAgICBKd2VmOHk6IFwiZjF1cWF4ZHRcIlxuICB9LFxuICBoaWdoQ29udHJhc3RTZWxlY3RlZDoge1xuICAgIHljYmZzbTogXCJma2M0MmF5XCIsXG4gICAgQnN3NmZ2ZzogXCJmMXJpcm5ydFwiLFxuICAgIEJidXN1enA6IFwiZjFsa2c4ajNcIixcbiAgICB4Z2ZxZGQ6IFwiZjFua2owb2FcIixcbiAgICBCbW1kendxOiBcImZleTNyd2FcIixcbiAgICB6a3B2aGo6IFtcImY1amh4MTFcIiwgXCJmZmY5dXltXCJdLFxuICAgIEIyMGJ5ZHc6IFwiZm03bjBqeVwiLFxuICAgIEJ3d3dnZ2w6IFtcImZmZjl1eW1cIiwgXCJmNWpoeDExXCJdXG4gIH0sXG4gIGhpZ2hDb250cmFzdEludGVyYWN0aXZlOiB7XG4gICAgaDF2aG9nOiBcImZwZnZ2M2xcIixcbiAgICBrc2xtZHk6IFwiZjFvYW1zbTZcIixcbiAgICBCYWFmNmNhOiBcImYxaWwyMWJzXCIsXG4gICAgeDl6ejNkOiBcImZubjVkazBcIixcbiAgICBCbW1kendxOiBcImZleTNyd2FcIixcbiAgICB6a3B2aGo6IFtcImY1amh4MTFcIiwgXCJmZmY5dXltXCJdLFxuICAgIEIyMGJ5ZHc6IFwiZm03bjBqeVwiLFxuICAgIEJ3d3dnZ2w6IFtcImZmZjl1eW1cIiwgXCJmNWpoeDExXCJdXG4gIH0sXG4gIHNlbGVjdDoge1xuICAgIHFoZjh4cTogXCJmMWV1djQzZlwiLFxuICAgIEJoemV3eHo6IFwiZnFjbHhpN1wiLFxuICAgIGozNWpicTogW1wiZml2ODZrYlwiLCBcImYzNnVobnRcIl0sXG4gICAgQmozcmgxaDogXCJmMTlnMGFjXCJcbiAgfSxcbiAgaGlkZGVuQ2hlY2tib3g6IHtcbiAgICBCNjh0YzgyOiAwLFxuICAgIEJteGJ5ZzU6IDAsXG4gICAgQnBnNTRjZTogXCJmMWEzcDF2cFwiLFxuICAgIGE5YjY3NzogXCJmcmtyb2c4XCIsXG4gICAgQnFlbnZpajogXCJmMW1wZTRsM1wiLFxuICAgIHFoZjh4cTogXCJmMWV1djQzZlwiLFxuICAgIEJoODRwZ3U6IFwiZm1mMXprZVwiLFxuICAgIEJnbDV6dmY6IFwiZjF3Y2gwa2lcIixcbiAgICBIdWNlNzE6IFwiZno1c3RpeFwiXG4gIH1cbn0sIHtcbiAgZjogW1wiLmZ0cWE0b2s6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIl0sXG4gIGk6IFtcIi5mMmhrdzF3OmZvY3VzLXZpc2libGV7b3V0bGluZS1zdHlsZTpub25lO31cIl0sXG4gIGQ6IFtcIi5mOGhraTN4W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMWQyNDQ4bVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mZmg2N3dpW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFiamlhMm9bZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxNWJzZ3c5W2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZjE0ZTQ4ZnFbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjE4eWIya3ZbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye3BvaW50ZXItZXZlbnRzOm5vbmU7fVwiLCBcIi5mZDZvMzcwW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcnt6LWluZGV4OjE7fVwiLCBbXCIuZnBxaXp4eltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpY2spIHNvbGlkIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgW1wiLmZuZDhuemhbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2JvcmRlci1yYWRpdXM6dmFyKC0tZnVpLUNhcmQtLWJvcmRlci1yYWRpdXMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTVmcjdhMFtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7dG9wOmNhbGMoMHB4IC0gdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgLSAtMnB4KTt9XCIsIFwiLmZ3c3E0MHpbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye3JpZ2h0OmNhbGMoMHB4IC0gdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgLSAtMnB4KTt9XCIsIFwiLmZ5MHk0d3RbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2xlZnQ6Y2FsYygwcHggLSB2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSAtIC0ycHgpO31cIiwgXCIuZjM0bGQ5ZltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Ym90dG9tOmNhbGMoMHB4IC0gdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgLSAtMnB4KTt9XCIsIFwiLmYxYjFrNTRyW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGlue2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mNG5lNzIzW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGlue2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmZxcWNqdWRbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW57Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5maDdhaW9pW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGlue2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mZmh0MHAyW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntjb250ZW50OlxcXCJcXFwiO31cIiwgXCIuZjFwMHVsMXFbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjFjOTAxbXNbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye3BvaW50ZXItZXZlbnRzOm5vbmU7fVwiLCBcIi5mMWFsb2tkN1tkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7ei1pbmRleDoxO31cIiwgW1wiLmYxaTk3OG5kW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntib3JkZXI6dmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwge1xuICAgIHA6IC0yXG4gIH1dLCBbXCIuZjFuaDhoc3FbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye2JvcmRlci1yYWRpdXM6dmFyKC0tZnVpLUNhcmQtLWJvcmRlci1yYWRpdXMpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWFteHVtN1tkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7dG9wOmNhbGMoMHB4IC0gdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgLSAtMnB4KTt9XCIsIFwiLmYxY2VjOHc3W2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntyaWdodDpjYWxjKDBweCAtIHZhcigtLXN0cm9rZVdpZHRoVGhpY2spIC0gLTJweCk7fVwiLCBcIi5mNTU0bXYwW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntsZWZ0OmNhbGMoMHB4IC0gdmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgLSAtMnB4KTt9XCIsIFwiLmYxc2o2a2JyW2RhdGEtZnVpLWZvY3VzLXdpdGhpbl06Zm9jdXMtd2l0aGluOjphZnRlcntib3R0b206Y2FsYygwcHggLSB2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSAtIC0ycHgpO31cIiwgXCIuZjEwNjNweXF7ZmxleC1kaXJlY3Rpb246cm93O31cIiwgXCIuZjEyMm41OXthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBcIi5mdHJ3N3ZnPi5mdWktQ2FyZFByZXZpZXd7bWFyZ2luLXRvcDpjYWxjKHZhcigtLWZ1aS1DYXJkLS1zaXplKSAqIC0xKTt9XCIsIFwiLmYxOG9wYWptPi5mdWktQ2FyZFByZXZpZXd7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLWZ1aS1DYXJkLS1zaXplKSAqIC0xKTt9XCIsIFwiLmYxMzAwMml0Pjpub3QoW2FyaWEtaGlkZGVuPVxcXCJ0cnVlXFxcIl0pLmZ1aS1DYXJkUHJldmlldzpmaXJzdC1vZi10eXBle21hcmdpbi1sZWZ0OmNhbGModmFyKC0tZnVpLUNhcmQtLXNpemUpICogLTEpO31cIiwgXCIuZnFvMTgydD46bm90KFthcmlhLWhpZGRlbj1cXFwidHJ1ZVxcXCJdKS5mdWktQ2FyZFByZXZpZXc6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tcmlnaHQ6Y2FsYyh2YXIoLS1mdWktQ2FyZC0tc2l6ZSkgKiAtMSk7fVwiLCBcIi5mMTh5bmE5Nz46bm90KFthcmlhLWhpZGRlbj1cXFwidHJ1ZVxcXCJdKS5mdWktQ2FyZFByZXZpZXc6bGFzdC1vZi10eXBle21hcmdpbi1yaWdodDpjYWxjKHZhcigtLWZ1aS1DYXJkLS1zaXplKSAqIC0xKTt9XCIsIFwiLmYxa2Q2d2g3Pjpub3QoW2FyaWEtaGlkZGVuPVxcXCJ0cnVlXFxcIl0pLmZ1aS1DYXJkUHJldmlldzpsYXN0LW9mLXR5cGV7bWFyZ2luLWxlZnQ6Y2FsYyh2YXIoLS1mdWktQ2FyZC0tc2l6ZSkgKiAtMSk7fVwiLCBcIi5mNGk0NzU5Pi5mdWktQ2FyZEhlYWRlcjpsYXN0LW9mLXR5cGUsLmY0aTQ3NTk+LmZ1aS1DYXJkRm9vdGVyOmxhc3Qtb2YtdHlwZXtmbGV4LWdyb3c6MTt9XCIsIFwiLmYxdng5bDYye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9XCIsIFwiLmYxNGs0MTl5Pi5mdWktQ2FyZFByZXZpZXd7bWFyZ2luLWxlZnQ6Y2FsYyh2YXIoLS1mdWktQ2FyZC0tc2l6ZSkgKiAtMSk7fVwiLCBcIi5mMWZnbzlmej4uZnVpLUNhcmRQcmV2aWV3e21hcmdpbi1yaWdodDpjYWxjKHZhcigtLWZ1aS1DYXJkLS1zaXplKSAqIC0xKTt9XCIsIFwiLmZ2cW1mc20+Om5vdChbYXJpYS1oaWRkZW49XFxcInRydWVcXFwiXSkuZnVpLUNhcmRQcmV2aWV3OmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDpjYWxjKHZhcigtLWZ1aS1DYXJkLS1zaXplKSAqIC0xKTt9XCIsIFwiLmYzYW02eWY+LmZ1aS1DYXJkX19mbG9hdGluZ0FjdGlvbisuZnVpLUNhcmRQcmV2aWV3e21hcmdpbi10b3A6Y2FsYyh2YXIoLS1mdWktQ2FyZC0tc2l6ZSkgKiAtMSk7fVwiLCBcIi5mMXI1d2dzbz46bm90KFthcmlhLWhpZGRlbj1cXFwidHJ1ZVxcXCJdKS5mdWktQ2FyZFByZXZpZXc6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS1mdWktQ2FyZC0tc2l6ZSkgKiAtMSk7fVwiLCBcIi5mMXBpOXV4eXstLWZ1aS1DYXJkLS1zaXplOjhweDt9XCIsIFwiLmYxaDF6Z2x5ey0tZnVpLUNhcmQtLWJvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzU21hbGwpO31cIiwgXCIuZnJzbXVnYXstLWZ1aS1DYXJkLS1zaXplOjEycHg7fVwiLCBcIi5mdWxka2t5ey0tZnVpLUNhcmQtLWJvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIFwiLmYxcXVhNHhvey0tZnVpLUNhcmQtLXNpemU6MTZweDt9XCIsIFwiLmZpbWt0NnZ7LS1mdWktQ2FyZC0tYm9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNMYXJnZSk7fVwiLCBcIi5mMWVwcW0zZSAuZnVpLVRleHR7Y29sb3I6Y3VycmVudENvbG9yO31cIiwgXCIuZnh1Z3c0cntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQxKTt9XCIsIFwiLmYxd2h2bGM2e2JveC1zaGFkb3c6dmFyKC0tc2hhZG93NCk7fVwiLCBcIi5mMTZneGUyaTo6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIFwiLmZwZ3lraXg6OmFmdGVye2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIFwiLmZ6eWJrNG86OmFmdGVye2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRTdHJva2UpO31cIiwgXCIuZjFvc2k4MjY6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCBcIi5mMWs2ZmR1aHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLmYxbmZtMjB0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFTZWxlY3RlZCk7fVwiLCBcIi5mMTZlbG41Zjo6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxU2VsZWN0ZWQpO31cIiwgXCIuZmEyb2t4czo6YWZ0ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTFTZWxlY3RlZCk7fVwiLCBcIi5mZzR6cTNsOjphZnRlcntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxU2VsZWN0ZWQpO31cIiwgXCIuZmY2OTMycDo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxU2VsZWN0ZWQpO31cIiwgXCIuZjFkbWRiamF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMik7fVwiLCBcIi5manhhMHZoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDJTZWxlY3RlZCk7fVwiLCBcIi5mMWMyMWR3aHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxY291aGwze2JveC1zaGFkb3c6bm9uZTt9XCIsIFwiLmZ0ODN6MWY6OmFmdGVye2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7fVwiLCBcIi5mMWc0MTUwYzo6YWZ0ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTEpO31cIiwgXCIuZjE5MmRyNmU6OmFmdGVye2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTEpO31cIiwgXCIuZjFxbmF3aDY6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7fVwiLCBcIi5mMXE5cG0xcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kU2VsZWN0ZWQpO31cIiwgXCIuZmhvdnE5dntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZCk7fVwiLCBcIi5mcTVnbDFwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kU2VsZWN0ZWQpO31cIiwgXCIuZjFldXY0M2Z7cG9zaXRpb246YWJzb2x1dGU7fVwiLCBcIi5mcWNseGk3e3RvcDo0cHg7fVwiLCBcIi5maXY4Nmtie3JpZ2h0OjRweDt9XCIsIFwiLmYzNnVobnR7bGVmdDo0cHg7fVwiLCBcIi5mMTlnMGFje3otaW5kZXg6MTt9XCIsIFtcIi5mMWEzcDF2cHtvdmVyZmxvdzpoaWRkZW47fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZya3JvZzh7d2lkdGg6MXB4O31cIiwgXCIuZjFtcGU0bDN7aGVpZ2h0OjFweDt9XCIsIFwiLmZtZjF6a2V7Y2xpcDpyZWN0KDAgMCAwIDApO31cIiwgXCIuZjF3Y2gwa2l7Y2xpcC1wYXRoOmluc2V0KDUwJSk7fVwiLCBcIi5mejVzdGl4e3doaXRlLXNwYWNlOm5vd3JhcDt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMjI2aTYxW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxM2t6dWZtW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0O30uZnN4NzVnOFtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Ym9yZGVyLWxlZnQtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmx1andhMltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWs1NWthOVtkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMTZwY3M4bltkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7Ym9yZGVyLWxlZnQtY29sb3I6SGlnaGxpZ2h0O30uZmdjbGludVtkYXRhLWZ1aS1mb2N1cy13aXRoaW5dOmZvY3VzLXdpdGhpbjo6YWZ0ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ5Y2J4ZWRbZGF0YS1mdWktZm9jdXMtd2l0aGluXTpmb2N1cy13aXRoaW46OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmtjNDJheXtmb3JjZWQtY29sb3ItYWRqdXN0Om5vbmU7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMXJpcm5ydHtiYWNrZ3JvdW5kLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxbGtnOGoze2NvbG9yOkhpZ2hsaWdodFRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMW5rajBvYSAuZnVpLUNhcmRQcmV2aWV3LC5mMW5rajBvYSAuZnVpLUNhcmRGb290ZXJ7Zm9yY2VkLWNvbG9yLWFkanVzdDphdXRvO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmV5M3J3YTo6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mNWpoeDExOjphZnRlcntib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0O30uZmZmOXV5bTo6YWZ0ZXJ7Ym9yZGVyLWxlZnQtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZm03bjBqeTo6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mcGZ2djNsOmhvdmVyLC5mcGZ2djNsIDphY3RpdmV7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFvYW1zbTY6aG92ZXIsLmYxb2Ftc202IDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWlsMjFiczpob3ZlciwuZjFpbDIxYnMgOmFjdGl2ZXtjb2xvcjpIaWdobGlnaHRUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZm5uNWRrMDpob3ZlciAuZnVpLUNhcmRQcmV2aWV3LC5mbm41ZGswIDphY3RpdmUgLmZ1aS1DYXJkUHJldmlldywuZm5uNWRrMDpob3ZlciAuZnVpLUNhcmRGb290ZXIsLmZubjVkazAgOmFjdGl2ZSAuZnVpLUNhcmRGb290ZXJ7Zm9yY2VkLWNvbG9yLWFkanVzdDphdXRvO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dLFxuICBoOiBbXCIuZmV1MWczdTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMUhvdmVyKTt9XCIsIFwiLmYxa25hczQ4OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFIb3Zlcik7fVwiLCBcIi5mMW0xNDVkZjpob3Zlcntib3gtc2hhZG93OnZhcigtLXNoYWRvdzgpO31cIiwgXCIuZng5dGVpbTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVNlbGVjdGVkKTt9XCIsIFwiLmYxa3o2Z29xOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFTZWxlY3RlZCk7fVwiLCBcIi5mbnd5cTB2OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQySG92ZXIpO31cIiwgXCIuZjF1dnludjM6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMkhvdmVyKTt9XCIsIFwiLmYxbHV2a3R5OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyU2VsZWN0ZWQpO31cIiwgXCIuZmVoaTB2cDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQyU2VsZWN0ZWQpO31cIiwgXCIuZmp4dXR3Yjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kSG92ZXIpO31cIiwgXCIuZjFsbHI3N3k6aG92ZXI6OmFmdGVye2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyKTt9XCIsIFwiLmZ6azBraHc6aG92ZXI6OmFmdGVye2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxSG92ZXIpO31cIiwgXCIuZmpqOHRvZzpob3Zlcjo6YWZ0ZXJ7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyKTt9XCIsIFwiLmZiMXU4dWI6aG92ZXI6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMUhvdmVyKTt9XCIsIFwiLmZnNTl2bTQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZFNlbGVjdGVkKTt9XCIsIFwiLmYxdDk0Ym42OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kSG92ZXIpO31cIiwgXCIuZjF1cWF4ZHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRTZWxlY3RlZCk7fVwiXSxcbiAgYTogW1wiLmZiNDBuMmQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDFQcmVzc2VkKTt9XCIsIFwiLmYxeWhna2JoOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEJhY2tncm91bmQyUHJlc3NlZCk7fVwiLCBcIi5mb3BoaGFrOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiLCBcIi5mMXVvaGI3MDphY3RpdmU6OmFmdGVye2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQpO31cIiwgXCIuZjFqbTd2MW46YWN0aXZlOjphZnRlcntib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQpO31cIiwgXCIuZjFidXMzcnE6YWN0aXZlOjphZnRlcntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxUHJlc3NlZCk7fVwiLCBcIi5mMWZidTdycjphY3RpdmU6OmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMVByZXNzZWQpO31cIiwgXCIuZjF3Zm41a2Q6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIENhcmQgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlLlxuICovXG5leHBvcnQgY29uc3QgdXNlQ2FyZFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCByZXNldFN0eWxlcyA9IHVzZUNhcmRSZXNldFN0eWxlcygpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VDYXJkU3R5bGVzKCk7XG4gIGNvbnN0IG9yaWVudGF0aW9uTWFwID0ge1xuICAgIGhvcml6b250YWw6IHN0eWxlcy5vcmllbnRhdGlvbkhvcml6b250YWwsXG4gICAgdmVydGljYWw6IHN0eWxlcy5vcmllbnRhdGlvblZlcnRpY2FsXG4gIH07XG4gIGNvbnN0IHNpemVNYXAgPSB7XG4gICAgc21hbGw6IHN0eWxlcy5zaXplU21hbGwsXG4gICAgbWVkaXVtOiBzdHlsZXMuc2l6ZU1lZGl1bSxcbiAgICBsYXJnZTogc3R5bGVzLnNpemVMYXJnZVxuICB9O1xuICBjb25zdCBhcHBlYXJhbmNlTWFwID0ge1xuICAgIGZpbGxlZDogc3R5bGVzLmZpbGxlZCxcbiAgICAnZmlsbGVkLWFsdGVybmF0aXZlJzogc3R5bGVzLmZpbGxlZEFsdGVybmF0aXZlLFxuICAgIG91dGxpbmU6IHN0eWxlcy5vdXRsaW5lLFxuICAgIHN1YnRsZTogc3R5bGVzLnN1YnRsZVxuICB9O1xuICBjb25zdCBzZWxlY3RlZE1hcCA9IHtcbiAgICBmaWxsZWQ6IHN0eWxlcy5maWxsZWRJbnRlcmFjdGl2ZVNlbGVjdGVkLFxuICAgICdmaWxsZWQtYWx0ZXJuYXRpdmUnOiBzdHlsZXMuZmlsbGVkQWx0ZXJuYXRpdmVJbnRlcmFjdGl2ZVNlbGVjdGVkLFxuICAgIG91dGxpbmU6IHN0eWxlcy5vdXRsaW5lSW50ZXJhY3RpdmVTZWxlY3RlZCxcbiAgICBzdWJ0bGU6IHN0eWxlcy5zdWJ0bGVJbnRlcmFjdGl2ZVNlbGVjdGVkXG4gIH07XG4gIGNvbnN0IGludGVyYWN0aXZlTWFwID0ge1xuICAgIGZpbGxlZDogc3R5bGVzLmZpbGxlZEludGVyYWN0aXZlLFxuICAgICdmaWxsZWQtYWx0ZXJuYXRpdmUnOiBzdHlsZXMuZmlsbGVkQWx0ZXJuYXRpdmVJbnRlcmFjdGl2ZSxcbiAgICBvdXRsaW5lOiBzdHlsZXMub3V0bGluZUludGVyYWN0aXZlLFxuICAgIHN1YnRsZTogc3R5bGVzLnN1YnRsZUludGVyYWN0aXZlXG4gIH07XG4gIGNvbnN0IGlzU2VsZWN0YWJsZU9ySW50ZXJhY3RpdmUgPSBzdGF0ZS5pbnRlcmFjdGl2ZSB8fCBzdGF0ZS5zZWxlY3RhYmxlO1xuICBjb25zdCBmb2N1c2VkQ2xhc3NOYW1lID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHN0YXRlLnNlbGVjdGFibGUpIHtcbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RGb2N1c2VkKSB7XG4gICAgICAgIHJldHVybiBzdHlsZXMuc2VsZWN0YWJsZUZvY3VzZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZXMuZm9jdXNlZDtcbiAgfSwgW3N0YXRlLnNlbGVjdEZvY3VzZWQsIHN0YXRlLnNlbGVjdGFibGUsIHN0eWxlcy5mb2N1c2VkLCBzdHlsZXMuc2VsZWN0YWJsZUZvY3VzZWRdKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoY2FyZENsYXNzTmFtZXMucm9vdCwgcmVzZXRTdHlsZXMsIG9yaWVudGF0aW9uTWFwW3N0YXRlLm9yaWVudGF0aW9uXSwgc2l6ZU1hcFtzdGF0ZS5zaXplXSwgYXBwZWFyYW5jZU1hcFtzdGF0ZS5hcHBlYXJhbmNlXSwgaXNTZWxlY3RhYmxlT3JJbnRlcmFjdGl2ZSAmJiBzdHlsZXMuaW50ZXJhY3RpdmUsIGlzU2VsZWN0YWJsZU9ySW50ZXJhY3RpdmUgJiYgaW50ZXJhY3RpdmVNYXBbc3RhdGUuYXBwZWFyYW5jZV0sIHN0YXRlLnNlbGVjdGVkICYmIHNlbGVjdGVkTWFwW3N0YXRlLmFwcGVhcmFuY2VdLCBmb2N1c2VkQ2xhc3NOYW1lLCBpc1NlbGVjdGFibGVPckludGVyYWN0aXZlICYmIHN0eWxlcy5oaWdoQ29udHJhc3RJbnRlcmFjdGl2ZSwgc3RhdGUuc2VsZWN0ZWQgJiYgc3R5bGVzLmhpZ2hDb250cmFzdFNlbGVjdGVkLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIGlmIChzdGF0ZS5mbG9hdGluZ0FjdGlvbikge1xuICAgIHN0YXRlLmZsb2F0aW5nQWN0aW9uLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhjYXJkQ2xhc3NOYW1lcy5mbG9hdGluZ0FjdGlvbiwgc3R5bGVzLnNlbGVjdCwgc3RhdGUuZmxvYXRpbmdBY3Rpb24uY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoc3RhdGUuY2hlY2tib3gpIHtcbiAgICBzdGF0ZS5jaGVja2JveC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoY2FyZENsYXNzTmFtZXMuY2hlY2tib3gsIHN0eWxlcy5oaWRkZW5DaGVja2JveCwgc3RhdGUuY2hlY2tib3guY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlQ2FyZFN0eWxlcy5zdHlsZXMuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIHVzZUNhcmRDb250ZXh0VmFsdWUoeyBzZWxlY3RhYmxlQTExeVByb3BzIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzZWxlY3RhYmxlQTExeVByb3BzXG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNhcmRfdW5zdGFibGUgfSBmcm9tICcuL3VzZUNhcmQnO1xuaW1wb3J0IHsgcmVuZGVyQ2FyZF91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyQ2FyZCc7XG5pbXBvcnQgeyB1c2VDYXJkU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VDYXJkU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VDYXJkQ29udGV4dFZhbHVlIH0gZnJvbSAnLi91c2VDYXJkQ29udGV4dFZhbHVlJztcbi8qKlxuICogQSBjYXJkIHByb3ZpZGVzIHNjYWZmb2xkaW5nIGZvciBob3N0aW5nIGFjdGlvbnMgYW5kIGNvbnRlbnQgZm9yIGEgc2luZ2xlIHRvcGljLlxuICovIGV4cG9ydCBjb25zdCBDYXJkID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlQ2FyZF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICBjb25zdCBjYXJkQ29udGV4dFZhbHVlID0gdXNlQ2FyZENvbnRleHRWYWx1ZShzdGF0ZSk7XG4gICAgdXNlQ2FyZFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlckNhcmRfdW5zdGFibGUoc3RhdGUsIGNhcmRDb250ZXh0VmFsdWUpO1xufSk7XG5DYXJkLmRpc3BsYXlOYW1lID0gJ0NhcmQnO1xuIiwiaW1wb3J0IHsgXyBhcyBfZGVmaW5lX3Byb3BlcnR5IH0gZnJvbSBcIkBzd2MvaGVscGVycy9fL19kZWZpbmVfcHJvcGVydHlcIjtcbmNvbnN0IGludGVybmFsU2V0U3ltYm9sID0gU3ltYm9sKCcjaW50ZXJuYWxTZXQnKTtcbmxldCBfaW50ZXJuYWxTZXRTeW1ib2wgPSBpbnRlcm5hbFNldFN5bWJvbCwgX1N5bWJvbF9oYXNJbnN0YW5jZSA9IFN5bWJvbC5oYXNJbnN0YW5jZSwgX1N5bWJvbF9pdGVyYXRvciA9IFN5bWJvbC5pdGVyYXRvcjtcbi8qKlxuICogQHB1YmxpY1xuICpcbiAqIFNtYWxsIGltbXV0YWJsZSB3cmFwcGVyIGFyb3VuZCB0aGUgbmF0aXZlIFNldCBpbXBsZW1lbnRhdGlvbi5cbiAqIEV2ZXJ5IG9wZXJhdGlvbiB0aGF0IHdvdWxkIG1vZGlmeSB0aGUgc2V0IHJldHVybnMgYSBuZXcgY29weSBpbnN0YW5jZS5cbiAqLyBleHBvcnQgY2xhc3MgSW1tdXRhYmxlU2V0IHtcbiAgICBzdGF0aWMgZGFuZ2Vyb3VzbHlHZXRJbnRlcm5hbFNldChzZXQpIHtcbiAgICAgICAgcmV0dXJuIHNldFtpbnRlcm5hbFNldFN5bWJvbF07XG4gICAgfVxuICAgIHN0YXRpYyBjb3B5KGltbXV0YWJsZVNldCkge1xuICAgICAgICByZXR1cm4gbmV3IEltbXV0YWJsZVNldChuZXcgU2V0KGltbXV0YWJsZVNldFtpbnRlcm5hbFNldFN5bWJvbF0pKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcge0BsaW5rIEltbXV0YWJsZVNldH0gZnJvbSBhbiBpdGVyYWJsZS5cbiAgICogSWYgdGhlIGl0ZXJhYmxlIGlzIHVuZGVmaW5lZCwge0BsaW5rIEltbXV0YWJsZVNldC5lbXB0eX0gd2lsbCBiZSByZXR1cm5lZC5cbiAgICogSWYgdGhlIGl0ZXJhYmxlIGlzIGFscmVhZHkgYW4ge0BsaW5rIEltbXV0YWJsZVNldH0sIGl0IHdpbGwgYmUgcmV0dXJuZWQgYXMgaXMgbm8gY29weSB3aWxsIGJlIG1hZGUuXG4gICAqLyBzdGF0aWMgZnJvbShpdGVyYWJsZSkge1xuICAgICAgICBpZiAoaXRlcmFibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW1wdHk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZXJhYmxlIGluc3RhbmNlb2YgdGhpcykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhYmxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgdGhpcyhuZXcgU2V0KGl0ZXJhYmxlKSk7XG4gICAgfVxuICAgIHN0YXRpYyBbX1N5bWJvbF9oYXNJbnN0YW5jZV0oaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odHlwZW9mIGluc3RhbmNlID09PSAnb2JqZWN0JyAmJiBpbnN0YW5jZSAmJiBpbnRlcm5hbFNldFN5bWJvbCBpbiBpbnN0YW5jZSk7XG4gICAgfVxuICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb3B5ID0gSW1tdXRhYmxlU2V0LmNvcHkodGhpcyk7XG4gICAgICAgIGNvcHlbaW50ZXJuYWxTZXRTeW1ib2xdLmFkZCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cbiAgICBkZWxldGUodmFsdWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvcHkgPSBJbW11dGFibGVTZXQuY29weSh0aGlzKTtcbiAgICAgICAgY29weVtpbnRlcm5hbFNldFN5bWJvbF0uZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuICAgIGhhcyh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpc1tpbnRlcm5hbFNldFN5bWJvbF0uaGFzKHZhbHVlKTtcbiAgICB9XG4gICAgW19TeW1ib2xfaXRlcmF0b3JdKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tpbnRlcm5hbFNldFN5bWJvbF0udmFsdWVzKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBEbyBub3QgdXNlIHRoaXMgY29uc3RydWN0b3IgZGlyZWN0bHksIHVzZSB7QGxpbmsgSW1tdXRhYmxlU2V0LmZyb219IGluc3RlYWQuXG4gICAqIHtAbGluayBJbW11dGFibGVTZXQuZnJvbX0gaGFuZGxlcyBpbnN0YW5jZSB2ZXJpZmljYXRpb24gKHdoaWNoIG1pZ2h0IGJlIHByb2JsZW1hdGljIG9uIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9PcGVyYXRvcnMvaW5zdGFuY2VvZiNpbnN0YW5jZW9mX2FuZF9tdWx0aXBsZV9yZWFsbXMgfCBtdWx0aXBsZSByZWFsbXN9KSxcbiAgICogYXZvaWQgdW5uZWNlc3NhcnkgY29waWVzLCBzdXBwb3J0cyBpdGVyYWJsZXMgYW5kIGVuc3VyZXMgdGhhdCB0aGUgaW50ZXJuYWwgc2V0IGlzIG5ldmVyIGV4cG9zZWQuXG4gICAqXG4gICAq4pqg77iP4pqg77iPICBfQnkgdXNpbmcgdGhpcyBjb25zdHJ1Y3RvciBkaXJlY3RseSwgeW91IG1pZ2h0IGVuZCB1cCB3aXRoIGEgbXV0YWJsZSBzZXQsIGFzIGl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIGludGVybmFsIHNldCBpcyBub3QgZXhwb3NlZC5fIOKaoO+4j+KaoO+4j1xuICAgKi8gY29uc3RydWN0b3IoaW50ZXJuYWxTZXQpe1xuICAgICAgICBfZGVmaW5lX3Byb3BlcnR5KHRoaXMsIFwic2l6ZVwiLCB2b2lkIDApO1xuICAgICAgICBfZGVmaW5lX3Byb3BlcnR5KHRoaXMsIF9pbnRlcm5hbFNldFN5bWJvbCwgdm9pZCAwKTtcbiAgICAgICAgdGhpc1tpbnRlcm5hbFNldFN5bWJvbF0gPSBpbnRlcm5hbFNldDtcbiAgICAgICAgdGhpcy5zaXplID0gdGhpc1tpbnRlcm5hbFNldFN5bWJvbF0uc2l6ZTtcbiAgICB9XG59XG5fZGVmaW5lX3Byb3BlcnR5KEltbXV0YWJsZVNldCwgXCJlbXB0eVwiLCBuZXcgSW1tdXRhYmxlU2V0KG5ldyBTZXQoKSkpO1xuIiwiaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEltbXV0YWJsZVNldCB9IGZyb20gJy4uL3V0aWxzL0ltbXV0YWJsZVNldCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VDb250cm9sbGFibGVPcGVuSXRlbXMocHJvcHMpIHtcbiAgICByZXR1cm4gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBzdGF0ZTogUmVhY3QudXNlTWVtbygoKT0+cHJvcHMub3Blbkl0ZW1zICYmIEltbXV0YWJsZVNldC5mcm9tKHByb3BzLm9wZW5JdGVtcyksIFtcbiAgICAgICAgICAgIHByb3BzLm9wZW5JdGVtc1xuICAgICAgICBdKSxcbiAgICAgICAgZGVmYXVsdFN0YXRlOiBwcm9wcy5kZWZhdWx0T3Blbkl0ZW1zICYmICgoKT0+SW1tdXRhYmxlU2V0LmZyb20ocHJvcHMuZGVmYXVsdE9wZW5JdGVtcykpLFxuICAgICAgICBpbml0aWFsU3RhdGU6IEltbXV0YWJsZVNldC5lbXB0eVxuICAgIH0pO1xufVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlTmV4dE9wZW5JdGVtcyhkYXRhLCBwcmV2aW91c09wZW5JdGVtcykge1xuICAgIHJldHVybiBkYXRhLm9wZW4gPyBwcmV2aW91c09wZW5JdGVtcy5hZGQoZGF0YS52YWx1ZSkgOiBwcmV2aW91c09wZW5JdGVtcy5kZWxldGUoZGF0YS52YWx1ZSk7XG59XG4iLCJpbXBvcnQgeyBfIGFzIF9kZWZpbmVfcHJvcGVydHkgfSBmcm9tIFwiQHN3Yy9oZWxwZXJzL18vX2RlZmluZV9wcm9wZXJ0eVwiO1xuY29uc3QgaW50ZXJuYWxNYXBTeW1ib2wgPSBTeW1ib2woJyNpbnRlcm5hbE1hcCcpO1xubGV0IF9pbnRlcm5hbE1hcFN5bWJvbCA9IGludGVybmFsTWFwU3ltYm9sLCBfU3ltYm9sX2hhc0luc3RhbmNlID0gU3ltYm9sLmhhc0luc3RhbmNlLCBfU3ltYm9sX2l0ZXJhdG9yID0gU3ltYm9sLml0ZXJhdG9yO1xuZXhwb3J0IGNsYXNzIEltbXV0YWJsZU1hcCB7XG4gICAgc3RhdGljIGRhbmdlcm91c2x5R2V0SW50ZXJuYWxNYXAoaW1tdXRhYmxlTWFwKSB7XG4gICAgICAgIHJldHVybiBpbW11dGFibGVNYXBbaW50ZXJuYWxNYXBTeW1ib2xdO1xuICAgIH1cbiAgICBzdGF0aWMgY29weShpbW11dGFibGVNYXApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbShpbW11dGFibGVNYXBbaW50ZXJuYWxNYXBTeW1ib2xdKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb20oaXRlcmFibGUsIG1hcEZuKSB7XG4gICAgICAgIGlmIChpdGVyYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbXB0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW1hcEZuKSB7XG4gICAgICAgICAgICBpZiAoaXRlcmFibGUgaW5zdGFuY2VvZiB0aGlzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2FzdGluZyBoZXJlIGlzIG9rLCBhcyB0aGUgZnVuY3Rpb24gb3ZlcmxvYWQgZW5zdXJlcyB0aGF0IHRoZSBpdGVyYWJsZSBpc1xuICAgICAgICAgICAgLy8gSXRlcmFibGU8W3Vua25vd24sIHVua25vd25dPlxuICAgICAgICAgICAgLy8gaWYgbWFwRm4gaXMgbm90IHByb3ZpZGVkXG4gICAgICAgICAgICBjb25zdCBpdGVyYWJsZUFzVHVwbGUgPSBpdGVyYWJsZTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgdGhpcyhuZXcgTWFwKGl0ZXJhYmxlQXNUdXBsZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBpdGVyYWJsZSl7XG4gICAgICAgICAgICBtYXAuc2V0KC4uLm1hcEZuKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyB0aGlzKG1hcCk7XG4gICAgfVxuICAgIHN0YXRpYyBbX1N5bWJvbF9oYXNJbnN0YW5jZV0oaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odHlwZW9mIGluc3RhbmNlID09PSAnb2JqZWN0JyAmJiBpbnN0YW5jZSAmJiBpbnRlcm5hbE1hcFN5bWJvbCBpbiBpbnN0YW5jZSk7XG4gICAgfVxuICAgIGRlbGV0ZShrZXkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb3B5ID0gSW1tdXRhYmxlTWFwLmNvcHkodGhpcyk7XG4gICAgICAgIGNvcHlbaW50ZXJuYWxNYXBTeW1ib2xdLmRlbGV0ZShrZXkpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG4gICAgZ2V0KGtleSkge1xuICAgICAgICByZXR1cm4gdGhpc1tpbnRlcm5hbE1hcFN5bWJvbF0uZ2V0KGtleSk7XG4gICAgfVxuICAgIGhhcyhrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbaW50ZXJuYWxNYXBTeW1ib2xdLmhhcyhrZXkpO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5nZXQoa2V5KSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvcHkgPSBJbW11dGFibGVNYXAuY29weSh0aGlzKTtcbiAgICAgICAgY29weVtpbnRlcm5hbE1hcFN5bWJvbF0uc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG4gICAgW19TeW1ib2xfaXRlcmF0b3JdKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tpbnRlcm5hbE1hcFN5bWJvbF0uZW50cmllcygpO1xuICAgIH1cbiAgICAvKipcbiAgICogRG8gbm90IHVzZSB0aGlzIGNvbnN0cnVjdG9yIGRpcmVjdGx5LCB1c2Uge0BsaW5rIEltbXV0YWJsZU1hcC5mcm9tfSBpbnN0ZWFkLlxuICAgKiB7QGxpbmsgSW1tdXRhYmxlTWFwLmZyb219IGhhbmRsZXMgaW5zdGFuY2UgdmVyaWZpY2F0aW9uICh3aGljaCBtaWdodCBiZSBwcm9ibGVtYXRpYyBvbiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL2luc3RhbmNlb2YjaW5zdGFuY2VvZl9hbmRfbXVsdGlwbGVfcmVhbG1zIHwgbXVsdGlwbGUgcmVhbG1zfSksXG4gICAqIGF2b2lkIHVubmVjZXNzYXJ5IGNvcGllcywgc3VwcG9ydHMgaXRlcmFibGVzIGFuZCBlbnN1cmVzIHRoYXQgdGhlIGludGVybmFsIG1hcCBpcyBuZXZlciBleHBvc2VkLlxuICAgKlxuICAgKuKaoO+4j+KaoO+4jyAgX0J5IHVzaW5nIHRoaXMgY29uc3RydWN0b3IgZGlyZWN0bHksIHlvdSBtaWdodCBlbmQgdXAgd2l0aCBhIG11dGFibGUgbWFwLCBhcyBpdCBpcyBub3QgZ3VhcmFudGVlZCB0aGF0IHRoZSBpbnRlcm5hbCBtYXAgaXMgbm90IGV4cG9zZWQuXyDimqDvuI/imqDvuI9cbiAgICovIGNvbnN0cnVjdG9yKGludGVybmFsTWFwKXtcbiAgICAgICAgX2RlZmluZV9wcm9wZXJ0eSh0aGlzLCBcInNpemVcIiwgdm9pZCAwKTtcbiAgICAgICAgX2RlZmluZV9wcm9wZXJ0eSh0aGlzLCBfaW50ZXJuYWxNYXBTeW1ib2wsIHZvaWQgMCk7XG4gICAgICAgIHRoaXNbaW50ZXJuYWxNYXBTeW1ib2xdID0gaW50ZXJuYWxNYXA7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXNbaW50ZXJuYWxNYXBTeW1ib2xdLnNpemU7XG4gICAgfVxufVxuX2RlZmluZV9wcm9wZXJ0eShJbW11dGFibGVNYXAsIFwiZW1wdHlcIiwgbmV3IEltbXV0YWJsZU1hcChuZXcgTWFwKCkpKTtcbiIsImltcG9ydCB7IEltbXV0YWJsZU1hcCB9IGZyb20gJy4vSW1tdXRhYmxlTWFwJztcbmNvbnN0IHR1cGxpZnlDaGVja2VkSXRlbSA9ICh2YWx1ZSk9PkFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXG4gICAgICAgIHZhbHVlLFxuICAgICAgICB0cnVlXG4gICAgXTtcbmV4cG9ydCBjb25zdCBjcmVhdGVDaGVja2VkSXRlbXMgPSAoaXRlcmFibGUpPT5JbW11dGFibGVNYXAuZnJvbShpdGVyYWJsZSwgdHVwbGlmeUNoZWNrZWRJdGVtKTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEltbXV0YWJsZU1hcCB9IGZyb20gJy4uLy4uL3V0aWxzL0ltbXV0YWJsZU1hcCc7XG5pbXBvcnQgeyBjcmVhdGVDaGVja2VkSXRlbXMgfSBmcm9tICcuLi8uLi91dGlscy9jcmVhdGVDaGVja2VkSXRlbXMnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5lc3RlZENoZWNrZWRJdGVtcyhwcm9wcykge1xuICAgIHJldHVybiBSZWFjdC51c2VNZW1vKCgpPT5jcmVhdGVDaGVja2VkSXRlbXMocHJvcHMuY2hlY2tlZEl0ZW1zKSwgW1xuICAgICAgICBwcm9wcy5jaGVja2VkSXRlbXNcbiAgICBdKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXh0TmVzdGVkQ2hlY2tlZEl0ZW1zKGRhdGEsIHByZXZpb3VzQ2hlY2tlZEl0ZW1zKSB7XG4gICAgaWYgKGRhdGEuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgcmV0dXJuIEltbXV0YWJsZU1hcC5mcm9tKFtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBkYXRhLnZhbHVlLFxuICAgICAgICAgICAgICAgIGRhdGEuY2hlY2tlZFxuICAgICAgICAgICAgXVxuICAgICAgICBdKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpc2VsZWN0Jykge1xuICAgICAgICByZXR1cm4gcHJldmlvdXNDaGVja2VkSXRlbXMuc2V0KGRhdGEudmFsdWUsIGRhdGEuY2hlY2tlZCk7XG4gICAgfVxuICAgIHJldHVybiBwcmV2aW91c0NoZWNrZWRJdGVtcztcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogQGludGVybmFsXG4gKi8gY29uc3QgZGVmYXVsdFN1YlRyZWVDb250ZXh0VmFsdWUgPSB7XG4gICAgbGV2ZWw6IDAsXG4gICAgY29udGV4dFR5cGU6ICdzdWJ0cmVlJ1xufTtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IFN1YnRyZWVDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IHVzZVN1YnRyZWVDb250ZXh0X3Vuc3RhYmxlID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoU3VidHJlZUNvbnRleHQpKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dCAhPT0gdm9pZCAwID8gX1JlYWN0X3VzZUNvbnRleHQgOiBkZWZhdWx0U3ViVHJlZUNvbnRleHRWYWx1ZTtcbn07XG4iLCJpbXBvcnQgeyBBcnJvd0Rvd24sIEFycm93TGVmdCwgQXJyb3dSaWdodCwgQXJyb3dVcCwgRW5kLCBIb21lLCBFbnRlciB9IGZyb20gJ0BmbHVlbnR1aS9rZXlib2FyZC1rZXlzJztcbmV4cG9ydCBjb25zdCB0cmVlSXRlbUxldmVsVG9rZW4gPSAnLS1mbHVlbnQtVHJlZUl0ZW0tLWxldmVsJztcbmV4cG9ydCBjb25zdCB0cmVlQXZhdGFyU2l6ZSA9IHtcbiAgICBtZWRpdW06IDMyLFxuICAgIHNtYWxsOiAyNFxufTtcbmV4cG9ydCBjb25zdCB0cmVlRGF0YVR5cGVzID0ge1xuICAgIEFycm93TGVmdCxcbiAgICBBcnJvd1JpZ2h0LFxuICAgIEVudGVyLFxuICAgIENsaWNrOiAnQ2xpY2snLFxuICAgIEV4cGFuZEljb25DbGljazogJ0V4cGFuZEljb25DbGljaycsXG4gICAgRW5kLFxuICAgIEhvbWUsXG4gICAgQXJyb3dVcCxcbiAgICBBcnJvd0Rvd24sXG4gICAgVHlwZUFoZWFkOiAnVHlwZUFoZWFkJyxcbiAgICBDaGFuZ2U6ICdDaGFuZ2UnXG59O1xuIiwiaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCB1c2VFdmVudENhbGxiYWNrLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2xsYXBzZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24tY29tcG9uZW50cy1wcmV2aWV3JztcbmltcG9ydCB7IGNyZWF0ZUNoZWNrZWRJdGVtcyB9IGZyb20gJy4uL3V0aWxzL2NyZWF0ZUNoZWNrZWRJdGVtcyc7XG5pbXBvcnQgeyB0cmVlRGF0YVR5cGVzIH0gZnJvbSAnLi4vdXRpbHMvdG9rZW5zJztcbmltcG9ydCB7IGNyZWF0ZU5leHRPcGVuSXRlbXMgfSBmcm9tICcuL3VzZUNvbnRyb2xsYWJsZU9wZW5JdGVtcyc7XG5pbXBvcnQgeyBJbW11dGFibGVTZXQgfSBmcm9tICcuLi91dGlscy9JbW11dGFibGVTZXQnO1xuaW1wb3J0IHsgSW1tdXRhYmxlTWFwIH0gZnJvbSAnLi4vdXRpbHMvSW1tdXRhYmxlTWFwJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgdGhlIHJvb3QgbGV2ZWwgdHJlZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgdHJlZVxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIHRyZWVcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlUm9vdFRyZWUocHJvcHMsIHJlZikge1xuICAgIHdhcm5JZk5vUHJvcGVyUHJvcHNSb290VHJlZShwcm9wcyk7XG4gICAgY29uc3QgeyBhcHBlYXJhbmNlID0gJ3N1YnRsZScsIHNpemUgPSAnbWVkaXVtJywgc2VsZWN0aW9uTW9kZSA9ICdub25lJyB9ID0gcHJvcHM7XG4gICAgY29uc3Qgb3Blbkl0ZW1zID0gUmVhY3QudXNlTWVtbygoKT0+SW1tdXRhYmxlU2V0LmZyb20ocHJvcHMub3Blbkl0ZW1zKSwgW1xuICAgICAgICBwcm9wcy5vcGVuSXRlbXNcbiAgICBdKTtcbiAgICBjb25zdCBjaGVja2VkSXRlbXMgPSBSZWFjdC51c2VNZW1vKCgpPT5jcmVhdGVDaGVja2VkSXRlbXMocHJvcHMuY2hlY2tlZEl0ZW1zKSwgW1xuICAgICAgICBwcm9wcy5jaGVja2VkSXRlbXNcbiAgICBdKTtcbiAgICBjb25zdCByZXF1ZXN0T3BlbkNoYW5nZSA9IChyZXF1ZXN0KT0+e1xuICAgICAgICB2YXIgX3Byb3BzX29uT3BlbkNoYW5nZTtcbiAgICAgICAgKF9wcm9wc19vbk9wZW5DaGFuZ2UgPSBwcm9wcy5vbk9wZW5DaGFuZ2UpID09PSBudWxsIHx8IF9wcm9wc19vbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbk9wZW5DaGFuZ2UuY2FsbChwcm9wcywgcmVxdWVzdC5ldmVudCwge1xuICAgICAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgICAgICAgIG9wZW5JdGVtczogSW1tdXRhYmxlU2V0LmRhbmdlcm91c2x5R2V0SW50ZXJuYWxTZXQoY3JlYXRlTmV4dE9wZW5JdGVtcyhyZXF1ZXN0LCBvcGVuSXRlbXMpKVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IHJlcXVlc3RDaGVja2VkQ2hhbmdlID0gKHJlcXVlc3QpPT57XG4gICAgICAgIHZhciBfcHJvcHNfb25DaGVja2VkQ2hhbmdlO1xuICAgICAgICBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9wcm9wc19vbkNoZWNrZWRDaGFuZ2UgPSBwcm9wcy5vbkNoZWNrZWRDaGFuZ2UpID09PSBudWxsIHx8IF9wcm9wc19vbkNoZWNrZWRDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbkNoZWNrZWRDaGFuZ2UuY2FsbChwcm9wcywgcmVxdWVzdC5ldmVudCwge1xuICAgICAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGUsXG4gICAgICAgICAgICBjaGVja2VkSXRlbXM6IEltbXV0YWJsZU1hcC5kYW5nZXJvdXNseUdldEludGVybmFsTWFwKGNoZWNrZWRJdGVtcylcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCByZXF1ZXN0TmF2aWdhdGlvbiA9IChyZXF1ZXN0KT0+e1xuICAgICAgICB2YXIgX3Byb3BzX29uTmF2aWdhdGlvbjtcbiAgICAgICAgbGV0IGlzU2Nyb2xsUHJldmVudGVkID0gZmFsc2U7XG4gICAgICAgIChfcHJvcHNfb25OYXZpZ2F0aW9uID0gcHJvcHMub25OYXZpZ2F0aW9uKSA9PT0gbnVsbCB8fCBfcHJvcHNfb25OYXZpZ2F0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfb25OYXZpZ2F0aW9uLmNhbGwocHJvcHMsIHJlcXVlc3QuZXZlbnQsIHtcbiAgICAgICAgICAgIC4uLnJlcXVlc3QsXG4gICAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiAoKT0+e1xuICAgICAgICAgICAgICAgIGlzU2Nyb2xsUHJldmVudGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc1Njcm9sbFByZXZlbnRlZDogKCk9PmlzU2Nyb2xsUHJldmVudGVkXG4gICAgICAgIH0pO1xuICAgICAgICBzd2l0Y2gocmVxdWVzdC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5BcnJvd0Rvd246XG4gICAgICAgICAgICBjYXNlIHRyZWVEYXRhVHlwZXMuQXJyb3dVcDpcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5Ib21lOlxuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkVuZDpcbiAgICAgICAgICAgICAgICAvLyBzdG9wIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBldmVudFxuICAgICAgICAgICAgICAgIC8vIHdoaWNoIGlzIHRvIHNjcm9sbCB0aGUgcGFnZVxuICAgICAgICAgICAgICAgIHJlcXVlc3QuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVxdWVzdFRyZWVSZXNwb25zZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlcXVlc3QpPT57XG4gICAgICAgIHN3aXRjaChyZXF1ZXN0LnJlcXVlc3RUeXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ25hdmlnYXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdE5hdmlnYXRpb24ocmVxdWVzdCk7XG4gICAgICAgICAgICBjYXNlICdvcGVuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdE9wZW5DaGFuZ2UocmVxdWVzdCk7XG4gICAgICAgICAgICBjYXNlICdzZWxlY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Q2hlY2tlZENoYW5nZShyZXF1ZXN0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgLy8gVE9ETzogcmVtb3ZlIG9uY2UgUmVhY3QgdjE4IHNsb3QgQVBJIGlzIG1vZGlmaWVkXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSBhdCB0aGUgbW9tZW50IGR1ZSB0byBVbmtub3duU2xvdFByb3BzIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIHRoYXQgYGNoaWxkcmVuYCBwcm9wZXJ0eSBpcyBgUmVhY3ROb2RlYCwgd2hpY2ggaW4gdGhpcyBjYXNlIGlzIG5vdCB2YWxpZFxuICAgICAgICAgICAgLy8gYXMgUHJlc2VuY2VDb21wb25lbnRQcm9wc1snY2hpbGRyZW4nXSBpcyBgUmVhY3RFbGVtZW50YFxuICAgICAgICAgICAgY29sbGFwc2VNb3Rpb246IENvbGxhcHNlXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHRUeXBlOiAncm9vdCcsXG4gICAgICAgIHNlbGVjdGlvbk1vZGUsXG4gICAgICAgIG9wZW46IHRydWUsXG4gICAgICAgIGFwcGVhcmFuY2UsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxldmVsOiAxLFxuICAgICAgICBvcGVuSXRlbXMsXG4gICAgICAgIGNoZWNrZWRJdGVtcyxcbiAgICAgICAgcmVxdWVzdFRyZWVSZXNwb25zZSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICAvLyBGSVhNRTpcbiAgICAgICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgIHJvbGU6ICd0cmVlJyxcbiAgICAgICAgICAgICdhcmlhLW11bHRpc2VsZWN0YWJsZSc6IHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXNlbGVjdCcgPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgY29sbGFwc2VNb3Rpb246IHVuZGVmaW5lZFxuICAgIH07XG59XG5mdW5jdGlvbiB3YXJuSWZOb1Byb3BlclByb3BzUm9vdFRyZWUocHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgaWYgKCFwcm9wc1snYXJpYS1sYWJlbCddICYmICFwcm9wc1snYXJpYS1sYWJlbGxlZGJ5J10pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEBmbHVlbnR1aS9yZWFjdC10cmVlIFt1c2VSb290VHJlZV06XG5UcmVlIG11c3QgaGF2ZSBlaXRoZXIgYSBcXGBhcmlhLWxhYmVsXFxgIG9yIFxcYGFyaWEtbGFiZWxsZWRieVxcYCBwcm9wZXJ0eSBkZWZpbmVkYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJpbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0U2VsZWN0b3IgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtY29udGV4dC1zZWxlY3Rvcic7XG5pbXBvcnQgeyBJbW11dGFibGVTZXQgfSBmcm9tICcuLi91dGlscy9JbW11dGFibGVTZXQnO1xuaW1wb3J0IHsgSW1tdXRhYmxlTWFwIH0gZnJvbSAnLi4vdXRpbHMvSW1tdXRhYmxlTWFwJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gY29uc3QgZGVmYXVsdFRyZWVDb250ZXh0VmFsdWUgPSB7XG4gICAgbGV2ZWw6IDAsXG4gICAgY29udGV4dFR5cGU6ICdyb290JyxcbiAgICB0cmVlVHlwZTogJ25lc3RlZCcsXG4gICAgc2VsZWN0aW9uTW9kZTogJ25vbmUnLFxuICAgIG9wZW5JdGVtczogSW1tdXRhYmxlU2V0LmVtcHR5LFxuICAgIGNoZWNrZWRJdGVtczogSW1tdXRhYmxlTWFwLmVtcHR5LFxuICAgIHJlcXVlc3RUcmVlUmVzcG9uc2U6IG5vb3AsXG4gICAgYXBwZWFyYW5jZTogJ3N1YnRsZScsXG4gICAgc2l6ZTogJ21lZGl1bSdcbn07XG5mdW5jdGlvbiBub29wKCkge1xuLyogbm9vcCAqLyB9XG4vKipcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBUcmVlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCB1c2VUcmVlQ29udGV4dF91bnN0YWJsZSA9IChzZWxlY3Rvcik9PnVzZUNvbnRleHRTZWxlY3RvcihUcmVlQ29udGV4dCwgKGN0eCA9IGRlZmF1bHRUcmVlQ29udGV4dFZhbHVlKT0+c2VsZWN0b3IoY3R4KSk7XG4iLCIvKipcbiAqIGNyZWF0ZXMgYSBsaXN0IG9mIHZpcnR1YWwgdHJlZSBpdGVtc1xuICogYW5kIHByb3ZpZGVzIGEgbWFwIHRvIGFjY2VzcyBlYWNoIGl0ZW0gYnkgaWRcbiAqLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlSGVhZGxlc3NUcmVlKGluaXRpYWxQcm9wcyA9IFtdKSB7XG4gICAgY29uc3Qgcm9vdCA9IGNyZWF0ZUhlYWRsZXNzVHJlZVJvb3RJdGVtKCk7XG4gICAgY29uc3QgaXRlbXNQZXJWYWx1ZSA9IG5ldyBNYXAoW1xuICAgICAgICBbXG4gICAgICAgICAgICByb290LnZhbHVlLFxuICAgICAgICAgICAgcm9vdFxuICAgICAgICBdXG4gICAgXSk7XG4gICAgY29uc3QgaGVhZGxlc3NUcmVlID0ge1xuICAgICAgICByb290LFxuICAgICAgICBnZXQgc2l6ZSAoKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXNQZXJWYWx1ZS5zaXplO1xuICAgICAgICB9LFxuICAgICAgICBnZXRQYXJlbnQ6IChrZXkpPT57XG4gICAgICAgICAgICB2YXIgX2l0ZW1zUGVyVmFsdWVfZ2V0O1xuICAgICAgICAgICAgdmFyIF9pdGVtc1BlclZhbHVlX2dldF9wYXJlbnRWYWx1ZSwgX2l0ZW1zUGVyVmFsdWVfZ2V0MTtcbiAgICAgICAgICAgIHJldHVybiAoX2l0ZW1zUGVyVmFsdWVfZ2V0MSA9IGl0ZW1zUGVyVmFsdWUuZ2V0KChfaXRlbXNQZXJWYWx1ZV9nZXRfcGFyZW50VmFsdWUgPSAoX2l0ZW1zUGVyVmFsdWVfZ2V0ID0gaXRlbXNQZXJWYWx1ZS5nZXQoa2V5KSkgPT09IG51bGwgfHwgX2l0ZW1zUGVyVmFsdWVfZ2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaXRlbXNQZXJWYWx1ZV9nZXQucGFyZW50VmFsdWUpICE9PSBudWxsICYmIF9pdGVtc1BlclZhbHVlX2dldF9wYXJlbnRWYWx1ZSAhPT0gdm9pZCAwID8gX2l0ZW1zUGVyVmFsdWVfZ2V0X3BhcmVudFZhbHVlIDogcm9vdC52YWx1ZSkpICE9PSBudWxsICYmIF9pdGVtc1BlclZhbHVlX2dldDEgIT09IHZvaWQgMCA/IF9pdGVtc1BlclZhbHVlX2dldDEgOiByb290O1xuICAgICAgICB9LFxuICAgICAgICBnZXQ6IChrZXkpPT5pdGVtc1BlclZhbHVlLmdldChrZXkpLFxuICAgICAgICBoYXM6IChrZXkpPT5pdGVtc1BlclZhbHVlLmhhcyhrZXkpLFxuICAgICAgICBhZGQgKHByb3BzKSB7XG4gICAgICAgICAgICBjb25zdCB7IHBhcmVudFZhbHVlID0gaGVhZGxlc3NUcmVlUm9vdElkLCAuLi5wcm9wc1dpdGhvdXRQYXJlbnRWYWx1ZSB9ID0gcHJvcHM7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRJdGVtID0gaXRlbXNQZXJWYWx1ZS5nZXQocGFyZW50VmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFwYXJlbnRJdGVtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEBmbHVlbnR1aS9yZWFjdC10cmVlIFtjcmVhdGVIZWFkbGVzc1RyZWVdOlxuVHJlZUl0ZW0gXCIke3Byb3BzLnZhbHVlfVwiIGlzIHdyb25nbHkgcG9zaXRpb25lZCwgZGlkIHlvdSBwcm9wZXJseSBvcmRlcmVkIHByb3ZpZGVkIGl0ZW0gcHJvcHM/IG1ha2Ugc3VyZSBwcm92aWRlZCBpdGVtcyBhcmUgb3JnYW5pemVkLCBwYXJlbnRzIHNob3VsZCBjb21lIGJlZm9yZSBjaGlsZHJlbmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnRJdGVtLml0ZW1UeXBlID0gJ2JyYW5jaCc7XG4gICAgICAgICAgICB2YXIgX3Byb3BzV2l0aG91dFBhcmVudFZhbHVlX2l0ZW1UeXBlO1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcHJvcHMudmFsdWUsXG4gICAgICAgICAgICAgICAgZ2V0VHJlZUl0ZW1Qcm9wczogKCk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wc1dpdGhvdXRQYXJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtbGV2ZWwnOiBpdGVtLmxldmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtcG9zaW5zZXQnOiBpdGVtLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2V0c2l6ZSc6IHBhcmVudEl0ZW0uY2hpbGRyZW5WYWx1ZXMubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVR5cGU6IGl0ZW0uaXRlbVR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaXRlbVR5cGU6IChfcHJvcHNXaXRob3V0UGFyZW50VmFsdWVfaXRlbVR5cGUgPSBwcm9wc1dpdGhvdXRQYXJlbnRWYWx1ZS5pdGVtVHlwZSkgIT09IG51bGwgJiYgX3Byb3BzV2l0aG91dFBhcmVudFZhbHVlX2l0ZW1UeXBlICE9PSB2b2lkIDAgPyBfcHJvcHNXaXRob3V0UGFyZW50VmFsdWVfaXRlbVR5cGUgOiAnbGVhZicsXG4gICAgICAgICAgICAgICAgbGV2ZWw6IHBhcmVudEl0ZW0ubGV2ZWwgKyAxLFxuICAgICAgICAgICAgICAgIHBhcmVudFZhbHVlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuVmFsdWVzOiBbXSxcbiAgICAgICAgICAgICAgICBpbmRleDogLTEsXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHBhcmVudEl0ZW0uY2hpbGRyZW5WYWx1ZXMucHVzaChwcm9wcy52YWx1ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpdGVtc1BlclZhbHVlLnNldChpdGVtLnZhbHVlLCBpdGVtKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3VidHJlZTogKGtleSk9PkhlYWRsZXNzVHJlZVN1YnRyZWVHZW5lcmF0b3Ioa2V5LCBoZWFkbGVzc1RyZWUpLFxuICAgICAgICBjaGlsZHJlbjogKGtleSk9PkhlYWRsZXNzVHJlZUNoaWxkcmVuR2VuZXJhdG9yKGtleSwgaGVhZGxlc3NUcmVlKSxcbiAgICAgICAgYW5jZXN0b3JzOiAoa2V5KT0+SGVhZGxlc3NUcmVlQW5jZXN0b3JzR2VuZXJhdG9yKGtleSwgaGVhZGxlc3NUcmVlKSxcbiAgICAgICAgdmlzaWJsZUl0ZW1zOiAob3Blbkl0ZW1zKT0+SGVhZGxlc3NUcmVlVmlzaWJsZUl0ZW1zR2VuZXJhdG9yKG9wZW5JdGVtcywgaGVhZGxlc3NUcmVlKVxuICAgIH07XG4gICAgaW5pdGlhbFByb3BzLmZvckVhY2goaGVhZGxlc3NUcmVlLmFkZCk7XG4gICAgcmV0dXJuIGhlYWRsZXNzVHJlZTtcbn1cbmV4cG9ydCBjb25zdCBoZWFkbGVzc1RyZWVSb290SWQgPSAnX19mdWlIZWFkbGVzc1RyZWVSb290JztcbmZ1bmN0aW9uIGNyZWF0ZUhlYWRsZXNzVHJlZVJvb3RJdGVtKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmVudFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgIHZhbHVlOiBoZWFkbGVzc1RyZWVSb290SWQsXG4gICAgICAgIGl0ZW1UeXBlOiAnYnJhbmNoJyxcbiAgICAgICAgZ2V0VHJlZUl0ZW1Qcm9wczogKCk9PntcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtdHJlZSBbY3JlYXRlSGVhZGxlc3NUcmVlXTpcbkludGVybmFsIGVycm9yLCB0cnlpbmcgdG8gYWNjZXNzIHRyZWVpdGVtIHByb3BzIGZyb20gaW52YWxpZCByb290IGVsZW1lbnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaWQ6IGhlYWRsZXNzVHJlZVJvb3RJZCxcbiAgICAgICAgICAgICAgICBwYXJlbnRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBoZWFkbGVzc1RyZWVSb290SWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtc2V0c2l6ZSc6IC0xLFxuICAgICAgICAgICAgICAgICdhcmlhLWxldmVsJzogLTEsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcG9zaW5zZXQnOiAtMSxcbiAgICAgICAgICAgICAgICBpdGVtVHlwZTogJ2JyYW5jaCdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuVmFsdWVzOiBbXSxcbiAgICAgICAgZ2V0IGluZGV4ICgpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtdHJlZSBbY3JlYXRlSGVhZGxlc3NUcmVlXTpcbkludGVybmFsIGVycm9yLCB0cnlpbmcgdG8gYWNjZXNzIHRyZWVpdGVtIHByb3BzIGZyb20gaW52YWxpZCByb290IGVsZW1lbnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHBvc2l0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtdHJlZSBbY3JlYXRlSGVhZGxlc3NUcmVlXTpcbkludGVybmFsIGVycm9yLCB0cnlpbmcgdG8gYWNjZXNzIHRyZWVpdGVtIHByb3BzIGZyb20gaW52YWxpZCByb290IGVsZW1lbnRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSxcbiAgICAgICAgbGV2ZWw6IDBcbiAgICB9O1xufVxuLyoqXG4gKiBHZW5lcmF0b3IgdGhhdCByZXR1cm5zIGFsbCBzdWJ0cmVlIG9mIGEgZ2l2ZW4gdmlydHVhbCB0cmVlIGl0ZW1cbiAqIEBwYXJhbSBrZXkgLSB0aGUga2V5IG9mIHRoZSBpdGVtIHRvIGdldCB0aGUgc3VidHJlZSBmcm9tXG4gKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZnVuY3Rpb24qIEhlYWRsZXNzVHJlZVN1YnRyZWVHZW5lcmF0b3Ioa2V5LCB2aXJ0dWFsVHJlZUl0ZW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IHZpcnR1YWxUcmVlSXRlbXMuZ2V0KGtleSk7XG4gICAgaWYgKCFpdGVtIHx8IGl0ZW0uY2hpbGRyZW5WYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBjaGlsZFZhbHVlIG9mIGl0ZW0uY2hpbGRyZW5WYWx1ZXMpe1xuICAgICAgICB5aWVsZCB2aXJ0dWFsVHJlZUl0ZW1zLmdldChjaGlsZFZhbHVlKTtcbiAgICAgICAgeWllbGQqIEhlYWRsZXNzVHJlZVN1YnRyZWVHZW5lcmF0b3IoY2hpbGRWYWx1ZSwgdmlydHVhbFRyZWVJdGVtcyk7XG4gICAgfVxufVxuLyoqXG4gKiBHZW5lcmF0b3IgdGhhdCByZXR1cm5zIGFsbCBjaGlsZHJlbiBvZiBhIGdpdmVuIHZpcnR1YWwgdHJlZSBpdGVtXG4gKiBAcGFyYW0ga2V5IC0gdGhlIGtleSBvZiB0aGUgaXRlbSB0byBnZXQgdGhlIGNoaWxkcmVuIGZyb21cbiAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5mdW5jdGlvbiogSGVhZGxlc3NUcmVlQ2hpbGRyZW5HZW5lcmF0b3Ioa2V5LCB2aXJ0dWFsVHJlZUl0ZW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IHZpcnR1YWxUcmVlSXRlbXMuZ2V0KGtleSk7XG4gICAgaWYgKCFpdGVtIHx8IGl0ZW0uY2hpbGRyZW5WYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBjaGlsZFZhbHVlIG9mIGl0ZW0uY2hpbGRyZW5WYWx1ZXMpe1xuICAgICAgICB5aWVsZCB2aXJ0dWFsVHJlZUl0ZW1zLmdldChjaGlsZFZhbHVlKTtcbiAgICB9XG59XG4vKipcbiAqIEdlbmVyYXRvciB0aGF0IHJldHVybnMgYWxsIGFuY2VzdG9ycyBvZiBhIGdpdmVuIHZpcnR1YWwgdHJlZSBpdGVtXG4gKiBAcGFyYW0ga2V5IC0gdGhlIGtleSBvZiB0aGUgaXRlbSB0byBnZXQgdGhlIGNoaWxkcmVuIGZyb21cbiAqLyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5mdW5jdGlvbiogSGVhZGxlc3NUcmVlQW5jZXN0b3JzR2VuZXJhdG9yKGtleSwgdmlydHVhbFRyZWVJdGVtcykge1xuICAgIGxldCBwYXJlbnQgPSB2aXJ0dWFsVHJlZUl0ZW1zLmdldFBhcmVudChrZXkpO1xuICAgIHdoaWxlKHBhcmVudCAhPT0gdmlydHVhbFRyZWVJdGVtcy5yb290KXtcbiAgICAgICAgeWllbGQgcGFyZW50O1xuICAgICAgICBwYXJlbnQgPSB2aXJ0dWFsVHJlZUl0ZW1zLmdldFBhcmVudChwYXJlbnQudmFsdWUpO1xuICAgIH1cbn1cbi8qKlxuICogR2VuZXJhdG9yIHRoYXQgcmV0dXJucyBhbGwgdmlzaWJsZSBpdGVtcyBvZiBhIGdpdmVuIHZpcnR1YWwgdHJlZVxuICogQHBhcmFtIG9wZW5JdGVtcyAtIHRoZSBvcGVuIGl0ZW1zIG9mIHRoZSB0cmVlXG4gKi8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZnVuY3Rpb24qIEhlYWRsZXNzVHJlZVZpc2libGVJdGVtc0dlbmVyYXRvcihvcGVuSXRlbXMsIHZpcnR1YWxUcmVlSXRlbXMpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBIZWFkbGVzc1RyZWVTdWJ0cmVlR2VuZXJhdG9yKHZpcnR1YWxUcmVlSXRlbXMucm9vdC52YWx1ZSwgdmlydHVhbFRyZWVJdGVtcykpe1xuICAgICAgICBpZiAoaXNJdGVtVmlzaWJsZShpdGVtLCBvcGVuSXRlbXMsIHZpcnR1YWxUcmVlSXRlbXMpKSB7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXgrKztcbiAgICAgICAgICAgIHlpZWxkIGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBpc0l0ZW1WaXNpYmxlKGl0ZW0sIG9wZW5JdGVtcywgdmlydHVhbFRyZWVJdGVtcykge1xuICAgIGlmIChpdGVtLmxldmVsID09PSAxKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB3aGlsZShpdGVtLnBhcmVudFZhbHVlICYmIGl0ZW0ucGFyZW50VmFsdWUgIT09IHZpcnR1YWxUcmVlSXRlbXMucm9vdC52YWx1ZSl7XG4gICAgICAgIGlmICghb3Blbkl0ZW1zLmhhcyhpdGVtLnBhcmVudFZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHZpcnR1YWxUcmVlSXRlbXMuZ2V0KGl0ZW0ucGFyZW50VmFsdWUpO1xuICAgICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0gPSBwYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuaW1wb3J0IHsgaGVhZGxlc3NUcmVlUm9vdElkIH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlSGVhZGxlc3NUcmVlJztcbmNvbnN0IGRlZmF1bHRDb250ZXh0VmFsdWUgPSB7XG4gICAgdmFsdWU6IGhlYWRsZXNzVHJlZVJvb3RJZCxcbiAgICBzZWxlY3Rpb25SZWY6IFJlYWN0LmNyZWF0ZVJlZigpLFxuICAgIGxheW91dFJlZjogUmVhY3QuY3JlYXRlUmVmKCksXG4gICAgdHJlZUl0ZW1SZWY6IFJlYWN0LmNyZWF0ZVJlZigpLFxuICAgIHN1YnRyZWVSZWY6IFJlYWN0LmNyZWF0ZVJlZigpLFxuICAgIGFjdGlvbnNSZWY6IFJlYWN0LmNyZWF0ZVJlZigpLFxuICAgIGV4cGFuZEljb25SZWY6IFJlYWN0LmNyZWF0ZVJlZigpLFxuICAgIGlzQWN0aW9uc1Zpc2libGU6IGZhbHNlLFxuICAgIGlzQXNpZGVWaXNpYmxlOiBmYWxzZSxcbiAgICBpdGVtVHlwZTogJ2xlYWYnLFxuICAgIG9wZW46IGZhbHNlLFxuICAgIGNoZWNrZWQ6IGZhbHNlXG59O1xuZXhwb3J0IGNvbnN0IFRyZWVJdGVtQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCB7IFByb3ZpZGVyOiBUcmVlSXRlbVByb3ZpZGVyIH0gPSBUcmVlSXRlbUNvbnRleHQ7XG5leHBvcnQgY29uc3QgdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlID0gKHNlbGVjdG9yKT0+dXNlQ29udGV4dFNlbGVjdG9yKFRyZWVJdGVtQ29udGV4dCwgKGN0eCA9IGRlZmF1bHRDb250ZXh0VmFsdWUpPT5zZWxlY3RvcihjdHgpKTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVN1YnRyZWVDb250ZXh0X3Vuc3RhYmxlLCB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUgfSBmcm9tICcuLi9jb250ZXh0cy9pbmRleCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHVzZU1lcmdlZFJlZnMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IENvbGxhcHNlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LW1vdGlvbi1jb21wb25lbnRzLXByZXZpZXcnO1xuaW1wb3J0IHsgcHJlc2VuY2VNb3Rpb25TbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LW1vdGlvbic7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIGEgc3ViLWxldmVsIHRyZWUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIHRyZWVcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiB0cmVlXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVN1YnRyZWUocHJvcHMsIHJlZikge1xuICAgIGNvbnN0IHN1YnRyZWVSZWYgPSB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5zdWJ0cmVlUmVmKTtcbiAgICBjb25zdCB7IGxldmVsOiBwYXJlbnRMZXZlbCB9ID0gdXNlU3VidHJlZUNvbnRleHRfdW5zdGFibGUoKTtcbiAgICBjb25zdCBvcGVuID0gdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgub3Blbik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29udGV4dFR5cGU6ICdzdWJ0cmVlJyxcbiAgICAgICAgb3BlbixcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdicsXG4gICAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgb25jZSBSZWFjdCB2MTggc2xvdCBBUEkgaXMgbW9kaWZpZWRcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwcm9ibGVtIGF0IHRoZSBtb21lbnQgZHVlIHRvIFVua25vd25TbG90UHJvcHMgYXNzdW1wdGlvblxuICAgICAgICAgICAgLy8gdGhhdCBgY2hpbGRyZW5gIHByb3BlcnR5IGlzIGBSZWFjdE5vZGVgLCB3aGljaCBpbiB0aGlzIGNhc2UgaXMgbm90IHZhbGlkXG4gICAgICAgICAgICAvLyBhcyBQcmVzZW5jZUNvbXBvbmVudFByb3BzWydjaGlsZHJlbiddIGlzIGBSZWFjdEVsZW1lbnRgXG4gICAgICAgICAgICBjb2xsYXBzZU1vdGlvbjogQ29sbGFwc2VcbiAgICAgICAgfSxcbiAgICAgICAgbGV2ZWw6IHBhcmVudExldmVsICsgMSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICAvLyBGSVhNRTpcbiAgICAgICAgICAgIC8vIGByZWZgIGlzIHdyb25nbHkgYXNzaWduZWQgdG8gYmUgYEhUTUxFbGVtZW50YCBpbnN0ZWFkIG9mIGBIVE1MRGl2RWxlbWVudGBcbiAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byBmaXggaXQsIHdlIGFyZSBjYXN0aW5nIHJlZiB0byBpdCdzIHByb3BlciB0eXBlXG4gICAgICAgICAgICByZWY6IHVzZU1lcmdlZFJlZnMocmVmLCBzdWJ0cmVlUmVmKSxcbiAgICAgICAgICAgIHJvbGU6ICdncm91cCcsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBjb2xsYXBzZU1vdGlvbjogcHJlc2VuY2VNb3Rpb25TbG90KHByb3BzLmNvbGxhcHNlTW90aW9uLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogQ29sbGFwc2UsXG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiBvcGVuLFxuICAgICAgICAgICAgICAgIHVubW91bnRPbkV4aXQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9O1xufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIG5leHRUeXBlQWhlYWRFbGVtZW50KHRyZWVXYWxrZXIsIGtleSkge1xuICAgIGNvbnN0IGtleVRvTG93ZXJDYXNlID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdHlwZUFoZWFkRmlsdGVyID0gKGVsZW1lbnQpPT57XG4gICAgICAgIHZhciBfZWxlbWVudF90ZXh0Q29udGVudDtcbiAgICAgICAgcmV0dXJuICgoX2VsZW1lbnRfdGV4dENvbnRlbnQgPSBlbGVtZW50LnRleHRDb250ZW50KSA9PT0gbnVsbCB8fCBfZWxlbWVudF90ZXh0Q29udGVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2VsZW1lbnRfdGV4dENvbnRlbnQudHJpbSgpLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpKSA9PT0ga2V5VG9Mb3dlckNhc2UgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH07XG4gICAgbGV0IG5leHRFbGVtZW50ID0gdHJlZVdhbGtlci5uZXh0RWxlbWVudCh0eXBlQWhlYWRGaWx0ZXIpO1xuICAgIGlmICghbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgdHJlZVdhbGtlci5jdXJyZW50RWxlbWVudCA9IHRyZWVXYWxrZXIucm9vdDtcbiAgICAgICAgbmV4dEVsZW1lbnQgPSB0cmVlV2Fsa2VyLm5leHRFbGVtZW50KHR5cGVBaGVhZEZpbHRlcik7XG4gICAgfVxuICAgIHJldHVybiBuZXh0RWxlbWVudDtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IHVzZUZvY3VzZWRFbGVtZW50Q2hhbmdlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgZWxlbWVudENvbnRhaW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICogaHR0cHM6Ly93d3cudzMub3JnL1dBSS9BUklBL2FwZy9wcmFjdGljZXMva2V5Ym9hcmQtaW50ZXJmYWNlLyNrYmRfcm92aW5nX3RhYmluZGV4XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdmluZ1RhYkluZGV4KCkge1xuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHdhbGtlclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKChjdXJyZW50RWxlbWVudFJlZi5jdXJyZW50ID09PSBudWxsIHx8ICEodGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmJvZHkuY29udGFpbnMoY3VycmVudEVsZW1lbnRSZWYuY3VycmVudCkpKSAmJiB3YWxrZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgaW5pdGlhbGl6ZSh3YWxrZXJSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICB1c2VGb2N1c2VkRWxlbWVudENoYW5nZSgoZWxlbWVudCk9PntcbiAgICAgICAgaWYgKChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykpID09PSAndHJlZWl0ZW0nICYmIHdhbGtlclJlZi5jdXJyZW50ICYmIGVsZW1lbnRDb250YWlucyh3YWxrZXJSZWYuY3VycmVudC5yb290LCBlbGVtZW50KSkge1xuICAgICAgICAgICAgcm92ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGluaXRpYWxpemUgPSBSZWFjdC51c2VDYWxsYmFjaygod2Fsa2VyKT0+e1xuICAgICAgICB3YWxrZXJSZWYuY3VycmVudCA9IHdhbGtlcjtcbiAgICAgICAgd2Fsa2VyLmN1cnJlbnRFbGVtZW50ID0gd2Fsa2VyLnJvb3Q7XG4gICAgICAgIGxldCB0YWJiYWJsZUNoaWxkID0gd2Fsa2VyLmZpcnN0Q2hpbGQoKGVsZW1lbnQpPT5lbGVtZW50LnRhYkluZGV4ID09PSAwID8gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIDogTm9kZUZpbHRlci5GSUxURVJfU0tJUCk7XG4gICAgICAgIHdhbGtlci5jdXJyZW50RWxlbWVudCA9IHdhbGtlci5yb290O1xuICAgICAgICB0YWJiYWJsZUNoaWxkICE9PSBudWxsICYmIHRhYmJhYmxlQ2hpbGQgIT09IHZvaWQgMCA/IHRhYmJhYmxlQ2hpbGQgOiB0YWJiYWJsZUNoaWxkID0gd2Fsa2VyLmZpcnN0Q2hpbGQoKTtcbiAgICAgICAgaWYgKCF0YWJiYWJsZUNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGFiYmFibGVDaGlsZC50YWJJbmRleCA9IDA7XG4gICAgICAgIGN1cnJlbnRFbGVtZW50UmVmLmN1cnJlbnQgPSB0YWJiYWJsZUNoaWxkO1xuICAgICAgICBsZXQgbmV4dEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB3aGlsZSgobmV4dEVsZW1lbnQgPSB3YWxrZXIubmV4dEVsZW1lbnQoKSkgJiYgbmV4dEVsZW1lbnQgIT09IHRhYmJhYmxlQ2hpbGQpe1xuICAgICAgICAgICAgbmV4dEVsZW1lbnQudGFiSW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICBjb25zdCByb3ZlID0gUmVhY3QudXNlQ2FsbGJhY2soKG5leHRFbGVtZW50LCBmb2N1c09wdGlvbnMpPT57XG4gICAgICAgIGlmICghY3VycmVudEVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRFbGVtZW50UmVmLmN1cnJlbnQudGFiSW5kZXggPSAtMTtcbiAgICAgICAgbmV4dEVsZW1lbnQudGFiSW5kZXggPSAwO1xuICAgICAgICBuZXh0RWxlbWVudC5mb2N1cyhmb2N1c09wdGlvbnMpO1xuICAgICAgICBjdXJyZW50RWxlbWVudFJlZi5jdXJyZW50ID0gbmV4dEVsZW1lbnQ7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHJvdmUsXG4gICAgICAgIGluaXRpYWxpemVcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhUTUxFbGVtZW50V2Fsa2VyKHJvb3QsIHRhcmdldERvY3VtZW50LCBmaWx0ZXIgPSAoKT0+Tm9kZUZpbHRlci5GSUxURVJfQUNDRVBUKSB7XG4gICAgbGV0IHRlbXBvcmFyeUZpbHRlcjtcbiAgICBjb25zdCB0cmVlV2Fsa2VyID0gdGFyZ2V0RG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihyb290LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwge1xuICAgICAgICBhY2NlcHROb2RlIChub2RlKSB7XG4gICAgICAgICAgICBpZiAoIWlzSFRNTEVsZW1lbnQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfUkVKRUNUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsdGVyUmVzdWx0ID0gZmlsdGVyKG5vZGUpO1xuICAgICAgICAgICAgdmFyIF90ZW1wb3JhcnlGaWx0ZXI7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyUmVzdWx0ID09PSBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgPyAoX3RlbXBvcmFyeUZpbHRlciA9IHRlbXBvcmFyeUZpbHRlciA9PT0gbnVsbCB8fCB0ZW1wb3JhcnlGaWx0ZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRlbXBvcmFyeUZpbHRlcihub2RlKSkgIT09IG51bGwgJiYgX3RlbXBvcmFyeUZpbHRlciAhPT0gdm9pZCAwID8gX3RlbXBvcmFyeUZpbHRlciA6IGZpbHRlclJlc3VsdCA6IGZpbHRlclJlc3VsdDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldCByb290ICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cmVlV2Fsa2VyLnJvb3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBjdXJyZW50RWxlbWVudCAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJlZVdhbGtlci5jdXJyZW50Tm9kZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0IGN1cnJlbnRFbGVtZW50IChlbGVtZW50KXtcbiAgICAgICAgICAgIHRyZWVXYWxrZXIuY3VycmVudE5vZGUgPSBlbGVtZW50O1xuICAgICAgICB9LFxuICAgICAgICBmaXJzdENoaWxkOiAobG9jYWxGaWx0ZXIpPT57XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSBsb2NhbEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyZWVXYWxrZXIuZmlyc3RDaGlsZCgpO1xuICAgICAgICAgICAgdGVtcG9yYXJ5RmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSxcbiAgICAgICAgbGFzdENoaWxkOiAobG9jYWxGaWx0ZXIpPT57XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSBsb2NhbEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyZWVXYWxrZXIubGFzdENoaWxkKCk7XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LFxuICAgICAgICBuZXh0RWxlbWVudDogKGxvY2FsRmlsdGVyKT0+e1xuICAgICAgICAgICAgdGVtcG9yYXJ5RmlsdGVyID0gbG9jYWxGaWx0ZXI7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0cmVlV2Fsa2VyLm5leHROb2RlKCk7XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LFxuICAgICAgICBuZXh0U2libGluZzogKGxvY2FsRmlsdGVyKT0+e1xuICAgICAgICAgICAgdGVtcG9yYXJ5RmlsdGVyID0gbG9jYWxGaWx0ZXI7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0cmVlV2Fsa2VyLm5leHRTaWJsaW5nKCk7XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LFxuICAgICAgICBwYXJlbnRFbGVtZW50OiAobG9jYWxGaWx0ZXIpPT57XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSBsb2NhbEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyZWVXYWxrZXIucGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgdGVtcG9yYXJ5RmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSxcbiAgICAgICAgcHJldmlvdXNFbGVtZW50OiAobG9jYWxGaWx0ZXIpPT57XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSBsb2NhbEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyZWVXYWxrZXIucHJldmlvdXNOb2RlKCk7XG4gICAgICAgICAgICB0ZW1wb3JhcnlGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aW91c1NpYmxpbmc6IChsb2NhbEZpbHRlcik9PntcbiAgICAgICAgICAgIHRlbXBvcmFyeUZpbHRlciA9IGxvY2FsRmlsdGVyO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdHJlZVdhbGtlci5wcmV2aW91c1NpYmxpbmcoKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeUZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiZXhwb3J0IGNvbnN0IHRyZWVJdGVtRmlsdGVyID0gKGVsZW1lbnQpPT57XG4gICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgPT09ICd0cmVlaXRlbScgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgY3JlYXRlSFRNTEVsZW1lbnRXYWxrZXIgfSBmcm9tICcuLi91dGlscy9jcmVhdGVIVE1MRWxlbWVudFdhbGtlcic7XG5pbXBvcnQgeyB0cmVlSXRlbUZpbHRlciB9IGZyb20gJy4uL3V0aWxzL3RyZWVJdGVtRmlsdGVyJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VIVE1MRWxlbWVudFdhbGtlclJlZigpIHtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnRfdW5zdGFibGUoKTtcbiAgICBjb25zdCB3YWxrZXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgICBjb25zdCByb290UmVmID0gUmVhY3QudXNlQ2FsbGJhY2soKHJvb3QpPT57XG4gICAgICAgIHdhbGtlclJlZi5jdXJyZW50ID0gdGFyZ2V0RG9jdW1lbnQgJiYgcm9vdCA/IGNyZWF0ZUhUTUxFbGVtZW50V2Fsa2VyKHJvb3QsIHRhcmdldERvY3VtZW50LCB0cmVlSXRlbUZpbHRlcikgOiB1bmRlZmluZWQ7XG4gICAgfSwgW1xuICAgICAgICB0YXJnZXREb2N1bWVudFxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHdhbGtlclJlZixcbiAgICAgICAgcm9vdFJlZlxuICAgIH07XG59XG4iLCJpbXBvcnQgeyBuZXh0VHlwZUFoZWFkRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL25leHRUeXBlQWhlYWRFbGVtZW50JztcbmltcG9ydCB7IHRyZWVEYXRhVHlwZXMgfSBmcm9tICcuLi91dGlscy90b2tlbnMnO1xuaW1wb3J0IHsgdXNlUm92aW5nVGFiSW5kZXggfSBmcm9tICcuL3VzZVJvdmluZ1RhYkluZGV4ZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSFRNTEVsZW1lbnRXYWxrZXJSZWYgfSBmcm9tICcuL3VzZUhUTUxFbGVtZW50V2Fsa2VyUmVmJztcbmltcG9ydCB7IHVzZU1lcmdlZFJlZnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVRyZWVOYXZpZ2F0aW9uKCkge1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgeyByb3ZlLCBpbml0aWFsaXplOiBpbml0aWFsaXplUm92aW5nVGFiSW5kZXggfSA9IHVzZVJvdmluZ1RhYkluZGV4KCk7XG4gICAgY29uc3QgeyB3YWxrZXJSZWYsIHJvb3RSZWY6IHdhbGtlclJvb3RSZWYgfSA9IHVzZUhUTUxFbGVtZW50V2Fsa2VyUmVmKCk7XG4gICAgY29uc3Qgcm9vdFJlZkNhbGxiYWNrID0gUmVhY3QudXNlQ2FsbGJhY2soKHJvb3QpPT57XG4gICAgICAgIGlmIChyb290ICYmIHdhbGtlclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBpbml0aWFsaXplUm92aW5nVGFiSW5kZXgod2Fsa2VyUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICB3YWxrZXJSZWYsXG4gICAgICAgIGluaXRpYWxpemVSb3ZpbmdUYWJJbmRleFxuICAgIF0pO1xuICAgIGNvbnN0IGdldE5leHRFbGVtZW50ID0gKGRhdGEpPT57XG4gICAgICAgIGlmICghd2Fsa2VyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaChkYXRhLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkNsaWNrOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLnRhcmdldDtcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5UeXBlQWhlYWQ6XG4gICAgICAgICAgICAgICAgd2Fsa2VyUmVmLmN1cnJlbnQuY3VycmVudEVsZW1lbnQgPSBkYXRhLnRhcmdldDtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dFR5cGVBaGVhZEVsZW1lbnQod2Fsa2VyUmVmLmN1cnJlbnQsIGRhdGEuZXZlbnQua2V5KTtcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5BcnJvd0xlZnQ6XG4gICAgICAgICAgICAgICAgd2Fsa2VyUmVmLmN1cnJlbnQuY3VycmVudEVsZW1lbnQgPSBkYXRhLnRhcmdldDtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Fsa2VyUmVmLmN1cnJlbnQucGFyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkFycm93UmlnaHQ6XG4gICAgICAgICAgICAgICAgd2Fsa2VyUmVmLmN1cnJlbnQuY3VycmVudEVsZW1lbnQgPSBkYXRhLnRhcmdldDtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Fsa2VyUmVmLmN1cnJlbnQuZmlyc3RDaGlsZCgpO1xuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkVuZDpcbiAgICAgICAgICAgICAgICB3YWxrZXJSZWYuY3VycmVudC5jdXJyZW50RWxlbWVudCA9IHdhbGtlclJlZi5jdXJyZW50LnJvb3Q7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RDaGlsZFJlY3Vyc2l2ZSh3YWxrZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBjYXNlIHRyZWVEYXRhVHlwZXMuSG9tZTpcbiAgICAgICAgICAgICAgICB3YWxrZXJSZWYuY3VycmVudC5jdXJyZW50RWxlbWVudCA9IHdhbGtlclJlZi5jdXJyZW50LnJvb3Q7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdhbGtlclJlZi5jdXJyZW50LmZpcnN0Q2hpbGQoKTtcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5BcnJvd0Rvd246XG4gICAgICAgICAgICAgICAgd2Fsa2VyUmVmLmN1cnJlbnQuY3VycmVudEVsZW1lbnQgPSBkYXRhLnRhcmdldDtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Fsa2VyUmVmLmN1cnJlbnQubmV4dEVsZW1lbnQoKTtcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5BcnJvd1VwOlxuICAgICAgICAgICAgICAgIHdhbGtlclJlZi5jdXJyZW50LmN1cnJlbnRFbGVtZW50ID0gZGF0YS50YXJnZXQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdhbGtlclJlZi5jdXJyZW50LnByZXZpb3VzRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBuYXZpZ2F0ZShkYXRhLCBmb2N1c09wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbmV4dEVsZW1lbnQgPSBnZXROZXh0RWxlbWVudChkYXRhKTtcbiAgICAgICAgaWYgKG5leHRFbGVtZW50KSB7XG4gICAgICAgICAgICByb3ZlKG5leHRFbGVtZW50LCBmb2N1c09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG5hdmlnYXRlLFxuICAgICAgICB0cmVlUmVmOiB1c2VNZXJnZWRSZWZzKHdhbGtlclJvb3RSZWYsIHJvb3RSZWZDYWxsYmFjaylcbiAgICB9O1xufVxuZnVuY3Rpb24gbGFzdENoaWxkUmVjdXJzaXZlKHdhbGtlcikge1xuICAgIGxldCBsYXN0RWxlbWVudCA9IG51bGw7XG4gICAgbGV0IG5leHRFbGVtZW50ID0gbnVsbDtcbiAgICB3aGlsZShuZXh0RWxlbWVudCA9IHdhbGtlci5sYXN0Q2hpbGQoKSl7XG4gICAgICAgIGxhc3RFbGVtZW50ID0gbmV4dEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBsYXN0RWxlbWVudDtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIHVzZU1lcmdlZFJlZnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IGNyZWF0ZU5leHRPcGVuSXRlbXMsIHVzZUNvbnRyb2xsYWJsZU9wZW5JdGVtcyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUNvbnRyb2xsYWJsZU9wZW5JdGVtcyc7XG5pbXBvcnQgeyBjcmVhdGVOZXh0TmVzdGVkQ2hlY2tlZEl0ZW1zLCB1c2VOZXN0ZWRDaGVja2VkSXRlbXMgfSBmcm9tICcuL3VzZU5lc3RlZENvbnRyb2xsYWJsZUNoZWNrZWRJdGVtcyc7XG5pbXBvcnQgeyBTdWJ0cmVlQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHRzL3N1YnRyZWVDb250ZXh0JztcbmltcG9ydCB7IHVzZVJvb3RUcmVlIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlUm9vdFRyZWUnO1xuaW1wb3J0IHsgdXNlU3VidHJlZSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVN1YnRyZWUnO1xuaW1wb3J0IHsgdXNlVHJlZU5hdmlnYXRpb24gfSBmcm9tICcuLi8uLi9ob29rcy91c2VUcmVlTmF2aWdhdGlvbic7XG5pbXBvcnQgeyB1c2VUcmVlQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uLy4uL2NvbnRleHRzL3RyZWVDb250ZXh0JztcbmltcG9ydCB7IEltbXV0YWJsZVNldCB9IGZyb20gJy4uLy4uL3V0aWxzL0ltbXV0YWJsZVNldCc7XG5pbXBvcnQgeyBJbW11dGFibGVNYXAgfSBmcm9tICcuLi8uLi91dGlscy9JbW11dGFibGVNYXAnO1xuZXhwb3J0IGNvbnN0IHVzZVRyZWVfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IGlzUm9vdCA9IFJlYWN0LnVzZUNvbnRleHQoU3VidHJlZUNvbnRleHQpID09PSB1bmRlZmluZWQ7XG4gICAgLy8gYXMgbGV2ZWwgaXMgc3RhdGljLCB0aGlzIGRvZXNuJ3QgYnJlYWsgcnVsZSBvZiBob29rc1xuICAgIC8vIGFuZCBpZiB0aGlzIGJlY29tZXMgYW4gaXNzdWUgbGF0ZXIgb24sIHRoaXMgY2FuIGJlIGVhc2lseSBjb252ZXJ0ZWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICByZXR1cm4gaXNSb290ID8gdXNlTmVzdGVkUm9vdFRyZWUocHJvcHMsIHJlZikgOiB1c2VOZXN0ZWRTdWJ0cmVlKHByb3BzLCByZWYpO1xufTtcbmZ1bmN0aW9uIHVzZU5lc3RlZFJvb3RUcmVlKHByb3BzLCByZWYpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IFtvcGVuSXRlbXMsIHNldE9wZW5JdGVtc10gPSB1c2VDb250cm9sbGFibGVPcGVuSXRlbXMocHJvcHMpO1xuICAgIGNvbnN0IGNoZWNrZWRJdGVtcyA9IHVzZU5lc3RlZENoZWNrZWRJdGVtcyhwcm9wcyk7XG4gICAgY29uc3QgbmF2aWdhdGlvbiA9IHVzZVRyZWVOYXZpZ2F0aW9uKCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24odXNlUm9vdFRyZWUoe1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgb3Blbkl0ZW1zLFxuICAgICAgICBjaGVja2VkSXRlbXMsXG4gICAgICAgIG9uT3BlbkNoYW5nZTogdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQsIGRhdGEpPT57XG4gICAgICAgICAgICB2YXIgX3Byb3BzX29uT3BlbkNoYW5nZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcGVuSXRlbXMgPSBjcmVhdGVOZXh0T3Blbkl0ZW1zKGRhdGEsIG9wZW5JdGVtcyk7XG4gICAgICAgICAgICAoX3Byb3BzX29uT3BlbkNoYW5nZSA9IHByb3BzLm9uT3BlbkNoYW5nZSkgPT09IG51bGwgfHwgX3Byb3BzX29uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX29uT3BlbkNoYW5nZS5jYWxsKHByb3BzLCBldmVudCwge1xuICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgb3Blbkl0ZW1zOiBJbW11dGFibGVTZXQuZGFuZ2Vyb3VzbHlHZXRJbnRlcm5hbFNldChuZXh0T3Blbkl0ZW1zKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRPcGVuSXRlbXMobmV4dE9wZW5JdGVtcyk7XG4gICAgICAgIH0pLFxuICAgICAgICBvbk5hdmlnYXRpb246IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50LCBkYXRhKT0+e1xuICAgICAgICAgICAgdmFyIF9wcm9wc19vbk5hdmlnYXRpb247XG4gICAgICAgICAgICAoX3Byb3BzX29uTmF2aWdhdGlvbiA9IHByb3BzLm9uTmF2aWdhdGlvbikgPT09IG51bGwgfHwgX3Byb3BzX29uTmF2aWdhdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX29uTmF2aWdhdGlvbi5jYWxsKHByb3BzLCBldmVudCwgZGF0YSk7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvbi5uYXZpZ2F0ZShkYXRhLCB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZlbnRTY3JvbGw6IGRhdGEuaXNTY3JvbGxQcmV2ZW50ZWQoKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgb25DaGVja2VkQ2hhbmdlOiB1c2VFdmVudENhbGxiYWNrKChldmVudCwgZGF0YSk9PntcbiAgICAgICAgICAgIHZhciBfcHJvcHNfb25DaGVja2VkQ2hhbmdlO1xuICAgICAgICAgICAgY29uc3QgbmV4dENoZWNrZWRJdGVtcyA9IGNyZWF0ZU5leHROZXN0ZWRDaGVja2VkSXRlbXMoZGF0YSwgY2hlY2tlZEl0ZW1zKTtcbiAgICAgICAgICAgIChfcHJvcHNfb25DaGVja2VkQ2hhbmdlID0gcHJvcHMub25DaGVja2VkQ2hhbmdlKSA9PT0gbnVsbCB8fCBfcHJvcHNfb25DaGVja2VkQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfb25DaGVja2VkQ2hhbmdlLmNhbGwocHJvcHMsIGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgICBjaGVja2VkSXRlbXM6IEltbXV0YWJsZU1hcC5kYW5nZXJvdXNseUdldEludGVybmFsTWFwKG5leHRDaGVja2VkSXRlbXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9LCB1c2VNZXJnZWRSZWZzKHJlZiwgbmF2aWdhdGlvbi50cmVlUmVmKSksIHtcbiAgICAgICAgdHJlZVR5cGU6ICduZXN0ZWQnXG4gICAgfSk7XG59XG5mdW5jdGlvbiB1c2VOZXN0ZWRTdWJ0cmVlKHByb3BzLCByZWYpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyB0aGlzIGRvZXNuJ3QgYnJlYWsgcnVsZSBvZiBob29rcywgYXMgZW52aXJvbm1lbnQgaXMgYSBzdGF0aWMgdmFsdWVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgIGNvbnN0IHRyZWVUeXBlID0gdXNlVHJlZUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC50cmVlVHlwZSk7XG4gICAgICAgIGlmICh0cmVlVHlwZSA9PT0gJ2ZsYXQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEBmbHVlbnR1aS9yZWFjdC10cmVlIFt1c2VUcmVlXTpcblN1YnRyZWVzIGFyZSBub3QgYWxsb3dlZCBpbiBhIEZsYXRUcmVlIVxuWW91IGNhbm5vdCB1c2UgYSA8VHJlZT4gY29tcG9uZW50IGluc2lkZSBvZiBhIDxGbGF0VHJlZT4gY29tcG9uZW50IWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1c2VTdWJ0cmVlKHByb3BzLCByZWYpO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRyZWVDb250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKSB7XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBpZiAoc3RhdGUuY29udGV4dFR5cGUgPT09ICdyb290Jykge1xuICAgICAgICBjb25zdCB7IG9wZW5JdGVtcywgbGV2ZWwsIGNvbnRleHRUeXBlLCB0cmVlVHlwZSwgY2hlY2tlZEl0ZW1zLCBzZWxlY3Rpb25Nb2RlLCBhcHBlYXJhbmNlLCBzaXplLCByZXF1ZXN0VHJlZVJlc3BvbnNlIH0gPSBzdGF0ZTtcbiAgICAgICAgLyoqXG4gICAgICogVGhpcyBjb250ZXh0IGlzIGNyZWF0ZWQgd2l0aCBcIkBmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yXCIsXG4gICAgICogdGhlcmUgaXMgbm8gc2Vuc2UgdG8gbWVtb2l6ZSBpdFxuICAgICAqLyBjb25zdCB0cmVlID0ge1xuICAgICAgICAgICAgdHJlZVR5cGUsXG4gICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgb3Blbkl0ZW1zLFxuICAgICAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgICAgIGNoZWNrZWRJdGVtcyxcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGUsXG4gICAgICAgICAgICBjb250ZXh0VHlwZSxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgcmVxdWVzdFRyZWVSZXNwb25zZVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJlZVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBjb250ZXh0VHlwZSBpcyBzdGF0aWNhbGx5IGRldGVybWluZWQgYnkgdGhlIGNvbnRleHRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgIHRyZWU6IFJlYWN0LnVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICAgICAgbGV2ZWw6IHN0YXRlLmxldmVsLFxuICAgICAgICAgICAgICAgIGNvbnRleHRUeXBlOiAnc3VidHJlZSdcbiAgICAgICAgICAgIH0pLCBbXG4gICAgICAgICAgICBzdGF0ZS5sZXZlbFxuICAgICAgICBdKVxuICAgIH07XG59XG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCB0cmVlQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UcmVlJ1xufTtcbmNvbnN0IHVzZUJhc2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInJudjJlejNcIiwgbnVsbCwgW1wiLnJudjJlejN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtyb3ctZ2FwOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFhYUyk7fVwiXSk7XG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBzdWJ0cmVlOiB7XG4gICAgejh0bnV0OiBcImZjbHdnbGNcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mY2x3Z2xje3BhZGRpbmctdG9wOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFhYUyk7fVwiXVxufSk7XG5leHBvcnQgY29uc3QgdXNlVHJlZVN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBiYXNlU3R5bGVzID0gdXNlQmFzZVN0eWxlcygpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3QgaXNTdWJUcmVlID0gc3RhdGUubGV2ZWwgPiAxO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0cmVlQ2xhc3NOYW1lcy5yb290LCBiYXNlU3R5bGVzLCBpc1N1YlRyZWUgJiYgc3R5bGVzLnN1YnRyZWUsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVRyZWVTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFN1YnRyZWVDb250ZXh0LCBUcmVlQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHRzJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gY29uc3Qgcm9vdFN1YnRyZWVDb250ZXh0VmFsdWUgPSB7XG4gICAgbGV2ZWw6IDEsXG4gICAgY29udGV4dFR5cGU6ICdzdWJ0cmVlJ1xufTtcbmV4cG9ydCBjb25zdCBUcmVlUHJvdmlkZXIgPSAocHJvcHMpPT57XG4gICAgaWYgKHByb3BzLnZhbHVlLmNvbnRleHRUeXBlID09PSAnc3VidHJlZScpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChTdWJ0cmVlQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICAgICAgdmFsdWU6IHByb3BzLnZhbHVlXG4gICAgICAgIH0sIHByb3BzLmNoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogcHJvcHMudmFsdWVcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3VidHJlZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHJvb3RTdWJ0cmVlQ29udGV4dFZhbHVlXG4gICAgfSwgcHJvcHMuY2hpbGRyZW4pKTtcbn07XG5UcmVlUHJvdmlkZXIuZGlzcGxheU5hbWUgPSAnVHJlZVByb3ZpZGVyJztcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgVHJlZVByb3ZpZGVyIH0gZnJvbSAnLi4vVHJlZVByb3ZpZGVyJztcbmV4cG9ydCBjb25zdCByZW5kZXJUcmVlX3Vuc3RhYmxlID0gKHN0YXRlLCBjb250ZXh0VmFsdWVzKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFRyZWVQcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy50cmVlLFxuICAgICAgICBjaGlsZHJlbjogc3RhdGUuY29sbGFwc2VNb3Rpb24gPyAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuY29sbGFwc2VNb3Rpb24sIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pXG4gICAgICAgIH0pIDogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyZWVfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRyZWUnO1xuaW1wb3J0IHsgdXNlVHJlZUNvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRyZWVDb250ZXh0VmFsdWVzJztcbmltcG9ydCB7IHVzZVRyZWVTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRyZWVTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHJlbmRlclRyZWVfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRyZWUnO1xuLyoqXG4gKiBUaGUgYFRyZWVgIGNvbXBvbmVudCByZW5kZXJzIG5lc3RlZCBpdGVtcyBpbiBhIGhpZXJhcmNoaWNhbCBzdHJ1Y3R1cmUuXG4gKiBVc2UgaXQgd2l0aCBgVHJlZUl0ZW1gIGNvbXBvbmVudCBhbmQgbGF5b3V0cyBjb21wb25lbnRzIGBUcmVlSXRlbUxheW91dGAgb3IgYFRyZWVJdGVtUGVyc29uYUxheW91dGAuXG4gKi8gZXhwb3J0IGNvbnN0IFRyZWUgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUcmVlX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIGNvbnN0IGNvbnRleHRWYWx1ZXMgPSB1c2VUcmVlQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlVHJlZVN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRyZWVfdW5zdGFibGUoc3RhdGUsIGNvbnRleHRWYWx1ZXMpO1xufSk7XG5UcmVlLmRpc3BsYXlOYW1lID0gJ1RyZWUnO1xuIiwiZXhwb3J0IGNvbnN0IGRhdGFUcmVlSXRlbVZhbHVlQXR0ck5hbWUgPSAnZGF0YS1mdWktdHJlZS1pdGVtLXZhbHVlJztcbmV4cG9ydCBjb25zdCBnZXRUcmVlSXRlbVZhbHVlRnJvbUVsZW1lbnQgPSAoZWxlbWVudCk9PntcbiAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoZGF0YVRyZWVJdGVtVmFsdWVBdHRyTmFtZSk7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgdXNlSWQsIHVzZUV2ZW50Q2FsbGJhY2ssIHNsb3QsIGVsZW1lbnRDb250YWlucywgdXNlTWVyZ2VkUmVmcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgU3BhY2UgfSBmcm9tICdAZmx1ZW50dWkva2V5Ym9hcmQta2V5cyc7XG5pbXBvcnQgeyB0cmVlRGF0YVR5cGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdG9rZW5zJztcbmltcG9ydCB7IHVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlLCB1c2VTdWJ0cmVlQ29udGV4dF91bnN0YWJsZSwgdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlLCBUcmVlQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHRzJztcbmltcG9ydCB7IGRhdGFUcmVlSXRlbVZhbHVlQXR0ck5hbWUgfSBmcm9tICcuLi8uLi91dGlscy9nZXRUcmVlSXRlbVZhbHVlRnJvbUVsZW1lbnQnO1xuaW1wb3J0IHsgdXNlSGFzUGFyZW50Q29udGV4dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yJztcbmltcG9ydCB7IHRyZWVDbGFzc05hbWVzIH0gZnJvbSAnLi4vLi4vVHJlZSc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIFRyZWVJdGVtLlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZVRyZWVJdGVtU3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJUcmVlSXRlbV91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgVHJlZUl0ZW1cbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUcmVlSXRlbVxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VUcmVlSXRlbV91bnN0YWJsZShwcm9wcywgcmVmKSB7XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCB0cmVlVHlwZSA9IHVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgudHJlZVR5cGUpO1xuICAgIGlmICh0cmVlVHlwZSA9PT0gJ2ZsYXQnKSB7XG4gICAgICAgIHdhcm5JZk5vUHJvcGVyUHJvcHNGbGF0VHJlZUl0ZW0ocHJvcHMpO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0VHJlZVJlc3BvbnNlID0gdXNlVHJlZUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5yZXF1ZXN0VHJlZVJlc3BvbnNlKTtcbiAgICBjb25zdCB7IGxldmVsOiBjb250ZXh0TGV2ZWwgfSA9IHVzZVN1YnRyZWVDb250ZXh0X3Vuc3RhYmxlKCk7XG4gICAgY29uc3QgcGFyZW50VmFsdWUgPSB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PntcbiAgICAgICAgdmFyIF9wcm9wc19wYXJlbnRWYWx1ZTtcbiAgICAgICAgcmV0dXJuIChfcHJvcHNfcGFyZW50VmFsdWUgPSBwcm9wcy5wYXJlbnRWYWx1ZSkgIT09IG51bGwgJiYgX3Byb3BzX3BhcmVudFZhbHVlICE9PSB2b2lkIDAgPyBfcHJvcHNfcGFyZW50VmFsdWUgOiBjdHgudmFsdWU7XG4gICAgfSk7XG4gICAgLy8gbm90ZSwgaWYgdGhlIHZhbHVlIGlzIG5vdCBleHRlcm5hbGx5IHByb3ZpZGVkLFxuICAgIC8vIHRoZW4gc2VsZWN0aW9uIGFuZCBleHBhbnNpb24gd2lsbCBub3Qgd29yayBwcm9wZXJseVxuICAgIGNvbnN0IGludGVybmFsVmFsdWUgPSB1c2VJZCgnZnVpVHJlZUl0ZW1WYWx1ZS0nKTtcbiAgICB2YXIgX3Byb3BzX3ZhbHVlO1xuICAgIGNvbnN0IHZhbHVlID0gKF9wcm9wc192YWx1ZSA9IHByb3BzLnZhbHVlKSAhPT0gbnVsbCAmJiBfcHJvcHNfdmFsdWUgIT09IHZvaWQgMCA/IF9wcm9wc192YWx1ZSA6IGludGVybmFsVmFsdWU7XG4gICAgY29uc3QgeyBvbkNsaWNrLCBvbktleURvd24sIG9uQ2hhbmdlLCBhcyA9ICdkaXYnLCBpdGVtVHlwZSA9ICdsZWFmJywgJ2FyaWEtbGV2ZWwnOiBsZXZlbCA9IGNvbnRleHRMZXZlbCwgJ2FyaWEtc2VsZWN0ZWQnOiBhcmlhU2VsZWN0ZWQsICdhcmlhLWV4cGFuZGVkJzogYXJpYUV4cGFuZGVkLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgICBjb25zdCBhY3Rpb25zUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGV4cGFuZEljb25SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgbGF5b3V0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1YnRyZWVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYWNjZXB0YWJsZSBzaW5jZSB0aGUgTk9ERV9FTlYgd2lsbCBub3QgY2hhbmdlIGR1cmluZyBydW50aW1lXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCBoYXNUcmVlQ29udGV4dCA9IHVzZUhhc1BhcmVudENvbnRleHQoVHJlZUNvbnRleHQpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICB2YXIgX3RyZWVJdGVtUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoaGFzVHJlZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKF90cmVlSXRlbVJlZl9jdXJyZW50ID0gdHJlZUl0ZW1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3RyZWVJdGVtUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmVlSXRlbVJlZl9jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3RyZWVDbGFzc05hbWVzLnJvb3R9YCkpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEBmbHVlbnR1aS9yZWFjdC10cmVlIFt1c2VUcmVlSXRlbV06XG48VHJlZUl0ZW0+IHNob3VsZCBiZSBkZWNsYXJlZCBpbnNpZGUgYSA8VHJlZT4gY29tcG9uZW50LmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXG4gICAgICAgICAgICBoYXNUcmVlQ29udGV4dFxuICAgICAgICBdKTtcbiAgICB9XG4gICAgY29uc3Qgb3BlbiA9IHVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT57XG4gICAgICAgIHZhciBfcHJvcHNfb3BlbjtcbiAgICAgICAgcmV0dXJuIChfcHJvcHNfb3BlbiA9IHByb3BzLm9wZW4pICE9PSBudWxsICYmIF9wcm9wc19vcGVuICE9PSB2b2lkIDAgPyBfcHJvcHNfb3BlbiA6IGN0eC5vcGVuSXRlbXMuaGFzKHZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXROZXh0T3BlbiA9ICgpPT5pdGVtVHlwZSA9PT0gJ2JyYW5jaCcgPyAhb3BlbiA6IG9wZW47XG4gICAgY29uc3Qgc2VsZWN0aW9uTW9kZSA9IHVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHguc2VsZWN0aW9uTW9kZSk7XG4gICAgY29uc3QgY2hlY2tlZCA9IHVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlKChjdHgpPT57XG4gICAgICAgIHZhciBfY3R4X2NoZWNrZWRJdGVtc19nZXQ7XG4gICAgICAgIHJldHVybiAoX2N0eF9jaGVja2VkSXRlbXNfZ2V0ID0gY3R4LmNoZWNrZWRJdGVtcy5nZXQodmFsdWUpKSAhPT0gbnVsbCAmJiBfY3R4X2NoZWNrZWRJdGVtc19nZXQgIT09IHZvaWQgMCA/IF9jdHhfY2hlY2tlZEl0ZW1zX2dldCA6IGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpPT57XG4gICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljayhldmVudCk7XG4gICAgICAgIGlmIChldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtVHlwZSA9PT0gJ2xlYWYnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNFdmVudEZyb21BY3Rpb25zID0gYWN0aW9uc1JlZi5jdXJyZW50ICYmIGVsZW1lbnRDb250YWlucyhhY3Rpb25zUmVmLmN1cnJlbnQsIGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmIChpc0V2ZW50RnJvbUFjdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0V2ZW50RnJvbVN1YnRyZWUgPSBzdWJ0cmVlUmVmLmN1cnJlbnQgJiYgZWxlbWVudENvbnRhaW5zKHN1YnRyZWVSZWYuY3VycmVudCwgZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKGlzRXZlbnRGcm9tU3VidHJlZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzRXZlbnRGcm9tU2VsZWN0aW9uID0gc2VsZWN0aW9uUmVmLmN1cnJlbnQgJiYgZWxlbWVudENvbnRhaW5zKHNlbGVjdGlvblJlZi5jdXJyZW50LCBldmVudC50YXJnZXQpO1xuICAgICAgICBpZiAoaXNFdmVudEZyb21TZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0V2ZW50RnJvbUV4cGFuZEljb24gPSBleHBhbmRJY29uUmVmLmN1cnJlbnQgJiYgZWxlbWVudENvbnRhaW5zKGV4cGFuZEljb25SZWYuY3VycmVudCwgZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgUmVhY3RET00udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoKCk9PntcbiAgICAgICAgICAgIHZhciBfcHJvcHNfb25PcGVuQ2hhbmdlO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBvcGVuOiBnZXROZXh0T3BlbigpLFxuICAgICAgICAgICAgICAgIHRhcmdldDogZXZlbnQuY3VycmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICB0eXBlOiBpc0V2ZW50RnJvbUV4cGFuZEljb24gPyB0cmVlRGF0YVR5cGVzLkV4cGFuZEljb25DbGljayA6IHRyZWVEYXRhVHlwZXMuQ2xpY2tcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAoX3Byb3BzX29uT3BlbkNoYW5nZSA9IHByb3BzLm9uT3BlbkNoYW5nZSkgPT09IG51bGwgfHwgX3Byb3BzX29uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX29uT3BlbkNoYW5nZS5jYWxsKHByb3BzLCBldmVudCwgZGF0YSk7XG4gICAgICAgICAgICByZXF1ZXN0VHJlZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiAnb3BlbidcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVxdWVzdFRyZWVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZTogJ25hdmlnYXRlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiB0cmVlRGF0YVR5cGVzLkNsaWNrXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBvbktleURvd24gPT09IG51bGwgfHwgb25LZXlEb3duID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbktleURvd24oZXZlbnQpO1xuICAgICAgICAvLyBJZ25vcmUga2V5Ym9hcmQgZXZlbnRzIHRoYXQgZG8gbm90IG9yaWdpbmF0ZSBmcm9tIHRoZSBjdXJyZW50IHRyZWUgaXRlbS5cbiAgICAgICAgaWYgKGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpIHx8IGV2ZW50LmN1cnJlbnRUYXJnZXQgIT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaChldmVudC5rZXkpe1xuICAgICAgICAgICAgY2FzZSBTcGFjZTpcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uTW9kZSAhPT0gJ25vbmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfc2VsZWN0aW9uUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIChfc2VsZWN0aW9uUmVmX2N1cnJlbnQgPSBzZWxlY3Rpb25SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3NlbGVjdGlvblJlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc2VsZWN0aW9uUmVmX2N1cnJlbnQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudHMgdGhlIHBhZ2UgZnJvbSBzY3JvbGxpbmcgZG93biB3aGVuIHRoZSBzcGFjZWJhciBpcyBwcmVzc2VkXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5FbnRlcjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5jdXJyZW50VGFyZ2V0LmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkVuZDpcbiAgICAgICAgICAgIGNhc2UgdHJlZURhdGFUeXBlcy5Ib21lOlxuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkFycm93VXA6XG4gICAgICAgICAgICBjYXNlIHRyZWVEYXRhVHlwZXMuQXJyb3dEb3duOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0VHJlZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgaXRlbVR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBldmVudC5rZXksXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogZXZlbnQuY3VycmVudFRhcmdldFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSB0cmVlRGF0YVR5cGVzLkFycm93TGVmdDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFycm93IGxlZnQgd2l0aCBhbHQga2V5IGlzIHJlc2VydmVkIGZvciBoaXN0b3J5IG5hdmlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBuYXZpZ2F0ZSB0byBwYXJlbnQgaWYgdGhlIGl0ZW0gaXMgb24gdGhlIHRvcCBsZXZlbFxuICAgICAgICAgICAgICAgICAgICBpZiAobGV2ZWwgPT09IDEgJiYgIW9wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGdldE5leHRPcGVuKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBldmVudC5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGV2ZW50LmN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfcHJvcHNfb25PcGVuQ2hhbmdlO1xuICAgICAgICAgICAgICAgICAgICAgICAgKF9wcm9wc19vbk9wZW5DaGFuZ2UgPSBwcm9wcy5vbk9wZW5DaGFuZ2UpID09PSBudWxsIHx8IF9wcm9wc19vbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbk9wZW5DaGFuZ2UuY2FsbChwcm9wcywgZXZlbnQsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RUcmVlUmVzcG9uc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZTogb3BlbiA/ICdvcGVuJyA6ICduYXZpZ2F0ZSdcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIHRyZWVEYXRhVHlwZXMuQXJyb3dSaWdodDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFycm93IHJpZ2h0IHdpdGggYWx0IGtleSBpcyByZXNlcnZlZCBmb3IgaGlzdG9yeSBuYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBkbyBub3QgbmF2aWdhdGUgb3Igb3BlbiBpZiB0aGUgaXRlbSBpcyBhIGxlYWZcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1UeXBlID09PSAnbGVhZicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGdldE5leHRPcGVuKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBldmVudC5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGV2ZW50LmN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX3Byb3BzX29uT3BlbkNoYW5nZTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAoX3Byb3BzX29uT3BlbkNoYW5nZTEgPSBwcm9wcy5vbk9wZW5DaGFuZ2UpID09PSBudWxsIHx8IF9wcm9wc19vbk9wZW5DaGFuZ2UxID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfb25PcGVuQ2hhbmdlMS5jYWxsKHByb3BzLCBldmVudCwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFRyZWVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBvcGVuID8gJ25hdmlnYXRlJyA6ICdvcGVuJ1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1R5cGVBaGVhZENoYXJhY3RlciA9IGV2ZW50LmtleS5sZW5ndGggPT09IDEgJiYgZXZlbnQua2V5Lm1hdGNoKC9cXHcvKSAmJiAhZXZlbnQuYWx0S2V5ICYmICFldmVudC5jdHJsS2V5ICYmICFldmVudC5tZXRhS2V5O1xuICAgICAgICBpZiAoaXNUeXBlQWhlYWRDaGFyYWN0ZXIpIHtcbiAgICAgICAgICAgIHJlcXVlc3RUcmVlUmVzcG9uc2Uoe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiAnbmF2aWdhdGUnLFxuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIHRhcmdldDogZXZlbnQuY3VycmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB0cmVlRGF0YVR5cGVzLlR5cGVBaGVhZCxcbiAgICAgICAgICAgICAgICBwYXJlbnRWYWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNFdmVudEZyb21TdWJ0cmVlID0gc3VidHJlZVJlZi5jdXJyZW50ICYmIGVsZW1lbnRDb250YWlucyhzdWJ0cmVlUmVmLmN1cnJlbnQsIGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmIChpc0V2ZW50RnJvbVN1YnRyZWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0VHJlZVJlc3BvbnNlKHtcbiAgICAgICAgICAgIHJlcXVlc3RUeXBlOiAnc2VsZWN0aW9uJyxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBpdGVtVHlwZSxcbiAgICAgICAgICAgIHR5cGU6ICdDaGFuZ2UnLFxuICAgICAgICAgICAgdGFyZ2V0OiBldmVudC5jdXJyZW50VGFyZ2V0LFxuICAgICAgICAgICAgY2hlY2tlZDogY2hlY2tlZCA9PT0gJ21peGVkJyA/IHRydWUgOiAhY2hlY2tlZFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgb3BlbixcbiAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgc3VidHJlZVJlZixcbiAgICAgICAgbGF5b3V0UmVmLFxuICAgICAgICBzZWxlY3Rpb25SZWYsXG4gICAgICAgIGV4cGFuZEljb25SZWYsXG4gICAgICAgIHRyZWVJdGVtUmVmLFxuICAgICAgICBhY3Rpb25zUmVmLFxuICAgICAgICBpdGVtVHlwZSxcbiAgICAgICAgbGV2ZWwsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEZJWE1FOiB0aGlzIHByb3BlcnR5IGlzIG5vdCBuZWNlc3NhcnkgYW55bW9yZSwgYnV0IGFzIHJlbW92aW5nIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlLCB3ZSBuZWVkIHRvIGtlZXAgaXQgYXMgZmFsc2VcbiAgICAgICAgaXNBc2lkZVZpc2libGU6IGZhbHNlLFxuICAgICAgICAvLyBGSVhNRTogdGhpcyBwcm9wZXJ0eSBpcyBub3QgbmVjZXNzYXJ5IGFueW1vcmUsIGJ1dCBhcyByZW1vdmluZyBpdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSwgd2UgbmVlZCB0byBrZWVwIGl0IGFzIGZhbHNlXG4gICAgICAgIGlzQWN0aW9uc1Zpc2libGU6IGZhbHNlLFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoYXMsIHtcbiAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgIFtkYXRhVHJlZUl0ZW1WYWx1ZUF0dHJOYW1lXTogdmFsdWUsXG4gICAgICAgICAgICAuLi5yZXN0LFxuICAgICAgICAgICAgcmVmOiB1c2VNZXJnZWRSZWZzKHJlZiwgdHJlZUl0ZW1SZWYpLFxuICAgICAgICAgICAgcm9sZTogJ3RyZWVpdGVtJyxcbiAgICAgICAgICAgICdhcmlhLWxldmVsJzogbGV2ZWwsXG4gICAgICAgICAgICAnYXJpYS1jaGVja2VkJzogc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpc2VsZWN0JyA/IGNoZWNrZWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBDYXN0aW5nOiB3aGVuIHNlbGVjdGlvbk1vZGUgaXMgJ3NpbmdsZScsIGNoZWNrZWQgaXMgYSBib29sZWFuXG4gICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IGFyaWFTZWxlY3RlZCAhPT0gdW5kZWZpbmVkID8gYXJpYVNlbGVjdGVkIDogc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScgPyAhIWNoZWNrZWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnYXJpYS1leHBhbmRlZCc6IGFyaWFFeHBhbmRlZCAhPT0gdW5kZWZpbmVkID8gYXJpYUV4cGFuZGVkIDogaXRlbVR5cGUgPT09ICdicmFuY2gnID8gb3BlbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxuICAgICAgICAgICAgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZVxuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdhcm5JZk5vUHJvcGVyUHJvcHNGbGF0VHJlZUl0ZW0ocHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAocHJvcHNbJ2FyaWEtcG9zaW5zZXQnXSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzWydhcmlhLXNldHNpemUnXSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzWydhcmlhLWxldmVsJ10gPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5wYXJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIHByb3BzWydhcmlhLWxldmVsJ10gIT09IDEpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBAZmx1ZW50dWkvcmVhY3QtdHJlZSBbJHt1c2VUcmVlSXRlbV91bnN0YWJsZS5uYW1lfV06XG5BIGZsYXQgdHJlZWl0ZW0gbXVzdCBoYXZlIFwiYXJpYS1wb3NpbnNldFwiLCBcImFyaWEtc2V0c2l6ZVwiLCBcImFyaWEtbGV2ZWxcIlxuYW5kIFwicGFyZW50VmFsdWVcIiAoaWYgXCJhcmlhLWxldmVsXCIgPiAxKSB0byBlbnN1cmUgYTExeSBhbmQgbmF2aWdhdGlvbi5cblxuLSBcImFyaWEtcG9zaW5zZXRcIjogdGhlIHBvc2l0aW9uIG9mIHRoaXMgdHJlZWl0ZW0gaW4gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgdGhlIHRyZWUuXG4tIFwiYXJpYS1zZXRzaXplXCI6IHRoZSBudW1iZXIgb2Ygc2libGluZ3MgaW4gdGhpcyBsZXZlbCBvZiB0aGUgdHJlZS5cbi0gXCJhcmlhLWxldmVsXCI6IHRoZSBjdXJyZW50IGxldmVsIG9mIHRoZSB0cmVlaXRlbS5cbi0gXCJwYXJlbnRWYWx1ZVwiOiB0aGUgXCJ2YWx1ZVwiIHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgaXRlbSBvZiB0aGlzIGl0ZW0uYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IFRyZWVJdGVtUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRyZWVJdGVtXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRyZWVJdGVtX3Vuc3RhYmxlID0gKHN0YXRlLCBjb250ZXh0VmFsdWVzKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHtcbiAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChUcmVlSXRlbVByb3ZpZGVyLCB7XG4gICAgICAgICAgICB2YWx1ZTogY29udGV4dFZhbHVlcy50cmVlSXRlbSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBzdGF0ZS5yb290LmNoaWxkcmVuXG4gICAgICAgIH0pXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0IHsgX19yZXNldFN0eWxlcywgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHRva2VucywgdHlwb2dyYXBoeVN0eWxlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyB1c2VUcmVlQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uLy4uL2NvbnRleHRzL3RyZWVDb250ZXh0JztcbmltcG9ydCB7IHRyZWVJdGVtTGV2ZWxUb2tlbiB9IGZyb20gJy4uLy4uL3V0aWxzL3Rva2Vucyc7XG5pbXBvcnQgeyB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUgfSBmcm9tICcuLi8uLi9jb250ZXh0cy90cmVlSXRlbUNvbnRleHQnO1xuZXhwb3J0IGNvbnN0IHRyZWVJdGVtTGF5b3V0Q2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UcmVlSXRlbUxheW91dCcsXG4gIGljb25CZWZvcmU6ICdmdWktVHJlZUl0ZW1MYXlvdXRfX2ljb25CZWZvcmUnLFxuICBtYWluOiAnZnVpLVRyZWVJdGVtTGF5b3V0X19tYWluJyxcbiAgaWNvbkFmdGVyOiAnZnVpLVRyZWVJdGVtTGF5b3V0X19pY29uQWZ0ZXInLFxuICBleHBhbmRJY29uOiAnZnVpLVRyZWVJdGVtTGF5b3V0X19leHBhbmRJY29uJyxcbiAgYXNpZGU6ICdmdWktVHJlZUl0ZW1MYXlvdXRfX2FzaWRlJyxcbiAgYWN0aW9uczogJ2Z1aS1UcmVlSXRlbUxheW91dF9fYWN0aW9ucycsXG4gIHNlbGVjdG9yOiAnZnVpLVRyZWVJdGVtTGF5b3V0X19zZWxlY3Rvcidcbn07XG5jb25zdCB1c2VSb290QmFzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjFieDB4aXZcIiwgbnVsbCwgW1wiLnIxYngweGl2e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDozMnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtncmlkLWFyZWE6bGF5b3V0O31cIiwgXCIucjFieDB4aXY6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyUHJlc3NlZCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmRQcmVzc2VkKTt9XCIsIFwiLnIxYngweGl2OmFjdGl2ZSAuZnVpLVRyZWVJdGVtTGF5b3V0X19leHBhbmRJY29ue2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQzUHJlc3NlZCk7fVwiLCBcIi5yMWJ4MHhpdjpob3Zlcntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMkhvdmVyKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLnIxYngweGl2OmhvdmVyIC5mdWktVHJlZUl0ZW1MYXlvdXRfX2V4cGFuZEljb257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDNIb3Zlcik7fVwiXSk7XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VSb290U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgbGVhZjoge1xuICAgIHV3bXFtMzogW1wiZjFrMWVyZmNcIiwgXCJmYWV2eWp4XCJdXG4gIH0sXG4gIGJyYW5jaDoge1xuICAgIHV3bXFtMzogW1wiZm8xMDBtOVwiLCBcImY2eXczcHVcIl1cbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJma2hqNTA4XCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmMWkzaXVtaVwiXG4gIH0sXG4gIHNtYWxsOiB7XG4gICAgc3NoaTV3OiBcImYxcGhhN2Z5XCIsXG4gICAgQmFocXRyZjogXCJmazZmb3VjXCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAgQmc5Nmd3cDogXCJmd3JjNHBtXCJcbiAgfSxcbiAgc3VidGxlOiB7fSxcbiAgXCJzdWJ0bGUtYWxwaGFcIjoge1xuICAgIEp3ZWY4eTogXCJmMTQ2cm81blwiLFxuICAgIGVjcjJzMjogXCJma2FtNjMwXCJcbiAgfSxcbiAgdHJhbnNwYXJlbnQ6IHtcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBKd2VmOHk6IFwiZmp4dXR3YlwiLFxuICAgIGVjcjJzMjogXCJmb3BoaGFrXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFrMWVyZmN7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbCwgMSkgKiB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYTCkpO31cIiwgXCIuZmFldnlqeHtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbCwgMSkgKiB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYTCkpO31cIiwgXCIuZm8xMDBtOXtwYWRkaW5nLWxlZnQ6Y2FsYygodmFyKC0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbCwgMSkgLSAxKSAqIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhMKSk7fVwiLCBcIi5mNnl3M3B1e3BhZGRpbmctcmlnaHQ6Y2FsYygodmFyKC0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbCwgMSkgLSAxKSAqIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhMKSk7fVwiLCBcIi5mazZmb3Vje2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHlCYXNlKTt9XCIsIFwiLmZraGo1MDh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7fVwiLCBcIi5maWdzb2s2e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTt9XCIsIFwiLmYxaTNpdW1pe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTt9XCIsIFwiLmYxcGhhN2Z5e21pbi1oZWlnaHQ6MjRweDt9XCIsIFwiLmZ5OXJrbmN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTIwMCk7fVwiLCBcIi5md3JjNHBte2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMjAwKTt9XCIsIFwiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIl0sXG4gIGg6IFtcIi5mMTQ2cm81bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yU3VidGxlQmFja2dyb3VuZExpZ2h0QWxwaGFIb3Zlcik7fVwiLCBcIi5manh1dHdiOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmRIb3Zlcik7fVwiXSxcbiAgYTogW1wiLmZrYW02MzA6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kTGlnaHRBbHBoYVByZXNzZWQpO31cIiwgXCIuZm9waGhhazphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZFByZXNzZWQpO31cIl1cbn0pO1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBhY3Rpb24gaWNvbiBzbG90XG4gKi9cbmNvbnN0IHVzZUFjdGlvbnNCYXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyenZzMmluXCIsIFwicjE3aDhhMjlcIiwgW1wiLnJ6dnMyaW57ZGlzcGxheTpmbGV4O21hcmdpbi1sZWZ0OmF1dG87cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2dyaWQtYXJlYTphc2lkZTtwYWRkaW5nOjAgdmFyKC0tc3BhY2luZ0hvcml6b250YWxTKTt9XCIsIFwiLnIxN2g4YTI5e2Rpc3BsYXk6ZmxleDttYXJnaW4tcmlnaHQ6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Z3JpZC1hcmVhOmFzaWRlO3BhZGRpbmc6MCB2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFMpO31cIl0pO1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBhY3Rpb24gaWNvbiBzbG90XG4gKi9cbmNvbnN0IHVzZUFzaWRlQmFzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicjE4MjV1MjFcIiwgXCJyZXp5MHlrXCIsIFtcIi5yMTgyNXUyMXtkaXNwbGF5OmZsZXg7bWFyZ2luLWxlZnQ6YXV0bzthbGlnbi1pdGVtczpjZW50ZXI7ei1pbmRleDowO2dyaWQtYXJlYTphc2lkZTtwYWRkaW5nOjAgdmFyKC0tc3BhY2luZ0hvcml6b250YWxNKTtnYXA6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiLCBcIi5yZXp5MHlre2Rpc3BsYXk6ZmxleDttYXJnaW4tcmlnaHQ6YXV0bzthbGlnbi1pdGVtczpjZW50ZXI7ei1pbmRleDowO2dyaWQtYXJlYTphc2lkZTtwYWRkaW5nOjAgdmFyKC0tc3BhY2luZ0hvcml6b250YWxNKTtnYXA6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiXSk7XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIGV4cGFuZCBpY29uIHNsb3RcbiAqL1xuY29uc3QgdXNlRXhwYW5kSWNvbkJhc2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInJoNHB1NW9cIiwgbnVsbCwgW1wiLnJoNHB1NW97ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoyNHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMyk7ZmxleDowIDAgYXV0bztwYWRkaW5nOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFhTKSAwO31cIl0pO1xuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBjb250ZW50IHNsb3RcbiAqL1xuY29uc3QgdXNlTWFpbkJhc2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInJrbGJlNDdcIiwgbnVsbCwgW1wiLnJrbGJlNDd7cGFkZGluZzowIHZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFhTKTt9XCJdKTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgYmVmb3JlL2FmdGVyIGljb24gc2xvdFxuICovXG5jb25zdCB1c2VJY29uQmFzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicnBoemdnMVwiLCBudWxsLCBbXCIucnBoemdnMXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTUwMCk7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTUwMCk7fVwiXSk7XG5jb25zdCB1c2VJY29uQmVmb3JlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgbWVkaXVtOiB7XG4gICAgejE4OXNqOiBbXCJmN3g0MXBsXCIsIFwiZnJ1cTI5MVwiXVxuICB9LFxuICBzbWFsbDoge1xuICAgIHoxODlzajogW1wiZmZjemRsYVwiLCBcImZnaXY0NDZcIl1cbiAgfVxufSwge1xuICBkOiBbXCIuZjd4NDFwbHtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFMpO31cIiwgXCIuZnJ1cTI5MXtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiLCBcIi5mZmN6ZGxhe3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpO31cIiwgXCIuZmdpdjQ0NntwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpO31cIl1cbn0pO1xuY29uc3QgdXNlSWNvbkFmdGVyU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgbWVkaXVtOiB7XG4gICAgdXdtcW0zOiBbXCJmcnVxMjkxXCIsIFwiZjd4NDFwbFwiXVxuICB9LFxuICBzbWFsbDoge1xuICAgIHV3bXFtMzogW1wiZmdpdjQ0NlwiLCBcImZmY3pkbGFcIl1cbiAgfVxufSwge1xuICBkOiBbXCIuZnJ1cTI5MXtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiLCBcIi5mN3g0MXBse3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYUyk7fVwiLCBcIi5mZ2l2NDQ2e3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbFhYUyk7fVwiLCBcIi5mZmN6ZGxhe3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxYWFMpO31cIl1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBUcmVlSXRlbUxheW91dCBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRyZWVJdGVtTGF5b3V0U3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHtcbiAgICBtYWluLFxuICAgIGljb25BZnRlcixcbiAgICBpY29uQmVmb3JlLFxuICAgIGV4cGFuZEljb24sXG4gICAgcm9vdCxcbiAgICBhc2lkZSxcbiAgICBhY3Rpb25zLFxuICAgIHNlbGVjdG9yXG4gIH0gPSBzdGF0ZTtcbiAgY29uc3Qgcm9vdFN0eWxlcyA9IHVzZVJvb3RTdHlsZXMoKTtcbiAgY29uc3Qgcm9vdEJhc2VTdHlsZXMgPSB1c2VSb290QmFzZVN0eWxlcygpO1xuICBjb25zdCBhY3Rpb25zQmFzZVN0eWxlcyA9IHVzZUFjdGlvbnNCYXNlU3R5bGVzKCk7XG4gIGNvbnN0IGFzaWRlQmFzZVN0eWxlcyA9IHVzZUFzaWRlQmFzZVN0eWxlcygpO1xuICBjb25zdCBtYWluQmFzZVN0eWxlcyA9IHVzZU1haW5CYXNlU3R5bGVzKCk7XG4gIGNvbnN0IGV4cGFuZEljb25CYXNlU3R5bGVzID0gdXNlRXhwYW5kSWNvbkJhc2VTdHlsZXMoKTtcbiAgY29uc3QgaWNvbkJhc2VTdHlsZXMgPSB1c2VJY29uQmFzZVN0eWxlcygpO1xuICBjb25zdCBpY29uQmVmb3JlU3R5bGVzID0gdXNlSWNvbkJlZm9yZVN0eWxlcygpO1xuICBjb25zdCBpY29uQWZ0ZXJTdHlsZXMgPSB1c2VJY29uQWZ0ZXJTdHlsZXMoKTtcbiAgY29uc3Qgc2l6ZSA9IHVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlKGN0eCA9PiBjdHguc2l6ZSk7XG4gIGNvbnN0IGFwcGVhcmFuY2UgPSB1c2VUcmVlQ29udGV4dF91bnN0YWJsZShjdHggPT4gY3R4LmFwcGVhcmFuY2UpO1xuICBjb25zdCBpdGVtVHlwZSA9IHVzZVRyZWVJdGVtQ29udGV4dF91bnN0YWJsZShjdHggPT4gY3R4Lml0ZW1UeXBlKTtcbiAgcm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModHJlZUl0ZW1MYXlvdXRDbGFzc05hbWVzLnJvb3QsIHJvb3RCYXNlU3R5bGVzLCByb290U3R5bGVzW2FwcGVhcmFuY2VdLCByb290U3R5bGVzW3NpemVdLCByb290U3R5bGVzW2l0ZW1UeXBlXSwgcm9vdC5jbGFzc05hbWUpO1xuICBtYWluLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0cmVlSXRlbUxheW91dENsYXNzTmFtZXMubWFpbiwgbWFpbkJhc2VTdHlsZXMsIG1haW4uY2xhc3NOYW1lKTtcbiAgaWYgKGV4cGFuZEljb24pIHtcbiAgICBleHBhbmRJY29uLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0cmVlSXRlbUxheW91dENsYXNzTmFtZXMuZXhwYW5kSWNvbiwgZXhwYW5kSWNvbkJhc2VTdHlsZXMsIGV4cGFuZEljb24uY2xhc3NOYW1lKTtcbiAgfVxuICBpZiAoaWNvbkJlZm9yZSkge1xuICAgIGljb25CZWZvcmUuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRyZWVJdGVtTGF5b3V0Q2xhc3NOYW1lcy5pY29uQmVmb3JlLCBpY29uQmFzZVN0eWxlcywgaWNvbkJlZm9yZVN0eWxlc1tzaXplXSwgaWNvbkJlZm9yZS5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChpY29uQWZ0ZXIpIHtcbiAgICBpY29uQWZ0ZXIuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRyZWVJdGVtTGF5b3V0Q2xhc3NOYW1lcy5pY29uQWZ0ZXIsIGljb25CYXNlU3R5bGVzLCBpY29uQWZ0ZXJTdHlsZXNbc2l6ZV0sIGljb25BZnRlci5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChhY3Rpb25zKSB7XG4gICAgYWN0aW9ucy5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModHJlZUl0ZW1MYXlvdXRDbGFzc05hbWVzLmFjdGlvbnMsIGFjdGlvbnNCYXNlU3R5bGVzLCBhY3Rpb25zLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKGFzaWRlKSB7XG4gICAgYXNpZGUuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRyZWVJdGVtTGF5b3V0Q2xhc3NOYW1lcy5hc2lkZSwgYXNpZGVCYXNlU3R5bGVzLCBhc2lkZS5jbGFzc05hbWUpO1xuICB9XG4gIGlmIChzZWxlY3Rvcikge1xuICAgIHNlbGVjdG9yLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0cmVlSXRlbUxheW91dENsYXNzTmFtZXMuc2VsZWN0b3IsIHNlbGVjdG9yLmNsYXNzTmFtZSk7XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVRyZWVJdGVtTGF5b3V0U3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUZvY3VzSW5kaWNhdG9yU3R5bGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyB0cmVlSXRlbUxldmVsVG9rZW4gfSBmcm9tICcuLi8uLi91dGlscy90b2tlbnMnO1xuaW1wb3J0IHsgdHJlZUl0ZW1MYXlvdXRDbGFzc05hbWVzIH0gZnJvbSAnLi4vVHJlZUl0ZW1MYXlvdXQvdXNlVHJlZUl0ZW1MYXlvdXRTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHRyZWVJdGVtUGVyc29uYUxheW91dENsYXNzTmFtZXMgfSBmcm9tICcuLi9UcmVlSXRlbVBlcnNvbmFMYXlvdXQvdXNlVHJlZUl0ZW1QZXJzb25hTGF5b3V0U3R5bGVzLnN0eWxlcyc7XG5leHBvcnQgY29uc3QgdHJlZUl0ZW1DbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRyZWVJdGVtJ1xufTtcbmNvbnN0IHVzZUJhc2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxNXhodzNhXCIsIFwicjJmNms1N1wiLCBbXCIucjE1eGh3M2F7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN1YnRsZUJhY2tncm91bmQpO2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQyKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTm9uZSk7fVwiLCBcIi5yMTV4aHczYTpmb2N1c3tvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMTV4aHczYTpmb2N1cy12aXNpYmxle291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnIxNXhodzNhW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdPi5mdWktVHJlZUl0ZW1MYXlvdXQsLnIxNXhodzNhW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdPi5mdWktVHJlZUl0ZW1QZXJzb25hTGF5b3V0e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTtvdXRsaW5lLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtc3R5bGU6c29saWQ7fVwiLCBcIi5yMmY2azU3e3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JTdWJ0bGVCYWNrZ3JvdW5kKTtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMik7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTm9uZSk7fVwiLCBcIi5yMmY2azU3OmZvY3Vze291dGxpbmUtc3R5bGU6bm9uZTt9XCIsIFwiLnIyZjZrNTc6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXN0eWxlOm5vbmU7fVwiLCBcIi5yMmY2azU3W2RhdGEtZnVpLWZvY3VzLXZpc2libGVdPi5mdWktVHJlZUl0ZW1MYXlvdXQsLnIyZjZrNTdbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV0+LmZ1aS1UcmVlSXRlbVBlcnNvbmFMYXlvdXR7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3JTdHJva2VGb2N1czIpO291dGxpbmUtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1zdHlsZTpzb2xpZDt9XCJdKTtcbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGxldmVsMToge1xuICAgIGl5dHYwcTogXCJmMTBiZ3l2ZFwiXG4gIH0sXG4gIGxldmVsMjoge1xuICAgIGl5dHYwcTogXCJmMWgwcm9kM1wiXG4gIH0sXG4gIGxldmVsMzoge1xuICAgIGl5dHYwcTogXCJmZ29xYWZrXCJcbiAgfSxcbiAgbGV2ZWw0OiB7XG4gICAgaXl0djBxOiBcImY3NWR2dWhcIlxuICB9LFxuICBsZXZlbDU6IHtcbiAgICBpeXR2MHE6IFwiZnFrN3l3NlwiXG4gIH0sXG4gIGxldmVsNjoge1xuICAgIGl5dHYwcTogXCJmMXIzejE3YlwiXG4gIH0sXG4gIGxldmVsNzoge1xuICAgIGl5dHYwcTogXCJmMWhycGQxaFwiXG4gIH0sXG4gIGxldmVsODoge1xuICAgIGl5dHYwcTogXCJmMWl5NjVkMFwiXG4gIH0sXG4gIGxldmVsOToge1xuICAgIGl5dHYwcTogXCJmdGc0MmU1XCJcbiAgfSxcbiAgbGV2ZWwxMDoge1xuICAgIGl5dHYwcTogXCJmeWF0M3RcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTBiZ3l2ZHstLWZsdWVudC1UcmVlSXRlbS0tbGV2ZWw6MTt9XCIsIFwiLmYxaDByb2Qzey0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbDoyO31cIiwgXCIuZmdvcWFma3stLWZsdWVudC1UcmVlSXRlbS0tbGV2ZWw6Mzt9XCIsIFwiLmY3NWR2dWh7LS1mbHVlbnQtVHJlZUl0ZW0tLWxldmVsOjQ7fVwiLCBcIi5mcWs3eXc2ey0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbDo1O31cIiwgXCIuZjFyM3oxN2J7LS1mbHVlbnQtVHJlZUl0ZW0tLWxldmVsOjY7fVwiLCBcIi5mMWhycGQxaHstLWZsdWVudC1UcmVlSXRlbS0tbGV2ZWw6Nzt9XCIsIFwiLmYxaXk2NWQwey0tZmx1ZW50LVRyZWVJdGVtLS1sZXZlbDo4O31cIiwgXCIuZnRnNDJlNXstLWZsdWVudC1UcmVlSXRlbS0tbGV2ZWw6OTt9XCIsIFwiLmZ5YXQzdHstLWZsdWVudC1UcmVlSXRlbS0tbGV2ZWw6MTA7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRyZWVJdGVtIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVHJlZUl0ZW1TdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3QgYmFzZVN0eWxlcyA9IHVzZUJhc2VTdHlsZXMoKTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBsZXZlbFxuICB9ID0gc3RhdGU7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRyZWVJdGVtQ2xhc3NOYW1lcy5yb290LCBiYXNlU3R5bGVzLCBpc1N0YXRpY2FsbHlEZWZpbmVkTGV2ZWwobGV2ZWwpICYmIHN0eWxlc1tgbGV2ZWwke2xldmVsfWBdLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG5mdW5jdGlvbiBpc1N0YXRpY2FsbHlEZWZpbmVkTGV2ZWwobGV2ZWwpIHtcbiAgcmV0dXJuIGxldmVsID49IDEgJiYgbGV2ZWwgPD0gMTA7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUcmVlSXRlbVN0eWxlcy5zdHlsZXMuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIHVzZVRyZWVJdGVtQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSkge1xuICAgIGNvbnN0IHsgdmFsdWUsIGl0ZW1UeXBlLCBsYXlvdXRSZWYsIHN1YnRyZWVSZWYsIG9wZW4sIGV4cGFuZEljb25SZWYsIGFjdGlvbnNSZWYsIHRyZWVJdGVtUmVmLCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbiAgICBpc0FjdGlvbnNWaXNpYmxlLCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVwcmVjYXRpb24vZGVwcmVjYXRpb25cbiAgICBpc0FzaWRlVmlzaWJsZSwgc2VsZWN0aW9uUmVmLCBjaGVja2VkIH0gPSBzdGF0ZTtcbiAgICAvKipcbiAgICogVGhpcyBjb250ZXh0IGlzIGNyZWF0ZWQgd2l0aCBcIkBmbHVlbnR1aS9yZWFjdC1jb250ZXh0LXNlbGVjdG9yXCIsXG4gICAqIHRoZXJlIGlzIG5vIHNlbnNlIHRvIG1lbW9pemUgaXRcbiAgICovIGNvbnN0IHRyZWVJdGVtID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgaXRlbVR5cGUsXG4gICAgICAgIGxheW91dFJlZixcbiAgICAgICAgc3VidHJlZVJlZixcbiAgICAgICAgb3BlbixcbiAgICAgICAgc2VsZWN0aW9uUmVmLFxuICAgICAgICBpc0FjdGlvbnNWaXNpYmxlLFxuICAgICAgICBpc0FzaWRlVmlzaWJsZSxcbiAgICAgICAgYWN0aW9uc1JlZixcbiAgICAgICAgdHJlZUl0ZW1SZWYsXG4gICAgICAgIGV4cGFuZEljb25SZWZcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIHRyZWVJdGVtXG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyZWVJdGVtX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUcmVlSXRlbSc7XG5pbXBvcnQgeyByZW5kZXJUcmVlSXRlbV91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVHJlZUl0ZW0nO1xuaW1wb3J0IHsgdXNlVHJlZUl0ZW1TdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRyZWVJdGVtU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUcmVlSXRlbUNvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRyZWVJdGVtQ29udGV4dFZhbHVlcyc7XG4vKipcbiAqIFRoZSBgVHJlZUl0ZW1gIGNvbXBvbmVudCByZXByZXNlbnRzIGEgc2luZ2xlIGl0ZW0gaW4gYSB0cmVlLlxuICogSXQgZXhwZWN0cyBhIGNlcnRhaW4gb3JkZXIgb2YgY2hpbGRyZW4gdG8gd29yayBwcm9wZXJseTogdGhlIGZpcnN0IGNoaWxkIHNob3VsZCBiZSB0aGUgbm9kZSBpdHNlbGYsXG4gKiBhbmQgdGhlIHNlY29uZCBjaGlsZCBzaG91bGQgYmUgYSBuZXN0ZWQgc3VidHJlZSBpbiB0aGUgZm9ybSBvZiBhbm90aGVyIFRyZWUgY29tcG9uZW50IG9yIGEgc3RhbmRhbG9uZSBUcmVlSXRlbS5cbiAqIFRoaXMgb3JkZXIgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBhcyBkb2N1bWVudCB0cmF2ZXJzYWwgZm9yIHRoZSBUcmVlV2Fsa2VyIEFQSSBpbiBKYXZhU2NyaXB0OlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1RyZWVXYWxrZXIuXG4gKiBUaGUgY29udGVudCBhbmQgbGF5b3V0IG9mIGEgVHJlZUl0ZW0gY2FuIGJlIGRlZmluZWQgdXNpbmcgdGhlIFRyZWVJdGVtTGF5b3V0IG9yIFRyZWVJdGVtUGVyc29uYUxheW91dCBjb21wb25lbnQsXG4gKiB3aGljaCBzaG91bGQgYmUgdXNlZCBhcyBhIGRpcmVjdCBjaGlsZCBvZiBUcmVlSXRlbS5cbiAqXG4gKiBXaGVuIGEgVHJlZUl0ZW0gaGFzIG5lc3RlZCBjaGlsZCBzdWJ0cmVlLCBhbiBleHBhbmQvY29sbGFwc2UgY29udHJvbCBpcyBkaXNwbGF5ZWQsXG4gKiBhbGxvd2luZyB0aGUgdXNlciB0byBzaG93IG9yIGhpZGUgdGhlIGNoaWxkcmVuLlxuICovIGV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRyZWVJdGVtX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRyZWVJdGVtU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gdXNlVHJlZUl0ZW1Db250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVHJlZUl0ZW1fdW5zdGFibGUoc3RhdGUsIGNvbnRleHRWYWx1ZXMpO1xufSk7XG5UcmVlSXRlbS5kaXNwbGF5TmFtZSA9ICdUcmVlSXRlbSc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IENoZXZyb25SaWdodDEyUmVndWxhciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1pY29ucyc7XG5pbXBvcnQgeyBkdXJhdGlvbnMsIGN1cnZlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1tb3Rpb24nO1xuaW1wb3J0IHsgdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vY29udGV4dHMvdHJlZUl0ZW1Db250ZXh0JztcbmV4cG9ydCBjb25zdCBUcmVlSXRlbUNoZXZyb24gPSAvKiNfX1BVUkVfXyovIFJlYWN0Lm1lbW8oKCk9PntcbiAgICBjb25zdCBvcGVuID0gdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgub3Blbik7XG4gICAgY29uc3QgeyBkaXIgfSA9IHVzZUZsdWVudF91bnN0YWJsZSgpO1xuICAgIGNvbnN0IGV4cGFuZEljb25Sb3RhdGlvbiA9IG9wZW4gPyA5MCA6IGRpciAhPT0gJ3J0bCcgPyAwIDogMTgwO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvblJpZ2h0MTJSZWd1bGFyLCB7XG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAuLi5leHBhbmRJY29uSW5saW5lU3R5bGVzW2V4cGFuZEljb25Sb3RhdGlvbl0sXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBgdHJhbnNmb3JtICR7ZHVyYXRpb25zLmR1cmF0aW9uTm9ybWFsfW1zICR7Y3VydmVzLmN1cnZlRWFzeUVhc2VNYXh9YFxuICAgICAgICB9XG4gICAgfSk7XG59KTtcblRyZWVJdGVtQ2hldnJvbi5kaXNwbGF5TmFtZSA9ICdUcmVlSXRlbUNoZXZyb24nO1xuY29uc3QgZXhwYW5kSWNvbklubGluZVN0eWxlcyA9IHtcbiAgICA5MDoge1xuICAgICAgICB0cmFuc2Zvcm06IGByb3RhdGUoOTBkZWcpYFxuICAgIH0sXG4gICAgMDoge1xuICAgICAgICB0cmFuc2Zvcm06IGByb3RhdGUoMGRlZylgXG4gICAgfSxcbiAgICAxODA6IHtcbiAgICAgICAgdHJhbnNmb3JtOiBgcm90YXRlKDE4MGRlZylgXG4gICAgfVxufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgaXNSZXNvbHZlZFNob3J0aGFuZCwgdXNlTWVyZ2VkUmVmcywgc2xvdCwgdXNlRXZlbnRDYWxsYmFjaywgZWxlbWVudENvbnRhaW5zLCB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlLCB1c2VUcmVlQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uLy4uL2NvbnRleHRzJztcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNoZWNrYm94JztcbmltcG9ydCB7IFJhZGlvIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXJhZGlvJztcbmltcG9ydCB7IFRyZWVJdGVtQ2hldnJvbiB9IGZyb20gJy4uL1RyZWVJdGVtQ2hldnJvbic7XG5pbXBvcnQgeyB1c2VBcnJvd05hdmlnYXRpb25Hcm91cCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVHJlZUl0ZW1MYXlvdXQuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlVHJlZUl0ZW1MYXlvdXRTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclRyZWVJdGVtTGF5b3V0X3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUcmVlSXRlbUxheW91dFxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIFRyZWVJdGVtTGF5b3V0XG4gKi8gZXhwb3J0IGNvbnN0IHVzZVRyZWVJdGVtTGF5b3V0X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCB7IG1haW4sIGljb25BZnRlciwgaWNvbkJlZm9yZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgbGF5b3V0UmVmID0gdXNlVHJlZUl0ZW1Db250ZXh0X3Vuc3RhYmxlKChjdHgpPT5jdHgubGF5b3V0UmVmKTtcbiAgICBjb25zdCBzZWxlY3Rpb25Nb2RlID0gdXNlVHJlZUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5zZWxlY3Rpb25Nb2RlKTtcbiAgICBjb25zdCBbaXNBY3Rpb25zVmlzaWJsZUZyb21Qcm9wcywgb25BY3Rpb25WaXNpYmlsaXR5Q2hhbmdlXSA9IGlzUmVzb2x2ZWRTaG9ydGhhbmQocHJvcHMuYWN0aW9ucykgPyBbXG4gICAgICAgIHByb3BzLmFjdGlvbnMudmlzaWJsZSxcbiAgICAgICAgcHJvcHMuYWN0aW9ucy5vblZpc2liaWxpdHlDaGFuZ2VcbiAgICBdIDogW1xuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZFxuICAgIF07XG4gICAgY29uc3QgW2lzQWN0aW9uc1Zpc2libGUsIHNldElzQWN0aW9uc1Zpc2libGVdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgICBzdGF0ZTogaXNBY3Rpb25zVmlzaWJsZUZyb21Qcm9wcyxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiBmYWxzZVxuICAgIH0pO1xuICAgIGNvbnN0IHNlbGVjdGlvblJlZiA9IHVzZVRyZWVJdGVtQ29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LnNlbGVjdGlvblJlZik7XG4gICAgY29uc3QgZXhwYW5kSWNvblJlZiA9IHVzZVRyZWVJdGVtQ29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LmV4cGFuZEljb25SZWYpO1xuICAgIGNvbnN0IGFjdGlvbnNSZWYgPSB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5hY3Rpb25zUmVmKTtcbiAgICBjb25zdCBhY3Rpb25zUmVmSW50ZXJuYWwgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJlZUl0ZW1SZWYgPSB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC50cmVlSXRlbVJlZik7XG4gICAgY29uc3Qgc3VidHJlZVJlZiA9IHVzZVRyZWVJdGVtQ29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4LnN1YnRyZWVSZWYpO1xuICAgIGNvbnN0IGNoZWNrZWQgPSB1c2VUcmVlSXRlbUNvbnRleHRfdW5zdGFibGUoKGN0eCk9PmN0eC5jaGVja2VkKTtcbiAgICBjb25zdCBpc0JyYW5jaCA9IHVzZVRyZWVJdGVtQ29udGV4dF91bnN0YWJsZSgoY3R4KT0+Y3R4Lml0ZW1UeXBlID09PSAnYnJhbmNoJyk7XG4gICAgLy8gRklYTUU6IEFzc2VydGluZyBpcyByZXF1aXJlZCBoZXJlLCBhcyBjb252ZXJ0aW5nIHRoaXMgdG8gUmVmT2JqZWN0IG9uIGNvbnRleHQgdHlwZSB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZVxuICAgIGFzc2VydElzUmVmT2JqZWN0KHRyZWVJdGVtUmVmKTtcbiAgICAvLyBGSVhNRTogQXNzZXJ0aW5nIGlzIHJlcXVpcmVkIGhlcmUsIGFzIGNvbnZlcnRpbmcgdGhpcyB0byBSZWZPYmplY3Qgb24gY29udGV4dCB0eXBlIHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlXG4gICAgYXNzZXJ0SXNSZWZPYmplY3Qoc3VidHJlZVJlZik7XG4gICAgY29uc3Qgc2V0QWN0aW9uc1Zpc2libGVJZk5vdEZyb21TdWJ0cmVlID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBjb25zdCBpc1RhcmdldEZyb21TdWJ0cmVlID0gQm9vbGVhbihzdWJ0cmVlUmVmLmN1cnJlbnQgJiYgZWxlbWVudENvbnRhaW5zKHN1YnRyZWVSZWYuY3VycmVudCwgZXZlbnQudGFyZ2V0KSk7XG4gICAgICAgIGlmICghaXNUYXJnZXRGcm9tU3VidHJlZSkge1xuICAgICAgICAgICAgb25BY3Rpb25WaXNpYmlsaXR5Q2hhbmdlID09PSBudWxsIHx8IG9uQWN0aW9uVmlzaWJpbGl0eUNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BY3Rpb25WaXNpYmlsaXR5Q2hhbmdlKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICB0eXBlOiBldmVudC50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldElzQWN0aW9uc1Zpc2libGUodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHN1YnRyZWVSZWYsXG4gICAgICAgIHNldElzQWN0aW9uc1Zpc2libGUsXG4gICAgICAgIG9uQWN0aW9uVmlzaWJpbGl0eUNoYW5nZVxuICAgIF0pO1xuICAgIGNvbnN0IHNldEFjdGlvbnNJbnZpc2libGVJZk5vdEZyb21TdWJ0cmVlID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KT0+e1xuICAgICAgICBjb25zdCBpc1JlbGF0ZWRUYXJnZXRGcm9tQWN0aW9ucyA9IEJvb2xlYW4oYWN0aW9uc1JlZkludGVybmFsLmN1cnJlbnQgJiYgZWxlbWVudENvbnRhaW5zKGFjdGlvbnNSZWZJbnRlcm5hbC5jdXJyZW50LCBldmVudC5yZWxhdGVkVGFyZ2V0KSk7XG4gICAgICAgIGlmIChpc1JlbGF0ZWRUYXJnZXRGcm9tQWN0aW9ucykge1xuICAgICAgICAgICAgb25BY3Rpb25WaXNpYmlsaXR5Q2hhbmdlID09PSBudWxsIHx8IG9uQWN0aW9uVmlzaWJpbGl0eUNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BY3Rpb25WaXNpYmlsaXR5Q2hhbmdlKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICB0eXBlOiBldmVudC50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldElzQWN0aW9uc1Zpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNUYXJnZXRGcm9tU3VidHJlZSA9IEJvb2xlYW4oc3VidHJlZVJlZi5jdXJyZW50ICYmIGVsZW1lbnRDb250YWlucyhzdWJ0cmVlUmVmLmN1cnJlbnQsIGV2ZW50LnRhcmdldCkpO1xuICAgICAgICBpZiAoIWlzVGFyZ2V0RnJvbVN1YnRyZWUpIHtcbiAgICAgICAgICAgIG9uQWN0aW9uVmlzaWJpbGl0eUNoYW5nZSA9PT0gbnVsbCB8fCBvbkFjdGlvblZpc2liaWxpdHlDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQWN0aW9uVmlzaWJpbGl0eUNoYW5nZShldmVudCwge1xuICAgICAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50LnR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0SXNBY3Rpb25zVmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHN1YnRyZWVSZWYsXG4gICAgICAgIHNldElzQWN0aW9uc1Zpc2libGUsXG4gICAgICAgIG9uQWN0aW9uVmlzaWJpbGl0eUNoYW5nZVxuICAgIF0pO1xuICAgIGNvbnN0IGV4cGFuZEljb24gPSBzbG90Lm9wdGlvbmFsKHByb3BzLmV4cGFuZEljb24sIHtcbiAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiBpc0JyYW5jaCxcbiAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ2hldnJvbiwgbnVsbCksXG4gICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgIH0pO1xuICAgIGNvbnN0IGV4cGFuZEljb25SZWZzID0gdXNlTWVyZ2VkUmVmcyhleHBhbmRJY29uID09PSBudWxsIHx8IGV4cGFuZEljb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZEljb24ucmVmLCBleHBhbmRJY29uUmVmKTtcbiAgICBpZiAoZXhwYW5kSWNvbikge1xuICAgICAgICBleHBhbmRJY29uLnJlZiA9IGV4cGFuZEljb25SZWZzO1xuICAgIH1cbiAgICBjb25zdCBhcnJvd05hdmlnYXRpb25Qcm9wcyA9IHVzZUFycm93TmF2aWdhdGlvbkdyb3VwKHtcbiAgICAgICAgY2lyY3VsYXI6IHRydWUsXG4gICAgICAgIGF4aXM6ICdob3Jpem9udGFsJ1xuICAgIH0pO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBpc0FjdGlvbnNWaXNpYmxlID8gc2xvdC5vcHRpb25hbChwcm9wcy5hY3Rpb25zLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgLi4uYXJyb3dOYXZpZ2F0aW9uUHJvcHMsXG4gICAgICAgICAgICByb2xlOiAndG9vbGJhcidcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgfSkgOiB1bmRlZmluZWQ7XG4gICAgYWN0aW9ucyA9PT0gbnVsbCB8fCBhY3Rpb25zID09PSB2b2lkIDAgPyB0cnVlIDogZGVsZXRlIGFjdGlvbnMudmlzaWJsZTtcbiAgICBhY3Rpb25zID09PSBudWxsIHx8IGFjdGlvbnMgPT09IHZvaWQgMCA/IHRydWUgOiBkZWxldGUgYWN0aW9ucy5vblZpc2liaWxpdHlDaGFuZ2U7XG4gICAgY29uc3QgYWN0aW9uc1JlZnMgPSB1c2VNZXJnZWRSZWZzKGFjdGlvbnMgPT09IG51bGwgfHwgYWN0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9ucy5yZWYsIGFjdGlvbnNSZWYsIGFjdGlvbnNSZWZJbnRlcm5hbCk7XG4gICAgY29uc3QgaGFuZGxlQWN0aW9uc0JsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgaWYgKGlzUmVzb2x2ZWRTaG9ydGhhbmQocHJvcHMuYWN0aW9ucykpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHNfYWN0aW9uc19vbkJsdXIsIF9wcm9wc19hY3Rpb25zO1xuICAgICAgICAgICAgKF9wcm9wc19hY3Rpb25zX29uQmx1ciA9IChfcHJvcHNfYWN0aW9ucyA9IHByb3BzLmFjdGlvbnMpLm9uQmx1cikgPT09IG51bGwgfHwgX3Byb3BzX2FjdGlvbnNfb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfYWN0aW9uc19vbkJsdXIuY2FsbChfcHJvcHNfYWN0aW9ucywgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUmVsYXRlZFRhcmdldEZyb21BY3Rpb25zID0gQm9vbGVhbihlbGVtZW50Q29udGFpbnMoZXZlbnQuY3VycmVudFRhcmdldCwgZXZlbnQucmVsYXRlZFRhcmdldCkpO1xuICAgICAgICBvbkFjdGlvblZpc2liaWxpdHlDaGFuZ2UgPT09IG51bGwgfHwgb25BY3Rpb25WaXNpYmlsaXR5Q2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFjdGlvblZpc2liaWxpdHlDaGFuZ2UoZXZlbnQsIHtcbiAgICAgICAgICAgIHZpc2libGU6IGlzUmVsYXRlZFRhcmdldEZyb21BY3Rpb25zLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICB0eXBlOiBldmVudC50eXBlXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRJc0FjdGlvbnNWaXNpYmxlKGlzUmVsYXRlZFRhcmdldEZyb21BY3Rpb25zKTtcbiAgICB9KTtcbiAgICBpZiAoYWN0aW9ucykge1xuICAgICAgICBhY3Rpb25zLnJlZiA9IGFjdGlvbnNSZWZzO1xuICAgICAgICBhY3Rpb25zLm9uQmx1ciA9IGhhbmRsZUFjdGlvbnNCbHVyO1xuICAgIH1cbiAgICBjb25zdCBoYXNBY3Rpb25zID0gQm9vbGVhbihwcm9wcy5hY3Rpb25zKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHRyZWVJdGVtUmVmLmN1cnJlbnQgJiYgaGFzQWN0aW9ucyAmJiBpc0FjdGlvbnNWaXNpYmxlRnJvbVByb3BzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtRWxlbWVudCA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVNb3VzZU92ZXIgPSBzZXRBY3Rpb25zVmlzaWJsZUlmTm90RnJvbVN1YnRyZWU7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVNb3VzZU91dCA9IHNldEFjdGlvbnNJbnZpc2libGVJZk5vdEZyb21TdWJ0cmVlO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlRm9jdXMgPSBzZXRBY3Rpb25zVmlzaWJsZUlmTm90RnJvbVN1YnRyZWU7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVCbHVyID0gc2V0QWN0aW9uc0ludmlzaWJsZUlmTm90RnJvbVN1YnRyZWU7XG4gICAgICAgICAgICB0cmVlSXRlbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgaGFuZGxlTW91c2VPdmVyKTtcbiAgICAgICAgICAgIHRyZWVJdGVtRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGhhbmRsZU1vdXNlT3V0KTtcbiAgICAgICAgICAgIHRyZWVJdGVtRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcbiAgICAgICAgICAgIHRyZWVJdGVtRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlQmx1cik7XG4gICAgICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgICAgICB0cmVlSXRlbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgaGFuZGxlTW91c2VPdmVyKTtcbiAgICAgICAgICAgICAgICB0cmVlSXRlbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBoYW5kbGVNb3VzZU91dCk7XG4gICAgICAgICAgICAgICAgdHJlZUl0ZW1FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFuZGxlRm9jdXMpO1xuICAgICAgICAgICAgICAgIHRyZWVJdGVtRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlQmx1cik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBoYXNBY3Rpb25zLFxuICAgICAgICB0cmVlSXRlbVJlZixcbiAgICAgICAgaXNBY3Rpb25zVmlzaWJsZUZyb21Qcm9wcyxcbiAgICAgICAgc2V0QWN0aW9uc1Zpc2libGVJZk5vdEZyb21TdWJ0cmVlLFxuICAgICAgICBzZXRBY3Rpb25zSW52aXNpYmxlSWZOb3RGcm9tU3VidHJlZVxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgZXhwYW5kSWNvbjogJ2RpdicsXG4gICAgICAgICAgICBpY29uQmVmb3JlOiAnZGl2JyxcbiAgICAgICAgICAgIG1haW46ICdkaXYnLFxuICAgICAgICAgICAgaWNvbkFmdGVyOiAnZGl2JyxcbiAgICAgICAgICAgIGFjdGlvbnM6ICdkaXYnLFxuICAgICAgICAgICAgYXNpZGU6ICdkaXYnLFxuICAgICAgICAgICAgLy8gQ2FzdGluZyBoZXJlIHRvIGEgdW5pb24gYmV0d2VlbiBjaGVja2JveCBhbmQgcmFkaW9cbiAgICAgICAgICAgIHNlbGVjdG9yOiBzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlzZWxlY3QnID8gQ2hlY2tib3ggOiBSYWRpb1xuICAgICAgICB9LFxuICAgICAgICBidXR0b25Db250ZXh0VmFsdWU6IHtcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCdcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgLy8gYHJlZmAgaXMgd3JvbmdseSBhc3NpZ25lZCB0byBiZSBgSFRNTEVsZW1lbnRgIGluc3RlYWQgb2YgYEhUTUxEaXZFbGVtZW50YFxuICAgICAgICAgICAgLy8gYnV0IHNpbmNlIGl0IHdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIGZpeCBpdCwgd2UgYXJlIGNhc3RpbmcgcmVmIHRvIGl0J3MgcHJvcGVyIHR5cGVcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIGxheW91dFJlZilcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgaWNvbkJlZm9yZTogc2xvdC5vcHRpb25hbChpY29uQmVmb3JlLCB7XG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICAnYXJpYS1oaWRkZW4nOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBtYWluOiBzbG90LmFsd2F5cyhtYWluLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSksXG4gICAgICAgIGljb25BZnRlcjogc2xvdC5vcHRpb25hbChpY29uQWZ0ZXIsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSksXG4gICAgICAgIGFzaWRlOiAhaXNBY3Rpb25zVmlzaWJsZSA/IHNsb3Qub3B0aW9uYWwocHJvcHMuYXNpZGUsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGFjdGlvbnMsXG4gICAgICAgIGV4cGFuZEljb24sXG4gICAgICAgIHNlbGVjdG9yOiBzbG90Lm9wdGlvbmFsKHByb3BzLnNlbGVjdG9yLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6IHNlbGVjdGlvbk1vZGUgIT09ICdub25lJyxcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgICAgICAgICdhcmlhLWhpZGRlbic6IHRydWUsXG4gICAgICAgICAgICAgICAgcmVmOiBzZWxlY3Rpb25SZWZcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpc2VsZWN0JyA/IENoZWNrYm94IDogUmFkaW9cbiAgICAgICAgfSlcbiAgICB9O1xufTtcbmZ1bmN0aW9uIGFzc2VydElzUmVmT2JqZWN0KHJlZikge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVmICE9PSAnb2JqZWN0JyB8fCByZWYgPT09IG51bGwgfHwgISgnY3VycmVudCcgaW4gcmVmKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgQGZsdWVudHVpL3JlYWN0LXRyZWUgWyR7dXNlVHJlZUl0ZW1MYXlvdXRfdW5zdGFibGUubmFtZX1dOlxuICAgICAgICBJbnRlcm5hbCBFcnJvcjogY29udGV4dHVhbCByZWYgaXMgbm90IGEgUmVmT2JqZWN0ISBQbGVhc2UgcmVwb3J0IHRoaXMgYnVnIGltbWVkaWF0ZWx5LCBhcyBjb250ZXh0dWFsIHJlZnMgc2hvdWxkIGJlIFJlZk9iamVjdHMuXG4gICAgICBgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQnV0dG9uQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWJ1dHRvbic7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRyZWVJdGVtTGF5b3V0XG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRyZWVJdGVtTGF5b3V0X3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzdGF0ZS5leHBhbmRJY29uICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5leHBhbmRJY29uLCB7fSksXG4gICAgICAgICAgICBzdGF0ZS5zZWxlY3RvciAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuc2VsZWN0b3IsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLmljb25CZWZvcmUgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmljb25CZWZvcmUsIHt9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5tYWluLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IHN0YXRlLnJvb3QuY2hpbGRyZW5cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RhdGUuaWNvbkFmdGVyICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5pY29uQWZ0ZXIsIHt9KSxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeHMoQnV0dG9uQ29udGV4dFByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHN0YXRlLmJ1dHRvbkNvbnRleHRWYWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3Rpb25zICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5hY3Rpb25zLCB7fSksXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFzaWRlICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5hc2lkZSwge30pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyZWVJdGVtTGF5b3V0X3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUcmVlSXRlbUxheW91dCc7XG5pbXBvcnQgeyByZW5kZXJUcmVlSXRlbUxheW91dF91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVHJlZUl0ZW1MYXlvdXQnO1xuaW1wb3J0IHsgdXNlVHJlZUl0ZW1MYXlvdXRTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRyZWVJdGVtTGF5b3V0U3R5bGVzLnN0eWxlcyc7XG4vKipcbiAqIFRoZSBgVHJlZUl0ZW1MYXlvdXRgIGNvbXBvbmVudCBpcyB1c2VkIGFzIGEgY2hpbGQgb2YgYFRyZWVJdGVtYCB0byBkZWZpbmUgdGhlIGNvbnRlbnQgYW5kIGxheW91dCBvZiBhIHRyZWUgaXRlbS5cbiAqIEl0IHByb3ZpZGVzIGEgY29uc2lzdGVudCB2aXN1YWwgc3RydWN0dXJlIGZvciB0cmVlIGl0ZW1zIGluIGEgYFRyZWVgIGNvbXBvbmVudC5cbiAqIFRoaXMgY29tcG9uZW50IHNob3VsZCBvbmx5IGJlIHVzZWQgYXMgYSBkaXJlY3QgY2hpbGQgb2YgYFRyZWVJdGVtYC5cbiAqLyBleHBvcnQgY29uc3QgVHJlZUl0ZW1MYXlvdXQgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUcmVlSXRlbUxheW91dF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUcmVlSXRlbUxheW91dFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRyZWVJdGVtTGF5b3V0X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuVHJlZUl0ZW1MYXlvdXQuZGlzcGxheU5hbWUgPSAnVHJlZUl0ZW1MYXlvdXQnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2hlY2ttYXJrQ2lyY2xlRmlsbGVkLCBJbmZvRmlsbGVkLCBXYXJuaW5nRmlsbGVkLCBEaXNtaXNzQ2lyY2xlRmlsbGVkIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWljb25zJztcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlbnRJY29uKGludGVudCkge1xuICAgIHN3aXRjaChpbnRlbnQpe1xuICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5mb0ZpbGxlZCwgbnVsbCk7XG4gICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChXYXJuaW5nRmlsbGVkLCBudWxsKTtcbiAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChEaXNtaXNzQ2lyY2xlRmlsbGVkLCBudWxsKTtcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrbWFya0NpcmNsZUZpbGxlZCwgbnVsbCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5leHBvcnQgZnVuY3Rpb24gdXNlTWVzc2FnZUJhclJlZmxvdyhlbmFibGVkID0gZmFsc2UpIHtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBmb3JjZVVwZGF0ZSA9IFJlYWN0LnVzZVJlZHVjZXIoKCk9Pih7fSksIHt9KVsxXTtcbiAgICBjb25zdCByZWZsb3dpbmdSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIC8vIFRPRE86IGV4Y2x1ZGUgdHlwZXMgZnJvbSB0aGlzIGxpbnQgcnVsZTogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMzEyODZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgY29uc3QgcmVzaXplT2JzZXJ2ZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJldklubGluZVNpemVSZWYgPSBSZWFjdC51c2VSZWYoLTEpO1xuICAgIGNvbnN0IGhhbmRsZVJlc2l6ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbnRyaWVzKT0+e1xuICAgICAgICB2YXIgX2VudHJ5X2JvcmRlckJveFNpemU7XG4gICAgICAgIC8vIFJlc2l6ZSBvYnNlcnZlciBpcyBvbmx5IG93bmVkIGJ5IHRoaXMgY29tcG9uZW50IC0gb25lIHJlc2l6ZSBvYnNlcnZlciBlbnRyeSBleHBlY3RlZFxuICAgICAgICAvLyBObyBuZWVkIHRvIHN1cHBvcnQgbXVsdGlwbGUgZnJhZ21lbnRzIC0gb25lIGJvcmRlciBib3ggZW50cnkgZXhwZWN0ZWRcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgZW50cmllcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihbXG4gICAgICAgICAgICAgICAgJ3VzZU1lc3NhZ2VCYXJSZWZsb3c6IFJlc2l6ZSBvYnNlcnZlciBzaG91bGQgb25seSBoYXZlIG9uZSBlbnRyeS4gJyxcbiAgICAgICAgICAgICAgICAnSWYgbXVsdGlwbGUgZW50cmllcyBhcmUgb2JzZXJ2ZWQsIHRoZSBmaXJzdCBlbnRyeSB3aWxsIGJlIHVzZWQuJyxcbiAgICAgICAgICAgICAgICAnVGhpcyBpcyBhIGJ1ZywgcGxlYXNlIHJlcG9ydCBpdCB0byB0aGUgRmx1ZW50IFVJIHRlYW0uJ1xuICAgICAgICAgICAgXS5qb2luKCcgJykpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgdmFyIF9lbnRyeV9ib3JkZXJCb3hTaXplX19pbmxpbmVTaXplO1xuICAgICAgICAvLyBgYm9yZGVyQm94U2l6ZWAgaXMgbm90IHN1cHBvcnRlZCBiZWZvcmUgQ2hyb21lIDg0LCBGaXJlZm94IDkyLCBub3IgU2FmYXJpIDE1LjRcbiAgICAgICAgY29uc3QgaW5saW5lU2l6ZSA9IChfZW50cnlfYm9yZGVyQm94U2l6ZV9faW5saW5lU2l6ZSA9IGVudHJ5ID09PSBudWxsIHx8IGVudHJ5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX2VudHJ5X2JvcmRlckJveFNpemUgPSBlbnRyeS5ib3JkZXJCb3hTaXplKSA9PT0gbnVsbCB8fCBfZW50cnlfYm9yZGVyQm94U2l6ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2VudHJ5X2JvcmRlckJveFNpemVbMF0uaW5saW5lU2l6ZSkgIT09IG51bGwgJiYgX2VudHJ5X2JvcmRlckJveFNpemVfX2lubGluZVNpemUgIT09IHZvaWQgMCA/IF9lbnRyeV9ib3JkZXJCb3hTaXplX19pbmxpbmVTaXplIDogZW50cnkgPT09IG51bGwgfHwgZW50cnkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVudHJ5LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgaWYgKGlubGluZVNpemUgPT09IHVuZGVmaW5lZCB8fCAhZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHRhcmdldCB9ID0gZW50cnk7XG4gICAgICAgIGlmICghaXNIVE1MRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG5leHRSZWZsb3dpbmc7XG4gICAgICAgIC8vIE5vIGVhc3kgd2F5IHRvIHJlYWxseSBkZXRlcm1pbmUgd2hlbiB0aGUgc2luZ2xlIGxpbmUgbGF5b3V0IHdpbGwgZml0XG4gICAgICAgIC8vIEp1c3Qga2VlcCB0cnkgdG8gc2V0IHNpbmdsZSBsaW5lIGxheW91dCBhcyBsb25nIGFzIHRoZSBzaXplIGlzIGdyb3dpbmdcbiAgICAgICAgLy8gV2lsbCBjYXVzZSBmbGlja2VyaW5nIHdoZW4gc2l6ZSBpcyBiZWluZyBhZGp1c3RlZCBncmFkdWFsbHkgKGkuZS4gZHJhZykgLSBidXQgdGhpcyBzaG91bGQgbm90IGJlIGEgY29tbW9uIGNhc2VcbiAgICAgICAgaWYgKHJlZmxvd2luZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBpZiAocHJldklubGluZVNpemVSZWYuY3VycmVudCA8IGlubGluZVNpemUpIHtcbiAgICAgICAgICAgICAgICBuZXh0UmVmbG93aW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHRhcmdldC5zY3JvbGxXaWR0aDtcbiAgICAgICAgICAgIGlmIChpbmxpbmVTaXplIDwgc2Nyb2xsV2lkdGgpIHtcbiAgICAgICAgICAgICAgICBuZXh0UmVmbG93aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwcmV2SW5saW5lU2l6ZVJlZi5jdXJyZW50ID0gaW5saW5lU2l6ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBuZXh0UmVmbG93aW5nICE9PSAndW5kZWZpbmVkJyAmJiByZWZsb3dpbmdSZWYuY3VycmVudCAhPT0gbmV4dFJlZmxvd2luZykge1xuICAgICAgICAgICAgcmVmbG93aW5nUmVmLmN1cnJlbnQgPSBuZXh0UmVmbG93aW5nO1xuICAgICAgICAgICAgZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgZm9yY2VVcGRhdGVcbiAgICBdKTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHZhciBfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudDtcbiAgICAgICAgaWYgKCFlbmFibGVkIHx8ICFlbCB8fCAhKHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5kZWZhdWx0VmlldykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyUmVmX2N1cnJlbnQgPSByZXNpemVPYnNlcnZlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfcmVzaXplT2JzZXJ2ZXJSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Jlc2l6ZU9ic2VydmVyUmVmX2N1cnJlbnQuZGlzY29ubmVjdCgpO1xuICAgICAgICBjb25zdCB3aW4gPSB0YXJnZXREb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgd2luLlJlc2l6ZU9ic2VydmVyKGhhbmRsZVJlc2l6ZSk7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyUmVmLmN1cnJlbnQgPSByZXNpemVPYnNlcnZlcjtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbCwge1xuICAgICAgICAgICAgYm94OiAnYm9yZGVyLWJveCdcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICB0YXJnZXREb2N1bWVudCxcbiAgICAgICAgaGFuZGxlUmVzaXplLFxuICAgICAgICBlbmFibGVkXG4gICAgXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgdmFyIF9yZXNpemVPYnNlcnZlclJlZl9jdXJyZW50O1xuICAgICAgICAgICAgKF9yZXNpemVPYnNlcnZlclJlZl9jdXJyZW50ID0gcmVzaXplT2JzZXJ2ZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yZXNpemVPYnNlcnZlclJlZl9jdXJyZW50LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVmLFxuICAgICAgICByZWZsb3dpbmc6IHJlZmxvd2luZ1JlZi5jdXJyZW50XG4gICAgfTtcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IG1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IG1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dERlZmF1bHRWYWx1ZSA9IHtcbiAgICBjbGFzc05hbWU6ICcnLFxuICAgIG5vZGVSZWY6IFJlYWN0LmNyZWF0ZVJlZigpXG59O1xuLyoqXG4gKiBDb250ZXh0IHRvIHBhc3MgYW5pbWF0aW9uIGNsYXNzTmFtZSB0byBNZXNzYWdlQmFyIGNvbXBvbmVudHNcbiAqIEBpbnRlcm5hbFxuICovIGV4cG9ydCBjb25zdCBNZXNzYWdlQmFyVHJhbnNpdGlvbkNvbnRleHRQcm92aWRlciA9IG1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dC5Qcm92aWRlcjtcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IHVzZU1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dCA9ICgpPT57XG4gICAgdmFyIF9SZWFjdF91c2VDb250ZXh0O1xuICAgIHJldHVybiAoX1JlYWN0X3VzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KG1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dCkpICE9PSBudWxsICYmIF9SZWFjdF91c2VDb250ZXh0ICE9PSB2b2lkIDAgPyBfUmVhY3RfdXNlQ29udGV4dCA6IG1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dERlZmF1bHRWYWx1ZTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QsIHVzZUlkLCB1c2VNZXJnZWRSZWZzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VBbm5vdW5jZV91bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgZ2V0SW50ZW50SWNvbiB9IGZyb20gJy4vZ2V0SW50ZW50SWNvbic7XG5pbXBvcnQgeyB1c2VNZXNzYWdlQmFyUmVmbG93IH0gZnJvbSAnLi91c2VNZXNzYWdlQmFyUmVmbG93JztcbmltcG9ydCB7IHVzZU1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHRzL21lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dCc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIE1lc3NhZ2VCYXIuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlTWVzc2FnZUJhclN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyTWVzc2FnZUJhcl91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgTWVzc2FnZUJhclxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIE1lc3NhZ2VCYXJcbiAqLyBleHBvcnQgY29uc3QgdXNlTWVzc2FnZUJhcl91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgbGF5b3V0ID0gJ2F1dG8nLCBpbnRlbnQgPSAnaW5mbycsIHBvbGl0ZW5lc3MsIHNoYXBlID0gJ3JvdW5kZWQnIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb21wdXRlZFBvbGl0ZW5lc3MgPSAocG9saXRlbmVzcyAhPT0gbnVsbCAmJiBwb2xpdGVuZXNzICE9PSB2b2lkIDAgPyBwb2xpdGVuZXNzIDogaW50ZW50ID09PSAnaW5mbycpID8gJ3BvbGl0ZScgOiAnYXNzZXJ0aXZlJztcbiAgICBjb25zdCBhdXRvUmVmbG93ID0gbGF5b3V0ID09PSAnYXV0byc7XG4gICAgY29uc3QgeyByZWY6IHJlZmxvd1JlZiwgcmVmbG93aW5nIH0gPSB1c2VNZXNzYWdlQmFyUmVmbG93KGF1dG9SZWZsb3cpO1xuICAgIGNvbnN0IGNvbXB1dGVkTGF5b3V0ID0gYXV0b1JlZmxvdyA/IHJlZmxvd2luZyA/ICdtdWx0aWxpbmUnIDogJ3NpbmdsZWxpbmUnIDogbGF5b3V0O1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lOiB0cmFuc2l0aW9uQ2xhc3NOYW1lLCBub2RlUmVmIH0gPSB1c2VNZXNzYWdlQmFyVHJhbnNpdGlvbkNvbnRleHQoKTtcbiAgICBjb25zdCBhY3Rpb25zUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGJvZHlSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgeyBhbm5vdW5jZSB9ID0gdXNlQW5ub3VuY2VfdW5zdGFibGUoKTtcbiAgICBjb25zdCB0aXRsZUlkID0gdXNlSWQoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgdmFyIF9ib2R5UmVmX2N1cnJlbnQsIF9hY3Rpb25zUmVmX2N1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGJvZHlNZXNzYWdlID0gKF9ib2R5UmVmX2N1cnJlbnQgPSBib2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9ib2R5UmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ib2R5UmVmX2N1cnJlbnQudGV4dENvbnRlbnQ7XG4gICAgICAgIGNvbnN0IGFjdGlvbnNNZXNzYWdlID0gKF9hY3Rpb25zUmVmX2N1cnJlbnQgPSBhY3Rpb25zUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hY3Rpb25zUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hY3Rpb25zUmVmX2N1cnJlbnQudGV4dENvbnRlbnQ7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgICAgICAgICBib2R5TWVzc2FnZSxcbiAgICAgICAgICAgIGFjdGlvbnNNZXNzYWdlXG4gICAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywnKTtcbiAgICAgICAgYW5ub3VuY2UobWVzc2FnZSwge1xuICAgICAgICAgICAgcG9saXRlOiBjb21wdXRlZFBvbGl0ZW5lc3MgPT09ICdwb2xpdGUnLFxuICAgICAgICAgICAgYWxlcnQ6IGNvbXB1dGVkUG9saXRlbmVzcyA9PT0gJ2Fzc2VydGl2ZSdcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBib2R5UmVmLFxuICAgICAgICBhY3Rpb25zUmVmLFxuICAgICAgICBhbm5vdW5jZSxcbiAgICAgICAgY29tcHV0ZWRQb2xpdGVuZXNzXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdicsXG4gICAgICAgICAgICBpY29uOiAnZGl2JyxcbiAgICAgICAgICAgIGJvdHRvbVJlZmxvd1NwYWNlcjogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICByZWY6IHVzZU1lcmdlZFJlZnMocmVmLCByZWZsb3dSZWYsIG5vZGVSZWYpLFxuICAgICAgICAgICAgcm9sZTogJ2dyb3VwJyxcbiAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiB0aXRsZUlkLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgaWNvbjogc2xvdC5vcHRpb25hbChwcm9wcy5pY29uLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdicsXG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogZ2V0SW50ZW50SWNvbihpbnRlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBib3R0b21SZWZsb3dTcGFjZXI6IHNsb3Qub3B0aW9uYWwocHJvcHMuYm90dG9tUmVmbG93U3BhY2VyLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6IGNvbXB1dGVkTGF5b3V0ID09PSAnbXVsdGlsaW5lJyxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgbGF5b3V0OiBjb21wdXRlZExheW91dCxcbiAgICAgICAgaW50ZW50LFxuICAgICAgICB0cmFuc2l0aW9uQ2xhc3NOYW1lLFxuICAgICAgICBhY3Rpb25zUmVmLFxuICAgICAgICBib2R5UmVmLFxuICAgICAgICB0aXRsZUlkLFxuICAgICAgICBzaGFwZVxuICAgIH07XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgbWVzc2FnZUJhckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgbWVzc2FnZUJhckNvbnRleHREZWZhdWx0VmFsdWUgPSB7XG4gICAgdGl0bGVJZDogJycsXG4gICAgbGF5b3V0OiAnc2luZ2xlbGluZScsXG4gICAgYWN0aW9uc1JlZjogUmVhY3QuY3JlYXRlUmVmKCksXG4gICAgYm9keVJlZjogUmVhY3QuY3JlYXRlUmVmKClcbn07XG5leHBvcnQgY29uc3QgTWVzc2FnZUJhckNvbnRleHRQcm92aWRlciA9IG1lc3NhZ2VCYXJDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGNvbnN0IHVzZU1lc3NhZ2VCYXJDb250ZXh0ID0gKCk9PntcbiAgICB2YXIgX1JlYWN0X3VzZUNvbnRleHQ7XG4gICAgcmV0dXJuIChfUmVhY3RfdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQobWVzc2FnZUJhckNvbnRleHQpKSAhPT0gbnVsbCAmJiBfUmVhY3RfdXNlQ29udGV4dCAhPT0gdm9pZCAwID8gX1JlYWN0X3VzZUNvbnRleHQgOiBtZXNzYWdlQmFyQ29udGV4dERlZmF1bHRWYWx1ZTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJDb250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9tZXNzYWdlQmFyQ29udGV4dCc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIE1lc3NhZ2VCYXJcbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyTWVzc2FnZUJhcl91bnN0YWJsZSA9IChzdGF0ZSwgY29udGV4dHMpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goTWVzc2FnZUJhckNvbnRleHRQcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogY29udGV4dHMubWVzc2FnZUJhcixcbiAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICBzdGF0ZS5pY29uICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5pY29uLCB7fSksXG4gICAgICAgICAgICAgICAgc3RhdGUucm9vdC5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICBzdGF0ZS5ib3R0b21SZWZsb3dTcGFjZXIgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmJvdHRvbVJlZmxvd1NwYWNlciwge30pXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0IHsgX19yZXNldFN0eWxlcywgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5leHBvcnQgY29uc3QgbWVzc2FnZUJhckNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktTWVzc2FnZUJhcicsXG4gIGljb246ICdmdWktTWVzc2FnZUJhcl9faWNvbicsXG4gIGJvdHRvbVJlZmxvd1NwYWNlcjogJ2Z1aS1NZXNzYWdlQmFyX19ib3R0b21SZWZsb3dTcGFjZXInXG59O1xuY29uc3QgdXNlUm9vdEJhc2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIyb3l4c2pcIiwgXCJyMXd1eXJod1wiLCBbXCIucjJveXhzant3aGl0ZS1zcGFjZTpub3dyYXA7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIDFmciBhdXRvIGF1dG87Z3JpZC10ZW1wbGF0ZS1yb3dzOjFmcjtncmlkLXRlbXBsYXRlLWFyZWFzOlxcXCJpY29uIGJvZHkgc2Vjb25kYXJ5QWN0aW9ucyBhY3Rpb25zXFxcIjtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxNKTtib3JkZXI6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKSBzb2xpZCB2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UxKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MzZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMyk7fVwiLCBcIi5yMXd1eXJod3t3aGl0ZS1zcGFjZTpub3dyYXA7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIDFmciBhdXRvIGF1dG87Z3JpZC10ZW1wbGF0ZS1yb3dzOjFmcjtncmlkLXRlbXBsYXRlLWFyZWFzOlxcXCJpY29uIGJvZHkgc2Vjb25kYXJ5QWN0aW9ucyBhY3Rpb25zXFxcIjtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsTSk7Ym9yZGVyOnZhcigtLXN0cm9rZVdpZHRoVGhpbikgc29saWQgdmFyKC0tY29sb3JOZXV0cmFsU3Ryb2tlMSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjM2cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsQmFja2dyb3VuZDMpO31cIl0pO1xuY29uc3QgdXNlSWNvbkJhc2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19yZXNldFN0eWxlcyhcInIxZGYxejMzXCIsIFwicml2bmZqY1wiLCBbXCIucjFkZjF6MzN7Z3JpZC1hcmVhOmljb247Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTUwMCk7bWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsUyk7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDMpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBcIi5yaXZuZmpje2dyaWQtYXJlYTppY29uO2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2U1MDApO21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmdIb3Jpem9udGFsUyk7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDMpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7fVwiXSk7XG5jb25zdCB1c2VSZWZsb3dTcGFjZXJCYXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyMXZ4NTkzblwiLCBudWxsLCBbXCIucjF2eDU5M257bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nVmVydGljYWxTKTtncmlkLWFyZWE6c2Vjb25kYXJ5QWN0aW9uczt9XCJdKTtcbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3RNdWx0aWxpbmU6IHtcbiAgICBIdWNlNzE6IFwiZjZqdWh0b1wiLFxuICAgIEJ0OTg0Z2o6IFwiZjFzMmxvdWpcIixcbiAgICB6OHRudXQ6IFwiZjFuZ2g3cGhcIixcbiAgICBCdWRsMWRxOiBcImYxN2cwdXF5XCIsXG4gICAgem9hMW96OiBcImYxdzdvbHk3XCJcbiAgfSxcbiAgc2Vjb25kYXJ5QWN0aW9uc011bHRpbGluZToge1xuICAgIEJyZjFwODA6IFwiZjFlOHh4djlcIixcbiAgICBCNm9mM2phOiBcImYxZ2F4YmZ3XCIsXG4gICAganJhcGt5OiBcImZxY2p5M2JcIixcbiAgICB0MjFjcTA6IFtcImZpYmp5Z2VcIiwgXCJmOXlzemR4XCJdXG4gIH0sXG4gIHNxdWFyZToge1xuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZva3I3NzlcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mNmp1aHRve3doaXRlLXNwYWNlOm5vcm1hbDt9XCIsIFwiLmYxczJsb3Vqe2FsaWduLWl0ZW1zOnN0YXJ0O31cIiwgXCIuZjFuZ2g3cGh7cGFkZGluZy10b3A6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsTU51ZGdlKTt9XCIsIFwiLmYxN2cwdXF5e2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIDFmciBhdXRvO31cIiwgXCIuZjF3N29seTd7Z3JpZC10ZW1wbGF0ZS1hcmVhczpcXFwiaWNvbiBib2R5IGFjdGlvbnNcXFwiIFxcXCJzZWNvbmRhcnlBY3Rpb25zIHNlY29uZGFyeUFjdGlvbnMgc2Vjb25kYXJ5QWN0aW9uc1xcXCI7fVwiLCBcIi5mMWU4eHh2OXtqdXN0aWZ5LWNvbnRlbnQ6ZW5kO31cIiwgXCIuZjFnYXhiZnd7bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nVmVydGljYWxNTnVkZ2UpO31cIiwgXCIuZnFjankzYnttYXJnaW4tYm90dG9tOnZhcigtLXNwYWNpbmdWZXJ0aWNhbFMpO31cIiwgXCIuZmlianlnZXttYXJnaW4tcmlnaHQ6MHB4O31cIiwgXCIuZjl5c3pkeHttYXJnaW4tbGVmdDowcHg7fVwiLCBbXCIuZm9rcjc3OXtib3JkZXItcmFkaXVzOjA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV1dXG59KTtcbmNvbnN0IHVzZUljb25JbnRlbnRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBpbmZvOiB7fSxcbiAgZXJyb3I6IHtcbiAgICBzajU1emQ6IFwiZjFjYTl3elwiXG4gIH0sXG4gIHdhcm5pbmc6IHtcbiAgICBzajU1emQ6IFwiZjE0YTRjdmVcIlxuICB9LFxuICBzdWNjZXNzOiB7XG4gICAgc2o1NXpkOiBcImYzNnJyYTZcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMWNhOXd6e2NvbG9yOnZhcigtLWNvbG9yU3RhdHVzRGFuZ2VyRm9yZWdyb3VuZDEpO31cIiwgXCIuZjE0YTRjdmV7Y29sb3I6dmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nRm9yZWdyb3VuZDMpO31cIiwgXCIuZjM2cnJhNntjb2xvcjp2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NGb3JlZ3JvdW5kMSk7fVwiXVxufSk7XG5jb25zdCB1c2VSb290SW50ZW50U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgaW5mbzoge30sXG4gIGVycm9yOiB7XG4gICAgRGUzcHpxOiBcImYxZW9uN2pqXCIsXG4gICAgZzJ1M3dlOiBcImYxZjhkdnI3XCIsXG4gICAgaDNjNXJtOiBbXCJmMWcxaWptb1wiLCBcImYxbnhhY2J0XCJdLFxuICAgIEI5eGF2MGc6IFwiZm8yNXExalwiLFxuICAgIHpoand5MzogW1wiZjFueGFjYnRcIiwgXCJmMWcxaWptb1wiXVxuICB9LFxuICB3YXJuaW5nOiB7XG4gICAgRGUzcHpxOiBcImYxM2Z0emlqXCIsXG4gICAgZzJ1M3dlOiBcImZyZDF5cHhcIixcbiAgICBoM2M1cm06IFtcImYxZ3lqcm1hXCIsIFwiZjE4cWQ1eHpcIl0sXG4gICAgQjl4YXYwZzogXCJmcXlxdHJ0XCIsXG4gICAgemhqd3kzOiBbXCJmMThxZDV4elwiLCBcImYxZ3lqcm1hXCJdXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBEZTNwenE6IFwiZjY0dGhjbVwiLFxuICAgIGcydTN3ZTogXCJmMWI0dTd2XCIsXG4gICAgaDNjNXJtOiBbXCJmMW55ZDJiMVwiLCBcImY3MHYzb21cIl0sXG4gICAgQjl4YXYwZzogXCJmazE3M3ZvXCIsXG4gICAgemhqd3kzOiBbXCJmNzB2M29tXCIsIFwiZjFueWQyYjFcIl1cbiAgfVxufSwge1xuICBkOiBbXCIuZjFlb243amp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c0RhbmdlckJhY2tncm91bmQxKTt9XCIsIFwiLmYxZjhkdnI3e2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JTdGF0dXNEYW5nZXJCb3JkZXIxKTt9XCIsIFwiLmYxZzFpam1ve2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c0RhbmdlckJvcmRlcjEpO31cIiwgXCIuZjFueGFjYnR7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JTdGF0dXNEYW5nZXJCb3JkZXIxKTt9XCIsIFwiLmZvMjVxMWp7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c0RhbmdlckJvcmRlcjEpO31cIiwgXCIuZjEzZnR6aWp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c1dhcm5pbmdCYWNrZ3JvdW5kMSk7fVwiLCBcIi5mcmQxeXB4e2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nQm9yZGVyMSk7fVwiLCBcIi5mMWd5anJtYXtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JTdGF0dXNXYXJuaW5nQm9yZGVyMSk7fVwiLCBcIi5mMThxZDV4entib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c1dhcm5pbmdCb3JkZXIxKTt9XCIsIFwiLmZxeXF0cnR7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c1dhcm5pbmdCb3JkZXIxKTt9XCIsIFwiLmY2NHRoY217YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclN0YXR1c1N1Y2Nlc3NCYWNrZ3JvdW5kMSk7fVwiLCBcIi5mMWI0dTd2e2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JTdGF0dXNTdWNjZXNzQm9yZGVyMSk7fVwiLCBcIi5mMW55ZDJiMXtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JTdGF0dXNTdWNjZXNzQm9yZGVyMSk7fVwiLCBcIi5mNzB2M29te2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yU3RhdHVzU3VjY2Vzc0JvcmRlcjEpO31cIiwgXCIuZmsxNzN2b3tib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yU3RhdHVzU3VjY2Vzc0JvcmRlcjEpO31cIl1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBNZXNzYWdlQmFyIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlTWVzc2FnZUJhclN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCByb290QmFzZVN0eWxlcyA9IHVzZVJvb3RCYXNlU3R5bGVzKCk7XG4gIGNvbnN0IGljb25CYXNlU3R5bGVzID0gdXNlSWNvbkJhc2VTdHlsZXMoKTtcbiAgY29uc3QgaWNvbkludGVudFN0eWxlcyA9IHVzZUljb25JbnRlbnRTdHlsZXMoKTtcbiAgY29uc3Qgcm9vdEludGVudFN0eWxlcyA9IHVzZVJvb3RJbnRlbnRTdHlsZXMoKTtcbiAgY29uc3QgcmVmbG93U3BhY2VyU3R5bGVzID0gdXNlUmVmbG93U3BhY2VyQmFzZVN0eWxlcygpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMobWVzc2FnZUJhckNsYXNzTmFtZXMucm9vdCwgcm9vdEJhc2VTdHlsZXMsIHN0YXRlLmxheW91dCA9PT0gJ211bHRpbGluZScgJiYgc3R5bGVzLnJvb3RNdWx0aWxpbmUsIHN0YXRlLnNoYXBlID09PSAnc3F1YXJlJyAmJiBzdHlsZXMuc3F1YXJlLCByb290SW50ZW50U3R5bGVzW3N0YXRlLmludGVudF0sIHN0YXRlLnRyYW5zaXRpb25DbGFzc05hbWUsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmljb24pIHtcbiAgICBzdGF0ZS5pY29uLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhtZXNzYWdlQmFyQ2xhc3NOYW1lcy5pY29uLCBpY29uQmFzZVN0eWxlcywgaWNvbkludGVudFN0eWxlc1tzdGF0ZS5pbnRlbnRdLCBzdGF0ZS5pY29uLmNsYXNzTmFtZSk7XG4gIH1cbiAgaWYgKHN0YXRlLmJvdHRvbVJlZmxvd1NwYWNlcikge1xuICAgIHN0YXRlLmJvdHRvbVJlZmxvd1NwYWNlci5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMobWVzc2FnZUJhckNsYXNzTmFtZXMuYm90dG9tUmVmbG93U3BhY2VyLCByZWZsb3dTcGFjZXJTdHlsZXMpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VNZXNzYWdlQmFyU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZnVuY3Rpb24gdXNlTWVzc2FnZUJhckNvbnRleHRWYWx1ZV91bnN0YWJsZShzdGF0ZSkge1xuICAgIGNvbnN0IHsgbGF5b3V0LCBhY3Rpb25zUmVmLCBib2R5UmVmLCB0aXRsZUlkIH0gPSBzdGF0ZTtcbiAgICBjb25zdCBtZXNzYWdlQmFyQ29udGV4dCA9IFJlYWN0LnVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICBsYXlvdXQsXG4gICAgICAgICAgICBhY3Rpb25zUmVmLFxuICAgICAgICAgICAgYm9keVJlZixcbiAgICAgICAgICAgIHRpdGxlSWRcbiAgICAgICAgfSksIFtcbiAgICAgICAgbGF5b3V0LFxuICAgICAgICBhY3Rpb25zUmVmLFxuICAgICAgICBib2R5UmVmLFxuICAgICAgICB0aXRsZUlkXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVzc2FnZUJhcjogbWVzc2FnZUJhckNvbnRleHRcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyB1c2VNZXNzYWdlQmFyX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VNZXNzYWdlQmFyJztcbmltcG9ydCB7IHJlbmRlck1lc3NhZ2VCYXJfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlck1lc3NhZ2VCYXInO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUJhclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVzc2FnZUJhclN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUJhckNvbnRleHRWYWx1ZV91bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVzc2FnZUJhckNvbnRleHRWYWx1ZXMnO1xuLyoqXG4gKiBNZXNzYWdlQmFyIGNvbXBvbmVudFxuICovIGV4cG9ydCBjb25zdCBNZXNzYWdlQmFyID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlTWVzc2FnZUJhcl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VNZXNzYWdlQmFyU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUoJ3VzZU1lc3NhZ2VCYXJTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlck1lc3NhZ2VCYXJfdW5zdGFibGUoc3RhdGUsIHVzZU1lc3NhZ2VCYXJDb250ZXh0VmFsdWVfdW5zdGFibGUoc3RhdGUpKTtcbn0pO1xuTWVzc2FnZUJhci5kaXNwbGF5TmFtZSA9ICdNZXNzYWdlQmFyJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgc2xvdCwgdXNlTWVyZ2VkUmVmcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUJhckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9tZXNzYWdlQmFyQ29udGV4dCc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIE1lc3NhZ2VCYXJCb2R5LlxuICpcbiAqIFRoZSByZXR1cm5lZCBzdGF0ZSBjYW4gYmUgbW9kaWZpZWQgd2l0aCBob29rcyBzdWNoIGFzIHVzZU1lc3NhZ2VCYXJCb2R5U3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJNZXNzYWdlQmFyQm9keV91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgTWVzc2FnZUJhckJvZHlcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBNZXNzYWdlQmFyQm9keVxuICovIGV4cG9ydCBjb25zdCB1c2VNZXNzYWdlQmFyQm9keV91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgYm9keVJlZiB9ID0gdXNlTWVzc2FnZUJhckNvbnRleHQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnZGl2J1xuICAgICAgICB9LFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2RpdicsIHtcbiAgICAgICAgICAgIHJlZjogdXNlTWVyZ2VkUmVmcyhyZWYsIGJvZHlSZWYpLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIE1lc3NhZ2VCYXJCb2R5XG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlck1lc3NhZ2VCYXJCb2R5X3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KTtcbn07XG4iLCJpbXBvcnQgeyBfX3Jlc2V0U3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMsIHR5cG9ncmFwaHlTdHlsZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IG1lc3NhZ2VCYXJCb2R5Q2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1NZXNzYWdlQmFyQm9keSdcbn07XG5jb25zdCB1c2VSb290QmFzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3Jlc2V0U3R5bGVzKFwicnRhdHEyYlwiLCBcInJlMnJhcnlcIiwgW1wiLnJ0YXRxMmJ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0QmFzZTMwMCk7Z3JpZC1hcmVhOmJvZHk7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE0pO31cIiwgXCIucmUycmFyeXtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5QmFzZSk7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTtncmlkLWFyZWE6Ym9keTtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2luZ0hvcml6b250YWxNKTt9XCJdKTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgTWVzc2FnZUJhckJvZHkgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZXNzYWdlQmFyQm9keVN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCByb290QmFzZVN0eWxlcyA9IHVzZVJvb3RCYXNlU3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKG1lc3NhZ2VCYXJCb2R5Q2xhc3NOYW1lcy5yb290LCByb290QmFzZVN0eWxlcywgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlTWVzc2FnZUJhckJvZHlTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUJhckJvZHlfdW5zdGFibGUgfSBmcm9tICcuL3VzZU1lc3NhZ2VCYXJCb2R5JztcbmltcG9ydCB7IHJlbmRlck1lc3NhZ2VCYXJCb2R5X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJNZXNzYWdlQmFyQm9keSc7XG5pbXBvcnQgeyB1c2VNZXNzYWdlQmFyQm9keVN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVzc2FnZUJhckJvZHlTdHlsZXMuc3R5bGVzJztcbi8qKlxuICogTWVzc2FnZUJhckJvZHkgY29tcG9uZW50XG4gKi8gZXhwb3J0IGNvbnN0IE1lc3NhZ2VCYXJCb2R5ID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlTWVzc2FnZUJhckJvZHlfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlTWVzc2FnZUJhckJvZHlTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlTWVzc2FnZUJhckJvZHlTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlck1lc3NhZ2VCYXJCb2R5X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuTWVzc2FnZUJhckJvZHkuZGlzcGxheU5hbWUgPSAnTWVzc2FnZUJhckJvZHknO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIE1lc3NhZ2VCYXJHcm91cC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VNZXNzYWdlQmFyR3JvdXBTdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlck1lc3NhZ2VCYXJHcm91cF91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgTWVzc2FnZUJhckdyb3VwXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgTWVzc2FnZUJhckdyb3VwXG4gKi8gZXhwb3J0IGNvbnN0IHVzZU1lc3NhZ2VCYXJHcm91cF91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2gocHJvcHMuY2hpbGRyZW4sIChjKT0+e1xuICAgICAgICAgICAgaWYgKCFSZWFjdC5pc1ZhbGlkRWxlbWVudChjKSB8fCBjLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWVzc2FnZUJhckdyb3VwOiBjaGlsZHJlbiBtdXN0IGJlIHZhbGlkIE1lc3NhZ2VCYXIgY29tcG9uZW50cy4gUGxlYXNlIGVuc3VyZSB5b3UncmUgbm90IHVzaW5nIGZyYWdtZW50cy4gXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdmFyIF9wcm9wc19jaGlsZHJlbjtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcCgoX3Byb3BzX2NoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4pICE9PSBudWxsICYmIF9wcm9wc19jaGlsZHJlbiAhPT0gdm9pZCAwID8gX3Byb3BzX2NoaWxkcmVuIDogW10sIChjKT0+UmVhY3QuaXNWYWxpZEVsZW1lbnQoYykgJiYgYy50eXBlICE9PSBSZWFjdC5GcmFnbWVudCA/IGMgOiBudWxsKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgdmFyIF9wcm9wc19hbmltYXRlO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIGFuaW1hdGU6IChfcHJvcHNfYW5pbWF0ZSA9IHByb3BzLmFuaW1hdGUpICE9PSBudWxsICYmIF9wcm9wc19hbmltYXRlICE9PSB2b2lkIDAgPyBfcHJvcHNfYW5pbWF0ZSA6ICdleGl0LW9ubHknLFxuICAgICAgICBlbnRlclN0eWxlczogJycsXG4gICAgICAgIGV4aXRTdHlsZXM6ICcnXG4gICAgfTtcbn07XG4iLCJmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YodCwgZSkge1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0LCBlKSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fID0gZSwgdDtcbiAgfSwgX3NldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZXhwb3J0IHsgX3NldFByb3RvdHlwZU9mIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmZ1bmN0aW9uIF9pbmhlcml0c0xvb3NlKHQsIG8pIHtcbiAgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlKSwgdC5wcm90b3R5cGUuY29uc3RydWN0b3IgPSB0LCBzZXRQcm90b3R5cGVPZih0LCBvKTtcbn1cbmV4cG9ydCB7IF9pbmhlcml0c0xvb3NlIGFzIGRlZmF1bHQgfTsiLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJztcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdFByb3BUeXBlc1NlY3JldDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uKCkge31cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQoKSB7fVxuZW1wdHlGdW5jdGlvbldpdGhSZXNldC5yZXNldFdhcm5pbmdDYWNoZSA9IGVtcHR5RnVuY3Rpb247XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIHNoaW0ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICBpZiAoc2VjcmV0ID09PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgLy8gSXQgaXMgc3RpbGwgc2FmZSB3aGVuIGNhbGxlZCBmcm9tIFJlYWN0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB0aHJvdyBlcnI7XG4gIH07XG4gIHNoaW0uaXNSZXF1aXJlZCA9IHNoaW07XG4gIGZ1bmN0aW9uIGdldFNoaW0oKSB7XG4gICAgcmV0dXJuIHNoaW07XG4gIH07XG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogc2hpbSxcbiAgICBiaWdpbnQ6IHNoaW0sXG4gICAgYm9vbDogc2hpbSxcbiAgICBmdW5jOiBzaGltLFxuICAgIG51bWJlcjogc2hpbSxcbiAgICBvYmplY3Q6IHNoaW0sXG4gICAgc3RyaW5nOiBzaGltLFxuICAgIHN5bWJvbDogc2hpbSxcblxuICAgIGFueTogc2hpbSxcbiAgICBhcnJheU9mOiBnZXRTaGltLFxuICAgIGVsZW1lbnQ6IHNoaW0sXG4gICAgZWxlbWVudFR5cGU6IHNoaW0sXG4gICAgaW5zdGFuY2VPZjogZ2V0U2hpbSxcbiAgICBub2RlOiBzaGltLFxuICAgIG9iamVjdE9mOiBnZXRTaGltLFxuICAgIG9uZU9mOiBnZXRTaGltLFxuICAgIG9uZU9mVHlwZTogZ2V0U2hpbSxcbiAgICBzaGFwZTogZ2V0U2hpbSxcbiAgICBleGFjdDogZ2V0U2hpbSxcblxuICAgIGNoZWNrUHJvcFR5cGVzOiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LFxuICAgIHJlc2V0V2FybmluZ0NhY2hlOiBlbXB0eUZ1bmN0aW9uXG4gIH07XG5cbiAgUmVhY3RQcm9wVHlwZXMuUHJvcFR5cGVzID0gUmVhY3RQcm9wVHlwZXM7XG5cbiAgcmV0dXJuIFJlYWN0UHJvcFR5cGVzO1xufTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IGRldmVsb3BtZW50IGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIHZhciB0aHJvd09uRGlyZWN0QWNjZXNzID0gdHJ1ZTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzJykoUmVhY3RJcy5pc0VsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpO1xufSBlbHNlIHtcbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgcHJvZHVjdGlvbiBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zJykoKTtcbn1cbiIsImV4cG9ydCBkZWZhdWx0IHtcbiAgZGlzYWJsZWQ6IGZhbHNlXG59OyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZGVmYXVsdCBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpOyIsImV4cG9ydCB2YXIgZm9yY2VSZWZsb3cgPSBmdW5jdGlvbiBmb3JjZVJlZmxvdyhub2RlKSB7XG4gIHJldHVybiBub2RlLnNjcm9sbFRvcDtcbn07IiwiaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlXCI7XG5pbXBvcnQgX2luaGVyaXRzTG9vc2UgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzTG9vc2VcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgY29uZmlnIGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IHRpbWVvdXRzU2hhcGUgfSBmcm9tICcuL3V0aWxzL1Byb3BUeXBlcyc7XG5pbXBvcnQgVHJhbnNpdGlvbkdyb3VwQ29udGV4dCBmcm9tICcuL1RyYW5zaXRpb25Hcm91cENvbnRleHQnO1xuaW1wb3J0IHsgZm9yY2VSZWZsb3cgfSBmcm9tICcuL3V0aWxzL3JlZmxvdyc7XG5leHBvcnQgdmFyIFVOTU9VTlRFRCA9ICd1bm1vdW50ZWQnO1xuZXhwb3J0IHZhciBFWElURUQgPSAnZXhpdGVkJztcbmV4cG9ydCB2YXIgRU5URVJJTkcgPSAnZW50ZXJpbmcnO1xuZXhwb3J0IHZhciBFTlRFUkVEID0gJ2VudGVyZWQnO1xuZXhwb3J0IHZhciBFWElUSU5HID0gJ2V4aXRpbmcnO1xuLyoqXG4gKiBUaGUgVHJhbnNpdGlvbiBjb21wb25lbnQgbGV0cyB5b3UgZGVzY3JpYmUgYSB0cmFuc2l0aW9uIGZyb20gb25lIGNvbXBvbmVudFxuICogc3RhdGUgdG8gYW5vdGhlciBfb3ZlciB0aW1lXyB3aXRoIGEgc2ltcGxlIGRlY2xhcmF0aXZlIEFQSS4gTW9zdCBjb21tb25seVxuICogaXQncyB1c2VkIHRvIGFuaW1hdGUgdGhlIG1vdW50aW5nIGFuZCB1bm1vdW50aW5nIG9mIGEgY29tcG9uZW50LCBidXQgY2FuIGFsc29cbiAqIGJlIHVzZWQgdG8gZGVzY3JpYmUgaW4tcGxhY2UgdHJhbnNpdGlvbiBzdGF0ZXMgYXMgd2VsbC5cbiAqXG4gKiAtLS1cbiAqXG4gKiAqKk5vdGUqKjogYFRyYW5zaXRpb25gIGlzIGEgcGxhdGZvcm0tYWdub3N0aWMgYmFzZSBjb21wb25lbnQuIElmIHlvdSdyZSB1c2luZ1xuICogdHJhbnNpdGlvbnMgaW4gQ1NTLCB5b3UnbGwgcHJvYmFibHkgd2FudCB0byB1c2VcbiAqIFtgQ1NTVHJhbnNpdGlvbmBdKGh0dHBzOi8vcmVhY3Rjb21tdW5pdHkub3JnL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvY3NzLXRyYW5zaXRpb24pXG4gKiBpbnN0ZWFkLiBJdCBpbmhlcml0cyBhbGwgdGhlIGZlYXR1cmVzIG9mIGBUcmFuc2l0aW9uYCwgYnV0IGNvbnRhaW5zXG4gKiBhZGRpdGlvbmFsIGZlYXR1cmVzIG5lY2Vzc2FyeSB0byBwbGF5IG5pY2Ugd2l0aCBDU1MgdHJhbnNpdGlvbnMgKGhlbmNlIHRoZVxuICogbmFtZSBvZiB0aGUgY29tcG9uZW50KS5cbiAqXG4gKiAtLS1cbiAqXG4gKiBCeSBkZWZhdWx0IHRoZSBgVHJhbnNpdGlvbmAgY29tcG9uZW50IGRvZXMgbm90IGFsdGVyIHRoZSBiZWhhdmlvciBvZiB0aGVcbiAqIGNvbXBvbmVudCBpdCByZW5kZXJzLCBpdCBvbmx5IHRyYWNrcyBcImVudGVyXCIgYW5kIFwiZXhpdFwiIHN0YXRlcyBmb3IgdGhlXG4gKiBjb21wb25lbnRzLiBJdCdzIHVwIHRvIHlvdSB0byBnaXZlIG1lYW5pbmcgYW5kIGVmZmVjdCB0byB0aG9zZSBzdGF0ZXMuIEZvclxuICogZXhhbXBsZSB3ZSBjYW4gYWRkIHN0eWxlcyB0byBhIGNvbXBvbmVudCB3aGVuIGl0IGVudGVycyBvciBleGl0czpcbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICdyZWFjdC10cmFuc2l0aW9uLWdyb3VwJztcbiAqXG4gKiBjb25zdCBkdXJhdGlvbiA9IDMwMDtcbiAqXG4gKiBjb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gKiAgIHRyYW5zaXRpb246IGBvcGFjaXR5ICR7ZHVyYXRpb259bXMgZWFzZS1pbi1vdXRgLFxuICogICBvcGFjaXR5OiAwLFxuICogfVxuICpcbiAqIGNvbnN0IHRyYW5zaXRpb25TdHlsZXMgPSB7XG4gKiAgIGVudGVyaW5nOiB7IG9wYWNpdHk6IDEgfSxcbiAqICAgZW50ZXJlZDogIHsgb3BhY2l0eTogMSB9LFxuICogICBleGl0aW5nOiAgeyBvcGFjaXR5OiAwIH0sXG4gKiAgIGV4aXRlZDogIHsgb3BhY2l0eTogMCB9LFxuICogfTtcbiAqXG4gKiBjb25zdCBGYWRlID0gKHsgaW46IGluUHJvcCB9KSA9PiAoXG4gKiAgIDxUcmFuc2l0aW9uIGluPXtpblByb3B9IHRpbWVvdXQ9e2R1cmF0aW9ufT5cbiAqICAgICB7c3RhdGUgPT4gKFxuICogICAgICAgPGRpdiBzdHlsZT17e1xuICogICAgICAgICAuLi5kZWZhdWx0U3R5bGUsXG4gKiAgICAgICAgIC4uLnRyYW5zaXRpb25TdHlsZXNbc3RhdGVdXG4gKiAgICAgICB9fT5cbiAqICAgICAgICAgSSdtIGEgZmFkZSBUcmFuc2l0aW9uIVxuICogICAgICAgPC9kaXY+XG4gKiAgICAgKX1cbiAqICAgPC9UcmFuc2l0aW9uPlxuICogKTtcbiAqIGBgYFxuICpcbiAqIFRoZXJlIGFyZSA0IG1haW4gc3RhdGVzIGEgVHJhbnNpdGlvbiBjYW4gYmUgaW46XG4gKiAgLSBgJ2VudGVyaW5nJ2BcbiAqICAtIGAnZW50ZXJlZCdgXG4gKiAgLSBgJ2V4aXRpbmcnYFxuICogIC0gYCdleGl0ZWQnYFxuICpcbiAqIFRyYW5zaXRpb24gc3RhdGUgaXMgdG9nZ2xlZCB2aWEgdGhlIGBpbmAgcHJvcC4gV2hlbiBgdHJ1ZWAgdGhlIGNvbXBvbmVudFxuICogYmVnaW5zIHRoZSBcIkVudGVyXCIgc3RhZ2UuIER1cmluZyB0aGlzIHN0YWdlLCB0aGUgY29tcG9uZW50IHdpbGwgc2hpZnQgZnJvbVxuICogaXRzIGN1cnJlbnQgdHJhbnNpdGlvbiBzdGF0ZSwgdG8gYCdlbnRlcmluZydgIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlXG4gKiB0cmFuc2l0aW9uIGFuZCB0aGVuIHRvIHRoZSBgJ2VudGVyZWQnYCBzdGFnZSBvbmNlIGl0J3MgY29tcGxldGUuIExldCdzIHRha2VcbiAqIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSAod2UnbGwgdXNlIHRoZVxuICogW3VzZVN0YXRlXShodHRwczovL3JlYWN0anMub3JnL2RvY3MvaG9va3MtcmVmZXJlbmNlLmh0bWwjdXNlc3RhdGUpIGhvb2spOlxuICpcbiAqIGBgYGpzeFxuICogZnVuY3Rpb24gQXBwKCkge1xuICogICBjb25zdCBbaW5Qcm9wLCBzZXRJblByb3BdID0gdXNlU3RhdGUoZmFsc2UpO1xuICogICByZXR1cm4gKFxuICogICAgIDxkaXY+XG4gKiAgICAgICA8VHJhbnNpdGlvbiBpbj17aW5Qcm9wfSB0aW1lb3V0PXs1MDB9PlxuICogICAgICAgICB7c3RhdGUgPT4gKFxuICogICAgICAgICAgIC8vIC4uLlxuICogICAgICAgICApfVxuICogICAgICAgPC9UcmFuc2l0aW9uPlxuICogICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRJblByb3AodHJ1ZSl9PlxuICogICAgICAgICBDbGljayB0byBFbnRlclxuICogICAgICAgPC9idXR0b24+XG4gKiAgICAgPC9kaXY+XG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBXaGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCB0aGUgY29tcG9uZW50IHdpbGwgc2hpZnQgdG8gdGhlIGAnZW50ZXJpbmcnYCBzdGF0ZVxuICogYW5kIHN0YXkgdGhlcmUgZm9yIDUwMG1zICh0aGUgdmFsdWUgb2YgYHRpbWVvdXRgKSBiZWZvcmUgaXQgZmluYWxseSBzd2l0Y2hlc1xuICogdG8gYCdlbnRlcmVkJ2AuXG4gKlxuICogV2hlbiBgaW5gIGlzIGBmYWxzZWAgdGhlIHNhbWUgdGhpbmcgaGFwcGVucyBleGNlcHQgdGhlIHN0YXRlIG1vdmVzIGZyb21cbiAqIGAnZXhpdGluZydgIHRvIGAnZXhpdGVkJ2AuXG4gKi9cblxudmFyIFRyYW5zaXRpb24gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzTG9vc2UoVHJhbnNpdGlvbiwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVHJhbnNpdGlvbihwcm9wcywgY29udGV4dCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KSB8fCB0aGlzO1xuICAgIHZhciBwYXJlbnRHcm91cCA9IGNvbnRleHQ7IC8vIEluIHRoZSBjb250ZXh0IG9mIGEgVHJhbnNpdGlvbkdyb3VwIGFsbCBlbnRlcnMgYXJlIHJlYWxseSBhcHBlYXJzXG5cbiAgICB2YXIgYXBwZWFyID0gcGFyZW50R3JvdXAgJiYgIXBhcmVudEdyb3VwLmlzTW91bnRpbmcgPyBwcm9wcy5lbnRlciA6IHByb3BzLmFwcGVhcjtcbiAgICB2YXIgaW5pdGlhbFN0YXR1cztcbiAgICBfdGhpcy5hcHBlYXJTdGF0dXMgPSBudWxsO1xuXG4gICAgaWYgKHByb3BzLmluKSB7XG4gICAgICBpZiAoYXBwZWFyKSB7XG4gICAgICAgIGluaXRpYWxTdGF0dXMgPSBFWElURUQ7XG4gICAgICAgIF90aGlzLmFwcGVhclN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVOVEVSRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9wcy51bm1vdW50T25FeGl0IHx8IHByb3BzLm1vdW50T25FbnRlcikge1xuICAgICAgICBpbml0aWFsU3RhdHVzID0gVU5NT1VOVEVEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVYSVRFRDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHN0YXR1czogaW5pdGlhbFN0YXR1c1xuICAgIH07XG4gICAgX3RoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBUcmFuc2l0aW9uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhfcmVmLCBwcmV2U3RhdGUpIHtcbiAgICB2YXIgbmV4dEluID0gX3JlZi5pbjtcblxuICAgIGlmIChuZXh0SW4gJiYgcHJldlN0YXRlLnN0YXR1cyA9PT0gVU5NT1VOVEVEKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IEVYSVRFRFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgLy8gICBsZXQgbmV4dFN0YXR1cyA9IG51bGxcbiAgLy8gICBpZiAocHJldlByb3BzICE9PSB0aGlzLnByb3BzKSB7XG4gIC8vICAgICBjb25zdCB7IHN0YXR1cyB9ID0gdGhpcy5zdGF0ZVxuICAvLyAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgLy8gICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gIC8vICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0gZWxzZSB7XG4gIC8vICAgICAgIGlmIChzdGF0dXMgPT09IEVOVEVSSU5HIHx8IHN0YXR1cyA9PT0gRU5URVJFRCkge1xuICAvLyAgICAgICAgIG5leHRTdGF0dXMgPSBFWElUSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHsgbmV4dFN0YXR1cyB9XG4gIC8vIH1cbiAgO1xuXG4gIHZhciBfcHJvdG8gPSBUcmFuc2l0aW9uLnByb3RvdHlwZTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXR1cyh0cnVlLCB0aGlzLmFwcGVhclN0YXR1cyk7XG4gIH07XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICB2YXIgbmV4dFN0YXR1cyA9IG51bGw7XG5cbiAgICBpZiAocHJldlByb3BzICE9PSB0aGlzLnByb3BzKSB7XG4gICAgICB2YXIgc3RhdHVzID0gdGhpcy5zdGF0ZS5zdGF0dXM7XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLmluKSB7XG4gICAgICAgIGlmIChzdGF0dXMgIT09IEVOVEVSSU5HICYmIHN0YXR1cyAhPT0gRU5URVJFRCkge1xuICAgICAgICAgIG5leHRTdGF0dXMgPSBFTlRFUklORztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gRU5URVJJTkcgfHwgc3RhdHVzID09PSBFTlRFUkVEKSB7XG4gICAgICAgICAgbmV4dFN0YXR1cyA9IEVYSVRJTkc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVN0YXR1cyhmYWxzZSwgbmV4dFN0YXR1cyk7XG4gIH07XG5cbiAgX3Byb3RvLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5jYW5jZWxOZXh0Q2FsbGJhY2soKTtcbiAgfTtcblxuICBfcHJvdG8uZ2V0VGltZW91dHMgPSBmdW5jdGlvbiBnZXRUaW1lb3V0cygpIHtcbiAgICB2YXIgdGltZW91dCA9IHRoaXMucHJvcHMudGltZW91dDtcbiAgICB2YXIgZXhpdCwgZW50ZXIsIGFwcGVhcjtcbiAgICBleGl0ID0gZW50ZXIgPSBhcHBlYXIgPSB0aW1lb3V0O1xuXG4gICAgaWYgKHRpbWVvdXQgIT0gbnVsbCAmJiB0eXBlb2YgdGltZW91dCAhPT0gJ251bWJlcicpIHtcbiAgICAgIGV4aXQgPSB0aW1lb3V0LmV4aXQ7XG4gICAgICBlbnRlciA9IHRpbWVvdXQuZW50ZXI7IC8vIFRPRE86IHJlbW92ZSBmYWxsYmFjayBmb3IgbmV4dCBtYWpvclxuXG4gICAgICBhcHBlYXIgPSB0aW1lb3V0LmFwcGVhciAhPT0gdW5kZWZpbmVkID8gdGltZW91dC5hcHBlYXIgOiBlbnRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXhpdDogZXhpdCxcbiAgICAgIGVudGVyOiBlbnRlcixcbiAgICAgIGFwcGVhcjogYXBwZWFyXG4gICAgfTtcbiAgfTtcblxuICBfcHJvdG8udXBkYXRlU3RhdHVzID0gZnVuY3Rpb24gdXBkYXRlU3RhdHVzKG1vdW50aW5nLCBuZXh0U3RhdHVzKSB7XG4gICAgaWYgKG1vdW50aW5nID09PSB2b2lkIDApIHtcbiAgICAgIG1vdW50aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKG5leHRTdGF0dXMgIT09IG51bGwpIHtcbiAgICAgIC8vIG5leHRTdGF0dXMgd2lsbCBhbHdheXMgYmUgRU5URVJJTkcgb3IgRVhJVElORy5cbiAgICAgIHRoaXMuY2FuY2VsTmV4dENhbGxiYWNrKCk7XG5cbiAgICAgIGlmIChuZXh0U3RhdHVzID09PSBFTlRFUklORykge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy51bm1vdW50T25FeGl0IHx8IHRoaXMucHJvcHMubW91bnRPbkVudGVyKSB7XG4gICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnByb3BzLm5vZGVSZWYgPyB0aGlzLnByb3BzLm5vZGVSZWYuY3VycmVudCA6IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpOyAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY3Rqcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL3B1bGwvNzQ5XG4gICAgICAgICAgLy8gV2l0aCB1bm1vdW50T25FeGl0IG9yIG1vdW50T25FbnRlciwgdGhlIGVudGVyIGFuaW1hdGlvbiBzaG91bGQgaGFwcGVuIGF0IHRoZSB0cmFuc2l0aW9uIGJldHdlZW4gYGV4aXRlZGAgYW5kIGBlbnRlcmluZ2AuXG4gICAgICAgICAgLy8gVG8gbWFrZSB0aGUgYW5pbWF0aW9uIGhhcHBlbiwgIHdlIGhhdmUgdG8gc2VwYXJhdGUgZWFjaCByZW5kZXJpbmcgYW5kIGF2b2lkIGJlaW5nIHByb2Nlc3NlZCBhcyBiYXRjaGVkLlxuXG4gICAgICAgICAgaWYgKG5vZGUpIGZvcmNlUmVmbG93KG5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wZXJmb3JtRW50ZXIobW91bnRpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRXhpdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy51bm1vdW50T25FeGl0ICYmIHRoaXMuc3RhdGUuc3RhdHVzID09PSBFWElURUQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzdGF0dXM6IFVOTU9VTlRFRFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5wZXJmb3JtRW50ZXIgPSBmdW5jdGlvbiBwZXJmb3JtRW50ZXIobW91bnRpbmcpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIHZhciBlbnRlciA9IHRoaXMucHJvcHMuZW50ZXI7XG4gICAgdmFyIGFwcGVhcmluZyA9IHRoaXMuY29udGV4dCA/IHRoaXMuY29udGV4dC5pc01vdW50aW5nIDogbW91bnRpbmc7XG5cbiAgICB2YXIgX3JlZjIgPSB0aGlzLnByb3BzLm5vZGVSZWYgPyBbYXBwZWFyaW5nXSA6IFtSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKSwgYXBwZWFyaW5nXSxcbiAgICAgICAgbWF5YmVOb2RlID0gX3JlZjJbMF0sXG4gICAgICAgIG1heWJlQXBwZWFyaW5nID0gX3JlZjJbMV07XG5cbiAgICB2YXIgdGltZW91dHMgPSB0aGlzLmdldFRpbWVvdXRzKCk7XG4gICAgdmFyIGVudGVyVGltZW91dCA9IGFwcGVhcmluZyA/IHRpbWVvdXRzLmFwcGVhciA6IHRpbWVvdXRzLmVudGVyOyAvLyBubyBlbnRlciBhbmltYXRpb24gc2tpcCByaWdodCB0byBFTlRFUkVEXG4gICAgLy8gaWYgd2UgYXJlIG1vdW50aW5nIGFuZCBydW5uaW5nIHRoaXMgaXQgbWVhbnMgYXBwZWFyIF9tdXN0XyBiZSBzZXRcblxuICAgIGlmICghbW91bnRpbmcgJiYgIWVudGVyIHx8IGNvbmZpZy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zYWZlU2V0U3RhdGUoe1xuICAgICAgICBzdGF0dXM6IEVOVEVSRURcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnByb3BzLm9uRW50ZXJlZChtYXliZU5vZGUpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wcy5vbkVudGVyKG1heWJlTm9kZSwgbWF5YmVBcHBlYXJpbmcpO1xuICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgIHN0YXR1czogRU5URVJJTkdcbiAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpczIucHJvcHMub25FbnRlcmluZyhtYXliZU5vZGUsIG1heWJlQXBwZWFyaW5nKTtcblxuICAgICAgX3RoaXMyLm9uVHJhbnNpdGlvbkVuZChlbnRlclRpbWVvdXQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczIucHJvcHMub25FbnRlcmVkKG1heWJlTm9kZSwgbWF5YmVBcHBlYXJpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5wZXJmb3JtRXhpdCA9IGZ1bmN0aW9uIHBlcmZvcm1FeGl0KCkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgdmFyIGV4aXQgPSB0aGlzLnByb3BzLmV4aXQ7XG4gICAgdmFyIHRpbWVvdXRzID0gdGhpcy5nZXRUaW1lb3V0cygpO1xuICAgIHZhciBtYXliZU5vZGUgPSB0aGlzLnByb3BzLm5vZGVSZWYgPyB1bmRlZmluZWQgOiBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTsgLy8gbm8gZXhpdCBhbmltYXRpb24gc2tpcCByaWdodCB0byBFWElURURcblxuICAgIGlmICghZXhpdCB8fCBjb25maWcuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgc3RhdHVzOiBFWElURURcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMzLnByb3BzLm9uRXhpdGVkKG1heWJlTm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uRXhpdChtYXliZU5vZGUpO1xuICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgIHN0YXR1czogRVhJVElOR1xuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRpbmcobWF5YmVOb2RlKTtcblxuICAgICAgX3RoaXMzLm9uVHJhbnNpdGlvbkVuZCh0aW1lb3V0cy5leGl0LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMy5zYWZlU2V0U3RhdGUoe1xuICAgICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczMucHJvcHMub25FeGl0ZWQobWF5YmVOb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICBfcHJvdG8uY2FuY2VsTmV4dENhbGxiYWNrID0gZnVuY3Rpb24gY2FuY2VsTmV4dENhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLm5leHRDYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5uZXh0Q2FsbGJhY2suY2FuY2VsKCk7XG4gICAgICB0aGlzLm5leHRDYWxsYmFjayA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5zYWZlU2V0U3RhdGUgPSBmdW5jdGlvbiBzYWZlU2V0U3RhdGUobmV4dFN0YXRlLCBjYWxsYmFjaykge1xuICAgIC8vIFRoaXMgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSwgYnV0IHRoZXJlIGFyZSB3ZWlyZCByYWNlIGNvbmRpdGlvbnMgd2l0aFxuICAgIC8vIHNldFN0YXRlIGNhbGxiYWNrcyBhbmQgdW5tb3VudGluZyBpbiB0ZXN0aW5nLCBzbyBhbHdheXMgbWFrZSBzdXJlIHRoYXRcbiAgICAvLyB3ZSBjYW4gY2FuY2VsIGFueSBwZW5kaW5nIHNldFN0YXRlIGNhbGxiYWNrcyBhZnRlciB3ZSB1bm1vdW50LlxuICAgIGNhbGxiYWNrID0gdGhpcy5zZXROZXh0Q2FsbGJhY2soY2FsbGJhY2spO1xuICAgIHRoaXMuc2V0U3RhdGUobmV4dFN0YXRlLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgX3Byb3RvLnNldE5leHRDYWxsYmFjayA9IGZ1bmN0aW9uIHNldE5leHRDYWxsYmFjayhjYWxsYmFjaykge1xuICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgdmFyIGFjdGl2ZSA9IHRydWU7XG5cbiAgICB0aGlzLm5leHRDYWxsYmFjayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgX3RoaXM0Lm5leHRDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIGNhbGxiYWNrKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5uZXh0Q2FsbGJhY2suY2FuY2VsID0gZnVuY3Rpb24gKCkge1xuICAgICAgYWN0aXZlID0gZmFsc2U7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLm5leHRDYWxsYmFjaztcbiAgfTtcblxuICBfcHJvdG8ub25UcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24gb25UcmFuc2l0aW9uRW5kKHRpbWVvdXQsIGhhbmRsZXIpIHtcbiAgICB0aGlzLnNldE5leHRDYWxsYmFjayhoYW5kbGVyKTtcbiAgICB2YXIgbm9kZSA9IHRoaXMucHJvcHMubm9kZVJlZiA/IHRoaXMucHJvcHMubm9kZVJlZi5jdXJyZW50IDogUmVhY3RET00uZmluZERPTU5vZGUodGhpcyk7XG4gICAgdmFyIGRvZXNOb3RIYXZlVGltZW91dE9yTGlzdGVuZXIgPSB0aW1lb3V0ID09IG51bGwgJiYgIXRoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXI7XG5cbiAgICBpZiAoIW5vZGUgfHwgZG9lc05vdEhhdmVUaW1lb3V0T3JMaXN0ZW5lcikge1xuICAgICAgc2V0VGltZW91dCh0aGlzLm5leHRDYWxsYmFjaywgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXIpIHtcbiAgICAgIHZhciBfcmVmMyA9IHRoaXMucHJvcHMubm9kZVJlZiA/IFt0aGlzLm5leHRDYWxsYmFja10gOiBbbm9kZSwgdGhpcy5uZXh0Q2FsbGJhY2tdLFxuICAgICAgICAgIG1heWJlTm9kZSA9IF9yZWYzWzBdLFxuICAgICAgICAgIG1heWJlTmV4dENhbGxiYWNrID0gX3JlZjNbMV07XG5cbiAgICAgIHRoaXMucHJvcHMuYWRkRW5kTGlzdGVuZXIobWF5YmVOb2RlLCBtYXliZU5leHRDYWxsYmFjayk7XG4gICAgfVxuXG4gICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xuICAgICAgc2V0VGltZW91dCh0aGlzLm5leHRDYWxsYmFjaywgdGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIHN0YXR1cyA9IHRoaXMuc3RhdGUuc3RhdHVzO1xuXG4gICAgaWYgKHN0YXR1cyA9PT0gVU5NT1VOVEVEKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICBjaGlsZHJlbiA9IF90aGlzJHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBfaW4gPSBfdGhpcyRwcm9wcy5pbixcbiAgICAgICAgX21vdW50T25FbnRlciA9IF90aGlzJHByb3BzLm1vdW50T25FbnRlcixcbiAgICAgICAgX3VubW91bnRPbkV4aXQgPSBfdGhpcyRwcm9wcy51bm1vdW50T25FeGl0LFxuICAgICAgICBfYXBwZWFyID0gX3RoaXMkcHJvcHMuYXBwZWFyLFxuICAgICAgICBfZW50ZXIgPSBfdGhpcyRwcm9wcy5lbnRlcixcbiAgICAgICAgX2V4aXQgPSBfdGhpcyRwcm9wcy5leGl0LFxuICAgICAgICBfdGltZW91dCA9IF90aGlzJHByb3BzLnRpbWVvdXQsXG4gICAgICAgIF9hZGRFbmRMaXN0ZW5lciA9IF90aGlzJHByb3BzLmFkZEVuZExpc3RlbmVyLFxuICAgICAgICBfb25FbnRlciA9IF90aGlzJHByb3BzLm9uRW50ZXIsXG4gICAgICAgIF9vbkVudGVyaW5nID0gX3RoaXMkcHJvcHMub25FbnRlcmluZyxcbiAgICAgICAgX29uRW50ZXJlZCA9IF90aGlzJHByb3BzLm9uRW50ZXJlZCxcbiAgICAgICAgX29uRXhpdCA9IF90aGlzJHByb3BzLm9uRXhpdCxcbiAgICAgICAgX29uRXhpdGluZyA9IF90aGlzJHByb3BzLm9uRXhpdGluZyxcbiAgICAgICAgX29uRXhpdGVkID0gX3RoaXMkcHJvcHMub25FeGl0ZWQsXG4gICAgICAgIF9ub2RlUmVmID0gX3RoaXMkcHJvcHMubm9kZVJlZixcbiAgICAgICAgY2hpbGRQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF90aGlzJHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImluXCIsIFwibW91bnRPbkVudGVyXCIsIFwidW5tb3VudE9uRXhpdFwiLCBcImFwcGVhclwiLCBcImVudGVyXCIsIFwiZXhpdFwiLCBcInRpbWVvdXRcIiwgXCJhZGRFbmRMaXN0ZW5lclwiLCBcIm9uRW50ZXJcIiwgXCJvbkVudGVyaW5nXCIsIFwib25FbnRlcmVkXCIsIFwib25FeGl0XCIsIFwib25FeGl0aW5nXCIsIFwib25FeGl0ZWRcIiwgXCJub2RlUmVmXCJdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAvKiNfX1BVUkVfXyovXG4gICAgICAvLyBhbGxvd3MgZm9yIG5lc3RlZCBUcmFuc2l0aW9uc1xuICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uR3JvdXBDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBudWxsXG4gICAgICB9LCB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihzdGF0dXMsIGNoaWxkUHJvcHMpIDogUmVhY3QuY2xvbmVFbGVtZW50KFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pLCBjaGlsZFByb3BzKSlcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBUcmFuc2l0aW9uO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5UcmFuc2l0aW9uLmNvbnRleHRUeXBlID0gVHJhbnNpdGlvbkdyb3VwQ29udGV4dDtcblRyYW5zaXRpb24ucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8ge1xuICAvKipcbiAgICogQSBSZWFjdCByZWZlcmVuY2UgdG8gRE9NIGVsZW1lbnQgdGhhdCBuZWVkIHRvIHRyYW5zaXRpb246XG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81MTEyNzEzMC80NjcxOTMyXG4gICAqXG4gICAqICAgLSBXaGVuIGBub2RlUmVmYCBwcm9wIGlzIHVzZWQsIGBub2RlYCBpcyBub3QgcGFzc2VkIHRvIGNhbGxiYWNrIGZ1bmN0aW9uc1xuICAgKiAgICAgIChlLmcuIGBvbkVudGVyYCkgYmVjYXVzZSB1c2VyIGFscmVhZHkgaGFzIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIG5vZGUuXG4gICAqICAgLSBXaGVuIGNoYW5naW5nIGBrZXlgIHByb3Agb2YgYFRyYW5zaXRpb25gIGluIGEgYFRyYW5zaXRpb25Hcm91cGAgYSBuZXdcbiAgICogICAgIGBub2RlUmVmYCBuZWVkIHRvIGJlIHByb3ZpZGVkIHRvIGBUcmFuc2l0aW9uYCB3aXRoIGNoYW5nZWQgYGtleWAgcHJvcFxuICAgKiAgICAgKHNlZVxuICAgKiAgICAgW3Rlc3QvQ1NTVHJhbnNpdGlvbi10ZXN0LmpzXShodHRwczovL2dpdGh1Yi5jb20vcmVhY3Rqcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL2Jsb2IvMTM0MzVmODk3YjNhYjcxZjZlMTlkNzI0ZjE0NTU5NmY1OTEwNTgxYy90ZXN0L0NTU1RyYW5zaXRpb24tdGVzdC5qcyNMMzYyLUw0MzcpKS5cbiAgICovXG4gIG5vZGVSZWY6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY3VycmVudDogdHlwZW9mIEVsZW1lbnQgPT09ICd1bmRlZmluZWQnID8gUHJvcFR5cGVzLmFueSA6IGZ1bmN0aW9uIChwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICB2YXIgdmFsdWUgPSBwcm9wVmFsdWVba2V5XTtcbiAgICAgIHJldHVybiBQcm9wVHlwZXMuaW5zdGFuY2VPZih2YWx1ZSAmJiAnb3duZXJEb2N1bWVudCcgaW4gdmFsdWUgPyB2YWx1ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LkVsZW1lbnQgOiBFbGVtZW50KShwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KTtcbiAgICB9XG4gIH0pLFxuXG4gIC8qKlxuICAgKiBBIGBmdW5jdGlvbmAgY2hpbGQgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiBhIFJlYWN0IGVsZW1lbnQuIFRoaXMgZnVuY3Rpb24gaXNcbiAgICogY2FsbGVkIHdpdGggdGhlIGN1cnJlbnQgdHJhbnNpdGlvbiBzdGF0dXMgKGAnZW50ZXJpbmcnYCwgYCdlbnRlcmVkJ2AsXG4gICAqIGAnZXhpdGluZydgLCBgJ2V4aXRlZCdgKSwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXBwbHkgY29udGV4dFxuICAgKiBzcGVjaWZpYyBwcm9wcyB0byBhIGNvbXBvbmVudC5cbiAgICpcbiAgICogYGBganN4XG4gICAqIDxUcmFuc2l0aW9uIGluPXt0aGlzLnN0YXRlLmlufSB0aW1lb3V0PXsxNTB9PlxuICAgKiAgIHtzdGF0ZSA9PiAoXG4gICAqICAgICA8TXlDb21wb25lbnQgY2xhc3NOYW1lPXtgZmFkZSBmYWRlLSR7c3RhdGV9YH0gLz5cbiAgICogICApfVxuICAgKiA8L1RyYW5zaXRpb24+XG4gICAqIGBgYFxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsIFByb3BUeXBlcy5lbGVtZW50LmlzUmVxdWlyZWRdKS5pc1JlcXVpcmVkLFxuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBjb21wb25lbnQ7IHRyaWdnZXJzIHRoZSBlbnRlciBvciBleGl0IHN0YXRlc1xuICAgKi9cbiAgaW46IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBjaGlsZCBjb21wb25lbnQgaXMgbW91bnRlZCBpbW1lZGlhdGVseSBhbG9uZyB3aXRoXG4gICAqIHRoZSBwYXJlbnQgYFRyYW5zaXRpb25gIGNvbXBvbmVudC4gSWYgeW91IHdhbnQgdG8gXCJsYXp5IG1vdW50XCIgdGhlIGNvbXBvbmVudCBvbiB0aGVcbiAgICogZmlyc3QgYGluPXt0cnVlfWAgeW91IGNhbiBzZXQgYG1vdW50T25FbnRlcmAuIEFmdGVyIHRoZSBmaXJzdCBlbnRlciB0cmFuc2l0aW9uIHRoZSBjb21wb25lbnQgd2lsbCBzdGF5XG4gICAqIG1vdW50ZWQsIGV2ZW4gb24gXCJleGl0ZWRcIiwgdW5sZXNzIHlvdSBhbHNvIHNwZWNpZnkgYHVubW91bnRPbkV4aXRgLlxuICAgKi9cbiAgbW91bnRPbkVudGVyOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogQnkgZGVmYXVsdCB0aGUgY2hpbGQgY29tcG9uZW50IHN0YXlzIG1vdW50ZWQgYWZ0ZXIgaXQgcmVhY2hlcyB0aGUgYCdleGl0ZWQnYCBzdGF0ZS5cbiAgICogU2V0IGB1bm1vdW50T25FeGl0YCBpZiB5b3UnZCBwcmVmZXIgdG8gdW5tb3VudCB0aGUgY29tcG9uZW50IGFmdGVyIGl0IGZpbmlzaGVzIGV4aXRpbmcuXG4gICAqL1xuICB1bm1vdW50T25FeGl0OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogQnkgZGVmYXVsdCB0aGUgY2hpbGQgY29tcG9uZW50IGRvZXMgbm90IHBlcmZvcm0gdGhlIGVudGVyIHRyYW5zaXRpb24gd2hlblxuICAgKiBpdCBmaXJzdCBtb3VudHMsIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIGBpbmAuIElmIHlvdSB3YW50IHRoaXNcbiAgICogYmVoYXZpb3IsIHNldCBib3RoIGBhcHBlYXJgIGFuZCBgaW5gIHRvIGB0cnVlYC5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogdGhlcmUgYXJlIG5vIHNwZWNpYWwgYXBwZWFyIHN0YXRlcyBsaWtlIGBhcHBlYXJpbmdgL2BhcHBlYXJlZGAsIHRoaXMgcHJvcFxuICAgKiA+IG9ubHkgYWRkcyBhbiBhZGRpdGlvbmFsIGVudGVyIHRyYW5zaXRpb24uIEhvd2V2ZXIsIGluIHRoZVxuICAgKiA+IGA8Q1NTVHJhbnNpdGlvbj5gIGNvbXBvbmVudCB0aGF0IGZpcnN0IGVudGVyIHRyYW5zaXRpb24gZG9lcyByZXN1bHQgaW5cbiAgICogPiBhZGRpdGlvbmFsIGAuYXBwZWFyLSpgIGNsYXNzZXMsIHRoYXQgd2F5IHlvdSBjYW4gY2hvb3NlIHRvIHN0eWxlIGl0XG4gICAqID4gZGlmZmVyZW50bHkuXG4gICAqL1xuICBhcHBlYXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBlbnRlciB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGVudGVyOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgZXhpdCB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIHRyYW5zaXRpb24sIGluIG1pbGxpc2Vjb25kcy5cbiAgICogUmVxdWlyZWQgdW5sZXNzIGBhZGRFbmRMaXN0ZW5lcmAgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIFlvdSBtYXkgc3BlY2lmeSBhIHNpbmdsZSB0aW1lb3V0IGZvciBhbGwgdHJhbnNpdGlvbnM6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXs1MDB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBvciBpbmRpdmlkdWFsbHk6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXt7XG4gICAqICBhcHBlYXI6IDUwMCxcbiAgICogIGVudGVyOiAzMDAsXG4gICAqICBleGl0OiA1MDAsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiAtIGBhcHBlYXJgIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgZW50ZXJgXG4gICAqIC0gYGVudGVyYCBkZWZhdWx0cyB0byBgMGBcbiAgICogLSBgZXhpdGAgZGVmYXVsdHMgdG8gYDBgXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXIgfCB7IGVudGVyPzogbnVtYmVyLCBleGl0PzogbnVtYmVyLCBhcHBlYXI/OiBudW1iZXIgfX1cbiAgICovXG4gIHRpbWVvdXQ6IGZ1bmN0aW9uIHRpbWVvdXQocHJvcHMpIHtcbiAgICB2YXIgcHQgPSB0aW1lb3V0c1NoYXBlO1xuICAgIGlmICghcHJvcHMuYWRkRW5kTGlzdGVuZXIpIHB0ID0gcHQuaXNSZXF1aXJlZDtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHJldHVybiBwdC5hcHBseSh2b2lkIDAsIFtwcm9wc10uY29uY2F0KGFyZ3MpKTtcbiAgfSxcblxuICAvKipcbiAgICogQWRkIGEgY3VzdG9tIHRyYW5zaXRpb24gZW5kIHRyaWdnZXIuIENhbGxlZCB3aXRoIHRoZSB0cmFuc2l0aW9uaW5nXG4gICAqIERPTSBub2RlIGFuZCBhIGBkb25lYCBjYWxsYmFjay4gQWxsb3dzIGZvciBtb3JlIGZpbmUgZ3JhaW5lZCB0cmFuc2l0aW9uIGVuZFxuICAgKiBsb2dpYy4gVGltZW91dHMgYXJlIHN0aWxsIHVzZWQgYXMgYSBmYWxsYmFjayBpZiBwcm92aWRlZC5cbiAgICpcbiAgICogKipOb3RlKio6IHdoZW4gYG5vZGVSZWZgIHByb3AgaXMgcGFzc2VkLCBgbm9kZWAgaXMgbm90IHBhc3NlZC5cbiAgICpcbiAgICogYGBganN4XG4gICAqIGFkZEVuZExpc3RlbmVyPXsobm9kZSwgZG9uZSkgPT4ge1xuICAgKiAgIC8vIHVzZSB0aGUgY3NzIHRyYW5zaXRpb25lbmQgZXZlbnQgdG8gbWFyayB0aGUgZmluaXNoIG9mIGEgdHJhbnNpdGlvblxuICAgKiAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGRvbmUsIGZhbHNlKTtcbiAgICogfX1cbiAgICogYGBgXG4gICAqL1xuICBhZGRFbmRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJlbnRlcmluZ1wiIHN0YXR1cyBpcyBhcHBsaWVkLiBBbiBleHRyYSBwYXJhbWV0ZXJcbiAgICogYGlzQXBwZWFyaW5nYCBpcyBzdXBwbGllZCB0byBpbmRpY2F0ZSBpZiB0aGUgZW50ZXIgc3RhZ2UgaXMgb2NjdXJyaW5nIG9uIHRoZSBpbml0aWFsIG1vdW50XG4gICAqXG4gICAqICoqTm90ZSoqOiB3aGVuIGBub2RlUmVmYCBwcm9wIGlzIHBhc3NlZCwgYG5vZGVgIGlzIG5vdCBwYXNzZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbCkgLT4gdm9pZFxuICAgKi9cbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyaW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuIEFuIGV4dHJhIHBhcmFtZXRlclxuICAgKiBgaXNBcHBlYXJpbmdgIGlzIHN1cHBsaWVkIHRvIGluZGljYXRlIGlmIHRoZSBlbnRlciBzdGFnZSBpcyBvY2N1cnJpbmcgb24gdGhlIGluaXRpYWwgbW91bnRcbiAgICpcbiAgICogKipOb3RlKio6IHdoZW4gYG5vZGVSZWZgIHByb3AgaXMgcGFzc2VkLCBgbm9kZWAgaXMgbm90IHBhc3NlZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyZWRcIiBzdGF0dXMgaXMgYXBwbGllZC4gQW4gZXh0cmEgcGFyYW1ldGVyXG4gICAqIGBpc0FwcGVhcmluZ2AgaXMgc3VwcGxpZWQgdG8gaW5kaWNhdGUgaWYgdGhlIGVudGVyIHN0YWdlIGlzIG9jY3VycmluZyBvbiB0aGUgaW5pdGlhbCBtb3VudFxuICAgKlxuICAgKiAqKk5vdGUqKjogd2hlbiBgbm9kZVJlZmAgcHJvcCBpcyBwYXNzZWQsIGBub2RlYCBpcyBub3QgcGFzc2VkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpIC0+IHZvaWRcbiAgICovXG4gIG9uRW50ZXJlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqICoqTm90ZSoqOiB3aGVuIGBub2RlUmVmYCBwcm9wIGlzIHBhc3NlZCwgYG5vZGVgIGlzIG5vdCBwYXNzZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqICoqTm90ZSoqOiB3aGVuIGBub2RlUmVmYCBwcm9wIGlzIHBhc3NlZCwgYG5vZGVgIGlzIG5vdCBwYXNzZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXRpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0ZWRcIiBzdGF0dXMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogKipOb3RlKio6IHdoZW4gYG5vZGVSZWZgIHByb3AgaXMgcGFzc2VkLCBgbm9kZWAgaXMgbm90IHBhc3NlZFxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCkgLT4gdm9pZFxuICAgKi9cbiAgb25FeGl0ZWQ6IFByb3BUeXBlcy5mdW5jXG59IDoge307IC8vIE5hbWUgdGhlIGZ1bmN0aW9uIHNvIGl0IGlzIGNsZWFyZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cblRyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBpbjogZmFsc2UsXG4gIG1vdW50T25FbnRlcjogZmFsc2UsXG4gIHVubW91bnRPbkV4aXQ6IGZhbHNlLFxuICBhcHBlYXI6IGZhbHNlLFxuICBlbnRlcjogdHJ1ZSxcbiAgZXhpdDogdHJ1ZSxcbiAgb25FbnRlcjogbm9vcCxcbiAgb25FbnRlcmluZzogbm9vcCxcbiAgb25FbnRlcmVkOiBub29wLFxuICBvbkV4aXQ6IG5vb3AsXG4gIG9uRXhpdGluZzogbm9vcCxcbiAgb25FeGl0ZWQ6IG5vb3Bcbn07XG5UcmFuc2l0aW9uLlVOTU9VTlRFRCA9IFVOTU9VTlRFRDtcblRyYW5zaXRpb24uRVhJVEVEID0gRVhJVEVEO1xuVHJhbnNpdGlvbi5FTlRFUklORyA9IEVOVEVSSU5HO1xuVHJhbnNpdGlvbi5FTlRFUkVEID0gRU5URVJFRDtcblRyYW5zaXRpb24uRVhJVElORyA9IEVYSVRJTkc7XG5leHBvcnQgZGVmYXVsdCBUcmFuc2l0aW9uOyIsImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoZSkge1xuICBpZiAodm9pZCAwID09PSBlKSB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIHJldHVybiBlO1xufVxuZXhwb3J0IHsgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IHsgQ2hpbGRyZW4sIGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEdpdmVuIGB0aGlzLnByb3BzLmNoaWxkcmVuYCwgcmV0dXJuIGFuIG9iamVjdCBtYXBwaW5nIGtleSB0byBjaGlsZC5cbiAqXG4gKiBAcGFyYW0geyp9IGNoaWxkcmVuIGB0aGlzLnByb3BzLmNoaWxkcmVuYFxuICogQHJldHVybiB7b2JqZWN0fSBNYXBwaW5nIG9mIGtleSB0byBjaGlsZFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGlsZE1hcHBpbmcoY2hpbGRyZW4sIG1hcEZuKSB7XG4gIHZhciBtYXBwZXIgPSBmdW5jdGlvbiBtYXBwZXIoY2hpbGQpIHtcbiAgICByZXR1cm4gbWFwRm4gJiYgaXNWYWxpZEVsZW1lbnQoY2hpbGQpID8gbWFwRm4oY2hpbGQpIDogY2hpbGQ7XG4gIH07XG5cbiAgdmFyIHJlc3VsdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGlmIChjaGlsZHJlbikgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiBjO1xuICB9KS5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIC8vIHJ1biB0aGUgbWFwIGZ1bmN0aW9uIGhlcmUgaW5zdGVhZCBzbyB0aGF0IHRoZSBrZXkgaXMgdGhlIGNvbXB1dGVkIG9uZVxuICAgIHJlc3VsdFtjaGlsZC5rZXldID0gbWFwcGVyKGNoaWxkKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIFdoZW4geW91J3JlIGFkZGluZyBvciByZW1vdmluZyBjaGlsZHJlbiBzb21lIG1heSBiZSBhZGRlZCBvciByZW1vdmVkIGluIHRoZVxuICogc2FtZSByZW5kZXIgcGFzcy4gV2Ugd2FudCB0byBzaG93ICpib3RoKiBzaW5jZSB3ZSB3YW50IHRvIHNpbXVsdGFuZW91c2x5XG4gKiBhbmltYXRlIGVsZW1lbnRzIGluIGFuZCBvdXQuIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBwcmV2aW91cyBzZXQgb2Yga2V5c1xuICogYW5kIGEgbmV3IHNldCBvZiBrZXlzIGFuZCBtZXJnZXMgdGhlbSB3aXRoIGl0cyBiZXN0IGd1ZXNzIG9mIHRoZSBjb3JyZWN0XG4gKiBvcmRlcmluZy4gSW4gdGhlIGZ1dHVyZSB3ZSBtYXkgZXhwb3NlIHNvbWUgb2YgdGhlIHV0aWxpdGllcyBpblxuICogUmVhY3RNdWx0aUNoaWxkIHRvIG1ha2UgdGhpcyBlYXN5LCBidXQgZm9yIG5vdyBSZWFjdCBpdHNlbGYgZG9lcyBub3RcbiAqIGRpcmVjdGx5IGhhdmUgdGhpcyBjb25jZXB0IG9mIHRoZSB1bmlvbiBvZiBwcmV2Q2hpbGRyZW4gYW5kIG5leHRDaGlsZHJlblxuICogc28gd2UgaW1wbGVtZW50IGl0IGhlcmUuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHByZXYgcHJldiBjaGlsZHJlbiBhcyByZXR1cm5lZCBmcm9tXG4gKiBgUmVhY3RUcmFuc2l0aW9uQ2hpbGRNYXBwaW5nLmdldENoaWxkTWFwcGluZygpYC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuZXh0IG5leHQgY2hpbGRyZW4gYXMgcmV0dXJuZWQgZnJvbVxuICogYFJlYWN0VHJhbnNpdGlvbkNoaWxkTWFwcGluZy5nZXRDaGlsZE1hcHBpbmcoKWAuXG4gKiBAcmV0dXJuIHtvYmplY3R9IGEga2V5IHNldCB0aGF0IGNvbnRhaW5zIGFsbCBrZXlzIGluIGBwcmV2YCBhbmQgYWxsIGtleXNcbiAqIGluIGBuZXh0YCBpbiBhIHJlYXNvbmFibGUgb3JkZXIuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ2hpbGRNYXBwaW5ncyhwcmV2LCBuZXh0KSB7XG4gIHByZXYgPSBwcmV2IHx8IHt9O1xuICBuZXh0ID0gbmV4dCB8fCB7fTtcblxuICBmdW5jdGlvbiBnZXRWYWx1ZUZvcktleShrZXkpIHtcbiAgICByZXR1cm4ga2V5IGluIG5leHQgPyBuZXh0W2tleV0gOiBwcmV2W2tleV07XG4gIH0gLy8gRm9yIGVhY2gga2V5IG9mIGBuZXh0YCwgdGhlIGxpc3Qgb2Yga2V5cyB0byBpbnNlcnQgYmVmb3JlIHRoYXQga2V5IGluXG4gIC8vIHRoZSBjb21iaW5lZCBsaXN0XG5cblxuICB2YXIgbmV4dEtleXNQZW5kaW5nID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdmFyIHBlbmRpbmdLZXlzID0gW107XG5cbiAgZm9yICh2YXIgcHJldktleSBpbiBwcmV2KSB7XG4gICAgaWYgKHByZXZLZXkgaW4gbmV4dCkge1xuICAgICAgaWYgKHBlbmRpbmdLZXlzLmxlbmd0aCkge1xuICAgICAgICBuZXh0S2V5c1BlbmRpbmdbcHJldktleV0gPSBwZW5kaW5nS2V5cztcbiAgICAgICAgcGVuZGluZ0tleXMgPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVuZGluZ0tleXMucHVzaChwcmV2S2V5KTtcbiAgICB9XG4gIH1cblxuICB2YXIgaTtcbiAgdmFyIGNoaWxkTWFwcGluZyA9IHt9O1xuXG4gIGZvciAodmFyIG5leHRLZXkgaW4gbmV4dCkge1xuICAgIGlmIChuZXh0S2V5c1BlbmRpbmdbbmV4dEtleV0pIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBuZXh0S2V5c1BlbmRpbmdbbmV4dEtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHBlbmRpbmdOZXh0S2V5ID0gbmV4dEtleXNQZW5kaW5nW25leHRLZXldW2ldO1xuICAgICAgICBjaGlsZE1hcHBpbmdbbmV4dEtleXNQZW5kaW5nW25leHRLZXldW2ldXSA9IGdldFZhbHVlRm9yS2V5KHBlbmRpbmdOZXh0S2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjaGlsZE1hcHBpbmdbbmV4dEtleV0gPSBnZXRWYWx1ZUZvcktleShuZXh0S2V5KTtcbiAgfSAvLyBGaW5hbGx5LCBhZGQgdGhlIGtleXMgd2hpY2ggZGlkbid0IGFwcGVhciBiZWZvcmUgYW55IGtleSBpbiBgbmV4dGBcblxuXG4gIGZvciAoaSA9IDA7IGkgPCBwZW5kaW5nS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGNoaWxkTWFwcGluZ1twZW5kaW5nS2V5c1tpXV0gPSBnZXRWYWx1ZUZvcktleShwZW5kaW5nS2V5c1tpXSk7XG4gIH1cblxuICByZXR1cm4gY2hpbGRNYXBwaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcm9wKGNoaWxkLCBwcm9wLCBwcm9wcykge1xuICByZXR1cm4gcHJvcHNbcHJvcF0gIT0gbnVsbCA/IHByb3BzW3Byb3BdIDogY2hpbGQucHJvcHNbcHJvcF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsQ2hpbGRNYXBwaW5nKHByb3BzLCBvbkV4aXRlZCkge1xuICByZXR1cm4gZ2V0Q2hpbGRNYXBwaW5nKHByb3BzLmNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICByZXR1cm4gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICBvbkV4aXRlZDogb25FeGl0ZWQuYmluZChudWxsLCBjaGlsZCksXG4gICAgICBpbjogdHJ1ZSxcbiAgICAgIGFwcGVhcjogZ2V0UHJvcChjaGlsZCwgJ2FwcGVhcicsIHByb3BzKSxcbiAgICAgIGVudGVyOiBnZXRQcm9wKGNoaWxkLCAnZW50ZXInLCBwcm9wcyksXG4gICAgICBleGl0OiBnZXRQcm9wKGNoaWxkLCAnZXhpdCcsIHByb3BzKVxuICAgIH0pO1xuICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0Q2hpbGRNYXBwaW5nKG5leHRQcm9wcywgcHJldkNoaWxkTWFwcGluZywgb25FeGl0ZWQpIHtcbiAgdmFyIG5leHRDaGlsZE1hcHBpbmcgPSBnZXRDaGlsZE1hcHBpbmcobmV4dFByb3BzLmNoaWxkcmVuKTtcbiAgdmFyIGNoaWxkcmVuID0gbWVyZ2VDaGlsZE1hcHBpbmdzKHByZXZDaGlsZE1hcHBpbmcsIG5leHRDaGlsZE1hcHBpbmcpO1xuICBPYmplY3Qua2V5cyhjaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIGNoaWxkID0gY2hpbGRyZW5ba2V5XTtcbiAgICBpZiAoIWlzVmFsaWRFbGVtZW50KGNoaWxkKSkgcmV0dXJuO1xuICAgIHZhciBoYXNQcmV2ID0gKGtleSBpbiBwcmV2Q2hpbGRNYXBwaW5nKTtcbiAgICB2YXIgaGFzTmV4dCA9IChrZXkgaW4gbmV4dENoaWxkTWFwcGluZyk7XG4gICAgdmFyIHByZXZDaGlsZCA9IHByZXZDaGlsZE1hcHBpbmdba2V5XTtcbiAgICB2YXIgaXNMZWF2aW5nID0gaXNWYWxpZEVsZW1lbnQocHJldkNoaWxkKSAmJiAhcHJldkNoaWxkLnByb3BzLmluOyAvLyBpdGVtIGlzIG5ldyAoZW50ZXJpbmcpXG5cbiAgICBpZiAoaGFzTmV4dCAmJiAoIWhhc1ByZXYgfHwgaXNMZWF2aW5nKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coJ2VudGVyaW5nJywga2V5KVxuICAgICAgY2hpbGRyZW5ba2V5XSA9IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICBvbkV4aXRlZDogb25FeGl0ZWQuYmluZChudWxsLCBjaGlsZCksXG4gICAgICAgIGluOiB0cnVlLFxuICAgICAgICBleGl0OiBnZXRQcm9wKGNoaWxkLCAnZXhpdCcsIG5leHRQcm9wcyksXG4gICAgICAgIGVudGVyOiBnZXRQcm9wKGNoaWxkLCAnZW50ZXInLCBuZXh0UHJvcHMpXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFoYXNOZXh0ICYmIGhhc1ByZXYgJiYgIWlzTGVhdmluZykge1xuICAgICAgLy8gaXRlbSBpcyBvbGQgKGV4aXRpbmcpXG4gICAgICAvLyBjb25zb2xlLmxvZygnbGVhdmluZycsIGtleSlcbiAgICAgIGNoaWxkcmVuW2tleV0gPSBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgaW46IGZhbHNlXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGhhc05leHQgJiYgaGFzUHJldiAmJiBpc1ZhbGlkRWxlbWVudChwcmV2Q2hpbGQpKSB7XG4gICAgICAvLyBpdGVtIGhhc24ndCBjaGFuZ2VkIHRyYW5zaXRpb24gc3RhdGVzXG4gICAgICAvLyBjb3B5IG92ZXIgdGhlIGxhc3QgdHJhbnNpdGlvbiBwcm9wcztcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd1bmNoYW5nZWQnLCBrZXkpXG4gICAgICBjaGlsZHJlbltrZXldID0gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgIG9uRXhpdGVkOiBvbkV4aXRlZC5iaW5kKG51bGwsIGNoaWxkKSxcbiAgICAgICAgaW46IHByZXZDaGlsZC5wcm9wcy5pbixcbiAgICAgICAgZXhpdDogZ2V0UHJvcChjaGlsZCwgJ2V4aXQnLCBuZXh0UHJvcHMpLFxuICAgICAgICBlbnRlcjogZ2V0UHJvcChjaGlsZCwgJ2VudGVyJywgbmV4dFByb3BzKVxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGNoaWxkcmVuO1xufSIsImltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZVwiO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzTG9vc2UgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzTG9vc2VcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRyYW5zaXRpb25Hcm91cENvbnRleHQgZnJvbSAnLi9UcmFuc2l0aW9uR3JvdXBDb250ZXh0JztcbmltcG9ydCB7IGdldENoaWxkTWFwcGluZywgZ2V0SW5pdGlhbENoaWxkTWFwcGluZywgZ2V0TmV4dENoaWxkTWFwcGluZyB9IGZyb20gJy4vdXRpbHMvQ2hpbGRNYXBwaW5nJztcblxudmFyIHZhbHVlcyA9IE9iamVjdC52YWx1ZXMgfHwgZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICByZXR1cm4gb2JqW2tdO1xuICB9KTtcbn07XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gIGNvbXBvbmVudDogJ2RpdicsXG4gIGNoaWxkRmFjdG9yeTogZnVuY3Rpb24gY2hpbGRGYWN0b3J5KGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9XG59O1xuLyoqXG4gKiBUaGUgYDxUcmFuc2l0aW9uR3JvdXA+YCBjb21wb25lbnQgbWFuYWdlcyBhIHNldCBvZiB0cmFuc2l0aW9uIGNvbXBvbmVudHNcbiAqIChgPFRyYW5zaXRpb24+YCBhbmQgYDxDU1NUcmFuc2l0aW9uPmApIGluIGEgbGlzdC4gTGlrZSB3aXRoIHRoZSB0cmFuc2l0aW9uXG4gKiBjb21wb25lbnRzLCBgPFRyYW5zaXRpb25Hcm91cD5gIGlzIGEgc3RhdGUgbWFjaGluZSBmb3IgbWFuYWdpbmcgdGhlIG1vdW50aW5nXG4gKiBhbmQgdW5tb3VudGluZyBvZiBjb21wb25lbnRzIG92ZXIgdGltZS5cbiAqXG4gKiBDb25zaWRlciB0aGUgZXhhbXBsZSBiZWxvdy4gQXMgaXRlbXMgYXJlIHJlbW92ZWQgb3IgYWRkZWQgdG8gdGhlIFRvZG9MaXN0IHRoZVxuICogYGluYCBwcm9wIGlzIHRvZ2dsZWQgYXV0b21hdGljYWxseSBieSB0aGUgYDxUcmFuc2l0aW9uR3JvdXA+YC5cbiAqXG4gKiBOb3RlIHRoYXQgYDxUcmFuc2l0aW9uR3JvdXA+YCAgZG9lcyBub3QgZGVmaW5lIGFueSBhbmltYXRpb24gYmVoYXZpb3IhXG4gKiBFeGFjdGx5IF9ob3dfIGEgbGlzdCBpdGVtIGFuaW1hdGVzIGlzIHVwIHRvIHRoZSBpbmRpdmlkdWFsIHRyYW5zaXRpb25cbiAqIGNvbXBvbmVudC4gVGhpcyBtZWFucyB5b3UgY2FuIG1peCBhbmQgbWF0Y2ggYW5pbWF0aW9ucyBhY3Jvc3MgZGlmZmVyZW50IGxpc3RcbiAqIGl0ZW1zLlxuICovXG5cbnZhciBUcmFuc2l0aW9uR3JvdXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzTG9vc2UoVHJhbnNpdGlvbkdyb3VwLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUcmFuc2l0aW9uR3JvdXAocHJvcHMsIGNvbnRleHQpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfdGhpcyA9IF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCkgfHwgdGhpcztcblxuICAgIHZhciBoYW5kbGVFeGl0ZWQgPSBfdGhpcy5oYW5kbGVFeGl0ZWQuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7IC8vIEluaXRpYWwgY2hpbGRyZW4gc2hvdWxkIGFsbCBiZSBlbnRlcmluZywgZGVwZW5kZW50IG9uIGFwcGVhclxuXG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNvbnRleHRWYWx1ZToge1xuICAgICAgICBpc01vdW50aW5nOiB0cnVlXG4gICAgICB9LFxuICAgICAgaGFuZGxlRXhpdGVkOiBoYW5kbGVFeGl0ZWQsXG4gICAgICBmaXJzdFJlbmRlcjogdHJ1ZVxuICAgIH07XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgdmFyIF9wcm90byA9IFRyYW5zaXRpb25Hcm91cC5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5tb3VudGVkID0gdHJ1ZTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGNvbnRleHRWYWx1ZToge1xuICAgICAgICBpc01vdW50aW5nOiBmYWxzZVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMubW91bnRlZCA9IGZhbHNlO1xuICB9O1xuXG4gIFRyYW5zaXRpb25Hcm91cC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBfcmVmKSB7XG4gICAgdmFyIHByZXZDaGlsZE1hcHBpbmcgPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgICBoYW5kbGVFeGl0ZWQgPSBfcmVmLmhhbmRsZUV4aXRlZCxcbiAgICAgICAgZmlyc3RSZW5kZXIgPSBfcmVmLmZpcnN0UmVuZGVyO1xuICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogZmlyc3RSZW5kZXIgPyBnZXRJbml0aWFsQ2hpbGRNYXBwaW5nKG5leHRQcm9wcywgaGFuZGxlRXhpdGVkKSA6IGdldE5leHRDaGlsZE1hcHBpbmcobmV4dFByb3BzLCBwcmV2Q2hpbGRNYXBwaW5nLCBoYW5kbGVFeGl0ZWQpLFxuICAgICAgZmlyc3RSZW5kZXI6IGZhbHNlXG4gICAgfTtcbiAgfSAvLyBub2RlIGlzIGB1bmRlZmluZWRgIHdoZW4gdXNlciBwcm92aWRlZCBgbm9kZVJlZmAgcHJvcFxuICA7XG5cbiAgX3Byb3RvLmhhbmRsZUV4aXRlZCA9IGZ1bmN0aW9uIGhhbmRsZUV4aXRlZChjaGlsZCwgbm9kZSkge1xuICAgIHZhciBjdXJyZW50Q2hpbGRNYXBwaW5nID0gZ2V0Q2hpbGRNYXBwaW5nKHRoaXMucHJvcHMuY2hpbGRyZW4pO1xuICAgIGlmIChjaGlsZC5rZXkgaW4gY3VycmVudENoaWxkTWFwcGluZykgcmV0dXJuO1xuXG4gICAgaWYgKGNoaWxkLnByb3BzLm9uRXhpdGVkKSB7XG4gICAgICBjaGlsZC5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb3VudGVkKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICB2YXIgY2hpbGRyZW4gPSBfZXh0ZW5kcyh7fSwgc3RhdGUuY2hpbGRyZW4pO1xuXG4gICAgICAgIGRlbGV0ZSBjaGlsZHJlbltjaGlsZC5rZXldO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgQ29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBjaGlsZEZhY3RvcnkgPSBfdGhpcyRwcm9wcy5jaGlsZEZhY3RvcnksXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3RoaXMkcHJvcHMsIFtcImNvbXBvbmVudFwiLCBcImNoaWxkRmFjdG9yeVwiXSk7XG5cbiAgICB2YXIgY29udGV4dFZhbHVlID0gdGhpcy5zdGF0ZS5jb250ZXh0VmFsdWU7XG4gICAgdmFyIGNoaWxkcmVuID0gdmFsdWVzKHRoaXMuc3RhdGUuY2hpbGRyZW4pLm1hcChjaGlsZEZhY3RvcnkpO1xuICAgIGRlbGV0ZSBwcm9wcy5hcHBlYXI7XG4gICAgZGVsZXRlIHByb3BzLmVudGVyO1xuICAgIGRlbGV0ZSBwcm9wcy5leGl0O1xuXG4gICAgaWYgKENvbXBvbmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb25Hcm91cENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbnRleHRWYWx1ZVxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uR3JvdXBDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogY29udGV4dFZhbHVlXG4gICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBwcm9wcywgY2hpbGRyZW4pKTtcbiAgfTtcblxuICByZXR1cm4gVHJhbnNpdGlvbkdyb3VwO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5UcmFuc2l0aW9uR3JvdXAucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8ge1xuICAvKipcbiAgICogYDxUcmFuc2l0aW9uR3JvdXA+YCByZW5kZXJzIGEgYDxkaXY+YCBieSBkZWZhdWx0LiBZb3UgY2FuIGNoYW5nZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHByb3ZpZGluZyBhIGBjb21wb25lbnRgIHByb3AuXG4gICAqIElmIHlvdSB1c2UgUmVhY3QgdjE2KyBhbmQgd291bGQgbGlrZSB0byBhdm9pZCBhIHdyYXBwaW5nIGA8ZGl2PmAgZWxlbWVudFxuICAgKiB5b3UgY2FuIHBhc3MgaW4gYGNvbXBvbmVudD17bnVsbH1gLiBUaGlzIGlzIHVzZWZ1bCBpZiB0aGUgd3JhcHBpbmcgZGl2XG4gICAqIGJvcmtzIHlvdXIgY3NzIHN0eWxlcy5cbiAgICovXG4gIGNvbXBvbmVudDogUHJvcFR5cGVzLmFueSxcblxuICAvKipcbiAgICogQSBzZXQgb2YgYDxUcmFuc2l0aW9uPmAgY29tcG9uZW50cywgdGhhdCBhcmUgdG9nZ2xlZCBgaW5gIGFuZCBvdXQgYXMgdGhleVxuICAgKiBsZWF2ZS4gdGhlIGA8VHJhbnNpdGlvbkdyb3VwPmAgd2lsbCBpbmplY3Qgc3BlY2lmaWMgdHJhbnNpdGlvbiBwcm9wcywgc29cbiAgICogcmVtZW1iZXIgdG8gc3ByZWFkIHRoZW0gdGhyb3VnaCBpZiB5b3UgYXJlIHdyYXBwaW5nIHRoZSBgPFRyYW5zaXRpb24+YCBhc1xuICAgKiB3aXRoIG91ciBgPEZhZGU+YCBleGFtcGxlLlxuICAgKlxuICAgKiBXaGlsZSB0aGlzIGNvbXBvbmVudCBpcyBtZWFudCBmb3IgbXVsdGlwbGUgYFRyYW5zaXRpb25gIG9yIGBDU1NUcmFuc2l0aW9uYFxuICAgKiBjaGlsZHJlbiwgc29tZXRpbWVzIHlvdSBtYXkgd2FudCB0byBoYXZlIGEgc2luZ2xlIHRyYW5zaXRpb24gY2hpbGQgd2l0aFxuICAgKiBjb250ZW50IHRoYXQgeW91IHdhbnQgdG8gYmUgdHJhbnNpdGlvbmVkIG91dCBhbmQgaW4gd2hlbiB5b3UgY2hhbmdlIGl0XG4gICAqIChlLmcuIHJvdXRlcywgaW1hZ2VzIGV0Yy4pIEluIHRoYXQgY2FzZSB5b3UgY2FuIGNoYW5nZSB0aGUgYGtleWAgcHJvcCBvZlxuICAgKiB0aGUgdHJhbnNpdGlvbiBjaGlsZCBhcyB5b3UgY2hhbmdlIGl0cyBjb250ZW50LCB0aGlzIHdpbGwgY2F1c2VcbiAgICogYFRyYW5zaXRpb25Hcm91cGAgdG8gdHJhbnNpdGlvbiB0aGUgY2hpbGQgb3V0IGFuZCBiYWNrIGluLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBBIGNvbnZlbmllbmNlIHByb3AgdGhhdCBlbmFibGVzIG9yIGRpc2FibGVzIGFwcGVhciBhbmltYXRpb25zXG4gICAqIGZvciBhbGwgY2hpbGRyZW4uIE5vdGUgdGhhdCBzcGVjaWZ5aW5nIHRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZGVmYXVsdHMgc2V0XG4gICAqIG9uIGluZGl2aWR1YWwgY2hpbGRyZW4gVHJhbnNpdGlvbnMuXG4gICAqL1xuICBhcHBlYXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBBIGNvbnZlbmllbmNlIHByb3AgdGhhdCBlbmFibGVzIG9yIGRpc2FibGVzIGVudGVyIGFuaW1hdGlvbnNcbiAgICogZm9yIGFsbCBjaGlsZHJlbi4gTm90ZSB0aGF0IHNwZWNpZnlpbmcgdGhpcyB3aWxsIG92ZXJyaWRlIGFueSBkZWZhdWx0cyBzZXRcbiAgICogb24gaW5kaXZpZHVhbCBjaGlsZHJlbiBUcmFuc2l0aW9ucy5cbiAgICovXG4gIGVudGVyOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogQSBjb252ZW5pZW5jZSBwcm9wIHRoYXQgZW5hYmxlcyBvciBkaXNhYmxlcyBleGl0IGFuaW1hdGlvbnNcbiAgICogZm9yIGFsbCBjaGlsZHJlbi4gTm90ZSB0aGF0IHNwZWNpZnlpbmcgdGhpcyB3aWxsIG92ZXJyaWRlIGFueSBkZWZhdWx0cyBzZXRcbiAgICogb24gaW5kaXZpZHVhbCBjaGlsZHJlbiBUcmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBZb3UgbWF5IG5lZWQgdG8gYXBwbHkgcmVhY3RpdmUgdXBkYXRlcyB0byBhIGNoaWxkIGFzIGl0IGlzIGV4aXRpbmcuXG4gICAqIFRoaXMgaXMgZ2VuZXJhbGx5IGRvbmUgYnkgdXNpbmcgYGNsb25lRWxlbWVudGAgaG93ZXZlciBpbiB0aGUgY2FzZSBvZiBhbiBleGl0aW5nXG4gICAqIGNoaWxkIHRoZSBlbGVtZW50IGhhcyBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBhbmQgbm90IGFjY2Vzc2libGUgdG8gdGhlIGNvbnN1bWVyLlxuICAgKlxuICAgKiBJZiB5b3UgZG8gbmVlZCB0byB1cGRhdGUgYSBjaGlsZCBhcyBpdCBsZWF2ZXMgeW91IGNhbiBwcm92aWRlIGEgYGNoaWxkRmFjdG9yeWBcbiAgICogdG8gd3JhcCBldmVyeSBjaGlsZCwgZXZlbiB0aGUgb25lcyB0aGF0IGFyZSBsZWF2aW5nLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihjaGlsZDogUmVhY3RFbGVtZW50KSAtPiBSZWFjdEVsZW1lbnRcbiAgICovXG4gIGNoaWxkRmFjdG9yeTogUHJvcFR5cGVzLmZ1bmNcbn0gOiB7fTtcblRyYW5zaXRpb25Hcm91cC5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5leHBvcnQgZGVmYXVsdCBUcmFuc2l0aW9uR3JvdXA7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclRyYW5zaXRpb25Db250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9tZXNzYWdlQmFyVHJhbnNpdGlvbkNvbnRleHQnO1xuY29uc3QgZ2V0Q2xhc3NOYW1lID0gKHN0YXR1cywgZW50ZXJDbGFzc05hbWUsIGV4aXRDbGFzc05hbWUsIGFuaW1hdGUpPT57XG4gICAgc3dpdGNoKHN0YXR1cyl7XG4gICAgICAgIGNhc2UgJ2VudGVyaW5nJzpcbiAgICAgICAgY2FzZSAnZW50ZXJlZCc6XG4gICAgICAgICAgICByZXR1cm4gYW5pbWF0ZSA9PT0gJ2JvdGgnID8gZW50ZXJDbGFzc05hbWUgOiAnJztcbiAgICAgICAgY2FzZSAnZXhpdGluZyc6XG4gICAgICAgIGNhc2UgJ2V4aXRlZCc6XG4gICAgICAgICAgICByZXR1cm4gZXhpdENsYXNzTmFtZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICB9XG59O1xuLyoqXG4gKiBJbnRlcm5hbCBjb21wb25lbnQgdGhhdCBjb250cm9scyB0aGUgYW5pbWF0aW9uIHRyYW5zaXRpb24gZm9yIE1lc3NhZ2VCYXIgY29tcG9uZW50c1xuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IE1lc3NhZ2VCYXJUcmFuc2l0aW9uID0gKHsgY2hpbGRyZW4sIGVudGVyQ2xhc3NOYW1lLCBleGl0Q2xhc3NOYW1lLCBhbmltYXRlLCAuLi5yZXN0IH0pPT57XG4gICAgY29uc3Qgbm9kZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHtcbiAgICAgICAgdGltZW91dDogMjUwLFxuICAgICAgICBub2RlUmVmOiBub2RlUmVmLFxuICAgICAgICAuLi5yZXN0XG4gICAgfSwgKHN0YXRlKT0+LyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KE1lc3NhZ2VCYXJUcmFuc2l0aW9uSW5uZXIsIHtcbiAgICAgICAgICAgIGFuaW1hdGU6IGFuaW1hdGUsXG4gICAgICAgICAgICBlbnRlckNsYXNzTmFtZTogZW50ZXJDbGFzc05hbWUsXG4gICAgICAgICAgICBleGl0Q2xhc3NOYW1lOiBleGl0Q2xhc3NOYW1lLFxuICAgICAgICAgICAgbm9kZVJlZjogbm9kZVJlZixcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZVxuICAgICAgICB9LCBjaGlsZHJlbikpO1xufTtcbmNvbnN0IE1lc3NhZ2VCYXJUcmFuc2l0aW9uSW5uZXIgPSAoeyBjaGlsZHJlbiwgc3RhdGUsIGVudGVyQ2xhc3NOYW1lLCBleGl0Q2xhc3NOYW1lLCBhbmltYXRlLCBub2RlUmVmIH0pPT57XG4gICAgY29uc3QgY2xhc3NOYW1lID0gZ2V0Q2xhc3NOYW1lKHN0YXRlLCBlbnRlckNsYXNzTmFtZSwgZXhpdENsYXNzTmFtZSwgYW5pbWF0ZSk7XG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBub2RlUmVmXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgbm9kZVJlZlxuICAgIF0pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWVzc2FnZUJhclRyYW5zaXRpb25Db250ZXh0UHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbnRleHRcbiAgICB9LCBjaGlsZHJlbik7XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBUcmFuc2l0aW9uR3JvdXAgfSBmcm9tICdyZWFjdC10cmFuc2l0aW9uLWdyb3VwJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJUcmFuc2l0aW9uIH0gZnJvbSAnLi9NZXNzYWdlQmFyVHJhbnNpdGlvbic7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIE1lc3NhZ2VCYXJHcm91cFxuICovIGV4cG9ydCBjb25zdCByZW5kZXJNZXNzYWdlQmFyR3JvdXBfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KFRyYW5zaXRpb25Hcm91cCwge1xuICAgICAgICAgICAgY29tcG9uZW50OiBudWxsLFxuICAgICAgICAgICAgY2hpbGRyZW46IHN0YXRlLmNoaWxkcmVuLm1hcCgoY2hpbGQpPT4vKiNfX1BVUkVfXyovIF9qc3goTWVzc2FnZUJhclRyYW5zaXRpb24sIHtcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZTogc3RhdGUuYW5pbWF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZW50ZXJDbGFzc05hbWU6IHN0YXRlLmVudGVyU3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICBleGl0Q2xhc3NOYW1lOiBzdGF0ZS5leGl0U3R5bGVzLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRcbiAgICAgICAgICAgICAgICB9LCBjaGlsZC5rZXkpKVxuICAgICAgICB9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IG1lc3NhZ2VCYXJHcm91cENsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktTWVzc2FnZUJhckdyb3VwJ1xufTtcbi8qKlxuICogU3R5bGVzIGZvciB0aGUgcm9vdCBzbG90XG4gKi9cbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCZjVmY3M6IFwiZjRjbGwweVwiLFxuICAgIHZpbjE3ZDogXCJmeThzaTBiXCJcbiAgfSxcbiAgZW50ZXI6IHtcbiAgICBCdjEyeWIzOiBcImYxZGc5dzF2XCJcbiAgfSxcbiAgZXhpdDoge1xuICAgIEJ2MTJ5YjM6IFwiZnU4MGllZVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmY0Y2xsMHl7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczt9XCIsIFwiLmZ5OHNpMGJ7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWR1cmF0aW9uTm9ybWFsKTt9XCIsIFwiLmYxZGc5dzF2e2FuaW1hdGlvbi1uYW1lOmZuZ2Vpb2k7fVwiLCBcIi5mdTgwaWVle2FuaW1hdGlvbi1uYW1lOmZrMGxmdzc7fVwiXSxcbiAgazogW1wiQGtleWZyYW1lcyBmbmdlaW9pe2Zyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKTt9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO319XCIsIFwiQGtleWZyYW1lcyBmazBsZnc3e2Zyb217b3BhY2l0eToxO310b3tvcGFjaXR5OjA7fX1cIl1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBNZXNzYWdlQmFyR3JvdXAgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZXNzYWdlQmFyR3JvdXBTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKG1lc3NhZ2VCYXJHcm91cENsYXNzTmFtZXMucm9vdCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBzdGF0ZS5lbnRlclN0eWxlcyA9IG1lcmdlQ2xhc3NlcyhzdHlsZXMuYmFzZSwgc3R5bGVzLmVudGVyKTtcbiAgc3RhdGUuZXhpdFN0eWxlcyA9IG1lcmdlQ2xhc3NlcyhzdHlsZXMuYmFzZSwgc3R5bGVzLmV4aXQpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlTWVzc2FnZUJhckdyb3VwU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDdXN0b21TdHlsZUhvb2tfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IHVzZU1lc3NhZ2VCYXJHcm91cF91bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVzc2FnZUJhckdyb3VwJztcbmltcG9ydCB7IHJlbmRlck1lc3NhZ2VCYXJHcm91cF91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyTWVzc2FnZUJhckdyb3VwJztcbmltcG9ydCB7IHVzZU1lc3NhZ2VCYXJHcm91cFN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlTWVzc2FnZUJhckdyb3VwU3R5bGVzLnN0eWxlcyc7XG4vKipcbiAqIE1lc3NhZ2VCYXJHcm91cCBjb21wb25lbnRcbiAqLyBleHBvcnQgY29uc3QgTWVzc2FnZUJhckdyb3VwID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlTWVzc2FnZUJhckdyb3VwX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZU1lc3NhZ2VCYXJHcm91cFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VNZXNzYWdlQmFyR3JvdXBTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlck1lc3NhZ2VCYXJHcm91cF91bnN0YWJsZShzdGF0ZSk7XG59KTtcbk1lc3NhZ2VCYXJHcm91cC5kaXNwbGF5TmFtZSA9ICdNZXNzYWdlQmFyR3JvdXAnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJldHVybnMgdGhlIHByb3BzIGFuZCBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgdGhlIGNvbXBvbmVudFxuICogQHBhcmFtIHByb3BzIC0gVGVhY2hpbmdQb3BvdmVyQm9keSBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgVGVhY2hpbmdQb3BvdmVyQm9keVxuICovIGV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBtZWRpYUxlbmd0aCB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdicsXG4gICAgICAgICAgICBtZWRpYTogJ3NwYW4nXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgbWVkaWE6IHNsb3Qub3B0aW9uYWwocHJvcHMubWVkaWEsIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICAgICAgfSksXG4gICAgICAgIG1lZGlhTGVuZ3RoOiBtZWRpYUxlbmd0aCAhPT0gbnVsbCAmJiBtZWRpYUxlbmd0aCAhPT0gdm9pZCAwID8gbWVkaWFMZW5ndGggOiAnc2hvcnQnXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGVhY2hpbmdQb3BvdmVyQm9keVxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzdGF0ZS5tZWRpYSAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubWVkaWEsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLnJvb3QuY2hpbGRyZW5cbiAgICAgICAgXVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5leHBvcnQgY29uc3QgdGVhY2hpbmdQb3BvdmVyQm9keUNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktVGVhY2hpbmdQb3BvdmVyQm9keScsXG4gIG1lZGlhOiAnZnVpLVRlYWNoaW5nUG9wb3ZlckJvZHlfX21lZGlhJ1xufTtcbmNvbnN0IHBvcG92ZXJCb2R5RGltZW5zaW9uID0gMjg4O1xuZXhwb3J0IGNvbnN0IHVzZU1lZGlhU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIEJ3MGllNjU6IDAsXG4gICAgQnIzMTJwbTogMCxcbiAgICBuazZmNWE6IDAsXG4gICAgSWphcTUwOiAwLFxuICAgIEJxMXRvbXU6IFwiZnVqamcxM1wiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxYTNwMXZwXCIsXG4gICAgYTliNjc3OiBcImYxZHhxdWpnXCIsXG4gICAganJhcGt5OiBcImYxamxoc21kXCIsXG4gICAgaGE0ZG95OiBcImZtcnY0bHNcIixcbiAgICBCcmYxcDgwOiBcImY0ZDlqMjNcIixcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiXG4gIH0sXG4gIHNob3J0OiB7XG4gICAgQnViang2OTogXCJmMXRhZXd1d1wiLFxuICAgIEJtdXR0dDM6IFwiZnM1cHhuOVwiXG4gIH0sXG4gIG1lZGl1bToge1xuICAgIEJ1Ymp4Njk6IFwiZjdkYTU2M1wiLFxuICAgIEJtdXR0dDM6IFwiZjk4cHJ1aVwiXG4gIH0sXG4gIHRhbGw6IHtcbiAgICBCdWJqeDY5OiBcImY5aWttdGdcIixcbiAgICBCbXV0dHQzOiBcImZxd3MwOGpcIlxuICB9XG59LCB7XG4gIGQ6IFtbXCIuZnVqamcxM3tncmlkLWFyZWE6bWVkaWE7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWEzcDF2cHtvdmVyZmxvdzpoaWRkZW47fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxZHhxdWpne3dpZHRoOjI4OHB4O31cIiwgXCIuZjFqbGhzbWR7bWFyZ2luLWJvdHRvbToxMnB4O31cIiwgXCIuZm1ydjRsc3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fVwiLCBcIi5mNGQ5ajIze2p1c3RpZnktY29udGVudDpjZW50ZXI7fVwiLCBcIi5mMjJpYWd3e2Rpc3BsYXk6ZmxleDt9XCIsIFwiLmYxdGFld3V3e2FzcGVjdC1yYXRpbzoyLjQ2MTUzODQ2MTUzODQ2MTc7fVwiLCBcIi5mN2RhNTYze2FzcGVjdC1yYXRpbzoxLjYzNjM2MzYzNjM2MzYzNjU7fVwiLCBcIi5mOWlrbXRne2FzcGVjdC1yYXRpbzoxO31cIl0sXG4gIHQ6IFtcIkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbyl7LmZzNXB4bjl7aGVpZ2h0OjExN3B4O319XCIsIFwiQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvKXsuZjk4cHJ1aXtoZWlnaHQ6MTc2cHg7fX1cIiwgXCJAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW8pey5mcXdzMDhqe2hlaWdodDoyODhweDt9fVwiXVxufSk7XG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCZWl5M2U0OiBcImYxdng5bDYyXCIsXG4gICAgQnlvajh0djogXCJmcGU2bGI3XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMXZ4OWw2MntmbGV4LWRpcmVjdGlvbjpjb2x1bW47fVwiLCBcIi5mcGU2bGI3e3BhZGRpbmctYm90dG9tOjEycHg7fVwiXVxufSk7XG4vKiogQXBwbGllcyBzdHlsZSBjbGFzc25hbWVzIHRvIHNsb3RzICovXG5leHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyQm9keVN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCB7XG4gICAgbWVkaWFMZW5ndGhcbiAgfSA9IHN0YXRlO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3QgbWVkaWFTdHlsZXMgPSB1c2VNZWRpYVN0eWxlcygpO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0ZWFjaGluZ1BvcG92ZXJCb2R5Q2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBpZiAoc3RhdGUubWVkaWEpIHtcbiAgICBzdGF0ZS5tZWRpYS5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGVhY2hpbmdQb3BvdmVyQm9keUNsYXNzTmFtZXMubWVkaWEsIG1lZGlhU3R5bGVzLmJhc2UsIG1lZGlhU3R5bGVzW21lZGlhTGVuZ3RoXSwgc3RhdGUubWVkaWEuY2xhc3NOYW1lKTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGVhY2hpbmdQb3BvdmVyQm9keVN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGVhY2hpbmdQb3BvdmVyQm9keV91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyQm9keSc7XG5pbXBvcnQgeyByZW5kZXJUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJUZWFjaGluZ1BvcG92ZXJCb2R5JztcbmltcG9ydCB7IHVzZVRlYWNoaW5nUG9wb3ZlckJvZHlTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckJvZHlTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuLyoqXG4gKiBEZWZpbmUgYSBzdHlsZWQgVGVhY2hpbmdQb3BvdmVyQm9keSwgdXNpbmcgdGhlIGB1c2VUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlYCBhbmQgYHVzZVRlYWNoaW5nUG9wb3ZlckJvZHlTdHlsZXNfdW5zdGFibGVgXG4gKiBob29rcy5cbiAqXG4gKiBUZWFjaGluZ1BvcG92ZXJCb2R5IGlzIHVzZWQgdG8gaG9zdCBjb250ZW50IHdpdGhpbiBhIFRlYWNoaW5nUG9wb3ZlciwgYW5kIHByb3ZpZGVzIGEgc3RhbmRhcmRpemVkIG1lZGlhIHNsb3RcbiAqLyBleHBvcnQgY29uc3QgVGVhY2hpbmdQb3BvdmVyQm9keSA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3ZlckJvZHlfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlVGVhY2hpbmdQb3BvdmVyQm9keVN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUZWFjaGluZ1BvcG92ZXJCb2R5U3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuVGVhY2hpbmdQb3BvdmVyQm9keS5kaXNwbGF5TmFtZSA9ICdUZWFjaGluZ1BvcG92ZXJCb2R5JztcbiIsImV4cG9ydCBjb25zdCBjcmVhdGVDYXJvdXNlbFN0b3JlID0gKCk9PntcbiAgICBsZXQgdmFsdWVzID0gW107XG4gICAgbGV0IGxpc3RlbmVycyA9IFtdO1xuICAgIGNvbnN0IGNhcm91c2VsU3RvcmUgPSB7XG4gICAgICAgIGNsZWFyICgpIHtcbiAgICAgICAgICAgIHZhbHVlcyA9IFtdO1xuICAgICAgICAgICAgZW1pdENoYW5nZSgpO1xuICAgICAgICB9LFxuICAgICAgICBhZGRWYWx1ZSAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlcyA9IFtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBlbWl0Q2hhbmdlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFZhbHVlICh2YWx1ZSwgcHJldikge1xuICAgICAgICAgICAgaWYgKCFwcmV2KSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzID0gW1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsdWVzXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zID0gdmFsdWVzLmluZGV4T2YocHJldik7XG4gICAgICAgICAgICAgICAgdmFsdWVzLnNwbGljZShwb3MgKyAxLCAwLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgLy8gUmVxdWlyZWQgdG8gYmUgZGVmaW5lZCBhcyBhICduZXcnIGFycmF5IGZvciB1c2VTeW5jRXh0ZXJuYWxTdG9yZVxuICAgICAgICAgICAgICAgIHZhbHVlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsdWVzXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVtaXRDaGFuZ2UoKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlVmFsdWUgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBwb3MgPSB2YWx1ZXMuaW5kZXhPZih2YWx1ZSk7XG4gICAgICAgICAgICB2YWx1ZXMuc3BsaWNlKHBvcywgMSk7XG4gICAgICAgICAgICAvLyBSZXF1aXJlZCB0byBiZSBkZWZpbmVkIGFzIGEgJ25ldycgYXJyYXkgZm9yIHVzZVN5bmNFeHRlcm5hbFN0b3JlXG4gICAgICAgICAgICB2YWx1ZXMgPSBbXG4gICAgICAgICAgICAgICAgLi4udmFsdWVzXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgZW1pdENoYW5nZSgpO1xuICAgICAgICB9LFxuICAgICAgICBzdWJzY3JpYmUgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcnMgPSBbXG4gICAgICAgICAgICAgICAgLi4ubGlzdGVuZXJzLFxuICAgICAgICAgICAgICAgIGxpc3RlbmVyXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzID0gbGlzdGVuZXJzLmZpbHRlcigobCk9PmwgIT09IGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGdldFNuYXBzaG90ICgpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGVtaXRDaGFuZ2UoKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgbGlzdGVuZXJzKXtcbiAgICAgICAgICAgIGxpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNhcm91c2VsU3RvcmU7XG59O1xuIiwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dFNlbGVjdG9yIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWNvbnRleHQtc2VsZWN0b3InO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ2Fyb3VzZWxTdG9yZSB9IGZyb20gJy4vY3JlYXRlQ2Fyb3VzZWxTdG9yZSc7XG5leHBvcnQgY29uc3QgY2Fyb3VzZWxDb250ZXh0RGVmYXVsdFZhbHVlID0ge1xuICAgIHN0b3JlOiBjcmVhdGVDYXJvdXNlbFN0b3JlKCksXG4gICAgdmFsdWU6IG51bGwsXG4gICAgc2VsZWN0UGFnZUJ5RGlyZWN0aW9uOiAoKT0+e1xuICAgIC8qKiBub29wICovIH0sXG4gICAgc2VsZWN0UGFnZUJ5VmFsdWU6ICgpPT57XG4gICAgLyoqIG5vb3AgKi8gfVxufTtcbmNvbnN0IENhcm91c2VsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCBDYXJvdXNlbFByb3ZpZGVyID0gQ2Fyb3VzZWxDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGNvbnN0IHVzZUNhcm91c2VsQ29udGV4dF91bnN0YWJsZSA9IChzZWxlY3Rvcik9PnVzZUNvbnRleHRTZWxlY3RvcihDYXJvdXNlbENvbnRleHQsIChjdHggPSBjYXJvdXNlbENvbnRleHREZWZhdWx0VmFsdWUpPT5zZWxlY3RvcihjdHgpKTtcbiIsImV4cG9ydCBjb25zdCBDQVJPVVNFTF9JVEVNID0gJ2RhdGEtY2Fyb3VzZWwtaXRlbSc7XG5leHBvcnQgY29uc3QgQ0FST1VTRUxfQUNUSVZFX0lURU0gPSAnZGF0YS1jYXJvdXNlbC1hY3RpdmUtaXRlbSc7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZUNhcm91c2VsQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJy4uL0Nhcm91c2VsQ29udGV4dCc7XG5pbXBvcnQgeyBDQVJPVVNFTF9BQ1RJVkVfSVRFTSwgQ0FST1VTRUxfSVRFTSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5leHBvcnQgY29uc3QgdXNlQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgdmlzaWJsZSA9IHVzZUNhcm91c2VsQ29udGV4dF91bnN0YWJsZSgoYyk9PmMudmFsdWUgPT09IHZhbHVlKTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHZpc2libGUsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgW0NBUk9VU0VMX0lURU1dOiB2YWx1ZSxcbiAgICAgICAgICAgIFtDQVJPVVNFTF9BQ1RJVkVfSVRFTV06IHZpc2libGUsXG4gICAgICAgICAgICBoaWRkZW46ICF2aXNpYmxlLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KVxuICAgIH07XG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAgIHN0YXRlLnJvb3QuY2hpbGRyZW4gPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlckNhcm91c2VsSXRlbV91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7fSk7XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VDYXJvdXNlbEl0ZW0nO1xuaW1wb3J0IHsgcmVuZGVyQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJDYXJvdXNlbEl0ZW0nO1xuLyoqXG4gKiBEZWZpbmUgYSBDYXJvdXNlbEl0ZW0sIHVzaW5nIHRoZSBgdXNlQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlYCBhbmQgJ3JlbmRlckNhcm91c2VsSXRlbV91bnN0YWJsZScgaG9va3MuXG4gKiBJdCBoYXMgbm8gc3R5bGluZyBvcGluaW9ucy5cbiAqLyBleHBvcnQgY29uc3QgQ2Fyb3VzZWxJdGVtID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHJldHVybiByZW5kZXJDYXJvdXNlbEl0ZW1fdW5zdGFibGUoc3RhdGUpO1xufSk7XG5DYXJvdXNlbEl0ZW0uZGlzcGxheU5hbWUgPSAnQ2Fyb3VzZWxJdGVtJztcbiIsImltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxJdGVtIH0gZnJvbSAnLi4vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvQ2Fyb3VzZWxJdGVtL0Nhcm91c2VsdGVtJztcbi8qKlxuICogUmV0dXJucyB0aGUgcHJvcHMgYW5kIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciB0aGUgY29tcG9uZW50XG4gKiBAcGFyYW0gcHJvcHMgLSBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQgcHJvcGVydGllc1xuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZFxuICovIGV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBwcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogQ2Fyb3VzZWxJdGVtXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IHNsb3QuYWx3YXlzKHtcbiAgICAgICAgICAgIC4uLmdldEludHJpbnNpY0VsZW1lbnRQcm9wcygnZGl2Jywge1xuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogQ2Fyb3VzZWxJdGVtXG4gICAgICAgIH0pXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZF91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7fSk7XG59O1xuIiwiaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmV4cG9ydCBjb25zdCB0ZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZCdcbn07XG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7fVxufSwge30pO1xuLyoqIEFwcGxpZXMgc3R5bGUgY2xhc3NuYW1lcyB0byBzbG90cyAqL1xuZXhwb3J0IGNvbnN0IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkQ2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZCc7XG5pbXBvcnQgeyByZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZCc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZFN0eWxlcy5zdHlsZXMnO1xuLyoqXG4gKiBEZWZpbmUgYSBzdHlsZWQgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkLCB1c2luZyB0aGUgYHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZF91bnN0YWJsZWAgYW5kIGB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRTdHlsZXNfdW5zdGFibGVgXG4gKiBob29rcy5cbiAqXG4gKiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQgaXMgdGhlIGRlZmluaXRpb24gb2YgYSBzaW5nbGUgcGFnZSB2aWV3IHdpdGhpbiB0aGUgY2Fyb3VzZWwsIHRoZXkgYXJlIHNob3duIG9uZSBhdCBhIHRpbWUgYW5kIGNhbiBiZSBuYXZpZ2F0ZWQgdGhyb3VnaCBzZXF1ZW50aWFsbHkuXG4gKi8gZXhwb3J0IGNvbnN0IFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmRfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQuZGlzcGxheU5hbWUgPSAnVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IENBUk9VU0VMX0FDVElWRV9JVEVNLCBDQVJPVVNFTF9JVEVNIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0IGNvbnN0IHVzZUNhcm91c2VsV2Fsa2VyX3Vuc3RhYmxlID0gKCk9PntcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCB0cmVlV2Fsa2VyUmVmID0gUmVhY3QudXNlUmVmKHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRhcmdldERvY3VtZW50LmJvZHkpKTtcbiAgICBjb25zdCBodG1sUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgaWYgKCF0YXJnZXREb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBodG1sUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgdHJlZVdhbGtlclJlZi5jdXJyZW50ID0gdGFyZ2V0RG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlbCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHtcbiAgICAgICAgICAgIGFjY2VwdE5vZGUgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzSFRNTEVsZW1lbnQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmhhc0F0dHJpYnV0ZShDQVJPVVNFTF9JVEVNKSA/IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCA6IE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICByZWYsXG4gICAgICAgIHdhbGtlcjogUmVhY3QudXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgICAgICBhY3RpdmUgKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWh0bWxSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlRWwgPSBodG1sUmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgWyR7Q0FST1VTRUxfQUNUSVZFX0lURU19PVwidHJ1ZVwiXWApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudChhY3RpdmVFbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWw6IGFjdGl2ZUVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhY3RpdmVFbC5nZXRBdHRyaWJ1dGUoQ0FST1VTRUxfSVRFTSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmaW5kICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RyZWVXYWxrZXJSZWZfY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoKF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQgPSB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQuY3VycmVudE5vZGUpIHx8ICFodG1sUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRyZWVXYWxrZXJSZWYuY3VycmVudC5jdXJyZW50Tm9kZSA9IGh0bWxSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5leHROb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUobmV4dE5vZGUgPSB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQubmV4dE5vZGUoKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzSFRNTEVsZW1lbnQobmV4dE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dE5vZGUuZ2V0QXR0cmlidXRlKENBUk9VU0VMX0lURU0pID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiBuZXh0Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5leHROb2RlLmdldEF0dHJpYnV0ZShDQVJPVVNFTF9JVEVNKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBuZXh0UGFnZSAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuZmluZCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzIHx8ICEoKF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQgPSB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90cmVlV2Fsa2VyUmVmX2N1cnJlbnQuY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQuY3VycmVudE5vZGUgPSByZXMuZWw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0cmVlV2Fsa2VyUmVmLmN1cnJlbnQubmV4dE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSFRNTEVsZW1lbnQobmV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWw6IG5leHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5leHQuZ2V0QXR0cmlidXRlKENBUk9VU0VMX0lURU0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJldlBhZ2UgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdHJlZVdhbGtlclJlZl9jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSB0aGlzLmZpbmQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlcyB8fCAhKChfdHJlZVdhbGtlclJlZl9jdXJyZW50ID0gdHJlZVdhbGtlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfdHJlZVdhbGtlclJlZl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHJlZVdhbGtlclJlZl9jdXJyZW50LmN1cnJlbnROb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJlZVdhbGtlclJlZi5jdXJyZW50LmN1cnJlbnROb2RlID0gcmVzLmVsO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gdHJlZVdhbGtlclJlZi5jdXJyZW50LnByZXZpb3VzTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudChuZXh0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbDogbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV4dC5nZXRBdHRyaWJ1dGUoQ0FST1VTRUxfSVRFTSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksIFtdKVxuICAgIH07XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCwgdXNlTWVyZ2VkUmVmcywgdXNlQ29udHJvbGxhYmxlU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IENBUk9VU0VMX0lURU0gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VDYXJvdXNlbFdhbGtlcl91bnN0YWJsZSB9IGZyb20gJy4vdXNlQ2Fyb3VzZWxXYWxrZXInO1xuaW1wb3J0IHsgY3JlYXRlQ2Fyb3VzZWxTdG9yZSB9IGZyb20gJy4vY3JlYXRlQ2Fyb3VzZWxTdG9yZSc7XG4vLyBUT0RPOiBNaWdyYXRlIHRoaXMgaW50byBhbiBleHRlcm5hbCBAZmx1ZW50dWkvY2Fyb3VzZWwgY29tcG9uZW50XG4vLyBGb3Igbm93LCB3ZSB3b24ndCBleHBvcnQgdGhpcyBwdWJsaWNseSwgaXMgb25seSBmb3IgaW50ZXJuYWwgVGVhY2hpbmdQb3BvdmVyIHVzZSB1bnRpbCBzdGFiaWxpemVkLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNhcm91c2VsX3Vuc3RhYmxlKG9wdGlvbnMpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IHsgb25WYWx1ZUNoYW5nZSwgb25GaW5pc2ggfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIGNvbnN0IHsgcmVmOiBjYXJvdXNlbFJlZiwgd2Fsa2VyOiBjYXJvdXNlbFdhbGtlciB9ID0gdXNlQ2Fyb3VzZWxXYWxrZXJfdW5zdGFibGUoKTtcbiAgICBjb25zdCBbc3RvcmVdID0gUmVhY3QudXNlU3RhdGUoKCk9PmNyZWF0ZUNhcm91c2VsU3RvcmUoKSk7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIGRlZmF1bHRTdGF0ZTogb3B0aW9ucy5kZWZhdWx0VmFsdWUsXG4gICAgICAgIHN0YXRlOiBvcHRpb25zLnZhbHVlLFxuICAgICAgICBpbml0aWFsU3RhdGU6IG51bGxcbiAgICB9KTtcbiAgICBjb25zdCByb290UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigndXNlQ2Fyb3VzZWw6IENhcm91c2VsIG5lZWRzIHRvIGhhdmUgYSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3Agc2V0LiBJZiB5b3Ugd2FudCB0byBjb250cm9sIHRoZSB2YWx1ZSwgdXNlIHRoZSBgdmFsdWVgIHByb3AuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgdmFyIF9yb290UmVmX2N1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGFsbEl0ZW1zID0gKF9yb290UmVmX2N1cnJlbnQgPSByb290UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9yb290UmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yb290UmVmX2N1cnJlbnQucXVlcnlTZWxlY3RvckFsbChgWyR7Q0FST1VTRUxfSVRFTX1dYCk7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxJdGVtcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBzdG9yZS5hZGRWYWx1ZShhbGxJdGVtcy5pdGVtKGkpLmdldEF0dHJpYnV0ZShDQVJPVVNFTF9JVEVNKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBzdG9yZS5jbGVhcigpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgc3RvcmVcbiAgICBdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCF3aW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbXG4gICAgICAgICAgICAgICAgQ0FST1VTRUxfSVRFTVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIG11dGF0aW9ucyBhcmUgb2JzZXJ2ZWRcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAobXV0YXRpb25MaXN0KT0+e1xuICAgICAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbkxpc3Qpe1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWRkZWROb2RlIG9mIEFycmF5LmZyb20obXV0YXRpb24uYWRkZWROb2Rlcykpe1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudChhZGRlZE5vZGUpICYmIGFkZGVkTm9kZS5oYXNBdHRyaWJ1dGUoQ0FST1VTRUxfSVRFTSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYWRkZWROb2RlLmdldEF0dHJpYnV0ZShDQVJPVVNFTF9JVEVNKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld05vZGUgPSBjYXJvdXNlbFdhbGtlci5maW5kKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKG5ld05vZGUgPT09IG51bGwgfHwgbmV3Tm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV3Tm9kZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c05vZGUgPSBjYXJvdXNlbFdhbGtlci5wcmV2UGFnZShuZXdOb2RlID09PSBudWxsIHx8IG5ld05vZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5ld05vZGUudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9wcmV2aW91c05vZGVfdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZS5pbnNlcnRWYWx1ZShuZXdWYWx1ZSwgKF9wcmV2aW91c05vZGVfdmFsdWUgPSBwcmV2aW91c05vZGUgPT09IG51bGwgfHwgcHJldmlvdXNOb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcmV2aW91c05vZGUudmFsdWUpICE9PSBudWxsICYmIF9wcmV2aW91c05vZGVfdmFsdWUgIT09IHZvaWQgMCA/IF9wcmV2aW91c05vZGVfdmFsdWUgOiBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlbW92ZWROb2RlIG9mIEFycmF5LmZyb20obXV0YXRpb24ucmVtb3ZlZE5vZGVzKSl7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0hUTUxFbGVtZW50KHJlbW92ZWROb2RlKSAmJiAocmVtb3ZlZE5vZGUgPT09IG51bGwgfHwgcmVtb3ZlZE5vZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbW92ZWROb2RlLmhhc0F0dHJpYnV0ZShDQVJPVVNFTF9JVEVNKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZWRWYWx1ZSA9IHJlbW92ZWROb2RlLmdldEF0dHJpYnV0ZShDQVJPVVNFTF9JVEVNKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLnJlbW92ZVZhbHVlKHJlbW92ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIENyZWF0ZSBhbiBvYnNlcnZlciBpbnN0YW5jZSBsaW5rZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IHdpbi5NdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTtcbiAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSB0YXJnZXQgbm9kZSBmb3IgY29uZmlndXJlZCBtdXRhdGlvbnNcbiAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShyb290UmVmLmN1cnJlbnQsIGNvbmZpZyk7XG4gICAgICAgIC8vIExhdGVyLCB5b3UgY2FuIHN0b3Agb2JzZXJ2aW5nXG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgY2Fyb3VzZWxXYWxrZXIsXG4gICAgICAgIHN0b3JlLFxuICAgICAgICB3aW5cbiAgICBdKTtcbiAgICBjb25zdCBzZWxlY3RQYWdlQnlEaXJlY3Rpb24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCwgZGlyZWN0aW9uKT0+e1xuICAgICAgICBjb25zdCBhY3RpdmUgPSBjYXJvdXNlbFdhbGtlci5hY3RpdmUoKTtcbiAgICAgICAgaWYgKCEoYWN0aXZlID09PSBudWxsIHx8IGFjdGl2ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlLnZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BhZ2UgPSBkaXJlY3Rpb24gPT09ICdwcmV2JyA/IGNhcm91c2VsV2Fsa2VyLnByZXZQYWdlKGFjdGl2ZS52YWx1ZSkgOiBjYXJvdXNlbFdhbGtlci5uZXh0UGFnZShhY3RpdmUudmFsdWUpO1xuICAgICAgICBpZiAobmV3UGFnZSkge1xuICAgICAgICAgICAgc2V0VmFsdWUobmV3UGFnZSA9PT0gbnVsbCB8fCBuZXdQYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdQYWdlLnZhbHVlKTtcbiAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZUNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZUNoYW5nZShldmVudCwge1xuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIHR5cGU6ICdjbGljaycsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG5ld1BhZ2UgPT09IG51bGwgfHwgbmV3UGFnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV3UGFnZS52YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2goZXZlbnQsIHtcbiAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBhY3RpdmUgPT09IG51bGwgfHwgYWN0aXZlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmUudmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgc2VsZWN0UGFnZUJ5VmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCwgX3ZhbHVlKT0+e1xuICAgICAgICBzZXRWYWx1ZShfdmFsdWUpO1xuICAgICAgICBvblZhbHVlQ2hhbmdlID09PSBudWxsIHx8IG9uVmFsdWVDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVDaGFuZ2UoZXZlbnQsIHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdHlwZTogJ2NsaWNrJyxcbiAgICAgICAgICAgIHZhbHVlOiBfdmFsdWVcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2Fyb3VzZWxSZWY6IHVzZU1lcmdlZFJlZnMocm9vdFJlZiwgY2Fyb3VzZWxSZWYpLFxuICAgICAgICBjYXJvdXNlbDoge1xuICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHNlbGVjdFBhZ2VCeURpcmVjdGlvbixcbiAgICAgICAgICAgIHNlbGVjdFBhZ2VCeVZhbHVlXG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBzbG90LCB1c2VFdmVudENhbGxiYWNrLCB1c2VNZXJnZWRSZWZzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyJztcbmltcG9ydCB7IHVzZUNhcm91c2VsX3Vuc3RhYmxlIH0gZnJvbSAnLi9DYXJvdXNlbC9DYXJvdXNlbCc7XG5leHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxfdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB0b2dnbGVPcGVuID0gdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUoKGMpPT5jLnRvZ2dsZU9wZW4pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50LCBkYXRhKT0+e1xuICAgICAgICB2YXIgX3Byb3BzX29uRmluaXNoO1xuICAgICAgICAoX3Byb3BzX29uRmluaXNoID0gcHJvcHMub25GaW5pc2gpID09PSBudWxsIHx8IF9wcm9wc19vbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX29uRmluaXNoLmNhbGwocHJvcHMsIGV2ZW50LCBkYXRhKTtcbiAgICAgICAgdG9nZ2xlT3BlbihldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgeyBjYXJvdXNlbCwgY2Fyb3VzZWxSZWYgfSA9IHVzZUNhcm91c2VsX3Vuc3RhYmxlKHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBwcm9wcy5kZWZhdWx0VmFsdWUsXG4gICAgICAgIHZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICAgICAgb25WYWx1ZUNoYW5nZTogcHJvcHMub25WYWx1ZUNoYW5nZSxcbiAgICAgICAgb25GaW5pc2g6IGhhbmRsZUZpbmlzaFxuICAgIH0pO1xuICAgIGNvbnN0IGFwcGVhcmFuY2UgPSB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQuYXBwZWFyYW5jZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBwZWFyYW5jZSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICByZWY6IHVzZU1lcmdlZFJlZnMocmVmLCBjYXJvdXNlbFJlZiksXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5jYXJvdXNlbFxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBDYXJvdXNlbFByb3ZpZGVyIH0gZnJvbSAnLi9DYXJvdXNlbC9DYXJvdXNlbENvbnRleHQnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbF91bnN0YWJsZSA9IChzdGF0ZSwgY29udGV4dFZhbHVlcyk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChDYXJvdXNlbFByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBjb250ZXh0VmFsdWVzLmNhcm91c2VsLFxuICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KVxuICAgIH0pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5leHBvcnQgY29uc3QgdGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsJ1xufTtcbi8vIFRvZG86IFBhZ2UgY2hhbmdlIGFuaW1hdGlvbiAmIHN0eWxlc1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgcm9vdDoge31cbn0sIHt9KTtcbi8qKiBBcHBsaWVzIHN0eWxlIGNsYXNzbmFtZXMgdG8gc2xvdHMgKi9cbmV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlcy5zdHlsZXMuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ29udGV4dFZhbHVlc191bnN0YWJsZShzdGF0ZSkge1xuICAgIGNvbnN0IHsgc3RvcmUsIHZhbHVlLCBzZWxlY3RQYWdlQnlWYWx1ZSwgc2VsZWN0UGFnZUJ5RGlyZWN0aW9uIH0gPSBzdGF0ZTtcbiAgICBjb25zdCBjYXJvdXNlbCA9IHtcbiAgICAgICAgc3RvcmUsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBzZWxlY3RQYWdlQnlEaXJlY3Rpb24sXG4gICAgICAgIHNlbGVjdFBhZ2VCeVZhbHVlXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjYXJvdXNlbFxuICAgIH07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbF91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwnO1xuaW1wb3J0IHsgcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsJztcbmltcG9ydCB7IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENvbnRleHRWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ29udGV4dFZhbHVlcyc7XG4vKipcbiAqIERlZmluZSBhIHN0eWxlZCBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbCwgdXNpbmcgdGhlIGB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbF91bnN0YWJsZWAgYW5kIGB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlc191bnN0YWJsZWBcbiAqIGhvb2tzLlxuICpcbiAqIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsIGluamVjdHMgY29udGV4dCBwcm92aWRlcnMgdGhhdCBhcmUgcmVxdWlyZWQgZm9yIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZCBkaXNwbGF5IGFuZCBuYXZpZ2F0aW9uIGZ1bmN0aW9uYWxpdHlcbiAqLyBleHBvcnQgY29uc3QgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbF91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlc191bnN0YWJsZScpKHN0YXRlKTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDb250ZXh0VmFsdWVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxfdW5zdGFibGUoc3RhdGUsIGNvbnRleHRWYWx1ZXMpO1xufSk7XG5UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC5kaXNwbGF5TmFtZSA9ICdUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbCc7XG4iLCJpbXBvcnQgeyB1c2VTeW5jRXh0ZXJuYWxTdG9yZSB9IGZyb20gJ3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3NoaW0nO1xuaW1wb3J0IHsgdXNlQ2Fyb3VzZWxDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi9DYXJvdXNlbENvbnRleHQnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNhcm91c2VsVmFsdWVzX3Vuc3RhYmxlKGdldFNuYXBzaG90KSB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VDYXJvdXNlbENvbnRleHRfdW5zdGFibGUoKGMpPT5jLnN0b3JlKTtcbiAgICByZXR1cm4gdXNlU3luY0V4dGVybmFsU3RvcmUoc3RvcmUuc3Vic2NyaWJlLCAoKT0+Z2V0U25hcHNob3Qoc3RvcmUuZ2V0U25hcHNob3QoKSkpO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0SW50cmluc2ljRWxlbWVudFByb3BzLCBtZXJnZUNhbGxiYWNrcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9wb3Zlcic7XG5pbXBvcnQgeyB1c2VDYXJvdXNlbENvbnRleHRfdW5zdGFibGUgfSBmcm9tICcuLi9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC9DYXJvdXNlbC9DYXJvdXNlbENvbnRleHQnO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlQnV0dG9uX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWJ1dHRvbic7XG5pbXBvcnQgeyB1c2VDYXJvdXNlbFZhbHVlc191bnN0YWJsZSB9IGZyb20gJy4uL1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsL0Nhcm91c2VsL3VzZUNhcm91c2VsVmFsdWVzJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24uXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25TdHlsZXNfdW5zdGFibGUsXG4gKiBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHJlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvblxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxEaXZFbGVtZW50IG9mIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBuYXZUeXBlLCBhbHRUZXh0IH0gPSBwcm9wcztcbiAgICBjb25zdCBwb3BvdmVyQXBwZWFyYW5jZSA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5hcHBlYXJhbmNlKTtcbiAgICBjb25zdCBzZWxlY3RQYWdlQnlEaXJlY3Rpb24gPSB1c2VDYXJvdXNlbENvbnRleHRfdW5zdGFibGUoKGMpPT5jLnNlbGVjdFBhZ2VCeURpcmVjdGlvbik7XG4gICAgY29uc3QgdmFsdWVzID0gdXNlQ2Fyb3VzZWxWYWx1ZXNfdW5zdGFibGUoKHNuYXBzaG90KT0+c25hcHNob3QpO1xuICAgIGNvbnN0IGFjdGl2ZVZhbHVlID0gdXNlQ2Fyb3VzZWxDb250ZXh0X3Vuc3RhYmxlKChjKT0+Yy52YWx1ZSk7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpPT57XG4gICAgICAgIGlmIChldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFBhZ2VCeURpcmVjdGlvbihldmVudCwgbmF2VHlwZSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVCdXR0b25DbGljayA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3MoaGFuZGxlQ2xpY2ssIHByb3BzLm9uQ2xpY2spKTtcbiAgICBjb25zdCBpc1RyYWlsaW5nID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICBpZiAoIWFjdGl2ZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5hdlR5cGUgPT09ICdwcmV2Jykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5pbmRleE9mKGFjdGl2ZVZhbHVlKSA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVzLmluZGV4T2YoYWN0aXZlVmFsdWUpID09PSB2YWx1ZXMubGVuZ3RoIC0gMTtcbiAgICB9LCBbXG4gICAgICAgIG5hdlR5cGUsXG4gICAgICAgIGFjdGl2ZVZhbHVlLFxuICAgICAgICB2YWx1ZXNcbiAgICBdKTtcbiAgICBsZXQgYnV0dG9uQXBwZWFyYW5jZVR5cGU7XG4gICAgaWYgKG5hdlR5cGUgPT09ICduZXh0Jykge1xuICAgICAgICBidXR0b25BcHBlYXJhbmNlVHlwZSA9IHBvcG92ZXJBcHBlYXJhbmNlID09PSAnYnJhbmQnID8gdW5kZWZpbmVkIDogJ3ByaW1hcnknO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1dHRvbkFwcGVhcmFuY2VUeXBlID0gcG9wb3ZlckFwcGVhcmFuY2UgPT09ICdicmFuZCcgPyAnb3V0bGluZScgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qIEhhbmRsZSBhbHRUZXh0IG9uIHRyYWlsaW5nIHN0ZXAgKi8gbGV0IGJ1dHRvbkNoaWxkID0gcHJvcHMuY2hpbGRyZW47XG4gICAgaWYgKGlzVHJhaWxpbmcpIHtcbiAgICAgICAgYnV0dG9uQ2hpbGQgPSBhbHRUZXh0O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi51c2VCdXR0b25fdW5zdGFibGUoe1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogYnV0dG9uQXBwZWFyYW5jZVR5cGUsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9LCByZWYpLFxuICAgICAgICBuYXZUeXBlLFxuICAgICAgICBwb3BvdmVyQXBwZWFyYW5jZSxcbiAgICAgICAgYWx0VGV4dCxcbiAgICAgICAgLy8gT3ZlcnJpZGUgdXNlQnV0dG9uIHJvb3Qgc2xvdFxuICAgICAgICByb290OiBzbG90LmFsd2F5cyhnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMoJ2J1dHRvbicsIHtcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IGJ1dHRvbkFwcGVhcmFuY2VUeXBlLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVCdXR0b25DbGljayxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBidXR0b25DaGlsZFxuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdidXR0b24nXG4gICAgICAgIH0pXG4gICAgfTtcbn07XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25cbiAqLyBleHBvcnQgY29uc3QgcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25fdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucm9vdCwge30pO1xufTtcbiIsImltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMsIHNob3J0aGFuZHMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgdXNlQnV0dG9uU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWJ1dHRvbic7XG5leHBvcnQgY29uc3QgdGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25DbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uJ1xufTtcbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBCZjRqZWRrOiBcImYxNGVzMjdiXCJcbiAgfSxcbiAgYnJhbmROZXh0OiB7XG4gICAgc2o1NXpkOiBcImYxNm11aHl5XCIsXG4gICAgRGUzcHpxOiBcImYxMHM2d245XCIsXG4gICAgZzJ1M3dlOiBcImYxaWltcHAwXCIsXG4gICAgaDNjNXJtOiBbXCJmMTl1aHF2dVwiLCBcImYxbngxNGh4XCJdLFxuICAgIEI5eGF2MGc6IFwiZm5xYTkwcFwiLFxuICAgIHpoand5MzogW1wiZjFueDE0aHhcIiwgXCJmMTl1aHF2dVwiXSxcbiAgICBCaTkxazljOiBcImYzeW1iZGpcIixcbiAgICBKd2VmOHk6IFwiZjFyZ3RiOTVcIixcbiAgICBCMmQ1M2ZxOiBcImYxcHUyN2ZmXCIsXG4gICAgaXJvM3ptOiBcImYxZDVjN2luXCJcbiAgfSxcbiAgYnJhbmRQcmV2aW91czoge1xuICAgIHNqNTV6ZDogXCJmMXBocmFna1wiLFxuICAgIERlM3B6cTogXCJmZnA3ZXNvXCIsXG4gICAgZzJ1M3dlOiBcImZtMWVidWdcIixcbiAgICBoM2M1cm06IFtcImYyOG9tdXpcIiwgXCJmMXVoZmxpaVwiXSxcbiAgICBCOXhhdjBnOiBcImYxaXh3NW80XCIsXG4gICAgemhqd3kzOiBbXCJmMXVoZmxpaVwiLCBcImYyOG9tdXpcIl0sXG4gICAgQmk5MWs5YzogXCJmMXJxNzJ4Y1wiLFxuICAgIEJnb2U4d3k6IFwiZjFiZzVnOHJcIixcbiAgICBCd3pwcGZkOiBbXCJmMWg5Ym5za1wiLCBcImYxMng5dDBrXCJdLFxuICAgIG9ldHU0aTogXCJmMTllcnZyeVwiLFxuICAgIGdnNWU5bjogW1wiZjEyeDl0MGtcIiwgXCJmMWg5Ym5za1wiXSxcbiAgICBKd2VmOHk6IFwiZjE1d2trZjNcIixcbiAgICBCMmQ1M2ZxOiBcImYxZDZ2NXkyXCIsXG4gICAgYjY2MWJ3OiBcImYxNTY1YjluXCIsXG4gICAgQms2cjRpYTogW1wiZm0wN2d2b1wiLCBcImZ3bHNnNzJcIl0sXG4gICAgQjl6bjgwcDogXCJmenc2Zm15XCIsXG4gICAgQnBsZDIzMzogW1wiZndsc2c3MlwiLCBcImZtMDdndm9cIl0sXG4gICAgaXJvM3ptOiBcImZucDlscHRcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTRlczI3YnttaW4td2lkdGg6OTZweDt9XCIsIFwiLmYxNm11aHl5e2NvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMSk7fVwiLCBcIi5mMTBzNnduOXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxaWltcHAwe2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgXCIuZjE5dWhxdnV7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxbngxNGh4e2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmZucWE5MHB7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBcIi5mMXBocmFna3tjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mZnA3ZXNve2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQpO31cIiwgXCIuZm0xZWJ1Z3tib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYyOG9tdXp7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxdWhmbGlpe2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxaXh3NW80e2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIl0sXG4gIGg6IFtcIi5mM3ltYmRqOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yQ29tcG91bmRCcmFuZEZvcmVncm91bmQxSG92ZXIpO31cIiwgXCIuZjFyZ3RiOTU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mMXB1MjdmZjpob3ZlcjphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3JDb21wb3VuZEJyYW5kRm9yZWdyb3VuZDFQcmVzc2VkKTt9XCIsIFwiLmYxZDVjN2luOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxcnE3MnhjOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxYmc1ZzhyOmhvdmVye2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZjFoOWJuc2s6aG92ZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxMng5dDBrOmhvdmVye2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmYxOWVydnJ5OmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZjE1d2trZjM6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZEhvdmVyKTt9XCIsIFwiLmYxZDZ2NXkyOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mMTU2NWI5bjpob3ZlcjphY3RpdmV7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mbTA3Z3ZvOmhvdmVyOmFjdGl2ZXtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZndsc2c3Mjpob3ZlcjphY3RpdmV7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZnp3NmZteTpob3ZlcjphY3RpdmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mbnA5bHB0OmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kUHJlc3NlZCk7fVwiXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25TdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBuYXZUeXBlLFxuICAgIHBvcG92ZXJBcHBlYXJhbmNlXG4gIH0gPSBzdGF0ZTtcbiAgLy8gQXBwbHkgdW5kZXJseWluZyBmbHVlbnQgQnV0dG9uIHN0eWxlc1xuICBzdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi51c2VCdXR0b25TdHlsZXNfdW5zdGFibGUoc3RhdGUpXG4gIH07XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uQ2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgbmF2VHlwZSA9PT0gJ3ByZXYnICYmIHBvcG92ZXJBcHBlYXJhbmNlID09PSAnYnJhbmQnICYmIHN0eWxlcy5icmFuZFByZXZpb3VzLCBuYXZUeXBlID09PSAnbmV4dCcgJiYgcG9wb3ZlckFwcGVhcmFuY2UgPT09ICdicmFuZCcgJiYgc3R5bGVzLmJyYW5kTmV4dCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICByZXR1cm4gc3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25TdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbic7XG5pbXBvcnQgeyByZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbl91bnN0YWJsZSB9IGZyb20gJy4vcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24nO1xuaW1wb3J0IHsgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25TdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uU3R5bGVzLnN0eWxlcyc7XG4vKipcbiAqIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uIGNvbXBvbmVudFxuICpcbiAqIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uIGV4dGVuZHMgQnV0dG9uIGFuZCBpbmplY3RzIGFkZGl0aW9uYWwgc3R5bGluZyBhbmQgb25DbGljayBmdW5jdGlvbmFsaXR5XG4gKiB0byBtYXRjaCB0aGUgY29udGV4dCBwcm92aWRlZCBieSBUZWFjaGluZ1BvcG92ZXIgJiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFxuICovIGV4cG9ydCBjb25zdCBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25fdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbic7XG4iLCJpbXBvcnQgeyBnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMsIHNsb3QgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uIH0gZnJvbSAnLi4vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24nO1xuZXhwb3J0IGNvbnN0IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgeyBsYXlvdXQgPSAnY2VudGVyZWQnLCBpbml0aWFsU3RlcFRleHQsIGZpbmFsU3RlcFRleHQgfSA9IHByb3BzO1xuICAgIGNvbnN0IHByZXZpb3VzID0gc2xvdC5vcHRpb25hbChwcm9wcy5wcmV2aW91cywge1xuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIG5hdlR5cGU6ICdwcmV2JyxcbiAgICAgICAgICAgIGFsdFRleHQ6IGluaXRpYWxTdGVwVGV4dFxuICAgICAgICB9LFxuICAgICAgICByZW5kZXJCeURlZmF1bHQ6IHRydWUsXG4gICAgICAgIGVsZW1lbnRUeXBlOiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvblxuICAgIH0pO1xuICAgIGNvbnN0IG5leHQgPSBzbG90LmFsd2F5cyhwcm9wcy5uZXh0LCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgbmF2VHlwZTogJ25leHQnLFxuICAgICAgICAgICAgYWx0VGV4dDogZmluYWxTdGVwVGV4dFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBsYXlvdXQsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdkaXYnLFxuICAgICAgICAgICAgbmV4dDogVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24sXG4gICAgICAgICAgICBwcmV2aW91czogVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25cbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSwge1xuICAgICAgICAgICAgZWxlbWVudFR5cGU6ICdkaXYnXG4gICAgICAgIH0pLFxuICAgICAgICBwcmV2aW91cyxcbiAgICAgICAgbmV4dFxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICBjb25zdCB7IGxheW91dCB9ID0gc3RhdGU7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoc3RhdGUucm9vdCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgbGF5b3V0ID09PSAnY2VudGVyZWQnICYmIHN0YXRlLnByZXZpb3VzICYmIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5wcmV2aW91cywge30pLFxuICAgICAgICAgICAgc3RhdGUucm9vdC5jaGlsZHJlbixcbiAgICAgICAgICAgIGxheW91dCA9PT0gJ29mZnNldCcgJiYgc3RhdGUucHJldmlvdXMgJiYgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnByZXZpb3VzLCB7fSksXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUubmV4dCwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuZXhwb3J0IGNvbnN0IHRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlcicsXG4gIHByZXZpb3VzOiAnZnVpLVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyX19wcmV2aW91cycsXG4gIG5leHQ6ICdmdWktVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJfX25leHQnXG59O1xuLy8gVG9kbzogUGFnZSBjaGFuZ2UgYW5pbWF0aW9uICYgc3R5bGVzXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCZWl5M2U0OiBcImYxMDYzcHlxXCJcbiAgfSxcbiAgcm9vdENlbnRlcmVkOiB7XG4gICAgQnJmMXA4MDogXCJmMTg2OWJwbFwiLFxuICAgIGk4a2t2bDogMCxcbiAgICBCZWxyOXc0OiAwLFxuICAgIHJtb2h5ZzogXCJmMTlnYjFmNFwiXG4gIH0sXG4gIHJvb3RSaWdodEFsaWduZWQ6IHtcbiAgICBpOGtrdmw6IDAsXG4gICAgQmVscjl3NDogMCxcbiAgICBybW9oeWc6IFwiZjE5Z2IxZjRcIixcbiAgICBCcDM0ZmQ1OiBcImYxeTY1b2hxXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMTA2M3B5cXtmbGV4LWRpcmVjdGlvbjpyb3c7fVwiLCBcIi5mMTg2OWJwbHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt9XCIsIFtcIi5mMTlnYjFmNHtnYXA6OHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjE5Z2IxZjR7Z2FwOjhweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjF5NjVvaHEgOmZpcnN0LWNoaWxkey13ZWJraXQtbWFyZ2luLWVuZDphdXRvO21hcmdpbi1pbmxpbmUtZW5kOmF1dG87fVwiXVxufSk7XG4vKiogQXBwbGllcyBzdHlsZSBjbGFzc25hbWVzIHRvIHNsb3RzICovXG5leHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBsYXlvdXRcbiAgfSA9IHN0YXRlO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0ZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckNsYXNzTmFtZXMucm9vdCwgc3R5bGVzLnJvb3QsIGxheW91dCA9PT0gJ2NlbnRlcmVkJyA/IHN0eWxlcy5yb290Q2VudGVyZWQgOiBzdHlsZXMucm9vdFJpZ2h0QWxpZ25lZCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBpZiAoc3RhdGUucHJldmlvdXMpIHtcbiAgICBzdGF0ZS5wcmV2aW91cy5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJDbGFzc05hbWVzLnByZXZpb3VzLCBzdGF0ZS5wcmV2aW91cy5jbGFzc05hbWUpO1xuICB9XG4gIHN0YXRlLm5leHQuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQ2xhc3NOYW1lcy5uZXh0LCBzdGF0ZS5uZXh0LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlclN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyJztcbmltcG9ydCB7IHJlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3Rlcic7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJTdHlsZXMuc3R5bGVzJztcbi8qKlxuICogRGVmaW5lIGEgc3R5bGVkIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyLCB1c2luZyB0aGUgYHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyX3Vuc3RhYmxlYCBhbmQgYHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyU3R5bGVzX3Vuc3RhYmxlYFxuICogaG9va3MuXG4gKlxuICogVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIgY29udGFpbnMgcHJldmlvdXMvbmV4dCBidXR0b25zIGNvbmZpZ3VyZWQgZm9yIGNhcm91c2VsIG5hdmlnYXRpb24sIGFuZCBhIHJvb3Qgc2xvdCBmb3IgcGFnZSBjb3VudCBhbmQvb3IgcGFnZSBpbmRleCBuYXZpZ2F0aW9uLlxuICovIGV4cG9ydCBjb25zdCBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlciA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJfdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3Rlci5kaXNwbGF5TmFtZSA9ICdUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3Rlcic7XG4iLCJpbXBvcnQgeyB1c2VBcnJvd05hdmlnYXRpb25Hcm91cCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2Fyb3VzZWxWYWx1ZXNfdW5zdGFibGUgfSBmcm9tICcuLi9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbC9DYXJvdXNlbC91c2VDYXJvdXNlbFZhbHVlcyc7XG4vKipcbiAqIFJldHVybnMgdGhlIHByb3BzIGFuZCBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgdGhlIGNvbXBvbmVudFxuICogQHBhcmFtIHByb3BzIC0gVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYgcHJvcGVydGllc1xuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IEhUTUxFbGVtZW50IG9mIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2XG4gKi8gZXhwb3J0IGNvbnN0IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2X3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3QgZm9jdXNhYmxlR3JvdXBBdHRyID0gdXNlQXJyb3dOYXZpZ2F0aW9uR3JvdXAoe1xuICAgICAgICBjaXJjdWxhcjogZmFsc2UsXG4gICAgICAgIGF4aXM6ICdob3Jpem9udGFsJyxcbiAgICAgICAgbWVtb3JpemVDdXJyZW50OiBmYWxzZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICB1bnN0YWJsZV9oYXNEZWZhdWx0OiB0cnVlXG4gICAgfSk7XG4gICAgY29uc3QgdmFsdWVzID0gdXNlQ2Fyb3VzZWxWYWx1ZXNfdW5zdGFibGUoKHNuYXBzaG90KT0+c25hcHNob3QpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgcmVuZGVyTmF2QnV0dG9uOiBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgcm9vdDogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdkaXYnLCB7XG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICByb2xlOiAndGFibGlzdCcsXG4gICAgICAgICAgICB0YWJJbmRleDogMCxcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgLi4uZm9jdXNhYmxlR3JvdXBBdHRyLFxuICAgICAgICAgICAgY2hpbGRyZW46IG51bGxcbiAgICAgICAgfSksIHtcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KVxuICAgIH07XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgdmFsdWVJZENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgdmFsdWVJZENvbnRleHREZWZhdWx0VmFsdWUgPSAnJztcbmV4cG9ydCBjb25zdCB1c2VWYWx1ZUlkQ29udGV4dCA9ICgpPT57XG4gICAgdmFyIF9SZWFjdF91c2VDb250ZXh0O1xuICAgIHJldHVybiAoX1JlYWN0X3VzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KHZhbHVlSWRDb250ZXh0KSkgIT09IG51bGwgJiYgX1JlYWN0X3VzZUNvbnRleHQgIT09IHZvaWQgMCA/IF9SZWFjdF91c2VDb250ZXh0IDogdmFsdWVJZENvbnRleHREZWZhdWx0VmFsdWU7XG59O1xuZXhwb3J0IGNvbnN0IFZhbHVlSWRDb250ZXh0UHJvdmlkZXIgPSB2YWx1ZUlkQ29udGV4dC5Qcm92aWRlcjtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgVmFsdWVJZENvbnRleHRQcm92aWRlciB9IGZyb20gJy4vdmFsdWVJZENvbnRleHQnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdlxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgY29uc3QgeyB2YWx1ZXMsIHJlbmRlck5hdkJ1dHRvbiB9ID0gc3RhdGU7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiB2YWx1ZXMubWFwKCh2YWx1ZSk9Pi8qI19fUFVSRV9fKi8gX2pzeChWYWx1ZUlkQ29udGV4dFByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiByZW5kZXJOYXZCdXR0b24odmFsdWUpXG4gICAgICAgICAgICB9LCB2YWx1ZSkpXG4gICAgfSk7XG59O1xuIiwiaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUZvY3VzSW5kaWNhdG9yU3R5bGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IHRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2Q2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdidcbn07XG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCZWl5M2U0OiBcImYxMDYzcHlxXCIsXG4gICAgaThra3ZsOiBcImYxdWZub3BnXCIsXG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgQnJmMXA4MDogXCJmNGQ5ajIzXCIsXG4gICAgQmZwcTd6cDogMCxcbiAgICBnOWs2enQ6IDAsXG4gICAgQm40dm9xOTogMCxcbiAgICBnaXZpcXM6IFwiZjg5aHMzclwiLFxuICAgIEJ3ODFyZDc6IDAsXG4gICAga2RwdWdhOiAwLFxuICAgIGRtMjM4czogMCxcbiAgICBCNnhibW8wOiAwLFxuICAgIEIzd2hieDI6IFwiZjJrcmM5d1wiLFxuICAgIEI4cTVzMXc6IFwiZjhoa2kzeFwiLFxuICAgIEJjaTVvNWc6IFtcImYxZDI0NDhtXCIsIFwiZmZoNjd3aVwiXSxcbiAgICBuOHF3MTA6IFwiZjFiamlhMm9cIixcbiAgICBCZHJnd21wOiBbXCJmZmg2N3dpXCIsIFwiZjFkMjQ0OG1cIl1cbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMTA2M3B5cXtmbGV4LWRpcmVjdGlvbjpyb3c7fVwiLCBcIi5mMXVmbm9wZ3tjb2x1bW4tZ2FwOnZhcigtLXNwYWNpbmdIb3Jpem9udGFsWFMpO31cIiwgXCIuZjEyMm41OXthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBcIi5mNGQ5ajIze2p1c3RpZnktY29udGVudDpjZW50ZXI7fVwiLCBbXCIuZjg5aHMzcltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtvdXRsaW5lOnZhcigtLXN0cm9rZVdpZHRoVGhpY2spIHNvbGlkIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYya3JjOXdbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mOGhraTN4W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMWQyNDQ4bVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mZmg2N3dpW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFiamlhMm9bZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDt9XCJdXG59KTtcbi8qKiBBcHBsaWVzIHN0eWxlIGNsYXNzbmFtZXMgdG8gc2xvdHMgKi9cbmV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdlN0eWxlc191bnN0YWJsZSA9IHN0YXRlID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdlN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2JztcbmltcG9ydCB7IHJlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2X3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdic7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdlN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZTdHlsZXMuc3R5bGVzJztcbi8qKlxuICogRGVmaW5lIGEgc3R5bGVkIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2LCB1c2luZyB0aGUgYHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2X3Vuc3RhYmxlYCBhbmQgYHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2U3R5bGVzX3Vuc3RhYmxlYFxuICogaG9va3MuXG4gKlxuICogVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYgcHJvdmlkZXMgYW4gaW5kZXgtYmFzZWQgcGFnaW5hdGlvbiBsaXN0IHRvIGp1bXAgdG8gYW55IHBhZ2Ugd2l0aGluIHRoZSBjYXJvdXNlbC5cbiAqLyBleHBvcnQgY29uc3QgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdl91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdlN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2X3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYuZGlzcGxheU5hbWUgPSAnVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYnO1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQVJJQUJ1dHRvblByb3BzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWFyaWEnO1xuaW1wb3J0IHsgdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9wb3Zlcic7XG5pbXBvcnQgeyB1c2VUYWJzdGVyQXR0cmlidXRlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgaXNIVE1MRWxlbWVudCwgc2xvdCwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlQ2Fyb3VzZWxDb250ZXh0X3Vuc3RhYmxlIH0gZnJvbSAnLi4vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwvQ2Fyb3VzZWwvQ2Fyb3VzZWxDb250ZXh0JztcbmltcG9ydCB7IHVzZVZhbHVlSWRDb250ZXh0IH0gZnJvbSAnLi4vVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYvdmFsdWVJZENvbnRleHQnO1xuLyoqXG4gKiBDcmVhdGUgdGhlIHN0YXRlIHJlcXVpcmVkIHRvIHJlbmRlciBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvblN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b25fdW5zdGFibGUuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gcHJvcHMgZnJvbSB0aGlzIGluc3RhbmNlIG9mIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTEVsZW1lbnQgb2YgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b25cbiAqLyBleHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b25fdW5zdGFibGUgPSAocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCB7IG9uQ2xpY2ssIGFzID0gJ2EnIH0gPSBwcm9wcztcbiAgICBjb25zdCB2YWx1ZSA9IHVzZVZhbHVlSWRDb250ZXh0KCk7XG4gICAgY29uc3QgYXBwZWFyYW5jZSA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5hcHBlYXJhbmNlKTtcbiAgICBjb25zdCBzZWxlY3RQYWdlQnlWYWx1ZSA9IHVzZUNhcm91c2VsQ29udGV4dF91bnN0YWJsZSgoYyk9PmMuc2VsZWN0UGFnZUJ5VmFsdWUpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB1c2VDYXJvdXNlbENvbnRleHRfdW5zdGFibGUoKGMpPT5jLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCk9PntcbiAgICAgICAgb25DbGljayA9PT0gbnVsbCB8fCBvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkICYmIGlzSFRNTEVsZW1lbnQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgc2VsZWN0UGFnZUJ5VmFsdWUoZXZlbnQsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGRlZmF1bHRUYWJQcm9wcyA9IHVzZVRhYnN0ZXJBdHRyaWJ1dGVzKHtcbiAgICAgICAgZm9jdXNhYmxlOiB7XG4gICAgICAgICAgICBpc0RlZmF1bHQ6IGlzU2VsZWN0ZWRcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IF9jYXJvdXNlbEJ1dHRvbiA9IHNsb3QuYWx3YXlzKGdldEludHJpbnNpY0VsZW1lbnRQcm9wcyhhcywgdXNlQVJJQUJ1dHRvblByb3BzKHByb3BzLmFzLCBwcm9wcykpLCB7XG4gICAgICAgIGVsZW1lbnRUeXBlOiAnYnV0dG9uJyxcbiAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICByZWY6IHJlZixcbiAgICAgICAgICAgIHJvbGU6ICd0YWInLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAuLi5kZWZhdWx0VGFiUHJvcHNcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIF9jYXJvdXNlbEJ1dHRvbi5vbkNsaWNrID0gaGFuZGxlQ2xpY2s7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGlzU2VsZWN0ZWQsXG4gICAgICAgIGFwcGVhcmFuY2UsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHJvb3Q6ICdidXR0b24nXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3Q6IF9jYXJvdXNlbEJ1dHRvblxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsIiAgaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWpzeC1ydW50aW1lL2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvblxuICovIGV4cG9ydCBjb25zdCByZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5yb290LCB7fSk7XG59O1xuIiwiaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBjcmVhdGVDdXN0b21Gb2N1c0luZGljYXRvclN0eWxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuZXhwb3J0IGNvbnN0IHRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbidcbn07XG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHJvb3Qgc2xvdFxuICovXG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCY2VlaTljOiBcImYxazZmZHVoXCIsXG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIEJxZW52aWo6IFwiZjF4ODJndWFcIixcbiAgICBhOWI2Nzc6IFwiZjFvM2NidzRcIixcbiAgICBEZTNwenE6IFwiZmZwN2Vzb1wiXG4gIH0sXG4gIHJvb3RVbnNlbGVjdGVkOiB7XG4gICAgQmdmZzVkYTogMCxcbiAgICBCOXhhdjBnOiAwLFxuICAgIG9pdmp3ZTogMCxcbiAgICBCbjBxZ3ptOiAwLFxuICAgIEI0ZzluZWI6IDAsXG4gICAgemhqd3kzOiAwLFxuICAgIHd2cHFlNTogMCxcbiAgICBpYnY2aGg6IDAsXG4gICAgdTFtdGp1OiAwLFxuICAgIGgzYzVybTogMCxcbiAgICB2cmFmang6IDAsXG4gICAgQmVrcmM0aTogMCxcbiAgICBpOHZ2cWM6IDAsXG4gICAgZzJ1M3dlOiAwLFxuICAgIGljdnlvdDogMCxcbiAgICBCNGo1MmZvOiAwLFxuICAgIGlyc3dwczogXCJmM2JoZ3FoXCIsXG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZjVxMmN2c1wiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmMWM1ZnZxZ1wiLFxuICAgIEJ3MHh4a246IDAsXG4gICAgb2VhdWVoOiAwLFxuICAgIEJwZDRpcW06IDAsXG4gICAgQmVmYjRsZzogXCJmNzF4eDdcIixcbiAgICBCZnBxN3pwOiAwLFxuICAgIGc5azZ6dDogMCxcbiAgICBCbjR2b3E5OiAwLFxuICAgIGdpdmlxczogXCJmODloczNyXCIsXG4gICAgQnc4MXJkNzogMCxcbiAgICBrZHB1Z2E6IDAsXG4gICAgZG0yMzhzOiAwLFxuICAgIEI2eGJtbzA6IDAsXG4gICAgQjN3aGJ4MjogXCJmMmtyYzl3XCIsXG4gICAgQjhxNXMxdzogXCJmOGhraTN4XCIsXG4gICAgQmNpNW81ZzogW1wiZjFkMjQ0OG1cIiwgXCJmZmg2N3dpXCJdLFxuICAgIG44cXcxMDogXCJmMWJqaWEyb1wiLFxuICAgIEJkcmd3bXA6IFtcImZmaDY3d2lcIiwgXCJmMWQyNDQ4bVwiXSxcbiAgICBEZTNwenE6IFwiZnJnaWlmM1wiLFxuICAgIEJmY2x2Mzc6IFwiZjE0bGZ1ZDVcIixcbiAgICBCMzcyYzQ2OiBcImZuZ2VraXFcIlxuICB9LFxuICByb290U2VsZWN0ZWQ6IHtcbiAgICBCdzB4eGtuOiAwLFxuICAgIG9lYXVlaDogMCxcbiAgICBCcGQ0aXFtOiAwLFxuICAgIEJlZmI0bGc6IFwiZjcxeHg3XCIsXG4gICAgYTliNjc3OiBcImZqdzVmeDdcIixcbiAgICBCZ2ZnNWRhOiAwLFxuICAgIEI5eGF2MGc6IDAsXG4gICAgb2l2andlOiAwLFxuICAgIEJuMHFnem06IDAsXG4gICAgQjRnOW5lYjogMCxcbiAgICB6aGp3eTM6IDAsXG4gICAgd3ZwcWU1OiAwLFxuICAgIGlidjZoaDogMCxcbiAgICB1MW10anU6IDAsXG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIGk4dnZxYzogMCxcbiAgICBnMnUzd2U6IDAsXG4gICAgaWN2eW90OiAwLFxuICAgIEI0ajUyZm86IDAsXG4gICAgaXJzd3BzOiBcImYzYmhncWhcIixcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmZjNnbHc2XCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxYzVmdnFnXCIsXG4gICAgQmZwcTd6cDogMCxcbiAgICBnOWs2enQ6IDAsXG4gICAgQm40dm9xOTogMCxcbiAgICBnaXZpcXM6IFwiZjg5aHMzclwiLFxuICAgIEJ3ODFyZDc6IDAsXG4gICAga2RwdWdhOiAwLFxuICAgIGRtMjM4czogMCxcbiAgICBCNnhibW8wOiAwLFxuICAgIEIzd2hieDI6IFwiZjJrcmM5d1wiLFxuICAgIEI4cTVzMXc6IFwiZjhoa2kzeFwiLFxuICAgIEJjaTVvNWc6IFtcImYxZDI0NDhtXCIsIFwiZmZoNjd3aVwiXSxcbiAgICBuOHF3MTA6IFwiZjFiamlhMm9cIixcbiAgICBCZHJnd21wOiBbXCJmZmg2N3dpXCIsIFwiZjFkMjQ0OG1cIl0sXG4gICAgQnN3NmZ2ZzogXCJmZTJhZTFrXCJcbiAgfSxcbiAgcm9vdEJyYW5kOiB7XG4gICAgRGUzcHpxOiBcImYxMHM2d245XCJcbiAgfSxcbiAgcm9vdEJyYW5kVW5zZWxlY3RlZDoge1xuICAgIERlM3B6cTogXCJmcnhlN2VsXCIsXG4gICAgQmZjbHYzNzogXCJmMTRsZnVkNVwiLFxuICAgIEIzNzJjNDY6IFwiZm5nZWtpcVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZjFrNmZkdWh7Y3Vyc29yOnBvaW50ZXI7fVwiLCBcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBcIi5mMXg4Mmd1YXtoZWlnaHQ6OHB4O31cIiwgXCIuZjFvM2NidzR7d2lkdGg6OHB4O31cIiwgXCIuZmZwN2Vzb3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kKTt9XCIsIFtcIi5mM2JoZ3Foe2JvcmRlcjpub25lO31cIiwge1xuICAgIHA6IC0yXG4gIH1dLCBbXCIuZjVxMmN2c3tib3JkZXItcmFkaXVzOjUwJTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxYzVmdnFne3BhZGRpbmc6MHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjcxeHg3e291dGxpbmU6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKSBzb2xpZCB0cmFuc3BhcmVudDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmY4OWhzM3JbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17b3V0bGluZTp2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMmtyYzl3W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjhoa2kzeFtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFkMjQ0OG1bZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZmZoNjd3aVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxYmppYTJvW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mcmdpaWYze2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kKSAzMCUsIHRyYW5zcGFyZW50KTt9XCIsIFtcIi5mNzF4eDd7b3V0bGluZTp2YXIoLS1zdHJva2VXaWR0aFRoaW4pIHNvbGlkIHRyYW5zcGFyZW50O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5manc1Zng3e3dpZHRoOjE2cHg7fVwiLCBbXCIuZjNiaGdxaHtib3JkZXI6bm9uZTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgW1wiLmZmM2dsdzZ7Ym9yZGVyLXJhZGl1czo0cHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWM1ZnZxZ3twYWRkaW5nOjBweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmY4OWhzM3JbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17b3V0bGluZTp2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSBzb2xpZCB2YXIoLS1jb2xvclN0cm9rZUZvY3VzMik7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMmtyYzl3W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjEwczZ3bjl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiLCBcIi5mcnhlN2Vse2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKSAzMCUsIHRyYW5zcGFyZW50KTt9XCJdLFxuICB0OiBbXCJAc3VwcG9ydHMgbm90IChjb2xvcjogY29sb3ItbWl4KGluIGxjaCwgd2hpdGUsIGJsYWNrKSl7LmYxNGxmdWQ1e29wYWNpdHk6MC4zO319XCIsIFwiQHN1cHBvcnRzIG5vdCAoY29sb3I6IGNvbG9yLW1peChpbiBsY2gsIHdoaXRlLCBibGFjaykpey5mbmdla2lxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQpO319XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mZTJhZTFre2JhY2tncm91bmQtY29sb3I6Q2FudmFzVGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXVxufSk7XG4vKipcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b25TdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBhcHBlYXJhbmNlLFxuICAgIGlzU2VsZWN0ZWRcbiAgfSA9IHN0YXRlO1xuICBjb25zdCBicmFuZFN0eWxlcyA9IGlzU2VsZWN0ZWQgPyBzdHlsZXMucm9vdEJyYW5kIDogc3R5bGVzLnJvb3RCcmFuZFVuc2VsZWN0ZWQ7XG4gIHN0YXRlLnJvb3QuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uQ2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgaXNTZWxlY3RlZCA/IHN0eWxlcy5yb290U2VsZWN0ZWQgOiBzdHlsZXMucm9vdFVuc2VsZWN0ZWQsIGFwcGVhcmFuY2UgPT09ICdicmFuZCcgJiYgYnJhbmRTdHlsZXMsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbl91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b24nO1xuaW1wb3J0IHsgcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b25fdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uJztcbmltcG9ydCB7IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvblN0eWxlcy5zdHlsZXMnO1xuLyoqXG4gKiBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbiBpcyBhIGJ1dHRvbiB0byBqdW1wIHRvIGEgc2luZ2xlIHBhZ2Ugd2l0aGluIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsXG4gKlxuICogSXQncyB2YWx1ZSBpcyBpbmplY3RlZCB2aWEgY29udGV4dCBhbmQgbXVzdCBiZSB3cmFwcGVkIHdpdGggYSBWYWx1ZUlkQ29udGV4dFByb3ZpZGVyIChhdXRvbWF0aWNhbGx5IGhhbmRsZWQgdmlhIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2KVxuICovIGV4cG9ydCBjb25zdCBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b25fdW5zdGFibGUoc3RhdGUpO1xufSk7XG5UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbic7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VQb3BvdmVyU3VyZmFjZV91bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyJztcbi8qKlxuICogQ3JlYXRlIHRoZSBzdGF0ZSByZXF1aXJlZCB0byByZW5kZXIgVGVhY2hpbmdQb3BvdmVyU3VyZmFjZS5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc3RhdGUgY2FuIGJlIG1vZGlmaWVkIHdpdGggaG9va3Mgc3VjaCBhcyB1c2VUZWFjaGluZ1BvcG92ZXJTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlLFxuICogYmVmb3JlIGJlaW5nIHBhc3NlZCB0byByZW5kZXJUZWFjaGluZ1BvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIHByb3BzIGZyb20gdGhpcyBpbnN0YW5jZSBvZiBUZWFjaGluZ1BvcG92ZXJTdXJmYWNlXG4gKiBAcGFyYW0gcmVmIC0gcmVmZXJlbmNlIHRvIHJvb3QgSFRNTERpdkVsZW1lbnQgb2YgVGVhY2hpbmdQb3BvdmVyU3VyZmFjZVxuICovIGV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlID0gKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VQb3BvdmVyU3VyZmFjZV91bnN0YWJsZShwcm9wcywgcmVmKTtcbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIiwiaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IHVzZVBvcG92ZXJTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXBvcG92ZXInO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmV4cG9ydCBjb25zdCB0ZWFjaGluZ1BvcG92ZXJTdXJmYWNlQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1UZWFjaGluZ1BvcG92ZXJTdXJmYWNlJ1xufTtcbmNvbnN0IHVzZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjIzenphMVwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImYxa2lqemZ1XCIsXG4gICAgYTliNjc3OiBcImYxZHhxdWpnXCIsXG4gICAgQjdjazg0ZDogXCJmMWU0bHFselwiXG4gIH1cbn0sIHtcbiAgZDogW1tcIi5mMjN6emExe3BhZGRpbmc6dmFyKC0tc3BhY2luZ1ZlcnRpY2FsTCkgdmFyKC0tc3BhY2luZ1ZlcnRpY2FsTCk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWtpanpmdXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c1hMYXJnZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxZHhxdWpne3dpZHRoOjI4OHB4O31cIiwgXCIuZjFlNGxxbHp7Ym94LXNpemluZzpjb250ZW50LWJveDt9XCJdXG59KTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgVGVhY2hpbmdQb3BvdmVyU3VyZmFjZSBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRlYWNoaW5nUG9wb3ZlclN1cmZhY2VTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIC8vIE1ha2Ugc3VyZSB0byBtZXJnZSB0ZWFjaGluZyBidWJibGUgc3VyZmFjZSBwcmlvciB0byBwb3BvdmVyIHN0eWxlc1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0ZWFjaGluZ1BvcG92ZXJTdXJmYWNlQ2xhc3NOYW1lcy5yb290LCBzdHlsZXMucm9vdCwgc3RhdGUucm9vdC5jbGFzc05hbWUpO1xuICBjb25zdCB1cGRhdGVkU3RhdGUgPSB1c2VQb3BvdmVyU3VyZmFjZVN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gIHJldHVybiB1cGRhdGVkU3RhdGU7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlVGVhY2hpbmdQb3BvdmVyU3VyZmFjZVN0eWxlcy5zdHlsZXMuanMubWFwIiwiLyoqIEBqc3hSdW50aW1lIGNsYXNzaWMgKi8gLyoqIEBqc3ggY3JlYXRlRWxlbWVudCAqLyBpbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVuZGVyUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9wb3Zlcic7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFBvcG92ZXJTdXJmYWNlXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRlYWNoaW5nUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIC8vIEZvciBub3cgd2UgYXJlIGp1c3QgZXh0ZW5kaW5nIHRoZSBiYXNlIHN1cmZhY2VcbiAgICByZXR1cm4gcmVuZGVyUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUoc3RhdGUpO1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgdXNlVGVhY2hpbmdQb3BvdmVyU3VyZmFjZV91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyU3VyZmFjZSc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUZWFjaGluZ1BvcG92ZXJTdXJmYWNlU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyByZW5kZXJUZWFjaGluZ1BvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJUZWFjaGluZ1BvcG92ZXJTdXJmYWNlJztcbi8qKlxuICogVGVhY2hpbmdQb3BvdmVyU3VyZmFjZSBjb21wb25lbnQgcmVuZGVycyByZWFjdCBjaGlsZHJlbiBpbiBhIHBvc2l0aW9uZWQgYm94XG4gKlxuICogVGVhY2hpbmdQb3BvdmVyU3VyZmFjZSBpcyBhIGRpcmVjdCBleHRlbnNpb24gb2YgUG9wb3ZlclN1cmZhY2UsIHdpdGggaXQncyBvd24gc3R5bGluZyBjb250ZXh0IGhvb2tzIGF2YWlsYWJsZS5cbiAqLyBleHBvcnQgY29uc3QgVGVhY2hpbmdQb3BvdmVyU3VyZmFjZSA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZik9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlVGVhY2hpbmdQb3BvdmVyU3VyZmFjZVN0eWxlc191bnN0YWJsZShzdGF0ZSk7XG4gICAgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlKCd1c2VUZWFjaGluZ1BvcG92ZXJTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlJykoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJUZWFjaGluZ1BvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuVGVhY2hpbmdQb3BvdmVyU3VyZmFjZS5kaXNwbGF5TmFtZSA9ICdUZWFjaGluZ1BvcG92ZXJTdXJmYWNlJztcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldEludHJpbnNpY0VsZW1lbnRQcm9wcywgdXNlRXZlbnRDYWxsYmFjaywgc2xvdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGlzbWlzc0ZpbGxlZCwgRGlzbWlzc1JlZ3VsYXIsIGJ1bmRsZUljb24gfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtcG9wb3Zlcic7XG5jb25zdCBEaXNtaXNzSWNvbiA9IGJ1bmRsZUljb24oRGlzbWlzc0ZpbGxlZCwgRGlzbWlzc1JlZ3VsYXIpO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBwcm9wcyBhbmQgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIHRoZSBjb21wb25lbnRcbiAqIEBwYXJhbSBwcm9wcyAtIFRlYWNoaW5nUG9wb3ZlclRpdGxlIHByb3BlcnRpZXNcbiAqIEBwYXJhbSByZWYgLSByZWZlcmVuY2UgdG8gcm9vdCBIVE1MRWxlbWVudCBvZiBUZWFjaGluZ1BvcG92ZXJUaXRsZVxuICovIGV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJUaXRsZV91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHsgZGlzbWlzc0J1dHRvbiB9ID0gcHJvcHM7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlKChjb250ZXh0KT0+Y29udGV4dC5zZXRPcGVuKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUG9wb3ZlckNvbnRleHRfdW5zdGFibGUoKGNvbnRleHQpPT5jb250ZXh0LnRyaWdnZXJSZWYpO1xuICAgIGNvbnN0IGFwcGVhcmFuY2UgPSB1c2VQb3BvdmVyQ29udGV4dF91bnN0YWJsZSgoY29udGV4dCk9PmNvbnRleHQuYXBwZWFyYW5jZSk7XG4gICAgY29uc3Qgb25EaXNtaXNzQnV0dG9uQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldik9PntcbiAgICAgICAgaWYgKCFldi5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGV2LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyaWdnZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBlYXJhbmNlLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiAnaDInLFxuICAgICAgICAgICAgZGlzbWlzc0J1dHRvbjogJ2J1dHRvbidcbiAgICAgICAgfSxcbiAgICAgICAgcm9vdDogc2xvdC5hbHdheXMoZ2V0SW50cmluc2ljRWxlbWVudFByb3BzKCdoMicsIHtcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLCB7XG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2gyJ1xuICAgICAgICB9KSxcbiAgICAgICAgZGlzbWlzc0J1dHRvbjogc2xvdC5vcHRpb25hbChkaXNtaXNzQnV0dG9uLCB7XG4gICAgICAgICAgICByZW5kZXJCeURlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChEaXNtaXNzSWNvbiwgbnVsbCksXG4gICAgICAgICAgICAgICAgb25DbGljazogb25EaXNtaXNzQnV0dG9uQ2xpY2ssXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiAnZGlzbWlzcycsXG4gICAgICAgICAgICAgICAgJ2FyaWEtaGlkZGVuJzogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnYnV0dG9uJ1xuICAgICAgICB9KVxuICAgIH07XG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtanN4LXJ1bnRpbWUvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGFzc2VydFNsb3RzIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG4vKipcbiAqIFJlbmRlciB0aGUgZmluYWwgSlNYIG9mIFRlYWNoaW5nUG9wb3ZlclRpdGxlXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRlYWNoaW5nUG9wb3ZlclRpdGxlX3Vuc3RhYmxlID0gKHN0YXRlKT0+e1xuICAgIGFzc2VydFNsb3RzKHN0YXRlKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4cyhzdGF0ZS5yb290LCB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzdGF0ZS5yb290LmNoaWxkcmVuLFxuICAgICAgICAgICAgc3RhdGUuZGlzbWlzc0J1dHRvbiAmJiAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuZGlzbWlzc0J1dHRvbiwge30pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzLCBzaG9ydGhhbmRzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRm9jdXNJbmRpY2F0b3JTdHlsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHRva2VucywgdHlwb2dyYXBoeVN0eWxlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5leHBvcnQgY29uc3QgdGVhY2hpbmdQb3BvdmVyVGl0bGVDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLVRlYWNoaW5nUG9wb3ZlclRpdGxlJyxcbiAgZGlzbWlzc0J1dHRvbjogJ2Z1aS1UZWFjaGluZ1BvcG92ZXJUaXRsZV9fZGlzbWlzc0J1dHRvbidcbn07XG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICByb290OiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCZWl5M2U0OiBcImYxMDYzcHlxXCIsXG4gICAgQnJmMXA4MDogXCJmMTg2OWJwbFwiLFxuICAgIEJlMnR3ZDc6IFwiZm9kNWlrblwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIHNqNTV6ZDogXCJmMTluMGU1XCIsXG4gICAgQmc5Nmd3cDogXCJmYWF6NTdrXCIsXG4gICAgQnlvajh0djogXCJmNWI0N2hhXCIsXG4gICAgQjZvZjNqYTogXCJmMWprYWdnNVwiLFxuICAgIGpyYXBreTogXCJmaTJsanhkXCJcbiAgfSxcbiAgcm9vdEJyYW5kOiB7XG4gICAgc2o1NXpkOiBcImYxcGhyYWdrXCJcbiAgfSxcbiAgZGlzbWlzc0J1dHRvbjoge1xuICAgIHFoZjh4cTogXCJmMTBwaTEzblwiLFxuICAgIEJnZmc1ZGE6IDAsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiBbXCJmMW43MW90blwiLCBcImYxZGVlZml3XCJdLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZjg4MDM1d1wiLFxuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIEJhaHF0cmY6IFwiZms2Zm91Y1wiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJnOTZnd3A6IFwiZjFpM2l1bWlcIixcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBCN2NrODRkOiBcImYxZXd0cWNsXCIsXG4gICAgQjdvajZqYTogW1wiZjNmZzJsclwiLCBcImYxM2F2NmQ0XCJdLFxuICAgIEJibWI3ZXA6IFtcImZ6aTZocGdcIiwgXCJmeW93Z2Y0XCJdLFxuICAgIEJmcHE3enA6IDAsXG4gICAgZzlrNnp0OiAwLFxuICAgIEJuNHZvcTk6IDAsXG4gICAgZ2l2aXFzOiBcImY4OWhzM3JcIixcbiAgICBCdzgxcmQ3OiAwLFxuICAgIGtkcHVnYTogMCxcbiAgICBkbTIzOHM6IDAsXG4gICAgQjZ4Ym1vMDogMCxcbiAgICBCM3doYngyOiBcImYya3JjOXdcIixcbiAgICBCOHE1czF3OiBcImY4aGtpM3hcIixcbiAgICBCY2k1bzVnOiBbXCJmMWQyNDQ4bVwiLCBcImZmaDY3d2lcIl0sXG4gICAgbjhxdzEwOiBcImYxYmppYTJvXCIsXG4gICAgQmRyZ3dtcDogW1wiZmZoNjd3aVwiLCBcImYxZDI0NDhtXCJdLFxuICAgIEp5eTRwYTogXCJmMWxmZWV3XCJcbiAgfSxcbiAgZGlzbWlzc0JyYW5kOiB7XG4gICAgc2o1NXpkOiBcImYxcGhyYWdrXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjIyaWFnd3tkaXNwbGF5OmZsZXg7fVwiLCBcIi5mMTA2M3B5cXtmbGV4LWRpcmVjdGlvbjpyb3c7fVwiLCBcIi5mMTg2OWJwbHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt9XCIsIFwiLmZvZDVpa257Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTQwMCk7fVwiLCBcIi5mbDQzdWVme2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7fVwiLCBcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmZhYXo1N2t7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2U0MDApO31cIiwgXCIuZjViNDdoYXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjaW5nVmVydGljYWxTKTt9XCIsIFwiLmYxamthZ2c1e21hcmdpbi10b3A6dmFyKC0tc3BhY2luZ0hvcml6b250YWxOb25lKTt9XCIsIFwiLmZpMmxqeGR7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nSG9yaXpvbnRhbE5vbmUpO31cIiwgXCIuZjFwaHJhZ2t7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBbXCIuZjg4MDM1d3tib3JkZXI6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKSBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgXCIuZjEyMm41OXthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBcIi5mMWs2ZmR1aHtjdXJzb3I6cG9pbnRlcjt9XCIsIFwiLmZrNmZvdWN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseUJhc2UpO31cIiwgXCIuZmtoajUwOHtmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMzAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgXCIuZjFpM2l1bWl7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodEJhc2UzMDApO31cIiwgXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBcIi5mM2ZnMmxye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c05vbmUpO31cIiwgXCIuZjEzYXY2ZDR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNOb25lKTt9XCIsIFwiLmZ6aTZocGd7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTm9uZSk7fVwiLCBcIi5meW93Z2Y0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTm9uZSk7fVwiLCBcIi5mMW43MW90bntib3JkZXItcmlnaHQtc3R5bGU6bm9uZTt9XCIsIFwiLmYxZGVlZml3e2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7fVwiLCBbXCIuZjg5aHMzcltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtvdXRsaW5lOnZhcigtLXN0cm9rZVdpZHRoVGhpY2spIHNvbGlkIHZhcigtLWNvbG9yU3Ryb2tlRm9jdXMyKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYya3JjOXdbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mOGhraTN4W2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMWQyNDQ4bVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mZmg2N3dpW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjFiamlhMm9bZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxbGZlZXd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6YXV0bzttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG87fVwiXVxufSk7XG4vKiogQXBwbGllcyBzdHlsZSBjbGFzc25hbWVzIHRvIHNsb3RzICovXG5leHBvcnQgY29uc3QgdXNlVGVhY2hpbmdQb3BvdmVyVGl0bGVTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBhcHBlYXJhbmNlXG4gIH0gPSBzdGF0ZTtcbiAgc3RhdGUucm9vdC5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModGVhY2hpbmdQb3BvdmVyVGl0bGVDbGFzc05hbWVzLnJvb3QsIHN0eWxlcy5yb290LCBhcHBlYXJhbmNlID09PSAnYnJhbmQnICYmIHN0eWxlcy5yb290QnJhbmQsIHN0YXRlLnJvb3QuY2xhc3NOYW1lKTtcbiAgaWYgKHN0YXRlLmRpc21pc3NCdXR0b24pIHtcbiAgICBzdGF0ZS5kaXNtaXNzQnV0dG9uLmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3Nlcyh0ZWFjaGluZ1BvcG92ZXJUaXRsZUNsYXNzTmFtZXMuZGlzbWlzc0J1dHRvbiwgc3R5bGVzLmRpc21pc3NCdXR0b24sIGFwcGVhcmFuY2UgPT09ICdicmFuZCcgPyBzdHlsZXMuZGlzbWlzc0JyYW5kIDogdW5kZWZpbmVkLCBzdGF0ZS5kaXNtaXNzQnV0dG9uLmNsYXNzTmFtZSk7XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVRlYWNoaW5nUG9wb3ZlclRpdGxlU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJUaXRsZV91bnN0YWJsZSB9IGZyb20gJy4vdXNlVGVhY2hpbmdQb3BvdmVyVGl0bGUnO1xuaW1wb3J0IHsgcmVuZGVyVGVhY2hpbmdQb3BvdmVyVGl0bGVfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRlYWNoaW5nUG9wb3ZlclRpdGxlJztcbmltcG9ydCB7IHVzZVRlYWNoaW5nUG9wb3ZlclRpdGxlU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VUZWFjaGluZ1BvcG92ZXJUaXRsZVN0eWxlcy5zdHlsZXMnO1xuaW1wb3J0IHsgdXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG4vKipcbiAqIERlZmluZSBhIHN0eWxlZCBUZWFjaGluZ1BvcG92ZXJUaXRsZSwgdXNpbmcgdGhlIGB1c2VUZWFjaGluZ1BvcG92ZXJUaXRsZV91bnN0YWJsZWAgYW5kIGB1c2VUZWFjaGluZ1BvcG92ZXJUaXRsZVN0eWxlc191bnN0YWJsZWBcbiAqIGhvb2tzLlxuICpcbiAqIFRlYWNoaW5nUG9wb3ZlclRpdGxlIGlzIHNpbWlsYXIgdG8gVGVhY2hpbmdQb3BvdmVySGVhZGVyLCBidXQgaXQgaXMgaW50ZW5kZWQgdG8gYmUgcGxhY2VkIHdpdGhpbiBhIFRlYWNoaW5nUG9wb3ZlckJvZHlcbiAqIFRlYWNoaW5nUG9wb3ZlclRpdGxlIGNhbiBhbHNvIG9wdGlvbmFsbHkgcmVuZGVyIGEgZGlzbWlzcyBidXR0b24sIGhvd2V2ZXIgdGhpcyBzaG91bGQgb25seSBiZSBlbmFibGVkIHdoZW4gdGhlcmUgaXMgbm8gVGVhY2hpbmdQb3BvdmVySGVhZGVyL2Rpc21pc3MuXG4gKi8gZXhwb3J0IGNvbnN0IFRlYWNoaW5nUG9wb3ZlclRpdGxlID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVGVhY2hpbmdQb3BvdmVyVGl0bGVfdW5zdGFibGUocHJvcHMsIHJlZik7XG4gICAgdXNlVGVhY2hpbmdQb3BvdmVyVGl0bGVTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHVzZUN1c3RvbVN0eWxlSG9va191bnN0YWJsZSgndXNlVGVhY2hpbmdQb3BvdmVyVGl0bGVTdHlsZXNfdW5zdGFibGUnKShzdGF0ZSk7XG4gICAgcmV0dXJuIHJlbmRlclRlYWNoaW5nUG9wb3ZlclRpdGxlX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuVGVhY2hpbmdQb3BvdmVyVGl0bGUuZGlzcGxheU5hbWUgPSAnVGVhY2hpbmdQb3BvdmVyVGl0bGUnO1xuIiwiaW1wb3J0IHsgdXNlUG9wb3Zlcl91bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyJztcbmV4cG9ydCBjb25zdCB1c2VUZWFjaGluZ1BvcG92ZXJfdW5zdGFibGUgPSAocHJvcHMpPT57XG4gICAgY29uc3QgcG9wb3ZlclN0YXRlID0gdXNlUG9wb3Zlcl91bnN0YWJsZShwcm9wcyk7XG4gICAgdmFyIF9wcm9wc193aXRoQXJyb3csIF9wcm9wc190cmFwRm9jdXM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucG9wb3ZlclN0YXRlLFxuICAgICAgICB3aXRoQXJyb3c6IChfcHJvcHNfd2l0aEFycm93ID0gcHJvcHMud2l0aEFycm93KSAhPT0gbnVsbCAmJiBfcHJvcHNfd2l0aEFycm93ICE9PSB2b2lkIDAgPyBfcHJvcHNfd2l0aEFycm93IDogdHJ1ZSxcbiAgICAgICAgLy8gV2UgdHJhcCBmb2N1cyBiZWNhdXNlIHRoZSBkZWZhdWx0IFRlYWNoaW5nUG9wb3ZlciB2aWV3IGhhcyBidXR0b25zL2Nhcm91c2VsLlxuICAgICAgICB0cmFwRm9jdXM6IChfcHJvcHNfdHJhcEZvY3VzID0gcHJvcHMudHJhcEZvY3VzKSAhPT0gbnVsbCAmJiBfcHJvcHNfdHJhcEZvY3VzICE9PSB2b2lkIDAgPyBfcHJvcHNfdHJhcEZvY3VzIDogdHJ1ZVxuICAgIH07XG59O1xuIiwiaW1wb3J0IHsgcmVuZGVyUG9wb3Zlcl91bnN0YWJsZSB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1wb3BvdmVyJztcbi8qKlxuICogUmVuZGVyIHRoZSBmaW5hbCBKU1ggb2YgVGVhY2hpbmdQb3BvdmVyXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlclRlYWNoaW5nUG9wb3Zlcl91bnN0YWJsZSA9IHJlbmRlclBvcG92ZXJfdW5zdGFibGU7XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUZWFjaGluZ1BvcG92ZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZVRlYWNoaW5nUG9wb3Zlcic7XG5pbXBvcnQgeyByZW5kZXJUZWFjaGluZ1BvcG92ZXJfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclRlYWNoaW5nUG9wb3Zlcic7XG4vKipcbiAqIEFuIGV4dGVuc2lvbiBjbGFzcyBvZiBQb3BvdmVyIHdoaWNoIGRlZmF1bHRzIHRvIHdpdGhBcnJvdyBhbmQgRm9jdXNUcmFwIGVuYWJsZWQuXG4gKi8gZXhwb3J0IGNvbnN0IFRlYWNoaW5nUG9wb3ZlciA9IChwcm9wcyk9PntcbiAgICBjb25zdCBzdGF0ZSA9IHVzZVRlYWNoaW5nUG9wb3Zlcl91bnN0YWJsZShwcm9wcyk7XG4gICAgcmV0dXJuIHJlbmRlclRlYWNoaW5nUG9wb3Zlcl91bnN0YWJsZShzdGF0ZSk7XG59O1xuVGVhY2hpbmdQb3BvdmVyLmRpc3BsYXlOYW1lID0gJ1RlYWNoaW5nUG9wb3Zlcic7XG4iLCIvLyBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURURcbmltcG9ydCB7IEdlbkljb24gfSBmcm9tICcuLi9saWInO1xuZXhwb3J0IGZ1bmN0aW9uIEltSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5LjIyNmwtOC02LjIxLTggNi4yMXYtMi41MzJsOC02LjIxIDggNi4yMXpNMTQgOXY2aC00di00aC00djRoLTR2LTZsNi00LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSG9tZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwLjVsLTggOCAxLjUgMS41IDEuNS0xLjV2Ni41aDR2LTNoMnYzaDR2LTYuNWwxLjUgMS41IDEuNS0xLjUtOC04ek04IDdjLTAuNTUyIDAtMS0wLjQ0OC0xLTFzMC40NDgtMSAxLTFjMC41NTIgMCAxIDAuNDQ4IDEgMXMtMC40NDggMS0xIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSG9tZTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOS41bC0zLTN2LTQuNWgtMnYyLjVsLTMtMy04IDh2MC41aDJ2NWg1di0zaDJ2M2g1di01aDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltT2ZmaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTZoOHYtMTZoLTh2MTZ6TTUgMmgydjJoLTJ2LTJ6TTUgNmgydjJoLTJ2LTJ6TTUgMTBoMnYyaC0ydi0yek0xIDJoMnYyaC0ydi0yek0xIDZoMnYyaC0ydi0yek0xIDEwaDJ2MmgtMnYtMnpNOSA1aDd2MWgtN3pNOSAxNmgydi00aDN2NGgydi05aC03elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU5ld3NwYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0di0yaC0xNHYxMWMwIDAuNTUyIDAuNDQ4IDEgMSAxaDEzLjVjMC44MjggMCAxLjUtMC42NzIgMS41LTEuNXYtOC41aC0yek0xMyAxM2gtMTJ2LTEwaDEydjEwek0yIDVoMTB2MWgtMTB6TTggN2g0djFoLTR6TTggOWg0djFoLTR6TTggMTFoM3YxaC0zek0yIDdoNXY1aC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBlbmNpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDBjMS4zODEgMCAyLjUgMS4xMTkgMi41IDIuNSAwIDAuNTYzLTAuMTg2IDEuMDgyLTAuNSAxLjVsLTEgMS0zLjUtMy41IDEtMWMwLjQxOC0wLjMxNCAwLjkzNy0wLjUgMS41LTAuNXpNMSAxMS41bC0xIDQuNSA0LjUtMSA5LjI1LTkuMjUtMy41LTMuNS05LjI1IDkuMjV6TTExLjE4MSA1LjY4MWwtNyA3LTAuODYyLTAuODYyIDctNyAwLjg2MiAwLjg2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QZW5jaWwyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTBsMi0xIDctNy0xLTEtNyA3LTEgMnpNNC41MiAxMy41NDhjLTAuNDk0LTEuMDQzLTEuMDI2LTEuNTc0LTIuMDY5LTIuMDY5bDEuNTQ4LTQuMjYyIDItMS4yMTcgNi02aC0zbC02IDYtMyAxMCAxMC0zIDYtNnYtM2wtNiA2LTEuMjE3IDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUXVpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNmMyLTYgNy4yMzQtMTYgMTYtMTYtNC4xMDkgMy4yOTctNiAxMS05IDExcy0zIDAtMyAwbC0zIDVoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjkwOSA0LjU2MWwtNC40Ny00LjQ3Yy0wLjE0Ni0wLjE0Ni0wLjMzOC0wLjExMy0wLjQyNyAwLjA3M2wtMC41OTkgMS4yNDggNC4xNzUgNC4xNzUgMS4yNDgtMC41OTljMC4xODYtMC4wODkgMC4yMTktMC4yODIgMC4wNzMtMC40Mjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS42MTUgMi4xMTVsLTQuMTE1IDAuMzQzYy0wLjI3MyAwLjAzNC0wLjUwMSAwLjA5Mi0wLjU4IDAuNDQ5LTAgMC0wIDAuMDAxLTAgMC4wMDEtMS4xMTYgNS4zNi00LjkyIDEwLjU5MS00LjkyIDEwLjU5MWwwLjg5NiAwLjg5NiA0LjI1LTQuMjVjLTAuMDk0LTAuMTk2LTAuMTQ2LTAuNDE1LTAuMTQ2LTAuNjQ3IDAtMC44MjggMC42NzItMS41IDEuNS0xLjVzMS41IDAuNjcyIDEuNSAxLjUtMC42NzIgMS41LTEuNSAxLjVjLTAuMjMyIDAtMC40NTEtMC4wNTMtMC42NDctMC4xNDZsLTQuMjUgNC4yNSAwLjg5NiAwLjg5NmMwIDAgNS4yMzEtMy44MDQgMTAuNTkxLTQuOTIgMC0wIDAuMDAxLTAgMC4wMDEtMCAwLjM1Ny0wLjA3OCAwLjQxNS0wLjMwNiAwLjQ0OS0wLjU4bDAuMzQzLTQuMTE1LTQuMjY5LTQuMjY5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAwdjEuNWMxLjE0OCAwIDIuMjYxIDAuMjI1IDMuMzA4IDAuNjY3IDEuMDEyIDAuNDI4IDEuOTIxIDEuMDQxIDIuNzAyIDEuODIyczEuMzk0IDEuNjkgMS44MjIgMi43MDJjMC40NDMgMS4wNDcgMC42NjcgMi4xNiAwLjY2NyAzLjMwOGgxLjVjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDN2MS41YzEuNDY5IDAgMi44NSAwLjU3MiAzLjg4OSAxLjYxMXMxLjYxMSAyLjQyIDEuNjExIDMuODg5aDEuNWMwLTMuODY2LTMuMTM0LTctNy03elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSA2bC0xIDEtMy41IDEtMyA2LjUgMC4zOTYgMC4zOTYgMy42MzgtMy42MzhjLTAuMDIyLTAuMDgzLTAuMDM0LTAuMTY5LTAuMDM0LTAuMjU5IDAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDEtMC40NDggMS0xIDFjLTAuMDkwIDAtMC4xNzYtMC4wMTItMC4yNTktMC4wMzRsLTMuNjM4IDMuNjM4IDAuMzk2IDAuMzk2IDYuNS0zIDEtMy41IDEtMS0yLjUtMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUV5ZWRyb3BwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDE0IDAuNTg2Yy0wLjc4MS0wLjc4MS0yLjA0Ny0wLjc4MS0yLjgyOCAwbC0yLjY4OSAyLjY4OS0xLjg5Ni0xLjg5Ni0yLjEyMSAyLjEyMSAxLjY2MyAxLjY2My03LjM3NyA3LjM3N2MtMC4xMjYgMC4xMjYtMC4xNzkgMC4yOTYtMC4xNjEgMC40NmgtMC4wMDR2Mi41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVoMi41YzAgMCAwLjA0MiAwIDAuMDYzIDAgMC4xNDQgMCAwLjI4OC0wLjA1NSAwLjM5OC0wLjE2NWw3LjM3Ny03LjM3NyAxLjY2MyAxLjY2MyAyLjEyMS0yLjEyMS0xLjg5Ni0xLjg5NiAyLjY4OS0yLjY4OWMwLjc4MS0wLjc4MSAwLjc4MS0yLjA0NyAwLTIuODI4ek0yLjcwNSAxNWgtMS43MDV2LTEuNzA1bDcuMzM3LTcuMzM3IDEuNzA0IDEuNzA0LTcuMzM3IDcuMzM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbURyb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNTEgNy4zOTNjLTEuMDI3LTIuODY2LTMuMjA1LTUuNDQtNS41MS03LjM5My0yLjMwNSAxLjk1My00LjQ4MiA0LjUyNy01LjUxIDcuMzkzLTAuNjM1IDEuNzcyLTAuNjk4IDMuNjk2IDAuMTk3IDUuMzk3IDEuMDI5IDEuOTU1IDMuMTA0IDMuMjEgNS4zMTMgMy4yMXM0LjI4NC0xLjI1NSA1LjMxMy0zLjIxYzAuODk1LTEuNzAxIDAuODMyLTMuNjI0IDAuMTk3LTUuMzk3ek0xMS41NDMgMTEuODU5Yy0wLjY4NCAxLjMwMS0yLjA3NSAyLjE0MS0zLjU0MyAyLjE0MS0wLjg2MSAwLTEuNjk2LTAuMjktMi4zNzctMC43OTEgMC4yMDcgMC4wMjcgMC40MTYgMC4wNDEgMC42MjcgMC4wNDEgMS44MzUgMCAzLjU3My0xLjA1MCA0LjQyOC0yLjY3NiAwLjcwMS0xLjMzMyAwLjY0LTIuNzE2IDAuMzczLTMuODE4IDAuMjI3IDAuNDQgMC40MiAwLjg3OCAwLjU3NiAxLjMxMSAwLjM1MyAwLjk4NSAwLjYyNSAyLjQ0My0wLjA4NCAzLjc5MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QYWludEZvcm1hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5di02aC0zdi0xYzAtMC41NS0wLjQ1LTEtMS0xaC0xMWMtMC41NSAwLTEgMC40NS0xIDF2M2MwIDAuNTUgMC40NSAxIDEgMWgxMWMwLjU1IDAgMS0wLjQ1IDEtMXYtMWgydjRoLTl2MmgtMC41Yy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41djVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgyYzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjV2LTVjMC0wLjI3Ni0wLjIyNC0wLjUtMC41LTAuNWgtMC41di0xaDl6TTEyIDNoLTExdi0xaDExdjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuOTk4IDJjMC4wMDEgMC4wMDEgMC4wMDEgMC4wMDEgMC4wMDIgMC4wMDJ2MTEuOTk2Yy0wLjAwMSAwLjAwMS0wLjAwMSAwLjAwMS0wLjAwMiAwLjAwMmgtMTMuOTk2Yy0wLjAwMS0wLjAwMS0wLjAwMS0wLjAwMS0wLjAwMi0wLjAwMnYtMTEuOTk2YzAuMDAxLTAuMDAxIDAuMDAxLTAuMDAxIDAuMDAyLTAuMDAyaDEzLjk5NnpNMTUgMWgtMTRjLTAuNTUgMC0xIDAuNDUtMSAxdjEyYzAgMC41NSAwLjQ1IDEgMSAxaDE0YzAuNTUgMCAxLTAuNDUgMS0xdi0xMmMwLTAuNTUtMC40NS0xLTEtMXYwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDQuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNSAwLjY3Mi0xLjUgMS41LTEuNSAxLjUgMC42NzIgMS41IDEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxM2gtMTJ2LTJsMy41LTYgNCA1aDFsMy41LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE4IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDJoLTF2LTFjMC0wLjU1LTAuNDUtMS0xLTFoLTE0Yy0wLjU1IDAtMSAwLjQ1LTEgMXYxMmMwIDAuNTUgMC40NSAxIDEgMWgxdjFjMCAwLjU1IDAuNDUgMSAxIDFoMTRjMC41NSAwIDEtMC40NSAxLTF2LTEyYzAtMC41NS0wLjQ1LTEtMS0xek0yIDN2MTBoLTAuOTk4Yy0wLjAwMS0wLjAwMS0wLjAwMS0wLjAwMS0wLjAwMi0wLjAwMnYtMTEuOTk2YzAuMDAxLTAuMDAxIDAuMDAxLTAuMDAxIDAuMDAyLTAuMDAyaDEzLjk5NmMwLjAwMSAwLjAwMSAwLjAwMSAwLjAwMSAwLjAwMiAwLjAwMnYwLjk5OGgtMTJjLTAuNTUgMC0xIDAuNDUtMSAxdjB6TTE3IDE0Ljk5OGMtMC4wMDEgMC4wMDEtMC4wMDEgMC4wMDEtMC4wMDIgMC4wMDJoLTEzLjk5NmMtMC4wMDEtMC4wMDEtMC4wMDEtMC4wMDEtMC4wMDItMC4wMDJ2LTExLjk5NmMwLjAwMS0wLjAwMSAwLjAwMS0wLjAwMSAwLjAwMi0wLjAwMmgxMy45OTZjMC4wMDEgMC4wMDEgMC4wMDEgMC4wMDEgMC4wMDIgMC4wMDJ2MTEuOTk2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDUuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNSAwLjY3Mi0xLjUgMS41LTEuNSAxLjUgMC42NzIgMS41IDEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNGgtMTJ2LTJsMy41LTYgNCA1aDFsMy41LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNzUgOS41YzAgMS43OTUgMS40NTUgMy4yNSAzLjI1IDMuMjVzMy4yNS0xLjQ1NSAzLjI1LTMuMjUtMS40NTUtMy4yNS0zLjI1LTMuMjUtMy4yNSAxLjQ1NS0zLjI1IDMuMjV6TTE1IDRoLTMuNWMtMC4yNS0xLTAuNS0yLTEuNS0yaC00Yy0xIDAtMS4yNSAxLTEuNSAyaC0zLjVjLTAuNTUgMC0xIDAuNDUtMSAxdjljMCAwLjU1IDAuNDUgMSAxIDFoMTRjMC41NSAwIDEtMC40NSAxLTF2LTljMC0wLjU1LTAuNDUtMS0xLTF6TTggMTMuOTM4Yy0yLjQ1MSAwLTQuNDM4LTEuOTg3LTQuNDM4LTQuNDM4czEuOTg3LTQuNDM4IDQuNDM4LTQuNDM4YzIuNDUxIDAgNC40MzggMS45ODcgNC40MzggNC40MzhzLTEuOTg3IDQuNDM4LTQuNDM4IDQuNDM4ek0xNSA3aC0ydi0xaDJ2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1IZWFkcGhvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSA5aC0xdjdoMWMwLjI3NSAwIDAuNS0wLjIyNSAwLjUtMC41di02YzAtMC4yNzUtMC4yMjUtMC41LTAuNS0wLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA5Yy0wLjI3NSAwLTAuNSAwLjIyNS0wLjUgMC41djZjMCAwLjI3NSAwLjIyNSAwLjUgMC41IDAuNWgxdi03aC0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhjMC00LjQxOC0zLjU4Mi04LTgtOHMtOCAzLjU4Mi04IDhjMCAwLjk2IDAuMTY5IDEuODggMC40NzkgMi43MzItMC4zMDQgMC41MTktMC40NzkgMS4xMjMtMC40NzkgMS43NjggMCAxLjc2MyAxLjMwNCAzLjIyMiAzIDMuNDY0di02LjkyOGMtMC40OTkgMC4wNzEtMC45NjMgMC4yNDgtMS4zNzEgMC41MDYtMC4wODQtMC40MTctMC4xMjktMC44NDktMC4xMjktMS4yOTIgMC0zLjU5IDIuOTEtNi41IDYuNS02LjVzNi41IDIuOTEgNi41IDYuNWMwIDAuNDQyLTAuMDQ0IDAuODc0LTAuMTI4IDEuMjkyLTAuNDA4LTAuMjU5LTAuODczLTAuNDM1LTEuMzcyLTAuNTA3djYuOTI5YzEuNjk2LTAuMjQzIDMtMS43MDEgMy0zLjQ2NCAwLTAuNjQ1LTAuMTc1LTEuMjQ5LTAuNDc5LTEuNzY4IDAuMzEtMC44NTMgMC40NzktMS43NzMgMC40NzktMi43MzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMGgxdjExLjVjMCAxLjM4MS0xLjU2NyAyLjUtMy41IDIuNXMtMy41LTEuMTE5LTMuNS0yLjVjMC0xLjM4MSAxLjU2Ny0yLjUgMy41LTIuNSAwLjk3OSAwIDEuODY1IDAuMjg3IDIuNSAwLjc1MXYtNS43NTFsLTggMS43Nzh2Ny43MjJjMCAxLjM4MS0xLjU2NyAyLjUtMy41IDIuNXMtMy41LTEuMTE5LTMuNS0yLjVjMC0xLjM4MSAxLjU2Ny0yLjUgMy41LTIuNSAwLjk3OSAwIDEuODY1IDAuMjg3IDIuNSAwLjc1MXYtOS43NTFsOS0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMzMxIDIuNTAyYy0yLjI0NC0wLjMyMy00LjcyNC0wLjUwMi03LjMzMS0wLjUwMnMtNS4wODcgMC4xNzktNy4zMzEgMC41MDJjLTAuNDMgMS42ODMtMC42NjkgMy41NDMtMC42NjkgNS40OThzMC4yMzkgMy44MTUgMC42NjkgNS40OThjMi4yNDQgMC4zMjMgNC43MjQgMC41MDIgNy4zMzEgMC41MDJzNS4wODctMC4xNzkgNy4zMzEtMC41MDJjMC40My0xLjY4MyAwLjY2OS0zLjU0MyAwLjY2OS01LjQ5OHMtMC4yMzktMy44MTUtMC42NjktNS40OTh6TTYgMTF2LTZsNSAzLTUgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMnYxMmgxNnYtMTJoLTE2ek0zIDEzaC0ydi0yaDJ2MnpNMyA5aC0ydi0yaDJ2MnpNMyA1aC0ydi0yaDJ2MnpNMTIgMTNoLTh2LTEwaDh2MTB6TTE1IDEzaC0ydi0yaDJ2MnpNMTUgOWgtMnYtMmgydjJ6TTE1IDVoLTJ2LTJoMnYyek02IDV2Nmw0LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVmlkZW9DYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA0LjVjMC0xLjM4MSAxLjExOS0yLjUgMi41LTIuNXMyLjUgMS4xMTkgMi41IDIuNWMwIDEuMzgxLTEuMTE5IDIuNS0yLjUgMi41cy0yLjUtMS4xMTktMi41LTIuNXpNMCA0LjVjMC0xLjM4MSAxLjExOS0yLjUgMi41LTIuNXMyLjUgMS4xMTkgMi41IDIuNWMwIDEuMzgxLTEuMTE5IDIuNS0yLjUgMi41cy0yLjUtMS4xMTktMi41LTIuNXpNMTIgOS41di0xLjVjMC0wLjU1LTAuNDUtMS0xLTFoLTEwYy0wLjU1IDAtMSAwLjQ1LTEgMXY1YzAgMC41NSAwLjQ1IDEgMSAxaDEwYzAuNTUgMCAxLTAuNDUgMS0xdi0xLjVsNCAyLjV2LTdsLTQgMi41ek0xMCAxMmgtOHYtM2g4djN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDNoLThjLTEuMzc1IDAtMi41IDEuMTI1LTIuNSAyLjV2OGMwIDEuMzc1IDEuMTI1IDIuNSAyLjUgMi41aDhjMS4zNzUgMCAyLjUtMS4xMjUgMi41LTIuNXYtOGMwLTEuMzc1LTEuMTI1LTIuNS0yLjUtMi41ek02LjUgMTRjLTAuODI4IDAtMS41LTAuNjcyLTEuNS0xLjVzMC42NzItMS41IDEuNS0xLjUgMS41IDAuNjcyIDEuNSAxLjUtMC42NzIgMS41LTEuNSAxLjV6TTYuNSA4Yy0wLjgyOCAwLTEuNS0wLjY3Mi0xLjUtMS41czAuNjcyLTEuNSAxLjUtMS41IDEuNSAwLjY3MiAxLjUgMS41LTAuNjcyIDEuNS0xLjUgMS41ek05LjUgMTFjLTAuODI4IDAtMS41LTAuNjcyLTEuNS0xLjVzMC42NzItMS41IDEuNS0xLjUgMS41IDAuNjcyIDEuNSAxLjUtMC42NzIgMS41LTEuNSAxLjV6TTEyLjUgMTRjLTAuODI4IDAtMS41LTAuNjcyLTEuNS0xLjVzMC42NzItMS41IDEuNS0xLjUgMS41IDAuNjcyIDEuNSAxLjUtMC42NzIgMS41LTEuNSAxLjV6TTEyLjUgOGMtMC44MjggMC0xLjUtMC42NzItMS41LTEuNXMwLjY3Mi0xLjUgMS41LTEuNSAxLjUgMC42NzIgMS41IDEuNS0wLjY3MiAxLjUtMS41IDEuNXpNMTIuOTQ5IDJjLTAuMjMzLTEuMTM4LTEuMjQ1LTItMi40NDktMmgtOGMtMS4zNzUgMC0yLjUgMS4xMjUtMi41IDIuNXY4YzAgMS4yMDQgMC44NjIgMi4yMTYgMiAyLjQ0OXYtOS45NDljMC0wLjU1IDAuNDUtMSAxLTFoOS45NDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGFjbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjA3NCAyLjc5NGMtMS40NjctMS43MS0zLjY0NC0yLjc5NC02LjA3NC0yLjc5NC00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4YzIuNDMgMCA0LjYwNy0xLjA4NCA2LjA3NC0yLjc5NGwtNS4wNzQtNS4yMDYgNS4wNzQtNS4yMDZ6TTExIDEuODg0YzAuNjE2IDAgMS4xMTYgMC40OTkgMS4xMTYgMS4xMTZzLTAuNDk5IDEuMTE2LTEuMTE2IDEuMTE2LTEuMTE2LTAuNDk5LTEuMTE2LTEuMTE2YzAtMC42MTYgMC40OTktMS4xMTYgMS4xMTYtMS4xMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3BhZGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjc3NSA1LjQ0Yy0zLjAyNC0yLjI0OC00LjA2Ny00LjA0Ny00Ljc3NC01LjQ0djBjLTAgMC0wLTAtMC0wdjBjLTAuNzA4IDEuMzkzLTEuNzUgMy4xOTItNC43NzQgNS40NC01LjE1NyAzLjgzMy0wLjMwMyA5LjE4MiAzLjk2NSA2LjIzOC0wLjI3OCAxLjgyNy0xLjIyNyAzLjE1OS0yLjE5MSAzLjczM3YwLjU5aDZ2LTAuNTljLTAuOTY0LTAuNTc0LTEuOTEzLTEuOTA2LTIuMTkxLTMuNzMzIDQuMjY4IDIuOTQ0IDkuMTIyLTIuNDA1IDMuOTY1LTYuMjM4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNsdWJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjI5NCA2LjEzN2MtMC45MjIgMC0xLjc1MSAwLjM4NC0yLjM0MSAxLjAxMS0wLjI1IDAuMjY1LTAuNjg0IDAuNTgtMS4xNTMgMC44NTYgMC4yMi0wLjg0MiAwLjkxNy0xLjkwMiAxLjQtMi4zNjcgMC42MTktMC41OTYgMS0xLjQzNSAxLTIuMzY3IDAtMS43OTUtMS40MjktMy4yNTItMy4yLTMuMjcxLTEuNzcxIDAuMDE5LTMuMiAxLjQ3NS0zLjIgMy4yNzEgMCAwLjkzMiAwLjM4IDEuNzcxIDEgMi4zNjcgMC40ODQgMC40NjUgMS4xOCAxLjUyNSAxLjQgMi4zNjctMC40NjktMC4yNzctMC45MDMtMC41OTEtMS4xNTMtMC44NTYtMC41OS0wLjYyNy0xLjQxOS0xLjAxMS0yLjM0MS0xLjAxMS0xLjc4NyAwLTMuMjM2IDEuNDYzLTMuMjM2IDMuMjcxczEuNDQ4IDMuMjcxIDMuMjM2IDMuMjcxYzAuOTIzIDAgMS43NTEtMC4zOTYgMi4zNDEtMS4wMjMgMC4yNjMtMC4yNzkgMC43MjYtMC42MjcgMS4yMjMtMC45MTYtMC4wNDcgMi4zMDgtMS4xNDkgNC4wMDMtMi4yNzEgNC42N3YwLjU5aDZ2LTAuNTljLTEuMTIyLTAuNjY4LTIuMjI0LTIuMzYzLTIuMjcxLTQuNjcgMC40OTggMC4yODkgMC45NjEgMC42MzcgMS4yMjMgMC45MTYgMC41OSAwLjYyNiAxLjQxOSAxLjAyMyAyLjM0MSAxLjAyMyAxLjc4NyAwIDMuMjM2LTEuNDY0IDMuMjM2LTMuMjcxcy0xLjQ0OC0zLjI3MS0zLjIzNi0zLjI3MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1EaWFtb25kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBsLTUgOCA1IDggNS04elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJ1bGxob3JuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDYuNzA3YzAtMy4xMzktMC45MTktNS42ODctMi4wNTQtNS43MDcgMC4wMDUtMCAwLjAwOS0wIDAuMDE0LTBoLTEuMjk2YzAgMC0zLjA0NCAyLjI4Ny03LjQyNSAzLjE4NC0wLjEzNCAwLjcwOC0wLjIxOSAxLjU1MS0wLjIxOSAyLjUyM3MwLjA4NSAxLjgxNiAwLjIxOSAyLjUyM2M0LjM4MiAwLjg5NyA3LjQyNSAzLjE4NCA3LjQyNSAzLjE4NGgxLjI5NmMtMC4wMDUgMC0wLjAwOS0wLTAuMDE0LTAuMDAxIDEuMTM2LTAuMDIwIDIuMDU0LTIuNTY3IDIuMDU0LTUuNzA3ek0xMy41MTMgMTEuNTUxYy0wLjE0NyAwLTAuMzA1LTAuMTUyLTAuMzg3LTAuMjQzLTAuMTk3LTAuMjItMC4zODctMC41NjItMC41NS0wLjk4OS0wLjM2My0wLjk1Ny0wLjU2NC0yLjIzOS0wLjU2NC0zLjYxMXMwLjItMi42NTUgMC41NjQtMy42MTFjMC4xNjItMC40MjggMC4zNTMtMC43NyAwLjU1LTAuOTkgMC4wODEtMC4wOTEgMC4yNC0wLjI0MyAwLjM4Ny0wLjI0M3MwLjMwNSAwLjE1MiAwLjM4NyAwLjI0M2MwLjE5NyAwLjIyIDAuMzg3IDAuNTYyIDAuNTUgMC45OSAwLjM2MyAwLjk1NyAwLjU2NCAyLjIzOSAwLjU2NCAzLjYxMXMtMC4yIDIuNjU1LTAuNTY0IDMuNjExYy0wLjE2MiAwLjQyOC0wLjM1MyAwLjc3LTAuNTUgMC45ODktMC4wODEgMC4wOTEtMC4yNCAwLjI0My0wLjM4NyAwLjI0M3pNMy45MzUgNi43MDdjMC0wLjgxMiAwLjA2MC0xLjYgMC4xNzMtMi4zMy0wLjc0IDAuMTAyLTEuMzkgMC4xNjEtMi4xOTMgMC4xNjEtMS4wNDggMC0xLjA0OCAwLTEuMDQ4IDBsLTAuODY3IDEuNDc5djEuMzc4bDAuODY3IDEuNDc5YzAgMCAwIDAgMS4wNDggMCAwLjgwMyAwIDEuNDUzIDAuMDU5IDIuMTkzIDAuMTYxLTAuMTEzLTAuNzI5LTAuMTczLTEuNTE4LTAuMTczLTIuMzN6TTUuNzUyIDEwLjAzNGwtMi0wLjM4MyAxLjI3OSA1LjAyNGMwLjA2NiAwLjI2IDAuMzI0IDAuMzkxIDAuNTczIDAuMjkxbDEuODUyLTAuNzQxYzAuMjQ5LTAuMSAwLjM0OS0wLjM3NCAwLjIyMi0wLjYxMWwtMS45MjYtMy41ODF6TTEzLjUxMyA4LjU3NGMtMC4wNTcgMC0wLjExOC0wLjA1OS0wLjE0OS0wLjA5NC0wLjA3Ni0wLjA4NS0wLjE0OS0wLjIxNy0wLjIxMi0wLjM4MS0wLjE0LTAuMzY5LTAuMjE3LTAuODYzLTAuMjE3LTEuMzkyczAuMDc3LTEuMDIzIDAuMjE3LTEuMzkyYzAuMDYzLTAuMTY1IDAuMTM2LTAuMjk3IDAuMjEyLTAuMzgxIDAuMDMxLTAuMDM1IDAuMDkyLTAuMDk0IDAuMTQ5LTAuMDk0czAuMTE4IDAuMDU5IDAuMTQ5IDAuMDk0YzAuMDc2IDAuMDg1IDAuMTQ5IDAuMjE3IDAuMjEyIDAuMzgxIDAuMTQgMC4zNjkgMC4yMTcgMC44NjMgMC4yMTcgMS4zOTJzLTAuMDc3IDEuMDIzLTAuMjE3IDEuMzkyYy0wLjA2MyAwLjE2NS0wLjEzNiAwLjI5Ny0wLjIxMiAwLjM4MS0wLjAzMSAwLjAzNS0wLjA5MiAwLjA5NC0wLjE0OSAwLjA5NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db25uZWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDIwIDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDljMS42NTQgMCAzLjE1NCAwLjY3MyA0LjI0MSAxLjc1OWwtMS40MTQgMS40MTRjLTAuNzI0LTAuNzI0LTEuNzI0LTEuMTczLTIuODI3LTEuMTczcy0yLjEwMyAwLjQ0OS0yLjgyNyAxLjE3M2wtMS40MTQtMS40MTRjMS4wODYtMS4wODYgMi41ODYtMS43NTkgNC4yNDEtMS43NTl6TTIuOTI5IDcuOTI5YzEuODg5LTEuODg5IDQuNC0yLjkyOSA3LjA3MS0yLjkyOXM1LjE4MiAxLjA0MCA3LjA3MSAyLjkyOWwtMS40MTQgMS40MTRjLTEuNTExLTEuNTExLTMuNTItMi4zNDMtNS42NTctMi4zNDNzLTQuMTQ2IDAuODMyLTUuNjU3IDIuMzQzbC0xLjQxNC0xLjQxNHpNMTUuNDUgMi4xMDFjMS42NjcgMC43MDUgMy4xNjQgMS43MTUgNC40NSAzdjBsLTEuNDE0IDEuNDE0Yy0yLjI2Ny0yLjI2Ni01LjI4LTMuNTE1LTguNDg1LTMuNTE1cy02LjIxOSAxLjI0OC04LjQ4NSAzLjUxNWwtMS40MTQtMS40MTRjMS4yODUtMS4yODUgMi43ODMtMi4yOTUgNC40NS0zIDEuNzI3LTAuNzMgMy41Ni0xLjEwMSA1LjQ1LTEuMTAxczMuNzIzIDAuMzcgNS40NSAxLjEwMXpNOSAxNGMwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxYzAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBvZGNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04IDMuNTgyLTggOGMwIDMuNDM4IDIuMTY5IDYuMzcgNS4yMTQgNy41MDFsLTAuMjE0IDAuNDk5aDZsLTAuMjE0LTAuNDk5YzMuMDQ1LTEuMTMxIDUuMjE0LTQuMDYzIDUuMjE0LTcuNTAxek03LjYwNiA5LjkxOWMtMC4zNTYtMC4xNTMtMC42MDYtMC41MDctMC42MDYtMC45MTkgMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAuNDEyLTAuMjUgMC43NjYtMC42MDYgMC45MTlsLTAuMzk0LTAuOTE5LTAuMzk0IDAuOTE5ek04LjQxIDkuOTU4YzAuOTA4LTAuMTg5IDEuNTktMC45OTQgMS41OS0xLjk1OCAwLTEuMTA1LTAuODk1LTItMi0ycy0yIDAuODk1LTIgMmMwIDAuOTY0IDAuNjgyIDEuNzY4IDEuNTkgMS45NTdsLTEuMTY2IDIuNzIxYy0xLjQyNS0wLjYxMi0yLjQyNC0yLjAyOC0yLjQyNC0zLjY3NyAwLTIuMjA5IDEuNzkxLTQuMTg4IDQtNC4xODhzNCAxLjk3OCA0IDQuMTg4YzAgMS42NDktMC45OTkgMy4wNjYtMi40MjQgMy42NzdsLTEuMTY2LTIuNzJ6TTEwLjc1NyAxNS40MzNsLTEuMTU1LTIuNjk1YzEuOTc2LTAuNjY4IDMuMzk4LTIuNTM3IDMuMzk4LTQuNzM4IDAtMi43NjEtMi4yMzktNS01LTVzLTUgMi4yMzktNSA1YzAgMi4yMDEgMS40MjIgNC4wNzAgMy4zOTggNC43MzhsLTEuMTU1IDIuNjk1Yy0yLjQ5NC0xLjA3MC00LjI0LTMuNTQ3LTQuMjQtNi40MzMgMC0zLjg2NSAzLjEzMy03LjE4NSA2Ljk5Ny03LjE4NXM2Ljk5NyAzLjMyIDYuOTk3IDcuMTg1YzAgMi44ODYtMS43NDcgNS4zNjMtNC4yNCA2LjQzM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GZWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOGMwLTEuMTA1IDAuODk1LTIgMi0yczIgMC44OTUgMiAyYzAgMS4xMDUtMC44OTUgMi0yIDJzLTItMC44OTUtMi0yek0xMC4zOCAzLjYwMmMxLjU2IDAuODQ2IDIuNjIgMi40OTggMi42MiA0LjM5OHMtMS4wNTkgMy41NTItMi42MiA0LjM5OGMwLjY4OS0xLjA5NiAxLjEyLTIuNjYgMS4xMi00LjM5OHMtMC40MzEtMy4zMDItMS4xMi00LjM5OHpNNC41IDhjMCAxLjczOCAwLjQzMSAzLjMwMiAxLjEyIDQuMzk4LTEuNTYtMC44NDYtMi42Mi0yLjQ5OC0yLjYyLTQuMzk4czEuMDU5LTMuNTUyIDIuNjItNC4zOThjLTAuNjg5IDEuMDk2LTEuMTIgMi42Ni0xLjEyIDQuMzk4ek0xLjUgOGMwIDIuNjg2IDAuODUgNS4wOTcgMi4xOTggNi43NDYtMi4yMjMtMS40MjEtMy42OTgtMy45MTEtMy42OTgtNi43NDZzMS40NzQtNS4zMjUgMy42OTgtNi43NDZjLTEuMzQ4IDEuNjQ5LTIuMTk4IDQuMDYwLTIuMTk4IDYuNzQ2ek0xMi4zMDIgMS4yNTRjMi4yMjMgMS40MjEgMy42OTggMy45MTEgMy42OTggNi43NDZzLTEuNDc0IDUuMzI1LTMuNjk4IDYuNzQ2YzEuMzQ4LTEuNjQ5IDIuMTk4LTQuMDYwIDIuMTk4LTYuNzQ2cy0wLjg1LTUuMDk3LTIuMTk4LTYuNzQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1pYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTFjMS4zODEgMCAyLjUtMS4xMTkgMi41LTIuNXYtNmMwLTEuMzgxLTEuMTE5LTIuNS0yLjUtMi41cy0yLjUgMS4xMTktMi41IDIuNXY2YzAgMS4zODEgMS4xMTkgMi41IDIuNSAyLjV6TTExIDd2MS41YzAgMS45MzMtMS41NjcgMy41LTMuNSAzLjVzLTMuNS0xLjU2Ny0zLjUtMy41di0xLjVoLTF2MS41YzAgMi4zMTYgMS43NSA0LjIyMyA0IDQuNDcydjIuMDI4aC0ydjFoNXYtMWgtMnYtMi4wMjhjMi4yNS0wLjI0OSA0LTIuMTU2IDQtNC40NzJ2LTEuNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Cb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJ2MTNoLTEwLjVjLTAuODI5IDAtMS41LTAuNjcyLTEuNS0xLjVzMC42NzEtMS41IDEuNS0xLjVoOS41di0xMmgtMTBjLTEuMSAwLTIgMC45LTIgMnYxMmMwIDEuMSAwLjkgMiAyIDJoMTJ2LTE0aC0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNTAxIDEzdjBjLTAgMC0wLjAwMSAwLTAuMDAxIDAtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXMwLjIyNCAwLjUgMC41IDAuNWMwIDAgMC4wMDEtMCAwLjAwMS0wdjBoOS40OTh2LTFoLTkuNDk4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJvb2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE4IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAyaC0zYy0wLjI3NSAwLTAuNSAwLjIyNS0wLjUgMC41djExYzAgMC4yNzUgMC4yMjUgMC41IDAuNSAwLjVoM2MwLjI3NSAwIDAuNS0wLjIyNSAwLjUtMC41di0xMWMwLTAuMjc1LTAuMjI1LTAuNS0wLjUtMC41ek0zIDVoLTJ2LTFoMnYxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAyaC0zYy0wLjI3NSAwLTAuNSAwLjIyNS0wLjUgMC41djExYzAgMC4yNzUgMC4yMjUgMC41IDAuNSAwLjVoM2MwLjI3NSAwIDAuNS0wLjIyNSAwLjUtMC41di0xMWMwLTAuMjc1LTAuMjI1LTAuNS0wLjUtMC41ek04IDVoLTJ2LTFoMnYxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk1NCAyLjc3M2wtMi42NzkgMS4zNWMtMC4yNDYgMC4xMjQtMC4zNDUgMC40MjYtMC4yMjIgMC42NzFsNC41IDguOTNjMC4xMjQgMC4yNDYgMC40MjYgMC4zNDUgMC42NzEgMC4yMjJsMi42NzktMS4zNWMwLjI0Ni0wLjEyNCAwLjM0NS0wLjQyNiAwLjIyMi0wLjY3MWwtNC41LTguOTNjLTAuMTI0LTAuMjQ2LTAuNDI2LTAuMzQ1LTAuNjcxLTAuMjIyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTMuNWMwIDAuMjc2LTAuMjI0IDAuNS0wLjUgMC41cy0wLjUtMC4yMjQtMC41LTAuNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUxpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTcgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTV2LTFoLTF2LTZoMXYtMWgtM3YxaDF2NmgtM3YtNmgxdi0xaC0zdjFoMXY2aC0zdi02aDF2LTFoLTN2MWgxdjZoLTN2LTZoMXYtMWgtM3YxaDF2NmgtMXYxaC0xdjFoMTd2LTFoLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwaDFsOCA1djFoLTE3di0xbDgtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxlVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDBoLTEyYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTJjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNMTMgMTRoLTExdi0xMmgxMXYxMnpNNCA3aDd2MWgtN3pNNCA5aDd2MWgtN3pNNCAxMWg3djFoLTd6TTQgNWg3djFoLTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUHJvZmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDBoLTEyYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTJjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNMTMgMTRoLTExdi0xMmgxMXYxMnpNNCA5aDd2MWgtN3pNNCAxMWg3djFoLTd6TTUgNC41YzAtMC44MjggMC42NzItMS41IDEuNS0xLjVzMS41IDAuNjcyIDEuNSAxLjVjMCAwLjgyOC0wLjY3MiAxLjUtMS41IDEuNXMtMS41LTAuNjcyLTEuNS0xLjV6TTcuNSA2aC0yYy0wLjgyNSAwLTEuNSAwLjQ1LTEuNSAxdjFoNXYtMWMwLTAuNTUtMC42NzUtMS0xLjUtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxlRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMzQxIDMuNTc5Yy0wLjM0Ny0wLjQ3My0wLjgzMS0xLjAyNy0xLjM2Mi0xLjU1OHMtMS4wODUtMS4wMTUtMS41NTgtMS4zNjJjLTAuODA2LTAuNTkxLTEuMTk3LTAuNjU5LTEuNDIxLTAuNjU5aC03Ljc1Yy0wLjY4OSAwLTEuMjUgMC41NjEtMS4yNSAxLjI1djEzLjVjMCAwLjY4OSAwLjU2MSAxLjI1IDEuMjUgMS4yNWgxMS41YzAuNjg5IDAgMS4yNS0wLjU2MSAxLjI1LTEuMjV2LTkuNzVjMC0wLjIyNC0wLjA2OC0wLjYxNS0wLjY1OS0xLjQyMXpNMTIuMjcxIDIuNzI5YzAuNDggMC40OCAwLjg1NiAwLjkxMiAxLjEzNCAxLjI3MWgtMi40MDZ2LTIuNDA1YzAuMzU5IDAuMjc4IDAuNzkyIDAuNjU0IDEuMjcxIDEuMTM0ek0xNCAxNC43NWMwIDAuMTM2LTAuMTE0IDAuMjUtMC4yNSAwLjI1aC0xMS41Yy0wLjEzNSAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMy41YzAtMC4xMzUgMC4xMTUtMC4yNSAwLjI1LTAuMjUgMCAwIDcuNzQ5LTAgNy43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY5Ljc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpbGVzRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMzQxIDUuNTc5Yy0wLjM0Ny0wLjQ3My0wLjgzMS0xLjAyNy0xLjM2Mi0xLjU1OHMtMS4wODUtMS4wMTUtMS41NTgtMS4zNjJjLTAuODA2LTAuNTkxLTEuMTk3LTAuNjU5LTEuNDIxLTAuNjU5aC01Ljc1Yy0wLjY4OSAwLTEuMjUgMC41NjEtMS4yNSAxLjI1djExLjVjMCAwLjY4OSAwLjU2MSAxLjI1IDEuMjUgMS4yNWg5LjVjMC42ODkgMCAxLjI1LTAuNTYxIDEuMjUtMS4yNXYtNy43NWMwLTAuMjI0LTAuMDY4LTAuNjE1LTAuNjU5LTEuNDIxek0xMi4yNzEgNC43MjljMC40OCAwLjQ4IDAuODU2IDAuOTEyIDEuMTM0IDEuMjcxaC0yLjQwNnYtMi40MDVjMC4zNTkgMC4yNzggMC43OTIgMC42NTQgMS4yNzEgMS4xMzR2MHpNMTQgMTQuNzVjMCAwLjEzNi0wLjExNCAwLjI1LTAuMjUgMC4yNWgtOS41Yy0wLjEzNiAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMS41YzAtMC4xMzUgMC4xMTQtMC4yNSAwLjI1LTAuMjUgMCAwIDUuNzQ5LTAgNS43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY3Ljc1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNDIxIDAuNjU5Yy0wLjgwNi0wLjU5MS0xLjE5Ny0wLjY1OS0xLjQyMS0wLjY1OWgtNS43NWMtMC42ODkgMC0xLjI1IDAuNTYxLTEuMjUgMS4yNXYxMS41YzAgMC42MDQgMC40MyAxLjEwOSAxIDEuMjI1di0xMi43MjVjMC0wLjEzNSAwLjExNS0wLjI1IDAuMjUtMC4yNWg3LjYwN2MtMC4xNTEtMC4xMjQtMC4yOTctMC4yMzgtMC40MzctMC4zNDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRmlsZVRleHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjM0MSAzLjU3OWMtMC4zNDctMC40NzMtMC44MzEtMS4wMjctMS4zNjItMS41NThzLTEuMDg1LTEuMDE1LTEuNTU4LTEuMzYyYy0wLjgwNi0wLjU5MS0xLjE5Ny0wLjY1OS0xLjQyMS0wLjY1OWgtNy43NWMtMC42ODkgMC0xLjI1IDAuNTYxLTEuMjUgMS4yNXYxMy41YzAgMC42ODkgMC41NjEgMS4yNSAxLjI1IDEuMjVoMTEuNWMwLjY4OSAwIDEuMjUtMC41NjEgMS4yNS0xLjI1di05Ljc1YzAtMC4yMjQtMC4wNjgtMC42MTUtMC42NTktMS40MjF6TTEyLjI3MSAyLjcyOWMwLjQ4IDAuNDggMC44NTYgMC45MTIgMS4xMzQgMS4yNzFoLTIuNDA2di0yLjQwNWMwLjM1OSAwLjI3OCAwLjc5MiAwLjY1NCAxLjI3MSAxLjEzNHpNMTQgMTQuNzVjMCAwLjEzNi0wLjExNCAwLjI1LTAuMjUgMC4yNWgtMTEuNWMtMC4xMzUgMC0wLjI1LTAuMTE0LTAuMjUtMC4yNXYtMTMuNWMwLTAuMTM1IDAuMTE1LTAuMjUgMC4yNS0wLjI1IDAgMCA3Ljc0OS0wIDcuNzUgMHYzLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgzLjV2OS43NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDEzaC03Yy0wLjI3NiAwLTAuNS0wLjIyNC0wLjUtMC41czAuMjI0LTAuNSAwLjUtMC41aDdjMC4yNzYgMCAwLjUgMC4yMjQgMC41IDAuNXMtMC4yMjQgMC41LTAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSAxMWgtN2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyNC0wLjUgMC41LTAuNWg3YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgOWgtN2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyNC0wLjUgMC41LTAuNWg3YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpbGVQaWN0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE0aC0xMHYtMmwzLTUgNC4xMDkgNSAyLjg5MS0ydjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNy41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41IDAuNjcyLTEuNSAxLjUtMS41YzAuODI4IDAgMS41IDAuNjcyIDEuNSAxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMzQxIDMuNTc5Yy0wLjM0Ny0wLjQ3My0wLjgzMS0xLjAyNy0xLjM2Mi0xLjU1OHMtMS4wODUtMS4wMTUtMS41NTgtMS4zNjJjLTAuODA2LTAuNTkxLTEuMTk3LTAuNjU5LTEuNDIxLTAuNjU5aC03Ljc1Yy0wLjY4OSAwLTEuMjUgMC41NjEtMS4yNSAxLjI1djEzLjVjMCAwLjY4OSAwLjU2MSAxLjI1IDEuMjUgMS4yNWgxMS41YzAuNjg5IDAgMS4yNS0wLjU2MSAxLjI1LTEuMjV2LTkuNzVjMC0wLjIyNC0wLjA2OC0wLjYxNS0wLjY1OS0xLjQyMXpNMTIuMjcxIDIuNzI5YzAuNDggMC40OCAwLjg1NiAwLjkxMiAxLjEzNCAxLjI3MWgtMi40MDZ2LTIuNDA1YzAuMzU5IDAuMjc4IDAuNzkyIDAuNjU0IDEuMjcxIDEuMTM0ek0xNCAxNC43NWMwIDAuMTM2LTAuMTE0IDAuMjUtMC4yNSAwLjI1aC0xMS41Yy0wLjEzNSAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMy41YzAtMC4xMzUgMC4xMTUtMC4yNSAwLjI1LTAuMjUgMCAwIDcuNzQ5LTAgNy43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY5Ljc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpbGVNdXNpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4zNDEgMy41NzljLTAuMzQ3LTAuNDczLTAuODMxLTEuMDI3LTEuMzYyLTEuNTU4cy0xLjA4NS0xLjAxNS0xLjU1OC0xLjM2MmMtMC44MDYtMC41OTEtMS4xOTctMC42NTktMS40MjEtMC42NTloLTcuNzVjLTAuNjg5IDAtMS4yNSAwLjU2MS0xLjI1IDEuMjV2MTMuNWMwIDAuNjg5IDAuNTYxIDEuMjUgMS4yNSAxLjI1aDExLjVjMC42ODkgMCAxLjI1LTAuNTYxIDEuMjUtMS4yNXYtOS43NWMwLTAuMjI0LTAuMDY4LTAuNjE1LTAuNjU5LTEuNDIxdjB6TTEyLjI3MSAyLjcyOWMwLjQ4IDAuNDggMC44NTYgMC45MTIgMS4xMzQgMS4yNzFoLTIuNDA2di0yLjQwNWMwLjM1OSAwLjI3OCAwLjc5MiAwLjY1NCAxLjI3MSAxLjEzNHYwek0xNCAxNC43NWMwIDAuMTM2LTAuMTE0IDAuMjUtMC4yNSAwLjI1aC0xMS41Yy0wLjEzNSAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMy41YzAtMC4xMzUgMC4xMTUtMC4yNSAwLjI1LTAuMjUgMCAwIDcuNzQ5LTAgNy43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY5Ljc1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjgxNyA2LjExM2MtMC4xMTYtMC4wOTUtMC4yNjgtMC4xMzMtMC40MTUtMC4xMDRsLTUgMWMtMC4yMzQgMC4wNDctMC40MDIgMC4yNTItMC40MDIgMC40OXYzLjcwMWMtMC4yOTQtMC4xMjgtMC42MzYtMC4yMDEtMS0wLjIwMS0xLjEwNSAwLTIgMC42NzItMiAxLjVzMC44OTUgMS41IDIgMS41IDItMC42NzIgMi0xLjV2LTMuNTlsNC0wLjh2Mi4wOTFjLTAuMjk0LTAuMTI4LTAuNjM2LTAuMjAxLTEtMC4yMDEtMS4xMDUgMC0yIDAuNjcyLTIgMS41czAuODk1IDEuNSAyIDEuNSAyLTAuNjcyIDItMS41di01YzAtMC4xNS0wLjA2Ny0wLjI5Mi0wLjE4My0wLjM4N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxlUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZsNSAzLjUtNSAzLjV2LTd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMzQxIDMuNTc5Yy0wLjM0Ny0wLjQ3My0wLjgzMS0xLjAyNy0xLjM2Mi0xLjU1OHMtMS4wODUtMS4wMTUtMS41NTgtMS4zNjJjLTAuODA2LTAuNTkxLTEuMTk3LTAuNjU5LTEuNDIxLTAuNjU5aC03Ljc1Yy0wLjY4OSAwLTEuMjUgMC41NjEtMS4yNSAxLjI1djEzLjVjMCAwLjY4OSAwLjU2MSAxLjI1IDEuMjUgMS4yNWgxMS41YzAuNjg5IDAgMS4yNS0wLjU2MSAxLjI1LTEuMjV2LTkuNzVjMC0wLjIyNC0wLjA2OC0wLjYxNS0wLjY1OS0xLjQyMXpNMTIuMjcxIDIuNzI5YzAuNDggMC40OCAwLjg1NiAwLjkxMiAxLjEzNCAxLjI3MWgtMi40MDZ2LTIuNDA1YzAuMzU5IDAuMjc4IDAuNzkyIDAuNjU0IDEuMjcxIDEuMTM0ek0xNCAxNC43NWMwIDAuMTM2LTAuMTE0IDAuMjUtMC4yNSAwLjI1aC0xMS41Yy0wLjEzNSAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMy41YzAtMC4xMzUgMC4xMTUtMC4yNSAwLjI1LTAuMjUgMCAwIDcuNzQ5LTAgNy43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY5Ljc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpbGVWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4zNDEgMy41NzljLTAuMzQ3LTAuNDczLTAuODMxLTEuMDI3LTEuMzYyLTEuNTU4cy0xLjA4NS0xLjAxNS0xLjU1OC0xLjM2MmMtMC44MDYtMC41OTEtMS4xOTctMC42NTktMS40MjEtMC42NTloLTcuNzVjLTAuNjg5IDAtMS4yNSAwLjU2MS0xLjI1IDEuMjV2MTMuNWMwIDAuNjg5IDAuNTYxIDEuMjUgMS4yNSAxLjI1aDExLjVjMC42ODkgMCAxLjI1LTAuNTYxIDEuMjUtMS4yNXYtOS43NWMwLTAuMjI0LTAuMDY4LTAuNjE1LTAuNjU5LTEuNDIxdjAgMHpNMTIuMjcxIDIuNzI5YzAuNDggMC40OCAwLjg1NiAwLjkxMiAxLjEzNCAxLjI3MWgtMi40MDZ2LTIuNDA1YzAuMzU5IDAuMjc4IDAuNzkyIDAuNjU0IDEuMjcxIDEuMTM0djAgMHpNMTQgMTQuNzVjMCAwLjEzNi0wLjExNCAwLjI1LTAuMjUgMC4yNWgtMTEuNWMtMC4xMzUgMC0wLjI1LTAuMTE0LTAuMjUtMC4yNXYtMTMuNWMwLTAuMTM1IDAuMTE1LTAuMjUgMC4yNS0wLjI1IDAgMCA3Ljc0OS0wIDcuNzUgMHYzLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgzLjV2OS43NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDhoNXY1aC01di01elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTBsMy0ydjVsLTMtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxlWmlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjM0MSAzLjU3OWMtMC4zNDctMC40NzMtMC44MzEtMS4wMjctMS4zNjItMS41NThzLTEuMDg1LTEuMDE1LTEuNTU4LTEuMzYyYy0wLjgwNi0wLjU5MS0xLjE5Ny0wLjY1OS0xLjQyMS0wLjY1OWgtNy43NWMtMC42ODkgMC0xLjI1IDAuNTYxLTEuMjUgMS4yNXYxMy41YzAgMC42ODkgMC41NjEgMS4yNSAxLjI1IDEuMjVoMTEuNWMwLjY4OSAwIDEuMjUtMC41NjEgMS4yNS0xLjI1di05Ljc1YzAtMC4yMjQtMC4wNjgtMC42MTUtMC42NTktMS40MjF2MCAwek0xMi4yNzEgMi43MjljMC40OCAwLjQ4IDAuODU2IDAuOTEyIDEuMTM0IDEuMjcxaC0yLjQwNnYtMi40MDVjMC4zNTkgMC4yNzggMC43OTIgMC42NTQgMS4yNzEgMS4xMzR2MCAwek0xNCAxNC43NWMwIDAuMTM2LTAuMTE0IDAuMjUtMC4yNSAwLjI1aC0xMS41Yy0wLjEzNSAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMy41YzAtMC4xMzUgMC4xMTUtMC4yNSAwLjI1LTAuMjUgMCAwIDcuNzQ5LTAgNy43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY5Ljc1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMWgydjFoLTJ2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyaDJ2MWgtMnYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDNoMnYxaC0ydi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNGgydjFoLTJ2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA1aDJ2MWgtMnYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZoMnYxaC0ydi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgN2gydjFoLTJ2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4aDJ2MWgtMnYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEzLjI1YzAgMC40MTIgMC4zMzggMC43NSAwLjc1IDAuNzVoMi41YzAuNDEyIDAgMC43NS0wLjMzOCAwLjc1LTAuNzV2LTIuNWMwLTAuNDEyLTAuMzM4LTAuNzUtMC43NS0wLjc1aC0xLjI1di0xaC0ydjQuMjV6TTcgMTJ2MWgtMnYtMWgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNHYtNGgtN2wtMyAzdjloNnY0aDEwdi0xMmgtNnpNMyAxLjQxNHYxLjU4NmgtMS41ODZsMS41ODYtMS41ODZ6TTEgMTF2LTdoM3YtM2g1djNsLTMgM3Y0aC01ek05IDUuNDE0djEuNTg2aC0xLjU4NmwxLjU4Ni0xLjU4NnpNMTUgMTVoLTh2LTdoM3YtM2g1djEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBhc3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDJoLTJ2LTFjMC0wLjU1LTAuNDUtMS0xLTFoLTJjLTAuNTUgMC0xIDAuNDUtMSAxdjFoLTJ2Mmg4di0yek04IDJoLTJ2LTAuOTk4YzAuMDAxLTAuMDAxIDAuMDAxLTAuMDAxIDAuMDAyLTAuMDAyaDEuOTk2YzAuMDAxIDAuMDAxIDAuMDAxIDAuMDAxIDAuMDAyIDAuMDAydjAuOTk4ek0xMyA1di0yLjVjMC0wLjI3NS0wLjIyNS0wLjUtMC41LTAuNWgtMXYxaDAuNXYyaC0zbC0zIDN2NGgtNHYtOWgwLjV2LTFoLTFjLTAuMjc1IDAtMC41IDAuMjI1LTAuNSAwLjV2MTBjMCAwLjI3NSAwLjIyNSAwLjUgMC41IDAuNWg0LjV2M2gxMHYtMTFoLTN6TTkgNi40MTR2MS41ODZoLTEuNTg2bDEuNTg2LTEuNTg2ek0xNSAxNWgtOHYtNmgzdi0zaDV2OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA1bC04LTQtOCA0IDggNCA4LTR6TTggMi4zMjhsNS4zNDUgMi42NzItNS4zNDUgMi42NzItNS4zNDUtMi42NzIgNS4zNDUtMi42NzJ6TTE0LjM5OCA3LjE5OWwxLjYwMiAwLjgwMS04IDQtOC00IDEuNjAyLTAuODAxIDYuMzk4IDMuMTk5ek0xNC4zOTggMTAuMTk5bDEuNjAyIDAuODAxLTggNC04LTQgMS42MDItMC44MDEgNi4zOTggMy4xOTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMmwyIDJoN3YxMWgtMTZ2LTEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTVsMy04aC0xM2wtMyA4ek0yIDZsLTIgOXYtMTNoNC41bDIgMmg2LjV2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Gb2xkZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGwtMi0yaC03djEzaDE2di0xMWgtN3pNMTEgMTFoLTJ2MmgtMnYtMmgtMnYtMmgydi0yaDJ2MmgydjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRm9sZGVyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0bC0yLTJoLTd2MTNoMTZ2LTExaC03ek0xMSAxMWgtNnYtMmg2djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRm9sZGVyRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0bC0yLTJoLTd2MTNoMTZ2LTExaC03ek04IDEzLjVsLTMuNS0zLjVoMi41di00aDJ2NGgyLjVsLTMuNSAzLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRm9sZGVyVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGwtMi0yaC03djEzaDE2di0xMWgtN3pNOCA3LjVsMy41IDMuNWgtMi41djRoLTJ2LTRoLTIuNWwzLjUtMy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVByaWNlVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjI1IDBoLTZjLTAuNDEyIDAtMC45ODkgMC4yMzktMS4yOCAwLjUzbC03LjQzOSA3LjQzOWMtMC4yOTIgMC4yOTItMC4yOTIgMC43NjkgMCAxLjA2MWw2LjQzOSA2LjQzOWMwLjI5MiAwLjI5MiAwLjc2OSAwLjI5MiAxLjA2MSAwbDcuNDM5LTcuNDM5YzAuMjkyLTAuMjkyIDAuNTMtMC44NjggMC41My0xLjI4di02YzAtMC40MTItMC4zMzgtMC43NS0wLjc1LTAuNzV6TTExLjUgNmMtMC44MjggMC0xLjUtMC42NzItMS41LTEuNXMwLjY3Mi0xLjUgMS41LTEuNSAxLjUgMC42NzIgMS41IDEuNS0wLjY3MiAxLjUtMS41IDEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QcmljZVRhZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjAgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMjUgMGgtNmMtMC40MTIgMC0wLjk4OSAwLjIzOS0xLjI4IDAuNTNsLTcuNDM5IDcuNDM5Yy0wLjI5MiAwLjI5Mi0wLjI5MiAwLjc2OSAwIDEuMDYxbDYuNDM5IDYuNDM5YzAuMjkyIDAuMjkyIDAuNzY5IDAuMjkyIDEuMDYxIDBsNy40MzktNy40MzljMC4yOTItMC4yOTIgMC41My0wLjg2OCAwLjUzLTEuMjh2LTZjMC0wLjQxMi0wLjMzNy0wLjc1LTAuNzUtMC43NXpNMTUuNSA2Yy0wLjgyOCAwLTEuNS0wLjY3Mi0xLjUtMS41czAuNjcyLTEuNSAxLjUtMS41IDEuNSAwLjY3MiAxLjUgMS41LTAuNjcyIDEuNS0xLjUgMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgOC41bDguNS04LjVoLTEuMjVjLTAuNDEyIDAtMC45ODkgMC4yMzktMS4yOCAwLjUzbC03LjQzOSA3LjQzOWMtMC4yOTIgMC4yOTItMC4yOTIgMC43NjkgMCAxLjA2MWw2LjQzOSA2LjQzOWMwLjI5MiAwLjI5MiAwLjc2OSAwLjI5MiAxLjA2MSAwbDAuNDctMC40Ny02LjUtNi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJhcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyaDJ2MTBoLTJ6TTMgMmgxdjEwaC0xek01IDJoMXYxMGgtMXpNOCAyaDF2MTBoLTF6TTEyIDJoMXYxMGgtMXpNMTUgMmgxdjEwaC0xek0xMCAyaDAuNXYxMGgtMC41ek03IDJoMC41djEwaC0wLjV6TTEzLjUgMmgwLjV2MTBoLTAuNXpNMCAxM2gxdjFoLTF6TTMgMTNoMXYxaC0xek01IDEzaDF2MWgtMXpNMTAgMTNoMXYxaC0xek0xNSAxM2gxdjFoLTF6TTEyIDEzaDJ2MWgtMnpNNyAxM2gydjFoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMWgtNHY0aDR2LTR6TTYgMHYwIDZoLTZ2LTZoNnpNMiAyaDJ2MmgtMnpNMTUgMWgtNHY0aDR2LTR6TTE2IDB2MCA2aC02di02aDZ6TTEyIDJoMnYyaC0yek01IDExaC00djRoNHYtNHpNNiAxMHYwIDZoLTZ2LTZoNnpNMiAxMmgydjJoLTJ6TTcgMGgxdjFoLTF6TTggMWgxdjFoLTF6TTcgMmgxdjFoLTF6TTggM2gxdjFoLTF6TTcgNGgxdjFoLTF6TTggNWgxdjFoLTF6TTcgNmgxdjFoLTF6TTcgOGgxdjFoLTF6TTggOWgxdjFoLTF6TTcgMTBoMXYxaC0xek04IDExaDF2MWgtMXpNNyAxMmgxdjFoLTF6TTggMTNoMXYxaC0xek03IDE0aDF2MWgtMXpNOCAxNWgxdjFoLTF6TTE1IDhoMXYxaC0xek0xIDhoMXYxaC0xek0yIDdoMXYxaC0xek0wIDdoMXYxaC0xek00IDdoMXYxaC0xek01IDhoMXYxaC0xek02IDdoMXYxaC0xek05IDhoMXYxaC0xek0xMCA3aDF2MWgtMXpNMTEgOGgxdjFoLTF6TTEyIDdoMXYxaC0xek0xMyA4aDF2MWgtMXpNMTQgN2gxdjFoLTF6TTE1IDEwaDF2MWgtMXpNOSAxMGgxdjFoLTF6TTEwIDloMXYxaC0xek0xMSAxMGgxdjFoLTF6TTEzIDEwaDF2MWgtMXpNMTQgOWgxdjFoLTF6TTE1IDEyaDF2MWgtMXpNOSAxMmgxdjFoLTF6TTEwIDExaDF2MWgtMXpNMTIgMTFoMXYxaC0xek0xMyAxMmgxdjFoLTF6TTE0IDExaDF2MWgtMXpNMTUgMTRoMXYxaC0xek0xMCAxM2gxdjFoLTF6TTExIDE0aDF2MWgtMXpNMTIgMTNoMXYxaC0xek0xMyAxNGgxdjFoLTF6TTEwIDE1aDF2MWgtMXpNMTIgMTVoMXYxaC0xek0xNCAxNWgxdjFoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVGlja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNWwyIDItNCA0LTItMnpNMTUuNjQ5IDQuNjQ5bC0xLjE0OS0xLjE0OS0wLjUgMC41Yy0wLjI1NiAwLjI1Ni0wLjYxIDAuNDE0LTEgMC40MTQtMC43ODEgMC0xLjQxNC0wLjYzMy0xLjQxNC0xLjQxNCAwLTAuMzkxIDAuMTU4LTAuNzQ0IDAuNDE1LTFsMC41LTAuNS0xLjE0OS0xLjE0OWMtMC40NjgtMC40NjgtMS4yMzUtMC40NjgtMS43MDMgMGwtOS4yOTcgOS4yOTdjLTAuNDY4IDAuNDY4LTAuNDY4IDEuMjM1IDAgMS43MDNsMS4xNDkgMS4xNDkgMC40OTktMC40OTljMC4yNTYtMC4yNTYgMC42MS0wLjQxNSAxLjAwMS0wLjQxNSAwLjc4MSAwIDEuNDE0IDAuNjMzIDEuNDE0IDEuNDE0IDAgMC4zOTEtMC4xNTggMC43NDQtMC40MTUgMWwtMC41IDAuNSAxLjE0OSAxLjE0OWMwLjQ2OCAwLjQ2OCAxLjIzNCAwLjQ2OCAxLjcwMyAwbDkuMjk3LTkuMjk3YzAuNDY4LTAuNDY4IDAuNDY4LTEuMjM1IDAtMS43MDN6TTcgMTNsLTQtNCA2LTYgNCA0LTYgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTQuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNWMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE0LjVjMCAwLjgyOC0wLjY3MiAxLjUtMS41IDEuNXMtMS41LTAuNjcyLTEuNS0xLjVjMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4di02aC0xMmMwLTAuNTUyLTAuNDQ4LTEtMS0xaC0zdjFoMmwwLjc1MSA2LjQzOGMtMC40NTggMC4zNjctMC43NTEgMC45My0wLjc1MSAxLjU2MiAwIDEuMTA1IDAuODk1IDIgMiAyaDEydi0xaC0xMmMtMC41NTIgMC0xLTAuNDQ4LTEtMSAwLTAuMDAzIDAtMC4wMDcgMC0wLjAxMGwxMy0xLjk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNvaW5Eb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVjNC4xNDIgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTgtNy41LTcuNS03LjV6TTcuNSAxNC41Yy0zLjMxNCAwLTYtMi42ODYtNi02czIuNjg2LTYgNi02YzMuMzE0IDAgNiAyLjY4NiA2IDZzLTIuNjg2IDYtNiA2ek04IDh2LTJoMnYtMWgtMnYtMWgtMXYxaC0ydjRoMnYyaC0ydjFoMnYxaDF2LTFoMmwtMC00aC0yek03IDhoLTF2LTJoMXYyek05IDExaC0xdi0yaDF2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db2luRXVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMWMtNC4xNDIgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1OCA3LjUgNy41IDcuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNXpNNy41IDE0LjVjLTMuMzE0IDAtNi0yLjY4Ni02LTZzMi42ODYtNiA2LTZjMy4zMTQgMCA2IDIuNjg2IDYgNnMtMi42ODYgNi02IDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNDgyIDEwLjA2OGMtMC4yMzktMC4xMzktMC41NDUtMC4wNTgtMC42ODQgMC4xODEtMC4yNyAwLjQ2My0wLjc2NyAwLjc1MS0xLjI5OCAwLjc1MWgtMmMtMC42NTIgMC0xLjIwOC0wLjQxOC0xLjQxNC0xaDIuNDE0YzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjVzLTAuMjI0LTAuNS0wLjUtMC41aC0yLjV2LTFoMi41YzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjVzLTAuMjI0LTAuNS0wLjUtMC41aC0yLjQxNGMwLjIwNi0wLjU4MiAwLjc2Mi0xIDEuNDE0LTFoMmMwLjUzMSAwIDEuMDI4IDAuMjg4IDEuMjk4IDAuNzUxIDAuMTM5IDAuMjM5IDAuNDQ1IDAuMzIgMC42ODQgMC4xODFzMC4zMi0wLjQ0NSAwLjE4MS0wLjY4NGMtMC40NDgtMC43Ny0xLjI3Ny0xLjI0OS0yLjE2Mi0xLjI0OWgtMmMtMS4yMDcgMC0yLjIxNyAwLjg2LTIuNDUgMmgtMC41NWMtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXMwLjIyNCAwLjUgMC41IDAuNWgwLjV2MWgtMC41Yy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41czAuMjI0IDAuNSAwLjUgMC41aDAuNTVjMC4yMzIgMS4xNCAxLjI0MiAyIDIuNDUgMmgyYzAuODg2IDAgMS43MTQtMC40NzggMi4xNjItMS4yNDkgMC4xMzktMC4yMzkgMC4wNTgtMC41NDUtMC4xODEtMC42ODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ29pblBvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41ek03LjUgMTQuNWMtMy4zMTQgMC02LTIuNjg2LTYtNnMyLjY4Ni02IDYtNmMzLjMxNCAwIDYgMi42ODYgNiA2cy0yLjY4NiA2LTYgNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTFoLTMuNXYtMmgxLjVjMC4yNzYgMCAwLjUtMC4yMjQgMC41LTAuNXMtMC4yMjQtMC41LTAuNS0wLjVoLTEuNXYtMC41YzAtMC44MjcgMC42NzMtMS41IDEuNS0xLjUgMC41MzQgMCAxLjAzMiAwLjI4OCAxLjMgMC43NSAwLjEzOCAwLjIzOSAwLjQ0NCAwLjMyMSAwLjY4MyAwLjE4MnMwLjMyMS0wLjQ0NCAwLjE4Mi0wLjY4M2MtMC40NDYtMC43NzEtMS4yNzYtMS4yNS0yLjE2NS0xLjI1LTEuMzc4IDAtMi41IDEuMTIyLTIuNSAyLjV2MC41aC0wLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoMC41djNoNC41YzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjVzLTAuMjI0LTAuNS0wLjUtMC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNvaW5ZZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVjNC4xNDIgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTgtNy41LTcuNS03LjV6TTcuNSAxNC41Yy0zLjMxNCAwLTYtMi42ODYtNi02czIuNjg2LTYgNi02YzMuMzE0IDAgNiAyLjY4NiA2IDZzLTIuNjg2IDYtNiA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSA5YzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjVzLTAuMjI0LTAuNS0wLjUtMC41aC0xLjA2NmwxLjQ4Mi0yLjIyM2MwLjE1My0wLjIzIDAuMDkxLTAuNTQtMC4xMzktMC42OTNzLTAuNTQtMC4wOTEtMC42OTMgMC4xMzlsLTEuNTg0IDIuMzc2LTEuNTg0LTIuMzc2Yy0wLjE1My0wLjIzLTAuNDY0LTAuMjkyLTAuNjkzLTAuMTM5cy0wLjI5MiAwLjQ2NC0wLjEzOSAwLjY5M2wxLjQ4MiAyLjIyM2gtMS4wNjZjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoMS41djFoLTEuNWMtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXMwLjIyNCAwLjUgMC41IDAuNWgxLjV2MS41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVzMC41LTAuMjI0IDAuNS0wLjV2LTEuNWgxLjVjMC4yNzYgMCAwLjUtMC4yMjQgMC41LTAuNXMtMC4yMjQtMC41LTAuNS0wLjVoLTEuNXYtMWgxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDJoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djljMCAwLjgyNSAwLjY3NSAxLjUgMS41IDEuNWgxM2MwLjgyNSAwIDEuNS0wLjY3NSAxLjUtMS41di05YzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTEuNSAzaDEzYzAuMjcxIDAgMC41IDAuMjI5IDAuNSAwLjV2MS41aC0xNHYtMS41YzAtMC4yNzEgMC4yMjktMC41IDAuNS0wLjV6TTE0LjUgMTNoLTEzYy0wLjI3MSAwLTAuNS0wLjIyOS0wLjUtMC41di00LjVoMTR2NC41YzAgMC4yNzEtMC4yMjkgMC41LTAuNSAwLjV6TTIgMTBoMXYyaC0xek00IDEwaDF2MmgtMXpNNiAxMGgxdjJoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2FsY3VsYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDFoLTVjLTAuNTUgMC0xIDAuNDUtMSAxdjVjMCAwLjU1IDAuNDUgMSAxIDFoNWMwLjU1IDAgMS0wLjQ1IDEtMXYtNWMwLTAuNTUtMC40NS0xLTEtMXpNNiA1aC01di0xaDV2MXpNMTQgMWgtNWMtMC41NSAwLTEgMC40NS0xIDF2MTNjMCAwLjU1IDAuNDUgMSAxIDFoNWMwLjU1IDAgMS0wLjQ1IDEtMXYtMTNjMC0wLjU1LTAuNDUtMS0xLTF6TTE0IDEwaC01di0xaDV2MXpNMTQgN2gtNXYtMWg1djF6TTYgOWgtNWMtMC41NSAwLTEgMC40NS0xIDF2NWMwIDAuNTUgMC40NSAxIDEgMWg1YzAuNTUgMCAxLTAuNDUgMS0xdi01YzAtMC41NS0wLjQ1LTEtMS0xek02IDEzaC0ydjJoLTF2LTJoLTJ2LTFoMnYtMmgxdjJoMnYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUxpZmVidW95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNNSA4YzAtMS42NTcgMS4zNDMtMyAzLTNzMyAxLjM0MyAzIDMtMS4zNDMgMy0zIDMtMy0xLjM0My0zLTN6TTE0LjQ2OCAxMC42Nzl2MGwtMi43NzItMS4xNDhjMC4xOTYtMC40NzIgMC4zMDQtMC45ODkgMC4zMDQtMS41MzFzLTAuMTA4LTEuMDU5LTAuMzA0LTEuNTMxbDIuNzcyLTEuMTQ4YzAuMzQyIDAuODI1IDAuNTMyIDEuNzMgMC41MzIgMi42NzlzLTAuMTg5IDEuODU0LTAuNTMyIDIuNjc5djB6TTEwLjY3OSAxLjUzMnYwIDBsLTEuMTQ4IDIuNzcyYy0wLjQ3Mi0wLjE5Ni0wLjk4OS0wLjMwNC0xLjUzMS0wLjMwNHMtMS4wNTkgMC4xMDgtMS41MzEgMC4zMDRsLTEuMTQ4LTIuNzcyYzAuODI1LTAuMzQyIDEuNzMtMC41MzIgMi42NzktMC41MzJzMS44NTQgMC4xODkgMi42NzkgMC41MzJ6TTEuNTMyIDUuMzIxbDIuNzcyIDEuMTQ4Yy0wLjE5NiAwLjQ3Mi0wLjMwNCAwLjk4OS0wLjMwNCAxLjUzMXMwLjEwOCAxLjA1OSAwLjMwNCAxLjUzMWwtMi43NzIgMS4xNDhjLTAuMzQyLTAuODI1LTAuNTMyLTEuNzMtMC41MzItMi42NzlzMC4xODktMS44NTQgMC41MzItMi42Nzl6TTUuMzIxIDE0LjQ2OGwxLjE0OC0yLjc3MmMwLjQ3MiAwLjE5NiAwLjk4OSAwLjMwNCAxLjUzMSAwLjMwNHMxLjA1OS0wLjEwOCAxLjUzMS0wLjMwNGwxLjE0OCAyLjc3MmMtMC44MjUgMC4zNDItMS43MyAwLjUzMi0yLjY3OSAwLjUzMnMtMS44NTQtMC4xODktMi42NzktMC41MzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTBjLTEgMS0xIDItMiAycy0yLTEtMy0yLTItMi0yLTMgMS0xIDItMi0yLTQtMy00LTMgMy0zIDNjMCAyIDIuMDU1IDYuMDU1IDQgOHM2IDQgOCA0YzAgMCAzLTIgMy0zcy0zLTQtNC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBob25lSGFuZ1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljg5NyA5YzAuMTI1IDAuODY3IDAuMjA3IDIuMDUzLTAuMTgyIDIuNTA3LTAuNjQzIDAuNzUxLTQuNzE0IDAuNzUxLTQuNzE0LTAuNzUxIDAtMC43NTYgMC42Ny0xLjI1MiAwLjAyNy0yLjAwMy0wLjYzMi0wLjczOC0xLjc2Ni0wLjc1LTMuMDI3LTAuNzUxcy0yLjM5NCAwLjAxMi0zLjAyNyAwLjc1MWMtMC42NDMgMC43NTEgMC4wMjcgMS4yNDcgMC4wMjcgMi4wMDMgMCAxLjUwMS00LjA3MSAxLjUwMS00LjcxNCAwLjc1MS0wLjM4OS0wLjQ1NC0wLjMwNy0xLjY0LTAuMTgyLTIuNTA3IDAuMDk2LTAuNTc5IDAuMzM5LTEuMjAzIDEuMTE4LTIgMC0wIDAtMCAwLTAgMS4xNjgtMS4wOTAgMi45MzUtMS45OCA2LjcxNi0ydi0wYzAuMDIxIDAgMC4wNDIgMCAwLjA2MyAwczAuMDQxLTAgMC4wNjMtMHYwYzMuNzgxIDAuMDE5IDUuNTQ4IDAuOTEgNi43MTYgMiAwIDAgMCAwIDAgMCAwLjc3OCAwLjc5NyAxLjAyMiAxLjQyMSAxLjExOCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFkZHJlc3NCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMHYxNmgxMnYtMTZoLTEyek05IDQuMDA1YzEuMTAyIDAgMS45OTUgMC44OTMgMS45OTUgMS45OTVzLTAuODkzIDEuOTk1LTEuOTk1IDEuOTk1LTEuOTk1LTAuODkzLTEuOTk1LTEuOTk1IDAuODkzLTEuOTk1IDEuOTk1LTEuOTk1djB6TTEyIDEyaC02di0xYzAtMS4xMDUgMC44OTUtMiAyLTJ2MGgyYzEuMTA1IDAgMiAwLjg5NSAyIDJ2MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDFoMS41djNoLTEuNXYtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDVoMS41djNoLTEuNXYtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDloMS41djNoLTEuNXYtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDEzaDEuNXYzaC0xLjV2LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRW52ZWxvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDJoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEwYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTBjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNi4yMyA4LjZsLTQuMjMgMy4yOTV2LTcuODM4bDQuMjMgNC41NDN6TTIuNzU2IDRoMTAuNDg4bC01LjI0NCAzLjkzOC01LjI0NC0zLjkzOHpNNi4zOTUgOC43NzdsMS42MDUgMS43MjMgMS42MDUtMS43MjMgMy4yOSA0LjIyM2gtOS43OWwzLjI5LTQuMjIzek05Ljc3IDguNmw0LjIzLTQuNTQzdjcuODM4bC00LjIzLTMuMjk1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVB1c2hwaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDBsLTEuNSAxLjUgMS41IDEuNS0zLjUgNGgtMy41bDIuNzUgMi43NS00LjI1IDUuNjM1djAuNjE1aDAuNjE1bDUuNjM1LTQuMjUgMi43NSAyLjc1di0zLjVsNC0zLjUgMS41IDEuNSAxLjUtMS41LTcuNS03LjV6TTcgOC41bC0xLTEgMy41LTMuNSAxIDEtMy41IDMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Mb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTIuNzYxIDAtNSAyLjIzOS01IDUgMCA1IDUgMTEgNSAxMXM1LTYgNS0xMWMwLTIuNzYxLTIuMjM5LTUtNS01ek04IDhjLTEuNjU3IDAtMy0xLjM0My0zLTNzMS4zNDMtMyAzLTMgMyAxLjM0MyAzIDMtMS4zNDMgMy0zIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTG9jYXRpb24yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtMi43NjEgMC01IDIuMjM5LTUgNSAwIDUgNSAxMSA1IDExczUtNiA1LTExYzAtMi43NjEtMi4yMzktNS01LTV6TTggOC4wNjNjLTEuNjkxIDAtMy4wNjMtMS4zNzEtMy4wNjMtMy4wNjNzMS4zNzEtMy4wNjMgMy4wNjMtMy4wNjMgMy4wNjMgMS4zNzEgMy4wNjMgMy4wNjMtMS4zNzEgMy4wNjMtMy4wNjMgMy4wNjN6TTYuMDYzIDVjMC0xLjA3MCAwLjg2Ny0xLjkzOCAxLjkzOC0xLjkzOHMxLjkzOCAwLjg2NyAxLjkzOCAxLjkzOGMwIDEuMDcwLTAuODY3IDEuOTM4LTEuOTM4IDEuOTM4cy0xLjkzOC0wLjg2Ny0xLjkzOC0xLjkzOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db21wYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxNmMtMC4wMzYgMC0wLjA3Mi0wLjAwNC0wLjEwOC0wLjAxMi0wLjIyOS0wLjA1MS0wLjM5Mi0wLjI1NC0wLjM5Mi0wLjQ4OHYtNy41aC03LjVjLTAuMjM0IDAtMC40MzctMC4xNjMtMC40ODgtMC4zOTJzMC4wNjQtMC40NjIgMC4yNzctMC41NjFsMTUtN2MwLjE5MS0wLjA4OSAwLjQxNi0wLjA0OSAwLjU2NSAwLjFzMC4xODggMC4zNzQgMC4xIDAuNTY1bC03IDE1Yy0wLjA4MyAwLjE3OS0wLjI2MiAwLjI4OS0wLjQ1MyAwLjI4OXpNMi43NTQgN2g1Ljc0NmMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41djUuNzQ2bDUuNDY1LTExLjcxMi0xMS43MTIgNS40NjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ29tcGFzczIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek0xLjUgOGMwLTMuNTkgMi45MS02LjUgNi41LTYuNSAxLjcxMiAwIDMuMjY5IDAuNjYyIDQuNDMgMS43NDRsLTYuNDMgMi43NTYtMi43NTYgNi40M2MtMS4wODItMS4xNjEtMS43NDQtMi43MTgtMS43NDQtNC40M3pNOS4xNDMgOS4xNDNsLTQuMDAxIDEuNzE1IDEuNzE1LTQuMDAxIDIuMjg2IDIuMjg2ek04IDE0LjVjLTEuNzEyIDAtMy4yNjktMC42NjItNC40My0xLjc0NGw2LjQzLTIuNzU2IDIuNzU2LTYuNDNjMS4wODIgMS4xNjEgMS43NDQgMi43MTggMS43NDQgNC40MyAwIDMuNTktMi45MSA2LjUtNi41IDYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzbDUtMnYxMmwtNSAyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMC41bDUgM3YxMS41bC01LTIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzLjVsNC0zdjEybC00IDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTWFwMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDNsLTUtMi01LjUgMnYxMmw1LjUtMiA1IDIgNS41LTJ2LTEybC01LjUgMnpNNiAyLjI3N2w0IDEuNnY5Ljg0NmwtNC0xLjZ2LTkuODQ2ek0xIDMuN2w0LTEuNDU1djkuODcybC00IDEuNDU0di05Ljg3MnpNMTUgMTIuM2wtNCAxLjQ1NXYtOS44NzJsNC0xLjQ1NXY5Ljg3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1IaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE3IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDFjMy44NjYgMCA3IDMuMTM0IDcgN3MtMy4xMzQgNy03IDd2LTEuNWMxLjQ2OSAwIDIuODUtMC41NzIgMy44ODktMS42MTFzMS42MTEtMi40MiAxLjYxMS0zLjg4OWMwLTEuNDY5LTAuNTcyLTIuODUtMS42MTEtMy44ODlzLTIuNDItMS42MTEtMy44ODktMS42MTFjLTEuNDY5IDAtMi44NSAwLjU3Mi0zLjg4OSAxLjYxMS0wLjc5OSAwLjc5OS0xLjMyMiAxLjgwMS0xLjUyIDIuODg5aDIuOTA5bC0zLjUgNC0zLjUtNGgyLjU3MWMwLjQ4NS0zLjM5MiAzLjQwMi02IDYuOTI5LTZ6TTEzIDd2MmgtNHYtNWgydjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMjkzIDExLjcwN2wtMy4yOTMtMy4yOTN2LTQuNDE0aDJ2My41ODZsMi43MDcgMi43MDd6TTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNOCAxNGMtMy4zMTQgMC02LTIuNjg2LTYtNnMyLjY4Ni02IDYtNmMzLjMxNCAwIDYgMi42ODYgNiA2cy0yLjY4NiA2LTYgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DbG9jazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek0xMC4yOTMgMTEuNzA3bC0zLjI5My0zLjI5M3YtNC40MTRoMnYzLjU4NmwyLjcwNyAyLjcwNy0xLjQxNCAxLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BbGFybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDJjLTMuODY2IDAtNyAzLjEzNC03IDdzMy4xMzQgNyA3IDcgNy0zLjEzNCA3LTctMy4xMzQtNy03LTd6TTggMTQuNjI1Yy0zLjEwNyAwLTUuNjI1LTIuNTE4LTUuNjI1LTUuNjI1czIuNTE4LTUuNjI1IDUuNjI1LTUuNjI1YzMuMTA3IDAgNS42MjUgMi41MTggNS42MjUgNS42MjVzLTIuNTE4IDUuNjI1LTUuNjI1IDUuNjI1ek0xNC42MDYgNC40ODdjMC4yNTEtMC40MzggMC4zOTQtMC45NDYgMC4zOTQtMS40ODcgMC0xLjY1Ny0xLjM0My0zLTMtMy0wLjk2NiAwLTEuODI1IDAuNDU3LTIuMzc0IDEuMTY2IDIuMDYxIDAuNDI2IDMuODMxIDEuNjQ0IDQuOTggMy4zMjJ2MHpNNi4zNzQgMS4xNjZjLTAuNTQ5LTAuNzA5LTEuNDA4LTEuMTY2LTIuMzc0LTEuMTY2LTEuNjU3IDAtMyAxLjM0My0zIDMgMCAwLjU0MSAwLjE0MyAxLjA0OSAwLjM5NCAxLjQ4NyAxLjE0OC0xLjY3OCAyLjkxOS0yLjg5NiA0Ljk4LTMuMzIyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggOXYtNGgtMXY1aDR2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4wMjMgMTIuNWMwLTQuNS00LTMuNS00LTcgMC0wLjI5LTAuMDI4LTAuNTM4LTAuMDc5LTAuNzQ5LTAuMjYzLTEuNzY2LTEuNDQtMy4xODMtMi45NjUtMy42MTUgMC4wMTQtMC4wNjIgMC4wMjEtMC4xMjUgMC4wMjEtMC4xOTEgMC0wLjUyLTAuNDUtMC45NDUtMS0wLjk0NXMtMSAwLjQyNS0xIDAuOTQ1YzAgMC4wNjUgMC4wMDcgMC4xMjkgMC4wMjEgMC4xOTEtMS43MSAwLjQ4NC0yLjk4MyAyLjIwOC0zLjAyMCA0LjI3My0wLjAwMSAwLjAzMC0wLjAwMSAwLjA2MC0wLjAwMSAwLjA5MSAwIDMuNS00IDIuNS00IDcgMCAxLjE5MSAyLjY2NSAyLjE4NyA2LjIzNCAyLjQzOSAwLjMzNiAwLjYzMSAxLjAwMSAxLjA2MSAxLjc2NiAxLjA2MXMxLjQzLTAuNDMgMS43NjYtMS4wNjFjMy41NjgtMC4yNTEgNi4yMzQtMS4yNDggNi4yMzQtMi40MzkgMC0wLjAwNC0wLTAuMDA3LTAtMC4wMTFsMC4wMjQgMC4wMTF6TTEyLjkxIDEzLjM0NWMtMC44NDcgMC4yMjYtMS44NDYgMC4zODktMi45MTggMC40NzktMC4wODktMS4wMjItMC45NDctMS44MjQtMS45OTItMS44MjRzLTEuOTAzIDAuODAyLTEuOTkyIDEuODI0Yy0xLjA3Mi0wLjA5MC0yLjA3MS0wLjI1My0yLjkxOC0wLjQ3OS0xLjE2Ni0wLjMxMS0xLjcyNC0wLjY1OS0xLjkyOC0wLjg0NSAwLjIwNC0wLjE4NiAwLjc2Mi0wLjUzNCAxLjkyOC0wLjg0NSAxLjM1Ni0wLjM2MiAzLjEtMC41NjEgNC45MS0wLjU2MXMzLjU1NCAwLjE5OSA0LjkxIDAuNTYxYzEuMTY2IDAuMzExIDEuNzI0IDAuNjU5IDEuOTI4IDAuODQ1LTAuMjA0IDAuMTg2LTAuNzYyIDAuNTM0LTEuOTI4IDAuODQ1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVN0b3B3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDMuMDE5di0xLjAxOWgydi0xYzAtMC41NTItMC40NDgtMS0xLTFoLTNjLTAuNTUyIDAtMSAwLjQ0OC0xIDF2MWgydjEuMDE5Yy0zLjM1NiAwLjI1NS02IDMuMDU5LTYgNi40ODEgMCAzLjU5IDIuOTEgNi41IDYuNSA2LjVzNi41LTIuOTEgNi41LTYuNWMwLTMuNDIyLTIuNjQ0LTYuMjI2LTYtNi40ODF6TTExLjAzNiAxMy4wMzZjLTAuOTQ0IDAuOTQ0LTIuMiAxLjQ2NC0zLjUzNiAxLjQ2NHMtMi41OTEtMC41Mi0zLjUzNi0xLjQ2NGMtMC45NDQtMC45NDQtMS40NjQtMi4yLTEuNDY0LTMuNTM2czAuNTItMi41OTEgMS40NjQtMy41MzZjMC45MDctMC45MDcgMi4xMDEtMS40MjIgMy4zNzctMS40NjJsLTAuMzM5IDQuOTA3Yy0wLjAyOSAwLjQxMSAwLjE5NSAwLjU5MSAwLjQ5NyAwLjU5MXMwLjUyNy0wLjE4IDAuNDk3LTAuNTkxbC0wLjMzOS00LjkwN2MxLjI3NiAwLjA0MCAyLjQ3IDAuNTU1IDMuMzc3IDEuNDYyIDAuOTQ0IDAuOTQ0IDEuNDY0IDIuMiAxLjQ2NCAzLjUzNnMtMC41MiAyLjU5MS0xLjQ2NCAzLjUzNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZoMnYyaC0yek04IDZoMnYyaC0yek0xMSA2aDJ2MmgtMnpNMiAxMmgydjJoLTJ6TTUgMTJoMnYyaC0yek04IDEyaDJ2MmgtMnpNNSA5aDJ2MmgtMnpNOCA5aDJ2MmgtMnpNMTEgOWgydjJoLTJ6TTIgOWgydjJoLTJ6TTEzIDB2MWgtMnYtMWgtN3YxaC0ydi0xaC0ydjE2aDE1di0xNmgtMnpNMTQgMTVoLTEzdi0xMWgxM3YxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QcmludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMWg4djJoLTh2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNGgtMTRjLTAuNTUgMC0xIDAuNDUtMSAxdjVjMCAwLjU1IDAuNDUgMSAxIDFoM3Y0aDh2LTRoM2MwLjU1IDAgMS0wLjQ1IDEtMXYtNWMwLTAuNTUtMC40NS0xLTEtMXpNMiA3Yy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xIDEgMC40NDggMSAxLTAuNDQ4IDEtMSAxek0xMSAxNGgtNnYtNWg2djV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltS2V5Ym9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTggMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMmgtMTZjLTAuNTUgMC0xIDAuNDUtMSAxdjEwYzAgMC41NSAwLjQ1IDEgMSAxaDE2YzAuNTUgMCAxLTAuNDUgMS0xdi0xMGMwLTAuNTUtMC40NS0xLTEtMXpNMTAgNGgydjJoLTJ2LTJ6TTEzIDd2MmgtMnYtMmgyek03IDRoMnYyaC0ydi0yek0xMCA3djJoLTJ2LTJoMnpNNCA0aDJ2MmgtMnYtMnpNNyA3djJoLTJ2LTJoMnpNMiA0aDF2MmgtMXYtMnpNMiA3aDJ2MmgtMnYtMnpNMyAxMmgtMXYtMmgxdjJ6TTEyIDEyaC04di0yaDh2MnpNMTYgMTJoLTN2LTJoM3Yyek0xNiA5aC0ydi0yaDJ2MnpNMTYgNmgtM3YtMmgzdjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRGlzcGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDF2MTBoMTZ2LTEwaC0xNnpNMTUgMTBoLTE0di04aDE0djh6TTEwLjUgMTJoLTVsLTAuNSAyLTEgMWg4bC0xLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTGFwdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDExdi04YzAtMC41NS0wLjQ1LTEtMS0xaC0xMGMtMC41NSAwLTEgMC40NS0xIDF2OGgtMnYzaDE2di0zaC0yek0xMCAxM2gtNHYtMWg0djF6TTEzIDExaC0xMHYtNy45OThjMC4wMDEtMC4wMDEgMC4wMDEtMC4wMDEgMC4wMDItMC4wMDJoOS45OTZjMC4wMDEgMC4wMDEgMC4wMDEgMC4wMDEgMC4wMDIgMC4wMDJ2Ny45OTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgMGgtN2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDdjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNiAwLjc1aDR2MC41aC00di0wLjV6TTggMTVjLTAuNTUyIDAtMS0wLjQ0OC0xLTFzMC40NDgtMSAxLTEgMSAwLjQ0OCAxIDEtMC40NDggMS0xIDF6TTEyIDEyaC04di0xMGg4djEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1vYmlsZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMGgtOWMtMC41NSAwLTEgMC40NS0xIDF2MTRjMCAwLjU1IDAuNDUgMSAxIDFoOWMwLjU1IDAgMS0wLjQ1IDEtMXYtMTRjMC0wLjU1LTAuNDUtMS0xLTF6TTcuNSAxNS4yNzhjLTAuNDMgMC0wLjc3OC0wLjM0OC0wLjc3OC0wLjc3OHMwLjM0OC0wLjc3OCAwLjc3OC0wLjc3OCAwLjc3OCAwLjM0OCAwLjc3OCAwLjc3OC0wLjM0OCAwLjc3OC0wLjc3OCAwLjc3OHpNMTIgMTNoLTl2LTExaDl2MTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVGFibGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMGgtMTBjLTAuODI1IDAtMS41IDAuNjc1LTEuNSAxLjV2MTNjMCAwLjgyNSAwLjY3NSAxLjUgMS41IDEuNWgxMGMwLjgyNSAwIDEuNS0wLjY3NSAxLjUtMS41di0xM2MwLTAuODI1LTAuNjc1LTEuNS0xLjUtMS41ek03LjUgMTUuNWMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyNC0wLjUgMC41LTAuNSAwLjUgMC4yMjQgMC41IDAuNS0wLjIyNCAwLjUtMC41IDAuNXpNMTIgMTRoLTl2LTEyaDl2MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVHYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMzMxIDQuNTAyYy0xLjM4OC0wLjE5OS0yLjg2NS0wLjM0NC00LjQwNy0wLjQyNWwyLjU3Ni0yLjU3Ni0xLTEtMy41MDkgMy41MDljLTAuMzI4LTAuMDA2LTAuNjU5LTAuMDA5LTAuOTkxLTAuMDA5djBsLTQtNC0xIDEgMy4wMzQgMy4wMzRjLTEuODg5IDAuMDY2LTMuNjkzIDAuMjI3LTUuMzY1IDAuNDY3LTAuNDMgMS42ODMtMC42NjkgMy41NDMtMC42NjkgNS40OThzMC4yMzkgMy44MTUgMC42NjkgNS40OThjMi4yNDQgMC4zMjMgNC43MjQgMC41MDIgNy4zMzEgMC41MDJzNS4wODctMC4xNzkgNy4zMzEtMC41MDJjMC40My0xLjY4MyAwLjY2OS0zLjU0MyAwLjY2OS01LjQ5OHMtMC4yMzktMy44MTUtMC42NjktNS40OTh6TTEzLjQ5OCAxMy42NjZjLTEuNjgzIDAuMjE1LTMuNTQzIDAuMzM0LTUuNDk4IDAuMzM0cy0zLjgxNS0wLjExOS01LjQ5OC0wLjMzNGMtMC4zMjMtMS4xMjItMC41MDItMi4zNjItMC41MDItMy42NjZzMC4xNzktMi41NDMgMC41MDItMy42NjZjMS42ODMtMC4yMTUgMy41NDMtMC4zMzQgNS40OTgtMC4zMzRzMy44MTUgMC4xMTkgNS40OTggMC4zMzRjMC4zMjMgMS4xMjIgMC41MDIgMi4zNjIgMC41MDIgMy42NjZzLTAuMTc5IDIuNTQzLTAuNTAyIDMuNjY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbURyYXdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS44OSAxMC4xODhsLTQtNWMtMC4wOTUtMC4xMTktMC4yMzktMC4xODgtMC4zOS0wLjE4OGgtN2MtMC4xNTIgMC0wLjI5NiAwLjA2OS0wLjM5IDAuMTg4bC00IDVjLTAuMDcxIDAuMDg5LTAuMTEgMC4xOTktMC4xMSAwLjMxMnY0LjVjMCAwLjU1MiAwLjQ0OCAxIDEgMWgxNGMwLjU1MiAwIDEtMC40NDggMS0xdi00LjVjMC0wLjExNC0wLjAzOS0wLjIyNC0wLjExLTAuMzEyek0xNSAxMWgtMy41bC0yIDJoLTNsLTItMmgtMy41di0wLjMyNWwzLjc0LTQuNjc1aDYuNTE5bDMuNzQgNC42NzV2MC4zMjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA4aC03Yy0wLjI3NiAwLTAuNS0wLjIyNC0wLjUtMC41czAuMjI0LTAuNSAwLjUtMC41aDdjMC4yNzYgMCAwLjUgMC4yMjQgMC41IDAuNXMtMC4yMjQgMC41LTAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMGgtOWMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyNC0wLjUgMC41LTAuNWg5YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbURyYXdlcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuODkgMTAuMTg4bC00LTVjLTAuMDk1LTAuMTE5LTAuMjM5LTAuMTg4LTAuMzktMC4xODhoLTdjLTAuMTUyIDAtMC4yOTYgMC4wNjktMC4zOSAwLjE4OGwtNCA1Yy0wLjA3MSAwLjA4OS0wLjExIDAuMTk5LTAuMTEgMC4zMTJ2NC41YzAgMC41NTIgMC40NDggMSAxIDFoMTRjMC41NTIgMCAxLTAuNDQ4IDEtMXYtNC41YzAtMC4xMTQtMC4wMzktMC4yMjQtMC4xMS0wLjMxMnpNMTUgMTFoLTMuNWwtMiAyaC0zbC0yLTJoLTMuNXYtMC4zMjVsMy43NC00LjY3NWg2LjUxOWwzLjc0IDQuNjc1djAuMzI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJveEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxaC0xMGwtMyAzdjEwLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgxNWMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di0xMC41bC0zLTN6TTggMTNsLTUtNGgzdi0zaDR2M2gzbC01IDR6TTIuNDE0IDNsMS0xaDkuMTcybDEgMWgtMTEuMTcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJveFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxaC0xMGwtMyAzdjEwLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgxNWMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di0xMC41bC0zLTN6TTEwIDEwdjNoLTR2LTNoLTNsNS00IDUgNGgtM3pNMi40MTQgM2wxLTFoOS4xNzFsMSAxaC0xMS4xNzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5bDQtNGgtM3YtNGgtMnY0aC0zek0xMS42MzYgNy4zNjRsLTEuMTIxIDEuMTIxIDQuMDY0IDEuNTE1LTYuNTc5IDIuNDUzLTYuNTc5LTIuNDUzIDQuMDY0LTEuNTE1LTEuMTIxLTEuMTIxLTQuMzY0IDEuNjM2djRsOCAzIDgtM3YtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1VcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5aDJ2LTRoM2wtNC00LTQgNGgzek0xMCA2Ljc1djEuNTQybDQuNTc5IDEuNzA4LTYuNTc5IDIuNDUzLTYuNTc5LTIuNDUzIDQuNTc5LTEuNzA4di0xLjU0MmwtNiAyLjI1djRsOCAzIDgtM3YtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GbG9wcHlEaXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDBoLTE0djE2aDE2di0xNGwtMi0yek04IDJoMnY0aC0ydi00ek0xNCAxNGgtMTJ2LTEyaDF2NWg5di01aDEuMTcybDAuODI4IDAuODI4djExLjE3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Ecml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE0aDEwYzEuNjU3IDAgMy0xLjM0MyAzLTNoLTE2YzAgMS42NTcgMS4zNDMgMyAzIDN6TTEzIDEyaDF2MWgtMXYtMXpNMTUgMmgtMTRsLTEgOGgxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1EYXRhYmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAxLjExOS04IDIuNXYyYzAgMS4zODEgMy41ODIgMi41IDggMi41czgtMS4xMTkgOC0yLjV2LTJjMC0xLjM4MS0zLjU4Mi0yLjUtOC0yLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA4LjVjLTQuNDE4IDAtOC0xLjExOS04LTIuNXYzYzAgMS4zODEgMy41ODIgMi41IDggMi41czgtMS4xMTkgOC0yLjV2LTNjMCAxLjM4MS0zLjU4MiAyLjUtOCAyLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxM2MtNC40MTggMC04LTEuMTE5LTgtMi41djNjMCAxLjM4MSAzLjU4MiAyLjUgOCAyLjVzOC0xLjExOSA4LTIuNXYtM2MwIDEuMzgxLTMuNTgyIDIuNS04IDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1VbmRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMWMtMi4yMDkgMC00LjIwOSAwLjg5Ni01LjY1NyAyLjM0M2wtMi4zNDMtMi4zNDN2Nmg2bC0yLjI0My0yLjI0M2MxLjA4Ni0xLjA4NiAyLjU4Ni0xLjc1NyA0LjI0My0xLjc1NyAzLjMxNCAwIDYgMi42ODYgNiA2IDAgMS43OTItMC43ODYgMy40MDEtMi4wMzIgNC41bDEuMzIzIDEuNWMxLjY2MS0xLjQ2NiAyLjcwOS0zLjYxMSAyLjcwOS02IDAtNC40MTgtMy41ODItOC04LTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUmVkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDljMCAyLjM4OSAxLjA0OCA0LjUzNCAyLjcwOSA2bDEuMzIzLTEuNWMtMS4yNDYtMS4wOTktMi4wMzEtMi43MDgtMi4wMzEtNC41IDAtMy4zMTQgMi42ODYtNiA2LTYgMS42NTcgMCAzLjE1NyAwLjY3MiA0LjI0MyAxLjc1N2wtMi4yNDMgMi4yNDNoNnYtNmwtMi4zNDMgMi4zNDNjLTEuNDQ4LTEuNDQ4LTMuNDQ4LTIuMzQzLTUuNjU3LTIuMzQzLTQuNDE4IDAtOCAzLjU4Mi04IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVW5kbzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTA0IDE2YzEuNzc3LTMuMjE5IDIuMDc2LTguMTMtNC45MDQtNy45NjZ2My45NjZsLTYtNiA2LTZ2My44ODFjOC4zNTktMC4yMTggOS4yOSA3LjM3OCA0LjkwNCAxMi4xMTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUmVkbzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAzLjg4MXYtMy44ODFsNiA2LTYgNnYtMy45NjZjLTYuOTgtMC4xNjQtNi42ODEgNC43NDctNC45MDQgNy45NjYtNC4zODYtNC43NDEtMy40NTUtMTIuMzM3IDQuOTA0LTEyLjExOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Gb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMDk2IDBjLTEuNzc3IDMuMjE5LTIuMDc2IDguMTMgNC45MDQgNy45NjZ2LTMuOTY2bDYgNi02IDZ2LTMuODgxYy04LjM1OSAwLjIxOC05LjI5LTcuMzc4LTQuOTA0LTEyLjExOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1SZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDEyLjExOXYzLjg4MWwtNi02IDYtNnYzLjk2NmM2Ljk4IDAuMTY0IDYuNjgxLTQuNzQ3IDQuOTA0LTcuOTY2IDQuMzg2IDQuNzQxIDMuNDU1IDEyLjMzNy00LjkwNCAxMi4xMTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQnViYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMWM0LjQxOCAwIDggMi45MSA4IDYuNXMtMy41ODIgNi41LTggNi41Yy0wLjQyNCAwLTAuODQxLTAuMDI3LTEuMjQ3LTAuMDc5LTEuNzE4IDEuNzE4LTMuNzcgMi4wMjctNS43NTMgMi4wNzJ2LTAuNDIxYzEuMDcxLTAuNTI1IDItMS40OCAyLTIuNTcyIDAtMC4xNTItMC4wMTItMC4zMDItMC4wMzQtMC40NDgtMS44MDktMS4xOTItMi45NjYtMy4wMTItMi45NjYtNS4wNTIgMC0zLjU5IDMuNTgyLTYuNSA4LTYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1CdWJibGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE4IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE0LjA4MWMwIDAuNzExIDAuNDA3IDEuMzI3IDEgMS42Mjh2MC4yNDljLTAuMTY2IDAuMDIzLTAuMzM1IDAuMDM1LTAuNTA4IDAuMDM1LTEuMDYzIDAtMi4wMjEtMC40NDYtMi42OTktMS4xNi0wLjQxIDAuMTA5LTAuODQ0IDAuMTY4LTEuMjkzIDAuMTY4LTIuNDg1IDAtNC41LTEuNzkxLTQuNS00czIuMDE1LTQgNC41LTRjMi40ODUgMCA0LjUgMS43OTEgNC41IDQgMCAwLjg2NS0wLjMwOSAxLjY2NS0wLjgzNCAyLjMyLTAuMTA3IDAuMjMyLTAuMTY2IDAuNDg5LTAuMTY2IDAuNzYxek04IDBjNC4zNTEgMCA3Ljg5IDIuODIyIDcuOTk3IDYuMzM2LTAuNzY4LTAuMzQzLTEuNjE5LTAuNTI0LTIuNDk3LTAuNTI0LTEuNDkzIDAtMi45MDMgMC41MjMtMy45NzEgMS40NzItMS4xMDcgMC45ODQtMS43MTcgMi4zMDQtMS43MTcgMy43MTYgMCAwLjY5OCAwLjE0OSAxLjM3MyAwLjQzMyAxLjk5Ny0wLjA4MiAwLjAwMi0wLjE2NCAwLjAwMy0wLjI0NiAwLjAwMy0wLjQyNCAwLTAuODQxLTAuMDI3LTEuMjQ3LTAuMDc5LTEuNzE4IDEuNzE4LTMuNzcgMi4wMjctNS43NTMgMi4wNzJ2LTAuNDIxYzEuMDcxLTAuNTI1IDItMS40OCAyLTIuNTcyIDAtMC4xNTItMC4wMTItMC4zMDItMC4wMzQtMC40NDgtMS44MDktMS4xOTItMi45NjYtMy4wMTItMi45NjYtNS4wNTIgMC0zLjU5IDMuNTgyLTYuNSA4LTYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1CdWJibGVzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxOCAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMHYwYzQuMTQyIDAgNy41IDIuNzE3IDcuNSA2LjA2OXMtMy4zNTggNi4wNjktNy41IDYuMDY5Yy0wLjM5OCAwLTAuNzg4LTAuMDI1LTEuMTY5LTAuMDc0LTEuNjExIDEuNjA1LTMuNDcxIDEuODkyLTUuMzMxIDEuOTM1di0wLjM5M2MxLjAwNC0wLjQ5IDEuODEzLTEuMzgyIDEuODEzLTIuNDAyIDAtMC4xNDItMC4wMTEtMC4yODItMC4wMzItMC40MTktMS42OTYtMS4xMTMtMi43ODEtMi44MTItMi43ODEtNC43MTcgMC0zLjM1MiAzLjM1OC02LjA2OSA3LjUtNi4wNjl6TTE1LjU2MyAxMy42MDRjMCAwLjg3NCAwLjU2NyAxLjYzOSAxLjQzOCAyLjA1OXYwLjMzN2MtMS42MTEtMC4wMzYtMy4wOTAtMC4yODMtNC40ODctMS42NTgtMC4zMyAwLjA0MS0wLjY2OSAwLjA2My0xLjAxMyAwLjA2My0xLjQ5MiAwLTIuODY2LTAuNDAyLTMuOTYzLTEuMDc5IDIuMjYxLTAuMDA4IDQuMzk1LTAuNzMyIDYuMDEzLTIuMDQyIDAuODE2LTAuNjYgMS40NTktMS40MzUgMS45MTMtMi4zMDIgMC40ODEtMC45MiAwLjcyNC0xLjkgMC43MjQtMi45MTMgMC0wLjE2My0wLjAwNy0wLjMyNi0wLjAyMC0wLjQ4NyAxLjEzNCAwLjkzNiAxLjgzMiAyLjIxMyAxLjgzMiAzLjYyIDAgMS42MzMtMC45NCAzLjA4OS0yLjQxIDQuMDQzLTAuMDE4IDAuMTE3LTAuMDI3IDAuMjM3LTAuMDI3IDAuMzU5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJ1YmJsZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAzYy0wLjg1OCAwLTEuNjg3IDAuMTM1LTIuNDY0IDAuNDAyLTAuNzMgMC4yNTEtMS4zOCAwLjYwNS0xLjkzMiAxLjA1NC0xLjAzNSAwLjg0MS0xLjYwNCAxLjkyMi0xLjYwNCAzLjA0NCAwIDAuNjMgMC4xNzUgMS4yNCAwLjUyIDEuODE1IDAuMzU2IDAuNTkyIDAuODkgMS4xMzQgMS41NDcgMS41NjYgMC40NzQgMC4zMTIgMC43OTMgMC44MTIgMC44NzggMS4zNzMgMC4wMjggMC4xODcgMC4wNDYgMC4zNzYgMC4wNTMgMC41NjQgMC4xMTctMC4wOTcgMC4yMy0wLjIwMSAwLjM0Mi0wLjMxMiAwLjM3Ny0wLjM3NyAwLjg4Ny0wLjU4NiAxLjQxNC0wLjU4NiAwLjA4NCAwIDAuMTY4IDAuMDA1IDAuMjUyIDAuMDE2IDAuMzI4IDAuMDQyIDAuNjYyIDAuMDYzIDAuOTk1IDAuMDYzIDAuODU4IDAgMS42ODctMC4xMzUgMi40NjQtMC40MDIgMC43My0wLjI1MSAxLjM4LTAuNjA1IDEuOTMyLTEuMDU0IDEuMDM1LTAuODQxIDEuNjA0LTEuOTIyIDEuNjA0LTMuMDQ0cy0wLjU3LTIuMjAzLTEuNjA0LTMuMDQ0Yy0wLjU1Mi0wLjQ0OC0xLjIwMi0wLjgwMy0xLjkzMi0xLjA1NC0wLjc3Ny0wLjI2Ny0xLjYwNi0wLjQwMi0yLjQ2NC0wLjQwMnpNOCAxdjBjNC40MTggMCA4IDIuOTEgOCA2LjVzLTMuNTgyIDYuNS04IDYuNWMtMC40MjQgMC0wLjg0MS0wLjAyNy0xLjI0Ny0wLjA3OS0xLjcxOCAxLjcxOC0zLjc3IDIuMDI3LTUuNzUzIDIuMDcydi0wLjQyMWMxLjA3MS0wLjUyNSAyLTEuNDggMi0yLjU3MiAwLTAuMTUyLTAuMDEyLTAuMzAyLTAuMDM0LTAuNDQ4LTEuODA5LTEuMTkyLTIuOTY2LTMuMDEyLTIuOTY2LTUuMDUyIDAtMy41OSAzLjU4Mi02LjUgOC02LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQnViYmxlczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTggMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTQuMDgxYzAgMC43MTEgMC40MDcgMS4zMjcgMSAxLjYyOHYwLjI0OWMtMC4xNjYgMC4wMjMtMC4zMzUgMC4wMzUtMC41MDggMC4wMzUtMS4wNjMgMC0yLjAyMS0wLjQ0Ni0yLjY5OS0xLjE2LTAuNDEgMC4xMDktMC44NDQgMC4xNjgtMS4yOTMgMC4xNjgtMi40ODUgMC00LjUtMS43OTEtNC41LTRzMi4wMTUtNCA0LjUtNGMyLjQ4NSAwIDQuNSAxLjc5MSA0LjUgNCAwIDAuODY1LTAuMzA5IDEuNjY1LTAuODM0IDIuMzItMC4xMDcgMC4yMzItMC4xNjYgMC40ODktMC4xNjYgMC43NjF6TTMuNjA0IDMuNDU2Yy0xLjAzNSAwLjg0MS0xLjYwNCAxLjkyMi0xLjYwNCAzLjA0NCAwIDAuNjMgMC4xNzUgMS4yNCAwLjUyIDEuODE1IDAuMzU2IDAuNTkyIDAuODkgMS4xMzQgMS41NDcgMS41NjYgMC40NzQgMC4zMTIgMC43OTMgMC44MTIgMC44NzggMS4zNzMgMC4wMjggMC4xODcgMC4wNDYgMC4zNzYgMC4wNTMgMC41NjQgMC4xMTctMC4wOTcgMC4yMy0wLjIwMSAwLjM0Mi0wLjMxMiAwLjM3Ny0wLjM3NyAwLjg4Ny0wLjU4NiAxLjQxNC0wLjU4NiAwLjA4NCAwIDAuMTY4IDAuMDA1IDAuMjUyIDAuMDE2IDAuMzI3IDAuMDQyIDAuNjYyIDAuMDYzIDAuOTk0IDAuMDYzdjJjLTAuNDI0LTAtMC44NC0wLjAyNy0xLjI0Ni0wLjA3OS0xLjcxOCAxLjcxOC0zLjc3IDIuMDI3LTUuNzUzIDIuMDcydi0wLjQyMWMxLjA3MS0wLjUyNSAyLTEuNDggMi0yLjU3MiAwLTAuMTUyLTAuMDEyLTAuMzAyLTAuMDM0LTAuNDQ4LTEuODA5LTEuMTkyLTIuOTY2LTMuMDEyLTIuOTY2LTUuMDUyIDAtMy41OSAzLjU4Mi02LjUgOC02LjUgNC4zNTEgMCA3Ljg5IDIuODIyIDcuOTk3IDYuMzM2LTAuNjQyLTAuMjg2LTEuMzQxLTAuNDYtMi4wNjctMC41MDktMC4xOC0wLjg3Ni0wLjcwOS0xLjctMS41MzUtMi4zNzEtMC41NTItMC40NDgtMS4yMDItMC44MDMtMS45MzItMS4wNTQtMC43NzctMC4yNjctMS42MDYtMC40MDItMi40NjQtMC40MDJzLTEuNjg3IDAuMTM1LTIuNDY0IDAuNDAyYy0wLjczIDAuMjUxLTEuMzggMC42MDUtMS45MzIgMS4wNTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQnViYmxlczQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTggMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDJjLTAuNzkyIDAtMS41NTYgMC4xMjQtMi4yNzIgMC4zNjktMC42NzEgMC4yMy0xLjI2NyAwLjU1NC0xLjc3MyAwLjk2My0wLjkzOCAwLjc1OS0xLjQ1NSAxLjczMS0xLjQ1NSAyLjczNyAwIDAuNTYyIDAuMTU3IDEuMTA5IDAuNDY3IDEuNjIzIDAuMzIzIDAuNTM3IDAuODExIDEuMDI4IDEuNDEgMS40MjEgMC40NzYgMC4zMTIgMC43OTYgMC44MTIgMC44ODEgMS4zNzQgMC4wMTQgMC4wOTQgMC4wMjUgMC4xODggMC4wMzQgMC4yODIgMC4wNDMtMC4wMzkgMC4wODUtMC4wODAgMC4xMjctMC4xMjIgMC4zNzctMC4zNzYgMC44ODYtMC41ODMgMS40MTEtMC41ODMgMC4wODQgMCAwLjE2NyAwLjAwNSAwLjI1MSAwLjAxNiAwLjMwMyAwLjAzOCAwLjYxMSAwLjA1OCAwLjkxOCAwLjA1OCAwLjc5MiAwIDEuNTU2LTAuMTI0IDIuMjcyLTAuMzY5IDAuNjcxLTAuMjMgMS4yNjctMC41NTQgMS43NzQtMC45NjMgMC45MzgtMC43NTkgMS40NTUtMS43MzEgMS40NTUtMi43MzdzLTAuNTE3LTEuOTc4LTEuNDU1LTIuNzM3Yy0wLjUwNi0wLjQxLTEuMTAzLTAuNzM0LTEuNzc0LTAuOTYzLTAuNzE2LTAuMjQ1LTEuNDgtMC4zNjktMi4yNzItMC4zNjl6TTcuNSAwdjBjNC4xNDIgMCA3LjUgMi43MTcgNy41IDYuMDY5cy0zLjM1OCA2LjA2OS03LjUgNi4wNjljLTAuMzk4IDAtMC43ODgtMC4wMjUtMS4xNjktMC4wNzQtMS42MTEgMS42MDUtMy40NzEgMS44OTItNS4zMzEgMS45MzV2LTAuMzkzYzEuMDA0LTAuNDkgMS44MTMtMS4zODIgMS44MTMtMi40MDIgMC0wLjE0Mi0wLjAxMS0wLjI4Mi0wLjAzMi0wLjQxOS0xLjY5Ni0xLjExMy0yLjc4MS0yLjgxMi0yLjc4MS00LjcxNyAwLTMuMzUyIDMuMzU4LTYuMDY5IDcuNS02LjA2OXpNMTUuNTYzIDEzLjYwNGMwIDAuODc0IDAuNTY3IDEuNjM5IDEuNDM4IDIuMDU5djAuMzM3Yy0xLjYxMS0wLjAzNi0zLjA5MC0wLjI4My00LjQ4Ny0xLjY1OC0wLjMzIDAuMDQxLTAuNjY5IDAuMDYzLTEuMDEzIDAuMDYzLTEuNDkyIDAtMi44NjYtMC40MDItMy45NjMtMS4wNzkgMi4yNjEtMC4wMDggNC4zOTUtMC43MzIgNi4wMTMtMi4wNDIgMC44MTYtMC42NiAxLjQ1OS0xLjQzNSAxLjkxMy0yLjMwMiAwLjQ4MS0wLjkyIDAuNzI0LTEuOSAwLjcyNC0yLjkxMyAwLTAuMTYzLTAuMDA3LTAuMzI2LTAuMDIwLTAuNDg3IDEuMTM0IDAuOTM2IDEuODMyIDIuMjEzIDEuODMyIDMuNjIgMCAxLjYzMy0wLjk0IDMuMDg5LTIuNDEgNC4wNDMtMC4wMTggMC4xMTctMC4wMjcgMC4yMzctMC4wMjcgMC4zNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDExLjA0MXYtMC44MjVjMS4xMDItMC42MjEgMi0yLjE2OCAyLTMuNzE2IDAtMi40ODUgMC00LjUtMy00LjVzLTMgMi4wMTUtMyA0LjVjMCAxLjU0OCAwLjg5OCAzLjA5NSAyIDMuNzE2djAuODI1Yy0zLjM5MiAwLjI3Ny02IDEuOTQ0LTYgMy45NTloMTRjMC0yLjAxNS0yLjYwOC0zLjY4Mi02LTMuOTU5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVVzZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE4IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyLjA0MXYtMC44MjVjMS4xMDItMC42MjEgMi0yLjE2OCAyLTMuNzE2IDAtMi40ODUgMC00LjUtMy00LjVzLTMgMi4wMTUtMyA0LjVjMCAxLjU0OCAwLjg5OCAzLjA5NSAyIDMuNzE2djAuODI1Yy0zLjM5MiAwLjI3Ny02IDEuOTQ0LTYgMy45NTloMTRjMC0yLjAxNS0yLjYwOC0zLjY4Mi02LTMuOTU5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMTEyIDEyLjQyN2MwLjg2NC0wLjU2NSAxLjkzOS0wLjk5NCAzLjEyMi0xLjI1Ni0wLjIzNS0wLjI3OC0wLjQ0OS0wLjU4OC0wLjYzMy0wLjkyMi0wLjQ3NS0wLjg2My0wLjcyNi0xLjgxMy0wLjcyNi0yLjc0OCAwLTEuMzQ0IDAtMi42MTQgMC40NzgtMy42NTMgMC40NjQtMS4wMDggMS4yOTktMS42MzMgMi40ODgtMS44NjctMC4yNjQtMS4xOTUtMC45NjgtMS45OC0yLjg0MS0xLjk4LTMgMC0zIDIuMDE1LTMgNC41IDAgMS41NDggMC44OTggMy4wOTUgMiAzLjcxNnYwLjgyNWMtMy4zOTIgMC4yNzctNiAxLjk0NC02IDMuOTU5aDQuMzU5YzAuMjI3LTAuMjAyIDAuNDc4LTAuMzkzIDAuNzUzLTAuNTczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVVzZXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTEuNWMwLTIuMzYzIDEuNDk4LTQuMzgzIDMuNTk0LTUuMTU5IDAuMjU0LTAuNTcxIDAuNDA2LTEuMjA2IDAuNDA2LTEuODQxIDAtMi40ODUgMC00LjUtMy00LjVzLTMgMi4wMTUtMyA0LjVjMCAxLjU0OCAwLjg5OCAzLjA5NSAyIDMuNzE2djAuODI1Yy0zLjM5MiAwLjI3Ny02IDEuOTQ0LTYgMy45NTloNi4yMDhjLTAuMTM1LTAuNDc3LTAuMjA4LTAuOTgtMC4yMDgtMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgN2MtMi40ODUgMC00LjUgMi4wMTUtNC41IDQuNXMyLjAxNSA0LjUgNC41IDQuNWMyLjQ4NSAwIDQuNS0yLjAxNSA0LjUtNC41cy0yLjAxNS00LjUtNC41LTQuNXpNMTQgMTJoLTJ2MmgtMXYtMmgtMnYtMWgydi0yaDF2MmgydjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVXNlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTEuNWMwLTIuMzYzIDEuNDk4LTQuMzgzIDMuNTk0LTUuMTU5IDAuMjU0LTAuNTcxIDAuNDA2LTEuMjA2IDAuNDA2LTEuODQxIDAtMi40ODUgMC00LjUtMy00LjVzLTMgMi4wMTUtMyA0LjVjMCAxLjU0OCAwLjg5OCAzLjA5NSAyIDMuNzE2djAuODI1Yy0zLjM5MiAwLjI3Ny02IDEuOTQ0LTYgMy45NTloNi4yMDhjLTAuMTM1LTAuNDc3LTAuMjA4LTAuOTgtMC4yMDgtMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgN2MtMi40ODUgMC00LjUgMi4wMTUtNC41IDQuNXMyLjAxNSA0LjUgNC41IDQuNWMyLjQ4NSAwIDQuNS0yLjAxNSA0LjUtNC41cy0yLjAxNS00LjUtNC41LTQuNXpNMTQgMTJoLTV2LTFoNXYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVVzZXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA5LjVsLTQuNSA0LjUtMS41LTEuNS0xIDEgMi41IDIuNSA1LjUtNS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTJoNXYtMS43OTljLTEuMDUwLTAuNjEzLTIuNDQyLTEuMDMzLTQtMS4xNnYtMC44MjVjMS4xMDItMC42MjEgMi0yLjE2OCAyLTMuNzE2IDAtMi40ODUgMC00LjUtMy00LjVzLTMgMi4wMTUtMyA0LjVjMCAxLjU0OCAwLjg5OCAzLjA5NSAyIDMuNzE2djAuODI1Yy0zLjM5MiAwLjI3Ny02IDEuOTQ0LTYgMy45NTloN3YtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Vc2VyVGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgM2MwLTEuNjU3IDEuMzQzLTMgMy0zczMgMS4zNDMgMyAzYzAgMS42NTctMS4zNDMgMy0zIDNzLTMtMS4zNDMtMy0zek0xMi4wMDEgN2gtMC41NTNsLTMuMTExIDYuMzE2IDEuMTYzLTUuODE2LTEuNS0xLjUtMS41IDEuNSAxLjE2MyA1LjgxNi0zLjExMS02LjMxNmgtMC41NTRjLTEuOTk5IDAtMS45OTkgMS4zNDQtMS45OTkgM3Y1aDEydi01YzAtMS42NTYgMC0zLTEuOTk5LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUXVvdGVzTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUxNiA3YzEuOTMzIDAgMy41IDEuNTY3IDMuNSAzLjVzLTEuNTY3IDMuNS0zLjUgMy41LTMuNS0xLjU2Ny0zLjUtMy41bC0wLjAxNi0wLjVjMC0zLjg2NiAzLjEzNC03IDctN3YyYy0xLjMzNiAwLTIuNTkxIDAuNTItMy41MzYgMS40NjQtMC4xODIgMC4xODItMC4zNDggMC4zNzUtMC40OTcgMC41NzggMC4xNzktMC4wMjggMC4zNjItMC4wNDMgMC41NDgtMC4wNDN6TTEyLjUxNiA3YzEuOTMzIDAgMy41IDEuNTY3IDMuNSAzLjVzLTEuNTY3IDMuNS0zLjUgMy41LTMuNS0xLjU2Ny0zLjUtMy41bC0wLjAxNi0wLjVjMC0zLjg2NiAzLjEzNC03IDctN3YyYy0xLjMzNiAwLTIuNTkxIDAuNTItMy41MzYgMS40NjQtMC4xODIgMC4xODItMC4zNDggMC4zNzUtMC40OTcgMC41NzggMC4xNzktMC4wMjggMC4zNjItMC4wNDMgMC41NDktMC4wNDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUXVvdGVzUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMGMtMS45MzMgMC0zLjUtMS41NjctMy41LTMuNXMxLjU2Ny0zLjUgMy41LTMuNSAzLjUgMS41NjcgMy41IDMuNWwwLjAxNiAwLjVjMCAzLjg2Ni0zLjEzNCA3LTcgN3YtMmMxLjMzNiAwIDIuNTkxLTAuNTIgMy41MzYtMS40NjQgMC4xODItMC4xODIgMC4zNDgtMC4zNzUgMC40OTctMC41NzgtMC4xNzkgMC4wMjgtMC4zNjIgMC4wNDMtMC41NDkgMC4wNDN6TTMuNSAxMGMtMS45MzMgMC0zLjUtMS41NjctMy41LTMuNXMxLjU2Ny0zLjUgMy41LTMuNSAzLjUgMS41NjcgMy41IDMuNWwwLjAxNiAwLjVjMCAzLjg2Ni0zLjEzNCA3LTcgN3YtMmMxLjMzNiAwIDIuNTkxLTAuNTIgMy41MzYtMS40NjQgMC4xODItMC4xODIgMC4zNDgtMC4zNzUgMC40OTctMC41NzgtMC4xNzkgMC4wMjgtMC4zNjIgMC4wNDMtMC41NDkgMC4wNDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSG91ckdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjM5IDhjMi4xNTItMS4zNjUgMy42MS0zLjk4OCAzLjYxLTcgMC0wLjMzOS0wLjAxOS0wLjY3Mi0wLjA1NC0xaC0xMy44OTFjLTAuMDM2IDAuMzI4LTAuMDU0IDAuNjYxLTAuMDU0IDEgMCAzLjAxMiAxLjQ1NyA1LjYzNSAzLjYwOSA3LTIuMTUyIDEuMzY1LTMuNjA5IDMuOTg4LTMuNjA5IDcgMCAwLjMzOSAwLjAxOSAwLjY3MiAwLjA1NCAxaDEzLjg5MWMwLjAzNi0wLjMyOCAwLjA1NC0wLjY2MSAwLjA1NC0xIDAtMy4wMTItMS40NTctNS42MzUtMy42MDktN3pNMi41IDE1YzAtMi45MjEgMS4yNTMtNS4zOTcgMy41LTYuMjE0di0xLjU3MmMtMi4yNDctMC44MTctMy41LTMuMjk0LTMuNS02LjIxNHYwaDExYzAgMi45MjEtMS4yNTMgNS4zOTctMy41IDYuMjE0djEuNTcyYzIuMjQ3IDAuODE3IDMuNSAzLjI5NCAzLjUgNi4yMTRoLTExek05LjY4MiAxMC40NjJjLTEuMTItMC42MzUtMS4xODEtMS40NTktMS4xODItMS45NTl2LTEuMDA0YzAtMC41IDAuMDU5LTEuMzI3IDEuMTg0LTEuOTYzIDAuNjAyLTAuMzQ5IDEuMTIyLTAuODggMS41MTYtMS41MzdoLTYuNGMwLjM5NSAwLjY1NyAwLjkxNiAxLjE4OCAxLjUxOCAxLjUzOCAxLjEyIDAuNjM1IDEuMTgxIDEuNDU5IDEuMTgyIDEuOTU5djEuMDA0YzAgMC41LTAuMDU5IDEuMzI3LTEuMTg0IDEuOTYzLTEuMTM1IDAuNjU5LTEuOTggMS45NjQtMi4yMzYgMy41MzdoNy44MzljLTAuMjU2LTEuNTc0LTEuMTAyLTIuODc5LTIuMjM4LTMuNTM4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNwaW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyYzAtMS4xMDUgMC44OTUtMiAyLTJzMiAwLjg5NSAyIDJjMCAxLjEwNS0wLjg5NSAyLTIgMnMtMi0wLjg5NS0yLTJ6TTEwLjI0MyAzLjc1N2MwLTEuMTA1IDAuODk1LTIgMi0yczIgMC44OTUgMiAyYzAgMS4xMDUtMC44OTUgMi0yIDJzLTItMC44OTUtMi0yek0xMyA4YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTExLjI0MyAxMi4yNDNjMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMXpNNyAxNGMwIDAgMCAwIDAgMCAwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxYzAgMCAwIDAgMCAwIDAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xek0yLjc1NyAxMi4yNDNjMCAwIDAgMCAwIDAgMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAgMCAwIDAgMCAwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMXpNMi4yNTcgMy43NTdjMCAwIDAgMCAwIDAgMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNWMwIDAgMCAwIDAgMCAwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNXpNMC44NzUgOGMwLTAuNjIxIDAuNTA0LTEuMTI1IDEuMTI1LTEuMTI1czEuMTI1IDAuNTA0IDEuMTI1IDEuMTI1YzAgMC42MjEtMC41MDQgMS4xMjUtMS4xMjUgMS4xMjVzLTEuMTI1LTAuNTA0LTEuMTI1LTEuMTI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNwaW5uZXIyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhjLTAuMDIwLTEuMDQ1LTAuMjQ3LTIuMDg2LTAuNjY1LTMuMDM4LTAuNDE3LTAuOTUzLTEuMDIzLTEuODE3LTEuNzY2LTIuNTNzLTEuNjI0LTEuMjc4LTIuNTc4LTEuNjUxYy0wLjk1My0wLjM3NC0xLjk3OC0wLjU1Mi0yLjk5MS0wLjUzMS0xLjAxMyAwLjAyMC0yLjAyMSAwLjI0LTIuOTQzIDAuNjQ2LTAuOTIzIDAuNDA1LTEuNzU4IDAuOTkyLTIuNDQ5IDEuNzEycy0xLjIzNyAxLjU3NC0xLjU5NyAyLjQ5N2MtMC4zNjEgMC45MjMtMC41MzMgMS45MTQtMC41MTIgMi44OTUgMC4wMjAgMC45ODEgMC4yMzQgMS45NTUgMC42MjcgMi44NDcgMC4zOTIgMC44OTIgMC45NjEgMS43IDEuNjU4IDIuMzY4czEuNTIzIDEuMTk1IDIuNDE2IDEuNTQzYzAuODkyIDAuMzQ4IDEuODUxIDAuNTE0IDIuNzk5IDAuNDkzIDAuOTQ5LTAuMDIwIDEuODktMC4yMjcgMi43NTEtMC42MDggMC44NjItMC4zNzkgMS42NDItMC45MjkgMi4yODctMS42MDRzMS4xNTQtMS40NzIgMS40ODgtMi4zMzVjMC4yMDQtMC41MjMgMC4zNDItMS4wNjkgMC40MTUtMS42MjIgMC4wMTkgMC4wMDEgMC4wMzkgMC4wMDIgMC4wNTkgMC4wMDIgMC41NTIgMCAxLTAuNDQ4IDEtMSAwLTAuMDI4LTAuMDAxLTAuMDU2LTAuMDA0LTAuMDgzaDAuMDA0ek0xNC40MTEgMTAuNjU1Yy0wLjM2NyAwLjgzMS0wLjg5OCAxLjU4NC0xLjU1IDIuMjA2cy0xLjQyMiAxLjExMi0yLjI1NCAxLjQzNGMtMC44MzIgMC4zMjMtMS43MjMgMC40NzYtMi42MDggMC40NTQtMC44ODQtMC4wMjAtMS43NTktMC4yMTUtMi41Ni0wLjU3LTAuODAxLTAuMzU0LTEuNTI2LTAuODY3LTIuMTI1LTEuNDk1cy0xLjA3MS0xLjM3MS0xLjM4LTIuMTczYy0wLjMxLTAuODAxLTAuNDU3LTEuNjYtMC40MzUtMi41MTJzMC4yMDgtMS42OTQgMC41NTEtMi40NjRjMC4zNDItMC43NyAwLjgzNi0xLjQ2OCAxLjQ0MS0yLjA0NHMxLjMyMS0xLjAyOSAyLjA5Mi0xLjMyNmMwLjc3MS0wLjI5OCAxLjU5Ni0wLjQzOCAyLjQxNi0wLjQxNnMxLjYyOSAwLjIwMiAyLjM2OCAwLjUzMmMwLjc0IDAuMzI5IDEuNDEgMC44MDUgMS45NjMgMS4zODdzMC45ODggMS4yNyAxLjI3MiAyLjAxMWMwLjI4NSAwLjc0IDAuNDE4IDEuNTMyIDAuMzk3IDIuMzJoMC4wMDRjLTAuMDAyIDAuMDI3LTAuMDA0IDAuMDU1LTAuMDA0IDAuMDgzIDAgMC41MTYgMC4zOSAwLjk0IDAuODkyIDAuOTk0LTAuMDk3IDAuNTQ0LTAuMjU4IDEuMDc1LTAuNDgxIDEuNTc4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNwaW5uZXIzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNC43MzZjLTAuNTE1IDAtMC45MzMtMC40MTgtMC45MzMtMC45MzN2LTIuNzk4YzAtMC41MTUgMC40MTgtMC45MzMgMC45MzMtMC45MzNzMC45MzMgMC40MTggMC45MzMgMC45MzN2Mi43OThjMCAwLjUxNS0wLjQxOCAwLjkzMy0wLjkzMyAwLjkzM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1LjU3N2MtMC4zMjIgMC0wLjU4My0wLjI2MS0wLjU4My0wLjU4M3YtMi43OThjMC0wLjMyMiAwLjI2MS0wLjU4MyAwLjU4My0wLjU4M3MwLjU4MyAwLjI2MSAwLjU4MyAwLjU4M3YyLjc5OGMwIDAuMzIyLTAuMjYxIDAuNTgzLTAuNTgzIDAuNTgzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOTAyIDUuMjRjLTAuMzAyIDAtMC41OTYtMC4xNTctMC43NTgtMC40MzdsLTEuMzk5LTIuNDIzYy0wLjI0MS0wLjQxOC0wLjA5OC0wLjk1MyAwLjMyLTEuMTk0czAuOTUzLTAuMDk4IDEuMTk0IDAuMzJsMS4zOTkgMi40MjNjMC4yNDEgMC40MTggMC4wOTggMC45NTMtMC4zMiAxLjE5NC0wLjEzOCAwLjA3OS0wLjI4OCAwLjExNy0wLjQzNiAwLjExN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40OTggMTQuNTgyYy0wLjE4MSAwLTAuMzU4LTAuMDk0LTAuNDU1LTAuMjYybC0xLjM5OS0yLjQyM2MtMC4xNDUtMC4yNTEtMC4wNTktMC41NzIgMC4xOTItMC43MTdzMC41NzItMC4wNTkgMC43MTcgMC4xOTJsMS4zOTkgMi40MjNjMC4xNDUgMC4yNTEgMC4wNTkgMC41NzItMC4xOTIgMC43MTctMC4wODMgMC4wNDgtMC4xNzMgMC4wNzAtMC4yNjIgMC4wNzB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4zNjUgNi43MThjLTAuMTM4IDAtMC4yNzktMC4wMzUtMC40MDctMC4xMDlsLTIuNDIzLTEuMzk5Yy0wLjM5LTAuMjI1LTAuNTI0LTAuNzI0LTAuMjk5LTEuMTE1czAuNzI0LTAuNTI0IDEuMTE1LTAuMjk5bDIuNDIzIDEuMzk5YzAuMzkgMC4yMjUgMC41MjQgMC43MjQgMC4yOTkgMS4xMTUtMC4xNTEgMC4yNjItMC40MjUgMC40MDgtMC43MDcgMC40MDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMDU3IDExLjk2NGMtMC4wNzkgMC0wLjE1OS0wLjAyMC0wLjIzMy0wLjA2M2wtMi40MjMtMS4zOTljLTAuMjIzLTAuMTI5LTAuMjk5LTAuNDE0LTAuMTcxLTAuNjM3czAuNDE0LTAuMjk5IDAuNjM3LTAuMTcxbDIuNDIzIDEuMzk5YzAuMjIzIDAuMTI5IDAuMjk5IDAuNDE0IDAuMTcxIDAuNjM3LTAuMDg2IDAuMTUtMC4yNDMgMC4yMzMtMC40MDQgMC4yMzN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy44MDMgOC43NThoLTIuNzk4Yy0wLjQxOCAwLTAuNzU4LTAuMzM5LTAuNzU4LTAuNzU4czAuMzM5LTAuNzU4IDAuNzU4LTAuNzU4aDIuNzk4YzAuNDE5IDAgMC43NTggMC4zMzkgMC43NTggMC43NThzLTAuMzM5IDAuNzU4LTAuNzU4IDAuNzU4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljk5NSA4LjQ2NmMtMCAwIDAgMCAwIDBoLTIuNzk4Yy0wLjI1OC0wLTAuNDY2LTAuMjA5LTAuNDY2LTAuNDY2czAuMjA5LTAuNDY2IDAuNDY2LTAuNDY2YzAgMCAwIDAgMCAwaDIuNzk4YzAuMjU4IDAgMC40NjYgMC4yMDkgMC40NjYgMC40NjZzLTAuMjA5IDAuNDY2LTAuNDY2IDAuNDY2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuOTQzIDEyLjE5N2MtMC4yNDIgMC0wLjQ3Ny0wLjEyNS0wLjYwNi0wLjM1LTAuMTkzLTAuMzM1LTAuMDc5LTAuNzYyIDAuMjU2LTAuOTU1bDIuNDIzLTEuMzk5YzAuMzM1LTAuMTkzIDAuNzYyLTAuMDc5IDAuOTU1IDAuMjU2czAuMDc5IDAuNzYyLTAuMjU2IDAuOTU1bC0yLjQyMyAxLjM5OWMtMC4xMSAwLjA2NC0wLjIzIDAuMDk0LTAuMzQ5IDAuMDk0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjYzNSA2LjM2OGMtMC4xNjEgMC0wLjMxOC0wLjA4NC0wLjQwNC0wLjIzMy0wLjEyOS0wLjIyMy0wLjA1Mi0wLjUwOCAwLjE3MS0wLjYzN2wyLjQyMy0xLjM5OWMwLjIyMy0wLjEyOSAwLjUwOC0wLjA1MiAwLjYzNyAwLjE3MXMwLjA1MiAwLjUwOC0wLjE3MSAwLjYzN2wtMi40MjMgMS4zOTljLTAuMDczIDAuMDQyLTAuMTU0IDAuMDYzLTAuMjMzIDAuMDYzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTAyIDE0LjY5OWMtMC4xMDkgMC0wLjIxOS0wLjAyOC0wLjMyLTAuMDg2LTAuMzA3LTAuMTc3LTAuNDEyLTAuNTY5LTAuMjM1LTAuODc2bDEuMzk5LTIuNDIzYzAuMTc3LTAuMzA3IDAuNTY5LTAuNDEyIDAuODc2LTAuMjM1czAuNDEyIDAuNTY5IDAuMjM1IDAuODc2bC0xLjM5OSAyLjQyM2MtMC4xMTkgMC4yMDYtMC4zMzQgMC4zMjEtMC41NTYgMC4zMjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDk4IDQuODMyYy0wLjA3OSAwLTAuMTU5LTAuMDIwLTAuMjMzLTAuMDYzLTAuMjIzLTAuMTI5LTAuMjk5LTAuNDE0LTAuMTcxLTAuNjM3bDEuMzk5LTIuNDIzYzAuMTI5LTAuMjIzIDAuNDE0LTAuMjk5IDAuNjM3LTAuMTcxczAuMjk5IDAuNDE0IDAuMTcxIDAuNjM3bC0xLjM5OSAyLjQyM2MtMC4wODYgMC4xNS0wLjI0MyAwLjIzMy0wLjQwNCAwLjIzM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcGlubmVyNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDhjMC0wLjE5IDAuMDExLTAuMzc4IDAuMDMyLTAuNTYzbC0yLjg5LTAuOTM5Yy0wLjA5MiAwLjQ4Ny0wLjE0MSAwLjk4OS0wLjE0MSAxLjUwMiAwIDIuMyAwLjk3MSA0LjM3NCAyLjUyNiA1LjgzM2wxLjc4Ni0yLjQ1OGMtMC44MTQtMC44ODktMS4zMTItMi4wNzQtMS4zMTItMy4zNzV6TTEzIDhjMCAxLjMwMS0wLjQ5NyAyLjQ4Ni0xLjMxMiAzLjM3NWwxLjc4NiAyLjQ1OGMxLjU1NS0xLjQ1OSAyLjUyNi0zLjUzMyAyLjUyNi01LjgzMyAwLTAuNTEzLTAuMDQ5LTEuMDE1LTAuMTQxLTEuNTAybC0yLjg5IDAuOTM5YzAuMDIxIDAuMTg1IDAuMDMyIDAuMzczIDAuMDMyIDAuNTYzek05IDMuMWMxLjQzNiAwLjI5MiAyLjY0OSAxLjE5OSAzLjM1MSAyLjQzNWwyLjg5LTAuOTM5Yy0xLjE0NC0yLjQyOC0zLjQ3My00LjE4OC02LjI0MS00LjUzNHYzLjAzOHpNMy42NDkgNS41MzVjMC43MDItMS4yMzYgMS45MTQtMi4xNDMgMy4zNTEtMi40MzV2LTMuMDM4Yy0yLjc2OSAwLjM0NS01LjA5NyAyLjEwNS02LjI0MSA0LjUzNGwyLjg5IDAuOTM5ek0xMC4wNzEgMTIuNTUyYy0wLjYzMSAwLjI4OC0xLjMzMiAwLjQ0OC0yLjA3MSAwLjQ0OHMtMS40NC0wLjE2LTIuMDcxLTAuNDQ4bC0xLjc4NiAyLjQ1OGMxLjE0NCAwLjYzMSAyLjQ1OCAwLjk5IDMuODU3IDAuOTlzMi43MTMtMC4zNTkgMy44NTctMC45OWwtMS43ODYtMi40NTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3Bpbm5lcjUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDRjMi4yMDkgMCA0IDEuNzkxIDQgNHMtMS43OTEgNC00IDQtNC0xLjc5MS00LTQgMS43OTEtNCA0LTR6TTEyLjc3MyAxMi43NzNjLTEuMjc1IDEuMjc1LTIuOTcgMS45NzctNC43NzMgMS45NzdzLTMuNDk4LTAuNzAyLTQuNzczLTEuOTc3LTEuOTc3LTIuOTctMS45NzctNC43NzNjMC0xLjgwMyAwLjcwMi0zLjQ5OCAxLjk3Ny00Ljc3M2wxLjA2MSAxLjA2MWMwIDAgMCAwIDAgMC0yLjA0NyAyLjA0Ny0yLjA0NyA1LjM3OCAwIDcuNDI1IDAuOTkyIDAuOTkyIDIuMzEgMS41MzggMy43MTIgMS41MzhzMi43MjEtMC41NDYgMy43MTItMS41MzhjMi4wNDctMi4wNDcgMi4wNDctNS4zNzggMC03LjQyNWwxLjA2MS0xLjA2MWMxLjI3NSAxLjI3NSAxLjk3NyAyLjk3IDEuOTc3IDQuNzczcy0wLjcwMiAzLjQ5OC0xLjk3NyA0Ljc3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcGlubmVyNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDJjMC0xLjEwNSAwLjg5NS0yIDItMnMyIDAuODk1IDIgMmMwIDEuMTA1LTAuODk1IDItMiAycy0yLTAuODk1LTItMnpNMTIuMzU5IDhjMCAwIDAgMCAwIDAgMC0wLjkwNiAwLjczNS0xLjY0MSAxLjY0MS0xLjY0MXMxLjY0MSAwLjczNSAxLjY0MSAxLjY0MWMwIDAgMCAwIDAgMCAwIDAuOTA2LTAuNzM1IDEuNjQxLTEuNjQxIDEuNjQxcy0xLjY0MS0wLjczNS0xLjY0MS0xLjY0MXpNMTAuNzU3IDEyLjI0M2MwLTAuODIxIDAuNjY1LTEuNDg2IDEuNDg2LTEuNDg2czEuNDg2IDAuNjY1IDEuNDg2IDEuNDg2YzAgMC44MjEtMC42NjUgMS40ODYtMS40ODYgMS40ODZzLTEuNDg2LTAuNjY1LTEuNDg2LTEuNDg2ek02LjY1NCAxNGMwLTAuNzQzIDAuNjAzLTEuMzQ2IDEuMzQ2LTEuMzQ2czEuMzQ2IDAuNjAzIDEuMzQ2IDEuMzQ2YzAgMC43NDMtMC42MDMgMS4zNDYtMS4zNDYgMS4zNDZzLTEuMzQ2LTAuNjAzLTEuMzQ2LTEuMzQ2ek0yLjUzOCAxMi4yNDNjMC0wLjY3MyAwLjU0Ni0xLjIxOSAxLjIxOS0xLjIxOXMxLjIxOSAwLjU0NiAxLjIxOSAxLjIxOWMwIDAuNjczLTAuNTQ2IDEuMjE5LTEuMjE5IDEuMjE5cy0xLjIxOS0wLjU0Ni0xLjIxOS0xLjIxOXpNMC44OTYgOGMwLTAuNjEgMC40OTQtMS4xMDQgMS4xMDQtMS4xMDRzMS4xMDQgMC40OTQgMS4xMDQgMS4xMDRjMCAwLjYxLTAuNDk0IDEuMTA0LTEuMTA0IDEuMTA0cy0xLjEwNC0wLjQ5NC0xLjEwNC0xLjEwNHpNMi43NTcgMy43NTdjMCAwIDAgMCAwIDAgMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAgMCAwIDAgMCAwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMXpNMTQuMDU0IDMuNzU3YzAgMS0wLjgxMSAxLjgxMS0xLjgxMiAxLjgxMXMtMS44MTItMC44MTEtMS44MTItMS44MTFjMC0xLjAwMSAwLjgxMS0xLjgxMSAxLjgxMi0xLjgxMXMxLjgxMiAwLjgxMSAxLjgxMiAxLjgxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcGlubmVyNyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMTQuNWMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41ek0wIDhjMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNXpNMTMgOGMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41ek0xLjkwNCAzLjQwNGMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41ek0xMS4wOTYgMTIuNTk2YzAtMC44MjggMC42NzItMS41IDEuNS0xLjVzMS41IDAuNjcyIDEuNSAxLjVjMCAwLjgyOC0wLjY3MiAxLjUtMS41IDEuNXMtMS41LTAuNjcyLTEuNS0xLjV6TTEuOTA0IDEyLjU5NmMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41ek0xMS4wOTYgMy40MDRjMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcGlubmVyOCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2Yy0yLjEzNyAwLTQuMTQ2LTAuODMyLTUuNjU3LTIuMzQzcy0yLjM0My0zLjUyLTIuMzQzLTUuNjU3YzAtMS41MTMgMC40MjUtMi45ODYgMS4yMjgtNC4yNjEgMC43ODEtMS4yMzkgMS44ODUtMi4yNCAzLjE5My0yLjg5NWwwLjY3MiAxLjM0MWMtMS4wNjMgMC41MzMtMS45NjEgMS4zNDctMi41OTYgMi4zNTQtMC42NTIgMS4wMzQtMC45OTcgMi4yMzEtMC45OTcgMy40NjEgMCAzLjU4NCAyLjkxNiA2LjUgNi41IDYuNXM2LjUtMi45MTYgNi41LTYuNWMwLTEuMjMtMC4zNDUtMi40MjYtMC45OTctMy40NjEtMC42MzUtMS4wMDgtMS41MzMtMS44MjItMi41OTYtMi4zNTRsMC42NzItMS4zNDFjMS4zMDggMC42NTUgMi40MTIgMS42NTYgMy4xOTMgMi44OTUgMC44MDMgMS4yNzQgMS4yMjggMi43NDggMS4yMjggNC4yNjEgMCAyLjEzNy0wLjgzMiA0LjE0Ni0yLjM0MyA1LjY1N3MtMy41MiAyLjM0My01LjY1NyAyLjM0M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcGlubmVyOSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuMzU1IDAtNy44OTggMy40ODEtNy45OTggNy44MTIgMC4wOTItMy43NzkgMi45NjYtNi44MTIgNi40OTgtNi44MTIgMy41OSAwIDYuNSAzLjEzNCA2LjUgNyAwIDAuODI4IDAuNjcyIDEuNSAxLjUgMS41czEuNS0wLjY3MiAxLjUtMS41YzAtNC40MTgtMy41ODItOC04LTh6TTggMTZjNC4zNTUgMCA3Ljg5OC0zLjQ4MSA3Ljk5OC03LjgxMi0wLjA5MiAzLjc3OS0yLjk2NiA2LjgxMi02LjQ5OCA2LjgxMi0zLjU5IDAtNi41LTMuMTM0LTYuNS03IDAtMC44MjgtMC42NzItMS41LTEuNS0xLjVzLTEuNSAwLjY3Mi0xLjUgMS41YzAgNC40MTggMy41ODIgOCA4IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3Bpbm5lcjEwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAuMDAxIDguMDI1bC0wIDBjMCAwIDAgMC4wMDEgMCAwLjAwMyAwLjAwMiAwLjA2MSAwLjAwOSAwLjEyIDAuMDIxIDAuMTc3IDAuMDAzIDAuMDI3IDAuMDA3IDAuMDU3IDAuMDExIDAuMDkwIDAuMDAzIDAuMDI5IDAuMDA3IDAuMDYxIDAuMDExIDAuMDk1IDAuMDA2IDAuMDQwIDAuMDEyIDAuMDgzIDAuMDE5IDAuMTI4IDAuMDEzIDAuMDkwIDAuMDI4IDAuMTg5IDAuMDQ1IDAuMjk2IDAuMDIxIDAuMTAxIDAuMDQ0IDAuMjEgMC4wNjggMC4zMjYgMC4wMTEgMC4wNTggMC4wMjggMC4xMTcgMC4wNDQgMC4xNzhzMC4wMzIgMC4xMjMgMC4wNDkgMC4xODhjMC4wMDkgMC4wMzIgMC4wMTYgMC4wNjUgMC4wMjcgMC4wOTdzMC4wMjEgMC4wNjUgMC4wMzEgMC4wOTggMC4wNDMgMC4xMzQgMC4wNjUgMC4yMDNjMC4wMDYgMC4wMTcgMC4wMTEgMC4wMzUgMC4wMTcgMC4wNTJzMC4wMTMgMC4wMzQgMC4wMTkgMC4wNTIgMC4wMjYgMC4wNzAgMC4wMzkgMC4xMDVjMC4wMjcgMC4wNzAgMC4wNTMgMC4xNDIgMC4wODEgMC4yMTUgMC4wMzEgMC4wNzEgMC4wNjIgMC4xNDQgMC4wOTQgMC4yMTggMC4wMTYgMC4wMzcgMC4wMzIgMC4wNzQgMC4wNDggMC4xMTFzMC4wMzUgMC4wNzMgMC4wNTMgMC4xMTEgMC4wNzMgMC4xNDggMC4xMSAwLjIyNGMwLjAzOSAwLjA3NSAwLjA4MSAwLjE0OSAwLjEyMyAwLjIyNCAwLjAyMSAwLjAzNyAwLjA0MiAwLjA3NSAwLjA2MyAwLjExM3MwLjA0NSAwLjA3NCAwLjA2OCAwLjExMiAwLjA5MyAwLjE0OSAwLjE0IDAuMjI0YzAuMTk4IDAuMjk1IDAuNDE3IDAuNTg3IDAuNjYgMC44NjQgMC4yNDUgMC4yNzUgMC41MTEgMC41MzUgMC43OTIgMC43NzUgMC4yODQgMC4yMzYgMC41ODIgMC40NTIgMC44ODYgMC42NDIgMC4zMDYgMC4xODggMC42MTkgMC4zNDkgMC45MjggMC40ODcgMC4wNzggMC4wMzIgMC4xNTYgMC4wNjMgMC4yMzIgMC4wOTUgMC4wMzggMC4wMTUgMC4wNzYgMC4wMzIgMC4xMTUgMC4wNDZzMC4wNzcgMC4wMjcgMC4xMTUgMC4wNDEgMC4xNTEgMC4wNTQgMC4yMjYgMC4wNzhjMC4wNzUgMC4wMjIgMC4xNSAwLjA0NCAwLjIyNCAwLjA2NiAwLjAzNyAwLjAxMSAwLjA3MyAwLjAyMiAwLjEwOSAwLjAzMXMwLjA3MyAwLjAxOCAwLjEwOSAwLjAyNyAwLjE0MyAwLjAzNSAwLjIxMyAwLjA1MmMwLjA3MCAwLjAxNCAwLjEzOSAwLjAyNyAwLjIwNyAwLjA0MCAwLjAzNCAwLjAwNiAwLjA2NyAwLjAxMyAwLjEwMSAwLjAxOSAwLjAxNyAwLjAwMyAwLjAzMyAwLjAwNiAwLjA0OSAwLjAwOXMwLjAzMyAwLjAwNSAwLjA0OSAwLjAwN2MwLjA2NiAwLjAwOSAwLjEzIDAuMDE4IDAuMTkyIDAuMDI3IDAuMDMxIDAuMDA0IDAuMDYyIDAuMDA5IDAuMDkzIDAuMDEzczAuMDYxIDAuMDA2IDAuMDkxIDAuMDA5IDAuMTE4IDAuMDEwIDAuMTc0IDAuMDE1YzAuMDU2IDAuMDA1IDAuMTExIDAuMDExIDAuMTY0IDAuMDEyIDAuMDA0IDAgMC4wMDcgMCAwLjAxMSAwIDAuMDEwIDAuNTQ0IDAuNDUzIDAuOTgyIDEgMC45ODIgMC4wMDggMCAwLjAxNy0wIDAuMDI1LTAuMDAxdjBjMCAwIDAuMDAxLTAgMC4wMDQtMCAwLjA2MS0wLjAwMiAwLjEyLTAuMDA5IDAuMTc3LTAuMDIxIDAuMDI3LTAuMDAzIDAuMDU3LTAuMDA3IDAuMDkwLTAuMDExIDAuMDI5LTAuMDAzIDAuMDYxLTAuMDA3IDAuMDk1LTAuMDExIDAuMDQwLTAuMDA2IDAuMDgzLTAuMDEyIDAuMTI4LTAuMDE5IDAuMDkwLTAuMDEzIDAuMTg5LTAuMDI4IDAuMjk2LTAuMDQ1IDAuMTAxLTAuMDIxIDAuMjEtMC4wNDQgMC4zMjYtMC4wNjggMC4wNTgtMC4wMTEgMC4xMTctMC4wMjggMC4xNzgtMC4wNDRzMC4xMjMtMC4wMzMgMC4xODgtMC4wNDljMC4wMzItMC4wMDkgMC4wNjUtMC4wMTYgMC4wOTctMC4wMjdzMC4wNjUtMC4wMjEgMC4wOTgtMC4wMzEgMC4xMzQtMC4wNDMgMC4yMDMtMC4wNjVjMC4wMTctMC4wMDYgMC4wMzUtMC4wMTEgMC4wNTItMC4wMTdzMC4wMzQtMC4wMTMgMC4wNTItMC4wMTkgMC4wNzAtMC4wMjYgMC4xMDUtMC4wMzljMC4wNzAtMC4wMjcgMC4xNDItMC4wNTMgMC4yMTUtMC4wODEgMC4wNzEtMC4wMzEgMC4xNDQtMC4wNjIgMC4yMTgtMC4wOTQgMC4wMzctMC4wMTYgMC4wNzQtMC4wMzIgMC4xMTEtMC4wNDhzMC4wNzMtMC4wMzUgMC4xMTEtMC4wNTMgMC4xNDgtMC4wNzMgMC4yMjQtMC4xMWMwLjA3NS0wLjAzOSAwLjE0OS0wLjA4MSAwLjIyNC0wLjEyMyAwLjAzNy0wLjAyMSAwLjA3NS0wLjA0MiAwLjExMy0wLjA2M3MwLjA3NC0wLjA0NSAwLjExMi0wLjA2OCAwLjE0OS0wLjA5MyAwLjIyNC0wLjE0YzAuMjk1LTAuMTk3IDAuNTg3LTAuNDE3IDAuODY0LTAuNjYgMC4yNzUtMC4yNDUgMC41MzUtMC41MTEgMC43NzUtMC43OTIgMC4yMzYtMC4yODQgMC40NTItMC41ODIgMC42NDItMC44ODYgMC4xODgtMC4zMDYgMC4zNDktMC42MTkgMC40ODctMC45MjggMC4wMzItMC4wNzggMC4wNjMtMC4xNTYgMC4wOTUtMC4yMzIgMC4wMTUtMC4wMzggMC4wMzItMC4wNzYgMC4wNDYtMC4xMTVzMC4wMjctMC4wNzcgMC4wNDAtMC4xMTUgMC4wNTQtMC4xNTEgMC4wNzgtMC4yMjZjMC4wMjItMC4wNzUgMC4wNDQtMC4xNSAwLjA2Ni0wLjIyNCAwLjAxMS0wLjAzNyAwLjAyMi0wLjA3MyAwLjAzMS0wLjEwOXMwLjAxOC0wLjA3MyAwLjAyNy0wLjEwOSAwLjAzNS0wLjE0MyAwLjA1Mi0wLjIxM2MwLjAxNC0wLjA3MCAwLjAyNy0wLjEzOSAwLjA0MC0wLjIwNyAwLjAwNi0wLjAzNCAwLjAxMy0wLjA2NyAwLjAxOS0wLjEwMSAwLjAwMy0wLjAxNyAwLjAwNi0wLjAzMyAwLjAwOS0wLjA0OXMwLjAwNS0wLjAzMyAwLjAwNy0wLjA1MGMwLjAwOS0wLjA2NSAwLjAxOC0wLjEzIDAuMDI3LTAuMTkyIDAuMDA0LTAuMDMxIDAuMDA5LTAuMDYyIDAuMDEzLTAuMDkzczAuMDA2LTAuMDYxIDAuMDA5LTAuMDkxIDAuMDEwLTAuMTE4IDAuMDE1LTAuMTc0YzAuMDA1LTAuMDU2IDAuMDExLTAuMTExIDAuMDEyLTAuMTY1IDAtMC4wMDggMC4wMDEtMC4wMTYgMC4wMDEtMC4wMjUgMC41NS0wLjAwMiAwLjk5Ni0wLjQ0OSAwLjk5Ni0xIDAtMC4wMDgtMC0wLjAxNy0wLjAwMS0wLjAyNWgwYzAgMC0wLTAuMDAxLTAtMC4wMDMtMC4wMDItMC4wNjEtMC4wMDktMC4xMi0wLjAyMS0wLjE3Ny0wLjAwMy0wLjAyNy0wLjAwNy0wLjA1Ny0wLjAxMS0wLjA5MC0wLjAwMy0wLjAyOS0wLjAwNy0wLjA2MS0wLjAxMS0wLjA5NS0wLjAwNi0wLjA0MC0wLjAxMi0wLjA4My0wLjAxOS0wLjEyOC0wLjAxMy0wLjA5MC0wLjAyOC0wLjE4OS0wLjA0NS0wLjI5Ni0wLjAyMS0wLjEwMS0wLjA0NC0wLjIxLTAuMDY4LTAuMzI2LTAuMDExLTAuMDU4LTAuMDI4LTAuMTE3LTAuMDQ0LTAuMTc4cy0wLjAzMi0wLjEyMy0wLjA0OS0wLjE4OGMtMC4wMDktMC4wMzItMC4wMTYtMC4wNjUtMC4wMjctMC4wOTdzLTAuMDIxLTAuMDY1LTAuMDMxLTAuMDk4LTAuMDQzLTAuMTM0LTAuMDY1LTAuMjAzYy0wLjAwNS0wLjAxNy0wLjAxMS0wLjAzNS0wLjAxNy0wLjA1MnMtMC4wMTMtMC4wMzQtMC4wMTktMC4wNTItMC4wMjYtMC4wNzAtMC4wMzktMC4xMDVjLTAuMDI3LTAuMDcwLTAuMDUzLTAuMTQyLTAuMDgxLTAuMjE1LTAuMDMxLTAuMDcxLTAuMDYyLTAuMTQ0LTAuMDk0LTAuMjE4LTAuMDE2LTAuMDM3LTAuMDMyLTAuMDc0LTAuMDQ4LTAuMTExcy0wLjAzNS0wLjA3My0wLjA1My0wLjExMS0wLjA3My0wLjE0OC0wLjExLTAuMjI0Yy0wLjAzOS0wLjA3NS0wLjA4MS0wLjE0OS0wLjEyMy0wLjIyNC0wLjAyMS0wLjAzNy0wLjA0Mi0wLjA3NS0wLjA2My0wLjExM3MtMC4wNDUtMC4wNzQtMC4wNjgtMC4xMTItMC4wOTMtMC4xNDktMC4xNC0wLjIyNGMtMC4xOTctMC4yOTUtMC40MTctMC41ODctMC42Ni0wLjg2NC0wLjI0NS0wLjI3NS0wLjUxMS0wLjUzNS0wLjc5Mi0wLjc3NS0wLjI4NC0wLjIzNi0wLjU4Mi0wLjQ1Mi0wLjg4Ni0wLjY0Mi0wLjMwNi0wLjE4OC0wLjYxOS0wLjM0OS0wLjkyOC0wLjQ4Ny0wLjA3OC0wLjAzMi0wLjE1Ni0wLjA2My0wLjIzMi0wLjA5NS0wLjAzOC0wLjAxNS0wLjA3Ni0wLjAzMi0wLjExNS0wLjA0NnMtMC4wNzctMC4wMjctMC4xMTUtMC4wNDAtMC4xNTEtMC4wNTQtMC4yMjYtMC4wNzhjLTAuMDc1LTAuMDIyLTAuMTUtMC4wNDQtMC4yMjQtMC4wNjYtMC4wMzctMC4wMTAtMC4wNzMtMC4wMjItMC4xMDktMC4wMzFzLTAuMDczLTAuMDE4LTAuMTA5LTAuMDI3LTAuMTQzLTAuMDM1LTAuMjEzLTAuMDUyYy0wLjA3MC0wLjAxNC0wLjEzOS0wLjAyNy0wLjIwNy0wLjA0MC0wLjAzNC0wLjAwNi0wLjA2Ny0wLjAxMy0wLjEwMS0wLjAxOS0wLjAxNy0wLjAwMy0wLjAzMy0wLjAwNi0wLjA0OS0wLjAwOXMtMC4wMzMtMC4wMDUtMC4wNDktMC4wMDdjLTAuMDY2LTAuMDA5LTAuMTMtMC4wMTgtMC4xOTItMC4wMjctMC4wMzEtMC4wMDQtMC4wNjItMC4wMDktMC4wOTMtMC4wMTNzLTAuMDYxLTAuMDA2LTAuMDkxLTAuMDA5LTAuMTE4LTAuMDEwLTAuMTc0LTAuMDE1Yy0wLjA1Ni0wLjAwNS0wLjExMS0wLjAxMS0wLjE2NC0wLjAxMi0wLjAxMy0wLTAuMDI2LTAuMDAxLTAuMDM5LTAuMDAxLTAuMDEwLTAuNTQzLTAuNDU0LTAuOTgxLTAuOTk5LTAuOTgxLTAuMDA4IDAtMC4wMTcgMC0wLjAyNSAwLjAwMWwtMC0wYzAgMC0wLjAwMSAwLTAuMDAzIDAtMC4wNjEgMC4wMDItMC4xMiAwLjAwOS0wLjE3NyAwLjAyMS0wLjAyNyAwLjAwMy0wLjA1NyAwLjAwNy0wLjA5MCAwLjAxMS0wLjAyOSAwLjAwMy0wLjA2MSAwLjAwNy0wLjA5NSAwLjAxMS0wLjA0MCAwLjAwNi0wLjA4MyAwLjAxMi0wLjEyOCAwLjAxOS0wLjA5MCAwLjAxMy0wLjE4OSAwLjAyOC0wLjI5NiAwLjA0NS0wLjEwMSAwLjAyMS0wLjIxIDAuMDQ0LTAuMzI2IDAuMDY4LTAuMDU4IDAuMDExLTAuMTE3IDAuMDI4LTAuMTc4IDAuMDQ0cy0wLjEyMyAwLjAzMy0wLjE4OCAwLjA0OWMtMC4wMzIgMC4wMDktMC4wNjUgMC4wMTYtMC4wOTcgMC4wMjdzLTAuMDY1IDAuMDIxLTAuMDk4IDAuMDMxLTAuMTM0IDAuMDQzLTAuMjAzIDAuMDY1Yy0wLjAxNyAwLjAwNi0wLjAzNSAwLjAxMS0wLjA1MiAwLjAxN3MtMC4wMzQgMC4wMTMtMC4wNTIgMC4wMTktMC4wNzAgMC4wMjYtMC4xMDUgMC4wMzljLTAuMDcwIDAuMDI3LTAuMTQyIDAuMDUzLTAuMjE1IDAuMDgxLTAuMDcxIDAuMDMxLTAuMTQ0IDAuMDYyLTAuMjE4IDAuMDk0LTAuMDM3IDAuMDE2LTAuMDc0IDAuMDMyLTAuMTExIDAuMDQ4cy0wLjA3MyAwLjAzNS0wLjExMSAwLjA1My0wLjE0OCAwLjA3My0wLjIyNCAwLjExYy0wLjA3NSAwLjAzOS0wLjE0OSAwLjA4MS0wLjIyNCAwLjEyMy0wLjAzNyAwLjAyMS0wLjA3NSAwLjA0Mi0wLjExMyAwLjA2M3MtMC4wNzQgMC4wNDUtMC4xMTIgMC4wNjgtMC4xNDkgMC4wOTMtMC4yMjQgMC4xNGMtMC4yOTUgMC4xOTgtMC41ODcgMC40MTctMC44NjQgMC42Ni0wLjI3NSAwLjI0NS0wLjUzNSAwLjUxMS0wLjc3NSAwLjc5Mi0wLjIzNiAwLjI4NC0wLjQ1MiAwLjU4Mi0wLjY0MiAwLjg4Ni0wLjE4OCAwLjMwNi0wLjM0OSAwLjYxOS0wLjQ4NyAwLjkyOC0wLjAzMiAwLjA3OC0wLjA2MyAwLjE1Ni0wLjA5NSAwLjIzMi0wLjAxNSAwLjAzOC0wLjAzMiAwLjA3Ni0wLjA0NiAwLjExNXMtMC4wMjcgMC4wNzctMC4wNDAgMC4xMTUtMC4wNTQgMC4xNTEtMC4wNzggMC4yMjZjLTAuMDIyIDAuMDc1LTAuMDQ0IDAuMTUtMC4wNjYgMC4yMjQtMC4wMTEgMC4wMzctMC4wMjIgMC4wNzMtMC4wMzIgMC4xMDlzLTAuMDE4IDAuMDczLTAuMDI3IDAuMTA5LTAuMDM1IDAuMTQzLTAuMDUyIDAuMjEzYy0wLjAxNCAwLjA3MC0wLjAyNyAwLjEzOS0wLjA0MCAwLjIwNy0wLjAwNiAwLjAzNC0wLjAxMyAwLjA2Ny0wLjAxOSAwLjEwMS0wLjAwMyAwLjAxNy0wLjAwNiAwLjAzMy0wLjAwOSAwLjA0OXMtMC4wMDUgMC4wMzMtMC4wMDcgMC4wNTBjLTAuMDA5IDAuMDY1LTAuMDE4IDAuMTMtMC4wMjcgMC4xOTItMC4wMDQgMC4wMzEtMC4wMDkgMC4wNjItMC4wMTMgMC4wOTNzLTAuMDA2IDAuMDYxLTAuMDA5IDAuMDkxLTAuMDEwIDAuMTE4LTAuMDE1IDAuMTc0Yy0wLjAwNSAwLjA1Ni0wLjAxMSAwLjExMS0wLjAxMiAwLjE2NS0wIDAuMDA5LTAuMDAxIDAuMDE3LTAuMDAxIDAuMDI1LTAuNTM3IDAuMDE3LTAuOTY3IDAuNDU4LTAuOTY3IDAuOTk5IDAgMC4wMDggMCAwLjAxNyAwLjAwMSAwLjAyNXpNMS4xNDkgNy4wMTFjMC4wMDEtMC4wMDMgMC4wMDEtMC4wMDYgMC4wMDItMC4wMDkgMC4wMTAtMC4wNTEgMC4wMjYtMC4xMDIgMC4wNDAtMC4xNTVzMC4wMzAtMC4xMDcgMC4wNDUtMC4xNjNjMC4wMDgtMC4wMjggMC4wMTUtMC4wNTYgMC4wMjQtMC4wODRzMC4wMTktMC4wNTcgMC4wMjgtMC4wODYgMC4wMzgtMC4xMTYgMC4wNTgtMC4xNzZjMC4wMDUtMC4wMTUgMC4wMTAtMC4wMzAgMC4wMTUtMC4wNDVzMC4wMTItMC4wMzAgMC4wMTctMC4wNDUgMC4wMjMtMC4wNjAgMC4wMzUtMC4wOTEgMC4wNDgtMC4xMjMgMC4wNzMtMC4xODZjMC4wMjgtMC4wNjIgMC4wNTYtMC4xMjUgMC4wODQtMC4xODkgMC4wMTQtMC4wMzIgMC4wMjgtMC4wNjQgMC4wNDMtMC4wOTZzMC4wMzItMC4wNjQgMC4wNDgtMC4wOTYgMC4wNjUtMC4xMjggMC4wOTgtMC4xOTRjMC4wMzQtMC4wNjUgMC4wNzMtMC4xMjggMC4xMDktMC4xOTQgMC4wMTgtMC4wMzIgMC4wMzctMC4wNjUgMC4wNTYtMC4wOThzMC4wNDAtMC4wNjQgMC4wNjEtMC4wOTZjMC4wNDEtMC4wNjQgMC4wODItMC4xMjkgMC4xMjQtMC4xOTQgMC4xNzYtMC4yNTUgMC4zNjktMC41MDYgMC41ODMtMC43NDQgMC4yMTctMC4yMzYgMC40NTEtMC40NTkgMC42OTctMC42NjUgMC4yNS0wLjIwMiAwLjUxMS0wLjM4NSAwLjc3Ni0wLjU0NyAwLjI2OC0wLjE1OSAwLjU0MS0wLjI5NCAwLjgwOC0wLjQxIDAuMDY4LTAuMDI3IDAuMTM1LTAuMDUzIDAuMjAyLTAuMDc5IDAuMDMzLTAuMDEzIDAuMDY2LTAuMDI3IDAuMDk5LTAuMDM4czAuMDY3LTAuMDIyIDAuMS0wLjAzMyAwLjEzMS0wLjA0NSAwLjE5Ni0wLjA2NWMwLjA2NS0wLjAxOCAwLjEzLTAuMDM2IDAuMTk0LTAuMDU0IDAuMDMyLTAuMDA5IDAuMDYzLTAuMDE5IDAuMDk1LTAuMDI2czAuMDYzLTAuMDE0IDAuMDk0LTAuMDIxIDAuMTIzLTAuMDI4IDAuMTg0LTAuMDQyYzAuMDYxLTAuMDExIDAuMTItMC4wMjEgMC4xNzktMC4wMzIgMC4wMjktMC4wMDUgMC4wNTgtMC4wMTAgMC4wODctMC4wMTUgMC4wMTQtMC4wMDMgMC4wMjktMC4wMDUgMC4wNDMtMC4wMDhzMC4wMjktMC4wMDMgMC4wNDMtMC4wMDVjMC4wNTYtMC4wMDcgMC4xMTItMC4wMTQgMC4xNjYtMC4wMjAgMC4wMjctMC4wMDMgMC4wNTMtMC4wMDcgMC4wODAtMC4wMTBzMC4wNTMtMC4wMDQgMC4wNzgtMC4wMDYgMC4xMDItMC4wMDcgMC4xNS0wLjAxMWMwLjA0OS0wLjAwMyAwLjA5NS0wLjAwOCAwLjE0Mi0wLjAwOCAwLjA5MS0wLjAwMiAwLjE3Ny0wLjAwNCAwLjI1Ni0wLjAwNiAwLjA3MyAwLjAwMyAwLjE0IDAuMDA1IDAuMiAwLjAwNyAwLjAzMCAwLjAwMSAwLjA1OCAwLjAwMiAwLjA4NSAwLjAwMiAwLjAzMyAwLjAwMiAwLjA2NCAwLjAwNCAwLjA5MyAwLjAwNiAwLjAzMyAwLjAwMiAwLjA2MyAwLjAwNCAwLjA5MSAwLjAwNiAwLjA1MSAwLjAwOCAwLjEwMyAwLjAxMiAwLjE1NiAwLjAxMiAwLjAwNyAwIDAuMDE1LTAgMC4wMjItMC4wMDEgMC4wMDIgMCAwLjAwNCAwIDAuMDA0IDB2LTBjMC40ODctMC4wMTIgMC44ODctMC4zNzIgMC45NjItMC44NCAwLjAwOCAwLjAwMiAwLjAxNyAwLjAwNCAwLjAyNSAwLjAwNiAwLjA1MSAwLjAxMCAwLjEwMiAwLjAyNiAwLjE1NSAwLjA0MHMwLjEwNyAwLjAzMCAwLjE2MyAwLjA0NWMwLjAyOCAwLjAwOCAwLjA1NiAwLjAxNSAwLjA4NCAwLjAyNHMwLjA1NyAwLjAxOSAwLjA4NiAwLjAyOCAwLjExNiAwLjAzOCAwLjE3NiAwLjA1OGMwLjAxNSAwLjAwNSAwLjAzMCAwLjAxMCAwLjA0NSAwLjAxNXMwLjAzMCAwLjAxMiAwLjA0NSAwLjAxNyAwLjA2MCAwLjAyMyAwLjA5MSAwLjAzNSAwLjEyMyAwLjA0OCAwLjE4NiAwLjA3M2MwLjA2MiAwLjAyOCAwLjEyNSAwLjA1NiAwLjE4OSAwLjA4NCAwLjAzMiAwLjAxNCAwLjA2NCAwLjAyOCAwLjA5NiAwLjA0M3MwLjA2NCAwLjAzMiAwLjA5NiAwLjA0OCAwLjEyOCAwLjA2NSAwLjE5NCAwLjA5OGMwLjA2NSAwLjAzNCAwLjEyOSAwLjA3MyAwLjE5NCAwLjEwOSAwLjAzMiAwLjAxOCAwLjA2NSAwLjAzNyAwLjA5OCAwLjA1NnMwLjA2NCAwLjA0MCAwLjA5NiAwLjA2MSAwLjEyOSAwLjA4MiAwLjE5NCAwLjEyNGMwLjI1NSAwLjE3NiAwLjUwNiAwLjM2OSAwLjc0NCAwLjU4MyAwLjIzNiAwLjIxNyAwLjQ1OSAwLjQ1MSAwLjY2NSAwLjY5NyAwLjIwMiAwLjI1IDAuMzg1IDAuNTExIDAuNTQ3IDAuNzc2IDAuMTU5IDAuMjY4IDAuMjk0IDAuNTQxIDAuNDEgMC44MDggMC4wMjcgMC4wNjggMC4wNTMgMC4xMzUgMC4wNzkgMC4yMDIgMC4wMTMgMC4wMzMgMC4wMjcgMC4wNjYgMC4wMzggMC4wOTlzMC4wMjIgMC4wNjcgMC4wMzMgMC4xIDAuMDQ1IDAuMTMxIDAuMDY1IDAuMTk2YzAuMDE4IDAuMDY1IDAuMDM2IDAuMTMgMC4wNTQgMC4xOTQgMC4wMDkgMC4wMzIgMC4wMTkgMC4wNjMgMC4wMjYgMC4wOTVzMC4wMTQgMC4wNjMgMC4wMjEgMC4wOTQgMC4wMjggMC4xMjMgMC4wNDIgMC4xODRjMC4wMTEgMC4wNjEgMC4wMjEgMC4xMiAwLjAzMiAwLjE3OSAwLjAwNSAwLjAyOSAwLjAxMCAwLjA1OCAwLjAxNSAwLjA4NyAwLjAwMyAwLjAxNCAwLjAwNSAwLjAyOSAwLjAwOCAwLjA0M3MwLjAwMyAwLjAyOSAwLjAwNSAwLjA0M2MwLjAwNyAwLjA1NiAwLjAxNCAwLjExMiAwLjAyMCAwLjE2NiAwLjAwMyAwLjAyNyAwLjAwNyAwLjA1MyAwLjAxMCAwLjA4MHMwLjAwNCAwLjA1MyAwLjAwNiAwLjA3OCAwLjAwNyAwLjEwMiAwLjAxMSAwLjE1YzAuMDAzIDAuMDQ5IDAuMDA4IDAuMDk1IDAuMDA4IDAuMTQyIDAuMDAyIDAuMDkxIDAuMDA0IDAuMTc3IDAuMDA2IDAuMjU2LTAuMDAzIDAuMDczLTAuMDA1IDAuMTQtMC4wMDcgMC4yLTAuMDAxIDAuMDMwLTAuMDAyIDAuMDU4LTAuMDAyIDAuMDg1LTAuMDAyIDAuMDMzLTAuMDA0IDAuMDY0LTAuMDA2IDAuMDkzLTAuMDAyIDAuMDMzLTAuMDA0IDAuMDYzLTAuMDA2IDAuMDkxLTAuMDA4IDAuMDUxLTAuMDEyIDAuMTAzLTAuMDEyIDAuMTU2IDAgMC4wMDcgMCAwLjAxNSAwLjAwMSAwLjAyMi0wIDAuMDAyLTAgMC4wMDQtMCAwLjAwNGgwYzAuMDEyIDAuNDgxIDAuMzYzIDAuODc3IDAuODIzIDAuOTU5LTAuMDAxIDAuMDA1LTAuMDAyIDAuMDA5LTAuMDAzIDAuMDE0LTAuMDEwIDAuMDUxLTAuMDI1IDAuMTAyLTAuMDQwIDAuMTU1cy0wLjAzMCAwLjEwNy0wLjA0NSAwLjE2M2MtMC4wMDggMC4wMjgtMC4wMTUgMC4wNTYtMC4wMjQgMC4wODRzLTAuMDE5IDAuMDU3LTAuMDI4IDAuMDg2LTAuMDM5IDAuMTE2LTAuMDU4IDAuMTc2Yy0wLjAwNSAwLjAxNS0wLjAxMCAwLjAzMC0wLjAxNSAwLjA0NXMtMC4wMTIgMC4wMzAtMC4wMTcgMC4wNDUtMC4wMjMgMC4wNjAtMC4wMzUgMC4wOTEtMC4wNDggMC4xMjMtMC4wNzMgMC4xODZjLTAuMDI4IDAuMDYyLTAuMDU2IDAuMTI1LTAuMDg0IDAuMTg5LTAuMDE0IDAuMDMyLTAuMDI4IDAuMDY0LTAuMDQzIDAuMDk2cy0wLjAzMiAwLjA2NC0wLjA0OCAwLjA5Ni0wLjA2NSAwLjEyOC0wLjA5OCAwLjE5NGMtMC4wMzQgMC4wNjUtMC4wNzMgMC4xMjktMC4xMDkgMC4xOTQtMC4wMTggMC4wMzItMC4wMzcgMC4wNjUtMC4wNTYgMC4wOThzLTAuMDQwIDAuMDY0LTAuMDYxIDAuMDk2LTAuMDgyIDAuMTI5LTAuMTI0IDAuMTk0Yy0wLjE3NiAwLjI1NS0wLjM2OSAwLjUwNi0wLjU4MyAwLjc0NC0wLjIxNyAwLjIzNi0wLjQ1MSAwLjQ1OS0wLjY5NyAwLjY2NS0wLjI1IDAuMjAyLTAuNTExIDAuMzg1LTAuNzc2IDAuNTQ3LTAuMjY4IDAuMTU5LTAuNTQxIDAuMjk0LTAuODA4IDAuNDEtMC4wNjggMC4wMjctMC4xMzUgMC4wNTMtMC4yMDIgMC4wNzktMC4wMzMgMC4wMTMtMC4wNjYgMC4wMjctMC4wOTkgMC4wMzhzLTAuMDY3IDAuMDIyLTAuMSAwLjAzMy0wLjEzMSAwLjA0NS0wLjE5NiAwLjA2NWMtMC4wNjUgMC4wMTgtMC4xMyAwLjAzNi0wLjE5NCAwLjA1NC0wLjAzMiAwLjAwOS0wLjA2MyAwLjAxOS0wLjA5NSAwLjAyNnMtMC4wNjMgMC4wMTQtMC4wOTQgMC4wMjEtMC4xMjMgMC4wMjgtMC4xODQgMC4wNDJjLTAuMDYxIDAuMDExLTAuMTIgMC4wMjEtMC4xNzkgMC4wMzItMC4wMjkgMC4wMDUtMC4wNTggMC4wMTAtMC4wODcgMC4wMTUtMC4wMTQgMC4wMDMtMC4wMjggMC4wMDUtMC4wNDMgMC4wMDhzLTAuMDI5IDAuMDAzLTAuMDQzIDAuMDA1Yy0wLjA1NiAwLjAwNy0wLjExMiAwLjAxNC0wLjE2NiAwLjAyMC0wLjAyNyAwLjAwMy0wLjA1MyAwLjAwNy0wLjA4MCAwLjAxMHMtMC4wNTMgMC4wMDQtMC4wNzggMC4wMDYtMC4xMDIgMC4wMDctMC4xNSAwLjAxMWMtMC4wNDkgMC4wMDMtMC4wOTUgMC4wMDgtMC4xNDIgMC4wMDgtMC4wOTEgMC4wMDItMC4xNzcgMC4wMDQtMC4yNTYgMC4wMDYtMC4wNzMtMC4wMDMtMC4xNC0wLjAwNS0wLjItMC4wMDctMC4wMzAtMC4wMDEtMC4wNTgtMC4wMDItMC4wODUtMC4wMDItMC4wMzMtMC4wMDItMC4wNjQtMC4wMDQtMC4wOTMtMC4wMDYtMC4wMzMtMC4wMDItMC4wNjMtMC4wMDQtMC4wOTEtMC4wMDYtMC4wNTEtMC4wMDgtMC4xMDMtMC4wMTItMC4xNTYtMC4wMTItMC4wMDcgMC0wLjAxNSAwLTAuMDIyIDAuMDAxLTAuMDAyLTAtMC4wMDMtMC0wLjAwMy0wdjBjLTAuNDg0IDAuMDEyLTAuODgzIDAuMzY5LTAuOTYxIDAuODM0LTAuMDUwLTAuMDEwLTAuMTAxLTAuMDI1LTAuMTUzLTAuMDM5cy0wLjEwNy0wLjAzMC0wLjE2My0wLjA0NWMtMC4wMjgtMC4wMDgtMC4wNTYtMC4wMTUtMC4wODQtMC4wMjRzLTAuMDU3LTAuMDE5LTAuMDg2LTAuMDI4LTAuMTE2LTAuMDM5LTAuMTc2LTAuMDU4Yy0wLjAxNS0wLjAwNS0wLjAzMC0wLjAxMC0wLjA0NS0wLjAxNXMtMC4wMzAtMC4wMTItMC4wNDUtMC4wMTctMC4wNjAtMC4wMjMtMC4wOTEtMC4wMzUtMC4xMjMtMC4wNDgtMC4xODYtMC4wNzNjLTAuMDYyLTAuMDI4LTAuMTI1LTAuMDU2LTAuMTg5LTAuMDg0LTAuMDMyLTAuMDE0LTAuMDY0LTAuMDI4LTAuMDk2LTAuMDQzcy0wLjA2NC0wLjAzMi0wLjA5Ni0wLjA0OC0wLjEyOC0wLjA2NS0wLjE5NC0wLjA5OGMtMC4wNjUtMC4wMzQtMC4xMjktMC4wNzMtMC4xOTQtMC4xMDktMC4wMzItMC4wMTgtMC4wNjUtMC4wMzctMC4wOTgtMC4wNTZzLTAuMDY0LTAuMDQwLTAuMDk2LTAuMDYxYy0wLjA2NC0wLjA0MS0wLjEyOS0wLjA4Mi0wLjE5NC0wLjEyNC0wLjI1NS0wLjE3NS0wLjUwNi0wLjM2OS0wLjc0NC0wLjU4My0wLjIzNi0wLjIxNy0wLjQ1OS0wLjQ1MS0wLjY2NS0wLjY5Ny0wLjIwMi0wLjI1LTAuMzg1LTAuNTExLTAuNTQ3LTAuNzc2LTAuMTU5LTAuMjY4LTAuMjk0LTAuNTQxLTAuNDEtMC44MDgtMC4wMjctMC4wNjgtMC4wNTMtMC4xMzUtMC4wNzktMC4yMDItMC4wMTMtMC4wMzMtMC4wMjctMC4wNjYtMC4wMzgtMC4wOTlzLTAuMDIyLTAuMDY3LTAuMDMzLTAuMS0wLjA0NS0wLjEzMS0wLjA2NS0wLjE5NmMtMC4wMTgtMC4wNjUtMC4wMzYtMC4xMy0wLjA1NC0wLjE5NC0wLjAwOS0wLjAzMi0wLjAxOS0wLjA2My0wLjAyNi0wLjA5NXMtMC4wMTQtMC4wNjMtMC4wMjEtMC4wOTQtMC4wMjgtMC4xMjMtMC4wNDItMC4xODRjLTAuMDExLTAuMDYxLTAuMDIxLTAuMTItMC4wMzItMC4xNzktMC4wMDUtMC4wMjktMC4wMTAtMC4wNTgtMC4wMTUtMC4wODctMC4wMDMtMC4wMTQtMC4wMDUtMC4wMjgtMC4wMDgtMC4wNDNzLTAuMDAzLTAuMDI5LTAuMDA1LTAuMDQzYy0wLjAwNy0wLjA1Ni0wLjAxNC0wLjExMi0wLjAyMC0wLjE2Ni0wLjAwMy0wLjAyNy0wLjAwNy0wLjA1My0wLjAxMC0wLjA4MHMtMC4wMDQtMC4wNTMtMC4wMDYtMC4wNzgtMC4wMDctMC4xMDEtMC4wMTEtMC4xNWMtMC4wMDMtMC4wNDktMC4wMDgtMC4wOTUtMC4wMDgtMC4xNDItMC4wMDItMC4wOTEtMC4wMDQtMC4xNzctMC4wMDYtMC4yNTYgMC4wMDMtMC4wNzMgMC4wMDUtMC4xNCAwLjAwNy0wLjIgMC4wMDEtMC4wMzAgMC4wMDItMC4wNTggMC4wMDItMC4wODUgMC4wMDItMC4wMzMgMC4wMDQtMC4wNjQgMC4wMDYtMC4wOTMgMC4wMDItMC4wMzMgMC4wMDQtMC4wNjMgMC4wMDYtMC4wOTEgMC4wMDgtMC4wNTEgMC4wMTItMC4xMDMgMC4wMTItMC4xNTYgMC0wLjAwNy0wLTAuMDE1LTAuMDAxLTAuMDIyIDAtMC4wMDIgMC0wLjAwMyAwLTAuMDAzaC0wYy0wLjAxMi0wLjQ5LTAuMzc3LTAuODkzLTAuODUxLTAuOTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNwaW5uZXIxMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2aC02bDIuMjQzLTIuMjQzYy0xLjEzMy0xLjEzMy0yLjY0LTEuNzU3LTQuMjQzLTEuNzU3cy0zLjEwOSAwLjYyNC00LjI0MyAxLjc1N2MtMS4xMzMgMS4xMzMtMS43NTcgMi42NC0xLjc1NyA0LjI0M3MwLjYyNCAzLjEwOSAxLjc1NyA0LjI0M2MxLjEzMyAxLjEzMyAyLjY0IDEuNzU3IDQuMjQzIDEuNzU3czMuMTA5LTAuNjI0IDQuMjQzLTEuNzU3YzAuMDk1LTAuMDk1IDAuMTg1LTAuMTkyIDAuMjczLTAuMjkybDEuNTA1IDEuMzE3Yy0xLjQ2NiAxLjY3NC0zLjYyIDIuNzMyLTYuMDIwIDIuNzMyLTQuNDE4IDAtOC0zLjU4Mi04LThzMy41ODItOCA4LThjMi4yMDkgMCA0LjIwOSAwLjg5NiA1LjY1NiAyLjM0NGwyLjM0My0yLjM0NHY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJpbm9jdWxhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAwaDZ2MWgtNnpNOSAwaDZ2MWgtNnpNMTQuODc1IDVoLTAuODc1di00aC00djRoLTR2LTRoLTR2NGgtMC44NzVjLTAuNjE5IDAtMS4xMjUgMC41MDYtMS4xMjUgMS4xMjV2OC43NWMwIDAuNjE5IDAuNTA2IDEuMTI1IDEuMTI1IDEuMTI1aDQuNzVjMC42MTkgMCAxLjEyNS0wLjUwNiAxLjEyNS0xLjEyNXYtNS44NzVoMnY1Ljg3NWMwIDAuNjE5IDAuNTA2IDEuMTI1IDEuMTI1IDEuMTI1aDQuNzVjMC42MTkgMCAxLjEyNS0wLjUwNiAxLjEyNS0xLjEyNXYtOC43NWMwLTAuNjE5LTAuNTA2LTEuMTI1LTEuMTI1LTEuMTI1ek01LjQzOCAxNWgtMy44NzVjLTAuMzA5IDAtMC41NjMtMC4yMjUtMC41NjMtMC41czAuMjUzLTAuNSAwLjU2My0wLjVoMy44NzVjMC4zMDkgMCAwLjU2MyAwLjIyNSAwLjU2MyAwLjVzLTAuMjUzIDAuNS0wLjU2MyAwLjV6TTguNSA4aC0xYy0wLjI3NSAwLTAuNS0wLjIyNS0wLjUtMC41czAuMjI1LTAuNSAwLjUtMC41aDFjMC4yNzUgMCAwLjUgMC4yMjUgMC41IDAuNXMtMC4yMjUgMC41LTAuNSAwLjV6TTE0LjQzOCAxNWgtMy44NzVjLTAuMzA5IDAtMC41NjMtMC4yMjUtMC41NjMtMC41czAuMjUzLTAuNSAwLjU2My0wLjVoMy44NzVjMC4zMDkgMCAwLjU2MyAwLjIyNSAwLjU2MyAwLjVzLTAuMjUzIDAuNS0wLjU2MyAwLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUwNCAxMy42MTZsLTMuNzktMy4yMjNjLTAuMzkyLTAuMzUzLTAuODExLTAuNTE0LTEuMTQ5LTAuNDk5IDAuODk1LTEuMDQ4IDEuNDM1LTIuNDA3IDEuNDM1LTMuODkzIDAtMy4zMTQtMi42ODYtNi02LTZzLTYgMi42ODYtNiA2IDIuNjg2IDYgNiA2YzEuNDg2IDAgMi44NDUtMC41NCAzLjg5My0xLjQzNS0wLjAxNiAwLjMzOCAwLjE0NiAwLjc1NyAwLjQ5OSAxLjE0OWwzLjIyMyAzLjc5YzAuNTUyIDAuNjEzIDEuNDUzIDAuNjY1IDIuMDAzIDAuMTE1czAuNDk4LTEuNDUyLTAuMTE1LTIuMDAzek02IDEwYy0yLjIwOSAwLTQtMS43OTEtNC00czEuNzkxLTQgNC00IDQgMS43OTEgNCA0LTEuNzkxIDQtNCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVpvb21JbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41MDQgMTMuNjE2bC0zLjc5LTMuMjIzYy0wLjM5Mi0wLjM1My0wLjgxMS0wLjUxNC0xLjE0OS0wLjQ5OSAwLjg5NS0xLjA0OCAxLjQzNS0yLjQwNyAxLjQzNS0zLjg5MyAwLTMuMzE0LTIuNjg2LTYtNi02cy02IDIuNjg2LTYgNiAyLjY4NiA2IDYgNmMxLjQ4NiAwIDIuODQ1LTAuNTQgMy44OTMtMS40MzUtMC4wMTYgMC4zMzggMC4xNDYgMC43NTcgMC40OTkgMS4xNDlsMy4yMjMgMy43OWMwLjU1MiAwLjYxMyAxLjQ1MyAwLjY2NSAyLjAwMyAwLjExNXMwLjQ5OC0xLjQ1Mi0wLjExNS0yLjAwM3pNNiAxMGMtMi4yMDkgMC00LTEuNzkxLTQtNHMxLjc5MS00IDQtNCA0IDEuNzkxIDQgNC0xLjc5MSA0LTQgNHpNNyAzaC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVpvb21PdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTA0IDEzLjYxNmwtMy43OS0zLjIyM2MtMC4zOTItMC4zNTMtMC44MTEtMC41MTQtMS4xNDktMC40OTkgMC44OTUtMS4wNDggMS40MzUtMi40MDcgMS40MzUtMy44OTMgMC0zLjMxNC0yLjY4Ni02LTYtNnMtNiAyLjY4Ni02IDYgMi42ODYgNiA2IDZjMS40ODYgMCAyLjg0NS0wLjU0IDMuODkzLTEuNDM1LTAuMDE2IDAuMzM4IDAuMTQ2IDAuNzU3IDAuNDk5IDEuMTQ5bDMuMjIzIDMuNzljMC41NTIgMC42MTMgMS40NTMgMC42NjUgMi4wMDMgMC4xMTVzMC40OTgtMS40NTItMC4xMTUtMi4wMDN6TTYgMTBjLTIuMjA5IDAtNC0xLjc5MS00LTRzMS43OTEtNCA0LTQgNCAxLjc5MSA0IDQtMS43OTEgNC00IDR6TTMgNWg2djJoLTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRW5sYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAwaC02LjVsMi41IDIuNS0zIDMgMS41IDEuNSAzLTMgMi41IDIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNnYtNi41bC0yLjUgMi41LTMtMy0xLjUgMS41IDMgMy0yLjUgMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTZoNi41bC0yLjUtMi41IDMtMy0xLjUtMS41LTMgMy0yLjUtMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMHY2LjVsMi41LTIuNSAzIDMgMS41LTEuNS0zLTMgMi41LTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TaHJpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA3aDYuNWwtMi41LTIuNSAzLTMtMS41LTEuNS0zIDMtMi41LTIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDl2Ni41bDIuNS0yLjUgMyAzIDEuNS0xLjUtMy0zIDIuNS0yLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5aC02LjVsMi41IDIuNS0zIDMgMS41IDEuNSAzLTMgMi41IDIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDd2LTYuNWwtMi41IDIuNS0zLTMtMS41IDEuNSAzIDMtMi41IDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1FbmxhcmdlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAwdjYuNWwtMi41LTIuNS0zIDMtMS41LTEuNSAzLTMtMi41LTIuNXpNNyAxMC41bC0zIDMgMi41IDIuNWgtNi41di02LjVsMi41IDIuNSAzLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2hyaW5rMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDl2Ni41bC0yLjUtMi41LTMgMy0xLjUtMS41IDMtMy0yLjUtMi41ek0xNiAxLjVsLTMgMyAyLjUgMi41aC02LjV2LTYuNWwyLjUgMi41IDMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1LZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMGMtMi43NjEgMC01IDIuMjM5LTUgNSAwIDAuMzEzIDAuMDI5IDAuNjE5IDAuMDg0IDAuOTE2bC02LjA4NCA2LjA4NHYzYzAgMC41NTIgMC40NDggMSAxIDFoMXYtMWgydi0yaDJ2LTJoMmwxLjI5OC0xLjI5OGMwLjUzMSAwLjE5MiAxLjEwNSAwLjI5OCAxLjcwMiAwLjI5OCAyLjc2MSAwIDUtMi4yMzkgNS01cy0yLjIzOS01LTUtNXpNMTIuNDk4IDUuMDAyYy0wLjgyOCAwLTEuNS0wLjY3Mi0xLjUtMS41czAuNjcyLTEuNSAxLjUtMS41IDEuNSAwLjY3MiAxLjUgMS41LTAuNjcyIDEuNS0xLjUgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUtleTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjU4IDQuOTFsLTEuNTgtMS41OGMtMC4zODctMC4zODctMS4wMjEtMS4wMjEtMS40MDktMS40MDlsLTEuNTgtMS41OGMtMC4zODctMC4zODctMS4wNzctMC40NTYtMS41MzMtMC4xNTJsLTQuMzE5IDIuODhjLTAuNDU2IDAuMzA0LTAuNjI4IDAuOTU0LTAuMzgzIDEuNDQ0bDEuMTAxIDIuMjAzYzAuMDM0IDAuMDY3IDAuMDczIDAuMTM5IDAuMTE1IDAuMjEzbC01LjU3MSA1LjU3MS0wLjUgMy41aDN2LTFoMnYtMmgydi0yaDJ2LTEuMTEyYzAuMSAwLjA2MCAwLjE5NiAwLjExMyAwLjI4NCAwLjE1N2wyLjIwMyAxLjEwMWMwLjQ5IDAuMjQ1IDEuMTQgMC4wNzIgMS40NDQtMC4zODNsMi44OC00LjMxOWMwLjMwNC0wLjQ1NiAwLjIzNi0xLjE0Ni0wLjE1Mi0xLjUzM3pNMi4zNTQgMTMuMzU0bC0wLjcwNy0wLjcwNyA0Ljg2OC00Ljg2OCAwLjcwNyAwLjcwNy00Ljg2OCA0Ljg2OHpNMTQuMzI4IDYuNjIxbC0wLjcwNyAwLjcwN2MtMC4xOTQgMC4xOTQtMC41MTMgMC4xOTQtMC43MDcgMGwtNC4yNDMtNC4yNDNjLTAuMTk0LTAuMTk0LTAuMTk0LTAuNTEzIDAtMC43MDdsMC43MDctMC43MDdjMC4xOTQtMC4xOTQgMC41MTMtMC4xOTQgMC43MDcgMGw0LjI0MyA0LjI0M2MwLjE5NCAwLjE5NCAwLjE5NCAwLjUxMyAwIDAuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yNSA3aC0wLjI1di0zYzAtMS42NTQtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2M2gtMC4yNWMtMC40MTIgMC0wLjc1IDAuMzM4LTAuNzUgMC43NXY3LjVjMCAwLjQxMiAwLjMzOCAwLjc1IDAuNzUgMC43NWg4LjVjMC40MTIgMCAwLjc1LTAuMzM4IDAuNzUtMC43NXYtNy41YzAtMC40MTItMC4zMzgtMC43NS0wLjc1LTAuNzV6TTMgNGMwLTAuNTUxIDAuNDQ5LTEgMS0xaDJjMC41NTEgMCAxIDAuNDQ5IDEgMXYzaC00di0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVVubG9ja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFjMS42NTQgMCAzIDEuMzQ2IDMgM3YzaC0ydi0zYzAtMC41NTEtMC40NDktMS0xLTFoLTJjLTAuNTUxIDAtMSAwLjQ0OS0xIDF2M2gwLjI1YzAuNDEyIDAgMC43NSAwLjMzOCAwLjc1IDAuNzV2Ny41YzAgMC40MTItMC4zMzggMC43NS0wLjc1IDAuNzVoLTguNWMtMC40MTIgMC0wLjc1LTAuMzM4LTAuNzUtMC43NXYtNy41YzAtMC40MTIgMC4zMzgtMC43NSAwLjc1LTAuNzVoNi4yNXYtM2MwLTEuNjU0IDEuMzQ2LTMgMy0zaDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV3JlbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY3MSAxMi43NzlsLTcuMTk2LTYuMTY4YzAuMzM1LTAuNjMgMC41MjUtMS4zNDggMC41MjUtMi4xMTEgMC0yLjQ4NS0yLjAxNS00LjUtNC41LTQuNS0wLjQ1NSAwLTAuODkzIDAuMDY4LTEuMzA3IDAuMTkzbDIuNiAyLjZjMC4zODkgMC4zODkgMC4zODkgMS4wMjUgMCAxLjQxNGwtMS41ODYgMS41ODZjLTAuMzg5IDAuMzg5LTEuMDI1IDAuMzg5LTEuNDE0IDBsLTIuNi0yLjZjLTAuMTI1IDAuNDE0LTAuMTkzIDAuODUyLTAuMTkzIDEuMzA3IDAgMi40ODUgMi4wMTUgNC41IDQuNSA0LjUgMC43NjMgMCAxLjQ4Mi0wLjE5IDIuMTExLTAuNTI1bDYuMTY4IDcuMTk2YzAuMzU4IDAuNDE4IDAuOTY5IDAuNDQxIDEuMzU4IDAuMDUybDEuNTg2LTEuNTg2YzAuMzg5LTAuMzg5IDAuMzY1LTEtMC4wNTItMS4zNTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRXF1YWxpemVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMnYtMC4yNWMwLTAuNDEzLTAuMzM4LTAuNzUtMC43NS0wLjc1aC0yLjVjLTAuNDEzIDAtMC43NSAwLjMzNy0wLjc1IDAuNzV2MC4yNWgtM3YyaDN2MC4yNWMwIDAuNDEyIDAuMzM3IDAuNzUgMC43NSAwLjc1aDIuNWMwLjQxMiAwIDAuNzUtMC4zMzggMC43NS0wLjc1di0wLjI1aDl2LTJoLTl6TTQgNHYtMmgydjJoLTJ6TTEzIDYuNzVjMC0wLjQxMi0wLjMzOC0wLjc1LTAuNzUtMC43NWgtMi41Yy0wLjQxMiAwLTAuNzUgMC4zMzgtMC43NSAwLjc1djAuMjVoLTl2Mmg5djAuMjVjMCAwLjQxMiAwLjMzOCAwLjc1IDAuNzUgMC43NWgyLjVjMC40MTIgMCAwLjc1LTAuMzM4IDAuNzUtMC43NXYtMC4yNWgzdi0yaC0zdi0wLjI1ek0xMCA5di0yaDJ2MmgtMnpNNyAxMS43NWMwLTAuNDEyLTAuMzM4LTAuNzUtMC43NS0wLjc1aC0yLjVjLTAuNDEzIDAtMC43NSAwLjMzOC0wLjc1IDAuNzV2MC4yNWgtM3YyaDN2MC4yNWMwIDAuNDEyIDAuMzM3IDAuNzUgMC43NSAwLjc1aDIuNWMwLjQxMiAwIDAuNzUtMC4zMzggMC43NS0wLjc1di0wLjI1aDl2LTJoLTl2LTAuMjV6TTQgMTR2LTJoMnYyaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUVxdWFsaXplcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgN2gwLjI1YzAuNDEyIDAgMC43NS0wLjMzOCAwLjc1LTAuNzV2LTIuNWMwLTAuNDEzLTAuMzM4LTAuNzUtMC43NS0wLjc1aC0wLjI1di0zaC0ydjNoLTAuMjVjLTAuNDEyIDAtMC43NSAwLjMzNy0wLjc1IDAuNzV2Mi41YzAgMC40MTIgMC4zMzggMC43NSAwLjc1IDAuNzVoMC4yNXY5aDJ2LTl6TTEyIDRoMnYyaC0ydi0yek05LjI1IDEzYzAuNDEyIDAgMC43NS0wLjMzOCAwLjc1LTAuNzV2LTIuNWMwLTAuNDEyLTAuMzM4LTAuNzUtMC43NS0wLjc1aC0wLjI1di05aC0ydjloLTAuMjVjLTAuNDEyIDAtMC43NSAwLjMzOC0wLjc1IDAuNzV2Mi41YzAgMC40MTIgMC4zMzggMC43NSAwLjc1IDAuNzVoMC4yNXYzaDJ2LTNoMC4yNXpNNyAxMGgydjJoLTJ2LTJ6TTQuMjUgN2MwLjQxMiAwIDAuNzUtMC4zMzggMC43NS0wLjc1di0yLjVjMC0wLjQxMy0wLjMzOC0wLjc1LTAuNzUtMC43NWgtMC4yNXYtM2gtMnYzaC0wLjI1Yy0wLjQxMyAwLTAuNzUgMC4zMzctMC43NSAwLjc1djIuNWMwIDAuNDEyIDAuMzM3IDAuNzUgMC43NSAwLjc1aDAuMjV2OWgydi05aDAuMjV6TTIgNGgydjJoLTJ2LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ29nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDkuNTM1Yy0wLjgzOS0xLjQ1NC0wLjMzNS0zLjMxNyAxLjEyNy00LjE2NGwtMS41NzItMi43MjNjLTAuNDQ5IDAuMjYzLTAuOTcyIDAuNDE0LTEuNTI5IDAuNDE0LTEuNjggMC0zLjA0Mi0xLjM3MS0zLjA0Mi0zLjA2MmgtMy4xNDVjMC4wMDQgMC41MjItMC4xMjYgMS4wNTEtMC40MDYgMS41MzUtMC44MzkgMS40NTQtMi43MDYgMS45NDgtNC4xNyAxLjEwNmwtMS41NzIgMi43MjNjMC40NTMgMC4yNTcgMC44NDUgMC42MzQgMS4xMjMgMS4xMTcgMC44MzggMS40NTIgMC4zMzYgMy4zMTEtMS4xMiA0LjE2bDEuNTcyIDIuNzIzYzAuNDQ4LTAuMjYxIDAuOTY3LTAuNDEgMS41MjItMC40MSAxLjY3NSAwIDMuMDMzIDEuMzYyIDMuMDQyIDMuMDQ2aDMuMTQ1Yy0wLjAwMS0wLjUxNyAwLjEyOS0xLjA0MCAwLjQwNi0xLjUxOSAwLjgzOC0xLjQ1MiAyLjctMS45NDcgNC4xNjMtMS4xMWwxLjU3Mi0yLjcyM2MtMC40NS0wLjI1Ny0wLjgzOS0wLjYzMy0xLjExNi0xLjExM3pNOCAxMS4yNGMtMS43ODkgMC0zLjI0LTEuNDUtMy4yNC0zLjI0czEuNDUtMy4yNCAzLjI0LTMuMjRjMS43ODkgMCAzLjI0IDEuNDUgMy4yNCAzLjI0cy0xLjQ1IDMuMjQtMy4yNCAzLjI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNvZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS42ODMgMTEuMjgybDAuNjQ1LTAuOTAzLTAuNzA3LTAuNzA3LTAuOTAzIDAuNjQ1Yy0wLjE2OC0wLjA5NC0wLjM0Ny0wLjE2OC0wLjUzNS0wLjIyMmwtMC4xODMtMS4wOTVoLTFsLTAuMTgzIDEuMDk1Yy0wLjE4OCAwLjA1My0wLjM2OCAwLjEyOC0wLjUzNSAwLjIyMmwtMC45MDMtMC42NDUtMC43MDcgMC43MDcgMC42NDUgMC45MDNjLTAuMDk0IDAuMTY4LTAuMTY4IDAuMzQ3LTAuMjIyIDAuNTM1bC0xLjA5NSAwLjE4M3YxbDEuMDk1IDAuMTgzYzAuMDUzIDAuMTg4IDAuMTI4IDAuMzY4IDAuMjIyIDAuNTM1bC0wLjY0NSAwLjkwMyAwLjcwNyAwLjcwNyAwLjkwMy0wLjY0NWMwLjE2OCAwLjA5NCAwLjM0NyAwLjE2OCAwLjUzNSAwLjIyMmwwLjE4MyAxLjA5NWgxbDAuMTgzLTEuMDk1YzAuMTg4LTAuMDUzIDAuMzY4LTAuMTI4IDAuNTM1LTAuMjIybDAuOTAzIDAuNjQ1IDAuNzA3LTAuNzA3LTAuNjQ1LTAuOTAzYzAuMDk0LTAuMTY4IDAuMTY4LTAuMzQ3IDAuMjIyLTAuNTM1bDEuMDk1LTAuMTgydi0xbC0xLjA5NS0wLjE4M2MtMC4wNTMtMC4xODgtMC4xMjgtMC4zNjgtMC4yMjItMC41MzV6TTMuNSAxMy41Yy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xIDEgMC40NDggMSAxLTAuNDQ4IDEtMSAxek0xNiA2di0xbC0xLjA1My0wLjE5MWMtMC4wMTktMC4xMjYtMC4wNDQtMC4yNS0wLjA3NC0wLjM3MmwwLjg5OS0wLjU4LTAuMzgzLTAuOTI0LTEuMDQ2IDAuMjI2Yy0wLjA2Ni0wLjEwOC0wLjEzNi0wLjIxMy0wLjIxMS0wLjMxNWwwLjYwOS0wLjg4LTAuNzA3LTAuNzA3LTAuODggMC42MDljLTAuMTAyLTAuMDc0LTAuMjA3LTAuMTQ1LTAuMzE1LTAuMjExbDAuMjI2LTEuMDQ2LTAuOTI0LTAuMzgzLTAuNTggMC44OTljLTAuMTIyLTAuMDMwLTAuMjQ2LTAuMDU0LTAuMzcyLTAuMDc0bC0wLjE5MS0xLjA1M2gtMWwtMC4xOTEgMS4wNTNjLTAuMTI2IDAuMDE5LTAuMjUgMC4wNDQtMC4zNzIgMC4wNzRsLTAuNTgtMC44OTktMC45MjQgMC4zODMgMC4yMjYgMS4wNDZjLTAuMTA4IDAuMDY2LTAuMjEzIDAuMTM2LTAuMzE1IDAuMjExbC0wLjg4LTAuNjA5LTAuNzA3IDAuNzA3IDAuNjA5IDAuODhjLTAuMDc0IDAuMTAyLTAuMTQ1IDAuMjA3LTAuMjExIDAuMzE1bC0xLjA0Ni0wLjIyNi0wLjM4MyAwLjkyNCAwLjg5OSAwLjU4Yy0wLjAzMCAwLjEyMi0wLjA1NCAwLjI0Ni0wLjA3NCAwLjM3MmwtMS4wNTMgMC4xOTF2MWwxLjA1MyAwLjE5MWMwLjAxOSAwLjEyNiAwLjA0NCAwLjI1IDAuMDc0IDAuMzcybC0wLjg5OSAwLjU4IDAuMzgzIDAuOTI0IDEuMDQ2LTAuMjI2YzAuMDY2IDAuMTA4IDAuMTM2IDAuMjEzIDAuMjExIDAuMzE1bC0wLjYwOSAwLjg4IDAuNzA3IDAuNzA3IDAuODgtMC42MDljMC4xMDIgMC4wNzQgMC4yMDcgMC4xNDUgMC4zMTUgMC4yMTFsLTAuMjI2IDEuMDQ2IDAuOTI0IDAuMzgzIDAuNTgtMC44OTljMC4xMjIgMC4wMzAgMC4yNDYgMC4wNTQgMC4zNzIgMC4wNzRsMC4xOTEgMS4wNTNoMWwwLjE5MS0xLjA1M2MwLjEyNi0wLjAxOSAwLjI1LTAuMDQ0IDAuMzcyLTAuMDc0bDAuNTggMC44OTkgMC45MjQtMC4zODMtMC4yMjYtMS4wNDZjMC4xMDgtMC4wNjYgMC4yMTMtMC4xMzYgMC4zMTUtMC4yMTFsMC44OCAwLjYwOSAwLjcwNy0wLjcwNy0wLjYwOS0wLjg4YzAuMDc0LTAuMTAyIDAuMTQ1LTAuMjA3IDAuMjExLTAuMzE1bDEuMDQ2IDAuMjI2IDAuMzgzLTAuOTI0LTAuODk5LTAuNThjMC4wMzAtMC4xMjIgMC4wNTQtMC4yNDYgMC4wNzQtMC4zNzJsMS4wNTMtMC4xOTF6TTEwLjUgNy42NzVjLTEuMjAxIDAtMi4xNzUtMC45NzQtMi4xNzUtMi4xNzVzMC45NzQtMi4xNzUgMi4xNzUtMi4xNzUgMi4xNzUgMC45NzQgMi4xNzUgMi4xNzVjMCAxLjIwMS0wLjk3NCAyLjE3NS0yLjE3NSAyLjE3NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1IYW1tZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzgxIDEyLjk1M2wtNC43MTItNC43MTJjLTAuMjkyLTAuMjkyLTAuNzY5LTAuMjkyLTEuMDYxIDBsLTAuMzU0IDAuMzU0LTIuODc1LTIuODc1IDQuNzItNC43MmgtNWwtMi4yMiAyLjIyLTAuMjItMC4yMmgtMS4wNjF2MS4wNjFsMC4yMiAwLjIyLTMuMjIgMy4yMiAyLjUgMi41IDMuMjItMy4yMiAyLjg3NSAyLjg3NS0wLjM1NCAwLjM1NGMtMC4yOTIgMC4yOTItMC4yOTIgMC43NjkgMCAxLjA2MWw0LjcxMiA0LjcxMmMwLjI5MiAwLjI5MiAwLjc2OSAwLjI5MiAxLjA2MSAwbDEuNzY4LTEuNzY4YzAuMjkyLTAuMjkyIDAuMjkyLTAuNzY5IDAtMS4wNjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTWFnaWNXYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgM2wtMi0yaC0xdjFsMiAyek01IDBoMXYyaC0xek05IDVoMnYxaC0yek0xMCAydi0xaC0xbC0yIDIgMSAxek0wIDVoMnYxaC0yek01IDloMXYyaC0xek0xIDl2MWgxbDItMi0xLTF6TTE1Ljc4MSAxMy43ODFsLTkuOTM5LTkuOTM5Yy0wLjI5Mi0wLjI5Mi0wLjc2OS0wLjI5Mi0xLjA2MSAwbC0wLjkzOSAwLjkzOWMtMC4yOTIgMC4yOTItMC4yOTIgMC43NjkgMCAxLjA2MWw5LjkzOSA5LjkzOWMwLjI5MiAwLjI5MiAwLjc2OSAwLjI5MiAxLjA2MSAwbDAuOTM5LTAuOTM5YzAuMjkyLTAuMjkyIDAuMjkyLTAuNzY5IDAtMS4wNjF6TTcuNSA4LjVsLTMtMyAxLTEgMyAzLTEgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BaWRLaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNGgtM3YtMmMwLTAuNTUtMC40NS0xLTEtMWgtNGMtMC41NSAwLTEgMC40NS0xIDF2MmgtM2MtMS4xIDAtMiAwLjktMiAydjhjMCAxLjEgMC45IDIgMiAyaDEyYzEuMSAwIDItMC45IDItMnYtOGMwLTEuMS0wLjktMi0yLTJ6TTYgMmg0djJoLTR2LTJ6TTEyIDExaC0zdjNoLTJ2LTNoLTN2LTJoM3YtM2gydjNoM3YyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJ1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5di0xaC0zLjAyMGMtMC4wOTItMS4xMzYtMC40OTctMi4xNzItMS4xMi0zLjAwNGgyLjUzbDEuMDk1LTQuMzc5LTAuOTctMC4yNDMtMC45MDUgMy42MjFoLTIuNzI5Yy0wLjAxNC0wLjAxMS0wLjAyOC0wLjAyMS0wLjA0Mi0wLjAzMiAwLjEwNS0wLjMwNSAwLjE2Mi0wLjYzMiAwLjE2Mi0wLjk3MiAwLTEuNjUzLTEuMzQzLTIuOTkyLTMtMi45OTJzLTMgMS4zNC0zIDIuOTkyYzAgMC4zNCAwLjA1NyAwLjY2NyAwLjE2MiAwLjk3Mi0wLjAxNCAwLjAxMS0wLjAyOCAwLjAyMS0wLjA0MiAwLjAzMmgtMi43MjlsLTAuOTA1LTMuNjIxLTAuOTcgMC4yNDMgMS4wOTUgNC4zNzloMi41M2MtMC42MjMgMC44MzItMS4wMjggMS44NjgtMS4xMiAzLjAwNGgtMy4wMjB2MWgzLjAyMWMwLjA1OSAwLjcxMyAwLjI0MiAxLjM4OCAwLjUyNiAxLjk5NmgtMS45MzdsLTEuMDk1IDQuMzc5IDAuOTcgMC4yNDMgMC45MDUtMy42MjFoMS43NTZjMC45MTcgMS4yMTkgMi4zMDMgMS45OTYgMy44NTQgMS45OTZzMi45MzctMC43NzcgMy44NTQtMS45OTZoMS43NTZsMC45MDUgMy42MjEgMC45Ny0wLjI0My0xLjA5NS00LjM3OWgtMS45MzdjMC4yODMtMC42MDggMC40NjYtMS4yODMgMC41MjYtMS45OTZoMy4wMjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGllQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5di03Yy0zLjg2NiAwLTcgMy4xMzQtNyA3czMuMTM0IDcgNyA3IDctMy4xMzQgNy03YzAtMS4xMjYtMC4yNjYtMi4xODktMC43MzgtMy4xMzFsLTYuMjYyIDMuMTMxek0xNC4yNjIgMy44NjljLTEuMTQ5LTIuMjk0LTMuNTIxLTMuODY5LTYuMjYyLTMuODY5djdsNi4yNjItMy4xMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3RhdHNEb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTRoMTR2MmgtMTZ2LTE2aDJ6TTQuNSAxM2MtMC44MjggMC0xLjUtMC42NzItMS41LTEuNXMwLjY3Mi0xLjUgMS41LTEuNWMwLjA0NCAwIDAuMDg4IDAuMDAyIDAuMTMxIDAuMDA2bDEuNjEyLTIuNjg3Yy0wLjE1NC0wLjIzNS0wLjI0My0wLjUxNy0wLjI0My0wLjgxOSAwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC4zMDItMC4wOTAgMC41ODMtMC4yNDMgMC44MTlsMS42MTIgMi42ODdjMC4wNDMtMC4wMDQgMC4wODctMC4wMDYgMC4xMzEtMC4wMDYgMC4wMzMgMCAwLjA2NiAwLjAwMSAwLjA5OSAwLjAwNGwyLjY2Mi00LjY1OGMtMC4xNjUtMC4yNDEtMC4yNjEtMC41MzItMC4yNjEtMC44NDUgMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41LTAuMDMzIDAtMC4wNjYtMC4wMDEtMC4wOTktMC4wMDRsLTIuNjYyIDQuNjU4YzAuMTY1IDAuMjQxIDAuMjYxIDAuNTMyIDAuMjYxIDAuODQ1IDAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41YzAtMC4zMDIgMC4wOTAtMC41ODMgMC4yNDMtMC44MTlsLTEuNjEyLTIuNjg3Yy0wLjA0MyAwLjAwNC0wLjA4NyAwLjAwNi0wLjEzMSAwLjAwNnMtMC4wODgtMC4wMDItMC4xMzEtMC4wMDZsLTEuNjEyIDIuNjg3YzAuMTU0IDAuMjM1IDAuMjQzIDAuNTE3IDAuMjQzIDAuODE5IDAgMC44MjgtMC42NzIgMS41LTEuNSAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3RhdHNCYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTNoMTZ2MmgtMTZ6TTIgOWgydjNoLTJ6TTUgNWgydjdoLTJ6TTggOGgydjRoLTJ6TTExIDJoMnYxMGgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdGF0c0JhcnMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSA2aC0zYy0wLjI3NSAwLTAuNSAwLjIyNS0wLjUgMC41djljMCAwLjI3NSAwLjIyNSAwLjUgMC41IDAuNWgzYzAuMjc1IDAgMC41LTAuMjI1IDAuNS0wLjV2LTljMC0wLjI3NS0wLjIyNS0wLjUtMC41LTAuNXpNNC41IDE1aC0zdi00aDN2NHpNOS41IDRoLTNjLTAuMjc1IDAtMC41IDAuMjI1LTAuNSAwLjV2MTFjMCAwLjI3NSAwLjIyNSAwLjUgMC41IDAuNWgzYzAuMjc1IDAgMC41LTAuMjI1IDAuNS0wLjV2LTExYzAtMC4yNzUtMC4yMjUtMC41LTAuNS0wLjV6TTkuNSAxNWgtM3YtNWgzdjV6TTE0LjUgMmgtM2MtMC4yNzUgMC0wLjUgMC4yMjUtMC41IDAuNXYxM2MwIDAuMjc1IDAuMjI1IDAuNSAwLjUgMC41aDNjMC4yNzUgMCAwLjUtMC4yMjUgMC41LTAuNXYtMTNjMC0wLjI3NS0wLjIyNS0wLjUtMC41LTAuNXpNMTQuNSAxNWgtM3YtNmgzdjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVHJvcGh5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDN2LTJoLTEwdjJoLTN2MmMwIDEuNjU3IDEuMzQzIDMgMyAzIDAuMzE0IDAgMC42MTYtMC4wNDggMC45LTAuMTM4IDAuNzIxIDEuMDMxIDEuODIyIDEuNzc4IDMuMSAyLjAzN3YzLjFoLTFjLTEuMTA1IDAtMiAwLjg5NS0yIDJoOGMwLTEuMTA1LTAuODk1LTItMi0yaC0xdi0zLjFjMS4yNzgtMC4yNTkgMi4zNzgtMS4wMDYgMy4xLTIuMDM3IDAuMjg0IDAuMDg5IDAuNTg3IDAuMTM4IDAuOSAwLjEzOCAxLjY1NyAwIDMtMS4zNDMgMy0zdi0yaC0zek0zIDYuODEzYy0wLjk5OSAwLTEuODEzLTAuODEzLTEuODEzLTEuODEzdi0xaDEuODEzdjFjMCAwLjYyOCAwLjExNiAxLjIyOSAwLjMyNyAxLjc4Mi0wLjEwNiAwLjAxOS0wLjIxNiAwLjAzMC0wLjMyNyAwLjAzMHpNMTQuODEzIDVjMCAwLjk5OS0wLjgxMyAxLjgxMy0xLjgxMyAxLjgxMy0wLjExMiAwLTAuMjIxLTAuMDExLTAuMzI3LTAuMDMwIDAuMjExLTAuNTU0IDAuMzI3LTEuMTU0IDAuMzI3LTEuNzgydi0xaDEuODEzdjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltR2lmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wNTUgNWMwLjI4My0wLjIwMSAwLjU1NS0wLjQyNSAwLjgwNC0wLjY3NCAwLjUyMi0wLjUyMiAwLjg3MS0xLjE2NCAwLjk4My0xLjgwOCAwLjEyMy0wLjcwNi0wLjA1Ny0xLjM2Mi0wLjQ5NC0xLjc5OC0wLjM0OC0wLjM0OC0wLjgyLTAuNTMzLTEuMzY1LTAuNTMzLTAuNzc1IDAtMS41OTMgMC4zNzItMi4yNDIgMS4wMjEtMS4wMzkgMS4wMzktMS42NDQgMi40NzItMS45NyAzLjQ5Ni0wLjI0MS0xLjAyOC0wLjcyMi0yLjQxNi0xLjY1Ny0zLjM1MS0wLjUwMS0wLjUwMS0xLjE0Mi0wLjc1OS0xLjc0OC0wLjc1OS0wLjQ5NSAwLTAuOTY1IDAuMTcyLTEuMzE3IDAuNTIzLTAuNzgxIDAuNzgxLTAuNjc1IDIuMTUzIDAuMjM2IDMuMDY0IDAuMzI1IDAuMzI1IDAuNzA1IDAuNTk1IDEuMTA1IDAuODE5aC0zLjM5MXY0aDF2N2gxMnYtN2gxdi00aC0yLjk0NXpNMTAuNTM2IDIuMDAzYzAuNDMzLTAuNDMzIDAuOTc0LTAuNjkyIDEuNDQ2LTAuNjkyIDAuMTY3IDAgMC40MDIgMC4wMzUgMC41NyAwLjIwMyAwLjQwNyAwLjQwNyAwLjE3OCAxLjM0OS0wLjQ4OSAyLjAxNi0wLjY4NyAwLjY4Ny0xLjYxIDEuMTU5LTIuNDEzIDEuNDdoLTAuNzkyYzAuMjktMC44OTkgMC44MTMtMi4xMzIgMS42NzgtMi45OTd6TTMuNjU1IDIuNTE0Yy0wLjAxMS0wLjE0My0wLjAwMS0wLjQxIDAuMTkxLTAuNjAxIDAuMTYtMC4xNiAwLjM3Mi0wLjE5NCAwLjUyMS0wLjE5NHYwYzAuMzMyIDAgMC42NzkgMC4xNTcgMC45NTIgMC40MjkgMC41MjkgMC41MjkgMC45NjUgMS4zNzEgMS4yNiAyLjQzNiAwLjAwOCAwLjAyOSAwLjAxNiAwLjA1NyAwLjAyMyAwLjA4Ni0wLjAyOC0wLjAwOC0wLjA1Ny0wLjAxNS0wLjA4Ni0wLjAyMy0xLjA2NC0wLjI5NS0xLjkwNi0wLjczMS0yLjQzNi0xLjI2LTAuMjQ3LTAuMjQ3LTAuNDAzLTAuNTY1LTAuNDI2LTAuODcyek03IDE1aC00di02LjVoNHY2LjV6TTcgOGgtNXYtMmg1djJ6TTEzIDE1aC00di02LjVoNHY2LjV6TTE0IDhoLTV2LTJoNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjE1MyAwLjI2M2MtMC4wODctMC4xNjItMC4yNTYtMC4yNjMtMC40NC0wLjI2M2gtNy40MjVjLTAuMTg0IDAtMC4zNTMgMC4xMDEtMC40NCAwLjI2My0wLjU1NCAxLjAzMi0wLjg0NyAyLjIzNy0wLjg0NyAzLjQ4NyAwIDEuNjQ3IDAuNTA2IDMuMiAxLjQyNCA0LjM3NCAwLjcxIDAuOTA3IDEuNjAxIDEuNTA4IDIuNTc2IDEuNzUzdjUuMTIzaC0xLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoNWMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41cy0wLjIyNC0wLjUtMC41LTAuNWgtMS41di01LjEyM2MwLjk3NS0wLjI0NCAxLjg2Ni0wLjg0NiAyLjU3Ni0xLjc1MyAwLjkxOC0xLjE3NCAxLjQyNC0yLjcyNyAxLjQyNC00LjM3NCAwLTEuMjQ5LTAuMjkzLTIuNDU1LTAuODQ3LTMuNDg3ek00LjU5NSAxaDYuODA5YzAuMzkgMC44MjcgMC41OTUgMS43NzEgMC41OTUgMi43NSAwIDAuMDg0LTAuMDAyIDAuMTY3LTAuMDA1IDAuMjVoLTcuOTkxYy0wLjAwMy0wLjA4My0wLjAwNS0wLjE2Ni0wLjAwNS0wLjI1LTAtMC45NzkgMC4yMDUtMS45MjMgMC41OTUtMi43NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1HbGFzczIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuODkzIDIuODA5YzAuMTE4LTAuMTUxIDAuMTQtMC4zNTUgMC4wNTctMC41MjdzLTAuMjU4LTAuMjgxLTAuNDUtMC4yODFoLTExYy0wLjE5MSAwLTAuMzY2IDAuMTA5LTAuNDUgMC4yODFzLTAuMDYyIDAuMzc3IDAuMDU3IDAuNTI3bDQuODkzIDYuMjI4djUuOTYzaC0xLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoNWMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41cy0wLjIyNC0wLjUtMC41LTAuNWgtMS41di01Ljk2M2w0Ljg5My02LjIyOHpNMTIuNDcxIDNsLTEuNTcxIDJoLTUuOGwtMS41NzEtMmg4Ljk0M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NdWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNWgtM3YtMS41YzAtMS4zODEtMi42ODYtMi41LTYtMi41cy02IDEuMTE5LTYgMi41djEwYzAgMS4zODEgMi42ODYgMi41IDYgMi41czYtMS4xMTkgNi0yLjV2LTEuNWgzYzAuNTUyIDAgMS0wLjQ0OCAxLTF2LTVjMC0wLjU1Mi0wLjQ0OC0xLTEtMXpNMi43NTEgNC4wMzdjLTAuNTc4LTAuMTktMC45MjgtMC4zOTQtMS4xMTYtMC41MzcgMC4xODgtMC4xNDMgMC41MzgtMC4zNDcgMS4xMTYtMC41MzcgMC45MDUtMC4yOTggMi4wNTktMC40NjMgMy4yNDktMC40NjNzMi4zNDQgMC4xNjQgMy4yNDkgMC40NjNjMC41NzggMC4xOSAwLjkyOCAwLjM5NCAxLjExNiAwLjUzNy0wLjE4OCAwLjE0My0wLjUzOCAwLjM0Ny0xLjExNiAwLjUzNy0wLjkwNSAwLjI5OC0yLjA1OSAwLjQ2My0zLjI0OSAwLjQ2M3MtMi4zNDQtMC4xNjQtMy4yNDktMC40NjN6TTE0IDEwaC0ydi0zaDJ2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcG9vbktuaWZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYy0xLjY1NyAwLTMgMS41NjctMyAzLjUgMCAxLjY1NSAwLjk4NSAzLjA0MiAyLjMwOCAzLjQwNmwtMC40OTcgOC4wOTZjLTAuMDM0IDAuNTQ5IDAuMzg5IDAuOTk4IDAuOTM5IDAuOTk4aDAuNWMwLjU1IDAgMC45NzItMC40NDkgMC45MzktMC45OThsLTAuNDk3LTguMDk2YzEuMzIzLTAuMzY1IDIuMzA4LTEuNzUxIDIuMzA4LTMuNDA2IDAtMS45MzMtMS4zNDMtMy41LTMtMy41ek0xMy41ODMgMGwtMC44MzMgNWgtMC42MjVsLTAuNDE3LTVoLTAuNDE3bC0wLjQxNyA1aC0wLjYyNWwtMC44MzMtNWgtMC40MTd2Ni41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVoMS4zMDJsLTAuNDkxIDguMDAyYy0wLjAzNCAwLjU0OSAwLjM4OSAwLjk5OCAwLjkzOSAwLjk5OGgwLjVjMC41NSAwIDAuOTcyLTAuNDQ5IDAuOTM5LTAuOTk4bC0wLjQ5MS04LjAwMmgxLjMwMmMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di02LjVoLTAuNDE3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUxlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuODAyIDIuMTAyYy0xLjczLTEuMzExLTQuMzkzLTIuMDk0LTcuMTI0LTIuMDk0LTMuMzc3IDAtNi4xMjkgMS4xNzktNy41NDkgMy4yMzUtMC42NjcgMC45NjUtMS4wMzYgMi4xMDktMS4wOTcgMy4zOTgtMC4wNTQgMS4xNDggMC4xMzkgMi40MTggMC41NzMgMy43ODQgMS40ODItNC40NDQgNS42MjItNy45MjMgMTAuMzk1LTcuOTIzIDAgMC00LjQ2NiAxLjE3NS03LjI3NCA0LjgxNi0wLjAwMiAwLjAwMi0wLjAzOSAwLjA0OC0wLjEwMyAwLjEzNi0wLjU2NCAwLjc1NC0xLjA1NSAxLjYxMi0xLjQyMyAyLjU4My0wLjYyMyAxLjQ4Mi0xLjIgMy41MTUtMS4yIDUuOTY1aDJjMCAwLTAuMzA0LTEuOTEgMC4yMjQtNC4xMDYgMC44NzMgMC4xMTggMS42NTQgMC4xNzcgMi4zNTcgMC4xNzcgMS44MzkgMCAzLjE0Ni0wLjM5OCA0LjExNS0xLjI1MiAwLjg2OC0wLjc2NSAxLjM0Ny0xLjc5NCAxLjg1NC0yLjg4MiAwLjc3NC0xLjY2MyAxLjY1MS0zLjU0NyA0LjE5OC01LjAwMiAwLjE0Ni0wLjA4MyAwLjI0LTAuMjM0IDAuMjUxLTAuNDAycy0wLjA2My0wLjMyOS0wLjE5Ny0wLjQzMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Sb2NrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMWwtNSA1aC0zbC0zIDRjMCAwIDMuMTc4LTAuODg1IDUuMDMyLTAuNDdsLTUuMDMyIDYuNDcgNi41OTItNS4xMjdjMC45MTkgMi4xMDQtMC41OTIgNS4xMjctMC41OTIgNS4xMjdsNC0zdi0zbDUtNSAxLTUtNSAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMWM0LjQxOCAwIDggMy41ODIgOCA4IDAgMy4wMTItMS42NjUgNS42MzUtNC4xMjUgN2gtNy43NWMtMi40Ni0xLjM2NS00LjEyNS0zLjk4OC00LjEyNS03IDAtNC40MTggMy41ODItOCA4LTh6TTEyLjUzIDEzLjUzYzEuMjEtMS4yMSAxLjg3Ni0yLjgxOSAxLjg3Ni00LjUzaC0xLjQwNnYtMWgxLjMyOWMtMC4xMS0wLjcwMy0wLjMzNC0xLjM3Ny0wLjY2NS0yaC0xLjY2NHYtMWgxLjAwNGMtMC4xNDctMC4xODQtMC4zMDYtMC4zNjEtMC40NzUtMC41My0wLjcyMi0wLjcyMi0xLjU4Ny0xLjI1MS0yLjUzLTEuNTU5djEuMDg5aC0xdi0xLjMyOWMtMC4zMjgtMC4wNTEtMC42NjItMC4wNzgtMS0wLjA3OHMtMC42NzIgMC4wMjYtMSAwLjA3OHYxLjMyOWgtMXYtMS4wODljLTAuOTQzIDAuMzA5LTEuODA4IDAuODM3LTIuNTMgMS41NTktMC4xNjkgMC4xNjktMC4zMjcgMC4zNDYtMC40NzUgMC41M2gxLjAwNHYxaC0xLjY2NGMtMC4zMzEgMC42MjMtMC41NTUgMS4yOTctMC42NjUgMmgxLjMyOXYxaC0xLjQwNmMwIDEuNzExIDAuNjY2IDMuMzIgMS44NzYgNC41MyAwLjE2NyAwLjE2NyAwLjM0MyAwLjMyNCAwLjUyNCAwLjQ3aDMuMDA2bDAuNTcxLThoMC44NTdsMC41NzEgOGgzLjAwNmMwLjE4Mi0wLjE0NiAwLjM1Ny0wLjMwMyAwLjUyNC0wLjQ3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1ldGVyMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTQuNzMyIDEzLjAzNGMwLjE3NC0wLjQ3OSAwLjI2OC0wLjk5NSAwLjI2OC0xLjUzNCAwLTEuOTQzLTEuMjMxLTMuNTk4LTIuOTU2LTQuMjI4IDAuMTYtMS4zMjcgMC43NTQtMi41NTUgMS43MTQtMy41MTQgMS4xMzMtMS4xMzMgMi42NC0xLjc1NyA0LjI0My0xLjc1N3MzLjEwOSAwLjYyNCA0LjI0MyAxLjc1N2MwLjk2IDAuOTYgMS41NTQgMi4xODggMS43MTQgMy41MTQtMS43MjUgMC42My0yLjk1NiAyLjI4NS0yLjk1NiA0LjIyOCAwIDAuNTM5IDAuMDk1IDEuMDU1IDAuMjY4IDEuNTM0LTAuOTY0IDAuNjI5LTIuMDkwIDAuOTY2LTMuMjY4IDAuOTY2cy0yLjMwNC0wLjMzOC0zLjI2OC0wLjk2NnpNOC42MjEgMTAuMDE2YzAuMjE3IDAuMDU1IDAuMzc5IDAuMjUxIDAuMzc5IDAuNDg0djFjMCAwLjI3NS0wLjIyNSAwLjUtMC41IDAuNWgtMWMtMC4yNzUgMC0wLjUtMC4yMjUtMC41LTAuNXYtMWMwLTAuMjMzIDAuMTYyLTAuNDMgMC4zNzktMC40ODRsMC4zNzEtNy4wMTZoMC41bDAuMzcxIDcuMDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUhhbW1lcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzg0IDE0LjMwOWwtOC41NzItNy44MDQgMC4zOTktMC40YzAuMzI2LTAuMzI3IDAuNTAzLTAuNzUgMC41My0xLjE4MSAwLjAxNi0wLjAwNyAwLjAzMS0wLjAxNCAwLjA0Ni0wLjAyM2wxLjYwOS0xLjAwNmMwLjIxOC0wLjI1NiAwLjIwMi0wLjY2LTAuMDM2LTAuODk4bC0yLjc5OS0yLjgwNmMtMC4yMzctMC4yMzgtMC42NDEtMC4yNTQtMC44OTYtMC4wMzZsLTEuMDA0IDEuNjE0Yy0wLjAwOCAwLjAxNS0wLjAxNSAwLjAzMS0wLjAyMiAwLjA0Ni0wLjQzIDAuMDI3LTAuODUyIDAuMjA0LTEuMTc4IDAuNTMxbC0xLjUyMiAxLjUyN2MtMC4zMjcgMC4zMjctMC41MDMgMC43NS0wLjUzIDEuMTgxLTAuMDE2IDAuMDA3LTAuMDMxIDAuMDE0LTAuMDQ2IDAuMDIzbC0xLjYwOSAxLjAwNmMtMC4yMTggMC4yNTYtMC4yMDIgMC42NiAwLjAzNiAwLjg5OGwyLjc5OSAyLjgwNmMwLjIzNyAwLjIzOCAwLjY0MSAwLjI1NCAwLjg5NiAwLjAzNmwxLjAwNC0xLjYxNGMwLjAwOC0wLjAxNSAwLjAxNS0wLjAzMSAwLjAyMy0wLjA0NiAwLjQzLTAuMDI3IDAuODUyLTAuMjA0IDEuMTc4LTAuNTMxbDAuNDQyLTAuNDQzIDcuNzgzIDguNTk2YzAuMjI2IDAuMjQ5IDAuNTczIDAuMjg5IDAuNzczIDAuMDg5bDAuNzg3LTAuNzg5YzAuMTk5LTAuMiAwLjE1OS0wLjU0OS0wLjA4OS0wLjc3NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMDE2IDE2Yy0xLjA2Ni0yLjIxOS0wLjQ5OC0zLjQ5IDAuMzIxLTQuNjg4IDAuODk3LTEuMzEyIDEuMTI5LTIuNjEgMS4xMjktMi42MXMwLjcwNiAwLjkxNyAwLjQyMyAyLjM1MmMxLjI0Ni0xLjM4NyAxLjQ4Mi0zLjU5OCAxLjI5My00LjQ0NSAyLjgxNyAxLjk2OSA0LjAyMSA2LjIzMiAyLjM5OSA5LjM5MiA4LjYzMS00Ljg4MyAyLjE0Ny0xMi4xOSAxLjAxOC0xMy4wMTMgMC4zNzYgMC44MjMgMC40NDggMi4yMTYtMC4zMTMgMi44OTMtMS4yODctNC44NzktNC40NjgtNS44NzktNC40NjgtNS44NzkgMC4zNzYgMi41MTYtMS4zNjQgNS4yNjgtMy4wNDIgNy4zMjQtMC4wNTktMS4wMDMtMC4xMjItMS42OTYtMC42NDktMi42NTYtMC4xMTggMS44MjMtMS41MTEgMy4zMDktMS44ODkgNS4xMzUtMC41MTEgMi40NzMgMC4zODMgNC4yODQgMy43NzcgNi4xOTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljk0MiAxMi41N2wtNC45NDItOC4yMzV2LTMuMzM1aDAuNWMwLjI3NSAwIDAuNS0wLjIyNSAwLjUtMC41cy0wLjIyNS0wLjUtMC41LTAuNWgtNWMtMC4yNzUgMC0wLjUgMC4yMjUtMC41IDAuNXMwLjIyNSAwLjUgMC41IDAuNWgwLjV2My4zMzVsLTQuOTQyIDguMjM1Yy0xLjEzMiAxLjg4Ni0wLjI1OCAzLjQzIDEuOTQyIDMuNDNoMTBjMi4yIDAgMy4wNzQtMS41NDMgMS45NDItMy40M3pNMy43NjYgMTBsMy4yMzQtNS4zOXYtMy42MWgydjMuNjFsMy4yMzQgNS4zOWgtOC40Njh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTWFnbmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDBoLTRsMSA5YzAgMS42NTctMS4zNDMgMy0zIDNzLTMtMS4zNDMtMy0zbDEtOWgtNGwtMSA5YzAgMy44NjYgMy4xMzQgNyA3IDdzNy0zLjEzNCA3LTdsLTEtOXpNMTIuMTU0IDEzLjE1NGMtMS4xMSAxLjExLTIuNTg1IDEuNzIxLTQuMTU0IDEuNzIxcy0zLjA0NS0wLjYxMS00LjE1NC0xLjcyMWMtMS4wOTYtMS4wOTYtMS43MDUtMi41NDgtMS43Mi00LjA5NWwwLjU2NC01LjA3NWgxLjczNmwtMC41NSA0Ljk1M3YwLjA2MmMwIDEuMTAyIDAuNDI5IDIuMTM4IDEuMjA4IDIuOTE3czEuODE1IDEuMjA4IDIuOTE3IDEuMjA4IDIuMTM4LTAuNDI5IDIuOTE3LTEuMjA4YzAuNzc5LTAuNzc5IDEuMjA4LTEuODE1IDEuMjA4LTIuOTE3di0wLjA2MmwtMC4wMDctMC4wNjItMC41NDMtNC44OTFoMS43MzZsMC41NjQgNS4wNzVjLTAuMDE1IDEuNTQ3LTAuNjI1IDIuOTk5LTEuNzIgNC4wOTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNXYxMGMwIDAuNTUgMC40NSAxIDEgMWg5YzAuNTUgMCAxLTAuNDUgMS0xdi0xMGgtMTF6TTUgMTRoLTF2LTdoMXY3ek03IDE0aC0xdi03aDF2N3pNOSAxNGgtMXYtN2gxdjd6TTExIDE0aC0xdi03aDF2N3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4yNSAyaC0zLjI1di0xLjI1YzAtMC40MTItMC4zMzgtMC43NS0wLjc1LTAuNzVoLTMuNWMtMC40MTIgMC0wLjc1IDAuMzM4LTAuNzUgMC43NXYxLjI1aC0zLjI1Yy0wLjQxMyAwLTAuNzUgMC4zMzctMC43NSAwLjc1djEuMjVoMTN2LTEuMjVjMC0wLjQxMy0wLjMzOC0wLjc1LTAuNzUtMC43NXpNOSAyaC0zdi0wLjk4N2gzdjAuOTg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJpbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNmgxMGwxLTExaC0xMnpNMTAgMnYtMmgtNHYyaC01djNsMS0xaDEybDEgMXYtM2gtNXpNOSAyaC0ydi0xaDJ2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1CcmllZmNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNGgtNHYtMWMwLTAuNTUtMC40NS0xLTEtMWgtNGMtMC41NSAwLTEgMC40NS0xIDF2MWgtNGMtMC41NSAwLTEgMC40NS0xIDF2OWMwIDAuNTUgMC40NSAxIDEgMWgxNGMwLjU1IDAgMS0wLjQ1IDEtMXYtOWMwLTAuNTUtMC40NS0xLTEtMXpNNiAzLjAwMmMwLjAwMS0wLjAwMSAwLjAwMS0wLjAwMSAwLjAwMi0wLjAwMmgzLjk5NmMwLjAwMSAwLjAwMSAwLjAwMSAwLjAwMSAwLjAwMiAwLjAwMnYwLjk5OGgtNHYtMC45OTh6TTE1IDhoLTJ2MS41YzAgMC4yNzUtMC4yMjUgMC41LTAuNSAwLjVoLTFjLTAuMjc1IDAtMC41LTAuMjI1LTAuNS0wLjV2LTEuNWgtNnYxLjVjMCAwLjI3NS0wLjIyNSAwLjUtMC41IDAuNWgtMWMtMC4yNzUgMC0wLjUtMC4yMjUtMC41LTAuNXYtMS41aC0ydi0xaDE0djF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQWlycGxhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOS45OTlsLTIuODU3LTIuODU3IDYuODU3LTUuMTQzLTItMi04LjU3MSAzLjQyOS0yLjY5OC0yLjY5OWMtMC43NzgtMC43NzgtMS44NjQtMC45NjQtMi40MTQtMC40MTRzLTAuMzY0IDEuNjM2IDAuNDE0IDIuNDE0bDIuNjk4IDIuNjk4LTMuNDI5IDguNTcyIDIgMiA1LjE0NC02Ljg1NyAyLjg1NyAyLjg1N3Y0aDJsMS0zIDMtMXYtMmwtNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVRydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDlsLTItNGgtM3YtMmMwLTAuNTUtMC40NS0xLTEtMWgtOWMtMC41NSAwLTEgMC40NS0xIDF2OGwxIDFoMS4yNjhjLTAuMTcgMC4yOTQtMC4yNjggMC42MzYtMC4yNjggMSAwIDEuMTA1IDAuODk1IDIgMiAyczItMC44OTUgMi0yYzAtMC4zNjQtMC4wOTgtMC43MDYtMC4yNjgtMWg1LjUzNmMtMC4xNyAwLjI5NC0wLjI2OCAwLjYzNi0wLjI2OCAxIDAgMS4xMDUgMC44OTUgMiAyIDJzMi0wLjg5NSAyLTJjMC0wLjM2NC0wLjA5OC0wLjcwNi0wLjI2OC0xaDEuMjY4di0zek0xMSA5di0zaDIuMDczbDEuNSAzaC0zLjU3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE2aDVsLTQtMTZoLTNsMC41IDRoLTNsMC41LTRoLTNsLTQgMTZoNWwwLjUtNGg1bDAuNSA0ek01Ljc1IDEwbDAuNS00aDMuNWwwLjUgNGgtNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFjY2Vzc2liaWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDEuNWMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDVsNS4xNS0yLjIyMS0wLjM3MS0wLjkyOS02LjI3OSAyLjE1aC0xbC02LjI3OS0yLjE1LTAuMzcxIDAuOTI5IDUuMTUgMi4yMjF2NGwtMi4wNTEgNi42MzQgMC45MzUgMC4zNTUgMi45MDItNi40ODloMC40MjlsMi45MDIgNi40ODkgMC45MzUtMC4zNTUtMi4wNTEtNi42MzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVGFyZ2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDdoLTEuNTc3Yy0wLjQzMi0yLjc4NS0yLjYzOC00Ljk5MS01LjQyMy01LjQyM3YtMS41NzdoLTJ2MS41NzdjLTIuNzg1IDAuNDMyLTQuOTkxIDIuNjM4LTUuNDIzIDUuNDIzaC0xLjU3N3YyaDEuNTc3YzAuNDMyIDIuNzg1IDIuNjM4IDQuOTkxIDUuNDIzIDUuNDIzdjEuNTc3aDJ2LTEuNTc3YzIuNzg1LTAuNDMyIDQuOTkxLTIuNjM4IDUuNDIzLTUuNDIzaDEuNTc3di0yek0xMi4zODggN2gtMS41NTljLTAuMzAxLTAuODUyLTAuOTc3LTEuNTI4LTEuODI5LTEuODI5di0xLjU1OWMxLjY4IDAuMzgzIDMuMDA1IDEuNzA4IDMuMzg4IDMuMzg4ek04IDljLTAuNTUyIDAtMS0wLjQ0OC0xLTFzMC40NDgtMSAxLTFjMC41NTIgMCAxIDAuNDQ4IDEgMXMtMC40NDggMS0xIDF6TTcgMy42MTJ2MS41NTljLTAuODUyIDAuMzAxLTEuNTI4IDAuOTc3LTEuODI5IDEuODI5aC0xLjU1OWMwLjM4My0xLjY4IDEuNzA4LTMuMDA1IDMuMzg4LTMuMzg4ek0zLjYxMiA5aDEuNTU5YzAuMzAxIDAuODUyIDAuOTc3IDEuNTI4IDEuODI5IDEuODI5djEuNTU5Yy0xLjY4LTAuMzgzLTMuMDA1LTEuNzA4LTMuMzg4LTMuMzg4ek05IDEyLjM4OHYtMS41NTljMC44NTItMC4zMDEgMS41MjgtMC45NzcgMS44MjktMS44MjloMS41NTljLTAuMzgzIDEuNjgtMS43MDggMy4wMDUtMy4zODggMy4zODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDBsLTcgMi03LTJjMCAwLTAuMDcwIDAuODA4IDAgMmw3IDIuMTg5IDctMi4xODljMC4wNzAtMS4xOTIgMC0yIDAtMnpNMS4xMjggMy4wNDljMC4zNzUgMy45MTcgMS43NzMgMTAuNTA0IDYuODcyIDEyLjk1MSA1LjA5OS0yLjQ0OCA2LjQ5Ny05LjAzNCA2Ljg3Mi0xMi45NTFsLTYuODcyIDIuNTg0LTYuODcyLTIuNTg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMGwtNiA4aDZsLTQgOCAxNC0xMGgtOGw2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3dpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDIuMjl2Mi4xMjRjMC41NjYgMC4yNDcgMS4wODYgMC42IDEuNTM2IDEuMDUwIDAuOTQ0IDAuOTQ0IDEuNDY0IDIuMiAxLjQ2NCAzLjUzNnMtMC41MiAyLjU5MS0xLjQ2NCAzLjUzNmMtMC45NDQgMC45NDQtMi4yIDEuNDY0LTMuNTM2IDEuNDY0cy0yLjU5MS0wLjUyLTMuNTM2LTEuNDY0Yy0wLjk0NC0wLjk0NC0xLjQ2NC0yLjItMS40NjQtMy41MzZzMC41Mi0yLjU5MSAxLjQ2NC0zLjUzNmMwLjQ1LTAuNDUgMC45Ny0wLjgwMyAxLjUzNi0xLjA1MHYtMi4xMjRjLTIuODkxIDAuODYxLTUgMy41MzktNSA2LjcxIDAgMy44NjYgMy4xMzQgNyA3IDdzNy0zLjEzNCA3LTdjMC0zLjE3MS0yLjEwOS01Ljg0OS01LTYuNzF6TTcgMGgydjhoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUG93ZXJDb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDQuNDE0bC0xLjQxNC0xLjQxNC0yLjc5MyAyLjc5My0xLjU4Ni0xLjU4NiAyLjc5My0yLjc5My0xLjQxNC0xLjQxNC0yLjc5MyAyLjc5My0xLjc5My0xLjc5My0xLjM1NCAxLjM1MyA4IDggMS4zNTQtMS4zNTMtMS43OTMtMS43OTMgMi43OTMtMi43OTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNDA3IDEwLjUyOGwtNi45MzUtNi45MzVjLTEuNDk3IDEuNzk1LTMuMTk2IDQuNTctMi4wMjIgNi45NTdsLTIuMDY2IDIuMDY2Yy0wLjQ4NiAwLjQ4Ni0wLjQ4NiAxLjI4MiAwIDEuNzY4bDAuMjMyIDAuMjMyYzAuNDg2IDAuNDg2IDEuMjgyIDAuNDg2IDEuNzY4IDBsMi4wNjYtMi4wNjZjMi4zODcgMS4xNzQgNS4xNjEtMC41MjQgNi45NTctMi4wMjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2xpcGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMmgtNC41YzAtMS4xMDUtMC44OTUtMi0yLTJzLTIgMC44OTUtMiAyaC00LjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjV2MTNjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgxM2MwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di0xM2MwLTAuMjc2LTAuMjI0LTAuNS0wLjUtMC41ek04IDFjMC41NTIgMCAxIDAuNDQ4IDEgMXMtMC40NDggMS0xIDFjLTAuNTUyIDAtMS0wLjQ0OC0xLTFzMC40NDgtMSAxLTF6TTE0IDE1aC0xMnYtMTJoMnYxLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWg3YzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjV2LTEuNWgydjEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTMuNDE0bC0zLjIwNy0zLjcwNyAwLjkxNC0wLjkxNCAyLjI5MyAxLjc5MyA0LjI5My0zLjc5MyAwLjkxNCAwLjkxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MaXN0TnVtYmVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2gxMHYyaC0xMHpNNiA3aDEwdjJoLTEwek02IDFoMTB2MmgtMTB6TTMgMHY0aC0xdi0zaC0xdi0xek0yIDguMjE5djAuNzgxaDJ2MWgtM3YtMi4yODFsMi0wLjkzOHYtMC43ODFoLTJ2LTFoM3YyLjI4MXpNNCAxMXY1aC0zdi0xaDJ2LTFoLTJ2LTFoMnYtMWgtMnYtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGg0djRoLTR6TTYgMWgxMHYyaC0xMHpNMCA2aDR2NGgtNHpNNiA3aDEwdjJoLTEwek0wIDEyaDR2NGgtNHpNNiAxM2gxMHYyaC0xMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MaXN0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDFoMTB2MmgtMTB2LTJ6TTYgN2gxMHYyaC0xMHYtMnpNNiAxM2gxMHYyaC0xMHYtMnpNMCAyYzAtMS4xMDUgMC44OTUtMiAyLTJzMiAwLjg5NSAyIDJjMCAxLjEwNS0wLjg5NSAyLTIgMnMtMi0wLjg5NS0yLTJ6TTAgOGMwLTEuMTA1IDAuODk1LTIgMi0yczIgMC44OTUgMiAyYzAgMS4xMDUtMC44OTUgMi0yIDJzLTItMC44OTUtMi0yek0wIDE0YzAtMS4xMDUgMC44OTUtMiAyLTJzMiAwLjg5NSAyIDJjMCAxLjEwNS0wLjg5NSAyLTIgMnMtMi0wLjg5NS0yLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4yNSAxMmgtMC4yNXYtMy4yNWMwLTAuOTY1LTAuNzg1LTEuNzUtMS43NS0xLjc1aC00LjI1di0yaDAuMjVjMC40MTIgMCAwLjc1LTAuMzM4IDAuNzUtMC43NXYtMi41YzAtMC40MTMtMC4zMzgtMC43NS0wLjc1LTAuNzVoLTIuNWMtMC40MTIgMC0wLjc1IDAuMzM3LTAuNzUgMC43NXYyLjVjMCAwLjQxMiAwLjMzOCAwLjc1IDAuNzUgMC43NWgwLjI1djJoLTQuMjVjLTAuOTY1IDAtMS43NSAwLjc4NS0xLjc1IDEuNzV2My4yNWgtMC4yNWMtMC40MTIgMC0wLjc1IDAuMzM4LTAuNzUgMC43NXYyLjVjMCAwLjQxMiAwLjMzOCAwLjc1IDAuNzUgMC43NWgyLjVjMC40MTMgMCAwLjc1LTAuMzM4IDAuNzUtMC43NXYtMi41YzAtMC40MTItMC4zMzctMC43NS0wLjc1LTAuNzVoLTAuMjV2LTNoNHYzaC0wLjI1Yy0wLjQxMiAwLTAuNzUgMC4zMzgtMC43NSAwLjc1djIuNWMwIDAuNDEyIDAuMzM4IDAuNzUgMC43NSAwLjc1aDIuNWMwLjQxMiAwIDAuNzUtMC4zMzggMC43NS0wLjc1di0yLjVjMC0wLjQxMi0wLjMzOC0wLjc1LTAuNzUtMC43NWgtMC4yNXYtM2g0djNoLTAuMjVjLTAuNDEyIDAtMC43NSAwLjMzOC0wLjc1IDAuNzV2Mi41YzAgMC40MTIgMC4zMzggMC43NSAwLjc1IDAuNzVoMi41YzAuNDEyIDAgMC43NS0wLjMzOCAwLjc1LTAuNzV2LTIuNWMwLTAuNDEyLTAuMzM4LTAuNzUtMC43NS0wLjc1ek0zIDE1aC0ydi0yaDJ2MnpNOSAxNWgtMnYtMmgydjJ6TTcgNHYtMmgydjJoLTJ6TTE1IDE1aC0ydi0yaDJ2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NZW51IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgM2gxNHYzaC0xNHpNMSA3aDE0djNoLTE0ek0xIDExaDE0djNoLTE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1lbnUyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDIyIDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgM2gxNHYzaC0xNHYtM3pNMCA3aDE0djNoLTE0di0zek0wIDExaDE0djNoLTE0di0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgOWwzIDMgMy0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjUgOGwtMy0zLTMgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NZW51MyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAyMiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDNoMTR2M2gtMTR2LTN6TTAgN2gxNHYzaC0xNHYtM3pNMCAxMWgxNHYzaC0xNHYtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDdsMyAzIDMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NZW51NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAyMiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDNoMTR2M2gtMTR2LTN6TTAgN2gxNHYzaC0xNHYtM3pNMCAxMWgxNHYzaC0xNHYtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDEwbDMtMyAzIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTAuMjc0YzAtMS4yODMtMC44ODYtMi4zNTgtMi4wNzgtMi42NDgtMC4wNTEtMi4wMTEtMS42OTUtMy42MjYtMy43MTctMy42MjYtMS4xODQgMC0yLjIzOSAwLjU1NS0yLjkyIDEuNDE4LTAuMzgyLTAuNDk0LTAuOTgtMC44MTItMS42NTItMC44MTItMS4xNTMgMC0yLjA4OCAwLjkzNi0yLjA4OCAyLjA4OSAwIDAuMTAxIDAuMDA3IDAuMTk5IDAuMDIxIDAuMjk2LTAuMTc1LTAuMDMyLTAuMzU2LTAuMDQ5LTAuNTQtMC4wNDktMS42NzItMC0zLjAyNyAxLjM1Ni0zLjAyNyAzLjAyOXMxLjM1NSAzLjAyOSAzLjAyNyAzLjAyOWwxMC4yNTQtMGMxLjUwMi0wLjAwMyAyLjcxOS0xLjIyMiAyLjcxOS0yLjcyNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DbG91ZERvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkyMiA1LjYyNmMtMC4wNTEtMi4wMTEtMS42OTUtMy42MjYtMy43MTctMy42MjYtMS4xODQgMC0yLjIzOSAwLjU1NS0yLjkyIDEuNDE4LTAuMzgyLTAuNDk0LTAuOTgtMC44MTItMS42NTItMC44MTItMS4xNTMgMC0yLjA4OCAwLjkzNi0yLjA4OCAyLjA4OSAwIDAuMTAxIDAuMDA3IDAuMTk5IDAuMDIxIDAuMjk2LTAuMTc1LTAuMDMyLTAuMzU2LTAuMDQ5LTAuNTQtMC4wNDktMS42NzItMC0zLjAyNyAxLjM1Ni0zLjAyNyAzLjAyOXMxLjM1NSAzLjAyOSAzLjAyNyAzLjAyOWgxLjQzNGwzLjUzOSAzLjY2NCAzLjUzOS0zLjY2NCAxLjc0Mi0wYzEuNTAyLTAuMDAzIDIuNzE5LTEuMjIyIDIuNzE5LTIuNzI2IDAtMS4yODMtMC44ODYtMi4zNTgtMi4wNzgtMi42NDh6TTggMTNsLTMtM2gydi0zaDJ2M2gybC0zIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2xvdWRVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTQyIDYuMDM5YzAuMDM4LTAuMTc0IDAuMDU4LTAuMzU0IDAuMDU4LTAuNTM5IDAtMS4zODEtMS4xMTktMi41LTIuNS0yLjUtMC4yMjIgMC0wLjQzOCAwLjAyOS0wLjY0MyAwLjA4NC0wLjM4Ny0xLjIwOS0xLjUyLTIuMDg0LTIuODU3LTIuMDg0LTEuMzY1IDAtMi41MTYgMC45MTEtMi44OCAyLjE1OS0wLjM1NS0wLjEwMy0wLjczMS0wLjE1OS0xLjEyLTAuMTU5LTIuMjA5IDAtNCAxLjc5MS00IDRzMS43OTEgNCA0IDRoMnYzaDR2LTNoMy41YzEuMzgxIDAgMi41LTEuMTE5IDIuNS0yLjUgMC0xLjIzLTAuODg4LTIuMjUzLTIuMDU4LTIuNDYxek05IDEwdjNoLTJ2LTNoLTIuNWwzLjUtMy41IDMuNSAzLjVoLTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DbG91ZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjk0MiA4LjAzOWMwLjAzOC0wLjE3NCAwLjA1OC0wLjM1NCAwLjA1OC0wLjUzOSAwLTEuMzgxLTEuMTE5LTIuNS0yLjUtMi41LTAuMjIyIDAtMC40MzggMC4wMjktMC42NDMgMC4wODQtMC4zODctMS4yMDktMS41Mi0yLjA4NC0yLjg1Ny0yLjA4NC0xLjM2NSAwLTIuNTE2IDAuOTExLTIuODggMi4xNTktMC4zNTUtMC4xMDMtMC43MzEtMC4xNTktMS4xMi0wLjE1OS0yLjIwOSAwLTQgMS43OTEtNCA0czEuNzkxIDQgNCA0aDkuNWMxLjM4MSAwIDIuNS0xLjExOSAyLjUtMi41IDAtMS4yMy0wLjg4OC0yLjI1Mi0yLjA1OC0yLjQ2MXpNNi41IDEybC0yLjUtMi41IDEtMSAxLjUgMS41IDMuNS0zLjUgMSAxLTQuNSA0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRG93bmxvYWQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDhoLTIuNWwtMy41IDMuNS0zLjUtMy41aC0yLjVsLTIgNHYxaDE2di0xbC0yLTR6TTAgMTRoMTZ2MWgtMTZ2LTF6TTkgNXYtNGgtMnY0aC0zLjVsNC41IDQuNSA0LjUtNC41aC0zLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVXBsb2FkMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE0aDE2djFoLTE2ek0xNiAxMnYxaC0xNnYtMWwyLTRoNHYyaDR2LTJoNHpNMy41IDVsNC41LTQuNSA0LjUgNC41aC0zLjV2NGgtMnYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Eb3dubG9hZDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA3bC00IDQtNC00aDIuNXYtNmgzdjZ6TTcuNSAxMWgtNy41djRoMTV2LTRoLTcuNXpNMTQgMTNoLTJ2LTFoMnYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVVwbG9hZDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDExaC03LjV2NGgxNXYtNGgtNy41ek0xNCAxM2gtMnYtMWgydjF6TTMuNSA1bDQtNCA0IDRoLTIuNXY1aC0zdi01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNwaGVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMWMtNC4xNDIgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1OCA3LjUgNy41IDcuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNXpNMTEuNzQ0IDExYzAuMTM0LTAuNjMyIDAuMjE5LTEuMzAzIDAuMjQ2LTJoMS45OTFjLTAuMDUyIDAuNjkxLTAuMjEzIDEuMzYxLTAuNDc5IDJoLTEuNzU4ek0zLjI1NiA2Yy0wLjEzNCAwLjYzMi0wLjIxOSAxLjMwMy0wLjI0NiAyaC0xLjk5MWMwLjA1Mi0wLjY5MSAwLjIxMy0xLjM2MSAwLjQ3OS0yaDEuNzU4ek0xMC43MTkgNmMwLjE1IDAuNjQgMC4yNDEgMS4zMSAwLjI3IDJoLTIuOTg5di0yaDIuNzE5ek04IDV2LTIuOTI3YzAuMjI4IDAuMDY2IDAuNDU0IDAuMTc4IDAuNjc1IDAuMzM0IDAuNDE1IDAuMjkzIDAuODEzIDAuNzQ0IDEuMTQ5IDEuMzA0IDAuMjMzIDAuMzg4IDAuNDM0IDAuODE5IDAuNjAxIDEuMjg5aC0yLjQyNnpNNS4xNzYgMy43MTFjMC4zMzYtMC41NjEgMC43MzQtMS4wMTIgMS4xNDktMS4zMDQgMC4yMjItMC4xNTYgMC40NDctMC4yNjggMC42NzUtMC4zMzR2Mi45MjdoLTIuNDI2YzAuMTY4LTAuNDcgMC4zNjktMC45MDEgMC42MDEtMS4yODl6TTcgNnYyaC0yLjk4OWMwLjAyOS0wLjY5IDAuMTItMS4zNiAwLjI3LTJoMi43MTl6TTEuNDk4IDExYy0wLjI2Ni0wLjYzOS0wLjQyNy0xLjMwOS0wLjQ3OS0yaDEuOTkxYzAuMDI4IDAuNjk3IDAuMTEyIDEuMzY4IDAuMjQ2IDJoLTEuNzU4ek00LjAxMSA5aDIuOTg5djJoLTIuNzE5Yy0wLjE1LTAuNjQtMC4yNDEtMS4zMS0wLjI3LTJ6TTcgMTJ2Mi45MjdjLTAuMjI4LTAuMDY2LTAuNDU0LTAuMTc4LTAuNjc1LTAuMzM0LTAuNDE1LTAuMjkzLTAuODEzLTAuNzQ0LTEuMTQ5LTEuMzA0LTAuMjMzLTAuMzg4LTAuNDM0LTAuODE5LTAuNjAyLTEuMjg5aDIuNDI2ek05LjgyNSAxMy4yODljLTAuMzM2IDAuNTYxLTAuNzM0IDEuMDEyLTEuMTQ5IDEuMzA0LTAuMjIyIDAuMTU2LTAuNDQ3IDAuMjY4LTAuNjc1IDAuMzM0di0yLjkyN2gyLjQyNmMtMC4xNjggMC40Ny0wLjM2OSAwLjkwMS0wLjYwMiAxLjI4OXpNOCAxMXYtMmgyLjk4OWMtMC4wMjkgMC42OS0wLjEyIDEuMzYtMC4yNyAyaC0yLjcxOXpNMTEuOTkgOGMtMC4wMjgtMC42OTctMC4xMTItMS4zNjgtMC4yNDYtMmgxLjc1OGMwLjI2NyAwLjYzOSAwLjQyNyAxLjMwOSAwLjQ3OSAyaC0xLjk5MXpNMTIuOTc5IDVoLTEuNDk4Yy0wLjI5MS0wLjkxOC0wLjY5My0xLjcyMy0xLjE3Ny0yLjM2NiAwLjY2NSAwLjMxOCAxLjI2NyAwLjc0NCAxLjc5MiAxLjI3IDAuMzM2IDAuMzM2IDAuNjMxIDAuNzAyIDAuODgzIDEuMDk2ek0yLjkwNCAzLjkwNGMwLjUyNi0wLjUyNiAxLjEyOC0wLjk1MiAxLjc5Mi0xLjI3LTAuNDgzIDAuNjQzLTAuODg2IDEuNDQ4LTEuMTc3IDIuMzY2aC0xLjQ5OGMwLjI1Mi0wLjM5NCAwLjU0Ny0wLjc2MSAwLjg4My0xLjA5NnpNMi4wMjEgMTJoMS40OThjMC4yOTEgMC45MTggMC42OTMgMS43MjMgMS4xNzcgMi4zNjYtMC42NjUtMC4zMTgtMS4yNjctMC43NDQtMS43OTItMS4yNy0wLjMzNi0wLjMzNi0wLjYzMS0wLjcwMi0wLjg4My0xLjA5NnpNMTIuMDk2IDEzLjA5NmMtMC41MjYgMC41MjYtMS4xMjggMC45NTItMS43OTIgMS4yNyAwLjQ4My0wLjY0MyAwLjg4Ni0xLjQ0OCAxLjE3Ny0yLjM2NmgxLjQ5OGMtMC4yNTIgMC4zOTQtMC41NDcgMC43NjEtMC44ODMgMS4wOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRWFydGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDE1Yy0wLjk4NCAwLTEuOTItMC4yMDMtMi43NjktMC41N2wzLjY0My00LjA5OGMwLjA4MS0wLjA5MiAwLjEyNi0wLjIxIDAuMTI2LTAuMzMydi0xLjVjMC0wLjI3Ni0wLjIyNC0wLjUtMC41LTAuNS0xLjc2NSAwLTMuNjI4LTEuODM1LTMuNjQ2LTEuODU0LTAuMDk0LTAuMDk0LTAuMjIxLTAuMTQ2LTAuMzU0LTAuMTQ2aC0yYy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41djNjMCAwLjE4OSAwLjEwNyAwLjM2MyAwLjI3NiAwLjQ0N2wxLjcyNCAwLjg2MnYyLjkzNmMtMS44MTMtMS4yNjUtMy0zLjM2Ni0zLTUuNzQ1IDAtMS4wNzQgMC4yNDItMi4wOTEgMC42NzQtM2gxLjgyNmMwLjEzMyAwIDAuMjYtMC4wNTMgMC4zNTQtMC4xNDZsMi0yYzAuMDk0LTAuMDk0IDAuMTQ2LTAuMjIxIDAuMTQ2LTAuMzU0di0xLjIxYzAuNjM0LTAuMTg5IDEuMzA1LTAuMjkgMi0wLjI5IDEuMSAwIDIuMTQxIDAuMjU0IDMuMDY3IDAuNzA2LTAuMDY1IDAuMDU1LTAuMTI4IDAuMTEyLTAuMTg4IDAuMTcyLTAuNTY3IDAuNTY3LTAuODc5IDEuMzItMC44NzkgMi4xMjFzMC4zMTIgMS41NTUgMC44NzkgMi4xMjFjMC41NjkgMC41NjkgMS4zMzIgMC44NzkgMi4xMTkgMC44NzkgMC4wNDkgMCAwLjA5OS0wLjAwMSAwLjE0OS0wLjAwNCAwLjIxNiAwLjgwOSAwLjYwNSAyLjkxNy0wLjEzMSA1LjgxOC0wLjAwNyAwLjAyNy0wLjAxMSAwLjA1NS0wLjAxMyAwLjA4Mi0xLjI3MSAxLjI5OC0zLjA0MiAyLjEwNC01LjAwMiAyLjEwNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODc5IDkuOTM0Yy0wLjIwOCAwLTAuNDE2LTAuMDc5LTAuNTc1LTAuMjM4LTEuNDg2LTEuNDg2LTEuNDg2LTMuOTA1IDAtNS4zOTJsMy0zYzAuNzItMC43MiAxLjY3OC0xLjExNyAyLjY5Ni0xLjExN3MxLjk3NiAwLjM5NyAyLjY5NiAxLjExN2MxLjQ4NiAxLjQ4NyAxLjQ4NiAzLjkwNSAwIDUuMzkybC0xLjM3MSAxLjM3MWMtMC4zMTcgMC4zMTctMC44MzIgMC4zMTctMS4xNDkgMHMtMC4zMTctMC44MzIgMC0xLjE0OWwxLjM3MS0xLjM3MWMwLjg1My0wLjg1MyAwLjg1My0yLjI0MSAwLTMuMDk0LTAuNDEzLTAuNDEzLTAuOTYzLTAuNjQxLTEuNTQ3LTAuNjQxcy0xLjEzNCAwLjIyOC0xLjU0NyAwLjY0MWwtMyAzYy0wLjg1MyAwLjg1My0wLjg1MyAyLjI0MSAwIDMuMDk0IDAuMzE3IDAuMzE3IDAuMzE3IDAuODMyIDAgMS4xNDktMC4xNTkgMC4xNTktMC4zNjcgMC4yMzgtMC41NzUgMC4yMzh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNS44MTNjLTEuMDE4IDAtMS45NzYtMC4zOTctMi42OTYtMS4xMTctMS40ODYtMS40ODYtMS40ODYtMy45MDUgMC01LjM5MmwxLjM3MS0xLjM3MWMwLjMxNy0wLjMxNyAwLjgzMi0wLjMxNyAxLjE0OSAwczAuMzE3IDAuODMyIDAgMS4xNDlsLTEuMzcxIDEuMzcxYy0wLjg1MyAwLjg1My0wLjg1MyAyLjI0MSAwIDMuMDk0IDAuNDEzIDAuNDEzIDAuOTYyIDAuNjQxIDEuNTQ3IDAuNjQxczEuMTM0LTAuMjI4IDEuNTQ3LTAuNjQxbDMtM2MwLjg1My0wLjg1MyAwLjg1My0yLjI0MSAwLTMuMDk0LTAuMzE3LTAuMzE3LTAuMzE3LTAuODMyIDAtMS4xNDlzMC44MzItMC4zMTcgMS4xNDkgMGMxLjQ4NiAxLjQ4NiAxLjQ4NiAzLjkwNSAwIDUuMzkybC0zIDNjLTAuNzIgMC43Mi0xLjY3OCAxLjExNy0yLjY5NiAxLjExN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgydjE2aC0ydi0xNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMC4wNDdjMS4yOTEgMCAyLjQxNS0wLjMxMiAzLTAuNzczdi04Yy0wLjU4NSAwLjQ2MS0xLjcwOSAwLjc3My0zIDAuNzczcy0yLjQxNS0wLjMxMi0zLTAuNzczdjhjMC41ODUgMC40NjEgMS43MDkgMC43NzMgMyAwLjc3M3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMC41MDhjLTAuNzMzLTAuMzEyLTEuODA1LTAuNTA4LTMtMC41MDgtMS41MDYgMC0yLjgxOCAwLjMxMi0zLjUgMC43NzN2OGMwLjY4Mi0wLjQ2MSAxLjk5NC0wLjc3MyAzLjUtMC43NzMgMS4xOTUgMCAyLjI2NyAwLjE5NyAzIDAuNTA4di04elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUF0dGFjaG1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNDA0IDUuMTFsLTEuMDE1LTEuMDE0LTUuMDc1IDUuMDc0Yy0wLjg0MSAwLjg0MS0wLjg0MSAyLjIwNCAwIDMuMDQ0czIuMjA0IDAuODQxIDMuMDQ1IDBsNi4wOTAtNi4wODljMS40MDItMS40MDEgMS40MDItMy42NzMgMC01LjA3NHMtMy42NzQtMS40MDItNS4wNzUgMGwtNi4zOTQgNi4zOTNjLTAuMDA1IDAuMDA1LTAuMDEwIDAuMDA5LTAuMDE0IDAuMDEzLTEuOTU1IDEuOTU1LTEuOTU1IDUuMTIzIDAgNy4wNzdzNS4xMjMgMS45NTQgNy4wNzggMGMwLjAwNC0wLjAwNCAwLjAwOC0wLjAwOSAwLjAxMy0wLjAxNGwwLjAwMSAwLjAwMSA0LjM2NS00LjM2NC0xLjAxNS0xLjAxNC00LjM2NSA0LjM2M2MtMC4wMDUgMC4wMDQtMC4wMDkgMC4wMDktMC4wMTMgMC4wMTMtMS4zOTIgMS4zOTItMy42NTYgMS4zOTItNS4wNDggMHMtMS4zOTItMy42NTUgMC01LjA0N2MwLjAwNS0wLjAwNSAwLjAwOS0wLjAwOSAwLjAxNC0wLjAxM2wtMC4wMDEtMC4wMDEgNi4zOTUtNi4zOTNjMC44MzktMC44NCAyLjIwNS0wLjg0IDMuMDQ1IDBzMC44MzkgMi4yMDUgMCAzLjA0NGwtNi4wOTAgNi4wODljLTAuMjggMC4yOC0wLjczNSAwLjI4LTEuMDE1IDBzLTAuMjgtMC43MzUgMC0xLjAxNGw1LjA3NS01LjA3NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1FeWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAzYy0zLjQ4OSAwLTYuNTE0IDIuMDMyLTggNSAxLjQ4NiAyLjk2OCA0LjUxMSA1IDggNXM2LjUxNC0yLjAzMiA4LTVjLTEuNDg2LTIuOTY4LTQuNTExLTUtOC01ek0xMS45NDUgNS42NTJjMC45NCAwLjYgMS43MzcgMS40MDMgMi4zMzUgMi4zNDgtMC41OTggMC45NDYtMS4zOTUgMS43NDktMi4zMzUgMi4zNDgtMS4xODEgMC43NTMtMi41NDUgMS4xNTItMy45NDQgMS4xNTJzLTIuNzYzLTAuMzk4LTMuOTQ1LTEuMTUyYy0wLjk0LTAuNi0xLjczNy0xLjQwMy0yLjMzNS0yLjM0OCAwLjU5OC0wLjk0NiAxLjM5NS0xLjc0OSAyLjMzNS0yLjM0OCAwLjA2MS0wLjAzOSAwLjEyMy0wLjA3NyAwLjE4NS0wLjExNC0wLjE1NiAwLjQyNy0wLjI0MSAwLjg4OC0wLjI0MSAxLjM2OSAwIDIuMjA5IDEuNzkxIDQgNCA0czQtMS43OTEgNC00YzAtMC40ODEtMC4wODUtMC45NDItMC4yNDEtMS4zNjkgMC4wNjIgMC4wMzcgMC4xMjQgMC4wNzUgMC4xODUgMC4xMTR2MHpNOCA2LjVjMCAwLjgyOC0wLjY3MiAxLjUtMS41IDEuNXMtMS41LTAuNjcyLTEuNS0xLjUgMC42NzItMS41IDEuNS0xLjUgMS41IDAuNjcyIDEuNSAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRXllUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyaC0ydi0yaC0ydjJoLTJ2MmgydjJoMnYtMmgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjQ5OCA2Ljk2OWMwLjI4OCAwLjMyIDAuNTUgMC42NjUgMC43ODIgMS4wMzEtMC41OTggMC45NDYtMS4zOTUgMS43NDktMi4zMzUgMi4zNDgtMS4xODEgMC43NTMtMi41NDUgMS4xNTItMy45NDQgMS4xNTJzLTIuNzYzLTAuMzk4LTMuOTQ1LTEuMTUyYy0wLjk0LTAuNi0xLjczNi0xLjQwMy0yLjMzNS0yLjM0OCAwLjU5OC0wLjk0NiAxLjM5NS0xLjc0OSAyLjMzNS0yLjM0OCAwLjA2MS0wLjAzOSAwLjEyMy0wLjA3NyAwLjE4NS0wLjExNC0wLjE1NiAwLjQyNy0wLjI0MSAwLjg4OC0wLjI0MSAxLjM2OSAwIDIuMjA5IDEuNzkxIDQgNCA0czQtMS43OTEgNC00YzAtMC4wMTEtMC0wLjAyMi0wLTAuMDMyLTEuNzA4LTAuNDQtMi45NzMtMS45NzktMi45OTktMy44MTctMC4zMjktMC4wMzctMC42NjItMC4wNTctMS4wMDEtMC4wNTctMy40ODkgMC02LjUxNCAyLjAzMi04IDUgMS40ODYgMi45NjggNC41MTEgNSA4IDVzNi41MTQtMi4wMzIgOC01Yy0wLjI3Ni0wLjU1LTAuNjA0LTEuMDY5LTAuOTc5LTEuNTQ4LTAuNDU3IDAuMjY4LTAuOTczIDAuNDQ5LTEuNTIzIDAuNTE3ek02LjUgNWMwLjgyOCAwIDEuNSAwLjY3MiAxLjUgMS41cy0wLjY3MiAxLjUtMS41IDEuNS0xLjUtMC42NzItMS41LTEuNSAwLjY3Mi0xLjUgMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1FeWVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyaDZ2MmgtNnYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41OTkgNWgtNC41OTl2LTEuOTQ0Yy0wLjMyOC0wLjAzNy0wLjY2Mi0wLjA1Ni0xLTAuMDU2LTMuNDg5IDAtNi41MTQgMi4wMzItOCA1IDEuNDg2IDIuOTY4IDQuNTExIDUgOCA1czYuNTE0LTIuMDMyIDgtNWMtMC41ODQtMS4xNjctMS40MDctMi4xODktMi40MDEtM3pNNi41IDVjMC44MjggMCAxLjUgMC42NzIgMS41IDEuNXMtMC42NzIgMS41LTEuNSAxLjUtMS41LTAuNjcyLTEuNS0xLjUgMC42NzItMS41IDEuNS0xLjV6TTExLjk0NCAxMC4zNDhjLTEuMTgxIDAuNzUzLTIuNTQ1IDEuMTUyLTMuOTQ0IDEuMTUycy0yLjc2My0wLjM5OC0zLjk0NS0xLjE1MmMtMC45NC0wLjYtMS43MzYtMS40MDMtMi4zMzUtMi4zNDggMC41OTgtMC45NDYgMS4zOTUtMS43NDkgMi4zMzUtMi4zNDggMC4wNjEtMC4wMzkgMC4xMjMtMC4wNzcgMC4xODUtMC4xMTQtMC4xNTYgMC40MjctMC4yNDEgMC44ODgtMC4yNDEgMS4zNjkgMCAyLjIwOSAxLjc5MSA0IDQgNHM0LTEuNzkxIDQtNGMwLTAuNDgxLTAuMDg1LTAuOTQyLTAuMjQxLTEuMzY5IDAuMDYyIDAuMDM3IDAuMTI0IDAuMDc1IDAuMTg1IDAuMTE0IDAuOTQgMC42IDEuNzM3IDEuNDAzIDIuMzM1IDIuMzQ4LTAuNTk4IDAuOTQ2LTEuMzk1IDEuNzQ5LTIuMzM1IDIuMzQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUV5ZUJsb2NrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzggMC4yMmMtMC4yOTMtMC4yOTMtMC43NjgtMC4yOTMtMS4wNjEgMGwtMy4xNTkgMy4xNTljLTAuODEyLTAuMjQ2LTEuNjcxLTAuMzc4LTIuNTYxLTAuMzc4LTMuNDg5IDAtNi41MTQgMi4wMzItOCA1IDAuNjQzIDEuMjgzIDEuNTczIDIuMzkxIDIuNzAzIDMuMjM2bC0yLjQ4NCAyLjQ4NGMtMC4yOTMgMC4yOTMtMC4yOTMgMC43NjggMCAxLjA2MSAwLjE0NiAwLjE0NiAwLjMzOCAwLjIyIDAuNTMgMC4yMnMwLjM4NC0wLjA3MyAwLjUzLTAuMjJsMTMuNS0xMy41YzAuMjkzLTAuMjkzIDAuMjkzLTAuNzY4IDAtMS4wNjF6TTYuNSA1YzAuNjYgMCAxLjIyIDAuNDI2IDEuNDIxIDEuMDE5bC0xLjkwMiAxLjkwMmMtMC41OTItMC4yMDEtMS4wMTktMC43NjEtMS4wMTktMS40MjEgMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXpNMS43MjEgOGMwLjU5OC0wLjk0NiAxLjM5NS0xLjc0OSAyLjMzNS0yLjM0OCAwLjA2MS0wLjAzOSAwLjEyMy0wLjA3NyAwLjE4NS0wLjExNC0wLjE1NiAwLjQyNy0wLjI0MSAwLjg4OC0wLjI0MSAxLjM2OSAwIDAuODU4IDAuMjcgMS42NTIgMC43MyAyLjMwM2wtMC45NTIgMC45NTJjLTAuODE5LTAuNTc2LTEuNTE5LTEuMzExLTIuMDU3LTIuMTYyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDYuOTA2YzAtMC40MjQtMC4wNjYtMC44MzMtMC4xODktMS4yMTdsLTUuMDI4IDUuMDI4YzAuMzg0IDAuMTIzIDAuNzkzIDAuMTg5IDEuMjE3IDAuMTg5IDIuMjA5IDAgNC0xLjc5MSA0LTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTY5IDQuNTMxbC0xLjA4NCAxLjA4NGMwLjAyMCAwLjAxMiAwLjA0MCAwLjAyNCAwLjA1OSAwLjAzNyAwLjk0IDAuNiAxLjczNyAxLjQwMyAyLjMzNSAyLjM0OC0wLjU5OCAwLjk0Ni0xLjM5NSAxLjc0OS0yLjMzNSAyLjM0OC0xLjE4MSAwLjc1My0yLjU0NSAxLjE1Mi0zLjk0NCAxLjE1Mi0wLjYwNCAwLTEuMjAyLTAuMDc0LTEuNzgxLTAuMjE5bC0xLjIwMSAxLjIwMWMwLjkzMyAwLjMzNSAxLjkzNyAwLjUxOCAyLjk4MiAwLjUxOCAzLjQ4OSAwIDYuNTE0LTIuMDMyIDgtNS0wLjcwMy0xLjQwNS0xLjc1Mi0yLjYtMy4wMzEtMy40Njl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAwdjE2bDUtNSA1IDV2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJvb2ttYXJrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDJ2MTRsNS01IDUgNXYtMTR6TTEyIDBoLTEwdjE0bDEtMXYtMTJoOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxM2MwLjU1MiAwIDEgMC40NDggMSAxdjFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF2LTFjMC0wLjU1MiAwLjQ0OC0xIDEtMXpNOCAzYy0wLjU1MiAwLTEtMC40NDgtMS0xdi0xYzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDF2MWMwIDAuNTUyLTAuNDQ4IDEtMSAxek0xNSA3YzAuNTUyIDAgMSAwLjQ0OCAxIDFzLTAuNDQ4IDEtMSAxaC0xYy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xaDF6TTMgOGMwIDAuNTUyLTAuNDQ4IDEtMSAxaC0xYy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xaDFjMC41NTIgMCAxIDAuNDQ4IDEgMXpNMTIuOTUgMTEuNTM2bDAuNzA3IDAuNzA3YzAuMzkgMC4zOSAwLjM5IDEuMDI0IDAgMS40MTRzLTEuMDI0IDAuMzktMS40MTQgMGwtMC43MDctMC43MDdjLTAuMzktMC4zOS0wLjM5LTEuMDI0IDAtMS40MTRzMS4wMjQtMC4zOSAxLjQxNCAwek0zLjA1MCA0LjQ2NGwtMC43MDctMC43MDdjLTAuMzkxLTAuMzkxLTAuMzkxLTEuMDI0IDAtMS40MTRzMS4wMjQtMC4zOTEgMS40MTQgMGwwLjcwNyAwLjcwN2MwLjM5MSAwLjM5MSAwLjM5MSAxLjAyNCAwIDEuNDE0cy0xLjAyNCAwLjM5MS0xLjQxNCAwek0xMi45NSA0LjQ2NGMtMC4zOSAwLjM5MS0xLjAyNCAwLjM5MS0xLjQxNCAwcy0wLjM5LTEuMDI0IDAtMS40MTRsMC43MDctMC43MDdjMC4zOS0wLjM5MSAxLjAyNC0wLjM5MSAxLjQxNCAwczAuMzkgMS4wMjQgMCAxLjQxNGwtMC43MDcgMC43MDd6TTMuMDUwIDExLjUzNmMwLjM5LTAuMzkgMS4wMjQtMC4zOSAxLjQxNCAwczAuMzkxIDEuMDI0IDAgMS40MTRsLTAuNzA3IDAuNzA3Yy0wLjM5MSAwLjM5LTEuMDI0IDAuMzktMS40MTQgMHMtMC4zOTEtMS4wMjQgMC0xLjQxNGwwLjcwNy0wLjcwN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDRjLTIuMjA5IDAtNCAxLjc5MS00IDRzMS43OTEgNCA0IDRjMi4yMDkgMCA0LTEuNzkxIDQtNHMtMS43OTEtNC00LTR6TTggMTAuNWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db250cmFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTIgOGMwLTMuMzE0IDIuNjg2LTYgNi02djEyYy0zLjMxNCAwLTYtMi42ODYtNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJyaWdodG5lc3NDb250cmFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDRjLTIuMjA5IDAtNCAxLjc5MS00IDRzMS43OTEgNCA0IDQgNC0xLjc5MSA0LTQtMS43OTEtNC00LTR6TTggMTAuNXYtNWMxLjM3OSAwIDIuNSAxLjEyMiAyLjUgMi41cy0xLjEyMSAyLjUtMi41IDIuNXpNOCAxM2MwLjU1MiAwIDEgMC40NDggMSAxdjFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF2LTFjMC0wLjU1MiAwLjQ0OC0xIDEtMXpNOCAzYy0wLjU1MiAwLTEtMC40NDgtMS0xdi0xYzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDF2MWMwIDAuNTUyLTAuNDQ4IDEtMSAxek0xNSA3YzAuNTUyIDAgMSAwLjQ0OCAxIDFzLTAuNDQ4IDEtMSAxaC0xYy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xaDF6TTMgOGMwIDAuNTUyLTAuNDQ4IDEtMSAxaC0xYy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xaDFjMC41NTIgMCAxIDAuNDQ4IDEgMXpNMTIuOTUgMTEuNTM2bDAuNzA3IDAuNzA3YzAuMzkgMC4zOSAwLjM5IDEuMDI0IDAgMS40MTRzLTEuMDI0IDAuMzktMS40MTQgMGwtMC43MDctMC43MDdjLTAuMzktMC4zOS0wLjM5LTEuMDI0IDAtMS40MTRzMS4wMjQtMC4zOSAxLjQxNCAwek0zLjA1MCA0LjQ2NGwtMC43MDctMC43MDdjLTAuMzkxLTAuMzkxLTAuMzkxLTEuMDI0IDAtMS40MTRzMS4wMjQtMC4zOTEgMS40MTQgMGwwLjcwNyAwLjcwN2MwLjM5MSAwLjM5MSAwLjM5MSAxLjAyNCAwIDEuNDE0cy0xLjAyNCAwLjM5MS0xLjQxNCAwek0xMi45NSA0LjQ2NGMtMC4zOSAwLjM5MS0xLjAyNCAwLjM5MS0xLjQxNCAwcy0wLjM5LTEuMDI0IDAtMS40MTRsMC43MDctMC43MDdjMC4zOS0wLjM5MSAxLjAyNC0wLjM5MSAxLjQxNCAwczAuMzkgMS4wMjQgMCAxLjQxNGwtMC43MDcgMC43MDd6TTMuMDUwIDExLjUzNmMwLjM5LTAuMzkgMS4wMjQtMC4zOSAxLjQxNCAwczAuMzkxIDEuMDI0IDAgMS40MTRsLTAuNzA3IDAuNzA3Yy0wLjM5MSAwLjM5LTEuMDI0IDAuMzktMS40MTQgMHMtMC4zOTEtMS4wMjQgMC0xLjQxNGwwLjcwNy0wLjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdGFyRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNi4yMDRsLTUuNTI4LTAuODAzLTIuNDcyLTUuMDA5LTIuNDcyIDUuMDA5LTUuNTI4IDAuODAzIDQgMy44OTktMC45NDQgNS41MDUgNC45NDQtMi41OTkgNC45NDQgMi41OTktMC45NDQtNS41MDUgNC0zLjg5OXpNOCAxMS43NzNsLTMuNDkyIDEuODM2IDAuNjY3LTMuODg4LTIuODI1LTIuNzUzIDMuOTA0LTAuNTY3IDEuNzQ2LTMuNTM3IDEuNzQ2IDMuNTM3IDMuOTA0IDAuNTY3LTIuODI1IDIuNzUzIDAuNjY3IDMuODg4LTMuNDkyLTEuODM2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVN0YXJIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDYuMjA0bC01LjUyOC0wLjgwMy0yLjQ3Mi01LjAwOS0yLjQ3MiA1LjAwOS01LjUyOCAwLjgwMyA0IDMuODk5LTAuOTQ0IDUuNTA1IDQuOTQ0LTIuNTk5IDQuOTQ0IDIuNTk5LTAuOTQ0LTUuNTA1IDQtMy44OTl6TTggMTEuNzczbC0wLjAxNSAwLjAwOCAwLjAxNS04LjkxOCAxLjc0NiAzLjUzNyAzLjkwNCAwLjU2Ny0yLjgyNSAyLjc1MyAwLjY2NyAzLjg4OC0zLjQ5Mi0xLjgzNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdGFyRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2LjIwNGwtNS41MjgtMC44MDMtMi40NzItNS4wMDktMi40NzIgNS4wMDktNS41MjggMC44MDMgNCAzLjg5OS0wLjk0NCA1LjUwNSA0Ljk0NC0yLjU5OSA0Ljk0NCAyLjU5OS0wLjk0NC01LjUwNSA0LTMuODk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjggMWMtMS42ODIgMC0zLjEyOSAxLjM2OC0zLjc5OSAyLjc5Ny0wLjY3MS0xLjQyOS0yLjExOC0yLjc5Ny0zLjgtMi43OTctMi4zMTggMC00LjIgMS44ODItNC4yIDQuMiAwIDQuNzE2IDQuNzU4IDUuOTUzIDggMTAuNjE2IDMuMDY1LTQuNjM0IDgtNi4wNTAgOC0xMC42MTYgMC0yLjMxOS0xLjg4Mi00LjItNC4yLTQuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1IZWFydEJyb2tlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS44IDFjMi4zMTggMCA0LjIgMS44ODIgNC4yIDQuMiAwIDQuNTY2LTQuOTM1IDUuOTgyLTggMTAuNjE2LTMuMjQzLTQuNjYzLTgtNS45LTgtMTAuNjE2IDAtMi4zMTkgMS44ODItNC4yIDQuMi00LjIgMC45NDMgMCAxLjgxMiAwLjQzIDIuNTEyIDEuMDYwbC0xLjIxMyAxLjk0IDMuNSAyLTIgNSA1LjUtNi0zLjUtMiAwLjk2Ny0xLjQ1MWMwLjU1My0wLjM0IDEuMTc1LTAuNTQ5IDEuODMzLTAuNTQ5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNWMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGgtM2MtMC41NTIgMC0xIDAuNDQ4LTEgMXY1aDF2NmgxLjI1di02aDAuNXY2aDEuMjV2LTZoMXYtNWMwLTAuNTUyLTAuNDQ4LTEtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVdvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41YzAtMC44MjggMC42NzItMS41IDEuNS0xLjVzMS41IDAuNjcyIDEuNSAxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjM0IDhsMC43NjYtMC41NTUtMi4wODMtMy4yMjFjLTAuMDkyLTAuMTQtMC4yNDktMC4yMjUtMC40MTctMC4yMjVoLTRjLTAuMTY4IDAtMC4zMjUgMC4wODQtMC40MTcgMC4yMjVsLTIuMDgzIDMuMjIxIDAuNzY2IDAuNTU1IDEuNzI5LTIuMjQ0IDAuNjAxIDEuNDAyLTIuMDk1IDMuODQxaDEuOTE3bDAuMzMzIDVoMXYtNWgwLjV2NWgxbDAuMzMzLTVoMS45MTdsLTIuMDk1LTMuODQyIDAuNjAxLTEuNDAyIDEuNzI5IDIuMjQ0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1hbldvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41YzAtMC44MjggMC42NzItMS41IDEuNS0xLjVzMS41IDAuNjcyIDEuNSAxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41YzAtMC44MjggMC42NzItMS41IDEuNS0xLjVzMS41IDAuNjcyIDEuNSAxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0aC0zYy0wLjU1MiAwLTEgMC40NDgtMSAxdjVoMXY2aDEuMjV2LTZoMC41djZoMS4yNXYtNmgxdi01YzAtMC41NTItMC40NDgtMS0xLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMjM0IDhsMC43NjYtMC41NTUtMi4wODMtMy4yMjFjLTAuMDkyLTAuMTQtMC4yNDktMC4yMjUtMC40MTctMC4yMjVoLTRjLTAuMTY4IDAtMC4zMjUgMC4wODQtMC40MTcgMC4yMjVsLTIuMDgzIDMuMjIxIDAuNzY2IDAuNTU1IDEuNzI5LTIuMjQ0IDAuNjAxIDEuNDAyLTIuMDk1IDMuODQxaDEuOTE3bDAuMzMzIDVoMXYtNWgwLjV2NWgxbDAuMzMzLTVoMS45MTdsLTIuMDk1LTMuODQyIDAuNjAxLTEuNDAyIDEuNzI5IDIuMjQ0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUhhcHB5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTggMS41YzMuNTkgMCA2LjUgMi45MSA2LjUgNi41cy0yLjkxIDYuNS02LjUgNi41LTYuNS0yLjkxLTYuNS02LjUgMi45MS02LjUgNi41LTYuNXpNOCA5LjM1NmMxLjgxMiAwIDMuNTM1LTAuNDgxIDUtMS4zMjctMC4yMjggMi43ODgtMi4zOTMgNC45NzEtNSA0Ljk3MXMtNC43NzItMi4xODYtNS00Ljk3M2MxLjQ2NSAwLjg0NSAzLjE4OCAxLjMyOSA1IDEuMzI5ek00IDUuNWMwLTAuODI4IDAuNDQ4LTEuNSAxLTEuNXMxIDAuNjcyIDEgMS41YzAgMC44MjgtMC40NDggMS41LTEgMS41cy0xLTAuNjcyLTEtMS41ek0xMCA1LjVjMC0wLjgyOCAwLjQ0OC0xLjUgMS0xLjVzMSAwLjY3MiAxIDEuNWMwIDAuODI4LTAuNDQ4IDEuNS0xIDEuNXMtMS0wLjY3Mi0xLTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1IYXBweTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek0xMSA0YzAuNTUyIDAgMSAwLjY3MiAxIDEuNXMtMC40NDggMS41LTEgMS41LTEtMC42NzItMS0xLjUgMC40NDgtMS41IDEtMS41ek01IDRjMC41NTIgMCAxIDAuNjcyIDEgMS41cy0wLjQ0OCAxLjUtMSAxLjUtMS0wLjY3Mi0xLTEuNSAwLjQ0OC0xLjUgMS0xLjV6TTggMTRjLTIuNjA3IDAtNC43NzItMi4xODYtNS00Ljk3MyAxLjQ2NSAwLjg0NiAzLjE4OCAxLjMyOSA1IDEuMzI5czMuNTM1LTAuNDgxIDUtMS4zMjdjLTAuMjI4IDIuNzg4LTIuMzkzIDQuOTcxLTUgNC45NzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU21pbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41ek00IDVjMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMXpNMTAgNWMwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxYzAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xek0xMS4wMDIgOS44MDFsMS4yODYgMC43NzJjLTAuODc0IDEuNDU0LTIuNDY3IDIuNDI3LTQuMjg4IDIuNDI3cy0zLjQxMy0wLjk3My00LjI4OC0yLjQyN2wxLjI4Ni0wLjc3MmMwLjYxMiAxLjAxOCAxLjcyNyAxLjY5OSAzLjAwMiAxLjY5OXMyLjM4OS0wLjY4MSAzLjAwMi0xLjY5OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TbWlsZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek0xMSA0YzAuNTUyIDAgMSAwLjQ0OCAxIDFzLTAuNDQ4IDEtMSAxLTEtMC40NDgtMS0xIDAuNDQ4LTEgMS0xek01IDRjMC41NTIgMCAxIDAuNDQ4IDEgMXMtMC40NDggMS0xIDEtMS0wLjQ0OC0xLTEgMC40NDgtMSAxLTF6TTggMTNjLTEuODIgMC0zLjQxMy0wLjk3My00LjI4OC0yLjQyN2wxLjI4Ni0wLjc3MmMwLjYxMiAxLjAxOCAxLjcyNyAxLjY5OSAzLjAwMiAxLjY5OXMyLjM4OS0wLjY4MSAzLjAwMi0xLjY5OWwxLjI4NiAwLjc3MmMtMC44NzQgMS40NTQtMi40NjcgMi40MjctNC4yODggMi40Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVG9uZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTggMS41YzMuNTkgMCA2LjUgMi45MSA2LjUgNi41cy0yLjkxIDYuNS02LjUgNi41LTYuNS0yLjkxLTYuNS02LjUgMi45MS02LjUgNi41LTYuNXpNNCA1YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTEwIDVjMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMXpNMTIgOXYxaC0xdjEuNWMwIDAuODI4LTAuNjcyIDEuNS0xLjUgMS41cy0xLjUtMC42NzItMS41LTEuNXYtMS41aC00di0xaDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVG9uZ3VlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTUgNGMwLjU1MiAwIDEgMC40NDggMSAxcy0wLjQ0OCAxLTEgMS0xLTAuNDQ4LTEtMSAwLjQ0OC0xIDEtMXpNMTIgMTBoLTF2MS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41di0xLjVoLTR2LTFoOHYxek0xMSA2Yy0wLjU1MiAwLTEtMC40NDgtMS0xczAuNDQ4LTEgMS0xIDEgMC40NDggMSAxLTAuNDQ4IDEtMSAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6TTQgNWMwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxYzAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xek0xMCA1YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTQuOTk4IDEyLjE5OWwtMS4yODYtMC43NzJjMC44NzQtMS40NTQgMi40NjctMi40MjcgNC4yODgtMi40MjdzMy40MTMgMC45NzMgNC4yODggMi40MjdsLTEuMjg2IDAuNzcyYy0wLjYxMi0xLjAxOC0xLjcyNy0xLjY5OS0zLjAwMi0xLjY5OXMtMi4zODkgMC42ODEtMy4wMDIgMS42OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2FkMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTExIDRjMC41NTIgMCAxIDAuNDQ4IDEgMXMtMC40NDggMS0xIDEtMS0wLjQ0OC0xLTEgMC40NDgtMSAxLTF6TTUgNGMwLjU1MiAwIDEgMC40NDggMSAxcy0wLjQ0OCAxLTEgMS0xLTAuNDQ4LTEtMSAwLjQ0OC0xIDEtMXpNMTEuMDAyIDEyLjE5OWMtMC42MTItMS4wMTgtMS43MjctMS42OTktMy4wMDItMS42OTlzLTIuMzg5IDAuNjgxLTMuMDAyIDEuNjk5bC0xLjI4Ni0wLjc3MmMwLjg3NC0xLjQ1NCAyLjQ2Ny0yLjQyNyA0LjI4OC0yLjQyN3MzLjQxNCAwLjk3MyA0LjI4OCAyLjQyN2wtMS4yODYgMC43NzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6TTguNDggMTEuMTFjMi4xOTEtMC40MzMgMy44OTItMS40MyA0LjUwNy0yLjc1OS0wLjMzOCAyLjYyNC0yLjUyNCA0LjY0OS01LjE3IDQuNjQ5LTEuODYzIDAtMy40OTgtMS4wMDQtNC40Mi0yLjUxNSAxLjEgMC44NiAzLjA0MCAxLjAyOCA1LjA4MyAwLjYyNXpNMTAgNS41YzAtMC44MjggMC40NDgtMS41IDEtMS41czEgMC42NzIgMSAxLjVjMCAwLjgyOC0wLjQ0OCAxLjUtMSAxLjVzLTEtMC42NzItMS0xLjV6TTUuNSA1LjgwNWMtMC42NTMgMC0xLjIwOCAwLjI0NS0xLjQxNCAwLjU4Ni0wLjA1NS0wLjA5Mi0wLjA4Ni0wLjUwMy0wLjA4Ni0wLjYwNSAwLTAuNDg1IDAuNjcyLTAuODc5IDEuNS0wLjg3OXMxLjUgMC4zOTQgMS41IDAuODc5YzAgMC4xMDMtMC4wMzAgMC41MTQtMC4wODYgMC42MDUtMC4yMDYtMC4zNDEtMC43NjEtMC41ODYtMS40MTQtMC41ODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV2luazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04ek0xMSA0YzAuNTUyIDAgMSAwLjY3MiAxIDEuNXMtMC40NDggMS41LTEgMS41LTEtMC42NzItMS0xLjUgMC40NDgtMS41IDEtMS41ek01LjUgNC44NzZjMC45MzIgMCAxLjU5NCAwLjM0OSAxLjU5NCAwLjg5NSAwIDAuMTE2IDAuMDYwIDAuNjcyLTAuMDAzIDAuNzc1LTAuMjMyLTAuMzg0LTAuODU2LTAuNjU5LTEuNTkxLTAuNjU5cy0xLjM1OSAwLjI3NS0xLjU5MSAwLjY1OWMtMC4wNjItMC4xMDMtMC4wMDMtMC42NTktMC4wMDMtMC43NzUgMC0wLjU0NiAwLjY2Mi0wLjg5NSAxLjU5NC0wLjg5NXpNNy44MTggMTNjLTEuODYzIDAtMy40OTgtMS4wMDQtNC40Mi0yLjUxNSAxLjEgMC44NiAzLjA0MCAxLjAyOCA1LjA4MyAwLjYyNSAyLjE5MS0wLjQzMyAzLjg5Mi0xLjQzIDQuNTA3LTIuNzU5LTAuMzM4IDIuNjI0LTIuNTI0IDQuNjQ5LTUuMTcgNC42NDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltR3JpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6TTMgOHYxYzAgMi4yIDEuOCA0IDQgNGgyYzIuMiAwIDQtMS44IDQtNHYtMWgtMTB6TTYgMTEuODI4Yy0wLjQxNS0wLjE0OC0wLjc5Ni0wLjM4OC0xLjExOC0wLjcxLTAuNTY5LTAuNTY5LTAuODgyLTEuMzIxLTAuODgyLTIuMTE4aDJ2Mi44Mjh6TTkgMTJoLTJ2LTNoMnYzek0xMS4xMTggMTEuMTE4Yy0wLjMyMiAwLjMyMi0wLjcwMyAwLjU2Mi0xLjExOCAwLjcxdi0yLjgyOGgyYzAgMC43OTctMC4zMTMgMS41NDktMC44ODIgMi4xMTh6TTMuNTIxIDZjMCAwIDAgMCAwIDAgMC4xNTMgMCAwLjI4My0wLjExIDAuMzA4LTAuMjYxIDAuMDk2LTAuNTczIDAuNTg5LTAuOTg5IDEuMTcxLTAuOTg5czEuMDc0IDAuNDE2IDEuMTcxIDAuOTg5YzAuMDI1IDAuMTUxIDAuMTU2IDAuMjYxIDAuMzA4IDAuMjYxczAuMjgzLTAuMTEgMC4zMDgtMC4yNjFjMC4wMTctMC4xMDEgMC4wMjUtMC4yMDIgMC4wMjUtMC4zMDIgMC0wLjk5OS0wLjgxMy0xLjgxMy0xLjgxMy0xLjgxM3MtMS44MTMgMC44MTMtMS44MTMgMS44MTNjMCAwLjEgMC4wMDkgMC4yMDEgMC4wMjUgMC4zMDIgMC4wMjUgMC4xNTEgMC4xNTYgMC4yNjEgMC4zMDggMC4yNjF6TTkuNTIxIDZjMCAwIDAgMCAwIDAgMC4xNTMgMCAwLjI4My0wLjExIDAuMzA4LTAuMjYxIDAuMDk2LTAuNTczIDAuNTg5LTAuOTg5IDEuMTcxLTAuOTg5czEuMDc0IDAuNDE2IDEuMTcxIDAuOTg5YzAuMDI1IDAuMTUxIDAuMTU2IDAuMjYxIDAuMzA4IDAuMjYxczAuMjgzLTAuMTEgMC4zMDgtMC4yNjFjMC4wMTctMC4xMDEgMC4wMjUtMC4yMDIgMC4wMjUtMC4zMDIgMC0wLjk5OS0wLjgxMy0xLjgxMy0xLjgxMy0xLjgxM3MtMS44MTMgMC44MTMtMS44MTMgMS44MTNjMCAwLjEgMC4wMDggMC4yMDEgMC4wMjUgMC4zMDIgMC4wMjUgMC4xNTEgMC4xNTYgMC4yNjEgMC4zMDggMC4yNjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltR3JpbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04ek0xMSAzLjY4OGMwLjk5OSAwIDEuODEzIDAuODEzIDEuODEzIDEuODEzIDAgMC4xLTAuMDA5IDAuMjAxLTAuMDI1IDAuMzAyLTAuMDI1IDAuMTUxLTAuMTU2IDAuMjYxLTAuMzA4IDAuMjYxcy0wLjI4My0wLjExLTAuMzA4LTAuMjYxYy0wLjA5Ni0wLjU3My0wLjU4OS0wLjgzMy0xLjE3MS0wLjgzM3MtMS4wNzQgMC4yNi0xLjE3MSAwLjgzM2MtMC4wMjUgMC4xNTEtMC4xNTYgMC4yNjEtMC4zMDggMC4yNjEtMCAwIDAgMC0wIDAtMC4xNTMgMC0wLjI4My0wLjExLTAuMzA4LTAuMjYxLTAuMDE3LTAuMTAxLTAuMDI1LTAuMjAyLTAuMDI1LTAuMzAyIDAtMC45OTkgMC44MTMtMS44MTMgMS44MTMtMS44MTN6TTUgMy42ODhjMC45OTkgMCAxLjgxMyAwLjgxMyAxLjgxMyAxLjgxMyAwIDAuMS0wLjAwOSAwLjIwMS0wLjAyNSAwLjMwMi0wLjAyNSAwLjE1MS0wLjE1NiAwLjI2MS0wLjMwOCAwLjI2MXMtMC4yODMtMC4xMS0wLjMwOC0wLjI2MWMtMC4wOTYtMC41NzMtMC41ODktMC44MzMtMS4xNzEtMC44MzNzLTEuMDc0IDAuMjYtMS4xNzEgMC44MzNjLTAuMDI1IDAuMTUxLTAuMTU2IDAuMjYxLTAuMzA4IDAuMjYxIDAgMCAwIDAgMCAwLTAuMTUzIDAtMC4yODMtMC4xMS0wLjMwOC0wLjI2MS0wLjAxNy0wLjEwMS0wLjAyNS0wLjIwMi0wLjAyNS0wLjMwMiAwLTAuOTk5IDAuODEzLTEuODEzIDEuODEzLTEuODEzek0zIDloM3YzLjg3M2MtMS43Mi0wLjQ0Ny0zLTIuMDE4LTMtMy44NzN6TTcgMTN2LTRoMnY0aC0yek0xMCAxMi44NzN2LTMuODczaDNjMCAxLjg1NS0xLjI4IDMuNDI2LTMgMy44NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ29vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6TTEyLjUgNGMwLjI3NSAwIDAuNSAwLjIyNSAwLjUgMC41djEuNWMwIDAuNTUtMC40NSAxLTEgMWgtMmMtMC41NSAwLTEtMC40NS0xLTFoLTJjMCAwLjU1LTAuNDUgMS0xIDFoLTJjLTAuNTUgMC0xLTAuNDUtMS0xdi0xLjVjMC0wLjI3NSAwLjIyNS0wLjUgMC41LTAuNWgzYzAuMjc1IDAgMC41IDAuMjI1IDAuNSAwLjV2MC41aDJ2LTAuNWMwLTAuMjc1IDAuMjI1LTAuNSAwLjUtMC41aDN6TTggMTJjMS40NTYgMCAyLjczMS0wLjc3OCAzLjQzLTEuOTQybDAuODU3IDAuNTE1Yy0wLjg3NCAxLjQ1NC0yLjQ2NyAyLjQyNy00LjI4OCAyLjQyNy0wLjc1NyAwLTEuNDc1LTAuMTY5LTIuMTE4LTAuNDdsMC41MTgtMC44NjRjMC40OSAwLjIxNCAxLjAzMSAwLjMzNCAxLjYgMC4zMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ29vbDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04ek04IDEzYy0wLjc1NyAwLTEuNDc1LTAuMTY5LTIuMTE4LTAuNDdsMC41MTgtMC44NjRjMC40OSAwLjIxNCAxLjAzMSAwLjMzNCAxLjYgMC4zMzQgMS40NTYgMCAyLjczMS0wLjc3OCAzLjQzLTEuOTQybDAuODU4IDAuNTE1Yy0wLjg3NCAxLjQ1NC0yLjQ2NyAyLjQyNy00LjI4OCAyLjQyN3pNMTMgNmMwIDAuNTUtMC40NSAxLTEgMWgtMmMtMC41NSAwLTEtMC40NS0xLTFoLTJjMCAwLjU1LTAuNDUgMS0xIDFoLTJjLTAuNTUgMC0xLTAuNDUtMS0xdi0xLjVjMC0wLjI3NSAwLjIyNS0wLjUgMC41LTAuNWgzYzAuMjc1IDAgMC41IDAuMjI1IDAuNSAwLjV2MC41aDJ2LTAuNWMwLTAuMjc1IDAuMjI1LTAuNSAwLjUtMC41aDNjMC4yNzUgMCAwLjUgMC4yMjUgMC41IDAuNXYxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQW5ncnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41ek0xMS4wMDIgMTIuMTk5Yy0wLjYxMi0xLjAxOC0xLjcyNy0xLjY5OS0zLjAwMi0xLjY5OXMtMi4zODkgMC42ODEtMy4wMDIgMS42OTlsLTEuMjg2LTAuNzcyYzAuODc0LTEuNDU0IDIuNDY3LTIuNDI3IDQuMjg4LTIuNDI3czMuNDE0IDAuOTczIDQuMjg4IDIuNDI3bC0xLjI4NiAwLjc3MnpNMTEuOTg1IDQuMzc5YzAuMDY3IDAuMjY4LTAuMDk2IDAuNTM5LTAuMzY0IDAuNjA2LTAuMjc1IDAuMDcwLTAuNjAyIDAuMTg5LTAuODkgMC4zMzQgMC4xNjYgMC4xNzkgMC4yNjggMC40MTggMC4yNjggMC42ODEgMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTFjMC0wLjAxOCAwLjAwMS0wLjAzNiAwLjAwMi0wLjA1NCAwLjAzMi0wLjc0MSAwLjcwNi0xLjIzNCAxLjI3NS0xLjUxOCAwLjU0My0wLjI3MSAxLjA4MC0wLjQwNyAxLjEwMi0wLjQxMyAwLjI2OC0wLjA2NyAwLjUzOSAwLjA5NiAwLjYwNiAwLjM2NHpNNC4wMTUgNC4zNzljMC4wNjctMC4yNjggMC4zMzgtMC40MzEgMC42MDYtMC4zNjQgMC4wMjMgMC4wMDYgMC41NTkgMC4xNDEgMS4xMDIgMC40MTMgMC41NjggMC4yODQgMS4yNDMgMC43NzYgMS4yNzUgMS41MTggMC4wMDEgMC4wMTggMC4wMDIgMC4wMzYgMC4wMDIgMC4wNTQgMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTFjMC0wLjI2MyAwLjEwMi0wLjUwMyAwLjI2OC0wLjY4MS0wLjI4OC0wLjE0NC0wLjYxNC0wLjI2NC0wLjg5LTAuMzM0LTAuMjY4LTAuMDY3LTAuNDMxLTAuMzM4LTAuMzY0LTAuNjA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFuZ3J5MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTkuMDAxIDUuOTQ2YzAuMDMyLTAuNzQxIDAuNzA2LTEuMjM0IDEuMjc1LTEuNTE4IDAuNTQzLTAuMjcxIDEuMDgwLTAuNDA3IDEuMTAyLTAuNDEzIDAuMjY4LTAuMDY3IDAuNTM5IDAuMDk2IDAuNjA2IDAuMzY0cy0wLjA5NiAwLjUzOS0wLjM2NCAwLjYwNmMtMC4yNzUgMC4wNzAtMC42MDIgMC4xODktMC44OSAwLjMzNCAwLjE2NiAwLjE3OSAwLjI2OCAwLjQxOCAwLjI2OCAwLjY4MSAwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMWMwLTAuMDE4IDAuMDAxLTAuMDM2IDAuMDAyLTAuMDU0ek00LjAxNSA0LjM3OWMwLjA2Ny0wLjI2OCAwLjMzOC0wLjQzMSAwLjYwNi0wLjM2NCAwLjAyMyAwLjAwNiAwLjU1OSAwLjE0MSAxLjEwMiAwLjQxMyAwLjU2OCAwLjI4NCAxLjI0MyAwLjc3NiAxLjI3NSAxLjUxOCAwLjAwMSAwLjAxOCAwLjAwMiAwLjAzNiAwLjAwMiAwLjA1NCAwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMWMwLTAuMjYzIDAuMTAyLTAuNTAzIDAuMjY4LTAuNjgxLTAuMjg4LTAuMTQ0LTAuNjE0LTAuMjY0LTAuODktMC4zMzQtMC4yNjgtMC4wNjctMC40MzEtMC4zMzgtMC4zNjQtMC42MDZ6TTExLjAwMiAxMi4xOTljLTAuNjEyLTEuMDE4LTEuNzI3LTEuNjk5LTMuMDAyLTEuNjk5cy0yLjM4OSAwLjY4MS0zLjAwMiAxLjY5OWwtMS4yODYtMC43NzJjMC44NzQtMS40NTQgMi40NjctMi40MjcgNC4yODgtMi40MjdzMy40MTQgMC45NzMgNC4yODggMi40MjdsLTEuMjg2IDAuNzcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUV2aWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgN2MtMC41NTIgMC0xLTAuNDQ4LTEtMSAwLTAuMDE4IDAuMDAxLTAuMDM2IDAuMDAyLTAuMDU0IDAuMDMyLTAuNzQxIDAuNzA2LTEuMjM0IDEuMjc1LTEuNTE4IDAuNTQzLTAuMjcxIDEuMDgwLTAuNDA3IDEuMTAyLTAuNDEzIDAuMjY4LTAuMDY3IDAuNTM5IDAuMDk2IDAuNjA2IDAuMzY0cy0wLjA5NiAwLjUzOS0wLjM2NCAwLjYwNmMtMC4yNzUgMC4wNzAtMC42MDIgMC4xODktMC44OSAwLjMzNCAwLjE2NiAwLjE3OSAwLjI2OCAwLjQxOCAwLjI2OCAwLjY4MSAwIDAuNTUyLTAuNDQ4IDEtMSAxek00LjM3OSA0Ljk4NWMtMC4yNjgtMC4wNjctMC40MzEtMC4zMzgtMC4zNjQtMC42MDZzMC4zMzgtMC40MzEgMC42MDYtMC4zNjRjMC4wMjMgMC4wMDYgMC41NTkgMC4xNDEgMS4xMDIgMC40MTMgMC41NjggMC4yODQgMS4yNDMgMC43NzYgMS4yNzUgMS41MTggMC4wMDEgMC4wMTggMC4wMDIgMC4wMzYgMC4wMDIgMC4wNTQgMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTFjMC0wLjI2MyAwLjEwMi0wLjUwMyAwLjI2OC0wLjY4MS0wLjI4OC0wLjE0NC0wLjYxNC0wLjI2NC0wLjg5LTAuMzM0ek04IDExLjVjMS4yNzQgMCAyLjM4OS0wLjY4MSAzLjAwMi0xLjY5OWwxLjI4NiAwLjc3MmMtMC44NzQgMS40NTQtMi40NjcgMi40MjctNC4yODggMi40MjdzLTMuNDEzLTAuOTczLTQuMjg4LTIuNDI3bDEuMjg2LTAuNzcyYzAuNjEyIDEuMDE4IDEuNzI3IDEuNjk5IDMuMDAyIDEuNjk5ek0xNiAxYzAtMC43MTEtMC4xNDktMS4zODctMC40MTYtMi0wLjUyNSAxLjIwMS0xLjUwNyAyLjE1NS0yLjcyNiAyLjY0My0xLjM0Ny0xLjAzMS0zLjAzMC0xLjY0My00Ljg1Ny0xLjY0M3MtMy41MSAwLjYxMy00Ljg1NyAxLjY0M2MtMS4yMi0wLjQ4OC0yLjIwMi0xLjQ0My0yLjcyNi0yLjY0My0wLjI2OCAwLjYxMy0wLjQxNiAxLjI4OS0wLjQxNiAyIDAgMS4xNSAwLjM4OCAyLjIwOCAxLjA0MCAzLjA1My0wLjY2MiAxLjE2NS0xLjA0MCAyLjUxMi0xLjA0MCAzLjk0NyAwIDQuNDE4IDMuNTgyIDggOCA4czgtMy41ODIgOC04YzAtMS40MzYtMC4zNzgtMi43ODMtMS4wNDAtMy45NDcgMC42NTItMC44NDUgMS4wNDAtMS45MDMgMS4wNDAtMy4wNTN6TTggMTQuNWMtMy41OSAwLTYuNS0yLjkxLTYuNS02LjVzMi45MS02LjUgNi41LTYuNSA2LjUgMi45MSA2LjUgNi41LTIuOTEgNi41LTYuNSA2LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRXZpbDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMWMwLTAuNzExLTAuMTQ5LTEuMzg3LTAuNDE2LTItMC41MjUgMS4yMDEtMS41MDcgMi4xNTUtMi43MjYgMi42NDMtMS4zNDctMS4wMzEtMy4wMzAtMS42NDMtNC44NTctMS42NDNzLTMuNTEgMC42MTMtNC44NTcgMS42NDNjLTEuMjItMC40ODgtMi4yMDItMS40NDMtMi43MjYtMi42NDMtMC4yNjggMC42MTMtMC40MTYgMS4yODktMC40MTYgMiAwIDEuMTUgMC4zODggMi4yMDggMS4wNDAgMy4wNTMtMC42NjIgMS4xNjUtMS4wNDAgMi41MTItMS4wNDAgMy45NDcgMCA0LjQxOCAzLjU4MiA4IDggOHM4LTMuNTgyIDgtOGMwLTEuNDM2LTAuMzc4LTIuNzgzLTEuMDQwLTMuOTQ3IDAuNjUyLTAuODQ1IDEuMDQwLTEuOTAzIDEuMDQwLTMuMDUzek05LjAwMSA1Ljk0NmMwLjAzMi0wLjc0MSAwLjcwNi0xLjIzNCAxLjI3NS0xLjUxOCAwLjU0My0wLjI3MSAxLjA4MC0wLjQwNyAxLjEwMi0wLjQxMyAwLjI2OC0wLjA2NyAwLjUzOSAwLjA5NiAwLjYwNiAwLjM2NHMtMC4wOTYgMC41MzktMC4zNjQgMC42MDZjLTAuMjc1IDAuMDcwLTAuNjAyIDAuMTg5LTAuODkgMC4zMzQgMC4xNjYgMC4xNzkgMC4yNjggMC40MTggMC4yNjggMC42ODEgMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTFjMC0wLjAxOCAwLjAwMS0wLjAzNiAwLjAwMi0wLjA1NHpNNC4wMTUgNC4zNzljMC4wNjctMC4yNjggMC4zMzgtMC40MzEgMC42MDYtMC4zNjQgMC4wMjMgMC4wMDYgMC41NTkgMC4xNDEgMS4xMDIgMC40MTMgMC41NjggMC4yODQgMS4yNDMgMC43NzYgMS4yNzUgMS41MTggMC4wMDEgMC4wMTggMC4wMDIgMC4wMzYgMC4wMDIgMC4wNTQgMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTFjMC0wLjI2MyAwLjEwMi0wLjUwMyAwLjI2OC0wLjY4MS0wLjI4OC0wLjE0NC0wLjYxNC0wLjI2NC0wLjg5LTAuMzM0LTAuMjY4LTAuMDY3LTAuNDMxLTAuMzM4LTAuMzY0LTAuNjA2ek04IDEzYy0xLjgyIDAtMy40MTMtMC45NzMtNC4yODgtMi40MjdsMS4yODYtMC43NzJjMC42MTIgMS4wMTggMS43MjcgMS42OTkgMy4wMDIgMS42OTlzMi4zODktMC42ODEgMy4wMDItMS42OTlsMS4yODYgMC43NzJjLTAuODc0IDEuNDU0LTIuNDY3IDIuNDI3LTQuMjg4IDIuNDI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNob2NrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41ek02IDExYzAtMS4xMDUgMC44OTUtMiAyLTJzMiAwLjg5NSAyIDJjMCAxLjEwNS0wLjg5NSAyLTIgMnMtMi0wLjg5NS0yLTJ6TTEwIDUuNWMwLTAuODI4IDAuNDQ4LTEuNSAxLTEuNXMxIDAuNjcyIDEgMS41YzAgMC44MjgtMC40NDggMS41LTEgMS41cy0xLTAuNjcyLTEtMS41ek00IDUuNWMwLTAuODI4IDAuNDQ4LTEuNSAxLTEuNXMxIDAuNjcyIDEgMS41YzAgMC44MjgtMC40NDggMS41LTEgMS41cy0xLTAuNjcyLTEtMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNob2NrZWQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNNSA3Yy0wLjU1MiAwLTEtMC42NzItMS0xLjVzMC40NDgtMS41IDEtMS41IDEgMC42NzIgMSAxLjUtMC40NDggMS41LTEgMS41ek04IDEzYy0xLjEwNSAwLTItMC44OTUtMi0yczAuODk1LTIgMi0yYzEuMTA1IDAgMiAwLjg5NSAyIDJzLTAuODk1IDItMiAyek0xMSA3Yy0wLjU1MiAwLTEtMC42NzItMS0xLjVzMC40NDgtMS41IDEtMS41IDEgMC42NzIgMSAxLjUtMC40NDggMS41LTEgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJhZmZsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNi41YzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjVzLTAuNS0wLjIyNC0wLjUtMC41YzAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjVzMC41IDAuMjI0IDAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDVjMC44MjggMCAxLjUgMC42NzIgMS41IDEuNXMtMC42NzIgMS41LTEuNSAxLjUtMS41LTAuNjcyLTEuNS0xLjUgMC42NzItMS41IDEuNS0xLjV6TTUuNSA0Yy0xLjM3OCAwLTIuNSAxLjEyMi0yLjUgMi41czEuMTIyIDIuNSAyLjUgMi41IDIuNS0xLjEyMiAyLjUtMi41LTEuMTIyLTIuNS0yLjUtMi41djB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNi41YzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjVzLTAuNS0wLjIyNC0wLjUtMC41YzAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjVzMC41IDAuMjI0IDAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSA1YzAuODI4IDAgMS41IDAuNjcyIDEuNSAxLjVzLTAuNjcyIDEuNS0xLjUgMS41LTEuNS0wLjY3Mi0xLjUtMS41IDAuNjcyLTEuNSAxLjUtMS41ek0xMC41IDRjLTEuMzc5IDAtMi41IDEuMTIyLTIuNSAyLjVzMS4xMjEgMi41IDIuNSAyLjUgMi41LTEuMTIyIDIuNS0yLjUtMS4xMjEtMi41LTIuNS0yLjV2MHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDExaDR2MWgtNHYtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1CYWZmbGVkMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDYuNWMwIDAuMjc2LTAuMjI0IDAuNS0wLjUgMC41cy0wLjUtMC4yMjQtMC41LTAuNSAwLjIyNC0wLjUgMC41LTAuNSAwLjUgMC4yMjQgMC41IDAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2LjVjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXMtMC41LTAuMjI0LTAuNS0wLjUgMC4yMjQtMC41IDAuNS0wLjUgMC41IDAuMjI0IDAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek00IDYuNWMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41LTAuNjcyIDEuNS0xLjUgMS41LTEuNS0wLjY3Mi0xLjUtMS41ek0xMCAxMmgtNHYtMWg0djF6TTEwLjUgOGMtMC44MjggMC0xLjUtMC42NzItMS41LTEuNXMwLjY3Mi0xLjUgMS41LTEuNSAxLjUgMC42NzIgMS41IDEuNS0wLjY3MiAxLjUtMS41IDEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db25mdXNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6TTQgNWMwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxYzAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xek0xMCA1YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTExLjM0NSAxMGgxLjAxNGMwLjE0NCAxLjEzMy0wLjUwNyAyLjI1OC0xLjYyNCAyLjY2NS0xLjI5NSAwLjQ3Mi0yLjczMy0wLjE5OS0zLjIwNC0xLjQ5NC0wLjI4My0wLjc3Ny0xLjE0NS0xLjE3OS0xLjkyMy0wLjg5Ni0wLjcxMiAwLjI1OS0xLjEwOSAxLjAwNS0wLjk1MyAxLjcyNWgtMS4wMTNjLTAuMTQ0LTEuMTMzIDAuNTA3LTIuMjU4IDEuNjI0LTIuNjY1IDEuMjk1LTAuNDcyIDIuNzMzIDAuMTk5IDMuMjA0IDEuNDk0IDAuMjgzIDAuNzc3IDEuMTQ1IDEuMTc5IDEuOTIzIDAuODk2IDAuNzEyLTAuMjU5IDEuMTA5LTEuMDA1IDAuOTUzLTEuNzI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNvbmZ1c2VkMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6TTExIDRjMC41NTIgMCAxIDAuNDQ4IDEgMXMtMC40NDggMS0xIDEtMS0wLjQ0OC0xLTFjMC0wLjU1MiAwLjQ0OC0xIDEtMXpNNSA0YzAuNTUyIDAgMSAwLjQ0OCAxIDFzLTAuNDQ4IDEtMSAxLTEtMC40NDgtMS0xYzAtMC41NTIgMC40NDgtMSAxLTF6TTEwLjczNSAxMi42NjVjLTEuMjk1IDAuNDcyLTIuNzMzLTAuMTk5LTMuMjA0LTEuNDk0LTAuMjgzLTAuNzc3LTEuMTQ1LTEuMTc5LTEuOTIzLTAuODk2LTAuNzEyIDAuMjU5LTEuMTA5IDEuMDA1LTAuOTUzIDEuNzI1aC0xLjAxM2MtMC4xNDQtMS4xMzMgMC41MDctMi4yNTggMS42MjQtMi42NjUgMS4yOTUtMC40NzIgMi43MzMgMC4xOTkgMy4yMDQgMS40OTQgMC4yODMgMC43NzcgMS4xNDUgMS4xNzkgMS45MjMgMC44OTYgMC43MTItMC4yNTkgMS4xMDktMS4wMDUgMC45NTMtMS43MjVoMS4wMTRjMC4xNDQgMS4xMzMtMC41MDcgMi4yNTgtMS42MjQgMi42NjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTmV1dHJhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6TTQgNWMwIDAuNTUyIDAuNDQ4IDEgMSAxczEtMC40NDggMS0xLTAuNDQ4LTEtMS0xLTEgMC40NDgtMSAxek0xMCA1YzAgMC41NTIgMC40NDggMSAxIDFzMS0wLjQ0OCAxLTEtMC40NDgtMS0xLTEtMSAwLjQ0OC0xIDF6TTYgMTFoNHYxaC00di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU5ldXRyYWwyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOHpNMTAgMTJoLTR2LTFoNHYxek0xMSA0YzAuNTUyIDAgMSAwLjQ0OCAxIDFzLTAuNDQ4IDEtMSAxLTEtMC40NDgtMS0xYzAtMC41NTIgMC40NDgtMSAxLTF6TTUgNGMwLjU1MiAwIDEgMC40NDggMSAxcy0wLjQ0OCAxLTEgMS0xLTAuNDQ4LTEtMWMwLTAuNTUyIDAuNDQ4LTEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUhpcHN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41ek00IDVjMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMS0wLjQ0OCAxLTEgMS0xLTAuNDQ4LTEtMXpNMTAgNWMwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxLTAuNDQ4IDEtMSAxLTEtMC40NDgtMS0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjU2MSA4LjQzOWMtMC41ODYtMC41ODYtMS41MzYtMC41ODYtMi4xMjEgMHMtMC41ODYgMS41MzYgMCAyLjEyMWMwLjAxOSAwLjAxOSAwLjAzOCAwLjAzNyAwLjA1OCAwLjA1NSAxLjM1MiAxLjIyNyA0LjUwMy0wLjAyOSA0LjUwMy0xLjYxNS0wLjk2OSAwLjYyNS0xLjcyNiAwLjE1My0yLjQzOS0wLjU2MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjQzOSA4LjQzOWMwLjU4Ni0wLjU4NiAxLjUzNi0wLjU4NiAyLjEyMSAwczAuNTg2IDEuNTM2IDAgMi4xMjFjLTAuMDE5IDAuMDE5LTAuMDM4IDAuMDM3LTAuMDU4IDAuMDU1LTEuMzUyIDEuMjI3LTQuNTAzLTAuMDI5LTQuNTAzLTEuNjE1IDAuOTY5IDAuNjI1IDEuNzI2IDAuMTUzIDIuNDM5LTAuNTYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUhpcHN0ZXIyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNMTEgNGMwLjU1MiAwIDEgMC40NDggMSAxcy0wLjQ0OCAxLTEgMS0xLTAuNDQ4LTEtMSAwLjQ0OC0xIDEtMXpNNSA0YzAuNTUyIDAgMSAwLjQ0OCAxIDFzLTAuNDQ4IDEtMSAxLTEtMC40NDgtMS0xIDAuNDQ4LTEgMS0xek04LjQ5NyAxMC42MTVjLTAuMDIwLTAuMDE4LTAuMDM5LTAuMDM2LTAuMDU4LTAuMDU1LTAuMjkzLTAuMjkzLTAuNDM5LTAuNjc3LTAuNDM5LTEuMDYwLTAgMC4zODQtMC4xNDYgMC43NjgtMC40MzkgMS4wNjAtMC4wMTkgMC4wMTktMC4wMzggMC4wMzctMC4wNTggMC4wNTUtMS4zNTIgMS4yMjctNC41MDMtMC4wMjktNC41MDMtMS42MTUgMC45NjkgMC42MjUgMS43MjYgMC4xNTMgMi40MzktMC41NjEgMC41ODYtMC41ODYgMS41MzYtMC41ODYgMi4xMjEgMCAwLjI5MyAwLjI5MyAwLjQzOSAwLjY3NyAwLjQzOSAxLjA2MCAwLTAuMzg0IDAuMTQ2LTAuNzY4IDAuNDM5LTEuMDYwIDAuNTg2LTAuNTg2IDEuNTM2LTAuNTg2IDIuMTIxIDAgMC43MTMgMC43MTQgMS40NzEgMS4xODYgMi40MzkgMC41NjEgMCAxLjU4Ni0zLjE1MSAyLjg0Mi00LjUwMyAxLjYxNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Xb25kZXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41ek0xMS42NTIgOS40bDAuMzUxIDEuMi02LjgyOCAyLTAuMzUxLTEuMnpNNCA1YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTEwIDVjMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMWMwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Xb25kZXJpbmcyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNMTEgNGMwLjU1MiAwIDEgMC40NDggMSAxcy0wLjQ0OCAxLTEgMS0xLTAuNDQ4LTEtMSAwLjQ0OC0xIDEtMXpNNCA1YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDEtMC40NDggMS0xIDEtMS0wLjQ0OC0xLTF6TTUuMTc2IDEyLjZsLTAuMzUxLTEuMiA2LjgyOC0yIDAuMzUxIDEuMi02LjgyOCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNsZWVweSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04LTggMy41ODItOCA4IDMuNTgyIDggOCA4ek04IDEuNWMzLjU5IDAgNi41IDIuOTEgNi41IDYuNXMtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41IDIuOTEtNi41IDYuNS02LjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTAuNWMwIDEuMzgxLTAuODk1IDIuNS0yIDIuNXMtMi0xLjExOS0yLTIuNWMwLTEuMzgxIDAuODk1LTIuNSAyLTIuNXMyIDEuMTE5IDIgMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA1LjMxM2MtMC4xMjggMC0wLjI1Ni0wLjA0OS0wLjM1NC0wLjE0Ni0wLjMwMi0wLjMwMi0wLjk5MS0wLjMwMi0xLjI5MyAwLTAuMTk1IDAuMTk1LTAuNTEyIDAuMTk1LTAuNzA3IDBzLTAuMTk1LTAuNTEyIDAtMC43MDdjMC42OTYtMC42OTYgMi4wMTEtMC42OTYgMi43MDcgMCAwLjE5NSAwLjE5NSAwLjE5NSAwLjUxMiAwIDAuNzA3LTAuMDk4IDAuMDk4LTAuMjI2IDAuMTQ2LTAuMzU0IDAuMTQ2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgNS4zMTNjLTAuMTI4IDAtMC4yNTYtMC4wNDktMC4zNTQtMC4xNDYtMC4zMDItMC4zMDItMC45OTEtMC4zMDItMS4yOTMgMC0wLjE5NSAwLjE5NS0wLjUxMiAwLjE5NS0wLjcwNyAwcy0wLjE5NS0wLjUxMiAwLTAuNzA3YzAuNjk2LTAuNjk2IDIuMDExLTAuNjk2IDIuNzA3IDAgMC4xOTUgMC4xOTUgMC4xOTUgMC41MTIgMCAwLjcwNy0wLjA5OCAwLjA5OC0wLjIyNiAwLjE0Ni0wLjM1NCAwLjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TbGVlcHkyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNNC44NTQgNS4xNjZjLTAuMTk1IDAuMTk1LTAuNTEyIDAuMTk1LTAuNzA3IDBzLTAuMTk1LTAuNTEyIDAtMC43MDdjMC42OTYtMC42OTYgMi4wMTEtMC42OTYgMi43MDcgMCAwLjE5NSAwLjE5NSAwLjE5NSAwLjUxMiAwIDAuNzA3LTAuMDk4IDAuMDk4LTAuMjI2IDAuMTQ2LTAuMzU0IDAuMTQ2cy0wLjI1Ni0wLjA0OS0wLjM1NC0wLjE0NmMtMC4zMDItMC4zMDItMC45OTEtMC4zMDItMS4yOTMgMHpNOCAxM2MtMS4xMDUgMC0yLTEuMTE5LTItMi41czAuODk1LTIuNSAyLTIuNSAyIDEuMTE5IDIgMi41LTAuODk1IDIuNS0yIDIuNXpNMTEuODU0IDUuMTY2Yy0wLjA5OCAwLjA5OC0wLjIyNiAwLjE0Ni0wLjM1NCAwLjE0NnMtMC4yNTYtMC4wNDktMC4zNTQtMC4xNDZjLTAuMzAyLTAuMzAyLTAuOTkxLTAuMzAyLTEuMjkzIDAtMC4xOTUgMC4xOTUtMC41MTIgMC4xOTUtMC43MDcgMHMtMC4xOTUtMC41MTIgMC0wLjcwN2MwLjY5Ni0wLjY5NiAyLjAxMS0wLjY5NiAyLjcwNyAwIDAuMTk1IDAuMTk1IDAuMTk1IDAuNTEyIDAgMC43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRnJ1c3RyYXRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjcyNCA0LjQyOGMtMC41NDMtMC4yNzEtMS4wODAtMC40MDctMS4xMDItMC40MTMtMC4yNjgtMC4wNjctMC41MzkgMC4wOTYtMC42MDYgMC4zNjRzMC4wOTYgMC41MzkgMC4zNjQgMC42MDZjMC4yNzUgMC4wNzAgMC42MDIgMC4xODkgMC44OSAwLjMzNC0wLjE2NiAwLjE3OS0wLjI2OCAwLjQxOC0wLjI2OCAwLjY4MSAwIDAuNTUyIDAuNDQ4IDEgMSAxczEtMC40NDggMS0xYzAtMC4wMTgtMC4wMDEtMC4wMzYtMC4wMDItMC4wNTQtMC4wMzItMC43NDEtMC43MDYtMS4yMzQtMS4yNzUtMS41MTh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek0zLjY5NSAxMi44N2MwLjE2NyAwLjA4MyAwLjM1NiAwLjEzIDAuNTU1IDAuMTNoNy41YzAuMTk5IDAgMC4zODctMC4wNDcgMC41NTUtMC4xMy0xLjE0NyAxLjAxNC0yLjY1NCAxLjYzLTQuMzA1IDEuNjNzLTMuMTU4LTAuNjE2LTQuMzA1LTEuNjN6TTQgMTEuNzV2LTEuNWMwLTAuMTM2IDAuMTE0LTAuMjUgMC4yNS0wLjI1aDEuNzV2MmgtMS43NWMtMC4xMzYgMC0wLjI1LTAuMTE0LTAuMjUtMC4yNXpNNyAxMnYtMmgydjJoLTJ6TTEwIDEydi0yaDEuNzVjMC4xMzYgMCAwLjI1IDAuMTE0IDAuMjUgMC4yNXYxLjVjMCAwLjEzNi0wLjExNCAwLjI1LTAuMjUgMC4yNWgtMS43NXpNMTIuODcgMTIuMzA1YzAuMDgzLTAuMTY3IDAuMTMtMC4zNTYgMC4xMy0wLjU1NXYtMS41YzAtMC42ODktMC41NjEtMS4yNS0xLjI1LTEuMjVoLTcuNWMtMC42ODkgMC0xLjI1IDAuNTYxLTEuMjUgMS4yNXYxLjVjMCAwLjE5OSAwLjA0NyAwLjM4NyAwLjEzIDAuNTU1LTEuMDE0LTEuMTQ3LTEuNjMtMi42NTQtMS42My00LjMwNSAwLTMuNTkgMi45MS02LjUgNi41LTYuNXM2LjUgMi45MSA2LjUgNi41YzAgMS42NTEtMC42MTYgMy4xNTgtMS42MyA0LjMwNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4zNzkgNC4wMTVjLTAuMDIzIDAuMDA2LTAuNTU5IDAuMTQxLTEuMTAyIDAuNDEzLTAuNTY4IDAuMjg0LTEuMjQzIDAuNzc2LTEuMjc1IDEuNTE4LTAuMDAxIDAuMDE4LTAuMDAyIDAuMDM2LTAuMDAyIDAuMDU0IDAgMC41NTIgMC40NDggMSAxIDFzMS0wLjQ0OCAxLTFjMC0wLjI2My0wLjEwMi0wLjUwMy0wLjI2OC0wLjY4MSAwLjI4OC0wLjE0NCAwLjYxNC0wLjI2NCAwLjg5LTAuMzM0IDAuMjY4LTAuMDY3IDAuNDMxLTAuMzM4IDAuMzY0LTAuNjA2cy0wLjMzOC0wLjQzMS0wLjYwNi0wLjM2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GcnVzdHJhdGVkMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEwLjI1djEuNWMwIDAuMTM2IDAuMTE0IDAuMjUgMC4yNSAwLjI1aDEuNzV2LTJoLTEuNzVjLTAuMTM2IDAtMC4yNSAwLjExNC0wLjI1IDAuMjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMGgydjJoLTJ2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNzUgMTBoLTEuNzV2MmgxLjc1YzAuMTM2IDAgMC4yNS0wLjExNCAwLjI1LTAuMjV2LTEuNWMwLTAuMTM2LTAuMTE0LTAuMjUtMC4yNS0wLjI1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNOS4wMDIgNS45NDZjMC4wMzItMC43NDEgMC43MDYtMS4yMzQgMS4yNzUtMS41MTggMC41NDMtMC4yNzEgMS4wODAtMC40MDcgMS4xMDItMC40MTMgMC4yNjgtMC4wNjcgMC41MzkgMC4wOTYgMC42MDYgMC4zNjRzLTAuMDk2IDAuNTM5LTAuMzY0IDAuNjA2Yy0wLjI3NSAwLjA3MC0wLjYwMiAwLjE4OS0wLjg5IDAuMzM0IDAuMTY2IDAuMTc5IDAuMjY4IDAuNDE4IDAuMjY4IDAuNjgxIDAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xYzAtMC4wMTggMC4wMDEtMC4wMzYgMC4wMDItMC4wNTR6TTQuMDE1IDQuMzc5YzAuMDY3LTAuMjY4IDAuMzM4LTAuNDMxIDAuNjA2LTAuMzY0IDAuMDIzIDAuMDA2IDAuNTU5IDAuMTQxIDEuMTAyIDAuNDEzIDAuNTY4IDAuMjg0IDEuMjQzIDAuNzc2IDEuMjc1IDEuNTE4IDAuMDAxIDAuMDE4IDAuMDAyIDAuMDM2IDAuMDAyIDAuMDU0IDAgMC41NTItMC40NDggMS0xIDFzLTEtMC40NDgtMS0xYzAtMC4yNjMgMC4xMDItMC41MDMgMC4yNjgtMC42ODEtMC4yODgtMC4xNDQtMC42MTQtMC4yNjQtMC44OS0wLjMzNC0wLjI2OC0wLjA2Ny0wLjQzMS0wLjMzOC0wLjM2NC0wLjYwNnpNMTMgMTEuNzVjMCAwLjY4OS0wLjU2MSAxLjI1LTEuMjUgMS4yNWgtNy41Yy0wLjY4OSAwLTEuMjUtMC41NjEtMS4yNS0xLjI1di0xLjVjMC0wLjY4OSAwLjU2MS0xLjI1IDEuMjUtMS4yNWg3LjVjMC42ODkgMCAxLjI1IDAuNTYxIDEuMjUgMS4yNXYxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ3J5aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTggMS41YzMuNTkgMCA2LjUgMi45MSA2LjUgNi41cy0yLjkxIDYuNS02LjUgNi41LTYuNS0yLjkxLTYuNS02LjUgMi45MS02LjUgNi41LTYuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDZoLTJjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoMmMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgNmgtMmMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyNC0wLjUgMC41LTAuNWgyYzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMy4zNzVjLTAuMTI4IDAtMC4yNTYtMC4wNDktMC4zNTQtMC4xNDYtMC4wNzItMC4wNzItMC40Ni0wLjIyOS0xLjE0Ni0wLjIyOXMtMS4wNzUgMC4xNTctMS4xNDYgMC4yMjljLTAuMTk1IDAuMTk1LTAuNTEyIDAuMTk1LTAuNzA3IDBzLTAuMTk1LTAuNTEyIDAtMC43MDdjMC40NzEtMC40NzEgMS40NTMtMC41MjEgMS44NTQtMC41MjFzMS4zODMgMC4wNTEgMS44NTQgMC41MjFjMC4xOTUgMC4xOTUgMC4xOTUgMC41MTIgMCAwLjcwNy0wLjA5OCAwLjA5OC0wLjIyNiAwLjE0Ni0wLjM1NCAwLjE0NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDljLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjV2LTFjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXYxYzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSAxMmMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtMWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41djFjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgOWMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtMWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41djFjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgMTJjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjV2LTFjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXYxYzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ3J5aW5nMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTUgMTEuNWMwIDAuMjc2LTAuMjI0IDAuNS0wLjUgMC41cy0wLjUtMC4yMjQtMC41LTAuNXYtMWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41djF6TTUgOC41YzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjVzLTAuNS0wLjIyNC0wLjUtMC41di0xYzAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjVzMC41IDAuMjI0IDAuNSAwLjV2MXpNNS41IDZoLTJjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoMmMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNXpNOS44NTQgMTMuMjI5Yy0wLjA5OCAwLjA5OC0wLjIyNiAwLjE0Ni0wLjM1NCAwLjE0NnMtMC4yNTYtMC4wNDktMC4zNTQtMC4xNDZjLTAuMDcyLTAuMDcyLTAuNDYtMC4yMjktMS4xNDYtMC4yMjlzLTEuMDc1IDAuMTU3LTEuMTQ2IDAuMjI5Yy0wLjE5NSAwLjE5NS0wLjUxMiAwLjE5NS0wLjcwNyAwcy0wLjE5NS0wLjUxMiAwLTAuNzA3YzAuNDcxLTAuNDcxIDEuNDUzLTAuNTIxIDEuODU0LTAuNTIxczEuMzgzIDAuMDUxIDEuODU0IDAuNTIxYzAuMTk1IDAuMTk1IDAuMTk1IDAuNTEyIDAgMC43MDd6TTEyIDExLjVjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXMtMC41LTAuMjI0LTAuNS0wLjV2LTFjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXYxek0xMiA4LjVjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXMtMC41LTAuMjI0LTAuNS0wLjV2LTFjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXYxek0xMi41IDZoLTJjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoMmMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Qb2ludFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDkuNXYtMi41YzAtMC44MjctMC42NzMtMS41LTEuNS0xLjUtMC4yNjcgMC0wLjUxOCAwLjA3MC0wLjczNiAwLjE5My0wLjI2Ny0wLjQxNy0wLjczNC0wLjY5My0xLjI2NC0wLjY5My0wLjM4NCAwLTAuNzM0IDAuMTQ1LTEgMC4zODMtMC4yNjYtMC4yMzgtMC42MTYtMC4zODMtMS0wLjM4My0wLjE3NSAwLTAuMzQ0IDAuMDMwLTAuNSAwLjA4NnYtMy41ODZjMC0wLjgyNy0wLjY3My0xLjUtMS41LTEuNXMtMS41IDAuNjczLTEuNSAxLjV2Ni4xNjdsLTIuNzUtMS40NjZjLTAuMjI3LTAuMTMxLTAuNDg2LTAuMjAxLTAuNzUtMC4yMDEtMC44MjcgMC0xLjUgMC42NzMtMS41IDEuNSAwIDAuNDEyIDAuMTY0IDAuNzk2IDAuNDYxIDEuMDgyIDAuMDA0IDAuMDA0IDAuMDA4IDAuMDA3IDAuMDEyIDAuMDExbDMuNzM3IDMuNDA3aC0wLjcxYy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41djNjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgxMGMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di0zYzAtMC4yNzYtMC4yMjQtMC41LTAuNS0wLjVoLTAuNjkxbDEuMTM4LTIuMjc2YzAuMDM1LTAuMDY5IDAuMDUzLTAuMTQ2IDAuMDUzLTAuMjI0ek0xNCAxMy41YzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjVzLTAuNS0wLjIyNC0wLjUtMC41IDAuMjI0LTAuNSAwLjUtMC41IDAuNSAwLjIyNCAwLjUgMC41ek0xNCA5LjM4MmwtMS4zMDkgMi42MThoLTUuOTk3bC00LjU0NC00LjE0M2MtMC4wOTctMC4wOTUtMC4xNS0wLjIyMS0wLjE1LTAuMzU3IDAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjUgMC4wODUgMCAwLjE2NiAwLjAyMCAwLjIzOSAwLjA2MSAwLjAwOCAwLjAwNSAwLjAxNyAwLjAxMCAwLjAyNSAwLjAxNGwzLjUgMS44NjZjMC4xNTUgMC4wODMgMC4zNDIgMC4wNzggMC40OTItMC4wMTJzMC4yNDMtMC4yNTMgMC4yNDMtMC40Mjl2LTdjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXY1YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVzMC41LTAuMjI0IDAuNS0wLjVjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41czAuNS0wLjIyNCAwLjUtMC41YzAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjVzMC41IDAuMjI0IDAuNSAwLjV2MC41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVzMC41LTAuMjI0IDAuNS0wLjVjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXYyLjM4MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Qb2ludFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxNWgyLjVjMC44MjcgMCAxLjUtMC42NzMgMS41LTEuNSAwLTAuMjY3LTAuMDcwLTAuNTE4LTAuMTkzLTAuNzM2IDAuNDE3LTAuMjY3IDAuNjkzLTAuNzM0IDAuNjkzLTEuMjY0IDAtMC4zODQtMC4xNDUtMC43MzQtMC4zODMtMSAwLjIzOC0wLjI2NiAwLjM4My0wLjYxNiAwLjM4My0xIDAtMC4xNzUtMC4wMzAtMC4zNDQtMC4wODYtMC41aDMuNTg2YzAuODI3IDAgMS41LTAuNjczIDEuNS0xLjVzLTAuNjczLTEuNS0xLjUtMS41aC02LjE2N2wxLjQ2Ni0yLjc1YzAuMTMxLTAuMjI3IDAuMjAxLTAuNDg2IDAuMjAxLTAuNzUgMC0wLjgyNy0wLjY3My0xLjUtMS41LTEuNS0wLjQxMiAwLTAuNzk2IDAuMTY0LTEuMDgyIDAuNDYxLTAuMDA0IDAuMDA0LTAuMDA3IDAuMDA4LTAuMDExIDAuMDEybC0zLjQwNyAzLjczN3YtMC43MWMwLTAuMjc2LTAuMjI0LTAuNS0wLjUtMC41aC0zYy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41djEwYzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVoM2MwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di0wLjY5MWwyLjI3NiAxLjEzOGMwLjA2OSAwLjAzNSAwLjE0NiAwLjA1MyAwLjIyNCAwLjA1M3pNMi41IDE0Yy0wLjI3NiAwLTAuNS0wLjIyNC0wLjUtMC41czAuMjI0LTAuNSAwLjUtMC41IDAuNSAwLjIyNCAwLjUgMC41LTAuMjI0IDAuNS0wLjUgMC41ek02LjYxOCAxNGwtMi42MTgtMS4zMDl2LTUuOTk3bDQuMTQzLTQuNTQ0YzAuMDk1LTAuMDk3IDAuMjIxLTAuMTUgMC4zNTctMC4xNSAwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41IDAgMC4wODUtMC4wMjAgMC4xNjYtMC4wNjEgMC4yMzktMC4wMDUgMC4wMDgtMC4wMTAgMC4wMTctMC4wMTQgMC4wMjVsLTEuODY2IDMuNWMtMC4wODMgMC4xNTUtMC4wNzggMC4zNDIgMC4wMTMgMC40OTJzMC4yNTMgMC4yNDMgMC40MjkgMC4yNDNoN2MwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNWgtNWMtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXMwLjIyNCAwLjUgMC41IDAuNWMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNWMtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXMwLjIyNCAwLjUgMC41IDAuNWMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNWgtMC41Yy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41czAuMjI0IDAuNSAwLjUgMC41YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41aC0yLjM4MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Qb2ludERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNi41djIuNWMwIDAuODI3LTAuNjczIDEuNS0xLjUgMS41LTAuMjY3IDAtMC41MTgtMC4wNzAtMC43MzYtMC4xOTMtMC4yNjcgMC40MTctMC43MzQgMC42OTMtMS4yNjQgMC42OTMtMC4zODQgMC0wLjczNC0wLjE0NS0xLTAuMzgzLTAuMjY2IDAuMjM4LTAuNjE2IDAuMzgzLTEgMC4zODMtMC4xNzUgMC0wLjM0NC0wLjAzMC0wLjUtMC4wODZ2My41ODZjMCAwLjgyNy0wLjY3MyAxLjUtMS41IDEuNXMtMS41LTAuNjczLTEuNS0xLjV2LTYuMTY3bC0yLjc1IDEuNDY2Yy0wLjIyNyAwLjEzMS0wLjQ4NiAwLjIwMS0wLjc1IDAuMjAxLTAuODI3IDAtMS41LTAuNjczLTEuNS0xLjUgMC0wLjQxMiAwLjE2NC0wLjc5NiAwLjQ2MS0xLjA4MiAwLjAwNC0wLjAwNCAwLjAwOC0wLjAwNyAwLjAxMi0wLjAxMWwzLjczNy0zLjQwN2gtMC43MWMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtM2MwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41aDEwYzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjV2M2MwIDAuMjc2LTAuMjI0IDAuNS0wLjUgMC41aC0wLjY5MWwxLjEzOCAyLjI3NmMwLjAzNSAwLjA2OSAwLjA1MyAwLjE0NiAwLjA1MyAwLjIyNHpNMTQgMi41YzAtMC4yNzYtMC4yMjQtMC41LTAuNS0wLjVzLTAuNSAwLjIyNC0wLjUgMC41IDAuMjI0IDAuNSAwLjUgMC41IDAuNS0wLjIyNCAwLjUtMC41ek0xNCA2LjYxOGwtMS4zMDktMi42MThoLTUuOTk3bC00LjU0NCA0LjE0M2MtMC4wOTcgMC4wOTUtMC4xNSAwLjIyMS0wLjE1IDAuMzU3IDAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjUgMC4wODUgMCAwLjE2Ni0wLjAyMCAwLjIzOS0wLjA2MSAwLjAwOC0wLjAwNSAwLjAxNy0wLjAxMCAwLjAyNS0wLjAxNGwzLjUtMS44NjZjMC4xNTUtMC4wODMgMC4zNDItMC4wNzggMC40OTIgMC4wMTNzMC4yNDMgMC4yNTMgMC4yNDMgMC40Mjl2N2MwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41czAuNS0wLjIyNCAwLjUtMC41di01YzAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjVzMC41IDAuMjI0IDAuNSAwLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNXMwLjUtMC4yMjQgMC41LTAuNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVzMC41LTAuMjI0IDAuNS0wLjV2LTAuNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVzMC41LTAuMjI0IDAuNS0wLjV2LTIuMzgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBvaW50TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTVoLTIuNWMtMC44MjcgMC0xLjUtMC42NzMtMS41LTEuNSAwLTAuMjY3IDAuMDcwLTAuNTE4IDAuMTkzLTAuNzM2LTAuNDE3LTAuMjY3LTAuNjkzLTAuNzM0LTAuNjkzLTEuMjY0IDAtMC4zODQgMC4xNDUtMC43MzQgMC4zODMtMS0wLjIzOC0wLjI2Ni0wLjM4My0wLjYxNi0wLjM4My0xIDAtMC4xNzUgMC4wMzAtMC4zNDQgMC4wODYtMC41aC0zLjU4NmMtMC44MjcgMC0xLjUtMC42NzMtMS41LTEuNXMwLjY3My0xLjUgMS41LTEuNWg2LjE2N2wtMS40NjYtMi43NWMtMC4xMzEtMC4yMjctMC4yMDEtMC40ODYtMC4yMDEtMC43NSAwLTAuODI3IDAuNjczLTEuNSAxLjUtMS41IDAuNDEyIDAgMC43OTYgMC4xNjQgMS4wODIgMC40NjEgMC4wMDQgMC4wMDQgMC4wMDcgMC4wMDggMC4wMTEgMC4wMTJsMy40MDcgMy43Mzd2LTAuNzFjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNWgzYzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjV2MTBjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNWgtM2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtMC42OTFsLTIuMjc2IDEuMTM4Yy0wLjA2OSAwLjAzNS0wLjE0NiAwLjA1My0wLjIyNCAwLjA1M3pNMTMuNSAxNGMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41cy0wLjIyNC0wLjUtMC41LTAuNS0wLjUgMC4yMjQtMC41IDAuNSAwLjIyNCAwLjUgMC41IDAuNXpNOS4zODIgMTRsMi42MTgtMS4zMDl2LTUuOTk3bC00LjE0My00LjU0NGMtMC4wOTUtMC4wOTctMC4yMjEtMC4xNS0wLjM1Ny0wLjE1LTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjUgMCAwLjA4NSAwLjAyMCAwLjE2NiAwLjA2MSAwLjIzOSAwLjAwNSAwLjAwOCAwLjAxMCAwLjAxNyAwLjAxNCAwLjAyNWwxLjg2NiAzLjVjMC4wODMgMC4xNTUgMC4wNzggMC4zNDItMC4wMTIgMC40OTJzLTAuMjUzIDAuMjQzLTAuNDI5IDAuMjQzaC03Yy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41czAuMjI0IDAuNSAwLjUgMC41aDVjMC4yNzYgMCAwLjUgMC4yMjQgMC41IDAuNXMtMC4yMjQgMC41LTAuNSAwLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVjMC4yNzYgMCAwLjUgMC4yMjQgMC41IDAuNXMtMC4yMjQgMC41LTAuNSAwLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoMC41YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41Yy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41czAuMjI0IDAuNSAwLjUgMC41aDIuMzgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVdhcm5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxLjQ1bDYuNzA1IDEzLjM2M2gtMTMuNDA5bDYuNzA1LTEzLjM2M3pNOCAwYy0wLjM0NSAwLTAuNjkgMC4yMzMtMC45NTEgMC42OThsLTYuODI5IDEzLjYxMWMtMC41MjMgMC45My0wLjA3OCAxLjY5MSAwLjk4OSAxLjY5MWgxMy41ODNjMS4wNjcgMCAxLjUxMi0wLjc2MSAwLjk4OS0xLjY5MWgwbC02LjgyOS0xMy42MTFjLTAuMjYyLTAuNDY1LTAuNjA2LTAuNjk4LTAuOTUxLTAuNjk4djB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxM2MwIDAuNTUyLTAuNDQ4IDEtMSAxcy0xLTAuNDQ4LTEtMWMwLTAuNTUyIDAuNDQ4LTEgMS0xczEgMC40NDggMSAxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFjLTAuNTUyIDAtMS0wLjQ0OC0xLTF2LTNjMC0wLjU1MiAwLjQ0OC0xIDEtMXMxIDAuNDQ4IDEgMXYzYzAgMC41NTItMC40NDggMS0xIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTm90aWZpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMS41Yy0xLjczNiAwLTMuMzY5IDAuNjc2LTQuNTk2IDEuOTA0cy0xLjkwNCAyLjg2LTEuOTA0IDQuNTk2YzAgMS43MzYgMC42NzYgMy4zNjkgMS45MDQgNC41OTZzMi44NiAxLjkwNCA0LjU5NiAxLjkwNGMxLjczNiAwIDMuMzY5LTAuNjc2IDQuNTk2LTEuOTA0czEuOTA0LTIuODYgMS45MDQtNC41OTZjMC0xLjczNi0wLjY3Ni0zLjM2OS0xLjkwNC00LjU5NnMtMi44Ni0xLjkwNC00LjU5Ni0xLjkwNHpNOCAwdjBjNC40MTggMCA4IDMuNTgyIDggOHMtMy41ODIgOC04IDhjLTQuNDE4IDAtOC0zLjU4Mi04LThzMy41ODItOCA4LTh6TTcgMTFoMnYyaC0yek03IDNoMnY2aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVF1ZXN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTFoMnYyaC0yek0xMSA0YzAuNTUyIDAgMSAwLjQ0OCAxIDF2M2wtMyAyaC0ydi0xbDMtMnYtMWgtNXYtMmg2ek04IDEuNWMtMS43MzYgMC0zLjM2OSAwLjY3Ni00LjU5NiAxLjkwNHMtMS45MDQgMi44Ni0xLjkwNCA0LjU5NmMwIDEuNzM2IDAuNjc2IDMuMzY5IDEuOTA0IDQuNTk2czIuODYgMS45MDQgNC41OTYgMS45MDRjMS43MzYgMCAzLjM2OS0wLjY3NiA0LjU5Ni0xLjkwNHMxLjkwNC0yLjg2IDEuOTA0LTQuNTk2YzAtMS43MzYtMC42NzYtMy4zNjktMS45MDQtNC41OTZzLTIuODYtMS45MDQtNC41OTYtMS45MDR6TTggMHYwYzQuNDE4IDAgOCAzLjU4MiA4IDhzLTMuNTgyIDgtOCA4Yy00LjQxOCAwLTgtMy41ODItOC04czMuNTgyLTggOC04elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA2aC01LjV2LTUuNWMwLTAuMjc2LTAuMjI0LTAuNS0wLjUtMC41aC0zYy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41djUuNWgtNS41Yy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41djNjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWg1LjV2NS41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVoM2MwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di01LjVoNS41YzAuMjc2IDAgMC41LTAuMjI0IDAuNS0wLjV2LTNjMC0wLjI3Ni0wLjIyNC0wLjUtMC41LTAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDYuNXYzYzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVoMTVjMC4yNzYgMCAwLjUtMC4yMjQgMC41LTAuNXYtM2MwLTAuMjc2LTAuMjI0LTAuNS0wLjUtMC41aC0xNWMtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1JbmZvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNC43NWMwLTAuNDEyIDAuMzM4LTAuNzUgMC43NS0wLjc1aDAuNWMwLjQxMiAwIDAuNzUgMC4zMzggMC43NSAwLjc1djAuNWMwIDAuNDEyLTAuMzM4IDAuNzUtMC43NSAwLjc1aC0wLjVjLTAuNDEyIDAtMC43NS0wLjMzOC0wLjc1LTAuNzV2LTAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMmgtNHYtMWgxdi0zaC0xdi0xaDN2NGgxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNOCAxNC41Yy0zLjU5IDAtNi41LTIuOTEtNi41LTYuNXMyLjkxLTYuNSA2LjUtNi41IDYuNSAyLjkxIDYuNSA2LjUtMi45MSA2LjUtNi41IDYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DYW5jZWxDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDE0LjVjLTMuNTkgMC02LjUtMi45MS02LjUtNi41czIuOTEtNi41IDYuNS02LjUgNi41IDIuOTEgNi41IDYuNS0yLjkxIDYuNS02LjUgNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgNGwtMi41IDIuNS0yLjUtMi41LTEuNSAxLjUgMi41IDIuNS0yLjUgMi41IDEuNSAxLjUgMi41LTIuNSAyLjUgMi41IDEuNS0xLjUtMi41LTIuNSAyLjUtMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJsb2NrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNjU3IDIuMzQzYy0xLjUxMS0xLjUxMS0zLjUyLTIuMzQzLTUuNjU3LTIuMzQzcy00LjE0NiAwLjgzMi01LjY1NyAyLjM0M2MtMS41MTEgMS41MTEtMi4zNDMgMy41Mi0yLjM0MyA1LjY1N3MwLjgzMiA0LjE0NiAyLjM0MyA1LjY1N2MxLjUxMSAxLjUxMSAzLjUyIDIuMzQzIDUuNjU3IDIuMzQzczQuMTQ2LTAuODMyIDUuNjU3LTIuMzQzYzEuNTExLTEuNTExIDIuMzQzLTMuNTIgMi4zNDMtNS42NTdzLTAuODMyLTQuMTQ2LTIuMzQzLTUuNjU3ek0xNCA4YzAgMS4yOTQtMC40MTIgMi40OTQtMS4xMTEgMy40NzVsLTguMzY0LTguMzY0YzAuOTgxLTAuNjk5IDIuMTgxLTEuMTExIDMuNDc1LTEuMTExIDMuMzA4IDAgNiAyLjY5MiA2IDZ6TTIgOGMwLTEuMjk0IDAuNDEyLTIuNDk0IDEuMTExLTMuNDc1bDguMzY0IDguMzY0Yy0wLjk4MSAwLjY5OS0yLjE4MSAxLjExMS0zLjQ3NSAxLjExMS0zLjMwOCAwLTYtMi42OTItNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNyb3NzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljg1NCAxMi44NTRjLTAtMC0wLTAtMC0wbC00Ljg1NC00Ljg1NCA0Ljg1NC00Ljg1NGMwLTAgMC0wIDAtMCAwLjA1Mi0wLjA1MiAwLjA5MC0wLjExMyAwLjExNC0wLjE3OCAwLjA2Ni0wLjE3OCAwLjAyOC0wLjM4Ni0wLjExNC0wLjUyOWwtMi4yOTMtMi4yOTNjLTAuMTQzLTAuMTQzLTAuMzUxLTAuMTgxLTAuNTI5LTAuMTE0LTAuMDY1IDAuMDI0LTAuMTI2IDAuMDYyLTAuMTc4IDAuMTE0IDAgMC0wIDAtMCAwbC00Ljg1NCA0Ljg1NC00Ljg1NC00Ljg1NGMtMC0wLTAtMC0wLTAtMC4wNTItMC4wNTItMC4xMTMtMC4wOTAtMC4xNzgtMC4xMTQtMC4xNzgtMC4wNjYtMC4zODYtMC4wMjktMC41MjkgMC4xMTRsLTIuMjkzIDIuMjkzYy0wLjE0MyAwLjE0My0wLjE4MSAwLjM1MS0wLjExNCAwLjUyOSAwLjAyNCAwLjA2NSAwLjA2MiAwLjEyNiAwLjExNCAwLjE3OCAwIDAgMCAwIDAgMGw0Ljg1NCA0Ljg1NC00Ljg1NCA0Ljg1NGMtMCAwLTAgMC0wIDAtMC4wNTIgMC4wNTItMC4wOTAgMC4xMTMtMC4xMTQgMC4xNzgtMC4wNjYgMC4xNzgtMC4wMjkgMC4zODYgMC4xMTQgMC41MjlsMi4yOTMgMi4yOTNjMC4xNDMgMC4xNDMgMC4zNTEgMC4xODEgMC41MjkgMC4xMTQgMC4wNjUtMC4wMjQgMC4xMjYtMC4wNjIgMC4xNzgtMC4xMTQgMC0wIDAtMCAwLTBsNC44NTQtNC44NTQgNC44NTQgNC44NTRjMCAwIDAgMCAwIDAgMC4wNTIgMC4wNTIgMC4xMTMgMC4wOTAgMC4xNzggMC4xMTQgMC4xNzggMC4wNjYgMC4zODYgMC4wMjkgMC41MjktMC4xMTRsMi4yOTMtMi4yOTNjMC4xNDMtMC4xNDMgMC4xODEtMC4zNTEgMC4xMTQtMC41MjktMC4wMjQtMC4wNjUtMC4wNjItMC4xMjYtMC4xMTQtMC4xNzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2hlY2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgMmwtNy41IDcuNS0zLjUtMy41LTIuNSAyLjUgNiA2IDEwLTEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNoZWNrbWFyazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4yMSAxNC4zMzlsLTYuMjE3LTYuMTE5IDMuMDg0LTMuMDM1IDMuMTMzIDMuMDgzIDYuNzEzLTYuNjA3IDMuMDg0IDMuMDM1LTkuNzk3IDkuNjQzek0xLjY4NiA4LjIybDQuNTI0IDQuNDUzIDguMTA0LTcuOTc2LTEuMzkxLTEuMzY5LTYuNzEzIDYuNjA3LTMuMTMzLTMuMDgzLTEuMzkxIDEuMzY5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNwZWxsQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0aDJ2M2gxdi02YzAtMC41NS0wLjQ1LTEtMS0xaC0yYy0wLjU1IDAtMSAwLjQ1LTEgMXY2aDF2LTN6TTIgMWgydjJoLTJ2LTJ6TTE1IDF2LTFoLTNjLTAuNTUgMC0xIDAuNDUtMSAxdjVjMCAwLjU1IDAuNDUgMSAxIDFoM3YtMWgtM3YtNWgzek0xMCAyLjV2LTEuNWMwLTAuNTUtMC40NS0xLTEtMWgtM3Y3aDNjMC41NSAwIDEtMC40NSAxLTF2LTEuNWMwLTAuNTUtMC4xMzctMS0wLjY4OC0xIDAuNTUgMCAwLjY4OC0wLjQ1IDAuNjg4LTF6TTkgNmgtMnYtMmgydjJ6TTkgM2gtMnYtMmgydjJ6TTEzIDlsLTYuNSA3LTMuNS00LjUgMS4yODEtMS4wOTQgMi4yMTkgMi4zMTMgNS41LTQuNzE5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUVudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOGgtNXYtMmg1di0ybDMgMy0zIDN6TTE2IDB2MTNsLTYgM3YtM2gtNnYtNGgxdjNoNXYtOWw0LTJoLTl2NGgtMXYtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1FeGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwdi0yaC01di0yaDV2LTJsMyAzek0xMSA5djRoLTV2M2wtNi0zdi0xM2gxMXY1aC0xdi00aC04bDQgMnY5aDR2LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGxheTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDE0LjVjLTMuNTkgMC02LjUtMi45MS02LjUtNi41czIuOTEtNi41IDYuNS02LjUgNi41IDIuOTEgNi41IDYuNS0yLjkxIDYuNS02LjUgNi41ek02IDQuNWw2IDMuNS02IDMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTggMTQuNWMtMy41OSAwLTYuNS0yLjkxLTYuNS02LjVzMi45MS02LjUgNi41LTYuNSA2LjUgMi45MSA2LjUgNi41LTIuOTEgNi41LTYuNSA2LjV6TTUgNWgydjZoLTJ6TTkgNWgydjZoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTggMTQuNWMtMy41OSAwLTYuNS0yLjkxLTYuNS02LjVzMi45MS02LjUgNi41LTYuNSA2LjUgMi45MSA2LjUgNi41LTIuOTEgNi41LTYuNSA2LjV6TTUgNWg2djZoLTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUHJldmlvdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDE0LjVjLTMuNTkgMC02LjUtMi45MS02LjUtNi41czIuOTEtNi41IDYuNS02LjUgNi41IDIuOTEgNi41IDYuNS0yLjkxIDYuNS02LjUgNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOGw0LTN2NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMnY2aC0ydi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYzQuNDE4IDAgOCAzLjU4MiA4IDhzLTMuNTgyIDgtOCA4LTgtMy41ODItOC04IDMuNTgyLTggOC04ek04IDE0LjVjMy41OSAwIDYuNS0yLjkxIDYuNS02LjVzLTIuOTEtNi41LTYuNS02LjUtNi41IDIuOTEtNi41IDYuNSAyLjkxIDYuNSA2LjUgNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOGwtNC0zdjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNWgtMnY2aDJ2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmFja3dhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNOCAxLjVjMy41OSAwIDYuNSAyLjkxIDYuNSA2LjVzLTIuOTEgNi41LTYuNSA2LjUtNi41LTIuOTEtNi41LTYuNSAyLjkxLTYuNSA2LjUtNi41ek0xMSAxMC41bC0zLjUtMi41IDMuNS0yLjV6TTcgMTAuNWwtMy41LTIuNSAzLjUtMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZvcndhcmQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNOCAxNC41Yy0zLjU5IDAtNi41LTIuOTEtNi41LTYuNXMyLjkxLTYuNSA2LjUtNi41IDYuNSAyLjkxIDYuNSA2LjUtMi45MSA2LjUtNi41IDYuNXpNNSA1LjVsMy41IDIuNS0zLjUgMi41ek05IDUuNWwzLjUgMi41LTMuNSAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGxheTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAybDEwIDYtMTAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QYXVzZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyaDV2MTJoLTV6TTkgMmg1djEyaC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVN0b3AyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmgxMnYxMmgtMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmFja3dhcmQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMi41djVsNS01djExbC01LTV2NWwtNS41LTUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Gb3J3YXJkMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEzLjV2LTVsLTUgNXYtMTFsNSA1di01bDUuNSA1LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRmlyc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNHYtMTJoMnY1LjVsNS01djVsNS01djExbC01LTV2NWwtNS01djUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJ2MTJoLTJ2LTUuNWwtNSA1di01bC01IDV2LTExbDUgNXYtNWw1IDV2LTUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QcmV2aW91czIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNHYtMTJoMnY1LjVsNS01djExbC01LTV2NS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU5leHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJ2MTJoLTJ2LTUuNWwtNSA1di0xMWw1IDV2LTUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1FamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyaDE2djJoLTE2ek04IDJsOCA4aC0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Wb2x1bWVIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE3IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkwNyAxNC40MDdjLTAuMTkyIDAtMC4zODQtMC4wNzMtMC41My0wLjIyLTAuMjkzLTAuMjkzLTAuMjkzLTAuNzY4IDAtMS4wNjEgMS4zNjktMS4zNjkgMi4xMjMtMy4xOSAyLjEyMy01LjEyN3MtMC43NTQtMy43NTctMi4xMjMtNS4xMjdjLTAuMjkzLTAuMjkzLTAuMjkzLTAuNzY4IDAtMS4wNjFzMC43NjgtMC4yOTMgMS4wNjEgMGMxLjY1MyAxLjY1MyAyLjU2MyAzLjg1IDIuNTYzIDYuMTg3cy0wLjkxIDQuNTM0LTIuNTYzIDYuMTg3Yy0wLjE0NiAwLjE0Ni0wLjMzOCAwLjIyLTAuNTMgMC4yMnpNMTEuMjQzIDEyLjk5M2MtMC4xOTIgMC0wLjM4NC0wLjA3My0wLjUzLTAuMjItMC4yOTMtMC4yOTMtMC4yOTMtMC43NjggMC0xLjA2MSAyLjA0Ny0yLjA0NyAyLjA0Ny01LjM3OCAwLTcuNDI1LTAuMjkzLTAuMjkzLTAuMjkzLTAuNzY4IDAtMS4wNjFzMC43NjgtMC4yOTMgMS4wNjEgMGMxLjI3NSAxLjI3NSAxLjk3NyAyLjk3IDEuOTc3IDQuNzczcy0wLjcwMiAzLjQ5OC0xLjk3NyA0Ljc3M2MtMC4xNDYgMC4xNDYtMC4zMzggMC4yMi0wLjUzIDAuMjJ2MHpNOC41NzggMTEuNTc4Yy0wLjE5MiAwLTAuMzg0LTAuMDczLTAuNTMtMC4yMi0wLjI5My0wLjI5My0wLjI5My0wLjc2OCAwLTEuMDYxIDEuMjY3LTEuMjY3IDEuMjY3LTMuMzI5IDAtNC41OTYtMC4yOTMtMC4yOTMtMC4yOTMtMC43NjggMC0xLjA2MXMwLjc2OC0wLjI5MyAxLjA2MSAwYzEuODUyIDEuODUyIDEuODUyIDQuODY1IDAgNi43MTgtMC4xNDYgMC4xNDYtMC4zMzggMC4yMi0wLjUzIDAuMjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDE1Yy0wLjEzIDAtMC4yNTgtMC4wNTEtMC4zNTQtMC4xNDZsLTMuODU0LTMuODU0aC0xLjc5M2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41aDEuNzkzbDMuODU0LTMuODU0YzAuMTQzLTAuMTQzIDAuMzU4LTAuMTg2IDAuNTQ1LTAuMTA4czAuMzA5IDAuMjYgMC4zMDkgMC40NjJ2MTNjMCAwLjIwMi0wLjEyMiAwLjM4NS0wLjMwOSAwLjQ2Mi0wLjA2MiAwLjAyNi0wLjEyNyAwLjAzOC0wLjE5MSAwLjAzOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Wb2x1bWVNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjQzIDEyLjk5M2MtMC4xOTIgMC0wLjM4NC0wLjA3My0wLjUzLTAuMjItMC4yOTMtMC4yOTMtMC4yOTMtMC43NjggMC0xLjA2MSAyLjA0Ny0yLjA0NyAyLjA0Ny01LjM3OCAwLTcuNDI1LTAuMjkzLTAuMjkzLTAuMjkzLTAuNzY4IDAtMS4wNjFzMC43NjgtMC4yOTMgMS4wNjEgMGMxLjI3NSAxLjI3NSAxLjk3NyAyLjk3IDEuOTc3IDQuNzczcy0wLjcwMiAzLjQ5OC0xLjk3NyA0Ljc3M2MtMC4xNDYgMC4xNDYtMC4zMzggMC4yMi0wLjUzIDAuMjJ2MHpNOC41NzggMTEuNTc4Yy0wLjE5MiAwLTAuMzg0LTAuMDczLTAuNTMtMC4yMi0wLjI5My0wLjI5My0wLjI5My0wLjc2OCAwLTEuMDYxIDEuMjY3LTEuMjY3IDEuMjY3LTMuMzI5IDAtNC41OTYtMC4yOTMtMC4yOTMtMC4yOTMtMC43NjggMC0xLjA2MXMwLjc2OC0wLjI5MyAxLjA2MSAwYzEuODUyIDEuODUyIDEuODUyIDQuODY1IDAgNi43MTgtMC4xNDYgMC4xNDYtMC4zMzggMC4yMi0wLjUzIDAuMjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDE1Yy0wLjEzIDAtMC4yNTgtMC4wNTEtMC4zNTQtMC4xNDZsLTMuODU0LTMuODU0aC0xLjc5M2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41aDEuNzkzbDMuODU0LTMuODU0YzAuMTQzLTAuMTQzIDAuMzU4LTAuMTg2IDAuNTQ1LTAuMTA4czAuMzA5IDAuMjYgMC4zMDkgMC40NjJ2MTNjMCAwLjIwMi0wLjEyMiAwLjM4NS0wLjMwOSAwLjQ2Mi0wLjA2MiAwLjAyNi0wLjEyNyAwLjAzOC0wLjE5MSAwLjAzOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Wb2x1bWVMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41NzggMTEuNTc4Yy0wLjE5MiAwLTAuMzg0LTAuMDczLTAuNTMtMC4yMi0wLjI5My0wLjI5My0wLjI5My0wLjc2OCAwLTEuMDYxIDEuMjY3LTEuMjY3IDEuMjY3LTMuMzI5IDAtNC41OTYtMC4yOTMtMC4yOTMtMC4yOTMtMC43NjggMC0xLjA2MXMwLjc2OC0wLjI5MyAxLjA2MSAwYzEuODUyIDEuODUyIDEuODUyIDQuODY1IDAgNi43MTgtMC4xNDYgMC4xNDYtMC4zMzggMC4yMi0wLjUzIDAuMjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDE1Yy0wLjEzIDAtMC4yNTgtMC4wNTEtMC4zNTQtMC4xNDZsLTMuODU0LTMuODU0aC0xLjc5M2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41aDEuNzkzbDMuODU0LTMuODU0YzAuMTQzLTAuMTQzIDAuMzU4LTAuMTg2IDAuNTQ1LTAuMTA4czAuMzA5IDAuMjYgMC4zMDkgMC40NjJ2MTNjMCAwLjIwMi0wLjEyMiAwLjM4NS0wLjMwOSAwLjQ2Mi0wLjA2MiAwLjAyNi0wLjEyNyAwLjAzOC0wLjE5MSAwLjAzOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Wb2x1bWVNdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxNWMtMC4xMyAwLTAuMjU4LTAuMDUxLTAuMzU0LTAuMTQ2bC0zLjg1NC0zLjg1NGgtMS43OTNjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjV2LTVjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNWgxLjc5M2wzLjg1NC0zLjg1NGMwLjE0My0wLjE0MyAwLjM1OC0wLjE4NiAwLjU0NS0wLjEwOHMwLjMwOSAwLjI2IDAuMzA5IDAuNDYydjEzYzAgMC4yMDItMC4xMjIgMC4zODUtMC4zMDkgMC40NjItMC4wNjIgMC4wMjYtMC4xMjcgMC4wMzgtMC4xOTEgMC4wMzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVm9sdW1lTXV0ZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOS42NzR2MS4zMjZoLTEuMzI2bC0xLjY3NC0xLjY3NC0xLjY3NCAxLjY3NGgtMS4zMjZ2LTEuMzI2bDEuNjc0LTEuNjc0LTEuNjc0LTEuNjc0di0xLjMyNmgxLjMyNmwxLjY3NCAxLjY3NCAxLjY3NC0xLjY3NGgxLjMyNnYxLjMyNmwtMS42NzQgMS42NzQgMS42NzQgMS42NzR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDE1Yy0wLjEzIDAtMC4yNTgtMC4wNTEtMC4zNTQtMC4xNDZsLTMuODU0LTMuODU0aC0xLjc5M2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41aDEuNzkzbDMuODU0LTMuODU0YzAuMTQzLTAuMTQzIDAuMzU4LTAuMTg2IDAuNTQ1LTAuMTA4czAuMzA5IDAuMjYgMC4zMDkgMC40NjJ2MTNjMCAwLjIwMi0wLjEyMiAwLjM4NS0wLjMwOSAwLjQ2Mi0wLjA2MiAwLjAyNi0wLjEyNyAwLjAzOC0wLjE5MSAwLjAzOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Wb2x1bWVJbmNyZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5aC0zdjNoLTJ2LTNoLTN2LTJoM3YtM2gydjNoM3YyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxNWMtMC4xMyAwLTAuMjU4LTAuMDUxLTAuMzU0LTAuMTQ2bC0zLjg1NC0zLjg1NGgtMS43OTNjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjV2LTVjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNWgxLjc5M2wzLjg1NC0zLjg1NGMwLjE0My0wLjE0MyAwLjM1OC0wLjE4NiAwLjU0NS0wLjEwOHMwLjMwOSAwLjI2IDAuMzA5IDAuNDYydjEzYzAgMC4yMDItMC4xMjIgMC4zODUtMC4zMDkgMC40NjItMC4wNjIgMC4wMjYtMC4xMjcgMC4wMzgtMC4xOTEgMC4wMzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVm9sdW1lRGVjcmVhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA3aDh2MmgtOHYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMTVjLTAuMTMgMC0wLjI1OC0wLjA1MS0wLjM1NC0wLjE0NmwtMy44NTQtMy44NTRoLTEuNzkzYy0wLjI3NiAwLTAuNS0wLjIyNC0wLjUtMC41di01YzAtMC4yNzYgMC4yMjQtMC41IDAuNS0wLjVoMS43OTNsMy44NTQtMy44NTRjMC4xNDMtMC4xNDMgMC4zNTgtMC4xODYgMC41NDUtMC4xMDhzMC4zMDkgMC4yNiAwLjMwOSAwLjQ2MnYxM2MwIDAuMjAyLTAuMTIyIDAuMzg1LTAuMzA5IDAuNDYyLTAuMDYyIDAuMDI2LTAuMTI3IDAuMDM4LTAuMTkxIDAuMDM4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUxvb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA1aDEwdjNsNC00LTQtNHYzaC0xMnY2aDJ6TTE0IDExaC0xMHYtM2wtNCA0IDQgNHYtM2gxMnYtNmgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Mb29wMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45MDEgMi41OTljLTEuNDYzLTEuNTk3LTMuNTY1LTIuNTk5LTUuOTAxLTIuNTk5LTQuNDE4IDAtOCAzLjU4Mi04IDhoMS41YzAtMy41OSAyLjkxLTYuNSA2LjUtNi41IDEuOTIyIDAgMy42NDkgMC44MzUgNC44MzkgMi4xNjFsLTIuMzM5IDIuMzM5aDUuNXYtNS41bC0yLjA5OSAyLjA5OXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDhjMCAzLjU5LTIuOTEgNi41LTYuNSA2LjUtMS45MjIgMC0zLjY0OS0wLjgzNS00LjgzOS0yLjE2MWwyLjMzOS0yLjMzOWgtNS41djUuNWwyLjA5OS0yLjA5OWMxLjQ2MyAxLjU5NyAzLjU2NSAyLjU5OSA1LjkwMSAyLjU5OSA0LjQxOCAwIDgtMy41ODIgOC04aC0xLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSW5maW5pdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMjUgMTEuNzVjLTEuMDAyIDAtMS45NDMtMC4zOS0yLjY1Mi0xLjA5OGwtMS41OTgtMS41OTgtMS41OTggMS41OThjLTAuNzA4IDAuNzA4LTEuNjUgMS4wOTgtMi42NTIgMS4wOThzLTEuOTQ0LTAuMzktMi42NTItMS4wOThjLTAuNzA4LTAuNzA4LTEuMDk4LTEuNjUtMS4wOTgtMi42NTJzMC4zOS0xLjk0MyAxLjA5OC0yLjY1MmMwLjcwOC0wLjcwOCAxLjY1LTEuMDk4IDIuNjUyLTEuMDk4czEuOTQzIDAuMzkgMi42NTIgMS4wOThsMS41OTggMS41OTggMS41OTgtMS41OThjMC43MDgtMC43MDggMS42NS0xLjA5OCAyLjY1Mi0xLjA5OHMxLjk0NCAwLjM5IDIuNjUyIDEuMDk4YzAuNzA4IDAuNzA4IDEuMDk4IDEuNjUgMS4wOTggMi42NTJzLTAuMzkgMS45NDMtMS4wOTggMi42NTJjLTAuNzA4IDAuNzA4LTEuNjUgMS4wOTgtMi42NTIgMS4wOTh6TTEwLjY1MiA5LjU5OGMwLjQyNyAwLjQyNyAwLjk5NCAwLjY2MiAxLjU5OCAwLjY2MnMxLjE3MS0wLjIzNSAxLjU5OC0wLjY2MmMwLjQyNy0wLjQyNyAwLjY2Mi0wLjk5NCAwLjY2Mi0xLjU5OHMtMC4yMzUtMS4xNzEtMC42NjItMS41OThjLTAuNDI3LTAuNDI3LTAuOTk0LTAuNjYyLTEuNTk4LTAuNjYycy0xLjE3MSAwLjIzNS0xLjU5OCAwLjY2MmwtMS41OTggMS41OTggMS41OTggMS41OTh6TTMuNzUgNS43NGMtMC42MDQgMC0xLjE3MSAwLjIzNS0xLjU5OCAwLjY2MnMtMC42NjIgMC45OTQtMC42NjIgMS41OThjMCAwLjYwNCAwLjIzNSAxLjE3MSAwLjY2MiAxLjU5OHMwLjk5NCAwLjY2MiAxLjU5OCAwLjY2MmMwLjYwNCAwIDEuMTcxLTAuMjM1IDEuNTk4LTAuNjYybDEuNTk4LTEuNTk4LTEuNTk4LTEuNTk4Yy0wLjQyNy0wLjQyNy0wLjk5NC0wLjY2Mi0xLjU5OC0wLjY2MnYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNodWZmbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTFoLTEuNTg2bC0yLjUtMi41IDIuNS0yLjVoMS41ODZ2Mi41bDMuNS0zLjUtMy41LTMuNXYyLjVoLTJjLTAuMjY1IDAtMC41MiAwLjEwNS0wLjcwNyAwLjI5M2wtMi43OTMgMi43OTMtMi43OTMtMi43OTNjLTAuMTg4LTAuMTg4LTAuNDQyLTAuMjkzLTAuNzA3LTAuMjkzaC0zdjJoMi41ODZsMi41IDIuNS0yLjUgMi41aC0yLjU4NnYyaDNjMC4yNjUgMCAwLjUyLTAuMTA1IDAuNzA3LTAuMjkzbDIuNzkzLTIuNzkzIDIuNzkzIDIuNzkzYzAuMTg4IDAuMTg4IDAuNDQyIDAuMjkzIDAuNzA3IDAuMjkzaDJ2Mi41bDMuNS0zLjUtMy41LTMuNXYyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQXJyb3dVcExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMS41bDQtNCA4LjUgOC41IDMuNS0zLjUtOC41LTguNSA0LTRoLTExLjV2MTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMC41bC03LjUgNy41aDQuNXY4aDZ2LThoNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93VXBSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgMGw0IDQtOC41IDguNSAzLjUgMy41IDguNS04LjUgNCA0di0xMS41aC0xMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA4bC03LjUtNy41djQuNWgtOHY2aDh2NC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93RG93blJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDQuNWwtNCA0LTguNS04LjUtMy41IDMuNSA4LjUgOC41LTQgNGgxMS41di0xMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1LjVsNy41LTcuNWgtNC41di04aC02djhoLTQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BcnJvd0Rvd25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgMTZsLTQtNCA4LjUtOC41LTMuNS0zLjUtOC41IDguNS00LTR2MTEuNWgxMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wLjUgOGw3LjUgNy41di00LjVoOHYtNmgtOHYtNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93VXBMZWZ0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy43MDcgMTIuMjkzbC04LjI5My04LjI5M2gzLjU4NmMwLjU1MiAwIDEtMC40NDggMS0xcy0wLjQ0OC0xLTEtMWgtNmMtMC40MDQgMC0wLjc2OSAwLjI0NC0wLjkyNCAwLjYxNy0wLjA1MSAwLjEyNC0wLjA3NiAwLjI1NC0wLjA3NiAwLjM4M2gtMC4wMDF2NmMwIDAuNTUyIDAuNDQ4IDEgMSAxczEtMC40NDggMS0xdi0zLjU4Nmw4LjI5MyA4LjI5M2MwLjE5NSAwLjE5NSAwLjQ1MSAwLjI5MyAwLjcwNyAwLjI5M3MwLjUxMi0wLjA5OCAwLjcwNy0wLjI5M2MwLjM5MS0wLjM5IDAuMzkxLTEuMDI0IDAtMS40MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQXJyb3dVcDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNzA3IDYuMjkzbC01LTVjLTAuMzktMC4zOTEtMS4wMjQtMC4zOTEtMS40MTQgMGwtNSA1Yy0wLjM5MSAwLjM5MS0wLjM5MSAxLjAyNCAwIDEuNDE0czEuMDI0IDAuMzkxIDEuNDE0IDBsMy4yOTMtMy4yOTN2OS41ODZjMCAwLjU1MiAwLjQ0OCAxIDEgMXMxLTAuNDQ4IDEtMXYtOS41ODZsMy4yOTMgMy4yOTNjMC4xOTUgMC4xOTUgMC40NTEgMC4yOTMgMC43MDcgMC4yOTNzMC41MTItMC4wOTggMC43MDctMC4yOTNjMC4zOTEtMC4zOTEgMC4zOTEtMS4wMjQgMC0xLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BcnJvd1VwUmlnaHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNzA3IDEzLjcwN2w4LjI5My04LjI5M3YzLjU4NmMwIDAuNTUyIDAuNDQ4IDEgMSAxczEtMC40NDggMS0xdi02YzAtMC40MDQtMC4yNDQtMC43NjktMC42MTctMC45MjQtMC4xMjQtMC4wNTEtMC4yNTQtMC4wNzYtMC4zODMtMC4wNzZ2LTAuMDAxaC02Yy0wLjU1MiAwLTEgMC40NDgtMSAxczAuNDQ4IDEgMSAxaDMuNTg2bC04LjI5MyA4LjI5M2MtMC4xOTUgMC4xOTUtMC4yOTMgMC40NTEtMC4yOTMgMC43MDdzMC4wOTggMC41MTIgMC4yOTMgMC43MDdjMC4zOSAwLjM5MSAxLjAyNCAwLjM5MSAxLjQxNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93UmlnaHQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNzA3IDEzLjcwN2w1LTVjMC4zOTEtMC4zOSAwLjM5MS0xLjAyNCAwLTEuNDE0bC01LTVjLTAuMzkxLTAuMzkxLTEuMDI0LTAuMzkxLTEuNDE0IDBzLTAuMzkxIDEuMDI0IDAgMS40MTRsMy4yOTMgMy4yOTNoLTkuNTg2Yy0wLjU1MiAwLTEgMC40NDgtMSAxczAuNDQ4IDEgMSAxaDkuNTg2bC0zLjI5MyAzLjI5M2MtMC4xOTUgMC4xOTUtMC4yOTMgMC40NTEtMC4yOTMgMC43MDdzMC4wOTggMC41MTIgMC4yOTMgMC43MDdjMC4zOTEgMC4zOTEgMS4wMjQgMC4zOTEgMS40MTQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BcnJvd0Rvd25SaWdodDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4yOTMgMy43MDdsOC4yOTMgOC4yOTNoLTMuNTg2Yy0wLjU1MiAwLTEgMC40NDgtMSAxczAuNDQ4IDEgMSAxaDZjMC40MDQgMCAwLjc2OS0wLjI0NCAwLjkyNC0wLjYxNyAwLjA1MS0wLjEyNCAwLjA3Ni0wLjI1NCAwLjA3Ni0wLjM4M2gwLjAwMXYtNmMwLTAuNTUyLTAuNDQ4LTEtMS0xcy0xIDAuNDQ4LTEgMXYzLjU4NmwtOC4yOTMtOC4yOTNjLTAuMTk1LTAuMTk1LTAuNDUxLTAuMjkzLTAuNzA3LTAuMjkzcy0wLjUxMiAwLjA5OC0wLjcwNyAwLjI5M2MtMC4zOTEgMC4zOS0wLjM5MSAxLjAyNCAwIDEuNDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93RG93bjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNzA3IDkuNzA3bC01IDVjLTAuMzkgMC4zOTEtMS4wMjQgMC4zOTEtMS40MTQgMGwtNS01Yy0wLjM5MS0wLjM5MS0wLjM5MS0xLjAyNCAwLTEuNDE0czEuMDI0LTAuMzkxIDEuNDE0IDBsMy4yOTMgMy4yOTN2LTkuNTg2YzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDF2OS41ODZsMy4yOTMtMy4yOTNjMC4xOTUtMC4xOTUgMC40NTEtMC4yOTMgMC43MDctMC4yOTNzMC41MTIgMC4wOTggMC43MDcgMC4yOTNjMC4zOTEgMC4zOTEgMC4zOTEgMS4wMjQgMCAxLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BcnJvd0Rvd25MZWZ0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4yOTMgMi4yOTNsLTguMjkzIDguMjkzdi0zLjU4NmMwLTAuNTUyLTAuNDQ4LTEtMS0xcy0xIDAuNDQ4LTEgMXY2YzAgMC40MDQgMC4yNDQgMC43NjkgMC42MTcgMC45MjQgMC4xMjQgMC4wNTEgMC4yNTQgMC4wNzYgMC4zODMgMC4wNzZ2MC4wMDFsNi0wYzAuNTUyIDAgMS0wLjQ0OCAxLTFzLTAuNDQ4LTEtMS0xaC0zLjU4Nmw4LjI5My04LjI5M2MwLjE5NS0wLjE5NSAwLjI5My0wLjQ1MSAwLjI5My0wLjcwN3MtMC4wOTgtMC41MTItMC4yOTMtMC43MDdjLTAuMzktMC4zOTEtMS4wMjQtMC4zOTEtMS40MTQgMHYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUFycm93TGVmdDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4yOTMgMTMuNzA3bC01LTVjLTAuMzkxLTAuMzktMC4zOTEtMS4wMjQgMC0xLjQxNGw1LTVjMC4zOTEtMC4zOTEgMS4wMjQtMC4zOTEgMS40MTQgMHMwLjM5MSAxLjAyNCAwIDEuNDE0bC0zLjI5MyAzLjI5M2g5LjU4NmMwLjU1MiAwIDEgMC40NDggMSAxcy0wLjQ0OCAxLTEgMWgtOS41ODZsMy4yOTMgMy4yOTNjMC4xOTUgMC4xOTUgMC4yOTMgMC40NTEgMC4yOTMgMC43MDdzLTAuMDk4IDAuNTEyLTAuMjkzIDAuNzA3Yy0wLjM5MSAwLjM5MS0xLjAyNCAwLjM5MS0xLjQxNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOGMwIDQuNDE4IDMuNTgyIDggOCA4czgtMy41ODIgOC04LTMuNTgyLTgtOC04LTggMy41ODItOCA4ek0xNC41IDhjMCAzLjU5LTIuOTEgNi41LTYuNSA2LjVzLTYuNS0yLjkxLTYuNS02LjUgMi45MS02LjUgNi41LTYuNSA2LjUgMi45MSA2LjUgNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjA0MyAxMC40NTdsMS40MTQtMS40MTQtNC40NTctNC40NTctNC40NTcgNC40NTcgMS40MTQgMS40MTQgMy4wNDMtMy4wNDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDE0LjVjLTMuNTkgMC02LjUtMi45MS02LjUtNi41czIuOTEtNi41IDYuNS02LjUgNi41IDIuOTEgNi41IDYuNS0yLjkxIDYuNS02LjUgNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNTQzIDExLjA0M2wxLjQxNCAxLjQxNCA0LjQ1Ny00LjQ1Ny00LjQ1Ny00LjQ1Ny0xLjQxNCAxLjQxNCAzLjA0MyAzLjA0M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhjMC00LjQxOC0zLjU4Mi04LTgtOHMtOCAzLjU4Mi04IDggMy41ODIgOCA4IDggOC0zLjU4MiA4LTh6TTEuNSA4YzAtMy41OSAyLjkxLTYuNSA2LjUtNi41czYuNSAyLjkxIDYuNSA2LjUtMi45MSA2LjUtNi41IDYuNS02LjUtMi45MS02LjUtNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuOTU3IDUuNTQzbC0xLjQxNCAxLjQxNCA0LjQ1NyA0LjQ1NyA0LjQ1Ny00LjQ1Ny0xLjQxNC0xLjQxNC0zLjA0MyAzLjA0M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1DaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTgtOCAzLjU4Mi04IDggMy41ODIgOCA4IDh6TTggMS41YzMuNTkgMCA2LjUgMi45MSA2LjUgNi41cy0yLjkxIDYuNS02LjUgNi41LTYuNS0yLjkxLTYuNS02LjUgMi45MS02LjUgNi41LTYuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC40NTcgNC45NTdsLTEuNDE0LTEuNDE0LTQuNDU3IDQuNDU3IDQuNDU3IDQuNDU3IDEuNDE0LTEuNDE0LTMuMDQzLTMuMDQzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVRhYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAwaDF2OGgtMXYtOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDhoMXY4aC0xdi04elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTFoMTF2MmgtMTF2Mi41bC0zLjUtMy41IDMuNS0zLjV2Mi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDVoLTExdi0yaDExdi0yLjVsMy41IDMuNS0zLjUgMy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1vdmVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA4djZoMXYtNmgyLjVsLTMtMy0zIDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAzaDEuNXYxaC0xLjV2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDEuNXYxaC0xLjV2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzaDF2MS41aC0xdi0xLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA2LjVoMXYxLjVoLTF2LTEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgN2gxLjV2MWgtMS41di0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSA3aDEuNXYxaC0xLjV2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA0LjVoMXYxLjVoLTF2LTEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMXYxLjVoLTF2LTEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDExdjNoLTN2LTNoM3pNNiAxMGgtNXY1aDV2LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTW92ZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTF2LTZoLTF2NmgtMi41bDMgMyAzLTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0djNoLTN2LTNoM3pNNiAzaC01djVoNXYtNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDEwaDEuNXYxaC0xLjV2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMGgxLjV2MWgtMS41di0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTBoMXYxLjVoLTF2LTEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDEzLjVoMXYxLjVoLTF2LTEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMTRoMS41djFoLTEuNXYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgMTRoMS41djFoLTEuNXYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDExLjVoMXYxLjVoLTF2LTEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEyaDF2MS41aC0xdi0xLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU29ydEFscGhhQXNjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJ2LTEyaC0ydjEyaC0yLjVsMy41IDMuNSAzLjUtMy41aC0yLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAxNmgtNGMtMC4xODQgMC0wLjM1NC0wLjEwMS0wLjQ0MS0wLjI2NHMtMC4wNzctMC4zNiAwLjAyNS0wLjUxM2wzLjQ4Mi01LjIyM2gtMy4wNjZjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoNGMwLjE4NCAwIDAuMzU0IDAuMTAxIDAuNDQxIDAuMjY0czAuMDc3IDAuMzYtMC4wMjUgMC41MTNsLTMuNDgyIDUuMjIzaDMuMDY2YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljk0NyA2LjI3NmwtMy02Yy0wLjA4NS0wLjE2OS0wLjI1OC0wLjI3Ni0wLjQ0Ny0wLjI3NnMtMC4zNjMgMC4xMDctMC40NDcgMC4yNzZsLTMgNmMtMC4xMjMgMC4yNDctMC4wMjMgMC41NDcgMC4yMjQgMC42NzEgMC4wNzIgMC4wMzYgMC4xNDggMC4wNTMgMC4yMjMgMC4wNTMgMC4xODMgMCAwLjM2LTAuMTAxIDAuNDQ4LTAuMjc3bDAuODYyLTEuNzI0aDMuMzgybDAuODYyIDEuNzI0YzAuMTIzIDAuMjQ3IDAuNDI0IDAuMzQ3IDAuNjcxIDAuMjI0czAuMzQ3LTAuNDI0IDAuMjI0LTAuNjcxek0xMS4zMDkgNGwxLjE5MS0yLjM4MiAxLjE5MSAyLjM4MmgtMi4zODJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU29ydEFscGhhRGVzYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEydi0xMmgtMnYxMmgtMi41bDMuNSAzLjUgMy41LTMuNWgtMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgN2gtNGMtMC4xODQgMC0wLjM1NC0wLjEwMS0wLjQ0MS0wLjI2NHMtMC4wNzctMC4zNiAwLjAyNS0wLjUxM2wzLjQ4Mi01LjIyM2gtMy4wNjZjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoNGMwLjE4NCAwIDAuMzU0IDAuMTAyIDAuNDQxIDAuMjY0czAuMDc3IDAuMzYtMC4wMjUgMC41MTNsLTMuNDgyIDUuMjIzaDMuMDY2YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljk0NyAxNS4yNzZsLTMtNmMtMC4wODUtMC4xNjktMC4yNTgtMC4yNzYtMC40NDctMC4yNzZzLTAuMzYzIDAuMTA3LTAuNDQ3IDAuMjc2bC0zIDZjLTAuMTIzIDAuMjQ3LTAuMDIzIDAuNTQ3IDAuMjI0IDAuNjcxIDAuMDcyIDAuMDM2IDAuMTQ4IDAuMDUzIDAuMjIzIDAuMDUzIDAuMTgzIDAgMC4zNi0wLjEwMSAwLjQ0OC0wLjI3N2wwLjg2Mi0xLjcyNGgzLjM4MmwwLjg2MiAxLjcyNGMwLjEyMyAwLjI0NyAwLjQyNCAwLjM0NyAwLjY3MSAwLjIyNHMwLjM0Ny0wLjQyNCAwLjIyNC0wLjY3MXpNMTEuMzA5IDEzbDEuMTkxLTIuMzgyIDEuMTkxIDIuMzgyaC0yLjM4MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Tb3J0TnVtZXJpY0FzYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEydi0xMmgtMnYxMmgtMi41bDMuNSAzLjUgMy41LTMuNWgtMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgN2MtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtNS41aC0wLjVjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoMWMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41djZjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDloLTNjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjV2M2MwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDIuNXYyaC0yLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoM2MwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di02YzAtMC4yNzYtMC4yMjQtMC41LTAuNS0wLjV6TTEyIDEwaDJ2MmgtMnYtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Tb3J0TnVtYmVyaWNEZXNjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJ2LTEyaC0ydjEyaC0yLjVsMy41IDMuNSAzLjUtMy41aC0yLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSAxNmMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXYtNS41aC0wLjVjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoMWMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41djZjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTNjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjV2M2MwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDIuNXYyaC0yLjVjLTAuMjc2IDAtMC41IDAuMjI0LTAuNSAwLjVzMC4yMjQgMC41IDAuNSAwLjVoM2MwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41di02YzAtMC4yNzYtMC4yMjQtMC41LTAuNS0wLjV6TTEyIDFoMnYyaC0ydi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNvcnRBbW91bnRBc2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxMnYtMTJoLTJ2MTJoLTIuNWwzLjUgMy41IDMuNS0zLjVoLTIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDloOXYyaC05di0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNmg3djJoLTd2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAzaDV2MmgtNXYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDBoM3YyaC0zdi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNvcnRBbW91bnREZXNjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJ2LTEyaC0ydjEyaC0yLjVsMy41IDMuNSAzLjUtMy41aC0yLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAwaDl2MmgtOXYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDNoN3YyaC03di0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNmg1djJoLTV2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5aDN2MmgtM3YtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db21tYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgMTRjLTEuMzc5IDAtMi41LTEuMTIxLTIuNS0yLjV2LTEuNWgtMnYxLjVjMCAxLjM3OS0xLjEyMiAyLjUtMi41IDIuNXMtMi41LTEuMTIxLTIuNS0yLjUgMS4xMjItMi41IDIuNS0yLjVoMS41di0yaC0xLjVjLTEuMzc4IDAtMi41LTEuMTIyLTIuNS0yLjVzMS4xMjItMi41IDIuNS0yLjUgMi41IDEuMTIyIDIuNSAyLjV2MS41aDJ2LTEuNWMwLTEuMzc4IDEuMTIxLTIuNSAyLjUtMi41czIuNSAxLjEyMiAyLjUgMi41LTEuMTIxIDIuNS0yLjUgMi41aC0xLjV2MmgxLjVjMS4zNzkgMCAyLjUgMS4xMjEgMi41IDIuNXMtMS4xMjEgMi41LTIuNSAyLjV6TTEwIDEwdjEuNWMwIDAuODI3IDAuNjczIDEuNSAxLjUgMS41czEuNS0wLjY3MyAxLjUtMS41LTAuNjczLTEuNS0xLjUtMS41aC0xLjV6TTQuNSAxMGMtMC44MjcgMC0xLjUgMC42NzMtMS41IDEuNXMwLjY3MyAxLjUgMS41IDEuNSAxLjUtMC42NzMgMS41LTEuNXYtMS41aC0xLjV6TTcgOWgydi0yaC0ydjJ6TTEwIDZoMS41YzAuODI3IDAgMS41LTAuNjczIDEuNS0xLjVzLTAuNjczLTEuNS0xLjUtMS41LTEuNSAwLjY3My0xLjUgMS41djEuNXpNNC41IDNjLTAuODI3IDAtMS41IDAuNjczLTEuNSAxLjVzMC42NzMgMS41IDEuNSAxLjVoMS41di0xLjVjMC0wLjgyNy0wLjY3My0xLjUtMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TaGlmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDE0aC01Yy0wLjI3NiAwLTAuNS0wLjIyNC0wLjUtMC41di01LjVoLTJjLTAuMjAyIDAtMC4zODUtMC4xMjItMC40NjItMC4zMDlzLTAuMDM1LTAuNDAyIDAuMTA4LTAuNTQ1bDUtNWMwLjE5NS0wLjE5NSAwLjUxMi0wLjE5NSAwLjcwNyAwbDUgNWMwLjE0MyAwLjE0MyAwLjE4NiAwLjM1OCAwLjEwOCAwLjU0NXMtMC4yNiAwLjMwOS0wLjQ2MiAwLjMwOWgtMnY1LjVjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXpNNiAxM2g0di01LjVjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNWgxLjI5M2wtMy43OTMtMy43OTMtMy43OTMgMy43OTNoMS4yOTNjMC4yNzYgMCAwLjUgMC4yMjQgMC41IDAuNXY1LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ3RybCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDdjLTAuMTM5IDAtMC4yNzgtMC4wNTgtMC4zNzctMC4xNzFsLTMuMTI0LTMuNTctMy4xMjQgMy41N2MtMC4xODIgMC4yMDgtMC40OTggMC4yMjktMC43MDYgMC4wNDdzLTAuMjI5LTAuNDk4LTAuMDQ3LTAuNzA2bDMuNS00YzAuMDk1LTAuMTA4IDAuMjMyLTAuMTcxIDAuMzc2LTAuMTcxczAuMjgxIDAuMDYyIDAuMzc2IDAuMTcxbDMuNSA0YzAuMTgyIDAuMjA4IDAuMTYxIDAuNTI0LTAuMDQ3IDAuNzA2LTAuMDk1IDAuMDgzLTAuMjEyIDAuMTI0LTAuMzI5IDAuMTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU9wdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEzaC00Yy0wLjE5OCAwLTAuMzc3LTAuMTE2LTAuNDU3LTAuMjk3bC0zLjg2OC04LjcwM2gtNC42NzVjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoNWMwLjE5OCAwIDAuMzc3IDAuMTE2IDAuNDU3IDAuMjk3bDMuODY4IDguNzAzaDMuNjc1YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgNGgtNWMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyNC0wLjUgMC41LTAuNWg1YzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNoZWNrYm94Q2hlY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAwaC0xMmMtMS4xIDAtMiAwLjktMiAydjEyYzAgMS4xIDAuOSAyIDIgMmgxMmMxLjEgMCAyLTAuOSAyLTJ2LTEyYzAtMS4xLTAuOS0yLTItMnpNNyAxMi40MTRsLTMuNzA3LTMuNzA3IDEuNDE0LTEuNDE0IDIuMjkzIDIuMjkzIDQuNzkzLTQuNzkzIDEuNDE0IDEuNDE0LTYuMjA3IDYuMjA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNoZWNrYm94VW5jaGVja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDBoLTEyYy0xLjEgMC0yIDAuOS0yIDJ2MTJjMCAxLjEgMC45IDIgMiAyaDEyYzEuMSAwIDItMC45IDItMnYtMTJjMC0xLjEtMC45LTItMi0yek0xNCAxNGgtMTJ2LTEyaDEydjEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVJhZGlvQ2hlY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDggOC0zLjU4MiA4LTgtMy41ODItOC04LTh6TTggMTRjLTMuMzE0IDAtNi0yLjY4Ni02LTZzMi42ODYtNiA2LTZjMy4zMTQgMCA2IDIuNjg2IDYgNnMtMi42ODYgNi02IDZ6TTUgOGMwLTEuNjU3IDEuMzQzLTMgMy0zczMgMS4zNDMgMyAzYzAgMS42NTctMS4zNDMgMy0zIDNzLTMtMS4zNDMtMy0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVJhZGlvQ2hlY2tlZDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek04IDEwYy0xLjEwNSAwLTItMC44OTUtMi0yczAuODk1LTIgMi0yYzEuMTA1IDAgMiAwLjg5NSAyIDJzLTAuODk1IDItMiAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVJhZGlvVW5jaGVja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNOCAxNGMtMy4zMTQgMC02LTIuNjg2LTYtNnMyLjY4Ni02IDYtNmMzLjMxNCAwIDYgMi42ODYgNiA2cy0yLjY4NiA2LTYgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Dcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDRsMy0zLTEtMS0zIDNoLTd2LTNoLTJ2M2gtM3YyaDN2OGg4djNoMnYtM2gzdi0yaC0zdi03ek01IDVoNWwtNSA1di01ek02IDExbDUtNXY1aC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1ha2VHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJoLTJjLTAuNTUgMC0xIDAuNDUtMSAxdjJjMCAwLjU1IDAuNDUgMSAxIDFoMmMwLjU1IDAgMS0wLjQ1IDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2aDJjMC41NSAwIDEtMC40NSAxLTF2LTJjMC0wLjU1LTAuNDUtMS0xLTFoLTJjLTAuNTUgMC0xIDAuNDUtMSAxdjJjMCAwLjU1IDAuNDUgMSAxIDF6TTExIDNoMnYyaC0ydi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTBoLTJjLTAuNTUgMC0xIDAuNDUtMSAxdjJjMCAwLjU1IDAuNDUgMSAxIDFoMmMwLjU1IDAgMS0wLjQ1IDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMXpNNSAxM2gtMnYtMmgydjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTBoLTJjLTAuNTUgMC0xIDAuNDUtMSAxdjJjMCAwLjU1IDAuNDUgMSAxIDFoMmMwLjU1IDAgMS0wLjQ1IDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA4aC0xYy0xLjMzNiAwLTIuNTkxLTAuNTItMy41MzYtMS40NjRzLTEuNDY0LTIuMi0xLjQ2NC0zLjUzNnYtMWMwLTEuMS0wLjktMi0yLTJoLTRjLTEuMSAwLTIgMC45LTIgMnY0YzAgMS4xIDAuOSAyIDIgMmgxYzEuMzM2IDAgMi41OTEgMC41MiAzLjUzNiAxLjQ2NHMxLjQ2NCAyLjIgMS40NjQgMy41MzZ2MWMwIDEuMSAwLjkgMiAyIDJoNGMxLjEgMCAyLTAuOSAyLTJ2LTRjMC0xLjEtMC45LTItMi0yek0xNSAxNGMwIDAuMjY1LTAuMTA1IDAuNTE1LTAuMjk1IDAuNzA1cy0wLjQ0IDAuMjk1LTAuNzA1IDAuMjk1aC00Yy0wLjI2NSAwLTAuNTE1LTAuMTA1LTAuNzA1LTAuMjk1cy0wLjI5NS0wLjQ0LTAuMjk1LTAuNzA1di0xYzAtMy4zMTQtMi42ODYtNi02LTZoLTFjLTAuMjY1IDAtMC41MTUtMC4xMDUtMC43MDUtMC4yOTVzLTAuMjk1LTAuNDQxLTAuMjk1LTAuNzA1di00YzAtMC4yNjUgMC4xMDUtMC41MTUgMC4yOTUtMC43MDVzMC40NC0wLjI5NSAwLjcwNS0wLjI5NWg0YzAuMjY1IDAgMC41MTUgMC4xMDUgMC43MDUgMC4yOTVzMC4yOTUgMC40NCAwLjI5NSAwLjcwNXYxYzAgMy4zMTQgMi42ODYgNiA2IDZoMWMwLjI2NSAwIDAuNTE1IDAuMTA1IDAuNzA1IDAuMjk1czAuMjk1IDAuNDQgMC4yOTUgMC43MDV2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Vbmdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNy4yNWMwIDAuNDEyLTAuMzM4IDAuNzUtMC43NSAwLjc1aC0xLjVjLTAuNDEzIDAtMC43NS0wLjMzOC0wLjc1LTAuNzV2LTEuNWMwLTAuNDEyIDAuMzM3LTAuNzUgMC43NS0wLjc1aDEuNWMwLjQxMiAwIDAuNzUgMC4zMzggMC43NSAwLjc1djEuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3LjI1YzAgMC40MTItMC4zMzggMC43NS0wLjc1IDAuNzVoLTEuNWMtMC40MTIgMC0wLjc1LTAuMzM4LTAuNzUtMC43NXYtMS41YzAtMC40MTIgMC4zMzgtMC43NSAwLjc1LTAuNzVoMS41YzAuNDEyIDAgMC43NSAwLjMzOCAwLjc1IDAuNzV2MS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTIuMjVjMCAwLjQxMi0wLjMzOCAwLjc1LTAuNzUgMC43NWgtMS41Yy0wLjQxMyAwLTAuNzUtMC4zMzgtMC43NS0wLjc1di0xLjVjMC0wLjQxMiAwLjMzNy0wLjc1IDAuNzUtMC43NWgxLjVjMC40MTIgMCAwLjc1IDAuMzM4IDAuNzUgMC43NXYxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTIuMjVjMCAwLjQxMi0wLjMzOCAwLjc1LTAuNzUgMC43NWgtMS41Yy0wLjQxMiAwLTAuNzUtMC4zMzgtMC43NS0wLjc1di0xLjVjMC0wLjQxMiAwLjMzOC0wLjc1IDAuNzUtMC43NWgxLjVjMC40MTIgMCAwLjc1IDAuMzM4IDAuNzUgMC43NXYxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMjUxIDIuNWwxLjc0OS0xLjc0OXYtMC43NTFoLTAuNzUxbC0xLjc0OSAxLjc0OS0xLjc0OS0xLjc0OWgtMC43NTF2MC43NTFsMS43NDkgMS43NDktMS43NDkgMS43NDl2MC43NTFoMC43NTFsMS43NDktMS43NDkgMS43NDkgMS43NDloMC43NTF2LTAuNzUxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTJoMXYyaC0xdi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOWgxdjJoLTF2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gxdjJoLTF2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTNoMXYyaC0xdi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEwaDF2MmgtMXYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDZoMXYyaC0xdi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgM2gxdjJoLTF2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyaDJ2MWgtMnYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJoMnYxaC0ydi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmgydjFoLTJ2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNWgydjFoLTJ2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTVoMnYxaC0ydi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTVoMnYxaC0ydi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTVoMnYxaC0ydi0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNjaXNzb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjI3OSAxMC42MmMtMS4wNDItMS42MjgtMi44MjktMi4zNDUtMy45OTItMS42MDEtMC4xIDAuMDY0LTAuMTkzIDAuMTM4LTAuMjc3IDAuMjE4bC0xLjI0MS0xLjk0MiAyLjg2Ny00LjVjMC4yMzUtMC40MzMgMC4zMjEtMC45NDkgMC4yMDctMS40NjgtMC4xMDktMC40OTYtMC4zODMtMC45MTMtMC43NTItMS4yMDdsLTAuMTkyLTAuMTIyLTMuMzk4IDUuMzE0LTMuMzk4LTUuMzE0LTAuMTkyIDAuMTIyYy0wLjM2OSAwLjI5NC0wLjY0MyAwLjcxMS0wLjc1MiAxLjIwNy0wLjExNCAwLjUxOS0wLjAyNyAxLjAzNSAwLjIwNyAxLjQ2OGwyLjg2NyA0LjUtMS4yNDEgMS45NDJjLTAuMDg1LTAuMDgxLTAuMTc3LTAuMTU0LTAuMjc3LTAuMjE4LTEuMTYzLTAuNzQ0LTIuOTUtMC4wMjgtMy45OTIgMS42MDFzLTAuOTQ0IDMuNTUxIDAuMjE5IDQuMjk2YzEuMTYzIDAuNzQ0IDIuOTUgMC4wMjggMy45OTItMS42MDFsMi41NjctNC4wMjkgMi41NjcgNC4wMjljMS4wNDIgMS42MjggMi44MjkgMi4zNDUgMy45OTIgMS42MDFzMS4yNjEtMi42NjcgMC4yMTktNC4yOTZ6TTMuNjcgMTIuNTA3Yy0wLjQ2OSAwLjczMy0xLjA3MSAxLjA4OS0xLjQ3OCAxLjE3OS0wIDAtMCAwLTAgMC0wLjEzMyAwLjAyOS0wLjMxNyAwLjA0Ny0wLjQ0My0wLjAzMy0wLjEzOS0wLjA4OS0wLjIzMS0wLjMyNC0wLjI0Ny0wLjYyOS0wLjAyNS0wLjQ5NCAwLjE1MS0xLjA3NiAwLjQ4My0xLjU5NCAwLjQ2OS0wLjczMyAxLjA3MS0xLjA4OSAxLjQ3OC0xLjE3OSAwLjEzMy0wLjAyOSAwLjMxNy0wLjA0NyAwLjQ0MyAwLjAzMyAwLjEzOSAwLjA4OSAwLjIzMSAwLjMyNCAwLjI0NyAwLjYyOSAwLjAyNSAwLjQ5NS0wLjE1MSAxLjA3Ni0wLjQ4MyAxLjU5NHpNNy41IDhjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjUgMC41IDAuMjI0IDAuNSAwLjUtMC4yMjQgMC41LTAuNSAwLjV6TTEzLjQ5OCAxMy4wMjNjLTAuMDE2IDAuMzA1LTAuMTA4IDAuNTQtMC4yNDcgMC42MjktMC4xMjUgMC4wODAtMC4zMSAwLjA2Mi0wLjQ0MyAwLjAzMyAwIDAgMCAwLTAgMC0wLjQwNy0wLjA4OS0xLjAwOS0wLjQ0Ni0xLjQ3OC0xLjE3OS0wLjMzMi0wLjUxOS0wLjUwOC0xLjEtMC40ODMtMS41OTQgMC4wMTYtMC4zMDUgMC4xMDgtMC41NCAwLjI0Ny0wLjYyOSAwLjEyNS0wLjA4MCAwLjMxLTAuMDYyIDAuNDQzLTAuMDMzIDAuNDA3IDAuMDg5IDEuMDA5IDAuNDQ2IDEuNDc4IDEuMTc5IDAuMzMyIDAuNTE5IDAuNTA4IDEuMSAwLjQ4MyAxLjU5NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMS4xMTktOCAyLjV2MS41bDYgNnY1YzAgMC41NTIgMC44OTUgMSAyIDFzMi0wLjQ0OCAyLTF2LTVsNi02di0xLjVjMC0xLjM4MS0zLjU4Mi0yLjUtOC0yLjV6TTEuNDc1IDIuMTY5YzAuMzc0LTAuMjEzIDAuOS0wLjQxNiAxLjUyLTAuNTg2IDEuMzc0LTAuMzc2IDMuMTUyLTAuNTgzIDUuMDA1LTAuNTgzczMuNjMxIDAuMjA3IDUuMDA1IDAuNTgzYzAuNjIgMC4xNyAxLjE0NiAwLjM3MiAxLjUyIDAuNTg2IDAuMjQ3IDAuMTQxIDAuMzggMC4yNiAwLjQ0MiAwLjMzMS0wLjA2MiAwLjA3MS0wLjE5NSAwLjE5LTAuNDQyIDAuMzMxLTAuMzc0IDAuMjEzLTAuOSAwLjQxNi0xLjUyIDAuNTg2LTEuMzc0IDAuMzc2LTMuMTUyIDAuNTgzLTUuMDA1IDAuNTgzcy0zLjYzMS0wLjIwNy01LjAwNS0wLjU4M2MtMC42Mi0wLjE3LTEuMTQ2LTAuMzcyLTEuNTItMC41ODYtMC4yNDctMC4xNDEtMC4zOC0wLjI2LTAuNDQyLTAuMzMxIDAuMDYyLTAuMDcxIDAuMTk1LTAuMTkgMC40NDItMC4zMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40OTQgMC4yNTNjLTEuNDE0IDAtMi4zMjItMC4yNTMtMy43NzktMC4yNTMtNC43MDggMC02LjkwMyAyLjY4MS02LjkwMyA1LjQwNCAwIDEuNjA0IDAuNzYgMi4xMzIgMi4yNTkgMi4xMzItMC4xMDYtMC4yMzItMC4yOTYtMC40ODYtMC4yOTYtMS42MjYgMC0zLjE4OCAxLjIwMy00LjExNyAyLjc0NC00LjE4IDAgMC0xLjI2NCAxMi4zOTYtNC45MzQgMTMuODgzdjAuMzg1aDQuOTQ3bDEuNjg4LThoMy4wOTFsMC42ODktMmgtMy4zNThsMC44MTItMy44NDdjMC45MjkgMC4xOSAxLjgzNyAwLjM4IDIuNjE4IDAuMzggMC45NzEgMCAxLjg1OC0wLjI5NiAyLjM0My0yLjUzMy0wLjU5MSAwLjE5LTEuMjI0IDAuMjUzLTEuOTIxIDAuMjUzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUxpZ2F0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzLjYyMmMwLTAuMDAxIDAtMC4wMDEgMC0wLjAwMmwtMC4wMDUtNi44MjEtMS45OTIgMC4wOTdoLTMuOTM2di0wLjMzNmMwLTEuMjc0IDAuMDkxLTIuNTQ2IDAuMjY5LTMuMDQyIDAuMTIzLTAuMzQzIDAuMzUzLTAuNjUyIDAuNjgzLTAuOTE5IDAuMzIyLTAuMjYxIDAuNjQzLTAuMzkzIDAuOTU1LTAuMzkzIDAuMjYyIDAgMC40OCAwLjA0NSAwLjY0NyAwLjEzNCAwLjIzNSAwLjEzNCAwLjQ2NCAwLjM1OSAwLjY4MiAwLjY2OSAwLjU3NyAwLjgyIDAuODEyIDEuMDM4IDAuOTM5IDEuMTMxIDAuMjE2IDAuMTU4IDAuNDc3IDAuMjM4IDAuNzc2IDAuMjM4IDAuMjkyIDAgMC41NDYtMC4xMDkgMC43NTctMC4zMjQgMC4yMDktMC4yMTMgMC4zMTUtMC40NzkgMC4zMTUtMC43OTIgMC0wLjMzNS0wLjEzOS0wLjY5MS0wLjQxNC0xLjA1Ny0wLjI2OC0wLjM1OC0wLjY4My0wLjY1Mi0xLjIzMi0wLjg3NS0wLjUzNi0wLjIxOC0xLjE0LTAuMzI5LTEuNzkzLTAuMzI5LTAuOTQ5IDAtMS44MTMgMC4yMjgtMi41NjggMC42NzgtMC43NTcgMC40NTEtMS4zMzcgMS4wNzctMS43MjUgMS44NjMtMC4zNTkgMC43MjgtMC4zMzMgMi4xMDUtMC4zNTUgMy4zNTVoLTEuOTY1djEuMTE2aDEuOTYydjUuMDczYzAgMS4xMi0wLjM0MiAxLjQyMi0wLjQ3MiAxLjU4My0wLjE3OSAwLjIyMi0wLjUwOSAwLjQ1NS0wLjk0NCAwLjQ1NWgtMC42MDR2MC44NzhoNi4wMjF2LTAuODc4aC0wLjEwNWMtMS40MjQgMC0xLjgyOC0wLjE1NC0xLjgyOC0xLjg4OCAwLTAgMC0wLjAwMSAwLTAuMDAxbC0wLjAwMS01LjIyMmgyLjE5MWMxLjE2MyAwIDEuNDMgMC4wNTQgMS40OTEgMC4wNzcgMC4wNzQgMC4wMjggMC4xNjkgMC4wNzUgMC4yMDQgMC4xNDMgMC4wMTQgMC4wMjYgMC4wODEgMC4zOTEgMC4wODEgMS4yOTZ2My45MTdjMCAwLjkxMy0wLjExMSAxLjIxNy0wLjE3OSAxLjMxOS0wLjE0NSAwLjIyMi0wLjMxOSAwLjM0NS0wLjg1NCAwLjM1OHYwLjg3OWg0LjU4OHYtMC44NzNjLTEuNDMxIDAtMS41ODgtMC4xNTMtMS41ODgtMS41MDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTGlnYXR1cmUyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjM2NCAxNC4zMzVjLTAuMTgzIDAtMS4zMDctMC4yMDYtMS4zNzUtMC40NTgtMC4xNjEtMC42MTktMC4xODMtMS4yODQtMC4xODMtMi4wNDB2LTguNDUzYzAtMS4yNjEgMC4yNTItMS45OTQgMC4yNTItMS45OTQtMC4wMjMtMC4xMTUtMC4xMzgtMC4zNjctMC4yNzUtMC4zNjdoLTAuMDY5Yy0wLjA2OSAwLTAuODcxIDAuNTA0LTEuNjA1IDAuNTA0LTAuNTk2LTAtMC45NjctMC41MjctMS42NTUtMC41MjctMi44OTIgMC00LjI0OSAyLjM0OS00LjI0OSA1LjY3MnYwLjE3M2MwIDAuMDY5LTAuMDQ2IDAuMTM4LTAuMTE1IDAuMTM4aC0wLjk0Yy0wLjExNSAwLTAuMzQ0IDAuNjQyLTAuMzQ0IDAuOTQgMCAwLjA5MiAwLjAyMyAwLjEzNyAwLjA2OSAwLjEzN2gxLjIxNWMwLjA2OSAwIDAuMTE1IDAuMDkyIDAuMTE1IDAuMTYgMCAyLjA0MC0wLjAyMyA0LjA1Mi0wLjAyMyA0LjA1MiAwIDAuMzIxLTAuMDIzIDEuMDMxLTAuMTYgMS42MDUtMC4wNjkgMC4yNTItMS4xMjMgMC40NTgtMS4zOTggMC40NTgtMC4xMTUgMC0wLjExNSAwLjU1IDAgMC42NjUgMC45NC0wLjA0NiAxLjU1OS0wLjExNSAyLjQ5OS0wLjExNSAwLjg3MSAwIDEuNTM2IDAuMDY5IDIuNDUzIDAuMTE1IDAuMDQ2LTAuMTM4IDAuMDQ2LTAuNjY1LTAuMDY5LTAuNjY1LTAuMTgzIDAtMS4zMDctMC4yMDYtMS4zNzUtMC40NTgtMC4xNi0wLjYxOS0wLjE2LTEuMjg0LTAuMTgzLTIuMDQwdi0zLjYzOWMwLTAuMDY5IDAuMDY5LTAuMTM4IDAuMTM4LTAuMTM4aDIuMzYxYzAuMTYtMC4zMjEgMC4yNzUtMC43MTEgMC4yNzUtMC45MTcgMC0wLjEzOCAwLTAuMTYtMC4xMTUtMC4xNmgtMi41NDRjLTAuMDQ2IDAtMC4xMTUtMC4wNjktMC4xMTUtMC4xMTV2LTAuODI1YzAtMi4wNDAgMC44MzYtMy44MzcgMi4yMzQtMy44MzcgMC45OSAwIDEuODU0IDAuNjQyIDEuODU0IDMuMDkzIDAgMCAwIDAgMCAwIDAuMDAzIDAuMDYzIDAuMDA1IDAuMTE0IDAuMDA1IDAuMTQ4djYuODI1YzAgMC4zMjEtMC4wMjMgMS4wMzEtMC4xNiAxLjYwNS0wLjA2OSAwLjI1Mi0xLjEyMyAwLjQ1OC0xLjM5OCAwLjQ1OC0wLjExNSAwLTAuMTE1IDAuNTUgMCAwLjY2NSAwLjk0LTAuMDQ2IDEuNTU5LTAuMTE1IDIuNDk5LTAuMTE1IDAuODcxIDAgMS41MzYgMC4wNjkgMi40NTMgMC4xMTUgMC4wNDYtMC4xMzcgMC4wNDYtMC42NjUtMC4wNjktMC42NjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVGV4dEhlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMmgybC0yLjUgMy0yLjUtM2gydi04aC0ybDIuNS0zIDIuNSAzaC0yek0xMCAxdjRsLTEtMmgtM3YxMWgydjFoLTZ2LTFoMnYtMTFoLTNsLTEgMnYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1UZXh0V2lkdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNHYybC0zLTIuNSAzLTIuNXYyaDh2LTJsMyAyLjUtMyAyLjV2LTJ6TTEzIDF2NGwtMS0yaC0zdjdoMnYxaC02di0xaDJ2LTdoLTNsLTEgMnYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Gb250U2l6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDhoNnYyaC0ydjZoLTJ2LTZoLTJ6TTE1IDRoLTMuOTM0djEyaC0yLjEzM3YtMTJoLTMuOTM0di0yaDEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUJvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDYxIDcuNTczYzAuNTg2LTAuNjk2IDAuOTM5LTEuNTk0IDAuOTM5LTIuNTczIDAtMi4yMDYtMS43OTQtNC00LTRoLTV2MTRoNmMyLjIwNiAwIDQtMS43OTQgNC00IDAtMS40NTItMC43NzgtMi43MjYtMS45MzktMy40Mjd6TTYgM2gxLjU4NmMwLjg3NCAwIDEuNTg2IDAuODk3IDEuNTg2IDJzLTAuNzExIDItMS41ODYgMmgtMS41ODZ2LTR6TTguNDg0IDEzaC0yLjQ4NHYtNGgyLjQ4NGMwLjkxMyAwIDEuNjU2IDAuODk3IDEuNjU2IDJzLTAuNzQzIDItMS42NTYgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1VbmRlcmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMWgydjYuNWMwIDIuNDg1LTIuMjM5IDQuNS01IDQuNXMtNS0yLjAxNS01LTQuNXYtNi41aDJ2Ni41YzAgMC42MjggMC4yODUgMS4yMyAwLjgwMiAxLjY5NSAwLjU3NyAwLjUxOSAxLjM1NyAwLjgwNSAyLjE5OCAwLjgwNXMxLjYyMS0wLjI4NiAyLjE5OC0wLjgwNWMwLjUxNy0wLjQ2NiAwLjgwMi0xLjA2OCAwLjgwMi0xLjY5NXYtNi41ek0zIDEzaDEwdjJoLTEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUl0YWxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxdjFoLTJsLTUgMTJoMnYxaC03di0xaDJsNS0xMmgtMnYtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdHJpa2V0aHJvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDh2MWgtMy42NjRjMC40MyAwLjYwMiAwLjY2NCAxLjI5MiAwLjY2NCAyIDAgMS4xMDctMC41NzMgMi4xNzItMS41NzIgMi45MjEtMC45MjcgMC42OTYtMi4xNDUgMS4wNzktMy40MjggMS4wNzlzLTIuNTAxLTAuMzgzLTMuNDI4LTEuMDc5Yy0wLjk5OS0wLjc0OS0xLjU3Mi0xLjgxNC0xLjU3Mi0yLjkyMWgyYzAgMS4wODQgMS4zNzQgMiAzIDJzMy0wLjkxNiAzLTJjMC0xLjA4NC0xLjM3NC0yLTMtMmgtOHYtMWg0LjY4Yy0wLjAzNy0wLjAyNi0wLjA3My0wLjA1Mi0wLjEwOC0wLjA3OS0wLjk5OS0wLjc0OS0xLjU3Mi0xLjgxNC0xLjU3Mi0yLjkyMXMwLjU3My0yLjE3MiAxLjU3Mi0yLjkyMWMwLjkyNy0wLjY5NiAyLjE0NS0xLjA3OSAzLjQyOC0xLjA3OXMyLjUwMSAwLjM4MyAzLjQyOCAxLjA3OWMwLjk5OSAwLjc0OSAxLjU3MiAxLjgxNCAxLjU3MiAyLjkyMWgtMmMwLTEuMDg0LTEuMzc0LTItMy0ycy0zIDAuOTE2LTMgMmMwIDEuMDg0IDEuMzc0IDIgMyAyIDEuMjM0IDAgMi40MDcgMC4zNTQgMy4zMiAxaDQuNjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltT21lZ2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRoNGwxLTJ2NGgtNnYtMy4zNDdjMi4wNDktMC44ODMgMy41LTMuMDgxIDMuNS01LjY1MyAwLTMuMzUtMi40NjItNS45NzMtNS41LTUuOTczcy01LjUgMi42MjItNS41IDUuOTczYzAgMi41NzIgMS40NTEgNC43NyAzLjUgNS42NTN2My4zNDdoLTZ2LTRsMSAyaDR2LTAuNTA5Yy0yLjkzMi0xLjAzOC01LTMuNTUzLTUtNi40OTEgMC0zLjg2NiAzLjU4Mi03IDgtN3M4IDMuMTM0IDggN2MwIDIuOTM4LTIuMDY4IDUuNDUyLTUgNi40OTF2MC41MDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2lnbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzEzIDExLjQ4bDAuNjk0LTEuNDhoMC41OTRsLTEgNmgtMTV2LTEuMTZsNS4xOC02LjExMy01LjE4LTUuMTh2LTMuNTQ3aDE1LjMxM2wwLjY4OCA0aC0wLjUzN2wtMC4yOTMtMC42MDdjLTAuNTUyLTEuMTQ2LTAuOTY3LTEuMzkzLTIuMTctMS4zOTNoLTEwLjM0NGw1LjUxNyA1LjUxNi00LjY0NyA1LjQ4M2g4LjQ3NGMxLjgxMyAwIDIuMjkxLTAuNjUgMi43MTMtMS41MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QYWdlQnJlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4aDJ2MWgtMnpNMyA4aDN2MWgtM3pNNyA4aDJ2MWgtMnpNMTAgOGgzdjFoLTN6TTE0IDhoMnYxaC0yek0xMy43NSAwbDAuMjUgN2gtMTJsMC4yNS03aDAuNWwwLjI1IDZoMTBsMC4yNS02ek0yLjI1IDE2bC0wLjI1LTZoMTJsLTAuMjUgNmgtMC41bC0wLjI1LTVoLTEwbC0wLjI1IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3VwZXJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMy4yMTl2MC43ODFoMnYxaC0zdi0yLjI4MWwyLTAuOTM4di0wLjc4MWgtMnYtMWgzdjIuMjgxek0xMC41NjMgNGgtMi4xMjVsLTIuOTM4IDIuOTM4LTIuOTM4LTIuOTM4aC0yLjEyNWw0IDQtNCA0aDIuMTI1bDIuOTM4LTIuOTM4IDIuOTM4IDIuOTM4aDIuMTI1bC00LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3Vic2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0LjIxOXYwLjc4MWgydjFoLTN2LTIuMjgxbDItMC45Mzh2LTAuNzgxaC0ydi0xaDN2Mi4yODF6TTEwLjU2MyA0aC0yLjEyNWwtMi45MzggMi45MzgtMi45MzgtMi45MzhoLTIuMTI1bDQgNC00IDRoMi4xMjVsMi45MzgtMi45MzggMi45MzggMi45MzhoMi4xMjVsLTQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdXBlcnNjcmlwdDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4wMzIgMTNsMC45LTNoNC4xMzdsMC45IDNoMS43NzVsLTMtMTBoLTMuNDg4bC0zIDEwaDEuNzc2ek01LjQzMiA1aDEuMTM3bDAuOSAzaC0yLjkzN2wwLjktM3pNMTEgMTNsMi41LTQgMi41IDRoLTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSAyaC0xYy0wLjI3NiAwLTAuNS0wLjIyNC0wLjUtMC41czAuMjI0LTAuNSAwLjUtMC41aDJjMC4yNzYgMCAwLjUtMC4yMjQgMC41LTAuNXMtMC4yMjQtMC41LTAuNS0wLjVoLTJjLTAuODI3IDAtMS41IDAuNjczLTEuNSAxLjUgMCAwLjM4NCAwLjE0NSAwLjczNCAwLjM4MyAxIDAuMjc1IDAuMzA3IDAuNjc0IDAuNSAxLjExNyAwLjVoMWMwLjI3NiAwIDAuNSAwLjIyNCAwLjUgMC41cy0wLjIyNCAwLjUtMC41IDAuNWgtMmMtMC4yNzYgMC0wLjUgMC4yMjQtMC41IDAuNXMwLjIyNCAwLjUgMC41IDAuNWgyYzAuODI3IDAgMS41LTAuNjczIDEuNS0xLjUgMC0wLjM4NC0wLjE0NS0wLjczNC0wLjM4My0xLTAuMjc1LTAuMzA3LTAuNjc0LTAuNS0xLjExNy0wLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3Vic2NyaXB0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjAzMiAxM2wwLjktM2g0LjEzN2wwLjkgM2gxLjc3NWwtMy0xMGgtMy40ODhsLTMgMTBoMS43NzZ6TTUuNDMyIDVoMS4xMzdsMC45IDNoLTIuOTM3bDAuOS0zek0xNiAzbC0yLjUgNC0yLjUtNGg1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgMTNoLTFjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjQtMC41IDAuNS0wLjVoMmMwLjI3NiAwIDAuNS0wLjIyNCAwLjUtMC41cy0wLjIyNC0wLjUtMC41LTAuNWgtMmMtMC44MjcgMC0xLjUgMC42NzMtMS41IDEuNSAwIDAuMzg0IDAuMTQ1IDAuNzM0IDAuMzgzIDEgMC4yNzUgMC4zMDcgMC42NzQgMC41IDEuMTE3IDAuNWgxYzAuMjc2IDAgMC41IDAuMjI0IDAuNSAwLjVzLTAuMjI0IDAuNS0wLjUgMC41aC0yYy0wLjI3NiAwLTAuNSAwLjIyNC0wLjUgMC41czAuMjI0IDAuNSAwLjUgMC41aDJjMC44MjcgMCAxLjUtMC42NzMgMS41LTEuNSAwLTAuMzg0LTAuMTQ1LTAuNzM0LTAuMzgzLTEtMC4yNzUtMC4zMDctMC42NzQtMC41LTEuMTE3LTAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1UZXh0Q29sb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4wMzIgMTNsMC45LTNoNC4xMzdsMC45IDNoMS43NzVsLTMtMTBoLTMuNDg4bC0zIDEwaDEuNzc2ek03LjQzMiA1aDEuMTM3bDAuOSAzaC0yLjkzN2wwLjktM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1QYWdlYnJlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2di02aDEydjZoLTF2LTVoLTEwdjV6TTE2IDl2N2gtMTJ2LTdoMXY2aDEwdi02ek04IDdoMnYxaC0yek01IDdoMnYxaC0yek0xMSA3aDJ2MWgtMnpNMTQgN2gydjFoLTJ6TTAgNC41bDMgMy0zIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2xlYXJGb3JtYXR0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTRoOXYyaC05ek0xNCAyaC00LjcyN2wtMi44NzEgMTFoLTIuMDY3bDIuODcxLTExaC00LjIwNXYtMmgxMXpNMTQuNTI4IDE2bC0yLjAyOC0yLjAyOC0yLjAyOCAyLjAyOC0wLjk3Mi0wLjk3MiAyLjAyOC0yLjAyOC0yLjAyOC0yLjAyOCAwLjk3Mi0wLjk3MiAyLjAyOCAyLjAyOCAyLjAyOC0yLjAyOCAwLjk3MiAwLjk3Mi0yLjAyOCAyLjAyOCAyLjAyOCAyLjAyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1UYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDN2MTFoMTZ2LTExaC0xNnpNNiAxMHYtMmg0djJoLTR6TTEwIDExdjJoLTR2LTJoNHpNMTAgNXYyaC00di0yaDR6TTUgNXYyaC00di0yaDR6TTEgOGg0djJoLTR2LTJ6TTExIDhoNHYyaC00di0yek0xMSA3di0yaDR2MmgtNHpNMSAxMWg0djJoLTR2LTJ6TTExIDEzdi0yaDR2MmgtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1UYWJsZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxdjE0aDE2di0xNGgtMTZ6TTYgMTB2LTNoNHYzaC00ek0xMCAxMXYzaC00di0zaDR6TTEwIDN2M2gtNHYtM2g0ek01IDN2M2gtNHYtM2g0ek0xIDdoNHYzaC00di0zek0xMSA3aDR2M2gtNHYtM3pNMTEgNnYtM2g0djNoLTR6TTEgMTFoNHYzaC00di0zek0xMSAxNHYtM2g0djNoLTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSW5zZXJ0VGVtcGxhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzaDJ2MWgtMnpNOSAzaDJ2MWgtMnpNMTQgM3Y0aC0zdi0xaDJ2LTJoLTF2LTF6TTUgNmgydjFoLTJ6TTggNmgydjFoLTJ6TTMgNHYyaDF2MWgtMnYtNGgzdjF6TTYgOWgydjFoLTJ6TTkgOWgydjFoLTJ6TTE0IDl2NGgtM3YtMWgydi0yaC0xdi0xek01IDEyaDJ2MWgtMnpNOCAxMmgydjFoLTJ6TTMgMTB2MmgxdjFoLTJ2LTRoM3Yxek0xNSAxaC0xNHYxNGgxNHYtMTR6TTE2IDB2MCAxNmgtMTZ2LTE2aDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBpbGNyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAwaDh2MmgtMnYxNGgtMnYtMTRoLTJ2MTRoLTJ2LThjLTIuMjA5IDAtNC0xLjc5MS00LTRzMS43OTEtNCA0LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTHRyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtMi4yMDkgMC00IDEuNzkxLTQgNHMxLjc5MSA0IDQgNHY4aDJ2LTE0aDJ2MTRoMnYtMTRoMnYtMmgtOHpNMCAxMWw0LTQtNC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVJ0bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBjLTIuMjA5IDAtNCAxLjc5MS00IDRzMS43OTEgNCA0IDR2OGgydi0xNGgydjE0aDJ2LTE0aDJ2LTJoLTh6TTE2IDNsLTQgNCA0IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2VjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc0OSAxNmMtMC43NzEgMC0xLjQyNC0wLjIyNS0xLjkzOS0wLjY2OS0wLjUxOS0wLjQ0Ny0wLjc4Mi0wLjk2OS0wLjc4Mi0xLjU1MiAwLTAuMjgzIDAuMTAzLTAuNTI3IDAuMzA3LTAuNzI2IDAuMjA3LTAuMjAyIDAuNDY1LTAuMzA5IDAuNzQ4LTAuMzA5IDAuMjgxIDAgMC41MzQgMC4xIDAuNzMyIDAuMjkgMC4xOTUgMC4xODcgMC4yOTQgMC40MzUgMC4yOTQgMC43MzYgMCAwLjE3Ny0wLjAyOSAwLjM3Mi0wLjA4NiAwLjU4LTAuMDU2IDAuMjA2LTAuMDY4IDAuMzEyLTAuMDY4IDAuMzY0IDAgMC4wNTggMC4wMTQgMC4xMjYgMC4xMjEgMC4xOTkgMC4xOTkgMC4xMzggMC40MzkgMC4yMDQgMC43MzIgMC4yMDQgMC4zNTMgMCAwLjY2Ny0wLjEyMyAwLjk2Mi0wLjM3NSAwLjI5LTAuMjQ5IDAuNDMxLTAuNTA1IDAuNDMxLTAuNzgyIDAtMC4zMDgtMC4wODItMC41NzUtMC4yNTItMC44MTYtMC4yODctMC40MDItMC44MjYtMC44NzQtMS42MDMtMS40MDEtMS4yNDgtMC44MzUtMi4wNzktMS41NTktMi41NC0yLjIxMS0wLjM1OC0wLjUxMS0wLjUzOS0xLjA2MS0wLjUzOS0xLjYzNiAwLTAuNTc5IDAuMTktMS4xNTUgMC41NjQtMS43MTMgMC4zMi0wLjQ3NyAwLjc5NC0wLjkwOCAxLjQxLTEuMjgzLTAuMzMtMC4zNTUtMC41NzctMC42ODktMC43MzYtMC45OTUtMC4yMDEtMC4zODctMC4zMDMtMC43ODctMC4zMDMtMS4xODkgMC0wLjc0NyAwLjI5NS0xLjM5MyAwLjg3OC0xLjkyczEuMzEtMC43OTUgMi4xNjEtMC43OTVjMC43ODMgMCAxLjQ0MSAwLjIyIDEuOTU2IDAuNjU0IDAuNTIxIDAuNDM5IDAuNzg1IDAuOTUyIDAuNzg1IDEuNTI0IDAgMC4yOTItMC4xMDkgMC41NTMtMC4zMjQgMC43NzZsLTAuMDA0IDAuMDA0Yy0wLjEyNSAwLjEyNC0wLjM1MyAwLjI3MS0wLjczNSAwLjI3MS0wLjI5OSAwLTAuNTYxLTAuMDk4LTAuNzU4LTAuMjgzLTAuMTk2LTAuMTg0LTAuMjk2LTAuNDA1LTAuMjk2LTAuNjU2IDAtMC4xMDggMC4wMjctMC4yNzIgMC4wODQtMC41MTUgMC4wMjgtMC4xMTUgMC4wNDItMC4yMjEgMC4wNDItMC4zMTYgMC0wLjE2Mi0wLjA1OC0wLjI4NS0wLjE4My0wLjM5LTAuMTI5LTAuMTA4LTAuMzE0LTAuMTYxLTAuNTY1LTAuMTYxLTAuMzg5IDAtMC43MDggMC4xMTgtMC45NzUgMC4zNjFzLTAuMzk5IDAuNTMzLTAuMzk5IDAuODgzYzAgMC4zMTUgMC4wNzEgMC41NzQgMC4yMTIgMC43NzEgMC4yNjcgMC4zNzQgMC43MzEgMC43NzggMS4zNzggMS4yMDEgMS4zMTUgMC44NTMgMi4yMzMgMS42MzYgMi43MjcgMi4zMjUgMC4zNjUgMC41MTggMC41NDkgMS4wNjggMC41NDkgMS42MzcgMCAwLjU3Mi0wLjE4NiAxLjE0OC0wLjU1MiAxLjcxNC0wLjMxNiAwLjQ4Ny0wLjc5MyAwLjkyNi0xLjQyIDEuMzA4IDAuMzQ3IDAuMzY3IDAuNTkxIDAuNjg4IDAuNzQzIDAuOTc3IDAuMTg5IDAuMzU5IDAuMjg0IDAuNzUxIDAuMjg0IDEuMTY1IDAgMC43NzYtMC4yOTYgMS40MzUtMC44NzkgMS45NnMtMS4zMSAwLjc5LTIuMTYxIDAuNzl6TTYuOTc1IDUuNTY4Yy0wLjc1MyAwLjQ1Mi0xLjEyIDAuOTcyLTEuMTIgMS41ODMgMCAwLjM1NiAwLjEwMiAwLjY3NCAwLjMxIDAuOTczIDAuMzExIDAuNDM2IDAuOTI2IDAuOTcgMS44MjUgMS41ODMgMC4zODEgMC4yNTkgMC43MjQgMC41MTEgMS4wMjUgMC43NTEgMC43NjctMC40NjEgMS4xNC0wLjk3NCAxLjE0LTEuNTY1IDAtMC4zMjItMC4xMjctMC42NjgtMC4zNzgtMS4wMzAtMC4yNjMtMC4zNzgtMC44MjYtMC44NzItMS42NzQtMS40NjctMC40NDMtMC4zMDYtMC44MjEtMC41ODMtMS4xMjgtMC44Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGFyYWdyYXBoTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDFoMTZ2MmgtMTZ6TTAgNGgxMHYyaC0xMHpNMCAxMGgxMHYyaC0xMHpNMCA3aDE2djJoLTE2ek0wIDEzaDE2djJoLTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBhcmFncmFwaENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDFoMTZ2MmgtMTZ6TTMgNGgxMHYyaC0xMHpNMyAxMGgxMHYyaC0xMHpNMCA3aDE2djJoLTE2ek0wIDEzaDE2djJoLTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVBhcmFncmFwaFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMWgxNnYyaC0xNnpNNiA0aDEwdjJoLTEwek02IDEwaDEwdjJoLTEwek0wIDdoMTZ2MmgtMTZ6TTAgMTNoMTZ2MmgtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGFyYWdyYXBoSnVzdGlmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDFoMTZ2MmgtMTZ6TTAgNGgxNnYyaC0xNnpNMCA3aDE2djJoLTE2ek0wIDEwaDE2djJoLTE2ek0wIDEzaDE2djJoLTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUluZGVudEluY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMWgxNnYyaC0xNnpNNiA0aDEwdjJoLTEwek02IDdoMTB2MmgtMTB6TTYgMTBoMTB2MmgtMTB6TTAgMTNoMTZ2MmgtMTZ6TTAgMTF2LTZsNCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUluZGVudERlY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMWgxNnYyaC0xNnpNNiA0aDEwdjJoLTEwek02IDdoMTB2MmgtMTB6TTYgMTBoMTB2MmgtMTB6TTAgMTNoMTZ2MmgtMTZ6TTQgNXY2bC00LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMGMwIDAgMC45MTktMyA2LTN2M2w2LTQtNi00djNjLTQgMC02IDIuNDk1LTYgNXpNMTEgMTJoLTl2LTZoMS45NjdjMC4xNTgtMC4xODYgMC4zMjctMC4zNjUgMC41MDgtMC41MzQgMC42ODctMC42NDQgMS41MDktMS4xMzUgMi40MzktMS40NjZoLTYuOTE0djEwaDEzdi00LjE5N2wtMiAxLjMzM3YwLjg2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1OZXdUYWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxdjEyaDEydi0xMmgtMTJ6TTE0IDEyaC0xMHYtMTBoMTB2MTB6TTIgMTR2LTEwLjVsLTEtMXYxMi41aDEyLjVsLTEtMWgtMTAuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgNGwyLjUgMi41LTMgMyAxLjUgMS41IDMtMyAyLjUgMi41di02LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRW1iZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMS41bDEuNSAxLjUgNS01LTUtNS0xLjUgMS41IDMuNSAzLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA0LjVsLTEuNS0xLjUtNSA1IDUgNSAxLjUtMS41LTMuNS0zLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRW1iZWQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDIwIDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDExLjVsMS41IDEuNSA1LTUtNS01LTEuNSAxLjUgMy41IDMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDQuNWwtMS41LTEuNS01IDUgNSA1IDEuNS0xLjUtMy41LTMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC45NTggMi4zNTJsMS4wODUgMC4yOTYtMyAxMS0xLjA4NS0wLjI5NiAzLTExelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVRlcm1pbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMXYxNGgxNnYtMTRoLTE2ek0xNSAxNGgtMTR2LTEyaDE0djEyek0xNCAzaC0xMnYxMGgxMnYtMTB6TTcgOGgtMXYxaC0xdjFoLTF2LTFoMXYtMWgxdi0xaC0xdi0xaC0xdi0xaDF2MWgxdjFoMXYxek0xMSAxMGgtM3YtMWgzdjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU2hhcmUyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgMTFjLTAuNzA2IDAtMS4zNDIgMC4yOTMtMS43OTcgMC43NjNsLTYuNzM0LTMuMzY3YzAuMDIxLTAuMTI5IDAuMDMyLTAuMjYxIDAuMDMyLTAuMzk2cy0wLjAxMS0wLjI2Ny0wLjAzMi0wLjM5Nmw2LjczNC0zLjM2N2MwLjQ1NSAwLjQ3IDEuMDkxIDAuNzYzIDEuNzk3IDAuNzYzIDEuMzgxIDAgMi41LTEuMTE5IDIuNS0yLjVzLTEuMTE5LTIuNS0yLjUtMi41LTIuNSAxLjExOS0yLjUgMi41YzAgMC4xMzUgMC4wMTEgMC4yNjcgMC4wMzEgMC4zOTZsLTYuNzM0IDMuMzY3Yy0wLjQ1NS0wLjQ3LTEuMDkxLTAuNzYzLTEuNzk3LTAuNzYzLTEuMzgxIDAtMi41IDEuMTE5LTIuNSAyLjVzMS4xMTkgMi41IDIuNSAyLjVjMC43MDYgMCAxLjM0My0wLjI5MyAxLjc5Ny0wLjc2M2w2LjczNCAzLjM2N2MtMC4wMjEgMC4xMjktMC4wMzEgMC4yNjEtMC4wMzEgMC4zOTYgMCAxLjM4MSAxLjExOSAyLjUgMi41IDIuNXMyLjUtMS4xMTkgMi41LTIuNWMwLTEuMzgxLTEuMTE5LTIuNS0yLjUtMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMzMzIDBoLTEwLjY2NmMtMS40NjcgMC0yLjY2NyAxLjItMi42NjcgMi42Njd2MTAuNjY2YzAgMS40NjcgMS4yIDIuNjY3IDIuNjY3IDIuNjY3aDEwLjY2NmMxLjQ2OCAwIDIuNjY3LTEuMiAyLjY2Ny0yLjY2N3YtMTAuNjY2YzAtMS40NjctMS4xOTktMi42NjctMi42NjctMi42Njd6TTQgNGg4YzAuMTQzIDAgMC4yODEgMC4wMzEgMC40MDkgMC4wODhsLTQuNDA5IDUuMTQzLTQuNDA5LTUuMTQzYzAuMTI3LTAuMDU4IDAuMjY2LTAuMDg4IDAuNDA5LTAuMDg4ek0zIDExdi02YzAtMC4wMjEgMC4wMDEtMC4wNDIgMC4wMDItMC4wNjNsMi45MzIgMy40MjEtMi45IDIuOWMtMC4wMjMtMC4wODMtMC4wMzQtMC4xNy0wLjAzNC0wLjI1OHpNMTIgMTJoLThjLTAuMDg4IDAtMC4xNzUtMC4wMTItMC4yNTgtMC4wMzRsMi44NDYtMi44NDYgMS40MTMgMS42NDggMS40MTMtMS42NDggMi44NDYgMi44NDZjLTAuMDgzIDAuMDIzLTAuMTcgMC4wMzQtMC4yNTggMC4wMzR6TTEzIDExYzAgMC4wODgtMC4wMTIgMC4xNzUtMC4wMzQgMC4yNThsLTIuOS0yLjkgMi45MzItMy40MjFjMC4wMDEgMC4wMjEgMC4wMDIgMC4wNDIgMC4wMDIgMC4wNjN2NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1NYWlsMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4zMzMgMGgtMTAuNjY2Yy0xLjQ2NyAwLTIuNjY3IDEuMi0yLjY2NyAyLjY2N3YxMC42NjZjMCAxLjQ2OCAxLjIgMi42NjcgMi42NjcgMi42NjdoMTAuNjY2YzEuNDY3IDAgMi42NjctMS4xOTkgMi42NjctMi42Njd2LTEwLjY2NmMwLTEuNDY3LTEuMi0yLjY2Ny0yLjY2Ny0yLjY2N3pNMTMuMzMzIDJjMC4xMjUgMCAwLjI0MyAwLjAzNiAwLjM0NCAwLjA5OWwtNS42NzggNC42OTQtNS42NzctNC42OTRjMC4xMDEtMC4wNjMgMC4yMTktMC4wOTkgMC4zNDQtMC4wOTloMTAuNjY2ek0yLjY2NyAxNGMtMC4wMzAgMC0wLjA2MC0wLjAwMi0wLjA4OS0wLjAwNmwzLjUyNS00Ljg5LTAuNDU3LTAuNDU3LTMuNjQ2IDMuNjQ2di05LjU0OWw2IDcuMjU2IDYtNy4yNTZ2OS41NDlsLTMuNjQ2LTMuNjQ2LTAuNDU3IDAuNDU3IDMuNTI1IDQuODljLTAuMDI5IDAuMDA0LTAuMDU5IDAuMDA2LTAuMDg4IDAuMDA2aC0xMC42NjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTWFpbDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMzMzIDBoLTEwLjY2NmMtMS40NjcgMC0yLjY2NyAxLjItMi42NjcgMi42Njd2MTAuNjY2YzAgMS40NjggMS4yIDIuNjY3IDIuNjY3IDIuNjY3aDEwLjY2NmMxLjQ2NyAwIDIuNjY3LTEuMTk5IDIuNjY3LTIuNjY3di0xMC42NjZjMC0xLjQ2Ny0xLjItMi42NjctMi42NjctMi42Njd6TTIuODU0IDEzLjg1NGwtMS4yMDctMS4yMDcgNC00IDAuNDU3IDAuNDU3LTMuMjUgNC43NXpNMi4zOTYgMy4xMDRsMC40NTctMC40NTcgNS4xNDYgNC4xNDYgNS4xNDYtNC4xNDYgMC40NTcgMC40NTctNS42MDQgNi42MDQtNS42MDQtNi42MDR6TTEzLjE0NiAxMy44NTRsLTMuMjUtNC43NSAwLjQ1Ny0wLjQ1NyA0IDQtMS4yMDcgMS4yMDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTWFpbDQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek00IDRoOGMwLjE0MyAwIDAuMjgxIDAuMDMxIDAuNDA5IDAuMDg4bC00LjQwOSA1LjE0My00LjQwOS01LjE0M2MwLjEyNy0wLjA1OCAwLjI2Ni0wLjA4OCAwLjQwOS0wLjA4OHpNMyAxMXYtNmMwLTAuMDIxIDAuMDAxLTAuMDQyIDAuMDAyLTAuMDYzbDIuOTMyIDMuNDIxLTIuOSAyLjljLTAuMDIzLTAuMDgzLTAuMDM0LTAuMTctMC4wMzQtMC4yNTh6TTEyIDEyaC04Yy0wLjA4OCAwLTAuMTc1LTAuMDEyLTAuMjU4LTAuMDM0bDIuODQ2LTIuODQ2IDEuNDEzIDEuNjQ4IDEuNDEzLTEuNjQ4IDIuODQ2IDIuODQ2Yy0wLjA4MyAwLjAyMy0wLjE3IDAuMDM0LTAuMjU4IDAuMDM0ek0xMyAxMWMwIDAuMDg4LTAuMDEyIDAuMTc1LTAuMDM0IDAuMjU4bC0yLjktMi45IDIuOTMyLTMuNDIxYzAuMDAxIDAuMDIxIDAuMDAyIDAuMDQyIDAuMDAyIDAuMDYzdjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQW1hem9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjQ2MyAxMy44MzFjLTEuNzUzIDEuMjk0LTQuMjkxIDEuOTgxLTYuNDc4IDEuOTgxLTMuMDY2IDAtNS44MjUtMS4xMzEtNy45MTItMy4wMTktMC4xNjMtMC4xNDctMC4wMTktMC4zNSAwLjE3OC0wLjIzNCAyLjI1MyAxLjMxMyA1LjA0MSAyLjEgNy45MTkgMi4xIDEuOTQxIDAgNC4wNzUtMC40MDMgNi4wNDEtMS4yMzggMC4yOTQtMC4xMjUgMC41NDQgMC4xOTcgMC4yNTMgMC40MDl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMTkxIDEzYy0wLjIyNS0wLjI4Ny0xLjQ4MS0wLjEzNy0yLjA0Ny0wLjA2OS0wLjE3MiAwLjAxOS0wLjE5Ny0wLjEyOC0wLjA0NC0wLjIzOCAxLjAwMy0wLjcwMyAyLjY0Ny0wLjUgMi44MzgtMC4yNjYgMC4xOTQgMC4yMzgtMC4wNTAgMS44ODQtMC45OTEgMi42NzItMC4xNDQgMC4xMjItMC4yODEgMC4wNTYtMC4yMTktMC4xMDMgMC4yMTYtMC41MjggMC42ODgtMS43MDkgMC40NjMtMS45OTd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDUzIDExLjgzOGwwLjAwMyAwLjAwM2MwLjM4Ny0wLjM0MSAxLjA4NC0wLjk1IDEuNDc4LTEuMjc4IDAuMTU2LTAuMTI1IDAuMTI4LTAuMzM0IDAuMDA2LTAuNTA5LTAuMzUzLTAuNDg4LTAuNzI4LTAuODg0LTAuNzI4LTEuNzg0di0zYzAtMS4yNzIgMC4wODgtMi40MzgtMC44NDctMy4zMTMtMC43MzgtMC43MDYtMS45NjMtMC45NTYtMi45LTAuOTU2LTEuODMxIDAtMy44NzUgMC42ODQtNC4zMDMgMi45NDctMC4wNDcgMC4yNDEgMC4xMzEgMC4zNjkgMC4yODcgMC40MDNsMS44NjYgMC4yMDNjMC4xNzUtMC4wMDkgMC4zLTAuMTgxIDAuMzM0LTAuMzU2IDAuMTU5LTAuNzc4IDAuODEzLTEuMTU2IDEuNTQ3LTEuMTU2IDAuMzk3IDAgMC44NDcgMC4xNDQgMS4wODEgMC41IDAuMjY5IDAuMzk3IDAuMjM0IDAuOTM4IDAuMjM0IDEuMzk3djAuMjVjLTEuMTE2IDAuMTI1LTIuNTc1IDAuMjA2LTMuNjE5IDAuNjY2LTEuMjA2IDAuNTIyLTIuMDUzIDEuNTg0LTIuMDUzIDMuMTQ3IDAgMiAxLjI1OSAzIDIuODgxIDMgMS4zNjkgMCAyLjExNi0wLjMyMiAzLjE3Mi0xLjQwMyAwLjM1IDAuNTA2IDAuNDYzIDAuNzUzIDEuMTAzIDEuMjg0IDAuMTQ3IDAuMDc4IDAuMzI4IDAuMDcyIDAuNDU2LTAuMDQ0ek05LjExMyA3LjE0NGMwIDAuNzUgMC4wMTkgMS4zNzUtMC4zNTkgMi4wNDEtMC4zMDYgMC41NDQtMC43OTEgMC44NzUtMS4zMzEgMC44NzUtMC43MzcgMC0xLjE2OS0wLjU2My0xLjE2OS0xLjM5NCAwLTEuNjQxIDEuNDcyLTEuOTM4IDIuODYzLTEuOTM4djAuNDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUdvb2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjE1OSA2Ljg1NnYyLjc0NGg0LjUzN2MtMC4xODQgMS4xNzgtMS4zNzIgMy40NS00LjUzNyAzLjQ1LTIuNzMxIDAtNC45NTktMi4yNjItNC45NTktNS4wNTBzMi4yMjgtNS4wNTAgNC45NTktNS4wNTBjMS41NTMgMCAyLjU5NCAwLjY2MyAzLjE4OCAxLjIzNGwyLjE3Mi0yLjA5MWMtMS4zOTQtMS4zMDYtMy4yLTIuMDk0LTUuMzU5LTIuMDk0LTQuNDIyIDAtOCAzLjU3OC04IDhzMy41NzggOCA4IDhjNC42MTYgMCA3LjY4MS0zLjI0NyA3LjY4MS03LjgxNiAwLTAuNTI1LTAuMDU2LTAuOTI1LTAuMTI1LTEuMzI1bC03LjU1Ni0wLjAwM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Hb29nbGUyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMGgtMTNjLTAuODI1IDAtMS41IDAuNjc1LTEuNSAxLjV2MTNjMCAwLjgyNSAwLjY3NSAxLjUgMS41IDEuNWgxM2MwLjgyNSAwIDEuNS0wLjY3NSAxLjUtMS41di0xM2MwLTAuODI1LTAuNjc1LTEuNS0xLjUtMS41ek04LjExOSAxNGMtMy4zMTYgMC02LTIuNjg0LTYtNnMyLjY4NC02IDYtNmMxLjYxOSAwIDIuOTc1IDAuNTkxIDQuMDE5IDEuNTY5bC0xLjYyOCAxLjU2OWMtMC40NDctMC40MjgtMS4yMjUtMC45MjUtMi4zOTEtMC45MjUtMi4wNTAgMC0zLjcxOSAxLjY5Ny0zLjcxOSAzLjc4N3MxLjY3MiAzLjc4NyAzLjcxOSAzLjc4N2MyLjM3NSAwIDMuMjY2LTEuNzA2IDMuNDAzLTIuNTg4aC0zLjQwM3YtMi4wNTZoNS42NjZjMC4wNTAgMC4zIDAuMDk0IDAuNiAwLjA5NCAwLjk5NCAwLjAwMyAzLjQyOC0yLjI5NCA1Ljg2My01Ljc1OSA1Ljg2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Hb29nbGUzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTkgMC04IDMuNTgxLTggOHMzLjU4MSA4IDggOCA4LTMuNTgxIDgtOC0zLjU4MS04LTgtOHpNOC4xMTkgMTRjLTMuMzE2IDAtNi0yLjY4NC02LTZzMi42ODQtNiA2LTZjMS42MTkgMCAyLjk3NSAwLjU5MSA0LjAxOSAxLjU2OWwtMS42MjggMS41NjljLTAuNDQ3LTAuNDI4LTEuMjI1LTAuOTI1LTIuMzkxLTAuOTI1LTIuMDUwIDAtMy43MTkgMS42OTctMy43MTkgMy43ODdzMS42NzIgMy43ODcgMy43MTkgMy43ODdjMi4zNzUgMCAzLjI2Ni0xLjcwNiAzLjQwMy0yLjU4OGgtMy40MDN2LTIuMDU2aDUuNjY2YzAuMDUwIDAuMyAwLjA5NCAwLjYgMC4wOTQgMC45OTQgMC4wMDMgMy40MjgtMi4yOTQgNS44NjMtNS43NTkgNS44NjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltR29vZ2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjA5MSA3LjE0N3YxLjc0N2gyLjg4OGMtMC4xMTYgMC43NS0wLjg3MiAyLjE5Ny0yLjg4OCAyLjE5Ny0xLjczNyAwLTMuMTU2LTEuNDQxLTMuMTU2LTMuMjE2czEuNDE5LTMuMjE2IDMuMTU2LTMuMjE2YzAuOTkxIDAgMS42NSAwLjQyMiAyLjAyOCAwLjc4NGwxLjM4MS0xLjMzMWMtMC44ODgtMC44MjgtMi4wMzctMS4zMzEtMy40MDktMS4zMzEtMi44MTYgMC4wMDMtNS4wOTEgMi4yNzgtNS4wOTEgNS4wOTRzMi4yNzUgNS4wOTEgNS4wOTEgNS4wOTFjMi45MzcgMCA0Ljg4OC0yLjA2NiA0Ljg4OC00Ljk3NSAwLTAuMzM0LTAuMDM3LTAuNTkxLTAuMDgxLTAuODQ0aC00LjgwNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3aC0xLjV2LTEuNWgtMS41djEuNWgtMS41djEuNWgxLjV2MS41aDEuNXYtMS41aDEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Hb29nbGVQbHVzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNiAxMmMtMi4yMTIgMC00LTEuNzg3LTQtNHMxLjc4OC00IDQtNGMxLjA4MSAwIDEuOTg0IDAuMzk0IDIuNjgxIDEuMDQ3bC0xLjA4OCAxLjA0NGMtMC4yOTctMC4yODQtMC44MTYtMC42MTYtMS41OTQtMC42MTYtMS4zNjYgMC0yLjQ4MSAxLjEzMS0yLjQ4MSAyLjUyNXMxLjExNiAyLjUyNSAyLjQ4MSAyLjUyNWMxLjU4NCAwIDIuMTc4LTEuMTM3IDIuMjY5LTEuNzI1aC0yLjI2OXYtMS4zNzJoMy43NzhjMC4wMzQgMC4yIDAuMDYzIDAuNCAwLjA2MyAwLjY2MyAwIDIuMjg3LTEuNTMxIDMuOTA5LTMuODQxIDMuOTA5ek0xNCA4aC0xdjFoLTF2LTFoLTF2LTFoMXYtMWgxdjFoMXYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUdvb2dsZVBsdXMzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTkgMC04IDMuNTgxLTggOHMzLjU4MSA4IDggOCA4LTMuNTgxIDgtOC0zLjU4MS04LTgtOHpNNiAxMmMtMi4yMTIgMC00LTEuNzg3LTQtNHMxLjc4OC00IDQtNGMxLjA4MSAwIDEuOTg0IDAuMzk0IDIuNjgxIDEuMDQ3bC0xLjA4OCAxLjA0NGMtMC4yOTctMC4yODQtMC44MTYtMC42MTYtMS41OTQtMC42MTYtMS4zNjYgMC0yLjQ4MSAxLjEzMS0yLjQ4MSAyLjUyNXMxLjExNiAyLjUyNSAyLjQ4MSAyLjUyNWMxLjU4NCAwIDIuMTc4LTEuMTM3IDIuMjY5LTEuNzI1aC0yLjI2OXYtMS4zNzJoMy43NzhjMC4wMzQgMC4yIDAuMDYzIDAuNCAwLjA2MyAwLjY2MyAwIDIuMjg3LTEuNTMxIDMuOTA5LTMuODQxIDMuOTA5ek0xMyA4djFoLTF2LTFoLTF2LTFoMXYtMWgxdjFoMXYxaC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUhhbmdvdXRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuOTk3IDBjLTMuODE2IDAtNi45MDkgMy4wOTQtNi45MDkgNi45MDkgMCAzLjYxNiAzLjI5NCA2LjU0NyA2LjkwOSA2LjU0N3YyLjU0NGM0LjE5Ny0yLjEyOCA2LjkxNi01LjU1NiA2LjkxNi05LjA5MSAwLTMuODE2LTMuMS02LjkwOS02LjkxNi02LjkwOXpNNyA4YzAgMC44MjgtMC40NDcgMS41LTEgMS41di0xLjVoLTJ2LTNoM3Yzek0xMiA4YzAgMC44MjgtMC40NDcgMS41LTEgMS41di0xLjVoLTJ2LTNoM3YzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUdvb2dsZURyaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODQ0IDEwbC0yLjg4NCA1aDkuMDcybDIuODg0LTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTA2IDlsLTQuNjE5LThoLTUuNzc1bDQuNjE5IDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41MzQgMmwtNC41MzQgNy44NTYgMi44ODggNSA0LjUzNC03Ljg1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GYWNlYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgM2gyLjV2LTNoLTIuNWMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjV2MS41aC0ydjNoMnY4aDN2LThoMi41bDAuNS0zaC0zdi0xLjVjMC0wLjI3MSAwLjIyOS0wLjUgMC41LTAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GYWNlYm9vazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDYuNXYtN2gtMnYtMmgydi0xYzAtMS42NTMgMS4zNDctMyAzLTNoMnYyaC0yYy0wLjU1IDAtMSAwLjQ1LTEgMXYxaDNsLTAuNSAyaC0yLjV2N2g0LjVjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1JbnN0YWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTExIDIuNWMwLTAuMjc1IDAuMjI1LTAuNSAwLjUtMC41aDJjMC4yNzUgMCAwLjUgMC4yMjUgMC41IDAuNXYyYzAgMC4yNzUtMC4yMjUgMC41LTAuNSAwLjVoLTJjLTAuMjc1IDAtMC41LTAuMjI1LTAuNS0wLjV2LTJ6TTggNWMxLjY1NiAwIDMgMS4zNDQgMyAzcy0xLjM0NCAzLTMgM2MtMS42NTYgMC0zLTEuMzQ0LTMtM3MxLjM0NC0zIDMtM3pNMTQgMTMuNXYwYzAgMC4yNzUtMC4yMjUgMC41LTAuNSAwLjVoLTExYy0wLjI3NSAwLTAuNS0wLjIyNS0wLjUtMC41djAtNi41aDEuMWMtMC4wNjYgMC4zMjItMC4xIDAuNjU2LTAuMSAxIDAgMi43NjIgMi4yMzcgNSA1IDVzNS0yLjIzOCA1LTVjMC0wLjM0NC0wLjAzNC0wLjY3OC0wLjEtMWgxLjF2Ni41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVdoYXRzYXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjY0MSAyLjMyNWMtMS40OTctMS41LTMuNDg4LTIuMzI1LTUuNjA5LTIuMzI1LTQuMzY5IDAtNy45MjUgMy41NTYtNy45MjUgNy45MjggMCAxLjM5NyAwLjM2NiAyLjc2MyAxLjA1OSAzLjk2M2wtMS4xMjUgNC4xMDkgNC4yMDMtMS4xMDNjMS4xNTkgMC42MzEgMi40NjMgMC45NjYgMy43ODcgMC45NjZoMC4wMDNjMCAwIDAgMCAwIDAgNC4zNjkgMCA3LjkyOC0zLjU1NiA3LjkyOC03LjkyOCAwLTIuMTE5LTAuODI1LTQuMTA5LTIuMzIyLTUuNjA5ek04LjAzNCAxNC41MjV2MGMtMS4xODQgMC0yLjM0NC0wLjMxOS0zLjM1Ni0wLjkxOWwtMC4yNDEtMC4xNDQtMi40OTQgMC42NTMgMC42NjYtMi40MzEtMC4xNTYtMC4yNWMtMC42NjMtMS4wNDctMS4wMDktMi4yNTktMS4wMDktMy41MDYgMC0zLjYzNCAyLjk1Ni02LjU5MSA2LjU5NC02LjU5MSAxLjc1OSAwIDMuNDE2IDAuNjg4IDQuNjU5IDEuOTMxIDEuMjQ0IDEuMjQ3IDEuOTI4IDIuOSAxLjkyOCA0LjY2Mi0wLjAwMyAzLjYzNy0yLjk1OSA2LjU5NC02LjU5MSA2LjU5NHpNMTEuNjQ3IDkuNTg4Yy0wLjE5Ny0wLjEtMS4xNzItMC41NzgtMS4zNTMtMC42NDRzLTAuMzEzLTAuMS0wLjQ0NyAwLjFjLTAuMTMxIDAuMTk3LTAuNTEyIDAuNjQ0LTAuNjI4IDAuNzc4LTAuMTE2IDAuMTMxLTAuMjMxIDAuMTUtMC40MjggMC4wNTBzLTAuODM4LTAuMzA5LTEuNTk0LTAuOTg0Yy0wLjU4OC0wLjUyNS0wLjk4Ny0xLjE3NS0xLjEwMy0xLjM3MnMtMC4wMTMtMC4zMDYgMC4wODgtMC40MDNjMC4wOTEtMC4wODggMC4xOTctMC4yMzEgMC4yOTctMC4zNDdzMC4xMzEtMC4xOTcgMC4xOTctMC4zMzFjMC4wNjYtMC4xMzEgMC4wMzQtMC4yNDctMC4wMTYtMC4zNDdzLTAuNDQ3LTEuMDc1LTAuNjA5LTEuNDcyYy0wLjE1OS0wLjM4OC0wLjMyNS0wLjMzNC0wLjQ0Ny0wLjM0MS0wLjExNi0wLjAwNi0wLjI0Ny0wLjAwNi0wLjM3OC0wLjAwNnMtMC4zNDcgMC4wNTAtMC41MjggMC4yNDdjLTAuMTgxIDAuMTk3LTAuNjk0IDAuNjc4LTAuNjk0IDEuNjUzczAuNzA5IDEuOTE2IDAuODA5IDIuMDUwYzAuMSAwLjEzMSAxLjM5NyAyLjEzNCAzLjM4NCAyLjk5MSAwLjQ3MiAwLjIwMyAwLjg0MSAwLjMyNSAxLjEyOCAwLjQxOSAwLjQ3NSAwLjE1IDAuOTA2IDAuMTI4IDEuMjQ3IDAuMDc4IDAuMzgxLTAuMDU2IDEuMTcyLTAuNDc4IDEuMzM4LTAuOTQxczAuMTY2LTAuODU5IDAuMTE2LTAuOTQxYy0wLjA0Ny0wLjA4OC0wLjE3OC0wLjEzNy0wLjM3OC0wLjIzOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TcG90aWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40IDAtOCAzLjYtOCA4czMuNiA4IDggOCA4LTMuNiA4LTgtMy41NTktOC04LTh6TTExLjY4MSAxMS41NTljLTAuMTU5IDAuMjQxLTAuNDQxIDAuMzE5LTAuNjgxIDAuMTU5LTEuODgxLTEuMTU5LTQuMjQxLTEuNC03LjA0MS0wLjc1OS0wLjI4MSAwLjA4MS0wLjUxOS0wLjExOS0wLjYtMC4zNTktMC4wODEtMC4yODEgMC4xMTktMC41MTkgMC4zNTktMC42IDMuMDQxLTAuNjgxIDUuNjgxLTAuNCA3Ljc1OSAwLjg4MSAwLjI4MSAwLjExOSAwLjMyMiAwLjQzOCAwLjIwMyAwLjY3OHpNMTIuNjQxIDkuMzU5Yy0wLjIgMC4yODEtMC41NTkgMC40LTAuODQxIDAuMi0yLjE1OS0xLjMxOS01LjQ0MS0xLjcxOS03Ljk1OS0wLjkxOS0wLjMxOSAwLjA4MS0wLjY4MS0wLjA4MS0wLjc1OS0wLjQtMC4wODEtMC4zMTkgMC4wODEtMC42ODEgMC40LTAuNzU5IDIuOTE5LTAuODgxIDYuNTE5LTAuNDQxIDkgMS4wODEgMC4yMzggMC4xMTkgMC4zNTkgMC41MTkgMC4xNTkgMC43OTd6TTEyLjcxOSA3LjExOWMtMi41NTktMS41MTktNi44NDEtMS42ODEtOS4yODEtMC45MTktMC40IDAuMTE5LTAuOC0wLjExOS0wLjkxOS0wLjQ4MS0wLjExOS0wLjQgMC4xMTktMC44IDAuNDgxLTAuOTE5IDIuODQxLTAuODQxIDcuNTE5LTAuNjgxIDEwLjQ4MSAxLjA4MSAwLjM1OSAwLjIgMC40ODEgMC42ODEgMC4yODEgMS4wNDEtMC4yMDMgMC4yNzgtMC42ODEgMC4zOTctMS4wNDQgMC4xOTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVGVsZWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOSAwLTggMy41ODEtOCA4czMuNTgxIDggOCA4IDgtMy41ODEgOC04LTMuNTgxLTgtOC04ek0xMS45MzEgNS40ODRsLTEuMzEzIDYuMTg0Yy0wLjA5MSAwLjQ0MS0wLjM1NiAwLjU0NC0wLjcyNSAwLjM0MWwtMi0xLjQ3OC0wLjk1OSAwLjkzNGMtMC4xMTIgMC4xMDktMC4yIDAuMi0wLjQgMC4yLTAuMjU5IDAtMC4yMTYtMC4wOTctMC4zMDMtMC4zNDRsLTAuNjgxLTIuMjM3LTEuOTc4LTAuNjE2Yy0wLjQyOC0wLjEzMS0wLjQzMS0wLjQyNSAwLjA5Ny0wLjYzNGw3LjcwNi0yLjk3NWMwLjM1LTAuMTU5IDAuNjkxIDAuMDg0IDAuNTU2IDAuNjI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVR3aXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMy41MzhjLTAuNTg4IDAuMjYzLTEuMjIyIDAuNDM4LTEuODg0IDAuNTE2IDAuNjc4LTAuNDA2IDEuMTk3LTEuMDUwIDEuNDQ0LTEuODE2LTAuNjM0IDAuMzc1LTEuMzM4IDAuNjUtMi4wODQgMC43OTctMC42LTAuNjM4LTEuNDUzLTEuMDM0LTIuMzk3LTEuMDM0LTEuODEzIDAtMy4yODEgMS40NjktMy4yODEgMy4yODEgMCAwLjI1NiAwLjAyOCAwLjUwNiAwLjA4NCAwLjc0Ny0yLjcyOC0wLjEzOC01LjE0Ny0xLjQ0NC02Ljc2Ni0zLjQzMS0wLjI4MSAwLjQ4NC0wLjQ0NCAxLjA1MC0wLjQ0NCAxLjY1IDAgMS4xMzggMC41NzggMi4xNDQgMS40NTkgMi43MzEtMC41MzgtMC4wMTYtMS4wNDQtMC4xNjYtMS40ODgtMC40MDkgMCAwLjAxMyAwIDAuMDI4IDAgMC4wNDEgMCAxLjU5MSAxLjEzMSAyLjkxOSAyLjYzNCAzLjIxOS0wLjI3NSAwLjA3NS0wLjU2NiAwLjExNi0wLjg2NiAwLjExNi0wLjIxMiAwLTAuNDE2LTAuMDIyLTAuNjE5LTAuMDU5IDAuNDE5IDEuMzAzIDEuNjMxIDIuMjUzIDMuMDY2IDIuMjgxLTEuMTI1IDAuODgxLTIuNTM4IDEuNDA2LTQuMDc4IDEuNDA2LTAuMjY2IDAtMC41MjUtMC4wMTYtMC43ODQtMC4wNDcgMS40NTYgMC45MzQgMy4xODEgMS40NzUgNS4wMzQgMS40NzUgNi4wMzcgMCA5LjM0MS01LjAwMyA5LjM0MS05LjM0MSAwLTAuMTQ0LTAuMDAzLTAuMjg0LTAuMDA5LTAuNDI1IDAuNjQxLTAuNDU5IDEuMTk3LTEuMDM4IDEuNjM3LTEuNjk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVZpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMDEyIDcuOTUzYy0wLjQxMiAwLjA5NC0wLjgwOSAwLjEzNy0xLjE2OSAwLjEzNy0yLjAxOSAwLTMuNTcyLTEuNDA5LTMuNTcyLTMuODYyIDAtMS4yMDMgMC40NjYtMS44MjUgMS4xMjItMS44MjUgMC42MjUgMCAxLjA0MSAwLjU1OSAxLjA0MSAxLjY5NyAwIDAuNjQ3LTAuMTcyIDEuMzU2LTAuMyAxLjc3NSAwIDAgMC42MjIgMS4wODQgMi4zMjIgMC43NTMgMC4zNjMtMC44MDMgMC41NTYtMS44NDEgMC41NTYtMi43NSAwLTIuNDUtMS4yNS0zLjg3OC0zLjU0MS0zLjg3OC0yLjM1NiAwLTMuNzM0IDEuODA5LTMuNzM0IDQuMTk3IDAgMi4zNjYgMS4xMDYgNC4zOTQgMi45MjggNS4zMTktMC43NjYgMS41MzQtMS43NDEgMi44ODQtMi43NTkgMy45MDMtMS44NDQtMi4yMzEtMy41MTMtNS4yMDYtNC4xOTctMTEuMDE2aC0yLjcyMmMxLjI1OSA5LjY3NSA1LjAwNiAxMi43NTYgNiAxMy4zNDcgMC41NTkgMC4zMzcgMS4wNDQgMC4zMjIgMS41NTYgMC4wMzEgMC44MDYtMC40NTYgMy4yMjItMi44NzUgNC41NjMtNS43MDMgMC41NjMgMCAxLjIzOC0wLjA2NiAxLjkwOS0wLjIxOXYtMS45MDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTEyLjk1OSAxMS4ybC0xLjQ2MyAwLjAyMmMwIDAtMC4zMTYgMC4wNjMtMC43MjgtMC4yMjItMC41NDctMC4zNzUtMS4wNjMtMS4zNTMtMS40NjYtMS4yMjUtMC40MDYgMC4xMjgtMC4zOTQgMS4wMDYtMC4zOTQgMS4wMDZzMC4wMDMgMC4xODgtMC4wOTEgMC4yODdjLTAuMSAwLjEwOS0wLjMgMC4xMzEtMC4zIDAuMTMxaC0wLjY1M2MwIDAtMS40NDQgMC4wODgtMi43MTYtMS4yMzgtMS4zODgtMS40NDQtMi42MTItNC4zMDktMi42MTItNC4zMDlzLTAuMDcyLTAuMTg4IDAuMDA2LTAuMjc4YzAuMDg3LTAuMTAzIDAuMzIyLTAuMTA5IDAuMzIyLTAuMTA5bDEuNTY2LTAuMDA5YzAgMCAwLjE0NyAwLjAyNSAwLjI1MyAwLjEwMyAwLjA4OCAwLjA2MyAwLjEzNCAwLjE4NCAwLjEzNCAwLjE4NHMwLjI1MyAwLjY0MSAwLjU4OCAxLjIxOWMwLjY1MyAxLjEyOCAwLjk1OSAxLjM3NSAxLjE4MSAxLjI1NiAwLjMyMi0wLjE3NSAwLjIyNS0xLjU5NyAwLjIyNS0xLjU5N3MwLjAwNi0wLjUxNi0wLjE2Mi0wLjc0NGMtMC4xMzEtMC4xNzgtMC4zNzgtMC4yMzEtMC40ODQtMC4yNDQtMC4wODgtMC4wMTMgMC4wNTYtMC4yMTYgMC4yNDQtMC4zMDkgMC4yODEtMC4xMzggMC43NzgtMC4xNDcgMS4zNjYtMC4xNDEgMC40NTYgMC4wMDMgMC41OTEgMC4wMzQgMC43NjkgMC4wNzUgMC41NDEgMC4xMzEgMC4zNTYgMC42MzQgMC4zNTYgMS44NDEgMCAwLjM4OC0wLjA2OSAwLjkzMSAwLjIwOSAxLjEwOSAwLjExOSAwLjA3OCAwLjQxMiAwLjAxMiAxLjE0Ny0xLjIzNCAwLjM0Ny0wLjU5MSAwLjYwOS0xLjI4NCAwLjYwOS0xLjI4NHMwLjA1Ni0wLjEyNSAwLjE0NC0wLjE3OGMwLjA5MS0wLjA1MyAwLjIxMy0wLjAzNyAwLjIxMy0wLjAzN2wxLjY0Ny0wLjAwOWMwIDAgMC40OTQtMC4wNTkgMC41NzUgMC4xNjYgMC4wODQgMC4yMzQtMC4xODQgMC43ODEtMC44NTYgMS42NzgtMS4xMDMgMS40NzItMS4yMjggMS4zMzQtMC4zMDkgMi4xODQgMC44NzUgMC44MTMgMS4wNTYgMS4yMDkgMS4wODggMS4yNTkgMC4zNTYgMC42LTAuNDA2IDAuNjQ3LTAuNDA2IDAuNjQ3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVJlbnJlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjY0NCAwLjE2NmMtMy43NjkgMC42MzQtNi42NDQgMy45MTMtNi42NDQgNy44NjIgMCAxLjk2MyAwLjcxMyAzLjc1OSAxLjg4NyA1LjE1IDIuNzkxLTEuMzUgNC43NDQtNC40MDYgNC43NTYtNy45NjZ2LTUuMDQ3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMzU2IDAuMTY2YzMuNzY5IDAuNjM0IDYuNjQ0IDMuOTEzIDYuNjQ0IDcuODYyIDAgMS45NjMtMC43MTMgMy43NTktMS44ODcgNS4xNS0yLjc5MS0xLjM1LTQuNzQ0LTQuNDA2LTQuNzU2LTcuOTY2di01LjA0N3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljk3MiAxMC4wNDFjLTAuNDk3IDIuMDU2LTEuOTgxIDMuODEzLTMuODI4IDQuOTgxIDEuMTM4IDAuNjIyIDIuNDQxIDAuOTc4IDMuODI4IDAuOTc4czIuNjkxLTAuMzU2IDMuODI4LTAuOTc4Yy0xLjg0Ny0xLjE2OS0zLjMzMS0yLjkyNS0zLjgyOC00Ljk4MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TaW5hV2VpYm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi43MjIgMTQuMDMxYy0yLjY1IDAuMjYyLTQuOTM4LTAuOTM4LTUuMTA5LTIuNjc1LTAuMTcyLTEuNzQxIDEuODM3LTMuMzU5IDQuNDg0LTMuNjIyIDIuNjUtMC4yNjMgNC45MzggMC45MzggNS4xMDYgMi42NzUgMC4xNzUgMS43NDEtMS44MzQgMy4zNjItNC40ODEgMy42MjJ6TTEyLjAxOSA4LjI1OWMtMC4yMjUtMC4wNjktMC4zODEtMC4xMTMtMC4yNjItMC40MDkgMC4yNTYtMC42NDQgMC4yODEtMS4xOTcgMC4wMDMtMS41OTQtMC41MTktMC43NDEtMS45NDEtMC43MDMtMy41NjktMC4wMTkgMCAwLTAuNTEzIDAuMjIyLTAuMzgxLTAuMTgxIDAuMjUtMC44MDYgMC4yMTMtMS40NzgtMC4xNzgtMS44NjktMC44ODQtMC44ODQtMy4yMzQgMC4wMzQtNS4yNSAyLjA1MC0xLjUwNiAxLjUwMy0yLjM4MSAzLjEwNi0yLjM4MSA0LjQ5MSAwIDIuNjQ0IDMuMzk0IDQuMjUzIDYuNzEzIDQuMjUzIDQuMzUgMCA3LjI0Ny0yLjUyOCA3LjI0Ny00LjUzNCAwLTEuMjE2LTEuMDIyLTEuOTAzLTEuOTQxLTIuMTg4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjkwOSAzLjQxNmMtMS4wNTAtMS4xNjYtMi42LTEuNjA5LTQuMDMxLTEuMzA2djBjLTAuMzMxIDAuMDcyLTAuNTQxIDAuMzk3LTAuNDY5IDAuNzI1IDAuMDcyIDAuMzMxIDAuMzk0IDAuNTQxIDAuNzI1IDAuNDY5IDEuMDE5LTAuMjE2IDIuMTE5IDAuMSAyLjg2NiAwLjkyOHMwLjk1IDEuOTU2IDAuNjI4IDIuOTQ0djBjLTAuMTAzIDAuMzIyIDAuMDcyIDAuNjY2IDAuMzk0IDAuNzcyIDAuMzIyIDAuMTAzIDAuNjY2LTAuMDcyIDAuNzcyLTAuMzk0di0wLjAwM2MwLjQ1LTEuMzgxIDAuMTY2LTIuOTY5LTAuODg0LTQuMTM0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjI5NCA0Ljg3NWMtMC41MTItMC41NjktMS4yNjktMC43ODQtMS45NjMtMC42MzQtMC4yODQgMC4wNTktMC40NjYgMC4zNDQtMC40MDYgMC42MjggMC4wNjMgMC4yODQgMC4zNDQgMC40NjYgMC42MjUgMC40MDN2MGMwLjM0MS0wLjA3MiAwLjcwOSAwLjAzNCAwLjk1OSAwLjMwOSAwLjI1IDAuMjc4IDAuMzE5IDAuNjU2IDAuMjA5IDAuOTg3djBjLTAuMDg4IDAuMjc1IDAuMDYzIDAuNTc1IDAuMzQxIDAuNjY2IDAuMjc4IDAuMDg4IDAuNTc1LTAuMDYzIDAuNjY2LTAuMzQxIDAuMjE5LTAuNjc4IDAuMDgxLTEuNDUzLTAuNDMxLTIuMDE5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODY5IDEwLjg4NGMtMC4wOTQgMC4xNTktMC4yOTcgMC4yMzQtMC40NTYgMC4xNjktMC4xNTktMC4wNjMtMC4yMDYtMC4yNDQtMC4xMTYtMC4zOTcgMC4wOTQtMC4xNTMgMC4yOTEtMC4yMjggMC40NDctMC4xNjkgMC4xNTYgMC4wNTYgMC4yMTMgMC4yMzQgMC4xMjUgMC4zOTd6TTYuMDIyIDExLjk2NmMtMC4yNTYgMC40MDktMC44MDYgMC41ODgtMS4yMTkgMC40LTAuNDA2LTAuMTg0LTAuNTI4LTAuNjU5LTAuMjcyLTEuMDU5IDAuMjUzLTAuMzk3IDAuNzg0LTAuNTc1IDEuMTk0LTAuNDAzIDAuNDE2IDAuMTc4IDAuNTUgMC42NSAwLjI5NyAxLjA2M3pNNi45ODQgOS4wNzJjLTEuMjU5LTAuMzI4LTIuNjg0IDAuMy0zLjIzMSAxLjQwOS0wLjU1OSAxLjEzMS0wLjAxOSAyLjM5MSAxLjI1MyAyLjgwMyAxLjMxOSAwLjQyNSAyLjg3NS0wLjIyOCAzLjQxNi0xLjQ0NyAwLjUzNC0xLjE5Ny0wLjEzMS0yLjQyNS0xLjQzOC0yLjc2NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Sc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4xMyAxMS43MzNjLTEuMTc1IDAtMi4xMyAwLjk1OC0yLjEzIDIuMTI2IDAgMS4xNzQgMC45NTUgMi4xMjIgMi4xMyAyLjEyMiAxLjE3OSAwIDIuMTMzLTAuOTQ4IDIuMTMzLTIuMTIyLTAtMS4xNjgtMC45NTQtMi4xMjYtMi4xMzMtMi4xMjZ6TTAuMDAyIDUuNDM2djMuMDY3YzEuOTk3IDAgMy44NzQgMC43ODEgNS4yODggMi4xOTYgMS40MTIgMS40MTEgMi4xOTIgMy4yOTcgMi4xOTIgNS4zMDJoMy4wODBjLTAtNS44MjUtNC43MzktMTAuNTY0LTEwLjU2LTEwLjU2NHpNMC4wMDYgMHYzLjA2OGM3LjEyMiAwIDEyLjkxOCA1LjgwMiAxMi45MTggMTIuOTMyaDMuMDc2YzAtOC44Mi03LjE3Ni0xNi0xNS45OTQtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUnNzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNC4zNTkgMTIuOTg4Yy0wLjc1IDAtMS4zNTktMC42MDMtMS4zNTktMS4zNTMgMC0wLjc0NCAwLjYwOS0xLjM1NiAxLjM1OS0xLjM1NiAwLjc1MyAwIDEuMzU5IDAuNjEzIDEuMzU5IDEuMzU2IDAgMC43NS0wLjYwOSAxLjM1My0xLjM1OSAxLjM1M3pNNy43NzIgMTNjMC0xLjI3OC0wLjQ5Ny0yLjQ4MS0xLjM5Ny0zLjM4MS0wLjkwMy0wLjkwMy0yLjEtMS40LTMuMzc1LTEuNHYtMS45NTZjMy43MTMgMCA2LjczOCAzLjAyMiA2LjczOCA2LjczN2gtMS45NjZ6TTExLjI0NCAxM2MwLTQuNTQ3LTMuNjk3LTguMjUtOC4yNDEtOC4yNXYtMS45NTZjNS42MjUgMCAxMC4yMDMgNC41ODEgMTAuMjAzIDEwLjIwNmgtMS45NjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltWW91dHViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS44NDEgNC44YzAgMC0wLjE1Ni0xLjEwMy0wLjYzNy0xLjU4Ny0wLjYwOS0wLjYzNy0xLjI5MS0wLjY0MS0xLjYwMy0wLjY3OC0yLjIzNy0wLjE2My01LjU5Ny0wLjE2My01LjU5Ny0wLjE2M2gtMC4wMDZjMCAwLTMuMzU5IDAtNS41OTcgMC4xNjMtMC4zMTMgMC4wMzgtMC45OTQgMC4wNDEtMS42MDMgMC42NzgtMC40ODEgMC40ODQtMC42MzQgMS41ODctMC42MzQgMS41ODdzLTAuMTU5IDEuMjk0LTAuMTU5IDIuNTkxdjEuMjEzYzAgMS4yOTQgMC4xNTkgMi41OTEgMC4xNTkgMi41OTFzMC4xNTYgMS4xMDMgMC42MzQgMS41ODhjMC42MDkgMC42MzcgMS40MDkgMC42MTYgMS43NjYgMC42ODQgMS4yODEgMC4xMjIgNS40NDEgMC4xNTkgNS40NDEgMC4xNTlzMy4zNjMtMC4wMDYgNS42LTAuMTY2YzAuMzEzLTAuMDM3IDAuOTk0LTAuMDQxIDEuNjAzLTAuNjc4IDAuNDgxLTAuNDg0IDAuNjM3LTEuNTg4IDAuNjM3LTEuNTg4czAuMTU5LTEuMjk0IDAuMTU5LTIuNTkxdi0xLjIxM2MtMC4wMDMtMS4yOTQtMC4xNjItMi41OTEtMC4xNjItMi41OTF6TTYuMzQ3IDEwLjA3NXYtNC40OTdsNC4zMjIgMi4yNTYtNC4zMjIgMi4yNDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltWW91dHViZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgNDAgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4zNzUgMi42NDdjMC4wMDMtMC4wMTQgMC4wMDUtMC4wMjMgMC4wMDYtMC4wMjhsMC4wMTYtMC4xMTgtMC43NC0wLjAwNGMtMC42NjgtMC4wMDQtMC44NzMgMC0wLjg5MSAwLjAxNy0wLjAwOSAwLjAwOC0wLjI0IDAuODg1LTAuNjUxIDIuNDczLTAuMTk2IDAuNzU4LTAuMzYxIDEuMzYzLTAuMzY3IDEuMzQ1cy0wLjI0LTAuODgzLTAuNTIyLTEuOTIyYy0wLjI4MS0xLjAzOS0wLjUxNy0xLjg5NC0wLjUyNC0xLjkwMS0wLjAxMC0wLjAxMC0wLjkwNi0wLjAxNC0xLjYzMi0wLjAwOC0wLjEwNSAwLjAwMS0wLjE2NC0wLjIwNSAwLjkzOCAzLjI5OSAwLjE1MiAwLjQ4NSAwLjM4MSAxLjE3MiAwLjUwNyAxLjUyNiAwLjE0NiAwLjQwOCAwLjI1IDAuNzI0IDAuMzIxIDAuOTg3IDAuMTI2IDAuNTAxIDAuMTMgMC44MTUgMC4xMDMgMS4xODItMC4wMzIgMC40MjMtMC4wMzYgMy40MTMtMC4wMDUgMy40NjMgMC4wMjQgMC4wMzggMS40MjUgMC4wNTYgMS41NTggMC4wMjAgMC4wMjEtMC4wMDYgMC4wMzUtMC4wMjYgMC4wNDUtMC4xMzkgMC4wMzMtMC4wOTcgMC4wMzYtMC40ODQgMC4wMzYtMi4wOTB2LTIuMDUxbDAuMDkwLTAuMjgzYzAuMDU5LTAuMTg1IDAuMjA2LTAuNjcyIDAuMzI4LTEuMDgyczAuMjY5LTAuOSAwLjMyNy0xLjA5MGMwLjUyOS0xLjcyNCAxLjAzMy0zLjQxOSAxLjA0Ny0zLjUxNmwwLjAxMS0wLjA3OXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4yMjEgNS4xMzVsLTAgMC4xMDctMC4wMTcgMC0wLjAwOSAyLjk1My0wLjAwOSAyLjg2My0wLjIyOSAwLjIzM2MtMC4yNTcgMC4yNjEtMC40NjIgMC4zNjEtMC42NDggMC4zMTQtMC4yMDMtMC4wNTEtMC4xOTcgMC4wMjgtMC4yMTQtMy4zNTZsLTAuMDE2LTMuMTE1aC0xLjQ3NHYwLjEwN2gtMC4wMTd2My4zOGMwIDMuNjIxLTAgMy42MTkgMC4xODQgMy45ODIgMC4xNDYgMC4yOSAwLjM2IDAuNDMxIDAuNzI1IDAuNDc5aDBjMC40ODEgMC4wNjQgMS0wLjE1NCAxLjQ4MS0wLjYyMmwwLjIwOS0wLjIwM3YwLjM1MWMwIDAuMzAzIDAuMDA5IDAuMzUzIDAuMDY0IDAuMzY4IDAuMDkwIDAuMDI1IDEuMjA2IDAuMDI3IDEuMzI2IDAuMDAybDAuMS0wLjAyMXYtMC4xMDRsMC4wMTctMC4wMDN2LTcuNzM2bC0xLjQ3MiAwLjAyMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQ4MyA2LjY2MWMtMC4xNC0wLjU5OS0wLjQwMS0xLjAwMi0wLjgzMi0xLjI4LTAuNjc2LTAuNDM3LTEuNDQ5LTAuNDg0LTIuMTY1LTAuMTMtMC41MjIgMC4yNTgtMC44NTkgMC42ODYtMS4wMzIgMS4zMTQtMC4wMjEgMC4wNzUtMC4wMzYgMC4xMzgtMC4wNDcgMC4yMzEtMC4wNDQgMC4yMjItMC4wNDkgMC41NTItMC4wNjEgMi4wOTMtMC4wMTggMi4zNzQgMC4wMTAgMi42NTYgMC4zMDcgMy4xOTUgMC4yOTIgMC41MjkgMC44OTcgMC45MTcgMS41NTYgMC45OTcgMC4xOTggMC4wMjQgMC42LTAuMDEzIDAuODMyLTAuMDc4IDAuNTI1LTAuMTQ2IDEuMDI5LTAuNTYxIDEuMjUyLTEuMDMyIDAuMDk2LTAuMjA0IDAuMTU0LTAuMzQ1IDAuMTg5LTAuNjA0IDAuMDY1LTAuMzUzIDAuMDcwLTAuOTI1IDAuMDcwLTIuMzgxLTAtMS44NTctMC4wMDYtMi4wNjAtMC4wNjgtMi4zMjZ6TTcuODAyIDExLjVjLTAuMTI0IDAuMDk0LTAuMzQgMC4xMzUtMC41MTUgMC4wOTgtMC4xMzUtMC4wMjktMC4zMTgtMC4yNDEtMC4zNzQtMC40MzQtMC4wNzAtMC4yNDEtMC4wNzUtMy41OTQtMC4wMTUtNC4yNTEgMC4xLTAuMzI5IDAuMzc4LTAuNTAxIDAuNjgyLTAuNDE5IDAuMjM3IDAuMDY0IDAuMzU4IDAuMjEyIDAuNDI3IDAuNTIzIDAuMDUxIDAuMjMxIDAuMDU3IDAuNTE4IDAuMDQ2IDIuMjA3LTAuMDA3IDEuMTItMC4wMTEgMS42NjgtMC4wNDggMS45NjItMC4wMzcgMC4xODUtMC4wOTkgMC4yMzUtMC4yMDMgMC4zMTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUuOTQ0IDguMzQ2aDAuNzEybC0wLjAxMS0wLjY0NWMtMC4wMTEtMC41OTItMC4wMjAtMC42NTktMC4wOTktMC44Mi0wLjEyNS0wLjI1My0wLjMwOS0wLjM2Ni0wLjYwMS0wLjM2Ni0wLjM1MSAwLTAuNTczIDAuMTctMC42NzggMC41MTgtMC4wNDUgMC4xNDgtMC4wOTIgMS4xNjctMC4wNTggMS4yNTUgMC4wMTkgMC4wNDkgMC4xMjEgMC4wNTggMC43MzUgMC4wNTh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEuMTg0IDYuODc5Yy0wLjA5NS0wLjE5MS0wLjI3Mi0wLjI4Ni0wLjQ3Ny0wLjI3OC0wLjE2IDAuMDA2LTAuMzM3IDAuMDczLTAuNTA4IDAuMjAzbC0wLjEyNyAwLjA5N3Y0LjYzNGwwLjEyNyAwLjA5N2MwLjI4OCAwLjIyIDAuNjA0IDAuMjY2IDAuODIyIDAuMTIgMC4wODYtMC4wNTggMC4xNDItMC4xMzcgMC4xODYtMC4yNjMgMC4wNTctMC4xNjQgMC4wNjItMC4zNzUgMC4wNTUtMi4zMjUtMC4wMDgtMi4wMzItMC4wMTItMi4xNTItMC4wNzgtMi4yODV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAuMDE0IDQuNzkxYy0wLjE0Mi0xLjcwMS0wLjI1NS0yLjI1My0wLjYwNS0yLjk2Mi0wLjQ2NS0wLjkzOS0xLjEzNi0xLjQzNC0yLjA5Mi0xLjU0My0wLjczOS0wLjA4NC0zLjUyMS0wLjIwMy02LjA5NC0wLjI2LTQuNDU2LTAuMDk5LTExLjc4MiAwLjA5Mi0xMi43MTggMC4zMzEtMC40MzIgMC4xMTEtMC43NTcgMC4yOTktMS4wOTQgMC42MzQtMC41OTEgMC41ODgtMC45NDQgMS40MzItMS4wODUgMi42LTAuMzIzIDIuNjY2LTAuMzMgNS44ODYtMC4wMTkgOC42NDkgMC4xMzQgMS4xODggMC40MSAxLjk2IDAuOTI4IDIuNTk2IDAuMzIzIDAuMzk3IDAuODgxIDAuNzM0IDEuMzc5IDAuODM1IDAuMzUgMC4wNzEgMi4xIDAuMTY5IDQuNjUgMC4yNiAwLjM4IDAuMDE0IDEuMzg1IDAuMDM3IDIuMjM1IDAuMDUyIDEuNzcgMC4wMzEgNS4wMjUgMC4wMTMgNi44ODYtMC4wMzkgMS4yNTItMC4wMzUgMy41MzQtMC4xMjggMy45NjEtMC4xNjEgMC4xMi0wLjAwOSAwLjM5OC0wLjAyNyAwLjYxOC0wLjAzOSAwLjczOS0wLjA0MiAxLjIwOS0wLjE5NiAxLjY1LTAuNTQzIDAuNTcxLTAuNDQ5IDEuMDEzLTEuMjc4IDEuMi0yLjI1MSAwLjE3Ny0wLjkyIDAuMjk1LTIuNTU5IDAuMzE5LTQuNDIgMC4wMjAtMS41NTUtMC4wMDctMi4zOTMtMC4xMTktMy43NDF6TTIyLjI3IDQuMTc1bC0wLjgyOCAwLjAxMC0wLjAzNiA4LjgzLTAuNzE4IDAuMDA5Yy0wLjU1NSAwLjAwOC0wLjcyNC0wLjAwMS0wLjczNy0wLjAzNi0wLjAxMC0wLjAyNS0wLjAyMS0yLjAxNi0wLjAyNi00LjQyNGwtMC4wMDktNC4zNzktMS42MTctMC4wMjB2LTEuMzhsNC43NzkgMC4wMTkgMC4wMjAgMS4zNi0wLjgyOCAwLjAxMHpNMjcuMzQ3IDkuMjM2djMuNzk3aC0xLjMwOHYtMC40YzAtMC4zMDEtMC4wMTEtMC40LTAuMDQ3LTAuNC0wLjAyNiAwLTAuMTQ0IDAuMDk5LTAuMjYzIDAuMjItMC4yNTkgMC4yNjMtMC41NjUgMC40NzQtMC44MjcgMC41NzItMC41NDIgMC4yMDMtMS4wNTYgMC4wODQtMS4yNzUtMC4yOTMtMC4yMDEtMC4zNDUtMC4yMDQtMC40MjMtMC4yMDQtNC4wMDV2LTMuMjloMS4zMDdsMC4wMTAgMy4wOThjMC4wMTAgMy4wNDQgMC4wMTEgMy4xIDAuMDg0IDMuMjI0IDAuMDk3IDAuMTY0IDAuMjQ0IDAuMjA5IDAuNDc4IDAuMTQ0IDAuMTM4LTAuMDM4IDAuMjMyLTAuMTA1IDAuNDU1LTAuMzI3bDAuMjgyLTAuMjh2LTUuODU5aDEuMzA4djMuNzk3ek0zMi40NDkgMTIuNDkxYy0wLjExNSAwLjI1Ny0wLjM3MiAwLjUwOC0wLjU4MyAwLjU3LTAuNTQ5IDAuMTYyLTAuOTkgMC4wMzAtMS40OTktMC40NDktMC4xNTgtMC4xNDktMC4zMDUtMC4yNjktMC4zMjctMC4yNjktMC4wMjcgMC0wLjA0MSAwLjExNi0wLjA0MSAwLjM0NXYwLjM0NWgtMS4zMDh2LTEwLjI0OGgxLjMwOHYxLjY3MmMwIDAuOTE5IDAuMDEyIDEuNjcyIDAuMDI3IDEuNjcyczAuMTUzLTAuMTIyIDAuMzA3LTAuMjdjMC4zNTQtMC4zNDEgMC42NDktMC40OTEgMS4wMjQtMC41MTkgMC42NjktMC4wNTEgMS4wNjggMC4yOTQgMS4yNSAxLjA4MCAwLjA1NyAwLjI0NSAwLjA2MiAwLjUyNSAwLjA2MiAyLjc5OC0wIDIuNzY4LTAgMi43OC0wLjIyMSAzLjI3M3pNMzcuOTg0IDEwLjk3MWMtMC4wMTIgMC4yODUtMC4wNDYgMC42MTItMC4wNzcgMC43MjctMC4xODIgMC42NzQtMC42NjYgMS4xNTItMS4zNjYgMS4zNDgtMC45NDIgMC4yNjQtMS45OC0wLjE2OC0yLjM5NC0wLjk5Ny0wLjIzMi0wLjQ2NS0wLjI0MS0wLjU1OC0wLjI0MS0yLjgzMSAwLTEuODUzIDAuMDA3LTIuMDgxIDAuMDY2LTIuMzM0IDAuMTY4LTAuNzE1IDAuNTg0LTEuMTc4IDEuMjg5LTEuNDM1IDAuMjA0LTAuMDc0IDAuNDE3LTAuMTEzIDAuNjMtMC4xMTcgMC43NjEtMC4wMTYgMS41MTUgMC4zOTMgMS44MzIgMS4wNTkgMC4yMTMgMC40NDkgMC4yNCAwLjY0MiAwLjI2MSAxLjkwOGwwLjAxOSAxLjEzNi0yLjc4OSAwLjAxOS0wLjAxMCAwLjc2M2MtMC4wMTUgMS4wNzcgMC4wNTggMS40MDggMC4zNDkgMS42MDMgMC4yNDQgMC4xNjUgMC42MiAwLjE1MiAwLjgyNC0wLjAyNyAwLjE5Mi0wLjE2OCAwLjI0Ni0wLjM0OSAwLjI2NS0wLjg3N2wwLjAxNy0wLjQ2M2gxLjM0N2wtMC4wMjIgMC41MTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltVHdpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAwbC0xLjUgMi41djExLjVoNHYyaDJsMi0yaDIuNWw0LjUtNC41di05LjVoLTEzLjV6TTEzIDguNWwtMi41IDIuNWgtMi41bC0yIDJ2LTJoLTN2LTloMTB2Ni41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSA0aDEuNXY0aC0xLjV2LTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDRoMS41djRoLTEuNXYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1WaW1lbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS45OTQgNC4yODFjLTAuMDcyIDEuNTU2LTEuMTU5IDMuNjkxLTMuMjYzIDYuMzk3LTIuMTc1IDIuODI1LTQuMDE2IDQuMjQxLTUuNTIyIDQuMjQxLTAuOTMxIDAtMS43MjItMC44NTktMi4zNjYtMi41ODEtMC40MzEtMS41NzgtMC44NTktMy4xNTYtMS4yOTEtNC43MzQtMC40NzgtMS43MjItMC45OTEtMi41ODEtMS41NDEtMi41ODEtMC4xMTkgMC0wLjUzOCAwLjI1My0xLjI1NiAwLjc1M2wtMC43NTMtMC45NjljMC43OTEtMC42OTQgMS41NjktMS4zODggMi4zMzQtMi4wODEgMS4wNTMtMC45MDkgMS44NDQtMS4zODcgMi4zNzItMS40MzggMS4yNDQtMC4xMTkgMi4wMTMgMC43MzEgMi4zIDIuNTUzIDAuMzA5IDEuOTY2IDAuNTI1IDMuMTg4IDAuNjQ3IDMuNjY2IDAuMzU5IDEuNjMxIDAuNzUzIDIuNDQ3IDEuMTg0IDIuNDQ3IDAuMzM0IDAgMC44MzgtMC41MjggMS41MDktMS41ODggMC42NjktMS4wNTYgMS4wMjgtMS44NjIgMS4wNzgtMi40MTYgMC4wOTctMC45MTItMC4yNjItMS4zNzItMS4wNzgtMS4zNzItMC4zODQgMC0wLjc3OCAwLjA4OC0xLjE4NCAwLjI2MyAwLjc4Ny0yLjU3NSAyLjI4Ny0zLjgyNSA0LjUwNi0zLjc1MyAxLjY0MSAwLjA0NCAyLjQxNiAxLjEwOSAyLjMyMiAzLjE5NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1WaW1lbzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTEzLjQ2MyA1LjMxM2MtMC4wNTAgMS4xMjUtMC44MzggMi42NjYtMi4zNTkgNC42MjItMS41NzIgMi4wNDQtMi45MDMgMy4wNjYtMy45OTEgMy4wNjYtMC42NzUgMC0xLjI0NC0wLjYyMi0xLjcwOS0xLjg2Ni0wLjMxMy0xLjE0MS0wLjYyMi0yLjI4MS0wLjkzNC0zLjQyMi0wLjM0NC0xLjI0NC0wLjcxNi0xLjg2Ni0xLjExMi0xLjg2Ni0wLjA4NyAwLTAuMzkxIDAuMTgxLTAuOTA2IDAuNTQ0bC0wLjU0NC0wLjdjMC41NzItMC41IDEuMTM0LTEuMDAzIDEuNjg3LTEuNTAzIDAuNzYzLTAuNjU2IDEuMzMxLTEuMDAzIDEuNzEyLTEuMDM4IDAuOS0wLjA4NyAxLjQ1MyAwLjUyOCAxLjY2MiAxLjg0NCAwLjIyNSAxLjQyMiAwLjM4MSAyLjMwMyAwLjQ2OSAyLjY1IDAuMjU5IDEuMTc4IDAuNTQ0IDEuNzY2IDAuODU2IDEuNzY2IDAuMjQxIDAgMC42MDYtMC4zODEgMS4wOTEtMS4xNDdzMC43NDQtMS4zNDcgMC43NzgtMS43NDdjMC4wNjktMC42NTktMC4xOTEtMC45OTEtMC43NzgtMC45OTEtMC4yNzggMC0wLjU2MyAwLjA2My0wLjg1NiAwLjE5MSAwLjU2OS0xLjg1OSAxLjY1My0yLjc2NiAzLjI1Ni0yLjcxMiAxLjE4OCAwLjAzNCAxLjc0NyAwLjgwMyAxLjY3OCAyLjMwOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MYW55cmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTEyLjg1IDEyLjAxMmwtNS40NDQgMS43ODFjLTEuMjQ0IDAuNDA2LTEuMzY5IDAuMzQxLTEuOTMxLTEuNGwtMS4zNzUtNC4yNTljLTAuMzI4LTEuMDA5LTEuMzI4LTMuNzI4LTEuNDk3LTQuMjUtMC4zMTMtMC45NjktMC4zMTMtMS4wMjIgMS41MTYtMS42MTYgMS40MzEtMC40NjkgMS40OTEtMC40NTMgMi4wMDkgMS4xNjMgMC40MTkgMS4zIDAuNjg4IDIuMzUgMS4xMTkgMy42NzhsMS4xNzIgMy42MjUgMy43NDQtMS4yMjVjMC43MzgtMC4yNDQgMC45ODQtMC4yMzEgMS4xOTQgMC42NzhsMC4xNSAwLjY4OGMwLjE3NSAwLjc5Ny0wLjIyOCAxLTAuNjU2IDEuMTM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZsaWNrciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDguNWMwLTEuOTMzIDEuNTY3LTMuNSAzLjUtMy41czMuNSAxLjU2NyAzLjUgMy41YzAgMS45MzMtMS41NjcgMy41LTMuNSAzLjVzLTMuNS0xLjU2Ny0zLjUtMy41ek05IDguNWMwLTEuOTMzIDEuNTY3LTMuNSAzLjUtMy41czMuNSAxLjU2NyAzLjUgMy41YzAgMS45MzMtMS41NjcgMy41LTMuNSAzLjVzLTMuNS0xLjU2Ny0zLjUtMy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZsaWNrcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA2LjVjLTEuMTAzIDAtMiAwLjg5Ny0yIDJzMC44OTcgMiAyIDJjMS4xMDMgMCAyLTAuODk3IDItMnMtMC44OTctMi0yLTJ6TTEyLjUgNXYwYzEuOTMzIDAgMy41IDEuNTY3IDMuNSAzLjVzLTEuNTY3IDMuNS0zLjUgMy41LTMuNS0xLjU2Ny0zLjUtMy41YzAtMS45MzMgMS41NjctMy41IDMuNS0zLjV6TTAgOC41YzAtMS45MzMgMS41NjctMy41IDMuNS0zLjVzMy41IDEuNTY3IDMuNSAzLjVjMCAxLjkzMy0xLjU2NyAzLjUtMy41IDMuNXMtMy41LTEuNTY3LTMuNS0zLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRmxpY2tyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNC41IDEwLjVjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTExLjUgMTAuNWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNWMxLjM4MSAwIDIuNSAxLjExOSAyLjUgMi41cy0xLjExOSAyLjUtMi41IDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GbGlja3I0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtNC40MTggMC04IDMuNjA2LTggOC4wNTVzMy41ODIgOC4wNTUgOCA4LjA1NSA4LTMuNjA2IDgtOC4wNTUtMy41ODItOC4wNTUtOC04LjA1NXpNNC41IDEwLjVjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjVjMCAxLjM4MS0xLjExOSAyLjUtMi41IDIuNXpNMTEuNSAxMC41Yy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41YzAgMS4zODEtMS4xMTkgMi41LTIuNSAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRHJpYmJibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNmMtNC40MTIgMC04LTMuNTg4LTgtOHMzLjU4Ny04IDgtOGM0LjQxMiAwIDggMy41ODcgOCA4cy0zLjU4OCA4LTggOHYwek0xNC43NDcgOS4wOTRjLTAuMjM0LTAuMDc1LTIuMTE2LTAuNjM0LTQuMjU2LTAuMjkxIDAuODk0IDIuNDU2IDEuMjU2IDQuNDU2IDEuMzI4IDQuODcyIDEuNTMxLTEuMDM3IDIuNjI1LTIuNjc4IDIuOTI4LTQuNTgxdjB6TTEwLjY2OSAxNC4zYy0wLjEwMy0wLjYtMC40OTctMi42ODgtMS40NTYtNS4xODEtMC4wMTYgMC4wMDYtMC4wMzEgMC4wMDktMC4wNDQgMC4wMTYtMy44NTYgMS4zNDQtNS4yNDEgNC4wMTYtNS4zNjIgNC4yNjYgMS4xNTkgMC45MDMgMi42MTYgMS40NDQgNC4xOTQgMS40NDQgMC45NDcgMCAxLjg1LTAuMTk0IDIuNjY5LTAuNTQ0djB6TTIuOTIyIDEyLjU3OGMwLjE1Ni0wLjI2NiAyLjAzMS0zLjM2OSA1LjU1My00LjUwOSAwLjA4OC0wLjAyOCAwLjE3OC0wLjA1NiAwLjI2OS0wLjA4MS0wLjE3Mi0wLjM4OC0wLjM1OS0wLjc3OC0wLjU1My0xLjE1OS0zLjQwOSAxLjAyMi02LjcyMiAwLjk3OC03LjAyMiAwLjk3NS0wLjAwMyAwLjA2OS0wLjAwMyAwLjEzOC0wLjAwMyAwLjIwOSAwIDEuNzUzIDAuNjY2IDMuMzU2IDEuNzU2IDQuNTY2djB6TTEuMzEzIDYuNjA5YzAuMzA2IDAuMDAzIDMuMTIyIDAuMDE2IDYuMzE5LTAuODMxLTEuMTMxLTIuMDEzLTIuMzUzLTMuNzA2LTIuNTM0LTMuOTUzLTEuOTEzIDAuOTAzLTMuMzQ0IDIuNjY2LTMuNzg0IDQuNzg0djB6TTYuNCAxLjM2NmMwLjE4OCAwLjI1MyAxLjQzMSAxLjk0NCAyLjU1IDQgMi40MzEtMC45MDkgMy40NTktMi4yOTQgMy41ODEtMi40NjktMS4yMDYtMS4wNzItMi43OTQtMS43MjItNC41MzEtMS43MjItMC41NSAwLjAwMy0xLjA4OCAwLjA2OS0xLjYgMC4xOTF2MHpNMTMuMjkxIDMuNjkxYy0wLjE0NCAwLjE5NC0xLjI5MSAxLjY2My0zLjgxNiAyLjY5NCAwLjE1OSAwLjMyNSAwLjMxMyAwLjY1NiAwLjQ1MyAwLjk5MSAwLjA1MCAwLjExOSAwLjEgMC4yMzQgMC4xNDcgMC4zNTMgMi4yNzUtMC4yODQgNC41MzQgMC4xNzIgNC43NTkgMC4yMTktMC4wMTYtMS42MTItMC41OTQtMy4wOTQtMS41NDQtNC4yNTZ2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1CZWhhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjQxIDMuMjA2YzAuNDcyIDAgMC44OTcgMC4wNDEgMS4yODQgMC4xMjUgMC4zODggMC4wODEgMC43MTYgMC4yMTkgMC45OTQgMC40MDYgMC4yNzUgMC4xODggMC40ODcgMC40MzggMC42NDQgMC43NSAwLjE1IDAuMzA5IDAuMjI1IDAuNjk3IDAuMjI1IDEuMTU2IDAgMC40OTctMC4xMTIgMC45MDktMC4zMzggMS4yNDEtMC4yMjggMC4zMzEtMC41NTkgMC42LTEuMDAzIDAuODEzIDAuNjA2IDAuMTc1IDEuMDUzIDAuNDgxIDEuMzUzIDAuOTE2IDAuMyAwLjQzOCAwLjQ0NCAwLjk2MyAwLjQ0NCAxLjU4MSAwIDAuNS0wLjA5NyAwLjkyOC0wLjI4NyAxLjI5MS0wLjE5NCAwLjM2Ni0wLjQ1NiAwLjY2Mi0wLjc3OCAwLjg5MS0wLjMyNSAwLjIzMS0wLjcgMC40LTEuMTE5IDAuNTA5LTAuNDE2IDAuMTA5LTAuODQ0IDAuMTY2LTEuMjg3IDAuMTY2aC00Ljc3MnYtOS44NDRoNC42NDF6TTQuMzU5IDcuMTgxYzAuMzg0IDAgMC43MDMtMC4wOTEgMC45NTMtMC4yNzUgMC4yNS0wLjE4MSAwLjM2OS0wLjQ4MSAwLjM2OS0wLjg5NCAwLTAuMjI4LTAuMDQxLTAuNDE5LTAuMTIyLTAuNTY2LTAuMDg0LTAuMTQ3LTAuMTk0LTAuMjYzLTAuMzM0LTAuMzQ0LTAuMTM4LTAuMDg0LTAuMjk0LTAuMTQxLTAuNDc4LTAuMTcyLTAuMTc4LTAuMDM0LTAuMzY2LTAuMDUwLTAuNTU2LTAuMDUwaC0yLjAyNXYyLjNoMi4xOTR6TTQuNDc4IDExLjM3MmMwLjIxMyAwIDAuNDE2LTAuMDE5IDAuNjA2LTAuMDYzIDAuMTk0LTAuMDQ0IDAuMzY2LTAuMTA5IDAuNTA5LTAuMjA5IDAuMTQ0LTAuMDk3IDAuMjY2LTAuMjI1IDAuMzUzLTAuMzk0IDAuMDg4LTAuMTY2IDAuMTI4LTAuMzc4IDAuMTI4LTAuNjM3IDAtMC41MDYtMC4xNDQtMC44NjktMC40MjgtMS4wODgtMC4yODQtMC4yMTYtMC42NjItMC4zMjItMS4xMzEtMC4zMjJoLTIuMzV2Mi43MDloMi4zMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMzMxIDExLjMzOGMwLjI5NCAwLjI4NyAwLjcxNiAwLjQzMSAxLjI2NiAwLjQzMSAwLjM5NCAwIDAuNzM4LTAuMSAxLjAyMi0wLjNzMC40NTYtMC40MTIgMC41MjItMC42MzFoMS43MjVjLTAuMjc4IDAuODU5LTAuNjk3IDEuNDY5LTEuMjcyIDEuODM4LTAuNTY2IDAuMzY5LTEuMjU5IDAuNTU2LTIuMDYzIDAuNTU2LTAuNTYzIDAtMS4wNjYtMC4wOTEtMS41MTktMC4yNjktMC40NTMtMC4xODEtMC44MzEtMC40MzQtMS4xNS0wLjc2Ni0wLjMwOS0wLjMzMS0wLjU1My0wLjcyNS0wLjcyNS0xLjE4OC0wLjE2OS0wLjQ1OS0wLjI1Ni0wLjk2OS0wLjI1Ni0xLjUxOSAwLTAuNTM0IDAuMDg4LTEuMDMxIDAuMjYyLTEuNDkxIDAuMTc4LTAuNDYzIDAuNDIyLTAuODU5IDAuNzQ3LTEuMTk0czAuNzA2LTAuNiAxLjE1Ni0wLjc5NGMwLjQ0Ny0wLjE5NCAwLjk0MS0wLjI5MSAxLjQ4OC0wLjI5MSAwLjYwMyAwIDEuMTMxIDAuMTE2IDEuNTg0IDAuMzUzIDAuNDUgMC4yMzQgMC44MjIgMC41NSAxLjExMyAwLjk0NHMwLjQ5NyAwLjg0NyAwLjYyNSAxLjM1M2MwLjEyOCAwLjUwNiAwLjE3MiAxLjAzNCAwLjEzNyAxLjU4OGgtNS4xNDdjMCAwLjU1OSAwLjE4OCAxLjA5NCAwLjQ4NCAxLjM3OHpNMTMuNTc4IDcuNTk0Yy0wLjIzMS0wLjI1Ni0wLjYyOC0wLjM5Ny0xLjEwNi0wLjM5Ny0wLjMxMyAwLTAuNTcyIDAuMDUzLTAuNzc4IDAuMTU5LTAuMjAzIDAuMTA2LTAuMzY5IDAuMjM3LTAuNDk3IDAuMzk0LTAuMTI1IDAuMTU2LTAuMjEzIDAuMzI1LTAuMjYyIDAuNTAzLTAuMDUwIDAuMTcyLTAuMDgxIDAuMzMxLTAuMDkxIDAuNDY5aDMuMTg4Yy0wLjA0Ny0wLjUtMC4yMTktMC44NjktMC40NTMtMS4xMjh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNDQ0IDRoMy45OTF2MC45NzJoLTMuOTkxdi0wLjk3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1CZWhhbmNlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjMxNiA3LjAwOWMwLjIwMy0wLjE0NyAwLjMtMC4zOTEgMC4zLTAuNzI4IDAtMC4xODgtMC4wMzEtMC4zNDEtMC4wOTctMC40NTktMC4wNjktMC4xMTktMC4xNTYtMC4yMTMtMC4yNzItMC4yNzgtMC4xMTItMC4wNjktMC4yNDEtMC4xMTYtMC4zODgtMC4xNDEtMC4xNDQtMC4wMjgtMC4yOTctMC4wNDEtMC40NTMtMC4wNDFoLTEuNjQ3djEuODY5aDEuNzgxYzAuMzEzIDAuMDAzIDAuNTcyLTAuMDcyIDAuNzc1LTAuMjIyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTk0IDguNjk3Yy0wLjIzMS0wLjE3NS0wLjUzNy0wLjI2Mi0wLjkxOS0wLjI2MmgtMS45MTZ2Mi4yMDNoMS44NzhjMC4xNzUgMCAwLjMzOC0wLjAxNiAwLjQ5NC0wLjA1MHMwLjI5Ny0wLjA4OCAwLjQxNi0wLjE2OWMwLjExOS0wLjA3OCAwLjIxNi0wLjE4NCAwLjI4Ny0wLjMxOXMwLjEwNi0wLjMwOSAwLjEwNi0wLjUxOWMwLTAuNDEyLTAuMTE2LTAuNzA2LTAuMzQ3LTAuODg0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMGgtMTNjLTAuODI1IDAtMS41IDAuNjc1LTEuNSAxLjV2MTNjMCAwLjgyNSAwLjY3NSAxLjUgMS41IDEuNWgxM2MwLjgyNSAwIDEuNS0wLjY3NSAxLjUtMS41di0xM2MwLTAuODI1LTAuNjc1LTEuNS0xLjUtMS41ek0xMC40ODggNC4yMDloMy4yNDF2MC43OTFoLTMuMjQxdi0wLjc5MXpNOC40NjMgMTAuNzI1Yy0wLjE1NiAwLjI5Ny0wLjM2OSAwLjUzNy0wLjYzMSAwLjcyNS0wLjI2NiAwLjE4OC0wLjU2OSAwLjMyNS0wLjkwOSAwLjQxNi0wLjMzOCAwLjA5MS0wLjY4OCAwLjEzNC0xLjA0NCAwLjEzNGgtMy44Nzh2LTcuOTk3aDMuNzY5YzAuMzgxIDAgMC43MjggMC4wMzQgMS4wNDQgMC4xIDAuMzEzIDAuMDY2IDAuNTgxIDAuMTc4IDAuODA2IDAuMzMxIDAuMjIyIDAuMTUzIDAuMzk3IDAuMzU2IDAuNTIyIDAuNjA5IDAuMTIyIDAuMjUgMC4xODQgMC41NjYgMC4xODQgMC45MzggMCAwLjQwMy0wLjA5MSAwLjczNy0wLjI3NSAxLjAwNnMtMC40NTMgMC40ODctMC44MTYgMC42NTljMC40OTQgMC4xNDEgMC44NTYgMC4zOTEgMS4wOTcgMC43NDQgMC4yNDQgMC4zNTYgMC4zNjMgMC43ODQgMC4zNjMgMS4yODQgMC4wMDMgMC40MDktMC4wNzUgMC43NTktMC4yMzEgMS4wNTB6TTE0Ljk5MSA5LjQ4OGgtNC4xNzhjMCAwLjQ1NiAwLjE1NiAwLjg5MSAwLjM5NCAxLjEyNSAwLjIzOCAwLjIzMSAwLjU4MSAwLjM1IDEuMDI4IDAuMzUgMC4zMjIgMCAwLjU5Ny0wLjA4MSAwLjgzMS0wLjI0NCAwLjIzMS0wLjE2MiAwLjM3Mi0wLjMzNCAwLjQyNS0wLjUxMmgxLjRjLTAuMjI1IDAuNjk3LTAuNTY2IDEuMTk0LTEuMDMxIDEuNDk0LTAuNDU5IDAuMy0xLjAyMiAwLjQ1LTEuNjc1IDAuNDUtMC40NTYgMC0wLjg2Ni0wLjA3NS0xLjIzNC0wLjIxOS0wLjM2OS0wLjE0Ny0wLjY3NS0wLjM1My0wLjkzNC0wLjYyMi0wLjI1My0wLjI2OS0wLjQ0Ny0wLjU5MS0wLjU4OC0wLjk2Ni0wLjEzNy0wLjM3Mi0wLjIwOS0wLjc4Ny0wLjIwOS0xLjIzNCAwLTAuNDM0IDAuMDcyLTAuODM4IDAuMjEzLTEuMjEzIDAuMTQ0LTAuMzc1IDAuMzQ0LTAuNyAwLjYwNi0wLjk2OSAwLjI2Mi0wLjI3MiAwLjU3NS0wLjQ4NyAwLjkzOC0wLjY0NyAwLjM2My0wLjE1NiAwLjc2Mi0wLjIzNCAxLjIwNi0wLjIzNCAwLjQ5MSAwIDAuOTE5IDAuMDk0IDEuMjg3IDAuMjg3IDAuMzY2IDAuMTkxIDAuNjY2IDAuNDQ3IDAuOTAzIDAuNzY5czAuNDAzIDAuNjg4IDAuNTA5IDEuMWMwLjEwMyAwLjQwNiAwLjEzNyAwLjgzNCAwLjEwOSAxLjI4NHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4xMzQgNy4yNDdjLTAuMjUzIDAtMC40NjYgMC4wNDQtMC42MzEgMC4xMzFzLTAuMyAwLjE5NC0wLjQwMyAwLjMxOWMtMC4xMDMgMC4xMjgtMC4xNzIgMC4yNjMtMC4yMTMgMC40MDktMC4wNDEgMC4xNDEtMC4wNjYgMC4yNjktMC4wNzIgMC4zODFoMi41ODhjLTAuMDM3LTAuNDA2LTAuMTc4LTAuNzA2LTAuMzY2LTAuOTE2LTAuMTk0LTAuMjEzLTAuNTEyLTAuMzI1LTAuOTAzLTAuMzI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbURldmlhbnRhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTUzIDIuOTA5di0yLjkwOWgtMi45MDlsLTAuMjkxIDAuMjk0LTEuMzc1IDIuNjE2LTAuNDMxIDAuMjkxaC00Ljl2My45OTRoMi42OTRsMC4yNDEgMC4yOTEtMi45MzQgNS42MDZ2Mi45MDloMi45MDlsMC4yOTEtMC4yOTQgMS4zNzUtMi42MTYgMC40MzEtMC4yOTFoNC45di0zLjk5NGgtMi42OTRsLTAuMjQxLTAuMjk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbTUwMFB4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOTUzIDEwLjUxMmMwLjAwMyAwLjAwOSAwLjA4OCAwLjIzOCAwLjEzNCAwLjM1MyAwLjI2MyAwLjYyMiAwLjY0MSAxLjE4NCAxLjEyMiAxLjY2NnMxLjA0MSAwLjg1OSAxLjY2NiAxLjEyMmMwLjY0NyAwLjI3MiAxLjMzMSAwLjQxMiAyLjAzNyAwLjQxMnMxLjM5NC0wLjEzNyAyLjAzNy0wLjQxMmMwLjYyNS0wLjI2MiAxLjE4NC0wLjY0MSAxLjY2Ni0xLjEyMnMwLjg1OS0xLjA0MSAxLjEyMi0xLjY2NmMwLjI3Mi0wLjY0NyAwLjQxMi0xLjMzMSAwLjQxMi0yLjAzN3MtMC4xMzctMS4zOTQtMC40MTItMi4wMzdjLTAuMjYyLTAuNjI1LTAuNjQxLTEuMTg0LTEuMTIyLTEuNjY2cy0xLjA0MS0wLjg1OS0xLjY2Ni0xLjEyMmMtMC42NDctMC4yNzItMS4zMzEtMC40MTMtMi4wMzctMC40MTMtMC43MTYgMC0xLjQzMSAwLjE0NC0yLjA2NiAwLjQxMy0wLjUwOSAwLjIxNi0xLjM3MiAwLjc2OS0xLjg3NSAxLjI5MWwtMC4wMDMgMC4wMDN2LTQuMzEzaDcuMjQxYzAuMjYyLTAuMDAzIDAuMjYyLTAuMzcyIDAuMjYyLTAuNDkxIDAtMC4xMjIgMC0wLjQ4Ny0wLjI2Ni0wLjQ5MWgtNy44MjhjLTAuMjEzIDAtMC4zNDQgMC4xNzgtMC4zNDQgMC4zNDF2Ni4wNjZjMCAwLjE5NyAwLjI0NCAwLjMzOCAwLjQ3MiAwLjM4NCAwLjQ0NCAwLjA5NCAwLjU0NC0wLjA0NyAwLjY1My0wLjE5N2wwLjAxNi0wLjAxOWMwLjE2Ni0wLjI0NyAwLjY4MS0wLjc2NiAwLjY4OC0wLjc3MiAwLjgwNi0wLjgwNiAxLjg4NC0xLjI1IDMuMDM3LTEuMjUgMS4xNDcgMCAyLjIyMiAwLjQ0NCAzLjAyOCAxLjI1IDAuODA5IDAuODA5IDEuMjU2IDEuODgxIDEuMjU2IDMuMDE5IDAgMS4xNDEtMC40NDQgMi4yMTYtMS4yNSAzLjAxOS0wLjc5NCAwLjc5NC0xLjkwNiAxLjI1LTMuMDQ3IDEuMjUtMC43NzIgMC0xLjUxOS0wLjIwNi0yLjE1OS0wLjU5N2wwLjAwMy0zLjY4OGMwLTAuNDkxIDAuMjEzLTEuMDI4IDAuNTcyLTEuNDMxIDAuNDA5LTAuNDYzIDAuOTcyLTAuNzE2IDEuNTg4LTAuNzE2IDAuNTk0IDAgMS4xNSAwLjIyNSAxLjU2NiAwLjYzNCAwLjQwOSAwLjQwNiAwLjYzNyAwLjk1IDAuNjM3IDEuNTI4IDAgMS4yMzEtMC45NjkgMi4xOTctMi4yMDYgMi4xOTctMC4yMzggMC0wLjY3Mi0wLjEwNi0wLjY5MS0wLjEwOS0wLjI1LTAuMDc1LTAuMzU2IDAuMjcyLTAuMzkxIDAuMzg3LTAuMTM0IDAuNDQxIDAuMDY5IDAuNTI4IDAuMTA5IDAuNTQxIDAuMzk3IDAuMTI1IDAuNjU5IDAuMTQ3IDEuMDAzIDAuMTQ3IDEuNzQ3IDAgMy4xNjktMS40MjIgMy4xNjktMy4xNjkgMC0xLjczNC0xLjQyMi0zLjE0NC0zLjE2Ni0zLjE0NC0wLjg1NiAwLTEuNjU5IDAuMzI4LTIuMjYzIDAuOTE5LTAuNTc1IDAuNTY2LTAuOTAzIDEuMzE5LTAuOTAzIDIuMDY5djAuMDE5Yy0wLjAwMyAwLjA5NC0wLjAwMyAyLjMwNi0wLjAwNiAzLjAzMWwtMC4wMDMtMC4wMDNjLTAuMzI4LTAuMzYzLTAuNjUzLTAuOTE5LTAuODY5LTEuNDg4LTAuMDg0LTAuMjIyLTAuMjc1LTAuMTg0LTAuNTM0LTAuMTAzLTAuMTI1IDAuMDM0LTAuNDY5IDAuMTQxLTAuMzkxIDAuMzk0djB6TTcuNjc1IDkuNjQ3YzAgMC4xMDYgMC4wOTcgMC4yIDAuMTU2IDAuMjUzbDAuMDE5IDAuMDE5YzAuMSAwLjA5NyAwLjE5NCAwLjE0NyAwLjI4MSAwLjE0NyAwLjA3MiAwIDAuMTE2LTAuMDM0IDAuMTMxLTAuMDUwIDAuMDQ0LTAuMDQxIDAuNTM3LTAuNTQ0IDAuNTg4LTAuNTkxbDAuNTUzIDAuNTVjMC4wNTAgMC4wNTYgMC4xMDYgMC4wODggMC4xNzIgMC4wODggMC4wODggMCAwLjE4NC0wLjA1MyAwLjI4NC0wLjE1NiAwLjIzOC0wLjI0NCAwLjExOS0wLjM3NSAwLjA2My0wLjQzOGwtMC41NTktMC41NTkgMC41ODQtMC41ODhjMC4xMjgtMC4xMzcgMC4wMTYtMC4yODQtMC4wOTctMC4zOTctMC4xNjItMC4xNjItMC4zMjItMC4yMDYtMC40MjItMC4xMTJsLTAuNTgxIDAuNTgxLTAuNTg4LTAuNTg4Yy0wLjAzMS0wLjAzMS0wLjA3Mi0wLjA0Ny0wLjExMy0wLjA0Ny0wLjA3OCAwLTAuMTcyIDAuMDUzLTAuMjc1IDAuMTU2LTAuMTgxIDAuMTgxLTAuMjE5IDAuMzA2LTAuMTI1IDAuNDA2bDAuNTg4IDAuNTg0LTAuNTg0IDAuNTg0Yy0wLjA1MyAwLjA1MC0wLjA3OCAwLjEwMy0wLjA3NSAwLjE1NnpNOC45NTMgMS43MTZjLTAuOTM4IDAtMS45MzggMC4xOTEtMi42NjkgMC41MDYtMC4wNzggMC4wMzEtMC4xMjUgMC4wOTQtMC4xMzQgMC4xODEtMC4wMDkgMC4wODQgMC4wMTMgMC4xOTQgMC4wNjkgMC4zMzcgMC4wNDcgMC4xMTYgMC4xNjYgMC40MjUgMC40IDAuMzM0IDAuNzUtMC4yODggMS41ODEtMC40NDQgMi4zMzQtMC40NDQgMC44NTYgMCAxLjY4OCAwLjE2OSAyLjQ2OSAwLjQ5NyAwLjYyMiAwLjI2MyAxLjIwNiAwLjY0NCAxLjg0NCAxLjE5NCAwLjA0NyAwLjA0MSAwLjA5NyAwLjA1OSAwLjE0NyAwLjA1OSAwLjEyNSAwIDAuMjQ0LTAuMTIyIDAuMzQ3LTAuMjM3IDAuMTY5LTAuMTkxIDAuMjg3LTAuMzUgMC4xMTktMC41MDktMC42MDktMC41NzUtMS4yNzUtMS4wMDYtMi4xLTEuMzU2LTAuODk0LTAuMzcyLTEuODQ3LTAuNTYzLTIuODI1LTAuNTYzek0xNC4wMDYgMTMuM3YwYy0wLjExMy0wLjExMy0wLjIwOS0wLjE3OC0wLjI5NC0wLjIwM3MtMC4xNjItMC4wMDYtMC4yMjIgMC4wNTNsLTAuMDU2IDAuMDU2Yy0wLjU4MSAwLjU4MS0xLjI1OSAxLjAzNy0yLjAxMiAxLjM1Ni0wLjc4MSAwLjMzMS0xLjYwOSAwLjQ5Ny0yLjQ2MyAwLjQ5Ny0wLjg1NiAwLTEuNjg0LTAuMTY5LTIuNDYzLTAuNDk3LTAuNzUzLTAuMzE5LTEuNDMxLTAuNzc1LTIuMDEzLTEuMzU2LTAuNjA2LTAuNjA2LTEuMDYzLTEuMjg0LTEuMzU2LTIuMDEyLTAuMjg4LTAuNzEzLTAuMzgxLTEuMjQ3LTAuNDEzLTEuNDIyLTAuMDAzLTAuMDE2LTAuMDA2LTAuMDI4LTAuMDA2LTAuMDM3LTAuMDQxLTAuMjA2LTAuMjMxLTAuMjIyLTAuNTAzLTAuMTc4LTAuMTEyIDAuMDE5LTAuNDU5IDAuMDcyLTAuNDI4IDAuMzE5djAuMDA2YzAuMDkxIDAuNTc4IDAuMjUzIDEuMTQ0IDAuNDgxIDEuNjgxIDAuMzY2IDAuODY2IDAuODkxIDEuNjQ0IDEuNTU5IDIuMzEzczEuNDQ3IDEuMTkxIDIuMzEzIDEuNTU5YzAuODk3IDAuMzc4IDEuODUgMC41NzIgMi44MzEgMC41NzJzMS45MzQtMC4xOTQgMi44MzEtMC41NzJjMC44NjYtMC4zNjYgMS42NDQtMC44OTEgMi4zMTMtMS41NTkgMCAwIDAuMDM3LTAuMDM3IDAuMDU5LTAuMDU5IDAuMDY5LTAuMDg0IDAuMTM0LTAuMjI1LTAuMTU5LTAuNTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVN0ZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDQuNWMwLTAuODI4IDAuNjcyLTEuNSAxLjUtMS41czEuNSAwLjY3MiAxLjUgMS41YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjVzLTEuNS0wLjY3Mi0xLjUtMS41ek0xNC45NzUgMi4wMjVjLTEuMzY3LTEuMzY3LTMuNTgzLTEuMzY3LTQuOTUgMC0wLjU1NiAwLjU1Ni0wLjg4NiAxLjI1Mi0wLjk4OSAxLjk3NXYwbC0zLjE5OCA0Ljg0N2MtMC40MyAwLjAyMi0wLjg1NiAwLjEzMi0xLjI0OSAwLjMyOGwtMi40NjctMS45MjhjLTAuNTcxLTAuNDQ2LTEuMzk2LTAuMzQ1LTEuODQyIDAuMjI2cy0wLjM0NSAxLjM5NiAwLjIyNiAxLjg0MmwyLjQzNiAxLjkwNWMtMC4yNjUgMS4wNDMgMC4wMTAgMi4xOTYgMC44MjcgMy4wMTIgMS4yMzMgMS4yMzMgMy4yMzIgMS4yMzMgNC40NjUgMCAwLjc1Ny0wLjc1NyAxLjA0OS0xLjgwNCAwLjg3Ni0yLjc4NGwzLjg5MS0zLjQ4NGMwLjcyMy0wLjEwNCAxLjQxOS0wLjQzNCAxLjk3NS0wLjk4OSAxLjM2Ny0xLjM2NyAxLjM2Ny0zLjU4MyAwLTQuOTV6TTYgMTQuMTA1Yy0xLjE2MiAwLTIuMTA1LTAuOTQyLTIuMTA1LTIuMTA1IDAtMC4wMTEgMC4wMDEtMC4wMjIgMC4wMDEtMC4wMzNsMS4wNDYgMC44MTdjMC4yNCAwLjE4OCAwLjUyNSAwLjI3OCAwLjgwNyAwLjI3OCAwLjM5IDAgMC43NzYtMC4xNzMgMS4wMzUtMC41MDQgMC40NDYtMC41NzEgMC4zNDUtMS4zOTYtMC4yMjYtMS44NDJsLTAuOTkyLTAuNzc2YzAuMTQtMC4wMjkgMC4yODUtMC4wNDUgMC40MzQtMC4wNDUgMS4xNjIgMCAyLjEwNSAwLjk0MiAyLjEwNSAyLjEwNXMtMC45NDIgMi4xMDUtMi4xMDUgMi4xMDV6TTEyLjUgN2MtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdGVhbTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC43NDkgMTMuMDYzYzAuNDI0IDAgMC44NC0wLjIwNSAxLjA5My0wLjU4NSAwLjQwMi0wLjYwMyAwLjIzOS0xLjQxOC0wLjM2NC0xLjgybC0xLjAzMi0wLjY4OGMwLjE3Ny0wLjA0OCAwLjM2Mi0wLjA3NCAwLjU1NC0wLjA3NCAxLjE2MiAwIDIuMTA1IDAuOTQyIDIuMTA1IDIuMTA1cy0wLjk0MiAyLjEwNS0yLjEwNSAyLjEwNWMtMS4xMzEgMC0yLjA1NC0wLjg5My0yLjEwMi0yLjAxMmwxLjEyNCAwLjc0OWMwLjIyNCAwLjE0OSAwLjQ3NyAwLjIyMSAwLjcyNyAwLjIyMXpNMTMuMzMzIDBjMS40NjcgMCAyLjY2NyAxLjIgMi42NjcgMi42Njd2MTAuNjY2YzAgMS40NjgtMS4yIDIuNjY3LTIuNjY3IDIuNjY3aC0xMC42NjZjLTEuNDY3IDAtMi42NjctMS4xOTktMi42NjctMi42Njd2LTMuMTcybDEuODk2IDEuMjY0Yy0wLjE4MiAwLjk4NyAwLjEwOCAyLjA0NCAwLjg3MiAyLjgwOCAxLjIzMyAxLjIzMyAzLjIzMiAxLjIzMyA0LjQ2NSAwIDAuNzU3LTAuNzU3IDEuMDQ5LTEuODA0IDAuODc2LTIuNzg0bDMuODkyLTMuNDg0YzAuNzIzLTAuMTA0IDEuNDE5LTAuNDMzIDEuOTc1LTAuOTg5IDEuMzY3LTEuMzY3IDEuMzY3LTMuNTgzIDAtNC45NXMtMy41ODMtMS4zNjctNC45NSAwYy0wLjU1NiAwLjU1Ni0wLjg4NiAxLjI1Mi0wLjk4OSAxLjk3NXYwbC0zLjE5OCA0Ljg0N2MtMC40OTggMC4wMjUtMC45OSAwLjE2OC0xLjQzMyAwLjQyOGwtMy40MDQtMi4yNjl2LTQuMzM5YzAtMS40NjcgMS4yLTIuNjY3IDIuNjY3LTIuNjY3aDEwLjY2NnpNMTQgNC41YzAtMS4zODEtMS4xMTktMi41LTIuNS0yLjVzLTIuNSAxLjExOS0yLjUgMi41IDEuMTE5IDIuNSAyLjUgMi41IDIuNS0xLjExOSAyLjUtMi41ek0xMCA0LjVjMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNS0wLjY3MiAxLjUtMS41IDEuNS0xLjUtMC42NzItMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Ecm9wYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgMC41bC0zLjUgMyA0LjUgMyAzLjUtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDMuNWwtMy41LTMtNC41IDMgMy41IDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA2LjVsMy41IDMtNC41IDIuNS0zLjUtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDlsLTQuNS0yLjUtMy41IDMgNC41IDIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4zNzcgMTMuMjEybC0zLjM3Ny0yLjg5NS0zLjM3NyAyLjg5NS0yLjEyMy0xLjE3OXYxLjQ2N2w1LjUgMi41IDUuNS0yLjV2LTEuNDY3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU9uZWRyaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNDgyIDEyLjk0NGMtMC45NDItMC4yMzUtMS40NjYtMC45ODQtMS40NjgtMi4wOTUtMC0wLjM1NSAwLjAyNS0wLjUyNSAwLjExNC0wLjc1NCAwLjIxNy0wLjU2IDAuNzkzLTAuOTgyIDEuNTUtMS4xMzggMC4zNzctMC4wNzcgMC40OTMtMC4xNiAwLjQ5My0wLjM1MyAwLTAuMDYwIDAuMDQ1LTAuMjQgMC4xLTAuMzk5IDAuMjQ5LTAuNzI0IDAuNzEtMS4zMjcgMS4yMDItMS41NzMgMC41MTUtMC4yNTggMC43NzYtMC4zMTYgMS4zOTktMC4zMTMgMC44ODYgMC4wMDUgMS4zMjcgMC4xOTcgMS45NDUgMC44NDZsMC4zNCAwLjM1NyAwLjMwNC0wLjEwNWMxLjQ3My0wLjUxIDIuOTQyIDAuMzU4IDMuMDYxIDEuODA5bDAuMDMyIDAuMzk3IDAuMjkgMC4xMDRjMC44MjkgMC4yOTcgMS4yMTggMC45MiAxLjE0OCAxLjgzNy0wLjA0NiAwLjU5OS0wLjMyNiAxLjA3OC0wLjc3IDEuMzE1bC0wLjIwOSAwLjExMi00LjYzOCAwLjAwOWMtMy41NjQgMC4wMDctNC42OTctMC4wMDYtNC44OTMtMC4wNTV2MHpNMS42MTMgMTIuMjgxYy0wLjU2NS0wLjE0Mi0xLjE2NC0wLjY3LTEuNDQ1LTEuMjczLTAuMTU5LTAuMzQyLTAuMTY4LTAuMzkzLTAuMTY4LTAuOTk4IDAtMC41NzYgMC4wMTQtMC42NjggMC4xNC0wLjk1NCAwLjI2Ny0wLjYwMyAwLjc4LTEuMDM4IDEuNDIyLTEuMjEgMC4xMzYtMC4wMzYgMC4yNjMtMC4wOTQgMC4yODMtMC4xMjhzMC4wNDMtMC4yMjEgMC4wNTAtMC40MTVjMC4wNDUtMS4yMDYgMC43OTQtMi4yNjkgMS44MzktMi42MSAwLjU2NS0wLjE4NCAxLjMwNi0wLjIwMiAxLjkyIDAuMDU4IDAuMTk1IDAuMDgyIDAuMTczIDAuMSAwLjU4NS0wLjQ3MSAwLjI0NC0wLjMzOCAwLjcwNS0wLjY5NSAxLjEwOC0wLjkwOSAwLjQzNS0wLjIzMSAwLjg4Ny0wLjMzNyAxLjQyOC0wLjMzNiAxLjUxMiAwLjAwNCAyLjgxNSAxLjAwMyAzLjI5NyAyLjUyOSAwLjE1NCAwLjQ4NyAwLjE0NiAwLjYyNC0wLjAzNSAwLjYyOC0wLjA3OSAwLjAwMi0wLjMwNiAwLjA0OC0wLjUwNSAwLjEwMmwtMC4zNjEgMC4wOTktMC4zMjktMC4zNDhjLTAuOTI4LTAuOTgtMi40NDEtMS4xOTItMy43MjgtMC41MjItMC41MTQgMC4yNjgtMC45MjcgMC42NTItMS4yMzkgMS4xNTMtMC4yMjIgMC4zNTctMC41MDYgMS4wMjQtMC41MDYgMS4xODkgMCAwLjExNy0wLjA5MCAwLjE3Ni0wLjQ3NCAwLjMwOS0xLjE4OSAwLjQxMi0xLjg4MyAxLjM2NC0xLjg4MiAyLjU4MiAwIDAuNDQzIDAuMTA4IDAuOTg2IDAuMjU4IDEuMjk2IDAuMDU3IDAuMTE3IDAuMDg4IDAuMjI4IDAuMDcwIDAuMjQ3LTAuMDQ2IDAuMDQ5LTEuNTI1IDAuMDMyLTEuNzMtMC4wMTl2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1HaXRodWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwLjE5OGMtNC40MTggMC04IDMuNTgyLTggOCAwIDMuNTM1IDIuMjkyIDYuNTMzIDUuNDcxIDcuNTkxIDAuNCAwLjA3NCAwLjU0Ny0wLjE3NCAwLjU0Ny0wLjM4NSAwLTAuMTkxLTAuMDA4LTAuODIxLTAuMDExLTEuNDg5LTIuMjI2IDAuNDg0LTIuNjk1LTAuOTQ0LTIuNjk1LTAuOTQ0LTAuMzY0LTAuOTI1LTAuODg4LTEuMTcxLTAuODg4LTEuMTcxLTAuNzI2LTAuNDk3IDAuMDU1LTAuNDg2IDAuMDU1LTAuNDg2IDAuODAzIDAuMDU2IDEuMjI2IDAuODI0IDEuMjI2IDAuODI0IDAuNzE0IDEuMjIzIDEuODcyIDAuODY5IDIuMzI4IDAuNjY1IDAuMDcyLTAuNTE3IDAuMjc5LTAuODcgMC41MDgtMS4wNzAtMS43NzctMC4yMDItMy42NDUtMC44ODgtMy42NDUtMy45NTQgMC0wLjg3MyAwLjMxMy0xLjU4NyAwLjgyNC0yLjE0Ny0wLjA4My0wLjIwMi0wLjM1Ny0xLjAxNSAwLjA3Ny0yLjExNyAwIDAgMC42NzItMC4yMTUgMi4yMDEgMC44MiAwLjYzOC0wLjE3NyAxLjMyMi0wLjI2NiAyLjAwMi0wLjI2OSAwLjY4IDAuMDAzIDEuMzY1IDAuMDkyIDIuMDA0IDAuMjY5IDEuNTI3LTEuMDM1IDIuMTk4LTAuODIgMi4xOTgtMC44MiAwLjQzNSAxLjEwMiAwLjE2MiAxLjkxNiAwLjA3OSAyLjExNyAwLjUxMyAwLjU2IDAuODIzIDEuMjc0IDAuODIzIDIuMTQ3IDAgMy4wNzMtMS44NzIgMy43NDktMy42NTMgMy45NDcgMC4yODcgMC4yNDggMC41NDMgMC43MzUgMC41NDMgMS40ODEgMCAxLjA3MC0wLjAwOSAxLjkzMi0wLjAwOSAyLjE5NSAwIDAuMjEzIDAuMTQ0IDAuNDYyIDAuNTUgMC4zODQgMy4xNzctMS4wNTkgNS40NjYtNC4wNTcgNS40NjYtNy41OSAwLTQuNDE4LTMuNTgyLTgtOC04elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbU5wbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDB2MTZoMTZ2LTE2aC0xNnpNMTMgMTNoLTJ2LThoLTN2OGgtNXYtMTBoMTB2MTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmFzZWNhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxLjY2NmMtMi45MTkgMC01LjE2OSAyLjQ0NC02LjQ0NCA0LjgzOC0wLjcxOSAxLjM0Ny0xLjIyMiAyLjgyMi0xLjQ1MyA0LjMzMS0wLjAyNSAwLjE3Mi0wLjA1MCAwLjM0NC0wLjA2OSAwLjUxOS0wLjAwOSAwLjA5NC0wLjAxOSAwLjE4OC0wLjAyNSAwLjI4MS0wLjAwOSAwLjExOS0wLjAwMyAwLjE1NiAwLjA1OSAwLjI1NiAwLjE4NyAwLjMwMyAwLjQwOSAwLjU4NCAwLjY1OSAwLjgzOCAwLjUxMiAwLjUyNSAxLjEzNCAwLjkyOCAxLjc5NCAxLjI0MSAxLjUwMyAwLjcwOSAzLjIgMC45NjYgNC44NSAxLjAyMiAxLjcwMyAwLjA1NiAzLjQ1My0wLjA4NCA1LjA4MS0wLjYxNiAxLjM5MS0wLjQ1MyAyLjczMS0xLjI0NCAzLjUwMy0yLjUyMiAwLjA4NC0wLjEzNyAwLjAyNS0wLjM0MSAwLjAwOS0wLjUtMC4wMTktMC4xOTEtMC4wNDQtMC4zNzgtMC4wNzUtMC41NjYtMC4wNTYtMC4zNjktMC4xMzEtMC43MzEtMC4yMjItMS4wOTQtMC4xODEtMC43MzgtMC40MjgtMS40NjMtMC43MjgtMi4xNTktMS4wODgtMi41MjUtMy4xLTUuMjE5LTUuOTYzLTUuNzc1LTAuMzIyLTAuMDYzLTAuNjUtMC4wOTQtMC45NzgtMC4wOTR6TTguMSAxMy45MDljLTEuNzg0IDAtMy43MjgtMC4xNTktNS4zMzQtMS4wMTktMC42MjUtMC4zMzQtMS4yNjItMC44MTktMS41NjMtMS40ODQtMC4wODctMC4xOTQtMC4wNTYtMC4yNjktMC4wMTYtMC40OTcgMC4wMjgtMC4xNDcgMC4wNDEtMC4yOTEgMC4xMDYtMC40MjggMC4wOTEtMC4xOTEgMC4xODQtMC4zNzggMC4yODEtMC41NjYgMC4zMjgtMC42MzQgMC42ODEtMS4yNjIgMS4wOTEtMS44NTMgMC4yMDMtMC4yOTEgMC40MTktMC41NzggMC42NjktMC44MjggMC4xNzUtMC4xNzUgMC4zODgtMC4zNjIgMC42MzQtMC40MjIgMC43NTYtMC4xODEgMS4zMzQgMC42OTQgMS43OTQgMS4xMzQgMC4yMjIgMC4yMTMgMC41MTkgMC40NTMgMC44NSAwLjQxMiAwLjIyOC0wLjAyOCAwLjQzMS0wLjIwNiAwLjU5NC0wLjM1MyAwLjU1My0wLjQ5NyAwLjk5Ny0xLjExMiAxLjQ1Ni0xLjY5MSAwLjIyOC0wLjI4NCAwLjQ1My0wLjU3MiAwLjctMC44NDQgMC4xNjYtMC4xODQgMC4zNDctMC4zOTQgMC41NjktMC41MTMgMC4zOTctMC4yMTYgMC45MDMgMC4yMjggMS4xNzggMC40NTYgMC40NjkgMC4zOTEgMC44ODQgMC44NDcgMS4yODEgMS4zMDkgMC4zNzggMC40NDEgMC43NDQgMC44ODggMS4wNjYgMS4zNzIgMC40OTcgMC43NSAwLjkyOCAxLjU1IDEuMzIyIDIuMzU5IDAuMDg0IDAuMTc1IDAuMTEzIDAuMjk0IDAuMTQ0IDAuNDg4IDAuMDE5IDAuMTA2IDAuMDU5IDAuMjI4IDAuMDQ0IDAuMzM4LTAuMDIyIDAuMTUzLTAuMTI4IDAuMzE5LTAuMjA2IDAuNDQ0LTAuMTg4IDAuMjk3LTAuNDQxIDAuNTUzLTAuNzE5IDAuNzY5LTEuMTY2IDAuOTAzLTIuNzQ0IDEuMjAzLTQuMTc4IDEuMzM4LTAuNTg4IDAuMDU2LTEuMTc1IDAuMDc4LTEuNzYyIDAuMDc4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVRyZWxsbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNyAxMmMwIDAuNTUtMC40NSAxLTEgMWgtMmMtMC41NSAwLTEtMC40NS0xLTF2LThjMC0wLjU1IDAuNDUtMSAxLTFoMmMwLjU1IDAgMSAwLjQ1IDEgMXY4ek0xMyA5YzAgMC41NS0wLjQ1IDEtMSAxaC0yYy0wLjU1IDAtMS0wLjQ1LTEtMXYtNWMwLTAuNTUgMC40NS0xIDEtMWgyYzAuNTUgMCAxIDAuNDUgMSAxdjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV29yZHByZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgOGMwIDIuMzEzIDEuMzggNC4zMTIgMy4zODIgNS4yNTlsLTIuODYyLTcuNjM3Yy0wLjMzMyAwLjcyNy0wLjUyIDEuNTMxLTAuNTIgMi4zNzh6TTEyLjA1MCA3LjcwNWMwLTAuNzIyLTAuMjY2LTEuMjIyLTAuNDk1LTEuNjEyLTAuMzA0LTAuNDgyLTAuNTg5LTAuODg5LTAuNTg5LTEuMzcxIDAtMC41MzcgMC40MTgtMS4wMzcgMS4wMDgtMS4wMzcgMC4wMjcgMCAwLjA1MiAwLjAwMyAwLjA3OCAwLjAwNS0xLjA2Ny0wLjk1My0yLjQ5LTEuNTM0LTQuMDUyLTEuNTM0LTIuMDk2IDAtMy45NCAxLjA0OC01LjAxMyAyLjYzNCAwLjE0MSAwLjAwNCAwLjI3NCAwLjAwNyAwLjM4NiAwLjAwNyAwLjYyNyAwIDEuNTk5LTAuMDc0IDEuNTk5LTAuMDc0IDAuMzIzLTAuMDE4IDAuMzYxIDAuNDQ0IDAuMDM4IDAuNDgyIDAgMC0wLjMyNSAwLjAzNy0wLjY4NyAwLjA1NWwyLjE4NSA2LjMzIDEuMzEzLTMuODM1LTAuOTM1LTIuNDk1Yy0wLjMyMy0wLjAxOS0wLjYyOS0wLjA1NS0wLjYyOS0wLjA1NS0wLjMyMy0wLjAxOS0wLjI4NS0wLjUgMC4wMzgtMC40ODIgMCAwIDAuOTkxIDAuMDc0IDEuNTggMC4wNzQgMC42MjcgMCAxLjU5OS0wLjA3NCAxLjU5OS0wLjA3NCAwLjMyMy0wLjAxOCAwLjM2MiAwLjQ0NCAwLjAzOCAwLjQ4MiAwIDAtMC4zMjYgMC4wMzctMC42ODcgMC4wNTVsMi4xNjggNi4yODIgMC41OTktMS45NDdjMC4yNTktMC44MDkgMC40NTctMS4zODkgMC40NTctMS44ODl6TTguMTA1IDguNTExbC0xLjggNS4wOTVjMC41MzggMC4xNTQgMS4xMDYgMC4yMzggMS42OTUgMC4yMzggMC42OTkgMCAxLjM2OS0wLjExNyAxLjk5Mi0wLjMzMS0wLjAxNi0wLjAyNS0wLjAzMS0wLjA1Mi0wLjA0My0wLjA4MWwtMS44NDQtNC45MjF6TTEzLjI2NSA1LjE5NmMwLjAyNiAwLjE4NiAwLjA0MCAwLjM4NiAwLjA0MCAwLjYwMSAwIDAuNTkzLTAuMTE0IDEuMjU5LTAuNDU2IDIuMDkzbC0xLjgzMyA1LjE2YzEuNzg0LTEuMDEzIDIuOTgzLTIuODk1IDIuOTgzLTUuMDUxIDAtMS4wMTYtMC4yNjctMS45NzEtMC43MzUtMi44MDN6TTggMGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOCA4LTMuNTgyIDgtOC0zLjU4Mi04LTgtOHpNOCAxNWMtMy44NjYgMC03LTMuMTM0LTctN3MzLjEzNC03IDctNyA3IDMuMTM0IDcgNy0zLjEzNCA3LTcgN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Kb29tbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNTYgNC4zMjNjMC41MTMtMC41MTMgMS4zNDQtMC41MTMgMS44NTYtMGwwLjEyMiAwLjEyMyAxLjU4LTEuNTgxLTAuMTIzLTAuMTIzYy0wLjktMC45MDItMi4xNjQtMS4yMTctMy4zMTktMC45NDYtMC4xNjYtMS4wMTgtMS4wNDgtMS43OTYtMi4xMTItMS43OTYtMS4xODIgMC0yLjE0IDAuOTYtMi4xNCAyLjE0MyAwIDEuMDIxIDAuNzEyIDEuODc1IDEuNjY3IDIuMDkxLTAuMzYyIDEuMjEtMC4wNjYgMi41NzYgMC44ODggMy41MzFsMy41NiAzLjU2MSAxLjU3OC0xLjU4MS0zLjU2LTMuNTYxYy0wLjUxMS0wLjUxMS0wLjUxMi0xLjM0NiAwLjAwMy0xLjg2MXpNMTUuOTggMi4xNDNjMC0xLjE4NC0wLjk1OC0yLjE0My0yLjE0LTIuMTQzLTEuMDgyIDAtMS45NzYgMC44MDQtMi4xMiAxLjg0Ny0xLjIwNC0wLjM1NC0yLjU1OS0wLjA1NS0zLjUxIDAuODk3bC0zLjU2IDMuNTYxIDEuNTggMS41ODEgMy41NTktMy41NmMwLjUxNS0wLjUxNSAxLjM0NC0wLjUxNCAxLjg1NC0wLjAwMyAwLjUxMiAwLjUxMyAwLjUxMiAxLjM0Ni0wLjAwMSAxLjg1OWwtMC4xMjIgMC4xMjIgMS41NzggMS41ODIgMC4xMjMtMC4xMjRjMC45NDUtMC45NDYgMS4yNDUtMi4yOTMgMC45LTMuNDk0IDEuMDQ5LTAuMTM4IDEuODU4LTEuMDM3IDEuODU4LTIuMTI1ek0xNC4xNiAxMS43MzVjMC4yODMtMS4xNjMtMC4wMzEtMi40NDMtMC45MzktMy4zNTJsLTMuNTU1LTMuNTYyLTEuNTggMS41OCAzLjU1NSAzLjU2M2MwLjUxNSAwLjUxNiAwLjUxNCAxLjM0NSAwLjAwMyAxLjg1Ny0wLjUxMyAwLjUxMy0xLjM0NCAwLjUxMy0xLjg1Ny0wbC0wLjEyMS0wLjEyMi0xLjU3OCAxLjU4MiAwLjEyMSAwLjEyMWMwLjk2MSAwLjk2MiAyLjMzOCAxLjI1NyAzLjU1MyAwLjg4MyAwLjE5NyAwLjk3OSAxLjA2MSAxLjcxNiAyLjA5OCAxLjcxNiAxLjE4MSAwIDIuMTQtMC45NTkgMi4xNC0yLjE0MyAwLTEuMDgxLTAuOC0xLjk3Ni0xLjg0LTIuMTIyek05LjU2OCA4LjI2MWwtMy41NTUgMy41NjJjLTAuNTExIDAuNTEyLTEuMzQ0IDAuNTEzLTEuODU5LTAuMDAyLTAuNTEzLTAuNTE0LTAuNTEzLTEuMzQ1LTAuMDAxLTEuODU5bDAuMTIyLTAuMTIxLTEuNTc5LTEuNTgtMC4xMjEgMC4xMmMtMC45MTggMC45MTktMS4yMjggMi4yMTYtMC45MjkgMy4zOS0wLjk0NCAwLjIyMy0xLjY0NiAxLjA3Mi0xLjY0NiAyLjA4Ni0wIDEuMTg0IDAuOTU4IDIuMTQzIDIuMTQgMi4xNDMgMS4wMTctMC4wMDEgMS44NjktMC43MSAyLjA4Ny0xLjY2MiAxLjE2NyAwLjI5IDIuNDUzLTAuMDIwIDMuMzY1LTAuOTM0bDMuNTU1LTMuNTYyLTEuNTc4LTEuNTgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUVsbG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4IDgtMy41ODIgOC04LTMuNTgyLTgtOC04ek0xMi44ODUgOS4yMTJjLTAuNTc1IDIuMjMtMi41ODQgMy43ODgtNC44ODUgMy43ODhzLTQuMzEtMS41NTgtNC44ODUtMy43ODhjLTAuMDk3LTAuMzc3IDAuMTMxLTAuNzY0IDAuNTA4LTAuODYxIDAuMDU4LTAuMDE1IDAuMTE4LTAuMDIzIDAuMTc3LTAuMDIzIDAuMzIyIDAgMC42MDQgMC4yMTggMC42ODQgMC41MzEgMC40MTQgMS42MDUgMS44NiAyLjcyNyAzLjUxNiAyLjcyN3MzLjEwMi0xLjEyMSAzLjUxNi0yLjcyN2MwLjA4MS0wLjMxMyAwLjM2Mi0wLjUzMSAwLjY4NC0wLjUzMSAwLjA2MCAwIDAuMTIgMC4wMDggMC4xNzggMC4wMjMgMC4xODMgMC4wNDcgMC4zMzYgMC4xNjMgMC40MzIgMC4zMjZzMC4xMjMgMC4zNTMgMC4wNzUgMC41MzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmxvZ2dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC45NjYgNmgtMC44OTdjLTAuNTQ5IDAtMS4wMzEtMC40NjUtMS4wNjktMXYwYzAtMi44NTQtMi4zMDEtNS01LjE3NS01aC0yLjYyMmMtMi44NzIgMC01LjIwMSAyLjMxMy01LjIwMyA1LjE2N3Y1LjY2OWMwIDIuODU0IDIuMzMxIDUuMTY1IDUuMjAzIDUuMTY1aDUuNmMyLjg3NCAwIDUuMTk3LTIuMzExIDUuMTk3LTUuMTY1di0zLjY2MmMwLTAuNTctMC40Ni0xLjE3My0xLjAzNC0xLjE3M3pNNSA0aDNjMC41NSAwIDEgMC40NSAxIDFzLTAuNDUgMS0xIDFoLTNjLTAuNTUgMC0xLTAuNDUtMS0xczAuNDUtMSAxLTF6TTExIDEyaC02Yy0wLjU1IDAtMS0wLjQ1LTEtMXMwLjQ1LTEgMS0xaDZjMC41NSAwIDEgMC40NSAxIDFzLTAuNDUgMS0xIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQmxvZ2dlcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTE0IDEwLjEyNWMwIDIuMTQxLTEuNzQxIDMuODc1LTMuODk3IDMuODc1aC00LjJjLTIuMTU2IDAtMy45MDMtMS43MzQtMy45MDMtMy44NzV2LTQuMjVjMC0yLjE0MSAxLjc0Ny0zLjg3NSAzLjkwMy0zLjg3NWgxLjk2NmMyLjE1NiAwIDMuODgxIDEuNjA5IDMuODgxIDMuNzUgMC4wMjggMC40IDAuMzkxIDAuNzUgMC44IDAuNzVoMC42NzJjMC40MzEgMCAwLjc3NSAwLjQ1MyAwLjc3NSAwLjg4MXYyLjc0NHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMGMwIDAuNTUtMC40NSAxLTEgMWgtNGMtMC41NSAwLTEtMC40NS0xLTF2MGMwLTAuNTUgMC40NS0xIDEtMWg0YzAuNTUgMCAxIDAuNDUgMSAxdjB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2YzAgMC41NS0wLjQ1IDEtMSAxaC0yYy0wLjU1IDAtMS0wLjQ1LTEtMXYwYzAtMC41NSAwLjQ1LTEgMS0xaDJjMC41NSAwIDEgMC40NSAxIDF2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1UdW1ibHIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wMDEgN2wtMCAzLjY1OWMwIDAuOTI4LTAuMDEyIDEuNDYzIDAuMDg2IDEuNzI3IDAuMDk4IDAuMjYyIDAuMzQyIDAuNTM0IDAuNjA5IDAuNjkxIDAuMzU0IDAuMjEyIDAuNzU4IDAuMzE4IDEuMjE0IDAuMzE4IDAuODEgMCAxLjI4OS0wLjEwNyAyLjA5MC0wLjYzM3YyLjQwNWMtMC42ODMgMC4zMjEtMS4yNzkgMC41MDktMS44MzMgMC42MzktMC41NTUgMC4xMjktMS4xNTQgMC4xOTQtMS43OTggMC4xOTQtMC43MzIgMC0xLjE2My0wLjA5Mi0xLjcyNS0wLjI3Ni0wLjU2Mi0wLjE4NS0xLjA0Mi0wLjQ1LTEuNDM4LTAuNzktMC4zOTgtMC4zNDMtMC42NzItMC43MDYtMC44MjYtMS4wOTFzLTAuMjMtMC45NDQtMC4yMy0xLjY3NnYtNS42MTFoLTIuMTQ3di0yLjI2NmMwLjYyOC0wLjIwNCAxLjMzMS0wLjQ5NyAxLjc3OC0wLjg3NyAwLjQ0OS0wLjM4MiAwLjgwOS0wLjgzOSAxLjA4MC0xLjM3NCAwLjI3Mi0wLjUzNCAwLjQ1OS0xLjIxNCAwLjU2MS0yLjAzOWgyLjU3OWwtMCA0aDMuOTk5djNoLTMuOTk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVR1bWJscjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTExLjQzNCAxMi44ODRjLTAuNDcyIDAuMjIyLTAuOSAwLjM3OC0xLjI4MSAwLjQ2OS0wLjM4MSAwLjA4OC0wLjc5NyAwLjEzNC0xLjI0MSAwLjEzNC0wLjUwNiAwLTAuODAzLTAuMDYzLTEuMTkxLTAuMTkxcy0wLjcxOS0wLjMwOS0wLjk5NC0wLjU0NGMtMC4yNzUtMC4yMzgtMC40NjMtMC40ODgtMC41NjktMC43NTNzLTAuMTU5LTAuNjUtMC4xNTktMS4xNTZ2LTMuODcyaC0xLjV2LTEuNTYzYzAuNDM0LTAuMTQxIDAuOTM4LTAuMzQ0IDEuMjQ0LTAuNjA2IDAuMzA5LTAuMjYzIDAuNTU5LTAuNTc4IDAuNzQ0LTAuOTQ3IDAuMTg4LTAuMzY5IDAuMzE2LTAuODM3IDAuMzg4LTEuNDA2aDEuNTY5djIuNTVoMi41NTZ2MS45NzJoLTIuNTUzdjIuODMxYzAgMC42NDEtMC4wMDkgMS4wMDkgMC4wNTkgMS4xOTFzMC4yMzggMC4zNjkgMC40MjIgMC40NzVjMC4yNDQgMC4xNDcgMC41MjUgMC4yMTkgMC44MzggMC4yMTkgMC41NTkgMCAxLjExNi0wLjE4MSAxLjY2OS0wLjU0NHYxLjc0MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1ZYWhvbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ljg3OCA5LjIwM3YwYzEuNzU5LTMuMDg4IDQuNjY2LTguMTI1IDUuNDYzLTkuMjAzLTAuMzUgMC4yMzQtMC44ODcgMC4zNTMtMS4zODEgMC40NjZsLTAuNzQ3LTAuNDY2Yy0wLjYgMS4xMTktMi44MTMgNC43MzQtNC4yMjIgNy4wNTAtMS40MjgtMi4zNjYtMy4xMTktNS4wOTctNC4yMjItNy4wNTAtMC44NzUgMC4xODgtMS4yMzcgMC4xOTctMi4xMDkgMHYwIDBjMCAwIDAgMCAwIDB2MGMxLjczMSAyLjYwNiA0LjUwMyA3LjU3MiA1LjQ0NyA5LjIwM3YwbC0wLjEyOCA2Ljc5NyAxLjAxMy0wLjQ2NnYtMC4wMTJsMS4wMTIgMC40NzgtMC4xMjUtNi43OTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltWWFob28yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMDE5IDEuMDg3Yy0yLjgyOCAwLTUuNS0wLjM3Mi04LjAxOS0xLjA4NyAwIDUuNjUzIDAgMTQuNTgxIDAgMTYgMi41MjItMC43MTYgNS4xOTQtMS4wODggOC4wMTktMS4wODggMi43OTQgMCA1LjQ1OSAwLjM2MyA3Ljk4MSAxLjA4OCAwLTUuNDQ0IDAtMTAuMTUzIDAtMTYtMi41MjIgMC43MjUtNS4xODQgMS4wODctNy45ODEgMS4wODd6TTEyLjQ1IDIuNDUzbC0wLjA5NyAwLjE1M2MtMC4wOTEgMC4xNDQtMC4xNzIgMC4yNjYtMC4yODQgMC40MzgtMC4xNSAwLjIyNS0wLjQzMSAwLjY3Mi0wLjc2OSAxLjI0Ny0wLjA5NCAwLjE1OS0wLjIwOSAwLjM1LTAuMzI4IDAuNTU2LTAuMjI4IDAuMzg0LTAuNDg0IDAuODE5LTAuNjg4IDEuMTYyLTAuMDg0IDAuMTQ3LTAuMTY5IDAuMjk3LTAuMjU2IDAuNDQ3LTAuMjI1IDAuMzkxLTAuNDU2IDAuNzk0LTAuNjc4IDEuMTgxLTAuMjI4IDAuNDAzLTAuNDUzIDAuOC0wLjY3OCAxLjE5NHYwLjM5N2MwIDAuNTUgMC4wMTIgMS4xNSAwLjAzMSAxLjY4NCAwLjAwOSAwLjI0NCAwLjAxOSAwLjY3OCAwLjAzMSAxLjEzNyAwLjAxMiAwLjU0NyAwLjAyNSAxLjExMyAwLjA0MSAxLjRsMC4wMDMgMC4wODh2MC4wMDlsLTAuMDk0LTAuMDI1Yy0wLjAzNy0wLjAwOS0wLjA3Mi0wLjAxOS0wLjEwOS0wLjAyOC0wLjExMy0wLjAyNS0wLjIzNC0wLjA0NC0wLjM1My0wLjA1Ni0wLjA3Mi0wLjAwNi0wLjE0Ny0wLjAwOS0wLjIyMi0wLjAwOSAwIDAgMCAwIDAgMHMwIDAgMCAwYy0wLjA3NSAwLTAuMTUgMC4wMDMtMC4yMjIgMC4wMDktMC4xMTkgMC4wMTItMC4yNDEgMC4wMzEtMC4zNTMgMC4wNTYtMC4wMzcgMC4wMDktMC4wNzUgMC4wMTktMC4xMDkgMC4wMjhsLTAuMDk0IDAuMDI1di0wLjAwOWwwLjAwMy0wLjA4OGMwLjAxMy0wLjI4NCAwLjAyOC0wLjg1MyAwLjA0MS0xLjQgMC4wMDktMC40NTkgMC4wMjItMC44OTQgMC4wMzEtMS4xMzcgMC4wMjItMC41MzcgMC4wMzEtMS4xMzQgMC4wMzEtMS42ODR2LTAuMzk3Yy0wLjIyNS0wLjM5Ny0wLjQ1LTAuNzkxLTAuNjc4LTEuMTk0LTAuMjIyLTAuMzkxLTAuNDUzLTAuNzkxLTAuNjc1LTEuMTgxLTAuMDg4LTAuMTUtMC4xNzItMC4zLTAuMjU2LTAuNDQ3LTAuMi0wLjM0Ny0wLjQ1OS0wLjc4MS0wLjY4OC0xLjE2Mi0wLjEyMi0wLjIwMy0wLjIzNy0wLjM5Ny0wLjMyOC0wLjU1Ni0wLjMzOC0wLjU3NS0wLjYxOS0xLjAxOS0wLjc2OS0xLjI0Ny0wLjExMi0wLjE3Mi0wLjE5NC0wLjI5NC0wLjI4NC0wLjQzOGwtMC4wOTctMC4xNTMgMC4xNzUgMC4wNTBjMC4yMjIgMC4wNjMgMC40NSAwLjA5NCAwLjY5NCAwLjA5NHMwLjQ3OC0wLjAzMSAwLjY5Ny0wLjA5NGwwLjA1My0wLjAxNiAwLjAyOCAwLjA0N2MwLjQzMSAwLjc3OCAxLjU5MSAyLjY4NCAyLjI4NCAzLjgyNSAwLjIzNyAwLjM5NCAwLjQyOCAwLjcwMyAwLjUyMiAwLjg2MiAwIDAgMCAwIDAtMC4wMDMgMCAwIDAgMCAwIDAuMDAzIDAuMDk0LTAuMTU2IDAuMjg0LTAuNDY5IDAuNTIyLTAuODYyIDAuNjk0LTEuMTM4IDEuODUzLTMuMDQ0IDIuMjg0LTMuODI1bDAuMDI4LTAuMDQ3IDAuMDUzIDAuMDE2YzAuMjE5IDAuMDYzIDAuNDUzIDAuMDk0IDAuNjk3IDAuMDk0czAuNDcyLTAuMDMxIDAuNjk0LTAuMDk0bDAuMTY2LTAuMDUwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVR1eCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ljg3IDExLjUxNGMtMS4yOCAwLjU5Ni0yLjQ3MSAwLjU4OS0zLjI3MSAwLjUzMi0wLjk1NC0wLjA2OS0xLjcyMS0wLjMzLTIuMDU4LTAuNTU4LTAuMjA4LTAuMTQxLTAuNDktMC4wODYtMC42MzEgMC4xMjJzLTAuMDg2IDAuNDkgMC4xMjIgMC42MzFjMC41NDIgMC4zNjcgMS41MDEgMC42NCAyLjUwMyAwLjcxMiAwLjE3IDAuMDEyIDAuMzU2IDAuMDIwIDAuNTU3IDAuMDIwIDAuODcyIDAgMS45NzktMC4wODMgMy4xNjMtMC42MzQgMC4yMjgtMC4xMDYgMC4zMjYtMC4zNzYgMC4yMi0wLjYwNHMtMC4zNzYtMC4zMjYtMC42MDQtMC4yMnpNMTMuOTIxIDEwLjg0MWMwLjA0NC0zLjk0OCAwLjQ0OS0xMS40MDktNy4xMDktMTAuODA2LTcuNDYzIDAuNjAxLTUuNDg0IDguNDg0LTUuNTk1IDExLjEyNC0wLjA5OSAxLjM5Ny0wLjU2MiAzLjEwNC0xLjIxNyA0Ljg0MWgyLjAxN2MwLjIwNy0wLjczNiAwLjM2LTEuNDY0IDAuNDI1LTIuMTU5IDAuMTIyIDAuMDg1IDAuMjUyIDAuMTY3IDAuMzkxIDAuMjQ1IDAuMjI2IDAuMTMzIDAuNDIgMC4zMSAwLjYyNiAwLjQ5NyAwLjQ4IDAuNDM4IDEuMDI1IDAuOTM0IDIuMDg5IDAuOTk2IDAuMDcxIDAuMDA0IDAuMTQzIDAuMDA2IDAuMjE0IDAuMDA2IDEuMDc3IDAgMS44MTMtMC40NzEgMi40MDQtMC44NSAwLjI4My0wLjE4MSAwLjUyOC0wLjMzOCAwLjc1OS0wLjQxMyAwLjY1NS0wLjIwNSAxLjIyNy0wLjUzNiAxLjY1NS0wLjk1NyAwLjA2Ny0wLjA2NiAwLjEyOS0wLjEzMyAwLjE4Ny0wLjIwMiAwLjIzOCAwLjg3MyAwLjU2NCAxLjg1NiAwLjkyNiAyLjgzNmg0LjMwN2MtMS4wMzQtMS41OTctMi4xMDEtMy4xNjItMi4wNzktNS4xNTl6TTEuOTM5IDguNjkzYzAtMCAwLTAtMC0wLjAwMS0wLjA3NC0xLjI4OCAwLjU0Mi0yLjM3MiAxLjM3Ny0yLjQyMXMxLjU3MSAwLjk1NyAxLjY0NSAyLjI0NWMwIDAgMCAwIDAgMC4wMDEgMC4wMDQgMC4wNjkgMC4wMDYgMC4xMzggMC4wMDYgMC4yMDYtMC4yNjQgMC4wNjYtMC41MDMgMC4xNjMtMC43MTcgMC4yNzUtMC4wMDEtMC4wMTAtMC4wMDEtMC4wMTktMC4wMDItMC4wMjkgMC0wIDAtMCAwLTAtMC4wNzEtMC43MzEtMC40NjItMS4yODQtMC44NzMtMS4yMzRzLTAuNjg2IDAuNjg0LTAuNjE0IDEuNDE1YzAgMCAwIDAgMCAwIDAuMDMxIDAuMzE5IDAuMTIzIDAuNjA0IDAuMjUxIDAuODE5LTAuMDMyIDAuMDI1LTAuMTIyIDAuMDkxLTAuMjI1IDAuMTY2LTAuMDc4IDAuMDU3LTAuMTcyIDAuMTI2LTAuMjg2IDAuMjEtMC4zMTEtMC40MDgtMC41MjQtMC45OTMtMC41NjItMS42NTV6TTEwLjM5NSAxMS44NzhjLTAuMDMwIDAuNjgxLTAuOTIgMS4zMjItMS43NDMgMS41NzlsLTAuMDA1IDAuMDAyYy0wLjM0MiAwLjExMS0wLjY0NyAwLjMwNi0wLjk3IDAuNTEzLTAuNTQzIDAuMzQ3LTEuMTA0IDAuNzA2LTEuOTE0IDAuNzA2LTAuMDUzIDAtMC4xMDgtMC4wMDItMC4xNjEtMC4wMDUtMC43NDItMC4wNDMtMS4wOTAtMC4zNi0xLjUyOS0wLjc2MS0wLjIzMi0wLjIxMS0wLjQ3Mi0wLjQzLTAuNzgxLTAuNjExbC0wLjAwNy0wLjAwNGMtMC42NjctMC4zNzctMS4wODEtMC44NDUtMS4xMDgtMS4yNTMtMC4wMTMtMC4yMDMgMC4wNzctMC4zNzggMC4yNjgtMC41MjIgMC40MTYtMC4zMTIgMC42OTUtMC41MTYgMC44NzktMC42NTEgMC4yMDUtMC4xNSAwLjI2Ny0wLjE5NSAwLjMxMy0wLjIzOSAwLjAzMy0wLjAzMSAwLjA2OC0wLjA2NSAwLjEwNi0wLjEwMyAwLjM4Mi0wLjM3MSAxLjAyMS0wLjk5MyAyLjAwMi0wLjk5MyAwLjYgMCAxLjI2NCAwLjIzMSAxLjk3MSAwLjY4NiAwLjMzMyAwLjIxNyAwLjYyMyAwLjMxNyAwLjk5IDAuNDQ0IDAuMjUyIDAuMDg3IDAuNTM5IDAuMTg2IDAuOTIyIDAuMzVsMC4wMDYgMC4wMDNjMC4zNTcgMC4xNDcgMC43OCAwLjQxNSAwLjc2IDAuODU4ek0xMC4xOTggMTAuMjc4Yy0wLjA2OS0wLjAzNS0wLjE0LTAuMDY4LTAuMjE1LTAuMDk4LTAuMzQ1LTAuMTQ4LTAuNjIyLTAuMjQ4LTAuODUyLTAuMzI4IDAuMTI3LTAuMjQ4IDAuMjA2LTAuNTU4IDAuMjEzLTAuODk0IDAtMCAwLTAgMC0wIDAuMDE4LTAuODE4LTAuMzk1LTEuNDgzLTAuOTIyLTEuNDg0cy0wLjk2OCAwLjY2MS0wLjk4NiAxLjQ3OWMwIDAgMCAwIDAgMC0wLjAwMSAwLjAyNy0wLjAwMSAwLjA1My0wIDAuMDgwLTAuMzI0LTAuMTQ5LTAuNjQzLTAuMjU4LTAuOTU2LTAuMzI0LTAuMDAxLTAuMDMxLTAuMDAzLTAuMDYxLTAuMDA0LTAuMDkyIDAtMCAwLTAuMDAxIDAtMC4wMDEtMC4wMzAtMS40OTEgMC44ODQtMi43MjUgMi4wNDMtMi43NTZzMi4xMjIgMS4xNTIgMi4xNTMgMi42NDJjMCAwIDAgMC4wMDEgMCAwLjAwMSAwLjAxNCAwLjY3NC0wLjE2NyAxLjI5NS0wLjQ3NSAxLjc3NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BcHBsZWluYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4zNjcgOC41MDFjLTAuMDIwLTIuMDI2IDEuNjUyLTIuOTk4IDEuNzI3LTMuMDQ2LTAuOTQtMS4zNzUtMi40MDQtMS41NjQtMi45MjYtMS41ODUtMS4yNDYtMC4xMjYtMi40MzEgMC43MzQtMy4wNjQgMC43MzQtMC42MzEgMC0xLjYwNy0wLjcxNS0yLjY0LTAuNjk2LTEuMzU4IDAuMDIwLTIuNjEgMC43OS0zLjMxIDIuMDA2LTEuNDExIDIuNDQ4LTAuMzYxIDYuMDc2IDEuMDE0IDguMDYxIDAuNjcyIDAuOTcyIDEuNDczIDIuMDY0IDIuNTI1IDIuMDI1IDEuMDEzLTAuMDQwIDEuMzk2LTAuNjU2IDIuNjIxLTAuNjU2czEuNTY5IDAuNjU2IDIuNjQxIDAuNjM1YzEuMDkwLTAuMDIwIDEuNzgxLTAuOTkxIDIuNDQ4LTEuOTY2IDAuNzcyLTEuMTI4IDEuMDg5LTIuMjE5IDEuMTA4LTIuMjc1LTAuMDI0LTAuMDExLTIuMTI2LTAuODE2LTIuMTQ3LTMuMjM2ek0xMC4zNTMgMi41NTVjMC41NTgtMC42NzcgMC45MzUtMS42MTcgMC44MzItMi41NTUtMC44MDQgMC4wMzMtMS43NzkgMC41MzYtMi4zNTYgMS4yMTItMC41MTggMC42LTAuOTcxIDEuNTU3LTAuODUgMi40NzYgMC44OTggMC4wNzAgMS44MTUtMC40NTYgMi4zNzMtMS4xMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRmluZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguODk0IDEyLjE2Yy0wLTAuMDAxLTAtMC4wMDEtMC0wLjAwMiAwIDAuMDAxIDAgMC4wMDEgMCAwLjAwMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjkxNiAxMi43MjdjLTAtMC4wMDQtMC0wLjAwNy0wLjAwMS0wLjAxMSAwIDAuMDA0IDAgMC4wMDcgMC4wMDEgMC4wMTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45MDMgMTIuNDQyYy0wLTAuMDAzLTAtMC4wMDYtMC0wLjAwOCAwIDAuMDAzIDAgMC4wMDYgMCAwLjAwOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAwaC0xNGMtMC41NSAwLTEgMC40NS0xIDF2MTRjMCAwLjU1IDAuNDUgMSAxIDFoNy43MTZjMC4wMDEgMCAwLjAwMSAwIDAuMDAyIDBzMC4wMDEtMCAwLjAwMi0waDYuMjhjMC41NSAwIDEtMC40NSAxLTF2LTE0YzAtMC41NS0wLjQ1LTEtMS0xek0zIDMuNWMwLTAuMjc2IDAuMjI0LTAuNSAwLjUtMC41czAuNSAwLjIyNCAwLjUgMC41djFjMCAwLjI3Ni0wLjIyNCAwLjUtMC41IDAuNXMtMC41LTAuMjI0LTAuNS0wLjV2LTF6TTE1IDE1aC01Ljg2Yy0wLjEwNS0wLjY1OC0wLjE3LTEuMzM2LTAuMjA5LTEuOTk0IDAgMC4wMDIgMCAwLjAwNCAwIDAuMDA1LTAuMzA4IDAuMDM0LTAuNjE4IDAuMDUxLTAuOTMxIDAuMDUxLTIuMDg4IDAtNC4xLTAuNzYtNS42NjQtMi4xNDEtMC4yMzMtMC4yMDYtMC4yNTUtMC41NjEtMC4wNTAtMC43OTRzMC41NjEtMC4yNTUgMC43OTQtMC4wNTBjMS4zNTggMS4xOTkgMy4xMDUgMS44NTkgNC45MTkgMS44NTkgMC4yOTggMCAwLjU5NS0wLjAxOCAwLjg4OC0wLjA1My0wLjAzNC0xLjg0NyAwLjEwNy0zLjMxMSAwLjExLTMuMzM0IDAuMDE0LTAuMTQxLTAuMDMyLTAuMjgtMC4xMjctMC4zODVzLTAuMjI5LTAuMTY0LTAuMzcxLTAuMTY0aC0xLjQ4N2MwLjAyMi0wLjU0MSAwLjA3OS0xLjQ2NiAwLjIzNC0yLjUwMyAwLjI5NS0xLjk4MSAwLjgxMi0zLjUyOCAxLjUwMi00LjQ5N2g2LjI1MXYxNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDVjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjV2LTFjMC0wLjI3NiAwLjIyNC0wLjUgMC41LTAuNXMwLjUgMC4yMjQgMC41IDAuNXYxYzAgMC4yNzYtMC4yMjQgMC41LTAuNSAwLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40NDUgMTMuMDUwYy0wLjA1NyAwLjAwMy0wLjExNCAwLjAwNS0wLjE3MSAwLjAwNyAwLjA1Ny0wLjAwMiAwLjExNC0wLjAwNCAwLjE3MS0wLjAwN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEzLjA2M2MwLjA3MyAwIDAuMTQ2LTAuMDAxIDAuMjItMC4wMDMtMC4wNzMgMC4wMDItMC4xNDYgMC4wMDMtMC4yMiAwLjAwM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQyMyAxMS45MjVjMC4wMTItMC4wMDEgMC4wMjQtMC4wMDEgMC4wMzctMC4wMDItMC4wMTIgMC4wMDEtMC4wMjQgMC4wMDEtMC4wMzcgMC4wMDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4yMDQgMTEuOTM0YzAuMDE3LTAgMC4wMzQtMC4wMDEgMC4wNTAtMC4wMDItMC4wMTcgMC4wMDEtMC4wMzQgMC4wMDEtMC4wNTAgMC4wMDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNzEzIDEwLjEyOGMtMC4yMDYtMC4yMzMtMC41NjEtMC4yNTUtMC43OTQtMC4wNTAtMS4xMzUgMS4wMDItMi41NDIgMS42MjctNC4wMzIgMS44MDYgMC4wMDcgMC4zNjQgMC4wMjAgMC43NDIgMC4wNDMgMS4xMjcgMS43NDktMC4xOTEgMy40MDMtMC45MTYgNC43MzMtMi4wOTAgMC4yMzMtMC4yMDYgMC4yNTUtMC41NjEgMC4wNTAtMC43OTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45MyAxMy4wMTJjLTAuMDcyIDAuMDA4LTAuMTQ0IDAuMDE1LTAuMjE2IDAuMDIxIDAuMDcyLTAuMDA2IDAuMTQ0LTAuMDEzIDAuMjE2LTAuMDIxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNjggMTMuMDM1Yy0wLjA2MSAwLjAwNS0wLjEyMiAwLjAwOS0wLjE4MyAwLjAxMyAwLjA2MS0wLjAwNCAwLjEyMi0wLjAwOCAwLjE4My0wLjAxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1BbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDZjLTAuNTUgMC0xIDAuNDUtMSAxdjRjMCAwLjU1IDAuNDUgMSAxIDFzMS0wLjQ1IDEtMXYtNGMwLTAuNTUtMC40NS0xLTEtMXpNMiA2Yy0wLjU1IDAtMSAwLjQ1LTEgMXY0YzAgMC41NSAwLjQ1IDEgMSAxczEtMC40NSAxLTF2LTRjMC0wLjU1LTAuNDUtMS0xLTF6TTMuNSAxMS41YzAgMC44MjggMC42NzIgMS41IDEuNSAxLjV2MCAyYzAgMC41NSAwLjQ1IDEgMSAxczEtMC40NSAxLTF2LTJoMnYyYzAgMC41NSAwLjQ1IDEgMSAxczEtMC40NSAxLTF2LTJjMC44MjggMCAxLjUtMC42NzIgMS41LTEuNXYtNS41aC05djUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40NzIgNWMtMC4xNTItMS4zNzMtMC45MjItMi41NTktMi4wMjUtMy4yNzZsMC41LTEuMDAxYzAuMTIzLTAuMjQ3IDAuMDIzLTAuNTQ3LTAuMjI0LTAuNjcxcy0wLjU0Ny0wLjAyMy0wLjY3MSAwLjIyNGwtMC41MDIgMS4wMDQtMC4xMy0wLjA1MmMtMC40NDYtMC4xNDgtMC45MjQtMC4yMjktMS40Mi0wLjIyOXMtMC45NzQgMC4wODEtMS40MiAwLjIyOWwtMC4xMyAwLjA1Mi0wLjUwMi0xLjAwNGMtMC4xMjMtMC4yNDctMC40MjQtMC4zNDctMC42NzEtMC4yMjRzLTAuMzQ3IDAuNDI0LTAuMjI0IDAuNjcxbDAuNSAxLjAwMWMtMS4xMDMgMC43MTYtMS44NzMgMS45MDMtMi4wMjUgMy4yNzZ2MC41aDguOTcydi0wLjVoLTAuMDI4ek02LjUgNGMtMC4yNzYgMC0wLjUtMC4yMjQtMC41LTAuNXMwLjIyMy0wLjQ5OSAwLjQ5OS0wLjVjMCAwIDAuMDAxIDAgMC4wMDEgMHMwLjAwMS0wIDAuMDAxLTBjMC4yNzYgMC4wMDEgMC40OTkgMC4yMjQgMC40OTkgMC41cy0wLjIyNCAwLjUtMC41IDAuNXpNOS41IDRjLTAuMjc2IDAtMC41LTAuMjI0LTAuNS0wLjVzMC4yMjMtMC40OTkgMC40OTktMC41YzAgMCAwLjAwMSAwIDAuMDAxIDBzMC4wMDEtMCAwLjAwMi0wYzAuMjc2IDAuMDAxIDAuNDk5IDAuMjI0IDAuNDk5IDAuNXMtMC4yMjQgMC41LTAuNSAwLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV2luZG93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQ0MSA3Ljk5OWMtMC43NDUtMC4zODMtMS40Ny0wLjU3Ny0yLjE1NC0wLjU3Ny0wLjA5MyAwLTAuMTg3IDAuMDAzLTAuMjggMC4wMTEtMC44NzMgMC4wNzItMS42NzEgMC4zMDMtMi4xODQgMC40ODItMC4xMzYgMC4wNTAtMC4yNzYgMC4xMDMtMC40MTkgMC4xNjFsLTEuNDAzIDQuODY2YzAuOTY0LTAuMzU3IDEuODE3LTAuNTMgMi41OTgtMC41MyAxLjI2MyAwIDIuMTggMC40NzIgMi45MzcgMC45NTggMC4zNTktMS4yMTcgMS4yMTktNC4xNTggMS40NzYtNS4wMzYtMC4xODctMC4xMTQtMC4zNzYtMC4yMjgtMC41NzEtMC4zMzN6TTguMjU1IDkuMjM1bC0xLjQxMyA0LjkwOWMwLjQxOSAwLjI0IDEuODMgMS4wMDEgMi45MSAxLjAwMSAwLjg3MiAwIDEuODQ4LTAuMjIzIDIuOTgyLTAuNjg0bDEuMzQ5LTQuNzE4Yy0wLjkxNiAwLjI5Ni0xLjc5NSAwLjQ0Ni0yLjYxNyAwLjQ0Ni0xLjQ5OSAwLTIuNTQ5LTAuNDg2LTMuMjExLTAuOTUyek00LjU3NSA1Ljc2MmMxLjIwNSAwLjAxMiAyLjA5NiAwLjQ3MiAyLjgzNSAwLjk0NWwxLjQ0OS00Ljk1OGMtMC4zMDUtMC4xNzUtMS4xMDYtMC42MTEtMS42ODUtMC43NTktMC4zODEtMC4wODktMC43ODItMC4xMzUtMS4yMDYtMC4xMzUtMC44MDkgMC4wMTUtMS42OTQgMC4yMTgtMi43MDEgMC42MjJsLTEuMzgyIDQuODUzYzEuMDEzLTAuMzgyIDEuODg1LTAuNTY4IDIuNjg5LTAuNTY4IDAuMDAxIDAgMC4wMDIgMCAwLjAwMiAwek0xNiAzLjA5NmMtMC45MTkgMC4zNTctMS44MTYgMC41MzktMi42NzIgMC41MzktMS40MzMgMC0yLjQ4OS0wLjQ5Ny0zLjE3My0wLjk3NGwtMS40MzcgNC45NzJjMC45NjUgMC42MiAyLjAwNSAwLjkzNiAzLjA5NiAwLjkzNiAwLjg5IDAgMS44MTItMC4yMTQgMi43NDItMC42MzZsLTAuMDAzLTAuMDM1IDAuMDU4LTAuMDE0IDEuMzktNC43ODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV2luZG93czggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMC4wMDUgOGwtMC4wMDUtNC44NzYgNi0wLjgxNXY1LjY5MXpNNyAyLjE2NGw3Ljk5OC0xLjE2NHY3aC03Ljk5OHpNMTUgOWwtMC4wMDIgNy03Ljk5OC0xLjEyNXYtNS44NzV6TTYgMTQuNzQ3bC01Ljk5NS0wLjgyMi0wLTQuOTI2aDUuOTk1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNvdW5kY2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTM3IDguMDM0Yy0wLjI4MyAwLTAuNTUyIDAuMDU1LTAuNzk4IDAuMTU0LTAuMTY0LTEuNzg3LTEuNzIzLTMuMTg4LTMuNjI1LTMuMTg4LTAuNDY1IDAtMC45MTcgMC4wODgtMS4zMTcgMC4yMzctMC4xNTYgMC4wNTgtMC4xOTcgMC4xMTctMC4xOTcgMC4yMzN2Ni4yOTJjMCAwLjEyMSAwLjA5OCAwLjIyMiAwLjIyMSAwLjIzNCAwLjAwNSAwLjAwMSA1LjY4IDAuMDAzIDUuNzE3IDAuMDAzIDEuMTM5IDAgMi4wNjItMC44ODggMi4wNjItMS45ODNzLTAuOTI0LTEuOTgzLTIuMDYzLTEuOTgzek02LjI1IDEyaDAuNWwwLjI1LTMuNTAzLTAuMjUtMy40OTdoLTAuNWwtMC4yNSAzLjQ5N3pNNC43NSAxMmgtMC41bC0wLjI1LTIuNTQzIDAuMjUtMi40NTdoMC41bDAuMjUgMi41ek0yLjI1IDEyaDAuNWwwLjI1LTItMC4yNS0yaC0wLjVsLTAuMjUgMnpNMC4yNSAxMWgwLjVsMC4yNS0xLTAuMjUtMWgtMC41bC0wLjI1IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU291bmRjbG91ZDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTIuNzUgMTFoLTAuNWwtMC4yNS0xLjUgMC4yNS0xLjVoMC41bDAuMjUgMS41LTAuMjUgMS41ek00Ljc1IDExaC0wLjVsLTAuMjUtMiAwLjI1LTJoMC41bDAuMjUgMi0wLjI1IDJ6TTYuNzUgMTFoLTAuNWwtMC4yNS0zIDAuMjUtM2gwLjVsMC4yNSAzLTAuMjUgM3pNMTIuODk0IDExYy0wLjAzMSAwLTQuNzA2LTAuMDAzLTQuNzA5LTAuMDAzLTAuMS0wLjAwOS0wLjE4MS0wLjA5Ny0wLjE4NC0wLjJ2LTUuMzk0YzAtMC4xIDAuMDM0LTAuMTUgMC4xNjItMC4yIDAuMzMxLTAuMTI4IDAuNzAzLTAuMjAzIDEuMDg4LTAuMjAzIDEuNTY2IDAgMi44NSAxLjIgMi45ODcgMi43MzQgMC4yMDMtMC4wODQgMC40MjUtMC4xMzEgMC42NTYtMC4xMzEgMC45MzggMCAxLjcgMC43NjIgMS43IDEuN3MtMC43NjIgMS42OTctMS43IDEuNjk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNreXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNjUgMC41ODRjLTAuMDI1LTAuMDE2LTAuMDUzLTAuMDI4LTAuMDc4LTAuMDQxLTAuMDI4IDAuMDA2LTAuMDUzIDAuMDA5LTAuMDgxIDAuMDE2bDAuMTU5IDAuMDI1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAuNTc1IDYuNTc4Yy0wLjAwNiAwLjAyOC0wLjAwOSAwLjA1Ni0wLjAxMiAwLjA4MSAwLjAxNiAwLjAyNSAwLjAyNSAwLjA1MCAwLjA0MSAwLjA3NWwtMC4wMjgtMC4xNTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDE5IDkuNDE2YzAuMDA2LTAuMDI4IDAuMDA5LTAuMDU2IDAuMDE2LTAuMDg0LTAuMDE2LTAuMDI1LTAuMDI1LTAuMDUwLTAuMDQxLTAuMDc1bDAuMDI1IDAuMTU5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjUgMTUuMzU5YzAuMDI1IDAuMDE2IDAuMDUzIDAuMDI4IDAuMDc4IDAuMDQxIDAuMDI4LTAuMDA2IDAuMDU2LTAuMDA5IDAuMDg0LTAuMDEybC0wLjE2Mi0wLjAyOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS40MzQgOS4zMzFjLTAuMDA2IDAuMDI4LTAuMDA5IDAuMDU2LTAuMDE2IDAuMDg0bC0wLjAyOC0wLjE2MmMwLjAxNiAwLjAyOCAwLjAyOCAwLjA1MyAwLjA0NCAwLjA3OCAwLjA4MS0wLjQ1IDAuMTI1LTAuOTA5IDAuMTI1LTEuMzY5IDAtMS4wMTktMC4yLTIuMDA5LTAuNTk0LTIuOTQxLTAuMzgxLTAuOS0wLjkyNS0xLjcwOS0xLjYxOS0yLjQwM3MtMS41MDMtMS4yMzgtMi40LTEuNjE5Yy0wLjkzMS0wLjM5NC0xLjkyMi0wLjU5NC0yLjk0MS0wLjU5NC0wLjQ4MSAwLTAuOTYzIDAuMDQ0LTEuNDMxIDAuMTM0IDAgMC0wLjAwMyAwLTAuMDAzIDAgMC4wMjUgMC4wMTIgMC4wNTMgMC4wMjUgMC4wNzggMC4wNDFsLTAuMTU5LTAuMDI1YzAuMDI4LTAuMDA2IDAuMDUzLTAuMDA5IDAuMDgxLTAuMDE2LTAuNjQ0LTAuMzQxLTEuMzY2LTAuNTI1LTIuMDk3LTAuNTI1LTEuMTk0IDAtMi4zMTkgMC40NjYtMy4xNjMgMS4zMDlzLTEuMzA5IDEuOTY5LTEuMzA5IDMuMTYzYzAgMC43NTkgMC4xOTcgMS41MDkgMC41NjMgMi4xNjkgMC4wMDYtMC4wMjggMC4wMDktMC4wNTYgMC4wMTItMC4wODFsMC4wMjggMC4xNTljLTAuMDE2LTAuMDI1LTAuMDI4LTAuMDUwLTAuMDQxLTAuMDc1LTAuMDc1IDAuNDI4LTAuMTEyIDAuODY2LTAuMTEyIDEuMzAzIDAgMS4wMTkgMC4yIDIuMDA5IDAuNTk0IDIuOTQxIDAuMzgxIDAuOSAwLjkyNSAxLjcwNiAxLjYxOSAyLjRzMS41MDMgMS4yMzggMi40MDMgMS42MTljMC45MzEgMC4zOTQgMS45MjIgMC41OTQgMi45NDEgMC41OTQgMC40NDQgMCAwLjg4Ny0wLjA0MSAxLjMyMi0wLjExOS0wLjAyNS0wLjAxNi0wLjA1MC0wLjAyOC0wLjA3OC0wLjA0MWwwLjE2MiAwLjAyOGMtMC4wMjggMC4wMDYtMC4wNTYgMC4wMDktMC4wODQgMC4wMTIgMC42NjkgMC4zNzggMS40MjggMC41ODEgMi4yIDAuNTgxIDEuMTk0IDAgMi4zMTktMC40NjYgMy4xNjItMS4zMDlzMS4zMDktMS45NjkgMS4zMDktMy4xNjJjLTAuMDAzLTAuNzU5LTAuMi0xLjUwOS0wLjU2OS0yLjE3NXpNOC4wMzQgMTIuNTkxYy0yLjY4NCAwLTMuODg0LTEuMzE5LTMuODg0LTIuMzA5IDAtMC41MDYgMC4zNzUtMC44NjMgMC44OTEtMC44NjMgMS4xNSAwIDAuODUgMS42NSAyLjk5NCAxLjY1IDEuMDk3IDAgMS43MDMtMC41OTcgMS43MDMtMS4yMDYgMC0wLjM2Ni0wLjE4MS0wLjc3Mi0wLjkwMy0wLjk1bC0yLjM4OC0wLjU5N2MtMS45MjItMC40ODEtMi4yNzItMS41MjItMi4yNzItMi41IDAtMi4wMjggMS45MDktMi43OTEgMy43MDMtMi43OTEgMS42NTMgMCAzLjYgMC45MTMgMy42IDIuMTMxIDAgMC41MjItMC40NTMgMC44MjUtMC45NjkgMC44MjUtMC45ODEgMC0wLjgtMS4zNTYtMi43NzUtMS4zNTYtMC45ODEgMC0xLjUyMiAwLjQ0NC0xLjUyMiAxLjA3OHMwLjc3NSAwLjgzOCAxLjQ0NyAwLjk5MWwxLjc2OSAwLjM5NGMxLjkzNCAwLjQzMSAyLjQyNSAxLjU2MyAyLjQyNSAyLjYyNSAwIDEuNjQ3LTEuMjY2IDIuODc4LTMuODE5IDIuODc4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVJlZGRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEwYzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTEwIDEwYzAtMC41NTIgMC40NDgtMSAxLTFzMSAwLjQ0OCAxIDFjMCAwLjU1Mi0wLjQ0OCAxLTEgMXMtMS0wLjQ0OC0xLTF6TTEwLjA0OSAxMi4xMzdjMC4yNTgtMC4yMDMgMC42MzEtMC4xNTkgMC44MzQgMC4wOTlzMC4xNTkgMC42MzEtMC4wOTkgMC44MzRjLTAuNzE3IDAuNTY1LTEuODEgMC45My0yLjc4MyAwLjkzcy0yLjA2Ni0wLjM2NS0yLjc4NC0wLjkzYy0wLjI1OC0wLjIwMy0wLjMwMi0wLjU3Ni0wLjA5OS0wLjgzNHMwLjU3Ni0wLjMwMiAwLjgzNC0wLjA5OWMwLjQxMyAwLjMyNSAxLjIzIDAuNjc1IDIuMDQ5IDAuNjc1czEuNjM2LTAuMzUgMi4wNDktMC42NzV6TTE2IDhjMC0xLjEwNS0wLjg5NS0yLTItMi0wLjc1MiAwLTEuNDA2IDAuNDE1LTEuNzQ4IDEuMDI4LTEuMDI4LTAuNTYyLTIuMjgtMC45MjYtMy42NDUtMS4wMTBsMS4xOTMtMi42OCAyLjI4NCAwLjY1OWMwLjIwNiAwLjU4MyAwLjc2MSAxLjAwMiAxLjQxNSAxLjAwMiAwLjgyOCAwIDEuNS0wLjY3MiAxLjUtMS41cy0wLjY3Mi0xLjUtMS41LTEuNWMtMC41NzEgMC0xLjA2OCAwLjMxOS0xLjMyMSAwLjc4OWwtMi41NDUtMC43MzVjLTAuMjg1LTAuMDgyLTAuNTg3IDAuMDU4LTAuNzA3IDAuMzI5bC0xLjYyMSAzLjY0MWMtMS4zMyAwLjA5NC0yLjU1MSAwLjQ1My0zLjU1NyAxLjAwNC0wLjM0Mi0wLjYxMy0wLjk5Ni0xLjAyOC0xLjc0OC0xLjAyOC0xLjEwNSAwLTIgMC44OTUtMiAyIDAgMC44MTcgMC40OTEgMS41MiAxLjE5MyAxLjgzLTAuMTI2IDAuMzc1LTAuMTkzIDAuNzY3LTAuMTkzIDEuMTcgMCAyLjc2MSAzLjEzNCA1IDcgNXM3LTIuMjM5IDctNWMwLTAuNDAzLTAuMDY3LTAuNzk1LTAuMTkzLTEuMTcgMC43MDMtMC4zMSAxLjE5My0xLjAxMyAxLjE5My0xLjgzek0xMy41IDIuOTM4YzAuMzExIDAgMC41NjMgMC4yNTIgMC41NjMgMC41NjNzLTAuMjUyIDAuNTYzLTAuNTYzIDAuNTYzLTAuNTYzLTAuMjUyLTAuNTYzLTAuNTYzIDAuMjUyLTAuNTYzIDAuNTYzLTAuNTYzek0xIDhjMC0wLjU1MSAwLjQ0OS0xIDEtMSAwLjM5OSAwIDAuNzQzIDAuMjM0IDAuOTA0IDAuNTczLTAuNTIzIDAuMzk2LTAuOTU2IDAuODU0LTEuMjc2IDEuMzU1LTAuMzY4LTAuMTQ4LTAuNjI4LTAuNTA4LTAuNjI4LTAuOTI4ek04IDE0LjgxM2MtMy4yMSAwLTUuODEzLTEuNzA3LTUuODEzLTMuODEzczIuNjAyLTMuODEzIDUuODEzLTMuODEzYzMuMjEgMCA1LjgxMyAxLjcwNyA1LjgxMyAzLjgxM3MtMi42MDIgMy44MTMtNS44MTMgMy44MTN6TTE0LjM3MiA4LjkyOGMtMC4zMi0wLjUwMi0wLjc1My0wLjk1OS0xLjI3Ni0xLjM1NSAwLjE2MS0wLjMzOCAwLjUwNS0wLjU3MyAwLjkwNC0wLjU3MyAwLjU1MSAwIDEgMC40NDkgMSAxIDAgMC40Mi0wLjI2IDAuNzgtMC42MjggMC45Mjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSGFja2VybmV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDB2MTZoMTZ2LTE2aC0xNnpNOC41IDkuMTI1djMuMzc1aC0xdi0zLjM3NWwtMi43MzQtNS4xMjVoMS4xMzRsMi4xIDMuOTM4IDIuMS0zLjkzOGgxLjEzNGwtMi43MzQgNS4xMjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltV2lraXBlZGlhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjEwNiAzLjY1YzAgMC4wNTAtMC4wMTYgMC4wOTctMC4wNDcgMC4xNDEtMC4wMzEgMC4wNDEtMC4wNjYgMC4wNjMtMC4xMDYgMC4wNjMtMC4zMTMgMC4wMzEtMC41NjkgMC4xMzEtMC43NjYgMC4zLTAuMiAwLjE2OS0wLjQwMyAwLjQ5Ny0wLjYxMyAwLjk3NWwtMy4yMjUgNy4yNzJjLTAuMDIyIDAuMDY5LTAuMDgxIDAuMS0wLjE3OCAwLjEtMC4wNzUgMC0wLjEzNC0wLjAzNC0wLjE3OC0wLjFsLTEuODA5LTMuNzgxLTIuMDgxIDMuNzgxYy0wLjA0NCAwLjA2OS0wLjEgMC4xLTAuMTc4IDAuMS0wLjA5NCAwLTAuMTUzLTAuMDM0LTAuMTg0LTAuMWwtMy4xNjYtNy4yNjljLTAuMTk3LTAuNDUtMC40MDYtMC43NjYtMC42MjUtMC45NDRzLTAuNTI1LTAuMjkxLTAuOTE2LTAuMzMxYy0wLjAzNCAwLTAuMDY2LTAuMDE5LTAuMDk0LTAuMDUzLTAuMDMxLTAuMDM0LTAuMDQ0LTAuMDc1LTAuMDQ0LTAuMTIyIDAtMC4xMTkgMC4wMzQtMC4xNzggMC4xLTAuMTc4IDAuMjgxIDAgMC41NzggMC4wMTMgMC44ODggMC4wMzggMC4yODggMC4wMjUgMC41NTYgMC4wMzggMC44MDkgMC4wMzggMC4yNTYgMCAwLjU2My0wLjAxMyAwLjkxMy0wLjAzOCAwLjM2Ni0wLjAyNSAwLjY5MS0wLjAzOCAwLjk3NS0wLjAzOCAwLjA2OSAwIDAuMSAwLjA1OSAwLjEgMC4xNzhzLTAuMDIyIDAuMTc1LTAuMDYzIDAuMTc1Yy0wLjI4MSAwLjAyMi0wLjUwNiAwLjA5NC0wLjY2OSAwLjIxNnMtMC4yNDQgMC4yODEtMC4yNDQgMC40ODFjMCAwLjEgMC4wMzQgMC4yMjggMC4xIDAuMzc4bDIuNjE2IDUuOTEyIDEuNDg3LTIuODA2LTEuMzg0LTIuOTAzYy0wLjI1LTAuNTE5LTAuNDUzLTAuODUzLTAuNjEyLTEuMDAzcy0wLjQwMy0wLjI0MS0wLjcyOC0wLjI3NWMtMC4wMzEgMC0wLjA1Ni0wLjAxOS0wLjA4NC0wLjA1M3MtMC4wNDEtMC4wNzUtMC4wNDEtMC4xMjJjMC0wLjExOSAwLjAyOC0wLjE3OCAwLjA4OC0wLjE3OCAwLjI4MSAwIDAuNTQxIDAuMDEzIDAuNzc4IDAuMDM4IDAuMjI4IDAuMDI1IDAuNDY5IDAuMDM4IDAuNzI4IDAuMDM4IDAuMjUzIDAgMC41MTktMC4wMTMgMC44MDMtMC4wMzggMC4yOTEtMC4wMjUgMC41NzgtMC4wMzggMC44NTktMC4wMzggMC4wNjkgMCAwLjEgMC4wNTkgMC4xIDAuMTc4cy0wLjAxOSAwLjE3NS0wLjA2MyAwLjE3NWMtMC41NjYgMC4wMzgtMC44NDcgMC4yLTAuODQ3IDAuNDgxIDAgMC4xMjUgMC4wNjYgMC4zMjIgMC4xOTcgMC41ODhsMC45MTYgMS44NTkgMC45MTItMS43YzAuMTI1LTAuMjQxIDAuMTkxLTAuNDQ0IDAuMTkxLTAuNjA2IDAtMC4zODgtMC4yODEtMC41OTQtMC44NDctMC42MTktMC4wNTAgMC0wLjA3NS0wLjA1OS0wLjA3NS0wLjE3NSAwLTAuMDQ0IDAuMDEyLTAuMDgxIDAuMDM3LTAuMTE5czAuMDUwLTAuMDU2IDAuMDc1LTAuMDU2YzAuMjAzIDAgMC40NSAwLjAxMyAwLjc0NyAwLjAzOCAwLjI4MSAwLjAyNSAwLjUxNiAwLjAzOCAwLjY5NyAwLjAzOCAwLjEzMSAwIDAuMzIyLTAuMDEzIDAuNTc1LTAuMDMxIDAuMzE5LTAuMDI4IDAuNTg4LTAuMDQ0IDAuODAzLTAuMDQ0IDAuMDUwIDAgMC4wNzUgMC4wNTAgMC4wNzUgMC4xNSAwIDAuMTM0LTAuMDQ3IDAuMjAzLTAuMTM3IDAuMjAzLTAuMzI4IDAuMDM0LTAuNTk0IDAuMTI1LTAuNzk0IDAuMjcycy0wLjQ1IDAuNDgxLTAuNzUgMS4wMDZsLTEuMjIyIDIuMjM3IDEuNjQ0IDMuMzUgMi40MjgtNS42NDdjMC4wODQtMC4yMDYgMC4xMjUtMC4zOTcgMC4xMjUtMC41NjkgMC0wLjQxMi0wLjI4MS0wLjYzMS0wLjg0Ny0wLjY1OS0wLjA1MCAwLTAuMDc1LTAuMDU5LTAuMDc1LTAuMTc1IDAtMC4xMTkgMC4wMzctMC4xNzggMC4xMTMtMC4xNzggMC4yMDYgMCAwLjQ1IDAuMDEzIDAuNzM0IDAuMDM4IDAuMjYyIDAuMDI1IDAuNDgxIDAuMDM4IDAuNjU2IDAuMDM4IDAuMTg4IDAgMC40LTAuMDEzIDAuNjQ0LTAuMDM4IDAuMjUzLTAuMDI1IDAuNDgxLTAuMDM4IDAuNjg0LTAuMDM4IDAuMDYzIDAgMC4wOTQgMC4wNTAgMC4wOTQgMC4xNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MaW5rZWRpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNNiAxM2gtMnYtN2gydjd6TTUgNWMtMC41NTMgMC0xLTAuNDQ3LTEtMXMwLjQ0Ny0xIDEtMWMwLjU1MyAwIDEgMC40NDcgMSAxcy0wLjQ0NyAxLTEgMXpNMTMgMTNoLTJ2LTRjMC0wLjU1My0wLjQ0Ny0xLTEtMXMtMSAwLjQ0Ny0xIDF2NGgtMnYtN2gydjEuMjQxYzAuNDEyLTAuNTY2IDEuMDQ0LTEuMjQxIDEuNzUtMS4yNDEgMS4yNDQgMCAyLjI1IDEuMTE5IDIuMjUgMi41djQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MaW5rZWRpbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2aDIuNzY3djEuNDE4aDAuMDQwYzAuMzg1LTAuNjkxIDEuMzI3LTEuNDE4IDIuNzMyLTEuNDE4IDIuOTIxIDAgMy40NjEgMS44MTggMy40NjEgNC4xODN2NC44MTdoLTIuODg1di00LjI3YzAtMS4wMTgtMC4wMjEtMi4zMjktMS41LTIuMzI5LTEuNTAyIDAtMS43MzIgMS4xMDktMS43MzIgMi4yNTV2NC4zNDRoLTIuODgzdi05elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNmgzdjloLTN2LTl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAzLjVjMCAwLjgyOC0wLjY3MiAxLjUtMS41IDEuNXMtMS41LTAuNjcyLTEuNS0xLjVjMC0wLjgyOCAwLjY3Mi0xLjUgMS41LTEuNXMxLjUgMC42NzIgMS41IDEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1MYXN0Zm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNTYgMTEuOTcybC0wLjU4OC0xLjU5NGMwIDAtMC45NTMgMS4wNjMtMi4zODEgMS4wNjMtMS4yNjYgMC0yLjE2My0xLjEtMi4xNjMtMi44NTkgMC0yLjI1MyAxLjEzNy0zLjA1OSAyLjI1My0zLjA1OSAxLjYxMiAwIDIuMTI1IDEuMDQ0IDIuNTY2IDIuMzgxbDAuNTg4IDEuODMxYzAuNTg4IDEuNzc4IDEuNjg4IDMuMjA2IDQuODU2IDMuMjA2IDIuMjcyIDAgMy44MTMtMC42OTcgMy44MTMtMi41MjggMC0xLjQ4NC0wLjg0NC0yLjI1My0yLjQxOS0yLjYyMmwtMS4xNzItMC4yNTZjLTAuODA2LTAuMTg0LTEuMDQ0LTAuNTEzLTEuMDQ0LTEuMDYzIDAtMC42MjIgMC40OTQtMC45OTEgMS4zLTAuOTkxIDAuODgxIDAgMS4zNTYgMC4zMzEgMS40MjggMS4xMTlsMS44MzEtMC4yMTljLTAuMTQ3LTEuNjUtMS4yODQtMi4zMjgtMy4xNTMtMi4zMjgtMS42NSAwLTMuMjYyIDAuNjIyLTMuMjYyIDIuNjIyIDAgMS4yNDcgMC42MDYgMi4wMzQgMi4xMjUgMi40bDEuMjQ3IDAuMjk0YzAuOTM0IDAuMjE5IDEuMjQ3IDAuNjA2IDEuMjQ3IDEuMTM3IDAgMC42NzgtMC42NTkgMC45NTMtMS45MDYgMC45NTMtMS44NSAwLTIuNjIyLTAuOTcyLTMuMDU5LTIuMzA5bC0wLjYwNi0xLjgzMWMtMC43NjYtMi4zODQtMS45OTQtMy4yNjMtNC40MzEtMy4yNjMtMi42OTQgMC00LjEyNSAxLjcwMy00LjEyNSA0LjYgMCAyLjc4NCAxLjQyOCA0LjI4NyAzLjk5NyA0LjI4NyAyLjA2OSAwIDMuMDU5LTAuOTcyIDMuMDU5LTAuOTcydjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTGFzdGZtMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDBoLTEzYy0wLjgyNSAwLTEuNSAwLjY3NS0xLjUgMS41djEzYzAgMC44MjUgMC42NzUgMS41IDEuNSAxLjVoMTNjMC44MjUgMCAxLjUtMC42NzUgMS41LTEuNXYtMTNjMC0wLjgyNS0wLjY3NS0xLjUtMS41LTEuNXpNMTEuNjY2IDExLjg4N2MtMi43NzUgMC0zLjczNy0xLjI1LTQuMjUtMi44MDZsLTAuNTEzLTEuNjAzYy0wLjM4NC0xLjE3Mi0wLjgzNC0yLjA4NC0yLjI0NC0yLjA4NC0wLjk3OCAwLTEuOTcyIDAuNzA2LTEuOTcyIDIuNjc4IDAgMS41NDEgMC43ODQgMi41MDMgMS44OTQgMi41MDMgMS4yNSAwIDIuMDg0LTAuOTMxIDIuMDg0LTAuOTMxbDAuNTEzIDEuMzk0YzAgMC0wLjg2NiAwLjg1LTIuNjc4IDAuODUtMi4yNSAwLTMuNS0xLjMxMy0zLjUtMy43NSAwLTIuNTM0IDEuMjUtNC4wMjUgMy42MDktNC4wMjUgMi4xMzQgMCAzLjIwNiAwLjc2OSAzLjg4MSAyLjg1M2wwLjUyOCAxLjYwM2MwLjM4NCAxLjE3MiAxLjA1OSAyLjAyMiAyLjY3OCAyLjAyMiAxLjA5MSAwIDEuNjY5LTAuMjQxIDEuNjY5LTAuODM0IDAtMC40NjYtMC4yNzItMC44MDMtMS4wOTEtMC45OTRsLTEuMDkxLTAuMjU2Yy0xLjMzMS0wLjMyMi0xLjg1OS0xLjAwOS0xLjg1OS0yLjEgMC0xLjc0NyAxLjQxMi0yLjI5NCAyLjg1My0yLjI5NCAxLjYzNCAwIDIuNjMxIDAuNTk0IDIuNzU5IDIuMDM4bC0xLjYwMyAwLjE5NGMtMC4wNjYtMC42OTEtMC40ODEtMC45NzgtMS4yNS0wLjk3OC0wLjcwNiAwLTEuMTM3IDAuMzIyLTEuMTM3IDAuODY2IDAgMC40ODEgMC4yMDkgMC43NjkgMC45MTIgMC45MzFsMS4wMjUgMC4yMjVjMS4zNzggMC4zMjIgMi4xMTYgMC45OTQgMi4xMTYgMi4yOTQgMCAxLjU5Ny0xLjM0NyAyLjIwNi0zLjMzNCAyLjIwNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1EZWxpY2lvdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwdjE2aDE2di0xNmgtMTZ6TTggMTV2LTdoLTd2LTdoN3Y3aDd2N2gtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1TdHVtYmxldXBvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDVjLTAuNTUgMC0xIDAuNDUtMSAxdjRjMCAxLjY1My0xLjM0NyAzLTMgM3MtMy0xLjM0Ny0zLTN2LTJoMnYyYzAgMC41NSAwLjQ1IDEgMSAxczEtMC40NSAxLTF2LTRjMC0xLjY1MyAxLjM0Ny0zIDMtM3MzIDEuMzQ3IDMgMi43ODF2MC45NjlsLTEuMjgxIDAuMzc1LTAuNzE5LTAuMzc1di0wLjk2OWMwLTAuMzMxLTAuNDUtMC43ODEtMS0wLjc4MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMGMwIDEuNjUzLTEuMzQ3IDMtMyAzcy0zLTEuMzQ3LTMtMy4yMTl2LTEuOTM4bDAuNzE5IDAuMzc1IDEuMjgxLTAuMzc1djEuOTM4YzAgMC43NjkgMC40NSAxLjIxOSAxIDEuMjE5czEtMC40NSAxLTF2LTJoMnYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVN0dW1ibGV1cG9uMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4zMTMgMGgtMTAuNjI1Yy0xLjQ3OCAwLTIuNjg4IDEuMjA5LTIuNjg4IDIuNjg4djEwLjYyNWMwIDEuNDc4IDEuMjA5IDIuNjg4IDIuNjg4IDIuNjg4aDEwLjYyNWMxLjQ3OCAwIDIuNjg4LTEuMjA5IDIuNjg4LTIuNjg4di0xMC42MjVjMC0xLjQ3OC0xLjIwOS0yLjY4OC0yLjY4OC0yLjY4OHpNOCA1Yy0wLjU1MSAwLTEgMC40NDktMSAxdjRjMCAxLjY1NC0xLjM0NiAzLTMgM3MtMy0xLjM0Ni0zLTN2LTJoMnYyYzAgMC41NTEgMC40NDkgMSAxIDFzMS0wLjQ0OSAxLTF2LTRjMC0xLjY1NCAxLjM0Ni0zIDMtM3MzIDEuMzQ2IDMgMi43ODF2MC45NjlsLTEuMjgxIDAuMzc1LTAuNzE5LTAuMzc1di0wLjk2OWMwLTAuMzMzLTAuNDQ5LTAuNzgxLTEtMC43ODF6TTE1IDEwYzAgMS42NTQtMS4zNDYgMy0zIDNzLTMtMS4zNDYtMy0zLjIxOXYtMS45MzhsMC43MTkgMC4zNzUgMS4yODEtMC4zNzV2MS45MzhjMCAwLjc3IDAuNDQ5IDEuMjE5IDEgMS4yMTlzMS0wLjQ0OSAxLTF2LTJoMnYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVN0YWNrb3ZlcmZsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTB2NmgtMTZ2LTZoMnY0aDEydi00ek0zIDExaDEwdjJoLTEwek0zLjIzNyA4LjgzNWwwLjQzMy0xLjk1MyA5Ljc2MyAyLjE2NC0wLjQzMyAxLjk1M3pNNC4zNyA0LjgyMWwwLjg0NS0xLjgxMyA5LjA2MyA0LjIyNi0wLjg0NSAxLjgxM3pNMTUuNDk2IDUuNjQ4bC0xLjIxOCAxLjU4Ny03LjkzNC02LjA4OCAwLjg4LTEuMTQ3aDAuOTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGludGVyZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMS4wNjljLTMuODI4IDAtNi45MzEgMy4xMDMtNi45MzEgNi45MzEgMCAyLjkzOCAxLjgyOCA1LjQ0NCA0LjQwNiA2LjQ1My0wLjA1OS0wLjU0Ny0wLjExNi0xLjM5MSAwLjAyNS0xLjk4OCAwLjEyNS0wLjU0MSAwLjgxMy0zLjQ0NCAwLjgxMy0zLjQ0NHMtMC4yMDYtMC40MTYtMC4yMDYtMS4wMjhjMC0wLjk2MyAwLjU1OS0xLjY4NCAxLjI1My0xLjY4NCAwLjU5MSAwIDAuODc4IDAuNDQ0IDAuODc4IDAuOTc1IDAgMC41OTQtMC4zNzggMS40ODQtMC41NzUgMi4zMDYtMC4xNjYgMC42OTEgMC4zNDQgMS4yNTMgMS4wMjUgMS4yNTMgMS4yMzEgMCAyLjE3OC0xLjMgMi4xNzgtMy4xNzUgMC0xLjY1OS0xLjE5NC0yLjgxOS0yLjg5NC0yLjgxOS0xLjk3MiAwLTMuMTI4IDEuNDc4LTMuMTI4IDMuMDA5IDAgMC41OTcgMC4yMjggMS4yMzQgMC41MTYgMS41ODEgMC4wNTYgMC4wNjkgMC4wNjYgMC4xMjggMC4wNDcgMC4yLTAuMDUzIDAuMjE5LTAuMTY5IDAuNjkxLTAuMTk0IDAuNzg3LTAuMDMxIDAuMTI4LTAuMSAwLjE1My0wLjIzMSAwLjA5NC0wLjg2Ni0wLjQwMy0xLjQwNi0xLjY2OS0xLjQwNi0yLjY4NCAwLTIuMTg4IDEuNTg3LTQuMTk0IDQuNTc4LTQuMTk0IDIuNDAzIDAgNC4yNzIgMS43MTIgNC4yNzIgNC4wMDMgMCAyLjM4OC0xLjUwNiA0LjMxMy0zLjU5NyA0LjMxMy0wLjcwMyAwLTEuMzYyLTAuMzY2LTEuNTg4LTAuNzk3IDAgMC0wLjM0NyAxLjMyMi0wLjQzMSAxLjY0Ny0wLjE1NiAwLjYwMy0wLjU3OCAxLjM1Ni0wLjg2MiAxLjgxNiAwLjY1IDAuMiAxLjMzNyAwLjMwOSAyLjA1MyAwLjMwOSAzLjgyOCAwIDYuOTMxLTMuMTAzIDYuOTMxLTYuOTMxIDAtMy44MzEtMy4xMDMtNi45MzQtNi45MzEtNi45MzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGludGVyZXN0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDEyIDAtOCAzLjU4Ny04IDhzMy41ODcgOCA4IDggOC0zLjU4OCA4LTgtMy41ODgtOC04LTh6TTggMTQuOTMxYy0wLjcxNiAwLTEuNDAzLTAuMTA5LTIuMDUzLTAuMzA5IDAuMjgxLTAuNDU5IDAuNzA2LTEuMjE2IDAuODYyLTEuODE2IDAuMDg0LTAuMzI1IDAuNDMxLTEuNjQ3IDAuNDMxLTEuNjQ3IDAuMjI1IDAuNDMxIDAuODg4IDAuNzk3IDEuNTg3IDAuNzk3IDIuMDkxIDAgMy41OTctMS45MjIgMy41OTctNC4zMTMgMC0yLjI5MS0xLjg2OS00LjAwMy00LjI3Mi00LjAwMy0yLjk5MSAwLTQuNTc4IDIuMDA5LTQuNTc4IDQuMTk0IDAgMS4wMTYgMC41NDEgMi4yODEgMS40MDYgMi42ODQgMC4xMzEgMC4wNjMgMC4yIDAuMDM0IDAuMjMxLTAuMDk0IDAuMDIyLTAuMDk3IDAuMTQxLTAuNTY2IDAuMTk0LTAuNzg3IDAuMDE2LTAuMDY5IDAuMDA5LTAuMTMxLTAuMDQ3LTAuMi0wLjI4Ny0wLjM0Ny0wLjUxNi0wLjk4OC0wLjUxNi0xLjU4MSAwLTEuNTI4IDEuMTU2LTMuMDA5IDMuMTI4LTMuMDA5IDEuNzAzIDAgMi44OTQgMS4xNTkgMi44OTQgMi44MTkgMCAxLjg3NS0wLjk0NyAzLjE3NS0yLjE3OCAzLjE3NS0wLjY4MSAwLTEuMTkxLTAuNTYzLTEuMDI1LTEuMjUzIDAuMTk3LTAuODI1IDAuNTc1LTEuNzEzIDAuNTc1LTIuMzA2IDAtMC41MzEtMC4yODQtMC45NzUtMC44NzgtMC45NzUtMC42OTcgMC0xLjI1MyAwLjcxOS0xLjI1MyAxLjY4NCAwIDAuNjEyIDAuMjA2IDEuMDI4IDAuMjA2IDEuMDI4cy0wLjY4OCAyLjkwMy0wLjgxMyAzLjQ0NGMtMC4xNDEgMC42LTAuMDg0IDEuNDQxLTAuMDI1IDEuOTg4LTIuNTc4LTEuMDA2LTQuNDA2LTMuNTEyLTQuNDA2LTYuNDUgMC0zLjgyOCAzLjEwMy02LjkzMSA2LjkzMS02LjkzMXM2LjkzMSAzLjEwMyA2LjkzMSA2LjkzMWMwIDMuODI4LTMuMTAzIDYuOTMxLTYuOTMxIDYuOTMxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVhpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAwaC0xM2MtMC44MjUgMC0xLjUgMC42NzUtMS41IDEuNXYxM2MwIDAuODI1IDAuNjc1IDEuNSAxLjUgMS41aDEzYzAuODI1IDAgMS41LTAuNjc1IDEuNS0xLjV2LTEzYzAtMC44MjUtMC42NzUtMS41LTEuNS0xLjV6TTQuODg0IDEwLjQwNmgtMS43MjhjLTAuMTAzIDAtMC4xODEtMC4wNDctMC4yMjUtMC4xMTktMC4wNDctMC4wNzUtMC4wNDctMC4xNjkgMC0wLjI2NmwxLjgzOC0zLjI0NGMwLjAwMy0wLjAwMyAwLjAwMy0wLjAwNiAwLTAuMDA5bC0xLjE2OS0yLjAyNWMtMC4wNDctMC4wOTctMC4wNTYtMC4xOTEtMC4wMDktMC4yNjYgMC4wNDQtMC4wNzIgMC4xMzEtMC4xMDkgMC4yMzctMC4xMDloMS43MzFjMC4yNjYgMCAwLjM5NyAwLjE3MiAwLjQ4MSAwLjMyNSAwIDAgMS4xODEgMi4wNjMgMS4xOTEgMi4wNzUtMC4wNjkgMC4xMjUtMS44NjkgMy4zMDMtMS44NjkgMy4zMDMtMC4wOTQgMC4xNjItMC4yMTkgMC4zMzQtMC40NzggMC4zMzR6TTEzLjA2OSAyLjM3OGwtMy44MzEgNi43NzVjLTAuMDAzIDAuMDAzLTAuMDAzIDAuMDA5IDAgMC4wMTJsMi40NDEgNC40NTZjMC4wNDcgMC4wOTcgMC4wNTAgMC4xOTQgMC4wMDMgMC4yNjktMC4wNDQgMC4wNzItMC4xMjUgMC4xMDktMC4yMzEgMC4xMDloLTEuNzI4Yy0wLjI2NiAwLTAuMzk3LTAuMTc1LTAuNDg0LTAuMzI4IDAgMC0yLjQ1My00LjUtMi40NTktNC41MTIgMC4xMjItMC4yMTYgMy44NS02LjgyOCAzLjg1LTYuODI4IDAuMDk0LTAuMTY2IDAuMjA2LTAuMzI4IDAuNDYzLTAuMzI4aDEuNzUzYzAuMTAzIDAgMC4xODggMC4wNDEgMC4yMzEgMC4xMDkgMC4wNDQgMC4wNzIgMC4wNDQgMC4xNjktMC4wMDYgMC4yNjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltWGluZzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi40MzEgMy4xNTljLTAuMTM4IDAtMC4yNTYgMC4wNTAtMC4zMTYgMC4xNDQtMC4wNTkgMC4xLTAuMDUwIDAuMjI1IDAuMDEzIDAuMzUzbDEuNTU5IDIuN2MwLjAwMyAwLjAwNiAwLjAwMyAwLjAwOSAwIDAuMDEzbC0yLjQ1IDQuMzMxYy0wLjA2MyAwLjEyOC0wLjA1OSAwLjI1NiAwIDAuMzUzIDAuMDU5IDAuMDk0IDAuMTYzIDAuMTU2IDAuMyAwLjE1NmgyLjMwNmMwLjM0NCAwIDAuNTEzLTAuMjM0IDAuNjI4LTAuNDQ3IDAgMCAyLjM5Ny00LjI0MSAyLjQ5MS00LjQwNi0wLjAwOS0wLjAxNi0xLjU4OC0yLjc2Ni0xLjU4OC0yLjc2Ni0wLjExNi0wLjIwMy0wLjI4Ny0wLjQzMS0wLjY0NC0wLjQzMWgtMi4zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjEyNSAwYy0wLjM0NCAwLTAuNDk0IDAuMjE2LTAuNjE5IDAuNDQxIDAgMC00Ljk3MiA4LjgxNi01LjEzNCA5LjEwNiAwLjAwOSAwLjAxNiAzLjI3OCA2LjAxNiAzLjI3OCA2LjAxNiAwLjExNiAwLjIwMyAwLjI5MSAwLjQ0MSAwLjY0NCAwLjQ0MWgyLjMwNmMwLjEzNyAwIDAuMjQ3LTAuMDUzIDAuMzA2LTAuMTQ3IDAuMDYzLTAuMSAwLjA1OS0wLjIyOC0wLjAwNi0wLjM1NmwtMy4yNS01Ljk0N2MtMC4wMDMtMC4wMDYtMC4wMDMtMC4wMDkgMC0wLjAxNmw1LjEwOS05LjAzNGMwLjA2My0wLjEyOCAwLjA2Ni0wLjI1NiAwLjAwNi0wLjM1Ni0wLjA1OS0wLjA5NC0wLjE2OS0wLjE0Ny0wLjMwNi0wLjE0N2gtMi4zMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltRmxhdHRyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzQzIDBjLTMuODAyIDAtNS43NDMgMi4xOS01Ljc0MyA2LjI3OXYwIDguNTc5bDMuNzI1LTMuNzI5di00LjM1OGMwLTEuNjk0IDAuNDQ5LTIuNzcyIDEuOTU1LTMuMDE0djBjMC41MjYtMC4xMDMgMS42MjEtMC4wNjcgMi4zMTctMC4wNjd2MCAyLjU4N2MwIDAuMDI0IDAuMDAzIDAuMDY2IDAuMDA5IDAuMDg3djBjMC4wMjkgMC4xMDUgMC4xMjQgMC4xODEgMC4yMzYgMC4xODJ2MGMwLjA2MyAwIDAuMTIzLTAuMDMzIDAuMTg0LTAuMDkzdjBsNi40NTUtNi40NTMtOS4xMzktMC4wMDF6TTEyLjI3NSA0Ljg3MXY0LjM1OGMwIDEuNjk0LTAuNDQ5IDIuNzcyLTEuOTU1IDMuMDE0djBjLTAuNTI2IDAuMTAzLTEuNjIxIDAuMDY3LTIuMzE3IDAuMDY3djAtMi41ODdjMC0wLjAyMy0wLjAwMy0wLjA2Ni0wLjAwOS0wLjA4N3YwYy0wLjAyOS0wLjEwNS0wLjEyNC0wLjE4Mi0wLjIzNi0wLjE4MnYwYy0wLjA2NC0wLTAuMTIzIDAuMDMzLTAuMTg0IDAuMDkzdjBsLTYuNDU1IDYuNDUzIDkuMTM5IDAuMDAxYzMuODAyIDAgNS43NDMtMi4xOSA1Ljc0My02LjI3OXYwLTguNTc5bC0zLjcyNSAzLjcyOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Gb3Vyc3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjMwNiAxLjQwOGMtMC4xODgtMC4yNTYtMC40ODgtMC40MDgtMC44MDYtMC40MDhoLTkuNWMtMC41NTIgMC0xIDAuNDQ4LTEgMXYxMmMwIDAuNDA0IDAuMjQ0IDAuNzY5IDAuNjE3IDAuOTI0IDAuMTI0IDAuMDUxIDAuMjU0IDAuMDc2IDAuMzgyIDAuMDc2IDAuMjYgMCAwLjUxNi0wLjEwMiAwLjcwNy0wLjI5M2wzLjcwNy0zLjcwN2gyLjU4NmMwLjQzNyAwIDAuODI0LTAuMjg0IDAuOTU0LTAuNzAybDIuNS04YzAuMDk1LTAuMzA0IDAuMDQwLTAuNjM0LTAuMTQ5LTAuODkxek0xMC41MTUgNWgtMy41MTVjLTAuNTUyIDAtMSAwLjQ0OC0xIDFzMC40NDggMSAxIDFoMi44OWwtMC42MjUgMmgtMi4yNjVjLTAuMjY1IDAtMC41MiAwLjEwNS0wLjcwNyAwLjI5M2wtMi4yOTMgMi4yOTN2LTguNTg2aDcuMTRsLTAuNjI1IDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltWWVscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUxNCAxMC4yMWMtMC4yNyAwLjI3Mi0wLjA0MiAwLjc2OC0wLjA0MiAwLjc2OGwyLjAzMyAzLjM5NGMwIDAgMC4zMzQgMC40NDcgMC42MjMgMC40NDcgMC4yOSAwIDAuNTc3LTAuMjM5IDAuNTc3LTAuMjM5bDEuNjA3LTIuMjk3YzAgMCAwLjE2Mi0wLjI5IDAuMTY2LTAuNTQ0IDAuMDA2LTAuMzYxLTAuNTM4LTAuNDYtMC41MzgtMC40NmwtMy44MDUtMS4yMjJjLTAgMC0wLjM3My0wLjA5OS0wLjYyMSAwLjE1MnpNOS4zMjEgOC41YzAuMTk1IDAuMzMgMC43MzIgMC4yMzQgMC43MzIgMC4yMzRsMy43OTYtMS4xMDljMCAwIDAuNTE3LTAuMjEgMC41OTEtMC40OTEgMC4wNzItMC4yODEtMC4wODUtMC42MTktMC4wODUtMC42MTlsLTEuODE0LTIuMTM3YzAgMC0wLjE1Ny0wLjI3LTAuNDgzLTAuMjk3LTAuMzYtMC4wMzEtMC41ODEgMC40MDUtMC41ODEgMC40MDVsLTIuMTQ1IDMuMzc1YzAgMC0wLjE5IDAuMzM2LTAuMDEwIDAuNjR6TTcuNTI3IDcuMTg0YzAuNDQ3LTAuMTEgMC41MTgtMC43NTkgMC41MTgtMC43NTlsLTAuMDMwLTUuNDA0YzAgMC0wLjA2Ny0wLjY2Ny0wLjM2Ny0wLjg0Ny0wLjQ3LTAuMjg1LTAuNjA5LTAuMTM2LTAuNzQ0LTAuMTE2bC0zLjE1MSAxLjE3MWMwIDAtMC4zMDkgMC4xMDItMC40NjkgMC4zNi0wLjIzIDAuMzY1IDAuMjMzIDAuODk5IDAuMjMzIDAuODk5bDMuMjc2IDQuNDY1YzAgMCAwLjMyMyAwLjMzNCAwLjczNSAwLjIzM3pNNi43NDkgOS4zNzFjMC4wMTEtMC40MTctMC41LTAuNjY3LTAuNS0wLjY2N2wtMy4zODctMS43MTFjMCAwLTAuNTAyLTAuMjA3LTAuNzQ2LTAuMDYzLTAuMTg3IDAuMTEtMC4zNTIgMC4zMS0wLjM2OCAwLjQ4NmwtMC4yMjEgMi43MTZjMCAwLTAuMDMzIDAuNDcxIDAuMDg5IDAuNjg1IDAuMTczIDAuMzA0IDAuNzQxIDAuMDkyIDAuNzQxIDAuMDkybDMuOTU1LTAuODc0YzAuMTU0LTAuMTAzIDAuNDIzLTAuMTEzIDAuNDM4LTAuNjY0ek03LjczMiAxMC44MzdjLTAuMzM5LTAuMTc0LTAuNzQ2IDAuMTg3LTAuNzQ2IDAuMTg3bC0yLjY0OCAyLjkxNWMwIDAtMC4zMyAwLjQ0Ni0wLjI0NiAwLjcyIDAuMDc5IDAuMjU3IDAuMjEgMC4zODQgMC4zOTYgMC40NzRsMi42NTkgMC44MzljMCAwIDAuMzIyIDAuMDY3IDAuNTY3LTAuMDA0IDAuMzQ3LTAuMSAwLjI4My0wLjY0MyAwLjI4My0wLjY0M2wwLjA2MC0zLjk0N2MtMCAwLTAuMDE0LTAuMzgtMC4zMjQtMC41NDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltUGF5cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUzMSA0LjgyMmMtMC43NDcgMy4zMTYtMy4wNTMgNS4wNjYtNi42ODggNS4wNjZoLTEuMjA5bC0wLjg0MSA1LjMzOGgtMS4wMTNsLTAuMDUzIDAuMzQ0Yy0wLjAzNCAwLjIyOCAwLjE0MSAwLjQzMSAwLjM2OSAwLjQzMWgyLjU4OGMwLjMwNiAwIDAuNTY2LTAuMjIyIDAuNjE2LTAuNTI1bDAuMDI1LTAuMTMxIDAuNDg4LTMuMDkxIDAuMDMxLTAuMTY5YzAuMDQ3LTAuMzAzIDAuMzA5LTAuNTI1IDAuNjE2LTAuNTI1aDAuMzg0YzIuNTA2IDAgNC40NjktMS4wMTkgNS4wNDQtMy45NjMgMC4yMTYtMS4xMTkgMC4xMzQtMi4wNjktMC4zNTYtMi43NzV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTg0IDEuMjA2Yy0wLjc0MS0wLjg0NC0yLjA4MS0xLjIwNi0zLjc5NC0xLjIwNmgtNC45NzJjLTAuMzUgMC0wLjY1IDAuMjUzLTAuNzAzIDAuNmwtMi4wNzIgMTMuMTMxYy0wLjA0MSAwLjI1OSAwLjE1OSAwLjQ5NCAwLjQyMiAwLjQ5NGgzLjA3MmwwLjc3Mi00Ljg5MS0wLjAyNSAwLjE1M2MwLjA1My0wLjM0NyAwLjM1LTAuNiAwLjctMC42aDEuNDU5YzIuODY2IDAgNS4xMDktMS4xNjIgNS43NjYtNC41MzEgMC4wMTktMC4xIDAuMDM3LTAuMTk3IDAuMDUwLTAuMjkxIDAuMTk0LTEuMjQ0IDAtMi4wOTQtMC42NzUtMi44NTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltQ2hyb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMDM2IDYuOTc3bC0yLjI5LTMuOTY2YzEuNDY2LTEuODM1IDMuNzIyLTMuMDEyIDYuMjU0LTMuMDEyIDIuOTI5IDAgNS40ODkgMS41NzQgNi44ODMgMy45MjJoLTYuNTI4Yy0wLjExNy0wLjAxMC0wLjIzNi0wLjAxNi0wLjM1Ni0wLjAxNi0xLjkwNCAwLTMuNTA5IDEuMzA3LTMuOTY0IDMuMDcxek0xMC44NjQgNS4wNzhoNC41ODVjMC4zNTUgMC45MDUgMC41NTEgMS44OTEgMC41NTEgMi45MjIgMCA0LjM4OC0zLjUzMyA3Ljk1LTcuOTA5IDcuOTk5bDMuMjcyLTUuNjY3YzAuNDYxLTAuNjYyIDAuNzMxLTEuNDY2IDAuNzMxLTIuMzMyIDAtMS4xNDMtMC40NzEtMi4xNzgtMS4yMy0yLjkyMnpNNS4wOTQgOGMwLTEuNjAzIDEuMzA0LTIuOTA2IDIuOTA2LTIuOTA2czIuOTA2IDEuMzA0IDIuOTA2IDIuOTA2YzAgMS42MDItMS4zMDQgMi45MDYtMi45MDYgMi45MDZzLTIuOTA2LTEuMzA0LTIuOTA2LTIuOTA2ek05LjA5NyAxMS45NDRsLTIuMjkgMy45NjdjLTMuODUyLTAuNTc2LTYuODA2LTMuODk5LTYuODA2LTcuOTExIDAtMS40MjUgMC4zNzMtMi43NjMgMS4wMjYtMy45MjJsMy4yNjYgNS42NTdjMC42NTQgMS4zOTIgMi4wNzAgMi4zNTkgMy43MDcgMi4zNTkgMC4zOCAwIDAuNzQ3LTAuMDUyIDEuMDk3LTAuMTQ5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpcmVmb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuOTc3IDUuMjIxbC0wLjE4NSAxLjE4OWMwIDAtMC4yNjUtMi4yMDEtMC41OS0zLjAyNC0wLjQ5OC0xLjI2MS0wLjcxOS0xLjI1MS0wLjcyLTEuMjQ5IDAuMzMzIDAuODQ3IDAuMjczIDEuMzAyIDAuMjczIDEuMzAycy0wLjU5MS0xLjYwOS0yLjE1Mi0yLjEyMWMtMS43MjktMC41NjctMi42NjUtMC40MTItMi43NzMtMC4zODMtMC4wMTYtMC0wLjAzMi0wLTAuMDQ3LTAgMC4wMTMgMC4wMDEgMC4wMjUgMC4wMDIgMC4wMzggMC4wMDMtMC4wMDEgMC0wLjAwMSAwLjAwMS0wLjAwMSAwLjAwMSAwLjAwNyAwLjAwOSAxLjkxMSAwLjMzMyAyLjI0OSAwLjc5NyAwIDAtMC44MDkgMC0xLjYxNCAwLjIzMi0wLjAzNiAwLjAxMCAyLjk2MSAwLjM3NCAzLjU3NCAzLjM3IDAgMC0wLjMyOS0wLjY4Ni0wLjczNS0wLjgwMiAwLjI2NyAwLjgxMyAwLjE5OSAyLjM1Ni0wLjA1NiAzLjEyMy0wLjAzMyAwLjA5OS0wLjA2Ni0wLjQyNi0wLjU2OC0wLjY1MiAwLjE2MSAxLjE1MS0wLjAxMCAyLjk3Ni0wLjgwOCAzLjQ3OS0wLjA2MiAwLjAzOSAwLjUtMS44MDIgMC4xMTMtMS4wOTAtMi4yMyAzLjQxOS00Ljg2NiAxLjU3OC02LjA1MSAwLjc2NyAwLjYwNyAwLjEzMiAxLjc2LTAuMDIxIDIuMjcxLTAuNCAwLjAwMS0wIDAuMDAxLTAuMDAxIDAuMDAyLTAuMDAxIDAuNTU0LTAuMzc5IDAuODgyLTAuNjU2IDEuMTc3LTAuNTlzMC40OTEtMC4yMyAwLjI2Mi0wLjQ5M2MtMC4yMjktMC4yNjMtMC43ODYtMC42MjUtMS41MzktMC40MjgtMC41MzEgMC4xMzktMS4xOSAwLjcyNy0yLjE5NCAwLjEzMi0wLjc3MS0wLjQ1Ny0wLjg0NC0wLjgzNy0wLjg1MS0xLjEgMC4wMTktMC4wOTMgMC4wNDMtMC4xOCAwLjA3Mi0wLjI2IDAuMDg5LTAuMjQ4IDAuMzU4LTAuMzIzIDAuNTA4LTAuMzgyIDAuMjU0IDAuMDQ0IDAuNDczIDAuMTIzIDAuNzAzIDAuMjQxIDAuMDAzLTAuMDc2IDAuMDA0LTAuMTc4LTAtMC4yOTMgMC4wMjItMC4wNDQgMC4wMDgtMC4xNzYtMC4wMjctMC4zMzctMC4wMjAtMC4xNjEtMC4wNTMtMC4zMjgtMC4xMDYtMC40OCAwLTAgMC0wIDAtMHMwLjAwMi0wLjAwMSAwLjAwMi0wLjAwMWMwLjAwMS0wLjAwMSAwLjAwMi0wLjAwMiAwLjAwMy0wLjAwM3MwLTAuMDAxIDAuMDAxLTAuMDAxYzAuMDAxLTAuMDAyIDAuMDAyLTAuMDA0IDAuMDAzLTAuMDA3IDAuMDE2LTAuMDcyIDAuMTg4LTAuMjExIDAuNDAyLTAuMzYxIDAuMTkyLTAuMTM0IDAuNDE3LTAuMjc3IDAuNTk1LTAuMzg3IDAuMTU3LTAuMDk4IDAuMjc3LTAuMTcgMC4zMDItMC4xODkgMC4wMTAtMC4wMDcgMC4wMjEtMC4wMTYgMC4wMzQtMC4wMjYgMC4wMDItMC4wMDIgMC4wMDUtMC4wMDQgMC4wMDctMC4wMDZzMC4wMDMtMC4wMDIgMC4wMDQtMC4wMDRjMC4wODUtMC4wNjcgMC4yMTEtMC4xOTQgMC4yMzctMC40NjIgMC0wLjAwMSAwLTAuMDAxIDAtMC4wMDIgMC4wMDEtMC4wMDggMC4wMDEtMC4wMTYgMC4wMDItMC4wMjQgMC0wLjAwNiAwLjAwMS0wLjAxMSAwLjAwMS0wLjAxNyAwLTAuMDA0IDAtMC4wMDkgMC4wMDEtMC4wMTMgMC0wLjAxMSAwLjAwMS0wLjAyMSAwLjAwMS0wLjAzMiAwLTAuMDAxIDAtMC4wMDEgMC0wLjAwMiAwLTAuMDI2LTAtMC4wNTMtMC4wMDItMC4wODEtMC4wMDEtMC4wMTYtMC4wMDItMC4wMzAtMC4wMDUtMC4wNDMtMC0wLjAwMS0wLTAuMDAxLTAtMC4wMDJzLTAuMDAxLTAuMDAzLTAuMDAxLTAuMDA0LTAuMDAxLTAuMDA1LTAuMDAyLTAuMDA3Yy0wLTAtMC0wLTAtMC4wMDEtMC4wMDEtMC4wMDMtMC4wMDItMC4wMDUtMC4wMDMtMC4wMDctMC0wLTAtMC0wLTAtMC4wMjctMC4wNjQtMC4xMy0wLjA4OC0wLjU1NC0wLjA5Ni0wLTAtMC4wMDEtMC0wLjAwMS0wdjBjLTAuMTczLTAuMDAzLTAuMzk5LTAuMDAzLTAuNjk1LTAuMDAyLTAuNTIgMC4wMDItMC44MDctMC41MDgtMC44OTgtMC43MDUgMC4xMjYtMC42OTUgMC40ODktMS4xOSAxLjA4NS0xLjUyNSAwLjAxMS0wLjAwNiAwLjAwOS0wLjAxMi0wLjAwNC0wLjAxNSAwLjExNy0wLjA3MS0xLjQxLTAuMDAyLTIuMTEyIDAuODkxLTAuNjIzLTAuMTU1LTEuMTY2LTAuMTQ0LTEuNjM1LTAuMDM1LTAuMDkwLTAuMDAzLTAuMjAyLTAuMDE0LTAuMzM1LTAuMDQxLTAuMzExLTAuMjgyLTAuNzU3LTAuODAzLTAuNzgxLTEuNDI1IDAgMC0wLjAwMSAwLjAwMS0wLjAwNCAwLjAwMy0wLTAuMDA2LTAuMDAxLTAuMDEyLTAuMDAxLTAuMDE4IDAgMC0wLjk0OSAwLjcyOS0wLjgwNyAyLjcxNy0wIDAuMDMyLTAuMDAxIDAuMDYyLTAuMDAyIDAuMDkyLTAuMjU3IDAuMzQ4LTAuMzg0IDAuNjQxLTAuMzk0IDAuNzA2LTAuMjI4IDAuNDYzLTAuNDU4IDEuMTYtMC42NDYgMi4yMTggMCAwIDAuMTMxLTAuNDE3IDAuMzk1LTAuODg5LTAuMTk0IDAuNTk0LTAuMzQ2IDEuNTE4LTAuMjU3IDIuOTA0IDAgMCAwLjAyNC0wLjMwNyAwLjEwNy0wLjc1IDAuMDY1IDAuODYgMC4zNTIgMS45MjEgMS4wNzYgMy4xNjkgMS4zOSAyLjM5NiAzLjUyNiAzLjYwNSA1Ljg4NyAzLjc5MSAwLjQxOSAwLjAzNSAwLjg0NSAwLjAzNSAxLjI3MiAwLjAwMyAwLjAzOS0wLjAwMyAwLjA3OS0wLjAwNiAwLjExOC0wLjAwOSAwLjQ4NC0wLjAzNCAwLjk3MS0wLjEwNyAxLjQ1Ny0wLjIyNCA2LjY0My0xLjYwNiA1LjkyMS05LjYyOCA1LjkyMS05LjYyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1JZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40NzIgOS44MjVoMy42ODhjMC4wMjgtMC4yNTYgMC4wNDAtMC41MTcgMC4wNDAtMC43ODQgMC0xLjI1My0wLjMzNi0yLjQyOS0wLjkyNC0zLjQ0MiAwLjYwNy0xLjYxNCAwLjU4Ni0yLjk4NC0wLjIyNy0zLjgwMy0wLjc3My0wLjc3LTIuODQ4LTAuNjQ1LTUuMTk0IDAuMzk0LTAuMTc0LTAuMDEzLTAuMzQ5LTAuMDIwLTAuNTI2LTAuMDIwLTMuMjIgMC01LjkyMSAyLjIxNi02LjY2NyA1LjIwMSAxLjAxMC0xLjI5MyAyLjA3Mi0yLjIzMSAzLjQ5Mi0yLjkxMy0wLjEyOSAwLjEyMS0wLjg4MiAwLjg3LTEuMDA5IDAuOTk2LTMuNzQzIDMuNzQyLTQuOTIzIDguNjMtMy42NTMgOS45IDAuOTY1IDAuOTY1IDIuNzE1IDAuODAyIDQuNzI1LTAuMTgyIDAuOTM0IDAuNDc2IDEuOTkyIDAuNzQ0IDMuMTEzIDAuNzQ0IDMuMDE4IDAgNS41NzUtMS45NDIgNi41MDEtNC42NDhoLTMuNzE3Yy0wLjUxMSAwLjk0My0xLjUxMiAxLjU4Ni0yLjY2IDEuNTg2cy0yLjE0OC0wLjY0Mi0yLjY2LTEuNTg2Yy0wLjIyNy0wLjQyNi0wLjM1OC0wLjkxNS0wLjM1OC0xLjQzMnYtMC4wMTFoNi4wMzV6TTUuNDQyIDguMDEzYzAuMDg1LTEuNTE3IDEuMzQ3LTIuNzI4IDIuODg3LTIuNzI4czIuODAyIDEuMjEgMi44ODcgMi43MjhoLTUuNzc0ek0xNC4wMTUgMi41NTljMC41MjQgMC41MjkgMC41MTEgMS41MDMgMC4wNjMgMi43MTktMC43NjgtMS4xNy0xLjg4My0yLjA5My0zLjItMi42MTkgMS40MDgtMC42MDQgMi41NTMtMC42ODQgMy4xMzctMC4xek0xLjQ2MSAxNS4xMTNjLTAuNjY4LTAuNjY5LTAuNDY3LTIuMDcyIDAuMzk0LTMuNzYzIDAuNTM2IDEuNTA0IDEuNTgxIDIuNzY3IDIuOTI3IDMuNTgxLTEuNDkxIDAuNjc3LTIuNzEyIDAuNzkyLTMuMzIxIDAuMTgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUVkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMC4yNDEgNy4xMDNjMC40NjktMy43IDIuOTk0LTcuMDU2IDcuNTE5LTcuMTAzIDIuNzMxIDAuMDUzIDQuOTc4IDEuMjkxIDYuMzE2IDMuNjUgMC42NzIgMS4yMzEgMC44ODEgMi41MjUgMC45MjUgMy45NTN2MS42NzhoLTEwLjA0MWMwLjA0NyA0LjE0MSA2LjA5NCA0IDguNjk3IDIuMTc1djMuMzcyYy0xLjUyNSAwLjkxNi00Ljk4NCAxLjczNC03LjY2MiAwLjY4MS0yLjI4MS0wLjg1Ni0zLjkwNi0zLjI0NC0zLjg5Ny01LjU0MS0wLjA3NS0yLjk3OCAxLjQ4MS00Ljk1IDMuODk3LTYuMDcyLTAuNTEzIDAuNjM0LTAuOTAzIDEuMzM0LTEuMTA2IDIuNTQ3aDUuNjY5YzAgMCAwLjMzMS0zLjM4OC0zLjIwOS0zLjM4OC0zLjMzOCAwLjExNi01Ljc0NCAyLjA1Ni03LjEwNiA0LjA0N3YwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbVNhZmFyaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLTQuNDE5IDAtOCAzLjU4MS04IDhzMy41ODEgOCA4IDggOC0zLjU4MSA4LTgtMy41ODEtOC04LTh6TTE0Ljk3NSA3LjM4OGwtMC4wMTYtMC4xNjZjMC4wMDMgMC4wNTYgMC4wMDkgMC4xMDkgMC4wMTYgMC4xNjZ6TTEzLjg4MSA0LjJsLTAuMTEzLTAuMTY5YzAuMDM3IDAuMDU2IDAuMDc1IDAuMTEyIDAuMTEzIDAuMTY5ek0xMy40NDcgMy42MDNsLTAuMDY5LTAuMDg0YzAuMDI1IDAuMDI4IDAuMDQ3IDAuMDU2IDAuMDY5IDAuMDg0ek0xMi40NzggMi42MTlsLTAuMDg0LTAuMDY5YzAuMDMxIDAuMDI1IDAuMDU2IDAuMDQ3IDAuMDg0IDAuMDY5ek0xMS45NjkgMi4yMzFsLTAuMTY5LTAuMTEyYzAuMDU2IDAuMDM4IDAuMTEzIDAuMDc1IDAuMTY5IDAuMTEyek04Ljc3OCAxLjA0NGwtMC4xNjktMC4wMTZjMC4wNTYgMC4wMDMgMC4xMTMgMC4wMDkgMC4xNjkgMC4wMTZ6TTcuMzg4IDEuMDI1bC0wLjE2OSAwLjAxNmMwLjA1Ni0wLjAwMyAwLjExMi0wLjAwOSAwLjE2OS0wLjAxNnpNNC4yIDIuMTE5bC0wLjE2OSAwLjExMmMwLjA1Ni0wLjAzOCAwLjExMi0wLjA3NSAwLjE2OS0wLjExMnpNMy42MDMgMi41NTNsLTAuMDgxIDAuMDY2YzAuMDI4LTAuMDIyIDAuMDUzLTAuMDQ0IDAuMDgxLTAuMDY2ek0yLjYxOSAzLjUyMmwtMC4wNjkgMC4wODRjMC4wMjUtMC4wMjggMC4wNDctMC4wNTYgMC4wNjktMC4wODR6TTIuMjMxIDQuMDMxbC0wLjExMiAwLjE2OWMwLjAzOC0wLjA1NiAwLjA3NS0wLjExMiAwLjExMi0wLjE2OXpNMS4wNDQgNy4yMjJsLTAuMDE2IDAuMTY5YzAuMDAzLTAuMDU2IDAuMDA5LTAuMTEyIDAuMDE2LTAuMTY5ek0xLjAyNSA4LjYxM2wwLjAxNiAwLjE2OWMtMC4wMDMtMC4wNTYtMC4wMDktMC4xMTMtMC4wMTYtMC4xNjl6TTIuMTE5IDExLjc5N2wwLjExMiAwLjE2OWMtMC4wMzgtMC4wNTMtMC4wNzUtMC4xMDktMC4xMTItMC4xNjl6TTIuMjUgMTEuOTk0bDEuMjQ3LTAuODM0LTAuMTM4LTAuMjA5LTEuMjQ3IDAuODM0Yy0wLjU2Ni0wLjg3OC0wLjkzOC0xLjg4Ny0xLjA2My0yLjk3NWwwLjc0Ny0wLjA3NS0wLjAyNS0wLjI1LTAuNzQ3IDAuMDc1Yy0wLjAxMi0wLjE0NC0wLjAxOS0wLjI5MS0wLjAyMi0wLjQzOGgxLjV2LTAuMjVoLTEuNWMwLjAwMy0wLjE0NyAwLjAwOS0wLjI5MSAwLjAyMi0wLjQzOGwwLjc0NyAwLjA3MiAwLjAyNS0wLjI1LTAuNzQ3LTAuMDcyYzAuMTI1LTEuMDg4IDAuNS0yLjA5NyAxLjA2Ni0yLjk3NWwxLjI0NyAwLjgzNCAwLjEzOC0wLjIwOS0xLjI1LTAuODI4YzAuMDg0LTAuMTE5IDAuMTY5LTAuMjM3IDAuMjU5LTAuMzVsMC41NzggMC40NzUgMC4xNTktMC4xOTQtMC41NzgtMC40NzVjMC4wOTQtMC4xMTIgMC4xOTQtMC4yMTkgMC4yOTQtMC4zMjVsMS4wNTkgMS4wNTkgMC4xNzgtMC4xNzgtMS4wNTktMS4wNTljMC4xMDYtMC4xIDAuMjEyLTAuMiAwLjMyMi0wLjI5NGwwLjQ3NSAwLjU4MSAwLjE5NC0wLjE1OS0wLjQ3NS0wLjU3OGMwLjExNi0wLjA5MSAwLjIzMS0wLjE3OCAwLjM1LTAuMjYzbDAuODM0IDEuMjQ3IDAuMjA5LTAuMTM4LTAuODM0LTEuMjQ3YzAuODc4LTAuNTY2IDEuODg4LTAuOTM4IDIuOTc1LTEuMDYzbDAuMDc1IDAuNzQ3IDAuMjUtMC4wMjUtMC4wNzUtMC43NDdjMC4xNDQtMC4wMTIgMC4yOTEtMC4wMTkgMC40MzgtMC4wMjJ2MS41aDAuMjV2LTEuNWMwLjE0NyAwLjAwMyAwLjI5MSAwLjAwOSAwLjQzOCAwLjAyMmwtMC4wNzIgMC43NDcgMC4yNSAwLjAyNSAwLjA3Mi0wLjc0N2MxLjA4OCAwLjEyNSAyLjA5NyAwLjUgMi45NzUgMS4wNjZsLTAuODM0IDEuMjQ3IDAuMjA5IDAuMTM4IDAuODM0LTEuMjQ3YzAuMTE5IDAuMDg0IDAuMjM4IDAuMTY5IDAuMzUgMC4yNTlsLTAuNDc1IDAuNTc4IDAuMTk0IDAuMTU5IDAuNDc1LTAuNTc4YzAuMTEzIDAuMDk0IDAuMjE5IDAuMTk0IDAuMzI1IDAuMjk0bC0wLjQgMC4zOTEtNS40NjkgMy42NDctMy42NDcgNS40NjktMC4zOTEgMC4zOTFjLTAuMS0wLjEwNi0wLjItMC4yMTMtMC4yOTQtMC4zMjJsMC41NzgtMC40NzUtMC4xNTktMC4xOTQtMC41NzggMC40NzVjLTAuMDkxLTAuMTEzLTAuMTc1LTAuMjMxLTAuMjU5LTAuMzV6TTIuNjE5IDEyLjQ3OGMtMC4wMjItMC4wMjgtMC4wNDQtMC4wNTMtMC4wNjYtMC4wODFsMC4wNjYgMC4wODF6TTMuNTIyIDEzLjM4MWwwLjA4MSAwLjA2NmMtMC4wMjgtMC4wMjItMC4wNTMtMC4wNDQtMC4wODEtMC4wNjZ6TTQuMDMxIDEzLjc2NmwwLjE2OSAwLjExM2MtMC4wNTYtMC4wMzQtMC4xMTItMC4wNzItMC4xNjktMC4xMTN6TTcuMjIyIDE0Ljk1NmwwLjE2OSAwLjAxNmMtMC4wNTYtMC4wMDMtMC4xMTItMC4wMDktMC4xNjktMC4wMTZ6TTguNjEzIDE0Ljk3NWwwLjE2Ni0wLjAxNmMtMC4wNTYgMC4wMDMtMC4xMDkgMC4wMDktMC4xNjYgMC4wMTZ6TTExLjggMTMuODgxbDAuMTY5LTAuMTEzYy0wLjA1NiAwLjAzNy0wLjExMyAwLjA3NS0wLjE2OSAwLjExM3pNMTIuMzk3IDEzLjQ0N2wwLjA4NC0wLjA2OWMtMC4wMjggMC4wMjUtMC4wNTYgMC4wNDctMC4wODQgMC4wNjl6TTEyLjk0NCAxMi45NTZsMC4wMTItMC4wMTJjLTAuMDAzIDAuMDAzLTAuMDA5IDAuMDA5LTAuMDEyIDAuMDEyek0xMy4zODEgMTIuNDc4bDAuMDY5LTAuMDg0Yy0wLjAyNSAwLjAyOC0wLjA0NyAwLjA1Ni0wLjA2OSAwLjA4NHpNMTMuNDkxIDEyLjM0NGwtMC41NzgtMC40NzUtMC4xNTkgMC4xOTQgMC41NzggMC40NzVjLTAuMDk0IDAuMTEzLTAuMTk0IDAuMjE5LTAuMjk0IDAuMzI1bC0xLjA1OS0xLjA1OS0wLjE3OCAwLjE3OCAxLjA1OSAxLjA1OWMtMC4xMDYgMC4xLTAuMjEzIDAuMi0wLjMyMiAwLjI5NGwtMC40NzUtMC41ODEtMC4xOTQgMC4xNTkgMC40NzUgMC41NzhjLTAuMTE2IDAuMDkxLTAuMjMxIDAuMTc4LTAuMzUgMC4yNjJsLTAuODM0LTEuMjQ3LTAuMjA5IDAuMTM3IDAuODM0IDEuMjQ3Yy0wLjg3OCAwLjU2Ni0xLjg4NyAwLjkzOC0yLjk3NSAxLjA2M2wtMC4wNzUtMC43NDctMC4yNSAwLjAyNSAwLjA3NSAwLjc0N2MtMC4xNDQgMC4wMTItMC4yOTEgMC4wMTktMC40MzggMC4wMjJ2LTEuNWgtMC4yNXYxLjVjLTAuMTQ3LTAuMDAzLTAuMjkxLTAuMDA5LTAuNDM4LTAuMDIybDAuMDcyLTAuNzQ3LTAuMjUtMC4wMjUtMC4wNzIgMC43NDdjLTEuMDg4LTAuMTI1LTIuMDk3LTAuNS0yLjk3NS0xLjA2NmwwLjgzNC0xLjI0Ny0wLjIwOS0wLjEzNy0wLjgyOCAxLjI0N2MtMC4xMTktMC4wODQtMC4yMzctMC4xNjktMC4zNS0wLjI1OWwwLjQ3NS0wLjU3OC0wLjE5NC0wLjE1OS0wLjQ3NSAwLjU3OGMtMC4xMTItMC4wOTQtMC4yMTktMC4xOTQtMC4zMjUtMC4yOTRsMC4zOTQtMC4zOTEgNS40NjktMy42NDcgMy42NDctNS40NjkgMC4zOTEtMC4zOTFjMC4xIDAuMTA2IDAuMiAwLjIxMiAwLjI5NCAwLjMyMmwtMC41NzggMC40NzUgMC4xNTkgMC4xOTQgMC41NzgtMC40NzVjMC4wOTEgMC4xMTYgMC4xNzggMC4yMzEgMC4yNjIgMC4zNWwtMS4yNDcgMC44MzQgMC4xMzcgMC4yMDkgMS4yNDctMC44MzRjMC41NjYgMC44NzggMC45MzggMS44ODggMS4wNjMgMi45NzVsLTAuNzQ3IDAuMDc1IDAuMDI1IDAuMjUgMC43NDctMC4wNzVjMC4wMTIgMC4xNDQgMC4wMTkgMC4yOTEgMC4wMjIgMC40MzhoLTEuNXYwLjI1aDEuNWMtMC4wMDMgMC4xNDctMC4wMDkgMC4yOTEtMC4wMjIgMC40MzhsLTAuNzQ3LTAuMDcyLTAuMDI1IDAuMjUgMC43NDcgMC4wNzJjLTAuMTI1IDEuMDg4LTAuNSAyLjA5Ny0xLjA2NiAyLjk3NWwtMS4yNDctMC44MzQtMC4xMzcgMC4yMDkgMS4yNDcgMC44MzRjLTAuMDgxIDAuMTEzLTAuMTY5IDAuMjI4LTAuMjU5IDAuMzQ0ek0xNC45NzUgOC42MDljLTAuMDA2IDAuMDU2LTAuMDA5IDAuMTEzLTAuMDE2IDAuMTY5bDAuMDE2LTAuMTY5ek0xMy44ODEgMTEuOGMtMC4wMzcgMC4wNTYtMC4wNzUgMC4xMTMtMC4xMTMgMC4xNjlsMC4xMTMtMC4xNjl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi43NTggMS4xMTFsMC4yOTMgMS40NzEtMC4yNDUgMC4wNDktMC4yOTMtMS40NzEgMC4yNDUtMC4wNDl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yNDUgMTQuODlsLTAuMjkzLTEuNDcxIDAuMjQ1LTAuMDQ5IDAuMjkzIDEuNDcxLTAuMjQ1IDAuMDQ5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMDg4IDEuMjY0bDAuMjE4IDAuNzE4LTAuMjM5IDAuMDczLTAuMjE4LTAuNzE4IDAuMjM5LTAuMDczelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuOTEzIDE0LjczM2wtMC4yMTgtMC43MTggMC4yMzktMC4wNzMgMC4yMTggMC43MTgtMC4yMzkgMC4wNzN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS40MzggMS40ODZsMC41NzQgMS4zODYtMC4yMzEgMC4wOTYtMC41NzQtMS4zODYgMC4yMzEtMC4wOTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNTY0IDE0LjUxNWwtMC41NzQtMS4zODYgMC4yMzEtMC4wOTYgMC41NzQgMS4zODYtMC4yMzEgMC4wOTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41ODggMS44ODVsMC4yMi0wLjExOCAwLjM1NCAwLjY2MS0wLjIyIDAuMTE4LTAuMzU0LTAuNjYxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQwOCAxNC4xMTRsLTAuMjIgMC4xMTgtMC4zNTQtMC42NjEgMC4yMi0wLjExOCAwLjM1NCAwLjY2MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjg4NCA0LjU5MWwwLjY2MiAwLjM1My0wLjExOCAwLjIyMS0wLjY2MS0wLjM1MyAwLjExOC0wLjIyMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4xMTMgMTEuNDA5bC0wLjY2Mi0wLjM1MyAwLjExOC0wLjIyIDAuNjYyIDAuMzUzLTAuMTE4IDAuMjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44NzIgNi4wMTBsLTEuMzg2LTAuNTc0IDAuMDk2LTAuMjMxIDEuMzg2IDAuNTc0LTAuMDk2IDAuMjMxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjEzIDkuOTg5bDEuMzg2IDAuNTc0LTAuMDk2IDAuMjMxLTEuMzg2LTAuNTc0IDAuMDk2LTAuMjMxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMzM3IDUuODVsMC43MTggMC4yMTgtMC4wNzMgMC4yMzktMC43MTgtMC4yMTggMC4wNzMtMC4yMzl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNjYxIDEwLjE1MWwtMC43MTgtMC4yMTggMC4wNzMtMC4yMzkgMC43MTggMC4yMTgtMC4wNzMgMC4yMzl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4xNTcgNi41MTJsMS40NzEgMC4yOTMtMC4wNDkgMC4yNDUtMS40NzEtMC4yOTMgMC4wNDktMC4yNDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuODQgOS40ODhsLTEuNDcxLTAuMjkzIDAuMDQ5LTAuMjQ1IDEuNDcxIDAuMjkzLTAuMDQ5IDAuMjQ1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMTA5IDkuMjQzbDEuNDcxLTAuMjkzIDAuMDQ5IDAuMjQ1LTEuNDcxIDAuMjkzLTAuMDQ5LTAuMjQ1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljg4OCA2Ljc1N2wtMS40NzEgMC4yOTMtMC4wNDktMC4yNDUgMS40NzEtMC4yOTMgMC4wNDkgMC4yNDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4yNjUgOS45MTRsMC43MTgtMC4yMTggMC4wNzMgMC4yMzktMC43MTggMC4yMTgtMC4wNzMtMC4yMzl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzM0IDYuMDg5bC0wLjcxOCAwLjIxOC0wLjA3My0wLjIzOSAwLjcxOC0wLjIxOCAwLjA3MyAwLjIzOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjU4IDEwLjc5NmwtMC4wOTYtMC4yMzEgMS4zODYtMC41NzQgMC4wOTYgMC4yMzEtMS4zODYgMC41NzR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNDE5IDUuMjA3bDAuMDk2IDAuMjMxLTEuMzg2IDAuNTc0LTAuMDk2LTAuMjMxIDEuMzg2LTAuNTc0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuODg4IDExLjQxbC0wLjExOC0wLjIyIDAuNjYxLTAuMzU0IDAuMTE4IDAuMjItMC42NjEgMC4zNTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMTE2IDQuNTlsMC4xMTggMC4yMi0wLjY2MSAwLjM1NC0wLjExOC0wLjIyIDAuNjYxLTAuMzU0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuODExIDE0LjIzMmwtMC4yMi0wLjExOCAwLjM1NC0wLjY2MSAwLjIyIDAuMTE4LTAuMzU0IDAuNjYxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjE4OSAxLjc2N2wwLjIyIDAuMTE4LTAuMzUzIDAuNjYxLTAuMjItMC4xMTggMC4zNTMtMC42NjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4yMDcgMTQuNDE5bDAuNTc0LTEuMzg2IDAuMjMxIDAuMDk2LTAuNTc0IDEuMzg2LTAuMjMxLTAuMDk2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjc5NSAxLjU4bC0wLjU3NCAxLjM4Ni0wLjIzMS0wLjA5NiAwLjU3NC0xLjM4NiAwLjIzMSAwLjA5NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjA4OCAxNC43MzVsLTAuMjM5LTAuMDczIDAuMjE4LTAuNzE4IDAuMjM5IDAuMDczLTAuMjE4IDAuNzE4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuOTEyIDEuMjY0bDAuMjM5IDAuMDczLTAuMjE4IDAuNzE4LTAuMjM5LTAuMDczIDAuMjE4LTAuNzE4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzU3IDE0Ljg4OGwtMC4yNDUtMC4wNDkgMC4yOTMtMS40NzEgMC4yNDUgMC4wNDktMC4yOTMgMS40NzF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yNDMgMS4xMDlsMC4yNDUgMC4wNDktMC4yOTMgMS40NzEtMC4yNDUtMC4wNDkgMC4yOTMtMS40NzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltT3BlcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOHYwIDBjMCAyLjM2OS0xLjAzMSA0LjUtMi42NjkgNS45NjMtMi4wNTMgMS0zLjk2NiAwLjMtNC41OTctMC4xMzcgMi4wMTYtMC40NDEgMy41MzctMi44NzggMy41MzctNS44MjVzLTEuNTIyLTUuMzg0LTMuNTM3LTUuODI4YzAuNjM0LTAuNDM4IDIuNTQ3LTEuMTM3IDQuNTk3LTAuMTM4IDEuNjM3IDEuNDY2IDIuNjY5IDMuNTk3IDIuNjY5IDUuOTY2djAgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjM2NiAzLjQ5MWMtMC44ODQgMS4wNDQtMS40NTYgMi41ODctMS40OTQgNC4zMjIgMCAwLjAwMyAwIDAuMzcyIDAgMC4zNzggMC4wMzggMS43MzEgMC42MTMgMy4yNzUgMS40OTcgNC4zMTkgMS4xNDcgMS40OTEgMi44NTMgMi40MzQgNC43NTkgMi40MzQgMS4xNzIgMCAyLjI2OS0wLjM1NiAzLjIwNi0wLjk3OC0xLjQxOSAxLjI2Ni0zLjI4NyAyLjAzNC01LjMzNCAyLjAzNC0wLjEyOCAwLTAuMjU2LTAuMDAzLTAuMzgxLTAuMDA5LTQuMjQxLTAuMi03LjYxOS0zLjctNy42MTktNy45OTEgMC00LjQxOSAzLjU4MS04IDgtOCAwLjAwOSAwIDAuMDE5IDAgMC4wMzEgMCAyLjAzNyAwLjAwNiAzLjg5NCAwLjc3NSA1LjMwMyAyLjAzOC0wLjkzOC0wLjYyMi0yLjAzNC0wLjk4MS0zLjIwNi0wLjk4MS0xLjkwNiAwLTMuNjEyIDAuOTQ0LTQuNzYzIDIuNDM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpbGVQZGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMTU2IDkuMjExYy0wLjIxMy0wLjIxLTAuNjg2LTAuMzIxLTEuNDA2LTAuMzMxLTAuNDg3LTAuMDA1LTEuMDczIDAuMDM4LTEuNjkgMC4xMjQtMC4yNzYtMC4xNTktMC41NjEtMC4zMzMtMC43ODQtMC41NDItMC42MDEtMC41NjEtMS4xMDMtMS4zNC0xLjQxNS0yLjE5NyAwLjAyMC0wLjA4MCAwLjAzOC0wLjE1IDAuMDU0LTAuMjIyIDAgMCAwLjMzOS0xLjkyMyAwLjI0OS0yLjU3My0wLjAxMi0wLjA4OS0wLjAyMC0wLjExNS0wLjA0NC0wLjE4NGwtMC4wMjktMC4wNzZjLTAuMDkyLTAuMjEyLTAuMjczLTAuNDM3LTAuNTU2LTAuNDI1bC0wLjE3MS0wLjAwNWMtMC4zMTYgMC0wLjU3MyAwLjE2MS0wLjY0IDAuNDAzLTAuMjA1IDAuNzU3IDAuMDA3IDEuODg5IDAuMzkgMy4zNTVsLTAuMDk4IDAuMjM5Yy0wLjI3NSAwLjY3LTAuNjE5IDEuMzQ1LTAuOTIzIDEuOTRsLTAuMDQwIDAuMDc3Yy0wLjMyIDAuNjI2LTAuNjEgMS4xNTctMC44NzMgMS42MDdsLTAuMjcxIDAuMTQ0Yy0wLjAyMCAwLjAxMC0wLjQ4NSAwLjI1Ny0wLjU5NCAwLjMyMy0wLjkyNiAwLjU1My0xLjUzOSAxLjE4LTEuNjQxIDEuNjc4LTAuMDMyIDAuMTU5LTAuMDA4IDAuMzYyIDAuMTU2IDAuNDU2bDAuMjYzIDAuMTMyYzAuMTE0IDAuMDU3IDAuMjM0IDAuMDg2IDAuMzU3IDAuMDg2IDAuNjU5IDAgMS40MjUtMC44MjEgMi40OC0yLjY2MiAxLjIxOC0wLjM5NiAyLjYwNC0wLjcyNiAzLjgxOS0wLjkwOCAwLjkyNiAwLjUyMSAyLjA2NSAwLjg4MyAyLjc4MyAwLjg4MyAwLjEyOCAwIDAuMjM4LTAuMDEyIDAuMzI3LTAuMDM2IDAuMTM4LTAuMDM3IDAuMjU0LTAuMTE1IDAuMzI1LTAuMjIyIDAuMTM5LTAuMjEgMC4xNjgtMC40OTkgMC4xMy0wLjc5NS0wLjAxMS0wLjA4OC0wLjA4MS0wLjE5Ni0wLjE1Ny0wLjI3MXpNMy4zMDcgMTIuNzJjMC4xMi0wLjMyOSAwLjU5Ni0wLjk3OSAxLjMtMS41NTYgMC4wNDQtMC4wMzYgMC4xNTMtMC4xMzggMC4yNTMtMC4yMzMtMC43MzYgMS4xNzQtMS4yMjkgMS42NDItMS41NTMgMS43ODh6TTcuNDc2IDMuMTJjMC4yMTIgMCAwLjMzMyAwLjUzNCAwLjM0MyAxLjAzNXMtMC4xMDcgMC44NTMtMC4yNTIgMS4xMTNjLTAuMTItMC4zODUtMC4xNzktMC45OTItMC4xNzktMS4zODkgMCAwLTAuMDA5LTAuNzU5IDAuMDg4LTAuNzU5djB6TTYuMjMyIDkuOTYxYzAuMTQ4LTAuMjY0IDAuMzAxLTAuNTQzIDAuNDU4LTAuODM5IDAuMzgzLTAuNzI0IDAuNjI0LTEuMjkgMC44MDQtMS43NTUgMC4zNTggMC42NTEgMC44MDQgMS4yMDUgMS4zMjggMS42NDkgMC4wNjUgMC4wNTUgMC4xMzUgMC4xMTEgMC4yMDcgMC4xNjYtMS4wNjYgMC4yMTEtMS45ODcgMC40NjctMi43OTggMC43Nzl2MHpNMTIuOTUyIDkuOTAxYy0wLjA2NSAwLjA0MS0wLjI1MSAwLjA2NC0wLjM3IDAuMDY0LTAuMzg2IDAtMC44NjQtMC4xNzYtMS41MzMtMC40NjQgMC4yNTctMC4wMTkgMC40OTMtMC4wMjkgMC43MDUtMC4wMjkgMC4zODcgMCAwLjUwMi0wLjAwMiAwLjg4IDAuMDk1czAuMzgzIDAuMjkzIDAuMzE4IDAuMzMzdjB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMzQxIDMuNTc5Yy0wLjM0Ny0wLjQ3My0wLjgzMS0xLjAyNy0xLjM2Mi0xLjU1OHMtMS4wODUtMS4wMTUtMS41NTgtMS4zNjJjLTAuODA2LTAuNTkxLTEuMTk3LTAuNjU5LTEuNDIxLTAuNjU5aC03Ljc1Yy0wLjY4OSAwLTEuMjUgMC41NjEtMS4yNSAxLjI1djEzLjVjMCAwLjY4OSAwLjU2MSAxLjI1IDEuMjUgMS4yNWgxMS41YzAuNjg5IDAgMS4yNS0wLjU2MSAxLjI1LTEuMjV2LTkuNzVjMC0wLjIyNC0wLjA2OC0wLjYxNS0wLjY1OS0xLjQyMXYwek0xMi4yNzEgMi43MjljMC40OCAwLjQ4IDAuODU2IDAuOTEyIDEuMTM0IDEuMjcxaC0yLjQwNnYtMi40MDVjMC4zNTkgMC4yNzggMC43OTIgMC42NTQgMS4yNzEgMS4xMzR2MHpNMTQgMTQuNzVjMCAwLjEzNi0wLjExNCAwLjI1LTAuMjUgMC4yNWgtMTEuNWMtMC4xMzUgMC0wLjI1LTAuMTE0LTAuMjUtMC4yNXYtMTMuNWMwLTAuMTM1IDAuMTE1LTAuMjUgMC4yNS0wLjI1IDAgMCA3Ljc0OS0wIDcuNzUgMHYzLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgzLjV2OS43NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxlT3Blbm9mZmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC43ODUgNy4zN2MtMC45NDgtMC40NDgtMi4xNTYtMC41MzgtMy4wNDQgMC4wOTUgMS4wODAtMC4xMDMgMi4yNjUgMC4wNzYgMy4wNDkgMC44OTMgMC43NS0wLjg2MSAxLjkzOS0xLjAyMiAzLjAxNS0wLjkzMy0wLjg5OC0wLjU5Ni0yLjA4Mi0wLjUxNi0zLjAxOS0wLjA1NHYwek0xMC40MDEgOS40NjVjLTEuMDY4LTAuMDI1LTIuMTAxIDAuMzYyLTIuOTg2IDAuOTM5LTEuNjc1LTAuNzEyLTMuNzkzLTAuNTgtNS4yMTkgMC42MDkgMC40MTEtMC4wMTUgMC44MTMtMC4xMTYgMS4yMi0wLjE2OSAxLjQ4Ny0wLjE0OCAzLjA3MiAwLjIyMSA0LjE5NiAxLjI0NyAwLjQ2NS0wLjY4IDEuMTE5LTEuMjIzIDEuODctMS41NjEgMC45ODYtMC40NzcgMi4wOTYtMC41MjYgMy4xNjktMC41MzktMC42NTEtMC40NDgtMS40NzgtMC41MzEtMi4yNDktMC41MjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMzQxIDMuNTc5Yy0wLjM0Ny0wLjQ3My0wLjgzMS0xLjAyNy0xLjM2Mi0xLjU1OHMtMS4wODUtMS4wMTUtMS41NTgtMS4zNjJjLTAuODA2LTAuNTkxLTEuMTk3LTAuNjU5LTEuNDIxLTAuNjU5aC03Ljc1Yy0wLjY4OSAwLTEuMjUgMC41NjEtMS4yNSAxLjI1djEzLjVjMCAwLjY4OSAwLjU2MSAxLjI1IDEuMjUgMS4yNWgxMS41YzAuNjg5IDAgMS4yNS0wLjU2MSAxLjI1LTEuMjV2LTkuNzVjMC0wLjIyNC0wLjA2OC0wLjYxNS0wLjY1OS0xLjQyMXYwek0xMi4yNzEgMi43MjljMC40OCAwLjQ4IDAuODU2IDAuOTEyIDEuMTM0IDEuMjcxaC0yLjQwNnYtMi40MDVjMC4zNTkgMC4yNzggMC43OTIgMC42NTQgMS4yNzEgMS4xMzR2MHpNMTQgMTQuNzVjMCAwLjEzNi0wLjExNCAwLjI1LTAuMjUgMC4yNWgtMTEuNWMtMC4xMzUgMC0wLjI1LTAuMTE0LTAuMjUtMC4yNXYtMTMuNWMwLTAuMTM1IDAuMTE1LTAuMjUgMC4yNS0wLjI1IDAgMCA3Ljc0OS0wIDcuNzUgMHYzLjVjMCAwLjI3NiAwLjIyNCAwLjUgMC41IDAuNWgzLjV2OS43NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1GaWxlV29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05Ljk5NyA3LjQzNmgwLjY5MWwtMC43OTcgMy41MzQtMS4wMzYtNC45NjloLTEuNjY1bC0xLjIwNSA0Ljk2OS0wLjkwMy00Ljk2OWgtMS43NDFsMS43NjcgNy45OThoMS43MDFsMS4xOTItNC43MyAxLjA2NiA0LjczaDEuNTY4bDIuMDI1LTcuOTk4aC0yLjY2M3YxLjQzNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4zNDEgMy41NzljLTAuMzQ3LTAuNDczLTAuODMxLTEuMDI3LTEuMzYyLTEuNTU4cy0xLjA4NS0xLjAxNS0xLjU1OC0xLjM2MmMtMC44MDYtMC41OTEtMS4xOTctMC42NTktMS40MjEtMC42NTloLTcuNzVjLTAuNjg5IDAtMS4yNSAwLjU2MS0xLjI1IDEuMjV2MTMuNWMwIDAuNjg5IDAuNTYxIDEuMjUgMS4yNSAxLjI1aDExLjVjMC42ODkgMCAxLjI1LTAuNTYxIDEuMjUtMS4yNXYtOS43NWMwLTAuMjI0LTAuMDY4LTAuNjE1LTAuNjU5LTEuNDIxdjB6TTEyLjI3MSAyLjcyOWMwLjQ4IDAuNDggMC44NTYgMC45MTIgMS4xMzQgMS4yNzFoLTIuNDA2di0yLjQwNWMwLjM1OSAwLjI3OCAwLjc5MiAwLjY1NCAxLjI3MSAxLjEzNHYwek0xNCAxNC43NWMwIDAuMTM2LTAuMTE0IDAuMjUtMC4yNSAwLjI1aC0xMS41Yy0wLjEzNSAwLTAuMjUtMC4xMTQtMC4yNS0wLjI1di0xMy41YzAtMC4xMzUgMC4xMTUtMC4yNSAwLjI1LTAuMjUgMCAwIDcuNzQ5LTAgNy43NSAwdjMuNWMwIDAuMjc2IDAuMjI0IDAuNSAwLjUgMC41aDMuNXY5Ljc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUZpbGVFeGNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS42MSA2aC0yLjExNGwtMS40OTYgMi4yMDQtMS40OTYtMi4yMDRoLTIuMTE0bDIuNTM0IDMuNzg4LTIuODU5IDQuMjEyaDMuOTM1di0xLjQzMWgtMC43ODRsMC43ODQtMS4xNzIgMS43NDEgMi42MDNoMi4xOTRsLTIuODU5LTQuMjEyIDIuNTM0LTMuNzg4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjM0MSAzLjU3OWMtMC4zNDctMC40NzMtMC44MzEtMS4wMjctMS4zNjItMS41NThzLTEuMDg1LTEuMDE1LTEuNTU4LTEuMzYyYy0wLjgwNi0wLjU5MS0xLjE5Ny0wLjY1OS0xLjQyMS0wLjY1OWgtNy43NWMtMC42ODkgMC0xLjI1IDAuNTYxLTEuMjUgMS4yNXYxMy41YzAgMC42ODkgMC41NjEgMS4yNSAxLjI1IDEuMjVoMTEuNWMwLjY4OSAwIDEuMjUtMC41NjEgMS4yNS0xLjI1di05Ljc1YzAtMC4yMjQtMC4wNjgtMC42MTUtMC42NTktMS40MjF2MHpNMTIuMjcxIDIuNzI5YzAuNDggMC40OCAwLjg1NiAwLjkxMiAxLjEzNCAxLjI3MWgtMi40MDZ2LTIuNDA1YzAuMzU5IDAuMjc4IDAuNzkyIDAuNjU0IDEuMjcxIDEuMTM0djB6TTE0IDE0Ljc1YzAgMC4xMzYtMC4xMTQgMC4yNS0wLjI1IDAuMjVoLTExLjVjLTAuMTM1IDAtMC4yNS0wLjExNC0wLjI1LTAuMjV2LTEzLjVjMC0wLjEzNSAwLjExNS0wLjI1IDAuMjUtMC4yNSAwIDAgNy43NDktMCA3Ljc1IDB2My41YzAgMC4yNzYgMC4yMjQgMC41IDAuNSAwLjVoMy41djkuNzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltTGlicmVvZmZpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4zNTQgMC4zNTRjLTAuMTk0LTAuMTk0LTAuNTc5LTAuMzU0LTAuODU0LTAuMzU0aC02Yy0wLjI3NSAwLTAuNSAwLjIyNS0wLjUgMC41djE1YzAgMC4yNzUgMC4yMjUgMC41IDAuNSAwLjVoMTJjMC4yNzUgMCAwLjUtMC4yMjUgMC41LTAuNXYtOWMwLTAuMjc1LTAuMTU5LTAuNjU5LTAuMzU0LTAuODU0bC01LjI5My01LjI5M3pNMTMgMTVoLTExdi0xNGg1LjQ4N2MwLjA0NiAwLjAwOCAwLjEzMSAwLjA0MyAwLjE2OSAwLjA3MGw1LjI3NCA1LjI3NGMwLjAyNyAwLjAzOCAwLjA2MiAwLjEyMyAwLjA3MCAwLjE2OXY4LjQ4N3pNMTMuNSAwaC0zYy0wLjI3NSAwLTAuMzQxIDAuMTU5LTAuMTQ2IDAuMzU0bDMuMjkzIDMuMjkzYzAuMTk0IDAuMTk0IDAuMzU0IDAuMTI5IDAuMzU0LTAuMTQ2di0zYzAtMC4yNzUtMC4yMjUtMC41LTAuNS0wLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltSHRtbEZpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMC45NDYgMGwxLjI4NCAxNC40IDUuNzYyIDEuNiA1Ljc3Ny0xLjYwMiAxLjI4Ni0xNC4zOThoLTE0LjEwOHpNMTIuMjYgNC43MWgtNi43NThsMC4xNjEgMS44MDloNi40MzdsLTAuNDg1IDUuNDIyLTMuNjIzIDEuMDA0LTMuNjE4LTEuMDA0LTAuMjQ3LTIuNzc0aDEuNzczbDAuMTI2IDEuNDEgMS45NjcgMC41MyAwLjAwNC0wLjAwMSAxLjk2OC0wLjUzMSAwLjIwNC0yLjI5aC02LjEyMWwtMC40NzYtNS4zNDFoOC44NDdsLTAuMTU4IDEuNzY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUh0bWxGaXZlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2ZXJzaW9uXCI6XCIxLjFcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wLjk0NiAwbDEuMjg0IDE0LjQgNS43NjIgMS42IDUuNzc3LTEuNjAyIDEuMjg2LTE0LjM5OGgtMTQuMTA4ek0xMi42NjggMTMuNDgybC00LjY0NCAxLjI4N3YwLjAwN2wtMC4wMTItMC4wMDQtMC4wMTIgMC4wMDR2LTAuMDA3bC00LjY0NC0xLjI4Ny0xLjA5OC0xMi4zMDRoMTEuNTA4bC0xLjA5OCAxMi4zMDR6TTEwLjE2OCA4LjI4NGwtMC4yMDQgMi4yOS0xLjk3MiAwLjUzMi0xLjk2Ny0wLjUzLTAuMTI2LTEuNDFoLTEuNzczbDAuMjQ3IDIuNzc0IDMuNjI2IDEuMDAzIDMuNjE1LTEuMDAzIDAuNDg1LTUuNDIyaC02LjQzN2wtMC4xNjEtMS44MDloNi43NThsMC4xNTgtMS43NjZoLTguODQ3bDAuNDc3IDUuMzQxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBJbUNzczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmVyc2lvblwiOlwiMS4xXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4zODEgMC43NThsLTAuNTM3IDIuNjg2aDEwLjkzNGwtMC4zNDIgMS43MzVoLTEwLjk0bC0wLjUzIDIuNjg2aDEwLjkzM2wtMC42MSAzLjA2My00LjQwNiAxLjQ2LTMuODE5LTEuNDYgMC4yNjEtMS4zMjloLTIuNjg2bC0wLjYzOSAzLjIyNCA2LjMxNiAyLjQxNyA3LjI4MS0yLjQxNyAyLjQwMy0xMi4wNjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltR2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY5OCA3LjI4N2wtNi45ODYtNi45ODZjLTAuNDAyLTAuNDAyLTEuMDU1LTAuNDAyLTEuNDU3IDBsLTEuNjIzIDEuNjIzIDEuMjIxIDEuMjIxYzAuMTk2LTAuMDk0IDAuNDE1LTAuMTQ2IDAuNjQ3LTAuMTQ2IDAuODI4IDAgMS41IDAuNjcyIDEuNSAxLjUgMCAwLjIzMi0wLjA1MyAwLjQ1MS0wLjE0NiAwLjY0N2wyIDJjMC4xOTYtMC4wOTQgMC40MTUtMC4xNDYgMC42NDctMC4xNDYgMC44MjggMCAxLjUgMC42NzIgMS41IDEuNXMtMC42NzIgMS41LTEuNSAxLjUtMS41LTAuNjcyLTEuNS0xLjVjMC0wLjIzMiAwLjA1My0wLjQ1MSAwLjE0Ni0wLjY0N2wtMi0yYy0wLjA0OCAwLjAyMy0wLjA5NyAwLjA0My0wLjE0NyAwLjA2MXY0LjE3MWMwLjU4MyAwLjIwNiAxIDAuNzYxIDEgMS40MTQgMCAwLjgyOC0wLjY3MiAxLjUtMS41IDEuNXMtMS41LTAuNjcyLTEuNS0xLjVjMC0wLjY1MyAwLjQxNy0xLjIwOCAxLTEuNDE0di00LjE3MWMtMC41ODMtMC4yMDYtMS0wLjc2MS0xLTEuNDE0IDAtMC4yMzIgMC4wNTMtMC40NTEgMC4xNDYtMC42NDdsLTEuMjIxLTEuMjIxLTQuNjIzIDQuNjIzYy0wLjQwMiAwLjQwMy0wLjQwMiAxLjA1NSAwIDEuNDU4bDYuOTg2IDYuOTg2YzAuNDAyIDAuNDAyIDEuMDU0IDAuNDAyIDEuNDU3IDBsNi45NTMtNi45NTNjMC40MDItMC40MDMgMC40MDItMS4wNTUtMC0xLjQ1OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1Db2RlcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljc3NyA1Ljc1MWwtNy00LjY2N2MtMC4xNjgtMC4xMTItMC4zODctMC4xMTItMC41NTUgMGwtNyA0LjY2N2MtMC4xMzkgMC4wOTMtMC4yMjMgMC4yNDktMC4yMjMgMC40MTZ2NC42NjdjMCAwLjE2NyAwLjA4NCAwLjMyMyAwLjIyMyAwLjQxNmw3IDQuNjY3YzAuMDg0IDAuMDU2IDAuMTgxIDAuMDg0IDAuMjc3IDAuMDg0czAuMTkzLTAuMDI4IDAuMjc3LTAuMDg0bDctNC42NjdjMC4xMzktMC4wOTMgMC4yMjMtMC4yNDkgMC4yMjMtMC40MTZ2LTQuNjY3YzAtMC4xNjctMC4wODQtMC4zMjMtMC4yMjMtMC40MTZ6TTcuNSAxMC4yMzJsLTIuNTk5LTEuNzMyIDIuNTk5LTEuNzMyIDIuNTk5IDEuNzMyLTIuNTk5IDEuNzMyek04IDUuODk5di0zLjQ2NWw1LjU5OSAzLjczMi0yLjU5OSAxLjczMi0zLTJ6TTcgNS44OTlsLTMgMi0yLjU5OS0xLjczMiA1LjU5OS0zLjczMnYzLjQ2NXpNMy4wOTkgOC41bC0yLjA5OSAxLjM5OXYtMi43OThsMi4wOTkgMS4zOTl6TTQgOS4xMDFsMyAydjMuNDY1bC01LjU5OS0zLjczMiAyLjU5OS0xLjczMnpNOCAxMS4xMDFsMy0yIDIuNTk5IDEuNzMyLTUuNTk5IDMuNzMydi0zLjQ2NXpNMTEuOTAxIDguNWwyLjA5OS0xLjM5OXYyLjc5OGwtMi4wOTktMS4zOTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEltU3ZnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgNi41Yy0wLjQ0NCAwLTAuODQzIDAuMTkzLTEuMTE4IDAuNWgtMi45NjhsMi4wOTktMi4wOTljMC40MTEgMC4wMjMgMC44My0wLjEyMyAxLjE0NC0wLjQzNyAwLjU4Ni0wLjU4NiAwLjU4Ni0xLjUzNiAwLTIuMTIxcy0xLjUzNi0wLjU4Ni0yLjEyMSAwYy0wLjMxNCAwLjMxNC0wLjQ2IDAuNzMzLTAuNDM3IDEuMTQ0bC0yLjA5OSAyLjA5OXYtMi45NjhjMC4zMDctMC4yNzUgMC41LTAuNjc0IDAuNS0xLjExOCAwLTAuODI4LTAuNjcyLTEuNS0xLjUtMS41cy0xLjUgMC42NzItMS41IDEuNWMwIDAuNDQ0IDAuMTkzIDAuODQzIDAuNSAxLjExOHYyLjk2OGwtMi4wOTktMi4wOTljMC4wMjMtMC40MTEtMC4xMjMtMC44My0wLjQzNy0xLjE0NC0wLjU4Ni0wLjU4Ni0xLjUzNi0wLjU4Ni0yLjEyMSAwcy0wLjU4NiAxLjUzNiAwIDIuMTIxYzAuMzE0IDAuMzE0IDAuNzMzIDAuNDYgMS4xNDQgMC40MzdsMi4wOTkgMi4wOTloLTIuOTY4Yy0wLjI3NS0wLjMwNy0wLjY3NC0wLjUtMS4xMTgtMC41LTAuODI4IDAtMS41IDAuNjcyLTEuNSAxLjVzMC42NzIgMS41IDEuNSAxLjVjMC40NDQgMCAwLjg0My0wLjE5MyAxLjExOC0wLjVoMi45NjhsLTIuMDk5IDIuMDk5Yy0wLjQxMS0wLjAyMy0wLjgzIDAuMTIzLTEuMTQ0IDAuNDM3LTAuNTg2IDAuNTg2LTAuNTg2IDEuNTM2IDAgMi4xMjFzMS41MzYgMC41ODYgMi4xMjEgMGMwLjMxNC0wLjMxNCAwLjQ2LTAuNzMzIDAuNDM3LTEuMTQ0bDIuMDk5LTIuMDk5djIuOTY4Yy0wLjMwNyAwLjI3NS0wLjUgMC42NzQtMC41IDEuMTE4IDAgMC44MjggMC42NzIgMS41IDEuNSAxLjVzMS41LTAuNjcyIDEuNS0xLjVjMC0wLjQ0NC0wLjE5My0wLjg0My0wLjUtMS4xMTh2LTIuOTY4bDIuMDk5IDIuMDk5Yy0wLjAyMyAwLjQxMSAwLjEyMyAwLjgzIDAuNDM3IDEuMTQ0IDAuNTg2IDAuNTg2IDEuNTM2IDAuNTg2IDIuMTIxIDBzMC41ODYtMS41MzYgMC0yLjEyMWMtMC4zMTQtMC4zMTQtMC43MzMtMC40Ni0xLjE0NC0wLjQzN2wtMi4wOTktMi4wOTloMi45NjhjMC4yNzUgMC4zMDcgMC42NzQgMC41IDEuMTE4IDAuNSAwLjgyOCAwIDEuNS0wLjY3MiAxLjUtMS41cy0wLjY3Mi0xLjUtMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSW1JY29Nb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZlcnNpb25cIjpcIjEuMVwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMDU1IDhjMC0xLjAyMiAwLjgyOS0xLjg1MSAxLjg1MS0xLjg1MXMxLjg1MSAwLjgyOSAxLjg1MSAxLjg1MWMwIDEuMDIyLTAuODI5IDEuODUxLTEuODUxIDEuODUxcy0xLjg1MS0wLjgyOS0xLjg1MS0xLjg1MXpNOCAwYy00LjQxOCAwLTggMy41ODItOCA4czMuNTgyIDggOCA4YzQuNDE4IDAgOC0zLjU4MiA4LThzLTMuNTgyLTgtOC04ek01LjkyOCAxNC45ODljLTIuNDA2LTEuNC00LjAyMy00LjAwNS00LjAyMy02Ljk4OXMxLjYxNy01LjU4OSA0LjAyMy02Ljk4OWMyLjQwNiAxLjM5OSA0LjAyNSA0LjAwNSA0LjAyNSA2Ljk4OXMtMS42MTggNS41ODktNC4wMjUgNi45ODl6XCJ9fV19KShwcm9wcyk7XG59O1xuIiwiLyoqIEEgdHlwZSBkZWZpbml0aW9uIGZvciBhbiBFbnZpcm9ubWVudC4gKi9cclxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnQgPSB7XHJcbiAgICAvKiogU3RyaW5nIHdpdGhpbiB0aGUgaG9zdG5hbWUgKi9cclxuICAgIGhvc3ROYW1lU2VnbWVudDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBVc2VyLWZhY2luZyBsYWJlbCBvZiB0aGUgZW52aXJvbm1lbnQgKi9cclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbn07XHJcblxyXG4vKiogRWFjaCBlbnZpcm9ubWVudCwgYW5kIHRoZSBob3N0bmFtZSBzZWdtZW50IGZvciB3aGljaCB0byBzZWFyY2ggKi9cclxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50czogRW52aXJvbm1lbnRbXSA9IFtcclxuICAgIHsgaG9zdE5hbWVTZWdtZW50OiBcImxvY2FsaG9zdFwiLCBsYWJlbDogXCJMb2NhbGhvc3RcIiB9LFxyXG4gICAgeyBob3N0TmFtZVNlZ21lbnQ6IFwiMTI3XCIsIGxhYmVsOiBcIkxvY2FsaG9zdFwiIH0sXHJcbiAgICB7IGhvc3ROYW1lU2VnbWVudDogXCJkZXZcIiwgbGFiZWw6IFwiRGV2ZWxvcG1lbnRcIiB9LFxyXG4gICAgeyBob3N0TmFtZVNlZ21lbnQ6IFwic3RnXCIsIGxhYmVsOiBcIlN0YWdpbmdcIiB9LFxyXG4gICAgeyBob3N0TmFtZVNlZ21lbnQ6IFwidWF0XCIsIGxhYmVsOiBcIlVBVFwiIH0sXHJcbiAgICB7IGhvc3ROYW1lU2VnbWVudDogXCJ0ZW1wXCIsIGxhYmVsOiBcIlRlbXBcIiB9LFxyXG5dO1xyXG5cclxuLyoqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIFByb2R1Y3Rpb24gKi9cclxuZXhwb3J0IGNvbnN0IGlzUHJvZHVjdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gXCJwb3J0YWwuYmlzdGVjaC5jby51a1wiO1xyXG5cclxuLyoqIFJlbmRlcnMgYSBjb2xvdXJlZCBiYW5uZXIgZm9yIG5vbi1wcm9kdWN0aW9uIGVudmlyb25tZW50cyAqL1xyXG5leHBvcnQgY29uc3QgRW52aXJvbm1lbnRCYW5uZXIgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IGVudmlyb25tZW50cy5maW5kKCh4KSA9PiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXMoeC5ob3N0TmFtZVNlZ21lbnQpKTtcclxuXHJcbiAgICBpZiAoIWVudmlyb25tZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVudmlyb25tZW50LWJhbm5lclwiIGRhdGEtZW52aXJvbm1lbnQtaWQ9e2Vudmlyb25tZW50Lmhvc3ROYW1lU2VnbWVudH0+XHJcbiAgICAgICAgICAgIHtlbnZpcm9ubWVudC5sYWJlbH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlQmFyLCBNZXNzYWdlQmFyQm9keSwgTWVzc2FnZUJhckdyb3VwIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IFN1Ym1pc3Npb25TdGF0ZSB9IGZyb20gXCIuLi9UeXBlcy9TdWJtaXNzaW9uU3RhdGVcIjtcclxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgSW1TcGlubmVyMiB9IGZyb20gXCJyZWFjdC1pY29ucy9pbVwiO1xyXG5pbXBvcnQgeyBpc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9FbnZpcm9ubWVudEJhbm5lclwiO1xyXG5cclxuLyoqIFNob3dzIHRoZSBsYXRlc3Qgc3VjY2VzcyBhbmQgZXJyb3Igbm90aWZpY2F0aW9ucyAqL1xyXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uczogUmVhY3QuRkMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBsYXRlc3RFcnJvcnMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmxhdGVzdEVycm9ycyk7XHJcbiAgICBjb25zdCBub3RpZmljYXRpb25zID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5ub3RpZmljYXRpb25zKTtcclxuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50UGFnZSk7XHJcbiAgICBjb25zdCBkaXJ0eUJhbm5lclNldHRpbmdzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5kaXJ0eUJhbm5lclNldHRpbmdzKTtcclxuICAgIGNvbnN0IFtzdWJtaXNzaW9uU3RhdGUsIHNldFN1Ym1pc3Npb25TdGF0ZV0gPSB1c2VTdGF0ZTxTdWJtaXNzaW9uU3RhdGU+KFxyXG4gICAgICAgIGRpcnR5QmFubmVyU2V0dGluZ3M/LnR5cGUgPT09IFwic2hvd0FscmVhZHlTYXZpbmdcIlxyXG4gICAgICAgICAgICA/IGRpcnR5QmFubmVyU2V0dGluZ3MuaW5pdGlhbFN1Ym1pc3Npb25TdGF0dXNcclxuICAgICAgICAgICAgOiB7IHN0YXRlOiBcImlkbGVcIiB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGFwcGxpY2FibGVOb3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKG5vdGlmaWNhdGlvbikgPT5cclxuICAgICAgICAgICAgbmV3IERhdGUoKSA8IG5vdGlmaWNhdGlvbi5kaXNwbGF5VW50aWwgJiZcclxuICAgICAgICAgICAgbm90aWZpY2F0aW9uLmRpc3BsYXllZE9uUmVsYXRpdmVVcmwgPT09IGAke2N1cnJlbnRQYWdlLnBhdGh9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofWBcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgU0hPV19NQVhfRVJST1JTID0gMjtcclxuICAgIGNvbnN0IFNIT1dfTUFYX05PVElGSUNBVElPTlMgPSAyO1xyXG5cclxuICAgIGNvbnN0IGludmFsaWRTdWJtaXNzaW9uUHJlcmVxdWlzaXRlcyA9IGRpcnR5QmFubmVyU2V0dGluZ3M/LnN1Ym1pc3Npb25QcmVyZXF1aXNpdGVzPy5maWx0ZXIoXHJcbiAgICAgICAgKHByZXJlcXVpc2l0ZSkgPT4gIXByZXJlcXVpc2l0ZS5pc1ZhbGlkKClcclxuICAgICk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIG1lc3NhZ2VzIHRvIGRpc3BsYXkgaW4gdGhlIGJhbm5lci5cclxuICAgICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIG1lc3NhZ2VzIHRvIGRpc3BsYXkgaW4gdGhlIGJhbm5lci5cclxuICAgICAqL1xyXG4gICAgY29uc3QgbWVzc2FnZUxpc3QgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICAvLyBNZXNzYWdlcyBmb3IgYW55IGVycm9ycy5cclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID1cclxuICAgICAgICAgICAgbGF0ZXN0RXJyb3JzLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICAgID8gbGF0ZXN0RXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChfLCBpKSA9PiBpIDwgU0hPV19NQVhfRVJST1JTKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcCgoZXJyb3IsIGkpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVzc2FnZUJhciBpbnRlbnQ9XCJlcnJvclwiIGtleT17aX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZXNzYWdlQmFyQm9keSBzdHlsZT17eyBvdmVyZmxvdzogXCJoaWRkZW5cIiwgdGV4dE92ZXJmbG93OiBcImVsbGlwc2lzXCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3IubWVzc2FnZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NZXNzYWdlQmFyQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lc3NhZ2VCYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICAgICAgOiBbXTtcclxuXHJcbiAgICAgICAgLy8gTWVzc2FnZXMgZm9yIGFueSBhcHBsaWNhYmxlIG5vdGlmaWNhdGlvbnMgZS5nLiBzdWNjZXNzLlxyXG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGVOb3RpZmljYXRpb25NZXNzYWdlcyA9XHJcbiAgICAgICAgICAgIGFwcGxpY2FibGVOb3RpZmljYXRpb25zLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICAgID8gYXBwbGljYWJsZU5vdGlmaWNhdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKF8sIGkpID0+IGkgPCBTSE9XX01BWF9OT1RJRklDQVRJT05TKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcCgobm90aWZpY2F0aW9uLCBpKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lc3NhZ2VCYXIga2V5PXtpfSBpbnRlbnQ9XCJzdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZXNzYWdlQmFyQm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG92ZXJmbG93OiBcImhpZGRlblwiLCB0ZXh0T3ZlcmZsb3c6IFwiZWxsaXBzaXNcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bm90aWZpY2F0aW9uLm1lc3NhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGlzbWlzcy1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJSZW1vdmVOb3RpZmljYXRpb25cIiwgaWQ6IG5vdGlmaWNhdGlvbi5pZCB9KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NZXNzYWdlQmFyQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lc3NhZ2VCYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICAgICAgOiBbXTtcclxuXHJcbiAgICAgICAgLy8gTWVzc2FnZXMgZm9yIHRoZSBkaXJ0eSBjaGFuZ2VzIG9uIHRoZSBwYWdlLlxyXG4gICAgICAgIGNvbnN0IGRpcnR5Q2hhbmdlc01lc3NhZ2UgPSBkaXJ0eUJhbm5lclNldHRpbmdzID8gKFxyXG4gICAgICAgICAgICA8TWVzc2FnZUJhciBrZXk9ezF9IGludGVudD1cIndhcm5pbmdcIj5cclxuICAgICAgICAgICAgICAgIDxNZXNzYWdlQmFyQm9keSBzdHlsZT17eyBvdmVyZmxvdzogXCJoaWRkZW5cIiwgdGV4dE92ZXJmbG93OiBcImVsbGlwc2lzXCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgVGhlcmUgYXJlIHVuc2F2ZWQgY2hhbmdlcy5cclxuICAgICAgICAgICAgICAgICAgICB7IWludmFsaWRTdWJtaXNzaW9uUHJlcmVxdWlzaXRlcz8ubGVuZ3RoID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiaWRsZVwiICYmIGRpcnR5QmFubmVyU2V0dGluZ3MudHlwZSA9PT0gXCJzaG93U2F2ZUJ1dHRvblwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJzdWJtaXR0aW5nXCIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGRpcnR5QmFubmVyU2V0dGluZ3Muc2F2ZUZ1bmN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIlNldERpcnR5QmFubmVyU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlydHlCYW5uZXJTZXR0aW5nczogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiQWRkTGF0ZXN0RXJyb3JcIiwgZXJyb3I6IGVycm9yIGFzIEVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJpZGxlXCIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGljayBoZXJlIHRvIHNhdmUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbVNwaW5uZXIyIGNsYXNzTmFtZT1cInNwaW5cIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiBcIjFlbVwiIH19IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImludmFsaWQtcHJlcmVxdWlzaXRlc1wiIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IFwiMWVtXCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW52YWxpZFN1Ym1pc3Npb25QcmVyZXF1aXNpdGVzWzBdLmN1c3RvbWVyTWVzc2FnZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L01lc3NhZ2VCYXJCb2R5PlxyXG4gICAgICAgICAgICA8L01lc3NhZ2VCYXI+XHJcbiAgICAgICAgKSA6IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgcmV0dXJuIFsuLi5lcnJvck1lc3NhZ2VzLCBkaXJ0eUNoYW5nZXNNZXNzYWdlLCAuLi5hcHBsaWNhYmxlTm90aWZpY2F0aW9uTWVzc2FnZXNdLmZpbHRlcihcclxuICAgICAgICAgICAgKG1lc3NhZ2VCYXIpID0+IG1lc3NhZ2VCYXJcclxuICAgICAgICApIGFzIEpTWC5FbGVtZW50W107XHJcbiAgICB9LCBbZGlydHlCYW5uZXJTZXR0aW5ncywgbGF0ZXN0RXJyb3JzLmxlbmd0aCwgYXBwbGljYWJsZU5vdGlmaWNhdGlvbnMubGVuZ3RoLCBzdWJtaXNzaW9uU3RhdGVdKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgZGF0YS1oYXMtYmFubmVyPXshaXNQcm9kdWN0aW9ufT5cclxuICAgICAgICAgICAgPE1lc3NhZ2VCYXJHcm91cCBhbmltYXRlPVwiYm90aFwiPnttZXNzYWdlTGlzdH08L01lc3NhZ2VCYXJHcm91cD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSB3aWR0aCBvZiBhIGdpdmVuIEVsZW1lbnQuXHJcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBFbGVtZW50LlxyXG4gKiBAcmV0dXJucyBUaGUgd2lkdGggb2YgdGhlIEVsZW1lbnQuXHJcbiAqL1xyXG5jb25zdCBnZXRXaW5kb3dXaWR0aCA9ICgpOiBudW1iZXIgPT4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIHdpZHRoIG9mIGFuIEVsZW1lbnQgYW5kIHVwZGF0ZXMgaXQgb24gd2luZG93IHJlc2l6ZS5cclxuICogQHBhcmFtIGVsZW1lbnQgVGhlIEVsZW1lbnQgdG8gZ2V0IHRoZSB3aWR0aCBvZi5cclxuICogQHJldHVybnMgVGhlIHdpZHRoIG9mIHRoZSBFbGVtZW50LlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHVzZVdpbmRvd1dpZHRoID0gKCkgPT4ge1xyXG4gICAgY29uc3QgW3dpbmRvd1dpZHRoLCBzZXR3aW5kb3dXaWR0aF0gPSB1c2VTdGF0ZShnZXRXaW5kb3dXaWR0aCgpKTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZVJlc2l6ZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgc2V0d2luZG93V2lkdGgoZ2V0V2luZG93V2lkdGgoKSk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgaGFuZGxlUmVzaXplKTtcclxuXHJcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIGhhbmRsZVJlc2l6ZSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgcmV0dXJuIHdpbmRvd1dpZHRoO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBJbVNwaW5uZXIyIH0gZnJvbSBcInJlYWN0LWljb25zL2ltXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTG9hZGluZ1NwaW5uZXIgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImxvYWRpbmctc3Bpbm5lclwiPlxyXG4gICAgICAgICAgICA8SW1TcGlubmVyMiBjbGFzc05hbWU9XCJzcGluXCIgLz4gTG9hZGluZ1xyXG4gICAgICAgIDwvcD5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gXCIuLi9Db21wb25lbnRzL0JyZWFkY3J1bWJcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuLi9Db21wb25lbnRzL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9ucyB9IGZyb20gXCIuLi9Db21wb25lbnRzL05vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgaXNQcm9kdWN0aW9uIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvRW52aXJvbm1lbnRCYW5uZXJcIjtcclxuaW1wb3J0IHsgdXNlV2luZG93V2lkdGggfSBmcm9tIFwiLi4vSG9va3MvdXNlV2luZG93V2lkdGhcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5cclxuLyoqIEEgYmFzZSBwYWdlIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIHBhZ2UgY29udGVudCB3aXRoaW4gKi9cclxuZXhwb3J0IGNvbnN0IEJhc2VQYWdlID0gKHByb3BzOiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7IHRpdGxlOiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgVEFCTEVUX1dJRFRIID0gMTAyNTtcclxuICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gdXNlV2luZG93V2lkdGgoKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zIC8+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBhZ2UtY29udGVudCBpcy1tb2JpbGUtd2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS1pcy1wcm9kdWN0aW9uPXtpc1Byb2R1Y3Rpb259XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17d2luZG93V2lkdGggPCBUQUJMRVRfV0lEVEggPyB7IHBhZGRpbmdUb3A6IFwiMWVtXCIgfSA6IHt9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICA8QnJlYWRjcnVtYiBpc0xvYWRpbmc9e2ZhbHNlfSAvPlxyXG4gICAgICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFzZS1wYWdlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMT57cHJvcHMudGl0bGV9PC9oMT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+e3Byb3BzLmNoaWxkcmVufTwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC8+XHJcbiAgICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IExvYWRpbmdCYXNlUGFnZSA9ICgpID0+IHtcclxuICAgIGNvbnN0IFRBQkxFVF9XSURUSCA9IDEwMjU7XHJcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHVzZVdpbmRvd1dpZHRoKCk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9ucyAvPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwYWdlLWNvbnRlbnQgaXMtbW9iaWxlLXdpZHRoXCJcclxuICAgICAgICAgICAgICAgIGRhdGEtaXMtcHJvZHVjdGlvbj17aXNQcm9kdWN0aW9ufVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3dpbmRvd1dpZHRoIDwgVEFCTEVUX1dJRFRIID8geyBwYWRkaW5nVG9wOiBcIjFlbVwiIH0gOiB7fX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJyZWFkY3J1bWIgaXNMb2FkaW5nIC8+XHJcbiAgICAgICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYXNlLXBhZ2UtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgxPjwvaDE+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxyXG4gICAgICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsIi8qKiBBIGNsYXNzIG9mIGhlbHBlciBtZXRob2RzIGZvciB0cmFuc29mb3JtaW5nIGRhdGEgKi9cclxuZXhwb3J0IGNsYXNzIERhdGVIZWxwZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRzIGEgZGF0ZSB0byB0aGUgYGRkL21tL3l5eXksIEhIOk1NYCBmb3JtYXRcclxuICAgICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIGluIGRhdGUsIG51bWJlciwgb3Igc3RyaW5nIGZvcm1hdFxyXG4gICAgICogQHJldHVybnMgRGF0ZSBmb3JtYXR0ZWQgdG8gYGRkL21tL3l5eXksIEhIOk1NYCwgZS5nLiBcIjE4LzAyLzIwMjIsIDE0OjMyXCJcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyB0b0RhdGVTdHJpbmcoZGF0ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0xvY2FsZVN0cmluZyhcImVuLUdCXCIsIHtcclxuICAgICAgICAgICAgZGF5OiBcIjItZGlnaXRcIixcclxuICAgICAgICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICB5ZWFyOiBcIm51bWVyaWNcIixcclxuICAgICAgICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRzIGEgZGF0ZSB0byB0aGUgYGRkL21tL3l5eXlgIGZvcm1hdC5cclxuICAgICAqIEBwYXJhbSBkYXRlT25seSBUaGUgZGF0ZSBpbiBkYXRlLCBudW1iZXIsIG9yIHN0cmluZyBmb3JtYXQuXHJcbiAgICAgKiBAcmV0dXJucyBEYXRlIGZvcm1hdHRlZCB0byBgZGQvbW0veXl5eWAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgbmV3RGF0ZUZyb21EYXRlT25seShkYXRlT25seTogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKFxyXG4gICAgICAgICAgICBwYXJzZUludChkYXRlT25seS5zcGxpdChcIi9cIilbMl0pLFxyXG4gICAgICAgICAgICBwYXJzZUludChkYXRlT25seS5zcGxpdChcIi9cIilbMV0pIC0gMSxcclxuICAgICAgICAgICAgcGFyc2VJbnQoZGF0ZU9ubHkuc3BsaXQoXCIvXCIpWzBdKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRvZGF5J3MgZGF0ZSwgd2l0aCB0aGUgdGltZSBwYXJ0IHNldCB0byBcIjAwOjAwOjAwXCIuXHJcbiAgICAgKiBAcmV0dXJucyBUb2RheSdzIGRhdGUsIHdpdGggdGhlIHRpbWUgcGFydCBzZXQgdG8gXCIwMDowMDowMFwiLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldE1pZG5pZ2h0VG9kYXkoKTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3QgdG9kYXlEYXRlQ29tcG9uZW50ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRvZGF5RGF0ZUNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRvbW9ycm93cydzIGRhdGUsIHdpdGggdGhlIHRpbWUgcGFydCBzZXQgdG8gXCIwMDowMDowMFwiLlxyXG4gICAgICogQHJldHVybnMgVG9tb3Jyb3dzJ3MgZGF0ZSwgd2l0aCB0aGUgdGltZSBwYXJ0IHNldCB0byBcIjAwOjAwOjAwXCIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TWlkbmlnaHRUb21vcnJvdygpOiBEYXRlIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci5nZXRNaWRuaWdodFRvZGF5KCk7XHJcbiAgICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0cyBhIGRhdGUgdG8gdGhlIGBkZC9tbS95eXl5YCBmb3JtYXQuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSBpbiBkYXRlLCBudW1iZXIsIG9yIHN0cmluZyBmb3JtYXQuXHJcbiAgICAgKiBAcmV0dXJucyBEYXRlIGZvcm1hdHRlZCB0byBgZGQvbW0veXl5eWAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9EYXRlT25seVN0cmluZyhkYXRlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvTG9jYWxlU3RyaW5nKFwiZW4tR0JcIiwge1xyXG4gICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICBtb250aDogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0cyBhIGRhdGUgdG8gdGhlIGBISDpNTWAgZm9ybWF0LlxyXG4gICAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgaW4gZGF0ZSwgbnVtYmVyLCBvciBzdHJpbmcgZm9ybWF0LlxyXG4gICAgICogQHJldHVybnMgRGF0ZSBmb3JtYXR0ZWQgdG8gYEhIOk1NYC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyB0b1RpbWVPbmx5U3RyaW5nKGRhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9Mb2NhbGVTdHJpbmcoXCJlbi1HQlwiLCB7XHJcbiAgICAgICAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzZWNvbmRzIHRvIGEgZGF0ZS5cclxuICAgICAqIEBwYXJhbSBkYXRlIERhdGUuXHJcbiAgICAgKiBAcGFyYW0gc2Vjb25kcyBTZWNvbmRzIHRvIGFkZC5cclxuICAgICAqIEByZXR1cm5zIE5ldyBkYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGFkZFNlY29uZHMoZGF0ZTogRGF0ZSwgc2Vjb25kczogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcihkYXRlKSArIDEwMDAgKiBzZWNvbmRzKTtcclxuICAgIH1cclxufVxyXG4iLCIvLyBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURURcbmltcG9ydCB7IEdlbkljb24gfSBmcm9tICcuLi9saWInO1xuZXhwb3J0IGZ1bmN0aW9uIEZhNTAwUHggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAzLjMgMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJoLjN2LTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVzLTY4LjggMTMuOC05My41IDM4LjVjLS4zLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41LjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOFYyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41aDI0MS4zYzguMyAwIDguMyAxMS42IDguMyAxNS4xIDAgMy45IDAgMTUuMS04LjMgMTUuMUgxMzAuM3YxMzIuOWguM2MxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6bTYzLjMtMjYwLjhjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjZDMzA2IDU2LjYgMzg0IDE0NC41IDM5MC42IDE0NC41YzQuOCAwIDIyLjgtMTUuMyAxNC4zLTIyLjgtOTMuMi04OS0yMzQuNS01Ny0yMzguMy0zOC4yek0zOTMgNDE0LjdDMjgzIDUyNC42IDk0IDQ3NS41IDYxIDMxMC41YzAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0yMTMuNiAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42LjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJMMjY1LjYgMjg0bDE4LjItMTguMmM2LjMtNi44LTEwLjEtMjEuOC0xNi4yLTE1LjdMMjQ5LjcgMjY4Yy0xOC42LTE4LjgtMTguNC0xOS41LTIxLjUtMTkuNS01IDAtMTggMTEuNy0xMi40IDE3LjNMMjM0IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWNjZXNzaWJsZUljb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NmMtMzAgMjYuOC03MC42LTE4LjUtNDAuNS00NS40bDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNkwyODUuNyAyMjlsMTA2LjEtNS45YzE4LjUtMS4xIDMzLjYgMTQuNCAzMi4xIDMyLjd6bS02NC45LTE1NGMyOC4xIDAgNTAuOS0yMi44IDUwLjktNTAuOUM0MDkuOSAyMi44IDM4Ny4xIDAgMzU5IDBjLTI4LjEgMC01MC45IDIyLjgtNTAuOSA1MC45IDAgMjguMSAyMi44IDUwLjkgNTAuOSA1MC45ek0xNzkuNiA0NTYuNWMtODAuNiAwLTEyNy40LTkwLjYtODIuNy0xNTYuMWwtMzkuNy0zOS43QzM2LjQgMjg3IDI0IDMyMC4zIDI0IDM1Ni40YzAgMTMwLjcgMTUwLjcgMjAxLjQgMjUxLjQgMTIyLjVsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFjY3Vzb2Z0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMi4xIDI1MnYtMWwtNTEuMi02NS44cy0xMiAxLjYtMjUgMTUuMWMtOSA5LjMtMjQyLjEgMjM5LjEtMjQzLjQgMjQwLjktNyAxMCAxLjYgNi44IDE1LjcgMS43LjggMCAxMTQuNS0zNi42IDExNC41LTM2LjYuNS0uNi0uMS0uMS42LS42LS40LTUuMS0uOC0yNi4yLTEtMjcuNy0uNi01LjIgMi4yLTYuOSA3LTguOWw5Mi42LTMzLjhjLjYtLjggODguNS04MS43IDkwLjItODMuM3ptMTYwLjEgMTIwLjFjMTMuMyAxNi4xIDIwLjcgMTMuMyAzMC44IDkuMyAzLjItMS4yIDExNS40LTQ3LjYgMTE3LjgtNDguOSA4LTQuMy0xLjctMTYuNy03LjItMjMuNC0yLjEtMi41LTIwNS4xLTI0NS42LTIwNy4yLTI0OC4zLTkuNy0xMi4yLTE0LjMtMTIuOS0zOC40LTEyLjgtMTAuMiAwLTEwNi44LjUtMTE2LjUuNi0xOS4yLjEtMzIuOS0uMy0xOS4yIDE2LjlDMjUwIDc1IDQ3Ni41IDM2NS4yIDQ4Mi4yIDM3Mi4xem0xNTIuNyAxLjZjLTIuMy0uMy0yNC42LTQuNy0zOC03LjIgMCAwLTExNSA1MC40LTExNy41IDUxLjYtMTYgNy4zLTI2LjktMy4yLTM2LjctMTQuNmwtNTcuMS03NGMtNS40LS45LTYwLjQtOS42LTY1LjMtOS4zLTMuMS4yLTkuNi44LTE0LjQgMi45LTQuOSAyLjEtMTQ1LjIgNTIuOC0xNTAuMiA1NC43LTUuMSAyLTExLjQgMy42LTExLjEgNy42LjIgMi41IDIgMi42IDQuNiAzLjUgMi43LjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFjcXVpc2l0aW9uc0luY29ycG9yYXRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTcuNDUgNDY4LjJjLTEuMi03LjctMS4zLTcuNi05LjYtNy42LTk5LjguMi0xMTEuOC0yLjQtMTEyLjctMi42LTEyLjMtMS43LTIwLjYtMTAuNS0yMS0yMy4xLS4xLTEuNi0uMi03MS42LTEtMTI5LjEtLjEtNC43IDEuNi02LjQgNS45LTcuNSAxMi41LTMgMjQuOS02LjEgMzcuMy05LjcgNC4zLTEuMyA2LjgtLjIgOC40IDMuNSA0LjUgMTAuMyA4LjggMjAuNiAxMy4yIDMwLjkgMS42IDMuNy4xIDQuNC0zLjQgNC40LTEwLS4yLTIwLS4xLTMwLjQtLjF2MjdoMTE2Yy0xLjQtOS41LTIuNy0xOC4xLTQtMjcuNS03IDAtMTMuOC40LTIwLjQtLjEtMjIuNi0xLjYtMTguMy00LjQtODQtMTU4LjYtOC44LTIwLjEtMjcuOS02Mi4xLTM2LjUtODkuMi00LjQtMTQgNS41LTI1LjQgMTguOS0yNi42IDE4LjYtMS43IDM3LjUtMS42IDU2LjItMiAyMC42LS40IDQxLjItLjQgNjEuOC0uNSAzLjEgMCA0LTEuNCA0LjMtNC4zIDEuMi05LjggMi43LTE5LjUgNC0yOS4yLjgtNS4zIDEuNi0xMC43IDIuNC0xNi4xTDIzLjc1IDBjLTMuNiAwLTUuMyAxLjEtNC42IDUuMyAyLjIgMTMuMi0uOC44IDYuNCA0NS4zIDYzLjQgMCA3MS44LjkgMTAxLjguNSAxMi4zLS4yIDM3IDMuNSAzNy43IDIyLjEuNCAxMS40LTEuMSAxMS4zLTMyLjYgODcuNC01My44IDEyOS44LTUwLjcgMTIwLjMtNjcuMyAxNjEtMS43IDQuMS0zLjYgNS4yLTcuNiA1LjItOC41LS4yLTE3LS4zLTI1LjQuMS0xLjkuMS01LjIgMS44LTUuNSAzLjItMS41IDguMS0yLjIgMTYuMy0zLjIgMjQuOWgxMTQuM3YtMjcuNmMtNi45IDAtMzMuNS40LTM1LjMtMi45IDUuMy0xMi4zIDEwLjQtMjQuNCAxNS43LTM2LjcgMTYuMyA0IDMxLjkgNy44IDQ3LjYgMTEuNyAzLjQuOSA0LjYgMyA0LjYgNi44LS4xIDQyLjkuMSA4NS45LjIgMTI4LjggMCAxMC4yLTUuNSAxOS4xLTE0LjkgMjMuMS02LjUgMi43LTMuMyAzLjQtMTIxLjQgMi40LTUuMyAwLTcuMSAyLTcuNiA2LjgtMS41IDEyLjktMi45IDI1LjktNSAzOC44LS44IDUgMS4zIDUuNyA1LjMgNS43IDE4My4yLjYtMzAuNyAwIDMzNy4xIDAtMi41LTE1LTQuNC0yOS40LTYuNi00My43em0tMTc0LjktMjA1LjdjLTEzLjMtNC4yLTI2LjYtOC4yLTM5LjktMTIuNWE0NC41MyA0NC41MyAwIDAgMS01LjgtMi45YzE3LjItNDQuMyAzNC4yLTg4LjEgNTEuMy0xMzIuMSA3LjUgMi40IDcuOS0uOCA5LjQgMCA5LjMgMjIuNSAxOC4xIDYwLjEgMjcgODIuOCA2LjYgMTYuNyAxMyAzMy41IDE5LjcgNTAuOWEzNS43OCAzNS43OCAwIDAgMS0zLjkgMi4xYy0xMy4xIDMuOS0yNi40IDcuNS0zOS40IDExLjdhMjcuNjYgMjcuNjYgMCAwIDEtMTguNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMTY3LjVsNjQuOSA5OC44SDE4My4xbDY0LjktOTguOHpNNDk2IDI1NmMwIDEzNi45LTExMS4xIDI0OC0yNDggMjQ4UzAgMzkyLjkgMCAyNTYgMTExLjEgOCAyNDggOHMyNDggMTExLjEgMjQ4IDI0OHptLTk5LjggODIuN0wyNDggMTE1LjUgOTkuOCAzMzguN2gzMC40bDMzLjYtNTEuN2gxNjguNmwzMy42IDUxLjdoMzAuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZHZlcnNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODIuMSAzMkgyOC43QzUuOCAzMiAwIDM3LjkgMCA2MC45djM5MC4yQzAgNDc0LjQgNS44IDQ4MCAyOC43IDQ4MGg0NTMuNGMyNC40IDAgMjkuOS01LjIgMjkuOS0yOS43VjYyLjJjMC0yNC42LTUuNC0zMC4yLTI5LjktMzAuMnpNMTc4LjQgMjIwLjNjLTI3LjUtMjAuMi03Mi4xLTguNy04NC4yIDIzLjQtNC4zIDExLjEtOS4zIDkuNS0xNy41IDguMy05LjctMS41LTE3LjItMy4yLTIyLjUtNS41LTI4LjgtMTEuNCA4LjYtNTUuMyAyNC45LTY0LjMgNDEuMS0yMS40IDgzLjQtMjIuMiAxMjUuMy00LjggNDAuOSAxNi44IDM0LjUgNTkuMiAzNC41IDEyOC41IDIuNyAyNS44LTQuMyA1OC4zIDkuMyA4OC44IDEuOSA0LjQuNCA3LjktMi43IDEwLjctOC40IDYuNy0zOS4zIDIuMi00Ni42LTcuNC0xLjktMi4yLTEuOC0zLjYtMy45LTYuMi0zLjYtMy45LTcuMy0yLjItMTEuOSAxLTU3LjQgMzYuNC0xNDAuMyAyMS40LTE0Ny00My4zLTMuMS0yOS4zIDEyLjQtNTcuMSAzOS42LTcxIDM4LjItMTkuNSAxMTIuMi0xMS44IDExNC0zMC45IDEuMS0xMC4yLTEuOS0yMC4xLTExLjMtMjcuM3ptMjg2LjcgMjIyYzAgMTUuMS0xMS4xIDkuOS0xNy44IDkuOUg1Mi40Yy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcuNC0xMy45IDEwLjUtOS4xIDE3LjEtOS4xIDEzMi4zLS40IDI2NC41LS40IDM5Ni44IDAgNi44IDAgMTYuNi00LjQgMTYuNiA5Ljl6bTMuOC0zNDAuNXYyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41di03MWMwLTI2LjItLjEtMjYuMiAyNi0yNi4yIDMuMSAwIDYuNi40IDkuNyAwIDEwLjEtLjggMTMuNiA0LjQgMTMuNiAxNC4zLS4xLjItLjEuMy0uMS41em0tNTEuNSAyMzIuM2MtMTkuNSA0Ny42LTcyLjkgNDMuMy05MCA1LjItMTUuMS0zMy4zLTE1LjUtNjguMi40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6bS0yOTQuOCAzNS4zYy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWZmaWxpYXRldGhlbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU5LjcgMjM3LjRDMTA4LjQgMzA4LjMgNDMuMSAzNDguMiAxNCAzMjYuNi0xNS4yIDMwNC45IDIuOCAyMzAgNTQuMiAxNTkuMWM1MS4zLTcwLjkgMTE2LjYtMTEwLjggMTQ1LjctODkuMiAyOS4xIDIxLjYgMTEuMSA5Ni42LTQwLjIgMTY3LjV6bTM1MS4yLTU3LjNDNDM3LjEgMzAzLjUgMzE5IDM2Ny44IDI0Ni40IDMyMy43Yy0yNS0xNS4yLTQxLjMtNDEuMi00OS03My44LTMzLjYgNjQuOC05Mi44IDExMy44LTE2NC4xIDEzMy4yIDQ5LjggNTkuMyAxMjQuMSA5Ni45IDIwNyA5Ni45IDE1MCAwIDI3MS42LTEyMy4xIDI3MS42LTI3NC45LjEtOC41LS4zLTE2LjgtMS0yNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBaXJibmIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDM3My4xMmMtMjUuMjQtMzEuNjctNDAuMDgtNTkuNDMtNDUtODMuMTgtMjIuNTUtODggMTEyLjYxLTg4IDkwLjA2IDAtNS40NSAyNC4yNS0yMC4yOSA1Mi00NSA4My4xOHptMTM4LjE1IDczLjIzYy00Mi4wNiAxOC4zMS04My42Ny0xMC44OC0xMTkuMy01MC40NyAxMDMuOS0xMzAuMDcgNDYuMTEtMjAwLTE4Ljg1LTIwMC01NC45MiAwLTg1LjE2IDQ2LjUxLTczLjI4IDEwMC41IDYuOTMgMjkuMTkgMjUuMjMgNjIuMzkgNTQuNDMgOTkuNS0zMi41MyAzNi4wNS02MC41NSA1Mi42OS04NS4xNSA1NC45Mi01MCA3LjQzLTg5LjExLTQxLjA2LTcxLjMtOTEuMDkgMTUuMS0zOS4xNiAxMTEuNzItMjMxLjE4IDExNS44Ny0yNDEuNTYgMTUuNzUtMzAuMDcgMjUuNTYtNTcuNCA1OS4zOC01Ny40IDMyLjM0IDAgNDMuNCAyNS45NCA2MC4zNyA1OS44NyAzNiA3MC42MiA4OS4zNSAxNzcuNDggMTE0Ljg0IDIzOS4wOSAxMy4xNyAzMy4wNy0xLjM3IDcxLjI5LTM3LjAxIDg2LjY0em00Ny0xMzYuMTJDMjgwLjI3IDM1LjkzIDI3My4xMyAzMiAyMjQgMzJjLTQ1LjUyIDAtNjQuODcgMzEuNjctODQuNjYgNzIuNzlDMzMuMTggMzE3LjEgMjIuODkgMzQ3LjE5IDIyIDM0OS44MS0zLjIyIDQxOS4xNCA0OC43NCA0ODAgMTExLjYzIDQ4MGMyMS43MSAwIDYwLjYxLTYuMDYgMTEyLjM3LTYyLjQgNTguNjggNjMuNzggMTAxLjI2IDYyLjQgMTEyLjM3IDYyLjQgNjIuODkuMDUgMTE0Ljg1LTYwLjg2IDg5LjYxLTEzMC4xOS4wMi0zLjg5LTE2LjgyLTM4LjktMTYuODItMzkuNTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxnb2xpYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjkuMyAxODIuNmMtNDkuMyAwLTg5LjIgMzkuOS04OS4yIDg5LjIgMCA0OS4zIDM5LjkgODkuMiA4OS4yIDg5LjJzODkuMi0zOS45IDg5LjItODkuMmMwLTQ5LjMtNDAtODkuMi04OS4yLTg5LjJ6bTYyLjcgNTYuNmwtNTguOSAzMC42Yy0xLjguOS0zLjgtLjQtMy44LTIuM1YyMDFjMC0xLjUgMS4zLTIuNyAyLjctMi42IDI2LjIgMSA0OC45IDE1LjcgNjEuMSAzNy4xLjcgMS4zLjIgMy0xLjEgMy43ek0zODkuMSAzMkg1OC45QzI2LjQgMzIgMCA1OC40IDAgOTAuOVY0MjFjMCAzMi42IDI2LjQgNTkgNTguOSA1OUgzODljMzIuNiAwIDU4LjktMjYuNCA1OC45LTU4LjlWOTAuOUM0NDggNTguNCA0MjEuNiAzMiAzODkuMSAzMnptLTIwMi42IDg0LjdjMC0xMC44IDguNy0xOS41IDE5LjUtMTkuNWg0NS4zYzEwLjggMCAxOS41IDguNyAxOS41IDE5LjV2MTUuNGMwIDEuOC0xLjcgMy0zLjMgMi41LTEyLjMtMy40LTI1LjEtNS4xLTM4LjEtNS4xLTEzLjUgMC0yNi43IDEuOC0zOS40IDUuNS0xLjcuNS0zLjQtLjgtMy40LTIuNXYtMTUuOHptLTg0LjQgMzdsOS4yLTkuMmM3LjYtNy42IDE5LjktNy42IDI3LjUgMGw3LjcgNy43YzEuMSAxLjEgMSAzLS4zIDQtNi4yIDQuNS0xMi4xIDkuNC0xNy42IDE0LjktNS40IDUuNC0xMC40IDExLjMtMTQuOCAxNy40LTEgMS4zLTIuOSAxLjUtNCAuM2wtNy43LTcuN2MtNy42LTcuNS03LjYtMTkuOCAwLTI3LjR6bTEyNy4yIDI0NC44Yy03MCAwLTEyNi42LTU2LjctMTI2LjYtMTI2LjZzNTYuNy0xMjYuNiAxMjYuNi0xMjYuNmM3MCAwIDEyNi42IDU2LjYgMTI2LjYgMTI2LjYgMCA2OS44LTU2LjcgMTI2LjYtMTI2LjYgMTI2LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpcGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Ny43NCAzMkg3MC4yNkMzMS40MSAzMiAwIDYzLjQxIDAgMTAyLjI2djMwNy40OEMwIDQ0OC41OSAzMS40MSA0ODAgNzAuMjYgNDgwaDMwNy40OGMzOC41MiAwIDY5Ljc2LTMxLjA4IDcwLjI2LTY5LjYtNDUuOTYtMjUuNjItMTEwLjU5LTYwLjM0LTE3MS42LTg4LjQ0LTMyLjA3IDQzLjk3LTg0LjE0IDgxLTE0OC42MiA4MS03MC41OSAwLTkzLjczLTQ1LjMtOTcuMDQtNzYuMzctMy45Ny0zOS4wMSAxNC44OC04MS41IDk5LjUyLTgxLjUgMzUuMzggMCA3OS4zNSAxMC4yNSAxMjcuMTMgMjQuOTYgMTYuNTMtMzAuMDkgMjYuNDUtNjAuMzQgMjYuNDUtNjAuMzRoLTE3OC4ydi0xNi43aDkyLjA4di0zMS4yNEg4OC4yOHYtMTkuMDFoMTA5LjQ0VjkyLjM0aDUwLjkydjUwLjQyaDEwOS40NHYxOS4wMUgyNDguNjN2MzEuMjRoODguNzdzLTE1LjIxIDQ2LjYyLTM4LjM1IDkwLjkyYzQ4LjkzIDE2LjcgMTAwLjAxIDM2LjA0IDE0OC42MiA1Mi43NFYxMDIuMjZDNDQ3LjgzIDYzLjU3IDQxNi40MyAzMiAzNzcuNzQgMzJ6TTQ3LjI4IDMyMi45NWMuOTkgMjAuMTcgMTAuMjUgNTMuNzMgNjkuOTMgNTMuNzMgNTIuMDcgMCA5Mi41OC0zOS42OCAxMTcuODctNzIuOS00NC42My0xOC42OC04NC40OC0zMS40MS0xMDkuNDQtMzEuNDEtNjcuNDUgMC03OS4zNSAzMy4wNi03OC4zNiA1MC41OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWF6b25QYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMzI1LjNjMi4zLTQuMiA1LjItNC45IDkuNy0yLjUgMTAuNCA1LjYgMjAuNiAxMS40IDMxLjIgMTYuN2E1OTUuODggNTk1Ljg4IDAgMCAwIDEyNy40IDQ2LjMgNjE2LjYxIDYxNi42MSAwIDAgMCA2My4yIDExLjggNjAzLjMzIDYwMy4zMyAwIDAgMCA5NSA1LjJjMTcuNC0uNCAzNC44LTEuOCA1Mi4xLTMuOGE2MDMuNjYgNjAzLjY2IDAgMCAwIDE2My4zLTQyLjhjMi45LTEuMiA1LjktMiA5LjEtMS4yIDYuNyAxLjggOSA5IDQuMSAxMy45YTcwIDcwIDAgMCAxLTkuNiA3LjRjLTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45YTQ3My4zMSA0NzMuMzEgMCAwIDEtNzUuMSAxNy42IDQzMSA0MzEgMCAwIDEtNTMuMiA0LjggMjEuMyAyMS4zIDAgMCAwLTIuNS4zSDMwOGEyMS4zIDIxLjMgMCAwIDAtMi41LS4zYy0zLjYtLjItNy4yLS4zLTEwLjctLjRhNDI2LjMgNDI2LjMgMCAwIDEtNTAuNC01LjNBNDQ4LjQgNDQ4LjQgMCAwIDEgMTY0IDQyMGE0NDMuMzMgNDQzLjMzIDAgMCAxLTE0NS42LTg3Yy0xLjgtMS42LTMtMy44LTQuNC01Ljd6TTE3MiA2NS4xbC00LjMuNmE4MC45MiA4MC45MiAwIDAgMC0zOCAxNS4xYy0yLjQgMS43LTQuNiAzLjUtNy4xIDUuNGE0LjI5IDQuMjkgMCAwIDEtLjQtMS40Yy0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZoLTExLjVjLTYuOSAwLTguMiAxLjMtOC4yIDguMnYyMDkuM2MwIDEgMCAyIC4xIDMgLjIgMyAyIDQuOSA0LjkgNSA3IC4xIDE0LjEuMSAyMS4xIDAgMi45IDAgNC43LTIgNS01IC4xLTEgLjEtMiAuMS0zdi03Mi40YzEuMS45IDEuNyAxLjQgMi4yIDEuOSAxNy45IDE0LjkgMzguNSAxOS44IDYxIDE1LjQgMjAuNC00IDM0LjYtMTYuNSA0My44LTM0LjkgNy0xMy45IDkuOS0yOC43IDEwLjMtNDQuMS41LTE3LjEtMS4yLTMzLjktOC4xLTQ5LjgtOC41LTE5LjYtMjIuNi0zMi41LTQzLjktMzYuOS0zLjItLjctNi41LTEtOS44LTEuNS0yLjgtLjEtNS41LS4xLTguMy0uMXpNMTI0LjYgMTA3YTMuNDggMy40OCAwIDAgMSAxLjctMy4zYzEzLjctOS41IDI4LjgtMTQuNSA0NS42LTEzLjIgMTQuOSAxLjEgMjcuMSA4LjQgMzMuNSAyNS45IDMuOSAxMC43IDQuOSAyMS44IDQuOSAzMyAwIDEwLjQtLjggMjAuNi00IDMwLjYtNi44IDIxLjMtMjIuNCAyOS40LTQyLjYgMjguNS0xNC0uNi0yNi4yLTYtMzcuNC0xMy45YTMuNTcgMy41NyAwIDAgMS0xLjctMy4zYy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6bTIwNS43LTQxLjljLTEgLjEtMiAuMy0yLjkuNGExNDggMTQ4IDAgMCAwLTI4LjkgNC4xYy02LjEgMS42LTEyIDMuOC0xNy45IDUuOC0zLjYgMS4yLTUuNCAzLjgtNS4zIDcuNy4xIDMuMy0uMSA2LjYgMCA5LjkuMSA0LjggMi4xIDYuMSA2LjggNC45IDcuOC0yIDE1LjYtNC4yIDIzLjUtNS43IDEyLjMtMi4zIDI0LjctMy4zIDM3LjItMS40IDYuNSAxIDEyLjYgMi45IDE2LjggOC40IDMuNyA0LjggNS4xIDEwLjUgNS4zIDE2LjQuMyA4LjMuMiAxNi42LjMgMjQuOWE3Ljg0IDcuODQgMCAwIDEtLjIgMS40Yy0uNS0uMS0uOSAwLTEuMy0uMWExODAuNTYgMTgwLjU2IDAgMCAwLTMyLTQuOWMtMTEuMy0uNi0yMi41LjEtMzMuMyAzLjktMTIuOSA0LjUtMjMuMyAxMi4zLTI5LjQgMjQuOS00LjcgOS44LTUuNCAyMC4yLTMuOSAzMC43IDIgMTQgOSAyNC44IDIxLjQgMzEuNyAxMS45IDYuNiAyNC44IDcuNCAzNy45IDUuNCAxNS4xLTIuMyAyOC41LTguNyA0MC4zLTE4LjRhNy4zNiA3LjM2IDAgMCAxIDEuNi0xLjFjLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40LjEgMTAuOS4xIDE2LjMgMGE0Ljg0IDQuODQgMCAwIDAgNC44LTQuNyAyNi4yIDI2LjIgMCAwIDAgLjEtMi44di0xMDZhODAgODAgMCAwIDAtLjktMTIuOWMtMS45LTEyLjktNy40LTIzLjUtMTktMzAuNC02LjctNC0xNC4xLTYtMjEuOC03LjEtMy42LS41LTcuMi0uOC0xMC44LTEuMy0zLjkuMS03LjkuMS0xMS45LjF6bTM1IDEyNy43YTMuMzMgMy4zMyAwIDAgMS0xLjUgM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcuNi0xMS40LjQtMTYuOC0xLjhhMjAuMDggMjAuMDggMCAwIDEtMTIuNC0xMy4zIDMyLjkgMzIuOSAwIDAgMS0uMS0xOS40YzIuNS04LjMgOC40LTEzIDE2LjQtMTUuNmE2MS4zMyA2MS4zMyAwIDAgMSAyNC44LTIuMmM4LjQuNyAxNi42IDIuMyAyNSAzLjQgMS42LjIgMi4xIDEgMi4xIDIuNi0uMSA0LjggMCA5LjUgMCAxNC4zcy0uMiA5LjQtLjEgMTQuMXptMjU5LjkgMTI5LjRjLTEtNS00LjgtNi45LTkuMS04LjNhODguNDIgODguNDIgMCAwIDAtMjEtMy45IDE0Ny4zMiAxNDcuMzIgMCAwIDAtMzkuMiAxLjljLTE0LjMgMi43LTI3LjkgNy4zLTQwIDE1LjZhMTMuNzUgMTMuNzUgMCAwIDAtMy43IDMuNSA1LjExIDUuMTEgMCAwIDAtLjUgNGMuNCAxLjUgMi4xIDEuOSAzLjYgMS44YTE2LjIgMTYuMiAwIDAgMCAyLjItLjFjNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjlhNzEuNjQgNzEuNjQgMCAwIDEgMTQuNCAyLjdjNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40LjQgOC0xLjQgMTUuNy0zLjUgMjMuMy00LjEgMTUuNC0xMCAzMC4zLTE1LjggNDUuMWExNy42IDE3LjYgMCAwIDAtMSAzYy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xYTEwLjU2IDEwLjU2IDAgMCAwIDQuOC0yLjUgMTQ1LjkxIDE0NS45MSAwIDAgMCAxMi43LTEzLjRjMTIuOC0xNi40IDIwLjMtMzUuMyAyNC43LTU1LjYuOC0zLjYgMS40LTcuMyAyLjEtMTAuOXYtMTcuM3pNNDkzLjEgMTk5cS0xOS4zNS01My41NS0zOC43LTEwNy4yYy0yLTUuNy00LjItMTEuMy02LjMtMTYuOS0xLjEtMi45LTMuMi00LjgtNi40LTQuOC03LjYtLjEtMTUuMi0uMi0yMi45LS4xLTIuNSAwLTMuNyAyLTMuMiA0LjVhNDMuMSA0My4xIDAgMCAwIDEuOSA2LjFxMjkuNCA3Mi43NSA1OS4xIDE0NS41YzEuNyA0LjEgMi4xIDcuNi4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuM2E0Mi4xMyA0Mi4xMyAwIDAgMS0xNS40IDEuMWMtMi41LS4yLTUtLjgtNy41LTEtMy40LS4yLTUuMSAxLjMtNS4yIDQuOHEtLjE1IDUgMCA5LjljLjEgNS41IDIgOCA3LjQgOC45YTEwOC4xOCAxMDguMTggMCAwIDAgMTYuOSAyYzE3LjEuNCAzMC43LTYuNSAzOS41LTIxLjRhMTMxLjYzIDEzMS42MyAwIDAgMCA5LjItMTguNHEzNS41NS04OS43IDcwLjYtMTc5LjZhMjYuNjIgMjYuNjIgMCAwIDAgMS42LTUuNWMuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDBhNy41NCA3LjU0IDAgMCAwLTcuNyA1LjJjLS41IDEuNC0xLjEgMi43LTEuNiA0LjFsLTM0LjggMTAwYy0yLjUgNy4yLTUuMSAxNC41LTcuNyAyMi4yLS40LTEuMS0uNi0xLjctLjktMi40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFtYXpvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTcuMiAxNjIuN2MtNDguNyAxLjgtMTY5LjUgMTUuNS0xNjkuNSAxMTcuNSAwIDEwOS41IDEzOC4zIDExNCAxODMuNSA0My4yIDYuNSAxMC4yIDM1LjQgMzcuNSA0NS4zIDQ2LjhsNTYuOC01NlMzNDEgMjg4LjkgMzQxIDI2MS40VjExNC4zQzM0MSA4OSAzMTYuNSAzMiAyMjguNyAzMiAxNDAuNyAzMiA5NCA4NyA5NCAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44djQwLjZ6bTEzNiAxNjMuNWMtNy43IDEwLTcwIDY3LTE3NC41IDY3UzM0LjIgNDA4LjUgOS43IDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguM0M4OC41IDQxNS4yIDIwMyA0ODguNSAzODcuNyA0MDFjNy41LTMuNyAxMy4zIDIgNS41IDEyem0zOS44IDIuMmMtNi41IDE1LjgtMTYgMjYuOC0yMS4yIDMxLTUuNSA0LjUtOS41IDIuNy02LjUtMy44czE5LjMtNDYuNSAxMi43LTU1Yy02LjUtOC4zLTM3LTQuMy00OC0zLjItMTAuOCAxLTEzIDItMTQtLjMtMi4zLTUuNyAyMS43LTE1LjUgMzcuNS0xNy41IDE1LjctMS44IDQxLS44IDQ2IDUuNyAzLjcgNS4xIDAgMjcuMS02LjUgNDMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWlsaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjEgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjF2MzguNUMyMDMgMjI3LjcgNzguMiAyNTEgNDYuNyAyNjQuMiAxMS4yIDI4MC41IDE2LjMgMzU3LjcgMTYuMyAzNzZzMTUuMiAxMDQgMTI0LjkgMTA0YzQ3LjggMCAxMTMuNy0yMC43IDE1My4zLTQyLjF2MjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNS4zIDY2LjUtLjdjNC4xLTEgNS4xLTYuMSA1LjEtOS4xVjE2OGMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMC41NSwzMDEuOTNhMjQsMjQsMCwxLDEsMjQtMjQsMjQsMjQsMCwwLDEtMjQsMjRtLTI2NS4xLDBhMjQsMjQsMCwxLDEsMjQtMjQsMjQsMjQsMCwwLDEtMjQsMjRtMjczLjctMTQ0LjQ4LDQ3Ljk0LTgzYTEwLDEwLDAsMSwwLTE3LjI3LTEwaDBsLTQ4LjU0LDg0LjA3YTMwMS4yNSwzMDEuMjUsMCwwLDAtMjQ2LjU2LDBMMTE2LjE4LDY0LjQ1YTEwLDEwLDAsMSwwLTE3LjI3LDEwaDBsNDcuOTQsODNDNjQuNTMsMjAyLjIyLDguMjQsMjg1LjU1LDAsMzg0SDU3NmMtOC4yNC05OC40NS02NC41NC0xODEuNzgtMTQ2Ljg1LTIyNi41NVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2VsbGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDcuMSAyMTUuNGMxMS43LTMyLjYgNDUuNC0xMjYuOSA0NS40LTE1Ny4xIDAtMjYuNi0xNS43LTQ4LjktNDMuNy00OC45LTQ0LjYgMC04NC42IDEzMS43LTk3LjEgMTYzLjFDMjQyIDE0NCAxOTYuNiAwIDE1Ni42IDBjLTMxLjEgMC00NS43IDIyLjktNDUuNyA1MS43IDAgMzUuMyAzNC4yIDEyNi44IDQ2LjYgMTYyLTYuMy0yLjMtMTMuMS00LjMtMjAtNC4zLTIzLjQgMC00OC4zIDI5LjEtNDguMyA1Mi42IDAgOC45IDQuOSAyMS40IDggMjkuNy0zNi45IDEwLTUxLjEgMzQuNi01MS4xIDcxLjdDNDYgNDM1LjYgMTE0LjQgNTEyIDIxMC42IDUxMmMxMTggMCAxOTEuNC04OC42IDE5MS40LTIwMi45IDAtNDMuMS02LjktODItNTQuOS05My43ek0zMTEuNyAxMDhjNC0xMi4zIDIxLjEtNjQuMyAzNy4xLTY0LjMgOC42IDAgMTAuOSA4LjkgMTAuOSAxNiAwIDE5LjEtMzguNiAxMjQuNi00Ny4xIDE0OGwtMzQtNiAzMy4xLTkzLjd6TTE0Mi4zIDQ4LjNjMC0xMS45IDE0LjUtNDUuNyA0Ni4zIDQ3LjFsMzQuNiAxMDAuM2MtMTUuNi0xLjMtMjcuNy0zLTM1LjQgMS40LTEwLjktMjguOC00NS41LTExOS43LTQ1LjUtMTQ4Ljh6TTE0MCAyNDRjMjkuMyAwIDY3LjEgOTQuNiA2Ny4xIDEwNy40IDAgNS4xLTQuOSAxMS40LTEwLjYgMTEuNC0yMC45IDAtNzYuOS03Ni45LTc2LjktOTcuNy4xLTcuNyAxMi43LTIxLjEgMjAuNC0yMS4xem0xODQuMyAxODYuM2MtMjkuMSAzMi02Ni4zIDQ4LjYtMTA5LjcgNDguNi01OS40IDAtMTA2LjMtMzIuNi0xMjguOS04OC4zLTE3LjEtNDMuNCAzLjgtNjguMyAyMC42LTY4LjMgMTEuNCAwIDU0LjMgNjAuMyA1NC4zIDczLjEgMCA0LjktNy43IDguMy0xMS43IDguMy0xNi4xIDAtMjIuNC0xNS41LTUxLjEtNTEuNC0yOS43IDI5LjcgMjAuNSA4Ni45IDU4LjMgODYuOSAyNi4xIDAgNDMuMS0yNC4yIDM4LTQyIDMuNyAwIDguMy4zIDExLjctLjYgMS4xIDI3LjEgOS4xIDU5LjQgNDEuNyA2MS43IDAtLjkgMi03LjEgMi03LjQgMC0xNy40LTEwLjYtMzIuNi0xMC42LTUwLjMgMC0yOC4zIDIxLjctNTUuNyA0My43LTcxLjcgOC02IDE3LjctOS43IDI3LjEtMTMuMSA5LjctMy43IDIwLTggMjcuNC0xNS40LTEuMS0xMS4yLTUuNy0yMS4xLTE2LjktMjEuMS0yNy43IDAtMTIwLjYgNC0xMjAuNi0zOS43IDAtNi43LjEtMTMuMSAxNy40LTEzLjEgMzIuMyAwIDExNC4zIDggMTM4LjMgMjkuMSAxOC4xIDE2LjEgMjQuMyAxMTMuMi0zMSAxNzQuN3ptLTk4LjYtMTI2YzkuNyAzLjEgMTkuNyA0IDI5LjcgNi03LjQgNS40LTE0IDEyLTIwLjMgMTkuMS0yLjgtOC41LTYuMi0xNi44LTkuNC0yNS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3J5Y3JlYXRpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjJMNTI3IDM2NS4ybC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjhMNDY4IDI0OS42bC0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOEMyMy45IDM5OS45LTMgMzc3IC4zIDMzOS43YzIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjZMMzcwLjQgMzY5bDguOS04NS42LTIyLjMgMS40IDIuOS0yNy45IDc1LTQuOS0zIDI4LTI0LjMgMS42LTkuNyA5MS45LTU4IDMuNy00LjMtMTUuNi0zOS40IDIuNS04IDE2LjMtMTI2LjIgNy43em0tNDQuMy03MC4ybC0yNi40IDEuN0M4NC42IDMwNy4yIDc2LjkgMzAzIDY1IDMwMy44Yy0xOSAxLjItMzMuMyAxNy41LTM0LjYgMzMuMy0xLjQgMTYgNy4zIDMyLjUgMjguNyAzMS4yIDEyLjgtLjggMjEuMy04LjYgMjguOS0xOC45bDI3LTEuNyAyLjctMjkuOHptNTYuMS03LjdjMS4yLTEyLjktNy42LTEzLjYtMjYuMS0xMi40bC0yLjcgMjguNWMxNC4yLS45IDI3LjUtMi4xIDI4LjgtMTYuMXptMjEuMSA3MC44bDUuOC02MGMtNSAxMy41LTE0LjcgMjEuMS0yNy45IDI2LjZsMjIuMSAzMy40em0xMzUuNC00NWwtNy45LTM3LjgtMTUuOCAzOS4zIDIzLjctMS41em0tMTcwLjEtNzQuNmwtNC4zLTE3LjUtMzkuNiAyLjYtOC4xIDE4LjItMzEuOSAyLjEgNTctMTIxLjkgMjMuOS0xLjYgMzAuNyAxMDIgOS45LTEwNC43IDI3LTEuOCAzNy44IDYzLjYgNi41LTY2LjYgMjguNS0xLjktNCA0MS4yYzcuNC0xMy41IDIyLjktNDQuNyA2My42LTQ3LjUgNDAuNS0yLjggNTIuNCAyOS4zIDUzLjQgMzAuM2wzLjMtMzIgMzkuMy0yLjdjMTIuNy0uOSAyNy44LjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3VsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg1LjcgMjY4LjFoNzYuMmwtMzguMS05MS42LTM4LjEgOTEuNnpNMjIzLjggMzJMMTYgMTA2LjRsMzEuOCAyNzUuNyAxNzYgOTcuOSAxNzYtOTcuOSAzMS44LTI3NS43ek0zNTQgMzczLjhoLTQ4LjZsLTI2LjItNjUuNEgxNjguNmwtMjYuMiA2NS40SDkzLjdMMjIzLjggODEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBTdG9yZUlvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjcgMzg0LjVjLTUuNSA5LjYtMTcuOCAxMi44LTI3LjMgNy4zLTkuNi01LjUtMTIuOC0xNy44LTcuMy0yNy4zbDE0LjMtMjQuN2MxNi4xLTQuOSAyOS4zLTEuMSAzOS42IDExLjRMMTI3IDM4NC41em0xMzguOS01My45SDg0Yy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGg1MWw2NS40LTExMy4yLTIwLjUtMzUuNGMtNS41LTkuNi0yLjItMjEuOCA3LjMtMjcuMyA5LjYtNS41IDIxLjgtMi4yIDI3LjMgNy4zbDguOSAxNS40IDguOS0xNS40YzUuNS05LjYgMTcuOC0xMi44IDI3LjMtNy4zIDkuNiA1LjUgMTIuOCAxNy44IDcuMyAyNy4zbC04NS44IDE0OC42aDYyLjFjMjAuMiAwIDMxLjUgMjMuNyAyMi43IDQwem05OC4xIDBoLTI5bDE5LjYgMzMuOWM1LjUgOS42IDIuMiAyMS44LTcuMyAyNy4zLTkuNiA1LjUtMjEuOCAyLjItMjcuMy03LjMtMzIuOS01Ni45LTU3LjUtOTkuNy03NC0xMjguMS0xNi43LTI5LTQuOC01OCA3LjEtNjcuOCAxMy4xIDIyLjcgMzIuNyA1Ni43IDU4LjkgMTAyaDUyYzExIDAgMjAgOSAyMCAyMCAwIDExLjEtOSAyMC0yMCAyMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNSA5LjggNS42IDEzLjEgMTguMSA3LjUgMjcuOWwtODcuNSAxNTEuNWg2My4zYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOEgxMTMuOGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNCAwLTExLjMgOS4xLTIwLjQgMjAuNC0yMC40aDUybDY2LjYtMTE1LjQtMjAuOC0zNi4xYy01LjYtOS44LTIuMy0yMi4yIDcuNS0yNy45IDkuOC01LjYgMjIuMi0yLjMgMjcuOSA3LjVsOC45IDE1Ljd6bS03OC43IDIxOGwtMTkuNiAzNGMtNS42IDkuOC0xOC4xIDEzLjEtMjcuOSA3LjUtOS44LTUuNi0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2g1My4xYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjQgMCAxMS4zLTkuMSAyMC40LTIwLjQgMjAuNGgtMjkuNWwxOS45IDM0LjVjNS42IDkuOCAyLjMgMjIuMi03LjUgMjcuOS05LjggNS42LTIyLjIgMi4zLTI3LjktNy41LTMzLjUtNTguMS01OC43LTEwMS42LTc1LjQtMTMwLjYtMTcuMS0yOS41LTQuOS01OS4xIDcuMi02OS4xIDEzLjQgMjMgMzMuNCA1Ny43IDYwLjEgMTA0ek0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0yMTYgMjQ4YzAgMTE4LjctOTYuMSAyMTYtMjE2IDIxNi0xMTguNyAwLTIxNi05Ni4xLTIxNi0yMTYgMC0xMTguNyA5Ni4xLTIxNiAyMTYtMjE2IDExOC43IDAgMjE2IDk2LjEgMjE2IDIxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Mi4xIDIzOS4xYzIyLjIgMCAyOSAyLjggMzMuNSAxNC42aC44di0yMi45YzAtMTEuMy00LjgtMTUuNC0xNy45LTE1LjQtMTEuMyAwLTE0LjQgMi41LTE1LjEgMTIuOEg0LjhjLjMtMTMuOSAxLjUtMTkuMSA1LjgtMjQuNEMxNy45IDE5NSAyOS41IDE5MiA1Ni43IDE5MmMzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN3Y3Ni4zSDc2LjNsMS4zLTE5LjFoLTFjLTUuMyAxNS42LTEzLjYgMjAuNC0zNS41IDIwLjQtMzAuMyAwLTQxLjEtMTAuMS00MS4xLTM3LjMgMC0yNS4yIDEyLjMtMzUuOCA0Mi4xLTM1Ljh6bTE3LjEgNDguMWMxMy4xIDAgMTYuOS0zIDE2LjktMTMuNCAwLTkuMS00LjMtMTEuNi0xOS42LTExLjYtMTMuMSAwLTE3LjkgMy0xNy45IDEyLjEtLjEgMTAuNCAzLjcgMTIuOSAyMC42IDEyLjl6bTc3LjgtOTQuOWgzOC4zbC0xLjUgMjAuNmguOGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4yIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmgtLjh2NzAuM0gxMzd2LTE2OXptODAuOSA2MC43YzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTcuOS02MC43aDM4LjNsLTEuNSAyMC42aC44YzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjMgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4yaC0uOHY3MC4zaC0zOS41di0xNjl6bTgwLjkgNjAuN2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43djExLjFoLTc1LjNjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWgzNy41djIuM2MwIDkuOC0yLjUgMTguOS02LjggMjQuNy03LjMgOS44LTE5LjYgMTMuNi00NC4zIDEzLjYtMjcuNSAwLTQxLjYtMy4zLTUwLjYtMTIuMy04LjUtOC41LTExLjMtMjEuMy0xMS4zLTUwLjh6bTc2LjQtMTEuNmMtLjMtMS44LS4zLTMuMy0uMy0zLjggMC0xMi4zLTMuMy0xNC42LTE5LjYtMTQuNi0xNC40IDAtMTcuMSAzLTE4LjEgMTUuMWwtLjMgMy4zaDM4LjN6bTU1LjYtNDUuM2gzOC4zbC0xLjggMTkuOWguN2M2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zaC0zNWMuMy0xLjguMy0zLjMuMy00IDAtMTUuNC0yLTE5LjQtMTAuMy0xOS40LTYuMyAwLTEwLjggMy4zLTEzLjEgOS4zLTEgMy0xIDQuMy0xIDEyLjN2NjhoLTM4LjNWMTkyLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwbGVQYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE2LjkgMTU4LjVjLTcuNSA4LjktMTkuNSAxNS45LTMxLjUgMTQuOS0xLjUtMTIgNC40LTI0LjggMTEuMy0zMi42IDcuNS05LjEgMjAuNi0xNS42IDMxLjMtMTYuMSAxLjIgMTIuNC0zLjcgMjQuNy0xMS4xIDMzLjhtMTAuOSAxNy4yYy0xNy40LTEtMzIuMyA5LjktNDAuNSA5LjktOC40IDAtMjEtOS40LTM0LjgtOS4xLTE3LjkuMy0zNC41IDEwLjQtNDMuNiAyNi41LTE4LjggMzIuMy00LjkgODAgMTMuMyAxMDYuMyA4LjkgMTMgMTkuNSAyNy4zIDMzLjUgMjYuOCAxMy4zLS41IDE4LjUtOC42IDM0LjUtOC42IDE2LjEgMCAyMC44IDguNiAzNC44IDguNCAxNC41LS4zIDIzLjYtMTMgMzIuNS0yNiAxMC4xLTE0LjggMTQuMy0yOS4xIDE0LjUtMjkuOS0uMy0uMy0yOC0xMC45LTI4LjMtNDIuOS0uMy0yNi44IDIxLjktMzkuNSAyMi45LTQwLjMtMTIuNS0xOC42LTMyLTIwLjYtMzguOC0yMS4xbTEwMC40LTM2LjJ2MTk0LjloMzAuM3YtNjYuNmg0MS45YzM4LjMgMCA2NS4xLTI2LjMgNjUuMS02NC4zcy0yNi40LTY0LTY0LjEtNjRoLTczLjJ6bTMwLjMgMjUuNWgzNC45YzI2LjMgMCA0MS4zIDE0IDQxLjMgMzguNnMtMTUgMzguOC00MS40IDM4LjhoLTM0LjhWMTY1em0xNjIuMiAxNzAuOWMxOSAwIDM2LjYtOS42IDQ0LjYtMjQuOWguNnYyMy40aDI4di05N2MwLTI4LjEtMjIuNS00Ni4zLTU3LjEtNDYuMy0zMi4xIDAtNTUuOSAxOC40LTU2LjggNDMuNmgyNy4zYzIuMy0xMiAxMy40LTE5LjkgMjguNi0xOS45IDE4LjUgMCAyOC45IDguNiAyOC45IDI0LjV2MTAuOGwtMzcuOCAyLjNjLTM1LjEgMi4xLTU0LjEgMTYuNS01NC4xIDQxLjUuMSAyNS4yIDE5LjcgNDIgNDcuOCA0MnptOC4yLTIzLjFjLTE2LjEgMC0yNi40LTcuOC0yNi40LTE5LjYgMC0xMi4zIDkuOS0xOS40IDI4LjgtMjAuNWwzMy42LTIuMXYxMWMwIDE4LjItMTUuNSAzMS4yLTM2IDMxLjJ6bTEwMi41IDc0LjZjMjkuNSAwIDQzLjQtMTEuMyA1NS41LTQ1LjRMNjQwIDE5M2gtMzAuOGwtMzUuNiAxMTUuMWgtLjZMNTM3LjQgMTkzaC0zMS42TDU1NyAzMzQuOWwtMi44IDguNmMtNC42IDE0LjYtMTIuMSAyMC4zLTI1LjUgMjAuMy0yLjQgMC03LS4zLTguOS0uNXYyMy40YzEuOC40IDkuMy43IDExLjYuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguNyAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuN0M2My4zIDE0MS4yIDQgMTg0LjggNCAyNzMuNXEwIDM5LjMgMTQuNCA4MS4yYzEyLjggMzYuNyA1OSAxMjYuNyAxMDcuMiAxMjUuMiAyNS4yLS42IDQzLTE3LjkgNzUuOC0xNy45IDMxLjggMCA0OC4zIDE3LjkgNzYuNCAxNy45IDQ4LjYtLjcgOTAuNC04Mi41IDEwMi42LTExOS4zLTY1LjItMzAuNy02MS43LTkwLTYxLjctOTEuOXptLTU2LjYtMTY0LjJjMjcuMy0zMi40IDI0LjgtNjEuOSAyNC03Mi41LTI0LjEgMS40LTUyIDE2LjQtNjcuOSAzNC45LTE3LjUgMTkuOC0yNy44IDQ0LjMtMjUuNiA3MS45IDI2LjEgMiA0OS45LTExLjQgNjkuNS0zNC4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFydHN0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzNzcuNGw0MyA3NC4zQTUxLjM1IDUxLjM1IDAgMCAwIDkwLjkgNDgwaDI4NS40bC01OS4yLTEwMi42ek01MDEuOCAzNTBMMzM1LjYgNTkuM0E1MS4zOCA1MS4zOCAwIDAgMCAyOTAuMiAzMmgtODguNGwyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1IDMwNC41bC0xMTUuNS0yMDBMNDQgMzA0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXN5bW1ldHJpayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTcuNSAzMDkuMmMzOC44LTQwIDU4LjEtODAgNTguNS0xMTYuMS44LTY1LjUtNTkuNC0xMTguMi0xNjkuNC0xMzVDMjc3LjkgMzguNCAxMTguMSA3My42IDAgMTQwLjUgNTIgMTE0IDExMC42IDkyLjMgMTcwLjcgODIuM2M3NC41LTIwLjUgMTUzLTI1LjQgMjIxLjMtMTQuOEM1NDQuNSA5MS4zIDU4OC44IDE5NSA0OTAuOCAyOTkuMmMtMTAuMiAxMC44LTIyIDIxLjEtMzUgMzAuNkwzMDQuOSAxMDMuNCAxMTQuNyAzODguOWMtNjUuNi0yOS40LTc2LjUtOTAuMi0xOS4xLTE1MS4yIDIwLjgtMjIuMiA0OC4zLTQxLjkgNzkuNS01OC4xIDIwLTEyLjIgMzkuNy0yMi42IDYyLTMwLjctNjUuMSAyMC4zLTEyMi43IDUyLjktMTYxLjYgOTIuOS0yNy43IDI4LjYtNDEuNCA1Ny4xLTQxLjcgODIuOS0uNSAzNS4xIDIzLjQgNjUuMSA2OC40IDgzbC0zNC41IDUxLjdoMTAxLjZsMjItMzQuNGMyMi4yIDEgNDUuMyAwIDY4LjYtMi43bC0yMi44IDM3LjFoMTM1LjVMMzQwIDQwNi4zYzE4LjYtNS4zIDM2LjktMTEuNSA1NC41LTE4LjdsNDUuOSA3MS44SDU0Mkw0NjguNiAzNDljMTguNS0xMi4xIDM1LTI1LjUgNDguOS0zOS44em0tMTg3LjYgODAuNWwtMjUtNDAuNi0zMi43IDUzLjNjLTIzLjQgMy41LTQ2LjcgNS4xLTY5LjIgNC40bDEwMS45LTE1OS4zIDc4LjcgMTIzYy0xNy4yIDcuNC0zNS4zIDEzLjktNTMuNyAxOS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0bGFzc2lhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuMiAyMzYuNGMtNy43LTguMi0xOS43LTcuNy0yNC44IDIuOEwxLjYgNDkwLjJjLTUgMTAgMi40IDIxLjcgMTMuNCAyMS43aDE3NWM1LjguMSAxMS0zLjIgMTMuNC04LjQgMzcuOS03Ny44IDE1LjEtMTk2LjMtNTEuMi0yNjcuMXpNMjQ0LjQgOC4xYy0xMjIuMyAxOTMuNC04LjUgMzQ4LjYgNjUgNDk1LjUgMi41IDUuMSA3LjcgOC40IDEzLjQgOC40SDQ5N2MxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdWRpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAxOTkuOXY1NGwtMzIwIDIwMEwwIDI1NHYtNTRsMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjYtNzIgMC0xMzUuNSAzNi43LTE3Mi42IDkyLjRoLjNjMi41LTIuMyA1LjEtNC41IDcuNy02LjcgODkuNy03NC40IDIxOS40LTU4LjEgMjkwLjIgMzYuM3ptLTIyMC4xIDE4LjhjMTYuOS0xMS45IDM2LjUtMTguNyA1Ny40LTE4LjcgMzQuNCAwIDY1LjIgMTguNCA4Ni40IDQ3LjZsNDUuNC0yOC40Yy0yMC45LTI5LjktNTUuNi00OS41LTk0LjgtNDkuNS0zOC45IDAtNzMuNCAxOS40LTk0LjQgNDl6TTEwMy42IDE2MS4xYzEzMS44LTEwNC4zIDMxOC4yLTc2LjQgNDE3LjUgNjIuMWwuNyAxIDQ4LjgtMzAuNEM1MTcuMSAxMTIuMSA0MjQuOCA1OC4xIDMxOS45IDU4LjFjLTEwMy41IDAtMTk2LjYgNTMuNS0yNTAuNSAxMzUuNiA5LjktMTAuNSAyMi43LTIzLjUgMzQuMi0zMi42em00NjcgMzIuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdXRvcHJlZml4ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE4LjQgMTZsLTE2MSA0ODBoNzcuNWwyNS40LTgxLjRoMTE5LjVMNDA1IDQ5Nmg3Ny41TDMxOC40IDE2em0tNDAuMyAzNDEuOWw0MS4yLTEzMC40aDEuNWw0MC45IDEzMC40aC04My42ek02NDAgNDA1bC0xMC0zMS40TDQ2Mi4xIDM1OGwxOS40IDU2LjVMNjQwIDQwNXptLTQ2Mi4xLTQ3TDEwIDM3My43IDAgNDA1bDE1OC41IDkuNCAxOS40LTU2LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXZpYW5leCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTMuMSAzMmgtMzEyYy0zOC45IDAtNzYuMiAzMS4yLTgzLjMgNjkuN0wxLjIgNDEwLjNDLTUuOSA0NDguOCAxOS45IDQ4MCA1OC45IDQ4MGgzMTJjMzguOSAwIDc2LjItMzEuMiA4My4zLTY5LjdsNTYuNy0zMDguNWM3LTM4LjYtMTguOC02OS44LTU3LjgtNjkuOHptLTU4LjIgMzQ3LjNsLTMyIDEzLjUtMTE1LjQtMTEwYy0xNC43IDEwLTI5LjIgMTkuNS00MS43IDI3LjFsMjIuMSA2NC4yLTE3LjkgMTIuNy00MC42LTYxLTUyLjQtNDguMSAxNS43LTE1LjQgNTggMzEuMWM5LjMtMTAuNSAyMC44LTIyLjYgMzIuOC0zNC45TDIwMyAyMjguOWwtNjguOC05OS44IDE4LjgtMjguOSA4LjktNC44TDI2NSAyMDcuOGw0LjkgNC41YzE5LjQtMTguOCAzMy44LTMyLjQgMzMuOC0zMi40IDcuNy02LjUgMjEuNS0yLjkgMzAuNyA3LjkgOSAxMC41IDEwLjYgMjQuNyAyLjcgMzEuMy0xLjggMS4zLTE1LjUgMTEuNC0zNS4zIDI1LjZsNC41IDcuMyA5NC45IDExOS40LTYuMyA3Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXZpYXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNy4yIDI4My41bC0xOS00MS44SDM2LjFsLTE5IDQxLjhIMGw2Mi4yLTEzMS40IDYyLjIgMTMxLjRoLTE3LjJ6bS00NS05OC4xbC0xOS42IDQyLjVoMzkuMmwtMTkuNi00Mi41em0xMTIuNyAxMDIuNGwtNjIuMi0xMzEuNGgxNy4xbDQ1LjEgOTYgNDUuMS05NmgxN2wtNjIuMSAxMzEuNHptODAuNi00LjNWMTU2LjRIMjcxdjEyNy4xaC0xNS41em0yMDkuMS0xMTUuNnYxMTUuNmgtMTcuM1YxNjcuOWgtNDEuMnYtMTEuNWg5OS42djExLjVoLTQxLjF6TTY0MCAyMTguOGMwIDkuMi0xLjcgMTcuOC01LjEgMjUuOC0zLjQgOC04LjIgMTUuMS0xNC4yIDIxLjEtNiA2LTEzLjEgMTAuOC0yMS4xIDE0LjItOCAzLjQtMTYuNiA1LjEtMjUuOCA1LjFzLTE3LjgtMS43LTI1LjgtNS4xYy04LTMuNC0xNS4xLTguMi0yMS4xLTE0LjItNi02LTEwLjgtMTMtMTQuMi0yMS4xLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44YzMuNC04IDguMi0xNS4xIDE0LjItMjEuMSA2LTYgMTMtOC40IDIxLjEtMTEuOSA4LTMuNCAxNi42LTUuMSAyNS44LTUuMXMxNy44IDEuNyAyNS44IDUuMWM4IDMuNCAxNS4xIDUuOCAyMS4xIDExLjkgNiA2IDEwLjcgMTMuMSAxNC4yIDIxLjEgMy40IDggNS4xIDE2LjYgNS4xIDI1Ljh6bS0xNS41IDBjMC03LjMtMS4zLTE0LTMuOS0yMC4zLTIuNi02LjMtNi4yLTExLjctMTAuOC0xNi4zLTQuNi00LjYtMTAtOC4yLTE2LjItMTAuOS02LjItMi43LTEyLjgtNC0xOS44LTRzLTEzLjYgMS4zLTE5LjggNGMtNi4yIDIuNy0xMS42IDYuMy0xNi4yIDEwLjktNC42IDQuNi04LjIgMTAtMTAuOCAxNi4zLTIuNiA2LjMtMy45IDEzLjEtMy45IDIwLjMgMCA3LjMgMS4zIDE0IDMuOSAyMC4zIDIuNiA2LjMgNi4yIDExLjcgMTAuOCAxNi4zIDQuNiA0LjYgMTAgOC4yIDE2LjIgMTAuOSA2LjIgMi43IDEyLjggNCAxOS44IDRzMTMuNi0xLjMgMTkuOC00YzYuMi0yLjcgMTEuNi02LjMgMTYuMi0xMC45IDQuNi00LjYgOC4yLTEwIDEwLjgtMTYuMyAyLjYtNi4zIDMuOS0xMy4xIDMuOS0yMC4zem0tOTQuOCA5Ni43di02LjNsODguOS0xMC0yNDIuOSAxMy40Yy42LTIuMiAxLjEtNC42IDEuNC03LjIuMy0yIC41LTQuMi42LTYuNWw2NC44LTguMS02NC45IDEuOWMwLS40LS4xLS43LS4xLTEuMS0yLjgtMTcuMi0yNS41LTIzLjctMjUuNS0yMy43bC0xLjEtMjYuM2gyMy44bDE5IDQxLjhoMTcuMUwzNDguNiAxNTJsLTYyLjIgMTMxLjRoMTcuMWwxOS00MS44aDIzLjZMMzQ1IDI2OHMtMjIuNyA2LjUtMjUuNSAyMy43Yy0uMS4zLS4xLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMuMyA0LjQuNiA2LjUuMyAyLjYuOCA1IDEuNCA3LjJMNzguNCAyOTkuMmw4OC45IDEwdjYuM2MtNS45LjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjQgNi44IDAgMTIuNC01LjYgMTIuNC0xMi40IDAtNi4yLTQuNi0xMS4zLTEwLjUtMTIuMnYtNS44bDgwLjMgOXY1LjRjLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjIgNi44IDAgMTIuNC0zLjQgMTIuNC0xMC4yIDAtNi00LjMtMTEtOS45LTEyLjF2LTQuOWwyOC40IDMuMnYyMy43aC01LjlWMzYwaDUuOXYtNi42aDV2Ni42aDUuOXYtMTMuOGgtNS45VjMyM2wzOC4zIDQuM2M4LjEgMTEuNCAxOSAxMy42IDE5IDEzLjZsLS4xIDYuNy01LjEuMi0uMSAxMi4xaDQuMWwuMS01aDUuMmwuMSA1aDQuMWwtLjEtMTIuMS01LjEtLjItLjEtNi43czEwLjktMi4xIDE5LTEzLjZsMzguMy00LjN2MjMuMmgtNS45VjM2MGg1Ljl2LTYuNmg1djYuNmg1Ljl2LTEzLjhoLTUuOXYtMjMuN2wyOC40LTMuMnY0LjljLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjIgNi44IDAgMTIuNC0zLjQgMTIuNC0xMC4yIDAtNi00LjMtMTEtOS45LTEyLjF2LTUuNGw4MC4zLTl2NS44Yy01LjkuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNCA2LjggMCAxMi40LTUuNiAxMi40LTEyLjQtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3ptLTIwMC44LTg3LjZsMTkuNi00Mi41IDE5LjYgNDIuNWgtMTcuOWwtMS43LTQwLjMtMS43IDQwLjNoLTE3Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4MC40MSAyMDMuMDFjLS43MiAyMi42NSAxMC42IDMyLjY4IDEwLjg4IDM5LjA1YTguMTY0IDguMTY0IDAgMCAxLTQuMSA2LjI3bC0xMi44IDguOTZhMTAuNjYgMTAuNjYgMCAwIDEtNS42MyAxLjkyYy0uNDMtLjAyLTguMTkgMS44My0yMC40OC0yNS42MWE3OC42MDggNzguNjA4IDAgMCAxLTYyLjYxIDI5LjQ1Yy0xNi4yOC44OS02MC40LTkuMjQtNTguMTMtNTYuMjEtMS41OS0zOC4yOCAzNC4wNi02Mi4wNiA3MC45My02MC4wNSA3LjEuMDIgMjEuNi4zNyA0Ni45OSA2LjI3di0xNS42MmMyLjY5LTI2LjQ2LTE0LjctNDYuOTktNDQuODEtNDMuOTEtMi40LjAxLTE5LjQtLjUtNDUuODQgMTAuMTEtNy4zNiAzLjM4LTguMyAyLjgyLTEwLjc1IDIuODItNy40MSAwLTQuMzYtMjEuNDgtMi45NC0yNC4yIDUuMjEtNi40IDM1Ljg2LTE4LjM1IDY1Ljk0LTE4LjE4YTc2Ljg1NyA3Ni44NTcgMCAwIDEgNTUuNjkgMTcuMjggNzAuMjg1IDcwLjI4NSAwIDAgMSAxNy42NyA1Mi4zNmwtLjAxIDY5LjI5ek05My45OSAyMzUuNGMzMi40My0uNDcgNDYuMTYtMTkuOTcgNDkuMjktMzAuNDcgMi40Ni0xMC4wNSAyLjA1LTE2LjQxIDIuMDUtMjcuNC05LjY3LTIuMzItMjMuNTktNC44NS0zOS41Ni00Ljg3LTE1LjE1LTEuMTQtNDIuODIgNS42My00MS43NCAzMi4yNi0xLjI0IDE2Ljc5IDExLjEyIDMxLjQgMjkuOTYgMzAuNDh6bTE3MC45MiAyMy4wNWMtNy44Ni43Mi0xMS41Mi00Ljg2LTEyLjY4LTEwLjM3bC00OS44LTE2NC42NWMtLjk3LTIuNzgtMS42MS01LjY1LTEuOTItOC41OGE0LjYxIDQuNjEgMCAwIDEgMy44Ni01LjI1Yy4yNC0uMDQtMi4xMyAwIDIyLjI1IDAgOC43OC0uODggMTEuNjQgNi4wMyAxMi41NSAxMC4zN2wzNS43MiAxNDAuODMgMzMuMTYtMTQwLjgzYy41My0zLjIyIDIuOTQtMTEuMDcgMTIuOC0xMC4yNGgxNy4xNmMyLjE3LS4xOCAxMS4xMS0uNSAxMi42OCAxMC4zN2wzMy40MiAxNDIuNjNMNDIwLjk4IDgwLjFjLjQ4LTIuMTggMi43Mi0xMS4zNyAxMi42OC0xMC4zN2gxOS43MmMuODUtLjEzIDYuMTUtLjgxIDUuMjUgOC41OC0uNDMgMS44NSAzLjQxLTEwLjY2LTUyLjc1IDE2OS45LTEuMTUgNS41MS00LjgyIDExLjA5LTEyLjY4IDEwLjM3aC0xOC42OWMtMTAuOTQgMS4xNS0xMi41MS05LjY2LTEyLjY4LTEwLjc1TDMyOC42NyAxMTAuN2wtMzIuNzggMTM2Ljk5Yy0uMTYgMS4wOS0xLjczIDExLjktMTIuNjggMTAuNzVoLTE4LjN6bTI3My40OCA1LjYzYy01Ljg4LjAxLTMzLjkyLS4zLTU3LjM2LTEyLjI5YTEyLjgwMiAxMi44MDIgMCAwIDEtNy44MS0xMS45MXYtMTAuNzVjMC04LjQ1IDYuMi02LjkgOC44My01Ljg5IDEwLjA0IDQuMDYgMTYuNDggNy4xNCAyOC44MSA5LjYgMzYuNjUgNy41MyA1Mi43Ny0yLjMgNTYuNzItNC40OCAxMy4xNS03LjgxIDE0LjE5LTI1LjY4IDUuMjUtMzQuOTUtMTAuNDgtOC43OS0xNS40OC05LjEyLTUzLjEzLTIxLTQuNjQtMS4yOS00My43LTEzLjYxLTQzLjc5LTUyLjM2LS42MS0yOC4yNCAyNS4wNS01Ni4xOCA2OS41Mi01NS45NSAxMi42Ny0uMDEgNDYuNDMgNC4xMyA1NS41NyAxNS42MiAxLjM1IDIuMDkgMi4wMiA0LjU1IDEuOTIgNy4wNHYxMC4xMWMwIDQuNDQtMS42MiA2LjY2LTQuODcgNi42Ni03LjcxLS44Ni0yMS4zOS0xMS4xNy00OS4xNi0xMC43NS02Ljg5LS4zNi0zOS44OS45MS0zOC40MSAyNC45Ny0uNDMgMTguOTYgMjYuNjEgMjYuMDcgMjkuNyAyNi44OSAzNi40NiAxMC45NyA0OC42NSAxMi43OSA2My4xMiAyOS41OCAxNy4xNCAyMi4yNSA3LjkgNDguMyA0LjM1IDU1LjQ0LTE5LjA4IDM3LjQ5LTY4LjQyIDM0LjQ0LTY5LjI2IDM0LjQyem00MC4yIDEwNC44NmMtNzAuMDMgNTEuNzItMTcxLjY5IDc5LjI1LTI1OC40OSA3OS4yNUE0NjkuMTI3IDQ2OS4xMjcgMCAwIDEgMi44MyAzMjcuNDZjLTYuNTMtNS44OS0uNzctMTMuOTYgNy4xNy05LjQ3YTYzNy4zNyA2MzcuMzcgMCAwIDAgMzE2Ljg4IDg0LjEyIDYzMC4yMiA2MzAuMjIgMCAwIDAgMjQxLjU5LTQ5LjU1YzExLjc4LTUgMjEuNzcgNy44IDEwLjEyIDE2LjM4em0yOS4xOS0zMy4yOWMtOC45Ni0xMS41Mi01OS4yOC01LjM4LTgxLjgxLTIuNjktNi43OS43Ny03Ljk0LTUuMTItMS43OS05LjQ3IDQwLjA3LTI4LjE3IDEwNS44OC0yMC4xIDExMy40NC0xMC42MyA3LjU1IDkuNDctMi4wNSA3NS40MS0zOS41NiAxMDYuOTEtNS43NiA0Ljg3LTExLjI3IDIuMy04LjcxLTQuMSA4LjQ0LTIxLjI1IDI3LjM5LTY4LjQ5IDE4LjQzLTgwLjAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbmRjYW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhabTQ4LjIsMzI2LjFoLTE4MUwyMDcuOSwxNzhoMTgxWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRsZU5ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDguNjEgMjI1LjYyYzI2Ljg3LjE4IDM1LjU3LTcuNDMgMzguOTItMTIuMzcgMTIuNDctMTYuMzItNy4wNi00Ny42LTUyLjg1LTcxLjMzIDE3Ljc2LTMzLjU4IDMwLjExLTYzLjY4IDM2LjM0LTg1LjMgMy4zOC0xMS44MyAxLjA5LTE5IC40NS0yMC4yNS0xLjcyIDEwLjUyLTE1Ljg1IDQ4LjQ2LTQ4LjIgMTAwLjA1LTI1LTExLjIyLTU2LjUyLTIwLjEtOTMuNzctMjMuOC04Ljk0LTE2Ljk0LTM0Ljg4LTYzLjg2LTYwLjQ4LTg4LjkzQzI1Mi4xOCA3LjE0IDIzOC43IDEuMDcgMjI4LjE4LjIyaC0uMDVjLTEzLjgzLTEuNTUtMjIuNjcgNS44NS0yNy40IDExLTE3LjIgMTguNTMtMjQuMzMgNDguODctMjUgODQuMDctNy4yNC0xMi4zNS0xNy4xNy0yNC42My0yOC41LTI1LjkzaC0uMThjLTIwLjY2LTMuNDgtMzguMzkgMjkuMjItMzYgODEuMjktMzguMzYgMS4zOC03MSA1Ljc1LTkzIDExLjIzLTkuOSAyLjQ1LTE2LjIyIDcuMjctMTcuNzYgOS43MiAxLS4zOCAyMi40LTkuMjIgMTExLjU2LTkuMjIgNS4yMiA1MyAyOS43NSAxMDEuODIgMjYgOTMuMTktOS43MyAxNS40LTM4LjI0IDYyLjM2LTQ3LjMxIDk3LjctNS44NyAyMi44OC00LjM3IDM3LjYxLjE1IDQ3LjE0IDUuNTcgMTIuNzUgMTYuNDEgMTYuNzIgMjMuMiAxOC4yNiAyNSA1LjcxIDU1LjM4LTMuNjMgODYuNy0yMS4xNC03LjUzIDEyLjg0LTEzLjkgMjguNTEtOS4wNiAzOS4zNCA3LjMxIDE5LjY1IDQ0LjQ5IDE4LjY2IDg4LjQ0LTkuNDUgMjAuMTggMzIuMTggNDAuMDcgNTcuOTQgNTUuNyA3NC4xMmEzOS43OSAzOS43OSAwIDAgMCA4Ljc1IDcuMDljNS4xNCAzLjIxIDguNTggMy4zNyA4LjU4IDMuMzctOC4yNC02Ljc1LTM0LTM4LTYyLjU0LTkxLjc4IDIyLjIyLTE2IDQ1LjY1LTM4Ljg3IDY3LjQ3LTY5LjI3IDEyMi44MiA0LjYgMTQzLjI5LTI0Ljc2IDE0OC0zMS42NCAxNC42Ny0xOS44OCAzLjQzLTU3LjQ0LTU3LjMyLTkzLjY5em0tNzcuODUgMTA2LjIyYzIzLjgxLTM3LjcxIDMwLjM0LTY3Ljc3IDI5LjQ1LTkyLjMzIDI3Ljg2IDE3LjU3IDQ3LjE4IDM3LjU4IDQ5LjA2IDU4LjgzIDEuMTQgMTIuOTMtOC4xIDI5LjEyLTc4LjUxIDMzLjV6TTIxNi45IDM4Ny42OWM5Ljc2LTYuMjMgMTkuNTMtMTMuMTIgMjkuMi0yMC40OSA2LjY4IDEzLjMzIDEzLjYgMjYuMSAyMC42IDM4LjE5LTQwLjYgMjEuODYtNjguODQgMTIuNzYtNDkuOC0xNy43em0yMTUtMTcxLjM1Yy0xMC4yOS01LjM0LTIxLjE2LTEwLjM0LTMyLjM4LTE1LjA1YTcyMi40NTkgNzIyLjQ1OSAwIDAgMCAyMi43NC0zNi45YzM5LjA2IDI0LjEgNDUuOSA1My4xOCA5LjY0IDUxLjk1ek0yNzkuMTggMzk4Yy01LjUxLTExLjM1LTExLTIzLjUtMTYuNS0zNi40NCA0My4yNSAxLjI3IDYyLjQyLTE4LjczIDYzLjI4LTIwLjQxIDAgLjA3LTI1IDE1LjY0LTYyLjUzIDEyLjI1YTcxOC43OCA3MTguNzggMCAwIDAgODUuMDYtODRxMTMuMDYtMTUuMzEgMjQuOTMtMzEuMTFjLS4zNi0uMjktMS41NC0zLTE2LjUxLTEyLTUxLjcgNjAuMjctMTAyLjM0IDk4LTEzMi43NSAxMTUuOTItMjAuNTktMTEuMTgtNDAuODQtMzEuNzgtNTUuNzEtNjEuNDktMjAtMzkuOTItMzAtODIuMzktMzEuNTctMTE2LjA3IDEyLjMuOTEgMjUuMjcgMi4xNyAzOC44NSAzLjg4LTIyLjI5IDM2LjgtMTQuMzkgNjMtMTMuNDcgNjQuMjMgMC0uMDctLjk1LTI5LjE3IDIwLjE0LTU5LjU3YTY5NS4yMyA2OTUuMjMgMCAwIDAgNDQuNjcgMTUyLjg0Yy45My0uMzggMS44NC44OCAxOC42Ny04LjI1LTI2LjMzLTc0LjQ3LTMzLjc2LTEzOC4xNy0zNC0xNzMuNDMgMjAtMTIuNDIgNDguMTgtMTkuOCA4MS42My0xNy44MSA0NC41NyAyLjY3IDg2LjM2IDE1LjI1IDExNi4zMiAzMC43MXEtMTAuNjkgMTUuNjYtMjMuMzMgMzIuNDdDMzY1LjYzIDE1MiAzMzkuMSAxNDUuODQgMzM3LjUgMTQ2Yy4xMSAwIDI1LjkgMTQuMDcgNDEuNTIgNDcuMjJhNzE3LjYzIDcxNy42MyAwIDAgMC0xMTUuMzQtMzEuNzEgNjQ2LjYwOCA2NDYuNjA4IDAgMCAwLTM5LjM5LTYuMDVjLS4wNy40NS0xLjgxIDEuODUtMi4xNiAyMC4zM0MzMDAgMTkwLjI4IDM1OC43OCAyMTUuNjggMzg5LjM2IDIzM2MuNzQgMjMuNTUtNi45NSA1MS42MS0yNS40MSA3OS41Ny0yNC42IDM3LjMxLTU2LjM5IDY3LjIzLTg0Ljc3IDg1LjQzem0yNy40LTI4N2MtNDQuNTYtMS42Ni03My41OCA3LjQzLTk0LjY5IDIwLjY3IDItNTIuMyAyMS4zMS03Ni4zOCAzOC4yMS03NS4yOEMyNjcgNTIuMTUgMzA1IDEwOC41NSAzMDYuNTggMTExem0tMTMwLjY1IDMuMWMuNDggMTIuMTEgMS41OSAyNC42MiAzLjIxIDM3LjI4LTE0LjU1LS44NS0yOC43NC0xLjI1LTQyLjQtMS4yNi0uMDggMy4yNC0uMTItNTEgMjQuNjctNDkuNTloLjA5YzUuNzYgMS4wOSAxMC42MyA2Ljg4IDE0LjQzIDEzLjU3em0tMjguMDYgMTYyYzIwLjc2IDM5LjcgNDMuMyA2MC41NyA2NS4yNSA3Mi4zMS00Ni43OSAyNC43Ni03Ny41MyAyMC04NC45MiA0LjUxLS4yLS4yMS0xMS4xMy0xNS4zIDE5LjY3LTc2Ljgxem0yMTAuMDYgNzQuOFwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlaGFuY2VTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjUgMjkzYzAgMTkuMy0xNCAyNS40LTMxLjIgMjUuNGgtNDUuMXYtNTIuOWg0NmMxOC42LjEgMzAuMyA3LjggMzAuMyAyNy41em0tNy43LTgyLjNjMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjloLTM5LjZ2NDQuOEgxNTNjMTUuMSAwIDI1LjgtNi42IDI1LjgtMjIuOXptMTMyLjMgMjMuMmMtMTguMyAwLTMwLjUgMTEuNC0zMS43IDI5LjdoNjIuMmMtMS43LTE4LjUtMTEuMy0yOS43LTMwLjUtMjkuN3pNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0yNzEuNyAxODVoNzcuOHYtMTguOWgtNzcuOFYxODV6bS00MyAxMTAuM2MwLTI0LjEtMTEuNC00NC45LTM1LTUxLjYgMTcuMi04LjIgMjYuMi0xNy43IDI2LjItMzcgMC0zOC4yLTI4LjUtNDcuNS02MS40LTQ3LjVINjh2MTkyaDkzLjFjMzQuOS0uMiA2Ny42LTE2LjkgNjcuNi01NS45ek0zODAgMjgwLjVjMC00MS4xLTI0LjEtNzUuNC02Ny42LTc1LjQtNDIuNCAwLTcxLjEgMzEuOC03MS4xIDczLjYgMCA0My4zIDI3LjMgNzMgNzEuMSA3MyAzMy4yIDAgNTQuNy0xNC45IDY1LjEtNDYuOGgtMzMuN2MtMy43IDExLjktMTguNiAxOC4xLTMwLjIgMTguMS0yMi40IDAtMzQuMS0xMy4xLTM0LjEtMzUuM2gxMDAuMmMuMS0yLjMuMy00LjguMy03LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVoYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOEgwdjM1NC40aDE3MS44YzY0LjQgMCAxMjQuOS0zMC45IDEyNC45LTEwMi45IDAtNDQuNS0yMS4xLTc3LjQtNjQuNy04OS43ek03Ny45IDEzNS45SDE1MWMyOC4xIDAgNTMuNCA3LjkgNTMuNCA0MC41IDAgMzAuMS0xOS43IDQyLjItNDcuNSA0Mi4yaC03OXYtODIuN3ptODMuMyAyMzMuN0g3Ny45VjI3Mmg4NC45YzM0LjMgMCA1NiAxNC4zIDU2IDUwLjYgMCAzNS44LTI1LjkgNDctNTcuNiA0N3ptMzU4LjUtMjQwLjdIMzc2Vjk0aDE0My43djM0Ljl6TTU3NiAzMDUuMmMwLTc1LjktNDQuNC0xMzkuMi0xMjQuOS0xMzkuMi03OC4yIDAtMTMxLjMgNTguOC0xMzEuMyAxMzUuOCAwIDc5LjkgNTAuMyAxMzQuNyAxMzEuMyAxMzQuNyA2MS4zIDAgMTAxLTI3LjYgMTIwLjEtODYuM0g1MDljLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2gxODUuMWMuMy00LjIuNi04LjcuNi0xMy4yek0zOTAuNCAyNzRjMi4zLTMzLjcgMjQuNy01NC44IDU4LjUtNTQuOCAzNS40IDAgNTMuMiAyMC44IDU2LjIgNTQuOEgzOTAuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW1vYmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMySDMyQzE0LjQgMzIgMCA0Ni40IDAgNjR2Mzg0YzAgMTcuNiAxNC40IDMyIDMyIDMyaDM4NGMxNy42IDAgMzItMTQuNCAzMi0zMlY2NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnptLTY0IDI1Ny40YzAgNDkuNC0xMS40IDgyLjYtMTAzLjggODIuNmgtMTYuOWMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhoLS45VjM2OEg5NlYxMzZoNjR2NzQuN2gxLjFjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGgxNy4zYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjV2MzV6bS02NC0yOC45djIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGgtNDUuM2MtMjguOSAwLTQ0LjEtNi41LTQ0LjEtMzUuN3YtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdoNDUuM2MzNS0uMiAzOC40IDEyIDM4LjQgMzMuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaXRidWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuMiAzMkExNiAxNiAwIDAgMCA2IDQ3LjhhMjYuMzUgMjYuMzUgMCAwIDAgLjIgMi44bDY3LjkgNDEyLjFhMjEuNzcgMjEuNzcgMCAwIDAgMjEuMyAxOC4yaDMyNS43YTE2IDE2IDAgMCAwIDE2LTEzLjRMNTA1IDUwLjdhMTYgMTYgMCAwIDAtMTMuMi0xOC4zIDI0LjU4IDI0LjU4IDAgMCAwLTIuOC0uMkwyMi4yIDMyem0yODUuOSAyOTcuOGgtMTA0bC0yOC4xLTE0N2gxNTcuM2wtMjUuMiAxNDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0Y29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHptLTE0MS42NTEtMzUuMzNjNC45MzctMzIuOTk5LTIwLjE5MS01MC43MzktNTQuNTUtNjIuNTczbDExLjE0Ni00NC43MDItMjcuMjEzLTYuNzgxLTEwLjg1MSA0My41MjRjLTcuMTU0LTEuNzgzLTE0LjUwMi0zLjQ2NC0yMS44MDMtNS4xM2wxMC45MjktNDMuODEtMjcuMTk4LTYuNzgxLTExLjE1MyA0NC42ODZjLTUuOTIyLTEuMzQ5LTExLjczNS0yLjY4Mi0xNy4zNzctNC4wODRsLjAzMS0uMTQtMzcuNTMtOS4zNy03LjIzOSAyOS4wNjJzMjAuMTkxIDQuNjI3IDE5Ljc2NSA0LjkxM2MxMS4wMjIgMi43NTEgMTMuMDE0IDEwLjA0NCAxMi42OCAxNS44MjVsLTEyLjY5NiA1MC45MjVjLjc2LjE5NCAxLjc0NC40NzMgMi44MjkuOTA3LS45MDctLjIyNS0xLjg3Ni0uNDczLTIuODc2LS43MTNsLTE3Ljc5NiA3MS4zMzhjLTEuMzQ5IDMuMzQ4LTQuNzY3IDguMzctMTIuNDcxIDYuNDY0LjI3MS4zOTUtMTkuNzgtNC45MzctMTkuNzgtNC45MzdsLTEzLjUxIDMxLjE0NyAzNS40MTQgOC44MjdjNi41ODggMS42NTEgMTMuMDQ1IDMuMzc5IDE5LjQgNS4wMDZsLTExLjI2MiA0NS4yMTMgMjcuMTgyIDYuNzgxIDExLjE1My00NC43MzNhMTAzOC4yMDkgMTAzOC4yMDkgMCAwIDAgMjEuNjg3IDUuNjI3bC0xMS4xMTUgNDQuNTIzIDI3LjIxMyA2Ljc4MSAxMS4yNjItNDUuMTI4YzQ2LjQwNCA4Ljc4MSA4MS4yOTkgNS4yMzkgOTUuOTg2LTM2LjcyNyAxMS44MzYtMzMuNzktLjU4OS01My4yODEtMjUuMDA0LTY1Ljk5MSAxNy43OC00LjA5OCAzMS4xNzQtMTUuNzkyIDM0Ljc0Ny0zOS45NDl6bS02Mi4xNzcgODcuMTc5Yy04LjQxIDMzLjc5LTY1LjMwOCAxNS41MjMtODMuNzU1IDEwLjk0M2wxNC45NDQtNTkuODk5YzE4LjQ0NiA0LjYwMyA3Ny42IDEzLjcxNyA2OC44MTEgNDguOTU2em04LjQxNy04Ny42NjdjLTcuNjczIDMwLjczNi01NS4wMzEgMTUuMTItNzAuMzkzIDExLjI5MmwxMy41NDgtNTQuMzI3YzE1LjM2MyAzLjgyOCA2NC44MzYgMTAuOTczIDU2Ljg0NSA0My4wMzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03OC40IDY3LjJDMTczLjgtMjIgMzI0LjUtMjQgNDIxLjUgNzFjMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwQzczIDQyMS45IDkuNCAzMDYuMSAzNy43IDE5NC44YzUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOC04LjIgMC0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDB2NzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMuOCAxMTgtMjAuOCAxMTgtOTAuMXYtNzEuNmMwLTE5LjYtMzIuNS0yMS44LTMyLjUgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbGFja1RpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMzE2LjUgMzI1LjJMMjI0IDQ0NS45bC05Mi41LTg4LjcgNjQuNS0xODQtNjQuNS04Ni42aDE4NC45TDI1MiAxNzMuMmw2NC41IDE4NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbGFja2JlcnJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NiAxMTYuOWMwIDIzLjQtMTYuNCA0OS4xLTcyLjUgNDkuMUgyMy40bDIxLTg4LjhoNjcuOGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3ptMTI2LjItMzkuN2gtNjcuOEwyMDUuNyAxNjZoNzAuMWM1My44IDAgNzAuMS0yNS43IDcwLjEtNDkuMS4xLTE2LjQtMTEuNi0zOS43LTUzLjctMzkuN3pNODguOCAyMDguMUgyMUwwIDI5Ni45aDcwLjFjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBoLTY3LjhsLTE4LjcgODguOGg3MC4xYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44aC02Ny44bC0xOC43IDg4LjhoNzAuMWM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMS4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3ptLTI4IDEzNy45aC02Ny44TDM0My43IDM4MWg3MC4xYzU2LjEgMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43ek0yNDAuOCAzNDZIMTczbC0xOC43IDg4LjhoNzAuMWM1Ni4xIDAgNzAuMS0yNS43IDcwLjEtNDkuMS4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nZ2VyQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOC42LTEwOC40IDEwQzQ1LjkgNTkuNSAxNC43IDk2LjEgMy4zIDE0Mi45IDEuMiAxNTEuNy43IDE2NS44LjIgMjQ2LjhjLS42IDEwMS41LjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6bS0zMjIuMS02My42YzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40LjEgNTEuOCAzLjQgOS4zIDQuNyAxMy40IDExLjMgMTMuNCAyMS45IDAgOS41LTMuOCAxNi4yLTEyLjMgMjEuNi00LjYgMi45LTcuMyAzLjEtNTAuMyAzLjMtMjYuNS4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHptMTkxLjggMTk5LjhsLTE0LjkgMi40LTc3LjUuOWMtNjguMS44LTg3LjMtLjQtOTAuOS0yLTcuMS0zLjEtMTMuOC0xMS43LTE0LjktMTkuNC0xLjEtNy4zIDIuNi0xNy4zIDguMi0yMi40IDcuMS02LjQgMTAuMi02LjYgOTcuMy02LjcgODkuNi0uMSA4OS4xLS4xIDk3LjYgNy44IDEyLjEgMTEuMyA5LjUgMzEuMi00LjkgMzkuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Mi40IDE5NmM0LjgtNC45IDYuMi01LjEgMzYuNC01LjEgMjcuMiAwIDI4LjEuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNC4xLTI5LjUtLjItMzEuNS0uOC0xMC4zLTIuOS0xNC4xLTE3LjctNi42LTI1LjN6bTYxLjQgOTQuNWMtNTMuOSAwLTU1LjguMi02MC4yIDQuMS0zLjUgMy4xLTUuNyA5LjQtNS4xIDEzLjkuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3ptMjIzLjQgMTMwLjFjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJDLjEgNDIzIDAgNDIwLjMgMCAyNTYuMyAwIDkzLjIgMCA4OS43IDEuOCA4Mi42IDguMSA1Ny45IDI3LjcgMzkgNTMgMzMuNGM3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYuMiAxMTUuOCAwIDE2NC41LS43IDE3MC41em0tODUuNC0xODUuMmMtMS4xLTUtNC4yLTkuNi03LjctMTEuNS0xLjEtLjYtOC0xLjMtMTUuNS0xLjctMTIuNC0uNi0xMy44LS44LTE3LjgtMy4xLTYuMi0zLjYtNy45LTcuNi04LTE4LjMgMC0yMC40LTguNS0zOS40LTI1LjMtNTYuNS0xMi0xMi4yLTI1LjMtMjAuNS00MC42LTI1LjEtMy42LTEuMS0xMS44LTEuNS0zOS4yLTEuOC00Mi45LS41LTUyLjUuNC02Ny4xIDYuMi0yNyAxMC43LTQ2LjMgMzMuNC01My40IDYyLjQtMS4zIDUuNC0xLjYgMTQuMi0xLjkgNjQuMy0uNCA2Mi44IDAgNzIuMSA0IDg0LjUgOS43IDMwLjcgMzcuMSA1My40IDY0LjYgNTguNCA5LjIgMS43IDEyMi4yIDIuMSAxMzMuNy41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmx1ZXRvb3RoQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTYuNDggMjYwLjAyM2w5Mi42MjYtMTAzLjMzM0wxNDMuMTI1IDB2MjA2LjMzbC04Ni4xMTEtODYuMTExLTMxLjQwNiAzMS40MDUgMTA4LjA2MSAxMDguMzk5TDI1LjYwOCAzNjguNDIybDMxLjQwNiAzMS40MDUgODYuMTExLTg2LjExMUwxNDUuODQgNTEybDE0OC41NTItMTQ4LjY0NC05Ny45MTItMTAzLjMzM3ptNDAuODYtMTAyLjk5NmwtNDkuOTc3IDQ5Ljk3OC0uMzM4LTEwMC4yOTUgNTAuMzE1IDUwLjMxN3pNMTg3LjM2MyAzMTMuMDRsNDkuOTc3IDQ5Ljk3OC01MC4zMTUgNTAuMzE2LjMzOC0xMDAuMjk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsdWV0b290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTIuNiAxNzEuMUwyNDkuNyAyMTRsLS4zLTg2IDQzLjIgNDMuMW0tNDMuMiAyMTkuOGw0My4xLTQzLjEtNDIuOS00Mi45LS4yIDg2ek00MTYgMjU5LjRDNDE2IDQ2NSAzNDQuMSA1MTIgMjMwLjkgNTEyUzMyIDQ2NSAzMiAyNTkuNCAxMTUuNCAwIDIyOC42IDAgNDE2IDUzLjkgNDE2IDI1OS40em0tMTU4LjUgMGw3OS40LTg4LjZMMjExLjggMzYuNXYxNzYuOUwxMzggMTM5LjZsLTI3IDI2LjkgOTIuNyA5My05Mi43IDkzIDI2LjkgMjYuOSA3My44LTczLjggMi4zIDE3MCAxMjcuNC0xMjcuNS04My45LTg4Ljd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9vdHN0cmFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMy41LDIwMS40YzAtMjIuMS0xNS42LTM0LjMtNDMtMzQuM2gtNTAuNHY3MS4yaDQyLjVDMzE1LjQsMjM4LjIsMzMzLjUsMjI1LDMzMy41LDIwMS40eiBNNTE3LDE4OC42IGMtOS41LTMwLjktMTAuOS02OC44LTkuOC05OC4xYzEuMS0zMC41LTIyLjctNTguNS01NC43LTU4LjVIMTIzLjdjLTMyLjEsMC01NS44LDI4LjEtNTQuNyw1OC41YzEsMjkuMy0wLjMsNjcuMi05LjgsOTguMSBjLTkuNiwzMS0yNS43LDUwLjYtNTIuMiw1My4xdjI4LjVjMjYuNCwyLjUsNDIuNiwyMi4xLDUyLjIsNTMuMWM5LjUsMzAuOSwxMC45LDY4LjgsOS44LDk4LjFjLTEuMSwzMC41LDIyLjcsNTguNSw1NC43LDU4LjVoMzI4LjcgYzMyLjEsMCw1NS44LTI4LjEsNTQuNy01OC41Yy0xLTI5LjMsMC4zLTY3LjIsOS44LTk4LjFjOS42LTMxLDI1LjctNTAuNiw1Mi4xLTUzLjF2LTI4LjVDNTQyLjcsMjM5LjIsNTI2LjUsMjE5LjYsNTE3LDE4OC42eiBNMzAwLjIsMzc1LjFoLTk3LjlWMTM2LjhoOTcuNGM0My4zLDAsNzEuNywyMy40LDcxLjcsNTkuNGMwLDI1LjMtMTkuMSw0Ny45LTQzLjUsNTEuOHYxLjNjMzMuMiwzLjYsNTUuNSwyNi42LDU1LjUsNTguMyBDMzgzLjQsMzQ5LjcsMzUyLjEsMzc1LjEsMzAwLjIsMzc1LjF6IE0yOTAuMiwyNjYuNGgtNTAuMXY3OC40aDUyLjNjMzQuMiwwLDUyLjMtMTMuNyw1Mi4zLTM5LjUgQzM0NC43LDI3OS42LDMyNi4xLDI2Ni40LDI5MC4yLDI2Ni40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ0YyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTAuMjA0IDI0Mi42MzhjMjcuNzMtMTQuMTggNDUuMzc3LTM5LjM5IDQxLjI4LTgxLjMtNS4zNTgtNTcuMzUxLTUyLjQ1OC03Ni41NzMtMTE0Ljg1LTgxLjkyOVYwaC00OC41Mjh2NzcuMjAzYy0xMi42MDUgMC0yNS41MjUuMzE1LTM4LjQ0NC42M1YwaC00OC41Mjh2NzkuNDA5Yy0xNy44NDIuNTM5LTM4LjYyMi4yNzYtOTcuMzcgMHY1MS42NzhjMzguMzE0LS42NzggNTguNDE3LTMuMTQgNjMuMDIzIDIxLjQyN3YyMTcuNDI5Yy0yLjkyNSAxOS40OTItMTguNTI0IDE2LjY4NS01My4yNTUgMTYuMDcxTDMuNzY1IDQ0My42OGM4OC40ODEgMCA5Ny4zNy4zMTUgOTcuMzcuMzE1VjUxMmg0OC41Mjh2LTY3LjA2YzEzLjIzNC4zMTUgMjYuMTU0LjMxNSAzOC40NDQuMzE1VjUxMmg0OC41Mjh2LTY4LjAwNWM4MS4yOTktNC40MTIgMTM1LjY0Ny0yNC44OTQgMTQyLjg5NS0xMDEuNDY3IDUuNjcxLTYxLjQ0Ni0yMy4zMi04OC44NjItNjkuMzI2LTk5Ljg5ek0xNTAuNjA4IDEzNC41NTNjMjcuNDE1IDAgMTEzLjEyNi04LjUwNyAxMTMuMTI2IDQ4LjUyOCAwIDU0LjUxNS04NS43MSA0OC4yMTItMTEzLjEyNiA0OC4yMTJ2LTk2Ljc0em0wIDI1MS43NzZWMjc5LjgyMWMzMi43NzIgMCAxMzMuMTI3LTkuMTM4IDEzMy4xMjcgNTMuMjU1LS4wMDEgNjAuMTg2LTEwMC4zNTUgNTMuMjUzLTEzMy4xMjcgNTMuMjUzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1ZmZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjcuODQgMzgwLjY3bC0xOTYuNSA5Ny44MmExOC42IDE4LjYgMCAwIDEtMTQuNjcgMEwyMC4xNiAzODAuNjdjLTQtMi00LTUuMjggMC03LjI5TDY3LjIyIDM1MGExOC42NSAxOC42NSAwIDAgMSAxNC42OSAwbDEzNC43NiA2N2ExOC41MSAxOC41MSAwIDAgMCAxNC42NyAwbDEzNC43Ni02N2ExOC42MiAxOC42MiAwIDAgMSAxNC42OCAwbDQ3LjA2IDIzLjQzYzQuMDUgMS45NiA0LjA1IDUuMjQgMCA3LjI0em0wLTEzNi41M2wtNDcuMDYtMjMuNDNhMTguNjIgMTguNjIgMCAwIDAtMTQuNjggMGwtMTM0Ljc2IDY3LjA4YTE4LjY4IDE4LjY4IDAgMCAxLTE0LjY3IDBMODEuOTEgMjIwLjcxYTE4LjY1IDE4LjY1IDAgMCAwLTE0LjY5IDBsLTQ3LjA2IDIzLjQzYy00IDItNCA1LjI5IDAgNy4zMWwxOTYuNTEgOTcuOGExOC42IDE4LjYgMCAwIDAgMTQuNjcgMGwxOTYuNS05Ny44YzQuMDUtMi4wMiA0LjA1LTUuMyAwLTcuMzF6TTIwLjE2IDEzMC40MmwxOTYuNSA5MC4yOWEyMC4wOCAyMC4wOCAwIDAgMCAxNC42NyAwbDE5Ni41MS05MC4yOWM0LTEuODYgNC00Ljg5IDAtNi43NEwyMzEuMzMgMzMuNGExOS44OCAxOS44OCAwIDAgMC0xNC42NyAwbC0xOTYuNSA5MC4yOGMtNC4wNSAxLjg1LTQuMDUgNC44OCAwIDYuNzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVyb21vYmVsZXhwZXJ0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjEyOGgxMjhWMzJIMHptMTIwIDEyMEg4VjQwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjMySDE2MHptMTIwIDEyMEgxNjhWNDBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzJIMzIwem0xMjAgMTIwSDMyOFY0MGgxMTJ2MTEyek0wIDE5MnYxMjhoMTI4VjE5Mkgwem0xMjAgMTIwSDhWMjAwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjE5MkgxNjB6bTEyMCAxMjBIMTY4VjIwMGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYxOTJIMzIwem0xMjAgMTIwSDMyOFYyMDBoMTEydjExMnpNMCAzNTJ2MTI4aDEyOFYzNTJIMHptMTIwIDEyMEg4VjM2MGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYzNTJIMTYwem0xMjAgMTIwSDE2OFYzNjBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzUySDMyMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXlOTGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyQzEzMy4yNyAzMiA3Ljc5IDEzMi4zMiA3Ljc5IDI1NlMxMzMuMjcgNDgwIDI4OCA0ODBzMjgwLjIxLTEwMC4zMiAyODAuMjEtMjI0UzQ0Mi43MyAzMiAyODggMzJ6bS04NS4zOSAzNTcuMTlMNjQuMSAzOTAuNTVsNzcuMjUtMjkwLjc0aDEzMy40NGM2My4xNSAwIDg0LjkzIDI4LjY1IDc4IDcyLjg0YTYwLjI0IDYwLjI0IDAgMCAxLTEuNSA2Ljg1IDc3LjM5IDc3LjM5IDAgMCAwLTE3LjIxLTEuOTNjLTQyLjM1IDAtNzYuNjkgMzMuODgtNzYuNjkgNzUuNjUgMCAzNy4xNCAyNy4xNCA2OCA2Mi45MyA3NC40NS0xOC4yNCAzNy4xNi01Ni4xNiA2MC45Mi0xMTcuNzEgNjEuNTJ6TTM1OCAyMDcuMTFoMzJsLTIyLjE2IDkwLjMxaC0zNS40MWwtMTEuMTktMzUuNjMtNy44MyAzNS42M2gtMzcuODNsMjYuNjMtOTAuMzFoMzEuMzRsMTUgMzYuNzV6bTE0NS44NiAxODIuMDhIMzA2Ljc5TDMyMi42MyAzMjhhNzguOCA3OC44IDAgMCAwIDExLjQ3LjgzYzQyLjM0IDAgNzYuNjktMzMuODcgNzYuNjktNzUuNjUgMC0zMi42NS0yMS02MC40Ni01MC4zOC03MS4wNmwyMS4zMy04Mi4zNWg5Mi41bC01My4wNSAyMDUuMzZoMTAzLjg3ek0yMTEuNyAyNjkuMzlIMTg3bC0xMy44IDU2LjQ3aDI0LjdjMTYuMTQgMCAzMi4xMS0zLjE4IDM3Ljk0LTI2LjY1IDUuNTYtMjIuMzEtNy45OS0yOS44Mi0yNC4xNC0yOS44MnpNMjMzIDE3MGgtMjEuMzRMMjAwIDIxNy43MWgyMS4zN2MxOCAwIDM1LjM4LTE0LjY0IDM5LjIxLTMwLjE0QzI2NS4yMyAxNjguNzEgMjUxLjA3IDE3MCAyMzMgMTcwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1eXNlbGxhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDE1MC43bDQyLjkgMTYwLjdoLTg1LjhMMjI0IDE1MC43ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS02NS4zIDMyNS4zbC05NC41LTI5OC43SDE1OS44TDY1LjMgNDA1LjNIMTU2bDExMS43LTkxLjYgMjQuMiA5MS42aDkwLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FuYWRpYW5NYXBsZUxlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01QzI5My41IDcyLjMgMjU1LjkgMCAyNTUuOSAwcy0zNy41IDcyLjMtNDIuNSA3OS44Yy01IDEwLTEwIDEwLTE3LjYgNS0xMC01LTQwLjEtMjIuNC00MC4xLTIyLjRTMTgzLjMgMTgyIDE4My4zIDE5MmMyLjUgMTAtNy41IDE3LjUtMTcuNiAxMC0yLjUtMi41LTU1LjEtNjIuMy01NS4xLTYyLjNTOTguMSAxNjcgOTUuNiAxNzJzLTUgOS45LTEyLjUgNy41QzczIDE3NyAyNS40IDE2NyAyNS40IDE2N3MxNy42IDU5LjcgMjAuMSA2Ny4zYzIuNCA2IDUgMTIuNS01IDE3LjRMMjMgMjU5LjNzMTAyLjYgODkuOSAxMDUuMiA5Mi40YzUuMSA1IDEwIDcuNSA1LjEgMjIuNS01LjEgMTUtMTAuMSAzNS4xLTEwLjEgMzUuMXM5NS4yLTIwLjEgMTA1LjMtMjIuNmM4LjctLjkgMTguMyAyLjUgMTguMyAxMi41UzI0MSA1MTIgMjQxIDUxMmgzMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0FtYXpvblBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjQuNyAyMDEuOGMuMS0xMS44IDAtMjMuNSAwLTM1LjN2LTM1LjNjMC0xLjMuNC0yIDEuNC0yLjcgMTEuNS04IDI0LjEtMTIuMSAzOC4yLTExLjEgMTIuNS45IDIyLjcgNyAyOC4xIDIxLjcgMy4zIDguOSA0LjEgMTguMiA0LjEgMjcuNyAwIDguNy0uNyAxNy4zLTMuNCAyNS42LTUuNyAxNy44LTE4LjcgMjQuNy0zNS43IDIzLjktMTEuNy0uNS0yMS45LTUtMzEuNC0xMS43LS45LS44LTEuNC0xLjYtMS4zLTIuOHptMTU0LjkgMTQuNmM0LjYgMS44IDkuMyAyIDE0LjEgMS41IDExLjYtMS4yIDIxLjktNS43IDMxLjMtMTIuNS45LS42IDEuMy0xLjMgMS4zLTIuNS0uMS0zLjkgMC03LjkgMC0xMS44IDAtNC0uMS04IDAtMTIgMC0xLjQtLjQtMi0xLjgtMi4yLTctLjktMTMuOS0yLjItMjAuOS0yLjktNy0uNi0xNC0uMy0yMC44IDEuOS02LjcgMi4yLTExLjcgNi4yLTEzLjcgMTMuMS0xLjYgNS40LTEuNiAxMC44LjEgMTYuMiAxLjYgNS41IDUuMiA5LjIgMTAuNCAxMS4yek01NzYgODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS0yMDcuNSAyMy45Yy40IDEuNy45IDMuNCAxLjYgNS4xIDE2LjUgNDAuNiAzMi45IDgxLjMgNDkuNSAxMjEuOSAxLjQgMy41IDEuNyA2LjQuMiA5LjktMi44IDYuMi00LjkgMTIuNi03LjggMTguNy0yLjYgNS41LTYuNyA5LjUtMTIuNyAxMS4yLTQuMiAxLjEtOC41IDEuMy0xMi45LjktMi4xLS4yLTQuMi0uNy02LjMtLjgtMi44LS4yLTQuMiAxLjEtNC4zIDQtLjEgMi44LS4xIDUuNiAwIDguMy4xIDQuNiAxLjYgNi43IDYuMiA3LjUgNC43LjggOS40IDEuNiAxNC4yIDEuNyAxNC4zLjMgMjUuNy01LjQgMzMuMS0xNy45IDIuOS00LjkgNS42LTEwLjEgNy43LTE1LjQgMTkuOC01MC4xIDM5LjUtMTAwLjMgNTkuMi0xNTAuNS42LTEuNSAxLjEtMyAxLjMtNC42LjQtMi40LS43LTMuNi0zLjEtMy43LTUuNi0uMS0xMS4xIDAtMTYuNyAwLTMuMSAwLTUuMyAxLjQtNi40IDQuMy0uNCAxLjEtLjkgMi4zLTEuMyAzLjRsLTI5LjEgODMuN2MtMi4xIDYuMS00LjIgMTIuMS02LjUgMTguNi0uNC0uOS0uNi0xLjQtLjgtMS45LTEwLjgtMjkuOS0yMS42LTU5LjktMzIuNC04OS44LTEuNy00LjctMy41LTkuNS01LjMtMTQuMi0uOS0yLjUtMi43LTQtNS40LTQtNi40LS4xLTEyLjgtLjItMTkuMi0uMS0yLjIgMC0zLjMgMS42LTIuOCAzLjd6TTI0Mi40IDIwNmMxLjcgMTEuNyA3LjYgMjAuOCAxOCAyNi42IDkuOSA1LjUgMjAuNyA2LjIgMzEuNyA0LjYgMTIuNy0xLjkgMjMuOS03LjMgMzMuOC0xNS41LjQtLjMuOC0uNiAxLjQtMSAuNSAzLjIuOSA2LjIgMS41IDkuMi41IDIuNiAyLjEgNC4zIDQuNSA0LjQgNC42LjEgOS4xLjEgMTMuNyAwIDIuMy0uMSAzLjgtMS42IDQtMy45LjEtLjguMS0xLjYuMS0yLjN2LTg4LjhjMC0zLjYtLjItNy4yLS43LTEwLjgtMS42LTEwLjgtNi4yLTE5LjctMTUuOS0yNS40LTUuNi0zLjMtMTEuOC01LTE4LjItNS45LTMtLjQtNi0uNy05LjEtMS4xaC0xMGMtLjguMS0xLjYuMy0yLjUuMy04LjIuNC0xNi4zIDEuNC0yNC4yIDMuNS01LjEgMS4zLTEwIDMuMi0xNSA0LjktMyAxLTQuNSAzLjItNC40IDYuNS4xIDIuOC0uMSA1LjYgMCA4LjMuMSA0LjEgMS44IDUuMiA1LjcgNC4xIDYuNS0xLjcgMTMuMS0zLjUgMTkuNy00LjggMTAuMy0xLjkgMjAuNy0yLjcgMzEuMS0xLjIgNS40LjggMTAuNSAyLjQgMTQuMSA3IDMuMSA0IDQuMiA4LjggNC40IDEzLjcuMyA2LjkuMiAxMy45LjMgMjAuOCAwIC40LS4xLjctLjIgMS4yLS40IDAtLjggMC0xLjEtLjEtOC44LTIuMS0xNy43LTMuNi0yNi44LTQuMS05LjUtLjUtMTguOS4xLTI3LjkgMy4yLTEwLjggMy44LTE5LjUgMTAuMy0yNC42IDIwLjgtNC4xIDguMy00LjYgMTctMy40IDI1Ljh6TTk4LjcgMTA2Ljl2MTc1LjNjMCAuOCAwIDEuNy4xIDIuNS4yIDIuNSAxLjcgNC4xIDQuMSA0LjIgNS45LjEgMTEuOC4xIDE3LjcgMCAyLjUgMCA0LTEuNyA0LjEtNC4xLjEtLjguMS0xLjcuMS0yLjV2LTYwLjdjLjkuNyAxLjQgMS4yIDEuOSAxLjYgMTUgMTIuNSAzMi4yIDE2LjYgNTEuMSAxMi45IDE3LjEtMy40IDI4LjktMTMuOSAzNi43LTI5LjIgNS44LTExLjYgOC4zLTI0LjEgOC43LTM3IC41LTE0LjMtMS0yOC40LTYuOC00MS43LTcuMS0xNi40LTE4LjktMjcuMy0zNi43LTMwLjktMi43LS42LTUuNS0uOC04LjItMS4yaC03Yy0xLjIuMi0yLjQuMy0zLjYuNS0xMS43IDEuNC0yMi4zIDUuOC0zMS44IDEyLjctMiAxLjQtMy45IDMtNS45IDQuNS0uMS0uNS0uMy0uOC0uNC0xLjItLjQtMi4zLS43LTQuNi0xLjEtNi45LS42LTMuOS0yLjUtNS41LTYuNC01LjZoLTkuN2MtNS45LS4xLTYuOSAxLTYuOSA2Ljh6TTQ5My42IDMzOWMtMi43LS43LTUuMSAwLTcuNiAxLTQzLjkgMTguNC04OS41IDMwLjItMTM2LjggMzUuOC0xNC41IDEuNy0yOS4xIDIuOC00My43IDMuMi0yNi42LjctNTMuMi0uOC03OS42LTQuMy0xNy44LTIuNC0zNS41LTUuNy01My05LjktMzctOC45LTcyLjctMjEuNy0xMDYuNy0zOC44LTguOC00LjQtMTcuNC05LjMtMjYuMS0xNC0zLjgtMi4xLTYuMi0xLjUtOC4yIDIuMXYxLjdjMS4yIDEuNiAyLjIgMy40IDMuNyA0LjggMzYgMzIuMiA3Ni42IDU2LjUgMTIyIDcyLjkgMjEuOSA3LjkgNDQuNCAxMy43IDY3LjMgMTcuNSAxNCAyLjMgMjggMy44IDQyLjIgNC41IDMgLjEgNiAuMiA5IC40LjcgMCAxLjQuMiAyLjEuM2gxNy43Yy43LS4xIDEuNC0uMyAyLjEtLjMgMTQuOS0uNCAyOS44LTEuOCA0NC42LTQgMjEuNC0zLjIgNDIuNC04LjEgNjIuOS0xNC43IDI5LjYtOS42IDU3LjctMjIuNCA4My40LTQwLjEgMi44LTEuOSA1LjctMy44IDgtNi4yIDQuMy00LjQgMi4zLTEwLjQtMy4zLTExLjl6bTUwLjQtMjcuN2MtLjgtNC4yLTQtNS44LTcuNi03LTUuNy0xLjktMTEuNi0yLjgtMTcuNi0zLjMtMTEtLjktMjItLjQtMzIuOCAxLjYtMTIgMi4yLTIzLjQgNi4xLTMzLjUgMTMuMS0xLjIuOC0yLjQgMS44LTMuMSAzLS42LjktLjcgMi4zLS41IDMuNC4zIDEuMyAxLjcgMS42IDMgMS41LjYgMCAxLjIgMCAxLjgtLjFsMTkuNS0yLjFjOS42LS45IDE5LjItMS41IDI4LjgtLjggNC4xLjMgOC4xIDEuMiAxMiAyLjIgNC4zIDEuMSA2LjIgNC40IDYuNCA4LjcuMyA2LjctMS4yIDEzLjEtMi45IDE5LjUtMy41IDEyLjktOC4zIDI1LjQtMTMuMyAzNy44LS4zLjgtLjcgMS43LS44IDIuNS0uNCAyLjUgMSA0IDMuNCAzLjUgMS40LS4zIDMtMS4xIDQtMi4xIDMuNy0zLjYgNy41LTcuMiAxMC42LTExLjIgMTAuNy0xMy44IDE3LTI5LjYgMjAuNy00Ni42LjctMyAxLjItNi4xIDEuNy05LjEuMi00LjcuMi05LjYuMi0xNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjQW1leCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjUuMSAxNjcuOGMwLTE2LjQtMTQuMS0xOC40LTI3LjQtMTguNGwtMzkuMS0uM3Y2OS4zSDI3NXYtMjUuMWgxOGMxOC40IDAgMTQuNSAxMC4zIDE0LjggMjUuMWgxNi42di0xMy41YzAtOS4yLTEuNS0xNS4xLTExLTE4LjQgNy40LTMgMTEuOC0xMC43IDExLjctMTguN3ptLTI5LjQgMTEuM0gyNzV2LTE1LjNoMjFjNS4xIDAgMTAuNyAxIDEwLjcgNy40IDAgNi42LTUuMyA3LjktMTEgNy45ek0yNzkgMjY4LjZoLTUyLjdsLTIxIDIyLjgtMjAuNS0yMi44aC02Ni41bC0uMSA2OS4zaDY1LjRsMjEuMy0yMyAyMC40IDIzaDMyLjJsLjEtMjMuM2MxOC45IDAgNDkuMyA0LjYgNDkuMy0yMy4zIDAtMTcuMy0xMi4zLTIyLjctMjcuOS0yMi43em0tMTAzLjggNTQuN2gtNDAuNnYtMTMuOGgzNi4zdi0xNC4xaC0zNi4zdi0xMi41aDQxLjdsMTcuOSAyMC4yem02NS44IDguMmwtMjUuMy0yOC4xTDI0MSAyNzZ6bTM3LjgtMzFoLTIxLjJ2LTE3LjZoMjEuNWM1LjYgMCAxMC4yIDIuMyAxMC4yIDguNCAwIDYuNC00LjYgOS4yLTEwLjUgOS4yem0tMzEuNi0xMzYuN3YtMTQuNmgtNTUuNXY2OS4zaDU1LjV2LTE0LjNoLTM4Ljl2LTEzLjhoMzcuOHYtMTQuMWgtMzcuOHYtMTIuNXpNNTc2IDI1NS40aC0uMnptLTE5NC42IDMxLjljMC0xNi40LTE0LjEtMTguNy0yNy4xLTE4LjdoLTM5LjRsLS4xIDY5LjNoMTYuNmwuMS0yNS4zaDE3LjZjMTEgMCAxNC44IDIgMTQuOCAxMy44bC0uMSAxMS41aDE2LjZsLjEtMTMuOGMwLTguOS0xLjgtMTUuMS0xMS0xOC40IDcuNy0zLjEgMTEuOC0xMC44IDExLjktMTguNHptLTI5LjIgMTEuMmgtMjAuN3YtMTUuNmgyMWM1LjEgMCAxMC43IDEgMTAuNyA3LjQgMCA2LjktNS40IDguMi0xMSA4LjJ6bS0xNzIuOC04MHYtNjkuM2gtMjcuNmwtMTkuNyA0Ny0yMS43LTQ3SDgzLjN2NjUuN2wtMjguMS02NS43SDMwLjdMMSAyMTguNWgxNy45bDYuNC0xNS4zaDM0LjVsNi40IDE1LjNIMTAwdi01NC4ybDI0IDU0LjJoMTQuNmwyNC01NC4ydjU0LjJ6TTMxLjIgMTg4LjhsMTEuMi0yNy42IDExLjUgMjcuNnptNDc3LjQgMTU4Ljl2LTQuNWMtMTAuOCA1LjYtMy45IDQuNS0xNTYuNyA0LjUgMC0yNS4yLjEtMjMuOSAwLTI1LjItMS43LS4xLTMuMi0uMS05LjQtLjEgMCAxNy45LS4xIDYuOC0uMSAyNS4zaC0zOS42YzAtMTIuMS4xLTE1LjMuMS0yOS4yLTEwIDYtMjIuOCA2LjQtMzQuMyA2LjIgMCAxNC43LS4xIDguMy0uMSAyM2gtNDguOWMtNS4xLTUuNy0yLjctMy4xLTE1LjQtMTcuNC0zLjIgMy41LTEyLjggMTMuOS0xNi4xIDE3LjRoLTgydi05Mi4zaDgzLjFjNSA1LjYgMi44IDMuMSAxNS41IDE3LjIgMy4yLTMuNSAxMi4yLTEzLjQgMTUuNy0xNy4yaDU4YzkuOCAwIDE4IDEuOSAyNC4zIDUuNnYtNS42YzU0LjMgMCA2NC4zLTEuNCA3NS43IDUuMXYtNS4xaDc4LjJ2NS4yYzExLjQtNi45IDE5LjYtNS4yIDY0LjktNS4ydjVjMTAuMy01LjkgMTYuNi01LjIgNTQuMy01VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4aC00ODBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djEwOS44YzkuNC0yMS45IDE5LjctNDYgMjMuMS01My45aDM5LjdjNC4zIDEwLjEgMS42IDMuNyA5IDIxLjF2LTIxLjFoNDZjMi45IDYuMiAxMS4xIDI0IDEzLjkgMzAgNS44LTEzLjYgMTAuMS0yMy45IDEyLjYtMzBoMTAzYzAtLjEgMTEuNSAwIDExLjYgMCA0My43LjIgNTMuNi0uOCA2NC40IDUuM3YtNS4zSDM2M3Y5LjNjNy42LTYuMSAxNy45LTkuMyAzMC43LTkuM2gyNy42YzAgLjUgMS45LjMgMi4zLjNINDU2YzQuMiA5LjggMi42IDYgOC44IDIwLjZ2LTIwLjZoNDMuM2M0LjkgOC0xLTEuOCAxMS4yIDE4LjR2LTE4LjRoMzkuOXY5MmgtNDEuNmMtNS40LTktMS40LTIuMi0xMy4yLTIxLjl2MjEuOWgtNTIuOGMtNi40LTE0LjgtLjEtLjMtNi42LTE1LjNoLTE5Yy00LjIgMTAtMi4yIDUuMi02LjQgMTUuM2gtMjYuOGMtMTIuMyAwLTIyLjMtMy0yOS43LTguOXY4LjloLTY2LjVjLS4zLTEzLjktLjEtMjQuOC0uMS0yNC44LTEuOC0uMy0zLjQtLjItOS44LS4ydjI1LjFIMTUxLjJ2LTExLjRjLTIuNSA1LjYtMi43IDUuOS01LjEgMTEuNGgtMjkuNWMtNC04LjktMi45LTYuNC01LjEtMTEuNHYxMS40SDU4LjZjLTQuMi0xMC4xLTIuMi01LjMtNi40LTE1LjNIMzNjLTQuMiAxMC0yLjIgNS4yLTYuNCAxNS4zSDBWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MC4xYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di05MC40Yy0xMi43IDguMy0zMi43IDYuMS02Ny41IDYuMXptMzYuMy02NC41SDU3NXYtMTQuNmgtMzIuOWMtMTIuOCAwLTIzLjggNi42LTIzLjggMjAuNyAwIDMzIDQyLjcgMTIuOCA0Mi43IDI3LjQgMCA1LjEtNC4zIDYuNC04LjQgNi40aC0zMmwtLjEgMTQuOGgzMmM4LjQgMCAxNy42LTEuOCAyMi41LTguOXYtMjUuOGMtMTAuNS0xMy44LTM5LjMtMS4zLTM5LjMtMTMuNSAwLTUuOCA0LjYtNi41IDkuMi02LjV6bS01NyAzOS44aC0zMi4ybC0uMSAxNC44aDMyLjJjMTQuOCAwIDI2LjItNS42IDI2LjItMjIgMC0zMy4yLTQyLjktMTEuMi00Mi45LTI2LjMgMC01LjYgNC45LTYuNCA5LjItNi40aDMwLjR2LTE0LjZoLTMzLjJjLTEyLjggMC0yMy41IDYuNi0yMy41IDIwLjcgMCAzMyA0Mi43IDEyLjUgNDIuNyAyNy40LS4xIDUuNC00LjcgNi40LTguOCA2LjR6bS00Mi4yLTQwLjF2LTE0LjNoLTU1LjJsLS4xIDY5LjNoNTUuMmwuMS0xNC4zLTM4LjYtLjN2LTEzLjhINDQ1di0xNC4xaC0zNy44di0xMi41em0tNTYuMy0xMDguMWMtLjMuMi0xLjQgMi4yLTEuNCA3LjYgMCA2IC45IDcuNyAxLjEgNy45LjIuMSAxLjEuNSAzLjQuNWw3LjMtMTYuOWMtMS4xIDAtMi4xLS4xLTMuMS0uMS01LjYgMC03IC43LTcuMyAxem0yMC40LTEwLjVoLS4xem0tMTYuMi0xNS4yYy0yMy41IDAtMzQgMTItMzQgMzUuMyAwIDIyLjIgMTAuMiAzNCAzMyAzNGgxOS4ybDYuNC0xNS4zaDM0LjNsNi42IDE1LjNoMzMuN3YtNTEuOWwzMS4yIDUxLjloMjMuNnYtNjloLTE2Ljl2NDguMWwtMjkuMS00OC4xaC0yNS4zdjY1LjRsLTI3LjktNjUuNGgtMjQuOGwtMjMuNSA1NC41aC03LjRjLTEzLjMgMC0xNi4xLTguMS0xNi4xLTE5LjkgMC0yMy44IDE1LjctMjAgMzMuMS0xOS43di0xNS4yem00Mi4xIDEyLjFsMTEuMiAyNy42aC0yMi44em0tMTAxLjEtMTJ2NjkuM2gxNi45di02OS4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjQXBwbGVQYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAyLjIgMjE4LjRjMCAxNy4yLTEwLjUgMjcuMS0yOSAyNy4xaC0yNC4zdi01NC4yaDI0LjRjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXptNDcuNSA2Mi42YzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45di03LjdsLTIzLjUgMS41Yy0xMy4zLjktMjAuMiA1LjgtMjAuMiAxNC40ek01NzYgNzl2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY3OWMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyNy44IDE5Ny4yYzguNC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQuMy0xNi42IDQuOS0yMS45IDExLjMtNC44IDUuNS04LjkgMTQuNC03LjkgMjIuOHptNjAuNiA3NC41Yy0uMi0uMi0xOS42LTcuNi0xOS44LTMwLS4yLTE4LjcgMTUuMy0yNy43IDE2LTI4LjItOC44LTEzLTIyLjQtMTQuNC0yNy4xLTE0LjctMTIuMi0uNy0yMi42IDYuOS0yOC40IDYuOS01LjkgMC0xNC43LTYuNi0yNC4zLTYuNC0xMi41LjItMjQuMiA3LjMtMzAuNSAxOC42LTEzLjEgMjIuNi0zLjQgNTYgOS4zIDc0LjQgNi4yIDkuMSAxMy43IDE5LjEgMjMuNSAxOC43IDkuMy0uNCAxMy02IDI0LjItNiAxMS4zIDAgMTQuNSA2IDI0LjMgNS45IDEwLjItLjIgMTYuNS05LjEgMjIuOC0xOC4yIDYuOS0xMC40IDkuOC0yMC40IDEwLTIxem0xMzUuNC01My40YzAtMjYuNi0xOC41LTQ0LjgtNDQuOS00NC44aC01MS4ydjEzNi40aDIxLjJ2LTQ2LjZoMjkuM2MyNi44IDAgNDUuNi0xOC40IDQ1LjYtNDV6bTkwIDIzLjdjMC0xOS43LTE1LjgtMzIuNC00MC0zMi40LTIyLjUgMC0zOS4xIDEyLjktMzkuNyAzMC41aDE5LjFjMS42LTguNCA5LjQtMTMuOSAyMC0xMy45IDEzIDAgMjAuMiA2IDIwLjIgMTcuMnY3LjVsLTI2LjQgMS42Yy0yNC42IDEuNS0zNy45IDExLjYtMzcuOSAyOS4xIDAgMTcuNyAxMy43IDI5LjQgMzMuNCAyOS40IDEzLjMgMCAyNS42LTYuNyAzMS4yLTE3LjRoLjRWMzEwaDE5LjZ2LTY4ek01MTYgMjEwLjloLTIxLjVsLTI0LjkgODAuNmgtLjRsLTI0LjktODAuNkg0MjJsMzUuOSA5OS4zLTEuOSA2Yy0zLjIgMTAuMi04LjUgMTQuMi0xNy45IDE0LjItMS43IDAtNC45LS4yLTYuMi0uM3YxNi40YzEuMi40IDYuNS41IDguMS41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjRGluZXJzQ2x1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzkuNyA3OS45Yy05Ni45IDAtMTc1LjggNzguNi0xNzUuOCAxNzUuOCAwIDk2LjkgNzguOSAxNzUuOCAxNzUuOCAxNzUuOCA5Ny4yIDAgMTc1LjgtNzguOSAxNzUuOC0xNzUuOCAwLTk3LjItNzguNi0xNzUuOC0xNzUuOC0xNzUuOHptLTM5LjkgMjc5LjZjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMXYyMDcuOXptNzkuOC4zVjE1MS42YzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGgtOTAuM2MtMTA2LjIgMC0xOTMuOC04NS41LTE5My44LTE5MC4yQzQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRoOTAuM2MxMDUgMCAyMDAuNyA3OS4yIDIwMC43IDE5My44IDAgMTA0LjctOTUuNyAxOTAuMi0yMDAuNyAxOTAuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0Rpc2NvdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyMC40IDE5Ni4xYzAtNy45LTUuNS0xMi4xLTE1LjYtMTIuMWgtNC45djI0LjloNC43YzEwLjMgMCAxNS44LTQuNCAxNS44LTEyLjh6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS00NC4xIDEzOC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjRoLTE5LjZsLTIyLjItMzIuOGgtMi4ydjMyLjhoLTE2em0tNTUuOS4xaDQ1LjN2MTRINDQ0djE4LjJoMjguM1YyMTdINDQ0djIyLjJoMjkuM1YyNTNINDI4em0tNjguNyAwbDIxLjkgNTUuMiAyMi4yLTU1LjJoMTcuNWwtMzUuNSA4NC4yaC04LjZsLTM1LTg0LjJ6bS01NS45LTNjMjQuNyAwIDQ0LjYgMjAgNDQuNiA0NC42IDAgMjQuNy0yMCA0NC42LTQ0LjYgNDQuNi0yNC43IDAtNDQuNi0yMC00NC42LTQ0LjYgMC0yNC43IDIwLTQ0LjYgNDQuNi00NC42em0tNDkuMyA2LjF2MTljLTIwLjEtMjAuMS00Ni44LTQuNy00Ni44IDE5IDAgMjUgMjcuNSAzOC41IDQ2LjggMTkuMnYxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNIMzJ2LTgyaDIzLjRjMjYuMSAwIDQ0LjEgMTcgNDQuMSA0MS4xIDAgMTguNS0xMy4yIDQwLjktNDQuMSA0MC45em02Ny41IDBoLTE2di04MmgxNnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVIMTI4YzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MHpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNkg0OHY1NC4yaDQuMmMxMC4zIDAgMTctMiAyMS45LTYuNCA1LjctNS4yIDguOS0xMi44IDguOS0yMC43cy0zLjItMTUuNS04LjktMjAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0pjYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzEuNSAyNDQuM1YyMTJjNDEuMiAwIDM4LjUuMiAzOC41LjIgNy4zIDEuMyAxMy4zIDcuMyAxMy4zIDE2IDAgOC44LTYgMTQuNS0xMy4zIDE1LjgtMS4yLjQtMy4zLjMtMzguNS4zem00Mi44IDIwLjJjLTIuOC0uNy0zLjMtLjUtNDIuOC0uNXYzNWMzOS42IDAgNDAgLjIgNDIuOC0uNSA3LjUtMS41IDEzLjUtOCAxMy41LTE3IDAtOC43LTYtMTUuNS0xMy41LTE3ek01NzYgODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4MiAxOTIuM2gtNTdjMCA2Ny4xIDEwLjcgMTA5LjctMzUuOCAxMDkuNy0xOS41IDAtMzguOC01LjctNTcuMi0xNC44djI4YzMwIDguMyA2OCA4LjMgNjggOC4zIDk3LjkgMCA4Mi00Ny43IDgyLTEzMS4yem0xNzguNSA0LjVjLTYzLjQtMTYtMTY1LTE0LjktMTY1IDU5LjMgMCA3Ny4xIDEwOC4yIDczLjYgMTY1IDU5LjJWMjg3QzMxMi45IDMxMS43IDI1MyAzMDkgMjUzIDI1NnM1OS44LTU1LjYgMTA3LjUtMzEuMnYtMjh6TTU0NCAyODYuNWMwLTE4LjUtMTYuNS0zMC41LTM4LTMydi0uOGMxOS41LTIuNyAzMC4zLTE1LjUgMzAuMy0zMC4yIDAtMTktMTUuNy0zMC0zNy0zMSAwIDAgNi4zLS4zLTEyMC4zLS4zdjEyNy41aDEyMi43YzI0LjMuMSA0Mi4zLTEyLjkgNDIuMy0zMy4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjTWFzdGVyY2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43IDAtNi41IDQuNC0xMS43IDExLjItMTEuNyA2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6bS0zMTAuOC0xMS43Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjcgMCA2LjUgNC4xIDExLjcgMTEuMiAxMS43IDYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43aDE5LjFjLS45LTUuNy00LjQtOC43LTkuNi04Ljd6bTEwNy44LjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuNyAwIDYuNSA0LjEgMTEuNyAxMC45IDExLjcgNi44IDAgMTEuMi00LjkgMTEuMi0xMS43IDAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zLjMuNS4zIDEuMSAwIC4zLS4zLjUtLjMgMS4xLS4zLjMtLjMuNS0uNS44LS4zLjMtLjUuNS0xLjEuNS0uMy4zLS41LjMtMS4xLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjguMy0xLjEgMC0uNS4zLS44LjUtMS4xLjMtLjMuNS0uMy44LS41LjUtLjMuOC0uMyAxLjEtLjMuNSAwIC44IDAgMS4xLjMuNS4zLjguMyAxLjEuNXMuMi42LjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zLjgtLjMuMy0uMy4zLS41LjMtLjggMC0uMyAwLS41LS4zLS44LS4zIDAtLjUtLjMtMS4xLS4zaC0xLjZ2My41aC44VjQyNmguM2wxLjEgMS40aC44bC0xLjEtMS4zek01NzYgODF2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MWMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnptMjI0IDEwOC44YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6bS0xNDIuMyA3Ni4zYzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40VjM5MmgtOC4ydjM2LjdoOC4yYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4yaDcuOWMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJoOC4ydi0yM3ptNDQuOS0xMy43aC03Ljl2NC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40djQuNmg3LjlWMzkyem00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNy44bC0zLjUgNi4zYzExLjIgNy42IDMyLjYgNiAzMi42LTcuNXptMzUuNCA5LjNsLTIuMi02LjhjLTMuOCAyLjEtMTIuMiA0LjQtMTIuMi00LjF2LTE2LjZoMTMuMVYzOTJoLTEzLjF2LTExLjJoLTguMlYzOTJoLTcuNnY3LjNoNy42VjQxNmMwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40aDI3LjVjMC0xNi4yLTcuNC0yMi42LTE3LjQtMjIuNi0xMC42IDAtMTguMiA3LjktMTguMiAxOS4zIDAgMjAuNSAyMi42IDIzLjkgMzMuOCAxNC4ybC0zLjgtNmMtNy44IDYuNC0xOS42IDUuOC0yMS45LTQuOXptNTkuMS0yMS41Yy00LjYtMi0xMS42LTEuOC0xNS4yIDQuNFYzOTJoLTguMnYzNi43aDguMlY0MDhjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42em02Ni43LTE4LjNINDA4djQuNGMtOC4zLTExLTI5LjktNC44LTI5LjkgMTMuOSAwIDE5LjIgMjIuNCAyNC43IDI5LjkgMTMuOXY0LjZoOC4yVjM5MnptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNFYzOTJoLTcuOXYzNi43aDcuOVY0MDhjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45aC03Ljl2MTkuM2MtOC4yLTEwLjktMjkuOS01LjEtMjkuOSAxMy45IDAgMTkuNCAyMi41IDI0LjYgMjkuOSAxMy45djQuNmg3Ljl2LTUxLjd6bTcuNi03NS4xdjQuNmguOFYzMDJoMS45di0uOGgtNC42di44aDEuOXptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMS0uMy0uMy0uOC0uNS0xLjEtLjgtLjUgMC0xLjEtLjMtMS42LS4zLS4zIDAtLjguMy0xLjQuMy0uNS4zLS44LjUtMS4xLjgtLjUuMy0uOC44LS44IDEuMS0uMy41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44LjMgMS40IDAgLjMuMy44LjggMS4xLjMuMy41LjUgMS4xLjguNS4zIDEuMS4zIDEuNC4zLjUgMCAxLjEgMCAxLjYtLjMuMy0uMy44LS41IDEuMS0uOC4zLS4zLjUtLjguOC0xLjEuMy0uNi4zLTEuMS4zLTEuNHptMy4yLTEyNC43aC0xLjRsLTEuNiAzLjUtMS42LTMuNWgtMS40djUuNGguOHYtNC4xbDEuNiAzLjVoMS4xbDEuNC0zLjV2NC4xaDEuMXYtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQuMSAxMzguNS02MS45IDEzOC41LTEzOC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjUGF5cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43aC00LjdjLTEuNSAwLTMgMS0zLjIgMi43bC00LjMgMjYuNyA4LjItLjNjMTEgMCAxOS41LTEuNSAyMS41LTE0LjIgMi4zLTEzLjQtNi4yLTE0LjktMTcuNS0xNC45em0yODQgMEgzNjBjLTEuOCAwLTMgMS0zLjIgMi43bC00LjIgMjYuNyA4LS4zYzEzIDAgMjItMyAyMi0xOC0uMS0xMC42LTkuNi0xMS4xLTE4LjEtMTEuMXpNNTc2IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGgtNDBjLTIuNSAwLTUgMi01LjIgNC43TDMyIDI5NC4yYy0uMyAyIDEuMiA0IDMuMiA0aDE5YzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGgtMTljLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0SDIwMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45em00MC41IDk3LjlsNjMuNy05Mi42Yy41LS41LjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41aC0xOS4yYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRoLTE4LjdjLTEuNyAwLTMuMiAxLjgtMy4yIDMuNSAwIDEuMiAxOS41IDU2LjggMjEuMiA2Mi4xLTIuNyAzLjgtMjAuNSAyOC42LTIwLjUgMzEuNiAwIDEuOCAxLjUgMy4yIDMuMiAzLjJoMTkuMmMxLjgtLjEgMy41LTEuMSA0LjUtMi42em0xNTkuMy0xMDYuN2MwLTIxLTE2LjItMjgtMzQuNy0yOGgtMzkuN2MtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRoMjAuNWMyIDAgMy41LTEuNSA0LTMuMmw0LjUtMjljMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjQgMCA0NS45LTE3IDQ1LjktNDUuOHptODQuMiA4LjhoLTE5Yy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNEg0ODRjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXptNDcuNS0zMy4zYzAtMi0xLjUtMy41LTMuMi0zLjVoLTE4LjVjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zLjVjMCAxLjggMS41IDMuNSAzLjUgMy41aDE2LjVjMi41IDAgNS0yLjkgNS4yLTUuN0w1NDQgMTkxLjJ2LS4zem0tOTAgNTEuOGMtMTIuMiAwLTIxLjcgOS43LTIxLjcgMjIgMCA5LjcgNyAxNSAxNi4yIDE1IDEyIDAgMjEuNy05LjIgMjEuNy0yMS41LjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY1N0cmlwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTIuNCAyMjAuOGMtOC45IDAtMTguNyA2LjctMTguNyAyMi43aDM2LjdjMC0xNi05LjMtMjIuNy0xOC0yMi43ek0zNzUgMjIzLjRjLTguMiAwLTEzLjMgMi45LTE3IDdsLjIgNTIuOGMzLjUgMy43IDguNSA2LjcgMTYuOCA2LjcgMTMuMSAwIDIxLjktMTQuMyAyMS45LTMzLjQgMC0xOC42LTktMzMuMi0yMS45LTMzLjF6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyMi4yIDI4MS4xYzAgMjUuNi0yMC4zIDQwLjEtNDkuOSA0MC4zLTEyLjIgMC0yNS42LTIuNC0zOC44LTguMXYtMzMuOWMxMiA2LjQgMjcuMSAxMS4zIDM4LjkgMTEuMyA3LjkgMCAxMy42LTIuMSAxMy42LTguNyAwLTE3LTU0LTEwLjYtNTQtNDkuOSAwLTI1LjIgMTkuMi00MC4yIDQ4LTQwLjIgMTEuOCAwIDIzLjUgMS44IDM1LjMgNi41djMzLjRjLTEwLjgtNS44LTI0LjUtOS4xLTM1LjMtOS4xLTcuNSAwLTEyLjEgMi4yLTEyLjEgNy43IDAgMTYgNTQuMyA4LjQgNTQuMyA1MC43em02OC44LTU2LjZoLTI3VjI3NWMwIDIwLjkgMjIuNSAxNC40IDI3IDEyLjZ2MjguOWMtNC43IDIuNi0xMy4zIDQuNy0yNC45IDQuNy0yMS4xIDAtMzYuOS0xNS41LTM2LjktMzYuNWwuMi0xMTMuOSAzNC43LTcuNHYzMC44SDE5MXptNzQgMi40Yy00LjUtMS41LTE4LjctMy42LTI3LjEgNy40djg0LjRoLTM1LjVWMTk0LjJoMzAuN2wyLjIgMTAuNWM4LjMtMTUuMyAyNC45LTEyLjIgMjkuNi0xMC41aC4xem00NC4xIDkxLjhoLTM1LjdWMTk0LjJoMzUuN3ptMC0xNDIuOWwtMzUuNyA3LjZ2LTI4LjlsMzUuNy03LjZ6bTc0LjEgMTQ1LjVjLTEyLjQgMC0yMC01LjMtMjUuMS05bC0uMSA0MC4yLTM1LjUgNy41VjE5NC4yaDMxLjNsMS44IDguOGM0LjktNC41IDEzLjktMTEuMSAyNy44LTExLjEgMjQuOSAwIDQ4LjQgMjIuNSA0OC40IDYzLjggMCA0NS4xLTIzLjIgNjUuNS00OC42IDY1LjZ6bTE2MC40LTUxLjVoLTY5LjVjMS42IDE2LjYgMTMuOCAyMS41IDI3LjYgMjEuNSAxNC4xIDAgMjUuMi0zIDM0LjktNy45VjMxMmMtOS43IDUuMy0yMi40IDkuMi0zOS40IDkuMi0zNC42IDAtNTguOC0yMS43LTU4LjgtNjQuNSAwLTM2LjIgMjAuNS02NC45IDU0LjMtNjQuOSAzMy43IDAgNTEuMyAyOC43IDUxLjMgNjUuMSAwIDMuNS0uMyAxMC45LS40IDEyLjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NWaXNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MC4xIDIzMS4zczcuNiAzNy4yIDkuMyA0NUg0NDZjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIuMyAzLjMtOS4xIDUuMy0xNC45bDIuOCAxMy40ek01NzYgODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE1Mi41IDMzMS4yTDIxNS43IDE3NmgtNDIuNWwtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFIMzIuN2wtLjcgMy4xYzE1LjggNCAyOS45IDkuOCA0Mi4yIDE3LjFsMzUuOCAxMzVoNDIuNXptOTQuNC4yTDI3Mi4xIDE3NmgtNDAuMmwtMjUuMSAxNTUuNGg0MC4xem0xMzkuOS01MC44Yy4yLTE3LjctMTAuNi0zMS4yLTMzLjctNDIuMy0xNC4xLTcuMS0yMi43LTExLjktMjIuNy0xOS4yLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIuMSA2OS43LTIwLjggNzAtNTN6TTUyOCAzMzEuNEw0OTUuNiAxNzZoLTMxLjFjLTkuNiAwLTE2LjkgMi44LTIxIDEyLjlsLTU5LjcgMTQyLjVINDI2czYuOS0xOS4yIDguNC0yMy4zSDQ4NmMxLjIgNS41IDQuOCAyMy4zIDQuOCAyMy4zSDUyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZW50ZXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyOS4yIDI2OC42Yy0zLjggMzUuMi0zNS40IDYwLjYtNzAuNiA1Ni44LTM1LjItMy44LTYwLjYtMzUuNC01Ni44LTcwLjYgMy44LTM1LjIgMzUuNC02MC42IDcwLjYtNTYuOCAzNS4xIDMuOCA2MC42IDM1LjQgNTYuOCA3MC42em0tODUuOCAyMzUuMUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuM2MxMS4yLTg2LjYgNjUuOC0xNTYuOSAxMzkuMS0xOTIgMTYxLTc3LjEgMzQ5LjcgMzcuNCAzNTQuNyAyMTYuNiA0LjEgMTQ3LTExOC40IDI2Mi4yLTI2MC41IDI1NC44em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2VudG9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OS42IDk3LjVsMzEuNiAzMS43LTc2LjMgNzYuNVY5Ny41em0tMTYyLjQgMzEuN2w3Ni4zIDc2LjVWOTcuNWgtNDQuN3ptNDEuNS00MS42aDQ0Ljd2MTI3LjlsMTAuOCAxMC44IDEwLjgtMTAuOFY4Ny42aDQ0LjdMMjI0LjIgMzJ6bTI2LjIgMTY4LjFsLTEwLjgtMTAuOEg1NS41di00NC44TDAgMjU1LjdsNTUuNSA1NS42di00NC44aDEyOC42bDEwLjgtMTAuOHptNzkuMy0yMC43aDEwNy45di00NC44bC0zMS42LTMxLjd6bTE3My4zIDIwLjdMMzkyIDIwMC4xdjQ0LjhIMjY0LjNsLTEwLjggMTAuOCAxMC44IDEwLjhIMzkydjQ0LjhsNTUuNS01NS42ek02NS40IDE3Ni4ybDMyLjUtMzEuNyA5MC4zIDkwLjVoMTUuM3YtMTUuM2wtOTAuMy05MC41IDMxLjYtMzEuN0g2NS40em0zMTYuNy03OC43aC03OC41bDMxLjYgMzEuNy05MC4zIDkwLjVWMjM1aDE1LjNsOTAuMy05MC41IDMxLjYgMzEuN3pNMjAzLjUgNDEzLjlWMzA1LjhsLTc2LjMgNzYuNSAzMS42IDMxLjdoNDQuN3pNNjUuNCAyMzVoMTA4LjhsLTc2LjMtNzYuNS0zMi41IDMxLjd6bTMxNi43IDEwMC4ybC0zMS42IDMxLjctOTAuMy05MC41aC0xNS4zdjE1LjNsOTAuMyA5MC41LTMxLjYgMzEuN2g3OC41em0wLTU4LjhIMjc0LjJsNzYuMyA3Ni41IDMxLjYtMzEuN3ptLTYwLjkgMTA1LjhsLTc2LjMtNzYuNXYxMDguMWg0NC43ek05Ny45IDM1Mi45bDc2LjMtNzYuNUg2NS40djQ0Ljh6bTE4MS44IDcwLjlIMjM1VjI5NS45bC0xMC44LTEwLjgtMTAuOCAxMC44djEyNy45aC00NC43bDU1LjUgNTUuNnptLTE2Ni41LTQxLjZsOTAuMy05MC41di0xNS4zaC0xNS4zbC05MC4zIDkwLjUtMzIuNS0zMS43djc4LjdoNzkuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaHJvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMxLjUgMjE3LjVMNTUuMSAxMDAuMWM0Ny42LTU5LjIgMTE5LTkxLjggMTkyLTkyLjEgNDIuMy0uMyA4NS41IDEwLjUgMTI0LjggMzMuMiA0My40IDI1LjIgNzYuNCA2MS40IDk3LjQgMTAzTDI2NCAxMzMuNGMtNTguMS0zLjQtMTEzLjQgMjkuMy0xMzIuNSA4NC4xem0zMi45IDM4LjVjMCA0Ni4yIDM3LjQgODMuNiA4My42IDgzLjZzODMuNi0zNy40IDgzLjYtODMuNi0zNy40LTgzLjYtODMuNi04My42LTgzLjYgMzcuMy04My42IDgzLjZ6bTMxNC45LTg5LjJMMzM5LjYgMTc0YzM3LjkgNDQuMyAzOC41IDEwOC4yIDYuNiAxNTcuMkwyMzQuMSA1MDMuNmM0Ni41IDIuNSA5NC40LTcuNyAxMzcuOC0zMi45IDEwNy40LTYyIDE1MC45LTE5MiAxMDcuNC0zMDMuOXpNMTMzLjcgMzAzLjZMNDAuNCAxMjAuMUMxNC45IDE1OS4xIDAgMjA1LjkgMCAyNTZjMCAxMjQgOTAuOCAyMjYuNyAyMDkuNSAyNDQuOWw2My43LTEyNC44Yy01Ny42IDEwLjgtMTEzLjItMjAuOC0xMzkuNS03Mi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNocm9tZWNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ3LjgsNjRINjRjLTIzLjYsMC00Mi43LDE5LjEtNDIuNyw0Mi43djYzLjlINjR2LTYzLjloMzgzLjh2Mjk4LjZIMjk4LjZWNDQ4SDQ0OGMyMy42LDAsNDIuNy0xOS4xLDQyLjctNDIuN1YxMDYuNyBDNDkwLjcsODMuMSw0NzEuNCw2NCw0NDcuOCw2NHogTTIxLjMsMzgzLjZMMjEuMywzODMuNmwwLDYzLjloNjMuOUM4NS4yLDQxMi4yLDU2LjYsMzgzLjYsMjEuMywzODMuNkwyMS4zLDM4My42eiBNMjEuMywyOTguNlYzNDEgYzU4LjksMCwxMDYuNiw0OC4xLDEwNi42LDEwN2g0Mi43QzE3MC43LDM2NS42LDEwMy43LDI5OC43LDIxLjMsMjk4LjZ6IE0yMTMuNCw0NDhoNDIuN2MtMC41LTEyOS41LTEwNS4zLTIzNC4zLTIzNC44LTIzNC42bDAsNDIuNCBDMTI3LjMsMjU1LjYsMjEzLjMsMzQyLDIxMy40LDQ0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZGZsYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy45MDYsMzE5LjkxM2wtMjMwLjgtMi45MjhhNC41OCw0LjU4LDAsMCwxLTMuNjMyLTEuOTI2LDQuNjQ4LDQuNjQ4LDAsMCwxLS40OTQtNC4xNDcsNi4xNDMsNi4xNDMsMCwwLDEsNS4zNjEtNC4wNzZMNDExLjI4MSwzMDMuOWMyNy42MzEtMS4yNiw1Ny41NDYtMjMuNTc0LDY4LjAyMi01MC43ODRsMTMuMjg2LTM0LjU0MmE3Ljk0NCw3Ljk0NCwwLDAsMCwuNTI0LTIuOTM2LDcuNzM1LDcuNzM1LDAsMCwwLS4xNjQtMS42MzFBMTUxLjkxLDE1MS45MSwwLDAsMCwyMDEuMjU3LDE5OC40LDY4LjEyLDY4LjEyLDAsMCwwLDk0LjIsMjY5LjU5QzQxLjkyNCwyNzEuMTA2LDAsMzEzLjcyOCwwLDM2Ni4xMmE5Ni4wNTQsOTYuMDU0LDAsMCwwLDEuMDI5LDEzLjk1OCw0LjUwOCw0LjUwOCwwLDAsMCw0LjQ0NSwzLjg3MWw0MjYuMS4wNTFjLjA0MywwLC4wOC0uMDE5LjEyMi0uMDJhNS42MDYsNS42MDYsMCwwLDAsNS4yNzEtNGwzLjI3My0xMS4yNjVjMy45LTEzLjQsMi40NDgtMjUuOC00LjEtMzQuOUM0MzAuMTI0LDMyNS40MjMsNDIwLjA5LDMyMC40ODcsNDA3LjkwNiwzMTkuOTEzWk01MTMuODU2LDIyMS4xYy0yLjE0MSwwLTQuMjcxLjA2Mi02LjM5MS4xNjRhMy43NzEsMy43NzEsMCwwLDAtMy4zMjQsMi42NTNsLTkuMDc3LDMxLjE5M2MtMy45LDEzLjQtMi40NDksMjUuNzg2LDQuMSwzNC44OSw2LjAyLDguNCwxNi4wNTQsMTMuMzIzLDI4LjIzOCwxMy45bDQ5LjIsMi45MzlhNC40OTEsNC40OTEsMCwwLDEsMy41MSwxLjg5NCw0LjY0LDQuNjQsMCwwLDEsLjUxNCw0LjE2OSw2LjE1Myw2LjE1MywwLDAsMS01LjM1MSw0LjA3NWwtNTEuMTI1LDIuOTM5Yy0yNy43NTQsMS4yNy01Ny42NjksMjMuNTc0LTY4LjE0NSw1MC43ODRsLTMuNjk1LDkuNjA2YTIuNzE2LDIuNzE2LDAsMCwwLDIuNDI3LDMuNjhjLjA0NiwwLC4wODguMDE3LjEzNi4wMTdoMTc1LjkxYTQuNjksNC42OSwwLDAsMCw0LjUzOS0zLjM3LDEyNC44MDcsMTI0LjgwNywwLDAsMCw0LjY4Mi0zNEM2NDAsMjc3LjMsNTgzLjUyNCwyMjEuMSw1MTMuODU2LDIyMS4xWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3Vkc2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE4LjEgMTU0bC05LjQgNy42Yy0yMi41LTE5LjMtNTEuNS0zMy42LTgzLjMtMzMuNkMxNTMuOCAxMjggOTYgMTg4LjggOTYgMjYwLjNjMCA2LjYuNCAxMy4xIDEuNCAxOS40LTItNTYgNDEuOC05Ny40IDkyLjYtOTcuNCAyNC4yIDAgNDYuMiA5LjQgNjIuNiAyNC43bC0yNS4yIDIwLjRjLTguMy0uOS0xNi44IDEuOC0yMy4xIDguMS0xMS4xIDExLTExLjEgMjguOSAwIDQwIDExLjEgMTEgMjguOSAxMSA0MCAwIDYuMy02LjMgOS0xNC45IDguMS0yMy4xbDc1LjItODguOGM2LjMtNi41LTMuMy0xNS45LTkuNS05LjZ6bS04My44IDExMS41Yy01LjYgNS41LTE0LjYgNS41LTIwLjIgMC01LjYtNS42LTUuNi0xNC42IDAtMjAuMnMxNC42LTUuNiAyMC4yIDAgNS42IDE0LjcgMCAyMC4yek0yMjQgMzJDMTAwLjUgMzIgMCAxMzIuNSAwIDI1NnMxMDAuNSAyMjQgMjI0IDIyNCAyMjQtMTAwLjUgMjI0LTIyNFMzNDcuNSAzMiAyMjQgMzJ6bTAgMzg0Yy04OC4yIDAtMTYwLTcxLjgtMTYwLTE2MFMxMzUuOCA5NiAyMjQgOTZzMTYwIDcxLjggMTYwIDE2MC03MS44IDE2MC0xNjAgMTYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3Vkc21pdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMzMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMyLjUgNDE5LjljMCA0Ni40LTM3LjYgODQuMS04NCA4NC4xcy04NC0zNy43LTg0LTg0LjEgMzcuNi04NCA4NC04NCA4NCAzNy42IDg0IDg0em0tODQtMjQzLjljNDYuNCAwIDgwLTM3LjYgODAtODRzLTMzLjYtODQtODAtODQtODggMzcuNi04OCA4NC0yOS42IDc2LTc2IDc2LTg0IDQxLjYtODQgODggMzcuNiA4MCA4NCA4MCA4NC0zMy42IDg0LTgwIDMzLjYtODAgODAtODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWR2ZXJzaWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OC42IDMwNGM4LjIgNjguNSA2Ny40IDExNS41IDE0NiAxMTEuMyA1MS4yIDQzLjMgMTM2LjggNDUuOCAxODYuNC01LjYgNjkuMiAxLjEgMTE4LjUtNDQuNiAxMzEuNS05OS41IDE0LjgtNjIuNS0xOC4yLTEzMi41LTkyLjEtMTU1LjEtMzMtODguMS0xMzEuNC0xMDEuNS0xODYuNS04NS01Ny4zIDE3LjMtODQuMyA1My4yLTk5LjMgMTA5LjctNy44IDIuNy0yNi41IDguOS00NSAyNC4xIDExLjcgMCAxNS4yIDguOSAxNS4yIDE5LjV2MjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41aC0yMC4yYy0xMC43IDAtMTkuNS02LTE5LjUtMTYuN1YyNDBIOTguOEM5NSAyNDAgODggMjQ0LjMgODggMjUxLjl2NDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhoNDguOXptMjI3LjQgOGMtMTAuNyA0Ni4zIDIxLjcgNzIuNCA1NS4zIDg2LjhDMzI0LjEgNDMyLjYgMjU5LjcgMzQ4IDI5NiAyODhjLTMzLjIgMjEuNi0zMy43IDcxLjItMjkuMiA5Mi45LTE3LjktMTIuNC01My44LTMyLjQtNTcuNC03OS44LTMtMzkuOSAyMS41LTc1LjcgNTctOTMuOUMyOTcgMTkxLjQgMzY5LjkgMTk4LjcgNDAwIDI0OGMtMTQuMS00OC01My44LTcwLjEtMTAxLjgtNzQuOCAzMC45LTMwLjcgNjQuNC01MC4zIDExNC4yLTQzLjcgNjkuOCA5LjMgMTMzLjIgODIuOCA2Ny43IDE1MC41IDM1LTE2LjMgNDguNy01NC40IDQ3LjUtNzYuOWwxMC41IDE5LjZjMTEuOCAyMiAxNS4yIDQ3LjYgOS40IDcyLTkuMiAzOS00MC42IDY4LjgtNzkuNyA3Ni41LTMyLjEgNi4zLTgzLjEtNS4xLTkxLjgtNTkuMnpNMTI4IDIwOEg4OC4yYy04LjkgMC0xNi4yLTcuMy0xNi4yLTE2LjJ2LTM5LjZjMC04LjkgNy4zLTE2LjIgMTYuMi0xNi4ySDEyOGM4LjkgMCAxNi4yIDcuMyAxNi4yIDE2LjJ2MzkuNmMwIDguOS03LjMgMTYuMi0xNi4yIDE2LjJ6TTEwLjEgMTY4QzQuNSAxNjggMCAxNjMuNSAwIDE1Ny45di0yNy44YzAtNS42IDQuNS0xMC4xIDEwLjEtMTAuMWgyNy43YzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMXYyNy44YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMUgxMC4xek0xNjggMTQyLjd2LTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zaDIxLjRjNS4xIDAgOS4zIDQuMiA5LjMgOS4zdjIxLjRjMCA1LjEtNC4yIDkuMy05LjMgOS4zaC0yMS40Yy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTU2IDIzNS41djI1YzAgNi4zLTUuMSAxMS41LTExLjQgMTEuNUgxOS40QzEzLjEgMjcyIDggMjY2LjggOCAyNjAuNXYtMjVjMC02LjMgNS4xLTExLjUgMTEuNC0xMS41aDI1LjFjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVwZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjI4NSAxNTkuNzA0bC0yMzQtMTU2Yy03Ljk4Ny00LjkxNS0xNi41MTEtNC45Ni0yNC41NzEgMGwtMjM0IDE1NkMzLjcxNCAxNjMuNzAzIDAgMTcwLjg0NyAwIDE3Ny45ODl2MTU1Ljk5OWMwIDcuMTQzIDMuNzE0IDE0LjI4NiA5LjcxNSAxOC4yODZsMjM0IDE1Ni4wMjJjNy45ODcgNC45MTUgMTYuNTExIDQuOTYgMjQuNTcxIDBsMjM0LTE1Ni4wMjJjNi0zLjk5OSA5LjcxNS0xMS4xNDMgOS43MTUtMTguMjg2VjE3Ny45ODljLS4wMDEtNy4xNDItMy43MTUtMTQuMjg2LTkuNzE2LTE4LjI4NXpNMjc4IDYzLjEzMWwxNzIuMjg2IDExNC44NTgtNzYuODU3IDUxLjQyOUwyNzggMTY1LjcwM1Y2My4xMzF6bS00NCAwdjEwMi41NzJsLTk1LjQyOSA2My43MTUtNzYuODU3LTUxLjQyOUwyMzQgNjMuMTMxek00NCAyMTkuMTMybDU1LjE0MyAzNi44NTdMNDQgMjkyLjg0NnYtNzMuNzE0em0xOTAgMjI5LjcxNUw2MS43MTQgMzMzLjk4OWw3Ni44NTctNTEuNDI5TDIzNCAzNDYuMjc1djEwMi41NzJ6bTIyLTE0MC44NThsLTc3LjcxNS01MiA3Ny43MTUtNTIgNzcuNzE1IDUyLTc3LjcxNSA1MnptMjIgMTQwLjg1OFYzNDYuMjc1bDk1LjQyOS02My43MTUgNzYuODU3IDUxLjQyOUwyNzggNDQ4Ljg0N3ptMTkwLTE1Ni4wMDFsLTU1LjE0My0zNi44NTdMNDY4IDIxOS4xMzJ2NzMuNzE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGllcGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NzIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWgtMTAuOHY0NC4zaC0yNi42di05Ny40aDM3Ljd6TTQ3MiAzNTIuNkM0MjkuOSA0NDQuNSAzNTAuNCA1MDQgMjQ4IDUwNCAxMTEgNTA0IDAgMzkzIDAgMjU2UzExMSA4IDI0OCA4Yzk3LjQgMCAxNzIuOCA1My43IDIxOC4yIDEzOC40bC0xODYgMTA4LjhMNDcyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42Yy00MC43LTYyLjYtMTA0LjctMTAwLTE3OS4yLTEwMC0xMjEuMiAwLTIxOS41IDk4LjMtMjE5LjUgMjE5LjVTMTI2LjggNDc1LjUgMjQ4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbmZsdWVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4zIDQxMi4yYy00LjUgNy42LTIuMSAxNy41IDUuNSAyMi4ybDEwNS45IDY1LjJjNy43IDQuNyAxNy43IDIuNCAyMi40LTUuMyAwLS4xLjEtLjIuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjguNCAyMS43LTcuNy4xLS4xLjEtLjMuMi0uNGw1MC40LTExNC4xYzMuNi04LjEtLjEtMTcuNi04LjEtMjEuMy0yMi4yLTEwLjQtNjYuMi0zMS4yLTEwNS45LTUwLjNDMTI3LjUgMTc5IDQ0LjYgMzQ1LjMgMi4zIDQxMi4yem01MDcuNC0zMTIuMWM0LjUtNy42IDIuMS0xNy41LTUuNS0yMi4yTDM5OC40IDEyLjhjLTcuNS01LTE3LjYtMy4xLTIyLjYgNC40LS4yLjMtLjQuNi0uNiAxLTY3LjMgMTEyLjYtODEuMSA5NS42LTI4MC42LjktOC4xLTMuOS0xNy44LS40LTIxLjcgNy43LS4xLjEtLjEuMy0uMi40TDIyLjIgMTQxLjNjLTMuNiA4LjEuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbm5lY3RkZXZlbG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MC41IDI0MWwtNTAuMDg5LTg2Ljc4NmMxLjA3MS0yLjE0MiAxLjg3NS00LjU1MyAxLjg3NS03LjIzMiAwLTguMDM2LTYuNjk2LTE0LjczMy0xNC43MzItMTUuMDAxbC01NS40NDctOTUuODkzYy41MzYtMS42MDcgMS4wNzEtMy4yMTQgMS4wNzEtNC44MjEgMC04LjU3MS02Ljk2NC0xNS4yNjgtMTUuMjY4LTE1LjI2OC00LjgyMSAwLTguODM5IDIuMTQzLTExLjc4NiA1LjYyNUgyOTkuNTE4QzI5Ni44MzkgMTguMTQzIDI5Mi44MjEgMTYgMjg4IDE2cy04LjgzOSAyLjE0My0xMS41MTggNS42MjVIMTcwLjQxMUMxNjcuNDY0IDE4LjE0MyAxNjMuNDQ3IDE2IDE1OC42MjUgMTZjLTguMzAzIDAtMTUuMjY4IDYuNjk2LTE1LjI2OCAxNS4yNjggMCAxLjYwNy41MzYgMy40ODIgMS4wNzIgNC44MjFsLTU1Ljk4MyA5Ny4yMzNjLTUuMzU2IDIuNDEtOS4xMDcgNy41LTkuMTA3IDEzLjY2MSAwIC41MzUuMjY4IDEuMDcxLjI2OCAxLjYwN2wtNTMuMzA0IDkyLjE0M2MtNy4yMzIgMS4zMzktMTIuNTkgNy41LTEyLjU5IDE1IDAgNy4yMzIgNS4wODkgMTMuMzkzIDEyLjA1NCAxNWw1NS4xNzkgOTUuMzU4Yy0uNTM2IDEuNjA3LS44MDQgMi45NDYtLjgwNCA0LjgyMSAwIDcuMjMyIDUuMDg5IDEzLjM5MyAxMi4wNTQgMTQuNzMybDUxLjY5NyA4OS43MzJjLS41MzYgMS42MDctMS4wNzEgMy40ODItMS4wNzEgNS4zNTcgMCA4LjU3MSA2Ljk2NCAxNS4yNjggMTUuMjY4IDE1LjI2OCA0LjgyMSAwIDguODM5LTIuMTQzIDExLjUxOC01LjM1N2gxMDYuODc1QzI3OS4xNjEgNDkzLjg1NyAyODMuNDQ3IDQ5NiAyODggNDk2czguODM5LTIuMTQzIDExLjUxOC01LjM1N2gxMDcuMTQzYzIuNjc4IDIuOTQ2IDYuNjk2IDQuODIxIDEwLjk4MiA0LjgyMSA4LjU3MSAwIDE1LjI2OC02Ljk2NCAxNS4yNjgtMTUuMjY4IDAtMS42MDctLjI2Ny0yLjk0Ni0uODAzLTQuMjg1bDUxLjY5Ny05MC4yNjhjNi45NjQtMS4zMzkgMTIuMDU0LTcuNSAxMi4wNTQtMTQuNzMyIDAtMS42MDctLjI2OC0zLjIxNC0uODA0LTQuODIxbDU0LjkxMS05NS4zNThjNi45NjQtMS4zMzkgMTIuMzIyLTcuNSAxMi4zMjItMTUtLjAwMi03LjIzMi01LjA5Mi0xMy4zOTMtMTEuNzg4LTE0LjczMnpNMTUzLjUzNSA0NTAuNzMybC00My42Ni03NS44MDNoNDMuNjZ2NzUuODAzem0wLTgzLjgzOWgtNDMuNjZjLS4yNjgtMS4wNzEtLjgwNC0yLjE0Mi0xLjMzOS0zLjIxNGw0NC45OTktNDcuNDF2NTAuNjI0em0wLTYyLjQxMWwtNTAuMzU3IDUzLjMwNGMtMS4zMzktLjUzNi0yLjY3OS0xLjM0LTQuMDE4LTEuNjA3TDQzLjQ0NyAyNTkuNzVjLjUzNS0xLjMzOS41MzUtMi42NzkuNTM1LTQuMDE4czAtMi40MS0uMjY4LTMuNDgybDUxLjk2NS05MGMyLjY3OS0uMjY4IDUuMzU3LTEuMDcyIDcuNzY4LTIuNjc5bDUwLjA4OSA1MS45NjV2OTIuOTQ2em0wLTEwMi4zMjJsLTQ1LjgwMy00Ny40MWMxLjMzOS0yLjE0MyAyLjE0My00LjgyMSAyLjE0My03Ljc2NyAwLS4yNjgtLjI2OC0uODA0LS4yNjgtMS4wNzJsNDMuOTI4LTE1LjgwNHY3Mi4wNTN6bTAtODAuNjI1bC00My42NiAxNS44MDQgNDMuNjYtNzUuNTM2djU5LjczMnptMzI2LjUxOSAzOS4xMDhsLjgwNCAxLjMzOUw0NDUuNSAzMjkuMTI1bC02My43NS02Ny4yMzIgOTguMDM2LTEwMS41MTguMjY4LjI2OHpNMjkxLjc1IDM1NS4xMDdsMTEuNTE4IDExLjc4NkgyODAuNWwxMS4yNS0xMS43ODZ6bS0uMjY4LTExLjI1bC04My4zMDMtODUuNDQ2IDc5LjU1My04NC4zNzUgODMuMDM2IDg3LjU4OS03OS4yODYgODIuMjMyem01LjM1NyA1Ljg5M2w3OS4yODYtODIuMjMyIDY3LjUgNzEuMjUtNS44OTIgMjguMTI1SDMxMy43MTRsLTE2Ljg3NS0xNy4xNDN6TTQxMC40MTEgNDQuMzkzYzEuMDcxLjUzNiAyLjE0MiAxLjA3MiAzLjQ4MiAxLjM0bDU3Ljg1NyAxMDAuNzE0di41MzZjMCAyLjk0Ni44MDMgNS42MjQgMi4xNDMgNy43NjdMMzc2LjM5MyAyNTZsLTgzLjAzNS04Ny41ODlMNDEwLjQxMSA0NC4zOTN6bS05LjEwNy0yLjE0M0wyODcuNzMyIDE2Mi41MThsLTU3LjA1NC02MC4yNjggMTY2LjMzOS02MGg0LjI4N3ptLTEyMy40ODMgMGMyLjY3OCAyLjY3OCA2LjE2IDQuMjg1IDEwLjE3OSA0LjI4NXM3LjUtMS42MDcgMTAuMTc5LTQuMjg1aDc1TDIyNC43ODYgOTUuODIxIDE3My44OTMgNDIuMjVoMTAzLjkyOHptLTExNi4yNDkgNS42MjVsMS4wNzEtMi4xNDJhMzMuODM0IDMzLjgzNCAwIDAgMCAyLjY3OS0uODA0bDUxLjE2MSA1My44NC01NC45MTEgMTkuODIxVjQ3Ljg3NXptMCA3OS4yODZsNjAuODAzLTIxLjk2NCA1OS43MzIgNjMuMjE0LTc5LjU1MyA4NC4xMDctNDAuOTgyLTQyLjA1M3YtODMuMzA0em0wIDkyLjY3OEwxOTggMjU3LjYwN2wtMzYuNDI4IDM4LjMwNHYtNzYuMDcyem0wIDg3Ljg1OGw0Mi4wNTMtNDQuNDY0IDgyLjc2OCA4NS45ODItMTcuMTQzIDE3LjY3OEgxNjEuNTcydi01OS4xOTZ6bTYuOTY0IDE2Mi4wNTNjLTEuNjA3LTEuNjA3LTMuNDgyLTIuNjc4LTUuODkzLTMuNDgybC0xLjA3MS0xLjYwN3YtODkuNzMyaDk5LjkxbC05MS42MDcgOTQuODIxaC0xLjMzOXptMTI5LjkxMSAwYy0yLjY3OS0yLjQxLTYuNDI4LTQuMjg1LTEwLjQ0Ny00LjI4NXMtNy43NjcgMS44NzUtMTAuNDQ3IDQuMjg1aC05Ni40MjlsOTEuNjA3LTk0LjgyMWgzOC4zMDRsOTEuNjA3IDk0LjgyMUgyOTguNDQ3em0xMjAtMTEuNzg2bC00LjI4NiA3LjVjLTEuMzM5LjI2OC0yLjQxLjgwMy0zLjQ4MiAxLjMzOWwtODkuMTk2LTkxLjg3NWgxMTQuMzc2bC0xNy40MTIgODMuMDM2em0xMi44NTYtMjIuMjMybDEyLjg1OC02MC44MDNoMjEuOTY0bC0zNC44MjIgNjAuODAzem0zNC44MjItNjguODM5aC0yMC4zNTdsNC41NTMtMjEuMTYgMTcuMTQzIDE4LjIxNGMtLjUzNS44MDMtMS4wNzEgMS44NzQtMS4zMzkgMi45NDZ6bTY2LjE2MS0xMDcuNDExbC01NS40NDcgOTYuNjk3Yy0xLjMzOS41MzUtMi42NzkgMS4wNzEtNC4wMTggMS44NzRsLTIwLjYyNS0yMS45NjQgMzQuNTU0LTE2My45MjggNDUuODAzIDc5LjI4NmMtLjI2NyAxLjMzOS0uODAzIDIuNjc4LS44MDMgNC4yODUgMCAxLjMzOS4yNjggMi40MTEuNTM2IDMuNzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29udGFvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1LjQgMzA1YzE0LjQgNjcuMSAyNi40IDEyOSA2OC4yIDE3NUgzNGMtMTguNyAwLTM0LTE1LjItMzQtMzRWNjZjMC0xOC43IDE1LjItMzQgMzQtMzRoNTcuN0M3Ny45IDQ0LjYgNjUuNiA1OS4yIDU0LjggNzUuNmMtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmgtOTAuMmMyMS40IDIxLjQgMzkuMiA0OS41IDUyLjcgODQuMWwtMTM3LjEgMjkuM2MtMTQuOS0yOS0zNy44LTUzLjMtODIuNi00My45LTI0LjYgNS4zLTQxIDE5LjMtNDguMyAzNC42LTguOCAxOC43LTEzLjIgMzkuOCA4LjIgMTQwLjMgMjEuMSAxMDAuMiAzMy43IDExNy43IDQ5LjUgMTMxLjIgMTIuOSAxMS4xIDMzLjQgMTcgNTguMyAxMS43IDQ0LjUtOS40IDU1LjctNDAuNyA1Ny40LTczLjJsMTM3LjQtMjkuNmMzLjIgNzEuNS0xOC43IDEyNS4yLTU3LjQgMTYzLjZINDc4YzE4LjcgMCAzNC0xNS4yIDM0LTM0VjY2YzAtMTguOC0xNS4yLTM0LTM0LTM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvdHRvbkJ1cmVhdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzQuMzEgMzMwLjQxYy0yMy42NiA5MS44NS05NC4yMyAxNDQuNTktMjAxLjkgMTQ4LjM1VjQyOS42YzAtNDggMjYuNDEtNzQuMzkgNzQuMzktNzQuMzkgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yMSAwLTYxLjM3LTM2LjUzLTk4LjI4LTk3LjM4LTk5LjA2LTMzLTY5LjMyLTE0Ni41LTY0LjY1LTE3Ny4yNCAwQzExMC41MiAxNTcuNzIgNzQgMTk0LjYzIDc0IDI1NmMwIDYyLjEzIDM3LjI3IDk5LjQxIDk5LjQgOTkuNDEgNDggMCA3NC41NSAyNi4yMyA3NC41NSA3NC4zOVY0NzljLTEzNC40My01LTIxMS4xLTg1LjA3LTIxMS4xLTIyMyAwLTE0MS44MiA4MS4zNS0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuNzcgMCAxODkuODQgNTMuMiAyMTQuNjkgMTQ4LjgxSDUwMEM0NzMuODggNzEuNTEgMzg4LjIyIDggMjU5LjgyIDggMTA1IDggMTIgMTAxLjE5IDEyIDI1NS44MiAxMiA0MTEuMTQgMTA1LjE5IDUwNC4zNCAyNTkuODIgNTA0YzEyOC4yNyAwIDIxMy44Ny02My44MSAyMzkuNjctMTczLjU5ek0zNTcgMTgyLjMzYzQxLjM3IDMuNDUgNjQuMiAyOSA2NC4yIDczLjY3IDAgNDgtMjYuNDMgNzQuNDEtNzQuNCA3NC40MS0yOC42MSAwLTQ5LjMzLTkuNTktNjEuNTktMjcuMzMgODMuMDYtMTYuNTUgNzUuNTktOTkuNjcgNzEuNzktMTIwLjc1em0tODEuNjggOTcuMzZjLTIuNDYtMTAuMzQtMTYuMzMtODcgNTYuMjMtOTcgMi4yNyAxMC4wOSAxNi41MiA4Ny4xMS01Ni4yNiA5N3pNMjYwIDEzMmMyOC42MSAwIDQ5IDkuNjcgNjEuNDQgMjcuNjEtMjguMzYgNS40OC00OS4zNiAyMC41OS02MS41OSA0My40NS0xMi4yMy0yMi44Ni0zMy4yMy0zOC02MS42LTQzLjQ1IDEyLjQxLTE3LjY5IDMzLjI3LTI3LjM1IDYxLjU3LTI3LjM1em0tNzEuNTIgNTAuNzJjNzMuMTcgMTAuNTcgNTguOTEgODYuODEgNTYuNDkgOTctNzIuNDEtOS44NC01OS04Ni45NS01Ni4yNS05N3pNMTczLjIgMzMwLjQxYy00OCAwLTc0LjQtMjYuNC03NC40LTc0LjQxIDAtNDQuMzYgMjIuODYtNzAgNjQuMjItNzMuNjctNi43NSAzNy4yLTEuMzggMTA2LjUzIDcxLjY1IDEyMC43NS0xMi4xNCAxNy42My0zMi44NCAyNy4zLTYxLjE0IDI3LjN6bTUzLjIxIDEyLjM5QTgwLjggODAuOCAwIDAgMCAyNjAgMzA5LjI1YzcuNzcgMTQuNDkgMTkuMzMgMjUuNTQgMzMuODIgMzMuNTVhODAuMjggODAuMjggMCAwIDAtMzMuNTggMzMuODNjLTgtMTQuNS0xOS4wNy0yNi4yMy0zMy41Ni0zMy44M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcGFuZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEwLjMgMjIwLjJjLTUuNi0yNC44LTI2LjktNDEuMi01MS00MS4yaC0zN2MtNy4xIDAtMTIuNSA0LjUtMTQuMyAxMC45TDczLjEgMzIwbDI0LjctLjFjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDI1LjgtOTUuN2gxOS44YzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZoLTEwLjNjLTcgMC0xMi41IDQuNi0xNC4zIDEwLjhsLTYuNCAyMy44aDMyYzM3LjIgMCA1OC4zLTM2LjIgNTEuNy02NS4zem0tMTU2LjUgMjhoMTguNmM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjZoLTQwQzMwIDIxMy43IDkgMjI3LjggMS43IDI1NC44LTcgMjg4LjYgMTguNSAzMjAgNTIgMzIwaDEyLjRsNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNINTMuOGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhoLTc3LjlsLTMuNSAxMy40Yy0yLjQgOS42IDQuNSAxOC41IDE0LjIgMTguNWg1Ny41YzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNoLTM0LjljLTUuMyAwLTUuMy03LjkgMC03LjloMjEuNmM2LjggMCAxMi4zLTQuNiAxNC4yLTEwLjhsMy41LTEzLjJoLTQ4LjRjLTM5LjIgMC00My42IDYzLjgtLjcgNjMuOGw1Ny41LjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5aC0xOC45Yy00LjkgMC05LjIgMy4yLTEwLjQgNy45TDU2OC4yIDMyMGMyMC43IDAgMzkuOC0xMy44IDQ0LjktMzQuNWwyNi41LTk4LjJjMS4yLTQuMy0yLTguMy02LjUtOC4zem0tMjM2LjMgMzQuN3YuMWgtNDguM2wtMjYuMiA5OGMtMS4yIDQuNCAyLjIgOC4zIDYuNCA4LjNoMTguOWM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0SDM5NWMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNINDI4YzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmgzMi45YzIuNiAwIDQuNiAyLjQgMy45IDUuMWwtLjcgMi42Yy0uNiAyLTEuOSAzLTMuOSAzaC0yMS42Yy03IDAtMTIuNiA0LjYtMTQuMiAxMC44bC0zLjUgMTNoNTMuNGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhoLTQ3LjNjLTE3LjkgMC0zMy44IDEyLTM4LjYgMjkuNmwtMTAuOCA0MGMtNSAxNy43IDguMyAzNi43IDI4LjMgMzYuN2g2Ni43YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2w1LjctMjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zQnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE0LjkgMTk0LjR2MTAxLjRoLTI4LjN2MTIwLjVoLTc3LjFWMjk1LjloLTI4LjNWMTk0LjRjMC00LjQgMS42LTguMiA0LjYtMTEuMyAzLjEtMy4xIDYuOS00LjcgMTEuMy00LjdIMjk5YzQuMSAwIDcuOCAxLjYgMTEuMSA0LjcgMy4xIDMuMiA0LjggNi45IDQuOCAxMS4zem0tMTAxLjUtNjMuN2MwLTIzLjMgMTEuNS0zNSAzNC41LTM1czM0LjUgMTEuNyAzNC41IDM1YzAgMjMtMTEuNSAzNC41LTM0LjUgMzQuNXMtMzQuNS0xMS41LTM0LjUtMzQuNXpNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmNFdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNyA4QzEwMy42IDggMCAxMjQuOCAwIDI1NmMwIDEzNi4zIDExMS43IDI0OCAyNDcuNyAyNDhDMzc3LjkgNTA0IDQ5NiA0MDMuMSA0OTYgMjU2IDQ5NiAxMTcgMzg4LjQgOCAyNDcuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIzLjIgMy43LTQ1LjIgMTAuOS02Nmw2NS43IDI5LjFoLTQuN3YyOS41aDIzLjNjMCA2LjItLjQgMy4yLS40IDE5LjVoLTIyLjh2MjkuNWgyN2MxMS40IDY3IDY3LjIgMTAxLjMgMTI0LjYgMTAxLjMgMjYuNiAwIDUwLjYtNy45IDY0LjgtMTUuOGwtMTAtNDYuMWMtOC43IDQuNi0yOC4yIDEwLjgtNDcuMyAxMC44LTI4LjIgMC01OC4xLTEwLjktNjcuMy01MC4yaDkwLjNsMTI4LjMgNTYuOGMtMS41IDIuMS01Ni4yIDEwNC4zLTE3OC44IDEwNC4zem0tMTYuNy0xOTAuNmwtLjUtLjQuOS40aC0uNHptNzcuMi0xOS41aDMuN3YtMjkuNWgtNzAuM2wtMjguNi0xMi42YzIuNS01LjUgNS40LTEwLjUgOC44LTE0LjMgMTIuOS0xNS44IDMxLjEtMjIuNCA1MS4xLTIyLjQgMTguMyAwIDM1LjMgNS40IDQ2LjEgMTBsMTEuNi00Ny4zYy0xNS02LjYtMzctMTIuNC02Mi4zLTEyLjQtMzkgMC03Mi4yIDE1LjgtOTUuOSA0Mi4zLTUuMyA2LjEtOS44IDEyLjktMTMuOSAyMC4xbC04MS42LTM2LjFjNjQuNi05Ni44IDE1Ny43LTkzLjYgMTcwLjctOTMuNiAxMTMgMCAyMDMgOTAuMiAyMDMgMjAzLjQgMCAxOC43LTIuMSAzNi4zLTYuMyA1Mi45bC0xMzYuMS02MC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05jSnAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjcgOEMxMDMuNiA4IDAgMTI0LjggMCAyNTZjMCAxMzYuNCAxMTEuOCAyNDggMjQ3LjcgMjQ4QzM3Ny45IDUwNCA0OTYgNDAzLjIgNDk2IDI1NiA0OTYgMTE3LjIgMzg4LjUgOCAyNDcuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIxLjEgMy00MS4yIDktNjAuM2wxMjcgNTYuNWgtMjcuOXYzOC42aDU4LjFsNS43IDExLjh2MTguN2gtNjMuOFYzNjBoNjMuOHY1Nmg2MS43di01Nmg2NC4ydi0zNS43bDgxIDM2LjFjLTEuNSAyLjItNTcuMSA5OC4zLTE3NS4yIDk4LjN6bTg3LjYtMTM3LjNoLTU3LjZ2LTE4LjdsMi45LTUuNiA1NC43IDI0LjN6bTYuNS01MS40di0xNy44aC0zOC42bDYzLTExNkgzMDFsLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjdoLTY1LjhsMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OWwtMTAxLTQ1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODcuNCA4IDQ5NiAxMTUuOSA0OTYgMjU2YzAgMTQ3LjItMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuMSA1MDQgMCAzOTMuMiAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHpNNTUuOCAxODkuMWMtNy40IDIwLjQtMTEuMSA0Mi43LTExLjEgNjYuOSAwIDExMC45IDkyLjEgMjAyLjQgMjAzLjcgMjAyLjQgMTIyLjQgMCAxNzcuMi0xMDEuOCAxNzguNS0xMDQuMWwtOTMuNC00MS42Yy03LjcgMzcuMS00MS4yIDUzLTY4LjIgNTUuNHYzOC4xaC0yOC44VjM2OGMtMjcuNS0uMy01Mi42LTEwLjItNzUuMy0yOS43bDM0LjEtMzQuNWMzMS43IDI5LjQgODYuNCAzMS44IDg2LjQtMi4yIDAtNi4yLTIuMi0xMS4yLTYuNi0xNS4xLTE0LjItNi0xLjgtLjEtMjE5LjMtOTcuNHpNMjQ4LjQgNTIuM2MtMzguNCAwLTExMi40IDguNy0xNzAuNSA5M2w5NC44IDQyLjVjMTAtMzEuMyA0MC40LTQyLjkgNjMuOC00NC4zdi0zOC4xaDI4Ljh2MzguMWMyMi43IDEuMiA0My40IDguOSA2MiAyM0wyOTUgMTk5LjdjLTQyLjctMjkuOS04My41LTgtNzAgMTEuMSA1My40IDI0LjEgNDMuOCAxOS44IDkzIDQxLjZsMTI3LjEgNTYuN2M0LjEtMTcuNCA2LjItMzUuMSA2LjItNTMuMSAwLTU3LTE5LjgtMTA1LTU5LjMtMTQzLjktMzkuMy0zOS45LTg3LjItNTkuOC0xNDMuNi01OS44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM3Y0Mi41SDE2Mi4xVjE5N2gxODAuM3ptMCA3OS44djQyLjVIMTYyLjF2LTQyLjVoMTgwLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUGRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMxMDQuNyA4IDAgMTIzLjEgMCAyNTZjMCAxMzguNSAxMTMuNiAyNDggMjQ3LjYgMjQ4QzM3Ny41IDUwNCA0OTYgNDAzLjEgNDk2IDI1NiA0OTYgMTE4LjEgMzg5LjQgOCAyNDcuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzE2LjcgMTg2aC01My4ydjEzNy4yaDUzLjJjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVoLTE5Ljl2LTc5LjdsMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjAzLjcgMTg2aC02OC4ydjEzNy4zaDM0LjZWMjc5aDI3YzU0LjEgMCA1Ny4xLTM3LjUgNTcuMS00Ni41IDAtMzEtMTYuOC00Ni41LTUwLjUtNDYuNXptLTQuOSA2Ny4zaC0yOS4ydi00MS42aDI4LjNjMzAuOSAwIDI4LjggNDEuNi45IDQxLjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkuMSAwIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4QzQ5NiAxMTkuMSAzODUgOCAyNDggOHptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwyOTcgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZsLTc0LjktMzMuNGMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1JlbWl4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xNjEuNyAyMDcuN2w0LjkgMi4ydjcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjV2LTYzLjhsNTkuMy0yNC44Yy0uNy0uNy0uNCA1LS40LTcwLjRsNjcuMy0yOS43TDM2MSAxNzguNXY2MS42bDQ5LjEgMjAuM3ptLTcwLjQgODEuNXYtNDMuOGgtLjR2LTEuOGwtMTEzLjgtNDYuNVYyOTVsMTEzLjggNDYuOXYtLjRsLjQuNHptNy41LTU3LjZsMzkuOS0xNi40LTM2LjgtMTUuNS0zOSAxNi40IDM1LjkgMTUuNXptNTIuMyAzOC4xdi00M0wzNTUuMiAyOTh2NDMuNGw0NC4zLTE5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xMzcuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdoNjIuNWMxLjUgMzAuMSAxOS42IDQ1LjIgNTQuNSA0NS4yIDIzLjMgMCA1OC0xOC4yIDU4LTgyLjggMC04Mi41LTQ5LjEtODAuNi01Ni43LTgwLjYtMzMuMSAwLTUxLjcgMTQuNi01NS44IDQzLjhoMTguMmwtNDkuMiA0OS4yLTQ5LTQ5LjJoMTkuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMS40bC00LjMgNTEuNC01LjItNjguOGMtMS4xLTE0LjMtMjIuMS0xNC4yLTIzLjIgMGwtMy41IDQ0LjktNS45LTk0LjNjLS45LTE0LjUtMjIuMy0xNC40LTIzLjIgMGwtNS4xIDgzLjctNC4zLTY2LjNjLS45LTE0LjQtMjIuMi0xNC40LTIzLjIgMGwtNS4zIDgwLjItNC4xLTU3Yy0xLjEtMTQuMy0yMi0xNC4zLTIzLjItLjJsLTcuNyA4OS44LTEuOC0xMi4yYy0xLjctMTEuNC0xNy4xLTEzLjYtMjItMy4zbC0xMy4yIDI3LjdIODcuNXYyMy4yaDUxLjNjNC40IDAgOC40LTIuNSAxMC40LTYuNGwxMC43IDczLjFjMiAxMy41IDIxLjkgMTMgMjMuMS0uN2wzLjgtNDMuNiA1LjcgNzguM2MxLjEgMTQuNCAyMi4zIDE0LjIgMjMuMi0uMWw0LjYtNzAuNCA0LjggNzMuM2MuOSAxNC40IDIyLjMgMTQuNCAyMy4yLS4xbDQuOS04MC41IDQuNSA3MS44Yy45IDE0LjMgMjIuMSAxNC41IDIzLjIuMmw0LjYtNTguNiA0LjkgNjQuNGMxLjEgMTQuMyAyMiAxNC4yIDIzLjEuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjRoNTAuNVYyNThsLTU4LjQuM3ptLTc4IDUuMmgtMjEuOXYyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjV2LTIxLjloLTIxLjljLTQuMSAwLTcuNS0zLjMtNy41LTcuNSAwLTQuMSAzLjQtNy41IDcuNS03LjVoMjEuOXYtMjEuOWMwLTQuMSAzLjQtNy41IDcuNS03LjVzNy41IDMuMyA3LjUgNy41djIxLjloMjEuOWM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNiA1LjkgMCAxMC42IDQuNyAxMC42IDEwLjYgMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmg1OHYyMS4zaC01MC45bC0xOC4yIDQ0LjNjLTMuOSA5LjktMTkuNSA5LjEtMjAuOC0zLjFsLTQtMzEuOS03LjUgOTIuNmMtLjMgMy0zIDkuMy0xMC4yIDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLTEuOS42IDUuOC02LjItNzcuOWwtNS4zIDcyLjJjLTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0yLjkgMC05LjgtMi0xMC42LTkuMyAwLTEuOS41IDYuNy01LjgtODcuN2wtNS44IDk0LjhjMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJsLTUuOC04Ny43Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjZMMTgyIDM0OGMtLjcgNi41LTYuNyA5LjMtMTAuNiA5LjMtNS44IDAtOS42LTQuMS0xMC42LTguOUwxNDkuNyAyNzJjLTIgNC0zLjUgOC40LTExLjEgOC40SDg3LjJ2LTIxLjNIMTMybDEzLjctMjcuOWM0LjQtOS45IDE4LjItNy4yIDE5LjkgMi43bDMuMSAyMC40IDguNC05Ny45YzAtNiA0LjgtMTAuNiAxMC42LTEwLjYuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYuNiAwIDEwLjYuNyAxMC42IDEwLjZsNS4zIDgwLjYgNi4yLTk3LjljLjEtMS4xLS42LTEwLjMgOS45LTExLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjd2MTgyLjVjMCA3LjctNi4xIDEzLjctMTMuNyAxMy43SDIxNC4zYy03LjcgMC0xMy43LTYtMTMuNy0xMy43di01NGgtNTRjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdWMTMxLjFjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43aDEzNi40YzcuNyAwIDEzLjcgNiAxMy43IDEzLjd2NTRoNTR6TTE1OS45IDMwMC4zaDQwLjdWMTk4LjljMC03LjQgNS44LTEyLjYgMTItMTMuN2g1NS44di00MC4zSDE1OS45djE1NS40em0xNzYuMi04OC4xSDIyNy42djE1NS40aDEwOC41VjIxMi4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1plcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOCAwIDY1LjUgMjAuNiAxNDIuOCAxMDIuNSAxNDIuOFMzNTAuNSAzMjEuNSAzNTAuNSAyNTZjMC02NS41LTIwLjYtMTQyLjgtMTAyLjUtMTQyLjh6bTAgNTMuOWMzLjMgMCA2LjQuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlsLTU0LjUgMTAwLjJjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDUuODMgMjE0Ljg3bC0zMy4yMiAxNy4yOGMtOS40My0xOS41OC0yNS4yNC0xOS45My0yNy40Ni0xOS45My0yMi4xMyAwLTMzLjIyIDE0LjYxLTMzLjIyIDQzLjg0IDAgMjMuNTcgOS4yMSA0My44NCAzMy4yMiA0My44NCAxNC40NyAwIDI0LjY1LTcuMDkgMzAuNTctMjEuMjZsMzAuNTUgMTUuNWMtNi4xNyAxMS41MS0yNS42OSAzOC45OC02NS4xIDM4Ljk4LTIyLjYgMC03My45Ni0xMC4zMi03My45Ni03Ny4wNSAwLTU4LjY5IDQzLTc3LjA2IDcyLjYzLTc3LjA2IDMwLjcyLS4wMSA1Mi43IDExLjk1IDY1Ljk5IDM1Ljg2em0xNDMuMDUgMGwtMzIuNzggMTcuMjhjLTkuNS0xOS43Ny0yNS43Mi0xOS45My0yNy45LTE5LjkzLTIyLjE0IDAtMzMuMjIgMTQuNjEtMzMuMjIgNDMuODQgMCAyMy41NSA5LjIzIDQzLjg0IDMzLjIyIDQzLjg0IDE0LjQ1IDAgMjQuNjUtNy4wOSAzMC41NC0yMS4yNmwzMSAxNS41Yy0yLjEgMy43NS0yMS4zOSAzOC45OC02NS4wOSAzOC45OC0yMi42OSAwLTczLjk2LTkuODctNzMuOTYtNzcuMDUgMC01OC42NyA0Mi45Ny03Ny4wNiA3Mi42My03Ny4wNiAzMC43MS0uMDEgNTIuNTggMTEuOTUgNjUuNTYgMzUuODZ6TTI0Ny41NiA4LjA1QzEwNC43NCA4LjA1IDAgMTIzLjExIDAgMjU2LjA1YzAgMTM4LjQ5IDExMy42IDI0OCAyNDcuNTYgMjQ4IDEyOS45MyAwIDI0OC40NC0xMDAuODcgMjQ4LjQ0LTI0OCAwLTEzNy44Ny0xMDYuNjItMjQ4LTI0OC40NC0yNDh6bS44NyA0NTAuODFjLTExMi41NCAwLTIwMy43LTkzLjA0LTIwMy43LTIwMi44MSAwLTEwNS40MiA4NS40My0yMDMuMjcgMjAzLjcyLTIwMy4yNyAxMTIuNTMgMCAyMDIuODIgODkuNDYgMjAyLjgyIDIwMy4yNi0uMDEgMTIxLjY5LTk5LjY4IDIwMi44Mi0yMDIuODQgMjAyLjgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyaXRpY2FsUm9sZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUuODIgMGMuMjYuMTUgMjE2LjU3IDEyNC41MSAyMTcuMTIgMTI0LjcyIDMgMS4xOCAzLjcgMy40NiAzLjcgNi41NnEtLjExIDEyNS4xNyAwIDI1MC4zNmE1Ljg4IDUuODggMCAwIDEtMy4zOCA1Ljc4Yy0yMS4zNyAxMi0yMDcuODYgMTE4LjI5LTIxOC45MyAxMjQuNThoLTNDMTQyIDQ2Ni4zNCAzLjA4IDM4Ni41NiAyLjkzIDM4Ni40OGEzLjI5IDMuMjkgMCAwIDEtMS44OC0zLjI0YzAtLjg3IDAtMjI1Ljk0LS4wNS0yNTMuMWE1IDUgMCAwIDEgMi45My00LjkzQzI3LjE5IDExMi4xMSAyMTMuMiA2IDIyNC4wNyAwek0yMTUuNCAyMC40MmwtLjIyLS4xNlExMTguMDYgNzUuNTUgMjEgMTMwLjg3YzAgLjEyLjA4LjIzLjEzLjM1bDMwLjg2IDExLjY0Yy03LjcxIDYtOC4zMiA2LTEwLjY1IDUuMTMtLjEgMC0yNC4xNy05LjI4LTI2LjgtMTB2MjMwLjQzYy44OC0xLjQxIDY0LjA3LTExMC45MSA2NC4xMy0xMTEgMS42Mi0yLjgyIDMtMS45MiA5LjEyLTEuNTIgMS40LjA5IDEuNDguMjIuNzggMS40Mi00MS4xOSA3MS4zMy0zNi40IDYzLTY3LjQ4IDExNi45NC0uODEgMS40LS42MSAxLjEzIDEuMjUgMS4xM2gxODYuNWMxLjQ0IDAgMS42OS0uMjMgMS43LTEuNjR2LTguODhjMC0xLjM0IDIuMzYtLjgxLTE4LjM3LTEtNy40Ni0uMDctMTQuMTQtMy4yMi0yMS4zOC0xMi43LTcuMzgtOS42Ni0xNC42Mi0xOS40My0yMS44NS0yOS4yMS0yLjI4LTMuMDgtMy40NS0yLjM4LTE2Ljc2LTIuMzgtMS43NSAwLTEuNzggMC0xLjc2IDEuODIuMjkgMjYuMjEuMTUgMjUuMjcgMSAzMi42Ni41MiA0LjM3IDIuMTYgNC4yIDkuNjkgNC44MSAzLjE0LjI2IDMuODggNC4wOC41MiA0LjkyLTEuNTcuMzktMzEuNi41MS0zMy42Ny0uMWEyLjQyIDIuNDIgMCAwIDEgLjMtNC43M2MzLjI5LS43NiA2LjE2LjgxIDYuNjYtNC40NCAxLjMtMTMuNjYgMS4xNy05IDEuMS03OS40MiAwLTEwLjgyLS4zNS0xMi41OC01LjM2LTEzLjU1LTEuMjItLjI0LTMuNTQtLjE2LTQuNjktLjU1LTIuODgtMS0yLTQuODQgMS43Ny00Ljg1IDMzLjY3IDAgNDYuMDgtMS4wNyA1Ni4wNiA0Ljg2IDcuNzQgNC42MSAxMiAxMS40OCAxMi41MSAyMC40Ljg4IDE0LjU5LTYuNTEgMjIuMzUtMTUgMzIuNTlhMS40NiAxLjQ2IDAgMCAwIDAgMi4yMmMyLjYgMy4yNSA1IDYuNjMgNy43MSA5LjgzIDI3LjU2IDMzLjIzIDI0LjExIDMwLjU0IDQxLjI4IDMzLjA2Ljg5LjEzIDEtLjQyIDEtMS4xNXYtMTFjMC0xIC4zMi0xLjQzIDEuNDEtMS4yNmE3Mi4zNyA3Mi4zNyAwIDAgMCAyMy41OC0uM2MxLjA4LS4xNSAxLjUuMiAxLjQ4IDEuMzMgMCAuMTEuODggMjYuNjkuODcgMjYuOC0uMDUgMS41Mi42NyAxLjYyIDEuODkgMS42MmgxODYuNzFRMzg2LjUxIDMwNC42IDM0NiAyMzQuMzNjMi4yNi0uNjYtLjQgMCA2LjY5LTEuMzkgMi0uMzkgMi4wNS0uNDEgMy4xMSAxLjQ0IDcuMzEgMTIuNjQgNzcuMzEgMTM0IDc3LjM3IDEzNC4wNlYxMzhjLTEuNzIuNS0xMDMuMyAzOC43Mi0xMDUuNzYgMzkuNjgtMS4wOC40Mi0xLjU1LjItMS45MS0uODgtLjYzLTEuOS0xLjM0LTMuNzYtMi4wOS01LjYyLS4zMi0uNzktLjA5LTEuMTMuNjUtMS4zOS4xIDAgOTUuNTMtMzUuODUgMTAzLTM4Ljc3LTY1LjQyLTM3LjU3LTEzMC41Ni03NS0xOTYtMTEyLjZsODYuODIgMTUwLjM5LS4yOC4zM2MtOS41Ny0uOS0xMC40Ni0xLjYtMTEuOC0zLjk0LTEtMS42OS03My41LTEyNy43MS04Mi0xNDIuMTYtOS4xIDE0LjY3LTgzLjU2IDE0Ni4yMS04NS4zNyAxNDYuMzItMi45My4xNy01Ljg4LjA4LTkuMjUuMDhxNDMuMjUtNzQuNzQgODYuMTgtMTQ5em01MS45MyAxMjkuOTJhMzcuNjggMzcuNjggMCAwIDAgNS41NC0uODVjMS42OS0uMyAyLjUzLjIgMi42IDEuOTIgMCAuMTEuMDcgMTkuMDYtLjg2IDIwLjQ1cy0xLjg4IDEuMjItMi42LS4xOWMtNS05LjY5IDYuMjItOS42Ni0zOS4xMi0xMi0uNyAwLTEgLjIzLTEgLjkzIDAgLjEzIDMuNzIgMTIyIDMuNzMgMTIyLjExIDAgLjg5LjUyIDEuMiAxLjIxIDEuNTFhODMuOTIgODMuOTIgMCAwIDEgOC43IDQuMDVjNy4zMSA0LjMzIDExLjM4IDEwLjg0IDEyLjQxIDE5LjMxIDEuNDQgMTEuOC0yLjc3IDM1Ljc3LTMyLjIxIDM3LjE0LTIuNzUuMTMtMjguMjYgMS4wOC0zNC4xNC0yMy4yNS00LjY2LTE5LjI2IDguMjYtMzIuNyAxOS44OS0zNi40YTIuNDUgMi40NSAwIDAgMCAyLTIuNjZjLjEtNS42MyAzLTEwNy4xIDMuNzEtMTIxLjM1LjA1LTEuMDgtLjYyLTEuMTYtMS4zNS0xLjE1LTMyLjM1LjUyLTM2Ljc1LS4zNC00MC4yMiA4LjUyLTIuNDIgNi4xOC00LjE0IDEuMzItMy45NS4yM3ExLjU5LTkgMy4zMS0xOGMuNC0yLjExIDEuNDMtMi42MSAzLjQzLTEuODYgNS41OSAyLjExIDYuNzIgMS43IDM3LjI1IDEuOTIgMS43MyAwIDEuNzgtLjA4IDEuODItMS44NS42OC0yNy40OS41OC0yMi41OSAxLTI5LjU1YTIuNjkgMi42OSAwIDAgMC0xLjYzLTIuOGMtNS42LTIuOTEtOC43NS03LjU1LTguOS0xMy44Ny0uMzUtMTQuODEgMTcuNzItMjEuNjcgMjcuMzgtMTEuNTEgNi44NCA3LjE5IDUuOCAxOC45MS0yLjQ1IDI0LjE1YTQuMzUgNC4zNSAwIDAgMC0yLjIyIDQuMzRjMCAuNTktLjExLTQuMzEgMSAzMC4wNSAwIC45LjQzIDEuMTIgMS4yNCAxLjExLjEgMCAyMy0uMDkgMzQuNDctLjM3ek02OC4yNyAxNDEuN2MxOS44NC00LjUxIDMyLjY4LS41NiA1Mi40OSAxLjY5IDIuNzYuMzEgMy43NCAxLjIyIDMuNjIgNC0uMjEgNS0xLjE2IDIyLjMzLTEuMjQgMjMuMTVhMi42NSAyLjY1IDAgMCAxLTEuNjMgMi4zNGMtNC4wNiAxLjctMy42MS00LjQ1LTQtNy4yOS0zLjEzLTIyLjQzLTczLjg3LTMyLjctNzQuNjMgMjUuNC0uMzEgMjMuOTIgMTcgNTMuNjMgNTQuMDggNTAuODggMjcuMjQtMiAxOS0yMC4xOSAyNC44NC0yMC40N2EyLjcyIDIuNzIgMCAwIDEgMyAzLjM2Yy0xLjgzIDEwLjg1LTMuNDIgMTguOTUtMy40NSAxOS4xNS0xLjU0IDkuMTctODYuNyAyMi4wOS05My4zNS00Mi4wNi0yLjcxLTI1Ljg1IDEwLjQ0LTUzLjM3IDQwLjI3LTYwLjE1em04MCA4Ny42N2gtMTkuNDlhMi41NyAyLjU3IDAgMCAxLTIuNjYtMS43OWMyLjM4LTMuNzUgNS44OS45MiA1Ljg2LTYuMTQtLjA4LTI1Ljc1LjIxLTM4IC4yMy00MC4xIDAtMy40Mi0uNTMtNC42NS0zLjMyLTQuOTQtNy0uNzItMy4xMS0zLjM3LTEuMTEtMy4zOCAxMS44NC0uMSAyMi42Mi0uMTggMzAuMDUuNzIgOC43NyAxLjA3IDE2LjcxIDEyLjYzIDcuOTMgMjIuNjItMiAyLjI1LTQgNC40Mi02LjE0IDYuNzMuOTUgMS4xNSA2LjkgOC44MiAxNy4yOCAxOS42OCAyLjY2IDIuNzggNi4xNSAzLjUxIDkuODggMy4xM2EyLjIxIDIuMjEgMCAwIDAgMi4yMy0yLjEyYy4zLTMuNDIuMjYgNC43My40NS00MC41OCAwLTUuNjUtLjM0LTYuNTgtMy4yMy02LjgzLTMuOTUtLjM1LTQtMi4yNi0uNjktMy4zN2wxOS4wOS0uMDljLjMyIDAgNC40OS41MyAxIDMuMzggMCAuMDUtLjE2IDAtLjI0IDAtMy42MS4yNi0zLjk0IDEtNCA0LjYyLS4yNyA0My45My4wNyA0MC4yMy40MSA0Mi44Mi4xMS44NC4yNyAyLjIzIDUuMSAyLjE0IDIuNDkgMCAzLjg2IDMuMzcgMCAzLjQtMTAuMzcuMDgtMjAuNzQgMC0zMS4xMS4wNy0xMC42NyAwLTEzLjQ3LTYuMi0yNC4yMS0yMC44Mi0xLjYtMi4xOC04LjMxLTIuMzYtOC4yLS4zNy44OCAxNi40NyAwIDE3Ljc4IDQgMTcuNjcgNC43NS0uMSA0LjczIDMuNTcuODMgMy41NXptMjc1LTEwLjE1Yy0xLjIxIDcuMTMuMTcgMTAuMzgtNS4zIDEwLjM0LTYxLjU1LS40Mi00Ny44Mi0uMjItNTAuNzItLjMxYTE4LjQgMTguNCAwIDAgMS0zLjYzLS43M2MtMi41My0uNiAxLjQ4LTEuMjMtLjM4LTUuNi0xLjQzLTMuMzctMi43OC02Ljc4LTQuMTEtMTAuMTlhMS45NCAxLjk0IDAgMCAwLTItMS40NCAxMzggMTM4IDAgMCAwLTE0LjU4LjA3IDIuMjMgMi4yMyAwIDAgMC0xLjYyIDEuMDZjLTEuNTggMy42Mi0zLjA3IDcuMjktNC41MSAxMS0xLjI3IDMuMjMgNy44NiAxLjMyIDEyLjE5IDIuMTYgMyAuNTcgNC41MyAzLjcyLjY2IDMuNzNIMzIyLjljLTIuOTIgMC0zLjA5LTMuMTUtLjc0LTMuMjFhNi4zIDYuMyAwIDAgMCA1LjkyLTMuNDdjMS41LTMgMi44LTYgNC4xMS05LjA5IDE4LjE4LTQyLjE0IDE3LjA2LTQwLjE3IDE4LjQyLTQxLjYxYTEuODMgMS44MyAwIDAgMSAzIDBjMi45MyAzLjM0IDE4LjQgNDQuNzEgMjMuNjIgNTEuOTIgMiAyLjcgNS43NCAyIDYuMzYgMiAzLjYxLjEzIDQtMS4xMSA0LjEzLTQuMjkuMDktMS44Ny4wOCAxLjE3LjA3LTQxLjI0IDAtNC40Ni0yLjM2LTMuNzQtNS41NS00LjI3LS4yNiAwLTIuNTYtLjYzLS4wOC0zLjA2LjIxLS4yLS44OS0uMjQgMjEuNy0uMTUgMi4zMiAwIDUuMzIgMi43NS0xLjIxIDMuNDVhMi41NiAyLjU2IDAgMCAwLTIuNjYgMi44M2MtLjA3IDEuNjMtLjE5IDM4Ljg5LjI5IDQxLjIxYTMuMDYgMy4wNiAwIDAgMCAzLjIzIDIuNDNjMTMuMjUuNDMgMTQuOTIuNDQgMTYtMy40MSAxLjY3LTUuNzggNC4xMy0yLjUyIDMuNzMtLjE5em0tMTA0LjcyIDY0LjM3Yy00LjI0IDAtNC40Mi0zLjM5LS42MS0zLjQxIDM1LjkxLS4xNiAyOC4xMS4zOCAzNy4xOS0uNjUgMS42OC0uMTkgMi4zOC4yNCAyLjI1IDEuODktLjI2IDMuMzktLjY0IDYuNzgtMSAxMC4xNi0uMjUgMi4xNi0zLjIgMi42MS0zLjQtLjE1LS4zOC01LjMxLTIuMTUtNC40NS0xNS42My01LjA4LTEuNTgtLjA3LTEuNjQgMC0xLjY0IDEuNTJWMzA0YzAgMS42NSAwIDEuNiAxLjYyIDEuNDcgMy4xMi0uMjUgMTAuMzEuMzQgMTUuNjktMS41Mi40Ny0uMTYgMy4zLTEuNzkgMy4wNyAxLjc2IDAgLjIxLS43NiAxMC4zNS0xLjE4IDExLjM5LS41MyAxLjI5LTEuODggMS41MS0yLjU4LjMyLTEuMTctMiAwLTUuMDgtMy43MS01LjMtMTUuNDItLjktMTIuOTEtMi41NS0xMi45MSA2IDAgMTIuMjUtLjc2IDE2LjExIDMuODkgMTYuMjQgMTYuNjQuNDggMTQuNCAwIDE2LjQzLTUuNzEuODQtMi4zNyAzLjUtMS43NyAzLjE4LjU4LS40NCAzLjIxLS44NSA2LjQzLTEuMjMgOS42NCAwIC4zNi0uMTYgMi40LTQuNjYgMi4zOS0zNy4xNi0uMDgtMzQuNTQtLjE5LTM1LjIxLS4zMS0yLjcyLS41MS0yLjItMyAuMjItMy40NSAxLjEtLjE5IDQgLjU0IDQuMTYtMi41NiAyLjQ0LTU2LjIyLS4wNy01MS4zNC0zLjkxLTUxLjMzem0tLjQxLTEwOS41MmMyLjQ2LjYxIDMuMTMgMS43NiAyLjk1IDQuNjUtLjMzIDUuMy0uMzQgOS0uNTUgOS42OS0uNjYgMi4yMy0zLjE1IDIuMTItMy4zNC0uMjctLjM4LTQuODEtMy4wNS03LjgyLTcuNTctOS4xNS0yNi4yOC03LjczLTMyLjgxIDE1LjQ2LTI3LjE3IDMwLjIyIDUuODggMTUuNDEgMjIgMTUuOTIgMjguODYgMTMuNzggNS45Mi0xLjg1IDUuODgtNi41IDYuOTEtNy41OCAxLjIzLTEuMyAyLjI1LTEuODQgMy4xMiAxLjEgMCAuMS41NyAxMS44OS02IDEyLjc1LTEuNi4yMS0xOS4zOCAzLjY5LTMyLjY4LTMuMzktMjEtMTEuMTktMTYuNzQtMzUuNDctNi44OC00NS4zMyAxNC0xNC4wNiAzOS45MS03LjA2IDQyLjMyLTYuNDd6TTI4OS44IDI4MC4xNGMzLjI4IDAgMy42NiAzIC4xNiAzLjQzLTIuNjEuMzItNS0uNDItNSA1LjQ2IDAgMi0uMTkgMjkuMDUuNCA0MS40NS4xMSAyLjI5IDEuMTUgMy41MiAzLjQ0IDMuNjUgMjIgMS4yMSAxNC45NS0xLjY1IDE4Ljc5LTYuMzQgMS44My0yLjI0IDIuNzYuODQgMi43NiAxLjA4LjM1IDEzLjYyLTQgMTIuMzktNS4xOSAxMi40bC0zOC4xNi0uMTljLTEuOTMtLjIzLTIuMDYtMy0uNDItMy4zOCAyLS40OCA0Ljk0LjQgNS4xMy0yLjggMS0xNS44Ny41Ny00NC42NS4zNC00Ny44MS0uMjctMy43Ny0yLjgtMy4yNy01LjY4LTMuNzEtMi40Ny0uMzgtMi0zLjIyLjM0LTMuMjIgMS40NS0uMDIgMTcuOTctLjAzIDIzLjA5LS4wMnptLTMxLjYzLTU3Ljc5Yy4wNyA0LjA4IDIuODYgMy40NiA2IDMuNTggMi42MS4xIDIuNTMgMy40MS0uMDcgMy40My02LjQ4IDAtMTMuNyAwLTIxLjYxLS4wNi0zLjg0IDAtMy4zOC0zLjM1IDAtMy4zNyA0LjQ5IDAgMy4yNCAxLjYxIDMuNDEtNDUuNTQgMC01LjA4LTMuMjctMy41NC00LjcyLTQuMjMtMi41OC0xLjIzLTEuMzYtMy4wOS40MS0zLjE1IDEuMjkgMCAyMC4xOS0uNDEgMjEuMTcuMjFzMS44NyAxLjY1LS40MiAyLjg2Yy0xIC41Mi0zLjg2LS4yOC00LjE1IDIuNDcgMCAuMjEtLjgyIDEuNjMtLjA3IDQzLjh6bS0zNi45MSAyNzQuMjdhMi45MyAyLjkzIDAgMCAwIDMuMjYgMGMxNy05Ljc5IDE4Mi0xMDMuNTcgMTk3LjQyLTExMi41MS0uMTQtLjQzIDExLjI2LS4xOC0xODEuNTItLjI3LTEuMjIgMC0xLjU3LjM3LTEuNTMgMS41NiAwIC4xIDEuMjUgNDQuNTEgMS4yMiA1MC4zOGEyOC4zMyAyOC4zMyAwIDAgMS0xLjM2IDcuNzFjLS41NSAxLjgzLjM4LS41LTEzLjUgMzIuMjMtLjczIDEuNzItMSAyLjIxLTItLjA4LTQuMTktMTAuMzQtOC4yOC0yMC43Mi0xMi41Ny0zMWEyMy42IDIzLjYgMCAwIDEtMi0xMC43OWMuMTYtMi40Ni44LTE2LjEyIDEuNTEtNDggMC0xLjk1IDAtMi0yLTJoLTE4M2MyLjU4IDEuNjMgMTc4LjMyIDEwMi41NyAxOTYgMTEyLjc2em0tOTAuOS0xODguNzVjMCAyLjQuMzYgMi43OSAyLjc2IDMgMTEuNTQgMS4xNyAyMSAzLjc0IDI1LjY0LTcuMzIgNi0xNC40NiAyLjY2LTM0LjQxLTEyLjQ4LTM4Ljg0LTItLjU5LTE2LTIuNzYtMTUuOTQgMS41MS4wNSA4LjA0LjAxIDExLjYxLjAyIDQxLjY1em0xMDUuNzUtMTUuMDVjMCAyLjEzIDEuMDcgMzguNjggMS4wOSAzOS4xMy4zNCA5Ljk0LTI1LjU4IDUuNzctMjUuMjMtMi41OS4wOC0yIDEuMzctMzcuNDIgMS4xLTM5LjQzLTE0LjEgNy40NC0xNC40MiA0MC4yMSA2LjQ0IDQ4LjhhMTcuOSAxNy45IDAgMCAwIDIyLjM5LTcuMDdjNC45MS03Ljc2IDYuODQtMjkuNDctNS40My0zOWEyLjUzIDIuNTMgMCAwIDEtLjM2LjEyem0tMTIuMjgtMTk4Yy05LjgzIDAtOS43MyAxNC43NS0uMDcgMTQuODdzMTAuMS0xNC44OC4wNy0xNC45MXptLTgwLjE1IDEwMy44M2MwIDEuOC40MSAyLjQgMi4xNyAyLjU4IDEzLjYyIDEuMzkgMTIuNTEtMTEgMTIuMTYtMTMuMzYtMS42OS0xMS4yMi0xNC4zOC0xMC4yLTE0LjM1LTcuODEuMDUgNC41LS4wMyAxMy42OC4wMiAxOC41OXptMjEyLjMyIDYuNGwtNi4xLTE1Ljg0Yy0yLjE2IDUuNDgtNC4xNiAxMC41Ny02LjIzIDE1Ljg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNzczNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMmwzNC45IDM5NS44TDE5MiA0ODBsMTU3LjEtNTIuMkwzODQgMzJIMHptMzEzLjEgODBsLTQuOCA0Ny4zTDE5MyAyMDguNmwtLjMuMWgxMTEuNWwtMTIuOCAxNDYuNi05OC4yIDI4LjctOTguOC0yOS4yLTYuNC03My45aDQ4LjlsMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNXYtLjFsLS4yLjEtMy42LTQ2LjNMMTkzLjEgMTYybDYuNS0yLjdINzYuN0w3MC45IDExMmgyNDIuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDc3MzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwTDAgNDAwbDE5LjYtOTQuOGg4MmwtOCA0MC42TDIxMCAzOTAuMmwxMzQuMS00NC40IDE4LjgtOTcuMUgyOS41bDE2LTgyaDMzMy43bDEwLjUtNTIuN0g1Ni4zbDE2LjMtODJINDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1dHRsZWZpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ0IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOEMzODUuNyAzOS4xIDMyMC41IDggMjQ4IDggMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhREFuZERCZXlvbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjggMjQxLjVjMTMuOCAwIDIxLTEwLjEgMjQuOC0xNy45LTEtMS4xLTUtNC4yLTcuNC02LjYtMi40IDQuMy04LjIgMTAuNy0xMy45IDEwLjctMTAuMiAwLTE1LjQtMTQuNy0zLjItMjYuNi0uNS0uMi00LjMtMS44LTggMi40IDAtMyAxLTUuMSAyLjEtNi42LTMuNSAxLjMtOS44IDUuNi0xMS40IDcuOS4yLTUuOCAxLjYtNy41LjYtOWwtLjItLjJzLTguNSA1LjYtOS4zIDE0LjdjMCAwIDEuMS0xLjYgMi4xLTEuOS42LS4zIDEuMyAwIC42IDEuOS0uMi42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zLjEgNS44IDcuMSAxNS43IDcuMXptNTIuNC0yMS4xYzAtNC00LjktNC40LTUuNi00LjUgMiAzLjkuOSA3LjUuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xLjYgNC4zIDQuMiA2LjcgNi40IDcuNC0yLjEtMS45LTIuOS02LjQgMC05LjMgMCAxMy45IDE5LjIgMTMuMyAyMy4xIDYuNC0yLjQgMS4xLTctLjItOS0xLjkgNy43IDEgMTQuMi00LjEgMTQuNi0xMC42em0tMzkuNC0xOC40YzIgLjggMS42LjcgNi40IDQuNSAxMC4yLTI0LjUgMjEuNy0xNS43IDIyLTE1LjUgMi4yLTEuOSA5LjgtMy44IDEzLjgtMi43LTIuNC0yLjctNy41LTYuMi0xMy4zLTYuMi00LjcgMC03LjQgMi4yLTggMS4zLS44LTEuNCAzLjItMy40IDMuMi0zLjQtNS40LjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUuNS0xOS41IDkuNy0yMy44IDE1Ljh6bTI0Mi41IDUxLjljLTIwLjcgMC00MCAxLjMtNTAuMyAyLjFsNy40IDguMnY3Ny4ybC03LjQgOC4yYzEwLjQuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNnYtNTMuM2MzMC4xLTMuMyA0Ni44IDMuOCA0Ni44IDI2LjMgMCAyNS42LTIxLjQgMzAuMi00Ni44IDI3ek0zMDEuNiAxODFjLTEtMy40LS4yLTYuOSAxLjEtOS40IDEgMyAyLjYgNi40IDcuNSA5LS41LTIuNC0uMi01LjYuNS04LTEuNC01LjQgMi4xLTkuOSA2LjQtOS45IDYuOSAwIDguNSA4LjggNC43IDE0LjQgMi4xIDMuMiA1LjUgNS42IDcuNyA3LjggMy4yLTMuNyA1LjUtOS41IDUuNS0xMy44IDAtOC4yLTUuNS0xNS45LTE2LjctMTYuNS0yMC0uOS0yMC4yIDE2LjYtMjAgMTguOS41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44LjUgMS40LS4yIDMuNC0uNSA1LjYgMS42LTEuOCA3LTUuNSAxMS02LjItMS0uMy0zLjQtLjgtNC4zLS44IDIuOS0zLjQgOS4zLTQuNSAxMi44LTMuNy0yLjItLjItNi43IDEuMS04LjUgMi42IDEuNi4zIDMgLjYgNC4zIDEuMS0yLjEuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yLjguMiAyLjcgMCAzLjUtLjUtLjMgMS4xLTEuOSAzLTMgMy40IDIuOSAwIDctMS45IDguMi00LjYgMCAwLTEuOC42LTIuNi0uMnMuMy00LjMuMy00LjNjLTIuMyAyLjktMy40LTEuMy0xLjMtNC4yLTEtLjMtMy41LS42LTQuNi0uNSAzLjItMS4xIDEwLjQtMS44IDExLjItLjMuNiAxLjEtMSAzLjQtMSAzLjQgNC0uNSA4LjMgMS4xIDYuNyA1LjEgMi45LTEuNCA1LjUtNS45IDQuOC0xMC40LS4zIDEtMS42IDIuNC0yLjkgMi43LjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcuNiA1LjEgMy41IDQuOCA1LjJ6bTI1LjkgNy40Yy0yLjcgMC0zLjUtMi4xLTQuMi00LjMgMy4zIDEuMyA0LjIgNC4zIDQuMiA0LjN6bTM4LjkgMy43bC0xLS42Yy0xLjEtMS0yLjktMS40LTQuNy0xLjQtMi45IDAtNS44IDEuMy03LjUgMy40LS44LjgtMS40IDEuOC0yLjEgMi42djE1LjdjMy41IDIuNiA3LjEtMi45IDMtNy4yIDEuNS4zIDQuNiAyLjcgNS4xIDMuMiAwIDAgMi42LS41IDUtLjUgMi4xIDAgMy45LjMgNS42IDEuMVYxOTZjLTEuMS41LTIuMiAxLTIuNyAxLjR6TTc5LjkgMzA1LjljMTcuMi00LjYgMTYuMi0xOCAxNi4yLTE5LjkgMC0yMC42LTI0LjEtMjUtMzctMjVIM2w4LjMgOC42djI5LjVIMGwxMS40IDE0LjZWMzQ2TDMgMzU0LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yem0tNDEuMy0yNy41YzIwIDAgMjkuNi0uOCAyOS42IDkuMXYzYzAgMTIuMS0xOSA4LjgtMjkuNiA4Ljh6bTAgNTkuMlYzMTVjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44djQuNWguMmMwIDExLjItMTIuNSA5LjMtMzIuOSA5LjN6bTEwMS4yLTE5LjNsMjMuMS4ydi0uMmwxNC4xLTIxLjJoLTM3LjJ2LTE0LjloNTIuNGwtMTQuMS0yMXYtLjJsLTczLjUuMiA3LjQgOC4ydjc3LjFsLTcuNCA4LjJoODEuMmwxNC4xLTIxLjItNjAuMS4yem0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMy4zLTk5LjN6bS0uMyA3Ny41Yy0zNy40IDAtMzYuOS01NS4zLjItNTUuMyAzNi44LjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjJoLTQxLjdsNi4xIDcuMi0yMC41IDM3LjJoLS4zbC0yMS0zNy4yIDYuNC03LjJoLTQ0LjlsNDQuMSA2NS44LjIgMTkuNC03LjcgOC4yaDQyLjZsLTcuMi04LjJ6bS0yOC40LTE1MS4zYzEuNiAxLjMgMi45IDIuNCAyLjkgNi42djM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEuMS03LjUgNC41LTcuOSA0LjZoMzUuMWMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNS44LTEyIDAtLjItMS44IDEuNC0yLjcgMy41IDAtNS43IDEuNi0xNS40IDkuNi0yMC41LS4xIDAtMy43LS44LTkgMS4xIDItMy4xIDEwLTcuOSAxMC40LTcuOS04LjItMjYtMzgtMjIuOS0zMi4yLTIyLjktMzAuOSAwLTMyLjYuMy0zOS45LTQgLjEuOC41IDguMiA5LjYgMTQuOXptMjEuNSA1LjVjNC42IDAgMjMuMS0zLjMgMjMuMSAxNy4zIDAgMjAuNy0xOC40IDE3LjMtMjMuMSAxNy4zem0yMjguOSA3OS42bDcgOC4zVjMxMmgtLjNjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjloLTMxLjZsNy40IDguNXY3Ni45bC03LjIgOC4zaDM5bC03LjQtOC4ydi00Ny40aC4zYzMuNyAxMC42IDQ0LjUgNDIuOSA0OC41IDU1LjZoMjEuM3YtODUuMmw3LjQtOC4zem0tMTA2LjctOTYuMWMtMzIuMiAwLTMyLjguMi0zOS45LTQgLjEuNy41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42LjMtNCAxLjEtNi4xIDIuOS4xIDAgMi4xLTEuMSA3LjUtLjN2LTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNoLjNjMzMuNCAwIDM2LjctMjcuMyAzNi43LTM0IDAtMy44LTEuMS0zMi0zMy44LTMzLjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhREFuZEQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODIuNSA5OC45Yy0uNi0xNy4yIDItMzMuOCAxMi43LTQ4LjIuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMS43IDQ1LTguMyA2Ni40LTUuMiAxMi40LTEyIDI0LjQtMjAuNyAzNS4xLTItMS45LTMuOS0zLjgtNS44LTUuNi00Mi44LTQwLjgtMjYuOC0yNS4yLTM3LjQtMzcuNC0xLjEtMS4yLTEtMi4yLS4xLTMuNiA4LjMtMTMuNSAxMS44LTI4LjIgMTAtNDQtMS4xLTkuOC00LjMtMTguOS0xMS4zLTI2LjItMTQuNS0xNS4zLTM5LjItMTUtNTMuNS42LTExLjQgMTIuNS0xNC4xIDI3LjQtMTAuOSA0My42LjIgMS4zLjQgMi43IDAgMy45LTMuNCAxMy43LTQuNiAyNy42LTIuNSA0MS42LjEuNS4xIDEuMS4xIDEuNiAwIC4zLS4xLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnptNDY5LjYgMTIzLjJjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNS45LTUuMSAxLjYtNy43IDIuMi00LjkgMS4yLTcuMy0zLjEtNC43LTYuOCAzLjItNC42IDMuNC00LjIgMTUtMTIgLjYtLjQgMS4yLS44IDIuMi0xLjVoLTIuNWMtLjYgMC0xLjIuMi0xLjkuMy0xOS4zIDMuMy0zMC43IDE1LjUtNDguOSAyOS42LTEwLjQgOC4xLTEzLjggMy44LTEyLS41IDEuNC0zLjUgMy4zLTYuNyA1LjEtMTAgMS0xLjggMi4zLTMuNCAzLjUtNS4xLS4yLS4yLS41LS4zLS43LS41LTI3IDE4LjMtNDYuNyA0Mi40LTU3LjcgNzMuMy4zLjMuNy42IDEgLjkuMy0uNi41LTEuMi45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44LjctMy41LjktNS4zIDEuMS0xOC41IDIuNC0zNS41IDktNTEuNSAxOC41LTMwLjIgMTcuOS01NC41IDQyLjItNzUuMSA3MC40LS4zLjQtLjQuOS0uNyAxLjMgMTQuNSA1LjMgMjQgMTcuMyAzNi4xIDI1LjYuMi0uMS4zLS4yLjQtLjRsMS4yLTIuN2MxMi4yLTI2LjkgMjctNTIuMyA0Ni43LTc0LjUgMTYuNy0xOC44IDM4LTI1LjMgNjIuNS0yMCA1LjkgMS4zIDExLjQgNC40IDE3LjIgNi44IDIuMy0xLjQgNS4xLTMuMiA4LTQuNyA4LjQtNC4zIDE3LjQtNyAyNi43LTkgMTQuNy0zLjEgMjkuNS00LjkgNDQuNS0xLjN2LS41Yy0uNS0uNC0xLjItLjgtMS43LTEuNHpNMzE2LjcgMzk3LjZjLTM5LjQtMzMtMjIuOC0xOS41LTQyLjctMzUuNi0uOC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkuOC0xMy45IDQuMy0yNi4yIDExLjgtMzcuMy0yNC4zIDEwLjYtNDUuOSAyNS02NC44IDQzLjktLjMtNS44IDUuNC00My43IDUuNi00NC43LjMtMi43LS42LTUuMy0zLTcuNC0yNC4yIDI0LjctNDQuNSA1MS44LTU2LjEgODQuNiA3LjQtNS45IDE0LjktMTEuNCAyMy42LTE2LjItOC4zIDIyLjMtMTkuNiA1Mi44LTcuOCAxMDEuMSA0LjYgMTkgMTEuOSAzNi44IDI0LjEgNTIuMyAyLjkgMy43IDYuMyA2LjkgOS41IDEwLjMuMi0uMi40LS4zLjYtLjUtMS40LTctMi4yLTE0LjEtMS41LTIxLjkgMi4yIDMuMiAzLjkgNiA1LjkgOC42IDEyLjYgMTYgMjguNyAyNy40IDQ3LjIgMzUuNiAyNSAxMS4zIDUxLjEgMTMuMyA3Ny45IDguNiA1NC45LTkuNyA5MC43LTQ4LjYgMTE2LTk4LjggMS0xLjguNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMS4xIDIuOCA0LjIgMTYuNi04LjEgMzIuNC0yNC44IDMxLjgtNy42LS4zLTEzLjktMy44LTE5LjYtOC41LTE5LjUtMTYuMS0zOS4xLTMyLjEtNTguNS00OC4zLTUuOS00LjktMTIuNS04LjEtMjAuMS04LjctNC42LS40LTkuMy0uNi0xMy45LS45LTUuOS0uNC04LjgtMi44LTEwLjQtOC40LS45LTMuNC0xLjUtNi44LTIuMi0xMC4yLTEuNS04LjEtNi4yLTEzLTE0LjMtMTQuMi00LjQtLjctOC45LTEtMTMuMy0xLjUtMTMtMS40LTE5LjgtNy40LTIyLjYtMjAuMy01IDExLTEuNiAyMi40IDcuMyAyOS45IDQuNSAzLjggOS4zIDcuMyAxMy44IDExLjIgNC42IDMuOCA3LjQgOC43IDcuOSAxNC44LjQgNC43LjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xLjctNTIuMy4zIDIuMi40IDQuMy45IDYuNCA5LjQgNDQuMSA0NS40IDY0LjIgODUgNTYuOSAxNi0yLjkgMzAuNi04LjkgNDIuOS0xOS44IDItMS44IDMuNy00LjEgNS45LTYuNS0xOS4zIDQuNi0zNS44LjEtNTAuOS0xMC42LjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS40IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42LjIgMzkuNiAzLjctNy0xMi4yLTguNS0yNC43LTUtMzguNyA1LjMgMTEuOSAxMy43IDIwLjEgMjMuNiAyNi44IDE5LjcgMTMuMiAzNS43IDE5LjYgNDYuNyAzMC4yIDMuNCAzLjMgNi4zIDcuMSA5LjYgMTAuOS0uOC0yLjEtMS40LTQuMS0yLjItNi01LTEwLjYtMTMtMTguNi0yMi42LTI1LTEuOC0xLjItMi44LTIuNS0zLjQtNC41LTMuMy0xMi41LTMtMjUuMS0uNy0zNy42IDEtNS41IDIuOC0xMC45IDQuNS0xNi4zLjgtMi40IDIuMy00LjYgNC02LjYuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yLjUtMSAxLjEtMiAxLjktMy4zLjUgNC4yLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEuNi41IDEuNyAxLjEgMiA2LjIgMi42IDEwIDYuOSA5LjcgMTQuMyA3LjctMi42IDEyLjUtOCAxNi40LTE0LjUgNC4yIDIwLjItOS4xIDUwLjMtMjcuMiA1OC43LjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYuNS0yMi40LTI0LjktNC42LTUyLjggMS45LTU3LjggNC42IDguMi40IDE2LjMgMSAyMy41IDMuMy0yIDYuNS00IDEyLjctNS44IDE4LjktMS45IDYuNSAyLjEgMTQuNiA5LjMgOS42IDEuMi0uOSAyLjMtMS45IDMuMy0yLjctMy4xIDE3LjktMi45IDE1LjktMi44IDE4LjMuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNS44LTEyLjkgMS42LTE5LjIgMi40bC0uMy0uOWM0LjctMy40IDgtNy44IDEwLjItMTMuMSA4LjctMjEuMS0zLjYtMzgtMjUtMzkuOS05LjEtLjgtMTcuOC44LTI1LjkgNS41IDYuMi0xNS42IDE3LjItMjYuNiAzMi42LTM0LjUtMTUuMi00LjMtOC45LTIuNy0yNC42LTYuMyAxNC42LTkuMyAzMC4yLTEzLjIgNDYuNS0xNC42LTUuMi0zLjItNDguMS0zLjYtNzAuMiAyMC45IDcuOSAxLjQgMTUuNSAyLjggMjMuMiA0LjItMjMuOCA3LTQ0IDE5LjctNjIuNCAzNS42IDEuMS00LjggMi43LTkuNSAzLjMtMTQuMy42LTQuNS44LTkuMi4xLTEzLjYtMS41LTkuNC04LjktMTUuMS0xOS43LTE2LjMtNy45LS45LTE1LjYuMS0yMy4zIDEuMy0uOS4xLTEuNy4zLTIuOSAwIDE1LjgtMTQuOCAzNi0yMS43IDUzLjEtMzMuNSA2LTQuNSA2LjgtOC4yIDMtMTQuOXptMTI4LjQgMjYuOGMzLjMgMTYgMTIuNiAyNS41IDIzLjggMjQuMy00LjYtMTEuMy0xMi4xLTE5LjUtMjMuOC0yNC4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhaWx5bW90aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC45MywyNjdhNDguNCw0OC40LDAsMCwwLTI0LjM2LTYuMjFxLTE5LjgzLDAtMzMuNDQsMTMuMjd0LTEzLjYxLDMzLjQycTAsMjEuMTYsMTMuMjgsMzQuNnQzMy40MywxMy40NHEyMC41LDAsMzQuMTEtMTMuNzhUMzIyLDMwNy40N0E0Ny4xMyw0Ny4xMywwLDAsMCwzMTUuOSwyODQsNDQuMTMsNDQuMTMsMCwwLDAsMjk4LjkzLDI2N1pNMCwzMlY0ODBINDQ4VjMyWk0zNzQuNzEsNDA1LjI2aC01My4xVjM4MS4zN2gtLjY3cS0xNS43OSwyNi4yLTU1Ljc4LDI2LjItMjcuNTYsMC00OC44OS0xMy4xYTg4LjI5LDg4LjI5LDAsMCwxLTMyLjk0LTM1Ljc3cS0xMS42LTIyLjY4LTExLjU5LTUwLjg5LDAtMjcuNTYsMTEuNzYtNTAuMjJhODkuOSw4OS45LDAsMCwxLDMyLjkzLTM1Ljc4cTIxLjE4LTEzLjA5LDQ3LjcyLTEzLjFhODAuODcsODAuODcsMCwwLDEsMjkuNzQsNS4yMXExMy4yOCw1LjIxLDI1LDE3VjE1M2w1NS43OS0xMi4wOVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEYXNoY3ViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjYuNiAxMDRIMTEwLjRjLTUxLjEgMC05MS4yIDQzLjMtOTEuMiA5My41VjQyN2MwIDUwLjUgNDAuMSA4NSA5MS4yIDg1aDIyNy4yYzUxLjEgMCA5MS4yLTM0LjUgOTEuMi04NVYwTDMyNi42IDEwNHpNMTUzLjkgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44VjI0MC44YzAtMTcuNyAxNC43LTMyLjUgMzIuNC0zMi41aDE0MC43YzE3LjcgMCAzMiAxNC44IDMyIDMyLjV2MTIzLjVsNTEuMSA1Mi4zSDE1My45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlZXplciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTEuNDYsMjQ0LjcxSDU3NlYxNzJINDUxLjQ2Wm0wLTE3My44OXY3Mi42N0g1NzZWNzAuODJabTAsMjc1LjA2SDU3NlYyNzMuMkg0NTEuNDZaTTAsNDQ3LjA5SDEyNC41NFYzNzQuNDJIMFptMTUwLjQ3LDBIMjc1VjM3NC40MkgxNTAuNDdabTE1MC41MiwwSDQyNS41M1YzNzQuNDJIMzAxWm0xNTAuNDcsMEg1NzZWMzc0LjQySDQ1MS40NlpNMzAxLDM0NS44OEg0MjUuNTNWMjczLjJIMzAxWm0tMTUwLjUyLDBIMjc1VjI3My4ySDE1MC40N1ptMC0xMDEuMTdIMjc1VjE3MkgxNTAuNDdaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVsaWNpb3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni41IDY4Yy0uNC0xLjUtLjktMy0xLjQtNC41LS45LTIuNS0yLTQuOC0zLjMtNy4xLTEuNC0yLjQtMy00LjgtNC43LTYuOS0yLjEtMi41LTQuNC00LjgtNi45LTYuOC0xLjEtLjktMi4yLTEuNy0zLjMtMi41LTEuMy0uOS0yLjYtMS43LTQtMi40LTEuOC0xLTMuNi0xLjgtNS41LTIuNS0xLjctLjctMy41LTEuMy01LjQtMS43LTMuOC0xLTcuOS0xLjUtMTItMS41SDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgNC4xLjUgOC4yIDEuNSAxMiAyIDcuNyA1LjggMTQuNiAxMSAyMC4zIDEgMS4xIDIuMSAyLjIgMy4zIDMuMyA1LjcgNS4yIDEyLjYgOSAyMC4zIDExIDMuOCAxIDcuOSAxLjUgMTIgMS41aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNiA0MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDIyNFYyNTZIMzJWODBjMC04LjggNy4yLTE2IDE2LTE2aDE3NnYxOTJoMTkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlcGxveWRvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODIuMiAxMzZoNTEuN3YyMzkuNmgtNTEuN3YtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOVYxMzZ6bS02NC43IDE2MS44YzAgMTguMiAxMy42IDMzLjUgMzMuMiAzMy41IDE5LjggMCAzMy4yLTE2LjQgMzMuMi0zMi45IDAtMTcuMS0xMy43LTMzLjItMzMuMi0zMy4yLTE5LjYgMC0zMy4yIDE2LjQtMzMuMiAzMi42ek0xODguNSAxMzZoNTEuN3YyMzkuNmgtNTEuN3YtMjAuN2MtMTkuOCAyNC44LTUyLjggMjQuMS03My44IDE0LjctMjYuMi0xMS43LTQ0LjMtMzguMS00NC4zLTcxLjggMC0yOS44IDE0LjgtNTcuOSA0My4zLTcwLjggMjAuMi05LjEgNTIuNy0xMC42IDc0LjggMTIuOVYxMzZ6bS02NC43IDE2MS44YzAgMTguMiAxMy42IDMzLjUgMzMuMiAzMy41IDE5LjggMCAzMy4yLTE2LjQgMzMuMi0zMi45IDAtMTcuMS0xMy43LTMzLjItMzMuMi0zMy4yLTE5LjcgMC0zMy4yIDE2LjQtMzMuMiAzMi42ek00NDggOTZjMTcuNSAwIDMyIDE0LjQgMzIgMzJ2MjU2YzAgMTcuNS0xNC40IDMyLTMyIDMySDY0Yy0xNy41IDAtMzItMTQuNC0zMi0zMlYxMjhjMC0xNy41IDE0LjQtMzIgMzItMzJoMzg0bTAtMzJINjRDMjguOCA2NCAwIDkyLjggMCAxMjh2MjU2YzAgMzUuMiAyOC44IDY0IDY0IDY0aDM4NGMzNS4yIDAgNjQtMjguOCA2NC02NFYxMjhjMC0zNS4yLTI4LjgtNjQtNjQtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVza3BybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDUuOSA1MTJsMzEuMS0zOC40YzEyLjMtLjIgMjUuNi0xLjQgMzYuNS02LjYgMzguOS0xOC42IDM4LjQtNjEuOSAzOC4zLTYzLjgtLjEtNS0uOC00LjQtMjguOS0zNy40SDM2MmMtLjIgNTAuMS03LjMgNjguNS0xMC4yIDc1LjctOS40IDIzLjctNDMuOSA2Mi44LTk1LjIgNjkuNC04LjcgMS4xLTMyLjggMS4yLTUwLjcgMS4xem0yMDAuNC0xNjcuN2MzOC42IDAgNTguNS0xMy42IDczLjctMzAuOWwtMTc1LjUtLjMtMTcuNCAzMS4zIDExOS4yLS4xem0tNDMuNi0yMjMuOXYxNjguM2gtNzMuNWwtMzIuNyA1NS41SDI1MGMtNTIuMyAwLTU4LjEtNTYuNS01OC4zLTU4LjktMS4yLTEzLjItMjEuMy0xMS42LTIwLjEgMS44IDEuNCAxNS44IDguOCA0MCAyNi40IDU3LjFoLTkxYy0yNS41IDAtMTEwLjgtMjYuOC0xMDctMTE0VjE2LjlDMCAuOSA5LjcuMyAxNSAuMWg4MmMuMiAwIC4zLjEuNS4xIDQuMy0uNCA1MC4xLTIuMSA1MC4xIDQzLjcgMCAxMy4zIDIwLjIgMTMuNCAyMC4yIDAgMC0xOC4yLTUuNS0zMi44LTE1LjgtNDMuN2g4NC4yYzEwOC43LS40IDEyNi41IDc5LjQgMTI2LjUgMTIwLjJ6bS0xMzIuNSA1Nmw2NCAyOS4zYzEzLjMtNDUuNS00Mi4yLTcxLjctNjQtMjkuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjEyIDIwOC4yOWMtMy44OC0yLjktNy43Ny00LjM1LTExLjY1LTQuMzVIOTEuMDN2MTA0LjQ3aDE3LjQ1YzMuODggMCA3Ljc3LTEuNDUgMTEuNjUtNC4zNSAzLjg4LTIuOSA1LjgyLTcuMjUgNS44Mi0xMy4wNnYtNjkuNjVjLS4wMS01LjgtMS45Ni0xMC4xNi01LjgzLTEzLjA2ek00MDQuMSAzMkg0My45QzE5LjcgMzIgLjA2IDUxLjU5IDAgNzUuOHYzNjAuNEMuMDYgNDYwLjQxIDE5LjcgNDgwIDQzLjkgNDgwaDM2MC4yYzI0LjIxIDAgNDMuODQtMTkuNTkgNDMuOS00My44Vjc1LjhjLS4wNi0yNC4yMS0xOS43LTQzLjgtNDMuOS00My44ek0xNTQuMiAyOTEuMTljMCAxOC44MS0xMS42MSA0Ny4zMS00OC4zNiA0Ny4yNWgtNDYuNFYxNzIuOThoNDcuMzhjMzUuNDQgMCA0Ny4zNiAyOC40NiA0Ny4zNyA0Ny4yOGwuMDEgNzAuOTN6bTEwMC42OC04OC42NkgyMDEuNnYzOC40MmgzMi41N3YyOS41N0gyMDEuNnYzOC40MWg1My4yOXYyOS41N2gtNjIuMThjLTExLjE2LjI5LTIwLjQ0LTguNTMtMjAuNzItMTkuNjlWMTkzLjdjLS4yNy0xMS4xNSA4LjU2LTIwLjQxIDE5LjcxLTIwLjY5aDYzLjE5bC0uMDEgMjkuNTJ6bTEwMy42NCAxMTUuMjljLTEzLjIgMzAuNzUtMzYuODUgMjQuNjMtNDcuNDQgMGwtMzguNTMtMTQ0LjhoMzIuNTdsMjkuNzEgMTEzLjcyIDI5LjU3LTExMy43MmgzMi41OGwtMzguNDYgMTQ0Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGV2aWFudGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41SDMyMHYxMjcuN0gxNTkuMWwtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJIMHYtOTMuMmw5My4yLTE3OS40LTcuNC05LjJIMFYxMDIuNWgxNTZsMTMuNS05LjIgNDMuNy04NGMuMyAwIDguNi04LjYgOS4yLTkuMkgzMjB2OTMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM4IDMwMS4yaDU4LjdMMzE5IDI3MWgtNTguN0wyMzggMzAxLjJ6TTAgMjgyLjl2Ni40aDgxLjhsNC43LTYuNEgwek0xNzIuOSAyNzFjLTguNyAwLTYtMy42LTQuNi01LjUgMi44LTMuOCA3LjYtMTAuNCAxMC40LTE0LjEgMi44LTMuNyAyLjgtNS45LTIuOC01LjloLTUxbC00MS4xIDU1LjhoMTAwLjFjMzMuMSAwIDUxLjUtMjIuNSA1Ny4yLTMwLjNoLTY4LjJ6bTMxNy41LTYuOWwzOS4zLTUzLjRoLTYyLjJsLTM5LjMgNTMuNGg2Mi4yek05NS4zIDI3MUgwdjYuNGg5MC42bDQuNy02LjR6bTExMS0yNi42Yy0yLjggMy44LTcuNSAxMC40LTEwLjMgMTQuMi0xLjQgMi00LjEgNS41IDQuNiA1LjVoNDUuNnM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40LjctMzUtMjkuMi0zNUgxMTIuNmwtMjAuNCAyNy44aDExMS40YzUuNiAwIDUuNSAyLjIgMi43IDUuOXpNMCAzMDEuMmg3My4xbDQuNy02LjRIMHY2LjR6bTMyMyAwaDU4LjdMNDA0IDI3MWgtNTguN2MtLjEgMC0yMi4zIDMwLjItMjIuMyAzMC4yem0yMjIgLjFoOTV2LTYuNGgtOTAuM2wtNC43IDYuNHptMjIuMy0zMC4zbC00LjcgNi40SDY0MFYyNzFoLTcyLjd6bS0xMy41IDE4LjNINjQwdi02LjRoLTgxLjVsLTQuNyA2LjR6bS0xNjQuMi03OC42bC0yMi41IDMwLjZoLTI2LjJsMjIuNS0zMC42aC01OC43bC0zOS4zIDUzLjRINDA5bDM5LjMtNTMuNGgtNTguN3ptMzMuNSA2MC4zcy00LjMgNS45LTYuNCA4LjdjLTcuNCAxMC0uOSAyMS42IDIzLjIgMjEuNmg5NC4zbDIyLjMtMzAuM0g0MjMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFzcG9yYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTEuNjQgMzU0LjU1Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45Uzc2LjM0IDQxNCA3NiA0MTMuMjVzODYuNi0xMjUuNyA4Ni42LTEyNy40YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMS42LS43IDE0NC40IDQ3IDE0NS41IDQ3IC40IDAgLjktLjYgMS0xLjMuNC0yIDEtMTQ4LjYgMS43LTE0OS42LjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMy44LjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45LjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgxLjcgMTcyLjNIMHYxNzQuNGgxMzIuN1Y5NmgtNTF2NzYuM3ptMCAxMzMuNEg1MC45di05Mi4zaDMwLjh2OTIuM3ptMjk3LjItMTMzLjR2MTc0LjRoODEuOHYyOC41aC04MS44VjQxNkg1MTJWMTcyLjNIMzc4Ljl6bTgxLjggMTMzLjRoLTMwLjh2LTkyLjNoMzAuOHY5Mi4zem0tMjM1LjYgNDFoODIuMXYyOC41aC04Mi4xVjQxNmgxMzMuM1YxNzIuM0gyMjUuMXYxNzQuNHptNTEuMi0xMzMuM2gzMC44djkyLjNoLTMwLjh2LTkyLjN6TTE1My4zIDk2aDUxLjN2NTFoLTUxLjNWOTZ6bTAgNzYuM2g1MS4zdjE3NC40aC01MS4zVjE3Mi4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpZ2l0YWxPY2VhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04NyA0ODEuOGg3My43di03My42SDg3ek0yNS40IDM0Ni42djYxLjZIODd2LTYxLjZ6bTQ2Ni4yLTE2OS43Yy0yMy03NC4yLTgyLjQtMTMzLjMtMTU2LjYtMTU2LjZDMTY0LjktMzIuOCA4IDkzLjcgOCAyNTUuOWg5NS44YzAtMTAxLjggMTAxLTE4MC41IDIwOC4xLTE0MS43IDM5LjcgMTQuMyA3MS41IDQ2LjEgODUuOCA4NS43IDM5LjEgMTA3LTM5LjcgMjA3LjgtMTQxLjQgMjA4di4zaC0uM1Y1MDRjMTYyLjYgMCAyODguOC0xNTYuOCAyMzUuNi0zMjcuMXptLTIzNS4zIDIzMXYtOTUuM2gtOTUuNnY5NS42SDI1NnYtLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzY29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjQuNTMxLDY5LjgzNmExLjUsMS41LDAsMCwwLS43NjQtLjdBNDg1LjA2NSw0ODUuMDY1LDAsMCwwLDQwNC4wODEsMzIuMDNhMS44MTYsMS44MTYsMCwwLDAtMS45MjMuOTEsMzM3LjQ2MSwzMzcuNDYxLDAsMCwwLTE0LjksMzAuNiw0NDcuODQ4LDQ0Ny44NDgsMCwwLDAtMTM0LjQyNiwwLDMwOS41NDEsMzA5LjU0MSwwLDAsMC0xNS4xMzUtMzAuNiwxLjg5LDEuODksMCwwLDAtMS45MjQtLjkxQTQ4My42ODksNDgzLjY4OSwwLDAsMCwxMTYuMDg1LDY5LjEzN2ExLjcxMiwxLjcxMiwwLDAsMC0uNzg4LjY3NkMzOS4wNjgsMTgzLjY1MSwxOC4xODYsMjk0LjY5LDI4LjQzLDQwNC4zNTRhMi4wMTYsMi4wMTYsMCwwLDAsLjc2NSwxLjM3NUE0ODcuNjY2LDQ4Ny42NjYsMCwwLDAsMTc2LjAyLDQ3OS45MThhMS45LDEuOSwwLDAsMCwyLjA2My0uNjc2QTM0OC4yLDM0OC4yLDAsMCwwLDIwOC4xMiw0MzAuNGExLjg2LDEuODYsMCwwLDAtMS4wMTktMi41ODgsMzIxLjE3MywzMjEuMTczLDAsMCwxLTQ1Ljg2OC0yMS44NTMsMS44ODUsMS44ODUsMCwwLDEtLjE4NS0zLjEyNmMzLjA4Mi0yLjMwOSw2LjE2Ni00LjcxMSw5LjEwOS03LjEzN2ExLjgxOSwxLjgxOSwwLDAsMSwxLjktLjI1NmM5Ni4yMjksNDMuOTE3LDIwMC40MSw0My45MTcsMjk1LjUsMGExLjgxMiwxLjgxMiwwLDAsMSwxLjkyNC4yMzNjMi45NDQsMi40MjYsNi4wMjcsNC44NTEsOS4xMzIsNy4xNmExLjg4NCwxLjg4NCwwLDAsMS0uMTYyLDMuMTI2LDMwMS40MDcsMzAxLjQwNywwLDAsMS00NS44OSwyMS44MywxLjg3NSwxLjg3NSwwLDAsMC0xLDIuNjExLDM5MS4wNTUsMzkxLjA1NSwwLDAsMCwzMC4wMTQsNDguODE1LDEuODY0LDEuODY0LDAsMCwwLDIuMDYzLjdBNDg2LjA0OCw0ODYuMDQ4LDAsMCwwLDYxMC43LDQwNS43MjlhMS44ODIsMS44ODIsMCwwLDAsLjc2NS0xLjM1MkM2MjMuNzI5LDI3Ny41OTQsNTkwLjkzMywxNjcuNDY1LDUyNC41MzEsNjkuODM2Wk0yMjIuNDkxLDMzNy41OGMtMjguOTcyLDAtNTIuODQ0LTI2LjU4Ny01Mi44NDQtNTkuMjM5UzE5My4wNTYsMjE5LjEsMjIyLjQ5MSwyMTkuMWMyOS42NjUsMCw1My4zMDYsMjYuODIsNTIuODQzLDU5LjIzOUMyNzUuMzM0LDMxMC45OTMsMjUxLjkyNCwzMzcuNTgsMjIyLjQ5MSwzMzcuNThabTE5NS4zOCwwYy0yOC45NzEsMC01Mi44NDMtMjYuNTg3LTUyLjg0My01OS4yMzlTMzg4LjQzNywyMTkuMSw0MTcuODcxLDIxOS4xYzI5LjY2NywwLDUzLjMwNywyNi44Miw1Mi44NDQsNTkuMjM5QzQ3MC43MTUsMzEwLjk5Myw0NDcuNTM4LDMzNy41OCw0MTcuODcxLDMzNy41OFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXNjb3Vyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjkgMzJDMTAzLjMgMzIgMCAxMzAuNSAwIDI1Mi4xIDAgMjU2IC4xIDQ4MCAuMSA0ODBsMjI1LjgtLjJjMTIyLjcgMCAyMjIuMS0xMDIuMyAyMjIuMS0yMjMuOUM0NDggMTM0LjMgMzQ4LjYgMzIgMjI1LjkgMzJ6TTIyNCAzODRjLTE5LjQgMC0zNy45LTQuMy01NC40LTEyLjFMODguNSAzOTJsMjIuOS03NWMtOS44LTE4LjEtMTUuNC0zOC45LTE1LjQtNjEgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvY2h1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTcuOSAxNjBIMjU2VjE5LjZMMzk3LjkgMTYwek0zMDQgMTkydjEzMGMwIDY2LjgtMzYuNSAxMDAuMS0xMTMuMyAxMDAuMUg5NlY4NC44aDk0LjdjMTIgMCAyMy4xLjggMzMuMSAyLjV2LTg0QzIxMi45IDEuMSAyMDEuNCAwIDE4OS4yIDBIMHY1MTJoMTg5LjJDMzI5LjcgNTEyIDQwMCA0NDcuNCA0MDAgMzE4LjFWMTkyaC05NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2NrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ5LjkgMjM2LjNoLTY2LjF2LTU5LjRoNjYuMXY1OS40em0wLTIwNC4zaC02Ni4xdjYwLjdoNjYuMVYzMnptNzguMiAxNDQuOEgzNjJ2NTkuNGg2Ni4xdi01OS40em0tMTU2LjMtNzIuMWgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6bTc4LjEgMGgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdIMi40Yy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40LjQgNjcuNi4xIDkxLjMtNDUuMiAxLjUtMi41IDYuNi0xMy4yIDguNS0xNy4xbC0xMy4zLTguOXptLTUxMS4xLTI3LjloLTY2djU5LjRoNjYuMXYtNTkuNHptNzguMSAwaC02Ni4xdjU5LjRoNjYuMXYtNTkuNHptNzguMSAwaC02Ni4xdjU5LjRoNjYuMXYtNTkuNHptLTc4LjEtNzIuMWgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhZnQyRGlnaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMzk4LjFsLTE0NC04Mi4ydjY0LjdoLTkxLjNjMzAuOC0zNSA4MS44LTk1LjkgMTExLjgtMTQ5LjMgMzUuMi02Mi42IDE2LjEtMTIzLjQtMTIuOC0xNTMuMy00LjQtNC42LTYyLjItNjIuOS0xNjYtNDEuMi01OS4xIDEyLjQtODkuNCA0My40LTEwNC4zIDY3LjMtMTMuMSAyMC45LTE3IDM5LjgtMTguMiA0Ny43LTUuNSAzMyAxOS40IDY3LjEgNTYuNyA2Ny4xIDMxLjcgMCA1Ny4zLTI1LjcgNTcuMy01Ny40IDAtMjcuMS0xOS43LTUyLjEtNDgtNTYuOCAxLjgtNy4zIDE3LjctMjEuMSAyNi4zLTI0LjcgNDEuMS0xNy4zIDc4IDUuMiA4My4zIDMzLjUgOC4zIDQ0LjMtMzcuMSA5MC40LTY5LjcgMTI3LjZDODQuNSAzMjguMSAxOC4zIDM5Ni44IDAgNDE1LjlsMzM2LS4xVjQ4MHpNMzY5LjkgMzcxbDQ3LjEgMjcuMi00Ny4xIDI3LjJ6TTEzNC4yIDE2MS40YzAgMTIuNC0xMCAyMi40LTIyLjQgMjIuNHMtMjIuNC0xMC0yMi40LTIyLjQgMTAtMjIuNCAyMi40LTIyLjQgMjIuNCAxMC4xIDIyLjQgMjIuNHpNODIuNSAzODAuNWMyNS42LTI3LjQgOTcuNy0xMDQuNyAxNTAuOC0xNjkuOSAzNS4xLTQzLjEgNDAuMy04Mi40IDI4LjQtMTEyLjctNy40LTE4LjgtMTcuNS0zMC4yLTI0LjMtMzUuNyA0NS4zIDIuMSA2OCAyMy40IDgyLjIgMzguMyAwIDAgNDIuNCA0OC4yIDUuOCAxMTMuMy0zNyA2NS45LTExMC45IDE0Ny41LTEyOC41IDE2Ni43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyaWJiYmxlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkwLjIgMjI4LjJjOC45LTQyLjQgMzcuNC03Ny43IDc1LjctOTUuNyAzLjYgNC45IDI4IDM4LjggNTAuNyA3OS02NCAxNy0xMjAuMyAxNi44LTEyNi40IDE2Ljd6TTMxNC42IDE1NGMtMzMuNi0yOS44LTc5LjMtNDEuMS0xMjIuNi0zMC42IDMuOCA1LjEgMjguNiAzOC45IDUxIDgwIDQ4LjYtMTguMyA2OS4xLTQ1LjkgNzEuNi00OS40ek0xNDAuMSAzNjRjNDAuNSAzMS42IDkzLjMgMzYuNyAxMzcuMyAxOC0yLTEyLTEwLTUzLjgtMjkuMi0xMDMuNi01NS4xIDE4LjgtOTMuOCA1Ni40LTEwOC4xIDg1LjZ6bTk4LjgtMTA4LjJjLTMuNC03LjgtNy4yLTE1LjUtMTEuMS0yMy4yQzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUyYzAgMS40LS4xIDIuOC0uMSA0LjIgMCAzNS4xIDEzLjMgNjcuMSAzNS4xIDkxLjQgMjIuMi0zNy45IDY3LjEtNzcuOSAxMTYuNS05MS44em0zNC45IDE2LjNjMTcuOSA0OS4xIDI1LjEgODkuMSAyNi41IDk3LjQgMzAuNy0yMC43IDUyLjUtNTMuNiA1OC42LTkxLjYtNC42LTEuNS00Mi4zLTEyLjctODUuMS01Ljh6bS0yMC4zLTQ4LjRjNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44IDQ1LjUtNS43IDkwLjcgMy40IDk1LjIgNC40LS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMS0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjl6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTY0IDE3NmMwLTg4LjItNzEuOC0xNjAtMTYwLTE2MFM2NCAxNjcuOCA2NCAyNTZzNzEuOCAxNjAgMTYwIDE2MCAxNjAtNzEuOCAxNjAtMTYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyaWJiYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4yNTIgOCA4IDExOS4yNTIgOCAyNTZzMTExLjI1MiAyNDggMjQ4IDI0OCAyNDgtMTExLjI1MiAyNDgtMjQ4UzM5Mi43NDggOCAyNTYgOHptMTYzLjk3IDExNC4zNjZjMjkuNTAzIDM2LjA0NiA0Ny4zNjkgODEuOTU3IDQ3LjgzNSAxMzEuOTU1LTYuOTg0LTEuNDc3LTc3LjAxOC0xNS42ODItMTQ3LjUwMi02LjgxOC01Ljc1Mi0xNC4wNDEtMTEuMTgxLTI2LjM5My0xOC42MTctNDEuNjE0IDc4LjMyMS0zMS45NzcgMTEzLjgxOC03Ny40ODIgMTE4LjI4NC04My41MjN6TTM5Ni40MjEgOTcuODdjLTMuODEgNS40MjctMzUuNjk3IDQ4LjI4Ni0xMTEuMDIxIDc2LjUxOS0zNC43MTItNjMuNzc2LTczLjE4NS0xMTYuMTY4LTc5LjA0LTEyNC4wMDggNjcuMTc2LTE2LjE5MyAxMzcuOTY2IDEuMjcgMTkwLjA2MSA0Ny40ODl6bS0yMzAuNDgtMzMuMjVjNS41ODUgNy42NTkgNDMuNDM4IDYwLjExNiA3OC41MzcgMTIyLjUwOS05OS4wODcgMjYuMzEzLTE4Ni4zNiAyNS45MzQtMTk1LjgzNCAyNS44MDlDNjIuMzggMTQ3LjIwNSAxMDYuNjc4IDkyLjU3MyAxNjUuOTQxIDY0LjYyek00NC4xNyAyNTYuMzIzYzAtMi4xNjYuMDQzLTQuMzIyLjEwOC02LjQ3MyA5LjI2OC4xOSAxMTEuOTIgMS41MTMgMjE3LjcwNi0zMC4xNDYgNi4wNjQgMTEuODY4IDExLjg1NyAyMy45MTUgMTcuMTc0IDM1Ljk0OS03Ni41OTkgMjEuNTc1LTE0Ni4xOTQgODMuNTI3LTE4MC41MzEgMTQyLjMwNkM2NC43OTQgMzYwLjQwNSA0NC4xNyAzMTAuNzMgNDQuMTcgMjU2LjMyM3ptODEuODA3IDE2Ny4xMTNjMjIuMTI3LTQ1LjIzMyA4Mi4xNzgtMTAzLjYyMiAxNjcuNTc5LTEzMi43NTYgMjkuNzQgNzcuMjgzIDQyLjAzOSAxNDIuMDUzIDQ1LjE4OSAxNjAuNjM4LTY4LjExMiAyOS4wMTMtMTUwLjAxNSAyMS4wNTMtMjEyLjc2OC0yNy44ODJ6bTI0OC4zOCA4LjQ4OWMtMi4xNzEtMTIuODg2LTEzLjQ0Ni03NC44OTctNDEuMTUyLTE1MS4wMzMgNjYuMzgtMTAuNjI2IDEyNC43IDYuNzY4IDEzMS45NDcgOS4wNTUtOS40NDIgNTguOTQxLTQzLjI3MyAxMDkuODQ0LTkwLjc5NSAxNDEuOTc4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyb3Bib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUyOCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY0LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zTDAgMjg0LjFsMTMyLjMtODQuM0wwIDExNi4zIDEzMi4zIDMybDEzMi4xIDg0LjN6TTEzMS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zem0xMzIuOC0xMTEuNmwxMzItODQuMy0xMzItODMuNkwzOTUuNyAzMiA1MjggMTE2LjNsLTEzMi4zIDg0LjNMNTI4IDI4NC44bC0xMzIuMyA4NC4zLTEzMS4zLTg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTkuNSAxMTQuN2MtMjIuMi0xNC00My41LTE5LjUtNjQuNy0zMy41LTEzLTguOC0zMS4zLTMwLTQ2LjUtNDguMy0yLjcgMjkuMy0xMS41IDQxLjItMjIgNDkuNS0yMS4zIDE3LTM0LjggMjIuMi01My41IDMyLjNDMTE3IDEyMyAzMiAxODEuNSAzMiAyOTAuNSAzMiAzOTkuNyAxMjMuOCA0ODAgMjI1LjggNDgwIDMyNy41IDQ4MCA0MTYgNDA2IDQxNiAyOTRjMC0xMTIuMy04My0xNzEtOTYuNS0xNzkuM3ptMi41IDMyNS42Yy0yMC4xIDIwLjEtOTAuMSAyOC43LTExNi43IDQuMi00LjgtNC44LjMtMTIgNi41LTEyIDAgMCAxNyAxMy4zIDUxLjUgMTMuMyAyNyAwIDQ2LTcuNyA1NC41LTE0IDYuMS00LjYgOC40IDQuMyA0LjIgOC41em0tNTQuNS01Mi42YzguNy0zLjYgMjktMy44IDM2LjggMS4zIDQuMSAyLjggMTYuMSAxOC44IDYuMiAyMy43LTguNCA0LjItMS4yLTE1LjctMjYuNS0xNS43LTE0LjcgMC0xOS41IDUuMi0yNi43IDExLTcgNi05LjggOC0xMi4yIDQuNy02LTguMiAxNS45LTIyLjMgMjIuNC0yNXpNMzYwIDQwNWMtMTUuMi0xLTQ1LjUtNDguOC02NS00OS41LTMwLjktLjktMTA0LjEgODAuNy0xNjEuMyA0Mi0zOC44LTI2LjYtMTQuNi0xMDQuOCA1MS44LTEwNS4yIDQ5LjUtLjUgODMuOCA0OSAxMDguNSA0OC41IDIxLjMtLjMgNjEuOC00MS44IDgxLjgtNDEuOCA0OC43IDAgMjMuMyAxMDkuMy0xNS44IDEwNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEeWFsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnYxMTkuMmg2NFY5NmgxMDcuMkMyODQuNiA5NiAzNTIgMTc2LjIgMzUyIDI1NS45IDM1MiAzMzIgMjkzLjQgNDE2IDE3MS4yIDQxNkgwdjY0aDE3MS4yQzMzMS45IDQ4MCA0MTYgMzY3LjMgNDE2IDI1NS45YzAtNTguNy0yMi4xLTExMy40LTYyLjMtMTU0LjNDMzA4LjkgNTYgMjQ1LjcgMzIgMTcxLjIgMzJIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJseWJpcmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy4yIDQ3LjVjMS4yLTEzIDIxLjMtMTQgMzYuNi04LjcuOS4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMTkuNCAxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptLTE1OS43IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptMzE4LjUgMTYzLjJjLTkuOSAyNC00MC43IDExLTYzLjktMS4yLTEzLjUgNjkuMS01OC4xIDExMS40LTEyNi4zIDEyNC4yLjMuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMi44IDE3LjktMjcuMSAyMS44LTI4LjQtMWwtLjUgNS4zYy0uNyAxOC40LTI4LjQgMTcuOS0yOC4zLS42LTcuNSAxMy41LTI4LjEgNi44LTI2LjQtOC41bDEuMi0xMi40Yy0zNi43LjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNC43LTYuNiAxLjYtMTMuMyAyLjctMTkuOC0xNC40LTE5LjYtMTEuNi0zNi4zLTE2LjEtNjAuNC0xNi44IDIuNC0yMy4yLTkuMS0yMy42LTIzLjEuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjNDMjAzLjMgMjkgMjE1LjIgOC41IDIxNi4yIDhjMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xLjYgNi40IDE1LTQuOSAyNS45IDQwLjMgMy41IDcyLjIgMjQuNyA5NiA1MC43IDM2LjEgMS41IDcxLjggNS45IDc3LjEgMzQgMi43LjYgMTEuNi44IDEyLjcgMi42LjMuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIwNy40IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwNiAxODkuNWwtNTQuOCAxMDkuOS01NC45LTEwOS45aC0zNy41bDEwLjkgMjAuNmMtMTEuNS0xOS0zNS45LTI2LTYzLjMtMjYtMzEuOCAwLTY3LjkgOC43LTcxLjUgNDMuMWgzMy43YzEuNC0xMy44IDE1LjctMjEuOCAzNS0yMS44IDI2IDAgNDEgOS42IDQxIDMzdjMuNGMtMTIuNyAwLTI4IC4xLTQxLjcuNC00Mi40LjktNjkuNiAxMC03Ni43IDM0LjQgMS01LjIgMS41LTEwLjYgMS41LTE2LjIgMC01Mi4xLTM5LjctNzYuMi03NS40LTc2LjItMjEuMyAwLTQzIDUuNS01OC43IDI0LjJ2LTgwLjZoLTMyLjF2MTY5LjVjMCAxMC4zLS42IDIyLjktMS4xIDMzLjFoMzEuNWMuNy02LjMgMS4xLTEyLjkgMS4xLTE5LjUgMTMuNiAxNi42IDM1LjQgMjQuOSA1OC43IDI0LjkgMzYuOSAwIDY0LjktMjEuOSA3My4zLTU0LjItLjUgMi44LS43IDUuOC0uNyA5IDAgMjQuMSAyMS4xIDQ1IDYwLjYgNDUgMjYuNiAwIDQ1LjgtNS43IDYxLjktMjUuNSAwIDYuNi4zIDEzLjMgMS4xIDIwLjJoMjkuOGMtLjctOC4yLTEtMTcuNS0xLTI2Ljh2LTY1LjZjMC05LjMtMS43LTE3LjItNC44LTIzLjhsNjEuNSAxMTYuMS0yOC41IDU0LjFoMzUuOUw2NDAgMTg5LjV6TTI0My43IDMxMy44Yy0yOS42IDAtNTAuMi0yMS41LTUwLjItNTMuOCAwLTMyLjQgMjAuNi01My44IDUwLjItNTMuOCAyOS44IDAgNTAuMiAyMS40IDUwLjIgNTMuOCAwIDMyLjMtMjAuNCA1My44LTUwLjIgNTMuOHptMjAwLjktNDcuM2MwIDMwLTE3LjkgNDguNC01MS42IDQ4LjQtMjUuMSAwLTM1LTEzLjQtMzUtMjUuOCAwLTE5LjEgMTguMS0yNC40IDQ3LjItMjUuMyAxMy4xLS41IDI3LjYtLjYgMzkuNC0uNnptLTQxMS45IDEuNmgxMjguOHYtOC41YzAtNTEuNy0zMy4xLTc1LjQtNzguNC03NS40LTU2LjggMC04MyAzMC44LTgzIDc3LjYgMCA0Mi41IDI1LjMgNzQgODIuNSA3NCAzMS40IDAgNjgtMTEuNyA3NC40LTQ2LjFoLTMzLjFjLTEyIDM1LjgtODcuNyAzNi43LTkxLjItMjEuNnptOTUtMjEuNEgzMy4zYzYuOS01Ni42IDkyLjEtNTQuNyA5NC40IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRnZUxlZ2FjeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNS43MSwyMjguMTZsLjM1LS40OGMwLC4xNiwwLC4zMi0uMDcuNDhabTQ2MC41OCwxNS41MWMwLTQ0LTcuNzYtODQuNDYtMjguODEtMTIyLjRDNDE2LjUsNDcuODgsMzQzLjkxLDgsMjU4Ljg5LDgsMTE5LDcuNzIsNDAuNjIsMTEzLjIxLDI2LjA2LDIyNy42OGM0Mi40Mi02MS4zMSwxMTcuMDctMTIxLjM4LDIyMC4zNy0xMjUsMCwwLDEwOS42NywwLDk5LjQyLDEwNUgxNzBjNi4zNy0zNy4zOSwxOC41NS01OSwzNC4zNC03OC45My03NS4wNSwzNC45LTEyMS44NSw5Ni4xLTEyMC43NSwxODguMzIuODMsNzEuNDUsNTAuMTMsMTQ0Ljg0LDEyMC43NSwxNzIsODMuMzUsMzEuODQsMTkyLjc3LDcuMiwyNDAuMTMtMjEuMzNWMzYzLjMxQzM2My42LDQxOS44LDE3My42LDQyNC4yMywxNzIuMjEsMjk1Ljc0SDQ4Ni4yOVYyNDMuNjdaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEuOTIsMTM0LjQ4QzQ0MC44Nyw1NC4xOCwzNTIuMjYsOCwyNTUuOTEsOCwxMzcuMDUsOCwzNy41MSw5MS42OCwxMy40NywyMDMuNjZjMjYtNDYuNDksODYuMjItNzkuMTQsMTQ5LjQ2LTc5LjE0LDc5LjI3LDAsMTIxLjA5LDQ4LjkzLDEyMi4yNSw1MC4xOCwyMiwyMy44LDMzLDUwLjM5LDMzLDgzLjEsMCwxMC40LTUuMzEsMjUuODItMTUuMTEsMzguNTctMS41NywyLTYuMzksNC44NC02LjM5LDExLDAsNS4wNiwzLjI5LDkuOTIsOS4xNCwxNCwyNy44NiwxOS4zNyw4MC4zNywxNi44MSw4MC41MSwxNi44MUExMTUuMzksMTE1LjM5LDAsMCwwLDQ0NC45NCwzMjJhMTE4LjkyLDExOC45MiwwLDAsMCw1OC45NS0xMDIuNDRDNTA0LjM5LDE3Ni4xMyw0ODguMzksMTQ3LjI2LDQ4MS45MiwxMzQuNDhaTTIxMi43Nyw0NzUuNjdhMTU0Ljg4LDE1NC44OCwwLDAsMS00Ni42NC00NWMtMzIuOTQtNDcuNDItMzQuMjQtOTUuNi0yMC4xLTEzNkExNTUuNSwxNTUuNSwwLDAsMSwyMDMsMjE1Ljc1YzU5LTQ1LjIsOTQuODQtNS42NSw5OS4wNi0xYTgwLDgwLDAsMCwwLTQuODktMTAuMTRjLTkuMjQtMTUuOTMtMjQtMzYuNDEtNTYuNTYtNTMuNTEtMzMuNzItMTcuNjktNzAuNTktMTguNTktNzcuNjQtMTguNTktMzguNzEsMC03Ny45LDEzLTEwNy41MywzNS42OUMzNS42OCwxODMuMywxMi43NywyMDguNzIsOC42LDI0M2MtMS4wOCwxMi4zMS0yLjc1LDYyLjgsMjMsMTE4LjI3YTI0OCwyNDgsMCwwLDAsMjQ4LjMsMTQxLjYxQzI0MS43OCw0OTYuMjYsMjE0LjA1LDQ3Ni4yNCwyMTIuNzcsNDc1LjY3Wm0yNTAuNzItOTguMzNhNy43Niw3Ljc2LDAsMCwwLTcuOTItLjIzLDE4MS42NiwxODEuNjYsMCwwLDEtMjAuNDEsOS4xMiwxOTcuNTQsMTk3LjU0LDAsMCwxLTY5LjU1LDEyLjUyYy05MS42NywwLTE3MS41Mi02My4wNi0xNzEuNTItMTQ0QTYxLjEyLDYxLjEyLDAsMCwxLDIwMC42MSwyMjgsMTY4LjcyLDE2OC43MiwwLDAsMCwxNjEuODUsMjc4Yy0xNC45MiwyOS4zNy0zMyw4OC4xMywxMy4zMywxNTEuNjYsNi41MSw4LjkxLDIzLDMwLDU2LDQ3LjY3LDIzLjU3LDEyLjY1LDQ5LDE5LjYxLDcxLjcsMTkuNjEsMzUuMTQsMCwxMTUuNDMtMzMuNDQsMTYzLTEwOC44N0E3Ljc1LDcuNzUsMCwwLDAsNDYzLjQ5LDM3Ny4zNFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGVtZW50b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI1LjYgMzJIMjIuNEMxMCAzMiAwIDQyIDAgNTQuNHY0MDMuMkMwIDQ3MCAxMCA0ODAgMjIuNCA0ODBoNDAzLjJjMTIuNCAwIDIyLjQtMTAgMjIuNC0yMi40VjU0LjRDNDQ4IDQyIDQzOCAzMiA0MjUuNiAzMk0xNjQuMyAzNTUuNWgtMzkuOHYtMTk5aDM5Ljh2MTk5em0xNTkuMyAwSDIwNC4xdi0zOS44aDExOS41djM5Ljh6bTAtNzkuNkgyMDQuMXYtMzkuOGgxMTkuNXYzOS44em0wLTc5LjdIMjA0LjF2LTM5LjhoMTE5LjV2MzkuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE0My44NCAyODUuMkMzNzUuMzEgMzU4LjUxIDMxNS43OSA0MDQuOCAyNDggNDA0LjhzLTEyNy4zMS00Ni4yOS0xNDMuODQtMTExLjZjLTEuNjUtNy40NCAyLjQ4LTE1LjcxIDkuOTItMTcuMzYgNy40NC0xLjY1IDE1LjcxIDIuNDggMTcuMzYgOS45MiAxNC4wNSA1Mi45MSA2MiA5MC4xMSAxMTYuNTYgOTAuMTFzMTAyLjUxLTM3LjIgMTE2LjU2LTkwLjExYzEuNjUtNy40NCA5LjkyLTEyLjQgMTcuMzYtOS45MiA3LjQ0IDEuNjUgMTIuNCA5LjkyIDkuOTIgMTcuMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM5LjkgMjU0LjZjLTEuMS0xMC43LTEwLjctNi44LTEwLjctNi44cy0xNS42IDEyLjEtMjkuMyAxMC43Yy0xMy43LTEuMy05LjQtMzItOS40LTMyczMtMjguMS01LjEtMzAuNGMtOC4xLTIuNC0xOCA3LjMtMTggNy4zcy0xMi40IDEzLjctMTguMyAzMS4ybC0xLjYuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNy44LTUzLjUtMjguNSAxOC44LTI4LjUgMTguOC0xOS42IDMyLjgtMjAuNCAzNi41bC0xLjMtMS42czguMS0zOC4yIDYuNC00Ny42Yy0xLjYtOS40LTEwLjUtNy41LTEwLjUtNy41cy0xMS4zLTEuMy0xNC4yIDUuOS0xMy43IDU1LjMtMTUgNzAuN2MwIDAtMjguMiAyMC4yLTQ2LjggMjAuNC0xOC41LjMtMTYuNy0xMS44LTE2LjctMTEuOHM2OC0yMy4zIDQ5LjQtNjkuMmMtOC4zLTExLjgtMTgtMTUuNS0zMS43LTE1LjMtMTMuNy4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWgxLjZzLTUuNiA0OC4xIDMgNjMuNyAzMC45IDUuMyAzMC45IDUuMyAxNS42LTcuOCAxOC0xMC4yYzAgMCAxOC41IDE1LjggNDQuNiAxMi45IDU4LjMtMTEuNSA3OS4xLTI1LjkgNzkuMS0yNS45czEwIDI0LjQgNDEuMSAyNi43YzM1LjUgMi43IDU0LjgtMTguNiA1NC44LTE4LjZzLS4zIDEzLjUgMTIuMSAxOC42IDIwLjctMjIuOCAyMC43LTIyLjhsMjAuNy01Ny4yaDEuOXMxLjEgMzcuMyAyMS41IDQzLjIgNDctMTMuNyA0Ny0xMy43IDYuNC0zLjUgNS4zLTE0LjN6bS01NzggNS4zYy44LTMyIDIxLjgtNDUuOSAyOS0zOSA3LjMgNyA0LjYgMjItOS4xIDMxLjQtMTMuNyA5LjUtMTkuOSA3LjYtMTkuOSA3LjZ6bTI3Mi44LTEyMy44czE5LjEtNDkuNyAyMy42LTI1LjUtNDAgOTYuMi00MCA5Ni4yYy41LTE2LjIgMTYuNC03MC43IDE2LjQtNzAuN3ptMjIuOCAxMzguNGMtMTIuNiAzMy00My4zIDE5LjYtNDMuMyAxOS42cy0zLjUtMTEuOCA2LjQtNDQuOSAzMy4zLTIwLjIgMzMuMy0yMC4yIDE2LjIgMTIuNCAzLjYgNDUuNXptODQuNi0xNC42cy0zLTEwLjUgOC4xLTMwLjZjMTEtMjAuMiAxOS42LTkuMSAxOS42LTkuMXM5LjQgMTAuMi0xLjMgMjUuNS0yNi40IDE0LjItMjYuNCAxNC4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVtcGlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODcuNiA1NC4yYy0xMC44LTIuMi0yMi4xLTMuMy0zMy41LTMuNlYzMi40Yzc4LjEgMi4yIDE0Ni4xIDQ0IDE4NC42IDEwNi42bC0xNS44IDkuMWMtNi4xLTkuNy0xMi43LTE4LjgtMjAuMi0yNy4xbC0xOCAxNS41Yy0yNi0yOS42LTYxLjQtNTAuNy0xMDEuOS01OC40bDQuOC0yMy45ek01My40IDMyMi40bDIzLTcuN2MtNi40LTE4LjMtMTAtMzguMi0xMC01OC43czMuMy00MC40IDkuNy01OC43bC0yMi43LTcuN2MzLjYtMTAuOCA4LjMtMjEuMyAxMy42LTMxbC0xNS44LTkuMUMzNCAxODEgMjQuMSAyMTcuNSAyNC4xIDI1NnMxMCA3NSAyNy4xIDEwNi42bDE1LjgtOS4xYy01LjMtMTAtOS43LTIwLjMtMTMuNi0zMS4xek0yMTMuMSA0MzRjLTQwLjQtOC03NS44LTI5LjEtMTAxLjktNTguN2wtMTggMTUuOGMtNy41LTguNi0xNC40LTE3LjctMjAuMi0yNy40bC0xNiA5LjRjMzguNSA2Mi4zIDEwNi44IDEwNC4zIDE4NC45IDEwNi42di0xOC4zYy0xMS4zLS4zLTIyLjctMS43LTMzLjUtMy42bDQuNy0yMy44ek05My4zIDEyMC45bDE4IDE1LjVjMjYtMjkuNiA2MS40LTUwLjcgMTAxLjktNTguNGwtNC43LTIzLjhjMTAuOC0yLjIgMjIuMS0zLjMgMzMuNS0zLjZWMzIuNEMxNjMuOSAzNC42IDk1LjkgNzYuNCA1Ny40IDEzOWwxNS44IDkuMWM2LTkuNyAxMi42LTE4LjkgMjAuMS0yNy4yem0zMDkuNCAyNzAuMmwtMTgtMTUuOGMtMjYgMjkuNi02MS40IDUwLjctMTAxLjkgNTguN2w0LjcgMjMuOGMtMTAuOCAxLjktMjIuMSAzLjMtMzMuNSAzLjZ2MTguM2M3OC4xLTIuMiAxNDYuNC00NC4zIDE4NC45LTEwNi42bC0xNi4xLTkuNGMtNS43IDkuNy0xMi42IDE4LjgtMjAuMSAyNy40ek00OTYgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFMwIDM5MyAwIDI1NiAxMTEgOCAyNDggOHMyNDggMTExIDI0OCAyNDh6bS0xMi4yIDBjMC0xMzAuMS0xMDUuNy0yMzUuOC0yMzUuOC0yMzUuOFMxMi4yIDEyNS45IDEyLjIgMjU2IDExNy45IDQ5MS44IDI0OCA0OTEuOCA0ODMuOCAzODYuMSA0ODMuOCAyNTZ6bS0zOS0xMDYuNmwtMTUuOCA5LjFjNS4zIDkuNyAxMCAyMC4yIDEzLjYgMzFsLTIyLjcgNy43YzYuNCAxOC4zIDkuNyAzOC4yIDkuNyA1OC43cy0zLjYgNDAuNC0xMCA1OC43bDIzIDcuN2MtMy45IDEwLjgtOC4zIDIxLTEzLjYgMzFsMTUuOCA5LjFDNDYyIDMzMSA0NzEuOSAyOTQuNSA0NzEuOSAyNTZzLTkuOS03NS0yNy4xLTEwNi42em0tMTgzIDE3Ny43YzE2LjMtMy4zIDMwLjQtMTEuNiA0MC43LTIzLjVsNTEuMiA0NC44YzExLjktMTMuNiAyMS4zLTI5LjMgMjcuMS00Ni44bC02NC4yLTIyLjFjMi41LTcuNSAzLjktMTUuMiAzLjktMjMuNXMtMS40LTE2LjEtMy45LTIzLjVsNjQuNS0yMi4xYy02LjEtMTcuNC0xNS41LTMzLjItMjcuNC00Ni44bC01MS4yIDQ0LjhjLTEwLjItMTEuOS0yNC40LTIwLjUtNDAuNy0yMy44bDEzLjMtNjYuNGMtOC42LTEuOS0xNy43LTIuOC0yNy4xLTIuOC05LjQgMC0xOC41LjgtMjcuMSAyLjhsMTMuMyA2Ni40Yy0xNi4zIDMuMy0zMC40IDExLjktNDAuNyAyMy44bC01MS4yLTQ0LjhjLTExLjkgMTMuNi0yMS4zIDI5LjMtMjcuNCA0Ni44bDY0LjUgMjIuMWMtMi41IDcuNS0zLjkgMTUuMi0zLjkgMjMuNXMxLjQgMTYuMSAzLjkgMjMuNWwtNjQuMiAyMi4xYzUuOCAxNy40IDE1LjIgMzMuMiAyNy4xIDQ2LjhsNTEuMi00NC44YzEwLjIgMTEuOSAyNC40IDIwLjIgNDAuNyAyMy41bC0xMy4zIDY2LjdjOC42IDEuNyAxNy43IDIuOCAyNy4xIDIuOCA5LjQgMCAxOC41LTEuMSAyNy4xLTIuOGwtMTMuMy02Ni43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmlyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyYzQ3Ny42IDAgMzY2LjYgMzE3LjMgMzY3LjEgMzY2LjNMNDQ4IDQ4MGgtMjZsLTcwLjQtNzEuMmMtMzkgNC4yLTEyNC40IDM0LjUtMjE0LjQtMzdDNDcgMzAwLjMgNTIgMjE0LjcgMCAzMnptNzkuNyA0NmMtNDkuNy0yMy41LTUuMiA5LjItNS4yIDkuMiA0NS4yIDMxLjIgNjYgNzMuNyA5MC4yIDExOS45IDMxLjUgNjAuMiA3OSAxMzkuNyAxNDQuMiAxNjcuNyA2NSAyOCAzNC4yIDEyLjUgNi04LjUtMjguMi0yMS4yLTY4LjItODctOTEtMTMwLjItMzEuNy02MC02MS0xMTguNi0xNDQuMi0xNTguMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFcmxhbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODcuMiA1My41SDB2NDA1aDEwMC40Yy00OS43LTUyLjYtNzguOC0xMjUuMy03OC43LTIxMi4xLS4xLTc2LjcgMjQtMTQyLjcgNjUuNS0xOTIuOXptMjM4LjIgOS43Yy00NS45LjEtODUuMSAzMy41LTg5LjIgODMuMmgxNjkuOWMtMS4xLTQ5LjctMzQuNS04My4xLTgwLjctODMuMnptMjMwLjctOS42aC4zbC0uMS0uMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcuNSA2IC41IDExLjcgMCAyNC4xSDIzMC4yYy0uMiAxMDkuNyAzOC45IDE5NC45IDEzOC42IDE5NS4zIDY4LjUtLjMgMTE4LTUxIDE1MS45LTEwNi4xbDk2LjQgNDguMmMtMTcuNCAzMC45LTM2LjUgNTcuOC01Ny45IDgwLjhINjQwdi00MDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXRoZXJldW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzExLjkgMjYwLjhMMTYwIDM1My42IDggMjYwLjggMTYwIDBsMTUxLjkgMjYwLjh6TTE2MCAzODMuNEw4IDI5MC42IDE2MCA1MTJsMTUyLTIyMS40LTE1MiA5Mi44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0c3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDM0OGMtMS43NSAxMC43NS0xMy43NSAxMTAtMTUuNSAxMzItMTE3Ljg3OS00LjI5OS0yMTkuODk1LTQuNzQzLTM2OC41IDB2LTI1LjVjNDUuNDU3LTguOTQ4IDYwLjYyNy04LjAxOSA2MS0zNS4yNSAxLjc5My03Mi4zMjIgMy41MjQtMjQ0LjE0MyAwLTMyMi0xLjAyOS0yOC40Ni0xMi4xMy0yNi43NjUtNjEtMzZ2LTI1LjVjNzMuODg2IDIuMzU4IDI1NS45MzMgOC41NTEgMzYyLjk5OS0zLjc1LTMuNSAzOC4yNS03Ljc1IDEyNi41LTcuNzUgMTI2LjVIMzMyQzMyMC45NDcgMTE1LjY2NSAzMTMuMjQxIDY4IDI3Ny4yNSA2OGgtMTM3Yy0xMC4yNSAwLTEwLjc1IDMuNS0xMC43NSA5Ljc1VjI0MS41YzU4IC41IDg4LjUtMi41IDg4LjUtMi41IDI5Ljc3LS45NTEgMjcuNTYtOC41MDIgNDAuNzUtNjUuMjUxaDI1Ljc1Yy00LjQwNyAxMDEuMzUxLTMuOTEgNjEuODI5LTEuNzUgMTYwLjI1SDI1N2MtOS4xNTUtNDAuMDg2LTkuMDY1LTYxLjA0NS0zOS41MDEtNjEuNSAwIDAtMjEuNS0yLTg4LTJ2MTM5YzAgMjYgMTQuMjUgMzguMjUgNDQuMjUgMzguMjVIMjYzYzYzLjYzNiAwIDY2LjU2NC0yNC45OTYgOTguNzUxLTk5Ljc1SDM4NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdmVybm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAuODIgMTMyLjIxYzEuNiAyMi4zMS0xNy41NSAyMS41OS0yMS42MSAyMS41OS02OC45MyAwLTczLjY0LTEtODMuNTggMy4zNC0uNTYuMjItLjc0IDAtLjM3LS4zN0wxMjMuNzkgNDYuNDVjLjM4LS4zNy42LS4yMi4zOC4zNy00LjM1IDkuOTktMy4zNSAxNS4wOS0zLjM1IDg1LjM5em03OSAzMDhjLTE0LjY4LTM3LjA4IDEzLTc2LjkzIDUyLjUyLTc2LjYyIDE3LjQ5IDAgMjIuNiAyMy4yMSA3Ljk1IDMxLjQyLTYuMTkgMy4zLTI0Ljk1IDEuNzQtMjUuMTQgMTkuMi0uMDUgMTcuMDkgMTkuNjcgMjUgMzEuMiAyNC44OUE0NS42NCA0NS42NCAwIDAgMCAzMTIgMzkzLjQ1di0uMDhjMC0xMS42My03Ljc5LTQ3LjIyLTQ3LjU0LTU1LjM0LTcuNzItMS41NC02NS02LjM1LTY4LjM1LTUwLjUyLTMuNzQgMTYuOTMtMTcuNCA2My40OS00My4xMSA2OS4wOS04Ljc0IDEuOTQtNjkuNjggNy42NC0xMTIuOTItMzYuNzcgMCAwLTE4LjU3LTE1LjIzLTI4LjIzLTU3Ljk1LTMuMzgtMTUuNzUtOS4yOC0zOS43LTExLjE0LTYyIDAtMTggMTEuMTQtMzAuNDUgMjUuMDctMzIuMiA4MSAwIDkwIDIuMzIgMTAxLTcuOCA5LjgyLTkuMjQgNy44LTE1LjUgNy44LTEwMi43OCAxLTguMyA3Ljc5LTMwLjgxIDUzLjQxLTI0LjE0IDYgLjg2IDMxLjkxIDQuMTggMzcuNDggMzAuNjRsNjQuMjYgMTEuMTVjMjAuNDMgMy43MSA3MC45NCA3IDgwLjYgNTcuOTQgMjIuNjYgMTIxLjA5IDguOTEgMjM4LjQ2IDcuOCAyMzguNDZDMzYyLjE1IDQ4NS41MyAyNjcuMDYgNDgwIDI2Ny4wNiA0ODBjLTE4Ljk1LS4yMy01NC4yNS05LjQtNjcuMjctMzkuODN6bTgwLjk0LTIwNC44NGMtMSAxLjkyLTIuMiA2IC44NSA3IDE0LjA5IDQuOTMgMzkuNzUgNi44NCA0NS44OCA1LjUzIDMuMTEtLjI1IDMuMDUtNC40MyAyLjQ4LTYuNjUtMy41My0yMS44NS00MC44My0yNi41LTQ5LjI0LTUuOTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXhwZWRpdGVkc3NsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA0My40QzEzMC42IDQzLjQgMzUuNCAxMzguNiAzNS40IDI1NlMxMzAuNiA0NjguNiAyNDggNDY4LjYgNDYwLjYgMzczLjQgNDYwLjYgMjU2IDM2NS40IDQzLjQgMjQ4IDQzLjR6bS05Ny40IDEzMi45YzAtNTMuNyA0My43LTk3LjQgOTcuNC05Ny40czk3LjQgNDMuNyA5Ny40IDk3LjR2MjYuNmMwIDUtMy45IDguOS04LjkgOC45aC0xNy43Yy01IDAtOC45LTMuOS04LjktOC45di0yNi42YzAtODIuMS0xMjQtODIuMS0xMjQgMHYyNi42YzAgNS0zLjkgOC45LTguOSA4LjloLTE3LjdjLTUgMC04LjktMy45LTguOS04Ljl2LTI2LjZ6TTM4OS43IDM4MGMwIDkuNy04IDE3LjctMTcuNyAxNy43SDEyNGMtOS43IDAtMTcuNy04LTE3LjctMTcuN1YyMzguM2MwLTkuNyA4LTE3LjcgMTcuNy0xNy43aDI0OGM5LjcgMCAxNy43IDggMTcuNyAxNy43VjM4MHptLTI0OC0xMzcuM3YxMzIuOWMwIDIuNS0xLjkgNC40LTQuNCA0LjRoLTguOWMtMi41IDAtNC40LTEuOS00LjQtNC40VjI0Mi43YzAtMi41IDEuOS00LjQgNC40LTQuNGg4LjljMi41IDAgNC40IDEuOSA0LjQgNC40em0xNDEuNyA0OC43YzAgMTMtNy4yIDI0LjQtMTcuNyAzMC40djMxLjZjMCA1LTMuOSA4LjktOC45IDguOWgtMTcuN2MtNSAwLTguOS0zLjktOC45LTguOXYtMzEuNmMtMTAuNS02LjEtMTcuNy0xNy40LTE3LjctMzAuNCAwLTE5LjcgMTUuOC0zNS40IDM1LjQtMzUuNHMzNS41IDE1LjggMzUuNSAzNS40ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ3OC4zQzEyMSA0ODYuMyAxNy43IDM4MyAxNy43IDI1NlMxMjEgMjUuNyAyNDggMjUuNyA0NzguMyAxMjkgNDc4LjMgMjU2IDM3NSA0ODYuMyAyNDggNDg2LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZWJvb2tGIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OS4xNCAyODhsMTQuMjItOTIuNjZoLTg4Ljkxdi02MC4xM2MwLTI1LjM1IDEyLjQyLTUwLjA2IDUyLjI0LTUwLjA2aDQwLjQyVjYuMjZTMjYwLjQzIDAgMjI1LjM2IDBjLTczLjIyIDAtMTIxLjA4IDQ0LjM4LTEyMS4wOCAxMjQuNzJ2NzAuNjJIMjIuODlWMjg4aDgxLjM5djIyNGgxMDAuMTdWMjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2Vib29rTWVzc2VuZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni41NSA4QzExNi41MiA4IDggMTEwLjM0IDggMjQ4LjU3YzAgNzIuMyAyOS43MSAxMzQuNzggNzguMDcgMTc3Ljk0IDguMzUgNy41MSA2LjYzIDExLjg2IDguMDUgNTguMjNBMTkuOTIgMTkuOTIgMCAwIDAgMTIyIDUwMi4zMWM1Mi45MS0yMy4zIDUzLjU5LTI1LjE0IDYyLjU2LTIyLjdDMzM3Ljg1IDUyMS44IDUwNCA0MjMuNyA1MDQgMjQ4LjU3IDUwNCAxMTAuMzQgMzk2LjU5IDggMjU2LjU1IDh6bTE0OS4yNCAxODUuMTNsLTczIDExNS41N2EzNy4zNyAzNy4zNyAwIDAgMS01My45MSA5LjkzbC01OC4wOC00My40N2ExNSAxNSAwIDAgMC0xOCAwbC03OC4zNyA1OS40NGMtMTAuNDYgNy45My0yNC4xNi00LjYtMTcuMTEtMTUuNjdsNzMtMTE1LjU3YTM3LjM2IDM3LjM2IDAgMCAxIDUzLjkxLTkuOTNsNTguMDYgNDMuNDZhMTUgMTUgMCAwIDAgMTggMGw3OC40MS01OS4zOGMxMC40NC03Ljk4IDI0LjE0IDQuNTQgMTcuMDkgMTUuNjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZWJvb2tTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QTQ4IDQ4IDAgMCAwIDAgODB2MzUyYTQ4IDQ4IDAgMCAwIDQ4IDQ4aDEzNy4yNVYzMjcuNjloLTYzVjI1Nmg2M3YtNTQuNjRjMC02Mi4xNSAzNy05Ni40OCA5My42Ny05Ni40OCAyNy4xNCAwIDU1LjUyIDQuODQgNTUuNTIgNC44NHY2MWgtMzEuMjdjLTMwLjgxIDAtNDAuNDIgMTkuMTItNDAuNDIgMzguNzNWMjU2aDY4Ljc4bC0xMSA3MS42OWgtNTcuNzhWNDgwSDQwMGE0OCA0OCAwIDAgMCA0OC00OFY4MGE0OCA0OCAwIDAgMC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZjMCAxMjMuNzggOTAuNjkgMjI2LjM4IDIwOS4yNSAyNDVWMzI3LjY5aC02M1YyNTZoNjN2LTU0LjY0YzAtNjIuMTUgMzctOTYuNDggOTMuNjctOTYuNDggMjcuMTQgMCA1NS41MiA0Ljg0IDU1LjUyIDQuODR2NjFoLTMxLjI4Yy0zMC44IDAtNDAuNDEgMTkuMTItNDAuNDEgMzguNzNWMjU2aDY4Ljc4bC0xMSA3MS42OWgtNTcuNzhWNTAxQzQxMy4zMSA0ODIuMzggNTA0IDM3OS43OCA1MDQgMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhbnRhc3lGbGlnaHRHYW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzIuODZMMzIuODYgMjU2IDI1NiA0NzkuMTQgNDc5LjE0IDI1NiAyNTYgMzIuODZ6TTg4LjM0IDI1NS44M2MxLjk2LTIgMTEuOTItMTIuMyA5Ni40OS05Ny40OCA0MS40NS00MS43NSA4Ni4xOS00My43NyAxMTkuNzctMTguNjkgMjQuNjMgMTguNCA2Mi4wNiA1OC45IDYyLjE1IDU5IC42OC43NCAxLjA3IDIuODYuNTggMy4zOC0xMS4yNyAxMS44NC0yMi42OCAyMy41NC0zMy41IDM0LjY5LTM0LjIxLTMyLjMxLTQwLjUyLTM4LjI0LTQ4LjUxLTQzLjk1LTE3Ljc3LTEyLjY5LTQxLjQtMTAuMTMtNTYuOTggNS4xLTIuMTcgMi4xMy0xLjc5IDMuNDMuMTIgNS4zNSAyLjk0IDIuOTUgMjguMSAyOC4zMyAzNS4wOSAzNS43OC0xMS45NSAxMS42LTIzLjY2IDIyLjk3LTM1LjY5IDM0LjY2LTEyLjAyLTEyLjU0LTI0LjQ4LTI1LjUzLTM2LjU0LTM4LjExLTIxLjM5IDIxLjA5LTQxLjY5IDQxLjExLTYxLjg1IDYwLjk5YTQyNTY5LjAxIDQyNTY5LjAxIDAgMCAxLTQxLjEzLTQwLjcyem0yMzQuODIgMTAxLjZjLTM1LjQ5IDM1LjQzLTc4LjA5IDM4LjE0LTEwNi45OSAyMC40Ny0yMi4wOC0xMy41LTM5LjM4LTMyLjA4LTcyLjkzLTY2Ljg0IDEyLjA1LTEyLjM3IDIzLjc5LTI0LjQyIDM1LjM3LTM2LjMxIDMzLjAyIDMxLjkxIDM3LjA2IDM2LjAxIDQ0LjY4IDQyLjA5IDE4LjQ4IDE0Ljc0IDQyLjUyIDEzLjY3IDU5LjMyLTEuOCAzLjY4LTMuMzkgMy42OS0zLjY0LjE0LTcuMjQtMTAuNTktMTAuNzMtMjEuMTktMjEuNDQtMzEuNzctMzIuMTgtMS4zMi0xLjM0LTMuMDMtMi40OC0uOC00LjY5IDEwLjc5LTEwLjcxIDIxLjQ4LTIxLjUyIDMyLjIxLTMyLjI5LjI2LS4yNi42NS0uMzggMS45MS0xLjA3IDEyLjM3IDEyLjg3IDI0LjkyIDI1LjkyIDM3LjI1IDM4Ljc1IDIxLjAxLTIwLjczIDQxLjI0LTQwLjY4IDYxLjI1LTYwLjQyIDEzLjY4IDEzLjQgMjcuMTMgMjYuNTggNDAuODYgNDAuMDMtMjAuMTcgMjAuODYtODEuNjggODIuNzEtMTAwLjUgMTAxLjV6TTI1NiAwTDAgMjU2bDI1NiAyNTYgMjU2LTI1NkwyNTYgMHpNMTYgMjU2TDI1NiAxNmwyNDAgMjQwLTI0MCAyNDBMMTYgMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlZGV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4NiAyODQuNWw1My4zLTU5LjloLTYyLjRsLTIxLjcgMjQuOC0yMi41LTI0LjhINDE0di0xNmg1Ni4xdi00OC4xSDMxOC45VjIzNmgtLjVjLTkuNi0xMS0yMS41LTE0LjgtMzUuNC0xNC44LTI4LjQgMC00OS44IDE5LjQtNTcuMyA0NC45LTE4LTU5LjQtOTcuNC01Ny42LTEyMS45LTE0di0yNC4ySDQ5di0yNi4yaDYwdi00MS4xSDBWMzQ1aDQ5di03Ny41aDQ4LjljLTEuNSA1LjctMi4zIDExLjgtMi4zIDE4LjIgMCA3My4xIDEwMi42IDkxLjQgMTMwLjIgMjMuN2gtNDJjLTE0LjcgMjAuOS00NS44IDguOS00NS44LTE0LjZoODUuNWMzLjcgMzAuNSAyNy40IDU2LjkgNjAuMSA1Ni45IDE0LjEgMCAyNy02LjkgMzQuOS0xOC42aC41VjM0NWgyMTIuMmwyMi4xLTI1IDIyLjMgMjVINjQwbC01NC02MC41em0tNDQ2LjctMTYuNmM2LjEtMjYuMyA0MS43LTI1LjYgNDYuNSAwaC00Ni41em0xNTMuNCA0OC45Yy0zNC42IDAtMzQtNjIuOCAwLTYyLjggMzIuNiAwIDM0LjUgNjIuOCAwIDYyLjh6bTE2Ny44IDE5LjFoLTk0LjRWMTY5LjRoOTV2MzAuMkg0MDV2MzMuOWg1NS41djI4LjFoLTU2LjF2NDQuN2g1Ni4xdjI5LjZ6bS00NS45LTM5Ljh2LTI0LjRoNTYuMXYtNDRsNTAuNyA1Ny01MC43IDU3di00NS42aC01Ni4xem0xMzguNiAxMC4zbC0yNi4xIDI5LjVINDg5bDQ1LjYtNTEuMi00NS42LTUxLjJoMzkuN2wyNi42IDI5LjMgMjUuNi0yOS4zaDM4LjVsLTQ1LjQgNTEgNDYgNTEuNGgtNDAuNWwtMjYuMy0yOS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlZG9yYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUgMzJDMTAxLjMgMzEuNy44IDEzMS43LjQgMjU1LjRMMCA0MjUuN2E1My42IDUzLjYgMCAwIDAgNTMuNiA1My45bDE3MC4yLjRjMTIzLjcuMyAyMjQuMy05OS43IDIyNC42LTIyMy40UzM0OC43IDMyLjMgMjI1IDMyem0xNjkuOCAxNTcuMkwzMzMgMTI2LjZjMi4zLTQuNyAzLjgtOS4yIDMuOC0xNC4zdi0xLjZsNTUuMiA1Ni4xYTEwMSAxMDEgMCAwIDEgMi44IDIyLjR6TTMzMSA5NC4zYTEwNi4wNiAxMDYuMDYgMCAwIDEgNTguNSA2My44bC01NC4zLTU0LjZhMjYuNDggMjYuNDggMCAwIDAtNC4yLTkuMnpNMTE4LjEgMjQ3LjJhNDkuNjYgNDkuNjYgMCAwIDAtNy43IDExLjRsLTguNS04LjVhODUuNzggODUuNzggMCAwIDEgMTYuMi0yLjl6TTk3IDI1MS40bDExLjggMTEuOS0uOSA4YTM0Ljc0IDM0Ljc0IDAgMCAwIDIuNCAxMi41bC0yNy0yNy4yYTgwLjYgODAuNiAwIDAgMSAxMy43LTUuMnptLTE4LjIgNy40bDM4LjIgMzguNGE1My4xNyA1My4xNyAwIDAgMC0xNC4xIDQuN0w2Ny42IDI2NmExMDcgMTA3IDAgMCAxIDExLjItNy4yem0tMTUuMiA5LjhsMzUuMyAzNS41YTY3LjI1IDY3LjI1IDAgMCAwLTEwLjUgOC41TDUzLjUgMjc4YTY0LjMzIDY0LjMzIDAgMCAxIDEwLjEtOS40em0tMTMuMyAxMi4zbDM0LjkgMzVhNTYuODQgNTYuODQgMCAwIDAtNy43IDExLjRsLTM1LjgtMzUuOWMyLjgtMy44IDUuNy03LjIgOC42LTEwLjV6bS0xMSAxNC4zbDM2LjQgMzYuNmE0OC4yOSA0OC4yOSAwIDAgMC0zLjYgMTUuMmwtMzkuNS0zOS44YTk5LjgxIDk5LjgxIDAgMCAxIDYuNy0xMnptLTguOCAxNi4zbDQxLjMgNDEuOGE2My40NyA2My40NyAwIDAgMCA2LjcgMjYuMkwyNS44IDMyNmMxLjQtNC45IDIuOS05LjYgNC43LTE0LjV6bS03LjkgNDNsNjEuOSA2Mi4yYTMxLjI0IDMxLjI0IDAgMCAwLTMuNiAxNC4zdjEuMWwtNTUuNC01NS43YTg4LjI3IDg4LjI3IDAgMCAxLTIuOS0yMS45em01LjMgMzAuN2w1NC4zIDU0LjZhMjguNDQgMjguNDQgMCAwIDAgNC4yIDkuMiAxMDYuMzIgMTA2LjMyIDAgMCAxLTU4LjUtNjMuOHptLTUuMy0zN2E4MC42OSA4MC42OSAwIDAgMSAyLjEtMTdsNzIuMiA3Mi41YTM3LjU5IDM3LjU5IDAgMCAwLTkuOSA4Ljd6bTI1My4zLTUxLjhsLTQyLjYtLjEtLjEgNTZjLS4yIDY5LjMtNjQuNCAxMTUuOC0xMjUuNyAxMDIuOS01LjcgMC0xOS45LTguNy0xOS45LTI0LjJhMjQuODkgMjQuODkgMCAwIDEgMjQuNS0yNC42YzYuMyAwIDYuMyAxLjYgMTUuNyAxLjZhNTUuOTEgNTUuOTEgMCAwIDAgNTYuMS01NS45bC4xLTQ3YzAtNC41LTQuNS05LTguOS05bC0zMy42LS4xYy0zMi42LS4xLTMyLjUtNDkuNC4xLTQ5LjNsNDIuNi4xLjEtNTZhMTA1LjE4IDEwNS4xOCAwIDAgMSAxMDUuNi0xMDUgODYuMzUgODYuMzUgMCAwIDEgMjAuMiAyLjNjMTEuMiAxLjggMTkuOSAxMS45IDE5LjkgMjQgMCAxNS41LTE0LjkgMjcuOC0zMC4zIDIzLjktMjcuNC01LjktNjUuOSAxNC40LTY2IDU0LjlsLS4xIDQ3YTguOTQgOC45NCAwIDAgMCA4LjkgOWwzMy42LjFjMzIuNS4yIDMyLjQgNDkuNS0uMiA0OS40em0yMy41LS4zYTM1LjU4IDM1LjU4IDAgMCAwIDcuNi0xMS40bDguNSA4LjVhMTAyIDEwMiAwIDAgMS0xNi4xIDIuOXptMjEtNC4yTDMwOC42IDI4MGwuOS04LjFhMzQuNzQgMzQuNzQgMCAwIDAtMi40LTEyLjVsMjcgMjcuMmE3NC44OSA3NC44OSAwIDAgMS0xMy43IDUuM3ptMTgtNy40bC0zOC0zOC40YzQuOS0xLjEgOS42LTIuNCAxMy43LTQuN2wzNi4yIDM1LjljLTMuOCAyLjUtNy45IDUtMTEuOSA3LjJ6bTE1LjUtOS44bC0zNS4zLTM1LjVhNjEuMDYgNjEuMDYgMCAwIDAgMTAuNS04LjVsMzQuOSAzNWExMjQuNTYgMTI0LjU2IDAgMCAxLTEwLjEgOXptMTMuMi0xMi4zbC0zNC45LTM1YTYzLjE4IDYzLjE4IDAgMCAwIDcuNy0xMS40bDM1LjggMzUuOWExMzAuMjggMTMwLjI4IDAgMCAxLTguNiAxMC41em0xMS0xNC4zbC0zNi40LTM2LjZhNDguMjkgNDguMjkgMCAwIDAgMy42LTE1LjJsMzkuNSAzOS44YTg3LjcyIDg3LjcyIDAgMCAxLTYuNyAxMnptMTMuNS0zMC45YTE0MC42MyAxNDAuNjMgMCAwIDEtNC43IDE0LjNMMzQ1LjYgMTkwYTU4LjE5IDU4LjE5IDAgMCAwLTcuMS0yNi4yem0xLTUuNmwtNzEuOS03Mi4xYTMyIDMyIDAgMCAwIDkuOS05LjJsNjQuMyA2NC43YTkwLjkzIDkwLjkzIDAgMCAxLTIuMyAxNi42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpZ21hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDk1Ljc5MjRDMTQgNDIuODg3NyA1Ni44ODc4IDAgMTA5Ljc5MyAwSDI3NC4xNjFDMzI3LjA2NiAwIDM2OS45NTQgNDIuODg3NyAzNjkuOTU0IDk1Ljc5MjRDMzY5Ljk1NCAxMjkuMjkyIDM1Mi43NTggMTU4Ljc3NiAzMjYuNzExIDE3NS44OTdDMzUyLjc1OCAxOTMuMDE5IDM2OS45NTQgMjIyLjUwMiAzNjkuOTU0IDI1Ni4wMDJDMzY5Ljk1NCAzMDguOTA3IDMyNy4wNjYgMzUxLjc5NSAyNzQuMTYxIDM1MS43OTVIMjcyLjA4MUMyNDcuMjc5IDM1MS43OTUgMjI0LjY3OCAzNDIuMzY5IDIwNy42NjYgMzI2LjkwNFY0MTUuMTY3QzIwNy42NjYgNDY4Ljc3NyAxNjMuNjU3IDUxMiAxMTAuMzA5IDUxMkM1Ny41MzYxIDUxMiAxNCA0NjkuMjQzIDE0IDQxNi4yMDdDMTQgMzgyLjcwOSAzMS4xOTQ1IDM1My4yMjcgNTcuMjM5MiAzMzYuMTA1QzMxLjE5NDUgMzE4Ljk4MyAxNCAyODkuNSAxNCAyNTYuMDAyQzE0IDIyMi41MDIgMzEuMTk2IDE5My4wMTkgNTcuMjQyNSAxNzUuODk3QzMxLjE5NiAxNTguNzc2IDE0IDEyOS4yOTIgMTQgOTUuNzkyNFpNMTc2LjI4OCAxOTEuNTg3SDEwOS43OTNDNzQuMjE3MiAxOTEuNTg3IDQ1LjM3NzggMjIwLjQyNyA0NS4zNzc4IDI1Ni4wMDJDNDUuMzc3OCAyOTEuNDQgNzMuOTk0OCAzMjAuMTk0IDEwOS4zODEgMzIwLjQxNkMxMDkuNTE4IDMyMC40MTUgMTA5LjY1NSAzMjAuNDE1IDEwOS43OTMgMzIwLjQxNUgxNzYuMjg4VjE5MS41ODdaTTIwNy42NjYgMjU2LjAwMkMyMDcuNjY2IDI5MS41NzcgMjM2LjUwNSAzMjAuNDE3IDI3Mi4wODEgMzIwLjQxN0gyNzQuMTYxQzMwOS43MzcgMzIwLjQxNyAzMzguNTc2IDI5MS41NzcgMzM4LjU3NiAyNTYuMDAyQzMzOC41NzYgMjIwLjQyNyAzMDkuNzM3IDE5MS41ODcgMjc0LjE2MSAxOTEuNTg3SDI3Mi4wODFDMjM2LjUwNSAxOTEuNTg3IDIwNy42NjYgMjIwLjQyNyAyMDcuNjY2IDI1Ni4wMDJaTTEwOS43OTMgMzUxLjc5NUMxMDkuNjU1IDM1MS43OTUgMTA5LjUxOCAzNTEuNzk0IDEwOS4zODEgMzUxLjc5NEM3My45OTQ4IDM1Mi4wMTUgNDUuMzc3OCAzODAuNzY5IDQ1LjM3NzggNDE2LjIwN0M0NS4zNzc4IDQ1MS42NTIgNzQuNjAyNSA0ODAuNjIyIDExMC4zMDkgNDgwLjYyMkMxNDYuNTkxIDQ4MC42MjIgMTc2LjI4OCA0NTEuMTg2IDE3Ni4yODggNDE1LjE2N1YzNTEuNzk1SDEwOS43OTNaTTEwOS43OTMgMzEuMzc3OEM3NC4yMTcyIDMxLjM3NzggNDUuMzc3OCA2MC4yMTczIDQ1LjM3NzggOTUuNzkyNEM0NS4zNzc4IDEzMS4zNjggNzQuMjE3MiAxNjAuMjA3IDEwOS43OTMgMTYwLjIwN0gxNzYuMjg4VjMxLjM3NzhIMTA5Ljc5M1pNMjA3LjY2NiAxNjAuMjA3SDI3NC4xNjFDMzA5LjczNyAxNjAuMjA3IDMzOC41NzYgMTMxLjM2OCAzMzguNTc2IDk1Ljc5MjRDMzM4LjU3NiA2MC4yMTczIDMwOS43MzcgMzEuMzc3OCAyNzQuMTYxIDMxLjM3NzhIMjA3LjY2NlYxNjAuMjA3WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVmb3hCcm93c2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4OS4zNywxNTIuODZabS01OC43NC0yOS4zN0MxMzAuNzksMTIzLjUsMTMwLjcxLDEyMy41LDEzMC42MywxMjMuNDlabTM1MS40Miw0NS4zNWMtMTAuNjEtMjUuNS0zMi4wOC01My00OC45NC02MS43MywxMy43MiwyNi44OSwyMS42Nyw1My44OCwyNC43LDc0LDAsMCwwLC4xNC4wNS40MS0yNy41OC02OC43NS03NC4zNS05Ni40Ny0xMTIuNTUtMTU2LjgzLTEuOTMtMy4wNS0zLjg2LTYuMTEtNS43NC05LjMzLTEtMS42NS0xLjg2LTMuMzQtMi42OS01LjA1QTQ0Ljg4LDQ0Ljg4LDAsMCwxLDMzMy4yNC42OWEuNjMuNjMsMCwwLDAtLjU1LS42Ni45LjksMCwwLDAtLjQ2LDBsLS4xMi4wNy0uMTguMS4xLS4xNGMtNTQuMjMsMzEuNzctNzYuNzIsODcuMzgtODIuNSwxMjIuNzhhMTMwLDEzMCwwLDAsMC00OC4zMywxMi4zMyw2LjI1LDYuMjUsMCwwLDAtMy4wOSw3Ljc1LDYuMTMsNi4xMywwLDAsMCw3Ljc5LDMuNzlsLjUyLS4yMWExMTcuODQsMTE3Ljg0LDAsMCwxLDQyLjExLTExbDEuNDItLjFjMi0uMTIsNC0uMiw2LS4yMkExMjIuNjEsMTIyLjYxLDAsMCwxLDI5MSwxNDBjLjY3LjIsMS4zMi40MiwyLC42MywxLjg5LjU3LDMuNzYsMS4yLDUuNjIsMS44NywxLjM2LjUsMi43MSwxLDQuMDUsMS41OCwxLjA5LjQ0LDIuMTguODgsMy4yNSwxLjM1cTIuNTIsMS4xMyw1LDIuMzVjLjc1LjM3LDEuNS43NCwyLjI1LDEuMTNxMi40LDEuMjYsNC43NCwyLjYzLDEuNTEuODcsMywxLjhhMTI0Ljg5LDEyNC44OSwwLDAsMSw0Mi42Niw0NC4xM2MtMTMtOS4xNS0zNi4zNS0xOC4xOS01OC44Mi0xNC4yOCw4Ny43NCw0My44Niw2NC4xOCwxOTQuOS01Ny4zOSwxODkuMmExMDguNDMsMTA4LjQzLDAsMCwxLTMxLjc0LTYuMTJjLTIuNDItLjkxLTQuOC0xLjg5LTcuMTYtMi45My0xLjM4LS42My0yLjc2LTEuMjctNC4xMi0yQzE3NC41LDM0NiwxNDkuOSwzMTYuOTIsMTQ2LjgzLDI4MS41OWMwLDAsMTEuMjUtNDEuOTUsODAuNjItNDEuOTUsNy41LDAsMjguOTMtMjAuOTIsMjkuMzMtMjctLjA5LTItNDIuNTQtMTguODctNTkuMDktMzUuMTgtOC44NS04LjcxLTEzLjA1LTEyLjkxLTE2Ljc3LTE2LjA2YTY5LjU4LDY5LjU4LDAsMCwwLTYuMzEtNC43N0ExMTMuMDUsMTEzLjA1LDAsMCwxLDE3My45Miw5N2MtMjUuMDYsMTEuNDEtNDQuNTUsMjkuNDUtNTguNzEsNDUuMzdoLS4xMmMtOS42Ny0xMi4yNS05LTUyLjY1LTguNDMtNjEuMDgtLjEyLS41My03LjIyLDMuNjgtOC4xNSw0LjMxYTE3OC41NCwxNzguNTQsMCwwLDAtMjMuODQsMjAuNDNBMjE0LDIxNCwwLDAsMCw1MS45LDEzMy4zNmwwLDBhLjA4LjA4LDAsMCwxLDAsMCwyMDUuODQsMjA1Ljg0LDAsMCwwLTMyLjczLDczLjljLS4wNi4yNy0yLjMzLDEwLjIxLTQsMjIuNDhxLS40MiwyLjg3LS43OCw1Ljc0Yy0uNTcsMy42OS0xLDcuNzEtMS40NCwxNCwwLC4yNCwwLC40OC0uMDUuNzItLjE4LDIuNzEtLjM0LDUuNDEtLjQ5LDguMTIsMCwuNDEsMCwuODIsMCwxLjI0LDAsMTM0LjcsMTA5LjIxLDI0My44OSwyNDMuOTIsMjQzLjg5LDEyMC42NCwwLDIyMC44Mi04Ny41OCwyNDAuNDMtMjAyLjYyLjQxLTMuMTIuNzQtNi4yNiwxLjExLTkuNDEsNC44NS00MS44My0uNTQtODUuNzktMTUuODItMTIyLjU1WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVmb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAzLjUyLDI0MS40OGMtLjEyLTEuNTYtLjI0LTMuMTItLjI0LTQuNjh2LS4xMmwtLjM2LTQuNjh2LS4xMmEyNDUuODYsMjQ1Ljg2LDAsMCwwLTcuMzItNDEuMTVjMC0uMTIsMC0uMTItLjEyLS4yNGwtMS4wOC00Yy0uMTItLjI0LS4xMi0uNDgtLjI0LS42LS4zNi0xLjItLjcyLTIuNTItMS4wOC0zLjcyLS4xMi0uMjQtLjEyLS42LS4yNC0uODQtLjM2LTEuMi0uNzItMi40LTEuMDgtMy40OC0uMTItLjM2LS4yNC0uNi0uMzYtMS0uMzYtMS4yLS43Mi0yLjI4LTEuMi0zLjQ4bC0uMzYtMS4wOGMtLjM2LTEuMDgtLjg0LTIuMjgtMS4yLTMuMzZhOC4yNyw4LjI3LDAsMCwwLS4zNi0xYy0uNDgtMS4wOC0uODQtMi4yOC0xLjMyLTMuMzYtLjEyLS4yNC0uMjQtLjYtLjM2LS44NC0uNDgtMS4yLTEtMi4yOC0xLjQ0LTMuNDgsMC0uMTItLjEyLS4yNC0uMTItLjM2LTEuNTYtMy44NC0zLjI0LTcuNjgtNS0xMS40bC0uMzYtLjcyYy0uNDgtMS0uODQtMS44LTEuMzItMi42NC0uMjQtLjQ4LS40OC0xLjA4LS43Mi0xLjU2LS4zNi0uODQtLjg0LTEuNTYtMS4yLTIuNC0uMzYtLjYtLjYtMS4yLTEtMS44cy0uODQtMS40NC0xLjItMi4yOGMtLjM2LS42LS43Mi0xLjMyLTEuMDgtMS45MnMtLjg0LTEuNDQtMS4yLTIuMTZhMTguMDcsMTguMDcsMCwwLDAtMS4yLTJjLS4zNi0uNzItLjg0LTEuMzItMS4yLTJzLS44NC0xLjMyLTEuMi0yLS44NC0xLjMyLTEuMi0xLjkyLS44NC0xLjQ0LTEuMzItMi4xNmExNS42MywxNS42MywwLDAsMC0xLjItMS44TDQ2My4yLDExOWExNS42MywxNS42MywwLDAsMC0xLjItMS44Yy0uNDgtLjcyLTEuMDgtMS41Ni0xLjU2LTIuMjgtLjM2LS40OC0uNzItMS4wOC0xLjA4LTEuNTZsLTEuOC0yLjUyYy0uMzYtLjQ4LS42LS44NC0xLTEuMzItMS0xLjMyLTEuOC0yLjUyLTIuNzYtMy43MmEyNDguNzYsMjQ4Ljc2LDAsMCwwLTIzLjUxLTI2LjY0QTE4Ni44MiwxODYuODIsMCwwLDAsNDEyLDYyLjQ2Yy00LTMuNDgtOC4xNi02LjcyLTEyLjQ4LTkuODRhMTYyLjQ5LDE2Mi40OSwwLDAsMC0yNC42LTE1LjEyYy0yLjQtMS4zMi00LjgtMi41Mi03LjItMy43MmEyNTQsMjU0LDAsMCwwLTU1LjQzLTE5LjU2Yy0xLjkyLS4zNi0zLjg0LS44NC01LjY0LTEuMmgtLjEyYy0xLS4xMi0xLjgtLjM2LTIuNzYtLjQ4YTIzNi4zNSwyMzYuMzUsMCwwLDAtMzgtNEgyNTUuMTRhMjM0LjYyLDIzNC42MiwwLDAsMC00NS40OCw1Yy0zMy41OSw3LjA4LTYzLjIzLDIxLjI0LTgyLjkxLDM5LTEuMDgsMS0xLjkyLDEuNjgtMi40LDIuMTZsLS40OC40OEgxMjRsLS4xMi4xMi4xMi0uMTJhLjEyLjEyLDAsMCwwLC4xMi0uMTJsLS4xMi4xMmEuNDIuNDIsMCwwLDEsLjI0LS4xMmMxNC42NC04Ljc2LDM0LjkyLTE2LDQ5LjQ0LTE5LjU2bDUuODgtMS40NGMuMzYtLjEyLjg0LS4xMiwxLjItLjI0LDEuNjgtLjM2LDMuMzYtLjcyLDUuMTYtMS4wOC4yNCwwLC42LS4xMi44NC0uMTJDMjUwLjk0LDIwLjk0LDMxOS4zNCw0MC4xNCwzNjcsODUuNjFhMTcxLjQ5LDE3MS40OSwwLDAsMSwyNi44OCwzMi43NmMzMC4zNiw0OS4yLDI3LjQ4LDExMS4xMSwzLjg0LDE0Ny41OS0zNC40NCw1My0xMTEuMzUsNzEuMjctMTU5LDI0Ljg0YTg0LjE5LDg0LjE5LDAsMCwxLTI1LjU2LTU5LDc0LjA1LDc0LjA1LDAsMCwxLDYuMjQtMzFjMS42OC0zLjg0LDEzLjA4LTI1LjY3LDE4LjI0LTI0LjU5LTEzLjA4LTIuNzYtMzcuNTUsMi42NC01NC43MSwyOC4xOS0xNS4zNiwyMi45Mi0xNC41Miw1OC4yLTUsODMuMjhhMTMyLjg1LDEzMi44NSwwLDAsMS0xMi4xMi0zOS4yNGMtMTIuMjQtODIuNTUsNDMuMzEtMTUzLDk0LjMxLTE3MC41MS0yNy40OC0yNC05Ni40Ny0yMi4zMS0xNDcuNzEsMTUuMzYtMjkuODgsMjItNTEuMjMsNTMuMTYtNjIuNTEsOTAuMzYsMS42OC0yMC44OCw5LjYtNTIuMDgsMjUuOC04My44OC0xNy4xNiw4Ljg4LTM5LDM3LTQ5LjgsNjIuODgtMTUuNiwzNy40My0yMSw4Mi4xOS0xNi4wOCwxMjQuNzkuMzYsMy4yNC43Miw2LjM2LDEuMDgsOS42LDE5LjkyLDExNy4xMSwxMjIsMjA2LjM4LDI0NC43OCwyMDYuMzhDMzkyLjc3LDUwMy40Miw1MDQsMzkyLjE5LDUwNCwyNTUsNTAzLjg4LDI1MC40OCw1MDMuNzYsMjQ1LjkyLDUwMy41MiwyNDEuNDhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyc3RPcmRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0wIDQ4OC4yMUMxMTUuMzQgNDk2LjIxIDcuNzkgMzg4LjY2IDcuNzkgMjU2UzExNS4zNCAxNS43OSAyNDggMTUuNzkgNDg4LjIxIDEyMy4zNCA0ODguMjEgMjU2IDM4MC42NiA0OTYuMjEgMjQ4IDQ5Ni4yMXptMC00NTkuOTJDMTI2LjY2IDM2LjI5IDI4LjI5IDEzNC42NiAyOC4yOSAyNTZTMTI2LjY2IDQ3NS43MSAyNDggNDc1LjcxIDQ2Ny43MSAzNzcuMzQgNDY3LjcxIDI1NiAzNjkuMzQgMzYuMjkgMjQ4IDM2LjI5em0wIDQzMS4yMmMtMTE2LjgxIDAtMjExLjUxLTk0LjY5LTIxMS41MS0yMTEuNTFTMTMxLjE5IDQ0LjQ5IDI0OCA0NC40OSA0NTkuNTEgMTM5LjE5IDQ1OS41MSAyNTYgMzY0LjgxIDQ2Ny41MSAyNDggNDY3LjUxem0xODYuMjMtMTYyLjk4YTE5MS42MTMgMTkxLjYxMyAwIDAgMS0yMC4xMyA0OC42OWwtNzQuMTMtMzUuODggNjEuNDggNTQuODJhMTkzLjUxNSAxOTMuNTE1IDAgMCAxLTM3LjIgMzcuMjlsLTU0LjgtNjEuNTcgMzUuODggNzQuMjdhMTkwLjk0NCAxOTAuOTQ0IDAgMCAxLTQ4LjYzIDIwLjIzbC0yNy4yOS03OC40NyA0Ljc5IDgyLjkzYy04LjYxIDEuMTgtMTcuNCAxLjgtMjYuMzMgMS44cy0xNy43Mi0uNjItMjYuMzMtMS44bDQuNzYtODIuNDYtMjcuMTUgNzguMDNhMTkxLjM2NSAxOTEuMzY1IDAgMCAxLTQ4LjY1LTIwLjJsMzUuOTMtNzQuMzQtNTQuODcgNjEuNjRhMTkzLjg1IDE5My44NSAwIDAgMS0zNy4yMi0zNy4yOGw2MS41OS01NC45LTc0LjI2IDM1LjkzYTE5MS42MzggMTkxLjYzOCAwIDAgMS0yMC4xNC00OC42OWw3Ny44NC0yNy4xMS04Mi4yMyA0Ljc2Yy0xLjE2LTguNTctMS43OC0xNy4zMi0xLjc4LTI2LjIxIDAtOSAuNjMtMTcuODQgMS44Mi0yNi41MWw4Mi4zOCA0Ljc3LTc3Ljk0LTI3LjE2YTE5MS43MjYgMTkxLjcyNiAwIDAgMSAyMC4yMy00OC42N2w3NC4yMiAzNS45Mi02MS41Mi01NC44NmExOTMuODUgMTkzLjg1IDAgMCAxIDM3LjI4LTM3LjIybDU0Ljc2IDYxLjUzLTM1LjgzLTc0LjE3YTE5MS40OSAxOTEuNDkgMCAwIDEgNDguNjUtMjAuMTNsMjYuODcgNzcuMjUtNC43MS04MS42MWM4LjYxLTEuMTggMTcuMzktMS44IDI2LjMyLTEuOHMxNy43MS42MiAyNi4zMiAxLjhsLTQuNzQgODIuMTYgMjcuMDUtNzcuNzZjMTcuMjcgNC41IDMzLjYgMTEuMzUgNDguNjMgMjAuMTdsLTM1LjgyIDc0LjEyIDU0LjcyLTYxLjQ3YTE5My4xMyAxOTMuMTMgMCAwIDEgMzcuMjQgMzcuMjNsLTYxLjQ1IDU0Ljc3IDc0LjEyLTM1Ljg2YTE5MS41MTUgMTkxLjUxNSAwIDAgMSAyMC4yIDQ4LjY1bC03Ny44MSAyNy4xIDgyLjI0LTQuNzVjMS4xOSA4LjY2IDEuODIgMTcuNSAxLjgyIDI2LjQ5IDAgOC44OC0uNjEgMTcuNjMtMS43OCAyNi4xOWwtODIuMTItNC43NSA3Ny43MiAyNy4wOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJzdE9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjkgMjI5LjJjLjEtLjEuMi0uMy4zLS40IDAgLjEgMCAuMy0uMS40aC0uMnpNMjI0IDk2LjZjLTcuMSAwLTE0LjYuNi0yMS40IDEuN2wzLjcgNjcuNC0yMi02NGMtMTQuMyAzLjctMjcuNyA5LjQtNDAgMTYuNmwyOS40IDYxLjQtNDUuMS01MC45Yy0xMS40IDguOS0yMS43IDE5LjEtMzAuNiAzMC45bDUwLjYgNDUuNC02MS4xLTI5LjdjLTcuMSAxMi4zLTEyLjkgMjUuNy0xNi42IDQwbDY0LjMgMjIuNi02OC00Yy0uOSA3LjEtMS40IDE0LjYtMS40IDIycy42IDE0LjYgMS40IDIxLjdsNjcuNy00LTY0IDIyLjZjMy43IDE0LjMgOS40IDI3LjcgMTYuNiA0MC4zbDYxLjEtMjkuN0w5Ny43IDM1MmM4LjkgMTEuNyAxOS4xIDIyLjMgMzAuOSAzMC45bDQ0LjktNTAuOS0yOS41IDYxLjRjMTIuMyA3LjQgMjUuNyAxMy4xIDQwIDE2LjlsMjIuMy02NC42LTQgNjhjNy4xIDEuMSAxNC42IDEuNyAyMS43IDEuNyA3LjQgMCAxNC42LS42IDIxLjctMS43bC00LTY4LjYgMjIuNiA2NS4xYzE0LjMtNCAyNy43LTkuNCA0MC0xNi45TDI3NC45IDMzMmw0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlMMjQxLjcgMTY2bDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjQgMTI4djI1NkwyMjQgNTEyIDQuNiAzODRWMTI4TDIyNCAwbDIxOS40IDEyOHptLTE3LjEgMTAuM0wyMjQgMjAuOSAyMS43IDEzOC4zdjIzNS4xTDIyNCA0OTEuMWwyMDIuMy0xMTcuN1YxMzguM3pNMjI0IDM3LjFsMTg3LjcgMTA5LjR2MjE4LjlMMjI0IDQ3NC45IDM2LjMgMzY1LjRWMTQ2LjZMMjI0IDM3LjF6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0ZHJhZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE5MmgtNjR2MTI4SDE5MnYxMjhIMHYtMjUuNmgxNjYuNHYtMTI4aDEyOHYtMTI4SDM4NFYxOTJ6bS0yNS42IDM4LjR2MTI4aC0xMjh2MTI4SDY0VjUxMmgxOTJWMzg0aDEyOFYyMzAuNGgtMjUuNnptMjUuNiAxOTJoLTg5LjZWNTEySDMyMHYtNjRoNjR2LTI1LjZ6TTAgMHYzODRoMTI4VjI1NmgxMjhWMTI4aDEyOFYwSDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxpY2tyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0NC41IDMxOWMtMzUuMSAwLTYzLjUtMjguNC02My41LTYzLjVzMjguNC02My41IDYzLjUtNjMuNSA2My41IDI4LjQgNjMuNSA2My41LTI4LjQgNjMuNS02My41IDYzLjV6bTE1OSAwYy0zNS4xIDAtNjMuNS0yOC40LTYzLjUtNjMuNXMyOC40LTYzLjUgNjMuNS02My41IDYzLjUgMjguNCA2My41IDYzLjUtMjguNCA2My41LTYzLjUgNjMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTM1OC40IDE3OS4yaC04OS42djg5LjZoLTg5LjZ2ODkuNkg4OS42VjEyMS42aDI2OC44djg5LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ny44IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOS4zIDYuNyAyLjh6TTMzMS45IDY3LjNjLTE2LjMtMjUuNy0zOC42LTQwLjYtNjMuMy01Mi4xQzI0My4xIDQuNSAyMTQtLjIgMTkyIDBjLTQ0LjEgMC03MS4yIDEzLjItODEuMSAxNy4zQzU3LjMgNDUuMiAyNi41IDg3LjIgMjggMTU4LjZjNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMy4xYzIuMS0uNyAxLjgtLjUgMy41LTIuMSA1Mi4zLTQ5LjIgMTQwLjctMTQ1LjggMTU1LjktMjE1LjcgNy0zOS4yIDMuMS03Mi41LTIwLjgtMTEyLjV6TTE4Ni44IDM1MS45Yy0yOC01MS4xLTY1LjItMTMwLjctNjkuMy0xODktMy40LTQ3LjUgMTEuNC0xMzEuMiA2OS4zLTEzNi43djMyNS43ek0zMjguNyAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuM0MyMzcuNiAyOTguNCAyNzUgMjE3IDI3NyAxNTguNGMxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udEF3ZXNvbWVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QTQ4IDQ4IDAgMCAwIDAgODBWNDMyYTQ4IDQ4IDAgMCAwIDQ4IDQ4SDQwMGE0OCA0OCAwIDAgMCA0OC00OFY4MEE0OCA0OCAwIDAgMCA0MDAgMzJabTE2IDQwMGExNiAxNiAwIDAgMS0xNiAxNkg0OGExNiAxNiAwIDAgMS0xNi0xNlY4MEExNiAxNiAwIDAgMSA0OCA2NEg0MDBhMTYgMTYgMCAwIDEgMTYgMTZaTTIwMS42IDE1MmMtMjUuNCAwLTM3LjQgMTAuNC01Ny42IDE0LjRWMTYwYTE2IDE2IDAgMCAwLTMyIDBWMzUyYTE2IDE2IDAgMCAwIDMyIDBWMTk4LjRjMjAuMi00IDMyLjItMTQuNCA1Ny42LTE0LjQgMzEuNCAwIDQzLjIgMTYgNzQuNiAxNiAxMC4yIDAgMTcuOC0xLjQgMjcuOC00LjZ2OTZjLTEwIDMuMi0xNy42IDQuNi0yNy44IDQuNi0zMS40IDAtNDMuNC0xNi03NC42LTE2YTg1LjkgODUuOSAwIDAgMC0yNS42IDR2MzJhODAgODAgMCAwIDEgMjUuNi00YzMxLjQgMCA0My4yIDE2IDc0LjYgMTYgMTguNiAwIDI4LjItNC44IDU5LjgtMTZWMTUyYy0zMS42IDExLjItNDEuMiAxNi01OS44IDE2QzI0NC44IDE2OCAyMzIuOCAxNTIgMjAxLjYgMTUyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRBd2Vzb21lRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDhWMzg0Yy02MyAyMy04MiAzMi0xMTkgMzItNjMgMC04Ny0zMi0xNTAtMzItMjAgMC0zNiA0LTUxIDhWMzI4YzE1LTQgMzEtOCA1MS04IDYzIDAgODcgMzIgMTUwIDMyIDIwIDAgMzUtMyA1NS05VjEzNWMtMjAgNi0zNSA5LTU1IDktNjMgMC04Ny0zMi0xNTAtMzItNTEgMC03NSAyMS0xMTUgMjlWNDQ4YTMxLjYgMzEuNiAwIDAgMS0zMiAzMkEzMS42IDMxLjYgMCAwIDEgMCA0NDhWNjRBMzEuNiAzMS42IDAgMCAxIDMyIDMyIDMxLjYgMzEuNiAwIDAgMSA2NCA2NFY3N2M0MC04IDY0LTI5IDExNS0yOSA2MyAwIDg3IDMyIDE1MCAzMkMzNjYgODAgMzg1IDcxIDQ0OCA0OFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250QXdlc29tZUxvZ29GdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzOTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjA5LjcgMTU2LjVjLTU3LjggMC0xMDIgNDMuOS0xMDIgOTkuMSAwIDU2IDQ0LjYgOTkuMSAxMDIgOTkuMSA1Ny40IDAgMTAyLTQzLjEgMTAyLTk5LjFDMTMxMS43IDIwMC40IDEyNjcuNSAxNTYuNSAxMjA5LjcgMTU2LjVabTAgMTUyLjdjLTM1LjEgMC01MS44LTI3LjQtNTEuOC01My4yIDAtMjUuOCAxNi43LTUzLjIgNTEuOC01My4yIDM1LjEgMCA1MS44IDI3LjggNTEuOCA1My4yQzEyNjEuMSAyODEuOCAxMjQ0LjggMzA5LjIgMTIwOS43IDMwOS4yWm05NjIuMS0xMzYuMWMtNC40LTEwLjktMTIuMy0xNi41LTIzLjUtMTYuNXMtMTkuMSA1LjYtMjMuNSAxNi41bC01OS40IDE0NS44Yy03LjIgMTcuNyAyLjggMjcuNCA0LjQgMjlhMjQuNiAyNC42IDAgMCAwIDE3LjUgNi44YzEwLjggMCAxOC43LTYgMjMuMS0xOC4xbDQtMTAuMWg2Ny43bDQgMTAuMWM0LjggMTIuMSAxMi4zIDE4LjEgMjMuMSAxOC4xYTI0LjYgMjQuNiAwIDAgMCAxNy41LTYuOGMxMC0xMC4xIDYuOC0yMi42IDQuNC0yOVptLTQzIDExMy42IDE5LjEtNTYgMTkuMSA1NlptLTU3NC41LTEzMC4xYy0xNC4zIDAtMjQuNyAxMC45LTI0LjcgMjUuNHY3Ni41bC02OC41LTg1LjhjLTQuNC01LjYtMTEuNi0xNi4xLTI1LjUtMTYuMS0xOS4xIDAtMjQuMyAxNy43LTI0LjMgMjUuNFYzMjkuN2MwIDE0LjEgMTAuNCAyNS40IDI0LjcgMjUuNCAxNC4zIDAgMjQuNy0xMC45IDI0LjctMjUuNFYyNTIuOGw2OC45IDg2LjJjNC44IDUuNiAxMS42IDE2LjEgMjUuNSAxNi4xIDE5LjEgMCAyMy45LTE3LjMgMjMuOS0yNS40VjE4MS45QzE1NzkgMTY3LjQgMTU2OC42IDE1Ni41IDE1NTQuMyAxNTYuNVptLTU1NC4xIDEuNkg5MTYuNWMtMTkuOSAwLTI1LjEgMTcuMy0yNS4xIDI1LjRWMzI4LjFjMCAxOS43IDE2LjcgMjUuNCAyNC43IDI1LjQgOCAwIDI0LjctNS4yIDI0LjctMjUuNFYyODVoNDQuNmMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42IDAtMTcuNy0xNS41LTIyLjEtMjIuNy0yMi4xSDk0MC44VjIwMy42aDU5LjRjMTIuOCAwIDIyLjctOS4zIDIyLjctMjIuNkMxMDIyLjkgMTYzIDEwMDcuMyAxNTguMSAxMDAwLjIgMTU4LjFabTgxNS4xIDBIMTY5MS43Yy03LjIgMC0yMi43IDQuNC0yMi43IDIyLjIgMCAxMy4zIDEwIDIyLjYgMjIuNyAyMi42aDM3VjMyNy43YzAgMTQuMSAxMC40IDI1LjQgMjQuNyAyNS40IDE0LjMgMCAyNC43LTEwLjkgMjQuNy0yNS40VjIwMi44aDM3YzEyLjcgMCAyMi43LTkuMyAyMi43LTIyLjZDMTgzNy45IDE2MyAxODIyLjQgMTU4LjEgMTgxNS4yIDE1OC4xWm0xNzg5LjUtMS42Yy05LjYgMC0xNy41IDYtMjUuMSAxOC4xbC00Ni42IDc2LjFMMzQ4Ni40IDE3NC42cS0xMC44LTE4LjEtMjUuMS0xOC4xYy0xOS41IDAtMjQuNyAxOC4xLTI0LjcgMjUuOFYzMjkuN2MwIDE0LjEgMTAuNCAyNS40IDI0LjcgMjUuNHMyNC43LTEwLjkgMjQuNy0yNS40VjI2Mi44TDM1MTAuNyAzMDIuN2M2LjQgMTAuMSAxMy45IDE1LjMgMjIuMyAxNS4zIDguOCAwIDE1LjktNS4yIDIyLjMtMTUuM2wyNC43LTM5Ljl2NjYuOWMwIDE0LjEgMTAuMyAyNS40IDI0LjcgMjUuNCAxNC4zIDAgMjQuNy0xMC45IDI0LjctMjUuNFYxODIuM0MzNjI5LjQgMTc0LjIgMzYyNC42IDE1Ni41IDM2MDQuNyAxNTYuNVptMjQ4LjYgMTQ5LjhoLTY1LjdWMjcyLjloMzkuNGMxMS45IDAgMjEuMS04LjkgMjEuMS0yMC45IDAtMTIuMS05LjItMjAuOS0yMS4xLTIwLjloLTM5LjRWMjA0LjhoNjIuMWMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42IDAtMTcuNy0xNS42LTIyLjItMjIuNy0yMi4yaC04Ni40Yy0xOS45IDAtMjUuMSAxNy4zLTI1LjEgMjUuNFYzMjYuNWMwIDguMSA1LjIgMjUuNCAyNS4xIDI1LjRoOTBjMTIuOCAwIDIyLjctOS4zIDIyLjctMjIuNkMzODc2IDMxMS4yIDM4NjAuNSAzMDYuMyAzODUzLjMgMzA2LjNaTTMyMzUgMTU2LjVjLTU3LjggMC0xMDIgNDMuOS0xMDIgOTkuMSAwIDU2IDQ0LjYgOTkuMSAxMDIgOTkuMSA1Ny40IDAgMTAyLTQzLjEgMTAyLTk5LjFDMzMzNyAyMDAuNCAzMjkyLjggMTU2LjUgMzIzNSAxNTYuNVptMCAxNTIuN2MtMzUuMSAwLTUxLjgtMjcuNC01MS44LTUzLjIgMC0yNS44IDE2LjctNTMuMiA1MS44LTUzLjIgMzUuMSAwIDUxLjggMjcuOCA1MS44IDUzLjJDMzI4Ni44IDI4MS44IDMyNzAuMSAzMDkuMiAzMjM1IDMwOS4yWk0yNTUwLjIgMTU2LjVjLTExLjIgMC0xOS4xIDUuNi0yMy4xIDE2LjVsLTM0LjMgOTQuNy0zMS41LTkyLjJjLTQuNC0xMi41LTEyLjMtMTguOS0yNC4zLTE4LjktMTEuOSAwLTE5LjkgNi40LTI0LjMgMTguOWwtMzEuNSA5Mi4yLTM0LjMtOTUuNXEtNS40LTE1LjctMjIuNy0xNS43Yy02LjggMC0xMi4zIDIuNC0xNy41IDcuMy01LjIgNS4yLTEwLjggMTQuNS00LjggMjguNmw1NS44IDE0NS44YzQgMTEuMyAxMS42IDE2LjkgMjMuMSAxNi45cTE2LjcgMCAyMi43LTE2LjlsMzMuNS05MS44IDMzLjUgOTEuOHE2IDE2LjkgMjIuNyAxNi45YzExLjIgMCAxOS4xLTUuNiAyMy4xLTE2LjlsNTUuOC0xNDUuOGMzLjYtOS4zIDQuNC0xOS4zLTQuOC0yOC42QTIzIDIzIDAgMCAwIDI1NTAuMiAxNTYuNVptNDQ0LjIgODEtMjEuOS05LjNjLTExLjktNC44LTE2LjMtOC41LTE2LjMtMTUuN3EwLTEyLjEgMTYuNy0xMi4xYzEyLjcgMCAxOS41IDcuNyAyNC4zIDEwLjkgNy4yIDUuMiAxOC4zIDYuOCAyNy45LTIgMTAuOC0xMC41IDYuOC0yMy44IDEuMi0zMC42LTEyLjMtMTQuOS0zMC4zLTIyLjItNTMuOC0yMi4yLTE5LjEgMC0zNS4xIDUuMi00Ny40IDE1LjctMTIuMyAxMC41LTE4LjcgMjQuMi0xOC43IDQxLjEgMCAyNC4yIDE1LjkgNDMuNSA0Ny44IDU3LjZsMTkuNSA4LjljMTUuOSA2LjggMTkuMSA5LjcgMTkuMSAxNy43IDAgOS4zLTYuNCAxNC4xLTE5LjUgMTQuMS0xOS4xIDAtMzQuNy0xNC45LTM2LjMtMTYuMS0xMC44LTcuMy0yMS41LTItMjYuMyAyLjgtNi44IDYuNC0xMi43IDIwLjkgMy4yIDM2LjIgNi44IDYuNCAxNS41IDExLjcgMjYuNyAxNS4zYTk0LjYgOTQuNiAwIDAgMCAzMi43IDUuNmMxOS45IDAgMzYuNy01LjIgNDkuOC0xNi4xIDEzLjEtMTAuOSAxOS41LTI1LjQgMTkuNS00My41cTAtMjAuNS0xMi0zMy44QzMwMjIuNyAyNTMuMiAzMDEwLjcgMjQ0LjMgMjk5NC40IDIzNy41Wm0tMjA2LjQgNjguOWgtNjUuN1YyNzIuOWgzOS40YzEyIDAgMjEuMS04LjkgMjEuMS0yMC45IDAtMTIuMS05LjItMjAuOS0yMS4xLTIwLjloLTM5LjRWMjA0LjhoNjIuMWMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42IDAtMTcuNy0xNS41LTIyLjItMjIuNy0yMi4yaC04Ni40Yy0xOS45IDAtMjUuMSAxNy4zLTI1LjEgMjUuNFYzMjYuNWMwIDguMSA1LjIgMjUuNCAyNS4xIDI1LjRoOTBjMTIuNyAwIDIyLjctOS4zIDIyLjctMjIuNkMyODEwLjggMzExLjIgMjc5NS4yIDMwNi4zIDI3ODggMzA2LjNaTTE3OC4zIDQ5LjFjLTUwLjUgMC03NC40IDIwLjctMTE0LjYgMjguN1Y2NUEzMS44IDMxLjggMCAxIDAgMCA2NVY0NDdhMzEuOCAzMS44IDAgMCAwIDYzLjcgMFYxNDEuNGM0MC4yLTggNjQuMS0yOC43IDExNC42LTI4LjcgNjIuNSAwIDg2IDMxLjggMTQ4LjQgMzEuOCAyMC4zIDAgMzUuNC0yLjggNTUuMy05LjJ2MTkxYy0xOS45IDYuNC0zNSA5LjItNTUuMyA5LjItNjIuNSAwLTg2LjQtMzEuOC0xNDguNC0zMS44LTIwLjMgMC0zNi4yIDMuNi01MC45IDhWMzc1LjRhMTU5LjEgMTU5LjEgMCAwIDEgNTAuOS04YzYyLjUgMCA4NiAzMS44IDE0OC40IDMxLjggMzcgMCA1Ni4xLTkuNiAxMTktMzEuOFY0OS4xQzM4Mi44IDcxLjQgMzYzLjcgODAuOSAzMjYuNyA4MC45IDI2NC4yIDgwLjkgMjQwLjQgNDkuMSAxNzguMyA0OS4xWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEE0OCA0OCAwIDAgMCAwIDgwVjQzMmE0OCA0OCAwIDAgMCA0OCA0OEg0MDBhNDggNDggMCAwIDAgNDgtNDhWODBBNDggNDggMCAwIDAgNDAwIDMyWk0zMzYgMzEyYy0zMS42IDExLjItNDEuMiAxNi01OS44IDE2LTMxLjQgMC00My4yLTE2LTc0LjYtMTZhODAgODAgMCAwIDAtMjUuNiA0VjI4NGE4NS45IDg1LjkgMCAwIDEgMjUuNi00YzMxLjIgMCA0My4yIDE2IDc0LjYgMTYgMTAuMiAwIDE3LjgtMS40IDI3LjgtNC42di05NmMtMTAgMy4yLTE3LjYgNC42LTI3LjggNC42LTMxLjQgMC00My4yLTE2LTc0LjYtMTYtMjUuNCAwLTM3LjQgMTAuNC01Ny42IDE0LjRWMzUyYTE2IDE2IDAgMCAxLTMyIDBWMTYwYTE2IDE2IDAgMCAxIDMyIDB2Ni40YzIwLjItNCAzMi4yLTE0LjQgNTcuNi0xNC40IDMxLjIgMCA0My4yIDE2IDc0LjYgMTYgMTguNiAwIDI4LjItNC44IDU5LjgtMTZaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udGljb25zRmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE0LjQgMjI0aDkyLjRsLTE1LjIgNTEuMmgtNzYuNFY0MzNjMCA4LTIuOCA5LjIgNC40IDEwbDU5LjYgNS42VjQ4M0gwdi0zNS4ybDI5LjItMi44YzcuMi0uOCA5LjItMy4yIDkuMi0xMC44VjI3OC40YzAtMy4yLTQtMy4yLTgtMy4ySDBWMjI0aDM4LjR2LTI4LjhjMC02OCAzNi40LTk2IDEwNi05NiA0Ni44IDAgODguOCAxMS4yIDg4LjggNzIuNGwtNjkuNiA4LjRjLjQtMjUuNi02LTMxLjYtMjIuNC0zMS42LTI1LjIgMC0yNiAxMy42LTI2IDM3LjZ2MzJjMCAzLjItNC44IDYtLjggNnpNMzg0IDQ4M0gyNDMuMnYtMzQuNGwyOC0zLjZjNy4yLS44IDEwLjQtMi40IDEwLjQtMTBWMjg3YzAtNS42LTQtOS4yLTkuMi0xMC44bC0zMy4yLTguOCA5LjItNDAuNGgxMTB2MjA4YzAgOC0zLjYgOC44IDQgMTBsMjEuNiAzLjZWNDgzem0tMzAtMzQ3LjJsMTIuNCA0NS42LTEwIDEwLTQyLjgtMjIuOC00Mi44IDIyLjgtMTAtMTAgMTIuNC00NS42LTMwLTM2LjQgNC44LTEwaDM4TDMwNy4yIDUxSDMyMGwyMS4yIDM4LjRoMzhsNC44IDEzLjItMzAgMzMuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250aWNvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMyem0xODcgMTQwLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNHYyMy4zYzAgMi40LTMuNSA0LjQtLjYgNC40aDY3LjRsLTExLjEgMzcuM0gxNjh2MTEyLjljMCA1LjgtMiA2LjcgMy4yIDcuM2w0My41IDQuMXYyNS4xSDg0VjM4OWwyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOVYyNjcuN2MwLTIuMy0yLjktMi4zLTUuOC0yLjNIODRWMjI4aDI4di0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjh2LTI1LjFsMjAuNC0yLjZjNS4yLS42IDcuNi0xLjcgNy42LTcuM1YyNzEuOGMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41aDgwLjJ2MTUxLjdjMCA1LjgtMi42IDYuNCAyLjkgNy4zbDE1LjcgMi42djI1LjF6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNmgyNy43bDE1LjUtMjhoOS4zbDE1LjUgMjhoMjcuN2wzLjUgOS42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnRBd2Vzb21lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAyMzcuNGgtMjIuMmMtMi4xIDAtMy43IDEuNi0zLjcgMy43djUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43SDIwOGMyLjEgMCAzLjctMS42IDMuNy0zLjd2LTUxLjdjMC0yLjEtMS42LTMuNy0zLjctMy43em0xMTguMiAwSDMwNGMtMi4xIDAtMy43IDEuNi0zLjcgMy43djUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43aDIyLjJjMi4xIDAgMy43LTEuNiAzLjctMy43di01MS43Yy0uMS0yLjEtMS43LTMuNy0zLjctMy43em0xMzItMTI1LjFjLTIuMy0zLjItNC42LTYuNC03LjEtOS41LTkuOC0xMi41LTIwLjgtMjQtMzIuOC0zNC40LTQuNS0zLjktOS4xLTcuNi0xMy45LTExLjItMS42LTEuMi0zLjItMi4zLTQuOC0zLjVDMzcyIDM0LjEgMzQwLjMgMjAgMzA2IDEzYy0xNi4yLTMuMy0zMi45LTUtNTAtNXMtMzMuOSAxLjctNTAgNWMtMzQuMyA3LjEtNjYgMjEuMi05My4zIDQwLjgtMS42IDEuMS0zLjIgMi4zLTQuOCAzLjUtNC44IDMuNi05LjQgNy4zLTEzLjkgMTEuMi0zIDIuNi01LjkgNS4zLTguOCA4cy01LjcgNS41LTguNCA4LjRjLTUuNSA1LjctMTAuNyAxMS44LTE1LjYgMTgtMi40IDMuMS00LjggNi4zLTcuMSA5LjVDMjUuMiAxNTMgOC4zIDIwMi41IDguMyAyNTZjMCAyIC4xIDQgLjEgNiAuMS43LjEgMS4zLjEgMiAuMSAxLjMuMSAyLjcuMiA0IDAgLjguMSAxLjUuMSAyLjMgMCAxLjMuMSAyLjUuMiAzLjcuMS44LjEgMS42LjIgMi40LjEgMS4xLjIgMi4zLjMgMy41IDAgLjguMSAxLjYuMiAyLjQuMSAxLjIuMyAyLjQuNCAzLjYuMS44LjIgMS41LjMgMi4zLjEgMS4zLjMgMi42LjUgMy45LjEuNi4yIDEuMy4zIDEuOWwuOSA1LjdjLjEuNi4yIDEuMS4zIDEuNy4zIDEuMy41IDIuNy44IDQgLjIuOC4zIDEuNi41IDIuNC4yIDEgLjUgMi4xLjcgMy4yLjIuOS40IDEuNy42IDIuNi4yIDEgLjQgMiAuNyAzIC4yLjkuNSAxLjguNyAyLjcuMyAxIC41IDEuOS44IDIuOS4zLjkuNSAxLjguOCAyLjcuMi45LjUgMS45LjggMi44cy41IDEuOC44IDIuN2MuMyAxIC42IDEuOS45IDIuOC42IDEuNiAxLjEgMy4zIDEuNyA0LjkuNCAxIC43IDEuOSAxIDIuOC4zIDEgLjcgMiAxLjEgMyAuMy44LjYgMS41LjkgMi4zbDEuMiAzYy4zLjcuNiAxLjUuOSAyLjIuNCAxIC45IDIgMS4zIDNsLjkgMi4xYy41IDEgLjkgMiAxLjQgMyAuMy43LjYgMS4zLjkgMiAuNSAxIDEgMi4xIDEuNSAzLjEuMi42LjUgMS4xLjggMS43LjYgMS4xIDEuMSAyLjIgMS43IDMuMy4xLjIuMi4zLjMuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIuMi40LjUuOC43IDEuMi43IDEuMSAxLjMgMi4yIDIgMy4zLjMuNS42LjkuOSAxLjQuNiAxLjEgMS4zIDIuMSAyIDMuMi4zLjUuNi45LjkgMS40LjcgMS4xIDEuNCAyLjEgMi4xIDMuMi4yLjQuNS44LjggMS4yLjcgMS4xIDEuNSAyLjIgMi4zIDMuMy4yLjIuMy41LjUuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40LjkuMSAxLjcuMyAyLjYuNCAxIC4yIDIuMS40IDMuMS41czEuOS4zIDIuOC40YzEgLjIgMiAuMyAzIC40LjkuMSAxLjkuMiAyLjkuM3MxLjkuMiAyLjkuMyAyLjEuMiAzLjEuM2MuOS4xIDEuOC4xIDIuNy4yIDEuMS4xIDIuMy4xIDMuNC4yLjggMCAxLjcuMSAyLjUuMSAxLjMgMCAyLjYuMSAzLjkuMS43LjEgMS40LjEgMi4xLjEgMiAuMSA0IC4xIDYgLjFzNC0uMSA2LS4xYy43IDAgMS40LS4xIDIuMS0uMSAxLjMgMCAyLjYgMCAzLjktLjEuOCAwIDEuNy0uMSAyLjUtLjEgMS4xLS4xIDIuMy0uMSAzLjQtLjIuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUuOS0uMSAxLjctLjMgMi42LS40IDY1LjYtMTEgMTIyLjUtNDcuNyAxNjAuMS0xMDIuNC4yLS4yLjMtLjUuNS0uNy44LTEuMSAxLjUtMi4yIDIuMy0zLjMuMi0uNC41LS44LjgtMS4yLjctMS4xIDEuNC0yLjEgMi4xLTMuMi4zLS41LjYtLjkuOS0xLjQuNi0xLjEgMS4zLTIuMSAyLTMuMi4zLS41LjYtLjkuOS0xLjQuNy0xLjEgMS4zLTIuMiAyLTMuMy4yLS40LjUtLjguNy0xLjIgMi40LTQgNC42LTguMSA2LjgtMTIuMi4xLS4yLjItLjMuMy0uNS42LTEuMSAxLjEtMi4yIDEuNy0zLjMuMi0uNi41LTEuMS44LTEuNy41LTEgMS0yLjEgMS41LTMuMS4zLS43LjYtMS4zLjktMiAuNS0xIDEtMiAxLjQtM2wuOS0yLjFjLjUtMSAuOS0yIDEuMy0zIC4zLS43LjYtMS41LjktMi4ybDEuMi0zYy4zLS44LjYtMS41LjktMi4zLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45LjMtMSAuNi0xLjkuOS0yLjhzLjUtMS44LjgtMi43Yy4yLS45LjUtMS45LjgtMi44cy42LTEuOC44LTIuN2MuMy0xIC41LTEuOS44LTIuOS4yLS45LjUtMS44LjctMi43LjItMSAuNS0yIC43LTMgLjItLjkuNC0xLjcuNi0yLjYuMi0xIC41LTIuMS43LTMuMi4yLS44LjMtMS42LjUtMi40LjMtMS4zLjYtMi43LjgtNCAuMS0uNi4yLTEuMS4zLTEuN2wuOS01LjdjLjEtLjYuMi0xLjMuMy0xLjkuMS0xLjMuMy0yLjYuNS0zLjkuMS0uOC4yLTEuNS4zLTIuMy4xLTEuMi4zLTIuNC40LTMuNiAwLS44LjEtMS42LjItMi40LjEtMS4xLjItMi4zLjMtMy41LjEtLjguMS0xLjYuMi0yLjQuMSAxLjcuMS41LjItLjcgMC0uOC4xLTEuNS4xLTIuMy4xLTEuMy4yLTIuNy4yLTQgLjEtLjcuMS0xLjMuMS0yIC4xLTIgLjEtNCAuMS02IDAtNTMuNS0xNi45LTEwMy00NS44LTE0My43ek00NDggMzcxLjVjLTkuNCAxNS41LTIwLjYgMjkuOS0zMy42IDQyLjktMjAuNiAyMC42LTQ0LjUgMzYuNy03MS4yIDQ4LTEzLjkgNS44LTI4LjIgMTAuMy00Mi45IDEzLjJ2LTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDB2NzUuOGMtMTQuNy0yLjktMjktNy4zLTQyLjktMTMuMi0yNi43LTExLjMtNTAuNi0yNy40LTcxLjItNDgtMTMtMTMtMjQuMi0yNy40LTMzLjYtNDIuOXYtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMWMyLjEgMCAzLjcgMS42IDMuNyAzLjdWMzI2aDI5LjZWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4xYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN0gyMDhjMi4xIDAgMy43IDEuNiAzLjcgMy43djI1LjloMjkuNVYxODJjMC00LjggNi41LTMuNyA5LjUtMy43Vjg4LjFjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVWOTJjNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjd2NDguNGMwIDUuNi0xOC43IDYuNS0yMi40IDYuNS04LjYgMC0xNi42LTMuNS0yNS40LTMuNS03IDAtMTQuMSAxLjItMjAuOCAyLjh2MzAuN2MzIDAgOS41LTEuMSA5LjUgMy43djI1LjloMjkuNVYxODJjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjJjMi4xIDAgMy43IDEuNiAzLjcgMy43djI1LjloMjkuNVYxODJjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjFjMi4xIDAgMy43IDEuNiAzLjcgMy43djE0NGgyOS41di0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4yYzIuMSAwIDMuNyAxLjYgMy43IDMuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J0QXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODkuMiAyODcuOWgtMjcuNGMtMi42IDAtNC42IDItNC42IDQuNnYzMmgtMzYuNlYxNDYuMmMwLTIuNi0yLTQuNi00LjYtNC42aC0yNy40Yy0yLjYgMC00LjYgMi00LjYgNC42djMyaC0zNi42di0zMmMwLTIuNi0yLTQuNi00LjYtNC42aC0yNy40Yy0yLjYgMC00LjYgMi00LjYgNC42djMyaC0zNi42di0zMmMwLTYtOC00LjYtMTEuNy00LjZ2LTM4YzguMy0yIDE3LjEtMy40IDI1LjctMy40IDEwLjkgMCAyMC45IDQuMyAzMS40IDQuMyA0LjYgMCAyNy43LTEuMSAyNy43LTh2LTYwYzAtMi42LTItNC42LTQuNi00LjYtNS4xIDAtMTUuMSA0LjMtMjQgNC4zLTkuNyAwLTIwLjktNC4zLTMyLjYtNC4zLTggMC0xNiAxLjEtMjMuNyAyLjl2LTQuOWM1LjQtMi42IDkuMS04LjMgOS4xLTE0LjMgMC0yMC43LTMxLjQtMjAuOC0zMS40IDAgMCA2IDMuNyAxMS43IDkuMSAxNC4zdjExMS43Yy0zLjcgMC0xMS43LTEuNC0xMS43IDQuNnYzMmgtMzYuNnYtMzJjMC0yLjYtMi00LjYtNC42LTQuNmgtMjcuNGMtMi42IDAtNC42IDItNC42IDQuNnYzMkgxMjh2LTMyYzAtMi42LTItNC42LTQuNi00LjZIOTZjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MTc4LjNINTQuOHYtMzJjMC0yLjYtMi00LjYtNC42LTQuNkgyMi44Yy0yLjYgMC00LjYgMi00LjYgNC42VjUxMmgxODIuOXYtOTZjMC03Mi42IDEwOS43LTcyLjYgMTA5LjcgMHY5NmgxODIuOVYyOTIuNWMuMS0yLjYtMS45LTQuNi00LjUtNC42em0tMjg4LjEtNC41YzAgMi42LTIgNC42LTQuNiA0LjZoLTI3LjRjLTIuNiAwLTQuNi0yLTQuNi00LjZ2LTY0YzAtMi42IDItNC42IDQuNi00LjZoMjcuNGMyLjYgMCA0LjYgMiA0LjYgNC42djY0em0xNDYuNCAwYzAgMi42LTIgNC42LTQuNiA0LjZoLTI3LjRjLTIuNiAwLTQuNi0yLTQuNi00LjZ2LTY0YzAtMi42IDItNC42IDQuNi00LjZoMjcuNGMyLjYgMCA0LjYgMiA0LjYgNC42djY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnVtYmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOCAzMDkuN0MyIDI5Mi43IDAgMjc1LjUgMCAyNTguMyAwIDEzNSA5OS44IDM1IDIyMy4xIDM1YzE2LjYgMCAzMy4zIDIgNDkuMyA1LjVDMTQ5IDg3LjUgNTEuOSAxODYgNS44IDMwOS43em0zOTIuOS0xODkuMkMzODUgMTAzIDM2OSA4Ny44IDM1MC45IDc1LjJjLTE0OS42IDQ0LjMtMjY2LjMgMTYyLjEtMzA5LjcgMzEyIDEyLjUgMTguMSAyOCAzNS42IDQ1LjIgNDkgNDMuMS0xNTEuMyAxNjEuMi0yNzEuNyAzMTIuMy0zMTUuN3ptMTUuOCAyNTIuN2MxNS4yLTI1LjEgMjUuNC01My43IDI5LjUtODIuOC03OS40IDQyLjktMTQ1IDExMC42LTE4Ny42IDE5MC4zIDMwLTQuNCA1OC45LTE1LjMgODQuNi0zMS4zIDM1IDEzLjEgNzAuOSAyNC4zIDEwNyAzMy42LTkuMy0zNi41LTIwLjQtNzQuNS0zMy41LTEwOS44em0yOS43LTE0NS41Yy0yLjYtMTkuNS03LjktMzguNy0xNS44LTU2LjhDMjkwLjUgMjE2LjcgMTgyIDMyNy41IDEzNy4xIDQ2NmMxOC4xIDcuNiAzNyAxMi41IDU2LjYgMTUuMkMyNDAgMzY3LjEgMzMwLjUgMjc0LjQgNDQ0LjIgMjI3Ljd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm91cnNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzY4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMuMSAzSDQ5LjlDMTIuNCAzIDAgMzEuMyAwIDQ5LjF2NDMzLjhjMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMUMxODAgMzU2LjUgMTgyLjIgMzU0IDE4Mi4yIDM1NGMzLjEtMy40IDMuNC0zLjEgNi44LTMuMWg4My40YzM1LjEgMCA0MC42LTI1LjIgNDQuMy0zOS43bDQ4LjYtMjQzQzM3My44IDI1LjggMzYzLjEgMyAzMjMuMSAzem0tMTYuMyA3My44bC0xMS40IDU5LjdjLTEuMiA2LjUtOS41IDEzLjItMTYuOSAxMy4ySDE3Mi4xYy0xMiAwLTIwLjYgOC4zLTIwLjYgMjAuM3YxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmg5MC40YzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWgtNzMuNWMtMTMuNSAwLTE3LjIgMS44LTI2LjUgMTIuNiAwIDAtOC45IDExLjQtODkuNSAxMDguMy0uOS45LTEuOC42LTEuOC0uM1Y3NS45YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmgyMTljOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyZWVDb2RlQ2FtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05Ny4yMiw5Ni4yMWMxMC4zNi0xMC42NSwxNi0xNy4xMiwxNi0yMS45LDAtMi43Ni0xLjkyLTUuNTEtMy44My03LjQyQTE0LjgxLDE0LjgxLDAsMCwwLDEwMSw2NC4wNWMtOC40OCwwLTIwLjkyLDguNzktMzUuODQsMjUuNjlDMjMuNjgsMTM3LDIuNTEsMTgyLjgxLDMuMzcsMjUwLjM0czE3LjQ3LDExNyw1NC4wNiwxNjEuODdDNzYuMjIsNDM1Ljg2LDkwLjYyLDQ0OCwxMDAuOSw0NDhhMTMuNTUsMTMuNTUsMCwwLDAsOC4zNy0zLjg0YzEuOTEtMi43NiwzLjgxLTUuNjMsMy44MS04LjM4LDAtNS42My0zLjg2LTEyLjItMTMuMi0yMC41NS00NC40NS00Mi4zMy02Ny4zMi05Ny02Ny40OC0xNjVDMzIuMjUsMTg4LjgsNTQsMTM3LjgzLDk3LjIyLDk2LjIxWk0yMzkuNDcsNDIwLjA3Yy41OC4zNy45MS41NS45MS41NVptOTMuNzkuNTUuMTctLjEzQzMzMy4yNCw0MjAuNjIsMzMzLjE3LDQyMC42NywzMzMuMjYsNDIwLjYyWm0zLjEzLTE1OC4xOGMtMTYuMjQtNC4xNSw1MC40MS04Mi44OS02OC4wNS0xNzcuMTcsMCwwLDE1LjU0LDQ5LjM4LTYyLjgzLDE1OS41Ny03NC4yNywxMDQuMzUsMjMuNDYsMTY4LjczLDM0LDE3NS4yMy02LjczLTQuMzUtNDcuNC0zNS43LDkuNTUtMTI4LjY0LDExLTE4LjMsMjUuNTMtMzQuODcsNDMuNS03Mi4xNiwwLDAsMTUuOTEsMjIuNDUsNy42LDcxLjEzQzI4Ny43LDM2NCwzNTQsMzQyLjkxLDM1NSwzNDMuOTRjMjIuNzUsMjYuNzgtMTcuNzIsNzMuNTEtMjEuNTgsNzYuNTUsNS40OS0zLjY1LDExNy43MS03OCwzMy0xODguMUMzNjAuNDMsMjM4LjQsMzUyLjYyLDI2Ni41OSwzMzYuMzksMjYyLjQ0Wk01MTAuODgsODkuNjlDNDk2LDcyLjc5LDQ4My41Miw2NCw0NzUsNjRhMTQuODEsMTQuODEsMCwwLDAtOC4zOSwyLjg0Yy0xLjkxLDEuOTEtMy44Myw0LjY2LTMuODMsNy40MiwwLDQuNzgsNS42LDExLjI2LDE2LDIxLjksNDMuMjMsNDEuNjEsNjUsOTIuNTksNjQuODIsMTU0LjA2LS4xNiw2OC0yMywxMjIuNjMtNjcuNDgsMTY1LTkuMzQsOC4zNS0xMy4xOCwxNC45Mi0xMy4yLDIwLjU1LDAsMi43NSwxLjksNS42MiwzLjgxLDguMzhBMTMuNjEsMTMuNjEsMCwwLDAsNDc1LjEsNDQ4YzEwLjI4LDAsMjQuNjgtMTIuMTMsNDMuNDctMzUuNzksMzYuNTktNDQuODUsNTMuMTQtOTQuMzgsNTQuMDYtMTYxLjg3UzU1Mi4zMiwxMzcsNTEwLjg4LDg5LjY5WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyZWVic2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4yLTExLjEgMTEuMS0zOS40LjktNjMuMS0yMi45LTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMWMtMTYuNiAxNi42IDcuMSA2OS40IDI3LjkgMTA1LjcgMTguNS0zMi4yIDQ0LjgtNTkuMyA3Ni40LTc4Ljd6TTQwNi43IDE3NGMzLjMgMTEuMyAyLjcgMjAuNy0yLjcgMjYuMS0yMC4zIDIwLjMtODcuNS0yNy0xMDkuMy03MC4xLTE4LTMyLjMtMTEuMS01My40IDE0LjktNDguNyA1LjctMy42IDEyLjMtNy42IDE5LjYtMTEuNi0yOS44LTE1LjUtNjMuNi0yNC4zLTk5LjUtMjQuMy0xMTkuMSAwLTIxNS42IDk2LjUtMjE1LjYgMjE1LjYgMCAxMTkgOTYuNSAyMTUuNiAyMTUuNiAyMTUuNlM0NDUuMyAzODAuMSA0NDUuMyAyNjFjMC0zOC40LTEwLjEtNzQuNS0yNy43LTEwNS44LTMuOSA3LTcuNiAxMy4zLTEwLjkgMTguOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGdWxjcnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk1Ljc1IDE2NC4xNGwtMzUuMzggNDMuNTVMMjUgMTY0LjE0bDM1LjM4LTQzLjU1ek0xNDQuMjMgMGwtMjAuNTQgMTk4LjE4TDcyLjcyIDI1Nmw1MSA1Ny44MkwxNDQuMjMgNTEyVjMwMC44OUwxMDMuMTUgMjU2bDQxLjA4LTQ0Ljg5em03OS42NyAxNjQuMTRsMzUuMzggNDMuNTUgMzUuMzgtNDMuNTUtMzUuMzgtNDMuNTV6bS00OC40OCA0N0wyMTYuNSAyNTZsLTQxLjA4IDQ0Ljg5VjUxMkwxOTYgMzEzLjgyIDI0NyAyNTZsLTUxLTU3LjgyTDE3NS40MiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhbGFjdGljUmVwdWJsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDUwNEMxMTEuMjUgNTA0IDAgMzkyLjc1IDAgMjU2UzExMS4yNSA4IDI0OCA4czI0OCAxMTEuMjUgMjQ4IDI0OC0xMTEuMjUgMjQ4LTI0OCAyNDh6bTAtNDc5LjQ3QzEyMC4zNyAyNC41MyAxNi41MyAxMjguMzcgMTYuNTMgMjU2UzEyMC4zNyA0ODcuNDcgMjQ4IDQ4Ny40NyA0NzkuNDcgMzgzLjYzIDQ3OS40NyAyNTYgMzc1LjYzIDI0LjUzIDI0OCAyNC41M3ptMjcuNjIgMjEuODF2MjQuNjJhMTg1LjkzMyAxODUuOTMzIDAgMCAxIDgzLjU3IDM0LjU0bDE3LjM5LTE3LjM2Yy0yOC43NS0yMi4wNi02My4zLTM2Ljg5LTEwMC45Ni00MS44em0tNTUuMzcuMDdjLTM3LjY0IDQuOTQtNzIuMTYgMTkuOC0xMDAuODggNDEuODVsMTcuMjggMTcuMzZoLjA4YzI0LjA3LTE3Ljg0IDUyLjU1LTMwLjA2IDgzLjUyLTM0LjY3VjQ2LjQxem0xMi4yNSA1MC4xN3Y4Mi44N2MtMTAuMDQgMi4wMy0xOS40MiA1Ljk0LTI3LjY3IDExLjQybC01OC42Mi01OC41OS0yMS45MyAyMS45MyA1OC42NyA1OC42N2MtNS40NyA4LjIzLTkuNDUgMTcuNTktMTEuNDcgMjcuNjJoLTgyLjl2MzFoODIuOWMyLjAyIDEwLjAyIDYuMDEgMTkuMzEgMTEuNDcgMjcuNTRsLTU4LjY3IDU4LjY5IDIxLjkzIDIxLjkzIDU4LjYyLTU4LjYyYTc3Ljg3MyA3Ny44NzMgMCAwIDAgMjcuNjcgMTEuNDd2ODIuOWgzMXYtODIuOWMxMC4wNS0yLjAzIDE5LjM3LTYuMDYgMjcuNjItMTEuNTVsNTguNjcgNTguNjkgMjEuOTMtMjEuOTMtNTguNjctNTguNjljNS40Ni04LjIzIDkuNDctMTcuNTIgMTEuNS0yNy41NGg4Mi44N3YtMzFoLTgyLjg3Yy0yLjAyLTEwLjAyLTYuMDMtMTkuMzgtMTEuNS0yNy42Mmw1OC42Ny01OC42Ny0yMS45My0yMS45My01OC42NyA1OC42N2MtOC4yNS01LjQ5LTE3LjU3LTkuNDctMjcuNjItMTEuNVY5Ni41OGgtMzF6bTE4My4yNCAzMC43MmwtMTcuMzYgMTcuMzZhMTg2LjMzNyAxODYuMzM3IDAgMCAxIDM0LjY3IDgzLjY3aDI0LjYyYy00Ljk1LTM3LjY5LTE5LjgzLTcyLjI5LTQxLjkzLTEwMS4wM3ptLTMzNS41NS4xM2MtMjIuMDYgMjguNzItMzYuOTEgNjMuMjYtNDEuODUgMTAwLjkxaDI0LjY1YzQuNi0zMC45NiAxNi43Ni01OS40NSAzNC41OS04My41MmwtMTcuMzktMTcuMzl6TTM4LjM0IDI4My42N2M0LjkyIDM3LjY0IDE5Ljc1IDcyLjE4IDQxLjggMTAwLjlsMTcuMzYtMTcuMzljLTE3LjgxLTI0LjA3LTI5LjkyLTUyLjU3LTM0LjUxLTgzLjUySDM4LjM0em0zOTQuNyAwYy00LjYxIDMwLjk5LTE2LjggNTkuNS0zNC42NyA4My42bDE3LjM2IDE3LjM2YzIyLjA4LTI4Ljc0IDM2Ljk4LTYzLjI5IDQxLjkzLTEwMC45NmgtMjQuNjJ6TTEzNi42NiA0MDYuMzhsLTE3LjM2IDE3LjM2YzI4LjczIDIyLjA5IDYzLjMgMzYuOTggMTAwLjk2IDQxLjkzdi0yNC42NGMtMzAuOTktNC42My01OS41My0xNi43OS04My42LTM0LjY1em0yMjIuNTMuMDVjLTI0LjA5IDE3Ljg0LTUyLjU4IDMwLjA4LTgzLjU3IDM0LjY3djI0LjU3YzM3LjY3LTQuOTIgNzIuMjEtMTkuNzkgMTAwLjk2LTQxLjg1bC0xNy4zMS0xNy4zOWgtLjA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhbGFjdGljU2VuYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OS44NiAzMy40OHYyNi4wN0MyMzYuMjggODAuMTcgMjI2IDE2OC4xNCAyMjUuMzkgMjc0LjljMTEuNzQtMTUuNjIgMTkuMTMtMzMuMzMgMTkuMTMtNDguMjR2LTE2Ljg4Yy0uMDMtNS4zMi43NS0xMC41MyAyLjE5LTE1LjY1LjY1LTIuMTQgMS4zOS00LjA4IDIuNjItNS44MiAxLjIzLTEuNzUgMy40My0zLjc5IDYuNjgtMy43OSAzLjI0IDAgNS40NSAyLjA1IDYuNjggMy43OSAxLjIzIDEuNzUgMS45NyAzLjY4IDIuNjIgNS44MiAxLjQ0IDUuMTIgMi4yMiAxMC4zMyAyLjE5IDE1LjY1djE2Ljg4YzAgMTQuOTEgNy4zOSAzMi42MiAxOS4xMyA0OC4yNC0uNjMtMTA2Ljc2LTEwLjkxLTE5NC43My0yNC40OS0yMTUuMzVWMzMuNDhoLTEyLjI4em0tMjYuMzQgMTQ3Ljc3Yy05LjUyIDIuMTUtMTguNyA1LjE5LTI3LjQ2IDkuMDggOC45IDE2LjEyIDkuNzYgMzIuNjQgMS43MSAzNy4yOS04IDQuNjItMjEuODUtNC4yMy0zMS4zNi0xOS44Mi0xMS41OCA4Ljc5LTIxLjg4IDE5LjMyLTMwLjU2IDMxLjA5IDE0LjczIDkuNjIgMjIuODkgMjIuOTIgMTguMzIgMzAuNjYtNC41NCA3LjctMjAuMDMgNy4xNC0zNS40Ny0uOTYtNS43OCAxMy4yNS05Ljc1IDI3LjUxLTExLjY1IDQyLjQyIDkuNjguMTggMTguNjcgMi4zOCAyNi4xOCA2LjA0IDE3Ljc4LS4zIDMyLjc3LTEuOTYgNDAuNDktNC4yMiA1LjU1LTI2LjM1IDIzLjAyLTQ4LjIzIDQ2LjMyLTU5LjUxLjczLTI1LjU1IDEuODgtNDkuNjcgMy40OC03Mi4wN3ptNjQuOTYgMGMxLjU5IDIyLjQgMi43NSA0Ni41MiAzLjQ3IDcyLjA3IDIzLjI5IDExLjI4IDQwLjc3IDMzLjE2IDQ2LjMyIDU5LjUxIDcuNzIgMi4yNiAyMi43MSAzLjkyIDQwLjQ5IDQuMjIgNy41MS0zLjY2IDE2LjUtNS44NSAyNi4xOC02LjA0LTEuOS0xNC45MS01Ljg2LTI5LjE3LTExLjY1LTQyLjQyLTE1LjQ0IDguMS0zMC45MyA4LjY2LTM1LjQ3Ljk2LTQuNTctNy43NCAzLjYtMjEuMDUgMTguMzItMzAuNjYtOC42OC0xMS43Ny0xOC45OC0yMi4zLTMwLjU2LTMxLjA5LTkuNTEgMTUuNTktMjMuMzYgMjQuNDQtMzEuMzYgMTkuODItOC4wNS00LjY1LTcuMTktMjEuMTYgMS43MS0zNy4yOWExNDcuNDkgMTQ3LjQ5IDAgMCAwLTI3LjQ1LTkuMDh6bS0zMi40OCA4LjZjLTMuMjMgMC01Ljg2IDguODEtNi4wOSAxOS45M2gtLjA1djE2Ljg4YzAgNDEuNDItNDkuMDEgOTUuMDQtOTMuNDkgOTUuMDQtNTIgMC0xMjIuNzUtMS40NS0xNTYuMzcgMjkuMTd2Mi41MWM5LjQyIDE3LjEyIDIwLjU4IDMzLjE3IDMzLjE4IDQ3Ljk3QzQ1LjcgMzgwLjI2IDg0Ljc3IDM2MC40IDE0MS4yIDM2MGM0NS42OCAxLjAyIDc5LjAzIDIwLjMzIDkwLjc2IDQwLjg3LjAxLjAxLS4wMS4wNCAwIC4wNSA3LjY3IDIuMTQgMTUuODUgMy4yMyAyNC4wNCAzLjIxIDguMTkuMDIgMTYuMzctMS4wNyAyNC4wNC0zLjIxLjAxLS4wMS0uMDEtLjA0IDAtLjA1IDExLjc0LTIwLjU0IDQ1LjA4LTM5Ljg1IDkwLjc2LTQwLjg3IDU2LjQzLjM5IDk1LjQ5IDIwLjI2IDEwOC4wMiA0MS4zNSAxMi42LTE0LjggMjMuNzYtMzAuODYgMzMuMTgtNDcuOTd2LTIuNTFjLTMzLjYxLTMwLjYyLTEwNC4zNy0yOS4xNy0xNTYuMzctMjkuMTctNDQuNDggMC05My40OS01My42Mi05My40OS05NS4wNHYtMTYuODhoLS4wNWMtLjIzLTExLjEyLTIuODYtMTkuOTMtNi4wOS0xOS45M3ptMCA5Ni41OWMyMi40MiAwIDQwLjYgMTguMTggNDAuNiA0MC42cy0xOC4xOCA0MC42NS00MC42IDQwLjY1LTQwLjYtMTguMjMtNDAuNi00MC42NWMwLTIyLjQyIDE4LjE4LTQwLjYgNDAuNi00MC42em0wIDcuNjRjLTE4LjE5IDAtMzIuOTYgMTQuNzctMzIuOTYgMzIuOTZTMjM3LjgxIDM2MCAyNTYgMzYwczMyLjk2LTE0Ljc3IDMyLjk2LTMyLjk2LTE0Ljc3LTMyLjk2LTMyLjk2LTMyLjk2em0wIDYuMTRjMTQuODEgMCAyNi44MiAxMi4wMSAyNi44MiAyNi44MnMtMTIuMDEgMjYuODItMjYuODIgMjYuODItMjYuODItMTIuMDEtMjYuODItMjYuODIgMTIuMDEtMjYuODIgMjYuODItMjYuODJ6bS0xMTQuOCA2Ni42N2MtMTAuMTkuMDctMjEuNi4zNi0zMC41IDEuNjYuNDMgNC40MiAxLjUxIDE4LjYzIDcuMTEgMjkuNzYgOS4xMS0yLjU2IDE4LjM2LTMuOSAyNy42Mi0zLjkgNDEuMjguOTQgNzEuNDggMzQuMzUgNzguMjYgNzQuNDdsLjExIDQuN2MxMC40IDEuOTEgMjEuMTkgMi45NCAzMi4yMSAyLjk0IDExLjAzIDAgMjEuODEtMS4wMiAzMi4yMS0yLjk0bC4xMS00LjdjNi43OC00MC4xMiAzNi45OC03My41MyA3OC4yNi03NC40NyA5LjI2IDAgMTguNTEgMS4zNCAyNy42MiAzLjkgNS42LTExLjEzIDYuNjgtMjUuMzQgNy4xMS0yOS43Ni04LjktMS4zLTIwLjMyLTEuNTgtMzAuNS0xLjY2LTE4Ljc2LjQyLTM1LjE5IDQuMTctNDguNjEgOS42Ny0xMi41NCAxNi4wMy0yOS4xNiAzMC4wMy00OS41OCAzMy4wNy0uMDkuMDItLjE3LjA0LS4yNy4wNS0uMDUuMDEtLjExLjA0LS4xNi4wNS01LjI0IDEuMDctMTAuNjMgMS42LTE2LjE5IDEuNi01LjU1IDAtMTAuOTUtLjUzLTE2LjE5LTEuNi0uMDUtLjAxLS4xMS0uMDQtLjE2LS4wNS0uMS0uMDItLjE3LS4wNC0uMjctLjA1LTIwLjQyLTMuMDMtMzcuMDMtMTcuMDQtNDkuNTgtMzMuMDctMTMuNDItNS40OS0yOS44Ni05LjI1LTQ4LjYxLTkuNjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2V0UG9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy42IDY0aC0zNjdDMTguNSA2NCAwIDgyLjUgMCAxMDQuNnYxMzUuMkMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NGMxMjQgMCAyMjMuOC05OS41IDIyMy44LTIyNC4yVjEwNC42YzAtMjIuNC0xNy43LTQwLjYtNDAuNC00MC42em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMEM4OS41IDIyMy42IDg4LjMgMjI3LjQgODguMyAyMDkuM2MwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zIDE2LjkgMCAzMC43IDEzLjggMzAuNyAzMC43IDAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZ0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTcgOEMxMjAgOCA5IDExOSA5IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5NCA4IDI1NyA4em0tNDkuNSAzNzQuOEw4MS44IDI1Ny4xbDEyNS43LTEyNS43IDM1LjIgMzUuNC0yNC4yIDI0LjItMTEuMS0xMS4xLTc3LjIgNzcuMiA3Ny4yIDc3LjIgMjYuNi0yNi42LTUzLjEtNTIuOSAyNC40LTI0LjQgNzcuMiA3Ny4yLTc1IDc1LjJ6bTk5LTIuMmwtMzUuMi0zNS4yIDI0LjEtMjQuNCAxMS4xIDExLjEgNzcuMi03Ny4yLTc3LjItNzcuMi0yNi41IDI2LjUgNTMuMSA1Mi45LTI0LjQgMjQuNC03Ny4yLTc3LjIgNzUtNzVMNDMyLjIgMjU1IDMwNi41IDM4MC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40TDAgMjU2IDE3OS4yIDc2LjhsNDQuOCA0NC44LTI1LjYgMjUuNi0xOS4yLTE5LjItMTI4IDEyOCAxMjggMTI4IDUxLjUtNTEuNS03Ny4xLTc2LjUgMjUuNi0yNS42ek0zMzIuOCA3Ni44TDIzMC40IDE3OS4ybDEwMi40IDEwMi40IDI1LjYtMjUuNi03Ny4xLTc2LjUgNTEuNS01MS41IDEyOCAxMjgtMTI4IDEyOC0xOS4yLTE5LjItMjUuNiAyNS42IDQ0LjggNDQuOEw1MTIgMjU2IDMzMi44IDc2Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS41NSAyMzYuMDVMMjQ0IDQwLjQ1YTI4Ljg3IDI4Ljg3IDAgMCAwLTQwLjgxIDBsLTQwLjY2IDQwLjYzIDUxLjUyIDUxLjUyYzI3LjA2LTkuMTQgNTIuNjggMTYuNzcgNDMuMzkgNDMuNjhsNDkuNjYgNDkuNjZjMzQuMjMtMTEuOCA2MS4xOCAzMSAzNS40NyA1Ni42OS0yNi40OSAyNi40OS03MC4yMS0yLjg3LTU2LTM3LjM0TDI0MC4yMiAxOTl2MTIxLjg1YzI1LjMgMTIuNTQgMjIuMjYgNDEuODUgOS4wOCA1NWEzNC4zNCAzNC4zNCAwIDAgMS00OC41NSAwYy0xNy41Ny0xNy42LTExLjA3LTQ2LjkxIDExLjI1LTU2di0xMjNjLTIwLjgtOC41MS0yNC42LTMwLjc0LTE4LjY0LTQ1TDE0Mi41NyAxMDEgOC40NSAyMzUuMTRhMjguODYgMjguODYgMCAwIDAgMCA0MC44MWwxOTUuNjEgMTk1LjZhMjguODYgMjguODYgMCAwIDAgNDAuOCAwbDE5NC42OS0xOTQuNjlhMjguODYgMjguODYgMCAwIDAgMC00MC44MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAwLjU5IDMzNC4yNGM0OC41NyAzLjMxIDU4Ljk1IDIuMTEgNTguOTUgMTEuOTQgMCAyMC02NS41NSAyMC4wNi02NS41NSAxLjUyLjAxLTUuMDkgMy4yOS05LjQgNi42LTEzLjQ2em0yNy45NS0xMTYuNjRjLTMyLjI5IDAtMzMuNzUgNDQuNDctLjc1IDQ0LjQ3IDMyLjUxIDAgMzEuNzEtNDQuNDcuNzUtNDQuNDd6TTQ0OCA4MHYzNTJhNDggNDggMCAwIDEtNDggNDhINDhhNDggNDggMCAwIDEtNDgtNDhWODBhNDggNDggMCAwIDEgNDgtNDhoMzUyYTQ4IDQ4IDAgMCAxIDQ4IDQ4em0tMjI3IDY5LjMxYzAgMTQuNDkgOC4zOCAyMi44OCAyMi44NiAyMi44OCAxNC43NCAwIDIzLjEzLTguMzkgMjMuMTMtMjIuODhTMjU4LjYyIDEyNyAyNDMuODggMTI3Yy0xNC40OCAwLTIyLjg4IDcuODQtMjIuODggMjIuMzF6TTE5OS4xOCAxOTVoLTQ5LjU1Yy0yNS02LjU1LTgxLjU2LTQuODUtODEuNTYgNDYuNzUgMCAxOC44IDkuNCAzMiAyMS44NSAzOC4xMUM3NC4yMyAyOTQuMjMgNjYuOCAzMDEgNjYuOCAzMTAuNmMwIDYuODcgMi43OSAxMy4yMiAxMS4xOCAxNi43Ni04LjkgOC40LTE0IDE0LjQ4LTE0IDI1LjkyQzY0IDM3My4zNSA4MS41MyAzODUgMTI3LjUyIDM4NWM0NC4yMiAwIDY5Ljg3LTE2LjUxIDY5Ljg3LTQ1LjczIDAtMzYuNjctMjguMjMtMzUuMzItOTQuNzctMzkuMzhsOC4zOC0xMy40M2MxNyA0Ljc0IDc0LjE5IDYuMjMgNzQuMTktNDIuNDMgMC0xMS42OS00LjgzLTE5LjgyLTkuNC0yNS42N2wyMy4zOC0xLjc4em04NC4zNCAxMDkuODRsLTEzLTEuNzhjLTMuODItLjUxLTQuMDctMS00LjA3LTUuMDlWMTkyLjUyaC01Mi42bC0yLjc5IDIwLjU3YzE1Ljc1IDUuNTUgMTcgNC44NiAxNyAxMC4xN1YyOThjMCA1LjYyLS4zMSA0LjU4LTE3IDYuODd2MjAuMDZoNzIuNDJ6TTM4NCAzMTVsLTYuODctMjIuMzdjLTQwLjkzIDE1LjM3LTM3Ljg1LTEyLjQxLTM3Ljg1LTE2Ljczdi02MC43MmgzNy44NXYtMjUuNDFoLTM1LjgyYy0yLjg3IDAtMiAyLjUyLTItMzguNjNoLTI0LjE4Yy0yLjc5IDI3LjctMTEuNjggMzguODgtMzQgNDEuNDJ2MjIuNjJjMjAuNDcgMCAxOS44Mi0uODUgMTkuODIgMi41NHY2Ni41N2MwIDI4LjcyIDExLjQzIDQwLjkxIDQxLjY3IDQwLjkxIDE0LjQ1IDAgMzAuNDUtNC44MyA0MS4zOC0xMC4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYuMjkgMTU4LjM5SDEzN0M5NyAxNDcuOSA2LjUxIDE1MC42MyA2LjUxIDIzMy4xOGMwIDMwLjA5IDE1IDUxLjIzIDM1IDYxLTI1LjEgMjMtMzcgMzMuODUtMzcgNDkuMjEgMCAxMSA0LjQ3IDIxLjE0IDE3Ljg5IDI2LjgxQzguMTMgMzgzLjYxIDAgMzkzLjM1IDAgNDExLjY1YzAgMzIuMTEgMjguMDUgNTAuODIgMTAxLjYzIDUwLjgyIDcwLjc1IDAgMTExLjc5LTI2LjQyIDExMS43OS03My4xOCAwLTU4LjY2LTQ1LjE2LTU2LjUtMTUxLjYzLTYzbDEzLjQzLTIxLjU1YzI3LjI3IDcuNTggMTE4LjcgMTAgMTE4LjctNjcuODkgMC0xOC43LTcuNzMtMzEuNzEtMTUtNDEuMDdsMzcuNDEtMi44NHptLTYzLjQyIDI0MS45YzAgMzIuMDYtMTA0Ljg5IDMyLjEtMTA0Ljg5IDIuNDMgMC04LjE0IDUuMjctMTUgMTAuNTctMjEuNTQgNzcuNzEgNS4zIDk0LjMyIDMuMzcgOTQuMzIgMTkuMTF6bS01MC44MS0xMzQuNThjLTUyLjggMC01MC40Ni03MS4xNiAxLjItNzEuMTYgNDkuNTQgMCA1MC44MiA3MS4xNi0xLjIgNzEuMTZ6bTEzMy4zIDEwMC41MXYtMzIuMWMyNi43NS0zLjY2IDI3LjI0LTIgMjcuMjQtMTFWMjAzLjYxYzAtOC41LTIuMDUtNy4zOC0yNy4yNC0xNi4yNmw0LjQ3LTMyLjkySDMyNHYxNjguNzFjMCA2LjUxLjQgNy4zMiA2LjUxIDguMTRsMjAuNzMgMi44NHYzMi4xem01Mi40NS0yNDQuMzFjLTIzLjE3IDAtMzYuNTktMTMuNDMtMzYuNTktMzYuNjFzMTMuNDItMzUuNzcgMzYuNTktMzUuNzdjMjMuNTggMCAzNyAxMi42MiAzNyAzNS43N3MtMTMuNDIgMzYuNjEtMzcgMzYuNjF6TTUxMiAzNTAuNDZjLTE3LjQ5IDguNTMtNDMuMSAxNi4yNi02Ni4yOCAxNi4yNi00OC4zOCAwLTY2LjY3LTE5LjUtNjYuNjctNjUuNDZWMTk0Ljc1YzAtNS40MiAxLjA1LTQuMDYtMzEuNzEtNC4wNlYxNTQuNWMzNS43OC00LjA3IDUwLTIyIDU0LjQ3LTY2LjI3aDM4LjYzYzAgNjUuODMtMS4zNCA2MS44MSAzLjI2IDYxLjgxSDUwMXY0MC42NWgtNjAuNTZ2OTcuMTVjMCA2LjkyLTQuOTIgNTEuNDEgNjAuNTcgMjYuODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xIDMyOC43YzAgMjAuOS0xMC45IDU1LjEtMzYuNyA1NS4xcy0zNi43LTM0LjItMzYuNy01NS4xIDEwLjktNTUuMSAzNi43LTU1LjEgMzYuNyAzNC4yIDM2LjcgNTUuMXpNNDgwIDI3OC4yYzAgMzEuOS0zLjIgNjUuNy0xNy41IDk1LTM3LjkgNzYuNi0xNDIuMSA3NC44LTIxNi43IDc0LjgtNzUuOCAwLTE4Ni4yIDIuNy0yMjUuNi03NC44LTE0LjYtMjktMjAuMi02My4xLTIwLjItOTUgMC00MS45IDEzLjktODEuNSA0MS41LTExMy42LTUuMi0xNS44LTcuNy0zMi40LTcuNy00OC44IDAtMjEuNSA0LjktMzIuMyAxNC42LTUxLjggNDUuMyAwIDc0LjMgOSAxMDguOCAzNiAyOS02LjkgNTguOC0xMCA4OC43LTEwIDI3IDAgNTQuMiAyLjkgODAuNCA5LjIgMzQtMjYuNyA2My0zNS4yIDEwNy44LTM1LjIgOS44IDE5LjUgMTQuNiAzMC4zIDE0LjYgNTEuOCAwIDE2LjQtMi42IDMyLjctNy43IDQ4LjIgMjcuNSAzMi40IDM5IDcyLjMgMzkgMTE0LjJ6bS02NC4zIDUwLjVjMC00My45LTI2LjctODIuNi03My41LTgyLjYtMTguOSAwLTM3IDMuNC01NiA2LTE0LjkgMi4zLTI5LjggMy4yLTQ1LjEgMy4yLTE1LjIgMC0zMC4xLS45LTQ1LjEtMy4yLTE4LjctMi42LTM3LTYtNTYtNi00Ni44IDAtNzMuNSAzOC43LTczLjUgODIuNiAwIDg3LjggODAuNCAxMDEuMyAxNTAuNCAxMDEuM2g0OC4yYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXRodWJTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjc3LjMgNDE1LjdjLTguNCAxLjUtMTEuNS0zLjctMTEuNS04IDAtNS40LjItMzMgLjItNTUuMyAwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43IDM3LTQuMSA3Ni05LjIgNzYtNzMuMSAwLTE4LjItNi41LTI3LjMtMTcuMS0zOSAxLjctNC4zIDcuNC0yMi0xLjctNDUtMTMuOS00LjMtNDUuNyAxNy45LTQ1LjcgMTcuOS0xMy4yLTMuNy0yNy41LTUuNi00MS42LTUuNi0xNC4xIDAtMjguNCAxLjktNDEuNiA1LjYgMCAwLTMxLjgtMjIuMi00NS43LTE3LjktOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1LTEwLjYgMTEuNy0xNS42IDIwLjgtMTUuNiAzOSAwIDYzLjYgMzcuMyA2OSA3NC4zIDczLjEtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjMtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45LTkuMS0xNS44LTI1LjUtMTcuMS0yNS41LTE3LjEtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMiAxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMiA5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43IDAgMTMuOS4yIDM2LjUuMiA0MC42IDAgNC4zLTMgOS41LTExLjUgOC02Ni0yMi4xLTExMi4yLTg0LjktMTEyLjItMTU4LjMgMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41UzM4OCAxNjUuNiAzODggMjU3LjRjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zem0tOTguMS02MS4xYy0xLjkuNC0zLjctLjQtMy45LTEuNy0uMi0xLjUgMS4xLTIuOCAzLTMuMiAxLjktLjIgMy43LjYgMy45IDEuOS4zIDEuMy0xIDIuNi0zIDN6bS05LjUtLjljMCAxLjMtMS41IDIuNC0zLjUgMi40LTIuMi4yLTMuNy0uOS0zLjctMi40IDAtMS4zIDEuNS0yLjQgMy41LTIuNCAxLjktLjIgMy43LjkgMy43IDIuNHptLTEzLjctMS4xYy0uNCAxLjMtMi40IDEuOS00LjEgMS4zLTEuOS0uNC0zLjItMS45LTIuOC0zLjIuNC0xLjMgMi40LTEuOSA0LjEtMS41IDIgLjYgMy4zIDIuMSAyLjggMy40em0tMTIuMy01LjRjLS45IDEuMS0yLjguOS00LjMtLjYtMS41LTEuMy0xLjktMy4yLS45LTQuMS45LTEuMSAyLjgtLjkgNC4zLjYgMS4zIDEuMyAxLjggMy4zLjkgNC4xem0tOS4xLTkuMWMtLjkuNi0yLjYgMC0zLjctMS41cy0xLjEtMy4yIDAtMy45YzEuMS0uOSAyLjgtLjIgMy43IDEuMyAxLjEgMS41IDEuMSAzLjMgMCA0LjF6bS02LjUtOS43Yy0uOS45LTIuNC40LTMuNS0uNi0xLjEtMS4zLTEuMy0yLjgtLjQtMy41LjktLjkgMi40LS40IDMuNS42IDEuMSAxLjMgMS4zIDIuOC40IDMuNXptLTYuNy03LjRjLS40LjktMS43IDEuMS0yLjguNC0xLjMtLjYtMS45LTEuNy0xLjUtMi42LjQtLjYgMS41LS45IDIuOC0uNCAxLjMuNyAxLjkgMS44IDEuNSAyLjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NS45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zLjMtNS42LTEuMy01LjYtMy42IDAtMiAyLjMtMy42IDUuMi0zLjYgMy0uMyA1LjYgMS4zIDUuNiAzLjZ6bS0zMS4xLTQuNWMtLjcgMiAxLjMgNC4zIDQuMyA0LjkgMi42IDEgNS42IDAgNi4yLTJzLTEuMy00LjMtNC4zLTUuMmMtMi42LS43LTUuNS4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkuNy00LjkgMi42LTQuNiA0LjkuMyAyIDIuOSAzLjMgNS45IDIuNiAyLjktLjcgNC45LTIuNiA0LjYtNC42LS4zLTEuOS0zLTMuMi01LjktMi45ek0yNDQuOCA4QzEwNi4xIDggMCAxMTMuMyAwIDI1MmMwIDExMC45IDY5LjggMjA1LjggMTY5LjUgMjM5LjIgMTIuOCAyLjMgMTcuMy01LjYgMTcuMy0xMi4xIDAtNi4yLS4zLTQwLjQtLjMtNjEuNCAwIDAtNzAgMTUtODQuNy0yOS44IDAgMC0xMS40LTI5LjEtMjcuOC0zNi42IDAgMC0yMi45LTE1LjcgMS42LTE1LjQgMCAwIDI0LjkgMiAzOC42IDI1LjggMjEuOSAzOC42IDU4LjYgMjcuNSA3Mi45IDIwLjkgMi4zLTE2IDguOC0yNy4xIDE2LTMzLjctNTUuOS02LjItMTEyLjMtMTQuMy0xMTIuMy0xMTAuNSAwLTI3LjUgNy42LTQxLjMgMjMuNi01OC45LTIuNi02LjUtMTEuMS0zMy4zIDIuNi02Ny45IDIwLjktNi41IDY5IDI3IDY5IDI3IDIwLTUuNiA0MS41LTguNSA2Mi44LTguNXM0Mi44IDIuOSA2Mi44IDguNWMwIDAgNDguMS0zMy42IDY5LTI3IDEzLjcgMzQuNyA1LjIgNjEuNCAyLjYgNjcuOSAxNiAxNy43IDI1LjggMzEuNSAyNS44IDU4LjkgMCA5Ni41LTU4LjkgMTA0LjItMTE0LjggMTEwLjUgOS4yIDcuOSAxNyAyMi45IDE3IDQ2LjQgMCAzMy43LS4zIDc1LjQtLjMgODMuNiAwIDYuNSA0LjYgMTQuNCAxNy4zIDEyLjFDNDI4LjIgNDU3LjggNDk2IDM2Mi45IDQ5NiAyNTIgNDk2IDExMy4zIDM4My41IDggMjQ0LjggOHpNOTcuMiAzNTIuOWMtMS4zIDEtMSAzLjMuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zLjMgMi45IDIuMyAzLjkgMS42IDEgMy42LjcgNC4zLS43LjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMy43em0zMi40IDM1LjZjLTEuNiAxLjMtMSA0LjMgMS4zIDYuMiAyLjMgMi4zIDUuMiAyLjYgNi41IDEgMS4zLTEuMy43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOSAxLjYgMi4zIDQuMyAzLjMgNS42IDIuMyAxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXRrcmFrZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY1LjcgMTE4LjFjLTIuMy02LjEtOS4zLTkuMi0xNS4zLTYuNi01LjcgMi40LTguNSA4LjktNi4zIDE0LjYgMTAuOSAyOSAxNi45IDYwLjUgMTYuOSA5My4zIDAgMTM0LjYtMTAwLjMgMjQ1LjctMjMwLjIgMjYyLjdWMzU4LjRjNy45LTEuNSAxNS41LTMuNiAyMy02LjJ2MTA0YzEwNi43LTI1LjkgMTg1LjktMTIyLjEgMTg1LjktMjM2LjggMC05MS44LTUwLjgtMTcxLjgtMTI1LjgtMjEzLjMtNS43LTMuMi0xMy0uOS0xNS45IDUtMi43IDUuNS0uNiAxMi4yIDQuNyAxNS4xIDY3LjkgMzcuNiAxMTMuOSAxMTAgMTEzLjkgMTkzLjIgMCA5My4zLTU3LjkgMTczLjEtMTM5LjggMjA1LjR2LTkyLjJjMTQuMi00LjUgMjQuOS0xNy43IDI0LjktMzMuNSAwLTEzLjEtNi44LTI0LjQtMTcuMy0zMC41IDguMy03OS41IDQ0LjUtNTguNiA0NC41LTgzLjlWMTcwYzAtMzgtODcuOS0xNjEuOC0xMjktMTY0LjctMi41LS4yLTUtLjItNy42IDBDMjUxLjEgOC4zIDE2My4yIDEzMiAxNjMuMiAxNzB2MTQuOGMwIDI1LjMgMzYuMyA0LjMgNDQuNSA4My45LTEwLjYgNi4xLTE3LjMgMTcuNC0xNy4zIDMwLjUgMCAxNS44IDEwLjYgMjkgMjQuOCAzMy41djkyLjJjLTgxLjktMzIuMi0xMzkuOC0xMTItMTM5LjgtMjA1LjQgMC04My4xIDQ2LTE1NS41IDExMy45LTE5My4yIDUuNC0zIDcuNC05LjYgNC43LTE1LjEtMi45LTUuOS0xMC4xLTguMi0xNS45LTUtNzUgNDEuNS0xMjUuOCAxMjEuNS0xMjUuOCAyMTMuMyAwIDExNC43IDc5LjIgMjEwLjggMTg1LjkgMjM2Ljh2LTEwNGM3LjYgMi41IDE1LjEgNC42IDIzIDYuMnYxMjMuN0MxMzEuNCA0NjUuMiAzMSAzNTQuMSAzMSAyMTkuNWMwLTMyLjggNi02NC4zIDE2LjktOTMuMyAyLjItNS44LS42LTEyLjItNi4zLTE0LjYtNi0yLjYtMTMgLjQtMTUuMyA2LjZDMTQuNSAxNDkuNyA4IDE4My44IDggMjE5LjVjMCAxNTUuMSAxMjIuNiAyODEuNiAyNzYuMyAyODcuOFYzNjEuNGM2LjguNCAxNSAuNSAyMy40IDB2MTQ1LjhDNDYxLjQgNTAxLjEgNTg0IDM3NC42IDU4NCAyMTkuNWMwLTM1LjctNi41LTY5LjgtMTguMy0xMDEuNHpNMzY1LjkgMjc1LjVjMTMgMCAyMy43IDEwLjUgMjMuNyAyMy43IDAgMTMuMS0xMC42IDIzLjctMjMuNyAyMy43LTEzIDAtMjMuNy0xMC41LTIzLjctMjMuNyAwLTEzLjEgMTAuNi0yMy43IDIzLjctMjMuN3ptLTEzOS44IDQ3LjNjLTEzLjIgMC0yMy43LTEwLjctMjMuNy0yMy43czEwLjUtMjMuNyAyMy43LTIzLjdjMTMuMSAwIDIzLjcgMTAuNiAyMy43IDIzLjcgMCAxMy0xMC41IDIzLjctMjMuNyAyMy43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGxhYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuMiAyNC45Yy0zLjEtOC45LTE1LjctOC45LTE4LjkgMEwyOS44IDE5OS43aDEzMmMtLjEgMC01Ni42LTE3NC44LTU2LjYtMTc0Ljh6TS45IDI4Ny43Yy0yLjYgOCAuMyAxNi45IDcuMSAyMmwyNDcuOSAxODQtMjI2LjItMjk0em0xNjAuOC04OGw5NC4zIDI5NCA5NC4zLTI5NHptMzQ5LjQgODhsLTI4LjgtODgtMjI2LjMgMjk0IDI0Ny45LTE4NGM2LjktNS4xIDkuNy0xNCA3LjItMjJ6TTQyNS43IDI0LjljLTMuMS04LjktMTUuNy04LjktMTguOSAwbC01Ni42IDE3NC44aDEzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjYuNCAzMjIuNUgxNlYwaDUwLjR2MzIyLjV6TTE2Ni45IDc2LjFoLTUwLjRWNTEyaDUwLjRWNzYuMXptMTAwLjYgMGgtNTAuNFY1MTJoNTAuNFY3Ni4xek0zNjggNzZoLTUwLjR2MjQ3SDM2OFY3NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGlkZUcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjEgMjExLjJjLTMuNS0xLjQtMTEuNi0zLjgtMTUuNC0zLjgtMzcuMSAwLTYyLjIgMTYuOC05My41IDM0LjVsLS45LS45YzctNDcuMyAyMy41LTkxLjkgMjMuNS0xNDAuNEMzMjAuOCAyOS4xIDI4Mi42IDAgMjEyLjQgMCA5Ny4zIDAgMzkgMTEzLjcgMzkgMTk4LjQgMzkgMjg2LjMgOTAuMyAzMzUgMTc3LjYgMzM1YzEyIDAgMTEtMSAxMSAzLjgtMTYuOSAxMjguOS05MC44IDEzMy4xLTkwLjggOTQuNiAwLTM5LjIgNDUtNTguNiA0NS41LTYxLS4zLTEyLjItNDctMjcuNi01OC45LTI3LjYtMzMuOS4xLTUyLjQgNTEuMi01Mi40IDc5LjNDMzIgNDc2IDY0LjggNTEyIDExNy41IDUxMmM3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40em0tMTc1LjMtODQuNGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGlkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTIuOCAxNDguNmMwIDguOC0xLjYgMTcuNy0zLjQgMjYuNC01LjggMjcuOC0xMS42IDU1LjgtMTcuMyA4My42LTEuNCA2LjMtOC4zIDQuOS0xMy43IDQuOS0yMy44IDAtMzAuNS0yNi0zMC41LTQ1LjUgMC0yOS4zIDExLjItNjguMSAzOC41LTgzLjEgNC4zLTIuNSA5LjItNC4yIDE0LjEtNC4yIDExLjQgMCAxMi4zIDguMyAxMi4zIDE3Ljl6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTY0IDE4N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOC4xIDQuMS0xLjcgNC4xLTMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb2ZvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQwMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI0IDMxOS44aC0xMy4ydjM0LjdjLTI0LjUgMjMuMS01Ni4zIDM1LjgtODkuOSAzNS44LTczLjIgMC0xMzIuNC02MC4yLTEzMi40LTEzNC40IDAtNzQuMSA1OS4yLTEzNC40IDEzMi40LTEzNC40IDM1LjMgMCA2OC42IDE0IDkzLjYgMzkuNGw2Mi4zLTYzLjNDMzM1IDU1LjMgMjc5LjcgMzIgMjIwLjcgMzIgOTggMzIgMCAxMzIuNiAwIDI1NmMwIDEyMi41IDk3IDIyNCAyMjAuNyAyMjQgNjMuMiAwIDEyNC41LTI2LjIgMTcxLTgyLjUtMi0yNy42LTEzLjQtNzcuNy02Ny43LTc3Ljd6bS0xMi4xLTExMi41SDIwNS42djg5SDMyNGMzMy41IDAgNjAuNSAxNS4xIDc2IDQxLjh2LTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29kcmVhZHNHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjYgNDAzLjNoMi44YzEyLjcgMCAyNS41IDAgMzguMi4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUuMS01LjguMy00Ny0uMi01Mi44bC0uOS0uM2MtLjggMS41LTEuNyAyLjktMi41IDQuNC0yMi4xIDQzLjEtNjEuMyA2Ny40LTEwNS40IDY5LjEtMTAzIDQtMTY5LjQtNTctMTcyLTE3Ni4yLS41LTIzLjcgMS44LTQ2LjkgOC4zLTY5LjdDNTguMyA0Ny43IDExMi4zLjYgMTkxLjYgMGM2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMy41IDEuMSAxLjMgMi4zIDIuNCAxLjlWMTAuNmg0NC4zYzAgMjgwLjMuMSAzMzIuMi4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xODguOSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2RyZWFkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTkuOSAxOTEuMmM1LjEgMzcuMy00LjcgNzktMzUuOSAxMDAuNy0yMi4zIDE1LjUtNTIuOCAxNC4xLTcwLjggNS43LTM3LjEtMTcuMy00OS41LTU4LjYtNDYuOC05Ny4yIDQuMy02MC45IDQwLjktODcuOSA3NS4zLTg3LjUgNDYuOS0uMiA3MS44IDMxLjggNzguMiA3OC4zek00NDggODh2MzM2YzAgMzAuOS0yNS4xIDU2LTU2IDU2SDU2Yy0zMC45IDAtNTYtMjUuMS01Ni01NlY4OGMwLTMwLjkgMjUuMS01NiA1Ni01NmgzMzZjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNoLTI5djQwLjNjLS44LjMtMS4yLS41LTEuNi0xLjItOS42LTIwLjctMzUuOS00Ni4zLTc2LTQ2LTUxLjkuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMi41LTEgMS4xLTEuOSAxLjctMi45LjIuMS40LjEuNi4yLjMgMy44LjIgMzAuNy4xIDM0LjUtLjIgMTQuOC0yIDI5LjUtNy4yIDQzLjUtNy44IDIxLTIyLjMgMzQuNy00NC41IDM5LjUtMTcuOCAzLjktMzUuNiAzLjgtNTMuMi0xLjItMjEuNS02LjEtMzYuNS0xOS00MS4xLTQxLjgtLjMtMS42LTEuMy0xLjMtMi4zLTEuM2gtMjYuOGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM5IDMxNC45TDE3NS40IDMyaDE2MS4ybDE2My42IDI4Mi45SDMzOXptLTEzNy41IDIzLjZMMTIwLjkgNDgwaDMxMC41TDUxMiAzMzguNUgyMDEuNXpNMTU0LjEgNjcuNEwwIDMzOC41IDgwLjYgNDgwIDIzNyAyMDguOCAxNTQuMSA2Ny40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuNzIsMjE1djQxLjI1aDU3LjFhNDkuNjYsNDkuNjYsMCwwLDEtMjEuMTQsMzIuNmMtOS41NCw2LjU1LTIxLjcyLDEwLjI4LTM2LDEwLjI4LTI3LjYsMC01MC45My0xOC45MS01OS4zLTQ0LjIyYTY1LjYxLDY1LjYxLDAsMCwxLDAtNDFsMCwwYzguMzctMjUuNDYsMzEuNy00NC4zNyw1OS4zLTQ0LjM3YTU2LjQzLDU2LjQzLDAsMCwxLDQwLjUxLDE2LjA4TDE3Ni40NywxNTVhMTAxLjI0LDEwMS4yNCwwLDAsMC03MC43NS0yNy44NCwxMDUuNTUsMTA1LjU1LDAsMCwwLTk0LjM4LDU5LjExLDEwNy42NCwxMDcuNjQsMCwwLDAsMCw5Ni4xOHYuMTVhMTA1LjQxLDEwNS40MSwwLDAsMCw5NC4zOCw1OWMyOC40NywwLDUyLjU1LTkuNTMsNzAtMjUuOTEsMjAtMTguNjEsMzEuNDEtNDYuMTUsMzEuNDEtNzguOTFBMTMzLjc2LDEzMy43NiwwLDAsMCwyMDUuMzgsMjE1Wm0zODkuNDEtNGMtMTAuMTMtOS4zOC0yMy45My0xNC4xNC00MS4zOS0xNC4xNC0yMi40NiwwLTM5LjM0LDguMzQtNTAuNSwyNC44NmwyMC44NSwxMy4yNnExMS40NS0xNywzMS4yNi0xN2EzNC4wNSwzNC4wNSwwLDAsMSwyMi43NSw4Ljc5QTI4LjE0LDI4LjE0LDAsMCwxLDQ4Ny43OSwyNDh2NS41MWMtOS4xLTUuMDctMjAuNTUtNy43NS0zNC42NC03Ljc1LTE2LjQ0LDAtMjkuNjUsMy44OC0zOS40OSwxMS43N3MtMTQuODIsMTguMzEtMTQuODIsMzEuNTZhMzkuNzQsMzkuNzQsMCwwLDAsMTMuOTQsMzEuMjdjOS4yNSw4LjM0LDIxLDEyLjUxLDM0Ljc5LDEyLjUxLDE2LjI5LDAsMjkuMjEtNy4zLDM5LTIxLjg5aDF2MTcuNzJoMjIuNjFWMjUwQzUxMC4yNSwyMzMuNDUsNTA1LjI2LDIyMC4zNCw0OTUuMTMsMjExWk00NzUuOSwzMDAuM2EzNy4zMiwzNy4zMiwwLDAsMS0yNi41NywxMS4xNkEyOC42MSwyOC42MSwwLDAsMSw0MzEsMzA1LjIxYTE5LjQxLDE5LjQxLDAsMCwxLTcuNzctMTUuNjNjMC03LDMuMjItMTIuODEsOS41NC0xNy40MnMxNC41My03LDI0LjA3LTdDNDcwLDI2NSw0ODAuMywyNjgsNDg3LjY0LDI3My45NCw0ODcuNjQsMjg0LjA3LDQ4My42OCwyOTIuODUsNDc1LjksMzAwLjNabS05My42NS0xNDJBNTUuNzEsNTUuNzEsMCwwLDAsMzQxLjc0LDE0MkgyNzkuMDdWMzI4Ljc0SDMwMi43VjI1My4xaDM5YzE2LDAsMjkuNS01LjM2LDQwLjUxLTE1LjkzLjg4LS44OSwxLjc2LTEuNzksMi42NS0yLjY4QTU0LjQ1LDU0LjQ1LDAsMCwwLDM4Mi4yNSwxNTguMjZabS0xNi41OCw2Mi4yM2EzMC42NSwzMC42NSwwLDAsMS0yMy4zNCw5LjY4SDMwMi43VjE2NWgzOS42M2EzMiwzMiwwLDAsMSwyMi42LDkuMjNBMzMuMTgsMzMuMTgsMCwwLDEsMzY1LjY3LDIyMC40OVpNNjE0LjMxLDIwMSw1NzcuNzcsMjkyLjdoLS40NUw1MzkuOSwyMDFINTE0LjIxTDU2NiwzMjAuNTVsLTI5LjM1LDY0LjMySDU2MUw2NDAsMjAxWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI1LjMgMjM0LjNMMTA0LjYgMTNsMjgwLjggMTYxLjItNjAuMSA2MC4xek00NyAwQzM0IDYuOCAyNS4zIDE5LjIgMjUuMyAzNS4zdjQ0MS4zYzAgMTYuMSA4LjcgMjguNSAyMS43IDM1LjNsMjU2LjYtMjU2TDQ3IDB6bTQyNS4yIDIyNS42bC01OC45LTM0LjEtNjUuNyA2NC41IDY1LjcgNjQuNSA2MC4xLTM0LjFjMTgtMTQuMyAxOC00Ni41LTEuMi02MC44ek0xMDQuNiA0OTlsMjgwLjgtMTYxLjItNjAuMS02MC4xTDEwNC42IDQ5OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQbHVzRyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODYuMDYxIDIyOC40OTZjMS44MzQgOS42OTIgMy4xNDMgMTkuMzg0IDMuMTQzIDMxLjk1NkMzODkuMjA0IDM3MC4yMDUgMzE1LjU5OSA0NDggMjA0LjggNDQ4Yy0xMDYuMDg0IDAtMTkyLTg1LjkxNS0xOTItMTkyczg1LjkxNi0xOTIgMTkyLTE5MmM1MS44NjQgMCA5NS4wODMgMTguODU5IDEyOC42MTEgNTAuMjkybC01Mi4xMjYgNTAuMDNjLTE0LjE0NS0xMy42MjEtMzkuMDI4LTI5LjU5OS03Ni40ODUtMjkuNTk5LTY1LjQ4NCAwLTExOC45MiA1NC4yMjEtMTE4LjkyIDEyMS4yNzcgMCA2Ny4wNTYgNTMuNDM2IDEyMS4yNzcgMTE4LjkyIDEyMS4yNzcgNzUuOTYxIDAgMTA0LjUxMy01NC43NDUgMTA4Ljk2NS04Mi43NzNIMjA0Ljh2LTY2LjAwOWgxODEuMjYxem0xODUuNDA2IDYuNDM3VjE3OS4yaC01Ni4wMDF2NTUuNzMzaC01NS43MzN2NTYuMDAxaDU1LjczM3Y1NS43MzNoNTYuMDAxdi01NS43MzNINjI3LjJ2LTU2LjAwMWgtNTUuNzMzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsdXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTY0IDM1NmMtNTUuMyAwLTEwMC00NC43LTEwMC0xMDBzNDQuNy0xMDAgMTAwLTEwMGMyNyAwIDQ5LjUgOS44IDY3IDI2LjJsLTI3LjEgMjYuMWMtNy40LTcuMS0yMC4zLTE1LjQtMzkuOC0xNS40LTM0LjEgMC02MS45IDI4LjItNjEuOSA2My4yIDAgMzQuOSAyNy44IDYzLjIgNjEuOSA2My4yIDM5LjYgMCA1NC40LTI4LjUgNTYuOC00My4xSDE2NHYtMzQuNGg5NC40YzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjZ6bTIyMC04MS44aC0yOXYyOWgtMjkuMnYtMjloLTI5VjI0NWgyOXYtMjlIMzU1djI5aDI5djI5LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYsOEMxMTkuMSw4LDgsMTE5LjEsOCwyNTZTMTE5LjEsNTA0LDI1Niw1MDQsNTA0LDM5Mi45LDUwNCwyNTYsMzkyLjksOCwyNTYsOFpNMTg1LjMsMzgwYTEyNCwxMjQsMCwwLDEsMC0yNDhjMzEuMywwLDYwLjEsMTEsODMsMzIuM2wtMzMuNiwzMi42Yy0xMy4yLTEyLjktMzEuMy0xOS4xLTQ5LjQtMTkuMS00Mi45LDAtNzcuMiwzNS41LTc3LjIsNzguMVMxNDIuMywzMzQsMTg1LjMsMzM0YzMyLjYsMCw2NC45LTE5LjEsNzAuMS01My4zSDE4NS4zVjIzOC4xSDMwMi4yYTEwOS4yLDEwOS4yLDAsMCwxLDEuOSwyMC43YzAsNzAuOC00Ny41LDEyMS4yLTExOC44LDEyMS4yWk00MTUuNSwyNzMuOHYzNS41SDM4MFYyNzMuOEgzNDQuNVYyMzguM0gzODBWMjAyLjhoMzUuNXYzNS41aDM1LjJ2MzUuNVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMEgxNi4xYy02LjUgMC0xMC41IDcuNS02LjUgMTIuN0M1MS44IDI2NyA4MS4zIDMzMC41IDEwMS4zIDQwMGgxMDMuNWMtMTYuMi02OS43LTM4LjctMTMzLjctODIuNS0xOTMuNS0zLTQtOC02LjUtMTMtNi41em00Ny44LTg4YzY4LjUgMTA4IDEzMCAyMzQuNSAxMzguMiAzNjhINDA5Yy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4SDE1Ny4xem0yNTEuOC02OC41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWgtODguM2MtNS4zIDAtOSA1LTcuOCAxMC4zIDEzLjIgNDYuNSAyMi4zIDk1LjUgMjYuNSAxNDYgNDguMiA4Ni4yIDc5LjcgMTc4LjMgOTAuNiAyNzAuOCAxNS44LTYwLjUgMjUuMy0xMzMuNSAyNS4zLTIwMyAwLTczLjYtMTIuMS0xNDUuMS0zMS4xLTIxMi42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMjYxLjhDNDg4IDQwMy4zIDM5MS4xIDUwNCAyNDggNTA0IDExMC44IDUwNCAwIDM5My4yIDAgMjU2UzExMC44IDggMjQ4IDhjNjYuOCAwIDEyMyAyNC41IDE2Ni4zIDY0LjlsLTY3LjUgNjQuOUMyNTguNSA1Mi42IDk0LjMgMTE2LjYgOTQuMyAyNTZjMCA4Ni41IDY5LjEgMTU2LjYgMTUzLjcgMTU2LjYgOTguMiAwIDEzNS03MC40IDE0MC44LTEwNi45SDI0OHYtODUuM2gyMzYuMWMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmF0aXBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMSA4IDAgMTE5LjEgMCAyNTZzMTExLjEgMjQ4IDI0OCAyNDggMjQ4LTExMS4xIDI0OC0yNDhTMzg0LjkgOCAyNDggOHptMTE0LjYgMjI2LjRsLTExMyAxNTIuNy0xMTIuNy0xNTIuN2MtOC43LTExLjktMTkuMS01MC40IDEzLjYtNzIgMjguMS0xOC4xIDU0LjYtNC4yIDY4LjUgMTEuOSAxNS45IDE3LjkgNDYuNiAxNi45IDYxLjcgMCAxMy45LTE2LjEgNDAuNC0zMCA2OC4xLTExLjkgMzIuOSAyMS42IDIyLjYgNjAgMTMuOCA3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmF2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS4xIDIxMmM0LjQgNC40IDQuNCAxMS45IDAgMTYuM2wtOS43IDkuN2MtNC40IDQuNy0xMS45IDQuNy0xNi42IDBsLTEwLjUtMTAuNWMtNC40LTQuNy00LjQtMTEuOSAwLTE2LjZsOS43LTkuN2M0LjQtNC40IDExLjktNC40IDE2LjYgMGwxMC41IDEwLjh6bS0zMC4yLTE5LjdjMy0zIDMtNy44IDAtMTAuNS0yLjgtMy03LjUtMy0xMC41IDAtMi44IDIuOC0yLjggNy41IDAgMTAuNSAzLjEgMi44IDcuOCAyLjggMTAuNSAwem0tMjYgNS4zYy0zIDIuOC0zIDcuNSAwIDEwLjIgMi44IDMgNy41IDMgMTAuNSAwIDIuOC0yLjggMi44LTcuNSAwLTEwLjItMy0zLTcuNy0zLTEwLjUgMHptNzIuNS0xMy4zYy0xOS45LTE0LjQtMzMuOC00My4yLTExLjktNjguMSAyMS42LTI0LjkgNDAuNy0xNy4yIDU5LjguOCAxMS45IDExLjMgMjkuMyAyNC45IDE3LjIgNDguMi0xMi41IDIzLjUtNDUuMSAzMy4yLTY1LjEgMTkuMXptNDcuNy00NC41Yy04LjktMTAtMjMuMyA2LjktMTUuNSAxNi4xIDcuNCA5IDMyLjEgMi40IDE1LjUtMTYuMXpNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4em0tNjYuMiA0Mi42YzIuNS0xNi4xLTIwLjItMTYuNi0yNS4yLTI1LjctMTMuNi0yNC4xLTI3LjctMzYuOC01NC41LTMwLjQgMTEuNi04IDIzLjUtNi4xIDIzLjUtNi4xLjMtNi40IDAtMTMtOS40LTI0LjkgMy45LTEyLjUuMy0yMi40LjMtMjIuNCAxNS41LTguNiAyNi44LTI0LjQgMjkuMS00My4yIDMuNi0zMS0xOC44LTU5LjItNDkuOC02Mi44LTIyLjEtMi41LTQzLjcgNy43LTU0LjMgMjUuNy0yMy4yIDQwLjEgMS40IDcwLjkgMjIuNCA4MS40LTE0LjQtMS40LTM0LjMtMTEuOS00MC4xLTM0LjMtNi42LTI1LjcgMi44LTQ5LjggOC45LTYxLjQgMCAwLTQuNC01LjgtOC04LjkgMCAwLTEzLjggMC0yNC42IDUuMyAxMS45LTE1LjIgMjUuMi0xNC40IDI1LjItMTQuNCAwLTYuNC0uNi0xNC45LTMuNi0yMS42LTUuNC0xMS0yMy44LTEyLjktMzEuNyAyLjguMS0uMi4zLS40LjQtLjUtNSAxMS45LTEuMSA1NS45IDE2LjkgODcuMi0yLjUgMS40LTkuMSA2LjEtMTMgMTAtMjEuNiA5LjctNTYuMiA2MC4zLTU2LjIgNjAuMy0yOC4yIDEwLjgtNzcuMiA1MC45LTcwLjYgNzkuNy4zIDMgMS40IDUuNSAzIDcuNS0yLjggMi4yLTUuNSA1LTguMyA4LjMtMTEuOSAxMy44LTUuMyAzNS4yIDE3LjcgMjQuNCAxNS44LTcuMiAyOS42LTIwLjIgMzYuMy0zMC40IDAgMC01LjUtNS0xNi4zLTQuNCAyNy43LTYuNiAzNC4zLTkuNCA0Ni4yLTkuMSA4IDMuOSA4LTM0LjMgOC0zNC4zIDAtMTQuNy0yLjItMzEtMTEuMS00MS41IDEyLjUgMTIuMiAyOS4xIDMyLjcgMjggNjAuNi0uOCAxOC4zLTE1LjIgMjMtMTUuMiAyMy05LjEgMTYuNi00My4yIDY1LjktMzAuNCAxMDYgMCAwLTkuNy0xNC45LTEwLjItMjIuMS0xNy40IDE5LjQtNDYuNSA1Mi4zLTI0LjYgNjQuNSAyNi42IDE0LjcgMTA4LjgtODguNiAxMjYuMi0xNDIuMyAzNC42LTIwLjggNTUuNC00Ny4zIDYzLjktNjUgMjIgNDMuNSA5NS4zIDk0LjUgMTAxLjEgNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcGZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40LjQgMy4zLjYgNi43LjYgMTBDMTc5LjEgMTEwLjEgMzIgMTcxLjkgMzIgMjg2LjZjMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3J1bnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEuMyAxODkuM2MtMS4xIDEwIDUuMiAxOS4xIDUuMiAxOS4xLjctNy41IDIuMi0xMi44IDQtMTYuNi40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFoLS4xYy00LjIgMi02LjUgNy4xLTcgMTJ6bTI4LjMtMS44YzE5LjUgMTEgMzcuNCAyNS43IDQ0LjkgMzctNS43IDMuMy0yMS43IDEwLjQtMzgtMS43LTEwLjMtNy42LTkuOC0yNi4yLTYuOS0zNS4zem0xNDIuMSA0NS44Yy0xLjIgMTUuNSAxMy45IDMyLjUgMTMuOSAzMi41cy01LjYtMTUtMi43LTI1LjNjLjktMy4yIDItNiAzLTguNSAxOS4zIDE3LjMgNDggMS41IDU0LjgtNi4xIDkuNi0xMC42IDEyLjMtMjMuOCAxMi44LTM0LjEgMS44IDMuOCAzLjQgOS4xIDQgMTYuNiAwIDAgNi40LTkuMSA1LjItMTkuMS0uNi01LTIuOS0xMC03LTExLjhoLS4xYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3ek0xNjAgNDE4LjVoLTI5LjRjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjguNi0xLjUgMS4zLTQuNS0uOS02LjgtMS44LTEuOC00LjctMi43LTguOC0yLjd6bTE4OS4yLTEwMS4yYy0yLjQgMTcuOS0xMyAzMy44LTI0LjYgNDMuNy0zLjEtMjIuNy0zLjctNTUuNS0zLjctNjIuNCAwLTE0LjcgOS41LTI0LjUgMTIuMi0yNi4xIDIuNS0xLjUgNS40LTMgOC4zLTQuNiAxOC05LjYgNDAuNC0yMS42IDQwLjQtNDMuNyAwLTE2LjItOS4zLTIzLjItMTUuNC0yNy44LS44LS42LTEuNS0xLjEtMi4yLTEuNy0yLjEtMS43LTMuNy0zLTQuMy00LjQtNC40LTkuOC0zLjYtMzQuMi0xLjctMzcuNi42LS42IDE2LjctMjAuOSAxMS44LTM5LjItMi03LjQtNi45LTEzLjMtMTQuMS0xNy01LjMtMi43LTExLjktNC4yLTE5LjUtNC41LS4xLTItLjUtMy45LS45LTUuOS0uNi0yLjYtMS4xLTUuMy0uOS04LjEuNC00LjcuOC05IDIuMi0xMS4zIDguNC0xMy4zIDI4LjgtMTcuNiAyOS0xNy42bDEyLjMtMi40LTguMS05LjVjLS4xLS4yLTE3LjMtMTcuNS00Ni4zLTE3LjUtNy45IDAtMTYgMS4zLTI0LjEgMy45LTI0LjIgNy44LTQyLjkgMzAuNS00OS40IDM5LjMtMy4xLTEtNi4zLTEuOS05LjYtMi43LTQuMi0xNS44IDktMzguNSA5LTM4LjVzLTEzLjYtMy0zMy43IDE1LjJjLTIuNi02LjUtOC4xLTIwLjUtMS44LTM3LjJDMTg0LjYgMTAuMSAxNzcuMiAyNiAxNzUgNDAuNGMtNy42LTUuNC02LjctMjMuMS03LjItMjcuNi03LjUuOS0yOS4yIDIxLjktMjguMiA0OC4zLTIgLjUtMy45IDEuMS01LjkgMS43LTYuNS04LjgtMjUuMS0zMS41LTQ5LjQtMzkuMy03LjktMi4yLTE2LTMuNS0yMy45LTMuNS0yOSAwLTQ2LjEgMTcuMy00Ni4zIDE3LjVMNiA0Ni45bDEyLjMgMi40Yy4yIDAgMjAuNiA0LjMgMjkgMTcuNiAxLjQgMi4yIDEuOCA2LjYgMi4yIDExLjMuMiAyLjgtLjQgNS41LS45IDguMS0uNCAxLjktLjggMy45LS45IDUuOS03LjcuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43LjUtMS40IDEuMS0yLjIgMS43LTYuMSA0LjYtMTUuNCAxMS43LTE1LjQgMjcuOCAwIDIyLjEgMjIuNCAzNC4xIDQwLjQgNDMuNyAzIDEuNiA1LjggMy4xIDguMyA0LjYgMi43IDEuNiAxMi4yIDExLjQgMTIuMiAyNi4xIDAgNi45LS42IDM5LjctMy43IDYyLjQtMTEuNi05LjktMjIuMi0yNS45LTI0LjYtNDMuOCAwIDAtMjkuMiAyMi42LTIwLjYgNzAuOCA1LjIgMjkuNSAyMy4yIDQ2LjEgNDcgNTQuNyA4LjggMTkuMSAyOS40IDQ1LjcgNjcuMyA0OS42QzE0MyA1MDQuMyAxNjMgNTEyIDE5Mi4yIDUxMmguMmMyOS4xIDAgNDkuMS03LjcgNjMuNi0xOS41IDM3LjktMy45IDU4LjUtMzAuNSA2Ny4zLTQ5LjYgMjMuOC04LjcgNDEuNy0yNS4yIDQ3LTU0LjcgOC4yLTQ4LjQtMjEuMS03MC45LTIxLjEtNzAuOXpNMzA1LjcgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIuOC04LjEgMS43LTExLjUgMi43LTIuMy0zLjEtNS42LTctMTAuNS0xMS4yIDEuNC00LjggNS41LTE2LjEgMTMuNS0yMi41IDUuNi00LjMgMTIuMi02LjcgMTkuNi03ek00NS42IDQ1LjNjLTMuMy0yLjItNi42LTQtOS43LTUuMyA0LjgtMiAxMy43LTUgMjQuNy01IDYuMSAwIDEyIC45IDE3LjcgMi43IDE3LjggNS44IDMxLjYgMjMuMiAzNy43IDMyLjEtMS42LjctMy4yIDEuNC00LjggMi4yLTIuNSAxLjItNC45IDIuNS03LjEgMy43LTIuNi01LjQtOC4zLTEzLjctMjAuNy0yMi40LTguMy01LjgtMTguMi04LjktMjguOC04LjktMy40LjEtNi42LjUtOSAuOXptNDQuNyA0MC4xYy00LjkgNC4yLTguMyA4LTEwLjUgMTEuMi0zLjQtLjktNy4zLTEuOS0xMS41LTIuN0M2NSA4OS41IDY0LjUgODMuNCA2NCA3N2MtLjUtNi4yLTEuMS0xMi42LTQuNC0xNy44LS43LTEuMS0xLjUtMi4yLTIuMy0zLjIgNy40LjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC4xIDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNi45LTMuNSAzLjEtNiA2LjctNy44IDMuOC0xLjkgOC44LTIuOSAxNS4xLTIuOSAxMi4zIDAgMjUuOSAzLjcgMzIuOSA2IDI1LjEgOCA1NS40IDMwLjkgNjQuMSAzNy43LjIuMi40LjMuNC4zbDUuNiAzLjktMy41LTUuOGMtLjItLjMtMTkuMS0zMS40LTUzLjItNDYuNSAyLTIuOSA3LjQtOC4xIDIxLjYtMTUuMSAyMS40LTEwLjUgNDYuNS0xNS44IDc0LjMtMTUuOCAyNy45IDAgNTIuOSA1LjMgNzQuMyAxNS44IDE0LjIgNi45IDE5LjYgMTIuMiAyMS42IDE1LjEtMzQgMTUuMS01Mi45IDQ2LjItNTMuMSA0Ni41bC0zLjUgNS44IDUuNi0zLjlzLjItLjEuNC0uM2M4LjctNi44IDM5LTI5LjggNjQuMS0zNy43IDctMi4yIDIwLjYtNiAzMi45LTYgNi4zIDAgMTEuMyAxIDE1LjEgMi45IDMuNSAxLjggNS43IDQuNCA2LjcgNy44IDIuNSA5LjEtNi4xIDIyLjYtOS40IDI2LjYtLjUuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkuNy42IDEuNSAxLjIgMi4yIDEuOGwuNS40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42LjkgNDkuOSAzLjQgNzUuOS0xMi40IDQuOC0yNi43IDYuNC0zOS43IDYuOC0yLTQuMS0zLjktOC41LTUuNS0xMy4xLS43LTItMTkuNi01MS4xLTI2LjQtNjIuMiA1LjUgMzkgMTcuNSA3My43IDIzLjUgODkuNi0zLjUtLjUtNy4zLS43LTExLjctLjdoLTExN2MtNC40IDAtOC4zLjMtMTEuNy43IDYtMTUuOSAxOC4xLTUwLjYgMjMuNS04OS42LTYuOCAxMS4yLTI1LjcgNjAuMy0yNi40IDYyLjItMS42IDQuNi0zLjUgOS01LjUgMTMuMS0xMy0uNC0yNy4yLTItMzkuNy02LjggMi41LTI2IDQuMy02MS4yIDMuNC03NS45LS45LTE3LjQtMTAuMy0yOS4yLTE5LTM0LjJ6TTM0LjggNDA0LjZjLTEyLjEtMjAtOC43LTU0LjEtMy43LTU5LjEgMTAuOSAzNC40IDQ3LjIgNDQuMyA3NC40IDQ1LjQtMi43IDQuMi01LjIgNy42LTcgMTBsLTEuNCAxLjRjLTcuMiA3LjgtOC42IDE4LjUtNC4xIDMxLjgtMjIuNy0uMS00Ni4zLTkuOC01OC4yLTI5LjV6bTQ1LjcgNDMuNWM2IDEuMSAxMi4yIDEuOSAxOC42IDIuNCAzLjUgOCA3LjQgMTUuOSAxMi4zIDIzLjEtMTQuNC01LjktMjQuNC0xNi0zMC45LTI1LjV6TTE5MiA0OTguMmMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yLjktMjMuMSAyLjktMy4zIDkuNS03LjIgMjQuNi03LjJoMTE4LjhjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYuOSAyMy4xLTYuNiAxOC44LTI0LjMgNjQuNi04NC45IDY0Ljd6bTgwLjYtMjQuNmM0LjktNy4yIDguOC0xNS4xIDEyLjMtMjMuMSA2LjQtLjUgMTIuNi0xLjMgMTguNi0yLjQtNi41IDkuNS0xNi41IDE5LjYtMzAuOSAyNS41em03Ni42LTY5Yy0xMiAxOS43LTM1LjYgMjkuMy01OC4xIDI5LjcgNC41LTEzLjMgMy4xLTI0LjEtNC4xLTMxLjgtLjQtLjUtLjktMS0xLjQtMS41LTEuOC0yLjQtNC4zLTUuOC03LTEwIDI3LjItMS4yIDYzLjUtMTEgNzQuNC00NS40IDUgNSA4LjQgMzkuMS0zLjggNTl6TTE5MS45IDE4Ny43aC4yYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdoLTI5LjRjLTQuMiAwLTcuMi45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3VpbGRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDMuNDI3LDY0SDQuNTcxYzAsMTAzLjI2LDIyLjE5MiwxODAuMDYsNDMuNDE4LDIyMi4zNThDMTEyLjA0Niw0MTQuMTM1LDIyNCw0NDgsMjI1LjI1Niw0NDhhMzEyLjgyNCwzMTIuODI0LDAsMCwwLDE0MC41NS0xMDMuNDc3YzI1LjkwNy0zMy45MjMsNTMuMS04Ny4xOSw2NS45MTYtMTQ1Ljc2MUgxNzEuODMzYzQuMTQsMzYuNDI5LDIyLjE3Nyw2Ny45NDYsNDUuMSw4Ni45NDRoODguNTg5Yy0xNy4wMTIsMjguMjEzLTQ4LjE4Niw1NC40LTgwLjQ1Niw2OS40ODItMzEuMjMyLTEzLjI1OS02OS4wOS00Ni41NDQtOTYuNTQ4LTk4LjM2Mi0yNi43MjYtNTMuODMzLTI3LjA5Mi0xMDUuODgzLTI3LjA5Mi0xMDUuODgzSDQzNy41NzNBNjI1LjkxLDYyNS45MSwwLDAsMCw0NDMuNDI3LDY0WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1bHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjggMzkxLjFsLTE0LjEgMjQuNi00LjYgODAuMmMwIDguOS0yOC4zIDE2LjEtNjMuMSAxNi4xcy02My4xLTcuMi02My4xLTE2LjFsLTUuOC03OS40LTE0LjktMjUuNGM0MS4yIDE3LjMgMTI2IDE2LjcgMTY1LjYgMHptLTE5Ni0yNTMuM2wxMy42IDEyNS41YzUuOS0yMCAyMC44LTQ3IDQwLTU1LjIgNi4zLTIuNyAxMi43LTIuNyAxOC43LjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zLjItMy4yIDYuMy0yMi4yIDcuMy0yNS4yLTIgMi4yLTQuMSA0LjQtNi40IDYuNi01LjQgNS4xLTE0LjEgMTEuOC0yMS41IDExLjgtMy40IDAtNS42LS45LTcuNy0yLjRsNy42IDc5LjZjMiA1IDM5LjIgMTcuMSA4OC4yIDE3LjEgNDkuMSAwIDg2LjMtMTIuMiA4OC4yLTE3LjFsMTAuOS05NC42Yy01LjcgNS4yLTEyLjMgMTEuNi0xOS42IDE0LjgtNS40IDIuMy0xNy40IDMuOC0xNy40LTUuNyAwLTUuMiA5LjEtMTQuOCAxNC40LTIxLjUgMS40LTEuNyA0LjctNS45IDQuNy04LjEgMC0yLjktNi0yLjItMTEuNyAyLjUtMy4yIDIuNy02LjIgNi4zLTguNyA5LjctNC4zIDYtNi42IDExLjItOC41IDE1LjUtNi4yIDE0LjItNC4xIDguNi05LjEgMjItNSAxMy4zLTQuMiAxMS44LTUuMiAxNC0uOSAxLjktMi4yIDMuNS00IDQuNS0xLjkgMS00LjUuOS02LjEtLjMtLjktLjYtMS4zLTEuOS0xLjMtMy43IDAtLjkuMS0xLjguMy0yLjcgMS41LTYuMSA3LjgtMTguMSAxNS0zNC4zIDEuNi0zLjcgMS0yLjYuOC0yLjMtNi4yIDYtMTAuOSA4LjktMTQuNCAxMC41LTUuOCAyLjYtMTMgMi42LTE0LjUtNC4xLS4xLS40LS4xLS44LS4yLTEuMi0xMS44IDkuMi0yNC4zIDExLjctMjAtOC4xLTQuNiA4LjItMTIuNiAxNC45LTIyLjQgMTQuOS00LjEgMC03LjEtMS40LTguNi01LjEtMi4zLTUuNSAxLjMtMTQuOSA0LjYtMjMuOCAxLjctNC41IDQtOS45IDcuMS0xNi4yIDEuNi0zLjQgNC4yLTUuNCA3LjYtNC41LjYuMiAxLjEuNCAxLjYuNyAyLjYgMS44IDEuNiA0LjUuMyA3LjItMy44IDcuNS03LjEgMTMtOS4zIDIwLjgtLjkgMy4zLTIgOSAxLjUgOSAyLjQgMCA0LjctLjggNi45LTIuNCA0LjYtMy40IDguMy04LjUgMTEuMS0xMy41IDItMy42IDQuNC04LjMgNS42LTEyLjMuNS0xLjcgMS4xLTMuMyAxLjgtNC44IDEuMS0yLjUgMi42LTUuMSA1LjItNS4xIDEuMyAwIDIuNC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41LjQgNi45LTIgNS42LTQuNyAxMC42LTYuOSAxNi43LTEuMyAzLjUtMi43IDgtMi43IDExLjcgMCAzLjQgMy43IDIuNiA2LjggMS4yIDIuNC0xLjEgNC44LTIuOCA2LjgtNC41IDEuMi00LjkuOS0zLjggMjYuNC02OC4yIDEuMy0zLjMgMy43LTQuNyA2LjEtNC43IDEuMiAwIDIuMi40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMuNS0uNC45LS42LjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMuOC0xIDEuNy0xLjYgMi43LTEuNiAyLjggMCA0LjIgMS4yIDQuMiA0IDAgMS4xLS43IDUuMS0xLjEgNi4yIDEuNC0xLjUgMi45LTMgNC41LTQuNSAxNS0xMy45IDI1LjctNi44IDI1LjcuMiAwIDcuNC04LjkgMTcuNy0xMy44IDIzLjQtMS42IDEuOS00LjkgNS40LTUgNi40IDAgMS4zLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zLjJ6bTIyOS43LTguNWMwIDIxLTIzMS4yIDIxLTIzMS4yIDAgMC04LjggNTEuOC0xNS45IDExNS42LTE1LjkgOSAwIDE3LjguMSAyNi4zLjRsMTIuNi00OC43TDIyOC4xLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xLjFMMTg1LjkgNzRsLTEwIDQwLjdjMzkuOSAyLjYgNjcuNiA4LjEgNjcuNiAxNC42em0tNjkuNCA0LjZjMC0uOC0uOS0xLjUtMi41LTIuMWwtLjIuOGMwIDEuMy01IDIuNC0xMS4xIDIuNHMtMTEuMS0xLjEtMTEuMS0yLjRjMC0uMSAwLS4yLjEtLjNsLjItLjdjLTEuOC42LTMgMS40LTMgMi4zIDAgMi4xIDYuMiAzLjcgMTMuNyAzLjcgNy43LjEgMTMuOS0xLjYgMTMuOS0zLjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFja2VyTmV3c1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yMS4yIDIyOS4ySDIxYy4xLS4xLjItLjMuMy0uNCAwIC4xIDAgLjMtLjEuNHptMjE4IDUzLjlWMzg0aC0zMS40VjI4MS4zTDEyOCAxMjhoMzcuM2M1Mi41IDk4LjMgNDkuMiAxMDEuMiA1OS4zIDEyNS42IDEyLjMtMjcgNS44LTI0LjQgNjAuNi0xMjUuNkgzMjBsLTgwLjggMTU1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFja2VyTmV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMjEuMiAxOTcuMkgyMWMuMS0uMS4yLS4zLjMtLjQgMCAuMSAwIC4zLS4xLjR6bTIxOCA1My45VjM4NGgtMzEuNFYyODEuM0wxMjggMTI4aDM3LjNjNTIuNSA5OC4zIDQ5LjIgMTAxLjIgNTkuMyAxMjUuNiAxMi4zLTI3IDUuOC0yNC40IDYwLjYtMTI1LjZIMzIwbC04MC44IDE1NS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhY2tlcnJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc3LjUgMTI4QzQ2MyAxMDMuMDUgMjg1LjEzIDAgMjU2LjE2IDBTNDkuMjUgMTAyLjc5IDM0Ljg0IDEyOHMtMTQuNDkgMjMwLjggMCAyNTYgMTkyLjM4IDEyOCAyMjEuMzIgMTI4UzQ2MyA0MDkuMDggNDc3LjQ5IDM4NHMxNC41MS0yMzEgLjAxLTI1NnpNMzE2LjEzIDQxNC4yMmMtNCAwLTQwLjkxLTM1Ljc3LTM4LTM4LjY5Ljg3LS44NyA2LjI2LTEuNDggMTcuNTUtMS44MyAwLTI2LjIzLjU5LTY4LjU5Ljk0LTg2LjMyIDAtMi0uNDQtMy40My0uNDQtNS44NWgtNzkuOTNjMCA3LjEtLjQ2IDM2LjIgMS4zNyA3Mi44OC4yMyA0LjU0LTEuNTggNi01Ljc0IDUuOTQtMTAuMTMgMC0yMC4yNy0uMTEtMzAuNDEtLjA4LTQuMSAwLTUuODctMS41My01Ljc0LTYuMTEuOTItMzMuNDQgMy04NC0uMTUtMjEyLjY3di0zLjE3Yy05LjY3LS4zNS0xNi4zOC0xLTE3LjI2LTEuODQtMi45Mi0yLjkyIDM0LjU0LTM4LjY5IDM4LjQ5LTM4LjY5czQxLjE3IDM1Ljc4IDM4LjI3IDM4LjY5Yy0uODcuODctNy45IDEuNDktMTYuNzcgMS44NHYzLjE2Yy0yLjQyIDI1Ljc1LTIgNzkuNTktMi42MyAxMDUuMzloODAuMjZjMC00LjU1LjM5LTM0Ljc0LTEuMi04My42NC0uMS0zLjM5Ljk1LTUuMTcgNC4yMS01LjIgMTEuMDctLjA4IDIyLjE1LS4xMyAzMy4yMy0uMDYgMy40NiAwIDQuNTcgMS43MiA0LjUgNS4zOEMzMzMgMzU0LjY0IDMzNiAzNDEuMjkgMzM2IDM3My42OWM4Ljg3LjM1IDE2LjgyIDEgMTcuNjkgMS44NCAyLjg4IDIuOTEtMzMuNjIgMzguNjktMzcuNTggMzguNjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGgtNDAuOWMtMS42IDAtMi43IDEuNC0yLjcgMi44djIwMS44YzAgMS40IDEuMSAyLjggMi43IDIuOGg0MC45YzEuOSAwIDIuOC0uOSAyLjgtMi44ek0xNTYuNSAxNjhjLTE2LjEtMTEuOC0zNi4zLTE3LjktNjAuMy0xOC0xOC4xLS4xLTM0LjYgMy43LTQ5LjggMTEuNFY4MC4yYzAtMS44LS45LTIuNy0yLjgtMi43SDIuN2MtMS44IDAtMi43LjktMi43IDIuN3YyNzkuMmMwIDEuOS45IDIuOCAyLjcgMi44aDQxYzEuOSAwIDIuOC0uOSAyLjgtMi44VjIyMy4zYzAtLjgtMi44LTI3IDQ1LjgtMjcgNDguNSAwIDQ1LjggMjYuMSA0NS44IDI3djEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNoMjcuM2MxLjggMCAyLjctLjkgMi43LTIuOFYyMjMuM2MwLTIzLjQtOS4zLTQxLjgtMjgtNTUuM3ptNDc4LjQgMTEwLjFjLTYuOC0xNS43LTE4LjQtMjctMzQuOS0zNC4xbC01Ny42LTI1LjNjLTguNi0zLjYtOS4yLTExLjItMi42LTE2LjEgNy40LTUuNSA0NC4zLTEzLjkgODQgNi44IDEuNyAxIDQtLjMgNC0yLjR2LTQ0LjdjMC0xLjMtLjYtMi4xLTEuOS0yLjYtMTcuNy02LjYtMzYuMS05LjktNTUuMS05LjktMjYuNSAwLTQ1LjMgNS44LTU4LjUgMTUuNC0uNS40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZsNTMuNiAyMy41YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQuMi00LjQgMi4zdjM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMuNy0uMyAzNi04LjkgNDUuNi00NS44IDMuNS0xMy41IDIuNC0yNi41LTMuMS0zOS4xek0zNzYuMiAxNDkuOGMtMzEuNyAwLTEwNC4yIDIwLjEtMTA0LjIgMTAzLjV2MTgzLjVjMCAuOC42IDIuNyAyLjcgMi43aDQwLjljMS45IDAgMi44LS45IDIuOC0yLjdWMzQ4YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43LjEtNjAuMy00OC4yLTEwOC42LTEwOC42LTEwOC42em0wIDE3MC45Yy0xNy4yIDAtMzEuOS02LjEtNDQtMTguMi0xMi4yLTEyLjItMTguMi0yNi44LTE4LjItNDQgMC0zNC41IDI3LjYtNjIuMiA2Mi4yLTYyLjIgMzQuNSAwIDYyLjIgMjcuNiA2Mi4yIDYyLjIuMSAzNC4zLTI3LjMgNjIuMi02Mi4yIDYyLjJ6TTIyOC4zIDcyLjVjLTE1LjkgMC0yOC44IDEyLjktMjguOSAyOC45IDAgMTUuNiAxMi43IDI4LjkgMjguOSAyOC45czI4LjktMTMuMSAyOC45LTI4LjljMC0xNi4yLTEzLTI4LjktMjguOS0yOC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpcmVBSGVscGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My4xIDBINzEuOUM2Ny45IDM3LjMgMzcuNCA2Ny44IDAgNzEuN3YzNzEuNWMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGgzNzIuMmMzLTM2LjQgMzIuNS02NS44IDY3LjktNjkuOFY3MS43Yy0zNi40LTUuOS02NS0zNS4zLTY4LjktNzEuN3ptLTM3IDQwNC45Yy0zNi4zIDAtMTguOC0yLTU1LjEtMi0zNS44IDAtMjEgMi01Ni4xIDItNS45IDAtNC45LTguMiAwLTkuOCAyMi44LTcuNiAyMi45LTEwLjIgMjQuNi0xMi44IDEwLjQtMTUuNiA1LjktODMgNS45LTExMyAwLTUuMy02LjQtMTIuOC0xMy44LTEyLjhIMjAwLjRjLTcuNCAwLTEzLjggNy41LTEzLjggMTIuOCAwIDMwLTQuNSA5Ny40IDUuOSAxMTMgMS43IDIuNSAxLjggNS4yIDI0LjYgMTIuOCA0LjkgMS42IDYgOS44IDAgOS44LTM1LjEgMC0yMC4zLTItNTYuMS0yLTM2LjMgMC0xOC44IDItNTUuMSAyLTcuOSAwLTUuOC0xMC44IDAtMTAuOCAxMC4yLTMuNCAxMy41LTMuNSAyMS43LTEzLjggNy43LTEyLjkgNy45LTQ0LjQgNy45LTEyNy44VjE1MS4zYzAtMjIuMi0xMi4yLTI4LjMtMjguNi0zMi40LTguOC0yLjItNC0xMS44IDEtMTEuOCAzNi41IDAgMjAuNiAyIDU3LjEgMiAzMi43IDAgMTYuNS0yIDQ5LjItMiAzLjMgMCA4LjUgOC4zIDEgMTAuOC00LjkgMS42LTI3LjYgMy43LTI3LjYgMzkuMyAwIDQ1LjYtLjIgNTUuOCAxIDY4LjggMCAxLjMgMi4zIDEyLjggMTIuOCAxMi44aDEwOS4yYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjR2MTAxLjJjMCA4My40LjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjYwLjM1MywyNTQuODc4LDEzMS41MzgsMzMuMWEyLjIwOCwyLjIwOCwwLDAsMC0zLjgyOS4wMDlMLjMsMjU0Ljg4N0EyLjIzNCwyLjIzNCwwLDAsMCwuMywyNTcuMTIyTDEyOS4xMTYsNDc4LjlhMi4yMDgsMi4yMDgsMCwwLDAsMy44My0uMDA5TDI2MC4zNTgsMjU3LjExM0EyLjIzOSwyLjIzOSwwLDAsMCwyNjAuMzUzLDI1NC44NzhabTM5LjA3OC0yNS43MTNhMi4xOSwyLjE5LDAsMCwwLDEuOSwxLjExMWg2Ni41MDlhMi4yMjYsMi4yMjYsMCwwLDAsMS45LTMuMzQxTDI1OS4xMTUsMzMuMTExYTIuMTg3LDIuMTg3LDAsMCwwLTEuOS0xLjExMUgxOTAuNzA3YTIuMjI2LDIuMjI2LDAsMCwwLTEuOSwzLjM0MVpNNTExLjcsMjU0Ljg4NiwzODQuOSwzMy4xMTJBMi4yLDIuMiwwLDAsMCwzODIuOTksMzJoLTY2LjZhMi4yMjYsMi4yMjYsMCwwLDAtMS45MDYsMy4zNEw0NDAuNjUyLDI1NiwzMTQuNDgxLDQ3Ni42NmEyLjIyNiwyLjIyNiwwLDAsMCwxLjkwNiwzLjM0aDY2LjZhMi4yLDIuMiwwLDAsMCwxLjkwNi0xLjExMkw1MTEuNywyNTcuMTE0QTIuMjQzLDIuMjQzLDAsMCwwLDUxMS43LDI1NC44ODZaTTM2Ni4wMTYsMjg0LjkxN0gyOTkuNTA4YTIuMTg3LDIuMTg3LDAsMCwwLTEuOSwxLjExMWwtMTA4LjgsMTkwLjYzMWEyLjIyNiwyLjIyNiwwLDAsMCwxLjksMy4zNDFoNjYuNTA5YTIuMTg3LDIuMTg3LDAsMCwwLDEuOS0xLjExMWwxMDguOC0xOTAuNjMxQTIuMjI2LDIuMjI2LDAsMCwwLDM2Ni4wMTYsMjg0LjkxN1pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb29saSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQuNSAzNTJsMzguMy44Yy0xMy4yLTQuNi0yNi0xMC4yLTM4LjMtMTYuOHptNTcuNy01LjN2NS4zbC0xOS40LjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45LjItNDUuOC0yLjYtNzUuMy0xMy4zem00MDguOS0xMTUuMmMxNS45IDAgMjguOS0xMi45IDI4LjktMjguOXMtMTIuOS0yNC41LTI4LjktMjQuNWMtMTUuOSAwLTI4LjkgOC42LTI4LjkgMjQuNXMxMi45IDI4LjkgMjguOSAyOC45em0tMjkgMTIwLjVINjQwVjI0MS41aC01Ny45em0tNzMuNyAwaDU3LjlWMTU2LjdMNTA4LjQgMTg0em0tMzEtMTE5LjRjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4zLTEuMS01MC40IDE3LjFjLTE4LjIgMTguMi0xNi44IDMzLjktMTYuOCA1Mi42cy0xLjQgMzQuMyAxNi44IDUyLjUgNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjgtMzMuOCAxNi44LTUyLjUtLjEtMTguOCAxLjMtMzQuNS0xNi44LTUyLjZ6bS0zOS44IDcxLjljMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjV2LTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOXptLTEwNi4yLTcxLjljLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjF2LTIwLjdsLTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMy4xIDAgMC0yNC45IDMyLjggNjEuOCAxMTAuOFYzNTJoNTcuOXYtMjguNmMtNi41LTQuMi0xMy04LjctMTkuNC0xMy42LTE0LjgtMTEuMi0yNy40LTIxLjYtMzguNC0zMS40di0zMWMxMy4xIDE0LjcgMzAuNSAzMS40IDUzLjQgNTAuM2w0LjUgMy42di0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1VjMxN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZ2LTkzLjljMC0xOC43LTEzLjQtMzcuNC00MC42LTM3LjQtMTUuOC0uMS0zMC41IDguMi0zOC41IDIxLjl2LTU0LjNjNDEuOSAyMC45IDgzLjkgNDYuNSA5OS45IDU4LjMtMTAuMiAxNC42LTkuMyAyOC4xLTkuMyA0My43IDAgMTguNy0xLjQgMzQuMyAxNi44IDUyLjVzNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjctMzMuOCAxNi43LTUyLjUgMC0xOC41IDEuNS0zNC4yLTE2LjctNTIuM3pNNjUuMiAxODR2NjMuM2MtNDguNy01NC41LTM4LjktNzYtMzUuMi03OS4xIDEzLjUtMTEuNCAzNy41LTggNjQuNCAyLjF6bTIyNi41IDEyMC41YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41di00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9ybmJpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzYuMzggMzcwLjNhMzcuOCAzNy44IDAgMSAxLTMyLjA3LTMyLjQyYy03OC4yOC0xMTEuMzUgNTItMTkwLjUzIDUyLTE5MC41My01Ljg2IDQzLTguMjQgOTEuMTYtOC4yNCA5MS4xNi02Ny4zMSA0MS40OS45MyA2NC4wNiAzOS44MSA3Mi44N2ExNDAuMzggMTQwLjM4IDAgMCAwIDEzMS42NiA5MS45NGMxLjkyIDAgMy43Ny0uMjEgNS42Ny0uMjhsLjExIDE4Ljg2Yy05OS4yMiAxLjM5LTE1OC43LTI5LjE0LTE4OC45NC01MS42em0xMDgtMzI3LjdBMzcuNTcgMzcuNTcgMCAwIDAgMTgxIDIxLjQ1YTM3Ljk1IDM3Ljk1IDAgMSAwLTMxLjE3IDU0LjIyYy0yMi41NSAyOS45MS01My44MyA4OS41Ny01Mi40MiAxOTBsMjEuODQtLjE1YzAtLjktLjE0LTEuNzctLjE0LTIuNjhBMTQwLjQyIDE0MC40MiAwIDAgMSAyMDcgMTMyLjcxYzgtMzcuNzEgMzAuNy0xMTQuMyA3My44LTQ0LjI5IDAgMCA0OC4xNCAyLjM4IDkxLjE4IDguMjQgMCAwLTc3Ljg0LTEyOC0xODcuNTktNTQuMDZ6bTMwNC4xOSAxMzQuMTdhMzcuOTQgMzcuOTQgMCAxIDAtNTMuODQtMjguN0M0MDMgMTI2LjEzIDM0NC44OSA5OSAyNTEuMjggMTAwLjMzbC4xNCAyMi41YzIuNy0uMTUgNS4zOS0uNDEgOC4xNC0uNDFhMTQwLjM3IDE0MC4zNyAwIDAgMSAxMzAuNDkgODguNzZjMzkuMSA5IDEwNS4wNiAzMS41OCAzOC40NiA3Mi41NCAwIDAtMi4zNCA0OC4xMy04LjIxIDkxLjE2IDAgMCAxMzMuNDUtODEuMTYgNDktMTk0LjYxYTM3LjQ1IDM3LjQ1IDAgMCAwIDE5LjMxLTMuNXpNMzc0LjA2IDQzNi4yNGMyMS40My0zMi40NiA0Ni40Mi04OS42OSA0NS4xNC0xNzkuNjZsLTE5LjUyLjE0Yy4wOCAyLjA2LjMgNC4wNy4zIDYuMTVhMTQwLjM0IDE0MC4zNCAwIDAgMS05MS4zOSAxMzEuNDVjLTguODUgMzguOTUtMzEuNDQgMTA2LjY2LTcyLjc3IDM5LjQ5IDAgMC00OC4xMi0yLjM0LTkxLjE5LTguMjIgMCAwIDc5LjkyIDEzMS4zNCAxOTEuOSA1MWEzNy41IDM3LjUgMCAwIDAgMy42NCAxNCAzNy45MyAzNy45MyAwIDEgMCAzMy44OS01NC4yOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3RqYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE0LjkgMTYxLjVDMzQwLjIgMjkgMTIxLjEgMCAxMjEuMSAwUzIyMi4yIDExMC40IDkzIDE5Ny43QzExLjMgMjUyLjgtMjEgMzI0LjQgMTQgNDAyLjZjMjYuOCA1OS45IDgzLjUgODQuMyAxNDQuNiA5My40LTI5LjItNTUuMS02LjYtMTIyLjQtNC4xLTEyOS42IDU3LjEgODYuNCAxNjUgMCAxMTAuOC05My45IDcxIDE1LjQgODEuNiAxMzguNiAyNy4xIDIxNS41IDgwLjUtMjUuMyAxMzQuMS04OC45IDE0OC44LTE0NS42IDE1LjUtNTkuMyAzLjctMTI3LjktMjYuMy0xODAuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3V6eiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzUuOSAzMzAuN0gxNzEuM1Y0ODBIMTdWMzJoMTA5LjV2MTA0LjVsMzA1LjEgODUuNlY0ODBIMjc1Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHRtbDUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMmwzNC45IDM5NS44TDE5MS41IDQ4MGwxNTcuNi01Mi4yTDM4NCAzMkgwem0zMDguMiAxMjcuOUgxMjQuNGw0LjEgNDkuNGgxNzUuNmwtMTMuNiAxNDguNC05Ny45IDI3di4zaC0xLjFsLTk4LjctMjcuMy02LTc1LjhoNDcuN0wxMzggMzIwbDUzLjUgMTQuNSA1My43LTE0LjUgNi02Mi4ySDg0LjNMNzEuNSAxMTIuMmgyNDEuMWwtNC40IDQ3Ljd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHVic3BvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjcuNCAyMTEuNmMtMjUuMSAyMy43LTQwLjggNTcuMy00MC44IDk0LjYgMCAyOS4zIDkuNyA1Ni4zIDI2IDc4TDIwMy4xIDQzNGMtNC40LTEuNi05LjEtMi41LTE0LTIuNS0xMC44IDAtMjAuOSA0LjItMjguNSAxMS44LTcuNiA3LjYtMTEuOCAxNy44LTExLjggMjguNnM0LjIgMjAuOSAxMS44IDI4LjVjNy42IDcuNiAxNy44IDExLjYgMjguNSAxMS42IDEwLjggMCAyMC45LTMuOSAyOC42LTExLjYgNy42LTcuNiAxMS44LTE3LjggMTEuOC0yOC41IDAtNC4yLS42LTguMi0xLjktMTIuMWw1MC01MC4yYzIyIDE2LjkgNDkuNCAyNi45IDc5LjMgMjYuOSA3MS45IDAgMTMwLTU4LjMgMTMwLTEzMC4yIDAtNjUuMi00Ny43LTExOS4yLTExMC4yLTEyOC43VjExNmMxNy41LTcuNCAyOC4yLTIzLjggMjguMi00Mi45IDAtMjYuMS0yMC45LTQ3LjktNDctNDcuOVMzMTEuMiA0NyAzMTEuMiA3My4xYzAgMTkuMSAxMC43IDM1LjUgMjguMiA0Mi45djYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjhDMTI5LjggMjMuNCAxMDYuMyAwIDc3LjQgMCA0OC42IDAgMjUuMiAyMy40IDI1LjIgNTIuMmMwIDI4LjkgMjMuNCA1Mi4zIDUyLjIgNTIuMyA5LjggMCAxOC45LTIuOSAyNi44LTcuNmwxNjMuMiAxMTQuN3ptODkuNSAxNjMuNmMtMzguMSAwLTY5LTMwLjktNjktNjlzMzAuOS02OSA2OS02OSA2OSAzMC45IDY5IDY5LTMwLjkgNjktNjkgNjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRlYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI1LjYxLDE2NS40OGE0OS4wNyw0OS4wNywwLDEsMCw0OS4wNiw0OS4wNkE0OS4wOCw0OS4wOCwwLDAsMCwxMjUuNjEsMTY1LjQ4Wk04Ni4xNSw0MjUuODRoNzguOTRWMjg1LjMySDg2LjE1Wm0xNTEuNDYtMjExLjZjMC0yMC0xMC0yMi41My0xOC43NC0yMi41M0gyMDQuODJWMjM3LjVoMTQuMDVDMjI4LjYyLDIzNy41LDIzNy42MSwyMzQuNjksMjM3LjYxLDIxNC4yNFptMjAxLjY5LDQ2VjE2OC45M2gyMi43NVYyMzcuNWgzMy42OUM0ODYuNSwxMTMuMDgsMzg4LjYxLDg2LjE5LDI5OS42Nyw4Ni4xOUgyMDQuODRWMTY5aDE0YzI1LjYsMCw0MS41LDE3LjM1LDQxLjUsNDUuMjYsMCwyOC44MS0xNS41Miw0Ni00MS41LDQ2aC0xNFY0MjUuODhoOTQuODNjMTQ0LjYxLDAsMTk0Ljk0LTY3LjE2LDE5Ni43Mi0xNjUuNjRabS0xMDkuNzUsMEgyNzMuM1YxNjloNTQuNDN2MjIuNzNIMjk2djEwLjU4aDMwVjIyNUgyOTZWMjM3LjVoMzMuNTFabTc0LjY2LDAtNS4xNi0xNy42N0gzNjkuMzFsLTUuMTgsMTcuNjdIMzQwLjQ3TDM2OCwxNjguOTJoMzIuMzVsMjcuNTMsOTEuMzRaTTI5OS42NSwzMkgzMlY0ODBIMjk5LjY1YzE2MS44NSwwLDI1MS03OS43MywyNTEtMjI0LjUyQzU1MC42MiwxNzIsNTE4LDMyLDI5OS42NSwzMlptMCw0MjYuOTJINTMuMDdWNTMuMDdIMjk5LjY1YzE0Mi4xLDAsMjI5LjksNjQuNjEsMjI5LjksMjAyLjQxQzUyOS41NSwzODkuNTcsNDQ4LjU1LDQ1OC45MiwyOTkuNjUsNDU4LjkyWm04My44Ni0yNjQuODVMMzc2LDIxOS44OEgzOTIuNGwtNy41Mi0yNS44MVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbWRiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIxLjMgMjI5LjJIMjFjLjEtLjEuMi0uMy4zLS40ek05NyAzMTkuOEg2NFYxOTJoMzN6bTExMy4yIDBoLTI4Ljd2LTg2LjRsLTExLjYgODYuNGgtMjAuNmwtMTIuMi04NC41djg0LjVoLTI5VjE5Mmg0Mi44YzMuMyAxOS44IDYgMzkuOSA4LjcgNTkuOWw3LjYtNTkuOWg0M3ptMTEuNCAwVjE5MmgyNC42YzE3LjYgMCA0NC43LTEuNiA0OSAyMC45IDEuNyA3LjYgMS40IDE2LjMgMS40IDI0LjQgMCA4OC41IDExLjEgODIuNi03NSA4Mi41em0xNjAuOS0yOS4yYzAgMTUuNy0yLjQgMzAuOS0yMi4yIDMwLjktOSAwLTE1LjItMy0yMC45LTkuOGwtMS45IDguMWgtMjkuOFYxOTJoMzEuN3Y0MS43YzYtNi41IDEyLTkuMiAyMC45LTkuMiAyMS40IDAgMjIuMiAxMi44IDIyLjIgMzAuMXpNMjY1IDIyOS45YzAtOS43IDEuNi0xNi0xMC4zLTE2djgzLjdjMTIuMi4zIDEwLjMtOC43IDEwLjMtMTguNHptODUuNSAyNi4xYzAtNS40IDEuMS0xMi43LTYuMi0xMi43LTYgMC00LjkgOC45LTQuOSAxMi43IDAgLjYtMS4xIDM5LjYgMS4xIDQ0LjcuOCAxLjYgMi4yIDIuNCAzLjggMi40IDcuOCAwIDYuMi05IDYuMi0xNC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlubm9zb2Z0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMi41NTksMTU5LjcxYTI3LjM3OSwyNy4zNzksMCwwLDAtMTMuODY2LTIzLjMzNywyNi40MiwyNi40MiwwLDAsMC0yNi4yMTEuMTMzTDczLjk0MywzMTQuNjQ3VjE3Ni4yNjFhMTEuOTU1LDExLjk1NSwwLDAsMSw2LjA0Ny0xMC4zNEwyMTguMDY2LDg2LjIwOGExMi4xNTMsMTIuMTUzLDAsMCwxLDExLjkyMi4wMjVsMzIuNjU2LDE4Ljg1M0wxMTIuNTgxLDE5MS43MjN2NTZMMzU5LjY0MiwxMDUuMDg2LDI0MS4xMjksMzYuNjc5Yy0xMC45OTItNi4xMjktMjIuMy02LjI1NS0zMy44LS4yN2wtMTY0LjYsOTUuMDI2Yy0xMC42MzQsNi4xMi0xNi43NzEsMTYuMzktMTcuMjksMjkuMTI0bDAsMTkxLjVjLjE3LDEwLjEzNSw1LjA4LDE4LjY3MiwxMy40NzQsMjMuNDI4YTI3LjAzNywyNy4wMzcsMCwwLDAsMjYuNzM2LS4wNDVMMzc0LjA1NywxOTcuMzc2VjMzNS42NTdhMTEuOTc2LDExLjk3NiwwLDAsMS01LjkyLDEwLjM2OEwyMzAuMDI1LDQyNS43N2ExMi4xNzUsMTIuMTc1LDAsMCwxLTExLjkzNy4wNjJsLTMyLjcyMy0xOC45LDE1MC4wNTEtODYuNjI3di01Nkw4OC4zNjcsNDA2LjkzMmwxMTguNzk0LDY4LjU4M2EzMy44OCwzMy44OCwwLDAsMCwzNC4yNS0uMzI3bDE2NC41MjctOTQuOTk1YzEwLjc0Ni02LjYzMSwxNi42NDktMTcuMTE4LDE2LjYyNC0yOS41MjhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5zdGFncmFtU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCwyMDIuNjZBNTMuMzQsNTMuMzQsMCwxLDAsMjc3LjM2LDI1Niw1My4zOCw1My4zOCwwLDAsMCwyMjQsMjAyLjY2Wm0xMjQuNzEtNDFhNTQsNTQsMCwwLDAtMzAuNDEtMzAuNDFjLTIxLTguMjktNzEtNi40My05NC4zLTYuNDNzLTczLjI1LTEuOTMtOTQuMzEsNi40M2E1NCw1NCwwLDAsMC0zMC40MSwzMC40MWMtOC4yOCwyMS02LjQzLDcxLjA1LTYuNDMsOTQuMzNTOTEsMzI5LjI2LDk5LjMyLDM1MC4zM2E1NCw1NCwwLDAsMCwzMC40MSwzMC40MWMyMSw4LjI5LDcxLDYuNDMsOTQuMzEsNi40M3M3My4yNCwxLjkzLDk0LjMtNi40M2E1NCw1NCwwLDAsMCwzMC40MS0zMC40MWM4LjM1LTIxLDYuNDMtNzEuMDUsNi40My05NC4zM1MzNTcuMSwxODIuNzQsMzQ4Ljc1LDE2MS42N1pNMjI0LDMzOGE4Miw4MiwwLDEsMSw4Mi04MkE4MS45LDgxLjksMCwwLDEsMjI0LDMzOFptODUuMzgtMTQ4LjNhMTkuMTQsMTkuMTQsMCwxLDEsMTkuMTMtMTkuMTRBMTkuMSwxOS4xLDAsMCwxLDMwOS40MiwxODkuNzRaTTQwMCwzMkg0OEE0OCw0OCwwLDAsMCwwLDgwVjQzMmE0OCw0OCwwLDAsMCw0OCw0OEg0MDBhNDgsNDgsMCwwLDAsNDgtNDhWODBBNDgsNDgsMCwwLDAsNDAwLDMyWk0zODIuODgsMzIyYy0xLjI5LDI1LjYzLTcuMTQsNDguMzQtMjUuODUsNjdzLTQxLjQsMjQuNjMtNjcsMjUuODVjLTI2LjQxLDEuNDktMTA1LjU5LDEuNDktMTMyLDAtMjUuNjMtMS4yOS00OC4yNi03LjE1LTY3LTI1Ljg1cy0yNC42My00MS40Mi0yNS44NS02N2MtMS40OS0yNi40Mi0xLjQ5LTEwNS42MSwwLTEzMiwxLjI5LTI1LjYzLDcuMDctNDguMzQsMjUuODUtNjdzNDEuNDctMjQuNTYsNjctMjUuNzhjMjYuNDEtMS40OSwxMDUuNTktMS40OSwxMzIsMCwyNS42MywxLjI5LDQ4LjMzLDcuMTUsNjcsMjUuODVzMjQuNjMsNDEuNDIsMjUuODUsNjcuMDVDMzg0LjM3LDIxNi40NCwzODQuMzcsMjk1LjU2LDM4Mi44OCwzMjJaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5zdGFncmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNC4xIDE0MWMtNjMuNiAwLTExNC45IDUxLjMtMTE0LjkgMTE0LjlzNTEuMyAxMTQuOSAxMTQuOSAxMTQuOVMzMzkgMzE5LjUgMzM5IDI1NS45IDI4Ny43IDE0MSAyMjQuMSAxNDF6bTAgMTg5LjZjLTQxLjEgMC03NC43LTMzLjUtNzQuNy03NC43czMzLjUtNzQuNyA3NC43LTc0LjcgNzQuNyAzMy41IDc0LjcgNzQuNy0zMy42IDc0LjctNzQuNyA3NC43em0xNDYuNC0xOTQuM2MwIDE0LjktMTIgMjYuOC0yNi44IDI2LjgtMTQuOSAwLTI2LjgtMTItMjYuOC0yNi44czEyLTI2LjggMjYuOC0yNi44IDI2LjggMTIgMjYuOCAyNi44em03Ni4xIDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTguOCAzODhjLTcuOCAxOS42LTIyLjkgMzQuNy00Mi42IDQyLjYtMjkuNSAxMS43LTk5LjUgOS0xMzIuMSA5cy0xMDIuNyAyLjYtMTMyLjEtOWMtMTkuNi03LjgtMzQuNy0yMi45LTQyLjYtNDIuNi0xMS43LTI5LjUtOS05OS41LTktMTMyLjFzLTIuNi0xMDIuNyA5LTEzMi4xYzcuOC0xOS42IDIyLjktMzQuNyA0Mi42LTQyLjYgMjkuNS0xMS43IDk5LjUtOSAxMzIuMS05czEwMi43LTIuNiAxMzIuMSA5YzE5LjYgNy44IDM0LjcgMjIuOSA0Mi42IDQyLjYgMTEuNyAyOS41IDkgOTkuNSA5IDEzMi4xczIuNyAxMDIuNy05IDEzMi4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluc3RhbG9kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImRhdGFOYW1lXCI6XCJMYXllciAxXCIsXCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTMuMzg0LDQ4MEgzODcuMTEzTDUwMi41NTQsMjc1Ljc2NSwyMDQuMjI5LDMzMy4yMTFaTTUwNC43MjYsMjQwLjA3OCwzODcuMTEzLDMySDE1NS42NjlMMzYwLjIzLDI2Ny45Wk0xMjQuMzg2LDQ4LjgwOSw3LjI3NCwyNTYsMTIzLjIzNiw0NjEuMTU0LDIyNS42MjcsMTY1LjU2MVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnRlcmNvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTIgMzJINTZDMjUuMSAzMiAwIDU3LjEgMCA4OHYzMzZjMCAzMC45IDI1LjEgNTYgNTYgNTZoMzM2YzMwLjkgMCA1Ni0yNS4xIDU2LTU2Vjg4YzAtMzAuOS0yNS4xLTU2LTU2LTU2em0tMTA4LjMgODIuMWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxMTQuMXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjIxNi41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjEwNi42em0tNzQuNyA3LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDB2MTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTE0LjF6TTU5LjcgMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjEzNC4zYzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjE0NHptMzIzLjQgMjI3LjhjLTcyLjggNjMtMjQxLjcgNjUuNC0zMTguMSAwLTE1LTEyLjggNC40LTM1LjUgMTkuNC0yMi43IDY1LjkgNTUuMyAyMTYuMSA1My45IDI3OS4zIDAgMTQuOS0xMi45IDM0LjMgOS44IDE5LjQgMjIuN3ptNS4yLTkzLjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTQ0YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjEzNC4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUludGVybmV0RXhwbG9yZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgzLjA0OSAxNTkuNzA2YzEwLjg1NS0yNC41NzUgMjEuNDI0LTYwLjQzOCAyMS40MjQtODcuODcxIDAtNzIuNzIyLTc5LjY0MS05OC4zNzEtMjA5LjY3My0zOC41NzctMTA3LjYzMi03LjE4MS0yMTEuMjIxIDczLjY3LTIzNy4wOTggMTg2LjQ1NyAzMC44NTItMzQuODYyIDc4LjI3MS04Mi4yOTggMTIxLjk3Ny0xMDEuMTU4QzEyNS40MDQgMTY2Ljg1IDc5LjEyOCAyMjguMDAyIDQzLjk5MiAyOTEuNzI1IDIzLjI0NiAzMjkuNjUxIDAgMzkwLjk0IDAgNDM2Ljc0N2MwIDk4LjU3NSA5Mi44NTQgODYuNSAxODAuMjUxIDQyLjAwNiAzMS40MjMgMTUuNDMgNjYuNTU5IDE1LjU3MyAxMDEuNjk1IDE1LjU3MyA5Ny4xMjQgMCAxODQuMjQ5LTU0LjI5NCAyMTYuODE0LTE0Ni4wMjJIMzc3LjkyN2MtNTIuNTA5IDg4LjU5My0xOTYuODE5IDUyLjk5Ni0xOTYuODE5LTQ3LjQzNkg1MDkuOWM2LjQwNy00My41ODEtMS42NTUtOTUuNzE1LTI2Ljg1MS0xNDEuMTYyek02NC41NTkgMzQ2Ljg3N2MxNy43MTEgNTEuMTUgNTMuNzAzIDk1Ljg3MSAxMDAuMjY2IDEyMy4zMDQtODguNzQxIDQ4Ljk0LTE3My4yNjcgMjkuMDk2LTEwMC4yNjYtMTIzLjMwNHptMTE1Ljk3Ny0xMDguODczYzItNTUuMTUxIDUwLjI3Ni05NC44NzEgMTAzLjk4LTk0Ljg3MSA1My40MTggMCAxMDEuOTgxIDM5LjcyIDEwMy45ODEgOTQuODcxSDE4MC41MzZ6bTE4NC41MzYtMTg3LjZjMjEuNDI1LTEwLjI4NyA0OC41NjMtMjIuMDAzIDcyLjU1OC0yMi4wMDMgMzEuNDIyIDAgNTQuMjc0IDIxLjcxNyA1NC4yNzQgNTMuNzIyIDAgMjAuMDAzLTcuNDI3IDQ5LjAwNy0xNC41NjkgNjcuODY3LTI2LjI4LTQyLjI5Mi02NS45ODYtODEuNTg0LTExMi4yNjMtOTkuNTg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUludmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy40IDMySDQwLjZDMTguMiAzMiAwIDUwLjIgMCA3Mi42djM2Ni44QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBoMzY2LjhjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZWNzIuNmMwLTIyLjQtMTguMi00MC42LTQwLjYtNDAuNnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45LjdsLTI1LjggMTAzLjNIMTc3bDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zLjEtMTQuMy45LTE0IDIzLTEwNC4xSDgxLjdsOS43LTM1LjZoNzYuNGMtMzMuNiAxMzMuNy0zMi42IDEyNi45LTMyLjkgMTM4LjIgMCAyMC45IDQwLjkgMTMuNSA1Ny40LTIzLjJsMTkuOC03OS40aC0zMi4zbDkuNy0zNS42aDY4LjhsLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW94aG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTYgMTYwaC02Ny4zQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2YzAgMTYuNCAxLjYgMzIuNSA0LjcgNDhIMjRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0aDY3LjNjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhINjE2YzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRINDI0YzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0SDEyNS44Yy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRIMjE2Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGgyOTguMmMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6bS0zMDQtMjRoMjA4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSXRjaElvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcxLjkyIDM0Ljc3QzUwLjIgNDcuNjcgNy40IDk2Ljg0IDcgMTA5LjczdjIxLjM0YzAgMjcuMDYgMjUuMjkgNTAuODQgNDguMjUgNTAuODQgMjcuNTcgMCA1MC41NC0yMi44NSA1MC41NC01MCAwIDI3LjEyIDIyLjE4IDUwIDQ5Ljc2IDUwczQ5LTIyLjg1IDQ5LTUwYzAgMjcuMTIgMjMuNTkgNTAgNTEuMTYgNTBoLjVjMjcuNTcgMCA1MS4xNi0yMi44NSA1MS4xNi01MCAwIDI3LjEyIDIxLjQ3IDUwIDQ5IDUwczQ5Ljc2LTIyLjg1IDQ5Ljc2LTUwYzAgMjcuMTIgMjMgNTAgNTAuNTQgNTAgMjMgMCA0OC4yNS0yMy43OCA0OC4yNS01MC44NHYtMjEuMzRjLS40LTEyLjktNDMuMi02Mi4wNy02NC45Mi03NUMzNzIuNTYgMzIuNCAzMjUuNzYgMzIgMjU2IDMyUzkxLjE0IDMzLjEgNzEuOTIgMzQuNzd6bTEzMi4zMiAxMzQuMzljLTIyIDM4LjQtNzcuOSAzOC43MS05OS44NS4yNS0xMy4xNyAyMy4xNC00My4xNyAzMi4wNy01NiAyNy42Ni0zLjg3IDQwLjE1LTEzLjY3IDIzNy4xMyAxNy43MyAyNjkuMTUgODAgMTguNjcgMzAyLjA4IDE4LjEyIDM3OS43NiAwIDMxLjY1LTMyLjI3IDIxLjMyLTIzMiAxNy43NS0yNjkuMTUtMTIuOTIgNC40NC00Mi44OC00LjYtNTYtMjcuNjYtMjIgMzguNTItNzcuODUgMzguMS05OS44NS0uMjQtNy4xIDEyLjQ5LTIzLjA1IDI4Ljk0LTUxLjc2IDI4Ljk0YTU3LjU0IDU3LjU0IDAgMCAxLTUxLjc1LTI4Ljk0em0tNDEuNTggNTMuNzdjMTYuNDcgMCAzMS4wOSAwIDQ5LjIyIDE5Ljc4YTQzNi45MSA0MzYuOTEgMCAwIDEgODguMTggMEMzMTguMjIgMjIzIDMzMi44NSAyMjMgMzQ5LjMxIDIyM2M1Mi4zMyAwIDY1LjIyIDc3LjUzIDgzLjg3IDE0NC40NSAxNy4yNiA2Mi4xNS01LjUyIDYzLjY3LTMzLjk1IDYzLjczLTQyLjE1LTEuNTctNjUuNDktMzIuMTgtNjUuNDktNjIuNzktMzkuMjUgNi40My0xMDEuOTMgOC43OS0xNTUuNTUgMCAwIDMwLjYxLTIzLjM0IDYxLjIyLTY1LjQ5IDYyLjc5LTI4LjQyLS4wNi01MS4yLTEuNTgtMzMuOTQtNjMuNzMgMTguNjctNjcgMzEuNTYtMTQ0LjQ1IDgzLjg4LTE0NC40NXpNMjU2IDI3MC43OXMtNDQuMzggNDAuNzctNTIuMzUgNTUuMjFsMjktMS4xN3YyNS4zMmMwIDEuNTUgMjEuMzQuMTYgMjMuMzMuMTYgMTEuNjUuNTQgMjMuMzEgMSAyMy4zMS0uMTZ2LTI1LjI4bDI5IDEuMTdjLTgtMTQuNDgtNTIuMzUtNTUuMjQtNTIuMzUtNTUuMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSXR1bmVzTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yLjgtNS4yIDMtOS42IDcuMS0xMi45IDQuMi0zLjUgMTEuOC01LjUgMTMuNC01LjUgMjA0LTM4LjIgMjI4LjktNDMuMSAyMzIuNC00My4xIDExLjUtLjggMTguMSA2IDE4LjEgMTcuNi4yIDM0NC41IDEuMSAzMjYtMS44IDMzOC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUl0dW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuNiA4MC4zQzEyOSA4MC4zIDUyLjUgMTU3IDUyLjUgMjUxLjVTMTI5IDQyMi44IDIyMy42IDQyMi44czE3MS4yLTc2LjcgMTcxLjItMTcxLjJjMC05NC42LTc2LjctMTcxLjMtMTcxLjItMTcxLjN6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEuNSAxMTAuOC0xLjIgMTE4LjUtMi4xIDktNy42IDE1LjgtMTQuOSAxOS42LTguMyA0LjYtMjMuNCA2LjYtMzEuNCA1LjItMjEuNC00LTI4LjktMjguNy0xNC40LTQyLjkgOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyA1LTUuNy45LTEyNyAyLjYtMTMzLjcuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNi40IDE2MS40LTEgMTY3LjZ6TTM0NS4yIDMySDEwMi44QzQ1LjkgMzIgMCA3Ny45IDAgMTM0Ljh2MjQyLjRDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBoMjQyLjRjNTcgMCAxMDIuOC00NS45IDEwMi44LTEwMi44VjEzNC44QzQ0OCA3Ny45IDQwMi4xIDMyIDM0NS4yIDMyek0yMjMuNiA0NDRjLTEwNi4zIDAtMTkyLjUtODYuMi0xOTIuNS0xOTIuNVMxMTcuMyA1OSAyMjMuNiA1OXMxOTIuNSA4Ni4yIDE5Mi41IDE5Mi41UzMyOS45IDQ0NCAyMjMuNiA0NDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmF2YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzcuNzQgMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44QzI5NiA1My4yIDI0Mi44NCAwIDI0Mi44NCAwYzIxLjUgODQuNS03NS42IDExMC4xLTExMC43IDE2Mi42LTIzLjkgMzUuOSAxMS43IDc0LjQgNjAuMiAxMTguMnptMTE0LjYtMTc2LjJjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOWMtMjYuOS0zNy44LTQ3LjUtNTYuNiA2NC4xLTEyMS4zem0tNi4xIDI3MC41YTEyLjE5IDEyLjE5IDAgMCAxLTIgMi42YzEyOC4zLTMzLjcgODEuMS0xMTguOSAxOS44LTk3LjNhMTcuMzMgMTcuMzMgMCAwIDAtOC4yIDYuMyA3MC40NSA3MC40NSAwIDAgMSAxMS0zYzMxLTYuNSA3NS41IDQxLjUtMjAuNiA5MS40ek0zNDggNDM3LjRzMTQuNSAxMS45LTE1LjkgMjEuMmMtNTcuOSAxNy41LTI0MC44IDIyLjgtMjkxLjYuNy0xOC4zLTcuOSAxNi0xOSAyNi44LTIxLjMgMTEuMi0yLjQgMTcuNy0yIDE3LjctMi0yMC4zLTE0LjMtMTMxLjMgMjguMS01Ni40IDQwLjJDMjMyLjg0IDUwOS40IDQwMSA0NjEuMyAzNDggNDM3LjR6TTEyNC40NCAzOTZjLTc4LjcgMjIgNDcuOSA2Ny40IDE0OC4xIDI0LjVhMTg1Ljg5IDE4NS44OSAwIDAgMS0yOC4yLTEzLjhjLTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC42NCAzNTNjLTU5LjIgMTEuNC05My41IDExLjEtMTM2LjggNi42LTMzLjUtMy41LTExLjYtMTkuNy0xMS42LTE5LjctODYuOCAyOC44IDQ4LjIgNjEuNCAxNjkuNSAyNS45YTYwLjM3IDYwLjM3IDAgMCAxLTIxLjEtMTIuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZWRpT3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk4LjUgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOXYtMi40IDEtMSAyLjRjMCAxLTUuNiAyMTktNy45IDMwNi45bC0zMS40LTQ1LjkgMjAuMiA1NS41LTYyLjYgOS4xIDYyLjYgOS4xLTI0LjIgNDcuNCAzNC41LTM2LjJjLTEuOCA2OC44LTIuMiA4NS43LTIuMiA4NS43cy0xNTQuNC03MS43LTY4LjYtMjMwLjFjMCAwLTEwNy0xMTguMS0xMC4xLTE5MC43IDAgMC0xNjUuNSA5OS45LTYwLjUgMjcxLjUgMCAwLTg2LjgtODQuOC00MS40LTE3MC41IDAgMC03OC43IDExMSAxNy4yIDIzMy4xIDAgMC0yNi4yLTE2LjEtNDkuNC03Ny43IDAgMCAxNi45IDE4My4zIDIyMiAxODUuN2g0LjFjMjA1LTIuNCAyMjItMTg1LjcgMjIyLTE4NS43LTIzLjYgNjEuNS00OS45IDc3LjctNDkuOSA3Ny43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplbmtpbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg3LjEgNDI1Yy0xLjQtMTEuMi0xOS0yMy4xLTI4LjItMzEuOS01LjEtNS0yOS0yMy4xLTMwLjQtMjkuOS0xLjQtNi42IDkuNy0yMS41IDEzLjMtMjguOSA1LjEtMTAuNyA4LjgtMjMuNyAxMS4zLTMyLjYgMTguOC02Ni4xIDIwLjctMTU2LjktNi4yLTIxMS4yLTEwLjItMjAuNi0zOC42LTQ5LTU2LjQtNjIuNS00Mi0zMS43LTExOS42LTM1LjMtMTcwLjEtMTYuNi0xNC4xIDUuMi0yNy44IDkuOC00MC4xIDE3LjEtMzMuMSAxOS40LTY4LjMgMzIuNS03OC4xIDcxLjYtMjQuMiAxMC44LTMxLjUgNDEuOC0zMC4zIDc3LjguMiA3IDQuMSAxNS44IDIuNyAyMi40LS43IDMuMy01LjIgNy42LTYuMSA5LjgtMTEuNiAyNy43LTIuMyA2NCAxMS4xIDgzLjcgOC4xIDExLjkgMjEuNSAyMi40IDM5LjIgMjUuMi43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42Qzg5IDQwNy4yIDczLjcgNDE1IDU0LjIgNDI5Yy0xMi42IDktMzIuMyAxMC4yLTI5LjIgMzEuMSAyLjEgMTQuMSAxMC4xIDMxLjYgMTQuNyA0NS44LjcgMiAxLjQgNC4xIDIuMSA2aDQyMmM0LjktMTUuMyA5LjctMzAuOSAxNC42LTQ3LjIgMy40LTExLjQgMTAuMi0yNy44IDguNy0zOS43ek0yMDUuOSAzMy43YzEuOC0uNSAzLjQuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40LjctMTcuNyA2LTI4LjMgNy41IDEzLjYtMjkuOSA1Ni4xLTU0IDg5LjMtNjMuNHptLTEwNC44IDkzLjZjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43LjMtMjguMy0zNC44LTQ2LjMtNjEuMy0yOS42LTEuOC0yMS41LTQuOS01MS43IDkuOC02Ny44em0zNi43IDIwMC4yYy0xLTQuMS0yLjctMTIuOS0yLjMtMTUuMSAxLjYtOC43IDE3LjEtMTIuNSAxMS0yNC43LTExLjMtLjEtMTMuOCAxMC4yLTI0LjEgMTEuMy0yNi43IDIuNi00NS42LTM1LjQtNDQuNC01OC40IDEtMTkuNSAxNy42LTM4LjIgNDAuMS0zNS44IDE2IDEuOCAyMS40IDE5LjIgMjQuNSAzNC43IDkuMi41IDIyLjUtLjQgMjYuOS03LjYtLjYtMTcuNS04LjgtMzEuNi04LjItNDcuNyAxLTMwLjMgMTcuNS01Ny42IDQuOC04Ny40IDEzLjYtMzAuOSA1My41LTU1LjMgODMuMS03MCAzNi42LTE4LjMgOTQuOS0zLjcgMTI5LjMgMTUuOCAxOS43IDExLjEgMzQuNCAzMi43IDQ4LjMgNTAuNy0xOS41LTUuOC0zNi4xIDQuMi0zMy4xIDIwLjMgMTYuMy0xNC45IDQ0LjItLjIgNTIuNSAxNi40IDcuOSAxNS44IDcuOCAzOS4zIDkgNjIuOCAyLjkgNTctMTAuNCAxMTUuOS0zOS4xIDE1Ny4xLTcuNyAxMS0xNC4xIDIzLTI0LjkgMzAuNi0yNiAxOC4yLTY1LjQgMzQuNy05OS4yIDIzLjQtNDQuNy0xNS02NS00NC44LTg5LjUtNzguOC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMS42LTE2LjV6bS0xNy4yLTIwYy0xNi44LjgtMjYtMS4yLTM4LjMtMTAuOC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTIyNiA0MzguNmMtMTEuNi0uNy00OC4xLTE0LTM4LjUtMjMuNyA5LjQgNi41IDI3LjUgNC45IDQxLjMgNy4zLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek01Ny43IDQ5Ny4xYy00LjMtMTIuNy05LjItMjUuMS0xNC44LTM2LjkgMzAuOC0yMy44IDY1LjMtNDguOSAxMDIuMi02My41IDIuOC0xLjEgMjMuMiAyNS40IDI2LjIgMjcuNiAxNi41IDExLjcgMzcgMjEgNTYuMiAzMC4yIDEuMiA4LjggMy45IDIwLjIgOC43IDM1LjUuNyAyLjMgMS40IDQuNyAyLjIgNy4ySDU3Ljd6bTI0MC42IDUuN2gtLjhjLjMtLjIuNS0uNC44LS41di41em03LjUtNS43YzIuMS0xLjQgNC4zLTIuOCA2LjQtNC4zIDEuMSAxLjQgMi4yIDIuOCAzLjIgNC4zaC05LjZ6bTE1LjEtMjQuN2MtMTAuOCA3LjMtMjAuNiAxOC4zLTMzLjMgMjUuMi02IDMuMy0yNyAxMS43LTMzLjQgMTAuMi0zLjYtLjgtMy45LTUuMy01LjQtOS41LTMuMS05LTEwLjEtMjMuNC0xMC44LTM3LS44LTE3LjItMi41LTQ2IDE2LTQyLjQgMTQuOSAyLjkgMzIuMyA5LjcgNDMuOSAxNi4xIDcuMSAzLjkgMTEuMSA4LjYgMjEuOSA5LjUtLjEgMS40LS4xIDIuOC0uMiA0LjMtNS45IDMuOS0xNS4zIDMuOC0yMS44IDcuMSA5LjUuNCAxNyAyLjcgMjMuNSA1LjktLjEgMy40LS4zIDctLjQgMTAuNnptNTMuNCAyNC43aC0xNGMtLjEtMy4yLTIuOC01LjgtNi4xLTUuOHMtNS45IDIuNi02LjEgNS44aC0xNy40Yy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkuOCAxNC4yIDExLjcgMjUuNCAxMWwtLjYgMTIuNnptOC43IDBjLjItNCAuNC03LjguNi0xMS41IDE1LjYtNy4zIDI5IDEuMyAzNS43IDExLjVIMzgzem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFINDI4Yy42LTEuMSAxLjItMi4yIDEuOS0zLjMtMi42LTYuMS05LTguNy0xMC45LTE1LjUgMTIuMS0yMi43IDYuNS05My40LTI0LjItNzguNSA0LjMtNi4zIDE1LjYtMTEuNSAyMC44LTE5LjMgMTMgMTAuNCAyMC44IDIwLjMgMzMuMiAzMS40IDYuOCA2IDIwIDEzLjMgMjEuNCAyMy4xLjggNS41LTIuNiAxOC45LTMuOCAyNS4xek0yMjIuMiAxMzAuNWM1LjQtMTQuOSAyNy4yLTM0LjcgNDUtMzIgNy43IDEuMiAxOCA4LjIgMTIuMiAxNy43LTMwLjItNy00NS4yIDEyLjYtNTQuNCAzMy4xLTguMS0yLTQuOS0xMy4xLTIuOC0xOC44em0xODQuMSA2My4xYzguMi0zLjYgMjIuNC0uNyAyOS42LTUuMy00LjItMTEuNS0xMC4zLTIxLjQtOS4zLTM3LjcuNSAwIDEgMCAxLjQuMSA2LjggMTQuMiAxMi43IDI5LjIgMjEuNCA0MS43LTUuNyAxMy41LTQzLjYgMjUuNC00My4xIDEuMnptMjAuNC00M3ptLTExNy4yIDQ1LjdjLTYuOC0xMC45LTE5LTMyLjUtMTQuNS00NS4zIDYuNSAxMS45IDguNiAyNC40IDE3LjggMzMuMyA0LjEgNCAxMi4yIDkgOC4yIDIwLjItLjkgMi43LTcuOCA4LjYtMTEuNyA5LjctMTQuNCA0LjMtNDcuOS45LTM2LjYtMTcuMSAxMS45LjcgMjcuOSA3LjggMzYuOC0uOHptMjcuMyA3MGMzLjggNi42IDEuNCAxOC43IDEyLjEgMjAuNiAyMC4yIDMuNCA0My42LTEyLjMgNTguMS0xNy44IDktMTUuMi0uOC0yMC43LTguOS0zMC41LTE2LjYtMjAtMzguOC00NC44LTM4LTc0LjcgNi43LTQuOSA3LjMgNy40IDguMiA5LjcgOC43IDIwLjMgMzAuNCA0Ni4yIDQ2LjMgNjMuNSAzLjkgNC4zIDEwLjMgOC40IDExIDExLjIgMi4xIDguMi01LjQgMTgtNC41IDIzLjUtMjEuNyAxMy45LTQ1LjggMjkuMS04MS40IDI1LjYtNy40LTYuNy0xMC4zLTIxLjQtMi45LTMxLjF6bS0yMDEuMy05LjJjLTYuOC0zLjktOC40LTIxLTE2LjQtMjEuNC0xMS40LS43LTkuMyAyMi4yLTkuMyAzNS41LTcuOC03LjEtOS4yLTI5LjEtMy41LTQwLjMtNi42LTMuMi05LjUgMy42LTEzLjEgNS45IDQuNy0zNC4xIDQ5LjgtMTUuOCA0Mi4zIDIwLjN6bTI5OS42IDI4LjhjLTEwLjEgMTkuMi0yNC40IDQwLjQtNTQgNDEtLjYtNi4yLTEuMS0xNS42IDAtMTkuNCAyMi43LTIuMiAzNi42LTEzLjcgNTQtMjEuNnptLTE0MS45IDEyLjRjMTguOSA5LjkgNTMuNiAxMSA3OS4zIDEwLjIgMS40IDUuNiAxLjMgMTIuNiAxLjQgMTkuNC0zMyAxLjgtNzItNi40LTgwLjctMjkuNnptOTIuMiA0Ni43Yy0xLjcgNC4zLTUuMyA5LjMtOS44IDExLjEtMTIuMSA0LjktNDUuNiA4LjctNjIuNC0uMy0xMC43LTUuNy0xNy41LTE4LjUtMjMuNC0yNi0yLjgtMy42LTE2LjktMTIuOS0uMi0xMi45IDEzLjEgMzIuNyA1OCAyOSA5NS44IDI4LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmlyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTAgMjQxLjdDNDE3LjEgMTY5IDMyMC42IDcxLjggMjQ4LjUgMCA4MyAxNjQuOSA2IDI0MS43IDYgMjQxLjdjLTcuOSA3LjktNy45IDIwLjcgMCAyOC43QzEzOC44IDQwMi43IDY3LjggMzMxLjkgMjQ4LjUgNTEyYzM3OS40LTM3OCAxNS43LTE2LjcgMjQxLjUtMjQxLjcgOC03LjkgOC0yMC43IDAtMjguNnptLTI0MS41IDkwbC03Ni03NS43IDc2LTc1LjcgNzYgNzUuNy03NiA3NS43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvZ2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3OC4xIDQ1QzMzNy42IDE5LjkgMjkyLjYgOCAyNDguMiA4IDE2NSA4IDgzLjggNDkuOSAzNi45IDEyNS45Yy03MS45IDExNi42LTM1LjYgMjY5LjMgODEgMzQxLjJzMjY5LjMgMzUuNiAzNDEuMi04MC45YzcxLjktMTE2LjYgMzUuNi0yNjkuNC04MS0zNDEuMnptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnptLTIwMC44LTg2LjNjLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuN0M4Ny4zIDE2MS41IDQ4LjYgMjUyLjEgMzcuNiAyOTNjLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjFDMTI4IDQzLjQgMjU5LjYgMTIuMiAzNjAuMSA3NC4xYzc0LjggNDYuMSAxMTEuMiAxMzAuOSA5OS4zIDIxMi43LTI0LjktLjUtMTc5LjMtMy42LTIzMC4zLTQuOXptMTgzLjgtNTQuOGMtMjIuNy02LTU3IDExLjMtODYuNyAyNy4yLTI5LjcgMTUuOC0zMS4xIDguMi0zMS4xIDguMnM0MC4yLTI4LjEgNTAuNy0zNC41IDMxLjktMTQgMTMuNC0yNC42Yy0zLjItMS44LTYuNy0yLjctMTAuNC0yLjctMTcuOCAwLTQxLjUgMTguNy02Ny41IDM1LjYtMzEuNSAyMC41LTY1LjMgMzEuMy02NS4zIDMxLjNsMTY5LjUtMS42IDQ2LjUtMjMuNHMzLjYtOS41LTE5LjEtMTUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKb29tbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjYgOTIuMUMuNiA1OC44IDI3LjQgMzIgNjAuNCAzMmMzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMS42IDk2LjUgMzBsLTQ0LjMgNDQuM2MtMjAuNS0yMC41LTQyLjYtMTYuMy01NS40LTMuNS0xNC4zIDE0LjMtMTQuMyAzNy45IDAgNTIuMmw5OS41IDk5LjUtNDQgNDQuM2MtODcuNy04Ny4yLTQ5LjctNDkuNy05OS44LTk5LjctMjYuOC0yNi41LTM1LTY0LjgtMjQuOC05OC45QzIwLjQgMTQ0LjYuNiAxMjAuNy42IDkyLjF6bTEyOS41IDExNi40bDQ0LjMgNDQuM2MxMC0xMCA4OS43LTg5LjcgOTkuNy05OS44IDE0LjMtMTQuMyAzNy42LTE0LjMgNTEuOSAwIDEyLjggMTIuOCAxNyAzNS0zLjUgNTUuNGw0NCA0NC4zYzMxLjItMzEuMiAzOC41LTY3LjYgMjguOS0xMDEuMiAyOS4yLTQuMSA1MS45LTI5LjIgNTEuOS01OS41IDAtMzMuMi0yNi44LTYwLjEtNTkuOC02MC4xLTMwLjMgMC01NS40IDIyLjUtNTkuNSA1MS42LTMzLjgtOS45LTcxLjctMS41LTk4LjMgMjUuMS0xOC4zIDE5LjEtNzEuMSA3MS41LTk5LjYgOTkuOXptMjY2LjMgMTUyLjJjOC4yLTMyLjctLjktNjguNS0yNi4zLTkzLjktMTEuOC0xMi4yIDUgNC43LTk5LjUtOTkuN2wtNDQuMyA0NC4zIDk5LjcgOTkuN2MxNC4zIDE0LjMgMTQuMyAzNy42IDAgNTEuOS0xMi44IDEyLjgtMzUgMTctNTUuNC0zLjVsLTQ0IDQ0LjNjMjcuNiAzMC4yIDY4IDM4LjggMTAyLjcgMjggNS41IDI3LjQgMjkuNyA0OC4xIDU4LjkgNDguMSAzMyAwIDU5LjgtMjYuOCA1OS44LTYwLjEgMC0zMC4yLTIyLjUtNTUtNTEuNi01OS4xem0tODQuMy01My4xbC00NC00NC4zYy04NyA4Ni40LTUwLjQgNTAuNC05OS43IDk5LjgtMTQuMyAxNC4zLTM3LjYgMTQuMy01MS45IDAtMTMuMS0xMy40LTE2LjktMzUuMyAzLjItNTUuNGwtNDQtNDQuM2MtMzAuMiAzMC4yLTM4IDY1LjItMjkuNSA5OC4zLTI2LjcgNi00Ni4yIDI5LjktNDYuMiA1OC4yQzAgNDUzLjIgMjYuOCA0ODAgNTkuOCA0ODBjMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKc1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yNDMuOCAzODEuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNWwzNC4zLTIwLjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41VjIzNy43aDQyLjF2MTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzbDM0LjMtMTkuOGM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTI0My44IDM0OS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41LTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41bDM0LjMtMjAuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVWMjM3LjdoNDIuMXYxNDMuN3ptOTkuNiA2My41Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDNsMzQuMy0xOS44YzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKc2ZpZGRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuNjM0IDIzNy40NjJjLTQuNzI3LTIuNjIxLTUuNjY0LTUuNzQ4LTYuMzgxLTEwLjc3Ni0yLjM1Mi0xNi40ODgtMy41MzktMzMuNjE5LTkuMDk3LTQ5LjA5NS0zNS44OTUtOTkuOTU3LTE1My45OS0xNDMuMzg2LTI0Ni44NDktOTEuNjQ2LTI3LjM3IDE1LjI1LTQ4Ljk3MSAzNi4zNjktNjUuNDkzIDYzLjkwMy0zLjE4NC0xLjUwOC01LjQ1OC0yLjcxLTcuODI0LTMuNjg2LTMwLjEwMi0xMi40MjEtNTkuMDQ5LTEwLjEyMS04NS4zMzEgOS4xNjctMjUuNTMxIDE4LjczNy0zNi40MjIgNDQuNTQ4LTMyLjY3NiA3Ni40MDguMzU1IDMuMDI1LTEuOTY3IDcuNjIxLTQuNTE0IDkuNTQ1LTM5LjcxMiAyOS45OTItNTYuMDMxIDc4LjA2NS00MS45MDIgMTI0LjYxNSAxMy44MzEgNDUuNTY5IDU3LjUxNCA3OS43OTYgMTA1LjYwOCA4MS40MzMgMzAuMjkxIDEuMDMxIDYwLjYzNy41NDYgOTAuOTU5LjUzOSA4NC4wNDEtLjAyMSAxNjguMDkuNTMxIDI1Mi4xMi0uNDggNTIuNjY0LS42MzQgOTYuMTA4LTM2Ljg3MyAxMDguMjEyLTg3LjI5MyAxMS41NC00OC4wNzQtMTEuMTQ0LTk3LjMtNTYuODMyLTEyMi42MzR6bTIxLjEwNyAxNTYuODhjLTE4LjIzIDIyLjQzMi00Mi4zNDMgMzUuMjUzLTcxLjI4IDM1LjY1LTU2Ljg3NC43ODEtMTEzLjc2Ny4yMy0xNzAuNjUyLjIzIDAgLjctMTYzLjAyOC4xNTktMTYzLjcyOC4xNTQtNDMuODYxLS4zMzItNzYuNzM5LTE5Ljc2Ni05NS4xNzUtNTkuOTk1LTE4LjkwMi00MS4yNDUtNC4wMDQtOTAuODQ4IDM0LjE4Ni0xMTYuMTA2IDkuMTgyLTYuMDczIDEyLjUwNS0xMS41NjYgMTAuMDk2LTIzLjEzNi01LjQ5LTI2LjM2MSA0LjQ1My00Ny45NTYgMjYuNDItNjIuOTgxIDIyLjk4Ny0xNS43MjMgNDcuNDIyLTE2LjE0NiA3Mi4wMzQtMy4wODMgMTAuMjY5IDUuNDUgMTQuNjA3IDExLjU2NCAyMi4xOTgtMi41MjcgMTQuMjIyLTI2LjM5OSAzNC41NTctNDYuNzI3IDYwLjY3MS02MS4yOTQgOTcuNDYtNTQuMzY2IDIyOC4zNyA3LjU2OCAyMzAuMjQgMTMyLjY5Ny4xMjIgOC4xNSAyLjQxMiAxMi40MjggOS44NDggMTUuODk0IDU3LjU2IDI2LjgyOSA3NC40NTYgOTYuMTIyIDM1LjE0MiAxNDQuNDk3em0tODcuNzg5LTgwLjQ5OWMtNS44NDggMzEuMTU3LTM0LjYyMiA1NS4wOTYtNjYuNjY2IDU1LjA5NS0xNi45NTMtLjAwMS0zMi4wNTgtNi41NDUtNDQuMDc5LTE3LjcwNS0yNy42OTctMjUuNzEzLTcxLjE0MS03NC45OC05NS45MzctOTMuMzg3LTIwLjA1Ni0xNC44ODgtNDEuOTktMTIuMzMzLTYwLjI3MiAzLjc4Mi00OS45OTYgNDQuMDcxIDE1Ljg1OSAxMjEuNzc1IDY3LjA2MyA3Ny4xODggNC41NDgtMy45NiA3Ljg0LTkuNTQzIDEyLjc0NC0xMi44NDQgOC4xODQtNS41MDkgMjAuNzY2LS44ODQgMTMuMTY4IDEwLjYyMi0xNy4zNTggMjYuMjg0LTQ5LjMzIDM4LjE5Ny03OC44NjMgMjkuMzAxLTI4Ljg5Ny04LjcwNC00OC44NC0zNS45NjgtNDguNjI2LTcwLjE3OSAxLjIyNS0yMi40ODUgMTIuMzY0LTQzLjA2IDM1LjQxNC01NS45NjUgMjIuNTc1LTEyLjYzOCA0Ni4zNjktMTMuMTQ2IDY2Ljk5MSAyLjQ3NEMyOTUuNjggMjgwLjcgMzIwLjQ2NyAzMjMuOTcgMzUyLjE4NSAzNDMuNDdjMjQuNTU4IDE1LjA5OSA1NC4yNTQgNy4zNjMgNjguODIzLTE3LjUwNiAyOC44My00OS4yMDktMzQuNTkyLTEwNS4wMTYtNzguODY4LTYzLjQ2LTMuOTg5IDMuNzQ0LTYuOTE3IDguOTMyLTExLjQxIDExLjcyLTEwLjk3NSA2LjgxMS0xNy4zMzMtNC4xMTMtMTIuODA5LTEwLjM1MyAyMC43MDMtMjguNTU0IDUwLjQ2NC00MC40NCA4My4yNzEtMjguMjE0IDMxLjQyOSAxMS43MTQgNDkuMTA4IDQ0LjM2NiA0Mi43NiA3OC4xODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2FnZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41aC02OS4yYy0zLjUgMC03IDEuOC0xMC41IDUuM0w4MC45IDMxMy41VjcuNXEwLTcuNS03LjUtNy41SDIxLjVRMTQgMCAxNCA3LjV2NDk3cTAgNy41IDcuNSA3LjVoNTEuOXE3LjUgMCA3LjUtNy41di0xMDlsMzAuOC0yOS4zIDExMC41IDE0MC42YzMgMy41IDYuNSA1LjMgMTAuNSA1LjNoNjYuOXE1LjI1IDAgNi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtleWJhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg2LjE3IDQxOWExOCAxOCAwIDEgMCAxOCAxOCAxOCAxOCAwIDAgMC0xOC0xOHptMTExLjkyLTE0Ny42Yy05LjUtMTQuNjItMzkuMzctNTIuNDUtODcuMjYtNzMuNzFxLTkuMS00LjA2LTE4LjM4LTcuMjdhNzguNDMgNzguNDMgMCAwIDAtNDcuODgtMTA0LjEzYy0xMi40MS00LjEtMjMuMzMtNi0zMi40MS01Ljc3LS42LTItMS44OS0xMSA5LjQtMzVMMTk4LjY2IDMybC01LjQ4IDcuNTZjLTguNjkgMTIuMDYtMTYuOTIgMjMuNTUtMjQuMzQgMzQuODlhNTEgNTEgMCAwIDAtOC4yOS0xLjI1Yy00MS41My0yLjQ1LTM5LTIuMzMtNDEuMDYtMi4zMy01MC42MSAwLTUwLjc1IDUyLjEyLTUwLjc1IDQ1Ljg4bC0yLjM2IDM2LjY4Yy0xLjYxIDI3IDE5Ljc1IDUwLjIxIDQ3LjYzIDUxLjg1bDguOTMuNTRhMjE0IDIxNCAwIDAgMC00Ni4yOSAzNS41NEMxNCAzMDQuNjYgMTQgMzc0IDE0IDQyOS43N3YzMy42NGwyMy4zMi0yOS44YTE0OC42IDE0OC42IDAgMCAwIDE0LjU2IDM3LjU2YzUuNzggMTAuMTMgMTQuODcgOS40NSAxOS42NCA3LjMzIDQuMjEtMS44NyAxMC02LjkyIDMuNzUtMjAuMTFhMTc4LjI5IDE3OC4yOSAwIDAgMS0xNS43Ni01My4xM2w0Ni44Mi01OS44My0yNC42NiA3NC4xMWM1OC4yMy00Mi40IDE1Ny4zOC02MS43NiAyMzYuMjUtMzguNTkgMzQuMiAxMC4wNSA2Ny40NS42OSA4NC43NC0yMy44NC43Mi0xIDEuMi0yLjE2IDEuODUtMy4yMmExNTYuMDkgMTU2LjA5IDAgMCAxIDIuOCAyOC40M2MwIDIzLjMtMy42OSA1Mi45My0xNC44OCA4MS42NC0yLjUyIDYuNDYgMS43NiAxNC41IDguNiAxNS43NCA3LjQyIDEuNTcgMTUuMzMtMy4xIDE4LjM3LTExLjE1QzQyOSA0NDMgNDM0IDQxNCA0MzQgMzgyLjMyYzAtMzguNTgtMTMtNzcuNDYtMzUuOTEtMTEwLjkyek0xNDIuMzcgMTI4LjU4bC0xNS43LS45My0xLjM5IDIxLjc5IDEzLjEzLjc4YTkzIDkzIDAgMCAwIC4zMiAxOS41N2wtMjIuMzgtMS4zNGExMi4yOCAxMi4yOCAwIDAgMS0xMS43Ni0xMi43OUwxMDcgMTE5YzEtMTIuMTcgMTMuODctMTEuMjcgMTMuMjYtMTEuMzJsMjkuMTEgMS43M2ExNDQuMzUgMTQ0LjM1IDAgMCAwLTcgMTkuMTd6bTE0OC40MiAxNzIuMThhMTAuNTEgMTAuNTEgMCAwIDEtMTQuMzUtMS4zOWwtOS42OC0xMS40OS0zNC40MiAyN2E4LjA5IDguMDkgMCAwIDEtMTEuMTMtMS4wOGwtMTUuNzgtMTguNjRhNy4zOCA3LjM4IDAgMCAxIDEuMzQtMTAuMzRsMzQuNTctMjcuMTgtMTQuMTQtMTYuNzQtMTcuMDkgMTMuNDVhNy43NSA3Ljc1IDAgMCAxLTEwLjU5LTFzLTMuNzItNC40Mi0zLjgtNC41M2E3LjM4IDcuMzggMCAwIDEgMS4zNy0xMC4zNEwyMTQgMjI1LjE5cy0xOC41MS0yMi0xOC42LTIyLjE0YTkuNTYgOS41NiAwIDAgMSAxLjc0LTEzLjQyIDEwLjM4IDEwLjM4IDAgMCAxIDE0LjMgMS4zN2w4MS4wOSA5Ni4zMmE5LjU4IDkuNTggMCAwIDEtMS43NCAxMy40NHpNMTg3LjQ0IDQxOWExOCAxOCAwIDEgMCAxOCAxOCAxOCAxOCAwIDAgMC0xOC0xOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLZXljZG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNS43IDYwLjMtNyA4Ni40LTIyLjQgNS4xIDUuMyAxOC41IDE5LjUgMjAuOSAyMi0zMi4yIDIwLjctNjkuNiAzMS4xLTEwOC4xIDMwLjItNDMuMy0xLjEtODQuNi0xNi43LTExNy43LTQ0LjQuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjRDMjAuNyA1MDMuMyAwIDQ4MS43IDAgNDU0LjljMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6bTM1NC45LTI1Mi40YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMy4zIDIzLjggMjUuMiAyNC4xIDI1LjUgOS42LTEuMyAxOS4yIDIgMjUuOSA5LjEgMTEuMyAxMiAxMC45IDMwLjktMS4xIDQyLjQtMTIgMTEuMy0zMC45IDEwLjktNDIuNC0xLjEtNi43LTctOS40LTE2LjgtNy42LTI2LjMtMjQuOS0yNi42LTQ0LjQtNDcuMi00NC40LTQ3LjIgNDIuNy0zNC4xIDYzLjMtNzkuNiA2NC40LTEyNC4yLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNGwtMjIgMjEuNUM3Mi43IDMyNCA2My4xIDI4Ny45IDY0LjIgMjUwLjljMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xbC0yNS4zLTI2LjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40QzczLjUgNDAuNyA5Mi4yIDQxIDEwNCA1My4xek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjljNDMuMyAxLjEgODQuNiAxNi43IDExNy43IDQ0LjZsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjVDNDE2LjUgMjkuNyA0MzguOSA4IDQ2NC45IDh6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkuNCAxNi40IDEuMSA3OC4xIDkuOCAxMzMuNCA4MS4xIDEyMy44IDE1OS4xLTkuOCA3OC4xLTgxLjEgMTMzLjQtMTU5LjEgMTIzLjgtNzguMS05LjgtMTMzLjQtODEuMS0xMjMuOC0xNTkuMiA5LjMtNzIuNCA3MC4xLTEyNC42IDE0Mi43LTEyNC44em0tNTkgMTE5LjRjLjYgMjIuNyAxMi4yIDQxLjggMzIuNCA1Mi4ybC0xMSA1MS43aDczLjdsLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xLjgtNTcuMyAyNC44LTU4LjIgNTguM3pNMjU2IDE2MFwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpY2tzdGFydGVySyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDcuMyAxMTQuNGMwLTU2LjItMzIuNS04Mi40LTczLjQtODIuNEMyNi4yIDMyIDAgNjguMiAwIDExMy40djI4M2MwIDQ3LjMgMjUuMyA4My40IDc0LjkgODMuNCAzOS44IDAgNzIuNC0yNS42IDcyLjQtODMuNHYtNzYuNWwxMTIuMSAxMzguM2MyMi43IDI3LjIgNzIuMSAzMC43IDEwMy4yIDAgMjctMjcuNiAyNy4zLTY3LjQgNy40LTkyLjJsLTkwLjgtMTE0LjggNzQuOS0xMDcuNGMxNy40LTI0LjcgMTcuNS02My4xLTEwLjQtODkuOC0zMC4zLTI5LTgyLjQtMzEuNi0xMTMuNiAxMi44TDE0Ny4zIDE4NXYtNzAuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaWNrc3RhcnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNDgwSDQ4Yy0yNi40IDAtNDgtMjEuNi00OC00OFY4MGMwLTI2LjQgMjEuNi00OCA0OC00OGgzNTJjMjYuNCAwIDQ4IDIxLjYgNDggNDh2MzUyYzAgMjYuNC0yMS42IDQ4LTQ4IDQ4ek0xOTkuNiAxNzguNWMwLTMwLjctMTcuNi00NS4xLTM5LjctNDUuMS0yNS44IDAtNDAgMTkuOC00MCA0NC41djE1NC44YzAgMjUuOCAxMy43IDQ1LjYgNDAuNSA0NS42IDIxLjUgMCAzOS4yLTE0IDM5LjItNDUuNnYtNDEuOGw2MC42IDc1LjdjMTIuMyAxNC45IDM5IDE2LjggNTUuOCAwIDE0LjYtMTUuMSAxNC44LTM2LjggNC01MC40bC00OS4xLTYyLjggNDAuNS01OC43YzkuNC0xMy41IDkuNS0zNC41LTUuNi00OS4xLTE2LjQtMTUuOS00NC42LTE3LjMtNjEuNCA3bC00NC44IDY0Ljd2LTM4Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS29ydnVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Ni41IDM0aC0zMjdDMjYuOCAzNCAwIDYwLjggMCA5My41djMyNy4xQzAgNDUzLjIgMjYuOCA0ODAgNTkuNSA0ODBoMzI3LjFjMzMgMCA1OS41LTI2LjggNTkuNS01OS41di0zMjdDNDQ2IDYwLjggNDE5LjIgMzQgMzg2LjUgMzR6TTg3LjEgMTIwLjhoOTZ2MTE2bDYxLjgtMTE2aDExMC45bC04MS4yIDEzMkg4Ny4xdi0xMzJ6bTE2MS44IDI3Mi4xbC02NS43LTExMy42djExMy42aC05NlYyNjIuMWgxOTEuNWw4OC42IDEzMC44SDI0OC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcmF2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0LjQsMTE1LjgzYTUuNzIsNS43MiwwLDAsMC0uMjgtLjY4LDguNTIsOC41MiwwLDAsMC0uNTMtMS4yNSw2LDYsMCwwLDAtLjU0LS43MSw5LjM2LDkuMzYsMCwwLDAtLjcyLS45NGMtLjIzLS4yMi0uNTItLjQtLjc3LS42YTguODQsOC44NCwwLDAsMC0uOS0uNjhMNDA0LjQsNTUuNTVhOCw4LDAsMCwwLTgsMEwzMDAuMTIsMTExaDBhOC4wNyw4LjA3LDAsMCwwLS44OC42OSw3LjY4LDcuNjgsMCwwLDAtLjc4LjYsOC4yMyw4LjIzLDAsMCwwLS43Mi45M2MtLjE3LjI0LS4zOS40NS0uNTQuNzFhOS43LDkuNywwLDAsMC0uNTIsMS4yNWMtLjA4LjIzLS4yMS40NC0uMjguNjhhOC4wOCw4LjA4LDAsMCwwLS4yOCwyLjA4VjIyMy4xOGwtODAuMjIsNDYuMTlWNjMuNDRhNy44LDcuOCwwLDAsMC0uMjgtMi4wOWMtLjA2LS4yNC0uMi0uNDUtLjI4LS42OGE4LjM1LDguMzUsMCwwLDAtLjUyLTEuMjRjLS4xNC0uMjYtLjM3LS40Ny0uNTQtLjcyYTkuMzYsOS4zNiwwLDAsMC0uNzItLjk0LDkuNDYsOS40NiwwLDAsMC0uNzgtLjYsOS44LDkuOCwwLDAsMC0uODgtLjY4aDBMMTE1LjYxLDEuMDdhOCw4LDAsMCwwLTgsMEwxMS4zNCw1Ni40OWgwYTYuNTIsNi41MiwwLDAsMC0uODguNjksNy44MSw3LjgxLDAsMCwwLS43OS42LDguMTUsOC4xNSwwLDAsMC0uNzEuOTNjLS4xOC4yNS0uNC40Ni0uNTUuNzJhNy44OCw3Ljg4LDAsMCwwLS41MSwxLjI0LDYuNDYsNi40NiwwLDAsMC0uMjkuNjcsOC4xOCw4LjE4LDAsMCwwLS4yOCwyLjF2MzI5LjdhOCw4LDAsMCwwLDQsNi45NWwxOTIuNSwxMTAuODRhOC44Myw4LjgzLDAsMCwwLDEuMzMuNTRjLjIxLjA4LjQxLjIuNjMuMjZhNy45Miw3LjkyLDAsMCwwLDQuMSwwYy4yLS4wNS4zNy0uMTYuNTUtLjIyYTguNiw4LjYsMCwwLDAsMS40LS41OEw0MDQuNCw0MDAuMDlhOCw4LDAsMCwwLDQtNi45NVYyODcuODhsOTIuMjQtNTMuMTFhOCw4LDAsMCwwLDQtN1YxMTcuOTJBOC42Myw4LjYzLDAsMCwwLDUwNC40LDExNS44M1pNMTExLjYsMTcuMjhoMGw4MC4xOSw0Ni4xNS04MC4yLDQ2LjE4TDMxLjQxLDYzLjQ0Wm04OC4yNSw2MFYyNzguNmwtNDYuNTMsMjYuNzktMzMuNjksMTkuNFYxMjMuNWw0Ni41My0yNi43OVptMCw0MTIuNzhMMjMuMzcsMzg4LjVWNzcuMzJMNTcuMDYsOTYuN2w0Ni41MiwyNi44VjMzOC42OGE2Ljk0LDYuOTQsMCwwLDAsLjEyLjksOCw4LDAsMCwwLC4xNiwxLjE4aDBhNS45Miw1LjkyLDAsMCwwLC4zOC45LDYuMzgsNi4zOCwwLDAsMCwuNDIsMXYwYTguNTQsOC41NCwwLDAsMCwuNi43OCw3LjYyLDcuNjIsMCwwLDAsLjY2Ljg0bDAsMGMuMjMuMjIuNTIuMzguNzcuNThhOC45Myw4LjkzLDAsMCwwLC44Ni42NmwwLDAsMCwwLDkyLjE5LDUyLjE4Wm04LTEwNi4xNy04MC4wNi00NS4zMiw4NC4wOS00OC40MSw5Mi4yNi01My4xMSw4MC4xMyw0Ni4xMy01OC44LDMzLjU2Wm0xODQuNTIsNC41N0wyMTUuODgsNDkwLjExVjM5Ny44TDM0Ni42LDMyMy4ybDQ1Ljc3LTI2LjE1Wm0wLTExOS4xM0wzNTguNjgsMjUwbC00Ni41My0yNi43OVYxMzEuNzlsMzMuNjksMTkuNEwzOTIuMzcsMTc4Wm04LTEwNS4yOC04MC4yLTQ2LjE3LDgwLjItNDYuMTYsODAuMTgsNDYuMTVabTgsMTA1LjI4VjE3OEw0NTUsMTUxLjE5bDMzLjY4LTE5LjR2OTEuMzloMFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXN0Zm1TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTkyLjIgMzEyLjljLTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xLTE2LjMtNTEtMjEuNS04NC4zLTYzLTg0LjMtMjIuNCAwLTQ1LjEgMTYuMS00NS4xIDYxLjIgMCAzNS4yIDE4IDU3LjIgNDMuMyA1Ny4yIDI4LjYgMCA0Ny42LTIxLjMgNDcuNi0yMS4zbDExLjcgMzEuOXMtMTkuOCAxOS40LTYxLjIgMTkuNGMtNTEuMyAwLTc5LjktMzAuMS03OS45LTg1LjggMC01Ny45IDI4LjYtOTIgODIuNS05MiA3My41IDAgODAuOCA0MS40IDEwMC44IDEwMS45IDguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjIgMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMSAwLTE5LjktMjEuOC0yMi00OS45LTI4LjYtMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDggMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40IDM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40LTE2LjEgMC0yNiA3LjMtMjYgMTkuOCAwIDExIDQuOCAxNy42IDIwLjkgMjEuMyAzMi43IDcuMSA3MS44IDEyIDcxLjggNTcuNS4xIDM2LjctMzAuNyA1MC42LTc2LjEgNTAuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXN0Zm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjNDNDUuNyAxMTMuOCAwIDE2OC4zIDAgMjYxYzAgODkuMSA0NS43IDEzNy4yIDEyNy45IDEzNy4yIDY2LjIgMCA5Ny45LTMxLjEgOTcuOS0zMS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlYW5wdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg2LjUzOSAxMTEuNDg1bDE1LjA5NiAyNDguOTU1LTEwLjk3OS0uMjc1Yy0zNi4yMzItLjgyNC03MS42NCA4Ljc4My0xMDIuNjU3IDI3Ljk5Ny0zMS4wMTYtMTkuMjE0LTY2LjQyNC0yNy45OTctMTAyLjY1Ny0yNy45OTctNDUuNTY0IDAtODIuMDcgMTAuNzA1LTEyMy41MTYgMjcuNzIzTDkzLjExNyAxMjkuNmMyOC41NDYtMTEuODAzIDYxLjQ4NC0xOC4xMTUgOTIuMjI2LTE4LjExNSA0MS4xNzMgMCA3My44MzYgMTMuMTc1IDEwMi42NTcgNDIuNTQ0IDI3LjcyMy0yOC4yNzEgNTkuMDEzLTQxLjcyMSA5OC41MzktNDIuNTQ0ek01NjkuMDcgNDQ4Yy0yNS41MjYgMC00Ny40ODUtNS4yMTUtNzAuNTQyLTE1LjY0NS0zNC4zMS0xNS42NDUtNjkuOTkzLTI0Ljk3OC0xMDcuODcxLTI0Ljk3OC0zOC45NzcgMC03NC45MzQgMTIuOTAxLTEwMi42NTcgNDAuNjIzLTI3LjcyMy0yNy43MjMtNjMuNjgtNDAuNjIzLTEwMi42NTctNDAuNjIzLTM3Ljg3OCAwLTczLjU2MSA5LjMzMy0xMDcuODcxIDI0Ljk3OEM1NS4yMzkgNDQyLjIzNiAzMi43MzEgNDQ4IDguMzAzIDQ0OEg2LjkzTDQ5LjQ3NSA5OC44NTlDODguNzI2IDc2LjYyNiAxMzYuNDg2IDY0IDE4MS43NzUgNjQgMjE4LjgzIDY0IDI1Ni45ODQgNzEuNjg1IDI4OCA5My4wOTUgMzE5LjAxNiA3MS42ODUgMzU3LjE3IDY0IDM5NC4yMjUgNjRjNDUuMjg5IDAgOTMuMDQ5IDEyLjYyNiAxMzIuMyAzNC44NTlMNTY5LjA3IDQ0OHptLTQzLjM2OC00NC43NDFsLTM0LjAzNi0yODAuMjQ2Yy0zMC43NDItMTMuOTk5LTY3LjI0OC0yMS40MS0xMDEuMDA5LTIxLjQxLTM4LjQyOCAwLTc0LjM4NSAxMi4wNzctMTAyLjY1NyAzOC43MDItMjguMjcyLTI2LjYyNS02NC4yMjgtMzguNzAyLTEwMi42NTctMzguNzAyLTMzLjc2MSAwLTcwLjI2NyA3LjQxMS0xMDEuMDA5IDIxLjQxTDUwLjI5OCA0MDMuMjU5YzQ3LjIxMS0xOS40ODcgODIuODk0LTMzLjQ4NiAxMzUuMDQ1LTMzLjQ4NiAzNy42MDQgMCA3MC44MTcgOS42MDYgMTAyLjY1NyAyOS42NDQgMzEuODQtMjAuMDM4IDY1LjA1Mi0yOS42NDQgMTAyLjY1Ny0yOS42NDQgNTIuMTUxIDAgODcuODM0IDEzLjk5OSAxMzUuMDQ1IDMzLjQ4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxMi43IDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJoLTIwLjV2MjQuMmg2LjNjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM3YxLjZjLTE1LjggMy43LTIzLjYgMTMuMS0yMy42IDM3LjMgMCAxOC45IDEuNiAzNC4yIDEuNiA1MS41IDAgMTcuOS0zLjcgMjIuNi0xNy4zIDIyLjZ2LjVoLTYuM1YzOTNoMjAuNWMyNy44IDAgNDAuNS0xMSA0MC41LTQ1LjIgMC0yMi42LTMuMi0zNC4yLTMuMi01NC42IDAtMTEgNi44LTIyLjYgMjcuMy0yMy42di0yNy4zYy0yMC41LS43LTI3LjMtMTIuMy0yNy4zLTIzLjN6bS0xMDUuNiAzMmMtMTUuOC02LjMtMzAuNS0xMC0zMC41LTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIxIDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MXMtMjIuNS00MS00My00Ny44em0tMzU4LjkgNTkuNGMtMy43IDAtOC40LTMuMi04LjQtMTMuMVYxMTkuMUg2NS4yYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZ2MjcuM2MyMC41LjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4yaDIwLjV2LTI0LjJoLTYuM2MtMTMuMSAwLTE3LjMtNS4zLTE3LjMtMjIuNnMxLjYtMzIuMSAxLjYtNTEuNWMwLTI0LjItNy45LTMzLjYtMjMuNi0zNy4zdi0xLjZjMTUuOC0zLjcgMjMuNi0xMy4xIDIzLjYtMzcuMyAwLTE4LjktMS42LTM0LjItMS42LTUxLjVzMy43LTIyLjEgMTcuMy0yMi4xSDkzdjE1MC44YzAgMzIuMSAxMSA1My4xIDQzLjEgNTMuMSAxMCAwIDE3LjktMS42IDIzLjYtMy43bC01LjMtMzQuMmMtMy4xLjgtNC42LjgtNi4yLjh6TTM3OS45IDI1MWMtMTYuMy02LjMtMzEtMTAtMzEtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjYgMTEuNiAwIDIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIwLjUgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxIC4xLTI4LjktMjIuNS00MS00My00Ny44em0tMTU1LTY4LjhjLTM4LjQgMC03NS4xIDMyLjEtNzQuMSA4Mi41IDAgNTIgMzQuMiA4Mi41IDc5LjMgODIuNSAxOC45IDAgMzkuOS02LjggNTYuMi0xNy45bC0xNS44LTI3LjhjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ySDI5MGMuNS0zLjcgMS42LTExIDEuNi0xOS40LjYtNDIuNi0yMi42LTc1LjctNjYuNy03NS43em0tMzAgNjYuMmMzLjItMjEgMTUuOC0zMSAzMC41LTMxIDE4LjkgMCAyNi4zIDEzLjEgMjYuMyAzMWgtNTYuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Mi4xIDIwNC4ydjcxLjFjMCAxLjgtMS40IDMuMi0zLjIgMy4yaC0xMS40Yy0xLjEgMC0yLjEtLjYtMi42LTEuM2wtMzIuNi00NHY0Mi4yYzAgMS44LTEuNCAzLjItMy4yIDMuMmgtMTEuNGMtMS44IDAtMy4yLTEuNC0zLjItMy4ydi03MS4xYzAtMS44IDEuNC0zLjIgMy4yLTMuMkgyMTljMSAwIDIuMS41IDIuNiAxLjRsMzIuNiA0NHYtNDIuMmMwLTEuOCAxLjQtMy4yIDMuMi0zLjJoMTEuNGMxLjgtLjEgMy4zIDEuNCAzLjMgMy4xem0tODItMy4yaC0xMS40Yy0xLjggMC0zLjIgMS40LTMuMiAzLjJ2NzEuMWMwIDEuOCAxLjQgMy4yIDMuMiAzLjJoMTEuNGMxLjggMCAzLjItMS40IDMuMi0zLjJ2LTcxLjFjMC0xLjctMS40LTMuMi0zLjItMy4yem0tMjcuNSA1OS42aC0zMS4xdi01Ni40YzAtMS44LTEuNC0zLjItMy4yLTMuMmgtMTEuNGMtMS44IDAtMy4yIDEuNC0zLjIgMy4ydjcxLjFjMCAuOS4zIDEuNi45IDIuMi42LjUgMS4zLjkgMi4yLjloNDUuN2MxLjggMCAzLjItMS40IDMuMi0zLjJ2LTExLjRjMC0xLjctMS40LTMuMi0zLjEtMy4yek0zMzIuMSAyMDFoLTQ1LjdjLTEuNyAwLTMuMiAxLjQtMy4yIDMuMnY3MS4xYzAgMS43IDEuNCAzLjIgMy4yIDMuMmg0NS43YzEuOCAwIDMuMi0xLjQgMy4yLTMuMnYtMTEuNGMwLTEuOC0xLjQtMy4yLTMuMi0zLjJIMzAxdi0xMmgzMS4xYzEuOCAwIDMuMi0xLjQgMy4yLTMuMlYyMzRjMC0xLjgtMS40LTMuMi0zLjItMy4ySDMwMXYtMTJoMzEuMWMxLjggMCAzLjItMS40IDMuMi0zLjJ2LTExLjRjLS4xLTEuNy0xLjUtMy4yLTMuMi0zLjJ6TTQ0OCAxMTMuN1YzOTljLS4xIDQ0LjgtMzYuOCA4MS4xLTgxLjcgODFIODFjLTQ0LjgtLjEtODEuMS0zNi45LTgxLTgxLjdWMTEzYy4xLTQ0LjggMzYuOS04MS4xIDgxLjctODFIMzY3YzQ0LjguMSA4MS4xIDM2LjggODEgODEuN3ptLTYxLjYgMTIyLjZjMC03My03My4yLTEzMi40LTE2My4xLTEzMi40LTg5LjkgMC0xNjMuMSA1OS40LTE2My4xIDEzMi40IDAgNjUuNCA1OCAxMjAuMiAxMzYuNCAxMzAuNiAxOS4xIDQuMSAxNi45IDExLjEgMTIuNiAzNi44LS43IDQuMS0zLjMgMTYuMSAxNC4xIDguOCAxNy40LTcuMyA5My45LTU1LjMgMTI4LjItOTQuNyAyMy42LTI2IDM0LjktNTIuMyAzNC45LTgxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlua2VkaW5JbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDAuMjggNDQ4SDcuNFYxNDguOWg5Mi44OHpNNTMuNzkgMTA4LjFDMjQuMDkgMTA4LjEgMCA4My41IDAgNTMuOGE1My43OSA1My43OSAwIDAgMSAxMDcuNTggMGMwIDI5LjctMjQuMSA1NC4zLTUzLjc5IDU0LjN6TTQ0Ny45IDQ0OGgtOTIuNjhWMzAyLjRjMC0zNC43LS43LTc5LjItNDguMjktNzkuMi00OC4yOSAwLTU1LjY5IDM3LjctNTUuNjkgNzYuN1Y0NDhoLTkyLjc4VjE0OC45aDg5LjA4djQwLjhoMS4zYzEyLjQtMjMuNSA0Mi42OS00OC4zIDg3Ljg4LTQ4LjMgOTQgMCAxMTEuMjggNjEuOSAxMTEuMjggMTQyLjNWNDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmtlZGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMkgzMS45QzE0LjMgMzIgMCA0Ni41IDAgNjQuM3YzODMuNEMwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwSDQxNmMxNy42IDAgMzItMTQuNSAzMi0zMi4zVjY0LjNjMC0xNy44LTE0LjQtMzIuMy0zMi0zMi4zek0xMzUuNCA0MTZINjlWMjAyLjJoNjYuNVY0MTZ6bS0zMy4yLTI0M2MtMjEuMyAwLTM4LjUtMTcuMy0zOC41LTM4LjVTODAuOSA5NiAxMDIuMiA5NmMyMS4yIDAgMzguNSAxNy4zIDM4LjUgMzguNSAwIDIxLjMtMTcuMiAzOC41LTM4LjUgMzguNXptMjgyLjEgMjQzaC02Ni40VjMxMmMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45VjQxNmgtNjYuNFYyMDIuMmg2My43djI5LjJoLjljOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlWNDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbm9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuNCAyMjYuM2MtLjMtLjktLjktMS40LTEuNC0ybC03MC0zOC42Yy0uOS0uNi0yLS42LTMuMSAwbC01OC45IDM2Yy0uOS42LTEuNCAxLjctMS40IDIuNmwtLjkgMzEuNC0yNC0xNmMtLjktLjYtMi4zLS42LTMuMSAwTDI0MCAyNjAuOWwtMS40LTM1LjFjMC0uOS0uNi0yLTEuNC0yLjNsLTM2LTI0LjMgMzMuNy0xNy40YzEuMS0uNiAxLjctMS43IDEuNy0yLjlsLTUuNy0xMzIuM2MwLS45LS45LTItMS43LTIuNkwxMzguNi4zYy0uOS0uMy0xLjctLjMtMi4zLS4zTDEyLjYgMzguNmMtMS40LjYtMi4zIDItMiAzLjdMMzggMTc1LjRjLjkgMy40IDM0IDI3LjQgMzguNiAzMC45bC0yNi45IDEyLjljLTEuNC45LTIgMi4zLTEuNyAzLjRsMjAuNiAxMDAuM2MuNiAyLjkgMjMuNyAyMy4xIDI3LjEgMjYuM2wtMTcuNCAxMC42Yy0uOS42LTEuNyAyLTEuNCAzLjEgMS40IDcuMSAxNS40IDc3LjcgMTYuOSA3OS4xbDY1LjEgNjkuMWMuNi42IDEuNC42IDIuMy45LjYgMCAxLjEtLjMgMS43LS42bDgzLjctNjYuOWMuOS0uNiAxLjEtMS40IDEuMS0yLjNsLTItNDYgMjggMjMuN2MxLjEuOSAyLjkuOSA0IDBsNjYuOS01My40Yy45LS42IDEuMS0xLjQgMS4xLTIuM2wyLjMtMzMuNCAyMC4zIDE0YzEuMS45IDIuNi45IDMuNyAwbDU0LjYtNDMuN2MuNi0uMyAxLjEtMS4xIDEuMS0yIC45LTYuNSAxMC4zLTcwLjggOS43LTcyLjh6bS0yMDQuOCA0LjhsNCA5Mi42LTkwLjYgNjEuMi0xNC05Ni42IDEwMC42LTU3LjJ6bS03LjctMTgwbDUuNCAxMjYtMTA2LjYgNTUuNEwxMDQgOTcuN2wxMjAuOS00Ni42ek00NCAxNzMuMUwxOCA0OGw3OS43IDQ5LjQgMTkuNCAxMzIuOUw0NCAxNzMuMXptMzAuNiAxNDcuOEw1NS43IDIzMGw3MCA1OC4zIDEzLjcgOTMuNC02NC44LTYwLjh6bTI0LjMgMTE3LjdsLTEzLjctNjcuMSA2MS43IDYwLjkgOS43IDY3LjQtNTcuNy02MS4yem02NC41IDY0LjVsLTEwLjYtNzAuOSA4NS43LTYxLjQgMy4xIDcwLTc4LjIgNjIuM3ptODItMTE1LjFjMC0zLjQuOS0yMi45LTItMjUuMWwtMjQuMy0yMCAyMi4zLTE0LjljMi4zLTEuNyAxLjEtNS43IDEuMS04bDI5LjQgMjIuNi42IDY4LjMtMjcuMS0yMi45em05NC4zLTI1LjRsLTYwLjkgNDguNi0uNi02OC42IDY1LjctNDYuOS00LjIgNjYuOXptMjcuNy0yNS43bC0xOS4xLTEzLjQgMi0zNGMuMy0uOS0uMy0yLTEuMS0yLjZMMzA4IDI1OS43bC42LTMwIDY0LjYgNDAuNi01LjggNjYuNnptNTQuNi0zOS44bC00OC4zIDM4LjMgNS43LTY1LjEgNTEuMS0zNi42LTguNSA2My40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbnV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMC44IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNS4yLTEuNC0xLjktMi4zLTMuMi0yLjktMS43LS43LTMuOS0xLTUuNS0uMS0uNC4yLS44LjctLjYgMS4xLjMgMS4zIDIuMyAxLjEgMy40IDEuN3ptLTIxLjkgMS43YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNi4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNS4xLTEuMy42LTMuNCAxLjUtMy4yIDIuOS4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzJDMzExLjEgODUuNCAzMTUuNy4xIDIzNC44IDAgMTMyLjQtLjIgMTU4IDEwMy40IDE1Ni45IDEzNS4yYy0xLjcgMjMuNC02LjQgNDEuOC0yMi41IDY0LjctMTguOSAyMi41LTQ1LjUgNTguOC01OC4xIDk2LjctNiAxNy45LTguOCAzNi4xLTYuMiA1My4zLTYuNSA1LjgtMTEuNCAxNC43LTE2LjYgMjAuMi00LjIgNC4zLTEwLjMgNS45LTE3IDguM3MtMTQgNi0xOC41IDE0LjVjLTIuMSAzLjktMi44IDguMS0yLjggMTIuNCAwIDMuOS42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43LjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xLjYgMi4zIDEuNCA0LjYgMi41IDYuN3YuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zLjQtOC4yLTQuNC0xNy4zLTE1LjUtMjkuN3pNMjIzLjcgODcuM2M5LjgtMjIuMiAzNC4yLTIxLjggNDQtLjQgNi41IDE0LjIgMy42IDMwLjktNC4zIDQwLjQtMS42LS44LTUuOS0yLjYtMTIuNi00LjkgMS4xLTEuMiAzLjEtMi43IDMuOS00LjYgNC44LTExLjgtLjItMjctOS4xLTI3LjMtNy4zLS41LTEzLjkgMTAuOC0xMS44IDIzLTQuMS0yLTkuNC0zLjUtMTMtNC40LTEtNi45LS4zLTE0LjYgMi45LTIxLjh6TTE4MyA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQuNy05LjggMjEuMi0xLjggMjguMSAxIC44IDEuOS0uMi01LjkgNS41LTE1LjYtMTQuNi0xMC41LTUyLjEgOC40LTUyLjF6bS0xMy42IDYwLjdjNi4yLTQuNiAxMy42LTEwIDE0LjEtMTAuNSA0LjctNC40IDEzLjUtMTQuMiAyNy45LTE0LjIgNy4xIDAgMTUuNiAyLjMgMjUuOSA4LjkgNi4zIDQuMSAxMS4zIDQuNCAyMi42IDkuMyA4LjQgMy41IDEzLjcgOS43IDEwLjUgMTguMi0yLjYgNy4xLTExIDE0LjQtMjIuNyAxOC4xLTExLjEgMy42LTE5LjggMTYtMzguMiAxNC45LTMuOS0uMi03LTEtOS42LTIuMS04LTMuNS0xMi4yLTEwLjQtMjAtMTUtOC42LTQuOC0xMy4yLTEwLjQtMTQuNy0xNS4zLTEuNC00LjkgMC05IDQuMi0xMi4zem0zLjMgMzM0Yy0yLjcgMzUuMS00My45IDM0LjQtNzUuMyAxOC0yOS45LTE1LjgtNjguNi02LjUtNzYuNS0yMS45LTIuNC00LjctMi40LTEyLjcgMi42LTI2LjR2LS4yYzIuNC03LjYuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43LjggMy4yLTguNyAyMC44LTguNSAxNi4xLTI0LjQgNTMuMy0yLjYgODIuNC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNy40IDM1LjcgMTYuNCA2LjggMzUuOSAxNy45IDMwLjcgMzQuOC0yLjItLjEtMy4yIDAtNC4yIDAgMy4yLTEwLjEtMy45LTE3LjYtMjIuOC0yNi4xLTE5LjYtOC42LTM2LTguNi0zOC4zIDEyLjUtMTIuMSA0LjItMTguMyAxNC43LTIxLjQgMjcuMy0yLjggMTEuMi0zLjYgMjQuNy00LjQgMzkuOS0uNSA3LjctMy42IDE4LTYuOCAyOS0zMi4xIDIyLjktNzYuNyAzMi45LTExNC4zIDcuMnptMjU3LjQtMTEuNWMtLjkgMTYuOC00MS4yIDE5LjktNjMuMiA0Ni41LTEzLjIgMTUuNy0yOS40IDI0LjQtNDMuNiAyNS41cy0yNi41LTQuOC0zMy43LTE5LjNjLTQuNy0xMS4xLTIuNC0yMy4xIDEuMS0zNi4zIDMuNy0xNC4yIDkuMi0yOC44IDkuOS00MC42LjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEuMy0uMi43LS4zIDEtLjUuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjMgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMeWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgODEuMWg3Ny44djIwOC43YzAgMzMuMSAxNSA1Mi44IDI3LjIgNjEtMTIuNyAxMS4xLTUxLjIgMjAuOS04MC4yLTIuOEM3LjggMzM0IDAgMzEwLjcgMCAyODlWODEuMXptNDg1LjkgMTczLjV2LTIyaDIzLjh2LTc2LjhoLTI2LjFjLTEwLjEtNDYuMy01MS4yLTgwLjctMTAwLjMtODAuNy01Ni42IDAtMTAyLjcgNDYtMTAyLjcgMTAyLjdWMzU3YzE2IDIuMyAzNS40LS4zIDUxLjctMTQgMTcuMS0xNCAyNC44LTM3LjIgMjQuOC01OXYtNi43aDM4Ljh2LTc2LjhoLTM4Ljh2LTIzLjNjMC0zNC42IDUyLjItMzQuNiA1Mi4yIDB2NzcuMWMwIDU2LjYgNDYgMTAyLjcgMTAyLjcgMTAyLjd2LTc2LjVjLTE0LjUgMC0yNi4xLTExLjctMjYuMS0yNS45em0tMjk0LjMtOTl2MTEzYzAgMTUuNC0yMy44IDE1LjQtMjMuOCAwdi0xMTNIOTF2MTMyLjdjMCAyMy44IDggNTQgNDUgNjMuOSAzNyA5LjggNTguMi0xMC42IDU4LjItMTAuNi0yLjEgMTMuNC0xNC41IDIzLjMtMzQuOSAyNS4zLTE1LjUgMS42LTM1LjItMy42LTQ1LTcuOHY3MC4zYzI1LjEgNy41IDUxLjUgOS44IDc3LjYgNC43IDQ3LjEtOS4xIDc2LjgtNDguNCA3Ni44LTEwMC44VjE1NS4xaC03Ny4xdi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ2VudG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ1LjcgMTI3LjlWMzg0bC02My40IDM2LjVWMTY0LjdMMjIzLjggNzMuMSA2NS4yIDE2NC43bC40IDI1NS45TDIuMyAzODRWMTI4LjFMMjI0LjIgMGwyMjEuNSAxMjcuOXpNMjU1LjYgNDIwLjVMMjI0IDQzOC45bC0zMS44LTE4LjJ2LTI1NmwtNjMuMyAzNi42LjEgMjU1LjkgOTQuOSA1NC45IDk1LjEtNTQuOXYtMjU2bC02My40LTM2LjZ2MjU1Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFpbGNoaW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMC42MSAyNDMuNTJhMzYuMTUgMzYuMTUgMCAwIDEgOS4zIDBjMS42Ni0zLjgzIDEuOTUtMTAuNDMuNDUtMTcuNjEtMi4yMy0xMC42Ny01LjI1LTE3LjE0LTExLjQ4LTE2LjEzcy02LjQ3IDguNzQtNC4yNCAxOS40MmMxLjI2IDYgMy40OSAxMS4xNCA2IDE0LjMyek0yNzcuMDUgMjUyYzQuNDcgMiA3LjIgMy4yNiA4LjI4IDIuMTMgMS44OS0xLjk0LTMuNDgtOS4zOS0xMi4xMi0xMy4wOWEzMS40NCAzMS40NCAwIDAgMC0zMC42MSAzLjY4Yy0zIDIuMTgtNS44MSA1LjIyLTUuNDEgNy4wNi44NSAzLjc0IDEwLTIuNzEgMjIuNi0zLjQ4IDctLjQ0IDEyLjggMS43NSAxNy4yNiAzLjcxem0tOSA1LjEzYy05LjA3IDEuNDItMTUgNi41My0xMy40NyAxMC4xLjkuMzQgMS4xNy44MSA1LjIxLS44MWEzNyAzNyAwIDAgMSAxOC43Mi0xLjk1YzIuOTIuMzQgNC4zMS41MiA0Ljk0LS40OSAxLjQ2LTIuMjItNS43MS04LTE1LjM5LTYuODV6bTU0LjE3IDE3LjFjMy4zOC02Ljg3LTEwLjktMTMuOTMtMTQuMy03czEwLjkyIDEzLjg4IDE0LjMyIDYuOTd6bTE1LjY2LTIwLjQ3Yy03LjY2LS4xMy03Ljk1IDE1LjgtLjI2IDE1LjkzczcuOTgtMTUuODEuMjgtMTUuOTZ6bS0yMTguNzkgNzguOWMtMS4zMi4zMS02IDEuNDUtOC40Ny0yLjM1LTUuMi04IDExLjExLTIwLjM4IDMtMzUuNzctOS4xLTE3LjQ3LTI3LjgyLTEzLjU0LTM1LjA1LTUuNTQtOC43MSA5LjYtOC43MiAyMy41NC01IDI0LjA4IDQuMjcuNTcgNC4wOC02LjQ3IDcuMzgtMTEuNjNhMTIuODMgMTIuODMgMCAwIDEgMTcuODUtMy43MmMxMS41OSA3LjU5IDEuMzcgMTcuNzYgMi4yOCAyOC42MiAxLjM5IDE2LjY4IDE4LjQyIDE2LjM3IDIxLjU4IDlhMi4wOCAyLjA4IDAgMCAwLS4yLTIuMzNjLjAzLjg5LjY4LTEuMy0zLjM1LS4zOXptMjk5LjcyLTE3LjA3Yy0zLjM1LTExLjczLTIuNTctOS4yMi02Ljc4LTIwLjUyIDIuNDUtMy42NyAxNS4yOS0yNC0zLjA3LTQzLjI1LTEwLjQtMTAuOTItMzMuOS0xNi41NC00MS4xLTE4LjU0LTEuNS0xMS4zOSA0LjY1LTU4LjctMjEuNTItODMgMjAuNzktMjEuNTUgMzMuNzYtNDUuMjkgMzMuNzMtNjUuNjUtLjA2LTM5LjE2LTQ4LjE1LTUxLTEwNy40Mi0yNi40N2wtMTIuNTUgNS4zM2MtLjA2LS4wNS0yMi43MS0yMi4yNy0yMy4wNS0yMi41N0MxNjkuNS0xOC00MS43NyAyMTYuODEgMjUuNzggMjczLjg1bDE0Ljc2IDEyLjUxYTcyLjQ5IDcyLjQ5IDAgMCAwLTQuMSAzMy41YzMuMzYgMzMuNCAzNiA2MC40MiA2Ny41MyA2MC4zOCA1Ny43MyAxMzMuMDYgMjY3LjkgMTMzLjI4IDMyMi4yOSAzIDEuNzQtNC40NyA5LjExLTI0LjYxIDkuMTEtNDIuMzhzLTEwLjA5LTI1LjI3LTE2LjUzLTI1LjI3em0tMzE2IDQ4LjE2Yy0yMi44Mi0uNjEtNDcuNDYtMjEuMTUtNDkuOTEtNDUuNTEtNi4xNy02MS4zMSA3NC4yNi03NS4yNyA4NC0xMi4zMyA0LjU0IDI5LjY0LTQuNjcgNTguNDktMzQuMTIgNTcuODF6TTg0LjMgMjQ5LjU1QzY5LjE0IDI1Mi41IDU1Ljc4IDI2MS4wOSA0Ny42IDI3M2MtNC44OC00LjA3LTE0LTEyLTE1LjU5LTE1LTEzLjAxLTI0Ljg1IDE0LjI0LTczIDMzLjMtMTAwLjIxQzExMi40MiA5MC41NiAxODYuMTkgMzkuNjggMjIwLjM2IDQ4LjkxYzUuNTUgMS41NyAyMy45NCAyMi44OSAyMy45NCAyMi44OXMtMzQuMTUgMTguOTQtNjUuOCA0NS4zNWMtNDIuNjYgMzIuODUtNzQuODkgODAuNTktOTQuMiAxMzIuNHpNMzIzLjE4IDM1MC43cy0zNS43NCA1LjMtNjkuNTEtNy4wN2M2LjIxLTIwLjE2IDI3IDYuMSA5Ni40LTEzLjgxIDE1LjI5LTQuMzggMzUuMzctMTMgNTEtMjUuMzVhMTAyLjg1IDEwMi44NSAwIDAgMSA3LjEyIDI0LjI4YzMuNjYtLjY2IDE0LjI1LS41MiAxMS40NCAxOC4xLTMuMjkgMTkuODctMTEuNzMgMzYtMjUuOTMgNTAuODRBMTA2Ljg2IDEwNi44NiAwIDAgMSAzNjIuNTUgNDIxYTEzMi40NSAxMzIuNDUgMCAwIDEtMjAuMzQgOC41OGMtNTMuNTEgMTcuNDgtMTA4LjMtMS43NC0xMjYtNDNhNjYuMzMgNjYuMzMgMCAwIDEtMy41NS05Ljc0Yy03LjUzLTI3LjItMS4xNC01OS44MyAxOC44NC04MC4zNyAxLjIzLTEuMzEgMi40OC0yLjg1IDIuNDgtNC43OWE4LjQ1IDguNDUgMCAwIDAtMS45Mi00LjU0Yy03LTEwLjEzLTMxLjE5LTI3LjQtMjYuMzMtNjAuODMgMy41LTI0IDI0LjQ5LTQwLjkxIDQ0LjA3LTM5LjkxbDUgLjI5YzguNDguNSAxNS44OSAxLjU5IDIyLjg4IDEuODggMTEuNjkuNSAyMi4yLTEuMTkgMzQuNjQtMTEuNTYgNC4yLTMuNSA3LjU3LTYuNTQgMTMuMjYtNy41MWExNy40NSAxNy40NSAwIDAgMSAxMy42IDIuMjRjMTAgNi42NCAxMS40IDIyLjczIDExLjkyIDM0LjQ5LjI5IDYuNzIgMS4xIDIzIDEuMzggMjcuNjMuNjMgMTAuNjcgMy40MyAxMi4xNyA5LjExIDE0IDMuMTkgMS4wNSA2LjE1IDEuODMgMTAuNTEgMy4wNiAxMy4yMSAzLjcxIDIxIDcuNDggMjYgMTIuMzFhMTYuMzggMTYuMzggMCAwIDEgNC43NCA5LjI5YzEuNTYgMTEuMzctOC44MiAyNS40LTM2LjMxIDM4LjE2LTQ2LjcxIDIxLjY4LTkzLjY4IDE0LjQ1LTEwMC40OCAxMy42OC0yMC4xNS0yLjcxLTMxLjYzIDIzLjMyLTE5LjU1IDQxLjE1IDIyLjY0IDMzLjQxIDEyMi40IDIwIDE1MS4zNy0yMS4zNS42OS0xIC4xMi0xLjU5LS43My0xLTQxLjc3IDI4LjU4LTk3LjA2IDM4LjIxLTEyOC40NiAyNi00Ljc3LTEuODUtMTQuNzMtNi40NC0xNS45NC0xNi42NyA0My42IDEzLjQ5IDcxIC43NCA3MSAuNzRzMi4wMy0yLjc5LS41Ni0yLjUzem0tNjguNDctNS43em0tODMuNC0xODcuNWMxNi43NC0xOS4zNSAzNy4zNi0zNi4xOCA1NS44My00NS42M2EuNzMuNzMgMCAwIDEgMSAxYy0xLjQ2IDIuNjYtNC4yOSA4LjM0LTUuMTkgMTIuNjVhLjc1Ljc1IDAgMCAwIDEuMTYuNzljMTEuNDktNy44MyAzMS40OC0xNi4yMiA0OS0xNy4zYS43Ny43NyAwIDAgMSAuNTIgMS4zOCA0MS44NiA0MS44NiAwIDAgMC03LjcxIDcuNzQuNzUuNzUgMCAwIDAgLjU5IDEuMTljMTIuMzEuMDkgMjkuNjYgNC40IDQxIDEwLjc0Ljc2LjQzLjIyIDEuOTEtLjY0IDEuNzItNjkuNTUtMTUuOTQtMTIzLjA4IDE4LjUzLTEzNC41IDI2LjgzYS43Ni43NiAwIDAgMS0xLTEuMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFuZGFsb3JpYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyLjI3IDUxMS44OWMtMS0zLjI2LTEuNjktMTUuODMtMS4zOS0yNC41OC41NS0xNS44OSAxLTI0LjcyIDEuNC0yOC43Ni42NC02LjIgMi44Ny0yMC43MiAzLjI4LTIxLjM4LjYtMSAuNC0yNy44Ny0uMjQtMzMuMTMtLjMxLTIuNTgtLjYzLTExLjktLjY5LTIwLjczLS4xMy0xNi40Ny0uNTMtMjAuMTItMi43My0yNC43Ni0xLjEtMi4zMi0xLjIzLTMuODQtMS0xMS40M2E5Mi4zOCA5Mi4zOCAwIDAgMC0uMzQtMTIuNzFjLTItMTMtMy40Ni0yNy43LTMuMjUtMzMuOXMuNDMtNy4xNSAyLjA2LTkuNjdjMy4wNS00LjcxIDYuNTEtMTQgOC42Mi0yMy4yNyAyLjI2LTkuODYgMy44OC0xNy4xOCA0LjU5LTIwLjc0YTEwOS41NCAxMDkuNTQgMCAwIDEgNC40Mi0xNS4wNWMyLjI3LTYuMjUgMi40OS0xNS4zOS4zNy0xNS4zOS0uMyAwLTEuMzggMS4yMi0yLjQxIDIuNzFzLTQuNzYgNC44LTguMjkgNy4zNmMtOC4zNyA2LjA4LTExLjcgOS4zOS0xMi42NiAxMi41OHMtMSA3LjIzLS4xNiA3Ljc2Yy4zNC4yMSAxLjI5IDIuNCAyLjExIDQuODhhMjguODMgMjguODMgMCAwIDEgLjcyIDE1LjM2Yy0uMzkgMS43Ny0xIDUuNDctMS40NiA4LjIzcy0xIDYuNDYtMS4yNSA4LjIyYTkuODUgOS44NSAwIDAgMS0xLjU1IDQuMjZjLTEgMS0xLjE0LjkxLTIuMDUtLjUzYTE0Ljg3IDE0Ljg3IDAgMCAxLTEuNDQtNC43NWMtLjI1LTEuNzQtMS42My03LjExLTMuMDgtMTEuOTMtMy4yOC0xMC45LTMuNTItMTYuMTUtMS0yMWExNC4yNCAxNC4yNCAwIDAgMCAxLjY3LTQuNjFjMC0yLjM5LTIuMi01LjMyLTcuNDEtOS44OS03LTYuMTgtOC42My03LjkyLTEwLjIzLTExLjMtMS43MS0zLjYtMy4wNi00LjA2LTQuNTQtMS41NC0xLjc4IDMtMi42IDkuMTEtMyAyMmwtLjM0IDEyLjE5IDIgMi4yNWMzLjIxIDMuNyAxMi4wNyAxNi40NSAxMy43OCAxOS44MyAzLjQxIDYuNzQgNC4zNCAxMS42OSA0LjQxIDIzLjU2cy45NSAyMi43NSAyIDI0LjcxYy4zNi42Ni41MSAxLjM1LjM0IDEuNTJzLjQxIDIuMDkgMS4yOSA0LjI3YTM4LjE0IDM4LjE0IDAgMCAxIDIuMDYgOSA5MSA5MSAwIDAgMCAxLjcxIDEwLjM3YzIuMjMgOS41NiAyLjc3IDE0LjA4IDIuMzkgMjAuMTQtLjIgMy4yNy0uNTMgMTEuMDctLjczIDE3LjMyLTEuMzEgNDEuNzYtMS44NSA1OC0yIDYxLjIxLS4xMiAyLS4zOSAxMS41MS0uNiAyMS4wNy0uMzYgMTYuMy0xLjMgMjcuMzctMi40MiAyOC42NS0uNjQuNzMtOC4wNy00LjkxLTEyLjUyLTkuNDktMy43NS0zLjg3LTQtNC43OS0yLjgzLTkuOTUuNy0zIDIuMjYtMTguMjkgMy4zMy0zMi42Mi4zNi00Ljc4LjgxLTEwLjUgMS0xMi43MS44My05LjM3IDEuNjYtMjAuMzUgMi42MS0zNC43OC41Ni04LjQ2IDEuMzMtMTYuNDQgMS43Mi0xNy43M3MuODktOS44OSAxLjEzLTE5LjExbC40My0xNi43Ny0yLjI2LTQuM2MtMS43Mi0zLjI4LTQuODctNi45NC0xMy4yMi0xNS4zNC02LTYuMDctMTEuODQtMTIuMy0xMi45MS0xMy44NWwtMS45NS0yLjgxLjc1LTEwLjljMS4wOS0xNS43MSAxLjEtNDguNTcgMC01OS4wNmwtLjg5LTguNy0zLjI4LTQuNTJjLTUuODYtOC4wOC01LjgtNy43NS02LjIyLTMzLjI3LS4xLTYuMDctLjM4LTExLjUtLjYzLTEyLjA2LS44My0xLjg3LTMuMDUtMi42Ni04LjU0LTMuMDUtOC44Ni0uNjItMTEtMS45LTIzLjg1LTE0LjU1LTYuMTUtNi0xMi4zNC0xMi0xMy43NS0xMy4xOS0yLjgxLTIuNDItMi43OS0yLS41Ni05LjYzbDEuMzUtNC42NS0xLjY5LTNhMzIuMjIgMzIuMjIgMCAwIDAtMi41OS00LjA3Yy0xLjMzLTEuNTEtNS41LTEwLjg5LTYtMTMuNDlhNC4yNCA0LjI0IDAgMCAxIC44Ny0zLjljMi4yMy0yLjg2IDMuNC01LjY4IDQuNDUtMTAuNzMgMi4zMy0xMS4xOSA3Ljc0LTI2LjA5IDEwLjYtMjkuMjIgMy4xOC0zLjQ3IDcuNy0xIDkuNDEgNSAxLjM0IDQuNzkgMS4zNyA5Ljc5LjEgMTguNTVhMTAxLjIgMTAxLjIgMCAwIDAtMSAxMS4xMWMwIDQgLjE5IDQuNjkgMi4yNSA3LjM5IDMuMzMgNC4zNyA3LjczIDcuNDEgMTUuMiAxMC41MmExOC42NyAxOC42NyAwIDAgMSA0LjcyIDIuODVjMTEuMTcgMTAuNzIgMTguNjIgMTYuMTggMjIuOTUgMTYuODUgNS4xOC44IDggNC41NCAxMCAxMy4zOSAxLjMxIDUuNjUgNCAxMS4xNCA1LjQ2IDExLjE0YTkuMzggOS4zOCAwIDAgMCAzLjMzLTEuMzljMi0xLjIyIDIuMjUtMS43MyAyLjI1LTQuMThhMTMyLjg4IDEzMi44OCAwIDAgMC0yLTE3Ljg0Yy0uMzctMS42Ni0uNzgtNC4wNi0uOTMtNS4zNXMtLjYxLTMuODUtMS01LjY5Yy0yLjU1LTExLjE2LTMuNjUtMTUuNDYtNC4xLTE2LTEuNTUtMi00LjA4LTEwLjItNC45My0xNS45Mi0xLjY0LTExLjExLTQtMTQuMjMtMTIuOTEtMTcuMzlBNDMuMTUgNDMuMTUgMCAwIDEgMTY1LjI0IDc4Yy0xLjE1LTEtNC0zLjIyLTYuMzUtNS4wNnMtNC40MS0zLjUzLTQuNi0zLjc2YTIyLjcgMjIuNyAwIDAgMC0yLjY5LTJjLTYuMjQtNC4yMi04Ljg0LTctMTEuMjYtMTJsLTIuNDQtNS0uMjItMTMtLjIyLTEzIDYuOTEtNi41NWMzLjk1LTMuNzUgOC40OC03LjM1IDEwLjU5LTguNDMgMy4zMS0xLjY5IDQuNDUtMS44OSAxMS4zNy0yIDguNTMtLjE5IDEwLjEyIDAgMTEuNjYgMS41NnMxLjM2IDYuNC0uMjkgOC41YTYuNjYgNi42NiAwIDAgMC0xLjM0IDIuMzJjMCAuNTgtMi42MSA0LjkxLTUuNDIgOWEzMC4zOSAzMC4zOSAwIDAgMC0yLjM3IDYuODJjMjAuNDQgMTMuMzkgMjEuNTUgMy43NyAxNC4wNyAyOUwxOTQgNjYuOTJjMy4xMS04LjY2IDYuNDctMTcuMjYgOC42MS0yNi4yMi4yOS03LjYzLTEyLTQuMTktMTUuNC04LjY4LTIuMzMtNS45MyAzLjEzLTE0LjE4IDYuMDYtMTkuMiAxLjYtMi4zNCA2LjYyLTQuNyA4LjgyLTQuMTUuODguMjIgNC4xNi0uMzUgNy4zNy0xLjI4YTQ1LjMgNDUuMyAwIDAgMSA3LjU1LTEuNjggMjkuNTcgMjkuNTcgMCAwIDAgNi0xLjI5YzMuNjUtMS4xMSA0LjUtMS4xNyA2LjM1LS40YTI5LjU0IDI5LjU0IDAgMCAwIDUuODIgMS4zNiAxOC4xOCAxOC4xOCAwIDAgMSA2IDEuOTEgMjIuNjcgMjIuNjcgMCAwIDAgNSAyLjE3YzIuNTEuNjggMyAuNTcgNy4wNS0xLjY3bDQuMzUtMi40TDI2OC4zMiA1YzEwLjQ0LS40IDEwLjgxLS40NyAxNS4yNi0yLjY4TDI4OC4xNiAwbDIuNDYgMS40M2MxLjc2IDEgMy4xNCAyLjczIDQuODUgNiAyLjM2IDQuNTEgMi4zOCA0LjU4IDEuMzcgNy4zNy0uODggMi40NC0uODkgMy4zLS4xIDYuMzlhMzUuNzYgMzUuNzYgMCAwIDAgMi4xIDUuOTEgMTMuNTUgMTMuNTUgMCAwIDEgMS4zMSA0Yy4zMSA0LjMzIDAgNS4zLTIuNDEgNi45Mi0yLjE3IDEuNDctNyA3LjkxLTcgOS4zNGExNC43NyAxNC43NyAwIDAgMS0xLjA3IDNjLTUgMTEuNTEtNi43NiAxMy41Ni0xNC4yNiAxNy05LjIgNC4yLTEyLjMgNS4xOS0xNi4yMSA1LjE5LTMuMSAwLTQgLjI1LTQuNTQgMS4yNmExOC4zMyAxOC4zMyAwIDAgMS00LjA5IDMuNzEgMTMuNjIgMTMuNjIgMCAwIDAtNC4zOCA0Ljc4IDUuODkgNS44OSAwIDAgMS0yLjQ5IDIuOTEgNi44OCA2Ljg4IDAgMCAwLTIuNDUgMS43MSA2Ny42MiA2Ny42MiAwIDAgMS03IDUuMzhjLTMuMzMgMi4zNC02Ljg3IDUtNy44NyA2QTcuMjcgNy4yNyAwIDAgMSAyMjQgMTAwYTUuNzYgNS43NiAwIDAgMC0yLjEzIDEuNjVjLTEuMzEgMS4zOS0xLjQ5IDIuMTEtMS4xNCA0LjZhMzYuNDUgMzYuNDUgMCAwIDAgMS40MiA1Ljg4YzEuMzIgMy44IDEuMzEgNy44NiAwIDEwLjU3cy0uODkgNi42NSAxLjM1IDkuNTljMiAyLjYzIDIuMTYgNC41Ni43MSA4Ljg0YTMzLjQ1IDMzLjQ1IDAgMCAwLTEuMDYgOC45MWMwIDQuODguMjIgNi4yOCAxLjQ2IDguMzhzMS44MiAyLjQ4IDMuMjQgMi4zMmMyLS4yMyAyLjMtMS4wNSA0LjcxLTEyLjEyIDIuMTgtMTAgMy43MS0xMS45MiAxMy43Ni0xNy4wOCAyLjk0LTEuNTEgNy40Ni00IDEwLTUuNDRzNi43OS0zLjY5IDkuMzctNC45MWE0MC4wOSA0MC4wOSAwIDAgMCAxNS4yMi0xMS42N2M3LjExLTguNzkgMTAtMTYuMjIgMTIuODUtMzMuM2ExOC4zNyAxOC4zNyAwIDAgMSAyLjg2LTcuNzMgMjAuMzkgMjAuMzkgMCAwIDAgMi44OS03LjMxYzEtNS4zIDIuODUtOS4wOCA1LjU4LTExLjUxIDQuNy00LjE4IDYtMS4wOSA0LjU5IDEwLjg3LS40NiAzLjg2LTEuMSAxMC4zMy0xLjQ0IDE0LjM4bC0uNjEgNy4zNiA0LjQ1IDQuMDkgNC40NSA0LjA5LjExIDguNDJjLjA2IDQuNjMuNDcgOS41My45MiAxMC44OWwuODIgMi40Ny02LjQzIDYuMjhjLTguNTQgOC4zMy0xMi44OCAxMy45My0xNi43NiAyMS42MS0xLjc3IDMuNDktMy43NCA3LjExLTQuMzggOC0yLjE4IDMuMTEtNi40NiAxMy04Ljc2IDIwLjI2bC0yLjI5IDcuMjItNyA2LjQ5Yy0zLjgzIDMuNTctOCA3LjI1LTkuMTcgOC4xNy0zLjA1IDIuMzItNC4yNiA1LjE1LTQuMjYgMTBhMTQuNjIgMTQuNjIgMCAwIDAgMS41OSA3LjI2IDQyIDQyIDAgMCAxIDIuMDkgNC44MyA5LjI4IDkuMjggMCAwIDAgMS41NyAyLjg5YzEuNCAxLjU5IDEuOTIgMTYuMTIuODMgMjMuMjItLjY4IDQuNDgtMy42MyAxMi00LjcgMTItMS43OSAwLTQuMDYgOS4yNy01LjA3IDIwLjc0LS4xOCAyLS42MiA1Ljk0LTEgOC43cy0xIDEwLTEuMzUgMTYuMDVjLS43NyAxMi4yMi0uMTkgMTguNzcgMiAyMy4xNSAzLjQxIDYuNjkuNTIgMTIuNjktMTEgMjIuODRsLTQgMy40OS4wNyA1LjE5YTQwLjgxIDQwLjgxIDAgMCAwIDEuMTQgOC44N2M0LjYxIDE2IDQuNzMgMTYuOTIgNC4zOCAzNy4xMy0uNDYgMjYuNC0uMjYgNDAuMjcuNjMgNDQuMTVhNjEuMzEgNjEuMzEgMCAwIDEgMS4wOCA3Yy4xNyAyIC42NiA1LjMzIDEuMDggNy4zNi40NyAyLjI2Ljc4IDExIC43OSAyMi43NHYxOS4wNmwtMS44MSAyLjYzYy0yLjcxIDMuOTEtMTUuMTEgMTMuNTQtMTUuNDkgMTIuMjl6bTI5LjUzLTQ1LjExYy0uMTgtLjMtLjMzLTYuODctLjMzLTE0LjU5IDAtMTQuMDYtLjg5LTI3LjU0LTIuMjYtMzQuNDUtLjQtMi0uODEtOS43LS45LTE3LjA2LS4xNS0xMS45My0xLjQtMjQuMzctMi42NC0yNi4zOC0uNjYtMS4wNy0zLTE3LjY2LTMtMjEuMyAwLTQuMjMgMS02IDUuMjgtOS4xM3M0Ljg2LTMuMTQgNS40OC0uNzJjLjI4IDEuMSAxLjQ1IDUuNjIgMi42IDEwIDMuOTMgMTUuMTIgNC4xNCAxNi4yNyA0LjA1IDIxLjc0LS4xIDUuNzgtLjEzIDYuMTMtMS43NCAxNy43My0xIDcuMDctMS4xNyAxMi4zOS0xIDI4LjQzLjE3IDE5LjQtLjY0IDM1LjczLTIgNDEuMjctLjcxIDIuNzgtMi44IDUuNDgtMy40MyA0LjQzem0tNzEtMzcuNThhMTAxIDEwMSAwIDAgMS0xLjczLTEwLjc5IDEwMC41IDEwMC41IDAgMCAwLTEuNzMtMTAuNzkgMzcuNTMgMzcuNTMgMCAwIDEtMS02LjQ5Yy0uMzEtMy4xOS0uOTEtNy40Ni0xLjMzLTkuNDgtMS00Ljc5LTMuMzUtMTkuMzUtMy40Mi0yMS4wNyAwLS43NC0uMzQtNC4wNS0uNy03LjM2LS42Ny02LjIxLS44NC0yNy42Ny0uMjItMjguMjkgMS0xIDYuNjMgMi43NiAxMS4zMyA3LjQzbDUuMjggNS4yNS0uNDUgNi40N2MtLjI1IDMuNTYtLjYgMTAuMjMtLjc4IDE0Ljgzcy0uNDkgOS44Ny0uNjcgMTEuNzEtLjYxIDkuMzYtLjk0IDE2LjcyYy0uNzkgMTcuNDEtMS45NCAzMS4yOS0yLjY1IDMyYS42Mi42MiAwIDAgMS0xLS4xNHptLTg3LjE4LTI2Ni41OWMyMS4wNyAxMi43OSAxNy44NCAxNC4xNSAyOC40OSAxNy42NiAxMyA0LjI5IDE4Ljg3IDcuMTMgMjMuMTUgMTYuODdDMTExLjYgMjMzLjI4IDg2LjI1IDI1NSA3OC41NSAyNjhjLTMxIDUyLTYgMTAxLjU5IDYyLjc1IDg3LjIxLTE0LjE4IDI5LjIzLTc4IDI4LjYzLTk4LjY4LTQuOS0yNC42OC0zOS45NS0yMi4wOS0xMTguMyA2MS0xODcuNjZ6bTIxMC43OSAxNzljNTYuNjYgNi44OCA4Mi4zMi0zNy43NCA0Ni41NC04OS4yMyAwIDAtMjYuODctMjkuMzQtNjQuMjgtNjggMy0xNS40NSA5LjQ5LTMyLjEyIDMwLjU3LTUzLjgyIDg5LjIgNjMuNTEgOTIgMTQxLjYxIDkyLjQ2IDE0OS4zNiA0LjMgNzAuNjQtNzguNyA5MS4xOC0xMDUuMjkgNjEuNzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFya2Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkzLjggNTkuMUg0Ni4yQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMnYzMDEuNWMwIDI1LjUgMjAuNyA0Ni4yIDQ2LjIgNDYuMmg1NDcuN2MyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMVYxMDUuMmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZIMjc3di0xMjBsLTYxLjUgNzYuOS02MS41LTc2Ljl2MTIwSDkyLjNWMTUxLjRoNjEuNWw2MS41IDc2LjkgNjEuNS03Ni45aDYxLjV2MjA5LjJ6bTEzNS4zIDMuMUwzODEuNSAyNTZINDQzVjE1MS40aDYxLjVWMjU2SDU2NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXN0b2RvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMgMTc5LjExYzAtOTcuMi02My43MS0xMjUuNy02My43MS0xMjUuNy02Mi41Mi0yOC43LTIyOC41Ni0yOC40LTI5MC40OCAwIDAgMC02My43MiAyOC41LTYzLjcyIDEyNS43IDAgMTE1LjctNi42IDI1OS40IDEwNS42MyAyODkuMSA0MC41MSAxMC43IDc1LjMyIDEzIDEwMy4zMyAxMS40IDUwLjgxLTIuOCA3OS4zMi0xOC4xIDc5LjMyLTE4LjFsLTEuNy0zNi45cy0zNi4zMSAxMS40LTc3LjEyIDEwLjFjLTQwLjQxLTEuNC04My00LjQtODkuNjMtNTRhMTAyLjU0IDEwMi41NCAwIDAgMS0uOS0xMy45Yzg1LjYzIDIwLjkgMTU4LjY1IDkuMSAxNzguNzUgNi43IDU2LjEyLTYuNyAxMDUtNDEuMyAxMTEuMjMtNzIuOSA5LjgtNDkuOCA5LTEyMS41IDktMTIxLjV6bS03NS4xMiAxMjUuMmgtNDYuNjN2LTExNC4yYzAtNDkuNy02NC01MS42LTY0IDYuOXY2Mi41aC00Ni4zM1YxOTdjMC01OC41LTY0LTU2LjYtNjQtNi45djExNC4ySDkwLjE5YzAtMTIyLjEtNS4yLTE0Ny45IDE4LjQxLTE3NSAyNS45LTI4LjkgNzkuODItMzAuOCAxMDMuODMgNi4xbDExLjYgMTkuNSAxMS42LTE5LjVjMjQuMTEtMzcuMSA3OC4xMi0zNC44IDEwMy44My02LjEgMjMuNzEgMjcuMyAxOC40IDUzIDE4LjQgMTc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1heGNkbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjEuMSA0NDIuN2gtOTcuNEw0MTUuNiAyMDBjMi4zLTEwLjIuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42aC00OS4zbC01OS41IDI3OGgtOTcuNGw1OS41LTI3OGgtODMuNGwtNTkuNSAyNzhIMGw1OS41LTI3OC00NC42LTk1LjRIMzg3YzM5LjQgMCA3NS4zIDE2LjMgOTguMyA0NC45IDIzLjMgMjguNiAzMS44IDY3LjQgMjMuNiAxMDUuOWwtNDcuOCAyMjIuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMzcgMTYwLjQxTDcgMzUyaDQzLjkxbDUuNTktNzkuODNMODQuNDMgMzUyaDQ0LjcxbDI1LjU0LTc3LjQzIDQuNzkgNzcuNDNIMjA1bC0xMi43OS0xOTEuNTlIMTQ2LjdMMTA2IDI3Ny43NCA2My42NyAxNjAuNDF6bTI4MSAwaC00Ny45VjM1Mmg0Ny45czk1IC44IDk0LjItOTUuNzljLS43OC05NC4yMS05NC4xOC05NS43OC05NC4xOC05NS43OHptLTEuMiAxNDYuNDZWMjA0Ljc4czQ2IDQuMjcgNDYuOCA1MC41Ny00Ni43OCA1MS41NC00Ni43OCA1MS41NHptMjM4LjI5LTc0LjI0YTU2LjE2IDU2LjE2IDAgMCAwIDgtMzguMzFjLTUuMzQtMzUuNzYtNTUuMDgtMzQuMzItNTUuMDgtMzQuMzJoLTUxLjl2MTkxLjU4SDQ4MnM4NyA0Ljc5IDg3LTYzLjg1YzAtNDMuMTQtMzMuNTItNTUuMDgtMzMuNTItNTUuMDh6bS01MS45LTMxLjk0czEzLjU3LTEuNTkgMTYgOS41OWMxLjQzIDYuNjYtNCAxMi00IDEyaC0xMnYtMjEuNTd6bS0uMSAxMDkuNDZsLjEtMjQuOTJWMjY3aC4wOHM0MS41OC00LjczIDQxLjE5IDIyLjQzYy0uMzMgMjUuNjUtNDEuMzUgMjAuNzQtNDEuMzUgMjAuNzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkYXBwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTguMyAyMzguNGMzLjUtMTIuNSA2LjktMzMuNiAxMy4yLTMzLjYgOC4zIDEuOCA5LjYgMjMuNCAxOC42IDM2LjYgNC42LTIzLjUgNS4zLTg1LjEgMTQuMS04Ni43IDktLjcgMTkuNyA2Ni41IDIyIDc3LjUgOS45IDQuMSA0OC45IDYuNiA0OC45IDYuNiAxLjkgNy4zLTI0IDcuNi00MCA3LjgtNC42IDE0LjgtNS40IDI3LjctMTEuNCAyOC00LjcuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMySDkyYy0yMS4yIDAtMjEuMiAzMiAwIDMyaDEzNnptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJoLTg4Yy0yMS4yIDAtMjEuMiAzMiAwIDMyaDg4em0zNC4yLTE0MS41YzMuMi0xOC45IDUuMi0zNi40IDExLjktNDguOCA3LjktMTQuNyAxNi4xLTI4LjEgMjQtNDEgMjQuNi00MC40IDQ1LjktNzUuMiA0NS45LTEyNS41QzMyMCA2OS42IDI0OC4yIDAgMTYwIDBTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42QzY2LjUgMjQ2LjUgMzMgMjExLjMgMzMgMTU1LjIgMzMgODcuMyA5MCAzMiAxNjAgMzJzMTI3IDU1LjMgMTI3IDEyMy4yYzAgNTYuMS0zMy41IDkxLjMtNjYuMSAxNTEuNi05LjcgMTgtMTEuNyAzNy40LTE1LjMgNTguNi0zLjQgMjAuNiAyOSAyNi40IDMyLjYgNS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZGl1bU0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzEuNSAxNDIuM2MuNi01LjktMS43LTExLjgtNi4xLTE1LjhMMjAuMyA3Mi4xVjY0aDE0MC4ybDEwOC40IDIzNy43TDM2NC4yIDY0aDEzMy43djguMWwtMzguNiAzN2MtMy4zIDIuNS01IDYuNy00LjMgMTAuOHYyNzJjLS43IDQuMSAxIDguMyA0LjMgMTAuOGwzNy43IDM3djguMUgzMDcuM3YtOC4xbDM5LjEtMzcuOWMzLjgtMy44IDMuOC01IDMuOC0xMC44VjE3MS4yTDI0MS41IDQ0Ny4xaC0xNC43TDEwMC40IDE3MS4ydjE4NC45Yy0xLjEgNy44IDEuNSAxNS42IDcgMjEuMmw1MC44IDYxLjZ2OC4xaC0xNDR2LThMNjUgMzc3LjNjNS40LTUuNiA3LjktMTMuNSA2LjUtMjEuMlYxNDIuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTM3Mi4yIDEwNi4xbC0yNCAyM2MtMi4xIDEuNi0zLjEgNC4yLTIuNyA2Ljd2MTY5LjNjLS40IDIuNi42IDUuMiAyLjcgNi43bDIzLjUgMjN2NS4xaC0xMThWMzY3bDI0LjMtMjMuNmMyLjQtMi40IDIuNC0zLjEgMi40LTYuN1YxOTkuOGwtNjcuNiAxNzEuNmgtOS4xTDEyNSAxOTkuOHYxMTVjLS43IDQuOCAxIDkuNyA0LjQgMTMuMmwzMS42IDM4LjN2NS4xSDcxLjJ2LTUuMWwzMS42LTM4LjNjMy40LTMuNSA0LjktOC40IDQuMS0xMy4ydi0xMzNjLjQtMy43LTEtNy4zLTMuOC05LjhMNzUgMTM4LjFWMTMzaDg3LjNsNjcuNCAxNDhMMjg5IDEzMy4xaDgzLjJ2NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTQ0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTMuNyAyNTZjMCAxMjEuOCA4My45IDIyMi44IDE5My41IDI0MS4xLTE4LjcgNC41LTM4LjIgNi45LTU4LjIgNi45QzExMS40IDUwNCAwIDM5MyAwIDI1NlMxMTEuNCA4IDI0OC45IDhjMjAuMSAwIDM5LjYgMi40IDU4LjIgNi45QzE5Ny41IDMzLjIgMTEzLjcgMTM0LjIgMTEzLjcgMjU2bTI5Ny40IDEwMC4zYy03Ny43IDU1LjQtMTc5LjYgNDcuNS0yNDAuNC0xNC42IDUuNSAxNC4xIDEyLjcgMjcuNyAyMS43IDQwLjUgNjEuNiA4OC4yIDE4Mi40IDEwOS4zIDI2OS43IDQ3IDg3LjMtNjIuMyAxMDguMS0xODQuMyA0Ni41LTI3Mi42LTktMTIuOS0xOS4zLTI0LjMtMzAuNS0zNC4yIDM3LjQgNzguOCAxMC43IDE3OC41LTY3IDIzMy45bS0yMTguOC0yNDRjLTEuNCAxLTIuNyAyLjEtNCAzLjEgNjQuMy0xNy44IDEzNS45IDQgMTc4LjkgNjAuNSAzNS43IDQ3IDQyLjkgMTA2LjYgMjQuNCAxNTggNTYuNy01Ni4yIDY3LjYtMTQyLjEgMjIuMy0yMDEuOC01MC02NS41LTE0OS4xLTc0LjQtMjIxLjYtMTkuOE0yOTYgMjI0Yy00LjQgMC04LTMuNi04LTh2LTQwYzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY0MGMwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDggMy42IDggOHY0MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00MGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZXR1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05OSA0MTQuM2MxLjEgNS43LTIuMyAxMS4xLTggMTIuMy01LjQgMS4xLTEwLjktMi4zLTEyLTgtMS4xLTUuNCAyLjMtMTEuMSA3LjctMTIuMyA1LjQtMS4yIDExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNjNi4zLTEuNCAxMC4zLTcuNyA4LjktMTQtMS4xLTYuNi03LjQtMTAuNi0xMy43LTkuMS02LjMgMS40LTEwLjMgNy43LTkuMSAxNCAxLjQgNi42IDcuNiAxMC42IDEzLjkgOS4xek0zNC40IDIyNi4zYy0xMC02LjktMjMuNy00LjMtMzAuNiA2LTYuOSAxMC00LjMgMjQgNS43IDMwLjkgMTAgNy4xIDIzLjcgNC42IDMwLjYtNS43IDYuOS0xMC40IDQuMy0yNC4xLTUuNy0zMS4yem0yNzItMTcwLjljMTAuNi02LjMgMTMuNy0yMCA3LjctMzAuMy02LjMtMTAuNi0xOS43LTE0LTMwLTcuN3MtMTMuNyAyMC03LjQgMzAuNmM2IDEwLjMgMTkuNCAxMy43IDI5LjcgNy40em0tMTkxLjEgNThjNy43LTUuNCA5LjQtMTYgNC4zLTIzLjdzLTE1LjctOS40LTIzLjEtNC4zYy03LjcgNS40LTkuNCAxNi00LjMgMjMuNyA1LjEgNy44IDE1LjYgOS41IDIzLjEgNC4zem0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhjLTEuMS01LjctNi42LTkuMS0xMi04LTUuNyAxLjEtOS4xIDYuOS04IDEyLjYgMS4xIDUuNCA2LjYgOS4xIDEyLjMgOCA1LjQtMS41IDkuMS02LjkgNy43LTEyLjZ6TTQ0NyAxMzguOWMtOC42IDYtMTAuNiAxNy43LTQuOSAyNi4zIDUuNyA4LjYgMTcuNCAxMC42IDI2IDQuOSA4LjMtNiAxMC4zLTE3LjcgNC42LTI2LjMtNS43LTguNy0xNy40LTEwLjktMjUuNy00Ljl6bS02LjMgMTM5LjRjMjYuMyA0My4xIDE1LjEgMTAwLTI2LjMgMTI5LjEtMTcuNCAxMi4zLTM3LjEgMTcuNy01Ni45IDE3LjEtMTIgNDcuMS02OS40IDY0LjYtMTA1LjEgMzIuNi0xLjEuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45LjYtMTA3LjQgNTMuNC0xMTQuOUMxNTEuNiA3MCAyMzQuMSAzOC42IDI5MC4xIDgyYzY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zLjkgNy4xIDEwLjktMS40IDkuNC0zNS4xIDcyLjMtMzguOSA4Ny43LTQuNiAyMC42IDYuNiA0MS40IDI0LjkgNTAuNiAxMS40IDUuNyA2Mi41IDE1LjcgNTguNS0xMS4xem01LjcgOTIuM2MtMTAuMyA3LjQtMTIuOSAyMi01LjcgMzIuNiA3LjEgMTAuNiAyMS40IDEzLjEgMzIgNiAxMC42LTcuNCAxMy4xLTIyIDYtMzIuNi03LjQtMTAuNi0yMS43LTEzLjUtMzIuMy02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZ2Fwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC41IDIwOS42djY2LjJsMzMuNSAzMy41IDMzLjMtMzMuM3YtNjYuNGwtMzMuNC0zMy40ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDUuMSA0MTQuNEwzNjcgNDQxLjZsLTI2LTE5LjJ2LTY1LjVsLTMzLjQtMzMuNC0zMy40IDMzLjR2NjUuNUwyNDggNDQxLjZsLTI2LjEtMTkuMnYtNjUuNWwtMzMuNC0zMy40LTMzLjUgMzMuNHY2NS41bC0yNi4xIDE5LjItMjYuMS0xOS4ydi04N2w1OS41LTU5LjVWMTg4bDU5LjUtNTkuNVY1Mi45bDI2LjEtMTkuMkwyNzQgNTIuOXY3NS42bDU5LjUgNTkuNXY4Ny42bDU5LjcgNTkuN3Y4Ny4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lbmRlbGV5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNC42IDMyNS4yYy0xMi4zLTEyLjQtMjkuNy0xOS4yLTQ4LjQtMTcuMi00My4zLTEtNDkuNy0zNC45LTM3LjUtOTguOCAyMi44LTU3LjUtMTQuOS0xMzEuNS04Ny40LTEzMC44LTc3LjQuNy04MS43IDgyLTEzMC45IDgyLTQ4LjEgMC01NC04MS4zLTEzMC45LTgyLTcyLjktLjgtMTEwLjEgNzMuMy04Ny40IDEzMC44IDEyLjIgNjMuOSA1LjggOTcuOC0zNy41IDk4LjgtMjEuMi0yLjMtMzcgNi41LTUzIDIyLjUtMTkuOSAxOS43LTE5LjMgOTQuOCA0Mi42IDEwMi42IDQ3LjEgNS45IDgxLjYtNDIuOSA2MS4yLTg3LjgtNDcuMy0xMDMuNyAxODUuOS0xMDYuMSAxNDYuNS04LjItLjEuMS0uMi4yLS4zLjQtMjYuOCA0Mi44IDYuOCA5Ny40IDU4LjggOTUuMiA1Mi4xIDIuMSA4NS40LTUyLjYgNTguOC05NS4yLS4xLS4yLS4yLS4zLS4zLS40LTM5LjQtOTcuOSAxOTMuOC05NS41IDE0Ni41IDguMi00LjYgMTAtNi43IDIxLjMtNS43IDMzIDQuOSA1My40IDY4LjcgNzQuMSAxMDQuOSAzNS4yIDE3LjgtMTQuOCAyMy4xLTY1LjYgMC04OC4zem0tMzAzLjktMTkuMWgtLjZjLTQzLjQgMC02Mi44LTM3LjUtNjIuOC02Mi44IDAtMzQuNyAyOC4yLTYyLjggNjIuOC02Mi44aC42YzM0LjcgMCA2Mi44IDI4LjEgNjIuOCA2Mi44IDAgMjUtMTkuMiA2Mi44LTYyLjggNjIuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb2Jsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk5LjM2LDM2Mi4yM2MyOS40OS0zNC42OSw0Ny4xLTc4LjM0LDQ3LjEtMTI1Ljc5QzQ0Ni40NiwxMjMuNDksMzQ2Ljg2LDMyLDIyNCwzMlMxLjU0LDEyMy40OSwxLjU0LDIzNi40NCwxMDEuMTQsNDQwLjg3LDIyNCw0NDAuODdhMjM5LjI4LDIzOS4yOCwwLDAsMCw3OS40NC0xMy40NCw3LjE4LDcuMTgsMCwwLDEsOC4xMiwyLjU2YzE4LjU4LDI1LjA5LDQ3LjYxLDQyLjc0LDc5Ljg5LDQ5LjkyYTQuNDIsNC40MiwwLDAsMCw1LjIyLTMuNDMsNC4zNyw0LjM3LDAsMCwwLS44NS0zLjYyLDg3LDg3LDAsMCwxLDMuNjktMTEwLjY5Wk0zMjkuNTIsMjEyLjRsLTU3LjMsNDMuNDlMMjkzLDMyNC43NWE2LjUsNi41LDAsMCwxLTkuOTQsNy4yMkwyMjQsMjkwLjkyLDE2NC45NCwzMzJhNi41MSw2LjUxLDAsMCwxLTkuOTUtNy4yMmwyMC43OS02OC44Ni01Ny4zLTQzLjQ5YTYuNSw2LjUsMCwwLDEsMy44LTExLjY4bDcxLjg4LTEuNTEsMjMuNjYtNjcuOTJhNi41LDYuNSwwLDAsMSwxMi4yOCwwbDIzLjY2LDY3LjkyLDcxLjg4LDEuNTFhNi41LDYuNSwwLDAsMSwzLjg4LDExLjY4WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3Jvc29mdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyaDIxNC42djIxNC42SDBWMzJ6bTIzMy40IDBINDQ4djIxNC42SDIzMy40VjMyek0wIDI2NS40aDIxNC42VjQ4MEgwVjI2NS40em0yMzMuNCAwSDQ0OFY0ODBIMjMzLjRWMjY1LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjR2MzQ4LjljMCA1Ni4yIDg4IDU4LjEgODggMFYxNzQuM2M3LjktNTIuOSA4OC01MC40IDg4IDYuNXYxNzUuM2MwIDU3LjkgOTYgNTggOTYgMFYyNDBjNS4zLTU0LjcgODgtNTIuNSA4OCA0LjN2MjMuOGMwIDU5LjkgODggNTYuNiA4OCAwVjY0SDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl4Y2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjQzIDIxOS43MjlDNDE2LjEyNCAxMzQuNzI3IDM0NC4xMzUgNjggMjU2LjkxOSA2OGMtNzIuMjY2IDAtMTM2LjIyNCA0Ni41MTYtMTU5LjIwNSAxMTQuMDc0LTU0LjU0NSA4LjAyOS05Ni42MyA1NC44MjItOTYuNjMgMTExLjU4MiAwIDYyLjI5OCA1MC42NjggMTEyLjk2NiAxMTMuMjQzIDExMi45NjZoMjg5LjYxNGM1Mi4zMjkgMCA5NC45NjktNDIuMzYyIDk0Ljk2OS05NC42OTMgMC00NS4xMzEtMzIuMTE4LTgzLjA2My03NC40OC05Mi4yem0tMjAuNDg5IDE0NC41M0gxMTQuMzI3Yy0zOS4wNCAwLTcwLjg4MS0zMS41NjQtNzAuODgxLTcwLjYwNHMzMS44NDEtNzAuNjA0IDcwLjg4MS03MC42MDRjMTguODI3IDAgMzYuNTQ4IDcuNDc1IDQ5LjgzOCAyMC43NjYgMTkuOTYzIDE5Ljk2MyA1MC4xMzMtMTAuMjI3IDMwLjE4LTMwLjE4LTE0LjY3NS0xNC4zOTgtMzIuNjcyLTI0LjM2NS01Mi4wNTMtMjkuMzQ5IDE5LjkzNS00NC4zIDY0Ljc5LTczLjkyNiAxMTQuNjI4LTczLjkyNiA2OS40OTYgMCAxMjUuOTc5IDU2LjQ4MyAxMjUuOTc5IDEyNS43MDIgMCAxMy41NjgtMi4yMTUgMjYuODU3LTYuMzY5IDM5LjU5NC04Ljk0MyAyNy41MTcgMzIuMTMzIDM4LjkzOSA0MC4xNDcgMTMuMjkgMi43NjktOC4zMDYgNC45ODQtMTYuODg5IDYuMzY5LTI1LjQ3MiAxOS4zODEgNy40NzYgMzMuNTAyIDI2LjMwMyAzMy41MDIgNDguNDUzIDAgMjguNzk1LTIzLjUzNSA1Mi4zMy01Mi42MDcgNTIuMzN6bTIzNS4wNjktNTIuMzNjMCA0NC4wMjQtMTIuNzM3IDg2LjM4Ni0zNy4xMDIgMTIyLjY1Ny00LjE1MyA2LjA5Mi0xMC43OTggOS40MTQtMTcuNzIgOS40MTQtMTYuMzE3IDAtMjcuMTI3LTE4LjgyNi0xNy40NDMtMzIuOTQ5IDE5LjM4MS0yOS4zNDkgMjkuOTAzLTYzLjY4MiAyOS45MDMtOTkuMTIycy0xMC41MjEtNjkuNzczLTI5LjkwMy05OC44NDVjLTE1LjY1NS0yMi44MzEgMTkuMzYxLTQ3LjI0IDM1LjE2My0yMy41MzQgMjQuMzY2IDM1Ljk5MyAzNy4xMDIgNzguMzU2IDM3LjEwMiAxMjIuMzc5em0tNzAuODggMGMwIDMxLjU2NS05LjEzNyA2Mi4wMjEtMjYuODU3IDg4LjMyNS00LjE1MyA2LjA5MS0xMC43OTggOS4xMzYtMTcuNzIgOS4xMzYtMTcuMjAxIDAtMjcuMDIyLTE4Ljk3OS0xNy40NDMtMzIuOTQ4IDEzLjAxMy0xOS4xMDQgMTkuNjU4LTQxLjI1NSAxOS42NTgtNjQuNTEzIDAtMjIuOTgxLTYuNjQ1LTQ1LjQwOC0xOS42NTgtNjQuNTEyLTE1Ljc2MS0yMi45ODYgMTkuMDA4LTQ3LjA5NSAzNS4xNjMtMjMuNTM1IDE3LjcxOSAyNi4wMjYgMjYuODU3IDU2LjQ4MyAyNi44NTcgODguMDQ3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1peGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNC41Nyw3Ni4wN2E0NS43MSw0NS43MSwwLDAsMC02Ny41MS02LjQxYy0xNy41OCwxNi4xOC0xOSw0My41Mi00Ljc1LDYyLjc3bDkxLjc4LDEyM0w0MS43NiwzNzkuNThjLTE0LjIzLDE5LjI1LTEzLjExLDQ2LjU5LDQuNzQsNjIuNzdBNDUuNzEsNDUuNzEsMCwwLDAsMTE0LDQzNS45NEwyNDIuODksMjYyLjdhMTIuMTQsMTIuMTQsMCwwLDAsMC0xNC4yM1pNNDcwLjI0LDM3OS41OCwzNzcuOTEsMjU1LjQ1bDkxLjc4LTEyM2MxNC4yMi0xOS4yNSwxMi44My00Ni41OS00Ljc1LTYyLjc3YTQ1LjcxLDQ1LjcxLDAsMCwwLTY3LjUxLDYuNDFsLTEyOCwxNzIuMTJhMTIuMTQsMTIuMTQsMCwwLDAsMCwxNC4yM0wzOTgsNDM1Ljk0YTQ1LjcxLDQ1LjcxLDAsMCwwLDY3LjUxLDYuNDFDNDgzLjM1LDQyNi4xNyw0ODQuNDcsMzk4LjgzLDQ3MC4yNCwzNzkuNThaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl6dW5pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5LjEgMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OEM0OTYgMTE5LjEgMzg1IDggMjQ4IDh6bS04MCAzNTEuOWMtMzEuNCAxMC42LTU4LjggMjcuMy04MCA0OC4yVjEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjIyMy45em0xMjAtOS45Yy0xMi45LTItMjYuMi0zLjEtMzkuOC0zLjEtMTMuOCAwLTI3LjIgMS4xLTQwLjIgMy4xVjEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjIxNHptMTIwIDU3LjdjLTIxLjItMjAuOC00OC42LTM3LjQtODAtNDhWMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2MjcxLjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9keCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTYgMjQxLjhsMzYuNyAyMy43VjQ4MGwtMTMzLTgzLjhMMzU2IDI0MS44ek00NDAgNzVIMjI2LjNsLTIzIDM3LjggMTUzLjUgOTYuNUw0NDAgNzV6bS04OSAxNDIuOEw1NS4yIDMydjIxNC41bDQ2IDI5TDM1MSAyMTcuOHpNOTcgMjk0LjJMOCA0MzdoMjEzLjdsMTI1LTIwMC41TDk3IDI5NC4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMzg0aDEwOC40QzQxNyA0NTUuOSAzMzguMSA1MDQgMjQ4IDUwNFM3OSA0NTUuOSAzNS42IDM4NEgxNDRWMjU2LjJMMjQ4IDM2MWwxMDQtMTA1djEyOHpNODggMzM2VjEyOGwxNTkuNCAxNTkuNEw0MDggMTI4djIwOGg3NC44YzguNS0yNS4xIDEzLjItNTIgMTMuMi04MEM0OTYgMTE5IDM4NSA4IDI0OCA4UzAgMTE5IDAgMjU2YzAgMjggNC42IDU0LjkgMTMuMiA4MEg4OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOYXBzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC4zIDM3My42Yy0xNC4yIDEzLjYtMzEuMyAyNC4xLTUwLjQgMzAuNS0xOS02LjQtMzYuMi0xNi45LTUwLjMtMzAuNWgxMDAuN3ptNDQtMTk5LjZjMjAtMTYuOSA0My42LTI5LjIgNjkuNi0zNi4yVjI5OWMwIDIxOS40LTMyOCAyMTcuNi0zMjggLjNWMTM3LjdjMjUuOSA2LjkgNDkuNiAxOS42IDY5LjUgMzYuNCA1Ni44LTQwIDEzMi41LTM5LjkgMTg4LjktLjF6bS0yMDguOC01OC41YzY0LjQtNjAgMTY0LjMtNjAuMSAyMjguOS0uMi03LjEgMy41LTEzLjkgNy4zLTIwLjYgMTEuNS01OC43LTMwLjUtMTI5LjItMzAuNC0xODcuOS4xLTYuMy00LTEzLjktOC4yLTIwLjQtMTEuNHpNNDMuOCA5My4ydjY5LjNjLTU4LjQgMzYuNS01OC40IDEyMS4xLjEgMTU4LjMgMjYuNCAyNDUuMSAzODEuNyAyNDAuMyA0MDcuNiAxLjVsLjMtMS43YzU4LjctMzYuMyA1OC45LTEyMS43LjItMTU4LjJWOTMuMmMtMTcuMy41LTM0IDMtNTAuMSA3LjQtODItOTEuNS0yMjUuNS05MS41LTMwNy41LjEtMTYuMy00LjQtMzMuMS03LTUwLjYtNy41ek0yNTkuMiAzNTJzMzYtLjMgNjEuMy0xLjVjMTAuMi0uNSAyMS4xLTQgMjUuNS02LjUgMjYuMy0xNS4xIDI1LjQtMzkuMiAyNi4yLTQ3LjQtNzkuNS0uNi05OS45LTMuOS0xMTMgNTUuNHptLTEzNS41LTU1LjNjLjggOC4yLS4xIDMyLjMgMjYuMiA0Ny40IDQuNCAyLjUgMTUuMiA2IDI1LjUgNi41IDI1LjMgMS4xIDYxLjMgMS41IDYxLjMgMS41LTEzLjItNTkuNC0zMy43LTU2LjEtMTEzLTU1LjR6bTE2OS4xIDEyMy40Yy0zLjItNS4zLTYuOS03LjMtNi45LTcuMy0yNC44IDcuMy01Mi4yIDYuOS03NS45IDAgMCAwLTIuOSAxLjUtNi40IDYuNi0yLjggNC4xLTMuNyA5LjYtMy43IDkuNiAyOS4xIDE3LjYgNjcuMSAxNy42IDk2LjIgMC0uMS0uMS0uMy00LTMuMy04Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmVvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTUuNDQgNTEyaC05NS4xMUwyMTIuMTIgMzU3LjQ2djkxLjFMMTI1LjY5IDUxMkgyOFYyOS44Mkw2OC40NyAwaDEwOC4wNWwxMjMuNzQgMTc2LjEzVjYzLjQ1TDM4Ni42OSAwaDk3LjY5djQ2MS41ek0zOC43NyAzNS4yN1Y0OTZsNzItNTIuODhWMTk0bDIxNS41IDMwNy42NGg4NC43OWw1Mi4zNS0zOC4xN2gtNzguMjdMNjkgMTN6bTgyLjU0IDQ2Ni42MWw4MC01OC43OHYtMTAxbC03OS43Ni0xMTQuNHYyMjAuOTRMNDkgNTAxLjg5aDcyLjM0ek04MC42MyAxMC43N2wzMTAuNiA0NDIuNTdoODIuMzdWMTAuNzdoLTc5Ljc1djMxNy41NkwxNzAuOTEgMTAuNzd6TTMxMSAxOTEuNjVsNzIgMTAyLjgxVjE1LjkzbC03MiA1M3YxMjIuNzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmltYmxyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni42IDI5OS4yOWMxNS41NyAwIDI3LjE1IDExLjQ2IDI3LjE1IDI3cy0xMS42MiAyNy0yNy4xNSAyN2MtMTUuNyAwLTI3LjE1LTExLjU3LTI3LjE1LTI3czExLjU1LTI3IDI3LjE1LTI3ek0xMTMgMzI2LjI1YzAtMTUuNjEgMTEuNjgtMjcgMjcuMTUtMjdzMjcuMTUgMTEuNDYgMjcuMTUgMjctMTEuNDcgMjctMjcuMTUgMjdjLTE1LjQ0IDAtMjcuMTUtMTEuMzEtMjcuMTUtMjdNMTkxLjc2IDE1OUMxNTcgMTU5IDg5LjQ1IDE3OC43NyA1OS4yNSAyMjdMMTQgMHYzMzUuNDhDMTQgNDMzLjEzIDkzLjYxIDUxMiAxOTEuNzYgNTEyczE3Ny43Ni03OC45NSAxNzcuNzYtMTc2LjUyUzI5MC4xMyAxNTkgMTkxLjc2IDE1OXptMCAzMDguMTJjLTczLjI3IDAtMTMyLjUxLTU4LjktMTMyLjUxLTEzMS41OXM1OS4yNC0xMzEuNTkgMTMyLjUxLTEzMS41OSAxMzIuNTEgNTguODYgMTMyLjUxIDEzMS41NFMyNjUgNDY3LjA3IDE5MS43NiA0NjcuMDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTm9kZUpzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA1MDhjLTYuNyAwLTEzLjUtMS44LTE5LjQtNS4ybC02MS43LTM2LjVjLTkuMi01LjItNC43LTctMS43LTggMTIuMy00LjMgMTQuOC01LjIgMjcuOS0xMi43IDEuNC0uOCAzLjItLjUgNC42LjRsNDcuNCAyOC4xYzEuNyAxIDQuMSAxIDUuNyAwbDE4NC43LTEwNi42YzEuNy0xIDIuOC0zIDIuOC01VjE0OS4zYzAtMi4xLTEuMS00LTIuOS01LjFMMjI2LjggMzcuN2MtMS43LTEtNC0xLTUuNyAwTDM2LjYgMTQ0LjNjLTEuOCAxLTIuOSAzLTIuOSA1LjF2MjEzLjFjMCAyIDEuMSA0IDIuOSA0LjlsNTAuNiAyOS4yYzI3LjUgMTMuNyA0NC4zLTIuNCA0NC4zLTE4LjdWMTY3LjVjMC0zIDIuNC01LjMgNS40LTUuM2gyMy40YzIuOSAwIDUuNCAyLjMgNS40IDUuM1YzNzhjMCAzNi42LTIwIDU3LjYtNTQuNyA1Ny42LTEwLjcgMC0xOS4xIDAtNDIuNS0xMS42bC00OC40LTI3LjlDOC4xIDM4OS4yLjcgMzc2LjMuNyAzNjIuNFYxNDkuM2MwLTEzLjggNy40LTI2LjggMTkuNC0zMy43TDIwNC42IDljMTEuNy02LjYgMjcuMi02LjYgMzguOCAwbDE4NC43IDEwNi43YzEyIDYuOSAxOS40IDE5LjggMTkuNCAzMy43djIxMy4xYzAgMTMuOC03LjQgMjYuNy0xOS40IDMzLjdMMjQzLjQgNTAyLjhjLTUuOSAzLjQtMTIuNiA1LjItMTkuNCA1LjJ6bTE0OS4xLTIxMC4xYzAtMzkuOS0yNy01MC41LTgzLjctNTgtNTcuNC03LjYtNjMuMi0xMS41LTYzLjItMjQuOSAwLTExLjEgNC45LTI1LjkgNDcuNC0yNS45IDM3LjkgMCA1MS45IDguMiA1Ny43IDMzLjguNSAyLjQgMi43IDQuMiA1LjIgNC4yaDI0YzEuNSAwIDIuOS0uNiAzLjktMS43czEuNS0yLjYgMS40LTQuMWMtMy43LTQ0LjEtMzMtNjQuNi05Mi4yLTY0LjYtNTIuNyAwLTg0LjEgMjIuMi04NC4xIDU5LjUgMCA0MC40IDMxLjMgNTEuNiA4MS44IDU2LjYgNjAuNSA1LjkgNjUuMiAxNC44IDY1LjIgMjYuNyAwIDIwLjYtMTYuNiAyOS40LTU1LjUgMjkuNC00OC45IDAtNTkuNi0xMi4zLTYzLjItMzYuNi0uNC0yLjYtMi42LTQuNS01LjMtNC41aC0yMy45Yy0zIDAtNS4zIDIuNC01LjMgNS4zIDAgMzEuMSAxNi45IDY4LjIgOTcuOCA2OC4yIDU4LjQtLjEgOTItMjMuMiA5Mi02My40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE2LjMgNDUyYy0yLjEgMC00LjItLjYtNi4xLTEuNkwyOTEgNDM5Yy0yLjktMS42LTEuNS0yLjItLjUtMi41IDMuOC0xLjMgNC42LTEuNiA4LjctNCAuNC0uMiAxLS4xIDEuNC4xbDE0LjggOC44Yy41LjMgMS4zLjMgMS44IDBMMzc1IDQwOGMuNS0uMy45LS45LjktMS42di02Ni43YzAtLjctLjMtMS4zLS45LTEuNmwtNTcuOC0zMy4zYy0uNS0uMy0xLjItLjMtMS44IDBsLTU3LjggMzMuM2MtLjYuMy0uOSAxLS45IDEuNnY2Ni43YzAgLjYuNCAxLjIuOSAxLjVsMTUuOCA5LjFjOC42IDQuMyAxMy45LS44IDEzLjktNS44di02NS45YzAtLjkuNy0xLjcgMS43LTEuN2g3LjNjLjkgMCAxLjcuNyAxLjcgMS43djY1LjljMCAxMS41LTYuMiAxOC0xNy4xIDE4LTMuMyAwLTYgMC0xMy4zLTMuNmwtMTUuMi04LjdjLTMuNy0yLjItNi4xLTYuMi02LjEtMTAuNXYtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjV2NjYuN2MwIDQuMy0yLjMgOC40LTYuMSAxMC41bC01Ny44IDMzLjRjLTEuNyAxLjEtMy44IDEuNy02IDEuN3ptNDYuNy02NS44YzAtMTIuNS04LjQtMTUuOC0yNi4yLTE4LjItMTgtMi40LTE5LjgtMy42LTE5LjgtNy44IDAtMy41IDEuNS04LjEgMTQuOC04LjEgMTEuOSAwIDE2LjMgMi42IDE4LjEgMTAuNi4yLjguOCAxLjMgMS42IDEuM2g3LjVjLjUgMCAuOS0uMiAxLjItLjUuMy0uNC41LS44LjQtMS4zLTEuMi0xMy44LTEwLjMtMjAuMi0yOC44LTIwLjItMTYuNSAwLTI2LjMgNy0yNi4zIDE4LjYgMCAxMi43IDkuOCAxNi4xIDI1LjYgMTcuNyAxOC45IDEuOSAyMC40IDQuNiAyMC40IDguMyAwIDYuNS01LjIgOS4yLTE3LjQgOS4yLTE1LjMgMC0xOC43LTMuOC0xOS44LTExLjQtLjEtLjgtLjgtMS40LTEuNy0xLjRoLTcuNWMtLjkgMC0xLjcuNy0xLjcgMS43IDAgOS43IDUuMyAyMS4zIDMwLjYgMjEuMyAxOC41IDAgMjktNy4yIDI5LTE5Ljh6bTU0LjUtNTAuMWMwIDYuMS01IDExLjEtMTEuMSAxMS4xcy0xMS4xLTUtMTEuMS0xMS4xYzAtNi4zIDUuMi0xMS4xIDExLjEtMTEuMSA2LS4xIDExLjEgNC44IDExLjEgMTEuMXptLTEuOCAwYzAtNS4yLTQuMi05LjMtOS40LTkuMy01LjEgMC05LjMgNC4xLTkuMyA5LjMgMCA1LjIgNC4yIDkuNCA5LjMgOS40IDUuMi0uMSA5LjQtNC4zIDkuNC05LjR6bS00LjUgNi4yaC0yLjZjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFoLTIuMnY1aC0yLjR2LTEyLjVoNC4zYzEuNSAwIDQuNCAwIDQuNCAzLjMgMCAyLjMtMS41IDIuOC0yLjQgMy4xIDEuNy4xIDEuOCAxLjIgMi4xIDIuOC4xIDEgLjMgMi43LjYgMy4zem0tMi44LTguOGMwLTEuNy0xLjItMS43LTEuOC0xLjdoLTJ2My41aDEuOWMxLjYgMCAxLjktMS4xIDEuOS0xLjh6TTEzNy4zIDE5MWMwLTIuNy0xLjQtNS4xLTMuNy02LjRsLTYxLjMtMzUuM2MtMS0uNi0yLjItLjktMy40LTFoLS42Yy0xLjIgMC0yLjMuNC0zLjQgMUwzLjcgMTg0LjZDMS40IDE4NS45IDAgMTg4LjQgMCAxOTFsLjEgOTVjMCAxLjMuNyAyLjUgMS44IDMuMiAxLjEuNyAyLjUuNyAzLjcgMEw0MiAyNjguM2MyLjMtMS40IDMuNy0zLjggMy43LTYuNHYtNDQuNGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsMTUuNS04LjljMS4yLS43IDIuNC0xIDMuNy0xIDEuMyAwIDIuNi4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40djQ0LjRjMCAyLjYgMS40IDUuMSAzLjcgNi40bDM2LjQgMjAuOWMxLjEuNyAyLjYuNyAzLjcgMCAxLjEtLjYgMS44LTEuOSAxLjgtMy4ybC4yLTk1ek00NzIuNSA4Ny4zdjE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjR2LTcwLjhjMC0yLjYgMS40LTUuMSAzLjctNi40bDYxLjMtMzUuNGMyLjMtMS4zIDUuMS0xLjMgNy40IDBsMTUuMyA4LjhjMS43IDEgMy45LS4zIDMuOS0yLjJ2LTk0YzAtMi44IDMtNC42IDUuNS0zLjJsMzYuNSAyMC40YzIuMyAxLjIgMy44IDMuNyAzLjggNi40em0tNDYgMTI4LjljMC0uNy0uNC0xLjMtLjktMS42bC0yMS0xMi4yYy0uNi0uMy0xLjMtLjMtMS45IDBsLTIxIDEyLjJjLS42LjMtLjkuOS0uOSAxLjZ2MjQuM2MwIC43LjQgMS4zLjkgMS42bDIxIDEyLjFjLjYuMyAxLjMuMyAxLjggMGwyMS0xMi4xYy42LS4zLjktLjkuOS0xLjZ2LTI0LjN6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40VjE5MmMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40djcwLjhjMCAyLjcgMS40IDUuMSAzLjcgNi40bDYwLjkgMzQuN2MyLjIgMS4zIDUgMS4zIDcuMyAwbDM2LjgtMjAuNWMyLjUtMS40IDIuNS01IDAtNi40TDU1MCAyNDEuNmMtMS4yLS43LTEuOS0xLjktMS45LTMuMnYtMjIuMmMwLTEuMy43LTIuNSAxLjktMy4ybDE5LjItMTEuMWMxLjEtLjcgMi42LS43IDMuNyAwbDE5LjIgMTEuMWMxLjEuNyAxLjkgMS45IDEuOSAzLjJ2MTcuNGMwIDIuOCAzLjEgNC42IDUuNiAzLjJsMzYuNy0yMS4zek01NTkgMjE5Yy0uNC4zLS43LjctLjcgMS4ydjEzLjZjMCAuNS4zIDEgLjcgMS4ybDExLjggNi44Yy40LjMgMSAuMyAxLjQgMEw1ODQgMjM1Yy40LS4zLjctLjcuNy0xLjJ2LTEzLjZjMC0uNS0uMy0xLS43LTEuMmwtMTEuOC02LjhjLS40LS4zLTEtLjMtMS40IDBMNTU5IDIxOXptLTI1NC4yIDQzLjV2LTcwLjRjMC0yLjYtMS42LTUuMS0zLjktNi40bC02MS4xLTM1LjJjLTIuMS0xLjItNS0xLjQtNy40IDBsLTYxLjEgMzUuMmMtMi4zIDEuMy0zLjkgMy43LTMuOSA2LjR2NzAuNGMwIDIuOCAxLjkgNS4yIDQgNi40bDYxLjIgMzUuMmMyLjQgMS40IDUuMiAxLjMgNy40IDBsNjEtMzUuMmMxLjgtMSAzLjEtMi43IDMuNi00LjcuMS0uNS4yLTEuMS4yLTEuN3ptLTc0LjMtMTI0LjlsLS44LjVoMS4xbC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjd2LjlsLjQtLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTnBtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyODhoLTMydi02NGgzMnY2NHptMjg4LTEyOHYxOTJIMjg4djMySDE2MHYtMzJIMFYxNjBoNTc2em0tNDE2IDMySDMydjEyOGg2NHYtOTZoMzJ2OTZoMzJWMTkyem0xNjAgMEgxOTJ2MTYwaDY0di0zMmg2NFYxOTJ6bTIyNCAwSDM1MnYxMjhoNjR2LTk2aDMydjk2aDMydi05NmgzMnY5NmgzMlYxOTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTnM4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNC4zMjQsMjY5LjE3MmgyNi4wNjdWMjQyLjk5NEgxMDQuMzI0Wm01Mi40NjYtMjYuMTc4LS4wNTUtMjYuMTc4di0uOTQxYTM5LjMyNSwzOS4zMjUsMCwwLDAtNzguNjQ0Ljk0MXYuMTY2aDI2LjR2LS4xNjZhMTIuOTgsMTIuOTgsMCwwLDEsMjUuOTU2LDB2MjYuMTc4Wm01Mi4zNTYsMjUuODQ2YTkxLjEsOTEuMSwwLDAsMS05MS4xLDkxLjFoLS42MDlhOTEuMSw5MS4xLDAsMCwxLTkxLjEtOTEuMUgwdi4xNjZBMTE3LjMzLDExNy4zMywwLDAsMCwxMTcuNDQsMzg2LjI4aC43NzVBMTE3LjMzMSwxMTcuMzMxLDAsMCwwLDIzNS40OSwyNjguODRWMjQyLjgyOEgyMDkuMTQ2Wm0tMTU3LjIzMywwYTY1LjM2Miw2NS4zNjIsMCwwLDAsMTMwLjcyMywwSDE1Ni4yOTJhMzkuMDIzLDM5LjAyMywwLDAsMS03OC4wMzUsMFYyNDIuODgzSDUxLjk2OHYtMjYuNjJBNjUuNDIsNjUuNDIsMCwwLDEsMTgyLjgsMjE3LjQ4djI1LjI5M2gyNi4zNDRWMjE3LjQ4YTkxLjc2MSw5MS43NjEsMCwwLDAtMTgzLjUyMiwwdjI1LjRINTEuOTEzWm00MTguNC03MS4xNzNjMTMuNjcsMCwyNC41NzMsNi42NDIsMzAuMDUyLDE4LjI2NGwuNzE5LDEuNTQ5LDIzLjI0NS0xMS41MTEtLjYwOS0xLjQzOWMtOC4wMjUtMTkuMjYtMjguNS0zMS4yNy01My40MDctMzEuMjctMjMuMTM0LDAtNDMuNjExLDExLjQtNTAuOTcyLDI4LjQ0Ny0uMTIzLDI2Ljg3Ni0uMTU4LDIzLjksMCwyNC44NSw0LjcsMTEuMDEzLDE0LjU1NSwxOS4zNywyOC42NjgsMjQuMjQxYTEwMi4wMzMsMTAyLjAzMywwLDAsMCwxOS44MTMsMy45ODRjNS40NzkuNzIsMTAuNjI2LDEuMzg0LDE1LjgyOSwzLjEsNi4zNjQsMi4xLDEwLjQ2LDUuMjU3LDEyLjg0LDkuODUxdjkuODUxYy0zLjcwOCw3LjUyNy0xMy43ODEsMTIuMzQyLTI1Ljc5MSwxMi4zNDItMTQuMzM0LDAtMjUuOTU2LTYuOTE4LTMxLjkzMy0xOS4wMzlsLS43Mi0xLjQ5NEw0MTUuMDI2LDI4MC45bC41NTMsMS40MzljNy45MTUsMTkuNDI2LDI5LjYwOSwzMi4wNDQsNTUuMjg5LDMyLjA0NCwyMy42MzIsMCw0NC42MDgtMTEuNCw1Mi4zLTI4LjQ0N2wuMTY2LTI1LjktLjE2Ni0uNjY0Yy00Ljg3LTExLjAxNC0xNS4yMTktMTkuNjQ3LTI4Ljk0NC0yNC4yNDEtNy42OTMtMi43MTItMTQuMzM1LTMuNi0yMC43LTQuNDI3YTgzLjc3Nyw4My43NzcsMCwwLDEtMTQuODMyLTIuODc4Yy02LjMxLTEuOTM3LTEwLjQtNS4wOTItMTIuNjE5LTkuNjN2LTguNDEyQzQ0OS40NSwyMDIuNDI3LDQ1OC45NjksMTk3LjY2Nyw0NzAuMzE1LDE5Ny42NjdaTTI4Ny41NjgsMzExLjM0NGgyNi4wNjd2LTY4LjRIMjg3LjU2OFptMzUyLjI2Ni01My4zYy0yLjkzMy02LjI1NC04LjMtMTIuMDEtMTUuNDQxLTE2LjcxNEEzNy45OSwzNy45OSwwLDAsMCw2MzcuNCwyMjZsLjE2Ni0yNS4zNDctLjE2Ni0uNjY0QzYzMC4wMzgsMTg0LDYxMC42NjcsMTczLjI2LDU4OS4yNSwxNzMuMjZTNTQ4LjQ2MSwxODQsNTQxLjEsMTk5Ljk5MmwtLjE2NiwyNS4zNDcuMTY2LjY2NGEzOS42NDMsMzkuNjQzLDAsMCwwLDEzLjAwNiwxNS4zMzFjLTcuMiw0LjctMTIuNTA4LDEwLjQ2LTE1LjQ0MSwxNi43MTRsLS4xNjYsMjguODg5LjE2Ni43MmM3LjU4MiwxNS45OTQsMjcuODkzLDI2LjczMSw1MC41ODUsMjYuNzMxczQzLjA1Ny0xMC43MzcsNTAuNTg0LTI2LjczMWwuMTY2LTI4Ljg5Wm0tNzMuMjItNTAuODA2YzMuNi02LjMxLDEyLjU2My0xMC41MTYsMjIuNTgtMTAuNTE2czE5LjAzOCw0LjIwNiwyMi42MzYsMTAuNTE2djEzLjcyNWMtMy41NDIsNi4yLTEyLjU2MywxMC4zNDktMjIuNjM2LDEwLjM0OXMtMTkuMDk0LTQuMTUtMjIuNTgtMTAuMzQ5Wm00Ny4zMTksNzIuMTY5Yy0zLjc2NCw2LjY0MS0xMy4zMzgsMTAuOS0yNC42ODMsMTAuOS0xMS4xMjUsMC0yMC45NzYtNC4zNzItMjQuNjg0LTEwLjlWMjYzLjI1YzMuNzA4LTYuMzA5LDEzLjUtMTAuNTE1LDI0LjY4NC0xMC41MTUsMTEuMzQ1LDAsMjAuOTE5LDQuMTUsMjQuNjgzLDEwLjUxNVpNMzc2LjQsMjY1Ljk2MmwtNTkuODI3LTg5LjcxM2gtMjl2NDAuNjIzaDI2LjUxdi4zODdsNjIuNTM5LDk0LjA4NUg0MDIuM1YxNzYuMjQ5SDM3Ni40WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU51dHJpdGlvbml4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg4IDguMVMyMjEuNC0uMSAyMDkgMTEyLjVjMCAwIDE5LjEtNzQuOSAxMDMtNDAuNiAwIDAtMTcuNyA3NC04OCA1NiAwIDAgMTQuNi01NC42IDY2LjEtNTYuNiAwIDAtMzkuOS0xMC4zLTgyLjEgNDguOCAwIDAtMTkuOC05NC41LTkzLjYtOTkuNyAwIDAgNzUuMiAxOS40IDc3LjYgMTA3LjUgMCAuMS0xMDYuNCA3LTEwNC0xMTkuOHptMzEyIDMxNS42YzAgNDguNS05LjcgOTUuMy0zMiAxMzIuMy00Mi4yIDMwLjktMTA1IDQ4LTE2OCA0OC02Mi45IDAtMTI1LjgtMTcuMS0xNjgtNDhDOS43IDQxOSAwIDM3Mi4yIDAgMzIzLjcgMCAyNzUuMyAxNy43IDIyOSA0MCAxOTJjNDIuMi0zMC45IDk3LjEtNDguNiAxNjAtNDguNiA2MyAwIDExNy44IDE3LjYgMTYwIDQ4LjYgMjIuMyAzNyA0MCA4My4zIDQwIDEzMS43ek0xMjAgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHpNMTkyIDQyOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6TTI2NCA0MjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4ek0zMzYgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMjQtMzkuNmMtNC44LTIyLjMtNy40LTM2LjktMTYtNTYtMzguOC0xOS45LTkwLjUtMzItMTQ0LTMyUzk0LjggMTgwLjEgNTYgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPY3RvcHVzRGVwbG95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NS42LDM0OS4yYy00NS44OTEtMzkuMDktMzYuNjctNzcuODc3LTE2LjA5NS0xMjguMTFDNDc1LjE2LDEzNC4wNCw0MTUuOTY3LDM0LjE0LDMyOS45Myw4LjMsMjM3LjA0LTE5LjYsMTM0LjI1MiwyNC4zNDEsOTkuNjc3LDExNy4xNDdhMTgwLjg2MiwxODAuODYyLDAsMCwwLTEwLjk4OCw3My41NDRjMS43MzMsMjkuNTQzLDE0LjcxNyw1Mi45NywyNC4wOSw4MC4zLDE3LjIsNTAuMTYxLTI4LjEsOTIuNzQzLTY2LjY2MiwxMTcuNTgyLTQ2LjgwNiwzMC4yLTM2LjMxOSwzOS44NTctOC40MjgsNDEuODU4LDIzLjM3OCwxLjY4LDQ0LjQ3OC00LjU0OCw2NS4yNjUtMTUuMDQ1LDkuMi00LjY0Nyw0MC42ODctMTguOTMxLDQ1LjEzLTI4LjU4OEMxMzUuOSw0MTMuMzg4LDExMS4xMjIsNDU5LjUsMTI2LjYyMSw0ODguOWMxOS4xLDM2LjIyOSw2Ny4xMTItMzEuNzcsNzYuNzA5LTQ1LjgxMiw4LjU5MS0xMi41NzIsNDIuOTYzLTgxLjI3OSw2My42MjctNDYuOTI2LDE4Ljg2NSwzMS4zNjEsOC42LDc2LjM5MSwzNS43MzgsMTA0LjYyMiwzMi44NTQsMzQuMiw1MS4xNTUtMTguMzEyLDUxLjQxMi00NC4yMjEuMTYzLTE2LjQxMS02LjEtOTUuODUyLDI5LjktNTkuOTQ0QzQwNS40MjgsNDE4LDQzNi45MTIsNDY3LjgsNDcyLjU2OCw0NjMuNjQyYzM4LjczNi00LjUxNi0yMi4xMjMtNjcuOTY3LTI4LjI2Mi03OC42OTUsNS4zOTMsNC4yNzksNTMuNjY1LDM0LjEyOCw1My44MTgsOS41MkM0OTguMjM0LDM3NS42NzgsNDY4LjAzOSwzNTkuOCw0NTUuNiwzNDkuMlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPZG5va2xhc3NuaWtpU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4NC4yIDE3Ny4xYzAtMjIuMSAxNy45LTQwIDM5LjgtNDBzMzkuOCAxNy45IDM5LjggNDBjMCAyMi0xNy45IDM5LjgtMzkuOCAzOS44cy0zOS44LTE3LjktMzkuOC0zOS44ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS0zMDUuMSA5Ny4xYzAgNDQuNiAzNi40IDgwLjkgODEuMSA4MC45czgxLjEtMzYuMiA4MS4xLTgwLjljMC00NC44LTM2LjQtODEuMS04MS4xLTgxLjFzLTgxLjEgMzYuMi04MS4xIDgxLjF6bTE3NC41IDkwLjdjLTQuNi05LjEtMTcuMy0xNi44LTM0LjEtMy42IDAgMC0yMi43IDE4LTU5LjMgMThzLTU5LjMtMTgtNTkuMy0xOGMtMTYuOC0xMy4yLTI5LjUtNS41LTM0LjEgMy42LTcuOSAxNi4xIDEuMSAyMy43IDIxLjQgMzcgMTcuMyAxMS4xIDQxLjIgMTUuMiA1Ni42IDE2LjhsLTEyLjkgMTIuOWMtMTguMiAxOC0zNS41IDM1LjUtNDcuNyA0Ny43LTE3LjYgMTcuNiAxMC43IDQ1LjggMjguNCAyOC42bDQ3LjctNDcuOWMxOC4yIDE4LjIgMzUuNyAzNS43IDQ3LjcgNDcuOSAxNy42IDE3LjIgNDYtMTAuNyAyOC42LTI4LjZsLTQ3LjctNDcuNy0xMy0xMi45YzE1LjUtMS42IDM5LjEtNS45IDU2LjItMTYuOCAyMC40LTEzLjMgMjkuMy0yMSAyMS41LTM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9kbm9rbGFzc25pa2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlzOTQuOS0yOC45IDk0LjktMjguOWMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6TTMwLjMgMTI5LjdDMzAuMyA1OCA4OC42IDAgMTYwIDBzMTI5LjcgNTggMTI5LjcgMTI5LjdjMCA3MS40LTU4LjMgMTI5LjQtMTI5LjcgMTI5LjRzLTEyOS43LTU4LTEyOS43LTEyOS40em02NiAwYzAgMzUuMSAyOC42IDYzLjcgNjMuNyA2My43czYzLjctMjguNiA2My43LTYzLjdjMC0zNS40LTI4LjYtNjQtNjMuNy02NHMtNjMuNyAyOC42LTYzLjcgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2xkUmVwdWJsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM1Ljc2IDEwLjIzYzcuNS0uMzEgMTUtLjI4IDIyLjUtLjA5IDMuNjEuMTQgNy4yLjQgMTAuNzkuNzMgNC45Mi4yNyA5Ljc5IDEuMDMgMTQuNjcgMS42MiAyLjkzLjQzIDUuODMuOTggOC43NSAxLjQ2IDcuOSAxLjMzIDE1LjY3IDMuMjggMjMuMzkgNS40IDEyLjI0IDMuNDcgMjQuMTkgNy45MiAzNS43NiAxMy4yMSAyNi41NiAxMi4yNCA1MC45NCAyOS4yMSA3MS42MyA0OS44OCAyMC4wMyAyMC4wOSAzNi43MiA0My41NSA0OC44OSA2OS4xOSAxLjEzIDIuNTkgMi40NCA1LjEgMy40NyA3Ljc0IDIuODEgNi40MyA1LjM5IDEyLjk3IDcuNTggMTkuNjMgNC4xNCAxMi4zMyA3LjM0IDI0Ljk5IDkuNDIgMzcuODMuNTcgMy4xNCAxLjA0IDYuMyAxLjQgOS40Ny41NSAzLjgzLjk0IDcuNjkgMS4xOCAxMS41Ni44MyA4LjM0Ljg0IDE2LjczLjc3IDI1LjEtLjA3IDQuOTctLjI2IDkuOTQtLjc1IDE0Ljg5LS4yNCAzLjM4LS41MSA2Ljc2LS45OCAxMC4xMi0uMzkgMi43Mi0uNjMgNS40Ni0xLjExIDguMTctLjkgNS4xNS0xLjcgMTAuMzEtMi44NyAxNS40MS00LjEgMTguNS0xMC4zIDM2LjU1LTE4LjUxIDUzLjYzLTE1Ljc3IDMyLjgzLTM4LjgzIDYyLjE3LTY3LjEyIDg1LjEyYTI0Ni41MDMgMjQ2LjUwMyAwIDAgMS01Ni45MSAzNC44NmMtNi4yMSAyLjY4LTEyLjQ2IDUuMjUtMTguODcgNy40MS0zLjUxIDEuMTYtNy4wMSAyLjM4LTEwLjU3IDMuMzktNi42MiAxLjg4LTEzLjI5IDMuNjQtMjAuMDQgNS00LjY2LjkxLTkuMzQgMS43My0xNC4wMyAyLjQ4LTUuMjUuNjYtMTAuNSAxLjQ0LTE1Ljc5IDEuNzQtNi42OS42Ni0xMy40MS44NC0yMC4xMi44MS02LjgyLjAzLTEzLjY1LS4xMi0yMC40NS0uNzktMy4yOS0uMjMtNi41Ny0uNS05LjgzLS45NS0yLjcyLS4zOS01LjQ2LS42My04LjE3LTEuMTEtNC4xMi0uNzItOC4yNS0xLjM3LTEyLjM1LTIuMjItNC4yNS0uOTQtOC40OS0xLjg5LTEyLjY5LTMuMDItOC42My0yLjE3LTE3LjA4LTUuMDEtMjUuNDEtOC4xMy0xMC40OS00LjEyLTIwLjc5LTguNzUtMzAuNjQtMTQuMjUtMi4xNC0xLjE1LTQuMjgtMi4yOS02LjM1LTMuNTctMTEuMjItNi41OC0yMS44Ni0xNC4xLTMxLjkyLTIyLjM0LTM0LjY4LTI4LjQxLTYxLjQxLTY2LjQzLTc2LjM1LTEwOC43LTMuMDktOC43NC01LjcxLTE3LjY1LTcuOC0yNi42OC0xLjQ4LTYuMTYtMi41Mi0xMi40Mi0zLjU4LTE4LjY2LS40LTIuMzUtLjYxLTQuNzMtLjk1LTcuMDktLjYtMy45Ni0uNzUtNy45Ni0xLjE3LTExLjk0LS44LTkuNDctLjcxLTE4Ljk5LS41MS0yOC40OS4xNC0zLjUxLjM0LTcuMDEuNy0xMC41MS4zMS0zLjE3LjQ2LTYuMzcuOTItOS41Mi40MS0yLjgxLjY1LTUuNjUgMS4xNi04LjQ0LjctMy45NCAxLjMtNy45IDIuMTItMTEuODIgMy40My0xNi41MiA4LjQ3LTMyLjczIDE1LjI2LTQ4LjE4IDEuMTUtMi45MiAyLjU5LTUuNzIgMy44Ni04LjU5IDguMDUtMTYuNzEgMTcuOS0zMi41NiAyOS40OS00Ny4wNiAyMC0yNS4zOCA0NS4xLTQ2LjY4IDczLjI3LTYyLjQ3IDcuNS00LjE1IDE1LjE2LTguMDUgMjMuMDctMTEuMzcgMTUuODItNi44OCAzMi40MS0xMS45NSA0OS4zMS0xNS4zOCAzLjUxLS42NyA3LjA0LTEuMjQgMTAuNTYtMS44NSAyLjYyLS40NyA1LjI4LS43IDcuOTEtMS4wOCAzLjUzLS41MyA3LjEtLjY4IDEwLjY1LTEuMDQgMi40Ni0uMjQgNC45MS0uMzYgNy4zNi0uNTFtOC42NCAyNC40MWMtOS4yMy4xLTE4LjQzLjk5LTI3LjU3IDIuMjMtNy4zIDEuMDgtMTQuNTMgMi42LTIxLjcxIDQuMy0xMy45MSAzLjUtMjcuNDggOC4zNC00MC40NiAxNC40Mi0xMC40NiA0Ljk5LTIwLjU5IDEwLjctMzAuMTggMTcuMjItNC4xOCAyLjkyLTguNCA1LjgtMTIuMzQgOS4wMy01LjA4IDMuOTctOS45OCA4LjE3LTE0LjY4IDEyLjU5LTIuNTEgMi4yNC00LjgxIDQuNy03LjIyIDcuMDYtMjguMjIgMjguNzktNDguNDQgNjUuMzktNTcuNSAxMDQuNjktMi4wNCA4LjQ0LTMuNTQgMTcuMDItNC40NCAyNS42NS0xLjEgOC44OS0xLjQ0IDE3Ljg1LTEuNDEgMjYuOC4xMSA3LjE0LjM4IDE0LjI4IDEuMjIgMjEuMzcuNjIgNy4xMiAxLjg3IDE0LjE2IDMuMiAyMS4xOCAxLjA3IDQuNjUgMi4wMyA5LjMyIDMuMzMgMTMuOTEgNi4yOSAyMy4zOCAxNi41IDQ1LjcgMzAuMDcgNjUuNzUgOC42NCAxMi45OCAxOC43OCAyNC45MyAyOS45OCAzNS43NyAxNi4yOCAxNS44MiAzNS4wNSAyOS4wNCA1NS4zNCAzOS4yMiA3LjI4IDMuNTIgMTQuNjYgNi44NyAyMi4yNyA5LjYzIDUuMDQgMS43NiAxMC4wNiAzLjU3IDE1LjIyIDQuOTggMTEuMjYgMy4yMyAyMi43NyA1LjYgMzQuMzkgNy4wNiAyLjkxLjI5IDUuODEuNjEgOC43Mi45IDEzLjgyIDEuMDggMjcuNzQgMSA0MS41NC0uNDMgNC40NS0uNiA4LjkyLS45OSAxMy4zNS0xLjc4IDMuNjMtLjY3IDcuMjgtMS4yNSAxMC44Ny0yLjEgNC4xMy0uOTggOC4yOC0xLjkxIDEyLjM2LTMuMDcgMjYuNS03LjM0IDUxLjU4LTE5LjcxIDczLjU4LTM2LjIgMTUuNzgtMTEuODIgMjkuOTYtMjUuNzYgNDIuMTItNDEuMjggMy4yNi00LjAyIDYuMTctOC4zMSA5LjEzLTEyLjU1IDMuMzktNS4wNiA2LjU4LTEwLjI1IDkuNi0xNS41NCAyLjQtNC40NCA0Ljc0LTguOTEgNi45NS0xMy40NSA1LjY5LTEyLjA1IDEwLjI4LTI0LjYyIDEzLjc1LTM3LjQ5IDIuNTktMTAuMDEgNC43NS0yMC4xNiA1LjktMzAuNDUgMS43Ny0xMy40NyAxLjk0LTI3LjEgMS4yOS00MC42NS0uMjktMy44OS0uNjctNy43Ny0xLTExLjY2LTIuMjMtMTkuMDgtNi43OS0zNy45MS0xMy44Mi01NS44LTUuOTUtMTUuMTMtMTMuNTMtMjkuNjMtMjIuNjEtNDMuMTMtMTIuNjktMTguOC0yOC4yNC0zNS42OC00NS45Ny00OS44My0yNS4wNS0yMC01NC40Ny0zNC41NS04NS42NS00Mi4wOC03Ljc4LTEuOTMtMTUuNjktMy4zNC0yMy42My00LjQ1LTMuOTEtLjU5LTcuODUtLjgyLTExLjc3LTEuMjQtNy4zOS0uNTctMTQuODEtLjcyLTIyLjIyLS41OHpNMTM5LjI2IDgzLjUzYzEzLjMtOC44OSAyOC4wOC0xNS4zOCA0My4zLTIwLjE4LTMuMTcgMS43Ny02LjQ0IDMuMzgtOS41MyA1LjI5LTExLjIxIDYuNjgtMjEuNTIgMTQuOS0zMC4zOCAyNC40OS02LjggNy40My0xMi43NiAxNS43My0xNy4wMSAyNC44OS0zLjI5IDYuODYtNS42NCAxNC4xOS02Ljg2IDIxLjcxLS45MyA0Ljg1LTEuMyA5LjgxLTEuMTcgMTQuNzUuMTMgMTMuNjYgNC40NCAyNy4wOCAxMS4yOSAzOC44MiA1LjkyIDEwLjIyIDEzLjYzIDE5LjMzIDIyLjM2IDI3LjI2IDQuODUgNC4zNiAxMC4yNCA4LjA5IDE0Ljk1IDEyLjYgMi4yNiAyLjE5IDQuNDkgNC40MiA2LjQzIDYuOTEgMi42MiAzLjMxIDQuODkgNi45OSA1Ljk5IDExLjEuOSAzLjAyLjY2IDYuMi42OSA5LjMxLjAyIDQuMS0uMDQgOC4yLjAzIDEyLjMuMTQgMy41NC0uMDIgNy4wOS4xMSAxMC42My4wOCAyLjM4LjAyIDQuNzYuMDUgNy4xNC4xNiA1Ljc3LjA2IDExLjUzLjE1IDE3LjMuMTEgMi45MS4wMiA1LjgyLjEzIDguNzQuMDMgMS42My4xMyAzLjI4LS4wMyA0LjkxLS45MS4xMi0xLjgyLjE4LTIuNzMuMTYtMTAuOTkgMC0yMS44OC0yLjYzLTMxLjk1LTYuOTMtNi0yLjctMTEuODEtNS44OS0xNy4wOS05LjgzLTUuNzUtNC4xOS0xMS4wOS04Ljk2LTE1Ljc5LTE0LjMxLTYuNTMtNy4yNC0xMS45OC0xNS4zOS0xNi42Mi0yMy45NS0xLjA3LTIuMDMtMi4yNC00LjAyLTMuMTgtNi4xMi0xLjE2LTIuNjQtMi42Mi01LjE0LTMuNjctNy44Mi00LjA1LTkuNjgtNi41Ny0xOS45NC04LjA4LTMwLjMxLS40OS00LjQ0LTEuMDktOC44OC0xLjItMTMuMzUtLjctMTUuNzMuODQtMzEuNTUgNC42Ny00Ni44MiAyLjEyLTguMTUgNC43Ny0xNi4xOCA4LjMxLTIzLjgzIDYuMzItMTQuMiAxNS4zNC0yNy4xOCAyNi4zLTM4LjE5IDYuMjgtNi4yIDEzLjEzLTExLjg0IDIwLjUzLTE2LjY3em0xNzUuMzctMjAuMTJjMi43NC43NCA1LjQxIDEuNzQgOC4wOSAyLjY4IDYuMzYgMi4zMyAxMi42OCA0Ljg0IDE4LjcxIDcuOTYgMTMuMTEgNi40NCAyNS4zMSAxNC44MSAzNS44MiAyNC45NyAxMC4yIDkuOTUgMTguNzQgMjEuNiAyNS4xNCAzNC4zNCAxLjI4IDIuNzUgMi42NCA1LjQ2IDMuODEgOC4yNiA2LjMxIDE1LjEgMTAgMzEuMjYgMTEuMjMgNDcuNTcuNDEgNC41NC40NCA5LjA5LjQ1IDEzLjY0LjA3IDExLjY0LTEuNDkgMjMuMjUtNC4zIDM0LjUzLTEuOTcgNy4yNy00LjM1IDE0LjQ5LTcuODYgMjEuMTgtMy4xOCA2LjY0LTYuNjggMTMuMTYtMTAuODQgMTkuMjQtNi45NCAxMC40Ny0xNS42IDE5Ljg3LTI1LjgyIDI3LjIyLTEwLjQ4IDcuNjQtMjIuNjQgMTMuMDItMzUuNCAxNS4zOC0zLjUxLjY5LTcuMDggMS4wOC0xMC42NiAxLjIxLTEuODUuMDYtMy43Mi4xNi01LjU2LS4xLS4yOC0yLjE1IDAtNC4zMS0uMDEtNi40Ni0uMDMtMy43My4xNC03LjQ1LjEtMTEuMTcuMTktNy4wMi4wMi0xNC4wNS4yMS0yMS4wNy4wMy0yLjM4LS4wMy00Ljc2LjAzLTcuMTQuMTctNS4wNy0uMDQtMTAuMTQuMTQtMTUuMjEuMS0yLjk5LS4yNC02LjA0LjUxLTguOTYuNjYtMi41IDEuNzgtNC44NiAzLjA5LTcuMDggNC40Ni03LjMxIDExLjA2LTEyLjk2IDE3LjY4LTE4LjI2IDUuMzgtNC4xOCAxMC40Ny04Ljc3IDE1LjAyLTEzLjg0IDcuNjgtOC4zNyAxNC4xNy0xNy44OCAxOC43OC0yOC4yNyAyLjUtNS45MyA0LjUyLTEyLjEgNS41NS0xOC40Ni44Ni00LjM3IDEuMDYtOC44MyAxLjAxLTEzLjI3LS4wMi03Ljg1LTEuNC0xNS42NS0zLjY0LTIzLjE3LTEuNzUtNS43My00LjI3LTExLjE4LTcuMDktMTYuNDUtMy44Ny02LjkzLTguNjUtMTMuMzEtMTMuOTYtMTkuMi05Ljk0LTEwLjg1LTIxLjc1LTE5Ljk0LTM0LjYtMjcuMS0xLjg1LTEuMDItMy44NC0xLjgyLTUuNjMtMi45N3ptLTEwMC44IDU4LjQ1Yy45OC0xLjE4IDEuOTktMi4zMyAzLjEyLTMuMzgtLjYxLjkzLTEuMjcgMS44MS0xLjk1IDIuNjgtMy4xIDMuODgtNS41NCA4LjMxLTcuMDMgMTMuMDYtLjg3IDMuMjctMS42OCA2LjYtMS43MyAxMC0uMDcgMi41Mi0uMDggNS4wNy4zMiA3LjU3IDEuMTMgNy42MyA0LjMzIDE0Ljg1IDguNzcgMjEuMTIgMiAyLjcgNC4yNSA1LjI3IDYuOTIgNy4zMyAxLjYyIDEuMjcgMy41MyAyLjA5IDUuMzQgMy4wNSAzLjExIDEuNjggNi4zMiAzLjIzIDkuMDcgNS40OCAyLjY3IDIuMDkgNC41NSA1LjMzIDQuNCA4Ljc5LS4wMSA3My42NyAwIDE0Ny4zNC0uMDEgMjIxLjAyIDAgMS4zNS0uMDggMi43LjA0IDQuMDQuMTMgMS40OC44MiAyLjgzIDEuNDcgNC4xNS44NiAxLjY2IDEuNzggMy4zNCAzLjE4IDQuNjIuODUuNzcgMS45NyAxLjQgMy4xNSAxLjI0IDEuNS0uMiAyLjY2LTEuMzUgMy40NS0yLjU3Ljk2LTEuNTEgMS42OC0zLjE2IDIuMjgtNC44NS43Ni0yLjEzLjQ0LTQuNDIuNTQtNi42My4xNC00LjAzLS4wMi04LjA2LjE0LTEyLjA5LjAzLTUuODkuMDMtMTEuNzcuMDYtMTcuNjYuMTQtMy42Mi4wMy03LjI0LjExLTEwLjg2LjE1LTQuMDMtLjAyLTguMDYuMTQtMTIuMDkuMDMtNS45OS4wMy0xMS45OC4wNy0xNy45Ny4xNC0zLjYyLjAyLTcuMjQuMTEtMTAuODYuMTQtMy45My0uMDItNy44Ni4xNC0xMS43OC4wMy01Ljk5LjAzLTExLjk4LjA2LTE3Ljk3LjE2LTMuOTQtLjAxLTcuODguMTktMTEuODIuMjkgMS40NC4xMyAyLjkyLjIyIDQuMzguMTkgMy42MS40MiA3LjIzLjc2IDEwLjg0LjMyIDMuNDQuNDQgNi44OS44NiAxMC4zMi4zNyAzLjEuNTEgNi4yMi45NSA5LjMxLjU3IDQuMDkuODcgOC4yMSAxLjU0IDEyLjI5IDEuNDYgOS4wNCAyLjgzIDE4LjExIDUuMDkgMjYuOTkgMS4xMyA0LjgyIDIuNCA5LjYxIDQgMTQuMyAyLjU0IDcuOSA1LjcyIDE1LjY3IDEwLjMxIDIyLjYyIDEuNzMgMi42NCAzLjg3IDQuOTggNi4xIDcuMjEuMjcuMjUuNTUuNTEuODguNzEuNi4yNSAxLjMxLS4wNyAxLjctLjU3LjcxLS44OCAxLjE3LTEuOTQgMS43LTIuOTMgNC4wNS03LjggOC4xOC0xNS41NiAxMi4zNC0yMy4zMS43LTEuMzEgMS40NC0yLjYyIDIuNTYtMy42MSAxLjc1LTEuNTcgMy44NC0yLjY5IDUuOTgtMy42MyAyLjg4LTEuMjIgNS45LTIuMTkgOS4wMy0yLjQyIDYuNTgtLjYyIDEzLjExLjc1IDE5LjU2IDEuODUgMy42OS41OCA3LjQgMS4xNyAxMS4xMyAxLjQxIDMuNzQuMSA3LjQ4LjA1IDExLjIxLS4yOCA4LjU1LS45MiAxNi45OS0yLjk2IDI0Ljk0LTYuMjUgNS4zLTIuMjQgMTAuNDYtNC44MyAxNS4zMS03LjkzIDExLjQ2LTcuMjEgMjEuNDYtMTYuNTcgMzAuMDQtMjcuMDEgMS4xNy0xLjQyIDIuMjUtMi45IDMuNDYtNC4yOC0xLjIgMy4yNC0yLjY3IDYuMzctNC4xNiA5LjQ4LTEuMjUgMi45LTIuODQgNS42MS00LjI3IDguNDItNS4xNiA5LjYzLTExLjAyIDE4LjkxLTE3Ljc1IDI3LjUyLTQuMDMgNS4yMS04LjUzIDEwLjA1LTEzLjMzIDE0LjU3LTYuNjQgNi4wNS0xNC4wNyAxMS4zNy0yMi40MyAxNC43Ni04LjIxIDMuMzctMTcuMzEgNC42My0yNi4wOSAzLjI5LTMuNTYtLjU4LTcuMDEtMS42OS0xMC40MS0yLjg4LTIuNzktLjk3LTUuMzktMi4zOC04LjAzLTMuNjktMy40My0xLjcxLTYuNjQtMy44MS05LjcxLTYuMDggMi43MSAzLjA2IDUuNjkgNS44NiA4LjcgOC42MSA0LjI3IDMuNzYgOC43NCA3LjMxIDEzLjYzIDEwLjIzIDMuOTggMi40NSA4LjI5IDQuNCAxMi44NCA1LjUxIDEuNDYuMzcgMi45Ni40NiA0LjQ1LjYtMS4yNSAxLjEtMi42MyAyLjA0LTMuOTkgMi45OC05LjYxIDYuNTQtMjAuMDEgMTEuODYtMzAuNjkgMTYuNDMtMjAuODYgOC43LTQzLjE3IDEzLjk3LTY1Ljc0IDE1LjM0LTQuNjYuMjQtOS4zMi4zNi0xMy45OC4zNi00Ljk4LS4xMS05Ljk3LS4xMy0xNC45Mi0uNjUtMTEuMi0uNzYtMjIuMjktMi43My0zMy4xNy01LjQzLTEwLjM1LTIuNzEtMjAuNTUtNi4xMi0zMC4zLTEwLjU1LTguNzEtMy44Ni0xNy4xMi04LjQyLTI0Ljk5LTEzLjc5LTEuODMtMS4zMS0zLjc0LTIuNTMtNS4zNy00LjA4IDYuNi0xLjE5IDEzLjAzLTMuMzkgMTguOTktNi40OCA1Ljc0LTIuODYgMTAuOTktNi42NiAxNS42My0xMS4wNyAyLjI0LTIuMTkgNC4yOS00LjU5IDYuMTktNy4wOS0zLjQzIDIuMTMtNi45MyA0LjE1LTEwLjYyIDUuNzgtNC40MSAyLjE2LTkuMDcgMy43Ny0xMy44MSA1LjAyLTUuNzMgMS41Mi0xMS43NCAxLjczLTE3LjYxIDEuMTQtOC4xMy0uOTUtMTUuODYtNC4yNy0yMi41MS04Ljk4LTQuMzItMi45NC04LjIyLTYuNDMtMTEuOTYtMTAuMDYtOS45My0xMC4xNi0xOC4yLTIxLjgxLTI1LjY2LTMzLjg2LTMuOTQtNi4yNy03LjUzLTEyLjc1LTExLjEyLTE5LjIyLTEuMDUtMi4wNC0yLjE1LTQuMDUtMy4xOC02LjEgMi44NSAyLjkyIDUuNTcgNS45NyA4LjQzIDguODggOC45OSA4Ljk3IDE4LjU2IDE3LjQ0IDI5LjE2IDI0LjQ4IDcuNTUgNC45IDE1LjY3IDkuMjMgMjQuNTYgMTEuMDMgMy4xMS43MyA2LjMyLjQ3IDkuNDcuODEgMi43Ny4yOCA1LjU2LjIgOC4zNC4zIDUuMDUuMDYgMTAuMTEuMDQgMTUuMTYtLjE2IDMuNjUtLjE2IDcuMjctLjY2IDEwLjg5LTEuMDkgMi4wNy0uMjUgNC4xMS0uNzEgNi4xNC0xLjIgMy44OC0uOTUgOC4xMS0uOTYgMTEuODMuNjEgNC43NiAxLjg1IDguNDQgNS42NCAxMS4zOCA5LjcxIDIuMTYgMy4wMiA0LjA2IDYuMjIgNS42NiA5LjU4IDEuMTYgMi40MyAyLjQ2IDQuNzkgMy41NSA3LjI2IDEgMi4yNCAyLjE1IDQuNDIgMy40MiA2LjUyLjY3IDEuMDIgMS40IDIuMTUgMi42MiAyLjU1IDEuMDYtLjc1IDEuNzEtMS45MSAyLjI4LTMuMDMgMi4xLTQuMTYgMy40Mi04LjY1IDQuODktMTMuMDUgMi4wMi02LjU5IDMuNzgtMTMuMjcgNS4xOS0yMC4wMiAyLjIxLTkuMjUgMy4yNS0xOC43MiA0LjU0LTI4LjEzLjU2LTMuOTguODMtNy45OSAxLjMxLTExLjk3Ljg3LTEwLjY0IDEuOS0yMS4yNyAyLjI0LTMxLjk0LjA4LTEuODYuMjQtMy43MS4yNS01LjU3LjAxLTQuMzUuMjUtOC42OS4yMi0xMy4wMy0uMDEtMi4zOC0uMDEtNC43NiAwLTcuMTMuMDUtNS4wNy0uMi0xMC4xNC0uMjItMTUuMjEtLjItNi42MS0uNzEtMTMuMi0xLjI5LTE5Ljc4LS43My01Ljg4LTEuNTUtMTEuNzgtMy4xMi0xNy41MS0yLjA1LTcuNzUtNS41OS0xNS4wMy05LjgtMjEuODItMy4xNi01LjA3LTYuNzktOS44OC0xMS4wOS0xNC4wMy0zLjg4LTMuODYtOC41OC03LjA4LTEzLjk0LTguNDUtMS41LS40MS0zLjA2LS40NS00LjU5LS42NC4wNy0yLjk5LjctNS45MyAxLjI2LTguODUgMS41OS03LjcxIDMuOC0xNS4zIDYuNzYtMjIuNiAxLjUyLTQuMDMgMy40MS03LjkgNS4zOS0xMS43MiAzLjQ1LTYuNTYgNy42Mi0xMi43OSAxMi40Ni0xOC40NnptMzEuMjcgMS43Yy4zNS0uMDYuNzEtLjEyIDEuMDctLjE5LjE5IDEuNzkuMDkgMy41OC4xIDUuMzd2MzguMTNjLS4wMSAxLjc0LjEzIDMuNDktLjE1IDUuMjItLjM2LS4wMy0uNzEtLjA1LTEuMDYtLjA1LS45NS0zLjc1LTEuNzItNy41NS0yLjYyLTExLjMxLS4zOC0xLjUzLS41OC0zLjA5LTEuMDctNC41OS0xLjctLjI0LTMuNDMtLjE3LTUuMTUtLjItNS4wNi0uMDEtMTAuMTMgMC0xNS4xOS0uMDEtMS42Ni0uMDEtMy4zMi4wOS00Ljk4LS4wMy0uMDMtLjM5LS4yNi0uOTEuMTYtMS4xOCAxLjI4LS42NSAyLjcyLS44OCA0LjA2LTEuMzUgMy40My0xLjE0IDYuODgtMi4xNiAxMC4zMS0zLjMxIDEuMzktLjQ4IDIuOS0uNzIgNC4xNi0xLjU0LjA0LS41Ni4wMi0xLjEzLS4wNS0xLjY4LTEuMjMtLjU1LTIuNTMtLjg3LTMuODEtMS4yOC0zLjEzLTEuMDMtNi4yOS0xLjk2LTkuNDEtMy4wMi0xLjc5LS42Mi0zLjY3LTEtNS40MS0xLjc5LS4wMy0uMzctLjA3LS43My0uMTEtMS4wOSA1LjA5LS4xOSAxMC4yLjA2IDE1LjMtLjEyIDMuMzYtLjEzIDYuNzMuMDggMTAuMDktLjA3LjEyLS4zOS4yNi0uNzcuMzctMS4xNiAxLjA4LTQuOTQgMi4zMy05LjgzIDMuMzktMTQuNzV6bTUuOTctLjJjLjM2LjA1LjcyLjEyIDEuMDguMi45OCAzLjg1IDEuNzMgNy43NiAyLjcxIDExLjYxLjM2IDEuNDIuNTYgMi44OCAxLjAzIDQuMjcgMi41My4xOCA1LjA3LS4wMSA3LjYxLjA1IDUuMTYuMTIgMTAuMzMuMTIgMTUuNDkuMDcuNzYtLjAxIDEuNTIuMDMgMi4yOC4wOC0uMDQuMzYtLjA3LjcyLS4xIDEuMDgtMS44Mi44My0zLjc4IDEuMjUtNS42NyAxLjg5LTMuNzMgMS4yMy03LjQ4IDIuMzktMTEuMjIgMy41Ny0uNTcuMTctMS4xMi40Mi0xLjY3LjY0LS4xNS41NS0uMTggMS4xMi0uMTIgMS42OS44Ny40OCAxLjgyLjgxIDIuNzcgMS4wOSA0Ljg4IDEuNTIgOS43MyAzLjE0IDE0LjYzIDQuNi4zOC4xMy43OC4yNyAxLjEzLjQ5LjQuMjcuMjMuNzkuMTUgMS4xOC0xLjY2LjEzLTMuMzEuMDMtNC45Ny4wNC01LjE3LjAxLTEwLjMzLS4wMS0xNS41LjAxLTEuNjEuMDMtMy4yMi0uMDItNC44Mi4yMS0uNTIgMS42Ny0uNzIgMy40Mi0xLjE3IDUuMTEtLjk0IDMuNTctMS41MiA3LjI0LTIuNTQgMTAuNzgtLjM2LjAxLS43MS4wMi0xLjA2LjA2LS4yOS0xLjczLS4xNS0zLjQ4LS4xNS01LjIydi0zOC4xM2MuMDItMS43OC0uMDgtMy41OC4xMS01LjM3ek02NS4wNSAxNjguMzNjMS4xMi0yLjE1IDIuMDgtNC40IDMuMzctNi40Ni0xLjgyIDcuNTYtMi45MSAxNS4yNy0zLjYyIDIzLS44IDcuNzEtLjg1IDE1LjQ5LS41NCAyMy4yMyAxLjA1IDE5Ljk0IDUuNTQgMzkuODMgMTQuMjMgNTcuODggMi45OSA1Ljk5IDYuMzUgMTEuODMgMTAuNSAxNy4xMSA2LjEyIDcuNDcgMTIuNTMgMTQuNzYgMTkuODQgMjEuMDkgNC44IDQuMSA5Ljk5IDcuNzggMTUuNTQgMTAuOCAzLjI3IDEuNjUgNi41MSAzLjM5IDkuOTQgNC42OCA1LjAxIDIuMDMgMTAuMTkgMy42MSAxNS40MiA0Ljk0IDMuODMuOTYgNy43OCAxLjQxIDExLjUyIDIuNzEgNSAxLjU3IDkuNDcgNC42MSAxMy4wMyA4LjQzIDQuOTMgNS4yMyA4LjA5IDExLjg3IDEwLjIgMTguNjcuOTkgMi45IDEuNTkgNS45MSAyLjE3IDguOTIuMTUuNzUuMjIgMS41Mi4xNiAyLjI5LTYuNSAyLjc4LTEzLjI2IDUuMDYtMjAuMjYgNi4xOC00LjExLjc4LTguMjkuOTktMTIuNDYgMS4wOC0xMC4yNS4yNC0yMC40Ny0xLjc2LTMwLjEyLTUuMTItMy43NC0xLjQyLTcuNDktMi44NS0xMS4wMy00LjcyLTguMDYtMy44NC0xNS42NC04LjctMjIuNDYtMTQuNDYtMi45Mi0yLjU1LTUuODMtNS4xMy04LjQtOC4wMy05LjE2LTkuODMtMTYuMy0yMS40MS0yMS43OS0zMy42NS0yLjM5LTUuNTUtNC42MS0xMS4xOC02LjM3LTE2Ljk2LTEuMTctMy45NC0yLjM2LTcuODktMy4yNi0xMS45MS0uNzUtMi45NC0xLjIyLTUuOTUtMS44Ny04LjkyLS40Ni0yLjE0LS42OS00LjMyLTEuMDMtNi40OC0uODUtNS40My0xLjI4LTEwLjkzLTEuMzMtMTYuNDMuMTEtNi4xOC4yNS0xMi4zNyAxLjA3LTE4LjUuNC0yLjg2LjY3LTUuNzQgMS4xNS04LjYuOTgtNS43IDIuMTQtMTEuMzcgMy43MS0xNi45MyAzLjA5LTExLjY1IDcuNDgtMjIuOTUgMTIuNjktMzMuODR6bTM2My43My02LjQ0YzEuMSAxLjY2IDEuOTEgMy40OCAyLjc4IDUuMjYgMi4xIDQuNDUgNC4yNCA4LjkgNi4wMiAxMy40OSA3LjYxIDE4Ljc2IDEyLjMgMzguNzkgMTMuMDQgNTkuMDUuMDIgMS43Ni4wNyAzLjUyLjExIDUuMjkuMTMgOS41Ny0xLjI3IDE5LjA5LTMuMTggMjguNDUtLjczIDMuNTktMS41NCA3LjE3LTIuNTggMTAuNjktNC4wNCAxNC43Mi0xMCAyOS0xOC40MSA0MS43OC04LjIxIDEyLjU3LTE5LjAxIDIzLjU1LTMxLjg0IDMxLjQxLTUuNzMgMy41OS0xMS43OSA2LjY0LTE4LjA1IDkuMTktNS43OCAyLjE5LTExLjcxIDQuMDMtMTcuOCA1LjExLTYuNCAxLjA1LTEyLjkxIDEuNTItMTkuNCAxLjIzLTcuOTItLjQ4LTE1Ljc4LTIuMDctMjMuMjEtNC44NS0xLjk0LS44LTMuOTQtMS40Ni01Ljg0LTIuMzMtLjIxLTEuNTEuMjUtMi45OS41My00LjQ2IDEuMTYtNS43NCAzLjAzLTExLjM2IDUuNy0xNi41OCAyLjM3LTQuNTEgNS41Mi04LjY1IDkuNDYtMTEuOSAyLjQzLTIuMDUgNS4yNC0zLjYxIDguMTYtNC44MyAzLjU4LTEuNSA3LjQ3LTEuOTcgMTEuMjQtMi44MyA3LjIzLTEuNzEgMTQuMzctMy45MyAyMS4xNS03IDEwLjM1LTQuNjUgMTkuNzEtMTEuMzggMjcuNjUtMTkuNDYgMS41OS0xLjYxIDMuMjMtMy4xOCA0Ljc0LTQuODcgMy4zNy0zLjc2IDYuNzEtNy41NyA5Ljg1LTExLjUzIDcuNDgtMTAuMDcgMTIuODItMjEuNTkgMTYuNzEtMzMuNDggMS41OC01LjMgMy4yMS0xMC42IDQuMjEtMTYuMDUuNjMtMi44NyAxLjA0LTUuNzggMS41Mi04LjY4Ljg3LTYuMDkgMS41OS0xMi4yMiAxLjY4LTE4LjM4LjEyLTYuNjUuMTQtMTMuMzItLjUzLTE5Ljk0LS43My03Ljk5LTEuODctMTUuOTYtMy43MS0yMy43OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcGVuY2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjMuMyA0NDAuN2MwIDI1LjMtMjAuMyA0NS42LTQ1LjYgNDUuNnMtNDUuOC0yMC4zLTQ1LjgtNDUuNiAyMC42LTQ1LjggNDUuOC00NS44YzI1LjQgMCA0NS42IDIwLjUgNDUuNiA0NS44em0tMjUzLjktNDUuOGMtMjUuMyAwLTQ1LjYgMjAuNi00NS42IDQ1LjhzMjAuMyA0NS42IDQ1LjYgNDUuNiA0NS44LTIwLjMgNDUuOC00NS42LTIwLjUtNDUuOC00NS44LTQ1Ljh6bTI5MS43LTI3MEMxNTguOSAxMjQuOSA4MS45IDExMi4xIDAgMjUuN2MzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcGVuaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcxLjUgNDMybC02OCAzMkM4OC41IDQ1My43IDAgMzkyLjUgMCAzMTguMmMwLTcxLjUgODIuNS0xMzEgMTkxLjctMTQ0LjN2NDNjLTcxLjUgMTIuNS0xMjQgNTMtMTI0IDEwMS4zIDAgNTEgNTguNSA5My4zIDEzNS43IDEwM3YtMzQwbDY4LTMzLjJ2Mzg0ek00NDggMjkxbC0xMzEuMy0yOC41IDM2LjgtMjAuN2MtMTkuNS0xMS41LTQzLjUtMjAtNzAtMjQuOHYtNDNjNDYuMiA1LjUgODcuNyAxOS41IDEyMC4zIDM5LjNsMzUtMTkuOEw0NDggMjkxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uM0MxMDQuNiA0ODkuNiAwIDM4MS4xIDAgMjQ4IDAgMTExIDExMSAwIDI0OCAwaC44YzYzLjEuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40em0xMDEuOCAzOTcuN2MtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3B0aW5Nb25zdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3Mi42IDQyMS40YzUuNi05LjUgNC43LTE1LjItNS40LTExLjYtMy00LjktNy05LjUtMTEuMS0xMy44IDIuOS05LjctLjctMTQuMi0xMC44LTkuMi00LjYtMy4yLTEwLjMtNi41LTE1LjktOS4yIDAtMTUuMS0xMS42LTExLjYtMTcuNi01LjctMTAuNC0xLjUtMTguNy0uMy0yNi44IDUuNy4zLTYuNS4zLTEzIC4zLTE5LjcgMTIuNiAwIDQwLjItMTEgNDUuOS0zNi4yIDEuNC02LjggMS42LTEzLjgtLjMtMjEuOS0zLTEzLjUtMTQuMy0yMS4zLTI1LjEtMjUuNy0uOC01LjktNy42LTE0LjMtMTQuOS0xNS45cy0xMi40IDQuOS0xNC4xIDEwLjNjLTguNSAwLTE5LjIgMi44LTIxLjEgOC40LTUuNC0uNS0xMS4xLTEuNC0xNi44LTEuOSAyLjctMS45IDUuNC0zLjUgOC40LTQuNiA1LjQtOS4yIDE0LjYtMTEuNCAyNS43LTExLjZWMjU2YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwQzM0MSA0OS42IDI0Mi45IDU1LjUgMTY2LjQgNzEuN2MxOS43IDQuNiA0MS4xIDguNiA1OS43IDE2LjUtMjYuMiAyLjQtNTIuNyAxMS4zLTc2LjIgMjMuMi0zMi44IDE3LTQ0IDI5LjktNTYuNyA0Mi40IDE0LjktMi4yIDI4LjktNS4xIDQzLjgtMy44LTkuNyA1LjQtMTguNCAxMi4yLTI2LjUgMjAtMjUuOC45LTIzLjgtNS4zLTI2LjItMjUuOS0xLjEtMTAuNS0xNC4zLTE1LjQtMjIuNy05LjctMjguMSAxOS45LTMzLjUgNzkuOS0xMi4yIDEwMy41IDEwLjggMTIuMiAzNS4xIDE3LjMgNTQuOSAxNy44LS4zIDEuMS0uMyAxLjktLjMgMi43IDEwLjguNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNC41LTExLjEgMS40LTE2LjUgMS45LTMuMy02LjYtMTMuNy04LjEtMjEuMS04LjEtMS42LTUuNy02LjUtMTIuMi0xNC4xLTEwLjMtNi44IDEuOS0xNC4xIDEwLTE0LjkgMTUuOS0yMi41IDkuNS0zMC4xIDI2LjgtMjUuMSA0Ny42IDUuMyAyNC44IDMzIDM2LjIgNDUuOSAzNi4ydjE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMy41IDM0LjYtOC40IDQzLTIzLjUgMTEzLjIgNC45IDIyNi43IDQuMSAzNDAuMiAwIDguMSAxNS4xIDI1LjQgMjQuMyA0Mi43IDIzLjUgMjkuMi0xLjEgNzQuMy0zMy41IDczLjUtNjUuMS4yLTMuNy0uNy03LjItMS43LTEwLjd6bS03My44LTI1NGMxLjEtMyAyLjQtOC40IDIuNC0xNC42IDAtNS45IDYuOC04LjEgMTQuMS0uOCAxMS4xIDExLjYgMTQuOSA0MC41IDEzLjggNTEuMS00LjEtMTMuNi0xMy0yOS0zMC4zLTM1Ljd6bS00LjYgNi43YzE5LjUgNi4yIDI4LjYgMjcuNiAyOS43IDQ4LjktMS4xIDIuNy0zIDUuNC00LjkgNy42LTUuNyA1LjktMTUuNCAxMC0yNi4yIDEyLjIgNC4zLTIxLjMuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMS41LTguMS44LTExLjYuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNy4zIDguMS4zIDExLjguM3pNNDcuNSAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xLjggMCA2LjIgMS40IDExLjYgMi40IDE0LjYtMTcuMyA2LjgtMjYuMiAyMi4yLTMwLjMgMzUuN3ptOS43IDI3LjZjLTEuOS0yLjItMy41LTQuOS00LjktNy42IDEuNC0yMS4zIDEwLjMtNDIuNyAyOS43LTQ4LjkgMy4yIDMuMiA5LjIgNC45IDE0LjEgNS43LTEzIDE1LjctMTcgNDEuNi0xMi43IDYzLTEwLjgtMi4yLTIwLjUtNi0yNi4yLTEyLjJ6bTQ3LjkgMTQuNmMtNC4xIDAtOC4xLS4zLTEyLjctLjgtNC42LTE4LjYtMS45LTM4LjkgNS40LTUzdi4zbDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTE2Mi43YzQxLjkgMCA3Ni4yIDM0IDc2LjIgNzUuOSAwIDQyLjItMzQuMyA3Ni4yLTc2LjIgNzYuMnMtNzYuMi0zNC03Ni4yLTc2LjJjMC00MS44IDM0LjMtNzUuOSA3Ni4yLTc1Ljl6bTExNS42IDE3NC4zYy0uMyAxNy44LTcgNDguOS0yMyA1Ny0xMy4yIDYuNi02LjUtNy41LTE2LjUtNTguMSAxMy4zLjMgMjYuNi4zIDM5LjUgMS4xem0tNTQtMS42Yy44IDQuOSAzLjggNDAuMy0xLjYgNDEuOS0xMS42IDMuNS00MCA0LjMtNTEuMS0xLjEtNC4xLTMtNC42LTM1LjktNC4zLTQxLjF2LjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC4zIDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjh2LjNjMS4xIDguMyAzLjMgNTEuMi0xLjMgNTMuN3ptLTEwNi41LTUxLjFjMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYuOCAxNy42IDEuOSAyNi41IDIuNy0uNCAxLjMtMy44IDcuMyA3LjMgMTEuNi00Ny42IDQ3LTk1LjcgODcuOC0xNjMuMiAxMDctNjMuMi0yMC44LTExMi4xLTU5LjUtMTU1LjktMTA2LjUgOS42LTMuNCAxMC40LTguOCA4LTEyLjV6bS0yMS42IDE3Mi41Yy0zLjggMTcuOC0yMS45IDI5LjctMzkuNyAyOC45LTE5LjItLjgtNDYuNS0xNy01OS4yLTM2LjUtMi43LTMxLjEgNDMuOC02MS4zIDY2LjItNTQuNiAxNC45IDQuMyAyNy44IDMwLjggMzMuNSA1NCAwIDMtLjMgNS43LS44IDguMnptLTguNy02NmMtLjUtMTMuNS0uNS0yNy0uMy00MC41aC4zYzIuNy0xLjYgNS43LTMuOCA3LjgtNi41IDYuNS0xLjYgMTMtNS4xIDE1LjEtOS4yIDMuMy03LjEtNy03LjUtNS40LTEyLjQgMi43LTEuMSA1LjctMi4yIDcuOC0zLjUgMjkuMiAyOS4yIDU4LjYgNTYuNSA5Ny4zIDc3LTM2LjggMTEuMy03Mi40IDI3LjYtMTA1LjkgNDctMS4yLTE4LjYtNy43LTM1LjktMTYuNy01MS45em0zMzcuNiA2NC42Yy0xMDMgMy41LTIwNi4yIDQuMS0zMDkuNCAwIDAgLjMgMCAuMy0uMy4zdi0uM2guM2MzNS4xLTIxLjYgNzIuMi0zOS4yIDExMi40LTUwLjggMTEuNiA1LjEgMjMgOS41IDM0LjkgMTMuMiAyLjIuOCAyLjIuOCA0LjMgMCAxNC4zLTQuMSAyOC40LTkuMiA0Mi4yLTE1LjQgNDEuNSAxMS43IDc4LjggMzEuNyAxMTUuNiA1M3ptMTAuNS0xMi40Yy0zNS45LTE5LjUtNzMtMzUuOS0xMTEuOS00Ny42IDM4LjEtMjAgNzEuOS00Ny4zIDEwMy41LTc2LjcgMi4yIDEuNCA0LjYgMi40IDcuNiAzLjIgMCAuOC4zIDEuOS41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zLjktNDAuNS0xMy4yLTQwLjUtMzcgNS43LTIzLjIgMTguOS00OS43IDMzLjUtNTQgMjIuNy02LjkgNjkuMiAyMy40IDY2LjIgNTQuNXpNMzcyLjkgNzUuMmMtMy44LTcyLjEtMTAwLjgtNzkuNy0xMjYtMjMuNSA0NC42LTI0LjMgOTAuMy0xNS43IDEyNiAyMy41ek03NC44IDQwNy4xYy0xNS43IDEuNi00OS41IDI1LjQtNDkuNSA0My4yIDAgMTEuNiAxNS43IDE5LjUgMzIuMiAxNC45IDEyLjItMy4yIDMxLjEtMTcuNiAzNS45LTI3LjMgNi0xMS42LTMuNy0zMi43LTE4LjYtMzAuOHptMjE1LjktMTc2LjJjMjguNiAwIDUxLjktMjEuNiA1MS45LTQ4LjQgMC0zNi4xLTQwLjUtNTguMS03Mi4yLTQ0LjMgOS41IDMgMTYuNSAxMS42IDE2LjUgMjEuNiAwIDIzLjMtMzMuMyAzMi00Ni41IDExLjMtNy4zIDM0LjEgMTkuNCA1OS44IDUwLjMgNTkuOHpNNjggNDc0LjFjLjUgNi41IDEyLjIgMTIuNyAyMS42IDkuNSA2LjgtMi43IDE0LjYtMTAuNSAxNy4zLTE2LjIgMy03LTEuMS0yMC05LjctMTguNC04LjkgMS42LTI5LjcgMTYuNy0yOS4yIDI1LjF6bTQzMy4yLTY3Yy0xNC45LTEuOS0yNC42IDE5LjItMTguOSAzMC44IDQuOSA5LjcgMjQuMSAyNC4xIDM2LjIgMjcuMyAxNi41IDQuNiAzMi4yLTMuMiAzMi4yLTE0LjkgMC0xNy44LTMzLjgtNDEuNi00OS41LTQzLjJ6TTQ3OC44IDQ0OWMtOC40LTEuNi0xMi40IDExLjMtOS41IDE4LjQgMi40IDUuNyAxMC4zIDEzLjUgMTcuMyAxNi4yIDkuMiAzLjIgMjEuMS0zIDIxLjMtOS41LjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3JjaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk0Ljc1IDE4OC4xOWgtNDUuOTJWMzQyaDQ3LjQ3YzY3LjYyIDAgODMuMTItNTEuMzQgODMuMTItNzYuOTEgMC00MS42NC0yNi41NC03Ni45LTg0LjY3LTc2Ljl6TTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bS04MC43OSAzNjAuNzZoLTI5Ljg0di0yMDcuNWgyOS44NHptLTE0LjkyLTIzMS4xNGExOS41NyAxOS41NyAwIDEgMSAxOS41Ny0xOS41NyAxOS42NCAxOS42NCAwIDAgMS0xOS41NyAxOS41N3pNMzAwIDM2OWgtODFWMTYxLjI2aDgwLjZjNzYuNzMgMCAxMTAuNDQgNTQuODMgMTEwLjQ0IDEwMy44NUM0MTAgMzE4LjM5IDM2OC4zOCAzNjkgMzAwIDM2OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPc2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNjYuNDRDMTAuMyAxMzAuNjQgMTA1LjQgMzQgMjIxLjggMTguMzRjMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjdxLTI2LjctNjkuNDUtNTMuNC0xMzljLTMuMS04LjEtMS0xMy4yIDctMTYuOCAyNC4yLTExIDM5LjMtMjkuNCA0My4zLTU1LjhhNzEuNDcgNzEuNDcgMCAwIDAtNjQuNS04Mi4yYy0zOS0zLjQtNzEuOCAyMy43LTc3LjUgNTkuNy01LjIgMzMgMTEuMSA2My43IDQxLjkgNzcuNyA5LjYgNC40IDExLjUgOC42IDcuOCAxOC40cS0yNi44NSA2OS45LTUzLjcgMTM5LjljLTIuNiA2LjktOC4zIDkuMy0xNS41IDYuNS01Mi42LTIwLjMtMTAxLjQtNjEtMTMwLjgtMTE5LTI0LjktNDkuMi0yNS4yLTg3LjctMjYuOC0xMDguN3ptMjAuOS0xLjljLjQgNi42LjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNC44IDUuNi0yLjNxMjIuMzUtNTguNjUgNDUtMTE3LjNjMS4zLTMuMy42LTQuOC0yLjQtNi43LTMxLjYtMTkuOS00Ny4zLTQ4LjUtNDUuNi04NiAxLTIxLjYgOS4zLTQwLjUgMjMuOC01Ni4zIDMwLTMyLjcgNzctMzkuOCAxMTUuNS0xNy42YTkxLjY0IDkxLjY0IDAgMCAxIDQ1LjIgOTAuNGMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDZxMjIuOCA1OC44IDQ1LjIgMTE3LjdjMS4yIDMuMSAyLjQgMy44IDUuNiAyLjMgMzUuNS0xNi42IDY1LjItNDAuMyA4OC4xLTcyIDM0LjgtNDguMiA0OS4xLTEwMS45IDQyLjMtMTYxLTEzLjctMTE3LjUtMTE5LjQtMjE0LjgtMjU1LjUtMTk4LTEwNi4xIDEzLTE5NS4zIDEwMi41LTE5Ny4xIDIyNS44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZ2U0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA1MDRDMTExIDUwNCAwIDM5MyAwIDI1NlMxMTEgOCAyNDggOGMyMC45IDAgNDEuMyAyLjYgNjAuNyA3LjVMNDIuMyAzOTJIMjQ4djExMnptMC0xNDMuNlYxNDYuOEw5OC42IDM2MC40SDI0OHptOTYgMzEuNnY5Mi43YzQ1LjctMTkuMiA4NC41LTUxLjcgMTExLjQtOTIuN0gzNDR6bTU3LjQtMTM4LjJsLTIxLjIgOC40IDIxLjIgOC4zdi0xNi43em0tMjAuMyA1NC41Yy02LjcgMC04IDYuMy04IDEyLjl2Ny43aDE2LjJ2LTEwYzAtNS45LTIuMy0xMC42LTguMi0xMC42ek00OTYgMjU2YzAgMzcuMy04LjIgNzIuNy0yMyAxMDQuNEgzNDRWMjcuM0M0MzMuMyA2NC44IDQ5NiAxNTMuMSA0OTYgMjU2ek0zNjAuNCAxNDMuNmg2OC4yVjk2aC0xMy45djMyLjZoLTEzLjlWOTloLTEzLjl2MjkuNmgtMTIuN1Y5NmgtMTMuOXY0Ny42em02OC4xIDE4NS4zSDQwMnYtMTFjMC0xNS40LTUuNi0yNS4yLTIwLjktMjUuMi0xNS40IDAtMjAuNyAxMC42LTIwLjcgMjUuOXYyNS4zaDY4LjJ2LTE1em0wLTEwM2wtNjguMiAyOS43VjI2OGw2OC4yIDI5LjV2LTE2LjZsLTE0LjQtNS43di0yNi41bDE0LjQtNS45di0xNi45em0tNC44LTY4LjVoLTM1LjZWMTg0SDQwMnYtMTIuMmgxMWM4LjYgMTUuOCAxLjMgMzUuMy0xOC42IDM1LjMtMjIuNSAwLTI4LjMtMjUuMy0xNS41LTM3LjdsLTExLjYtMTAuNmMtMTYuMiAxNy41LTEyLjIgNjMuOSAyNy4xIDYzLjkgMzQgMCA0NC43LTM1LjkgMjkuMy02NS4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZ2VsaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40LjUgMS42LjUgMjMuOCAwIDMzLjQgMCAwIDQ1LjItODkgMTM2LjQtNTcuNS00LjIgMTM0LTE0MS45IDEwNi40LTE0MS45IDEwNi40LTQuNCAyNy40LTExLjIgNTMuNC0yMCA3Ny41IDAgMCA4My05MS44IDE3Mi0yMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWxmZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOC43IDIuOCAyLjYgNi4yIDE1LjEgNi4yIDM2LjggMCA4My40LTQyLjggODMuMy05Ni4yem0tMTk0LjUgNzIuMmMuMiAwIDYuNS0yLjcgMTEuMi0yLjcgMjYuNiAwIDIwLjcgNDQuMS0xNC40IDQ0LjEtMjEuNSAwLTM3LjEtMTguMS0zNy4xLTQzIDAtNDIgNDIuOS05NS42IDEwMC43LTEyNi41IDEtMTIuNCAzLTIyIDEwLjUtMjguMiAxMS4yLTkgMjYuNi0zLjUgMjkuNSAxMS4xIDcyLjItMjIuMiAxMzUuMiAxIDEzNS4yIDcyIDAgNzcuOS03OS4zIDE1Mi42LTE0MC4xIDEzOC4yLS4xIDM5LjQuOSA3NC40IDIuNyAxMDB2LjJjLjIgMy40LjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkuMiAyLjUuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRoMzBsMjIuNCAyMTcuMnMwIDQ0LjMgNDQuNyA0NC4zaDI4OC45czQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjJoMzBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGgtMzAuMWMtNy4zLTI1LjYtMzAuMi03NC4zLTExOS40LTc0LjNoLTI4VjUwLjNzLTIuNy0xOC40LTIxLjEtMTguNGgtODUuOHMtMjEuMSAwLTIxLjEgMTguNHYxOS4xaC0yOC4xcy0xMDUgNC4yLTEyMC41IDc0LjNoLTI5UzggMTQyLjUgOCAxODEuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXRyZW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAxOTQuOGMwIDEwMS4zLTgyLjQgMTgzLjgtMTgzLjggMTgzLjgtMTAxLjcgMC0xODQuNC04Mi40LTE4NC40LTE4My44IDAtMTAxLjYgODIuNy0xODQuMyAxODQuNC0xODQuM0M0MjkuNiAxMC41IDUxMiA5My4yIDUxMiAxOTQuOHpNMCA1MDEuNWg5MHYtNDkxSDB2NDkxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBheXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTEuNCAyOTUuOWMtMy41IDE5LjItMTcuNCAxMDguNy0yMS41IDEzNC0uMyAxLjgtMSAyLjUtMyAyLjVIMTIuM2MtNy42IDAtMTMuMS02LjYtMTIuMS0xMy45TDU4LjggNDYuNmMxLjUtOS42IDEwLjEtMTYuOSAyMC0xNi45IDE1Mi4zIDAgMTY1LjEtMy43IDIwNCAxMS40IDYwLjEgMjMuMyA2NS42IDc5LjUgNDQgMTQwLjMtMjEuNSA2Mi42LTcyLjUgODkuNS0xNDAuMSA5MC4zLTQzLjQuNy02OS41LTctNzUuMyAyNC4yek0zNTcuMSAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjloNjMuNWM4LjYgMCAxNS43LTYuMyAxNy40LTE0LjkuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5ueUFyY2FkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjEuOTEgMTY0LjI3Yy00LjQ5IDE5LjQ1LTEuNCA2LjA2LTE1LjEgNjUuMjlsMzkuNzMtMTAuNjFjLTIyLjM0LTQ5LjYxLTE3LjI5LTM4LjQxLTI0LjYzLTU0LjY4em0tMjA2LjA5IDUxLjExYy0yMC4xOSA1LjQtMTEuMzEgMy4wMy0zOS42MyAxMC41OGw0LjQ2IDQ2LjE5YzI4LjE3LTcuNTkgMjAuNjItNS41NyAzNC44Mi05LjM0IDQyLjMtOS43OSAzMi44NS01Ni40Mi4zNS00Ny40M3ptMzI2LjE2LTI2LjE5bC00NS40Ny05OS4yYy01LjY5LTEyLjM3LTE5LjQ2LTE4Ljg0LTMyLjYyLTE1LjMzLTcwLjI3IDE4Ljc1LTM4LjcyIDEwLjMyLTEzNS41OSAzNi4yM2EyNy42MTggMjcuNjE4IDAgMCAwLTE4Ljg5IDE3LjQxQzE0NC4yNiAxMTMuMjcgMCAxNTMuNzUgMCAyMjYuNjdjMCAzMy41IDMwLjY3IDY3LjExIDgwLjkgOTUuMzdsMS43NCAxNy44OGEyNy44OTEgMjcuODkxIDAgMCAwLTE3Ljc3IDI4LjY3bDQuMyA0NC40OGMxLjM5IDE0LjMxIDEzLjQzIDI1LjIxIDI3LjggMjUuMiA1LjE4LS4wMS0zLjAxIDEuNzggMTIyLjUzLTMxLjc2IDEyLjU3LTMuMzcgMjEuMTItMTUuMDIgMjAuNTgtMjguMDIgMjE2LjU5IDQ1LjUgNDAxLjk5LTUuOTggMzk5Ljg5LTg0LjgzLjAxLTI4LjE1LTIyLjE5LTY2LjU2LTk3Ljk5LTEwNC40N3pNMjU1LjE0IDI5OC4zbC0yMS45MSA1Ljg4LTQ4LjQ0IDEyLjkxIDIuNDYgMjMuNTUgMjAuNTMtNS41MSA0LjUxIDQ0LjUxLTExNS4zMSAzMC43OC00LjMtNDQuNTIgMjAuMDItNS4zNS0xMS4xMS0xMTQuNjQtMjAuMTIgNS4zOS00LjM1LTQ0LjVjMTc4LjE1LTQ3LjU0IDE3MC4xOC00Ni40MiAxODYuMjItNDYuNjUgNTYuNjYtMS4xMyA2NC4xNSA3MS44NCA0Mi41NSAxMDQuNDNhODYuNyA4Ni43IDAgMCAxLTUwLjc1IDMzLjcyem0xOTkuMTggMTYuNjJsLTMuODktMzkuNDkgMTQuOS0zLjk4LTYuNjEtMTQuNjgtNTcuNzYgMTUuNDItNC4xIDE3LjU0IDE5LjItNS4xMiA0LjA1IDM5LjU0LTExMi44NSAzMC4wNy00LjQ2LTQ0LjQzIDIwLjk5LTUuNTkgMzMuMDgtMTI2LjQ3LTE3LjE1IDQuNTYtNC4yLTQ0LjQ4YzkzLjM2LTI0Ljk5IDY1LjAxLTE3LjQxIDEzNS41OS0zNi4yNGw2Ni42NyAxNDUuNDcgMjAuNzktNS41NiA0LjMgNDQuNDgtMTA4LjU1IDI4Ljk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcmJ5dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA1LjMxNCwyODQuNTc4SDI0Ni42VjM4My4zaDU4LjcxMXEyNC40MjMsMCwzOC4xOTMtMTMuNzd0MTMuNzctMzYuMTFxMC0yMS44MjYtMTQuMDMyLTM1LjMzNVQzMDUuMzE0LDI4NC41NzhaTTE0OS40MzUsMTI4LjdIOTAuNzI0djk4LjcyM2g1OC43MTFxMjQuNDIsMCwzOC4xOS0xMy43NzN0MTMuNzctMzYuMTA3cTAtMjEuODI2LTE0LjAyOS0zNS4zMzhUMTQ5LjQzNSwxMjguN1pNMzY2LjY0NywzMkg4MS4zNTNBODEuNDQ1LDgxLjQ0NSwwLDAsMCwwLDExMy4zNTJWMzk4LjY0N0E4MS40NDUsODEuNDQ1LDAsMCwwLDgxLjM1Myw0ODBIMzY2LjY0N0E4MS40NDUsODEuNDQ1LDAsMCwwLDQ0OCwzOTguNjQ3VjExMy4zNTJBODEuNDQ1LDgxLjQ0NSwwLDAsMCwzNjYuNjQ3LDMyWm02My42MzUsMzY2LjY0N2E2My43MDYsNjMuNzA2LDAsMCwxLTYzLjYzNSw2My42MzVIODEuMzUzYTYzLjcwNiw2My43MDYsMCwwLDEtNjMuNjM1LTYzLjYzNVYxMTMuMzUyQTYzLjcwNiw2My43MDYsMCwwLDEsODEuMzUzLDQ5LjcxOEgzNjYuNjQ3YTYzLjcwNiw2My43MDYsMCwwLDEsNjMuNjM1LDYzLjYzNFpNMzA1LjMxNCwxMjguN0gyNDYuNnY5OC43MjNoNTguNzExcTI0LjQyMywwLDM4LjE5My0xMy43NzN0MTMuNzctMzYuMTA3cTAtMjEuODI2LTE0LjAzMi0zNS4zMzhUMzA1LjMxNCwxMjguN1pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJpc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcwIDYzLjZDMzMxLjQgMjIuNiAyODAuNSAwIDIyNi42IDAgMTExLjkgMCAxOC41IDk2LjIgMTguNSAyMTQuNGMwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43QzEzNy44IDQ1NS41IDE5Mi42IDUxMiAyMjYuNiA1MTJjNDEuNiAwIDExMi45LTk0LjIgMTIwLjktMTA1IDI0LjYtMzMuMSA4Mi0xMTguMyA4Mi0xOTIuNiAwLTU2LjUtMjEuMS0xMTAuMS01OS41LTE1MC44ek0yMjYuNiA0OTMuOWMtNDIuNSAwLTE5MC0xNjcuMy0xOTAtMjc5LjQgMC0xMDcuNCA4My45LTE5Ni4zIDE5MC0xOTYuMyAxMDAuOCAwIDE4NC43IDg5IDE4NC43IDE5Ni4zLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjh2LjRjMCAyNC41IDIwLjEgNDQuNCA0NC44IDQ0LjQgMjQuNyAwIDQ0LjgtMTkuOSA0NC44LTQ0LjQgMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaGFicmljYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMgMjYyLjFsLS4xLTEzczIxLjctMTkuOCAyMS4xLTIxLjJsLTkuNS0yMGMtLjYtMS40LTI5LjUtLjUtMjkuNS0uNWwtOS40LTkuM3MuMi0yOC41LTEuMi0yOS4xbC0yMC4xLTkuMmMtMS40LS42LTIwLjcgMjEtMjAuNyAyMWwtMTMuMS0uMnMtMjAuNS0yMS40LTIxLjktMjAuOGwtMjAgOC4zYy0xLjQuNS4yIDI4LjkuMiAyOC45bC05LjEgOS4xcy0yOS4yLS45LTI5LjcuNGwtOC4xIDE5LjhjLS42IDEuNCAyMSAyMSAyMSAyMWwuMSAxMi45cy0yMS43IDE5LjgtMjEuMSAyMS4ybDkuNSAyMGMuNiAxLjQgMjkuNS41IDI5LjUuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNC42IDIwLjctMjMuNSAyMC43LTIzLjVsMTMuMS4yczIwLjUgMjMuOCAyMS44IDIzLjNsMjAtNy41YzEuNC0uNi0uMi0zMi4xLS4yLTMyLjFsOS4xLTkuMXMyOS4yLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNC0xNy4zLjgtMzIuMS0xMi41LTMyLjgtMjkuNi0uNy0xNy4xIDEyLjgtMzEuNiAzMC4xLTMyLjMgMTcuMy0uOCAzMi4xIDEyLjUgMzIuOCAyOS41em0yMDEuMi0zNy45bC05Ny05Ny0uMS4xYy03NS4xLTczLjMtMTk1LjQtNzIuOC0yNjkuOCAxLjYtNTAuOSA1MS0yNy44IDI3LjktOTUuNyA5NS4zLTIyLjMgMjIuMy0yMi4zIDU4LjcgMCA4MSA2OS45IDY5LjQgNDYuNCA0NiA5Ny40IDk3bC4xLS4xYzc1LjEgNzMuMyAxOTUuNCA3Mi45IDI2OS44LTEuNiA1MS01MC45IDI3LjktMjcuOSA5NS4zLTk1LjMgMjIuMy0yMi4zIDIyLjMtNTguNyAwLTgxek0xNDAuNCAzNjMuOGMtNTkuNi01OS41LTU5LjYtMTU2IDAtMjE1LjUgNTkuNS01OS42IDE1Ni01OS41IDIxNS42IDAgNTkuNSA1OS41IDU5LjYgMTU2IDAgMjE1LjYtNTkuNiA1OS41LTE1NiA1OS40LTIxNS42LS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob2VuaXhGcmFtZXdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEyLjkgMzQ0LjNjMy44LS4xIDIyLjgtMS40IDI1LjYtMi4yLTIuNC0yLjYtNDMuNi0xLTY4LTQ5LjYtNC4zLTguNi03LjUtMTcuNi02LjQtMjcuNiAyLjktMjUuNSAzMi45LTMwIDUyLTE4LjUgMzYgMjEuNiA2My4zIDkxLjMgMTEzLjcgOTcuNSAzNyA0LjUgODQuNi0xNyAxMDguMi00NS40LS42LS4xLS44LS4yLTEtLjEtLjQuMS0uOC4yLTEuMS4zLTMzLjMgMTIuMS05NC4zIDkuNy0xMzQuNy0xNC44LTM3LjYtMjIuOC01My4xLTU4LjctNTEuOC03NC42IDEuOC0yMS4zIDIyLjktMjMuMiAzNS45LTE5LjYgMTQuNCAzLjkgMjQuNCAxNy42IDM4LjkgMjcuNCAxNS42IDEwLjQgMzIuOSAxMy43IDUxLjMgMTAuMyAxNC45LTIuNyAzNC40LTEyLjMgMzYuNS0xNC41LTEuMS0uMS0xLjgtLjEtMi41LS4yLTYuMi0uNi0xMi40LS44LTE4LjUtMS43QzI3OS44IDE5NC41IDI2Mi4xIDQ3LjQgMTM4LjUgMzcuOSA5NC4yIDM0LjUgMzkuMSA0NiAyLjIgNzIuOWMtLjguNi0xLjUgMS4yLTIuMiAxLjguMS4yLjEuMy4yLjUuOCAwIDEuNi0uMSAyLjQtLjIgNi4zLTEgMTIuNS0uOCAxOC43LjMgMjMuOCA0LjMgNDcuNyAyMy4xIDU1LjkgNzYuNSA1LjMgMzQuMy0uNyA1MC44IDggODYuMSAxOSA3Ny4xIDkxIDEwNy42IDEyNy43IDEwNi40ek03NS4zIDY0LjljLS45LTEtLjktMS4yLTEuMy0yIDEyLjEtMi42IDI0LjItNC4xIDM2LjYtNC44LTEuMSAxNC43LTIyLjIgMjEuMy0zNS4zIDYuOHptMTk2LjkgMzUwLjVjLTQyLjggMS4yLTkyLTI2LjctMTIzLjUtNjEuNC00LjYtNS0xNi44LTIwLjItMTguNi0yMy40bC40LS40YzYuNiA0LjEgMjUuNyAxOC42IDU0LjggMjcgMjQuMiA3IDQ4LjEgNi4zIDcxLjYtMy4zIDIyLjctOS4zIDQxLS41IDQzLjEgMi45LTE4LjUgMy44LTIwLjEgNC40LTI0IDcuOS01LjEgNC40LTQuNiAxMS43IDcgMTcuMiAyNi4yIDEyLjQgNjMtMi44IDk3LjIgMjUuNCAyLjQgMiA4LjEgNy44IDEwLjEgMTAuNy0uMS4yLS4zLjMtLjQuNS00LjgtMS41LTE2LjQtNy41LTQwLjItOS4zLTI0LjctMi00Ni4zIDUuMy03Ny41IDYuMnptMTc0LjgtMjUyYzE2LjQtNS4yIDQxLjMtMTMuNCA2Ni41LTMuMyAxNi4xIDYuNSAyNi4yIDE4LjcgMzIuMSAzNC42IDMuNSA5LjQgNS4xIDE5LjcgNS4xIDI4LjctLjIgMC0uNCAwLS42LjEtLjItLjQtLjQtLjktLjUtMS4zLTUtMjItMjkuOS00My44LTY3LjYtMjkuOS01MC4yIDE4LjYtMTMwLjQgOS43LTE3Ni45LTQ4LS43LS45LTIuNC0xLjctMS4zLTMuMi4xLS4yIDIuMS42IDMgMS4zIDE4LjEgMTMuNCAzOC4zIDIxLjkgNjAuMyAyNi4yIDMwLjUgNi4xIDU0LjYgMi45IDc5LjktNS4yem0xMDIuNyAxMTcuNWMtMzIuNC4yLTMzLjggNTAuMS0xMDMuNiA2NC40LTE4LjIgMy43LTM4LjcgNC42LTQ0LjkgNC4ydi0uNGMyLjgtMS41IDE0LjctMi42IDI5LjctMTYuNiA3LjktNy4zIDE1LjMtMTUuMSAyMi44LTIyLjkgMTkuNS0yMC4yIDQxLjQtNDIuMiA4MS45LTM5IDIzLjEgMS44IDI5LjMgOC4yIDM2LjEgMTIuNy4zLjIuNC41LjcuOS0uNSAwLS43LjEtLjkgMC03LTIuNy0xNC4zLTMuMy0yMS44LTMuM3ptLTEyLjMtMjQuMWMtLjEuMi0uMS40LS4yLjYtMjguOS00LjQtNDgtNy45LTY4LjUgNC0xNyA5LjktMzEuNCAyMC41LTYyIDI0LjQtMjcuMSAzLjQtNDUuMSAyLjQtNjYuMS04LS4zLS4yLS42LS40LTEtLjYgMC0uMi4xLS4zLjEtLjUgMjQuOSAzLjggMzYuNCA1LjEgNTUuNS01LjggMjIuMy0xMi45IDQwLjEtMjYuNiA3MS4zLTMxIDI5LjYtNC4xIDUxLjMgMi41IDcwLjkgMTYuOXpNMjY4LjYgOTcuM2MtLjYtLjYtMS4xLTEuMi0yLjEtMi4zIDcuNiAwIDI5LjctMS4yIDUzLjQgOC40IDE5LjcgOCAzMi4yIDIxIDUwLjIgMzIuOSAxMS4xIDcuMyAyMy40IDkuMyAzNi40IDguMSA0LjMtLjQgOC41LTEuMiAxMi44LTEuNy40LS4xLjkgMCAxLjUuMy0uNi40LTEuMi45LTEuOCAxLjItOC4xIDQtMTYuNyA2LjMtMjUuNiA3LjEtMjYuMSAyLjYtNTAuMy0zLjctNzMuNC0xNS40LTE5LjMtOS45LTM2LjQtMjIuOS01MS40LTM4LjZ6TTY0MCAzMzUuN2MtMy41IDMuMS0yMi43IDExLjYtNDIuNyA1LjMtMTIuMy0zLjktMTkuNS0xNC45LTMxLjYtMjQuMS0xMC03LjYtMjAuOS03LjktMjguMS04LjQuNi0uOC45LTEuMiAxLjItMS40IDE0LjgtOS4yIDMwLjUtMTIuMiA0Ny4zLTYuNSAxMi41IDQuMiAxOS4yIDEzLjUgMzAuNCAyNC4yIDEwLjggMTAuNCAyMSA5LjkgMjMuMSAxMC41LjEtLjEuMiAwIC40LjR6bS0yMTIuNSAxMzdjMi4yIDEuMiAxLjYgMS41IDEuNSAyLTE4LjUtMS40LTMzLjktNy42LTQ2LjgtMjIuMi0yMS44LTI0LjctNDEuNy0yNy45LTQ4LjYtMjkuNy41LS4yLjgtLjQgMS4xLS40IDEzLjEuMSAyNi4xLjcgMzguOSAzLjkgMjUuMyA2LjQgMzUgMjUuNCA0MS42IDM1LjMgMy4yIDQuOCA3LjMgOC4zIDEyLjMgMTEuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9lbml4U3F1YWRyb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjMuMzhDMTQyLjQ5IDI3LjI1IDIwMS41NSA3LjMxIDI2MC41MSA4LjgxYzI5LjU4LS4zOCA1OS4xMSA1LjM3IDg2LjkxIDE1LjMzLTI0LjEzLTQuNjMtNDktNi4zNC03My4zOC0yLjQ1QzIzMS4xNyAyNyAxOTEgNDguODQgMTYyLjIxIDgwLjg3YzUuNjctMSAxMC43OC0zLjY3IDE2LTUuODYgMTguMTQtNy44NyAzNy40OS0xMy4yNiA1Ny4yMy0xNC44MyAxOS43NC0yLjEzIDM5LjY0LS40MyA1OS4yOCAxLjkyLTE0LjQyIDIuNzktMjkuMTIgNC41Ny00MyA5LjU5LTM0LjQzIDExLjA3LTY1LjI3IDMzLjE2LTg2LjMgNjIuNjMtMTMuOCAxOS43MS0yMy42MyA0Mi44Ni0yNC42NyA2Ny4xMy0uMzUgMTYuNDkgNS4yMiAzNC44MSAxOS44MyA0NGE1My4yNyA1My4yNyAwIDAgMCAzNy41MiA2Ljc0YzE1LjQ1LTIuNDYgMzAuMDctOC42NCA0My42LTE2LjMzIDExLjUyLTYuODIgMjIuNjctMTQuNTUgMzItMjQuMjUgMy43OS0zLjIyIDIuNTMtOC40NSAyLjYyLTEyLjc5LTIuMTItLjM0LTQuMzgtMS4xMS02LjMuM2EyMDMgMjAzIDAgMCAxLTM1LjgyIDE1LjM3Yy0yMCA2LjE3LTQyLjE2IDguNDYtNjIuMS43OCAxMi43OSAxLjczIDI2LjA2LjMxIDM3Ljc0LTUuNDQgMjAuMjMtOS43MiAzNi44MS0yNS4yIDU0LjQ0LTM4Ljc3YTUyNi41NyA1MjYuNTcgMCAwIDEgODguOS01NS4zMWMyNS43MS0xMiA1Mi45NC0yMi43OCA4MS41Ny0yNC4xMi0xNS42MyAxMy43Mi0zMi4xNSAyNi41Mi00Ni43OCA0MS4zOC0xNC41MSAxNC0yNy40NiAyOS41LTQwLjExIDQ1LjE4LTMuNTIgNC42LTguOTUgNi45NC0xMy41OCAxMC4xNmExNTAuNyAxNTAuNyAwIDAgMC01MS44OSA2MC4xYy05LjMzIDE5LjY4LTE0LjUgNDEuODUtMTEuNzcgNjMuNjUgMS45NCAxMy42OSA4LjcxIDI3LjU5IDIwLjkgMzQuOTEgMTIuOSA4IDI5LjA1IDguMDcgNDMuNDggNS4xIDMyLjgtNy40NSA2MS40My0yOC44OSA4MS01NS44NCAyMC40NC0yNy41MiAzMC41Mi02Mi4yIDI5LjE2LTk2LjM1LS41Mi03LjUtMS41Ny0xNS0xLjY2LTIyLjQ5IDggMTkuNDggMTQuODIgMzkuNzEgMTYuNjUgNjAuODMgMiAxNC4yOC43NSAyOC43Ni0xLjYyIDQyLjktMS45MSAxMS01LjY3IDIxLjUxLTcuNzggMzIuNDNhMTY1IDE2NSAwIDAgMCAzOS4zNC04MS4wNyAxODMuNjQgMTgzLjY0IDAgMCAwLTE0LjIxLTEwNC42NGMyMC43OCAzMiAzMi4zNCA2OS41OCAzNS43MSAxMDcuNDguNDkgMTIuNzMuNDkgMjUuNTEgMCAzOC4yM0EyNDMuMjEgMjQzLjIxIDAgMCAxIDQ4MiAzNzEuMzRjLTI2LjEyIDQ3LjM0LTY4IDg1LjYzLTExNy4xOSAxMDgtNzguMjkgMzYuMjMtMTc0LjY4IDMxLjMyLTI0OC0xNC42OEEyNDguMzQgMjQ4LjM0IDAgMCAxIDI1LjM2IDM2NiAyMzguMzQgMjM4LjM0IDAgMCAxIDAgMjczLjA4di0zMS4zNEMzLjkzIDE3MiA0MC44NyAxMDUuODIgOTYgNjMuMzhtMjIyIDgwLjMzYTc5LjEzIDc5LjEzIDAgMCAwIDE2LTQuNDhjNS0xLjc3IDkuMjQtNS45NCAxMC4zMi0xMS4yMi04Ljk2IDQuOTktMTcuOTggOS45Mi0yNi4zMiAxNS43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBocCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNWMtMTcxLjQgMC0zMDMuMi03Mi4yLTMwMy4yLTE1MS41UzE0OC43IDEwNC41IDMyMCAxMDQuNW0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NnMxNDMuMyAxNjguMyAzMjAgMTY4LjNTNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2gzNi43bDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43aC03MC43TDk3LjQgMzUwLjN6bTE4NS43LTIxMy42aDM2LjVsLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFoLTM3YzE1LjQtNzkuNCAxOC4zLTg2IDEyLjctOTItNS40LTUuOC0xNy43LTQuNi00Ny40LTQuNmwtMTguOCA5Ni42aC0zNi41bDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zSDQyMWw4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43SDQxN2wtMzIuOCAxNjguN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWVkUGlwZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ0IDI0NmMtMy4yLTItNi4zLTIuOS0xMC4xLTIuOS02LjYgMC0xMi42IDMuMi0xOS4zIDMuN2wxLjcgNC45em0xMzUuOSAxOTcuOWMtMTkgMC02NC4xIDkuNS03OS45IDE5LjhsNi45IDQ1LjFjMzUuNyA2LjEgNzAuMSAzLjYgMTA2LTkuOC00LjgtMTAtMjMuNS01NS4xLTMzLTU1LjF6TTM0MC44IDE3N2M2LjYgMi44IDExLjUgOS4yIDIyLjcgMjIuMSAyLTEuNCA3LjUtNS4yIDcuNS04LjYgMC00LjktMTEuOC0xMy4yLTEzLjItMjMgMTEuMi01LjcgMjUuMi02IDM3LjYtOC45IDY4LjEtMTYuNCAxMTYuMy01Mi45IDE0Ni44LTExNi43QzU0OC4zIDI5LjMgNTU0IDE2LjEgNTU0LjYgMmwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uM3YtMjEuOGMtMTkuNiAxLjYtMTkuNy0xNC42LTMxLjYtMjMtMTguNyAyMC42LTMxLjYgNDAuOC01OC45IDUxLjEtMTIuNyA0LjgtMTkuNiAxMC0yNS45IDIxLjggMzQuOS0xNi40IDkxLjItMTMuNSA5OC44LTEwek01NTUuNSAwbC0uNiAxLjEtLjMuOS42LS42em0tNTkuMiAzODIuMWMtMzMuOS01Ni45LTc1LjMtMTE4LjQtMTUwLTExNS41bC0uMy02Yy0xLjEtMTMuNSAzMi44IDMuMiAzNS4xLTMxbC0xNC40IDcuMmMtMTkuOC00NS43LTguNi01NC4zLTY1LjUtNTQuMy0xNC43IDAtMjYuNyAxLjctNDEuNCA0LjYgMi45IDE4LjYgMi4yIDM2LjctMTAuOSA1MC4zbDE5LjUgNS41Yy0xLjcgMy4yLTIuOSA2LjMtMi45IDkuOCAwIDIxIDQyLjggMi45IDQyLjggMzMuNiAwIDE4LjQtMzYuOCA2MC4xLTU0LjkgNjAuMS04IDAtNTMuNy01MC01My40LTYwLjFsLjMtNC42IDUyLjMtMTEuNWMxMy0yLjYgMTIuMy0yMi43LTIuOS0yMi43LTMuNyAwLTQzLjEgOS4yLTQ5LjQgMTAuNi0yLTUuMi03LjUtMTQuMS0xMy44LTE0LjEtMy4yIDAtNi4zIDMuMi05LjUgNC05LjIgMi42LTMxIDIuOS0yMS41IDIwLjFMMTUuOSAyOTguNWMtNS41IDEuMS04LjkgNi4zLTguOSAxMS44IDAgNiA1LjUgMTAuOSAxMS41IDEwLjkgOCAwIDEzMS4zLTI4LjQgMTQ3LjQtMzIuMiAyLjYgMy4yIDQuNiA2LjMgNy44IDguNiAyMC4xIDE0LjQgNTkuOCA4NS45IDc2LjQgODUuOSAyNC4xIDAgNTgtMjIuNCA3MS4zLTQxLjkgMy4yLTQuMyA2LjktNy41IDEyLjQtNi45LjYgMTMuOC0zMS42IDM0LjItMzMgNDMuNy0xLjQgMTAuMi0xIDM1LjItLjMgNDEuMSAyNi43IDguMSA1Mi0zLjYgNzcuOS0yLjkgNC4zLTIxIDEwLjYtNDEuOSA5LjgtNjMuNWwtLjMtOS41Yy0xLjQtMzQuMi0xMC45LTM4LjUtMzQuOC01OC42LTEuMS0xLjEtMi42LTIuNi0zLjctNCAyLjItMS40IDEuMS0xIDQuNi0xLjcgODguNSAwIDU2LjMgMTgzLjYgMTExLjUgMjI5LjkgMzMuMS0xNSA3Mi41LTI3LjkgMTAzLjUtNDcuMi0yOS0yNS42LTUyLjYtNDUuNy03Mi43LTc5Ljl6bS0xOTYuMiA0Ni4xdjI3LjJsMTEuOC0zLjQtMi45LTIzLjh6bS02OC43LTE1MC40bDI0LjEgNjEuMiAyMS0xMy44LTMxLjMtNTAuOXptODQuNCAxNTQuOWwyIDEyLjRjOS0xLjUgNTguNC02LjYgNTguNC0xNC4xIDAtMS40LS42LTMuMi0uOS00LjYtMjYuOCAwLTM2LjkgMy44LTU5LjUgNi4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlckhhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOS42IDIuOC44IDMuOSAyLjIgNS4zIDYuOSAzLjEgMTAuOGwtNTMuOSA5NS44Yy0yLjUgNC43LTcuOCA3LjItMTMuMSA2LjEtMTI2LjgtMjMuOC0yMjYuOSAxNy4zLTMxOC45IDE4LjZDMjQuMSA0ODggMCA0NTMuNCAwIDQ1MS44YzAtMS4xLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zQzE3OC40IDI5NC41IDI0NCAyNDUuNCAzMTUuNCAyNDUuNGMwIDAgNzEuNyAwIDkwLjYgNjEuOSAyMi44LTM5LjcgMjguMy00OS4yIDI4LjMtNDkuMiA1LjMtOS40IDM1LTc3LjIgODYuNC0xNDEuNCA1MS41LTY0IDkwLjQtNzkuOSAxMTkuMy05MS44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlclBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43di02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMnY2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjYgMC00NC0zMy4yLTc5LjYtNzQuMi03OS42LTEyIDAtMjQuMSAzLjItMzQuNiA4LjhoLTQ1LjdWMzExbDUxLjgtMTAuMXYtNTAuNmM4LjYgMy4xIDE4LjEgNC44IDI4LjUgNC44em0xNTguNCAyNS4zYzAtNDQtMzMuMi03OS42LTczLjktNzkuNi0zLjIgMC02LjQuMi05LjYuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOFY0MTZsNTEuOC0xMC4xdi01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWVkUGlwZXJTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNDE5TDAgNDc5LjJsLjgtMzI4Qy44IDg1LjMgNTQgMzIgMTIwIDMyaDMyNy4yYy05MyAyOC45LTE4OS45IDk0LjItMjUzLjkgMTY4LjZDMTIyLjcgMjgyIDgyLjYgMzM4IDMyIDQxOU00NDggMzJTMzA1LjIgOTguOCAyNjEuNiAxOTkuMWMtMjMuMiA1My42LTI4LjkgMTE4LjEtNzEgMTU4LjYtMjguOSAyNy44LTY5LjggMzguMi0xMDUuMyA1Ni4zLTIzLjIgMTItNjYuNCA0MC41LTg0LjkgNjZoMzI4LjRjNjYgMCAxMTkuMy01My4zIDExOS4zLTExOS4yLS4xIDAtLjEtMzI4LjgtLjEtMzI4Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NS45MywyMy4yQzQyOS4yMywzMCwzODcuNzksNTEuNjksMzQxLjM1LDkwLjY2QTIwNiwyMDYsMCwwLDAsMjQwLDY0QzEyNS4xMyw2NCwzMiwxNTcuMTIsMzIsMjcyczkzLjEzLDIwOCwyMDgsMjA4LDIwOC05My4xMywyMDgtMjA4YTIwNy4yNSwyMDcuMjUsMCwwLDAtNTguNzUtMTQ0LjgxLDE1NS4zNSwxNTUuMzUsMCwwLDAtMTcsMjcuNEExNzYuMTYsMTc2LjE2LDAsMCwxLDQxNy4xLDI3MmMwLDk3LjY2LTc5LjQ0LDE3Ny4xMS0xNzcuMDksMTc3LjExYTE3NS44MSwxNzUuODEsMCwwLDEtODcuNjMtMjMuNGM4Mi45NC0xMDcuMzMsMTUwLjc5LTM3Ljc3LDE4NC4zMS0yMjYuNjUsNS43OS0zMi42MiwyOC05NC4yNiwxMjYuMjMtMTYwLjE4QzQ3MSwzMy40NSw0NjUuMzUsMjAuOCw0NTUuOTMsMjMuMlpNMTI1LDQwNi40QTE3Ni42NiwxNzYuNjYsMCwwLDEsNjIuOSwyNzJDNjIuOSwxNzQuMzQsMTQyLjM1LDk0LjksMjQwLDk0LjlhMTc0LDE3NCwwLDAsMSw3Ni42MywxNy43NUMyNTAuNjQsMTc0Ljc2LDE4OS43NywyNjUuNTIsMTI1LDQwNi40WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbnRlcmVzdFAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA0IDYuNUMxMDEuNCA2LjUgMCA3NC45IDAgMTg1LjYgMCAyNTYgMzkuNiAyOTYgNjMuNiAyOTZjOS45IDAgMTUuNi0yNy42IDE1LjYtMzUuNCAwLTkuMy0yMy43LTI5LjEtMjMuNy02Ny44IDAtODAuNCA2MS4yLTEzNy40IDE0MC40LTEzNy40IDY4LjEgMCAxMTguNSAzOC43IDExOC41IDEwOS44IDAgNTMuMS0yMS4zIDE1Mi43LTkwLjMgMTUyLjctMjQuOSAwLTQ2LjItMTgtNDYuMi00My44IDAtMzcuOCAyNi40LTc0LjQgMjYuNC0xMTMuNCAwLTY2LjItOTMuOS01NC4yLTkzLjkgMjUuOCAwIDE2LjggMi4xIDM1LjQgOS42IDUwLjctMTMuOCA1OS40LTQyIDE0Ny45LTQyIDIwOS4xIDAgMTguOSAyLjcgMzcuNSA0LjUgNTYuNCAzLjQgMy44IDEuNyAzLjQgNi45IDEuNSA1MC40LTY5IDQ4LjYtODIuNSA3MS40LTE3Mi44IDEyLjMgMjMuNCA0NC4xIDM2IDY5LjMgMzYgMTA2LjIgMCAxNTMuOS0xMDMuNSAxNTMuOS0xOTYuOEMzODQgNzEuMyAyOTguMiA2LjUgMjA0IDYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaW50ZXJlc3RTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEgxNTQuNGM5LjgtMTYuNCAyMi40LTQwIDI3LjQtNTkuMyAzLTExLjUgMTUuMy01OC40IDE1LjMtNTguNCA4IDE1LjMgMzEuNCAyOC4yIDU2LjMgMjguMiA3NC4xIDAgMTI3LjQtNjguMSAxMjcuNC0xNTIuNyAwLTgxLjEtNjYuMi0xNDEuOC0xNTEuNC0xNDEuOC0xMDYgMC0xNjIuMiA3MS4xLTE2Mi4yIDE0OC42IDAgMzYgMTkuMiA4MC44IDQ5LjggOTUuMSA0LjcgMi4yIDcuMSAxLjIgOC4yLTMuMy44LTMuNCA1LTIwLjEgNi44LTI3LjguNi0yLjUuMy00LjYtMS43LTctMTAuMS0xMi4zLTE4LjMtMzQuOS0xOC4zLTU2IDAtNTQuMiA0MS0xMDYuNiAxMTAuOS0xMDYuNiA2MC4zIDAgMTAyLjYgNDEuMSAxMDIuNiA5OS45IDAgNjYuNC0zMy41IDExMi40LTc3LjIgMTEyLjQtMjQuMSAwLTQyLjEtMTkuOS0zNi40LTQ0LjQgNi45LTI5LjIgMjAuMy02MC43IDIwLjMtODEuOCAwLTUzLTc1LjUtNDUuNy03NS41IDI1IDAgMjEuNyA3LjMgMzYuNSA3LjMgMzYuNS0zMS40IDEzMi44LTM2LjEgMTM0LjUtMjkuNiAxOTIuNmwyLjIuOEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbnRlcmVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OC0yNS42IDAtNTAuMi0zLjktNzMuNC0xMS4xIDEwLjEtMTYuNSAyNS4yLTQzLjUgMzAuOC02NSAzLTExLjYgMTUuNC01OSAxNS40LTU5IDguMSAxNS40IDMxLjcgMjguNSA1Ni44IDI4LjUgNzQuOCAwIDEyOC43LTY4LjggMTI4LjctMTU0LjMgMC04MS45LTY2LjktMTQzLjItMTUyLjktMTQzLjItMTA3IDAtMTYzLjkgNzEuOC0xNjMuOSAxNTAuMSAwIDM2LjQgMTkuNCA4MS43IDUwLjMgOTYuMSA0LjcgMi4yIDcuMiAxLjIgOC4zLTMuMy44LTMuNCA1LTIwLjMgNi45LTI4LjEuNi0yLjUuMy00LjctMS43LTcuMS0xMC4xLTEyLjUtMTguMy0zNS4zLTE4LjMtNTYuNiAwLTU0LjcgNDEuNC0xMDcuNiAxMTItMTA3LjYgNjAuOSAwIDEwMy42IDQxLjUgMTAzLjYgMTAwLjkgMCA2Ny4xLTMzLjkgMTEzLjYtNzggMTEzLjYtMjQuMyAwLTQyLjYtMjAuMS0zNi43LTQ0LjggNy0yOS41IDIwLjUtNjEuMyAyMC41LTgyLjYgMC0xOS0xMC4yLTM0LjktMzEuNC0zNC45LTI0LjkgMC00NC45IDI1LjctNDQuOSA2MC4yIDAgMjIgNy40IDM2LjggNy40IDM2LjhzLTI0LjUgMTAzLjgtMjkgMTIzLjJjLTUgMjEuNC0zIDUxLjYtLjkgNzEuMkM2NS40IDQ1MC45IDAgMzYxLjEgMCAyNTYgMCAxMTkgMTExIDggMjQ4IDhzMjQ4IDExMSAyNDggMjQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXlzdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3MC45IDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM0wzMjcgNDcwLjJ2LTU0LjNsMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlMMzI3IDM4MS4xdi01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOS42IDEzMC4yIDE1LjUgNDQuMiAxNCA0OS4yIDM0LjcgMzggNDguOXptLTIyNC40LTkyLjV2LTEzOWMwLTE2LjMtMy0zMS4zLTE4LjMtMzUuNi0xMS43LTMuOC0xOSA3LjEtMTkgMjMuNHYzNDcuOWwtOTMuOC0yOS44VjMyYzM5LjkgNy40IDk4IDI0LjkgMTI5LjIgMzUuNEM0MjQuMSA5NC43IDQ1MSAxMjguNyA0NTEgMjA1LjJjMCA3NC41LTQ2IDEwMi44LTEwNC41IDc0LjZ6TTQzLjIgNDEwLjJjLTQ1LjQtMTIuOC01My0zOS41LTMyLjMtNTQuOCAxOS4xLTE0LjIgNTEuNy0yNC45IDUxLjctMjQuOWwxMzQuNS00Ny44djU0LjVsLTk2LjggMzQuNmMtMTcuMSA2LjEtMTkuNyAxNC44LTUuOCAxOS40IDEzLjkgNC42IDM5LjEgMy4zIDU2LjItMi45bDQ2LjQtMTYuOXY0OC44Yy01MS42IDkuMy0xMDEuNCA3LjMtMTUzLjktMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJvZHVjdEh1bnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJoLTcwLjN2LTc0LjRoNzAuM2MyMC41IDAgMzcuMiAxNi43IDM3LjIgMzcuMnpNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4em0tMTI4LjEtMzcuMmMwLTQ3LjktMzguOS04Ni44LTg2LjgtODYuOEgxNjkuMnYyNDhoNDkuNnYtNzQuNGg3MC4zYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDMyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wyMi41IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42bDEwNS4xIDM0OC4zYzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdsMzUuMy04MC44IDIzNS4yLTIzMS4zYzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTI5Ny42IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNEwyODYgMTAwLjkgMTA4LjYgODQuNmwxODktMzF6TTIyLjcgMTA3LjljLTMuMS01LjEgMS0xMCA2LjEtOS4xbDI0OC43IDIyLjctOTYuOSAyMzAuN0wyMi43IDEwNy45ek0xMzYgNDU2LjRjLTIuNiA0LTcuOSAzLjEtOS40LTEuMkw0My41IDE3OS43bDEyNy43IDE5Ny42Yy03IDE1LTM1LjIgNzkuMS0zNS4yIDc5LjF6bTI3Mi44LTMxNC41TDIxMC4xIDMzNy4zbDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQeXRob24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjggMjAwLjVjLTcuNy0zMC45LTIyLjMtNTQuMi01My40LTU0LjJoLTQwLjF2NDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOEgxNzIuN2MtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zdjEwMS44YzAgMjkgMjUuMiA0NiA1My40IDU0LjMgMzMuOCA5LjkgNjYuMyAxMS43IDEwNi44IDAgMjYuOS03LjggNTMuNC0yMy41IDUzLjQtNTQuM3YtNDAuN0gyMjYuMnYtMTMuNmgxNjAuMmMzMS4xIDAgNDIuNi0yMS43IDUzLjQtNTQuMiAxMS4yLTMzLjUgMTAuNy02NS43IDAtMTA4LjZ6TTI4Ni4yIDQwNGMxMS4xIDAgMjAuMSA5LjEgMjAuMSAyMC4zIDAgMTEuMy05IDIwLjQtMjAuMSAyMC40LTExIDAtMjAuMS05LjItMjAuMS0yMC40LjEtMTEuMyA5LjEtMjAuMyAyMC4xLTIwLjN6TTE2Ny44IDI0OC4xaDEwNi44YzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zVjkxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44LjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZ2NDAuN2gxMDYuOXYxMy42aC0xNDdjLTMxLjEgMC01OC4zIDE4LjctNjYuOCA1NC4yLTkuOCA0MC43LTEwLjIgNjYuMSAwIDEwOC42IDcuNiAzMS42IDI1LjcgNTQuMiA1Ni44IDU0LjJIMTAxdi00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40em0tNi43LTE0Mi42Yy0xMS4xIDAtMjAuMS05LjEtMjAuMS0yMC4zLjEtMTEuMyA5LTIwLjQgMjAuMS0yMC40IDExIDAgMjAuMSA5LjIgMjAuMSAyMC40cy05IDIwLjMtMjAuMSAyMC4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVFxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMy43NTQgNDIwLjQ0NWMtMTEuNTI2IDEuMzkzLTQ0Ljg2LTUyLjc0MS00NC44Ni01Mi43NDEgMCAzMS4zNDUtMTYuMTM2IDcyLjI0Ny01MS4wNTEgMTAxLjc4NiAxNi44NDIgNS4xOTIgNTQuODQzIDE5LjE2NyA0NS44MDMgMzQuNDIxLTcuMzE2IDEyLjM0My0xMjUuNTEgNy44ODEtMTU5LjYzMiA0LjAzNy0zNC4xMjIgMy44NDQtMTUyLjMxNiA4LjMwNi0xNTkuNjMyLTQuMDM3LTkuMDQ1LTE1LjI1IDI4LjkxOC0yOS4yMTQgNDUuNzgzLTM0LjQxNS0zNC45Mi0yOS41MzktNTEuMDU5LTcwLjQ0NS01MS4wNTktMTAxLjc5MiAwIDAtMzMuMzM0IDU0LjEzNC00NC44NTkgNTIuNzQxLTUuMzctLjY1LTEyLjQyNC0yOS42NDQgOS4zNDctOTkuNzA0IDEwLjI2MS0zMy4wMjQgMjEuOTk1LTYwLjQ3OCA0MC4xNDQtMTA1Ljc3OUM2MC42ODMgOTguMDYzIDEwOC45ODIuMDA2IDIyNCAwYzExMy43MzcuMDA2IDE2My4xNTYgOTYuMTMzIDE2MC4yNjQgMjE0Ljk2MyAxOC4xMTggNDUuMjIzIDI5LjkxMiA3Mi44NSA0MC4xNDQgMTA1Ljc3OCAyMS43NjggNzAuMDYgMTQuNzE2IDk5LjA1MyA5LjM0NiA5OS43MDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVpbnNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy42IDQ3NC42aC0xYTE1OC4xIDE1OC4xIDAgMCAxIDAtMzE2LjJjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43QzUwMS4xIDExNy41IDM5MS42IDggMjU2LjUgOFMxMiAxMTcuNSAxMiAyNTIuNnMxMDkuNSAyNDQuNiAyNDQuNSAyNDQuNmEyMzcuMzYgMjM3LjM2IDAgMCAwIDcwLjQtMTAuMWMtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptLS4xLS4xbC40LjF6bTc4LjQtMTY4LjlhOTkuMiA5OS4yIDAgMSAwIDk5LjIgOTkuMiA5OS4xOCA5OS4xOCAwIDAgMC05OS4yLTk5LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVvcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjUgMzg2LjdoLTI5LjNjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTNDNDAzLjUgMTExLjIgMzA2LjggMzIgMjA1IDMyIDEwNS4zIDMyIDcuMyAxMTEuNyA3LjMgMjI4LjdjMCAxMzQuMSAxMzEuMyAyMjEuNiAyNDkgMTg5QzI3NiA0NTEuMyAzMDIgNDgwIDM1MS41IDQ4MGM4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5NyAzMjkuMkMyNzcuNSAzMDAgMjUzLjMgMjc3IDIwNS41IDI3N2MtMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43Qzk3LjUgMTI0LjUgMTMwIDcxIDIwNSA3MWM3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNy4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSUHJvamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTgxIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01ODEgMjI2LjZDNTgxIDExOS4xIDQ1MC45IDMyIDI5MC41IDMyUzAgMTE5LjEgMCAyMjYuNkMwIDMyMi40IDEwMy4zIDQwMiAyMzkuNCA0MTguMVY0ODBoOTkuMXYtNjEuNWMyNC4zLTIuNyA0Ny42LTcuNCA2OS40LTEzLjlMNDQ4IDQ4MGgxMTJsLTY3LjQtMTEzLjdjNTQuNS0zNS40IDg4LjQtODQuOSA4OC40LTEzOS43em0tNDY2LjggMTQuNWMwLTczLjUgOTguOS0xMzMgMjIwLjgtMTMzczIxMS45IDQwLjcgMjExLjkgMTMzYzAgNTAuMS0yNi41IDg1LTcwLjMgMTA2LjQtMi40LTEuNi00LjctMi45LTYuNC0zLjctMTAuMi01LjItMjcuOC0xMC41LTI3LjgtMTAuNXM4Ni42LTYuNCA4Ni42LTkyLjctOTAuNi04Ny45LTkwLjYtODcuOWgtMTk5VjM2MWMtNzQuMS0yMS41LTEyNS4yLTY3LjEtMTI1LjItMTE5Ljl6bTIyNS4xIDM4LjN2LTU1LjZjNTcuOCAwIDg3LjgtNi44IDg3LjggMjcuMyAwIDM2LjUtMzguMiAyOC4zLTg3LjggMjguM3ptLS45IDcyLjVIMzY1YzEwLjggMCAxOC45IDExLjcgMjQgMTkuMi0xNi4xIDEuOS0zMyAyLjgtNTAuNiAyLjl2LTIyLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFzcGJlcnJ5UGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQwNyA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42LjhDMjcxLjYuNiAyNjkgNS41IDI2My41IDcuNmMtMTIuMy0yLjYtMTYuMSAzLTIyIDguOWwtNi45LS4xYy0xOC42IDEwLjgtMjcuOCAzMi44LTMxLjEgNDQuMS0zLjMtMTEuMy0xMi41LTMzLjMtMzEuMS00NC4xbC02LjkuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNi4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOEMyMS4yIDE2IDE1LjggMjggMjIgMzkuMmMtMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yQzE1OSA1MDQuMiAxODEgNTEyIDIwMyA1MTJoMWMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODBjMjQuNS0xNS44IDU5LjgtNS42IDc4LjggMjIuOHMxNC42IDY0LjItOS45IDgwek0yMzguOSAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43LjggMTQuMS42IDIzLjkuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjguNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yLjEtMy40IDYuOS0xMC40IDExLjctMTYgMTcuMyAxLjQgMSAzLjkgMS42IDkuNy45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQuOS01Ny4zLS42LTY1LjQtMzIuMyAxNS43LTE3LjMgNDQuNC0zNy41IDkzLjctNjIuNi0zOC40IDEyLjgtNzMgMzAtMTAyIDUzLjUtMzQuMy0xNS45LTEwLjgtNTUuOSA1LjgtNzEuOHptLTM0LjQgMTE0LjZjMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6bS0xMjMtMTIuOGMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44LjcgOC4zLjEgOS43LS45LTUuNi01LjYtMTIuNy0xMC40LTE2LTE3LjMgNC4zIDEuNSA4LjMgMiAxMS4yLS4xLTEuOS00LjItMTAtNi43LTE0LjctMTYuNiA0LjYuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMy40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42LjItNi43LTIuNC05LjggOS40IDMuNCAxNC4zIDcuOSAxOS40IDEyLjMgMS43LTIuMyA0LjQtNCAxLjItOS42IDYuNyAzLjggMTEuOCA4LjMgMTUuNSAxMy4zIDQuMS0yLjYgMi41LTYuMiAyLjUtOS40IDcgNS42IDExLjQgMTEuNSAxNi44IDE3LjMgMS4xLS44IDItMy40IDIuOS03LjYgMTYuNiAxNS45IDQwLjEgNTUuOSA2IDcxLjgtMjktMjMuNS02My42LTQwLjctMTAyLTUzLjUgNDkuMyAyNSA3OCA0NS4zIDkzLjcgNjIuNi04IDMxLjgtNTAgMzMuMi02NS40IDMyLjMgMy4xLTEuNCA1LjgtMy4yIDYuNy01LjgtNC0yLjgtMTcuNi0uNC0yNy4yLTUuNnptNjAuMSAyNC4xYzE2LjggMi44LTgwLjYgODYuNS04Mi4xIDY3LjktMS41LTQ4LjcgMzYuNS03NS41IDgyLjEtNjcuOXpNMzguMiAzNDJjLTIzLjctMTguOC0zMS4zLTczLjcgMTIuNi05OC4zIDI2LjUtNyA5IDEwNy44LTEyLjYgOTguM3ptOTEgOTguMmMtMTMuMyA3LjktNDUuOCA0LjctNjguOC0yNy45LTE1LjUtMjcuNC0xMy41LTU1LjItMi42LTYzLjQgMTYuMy05LjggNDEuNSAzLjQgNjAuOSAyNS42IDE2LjkgMjAgMjQuNiA1NS4zIDEwLjUgNjUuN3ptLTI2LjQtMTE5LjdjLTI0LjUtMTUuOC0yOC45LTUxLjYtOS45LTgwczU0LjMtMzguNiA3OC44LTIyLjggMjguOSA1MS42IDkuOSA4MGMtMTkuMSAyOC40LTU0LjQgMzguNi03OC44IDIyLjh6TTIwNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45LjUgMTEtMjguOCAzNS45LTU3LjIgMzUuNHptNTguOS0xMjQuOWMuMiAyOS43LTI2LjIgNTMuOC01OC44IDU0LTMyLjYuMi01OS4yLTIzLjgtNTkuNC01My40di0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NCAzMi42LS4yIDU5LjIgMjMuOCA1OS40IDUzLjR2LjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmF2ZWxyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTguMjUyLDIzNC4yMjNjLTEuMjA4LTEwLjM0LTEuNy0yMC44MjYtMy43NDYtMzFhMzEwLjMwNiwzMTAuMzA2LDAsMCwwLTkuNjIyLTM2LjYsMTg0LjA2OCwxODQuMDY4LDAsMCwwLTMwLjg3NC01Ny41LDI1MS4xNTQsMjUxLjE1NCwwLDAsMC0xOC44MTgtMjEuNjg5LDIzNy4zNjIsMjM3LjM2MiwwLDAsMC00Ny4xMTMtMzYuMTE2QTI0MC44LDI0MC44LDAsMCwwLDMzMS4zNTYsMjYuNjVjLTExLjAxOC0zLjEtMjIuMjcyLTUuNDMxLTMzLjUxNS03LjYxNS02Ljc4LTEuMzE0LTEzLjc0OS0xLjY2Ny0yMC42MjctMi40ODItLjMxNi0uMDM2LS42LS4zNTgtLjktLjU1M3EtMTYuMTQzLjAwOS0zMi4yODguMDA2Yy0yLjQxLjM4OS00LjgwOC45MjUtNy4yMzYsMS4xNWExNzkuMzMxLDE3OS4zMzEsMCwwLDAtMzQuMjU2LDcuMSwyMjEuNSwyMjEuNSwwLDAsMC0zOS43NjgsMTYuMzU1LDI4MS4zODUsMjgxLjM4NSwwLDAsMC0zOC4wOCwyNC4xNThjLTYuMTY3LDQuNjEtMTIuMjY4LDkuMzYtMTcuOTc0LDE0LjUxOEM5Ni41MzksODguNDk0LDg2LjM0LDk3LjcyLDc2Ljc4NSwxMDcuNTU1YTI0My44NzgsMjQzLjg3OCwwLDAsMC0zMy42NDgsNDMuOTUsMjA2LjQ4OCwyMDYuNDg4LDAsMCwwLTIwLjQ5NCw0NC42LDE5OC4yLDE5OC4yLDAsMCwwLTcuNjkxLDM0Ljc1OUEyMDEuMTMsMjAxLjEzLDAsMCwwLDEzLjQsMjY2LjM4NWEyOTkuNzE2LDI5OS43MTYsMCwwLDAsNC40MjUsNDAuMjQsMjI2Ljg2NSwyMjYuODY1LDAsMCwwLDE2LjczLDUzLjMsMjEwLjU0MywyMTAuNTQzLDAsMCwwLDI0LDM5LjUyOCwyMTMuNTg5LDIxMy41ODksMCwwLDAsMjYuMzU4LDI4LjQxNkEyNTEuMzEzLDI1MS4zMTMsMCwwLDAsMTI2LjcsNDU4LjQ1NWEyODcuODMxLDI4Ny44MzEsMCwwLDAsNTUuOSwyNS4yNzcsMjY5LjUsMjY5LjUsMCwwLDAsNDAuNjQxLDkuODM1YzYuMDcxLDEuMDEsMTIuMjc1LDEuMjUzLDE4LjQxMiwxLjg3M2E0LjE0OSw0LjE0OSwwLDAsMSwxLjE5LjU2aDMyLjI4OWMyLjUwNy0uMzg5LDUtLjkzNyw3LjUyNy0xLjE0MywxNi4zMzYtMS4zMzIsMzIuMTA3LTUuMzM1LDQ3LjQ4OS0xMC43MTdBMjE5Ljk5MiwyMTkuOTkyLDAsMCwwLDM3OS4xLDQ2MC4zMjJjOS43NDktNi40NDcsMTkuMzk1LTEzLjA3NywyOC43MzctMjAuMSw1Ljc4NS00LjM0OCwxMC45ODgtOS41LDE2LjMtMTQuNDU3LDMuOTY0LTMuNyw3Ljc2NC03LjU3OCwxMS41MS0xMS41YTIzMi4xNjIsMjMyLjE2MiwwLDAsMCwzMS40MjctNDEuNjM5YzkuNTQyLTE2LjA0NSwxNy4zNTUtMzIuOTA1LDIyLjMtNTAuOTI2LDIuODU5LTEwLjQxMyw0Ljk0Ny0yMS4wNDUsNy4wMTctMzEuNjUyLDEuMDMyLTUuMjc5LDEuMjUxLTEwLjcyMywxLjg3LTE2LjA4Ny4wMzYtLjMxNy4zNTgtLjYuNTUyLS45VjIzNi4wMDVBOS43NTcsOS43NTcsMCwwLDEsNDk4LjI1MiwyMzQuMjIzWm0tMTYxLjExNy0xLjE1cy0xNi41NzItMi45OC0yOC40Ny0yLjk4Yy0yNy4yLDAtMzMuNTcsMTQuOS0zMy41NywzNy4wNFYzNjAuOEgyMDEuNTgyVjE3MC4wNjJIMjc1LjF2MzEuOTMxYzguOTI0LTI2LjgyMiwyNi43NzEtMzYuMTg5LDYyLjA0LTM2LjE4OVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTguMiAxNzcuMmMtNS40LTEuOC0xMC44LTMuNS0xNi4yLTUuMS45LTMuNyAxLjctNy40IDIuNS0xMS4xIDEyLjMtNTkuNiA0LjItMTA3LjUtMjMuMS0xMjMuMy0yNi4zLTE1LjEtNjkuMi42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45QzM4LjMgMTk2LjIgMCAyMjUuNCAwIDI1NS42YzAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xem0tMzAuMy0xMjAuM2MxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHptLTI0LjUgMjYzLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYuNCAxOS41LjYgMjkuNS42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjguOS01LjYgMS44LTguNSAyLjYtNy0yMS44LTE1LjYtNDMuMS0yNS41LTYzLjggOS42LTIwLjQgMTcuNy00MS40IDI0LjUtNjIuOSA1LjIgMS41IDEwLjIgMy4xIDE1IDQuNyA0Ni42IDE2IDc5LjMgMzkuOCA3OS4zIDU4IDAgMTkuNi0zNC45IDQ0LjktODQuOCA2MS40em0tMTQ5LjctMTVjMjUuMyAwIDQ1LjgtMjAuNSA0NS44LTQ1LjhzLTIwLjUtNDUuOC00NS44LTQ1LjhjLTI1LjMgMC00NS44IDIwLjUtNDUuOCA0NS44czIwLjUgNDUuOCA0NS44IDQ1Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVhY3RldXJvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUwLjYgMjExLjc0bDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02LjgtMi4zIDYuOC03LjIuMSA1LjcgNC4zem02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMi4xIDUuNyA0LjN6bS05MS4zIDUwLjVoLTMuNGMtNC44IDAtMy44IDQtMy44IDEyLjEgMCA0LjctMi4zIDYuMS01LjggNi4xcy01LjgtMS40LTUuOC02LjF2LTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41aDMuNGM0LjctLjEgMy44LTMuOSAzLjgtMTIuMyAwLTkuOS02LjctMTQuMS0xNi44LTE0LjFoLS4yYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xVjI3NmMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xaC4yYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05Ljg2IDEuMS0xMy43Ni0zLjgtMTMuNzZ6bS04MC43IDE3LjRoLTE0Ljd2LTE5LjNIMTM5YzIuNSAwIDMuOC0xLjMgMy44LTMuOHYtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGgtMTEuNHYtMTguM0gxNDJjMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0yMS43Yy0yLjQtLjEtMy43IDEuMy0zLjcgMy44djU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDIxLjljMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNHYtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xSDc3LjRjLTIuNSAwLTMuOCAxLjMtMy44IDMuOHY1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGgzLjRjMi41IDAgMy44LTEuMyAzLjgtMy44di0yMi45aDUuNmw3LjQgMjMuNWE0LjEgNC4xIDAgMCAwIDQuMyAzLjJoMy4zYzIuOCAwIDQtMS44IDMuMi00LjR6bS0zLjgtMTRjMCA0LjgtMi41IDYuMS02LjEgNi4xaC01Ljh2LTIwLjloNS44YzMuNiAwIDYuMSAxLjMgNi4xIDYuMXpNMTc2IDIyNmEzLjgyIDMuODIgMCAwIDAtNC4yLTMuNGgtNi45YTMuNjggMy42OCAwIDAgMC00IDMuNGwtMTEgNTkuMmMtLjUgMi43LjkgNC4xIDMuNCA0LjFoM2EzLjc0IDMuNzQgMCAwIDAgNC4xLTMuNWwxLjgtMTEuM2gxMi4ybDEuOCAxMS4zYTMuNzQgMy43NCAwIDAgMCA0LjEgMy41aDMuNWMyLjYgMCAzLjktMS40IDMuNC00LjF6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5Ljd6bTg5LjMgMjAuMnYtNTMuMmg3LjVjMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0yNS44Yy0yLjUgMC0zLjggMS4zLTMuOCAzLjh2Mi4xYzAgMi41IDEuMyAzLjggMy44IDMuOGg3LjN2NTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhoMy40YzIuNS4wNCAzLjgtMS4zIDMuOC0zLjc2em0yNDgtLjhoLTE5LjRWMjU4aDE2LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS44OSAxLjg5IDAgMCAwLTItMmgtMTYuMXYtMjUuOGgxOS4xYTEuODkgMS44OSAwIDAgMCAyLTJ2LS44YTEuNzcgMS43NyAwIDAgMC0yLTEuOWgtMjIuMmExLjYyIDEuNjIgMCAwIDAtMiAxLjh2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45SDUwMWExLjgxIDEuODEgMCAwIDAgMi0xLjl2LS44YTEuODQgMS44NCAwIDAgMC0yLTEuOTZ6bS05My4xLTYyLjloLS44Yy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xVjI3NmMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFoLjhjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMXYtNDAuMWMwLTkuMzYtNS4yLTE0LjA2LTE1LjMtMTQuMDZ6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjF2LTM2LjZjMC03LjkgMy0xMS4xIDEwLjUtMTEuMXMxMC41IDMuMiAxMC41IDExLjF6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zdi05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xaC0xMy43YTEuODEgMS44MSAwIDAgMC0yIDEuOXY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjloMS4yYTEuNzQgMS43NCAwIDAgMCAxLjktMS45di0yNi45aDExLjZsMTAuNCAyNy4yYTIuMzIgMi4zMiAwIDAgMCAyLjMgMS41aDEuNWMxLjQgMCAyLTEgMS41LTIuM3ptLTYuNC0zLjlIMzU1di0yOC41aDEwLjJjNy41IDAgMTAuNSAzLjEgMTAuNSAxMS4xdjYuNGMwIDcuODQtMyAxMS4wNC0xMC41IDExLjA0em04NS45LTMzLjFoLTEzLjdhMS42MiAxLjYyIDAgMCAwLTIgMS44djYzYTEuODEgMS44MSAwIDAgMCAyIDEuOWgxLjJhMS43NCAxLjc0IDAgMCAwIDEuOS0xLjl2LTI2LjFoMTAuNmMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xdi0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFoLTEwLjJ2LTI5LjJoMTAuMmM3LjUtLjEgMTAuNSAzLjEgMTAuNSAxMXpNMjU5LjUgMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjN6bTIyNy42LTEzNi4xYTM2NC40MiAzNjQuNDIgMCAwIDAtMzUuNi0xMS4zYzE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45QzM5NC43LTEyLjY2IDM0My4zIDExIDI5MSA2MS45NHE1LjEgNC45NSAxMC4yIDEwLjJjODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOGE1ODcuODMgNTg3LjgzIDAgMCAwLTg0LjYtMTNDMjgxLjEgNDMuNjQgMjEyLjQgMiAxNzAuOCAyIDE0MCAyIDEyNyAyMyAxMjMuMiAyOS43NGMtMTguMSAzMi0xMy4zIDg0LjIuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjJxLTUuMS00Ljk1LTEwLjItMTAuMmMtODIuNSA4MC0xMTkuNyA1My41LTEyMC45IDUyLjgtMjIuMy0xMi42LTM2LTU1LjYtMTUuNS0xMzcuOSAxMi40IDIuOSA0MS44IDkuNSA4NC42IDEzIDcxLjkgMTAwLjQgMTQwLjYgMTQyIDE4Mi4xIDE0MiAzMC44IDAgNDMuOC0yMSA0Ny42LTI3LjcgMTgtMzEuOSAxMy4zLTg0LjEtLjEtMTMzLjggMTUyLjMtNDMuOCAxNTYuMi0xMzAuMiAzMy45LTE3Ni4zek0xMzUuOSAzNi44NGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMmE3MTQgNzE0IDAgMCAwLTkzLjkuOSA1NDcuNzYgNTQ3Ljc2IDAgMCAxIDQyLjItNTIuNFEyNzcuMyA4NiAyNzIuMiA4MWE1OTguMjUgNTk4LjI1IDAgMCAwLTUwLjcgNjQuMiA1NjkuNjkgNTY5LjY5IDAgMCAwLTg0LjQgMTQuNmMtLjItMS40LTI0LjMtODIuMi0xLjItMTIzem0zMDQuOCA0MzguM2MtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjJhNjk1LjM4IDY5NS4zOCAwIDAgMCA5My45LS45IDU0Ny43NiA1NDcuNzYgMCAwIDEtNDIuMiA1Mi40cTUuMSA1LjI1IDEwLjIgMTAuMmE1ODguNDcgNTg4LjQ3IDAgMCAwIDUwLjctNjQuMmM0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40YTEyLjY3IDEyLjY3IDAgMCAxLTEwLjctNS43bC0uMS4xYTE5LjYxIDE5LjYxIDAgMCAxLTUuNCAzLjZjNS43IDE0LjMgMTAuNiAyOC40IDE0LjcgNDIuMmE1MzUuMyA1MzUuMyAwIDAgMS03MiAxM2MzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjJhMjQuNiAyNC42IDAgMCAxLTYtMy4yYy0xLjEgMS4yLTMuNiA0LjItMTAuOSA0LjItNi4yIDExLjItMTcuNCAzMC45LTMzLjkgNTUuMmE3MTEuOTEgNzExLjkxIDAgMCAxLTExMi40IDFjLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjhhMjEgMjEgMCAwIDEtMy0xLjVjLTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42YTU0OC44MSA1NDguODEgMCAwIDEtNzIuMi0xMS43cTUuODUtMjEgMTQuMS00Mi45Yy0zLjIgMC01LjQuMi04LjQtMWExNy41OCAxNy41OCAwIDAgMS02LjkgMWMtNC45IDEzLjQtOS4xIDI2LjUtMTIuNyAzOS40Qy0zMS43IDI5Ny0xMi4xIDIxNiAxMjYuNyAxNzUuNjRjMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuM2ExMiAxMiAwIDAgMSAyLjMtMi4yYy01LjgtMTQuNy0xMC45LTI5LjItMTUuMi00My4zIDctMS44IDMyLjQtOC40IDcyLTEzLTE1LjkgMjQuMy0yNi43IDQzLjktMzIuOCA1NS4zYTE0LjIyIDE0LjIyIDAgMCAxIDYuNCA4IDIzLjQyIDIzLjQyIDAgMCAxIDEwLjItOC40YzYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjlhNzExLjcyIDcxMS43MiAwIDAgMSAxMTIuNC0xYzMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41YTIxLjQyIDIxLjQyIDAgMCAxIDEwLjQtNy40Yy02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMmEyMC43NCAyMC43NCAwIDAgMSA2LjggNC4zbC4xLjFhMTIuNzIgMTIuNzIgMCAwIDEgOC45LTUuNmM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjVhMzU5LjcxIDM1OS43MSAwIDAgMSAzNC41IDExYzEwNi4xIDM5LjkgNzQgODcuOSA3Mi42IDkwLjQtMTkuOCAzNS4xLTgwLjEgNTUuMi0xMDUuNyA2Mi41em0tMTE0LjQtMTE0aC0xLjJhMS43NCAxLjc0IDAgMCAwLTEuOSAxLjl2NDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMXYtNDkuOGExLjY5IDEuNjkgMCAwIDAtMS45LTEuOUgzMDlhMS44MSAxLjgxIDAgMCAwLTIgMS45djUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWguNGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xdi01MS41YTIgMiAwIDAgMC0yLjItMS45ek0zMjEuNyAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjN6bTUuMS0zMC44aC0xOS40di0yNi43aDE2LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS44OSAxLjg5IDAgMCAwLTItMmgtMTYuMXYtMjUuOGgxOS4xYTEuODkgMS44OSAwIDAgMCAyLTJ2LS44YTEuNzcgMS43NyAwIDAgMC0yLTEuOWgtMjIuMmExLjgxIDEuODEgMCAwIDAtMiAxLjl2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45aDIyLjVhMS43NyAxLjc3IDAgMCAwIDItMS45di0uOGExLjgzIDEuODMgMCAwIDAtMi0yLjA2em0tNy40LTk5LjRMMjg2IDE5MmwtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYWRtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMyA0Ni41SDM4OC41Yy00OC4xIDAtODkuOSAzMy4zLTEwMC40IDgwLjMtMTAuNi00Ny01Mi4zLTgwLjMtMTAwLjQtODAuM0g0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MjQ1LjhjMCAyNi41IDIxLjUgNDggNDggNDhoODkuN2MxMDIuMiAwIDEzMi43IDI0LjQgMTQ3LjMgNzUgLjcgMi44IDUuMiAyLjggNiAwIDE0LjctNTAuNiA0NS4yLTc1IDE0Ny4zLTc1SDUyOGMyNi41IDAgNDgtMjEuNSA0OC00OFY5NC42YzAtMjYuNC0yMS4zLTQ3LjktNDcuNy00OC4xek0yNDIgMzExLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDc4LjJjLTEuOSAwLTMuNS0xLjUtMy41LTMuNVYyODljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDc4LjJjLTEuOSAwLTMuNS0xLjUtMy41LTMuNXYtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVoMTYwLjRjMS45IDAgMy41IDEuNSAzLjUgMy41VjI1MXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0yNTkuMyAxMjEuN2MwIDEuOS0xLjUgMy41LTMuNSAzLjVIMzM3LjVjLTEuOSAwLTMuNS0xLjUtMy41LTMuNXYtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVoMTYwLjRjMS45IDAgMy41IDEuNSAzLjUgMy41djIyLjl6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVIMzM3LjVjLTEuOSAwLTMuNS0xLjUtMy41LTMuNVYyMjhjMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNVYxOTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmViZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LjUgNTA0QzExNy4yIDUwNCA5IDM4Ny44IDEzLjIgMjQ5LjkgMTYgMTcwLjcgNTYuNCA5Ny43IDEyOS43IDQ5LjVjLjMgMCAxLjktLjYgMS4xLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43LjgtMjkuNi0yMS45LTYxLjQtMjEuOS02MS40TDI1NS4xIDhsNDQuMyA1MC4xYy0yMC41IDI4LjgtMjEuOSA2Mi42LTIxLjkgNjIuNiAxMy44LTIzIDQzLjUtMzkuMyA0My41LTM5LjNsMjguNSAzMS44Yy0yNy40IDguOS00NS40IDM5LjktNDUuNCAzOS45LTE1LjggMjguNS0yNy4xIDg5LjQuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41LjgtMi44LjgtMi44IDUwLjEgMzYuNSAxMTQuNiA4NC40IDExNi4yIDIwNC44QzUwMC45IDQwMC4yIDM5OSA1MDQgMjU2LjUgNTA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZFJpdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1My4yIDMySDk0LjhDNDIuNCAzMiAwIDc0LjQgMCAxMjYuOHYyNTguNEMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwaDI1OC40YzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44VjEyNi44YzAtNTIuNC00Mi40LTk0LjgtOTQuOC05NC44ek0xNDQuOSAyMDAuOXY1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOVYxNTEuOWMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWgxNTQuMmMwIDI3LTIxLjkgNDguOS00OC45IDQ4LjloLTU2LjNjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmgtNTYuM2MtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR2NTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlWMjQ3LjljMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjloMTU0LjJjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZGRpdEFsaWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC4zIDIwMy41Yy0xNSAwLTI4LjIgNi4yLTM3LjkgMTUuOS0zNS43LTI0LjctODMuOC00MC42LTEzNy4xLTQyLjNMMjkzIDUyLjNsODguMiAxOS44YzAgMjEuNiAxNy42IDM5LjIgMzkuMiAzOS4yIDIyIDAgMzkuNy0xOC4xIDM5LjctMzkuN3MtMTcuNi0zOS43LTM5LjctMzkuN2MtMTUuNCAwLTI4LjcgOS4zLTM1LjMgMjJsLTk3LjQtMjEuNmMtNC45LTEuMy05LjcgMi4yLTExIDcuMUwyNDYuMyAxNzdjLTUyLjkgMi4yLTEwMC41IDE4LjEtMTM2LjMgNDIuOC05LjctMTAuMS0yMy40LTE2LjMtMzguNC0xNi4zLTU1LjYgMC03My44IDc0LjYtMjIuOSAxMDAuMS0xLjggNy45LTIuNiAxNi4zLTIuNiAyNC43IDAgODMuOCA5NC40IDE1MS43IDIxMC4zIDE1MS43IDExNi40IDAgMjEwLjgtNjcuOSAyMTAuOC0xNTEuNyAwLTguNC0uOS0xNy4yLTMuMS0yNS4xIDQ5LjktMjUuNiAzMS41LTk5LjctMjMuOC05OS43ek0xMjkuNCAzMDguOWMwLTIyIDE3LjYtMzkuNyAzOS43LTM5LjcgMjEuNiAwIDM5LjIgMTcuNiAzOS4yIDM5LjcgMCAyMS42LTE3LjYgMzkuMi0zOS4yIDM5LjItMjIgLjEtMzkuNy0xNy42LTM5LjctMzkuMnptMjE0LjMgOTMuNWMtMzYuNCAzNi40LTEzOS4xIDM2LjQtMTc1LjUgMC00LTMuNS00LTkuNyAwLTEzLjcgMy41LTMuNSA5LjctMy41IDEzLjIgMCAyNy44IDI4LjUgMTIwIDI5IDE0OSAwIDMuNS0zLjUgOS43LTMuNSAxMy4yIDAgNC4xIDQgNC4xIDEwLjIuMSAxMy43em0tLjgtNTQuMmMtMjEuNiAwLTM5LjItMTcuNi0zOS4yLTM5LjIgMC0yMiAxNy42LTM5LjcgMzkuMi0zOS43IDIyIDAgMzkuNyAxNy42IDM5LjcgMzkuNy0uMSAyMS41LTE3LjcgMzkuMi0zOS43IDM5LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkZGl0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4My4yIDM0NS41YzIuNyAyLjcgMi43IDYuOCAwIDkuMi0yNC41IDI0LjUtOTMuOCAyNC42LTExOC40IDAtMi43LTIuNC0yLjctNi41IDAtOS4yIDIuNC0yLjQgNi41LTIuNCA4LjkgMCAxOC43IDE5LjIgODEgMTkuNiAxMDAuNSAwIDIuNC0yLjMgNi42LTIuMyA5IDB6bS05MS4zLTUzLjhjMC0xNC45LTExLjktMjYuOC0yNi41LTI2LjgtMTQuOSAwLTI2LjggMTEuOS0yNi44IDI2LjggMCAxNC42IDExLjkgMjYuNSAyNi44IDI2LjUgMTQuNiAwIDI2LjUtMTEuOSAyNi41LTI2LjV6bTkwLjctMjYuOGMtMTQuNiAwLTI2LjUgMTEuOS0yNi41IDI2LjggMCAxNC42IDExLjkgMjYuNSAyNi41IDI2LjUgMTQuOSAwIDI2LjgtMTEuOSAyNi44LTI2LjUgMC0xNC45LTExLjktMjYuOC0yNi44LTI2Ljh6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTk5LjcgMTQwLjZjLTEwLjEgMC0xOSA0LjItMjUuNiAxMC43LTI0LjEtMTYuNy01Ni41LTI3LjQtOTIuNS0yOC42bDE4LjctODQuMiA1OS41IDEzLjRjMCAxNC42IDExLjkgMjYuNSAyNi41IDI2LjUgMTQuOSAwIDI2LjgtMTIuMiAyNi44LTI2LjggMC0xNC42LTExLjktMjYuOC0yNi44LTI2LjgtMTAuNCAwLTE5LjMgNi4yLTIzLjggMTQuOWwtNjUuNy0xNC42Yy0zLjMtLjktNi41IDEuNS03LjQgNC44bC0yMC41IDkyLjhjLTM1LjcgMS41LTY3LjggMTIuMi05MS45IDI4LjktNi41LTYuOC0xNS44LTExLTI1LjktMTEtMzcuNSAwLTQ5LjggNTAuNC0xNS41IDY3LjUtMS4yIDUuNC0xLjggMTEtMS44IDE2LjcgMCA1Ni41IDYzLjcgMTAyLjMgMTQxLjkgMTAyLjMgNzguNSAwIDE0Mi4yLTQ1LjggMTQyLjItMTAyLjMgMC01LjctLjYtMTEuNi0yLjEtMTcgMzMuNi0xNy4yIDIxLjItNjcuMi0xNi4xLTY3LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMS41IDMwNS41Yy0xMy44IDAtMjQuOS0xMS4xLTI0LjktMjQuNiAwLTEzLjggMTEuMS0yNC45IDI0LjktMjQuOSAxMy42IDAgMjQuNiAxMS4xIDI0LjYgMjQuOSAwIDEzLjYtMTEuMSAyNC42LTI0LjYgMjQuNnpNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4em0tMTMyLjMtNDEuMmMtOS40IDAtMTcuNyAzLjktMjMuOCAxMC0yMi40LTE1LjUtNTIuNi0yNS41LTg2LjEtMjYuNmwxNy40LTc4LjMgNTUuNCAxMi41YzAgMTMuNiAxMS4xIDI0LjYgMjQuNiAyNC42IDEzLjggMCAyNC45LTExLjMgMjQuOS0yNC45cy0xMS4xLTI0LjktMjQuOS0yNC45Yy05LjcgMC0xOCA1LjgtMjIuMSAxMy44bC02MS4yLTEzLjZjLTMtLjgtNi4xIDEuNC02LjkgNC40bC0xOS4xIDg2LjRjLTMzLjIgMS40LTYzLjEgMTEuMy04NS41IDI2LjgtNi4xLTYuNC0xNC43LTEwLjItMjQuMS0xMC4yLTM0LjkgMC00Ni4zIDQ2LjktMTQuNCA2Mi44LTEuMSA1LTEuNyAxMC4yLTEuNyAxNS41IDAgNTIuNiA1OS4yIDk1LjIgMTMyIDk1LjIgNzMuMSAwIDEzMi4zLTQyLjYgMTMyLjMtOTUuMiAwLTUuMy0uNi0xMC44LTEuOS0xNS44IDMxLjMtMTYgMTkuOC02Mi41LTE0LjktNjIuNXpNMzAyLjggMzMxYy0xOC4yIDE4LjItNzYuMSAxNy45LTkzLjYgMC0yLjItMi4yLTYuMS0yLjItOC4zIDAtMi41IDIuNS0yLjUgNi40IDAgOC42IDIyLjggMjIuOCA4Ny4zIDIyLjggMTEwLjIgMCAyLjUtMi4yIDIuNS02LjEgMC04LjYtMi4yLTIuMi02LjEtMi4yLTguMyAwem03LjctNzVjLTEzLjYgMC0yNC42IDExLjEtMjQuNiAyNC45IDAgMTMuNiAxMS4xIDI0LjYgMjQuNiAyNC42IDEzLjggMCAyNC45LTExLjEgMjQuOS0yNC42IDAtMTMuOC0xMS0yNC45LTI0LjktMjQuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQxLjUyIDI4NS41NmMzMy42NSAwIDgyLjM0LTYuOTQgODIuMzQtNDcgLjIyLTYuNzQuODYtMS44Mi0yMC44OC05Ni4yNC00LjYyLTE5LjE1LTguNjgtMjcuODQtNDIuMzEtNDQuNjUtMjYuMDktMTMuMzQtODIuOTItMzUuMzctOTkuNzMtMzUuMzctMTUuNjYgMC0yMC4yIDIwLjE3LTM4Ljg3IDIwLjE3LTE4IDAtMzEuMzEtMTUuMDYtNDguMTItMTUuMDYtMTYuMTQgMC0yNi42NiAxMS0zNC43OCAzMy42Mi0yNy41IDc3LjU1LTI2LjI4IDc0LjI3LTI2LjEyIDc4LjI3IDAgMjQuOCA5Ny42NCAxMDYuMTEgMjI4LjQ3IDEwNi4xMU00MjkgMjU0Ljg0YzQuNjUgMjIgNC42NSAyNC4zNSA0LjY1IDI3LjI1IDAgMzcuNjYtNDIuMzMgNTguNTYtOTggNTguNTYtMTI1Ljc0LjA4LTIzNS45MS03My42NS0yMzUuOTEtMTIyLjMzYTQ5LjU1IDQ5LjU1IDAgMCAxIDQuMDYtMTkuNzJDNTguNTYgMjAwLjg2IDAgMjA4LjkzIDAgMjYwLjYzYzAgODQuNjcgMjAwLjYzIDE4OSAzNTkuNDkgMTg5IDEyMS43OSAwIDE1Mi41MS01NS4wOCAxNTIuNTEtOTguNTggMC0zNC4yMS0yOS41OS03My4wNS04Mi45My05Ni4yNFwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlbnJlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTQgMTY5LjFjMCAxMTAuNC02MSAyMDUuNC0xNDcuNiAyNDcuNEMzMCAzNzMuMiA4IDMxNy43IDggMjU2LjYgOCAxMzMuOSA5Ny4xIDMyLjIgMjE0IDEyLjV2MTU2LjZ6TTI1NSA1MDRjLTQyLjkgMC04My4zLTExLTExOC41LTMwLjRDMTkzLjcgNDM3LjUgMjM5LjkgMzgyLjkgMjU1IDMxOWMxNS41IDYzLjkgNjEuNyAxMTguNSAxMTguOCAxNTQuN0MzMzguNyA0OTMgMjk4LjMgNTA0IDI1NSA1MDR6bTE5MC42LTg3LjVDMzU5IDM3NC41IDI5OCAyNzkuNiAyOTggMTY5LjFWMTIuNWMxMTYuOSAxOS43IDIwNiAxMjEuNCAyMDYgMjQ0LjEgMCA2MS4xLTIyIDExNi42LTU4LjQgMTU5Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVwbHlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0ODBIMTI4QzU3LjYgNDgwIDAgNDIyLjQgMCAzNTJWMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmgxOTJjNzAuNCAwIDEyOCA1Ny42IDEyOCAxMjh2MTkyYzAgNzAuNC01Ny42IDEyOC0xMjggMTI4ek0xOTMuNCAyNzMuMmMtNi4xLTItMTEuNi0zLjEtMTYuNC0zLjEtNy4yIDAtMTMuNSAxLjktMTguOSA1LjYtNS40IDMuNy05LjYgOS0xMi44IDE1LjhoLTEuMWwtNC4yLTE4LjNoLTI4djEzOC45aDM2LjF2LTg5LjdjMS41LTUuNCA0LjQtOS44IDguNy0xMy4yIDQuMy0zLjQgOS44LTUuMSAxNi4yLTUuMSA0LjYgMCA5LjggMSAxNS42IDMuMWw0LjgtMzR6bTExNS4yIDEwMy40Yy0zLjIgMi40LTcuNyA0LjgtMTMuNyA3LjEtNiAyLjMtMTIuOCAzLjUtMjAuNCAzLjUtMTIuMiAwLTIxLjEtMy0yNi41LTguOS01LjUtNS45LTguNS0xNC43LTktMjYuNGg4My4zYy45LTQuOCAxLjYtOS40IDIuMS0xMy45LjUtNC40LjctOC42LjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNiA5LjUtMy4xIDE3LjEtNi44IDIyLjYtMTEuMmwtMTItMjMuNnptLTIxLjgtNzAuM2MzLjggNS40IDUuMyAxMy4xIDQuNiAyMy4xaC01MS43Yy45LTkuNCAzLjctMTcgOC4yLTIyLjYgNC41LTUuNiAxMS41LTguNSAyMS04LjUgOC4yLS4xIDE0LjEgMi42IDE3LjkgOHptNzkuOSAyLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNGMtNC4xLTMuOC05LjYtNS43LTE2LjctNS43LTYuNyAwLTEyIDEuOS0xNi4xIDUuNy00LjEgMy44LTYuMSA4LjktNi4xIDE1LjRzMiAxMS43IDYuMSAxNS42em0wIDEwMC41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjRjLTQuMS0zLjgtOS42LTUuNy0xNi43LTUuNy02LjcgMC0xMiAxLjktMTYuMSA1LjctNC4xIDMuOC02LjEgOC45LTYuMSAxNS40IDAgNi42IDIgMTEuNyA2LjEgMTUuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXNlYXJjaGdhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTI2Mi4yIDMzNC40Yy02LjYgMy0zMy4yIDYtNTAtMTQuMi05LjItMTAuNi0yNS4zLTMzLjMtNDIuMi02My42LTguOSAwLTE0LjcgMC0yMS40LS42djQ2LjRjMCAyMy41IDYgMjEuMiAyNS44IDIzLjl2OC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xLjYtMzMuNi44di04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlWMjI1YzAtMjIuNi02LjQtMjEtMjItMjMuOVYxOTNjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43djcuM3ptMjIuOS0xMzVjLTIzLjMgMC0zMi4yLTE1LjctMzIuMi0zMi4yVjE2N2MwLTEyLjIgOC44LTMwLjQgMzQtMzAuNHMzMC40IDE3LjkgMzAuNCAxNy45bC0xMC43IDcuMnMtNS41LTEyLjUtMTkuNy0xMi41Yy03LjkgMC0xOS43IDcuMy0xOS43IDE5Ljd2MjYuOGMwIDEzLjQgNi42IDIzLjMgMTcuOSAyMy4zIDE0LjEgMCAyMS41LTEwLjkgMjEuNS0yNi44aC0xNy45di0xMC43aDMwLjRjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6bS0xMTYuNSA0NC43Yy05LjQgMC0xMy42LS4zLTIwLS44di02OS43YzYuNC0uNiAxNS0uNiAyMi41LS42IDIzLjMgMCAzNy4yIDEyLjIgMzcuMiAzNC41IDAgMjEuOS0xNSAzNi42LTM5LjcgMzYuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXNvbHZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgxLjIgMjc4LjJjNDYtMTMuMyA0OS42LTIzLjUgNDQtNDMuNEwzMTQgMTk1LjVjLTYuMS0yMC45LTE4LjQtMjguMS03MS4xLTEyLjhMNTQuNyAyMzYuOGwyOC42IDk4LjYgMTk3LjktNTcuMnpNMjQ4LjUgOEMxMzEuNCA4IDMzLjIgODguNyA3LjIgMTk3LjVsMjIxLjktNjMuOWMzNC44LTEwLjIgNTQuMi0xMS43IDc5LjMtOC4yIDM2LjMgNi4xIDUyLjcgMjUgNjEuNCA1NS4ybDEwLjcgMzcuOGM4LjIgMjguMSAxIDUwLjYtMjMuNSA3My42LTE5LjQgMTcuNC0zMS4yIDI0LjUtNjEuNCAzMy4yTDIwMyAzNTEuOGwyMjAuNCAyNy4xIDkuNyAzNC4yLTQ4LjEgMTMuMy0yODYuOC0zNy4zIDIzIDgwLjJjMzYuOCAyMiA4MC4zIDM0LjcgMTI2LjMgMzQuNyAxMzcgMCAyNDguNS0xMTEuNCAyNDguNS0yNDguM0M0OTcgMTE5LjQgMzg1LjUgOCAyNDguNSA4ek0zOC4zIDM4OC42TDAgMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJldiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODkuNjcgMjc0Ljg5YTY1LjU3IDY1LjU3IDAgMSAxLTY1LjU2LTY1LjU2IDY1LjY0IDY1LjY0IDAgMCAxIDY1LjU2IDY1LjU2em0xMzkuNTUtNS4wNWgtLjEzYTIwNC42OSAyMDQuNjkgMCAwIDAtNzQuMzItMTUzbC00NS4zOCAyNi4yYTE1Ny4wNyAxNTcuMDcgMCAwIDEgNzEuODEgMTMxLjg0QzM4MS4yIDM2MS41IDMxMC43MyA0MzIgMjI0LjExIDQzMlM2NyAzNjEuNSA2NyAyNzQuODhjMC04MS44OCA2My0xNDkuMjcgMTQzLTE1Ni40M3YzOS4xMmwxMDguNzctNjIuNzlMMjEwIDMydjM4LjMyYy0xMDYuNyA3LjI1LTE5MSA5Ni0xOTEgMjA0LjU3IDAgMTExLjU5IDg5LjEyIDIwMi4yOSAyMDAuMDYgMjA1di4xMWgyMTAuMTZWMjY5Ljg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvY2tldGNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg0LjA0NiwyMjQuOGEzNC4xMTQsMzQuMTE0LDAsMSwwLDM0LjMxNywzNC4xMTNBMzQuMjE3LDM0LjIxNywwLDAsMCwyODQuMDQ2LDIyNC44Wm0tMTEwLjQ1LDBhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNywzNC4yMTcsMCwwLDAsMTczLjYsMjI0LjhabTIyMC45MjMsMGEzNC4xMTQsMzQuMTE0LDAsMSwwLDM0LjMxNywzNC4xMTNBMzQuMjE1LDM0LjIxNSwwLDAsMCwzOTQuNTE5LDIyNC44Wm0xNTMuODA3LTU1LjMxOWMtMTUuNTM1LTI0LjE3Mi0zNy4zMS00NS41Ny02NC42ODEtNjMuNjE4LTUyLjg4Ni0zNC44MTctMTIyLjM3NC01NC0xOTUuNjY2LTU0YTQwNS45NzUsNDA1Ljk3NSwwLDAsMC03Mi4wMzIsNi4zNTcsMjM4LjUyNCwyMzguNTI0LDAsMCwwLTQ5LjUxLTM2LjU4OEM5OS42ODQtMTEuNyw0MC44NTkuNzExLDExLjEzNSwxMS40MjFBMTQuMjkxLDE0LjI5MSwwLDAsMCw1LjU4LDM0Ljc4MkMyNi41NDIsNTYuNDU4LDYxLjIyMiw5OS4zLDUyLjcsMTM4LjI1MmMtMzMuMTQyLDMzLjktNTEuMTEyLDc0Ljc3Ni01MS4xMTIsMTE3LjMzNywwLDQzLjM3MiwxNy45Nyw4NC4yNDgsNTEuMTEyLDExOC4xNDgsOC41MjYsMzguOTU2LTI2LjE1NCw4MS44MTYtNDcuMTE2LDEwMy40OTFhMTQuMjg0LDE0LjI4NCwwLDAsMCw1LjU1NSwyMy4zNGMyOS43MjQsMTAuNzA5LDg4LjU0OSwyMy4xNDcsMTU1LjMyNC0xMC4yYTIzOC42NzksMjM4LjY3OSwwLDAsMCw0OS41MS0zNi41ODlBNDA1Ljk3Miw0MDUuOTcyLDAsMCwwLDI4OCw0NjAuMTRjNzMuMzEzLDAsMTQyLjgtMTkuMTU5LDE5NS42NjctNTMuOTc1LDI3LjM3MS0xOC4wNDksNDkuMTQ1LTM5LjQyNiw2NC42NzktNjMuNjE5LDE3LjMwOS0yNi45MjMsMjYuMDctNTUuOTE2LDI2LjA3LTg2LjEyNUM1NzQuMzk0LDIyNS40LDU2NS42MzQsMTk2LjQzLDU0OC4zMjYsMTY5LjQ4NVpNMjg0Ljk4Nyw0MDkuOWEzNDUuNjUsMzQ1LjY1LDAsMCwxLTg5LjQ0Ni0xMS41bC0yMC4xMjksMTkuMzkzYTE4NC4zNjYsMTg0LjM2NiwwLDAsMS0zNy4xMzgsMjcuNTg1LDE0NS43NjcsMTQ1Ljc2NywwLDAsMS01Mi41MjIsMTQuODdjLjk4My0xLjc3MSwxLjg4MS0zLjU2MywyLjg0Mi01LjM1NnEzMC4yNTgtNTUuNjgsMTYuMzI1LTEwMC4wNzhjLTMyLjk5Mi0yNS45NjItNTIuNzc4LTU5LjItNTIuNzc4LTk1LjQsMC04My4xLDEwNC4yNTQtMTUwLjQ2OSwyMzIuODQ2LTE1MC40NjlzMjMyLjg2Nyw2Ny4zNzMsMjMyLjg2NywxNTAuNDY5QzUxNy44NTQsMzQyLjUyNSw0MTMuNiw0MDkuOSwyODQuOTg3LDQwOS45WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvY2tybXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTU3LjQgNDE5LjVoLTkwbC0xMTItMTMxLjNjLTE3LjktMjAuNC0zLjktNTYuMSAyNi42LTU2LjFoNzUuM2wtODQuNi05OS4zLTg0LjMgOTguOWgtOTBMMTkzLjUgNjcuMmMxNC40LTE4LjQgNDEuMy0xNy4zIDU0LjUgMGwxNTcuNyAxODUuMWMxOSAyMi44IDIgNTcuMi0yNy42IDU2LjEtLjYgMC03NC4yLjItNzQuMi4ybDEwMS41IDExOC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1c3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA4LjUyLDI0OS43NSw0ODYuNywyMzYuMjRjLS4xNy0yLS4zNC0zLjkzLS41NS01Ljg4bDE4LjcyLTE3LjVhNy4zNSw3LjM1LDAsMCwwLTIuNDQtMTIuMjVsLTI0LTljLS41NC0xLjg4LTEuMDgtMy43OC0xLjY3LTUuNjRsMTUtMjAuODNhNy4zNSw3LjM1LDAsMCwwLTQuNzktMTEuNTRsLTI1LjQyLTQuMTVjLS45LTEuNzMtMS43OS0zLjQ1LTIuNzMtNS4xNWwxMC42OC0yMy40MmE3LjM1LDcuMzUsMCwwLDAtNi45NS0xMC4zOWwtMjUuODIuOTFxLTEuNzktMi4yMi0zLjYxLTQuNEw0MzksODEuODRBNy4zNiw3LjM2LDAsMCwwLDQzMC4xNiw3M0w0MDUsNzguOTNxLTIuMTctMS44My00LjQtMy42MWwuOTEtMjUuODJhNy4zNSw3LjM1LDAsMCwwLTEwLjM5LTdMMzY3LjcsNTMuMjNjLTEuNy0uOTQtMy40My0xLjg0LTUuMTUtMi43M0wzNTguNCwyNS4wOGE3LjM1LDcuMzUsMCwwLDAtMTEuNTQtNC43OUwzMjYsMzUuMjZjLTEuODYtLjU5LTMuNzUtMS4xMy01LjY0LTEuNjdsLTktMjRhNy4zNSw3LjM1LDAsMCwwLTEyLjI1LTIuNDRsLTE3LjUsMTguNzJjLTEuOTUtLjIxLTMuOTEtLjM4LTUuODgtLjU1TDI2Mi4yNSwzLjQ4YTcuMzUsNy4zNSwwLDAsMC0xMi41LDBMMjM2LjI0LDI1LjNjLTIsLjE3LTMuOTMuMzQtNS44OC41NUwyMTIuODYsNy4xM2E3LjM1LDcuMzUsMCwwLDAtMTIuMjUsMi40NGwtOSwyNGMtMS44OS41NS0zLjc5LDEuMDgtNS42NiwxLjY4bC0yMC44Mi0xNWE3LjM1LDcuMzUsMCwwLDAtMTEuNTQsNC43OWwtNC4xNSwyNS40MWMtMS43My45LTMuNDUsMS43OS01LjE2LDIuNzNMMTIwLjg4LDQyLjU1YTcuMzUsNy4zNSwwLDAsMC0xMC4zOSw3bC45MiwyNS44MWMtMS40OSwxLjE5LTMsMi4zOS00LjQyLDMuNjFMODEuODQsNzNBNy4zNiw3LjM2LDAsMCwwLDczLDgxLjg0TDc4LjkzLDEwN2MtMS4yMywxLjQ1LTIuNDMsMi45My0zLjYyLDQuNDFsLTI1LjgxLS45MWE3LjQyLDcuNDIsMCwwLDAtNi4zNywzLjI2LDcuMzUsNy4zNSwwLDAsMC0uNTcsNy4xM2wxMC42NiwyMy40MWMtLjk0LDEuNy0xLjgzLDMuNDMtMi43Myw1LjE2TDI1LjA4LDE1My42YTcuMzUsNy4zNSwwLDAsMC00Ljc5LDExLjU0bDE1LDIwLjgyYy0uNTksMS44Ny0xLjEzLDMuNzctMS42OCw1LjY2bC0yNCw5YTcuMzUsNy4zNSwwLDAsMC0yLjQ0LDEyLjI1bDE4LjcyLDE3LjVjLS4yMSwxLjk1LS4zOCwzLjkxLS41NSw1Ljg4TDMuNDgsMjQ5Ljc1YTcuMzUsNy4zNSwwLDAsMCwwLDEyLjVMMjUuMywyNzUuNzZjLjE3LDIsLjM0LDMuOTIuNTUsNS44N0w3LjEzLDI5OS4xM2E3LjM1LDcuMzUsMCwwLDAsMi40NCwxMi4yNWwyNCw5Yy41NSwxLjg5LDEuMDgsMy43OCwxLjY4LDUuNjVsLTE1LDIwLjgzYTcuMzUsNy4zNSwwLDAsMCw0Ljc5LDExLjU0bDI1LjQyLDQuMTVjLjksMS43MiwxLjc5LDMuNDUsMi43Myw1LjE0TDQyLjU2LDM5MS4xMmE3LjM1LDcuMzUsMCwwLDAsLjU3LDcuMTMsNy4xMyw3LjEzLDAsMCwwLDYuMzcsMy4yNmwyNS44My0uOTFxMS43NywyLjIyLDMuNiw0LjRMNzMsNDMwLjE2QTcuMzYsNy4zNiwwLDAsMCw4MS44NCw0MzlMMTA3LDQzMy4wN3EyLjE4LDEuODMsNC40MSwzLjYxbC0uOTIsMjUuODJhNy4zNSw3LjM1LDAsMCwwLDEwLjM5LDYuOTVsMjMuNDMtMTAuNjhjMS42OS45NCwzLjQyLDEuODMsNS4xNCwyLjczbDQuMTUsMjUuNDJhNy4zNCw3LjM0LDAsMCwwLDExLjU0LDQuNzhsMjAuODMtMTVjMS44Ni42LDMuNzYsMS4xMyw1LjY1LDEuNjhsOSwyNGE3LjM2LDcuMzYsMCwwLDAsMTIuMjUsMi40NGwxNy41LTE4LjcyYzEuOTUuMjEsMy45Mi4zOCw1Ljg4LjU1bDEzLjUxLDIxLjgyYTcuMzUsNy4zNSwwLDAsMCwxMi41LDBsMTMuNTEtMjEuODJjMi0uMTcsMy45My0uMzQsNS44OC0uNTZsMTcuNSwxOC43M2E3LjM2LDcuMzYsMCwwLDAsMTIuMjUtMi40NGw5LTI0YzEuODktLjU1LDMuNzgtMS4wOCw1LjY1LTEuNjhsMjAuODIsMTVhNy4zNCw3LjM0LDAsMCwwLDExLjU0LTQuNzhsNC4xNS0yNS40MmMxLjcyLS45LDMuNDUtMS43OSw1LjE1LTIuNzNsMjMuNDIsMTAuNjhhNy4zNSw3LjM1LDAsMCwwLDEwLjM5LTYuOTVsLS45MS0yNS44MnEyLjIyLTEuNzksNC40LTMuNjFMNDMwLjE2LDQzOWE3LjM2LDcuMzYsMCwwLDAsOC44NC04Ljg0TDQzMy4wNyw0MDVxMS44My0yLjE3LDMuNjEtNC40bDI1LjgyLjkxYTcuMjMsNy4yMywwLDAsMCw2LjM3LTMuMjYsNy4zNSw3LjM1LDAsMCwwLC41OC03LjEzTDQ1OC43NywzNjcuN2MuOTQtMS43LDEuODMtMy40MywyLjczLTUuMTVsMjUuNDItNC4xNWE3LjM1LDcuMzUsMCwwLDAsNC43OS0xMS41NGwtMTUtMjAuODNjLjU5LTEuODcsMS4xMy0zLjc2LDEuNjctNS42NWwyNC05YTcuMzUsNy4zNSwwLDAsMCwyLjQ0LTEyLjI1bC0xOC43Mi0xNy41Yy4yMS0xLjk1LjM4LTMuOTEuNTUtNS44N2wyMS44Mi0xMy41MWE3LjM1LDcuMzUsMCwwLDAsMC0xMi41Wm0tMTUxLDEyOS4wOEExMy45MSwxMy45MSwwLDAsMCwzNDEsMzg5LjUxbC03LjY0LDM1LjY3QTE4Ny41MSwxODcuNTEsMCwwLDEsMTc3LDQyNC40NGwtNy42NC0zNS42NmExMy44NywxMy44NywwLDAsMC0xNi40Ni0xMC42OGwtMzEuNTEsNi43NmExODcuMzgsMTg3LjM4LDAsMCwxLTE2LjI2LTE5LjIxSDI1OC4zYzEuNzIsMCwyLjg5LS4yOSwyLjg5LTEuOTFWMzA5LjU1YzAtMS41Ny0xLjE3LTEuOTEtMi44OS0xLjkxSDIxMy40N2wuMDUtMzQuMzVIMjYyYzQuNDEsMCwyMy42NiwxLjI4LDI5Ljc5LDI1Ljg3LDEuOTEsNy41NSw2LjE3LDMyLjE0LDkuMDYsNDAsMi44OSw4LjgyLDE0LjYsMjYuNDYsMjcuMSwyNi40Nkg0MDdhMTg3LjMsMTg3LjMsMCwwLDEtMTcuMzQsMjAuMDlabTI1Ljc3LDM0LjQ5QTE1LjI0LDE1LjI0LDAsMSwxLDM2OCwzOTguMDhoLjQ0QTE1LjIzLDE1LjIzLDAsMCwxLDM4My4yNCw0MTMuMzJabS0yMjUuNjItLjY4YTE1LjI0LDE1LjI0LDAsMSwxLTE1LjI1LTE1LjI1aC40NUExNS4yNSwxNS4yNSwwLDAsMSwxNTcuNjIsNDEyLjY0Wk02OS41NywyMzQuMTVsMzIuODMtMTQuNmExMy44OCwxMy44OCwwLDAsMCw3LjA2LTE4LjMzTDEwMi42OSwxODZoMjYuNTZWMzA1LjczSDc1LjY1QTE4Ny42NSwxODcuNjUsMCwwLDEsNjkuNTcsMjM0LjE1Wk01OC4zMSwxOTguMDlhMTUuMjQsMTUuMjQsMCwwLDEsMTUuMjMtMTUuMjVINzRhMTUuMjQsMTUuMjQsMCwxLDEtMTUuNjcsMTUuMjRabTE1NS4xNiwyNC40OS4wNS0zNS4zMmg2My4yNmMzLjI4LDAsMjMuMDcsMy43NywyMy4wNywxOC42MiwwLDEyLjI5LTE1LjE5LDE2LjctMjcuNjgsMTYuN1pNMzk5LDMwNi43MWMtOS44LDEuMTMtMjAuNjMtNC4xMi0yMi0xMC4wOS01Ljc4LTMyLjQ5LTE1LjM5LTM5LjQtMzAuNTctNTEuNCwxOC44Ni0xMS45NSwzOC40Ni0yOS42NCwzOC40Ni01My4yNiwwLTI1LjUyLTE3LjQ5LTQxLjU5LTI5LjQtNDkuNDgtMTYuNzYtMTEtMzUuMjgtMTMuMjMtNDAuMjctMTMuMjNIMTE2LjMyQTE4Ny40OSwxODcuNDksMCwwLDEsMjIxLjIxLDcwLjA2bDIzLjQ3LDI0LjZhMTMuODIsMTMuODIsMCwwLDAsMTkuNi40NGwyNi4yNi0yNWExODcuNTEsMTg3LjUxLDAsMCwxLDEyOC4zNyw5MS40M2wtMTgsNDAuNTdBMTQsMTQsMCwwLDAsNDA4LDIyMC40M2wzNC41OSwxNS4zM2ExODcuMTIsMTg3LjEyLDAsMCwxLC40LDMyLjU0SDQyMy43MWMtMS45MSwwLTIuNjksMS4yNy0yLjY5LDMuMTN2OC44MkM0MjEsMzAxLDQwOS4zMSwzMDUuNTgsMzk5LDMwNi43MVpNMjQwLDYwLjIxQTE1LjI0LDE1LjI0LDAsMCwxLDI1NS4yMSw0NWguNDVBMTUuMjQsMTUuMjQsMCwxLDEsMjQwLDYwLjIxWk00MzYuODQsMjE0YTE1LjI0LDE1LjI0LDAsMSwxLDAtMzAuNDhoLjQ0YTE1LjI0LDE1LjI0LDAsMCwxLS40NCwzMC40OFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWZhcmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc0LjY5LDI3NC42OWwtMzcuMzgtMzcuMzhMMTY2LDM0NlpNMjU2LDhDMTE5LDgsOCwxMTksOCwyNTZTMTE5LDUwNCwyNTYsNTA0LDUwNCwzOTMsNTA0LDI1NiwzOTMsOCwyNTYsOFpNNDExLjg1LDE4Mi43OWwxNC43OC02LjEzQTgsOCwwLDAsMSw0MzcuMDgsMTgxaDBhOCw4LDAsMCwxLTQuMzMsMTAuNDZMNDE4LDE5Ny41N2E4LDgsMCwwLDEtMTAuNDUtNC4zM2gwQTgsOCwwLDAsMSw0MTEuODUsMTgyLjc5Wk0zMTQuNDMsOTRsNi4xMi0xNC43OEE4LDgsMCwwLDEsMzMxLDc0LjkyaDBhOCw4LDAsMCwxLDQuMzMsMTAuNDVsLTYuMTMsMTQuNzhhOCw4LDAsMCwxLTEwLjQ1LDQuMzNoMEE4LDgsMCwwLDEsMzE0LjQzLDk0Wk0yNTYsNjBoMGE4LDgsMCwwLDEsOCw4Vjg0YTgsOCwwLDAsMS04LDhoMGE4LDgsMCwwLDEtOC04VjY4QTgsOCwwLDAsMSwyNTYsNjBaTTE4MSw3NC45MmE4LDgsMCwwLDEsMTAuNDYsNC4zM0wxOTcuNTcsOTRhOCw4LDAsMSwxLTE0Ljc4LDYuMTJsLTYuMTMtMTQuNzhBOCw4LDAsMCwxLDE4MSw3NC45MlptLTYzLjU4LDQyLjQ5aDBhOCw4LDAsMCwxLDExLjMxLDBMMTQwLDEyOC43MkE4LDgsMCwwLDEsMTQwLDE0MGgwYTgsOCwwLDAsMS0xMS4zMSwwbC0xMS4zMS0xMS4zMUE4LDgsMCwwLDEsMTE3LjQxLDExNy40MVpNNjAsMjU2aDBhOCw4LDAsMCwxLDgtOEg4NGE4LDgsMCwwLDEsOCw4aDBhOCw4LDAsMCwxLTgsOEg2OEE4LDgsMCwwLDEsNjAsMjU2Wm00MC4xNSw3My4yMS0xNC43OCw2LjEzQTgsOCwwLDAsMSw3NC45MiwzMzFoMGE4LDgsMCwwLDEsNC4zMy0xMC40Nkw5NCwzMTQuNDNhOCw4LDAsMCwxLDEwLjQ1LDQuMzNoMEE4LDgsMCwwLDEsMTAwLjE1LDMyOS4yMVptNC4zMy0xMzZoMEE4LDgsMCwwLDEsOTQsMTk3LjU3bC0xNC43OC02LjEyQTgsOCwwLDAsMSw3NC45MiwxODFoMGE4LDgsMCwwLDEsMTAuNDUtNC4zM2wxNC43OCw2LjEzQTgsOCwwLDAsMSwxMDQuNDgsMTkzLjI0Wk0xOTcuNTcsNDE4bC02LjEyLDE0Ljc4YTgsOCwwLDAsMS0xNC43OS02LjEybDYuMTMtMTQuNzhBOCw4LDAsMSwxLDE5Ny41Nyw0MThaTTI2NCw0NDRhOCw4LDAsMCwxLTgsOGgwYTgsOCwwLDAsMS04LThWNDI4YTgsOCwwLDAsMSw4LThoMGE4LDgsMCwwLDEsOCw4Wm02Ny02LjkyaDBhOCw4LDAsMCwxLTEwLjQ2LTQuMzNMMzE0LjQzLDQxOGE4LDgsMCwwLDEsNC4zMy0xMC40NWgwYTgsOCwwLDAsMSwxMC40NSw0LjMzbDYuMTMsMTQuNzhBOCw4LDAsMCwxLDMzMSw0MzcuMDhabTYzLjU4LTQyLjQ5aDBhOCw4LDAsMCwxLTExLjMxLDBMMzcyLDM4My4yOEE4LDgsMCwwLDEsMzcyLDM3MmgwYTgsOCwwLDAsMSwxMS4zMSwwbDExLjMxLDExLjMxQTgsOCwwLDAsMSwzOTQuNTksMzk0LjU5Wk0yODYuMjUsMjg2LjI1LDExMC4zNCw0MDEuNjYsMjI1Ljc1LDIyNS43NSw0MDEuNjYsMTEwLjM0Wk00MzcuMDgsMzMxaDBhOCw4LDAsMCwxLTEwLjQ1LDQuMzNsLTE0Ljc4LTYuMTNhOCw4LDAsMCwxLTQuMzMtMTAuNDVoMEE4LDgsMCwwLDEsNDE4LDMxNC40M2wxNC43OCw2LjEyQTgsOCwwLDAsMSw0MzcuMDgsMzMxWk00NDQsMjY0SDQyOGE4LDgsMCwwLDEtOC04aDBhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4aDBBOCw4LDAsMCwxLDQ0NCwyNjRaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2FsZXNmb3JjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDguODkgMjQ1LjY0aC0yNi4zNWMuNjktNS4xNiAzLjMyLTE0LjEyIDEzLjY0LTE0LjEyIDYuNzUgMCAxMS45NyAzLjgyIDEyLjcxIDE0LjEyem0xMzYuNjYtMTMuODhjLS40NyAwLTE0LjExLTEuNzctMTQuMTEgMjBzMTMuNjMgMjAgMTQuMTEgMjBjMTMgMCAxNC4xMS0xMy41NCAxNC4xMS0yMCAwLTIxLjc2LTEzLjY2LTIwLTE0LjExLTIwem0tMjQzLjIyIDIzLjc2YTguNjMgOC42MyAwIDAgMC0zLjI5IDcuMjljMCA0Ljc4IDIuMDggNi4wNSAzLjI5IDcuMDUgNC43IDMuNyAxNS4wNyAyLjEyIDIwLjkzLjk1di0xNi45NGMtNS4zMi0xLjA3LTE2LjczLTEuOTYtMjAuOTMgMS42NXpNNjQwIDIzMmMwIDg3LjU4LTgwIDE1NC4zOS0xNjUuMzYgMTM2LjQzLTE4LjM3IDMzLTcwLjczIDcwLjc1LTEzMi4yIDQxLjYzLTQxLjE2IDk2LjA1LTE3Ny44OSA5Mi4xOC0yMTMuODEtNS4xN0M4LjkxIDQyOC43OC01MC4xOSAyNjYuNTIgNTMuMzYgMjA1LjYxIDE4LjYxIDEyNi4xOCA3NiAzMiAxNjcuNjcgMzJhMTI0LjI0IDEyNC4yNCAwIDAgMSA5OC41NiA0OC43YzIwLjctMjEuNCA0OS40LTM0LjgxIDgxLjE1LTM0LjgxIDQyLjM0IDAgNzkgMjMuNTIgOTguOCA1OC41N0M1MzkgNjMuNzggNjQwIDEzMi42OSA2NDAgMjMyem0tNTE5LjU1IDMxLjhjMC0xMS43Ni0xMS42OS0xNS4xNy0xNy44Ny0xNy4xNy01LjI3LTIuMTEtMTMuNDEtMy41MS0xMy40MS04Ljk0IDAtOS40NiAxNy02LjY2IDI1LjE3LTIuMTIgMCAwIDEuMTcuNzEgMS42NC0uNDcuMjQtLjcgMi4zNi02LjU4IDIuNTktNy4yOWExLjEzIDEuMTMgMCAwIDAtLjctMS40MWMtMTIuMzMtNy42My00MC43LTguNTEtNDAuNyAxMi43IDAgMTIuNDYgMTEuNDkgMTUuNDQgMTcuODggMTcuMTcgNC43MiAxLjU4IDEzLjE3IDMgMTMuMTcgOC43IDAgNC0zLjUzIDcuMDYtOS4xNyA3LjA2YTMxLjc2IDMxLjc2IDAgMCAxLTE5LTYuMzVjLS40Ny0uMjMtMS40Mi0uNzEtMS42NS43MWwtMi40IDcuNDdjLS40Ny45NC4yMyAxLjE4LjIzIDEuNDEgMS43NSAxLjQgMTAuMyA2LjU5IDIyLjgyIDYuNTkgMTMuMTcgMCAyMS40LTcuMDYgMjEuNC0xOC4xMXptMzItNDIuNThjLTEwLjEzIDAtMTguNjYgMy4xNy0yMS40IDUuMThhMSAxIDAgMCAwLS4yNCAxLjQxbDIuNTkgNy4wNmExIDEgMCAwIDAgMS4xOC43Yy42NSAwIDYuOC00IDE2LjkzLTQgNCAwIDcuMDYuNzEgOS4xOCAyLjM2IDMuNiAyLjggMy4wNiA4LjI5IDMuMDYgMTAuNTgtNC43OS0uMy0xOS4xMS0zLjQ0LTI5LjQxIDMuNzZhMTYuOTIgMTYuOTIgMCAwIDAtNy4zNCAxNC41NGMwIDUuOSAxLjUxIDEwLjQgNi41OSAxNC4zNSAxMi4yNCA4LjE2IDM2LjI4IDIgMzguMSAxLjQxIDEuNTgtLjMyIDMuNTMtLjY2IDMuNTMtMS44OHYtMzMuODhjLjA0LTQuNjEuMzItMjEuNjQtMjIuNzgtMjEuNjR6TTE5OSAyMDAuMjRhMS4xMSAxLjExIDAgMCAwLTEuMTgtMS4xOEgxODhhMS4xMSAxLjExIDAgMCAwLTEuMTcgMS4xOHY3OWExLjExIDEuMTEgMCAwIDAgMS4xNyAxLjE4aDkuODhhMS4xMSAxLjExIDAgMCAwIDEuMTgtMS4xOHptNTUuNzUgMjguOTNjLTIuMS0yLjMxLTYuNzktNy41My0xNy42NS03LjUzLTMuNTEgMC0xNC4xNi4yMy0yMC43IDguOTQtNi4zNSA3LjYzLTYuNTggMTguMTEtNi41OCAyMS40MSAwIDMuMTIuMTUgMTQuMjYgNy4wNiAyMS4xNyAyLjY0IDIuOTEgOS4wNiA4LjIzIDIyLjgxIDguMjMgMTAuODIgMCAxNi40Ny0yLjM1IDE4LjU4LTMuNzYuNDctLjI0LjcxLS43MS4yNC0xLjg4bC0yLjM1LTYuODNhMS4yNiAxLjI2IDAgMCAwLTEuNDEtLjdjLTIuNTkuOTQtNi4zNSAyLjgyLTE1LjI5IDIuODItMTcuNDIgMC0xNi44NS0xNC43NC0xNi45NC0xNi43aDM3LjE3YTEuMjMgMS4yMyAwIDAgMCAxLjE3LS45NGMtLjI5IDAgMi4wNy0xNC43LTYuMDktMjQuMjN6bTM2LjY5IDUyLjY5YzEzLjE3IDAgMjEuNDEtNy4wNiAyMS40MS0xOC4xMSAwLTExLjc2LTExLjctMTUuMTctMTcuODgtMTcuMTctNC4xNC0xLjY2LTEzLjQxLTMuMzgtMTMuNDEtOC45NCAwLTMuNzYgMy4yOS02LjM1IDguNDctNi4zNWEzOC4xMSAzOC4xMSAwIDAgMSAxNi43IDQuMjNzMS4xOC43MSAxLjY1LS40N2MuMjMtLjcgMi4zNS02LjU4IDIuNTgtNy4yOWExLjEzIDEuMTMgMCAwIDAtLjctMS40MWMtNy45MS00LjktMTYuNzQtNC45NC0yMC4yMy00Ljk0LTEyIDAtMjAuNDYgNy4yOS0yMC40NiAxNy42NCAwIDEyLjQ2IDExLjQ4IDE1LjQ0IDE3Ljg3IDE3LjE3IDYuMTEgMiAxMy4xNyAzLjI2IDEzLjE3IDguNyAwIDQtMy41MiA3LjA2LTkuMTcgNy4wNmEzMS44IDMxLjggMCAwIDEtMTktNi4zNSAxIDEgMCAwIDAtMS42NS43MWwtMi4zNSA3LjUyYy0uNDcuOTQuMjMgMS4xOC4yMyAxLjQxIDEuNzIgMS40IDEwLjMzIDYuNTkgMjIuNzkgNi41OXpNMzU3LjA5IDIyNGMwLS43MS0uMjQtMS4xOC0xLjE4LTEuMThoLTExLjc2YzAtLjE0Ljk0LTguOTQgNC40Ny0xMi40NyA0LjE2LTQuMTUgMTEuNzYtMS42NCAxMi0xLjY0IDEuMTcuNDcgMS40MSAwIDEuNjQtLjQ3bDIuODMtNy43N2MuNy0uOTQgMC0xLjE3LS4yNC0xLjQxLTUuMDktMi0xNy4zNS0yLjg3LTI0LjQ2IDQuMjQtNS40OCA1LjQ4LTcgMTMuOTItOCAxOS41MmgtOC40N2ExLjI4IDEuMjggMCAwIDAtMS4xNyAxLjE4bC0xLjQyIDcuNzZjMCAuNy4yNCAxLjE3IDEuMTggMS4xN2g4LjIzYy04LjUxIDQ3LjktOC43NSA1MC4yMS0xMC4zNSA1NS41Mi0xLjA4IDMuNjItMy4yOSA2LjktNS44OCA3Ljc2LS4wOSAwLTMuODggMS42OC05LjY0LS4yNCAwIDAtLjk0LS40Ny0xLjQxLjcxLS4yNC43MS0yLjU5IDYuODItMi44MyA3LjUzczAgMS40MS40NyAxLjQxYzUuMTEgMiAxMyAxLjc3IDE3Ljg4IDAgNi4yOC0yLjI4IDkuNzItNy44OSAxMS41My0xMi45NCAyLjc1LTcuNzEgMi44MS05Ljc5IDExLjc2LTU5Ljc0aDEyLjIzYTEuMjkgMS4yOSAwIDAgMCAxLjE4LTEuMTh6bTUzLjM5IDE2Yy0uNTYtMS42OC01LjEtMTguMTEtMjUuMTctMTguMTEtMTUuMjUgMC0yMyAxMC0yNS4xNiAxOC4xMS0xIDMtMy4xOCAxNCAwIDIzLjUyLjA5LjMgNC40MSAxOC4xMiAyNS4xNiAxOC4xMiAxNC45NSAwIDIyLjktOS42MSAyNS4xNy0xOC4xMiAzLjIxLTkuNjEgMS4wMS0yMC41MiAwLTIzLjUyem00NS40LTE2LjdjLTUtMS42NS0xNi42Mi0xLjktMjIuMTEgNS40MXYtNC40N2ExLjExIDEuMTEgMCAwIDAtMS4xOC0xLjE3aC05LjRhMS4xMSAxLjExIDAgMCAwLTEuMTggMS4xN3Y1NS4yOGExLjEyIDEuMTIgMCAwIDAgMS4xOCAxLjE4aDkuNjRhMS4xMiAxLjEyIDAgMCAwIDEuMTgtMS4xOHYtMjcuNzdjMC0yLjkxLjA1LTExLjM3IDQuNDYtMTUuMDUgNC45LTQuOSAxMi0zLjM2IDEzLjQxLTMuMDZhMS41NyAxLjU3IDAgMCAwIDEuNDEtLjk0IDc0IDc0IDAgMCAwIDMuMDYtOCAxLjE2IDEuMTYgMCAwIDAtLjQ3LTEuNDF6bTQ2LjgxIDU0LjFsLTIuMTItNy4yOWMtLjQ3LTEuMTgtMS40MS0uNzEtMS40MS0uNzEtNC4yMyAxLjgyLTEwLjE1IDEuODktMTEuMjkgMS44OS00LjY0IDAtMTcuMTctMS4xMy0xNy4xNy0xOS43NiAwLTYuMjMgMS44NS0xOS43NiAxNi40Ny0xOS43NmEzNC44NSAzNC44NSAwIDAgMSAxMS41MiAxLjY1cy45NC40NyAxLjE4LS43MWMuOTQtMi41OSAxLjY0LTQuNDcgMi41OS03LjUzLjIzLS45NC0uNDctMS4xNy0uNzEtMS4xNy0xMS41OS0zLjg3LTIyLjM0LTIuNTMtMjcuNzYgMC0xLjU5Ljc0LTE2LjIzIDYuNDktMTYuMjMgMjcuNTIgMCAyLjktLjU4IDMwLjExIDI4Ljk0IDMwLjExYTQ0LjQ1IDQ0LjQ1IDAgMCAwIDE1LjUyLTIuODMgMS4zIDEuMyAwIDAgMCAuNDctMS40MnptNTMuODctMzkuNTJjLS44LTMtNS4zNy0xNi4yMy0yMi4zNS0xNi4yMy0xNiAwLTIzLjUyIDEwLjExLTI1LjY0IDE4LjU5YTM4LjU4IDM4LjU4IDAgMCAwLTEuNjUgMTEuNzZjMCAyNS44NyAxOC44NCAyOS40IDI5Ljg4IDI5LjQgMTAuODIgMCAxNi40Ni0yLjM1IDE4LjU4LTMuNzYuNDctLjI0LjcxLS43MS4yNC0xLjg4bC0yLjM2LTYuODNhMS4yNiAxLjI2IDAgMCAwLTEuNDEtLjdjLTIuNTkuOTQtNi4zNSAyLjgyLTE1LjI5IDIuODItMTcuNDIgMC0xNi44NS0xNC43NC0xNi45My0xNi43aDM3LjE2YTEuMjUgMS4yNSAwIDAgMCAxLjE4LS45NGMtLjI0LS4wMS45NC03LjA3LTEuNDEtMTUuNTR6bS0yMy4yOS02LjM1Yy0xMC4zMyAwLTEzIDktMTMuNjQgMTQuMTJINTQ2Yy0uODgtMTEuOTItNy42Mi0xNC4xMy0xMi43My0xNC4xM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS44NCAzNzguOTJjLS4zLjYtLjYgMS4wOCAwIDB6bTI0OS4xMy04N2ExMzEuMTYgMTMxLjE2IDAgMCAwLTU4IDEzLjVjLTUuOS0xMS45LTEyLTIyLjMtMTMtMzAuMS0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjI5IDUuOWExMjIuODMgMTIyLjgzIDAgMCAwLTUuMyAxOS4xYy0yLjMgMTEuNy0yNS43OSA1My41LTM5LjA5IDc1LjMtNC40LTguNS04LjEtMTYtOC45LTIyLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4yOS02LjctMjQgMi41LTI1LjMgNS45LTIuNyAxMS40LTUuMyAxOS4xLTMzLjg5IDc3LjMtNDIuMDggOTUuNGMtNC4yIDkuMi03LjggMTYuNi0xMC40IDIxLjYtLjQuOC0uNyAxLjMtLjkgMS43LjMtLjUuNS0xIC41LS44LTIuMiA0LjMtMy41IDYuNy0zLjUgNi43di4xYy0xLjcgMy4yLTMuNiA2LjEtNC41IDYuMS0uNiAwLTEuOS04LjQuMy0xOS45IDQuNy0yNC4yIDE1LjgtNjEuOCAxNS43LTYzLjEtLjEtLjcgMi4xLTcuMi03LjMtMTAuNy05LjEtMy4zLTEyLjQgMi4yLTEzLjIgMi4ycy0xLjQgMi0xLjQgMiAxMC4xLTQyLjQtMTkuMzktNDIuNGMtMTguNCAwLTQ0IDIwLjItNTYuNTggMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1Ljc5LTM4LjItMTAxLjg3LTY1LjItOTkuMDctMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4wNy0xMjcuNCA5OC00OC44IDE3Ni4zNS0zNS40IDE4OS44NC01LjYgMTkuNCA0Mi41LTQxLjg5IDEyMS42LTE0My42NiAxMzMtMzguNzkgNC4zLTU5LjE4LTEwLjctNjQuMjgtMTYuMy01LjMtNS45LTYuMS02LjItOC4xLTUuMS0zLjMgMS44LTEuMiA3IDAgMTAuMSAzIDcuOSAxNS41IDIxLjkgMzYuNzkgMjguOSAxOC43IDYuMSA2NC4xOCA5LjUgMTE5LjE3LTExLjggNjEuNzgtMjMuOCAxMDkuODctOTAuMSA5NS43Ny0xNDUuNkMzODYuNTIgMTguMzIgMjkzLS4xOCAyMDQuNTcgMzEuMjJjLTUyLjY5IDE4LjctMTA5LjY3IDQ4LjEtMTUwLjY2IDg2LjQtNDguNjkgNDUuNi01Ni40OCA4NS4zLTUzLjI4IDEwMS45IDExLjM5IDU4LjkgOTIuNTcgOTcuMyAxMjUuMDYgMTI1LjctMS42LjktMy4xIDEuNy00LjUgMi41LTE2LjI5IDguMS03OC4xOCA0MC41LTkzLjY3IDc0LjctMTcuNSAzOC44IDIuOSA2Ni42IDE2LjI5IDcwLjQgNDEuNzkgMTEuNiA4NC41OC05LjMgMTA3LjU3LTQzLjZzMjAuMi03OS4xIDkuNi05OS41Yy0uMS0uMy0uMy0uNS0uNC0uOCA0LjItMi41IDguNS01IDEyLjgtNy41IDguMjktNC45IDE2LjM5LTkuNCAyMy40OS0xMy4zLTQgMTAuOC02LjkgMjMuOC04LjQgNDIuNi0xLjggMjIgNy4zIDUwLjUgMTkuMSA2MS43IDUuMiA0LjkgMTEuNDkgNSAxNS4zOSA1IDEzLjggMCAyMC0xMS40IDI2Ljg5LTI1IDguNS0xNi42IDE2LTM1LjkgMTYtMzUuOXMtOS40IDUyLjIgMTYuMyA1Mi4yYzkuMzkgMCAxOC43OS0xMi4xIDIzLTE4LjN2LjFzLjItLjQuNy0xLjJjMS0xLjUgMS41LTIuNCAxLjUtMi40di0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC41OS00NiAxNi4yLTMxLjggMzEuNjktNzEuNSAzMS42OS03MS41YTIwMS4yNCAyMDEuMjQgMCAwIDAgNi4yIDI1LjhjMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yYS4zMS4zMSAwIDAgMCAuMS4yYy0zIDQtNi40IDguMy05LjkgMTIuNS0xMi43OSAxNS4yLTI4IDMyLjYtMzAgMzcuNi0yLjQgNS45LTEuOCAxMC4zIDIuOCAxMy43IDMuNCAyLjYgOS40IDMgMTUuNjkgMi41IDExLjUtLjggMTkuNi0zLjYgMjMuNS01LjRhODIuMiA4Mi4yIDAgMCAwIDIwLjE5LTEwLjZjMTIuNS05LjIgMjAuMS0yMi40IDE5LjQtMzkuOC0uNC05LjYtMy41LTE5LjItNy4zLTI4LjIgMS4xLTEuNiAyLjMtMy4zIDMuNC01QzQzNC44IDMwMS43MiA0NTAuMSAyNzAgNDUwLjEgMjcwYTIwMS4yNCAyMDEuMjQgMCAwIDAgNi4yIDI1LjhjMi40IDguMSA3LjA5IDE3IDExLjM5IDI1LjctMTguNTkgMTUuMS0zMC4wOSAzMi42LTM0LjA5IDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjVhNzkuNDYgNzkuNDYgMCAwIDAgMjEuNTktMTEuMWMxMi41LTkuMiAyNC41OS0yMi4xIDIzLjc5LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjA5LTEwLjIgNjIuMDktNy4yIDU1LjY4IDYuNSA2Ni41OCA0MS4zIDY0LjQ4IDU1LjhzLTEzLjggMjIuNi0xNy43IDI1LTUuMSAzLjMtNC44IDUuMWMuNSAyLjYgMi4zIDIuNSA1LjYgMS45IDQuNi0uOCAyOS4xOS0xMS44IDMwLjI5LTM4LjcgMS42LTM0LTMxLjA5LTcxLjQtODktNzEuMXptLTQyOS4xOCAxNDQuN2MtMTguMzkgMjAuMS00NC4xOSAyNy43LTU1LjI4IDIxLjNDNTQuNjEgNDUxIDU5LjMxIDQyMS40MiA4MiA0MDBjMTMuOC0xMyAzMS41OS0yNSA0My4zOS0zMi40IDIuNy0xLjYgNi42LTQgMTEuNC02LjkuOC0uNSAxLjItLjcgMS4yLS43LjktLjYgMS45LTEuMSAyLjktMS43IDguMjkgMzAuNC4zIDU3LjItMTkuMSA3OC4zem0xMzQuMzYtOTEuNGMtNi40IDE1LjctMTkuODkgNTUuNy0yOC4wOSA1My42LTctMS44LTExLjMtMzIuMy0xLjQtNjIuMyA1LTE1LjEgMTUuNi0zMy4xIDIxLjktNDAuMSAxMC4wOS0xMS4zIDIxLjE5LTE0LjkgMjMuNzktMTAuNCAzLjUgNS45LTEyLjIgNDkuNC0xNi4yIDU5LjJ6bTExMSA1M2MtMi43IDEuNC01LjIgMi4zLTYuNCAxLjYtLjktLjUgMS4xLTIuNCAxLjEtMi40czEzLjktMTQuOSAxOS40LTIxLjdjMy4yLTQgNi45LTguNyAxMC44OS0xMy45IDAgLjUuMSAxIC4xIDEuNi0uMTMgMTcuOS0xNy4zMiAzMC0yNS4xMiAzNC44em04NS41OC0xOS41Yy0yLTEuNC0xLjctNi4xIDUtMjAuNyAyLjYtNS43IDguNTktMTUuMyAxOS0yNC41YTM2LjE4IDM2LjE4IDAgMCAxIDEuOSAxMC44Yy0uMSAyMi41LTE2LjIgMzAuOS0yNS44OSAzNC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaGxpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xTDE3NiAxMzVsLTM2LjcgMjIuNS0xMi40LTI4Ljh6bS0yMy4zIDg4LjJsLTguOC0zNC44IDI5LjYtMTguMyAxMy4xIDM1LjMtMzMuOSAxNy44em0tMjEuMi04My43bDIzLjktMTguMSA4LjkgMjQtMjYuNyAxOC4zLTYuMS0yNC4yek01OSAyMDYuNWwtMy42LTI4LjQgMjIuMy0xNS41IDYuMSAyOC43TDU5IDIwNi41em0tMzAuNiAxNi42bDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4bDE5LjItMTAuMi40IDM4LjItMjEgOC44TDEuNCAyNjh6bTU5LjEgNTkuM2wtMjguMyA4LjMtMS42LTQ2LjggMjUuMS0xMC43IDQuOCA0OS4yek05OSAyNjMuMmwtMzEuMSAxMy01LjItNDAuOEw5MC4xIDIyMWw4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43em0tODQuOS0yNzkuN2w0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3JpYmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuMyAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOS42IDU1LjggMTQgMjYuNCAyNC4zIDIzLjIgNjcuNi0uNyA5MS45LTI5LjIgMjkuNS04NS4yIDI3LjMtMTE0LjgtOC40em0zMTcuNyA1LjljLTE1LjUtMTguOC0zOC45LTI5LjQtNjMuMi0yOC42LTM4LjEtMi03MS4xIDI4LTcwLjUgNjcuMi0uNyAxNi44IDYgMzMgMTguNCA0NC4zIDE0LjEgMTMuOSAzMyAxOS43IDU2LjMgMTQuNCAxNy40LTUuMSAyOC42LTMuMSAyOC42IDE1LjYgMCA0LjMtLjUgOC41LTEuNCAxMi43LTE2LjcgNDAuOS01OS41IDY0LjQtMTIxLjQgNjQuNC01MS45LjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjRMMCA0MDYuM2wxNS40IDEzLjhjNTIuNSA0Ni44IDEyMC40IDcyLjUgMTkwLjcgNzIuMiA1MS40IDAgOTQuNC0xMC41IDEzMy42LTQ0LjEgNTcuMS01MS40IDU0LjItMTQ5LjIgMjAuMy0xODkuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hlbmdpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDYwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjAuNiAxMzAuM2wtNjcuMiAyOC4yVjQzLjJMOTguNyAyMzMuNWw1NC43LTI0LjJ2MTMwLjNsNjcuMi0yMDkuM3ptLTgzLjItOTYuN2wtMS4zIDQuNy0xNS4yIDUyLjlDODAuNiAxMDYuNyA1MiAxNDUuOCA1MiAxOTEuNWMwIDUyLjMgMzQuMyA5NS45IDgzLjQgMTA1LjV2NTMuNkM1Ny41IDM0MC4xIDAgMjcyLjQgMCAxOTEuNmMwLTgwLjUgNTkuOC0xNDcuMiAxMzcuNC0xNTh6bTMxMS40IDQ0Ny4yYy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMVYzMi4zQzI1NC40IDM3LjQgMzIwIDEwNi44IDMyMCAxOTEuNmMwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VsbGNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjQgMzJIOTQuN0M0Mi42IDMyIDAgNzQuNiAwIDEyNi42djI1OC43QzAgNDM3LjQgNDIuNiA0ODAgOTQuNyA0ODBoMjU4LjdjNTIuMSAwIDk0LjctNDIuNiA5NC43LTk0LjZWMTI2LjZjMC01Mi00Mi42LTk0LjYtOTQuNy05NC42em0tNTAgMzE2LjRjLTI3LjkgNDguMi04OS45IDY0LjktMTM4LjIgMzcuMi0yMi45IDM5LjgtNTQuOSA4LjYtNDIuMy0xMy4ybDE1LjctMjcuMmM1LjktMTAuMyAxOS4yLTEzLjkgMjkuNS03LjkgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyAyNy42IDE1LjkgNjMuNCA2LjMgNzkuNC0yMS4zIDE1LjktMjcuNiA2LjMtNjMuNC0yMS4zLTc5LjQtMTcuOC0xMC4yLS42LS40LTE4LjYtMTAuNi0yNC42LTE0LjItMy40LTUxLjkgMjEuNi0zNy41IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgNDguNCAyOCA2NS4xIDkwLjMgMzcuMiAxMzguNXptMjEuOC0yMDguOGMtMTcgMjkuNS0xNi4zIDI4LjgtMTkgMzEuNS02LjUgNi41LTE2LjMgOC43LTI2LjUgMy42LTE4LjYtMTAuOC4xLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOC4xLjEtMTguNS0xMC43LTQ4LjItMjcuOC02NC45LTkwLjEtMzcuMS0xMzguNCAyNy45LTQ4LjIgODkuOS02NC45IDEzOC4yLTM3LjJsNC44LTguNGMxNC4zLTI0LjkgNTItMy4zIDM3LjcgMjEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWxsc3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTM5LjcxIDIzNy4zMDhjMy4wNjQtMTIuMjU3IDQuMjktMjQuODIxIDQuMjktMzcuMzg0QzU0NCAxMDcuMzgyIDQ2OC42MTggMzIgMzc2LjA3NiAzMmMtNzcuMjIgMC0xNDQuNjM0IDUzLjAxMi0xNjMuMDIgMTI3Ljc4MS0xNS4zMjItMTMuMTc2LTM0LjkzNC0yMC41My01NS4xNTctMjAuNTMtNDYuMjcxIDAtODMuOTYyIDM3LjY5LTgzLjk2MiA4My45NjEgMCA3LjM1NC45MiAxNS4wMTUgMy4wNjUgMjIuMzY5LTQyLjkgMjAuMjI1LTcwLjc4NSA2My43MzgtNzAuNzg1IDExMS4yMzRDNi4yMTYgNDI0Ljg0MyA2MS42OCA0ODAgMTI5LjQwMSA0ODBoMzgxLjE5OGM2Ny43MiAwIDEyMy4xODQtNTUuMTU3IDEyMy4xODQtMTIzLjE4NC4wMDEtNTYuMzg0LTM4LjkxNi0xMDYuMDI1LTk0LjA3My0xMTkuNTA4ek0xOTkuODggNDAxLjU1NGMwIDguMjc0LTcuMDQ4IDE1LjMyMS0xNS4zMjEgMTUuMzIxSDE1My42MWMtOC4yNzQgMC0xNS4zMjEtNy4wNDgtMTUuMzIxLTE1LjMyMVYyOTAuNjI2YzAtOC4yNzMgNy4wNDgtMTUuMzIxIDE1LjMyMS0xNS4zMjFoMzAuOTQ5YzguMjc0IDAgMTUuMzIxIDcuMDQ4IDE1LjMyMSAxNS4zMjF2MTEwLjkyOHptODkuNDc3IDBjMCA4LjI3NC03LjA0OCAxNS4zMjEtMTUuMzIyIDE1LjMyMWgtMzAuOTQ5Yy04LjI3NCAwLTE1LjMyMS03LjA0OC0xNS4zMjEtMTUuMzIxVjI3MC4wOTZjMC04LjI3NCA3LjA0OC0xNS4zMjEgMTUuMzIxLTE1LjMyMWgzMC45NDljOC4yNzQgMCAxNS4zMjIgNy4wNDggMTUuMzIyIDE1LjMyMXYxMzEuNDU4em04OS40NzcgMGMwIDguMjc0LTcuMDQ3IDE1LjMyMS0xNS4zMjEgMTUuMzIxaC0zMC45NDljLTguMjc0IDAtMTUuMzIyLTcuMDQ4LTE1LjMyMi0xNS4zMjFWMjM4Ljg0YzAtOC4yNzQgNy4wNDgtMTUuMzIxIDE1LjMyMi0xNS4zMjFoMzAuOTQ5YzguMjc0IDAgMTUuMzIxIDcuMDQ4IDE1LjMyMSAxNS4zMjF2MTYyLjcxNHptODcuMDI3IDBjMCA4LjI3NC03LjA0OCAxNS4zMjEtMTUuMzIyIDE1LjMyMWgtMjguNDk3Yy04LjI3NCAwLTE1LjMyMS03LjA0OC0xNS4zMjEtMTUuMzIxVjE3Ni45NDFjMC04LjU3OSA3LjA0Ny0xNS42MjggMTUuMzIxLTE1LjYyOGgyOC40OTdjOC4yNzQgMCAxNS4zMjIgNy4wNDggMTUuMzIyIDE1LjYyOHYyMjQuNjEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlcnZpY2VzdGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OCAyMTZjODEuNyAxMC4yIDI3My43IDEwMi4zIDMwNCAyMzJIMGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyem0zMi0xNTJjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42QzI0OS4zIDIzMS4zIDM3My43IDMyMS4zIDQwMCA0NDhoOTZDNDU1LjMgMjMxLjkgMjIyLjggNzkuNSAxMjAgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpcnRzaW5idWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjR6bTM5LjQgMTcuNWwzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjR6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05Ljl6TTE3OS4xIDQ0NWwzMC4zIDEzLjcgNC40LTkuOS0zMC4zLTEzLjR6TTYwLjQgMzkyLjhMOTEgNDA2LjJsNC40LTkuNi0zMC42LTEzLjd6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOXptLTM5LjMgMTcuNWw0LjQgOS45IDMwLjYtMTMuNy00LjQtOS42em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05Ljl6TTE3MCA0Ni42aC0zMy41djEwLjVIMTcwem0tNDcuMiAwSDg5LjJ2MTAuNWgzMy41em0tNDcuMyAwSDQyLjN2MTAuNWgzMy4zem0xNDEuNSAwaC0zMy4ydjEwLjVIMjE3em05NC41IDBIMjc4djEwLjVoMzMuNXptNDcuMyAwaC0zMy41djEwLjVoMzMuNXptLTk0LjYgMEgyMzF2MTAuNWgzMy4yem0xNDEuNSAwaC0zMy4zdjEwLjVoMzMuM3pNNTIuOCAzNTEuMUg0MnYzMy41aDEwLjh6bTcwLTIxNS45SDg5LjJ2MTAuNWgzMy41em0tNzAgMTAuNmgyMi44di0xMC41SDQydjMzLjVoMTAuOHptMTY4LjkgMjI4LjZjNTAuNSAwIDkxLjMtNDAuOCA5MS4zLTkxLjMgMC01MC4yLTQwLjgtOTEuMy05MS4zLTkxLjMtNTAuMiAwLTkxLjMgNDEuMS05MS4zIDkxLjMgMCA1MC41IDQxLjEgOTEuMyA5MS4zIDkxLjN6bS00OC4yLTExMS4xYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOWgtLjljLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNGguOWM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNEg0MlYyMTJoMTAuOHptMzQyLjQgMjA2LjJINDA2di0zMy41aC0xMC44ek01Mi44IDMwNy45SDQydjMzLjVoMTAuOHpNMCAzLjd2NDA2bDIyMS43IDk4LjZMNDQ4IDQwOS43VjMuN3ptNDE4LjggMzg3LjFMMjIyIDQ3Ni41IDI5LjIgMzkwLjhWMTIwLjdoMzg5Ljd2MjcwLjF6bTAtMjk5LjNIMjkuMlYzMi45aDM4OS43djU4LjZ6bS0zNjYgMTMwLjFINDJ2MzMuNWgxMC44em0wIDQzLjJINDJ2MzMuNWgxMC44ek0xNzAgMTM1LjJoLTMzLjV2MTAuNUgxNzB6bTIyNS4yIDE2My4xSDQwNnYtMzMuNWgtMTAuOHptMC00My4ySDQwNnYtMzMuNWgtMTAuOHpNMjE3IDEzNS4yaC0zMy4ydjEwLjVIMjE3ek0zOTUuMiAyMTJINDA2di0zMy41aC0xMC44em0wIDEyOS41SDQwNlYzMDhoLTEwLjh6bS0xMzEtMjA2LjNIMjMxdjEwLjVoMzMuMnptNDcuMyAwSDI3OHYxMC41aDMzLjV6bTgzLjcgMzMuNkg0MDZ2LTMzLjVoLTMzLjV2MTAuNWgyMi44em0tMzYuNC0zMy42aC0zMy41djEwLjVoMzMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9waWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4OC4zMiwxMDQuMWE0LjY2LDQuNjYsMCwwLDAtNC40LTRjLTIsMC0zNy4yMy0uOC0zNy4yMy0uOHMtMjEuNjEtMjAuODItMjkuNjItMjguODNWNTAzLjJMNDQyLjc2LDQ3MlMzODguNzIsMTA2LjUsMzg4LjMyLDEwNC4xWk0yODguNjUsNzAuNDdhMTE2LjY3LDExNi42NywwLDAsMC03LjIxLTE3LjYxQzI3MSwzMi44NSwyNTUuNDIsMjIsMjM3LDIyYTE1LDE1LDAsMCwwLTQsLjRjLS40LS44LTEuMi0xLjItMS42LTJDMjIzLjQsMTEuNjMsMjEzLDcuNjMsMjAwLjU4LDhjLTI0LC44LTQ4LDE4LTY3LjI1LDQ4LjgzLTEzLjYxLDIxLjYyLTI0LDQ4Ljg0LTI2LjgyLDcwLjA2LTI3LjYyLDguNC00Ni44MywxNC40MS00Ny4yMywxNC44MS0xNCw0LjQtMTQuNDEsNC44LTE2LDE4LTEuMiwxMC0zOCwyOTEuODItMzgsMjkxLjgyTDMwNy44Niw1MDRWNjUuNjdhNDEuNjYsNDEuNjYsMCwwLDAtNC40LjRTMjk3Ljg2LDY3LjY3LDI4OC42NSw3MC40N1pNMjMzLjQxLDg3LjY5Yy0xNiw0LjgtMzMuNjMsMTAuNC01MC44NCwxNS42MSw0LjgtMTguODIsMTQuNDEtMzcuNjMsMjUuNjItNTAsNC40LTQuNCwxMC40MS05LjYxLDE3LjIxLTEyLjgxQzIzMi4yMSw1NC44NiwyMzMuODEsNzQuNDgsMjMzLjQxLDg3LjY5Wk0yMDAuNTgsMjQuNDRBMjcuNDksMjcuNDksMCwwLDEsMjE1LDI4Yy02LjQsMy4yLTEyLjgxLDguNDEtMTguODEsMTQuNDEtMTUuMjEsMTYuNDItMjYuODIsNDItMzEuNjIsNjYuNDUtMTQuNDIsNC40MS0yOC44Myw4LjgxLTQyLDEyLjgxQzEzMS4zMyw4My4yOCwxNjMuNzUsMjUuMjQsMjAwLjU4LDI0LjQ0Wk0xNTQuMTUsMjQ0LjYxYzEuNiwyNS42MSw2OS4yNSwzMS4yMiw3My4yNSw5MS42NiwyLjgsNDcuNjQtMjUuMjIsODAuMDYtNjUuNjUsODIuNDctNDguODMsMy4yLTc1LjY1LTI1LjYyLTc1LjY1LTI1LjYybDEwLjQtNDRzMjYuODIsMjAuNDIsNDguNDQsMTguODJjMTQtLjgsMTkuMjItMTIuNDEsMTguODEtMjAuNDItMi0zMy42Mi01Ny4yNC0zMS42Mi02MC44NC04Ni44Ni0zLjItNDYuNDQsMjcuMjItOTMuMjcsOTQuNDctOTcuNjgsMjYtMS42LDM5LjIzLDQuODEsMzkuMjMsNC44MUwyMjEuNCwyMjUuMzlzLTE3LjIxLTgtMzcuNjMtNi40QzE1NC4xNSwyMjEsMTUzLjc1LDIzOS44LDE1NC4xNSwyNDQuNjFaTTI0OS40Miw4Mi44OGMwLTEyLTEuNi0yOS4yMi03LjIxLTQzLjYzLDE4LjQyLDMuNiwyNy4yMiwyNCwzMS4yMywzNi40M1EyNjIuNjMsNzguNjgsMjQ5LjQyLDgyLjg4WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3B3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMy41IDQ1NS40MUEyNDYuMTcgMjQ2LjE3IDAgMCAxIDI1NiA1MDRDMTE4LjgxIDUwNCA4IDM5MyA4IDI1NiA4IDExOC44MSAxMTkgOCAyNTYgOGEyNDcuMzkgMjQ3LjM5IDAgMCAxIDE2NS43IDYzLjUgMy41NyAzLjU3IDAgMCAxLTIuODYgNi4xOEE0MTguNjIgNDE4LjYyIDAgMCAwIDM2Mi4xMyA3NGMtMTI5LjM2IDAtMjIyLjQgNTMuNDctMjIyLjQgMTU1LjM1IDAgMTA5IDkyLjEzIDE0NS44OCAxNzYuODMgMTc4LjczIDMzLjY0IDEzIDY1LjQgMjUuMzYgODcgNDEuNTlhMy41OCAzLjU4IDAgMCAxIDAgNS43MnpNNTAzIDIzMy4wOWEzLjY0IDMuNjQgMCAwIDAtMS4yNy0yLjQ0Yy01MS43Ni00My05My42Mi02MC40OC0xNDQuNDgtNjAuNDgtODQuMTMgMC04MC4yNSA1Mi4xNy04MC4yNSA1My42MyAwIDQyLjYgNTIuMDYgNjIgMTEyLjM0IDg0LjQ5IDMxLjA3IDExLjU5IDYzLjE5IDIzLjU3IDkyLjY4IDM5LjkzYTMuNTcgMy41NyAwIDAgMCA1LTEuODJBMjQ5IDI0OSAwIDAgMCA1MDMgMjMzLjA5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpbXBseWJ1aWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MS4yIDY0aC0xMDZjLTE0LjUgMC0yNi42IDExLjgtMjYuNiAyNi4zdjM5LjZIMTYzLjNWOTAuM2MwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNoLTEwNkMxNi4xIDY0IDQuMyA3NS44IDQuMyA5MC4zdjMzMS40YzAgMTQuNSAxMS44IDI2LjMgMjYuNiAyNi4zaDQ1MC40YzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zVjkwLjNjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE0OS44IDM1NS44Yy0zNi42IDAtNjYuNC0yOS43LTY2LjQtNjYuNCAwLTM2LjkgMjkuNy02Ni42IDY2LjQtNjYuNiAzNi45IDAgNjYuNiAyOS43IDY2LjYgNjYuNiAwIDM2LjctMjkuNyA2Ni40LTY2LjYgNjYuNHptMjEyLjQgMGMtMzYuOSAwLTY2LjYtMjkuNy02Ni42LTY2LjYgMC0zNi42IDI5LjctNjYuNCA2Ni42LTY2LjQgMzYuNiAwIDY2LjQgMjkuNyA2Ni40IDY2LjQgMCAzNi45LTI5LjggNjYuNi02Ni40IDY2LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lzdHJpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOUM3NC43IDMyIDAgMTA3LjggMCAyMDAuOXM3NC43IDE2OC45IDE2Ni41IDE2OC45YzM5LjggMCA3Ni4zLTE0LjIgMTA1LTM3LjlsMTQ2IDE0OC4xIDMwLjUtMzF6TTE2Ni41IDMzMC44Yy03MC42IDAtMTI4LjEtNTguMy0xMjguMS0xMjkuOVM5NS45IDcxIDE2Ni41IDcxczEyOC4xIDU4LjMgMTI4LjEgMTI5LjktNTcuNCAxMjkuOS0xMjguMSAxMjkuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJsNjkuNzEgMTE4Ljc1LTU4Ljg2LTExLjUyIDY5Ljg0IDkxLjAzYTE0Ni43NDEgMTQ2Ljc0MSAwIDAgMCAwIDUxLjQ1bC02OS44NCA5MS4wMyA1OC44Ni0xMS41MkwwIDQ4MGwxMTguNzUtNjkuNzEtMTEuNTIgNTguODYgOTEuMDMtNjkuODRjMTcuMDIgMy4wNCAzNC40NyAzLjA0IDUxLjQ4IDBsOTEuMDMgNjkuODQtMTEuNTItNTguODZMNDQ4IDQ4MGwtNjkuNzEtMTE4Ljc4IDU4Ljg2IDExLjUyLTY5Ljg0LTkxLjAzYzMuMDMtMTcuMDEgMy4wNC0zNC40NCAwLTUxLjQ1bDY5Ljg0LTkxLjAzLTU4Ljg2IDExLjUyTDQ0OCAzMmwtMTE4Ljc1IDY5LjcxIDExLjUyLTU4LjktOTEuMDYgNjkuODdjLTguNS0xLjUyLTE3LjEtMi4yOS0yNS43MS0yLjI5cy0xNy4yMS43OC0yNS43MSAyLjI5bC05MS4wNi02OS44NyAxMS41MiA1OC45TDAgMzJ6bTIyNCA5OS43OGMzMS44IDAgNjMuNiAxMi4xMiA4Ny44NSAzNi4zNyA0OC41IDQ4LjUgNDguNDkgMTI3LjIxIDAgMTc1LjdzLTEyNy4yIDQ4LjQ2LTE3NS43LS4wM2MtNDguNS00OC41LTQ4LjQ5LTEyNy4yMSAwLTE3NS43IDI0LjI0LTI0LjI1IDU2LjA1LTM2LjM0IDg3Ljg1LTM2LjM0em0wIDM2LjY2Yy0yMi40MiAwLTQ0LjgzIDguNTItNjEuOTIgMjUuNjEtMzQuMTggMzQuMTgtMzQuMTkgODkuNjggMCAxMjMuODdzODkuNjUgMzQuMTggMTIzLjg0IDBjMzQuMTgtMzQuMTggMzQuMTktODkuNjggMC0xMjMuODctMTcuMDktMTcuMDktMzkuNS0yNS42MS02MS45Mi0yNS42MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa2V0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcuNSAxNjIuMkw5IDE4Ny4xaDkwLjVsNi45LTEzMC43LTc4LjkgMTA1Ljh6TTM5Ni4zIDQ1LjdMMjY3LjcgMzJsMTM1LjcgMTQ3LjItNy4xLTEzMy41ek0xMTIuMiAyMTguM2wtMTEuMi0yMkg5LjlMMjM0LjggNDU4em0yLTMxLjJoMjg0bC04MS41LTg4LjVMMjU2LjMgMzN6bTI5Ny4zIDkuMUwyNzcuNiA0NThsMjI0LjgtMjYxLjdoLTkwLjl6TTQxNS40IDY5TDQwNiA1Ni40bC45IDE3LjMgNi4xIDExMy40aDkwLjN6TTExMy41IDkzLjVsLTQuNiA4NS42TDI0NC43IDMyIDExNi4xIDQ1Ljd6bTI4Ny43IDEwMi43aC0yOTBsNDIuNCA4Mi45TDI1Ni4zIDQ4MGwxNDQuOS0yODMuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa3lhdGxhcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMzI5LjNjMCA2NS45LTUyLjUgMTE0LjQtMTE3LjUgMTE0LjQtMTY1LjkgMC0xOTYuNi0yNDkuNy0zNTkuNy0yNDkuNy0xNDYuOSAwLTE0Ny4xIDIxMi4yIDUuNiAyMTIuMiA0Mi41IDAgOTAuOS0xNy44IDEyNS4zLTQyLjUgNS42LTQuMSAxNi45LTE2LjMgMjIuOC0xNi4zczEwLjkgNSAxMC45IDEwLjljMCA3LjgtMTMuMSAxOS4xLTE4LjcgMjQuMS00MC45IDM1LjYtMTAwLjMgNjEuMi0xNTQuNyA2MS4yLTgzLjQuMS0xNTQtNTktMTU0LTE0NC45czY3LjUtMTQ5LjEgMTUyLjgtMTQ5LjFjMTg1LjMgMCAyMjIuNSAyNDUuOSAzNjEuOSAyNDUuOSA5OS45IDAgOTQuOC0xMzkuNyAzLjQtMTM5LjctMTcuNSAwLTM1IDExLjYtNDYuOSAxMS42LTguNCAwLTE1LjktNy4yLTE1LjktMTUuNiAwLTExLjYgNS4zLTIzLjcgNS4zLTM2LjMgMC02Ni42LTUwLjktMTE0LjctMTE2LjktMTE0LjctNTMuMSAwLTgwIDM2LjktODguOCAzNi45LTYuMiAwLTExLjItNS0xMS4yLTExLjIgMC01LjYgNC4xLTEwLjMgNy44LTE0LjQgMjUuMy0yOC44IDY0LjctNDMuNyAxMDIuOC00My43IDc5LjQgMCAxMzkuMSA1OC40IDEzOS4xIDEzNy44IDAgNi45LS4zIDEzLjctMS4yIDIwLjYgMTEuOS0zLjEgMjQuMS00LjcgMzUuOS00LjcgNjAuNyAwIDExMS45IDQ1LjMgMTExLjkgMTA3LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t5cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjcgMjk5LjhjMi45LTE0IDQuNy0yOC45IDQuNy00My44IDAtMTEzLjUtOTEuOS0yMDUuMy0yMDUuMy0yMDUuMy0xNC45IDAtMjkuNyAxLjctNDMuOCA0LjdDMTYxLjMgNDAuNyAxMzcuNyAzMiAxMTIgMzIgNTAuMiAzMiAwIDgyLjIgMCAxNDRjMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6bS0xOTQuNiA5MS41Yy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGFja0hhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjIgMjcwLjRjLTYuMi0xOS0yNi45LTI5LjEtNDYtMjIuOWwtNDUuNCAxNS4xLTMwLjMtOTAgNDUuNC0xNS4xYzE5LjEtNi4yIDI5LjEtMjYuOCAyMy00NS45LTYuMi0xOS0yNi45LTI5LjEtNDYtMjIuOWwtNDUuNCAxNS4xLTE1LjctNDdjLTYuMi0xOS0yNi45LTI5LjEtNDYtMjIuOS0xOS4xIDYuMi0yOS4xIDI2LjgtMjMgNDUuOWwxNS43IDQ3LTkzLjQgMzEuMi0xNS43LTQ3Yy02LjItMTktMjYuOS0yOS4xLTQ2LTIyLjktMTkuMSA2LjItMjkuMSAyNi44LTIzIDQ1LjlsMTUuNyA0Ny00NS4zIDE1Yy0xOS4xIDYuMi0yOS4xIDI2LjgtMjMgNDUuOSA1IDE0LjUgMTkuMSAyNCAzMy42IDI0LjYgNi44IDEgMTItMS42IDU3LjctMTYuOGwzMC4zIDkwTDc4IDM1NC44Yy0xOSA2LjItMjkuMSAyNi45LTIzIDQ1LjkgNSAxNC41IDE5LjEgMjQgMzMuNiAyNC42IDYuOCAxIDEyLTEuNiA1Ny43LTE2LjhsMTUuNyA0N2M1LjkgMTYuOSAyNC43IDI5IDQ2IDIyLjkgMTkuMS02LjIgMjkuMS0yNi44IDIzLTQ1LjlsLTE1LjctNDcgOTMuNi0zMS4zIDE1LjcgNDdjNS45IDE2LjkgMjQuNyAyOSA0NiAyMi45IDE5LjEtNi4yIDI5LjEtMjYuOCAyMy00NS45bC0xNS43LTQ3IDQ1LjQtMTUuMWMxOS02IDI5LjEtMjYuNyAyMi45LTQ1Ljd6bS0yNTQuMSA0Ny4ybC0zMC4zLTkwLjIgOTMuNS0zMS4zIDMwLjMgOTAuMi05My41IDMxLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTQuMTIgMzE1LjFjMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2UzAgMzQxIDAgMzE1LjFjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2aDQ3LjA2djQ3LjA2em0yMy43MiAwYzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNnM0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnYxMTcuODRjMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2cy00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNlYzMTUuMXptNDcuMDYtMTg4Ljk4Yy0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDZTMTM5IDMyIDE2NC45IDMyczQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2djQ3LjA2SDE2NC45em0wIDIzLjcyYzI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnMtMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZINDcuMDZDMjEuMTYgMjQzLjk2IDAgMjIyLjggMCAxOTYuOXMyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNkgxNjQuOXptMTg4Ljk4IDQ3LjA2YzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNiAyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZzLTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2aC00Ny4wNlYxOTYuOXptLTIzLjcyIDBjMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2LTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNlY3OS4wNmMwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDYgMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2VjE5Ni45ek0yODMuMSAzODUuODhjMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2IDAgMjUuOS0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNi0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDZ2LTQ3LjA2aDQ3LjA2em0wLTIzLjcyYy0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDYgMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2aDExNy44NGMyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDYgMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2SDI4My4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsaWRlc2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg3LjcgMTUzLjdjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuN3M2MS43LTI2IDYxLjctNTcuN2MwLTMyLTI3LjctNTcuNy02MS43LTU3Ljd6bTE0My40IDBjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuNyAzNC4zIDAgNjEuNy0yNiA2MS43LTU3LjcuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjNWNDkuN2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdINzYuNmMtMjUuNCAwLTQ2IDIyLjMtNDYgNDkuN1YyNDhjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3MkM1OC4zIDUyNS4xIDI1MiA1NTUuNyAyNDguOSA0NTcuNWMwLS43LjMtNTYuNi4zLTk2LjYgNS4xIDEuMSA5LjQgMi4zIDEzLjcgMy4xIDAgMzkuNy4zIDkyLjguMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhWNzIuM2MwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43aDMxNy43YzMwLjMgMCA0MC45IDEyLjkgNDAuOSA0NS43djE5MC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNuYXBjaGF0R2hvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjg0NiAzOTIuNjczYy01LjIxMSAxMi4xNTctMjcuMjM5IDIxLjA4OS02Ny4zNiAyNy4zMTgtMi4wNjQgMi43ODYtMy43NzUgMTQuNjg2LTYuNTA3IDIzLjk1Ni0xLjYyNSA1LjU2Ni01LjYyMyA4Ljg2OS0xMi4xMjggOC44NjlsLS4yOTctLjAwNWMtOS4zOTUgMC0xOS4yMDMtNC4zMjMtMzguODUyLTQuMzIzLTI2LjUyMSAwLTM1LjY2MiA2LjA0My01Ni4yNTQgMjAuNTg4LTIxLjgzMiAxNS40MzgtNDIuNzcxIDI4Ljc2NC03NC4wMjcgMjcuMzk5LTMxLjY0NiAyLjMzNC01OC4wMjUtMTYuOTA4LTcyLjg3MS0yNy40MDQtMjAuNzE0LTE0LjY0My0yOS44MjgtMjAuNTgyLTU2LjI0MS0yMC41ODItMTguODY0IDAtMzAuNzM2IDQuNzItMzguODUyIDQuNzItOC4wNzMgMC0xMS4yMTMtNC45MjItMTIuNDIyLTkuMDQtMi43MDMtOS4xODktNC40MDQtMjEuMjYzLTYuNTIzLTI0LjEzLTIwLjY3OS0zLjIwOS02Ny4zMS0xMS4zNDQtNjguNDk4LTMyLjE1YTEwLjYyNyAxMC42MjcgMCAwIDEgOC44NzctMTEuMDY5YzY5LjU4My0xMS40NTUgMTAwLjkyNC04Mi45MDEgMTAyLjIyNy04NS45MzQuMDc0LS4xNzYuMTU1LS4zNDQuMjM3LS41MTUgMy43MTMtNy41MzcgNC41NDQtMTMuODQ5IDIuNDYzLTE4Ljc1My01LjA1LTExLjg5Ni0yNi44NzItMTYuMTY0LTM2LjA1My0xOS43OTYtMjMuNzE1LTkuMzY2LTI3LjAxNS0yMC4xMjgtMjUuNjEyLTI3LjUwNCAyLjQzNy0xMi44MzYgMjEuNzI1LTIwLjczNSAzMy4wMDItMTUuNDUzIDguOTE5IDQuMTgxIDE2Ljg0MyA2LjI5NyAyMy41NDcgNi4yOTcgNS4wMjIgMCA4LjIxMi0xLjIwNCA5Ljk2LTIuMTcxLTIuMDQzLTM1LjkzNi03LjEwMS04Ny4yOSA1LjY4Ny0xMTUuOTY5QzE1OC4xMjIgMjEuMzA0IDIyOS43MDUgMTUuNDIgMjUwLjgyNiAxNS40MmMuOTQ0IDAgOS4xNDEtLjA4OSAxMC4xMS0uMDg5IDUyLjE0OCAwIDEwMi4yNTQgMjYuNzggMTI2LjcyMyA4MS42NDMgMTIuNzc3IDI4LjY1IDcuNzQ5IDc5Ljc5MiA1LjY5NSAxMTYuMDA5IDEuNTgyLjg3MiA0LjM1NyAxLjk0MiA4LjU5OSAyLjEzOSA2LjM5Ny0uMjg2IDEzLjgxNS0yLjM4OSAyMi4wNjktNi4yNTcgNi4wODUtMi44NDYgMTQuNDA2LTIuNDYxIDIwLjQ4LjA1OGwuMDI5LjAxYzkuNDc2IDMuMzg1IDE1LjQzOSAxMC4yMTUgMTUuNTg5IDE3Ljg3LjE4NCA5Ljc0Ny04LjUyMiAxOC4xNjUtMjUuODc4IDI1LjAxOC0yLjExOC44MzUtNC42OTQgMS42NTUtNy40MzQgMi41MjUtOS43OTcgMy4xMDYtMjQuNiA3LjgwNS0yOC42MTYgMTcuMjcxLTIuMDc5IDQuOTA0LTEuMjU2IDExLjIxMSAyLjQ2IDE4Ljc0OC4wODcuMTY4LjE2Ni4zNDIuMjM5LjUxNSAxLjMwMSAzLjAzIDMyLjYxNSA3NC40NiAxMDIuMjMgODUuOTM0IDYuNDI3IDEuMDU4IDExLjE2MyA3Ljg3NyA3LjcyNSAxNS44NTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25hcGNoYXRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTYuNSAzMTQuOWMtMy41IDguMS0xOC4xIDE0LTQ0LjggMTguMi0xLjQgMS45LTIuNSA5LjgtNC4zIDE1LjktMS4xIDMuNy0zLjcgNS45LTguMSA1LjloLS4yYy02LjIgMC0xMi44LTIuOS0yNS44LTIuOS0xNy42IDAtMjMuNyA0LTM3LjQgMTMuNy0xNC41IDEwLjMtMjguNCAxOS4xLTQ5LjIgMTguMi0yMSAxLjYtMzguNi0xMS4yLTQ4LjUtMTguMi0xMy44LTkuNy0xOS44LTEzLjctMzcuNC0xMy43LTEyLjUgMC0yMC40IDMuMS0yNS44IDMuMS01LjQgMC03LjUtMy4zLTguMy02LTEuOC02LjEtMi45LTE0LjEtNC4zLTE2LTEzLjgtMi4xLTQ0LjgtNy41LTQ1LjUtMjEuNC0uMi0zLjYgMi4zLTYuOCA1LjktNy40IDQ2LjMtNy42IDY3LjEtNTUuMSA2OC01Ny4xIDAtLjEuMS0uMi4yLS4zIDIuNS01IDMtOS4yIDEuNi0xMi41LTMuNC03LjktMTcuOS0xMC43LTI0LTEzLjItMTUuOC02LjItMTgtMTMuNC0xNy0xOC4zIDEuNi04LjUgMTQuNC0xMy44IDIxLjktMTAuMyA1LjkgMi44IDExLjIgNC4yIDE1LjcgNC4yIDMuMyAwIDUuNS0uOCA2LjYtMS40LTEuNC0yMy45LTQuNy01OCAzLjgtNzcuMUMxNTkuMSAxMDAgMjA2LjcgOTYgMjIwLjcgOTZjLjYgMCA2LjEtLjEgNi43LS4xIDM0LjcgMCA2OCAxNy44IDg0LjMgNTQuMyA4LjUgMTkuMSA1LjIgNTMuMSAzLjggNzcuMSAxLjEuNiAyLjkgMS4zIDUuNyAxLjQgNC4zLS4yIDkuMi0xLjYgMTQuNy00LjIgNC0xLjkgOS42LTEuNiAxMy42IDAgNi4zIDIuMyAxMC4zIDYuOCAxMC40IDExLjkuMSA2LjUtNS43IDEyLjEtMTcuMiAxNi42LTEuNC42LTMuMSAxLjEtNC45IDEuNy02LjUgMi4xLTE2LjQgNS4yLTE5IDExLjUtMS40IDMuMy0uOCA3LjUgMS42IDEyLjUuMS4xLjEuMi4yLjMuOSAyIDIxLjcgNDkuNSA2OCA1Ny4xIDQgMSA3LjEgNS41IDQuOSAxMC44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNuYXBjaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE2OS41IDMzOC45Yy0zLjUgOC4xLTE4LjEgMTQtNDQuOCAxOC4yLTEuNCAxLjktMi41IDkuOC00LjMgMTUuOS0xLjEgMy43LTMuNyA1LjktOC4xIDUuOWgtLjJjLTYuMiAwLTEyLjgtMi45LTI1LjgtMi45LTE3LjYgMC0yMy43IDQtMzcuNCAxMy43LTE0LjUgMTAuMy0yOC40IDE5LjEtNDkuMiAxOC4yLTIxIDEuNi0zOC42LTExLjItNDguNS0xOC4yLTEzLjgtOS43LTE5LjgtMTMuNy0zNy40LTEzLjctMTIuNSAwLTIwLjQgMy4xLTI1LjggMy4xLTUuNCAwLTcuNS0zLjMtOC4zLTYtMS44LTYuMS0yLjktMTQuMS00LjMtMTYtMTMuOC0yLjEtNDQuOC03LjUtNDUuNS0yMS40LS4yLTMuNiAyLjMtNi44IDUuOS03LjQgNDYuMy03LjYgNjcuMS01NS4xIDY4LTU3LjEgMC0uMS4xLS4yLjItLjMgMi41LTUgMy05LjIgMS42LTEyLjUtMy40LTcuOS0xNy45LTEwLjctMjQtMTMuMi0xNS44LTYuMi0xOC0xMy40LTE3LTE4LjMgMS42LTguNSAxNC40LTEzLjggMjEuOS0xMC4zIDUuOSAyLjggMTEuMiA0LjIgMTUuNyA0LjIgMy4zIDAgNS41LS44IDYuNi0xLjQtMS40LTIzLjktNC43LTU4IDMuOC03Ny4xQzE4My4xIDEwMCAyMzAuNyA5NiAyNDQuNyA5NmMuNiAwIDYuMS0uMSA2LjctLjEgMzQuNyAwIDY4IDE3LjggODQuMyA1NC4zIDguNSAxOS4xIDUuMiA1My4xIDMuOCA3Ny4xIDEuMS42IDIuOSAxLjMgNS43IDEuNCA0LjMtLjIgOS4yLTEuNiAxNC43LTQuMiA0LTEuOSA5LjYtMS42IDEzLjYgMCA2LjMgMi4zIDEwLjMgNi44IDEwLjQgMTEuOS4xIDYuNS01LjcgMTIuMS0xNy4yIDE2LjYtMS40LjYtMy4xIDEuMS00LjkgMS43LTYuNSAyLjEtMTYuNCA1LjItMTkgMTEuNS0xLjQgMy4zLS44IDcuNSAxLjYgMTIuNS4xLjEuMS4yLjIuMy45IDIgMjEuNyA0OS41IDY4IDU3LjEgNCAxIDcuMSA1LjUgNC45IDEwLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU291bmRjbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTEuNCAyNTYuM2w1LjggNjUtNS44IDY4LjNjLS4zIDIuNS0yLjIgNC40LTQuNCA0LjRzLTQuMi0xLjktNC4yLTQuNGwtNS42LTY4LjMgNS42LTY1YzAtMi4yIDEuOS00LjIgNC4yLTQuMiAyLjIgMCA0LjEgMiA0LjQgNC4yem0yMS40LTQ1LjZjLTIuOCAwLTQuNyAyLjItNSA1bC01IDEwNS42IDUgNjguM2MuMyAyLjggMi4yIDUgNSA1IDIuNSAwIDQuNy0yLjIgNC43LTVsNS44LTY4LjMtNS44LTEwNS42YzAtMi44LTIuMi01LTQuNy01em0yNS41LTI0LjFjLTMuMSAwLTUuMyAyLjItNS42IDUuM2wtNC40IDEzMCA0LjQgNjcuOGMuMyAzLjEgMi41IDUuMyA1LjYgNS4zIDIuOCAwIDUuMy0yLjIgNS4zLTUuM2w1LjMtNjcuOC01LjMtMTMwYzAtMy4xLTIuNS01LjMtNS4zLTUuM3pNNy4yIDI4My4yYy0xLjQgMC0yLjIgMS4xLTIuNSAyLjVMMCAzMjEuM2w0LjcgMzVjLjMgMS40IDEuMSAyLjUgMi41IDIuNXMyLjItMS4xIDIuNS0yLjVsNS42LTM1LTUuNi0zNS42Yy0uMy0xLjQtMS4xLTIuNS0yLjUtMi41em0yMy42LTIxLjljLTEuNCAwLTIuNSAxLjEtMi41IDIuNWwtNi40IDU3LjUgNi40IDU2LjFjMCAxLjcgMS4xIDIuOCAyLjUgMi44czIuNS0xLjEgMi44LTIuNWw3LjItNTYuNC03LjItNTcuNWMtLjMtMS40LTEuNC0yLjUtMi44LTIuNXptMjUuMy0xMS40Yy0xLjcgMC0zLjEgMS40LTMuMyAzLjNMNDcgMzIxLjNsNS44IDY1LjhjLjMgMS43IDEuNyAzLjEgMy4zIDMuMSAxLjcgMCAzLjEtMS40IDMuMS0zLjFsNi45LTY1LjgtNi45LTY4LjFjMC0xLjktMS40LTMuMy0zLjEtMy4zem0yNS4zLTIuMmMtMS45IDAtMy42IDEuNC0zLjYgMy42bC01LjggNzAgNS44IDY3LjhjMCAyLjIgMS43IDMuNiAzLjYgMy42czMuNi0xLjQgMy45LTMuNmw2LjQtNjcuOC02LjQtNzBjLS4zLTIuMi0yLTMuNi0zLjktMy42em0yNDEuNC0xMTAuOWMtMS4xLS44LTIuOC0xLjQtNC4yLTEuNC0yLjIgMC00LjIuOC01LjYgMS45LTEuOSAxLjctMy4xIDQuMi0zLjMgNi43di44bC0zLjMgMTc2LjcgMS43IDMyLjUgMS43IDMxLjdjLjMgNC43IDQuMiA4LjYgOC45IDguNnM4LjYtMy45IDguNi04LjZsMy45LTY0LjItMy45LTE3Ny41Yy0uNC0zLTItNS44LTQuNS03LjJ6bS0yNi43IDE1LjNjLTEuNC0uOC0yLjgtMS40LTQuNC0xLjRzLTMuMS42LTQuNCAxLjRjLTIuMiAxLjQtMy42IDMuOS0zLjYgNi43bC0uMyAxLjctMi44IDE2MC44czAgLjMgMy4xIDY1LjZ2LjNjMCAxLjcuNiAzLjMgMS43IDQuNyAxLjcgMS45IDMuOSAzLjEgNi40IDMuMSAyLjIgMCA0LjItMS4xIDUuNi0yLjUgMS43LTEuNCAyLjUtMy4zIDIuNS01LjZsLjMtNi43IDMuMS01OC42LTMuMy0xNjIuOGMtLjMtMi44LTEuNy01LjMtMy45LTYuN3ptLTExMS40IDIyLjVjLTMuMSAwLTUuOCAyLjgtNS44IDYuMWwtNC40IDE0MC42IDQuNCA2Ny4yYy4zIDMuMyAyLjggNS44IDUuOCA1LjggMy4zIDAgNS44LTIuNSA2LjEtNS44bDUtNjcuMi01LTE0MC42Yy0uMi0zLjMtMi43LTYuMS02LjEtNi4xem0zNzYuNyA2Mi44Yy0xMC44IDAtMjEuMSAyLjItMzAuNiA2LjEtNi40LTcwLjgtNjUuOC0xMjYuNC0xMzguMy0xMjYuNC0xNy44IDAtMzUgMy4zLTUwLjMgOS40LTYuMSAyLjItNy44IDQuNC03LjggOS4ydjI0OS43YzAgNSAzLjkgOC42IDguNiA5LjJoMjE4LjNjNDMuMyAwIDc4LjYtMzUgNzguNi03OC4zLjEtNDMuNi0zNS4yLTc4LjktNzguNS03OC45em0tMjk2LjctNjAuM2MtNC4yIDAtNy41IDMuMy03LjggNy44bC0zLjMgMTM2LjcgMy4zIDY1LjZjLjMgNC4yIDMuNiA3LjUgNy44IDcuNSA0LjIgMCA3LjUtMy4zIDcuNS03LjVsMy45LTY1LjYtMy45LTEzNi43Yy0uMy00LjUtMy4zLTcuOC03LjUtNy44em0tNTMuNi03LjhjLTMuMyAwLTYuNCAzLjEtNi40IDYuN2wtMy45IDE0NS4zIDMuOSA2Ni45Yy4zIDMuNiAzLjEgNi40IDYuNCA2LjQgMy42IDAgNi40LTIuOCA2LjctNi40bDQuNC02Ni45LTQuNC0xNDUuM2MtLjMtMy42LTMuMS02LjctNi43LTYuN3ptMjYuNyAzLjRjLTMuOSAwLTYuOSAzLjEtNi45IDYuOUwyMjcgMzIxLjNsMy45IDY2LjRjLjMgMy45IDMuMSA2LjkgNi45IDYuOXM2LjktMy4xIDYuOS02LjlsNC4yLTY2LjQtNC4yLTE0MS43YzAtMy45LTMtNi45LTYuOS02Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU291cmNldHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjcuMiAyMDNjMC0xMTIuMS05MC45LTIwMy0yMDMtMjAzQzExMi4xLS4yIDIxLjIgOTAuNiAyMSAyMDIuNkEyMDIuODYgMjAyLjg2IDAgMCAwIDE2MS41IDM5NnYxMDEuN2ExNC4zIDE0LjMgMCAwIDAgMTQuMyAxNC4zaDk2LjRhMTQuMyAxNC4zIDAgMCAwIDE0LjMtMTQuM1YzOTYuMUEyMDMuMTggMjAzLjE4IDAgMCAwIDQyNy4yIDIwM3ptLTI3MS42IDBjMC05MC44IDEzNy4zLTkwLjggMTM3LjMgMC0uMSA4OS45LTEzNy4zIDkxLTEzNy4zIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BlYWthcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzOTEuNzhDLTE1LjQxIDMwMy41OS04IDE2Ny40MiA4MC42NCA4Ny42NHMyMjQuOC03MyAzMDQuMjEgMTUuMjQgNzIgMjI0LjM2LTE2LjY0IDMwNC4xNGMtMTguNzQgMTYuODcgNjQgNDMuMDkgNDIgNTIuMjYtODIuMDYgMzQuMjEtMjUzLjkxIDM1LTM0Ni4yMy02Ny41em0yMTMuMzEtMjExLjZsMzguNS00MC44NmMtOS42MS04Ljg5LTMyLTI2LjgzLTc2LjE3LTI3LjYtNTIuMzMtLjkxLTk1Ljg2IDI4LjMtOTYuNzcgODAtLjIgMTEuMzMuMjkgMzYuNzIgMjkuNDIgNTQuODMgMzQuNDYgMjEuNDIgODYuNTIgMjEuNTEgODYgNTIuMjYtLjM3IDIxLjI4LTI2LjQyIDI1LjgxLTM4LjU5IDI1LjYtMy0uMDUtMzAuMjMtLjQ2LTQ3LjYxLTI0LjYybC00MCA0Mi42MWMyOC4xNiAyNyA1OSAzMi42MiA4My40OSAzMy4wNSAxMC4yMy4xOCA5Ni40Mi4zMyA5Ny44NC04MSAuMjgtMTUuODEtMi4wNy0zOS43Mi0yOC44Ni01Ni41OS0zNC4zNi0yMS42NC04NS0xOS40NS04NC40My00OS43NS40MS0yMy4yNSAzMS0yNS4zNyAzNy41My0yNS4yNi40MyAwIDI2LjYyLjI2IDM5LjYyIDE3LjM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwZWFrZXJEZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMy44NiAyOTZIMTAwYTEwMCAxMDAgMCAwIDEgMC0yMDBoMTMyLjg0YTQwIDQwIDAgMCAxIDAgODBIOThjLTI2LjQ3IDAtMjYuNDUgNDAgMCA0MGgxMTMuODJhMTAwIDEwMCAwIDAgMSAwIDIwMEg0MGE0MCA0MCAwIDAgMSAwLTgwaDE3My44NmMyNi40OCAwIDI2LjQ2LTQwIDAtNDB6TTI5OCA0MTZhMTIwLjIxIDEyMC4yMSAwIDAgMCA1MS4xMS04MGg2NC41NWExOS44MyAxOS44MyAwIDAgMCAxOS42Ni0yMFYxOTZhMTkuODMgMTkuODMgMCAwIDAtMTkuNjYtMjBIMjk2LjQyYTYwLjc3IDYwLjc3IDAgMCAwIDAtODBoMTM2LjkzYzQzLjQ0IDAgNzguNjUgMzUuODIgNzguNjUgODB2MTYwYzAgNDQuMTgtMzUuMjEgODAtNzguNjUgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BvdGlmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMSA4IDAgMTE5LjEgMCAyNTZzMTExLjEgMjQ4IDI0OCAyNDggMjQ4LTExMS4xIDI0OC0yNDhTMzg0LjkgOCAyNDggOHptMTAwLjcgMzY0LjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZXNwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xMiAzNDMuMzRjLTkuNjUgOS42NS05LjY1IDI1LjI5IDAgMzQuOTQgOS42NSA5LjY1IDI1LjI5IDkuNjUgMzQuOTQgMEwzNzguMjQgMjIxLjFjMTkuMjktMTkuMjkgNTAuNTctMTkuMjkgNjkuODYgMHMxOS4yOSA1MC41NyAwIDY5Ljg2TDI5My45NSA0NDUuMWMxOS4yNyAxOS4yOSA1MC41MyAxOS4zMSA2OS44Mi4wNGwuMDQtLjA0IDExOS4yNS0xMTkuMjRjMzguNTktMzguNTkgMzguNTktMTAxLjE0IDAtMTM5LjcyLTM4LjU5LTM4LjU5LTEwMS4xNS0zOC41OS0xMzkuNzIgMGwtMTU3LjIyIDE1Ny4yem0yNDQuNTMtMTA0LjhjLTkuNjUtOS42NS0yNS4yOS05LjY1LTM0LjkzIDBsLTE1Ny4yIDE1Ny4xOGMtMTkuMjcgMTkuMjktNTAuNTMgMTkuMzEtNjkuODIuMDVsLS4wNS0uMDVjLTkuNjQtOS42NC0yNS4yNy05LjY1LTM0LjkyLS4wMWwtLjAxLjAxYy05LjY1IDkuNjQtOS42NiAyNS4yOC0uMDIgMzQuOTNsLjAyLjAyYzM4LjU4IDM4LjU3IDEwMS4xNCAzOC41NyAxMzkuNzIgMGwxNTcuMi0xNTcuMmM5LjY1LTkuNjUgOS42NS0yNS4yOS4wMS0zNC45M3ptLTI2MS45OSA4Ny4zM2wxNTcuMTgtMTU3LjE4YzkuNjQtOS42NSA5LjY0LTI1LjI5IDAtMzQuOTQtOS42NC05LjY0LTI1LjI3LTkuNjQtMzQuOTEgMEwxMzMuNzIgMjkwLjkzYy0xOS4yOCAxOS4yOS01MC41NiAxOS4zLTY5Ljg1LjAxbC0uMDEtLjAxYy0xOS4yOS0xOS4yOC0xOS4zMS01MC41NC0uMDMtNjkuODRsLjAzLS4wM0wyMTguMDMgNjYuODljLTE5LjI4LTE5LjI5LTUwLjU1LTE5LjMtNjkuODUtLjAybC0uMDIuMDJMMjguOTMgMTg2LjE0Yy0zOC41OCAzOC41OS0zOC41OCAxMDEuMTQgMCAxMzkuNzIgMzguNiAzOC41OSAxMDEuMTMgMzguNTkgMTM5LjczLjAxem0tODcuMzMtNTIuNGM5LjY0IDkuNjQgMjUuMjcgOS42NCAzNC45MSAwbDE1Ny4yMS0xNTcuMTljMTkuMjgtMTkuMjkgNTAuNTUtMTkuMyA2OS44NC0uMDJsLjAyLjAyYzkuNjUgOS42NSAyNS4yOSA5LjY1IDM0LjkzIDAgOS42NS05LjY1IDkuNjUtMjUuMjkgMC0zNC45My0zOC41OS0zOC41OS0xMDEuMTMtMzguNTktMTM5LjcyIDBMODEuMzMgMjM4LjU0Yy05LjY1IDkuNjQtOS42NSAyNS4yOC0uMDEgMzQuOTNoLjAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrRXhjaGFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNyAzMzIuM2g0MTIuN3YyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4aC0xOUwyNTkuMyA1MTJ2LTg5LjdIODNjLTM2IDAtNjUuMy0zMC4zLTY1LjMtNjh2LTIyem0wLTIzLjZoNDEyLjd2LTg1SDE3Ljd2ODV6bTAtMTA5LjRoNDEyLjd2LTg1SDE3Ljd2ODV6TTM2NSAwSDgzQzQ3IDAgMTcuNyAzMC4zIDE3LjcgNjcuN1Y5MGg0MTIuN1Y2Ny43QzQzMC4zIDMwLjMgNDAxIDAgMzY1IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhY2tPdmVyZmxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTAuNyAzMTFMOTUgMjY5LjcgODYuOCAzMDlsMTk1LjcgNDF6bTUxLTg3TDE4OC4yIDk1LjdsLTI1LjUgMzAuOCAxNTMuNSAxMjguM3ptLTMxLjIgMzkuN0wxMjkuMiAxNzlsLTE2LjcgMzYuNUwyOTMuNyAzMDB6TTI2MiAzMmwtMzIgMjQgMTE5LjMgMTYwLjMgMzItMjR6bTIwLjUgMzI4aC0yMDB2MzkuN2gyMDB6bTM5LjcgODBINDIuN1YzMjBoLTQwdjE2MGgzNTkuNVYzMjBoLTQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrcGF0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDQuNiAyMzIuNGMwIDguNS00LjI2IDIwLjQ5LTIxLjM0IDIwLjQ5aC0xOS42MXYtNDEuNDdoMTkuNjFjMTcuMTMgMCAyMS4zNCAxMi4zNiAyMS4zNCAyMC45OHpNNDQ4IDMydjQ0OEgwVjMyek0xNTEuMyAyODcuODRjMC0yMS4yNC0xMi4xMi0zNC41NC00Ni43Mi00NC44NS0yMC41Ny03LjQxLTI2LTEwLjkxLTI2LTE4LjYzczctMTQuNjEgMjAuNDEtMTQuNjFjMTQuMDkgMCAyMC43OSA4LjQ1IDIwLjc5IDE4LjM1aDMwLjdsLjE5LS41N2MuNS0xOS41Ny0xNS4wNi00MS42NS01MS4xMi00MS42NS0yMy4zNyAwLTUyLjU1IDEwLjc1LTUyLjU1IDM4LjI5IDAgMTkuNCA5LjI1IDMxLjI5IDUwLjc0IDQ0LjM3IDE3LjI2IDYuMTUgMjEuOTEgMTAuNCAyMS45MSAxOS40OCAwIDE1LjItMTkuMTMgMTQuMjMtMTkuNDcgMTQuMjMtMjAuNCAwLTI1LjY1LTkuMS0yNS42NS0yMS45aC0zMC44bC0uMTguNTZjLS42OCAzMS4zMiAyOC4zOCA0NS4yMiA1Ni42MyA0NS4yMiAyOS45OCAwIDUxLjEyLTEzLjU1IDUxLjEyLTM4LjI5em0xMjUuMzgtNTUuNjNjMC0yNS4zLTE4LjQzLTQ1LjQ2LTUzLjQyLTQ1LjQ2aC01MS43OHYxMzguMThoMzIuMTd2LTQ3LjM2aDE5LjYxYzMwLjI1IDAgNTMuNDItMTUuOTUgNTMuNDItNDUuMzZ6TTI5Ny45NCAzMjVMMzQ3IDE4Ni43OGgtMzEuMDlMMjY4IDMyNXptMTA2LjUyLTEzOC4yMmgtMzEuMDlMMzI1LjQ2IDMyNWgyOS45NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGF5bGlua2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Mi43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDQuMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjMuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDMuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxMSA1MTAuN3M3LjQgNi44IDE3LjMtLjhsMTk4LTE2My45YzQtMy4yIDQuNC04LjcuNy0xMi4yem01NC41LTgzLjRMMjI2LjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDMuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMuNGw1MC4yLTM4LjgtLjMtLjMgNy43LTZjNC4yLTMuMiA0LjYtOC43LjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMS4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTA5IDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkuNWwxNjAuNCAxNTljMy43IDMuNSAxMCAzLjcgMTQuMS41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcuNy0xMi4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZWFtU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4NS4yIDM1Ni41YzcuNy0xOC41LTEtMzkuNy0xOS42LTQ3LjRsLTI5LjUtMTIuMmMxMS40LTQuMyAyNC4zLTQuNSAzNi40LjUgMTIuMiA1LjEgMjEuNiAxNC42IDI2LjcgMjYuNyA1IDEyLjIgNSAyNS42LS4xIDM3LjctMTAuNSAyNS4xLTM5LjQgMzctNjQuNiAyNi41LTExLjYtNC44LTIwLjQtMTMuNi0yNS40LTI0LjJsMjguNSAxMS44YzE4LjYgNy44IDM5LjktLjkgNDcuNi0xOS40ek00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYxNjAuN2wxMTYuNiA0OC4xYzEyLTguMiAyNi4yLTEyLjEgNDAuNy0xMS4zbDU1LjQtODAuMnYtMS4xYzAtNDguMiAzOS4zLTg3LjUgODcuNi04Ny41czg3LjYgMzkuMyA4Ny42IDg3LjVjMCA0OS4yLTQwLjkgODguNy04OS42IDg3LjVsLTc5IDU2LjNjMS42IDM4LjUtMjkuMSA2OC44LTY1LjcgNjguOC0zMS44IDAtNTguNS0yMi43LTY0LjUtNTIuN0wwIDMxOS4yVjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS05OS43IDIyMi41Yy0zMi4yIDAtNTguNC0yNi4xLTU4LjQtNTguM3MyNi4yLTU4LjMgNTguNC01OC4zIDU4LjQgMjYuMiA1OC40IDU4LjMtMjYuMiA1OC4zLTU4LjQgNTguM3ptLjEtMTQuNmMyNC4yIDAgNDMuOS0xOS42IDQzLjktNDMuOCAwLTI0LjItMTkuNi00My44LTQzLjktNDMuOC0yNC4yIDAtNDMuOSAxOS42LTQzLjkgNDMuOCAwIDI0LjIgMTkuNyA0My44IDQzLjkgNDMuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVhbVN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTUuNSAxNzcuNWMwIDMzLjgtMjcuNSA2MS02MSA2MS0zMy44IDAtNjEtMjcuMy02MS02MXMyNy4zLTYxIDYxLTYxYzMzLjUgMCA2MSAyNy4yIDYxIDYxem01Mi41LjJjMCA2My01MSAxMTMuOC0xMTMuNyAxMTMuOEwyMjUgMzcxLjNjLTQgNDMtNDAuNSA3Ni44LTg0LjUgNzYuOC00MC41IDAtNzQuNy0yOC44LTgzLTY3TDAgMzU4VjI1MC43TDk3LjIgMjkwYzE1LjEtOS4yIDMyLjItMTMuMyA1Mi0xMS41bDcxLTEwMS43Yy41LTYyLjMgNTEuNS0xMTIuOCAxMTQtMTEyLjhDMzk3IDY0IDQ0OCAxMTUgNDQ4IDE3Ny43ek0yMDMgMzYzYzAtMzQuNy0yNy44LTYyLjUtNjIuNS02Mi41LTQuNSAwLTkgLjUtMTMuNSAxLjVsMjYgMTAuNWMyNS41IDEwLjIgMzggMzkgMjcuNyA2NC41LTEwLjIgMjUuNS0zOS4yIDM4LTY0LjcgMjcuNS0xMC4yLTQtMjAuNS04LjMtMzAuNy0xMi4yIDEwLjUgMTkuNyAzMS4yIDMzLjIgNTUuMiAzMy4yIDM0LjcgMCA2Mi41LTI3LjggNjIuNS02Mi41em0yMDcuNS0xODUuM2MwLTQyLTM0LjMtNzYuMi03Ni4yLTc2LjItNDIuMyAwLTc2LjUgMzQuMi03Ni41IDc2LjIgMCA0Mi4yIDM0LjMgNzYuMiA3Ni41IDc2LjIgNDEuOS4xIDc2LjItMzMuOSA3Ni4yLTc2LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDI1NmMwIDEzNy0xMTEuMiAyNDgtMjQ4LjQgMjQ4LTExMy44IDAtMjA5LjYtNzYuMy0yMzktMTgwLjRsOTUuMiAzOS4zYzYuNCAzMi4xIDM0LjkgNTYuNCA2OC45IDU2LjQgMzkuMiAwIDcxLjktMzIuNCA3MC4yLTczLjVsODQuNS02MC4yYzUyLjEgMS4zIDk1LjgtNDAuOSA5NS44LTkzLjUgMC01MS42LTQyLTkzLjUtOTMuNy05My41cy05My43IDQyLTkzLjcgOTMuNXYxLjJMMTc2LjYgMjc5Yy0xNS41LS45LTMwLjcgMy40LTQzLjUgMTIuMUwwIDIzNi4xQzEwLjIgMTA4LjQgMTE3LjEgOCAyNDcuNiA4IDM4NC44IDggNDk2IDExOSA0OTYgMjU2ek0xNTUuNyAzODQuM2wtMzAuNS0xMi42YTUyLjc5IDUyLjc5IDAgMCAwIDI3LjIgMjUuOGMyNi45IDExLjIgNTcuOC0xLjYgNjktMjguNCA1LjQtMTMgNS41LTI3LjMuMS00MC4zLTUuNC0xMy0xNS41LTIzLjItMjguNS0yOC42LTEyLjktNS40LTI2LjctNS4yLTM4LjktLjZsMzEuNSAxM2MxOS44IDguMiAyOS4yIDMwLjkgMjAuOSA1MC43LTguMyAxOS45LTMxIDI5LjItNTAuOCAyMXptMTczLjgtMTI5LjljLTM0LjQgMC02Mi40LTI4LTYyLjQtNjIuM3MyOC02Mi4zIDYyLjQtNjIuMyA2Mi40IDI4IDYyLjQgNjIuMy0yNy45IDYyLjMtNjIuNCA2Mi4zem0uMS0xNS42YzI1LjkgMCA0Ni45LTIxIDQ2LjktNDYuOCAwLTI1LjktMjEtNDYuOC00Ni45LTQ2LjhzLTQ2LjkgMjEtNDYuOSA0Ni44Yy4xIDI1LjggMjEuMSA0Ni44IDQ2LjkgNDYuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGlja2VyTXVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjEuNyAxOTkuNmMtMS4zLjMuMyAwIDAgMHptLTYuMi03Ny40Yy03LjctMjIuMy01LjEtNy4yLTEzLjQtMzYuOS0xLjYtNi41LTMuNi0xNC41LTYuMi0yMC00LjQtOC43LTQuNi03LjUtNC42LTkuNSAwLTUuMyAzMC43LTQ1LjMgMTktNDYuOS01LjctLjYtMTIuMiAxMS42LTIwLjYgMTctOC42IDQuMi04IDUtMTAuMyA1LTIuNiAwLTUuNy0zLTYuMi01LTItNS43IDEuOS0yNS45LTMuNi0yNS45LTMuNiAwLTEyLjMgMjQuOC0xNyAyNS44LTUuMiAxLjMtMjcuOS0xMS40LTc1LjEgMTgtMjUuMyAxMy4yLTg2LjkgNjUuMi04NyA2NS4zLTYuNyA0LjctMjAgNC43LTM1LjUgMTYtNDQuNCAzMC4xLTEwOS42IDkuNC0xMTAuNyA5LTExMC42LTI2LjgtMTI4LTE1LjItMTU5IDExLjUtMjAuOCAxNy45LTIzLjcgMzYuNS0yNC4yIDM4LjktNC4yIDIwLjQgNS4yIDQ4LjMgNi43IDY0LjMgMS44IDE5LjMtMi43IDE3LjcgNy43IDk4LjMuNSAxIDQuMSAwIDUuMSAxLjUgMCA4LjQtMy44IDEyLjEtNC4xIDEzLTEuNSA0LjUtMS41IDEwLjUgMCAxNiAyLjMgOC4yIDguMiAzNy4yIDguMiA0Ni45IDAgNDEuOC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUuNSAyIDMuNiA0IDYuMiA1IDkuMiAzLjYgMjcgLjMgMjkuOS0yLjUgMS42LTEuNS41LTQuNSAzLjEtNSA1LjEgMCAxMC44LS41IDE0LjQtMi41IDUuMS0yLjUgNC4xLTYgMS41LTEwLjUtLjQtLjgtNy0xMy4zLTkuOC0xNi0yLjEtMi01LjEtMy03LjItNC41LTUuOC00LjktMTAuMy0xOS40LTEwLjMtMTkuNS00LjYtMTkuNC0xMC4zLTQ2LjMtNC4xLTY2LjggNC42LTE3LjIgMzkuNS04Ny43IDM5LjYtODcuOCA0LjEtNi41IDE3LTExLjUgMjcuMy03IDYgMS45IDE5LjMgMjIgNjUuNCAzMC45IDQ3LjkgOC43IDk3LjQtMiAxMTIuMi0yIDIuOCAyLTEuOSAxMy0uNSAzOC45IDAgMjYuNC0uNCAxMy43LTQuMSAyOS45LTIuMiA5LjcgMy40IDIzLjItMS41IDQ2LjktMS40IDkuOC05LjkgMzIuNy04LjIgNDMuNC41IDEgMSAyIDEuNSAzLjUuNSA0LjUgMS41IDguNSA0LjYgMTAgNy4zIDMuNiAxMi0zLjUgOS44IDExLjUtLjcgMy4xLTIuNiAxMiAxLjUgMTUgNC40IDMuNyAzMC42IDMuNCAzNi41LjUgMi42LTEuNSAxLjYtNC41IDYuNC03LjQgMS45LS45IDExLjMtLjQgMTEuMy02LjUuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYuNS01OS40IDMtMTEgNS42LTIyLjQgOC43LTMyLjQgMTEtNDIuNSAxMC4zLTUwLjYgMTYuNS02OC4zLjgtMS44IDYuNC0yMy4xIDEwLjMtMjkuOSA5LjMtMTcgMjEuNy0zMi40IDMzLjUtNDcuNCAxOC0yMi45IDM0LTQ2LjkgNTItNjkuOCA2LjEtNyA4LjItMTMuNyAxOC04IDEwLjggNS43IDIxLjYgNyAzMS45IDE3IDE0LjYgMTIuOCAxMC4yIDE4LjIgMTEuOCAyMi45IDEuNSA1IDcuNyAxMC41IDE0LjkgOS41IDEwLjQtMiAxMy0yLjUgMTMuNC0yLjUgMi42LS41IDUuNy01IDcuMi04IDMuMS01LjUgNy4yLTkgNy4yLTE2LjUgMC03LjctLjQtMi44LTIwLjYtNTIuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJhdmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU4LjQgMEw3IDI5Mmg4OS4ybDYyLjItMTE2LjFMMjIwLjEgMjkyaDg4LjV6bTE1MC4yIDI5MmwtNDMuOSA4OC4yLTQ0LjYtODguMmgtNjcuNmwxMTIuMiAyMjAgMTExLjUtMjIwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmlwZVMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU1LjMgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43VjI2LjFDMjk4LjMgNy4yIDI1MS4xIDAgMjAzLjggMCA4OC4xIDAgMTEgNjAuNCAxMSAxNjEuNGMwIDE1Ny45IDIxNi44IDEzMi4zIDIxNi44IDIwMC40IDAgMjYuNC0yMi45IDM0LjktNTQuNyAzNC45LTQ3LjIgMC0xMDguMi0xOS41LTE1Ni4xLTQ1LjV2MTI4LjVhMzk2LjA5IDM5Ni4wOSAwIDAgMCAxNTYgMzIuNGMxMTguNiAwIDIwMC4zLTUxIDIwMC4zLTE1My42IDAtMTcwLjItMjE4LTEzOS43LTIxOC0yMDMuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJpcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY1IDE0NC43bC00My4zIDkuMi0uMiAxNDIuNGMwIDI2LjMgMTkuOCA0My4zIDQ2LjEgNDMuMyAxNC42IDAgMjUuMy0yLjcgMzEuMi01Ljl2LTMzLjhjLTUuNyAyLjMtMzMuNyAxMC41LTMzLjctMTUuN1YyMjFoMzMuN3YtMzcuOGgtMzMuN3ptODkuMSA1MS42bC0yLjctMTMuMUgyMTN2MTUzLjJoNDQuM1YyMzMuM2MxMC41LTEzLjggMjguMi0xMS4xIDMzLjktOS4zdi00MC44Yy02LTIuMS0yNi43LTYtMzcuMSAxMy4xem05Mi4zLTcyLjNsLTQ0LjYgOS41djM2LjJsNDQuNi05LjV6TTQ0LjkgMjI4LjNjMC02LjkgNS44LTkuNiAxNS4xLTkuNyAxMy41IDAgMzAuNyA0LjEgNDQuMiAxMS40di00MS44Yy0xNC43LTUuOC0yOS40LTguMS00NC4xLTguMS0zNiAwLTYwIDE4LjgtNjAgNTAuMiAwIDQ5LjIgNjcuNSA0MS4yIDY3LjUgNjIuNCAwIDguMi03LjEgMTAuOS0xNyAxMC45LTE0LjcgMC0zMy43LTYuMS00OC42LTE0LjJ2NDBjMTYuNSA3LjEgMzMuMiAxMC4xIDQ4LjUgMTAuMSAzNi45IDAgNjIuMy0xNS44IDYyLjMtNDcuOCAwLTUyLjktNjcuOS00My40LTY3LjktNjMuNHpNNjQwIDI2MS42YzAtNDUuNS0yMi04MS40LTY0LjItODEuNHMtNjcuOSAzNS45LTY3LjkgODEuMWMwIDUzLjUgMzAuMyA3OC4yIDczLjUgNzguMiAyMS4yIDAgMzcuMS00LjggNDkuMi0xMS41di0zMy40Yy0xMi4xIDYuMS0yNiA5LjgtNDMuNiA5LjgtMTcuMyAwLTMyLjUtNi4xLTM0LjUtMjYuOWg4Ni45Yy4yLTIuMy42LTExLjYuNi0xNS45em0tODcuOS0xNi44YzAtMjAgMTIuMy0yOC40IDIzLjQtMjguNCAxMC45IDAgMjIuNSA4LjQgMjIuNSAyOC40em0tMTEyLjktNjQuNmMtMTcuNCAwLTI4LjYgOC4yLTM0LjggMTMuOWwtMi4zLTExSDM2M3YyMDQuOGw0NC40LTkuNC4xLTUwLjJjNi40IDQuNyAxNS45IDExLjIgMzEuNCAxMS4yIDMxLjggMCA2MC44LTIzLjIgNjAuOC03OS42LjEtNTEuNi0yOS4zLTc5LjctNjAuNS03OS43em0tMTAuNiAxMjIuNWMtMTAuNCAwLTE2LjYtMy44LTIwLjktOC40bC0uMy02NmM0LjYtNS4xIDExLTguOCAyMS4yLTguOCAxNi4yIDAgMjcuNCAxOC4yIDI3LjQgNDEuNC4xIDIzLjktMTAuOSA0MS44LTI3LjQgNDEuOHptLTEyNi43IDMzLjdoNDQuNlYxODMuMmgtNDQuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHVkaW92aW5hcmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwLjMgMTg3LjdsNC4yIDI4djI4bC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42YzIuMSAwIDIwLjMuNyAyMC4zLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjlMMTMzLjUgMTA4IDMyLjIgMGwyNTIuOSAxMjYuNi0zMS41LTM4TDM3OCAxNjMgMjM0LjcgNjRsMTguNyAzOC40LTQ5LjYtMTguMUwxNTguMyAwbDE5NC42IDEyMkwzMTAgNjYuMmwxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOEw0NTEgODkuMWwyOS4yIDI0LjcgMTEuNSA0LjItNyA2LjIgOC41IDEyLTEzLjEgNy40LTEwLjMgMjAuMiAxMC41IDIzLjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1bWJsZXVwb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCAxNzcuNWMtOS44IDAtMTcuOCA4LTE3LjggMTcuOHYxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOXYtNDYuNWg1Ny4zdjQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOFYyMDAuMWMwLTQwIDM0LjItNzIuMSA3NC43LTcyLjEgNDAuNyAwIDc0LjcgMzIuMyA3NC43IDcyLjZ2MjMuN2wtMzQuMSAxMC4xLTIyLjktMTAuN3YtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42em0xNjcuNiAxMjMuNmMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMlYyNjNsMjIuOSAxMC43IDM0LjEtMTAuMXY0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42di00OGg1Ny4zYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHVtYmxldXBvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuOSAyNjZ2NjkuN2MwIDYyLjEtNTAuMyAxMTIuNC0xMTIuNCAxMTIuNC02MS44IDAtMTEyLjQtNDkuOC0xMTIuNC0xMTEuM3YtNzAuMmwzNC4zIDE2IDUxLjEtMTUuMlYzMzhjMCAxNC43IDEyIDI2LjUgMjYuNyAyNi41UzQxNyAzNTIuNyA0MTcgMzM4di03Mmg4NS45em0tMjI0LjctNTguMmwzNC4zIDE2IDUxLjEtMTUuMlYxNzNjMC02MC41LTUxLjEtMTA5LTExMi4xLTEwOS02MC44IDAtMTEyLjEgNDguMi0xMTIuMSAxMDguMnYxNjIuNGMwIDE0LjktMTIgMjYuNy0yNi43IDI2LjdTODYgMzQ5LjUgODYgMzM0LjZWMjY2SDB2NjkuN0MwIDM5Ny43IDUwLjMgNDQ4IDExMi40IDQ0OGM2MS42IDAgMTEyLjQtNDkuNSAxMTIuNC0xMTAuOFYxNzYuOWMwLTE0LjcgMTItMjYuNyAyNi43LTI2LjdzMjYuNyAxMiAyNi43IDI2Ljd2MzAuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdXBlcnBvd2VycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzJjLTgzLjMgMTEtMTY2LjggMjItMjUwIDMzLTkyIDEyLjUtMTYzLjMgODYuNy0xNjkgMTgwLTMuMyA1NS41IDE4IDEwOS41IDU3LjggMTQ4LjJMMCA0ODBjODMuMy0xMSAxNjYuNS0yMiAyNDkuOC0zMyA5MS44LTEyLjUgMTYzLjMtODYuOCAxNjguNy0xNzkuOCAzLjUtNTUuNS0xOC0xMDkuNS01Ny43LTE0OC4yTDQ0OCAzMnptLTc5LjcgMjMyLjNjLTQuMiA3OS41LTc0IDEzOS4yLTE1Mi44IDEzNC41LTc5LjUtNC43LTE0MC43LTcxLTEzNi4zLTE1MSA0LjUtNzkuMiA3NC4zLTEzOS4zIDE1My0xMzQuNSA3OS4zIDQuNyAxNDAuNSA3MSAxMzYuMSAxNTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VwcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43LjQgMTUuNS42IDIzLjQuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42LjIgMjMuMy41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOUMxMDguOCA5Ni4zLS4xIDE0OC41IDAgMjEyLjZjLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45czEwLjUgMTMuMiAyOS4zIDEzLjJjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZ2My45aDE0LjJ2LTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42djU0LjRjMCAxMS4zLTcuMSAxNy44LTE3LjggMTcuOC0xMC43IDAtMTcuOC02LjUtMTcuOC0xNy43di01NC41aC0xNS44djU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOXYtNTVoLTE1Ljd6bTM0LjQgODUuNGgxNS44di0yOS41aDE1LjVjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44aC0zOS4xdjEzLjRoNy44djcyem0xNS44LTQzdi0yOS4xaDEyLjljOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdoLTEyLjZ6bTU3IDQzaDE1Ljh2LTI5LjVoMTUuNWMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhoLTM5LjF2MTMuNGg3Ljh2NzJ6bTE1LjctNDN2LTI5LjFoMTIuOWM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdoLTEyLjZ6bTU3LjEgMzQuOGMwIDUuOCAyLjQgOC4yIDguMiA4LjJoMzcuNmM1LjggMCA4LjItMi40IDguMi04LjJ2LTEzaC0xNC4zdjUuMmMwIDEuNy0xIDIuNi0yLjYgMi42aC0xOC42Yy0xLjcgMC0yLjYtMS0yLjYtMi42di02MS4yYzAtNS43LTIuNC04LjItOC4yLTguMkg0MDF2MTMuNGg1LjJjMS43IDAgMi42IDEgMi42IDIuNnY2MS4yem02My40IDBjMCA1LjggMi40IDguMiA4LjIgOC4ySDUxOWM1LjcgMCA4LjItMi40IDguMi04LjJ2LTEzaC0xNC4zdjUuMmMwIDEuNy0xIDIuNi0yLjYgMi42aC0xOS43Yy0xLjcgMC0yLjYtMS0yLjYtMi42di0yMC4zaDI3Ljd2LTEzLjRINDg4di0yMi40aDE5LjJjMS43IDAgMi42IDEgMi42IDIuNnY1LjJINTI0di0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJoLTUxLjZ2MTMuNGg3Ljh2NjMuOXptNTguOS03NnY1LjloMS42di01LjloMi43di0xLjJoLTd2MS4yaDIuN3ptNS43LTEuMnY3LjFoMS41di01LjdsMi4zIDUuN2gxLjNsMi4zLTUuN3Y1LjdoMS41di03LjFoLTIuM2wtMi4xIDUuMS0yLjEtNS4xaC0yLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzEuMDggMTAyLjY2cy0uMyAxOC4zLS4zIDIwLjNjLTkuMS0zLTc0LjQtMjQuMS0xMzUuNy0yNi4zLTUxLjktMS44LTEyMi44LTQuMy0yMjMgNTcuMy0xOS40IDEyLjQtNzMuOSA0Ni4xLTk5LjYgMTA5LjdDNyAyNzctLjEyIDMwNyA3IDMzNS4wNmExMTEgMTExIDAgMCAwIDE2LjUgMzUuN2MxNy40IDI1IDQ2LjYgNDEuNiA3OC4xIDQ0LjQgNDQuNCAzLjkgNzguMS0xNiA5MC01My4zIDguMi0yNS44IDAtNjMuNi0zMS41LTgyLjktMjUuNi0xNS43LTUzLjMtMTIuMS02OS4yLTEuNi0xMy45IDkuMi0yMS44IDIzLjUtMjEuNiAzOS4yLjMgMjcuOCAyNC4zIDQyLjYgNDEuNSA0Mi42YTQ5IDQ5IDAgMCAwIDE1LjgtMi43YzYuNS0xLjggMTMuMy02LjUgMTMuMy0xNC45IDAtMTIuMS0xMS42LTE0LjgtMTYuOC0xMy45LTIuOS41LTQuNSAyLTExLjggMi40LTItLjItMTItMy4xLTEyLTE0VjMxNmMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45IDMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjctMTguMyAyMy43LTc2LjYgMjMuMi05OS43LTIwLjQtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjQgMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zaDQ1LjljLTUuNy0xNy42LTguOS02OC4zIDQyLjctNjguMyA1Ni43IDAgNjMuOSAzOS45IDc5LjggNjguM0g0NjBjLTEyLjgtMTguMy0yMS43LTM4LjctMTguOS01NS44IDUuNi0zMy44IDM5LjctMTguNCA4Mi40LTE3LjQgNjYuNS40IDEwMi4xLTI3IDEwMy4xLTI4IDMuNy0zLjEgNi41LTE1LjggNy0xNy43IDEuMy01LjEtMy4yLTIuNC0zLjItMi40LTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNi0yNS4zLjUtNzYuMi0yNS40LTgxLjYtMjguMi0uMy0uNC4xIDEuMi0xMS0yNS41IDg4LjQgNTguMyAxMTguMyA0MC41IDE0NS4yIDIxLjcuOC0uNiA0LjMtMi45IDMuNi01LjctMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjYtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zLjEtLjEtLjktLjMtLjkuN3ptNjAuNCA3Mi44YTM3LjU0IDM3LjU0IDAgMCAxIDM4LjktMzYuM2MzMy40IDEuMiA0OC44IDQyLjMgMjQuNCA2NS4yLTI0LjIgMjIuNy02NC40IDQuNi02My4zLTI4Ljl6bTM4LjYtMjUuM2EyNi4yNyAyNi4yNyAwIDEgMCAyNS40IDI3LjIgMjYuMTkgMjYuMTkgMCAwIDAtMjUuNC0yNy4yem00LjMgMjguOGMtMTUuNCAwLTE1LjQtMTUuNiAwLTE1LjZzMTUuNCAxNS42NCAwIDE1LjY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN3aWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxNTYuMDljMC00LjUxLS4wOC05LS4yLTEzLjUyYTE5Ni4zMSAxOTYuMzEgMCAwIDAtMi41OC0yOS40MiA5OS42MiA5OS42MiAwIDAgMC05LjIyLTI4QTk0LjA4IDk0LjA4IDAgMCAwIDM5NC44NCA0NGE5OS4xNyA5OS4xNyAwIDAgMC0yOC05LjIyIDE5NSAxOTUgMCAwIDAtMjkuNDMtMi41OWMtNC41MS0uMTItOS0uMTctMTMuNTItLjJIMTI0LjE0Yy00LjUxIDAtOSAuMDgtMTMuNTIuMi0yLjQ1LjA3LTQuOTEuMTUtNy4zNy4yN2ExNzEuNjggMTcxLjY4IDAgMCAwLTIyLjA2IDIuMzIgMTAzLjA2IDEwMy4wNiAwIDAgMC0yMS4yMSA2LjFxLTMuNDYgMS40NS02LjgxIDMuMTJhOTQuNjYgOTQuNjYgMCAwIDAtMTguMzkgMTIuMzJjLTEuODggMS42MS0zLjY5IDMuMjgtNS40MyA1QTkzLjg2IDkzLjg2IDAgMCAwIDEyIDg1LjE3YTk5LjQ1IDk5LjQ1IDAgMCAwLTkuMjIgMjggMTk2LjMxIDE5Ni4zMSAwIDAgMC0yLjU0IDI5LjRjLS4xMyA0LjUxLS4xOCA5LS4yMSAxMy41MnYxOTkuODNjMCA0LjUxLjA4IDkgLjIxIDEzLjUxYTE5Ni4wOCAxOTYuMDggMCAwIDAgMi41OCAyOS40MiA5OS4zIDk5LjMgMCAwIDAgOS4yMiAyOEE5NC4zMSA5NC4zMSAwIDAgMCA1My4xNyA0NjhhOTkuNDcgOTkuNDcgMCAwIDAgMjggOS4yMSAxOTUgMTk1IDAgMCAwIDI5LjQzIDIuNTljNC41LjEyIDkgLjE3IDEzLjUyLjJIMzIzLjkxYzQuNTEgMCA5LS4wOCAxMy41Mi0uMmExOTYuNTkgMTk2LjU5IDAgMCAwIDI5LjQ0LTIuNTkgOTkuNTcgOTkuNTcgMCAwIDAgMjgtOS4yMUE5NC4yMiA5NC4yMiAwIDAgMCA0MzYgNDI2Ljg0YTk5LjMgOTkuMyAwIDAgMCA5LjIyLTI4IDE5NC43OSAxOTQuNzkgMCAwIDAgMi41OS0yOS40MmMuMTItNC41LjE3LTkgLjItMTMuNTFWMTcyLjE0Yy0uMDEtNS4zNS0uMDEtMTAuNy0uMDEtMTYuMDV6bS02OS44OCAyNDFjLTIwLTM4LjkzLTU3LjIzLTI5LjI3LTc2LjMxLTE5LjQ3LTEuNzIgMS0zLjQ4IDItNS4yNSAzbC0uNDIuMjVjLTM5LjUgMjEtOTIuNTMgMjIuNTQtMTQ1Ljg1LS4zOEEyMzQuNjQgMjM0LjY0IDAgMCAxIDQ1IDI5MC4xMmEyMzAuNjMgMjMwLjYzIDAgMCAwIDM5LjE3IDIzLjM3YzU2LjM2IDI2LjQgMTEzIDI0LjQ5IDE1MyAwLTU3LTQzLjg1LTEwNC42LTEwMS0xNDEuMDktMTQ3LjIyYTE5Ny4wOSAxOTcuMDkgMCAwIDEtMTguNzgtMjUuOWM0My43IDQwIDExMi43IDkwLjIyIDEzNy40OCAxMDQuMTItNTIuNTctNTUuNDktOTguODktMTIzLjk0LTk2LjcyLTEyMS43NCA4Mi43OSA4My40MiAxNTkuMTggMTMwLjU5IDE1OS4xOCAxMzAuNTkgMi44OCAxLjU4IDUgMi44NSA2LjczIDRhMTI3LjQ0IDEyNy40NCAwIDAgMCA0LjE2LTEyLjQ3YzEzLjIyLTQ4LjMzLTEuNjYtMTAzLjU4LTM1LjMxLTE0OS4yQzMyOS42MSAxNDEuNzUgMzc1IDIyOS4zNCAzNTYuNCAzMDMuNDJjLS40NCAxLjczLS45NSAzLjQtMS40NCA1LjA5IDM4LjUyIDQ3LjQgMjguMDQgOTguMTcgMjMuMTMgODguNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3ltZm9ueSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMzMuNzQgMTQzLjU0Yy0xMS40Ny40MS0xOS40LTYuNDUtMTkuNzctMTYuODctLjI3LTkuMTggNi42OC0xMy40NCA2LjUzLTE4Ljg1LS4yMy02LjU1LTEwLjE2LTYuODItMTIuODctNi42Ny0zOS43OCAxLjI5LTQ4LjU5IDU3LTU4Ljg5IDExMy44NSAyMS40MyAzLjE1IDM2LjY1LS43MiA0NS4xNC02LjIyIDEyLTcuNzUtMy4zNC0xNS43Mi0xLjQyLTI0LjU2IDQtMTguMTYgMzIuNTUtMTkgMzIgNS4zLS4zNiAxNy44Ni0yNS45MiA0MS44MS03Ny42IDM1LjctMTAuNzYgNTkuNTItMTguMzUgMTE1LTU4LjIgMTYxLjcyLTI5IDM0LjQ2LTU4LjQgMzkuODItNzEuNTggNDAuMjYtMjQuNjUuODUtNDEtMTIuMzEtNDEuNTgtMjkuODQtLjU2LTE3IDE0LjQ1LTI2LjI2IDI0LjMxLTI2LjU5IDIxLjg5LS43NSAzMC4xMiAyNS42NyAxNC44OCAzNC0xMi4wOSA5LjcxLjExIDEyLjYxIDIuMDUgMTIuNTUgMTAuNDItLjM2IDE3LjM0LTUuNTEgMjIuMTgtOSAyNC0yMCAzMy4yNC01NC44NiA0NS4zNS0xMTguMzUgOC4xOS00OS42NiAxNy03OCAxOC4yMy04Mi0xNi45My0xMi43NS0yNy4wOC0yOC41NS00OS44NS0zNC43Mi0xNS42MS00LjIzLTI1LjEyLS42My0zMS44MSA3LjgzLTcuOTIgMTAtNS4yOSAyMyAyLjM3IDMwLjdsMTIuNjMgMTRjMTUuNTEgMTcuOTMgMjQgMzEuODcgMjAuOCA1MC42Mi01LjA2IDI5LjkzLTQwLjcyIDUyLjktODIuODggMzkuOTQtMzYtMTEuMTEtNDIuNy0zNi41Ni0zOC4zOC01MC42MiA3LjUxLTI0LjE1IDQyLjM2LTExLjcyIDM0LjYyIDEzLjYtMi43OSA4LjYtNC45MiA4LjY4LTYuMjggMTMuMDctNC41NiAxNC43NyA0MS44NSAyOC40IDUxLTEuMzkgNC40Ny0xNC41Mi01LjMtMjEuNzEtMjIuMjUtMzkuODUtMjguNDctMzEuNzUtMTYtNjUuNDkgMi45NS03OS42N0MyMDQuMjMgMTQwLjEzIDI1MS45NCAxOTcgMjYyIDIwNS4yOWMzNy4xNy0xMDkgMTAwLjUzLTEwNS40NiAxMDIuNDMtMTA1LjUzIDI1LjE2LS44MSA0NC4xOSAxMC41OSA0NC44MyAyOC42NS4yNSA3LjY5LTQuMTcgMjIuNTktMTkuNTIgMjMuMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVhbXNwZWFrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NC4yIDM0Ni43OWMyLjQtMTIuMy0xMi0zMC0zMi40LTQ4LjctMjAuOS0xOS4yLTQ4LjItMzkuMS02My40LTQ2LjYtMjEuNy0xMi00MS43LTEuOC00Ni4zIDIyLjctNSAyNi4yIDAgNTEuNCAxNC41IDczLjkgMTAuMiAxNS41IDI1LjQgMjIuNyA0My40IDI0IDExLjYuNiA1Mi41IDIuMiA2MS43LTEgMTEuOS00LjMgMjAuMS0xMS44IDIyLjUtMjQuM3ptMjA1IDIwLjhhNS4yMiA1LjIyIDAgMCAwLTguMyAyLjRjLTggMjUuNC00NC43IDExMi41LTE3Mi4xIDEyMS41LTE0OS43IDEwLjUgODAuMyA0My42IDE0NS40LTYuNCAyMi43LTE3LjQgNDcuNi0zNSA0Ni42LTg1LjQtLjQtMTAuMS00LjktMjYuNjktMTEuNi0zMi4xem02Mi0xMjIuNGMtLjMtMTguOS04LjYtMzMuNC0yNi00Mi4yLTIuOS0xLjMtNS0yLjctNS45LTYuNEEyMjIuNjQgMjIyLjY0IDAgMCAwIDQzOC45IDEwM2MtMS4xLTEuNS0zLjUtMy4yLTIuMi01IDguNS0xMS41LS4zLTE4LTctMjQuNFEzMjEuNC0zMS4xMSAxNzcuNCAxMy4wOWMtNDAuMSAxMi4zLTczLjkgMzUuNi0xMDIgNjcuNC00IDQuMy02LjcgOS4xLTMgMTQuNSAzIDQgMS4zIDYuMi0xIDkuM0M1MS42IDEzMiAzOC4yIDE2Mi41OSAzMi4xIDE5NmMtLjcgNC4zLTIuOSA2LTYuNCA3LjgtMTQuMiA3LTIyLjUgMTguNS0yNC45IDM0TDAgMjY0LjI5djIwLjljMCAzMC44IDIxIDUwLjQgNTEuOCA0OSA3LjctLjMgMTEuNy00LjMgMTItMTEuNSAyLTc3LjUtMi40LTk1LjQgMy43LTEyNS44QzkyLjEgNzIuMzkgMjM0LjMgNSAzNDUuMyA2NS4zOSA0MTEuNCAxMDIgNDQ1LjcgMTU5IDQ0Ny42IDIzNC43OWMuOCAyOC4yIDAgNTYuNSAwIDg0LjYgMCA3IDIuMiAxMi41IDkuNCAxNC4yIDI0LjEgNSA0OS4yLTEyIDUzLjItMzYuNyAyLjktMTcuMSAxLTM0LjUgMS01MS43em0tMTU5LjYgMTMxLjVjMzYuNSAyLjggNTkuMy0yOC41IDU4LjQtNjAuNS0yLjEtNDUuMi02Ni4yLTE2LjUtODcuOC04LTczLjIgMjguMS00NSA1NC45LTIyLjIgNjAuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZWxlZ3JhbVBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni43IDk4LjZsLTY3LjYgMzE4LjhjLTUuMSAyMi41LTE4LjQgMjguMS0zNy4zIDE3LjVsLTEwMy03NS45LTQ5LjcgNDcuOGMtNS41IDUuNS0xMC4xIDEwLjEtMjAuNyAxMC4xbDcuNC0xMDQuOSAxOTAuOS0xNzIuNWM4LjMtNy40LTEuOC0xMS41LTEyLjktNC4xTDExNy44IDI4NCAxNi4yIDI1Mi4yYy0yMi4xLTYuOS0yMi41LTIyLjEgNC42LTMyLjdMNDE4LjIgNjYuNGMxOC40LTYuOSAzNC41IDQuMSAyOC41IDMyLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVsZWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTIxLjggMTY5LjlsLTQwLjcgMTkxLjhjLTMgMTMuNi0xMS4xIDE2LjktMjIuNCAxMC41bC02Mi00NS43LTI5LjkgMjguOGMtMy4zIDMuMy02LjEgNi4xLTEyLjUgNi4xbDQuNC02My4xIDExNC45LTEwMy44YzUtNC40LTEuMS02LjktNy43LTIuNWwtMTQyIDg5LjQtNjEuMi0xOS4xYy0xMy4zLTQuMi0xMy42LTEzLjMgMi44LTE5LjdsMjM5LjEtOTIuMmMxMS4xLTQgMjAuOCAyLjcgMTcuMiAxOS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbmNlbnRXZWlibyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Mi4zIDQ5NS44YzEuNCAxOS45LTI3LjYgMjIuMi0yOS43IDIuOUMzMSAzNjguOCA3My43IDI1OS4yIDE0NCAxODUuNWMtMTUuNi0zNCA5LjItNzcuMSA1MC42LTc3LjEgMzAuMyAwIDU1LjEgMjQuNiA1NS4xIDU1LjEgMCA0NC00OS41IDcwLjgtODYuOSA0NS4xLTY1LjcgNzEuMy0xMDEuNCAxNjkuOC05MC41IDI4Ny4yek0xOTIgLjFDNjYuMS4xLTEyLjMgMTM0LjMgNDMuNyAyNDIuNCA1Mi40IDI1OS44IDc5IDI0Ni45IDcwIDIyOSAyMy43IDEzNi40IDkxIDI5LjggMTkyIDI5LjhjNzUuNCAwIDEzNi45IDYxLjQgMTM2LjkgMTM2LjkgMCA5MC44LTg2LjkgMTUzLjktMTY3LjcgMTMzLjEtMTkuMS00LjEtMjUuNiAyNC40LTYuNiAyOS4xIDExMC43IDIzLjIgMjA0LTYwIDIwNC0xNjIuM0MzNTguNiA3NC43IDI4NCAuMSAxOTIgLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlUmVkWWV0aSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODguMjMgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45YTEyMi4yIDEyMi4yIDAgMCAwLTI1LjMgMTYuNWMtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNS41YTIzOS4zNiAyMzkuMzYgMCAwIDAtNjguNC0xMy4zYy01LjUtOC43LTE4LjYtMTkuMS0yNS4xLTI1LjFsMjQuOCA3LjFjLTUuNS01LjUtMjYuOC0xMi45LTM0LjItMTUuMiAxOC4yLTQuMSAyOS44LTIwLjggNDIuNS0zMy0zNC45LTEwLjEtNjcuOS01LjktOTcuOSAxMS44bDEyLTQ0LjJMMTgyIDBjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yN2EzNS4xMiAzNS4xMiAwIDAgMC0uNSAyNS4zYzMgOC40IDUuOSAxNC44IDguNCAxOC45LTE2LTMuMy0yOC4zLTQuOS00OS4yIDBoLTMuN2wzMyAxNC4zYTE5NC4yNiAxOTQuMjYgMCAwIDAtNDYuNyA2Ny40bC0xLjcgOC40IDEuNyAxLjcgNy42LTQuN2MtMy4zIDExLjYtNS4zIDE5LjQtNi42IDI1LjhhMjAwLjE4IDIwMC4xOCAwIDAgMC0yNy44IDQwLjNjLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43LjcgMy40IDEuMiA1LjIgMCAyNS41LjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41QTE4MS44NCAxODEuODQgMCAwIDAgNDk1IDI1NWE0NC43NCA0NC43NCAwIDAgMC02LjgtMTMuM3pNMzk4IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRhMjQyLjQ0IDI0Mi40NCAwIDAgMS0yNyAwYzEyLjgtMi4xIDMzLjMtMjkgNDMtMTEuMyAzLjQgNy42IDYuNCAxNy4yIDkuMyAyNy44bDEuNy01LjlhNTYuMzggNTYuMzggMCAwIDEtMS43LTE1LjJjNS40LjUgOC44IDMuNCA5LjMgMTAuMS41IDYuNCAxLjcgMTQuOCAzLjQgMjUuM2w0LjctMTEuM2M0LjYgMCA0LjUtMy42LTIuNSAyMC43LTIwLjktOC43LTM1LjEtOC40LTQ2LjUtOC40bDE4LjItMTZjLTI1LjMgOC4yLTMzIDEwLjgtNTQuOCAyMC45LTEuMS01LjQtNS0xMy41LTE2LTE5LjktMy4yIDMuOC0yLjguOS0uNyAxNC44aC0yLjVhNjIuMzIgNjIuMzIgMCAwIDAtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMnpNOTEgMTQzLjFsMS4yLTEuN2MxLjItMi45IDQuMi03LjYgOS4zLTE1LjJsMi41LTMuNC0xMyAxMi4zIDUuNC00LjctMTAuMSA5LjMtNC4yIDEuMmMxMi4zLTI0LjEgMjMuMS00MS4zIDMyLjUtNTAuMiA5LjMtOS4zIDE2LTE2IDIwLjItMTkuNGwtNi40IDEuMmMtMTEuMy00LjItMTkuNC03LjEtMjQuOC04LjQgMi41LS41IDMuNy0uNSAzLjItLjUgMTAuMyAwIDE3LjUuNSAyMC45IDEuMmE1Mi4zNSA1Mi4zNSAwIDAgMCAxNiAyLjVsLjUtMS43LTguNC0zNS44IDEzLjUgMjlhNDIuODkgNDIuODkgMCAwIDAgNS45LTE0LjNjMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYTIzNC42OCAyMzQuNjggMCAwIDAtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVDMTkwLjQgMzkuOSAyMTQgMzQgMjM5LjggMzQuNWwyMS4xLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44YTIwMS4yNiAyMDEuMjYgMCAwIDEtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJhMjAuNzUgMjAuNzUgMCAwIDAtMTQgMmMtMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcuNSAxLjJjMiAuMiAzLjkuNSA2LjIuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjRoMS4yYTM5LjQgMzkuNCAwIDAgMSAyNS4zLTE1LjJ2LTNjNi40LjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQuNSA1LjQgMS4yYTE4OS42IDE4OS42IDAgMCAxIDIwLjcgMTMuNWMxMy41IDEwLjEgMjMuNiAyMS45IDMwIDM1LjQgOC44IDE4LjIgMTMuNSAzNy4xIDEzLjUgNTYuNmExNDEuMTMgMTQxLjEzIDAgMCAxLTMgMjguMyAyMDkuOTEgMjA5LjkxIDAgMCAxLTE2IDQ2bDIuNS41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yLjItLjIuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4yNy00Mi43LTE0MS4yLTYzLjJsMTEuOCAxLjJjLTExLjgtMTguNS0xNS42LTE3LjctMzguNC0yNi4xTDE0OSAyMjVjLTguOC0zLTE4LjItMy0yOC4zLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnptMjc2LjUgMzMwYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zYTI2Mi41NyAyNjIuNTcgMCAwIDAgMzUuNCAyNC44YzMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjFhODAuMjUgODAuMjUgMCAwIDEgMjAuNyAyNi42Yy0zOS0xOC45LTU3LjYtNDcuNi03MS4zLTgyLjYgNDkuOSA1NS4xIDExOC45IDM3LjUgMTIwLjUgMzcuMSAzNC44IDE2LjQgNjkuOSAyMy42IDExMy45IDEwLjYgMy4zIDAgMjAuMyAxNyAyNS4zIDM5LjFsNC4yLTMtMi41LTIzLjZjOSA5IDI0LjkgMjIuNiAzNC40IDEzLTE1LjYtNS4zLTIzLjUtOS41LTI5LjUtMzEuNyA0LjYgNC4yIDcuNiA5IDI3LjggMTVsMS4yLTEuMi0xMC41LTE0LjJjMTEuNy00LjgtMy41IDEgMzItMTAuOCA0LjMgMzQuMyA5IDQ5LjIuNyA4OS41em0xMTUuMy0yMTQuNGwtMi41LjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMmgtMS4ybC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJhMjE0LjgyIDIxNC44MiAwIDAgMS05My4yLTYuNGMtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRsLTIuNS0xNi40LTIyLjI3IDIyLjNjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yYTE4LjUgMTguNSAwIDAgMSAzLjctMS43Yy42LTMuMi40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcuNWMxMi43LTYuNSA4LjktNC41IDE3LTguOWwtNS40IDEzLjUgMjIuMy01LjgtOC40IDguNCAyLjUgMi41YzQuNS0xLjggMzAuMyAzLjQgNDAuOCAxNmwtMjMuNi0yLjVjMzkuNCAyMyA1MS41IDU0IDU1LjggNjkuNmwxLjctMS4yYy0yLjgtMjIuMy0xMi40LTMzLjktMTYtNDAuMSA0LjIgNSAzOS4yIDM0LjYgMTEwLjQgNDYtMTEuMy0uNS0yMy4xIDUuNC0zNC45IDE4LjlsNDYuNy0yMC4yLTkuMyAyMS45YzcuNi0xMC4xIDE0LjgtMjMuNiAyMS4yLTM5LjZ2LS41bDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44di0ybC01LjQtNC4yaDEwLjFsNS45IDQuMiAyLjUtMS4yLTMuNC0xNiAxMi4zIDE4LjkgNDEuOC0yMC4yLTE0LjggMTMgLjUgMi45IDE3LjctLjVhMTg0IDE4NCAwIDAgMSAzMyA0LjJsLTIzLjYgMi41LTEuMiAzIDI2LjYgMjMuMWEyNTQuMjEgMjU0LjIxIDAgMCAxIDI3IDMyYy0xMS4yLTMuMy0xMC4zLTMuNC0yMS4yLTMuNGwxMi4zIDMyLjV6bS02LjEtNzEuM2wtMy45IDEzLTE0LjMtMTEuOHptLTI1NC44IDcuMWMxLjcgMTAuNiA0LjcgMTcuNyA4LjggMjEuOS05LjMgNi42LTI3LjUgMTMuOS00Ni41IDE2bC41IDEuMmE1MC4yMiA1MC4yMiAwIDAgMCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43YTM5LjU3IDM5LjU3IDAgMCAwLTE0LjI3LTEzLjh6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNnYtNC43bC0xLjIuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41LjUtMjEuOSAzLTI0LjggMS4yLTIuNSA0LjctMS4yIDExLjMgNC4yIDYuNCA1LjQgMTEuMyAxNiAxNS4yIDMyLjUgNi41IDI4LTE5LjggMjYuMi0yNi45IDQuOXptLTQ1LTUuNWMxLjYuMyA5LjMtMS4xIDkuMy0xNC44aC0uNWMtNS40LTEuMS0yLjItNS41LS43LTUuOS0xLjctMy0zLjQtNC4yLTUuNC00LjctOC4xIDAtMTEuNiAxMi43LTguMSAyMS4yYTcuNTEgNy41MSAwIDAgMCA1LjQzIDQuMnpNMjE2IDgyLjlsLTIuNS41LjUgM2E0OC45NCA0OC45NCAwIDAgMSAyNi4xIDUuOWMtMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjV6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdhNDIuNjcgNDIuNjcgMCAwIDAgMTQuOC0yOC4zYzEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZhMi4yNiAyLjI2IDAgMCAwLS41LTEuNyAxNC4yMSAxNC4yMSAwIDAgMC0xMy41IDEuN2MtMTIuNyA2LjctMjggMjAuOS0yOSAyMi40LTEuNyAxLjctMy40IDUuOS01LjQgMTMuNWE5OS42MSA5OS42MSAwIDAgMC0yLjkgMjMuNmMtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuM2E3Mi4xNCA3Mi4xNCAwIDAgMSAzIDI1LjNjLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNmEzOS4yMSAzOS4yMSAwIDAgMS0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOS41LjUgMyAzLjQgNS45IDkuMyA0LjItNi40IDguOC0xMC4xIDE1LjItMTAuNmE4My40NyA4My40NyAwIDAgMCAxLjcgMzMuN2MuMS41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42aDIuNWwtMTEuOC03LjYtNy4xLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlbWVjbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDIuOSA4LjQzYzkuOS01LjczIDI2LTUuODIgMzUuOTUtLjIxTDQzMCAxMTUuODVjMTAgNS42IDE4IDE5LjQ0IDE4IDMwLjg2VjM2NGMwIDExLjQ0LTguMDYgMjUuMjktMTggMzFMMjM4LjgxIDUwMy43NGMtOS45MyA1LjY2LTI2IDUuNTctMzUuODUtLjIxTDE3Ljg2IDM5NS4xMkM4IDM4OS4zNCAwIDM3NS4zOCAwIDM2NFYxNDYuNzFjMC0xMS40NCA4LTI1LjM2IDE3LjkxLTMxLjA4em0tNzcuNCAxOTkuODNjLTE1Ljk0IDAtMzEuODkuMTQtNDcuODMuMTR2MTAxLjQ1SDk2LjhWMjgwaDI4LjdjNDkuNzEgMCA0OS41Ni03MS43NCAwLTcxLjc0em0xNDAuMTQgMTAwLjI5bC0zMC43My0zNC42NGMzNy03LjUxIDM0LjgtNjUuMjMtMTAuODctNjUuNTEtMTYuMDkgMC0zMi4xNy0uMTQtNDguMjYtLjE0djEwMS41OWgxOS4xM3YtMzMuOTFoMTguNDFsMjkuNTYgMzMuOTFoMjIuNzZ6bS00MS41OS04Mi4zMmMyMy4zNCAwIDIzLjI2IDMyLjQ2IDAgMzIuNDZoLTI5LjEzdi0zMi40NnptLTk1LjU2LTEuNmMyMS4xOCAwIDIxLjExIDM4Ljg1IDAgMzguODVIOTYuMTh2LTM4Ljg0em0xOTIuNjUtMTguMjVjLTY4LjQ2IDAtNzEgMTA1LjggMCAxMDUuOCA2OS40OC0uMDEgNjkuNDEtMTA1LjggMC0xMDUuOHptMCAxNy4zOWM0NC4xMiAwIDQ0LjggNzAuODYgMCA3MC44NnMtNDQuNDMtNzAuODYgMC03MC44NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVtZWlzbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDg4LjI4NmMwLTEwIDYuMjg2LTIxLjcxNCAxNy43MTUtMjEuNzE0IDExLjE0MiAwIDE3LjcxNCAxMS43MTQgMTcuNzE0IDIxLjcxNCAwIDEwLjI4NS02LjU3MiAyMS43MTQtMTcuNzE0IDIxLjcxNEMyMTQuMjg2IDExMCAyMDggOTguNTcxIDIwOCA4OC4yODZ6bTMwNCAxNjBjMCAzNi4wMDEtMTEuNDI5IDEwMi4yODYtMzYuMjg2IDEyOS43MTQtMjIuODU4IDI0Ljg1OC04Ny40MjggNjEuMTQzLTEyMC44NTcgNzAuNTcybC0xLjE0My4yODZ2MzIuNTcxYzAgMTYuMjg2LTEyLjU3MiAzMC41NzEtMjkuMTQzIDMwLjU3MS0xMCAwLTE5LjQyOS01LjcxNC0yNC41NzItMTQuMjg2LTUuNDI3IDguNTcyLTE0Ljg1NiAxNC4yODYtMjQuODU2IDE0LjI4Ni0xMCAwLTE5LjQyOS01LjcxNC0yNC44NTgtMTQuMjg2LTUuMTQyIDguNTcyLTE0LjU3MSAxNC4yODYtMjQuNTcgMTQuMjg2LTEwLjI4NiAwLTE5LjQyOS01LjcxNC0yNC44NTgtMTQuMjg2LTUuMTQzIDguNTcyLTE0LjU3MSAxNC4yODYtMjQuNTcxIDE0LjI4Ni0xOC44NTcgMC0yOS40MjktMTUuNzE0LTI5LjQyOS0zMi44NTctMTYuMjg2IDEyLjI4NS0zNS43MTUgMTkuNDI4LTU2LjU3MSAxOS40MjgtMjIgMC00My40MjktOC4yODUtNjAuMjg2LTIyLjg1NyAxMC4yODUtLjI4NiAyMC41NzEtMi4yODYgMzAuMjg1LTUuNzE0LTIwLjg1Ny01LjcxNC0zOS40MjgtMTguODU3LTUyLTM2LjI4NiAyMS4zNyA0LjY0NSA0Ni4yMDkgMS42NzMgNjcuMTQzLTExLjE0My0yMi0yMi01Ni41NzEtNTguODU3LTY4LjU3Mi04Ny40MjhDMS4xNDMgMzIxLjcxNCAwIDMwMy43MTQgMCAyODkuNDI5YzAtNDkuNzE0IDIwLjI4Ni0xNjAgODYuMjg2LTE2MCAxMC41NzEgMCAxOC44NTcgNC44NTggMjMuMTQzIDE0Ljg1N2ExNTguNzkyIDE1OC43OTIgMCAwIDEgMTItMTUuNDI4YzItMi41NzIgNS43MTQtNS40MjkgNy4xNDMtOC4yODYgNy45OTktMTIuNTcxIDExLjcxNC0yMS4xNDIgMjEuNzE0LTM0QzE4Mi41NzEgNDUuNDI4IDIzMiAxNy4xNDMgMjg1LjE0MyAxNy4xNDNjNiAwIDEyIC4yODUgMTcuNzE0IDEuMTQzQzMxMy43MTQgNi41NzEgMzI4Ljg1NyAwIDM0NC41NzIgMGMxNC41NzEgMCAyOS43MTQgNiA0MCAxNi4yODYuODU3Ljg1OCAxLjQyOCAyLjI4NiAxLjQyOCAzLjQyOCAwIDMuNzE0LTEwLjI4NSAxMy40MjktMTIuODU3IDE2LjI4NiA0LjI4NiAxLjQyOSAxNS43MTQgNi44NTggMTUuNzE0IDEyIDAgMi44NTctMi44NTcgNS4xNDMtNC41NzEgNy4xNDMgMzEuNDI5IDI3LjcxNCA0OS40MjkgNjcuMTQzIDU2LjI4NiAxMDggNC4yODYtNS4xNDMgMTAuMjg1LTguNTcyIDE3LjE0My04LjU3MiAxMC41NzEgMCAyMC44NTcgNy4xNDQgMjguNTcxIDE0LjAwMUM1MDcuMTQzIDE4Ny4xNDMgNTEyIDIyMS43MTQgNTEyIDI0OC4yODZ6TTE4OCA4OS40MjhjMCAxOC4yODYgMTIuNTcxIDM3LjE0MyAzMi4yODYgMzcuMTQzIDE5LjcxNCAwIDMyLjI4NS0xOC44NTcgMzIuMjg1LTM3LjE0MyAwLTE4LTEyLjU3MS0zNi44NTctMzIuMjg1LTM2Ljg1Ny0xOS43MTUgMC0zMi4yODYgMTguODU4LTMyLjI4NiAzNi44NTd6TTIzNy43MTQgMTk0YzAtMTkuNzE0IDMuNzE0LTM5LjE0MyA4LjU3MS01OC4yODYtNTIuMDM5IDc5LjUzNC0xMy41MzEgMTg0LjU3MSA2OC44NTggMTg0LjU3MSAyMS40MjggMCA0Mi41NzEtNy43MTQgNjAtMjAgMi03LjQyOSAzLjcxNC0xNC44NTcgMy43MTQtMjIuNTcyIDAtMTQuMjg2LTYuMjg2LTIxLjQyOC0yMC41NzItMjEuNDI4LTQuNTcxIDAtOS4xNDMuODU3LTEzLjQyOSAxLjcxNC02My4zNDMgMTIuNjY4LTEwNy4xNDIgMy42NjktMTA3LjE0Mi02My45OTl6bS00MS4xNDIgMjU0Ljg1OGMwLTExLjE0My04Ljg1OC0yMC44NTctMjAuMjg2LTIwLjg1Ny0xMS40MjkgMC0yMCA5LjcxNS0yMCAyMC44NTd2MzIuNTcxYzAgMTEuMTQzIDguNTcxIDIxLjE0MiAyMCAyMS4xNDIgMTEuNDI4IDAgMjAuMjg2LTkuNzE1IDIwLjI4Ni0yMS4xNDJ2LTMyLjU3MXptNDkuMTQzIDBjMC0xMS4xNDMtOC41NzItMjAuODU3LTIwLTIwLjg1Ny0xMS40MjkgMC0yMC4yODYgOS43MTUtMjAuMjg2IDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC44NTcgMjEuMTQyIDIwLjI4NiAyMS4xNDIgMTEuNDI4IDAgMjAtMTAgMjAtMjEuMTQydi0zMi41NzF6bTQ5LjcxMyAwYzAtMTEuMTQzLTguODU3LTIwLjg1Ny0yMC4yODUtMjAuODU3LTExLjQyOSAwLTIwLjI4NiA5LjcxNS0yMC4yODYgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4Ljg1NyAyMS4xNDIgMjAuMjg2IDIxLjE0MiAxMS40MjggMCAyMC4yODUtOS43MTUgMjAuMjg1LTIxLjE0MnYtMzIuNTcxem00OS43MTUgMGMwLTExLjE0My04Ljg1Ny0yMC44NTctMjAuMjg2LTIwLjg1Ny0xMS40MjggMC0yMC4yODYgOS43MTUtMjAuMjg2IDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC44NTggMjEuMTQyIDIwLjI4NiAyMS4xNDIgMTEuNDI5IDAgMjAuMjg2LTEwIDIwLjI4Ni0yMS4xNDJ2LTMyLjU3MXpNNDIxLjcxNCAyODZjLTMwLjg1NyA1OS4xNDItOTAuMjg1IDEwMi41NzItMTU4LjU3MSAxMDIuNTcyLTk2LjU3MSAwLTE2MC41NzEtODQuNTcyLTE2MC41NzEtMTc2LjU3MiAwLTE2Ljg1NyAyLTMzLjQyOSA2LTQ5LjcxNC0yMCAzMy43MTUtMjkuNzE0IDcyLjU3Mi0yOS43MTQgMTExLjQyOSAwIDYwLjI4NiAyNC44NTcgMTIxLjcxNSA3MS40MjkgMTYwLjg1NyA1LjE0My05LjcxNCAxNC44NTctMTYuMjg2IDI2LTE2LjI4NiAxMCAwIDE5LjQyOCA1LjcxNCAyNC41NzEgMTQuMjg2IDUuNDI5LTguNTcxIDE0LjU3MS0xNC4yODYgMjQuODU4LTE0LjI4NiAxMCAwIDE5LjQyOCA1LjcxNCAyNC41NzEgMTQuMjg2IDUuNDI5LTguNTcxIDE0Ljg1Ny0xNC4yODYgMjQuODU4LTE0LjI4NiAxMCAwIDE5LjQyOCA1LjcxNCAyNC44NTcgMTQuMjg2IDUuMTQzLTguNTcxIDE0LjU3MS0xNC4yODYgMjQuNTcyLTE0LjI4NiAxMC44NTcgMCAyMC44NTcgNi41NzIgMjUuNzE0IDE2IDQzLjQyNy0zNi4yODYgNjguNTY5LTkyIDcxLjQyNi0xNDguMjg2em0xMC41NzItOTkuNzE0YzAtNTMuNzE0LTM0LjU3MS0xMDUuNzE0LTkyLjU3Mi0xMDUuNzE0LTMwLjI4NSAwLTU4LjU3MSAxNS4xNDMtNzguODU3IDM2Ljg1N0MyNDAuODYyIDE4My44MTIgMjMzLjQxIDI1NCAzMDIuMjg2IDI1NGMyOC44MDUgMCA5Ny4zNTctMjguNTM4IDg0LjI4NiAzNi44NTcgMjguODU3LTI2IDQ1LjcxNC02NS43MTQgNDUuNzE0LTEwNC41NzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhpbmtQZWFrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjUuNCA0MDkuNGw4Ny4xLTE1MC4yLTMyLS4zLTU1LjEgOTVMMjU5LjIgMCAyMyA0MDcuNGwzMiAuM0wyNTkuMiA1NS42em0tMzU1LjMtNDQuMWgzMi4xbDExNy40LTIwMi41TDQ2MyA1MTEuOWwzMi41LjEtMjM1LjgtNDA0LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlrdG9rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCwyMDkuOTFhMjEwLjA2LDIxMC4wNiwwLDAsMS0xMjIuNzctMzkuMjVWMzQ5LjM4QTE2Mi41NSwxNjIuNTUsMCwxLDEsMTg1LDE4OC4zMVYyNzguMmE3NC42Miw3NC42MiwwLDEsMCw1Mi4yMyw3MS4xOFYwbDg4LDBhMTIxLjE4LDEyMS4xOCwwLDAsMCwxLjg2LDIyLjE3aDBBMTIyLjE4LDEyMi4xOCwwLDAsMCwzODEsMTAyLjM5YTEyMS40MywxMjEuNDMsMCwwLDAsNjcsMjAuMTRaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhZGVGZWRlcmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4LjhjLTEzNyAwLTI0OCAxMTEtMjQ4IDI0OHMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4LTExMS0yNDgtMjQ4LTI0OHptMCA0ODIuOGMtMTI5LjcgMC0yMzQuOC0xMDUuMS0yMzQuOC0yMzQuOFMxMTguMyAyMiAyNDggMjJzMjM0LjggMTA1LjEgMjM0LjggMjM0LjhTMzc3LjcgNDkxLjYgMjQ4IDQ5MS42em0xNTUuMS0zMjguNXYtNDYuOEgyMDkuM1YxOThINTQuMmwzNi43IDQ2aDExNy43djE5Ni44aDQ4LjhWMjQ1aDgzLjN2LTQ3aC04My4zdi0zNC44aDE0NS43em0tNzMuMyA0NS4xdjIzLjloLTgyLjl2MTk3LjRoLTI2LjhWMjMyLjFIOTYuM2wtMjAuMS0yMy45aDE0My45di04MC42aDE3MS44VjE1MmgtMTQ1djU2LjJ6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMXptLTI5LjYtMTkuN2w5LjMtMTEuNS0xMi43IDUuOS04LTEyLjQgMS43IDEzLjktMTQuMyAzLjggMTMuNyAyLjctLjggMTQuNyA2LjgtMTIuMiAxMy44IDUuM3ptMTY1LjQgMTQ1LjJsLTEzLjEgNS42LTcuMy0xMi4yIDEuMyAxNC4yLTEzLjkgMy4yIDEzLjkgMy4yLTEuMiAxNC4yIDcuMy0xMi4yIDEzLjEgNS41LTkuNC0xMC43em0xMDYuOS03Ny4ybC0yMC45IDkuMS0xMi0xOS42IDIuMiAyMi43LTIyLjMgNS40IDIyLjIgNC45LTEuOCAyMi45IDExLjUtMTkuNiAyMS4yIDguOC0xNS4xLTE3ek0yNDggMjkuOWMtMTI1LjMgMC0yMjYuOSAxMDEuNi0yMjYuOSAyMjYuOVMxMjIuNyA0ODMuNyAyNDggNDgzLjdzMjI2LjktMTAxLjYgMjI2LjktMjI2LjlTMzczLjMgMjkuOSAyNDggMjkuOXpNMzQyLjYgMTk2djUxaC04My4zdjE5NS43aC01Mi43VjI0NS45SDg5LjlsLTQwLTQ5LjloMTU3LjR2LTgxLjZoMTk3Ljh2NTAuN0gyNTkuNFYxOTZ6TTI0OCA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ySDIwMi41VjE5MEg0NS4xQzczLjEgMTA0LjggMTUzLjQgNDMuMiAyNDggNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMUw4Ny4xIDI1MmgxMTQuN3YxOTYuOGg2NC42VjI1M2g4My4zdi02Mi43aC04My4ydi0xOS4yaDE0NS42di01MC44YzMwLjggMzcgNDkuMyA4NC42IDQ5LjMgMTM2LjUuMSAxMTcuOS05NS41IDIxMy41LTIxMy40IDIxMy41ek0xNzguOCAyNzVsLTExLTIxLjQgMS43IDI0LjUtMjMuNyAzLjkgMjMuOCA1LjktMy43IDIzLjggMTMtMjAuOSAyMS41IDEwLjgtMTUuOC0xOC44IDE2LjktMTcuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmVsbG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyLjMgMzJINTYuMUMyNS4xIDMyIDAgNTcuMSAwIDg4Yy0uMSAwIDAtNCAwIDMzNiAwIDMwLjkgMjUuMSA1NiA1NiA1NmgzMzYuMmMzMC44LS4yIDU1LjctMjUuMiA1NS43LTU2Vjg4Yy4xLTMwLjgtMjQuOC01NS44LTU1LjYtNTZ6TTE5NyAzNzEuM2MtLjIgMTQuNy0xMi4xIDI2LjYtMjYuOSAyNi42SDg3LjRjLTE0LjguMS0yNi45LTExLjgtMjctMjYuNlYxMTcuMWMwLTE0LjggMTItMjYuOSAyNi45LTI2LjloODIuOWMxNC44IDAgMjYuOSAxMiAyNi45IDI2Ljl2MjU0LjJ6bTE5My4xLTExMmMwIDE0LjgtMTIgMjYuOS0yNi45IDI2LjloLTgxYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlWMTE3LjJjMC0xNC44IDEyLTI2LjkgMjYuOC0yNi45aDgxLjFjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45djE0Mi4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyaXBhZHZpc29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOC45MSwxNzguODIsNTc2LDEyNy41OEg0NzEuNjZhMzI2LjExLDMyNi4xMSwwLDAsMC0zNjcsMEgwbDQ3LjA5LDUxLjI0QTE0My45MTEsMTQzLjkxMSwwLDAsMCwyNDEuODYsMzkwLjczTDI4OCw0NDAuOTNsNDYuMTEtNTAuMTdBMTQzLjk0LDE0My45NCwwLDAsMCw1NzUuODgsMjg1LjE4aC0uMDNBMTQzLjU2LDE0My41NiwwLDAsMCw1MjguOTEsMTc4LjgyWk0xNDQuMDYsMzgyLjU3YTk3LjM5LDk3LjM5LDAsMSwxLDk3LjM5LTk3LjM5QTk3LjM5LDk3LjM5LDAsMCwxLDE0NC4wNiwzODIuNTdaTTI4OCwyODIuMzdjMC02NC4wOS00Ni42Mi0xMTkuMDgtMTA4LjA5LTE0Mi41OWEyODEsMjgxLDAsMCwxLDIxNi4xNywwQzMzNC42MSwxNjMuMywyODgsMjE4LjI5LDI4OCwyODIuMzdabTE0My44OCwxMDAuMmgtLjAxYTk3LjQwNSw5Ny40MDUsMCwxLDEsLjAxLDBaTTE0NC4wNiwyMzQuMTJoLS4wMWE1MS4wNiw1MS4wNiwwLDEsMCw1MS4wNiw1MS4wNnYtLjExQTUxLDUxLDAsMCwwLDE0NC4wNiwyMzQuMTJabTI4Ny44MiwwYTUxLjA2LDUxLjA2LDAsMSwwLDUxLjA2LDUxLjA2QTUxLjA2LDUxLjA2LDAsMCwwLDQzMS44OCwyMzQuMTJaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHVtYmxyU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS04Mi4zIDM2NC4yYy04LjUgOS4xLTMxLjIgMTkuOC02MC45IDE5LjgtNzUuNSAwLTkxLjktNTUuNS05MS45LTg3Ljl2LTkwaC0yOS43Yy0zLjQgMC02LjItMi44LTYuMi02LjJ2LTQyLjVjMC00LjUgMi44LTguNSA3LjEtMTAgMzguOC0xMy43IDUwLjktNDcuNSA1Mi43LTczLjIuNS02LjkgNC4xLTEwLjIgMTAtMTAuMmg0NC4zYzMuNCAwIDYuMiAyLjggNi4yIDYuMnY3Mmg1MS45YzMuNCAwIDYuMiAyLjggNi4yIDYuMnY1MS4xYzAgMy40LTIuOCA2LjItNi4yIDYuMmgtNTIuMVYzMjFjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yLjUgMy42IDIuMSA0LjYgNC45bDEzLjggNDAuMmMxIDMuMiAyIDYuNy0uMyA5LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHVtYmxyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOS44IDQ4MC4zYy0xMy42IDE0LjUtNTAgMzEuNy05Ny40IDMxLjctMTIwLjggMC0xNDctODguOC0xNDctMTQwLjZ2LTE0NEgxNy45Yy01LjUgMC0xMC00LjUtMTAtMTB2LTY4YzAtNy4yIDQuNS0xMy42IDExLjMtMTYgNjItMjEuOCA4MS41LTc2IDg0LjMtMTE3LjEuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNoNzAuOWM1LjUgMCAxMCA0LjUgMTAgMTB2MTE1LjJoODNjNS41IDAgMTAgNC40IDEwIDkuOXY4MS43YzAgNS41LTQuNSAxMC0xMCAxMGgtODMuNFYzNjBjMCAzNC4yIDIzLjcgNTMuNiA2OCAzNS44IDQuOC0xLjkgOS0zLjIgMTIuNy0yLjIgMy41LjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUd2l0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkxLjE3LDEwMy40N0gzNTIuNTR2MTA5LjdoMzguNjNaTTI4NSwxMDNIMjQ2LjM3VjIxMi43NUgyODVaTTEyMC44MywwLDI0LjMxLDkxLjQyVjQyMC41OEgxNDAuMTRWNTEybDk2LjUzLTkxLjQyaDc3LjI1TDQ4Ny42OSwyNTZWMFpNNDQ5LjA3LDIzNy43NWwtNzcuMjIsNzMuMTJIMjk0LjYxbC02Ny42LDY0di02NEgxNDAuMTRWMzYuNThINDQ5LjA3WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR3aXR0ZXJTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTQ4LjkgMTU4LjhjLjIgMi44LjIgNS43LjIgOC41IDAgODYuNy02NiAxODYuNi0xODYuNiAxODYuNi0zNy4yIDAtNzEuNy0xMC44LTEwMC43LTI5LjQgNS4zLjYgMTAuNC44IDE1LjguOCAzMC43IDAgNTguOS0xMC40IDgxLjQtMjgtMjguOC0uNi01My0xOS41LTYxLjMtNDUuNSAxMC4xIDEuNSAxOS4yIDEuNSAyOS42LTEuMi0zMC02LjEtNTIuNS0zMi41LTUyLjUtNjQuNHYtLjhjOC43IDQuOSAxOC45IDcuOSAyOS42IDguM2E2NS40NDcgNjUuNDQ3IDAgMCAxLTI5LjItNTQuNmMwLTEyLjIgMy4yLTIzLjQgOC45LTMzLjEgMzIuMyAzOS44IDgwLjggNjUuOCAxMzUuMiA2OC42LTkuMy00NC41IDI0LTgwLjYgNjQtODAuNiAxOC45IDAgMzUuOSA3LjkgNDcuOSAyMC43IDE0LjgtMi44IDI5LTguMyA0MS42LTE1LjgtNC45IDE1LjItMTUuMiAyOC0yOC44IDM2LjEgMTMuMi0xLjQgMjYtNS4xIDM3LjgtMTAuMi04LjkgMTMuMS0yMC4xIDI0LjctMzIuOSAzNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUd2l0dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1OS4zNyAxNTEuNzE2Yy4zMjUgNC41NDguMzI1IDkuMDk3LjMyNSAxMy42NDUgMCAxMzguNzItMTA1LjU4MyAyOTguNTU4LTI5OC41NTggMjk4LjU1OC01OS40NTIgMC0xMTQuNjgtMTcuMjE5LTE2MS4xMzctNDcuMTA2IDguNDQ3Ljk3NCAxNi41NjggMS4yOTkgMjUuMzQgMS4yOTkgNDkuMDU1IDAgOTQuMjEzLTE2LjU2OCAxMzAuMjc0LTQ0LjgzMi00Ni4xMzItLjk3NS04NC43OTItMzEuMTg4LTk4LjExMi03Mi43NzIgNi40OTguOTc0IDEyLjk5NSAxLjYyNCAxOS44MTggMS42MjQgOS40MjEgMCAxOC44NDMtMS4zIDI3LjYxNC0zLjU3My00OC4wODEtOS43NDctODQuMTQzLTUxLjk4LTg0LjE0My0xMDIuOTg1di0xLjI5OWMxMy45NjkgNy43OTcgMzAuMjE0IDEyLjY3IDQ3LjQzMSAxMy4zMTktMjguMjY0LTE4Ljg0My00Ni43ODEtNTEuMDA1LTQ2Ljc4MS04Ny4zOTEgMC0xOS40OTIgNS4xOTctMzcuMzYgMTQuMjk0LTUyLjk1NCA1MS42NTUgNjMuNjc1IDEyOS4zIDEwNS4yNTggMjE2LjM2NSAxMDkuODA3LTEuNjI0LTcuNzk3LTIuNTk5LTE1LjkxOC0yLjU5OS0yNC4wNCAwLTU3LjgyOCA0Ni43ODItMTA0LjkzNCAxMDQuOTM0LTEwNC45MzQgMzAuMjEzIDAgNTcuNTAyIDEyLjY3IDc2LjY3IDMzLjEzNyAyMy43MTUtNC41NDggNDYuNDU2LTEzLjMyIDY2LjU5OS0yNS4zNC03Ljc5OCAyNC4zNjYtMjQuMzY2IDQ0LjgzMy00Ni4xMzIgNTcuODI3IDIxLjExNy0yLjI3MyA0MS41ODQtOC4xMjIgNjAuNDI2LTE2LjI0My0xNC4yOTIgMjAuNzkxLTMyLjE2MSAzOS4zMDgtNTIuNjI4IDU0LjI1M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUeXBvMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzguNyA3OC40YzAtMjQuNyA1LjQtMzIuNCAxMy45LTM5LjQtNjkuNSA4LjUtMTQ5LjMgMzQtMTc2LjMgNjYuNC01LjQgNy43LTkuMyAyMC44LTkuMyAzNy4xQzcgMjQ2IDExMy44IDQ4MCAxOTEuMSA0ODBjMzYuMyAwIDk3LjMtNTkuNSAxNDYuNy0xMzktNyAyLjMtMTEuNiAyLjMtMTguNSAyLjMtNTcuMiAwLTE0MC42LTE5OC41LTE0MC42LTI2NC45ek0zMDEuNSAzMmMtMzAuMSAwLTQxLjcgNS40LTQxLjcgMzYuMyAwIDY2LjQgNTMuOCAxOTguNSAxMDEuNyAxOTguNSAyNi4zIDAgNzguOC05OS43IDc4LjgtMTgyLjMgMC00MC45LTY3LTUyLjUtMTM4LjgtNTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNC4xIDMySDMzLjlDMTUuMiAzMiAwIDQ3LjIgMCA2NS45VjQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0SDQxNGMxOC43IDAgMzMuOS0xNS4yIDMzLjktMzMuOVY2NS45QzQ0OCA0Ny4yIDQzMi44IDMyIDQxNC4xIDMyek0yMzcuNiAzOTEuMUMxNjMgMzk4LjYgOTYuNCAzNDQuMiA4OC45IDI2OS42aDk0LjRWMjkwYzAgMy43IDMgNi44IDYuOCA2LjhIMjU4YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTY3LjljMC0zLjctMy02LjgtNi44LTYuOGgtNjcuOWMtMy43IDAtNi44IDMtNi44IDYuOHYyMC40SDg4LjljNy02OS40IDY1LjQtMTIyLjIgMTM1LjEtMTIyLjIgNjkuNyAwIDEyOC4xIDUyLjggMTM1LjEgMTIyLjIgNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVYnVudHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNTIuNyA5M2M4LjgtMTUuMiAyOC4zLTIwLjUgNDMuNS0xMS43IDE1LjMgOC44IDIwLjUgMjguMyAxMS43IDQzLjYtOC44IDE1LjItMjguMyAyMC41LTQzLjUgMTEuNy0xNS4zLTguOS0yMC41LTI4LjQtMTEuNy00My42ek04Ny40IDI4Ny45Yy0xNy42IDAtMzEuOS0xNC4zLTMxLjktMzEuOSAwLTE3LjYgMTQuMy0zMS45IDMxLjktMzEuOSAxNy42IDAgMzEuOSAxNC4zIDMxLjkgMzEuOSAwIDE3LjYtMTQuMyAzMS45LTMxLjkgMzEuOXptMjguMSAzLjFjMjIuMy0xNy45IDIyLjQtNTEuOSAwLTY5LjkgOC42LTMyLjggMjkuMS02MC43IDU2LjUtNzkuMWwyMy43IDM5LjZjLTUxLjUgMzYuMy01MS41IDExMi41IDAgMTQ4LjhMMTcyIDM3MGMtMjcuNC0xOC4zLTQ3LjgtNDYuMy01Ni41LTc5em0yMjguNyAxMzEuN2MtMTUuMyA4LjgtMzQuNyAzLjYtNDMuNS0xMS43LTguOC0xNS4zLTMuNi0zNC44IDExLjctNDMuNiAxNS4yLTguOCAzNC43LTMuNiA0My41IDExLjcgOC44IDE1LjMgMy42IDM0LjgtMTEuNyA0My42em0uMy02OS41Yy0yNi43LTEwLjMtNTYuMSA2LjYtNjAuNSAzNS01LjIgMS40LTQ4LjkgMTQuMy05Ni43LTkuNGwyMi41LTQwLjNjNTcgMjYuNSAxMjMuNC0xMS43IDEyOC45LTc0LjRsNDYuMS43Yy0yLjMgMzQuNS0xNy4zIDY1LjUtNDAuMyA4OC40em0tNS45LTEwNS4zYy01LjQtNjItNzEuMy0xMDEuMi0xMjguOS03NC40bC0yMi41LTQwLjNjNDcuOS0yMy43IDkxLjUtMTAuOCA5Ni43LTkuNCA0LjQgMjguMyAzMy44IDQ1LjMgNjAuNSAzNSAyMy4xIDIyLjkgMzggNTMuOSA0MC4yIDg4LjVsLTQ2IC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVpa2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My45IDEyOHYyNTZMMjE4IDUxMiAwIDM4NFYxNjkuN2w4Ny42IDQ1LjF2MTE3bDEzMy41IDc1LjUgMTM1LjgtNzUuNXYtMTUxbC0xMDEuMS01Ny42IDg3LjYtNTMuMUw0NDMuOSAxMjh6TTMwOC42IDQ5LjFMMjIzLjggMGwtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbWJyYWNvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS4zNSA4QzExOC4zNiA3LjgzIDcuMTQgMTE4LjcyIDcgMjU1LjY4Yy0uMDcgMTM3IDExMSAyNDguMiAyNDggMjQ4LjI3IDEzNi44NSAwIDI0Ny44Mi0xMTAuNyAyNDgtMjQ3LjY3UzM5Mi4zNCA4LjE3IDI1NS4zNSA4em0xNDUgMjY2cS0xLjE0IDQwLjY4LTE0IDY1dC00My41MSAzNXEtMzAuNjEgMTAuNy04NS40NSAxMC40N2gtNC42cS01NC43OC4yMi04NS40NC0xMC40N3QtNDMuNTItMzVxLTEyLjg1LTI0LjM2LTE0LTY1YTIyNC44MSAyMjQuODEgMCAwIDEgMC0zMC43MSA0MTguMzcgNDE4LjM3IDAgMCAxIDMuNi00My44OGMxLjg4LTEzLjM5IDMuNTctMjIuNTggNS40LTMyIDEtNC44OCAxLjI4LTYuNDIgMS44Mi04LjQ1YTUuMDkgNS4wOSAwIDAgMSA0LjktMy44OWguNjlsMzIgNWE1LjA3IDUuMDcgMCAwIDEgNC4xNiA1IDUgNSAwIDAgMSAwIC43N2wtMS43IDguNzhxLTIuNDEgMTMuMjUtNC44NCAzMy42OGEzODAuNjIgMzgwLjYyIDAgMCAwLTIuNjQgNDIuMTVxLS4yOCA0MC40MyA4LjEzIDU5LjgzYTQzLjg3IDQzLjg3IDAgMCAwIDMxLjMxIDI1LjE4QTI0MyAyNDMgMCAwIDAgMjUwIDM0MC42aDEwLjI1YTI0Mi42NCAyNDIuNjQgMCAwIDAgNTcuMjctNS4xNiA0My44NiA0My44NiAwIDAgMCAzMS4xNS0yNS4yM3E4LjUzLTE5LjQyIDguMTMtNTkuNzhhMzg4IDM4OCAwIDAgMC0yLjYtNDIuMTVxLTIuNDgtMjAuMzgtNC44OS0zMy42OGwtMS42OS04Ljc4YTUgNSAwIDAgMSAwLS43NyA1IDUgMCAwIDEgNC4yLTVsMzItNWguODJhNSA1IDAgMCAxIDQuOSAzLjg5Yy41NSAyLjA1LjgxIDMuNTcgMS44MyA4LjQ1IDEuODIgOS42MiAzLjUyIDE4Ljc4IDUuMzkgMzJhNDE1LjcxIDQxNS43MSAwIDAgMSAzLjYxIDQzLjg4IDIyOC4wNiAyMjguMDYgMCAwIDEtLjA0IDMwLjczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuY2hhcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzEuNzMsMjMyLjgxM0E1LjM4MSw1LjM4MSwwLDAsMCwxNzYuNywyMjkuNSw0OC4wODEsNDguMDgxLDAsMCwxLDE5MS42LDIwNC4yNDRjMS4yNDMtLjgyOCwxLjY1Ny0yLjQ4NCwxLjY1Ny00LjE0MWE0LjIyLDQuMjIsMCwwLDAtMi4wNzEtMy4zMTJMNzQuNDI5LDEyOC40NzMsMTQ4Ljk1OCw4NWE5Ljk0MSw5Ljk0MSwwLDAsMCw0Ljk2OC04LjI4MSw5LjEwOCw5LjEwOCwwLDAsMC00Ljk2OC04LjI4MUwxMjYuNiw1NS42YTkuNzQ4LDkuNzQ4LDAsMCwwLTkuNTIzLDBsLTEwMC4yLDU3Ljk2NmE5Ljk0Myw5Ljk0MywwLDAsMC00Ljk2OSw4LjI4MVYyMzYuOTU0YTkuMTA5LDkuMTA5LDAsMCwwLDQuOTY5LDguMjgxTDM5LjIzNSwyNTguMDdhOC44MjksOC44MjksMCwwLDAsNC45NjgsMS4yNDIsOS40LDkuNCwwLDAsMCw2LjYyNS0yLjQ4NCwxMC44LDEwLjgsMCwwLDAsMi45LTcuMDM5VjE2NC41TDE2OS42NiwyMzIuNEE0LjUsNC41LDAsMCwwLDE3MS43MywyMzIuODEzWk0zMjMuMjcyLDM3Ny43M2ExMi40NzgsMTIuNDc4LDAsMCwwLTQuOTY5LDEuMjQybC03NC41MjgsNDMuMDYyVjI4Ny44ODJjMC0yLjktMi45LTUuOC02LjIxMS00LjU1NWE1My4wMzYsNTMuMDM2LDAsMCwxLTI4Ljk4NC40MTQsNC44Niw0Ljg2LDAsMCwwLTYuMjEsNC41NTVWNDIxLjYxOWwtNzQuNTI5LTQzLjA2MWE4LjgzLDguODMsMCwwLDAtNC45NjktMS4yNDIsOS42MzEsOS42MzEsMCwwLDAtOS41MjMsOS41MjN2MjYuMDg1YTkuMTA3LDkuMTA3LDAsMCwwLDQuOTY5LDguMjgxbDEwMC4yLDU3LjU1M0E4LjgyOSw4LjgyOSwwLDAsMCwyMjMuNDg2LDQ4MGExMS4wMjcsMTEuMDI3LDAsMCwwLDQuOTY5LTEuMjQybDEwMC4yLTU3LjU1M2E5Ljk0MSw5Ljk0MSwwLDAsMCw0Ljk2OC04LjI4MVYzODYuODM5QzMzMi44LDM4Mi4yODUsMzI4LjI0LDM3Ny43MywzMjMuMjcyLDM3Ny43M1pNMjg2LjAwNyw3OGEyMywyMywwLDEsMC0yMy0yM0EyMywyMywwLDAsMCwyODYuMDA3LDc4Wm02My42MjctMTAuMDg2YTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDM0OS42MzQsNjcuOTE0Wk00MTIuODE2LDE1MS42YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMTUxLjZabS02My4xODItOS4yYTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDM0OS42MzQsMTQyLjRabS02My42MjcsODMuMjQ0YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDI4Ni4wMDcsMjI1LjY0OFptLTYyLjA3NCwzNi4zNThhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsMjIzLjkzMywyNjIuMDA2Wm0xODguODgzLTgyLjM1OGEyMywyMywwLDEsMCwyMywyM0EyMywyMywwLDAsMCw0MTIuODE2LDE3OS42NDhabTAsNzIuMjcyYTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMjUxLjkyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXJlZ2lzdHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ySDg1LjNDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6bS04OS4xLTE5My4xdi0xMi40SDB2MTIuNGMwIDIuNSAwIDUgLjEgNy40aDEwMy4xYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N0g4LjVjMi42IDguNSA1LjggMTYuOCA5LjYgMjQuOGgxMzguM2MtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdIMS4zYy45IDcuNiAyLjIgMTUgMy45IDIyLjNoMTA5LjdjLTQtNi45LTcuMi0xNC40LTkuMi0yMi4zem0tMi44LTY5LjNIMHYxNy4zaDEwMi45em0wLTE3My4ySDB2NC45aDEwMi45em0wLTM0LjdIMHYyLjVoMTAyLjl6bTAgNjkuM0gwdjcuNGgxMDIuOXptMCAxMDRIMHYxNC44aDEwMi45em0wLTY5LjNIMHY5LjloMTAyLjl6bTAgMzQuNkgwVjE4M2gxMDIuOXptMTY2LjIgMTYwLjloMTA5LjdjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM0gyNzguM2MtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdIMzg0VjEzNkgyODEuMXptMCAzNy4ySDM4NHYtMTIuNEgyODEuMXptMC03NC4zSDM4NHYtNy40SDI4MS4xem0wLTc2Ljd2Mi41SDM4NFYzMnptLTIwMyA0MTAuOWgyMjcuN2MxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43SDQ0LjljOS42IDExIDIxLjQgMjEgMzMuMiAyOS43em0yMDMtMzcxLjNIMzg0di00LjlIMjgxLjF6bTAgMTQ4LjVIMzg0di0xNC44SDI4MS4xek0zOC44IDQwNS43aDMwNS4zYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkgyM2M1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMUgzNjdjMy43LTggNS44LTE2LjIgOC41LTI0LjhoLTExNWMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40aDEwMy4xYy4xLTIuNS4yLTQuOS4yLTcuNHYtMTIuNEgyODEuMXptMC0yOS43SDM4NHYtMTcuM0gyODEuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTguMTEsMjA2LjQsNDQ1LjMxLDE0LjcyLDI0OC4yLDY2LjA4LDIxOSwxMTYuMTRsLTU5LjItLjQzTDE1LjU0LDI1NiwxNTkuODIsMzk2LjMybDU5LjE3LS40MywyOS4yNCw1MCwxOTcuMDgsNTEuMzYsNTIuOC0xOTEuNjItMzAtNDkuNjNaTTIyMy43NywxMjQuMiwzNzQuNTUsODYuNTEsMjg4LDIzMi4zM0gxMTQuODdabTAsMjYzLjYzTDExNC44NywyNzkuNzFIMjg4bDg2LjU1LDE0NS44MVptMTkzLDE0TDMzMC4xNywyNTZsODYuNTgtMTQ1Ljg0TDQ1OC41NiwyNTZaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5zcGxhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4LDIzMC4xN1Y0ODBIMFYyMzAuMTdIMTQxLjEzVjM1NS4wOUgzMDYuODdWMjMwLjE3Wk0zMDYuODcsMzJIMTQxLjEzVjE1Ni45MUgzMDYuODdaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW50YXBwZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDEuMyA0OS45Yy03OS44IDE2MC4xLTg0LjYgMTUyLjUtODcuOSAxNzMuMmwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjYgNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRsMTQ4LjktMjA3LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMS42IDEuOC0uNiAzLjctMi40IDQuMmwtNC41IDEuMWMtMy40LjktMi41IDQuNC0yLjMgNy40LjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjEgMzYuNGMzLjQuOSAyLjUgNC40IDIuMyA3LjQtLjIgMi43IDIuMSAzLjUgNi40IDYgNy45IDE1LjkgMTUuMyAzMC41IDIyLjIgNDQgLjcgMS4zIDIuMyAxLjUgMy4zLjUgMTEuMi0xMiAyNC42LTI2LjIgNDAuNS00Mi42IDEuMy0xLjQgMS40LTMuNS4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNi4zLTMuMyAxLjQtOC4xLTIuOC04LjItNC41LS4xLTEzLjIgMS4xLTI1LjYgMTAtMTIuMyA4LjktMTYuNCAxNi44LTE3LjcgMjEuMS0xLjQgNC4yIDMuNiA0LjYgNi44IDUuNHpNNjIwIDQwNi43TDQ3MS4yIDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYuNS00Ni4zIDg4LjgtNDcuMSA4Mi44LTQ5IDk0LjgtMS43IDEwLjctMS4zIDIwIC4zIDI5LjggMS45IDEyIDYuNiAyMy41IDEzLjcgMzMuNGwxNDguOSAyMDcuOWM3LjYgMTAuNiAyMC4yIDE2LjIgMzMuMSAxNC43IDQwLjMtNC45IDc4LTMyIDk1LjctNjguNiA1LjQtMTEuOSA0LjMtMjUuOS0zLjQtMzYuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAzLjIgMzAzYy01LjIgMy42LTMyLjYgMTMuMS0zMi42LTE5VjE4MEgzNy45djEwMi42YzAgNzQuOSA4MC4yIDUxLjEgOTcuOSAzOVYxODBoLTMyLjZ6TTQgNzQuODJ2MjIwLjljMCAxMDMuNyA3NC45IDEzNS4yIDE4Ny43IDE4NC4xIDExMi40LTQ4LjkgMTg3LjctODAuMiAxODcuNy0xODQuMVY3NC44MmMtMTE2LjMtNjEuNi0yODEuOC00OS42LTM3NS40IDB6bTM1OC4xIDIyMC45YzAgODYuNi01My4yIDExMy42LTE3MC40IDE2NS4zLTExNy41LTUxLjgtMTcwLjUtNzguNy0xNzAuNS0xNjUuM3YtMTI2LjRjMTAyLjMtOTMuOCAyMzEuNi0xMDAgMzQwLjktODkuOHptLTIwOS42LTEwNy40djIxMi44aDMyLjd2LTY4LjdjMjQuNCA3LjMgNzEuNy0yLjYgNzEuNy03OC41IDAtOTcuNC04MC43LTgwLjkyLTEwNC40LTY1LjZ6bTMyLjcgMTE3LjN2LTEwMC4zYzguNC00LjIgMzguNC0xMi43IDM4LjQgNDkuMyAwIDY3LjktMzYuNCA1MS44LTM4LjQgNTF6bTc5LjEtODYuNGMuMSA0Ny4zIDUxLjYgNDIuNSA1Mi4yIDcwLjQuNiAyMy41LTMwLjQgMjMtNTAuOCA0Ljl2MzAuMWMzNi4yIDIxLjUgODEuOSA4LjEgODMuMi0zMy41IDEuNy01MS41LTU0LjEtNDYuNi01My40LTczLjIuNi0yMC4zIDMwLjYtMjAuNSA0OC41LTIuMnYtMjguNGMtMjguNS0yMi03OS45LTkuMi03OS43IDMxLjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MS41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTQ3LjkgMzE3Yy0xLjQuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03Ljh2LTM1LjZIMjk1LjdjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOUgzOTJWMzU0YzAtNSAzLjktOC45IDguOS04LjlINDkwYzUgMCA4LjkgMy45IDguOSA4Ljl2ODkuMWMwIDUtMy45IDguOS04LjkgOC45aC04OS4xYy01IDAtOC45LTMuOS04LjktOC45di0yNi43aC0yNi43Yy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNUgxNDAuM2MtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjVDMzIgMzI3LjMgMCAyOTUuMyAwIDI1NnMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjRDMjU1IDg4LjcgMjczIDk1LjcgMzIzLjggOTUuN2M3LjUtMjAuOSAyNy0zNS42IDUwLjQtMzUuNiAyOS41IDAgNTMuNSAyMy45IDUzLjUgNTMuNXMtMjMuOSA1My41LTUzLjUgNTMuNWMtMjMuNCAwLTQyLjktMTQuOC01MC40LTM1LjZIMjk0Yy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjloMzEwLjF2LTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44IDIuOC0xLjcgNi40LTEuNCA4LjkuM2w4OS4xIDUzLjVjMi44IDEuMSA0LjUgNC4xIDQuNSA3LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjAuMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGgtMjdjLS4xIDAtMS41LTEuNC0xMC45IDgtMTEuMiA1LjYtMzcuOSA2LjMtMzcuOSA4LjcgMCA0LjUgNzAuMy0zLjEgODguMSAwIDkuNSAxLjUtMS41IDIwLjQtNC40IDMyLS41IDQuNSAyLjQgMi4zIDMuOC4xem0tMTEyLjEgMjIuNmM2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjNoMTk2LjZjLTIuNy0yOC4yLTE1Mi45LTIyLjYtMzM3LjktMjIuNkwyNyA0MTUuOGMxOTYuNC05Ny4zIDI1OC45LTEzMC4zIDMyMS4yLTE1MS41ek05NC43IDk2YzI1My4zIDUzLjcgMzMwIDY1LjcgMzMyLjEgODUuMiAzNi40IDAgNDUuOSAwIDUyLjQgNi42IDIxLjEgMTkuNy0xNC42IDY3LjctMTQuNiA2Ny43LTQuNCAyLjktNDA2LjQgMTYwLjItNDA2LjQgMTYwLjJoNDIzLjFMNTQ5IDk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzc3VubmFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ni44IDI4NS4xbDUuNyAxNC40aC04LjJjLTEuMy0zLjItMy4xLTcuNy0zLjgtOS41LTIuNS02LjMtMS4xLTguNCAwLTEwIDEuOS0yLjcgMy4yLTQuNCAzLjYtNS4yIDAgMi4yLjggNS43IDIuNyAxMC4zem0yOTcuMyAxOC44Yy0yLjEgMTMuOC01LjcgMjcuMS0xMC41IDM5LjdsNDMgMjMuNC00NC44LTE4LjhjLTUuMyAxMy4yLTEyIDI1LjYtMTkuOSAzNy4ybDM0LjIgMzAuMi0zNi44LTI2LjRjLTguNCAxMS44LTE4IDIyLjYtMjguNyAzMi4zbDI0LjkgMzQuNy0yOC4xLTMxLjhjLTExIDkuNi0yMy4xIDE4LTM2LjEgMjUuMWwxNS43IDM3LjItMTkuMy0zNS4zYy0xMy4xIDYuOC0yNyAxMi4xLTQxLjYgMTUuOWw2LjcgMzguNC0xMC41LTM3LjRjLTE0LjMgMy40LTI5LjIgNS4zLTQ0LjUgNS40TDI1NiA1MTJsLTEuOS0zOC40Yy0xNS4zLS4xLTMwLjItMi00NC41LTUuM0wxOTkgNTA1LjZsNi43LTM4LjJjLTE0LjYtMy43LTI4LjYtOS4xLTQxLjctMTUuOGwtMTkuMiAzNS4xIDE1LjYtMzdjLTEzLTctMjUuMi0xNS40LTM2LjItMjUuMWwtMjcuOSAzMS42IDI0LjctMzQuNGMtMTAuNy05LjctMjAuNC0yMC41LTI4LjgtMzIuM2wtMzYuNSAyNi4yIDMzLjktMjkuOWMtNy45LTExLjYtMTQuNi0yNC4xLTIwLTM3LjNsLTQ0LjQgMTguN0w2Ny44IDM0NGMtNC44LTEyLjctOC40LTI2LjEtMTAuNS0zOS45bC01MSA5IDUwLjMtMTQuMmMtMS4xLTguNS0xLjctMTcuMS0xLjctMjUuOSAwLTQuNy4yLTkuNC41LTE0LjFMMCAyNTZsNTYtMi44YzEuMy0xMy4xIDMuOC0yNS44IDcuNS0zOC4xTDYuNCAxOTlsNTguOSAxMC40YzQtMTIgOS4xLTIzLjUgMTUuMi0zNC40bC01NS4xLTMwIDU4LjMgMjQuNkM5MCAxNTkgOTcuMiAxNDkuMiAxMDUuMyAxNDBMNTUuOCA5Ni40bDUzLjkgMzguN2M4LjEtOC42IDE3LTE2LjUgMjYuNi0yMy42bC00MC01NS42IDQ1LjYgNTEuNmM5LjUtNi42IDE5LjctMTIuMyAzMC4zLTE3LjJsLTI3LjMtNjQuOSAzMy44IDYyLjFjMTAuNS00LjQgMjEuNC03LjkgMzIuNy0xMC40TDE5OSA2LjRsMTkuNSA2OS4yYzExLTIuMSAyMi4zLTMuMiAzMy44LTMuNEwyNTYgMGwzLjYgNzIuMmMxMS41LjIgMjIuOCAxLjQgMzMuOCAzLjVMMzEzIDYuNGwtMTIuNCA3MC43YzExLjMgMi42IDIyLjIgNi4xIDMyLjYgMTAuNWwzMy45LTYyLjItMjcuNCA2NS4xYzEwLjYgNC45IDIwLjcgMTAuNyAzMC4yIDE3LjJsNDUuOC01MS44LTQwLjEgNTUuOWM5LjUgNy4xIDE4LjQgMTUgMjYuNSAyMy42bDU0LjItMzguOS00OS43IDQzLjljOCA5LjEgMTUuMiAxOC45IDIxLjUgMjkuNGw1OC43LTI0LjctNTUuNSAzMC4yYzYuMSAxMC45IDExLjEgMjIuMyAxNS4xIDM0LjNsNTkuMy0xMC40LTU3LjUgMTYuMmMzLjcgMTIuMiA2LjIgMjQuOSA3LjUgMzcuOUw1MTIgMjU2bC01NiAyLjhjLjMgNC42LjUgOS4zLjUgMTQuMSAwIDguNy0uNiAxNy4zLTEuNiAyNS44bDUwLjcgMTQuMy01MS41LTkuMXptLTIxLjgtMzFjMC05Ny41LTc5LTE3Ni41LTE3Ni41LTE3Ni41cy0xNzYuNSA3OS0xNzYuNSAxNzYuNSA3OSAxNzYuNSAxNzYuNSAxNzYuNSAxNzYuNS03OSAxNzYuNS0xNzYuNXptLTI0IDBjMCA4NC4zLTY4LjMgMTUyLjYtMTUyLjYgMTUyLjZzLTE1Mi42LTY4LjMtMTUyLjYtMTUyLjYgNjguMy0xNTIuNiAxNTIuNi0xNTIuNiAxNTIuNiA2OC4zIDE1Mi42IDE1Mi42ek0xOTUgMjQxYzAgMi4xIDEuMyAzLjggMy42IDUuMSAzLjMgMS45IDYuMiA0LjYgOC4yIDguMiAyLjgtNS43IDQuMy05LjUgNC4zLTExLjIgMC0yLjItMS4xLTQuNC0zLjItNy0yLjEtMi41LTMuMi01LjItMy4zLTcuNy02LjUgNi44LTkuNiAxMC45LTkuNiAxMi42em0tNDAuNy0xOWMwIDIuMSAxLjMgMy44IDMuNiA1LjEgMy41IDEuOSA2LjIgNC42IDguMiA4LjIgMi44LTUuNyA0LjMtOS41IDQuMy0xMS4yIDAtMi4yLTEuMS00LjQtMy4yLTctMi4xLTIuNS0zLjItNS4yLTMuMy03LjctNi41IDYuOC05LjYgMTAuOS05LjYgMTIuNnptLTE5IDBjMCAyLjEgMS4zIDMuOCAzLjYgNS4xIDMuMyAxLjkgNi4yIDQuNiA4LjIgOC4yIDIuOC01LjcgNC4zLTkuNSA0LjMtMTEuMiAwLTIuMi0xLjEtNC40LTMuMi03LTIuMS0yLjUtMy4yLTUuMi0zLjMtNy43LTYuNCA2LjgtOS42IDEwLjktOS42IDEyLjZ6bTIwNC45IDg3LjljLTguNC0zLTguNy02LjgtOC43LTE1LjZWMTgyYy04LjIgMTIuNS0xNC4yIDE4LjYtMTggMTguNiA2LjMgMTQuNCA5LjUgMjMuOSA5LjUgMjguM3Y2NC4zYzAgMi4yLTIuMiA2LjUtNC43IDYuNWgtMThjLTIuOC03LjUtMTAuMi0yNi45LTE1LjMtNDAuMy0yIDIuNS03LjIgOS4yLTEwLjcgMTMuNyAyLjQgMS42IDQuMSAzLjYgNS4yIDYuMyAyLjYgNi43IDYuNCAxNi41IDcuOSAyMC4yaC05LjJjLTMuOS0xMC40LTkuNi0yNS40LTExLjgtMzEuMS0yIDIuNS03LjIgOS4yLTEwLjcgMTMuNyAyLjQgMS42IDQuMSAzLjYgNS4yIDYuMy44IDIgMi44IDcuMyA0LjMgMTAuOUgyNTZjLTEuNS00LjEtNS42LTE0LjYtOC40LTIyLTIgMi41LTcuMiA5LjItMTAuNyAxMy43IDIuNSAxLjYgNC4zIDMuNiA1LjIgNi4zLjIuNi41IDEuNC42IDEuN0gyMjVjLTQuNi0xMy45LTExLjQtMjcuNy0xMS40LTM0LjEgMC0yLjIuMy01LjEgMS4xLTguMi04LjggMTAuOC0xNCAxNS45LTE0IDI1IDAgNy41IDEwLjQgMjguMyAxMC40IDMzLjMgMCAxLjctLjUgMy4zLTEuNCA0LjktOS42LTEyLjctMTUuNS0yMC43LTE4LjgtMjAuN2gtMTJsLTExLjItMjhjLTMuOC05LjYtNS43LTE2LTUuNy0xOC44IDAtMy44LjUtNy43IDEuNy0xMi4yLTEgMS4zLTMuNyA0LjctNS41IDcuMS0uOC0yLjEtMy4xLTcuNy00LjYtMTEuNS0yLjEgMi41LTcuNSA5LjEtMTEuMiAxMy42LjkgMi4zIDMuMyA4LjEgNC45IDEyLjItMi41IDMuMy05LjEgMTEuOC0xMy42IDE3LjctNCA1LjMtNS44IDEzLjMtMi43IDIxLjggMi41IDYuNyAyIDcuOS0xLjcgMTQuMUgxOTFjNS41IDAgMTQuMyAxNCAxNS41IDIyIDEzLjItMTYgMTUuNC0xOS42IDE2LjgtMjEuNmgxMDdjMy45IDAgNy4yLTEuOSA5LjktNS44em0yMC4xLTI2LjZWMTgxLjdjLTkgMTIuNS0xNS45IDE4LjYtMjAuNyAxOC42IDcuMSAxNC40IDEwLjcgMjMuOSAxMC43IDI4LjN2NjYuM2MwIDE3LjUgOC42IDIwLjQgMjQgMjAuNCA4LjEgMCAxMi41LS44IDEzLjctMi43LTQuMy0xLjYtNy42LTIuNS05LjktMy4zLTguMS0zLjItMTcuOC03LjQtMTcuOC0yNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWYWFkaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjUgMTQwLjdjMS41LTE3LjYgNC45LTUyLjcgNDkuOC01Mi43aDk4LjZjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNlY1NC4xYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjF2MzYuNWMwIDQyLjktMjEuNSA2Mi02Ni44IDYySDI4MC43Yy0zMC4xIDAtMzMgMTQuNy0zMyAyNy4xIDAgMS4zLS4xIDIuNS0uMiAzLjctLjcgMTIuMy0xMC45IDIyLjItMjMuNCAyMi4ycy0yMi43LTkuOC0yMy40LTIyLjJjLS4xLTEuMi0uMi0yLjQtLjItMy43IDAtMTIuMy0zLTI3LjEtMzMtMjcuMUg2Ni44Yy00NS4zIDAtNjYuOC0xOS4xLTY2LjgtNjJWNTQuMUMwIDQxLjkgOS40IDMyIDIxLjYgMzJzMjEuNSA5LjkgMjEuNSAyMi4xdjEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGg5OC42YzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43aC45ek0yMjQgNDU2YzExLjUgMCAyMS40LTcgMjUuNy0xNi4zIDEuMS0xLjggOTcuMS0xNjkuNiA5OC4yLTE3MS40IDExLjktMTkuNi0zLjItNDQuMy0yNy4yLTQ0LjMtMTMuOSAwLTIzLjMgNi40LTI5LjggMjAuM0wyMjQgMzYybC02Ni45LTExNy43Yy02LjQtMTMuOS0xNS45LTIwLjMtMjkuOC0yMC4zLTI0IDAtMzkuMSAyNC42LTI3LjIgNDQuMyAxLjEgMS45IDk3LjEgMTY5LjYgOTguMiAxNzEuNCA0LjMgOS4zIDE0LjIgMTYuMyAyNS43IDE2LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhY29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJoLTY0bC04MC43IDE5MmgtOTQuNUw2NCAzMkgwbDQ4IDExMkgwdjQ4aDY4LjVsMTMuOCAzMkgwdjQ4aDEwMi44TDE5MiA0ODBsODkuMi0yMDhIMzg0di00OGgtODIuM2wxMy44LTMySDM4NHYtNDhoLTQ4bDQ4LTExMnpNMTkyIDMzNmwtMjctNjRoNTRsLTI3IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWRlb1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yODAuNyAzODEuMmMtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDAtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjF2LjRjNy43IDIyLjUgMTEuOCA0Ni4yIDExLjggNzAgMCA1NC4xLTIxLjkgOTktNjguMyAxMjguMmwtMi40LjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjZ6TTMwOSAyMzMuN2MtMTMuMyAwLTI1LjEtNy4xLTM0LjQtMTYuMSAyMS45LTEyIDQ5LjYtMzAuNyA2Mi4zLTUzIDEuNS0zIDQuMS04LjYgNC41LTEyLTEyLjUgMjcuOS00NC4yIDQ5LjgtNzMuOSA1Ni43LTQuNy03LjMtNy41LTE1LjUtNy41LTI0LjMgMC0xMC4zIDUuMi0yNC4xIDEyLjktMzEuNiAyMS42LTIwLjUgNTMtOC41IDcyLjQtNTAgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc2LjIgMTUwLjV2LjdDMjU4LjMgOTguNiAyMzMuNiA0Ny44IDIwNS40IDBjNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MEM5NSA0NTUuMiA0OS40IDM5OCA0OS40IDMyOS4yYzAtNzUuNiA1Ny40LTE0Mi4zIDEzNS40LTE0Mi4zIDE2LjggMCAzMy43IDMuMSA0OS4xIDkuNiAxLjctMTUuMSA2LjUtMjkuOSAxMy40LTQzLjMtMTkuOS03LjItNDEuMi0xMC43LTYyLjUtMTAuNy0xNjEuNSAwLTIzOC43IDE5NS45LTEyOS45IDMxMy43IDY3LjkgNzQuNiAxOTIgNzMuOSAyNTkuOCAwIDU2LjYtNjEuMyA2MC45LTE0Mi40IDM2LjQtMjAxLTEyLjcgOC0yNy4xIDEzLjktNDIuMiAxN3pNNDE4LjEgMTEuN2MtMzEgNjYuNS04MS4zIDQ3LjItMTE1LjggODAuMS0xMi40IDEyLTIwLjYgMzQtMjAuNiA1MC41IDAgMTQuMSA0LjUgMjcuMSAxMiAzOC44IDQ3LjQtMTEgOTguMy00NiAxMTguMi05MC43LS43IDUuNS00LjggMTQuNC03LjIgMTkuMi0yMC4zIDM1LjctNjQuNiA2NS42LTk5LjcgODQuOSAxNC44IDE0LjQgMzMuNyAyNS44IDU1IDI1LjggNzkgMCAxMTAuMS0xMzQuNiA1OC4xLTIwOC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NCA0OS45QzQzMS4zIDM4LjIgMzc5LjkuOSAyNjUuMy40YzAgMC0xMzUuMS04LjEtMjAwLjkgNTIuM0MyNy44IDg5LjMgMTQuOSAxNDMgMTMuNSAyMDkuNWMtMS40IDY2LjUtMy4xIDE5MS4xIDExNyAyMjQuOWguMWwtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1Ny45IDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkuNC04NS43LjQtODUuNy0uMSAwLS4xIDAgMCAwLTEwMS44LTI4LjItOTUuOC0xMzQuMy05NC43LTE4OS44IDEuMS01NS41IDExLjYtMTAxIDQyLjYtMTMxLjYgNTUuNy01MC41IDE3MC40LTQzIDE3MC40LTQzIDk2LjkuNCAxNDMuMyAyOS42IDE1NC4xIDM5LjQgMzUuNyAzMC42IDUzLjkgMTAzLjggNDAuNiAyMTEuMXptLTEzOS04MC44Yy40IDguNi0xMi41IDkuMi0xMi45LjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40LjctMTIuOSAyNy45IDEuNSA0My40IDE3LjUgNDQuOCA0Ni4yem0yMC4zIDExLjNjMS00Mi40LTI1LjUtNzUuNi03NS44LTc5LjMtOC41LS42LTcuNi0xMy41LjktMTIuOSA1OCA0LjIgODguOSA0NC4xIDg3LjggOTIuNS0uMSA4LjYtMTMuMSA4LjItMTIuOS0uM3ptNDcgMTMuNGMuMSA4LjYtMTIuOSA4LjctMTIuOS4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcuNSAxMzMgNTEuNCAxMzMuNyAxMzkuMnpNMzc0LjkgMzI5di4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44aC4yYzkuMi00LjggMTgtMy4yIDIzLjkgMy45IDAgMCAxMi40IDE0LjggMTcuNyAyMi4xIDUgNi44IDExLjcgMTcuNyAxNS4yIDIzLjggNi4xIDEwLjkgMi4zIDIyLTMuNyAyNi42bC0xMiA5LjZjLTYuMSA0LjktNS4zIDE0LTUuMyAxNHMxNy44IDY3LjMgODQuMyA4NC4zYzAgMCA5LjEuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmltZW9TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTE2LjIgMTQ5LjZjLTEuNCAzMS4xLTIzLjIgNzMuOC02NS4zIDEyNy45LTQzLjUgNTYuNS04MC4zIDg0LjgtMTEwLjQgODQuOC0xOC43IDAtMzQuNC0xNy4yLTQ3LjMtNTEuNi0yNS4yLTkyLjMtMzUuOS0xNDYuNC01Ni43LTE0Ni40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzM2LjktMzIuNCA3Mi4xLTY4LjQgOTQuMS03MC40IDI0LjktMi40IDQwLjIgMTQuNiA0NiA1MS4xIDIwLjUgMTI5LjYgMjkuNiAxNDkuMiA2Ni44IDkwLjUgMTMuNC0yMS4yIDIwLjYtMzcuMiAyMS41LTQ4LjMgMy40LTMyLjgtMjUuNi0zMC42LTQ1LjItMjIuMiAxNS43LTUxLjUgNDUuOC03Ni41IDkwLjEtNzUuMSAzMi45IDEgNDguNCAyMi40IDQ2LjUgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmltZW9WIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ny44IDE1My42Yy0yIDQzLjYtMzIuNCAxMDMuMy05MS40IDE3OS4xLTYwLjkgNzkuMi0xMTIuNCAxMTguOC0xNTQuNiAxMTguOC0yNi4xIDAtNDguMi0yNC4xLTY2LjMtNzIuM0MxMDAuMyAyNTAgODUuMyAxNzQuMyA1Ni4yIDE3NC4zYy0zLjQgMC0xNS4xIDcuMS0zNS4yIDIxLjFMMCAxNjguMmM1MS42LTQ1LjMgMTAwLjktOTUuNyAxMzEuOC05OC41IDM0LjktMy40IDU2LjMgMjAuNSA2NC40IDcxLjUgMjguNyAxODEuNSA0MS40IDIwOC45IDkzLjYgMTI2LjcgMTguNy0yOS42IDI4LjgtNTIuMSAzMC4yLTY3LjYgNC44LTQ1LjktMzUuOC00Mi44LTYzLjMtMzEgMjItNzIuMSA2NC4xLTEwNy4xIDEyNi4yLTEwNS4xIDQ1LjggMS4yIDY3LjUgMzEuMSA2NC45IDg5LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmltZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAzLjIgMzJINDQuOEMyMC4xIDMyIDAgNTIuMSAwIDc2Ljh2MzU4LjRDMCA0NTkuOSAyMC4xIDQ4MCA0NC44IDQ4MGgzNTguNGMyNC43IDAgNDQuOC0yMC4xIDQ0LjgtNDQuOFY3Ni44YzAtMjQuNy0yMC4xLTQ0LjgtNDQuOC00NC44ek0zNzcgMTgwLjhjLTEuNCAzMS41LTIzLjQgNzQuNy02NiAxMjkuNC00NCA1Ny4yLTgxLjMgODUuOC0xMTEuNyA4NS44LTE4LjkgMC0zNC44LTE3LjQtNDcuOS01Mi4zLTI1LjUtOTMuMy0zNi40LTE0OC01Ny40LTE0OC0yLjQgMC0xMC45IDUuMS0yNS40IDE1LjJsLTE1LjItMTkuNmMzNy4zLTMyLjggNzIuOS02OS4yIDk1LjItNzEuMiAyNS4yLTIuNCA0MC43IDE0LjggNDYuNSA1MS43IDIwLjcgMTMxLjIgMjkuOSAxNTEgNjcuNiA5MS42IDEzLjUtMjEuNCAyMC44LTM3LjcgMjEuOC00OC45IDMuNS0zMy4yLTI1LjktMzAuOS00NS44LTIyLjQgMTUuOS01Mi4xIDQ2LjMtNzcuNCA5MS4yLTc2IDMzLjMuOSA0OSAyMi41IDQ3LjEgNjQuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAyNTQuN3Y1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44QzEzNyA0NTIgMzQuMiAzNjcuNyAwIDEwMi43aDc0LjVDOTMuMiAyNjEuOCAxMzkgMzQzLjQgMTg5LjMgNDA0LjVjMjcuOS0yNy45IDU0LjgtNjUuMSA3NS42LTEwNi45LTQ5LjgtMjUuMy04MC4xLTgwLjktODAuMS0xNDUuNiAwLTY1LjYgMzcuNy0xMTUuMSAxMDIuMi0xMTUuMSAxMTQuOSAwIDEwNi4yIDEyNy45IDgxLjYgMTgxLjUgMCAwLTQ2LjQgOS4yLTYzLjUtMjAuNSAzLjQtMTEuMyA4LjItMzAuOCA4LjItNDguNSAwLTMxLjMtMTEuMy00Ni42LTI4LjQtNDYuNi0xOC4yIDAtMzAuOCAxNy4xLTMwLjggNTAgLjEgNzkuMiA1OS40IDExOC43IDEyOS45IDEwMS45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NSAxMTcuN2MzLjctMTIuNSAwLTIxLjctMTcuOC0yMS43aC01OC45Yy0xNSAwLTIxLjkgNy45LTI1LjYgMTYuNyAwIDAtMzAgNzMuMS03Mi40IDEyMC41LTEzLjcgMTMuNy0yMCAxOC4xLTI3LjUgMTguMS0zLjcgMC05LjQtNC40LTkuNC0xNi45VjExNy43YzAtMTUtNC4yLTIxLjctMTYuNi0yMS43aC05Mi42Yy05LjQgMC0xNSA3LTE1IDEzLjUgMCAxNC4yIDIxLjIgMTcuNSAyMy40IDU3LjV2ODYuOGMwIDE5LTMuNCAyMi41LTEwLjkgMjIuNS0yMCAwLTY4LjYtNzMuNC05Ny40LTE1Ny40LTUuOC0xNi4zLTExLjUtMjIuOS0yNi42LTIyLjlIMzguOGMtMTYuOCAwLTIwLjIgNy45LTIwLjIgMTYuNyAwIDE1LjYgMjAgOTMuMSA5My4xIDE5NS41QzE2MC40IDM3OC4xIDIyOSA0MTYgMjkxLjQgNDE2YzM3LjUgMCA0Mi4xLTguNCA0Mi4xLTIyLjkgMC02Ni44LTMuNC03My4xIDE1LjQtNzMuMSA4LjcgMCAyMy43IDQuNCA1OC43IDM4LjEgNDAgNDAgNDYuNiA1Ny45IDY5IDU3LjloNTguOWMxNi44IDAgMjUuMy04LjQgMjAuNC0yNS0xMS4yLTM0LjktODYuOS0xMDYuNy05MC4zLTExMS41LTguNy0xMS4yLTYuMi0xNi4yIDAtMjYuMi4xLS4xIDcyLTEwMS4zIDc5LjQtMTM1LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm52IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNC45IDM1MmMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRMMi42IDIxMC4xUy03LjggMTkyIDEzIDE5MmgzMi44YzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWgzMi44YzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xbC01NS44IDExMS41UzE3NC4yIDM1MiAxNDAgMzUyaC0zNS4xem0zOTUgMGMtMzQuMSAwLTQ2LjQtMzAuNC00Ni40LTMwLjRsLTU1LjktMTExLjVTMzg3LjIgMTkyIDQwOCAxOTJoMzIuOGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFINjI3YzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xbC01NS45IDExMS41UzU2OS4zIDM1MiA1MzUuMSAzNTJoLTM1LjJ6TTMzNy42IDE5MmMzNC4xIDAgNDYuNCAzMC40IDQ2LjQgMzAuNGw1NS45IDExMS41czEwLjQgMTguMS0xMC40IDE4LjFoLTMyLjhjLTEwLjQgMC0xMy4yLTguNy0xOC44LTE4LjFsLTM2LjctNzQuNXMtNS4yLTEzLjEtMjEuMS0xMy4xYy0xNS45IDAtMjEuMSAxMy4xLTIxLjEgMTMuMWwtMzYuNyA3NC41Yy01LjYgOS40LTguNCAxOC4xLTE4LjggMTguMWgtMzIuOWMtMjAuOCAwLTEwLjQtMTguMS0xMC40LTE4LjFsNTUuOS0xMTEuNXMxMi4yLTMwLjQgNDYuNC0zMC40aDM1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVnVlanMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzU2LjkgNjQuM0gyODBsLTU2IDg4LjYtNDgtODguNkgwTDIyNCA0NDggNDQ4IDY0LjNoLTkxLjF6bS0zMDEuMiAzMmg1My44TDIyNCAyOTQuNSAzMzguNCA5Ni4zaDUzLjhMMjI0IDM4NC41IDU1LjcgOTYuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXRjaG1hbk1vbml0b3JpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDE2QzEyMy40NTIsMTYsMTYsMTIzLjQ1MiwxNiwyNTZTMTIzLjQ1Miw0OTYsMjU2LDQ5Niw0OTYsMzg4LjU0OCw0OTYsMjU2LDM4OC41NDgsMTYsMjU2LDE2Wk0xMjEuNjksNDI5LjEyMkM3MC4wNTYsMzg4Ljk3MiwzNi43NDEsMzI2LjMyMiwzNi43NDEsMjU2YTIxOC41MTksMjE4LjUxOSwwLDAsMSw5LjU4Ny02NC4xMjJsMTAyLjktMTcuODk1LS4xMjEsMTAuOTY3LTEzLjk0MywyLjAxM3MtLjE0NCwxMi41LS4xNDQsMTkuNTQ5YTEyLjc3OCwxMi43NzgsMCwwLDAsNC44ODcsMTAuMzQ5bDkuNDY4LDcuNFptMTA1LjY5Mi0yODMuMjcsOC40OC03LjYxOHM2LjkzNC01LjM4LS4xNDMtOS4zNDRjLTcuMTg4LTQuMDI0LTM5LjUzLTM0LjUtMzkuNTMtMzQuNS01LjM0OC01LjQ3Ny04LjI1Ny03LjM0Ny0xNS40NiwwLDAsMC0zMi4zNDIsMzAuNDc0LTM5LjUyOSwzNC41LTcuMDc4LDMuOTY0LS4xNDQsOS4zNDQtLjE0NCw5LjM0NGw4LjQ4MSw3LjYxOC0uMDQ4LDQuMzY5TDc1Ljk4MiwxMzEuMDQ1YzM5LjY0NC01Ni45MzgsMTA1LjUzMi05NC4zLDE4MC4wMTgtOTQuM0EyMTguNzU0LDIxOC43NTQsMCwwLDEsNDIwLjkzNCwxMTEuNzdsLTE5My41MTIsMzcuN1ptMzQuMDYzLDMyOS4yNjktMzMuOS0yNTAuODU3LDkuNDY3LTcuNGExMi43NzgsMTIuNzc4LDAsMCwwLDQuODg4LTEwLjM0OWMwLTcuMDQ0LS4xNDQtMTkuNTQ5LS4xNDQtMTkuNTQ5bC0xMy45NDMtMi4wMTMtLjExNi0xMC40NzQsMjQxLjcxMSwzMS4zOTFBMjE4Ljg3MiwyMTguODcyLDAsMCwxLDQ3NS4yNTksMjU2QzQ3NS4yNTksMzc1LjA3NCwzNzkuODMxLDQ3Mi4yMTIsMjYxLjQ0NSw0NzUuMTIxWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjE3IDIwMS42N0M1MTYuNjkgMjg3LjUzIDQ3MS4yMyAzNjkuNTkgMzg5IDQwOS44YzEzIDM0LjEtMTIuNCA3MC4yLTQ4LjMyIDcwLjJhNTEuNjggNTEuNjggMCAwIDEtNTEuNTctNDljLTYuNDQuMTktNjQuMiAwLTc2LjMzLS42NEE1MS42OSA1MS42OSAwIDAgMSAxNTkgNDc5LjkyYy0zMy44Ni0xLjM2LTU3Ljk1LTM0Ljg0LTQ3LTY3LjkyLTM3LjIxLTEzLjExLTcyLjU0LTM0Ljg3LTk5LjYyLTcwLjgtMTMtMTcuMjgtLjQ4LTQxLjggMjAuODQtNDEuOCA0Ni4zMSAwIDMyLjIyLTU0LjE3IDQzLjE1LTExMC4yNkM5NC44IDk1LjIgMTkzLjEyIDMyIDI4OC4wOSAzMmMxMDIuNDggMCAxOTcuMTUgNzAuNjcgMjE0LjA4IDE2OS42N3pNMzczLjUxIDM4OC4yOGM0Mi0xOS4xOCA4MS4zMy01Ni43MSA5Ni4yOS0xMDIuMTQgNDAuNDgtMTIzLjA5LTY0LjE1LTIyOC0xODEuNzEtMjI4LTgzLjQ1IDAtMTcwLjMyIDU1LjQyLTE4Ni4wNyAxMzYtOS41MyA0OC45MSA1IDEzMS4zNS02OC43NSAxMzEuMzVDNTguMjEgMzU4LjYgOTEuNiAzNzguMTEgMTI3IDM4OS41NGMyNC42Ni0yMS44IDYzLjg3LTE1LjQ3IDc5LjgzIDE0LjM0IDE0LjIyIDEgNzkuMTkgMS4xOCA4Ny45LjgyYTUxLjY5IDUxLjY5IDAgMCAxIDc4Ljc4LTE2LjQyek0yMDUuMTIgMTg3LjEzYzAtMzQuNzQgNTAuODQtMzQuNzUgNTAuODQgMHMtNTAuODQgMzQuNzQtNTAuODQgMHptMTE2LjU3IDBjMC0zNC43NCA1MC44Ni0zNC43NSA1MC44NiAwcy01MC44NiAzNC43NS01MC44NiAwem0tMTIyLjYxIDcwLjY5Yy0zLjQ0LTE2Ljk0IDIyLjE4LTIyLjE4IDI1LjYyLTUuMjFsLjA2LjI4YzQuMTQgMjEuNDIgMjkuODUgNDQgNjQuMTIgNDMuMDcgMzUuNjgtLjk0IDU5LjI1LTIyLjIxIDY0LjExLTQyLjc3IDQuNDYtMTYuMDUgMjguNi0xMC4zNiAyNS40NyA2LTUuMjMgMjIuMTgtMzEuMjEgNjItOTEuNDYgNjIuOS00Mi41NSAwLTgwLjg4LTI3Ljg0LTg3LjktNjQuMjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VlYmx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNS4wOSA2NS44M2MtMzkuODggMC03My4yOCAyNS43My04My42NiA2NC4zMy0xOC4xNi01OC4wNi02NS41LTY0LjMzLTg0Ljk1LTY0LjMzLTE5Ljc4IDAtNjYuOCA2LjI4LTg1LjI4IDY0LjMzLTEwLjM4LTM4LjYtNDMuNDUtNjQuMzMtODMuNjYtNjQuMzNDMzguNTkgNjUuODMgMCA5OS43MiAwIDE0My4wM2MwIDI4Ljk2IDQuMTggMzMuMjcgNzcuMTcgMjMzLjQ4IDIyLjM3IDYwLjU3IDY3Ljc3IDY5LjM1IDkyLjc0IDY5LjM1IDM5LjIzIDAgNzAuMDQtMTkuNDYgODUuOTMtNTMuOTggMTUuODkgMzQuODMgNDYuNjkgNTQuMjkgODUuOTMgNTQuMjkgMjQuOTcgMCA3MC4zNi05LjEgOTIuNzQtNjkuNjcgNzYuNTUtMjA4LjY1IDc3LjUtMjA1LjU4IDc3LjUtMjI3LjIuNjMtNDguMzItMzYuMDEtODMuNDctODYuOTItODMuNDd6bTI2LjM0IDExNC44MWwtNjUuNTcgMTc2LjQ0Yy03LjkyIDIxLjQ5LTIxLjIyIDM3LjIyLTQ2LjI0IDM3LjIyLTIzLjQ0IDAtMzcuMzgtMTIuNDEtNDQuMDMtMzMuOWwtMzkuMjgtMTE3LjQyaC0uOTVMMjE2LjA4IDM2MC40Yy02Ljk2IDIxLjUtMjAuOSAzMy42LTQ0LjAyIDMzLjYtMjUuMDIgMC0zOC4zMy0xNS43NC00Ni4yNC0zNy4yMkw2MC44OCAxODEuNTVjLTUuMzgtMTQuODMtNy45Mi0yMy45MS03LjkyLTM0LjUgMC0xNi4zNCAxNS44NC0yOS4zNiAzOC4zMy0yOS4zNiAxOC42OSAwIDMxLjk5IDExLjggMzYuMTEgMjkuMDVsNDQuMDMgMTM5LjgyaC45NWw0NC42Ni0xMzYuNzljNi4wMi0xOS42NyAxNi40Ny0zMi4wOCAzOC45Ni0zMi4wOHMzMi45NCAxMi4xMSAzOC45NiAzMi4wOGw0NC42NiAxMzYuNzloLjk1bDQ0LjAzLTEzOS44MmM0LjEyLTE3LjI1IDE3LjQyLTI5LjA1IDM2LjExLTI5LjA1IDIyLjE3IDAgMzguMzMgMTMuMzIgMzguMzMgMzUuNzEtLjMyIDcuODctNC4xMiAxNi4wNC03LjYxIDI3LjI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNyAxNzcuNmM3LjYtMjQtMTMuNC00Ni44LTM3LjQtNDEuNy0yMiA0LjgtMjguOC0yOC4xLTcuMS0zMi44IDUwLjEtMTAuOSA5Mi4zIDM3LjEgNzYuNSA4NC44LTYuOCAyMS4yLTM4LjggMTAuOC0zMi0xMC4zek0yMTQuOCA0NDYuN0MxMDguNSA0NDYuNyAwIDM5NS4zIDAgMzEwLjRjMC00NC4zIDI4LTk1LjQgNzYuMy0xNDMuN0MxNzYgNjcgMjc5LjUgNjUuOCAyNDkuOSAxNjFjLTQgMTMuMSAxMi4zIDUuNyAxMi4zIDYgNzkuNS0zMy42IDE0MC41LTE2LjggMTE0IDUxLjQtMy43IDkuNCAxLjEgMTAuOSA4LjMgMTMuMSAxMzUuNyA0Mi4zIDM0LjggMjE1LjItMTY5LjcgMjE1LjJ6bTE0My43LTE0Ni4zYy01LjQtNTUuNy03OC41LTk0LTE2My40LTg1LjctODQuOCA4LjYtMTQ4LjggNjAuMy0xNDMuNCAxMTZzNzguNSA5NCAxNjMuNCA4NS43Yzg0LjgtOC42IDE0OC44LTYwLjMgMTQzLjQtMTE2ek0zNDcuOSAzNS4xYy0yNS45IDUuNi0xNi44IDQzLjcgOC4zIDM4LjMgNzIuMy0xNS4yIDEzNC44IDUyLjggMTExLjcgMTI0LTcuNCAyNC4yIDI5LjEgMzcgMzcuNCAxMiAzMS45LTk5LjgtNTUuMS0xOTUuOS0xNTcuNC0xNzQuM3ptLTc4LjUgMzExYy0xNy4xIDM4LjgtNjYuOCA2MC0xMDkuMSA0Ni4zLTQwLjgtMTMuMS01OC01My40LTQwLjMtODkuNyAxNy43LTM1LjQgNjMuMS01NS40IDEwMy40LTQ1LjEgNDIgMTAuOCA2My4xIDUwLjIgNDYgODguNXptLTg2LjMtMzBjLTEyLjktNS40LTMwIC4zLTM4IDEyLjktOC4zIDEyLjktNC4zIDI4IDguNiAzNCAxMy4xIDYgMzAuOC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNC42LTE0LjMgNS40LTIuOSA1LjEtMS40IDEwLjYgMy43IDEyLjkgNS4xIDIgMTEuNy0uMyAxNC42LTUuNCAyLjgtNS4yIDEuMS0xMC45LTQtMTIuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWl4aW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg1LjIgMTY3LjZjNi40IDAgMTIuNi4zIDE4LjggMS4xQzM4Ny40IDkwLjMgMzAzLjMgMzIgMjA3LjcgMzIgMTAwLjUgMzIgMTMgMTA0LjggMTMgMTk3LjRjMCA1My40IDI5LjMgOTcuNSA3Ny45IDEzMS42bC0xOS4zIDU4LjYgNjgtMzQuMWMyNC40IDQuOCA0My44IDkuNyA2OC4yIDkuNyA2LjIgMCAxMi4xLS4zIDE4LjMtLjgtNC0xMi45LTYuMi0yNi42LTYuMi00MC44LS4xLTg0LjkgNzIuOS0xNTQgMTY1LjMtMTU0em0tMTA0LjUtNTIuOWMxNC41IDAgMjQuMiA5LjcgMjQuMiAyNC40IDAgMTQuNS05LjcgMjQuMi0yNC4yIDI0LjItMTQuOCAwLTI5LjMtOS43LTI5LjMtMjQuMi4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHptLTEzNi40IDQ4LjZjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40em0tMjE5LjEtMjQuNWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMuMSAxMC05LjkgMTkuNi0yNC40IDE5LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2hhdHNhcHBTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEyMi44Yy03Mi43IDAtMTMxLjggNTkuMS0xMzEuOSAxMzEuOCAwIDI0LjkgNyA0OS4yIDIwLjIgNzAuMWwzLjEgNS0xMy4zIDQ4LjYgNDkuOS0xMy4xIDQuOCAyLjljMjAuMiAxMiA0My40IDE4LjQgNjcuMSAxOC40aC4xYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44IDAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yLTI1LTI1LTU4LTM4LjctOTMuMi0zOC43em03Ny41IDE4OC40Yy0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4LjgtMTIuNiAxLjktMjIuNC45LTQ3LjUtOS45LTM5LjctMTcuMi02NS43LTU3LjItNjcuNy01OS44LTItMi42LTE2LjItMjEuNS0xNi4yLTQxczEwLjItMjkuMSAxMy45LTMzLjFjMy42LTQgNy45LTUgMTAuNi01IDIuNiAwIDUuMyAwIDcuNi4xIDIuNC4xIDUuNy0uOSA4LjkgNi44IDMuMyA3LjkgMTEuMiAyNy40IDEyLjIgMjkuNHMxLjcgNC4zLjMgNi45Yy03LjYgMTUuMi0xNS43IDE0LjYtMTEuNiAyMS42IDE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xIDQgMiA2LjMgMS43IDguNi0xIDIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41IDIuNi00IDUuMy0zLjMgOC45LTIgMy42IDEuMyAyMy4xIDEwLjkgMjcuMSAxMi45czYuNiAzIDcuNiA0LjZjLjkgMS45LjkgOS45LTIuNCAxOS4xek00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yMjMuOSA0MTMuMmMtMjYuNiAwLTUyLjctNi43LTc1LjgtMTkuM0w2NCA0MTZsMjIuNS04Mi4yYy0xMy45LTI0LTIxLjItNTEuMy0yMS4yLTc5LjNDNjUuNCAxNjcuMSAxMzYuNSA5NiAyMjMuOSA5NmM0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjUgMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMiAwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGF0c2FwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODAuOSA5Ny4xQzMzOSA1NS4xIDI4My4yIDMyIDIyMy45IDMyYy0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MGwxMTcuNy0zMC45YzMyLjQgMTcuNyA2OC45IDI3IDEwNi4xIDI3aC4xYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zTDcyIDM1OS4ybC00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMSAzNC44IDM0LjkgNTYuMiA4MS4yIDU2LjEgMTMwLjUgMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42em0xMDEuMi0xMzguMmMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjgtMy43IDUuNi0xNC4zIDE4LTE3LjYgMjEuOC0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43LjktNi45LS41LTkuNy0xLjQtMi44LTEyLjUtMzAuMS0xNy4xLTQxLjItNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjItMy43IDAtOS43IDEuNC0xNC44IDYuOS01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zIDAgMjcuMyAxOS45IDUzLjcgMjIuNiA1Ny40IDIuOCAzLjcgMzkuMSA1OS43IDk0LjggODMuOCAzNS4yIDE1LjIgNDkgMTYuNSA2Ni42IDEzLjkgMTAuNy0xLjYgMzIuOC0xMy40IDM3LjQtMjYuNCA0LjYtMTMgNC42LTI0LjEgMy4yLTI2LjQtMS4zLTIuNS01LTMuOS0xMC41LTYuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaG1jcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMTYxdi0yMS4zbC0yOC41LTguOC0yLjItMTAuNCAyMC4xLTIwLjdMNDI3IDgwLjRsLTI5IDcuNS03LjItNy41IDcuNS0yOC4yLTE5LjEtMTEuNi0yMS4zIDIxLTEwLjctMy4yLTctMjYuNGgtMjIuNmwtNi4yIDI2LjQtMTIuMSAzLjItMTkuNy0yMS0xOS40IDExIDguMSAyNy43LTguMSA4LjQtMjguNS03LjUtMTEgMTkuMSAyMC43IDIxLTIuOSAxMC40LTI4LjUgNy44LS4zIDIxLjcgMjguOCA3LjUgMi40IDEyLjEtMjAuMSAxOS45IDEwLjQgMTguNSAyOS42LTcuNSA3LjIgOC42LTguMSAyNi45IDE5LjkgMTEuNiAxOS40LTIwLjQgMTEuNiAyLjkgNi43IDI4LjUgMjIuNi4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6bS0xMTkuMiA0NS4yYy0zMS4zIDAtNTYuOC0yNS40LTU2LjgtNTYuOHMyNS40LTU2LjggNTYuOC01Ni44IDU2LjggMjUuNCA1Ni44IDU2LjhjMCAzMS41LTI1LjQgNTYuOC01Ni44IDU2Ljh6bTcyLjMgMTYuNGw0Ni45IDE0LjVWMjc3bC01NS4xIDEzLjQtNC4xIDIyLjcgMzguOSAzNS4zLTE5LjIgMzcuOS01NC0xNi43LTE0LjYgMTUuMiAxNi43IDUyLjUtMzguMyAyMi43LTM4LjktNDAuNS0yMS43IDYuNi0xMi42IDU0LTQyLjQtLjUtMTIuNi01My42LTIxLjctNS42LTM2LjQgMzguNC0zNy40LTIxLjcgMTUuMi01MC41LTEzLjctMTYuMS01NS41IDE0LjEtMTkuNy0zNC44IDM3LjktMzcuNC00LjgtMjIuOC01NC0xNC4xLjUtNDAuOUw1NCAyMTkuOWw1LjctMTkuNy0zOC45LTM5LjRMNDEuNSAxMjVsNTMuNiAxNC4xIDE1LjItMTUuNy0xNS4yLTUyIDM2LjQtMjAuNyAzNi44IDM5LjRMMTkxIDg0bDExLjYtNTJIMjQ1bDExLjYgNDUuOUwyMzQgNzJsLTYuMy0xLjctMy4zIDUuNy0xMSAxOS4xLTMuMyA1LjYgNC42IDQuNiAxNy4yIDE3LjQtLjMgMS0yMy44IDYuNS02LjIgMS43LS4xIDYuNC0uMiAxMi45QzE1My44IDE2MS42IDExOCAyMDQgMTE4IDI1NC43YzAgNTguMyA0Ny4zIDEwNS43IDEwNS43IDEwNS43IDUwLjUgMCA5Mi43LTM1LjQgMTAzLjItODIuOGwxMy4yLjIgNi45LjEgMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2lraXBlZGlhVyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgNTEuMmwtLjMgMTIuMmMtMjguMS44LTQ1IDE1LjgtNTUuOCA0MC4zLTI1IDU3LjgtMTAzLjMgMjQwLTE1NS4zIDM1OC42SDQxNWwtODEuOS0xOTMuMWMtMzIuNSA2My42LTY4LjMgMTMwLTk5LjIgMTkzLjEtLjMuMy0xNSAwLTE1LS4zQzE3MiAzNTIuMyAxMjIuOCAyNDMuNCA3NS44IDEzMy40IDY0LjQgMTA2LjcgMjYuNCA2My40LjIgNjMuN2MwLTMuMS0uMy0xMC0uMy0xNC4yaDE2MS45djEzLjljLTE5LjIgMS4xLTUyLjggMTMuMy00My4zIDM0LjIgMjEuOSA0OS43IDEwMy42IDI0MC4zIDEyNS42IDI4OC42IDE1LTI5LjcgNTcuOC0xMDkuMiA3NS4zLTE0Mi44LTEzLjktMjguMy01OC42LTEzMy45LTcyLjgtMTYwLTkuNy0xNy44LTM2LjEtMTkuNC01NS44LTE5LjdWNDkuOGwxNDIuNS4zdjEzLjFjLTE5LjQuNi0zOC4xIDcuOC0yOS40IDI2LjEgMTguOSA0MCAzMC42IDY4LjEgNDguMSAxMDQuNyA1LjYtMTAuOCAzNC43LTY5LjQgNDguMS0xMDAuOCA4LjktMjAuNi0zLjktMjguNi0zOC42LTI5LjQuMy0zLjYgMC0xMC4zLjMtMTMuNiA0NC40LS4zIDExMS4xLS4zIDEyMy4xLS42djEzLjZjLTIyLjUuOC00NS44IDEyLjgtNTguMSAzMS43bC01OS4yIDEyMi44YzYuNCAxNi4xIDYzLjMgMTQyLjggNjkuMiAxNTYuN0w1NTkuMiA5MS44Yy04LjYtMjMuMS0zNi40LTI4LjEtNDcuMi0yOC4zVjQ5LjZsMTI3LjggMS4xLjIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTMuN2wxODMuNi0yNS4zdjE3Ny40SDBWOTMuN3ptMCAzMjQuNmwxODMuNiAyNS4zVjI2OC40SDB2MTQ5Ljl6bTIwMy44IDI4TDQ0OCA0ODBWMjY4LjRIMjAzLjh2MTc3Ljl6bTAtMzgwLjZ2MTgwLjFINDQ4VjMyTDIwMy44IDY1Ljd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2l4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5My4zOCAxMzEuNjljMCAxMy4wMyAyLjA4IDMyLjY5LTI4LjY4IDQzLjgzLTkuNTIgMy40NS0xNS45NSA5LjY2LTE1Ljk1IDkuNjYgMC0zMSA0LjcyLTQyLjIyIDE3LjQtNDguODYgOS43NS01LjExIDI3LjIzLTQuNjMgMjcuMjMtNC42M3ptLTExNS44IDM1LjU0bC0zNC4yNCAxMzIuNjYtMjguNDgtMTA4LjU3Yy03LjY5LTMxLjk5LTIwLjgxLTQ4LjUzLTQ4LjQzLTQ4LjUzLTI3LjM3IDAtNDAuNjYgMTYuMTgtNDguNDMgNDguNTNMODkuNTIgMjk5Ljg5IDU1LjI4IDE2Ny4yM0M0OS43MyAxNDAuNTEgMjMuODYgMTI4Ljk2IDAgMTMxLjk2bDY1LjU3IDI0Ny45M3MyMS42MyAxLjU2IDMyLjQ2LTMuOTZjMTQuMjItNy4yNSAyMC45OC0xMi44NCAyOS41OS00Ni41NyA3LjY3LTMwLjA3IDI5LjExLTExOC40MSAzMS4xMi0xMjQuNyA0Ljc2LTE0Ljk0IDExLjA5LTEzLjgxIDE1LjQgMCAxLjk3IDYuMyAyMy40NSA5NC42MyAzMS4xMiAxMjQuNyA4LjYgMzMuNzMgMTUuMzcgMzkuMzIgMjkuNTkgNDYuNTcgMTAuODIgNS41MiAzMi40NiAzLjk2IDMyLjQ2IDMuOTZsNjUuNTctMjQ3LjkzYy0yNC40Mi0zLjA3LTQ5LjgyIDguOTMtNTUuMyAzNS4yN3ptMTE1Ljc4IDUuMjFzLTQuMSA2LjM0LTEzLjQ2IDExLjU3Yy02LjAxIDMuMzYtMTEuNzggNS42NC0xNy45NyA4LjYxLTE1LjE0IDcuMjYtMTMuMTggMTMuOTUtMTMuMTggMzUuMnYxNTIuMDdzMTYuNTUgMi4wOSAyNy4zNy0zLjQzYzEzLjkzLTcuMSAxNy4xMy0xMy45NSAxNy4yNi00NC43OFYxODEuNDFsLS4wMi4wMXYtOC45OHptMTYzLjQ0IDg0LjA4TDY0MCAxMzIuNzhzLTM1LjExLTUuOTgtNTIuNSA5Ljg1Yy0xMy4zIDEyLjEtMjQuNDEgMjkuNTUtNTQuMTggNzIuNDctLjQ3LjczLTYuMjUgMTAuNTQtMTMuMDcgMC0yOS4yOS00Mi4yMy00MC44LTYwLjI5LTU0LjE4LTcyLjQ3LTE3LjM5LTE1LjgzLTUyLjUtOS44NS01Mi41LTkuODVsODMuMiAxMjMuNzQtODIuOTcgMTIzLjM2czM2LjU3IDQuNjIgNTMuOTUtMTEuMjFjMTEuNDktMTAuNDYgMTcuNTgtMjAuMzcgNTIuNTEtNzAuNzIgNi44MS0xMC41MiAxMi41Ny0uNzcgMTMuMDcgMCAyOS40IDQyLjM4IDM5LjIzIDU4LjA2IDUzLjE0IDcwLjcyIDE3LjM5IDE1LjgzIDUzLjMyIDExLjIxIDUzLjMyIDExLjIxTDU1Ni44IDI1Ni41MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaXphcmRzT2ZUaGVDb2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTkuMTkgMzQ1LjY5Yy0xLjkgMS4zOC0xMS4wNyA4LjQ0LS4yNiAyMy41NyA0LjY0IDYuNDIgMTQuMTEgMTIuNzkgMjEuNzMgNi41NSA2LjUtNC44OCA3LjM1LTEyLjkyLjI2LTIzLjA0LTUuNDctNy43Ni0xNC4yOC0xMi44OC0yMS43My03LjA4em0zMzYuNzUgNzUuOTRjLS4zNCAxLjctLjU1IDEuNjcuNzkgMCAyLjA5LTQuMTkgNC4xOS0xMC4yMSA0Ljk4LTE5LjkgMy4xNC0zOC40OS00MC4zMy03MS40OS0xMDEuMzQtNzguMDMtNTQuNzMtNi4wMi0xMjQuMzggOS4xNy0xODguOCA2MC40OWwtLjI2IDEuNTdjMi42MiA0Ljk4IDQuOTggMTAuNzQgMy40IDIxLjIxbC43OS4yNmM2My44OS01OC40IDEzMS4xOS03Ny4yNSAxODQuMzUtNzMuODUgNTguNCAzLjY3IDEwMC4wMyAzNC4wNCAxMDAuMDMgNjguMDgtLjAxIDkuOTYtMi42MyAxNS43Mi0zLjk0IDIwLjE3ek0zOTIuMjggMjQwLjQyYy43OSA3LjA3IDQuMTkgMTAuMjEgOS4xNyAxMC40NyA1LjUuMjYgOS40My0yLjYyIDEwLjQ3LTYuNTUuNzktMy40IDIuMDktMjkuODUgMi4wOS0yOS44NXMtMTEuMjYgNi41NS0xNC45MyAxMC40N2MtMy42NiAzLjY4LTcuMzMgOC4zOS02LjggMTUuNDZ6bS01MC4wMi0xNTEuMUMxMzcuNzUgODkuMzIgMTMuMSAyMjYuOC43OSAyNDEuMmMtMS4wNS41Mi0xLjMxLjc5Ljc5IDEuMzEgNjAuNDkgMTYuNSAxNTUuODEgODEuMTggMTk2LjEzIDIwMi4xNmwxLjA1LjI2YzU1LjI1LTY5LjkyIDE0MC44OC0xMjguMDUgMjM2Ljk5LTEyOC4wNSA4MC45MiAwIDEzMC4xNSA0Mi4xNiAxMzAuMTUgODAuMzkgMCAxOC4zMy02LjU1IDMzLjUyLTIyLjI2IDQ2LjM1IDAgLjk2LS4yLjc5Ljc5Ljc5IDE0LjY2LTEwLjc0IDI3LjUtMjguOCAyNy41LTQ4LjE4IDAtMjIuNzgtMTIuMDUtMzguMjMtMTIuMDUtMzguMjMgNy4wNyA3LjA3IDEwLjc0IDE2LjI0IDEwLjc0IDE2LjI0IDUuNzYtNDAuODUgMjYuOTctNjIuMzIgMjYuOTctNjIuMzItMi4zNi05LjY5LTYuODEtMTcuODEtNi44MS0xNy44MSA3LjU5IDguMTIgMTQuNCAyNy41IDE0LjQgNDEuMzcgMCAxMC40Ny0zLjQgMjIuNzgtMTIuNTcgMzEuOTVsLjI2LjUyYzguMTItNC45OCAxNi41LTE2Ljc2IDE2LjUtMzcuOTcgMC0xNS43MS00LjcxLTI1LjkyLTQuNzEtMjUuOTIgNS43Ni01LjI0IDExLjI2LTkuMTcgMTUuOTctMTEuNzguNzkgMy40IDIuMDkgOS42OSAyLjM2IDE0LjkzIDAgMS4wNS43OSAxLjgzIDEuMDUgMCAuNzktNS43Ni0uMjYtMTYuMjQtLjI2LTE2LjUgNi4wMi0zLjE0IDkuNjktNC40NSA5LjY5LTQuNDVDNjE3Ljc0IDE3NiA0ODkuNDMgODkuMzIgMzQyLjI2IDg5LjMyem0tOTkuMjQgMjg5LjYyYy0xMS4wNiA4Ljk5LTI0LjIgNC4wOC0zMC42NC00LjE5LTcuNDUtOS41OC02Ljc2LTI0LjA5IDQuMTktMzIuNDcgMTQuODUtMTEuMzUgMjcuMDgtLjQ5IDMxLjE2IDUuNS4yOC4zOSAxMi4xMyAxNi41Ny00LjcxIDMxLjE2em0yLjA5LTEzNi40M2w5LjQzLTE3LjgxIDExLjc4IDcwLjk2LTEyLjU3IDYuMDItMjQuNjItMjguOCAxNC4xNC0yNi43MSAzLjY3IDQuNDUtMS44My04LjExem0xOC41OSAxMTcuNThsLS4yNi0uMjZjMi4wNS00LjEtMi41LTYuNjEtMTcuNTQtMzEuNjktMS4zMS0yLjM2LTMuMTQtMi44OC00LjQ1LTIuNjJsLS4yNi0uNTJjNy44Ni01Ljc2IDE1LjQ1LTEwLjIxIDI1LjQtMTUuNzFsLjUyLjI2YzEuMzEgMS44MyAyLjA5IDIuODggMy40IDQuNzFsLS4yNi41MmMtMS4wNS0uMjYtMi4zNi0uNzktNS4yNC4yNi0yLjA5Ljc5LTcuODYgMy42Ny0xMi4zMSA3LjU5djEuMzFjMS41NyAyLjM2IDMuOTMgNi41NSA1Ljc2IDkuNjloLjI2YzEwLjA1LTYuMjggNy41Ni00LjU1IDExLjUyLTcuODZoLjI2Yy41MiAxLjgzLjUyIDEuODMgMS44MyA1LjVsLS4yNi4yNmMtMy4wNi42MS00LjY1LjM0LTExLjUyIDUuNXYuMjZjOS40NiAxNy4wMiAxMS4wMSAxNi43NSAxMi41NyAxNS45N2wuMjYuMjZjLTIuMzQgMS41OS02LjI3IDQuMjEtOS42OCA2LjU3em01NS4yNi0zMi40N2MtMy4xNCAxLjU3LTYuMDIgMi44OC05Ljk1IDQuOThsLS4yNi0uMjZjMS4yOS0yLjU5IDEuMTYtMi43MS0xMS43OC0zMi40N2wtLjI2LS4yNmMtLjE1IDAtOC45IDMuNjUtOS45NSA3LjMzaC0uNTJsLTEuMDUtNS43Ni4yNi0uNTJjNy4yOS00LjU2IDI1LjUzLTExLjY0IDI3Ljc2LTEyLjU3bC41Mi4yNiAzLjE0IDQuOTgtLjI2LjUyYy0zLjUzLTEuNzYtNy4zNS43Ni0xMi4zMSAyLjYydi4yNmMxMi4zMSAzMi4wMSAxMi42NyAzMC42NCAxNC42NiAzMC42NHYuMjV6bTQ0Ljc3LTE2LjVjLTQuMTkgMS4wNS01LjI0IDEuMzEtOS42OSAyLjg4bC0uMjYtLjI2LjUyLTQuNDVjLTEuMDUtMy40LTMuMTQtMTEuNTItMy42Ny0xMy42MmwtLjI2LS4yNmMtMy40Ljc5LTguOSAyLjYyLTEyLjgzIDMuOTNsLS4yNi4yNmMuNzkgMi42MiAzLjE0IDkuOTUgNC4xOSAxMy44OC43OSAyLjM2IDEuODMgMi44OCAyLjg4IDMuMTR2LjUyYy0zLjY3IDEuMDUtNy4wNyAyLjYyLTEwLjIxIDMuOTNsLS4yNi0uMjZjMS4wNS0xLjMxIDEuMDUtMi44OC4yNi00Ljk4LTEuMDUtMy4xNC04LjEyLTIzLjgzLTkuMTctMjcuMjMtLjUyLTEuODMtMS41Ny0zLjE0LTIuNjItMy4xNHYtLjUyYzMuMTQtMS4wNSA2LjAyLTIuMDkgMTAuNzQtMy40bC4yNi4yNi0uMjYgNC43MWMxLjMxIDMuOTMgMi4zNiA3LjU5IDMuMTQgOS42OWguMjZjMy45My0xLjMxIDkuNDMtMi44OCAxMi44My0zLjkzbC4yNi0uMjYtMi42Mi05LjQzYy0uNTItMS44My0xLjA1LTMuNC0yLjYyLTMuOTN2LS4yNmM0LjQ1LTEuMDUgNy4zMy0xLjgzIDEwLjc0LTIuMzZsLjI2LjI2Yy0xLjA1IDEuMzEtMS4wNSAyLjg4LS41MiA0LjQ1IDEuNTcgNi4yOCA0LjcxIDIwLjQzIDYuMjggMjYuNDUuNTQgMi42MiAxLjg1IDMuNDEgMi42MyAzLjkzem0zMi4yMS02LjgxbC0uMjYuMjZjLTQuNzEuNTItMTQuMTQgMi4zNi0yMi41MiA0LjE5bC0uMjYtLjI2Ljc5LTQuMTljLTEuNTctNy44Ni0zLjQtMTguNTktNC45OC0yNi4xOS0uMjYtMS44My0uNzktMi44OC0yLjYyLTMuNjdsLjc5LS41MmM5LjE3LTEuNTcgMjAuMTYtMi4zNiAyNC44OC0yLjYybC4yNi4yNmMuNTIgMi4zNi43OSAzLjE0IDEuNTcgNS41bC0uMjYuMjZjLTEuMTQtMS4xNC0zLjM0LTMuMi0xNi4yNC0uNzlsLS4yNi4yNmMuMjYgMS41NyAxLjA1IDYuNTUgMS41NyA5Ljk1bC4yNi4yNmM5LjUyLTEuNjggNC43Ni0uMDYgMTAuNzQtMi4zNmguMjZjMCAxLjU3LS4yNiAxLjgzLS4yNiA1LjI0aC0uMjZjLTQuODEtMS4wMy0yLjE1LS45LTEwLjIxIDBsLS4yNi4yNmMuMjYgMi4wOSAxLjU3IDkuNDMgMi4wOSAxMi41N2wuMjYuMjZjMS4xNS4zOCAxNC4yMS0uNjUgMTYuMjQtNC43MWguMjZjLS41MyAyLjM4LTEuMDUgNC4yMS0xLjU4IDYuMDR6bTEwLjc0LTQ0LjUxYy00LjQ1IDIuMzYtOC4xMiAyLjg4LTExIDIuODgtLjI1LjAyLTExLjQxIDEuMDktMTcuNTQtOS45NS02Ljc0LTEwLjc5LS45OC0yNS4yIDUuNS0zMS42OSA4LjgtOC4xMiAyMy4zNS0xMC4xIDI4LjU0LTE3LjAyIDguMDMtMTAuMzMtMTMuMDQtMjIuMzEtMjkuNTktNS43NmwtMi42Mi0yLjg4IDUuMjQtMTYuMjRjMjUuNTktMS41NyA0NS4yLTMuMDQgNTAuMDIgMTYuMjQuNzkgMy4xNCAwIDkuNDMtLjI2IDEyLjA1IDAgMi42Mi0xLjgzIDE4Ljg1LTIuMDkgMjMuMDQtLjUyIDQuMTktLjc5IDE4LjMzLS43OSAyMC42OS4yNiAyLjM2LjUyIDQuMTkgMS41NyA1LjUgMS41NyAxLjgzIDUuNzYgMS44MyA1Ljc2IDEuODNsLS43OSA0LjcxYy0xMS44Mi0xLjA3LTEwLjI4LS41OS0yMC40My0xLjA1LTMuMjItNS4xNS0yLjIzLTMuMjgtNC4xOS03Ljg2IDAgLjAxLTQuMTkgMy45NC03LjMzIDUuNTF6bTM3LjE4IDIxLjIxYy02LjM1LTEwLjU4LTE5LjgyLTcuMTYtMjEuNzMgNS41LTIuNjMgMTcuMDggMTQuMyAxOS43OSAyMC42OSAxMC4yMWwuMjYuMjZjLS41MiAxLjgzLTEuODMgNi4wMi0xLjgzIDYuMjhsLS41Mi41MmMtMTAuMyA2Ljg3LTI4LjUtMi41LTI1LjY2LTE4LjU5IDEuOTQtMTAuODcgMTQuNDQtMTguOTMgMjguOC05Ljk1bC4yNi41MmMwIDEuMDYtLjI3IDMuNDEtLjI3IDUuMjV6bTUuNzctODcuNzN2LTYuNTVjLjY5IDAgMTkuNjUgMy4yOCAyNy43NiA3LjMzbC0xLjU3IDE3LjU0czEwLjIxLTkuNDMgMTUuNDUtMTAuNzRjNS4yNC0xLjU3IDE0LjkzIDcuMzMgMTQuOTMgNy4zM2wtMTEuMjYgMTEuMjZjLTEyLjA3LTYuMzUtMTkuNTktLjA4LTIwLjY5Ljc5LTUuMjkgMzguNzItOC42IDQyLjE3IDQuNDUgNDYuMDlsLS41MiA0LjcxYy0xNy41NS00LjI5LTE4LjUzLTQuNS0zNi45Mi03LjMzbC43OS00LjcxYzcuMjUgMCA3LjQ4LTUuMzIgNy41OS02LjgxIDAgMCA0Ljk4LTUzLjE2IDQuOTgtNTUuMjUtLjAyLTIuODctNC45OS0zLjY2LTQuOTktMy42NnptMTAuOTkgMTE0LjQ0Yy04LjEyLTIuMDktMTQuMTQtMTEtMTAuNzQtMjAuNjkgMy4xNC05LjQzIDEyLjMxLTEyLjMxIDE4Ljg1LTEwLjIxIDkuMTcgMi42MiAxMi44MyAxMS43OCAxMC43NCAxOS4zOC0yLjYxIDguOS05LjQyIDEzLjg3LTE4Ljg1IDExLjUyem00Mi4xNiA5LjY5Yy0yLjM2LS41Mi03LjA3LTIuMzYtOC42NC0yLjg4di0uMjZsMS41Ny0xLjgzYy41OS04LjI0LjU5LTcuMjcuMjYtNy41OS00LjgyLTEuODEtNi42Ni0yLjM2LTcuMDctMi4zNi0xLjMxIDEuODMtMi44OCA0LjQ1LTMuNjcgNS41bC0uNzkgMy40di4yNmMtMS4zMS0uMjYtMy45My0xLjMxLTYuMDItMS41N3YtLjI2bDIuNjItMS44M2MzLjQtNC43MSA5Ljk1LTE0LjE0IDEzLjg4LTIwLjE2di0yLjA5bC41Mi0uMjZjMi4wOS43OSA1LjUgMi4wOSA3LjU5IDIuODguNDguNDguMTgtMS44Ny0xLjA1IDI1LjE0LS4yNCAxLjgxLjAyIDIuNi44IDMuOTF6bS00LjcxLTg5LjgyYzExLjI1LTE4LjI3IDMwLjc2LTE2LjE5IDM0LjA0LTMuNEw1MzkuNyAxOThjMi4zNC02LjI1LTIuODItOS45LTQuNDUtMTEuMjZsMS44My0zLjY3YzEyLjIyIDEwLjM3IDE2LjM4IDEzLjk3IDIyLjUyIDIwLjQzLTI1LjkxIDczLjA3LTMwLjc2IDgwLjgxLTI0LjYyIDg0LjMybC0xLjgzIDQuNDVjLTYuMzctMy4zNS04LjktNC40Mi0xNy44MS04LjY0bDIuMDktNi44MWMtLjI2LS4yNi0zLjkzIDMuOTMtOS42OSAzLjY3LTE5LjA2LTEuMy0yMi44OS0zMS43NS05LjY3LTUyLjl6bTI5LjMzIDc5LjM0YzAtNS43MS02LjM0LTcuODktNy44Ni01LjI0LTEuMzEgMi4wOSAxLjA1IDQuOTggMi44OCA4LjM4IDEuNTcgMi42MiAyLjYyIDYuMjggMS4wNSA5LjQzLTIuNjQgNi4zNC0xMi40IDUuMzEtMTUuNDUtLjc5IDAtLjctLjI3LjA5IDEuODMtNC43MWwuNzktLjI2Yy0uNTcgNS42NiA2LjA2IDkuNjEgOC4zOCA0Ljk4IDEuMDUtMi4wOS0uNTItNS41LTIuMDktOC4zOC0xLjU3LTIuNjItMy42Ny02LjI4LTEuODMtOS42OSAyLjcyLTUuMDYgMTEuMjUtNC40NyAxNC42NiAyLjM2di41MmwtMi4zNiAzLjR6bTIxLjIxIDEzLjM2Yy0xLjk2LTMuMjctLjkxLTIuMTQtNC40NS00LjcxaC0uMjZjLTIuMzYgNC4xOS01Ljc2IDEwLjQ3LTguNjQgMTYuMjQtMS4zMSAyLjM2LTEuMDUgMy40LS43OSAzLjkzbC0uMjYuMjYtNS43Ni00LjQ1LjI2LS4yNiAyLjA5LTEuMzFjMy4xNC01Ljc2IDYuNTUtMTIuMDUgOS4xNy0xNy4wMnYtLjI2Yy0yLjY0LTEuOTgtMS4yMi0xLjUxLTYuMDItMS44M3YtLjI2bDMuMTQtMy40aC4yNmMzLjY3IDIuMzYgOS45NSA2LjgxIDEyLjMxIDguOWwuMjYuMjYtMS4zMSAzLjkxem0yNy4yMy00NC4yNmwtMi44OC0yLjg4Yy43OS0yLjM2IDEuODMtNC45OCAyLjA5LTcuNTkuNzUtOS43NC0xMS41Mi0xMS44NC0xMS41Mi00Ljk4IDAgNC45OCA3Ljg2IDE5LjM4IDcuODYgMjcuNzYgMCAxMC4yMS01Ljc2IDE1LjcxLTEzLjg4IDE2LjUtOC4zOC43OS0yMC4xNi0xMC40Ny0yMC4xNi0xMC40N2w0Ljk4LTE0LjQgMi44OCAyLjA5Yy0yLjk3IDE3LjggMTcuNjggMjAuMzcgMTMuMzUgNS4yNC0xLjA2LTQuMDItMTguNzUtMzQuMiAyLjA5LTM4LjIzIDEzLjYyLTIuMzYgMjMuMDQgMTYuNSAyMy4wNCAxNi41bC03Ljg1IDEwLjQ2em0zNS42Mi0xMC4yMWMtMTEtMzAuMzgtNjAuNDktMTI3LjUzLTE5MS45NS0xMjkuNjItNTMuNDItMS4wNS05NC4yNyAxNS40NS0xMzIuNzYgMzcuOTdsODUuNjMtOS4xNy05MS4zOSAyMC42OSAyNS4xNCAxOS42NC0zLjkzLTE2LjVjNy41LTEuNzEgMzkuMTUtOC40NSA2Ni43Ny04LjlsLTIyLjI2IDgwLjM5YzEzLjYxLS43IDE4Ljk3LTguOTggMTkuNjQtMjIuNzhsNC45OC0xLjA1LjI2IDI2LjcxYy0yMi40NiAzLjIxLTM3LjMgNi42OS00OS40OSA5Ljk1bDEzLjA5LTQzLjIxLTYxLjU0LTM2LjY2IDIuMzYgOC4xMiAxMC4yMSA0Ljk4YzYuMjggMTguNTkgMTkuMzggNTYuNTYgMjAuNDMgNTguNjYgMS45NSA0LjI4IDMuMTYgNS43OCAxMi4wNSA0LjQ1bDEuMDUgNC45OGMtMTYuMDggNC44Ni0yMy42NiA3LjYxLTM5LjAyIDE0LjRsLTIuMzYtNC43MWM0LjQtMi45NCA4LjczLTMuOTQgNS41LTEyLjgzLTIzLjctNjIuNS0yMS40OC01OC4xNC0yMi43OC01OS40NGwyLjM2LTQuNDUgMzMuNTIgNjcuM2MtMy44NC0xMS44NyAxLjY4IDEuNjktMzIuOTktNzguODJsLTQxLjkgODguNTEgNC43MS0xMy44OC0zNS44OC00Mi4xNiAyNy43NiA5My40OC0xMS43OCA4LjM4Qzk1IDIyOC41OCAxMDEuMDUgMjMxLjg3IDkzLjIzIDIzMS41MmMtNS41LS4yNi0xMy42MiA1LjUtMTMuNjIgNS41TDc0LjYzIDIzMWMzMC41Ni0yMy41MyAzMS42Mi0yNC4zMyA1OC40LTQyLjY4bDQuMTkgNy4wN3MtNS43NiA0LjE5LTcuODYgNy4wN2MtNS45IDkuMjggMS42NyAxMy4yOCA2MS44IDc1LjY4bC0xOC44NS01OC45MiAzOS44LTEwLjIxIDI1LjY2IDMwLjY0IDQuNDUtMTIuMzEtNC45OC0yNC42MiAxMy4wOS0zLjQuNTIgMy4xNCAzLjY3LTEwLjQ3LTk0LjI3IDI5LjMzIDExLjI2LTQuOTgtMTMuNjItNDIuNDIgMTcuMjgtOS4xNyAzMC4xMSAzNi4xNCAyOC41NC0xMy4wOWMtMS40MS03LjQ3LTIuNDctMTQuNS00LjcxLTE5LjY0bDE3LjI4IDEzLjg4IDQuNzEtMi4wOS01OS4xOC00Mi42OCAyMy4wOCAxMS41YzE4Ljk4LTYuMDcgMjUuMjMtNy40NyAzMi4yMS05LjY5bDIuNjIgMTFjLTEyLjU1IDEyLjU1IDEuNDMgMTYuODIgNi41NSAxOS4zOGwtMTMuNjItNjEuMDEgMTIuMDUgMjguMjhjNC4xOS0xLjMxIDcuMzMtMi4wOSA3LjMzLTIuMDlsMi42MiA4LjY0cy0zLjE0IDEuMDUtNi4yOCAyLjA5bDguOSAyMC45NSAzMy43OC02NS43My0yMC42OSA2MS4wMWM0Mi40Mi0yNC4wOSA4MS40NC0zNi42NiAxMzEuOTgtMzUuODggNjcuMDQgMS4wNSAxNjcuMzMgNDAuODUgMTk5LjggMTM5LjgzLjc4IDIuMS0uMDEgMi42My0uNzkuMjd6TTIwMy40OCAxNTIuNDNzMS44My0uNTIgNC4xOS0xLjMxbDkuNDMgNy41OWMtLjQgMC0zLjQ0LS4yNS0xMS4yNiAyLjM2bC0yLjM2LTguNjR6bTE0My43NiAzOC41Yy0xLjU3LS42LTI2LjQ2LTQuODEtMzMuMjYgMjAuNjlsMjEuNzMgMTcuMDIgMTEuNTMtMzcuNzF6TTMxOC40MyA2Ny4wN2MtNTguNCAwLTEwNi4wNSAxMi4wNS0xMTQuOTYgMTQuNHYuNzljOC4zOCAyLjA5IDE0LjQgNC4xOSAyMS4yMSAxMS43OGwxLjU3LjI2YzYuNTUtMS44MyA0OC45Ny0xMy44OCAxMTAuMjQtMTMuODggMTgwLjE2IDAgMzAxLjY3IDExNi43OSAzMDEuNjcgMjIzLjM3djkuOTVjMCAxLjMxLjc5IDIuNjIgMS4wNS41Mi41Mi0yLjA5Ljc5LTguNjQuNzktMTkuNjQuMjYtODMuNzktOTYuNjMtMjI3LjU1LTMyMS41Ny0yMjcuNTV6bTIxMS4wNiAxNjkuNjhjMS4zMS01Ljc2IDAtMTIuMzEtNy4zMy0xMy4wOS05LjYyLTEuMTMtMTYuMTQgMjMuNzktMTcuMDIgMzMuNTItLjc5IDUuNS0xLjMxIDE0LjkzIDYuMDIgMTQuOTMgNC42OC0uMDEgOS43Mi0uOTEgMTguMzMtMzUuMzZ6bS02MS41MyA0Mi45NWMtMi42Mi0uNzktOS40My0uNzktMTIuNTcgMTAuNDctMS44MyA2LjgxLjUyIDEzLjM1IDYuMDIgMTQuNjYgMy42NyAxLjA1IDguOS41MiAxMS43OC0xMC43NCAyLjYyLTkuOTQtMS44My0xMy42MS01LjIzLTE0LjM5ek00OTEgMzAwLjY1YzEuODMuNTIgMy4xNCAxLjA1IDUuNzYgMS44MyAwLTEuODMuNTItOC4zOC43OS0xMi4wNS0xLjA1IDEuMzEtNS41IDguMTItNi41NSA5Ljk1di4yN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb2R1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3OC40MTQgMzM5LjcwNkgxNDEuMUwxMTIuMTY2IDIyMy40NzVoLS40NzhMODMuMjI4IDMzOS43MDZINDUuMkwwIDE2OC45NDZIMzcuNTQ4TDY0LjU3NCAyODUuMTc3aC40NzhMOTQuNzA3IDE2OC45NDZoMzUuMTU3bDI5LjE3OCAxMTcuNjY3aC40NzlMMTg3LjUgMTY4Ljk0NmgzNi44MzF6TTI3MS40IDIxMi43MTNjMzguOTg0IDAgNjQuMSAyNS44MjggNjQuMSA2NS4yOTEgMCAzOS4yMjItMjUuMTExIDY1LjA1LTY0LjEgNjUuMDUtMzguNzQzIDAtNjMuODU1LTI1LjgyOC02My44NTUtNjUuMDVDMjA3LjU0NyAyMzguNTQxIDIzMi42NTkgMjEyLjcxMyAyNzEuNCAyMTIuNzEzem0wIDEwNC43NTNjMjMuMiAwIDMwLjEzMy0xOS44NTIgMzAuMTMzLTM5LjQ2MiAwLTE5Ljg1Mi02LjkzNC0zOS43LTMwLjEzMy0zOS43LTI3LjcgMC0yOS44OTQgMTkuODUtMjkuODk0IDM5LjdDMjQxLjUwOCAyOTcuNjE0IDI0OC40NDMgMzE3LjQ2NiAyNzEuNCAzMTcuNDY2ek00MzUuMDg0IDMyMy45MjJoLS40NzhjLTcuODkzIDEzLjM5Mi0yMS43NjUgMTkuMTMyLTM3LjU0OCAxOS4xMzItMzcuMzEgMC01NS40ODUtMzIuMDQ1LTU1LjQ4NS02Ni4yNDYgMC0zMy4yNDMgMTguNDE1LTY0LjA5NSA1NC43NjctNjQuMDk1IDE0LjU4OSAwIDI4LjkzOCA2LjIxOCAzNi44MzEgMTguNDE2aC4yNFYxNjguOTQ2aDMzLjk2djE3MC43Nkg0MzUuMDg0ek00MDUuNDI4IDIzOC4zYy0yMi4yNCAwLTI5Ljg5NCAxOS4xMzQtMjkuODk0IDM5LjQ2MyAwIDE5LjM3MSA4Ljg0OCAzOS43IDI5Ljg5NCAzOS43IDIyLjQ4MiAwIDI5LjE3OC0xOS42MTMgMjkuMTc4LTM5Ljk0QzQzNC42MDYgMjU3LjQzNiA0MjcuNDMyIDIzOC4zIDQwNS40MjggMjM4LjN6TTU5Mi45NiAzMzkuNzA2SDU2MC42NzNWMzIyLjQ4N2gtLjcxOGMtOC42MDkgMTMuODctMjMuNDM2IDIwLjU2Ny0zNy43ODYgMjAuNTY3LTM2LjExMyAwLTQ1LjItMjAuMzI4LTQ1LjItNTAuOTQxVjIxNi4wNjFoMzMuOTU5VjI4NS45YzAgMjAuMzI5IDUuOTc5IDMwLjM3MiAyMS43NjUgMzAuMzcyIDE4LjQxNSAwIDI2LjMwNi0xMC4yODMgMjYuMzA2LTM1LjM5M1YyMTYuMDYxSDU5Mi45NnpNNjAyLjQ1MyAzMDIuODc2SDY0MHYzNi44M0g2MDIuNDUzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvbGZQYWNrQmF0dGFsaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2Ny43MyA0NzEuNTNsMTAuNTYgMTUuODQgNS4yOC0xMi4zMiA1LjI4IDdWNTEyYzIxLjA2LTcuOTIgMjEuMTEtNjYuODYgMjUuNTEtOTcuMjEgNC42Mi0zMS44OS0uODgtOTIuODEgODEuMzctMTQ5LjExLTguODgtMjMuNjEtMTItNDkuNDMtMi42NC04MC4wNUM0MjEgMTg5IDQ0NyAxOTYuMjEgNDU2LjQzIDIzOS43M2wtMzAuMzUgOC4zNmMxMS4xNSAyMyAxNyA0Ni43NiAxMy4yIDcyLjE0TDQxMiAzMTMuMThsLTYuMTYgMzMuNDMtMTguNDctNy04LjggMzMuMzktMTkuMzUtNyAyNi4zOSAyMS4xMSA4LjgtMjguMTVMNDE5IDM2NC4ybDctMzUuNjMgMjYuMzkgMTQuNTJjLjI1LTIwIDctNTguMDYtOC44LTg0LjQ1bDI2LjM5IDUuMjhjNC0yMi4wNy0yLjM4LTM5LjIxLTcuOTItNTYuNzRsMjIuNDMgOS42OGMtLjQ0LTI1LjA3LTI5Ljk0LTU2Ljc5LTYxLjU4LTU4LjUtMjAuMjItMS4wOS01Ni43NC0yNS4xNy01NC4xLTUxLjkgMi0xOS44NyAxNy40NS00Mi42MiA0My4xMS00OS43LTQ0IDM2LjUxLTkuNjggNjcuMyA1LjI4IDczLjQ2IDQuNC0xMS40NCAxNy41NC02OS4wOCAwLTEzMC4yLTQwLjM5IDIyLjg3LTg5LjY1IDY1LjEtOTMuMiAxNDcuNzlsLTU4IDM4LjcxLTMuNTIgOTMuMjVMMzY5Ljc4IDIyMGw3IDctMTcuNTkgMy41Mi00NCAzOC43MS0xNS44NC01LjI4LTI4LjEgNDkuMjUtMy41MiAxMTkuNjQgMjEuMTEgMTUuODQtMzIuNTUgMTUuODQtMzIuNTUtMTUuODQgMjEuMTEtMTUuODQtMy41Mi0xMTkuNjQtMjguMTUtNDkuMjYtMTUuODQgNS4yOC00NC0zOC43MS0xNy41OC0zLjUxIDctNyAxMDcuMzMgNTkuODItMy41Mi05My4yNS01OC4wNi0zOC43MUMxODUgNjUuMSAxMzUuNzcgMjIuODcgOTUuMyAwYy0xNy41NCA2MS4xMi00LjQgMTE4Ljc2IDAgMTMwLjIgMTUtNi4xNiA0OS4yNi0zNi45NSA1LjI4LTczLjQ2IDI1LjY2IDcuMDggNDEuMTUgMjkuODMgNDMuMTEgNDkuNyAyLjYzIDI2Ljc0LTMzLjg4IDUwLjgxLTU0LjEgNTEuOS0zMS42NSAxLjcyLTYxLjE1IDMzLjQ0LTYxLjU5IDU4LjUxbDIyLjQzLTkuNjhjLTUuNTQgMTcuNTMtMTEuOTEgMzQuNjctNy45MiA1Ni43NGwyNi4zOS01LjI4Yy0xNS43NiAyNi4zOS05LjA1IDY0LjQzLTguOCA4NC40NWwyNi4zOS0xNC41MiA3IDM1LjYzIDI0LjYzLTUuMjggOC44IDI4LjE1TDE1My4zNSAzNjYgMTM0IDM3M2wtOC44LTMzLjQzLTE4LjQ3IDctNi4xNi0zMy40My0yNy4yNyA3Yy0zLjgyLTI1LjM4IDItNDkuMSAxMy4yLTcyLjE0bC0zMC4zNS04LjM2YzkuNC00My41MiAzNS40Ny01MC43NyA2My4zNC01NC4xIDkuMzYgMzAuNjIgNi4yNCA1Ni40NS0yLjY0IDgwLjA1IDgyLjI1IDU2LjMgNzYuNzUgMTE3LjIzIDgxLjM3IDE0OS4xMSA0LjQgMzAuMzUgNC40NSA4OS4yOSAyNS41MSA5Ny4yMXYtMjkuODNsNS4yOC03IDUuMjggMTIuMzIgMTAuNTYtMTUuODQgMTEuNDQgMjEuMTEgMTEuNDMtMjEuMXptNzkuMTctOTVMMzMxLjA2IDM2NmM3LjQ3LTQuMzYgMTMuNzYtOC40MiAxOS4zNS0xMi4zMi0uNiA3LjIyLS4yNyAxMy44NC0zLjUxIDIyLjg0em0yOC4xNS00OS4yNmMtLjQgMTAuOTQtLjkgMjEuNjYtMS43NiAzMS42Ny03Ljg1LTEuODYtMTUuNTctMy44LTIxLjExLTcgOC4yNC03Ljk0IDE1LjU1LTE2LjMyIDIyLjg3LTI0LjY4em0yNC42MyA1LjI4YzAtMTMuNDMtMi4wNS0yNC4yMS01LjI4LTMzLjQzYTIzNSAyMzUgMCAwIDEtMTguNDcgMjcuMjd6bTMuNTItODAuOTRjMTkuNDQgMTIuODEgMjcuOCAzMy42NiAyOS45MSA1Ni4zLTEyLjMyLTQuNTMtMjQuNjMtOS4zMS0zNi45NS0xMC41NiA1LjA2LTEyIDYuNjUtMjguMTQgNy00NS43NHptLTEuNzYtNDUuNzRjLjgxIDE0LjMgMS44NCAyOC44MiAxLjc2IDQyLjIzIDE5LjIyLTguMTEgMjkuNzgtOS43MiA0NC0xNC4wOC0xMC42MS0xOC45Ni0yNy4yLTI1LjUzLTQ1Ljc2LTI4LjE2ek0xNjUuNjggMzc2LjUyTDE4MS41MiAzNjZjLTcuNDctNC4zNi0xMy43Ni04LjQyLTE5LjM1LTEyLjMyLjYgNy4yNi4yNyAxMy44OCAzLjUxIDIyLjg4em0tMjguMTUtNDkuMjZjLjQgMTAuOTQuOSAyMS42NiAxLjc2IDMxLjY3IDcuODUtMS44NiAxNS41Ny0zLjggMjEuMTEtNy04LjI0LTcuOTMtMTUuNTUtMTYuMzEtMjIuODctMjQuNjd6bS0yNC42NCA1LjI4YzAtMTMuNDMgMi0yNC4yMSA1LjI4LTMzLjQzYTIzNSAyMzUgMCAwIDAgMTguNDcgMjcuMjd6bS0zLjUyLTgwLjk0Yy0xOS40NCAxMi44MS0yNy44IDMzLjY2LTI5LjkxIDU2LjMgMTIuMzItNC41MyAyNC42My05LjMxIDM3LTEwLjU2LTUtMTItNi42NS0yOC4xNC03LTQ1Ljc0em0xLjc2LTQ1Ljc0Yy0uODEgMTQuMy0xLjg0IDI4LjgyLTEuNzYgNDIuMjMtMTkuMjItOC4xMS0yOS43OC05LjcyLTQ0LTE0LjA4IDEwLjYzLTE4Ljk1IDI3LjIzLTI1LjUyIDQ1Ljc2LTI4LjE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvcmRwcmVzc1NpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMyA4IDggMTE5LjIgOCAyNTZjMCAxMzYuNyAxMTEuMyAyNDggMjQ4IDI0OHMyNDgtMTExLjMgMjQ4LTI0OEM1MDQgMTE5LjIgMzkyLjcgOCAyNTYgOHpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43bDEwNi40IDI5MS40Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2em0yMjMgMjIzYy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yTDIwMC42IDM5M2wtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zQzEwOS42IDczIDE3OC4xIDMzIDI1NiAzM2M1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb3JkcHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEuNyAxNjkuNGwxMDEuNSAyNzhDOTIuMiA0MTMgNDMuMyAzNDAuMiA0My4zIDI1NmMwLTMwLjkgNi42LTYwLjEgMTguNC04Ni42em0zMzcuOSA3NS45YzAtMjYuMy05LjQtNDQuNS0xNy41LTU4LjctMTAuOC0xNy41LTIwLjktMzIuNC0yMC45LTQ5LjkgMC0xOS42IDE0LjgtMzcuOCAzNS43LTM3LjguOSAwIDEuOC4xIDIuOC4yLTM3LjktMzQuNy04OC4zLTU1LjktMTQzLjctNTUuOS03NC4zIDAtMTM5LjcgMzguMS0xNzcuOCA5NS45IDUgLjIgOS43LjMgMTMuNy4zIDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc3LjUgMjMwLjRMMjQ5LjggMjQ3bC0zMy4xLTkwLjhjLTExLjUtLjctMjIuMy0yLTIyLjMtMi0xMS41LS43LTEwLjEtMTguMiAxLjMtMTcuNSAwIDAgMzUuMSAyLjcgNTYgMi43IDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc2LjkgMjI4LjcgMjEuMi03MC45YzktMjkuNCAxNi01MC41IDE2LTY4Ljd6bS0xMzkuOSAyOS4zbC02My44IDE4NS41YzE5LjEgNS42IDM5LjIgOC43IDYwLjEgOC43IDI0LjggMCA0OC41LTQuMyA3MC42LTEyLjEtLjYtLjktMS4xLTEuOS0xLjUtMi45bC02NS40LTE3OS4yem0xODMtMTIwLjdjLjkgNi44IDEuNCAxNCAxLjQgMjEuOSAwIDIxLjYtNCA0NS44LTE2LjIgNzYuMmwtNjUgMTg3LjlDNDI2LjIgNDAzIDQ2OC43IDMzNC41IDQ2OC43IDI1NmMwLTM3LTkuNC03MS44LTI2LTEwMi4xek01MDQgMjU2YzAgMTM2LjgtMTExLjMgMjQ4LTI0OCAyNDhDMTE5LjIgNTA0IDggMzkyLjcgOCAyNTYgOCAxMTkuMiAxMTkuMiA4IDI1NiA4YzEzNi43IDAgMjQ4IDExMS4yIDI0OCAyNDh6bS0xMS40IDBjMC0xMzAuNS0xMDYuMi0yMzYuNi0yMzYuNi0yMzYuNkMxMjUuNSAxOS40IDE5LjQgMTI1LjUgMTkuNCAyNTZTMTI1LjYgNDkyLjYgMjU2IDQ5Mi42YzEzMC41IDAgMjM2LjYtMTA2LjEgMjM2LjYtMjM2LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3BiZWdpbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjIuNzk5IDMyMi4zNzRDNTE5LjAxIDM4Ni42ODIgNDY2Ljk2MSA0ODAgMzcwLjk0NCA0ODBjLTM5LjYwMiAwLTc4LjgyNC0xNy42ODctMTAwLjE0Mi01MC4wNC02Ljg4Ny4zNTYtMjIuNzAyLjM1Ni0yOS41OSAwQzIxOS44NDggNDYyLjM4MSAxODAuNTg4IDQ4MCAxNDEuMDY5IDQ4MGMtOTUuNDkgMC0xNDguMzQ4LTkyLjk5Ni05MS44NTUtMTU3LjYyNkMtMjkuOTI1IDE5MC41MjMgODAuNDc5IDMyIDI1Ni4wMDYgMzJjMTc1LjYzMiAwIDI4NS44NyAxNTguNjI2IDIwNi43OTMgMjkwLjM3NHptLTMzOS42NDctODIuOTcyaDQxLjUyOXYtNTguMDc1aC00MS41Mjl2NTguMDc1em0yMTcuMTggODYuMDcydi0yMy44MzljLTYwLjUwNiAyMC45MTUtMTMyLjM1NSA5LjE5OC0xODcuNTg5LTMzLjk3MWwuMjQ2IDI0Ljg5N2M1MS4xMDEgNDYuMzY3IDEzMS43NDYgNTcuODc1IDE4Ny4zNDMgMzIuOTEzem0tMTUwLjc1My04Ni4wNzJoMTY2LjA1OHYtNTguMDc1SDE4OS41Nzl2NTguMDc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdwZXhwbG9yZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI1NmMwIDE0MS4yLTExNC43IDI1Ni0yNTYgMjU2QzExNC44IDUxMiAwIDM5Ny4zIDAgMjU2UzExNC43IDAgMjU2IDBzMjU2IDExNC43IDI1NiAyNTZ6bS0zMiAwYzAtMTIzLjItMTAwLjMtMjI0LTIyNC0yMjRDMTMyLjUgMzIgMzIgMTMyLjUgMzIgMjU2czEwMC41IDIyNCAyMjQgMjI0IDIyNC0xMDAuNSAyMjQtMjI0ek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0aC0xNC42bC01MC0xMDAtNDguOSAxMDBoLTE0bDUxLjEtMTA2LjktMjIuMy05LjQgNi0xNCA2OC42IDI5LjEtNiAxNC4zLTE2LjUtNy4xem0tMTEuOC0xMTYuM2w2OC42IDI5LjQtMjkuNCA2OC4zTDIzMCAyNDZsMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdwZm9ybXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDc1LjJ2MzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ySDQzLjJDMTkuMyA0ODAgMCA0NjEuNCAwIDQzNi44Vjc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmgzNjEuN2MyNCAwIDQzLjEgMTguOCA0My4xIDQzLjJ6bS0zNy4zIDM2MS42Vjc1LjJjMC0zLTIuNi01LjgtNS44LTUuOGgtOS4zTDI4NS4zIDE0NCAyMjQgOTQuMSAxNjIuOCAxNDQgNTIuNSA2OS4zaC05LjNjLTMuMiAwLTUuOCAyLjgtNS44IDUuOHYzNjEuN2MwIDMgMi42IDUuOCA1LjggNS44aDM2MS43YzMuMi4xIDUuOC0yLjcgNS44LTUuOHpNMTUwLjIgMTg2djM3SDc2Ljd2LTM3aDczLjV6bTAgNzQuNHYzNy4zSDc2Ljd2LTM3LjNoNzMuNXptMTEuMS0xNDcuM2w1NC00My43SDk2LjhsNjQuNSA0My43em0yMTAgNzIuOXYzN2gtMTk2di0zN2gxOTZ6bTAgNzQuNHYzNy4zaC0xOTZ2LTM3LjNoMTk2em0tODQuNi0xNDcuM2w2NC41LTQzLjdIMjMyLjhsNTMuOSA0My43ek0zNzEuMyAzMzV2MzcuM2gtOTkuNFYzMzVoOTkuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcHJlc3NyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE3MS4zMyAxNTguNmMtMTUuMTggMzQuNTEtMzAuMzcgNjkuMDItNDUuNjMgMTAzLjUtMi40NCA1LjUxLTYuODkgOC4yNC0xMi45NyA4LjI0LTIzLjAyLS4wMS00Ni4wMy4wNi02OS4wNS0uMDUtNS4xMi0uMDMtOC4yNSAxLjg5LTEwLjM0IDYuNzItMTAuMTkgMjMuNTYtMjAuNjMgNDctMzAuOTUgNzAuNS0xLjU0IDMuNTEtNC4wNiA1LjI5LTcuOTIgNS4yOS00NS45NC0uMDEtOTEuODctLjAyLTEzNy44MSAwLTMuMTMgMC01LjYzLTEuMTUtNy43Mi0zLjQ1LTExLjIxLTEyLjMzLTIyLjQ2LTI0LjYzLTMzLjY4LTM2Ljk0LTIuNjktMi45NS0yLjc5LTYuMTgtMS4yMS05LjczIDguNjYtMTkuNTQgMTcuMjctMzkuMSAyNS44OS01OC42NiAxMi45My0yOS4zNSAyNS44OS01OC42OSAzOC43NS04OC4wOCAxLjctMy44OCA0LjI4LTUuNjggOC41NC01LjY1IDE0LjI0LjEgMjguNDguMDIgNDIuNzIuMDUgNi4yNC4wMSA5LjIgNC44NCA2LjY2IDEwLjU5LTEzLjYgMzAuNzctMjcuMTcgNjEuNTUtNDAuNzQgOTIuMzMtNS43MiAxMi45OS0xMS40MiAyNS45OS0xNy4wOSAzOS0zLjkxIDguOTUgNy4wOCAxMS45NyAxMC45NSA1LjYuMjMtLjM3LTEuNDIgNC4xOCAzMC4wMS02Ny42OSAxLjM2LTMuMSAzLjQxLTQuNCA2Ljc3LTQuMzkgMTUuMjEuMDggMzAuNDMuMDIgNDUuNjQuMDQgNS41Ni4wMSA3LjkxIDMuNjQgNS42NiA4Ljc1LTguMzMgMTguOTYtMTYuNzEgMzcuOS0yNC45OCA1Ni44OS00Ljk4IDExLjQzIDguMDggMTIuNDkgMTEuMjggNS4zMy4wNC0uMDggMjcuODktNjMuMzMgMzIuMTktNzMuMTYgMi4wMi00LjYxIDUuNDQtNi41MSAxMC4zNS02LjUgMjYuNDMuMDUgNTIuODYgMCA3OS4yOS4wNSAxMi40NC4wMiAxMy45My0xMy42NSAzLjktMTMuNjQtMjUuMjYuMDMtNTAuNTIuMDItNzUuNzguMDItNi4yNyAwLTcuODQtMi40Ny01LjI3LTguMjcgNS43OC0xMy4wNiAxMS41OS0yNi4xMSAxNy4zLTM5LjIxIDEuNzMtMy45NiA0LjUyLTUuNzkgOC44NC01Ljc4IDIzLjA5LjA2IDI1Ljk4LjAyIDEzMC43OC4wMyA2LjA4LS4wMSA4LjAzIDIuNzkgNS42MiA4LjI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgMzE4LjJjNDQuMyA1NC4zIDY0LjcgOTguOCA1NC40IDExOC43LTcuOSAxNS4xLTU2LjcgNDQuNi05Mi42IDU1LjktMjkuNiA5LjMtNjguNCAxMy4zLTEwMC40IDEwLjItMzguMi0zLjctNzYuOS0xNy40LTExMC4xLTM5QzkzLjMgNDQ1LjggODcgNDM4LjMgODcgNDIzLjRjMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41QzQ4My4zIDEyNy4zIDQzMi43IDc3IDQyNS42IDc3Yy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOEMzNjcuNyAxOTcgNDI3LjUgMjgzLjEgNDQ4LjIgMzQ2YzYuOCAyMC43IDkuNyA0MS4xIDcuNCA1Mi4zLTEuNyA4LjUtMS43IDguNSAxLjQgNC42IDYuMS03LjcgMTkuOS0zMS4zIDI1LjQtNDMuNSA3LjQtMTYuMiAxNS00MC4yIDE4LjYtNTguNyA0LjMtMjIuNSAzLjktNzAuOC0uOC05My40ek0xNDEuMyA0M0MxODkgNDAuNSAyNTEgNzcuNSAyNTUuNiA3OC40Yy43LjEgMTAuNC00LjIgMjEuNi05LjcgNjMuOS0zMS4xIDk0LTI1LjggMTA3LjQtMjUuMi02My45LTM5LjMtMTUyLjctNTAtMjMzLjktMTEuNy0yMy40IDExLjEtMjQgMTEuOS05LjQgMTEuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYaW5nU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0MC40IDMyMC4ySDkzLjhjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42LjItMTAuMSA2LTEwLjFoNDYuNmM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjF6bTIxOS43LTIxNC4xTDI1Ny4zIDI4Ni44di4ybDY1LjUgMTE5YzIuOCA1LjEuMSAxMC4xLTYgMTAuMWgtNDYuNmMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMi4zLTQuMSAzNi44LTY0LjkgMTAzLjQtMTgyLjMgMy4zLTUuOCA3LjQtOC43IDEyLjUtOC43aDQ2LjljNS43LS4xIDguOCA0LjcgNiAxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Mi43IDIxMGMtMS44IDMuMy0yNS4yIDQ0LjQtNzAuMSAxMjMuNS00LjkgOC4zLTEwLjggMTIuNS0xNy43IDEyLjVIOS44Yy03LjcgMC0xMi4xLTcuNS04LjUtMTQuNGw2OS0xMjEuM2MuMiAwIC4yLS4xIDAtLjNsLTQzLjktNzUuNmMtNC4zLTcuOC4zLTE0LjEgOC41LTE0LjFIMTAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJsNDQuNyA3Ny41ek0zODIuNiA0Ni4xbC0xNDQgMjUzdi4zTDMzMC4yIDQ2NmMzLjkgNy4xLjIgMTQuMS04LjUgMTQuMWgtNjUuMmMtNy42IDAtMTMuNi00LTE4LTEyLjJsLTkyLjQtMTY4LjVjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4yaDY1LjdjOCAwIDEyLjMgNi43IDguNSAxNC4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlDb21iaW5hdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMnY0NDhIMFYzMmg0NDh6TTIzNiAyODcuNUwzMTMuNSAxNDJoLTMyLjdMMjM1IDIzM2MtNC43IDkuMy05IDE4LjMtMTIuOCAyNi44TDIxMCAyMzNsLTQ1LjItOTFoLTM1bDc2LjcgMTQzLjh2OTQuNUgyMzZ2LTkyLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFob28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjY5LDE0MS4wNiwxNjcsMjg0LjIzLDExMSwxNDEuMDZIMTQuOTNMMTIwLjc2LDM5MC4xOSw4Mi4xOSw0ODBoOTQuMTdMMzE3LjI3LDE0MS4wNlptMTA1LjQsMTM1Ljc5YTU4LjIyLDU4LjIyLDAsMSwwLDU4LjIyLDU4LjIyQTU4LjIyLDU4LjIyLDAsMCwwLDMyOS4wOSwyNzYuODVaTTM5NC42NSwzMmwtOTMsMjIzLjQ3SDQwNi40NEw0OTkuMDcsMzJaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFtbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMS43OCAxNTIuMTdBMjMuMDYgMjMuMDYgMCAwIDAgNDAwLjkgMTEyYy0uODMuNDMtMS43MS45LTIuNjMgMS40LTE1LjI1IDguNC0xMTguMzMgODAuNjItMTA2LjY5IDg4Ljc3czgyLjA0LTIzLjYxIDEzMC4yLTUwem0wIDIxNy4xN2MtNDguMTYtMjYuMzgtMTE4LjY0LTU4LjEtMTMwLjItNTBzOTEuNDIgODAuMzUgMTA2LjY5IDg4Ljc0Yy45Mi41MSAxLjggMSAyLjYzIDEuNDFhMjMuMDcgMjMuMDcgMCAwIDAgMjAuODgtNDAuMTV6TTQ2NC4yMSAyMzdjLS45NSAwLTEuOTUtLjA2LTMtLjA2LTE3LjQgMC0xNDIuNTIgMTMuNzYtMTM2LjI0IDI2LjUxczgzLjMgMTguNzQgMTM4LjIxIDE4Ljc2YTIzIDIzIDAgMCAwIDEtNDUuMjF6TTMxIDk2LjY1YTI0Ljg4IDI0Ljg4IDAgMCAxIDQ2LjE0LTE4LjRsODEgMjA1LjA2aDEuMjFsNzctMjAzLjUzYTIzLjUyIDIzLjUyIDAgMCAxIDQ0LjQ1IDE1LjI3TDE3MS4yIDM2OC40NEMxNTIuNjUgNDE1LjY2IDEzNC4wOCA0NDggNzcuOTEgNDQ4YTEzOS42NyAxMzkuNjcgMCAwIDEtMjMuODEtMS45NSAyMS4zMSAyMS4zMSAwIDAgMSA2LjktNDEuNzdjLjY2LjA2IDEwLjkxLjY2IDEzLjg2LjY2IDMwLjQ3IDAgNDMuNzQtMTguOTQgNTguMDctNTkuNDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFuZGV4SW50ZXJuYXRpb25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjkuNSA1MTJWMzQ1LjlMMTguNSA0OGg1NS44bDgxLjggMjI5LjdMMjUwLjIgMGg1MS4zTDE4MC44IDM0Ny44VjUxMmgtNTEuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZYW5kZXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUzLjEgMzE1LjhMNjUuNyA1MTJIMmw5Ni0yMDkuOGMtNDUuMS0yMi45LTc1LjItNjQuNC03NS4yLTE0MS4xQzIyLjcgNTMuNyA5MC44IDAgMTcxLjcgMEgyNTR2NTEyaC01NS4xVjMxNS44aC00NS44em00NS44LTI2OS4zaC0yOS40Yy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGgyOS40VjQ2LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTMuOSAzNDUuMmMtMzkgOS4zLTQ4LjQgMzIuMS0xMDQgNDcuNCAwIDAtMi43IDQtMTAuNCA1LjgtMTMuNCAzLjMtNjMuOSA2LTY4LjUgNi4xLTEyLjQuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMy44LTEwLjgtNS43LjgtMTkuMi44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMuOCAxLjQgMTMuNy44IDM2LjQtMTMuMiAxMi44LTcuOSAyOC4xLTE2LjkgNDUuNC0xNyAxNi43LS41IDE3LjYgMTkuMiA0LjkgMjIuMnpNNDk2IDI1NmMwIDEzNi45LTExMS4xIDI0OC0yNDggMjQ4UzAgMzkyLjkgMCAyNTYgMTExLjEgOCAyNDggOHMyNDggMTExLjEgMjQ4IDI0OHptLTc5LjMgNzUuMmMtMS43LTEzLjYtMTMuMi0yMy0yOC0yMi44LTIyIC4zLTQwLjUgMTEuNy01Mi44IDE5LjItNC44IDMtOC45IDUuMi0xMi40IDYuOCAzLjEtNDQuNS0yMi41LTczLjEtMjguNy03OS40IDcuOC0xMS4zIDE4LjQtMjcuOCAyMy40LTUzLjIgNC4zLTIxLjcgMy01NS41LTYuOS03NC41LTEuNi0zLjEtNy40LTExLjItMjEtNy40LTkuNy0yMC0xMy0yMi4xLTE1LjYtMjMuOC0xLjEtLjctMjMuNi0xNi40LTQxLjQgMjgtMTIuMi45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40aC4xYy04LjQgMy0xMi4zIDkuOS0xNi45IDIyLjMtNi41IDE3LjQuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVllbHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuOSAyNDAuMzJsOTkuNjIgNDguNjFjMTkuMiA5LjQgMTYuMiAzNy41MS00LjUgNDIuNzFMMzAuNSAzNTguNDVhMjIuNzkgMjIuNzkgMCAwIDEtMjguMjEtMTkuNiAxOTcuMTYgMTk3LjE2IDAgMCAxIDktODUuMzIgMjIuOCAyMi44IDAgMCAxIDMxLjYxLTEzLjIxem00NCAyMzkuMjVhMTk5LjQ1IDE5OS40NSAwIDAgMCA3OS40MiAzMi4xMUEyMi43OCAyMi43OCAwIDAgMCAxOTIuOTQgNDkwbDMuOS0xMTAuODJjLjctMjEuMy0yNS41LTMxLjkxLTM5LjgxLTE2LjFsLTc0LjIxIDgyLjRhMjIuODIgMjIuODIgMCAwIDAgNC4wOSAzNC4wOXptMTQ1LjM0LTEwOS45Mmw1OC44MSA5NGEyMi45MyAyMi45MyAwIDAgMCAzNCA1LjUgMTk4LjM2IDE5OC4zNiAwIDAgMCA1Mi43MS02Ny42MUEyMyAyMyAwIDAgMCAzNjQuMTcgMzcwbC0xMDUuNDItMzQuMjZjLTIwLjMxLTYuNS0zNy44MSAxNS44LTI2LjUxIDMzLjkxem0xNDguMzMtMTMyLjIzYTE5Ny40NCAxOTcuNDQgMCAwIDAtNTAuNDEtNjkuMzEgMjIuODUgMjIuODUgMCAwIDAtMzQgNC40bC02MiA5MS45MmMtMTEuOSAxNy43IDQuNyA0MC42MSAyNS4yIDM0LjcxTDM2NiAyNjguNjNhMjMgMjMgMCAwIDAgMTQuNjEtMzEuMjF6TTYyLjExIDMwLjE4YTIyLjg2IDIyLjg2IDAgMCAwLTkuOSAzMmwxMDQuMTIgMTgwLjQ0YzExLjcgMjAuMiA0Mi42MSAxMS45IDQyLjYxLTExLjRWMjIuODhhMjIuNjcgMjIuNjcgMCAwIDAtMjQuNS0yMi44IDMyMC4zNyAzMjAuMzcgMCAwIDAtMTEyLjMzIDMwLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWW9hc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTEuMyA3NmgxODZsLTcgMTguOWgtMTc5Yy0zOS43IDAtNzEuOSAzMS42LTcxLjkgNzAuM3YyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNWNDYwSDkxLjNDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41VjE2NS4yQzAgMTE1LjkgNDAuNyA3NiA5MS4zIDc2em0yMjkuMS01Nmg2Ni41QzI0My4xIDM5OC4xIDI0MS4yIDQxOC45IDIwMi4yIDQ1OS4zYy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN3YtNTEuMWM0OS4yLTcuNyA2NC42LTQ5LjkgNjQuNi03NS4zIDAtMjAuMS42LTEyLjYtODIuMS0yMjMuMmg2MS40TDIxOC4yIDI5OSAzMjAuNCAyMHpNNDQ4IDE2MS41VjQ2MEgyMzRjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40aDE4Mi41VjE2MS41YzAtMzIuNS0xNy4xLTUxLjktNDguMi02Mi45bDYuNy0xNy42YzQxLjcgMTMuNiA2MC45IDQzLjEgNjAuOSA4MC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlvdXR1YmVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg2LjggMjAyLjFsOTUuMiA1NC4xLTk1LjIgNTQuMVYyMDIuMXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDIgMTc2LjNzMC01OS42LTcuNi04OC4yYy00LjItMTUuOC0xNi41LTI4LjItMzIuMi0zMi40QzMzNy45IDEyOCAyMjQgMTI4IDIyNCAxMjhzLTExMy45IDAtMTQyLjIgNy43Yy0xNS43IDQuMi0yOCAxNi42LTMyLjIgMzIuNC03LjYgMjguNS03LjYgODguMi03LjYgODguMnMwIDU5LjYgNy42IDg4LjJjNC4yIDE1LjggMTYuNSAyNy43IDMyLjIgMzEuOUMxMTAuMSAzODQgMjI0IDM4NCAyMjQgMzg0czExMy45IDAgMTQyLjItNy43YzE1LjctNC4yIDI4LTE2LjEgMzIuMi0zMS45IDcuNi0yOC41IDcuNi04OC4xIDcuNi04OC4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlvdXR1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ5LjY1NSAxMjQuMDgzYy02LjI4MS0yMy42NS0yNC43ODctNDIuMjc2LTQ4LjI4NC00OC41OTdDNDU4Ljc4MSA2NCAyODggNjQgMjg4IDY0UzExNy4yMiA2NCA3NC42MjkgNzUuNDg2Yy0yMy40OTcgNi4zMjItNDIuMDAzIDI0Ljk0Ny00OC4yODQgNDguNTk3LTExLjQxMiA0Mi44NjctMTEuNDEyIDEzMi4zMDUtMTEuNDEyIDEzMi4zMDVzMCA4OS40MzggMTEuNDEyIDEzMi4zMDVjNi4yODEgMjMuNjUgMjQuNzg3IDQxLjUgNDguMjg0IDQ3LjgyMUMxMTcuMjIgNDQ4IDI4OCA0NDggMjg4IDQ0OHMxNzAuNzggMCAyMTMuMzcxLTExLjQ4NmMyMy40OTctNi4zMjEgNDIuMDAzLTI0LjE3MSA0OC4yODQtNDcuODIxIDExLjQxMi00Mi44NjcgMTEuNDEyLTEzMi4zMDUgMTEuNDEyLTEzMi4zMDVzMC04OS40MzgtMTEuNDEyLTEzMi4zMDV6bS0zMTcuNTEgMjEzLjUwOFYxNzUuMTg1bDE0Mi43MzkgODEuMjA1LTE0Mi43MzkgODEuMjAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVpoaWh1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MC41NCAxNDguMTN2MjE3LjU0bDIzLjQzLjAxIDcuNzEgMjYuMzcgNDIuMDEtMjYuMzdoNDkuNTNWMTQ4LjEzSDE3MC41NHptOTcuNzUgMTkzLjkzaC0yNy45NGwtMjcuOSAxNy41MS01LjA4LTE3LjQ3LTExLjktLjA0VjE3MS43NWg3Mi44MnYxNzAuMzF6bS0xMTguNDYtOTQuMzlIOTcuNWMxLjc0LTI3LjEgMi4yLTUxLjU5IDIuMi03My40Nmg1MS4xNnMxLjk3LTIyLjU2LTguNTgtMjIuMzFoLTg4LjVjMy40OS0xMy4xMiA3Ljg3LTI2LjY2IDEzLjEyLTQwLjY3IDAgMC0yNC4wNyAwLTMyLjI3IDIxLjU3LTMuMzkgOC45LTEzLjIxIDQzLjE0LTMwLjcgNzguMTIgNS44OS0uNjQgMjUuMzctMS4xOCAzNi44NC0yMi4yMSAyLjExLTUuODkgMi41MS02LjY2IDUuMTQtMTQuNTNoMjguODdjMCAxMC41LTEuMiA2Ni44OC0xLjY4IDczLjQ0SDIwLjgzYy0xMS43NCAwLTE1LjU2IDIzLjYyLTE1LjU2IDIzLjYyaDY1LjU4QzY2LjQ1IDMyMS4xIDQyLjgzIDM2My4xMiAwIDM5Ni4zNGMyMC40OSA1Ljg1IDQwLjkxLS45MyA1MS05LjkgMCAwIDIyLjk4LTIwLjkgMzUuNTktNjkuMjVsNTMuOTYgNjQuOTRzNy45MS0yNi44OS0xLjI0LTM5Ljk5Yy03LjU4LTguOTItMjguMDYtMzMuMDYtMzYuNzktNDEuODFMODcuOSAzMTEuOTVjNC4zNi0xMy45OCA2Ljk5LTI3LjU1IDcuODctNDAuNjdoNjEuNjVzLS4wOS0yMy42Mi03LjU5LTIzLjYydi4wMXptNDEyLjAyLTEuNmMyMC44My0yNS42NCA0NC45OC01OC41NyA0NC45OC01OC41N3MtMTguNjUtMTQuOC0yNy4zOC00LjA2Yy02IDguMTUtMzYuODMgNDguMi0zNi44MyA0OC4ybDE5LjIzIDE0LjQzem0tMTUwLjA5LTU5LjA5Yy05LjAxLTguMjUtMjUuOTEgMi4xMy0yNS45MSAyLjEzczM5LjUyIDU1LjA0IDQxLjEyIDU3LjQ1bDE5LjQ2LTEzLjczcy0yNS42Ny0zNy42MS0zNC42Ni00NS44NmgtLjAxek02NDAgMjU4LjM1Yy0xOS43OCAwLTEzMC45MS45My0xMzEuMDYuOTN2LTEwMWM0LjgxIDAgMTIuNDItLjQgMjIuODUtMS4yIDQwLjg4LTIuNDEgNzAuMTMtNCA4Ny43Ny00LjgxIDAgMCAxMi4yMi0yNy4xOS0uNTktMzMuNDQtMy4wNy0xLjE4LTIzLjE3IDQuNTgtMjMuMTcgNC41OHMtMTY1LjIyIDE2LjQ5LTIzMi4zNiAxOC4wNWMxLjYgOC44MiA3LjYyIDE3LjA4IDE1Ljc4IDE5LjU1IDEzLjMxIDMuNDggMjIuNjkgMS43IDQ5LjE1Ljg5IDI0LjgzLTEuNiA0My42OC0yLjQzIDU2LjUxLTIuNDN2OTkuODFIMzUxLjQxczIuODIgMjIuMzEgMjUuNTEgMjIuODVoMTA3Ljk0djcwLjkyYzAgMTMuOTctMTEuMTkgMjEuOTktMjQuNDggMjEuMTItMTQuMDguMTEtMjYuMDgtMS4xNS00MS42OS0xLjgxIDEuOTkgMy45NyA2LjMzIDE0LjM5IDE5LjMxIDIxLjg0IDkuODggNC44MSAxNi4xNyA2LjU3IDI2LjAyIDYuNTcgMjkuNTYgMCA0NS42Ny0xNy4yOCA0NC44OS00NS4zMXYtNzMuMzJoMTIyLjM2YzkuNjggMCA4LjctMjMuNzggOC43LTIzLjc4bC4wMy0uMDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU3LjUyIDI3MmgzNi45NkwxNzYgMjE4Ljc4IDE1Ny41MiAyNzJ6TTM1MiAyNTZjLTEzLjIzIDAtMjQgMTAuNzctMjQgMjRzMTAuNzcgMjQgMjQgMjQgMjQtMTAuNzcgMjQtMjQtMTAuNzctMjQtMjQtMjR6TTQ2NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMjUwLjU4IDM1MmgtMTYuOTRjLTYuODEgMC0xMi44OC00LjMyLTE1LjEyLTEwLjc1TDIxMS4xNSAzMjBoLTcwLjI5bC03LjM4IDIxLjI1QTE2IDE2IDAgMCAxIDExOC4zNiAzNTJoLTE2Ljk0Yy0xMS4wMSAwLTE4LjczLTEwLjg1LTE1LjEyLTIxLjI1TDE0MCAxNzYuMTJBMjMuOTk1IDIzLjk5NSAwIDAgMSAxNjIuNjcgMTYwaDI2LjY2QTIzLjk5IDIzLjk5IDAgMCAxIDIxMiAxNzYuMTNsNTMuNjkgMTU0LjYyYzMuNjEgMTAuNC00LjExIDIxLjI1LTE1LjExIDIxLjI1ek00MjQgMzM2YzAgOC44NC03LjE2IDE2LTE2IDE2aC0xNmMtNC44NSAwLTkuMDQtMi4yNy0xMS45OC01LjY4LTguNjIgMy42Ni0xOC4wOSA1LjY4LTI4LjAyIDUuNjgtMzkuNyAwLTcyLTMyLjMtNzItNzJzMzIuMy03MiA3Mi03MmM4LjQ2IDAgMTYuNDYgMS43MyAyNCA0LjQyVjE3NmMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWRkcmVzc0Jvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE2MGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjBWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzMjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQ4aDIwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMHYtNjRoMjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwdi02NGgyMHptLTIyOC0zMmMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6bTExMiAyMzYuOGMwIDEwLjYtMTAgMTkuMi0yMi40IDE5LjJIMTE4LjRDMTA2IDM4NCA5NiAzNzUuNCA5NiAzNjQuOHYtMTkuMmMwLTMxLjggMzAuMS01Ny42IDY3LjItNTcuNmg1YzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDVjMzcuMSAwIDY3LjIgMjUuOCA2Ny4yIDU3LjZ2MTkuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGRyZXNzQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMzUyIDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptMTEyIDIzNi44YzAgMTAuNi0xMCAxOS4yLTIyLjQgMTkuMkg4Ni40Qzc0IDM4NCA2NCAzNzUuNCA2NCAzNjQuOHYtMTkuMmMwLTMxLjggMzAuMS01Ny42IDY3LjItNTcuNmg1YzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDVjMzcuMSAwIDY3LjIgMjUuOCA2Ny4yIDU3LjZ2MTkuMnpNNTEyIDMxMmMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2em0wLTY0YzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtNjRjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGp1c3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZjMCAxMzYuOTY2IDExMS4wMzMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMzQgMjQ4LTI0OFMzOTIuOTY2IDggMjU2IDggOCAxMTkuMDMzIDggMjU2em0yNDggMTg0VjcyYzEwMS43MDUgMCAxODQgODIuMzExIDE4NCAxODQgMCAxMDEuNzA1LTgyLjMxMSAxODQtMTg0IDE4NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBaXJGcmVzaGVuZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDE2MEg5NkM0MyAxNjAgMCAyMDMgMCAyNTZWNDgwQzAgNDk3LjYyNSAxNC4zNzUgNTEyIDMyIDUxMkgyODhDMzA1LjYyNSA1MTIgMzIwIDQ5Ny42MjUgMzIwIDQ4MFYyNTZDMzIwIDIwMyAyNzcgMTYwIDIyNCAxNjBaTTE2MCA0MTZDMTE1Ljg3NSA0MTYgODAgMzgwLjEyNSA4MCAzMzZTMTE1Ljg3NSAyNTYgMTYwIDI1NlMyNDAgMjkxLjg3NSAyNDAgMzM2UzIwNC4xMjUgNDE2IDE2MCA0MTZaTTIyNCAzMkMyMjQgMTQuMzc1IDIwOS42MjUgMCAxOTIgMEgxMjhDMTEwLjM3NSAwIDk2IDE0LjM3NSA5NiAzMlYxMjhIMjI0VjMyWk0zODEuNzgxIDUxLjU3OEMzODMgNTAuOTY5IDM4NCA0OS4zNTkgMzg0IDQ4QzM4NCA0Ni42MjUgMzgzIDQ1LjAzMSAzODEuNzgxIDQ0LjQyMkwzNTIgMzJMMzM5LjU2MiAyLjIxOUMzMzguOTY5IDEgMzM3LjM3NSAwIDMzNiAwUzMzMy4wMzEgMSAzMzIuNDA2IDIuMjE5TDMyMCAzMkwyOTAuMjE5IDQ0LjQyMkMyODkgNDUuMDMxIDI4OCA0Ni42MjUgMjg4IDQ4QzI4OCA0OS4zNTkgMjg5IDUwLjk2OSAyOTAuMjE5IDUxLjU3OEwzMjAgNjRMMzMyLjQwNiA5My43ODFDMzMzLjAzMSA5NSAzMzQuNjI1IDk2IDMzNiA5NlMzMzguOTY5IDk1IDMzOS41NjIgOTMuNzgxTDM1MiA2NEwzODEuNzgxIDUxLjU3OFpNNDQ4IDY0TDQ2MC40MDYgOTMuNzgxQzQ2MS4wMzEgOTUgNDYyLjYyNSA5NiA0NjQgOTZTNDY2Ljk2OSA5NSA0NjcuNTYyIDkzLjc4MUw0ODAgNjRMNTA5Ljc4MSA1MS41NzhDNTExIDUwLjk2OSA1MTIgNDkuMzU5IDUxMiA0OEM1MTIgNDYuNjI1IDUxMSA0NS4wMzEgNTA5Ljc4MSA0NC40MjJMNDgwIDMyTDQ2Ny41NjIgMi4yMTlDNDY2Ljk2OSAxIDQ2NS4zNzUgMCA0NjQgMFM0NjEuMDMxIDEgNDYwLjQwNiAyLjIxOUw0NDggMzJMNDE4LjIxOSA0NC40MjJDNDE3IDQ1LjAzMSA0MTYgNDYuNjI1IDQxNiA0OEM0MTYgNDkuMzU5IDQxNyA1MC45NjkgNDE4LjIxOSA1MS41NzhMNDQ4IDY0Wk00ODAgMjI0TDQ2Ny41NjIgMTk0LjIxOUM0NjYuOTY5IDE5MyA0NjUuMzc1IDE5MiA0NjQgMTkyUzQ2MS4wMzEgMTkzIDQ2MC40MDYgMTk0LjIxOUw0NDggMjI0TDQxOC4yMTkgMjM2LjQyMkM0MTcgMjM3LjAzMSA0MTYgMjM4LjYyNSA0MTYgMjQwQzQxNiAyNDEuMzU5IDQxNyAyNDIuOTY5IDQxOC4yMTkgMjQzLjU3OEw0NDggMjU2TDQ2MC40MDYgMjg1Ljc4MUM0NjEuMDMxIDI4NyA0NjIuNjI1IDI4OCA0NjQgMjg4UzQ2Ni45NjkgMjg3IDQ2Ny41NjIgMjg1Ljc4MUw0ODAgMjU2TDUwOS43ODEgMjQzLjU3OEM1MTEgMjQyLjk2OSA1MTIgMjQxLjM1OSA1MTIgMjQwQzUxMiAyMzguNjI1IDUxMSAyMzcuMDMxIDUwOS43ODEgMjM2LjQyMkw0ODAgMjI0Wk00NDUuNzgxIDE0Ny41NzhDNDQ3IDE0Ni45NjkgNDQ4IDE0NS4zNTkgNDQ4IDE0NEM0NDggMTQyLjYyNSA0NDcgMTQxLjAzMSA0NDUuNzgxIDE0MC40MjJMNDE2IDEyOEw0MDMuNTYyIDk4LjIxOUM0MDIuOTY5IDk3IDQwMS4zNzUgOTYgNDAwIDk2UzM5Ny4wMzEgOTcgMzk2LjQwNiA5OC4yMTlMMzg0IDEyOEwzNTQuMjE5IDE0MC40MjJDMzUzIDE0MS4wMzEgMzUyIDE0Mi42MjUgMzUyIDE0NEMzNTIgMTQ1LjM1OSAzNTMgMTQ2Ljk2OSAzNTQuMjE5IDE0Ny41NzhMMzg0IDE2MEwzOTYuNDA2IDE4OS43ODFDMzk3LjAzMSAxOTEgMzk4LjYyNSAxOTIgNDAwIDE5MlM0MDIuOTY5IDE5MSA0MDMuNTYyIDE4OS43ODFMNDE2IDE2MEw0NDUuNzgxIDE0Ny41NzhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wIDI1NkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xMDguMSA5NmgyMzEuODFBMTIuMDkgMTIuMDkgMCAwIDAgMzUyIDgzLjlWNDQuMDlBMTIuMDkgMTIuMDkgMCAwIDAgMzM5LjkxIDMySDEwOC4xQTEyLjA5IDEyLjA5IDAgMCAwIDk2IDQ0LjA5VjgzLjlBMTIuMSAxMi4xIDAgMCAwIDEwOC4xIDk2em0yMzEuODEgMjU2QTEyLjA5IDEyLjA5IDAgMCAwIDM1MiAzMzkuOXYtMzkuODFBMTIuMDkgMTIuMDkgMCAwIDAgMzM5LjkxIDI4OEgxMDguMUExMi4wOSAxMi4wOSAwIDAgMCA5NiAzMDAuMDl2MzkuODFhMTIuMSAxMi4xIDAgMCAwIDEyLjEgMTIuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkp1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDQxNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODMgMzUyaDI2Mi4zNEExMi44MiAxMi44MiAwIDAgMCAyODggMzM5LjE3di0zOC4zNEExMi44MiAxMi44MiAwIDAgMCAyNzUuMTcgMjg4SDEyLjgzQTEyLjgyIDEyLjgyIDAgMCAwIDAgMzAwLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDEyLjgzIDM1MnptMC0yNTZoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDI4OCA4My4xN1Y0NC44M0ExMi44MiAxMi44MiAwIDAgMCAyNzUuMTcgMzJIMTIuODNBMTIuODIgMTIuODIgMCAwIDAgMCA0NC44M3YzOC4zNEExMi44MiAxMi44MiAwIDAgMCAxMi44MyA5NnpNNDMyIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wIDI1NkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsaWduUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMjI0aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTQxNiAxOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0zODRIMTcyLjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE2MCA0NC44M3YzOC4zNEExMi44MiAxMi44MiAwIDAgMCAxNzIuODMgOTZoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCA4My4xN1Y0NC44M0ExMi44MiAxMi44MiAwIDAgMCA0MzUuMTcgMzJ6bTAgMjU2SDE3Mi44M0ExMi44MiAxMi44MiAwIDAgMCAxNjAgMzAwLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDE3Mi44MyAzNTJoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAyODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxsZXJnaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAxMTJjLTE3LjYgMC0zMiAxNC40LTMyIDMydjcyYzAgNC40LTMuNiA4LTggOGgtMTZjLTQuNCAwLTgtMy42LTgtOFY2NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnYxNTJjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04VjMyYzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMydjE4NGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWNjRjMC0xNy42LTE0LjQtMzItMzItMzJTOTYgNDYuNCA5NiA2NHYyNDFsLTIzLjYtMzIuNWMtMTMtMTcuOS0zOC0yMS44LTU1LjktOC44cy0yMS44IDM4LTguOCA1NS45bDEyNS42IDE3Mi43YzkgMTIuNCAyMy41IDE5LjggMzguOCAxOS44aDE5Ny42YzIyLjMgMCA0MS42LTE1LjMgNDYuNy0zN2wyNi41LTExMi43YzMuMi0xMy43IDQuOS0yOC4zIDUuMS00Mi4zVjE0NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnpNMTc2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTY0IDEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTY0IDMyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyIDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyLTEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFtYnVsYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgMzUyaC0xNlYyNDMuOWMwLTEyLjctNS4xLTI0LjktMTQuMS0zMy45TDQ5NCAxMTAuMWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFINDE2VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHYzMjBjMCAyNi41IDIxLjUgNDggNDggNDhoMTZjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmgxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05Nmg0OGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMTYwIDQ2NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTE0NC0yNDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4em0xNzYgMjQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptODAtMjA4SDQxNlYxNDRoNDQuMWw5OS45IDk5LjlWMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC41NDcgMTg5LjAzOWMtMjAuMjk1LTEwLjE0OS00NC4xNDctMTEuMTk5LTY0LjczOS0zLjg5IDQyLjYwNiAwIDcxLjIwOCAyMC40NzUgODUuNTc4IDUwLjU3NiA4LjU3NiAxNy44OTktNS4xNDggMzguMDcxLTIzLjYxNyAzOC4wNzEgMTguNDI5IDAgMzIuMjExIDIwLjEzNiAyMy42MTcgMzguMDcxLTE0LjcyNSAzMC44NDYtNDYuMTIzIDUwLjg1NC04MC4yOTggNTAuODU0LS41NTcgMC05NC40NzEtOC42MTUtOTQuNDcxLTguNjE1bC02Ni40MDYgMzMuMzQ3Yy05LjM4NCA0LjY5My0xOS44MTUuMzc5LTIzLjg5NS03Ljc4MUwxLjg2IDI5MC43NDdjLTQuMTY3LTguNjE1LTEuMTExLTE4Ljg5NyA2Ljk0Ni0yMy42MjFsNTguMDcyLTMzLjA2OUwxMDggMTU5Ljg2MWM2LjM5LTU3LjI0NSAzNC43MzEtMTA5Ljc2NyA3OS43NDMtMTQ2LjcyNiAxMS4zOTEtOS40NDggMjguMzQxLTcuNzgxIDM3LjUxIDMuNjEzIDkuNDQ2IDExLjM5NCA3Ljc4IDI4LjA2Ny0zLjYxMiAzNy41MTYtMTIuNTAzIDEwLjU1OS0yMy42MTggMjIuNTA5LTMyLjUwOSAzNS41NyAyMS42NzItMTQuNzI5IDQ2LjY3OS0yNC43MzIgNzQuMTg2LTI4LjA2NyAxNC43MjUtMS45NDUgMjguMDYzIDguMzM2IDI5LjczIDIzLjA2NSAxLjk0NSAxNC43MjgtOC4zMzYgMjguMDY3LTIzLjA2MiAyOS43MzQtMTYuMTE2IDEuOTQ1LTMxLjEyIDcuNTAzLTQ0LjE3OCAxNS4yODQgMjYuMTE0LTUuNzEzIDU4LjcxMi0zLjEzOCA4OC4wNzkgMTEuMTE1IDEzLjMzNiA2LjY2OSAxOC44OTMgMjIuNTA5IDEyLjIyNCAzNS44NDgtNi4zODkgMTMuMDYtMjIuNTA0IDE4LjYxNy0zNS41NjQgMTIuMjI2em0tMjcuMjI5IDY5LjQ3MmMtNi4xMTItMTIuNTA1LTE4LjMzOC0yMC4yODYtMzIuMjMxLTIwLjI4NmEzNS40NiAzNS40NiAwIDAgMC0zNS41NjUgMzUuNTdjMCAyMS40MjggMTcuODA4IDM1LjU3IDM1LjU2NSAzNS41NyAxMy44OTMgMCAyNi4xMTktNy43ODEgMzIuMjMxLTIwLjI4NiA0LjQ0Ni05LjQ0OSAxMy42MTQtMTUuMDA2IDIzLjMzOS0xNS4yODQtOS43MjUtLjI3Ny0xOC44OTMtNS44MzUtMjMuMzM5LTE1LjI4NHptMzc0LjgyMS0zNy4yMzdjNC4xNjggOC42MTUgMS4xMTEgMTguODk3LTYuOTQ2IDIzLjYyMWwtNTguMDcxIDMzLjA2OUw1MzIgMzUyLjE2Yy02LjM5IDU3LjI0NS0zNC43MzEgMTA5Ljc2Ny03OS43NDMgMTQ2LjcyNi0xMC45MzIgOS4xMTItMjcuNzk5IDguMTQ0LTM3LjUxLTMuNjEzLTkuNDQ2LTExLjM5NC03Ljc4LTI4LjA2NyAzLjYxMy0zNy41MTYgMTIuNTAzLTEwLjU1OSAyMy42MTctMjIuNTA5IDMyLjUwOC0zNS41Ny0yMS42NzIgMTQuNzI5LTQ2LjY3OSAyNC43MzItNzQuMTg2IDI4LjA2Ny0xMC4wMjEgMi41MDYtMjcuNTUyLTUuNjQzLTI5LjczLTIzLjA2NS0xLjk0NS0xNC43MjggOC4zMzYtMjguMDY3IDIzLjA2Mi0yOS43MzQgMTYuMTE2LTEuOTQ2IDMxLjEyLTcuNTAzIDQ0LjE3OC0xNS4yODQtMjYuMTE0IDUuNzEzLTU4LjcxMiAzLjEzOC04OC4wNzktMTEuMTE1LTEzLjMzNi02LjY2OS0xOC44OTMtMjIuNTA5LTEyLjIyNC0zNS44NDggNi4zODktMTMuMDYxIDIyLjUwNS0xOC42MTkgMzUuNTY1LTEyLjIyNyAyMC4yOTUgMTAuMTQ5IDQ0LjE0NyAxMS4xOTkgNjQuNzM5IDMuODktNDIuNjA2IDAtNzEuMjA4LTIwLjQ3NS04NS41NzgtNTAuNTc2LTguNTc2LTE3Ljg5OSA1LjE0OC0zOC4wNzEgMjMuNjE3LTM4LjA3MS0xOC40MjkgMC0zMi4yMTEtMjAuMTM2LTIzLjYxNy0zOC4wNzEgMTQuMDMzLTI5LjM5NiA0NC4wMzktNTAuODg3IDgxLjk2Ni01MC44NTRsOTIuODAzIDguNjE1IDY2LjQwNi0zMy4zNDdjOS40MDgtNC43MDQgMTkuODI4LS4zNTQgMjMuODk0IDcuNzgxbDQ0LjQ1NSA4OC45MjZ6bS0yMjkuMjI3LTE4LjYxOGMtMTMuODkzIDAtMjYuMTE5IDcuNzgxLTMyLjIzMSAyMC4yODYtNC40NDYgOS40NDktMTMuNjE0IDE1LjAwNi0yMy4zMzkgMTUuMjg0IDkuNzI1LjI3OCAxOC44OTMgNS44MzYgMjMuMzM5IDE1LjI4NCA2LjExMiAxMi41MDUgMTguMzM4IDIwLjI4NiAzMi4yMzEgMjAuMjg2YTM1LjQ2IDM1LjQ2IDAgMCAwIDM1LjU2NS0zNS41N2MwLTIxLjQyOS0xNy44MDgtMzUuNTctMzUuNTY1LTM1LjU3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuY2hvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45NzEgMzUyaDMyLjM5NEM2Ny4xNzIgNDU0LjczNSAxODEuOTQ0IDUxMiAyODggNTEyYzEwNi4yMjkgMCAyMjAuODUzLTU3LjM4IDI0Mi42MzUtMTYwaDMyLjM5NGMxMC42OTEgMCAxNi4wNDUtMTIuOTI2IDguNDg1LTIwLjQ4NWwtNjcuMDI5LTY3LjAyOWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwbC02Ny4wMjkgNjcuMDI5Yy03LjU2IDcuNTYtMi4yMDYgMjAuNDg1IDguNDg1IDIwLjQ4NWgzNS4xNDZjLTIwLjI5IDU0LjMxNy04NC45NjMgODYuNTg4LTE0NC4xMTcgOTQuMDE1VjI1Nmg1MmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC01MnYtNS40N2MzNy4yODEtMTMuMTc4IDYzLjk5NS00OC43MjUgNjQtOTAuNTE4QzM4NC4wMDUgNDMuNzcyIDM0MS42MDUuNzM4IDI4OS4zNy4wMSAyMzUuNzIzLS43MzkgMTkyIDQyLjUyNSAxOTIgOTZjMCA0MS43OTggMjYuNzE2IDc3LjM1IDY0IDkwLjUzVjE5MmgtNTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1MnYxOTAuMDE1Yy01OC45MzYtNy4zOTktMTIzLjgyLTM5LjY3OS0xNDQuMTE3LTk0LjAxNWgzNS4xNDZjMTAuNjkxIDAgMTYuMDQ1LTEyLjkyNiA4LjQ4NS0yMC40ODVsLTY3LjAyOS02Ny4wMjljLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw0LjQ4NSAzMzEuNTE1Qy0zLjA3NCAzMzkuMDc0IDIuMjggMzUyIDEyLjk3MSAzNTJ6TTI4OCA2NGMxNy42NDUgMCAzMiAxNC4zNTUgMzIgMzJzLTE0LjM1NSAzMi0zMiAzMi0zMi0xNC4zNTUtMzItMzIgMTQuMzU1LTMyIDMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlRG91YmxlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDMgMjU2LjNMNyAxMjAuM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMjIuNi0yMi42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDk2LjQgOTYuNCA5Ni40LTk2LjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzEzIDg2LjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTEzNiAxMzZjLTkuNCA5LjUtMjQuNiA5LjUtMzQgLjF6bTM0IDE5MmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0yMi42LTIyLjZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE2MCAzNTIuMWwtOTYuNC05Ni40Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDI3OC4zYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMzYgMTM2YzkuNCA5LjUgMjQuNiA5LjUgMzQgLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVEb3VibGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMy43IDIzOWwxMzYtMTM2YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwzMTkuOSAyNTZsOTYuNCA5Ni40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDM5My43IDQwOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTEzNi0xMzZjLTkuNS05LjQtOS41LTI0LjYtLjEtMzR6bS0xOTIgMzRsMTM2IDEzNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyMi42LTIyLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMTI3LjkgMjU2bDk2LjQtOTYuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEuNyAxMDNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0xMzYgMTM2Yy05LjUgOS40LTkuNSAyNC42LS4xIDM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlRG91YmxlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjMgMjczbC0xMzYgMTM2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuNi0yMi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw5Ni40LTk2LjQtOTYuNC05Ni40Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw1NC4zIDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMzYgMTM2YzkuNSA5LjQgOS41IDI0LjYuMSAzNHptMTkyLTM0bC0xMzYtMTM2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMjIuNiAyMi42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw5Ni40IDk2LjQtOTYuNCA5Ni40Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyMi42IDIyLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMTM2LTEzNmM5LjQtOS4yIDkuNC0yNC40IDAtMzMuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvdWJsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NyAyNTUuN2wxMzYgMTM2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0yMi42IDIyLjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE2MCAzNTEuOWwtOTYuNCA5Ni40Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDQyNS43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwxMzYtMTM2YzkuNC05LjUgMjQuNi05LjUgMzQtLjF6bS0zNC0xOTJMNyAxOTkuN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMjIuNiAyMi42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDk2LjQtOTYuNCA5Ni40IDk2LjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjIuNi0yMi42YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0xMzYtMTM2Yy05LjItOS40LTI0LjQtOS40LTMzLjggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQzIDM1Mi4zTDcgMjE2LjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjYtMjIuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw5Ni40IDk2LjQgOTYuNC05Ni40YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS4yIDkuNC0yNC40IDkuNC0zMy44IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxLjcgMjM5bDEzNi0xMzZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDEyNy45IDI1Nmw5Ni40IDk2LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjAxLjcgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMTM2LTEzNmMtOS41LTkuNC05LjUtMjQuNi0uMS0zNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNC4zIDI3M2wtMTM2IDEzNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTIyLjYtMjIuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsOTYuNC05Ni40LTk2LjQtOTYuNGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMNTQuMyAxMDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTM2IDEzNmM5LjUgOS40IDkuNSAyNC42LjEgMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzcgMTU5LjdsMTM2IDEzNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMjIuNiAyMi42Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNjAgMjU1LjlsLTk2LjQgOTYuNGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMNyAzMjkuN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMTM2LTEzNmM5LjQtOS41IDI0LjYtOS41IDM0LS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEzNiAyNDBjMC05LjMgNC4xLTE3LjUgMTAuNS0yMy40bC0zMS05LjNjLTguNS0yLjUtMTMuMy0xMS41LTEwLjctMTkuOSAyLjUtOC41IDExLjQtMTMuMiAxOS45LTEwLjdsODAgMjRjOC41IDIuNSAxMy4zIDExLjUgMTAuNyAxOS45LTIuMSA2LjktOC40IDExLjQtMTUuMyAxMS40LS41IDAtMS4xLS4yLTEuNy0uMi43IDIuNyAxLjcgNS4zIDEuNyA4LjIgMCAxNy43LTE0LjMgMzItMzIgMzJTMTM2IDI1Ny43IDEzNiAyNDB6bTE2OCAxNTQuMmMtMjcuOC0zMy40LTg0LjItMzMuNC0xMTIuMSAwLTEzLjUgMTYuMy0zOC4yLTQuMi0yNC42LTIwLjUgMjAtMjQgNDkuNC0zNy44IDgwLjYtMzcuOHM2MC42IDEzLjggODAuNiAzNy44YzEzLjggMTYuNS0xMS4xIDM2LjYtMjQuNSAyMC41em03Ni42LTE4Ni45bC0zMSA5LjNjNi4zIDUuOCAxMC41IDE0LjEgMTAuNSAyMy40IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMi45LjktNS42IDEuNy04LjItLjYuMS0xLjEuMi0xLjcuMi02LjkgMC0xMy4yLTQuNS0xNS4zLTExLjQtMi41LTguNSAyLjMtMTcuNCAxMC43LTE5LjlsODAtMjRjOC40LTIuNSAxNy40IDIuMyAxOS45IDEwLjcgMi41IDguNS0yLjMgMTcuNC0xMC44IDE5Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5raCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMjU2aC00NC42MkMyNzIuNDYgMjIyLjAxIDI4OCAxODEuNjUgMjg4IDE0NCAyODggNTUuNjMgMjMwLjY5IDAgMTYwIDBTMzIgNTUuNjMgMzIgMTQ0YzAgMzcuNjUgMTUuNTQgNzguMDEgMzYuNjIgMTEySDI0Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0djMyYzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoOTZ2MTUyYzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoMzJjMTMuMjUgMCAyNC0xMC43NSAyNC0yNFYzMzZoOTZjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtMzJjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpNMTYwIDgwYzI5LjYxIDAgNDggMjQuNTIgNDggNjQgMCAzNC42Ni0yNy4xNCA3OC4xNC00OCAxMDAuODctMjAuODYtMjIuNzItNDgtNjYuMjEtNDgtMTAwLjg3IDAtMzkuNDggMTguMzktNjQgNDgtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwbGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUwLjg1IDEyOWMyNS45NyA0LjY3IDQ3LjI3IDE4LjY3IDYzLjkyIDQyIDE0LjY1IDIwLjY3IDI0LjY0IDQ2LjY3IDI5Ljk2IDc4IDQuNjcgMjguNjcgNC4zMiA1Ny4zMy0xIDg2LTcuOTkgNDcuMzMtMjMuOTcgODctNDcuOTQgMTE5LTI4LjY0IDM4LjY3LTY0LjU5IDU4LTEwNy44NyA1OC0xMC42NiAwLTIyLjMtMy4zMy0zNC45Ni0xMC04LjY2LTUuMzMtMTguMzEtOC0yOC45Ny04cy0yMC4zIDIuNjctMjguOTcgOGMtMTIuNjYgNi42Ny0yNC4zIDEwLTM0Ljk2IDEwLTQzLjI4IDAtNzkuMjMtMTkuMzMtMTA3Ljg3LTU4LTIzLjk3LTMyLTM5Ljk1LTcxLjY3LTQ3Ljk0LTExOS01LjMyLTI4LjY3LTUuNjctNTcuMzMtMS04NiA1LjMyLTMxLjMzIDE1LjMxLTU3LjMzIDI5Ljk2LTc4IDE2LjY1LTIzLjMzIDM3Ljk1LTM3LjMzIDYzLjkyLTQyIDE1Ljk4LTIuNjcgMzcuOTUtLjMzIDY1LjkyIDcgMjMuOTcgNi42NyA0NC4yOCAxNC42NyA2MC45MyAyNCAxNi42NS05LjMzIDM2Ljk2LTE3LjMzIDYwLjkzLTI0IDI3Ljk4LTcuMzMgNDkuOTYtOS42NyA2NS45NC03em0tNTQuOTQtNDFjLTkuMzIgOC42Ny0yMS42NSAxNS0zNi45NiAxOS0xMC42NiAzLjMzLTIyLjMgNS0zNC45NiA1bC0xNC45OC0xYy0xLjMzLTkuMzMtMS4zMy0yMCAwLTMyIDIuNjctMjQgMTAuMzItNDIuMzMgMjIuOTctNTUgOS4zMi04LjY3IDIxLjY1LTE1IDM2Ljk2LTE5IDEwLjY2LTMuMzMgMjIuMy01IDM0Ljk2LTVsMTQuOTggMSAxIDE1YzAgMTIuNjctMS42NyAyNC4zMy00Ljk5IDM1LTMuOTkgMTUuMzMtMTAuMzEgMjcuNjctMTguOTggMzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MEgzMnYyODh6bTE2MC0yMTJjMC02LjYgNS40LTEyIDEyLTEyaDEwNGM2LjYgMCAxMiA1LjQgMTIgMTJ2OGMwIDYuNi01LjQgMTItMTIgMTJIMjA0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTh6TTQ4MCAzMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djQ4YzAgOC44IDcuMiAxNiAxNiAxNmg0ODBjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFyY2h3YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwIDQ0OGgtMTZWOTZIMzJ2MzUySDE2LjAyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNkgxNzZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzIwYzAtNTMuMDIgNDIuOTgtOTYgOTYtOTZzOTYgNDIuOTggOTYgOTZsLjAyIDE2MHYxNmMwIDguODQgNy4xNiAxNiAxNiAxNkg1NjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0wLTQ0OEgxNkM3LjE2IDAgMCA3LjE2IDAgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNTQ0YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6TTIxMiAxNDB2MTE2aC03MC45Yy0xMC43IDAtMTYuMSAxMy04LjUgMjAuNWwxMTQuOSAxMTQuM2M0LjcgNC43IDEyLjIgNC43IDE2LjkgMGwxMTQuOS0xMTQuM2M3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDMwMFYxNDBjMC02LjYtNS40LTEyLTEyLTEyaC02NGMtNi42IDAtMTIgNS40LTEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OHptMTE2LTI5MkgyNTZ2LTcwLjljMC0xMC43LTEzLTE2LjEtMjAuNS04LjVMMTIxLjIgMjQ3LjVjLTQuNyA0LjctNC43IDEyLjIgMCAxNi45bDExNC4zIDExNC45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWMzAwaDExNmM2LjYgMCAxMi01LjQgMTItMTJ2LTY0YzAtNi42LTUuNC0xMi0xMi0xMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0FsdENpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4YzEzNyAwIDI0OCAxMTEgMjQ4IDI0OFMzOTMgNTA0IDI1NiA1MDQgOCAzOTMgOCAyNTYgMTE5IDggMjU2IDh6TTE0MCAzMDBoMTE2djcwLjljMCAxMC43IDEzIDE2LjEgMjAuNSA4LjVsMTE0LjMtMTE0LjljNC43LTQuNyA0LjctMTIuMiAwLTE2LjlsLTExNC4zLTExNWMtNy42LTcuNi0yMC41LTIuMi0yMC41IDguNVYyMTJIMTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NjRjMCA2LjYgNS40IDEyIDEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZDOCAxMTkgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NnptMjkyIDExNlYyNTZoNzAuOWMxMC43IDAgMTYuMS0xMyA4LjUtMjAuNUwyNjQuNSAxMjEuMmMtNC43LTQuNy0xMi4yLTQuNy0xNi45IDBsLTExNSAxMTQuM2MtNy42IDcuNi0yLjIgMjAuNSA4LjUgMjAuNUgyMTJ2MTE2YzAgNi42IDUuNCAxMiAxMiAxMmg2NGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHptLTE0My42LTI4LjlMMjg4IDMwMi42VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE4Mi42bC03Mi40LTc1LjVjLTkuMy05LjctMjQuOC05LjktMzQuMy0uNGwtMTAuOSAxMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlMMjM5IDQwNC4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDEzMi43LTEzMi43YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0xMC45LTExYy05LjUtOS41LTI1LTkuMy0zNC4zLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dDaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4em0yOC45LTE0My42TDIwOS40IDI4OEgzOTJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDIwOS40bDc1LjUtNzIuNGM5LjctOS4zIDkuOS0yNC44LjQtMzQuM2wtMTEtMTAuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTA3LjcgMjM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMzIuNyAxMzIuN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwxMS0xMC45YzkuNS05LjUgOS4zLTI1LS40LTM0LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOGMxMzcgMCAyNDggMTExIDI0OCAyNDhTMzkzIDUwNCAyNTYgNTA0IDggMzkzIDggMjU2IDExOSA4IDI1NiA4em0tMjguOSAxNDMuNmw3NS41IDcyLjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxODIuNmwtNzUuNSA3Mi40Yy05LjcgOS4zLTkuOSAyNC44LS40IDM0LjNsMTEgMTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMEw0MDQuMyAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMjcxLjYgMTA2LjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0xMSAxMC45Yy05LjUgOS42LTkuMyAyNS4xLjQgMzQuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0NpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjU2QzggMTE5IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTZ6bTE0My42IDI4LjlsNzIuNC03NS41VjM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyMDkuNGw3Mi40IDc1LjVjOS4zIDkuNyAyNC44IDkuOSAzNC4zLjRsMTAuOS0xMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNzMgMTA3LjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDEwNi4zIDI0MC40Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMC45IDExYzkuNiA5LjUgMjUuMSA5LjMgMzQuNC0uNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEzLjEgMjIyLjVsMjIuMiAyMi4yYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0MSA0NzNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDEyLjcgMjc4LjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjItMjIuMmM5LjUtOS41IDI1LTkuMyAzNC4zLjRMMTg0IDM0My40VjU2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0djI4Ny40bDExNC44LTEyMC41YzkuMy05LjggMjQuOC0xMCAzNC4zLS40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTcuNSA0NDUuMWwtMjIuMiAyMi4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjAxLjQgNDQuN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyMi4yIDIyLjJjOS41IDkuNSA5LjMgMjUtLjQgMzQuM0wxMzYuNiAyMTZINDI0YzEzLjMgMCAyNCAxMC43IDI0IDI0djMyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDEzNi42bDEyMC41IDExNC44YzkuOCA5LjMgMTAgMjQuOC40IDM0LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTAuNSA2Ni45bDIyLjItMjIuMmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw0NDEgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0Ni42IDQ2Ny4zYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuMi0yMi4yYy05LjUtOS41LTkuMy0yNSAuNC0zNC4zTDMxMS40IDI5NkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0aDI4Ny40TDE5MC45IDEwMS4yYy05LjgtOS4zLTEwLTI0LjgtLjQtMzQuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0LjkgMjg5LjVsLTIyLjItMjIuMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjA3IDM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE5NC4zIDE5NC4zYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDQxMyAyODkuNGMtOS41IDkuNS0yNSA5LjMtMzQuMy0uNEwyNjQgMTY4LjZWNDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0aC0zMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTY4LjZMNjkuMiAyODkuMWMtOS4zIDkuOC0yNC44IDEwLTM0LjMuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NBbHRIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Ny45NDEgMTY5Ljk0MVYyMTZIMTM0LjA1OXYtNDYuMDU5YzAtMjEuMzgyLTI1Ljg1MS0zMi4wOS00MC45NzEtMTYuOTcxTDcuMDI5IDIzOS4wMjljLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OCAwIDMzLjk0MWw4Ni4wNTkgODYuMDU5YzE1LjExOSAxNS4xMTkgNDAuOTcxIDQuNDExIDQwLjk3MS0xNi45NzFWMjk2aDI0My44ODJ2NDYuMDU5YzAgMjEuMzgyIDI1Ljg1MSAzMi4wOSA0MC45NzEgMTYuOTcxbDg2LjA1OS04Ni4wNTljOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY4IDAtMzMuOTQxbC04Ni4wNTktODYuMDU5Yy0xNS4xMTktMTUuMTItNDAuOTcxLTQuNDEyLTQwLjk3MSAxNi45N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NBbHRWIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC4wNTkgMzc3Ljk0MUgxNjhWMTM0LjA1OWg0Ni4wNTljMjEuMzgyIDAgMzIuMDktMjUuODUxIDE2Ljk3MS00MC45NzFMMTQ0Ljk3MSA3LjAyOWMtOS4zNzMtOS4zNzMtMjQuNTY4LTkuMzczLTMzLjk0MSAwTDI0Ljk3MSA5My4wODhjLTE1LjExOSAxNS4xMTktNC40MTEgNDAuOTcxIDE2Ljk3MSA0MC45NzFIODh2MjQzLjg4Mkg0MS45NDFjLTIxLjM4MiAwLTMyLjA5IDI1Ljg1MS0xNi45NzEgNDAuOTcxbDg2LjA1OSA4Ni4wNTljOS4zNzMgOS4zNzMgMjQuNTY4IDkuMzczIDMzLjk0MSAwbDg2LjA1OS04Ni4wNTljMTUuMTItMTUuMTE5IDQuNDEyLTQwLjk3MS0xNi45Ny00MC45NzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Mi4yMDEgNDI1Ljc3NWwtNzkuMTk2IDc5LjE5NmMtOS4zNzMgOS4zNzMtMjQuNTY4IDkuMzczLTMzLjk0MSAwbC03OS4xOTYtNzkuMTk2Yy0xNS4xMTktMTUuMTE5LTQuNDExLTQwLjk3MSAxNi45NzEtNDAuOTdoNTEuMTYyTDIyOCAyODRIMTI3LjE5NnY1MS4xNjJjMCAyMS4zODItMjUuODUxIDMyLjA5LTQwLjk3MSAxNi45NzFMNy4wMjkgMjcyLjkzN2MtOS4zNzMtOS4zNzMtOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDg2LjIyNSAxNTkuOGMxNS4xMTktMTUuMTE5IDQwLjk3MS00LjQxMSA0MC45NzEgMTYuOTcxVjIyOEgyMjhWMTI3LjE5NmgtNTEuMjNjLTIxLjM4MiAwLTMyLjA5LTI1Ljg1MS0xNi45NzEtNDAuOTcxbDc5LjE5Ni03OS4xOTZjOS4zNzMtOS4zNzMgMjQuNTY4LTkuMzczIDMzLjk0MSAwbDc5LjE5NiA3OS4xOTZjMTUuMTE5IDE1LjExOSA0LjQxMSA0MC45NzEtMTYuOTcxIDQwLjk3MWgtNTEuMTYyVjIyOGgxMDAuODA0di01MS4xNjJjMC0yMS4zODIgMjUuODUxLTMyLjA5IDQwLjk3LTE2Ljk3MWw3OS4xOTYgNzkuMTk2YzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MUw0MjUuNzczIDM1Mi4yYy0xNS4xMTkgMTUuMTE5LTQwLjk3MSA0LjQxMS00MC45Ny0xNi45NzFWMjg0SDI4NHYxMDAuODA0aDUxLjIzYzIxLjM4MiAwIDMyLjA5IDI1Ljg1MSAxNi45NzEgNDAuOTcxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDI2MGMwIDE1LjQ2NC0xMi41MzYgMjgtMjggMjhzLTI4LTEyLjUzNi0yOC0yOGMwLTQ0LjExMiAzNS44ODgtODAgODAtODBzODAgMzUuODg4IDgwIDgwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtMTMuMjM0LTEwLjc2Ny0yNC0yNC0yNHMtMjQgMTAuNzY2LTI0IDI0em0yNC0xNzZjLTk3LjA0NyAwLTE3NiA3OC45NTMtMTc2IDE3NiAwIDE1LjQ2NCAxMi41MzYgMjggMjggMjhzMjgtMTIuNTM2IDI4LTI4YzAtNjYuMTY4IDUzLjgzMi0xMjAgMTIwLTEyMHMxMjAgNTMuODMyIDEyMCAxMjBjMCA3NS4xNjQtNzEuMDA5IDcwLjMxMS03MS45OTcgMTQzLjYyMkwyODggNDA0YzAgMjguNjczLTIzLjMyNyA1Mi01MiA1Mi0xNS40NjQgMC0yOCAxMi41MzYtMjggMjhzMTIuNTM2IDI4IDI4IDI4YzU5LjQ3NSAwIDEwNy44NzYtNDguMzI4IDEwOC0xMDcuNzc0LjU5NS0zNC40MjggNzItNDguMjQgNzItMTQ0LjIyNiAwLTk3LjA0Ny03OC45NTMtMTc2LTE3Ni0xNzZ6bS04MCAyMzZjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnpNMzIgNDQ4Yy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTQ4MC0xODcuOTkzYzAtMS41MTgtLjAxMi0zLjAyNS0uMDQ1LTQuNTMxQzUxMC4wNzYgMTQwLjUyNSA0MzYuMTU3IDM4LjQ3IDMyNy45OTQgMS41MTFjLTE0LjYzMy00Ljk5OC0zMC41NDkgMi44MDktMzUuNTUgMTcuNDQyLTUgMTQuNjMzIDIuODEgMzAuNTQ5IDE3LjQ0MiAzNS41NSA4NS45MDYgMjkuMzU0IDE0NC42MSAxMTAuNTEzIDE0Ni4wNzcgMjAxLjk1M2wuMDAzLjE4OGMuMDI2IDEuMTE4LjAzMyAyLjIzNi4wMzMgMy4zNjMgMCAxNS40NjQgMTIuNTM2IDI4IDI4IDI4czI4LjAwMS0xMi41MzYgMjguMDAxLTI4ek0xNTIuOTcxIDQzOS4wMjlsLTgwLTgwTDM5LjAzIDM5Mi45N2w4MCA4MCAzMy45NDEtMzMuOTQxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzdGVyaXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3OC4yMSAzMzQuMDkzTDMzNiAyNTZsMTQyLjIxLTc4LjA5M2MxMS43OTUtNi40NzcgMTUuOTYxLTIxLjM4NCA5LjIzMi0zMy4wMzdsLTE5LjQ4LTMzLjc0MWMtNi43MjgtMTEuNjUzLTIxLjcyLTE1LjQ5OS0zMy4yMjctOC41MjNMMjk2IDE4Ni43MThsMy40NzUtMTYyLjIwNEMyOTkuNzYzIDExLjA2MSAyODguOTM3IDAgMjc1LjQ4IDBoLTM4Ljk2Yy0xMy40NTYgMC0yNC4yODMgMTEuMDYxLTIzLjk5NCAyNC41MTRMMjE2IDE4Ni43MTggNzcuMjY1IDEwMi42MDdjLTExLjUwNi02Ljk3Ni0yNi40OTktMy4xMy0zMy4yMjcgOC41MjNsLTE5LjQ4IDMzLjc0MWMtNi43MjggMTEuNjUzLTIuNTYyIDI2LjU2IDkuMjMzIDMzLjAzN0wxNzYgMjU2IDMzLjc5IDMzNC4wOTNjLTExLjc5NSA2LjQ3Ny0xNS45NjEgMjEuMzg0LTkuMjMyIDMzLjAzN2wxOS40OCAzMy43NDFjNi43MjggMTEuNjUzIDIxLjcyMSAxNS40OTkgMzMuMjI3IDguNTIzTDIxNiAzMjUuMjgybC0zLjQ3NSAxNjIuMjA0QzIxMi4yMzcgNTAwLjkzOSAyMjMuMDY0IDUxMiAyMzYuNTIgNTEyaDM4Ljk2MWMxMy40NTYgMCAyNC4yODMtMTEuMDYxIDIzLjk5NS0yNC41MTRMMjk2IDMyNS4yODJsMTM4LjczNSA4NC4xMTFjMTEuNTA2IDYuOTc2IDI2LjQ5OSAzLjEzIDMzLjIyNy04LjUyM2wxOS40OC0zMy43NDFjNi43MjgtMTEuNjUzIDIuNTYzLTI2LjU1OS05LjIzMi0zMy4wMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE4Ljk0MSA4IDggMTE4LjkxOSA4IDI1NmMwIDEzNy4wNTkgMTEwLjkxOSAyNDggMjQ4IDI0OCA0OC4xNTQgMCA5NS4zNDItMTQuMTQgMTM1LjQwOC00MC4yMjMgMTIuMDA1LTcuODE1IDE0LjYyNS0yNC4yODggNS41NTItMzUuMzcybC0xMC4xNzctMTIuNDMzYy03LjY3MS05LjM3MS0yMS4xNzktMTEuNjY3LTMxLjM3My01LjEyOUMzMjUuOTIgNDI5Ljc1NyAyOTEuMzE0IDQ0MCAyNTYgNDQwYy0xMDEuNDU4IDAtMTg0LTgyLjU0Mi0xODQtMTg0UzE1NC41NDIgNzIgMjU2IDcyYzEwMC4xMzkgMCAxODQgNTcuNjE5IDE4NCAxNjAgMCAzOC43ODYtMjEuMDkzIDc5Ljc0Mi01OC4xNyA4My42OTMtMTcuMzQ5LS40NTQtMTYuOTEtMTIuODU3LTEzLjQ3Ni0zMC4wMjRsMjMuNDMzLTEyMS4xMUMzOTQuNjUzIDE0OS43NSAzODMuMzA4IDEzNiAzNjguMjI1IDEzNmgtNDQuOTgxYTEzLjUxOCAxMy41MTggMCAwIDAtMTMuNDMyIDExLjk5M2wtLjAxLjA5MmMtMTQuNjk3LTE3LjkwMS00MC40NDgtMjEuNzc1LTU5Ljk3MS0yMS43NzUtNzQuNTggMC0xMzcuODMxIDYyLjIzNC0xMzcuODMxIDE1MS40NiAwIDY1LjMwMyAzNi43ODUgMTA1Ljg3IDk2IDEwNS44NyAyNi45ODQgMCA1Ny4zNjktMTUuNjM3IDc0Ljk5MS0zOC4zMzMgOS41MjIgMzQuMTA0IDQwLjYxMyAzNC4xMDMgNzAuNzEgMzQuMTAzQzQ2Mi42MDkgMzc5LjQxIDUwNCAzMDcuNzk4IDUwNCAyMzIgNTA0IDk1LjY1MyAzOTQuMDIzIDggMjU2IDh6bS0yMS42OCAzMDQuNDNjLTIyLjI0OSAwLTM2LjA3LTE1LjYyMy0zNi4wNy00MC43NzEgMC00NC45OTMgMzAuNzc5LTcyLjcyOSA1OC42My03Mi43MjkgMjIuMjkyIDAgMzUuNjAxIDE1LjI0MSAzNS42MDEgNDAuNzcgMCA0NS4wNjEtMzMuODc1IDcyLjczLTU4LjE2MSA3Mi43M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdGxhcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguMzggMjA4aC0zOS4wOWMtMS40OSAyNy4wMy02LjU0IDUxLjM1LTE0LjIxIDcwLjQxIDI3LjcxLTEzLjI0IDQ4LjAyLTM5LjE5IDUzLjMtNzAuNDF6bTAtMzJjLTUuMjktMzEuMjItMjUuNTktNTcuMTctNTMuMy03MC40MSA3LjY4IDE5LjA2IDEyLjcyIDQzLjM4IDE0LjIxIDcwLjQxaDM5LjA5ek0yMjQgOTcuMzFjLTcuNjkgNy40NS0yMC43NyAzNC40Mi0yMy40MyA3OC42OWg0Ni44N2MtMi42Ny00NC4yNi0xNS43NS03MS4yNC0yMy40NC03OC42OXptLTQxLjA4IDguMjhjLTI3LjcxIDEzLjI0LTQ4LjAyIDM5LjE5LTUzLjMgNzAuNDFoMzkuMDljMS40OS0yNy4wMyA2LjUzLTUxLjM1IDE0LjIxLTcwLjQxem0wIDE3Mi44MmMtNy42OC0xOS4wNi0xMi43Mi00My4zOC0xNC4yMS03MC40MWgtMzkuMDljNS4yOCAzMS4yMiAyNS41OSA1Ny4xNyA1My4zIDcwLjQxek0yNDcuNDMgMjA4aC00Ni44N2MyLjY2IDQ0LjI2IDE1Ljc0IDcxLjI0IDIzLjQzIDc4LjY5IDcuNy03LjQ1IDIwLjc4LTM0LjQzIDIzLjQ0LTc4LjY5ek00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0yMjQgNjRjNzAuNjkgMCAxMjggNTcuMzEgMTI4IDEyOHMtNTcuMzEgMTI4LTEyOCAxMjhTOTYgMjYyLjY5IDk2IDE5MiAxNTMuMzEgNjQgMjI0IDY0em0xNjAgMzg0SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODh2NjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjMuOTk5MDgsMjI0YTMyLDMyLDAsMSwwLDMyLjAwNzgyLDMyQTMyLjA2NDMxLDMyLjA2NDMxLDAsMCwwLDIyMy45OTkwOCwyMjRabTIxNC4xNzItOTZjLTEwLjg3Ny0xOS41LTQwLjUwOTc5LTUwLjc1LTExNi4yNzU0NC00MS44NzVDMzAwLjM5MTY4LDM0Ljg3NSwyNjcuNjMzODYsMCwyMjMuOTk5MDgsMHMtNzYuMzkwNjYsMzQuODc1LTk3Ljg5NjUzLDg2LjEyNUM1MC4zMzY5LDc3LjM3NSwyMC43MDYsMTA4LjUsOS44MjkwNywxMjgtNi41NDk4NCwxNTcuMzc1LTUuMTc0ODQsMjAxLjEyNSwzNC45NTgsMjU2LTUuMTc0ODQsMzEwLjg3NS02LjU0OTg0LDM1NC42MjUsOS44MjkwNywzODRjMjkuMTMwODcsNTIuMzc1LDEwMS42NDY1Miw0My42MjUsMTE2LjI3MzQ4LDQxLjg3NUMxNDcuNjA4NDIsNDc3LjEyNSwxODAuMzY0MjksNTEyLDIyMy45OTkwOCw1MTJzNzYuMzkyNi0zNC44NzUsOTcuODk2NTItODYuMTI1YzE0LjYyODkxLDEuNzUsODcuMTQ0NTYsMTAuNSwxMTYuMjc1NDQtNDEuODc1QzQ1NC41NSwzNTQuNjI1LDQ1My4xNzUsMzEwLjg3NSw0MTMuMDQwMTcsMjU2LDQ1My4xNzUsMjAxLjEyNSw0NTQuNTUsMTU3LjM3NSw0MzguMTcxLDEyOFpNNjMuMzM4ODYsMzUyYy00LTcuMjUtLjEyNS0yNC43NSwxNS4wMDM5MS00OC4yNSw2Ljg3Njk1LDYuNSwxNC4xMjg5MSwxMi44NzUsMjEuODgwODcsMTkuMTI1LDEuNjI1LDEzLjc1LDQsMjcuMTI1LDYuNzUsNDAuMTI1QzgyLjM0NDcyLDM2My44NzUsNjcuMDkwODEsMzU4LjYyNSw2My4zMzg4NiwzNTJabTM2Ljg4NDc4LTE2Mi44NzVjLTcuNzUyLDYuMjUtMTUuMDAzOTIsMTIuNjI1LTIxLjg4MDg3LDE5LjEyNS0xNS4xMjg5MS0yMy41LTE5LjAwMzkyLTQxLTE1LjAwMzkxLTQ4LjI1LDMuMzc3LTYuMTI1LDE2LjM3ODkxLTExLjUsMzcuODg0NzgtMTEuNSwxLjc1LDAsMy44NzUuMzc1LDUuNzUuMzc1QzEwNC4wOTg2NCwxNjIuMjUsMTAxLjg0ODY0LDE3NS42MjUsMTAwLjIyMzY0LDE4OS4xMjVaTTIyMy45OTkwOCw2NGM5LjUwMTk1LDAsMjIuMjU1ODYsMTMuNSwzMy44ODI4MiwzNy4yNS0xMS4yNTIsMy43NS0yMi41MDM5MSw4LTMzLjg4MjgyLDEyLjg3NS0xMS4zNzctNC44NzUtMjIuNjI4OTItOS4xMjUtMzMuODgyODMtMTIuODc1QzIwMS43NDUxNiw3Ny41LDIxNC40OTcxMiw2NCwyMjMuOTk5MDgsNjRabTAsMzg0Yy05LjUwMiwwLTIyLjI1MzkyLTEzLjUtMzMuODgyODMtMzcuMjUsMTEuMjUzOTEtMy43NSwyMi41MDU4Ny04LDMzLjg4MjgzLTEyLjg3NUMyMzUuMzc4LDQwMi43NSwyNDYuNjI5OTQsNDA3LDI1Ny44ODE5LDQxMC43NSwyNDYuMjU0OTQsNDM0LjUsMjMzLjUwMSw0NDgsMjIzLjk5OTA4LDQ0OFptMC0xMTJhODAsODAsMCwxLDEsODAtODBBODAuMDAwMjMsODAuMDAwMjMsMCwwLDEsMjIzLjk5OTA4LDMzNlpNMzg0LjY1OTMsMzUyYy0zLjYyNSw2LjYyNS0xOS4wMDM5MiwxMS44NzUtNDMuNjM0NzksMTEsMi43NTItMTMsNS4xMjctMjYuMzc1LDYuNzUyLTQwLjEyNSw3Ljc1MTk1LTYuMjUsMTUuMDAzOTEtMTIuNjI1LDIxLjg3ODkxLTE5LjEyNUMzODQuNzg0MywzMjcuMjUsMzg4LjY1OTMsMzQ0Ljc1LDM4NC42NTkzLDM1MlpNMzY5LjY1NTM4LDIwOC4yNWMtNi44NzUtNi41LTE0LjEyNy0xMi44NzUtMjEuODc4OTEtMTkuMTI1LTEuNjI1LTEzLjUtMy44NzUtMjYuODc1LTYuNzUyLTQwLjI1LDEuODc1LDAsNC4wMDItLjM3NSw1Ljc1Mi0uMzc1LDIxLjUwMzkxLDAsMzQuNTA3ODIsNS4zNzUsMzcuODgyODMsMTEuNUMzODguNjU5MywxNjcuMjUsMzg0Ljc4NDMsMTg0Ljc1LDM2OS42NTUzOCwyMDguMjVaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXVkaW9EZXNjcmlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjIuOTI1IDIzOC43MDlsOC44MjIgMzAuNjU1aC0yNS42MDZsOS4wNDEtMzAuNjUyYzEuMjc3LTQuNDIxIDIuNjUxLTkuOTk0IDMuODcyLTE1LjI0NSAxLjIyIDUuMjUxIDIuNTk0IDEwLjgyMyAzLjg3MSAxNS4yNDJ6bTE2Ni40NzQtMzIuMDk5aC0xNC41MjN2OTguNzgxaDE0LjUyM2MyOS43NzYgMCA0Ni4xNzUtMTcuNjc4IDQ2LjE3NS00OS43NzYgMC0zMi4yMzktMTcuNDktNDkuMDA1LTQ2LjE3NS00OS4wMDV6TTUxMiAxMTJ2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh6TTI0NS40NTkgMzM2LjEzOWwtNTcuMDk3LTE2OEExMi4wMDEgMTIuMDAxIDAgMCAwIDE3NyAxNjBoLTM1Ljg5NGExMi4wMDEgMTIuMDAxIDAgMCAwLTExLjM2MiA4LjEzOWwtNTcuMDk3IDE2OEM3MC4wMDMgMzQzLjkyMiA3NS43ODkgMzUyIDg0LjAwOSAzNTJoMjkuMTMzYTEyIDEyIDAgMCAwIDExLjUzNS04LjY5M2w4LjU3NC0yOS45MDZoNTEuMzY3bDguNzkzIDI5Ljk3N0ExMiAxMiAwIDAgMCAyMDQuOTI2IDM1MmgyOS4xNzJjOC4yMiAwIDE0LjAwNi04LjA3OCAxMS4zNjEtMTUuODYxem0xODQuNzAxLTgwLjUyNWMwLTU4Ljk3Ny0zNy45MTktOTUuNjE0LTk4Ljk2LTk1LjYxNGgtNTcuMzY2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjE2OGMwIDYuNjI3IDUuMzczIDEyIDEyIDEySDMzMS4yYzYxLjA0MSAwIDk4Ljk2LTM2LjkzMyA5OC45Ni05Ni4zODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXdhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTcuMTIgMzYyLjYzYy04LjY5LTguNjktNC4xNi02LjI0LTI1LjEyLTExLjg1LTkuNTEtMi41NS0xNy44Ny03LjQ1LTI1LjQzLTEzLjMyTDEuMiA0NDguN2MtNC4zOSAxMC43NyAzLjgxIDIyLjQ3IDE1LjQzIDIyLjAzbDUyLjY5LTIuMDFMMTA1LjU2IDUwN2M4IDguNDQgMjIuMDQgNS44MSAyNi40My00Ljk2bDUyLjA1LTEyNy42MmMtMTAuODQgNi4wNC0yMi44NyA5LjU4LTM1LjMxIDkuNTgtMTkuNSAwLTM3LjgyLTcuNTktNTEuNjEtMjEuMzd6TTM4Mi44IDQ0OC43bC00NS4zNy0xMTEuMjRjLTcuNTYgNS44OC0xNS45MiAxMC43Ny0yNS40MyAxMy4zMi0yMS4wNyA1LjY0LTE2LjQ1IDMuMTgtMjUuMTIgMTEuODUtMTMuNzkgMTMuNzgtMzIuMTIgMjEuMzctNTEuNjIgMjEuMzctMTIuNDQgMC0yNC40Ny0zLjU1LTM1LjMxLTkuNThMMjUyIDUwMi4wNGM0LjM5IDEwLjc3IDE4LjQ0IDEzLjQgMjYuNDMgNC45NmwzNi4yNS0zOC4yOCA1Mi42OSAyLjAxYzExLjYyLjQ0IDE5LjgyLTExLjI3IDE1LjQzLTIyLjAzek0yNjMgMzQwYzE1LjI4LTE1LjU1IDE3LjAzLTE0LjIxIDM4Ljc5LTIwLjE0IDEzLjg5LTMuNzkgMjQuNzUtMTQuODQgMjguNDctMjguOTggNy40OC0yOC40IDUuNTQtMjQuOTcgMjUuOTUtNDUuNzUgMTAuMTctMTAuMzUgMTQuMTQtMjUuNDQgMTAuNDItMzkuNTgtNy40Ny0yOC4zOC03LjQ4LTI0LjQyIDAtNTIuODMgMy43Mi0xNC4xNC0uMjUtMjkuMjMtMTAuNDItMzkuNTgtMjAuNDEtMjAuNzgtMTguNDctMTcuMzYtMjUuOTUtNDUuNzUtMy43Mi0xNC4xNC0xNC41OC0yNS4xOS0yOC40Ny0yOC45OC0yNy44OC03LjYxLTI0LjUyLTUuNjItNDQuOTUtMjYuNDEtMTAuMTctMTAuMzUtMjUtMTQuNC0zOC44OS0xMC42MS0yNy44NyA3LjYtMjMuOTggNy42MS01MS45IDAtMTMuODktMy43OS0yOC43Mi4yNS0zOC44OSAxMC42MS0yMC40MSAyMC43OC0xNy4wNSAxOC44LTQ0Ljk0IDI2LjQxLTEzLjg5IDMuNzktMjQuNzUgMTQuODQtMjguNDcgMjguOTgtNy40NyAyOC4zOS01LjU0IDI0Ljk3LTI1Ljk1IDQ1Ljc1LTEwLjE3IDEwLjM1LTE0LjE1IDI1LjQ0LTEwLjQyIDM5LjU4IDcuNDcgMjguMzYgNy40OCAyNC40IDAgNTIuODItMy43MiAxNC4xNC4yNSAyOS4yMyAxMC40MiAzOS41OSAyMC40MSAyMC43OCAxOC40NyAxNy4zNSAyNS45NSA0NS43NSAzLjcyIDE0LjE0IDE0LjU4IDI1LjE5IDI4LjQ3IDI4Ljk4QzEwNC42IDMyNS45NiAxMDYuMjcgMzI1IDEyMSAzNDBjMTMuMjMgMTMuNDcgMzMuODQgMTUuODggNDkuNzQgNS44MmEzOS42NzYgMzkuNjc2IDAgMCAxIDQyLjUzIDBjMTUuODkgMTAuMDYgMzYuNSA3LjY1IDQ5LjczLTUuODJ6TTk3LjY2IDE3NS45NmMwLTUzLjAzIDQyLjI0LTk2LjAyIDk0LjM0LTk2LjAyczk0LjM0IDQyLjk5IDk0LjM0IDk2LjAyLTQyLjI0IDk2LjAyLTk0LjM0IDk2LjAyLTk0LjM0LTQyLjk5LTk0LjM0LTk2LjAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhYnlDYXJyaWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQuOCAxN2MtMTEuMy0xNy44LTM3LjItMjIuOC01NC05LjRDMzUuMyA1MS45IDAgMTE4IDAgMTkyaDI1NkwxNDQuOCAxN3pNNDk2IDk2aC00OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NjRIMGMwIDUwLjYgMjMgOTYuNCA2MC4zIDEzMC43QzI1LjcgMzYzLjYgMCAzOTQuNyAwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtOC45LTEuOC0xNy4yLTQuNC0yNS4yIDIxLjYgNS45IDQ0LjYgOS4yIDY4LjQgOS4yczQ2LjktMy4zIDY4LjQtOS4yYy0yLjcgOC00LjQgMTYuMy00LjQgMjUuMiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzcuMy0yNS43LTY4LjQtNjAuMy03Ny4zQzQyNSAzMjAuNCA0NDggMjc0LjYgNDQ4IDIyNHYtNjRoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTgwIDQ2NGMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6bTMyMC0zMmMwIDE3LjYtMTQuNCAzMi0zMiAzMnMtMzItMTQuNC0zMi0zMiAxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTYwYzQ0LjIgMCA4MC0zNS44IDgwLTgwUzIzNi4yIDAgMTkyIDBzLTgwIDM1LjgtODAgODAgMzUuOCA4MCA4MCA4MHptLTUzLjQgMjQ4LjhsMjUuNi0zMi02MS41LTUxLjJMNTYuOCAzODNjLTExLjQgMTQuMi0xMS43IDM0LjQtLjggNDlsNDggNjRjNy45IDEwLjUgMTkuOSAxNiAzMiAxNiA4LjMgMCAxNi44LTIuNiAyNC04IDE3LjctMTMuMiAyMS4yLTM4LjMgOC01NmwtMjkuNC0zOS4yem0xNDIuNy04My4ybC02MS41IDUxLjIgMjUuNiAzMkwyMTYgNDQ4Yy0xMy4yIDE3LjctOS43IDQyLjggOCA1NiA3LjIgNS40IDE1LjYgOCAyNCA4IDEyLjIgMCAyNC4yLTUuNSAzMi0xNmw0OC02NGMxMC45LTE0LjYgMTAuNi0zNC44LS44LTQ5bC00NS45LTU3LjR6TTM3Ni43IDE0NWMtMTIuNy0xOC4xLTM3LjYtMjIuNC01NS43LTkuOGwtNDAuNiAyOC41Yy01Mi43IDM3LTEyNC4yIDM3LTE3Ni44IDBMNjMgMTM1LjNDNDQuOSAxMjIuNiAyMCAxMjcgNy4zIDE0NS01LjQgMTYzLjEtMSAxODggMTcgMjAwLjdsNDAuNiAyOC41YzE3IDExLjkgMzUuNCAyMC45IDU0LjQgMjcuOVYyODhoMTYwdi0zMC44YzE5LTcgMzcuNC0xNiA1NC40LTI3LjlsNDAuNi0yOC41YzE4LjEtMTIuOCAyMi40LTM3LjcgOS43LTU1Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiA2NEgyMDUuMjZBNjMuOTcgNjMuOTcgMCAwIDAgMTYwIDgyLjc1TDkuMzcgMjMzLjM3Yy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1TDE2MCA0MjkuMjVjMTIgMTIgMjguMjggMTguNzUgNDUuMjUgMTguNzVINTc2YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWMTI4YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS04NC42OSAyNTQuMDZjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMjIuNjIgMjIuNjJjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMzg0IDMwMS4yNWwtNjIuMDYgNjIuMDZjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBsLTIyLjYyLTIyLjYyYy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzTDMzOC43NSAyNTZsLTYyLjA2LTYyLjA2Yy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzbDIyLjYyLTIyLjYyYzYuMjUtNi4yNSAxNi4zOC02LjI1IDIyLjYzIDBMMzg0IDIxMC43NWw2Mi4wNi02Mi4wNmM2LjI1LTYuMjUgMTYuMzgtNi4yNSAyMi42MyAwbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNMNDI5LjI1IDI1Nmw2Mi4wNiA2Mi4wNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNrd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDI4MC42bDE5MiAxNjBjMjAuNiAxNy4yIDUyLjUgMi44IDUyLjUtMjQuNlY5NmMwLTI3LjQtMzEuOS00MS44LTUyLjUtMjQuNmwtMTkyIDE2MGMtMTUuMyAxMi44LTE1LjMgMzYuNCAwIDQ5LjJ6bTI1NiAwbDE5MiAxNjBjMjAuNiAxNy4yIDUyLjUgMi44IDUyLjUtMjQuNlY5NmMwLTI3LjQtMzEuOS00MS44LTUyLjUtMjQuNmwtMTkyIDE2MGMtMTUuMyAxMi44LTE1LjMgMzYuNCAwIDQ5LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE4LjkyIDMzNi4zOWMzNC44OS0zNC44OSA0NC4yLTU5LjcgNTQuMDUtODYgMTAuNjEtMjguMjkgMjEuNTktNTcuNTQgNjEuMzctOTcuMzRzNjkuMDUtNTAuNzcgOTcuMzUtNjEuMzhjMjMuODgtOSA0Ni42NC0xNy42OCA3Ni43OS00NS4zN0w0NzAuODEgOC45MWEzMSAzMSAwIDAgMC00MC4xOC0yLjgzYy0xMy42NCAxMC4xLTI1LjE1IDE0LjM5LTQxIDIwLjNDMjQ3IDc5LjUyIDIwOS4yNiAxOTEuMjkgMjAwLjY1IDIxNC4xYy0yOS43NSA3OC44My04OS41NSA5NC42OC05OC43MiA5OC4wOS0yNC44NiA5LjI2LTU0LjczIDIwLjM4LTkxLjA3IDUwLjM2Qy0zIDM3NC0zLjYzIDM5NSA5LjA3IDQwNy42MWwzNS43NiAzNS41MUM4MCA0MTAuNTIgMTA3IDQwMC4xNSAxMzMgMzkwLjM5YzI2LjI3LTkuODQgNTEuMDYtMTkuMTIgODUuOTItNTR6bTM0OC0yMzJsLTM1Ljc1LTM1LjUxYy0zNS4xOSAzMi42My02Mi4xOCA0My04OC4yNSA1Mi43OS0yNi4yNiA5Ljg1LTUxLjA2IDE5LjE2LTg1Ljk1IDU0cy00NC4xOSA1OS42OS01NCA4NkMyOTIuMzMgMjkwIDI4MS4zNCAzMTkuMjIgMjQxLjU1IDM1OXMtNjkgNTAuNzMtOTcuMyA2MS4zMmMtMjMuODYgOS00Ni42MSAxNy42Ni03Ni43MiA0NS4zM2wzNy42OCAzNy40M2EzMSAzMSAwIDAgMCA0MC4xOCAyLjgyYzEzLjYtMTAuMDYgMjUuMDktMTQuMzQgNDAuOTQtMjAuMjQgMTQyLjItNTMgMTgwLTE2NC4xIDE4OC45NC0xODcuNjlDNDA1IDIxOS4xOCA0NjQuOCAyMDMuMyA0NzQgMTk5Ljg2YzI0Ljg3LTkuMjcgNTQuNzQtMjAuNCA5MS4xMS01MC40MSAxMy44OS0xMS40IDE0LjUyLTMyLjQ1IDEuODItNDUuMDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjdGVyaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyLjM1LDIyNi40QTE3LjcxLDE3LjcxLDAsMCwwLDI4MS40NiwyMDNsLTQtOS4wOGExMjEuMjksMTIxLjI5LDAsMCwxLDEyLjM2LTMuMDhBODMuMzQsODMuMzQsMCwwLDAsMzIzLjU3LDE3N2wxMCw5YTE3Ljc2LDE3Ljc2LDAsMSwwLDIzLjkyLTI2LjI3bC05LjcyLTguNzZhODMuMTIsODMuMTIsMCwwLDAsMTEuNjUtNDguMThsMTEuODUtMy41MWExNy43MywxNy43MywwLDEsMC0xMC4xNS0zNGwtMTEuMzQsMy4zNmE4NCw4NCwwLDAsMC0zNi4zOC0zNS41N2wyLjg0LTEwLjg1YTE3LjgsMTcuOCwwLDAsMC0zNC40Ny04LjkzbC0yLjgyLDEwLjc4YTgzLjI1LDgzLjI1LDAsMCwwLTE2Ljc0LDEuMUMyNTAuODMsMjcsMjQwLDMwLjIyLDIyOS4xLDMzLjM5bC0zLjM4LTkuNDZhMTcuOCwxNy44LDAsMCwwLTMzLjU2LDExLjg5bDMuNDksOS44YTI4Ni43NCwyODYuNzQsMCwwLDAtNDMuOTQsMjMuNTdsLTYuMzItOC40M2ExNy45LDE3LjksMCwwLDAtMjQuOTQtMy42QTE3LjY5LDE3LjY5LDAsMCwwLDExNi44NCw4Mmw2LjQ1LDguNjFhMjg2LjU5LDI4Ni41OSwwLDAsMC0zNC45NSwzNS4zM2wtOC44Mi02LjQyYTE3Ljg0LDE3Ljg0LDAsMCwwLTI0Ljg5LDMuODYsMTcuNjYsMTcuNjYsMCwwLDAsMy44OCwyNC43N2w4Ljg4LDYuNDdhMjg2LjYsMjg2LjYsMCwwLDAtMjMsNDMuOTFsLTEwLjQ4LTMuNTlhMTcuNzMsMTcuNzMsMCwxLDAtMTEuNTksMzMuNTJMMzIuNjcsMjMyYy0yLjc5LDEwLTUuNzksMTkuODQtNy41MiwzMC4yMmE4My4xNiw4My4xNiwwLDAsMC0uODIsMTlsLTExLjU4LDMuNDNhMTcuNzMsMTcuNzMsMCwxLDAsMTAuMTMsMzRsMTEuMjctMy4zM2E4My41MSw4My41MSwwLDAsMCwzNi4zOSwzNS40M2wtMi44OCwxMS4wNmExNy44MSwxNy44MSwwLDAsMCwzNC40OCw4LjkybDIuODctMTFjMSwwLDIuMDcuMjYsMy4xLjI2YTgzLjM5LDgzLjM5LDAsMCwwLDQ1LjY1LTEzLjg4bDguNTksOC44YTE3Ljc3LDE3Ljc3LDAsMCwwLDI1LjU2LTI0LjdsLTkuMTQtOS4zN2E4My40MSw4My40MSwwLDAsMCwxMi4wOC0zMS4wNSwxMTkuMDgsMTE5LjA4LDAsMCwxLDMuODctMTUuNTNsOSw0LjIyYTE3Ljc0LDE3Ljc0LDAsMSwwLDE1LjE1LTMyLjA5bC04LjgtNC4xMWMuNjctMSwxLjItMi4wOCwxLjktMy4wNWExMTkuODksMTE5Ljg5LDAsMCwxLDcuODctOS40MSwxMjEuNzMsMTIxLjczLDAsMCwxLDExLjY1LTExLjQsMTE5LjQ5LDExOS40OSwwLDAsMSw5Ljk0LTcuODJjMS4xMi0uNzcsMi4zMi0xLjQyLDMuNDctMi4xNWwzLjkyLDguODVhMTcuODYsMTcuODYsMCwwLDAsMTYuMzIsMTAuNThBMTguMTQsMTguMTQsMCwwLDAsMjcyLjM1LDIyNi40Wk0xMjgsMjU2YTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDEyOCwyNTZabTgwLTk2YTE2LDE2LDAsMSwxLDE2LTE2QTE2LDE2LDAsMCwxLDIwOCwxNjBabTQzMS4yNiw0NS4zYTE3Ljc5LDE3Ljc5LDAsMCwwLTE3LjA2LTEyLjY5LDE3LjU1LDE3LjU1LDAsMCwwLTUuMDguNzRsLTExLjI3LDMuMzNhODMuNjEsODMuNjEsMCwwLDAtMzYuMzktMzUuNDNsMi44OC0xMS4wNmExNy44MSwxNy44MSwwLDAsMC0zNC40OC04LjkxbC0yLjg3LDExYy0xLDAtMi4wNy0uMjYtMy4xLS4yNmE4My4zMiw4My4zMiwwLDAsMC00NS42NSwxMy44OWwtOC41OS04LjgxYTE3Ljc3LDE3Ljc3LDAsMCwwLTI1LjU2LDI0LjdsOS4xNCw5LjM3YTgzLjI4LDgzLjI4LDAsMCwwLTEyLjA4LDMxLjA2LDExOS4zNCwxMTkuMzQsMCwwLDEtMy44NywxNS41MmwtOS00LjIyYTE3Ljc0LDE3Ljc0LDAsMSwwLTE1LjE1LDMyLjA5bDguOCw0LjExYy0uNjcsMS0xLjIsMi4wOC0xLjg5LDMuMDVhMTE3LjcxLDExNy43MSwwLDAsMS03Ljk0LDkuNDcsMTE5LDExOSwwLDAsMS0xMS41NywxMS4zMywxMjEuNTksMTIxLjU5LDAsMCwxLTEwLDcuODNjLTEuMTIuNzctMi4zMiwxLjQyLTMuNDcsMi4xNWwtMy45Mi04Ljg1YTE3Ljg2LDE3Ljg2LDAsMCwwLTE2LjMyLTEwLjU4LDE4LjE0LDE4LjE0LDAsMCwwLTcuMTgsMS41QTE3LjcxLDE3LjcxLDAsMCwwLDM1OC41NCwzMDlsNCw5LjA4YTExOC43MSwxMTguNzEsMCwwLDEtMTIuMzYsMy4wOCw4My4zNCw4My4zNCwwLDAsMC0zMy43NywxMy45bC0xMC05YTE3Ljc3LDE3Ljc3LDAsMSwwLTIzLjkyLDI2LjI4bDkuNzIsOC43NWE4My4xMiw4My4xMiwwLDAsMC0xMS42NSw0OC4xOGwtMTEuODYsMy41MWExNy43MywxNy43MywwLDEsMCwxMC4xNiwzNGwxMS4zNC0zLjM2QTg0LDg0LDAsMCwwLDMyNi42MSw0NzlsLTIuODQsMTAuODVhMTcuOCwxNy44LDAsMCwwLDM0LjQ3LDguOTNMMzYxLjA2LDQ4OGE4My4zLDgzLjMsMCwwLDAsMTYuNzQtMS4xYzExLjM3LTEuODksMjIuMjQtNS4wNywzMy4xLTguMjRsMy4zOCw5LjQ2YTE3LjgsMTcuOCwwLDAsMCwzMy41Ni0xMS44OWwtMy40OS05Ljc5YTI4Ny42NiwyODcuNjYsMCwwLDAsNDMuOTQtMjMuNThsNi4zMiw4LjQzYTE3Ljg4LDE3Ljg4LDAsMCwwLDI0LjkzLDMuNkExNy42NywxNy42NywwLDAsMCw1MjMuMTYsNDMwbC02LjQ1LTguNjFhMjg3LjM3LDI4Ny4zNywwLDAsMCwzNC45NS0zNS4zNGw4LjgyLDYuNDJhMTcuNzYsMTcuNzYsMCwxLDAsMjEtMjguNjNsLTguODgtNi40NmEyODcuMTcsMjg3LjE3LDAsMCwwLDIzLTQzLjkybDEwLjQ4LDMuNTlhMTcuNzMsMTcuNzMsMCwxLDAsMTEuNTktMzMuNTJMNjA3LjMzLDI4MGMyLjc5LTEwLDUuNzktMTkuODQsNy41Mi0zMC4yMWE4My4yNyw4My4yNywwLDAsMCwuODItMTkuMDVsMTEuNTgtMy40M0ExNy43LDE3LjcsMCwwLDAsNjM5LjI2LDIwNS4zWk00MTYsNDE2YTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDQxNiw0MTZaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjdGVyaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMSwxMDIuOTNBMjMuNzYsMjMuNzYsMCwwLDAsNDgxLjQ3LDg3bC0xNS4xMiw0LjQ4YTExMS44NSwxMTEuODUsMCwwLDAtNDguNS00Ny40MmwzLjc5LTE0LjQ3YTIzLjc0LDIzLjc0LDAsMCwwLTQ2LTExLjkxbC0zLjc2LDE0LjM3YTExMS45NCwxMTEuOTQsMCwwLDAtMjIuMzMsMS40NywzODYuNzQsMzg2Ljc0LDAsMCwwLTQ0LjMzLDEwLjQxbC00LjMtMTJhMjMuNzQsMjMuNzQsMCwwLDAtNDQuNzUsMTUuODVsNC4zLDEyLjA1YTM4My40LDM4My40LDAsMCwwLTU4LjY5LDMxLjgzbC04LTEwLjYzYTIzLjg1LDIzLjg1LDAsMCwwLTMzLjI0LTQuOCwyMy41NywyMy41NywwLDAsMC00LjgzLDMzLjA5bDgsMTAuNjNhMzg2LjE0LDM4Ni4xNCwwLDAsMC00Ni43LDQ3LjQ0bC0xMS04YTIzLjY4LDIzLjY4LDAsMSwwLTI4LDM4LjE3bDExLjA5LDguMDZhMzgzLjQ1LDM4My40NSwwLDAsMC0zMC45Miw1OC43NWwtMTIuOTMtNC40M2EyMy42NSwyMy42NSwwLDEsMC0xNS40Nyw0NC42OWwxMyw0LjQ4YTM4NS44MSwzODUuODEsMCwwLDAtOS4zLDQwLjUzQTExMS41OCwxMTEuNTgsMCwwLDAsMzIuNDQsMzc1TDE3LDM3OS41NmEyMy42NCwyMy42NCwwLDAsMCwxMy41MSw0NS4zMWwxNS00LjQ0YTExMS40OSwxMTEuNDksMCwwLDAsNDguNTMsNDcuMjRsLTMuODUsMTQuNzVhMjMuNjYsMjMuNjYsMCwwLDAsMTcsMjguODMsMjQuNywyNC43LDAsMCwwLDYsLjc1LDIzLjczLDIzLjczLDAsMCwwLDIzLTE3LjdMMTQwLDQ3OS42N2MxLjM3LjA1LDIuNzcuMzUsNC4xMy4zNUExMTEuMjIsMTExLjIyLDAsMCwwLDIwNSw0NjEuNWwxMS40NSwxMS43NGEyMy43LDIzLjcsMCwwLDAsMzQuMDgtMzIuOTNsLTEyLjE5LTEyLjVhMTExLDExMSwwLDAsMCwxNi4xMS00MS40LDE1OC42OSwxNTguNjksMCwwLDEsNS4xNi0yMC43MWwxMiw1LjY0YTIzLjY2LDIzLjY2LDAsMSwwLDIwLjE5LTQyLjc5bC0xMS43Mi01LjQ5Yy44OS0xLjMyLDEuNTktMi43NywyLjUyLTQuMDZhMTU3Ljg2LDE1Ny44NiwwLDAsMSwxMC40Ni0xMi40OSwxNTkuNSwxNTkuNSwwLDAsMSwxNS41OS0xNS4yOCwxNjIuMTgsMTYyLjE4LDAsMCwxLDEzLjIzLTEwLjRjMS41LTEsMy4xLTEuODksNC42My0yLjg3bDUuMjMsMTEuOGEyMy43NCwyMy43NCwwLDAsMCw0My40OC0xOS4wOGwtNS4zNi0xMi4xMWExNTguODcsMTU4Ljg3LDAsMCwxLDE2LjQ5LTQuMSwxMTEsMTExLDAsMCwwLDQ1LTE4LjU0bDEzLjMzLDEyYTIzLjY5LDIzLjY5LDAsMSwwLDMxLjg4LTM1bC0xMi45NC0xMS42N0ExMTAuODMsMTEwLjgzLDAsMCwwLDQ3OS4yMSwxMzdMNDk1LDEzMi4zMkEyMy42MSwyMy42MSwwLDAsMCw1MTEsMTAyLjkzWk0xNjAsMzY4YTQ4LDQ4LDAsMSwxLDQ4LTQ4QTQ4LDQ4LDAsMCwxLDE2MCwzNjhabTgwLTEzNmEyNCwyNCwwLDEsMSwyNC0yNEEyNCwyNCwwLDAsMSwyNDAsMjMyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhaGFpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ni4yNSAyMDIuNTJsLTExMC0xNS40NCA0MS44Mi0xMDQuMzRjNi42Ny0xNi42NC0xMS42LTMyLjE4LTI2LjU5LTIyLjYzTDMwNy40NCAxMjAgMjczLjM1IDEyLjgyQzI3MC42NCA0LjI3IDI2My4zMiAwIDI1NiAwYy03LjMyIDAtMTQuNjQgNC4yNy0xNy4zNSAxMi44MmwtMzQuMDkgMTA3LjE5LTk0LjA0LTU5Ljg5Yy0xNC45OS05LjU1LTMzLjI1IDUuOTktMjYuNTkgMjIuNjNsNDEuODIgMTA0LjM0LTExMCAxNS40M2MtMTcuNTQgMi40Ni0yMS42OCAyNi4yNy02LjAzIDM0LjY3bDk4LjE2IDUyLjY2LTc0LjQ4IDgzLjU0Yy0xMC45MiAxMi4yNS0xLjcyIDMwLjkzIDEzLjI5IDMwLjkzIDEuMzEgMCAyLjY3LS4xNCA0LjA3LS40NWwxMDguNTctMjMuNjUtNC4xMSAxMTIuNTVjLS40MyAxMS42NSA4Ljg3IDE5LjIyIDE4LjQxIDE5LjIyIDUuMTUgMCAxMC4zOS0yLjIxIDE0LjItNy4xOGw2OC4xOC04OC45IDY4LjE4IDg4LjljMy44MSA0Ljk3IDkuMDQgNy4xOCAxNC4yIDcuMTggOS41NCAwIDE4Ljg0LTcuNTcgMTguNDEtMTkuMjJsLTQuMTEtMTEyLjU1IDEwOC41NyAyMy42NWMxNy4zNiAzLjc2IDI5LjIxLTE3LjIgMTcuMzUtMzAuNDlsLTc0LjQ4LTgzLjU0IDk4LjE2LTUyLjY2YzE1LjY0LTguMzkgMTEuNS0zMi4yLTYuMDQtMzQuNjZ6TTMzOC41MSAzMTEuNjhsLTUxLjg5LTExLjMgMS45NyA1My43OUwyNTYgMzExLjY4bC0zMi41OSA0Mi40OSAxLjk2LTUzLjc5LTUxLjg5IDExLjMgMzUuNi0zOS45My00Ni45Mi0yNS4xNyA1Mi41Ny03LjM4LTE5Ljk5LTQ5Ljg3IDQ0Ljk1IDI4LjYyTDI1NiAxNjYuNzJsMTYuMjkgNTEuMjMgNDQuOTUtMjguNjItMTkuOTkgNDkuODcgNTIuNTcgNy4zOC00Ni45MiAyNS4xNyAzNS42MSAzOS45M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWxhbmNlU2NhbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA0NDhIMzUyVjE1My4yNWMyMC40Mi04Ljk0IDM2LjEtMjYuMjIgNDMuMzgtNDcuNDdsMTMyLTQ0LjI2YzguMzgtMi44MSAxMi44OS0xMS44OCAxMC4wOC0yMC4yNmwtMTAuMTctMzAuMzRDNTI0LjQ4IDIuNTQgNTE1LjQxLTEuOTcgNTA3LjAzLjg0TDM4OS4xMSA0MC4zN0MzNzUuMyAxNi4zNiAzNDkuNjkgMCAzMjAgMGMtNDQuMTggMC04MCAzNS44Mi04MCA4MCAwIDMuNDMuNTkgNi43MSAxLjAxIDEwLjAzbC0xMjguMzkgNDMuMDVjLTguMzggMi44MS0xMi44OSAxMS44OC0xMC4wOCAyMC4yNmwxMC4xNyAzMC4zNGMyLjgxIDguMzggMTEuODggMTIuODkgMjAuMjYgMTAuMDhsMTQyLjA1LTQ3LjYzYzQuMDcgMi43NyA4LjQzIDUuMTIgMTIuOTkgNy4xMlY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMtLjAxLTguODQtNy4xNy0xNi0xNi4wMS0xNnptMTExLjk4LTE0NGMwLTE2LjE4IDEuMzQtOC43My04NS4wNS0xODEuNTEtMTcuNjUtMzUuMjktNjguMTktMzUuMzYtODUuODcgMC04Ny4xMiAxNzQuMjYtODUuMDQgMTY1Ljg0LTg1LjA0IDE4MS41MUgzODRjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyek00NDAgMjg4bDcyLTE0NCA3MiAxNDRINDQwem0tMjY5LjA3LTM3LjUxYy0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwQy0yLjA2IDQyNC43NS4wMiA0MTYuMzMuMDIgNDMySDBjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyYzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MXpNNTYgNDE2bDcyLTE0NCA3MiAxNDRINTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFsYW5jZVNjYWxlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNDY0djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDIyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNTMuMjVjNC41Ni0yIDguOTItNC4zNSAxMi45OS03LjEybDE0Mi4wNSA0Ny42M2M4LjM4IDIuODEgMTcuNDUtMS43MSAyMC4yNi0xMC4wOGwxMC4xNy0zMC4zNGMyLjgxLTguMzgtMS43MS0xNy40NS0xMC4wOC0yMC4yNmwtMTI4LjQtNDMuMDVjLjQyLTMuMzIgMS4wMS02LjYgMS4wMS0xMC4wMyAwLTQ0LjE4LTM1LjgyLTgwLTgwLTgwLTI5LjY5IDAtNTUuMyAxNi4zNi02OS4xMSA0MC4zN0wxMzIuOTYuODNjLTguMzgtMi44MS0xNy40NSAxLjcxLTIwLjI2IDEwLjA4bC0xMC4xNyAzMC4zNGMtMi44MSA4LjM4IDEuNzEgMTcuNDUgMTAuMDggMjAuMjZsMTMyIDQ0LjI2YzcuMjggMjEuMjUgMjIuOTYgMzguNTQgNDMuMzggNDcuNDdWNDQ4SDExMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ6TTAgMzA0YzAgNDQuMTggNTcuMzEgODAgMTI4IDgwczEyOC0zNS44MiAxMjgtODBoLS4wMmMwLTE1LjY3IDIuMDgtNy4yNS04NS4wNS0xODEuNTEtMTcuNjgtMzUuMzYtNjguMjItMzUuMjktODUuODcgMEMtMS4zMiAyOTUuMjcuMDIgMjg3LjgyLjAyIDMwNEgwem01Ni0xNmw3Mi0xNDQgNzIgMTQ0SDU2em0zMjguMDIgMTQ0SDM4NGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJjMC0xNS42NyAyLjA4LTcuMjUtODUuMDUtMTgxLjUxLTE3LjY4LTM1LjM2LTY4LjIyLTM1LjI5LTg1Ljg3IDAtODYuMzggMTcyLjc4LTg1LjA0IDE2NS4zMy04NS4wNCAxODEuNTF6TTQ0MCA0MTZsNzItMTQ0IDcyIDE0NEg0NDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFsYW5jZVNjYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMzZoLS4wMmMwLTE2LjE4IDEuMzQtOC43My04NS4wNS0xODEuNTEtMTcuNjUtMzUuMjktNjguMTktMzUuMzYtODUuODcgMEMtMi4wNiAzMjguNzUuMDIgMzIwLjMzLjAyIDMzNkgwYzAgNDQuMTggNTcuMzEgODAgMTI4IDgwczEyOC0zNS44MiAxMjgtODB6TTEyOCAxNzZsNzIgMTQ0SDU2bDcyLTE0NHptNTExLjk4IDE2MGMwLTE2LjE4IDEuMzQtOC43My04NS4wNS0xODEuNTEtMTcuNjUtMzUuMjktNjguMTktMzUuMzYtODUuODcgMC04Ny4xMiAxNzQuMjYtODUuMDQgMTY1Ljg0LTg1LjA0IDE4MS41MUgzODRjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyek00NDAgMzIwbDcyLTE0NCA3MiAxNDRINDQwem04OCAxMjhIMzUyVjE1My4yNWMyMy41MS0xMC4yOSA0MS4xNi0zMS40OCA0Ni4zOS01Ny4yNUg1MjhjOC44NCAwIDE2LTcuMTYgMTYtMTZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzgzLjY0QzM2OS4wNCAxMi42OCAzNDYuMDkgMCAzMjAgMHMtNDkuMDQgMTIuNjgtNjMuNjQgMzJIMTEyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxMjkuNjFjNS4yMyAyNS43NiAyMi44NyA0Ni45NiA0Ni4zOSA1Ny4yNVY0NDhIMTEyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDM0IDggOCAxMTkuMDMzIDggMjU2czExMS4wMzQgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzQgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTEzMC4xMDggMTE3Ljg5MmM2NS40NDggNjUuNDQ4IDcwIDE2NS40ODEgMjAuNjc3IDIzNS42MzdMMTUwLjQ3IDEwNS4yMTZjNzAuMjA0LTQ5LjM1NiAxNzAuMjI2LTQ0LjczNSAyMzUuNjM4IDIwLjY3NnpNMTI1Ljg5MiAzODYuMTA4Yy02NS40NDgtNjUuNDQ4LTcwLTE2NS40ODEtMjAuNjc3LTIzNS42MzdMMzYxLjUzIDQwNi43ODRjLTcwLjIwMyA0OS4zNTYtMTcwLjIyNiA0NC43MzYtMjM1LjYzOC0yMC42NzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuZEFpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE2MHYxOTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZWOTZINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0em01NzYtNjRoLTk2djMyMGg5NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTE5MiA0MTZoMjU2Vjk2SDE5MnYzMjB6bTE3Ni0yMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0wIDk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptLTk2LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMCA5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFyY29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ0OFY2NGgxOHYzODRIMHptMjYuODU3LS4yNzNWNjRIMzZ2MzgzLjcyN2gtOS4xNDN6bTI3LjE0MyAwVjY0aDguODU3djM4My43MjdINTR6bTQ0Ljg1NyAwVjY0aDguODU3djM4My43MjdoLTguODU3em0zNiAwVjY0aDE3LjcxNHYzODMuNzI3aC0xNy43MTR6bTQ0Ljg1NyAwVjY0aDguODU3djM4My43MjdoLTguODU3em0xOCAwVjY0aDguODU3djM4My43MjdoLTguODU3em0xOCAwVjY0aDguODU3djM4My43MjdoLTguODU3em0zNS43MTUgMFY2NGgxOHYzODMuNzI3aC0xOHptNDQuODU3IDBWNjRoMTh2MzgzLjcyN2gtMTh6bTM1Ljk5OSAwVjY0aDE4LjAwMXYzODMuNzI3aC0xOC4wMDF6bTM2LjAwMSAwVjY0aDE4LjAwMXYzODMuNzI3aC0xOC4wMDF6bTI2Ljg1NyAwVjY0aDE4djM4My43MjdoLTE4em00NS4xNDMgMFY2NGgyNi44NTd2MzgzLjcyN2gtMjYuODU3em0zNS43MTQgMFY2NGg5LjE0M3YzODMuNzI3SDQ3NnptMTggLjI3M1Y2NGgxOHYzODRoLTE4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTMyaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2Vjc2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZIMTZDNy4xNjMgNjAgMCA2Ny4xNjMgMCA3NnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhc2ViYWxsQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjguNSAzNjMuOWwyOC44LTEzLjljMTEuMSAyMi45IDI2IDQzLjIgNDQuMSA2MC45IDM0LTQyLjUgNTQuNS05Ni4zIDU0LjUtMTU0LjkgMC01OC41LTIwLjQtMTEyLjItNTQuMi0xNTQuNi0xNy44IDE3LjMtMzIuNiAzNy4xLTQzLjYgNTkuNWwtMjguNy0xNC4xYzEyLjgtMjYgMzAtNDkgNTAuOC02OUMzNzUuNiAzNC43IDMxNSA4IDI0OCA4IDE4MS4xIDggMTIwLjUgMzQuNiA3NS45IDc3LjdjMjAuNyAxOS45IDM3LjkgNDIuOSA1MC43IDY4LjhsLTI4LjcgMTQuMWMtMTEtMjIuMy0yNS43LTQyLjEtNDMuNS01OS40QzIwLjQgMTQzLjcgMCAxOTcuNCAwIDI1NmMwIDU4LjYgMjAuNCAxMTIuMyA1NC40IDE1NC43IDE4LjItMTcuNyAzMy4yLTM4IDQ0LjMtNjFsMjguOCAxMy45Yy0xMi45IDI2LjctMzAuMyA1MC4zLTUxLjUgNzAuNyA0NC41IDQzLjEgMTA1LjEgNjkuNyAxNzIgNjkuNyA2Ni44IDAgMTI3LjMtMjYuNSAxNzEuOS02OS41LTIxLjEtMjAuNC0zOC41LTQzLjktNTEuNC03MC42em0tMjI4LjMtMzJsLTMwLjUtOS44YzE0LjktNDYuNCAxMi43LTkzLjgtLjYtMTM0bDMwLjQtMTBjMTUgNDUuNiAxOCA5OS45LjcgMTUzLjh6bTIxNi4zLTE1My40bDMwLjQgMTBjLTEzLjIgNDAuMS0xNS41IDg3LjUtLjYgMTM0bC0zMC41IDkuOGMtMTcuMy01NC0xNC4zLTEwOC4zLjctMTUzLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFza2V0YmFsbEJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEyLjMgMTAuM2MtNDMuOCA2LjMtODYuMiAyNC4xLTEyMi4yIDUzLjhsNzcuNCA3Ny40YzI3LjgtMzUuOCA0My4zLTgxLjIgNDQuOC0xMzEuMnpNMjQ4IDIyMkw0MDUuOSA2NC4xYy00Mi40LTM1LTkzLjYtNTMuNS0xNDUuNS01Ni4xLTEuMiA2My45LTIxLjUgMTIyLjMtNTguNyAxNjcuN0wyNDggMjIyek01Ni4xIDk4LjFjLTI5LjcgMzYtNDcuNSA3OC40LTUzLjggMTIyLjIgNTAtMS41IDk1LjUtMTcgMTMxLjItNDQuOEw1Ni4xIDk4LjF6bTI3Mi4yIDIwNC4yYzQ1LjMtMzcuMSAxMDMuNy01Ny40IDE2Ny43LTU4LjctMi42LTUxLjktMjEuMS0xMDMuMS01Ni4xLTE0NS41TDI4MiAyNTZsNDYuMyA0Ni4zek0yNDggMjkwTDkwLjEgNDQ3LjljNDIuNCAzNC45IDkzLjYgNTMuNSAxNDUuNSA1Ni4xIDEuMy02NCAyMS42LTEyMi40IDU4LjctMTY3LjdMMjQ4IDI5MHptMTkxLjkgMTIzLjljMjkuNy0zNiA0Ny41LTc4LjQgNTMuOC0xMjIuMi01MC4xIDEuNi05NS41IDE3LjEtMTMxLjIgNDQuOGw3Ny40IDc3LjR6TTE2Ny43IDIwOS43QzEyMi4zIDI0Ni45IDYzLjkgMjY3LjMgMCAyNjguNGMyLjYgNTEuOSAyMS4xIDEwMy4xIDU2LjEgMTQ1LjVMMjE0IDI1NmwtNDYuMy00Ni4zem0xMTYgMjkyYzQzLjgtNi4zIDg2LjItMjQuMSAxMjIuMi01My44bC03Ny40LTc3LjRjLTI3LjcgMzUuNy00My4yIDgxLjItNDQuOCAxMzEuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLDM4NGE5NS40LDk1LjQsMCwwLDAsMzIsNzEuMDlWNDk2YTE2LDE2LDAsMCwwLDE2LDE2aDMyYTE2LDE2LDAsMCwwLDE2LTE2VjQ4MEgzODR2MTZhMTYsMTYsMCwwLDAsMTYsMTZoMzJhMTYsMTYsMCwwLDAsMTYtMTZWNDU1LjA5QTk1LjQsOTUuNCwwLDAsMCw0ODAsMzg0VjMzNkgzMlpNNDk2LDI1Nkg4MFY2OS4yNWEyMS4yNiwyMS4yNiwwLDAsMSwzNi4yOC0xNWwxOS4yNywxOS4yNmMtMTMuMTMsMjkuODgtNy42MSw1OS4xMSw4LjYyLDc5LjczbC0uMTcuMTdBMTYsMTYsMCwwLDAsMTQ0LDE3NmwxMS4zMSwxMS4zMWExNiwxNiwwLDAsMCwyMi42MywwTDI4My4zMSw4MS45NGExNiwxNiwwLDAsMCwwLTIyLjYzTDI3Miw0OGExNiwxNiwwLDAsMC0yMi42MiwwbC0uMTcuMTdjLTIwLjYyLTE2LjIzLTQ5LjgzLTIxLjc1LTc5LjczLTguNjJMMTUwLjIyLDIwLjI4QTY5LjI1LDY5LjI1LDAsMCwwLDMyLDY5LjI1VjI1NkgxNkExNiwxNiwwLDAsMCwwLDI3MnYxNmExNiwxNiwwLDAsMCwxNiwxNkg0OTZhMTYsMTYsMCwwLDAsMTYtMTZWMjcyQTE2LDE2LDAsMCwwLDQ5NiwyNTZaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeUVtcHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeUZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE2MHY2NGgzMnY2NGgtMzJ2NjRINjRWMTYwaDQ4MG0xNi02NEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg1MTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtMTZoOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtOHYtMTZjMC0yNi41MS0yMS40OS00OC00OC00OHptLTQ4IDk2SDk2djEyOGg0MTZWMTkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0yNDAgOTZIOTZ2MTI4aDIyNFYxOTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeVF1YXJ0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE2MHY2NGgzMnY2NGgtMzJ2NjRINjRWMTYwaDQ4MG0xNi02NEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg1MTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtMTZoOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtOHYtMTZjMC0yNi41MS0yMS40OS00OC00OC00OHptLTMzNiA5Nkg5NnYxMjhoMTI4VjE5MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0ZXJ5VGhyZWVRdWFydGVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMTYwdjY0aDMydjY0aC0zMnY2NEg2NFYxNjBoNDgwbTE2LTY0SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDUxMmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di0xNmg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxODRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04di0xNmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tMTQ0IDk2SDk2djEyOGgzMjBWMTkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMjU2YzQ0LjExIDAgODAtMzUuODkgODAtODBzLTM1Ljg5LTgwLTgwLTgwLTgwIDM1Ljg5LTgwIDgwIDM1Ljg5IDgwIDgwIDgwem0zNTItMTI4SDMwNGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0SDY0VjgwYzAtOC44NC03LjE2LTE2LTE2LTE2SDE2QzcuMTYgNjQgMCA3MS4xNiAwIDgwdjM1MmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNDhoNTEydjQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2VjI0MGMwLTYxLjg2LTUwLjE0LTExMi0xMTItMTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDk2aC00OFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2NDAwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di00Mi4xMWw4MC42MDYtMzUuOTc3QzQyOS4zOTYgMzY1LjA2MyA0NDggMzM2LjM4OCA0NDggMzA0Ljg2VjE3NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODB6bTE2IDIwOC44NmExNi4wMTggMTYuMDE4IDAgMCAxLTkuNDc5IDE0LjYxMUwzMjAgMzQzLjgwNVYxNjBoNDhjOC44MjIgMCAxNiA3LjE3OCAxNiAxNnYxMjguODZ6TTIwOCAzODRjLTguODM2IDAtMTYtNy4xNjQtMTYtMTZWMTQ0YzAtOC44MzYgNy4xNjQtMTYgMTYtMTZzMTYgNy4xNjQgMTYgMTZ2MjI0YzAgOC44MzYtNy4xNjQgMTYtMTYgMTZ6bS05NiAwYy04LjgzNiAwLTE2LTcuMTY0LTE2LTE2VjE0NGMwLTguODM2IDcuMTY0LTE2IDE2LTE2czE2IDcuMTY0IDE2IDE2djIyNGMwIDguODM2LTcuMTY0IDE2LTE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlbGxTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuODIgNDU4LjFsLTkwLjYyLTcwLjA1Yy4xOS0xLjM4LjgtMi42Ni44LTQuMDYuMDUtNy41NS0yLjYxLTE1LjI3LTguNjEtMjEuNzEtMTkuMzItMjAuNzYtNTUuNDctNTEuOTktNTUuNDctMTU0LjI5IDAtNzcuNy01NC40OC0xMzkuOS0xMjcuOTQtMTU1LjE2VjMyYzAtMTcuNjctMTQuMzItMzItMzEuOTgtMzJzLTMxLjk4IDE0LjMzLTMxLjk4IDMydjIwLjg0Yy00MC4zMyA4LjM4LTc0LjY2IDMxLjA3LTk3LjU5IDYyLjU3TDQ1LjQ3IDMuMzdDMzguNDktMi4wNSAyOC40My0uOCAyMy4wMSA2LjE4TDMuMzcgMzEuNDVDLTIuMDUgMzguNDItLjggNDguNDcgNi4xOCA1My45bDU4OC4zNSA0NTQuNzNjNi45OCA1LjQzIDE3LjAzIDQuMTcgMjIuNDYtMi44MWwxOS42NC0yNS4yN2M1LjQyLTYuOTcgNC4xNy0xNy4wMi0yLjgxLTIyLjQ1ek0xNTcuMjMgMjUxLjU0Yy04LjYxIDY3Ljk2LTM2LjQxIDkzLjMzLTUyLjYyIDExMC43NS02IDYuNDUtOC42NiAxNC4xNi04LjYxIDIxLjcxLjExIDE2LjQgMTIuOTggMzIgMzIuMSAzMmgyNDEuOTJMMTU3LjIzIDI1MS41NHpNMzIwIDUxMmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDI1Ni4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDUxMmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDE2MC4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0em0yMTUuMzktMTQ5LjcxYy0xOS4zMi0yMC43Ni01NS40Ny01MS45OS01NS40Ny0xNTQuMjkgMC03Ny43LTU0LjQ4LTEzOS45LTEyNy45NC0xNTUuMTZWMzJjMC0xNy42Ny0xNC4zMi0zMi0zMS45OC0zMnMtMzEuOTggMTQuMzMtMzEuOTggMzJ2MjAuODRDMTE4LjU2IDY4LjEgNjQuMDggMTMwLjMgNjQuMDggMjA4YzAgMTAyLjMtMzYuMTUgMTMzLjUzLTU1LjQ3IDE1NC4yOS02IDYuNDUtOC42NiAxNC4xNi04LjYxIDIxLjcxLjExIDE2LjQgMTIuOTggMzIgMzIuMSAzMmgzODMuOGMxOS4xMiAwIDMyLTE1LjYgMzIuMS0zMiAuMDUtNy41NS0yLjYxLTE1LjI3LTguNjEtMjEuNzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmV6aWVyQ3VydmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDMyaC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMjA4IDg4aC04NC43NUMxMTMuNzUgNjQuNTYgOTAuODQgNDggNjQgNDggMjguNjYgNDggMCA3Ni42NSAwIDExMnMyOC42NiA2NCA2NCA2NGMyNi44NCAwIDQ5Ljc1LTE2LjU2IDU5LjI1LTQwaDc5LjczYy01NS4zNyAzMi41Mi05NS44NiA4Ny4zMi0xMDkuNTQgMTUyaDQ5LjRjMTEuMy00MS42MSAzNi43Ny03Ny4yMSA3MS4wNC0xMDEuNTYtMy43LTguMDgtNS44OC0xNi45OS01Ljg4LTI2LjQ0Vjg4em0tNDggMjMySDY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNNTc2IDQ4Yy0yNi44NCAwLTQ5Ljc1IDE2LjU2LTU5LjI1IDQwSDQzMnY3MmMwIDkuNDUtMi4xOSAxOC4zNi01Ljg4IDI2LjQ0IDM0LjI3IDI0LjM1IDU5Ljc0IDU5Ljk1IDcxLjA0IDEwMS41Nmg0OS40Yy0xMy42OC02NC42OC01NC4xNy0xMTkuNDgtMTA5LjU0LTE1Mmg3OS43M2M5LjUgMjMuNDQgMzIuNDEgNDAgNTkuMjUgNDAgMzUuMzQgMCA2NC0yOC42NSA2NC02NHMtMjguNjYtNjQtNjQtNjR6bTAgMjcyaC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDM1OC40VjI1LjZjMC0xNi05LjYtMjUuNi0yNS42LTI1LjZIOTZDNDEuNiAwIDAgNDEuNiAwIDk2djMyMGMwIDU0LjQgNDEuNiA5NiA5NiA5NmgzMjYuNGMxMi44IDAgMjUuNi05LjYgMjUuNi0yNS42di0xNmMwLTYuNC0zLjItMTIuOC05LjYtMTkuMi0zLjItMTYtMy4yLTYwLjggMC03My42IDYuNC0zLjIgOS42LTkuNiA5LjYtMTkuMnpNMTQ0IDE0NGMwLTguODQgNy4xNi0xNiAxNi0xNmg0OFY4MGMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY0OGg0OGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNmgtNDh2MTEyYzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZWMTkyaC00OGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyem0yMzYuOCAzMDRIOTZjLTE5LjIgMC0zMi0xMi44LTMyLTMyczE2LTMyIDMyLTMyaDI4NC44djY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpY3ljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyLjUwOSAxOTIuMDAxYy0xNi4zNzMtLjA2NC0zMi4wMyAyLjk1NS00Ni40MzYgOC40OTVsLTc3LjY4LTEyNS4xNTNBMjQgMjQgMCAwIDAgMzY4LjAwMSA2NGgtNjRjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2MTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg1MC42NDlsMTQuODk2IDI0SDI1Ni4wMDJ2LTE2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTg3LjQ1OWMtMTMuNDQxIDAtMjQuNzc3IDEwLjk5OS0yNC41MzYgMjQuNDM3LjIzMiAxMy4wNDQgMTAuODc2IDIzLjU2MyAyMy45OTUgMjMuNTYzaDQ4LjcyNmwtMjkuNDE3IDQ3LjUyYy0xMy40MzMtNC44My0yNy45MDQtNy40ODMtNDIuOTkyLTcuNTJDNTguMDk0IDE5MS44My40MTIgMjQ5LjAxMi4wMDIgMzE5LjIzNi0uNDEzIDM5MC4yNzkgNTcuMDU1IDQ0OCAxMjguMDAyIDQ0OGM1OS42NDIgMCAxMDkuNzU4LTQwLjc5MyAxMjMuOTY3LTk2aDUyLjAzM2EyNCAyNCAwIDAgMCAyMC40MDYtMTEuMzY3TDQxMC4zNyAyMDEuNzdsMTQuOTM4IDI0LjA2N2MtMjUuNDU1IDIzLjQ0OC00MS4zODUgNTcuMDgxLTQxLjMwNyA5NC40MzcuMTQ1IDY4LjgzMyA1Ny44OTkgMTI3LjA1MSAxMjYuNzI5IDEyNy43MTkgNzAuNjA2LjY4NSAxMjguMTgxLTU1LjgwMyAxMjkuMjU1LTEyNS45OTYgMS4wODYtNzAuOTQxLTU2LjUyNi0xMjkuNzItMTI3LjQ3Ni0xMjkuOTk2ek0xODYuNzUgMjY1Ljc3MmM5LjcyNyAxMC41MjkgMTYuNjczIDIzLjY2MSAxOS42NDIgMzguMjI4aC00My4zMDZsMjMuNjY0LTM4LjIyOHpNMTI4LjAwMiA0MDBjLTQ0LjExMiAwLTgwLTM1Ljg4OC04MC04MHMzNS44ODgtODAgODAtODBjNS44NjkgMCAxMS41ODYuNjUzIDE3LjA5OSAxLjg1OWwtNDUuNTA1IDczLjUwOUM4OS43MTUgMzMxLjMyNyAxMDEuMjEzIDM1MiAxMjAuMDAyIDM1Mmg4MS4zYy0xMi4zNyAyOC4yMjUtNDAuNTYyIDQ4LTczLjMgNDh6bTE2Mi42My05NmgtMzUuNjI0Yy0zLjk2LTMxLjc1Ni0xOS41NTYtNTkuODk0LTQyLjM4My04MC4wMjZMMjM3LjM3MSAxODRoMTI3LjU0N2wtNzQuMjg2IDEyMHptMjE3LjA1NyA5NS44ODZjLTQxLjAzNi0yLjE2NS03NC4wNDktMzUuNjkyLTc1LjYyNy03Ni43NTUtLjgxMi0yMS4xMjEgNi42MzMtNDAuNTE4IDE5LjMzNS01NS4yNjNsNDQuNDMzIDcxLjU4NmM0LjY2IDcuNTA4IDE0LjUyNCA5LjgxNiAyMi4wMzIgNS4xNTZsMTMuNTk0LTguNDM3YzcuNTA4LTQuNjYgOS44MTctMTQuNTI0IDUuMTU2LTIyLjAzMmwtNDQuNDY4LTcxLjY0M2E3OS45MDEgNzkuOTAxIDAgMCAxIDE5Ljg1OC0yLjQ5N2M0NC4xMTIgMCA4MCAzNS44ODggODAgODAtLjAwMSA0NS41NC0zOC4yNTIgODIuMzE2LTg0LjMxMyA3OS44ODV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA5NmE0OCA0OCAwIDEgMC00OC00OCA0OCA0OCAwIDAgMCA0OCA0OHptLTQgMTIxYTMxLjkgMzEuOSAwIDAgMCAyMCA3aDY0YTMyIDMyIDAgMCAwIDAtNjRoLTUyLjc4TDM1NiAxMDNhMzEuOTQgMzEuOTQgMCAwIDAtNDAuODEuNjhsLTExMiA5NmEzMiAzMiAwIDAgMCAzLjA4IDUwLjkyTDI4OCAzMDUuMTJWNDE2YTMyIDMyIDAgMCAwIDY0IDBWMjg4YTMyIDMyIDAgMCAwLTE0LjI1LTI2LjYybC00MS4zNi0yNy41NyA1OC4yNS00OS45MnptMTE2IDM5YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjggMTI4IDAgMCAwLTEyOC0xMjh6bTAgMTkyYTY0IDY0IDAgMSAxIDY0LTY0IDY0IDY0IDAgMCAxLTY0IDY0ek0xMjggMjU2YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjggMTI4IDAgMCAwLTEyOC0xMjh6bTAgMTkyYTY0IDY0IDAgMSAxIDY0LTY0IDY0IDY0IDAgMCAxLTY0IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpbm9jdWxhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC02NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhoOTZWNDh6TTYzLjkxIDE1OS45OUM2MS40IDI1My44NCAzLjQ2IDI3NC4yMiAwIDQwNHY0NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjg4aDMyVjEyOEg5NS44NGMtMTcuNjMgMC0zMS40NSAxNC4zNy0zMS45MyAzMS45OXptMzg0LjE4IDBjLS40OC0xNy42Mi0xNC4zLTMxLjk5LTMxLjkzLTMxLjk5SDMyMHYxNjBoMzJ2MTYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNDRjLTMuNDYtMTI5Ljc4LTYxLjQtMTUwLjE2LTYzLjkxLTI0NC4wMXpNMTc2IDMyaC02NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhoOTZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTQ4IDI1Nmg2NFYxMjhoLTY0djE2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW9oYXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg3LjkgMTEyYzE4LjYgMCAzNi4yIDMuOCA1Mi44IDkuNiAxMy4zLTEwLjMgMjMuNi0yNC4zIDI5LjUtNDAuNy0yNS4yLTEwLjktNTMtMTctODIuMi0xNy0yOS4xIDAtNTYuOSA2LTgyLjEgMTYuOSA1LjkgMTYuNCAxNi4yIDMwLjQgMjkuNSA0MC43IDE2LjUtNS43IDM0LTkuNSA1Mi41LTkuNXpNMTYzLjYgNDM4LjdjMTItMTEuOCAyMC40LTI2LjQgMjQuNS00Mi40LTMyLjktMjYuNC01NC44LTY1LjMtNTguOS0xMDkuNi04LjUtMi44LTE3LjItNC42LTI2LjQtNC42LTcuNiAwLTE1LjIgMS0yMi41IDMuMSA0LjEgNjIuOCAzNS44IDExOCA4My4zIDE1My41em0yMjQuMi00Mi42YzQuMSAxNiAxMi41IDMwLjcgMjQuNSA0Mi41IDQ3LjQtMzUuNSA3OS4xLTkwLjcgODMtMTUzLjUtNy4yLTItMTQuNy0zLTIyLjItMy05LjIgMC0xOCAxLjktMjYuNiA0LjctNC4xIDQ0LjItMjYgODIuOS01OC43IDEwOS4zem0xMTMuNS0yMDVjLTE3LjYtMTAuNC0zNi4zLTE2LjYtNTUuMy0xOS45IDYtMTcuNyAxMC0zNi40IDEwLTU2LjIgMC00MS0xNC41LTgwLjgtNDEtMTEyLjItMi41LTMtNi42LTMuNy0xMC0xLjgtMy4zIDEuOS00LjggNi0zLjYgOS43IDQuNSAxMy44IDYuNiAyNi4zIDYuNiAzOC41IDAgNjcuOC01My44IDEyMi45LTEyMCAxMjIuOVMxNjggMTE3IDE2OCA0OS4yYzAtMTIuMSAyLjItMjQuNyA2LjYtMzguNSAxLjItMy43LS4zLTcuOC0zLjYtOS43LTMuNC0xLjktNy41LTEuMi0xMCAxLjhDMTM0LjYgMzQuMiAxMjAgNzQgMTIwIDExNWMwIDE5LjggMy45IDM4LjUgMTAgNTYuMi0xOC45IDMuMy0zNy43IDkuNS01NS4zIDE5LjktMzQuNiAyMC41LTYxIDUzLjMtNzQuMyA5Mi40LTEuMyAzLjcuMiA3LjcgMy41IDkuOCAzLjMgMiA3LjUgMS4zIDEwLTEuNiA5LjQtMTAuOCAxOS0xOS4xIDI5LjItMjUuMSA1Ny4zLTMzLjkgMTMwLjgtMTMuNyAxNjMuOSA0NSAzMy4xIDU4LjcgMTMuNCAxMzQtNDMuOSAxNjcuOS0xMC4yIDYuMS0yMiAxMC40LTM1LjggMTMuNC0zLjcuOC02LjQgNC4yLTYuNCA4LjEuMSA0IDIuNyA3LjMgNi41IDggMzkuNyA3LjggODAuNi44IDExNS4yLTE5LjcgMTgtMTAuNiAzMi45LTI0LjUgNDUuMy00MC4xIDEyLjQgMTUuNiAyNy4zIDI5LjUgNDUuMyA0MC4xIDM0LjYgMjAuNSA3NS41IDI3LjUgMTE1LjIgMTkuNyAzLjgtLjcgNi40LTQgNi41LTggMC0zLjktMi42LTcuMy02LjQtOC4xLTEzLjktMi45LTI1LjYtNy4zLTM1LjgtMTMuNC01Ny4zLTMzLjktNzctMTA5LjItNDMuOS0xNjcuOXMxMDYuNi03OC45IDE2My45LTQ1YzEwLjIgNi4xIDE5LjggMTQuMyAyOS4yIDI1LjEgMi41IDIuOSA2LjcgMy42IDEwIDEuNnM0LjgtNi4xIDMuNS05LjhjLTEzLjEtMzkuMS0zOS41LTcyLTc0LjEtOTIuNHptLTIxMy40IDEyOWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlydGhkYXlDYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzODRjLTI4LjAyIDAtMzEuMjYtMzItNzQuNS0zMi00My40MyAwLTQ2LjgyNSAzMi03NC43NSAzMi0yNy42OTUgMC0zMS40NTQtMzItNzQuNzUtMzItNDIuODQyIDAtNDcuMjE4IDMyLTc0LjUgMzItMjguMTQ4IDAtMzEuMjAyLTMyLTc0Ljc1LTMyLTQzLjU0NyAwLTQ2LjY1MyAzMi03NC43NSAzMnYtODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMTZWMTEyaDY0djE0NGg2NFYxMTJoNjR2MTQ0aDY0VjExMmg2NHYxNDRoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2ODB6bTAgMTI4SDB2LTk2YzQzLjM1NiAwIDQ2Ljc2Ny0zMiA3NC43NS0zMiAyNy45NTEgMCAzMS4yNTMgMzIgNzQuNzUgMzIgNDIuODQzIDAgNDcuMjE3LTMyIDc0LjUtMzIgMjguMTQ4IDAgMzEuMjAxIDMyIDc0Ljc1IDMyIDQzLjM1NyAwIDQ2Ljc2Ny0zMiA3NC43NS0zMiAyNy40ODggMCAzMS4yNTIgMzIgNzQuNSAzMnY5NnpNOTYgOTZjLTE3Ljc1IDAtMzItMTQuMjUtMzItMzIgMC0zMSAzMi0yMyAzMi02NCAxMiAwIDMyIDI5LjUgMzIgNTZzLTE0LjI1IDQwLTMyIDQwem0xMjggMGMtMTcuNzUgMC0zMi0xNC4yNS0zMi0zMiAwLTMxIDMyLTIzIDMyLTY0IDEyIDAgMzIgMjkuNSAzMiA1NnMtMTQuMjUgNDAtMzIgNDB6bTEyOCAwYy0xNy43NSAwLTMyLTE0LjI1LTMyLTMyIDAtMzEgMzItMjMgMzItNjQgMTIgMCAzMiAyOS41IDMyIDU2cy0xNC4yNSA0MC0zMiA0MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbGVuZGVyUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyIDY0aDE2Ni41NEw1NzYgMEgxOTJ2MzUyaDI4OGwxNy40Ni02NEgzOTJjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxMTQuMThsMTcuNDYtNjRIMzkyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTQwLjM2bDE3LjQ2LTY0SDM5MmMtNC40MiAwLTgtMy41OC04LThWNzJjMC00LjQyIDMuNTgtOCA4LTh6TTE1OC44IDMzNS4wMWwtMjUuNzgtNjMuMjZjLTIuNzgtNi44MS05LjgtMTAuOTktMTcuMjQtMTAuMjZsLTQ1LjAzIDQuNDJjLTE3LjI4LTQ2Ljk0LTE3LjY1LTk5Ljc4IDAtMTQ3LjcybDQ1LjAzIDQuNDJjNy40My43MyAxNC40Ni0zLjQ2IDE3LjI0LTEwLjI2bDI1Ljc4LTYzLjI2YzMuMDItNy4zOS4yLTE1Ljg1LTYuNjgtMjAuMDdsLTM5LjI4LTI0LjFDOTguNTEtMy44NyA4MC4wOS0uNSA2OC45NSAxMS45N2MtOTIuNTcgMTAzLjYtOTIgMjU5LjU1IDIuMSAzNjIuNDkgOS44NyAxMC44IDI5LjEyIDEyLjQ4IDQxLjY1IDQuOGwzOS40MS0yNC4xOGM2Ljg5LTQuMjIgOS43LTEyLjY3IDYuNjktMjAuMDd6TTQ4MCAzODRIMTkyYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzUyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS0xNDQgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxlbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzg0SDE2MGMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0em0tMTI4IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem00MC00MTZoMTY2LjU0TDUxMiAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djE2MGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDEwMy4yN2w4LjczIDk2aDI1NmwxNy40Ni02NEgzMjhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxMTQuMThsMTcuNDYtNjRIMzI4Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTQwLjM2bDE3LjQ2LTY0SDMyOGMtNC40MiAwLTgtMy41OC04LThWNzJjMC00LjQyIDMuNTgtOCA4LTh6TTY0IDE5MlY2NGg2OS44MmwxMS42NCAxMjhINjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgwLjE1IDUxMC44MzdhOCA4IDAgMCAxLTEwLjk4OS0yLjY4N2wtMTI1LjMzLTIwNi40MjdhMzEuOTIzIDMxLjkyMyAwIDAgMCAxMi45NTgtOS40ODVsMTI2LjA0OCAyMDcuNjA4YTggOCAwIDAgMS0yLjY4NyAxMC45OTF6TTE0Mi44MDMgMzE0LjMzOGwtMzIuNTQgODkuNDg1IDM2LjEyIDg4LjI4NWM2LjY5MyAxNi4zNiAyNS4zNzcgMjQuMTkyIDQxLjczMyAxNy41MDEgMTYuMzU3LTYuNjkyIDI0LjE5My0yNS4zNzYgMTcuNTAxLTQxLjczNGwtNjIuODE0LTE1My41Mzd6TTk2IDg4YzI0LjMwMSAwIDQ0LTE5LjY5OSA0NC00NFMxMjAuMzAxIDAgOTYgMCA1MiAxOS42OTkgNTIgNDRzMTkuNjk5IDQ0IDQ0IDQ0em0xNTQuODM3IDE2OS4xMjhsLTEyMC0xNTJjLTQuNzMzLTUuOTk1LTExLjc1LTkuMTA4LTE4LjgzNy05LjExMlY5Nkg4MHYuMDI2Yy03LjE0Ni4wMDMtMTQuMjE3IDMuMTYxLTE4Ljk0NCA5LjI0TDAgMTgzLjc2NnY5NS42OTRjMCAxMy40NTUgMTEuMDExIDI0Ljc5MSAyNC40NjQgMjQuNTM2QzM3LjUwNSAzMDMuNzQ4IDQ4IDI5My4xIDQ4IDI4MHYtNzkuNzY2bDE2LTIwLjU3MXYxNDAuNjk4TDkuOTI3IDQ2OS4wNTVjLTYuMDQgMTYuNjA5IDIuNTI4IDM0Ljk2OSAxOS4xMzggNDEuMDA5IDE2LjYwMiA2LjAzOSAzNC45NjgtMi41MjQgNDEuMDA5LTE5LjEzOEwxMzYgMzA5LjYzOFYyMDIuNDQxbC0zMS40MDYtMzkuODE2YTQgNCAwIDEgMSA2LjI2OS00Ljk3MWwxMDIuMyAxMjkuMjE3YzkuMTQ1IDExLjU4NCAyNC4zNjggMTEuMzM5IDMzLjcwOCAzLjk2NSAxMC40MS04LjIxNiAxMi4xNTktMjMuMzM0IDMuOTY2LTMzLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Mi4yIDIyNi44Yy0xNC42LTIuOS0yOC4yIDguOS0yOC4yIDIzLjhWMzAxYzAgMTAuMiA3LjEgMTguNCAxNi43IDIyIDE4LjIgNi44IDMxLjMgMjQuNCAzMS4zIDQ1IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MjQ4YzAgODkuNSA4Mi4xIDE2MC4yIDE3NSAxNDAuNyA1NC40LTExLjQgOTguMy01NS40IDEwOS43LTEwOS43IDE3LjQtODIuOS0zNy0xNTcuMi0xMTIuNS0xNzIuMnpNMjA5IDBjLTkuMi0uNS0xNyA2LjgtMTcgMTZ2MzEuNmMwIDguNSA2LjYgMTUuNSAxNSAxNS45IDEyOS40IDcgMjMzLjQgMTEyIDI0MC45IDI0MS41LjUgOC40IDcuNSAxNSAxNS45IDE1aDMyLjFjOS4yIDAgMTYuNS03LjggMTYtMTdDNTAzLjQgMTM5LjggMzcyLjIgOC42IDIwOSAwem0uMyA5NmMtOS4zLS43LTE3LjMgNi43LTE3LjMgMTYuMXYzMi4xYzAgOC40IDYuNSAxNS4zIDE0LjggMTUuOSA3Ni44IDYuMyAxMzggNjguMiAxNDQuOSAxNDUuMi44IDguMyA3LjYgMTQuNyAxNS45IDE0LjdoMzIuMmM5LjMgMCAxNi44LTggMTYuMS0xNy4zLTguNC0xMTAuMS05Ni41LTE5OC4yLTIwNi42LTIwNi43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMzLjQ5IDIzOGExMjIgMTIyIDAgMCAwIDI3LTY1LjIxQzM2Ny44NyA5Ni40OSAzMDggMzIgMjMzLjQyIDMySDM0YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDMxLjg3djI4OEgzNGExNiAxNiAwIDAgMC0xNiAxNnY0OGExNiAxNiAwIDAgMCAxNiAxNmgyMDkuMzJjNzAuOCAwIDEzNC4xNC01MS43NSAxNDEtMTIyLjQgNC43NC00OC40NS0xNi4zOS05Mi4wNi01MC44My0xMTkuNnpNMTQ1LjY2IDExMmg4Ny43NmE0OCA0OCAwIDAgMSAwIDk2aC04Ny43NnptODcuNzYgMjg4aC04Ny43NlYyODhoODcuNzZhNTYgNTYgMCAwIDEgMCAxMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMTYwSDE4MC42bDQyLjYtMTI5LjhDMjI3LjIgMTUgMjE1LjcgMCAyMDAgMEg1NkM0NCAwIDMzLjggOC45IDMyLjIgMjAuOGwtMzIgMjQwQy0xLjcgMjc1LjIgOS41IDI4OCAyNCAyODhoMTE4LjdMOTYuNiA0ODIuNWMtMy42IDE1LjIgOCAyOS41IDIzLjMgMjkuNSA4LjQgMCAxNi40LTQuNCAyMC44LTEybDE3Ni0zMDRjOS4zLTE1LjktMi4yLTM2LTIwLjctMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9tYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDAuNSA4OC41bC01MiA1Mkw0MTUgMTY3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0xNy40IDE3LjRjMTEuOCAyNi4xIDE4LjQgNTUuMSAxOC40IDg1LjYgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzAgNDE4LjkgMCAzMDQgOTMuMSA5NiAyMDggOTZjMzAuNSAwIDU5LjUgNi42IDg1LjYgMTguNEwzMTEgOTdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjYuNSAyNi41IDUyLTUyIDE3LjEgMTd6TTUwMCA2MGgtMjRjLTYuNiAwLTEyIDUuNC0xMiAxMnM1LjQgMTIgMTIgMTJoMjRjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJ6TTQ0MCAwYy02LjYgMC0xMiA1LjQtMTIgMTJ2MjRjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMlYxMmMwLTYuNi01LjQtMTItMTItMTJ6bTMzLjkgNTVsMTctMTdjNC43LTQuNyA0LjctMTIuMyAwLTE3LTQuNy00LjctMTIuMy00LjctMTcgMGwtMTcgMTdjLTQuNyA0LjctNC43IDEyLjMgMCAxNyA0LjggNC43IDEyLjQgNC43IDE3IDB6bS02Ny44IDBjNC43IDQuNyAxMi4zIDQuNyAxNyAwIDQuNy00LjcgNC43LTEyLjMgMC0xN2wtMTctMTdjLTQuNy00LjctMTIuMy00LjctMTcgMC00LjcgNC43LTQuNyAxMi4zIDAgMTdsMTcgMTd6bTY3LjggMzRjLTQuNy00LjctMTIuMy00LjctMTcgMC00LjcgNC43LTQuNyAxMi4zIDAgMTdsMTcgMTdjNC43IDQuNyAxMi4zIDQuNyAxNyAwIDQuNy00LjcgNC43LTEyLjMgMC0xN2wtMTctMTd6TTExMiAyNzJjMC0zNS4zIDI4LjctNjQgNjQtNjQgOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZjLTUyLjkgMC05NiA0My4xLTk2IDk2IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTguODggMjQ0LjU2YzI1LjItMTIuNiA0MS4xMi0zOC4zNiA0MS4xMi02Ni41M3YtNy42NEM2NDAgMTI5LjMgNjA2LjcgOTYgNTY1LjYxIDk2Yy0zMi4wMiAwLTYwLjQ0IDIwLjQ5LTcwLjU3IDUwLjg2LTcuNjggMjMuMDMtMTEuNiA0NS4xNC0zOC4xMSA0NS4xNEgxODMuMDZjLTI3LjM4IDAtMzEuNTgtMjUuNTQtMzguMTEtNDUuMTRDMTM0LjgzIDExNi40OSAxMDYuNCA5NiA3NC4zOSA5NiAzMy4zIDk2IDAgMTI5LjMgMCAxNzAuMzl2Ny42NGMwIDI4LjE3IDE1LjkyIDUzLjkzIDQxLjEyIDY2LjUzIDkuNDMgNC43MSA5LjQzIDE4LjE3IDAgMjIuODhDMTUuOTIgMjgwLjA0IDAgMzA1LjggMCAzMzMuOTd2Ny42NEMwIDM4Mi43IDMzLjMgNDE2IDc0LjM4IDQxNmMzMi4wMiAwIDYwLjQ0LTIwLjQ5IDcwLjU3LTUwLjg2IDcuNjgtMjMuMDMgMTEuNi00NS4xNCAzOC4xMS00NS4xNGgyNzMuODdjMjcuMzggMCAzMS41OCAyNS41NCAzOC4xMSA0NS4xNEM1MDUuMTcgMzk1LjUxIDUzMy42IDQxNiA1NjUuNjEgNDE2YzQxLjA4IDAgNzQuMzgtMzMuMyA3NC4zOC03NC4zOXYtNy42NGMwLTI4LjE4LTE1LjkyLTUzLjkzLTQxLjEyLTY2LjUzLTkuNDItNC43MS05LjQyLTE4LjE3LjAxLTIyLjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAyLjUgNTEyYzIzLjE4IDAgNDQuNDMtMTIuNTggNTYtMzIuNjZDMzc0LjY5IDQ1MS4yNiAzODQgNDE4Ljc1IDM4NCAzODRjMC0zNi4xMi0xMC4wOC02OS44MS0yNy40NC05OC42Mkw0MDAgMjQxLjk0bDkuMzggOS4zOGM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDExLjMtMTEuMzJjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtNTIuNjktNTIuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTExLjMxIDExLjMxYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDkuMzggOS4zOC0zOS40MSAzOS40MWMtMTEuNTYtMTEuMzctMjQuNTMtMjEuMzMtMzguNjUtMjkuNTFWNjMuNzRsMTUuOTctLjAyYzguODItLjAxIDE1Ljk3LTcuMTYgMTUuOTgtMTUuOThsLjA0LTMxLjcyQzMyMCA3LjE3IDMxMi44Mi0uMDEgMzAzLjk3IDBMODAuMDMuMjZjLTguODIuMDEtMTUuOTcgNy4xNi0xNS45OCAxNS45OGwtLjA0IDMxLjczYy0uMDEgOC44NSA3LjE3IDE2LjAyIDE2LjAyIDE2LjAxTDk2IDYzLjk2djE1My45M0MzOC42NyAyNTEuMSAwIDMxMi45NyAwIDM4NGMwIDM0Ljc1IDkuMzEgNjcuMjcgMjUuNSA5NS4zNEMzNy4wOCA0OTkuNDIgNTguMzMgNTEyIDgxLjUgNTEyaDIyMXpNMTIwLjA2IDI1OS40M0wxNDQgMjQ1LjU2VjYzLjkxbDk2LS4xMXYxODEuNzZsMjMuOTQgMTMuODdjMjQuODEgMTQuMzcgNDQuMTIgMzUuNzMgNTYuNTYgNjAuNTdoLTI1N2MxMi40NS0yNC44NCAzMS43NS00Ni4yIDU2LjU2LTYwLjU3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tEZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAxMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnptMTc2IDIyMi40VjI1LjZjMC0xNi05LjYtMjUuNi0yNS42LTI1LjZIOTZDNDEuNiAwIDAgNDEuNiAwIDk2djMyMGMwIDU0LjQgNDEuNiA5NiA5NiA5NmgzMjYuNGMxMi44IDAgMjUuNi05LjYgMjUuNi0yNS42di0xNmMwLTYuNC0zLjItMTIuOC05LjYtMTkuMi0zLjItMTYtMy4yLTYwLjggMC03My42IDYuNC0zLjIgOS42LTkuNiA5LjYtMTkuMnpNMjQwIDU2YzQ0LjIgMCA4MCAyOC43IDgwIDY0IDAgMjAuOS0xMi43IDM5LjItMzIgNTAuOVYxODRjMCA4LjgtNy4yIDE2LTE2IDE2aC02NGMtOC44IDAtMTYtNy4yLTE2LTE2di0xMy4xYy0xOS4zLTExLjctMzItMzAtMzItNTAuOSAwLTM1LjMgMzUuOC02NCA4MC02NHpNMTI0LjggMjIzLjNsNi4zLTE0LjdjMS43LTQuMSA2LjQtNS45IDEwLjUtNC4ybDk4LjMgNDIuMSA5OC40LTQyLjFjNC4xLTEuNyA4LjguMSAxMC41IDQuMmw2LjMgMTQuN2MxLjcgNC4xLS4xIDguOC00LjIgMTAuNUwyODAuNiAyNjRsNzAuMyAzMC4xYzQuMSAxLjcgNS45IDYuNCA0LjIgMTAuNWwtNi4zIDE0LjdjLTEuNyA0LjEtNi40IDUuOS0xMC41IDQuMkwyNDAgMjgxLjRsLTk4LjMgNDIuMmMtNC4xIDEuNy04LjgtLjEtMTAuNS00LjJsLTYuMy0xNC43Yy0xLjctNC4xLjEtOC44IDQuMi0xMC41bDcwLjQtMzAuMS03MC41LTMwLjNjLTQuMS0xLjctNS45LTYuNC00LjItMTAuNXptMjU2IDIyNC43SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHpNMjA4IDEzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNi0xNiA3LjItMTYgMTYgNy4yIDE2IDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzNTguNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZxMC05LjYtOS42LTE5LjJjLTMuMi0xNi0zLjItNjAuOCAwLTczLjZxOS42LTQuOCA5LjYtMTkuMnpNMTQ0IDE2OGE4IDggMCAwIDEgOC04aDU2di01NmE4IDggMCAwIDEgOC04aDQ4YTggOCAwIDAgMSA4IDh2NTZoNTZhOCA4IDAgMCAxIDggOHY0OGE4IDggMCAwIDEtOCA4aC01NnY1NmE4IDggMCAwIDEtOCA4aC00OGE4IDggMCAwIDEtOC04di01NmgtNTZhOCA4IDAgMCAxLTgtOHptMjM2LjggMjgwSDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDIuMjIgMzIuMDVjLTU0LjggMy4xMS0xNjMuNzIgMTQuNDMtMjMwLjk2IDU1LjU5LTQuNjQgMi44NC03LjI3IDcuODktNy4yNyAxMy4xN3YzNjMuODdjMCAxMS41NSAxMi42MyAxOC44NSAyMy4yOCAxMy40OSA2OS4xOC0zNC44MiAxNjkuMjMtNDQuMzIgMjE4LjctNDYuOTIgMTYuODktLjg5IDMwLjAyLTE0LjQzIDMwLjAyLTMwLjY2VjYyLjc1Yy4wMS0xNy43MS0xNS4zNS0zMS43NC0zMy43Ny0zMC43ek0yNjQuNzMgODcuNjRDMTk3LjUgNDYuNDggODguNTggMzUuMTcgMzMuNzggMzIuMDUgMTUuMzYgMzEuMDEgMCA0NS4wNCAwIDYyLjc1VjQwMC42YzAgMTYuMjQgMTMuMTMgMjkuNzggMzAuMDIgMzAuNjYgNDkuNDkgMi42IDE0OS41OSAxMi4xMSAyMTguNzcgNDYuOTUgMTAuNjIgNS4zNSAyMy4yMS0xLjk0IDIzLjIxLTEzLjQ2VjEwMC42M2MwLTUuMjktMi42Mi0xMC4xNC03LjI3LTEyLjk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tSZWFkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2IDQyLjk4IDk2IDk2IDk2IDk2LTQyLjk4IDk2LTk2ek0yMzMuNTkgMjQxLjFjLTU5LjMzLTM2LjMyLTE1NS40My00Ni4zLTIwMy43OS00OS4wNUMxMy41NSAxOTEuMTMgMCAyMDMuNTEgMCAyMTkuMTR2MjIyLjhjMCAxNC4zMyAxMS41OSAyNi4yOCAyNi40OSAyNy4wNSA0My42NiAyLjI5IDEzMS45OSAxMC42OCAxOTMuMDQgNDEuNDMgOS4zNyA0LjcyIDIwLjQ4LTEuNzEgMjAuNDgtMTEuODdWMjUyLjU2Yy0uMDEtNC42Ny0yLjMyLTguOTUtNi40Mi0xMS40NnptMjQ4LjYxLTQ5LjA1Yy00OC4zNSAyLjc0LTE0NC40NiAxMi43My0yMDMuNzggNDkuMDUtNC4xIDIuNTEtNi40MSA2Ljk2LTYuNDEgMTEuNjN2MjQ1Ljc5YzAgMTAuMTkgMTEuMTQgMTYuNjMgMjAuNTQgMTEuOSA2MS4wNC0zMC43MiAxNDkuMzItMzkuMTEgMTkyLjk3LTQxLjQgMTQuOS0uNzggMjYuNDktMTIuNzMgMjYuNDktMjcuMDZWMjE5LjE0Yy0uMDEtMTUuNjMtMTMuNTYtMjguMDEtMjkuODEtMjcuMDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzYwVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDk2QzQzIDAgMCA0MyAwIDk2djMyMGMwIDUzIDQzIDk2IDk2IDk2aDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZjMC03LjUtMy41LTE0LjMtOC45LTE4LjctNC4yLTE1LjQtNC4yLTU5LjMgMC03NC43IDUuNC00LjMgOC45LTExLjEgOC45LTE4LjZ6TTEyOCAxMzRjMC0zLjMgMi43LTYgNi02aDIxMmMzLjMgMCA2IDIuNyA2IDZ2MjBjMCAzLjMtMi43IDYtNiA2SDEzNGMtMy4zIDAtNi0yLjctNi02di0yMHptMCA2NGMwLTMuMyAyLjctNiA2LTZoMjEyYzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMTM0Yy0zLjMgMC02LTIuNy02LTZ2LTIwem0yNTMuNCAyNTBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTcuNiAxNC40LTMyIDMyLTMyaDI4NS40Yy0xLjkgMTcuMS0xLjkgNDYuOSAwIDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNTEyVjQ4QzAgMjEuNDkgMjEuNDkgMCA0OCAwaDI4OGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djQ2NEwxOTIgNDAwIDAgNTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmRlckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzJIMzJBMzIgMzIgMCAwIDAgMCA2NHYzODRhMzIgMzIgMCAwIDAgMzIgMzJoMzg0YTMyIDMyIDAgMCAwIDMyLTMyVjY0YTMyIDMyIDAgMCAwLTMyLTMyem0tMzIgNjR2MTI4SDI1NlY5NnptLTE5MiAwdjEyOEg2NFY5NnpNNjQgNDE2VjI4OGgxMjh2MTI4em0xOTIgMFYyODhoMTI4djEyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3JkZXJOb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCAyMjRoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0yODggMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAxOTJoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xOTJoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMjQwIDMyMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tOTYgMjg4aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2LTM4NGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpNNDggMjI0SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCAxOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmRlclN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA0MTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMTkyIDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYtMTkyaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCA5NmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTI4OGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDMyQTMyIDMyIDAgMCAwIDAgNjR2NDAwYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2Vjk2aDM2OGExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3dsaW5nQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek0xMjAgMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptNjQtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTQ4IDE0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94T3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjUuNyAyNTZjLTE2LjkgMC0zMi44LTktNDEuNC0yMy40TDMyMCAxMjZsLTY0LjIgMTA2LjZjLTguNyAxNC41LTI0LjYgMjMuNS00MS41IDIzLjUtNC41IDAtOS0uNi0xMy4zLTEuOUw2NCAyMTV2MTc4YzAgMTQuNyAxMCAyNy41IDI0LjIgMzFsMjE2LjIgNTQuMWMxMC4yIDIuNSAyMC45IDIuNSAzMSAwTDU1MS44IDQyNGMxNC4yLTMuNiAyNC4yLTE2LjQgMjQuMi0zMVYyMTVsLTEzNyAzOS4xYy00LjMgMS4zLTguOCAxLjktMTMuMyAxLjl6bTIxMi42LTExMi4yTDU4Ni44IDQxYy0zLjEtNi4yLTkuOC05LjgtMTYuNy04LjlMMzIwIDY0bDkxLjcgMTUyLjFjMy44IDYuMyAxMS40IDkuMyAxOC41IDcuM2wxOTcuOS01Ni41YzkuOS0yLjkgMTQuNy0xMy45IDEwLjItMjMuMXpNNTMuMiA0MUwxLjcgMTQzLjhjLTQuNiA5LjIuMyAyMC4yIDEwLjEgMjNsMTk3LjkgNTYuNWM3LjEgMiAxNC43LTEgMTguNS03LjNMMzIwIDY0IDY5LjggMzIuMWMtNi45LS44LTEzLjUgMi43LTE2LjYgOC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJveFRpc3N1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODMuODgsMjg3LjgybDY0LTE5MkgzMzguNDdhNzAuMiw3MC4yLDAsMCwxLTY2LjU5LTQ4LDcwLjIxLDcwLjIxLDAsMCwwLTY2LjYtNDhINjMuODhsNjQsMjg4Wm0tMzg0LDE5MmEzMiwzMiwwLDAsMCwzMiwzMmg0NDhhMzIsMzIsMCwwLDAsMzItMzJ2LTY0SC0uMTJabTQ4MC0yNTZINDM4Ljk0bC0yMS4zMyw2NGgxNC4yN2ExNiwxNiwwLDAsMSwwLDMyaC0zNTJhMTYsMTYsMCwxLDEsMC0zMkg5NS4wOWwtMTQuMjItNjRoLTQ5YTMyLDMyLDAsMCwwLTMyLDMydjEyOGg1MTJ2LTEyOEEzMiwzMiwwLDAsMCw0NzkuODgsMjIzLjgyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDkuNSAxODQuNkw0NTguOSAzMi44QzQ1Mi40IDEzLjIgNDM0LjEgMCA0MTMuNCAwSDI3MnYxOTJoMjM4LjdjLS40LTIuNS0uNC01LTEuMi03LjR6TTI0MCAwSDk4LjZjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOEwyLjUgMTg0LjZjLS44IDIuNC0uOCA0LjktMS4yIDcuNEgyNDBWMHpNMCAyMjR2MjQwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYyMjRIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAgMjg4aC04MHY5NmwtMzItMjEuMy0zMiAyMS4zdi05NmgtODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnptLTM4NC02NGgyMjRjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtODB2OTZsLTMyLTIxLjNMMjU2IDk2VjBoLTgwYy04LjggMC0xNiA3LjItMTYgMTZ2MTkyYzAgOC44IDcuMiAxNiAxNiAxNnptNjQgNjRoLTgwdjk2bC0zMi0yMS4zTDk2IDM4NHYtOTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmFpbGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAyNTZjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0UzAgMjkxLjM0NiAwIDI1NnMyOC42NTQtNjQgNjQtNjQgNjQgMjguNjU0IDY0IDY0ek02NCAzODRjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMC0zNTJDMjguNjU0IDMyIDAgNjAuNjU0IDAgOTZzMjguNjU0IDY0IDY0IDY0IDY0LTI4LjY1NCA2NC02NC0yOC42NTQtNjQtNjQtNjR6bTE2MCAxOTJjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMCAxNjBjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMC0zNTJjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHMyOC42NTQgNjQgNjQgNjQgNjQtMjguNjU0IDY0LTY0LTI4LjY1NC02NC02NC02NHptMjI0IDE5MmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wIDE2MGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wLTM1MmMtMzUuMzQ2IDAtNjQgMjguNjU0LTY0IDY0czI4LjY1NCA2NCA2NCA2NCA2NC0yOC42NTQgNjQtNjQtMjguNjU0LTY0LTY0LTY0em0xNjAgMTkyYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAgMTYwYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAtMzIwYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDBjLTI5LjkgMC01NC43IDIwLjUtNjEuOCA0OC4yLS44IDAtMS40LS4yLTIuMi0uMi0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDQuOC42IDkuNSAxLjcgMTRDNTIuNSAxMzggMzIgMTY2LjYgMzIgMjAwYzAgMTIuNiAzLjIgMjQuMyA4LjMgMzQuOUMxNi4zIDI0OC43IDAgMjc0LjMgMCAzMDRjMCAzMy4zIDIwLjQgNjEuOSA0OS40IDczLjktLjkgNC42LTEuNCA5LjMtMS40IDE0LjEgMCAzOS44IDMyLjIgNzIgNzIgNzIgNC4xIDAgOC4xLS41IDEyLTEuMiA5LjYgMjguNSAzNi4yIDQ5LjIgNjggNDkuMiAzOS44IDAgNzItMzIuMiA3Mi03MlY2NGMwLTM1LjMtMjguNy02NC02NC02NHptMzY4IDMwNGMwLTI5LjctMTYuMy01NS4zLTQwLjMtNjkuMSA1LjItMTAuNiA4LjMtMjIuMyA4LjMtMzQuOSAwLTMzLjQtMjAuNS02Mi00OS43LTc0IDEtNC41IDEuNy05LjIgMS43LTE0IDAtMzUuMy0yOC43LTY0LTY0LTY0LS44IDAtMS41LjItMi4yLjJDNDIyLjcgMjAuNSAzOTcuOSAwIDM2OCAwYy0zNS4zIDAtNjQgMjguNi02NCA2NHYzNzZjMCAzOS44IDMyLjIgNzIgNzIgNzIgMzEuOCAwIDU4LjQtMjAuNyA2OC00OS4yIDMuOS43IDcuOSAxLjIgMTIgMS4yIDM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtNC44LS41LTkuNS0xLjQtMTQuMSAyOS0xMiA0OS40LTQwLjYgNDkuNC03My45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyZWFkU2xpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBDMTA4IDAgMCA5My40IDAgMTY5LjE0IDAgMTk5LjQ0IDI0LjI0IDIyNCA2NCAyMjR2MjU2YzAgMTcuNjcgMTYuMTIgMzIgMzYgMzJoMzc2YzE5Ljg4IDAgMzYtMTQuMzMgMzYtMzJWMjI0YzM5Ljc2IDAgNjQtMjQuNTYgNjQtNTQuODZDNTc2IDkzLjQgNDY4IDAgMjg4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZWZjYXNlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMTI4aC04MFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djQ4SDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE3NmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDk2aDEyOHYzMkgxOTJWOTZ6bTE2MCAyNDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWVmY2FzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzM2YzAgOC44NC03LjE2IDE2LTE2IDE2aC05NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTQ4SDB2MTQ0YzAgMjUuNiAyMi40IDQ4IDQ4IDQ4aDQxNmMyNS42IDAgNDgtMjIuNCA0OC00OFYyODhIMzIwdjQ4em0xNDQtMjA4aC04MFY4MGMwLTI1LjYtMjIuNC00OC00OC00OEgxNzZjLTI1LjYgMC00OCAyMi40LTQ4IDQ4djQ4SDQ4Yy0yNS42IDAtNDggMjIuNC00OCA0OHY4MGg1MTJ2LTgwYzAtMjUuNi0yMi40LTQ4LTQ4LTQ4em0tMTQ0IDBIMTkyVjk2aDEyOHYzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcm9hZGNhc3RUb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTAuOTQgMTkyaDMzLjczYzExLjAxIDAgMTguNjEtMTAuODMgMTQuODYtMjEuMTgtNC45My0xMy41OC03LjU1LTI3Ljk4LTcuNTUtNDIuODJzMi42Mi0yOS4yNCA3LjU1LTQyLjgyQzIwMy4yOSA3NC44MyAxOTUuNjggNjQgMTg0LjY3IDY0aC0zMy43M2MtNy4wMSAwLTEzLjQ2IDQuNDktMTUuNDEgMTEuMjNDMTMwLjY0IDkyLjIxIDEyOCAxMDkuODggMTI4IDEyOGMwIDE4LjEyIDIuNjQgMzUuNzkgNy41NCA1Mi43NiAxLjk0IDYuNzQgOC4zOSAxMS4yNCAxNS40IDExLjI0ek04OS45MiAyMy4zNEM5NS41NiAxMi43MiA4Ny45NyAwIDc1Ljk2IDBINDAuNjNjLTYuMjcgMC0xMi4xNCAzLjU5LTE0Ljc0IDkuMzFDOS40IDQ1LjU0IDAgODUuNjUgMCAxMjhjMCAyNC43NSAzLjEyIDY4LjMzIDI2LjY5IDExOC44NiAyLjYyIDUuNjMgOC40MiA5LjE0IDE0LjYxIDkuMTRoMzQuODRjMTIuMDIgMCAxOS42MS0xMi43NCAxMy45NS0yMy4zNy00OS43OC05My4zMi0xNi43MS0xNzguMTUtLjE3LTIwOS4yOXpNNjE0LjA2IDkuMjlDNjExLjQ2IDMuNTggNjA1LjYgMCA1OTkuMzMgMGgtMzUuNDJjLTExLjk4IDAtMTkuNjYgMTIuNjYtMTQuMDIgMjMuMjUgMTguMjcgMzQuMjkgNDguNDIgMTE5LjQyLjI4IDIwOS4yMy01LjcyIDEwLjY4IDEuOCAyMy41MiAxMy45MSAyMy41MmgzNS4yM2M2LjI3IDAgMTIuMTMtMy41OCAxNC43My05LjI5QzYzMC41NyAyMTAuNDggNjQwIDE3MC4zNiA2NDAgMTI4cy05LjQyLTgyLjQ4LTI1Ljk0LTExOC43MXpNNDg5LjA2IDY0aC0zMy43M2MtMTEuMDEgMC0xOC42MSAxMC44My0xNC44NiAyMS4xOCA0LjkzIDEzLjU4IDcuNTUgMjcuOTggNy41NSA0Mi44MnMtMi42MiAyOS4yNC03LjU1IDQyLjgyYy0zLjc2IDEwLjM1IDMuODUgMjEuMTggMTQuODYgMjEuMThoMzMuNzNjNy4wMiAwIDEzLjQ2LTQuNDkgMTUuNDEtMTEuMjQgNC45LTE2Ljk3IDcuNTMtMzQuNjQgNy41My01Mi43NiAwLTE4LjEyLTIuNjQtMzUuNzktNy41NC01Mi43Ni0xLjk0LTYuNzUtOC4zOS0xMS4yNC0xNS40LTExLjI0em0tMTE2LjMgMTAwLjEyYzcuMDUtMTAuMjkgMTEuMi0yMi43MSAxMS4yLTM2LjEyIDAtMzUuMzUtMjguNjMtNjQtNjMuOTYtNjQtMzUuMzIgMC02My45NiAyOC42NS02My45NiA2NCAwIDEzLjQxIDQuMTUgMjUuODMgMTEuMiAzNi4xMmwtMTMwLjUgMzEzLjQxYy0zLjQgOC4xNS40NiAxNy41MiA4LjYxIDIwLjkybDI5LjUxIDEyLjMxYzguMTUgMy40IDE3LjUyLS40NiAyMC45MS04LjYxTDI0NC45NiAzODRoMTUwLjA3bDQ5LjIgMTE4LjE1YzMuNCA4LjE2IDEyLjc2IDEyLjAxIDIwLjkxIDguNjFsMjkuNTEtMTIuMzFjOC4xNS0zLjQgMTItMTIuNzcgOC42MS0yMC45MmwtMTMwLjUtMzEzLjQxek0yNzEuNjIgMzIwTDMyMCAyMDMuODEgMzY4LjM4IDMyMGgtOTYuNzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LjQ3IDIxNi43N2w4Ni43MyAxMDkuMThzLTE2LjYgMTAyLjM2LTc2LjU3IDE1MC4xMkMyMDYuNjYgNTIzLjg1IDAgNTEwLjE5IDAgNTEwLjE5czMuOC0yMy4xNCAxMS01NS40M2w5NC42Mi0xMTIuMTdjMy45Ny00LjctLjg3LTExLjYyLTYuNjUtOS41bC02MC40IDIyLjA5YzE0LjQ0LTQxLjY2IDMyLjcyLTgwLjA0IDU0LjYtOTcuNDcgNTkuOTctNDcuNzYgMTYzLjMtNDAuOTQgMTYzLjMtNDAuOTR6TTYzNi41MyAzMS4wM2wtMTkuODYtMjVjLTUuNDktNi45LTE1LjUyLTguMDUtMjIuNDEtMi41NmwtMjMyLjQ4IDE3Ny44LTM0LjE0LTQyLjk3Yy01LjA5LTYuNDEtMTUuMTQtNS4yMS0xOC41OSAyLjIxbC0yNS4zMyA1NC41NSA4Ni43MyAxMDkuMTggNTguOC0xMi40NWM4LTEuNjkgMTEuNDItMTEuMiA2LjM0LTE3LjZsLTM0LjA5LTQyLjkyIDIzMi40OC0xNzcuOGM2Ljg5LTUuNDggOC4wNC0xNS41MyAyLjU1LTIyLjQ0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJydXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAwSDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjIyNGgzODRWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMCAzMjBjMCAzNS4zNSAyOC42NiA2NCA2NCA2NGg2NHY2NGMwIDM1LjM1IDI4LjY2IDY0IDY0IDY0czY0LTI4LjY1IDY0LTY0di02NGg2NGMzNS4zNCAwIDY0LTI4LjY1IDY0LTY0di0zMkgwdjMyem0xOTIgMTA0YzEzLjI1IDAgMjQgMTAuNzQgMjQgMjQgMCAxMy4yNS0xMC43NSAyNC0yNCAyNHMtMjQtMTAuNzUtMjQtMjRjMC0xMy4yNiAxMC43NS0yNCAyNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTExLjk4OCAyODguOWMtLjQ3OCAxNy40My0xNS4yMTcgMzEuMS0zMi42NTMgMzEuMUg0MjR2MTZjMCAyMS44NjQtNC44ODIgNDIuNTg0LTEzLjYgNjEuMTQ1bDYwLjIyOCA2MC4yMjhjMTIuNDk2IDEyLjQ5NyAxMi40OTYgMzIuNzU4IDAgNDUuMjU1LTEyLjQ5OCAxMi40OTctMzIuNzU5IDEyLjQ5Ni00NS4yNTYgMGwtNTQuNzM2LTU0LjczNkMzNDUuODg2IDQ2Ny45NjUgMzE0LjM1MSA0ODAgMjgwIDQ4MFYyMzZjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjQ0Yy0zNC4zNTEgMC02NS44ODYtMTIuMDM1LTkwLjYzNi0zMi4xMDhsLTU0LjczNiA1NC43MzZjLTEyLjQ5OCAxMi40OTctMzIuNzU5IDEyLjQ5Ni00NS4yNTYgMC0xMi40OTYtMTIuNDk3LTEyLjQ5Ni0zMi43NTggMC00NS4yNTVsNjAuMjI4LTYwLjIyOEM5Mi44ODIgMzc4LjU4NCA4OCAzNTcuODY0IDg4IDMzNnYtMTZIMzIuNjY2QzE1LjIzIDMyMCAuNDkxIDMwNi4zMy4wMTMgMjg4LjktLjQ4NCAyNzAuODE2IDE0LjAyOCAyNTYgMzIgMjU2aDU2di01OC43NDVsLTQ2LjYyOC00Ni42MjhjLTEyLjQ5Ni0xMi40OTctMTIuNDk2LTMyLjc1OCAwLTQ1LjI1NSAxMi40OTgtMTIuNDk3IDMyLjc1OC0xMi40OTcgNDUuMjU2IDBMMTQxLjI1NSAxNjBoMjI5LjQ4OWw1NC42MjctNTQuNjI3YzEyLjQ5OC0xMi40OTcgMzIuNzU4LTEyLjQ5NyA0NS4yNTYgMCAxMi40OTYgMTIuNDk3IDEyLjQ5NiAzMi43NTggMCA0NS4yNTVMNDI0IDE5Ny4yNTVWMjU2aDU2YzE3Ljk3MiAwIDMyLjQ4NCAxNC44MTYgMzEuOTg4IDMyLjl6TTI1NyAwYy02MS44NTYgMC0xMTIgNTAuMTQ0LTExMiAxMTJoMjI0QzM2OSA1MC4xNDQgMzE4Ljg1NiAwIDI1NyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiA0ODBoLTIwVjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEg1NkM0Mi43NDUgMCAzMiAxMC43NDUgMzIgMjR2NDU2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjIwaDQ0OHYtMjBjMC02LjYyNy01LjM3My0xMi0xMi0xMnpNMTI4IDc2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMlY3NnptMCA5NmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwem01MiAxNDhoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi00MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptNzYgMTYwaC02NHYtODRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjg0em02NC0xNzJjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MHptMC05NmMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwem0wLTk2YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyVjc2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWxsaG9ybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgMjQwYzAtMjMuNjMtMTIuOTUtNDQuMDQtMzItNTUuMTJWMzIuMDFDNTQ0IDIzLjI2IDUzNy4wMiAwIDUxMiAwYy03LjEyIDAtMTQuMTkgMi4zOC0xOS45OCA3LjAybC04NS4wMyA2OC4wM0MzNjQuMjggMTA5LjE5IDMxMC42NiAxMjggMjU2IDEyOEg2NGMtMzUuMzUgMC02NCAyOC42NS02NCA2NHY5NmMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMzLjdjLTEuMzkgMTAuNDgtMi4xOCAyMS4xNC0yLjE4IDMyIDAgMzkuNzcgOS4yNiA3Ny4zNSAyNS41NiAxMTAuOTQgNS4xOSAxMC42OSAxNi41MiAxNy4wNiAyOC40IDE3LjA2aDc0LjI4YzI2LjA1IDAgNDEuNjktMjkuODQgMjUuOS01MC41Ni0xNi40LTIxLjUyLTI2LjE1LTQ4LjM2LTI2LjE1LTc3LjQ0IDAtMTEuMTEgMS42Mi0yMS43OSA0LjQxLTMySDI1NmM1NC42NiAwIDEwOC4yOCAxOC44MSAxNTAuOTggNTIuOTVsODUuMDMgNjguMDNhMzIuMDIzIDMyLjAyMyAwIDAgMCAxOS45OCA3LjAyYzI0LjkyIDAgMzItMjIuNzggMzItMzJWMjk1LjEzQzU2My4wNSAyODQuMDQgNTc2IDI2My42MyA1NzYgMjQwem0tOTYgMTQxLjQybC0zMy4wNS0yNi40NEMzOTIuOTUgMzExLjc4IDMyNS4xMiAyODggMjU2IDI4OHYtOTZjNjkuMTIgMCAxMzYuOTUtMjMuNzggMTkwLjk1LTY2Ljk4TDQ4MCA5OC41OHYyODIuODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVsbHNleWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0MzJjLTEwMS42OSAwLTE4NC04Mi4yOS0xODQtMTg0IDAtMTAxLjY5IDgyLjI5LTE4NCAxODQtMTg0IDEwMS42OSAwIDE4NCA4Mi4yOSAxODQgMTg0IDAgMTAxLjY5LTgyLjI5IDE4NC0xODQgMTg0em0wLTMxMmMtNzAuNjkgMC0xMjggNTcuMzEtMTI4IDEyOHM1Ny4zMSAxMjggMTI4IDEyOCAxMjgtNTcuMzEgMTI4LTEyOC01Ny4zMS0xMjgtMTI4LTEyOHptMCAxOTJjLTM1LjI5IDAtNjQtMjguNzEtNjQtNjRzMjguNzEtNjQgNjQtNjQgNjQgMjguNzEgNjQgNjQtMjguNzEgNjQtNjQgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMEM3OS43IDEwMS4zIDAgMjIwLjkgMCAzMDAuNSAwIDQyNSA3OSA1MTIgMTkyIDUxMnMxOTItODcgMTkyLTIxMS41YzAtNzkuOS04MC4yLTE5OS42LTE5Mi0zMDAuNXptMCA0NDhjLTU2LjUgMC05Ni0zOS05Ni05NC44IDAtMTMuNSA0LjYtNjEuNSA5Ni0xNjEuMiA5MS40IDk5LjcgOTYgMTQ3LjcgOTYgMTYxLjIgMCA1NS44LTM5LjUgOTQuOC05NiA5NC44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1c0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMTI4aC04VjgwYzAtNDQuOC05OS4yLTgwLTIyNC04MFMzMiAzNS4yIDMyIDgwdjQ4aC04Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0djgwYzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoOHYxNjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDE5MnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDYuNGMxNiAwIDI1LjYtMTIuOCAyNS42LTI1LjZWMjU2aDhjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtODBjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpNMTYwIDcyYzAtNC40MiAzLjU4LTggOC04aDE3NmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEgxNjhjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0tNDggMzI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xMjgtMTEySDEyOGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnYtOTZjMC0xNy42NyAxNC4zMy0zMiAzMi0zMmgxMTJ2MTYwem0zMiAwVjEyOGgxMTJjMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnY5NmMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDI3MnptMTI4IDExMmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDEyOGgtOFY4MGMwLTQ0LjgtOTkuMi04MC0yMjQtODBTMzIgMzUuMiAzMiA4MHY0OGgtOGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDh2MTYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgxOTJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmg2LjRjMTYgMCAyNS42LTEyLjggMjUuNi0yNS42VjI1Nmg4YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTgwYzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTExMiA0MDBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTE2LTExMmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlYxMjhjMC0xNy42NyAxNC4zMy0zMiAzMi0zMmgyNTZjMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnYxMjhjMCAxNy42Ny0xNC4zMyAzMi0zMiAzMkgxMjh6bTI3MiAxMTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVzaW5lc3NUaW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyMjRjLTc5LjU5IDAtMTQ0IDY0LjQxLTE0NCAxNDRzNjQuNDEgMTQ0IDE0NCAxNDQgMTQ0LTY0LjQxIDE0NC0xNDQtNjQuNDEtMTQ0LTE0NC0xNDR6bTY0IDE1MC4yOWMwIDUuMzQtNC4zNyA5LjcxLTkuNzEgOS43MWgtNjAuNTdjLTUuMzQgMC05LjcxLTQuMzctOS43MS05Ljcxdi03Ni41N2MwLTUuMzQgNC4zNy05LjcxIDkuNzEtOS43MWgxMi41N2M1LjM0IDAgOS43MSA0LjM3IDkuNzEgOS43MVYzNTJoMzguMjljNS4zNCAwIDkuNzEgNC4zNyA5LjcxIDkuNzF2MTIuNTh6TTQ5NiAxOTJjNS40IDAgMTAuNzIuMzMgMTYgLjgxVjE0NGMwLTI1LjYtMjIuNC00OC00OC00OGgtODBWNDhjMC0yNS42LTIyLjQtNDgtNDgtNDhIMTc2Yy0yNS42IDAtNDggMjIuNC00OCA0OHY0OEg0OGMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2ODBoMzk1LjEyYzI4LjYtMjAuMDkgNjMuMzUtMzIgMTAwLjg4LTMyek0zMjAgOTZIMTkyVjY0aDEyOHYzMnptNi44MiAyMjRIMjA4Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNDhIMHYxNDRjMCAyNS42IDIyLjQgNDggNDggNDhoMjkxLjQzQzMyNy4xIDQyMy45NiAzMjAgMzk2LjgyIDMyMCAzNjhjMC0xNi42NiAyLjQ4LTMyLjcyIDYuODItNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsY3VsYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMEg0OEMyMi40IDAgMCAyMi40IDAgNDh2NDE2YzAgMjUuNiAyMi40IDQ4IDQ4IDQ4aDM1MmMyNS42IDAgNDgtMjIuNCA0OC00OFY0OGMwLTI1LjYtMjIuNC00OC00OC00OHpNMTI4IDQzNS4yYzAgNi40LTYuNCAxMi44LTEyLjggMTIuOEg3Ni44Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6bTAtMTI4YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOEg3Ni44Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6bTEyOCAxMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6bTAtMTI4YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40em0xMjggMTI4YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44VjI2OC44YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYxNjYuNHptMC0yNTZjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44SDc2LjhjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOFY3Ni44QzY0IDcwLjQgNzAuNCA2NCA3Ni44IDY0aDI5NC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYxMDIuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTkySDB2Mjcyem0zMjAtMTk2YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MHptMCAxMjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek0xOTIgMjY4YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MHptMCAxMjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek02NCAyNjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6bTAgMTI4YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek00MDAgNjRoLTQ4VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNjBWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjQ4aDQ0OHYtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwSDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0zNmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY1MmgxMjhWMTJjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjUyaDQ4YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzZjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnpNMTIgMTkyaDQyNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI2MGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjIwNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyem0zMzMuMjk2IDk1Ljk0N2wtMjguMTY5LTI4LjM5OGMtNC42NjctNC43MDUtMTIuMjY1LTQuNzM2LTE2Ljk3LS4wNjhMMTk0LjEyIDM2NC42NjVsLTQ1Ljk4LTQ2LjM1MmMtNC42NjctNC43MDUtMTIuMjY2LTQuNzM2LTE2Ljk3MS0uMDY4bC0yOC4zOTcgMjguMTdjLTQuNzA1IDQuNjY3LTQuNzM2IDEyLjI2NS0uMDY4IDE2Ljk3bDgyLjYwMSA4My4yNjljNC42NjcgNC43MDUgMTIuMjY1IDQuNzM2IDE2Ljk3LjA2OGwxNDIuOTUzLTE0MS44MDVjNC43MDUtNC42NjcgNC43MzYtMTIuMjY1LjA2OC0xNi45N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhckRheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTkySDB2Mjcyem02NC0xOTJjMC04LjggNy4yLTE2IDE2LTE2aDk2YzguOCAwIDE2IDcuMiAxNiAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnYtOTZ6TTQwMCA2NGgtNDhWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2MFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhoNDQ4di00OGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiAxNjBIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHYzNmMwIDYuNi01LjQgMTItMTIgMTJ6TTEyIDE5Mmg0MjRjNi42IDAgMTIgNS40IDEyIDEydjI2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjA0YzAtNi42IDUuNC0xMiAxMi0xMnptMzA0IDE5MmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkgxMzJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwSDEyYy02LjYgMC0xMi01LjQtMTItMTJ2LTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MzZjMCA2LjYtNS40IDEyLTEyIDEyek0xMiAxOTJoNDI0YzYuNiAwIDEyIDUuNCAxMiAxMnYyNjBjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjIwNGMwLTYuNiA1LjQtMTIgMTItMTJ6bTMxNiAxNDBjMC02LjYtNS40LTEyLTEyLTEyaC02MHYtNjBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjYwaC02MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg2MHY2MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi02MGg2MGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyVGltZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE2MEgxMmMtNi42IDAtMTItNS40LTEyLTEydi0zNmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djM2YzAgNi42LTUuNCAxMi0xMiAxMnpNMTIgMTkyaDQyNGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyMDRjMC02LjYgNS40LTEyIDEyLTEyem0yNTcuMyAxNjBsNDguMS00OC4xYzQuNy00LjcgNC43LTEyLjMgMC0xN2wtMjguMy0yOC4zYy00LjctNC43LTEyLjMtNC43LTE3IDBMMjI0IDMwNi43bC00OC4xLTQ4LjFjLTQuNy00LjctMTIuMy00LjctMTcgMGwtMjguMyAyOC4zYy00LjcgNC43LTQuNyAxMi4zIDAgMTdsNDguMSA0OC4xLTQ4LjEgNDguMWMtNC43IDQuNy00LjcgMTIuMyAwIDE3bDI4LjMgMjguM2M0LjcgNC43IDEyLjMgNC43IDE3IDBsNDguMS00OC4xIDQ4LjEgNDguMWM0LjcgNC43IDEyLjMgNC43IDE3IDBsMjguMy0yOC4zYzQuNy00LjcgNC43LTEyLjMgMC0xN0wyNjkuMyAzNTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJIMHYyNzJ6bTY0LTE5MmMwLTguOCA3LjItMTYgMTYtMTZoMjg4YzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnYtNjR6TTQwMCA2NGgtNDhWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2MFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhoNDQ4di00OGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOTJoNDI0YzYuNiAwIDEyIDUuNCAxMiAxMnYyNjBjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjIwNGMwLTYuNiA1LjQtMTIgMTItMTJ6bTQzNi00NHYtMzZjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQ4VjEyYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY1MkgxNjBWMTJjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjUySDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MjRjNi42IDAgMTItNS40IDEyLTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbWVyYVJldHJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHptMCAzMmgxMDZjMy4zIDAgNiAyLjcgNiA2djIwYzAgMy4zLTIuNyA2LTYgNkgzOGMtMy4zIDAtNi0yLjctNi02VjgwYzAtOC44IDcuMi0xNiAxNi0xNnptNDI2IDk2SDM4Yy0zLjMgMC02LTIuNy02LTZ2LTM2YzAtMy4zIDIuNy02IDYtNmgxMzhsMzAuMi00NS4zYzEuMS0xLjcgMy0yLjcgNS0yLjdINDY0YzguOCAwIDE2IDcuMiAxNiAxNnY3NGMwIDMuMy0yLjcgNi02IDZ6TTI1NiA0MjRjLTY2LjIgMC0xMjAtNTMuOC0xMjAtMTIwczUzLjgtMTIwIDEyMC0xMjAgMTIwIDUzLjggMTIwIDEyMC01My44IDEyMC0xMjAgMTIwem0wLTIwOGMtNDguNSAwLTg4IDM5LjUtODggODhzMzkuNSA4OCA4OCA4OCA4OC0zOS41IDg4LTg4LTM5LjUtODgtODgtODh6bS00OCAxMDRjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTM1LjMgMjguNy02NCA2NC02NCA4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtMTcuNiAwLTMyIDE0LjQtMzIgMzIgMCA4LjgtNy4yIDE2LTE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMTQ0djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDg4bDEyLjMtMzIuOWM3LTE4LjcgMjQuOS0zMS4xIDQ0LjktMzEuMWgxMjUuNWMyMCAwIDM3LjkgMTIuNCA0NC45IDMxLjFMMzc2IDk2aDg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNzYgMjg4YzAtNjYuMi01My44LTEyMC0xMjAtMTIwcy0xMjAgNTMuOC0xMjAgMTIwIDUzLjggMTIwIDEyMCAxMjAgMTIwLTUzLjggMTIwLTEyMHptLTMyIDBjMCA0OC41LTM5LjUgODgtODggODhzLTg4LTM5LjUtODgtODggMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbXBncm91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQ0OGgtMjQuNjhMMzU5LjU0IDExNy43NWw1My40MS03My41NWM1LjE5LTcuMTUgMy42MS0xNy4xNi0zLjU0LTIyLjM1bC0yNS45LTE4Ljc5Yy03LjE1LTUuMTktMTcuMTUtMy42MS0yMi4zNSAzLjU1TDMyMCA2My4zIDI3OC44MyA2LjZjLTUuMTktNy4xNS0xNS4yLTguNzQtMjIuMzUtMy41NWwtMjUuODggMTguOGMtNy4xNSA1LjE5LTguNzQgMTUuMi0zLjU0IDIyLjM1bDUzLjQxIDczLjU1TDQwLjY4IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNMzIwIDI4OGwxMTYuMzYgMTYwSDIwMy42NEwzMjAgMjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbmR5Q2FuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuNSA5MkM0NjkuNiAzMy4xIDQxMS44IDAgMzUyLjQgMGMtMjcuOSAwLTU2LjIgNy4zLTgxLjggMjIuNkwyNDMuMSAzOWMtMTUuMiA5LjEtMjAuMSAyOC43LTExIDQzLjlsMzIuOCA1NC45YzYgMTAgMTYuNiAxNS42IDI3LjUgMTUuNiA1LjYgMCAxMS4yLTEuNSAxNi40LTQuNWwyNy41LTE2LjRjNS4xLTMuMSAxMC44LTQuNSAxNi40LTQuNSAxMC45IDAgMjEuNSA1LjYgMjcuNSAxNS42IDkuMSAxNS4xIDQuMSAzNC44LTExIDQzLjlMMTUuNiAzOTcuNmMtMTUuMiA5LjEtMjAuMSAyOC43LTExIDQzLjlsMzIuOCA1NC45YzYgMTAgMTYuNiAxNS42IDI3LjUgMTUuNiA1LjYgMCAxMS4yLTEuNSAxNi40LTQuNUw0MjguNiAzMDFjNzEuNy00Mi45IDEwNC42LTEzMy41IDY4LjktMjA5em0tMTc3LjcgMTNsLTIuNSAxLjVMMjk2LjggNDVjOS43LTQuNyAxOS44LTguMSAzMC4zLTEwLjJsMjAuNiA2MS44Yy05LjguOC0xOS40IDMuMy0yNy45IDguNHpNMTQ1LjkgNDMxLjhsLTYwLjUtMzguNSAzMC44LTE4LjMgNjAuNSAzOC41LTMwLjggMTguM3ptMTA3LjUtNjMuOWwtNjAuNS0zOC41IDMwLjgtMTguMyA2MC41IDM4LjUtMzAuOCAxOC4zek0zNjQuMyAzMDJsLTYwLjUtMzguNSAzMC44LTE4LjMgNjAuNSAzOC41LTMwLjggMTguM3ptMjAuNC0xOTcuM2w0Ni00NmM4LjQgNi41IDE2IDE0LjEgMjIuNiAyMi42TDQwNy42IDEyN2MtNS43LTkuMy0xMy43LTE2LjktMjIuOS0yMi4zem04Mi4xIDEwNy44bC01OS41LTE5LjhjMy4yLTUuMyA1LjgtMTAuOSA3LjQtMTcuMSAxLjEtNC41IDEuNy05LjEgMS44LTEzLjZsNjAuNCAyMC4xYy0yLjEgMTAuNC01LjUgMjAuNi0xMC4xIDMwLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FubmFiaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAzLjQ3IDM2MC4yNWMtMS41Ni0uODItMzIuMzktMTYuODktNzYuNzgtMjUuODEgNjQuMjUtNzUuMTIgODQuMDUtMTYxLjY3IDg0LjkzLTE2NS42NCAxLjE4LTUuMzMtLjQ0LTEwLjktNC4zLTE0Ljc3LTMuMDMtMy4wNC03LjEyLTQuNy0xMS4zMi00LjctMS4xNCAwLTIuMjkuMTItMy40NC4zOC0zLjg4Ljg1LTg2LjU0IDE5LjU5LTE2MC41OCA3OS43Ni4wMS0xLjQ2LjAxLTIuOTMuMDEtNC40IDAtMTE4Ljc5LTU5Ljk4LTIxMy43Mi02Mi41My0yMTcuN0ExNS45NzMgMTUuOTczIDAgMCAwIDI1NiAwYy01LjQ1IDAtMTAuNTMgMi43OC0xMy40NyA3LjM3LTIuNTUgMy45OC02Mi41MyA5OC45MS02Mi41MyAyMTcuNyAwIDEuNDcuMDEgMi45NC4wMSA0LjQtNzQuMDMtNjAuMTYtMTU2LjY5LTc4LjktMTYwLjU4LTc5Ljc2LTEuMTQtLjI1LTIuMjktLjM4LTMuNDQtLjM4LTQuMiAwLTguMjkgMS42Ni0xMS4zMiA0LjdBMTUuOTg2IDE1Ljk4NiAwIDAgMCAuMzggMTY4LjhjLjg4IDMuOTcgMjAuNjggOTAuNTIgODQuOTMgMTY1LjY0LTQ0LjM5IDguOTItNzUuMjEgMjQuOTktNzYuNzggMjUuODFhMTYuMDAzIDE2LjAwMyAwIDAgMC0uMDIgMjguMjljMi40NSAxLjI5IDYwLjc2IDMxLjcyIDEzMy40OSAzMS43MiA2LjE0IDAgMTEuOTYtLjEgMTcuNS0uMzEtMTEuMzcgMjIuMjMtMTYuNTIgMzguMzEtMTYuODEgMzkuMjItMS44IDUuNjgtLjI5IDExLjg5IDMuOTEgMTYuMTFhMTYuMDE5IDE2LjAxOSAwIDAgMCAxNi4xIDMuOTljMS44My0uNTcgMzcuNzItMTEuOTkgNzcuMy0zOS4yOVY1MDRjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LTh2LTY0LjAxYzM5LjU4IDI3LjMgNzUuNDcgMzguNzEgNzcuMyAzOS4yOWExNi4wMTkgMTYuMDE5IDAgMCAwIDE2LjEtMy45OWM0LjItNC4yMiA1LjcxLTEwLjQzIDMuOTEtMTYuMTEtLjI5LS45MS01LjQ1LTE2Ljk5LTE2LjgxLTM5LjIyIDUuNTQuMjEgMTEuMzcuMzEgMTcuNS4zMSA3Mi43MiAwIDEzMS4wNC0zMC40MyAxMzMuNDktMzEuNzIgNS4yNC0yLjc4IDguNTItOC4yMiA4LjUxLTE0LjE1LS4wMS01Ljk0LTMuMjktMTEuMzktOC41My0xNC4xNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXBzdWxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTUuMyAzMDAuMUw0MjQuMiAxMTIuOEM0MDEuOSA4MSAzNjYuNCA2NCAzMzAuNCA2NGMtMjIuNiAwLTQ1LjUgNi43LTY1LjUgMjAuNy0xOS43IDEzLjgtMzMuNyAzMi44LTQxLjUgNTMuOEMyMjAuNSA3OS4yIDE3MiAzMiAxMTIgMzIgNTAuMSAzMiAwIDgyLjEgMCAxNDR2MjI0YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJWMjE4LjljMy4zIDguNiA3LjMgMTcuMSAxMi44IDI1TDM2OCA0MzEuMmMyMi4yIDMxLjggNTcuNyA0OC44IDkzLjggNDguOCAyMi43IDAgNDUuNS02LjcgNjUuNS0yMC43IDUxLjctMzYuMiA2NC4yLTEwNy41IDI4LTE1OS4yek0xNjAgMjU2SDY0VjE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djExMnptMTk0LjggNDQuOWwtNjUuNi05My43Yy03LjctMTEtMTAuNy0yNC40LTguMy0zNy42IDIuMy0xMy4yIDkuNy0yNC44IDIwLjctMzIuNSA4LjUtNiAxOC41LTkuMSAyOC44LTkuMSAxNi41IDAgMzEuOSA4IDQxLjMgMjEuNWw2NS42IDkzLjctODIuNSA1Ny43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzguNjYgMjEyLjMzbC0xMS4yNC0yOC4xLTE5LjkzLTQ5LjgzQzM5MC4zOCA5MS42MyAzNDkuNTcgNjQgMzAzLjUgNjRoLTEyN2MtNDYuMDYgMC04Ni44OCAyNy42My0xMDMuOTkgNzAuNGwtMTkuOTMgNDkuODMtMTEuMjQgMjguMUMxNy4yMiAyMjEuNSAwIDI0NC42NiAwIDI3MnY0OGMwIDE2LjEyIDYuMTYgMzAuNjcgMTYgNDEuOTNWNDE2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMjU2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNTQuMDdjOS44NC0xMS4yNSAxNi0yNS44IDE2LTQxLjkzdi00OGMwLTI3LjM0LTE3LjIyLTUwLjUtNDEuMzQtNTkuNjd6bS0zMDYuNzMtNTQuMTZjNy4yOS0xOC4yMiAyNC45NC0zMC4xNyA0NC41Ny0zMC4xN2gxMjdjMTkuNjMgMCAzNy4yOCAxMS45NSA0NC41NyAzMC4xN0wzNjggMjA4SDExMmwxOS45My00OS44M3pNODAgMzE5LjhjLTE5LjIgMC0zMi0xMi43Ni0zMi0zMS45UzYwLjggMjU2IDgwIDI1NnM0OCAyOC43MSA0OCA0Ny44NS0yOC44IDE1Ljk1LTQ4IDE1Ljk1em0zMjAgMGMtMTkuMiAwLTQ4IDMuMTktNDgtMTUuOTVTMzgwLjggMjU2IDQwMCAyNTZzMzIgMTIuNzYgMzIgMzEuOS0xMi44IDMxLjktMzIgMzEuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAxMjhoLTMyVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2aC05NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhIMTkyVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2SDgwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYyNTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMTkyIDI2NGMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExMmM0LjQyIDAgOCAzLjU4IDggOHYxNnptMjU2IDBjMCA0LjQyLTMuNTggOC04IDhoLTQwdjQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTQwaC00MGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDQwdi00MGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHY0MGg0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJDcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDMuMjUgMjIwLjgxbC0xMi40MiA0Ni4zN2MtMy4wMSAxMS4yNS0zLjYzIDIyLjg5LTIuNDEgMzQuMzlsLTM1LjIgMjguOThjLTYuNTcgNS40MS0xNi4zMS0uNDMtMTQuNjItOC43N2wxNS40NC03Ni42OGMxLjA2LTUuMjYtMi42Ni0xMC4yOC04LTEwLjc5bC03Ny44Ni03LjU1Yy04LjQ3LS44Mi0xMS4yMy0xMS44My00LjE0LTE2LjU0bDY1LjE1LTQzLjNjNC40Ni0yLjk3IDUuMzgtOS4xNSAxLjk4LTEzLjI5TDIxLjQ2IDkzLjIyYy01LjQxLTYuNTcuNDMtMTYuMyA4Ljc4LTE0LjYybDc2LjY4IDE1LjQ0YzUuMjYgMS4wNiAxMC4yOC0yLjY2IDEwLjgtOGw3LjU1LTc3Ljg2Yy44Mi04LjQ4IDExLjgzLTExLjIzIDE2LjU1LTQuMTRsNDMuMyA2NS4xNGMyLjk3IDQuNDYgOS4xNSA1LjM4IDEzLjI5IDEuOThsNjAuNC00OS43MWM2LjU3LTUuNDEgMTYuMy40MyAxNC42MiA4Ljc3TDI2Mi4xIDg2LjM4Yy0yLjcxIDMuMDUtNS40MyA2LjA5LTcuOTEgOS40bC0zMi4xNSA0Mi45Ny0xMC43MSAxNC4zMmMtMzIuNzMgOC43Ni01OS4xOCAzNC41My02OC4wOCA2Ny43NHptNDk0LjU3IDEzMi41MWwtMTIuNDIgNDYuMzZjLTMuMTMgMTEuNjgtOS4zOCAyMS42MS0xNy41NSAyOS4zNmE2Ni44NzYgNjYuODc2IDAgMCAxLTguNzYgN2wtMTMuOTkgNTIuMjNjLTEuMTQgNC4yNy0zLjEgOC4xLTUuNjUgMTEuMzgtNy42NyA5Ljg0LTIwLjc0IDE0LjY4LTMzLjU0IDExLjI1TDUxNSA1MDIuNjJjLTE3LjA3LTQuNTctMjcuMi0yMi4xMi0yMi42My0zOS4xOWw4LjI4LTMwLjkxLTI0Ny4yOC02Ni4yNi04LjI4IDMwLjkxYy00LjU3IDE3LjA3LTIyLjEyIDI3LjItMzkuMTkgMjIuNjNsLTMwLjkxLTguMjhjLTEyLjgtMy40My0yMS43LTE0LjE2LTIzLjQyLTI2LjUxLS41Ny00LjEyLS4zNS04LjQyLjc5LTEyLjY4bDEzLjk5LTUyLjIzYTY2LjYyIDY2LjYyIDAgMCAxLTQuMDktMTAuNDVjLTMuMi0xMC43OS0zLjY1LTIyLjUyLS41Mi0zNC4ybDEyLjQyLTQ2LjM3YzUuMzEtMTkuOCAxOS4zNi0zNC44MyAzNi44OS00Mi4yMWE2NC4zMzYgNjQuMzM2IDAgMCAxIDE4LjQ5LTQuNzJsMTguMTMtMjQuMjMgMzIuMTUtNDIuOTdjMy40NS00LjYxIDcuMTktOC45IDExLjItMTIuODQgOC03Ljg5IDE3LjAzLTE0LjQ0IDI2Ljc0LTE5LjUxIDQuODYtMi41NCA5Ljg5LTQuNzEgMTUuMDUtNi40OSAxMC4zMy0zLjU4IDIxLjE5LTUuNjMgMzIuMjQtNi4wNCAxMS4wNS0uNDEgMjIuMzEuODIgMzMuNDMgMy44bDEyMi42OCAzMi44N2MxMS4xMiAyLjk4IDIxLjQ4IDcuNTQgMzAuODUgMTMuNDNhMTExLjExIDExMS4xMSAwIDAgMSAzNC42OSAzNC41YzguODIgMTMuODggMTQuNjQgMjkuODQgMTYuNjggNDYuOTlsNi4zNiA1My4yOSAzLjU5IDMwLjA1YTY0LjQ5IDY0LjQ5IDAgMCAxIDIyLjc0IDI5LjkzYzQuMzkgMTEuODggNS4yOSAyNS4xOSAxLjc1IDM4LjM5ek0yNTUuNTggMjM0LjM0Yy0xOC41NS00Ljk3LTM0LjIxIDQuMDQtMzkuMTcgMjIuNTMtNC45NiAxOC40OSA0LjExIDM0LjEyIDIyLjY1IDM5LjA5IDE4LjU1IDQuOTcgNDUuNTQgMTUuNTEgNTAuNDktMi45OCA0Ljk2LTE4LjQ5LTE1LjQzLTUzLjY3LTMzLjk3LTU4LjY0em0yOTAuNjEgMjguMTdsLTYuMzYtNTMuMjljLS41OC00Ljg3LTEuODktOS41My0zLjgyLTEzLjg2LTUuOC0xMi45OS0xNy4yLTIzLjAxLTMxLjQyLTI2LjgybC0xMjIuNjgtMzIuODdhNDguMDA4IDQ4LjAwOCAwIDAgMC01MC44NiAxNy42MWwtMzIuMTUgNDIuOTcgMTcyIDQ2LjA4IDc1LjI5IDIwLjE4em0xOC40OSA1NC42NWMtMTguNTUtNC45Ny01My44IDE1LjMxLTU4Ljc1IDMzLjc5LTQuOTUgMTguNDkgMjMuNjkgMjIuODYgNDIuMjQgMjcuODMgMTguNTUgNC45NyAzNC4yMS00LjA0IDM5LjE3LTIyLjUzIDQuOTUtMTguNDgtNC4xMS0zNC4xMi0yMi42Ni0zOS4wOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJTaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxOTJoLTE2TDQxOS4yMiA1Ni4wMkE2NC4wMjUgNjQuMDI1IDAgMCAwIDM2OS4yNCAzMkgxNTUuMzNjLTI2LjE3IDAtNDkuNyAxNS45My01OS40MiA0MC4yM0w0OCAxOTQuMjZDMjAuNDQgMjAxLjQgMCAyMjYuMjEgMCAyNTZ2MTEyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzAgNTMuMDIgNDIuOTggOTYgOTYgOTZzOTYtNDIuOTggOTYtOTZoMTI4YzAgNTMuMDIgNDIuOTggOTYgOTYgOTZzOTYtNDIuOTggOTYtOTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTgwYzAtNTMuMDItNDIuOTgtOTYtOTYtOTZ6TTE2MCA0MzJjLTI2LjQ3IDAtNDgtMjEuNTMtNDgtNDhzMjEuNTMtNDggNDgtNDggNDggMjEuNTMgNDggNDgtMjEuNTMgNDgtNDggNDh6bTcyLTI0MEgxMTYuOTNsMzguNC05NkgyMzJ2OTZ6bTQ4IDBWOTZoODkuMjRsNzYuOCA5NkgyODB6bTIwMCAyNDBjLTI2LjQ3IDAtNDgtMjEuNTMtNDgtNDhzMjEuNTMtNDggNDgtNDggNDggMjEuNTMgNDggNDgtMjEuNTMgNDgtNDggNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5OS45OSAxNzZoLTU5Ljg3bC0xNi42NC00MS42QzQwNi4zOCA5MS42MyAzNjUuNTcgNjQgMzE5LjUgNjRoLTEyN2MtNDYuMDYgMC04Ni44OCAyNy42My0xMDMuOTkgNzAuNEw3MS44NyAxNzZIMTIuMDFDNC4yIDE3Ni0xLjUzIDE4My4zNC4zNyAxOTAuOTFsNiAyNEM3LjcgMjIwLjI1IDEyLjUgMjI0IDE4LjAxIDIyNGgyMC4wN0MyNC42NSAyMzUuNzMgMTYgMjUyLjc4IDE2IDI3MnY0OGMwIDE2LjEyIDYuMTYgMzAuNjcgMTYgNDEuOTNWNDE2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMjU2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNTQuMDdjOS44NC0xMS4yNSAxNi0yNS44IDE2LTQxLjkzdi00OGMwLTE5LjIyLTguNjUtMzYuMjctMjIuMDctNDhINDk0YzUuNTEgMCAxMC4zMS0zLjc1IDExLjY0LTkuMDlsNi0yNGMxLjg5LTcuNTctMy44NC0xNC45MS0xMS42NS0xNC45MXptLTM1Mi4wNi0xNy44M2M3LjI5LTE4LjIyIDI0Ljk0LTMwLjE3IDQ0LjU3LTMwLjE3aDEyN2MxOS42MyAwIDM3LjI4IDExLjk1IDQ0LjU3IDMwLjE3TDM4NCAyMDhIMTI4bDE5LjkzLTQ5Ljgzek05NiAzMTkuOGMtMTkuMiAwLTMyLTEyLjc2LTMyLTMxLjlTNzYuOCAyNTYgOTYgMjU2czQ4IDI4LjcxIDQ4IDQ3Ljg1LTI4LjggMTUuOTUtNDggMTUuOTV6bTMyMCAwYy0xOS4yIDAtNDggMy4xOS00OC0xNS45NVMzOTYuOCAyNTYgNDE2IDI1NnMzMiAxMi43NiAzMiAzMS45LTEyLjggMzEuOS0zMiAzMS45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmF2YW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2LDIwOGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCw0MTYsMjA4Wk02MjQsMzIwSDU3NlYxNjBBMTYwLDE2MCwwLDAsMCw0MTYsMEg2NEE2NCw2NCwwLDAsMCwwLDY0VjMyMGE2NCw2NCwwLDAsMCw2NCw2NEg5NmE5Niw5NiwwLDAsMCwxOTIsMEg2MjRhMTYsMTYsMCwwLDAsMTYtMTZWMzM2QTE2LDE2LDAsMCwwLDYyNCwzMjBaTTE5Miw0MzJhNDgsNDgsMCwxLDEsNDgtNDhBNDguMDUsNDguMDUsMCwwLDEsMTkyLDQzMlptNjQtMjQwYTMyLDMyLDAsMCwxLTMyLDMySDk2YTMyLDMyLDAsMCwxLTMyLTMyVjEyOEEzMiwzMiwwLDAsMSw5Niw5NkgyMjRhMzIsMzIsMCwwLDEsMzIsMzJaTTQ0OCwzMjBIMzIwVjEyOGEzMiwzMiwwLDAsMSwzMi0zMmg2NGEzMiwzMiwwLDAsMSwzMiwzMlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEuMyAxOTJoMjU3LjNjMTcuOCAwIDI2LjcgMjEuNSAxNC4xIDM0LjFMMTc0LjEgMzU0LjhjLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwTDE3LjIgMjI2LjFDNC42IDIxMy41IDEzLjUgMTkyIDMxLjMgMTkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTI3LjMzOHYyNTcuMzI0YzAgMTcuODE4LTIxLjU0MyAyNi43NDEtMzQuMTQyIDE0LjE0MkwyOS4xOTYgMjcwLjE0MmMtNy44MS03LjgxLTcuODEtMjAuNDc0IDAtMjguMjg0bDEyOC42NjItMTI4LjY2MmMxMi41OTktMTIuNiAzNC4xNDItMy42NzYgMzQuMTQyIDE0LjE0MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzg0LjY2MlYxMjcuMzM4YzAtMTcuODE4IDIxLjU0My0yNi43NDEgMzQuMTQyLTE0LjE0MmwxMjguNjYyIDEyOC42NjJjNy44MSA3LjgxIDcuODEgMjAuNDc0IDAgMjguMjg0TDM0LjE0MiAzOTguODA0QzIxLjU0MyA0MTEuNDA0IDAgNDAyLjQ4IDAgMzg0LjY2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFNxdWFyZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek05Mi41IDIyMC41bDEyMyAxMjNjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDEyMy0xMjNjNy42LTcuNiAyLjItMjAuNS04LjUtMjAuNUgxMDFjLTEwLjcgMC0xNi4xIDEyLjktOC41IDIwLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRTcXVhcmVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMjU5LjUxNSAxMjQuNDg1bC0xMjMuMDMgMTIzLjAzYy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMTIzLjAyOSAxMjMuMDI5YzcuNTYgNy41NiAyMC40ODUgMi4yMDYgMjAuNDg1LTguNDg1VjEzMi45NzFjLjAwMS0xMC42OTEtMTIuOTI1LTE2LjA0NS0yMC40ODQtOC40ODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRTcXVhcmVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAzMmgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4em0xNDAuNDg1IDM1NS41MTVsMTIzLjAyOS0xMjMuMDI5YzQuNjg2LTQuNjg2IDQuNjg2LTEyLjI4NCAwLTE2Ljk3MWwtMTIzLjAyOS0xMjMuMDNjLTcuNTYtNy41Ni0yMC40ODUtMi4yMDYtMjAuNDg1IDguNDg1djI0Ni4wNTljMCAxMC42OTEgMTIuOTI2IDE2LjA0NSAyMC40ODUgOC40ODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRTcXVhcmVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQzMlY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4em0zNTUuNTE1LTE0MC40ODVsLTEyMy4wMy0xMjMuMDNjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw5Mi40ODUgMjkxLjUxNWMtNy41NiA3LjU2LTIuMjA2IDIwLjQ4NSA4LjQ4NSAyMC40ODVoMjQ2LjA1OWMxMC42OTEgMCAxNi4wNDUtMTIuOTI2IDguNDg2LTIwLjQ4NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OC42NjIgMzUySDMxLjMzOGMtMTcuODE4IDAtMjYuNzQxLTIxLjU0My0xNC4xNDItMzQuMTQybDEyOC42NjItMTI4LjY2MmM3LjgxLTcuODEgMjAuNDc0LTcuODEgMjguMjg0IDBsMTI4LjY2MiAxMjguNjYyYzEyLjYgMTIuNTk5IDMuNjc2IDM0LjE0Mi0xNC4xNDIgMzQuMTQyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnJvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTguMiAxNTYuNmMtNTIuNy0yNS43LTExNC41LTEwLjUtMTUwLjIgMzIuOGw1NS4yIDU1LjJjNi4zIDYuMyA2LjMgMTYuNCAwIDIyLjYtMy4xIDMuMS03LjIgNC43LTExLjMgNC43cy04LjItMS42LTExLjMtNC43TDEzMC40IDIxNyAyLjMgNDc5LjdjLTIuOSA2LTMuMSAxMy4zIDAgMTkuNyA1LjQgMTEuMSAxOC45IDE1LjcgMzAgMTAuM2wxMzMuNi02NS4yLTQ5LjItNDkuMmMtNi4zLTYuMi02LjMtMTYuNCAwLTIyLjYgNi4zLTYuMiAxNi40LTYuMiAyMi42IDBsNTcgNTcgMTAyLTQ5LjhjMjQtMTEuNyA0NC41LTMxLjMgNTcuMS01Ny4xIDMwLjEtNjEuNyA0LjUtMTM2LjEtNTcuMi0xNjYuMnptOTIuMS0zNC45QzQwOS44IDgxIDM5OS43IDMyLjkgMzYwIDBjLTUwLjMgNDEuNy01Mi41IDEwNy41LTcuOSAxNTEuOWw4IDhjNDQuNCA0NC42IDExMC4zIDQyLjQgMTUxLjktNy45LTMyLjktMzkuNy04MS00OS44LTEyMS43LTMwLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydEFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQuNzE3IDMyMEgyMTEuNTcybDYuNTQ1IDMyaDI2OC40MThjMTUuNDAxIDAgMjYuODE2IDE0LjMwMSAyMy40MDMgMjkuMzE5bC01LjUxNyAyNC4yNzZDNTIzLjExMiA0MTQuNjY4IDUzNiA0MzMuODI4IDUzNiA0NTZjMCAzMS4yMDItMjUuNTE5IDU2LjQ0NC01Ni44MjQgNTUuOTk0LTI5LjgyMy0uNDI5LTU0LjM1LTI0LjYzMS01NS4xNTUtNTQuNDQ3LS40NC0xNi4yODcgNi4wODUtMzEuMDQ5IDE2LjgwMy00MS41NDhIMjMxLjE3NkMyNDEuNTUzIDQyNi4xNjUgMjQ4IDQ0MC4zMjYgMjQ4IDQ1NmMwIDMxLjgxMy0yNi41MjggNTcuNDMxLTU4LjY3IDU1LjkzOC0yOC41NC0xLjMyNS01MS43NTEtMjQuMzg1LTUzLjI1MS01Mi45MTctMS4xNTgtMjIuMDM0IDEwLjQzNi00MS40NTUgMjguMDUxLTUxLjU4Nkw5My44ODMgNjRIMjRDMTAuNzQ1IDY0IDAgNTMuMjU1IDAgNDBWMjRDMCAxMC43NDUgMTAuNzQ1IDAgMjQgMGgxMDIuNTI5YzExLjQwMSAwIDIxLjIyOCA4LjAyMSAyMy41MTMgMTkuMTlMMTU5LjIwOCA2NEg1NTEuOTljMTUuNDAxIDAgMjYuODE2IDE0LjMwMSAyMy40MDMgMjkuMzE5bC00Ny4yNzMgMjA4QzUyNS42MzcgMzEyLjI0NiA1MTUuOTIzIDMyMCA1MDQuNzE3IDMyMHpNNDAzLjAyOSAxOTJIMzYwdi02MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY2MGgtNDMuMDI5Yy0xMC42OTEgMC0xNi4wNDUgMTIuOTI2LTguNDg1IDIwLjQ4NWw2Ny4wMjkgNjcuMDI5YzQuNjg2IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NzEgMGw2Ny4wMjktNjcuMDI5YzcuNTU5LTcuNTU5IDIuMjA1LTIwLjQ4NS04LjQ4Ni0yMC40ODV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydFBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0LjcxNyAzMjBIMjExLjU3Mmw2LjU0NSAzMmgyNjguNDE4YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNS41MTcgMjQuMjc2QzUyMy4xMTIgNDE0LjY2OCA1MzYgNDMzLjgyOCA1MzYgNDU2YzAgMzEuMjAyLTI1LjUxOSA1Ni40NDQtNTYuODI0IDU1Ljk5NC0yOS44MjMtLjQyOS01NC4zNS0yNC42MzEtNTUuMTU1LTU0LjQ0Ny0uNDQtMTYuMjg3IDYuMDg1LTMxLjA0OSAxNi44MDMtNDEuNTQ4SDIzMS4xNzZDMjQxLjU1MyA0MjYuMTY1IDI0OCA0NDAuMzI2IDI0OCA0NTZjMCAzMS44MTMtMjYuNTI4IDU3LjQzMS01OC42NyA1NS45MzgtMjguNTQtMS4zMjUtNTEuNzUxLTI0LjM4NS01My4yNTEtNTIuOTE3LTEuMTU4LTIyLjAzNCAxMC40MzYtNDEuNDU1IDI4LjA1MS01MS41ODZMOTMuODgzIDY0SDI0QzEwLjc0NSA2NCAwIDUzLjI1NSAwIDQwVjI0QzAgMTAuNzQ1IDEwLjc0NSAwIDI0IDBoMTAyLjUyOWMxMS40MDEgMCAyMS4yMjggOC4wMjEgMjMuNTEzIDE5LjE5TDE1OS4yMDggNjRINTUxLjk5YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNDcuMjczIDIwOEM1MjUuNjM3IDMxMi4yNDYgNTE1LjkyMyAzMjAgNTA0LjcxNyAzMjB6TTQwOCAxNjhoLTQ4di00MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2aC0xNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGgtNDhjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2MTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg0OHY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDE2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTQwaDQ4YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTE2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FzaFJlZ2lzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS4xIDM3OC44bC0yNi43LTE2MGMtMi42LTE1LjQtMTUuOS0yNi43LTMxLjYtMjYuN0gyMDh2LTY0aDk2YzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoOTZ2NjRINTkuMWMtMTUuNiAwLTI5IDExLjMtMzEuNiAyNi43TC44IDM3OC43Yy0uNiAzLjUtLjkgNy0uOSAxMC41VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTkwLjdjLjEtMy41LS4yLTctLjgtMTAuNXpNMjgwIDI0OGMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZ6bS0zMiA2NGgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bS0zMi04MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZ6TTgwIDgwVjQ4aDE5MnYzMkg4MHptNDAgMjAwaC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNnptMTYgNjR2LTE2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2em0yMTYgMTEyYzAgNC40LTMuNiA4LTggOEgxNjhjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE3NmM0LjQgMCA4IDMuNiA4IDh2MTZ6bTI0LTExMmMwIDguOC03LjIgMTYtMTYgMTZoLTE2Yy04LjggMC0xNi03LjItMTYtMTZ2LTE2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZ6bTQ4LTgwYzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjU5IDE5MmMtMjAuMTggMC0xMDYuODIgMS45OC0xNjIuNTkgODUuOTVWMTkyYzAtNTIuOTQtNDMuMDYtOTYtOTYtOTYtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMmMxNy42NCAwIDMyIDE0LjM2IDMyIDMydjI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGgxNzZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTMybDEyOC05NnYxNDRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg5Ljg2Yy0xMC4yOSAyLjY3LTIwLjg5IDQuNTQtMzIgNC41NC02MS44MSAwLTExMy41Mi00NC4wNS0xMjUuNDEtMTAyLjR6TTQ0OCA5NmgtNjRsLTY0LTY0djEzNC40YzAgNTMuMDIgNDIuOTggOTYgOTYgOTZzOTYtNDIuOTggOTYtOTZWMzJsLTY0IDY0em0tNzIgODBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2em04MCAwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZXJ0aWZpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTguNjIyIDI1NS45Mmw0NS45ODUtNDUuMDA1YzEzLjcwOC0xMi45NzcgNy4zMTYtMzYuMDM5LTEwLjY2NC00MC4zMzlsLTYyLjY1LTE1Ljk5IDE3LjY2MS02Mi4wMTVjNC45OTEtMTcuODM4LTExLjgyOS0zNC42NjMtMjkuNjYxLTI5LjY3MWwtNjEuOTk0IDE3LjY2Ny0xNS45ODQtNjIuNjcxQzMzNy4wODUuMTk3IDMxMy43NjUtNi4yNzYgMzAwLjk5IDcuMjI4TDI1NiA1My41NyAyMTEuMDExIDcuMjI5Yy0xMi42My0xMy4zNTEtMzYuMDQ3LTcuMjM0LTQwLjMyNSAxMC42NjhsLTE1Ljk4NCA2Mi42NzEtNjEuOTk1LTE3LjY2N0M3NC44NyA1Ny45MDcgNTguMDU2IDc0LjczOCA2My4wNDYgOTIuNTcybDE3LjY2MSA2Mi4wMTUtNjIuNjUgMTUuOTlDLjA2OSAxNzQuODc4LTYuMzEgMTk3Ljk0NCA3LjM5MiAyMTAuOTE1bDQ1Ljk4NSA0NS4wMDUtNDUuOTg1IDQ1LjAwNGMtMTMuNzA4IDEyLjk3Ny03LjMxNiAzNi4wMzkgMTAuNjY0IDQwLjMzOWw2Mi42NSAxNS45OS0xNy42NjEgNjIuMDE1Yy00Ljk5MSAxNy44MzggMTEuODI5IDM0LjY2MyAyOS42NjEgMjkuNjcxbDYxLjk5NC0xNy42NjcgMTUuOTg0IDYyLjY3MWM0LjQzOSAxOC41NzUgMjcuNjk2IDI0LjAxOCA0MC4zMjUgMTAuNjY4TDI1NiA0NTguNjFsNDQuOTg5IDQ2LjAwMWMxMi41IDEzLjQ4OCAzNS45ODcgNy40ODYgNDAuMzI1LTEwLjY2OGwxNS45ODQtNjIuNjcxIDYxLjk5NCAxNy42NjdjMTcuODM2IDQuOTk0IDM0LjY1MS0xMS44MzcgMjkuNjYxLTI5LjY3MWwtMTcuNjYxLTYyLjAxNSA2Mi42NS0xNS45OWMxNy45ODctNC4zMDIgMjQuMzY2LTI3LjM2NyAxMC42NjQtNDAuMzM5bC00NS45ODQtNDUuMDA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAxMjhjMC0yOS41IDE2LjItNTUgNDAtNjguOVYyNTZoNDhWNDhoNDh2MjA4aDQ4VjU5LjFjMjMuOCAxMy45IDQwIDM5LjQgNDAgNjguOXYxMjhoNDhWMTI4QzM4NCA1Ny4zIDMyNi43IDAgMjU2IDBoLTY0QzEyMS4zIDAgNjQgNTcuMyA2NCAxMjh2MTI4aDQ4em0zMzQuMyAyMTMuOWwtMTAuNy0zMmMtNC40LTEzLjEtMTYuNi0yMS45LTMwLjQtMjEuOUg0Mi43Yy0xMy44IDAtMjYgOC44LTMwLjQgMjEuOWwtMTAuNyAzMkMtNS4yIDM2Mi42IDEwLjIgMzg0IDMyIDM4NHYxMTJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzODRoMjU2djExMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjM4NGMyMS44IDAgMzcuMi0yMS40IDMwLjMtNDIuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFsa2JvYXJkVGVhY2hlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMzUyYy0yLjM5IDAtNC43OC4zNS03LjA2IDEuMDlDMTg3Ljk4IDM1Ny4zIDE3NC4zNSAzNjAgMTYwIDM2MGMtMTQuMzUgMC0yNy45OC0yLjctNDAuOTUtNi45MS0yLjI4LS43NC00LjY2LTEuMDktNy4wNS0xLjA5QzQ5Ljk0IDM1Mi0uMzMgNDAyLjQ4IDAgNDY0LjYyLjE0IDQ5MC44OCAyMS43MyA1MTIgNDggNTEyaDIyNGMyNi4yNyAwIDQ3Ljg2LTIxLjEyIDQ4LTQ3LjM4LjMzLTYyLjE0LTQ5Ljk0LTExMi42Mi0xMTItMTEyLjYyem0tNDgtMzJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NnMtNDIuOTgtOTYtOTYtOTYtOTYgNDIuOTgtOTYgOTYgNDIuOTggOTYgOTYgOTZ6TTU5MiAwSDIwOGMtMjYuNDcgMC00OCAyMi4yNS00OCA0OS41OVY5NmMyMy40MiAwIDQ1LjEgNi43OCA2NCAxNy44VjY0aDM1MnYyODhoLTY0di02NEgzODR2NjRoLTc2LjI0YzE5LjEgMTYuNjkgMzMuMTIgMzguNzMgMzkuNjkgNjRINTkyYzI2LjQ3IDAgNDgtMjIuMjUgNDgtNDkuNTlWNDkuNTlDNjQwIDIyLjI1IDYxOC40NyAwIDU5MiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWxrYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjRoNDQ4djM1Mmg2NFY0MGMwLTIyLjA2LTE3Ljk0LTQwLTQwLTQwSDcyQzQ5Ljk0IDAgMzIgMTcuOTQgMzIgNDB2Mzc2aDY0VjY0em01MjggMzg0SDQ4MHYtNjRIMjg4djY0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJnaW5nU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0yMDgtMzIwVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2cy0xNiA3LjE2LTE2IDE2djQ4aC0zMlY4MGMwLTguODQtNy4xNi0xNi0xNi0xNnMtMTYgNy4xNi0xNiAxNnY0OGgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgMzUuNzYgMjMuNjIgNjUuNjkgNTYgNzUuOTN2MTE4LjQ5YzAgMTMuOTUtOS41IDI2LjkyLTIzLjI2IDI5LjE5QzQzMS4yMiA0MDIuNSA0MTYgMzg4Ljk5IDQxNiAzNzJ2LTI4YzAtNDguNi0zOS40LTg4LTg4LTg4aC04VjY0YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRIOTZDNjAuNjUgMCAzMiAyOC42NSAzMiA2NHYzNTJoMjg4VjMwNGg4YzIyLjA5IDAgNDAgMTcuOTEgNDAgNDB2MjQuNjFjMCAzOS42NyAyOC45MiA3NS4xNiA2OC40MSA3OS4wMUM0ODEuNzEgNDUyLjA1IDUyMCA0MTYuNDEgNTIwIDM3MlYyNTEuOTNjMzIuMzgtMTAuMjQgNTYtNDAuMTcgNTYtNzUuOTN2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNnptLTI4My45MSA0Ny43NmwtOTMuNyAxMzljLTIuMiAzLjMzLTYuMjEgNS4yNC0xMC4zOSA1LjI0LTcuNjcgMC0xMy40Ny02LjI4LTExLjY3LTEyLjkyTDE2Ny4zNSAyMjRIMTA4Yy03LjI1IDAtMTIuODUtNS41OS0xMS44OS0xMS44OWwxNi0xMDdDMTEyLjkgOTkuOSAxMTcuOTggOTYgMTI0IDk2aDY4YzcuODggMCAxMy42MiA2LjU0IDExLjYgMTMuMjFMMTkyIDE2MGg1Ny43YzkuMjQgMCAxNS4wMSA4Ljc4IDEwLjM5IDE1Ljc2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0QXJlYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAgMzg0YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMlY3NmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjMwOGg0MzZ6TTM3Mi43IDE1OS41TDI4OCAyMTZsLTg1LjMtMTEzLjdjLTUuMS02LjgtMTUuNS02LjMtMTkuOSAxTDk2IDI0OHYxMDRoMzg0bC04OS45LTE4Ny44Yy0zLjItNi41LTExLjQtOC43LTE3LjQtNC43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMi44IDMyMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFYxNzIuOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYxMzQuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6bTk2IDBoMzguNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjhWNzYuOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYyMzAuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6bS0yODggMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOHYtNzAuNGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHY3MC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptOTYgMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFYxMDguOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYxOTguNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6TTQ5NiAzODRINjRWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MzM2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDY0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydExpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDM4NEg2NFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYzMzZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00NjQgOTZIMzQ1Ljk0Yy0yMS4zOCAwLTMyLjA5IDI1Ljg1LTE2Ljk3IDQwLjk3bDMyLjQgMzIuNEwyODggMjQyLjc1bC03My4zNy03My4zN2MtMTIuNS0xMi41LTMyLjc2LTEyLjUtNDUuMjUgMGwtNjguNjkgNjguNjljLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMEwxOTIgMjM3LjI1bDczLjM3IDczLjM3YzEyLjUgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDBsOTYtOTYgMzIuNCAzMi40YzE1LjEyIDE1LjEyIDQwLjk3IDQuNDEgNDAuOTctMTYuOTdWMTEyYy4wMS04Ljg0LTcuMTUtMTYtMTUuOTktMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRQaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU0NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI3Ljc5IDI4OEgyOTAuNWwxNTguMDMgMTU4LjAzYzYuMDQgNi4wNCAxNS45OCA2LjUzIDIyLjE5LjY4IDM4LjctMzYuNDYgNjUuMzItODUuNjEgNzMuMTMtMTQwLjg2IDEuMzQtOS40Ni02LjUxLTE3Ljg1LTE2LjA2LTE3Ljg1em0tMTUuODMtNjQuOEM1MDMuNzIgMTAzLjc0IDQwOC4yNiA4LjI4IDI4OC44LjA0IDI3OS42OC0uNTkgMjcyIDcuMSAyNzIgMTYuMjRWMjQwaDIyMy43N2M5LjE0IDAgMTYuODItNy42OCAxNi4xOS0xNi44ek0yMjQgMjg4VjUwLjcxYzAtOS41NS04LjM5LTE3LjQtMTcuODQtMTYuMDZDODYuOTkgNTEuNDktNC4xIDE1NS42LjE0IDI4MC4zNyA0LjUgNDA4LjUxIDExNC44MyA1MTMuNTkgMjQzLjAzIDUxMS45OGM1MC40LS42MyA5Ni45Ny0xNi44NyAxMzUuMjYtNDQuMDMgNy45LTUuNiA4LjQyLTE3LjIzIDEuNTctMjQuMDhMMjI0IDI4OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHpNMjI3LjMxNCAzODcuMzE0bDE4NC0xODRjNi4yNDgtNi4yNDggNi4yNDgtMTYuMzc5IDAtMjIuNjI3bC0yMi42MjctMjIuNjI3Yy02LjI0OC02LjI0OS0xNi4zNzktNi4yNDktMjIuNjI4IDBMMjE2IDMwOC4xMThsLTcwLjA1OS03MC4wNTljLTYuMjQ4LTYuMjQ4LTE2LjM3OS02LjI0OC0yMi42MjggMGwtMjIuNjI3IDIyLjYyN2MtNi4yNDggNi4yNDgtNi4yNDggMTYuMzc5IDAgMjIuNjI3bDEwNCAxMDRjNi4yNDkgNi4yNDkgMTYuMzc5IDYuMjQ5IDIyLjYyOC4wMDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlY2tEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1IDE3NC44bC0zOS42LTM5LjZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE5MiAzNzQuNyA4MC42IDI2My4yYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMwMi45Yy05LjQgOS40LTkuNCAyNC42IDAgMzRMMTc1IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyOTYtMjk2LjJjOS40LTkuNSA5LjQtMjQuNy4xLTM0em0tMzI0LjMgMTA2YzYuMiA2LjMgMTYuNCA2LjMgMjIuNiAwbDIwOC0yMDguMmM2LjItNi4zIDYuMi0xNi40IDAtMjIuNkwzNjYuMSA0LjdjLTYuMi02LjMtMTYuNC02LjMtMjIuNiAwTDE5MiAxNTYuMmwtNTUuNC01NS41Yy02LjItNi4zLTE2LjQtNi4zLTIyLjYgMEw2OC43IDE0NmMtNi4yIDYuMy02LjIgMTYuNCAwIDIyLjZsMTEyIDExMi4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OHptLTIwNC42ODYtOTguMDU5bDE4NC0xODRjNi4yNDgtNi4yNDggNi4yNDgtMTYuMzc5IDAtMjIuNjI3bC0yMi42MjctMjIuNjI3Yy02LjI0OC02LjI0OC0xNi4zNzktNi4yNDktMjIuNjI4IDBMMTg0IDMwMi43NDVsLTcwLjA1OS03MC4wNTljLTYuMjQ4LTYuMjQ4LTE2LjM3OS02LjI0OC0yMi42MjggMGwtMjIuNjI3IDIyLjYyN2MtNi4yNDggNi4yNDgtNi4yNDggMTYuMzc5IDAgMjIuNjI3bDEwNCAxMDRjNi4yNDkgNi4yNSAxNi4zNzkgNi4yNSAyMi42MjguMDAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI4OHYxNjBhMzIgMzIgMCAwIDAgMzIgMzJoNDQ4YTMyIDMyIDAgMCAwIDMyLTMyVjI4OHpNMjk5LjgzIDMyYTMyIDMyIDAgMCAwLTIxLjEzIDdMMCAyNTZoNTEyYzAtMTE5Ljg5LTk0LTIxNy44LTIxMi4xNy0yMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NCaXNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyODcuODhjMCA1MS42NCAyMi4xNCA3My44MyA1NiA4NC42VjQxNmgxOTJ2LTQzLjUyYzMzLjg2LTEwLjc3IDU2LTMzIDU2LTg0LjYgMC0zMC42MS0xMC43My02Ny4xLTI2LjY5LTEwMi41NkwxODUgMjg1LjY1YTggOCAwIDAgMS0xMS4zMSAwbC0xMS4zMS0xMS4zMWE4IDggMCAwIDEgMC0xMS4zMUwyNzAuMjcgMTU1LjFjLTIwLjgtMzcuOTEtNDYuNDctNzIuMS03MC44Ny05Mi41OUMyMTMuNCA1OS4wOSAyMjQgNDcuMDUgMjI0IDMyYTMyIDMyIDAgMCAwLTMyLTMyaC02NGEzMiAzMiAwIDAgMC0zMiAzMmMwIDE1IDEwLjYgMjcuMDkgMjQuNiAzMC41MUM2Ny44MSAxMDYuOCA4IDIxNC41IDggMjg3Ljg4ek0zMDQgNDQ4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NCb2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuOS4yaC02NHY2NGg2NHpNMCA2NC4xN3Y2NGg2NHYtNjR6TTEyOCAuMkg2NHY2NGg2NHptNjQgMjU1Ljl2NjRoNjR2LTY0ek0wIDE5Mi4xMnY2NGg2NHYtNjR6TTM4My44NS4yaC02NHY2NGg2NHptMTI4IDBoLTY0djY0aDY0ek0xMjggMjU2LjFINjR2NjRoNjR6TTUxMS44IDQ0OHYtNjRoLTY0djY0em0wLTEyOHYtNjRoLTY0djY0ek0zODMuODUgNTEyaDY0di02NGgtNjR6bTEyOC0zMTkuODh2LTY0aC02NHY2NHpNMTI4IDUxMmg2NHYtNjRoLTY0ek0wIDUxMmg2NHYtNjRIMHptMjU1LjkgMGg2NHYtNjRoLTY0ek0wIDMyMC4wN3Y2NGg2NHYtNjR6bTMxOS44OC0xOTEuOTJ2LTY0aC02NHY2NHptLTY0IDEyOGg2NHYtNjRoLTY0em0tNjQgMTI4djY0aDY0di02NHptMTI4LTY0aDY0di02NGgtNjR6bTAtMTI3Ljk1aDY0di02NGgtNjR6bTAgMTkxLjkzdjY0aDY0di02NHpNNjQgMzg0LjA1djY0aDY0di02NHptMTI4LTI1NS45di02NGgtNjR2NjR6bTE5MS45MiAyNTUuOWg2NHYtNjRoLTY0em0tMTI4LTE5MS45M3YtNjRoLTY0djY0em0xMjgtMTI3Ljk1djY0aDY0di02NHptLTEyOCAyNTUuOXY2NGg2NHYtNjR6bS02NC0xMjcuOTVIMTI4djY0aDY0em0xOTEuOTIgNjRoNjR2LTY0aC02NHpNMTI4IDEyOC4xNUg2NHY2NGg2NHptMCAxOTEuOTJ2NjRoNjR2LTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzS2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNDQ4SDQ4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTE2LTI4OEgyNTZ2LTQ4aDQwYTggOCAwIDAgMCA4LThWNTZhOCA4IDAgMCAwLTgtOGgtNDBWOGE4IDggMCAwIDAtOC04aC00OGE4IDggMCAwIDAtOCA4djQwaC00MGE4IDggMCAwIDAtOCA4djQ4YTggOCAwIDAgMCA4IDhoNDB2NDhIMzJhMzIgMzIgMCAwIDAtMzAuNTIgNDEuNTRMNzQuNTYgNDE2aDI5OC44OGw3My4wOC0yMTQuNDZBMzIgMzIgMCAwIDAgNDE2IDE2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0tuaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyNzIuNDdsNDAuNjMgMTguMDZhMzIgMzIgMCAwIDAgMjQuODguNDdsMTIuNzgtNS4xMmEzMiAzMiAwIDAgMCAxOC43Ni0yMC41bDkuMjItMzAuNjVhMjQgMjQgMCAwIDEgMTIuNTUtMTUuNjVMMTU5Ljk0IDIwOHY1MC4zM2E0OCA0OCAwIDAgMS0yNi41MyA0Mi45NGwtNTcuMjIgMjguNjVBODAgODAgMCAwIDAgMzIgNDAxLjQ4VjQxNmgzMTkuODZWMjI0YzAtMTA2LTg1LjkyLTE5Mi0xOTEuOTItMTkySDEyQTEyIDEyIDAgMCAwIDAgNDRhMTYuOSAxNi45IDAgMCAwIDEuNzkgNy41OEwxNiA4MGwtOSA5YTI0IDI0IDAgMCAwLTcgMTd2MTM3LjIxYTMyIDMyIDAgMCAwIDE5IDI5LjI2ek01MiAxMjhhMjAgMjAgMCAxIDEtMjAgMjAgMjAgMjAgMCAwIDEgMjAtMjB6bTMxNiAzMjBIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzUyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc1Bhd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA1LjEgMjI0SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDE2djUuNDljMCA0NC00LjE0IDg2LjYtMjQgMTIyLjUxaDE3NmMtMTkuODktMzUuOTEtMjQtNzguNTEtMjQtMTIyLjUxVjI4OGgxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTI1LjFjMjkuMzktMTguMzggNDkuMS01MC43OCA0OS4xLTg4YTEwNCAxMDQgMCAwIDAtMjA4IDBjMCAzNy4yMiAxOS43MSA2OS42MiA0OS4xIDg4ek0zMDQgNDQ4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NRdWVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMTEyYTU2IDU2IDAgMSAwLTU2LTU2IDU2IDU2IDAgMCAwIDU2IDU2em0xNzYgMzM2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTcyLjg3LTI2My44NGwtMjguNTEtMTUuOTJjLTcuNDQtNS0xNi45MS0yLjQ2LTIyLjI5IDQuNjhhNDcuNTkgNDcuNTkgMCAwIDEtNDcuMjMgMTguMjNDMzgzLjcgMTg2Ljg2IDM2OCAxNjQuOTMgMzY4IDE0MS40YTEzLjQgMTMuNCAwIDAgMC0xMy40LTEzLjRoLTM4Ljc3Yy02IDAtMTEuNjEgNC0xMi44NiA5LjkxYTQ4IDQ4IDAgMCAxLTkzLjk0IDBjLTEuMjUtNS45Mi02LjgyLTkuOTEtMTIuODYtOS45MUgxNTcuNGExMy40IDEzLjQgMCAwIDAtMTMuNCAxMy40YzAgMjUuNjktMTkgNDguNzUtNDQuNjcgNTAuNDlhNDcuNSA0Ny41IDAgMCAxLTQxLjU0LTE5LjE1Yy01LjI4LTcuMDktMTQuNzMtOS40NS0yMi4wOS00LjU0bC0yOC41NyAxNmExNiAxNiAwIDAgMC01LjQ0IDIwLjQ3TDEwNC4yNCA0MTZoMzAzLjUybDEwMi41NS0yMTEuMzdhMTYgMTYgMCAwIDAtNS40NC0yMC40N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc1Jvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDMyaC01NmExNiAxNiAwIDAgMC0xNiAxNnY0OGgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTgwYTE2IDE2IDAgMCAwLTE2IDE2djQ4SDg4LjFWNDhhMTYgMTYgMCAwIDAtMTYtMTZIMTZBMTYgMTYgMCAwIDAgMCA0OHYxNzZsNjQgMzJjMCA0OC4zMy0xLjU0IDk1LTEzLjIxIDE2MGgyODIuNDJDMzIxLjU0IDM1MSAzMjAgMzAzLjcyIDMyMCAyNTZsNjQtMzJWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6TTIyNCAzMjBoLTY0di02NGEzMiAzMiAwIDAgMSA2NCAwem0xNDQgMTI4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzQgMjA4SDY0YTE2IDE2IDAgMCAwLTE2IDE2djE2YTE2IDE2IDAgMCAwIDE2IDE2aDE1Ljk0QTUzNS43OCA1MzUuNzggMCAwIDEgNjQgMzg0aDEyOGE1MzUuNzggNTM1Ljc4IDAgMCAxLTE1Ljk0LTEyOEgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTE2YTE2IDE2IDAgMCAwLTE2LTE2aC0xMGwzMy44OS05MC4zOGExNiAxNiAwIDAgMC0xNS0yMS42MkgxNDRWNjRoMjRhOCA4IDAgMCAwIDgtOFY0MGE4IDggMCAwIDAtOC04aC0yNFY4YTggOCAwIDAgMC04LThoLTE2YTggOCAwIDAgMC04IDh2MjRIODhhOCA4IDAgMCAwLTggOHYxNmE4IDggMCAwIDAgOCA4aDI0djMySDU1LjA5YTE2IDE2IDAgMCAwLTE1IDIxLjYyem0xNzMuMTYgMjUxLjU4TDIyNCA0NDh2LTE2YTE2IDE2IDAgMCAwLTE2LTE2SDQ4YTE2IDE2IDAgMCAwLTE2IDE2djE2TDguODUgNDU5LjU4QTE2IDE2IDAgMCAwIDAgNDczLjg5VjQ5NmExNiAxNiAwIDAgMCAxNiAxNmgyMjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTIyLjExYTE2IDE2IDAgMCAwLTguODQtMTQuMzF6bTkyLjc3LTE1Ny43OGwtMy4yOSA4Mi4yaDEyNi43MmwtMy4yOS04Mi4yMSAyNC42LTIwLjc5QTMyIDMyIDAgMCAwIDQ5NiAyNTYuNTRWMTk4YTYgNiAwIDAgMC02LTZoLTI2LjM4YTYgNiAwIDAgMC02IDZ2MjZoLTI0Ljcxdi0yNmE2IDYgMCAwIDAtNi02SDM3My4xYTYgNiAwIDAgMC02IDZ2MjZoLTI0Ljcxdi0yNmE2IDYgMCAwIDAtNi02SDMxMGE2IDYgMCAwIDAtNiA2djU4LjZhMzIgMzIgMCAwIDAgMTEuMzYgMjQuNHpNMzg0IDMwNGExNiAxNiAwIDAgMSAzMiAwdjMyaC0zMnptMTE5LjE2IDE1NS41OEw0ODAgNDQ4di0xNmExNiAxNiAwIDAgMC0xNi0xNkgzMzZhMTYgMTYgMCAwIDAtMTYgMTZ2MTZsLTIzLjE1IDExLjU4YTE2IDE2IDAgMCAwLTguODUgMTQuMzFWNDk2YTE2IDE2IDAgMCAwIDE2IDE2aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMjIuMTFhMTYgMTYgMCAwIDAtOC44NC0xNC4zMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uQ2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6TTI3MyAzNjkuOWwxMzUuNS0xMzUuNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTctMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDI1NiAyODUuMSAxNTQuNCAxODMuNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTE3IDE3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOUwyMzkgMzY5LjljOS40IDkuNCAyNC42IDkuNCAzNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXZyb25DaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4ek0xNDIuMSAyNzNsMTM1LjUgMTM1LjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMTctMTdjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMjI2LjkgMjU2bDEwMS42LTEwMS42YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0xNy0xN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTQyLjEgMjM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkNpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4YzEzNyAwIDI0OCAxMTEgMjQ4IDI0OFMzOTMgNTA0IDI1NiA1MDQgOCAzOTMgOCAyNTYgMTE5IDggMjU2IDh6bTExMy45IDIzMUwyMzQuNCAxMDMuNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTE3IDE3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOUwyODUuMSAyNTYgMTgzLjUgMzU3LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDE3IDE3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDM2OS45IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkNpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjU2QzggMTE5IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTZ6bTIzMS0xMTMuOUwxMDMuNSAyNzcuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTcgMTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMjU2IDIyNi45bDEwMS42IDEwMS42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDE3LTE3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDI3MyAxNDIuMWMtOS40LTkuNC0yNC42LTkuNC0zNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXZyb25Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNy4wMjkgMzgxLjQ3NkwxMi42ODYgMTg3LjEzMmMtOS4zNzMtOS4zNzMtOS4zNzMtMjQuNTY5IDAtMzMuOTQxbDIyLjY2Ny0yMi42NjdjOS4zNTctOS4zNTcgMjQuNTIyLTkuMzc1IDMzLjkwMS0uMDRMMjI0IDI4NC41MDVsMTU0Ljc0NS0xNTQuMDIxYzkuMzc5LTkuMzM1IDI0LjU0NC05LjMxNyAzMy45MDEuMDRsMjIuNjY3IDIyLjY2N2M5LjM3MyA5LjM3MyA5LjM3MyAyNC41NjkgMCAzMy45NDFMMjQwLjk3MSAzODEuNDc2Yy05LjM3MyA5LjM3Mi0yNC41NjkgOS4zNzItMzMuOTQyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQuNTIgMjM5LjAzTDIyOC44NyA0NC42OWM5LjM3LTkuMzcgMjQuNTctOS4zNyAzMy45NCAwbDIyLjY3IDIyLjY3YzkuMzYgOS4zNiA5LjM3IDI0LjUyLjA0IDMzLjlMMTMxLjQ5IDI1NmwxNTQuMDIgMTU0Ljc1YzkuMzQgOS4zOCA5LjMyIDI0LjU0LS4wNCAzMy45bC0yMi42NyAyMi42N2MtOS4zNyA5LjM3LTI0LjU3IDkuMzctMzMuOTQgMEwzNC41MiAyNzIuOTdjLTkuMzctOS4zNy05LjM3LTI0LjU3IDAtMzMuOTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4NS40NzYgMjcyLjk3MUw5MS4xMzIgNDY3LjMxNGMtOS4zNzMgOS4zNzMtMjQuNTY5IDkuMzczLTMzLjk0MSAwbC0yMi42NjctMjIuNjY3Yy05LjM1Ny05LjM1Ny05LjM3NS0yNC41MjItLjA0LTMzLjkwMUwxODguNTA1IDI1NiAzNC40ODQgMTAxLjI1NWMtOS4zMzUtOS4zNzktOS4zMTctMjQuNTQ0LjA0LTMzLjkwMWwyMi42NjctMjIuNjY3YzkuMzczLTkuMzczIDI0LjU2OS05LjM3MyAzMy45NDEgMEwyODUuNDc1IDIzOS4wM2M5LjM3MyA5LjM3MiA5LjM3MyAyNC41NjguMDAxIDMzLjk0MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGV2cm9uVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjk3MSAxMzAuNTI0bDE5NC4zNDMgMTk0LjM0M2M5LjM3MyA5LjM3MyA5LjM3MyAyNC41NjkgMCAzMy45NDFsLTIyLjY2NyAyMi42NjdjLTkuMzU3IDkuMzU3LTI0LjUyMiA5LjM3NS0zMy45MDEuMDRMMjI0IDIyNy40OTUgNjkuMjU1IDM4MS41MTZjLTkuMzc5IDkuMzM1LTI0LjU0NCA5LjMxNy0zMy45MDEtLjA0bC0yMi42NjctMjIuNjY3Yy05LjM3My05LjM3My05LjM3My0yNC41NjkgMC0zMy45NDFMMjA3LjAzIDEzMC41MjVjOS4zNzItOS4zNzMgMjQuNTY4LTkuMzczIDMzLjk0MS0uMDAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoaWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMCA3MmMwLTM5Ljc2NSAzMi4yMzUtNzIgNzItNzJzNzIgMzIuMjM1IDcyIDcyYzAgMzkuNzY0LTMyLjIzNSA3Mi03MiA3MnMtNzItMzIuMjM2LTcyLTcyem0yNTQuNjI3IDEuMzczYy0xMi40OTYtMTIuNDk3LTMyLjc1OC0xMi40OTctNDUuMjU0IDBMMjQyLjc0NSAxNjBIMTQxLjI1NEw1NC42MjcgNzMuMzczYy0xMi40OTYtMTIuNDk3LTMyLjc1OC0xMi40OTctNDUuMjU0IDAtMTIuNDk3IDEyLjQ5Ny0xMi40OTcgMzIuNzU4IDAgNDUuMjU1TDEwNCAyMTMuMjU0VjQ4MGMwIDE3LjY3MyAxNC4zMjcgMzIgMzIgMzJoMTZjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMyVjM2OGgxNnYxMTJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyaDE2YzE3LjY3MyAwIDMyLTE0LjMyNyAzMi0zMlYyMTMuMjU0bDk0LjYyNy05NC42MjdjMTIuNDk3LTEyLjQ5NyAxMi40OTctMzIuNzU3IDAtNDUuMjU0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNodXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQuNDYgMjQ2LjY4TDM1MiAxNzkuMlYxMjhoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQ4VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OHY1MS4ybC0xMTIuNDYgNjcuNDhBMzEuOTk3IDMxLjk5NyAwIDAgMCAxNjAgMjc0LjEyVjUxMmg5NnYtOTZjMC0zNS4zNSAyOC42NS02NCA2NC02NHM2NCAyOC42NSA2NCA2NHY5Nmg5NlYyNzQuMTJjMC0xMS4yNC01LjktMjEuNjYtMTUuNTQtMjcuNDR6TTAgMzk1Ljk2VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxMTJWMzIwTDE5LjM5IDM2Ni41NEEzMi4wMjQgMzIuMDI0IDAgMCAwIDAgMzk1Ljk2em02MjAuNjEtMjkuNDJMNTEyIDMyMHYxOTJoMTEyYzguODQgMCAxNi03LjE2IDE2LTE2VjM5NS45NmMwLTEyLjgtNy42My0yNC4zNy0xOS4zOS0yOS40MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVOb3RjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzkuMDU2djE2LjY1OWMwIDEwLjgwNCA3LjI4MSAyMC4xNTkgMTcuNjg2IDIzLjA2NkMzODMuMjA0IDEwMC40MzQgNDQwIDE3MS41MTggNDQwIDI1NmMwIDEwMS42ODktODIuMjk1IDE4NC0xODQgMTg0LTEwMS42ODkgMC0xODQtODIuMjk1LTE4NC0xODQgMC04NC40NyA1Ni43ODYtMTU1LjU2NCAxMzQuMzEyLTE3Ny4yMTlDMjE2LjcxOSA3NS44NzQgMjI0IDY2LjUxNyAyMjQgNTUuNzEyVjM5LjA2NGMwLTE1LjcwOS0xNC44MzQtMjcuMTUzLTMwLjA0Ni0yMy4yMzRDODYuNjAzIDQzLjQ4MiA3LjM5NCAxNDEuMjA2IDguMDAzIDI1Ny4zMzJjLjcyIDEzNy4wNTIgMTExLjQ3NyAyNDYuOTU2IDI0OC41MzEgMjQ2LjY2N0MzOTMuMjU1IDUwMy43MTEgNTA0IDM5Mi43ODggNTA0IDI1NmMwLTExNS42MzMtNzkuMTQtMjEyLjc3OS0xODYuMjExLTI0MC4yMzZDMzAyLjY3OCAxMS44ODkgMjg4IDIzLjQ1NiAyODggMzkuMDU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjE2IDE5Mkg0ODBWMjRjMC0xMy4yNi0xMC43NC0yNC0yNC0yNEgzMTJjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2NzJoLTY0VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2ODBoLTY0VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDgwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY4MEgyNGMtMTMuMjYgMC0yNCAxMC43NC0yNCAyNHYzNjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYyMTZjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpNMTI4IDQwNGMwIDYuNjMtNS4zNyAxMi0xMiAxMkg3NmMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEySDc2Yy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJINzZjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMTI4IDE5MmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMTYwIDk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJWNzZjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTE2MCAyODhjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xpbmljTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTE1TDY5LjQ3IDMwNy43MWMtMS42MiAxLjQ2LTMuNjkgMi4xNC01LjQ3IDMuMzVWNDk2YTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlYzMTEuMWMtMS43LTEuMTYtMy43Mi0xLjgyLTUuMjYtMy4yem05NiAyNjFhOCA4IDAgMCAxLTggOGgtNTZ2NTZhOCA4IDAgMCAxLTggOGgtNDhhOCA4IDAgMCAxLTgtOHYtNTZoLTU2YTggOCAwIDAgMS04LTh2LTQ4YTggOCAwIDAgMSA4LThoNTZ2LTU2YTggOCAwIDAgMSA4LThoNDhhOCA4IDAgMCAxIDggOHY1Nmg1NmE4IDggMCAwIDEgOCA4em0xODYuNjktMTM5LjcybC0yNTUuOTQtMjI2YTM5Ljg1IDM5Ljg1IDAgMCAwLTUzLjQ1IDBsLTI1NiAyMjZhMTYgMTYgMCAwIDAtMS4yMSAyMi42TDI1LjUgMjgyLjdhMTYgMTYgMCAwIDAgMjIuNiAxLjIxTDI3Ny40MiA4MS42M2ExNiAxNiAwIDAgMSAyMS4xNyAwTDUyNy45MSAyODMuOWExNiAxNiAwIDAgMCAyMi42LTEuMjFsMjEuNC0yMy44MmExNiAxNiAwIDAgMC0xLjIyLTIyLjU5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA2NGgtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE5MiA0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bTEyMS4yIDIzMS44bC0xNDMgMTQxLjhjLTQuNyA0LjctMTIuMyA0LjYtMTctLjFsLTgyLjYtODMuM2MtNC43LTQuNy00LjYtMTIuMy4xLTE3TDk5LjEgMjg1YzQuNy00LjcgMTIuMy00LjYgMTcgLjFsNDYgNDYuNCAxMDYtMTA1LjJjNC43LTQuNyAxMi4zLTQuNiAxNyAuMWwyOC4yIDI4LjRjNC43IDQuOCA0LjYgMTIuMy0uMSAxN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmRMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA2NGgtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDQyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAtOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0em0wLTk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptOTYtMTkyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMTI4IDM2OGMwIDQuNC0zLjYgOC04IDhIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2em0wLTk2YzAgNC40LTMuNiA4LTggOEgxNjhjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtOTZjMCA0LjQtMy42IDgtOCA4SDE2OGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDExMnYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg4MGMwLTM1LjI5IDI4LjcxLTY0IDY0LTY0czY0IDI4LjcxIDY0IDY0aDgwYzI2LjUxIDAgNDggMjEuNDkgNDggNDh6TTE5MiA0MGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0bTk2IDExNHYtMjBhNiA2IDAgMCAwLTYtNkgxMDJhNiA2IDAgMCAwLTYgNnYyMGE2IDYgMCAwIDAgNiA2aDE4MGE2IDYgMCAwIDAgNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhabTkyLjQ5LDMxM2gwbC0yMCwyNWExNiwxNiwwLDAsMS0yMi40OSwyLjVoMGwtNjctNDkuNzJhNDAsNDAsMCwwLDEtMTUtMzEuMjNWMTEyYTE2LDE2LDAsMCwxLDE2LTE2aDMyYTE2LDE2LDAsMCwxLDE2LDE2VjI1Nmw1OCw0Mi41QTE2LDE2LDAsMCwxLDM0OC40OSwzMjFaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OEgxNzZjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWNDhjMC0yNi41MSAyMS40OS00OCA0OC00OGgyODhNMTc2IDQxNmMtNDQuMTEyIDAtODAtMzUuODg4LTgwLTgwVjEyOEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyODhjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDhIMTc2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3NlZENhcHRpb25pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjI4OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yMTguMSAyODcuN2MyLjgtMi41IDcuMS0yLjEgOS4yLjlsMTkuNSAyNy43YzEuNyAyLjQgMS41IDUuNi0uNSA3LjctNTMuNiA1Ni44LTE3Mi44IDMyLjEtMTcyLjgtNjcuOSAwLTk3LjMgMTIxLjctMTE5LjUgMTcyLjUtNzAuMSAyLjEgMiAyLjUgMy4yIDEgNS43bC0xNy41IDMwLjVjLTEuOSAzLjEtNi4yIDQtOS4xIDEuNy00MC44LTMyLTk0LjYtMTQuOS05NC42IDMxLjIuMSA0OCA1MS4xIDcwLjUgOTIuMyAzMi42em0xOTAuNCAwYzIuOC0yLjUgNy4xLTIuMSA5LjIuOWwxOS41IDI3LjdjMS43IDIuNCAxLjUgNS42LS41IDcuNy01My41IDU2LjktMTcyLjcgMzIuMS0xNzIuNy02Ny45IDAtOTcuMyAxMjEuNy0xMTkuNSAxNzIuNS03MC4xIDIuMSAyIDIuNSAzLjIgMSA1LjdMNDIwIDIyMi4yYy0xLjkgMy4xLTYuMiA0LTkuMSAxLjctNDAuOC0zMi05NC42LTE0LjktOTQuNiAzMS4yIDAgNDggNTEgNzAuNSA5Mi4yIDMyLjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWREb3dubG9hZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6bS0xMzIuOSA4OC43TDI5OS4zIDQyMC43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMEwxNzEuMyAzMTUuM2MtMTAuMS0xMC4xLTIuOS0yNy4zIDExLjMtMjcuM0gyNDhWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTEyaDY1LjRjMTQuMiAwIDIxLjQgMTcuMiAxMS4zIDI3LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRNZWF0YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAzNTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDggNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4em00MTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OCA0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDh6bS0xMTkgMTEuMWM0LjYtMTQuNSAxLjYtMzAuOC05LjgtNDIuMy0xMS41LTExLjUtMjcuOC0xNC40LTQyLjMtOS45LTctMTMuNS0yMC43LTIzLTM2LjktMjNzLTI5LjkgOS41LTM2LjkgMjNjLTE0LjUtNC42LTMwLjgtMS42LTQyLjMgOS45LTExLjUgMTEuNS0xNC40IDI3LjgtOS45IDQyLjMtMTMuNSA3LTIzIDIwLjctMjMgMzYuOXM5LjUgMjkuOSAyMyAzNi45Yy00LjYgMTQuNS0xLjYgMzAuOCA5LjkgNDIuMyA4LjIgOC4yIDE4LjkgMTIuMyAyOS43IDEyLjMgNC4zIDAgOC41LTEuMSAxMi42LTIuNSA3IDEzLjUgMjAuNyAyMyAzNi45IDIzczI5LjktOS41IDM2LjktMjNjNC4xIDEuMyA4LjMgMi41IDEyLjYgMi41IDEwLjggMCAyMS41LTQuMSAyOS43LTEyLjMgMTEuNS0xMS41IDE0LjQtMjcuOCA5LjgtNDIuMyAxMy41LTcgMjMtMjAuNyAyMy0zNi45cy05LjUtMjkuOS0yMy0zNi45ek01MTIgMjI0YzAtNTMtNDMtOTYtOTYtOTYtLjYgMC0xLjEuMi0xLjYuMiAxLjEtNS4yIDEuNi0xMC42IDEuNi0xNi4yIDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjYgMC00Ni4zIDExLjMtNjEgMjguOEMyNTYuNCAyNC44IDIxOS4zIDAgMTc2IDAgMTE0LjEgMCA2NCA1MC4xIDY0IDExMmMwIDcuMy44IDE0LjMgMi4xIDIxLjJDMjcuOCAxNDUuOCAwIDE4MS41IDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoNDMuNGMzLjYtOCA4LjQtMTUuNCAxNC44LTIxLjggMTMuNS0xMy41IDMxLjUtMjEuMSA1MC44LTIxLjMgMTMuNS0xMy4yIDMxLjctMjAuOSA1MS0yMC45czM3LjUgNy43IDUxIDIwLjljMTkuMy4yIDM3LjMgNy44IDUwLjggMjEuMyA2LjQgNi40IDExLjMgMTMuOCAxNC44IDIxLjhINDE2YzUzIDAgOTYtNDMgOTYtOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRNb29uUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAuNSAyMjUuNWMtNi45LTM3LjItMzkuMy02NS41LTc4LjUtNjUuNS0xMi4zIDAtMjMuOSAzLTM0LjMgOC0xNy40LTI0LjEtNDUuNi00MC03Ny43LTQwLTUzIDAtOTYgNDMtOTYgOTYgMCAuNS4yIDEuMS4yIDEuNkMyNy42IDIzMi45IDAgMjY1LjIgMCAzMDRjMCA0NC4yIDM1LjggODAgODAgODBoMjU2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzkuMi0yOC4yLTcxLjctNjUuNS03OC41em0yMTcuNC0xLjdjLTcwLjQgMTMuMy0xMzUtNDAuMy0xMzUtMTEwLjggMC00MC42IDIxLjktNzggNTcuNS05OC4xIDUuNS0zLjEgNC4xLTExLjQtMi4xLTEyLjVDNDc5LjYuOCA0NzAuNyAwIDQ2MS44IDBjLTc3LjkgMC0xNDEuMSA2MS4yLTE0NC40IDEzNy45IDI2LjcgMTEuOSA0OC4yIDMzLjggNTguOSA2MS43IDM3LjEgMTQuMyA2NCA0Ny40IDcwLjIgODYuOCA1LjEuNSAxMCAxLjUgMTUuMiAxLjUgNDQuNyAwIDg1LjYtMjAuMiAxMTIuNi01My4zIDQuMi00LjgtLjItMTItNi40LTEwLjh6TTM2NC41IDQxOC4xYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZE1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQyLjggMzUyLjdjNS43LTkuNiA5LjItMjAuNyA5LjItMzIuNyAwLTM1LjMtMjguNy02NC02NC02NC0xNy4yIDAtMzIuOCA2LjktNDQuMyAxNy45LTE2LjMtMjkuNi00Ny41LTQ5LjktODMuNy00OS45LTUzIDAtOTYgNDMtOTYgOTYgMCAyIC41IDMuOC42IDUuN0MyNy4xIDMzOC44IDAgMzc0LjEgMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmgyNDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC00MS45LTMyLjMtNzUuOC03My4yLTc5LjN6bTIyMi41LTU0LjNjLTkzLjEgMTcuNy0xNzguNS01My43LTE3OC41LTE0Ny43IDAtNTQuMiAyOS0xMDQgNzYuMS0xMzAuOCA3LjMtNC4xIDUuNC0xNS4xLTIuOC0xNi43QzQ0OC40IDEuMSA0MzYuNyAwIDQyNSAwIDMxOS4xIDAgMjMzLjEgODUuOSAyMzMuMSAxOTJjMCA4LjUuNyAxNi44IDEuOCAyNSA1LjkgNC4zIDExLjYgOC45IDE2LjcgMTQuMiAxMS40LTQuNyAyMy43LTcuMiAzNi40LTcuMiA1Mi45IDAgOTYgNDMuMSA5NiA5NiAwIDMuNi0uMiA3LjItLjYgMTAuNyAyMy42IDEwLjggNDIuNCAyOS41IDUzLjUgNTIuNiA1NC40LTMuNCAxMDMuNy0yOS4zIDEzNy4xLTcwLjQgNS4zLTYuNS0uNS0xNi4xLTguNy0xNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTI4Yy0uNiAwLTEuMS4yLTEuNi4yIDEuMS01LjIgMS42LTEwLjYgMS42LTE2LjIgMC00NC4yLTM1LjgtODAtODAtODAtMjQuNiAwLTQ2LjMgMTEuMy02MSAyOC44QzI1Ni40IDI0LjggMjE5LjMgMCAxNzYgMCAxMTQuMSAwIDY0IDUwLjEgNjQgMTEyYzAgNy4zLjggMTQuMyAyLjEgMjEuMkMyNy44IDE0NS44IDAgMTgxLjUgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmgzMjBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZ6TTg4IDM3NC4yYy0xMi44IDQ0LjQtNDAgNTYuNC00MCA4Ny43IDAgMjcuNyAyMS41IDUwLjEgNDggNTAuMXM0OC0yMi40IDQ4LTUwLjFjMC0zMS40LTI3LjItNDMuMS00MC04Ny43LTIuMi04LjEtMTMuNS04LjUtMTYgMHptMTYwIDBjLTEyLjggNDQuNC00MCA1Ni40LTQwIDg3LjcgMCAyNy43IDIxLjUgNTAuMSA0OCA1MC4xczQ4LTIyLjQgNDgtNTAuMWMwLTMxLjQtMjcuMi00My4xLTQwLTg3LjctMi4yLTguMS0xMy41LTguNS0xNiAwem0xNjAgMGMtMTIuOCA0NC40LTQwIDU2LjQtNDAgODcuNyAwIDI3LjcgMjEuNSA1MC4xIDQ4IDUwLjFzNDgtMjIuNCA0OC01MC4xYzAtMzEuNC0yNy4yLTQzLjEtNDAtODcuNy0yLjItOC4xLTEzLjUtOC41LTE2IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTaG93ZXJzSGVhdnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgzLjkgMzcwLjFjLTcuNi00LjQtMTcuNC0xLjgtMjEuOCA2bC02NCAxMTJjLTQuNCA3LjctMS43IDE3LjUgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDY0LTExMmM0LjQtNy42IDEuNy0xNy40LTYtMjEuOHptOTYgMGMtNy42LTQuNC0xNy40LTEuOC0yMS44IDZsLTY0IDExMmMtNC40IDcuNy0xLjcgMTcuNSA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsNjQtMTEyYzQuNC03LjYgMS43LTE3LjQtNi0yMS44em0tMTkyIDBjLTcuNi00LjQtMTcuNC0xLjgtMjEuOCA2bC02NCAxMTJjLTQuNCA3LjctMS43IDE3LjUgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDY0LTExMmM0LjQtNy42IDEuNy0xNy40LTYtMjEuOHptMzg0IDBjLTcuNi00LjQtMTcuNC0xLjgtMjEuOCA2bC02NCAxMTJjLTQuNCA3LjctMS43IDE3LjUgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDY0LTExMmM0LjQtNy42IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjQtMTcuNC0xLjgtMjEuOCA2bC02NCAxMTJjLTQuNCA3LjctMS43IDE3LjUgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDY0LTExMmM0LjQtNy42IDEuNy0xNy40LTYtMjEuOHpNNDE2IDEyOGMtLjYgMC0xLjEuMi0xLjYuMiAxLjEtNS4yIDEuNi0xMC42IDEuNi0xNi4yIDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjYgMC00Ni4zIDExLjMtNjEgMjguOEMyNTYuNCAyNC44IDIxOS4zIDAgMTc2IDAgMTE0LjIgMCA2NCA1MC4xIDY0IDExMmMwIDcuMy44IDE0LjMgMi4xIDIxLjJDMjcuOCAxNDUuOCAwIDE4MS41IDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkU3VuUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuNSAyMjUuNWMtNi45LTM3LjItMzkuMy02NS41LTc4LjUtNjUuNS0xMi4zIDAtMjMuOSAzLTM0LjMgOC0xNy40LTI0LjEtNDUuNi00MC03Ny43LTQwLTUzIDAtOTYgNDMtOTYgOTYgMCAuNS4yIDEuMS4yIDEuNkMxODcuNiAyMzMgMTYwIDI2NS4yIDE2MCAzMDRjMCA0NC4yIDM1LjggODAgODAgODBoMjU2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzkuMi0yOC4yLTcxLjctNjUuNS03OC41em0tMzg2LjQgMzQuNGMtMzcuNC0zNy40LTM3LjQtOTguMyAwLTEzNS44IDM0LjYtMzQuNiA4OS4xLTM2LjggMTI2LjctNy40IDIwLTEyLjkgNDMuNi0yMC43IDY5LjItMjAuNy43IDAgMS4zLjIgMiAuMmw4LjktMjYuN2MzLjQtMTAuMi02LjMtMTkuOC0xNi41LTE2LjRsLTc1LjMgMjUuMS0zNS41LTcxYy00LjgtOS42LTE4LjUtOS42LTIzLjMgMGwtMzUuNSA3MS03NS4zLTI1LjFjLTEwLjItMy40LTE5LjggNi4zLTE2LjQgMTYuNWwyNS4xIDc1LjMtNzEgMzUuNWMtOS42IDQuOC05LjYgMTguNSAwIDIzLjNsNzEgMzUuNS0yNS4xIDc1LjNjLTMuNCAxMC4yIDYuMyAxOS44IDE2LjUgMTYuNWw1OS4yLTE5LjdjLS4yLTIuNC0uNy00LjctLjctNy4yIDAtMTIuNSAyLjMtMjQuNSA2LjItMzUuOS0zLjYtMi43LTcuMS01LjItMTAuMi04LjN6bTY5LjgtNThjNC4zLTI0LjUgMTUuOC00Ni40IDMxLjktNjQtOS44LTYuMi0yMS40LTkuOS0zMy44LTkuOS0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE4LjcgOC4yIDM1LjQgMjEuMSA0Ny4xIDExLjMtMTUuOSAyNi42LTI4LjkgNDQuOC0zNy4yem0zMzAuNiAyMTYuMmMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjIgMzI1LjdjLjItMS45LjgtMy43LjgtNS42IDAtMzUuMy0yOC43LTY0LTY0LTY0LTEyLjYgMC0yNC4yIDMuOC0zNC4xIDEwLTE3LjYtMzguOC01Ni41LTY2LTEwMS45LTY2LTYxLjggMC0xMTIgNTAuMS0xMTIgMTEyIDAgMyAuNyA1LjguOSA4LjctNDkuNiAzLjctODguOSA0NC43LTg4LjkgOTUuMyAwIDUzIDQzIDk2IDk2IDk2aDI3MmM1MyAwIDk2LTQzIDk2LTk2IDAtNDIuMS0yNy4yLTc3LjQtNjQuOC05MC40em0tNDMwLjQtMjIuNmMtNDMuNy00My43LTQzLjctMTE0LjcgMC0xNTguMyA0My43LTQzLjcgMTE0LjctNDMuNyAxNTguNCAwIDkuNyA5LjcgMTYuOSAyMC45IDIyLjMgMzIuNyA5LjgtMy43IDIwLjEtNiAzMC43LTcuNUwzODYgODEuMWM0LTExLjktNy4zLTIzLjEtMTkuMi0xOS4yTDI3OSA5MS4yIDIzNy41IDguNEMyMzItMi44IDIxNi0yLjggMjEwLjQgOC40TDE2OSA5MS4yIDgxLjEgNjEuOUM2OS4zIDU4IDU4IDY5LjMgNjEuOSA4MS4xbDI5LjMgODcuOC04Mi44IDQxLjVjLTExLjIgNS42LTExLjIgMjEuNSAwIDI3LjFsODIuOCA0MS40LTI5LjMgODcuOGMtNCAxMS45IDcuMyAyMy4xIDE5LjIgMTkuMmw3Ni4xLTI1LjNjNi4xLTEyLjQgMTQtMjMuNyAyMy42LTMzLjUtMTMuMS01LjQtMjUuNC0xMy40LTM2LTI0em0tNC44LTc5LjJjMCA0MC44IDI5LjMgNzQuOCA2Ny45IDgyLjMgOC00LjcgMTYuMy04LjggMjUuMi0xMS43IDUuNC00NC4zIDMxLTgyLjUgNjcuNC0xMDVDMjg3LjMgMTYwLjQgMjU4IDE0MCAyMjQgMTQwYy00Ni4zIDAtODQgMzcuNi04NCA4My45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkVXBsb2FkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUzNy42IDIyNi42YzQuMS0xMC43IDYuNC0yMi40IDYuNC0zNC42IDAtNTMtNDMtOTYtOTYtOTYtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDIuNy4xIDUuNC4yIDguMUM0MC4yIDIxOS44IDAgMjczLjIgMCAzMzZjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRoMzY4YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNjEuOS00NC0xMTMuNi0xMDIuNC0xMjUuNHpNMzkzLjQgMjg4SDMyOHYxMTJjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjI4OGgtNjUuNGMtMTQuMyAwLTIxLjQtMTcuMi0xMS4zLTI3LjNsMTA1LjQtMTA1LjRjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsMTA1LjQgMTA1LjRjMTAuMSAxMC4xIDIuOSAyNy4zLTExLjMgMjcuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29ja3RhaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDQ2NGgtNTZWMzM4Ljc4bDE2OC43NC0xNjguNzNjMTUuNTItMTUuNTIgNC41My00Mi4wNS0xNy40Mi00Mi4wNUgyNC42OGMtMjEuOTUgMC0zMi45NCAyNi41My0xNy40MiA0Mi4wNUwxNzYgMzM4Ljc4VjQ2NGgtNTZjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjQwYzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDB6TTQzMiAwYy02Mi42MSAwLTExNS4zNSA0MC4yLTEzNS4xOCA5Nmg1Mi41NGMxNi42NS0yOC41NSA0Ny4yNy00OCA4Mi42NC00OCA1Mi45MyAwIDk2IDQzLjA2IDk2IDk2cy00My4wNyA5Ni05NiA5NmMtMTQuMDQgMC0yNy4yOS0zLjItMzkuMzItOC42NGwtMzUuMjYgMzUuMjZDMzc5LjIzIDI3OS45MiA0MDQuNTkgMjg4IDQzMiAyODhjNzkuNTMgMCAxNDQtNjQuNDcgMTQ0LTE0NFM1MTEuNTMgMCA0MzIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RlQnJhbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxNDRjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi40IDI0LjMgNjcuMSA1Ny41IDc2LjgtLjYgMTYuMS00LjIgMjguNS0xMSAzNi45LTE1LjQgMTkuMi00OS4zIDIyLjQtODUuMiAyNS43LTI4LjIgMi42LTU3LjQgNS40LTgxLjMgMTYuOXYtMTQ0YzMyLjUtMTAuMiA1Ni00MC41IDU2LTc2LjMgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzNS44IDIzLjUgNjYuMSA1NiA3Ni4zdjE5OS4zQzIzLjUgMzY1LjkgMCAzOTYuMiAwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzQtMjEuMi02My4xLTUxLjItNzQuNiAzLjEtNS4yIDcuOC05LjggMTQuOS0xMy40IDE2LjItOC4yIDQwLjQtMTAuNCA2Ni4xLTEyLjggNDIuMi0zLjkgOTAtOC40IDExOC4yLTQzLjQgMTQtMTcuNCAyMS4xLTM5LjggMjEuNi02Ny45IDMxLjYtMTAuOCA1NC40LTQwLjcgNTQuNC03NS45ek04MCA2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNi0xNi03LjItMTYtMTYgNy4yLTE2IDE2LTE2em0wIDM4NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0yMjQtMzIwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2LTE2LTcuMi0xNi0xNiA3LjItMTYgMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzguOSA1MTEuNWwtNjEtMTcuN2MtNi40LTEuOC0xMC04LjUtOC4yLTE0LjlMMzQ2LjIgOC43YzEuOC02LjQgOC41LTEwIDE0LjktOC4ybDYxIDE3LjdjNi40IDEuOCAxMCA4LjUgOC4yIDE0LjlMMjkzLjggNTAzLjNjLTEuOSA2LjQtOC41IDEwLjEtMTQuOSA4LjJ6bS0xMTQtMTEyLjJsNDMuNS00Ni40YzQuNi00LjkgNC4zLTEyLjctLjgtMTcuMkwxMTcgMjU2bDkwLjYtNzkuN2M1LjEtNC41IDUuNS0xMi4zLjgtMTcuMmwtNDMuNS00Ni40Yy00LjUtNC44LTEyLjEtNS4xLTE3LS41TDMuOCAyNDcuMmMtNS4xIDQuNy01LjEgMTIuOCAwIDE3LjVsMTQ0LjEgMTM1LjFjNC45IDQuNiAxMi41IDQuNCAxNy0uNXptMzI3LjIuNmwxNDQuMS0xMzUuMWM1LjEtNC43IDUuMS0xMi44IDAtMTcuNUw0OTIuMSAxMTIuMWMtNC44LTQuNS0xMi40LTQuMy0xNyAuNUw0MzEuNiAxNTljLTQuNiA0LjktNC4zIDEyLjcuOCAxNy4yTDUyMyAyNTZsLTkwLjYgNzkuN2MtNS4xIDQuNS01LjUgMTIuMy0uOCAxNy4ybDQzLjUgNDYuNGM0LjUgNC45IDEyLjEgNS4xIDE3IC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZmZlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0aDE5MmM1MyAwIDk2LTQzIDk2LTk2aDMyYzcwLjYgMCAxMjgtNTcuNCAxMjgtMTI4UzU4Mi42IDMyIDUxMiAzMkgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djIzMmMwIDUzIDQzIDk2IDk2IDk2ek01MTIgOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRoLTMyVjk2aDMyem00Ny43IDM4NEg0OC4zYy00Ny42IDAtNjEtNjQtMzYtNjRoNTgzLjNjMjUgMCAxMS44IDY0LTM1LjkgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Ny40IDMxNS43bC00Mi42LTI0LjZjNC4zLTIzLjIgNC4zLTQ3IDAtNzAuMmw0Mi42LTI0LjZjNC45LTIuOCA3LjEtOC42IDUuNS0xNC0xMS4xLTM1LjYtMzAtNjcuOC01NC43LTk0LjYtMy44LTQuMS0xMC01LjEtMTQuOC0yLjNMMzgwLjggMTEwYy0xNy45LTE1LjQtMzguNS0yNy4zLTYwLjgtMzUuMVYyNS44YzAtNS42LTMuOS0xMC41LTkuNC0xMS43LTM2LjctOC4yLTc0LjMtNy44LTEwOS4yIDAtNS41IDEuMi05LjQgNi4xLTkuNCAxMS43Vjc1Yy0yMi4yIDcuOS00Mi44IDE5LjgtNjAuOCAzNS4xTDg4LjcgODUuNWMtNC45LTIuOC0xMS0xLjktMTQuOCAyLjMtMjQuNyAyNi43LTQzLjYgNTguOS01NC43IDk0LjYtMS43IDUuNC42IDExLjIgNS41IDE0TDY3LjMgMjIxYy00LjMgMjMuMi00LjMgNDcgMCA3MC4ybC00Mi42IDI0LjZjLTQuOSAyLjgtNy4xIDguNi01LjUgMTQgMTEuMSAzNS42IDMwIDY3LjggNTQuNyA5NC42IDMuOCA0LjEgMTAgNS4xIDE0LjggMi4zbDQyLjYtMjQuNmMxNy45IDE1LjQgMzguNSAyNy4zIDYwLjggMzUuMXY0OS4yYzAgNS42IDMuOSAxMC41IDkuNCAxMS43IDM2LjcgOC4yIDc0LjMgNy44IDEwOS4yIDAgNS41LTEuMiA5LjQtNi4xIDkuNC0xMS43di00OS4yYzIyLjItNy45IDQyLjgtMTkuOCA2MC44LTM1LjFsNDIuNiAyNC42YzQuOSAyLjggMTEgMS45IDE0LjgtMi4zIDI0LjctMjYuNyA0My42LTU4LjkgNTQuNy05NC42IDEuNS01LjUtLjctMTEuMy01LjYtMTQuMXpNMjU2IDMzNmMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIuMSAxOTFsLTguMiAxNC4zYy0zIDUuMy05LjQgNy41LTE1LjEgNS40LTExLjgtNC40LTIyLjYtMTAuNy0zMi4xLTE4LjYtNC42LTMuOC01LjgtMTAuNS0yLjgtMTUuN2w4LjItMTQuM2MtNi45LTgtMTIuMy0xNy4zLTE1LjktMjcuNGgtMTYuNWMtNiAwLTExLjItNC4zLTEyLjItMTAuMy0yLTEyLTIuMS0yNC42IDAtMzcuMSAxLTYgNi4yLTEwLjQgMTIuMi0xMC40aDE2LjVjMy42LTEwLjEgOS0xOS40IDE1LjktMjcuNGwtOC4yLTE0LjNjLTMtNS4yLTEuOS0xMS45IDIuOC0xNS43IDkuNS03LjkgMjAuNC0xNC4yIDMyLjEtMTguNiA1LjctMi4xIDEyLjEuMSAxNS4xIDUuNGw4LjIgMTQuM2MxMC41LTEuOSAyMS4yLTEuOSAzMS43IDBMNTUyIDYuM2MzLTUuMyA5LjQtNy41IDE1LjEtNS40IDExLjggNC40IDIyLjYgMTAuNyAzMi4xIDE4LjYgNC42IDMuOCA1LjggMTAuNSAyLjggMTUuN2wtOC4yIDE0LjNjNi45IDggMTIuMyAxNy4zIDE1LjkgMjcuNGgxNi41YzYgMCAxMS4yIDQuMyAxMi4yIDEwLjMgMiAxMiAyLjEgMjQuNiAwIDM3LjEtMSA2LTYuMiAxMC40LTEyLjIgMTAuNGgtMTYuNWMtMy42IDEwLjEtOSAxOS40LTE1LjkgMjcuNGw4LjIgMTQuM2MzIDUuMiAxLjkgMTEuOS0yLjggMTUuNy05LjUgNy45LTIwLjQgMTQuMi0zMi4xIDE4LjYtNS43IDIuMS0xMi4xLS4xLTE1LjEtNS40bC04LjItMTQuM2MtMTAuNCAxLjktMjEuMiAxLjktMzEuNyAwem0tMTAuNS01OC44YzM4LjUgMjkuNiA4Mi40LTE0LjMgNTIuOC01Mi44LTM4LjUtMjkuNy04Mi40IDE0LjMtNTIuOCA1Mi44ek0zODYuMyAyODYuMWwzMy43IDE2LjhjMTAuMSA1LjggMTQuNSAxOC4xIDEwLjUgMjkuMS04LjkgMjQuMi0yNi40IDQ2LjQtNDIuNiA2NS44LTcuNCA4LjktMjAuMiAxMS4xLTMwLjMgNS4zbC0yOS4xLTE2LjhjLTE2IDEzLjctMzQuNiAyNC42LTU0LjkgMzEuN3YzMy42YzAgMTEuNi04LjMgMjEuNi0xOS43IDIzLjYtMjQuNiA0LjItNTAuNCA0LjQtNzUuOSAwLTExLjUtMi0yMC0xMS45LTIwLTIzLjZWNDE4Yy0yMC4zLTcuMi0zOC45LTE4LTU0LjktMzEuN0w3NCA0MDNjLTEwIDUuOC0yMi45IDMuNi0zMC4zLTUuMy0xNi4yLTE5LjQtMzMuMy00MS42LTQyLjItNjUuNy00LTEwLjkuNC0yMy4yIDEwLjUtMjkuMWwzMy4zLTE2LjhjLTMuOS0yMC45LTMuOS00Mi40IDAtNjMuNEwxMiAyMDUuOGMtMTAuMS01LjgtMTQuNi0xOC4xLTEwLjUtMjkgOC45LTI0LjIgMjYtNDYuNCA0Mi4yLTY1LjggNy40LTguOSAyMC4yLTExLjEgMzAuMy01LjNsMjkuMSAxNi44YzE2LTEzLjcgMzQuNi0yNC42IDU0LjktMzEuN1Y1Ny4xYzAtMTEuNSA4LjItMjEuNSAxOS42LTIzLjUgMjQuNi00LjIgNTAuNS00LjQgNzYtLjEgMTEuNSAyIDIwIDExLjkgMjAgMjMuNnYzMy42YzIwLjMgNy4yIDM4LjkgMTggNTQuOSAzMS43bDI5LjEtMTYuOGMxMC01LjggMjIuOS0zLjYgMzAuMyA1LjMgMTYuMiAxOS40IDMzLjIgNDEuNiA0Mi4xIDY1LjggNCAxMC45LjEgMjMuMi0xMCAyOS4xbC0zMy43IDE2LjhjMy45IDIxIDMuOSA0Mi41IDAgNjMuNXptLTExNy42IDIxLjFjNTkuMi03Ny0yOC43LTE2NC45LTEwNS43LTEwNS43LTU5LjIgNzcgMjguNyAxNjQuOSAxMDUuNyAxMDUuN3ptMjQzLjQgMTgyLjdsLTguMiAxNC4zYy0zIDUuMy05LjQgNy41LTE1LjEgNS40LTExLjgtNC40LTIyLjYtMTAuNy0zMi4xLTE4LjYtNC42LTMuOC01LjgtMTAuNS0yLjgtMTUuN2w4LjItMTQuM2MtNi45LTgtMTIuMy0xNy4zLTE1LjktMjcuNGgtMTYuNWMtNiAwLTExLjItNC4zLTEyLjItMTAuMy0yLTEyLTIuMS0yNC42IDAtMzcuMSAxLTYgNi4yLTEwLjQgMTIuMi0xMC40aDE2LjVjMy42LTEwLjEgOS0xOS40IDE1LjktMjcuNGwtOC4yLTE0LjNjLTMtNS4yLTEuOS0xMS45IDIuOC0xNS43IDkuNS03LjkgMjAuNC0xNC4yIDMyLjEtMTguNiA1LjctMi4xIDEyLjEuMSAxNS4xIDUuNGw4LjIgMTQuM2MxMC41LTEuOSAyMS4yLTEuOSAzMS43IDBsOC4yLTE0LjNjMy01LjMgOS40LTcuNSAxNS4xLTUuNCAxMS44IDQuNCAyMi42IDEwLjcgMzIuMSAxOC42IDQuNiAzLjggNS44IDEwLjUgMi44IDE1LjdsLTguMiAxNC4zYzYuOSA4IDEyLjMgMTcuMyAxNS45IDI3LjRoMTYuNWM2IDAgMTEuMiA0LjMgMTIuMiAxMC4zIDIgMTIgMi4xIDI0LjYgMCAzNy4xLTEgNi02LjIgMTAuNC0xMi4yIDEwLjRoLTE2LjVjLTMuNiAxMC4xLTkgMTkuNC0xNS45IDI3LjRsOC4yIDE0LjNjMyA1LjIgMS45IDExLjktMi44IDE1LjctOS41IDcuOS0yMC40IDE0LjItMzIuMSAxOC42LTUuNyAyLjEtMTIuMS0uMS0xNS4xLTUuNGwtOC4yLTE0LjNjLTEwLjQgMS45LTIxLjIgMS45LTMxLjcgMHpNNTAxLjYgNDMxYzM4LjUgMjkuNiA4Mi40LTE0LjMgNTIuOC01Mi44LTM4LjUtMjkuNi04Mi40IDE0LjMtNTIuOCA1Mi44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvaW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDA1LjNWNDQ4YzAgMzUuMyA4NiA2NCAxOTIgNjRzMTkyLTI4LjcgMTkyLTY0di00Mi43QzM0Mi43IDQzNC40IDI2Ny4yIDQ0OCAxOTIgNDQ4UzQxLjMgNDM0LjQgMCA0MDUuM3pNMzIwIDEyOGMxMDYgMCAxOTItMjguNyAxOTItNjRTNDI2IDAgMzIwIDAgMTI4IDI4LjcgMTI4IDY0czg2IDY0IDE5MiA2NHpNMCAzMDAuNFYzNTJjMCAzNS4zIDg2IDY0IDE5MiA2NHMxOTItMjguNyAxOTItNjR2LTUxLjZjLTQxLjMgMzQtMTE2LjkgNTEuNi0xOTIgNTEuNlM0MS4zIDMzNC40IDAgMzAwLjR6bTQxNiAxMWM1Ny4zLTExLjEgOTYtMzEuNyA5Ni01NS40di00Mi43Yy0yMy4yIDE2LjQtNTcuMyAyNy42LTk2IDM0LjV2NjMuNnpNMTkyIDE2MEM4NiAxNjAgMCAxOTUuOCAwIDI0MHM4NiA4MCAxOTIgODAgMTkyLTM1LjggMTkyLTgwLTg2LTgwLTE5Mi04MHptMjE5LjMgNTYuM2M2MC0xMC44IDEwMC43LTMyIDEwMC43LTU2LjN2LTQyLjdjLTM1LjUgMjUuMS05Ni41IDM4LjYtMTYwLjcgNDEuOCAyOS41IDE0LjMgNTEuMiAzMy41IDYwIDU3LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29sdW1ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTIyNCA0MTZINjRWMTYwaDE2MHYyNTZ6bTIyNCAwSDI4OFYxNjBoMTYwdjI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAwSDY0QzI4LjcgMCAwIDI4LjcgMCA2NHYyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZ2ODRjMCA5LjggMTEuMiAxNS41IDE5LjEgOS43TDMwNCA0MTZoMTQ0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnREb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42MiAzMiAwIDEyNS4xMiAwIDI0MGMwIDQ5LjU2IDIxLjQxIDk1LjAxIDU3LjAyIDEzMC43NEM0NC40NiA0MjEuMDUgMi43IDQ2NS45NyAyLjIgNDY2LjVBNy45OTUgNy45OTUgMCAwIDAgOCA0ODBjNjYuMjYgMCAxMTUuOTktMzEuNzUgMTQwLjYtNTEuMzhDMTgxLjI5IDQ0MC45MyAyMTcuNTkgNDQ4IDI1NiA0NDhjMTQxLjM4IDAgMjU2LTkzLjEyIDI1Ni0yMDhTMzk3LjM4IDMyIDI1NiAzMnptMjQgMzAyLjQ0VjM1MmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0xNy43M2MtMTEuNDItMS4zNS0yMi4yOC01LjE5LTMxLjc4LTExLjQ2LTYuMjItNC4xMS02LjgyLTEzLjExLTEuNTUtMTguMzhsMTcuNTItMTcuNTJjMy43NC0zLjc0IDkuMzEtNC4yNCAxNC4xMS0yLjAzIDMuMTggMS40NiA2LjY2IDIuMjIgMTAuMjYgMi4yMmgzMi43OGM0LjY2IDAgOC40NC0zLjc4IDguNDQtOC40MiAwLTMuNzUtMi41Mi03LjA4LTYuMTItOC4xMWwtNTAuMDctMTQuM2MtMjIuMjUtNi4zNS00MC4wMS0yNC43MS00Mi45MS00Ny42Ny00LjA1LTMyLjA3IDE5LjAzLTU5LjQzIDQ5LjMyLTYzLjA1VjEyOGMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNy43M2MxMS40MiAxLjM1IDIyLjI4IDUuMTkgMzEuNzggMTEuNDYgNi4yMiA0LjExIDYuODIgMTMuMTEgMS41NSAxOC4zOGwtMTcuNTIgMTcuNTJjLTMuNzQgMy43NC05LjMxIDQuMjQtMTQuMTEgMi4wM2EyNC41MTYgMjQuNTE2IDAgMCAwLTEwLjI2LTIuMjJoLTMyLjc4Yy00LjY2IDAtOC40NCAzLjc4LTguNDQgOC40MiAwIDMuNzUgMi41MiA3LjA4IDYuMTIgOC4xMWw1MC4wNyAxNC4zYzIyLjI1IDYuMzYgNDAuMDEgMjQuNzEgNDIuOTEgNDcuNjcgNC4wNSAzMi4wNi0xOS4wMyA1OS40Mi00OS4zMiA2My4wNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50RG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuN0M0NC41IDQyMS4xIDIuNyA0NjYgMi4yIDQ2Ni41Yy0yLjIgMi4zLTIuOCA1LjctMS41IDguN1M0LjggNDgwIDggNDgwYzY2LjMgMCAxMTYtMzEuOCAxNDAuNi01MS40IDMyLjcgMTIuMyA2OSAxOS40IDEwNy40IDE5LjQgMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMnpNMTI4IDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxMTQuNjIgMzIgMCAxMjUuMTIgMCAyNDBjMCA0OS41NiAyMS40MSA5NSA1NyAxMzAuNzRDNDQuNDYgNDIxLjA1IDIuNyA0NjYgMi4yIDQ2Ni41QTggOCAwIDAgMCA4IDQ4MGM2Ni4yNiAwIDExNi0zMS43NSAxNDAuNi01MS4zOEEzMDQuNjYgMzA0LjY2IDAgMCAwIDI1NiA0NDhjMTQxLjM5IDAgMjU2LTkzLjEyIDI1Ni0yMDhTMzk3LjM5IDMyIDI1NiAzMnptOTYgMjMyYTggOCAwIDAgMS04IDhoLTU2djU2YTggOCAwIDAgMS04IDhoLTQ4YTggOCAwIDAgMS04LTh2LTU2aC01NmE4IDggMCAwIDEtOC04di00OGE4IDggMCAwIDEgOC04aDU2di01NmE4IDggMCAwIDEgOC04aDQ4YTggOCAwIDAgMSA4IDh2NTZoNTZhOCA4IDAgMCAxIDggOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMjQwYzAgNDkuNiAyMS40IDk1IDU3IDEzMC43LTEyLjYgNTAuMy01NC4zIDk1LjItNTQuOCA5NS44LTIuMiAyLjMtMi44IDUuNy0xLjUgOC43IDEuMyAyLjkgNC4xIDQuOCA3LjMgNC44IDY2LjMgMCAxMTYtMzEuOCAxNDAuNi01MS40IDMyLjcgMTIuMyA2OSAxOS40IDEwNy40IDE5LjQgMjcuNCAwIDUzLjctMy42IDc4LjQtMTBMNzIuOSAxODYuNGMtNS42IDE3LjEtOC45IDM1LTguOSA1My42em01NjkuOCAyMTguMWwtMTE0LjQtODguNEM1NTQuNiAzMzQuMSA1NzYgMjg5LjIgNTc2IDI0MGMwLTExNC45LTExNC42LTIwOC0yNTYtMjA4LTY1LjEgMC0xMjQuMiAyMC4xLTE2OS40IDUyLjdMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRsNTg4LjQgNDU0LjdjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjQtNi44IDQuMS0xNi45LTIuOS0yMi4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42IDMyIDAgMTI1LjEgMCAyNDBjMCA0OS42IDIxLjQgOTUgNTcgMTMwLjdDNDQuNSA0MjEuMSAyLjcgNDY2IDIuMiA0NjYuNWMtMi4yIDIuMy0yLjggNS43LTEuNSA4LjdTNC44IDQ4MCA4IDQ4MGM2Ni4zIDAgMTE2LTMxLjggMTQwLjYtNTEuNCAzMi43IDEyLjMgNjkgMTkuNCAxMDcuNCAxOS40IDE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudHNEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDE5MmMwLTg4LjM3LTkzLjEyLTE2MC0yMDgtMTYwUzAgMTAzLjYzIDAgMTkyYzAgMzQuMjcgMTQuMTMgNjUuOTUgMzcuOTcgOTEuOThDMjQuNjEgMzE0LjIyIDIuNTIgMzM4LjE2IDIuMiAzMzguNUE3Ljk5NSA3Ljk5NSAwIDAgMCA4IDM1MmMzNi41OCAwIDY2LjkzLTEyLjI1IDg4LjczLTI0Ljk4QzEyOC45MyAzNDIuNzYgMTY3LjAyIDM1MiAyMDggMzUyYzExNC44OCAwIDIwOC03MS42MyAyMDgtMTYwem0tMjI0IDk2di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWOTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTYuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNSA0NC40NC00Mi42NyA0NS4wN1YyODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptMzQ2LjAxIDEyMy45OUM1NjEuODcgMzg1Ljk2IDU3NiAzNTQuMjcgNTc2IDMyMGMwLTY2Ljk0LTUzLjQ5LTEyNC4yLTEyOS4zMy0xNDguMDcuODYgNi42IDEuMzMgMTMuMjkgMS4zMyAyMC4wNyAwIDEwNS44Ny0xMDcuNjYgMTkyLTI0MCAxOTItMTAuNzggMC0yMS4zMi0uNzctMzEuNzMtMS44OEMyMDcuOCA0MzkuNjMgMjgxLjc3IDQ4MCAzNjggNDgwYzQwLjk4IDAgNzkuMDctOS4yNCAxMTEuMjctMjQuOThDNTAxLjA3IDQ2Ny43NSA1MzEuNDIgNDgwIDU2OCA0ODBjMy4yIDAgNi4wOS0xLjkxIDcuMzQtNC44NCAxLjI3LTIuOTQuNjYtNi4zNC0xLjU1LTguNjctLjMxLS4zMy0yMi40Mi0yNC4yNC0zNS43OC01NC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAxOTJjMC04OC40LTkzLjEtMTYwLTIwOC0xNjBTMCAxMDMuNiAwIDE5MmMwIDM0LjMgMTQuMSA2NS45IDM4IDkyLTEzLjQgMzAuMi0zNS41IDU0LjItMzUuOCA1NC41LTIuMiAyLjMtMi44IDUuNy0xLjUgOC43UzQuOCAzNTIgOCAzNTJjMzYuNiAwIDY2LjktMTIuMyA4OC43LTI1IDMyLjIgMTUuNyA3MC4zIDI1IDExMS4zIDI1IDExNC45IDAgMjA4LTcxLjYgMjA4LTE2MHptMTIyIDIyMGMyMy45LTI2IDM4LTU3LjcgMzgtOTIgMC02Ni45LTUzLjUtMTI0LjItMTI5LjMtMTQ4LjEuOSA2LjYgMS4zIDEzLjMgMS4zIDIwLjEgMCAxMDUuOS0xMDcuNyAxOTItMjQwIDE5Mi0xMC44IDAtMjEuMy0uOC0zMS43LTEuOUMyMDcuOCA0MzkuNiAyODEuOCA0ODAgMzY4IDQ4MGM0MSAwIDc5LjEtOS4yIDExMS4zLTI1IDIxLjggMTIuNyA1Mi4xIDI1IDg4LjcgMjUgMy4yIDAgNi4xLTEuOSA3LjMtNC44IDEuMy0yLjkuNy02LjMtMS41LTguNy0uMy0uMy0yMi40LTI0LjItMzUuOC01NC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXBhY3REaXNjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTg4IDI1Nkg1NmMwLTEwNS45IDg2LjEtMTkyIDE5Mi0xOTJ2MzJjLTg4LjIgMC0xNjAgNzEuOC0xNjAgMTYwem0xNjAgOTZjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTYgOTYgNDMgOTYgOTYtNDMgOTYtOTYgOTZ6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS4zOCAyMzMuMzdjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjUgMTIuNDkgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDAgMTIuNS0xMi41IDEyLjUtMzIuNzYgMC00NS4yNS0xMi41LTEyLjQ5LTMyLjc2LTEyLjQ5LTQ1LjI1IDB6TTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTEyNi4xNCAxNDguMDVMMzA4LjE3IDMwMC40YTMxLjkzOCAzMS45MzggMCAwIDEtMTUuNzcgMTUuNzdsLTE0NC4zNCA2NS45N2MtMTYuNjUgNy42MS0zMy44MS05LjU1LTI2LjItMjYuMmw2NS45OC0xNDQuMzVhMzEuOTM4IDMxLjkzOCAwIDAgMSAxNS43Ny0xNS43N2wxNDQuMzQtNjUuOTdjMTYuNjUtNy42IDMzLjggOS41NSAyNi4xOSAyNi4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXByZXNzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjg2IDQyNy4zMTRMMTA0IDMyOGwtMzIuOTIyLTMxLjAyOUM1NS45NTggMjgxLjg1MSA2Ni42NjYgMjU2IDg4LjA0OCAyNTZoMTEyQzIxMy4zMDMgMjU2IDIyNCAyNjYuNzQ1IDIyNCAyODB2MTEyYzAgMjEuMzgyLTI1LjgwMyAzMi4wOS00MC45MjIgMTYuOTcxTDE1MiAzNzZsLTk5LjMxNCA5OS4zMTRjLTYuMjQ4IDYuMjQ4LTE2LjM3OSA2LjI0OC0yMi42MjcgMEw0LjY4NiA0NDkuOTQxYy02LjI0OC02LjI0OC02LjI0OC0xNi4zNzkgMC0yMi42Mjd6TTQ0My4zMTQgODQuNjg2TDM0NCAxODRsMzIuOTIyIDMxLjAyOWMxNS4xMiAxNS4xMiA0LjQxMiA0MC45NzEtMTYuOTcgNDAuOTcxaC0xMTJDMjM0LjY5NyAyNTYgMjI0IDI0NS4yNTUgMjI0IDIzMlYxMjBjMC0yMS4zODIgMjUuODAzLTMyLjA5IDQwLjkyMi0xNi45NzFMMjk2IDEzNmw5OS4zMTQtOTkuMzE0YzYuMjQ4LTYuMjQ4IDE2LjM3OS02LjI0OCAyMi42MjcgMGwyNS4zNzMgMjUuMzczYzYuMjQ4IDYuMjQ4IDYuMjQ4IDE2LjM3OSAwIDIyLjYyN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wcmVzc0Fycm93c0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDAgMjg4SDg4Yy0yMS40IDAtMzIuMSAyNS44LTE3IDQxbDMyLjkgMzEtOTkuMiA5OS4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwyNS40IDI1LjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBMMTUyIDQwOGwzMS4xIDMzYzE1LjEgMTUuMSA0MC45IDQuNCA0MC45LTE3VjMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTEyLTY0aDExMmMyMS40IDAgMzIuMS0yNS45IDE3LTQxbC0zMy0zMSA5OS4zLTk5LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNDgxLjkgNC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwzNjAgMTA0bC0zMS4xLTMzQzMxMy44IDU1LjkgMjg4IDY2LjYgMjg4IDg4djExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHptOTYgMTM2bDMzLTMxLjFjMTUuMS0xNS4xIDQuNC00MC45LTE3LTQwLjlIMzEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxMTJjMCAyMS40IDI1LjkgMzIuMSA0MSAxN2wzMS0zMi45IDk5LjMgOTkuM2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwyNS40LTI1LjRjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNDA4IDM2MHpNMTgzIDcxLjFMMTUyIDEwNCA1Mi43IDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNC43IDMwLjFjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42TDEwNCAxNTJsLTMzIDMxLjFDNTUuOSAxOTguMiA2Ni42IDIyNCA4OCAyMjRoMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0Vjg4YzAtMjEuMy0yNS45LTMyLTQxLTE2Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE5MkgzMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjQ0YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2ODRoODRjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMnptLTI3Ni0yNFY0NGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2ODRIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTI0YzEzLjMgMCAyNC0xMC43IDI0LTI0em0wIDMwMFYzNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoODR2ODRjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptMTkyIDB2LTg0aDg0YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEySDMxMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTI0YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29uY2llcmdlQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTMwLjU0VjExMmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY4MGMwLTguODQtNy4xNi0xNi0xNi0xNmgtOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2djE4LjU0QzExNS40OSAxNDYuMTEgMzIgMjM5LjE4IDMyIDM1Mmg0NDhjMC0xMTIuODItODMuNDktMjA1Ljg5LTE5Mi0yMjEuNDZ6TTQ5NiAzODRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29va2llQml0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuNTIgMjU1LjgyYy02OS45Ny0uODUtMTI2LjQ3LTU3LjY5LTEyNi40Ny0xMjcuODYtNzAuMTcgMC0xMjctNTYuNDktMTI3Ljg2LTEyNi40NS0yNy4yNi00LjE0LTU1LjEzLjMtNzkuNzIgMTIuODJsLTY5LjEzIDM1LjIyYTEzMi4yMjEgMTMyLjIyMSAwIDAgMC01Ny43OSA1Ny44MWwtMzUuMSA2OC44OGExMzIuNjQ1IDEzMi42NDUgMCAwIDAtMTIuODIgODAuOTVsMTIuMDggNzYuMjdhMTMyLjUyMSAxMzIuNTIxIDAgMCAwIDM3LjE2IDcyLjk2bDU0Ljc3IDU0Ljc2YTEzMi4wMzYgMTMyLjAzNiAwIDAgMCA3Mi43MSAzNy4wNmw3Ni43MSAxMi4xNWMyNy41MSA0LjM2IDU1LjctLjExIDgwLjUzLTEyLjc2bDY5LjEzLTM1LjIxYTEzMi4yNzMgMTMyLjI3MyAwIDAgMCA1Ny43OS01Ny44MWwzNS4xLTY4Ljg4YzEyLjU2LTI0LjY0IDE3LjAxLTUyLjU4IDEyLjkxLTc5Ljkxek0xNzYgMzY4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0zMi0xNjBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTE2MCAxMjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29va2llIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC4zNyAyNTQuNzlsLTEyLjA4LTc2LjI2YTEzMi40OTMgMTMyLjQ5MyAwIDAgMC0zNy4xNi03Mi45NWwtNTQuNzYtNTQuNzVjLTE5LjczLTE5LjcyLTQ1LjE4LTMyLjctNzIuNzEtMzcuMDVsLTc2LjctMTIuMTVjLTI3LjUxLTQuMzYtNTUuNjkuMTEtODAuNTIgMTIuNzZMMTA3LjMyIDQ5LjZhMTMyLjI1IDEzMi4yNSAwIDAgMC01Ny43OSA1Ny44bC0zNS4xIDY4Ljg4YTEzMi42MDIgMTMyLjYwMiAwIDAgMC0xMi44MiA4MC45NGwxMi4wOCA3Ni4yN2ExMzIuNDkzIDEzMi40OTMgMCAwIDAgMzcuMTYgNzIuOTVsNTQuNzYgNTQuNzVhMTMyLjA4NyAxMzIuMDg3IDAgMCAwIDcyLjcxIDM3LjA1bDc2LjcgMTIuMTRjMjcuNTEgNC4zNiA1NS42OS0uMTEgODAuNTItMTIuNzVsNjkuMTItMzUuMjFhMTMyLjMwMiAxMzIuMzAyIDAgMCAwIDU3Ljc5LTU3LjhsMzUuMS02OC44N2MxMi43MS0yNC45NiAxNy4yLTUzLjMgMTIuODItODAuOTZ6TTE3NiAzNjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTMyLTE2MGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTYwIDEyOGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0NDh2NDBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDI0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMTIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGg3MnYyOTZjMCAzMC44NzkgMjUuMTIxIDU2IDU2IDU2aDE2OHptMC0zNDRWMEgxNTJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYzNjhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDI3MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTI4SDM0NGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTEyMC45NzEtMzEuMDI5TDM3NS4wMjkgNy4wMjlBMjQgMjQgMCAwIDAgMzU4LjA1OSAwSDM1MnY5Nmg5NnYtNi4wNTlhMjQgMjQgMCAwIDAtNy4wMjktMTYuOTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29weXJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMTE3LjEzNCAzNDYuNzUzYy0xLjU5MiAxLjg2Ny0zOS43NzYgNDUuNzMxLTEwOS44NTEgNDUuNzMxLTg0LjY5MiAwLTE0NC40ODQtNjMuMjYtMTQ0LjQ4NC0xNDUuNTY3IDAtODEuMzAzIDYyLjAwNC0xNDMuNDAxIDE0My43NjItMTQzLjQwMSA2Ni45NTcgMCAxMDEuOTY1IDM3LjMxNSAxMDMuNDIyIDM4LjkwNGExMiAxMiAwIDAgMSAxLjIzOCAxNC42MjNsLTIyLjM4IDM0LjY1NWMtNC4wNDkgNi4yNjctMTIuNzc0IDcuMzUxLTE4LjIzNCAyLjI5NS0uMjMzLS4yMTQtMjYuNTI5LTIzLjg4LTYxLjg4LTIzLjg4LTQ2LjExNiAwLTczLjkxNiAzMy41NzUtNzMuOTE2IDc2LjA4MiAwIDM5LjYwMiAyNS41MTQgNzkuNjkyIDc0LjI3NyA3OS42OTIgMzguNjk3IDAgNjUuMjgtMjguMzM4IDY1LjU0NC0yOC42MjUgNS4xMzItNS41NjUgMTQuMDU5LTUuMDMzIDE4LjUwOCAxLjA1M2wyNC41NDcgMzMuNTcyYTEyLjAwMSAxMi4wMDEgMCAwIDEtLjU1MyAxNC44NjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ291Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDIyNHY2NGgzMjB2LTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0aDMyYzAtNTMtNDMtOTYtOTYtOTZIMTYwYy01MyAwLTk2IDQzLTk2IDk2aDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0em00MTYtMzJoLTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NkgxMjh2LTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDIzLjYgMTMgNDQgMzIgNTUuMVY0MzJjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtMTZoMzg0djE2YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZWMzExLjFjMTktMTEuMSAzMi0zMS41IDMyLTU1LjEgMC0zNS4zLTI4LjctNjQtNjQtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjU2SDB2MTc2em0xOTItNjhjMC02LjYgNS40LTEyIDEyLTEyaDEzNmM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDIwNGMtNi42IDAtMTItNS40LTEyLTEydi00MHptLTEyOCAwYzAtNi42IDUuNC0xMiAxMi0xMmg3MmM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek01NzYgODB2NDhIMFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JvcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMzUyaC00MFY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDE5MnY5NmgxNjB2MzI4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDhjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtNDBoNDBjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtNDhjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpNMTYwIDI0YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjRIODhDNzQuNzUgMCA2NCAxMC43NCA2NCAyNHY0MEgyNEMxMC43NSA2NCAwIDc0Ljc0IDAgODh2NDhjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg0MHYyNTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgyMjR2LTk2SDE2MFYyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAzNTJoLTQwVjEwOS4yNWw1OS4zMS01OS4zMWM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDQ4NC42OSA0LjY5Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwTDQwMi43NSA2NEgxOTJ2OTZoMTE0Ljc1TDE2MCAzMDYuNzVWMjRjMC0xMy4yNi0xMC43NS0yNC0yNC0yNEg4OEM3NC43NSAwIDY0IDEwLjc0IDY0IDI0djQwSDI0QzEwLjc1IDY0IDAgNzQuNzQgMCA4OHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwdjI2NGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDIzMnYtOTZIMjA1LjI1TDM1MiAyMDUuMjVWNDg4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDhjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtNDBoNDBjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtNDhjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9zcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMTI4aC05NlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2djIyNGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjU2aDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3Jvc3NoYWlycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAgMjI0aC0zMC4zNjRDNDU1LjcyNCAxMzAuMzI1IDM4MS42NzUgNTYuMjc2IDI4OCA0Mi4zNjRWMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzAuMzY0QzEzMC4zMjUgNTYuMjc2IDU2LjI3NiAxMzAuMzI1IDQyLjM2NCAyMjRIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzMC4zNjRDNTYuMjc2IDM4MS42NzUgMTMwLjMyNSA0NTUuNzI0IDIyNCA0NjkuNjM2VjUwMGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTMwLjM2NEMzODEuNjc1IDQ1NS43MjQgNDU1LjcyNCAzODEuNjc1IDQ2OS42MzYgMjg4SDUwMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyek0yODggNDA0LjYzNFYzNjRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDAuNjM0QzE2NS44MjYgMzkyLjIzMiAxMTkuNzgzIDM0Ni4yNDMgMTA3LjM2NiAyODhIMTQ4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwLjYzNEMxMTkuNzY4IDE2NS44MjYgMTY1Ljc1NyAxMTkuNzgzIDIyNCAxMDcuMzY2VjE0OGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwLjYzNEMzNDYuMTc0IDExOS43NjggMzkyLjIxNyAxNjUuNzU3IDQwNC42MzQgMjI0SDM2NGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwLjYzNEMzOTIuMjMyIDM0Ni4xNzQgMzQ2LjI0MyAzOTIuMjE3IDI4OCA0MDQuNjM0ek0yODggMjU2YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMnMtMzItMTQuMzI3LTMyLTMyYzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMzJoLTE2LjM2QzUxMy4wNCAxMi42OCA0OTAuMDkgMCA0NjQgMGMtNDQuMTggMC04MCAzNS44Mi04MCA4MHYyMC45OEwxMi4wOSAzOTMuNTdBMzAuMjE2IDMwLjIxNiAwIDAgMCAwIDQxNy43NGMwIDIyLjQ2IDIzLjY0IDM3LjA3IDQzLjczIDI3LjAzTDE2NS4yNyAzODRoOTYuNDlsNDQuNDEgMTIwLjFjMi4yNyA2LjIzIDkuMTUgOS40NCAxNS4zOCA3LjE3bDIyLjU1LTguMjFjNi4yMy0yLjI3IDkuNDQtOS4xNSA3LjE3LTE1LjM4TDMxMi45NCAzODRIMzUyYzEuOTEgMCAzLjc2LS4yMyA1LjY2LS4yOWw0NC41MSAxMjAuMzhjMi4yNyA2LjIzIDkuMTUgOS40NCAxNS4zOCA3LjE3bDIyLjU1LTguMjFjNi4yMy0yLjI3IDkuNDQtOS4xNSA3LjE3LTE1LjM4bC00MS4yNC0xMTEuNTNDNDg1Ljc0IDM1Mi44IDU0NCAyNzkuMjYgNTQ0IDE5MnYtODBsOTYtMTZjMC0zNS4zNS00Mi45OC02NC05Ni02NHptLTgwIDcyYy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggNDQ4SDExMmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0MTZjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0LTMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA3LjEgMS42IDEzLjcgNC40IDE5LjhMNDc2IDIzOS4yYy0xNS40IDkuMi0zNS4zIDQtNDQuMi0xMS42TDM1MC4zIDg1QzM2MSA3Ni4yIDM2OCA2MyAzNjggNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhjMCAxNSA3IDI4LjIgMTcuNyAzN2wtODEuNSAxNDIuNmMtOC45IDE1LjYtMjguOSAyMC44LTQ0LjIgMTEuNmwtNzIuMy00My40YzIuNy02IDQuNC0xMi43IDQuNC0xOS44IDAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgMTQ5LjUgMCAxNzZzMjEuNSA0OCA0OCA0OGMyLjYgMCA1LjItLjQgNy43LS44TDEyOCA0MTZoMzg0bDcyLjMtMTkyLjhjMi41LjQgNS4xLjggNy43LjggMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3J1dGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNy4zMSAxODUuNzFsLTE4MS0xODFhMTYgMTYgMCAwIDAtMjIuNjIgMEwyODEgMjcuMzFhMTYgMTYgMCAwIDAgMCAyMi42M2wxODEgMTgxYTE2IDE2IDAgMCAwIDIyLjYzIDBsMjIuNjItMjIuNjNhMTYgMTYgMCAwIDAgLjA2LTIyLjZ6bS0xNzkuNTQgNjYuNDFsLTY3Ljg5LTY3Ljg5IDU1LjEtNTUuMS00NS4yNS00NS4yNS0xMDkuNjcgMTA5LjY3YTk2LjA4IDk2LjA4IDAgMCAwLTI1LjY3IDQ2LjI5TDEwNi42NSAzNjAuMWwtMTAyIDEwMmExNiAxNiAwIDAgMCAwIDIyLjYzbDIyLjYyIDIyLjYyYTE2IDE2IDAgMCAwIDIyLjYzIDBsMTAyLTEwMiAxMjAuMjUtMjcuNzVhOTUuODggOTUuODggMCAwIDAgNDYuMjktMjUuNjVsMTA5LjY4LTEwOS42OEwzODIuODcgMTk3em0tNTQuNTcgNTQuNTdhMzIgMzIgMCAwIDEtMTUuNDUgOC41NGwtNzkuMyAxOC4zMiAxOC4zLTc5LjNhMzIuMjIgMzIuMjIgMCAwIDEgOC41Ni0xNS40NWw5LjMxLTkuMzEgNjcuODkgNjcuODl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3ViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzkuMSA2LjNsLTIwOCA3OGMtMTguNyA3LTMxLjEgMjUtMzEuMSA0NXYyMjUuMWMwIDE4LjIgMTAuMyAzNC44IDI2LjUgNDIuOWwyMDggMTA0YzEzLjUgNi44IDI5LjQgNi44IDQyLjkgMGwyMDgtMTA0YzE2LjMtOC4xIDI2LjUtMjQuOCAyNi41LTQyLjlWMTI5LjNjMC0yMC0xMi40LTM3LjktMzEuMS00NC45bC0yMDgtNzhDMjYyIDIuMiAyNTAgMi4yIDIzOS4xIDYuM3pNMjU2IDY4LjRsMTkyIDcydjEuMWwtMTkyIDc4LTE5Mi03OHYtMS4xbDE5Mi03MnptMzIgMzU2VjI3NS41bDE2MC02NXYxMzMuOWwtMTYwIDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1YmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC42IDI1MC4yTDM5MiAyMTRWMTA1LjVjMC0xNS05LjMtMjguNC0yMy40LTMzLjdsLTEwMC0zNy41Yy04LjEtMy4xLTE3LjEtMy4xLTI1LjMgMGwtMTAwIDM3LjVjLTE0LjEgNS4zLTIzLjQgMTguNy0yMy40IDMzLjdWMjE0bC05Ni42IDM2LjJDOS4zIDI1NS41IDAgMjY4LjkgMCAyODMuOVYzOTRjMCAxMy42IDcuNyAyNi4xIDE5LjkgMzIuMmwxMDAgNTBjMTAuMSA1LjEgMjIuMSA1LjEgMzIuMiAwbDEwMy45LTUyIDEwMy45IDUyYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDAtNTBjMTIuMi02LjEgMTkuOS0xOC42IDE5LjktMzIuMlYyODMuOWMwLTE1LTkuMy0yOC40LTIzLjQtMzMuN3pNMzU4IDIxNC44bC04NSAzMS45di02OC4ybDg1LTM3djczLjN6TTE1NCAxMDQuMWwxMDItMzguMiAxMDIgMzguMnYuNmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42em04NCAyOTEuMWwtODUgNDIuNXYtNzkuMWw4NS0zOC44djc1LjR6bTAtMTEybC0xMDIgNDEuNC0xMDItNDEuNHYtLjZsMTAyLTM4LjIgMTAyIDM4LjJ2LjZ6bTI0MCAxMTJsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzguMDYgMjU2TDQ0NC40OCA4OS41N2M0LjY5LTQuNjkgNC42OS0xMi4yOSAwLTE2Ljk3LTMyLjgtMzIuOC04NS45OS0zMi44LTExOC43OSAwTDIxMC4xOCAxODguMTJsLTI0Ljg2LTI0Ljg2YzQuMzEtMTAuOTIgNi42OC0yMi44MSA2LjY4LTM1LjI2IDAtNTMuMDItNDIuOTgtOTYtOTYtOTZTMCA3NC45OCAwIDEyOHM0Mi45OCA5NiA5NiA5NmM0LjU0IDAgOC45OS0uMzIgMTMuMzYtLjkzTDE0Mi4yOSAyNTZsLTMyLjkzIDMyLjkzYy00LjM3LS42MS04LjgzLS45My0xMy4zNi0uOTMtNTMuMDIgMC05NiA0Mi45OC05NiA5NnM0Mi45OCA5NiA5NiA5NiA5Ni00Mi45OCA5Ni05NmMwLTEyLjQ1LTIuMzctMjQuMzQtNi42OC0zNS4yNmwyNC44Ni0yNC44NkwzMjUuNjkgNDM5LjRjMzIuOCAzMi44IDg1Ljk5IDMyLjggMTE4Ljc5IDAgNC42OS00LjY4IDQuNjktMTIuMjggMC0xNi45N0wyNzguMDYgMjU2ek05NiAxNjBjLTE3LjY0IDAtMzItMTQuMzYtMzItMzJzMTQuMzYtMzIgMzItMzIgMzIgMTQuMzYgMzIgMzItMTQuMzYgMzItMzIgMzJ6bTAgMjU2Yy0xNy42NCAwLTMyLTE0LjM2LTMyLTMyczE0LjM2LTMyIDMyLTMyIDMyIDE0LjM2IDMyIDMyLTE0LjM2IDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhdGFiYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA3My4xNDN2NDUuNzE0QzQ0OCAxNTkuMTQzIDM0Ny42NjcgMTkyIDIyNCAxOTJTMCAxNTkuMTQzIDAgMTE4Ljg1N1Y3My4xNDNDMCAzMi44NTcgMTAwLjMzMyAwIDIyNCAwczIyNCAzMi44NTcgMjI0IDczLjE0M3pNNDQ4IDE3NnYxMDIuODU3QzQ0OCAzMTkuMTQzIDM0Ny42NjcgMzUyIDIyNCAzNTJTMCAzMTkuMTQzIDAgMjc4Ljg1N1YxNzZjNDguMTI1IDMzLjE0MyAxMzYuMjA4IDQ4LjU3MiAyMjQgNDguNTcyUzM5OS44NzQgMjA5LjE0MyA0NDggMTc2em0wIDE2MHYxMDIuODU3QzQ0OCA0NzkuMTQzIDM0Ny42NjcgNTEyIDIyNCA1MTJTMCA0NzkuMTQzIDAgNDM4Ljg1N1YzMzZjNDguMTI1IDMzLjE0MyAxMzYuMjA4IDQ4LjU3MiAyMjQgNDguNTcyUzM5OS44NzQgMzY5LjE0MyA0NDggMzM2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDI2MGMwIDE1LjQ2NC0xMi41MzYgMjgtMjggMjhzLTI4LTEyLjUzNi0yOC0yOGMwLTQ0LjExMiAzNS44ODgtODAgODAtODBzODAgMzUuODg4IDgwIDgwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtMTMuMjM0LTEwLjc2Ny0yNC0yNC0yNHMtMjQgMTAuNzY2LTI0IDI0em0yNC0xNzZjLTk3LjA0NyAwLTE3NiA3OC45NTMtMTc2IDE3NiAwIDE1LjQ2NCAxMi41MzYgMjggMjggMjhzMjgtMTIuNTM2IDI4LTI4YzAtNjYuMTY4IDUzLjgzMi0xMjAgMTIwLTEyMHMxMjAgNTMuODMyIDEyMCAxMjBjMCA3NS4xNjQtNzEuMDA5IDcwLjMxMS03MS45OTcgMTQzLjYyMkwyODggNDA0YzAgMjguNjczLTIzLjMyNyA1Mi01MiA1Mi0xNS40NjQgMC0yOCAxMi41MzYtMjggMjhzMTIuNTM2IDI4IDI4IDI4YzU5LjQ3NSAwIDEwNy44NzYtNDguMzI4IDEwOC0xMDcuNzc0LjU5NS0zNC40MjggNzItNDguMjQgNzItMTQ0LjIyNiAwLTk3LjA0Ny03OC45NTMtMTc2LTE3Ni0xNzZ6bTI2OC40ODUtNTIuMjAxTDQ4MC4yIDMuNTE1Yy00LjY4Ny00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMzc2LjIgOTAuNTQ0Yy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMjguMjg1IDI4LjI4NWM0LjY4NiA0LjY4NiAxMi4yODQgNC42ODYgMTYuOTcgMGw4Ny4wMy04Ny4wMjljNC42ODctNC42ODggNC42ODctMTIuMjg2IDAtMTYuOTcyek0xNjguOTcgMzE0Ljc0NWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3IDBMMy41MTUgNDYzLjIzYy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFMMzEuOCA1MDguNDg1YzQuNjg3IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NzEgMEwxOTcuMjU2IDM2MGM0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45NzFsLTI4LjI4Ni0yOC4yODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVtb2NyYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM3LjMgMjU2LjlsLTE5LjYtMjkuNGMtMjguMi00Mi4zLTc1LjMtNjcuNS0xMjYuMS02Ny41SDI1NmwtODEuMi04MS4yYzIwLjEtMjAuMSAyMi42LTUxLjEgNy41LTczLjktMy40LTUuMi0xMC44LTUuOS0xNS4yLTEuNWwtNDEuOCA0MS44TDgyLjQgMi40Yy0zLjYtMy42LTkuNi0zLTEyLjQgMS4yLTEyLjMgMTguNi0xMC4zIDQ0IDYuMSA2MC40IDMuMyAzLjMgNy4zIDUuMyAxMS4zIDcuNS0yLjIgMS43LTQuNyAzLjEtNi40IDUuNEw2LjQgMTc2LjJjLTcuMyA5LjctOC40IDIyLjctMyAzMy41bDE0LjMgMjguNmM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43aDMxYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDEzOCAyMTJsNTQgMTA4aDM1MnYtNzcuOGMxNi4yIDEyLjIgMTguMyAxNy42IDQwLjEgNTAuMyA0LjkgNy40IDE0LjggOS4zIDIyLjIgNC40bDI2LjYtMTcuN2M3LjMtNSA5LjMtMTQuOSA0LjQtMjIuM3ptLTM0MS4xLTEzLjZsLTE2LjUgMTYuMSAzLjkgMjIuN2MuNyA0LjEtMy42IDcuMi03LjIgNS4zTDI1NiAyNzYuN2wtMjAuNCAxMC43Yy0zLjYgMS45LTcuOS0xLjItNy4yLTUuM2wzLjktMjIuNy0xNi41LTE2LjFjLTMtMi45LTEuMy03LjkgMi44LTguNWwyMi44LTMuMyAxMC4yLTIwLjdjMS44LTMuNyA3LjEtMy43IDkgMGwxMC4yIDIwLjcgMjIuOCAzLjNjNCAuNiA1LjYgNS42IDIuNiA4LjV6bTExMiAwbC0xNi41IDE2LjEgMy45IDIyLjdjLjcgNC4xLTMuNiA3LjItNy4yIDUuM0wzNjggMjc2LjdsLTIwLjQgMTAuN2MtMy42IDEuOS03LjktMS4yLTcuMi01LjNsMy45LTIyLjctMTYuNS0xNi4xYy0zLTIuOS0xLjMtNy45IDIuOC04LjVsMjIuOC0zLjMgMTAuMi0yMC43YzEuOC0zLjcgNy4xLTMuNyA5IDBsMTAuMiAyMC43IDIyLjggMy4zYzQgLjYgNS42IDUuNiAyLjYgOC41em0xMTIgMGwtMTYuNSAxNi4xIDMuOSAyMi43Yy43IDQuMS0zLjYgNy4yLTcuMiA1LjNMNDgwIDI3Ni43bC0yMC40IDEwLjdjLTMuNiAxLjktNy45LTEuMi03LjItNS4zbDMuOS0yMi43LTE2LjUtMTYuMWMtMy0yLjktMS4zLTcuOSAyLjgtOC41bDIyLjgtMy4zIDEwLjItMjAuN2MxLjgtMy43IDcuMS0zLjcgOSAwbDEwLjIgMjAuNyAyMi44IDMuM2M0IC42IDUuNiA1LjYgMi42IDguNXpNMTkyIDQ5NmMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2di04MGgxNjB2ODBjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzNTJIMTkydjE0NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXNrdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHYzMjBjMCAyNi41IDIxLjUgNDggNDggNDhoMTkybC0xNiA0OGgtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMjcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC03MmwtMTYtNDhoMTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTYgMzUySDY0VjY0aDQ0OHYyODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGhhcm1hY2hha3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NSAyMjUuMDZsLTE3LjIyIDEuMDhjLTUuMjctMzkuNDktMjAuNzktNzUuNjQtNDMuODYtMTA1Ljg0bDEyLjk1LTExLjQzYzYuOTItNi4xMSA3LjI1LTE2Ljc5LjczLTIzLjMxTDQyNi40NCA2NC40Yy02LjUzLTYuNTMtMTcuMjEtNi4xOS0yMy4zMS43M0wzOTEuNyA3OC4wN2MtMzAuMi0yMy4wNi02Ni4zNS0zOC41OC0xMDUuODMtNDMuODZMMjg2Ljk0IDE3Yy41OC05LjIxLTYuNzQtMTctMTUuOTctMTdoLTI5Ljk0Yy05LjIzIDAtMTYuNTQgNy43OS0xNS45NyAxN2wxLjA4IDE3LjIyYy0zOS40OSA1LjI3LTc1LjY0IDIwLjc5LTEwNS44MyA0My44NmwtMTEuNDMtMTIuOTVjLTYuMTEtNi45Mi0xNi43OS03LjI1LTIzLjMxLS43M0w2NC40IDg1LjU2Yy02LjUzIDYuNTMtNi4xOSAxNy4yMS43MyAyMy4zMWwxMi45NSAxMS40M2MtMjMuMDYgMzAuMi0zOC41OCA2Ni4zNS00My44NiAxMDUuODRMMTcgMjI1LjA2Yy05LjIxLS41OC0xNyA2Ljc0LTE3IDE1Ljk3djI5Ljk0YzAgOS4yMyA3Ljc5IDE2LjU0IDE3IDE1Ljk3bDE3LjIyLTEuMDhjNS4yNyAzOS40OSAyMC43OSA3NS42NCA0My44NiAxMDUuODNsLTEyLjk1IDExLjQzYy02LjkyIDYuMTEtNy4yNSAxNi43OS0uNzMgMjMuMzFsMjEuMTcgMjEuMTdjNi41MyA2LjUzIDE3LjIxIDYuMTkgMjMuMzEtLjczbDExLjQzLTEyLjk1YzMwLjIgMjMuMDYgNjYuMzUgMzguNTggMTA1Ljg0IDQzLjg2TDIyNS4wNiA0OTVjLS41OCA5LjIxIDYuNzQgMTcgMTUuOTcgMTdoMjkuOTRjOS4yMyAwIDE2LjU0LTcuNzkgMTUuOTctMTdsLTEuMDgtMTcuMjJjMzkuNDktNS4yNyA3NS42NC0yMC43OSAxMDUuODQtNDMuODZsMTEuNDMgMTIuOTVjNi4xMSA2LjkyIDE2Ljc5IDcuMjUgMjMuMzEuNzNsMjEuMTctMjEuMTdjNi41My02LjUzIDYuMTktMTcuMjEtLjczLTIzLjMxbC0xMi45NS0xMS40M2MyMy4wNi0zMC4yIDM4LjU4LTY2LjM1IDQzLjg2LTEwNS44M2wxNy4yMiAxLjA4YzkuMjEuNTggMTctNi43NCAxNy0xNS45N3YtMjkuOTRjLS4wMS05LjIzLTcuOC0xNi41NC0xNy4wMS0xNS45N3pNMjgxLjg0IDk4LjYxYzI0LjgxIDQuMDcgNDcuNjMgMTMuNjYgNjcuMjMgMjcuNzhsLTQyLjYyIDQ4LjI5Yy04LjczLTUuNDQtMTguMzItOS41NC0yOC42Mi0xMS45NWw0LjAxLTY0LjEyem0tNTEuNjggMGw0LjAxIDY0LjEyYy0xMC4yOSAyLjQxLTE5Ljg5IDYuNTItMjguNjIgMTEuOTVsLTQyLjYyLTQ4LjI5YzE5LjYtMTQuMTIgNDIuNDItMjMuNzEgNjcuMjMtMjcuNzh6bS0xMDMuNzcgNjQuMzNsNDguMyA0Mi42MWMtNS40NCA4LjczLTkuNTQgMTguMzMtMTEuOTYgMjguNjJsLTY0LjEyLTQuMDFjNC4wNy0yNC44MSAxMy42Ni00Ny42MiAyNy43OC02Ny4yMnptLTI3Ljc4IDExOC45bDY0LjEyLTQuMDFjMi40MSAxMC4yOSA2LjUyIDE5Ljg5IDExLjk1IDI4LjYybC00OC4yOSA0Mi42MmMtMTQuMTItMTkuNi0yMy43MS00Mi40Mi0yNy43OC02Ny4yM3ptMTMxLjU1IDEzMS41NWMtMjQuODEtNC4wNy00Ny42My0xMy42Ni02Ny4yMy0yNy43OGw0Mi42MS00OC4zYzguNzMgNS40NCAxOC4zMyA5LjU0IDI4LjYyIDExLjk2bC00IDY0LjEyek0yNTYgMjg4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0yNS44NCAxMjUuMzlsLTQuMDEtNjQuMTJjMTAuMjktMi40MSAxOS44OS02LjUyIDI4LjYyLTExLjk2bDQyLjYxIDQ4LjNjLTE5LjYgMTQuMTItNDIuNDEgMjMuNzEtNjcuMjIgMjcuNzh6bTEwMy43Ny02NC4zM2wtNDguMjktNDIuNjJjNS40NC04LjczIDkuNTQtMTguMzIgMTEuOTUtMjguNjJsNjQuMTIgNC4wMWMtNC4wNyAyNC44Mi0xMy42NiA0Ny42NC0yNy43OCA2Ny4yM3ptLTM2LjM0LTExNC44OWMtMi40MS0xMC4yOS02LjUyLTE5Ljg5LTExLjk2LTI4LjYybDQ4LjMtNDIuNjFjMTQuMTIgMTkuNiAyMy43MSA0Mi40MiAyNy43OCA2Ny4yM2wtNjQuMTIgNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFnbm9zZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDI1NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNi0xNiA3LjItMTYgMTYgNy4yIDE2IDE2IDE2em0tMTc2LTgwYzQ4LjUgMCA4OC0zOS41IDg4LTg4UzM2OC41IDAgMzIwIDBzLTg4IDM5LjUtODggODggMzkuNSA4OCA4OCA4OHpNNTkuOCAzNjRjMTAuMiAxNS4zIDI5LjMgMTcuOCA0Mi45IDkuOCAxNi4yLTkuNiA1Ni4yLTMxLjcgMTA1LjMtNDguNlY0MTZoMjI0di05MC43YzQ5LjEgMTYuOCA4OS4xIDM5IDEwNS4zIDQ4LjYgMTMuNiA4IDMyLjcgNS4zIDQyLjktOS44bDE3LjgtMjYuN2M4LjgtMTMuMiA3LjYtMzQuNi0xMC00NS4xLTExLjktNy4xLTI5LjctMTctNTEuMS0yNy40LTI4LjEgNDYuMS05OS40IDE3LjgtODcuNy0zNS4xQzQwOS4zIDIxNy4yIDM2NS4xIDIwOCAzMjAgMjA4Yy01NyAwLTExMi45IDE0LjUtMTYwIDMyLjItLjIgNDAuMi00Ny42IDYzLjMtNzkuMiAzNi0xMS4yIDYtMjEuMyAxMS42LTI4LjcgMTYtMTcuNiAxMC41LTE4LjggMzEuOC0xMCA0NS4xTDU5LjggMzY0ek0zNjggMzQ0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptLTk2LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptLTE2MCA4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6bTUxMiAxOTJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VEMjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA2Ljc1IDIxNS4wNkwxLjIgMzcwLjk1Yy0zLjA4IDUgLjEgMTEuNSA1LjkzIDEyLjE0bDIwOC4yNiAyMi4wNy0xMDguNjQtMTkwLjF6TTcuNDEgMzE1LjQzTDgyLjcgMTkzLjA4IDYuMDYgMTQ3LjFjLTIuNjctMS42LTYuMDYuMzItNi4wNiAzLjQzdjE2Mi44MWMwIDQuMDMgNS4yOSA1LjUzIDcuNDEgMi4wOXpNMTguMjUgNDIzLjZsMTk0LjQgODcuNjZjNS4zIDIuNDUgMTEuMzUtMS40MyAxMS4zNS03LjI2di02NS42N2wtMjAzLjU1LTIyLjNjLTQuNDUtLjUtNi4yMyA1LjU5LTIuMiA3LjU3em04MS4yMi0yNTcuNzhMMTc5LjQgMjIuODhjNC4zNC03LjA2LTMuNTktMTUuMjUtMTAuNzgtMTEuMTRMMTcuODEgMTEwLjM1Yy0yLjQ3IDEuNjItMi4zOSA1LjI2LjEzIDYuNzhsODEuNTMgNDguNjl6TTI0MCAxNzZoMTA5LjIxTDI1My42MyA3LjYyQzI1MC41IDIuNTQgMjQ1LjI1IDAgMjQwIDBzLTEwLjUgMi41NC0xMy42MyA3LjYyTDEzMC43OSAxNzZIMjQwem0yMzMuOTQtMjguOWwtNzYuNjQgNDUuOTkgNzUuMjkgMTIyLjM1YzIuMTEgMy40NCA3LjQxIDEuOTQgNy40MS0yLjFWMTUwLjUzYzAtMy4xMS0zLjM5LTUuMDMtNi4wNi0zLjQzem0tOTMuNDEgMTguNzJsODEuNTMtNDguN2MyLjUzLTEuNTIgMi42LTUuMTYuMTMtNi43OGwtMTUwLjgxLTk4LjZjLTcuMTktNC4xMS0xNS4xMiA0LjA4LTEwLjc4IDExLjE0bDc5LjkzIDE0Mi45NHptNzkuMDIgMjUwLjIxTDI1NiA0MzguMzJ2NjUuNjdjMCA1Ljg0IDYuMDUgOS43MSAxMS4zNSA3LjI2bDE5NC40LTg3LjY2YzQuMDMtMS45NyAyLjI1LTguMDYtMi4yLTcuNTZ6bS04Ni4zLTIwMC45N2wtMTA4LjYzIDE5MC4xIDIwOC4yNi0yMi4wN2M1LjgzLS42NSA5LjAxLTcuMTQgNS45My0xMi4xNEwzNzMuMjUgMjE1LjA2ek0yNDAgMjA4SDEzOS41N0wyNDAgMzgzLjc1IDM0MC40MyAyMDhIMjQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VENiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjIuMTkgMTA5Ljk1TDI1Ni4yMSA5LjA3Yy0xOS45MS0xMi4xLTQ0LjUyLTEyLjEtNjQuNDMgMEwyNS44MSAxMDkuOTVjLTUuMzIgMy4yMy01LjI5IDExLjI3LjA2IDE0LjQ2TDIyNCAyNDIuNTVsMTk4LjE0LTExOC4xNGM1LjM1LTMuMTkgNS4zOC0xMS4yMi4wNS0xNC40NnptMTMuODQgNDQuNjNMMjQwIDI3MS40NnYyMjMuODJjMCAxMi44OCAxMy4zOSAyMC45MSAyNC4wNSAxNC40M2wxNTIuMTYtOTIuNDhjMTkuNjgtMTEuOTYgMzEuNzktMzMuOTQgMzEuNzktNTcuN3YtMTk3LjdjMC02LjQxLTYuNjQtMTAuNDMtMTEuOTctNy4yNXpNMCAxNjEuODN2MTk3LjdjMCAyMy43NyAxMi4xMSA0NS43NCAzMS43OSA1Ny43bDE1Mi4xNiA5Mi40N2MxMC42NyA2LjQ4IDI0LjA1LTEuNTQgMjQuMDUtMTQuNDNWMjcxLjQ2TDExLjk3IDE1NC41OEM2LjY0IDE1MS40IDAgMTU1LjQyIDAgMTYxLjgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VGaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDM4NGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTk2IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem05NiA5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZUZvdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTkyIDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZU9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMyMGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6TTIyNCAyODhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZVNpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDMyMGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6TTEyOCAzODRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTE5MiAxOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZVRocmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptOTYgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTk2IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VUd28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xOTIgMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkyIDE5Mkg0NzMuMjZjMTIuNjkgMjkuNTkgNy4xMiA2NS4yLTE3IDg5LjMyTDMyMCA0MTcuNThWNDY0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjI0YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjQwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTQ4MCAzNzZjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0tNDYuMzctMTg2LjdMMjU4LjcgMTQuMzdjLTE5LjE2LTE5LjE2LTUwLjIzLTE5LjE2LTY5LjM5IDBMMTQuMzcgMTg5LjNjLTE5LjE2IDE5LjE2LTE5LjE2IDUwLjIzIDAgNjkuMzlMMTg5LjMgNDMzLjYzYzE5LjE2IDE5LjE2IDUwLjIzIDE5LjE2IDY5LjM5IDBMNDMzLjYzIDI1OC43YzE5LjE2LTE5LjE3IDE5LjE2LTUwLjI0IDAtNjkuNHpNOTYgMjQ4Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHptMTI4IDEyOGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTAtMTI4Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHptMC0xMjhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0xMjggMTI4Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWdpdGFsVGFjaG9ncmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggOTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MjU2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMTI4YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTMwNCAzNTJjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di04YzAtNC40MiAzLjU4LTggOC04aDIyNGM0LjQyIDAgOCAzLjU4IDggOHY4ek03MiAyODh2LTE2YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDgwYy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNDAtNjRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di00OGMwLTguODQgNy4xNi0xNiAxNi0xNmgyMDhjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NDh6bTI3MiAxMjhjMCA0LjQyLTMuNTggOC04IDhIMzQ0Yy00LjQyIDAtOC0zLjU4LTgtOHYtOGMwLTQuNDIgMy41OC04IDgtOGgyMjRjNC40MiAwIDggMy41OCA4IDh2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXJlY3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42MSAyMzMuMzJMMjc4LjY4IDkuMzljLTEyLjUyLTEyLjUyLTMyLjgzLTEyLjUyLTQ1LjM2IDBMOS4zOSAyMzMuMzJjLTEyLjUyIDEyLjUzLTEyLjUyIDMyLjgzIDAgNDUuMzZsMjIzLjkzIDIyMy45M2MxMi41MiAxMi41MyAzMi44MyAxMi41MyA0NS4zNiAwbDIyMy45My0yMjMuOTNjMTIuNTItMTIuNTMgMTIuNTItMzIuODMgMC00NS4zNnptLTEwMC45OCAxMi41NmwtODQuMjEgNzcuNzNjLTUuMTIgNC43My0xMy40MyAxLjEtMTMuNDMtNS44OFYyNjRoLTk2djY0YzAgNC40Mi0zLjU4IDgtOCA4aC0zMmMtNC40MiAwLTgtMy41OC04LTh2LTgwYzAtMTcuNjcgMTQuMzMtMzIgMzItMzJoMTEydi01My43M2MwLTYuOTcgOC4zLTEwLjYxIDEzLjQzLTUuODhsODQuMjEgNzcuNzNjMy40MyAzLjE3IDMuNDMgOC41OSAwIDExLjc2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpc2Vhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcyLjI5IDE5NS45bC02Ny4wNi0yM2MtMTkuMjgtNi42LTMzLjU0LTIwLjkyLTM4LjE0LTM4LjMxbC0xNi02MC40NWMtMTEuNTgtNDMuNzctNzYuNTctNTcuMTMtMTEwLTIyLjYyTDE5NSA5OS4yNGMtMTMuMjYgMTMuNzEtMzMuNTQgMjAuOTMtNTQuMiAxOS4zMWwtNzEuOS01LjYyYy01Mi00LjA3LTg2LjkzIDQ0Ljg5LTU5IDgyLjg0bDM4LjU0IDUyLjQyYzExLjA4IDE1LjA3IDEyLjgyIDMzLjg2IDQuNjQgNTAuMjRsLTI4LjQzIDU3QzQgMzk2LjY3IDQ3LjQ2IDQ0MC4yOSA5OC4xMSA0MjkuMjNsNzAtMTUuMjhjMjAuMTEtNC4zOSA0MS40NSAwIDU3LjA3IDExLjczbDU0LjMyIDQwLjgzYzM5LjMyIDI5LjU2IDEwMSA3LjU3IDEwNC40NS0zNy4yMmw0LjctNjEuODZjMS4zNS0xNy44IDEyLjgtMzMuODcgMzAuNjMtNDNsNjItMzEuNzRjNDQuODQtMjIuOTYgMzkuNTUtODAuMTctOC45OS05Ni43OXpNMTYwIDI1NmEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnptMTI4IDk2YTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyem0xNi0xMjhhMTYgMTYgMCAxIDEgMTYtMTYgMTYgMTYgMCAwIDEtMTYgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGl2aWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzNTJjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjRzMjguNjUgNjQgNjQgNjQgNjQtMjguNjUgNjQtNjQtMjguNjUtNjQtNjQtNjR6bTAtMTkyYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRzLTI4LjY1LTY0LTY0LTY0LTY0IDI4LjY1LTY0IDY0IDI4LjY1IDY0IDY0IDY0em0xOTIgNDhIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzODRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaXp6eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tOTYgMjA2LjZsLTI4LjcgMjguN2MtMTQuOCAxNC44LTM3LjgtNy41LTIyLjYtMjIuNmwyOC43LTI4LjctMjguNy0yOC43Yy0xNS0xNSA3LjctMzcuNiAyMi42LTIyLjZsMjguNyAyOC43IDI4LjctMjguN2MxNS0xNSAzNy42IDcuNyAyMi42IDIyLjZMMTc0LjYgMTkybDI4LjcgMjguN2MxNS4yIDE1LjItNy45IDM3LjQtMjIuNiAyMi42TDE1MiAyMTQuNnpNMjQ4IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6bTE0Ny4zLTE5NS4zYzE1LjIgMTUuMi03LjkgMzcuNC0yMi42IDIyLjZMMzQ0IDIxNC42bC0yOC43IDI4LjdjLTE0LjggMTQuOC0zNy44LTcuNS0yMi42LTIyLjZsMjguNy0yOC43LTI4LjctMjguN2MtMTUtMTUgNy43LTM3LjYgMjIuNi0yMi42bDI4LjcgMjguNyAyOC43LTI4LjdjMTUtMTUgMzcuNiA3LjcgMjIuNiAyMi42TDM2Ni42IDE5MmwyOC43IDI4Ljd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG5hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4xIDQ5NC4xYy0xLjEgOS41IDYuMyAxNy44IDE1LjkgMTcuOGwzMi4zLjFjOC4xIDAgMTQuOS01LjkgMTYtMTMuOS43LTQuOSAxLjgtMTEuMSAzLjQtMTguMUgzODBjMS42IDYuOSAyLjkgMTMuMiAzLjUgMTguMSAxLjEgOCA3LjkgMTQgMTYgMTMuOWwzMi4zLS4xYzkuNiAwIDE3LjEtOC4zIDE1LjktMTcuOC00LjYtMzcuOS0yNS42LTEyOS0xMTguOS0yMDcuNy0xNy42IDEyLjQtMzcuMSAyNC4yLTU4LjUgMzUuNCA2LjIgNC42IDExLjQgOS40IDE3IDE0LjJIMTU5LjdjMjEuMy0xOC4xIDQ3LTM1LjYgNzguNy01MS40QzQxMC41IDE5OS4xIDQ0Mi4xIDY1LjggNDQ3LjkgMTcuOSA0NDkgOC40IDQ0MS42LjEgNDMyIC4xTDM5OS42IDBjLTguMSAwLTE0LjkgNS45LTE2IDEzLjktLjcgNC45LTEuOCAxMS4xLTMuNCAxOC4xSDY3LjhjLTEuNi03LTIuNy0xMy4xLTMuNC0xOC4xLTEuMS04LTcuOS0xNC0xNi0xMy45TDE2LjEuMUM2LjUuMS0xIDguNC4xIDE3LjkgNS4zIDYwLjggMzEuNCAxNzEuOCAxNjAgMjU2IDMxLjUgMzQwLjIgNS4zIDQ1MS4yLjEgNDk0LjF6TTIyNCAyMTkuNmMtMjUuMS0xMy43LTQ2LjQtMjguNC02NC4zLTQzLjZoMTI4LjVjLTE3LjggMTUuMi0zOS4xIDMwLTY0LjIgNDMuNnpNMzU1LjEgOTZjLTUuOCAxMC40LTEyLjggMjEuMS0yMSAzMkgxMTRjLTguMy0xMC45LTE1LjMtMjEuNi0yMS0zMmgyNjIuMXpNOTIuOSA0MTZjNS44LTEwLjQgMTIuOC0yMS4xIDIxLTMyaDIxOS40YzguMyAxMC45IDE1LjQgMjEuNiAyMS4yIDMySDkyLjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC4wNiwyMjQsNDQ4LDI3Ny41NVY0OTZhMTYsMTYsMCwwLDEtMTYsMTZIMzY4YTE2LDE2LDAsMCwxLTE2LTE2VjM4NEgxOTJWNDk2YTE2LDE2LDAsMCwxLTE2LDE2SDExMmExNiwxNiwwLDAsMS0xNi0xNlYyODIuMDlDNTguODQsMjY4Ljg0LDMyLDIzMy42NiwzMiwxOTJhMzIsMzIsMCwwLDEsNjQsMCwzMi4wNiwzMi4wNiwwLDAsMCwzMiwzMlpNNTQ0LDExMnYzMmE2NCw2NCwwLDAsMS02NCw2NEg0NDh2MzUuNThMMzIwLDE5Ny44N1Y0OGMwLTE0LjI1LDE3LjIyLTIxLjM5LDI3LjMxLTExLjMxTDM3NC41OSw2NGg1My42M2MxMC45MSwwLDIzLjc1LDcuOTIsMjguNjIsMTcuNjlMNDY0LDk2aDY0QTE2LDE2LDAsMCwxLDU0NCwxMTJabS0xMTIsMGExNiwxNiwwLDEsMC0xNiwxNkExNiwxNiwwLDAsMCw0MzIsMTEyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbGxhclNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjIgMjMzLjRsLTEwOC0zMS42Qzg4LjcgMTk4LjIgODAgMTg2LjUgODAgMTczLjVjMC0xNi4zIDEzLjItMjkuNSAyOS41LTI5LjVoNjYuM2MxMi4yIDAgMjQuMiAzLjcgMzQuMiAxMC41IDYuMSA0LjEgMTQuMyAzLjEgMTkuNS0ybDM0LjgtMzRjNy4xLTYuOSA2LjEtMTguNC0xLjgtMjQuNUMyMzggNzQuOCAyMDcuNCA2NC4xIDE3NiA2NFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhoLTIuNUM0NS44IDY0LTUuNCAxMTguNy41IDE4My42YzQuMiA0Ni4xIDM5LjQgODMuNiA4My44IDk2LjZsMTAyLjUgMzBjMTIuNSAzLjcgMjEuMiAxNS4zIDIxLjIgMjguMyAwIDE2LjMtMTMuMiAyOS41LTI5LjUgMjkuNWgtNjYuM0MxMDAgMzY4IDg4IDM2NC4zIDc4IDM1Ny41Yy02LjEtNC4xLTE0LjMtMy4xLTE5LjUgMmwtMzQuOCAzNGMtNy4xIDYuOS02LjEgMTguNCAxLjggMjQuNSAyNC41IDE5LjIgNTUuMSAyOS45IDg2LjUgMzB2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDguMmM0Ni42LS45IDkwLjMtMjguNiAxMDUuNy03Mi43IDIxLjUtNjEuNi0xNC42LTEyNC44LTcyLjUtMTQxLjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9sbHlGbGF0YmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAzMjBoMzg0YzguOCAwIDE2LTcuMiAxNi0xNlY0OGMwLTguOC03LjItMTYtMTYtMTZINDQ4djEyOGwtNDgtMzItNDggMzJWMzJIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZ2MjU2YzAgOC44IDcuMiAxNiAxNiAxNnptNDE2IDY0SDEyOFYxNmMwLTguOC03LjItMTYtMTYtMTZIMTZDNy4yIDAgMCA3LjIgMCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2MzY4YzAgOC44IDcuMiAxNiAxNiAxNmg4Mi45Yy0xLjggNS0yLjkgMTAuNC0yLjkgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLjItMTEtMi45LTE2SDQ1MWMtMS44IDUtMi45IDEwLjQtMi45IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS4yLTExLTIuOS0xNkg2MjRjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9sbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk0LjIgMjc3LjdjMTggNSAzNC43IDEzLjQgNDkuNSAyNC43bDE2MS41LTUzLjhjOC40LTIuOCAxMi45LTExLjkgMTAuMS0yMC4yTDQ1NC45IDQ3LjJjLTIuOC04LjQtMTEuOS0xMi45LTIwLjItMTAuMWwtNjEuMSAyMC40IDMzLjEgOTkuNEwzNDYgMTc3bC0zMy4xLTk5LjQtNjEuNiAyMC41Yy04LjQgMi44LTEyLjkgMTEuOS0xMC4xIDIwLjJsNTMgMTU5LjR6bTI4MSA0OC43TDU2NSAyOTZjLTIuOC04LjQtMTEuOS0xMi45LTIwLjItMTAuMWwtMjEzLjUgNzEuMmMtMTcuMi0yMi00My42LTM2LjQtNzMuNS0zN0wxNTguNCAyMS45QzE1NCA4LjggMTQxLjggMCAxMjggMEgxNkM3LjIgMCAwIDcuMiAwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg4OC45bDkyLjIgMjc2LjdjLTI2LjEgMjAuNC00MS43IDUzLjYtMzYgOTAuNSA2LjEgMzkuNCAzNy45IDcyLjMgNzcuMyA3OS4yIDYwLjIgMTAuNyAxMTIuMy0zNC44IDExMy40LTkyLjZsMjEzLjMtNzEuMmM4LjMtMi44IDEyLjktMTEuOCAxMC4xLTIwLjJ6TTI1NiA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbmF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDE2YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSAwIDI1NiAwIDQ4IDkzLjEgNDggMjA4czkzLjEgMjA4IDIwOCAyMDh6TTIzMy44IDk3LjRWODAuNmMwLTkuMiA3LjQtMTYuNiAxNi42LTE2LjZoMTEuMWM5LjIgMCAxNi42IDcuNCAxNi42IDE2LjZ2MTdjMTUuNS44IDMwLjUgNi4xIDQzIDE1LjQgNS42IDQuMSA2LjIgMTIuMyAxLjIgMTcuMUwzMDYgMTQ1LjZjLTMuOCAzLjctOS41IDMuOC0xNCAxLTUuNC0zLjQtMTEuNC01LjEtMTcuOC01LjFoLTM4LjljLTkgMC0xNi4zIDguMi0xNi4zIDE4LjMgMCA4LjIgNSAxNS41IDEyLjEgMTcuNmw2Mi4zIDE4LjdjMjUuNyA3LjcgNDMuNyAzMi40IDQzLjcgNjAuMSAwIDM0LTI2LjQgNjEuNS01OS4xIDYyLjR2MTYuOGMwIDkuMi03LjQgMTYuNi0xNi42IDE2LjZoLTExLjFjLTkuMiAwLTE2LjYtNy40LTE2LjYtMTYuNnYtMTdjLTE1LjUtLjgtMzAuNS02LjEtNDMtMTUuNC01LjYtNC4xLTYuMi0xMi4zLTEuMi0xNy4xbDE2LjMtMTUuNWMzLjgtMy43IDkuNS0zLjggMTQtMSA1LjQgMy40IDExLjQgNS4xIDE3LjggNS4xaDM4LjljOSAwIDE2LjMtOC4yIDE2LjMtMTguMyAwLTguMi01LTE1LjUtMTIuMS0xNy42bC02Mi4zLTE4LjdjLTI1LjctNy43LTQzLjctMzIuNC00My43LTYwLjEuMS0zNCAyNi40LTYxLjUgNTkuMS02Mi40ek00ODAgMzUyaC0zMi41Yy0xOS42IDI2LTQ0LjYgNDcuNy03MyA2NGg2My44YzUuMyAwIDkuNiAzLjYgOS42IDh2MTZjMCA0LjQtNC4zIDgtOS42IDhINzMuNmMtNS4zIDAtOS42LTMuNi05LjYtOHYtMTZjMC00LjQgNC4zLTggOS42LThoNjMuOGMtMjguNC0xNi4zLTUzLjMtMzgtNzMtNjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9vckNsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgNDQ4SDUxMlY1MC44QzUxMiAyMi43OCA0OTAuNDcgMCA0NjQgMEgxNzUuOTljLTI2LjQ3IDAtNDggMjIuNzgtNDggNTAuOFY0NDhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDYwOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTQxNS45OSAyODhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzJjLjAxIDE3LjY3LTE0LjMyIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvb3JPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0NDhoLTgwVjExMy40NUM1NDQgODYuMTkgNTIyLjQ3IDY0IDQ5NiA2NEgzODR2NjRoOTZ2Mzg0aDE0NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTMxMi4yNCAxLjAxbC0xOTIgNDkuNzRDMTA1Ljk5IDU0LjQ0IDk2IDY3LjcgOTYgODIuOTJWNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMzZWMzMuMThjMC0yMS41OC0xOS41Ni0zNy40MS0zOS43Ni0zMi4xN3pNMjY0IDI4OGMtMTMuMjUgMC0yNC0xNC4zMy0yNC0zMnMxMC43NS0zMiAyNC0zMiAyNCAxNC4zMyAyNCAzMi0xMC43NSAzMi0yNCAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3RDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em04MCAyNDhjMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwcy04MC0zNS44ODgtODAtODAgMzUuODg4LTgwIDgwLTgwIDgwIDM1Ljg4OCA4MCA4MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNjcuMnYtMjguMWMtMjguMi0zNi4zLTQ3LjEtNzkuMy01NC4xLTEyNS4yLTIuMS0xMy41LTE5LTE4LjgtMjcuOC04LjMtMjEuMSAyNC45LTM3LjcgNTQuMS00OC45IDg2LjUgMzQuMiAzOC4zIDgwIDY0LjYgMTMwLjggNzUuMXpNNDAwIDY0Yy00NC4yIDAtODAgMzUuOS04MCA4MC4xdjU5LjRDMjE1LjYgMTk3LjMgMTI3IDEzMyA4NyA0MS44Yy01LjUtMTIuNS0yMy4yLTEzLjItMjktLjlDNDEuNCA3NiAzMiAxMTUuMiAzMiAxNTYuNmMwIDcwLjggMzQuMSAxMzYuOSA4NS4xIDE4NS45IDEzLjIgMTIuNyAyNi4xIDIzLjIgMzguOSAzMi44bC0xNDMuOSAzNkMxLjQgNDE0LTMuNCA0MjYuNCAyLjYgNDM1LjcgMjAgNDYyLjYgNjMgNTA4LjIgMTU1LjggNTEyYzggLjMgMTYtMi42IDIyLjEtNy45bDY1LjItNTYuMUgzMjBjODguNCAwIDE2MC03MS41IDE2MC0xNTkuOVYxMjhsMzItNjRINDAwem0wIDk2LjFjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgMGg4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYxNjhoODcuN2MxNy44IDAgMjYuNyAyMS41IDE0LjEgMzQuMUwyNjkuNyAzNzguM2MtNy41IDcuNS0xOS44IDcuNS0yNy4zIDBMOTAuMSAyMjYuMWMtMTIuNi0xMi42LTMuNy0zNC4xIDE0LjEtMzQuMUgxOTJWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTI5NiAzNzZ2MTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTQ2LjdsNDkgNDljMjAuMSAyMC4xIDUyLjUgMjAuMSA3Mi42IDBsNDktNDlINDg4YzEzLjMgMCAyNCAxMC43IDI0IDI0em0tMTI0IDg4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6bTY0IDBjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmFmdGluZ0NvbXBhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU3LjAxIDM0NC40MmMtMjUuMDUgMjAuMzMtNTIuNjMgMzcuMTgtODIuNTQgNDkuMDVsNTQuMzggOTQuMTkgNTMuOTUgMjMuMDRjOS44MSA0LjE5IDIwLjg5LTIuMjEgMjIuMTctMTIuOGw3LjAyLTU4LjI1LTU0Ljk4LTk1LjIzem00Mi40OS05NC41NmM0Ljg2LTcuNjcgMS44OS0xNy45OS02LjA1LTIyLjM5bC0yOC4wNy0xNS41N2MtNy40OC00LjE1LTE2LjYxLTEuNDYtMjEuMjYgNS43MkM0MDMuMDEgMjgxLjE1IDMzMi4yNSAzMjAgMjU2IDMyMGMtMjMuOTMgMC00Ny4yMy00LjI1LTY5LjQxLTExLjUzbDY3LjM2LTExNi42OGMuNy4wMiAxLjM0LjIxIDIuMDQuMjFzMS4zNS0uMTkgMi4wNC0uMjFsNTEuMDkgODguNWMzMS4yMy04Ljk2IDU5LjU2LTI1Ljc1IDgyLjYxLTQ4LjkybC01MS43OS04OS43MUMzNDcuMzkgMTI4LjAzIDM1MiAxMTIuNjMgMzUyIDk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2YzAgMTYuNjMgNC42MSAzMi4wMyAxMi4wNSA0NS42NmwtNjguMyAxMTguMzFjLTEyLjU1LTExLjYxLTIzLjk2LTI0LjU5LTMzLjY4LTM5LTQuNzktNy4xLTEzLjk3LTkuNjItMjEuMzgtNS4zM2wtMjcuNzUgMTYuMDdjLTcuODUgNC41NC0xMC42MyAxNC45LTUuNjQgMjIuNDcgMTUuNTcgMjMuNjQgMzQuNjkgNDQuMjEgNTUuOTggNjIuMDJMMCA0MzkuNjZsNy4wMiA1OC4yNWMxLjI4IDEwLjU5IDEyLjM2IDE2Ljk5IDIyLjE3IDEyLjhsNTMuOTUtMjMuMDQgNzAuOC0xMjIuNjNDMTg2LjEzIDM3Ny4yOCAyMjAuNjIgMzg0IDI1NiAzODRjOTkuMDUgMCAxOTAuODgtNTEuMDEgMjQzLjUtMTM0LjE0ek0yNTYgNjRjMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnMtMTQuMzMgMzItMzIgMzItMzItMTQuMzMtMzItMzIgMTQuMzMtMzIgMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjMyIDI1NS43OEwxOTIgMjIzLjk2bC05MS4yOCA2OC42OWMtMTAuMDggMTAuMDgtMi45NCAyNy4zMSAxMS4zMSAyNy4zMWgyMjIuN2MtOS40NC0yNi40LTE0LjczLTU0LjQ3LTE0LjczLTgzLjM4di00Mi4yN2wtMTE5LjczLTg3LjZjLTIzLjgyLTE1Ljg4LTU1LjI5LTE0LjAxLTc3LjA2IDQuNTlMNS44MSAyMjcuNjRjLTEyLjM4IDEwLjMzLTMuNDUgMzAuNDIgMTIuNTEgMjguMTR6bTU1Ni44NyAzNC4xbC0xMDAuNjYtNTAuMzFBNDcuOTkyIDQ3Ljk5MiAwIDAgMSA0NDggMTk2LjY1di0zNi42OWg2NGwyOC4wOSAyMi42M2M2IDYgMTQuMTQgOS4zNyAyMi42MyA5LjM3aDMwLjk3YTMyIDMyIDAgMCAwIDI4LjYyLTE3LjY5bDE0LjMxLTI4LjYyYTMyLjAwNSAzMi4wMDUgMCAwIDAtMy4wMi0zMy41MWwtNzQuNTMtOTkuMzhDNTUzLjAyIDQuNyA1NDMuNTQgMCA1MzMuNDcgMEgyOTYuMDJjLTcuMTMgMC0xMC43IDguNTctNS42NiAxMy42MUwzNTIgNjMuOTYgMjkyLjQyIDg4LjhjLTUuOSAyLjk1LTUuOSAxMS4zNiAwIDE0LjMxTDM1MiAxMjcuOTZ2MTA4LjYyYzAgNzIuMDggMzYuMDMgMTM5LjM5IDk2IDE3OS4zOC0xOTUuNTkgNi44MS0zNDQuNTYgNDEuMDEtNDM0LjEgNjAuOTFDNS43OCA0NzguNjcgMCA0ODUuODggMCA0OTQuMiAwIDUwNCA3Ljk1IDUxMiAxNy43NiA1MTJoNDk5LjA4YzYzLjI5LjAxIDExOS42MS00Ny41NiAxMjIuOTktMTEwLjc2IDIuNTItNDcuMjgtMjIuNzMtOTAuNC02NC42NC0xMTEuMzZ6TTQ4OS4xOCA2Ni4yNWw0NS42NSAxMS40MWMtMi43NSAxMC45MS0xMi40NyAxOC44OS0yNC4xMyAxOC4yNi0xMi45Ni0uNzEtMjUuODUtMTIuNTMtMjEuNTItMjkuNjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhd1BvbHlnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDM1MmMtLjM1IDAtLjY3LjEtMS4wMi4xbC0zOS4yLTY1LjMyYzUuMDctOS4xNyA4LjIyLTE5LjU2IDguMjItMzAuNzhzLTMuMTQtMjEuNjEtOC4yMi0zMC43OGwzOS4yLTY1LjMyYy4zNS4wMS42Ny4xIDEuMDIuMSAzNS4zNSAwIDY0LTI4LjY1IDY0LTY0cy0yOC42NS02NC02NC02NGMtMjMuNjMgMC00NC4wNCAxMi45NS01NS4xMiAzMkgxMTkuMTJDMTA4LjA0IDQ0Ljk1IDg3LjYzIDMyIDY0IDMyIDI4LjY1IDMyIDAgNjAuNjUgMCA5NmMwIDIzLjYzIDEyLjk1IDQ0LjA0IDMyIDU1LjEydjIwOS43NUMxMi45NSAzNzEuOTYgMCAzOTIuMzcgMCA0MTZjMCAzNS4zNSAyOC42NSA2NCA2NCA2NCAyMy42MyAwIDQ0LjA0LTEyLjk1IDU1LjEyLTMyaDIwOS43NWMxMS4wOSAxOS4wNSAzMS40OSAzMiA1NS4xMiAzMiAzNS4zNSAwIDY0LTI4LjY1IDY0LTY0IC4wMS0zNS4zNS0yOC42NC02NC02My45OS02NHptLTI4OCA4Ljg4VjE1MS4xMkE2My44MjUgNjMuODI1IDAgMCAwIDExOS4xMiAxMjhoMjA4LjM2bC0zOC40NiA2NC4xYy0uMzUtLjAxLS42Ny0uMS0xLjAyLS4xLTM1LjM1IDAtNjQgMjguNjUtNjQgNjRzMjguNjUgNjQgNjQgNjRjLjM1IDAgLjY3LS4xIDEuMDItLjFsMzguNDYgNjQuMUgxMTkuMTJBNjMuNzQ4IDYzLjc0OCAwIDAgMCA5NiAzNjAuODh6TTI3MiAyNTZjMC04LjgyIDcuMTgtMTYgMTYtMTZzMTYgNy4xOCAxNiAxNi03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTZ6TTQwMCA5NmMwIDguODItNy4xOCAxNi0xNiAxNnMtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2IDE2IDcuMTggMTYgMTZ6TTY0IDgwYzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTYgNy4xOC0xNiAxNi0xNnpNNDggNDE2YzAtOC44MiA3LjE4LTE2IDE2LTE2czE2IDcuMTggMTYgMTYtNy4xOCAxNi0xNiAxNi0xNi03LjE4LTE2LTE2em0zMzYgMTZjLTguODIgMC0xNi03LjE4LTE2LTE2czcuMTgtMTYgMTYtMTYgMTYgNy4xOCAxNiAxNi03LjE4IDE2LTE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW1TdGVlbHBhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJDMTI4Ljk0IDMyIDAgODkuMzEgMCAxNjB2MTkyYzAgNzAuNjkgMTI4Ljk0IDEyOCAyODggMTI4czI4OC01Ny4zMSAyODgtMTI4VjE2MGMwLTcwLjY5LTEyOC45NC0xMjgtMjg4LTEyOHptLTgyLjk5IDE1OC4zNmMtNC40NSAxNi42MS0xNC41NCAzMC41Ny0yOC4zMSA0MC40OEMxMDAuMjMgMjE3LjQ2IDQ4IDE5MC43OCA0OCAxNjBjMC0zMC4xNiA1MC4xMS01Ni4zOSAxMjQuMDQtNzAuMDNsMjUuNiA0NC4zNGM5Ljg2IDE3LjA5IDEyLjQ4IDM2Ljk5IDcuMzcgNTYuMDV6TTI4OCAyNDBjLTIxLjA4IDAtNDEuNDEtMS02MC44OS0yLjcgOC4wNi0yNi4xMyAzMi4xNS00NS4zIDYwLjg5LTQ1LjNzNTIuODMgMTkuMTcgNjAuODkgNDUuM0MzMjkuNDEgMjM5IDMwOS4wOCAyNDAgMjg4IDI0MHptNjQtMTQ0YzAgMzUuMjktMjguNzEgNjQtNjQgNjRzLTY0LTI4LjcxLTY0LTY0VjgyLjk2YzIwLjQtMS44OCA0MS44LTIuOTYgNjQtMi45NnM0My42IDEuMDggNjQgMi45NlY5NnptNDYuOTMgMTM0LjljLTEzLjgxLTkuOTEtMjMuOTQtMjMuOS0yOC40LTQwLjU0LTUuMTEtMTkuMDYtMi40OS0zOC45NiA3LjM4LTU2LjA0bDI1LjY1LTQ0LjQyQzQ3Ny43MiAxMDMuNSA1MjggMTI5Ljc5IDUyOCAxNjBjMCAzMC44My01Mi40IDU3LjU0LTEyOS4wNyA3MC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMxLjM0IDEyMi4wNWw3My41My00Ny40MmExNiAxNiAwIDAgMCA0LjQ0LTIyLjE5bC04Ljg3LTEzLjMxYTE2IDE2IDAgMCAwLTIyLjE5LTQuNDRsLTExMC4wNiA3MUMzMTguNDMgOTYuOTEgMjcxLjIyIDk2IDI1NiA5NiAyMTkuNTUgOTYgMCAxMDAuNTUgMCAyMDguMTV2MTYwLjIzYzAgMzAuMjcgMjcuNSA1Ny42OCA3MiA3Ny44NnYtMTAxLjlhMjQgMjQgMCAxIDEgNDggMHYxMTguOTNjMzMuMDUgOS4xMSA3MS4wNyAxNS4wNiAxMTIgMTYuNzNWMzc2LjM5YTI0IDI0IDAgMSAxIDQ4IDBWNDgwYzQwLjkzLTEuNjcgNzguOTUtNy42MiAxMTItMTYuNzNWMzQ0LjM0YTI0IDI0IDAgMSAxIDQ4IDB2MTAxLjljNDQuNS0yMC4xOCA3Mi00Ny41OSA3Mi03Ny44NlYyMDguMTVjMC00My4zMi0zNS43Ni02OS43Ni04MC42Ni04Ni4xek0yNTYgMjcyLjI0Yy0xMTQuODggMC0yMDgtMjguNjktMjA4LTY0LjA5czkzLjEyLTY0LjA4IDIwOC02NC4wOGMxNy4xNSAwIDMzLjczLjcxIDQ5LjY4IDEuOTFsLTcyLjgxIDQ3YTE2IDE2IDAgMCAwLTQuNDMgMjIuMTlsOC44NyAxMy4zMWExNiAxNiAwIDAgMCAyMi4xOSA0LjQ0bDExOC42NC03Ni41MkM0MzAuMDkgMTY4IDQ2NCAxODYuODQgNDY0IDIwOC4xNWMwIDM1LjQtOTMuMTMgNjQuMDktMjA4IDY0LjA5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW1zdGlja0JpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYyLjggNDkuNTdhMTY5LjQ0IDE2OS40NCAwIDAgMC0yMzkuNSAwQzE4Ny44MiA4NSAxNjAuMTMgMTI4IDE2MC4xMyAxOTJ2ODUuODNsLTQwLjYyIDQwLjU5Yy05LjcgOS42OS0yNCAxMS4wNy0zNi43OCA2YTYwLjMzIDYwLjMzIDAgMCAwLTY1IDk4LjcyQzMzIDQzOC4zOSA1NC4yNCA0NDIuNyA3My44NSA0MzguMjFjLTQuNSAxOS42LS4xOCA0MC44MyAxNS4xIDU2LjFhNjAuMzUgNjAuMzUgMCAwIDAgOTguOC02NWMtNS4wOS0xMi43My0zLjcyLTI3IDYtMzYuNzVMMjM0LjM2IDM1Mmg4NS44OWExODcuODcgMTg3Ljg3IDAgMCAwIDYxLjg5LTEwYy0zOS42NC00My44OS0zOS44My0xMTAuMjMgMS4wNS0xNTEuMDcgMzQuMzgtMzQuMzYgODYuNzYtMzkuNDYgMTI4Ljc0LTE2LjggMS4zLTQ0Ljk2LTE0LjgxLTkwLjI4LTQ5LjEzLTEyNC41NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW1iYmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQgOTZINTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0djEwNEg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDI0djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTUyOCAxMjhoLTI0VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyODhoMjRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ1NiAzMmgtNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE2OEgyNTZWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjg4aDEyOHYxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVtcHN0ZXJGaXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxOC43IDEwNC4xbC4yLS4yLTE0LjQtNzJIMzA0djEyOGg2MC44YzE2LjItMTkuMyAzNC4yLTM4LjIgNTMuOS01NS44ek0yNzIgMzJIMTcxLjVsLTI1LjYgMTI4SDI3MlYzMnptMTg5LjMgNzIuMWMxOC4yIDE2LjMgMzUuNSAzMy43IDUxLjEgNTEuNSA1LjctNS42IDExLjQtMTEuMSAxNy4zLTE2LjNsMjEuMy0xOSAyMS4zIDE5YzEuMS45IDIuMSAyLjEgMy4xIDMuMS0uMS0uOC4yLTEuNSAwLTIuM2wtMjQtOTZDNTQ5LjcgMzcgNTQzLjMgMzIgNTM2IDMyaC05OC45bDEyLjMgNjEuNSAxMS45IDEwLjZ6TTE2IDE2MGg5Ny4zbDI1LjYtMTI4SDQwYy03LjMgMC0xMy43IDUtMTUuNSAxMi4xbC0yNCA5NkMtMiAxNTAuMiA1LjYgMTYwIDE2IDE2MHptMzI0LjYgMzJIMzJsNCAzMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgyOGwyMCAxNjB2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtMTZoMjA4LjhjLTMwLjItMzMuNy00OC44LTc3LjktNDguOC0xMjYuNCAwLTM1LjkgMTkuOS04Mi45IDUyLjYtMTI5LjZ6bTIxMC41LTI4LjhjLTE0LjkgMTMuMy0yOC4zIDI3LjItNDAuMiA0MS4yLTE5LjUtMjUuOC00My42LTUyLTcxLTc2LjQtNzAuMiA2Mi43LTEyMCAxNDQuMy0xMjAgMTkzLjYgMCA4Ny41IDcxLjYgMTU4LjQgMTYwIDE1OC40czE2MC03MC45IDE2MC0xNTguNGMuMS0zNi42LTM3LTExMi4yLTg4LjgtMTU4LjR6bS0xOC42IDIyOS40Yy0xNC43IDEwLjctMzIuOSAxNy01Mi41IDE3LTQ5IDAtODguOS0zMy41LTg4LjktODggMC0yNy4xIDE2LjUtNTEgNDkuNC05MS45IDQuNyA1LjYgNjcuMSA4OC4xIDY3LjEgODguMWwzOS44LTQ3YzIuOCA0LjggNS40IDkuNSA3LjcgMTQgMTguNiAzNi43IDEwLjggODMuNi0yMi42IDEwNy44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR1bXBzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MCAxNjBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTI0LTk2QzU0OS43IDM3IDU0My4zIDMyIDUzNiAzMmgtOTguOWwyNS42IDEyOEg1NjB6TTI3MiAzMkgxNzEuNWwtMjUuNiAxMjhIMjcyVjMyem0xMzIuNSAwSDMwNHYxMjhoMTI2LjFMNDA0LjUgMzJ6TTE2IDE2MGg5Ny4zbDI1LjYtMTI4SDQwYy03LjMgMC0xMy43IDUtMTUuNSAxMi4xbC0yNCA5NkMtMiAxNTAuMiA1LjYgMTYwIDE2IDE2MHptNTQ0IDY0aC0yMGw0LTMySDMybDQgMzJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMjhsMjAgMTYwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDMyMHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmwyMC0xNjBoMjhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVuZ2VvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjguNzMgMTk1LjMybC04Mi44MS01MS43NmMtOC4wNC01LjAyLTE4Ljk5LTIuMTctMjIuOTMgNi40NUEyNTQuMTkgMjU0LjE5IDAgMCAwIC41NCAyMzkuMjhDLS4wNSAyNDguMzcgNy41OSAyNTYgMTYuNjkgMjU2aDk3LjEzYzcuOTYgMCAxNC4wOC02LjI1IDE1LjAxLTE0LjE2IDEuMDktOS4zMyAzLjI0LTE4LjMzIDYuMjQtMjYuOTQgMi41Ni03LjM0LjI1LTE1LjQ2LTYuMzQtMTkuNTh6TTMxOS4wMyA4QzI5OC44NiAyLjgyIDI3Ny43NyAwIDI1NiAwcy00Mi44NiAyLjgyLTYzLjAzIDhjLTkuMTcgMi4zNS0xMy45MSAxMi42LTEwLjM5IDIxLjM5bDM3LjQ3IDEwNC4wM0ExNi4wMDMgMTYuMDAzIDAgMCAwIDIzNS4xIDE0NGg0MS44YzYuNzUgMCAxMi43Ny00LjIzIDE1LjA1LTEwLjU4bDM3LjQ3LTEwNC4wM2MzLjUyLTguNzktMS4yMi0xOS4wMy0xMC4zOS0yMS4zOXpNMTEyIDI4OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em0wIDEyOEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em03Ny4zMS0yODMuNjdsLTM2LjMyLTkwLjhjLTMuNTMtOC44My0xNC4xMy0xMi45OS0yMi40Mi04LjMxYTI1Ny4zMDggMjU3LjMwOCAwIDAgMC03MS42MSA1OS44OWMtNi4wNiA3LjMyLTMuODUgMTguNDggNC4yMiAyMy41Mmw4Mi45MyA1MS44M2M2LjUxIDQuMDcgMTQuNjYgMi42MiAyMC4xMS0yLjc5IDUuMTgtNS4xNSAxMC43OS05Ljg1IDE2Ljc5LTE0LjA1IDYuMjgtNC40MSA5LjE1LTEyLjE3IDYuMy0xOS4yOXpNMzk4LjE4IDI1Nmg5Ny4xM2M5LjEgMCAxNi43NC03LjYzIDE2LjE1LTE2LjcyYTI1NC4xMzUgMjU0LjEzNSAwIDAgMC0yMi40NS04OS4yN2MtMy45NC04LjYyLTE0Ljg5LTExLjQ3LTIyLjkzLTYuNDVsLTgyLjgxIDUxLjc2Yy02LjU5IDQuMTItOC45IDEyLjI0LTYuMzQgMTkuNTggMy4wMSA4LjYxIDUuMTUgMTcuNjIgNi4yNCAyNi45NC45MyA3LjkxIDcuMDUgMTQuMTYgMTUuMDEgMTQuMTZ6bTU0Ljg1LTE2Mi44OWEyNTcuMzA4IDI1Ny4zMDggMCAwIDAtNzEuNjEtNTkuODljLTguMjgtNC42OC0xOC44OC0uNTItMjIuNDIgOC4zMWwtMzYuMzIgOTAuOGMtMi44NSA3LjEyLjAyIDE0Ljg4IDYuMyAxOS4yOCA2IDQuMiAxMS42MSA4LjkgMTYuNzkgMTQuMDUgNS40NCA1LjQxIDEzLjYgNi44NiAyMC4xMSAyLjc5bDgyLjkzLTUxLjgzYzguMDctNS4wMyAxMC4yOS0xNi4xOSA0LjIyLTIzLjUxek00OTYgMjg4aC05NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTY0YzAtOC44NC03LjE2LTE2LTE2LTE2em0wIDEyOGgtOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnpNMjQwIDE3Ny42MlY0NzJjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LThWMTc3LjYyYy01LjIzLS44OS0xMC41Mi0xLjYyLTE2LTEuNjJzLTEwLjc3LjczLTE2IDEuNjJ6bS02NCA0MS41MVY0NzJjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LThWMTg5LjM2Yy0xMi43OCA3LjQ1LTIzLjg0IDE3LjQ3LTMyIDI5Ljc3em0xMjgtMjkuNzdWNDcyYzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04VjIxOS4xM2MtOC4xNi0xMi4zLTE5LjIyLTIyLjMyLTMyLTI5Ljc3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAyLjYgODMuMmw5MC4yIDkwLjJjMy44IDMuOCAzLjggMTAgMCAxMy44TDI3NC40IDQwNS42bC05Mi44IDEwLjNjLTEyLjQgMS40LTIyLjktOS4xLTIxLjUtMjEuNWwxMC4zLTkyLjhMMzg4LjggODMuMmMzLjgtMy44IDEwLTMuOCAxMy44IDB6bTE2Mi0yMi45bC00OC44LTQ4LjhjLTE1LjItMTUuMi0zOS45LTE1LjItNTUuMiAwbC0zNS40IDM1LjRjLTMuOCAzLjgtMy44IDEwIDAgMTMuOGw5MC4yIDkwLjJjMy44IDMuOCAxMCAzLjggMTMuOCAwbDM1LjQtMzUuNGMxNS4yLTE1LjMgMTUuMi00MCAwLTU1LjJ6TTM4NCAzNDYuMlY0NDhINjRWMTI4aDIyOS44YzMuMiAwIDYuMi0xLjMgOC41LTMuNWw0MC00MGM3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA2LjJjMC0xMC43LTEyLjktMTYtMjAuNS04LjVsLTQwIDQwYy0yLjIgMi4zLTMuNSA1LjMtMy41IDguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFZ2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBDODYgMCAwIDIxNCAwIDMyMHM4NiAxOTIgMTkyIDE5MiAxOTItODYgMTkyLTE5MlMyOTggMCAxOTIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFamVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzg0djY0YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMkgzMmMtMTcuNjczIDAtMzItMTQuMzI3LTMyLTMydi02NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJoMzg0YzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMnpNNDguMDUzIDMyMGgzNTEuODg2YzQxLjY1MSAwIDYzLjU4MS00OS42NzQgMzUuMzgzLTgwLjQzNUwyNTkuMzgzIDQ3LjU1OGMtMTkuMDE0LTIwLjc0My01MS43NTEtMjAuNzQ0LTcwLjc2NyAwTDEyLjY3IDIzOS41NjVDLTE1LjQ3NSAyNzAuMjY4IDYuMzI0IDMyMCA0OC4wNTMgMzIwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVsbGlwc2lzSCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjggMjU2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyIDMyLjItNzIgNzItNzIgNzIgMzIuMiA3MiA3MnptMTA0LTcyYy0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyIDcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MnptLTM1MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyIDcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxpcHNpc1YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDE5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTg0YzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzIgMzIuMi03MiA3Mi03MnpNMjQgODBjMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03MlMxMzUuOCA4IDk2IDggMjQgNDAuMiAyNCA4MHptMCAzNTJjMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyLTcyIDMyLjItNzIgNzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGVPcGVuVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMjE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTc2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNnptLTE2IDgwYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTc2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNnptOTYgMTIxLjEzYy0xNi40MiAwLTMyLjg0LTUuMDYtNDYuODYtMTUuMTlMMCAyNTAuODZWNDY0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjUwLjg2TDMwMi44NiA0MDEuOTRjLTE0LjAyIDEwLjEyLTMwLjQ0IDE1LjE5LTQ2Ljg2IDE1LjE5em0yMzcuNjEtMjU0LjE4Yy04Ljg1LTYuOTQtMTcuMjQtMTMuNDctMjkuNjEtMjIuODFWOTZjMC0yNi41MS0yMS40OS00OC00OC00OGgtNzcuNTVjLTMuMDQtMi4yLTUuODctNC4yNi05LjA0LTYuNTZDMzEyLjYgMjkuMTcgMjc5LjItLjM1IDI1NiAwYy0yMy4yLS4zNS01Ni41OSAyOS4xNy03My40MSA0MS40NC0zLjE3IDIuMy02IDQuMzYtOS4wNCA2LjU2SDk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ0LjE0Yy0xMi4zNyA5LjMzLTIwLjc2IDE1Ljg3LTI5LjYxIDIyLjgxQTQ3Ljk5NSA0Ny45OTUgMCAwIDAgMCAyMDAuNzJ2MTAuNjVsOTYgNjkuMzVWOTZoMzIwdjE4NC43Mmw5Ni02OS4zNXYtMTAuNjVjMC0xNC43NC02Ljc4LTI4LjY3LTE4LjM5LTM3Ljc3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgNDY0YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMjAwLjcyNGE0OCA0OCAwIDAgMSAxOC4zODctMzcuNzc2YzI0LjkxMy0xOS41MjkgNDUuNTAxLTM1LjM2NSAxNjQuMi0xMjEuNTExQzE5OS40MTIgMjkuMTcgMjMyLjc5Ny0uMzQ3IDI1NiAuMDAzYzIzLjE5OC0uMzU0IDU2LjU5NiAyOS4xNzIgNzMuNDEzIDQxLjQzMyAxMTguNjg3IDg2LjEzNyAxMzkuMzAzIDEwMS45OTUgMTY0LjIgMTIxLjUxMkE0OCA0OCAwIDAgMSA1MTIgMjAwLjcyNFY0NjR6bS02NS42NjYtMTk2LjYwNWMtMi41NjMtMy43MjgtNy43LTQuNTk1LTExLjMzOS0xLjkwNy0yMi44NDUgMTYuODczLTU1LjQ2MiA0MC43MDUtMTA1LjU4MiA3Ny4wNzktMTYuODI1IDEyLjI2Ni01MC4yMSA0MS43ODEtNzMuNDEzIDQxLjQzLTIzLjIxMS4zNDQtNTYuNTU5LTI5LjE0My03My40MTMtNDEuNDMtNTAuMTE0LTM2LjM3LTgyLjczNC02MC4yMDQtMTA1LjU4Mi03Ny4wNzktMy42MzktMi42ODgtOC43NzYtMS44MjEtMTEuMzM5IDEuOTA3bC05LjA3MiAxMy4xOTZhNy45OTggNy45OTggMCAwIDAgMS44MzkgMTAuOTY3YzIyLjg4NyAxNi44OTkgNTUuNDU0IDQwLjY5IDEwNS4zMDMgNzYuODY4IDIwLjI3NCAxNC43ODEgNTYuNTI0IDQ3LjgxMyA5Mi4yNjQgNDcuNTczIDM1LjcyNC4yNDIgNzEuOTYxLTMyLjc3MSA5Mi4yNjMtNDcuNTczIDQ5Ljg1LTM2LjE3OSA4Mi40MTgtNTkuOTcgMTA1LjMwMy03Ni44NjhhNy45OTggNy45OTggMCAwIDAgMS44MzktMTAuOTY3bC05LjA3MS0xMy4xOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek0xNzguMTE3IDI2Mi4xMDRDODcuNDI5IDE5Ni4yODcgODguMzUzIDE5Ni4xMjEgNjQgMTc3LjE2N1YxNTJjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDI3MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MjUuMTY3Yy0yNC4zNzEgMTguOTY5LTIzLjQzNCAxOS4xMjQtMTE0LjExNyA4NC45MzgtMTAuNSA3LjY1NS0zMS4zOTIgMjYuMTItNDUuODgzIDI1Ljg5NC0xNC41MDMuMjE4LTM1LjM2Ny0xOC4yMjctNDUuODgzLTI1Ljg5NXpNMzg0IDIxNy43NzVWMzYwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEg4OGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjIxNy43NzVjMTMuOTU4IDEwLjc5NCAzMy4zMjkgMjUuMjM2IDk1LjMwMyA3MC4yMTQgMTQuMTYyIDEwLjM0MSAzNy45NzUgMzIuMTQ1IDY0LjY5NCAzMi4wMSAyNi44ODcuMTM0IDUxLjAzNy0yMi4wNDEgNjQuNzItMzIuMDI1IDYxLjk1OC00NC45NjUgODEuMzI1LTU5LjQwNiA5NS4yODMtNzAuMTk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi4zIDE5MC44YzMuOS0zLjEgOS43LS4yIDkuNyA0LjdWNDAwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxOTUuNmMwLTUgNS43LTcuOCA5LjctNC43IDIyLjQgMTcuNCA1Mi4xIDM5LjUgMTU0LjEgMTEzLjYgMjEuMSAxNS40IDU2LjcgNDcuOCA5Mi4yIDQ3LjYgMzUuNy4zIDcyLTMyLjggOTIuMy00Ny42IDEwMi03NC4xIDEzMS42LTk2LjMgMTU0LTExMy43ek0yNTYgMzIwYzIzLjIuNCA1Ni42LTI5LjIgNzMuNC00MS40IDEzMi43LTk2LjMgMTQyLjgtMTA0LjcgMTczLjQtMTI4LjcgNS44LTQuNSA5LjItMTEuNSA5LjItMTguOXYtMTljMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MTljMCA3LjQgMy40IDE0LjMgOS4yIDE4LjkgMzAuNiAyMy45IDQwLjcgMzIuNCAxNzMuNCAxMjguNyAxNi44IDEyLjIgNTAuMiA0MS44IDczLjQgNDEuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFcXVhbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMwNEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0wLTE5MkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVyYXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuOTQxIDI3My45NDFjMTguNzQ1LTE4Ljc0NSAxOC43NDUtNDkuMTM3IDAtNjcuODgybC0xNjAtMTYwYy0xOC43NDUtMTguNzQ1LTQ5LjEzNi0xOC43NDYtNjcuODgzIDBsLTI1NiAyNTZjLTE4Ljc0NSAxOC43NDUtMTguNzQ1IDQ5LjEzNyAwIDY3Ljg4Mmw5NiA5NkE0OC4wMDQgNDguMDA0IDAgMCAwIDE0NCA0ODBoMzU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMzU1Ljg4M2wxNDIuMDU4LTE0Mi4wNTl6bS0zMDIuNjI3LTYyLjYyN2wxMzcuMzczIDEzNy4zNzNMMjY1LjM3MyA0MTZIMTUwLjYyOGwtODAtODAgMTI0LjY4Ni0xMjQuNjg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0aGVybmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAxOTJoLTQ4di00OGMwLTguOC03LjItMTYtMTYtMTZoLTQ4VjgwYzAtOC44LTcuMi0xNi0xNi0xNkgxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEg4MGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjI0YzAgOC44IDcuMiAxNiAxNiAxNmg4MFYzMjBoMzJ2MTI4aDY0VjMyMGgzMnYxMjhoNjRWMzIwaDMydjEyOGg2NFYzMjBoMzJ2MTI4aDgwYzguOCAwIDE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV1cm9TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMC43MDYgNDEzLjc2NWMtMS4zMTQtNi42My03LjgzNS0xMC44NzItMTQuNDI0LTkuMzY5LTEwLjY5MiAyLjQzOS0yNy40MjIgNS40MTMtNDUuNDI2IDUuNDEzLTU2Ljc2MyAwLTEwMS45MjktMzQuNzktMTIxLjQ2MS04NS40NDloMTEzLjY4OWExMiAxMiAwIDAgMCAxMS43MDgtOS4zNjlsNi4zNzMtMjguMzZjMS42ODYtNy41MDItNC4wMTktMTQuNjMxLTExLjcwOC0xNC42MzFIMTE1LjIyYy0xLjIxLTE0LjMyOC0xLjQxNC0yOC4yODcuMTM3LTQyLjI0NUgyNjEuOTVhMTIgMTIgMCAwIDAgMTEuNzIzLTkuNDM0bDYuNTEyLTI5Ljc1NWMxLjYzOC03LjQ4NC00LjA2MS0xNC41NjYtMTEuNzIzLTE0LjU2NkgxMzAuMTg0YzIwLjYzMy00NC45OTEgNjIuNjktNzUuMDMgMTE3LjYxOS03NS4wMyAxNC40ODYgMCAyOC41NjQgMi4yNSAzNy44NTEgNC4xNDUgNi4yMTYgMS4yNjggMTIuMzQ3LTIuNDk4IDE0LjAwMi04LjYyM2wxMS45OTEtNDQuMzY4YzEuODIyLTYuNzQxLTIuNDY1LTEzLjYxNi05LjMyNi0xNC45MTdDMjkwLjIxNyAzNC45MTIgMjcwLjcxIDMyIDI0OS42MzUgMzIgMTUyLjQ1MSAzMiA3NC4wMyA5Mi4yNTIgNDUuMDc1IDE3NkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOS43NTVjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMS41NjljLTEuMDA5IDEzLjYwNy0xLjE4MSAyOS4yODctLjE4MSA0Mi4yNDVIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjguMzZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzMC4xMTRDNjcuMTM5IDQxNC42OTIgMTQ1LjI2NCA0ODAgMjQ5LjYzNSA0ODBjMjYuMzAxIDAgNDguNTYyLTQuNTQ0IDYxLjEwMS03Ljc4OCA2LjE2Ny0xLjU5NSAxMC4wMjctNy43MDggOC43ODgtMTMuOTU3bC04LjgxOC00NC40OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeGNoYW5nZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE2OHYtMTZjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDM2MFY4MGMwLTIxLjM2NyAyNS44OTktMzIuMDQyIDQwLjk3MS0xNi45NzFsODAgODBjOS4zNzIgOS4zNzMgOS4zNzIgMjQuNTY5IDAgMzMuOTQxbC04MCA4MEM0MDkuOTU2IDI3MS45ODIgMzg0IDI2MS40NTYgMzg0IDI0MHYtNDhIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHptNDg4IDE1MkgxMjh2LTQ4YzAtMjEuMzE0LTI1Ljg2Mi0zMi4wOC00MC45NzEtMTYuOTcxbC04MCA4MGMtOS4zNzIgOS4zNzMtOS4zNzIgMjQuNTY5IDAgMzMuOTQxbDgwIDgwQzEwMi4wNTcgNDYzLjk5NyAxMjggNDUzLjQzNyAxMjggNDMydi00OGgzNjBjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXhjbGFtYXRpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NmMwIDEzNi45OTctMTExLjA0MyAyNDgtMjQ4IDI0OFM4IDM5Mi45OTcgOCAyNTZDOCAxMTkuMDgzIDExOS4wNDMgOCAyNTYgOHMyNDggMTExLjA4MyAyNDggMjQ4em0tMjQ4IDUwYy0yNS40MDUgMC00NiAyMC41OTUtNDYgNDZzMjAuNTk1IDQ2IDQ2IDQ2IDQ2LTIwLjU5NSA0Ni00Ni0yMC41OTUtNDYtNDYtNDZ6bS00My42NzMtMTY1LjM0Nmw3LjQxOCAxMzZjLjM0NyA2LjM2NCA1LjYwOSAxMS4zNDYgMTEuOTgyIDExLjM0Nmg0OC41NDZjNi4zNzMgMCAxMS42MzUtNC45ODIgMTEuOTgyLTExLjM0Nmw3LjQxOC0xMzZjLjM3NS02Ljg3NC01LjA5OC0xMi42NTQtMTEuOTgyLTEyLjY1NGgtNjMuMzgzYy02Ljg4NCAwLTEyLjM1NiA1Ljc4LTExLjk4MSAxMi42NTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXhjbGFtYXRpb25UcmlhbmdsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjkuNTE3IDQ0MC4wMTNDNTg3Ljk3NSA0NzIuMDA3IDU2NC44MDYgNTEyIDUyNy45NCA1MTJINDguMDU0Yy0zNi45MzcgMC01OS45OTktNDAuMDU1LTQxLjU3Ny03MS45ODdMMjQ2LjQyMyAyMy45ODVjMTguNDY3LTMyLjAwOSA2NC43Mi0zMS45NTEgODMuMTU0IDBsMjM5Ljk0IDQxNi4wMjh6TTI4OCAzNTRjLTI1LjQwNSAwLTQ2IDIwLjU5NS00NiA0NnMyMC41OTUgNDYgNDYgNDYgNDYtMjAuNTk1IDQ2LTQ2LTIwLjU5NS00Ni00Ni00NnptLTQzLjY3My0xNjUuMzQ2bDcuNDE4IDEzNmMuMzQ3IDYuMzY0IDUuNjA5IDExLjM0NiAxMS45ODIgMTEuMzQ2aDQ4LjU0NmM2LjM3MyAwIDExLjYzNS00Ljk4MiAxMS45ODItMTEuMzQ2bDcuNDE4LTEzNmMuMzc1LTYuODc0LTUuMDk4LTEyLjY1NC0xMS45ODItMTIuNjU0aC02My4zODNjLTYuODg0IDAtMTIuMzU2IDUuNzgtMTEuOTgxIDEyLjY1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgNDMyYzAgNDQuMTEyLTM1Ljg4OCA4MC04MCA4MHMtODAtMzUuODg4LTgwLTgwIDM1Ljg4OC04MCA4MC04MCA4MCAzNS44ODggODAgODB6TTI1LjI2IDI1LjE5OWwxMy42IDI3MkMzOS40OTkgMzA5Ljk3MiA1MC4wNDEgMzIwIDYyLjgzIDMyMGg2Ni4zNGMxMi43ODkgMCAyMy4zMzEtMTAuMDI4IDIzLjk3LTIyLjgwMWwxMy42LTI3MkMxNjcuNDI1IDExLjQ5IDE1Ni40OTYgMCAxNDIuNzcgMEg0OS4yM0MzNS41MDQgMCAyNC41NzUgMTEuNDkgMjUuMjYgMjUuMTk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4cGFuZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTIuNjg2IDMxNS4zMTRMMTIwIDQwOGwzMi45MjIgMzEuMDI5YzE1LjEyIDE1LjEyIDQuNDEyIDQwLjk3MS0xNi45NyA0MC45NzFoLTExMkMxMC42OTcgNDgwIDAgNDY5LjI1NSAwIDQ1NlYzNDRjMC0yMS4zODIgMjUuODAzLTMyLjA5IDQwLjkyMi0xNi45NzFMNzIgMzYwbDkyLjY4Ni05Mi42ODZjNi4yNDgtNi4yNDggMTYuMzc5LTYuMjQ4IDIyLjYyNyAwbDI1LjM3MyAyNS4zNzNjNi4yNDkgNi4yNDggNi4yNDkgMTYuMzc4IDAgMjIuNjI3em0yMi42MjgtMTE4LjYyOEwzMjggMTA0bC0zMi45MjItMzEuMDI5QzI3OS45NTggNTcuODUxIDI5MC42NjYgMzIgMzEyLjA0OCAzMmgxMTJDNDM3LjMwMyAzMiA0NDggNDIuNzQ1IDQ0OCA1NnYxMTJjMCAyMS4zODItMjUuODAzIDMyLjA5LTQwLjkyMiAxNi45NzFMMzc2IDE1MmwtOTIuNjg2IDkyLjY4NmMtNi4yNDggNi4yNDgtMTYuMzc5IDYuMjQ4LTIyLjYyNyAwbC0yNS4zNzMtMjUuMzczYy02LjI0OS02LjI0OC02LjI0OS0xNi4zNzggMC0yMi42Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXhwYW5kQXJyb3dzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzNDR2MTEyYTIzLjk0IDIzLjk0IDAgMCAxLTI0IDI0SDMxMmMtMjEuMzkgMC0zMi4wOS0yNS45LTE3LTQxbDM2LjItMzYuMkwyMjQgMjk1LjYgMTE2Ljc3IDQwMi45IDE1MyA0MzljMTUuMDkgMTUuMSA0LjM5IDQxLTE3IDQxSDI0YTIzLjk0IDIzLjk0IDAgMCAxLTI0LTI0VjM0NGMwLTIxLjQgMjUuODktMzIuMSA0MS0xN2wzNi4xOSAzNi4yTDE4NC40NiAyNTYgNzcuMTggMTQ4LjcgNDEgMTg1Yy0xNS4xIDE1LjEtNDEgNC40LTQxLTE3VjU2YTIzLjk0IDIzLjk0IDAgMCAxIDI0LTI0aDExMmMyMS4zOSAwIDMyLjA5IDI1LjkgMTcgNDFsLTM2LjIgMzYuMkwyMjQgMjE2LjRsMTA3LjIzLTEwNy4zTDI5NSA3M2MtMTUuMDktMTUuMS00LjM5LTQxIDE3LTQxaDExMmEyMy45NCAyMy45NCAwIDAgMSAyNCAyNHYxMTJjMCAyMS40LTI1Ljg5IDMyLjEtNDEgMTdsLTM2LjE5LTM2LjJMMjYzLjU0IDI1NmwxMDcuMjggMTA3LjNMNDA3IDMyNy4xYzE1LjEtMTUuMiA0MS00LjUgNDEgMTYuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxODBWNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTI0YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINjR2ODRjMCA2LjYtNS40IDEyLTEyIDEySDEyYy02LjYgMC0xMi01LjQtMTItMTJ6TTI4OCA0NHY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoODR2ODRjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMlY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgzMDBjLTYuNiAwLTEyIDUuNC0xMiAxMnptMTQ4IDI3NmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY4NGgtODRjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTI0YzEzLjMgMCAyNC0xMC43IDI0LTI0VjMzMmMwLTYuNi01LjQtMTItMTItMTJ6TTE2MCA0Njh2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkg2NHYtODRjMC02LjYtNS40LTEyLTEyLTEySDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2MTI0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEyNGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXh0ZXJuYWxMaW5rQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiwzMjBINDAwYTE2LDE2LDAsMCwwLTE2LDE2VjQ0OEg2NFYxMjhIMjA4YTE2LDE2LDAsMCwwLDE2LTE2VjgwYTE2LDE2LDAsMCwwLTE2LTE2SDQ4QTQ4LDQ4LDAsMCwwLDAsMTEyVjQ2NGE0OCw0OCwwLDAsMCw0OCw0OEg0MDBhNDgsNDgsMCwwLDAsNDgtNDhWMzM2QTE2LDE2LDAsMCwwLDQzMiwzMjBaTTQ4OCwwaC0xMjhjLTIxLjM3LDAtMzIuMDUsMjUuOTEtMTcsNDFsMzUuNzMsMzUuNzNMMTM1LDMyMC4zN2EyNCwyNCwwLDAsMCwwLDM0TDE1Ny42NywzNzdhMjQsMjQsMCwwLDAsMzQsMEw0MzUuMjgsMTMzLjMyLDQ3MSwxNjljMTUsMTUsNDEsNC41LDQxLTE3VjI0QTI0LDI0LDAsMCwwLDQ4OCwwWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4dGVybmFsTGlua1NxdWFyZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptLTg4IDE2SDI0OC4wMjljLTIxLjMxMyAwLTMyLjA4IDI1Ljg2MS0xNi45NzEgNDAuOTcxbDMxLjk4NCAzMS45ODdMNjcuNTE1IDM2NC40ODVjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwzMS4wMjkgMzEuMDI5YzQuNjg3IDQuNjg2IDEyLjI4NSA0LjY4NiAxNi45NzEgMGwxOTUuNTI2LTE5NS41MjYgMzEuOTg4IDMxLjk5MUMzNTguMDU4IDI2My45NzcgMzg0IDI1My40MjUgMzg0IDIzMS45NzlWMTIwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeWVEcm9wcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwLjc1IDMzMy4yNWMtMTIgMTItMTguNzUgMjguMjgtMTguNzUgNDUuMjZWNDI0TDAgNDgwbDMyIDMyIDU2LTMyaDQ1LjQ5YzE2Ljk3IDAgMzMuMjUtNi43NCA0NS4yNS0xOC43NGwxMjYuNjQtMTI2LjYyLTEyOC0xMjhMNTAuNzUgMzMzLjI1ek00ODMuODggMjguMTJjLTM3LjQ3LTM3LjUtOTguMjgtMzcuNS0xMzUuNzUgMGwtNzcuMDkgNzcuMDktMTMuMS0xMy4xYy05LjQ0LTkuNDQtMjQuNjUtOS4zMS0zMy45NCAwbC00MC45NyA0MC45N2MtOS4zNyA5LjM3LTkuMzcgMjQuNTcgMCAzMy45NGwxNjEuOTQgMTYxLjk0YzkuNDQgOS40NCAyNC42NSA5LjMxIDMzLjk0IDBMNDE5Ljg4IDI4OGM5LjM3LTkuMzcgOS4zNy0yNC41NyAwLTMzLjk0bC0xMy4xLTEzLjEgNzcuMDktNzcuMDljMzcuNTEtMzcuNDggMzcuNTEtOTguMjYuMDEtMTM1Ljc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV5ZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0MDBjLTc1Ljg1IDAtMTM3LjI1LTU4LjcxLTE0Mi45LTEzMy4xMUw3Mi4yIDE4NS44MmMtMTMuNzkgMTcuMy0yNi40OCAzNS41OS0zNi43MiA1NS41OWEzMi4zNSAzMi4zNSAwIDAgMCAwIDI5LjE5Qzg5LjcxIDM3Ni40MSAxOTcuMDcgNDQ4IDMyMCA0NDhjMjYuOTEgMCA1Mi44Ny00IDc3Ljg5LTEwLjQ2TDM0NiAzOTcuMzlhMTQ0LjEzIDE0NC4xMyAwIDAgMS0yNiAyLjYxem0zMTMuODIgNTguMWwtMTEwLjU1LTg1LjQ0YTMzMS4yNSAzMzEuMjUgMCAwIDAgODEuMjUtMTAyLjA3IDMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTlDNTUwLjI5IDEzNS41OSA0NDIuOTMgNjQgMzIwIDY0YTMwOC4xNSAzMDguMTUgMCAwIDAtMTQ3LjMyIDM3LjdMNDUuNDYgMy4zN0ExNiAxNiAwIDAgMCAyMyA2LjE4TDMuMzcgMzEuNDVBMTYgMTYgMCAwIDAgNi4xOCA1My45bDU4OC4zNiA0NTQuNzNhMTYgMTYgMCAwIDAgMjIuNDYtMi44MWwxOS42NC0yNS4yN2ExNiAxNiAwIDAgMC0yLjgyLTIyLjQ1em0tMTgzLjcyLTE0MmwtMzkuMy0zMC4zOEE5NC43NSA5NC43NSAwIDAgMCA0MTYgMjU2YTk0Ljc2IDk0Ljc2IDAgMCAwLTEyMS4zMS05Mi4yMUE0Ny42NSA0Ny42NSAwIDAgMSAzMDQgMTkyYTQ2LjY0IDQ2LjY0IDAgMCAxLTEuNTQgMTBsLTczLjYxLTU2Ljg5QTE0Mi4zMSAxNDIuMzEgMCAwIDEgMzIwIDExMmExNDMuOTIgMTQzLjkyIDAgMCAxIDE0NCAxNDRjMCAyMS42My01LjI5IDQxLjc5LTEzLjkgNjAuMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3Mi41MiAyNDEuNEM1MTguMjkgMTM1LjU5IDQxMC45MyA2NCAyODggNjRTNTcuNjggMTM1LjY0IDMuNDggMjQxLjQxYTMyLjM1IDMyLjM1IDAgMCAwIDAgMjkuMTlDNTcuNzEgMzc2LjQxIDE2NS4wNyA0NDggMjg4IDQ0OHMyMzAuMzItNzEuNjQgMjg0LjUyLTE3Ny40MWEzMi4zNSAzMi4zNSAwIDAgMCAwLTI5LjE5ek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMTQ0LTE0NCAxNDMuOTMgMTQzLjkzIDAgMCAxLTE0NCAxNDR6bTAtMjQwYTk1LjMxIDk1LjMxIDAgMCAwLTI1LjMxIDMuNzkgNDcuODUgNDcuODUgMCAwIDEtNjYuOSA2Ni45QTk1Ljc4IDk1Ljc4IDAgMSAwIDI4OCAxNjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Mi41NyAxMjhjLTI4LjA5IDAtNTQuMDkgNC41Mi03Ny4wNiAxMi44NmwxMi40MS0xMjMuMTFDMjg5IDcuMzEgMjc5LjgxLTEuMTggMjY5LjMzLjEzIDE4OS42MyAxMC4xMyAxMjggNzcuNjQgMTI4IDE1OS40M2MwIDI4LjA5IDQuNTIgNTQuMDkgMTIuODYgNzcuMDZMMTcuNzUgMjI0LjA4QzcuMzEgMjIzLTEuMTggMjMyLjE5LjEzIDI0Mi42N2MxMCA3OS43IDc3LjUxIDE0MS4zMyAxNTkuMyAxNDEuMzMgMjguMDkgMCA1NC4wOS00LjUyIDc3LjA2LTEyLjg2bC0xMi40MSAxMjMuMTFjLTEuMDUgMTAuNDMgOC4xMSAxOC45MyAxOC41OSAxNy42MiA3OS43LTEwIDE0MS4zMy03Ny41MSAxNDEuMzMtMTU5LjMgMC0yOC4wOS00LjUyLTU0LjA5LTEyLjg2LTc3LjA2bDEyMy4xMSAxMi40MWMxMC40NCAxLjA1IDE4LjkzLTguMTEgMTcuNjItMTguNTktMTAtNzkuNy03Ny41MS0xNDEuMzMtMTU5LjMtMTQxLjMzek0yNTYgMjg4YTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhc3RCYWNrd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQzNlY3NmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjE1MS45TDIzNS41IDcxLjRDMjU2LjEgNTQuMyAyODggNjguNiAyODggOTZ2MTMxLjlMNDU5LjUgNzEuNEM0ODAuMSA1NC4zIDUxMiA2OC42IDUxMiA5NnYzMjBjMCAyNy40LTMxLjkgNDEuNy01Mi41IDI0LjZMMjg4IDI4NS4zVjQxNmMwIDI3LjQtMzEuOSA0MS43LTUyLjUgMjQuNkw2NCAyODUuM1Y0MzZjMCA2LjYtNS40IDEyLTEyIDEySDEyYy02LjYgMC0xMi01LjQtMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFzdEZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDc2djM2MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJWMjg0LjFMMjc2LjUgNDQwLjZjLTIwLjYgMTcuMi01Mi41IDIuOC01Mi41LTI0LjZWMjg0LjFMNTIuNSA0NDAuNkMzMS45IDQ1Ny44IDAgNDQzLjQgMCA0MTZWOTZjMC0yNy40IDMxLjktNDEuNyA1Mi41LTI0LjZMMjI0IDIyNi44Vjk2YzAtMjcuNCAzMS45LTQxLjcgNTIuNS0yNC42TDQ0OCAyMjYuOFY3NmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhdWNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIsMjU2SDMxMy4zOWMtMTUuNzEtMTMuNDQtMzUuNDYtMjMuMDctNTcuMzktMjhWMTgwLjQ0bC0zMi0zLjM4LTMyLDMuMzhWMjI4Yy0yMS45Myw1LTQxLjY4LDE0LjYtNTcuMzksMjhIMTZBMTYsMTYsMCwwLDAsMCwyNzJ2OTZhMTYsMTYsMCwwLDAsMTYsMTZoOTIuNzlDMTI5LjM4LDQyMS43MywxNzMsNDQ4LDIyNCw0NDhzOTQuNjItMjYuMjcsMTE1LjIxLTY0SDM1MmEzMiwzMiwwLDAsMSwzMiwzMiwzMiwzMiwwLDAsMCwzMiwzMmg2NGEzMiwzMiwwLDAsMCwzMi0zMkExNjAsMTYwLDAsMCwwLDM1MiwyNTZaTTgxLjU5LDE1OS45MWwxNDIuNDEtMTUsMTQyLjQxLDE1YzkuNDIsMSwxNy41OS02LjgxLDE3LjU5LTE2LjhWMTEyLjg5YzAtMTAtOC4xNy0xNy44LTE3LjU5LTE2LjgxTDI1NiwxMDcuNzRWODBhMTYsMTYsMCwwLDAtMTYtMTZIMjA4YTE2LDE2LDAsMCwwLTE2LDE2djI3Ljc0TDgxLjU5LDk2LjA4QzcyLjE3LDk1LjA5LDY0LDEwMi45LDY0LDExMi44OXYzMC4yMkM2NCwxNTMuMSw3Mi4xNywxNjAuOTEsODEuNTksMTU5LjkxWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMTYwVjc3LjI1YTMyIDMyIDAgMCAwLTkuMzgtMjIuNjNMNDI1LjM3IDkuMzdBMzIgMzIgMCAwIDAgNDAyLjc1IDBIMTYwYTMyIDMyIDAgMCAwLTMyIDMydjQ0OGEzMiAzMiAwIDAgMCAzMiAzMmgzMjBhMzIgMzIgMCAwIDAgMzItMzJWMTkyYTMyIDMyIDAgMCAwLTMyLTMyek0yODggNDMyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTAtMTI4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTEyOCAxMjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMmExNiAxNiAwIDAgMSAxNiAxNnptMC0xMjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMmExNiAxNiAwIDAgMSAxNiAxNnptMC0xMTJIMTkyVjY0aDE2MHY0OGExNiAxNiAwIDAgMCAxNiAxNmg0OHpNNjQgMTI4SDMyYTMyIDMyIDAgMCAwLTMyIDMydjMyMGEzMiAzMiAwIDAgMCAzMiAzMmgzMmEzMiAzMiAwIDAgMCAzMi0zMlYxNjBhMzIgMzIgMCAwIDAtMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVhdGhlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMEM0NjAuMjIgMy41NiA5Ni40NCAzOC4yIDcxLjAxIDI4Ny42MWMtMy4wOSAyNi42Ni00Ljg0IDUzLjQ0LTUuOTkgODAuMjRsMTc4Ljg3LTE3OC42OWM2LjI1LTYuMjUgMTYuNC02LjI1IDIyLjY1IDBzNi4yNSAxNi4zOCAwIDIyLjYzTDcuMDQgNDcxLjAzYy05LjM4IDkuMzctOS4zOCAyNC41NyAwIDMzLjk0IDkuMzggOS4zNyAyNC41OSA5LjM3IDMzLjk4IDBsNTcuMTMtNTcuMDdjNDIuMDktLjE0IDg0LjE1LTIuNTMgMTI1Ljk2LTcuMzYgNTMuNDgtNS40NCA5Ny4wMi0yNi40NyAxMzIuNTgtNTYuNTRIMjU1Ljc0bDE0Ni43OS00OC44OGMxMS4yNS0xNC44OSAyMS4zNy0zMC43MSAzMC40NS00Ny4xMmgtODEuMTRsMTA2LjU0LTUzLjIxQzUwMC4yOSAxMzIuODYgNTEwLjE5IDI2LjI2IDUxMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlYXRoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY3LjE0IDQ0Ljg0Yy02Mi41NS02Mi40OC0xNjEuNjctNjQuNzgtMjUyLjI4IDI1LjczLTc4LjYxIDc4LjUyLTYwLjk4IDYwLjkyLTg1Ljc1IDg1LjY2LTYwLjQ2IDYwLjM5LTcwLjM5IDE1MC44My02My42NCAyMTEuMTdsMTc4LjQ0LTE3OC4yNWM2LjI2LTYuMjUgMTYuNC02LjI1IDIyLjY1IDBzNi4yNSAxNi4zOCAwIDIyLjYzTDcuMDQgNDcxLjAzYy05LjM4IDkuMzctOS4zOCAyNC41NyAwIDMzLjk0IDkuMzggOS4zNyAyNC42IDkuMzcgMzMuOTggMGw2Ni4xLTY2LjAzQzE1OS40MiA0NTQuNjUgMjc5IDQ1Ny4xMSAzNTMuOTUgMzg0aC05OC4xOWwxNDcuNTctNDkuMTRjNDkuOTktNDkuOTMgMzYuMzgtMzYuMTggNDYuMzEtNDYuODZoLTk3Ljc4bDEzMS41NC00My44YzQ1LjQ0LTc0LjQ2IDM0LjMxLTE0OC44NC0xNi4yNi0xOTkuMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVtYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzM1LjM0NiAwIDY0IDI4LjY1NCA2NCA2NHMtMjguNjU0IDY0LTY0IDY0Yy0zNS4zNDYgMC02NC0yOC42NTQtNjQtNjRTOTIuNjU0IDAgMTI4IDBtMTE5LjI4MyAzNTQuMTc5bC00OC0xOTJBMjQgMjQgMCAwIDAgMTc2IDE0NGgtMTEuMzZjLTIyLjcxMSAxMC40NDMtNDkuNTkgMTAuODk0LTczLjI4IDBIODBhMjQgMjQgMCAwIDAtMjMuMjgzIDE4LjE3OWwtNDggMTkyQzQuOTM1IDM2OS4zMDUgMTYuMzgzIDM4NCAzMiAzODRoNTZ2MTA0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMzg0aDU2YzE1LjU5MSAwIDI3LjA3MS0xNC42NzEgMjMuMjgzLTI5LjgyMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWdodGVySmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAyMjRsLTEyOC0xNi00OC0xNmgtMjRMMjI3LjE1OCA0NGgzOS41MDlDMjc4LjMzMyA0NCAyODggNDEuMzc1IDI4OCAzOHMtOS42NjctNi0yMS4zMzMtNkgxNTJ2MTJoMTZ2MTY0aC00OGwtNjYuNjY3LTgwSDE4LjY2N0w4IDEzOC42NjdWMjA4aDh2MTZoNDh2Mi42NjZsLTY0IDh2NDIuNjY3bDY0IDhWMjg4SDE2djE2SDh2NjkuMzMzTDE4LjY2NyAzODRoMzQuNjY3TDEyMCAzMDRoNDh2MTY0aC0xNnYxMmgxMTQuNjY3YzExLjY2NyAwIDIxLjMzMy0yLjYyNSAyMS4zMzMtNnMtOS42NjctNi0yMS4zMzMtNmgtMzkuNTA5TDM0NCAzMjBoMjRsNDgtMTYgMTI4LTE2Yzk2LTIxLjMzMyA5Ni0yNi41ODMgOTYtMzIgMC01LjQxNyAwLTEwLjY2Ny05Ni0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjQgMjM2YzAgNi42LTUuNCAxMi0xMiAxMkgxMDhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOGMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnY4em0wLTY0YzAgNi42LTUuNCAxMi0xMiAxMkgxMDhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOGMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnY4em0wLTcydjhjMCA2LjYtNS40IDEyLTEyIDEySDEwOGMtNi42IDAtMTItNS40LTEyLTEydi04YzAtNi42IDUuNC0xMiAxMi0xMmgxNjhjNi42IDAgMTIgNS40IDEyIDEyem05Ni0xMTQuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45ek0xMjguNCAzMzZjLTE3LjkgMC0zMi40IDEyLjEtMzIuNCAyNyAwIDE1IDE0LjYgMjcgMzIuNSAyN3MzMi40LTEyLjEgMzIuNC0yNy0xNC42LTI3LTMyLjUtMjd6TTIyNCAxMzZWMGgtNjMuNnYzMmgtMzJWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNOTUuOSAzMmgzMnYzMmgtMzJ6bTMyLjMgMzg0Yy0zMy4yIDAtNTgtMzAuNC01MS40LTYyLjlMOTYuNCAyNTZ2LTMyaDMydi0zMmgtMzJ2LTMyaDMydi0zMmgtMzJWOTZoMzJWNjRoMzJ2MzJoLTMydjMyaDMydjMyaC0zMnYzMmgzMnYzMmgtMzJ2MzJoMjIuMWM1LjcgMCAxMC43IDQuMSAxMS44IDkuN2wxNy4zIDg3LjdjNi40IDMyLjQtMTguNCA2Mi42LTUxLjQgNjIuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQXVkaW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0tNjQgMjY4YzAgMTAuNy0xMi45IDE2LTIwLjUgOC41TDEwNCAzNzZINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNTZjMC02LjYgNS40LTEyIDEyLTEyaDI4bDM1LjUtMzYuNWM3LjYtNy42IDIwLjUtMi4yIDIwLjUgOC41djEzNnptMzMuMi00Ny42YzkuMS05LjMgOS4xLTI0LjEgMC0zMy40LTIyLjEtMjIuOCAxMi4yLTU2LjIgMzQuNC0zMy41IDI3LjIgMjcuOSAyNy4yIDcyLjQgMCAxMDAuNC0yMS44IDIyLjMtNTYuOS0xMC40LTM0LjQtMzMuNXptODYtMTE3LjFjNTQuNCA1NS45IDU0LjQgMTQ0LjggMCAyMDAuOC0yMS44IDIyLjQtNTctMTAuMy0zNC40LTMzLjUgMzYuMi0zNy4yIDM2LjMtOTYuNSAwLTEzMy44LTIyLjEtMjIuOCAxMi4zLTU2LjMgMzQuNC0zMy41ek0zODQgMTIxLjl2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjEuOTQxVjEyOEgyNTZWMGg2LjA1OWM2LjM2NSAwIDEyLjQ3IDIuNTI5IDE2Ljk3MSA3LjAyOWw5Ny45NDEgOTcuOTQxQTI0LjAwNSAyNC4wMDUgMCAwIDEgMzg0IDEyMS45NDF6TTI0OCAxNjBjLTEzLjIgMC0yNC0xMC44LTI0LTI0VjBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHY0NjRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwSDI0OHpNMTIzLjIwNiA0MDAuNTA1YTUuNCA1LjQgMCAwIDEtNy42MzMuMjQ2bC02NC44NjYtNjAuODEyYTUuNCA1LjQgMCAwIDEgMC03Ljg3OWw2NC44NjYtNjAuODEyYTUuNCA1LjQgMCAwIDEgNy42MzMuMjQ2bDE5LjU3OSAyMC44ODVhNS40IDUuNCAwIDAgMS0uMzcyIDcuNzQ3TDEwMS42NSAzMzZsNDAuNzYzIDM1Ljg3NGE1LjQgNS40IDAgMCAxIC4zNzIgNy43NDdsLTE5LjU3OSAyMC44ODR6bTUxLjI5NSA1MC40NzlsLTI3LjQ1My03Ljk3YTUuNDAyIDUuNDAyIDAgMCAxLTMuNjgxLTYuNjkybDYxLjQ0LTIxMS42MjZhNS40MDIgNS40MDIgMCAwIDEgNi42OTItMy42ODFsMjcuNDUyIDcuOTdhNS40IDUuNCAwIDAgMSAzLjY4IDYuNjkybC02MS40NCAyMTEuNjI2YTUuMzk3IDUuMzk3IDAgMCAxLTYuNjkgMy42ODF6bTE2MC43OTItMTExLjA0NWwtNjQuODY2IDYwLjgxMmE1LjQgNS40IDAgMCAxLTcuNjMzLS4yNDZsLTE5LjU4LTIwLjg4NWE1LjQgNS40IDAgMCAxIC4zNzItNy43NDdMMjg0LjM1IDMzNmwtNDAuNzYzLTM1Ljg3NGE1LjQgNS40IDAgMCAxLS4zNzItNy43NDdsMTkuNTgtMjAuODg1YTUuNCA1LjQgMCAwIDEgNy42MzMtLjI0Nmw2NC44NjYgNjAuODEyYTUuNCA1LjQgMCAwIDEtLjAwMSA3Ljg3OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ29udHJhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0ek02NCA3MmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LThWNzJ6bTAgNjRjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di0xNnptMTkyLjgxIDI0OEgzMDRjOC44NCAwIDE2IDcuMTYgMTYgMTZzLTcuMTYgMTYtMTYgMTZoLTQ3LjE5Yy0xNi40NSAwLTMxLjI3LTkuMTQtMzguNjQtMjMuODYtMi45NS01LjkyLTguMDktNi41Mi0xMC4xNy02LjUycy03LjIyLjU5LTEwLjAyIDYuMTlsLTcuNjcgMTUuMzRhMTUuOTg2IDE1Ljk4NiAwIDAgMS0xNC4zMSA4Ljg0Yy0uMzggMC0uNzUtLjAyLTEuMTQtLjA1LTYuNDUtLjQ1LTEyLTQuNzUtMTQuMDMtMTAuODlMMTQ0IDM1NC41OWwtMTAuNjEgMzEuODhjLTUuODkgMTcuNjYtMjIuMzggMjkuNTMtNDEgMjkuNTNIODBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTZoMTIuMzljNC44MyAwIDkuMTEtMy4wOCAxMC42NC03LjY2bDE4LjE5LTU0LjY0YzMuMy05LjgxIDEyLjQ0LTE2LjQxIDIyLjc4LTE2LjQxczE5LjQ4IDYuNTkgMjIuNzcgMTYuNDFsMTMuODggNDEuNjRjMTkuNzctMTYuMTkgNTQuMDUtOS43IDY2IDE0LjE2IDIuMDIgNC4wNiA1Ljk2IDYuNSAxMC4xNiA2LjV6TTM3NyAxMDVMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ3N2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptLTk2IDE0NGMwIDQuNDItMy41OCA4LTggOGgtOGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoOGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOGgtOGMtMjYuNTEgMC00OC0yMS40OS00OC00OHYtMzJjMC0yNi41MSAyMS40OS00OCA0OC00OGg4YzQuNDIgMCA4IDMuNTggOCA4djE2em00NC4yNyAxMDRIMTYwYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTIuMjdjNS45NSAwIDEwLjQxLTMuNSAxMC40MS02LjYyIDAtMS4zLS43NS0yLjY2LTIuMTItMy44NGwtMjEuODktMTguNzdjLTguNDctNy4yMi0xMy4zMy0xNy40OC0xMy4zMy0yOC4xNCAwLTIxLjMgMTkuMDItMzguNjIgNDIuNDEtMzguNjJIMjAwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4aC0xMi4yN2MtNS45NSAwLTEwLjQxIDMuNS0xMC40MSA2LjYyIDAgMS4zLjc1IDIuNjYgMi4xMiAzLjg0bDIxLjg5IDE4Ljc3YzguNDcgNy4yMiAxMy4zMyAxNy40OCAxMy4zMyAyOC4xNC4wMSAyMS4yOS0xOSAzOC42Mi00Mi4zOSAzOC42MnpNMjU2IDI2NHYyMC44YzAgMjAuMjcgNS43IDQwLjE3IDE2IDU2Ljg4IDEwLjMtMTYuNyAxNi0zNi42MSAxNi01Ni44OFYyNjRjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MjAuOGMwIDM1LjQ4LTEyLjg4IDY4Ljg5LTM2LjI4IDk0LjA5LTMuMDIgMy4yNS03LjI3IDUuMTEtMTEuNzIgNS4xMXMtOC43LTEuODYtMTEuNzItNS4xMWMtMjMuNC0yNS4yLTM2LjI4LTU4LjYxLTM2LjI4LTk0LjA5VjI2NGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHptMTIxLTE1OUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTc2LjQ1IDIxMS4zNmwtOTYuNDIgOTUuN2MtNi42NSA2LjYxLTE3LjM5IDYuNjEtMjQuMDQgMGwtOTYuNDItOTUuN0M3My40MiAzMzcuMjkgODAuNTQgMzIwIDk0LjgyIDMyMEgxNjB2LTgwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djgwaDY1LjE4YzE0LjI4IDAgMjEuNCAxNy4yOSAxMS4yNyAyNy4zNnpNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVFeGNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTYwLjEgMTA2LjVMMjI0IDMzNmw2MC4xIDkzLjVjNS4xIDgtLjYgMTguNS0xMC4xIDE4LjVoLTM0LjljLTQuNCAwLTguNS0yLjQtMTAuNi02LjNDMjA4LjkgNDA1LjUgMTkyIDM3MyAxOTIgMzczYy02LjQgMTQuOC0xMCAyMC0zNi42IDY4LjgtMi4xIDMuOS02LjEgNi4zLTEwLjUgNi4zSDExMGMtOS41IDAtMTUuMi0xMC41LTEwLjEtMTguNWw2MC4zLTkzLjUtNjAuMy05My41Yy01LjItOCAuNi0xOC41IDEwLjEtMTguNWgzNC44YzQuNCAwIDguNSAyLjQgMTAuNiA2LjMgMjYuMSA0OC44IDIwIDMzLjYgMzYuNiA2OC41IDAgMCA2LjEtMTEuNyAzNi42LTY4LjUgMi4xLTMuOSA2LjItNi4zIDEwLjYtNi4zSDI3NGM5LjUtLjEgMTUuMiAxMC40IDEwLjEgMTguNHpNMzg0IDEyMS45djYuMUgyNTZWMGg2LjFjNi40IDAgMTIuNSAyLjUgMTcgN2w5Ny45IDk4YzQuNSA0LjUgNyAxMC42IDcgMTYuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlRXhwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjEuOWMwLTYuMy0yLjUtMTIuNC03LTE2LjlMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHpNNTcxIDMwOGwtOTUuNy05Ni40Yy0xMC4xLTEwLjEtMjcuNC0zLTI3LjQgMTEuM1YyODhoLTY0djY0aDY0djY1LjJjMCAxNC4zIDE3LjMgMjEuNCAyNy40IDExLjNMNTcxIDMzMmM2LjYtNi42IDYuNi0xNy40IDAtMjR6bS0zNzkgMjh2LTMyYzAtOC44IDcuMi0xNiAxNi0xNmgxNzZWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYzNTJIMjA4Yy04LjggMC0xNi03LjItMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjEuOTQxVjEyOEgyNTZWMGg2LjA1OWEyNCAyNCAwIDAgMSAxNi45NyA3LjAyOWw5Ny45NDEgOTcuOTQxYTI0LjAwMiAyNC4wMDIgMCAwIDEgNy4wMyAxNi45NzF6TTI0OCAxNjBjLTEzLjIgMC0yNC0xMC44LTI0LTI0VjBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHY0NjRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwSDI0OHptLTEzNS40NTUgMTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHMtMjEuNDkgNDgtNDggNDgtNDgtMjEuNDktNDgtNDggMjEuNDkxLTQ4IDQ4LTQ4em0yMDggMjQwaC0yNTZsLjQ4NS00OC40ODVMMTA0LjU0NSAzMjhjNC42ODYtNC42ODYgMTEuNzk5LTQuMjAxIDE2LjQ4NS40ODVMMTYwLjU0NSAzNjggMjY0LjA2IDI2NC40ODVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDMyMC41NDUgMzA0djExMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW1wb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDI4OGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgxMTJ2LTY0em00ODktMTgzTDQwNy4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMzg0djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgxNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI2NGgxMjh2LTY1LjJjMC0xNC4zIDE3LjMtMjEuNCAyNy40LTExLjNMMzc5IDMwOGM2LjYgNi43IDYuNiAxNy40IDAgMjRsLTk1LjcgOTYuNGMtMTAuMSAxMC4xLTI3LjQgMy0yNy40LTExLjNWMzUySDEyOHYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgzNzZjLTEzLjIgMC0yNC0xMC44LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVJbnZvaWNlRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3NyAxMDVMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXptLTE1MyAzMVYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0ek02NCA3MmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LThWNzJ6bTAgODB2LTE2YzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHptMTQ0IDI2My44OFY0NDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMjQuMjljLTExLjI5LS41OC0yMi4yNy00LjUyLTMxLjM3LTExLjM1LTMuOS0yLjkzLTQuMS04Ljc3LS41Ny0xMi4xNGwxMS43NS0xMS4yMWMyLjc3LTIuNjQgNi44OS0yLjc2IDEwLjEzLS43MyAzLjg3IDIuNDIgOC4yNiAzLjcyIDEyLjgyIDMuNzJoMjguMTFjNi41IDAgMTEuOC01LjkyIDExLjgtMTMuMTkgMC01Ljk1LTMuNjEtMTEuMTktOC43Ny0xMi43M2wtNDUtMTMuNWMtMTguNTktNS41OC0zMS41OC0yMy40Mi0zMS41OC00My4zOSAwLTI0LjUyIDE5LjA1LTQ0LjQ0IDQyLjY3LTQ1LjA3VjIzMmMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYyNC4yOWMxMS4yOS41OCAyMi4yNyA0LjUxIDMxLjM3IDExLjM1IDMuOSAyLjkzIDQuMSA4Ljc3LjU3IDEyLjE0bC0xMS43NSAxMS4yMWMtMi43NyAyLjY0LTYuODkgMi43Ni0xMC4xMy43My0zLjg3LTIuNDMtOC4yNi0zLjcyLTEyLjgyLTMuNzJoLTI4LjExYy02LjUgMC0xMS44IDUuOTItMTEuOCAxMy4xOSAwIDUuOTUgMy42MSAxMS4xOSA4Ljc3IDEyLjczbDQ1IDEzLjVjMTguNTkgNS41OCAzMS41OCAyMy40MiAzMS41OCA0My4zOSAwIDI0LjUzLTE5LjA1IDQ0LjQ0LTQyLjY3IDQ1LjA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVJbnZvaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyNTZIOTZ2NjRoMTkydi02NHptODktMTUxTDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNNjQgNzJjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0wIDY0YzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6bTI1NiAzMDRjMCA0LjQyLTMuNTggOC04IDhoLTgwYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZ6bTAtMjAwdjk2YzAgOC44NC03LjE2IDE2LTE2IDE2SDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtOTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMjI0YzguODQgMCAxNiA3LjE2IDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVNZWRpY2FsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxMzZWMEg4OEM3NC43IDAgNjQgMTAuNyA2NCAyNHYyMzJIOGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOGgxNDAuOWMzIDAgNS44IDEuNyA3LjIgNC40bDE5LjkgMzkuOCA1Ni44LTExMy43YzIuOS01LjkgMTEuNC01LjkgMTQuMyAwbDM0LjcgNjkuNUgzNTJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZoLTg5LjlMMjQwIDI3NS44bC01Ni44IDExMy43Yy0yLjkgNS45LTExLjQgNS45LTE0LjMgMEwxMzQuMSAzMjBINjR2MTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMzEyYy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptMTUzLTMxTDM0My4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMzIwdjEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTY0IDE2MHY0OGMwIDQuNC0zLjYgOC04IDhoLTU2djU2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNTZoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVBkZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODEuOSAyNTYuMWMtNS0xNi00LjktNDYuOS0yLTQ2LjkgOC40IDAgNy42IDM2LjkgMiA0Ni45em0tMS43IDQ3LjJjLTcuNyAyMC4yLTE3LjMgNDMuMy0yOC40IDYyLjcgMTguMy03IDM5LTE3LjIgNjIuOS0yMS45LTEyLjctOS42LTI0LjktMjMuNC0zNC41LTQwLjh6TTg2LjEgNDI4LjFjMCAuOCAxMy4yLTUuNCAzNC45LTQwLjItNi43IDYuMy0yOS4xIDI0LjUtMzQuOSA0MC4yek0yNDggMTYwaDEzNnYzMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjI0QzAgMTAuNyAxMC43IDAgMjQgMGgyMDB2MTM2YzAgMTMuMiAxMC44IDI0IDI0IDI0em0tOCAxNzEuOGMtMjAtMTIuMi0zMy4zLTI5LTQyLjctNTMuOCA0LjUtMTguNSAxMS42LTQ2LjYgNi4yLTY0LjItNC43LTI5LjQtNDIuNC0yNi41LTQ3LjgtNi44LTUgMTguMy0uNCA0NC4xIDguMSA3Ny0xMS42IDI3LjYtMjguNyA2NC42LTQwLjggODUuOC0uMSAwLS4xLjEtLjIuMS0yNy4xIDEzLjktNzMuNiA0NC41LTU0LjUgNjggNS42IDYuOSAxNiAxMCAyMS41IDEwIDE3LjkgMCAzNS43LTE4IDYxLjEtNjEuOCAyNS44LTguNSA1NC4xLTE5LjEgNzktMjMuMiAyMS43IDExLjggNDcuMSAxOS41IDY0IDE5LjUgMjkuMiAwIDMxLjItMzIgMTkuNy00My40LTEzLjktMTMuNi01NC4zLTkuNy03My42LTcuMnpNMzc3IDEwNUwyNzkgN2MtNC41LTQuNS0xMC42LTctMTctN2gtNnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tNzQuMSAyNTUuM2M0LjEtMi43LTIuNS0xMS45LTQyLjgtOSAzNy4xIDE1LjggNDIuOCA5IDQyLjggOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUG93ZXJwb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTMuNyAyNzEuMmM4LjggMCAxNS41IDIuNyAyMC4zIDguMSA5LjYgMTAuOSA5LjggMzIuNy0uMiA0NC4xLTQuOSA1LjYtMTEuOSA4LjUtMjEuMSA4LjVoLTI2Ljl2LTYwLjdoMjcuOXpNMzc3IDEwNUwyNzkgN2MtNC41LTQuNS0xMC42LTctMTctN2gtNnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTUzIDE2NS4yYzAgOTAuMy04OC44IDc3LjYtMTExLjEgNzcuNlY0MzZjMCA2LjYtNS40IDEyLTEyIDEyaC0zMC44Yy02LjYgMC0xMi01LjQtMTItMTJWMjM2LjJjMC02LjYgNS40LTEyIDEyLTEyaDgxYzQ0LjUgMCA3Mi45IDMyLjggNzIuOSA3N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUHJlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjguNTMgMTc5LjQ4bDExLjMxIDExLjMxYzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNsLTI5LjkgMjkuOUwzMDQgNDA5LjM4YzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNsLTExLjMxIDExLjMxYy02LjI1IDYuMjUtMTYuMzggNi4yNS0yMi42MyAwTDI0MCA0MTMuMjVsLTMwLjA2IDMwLjA2Yy02LjI1IDYuMjUtMTYuMzggNi4yNS0yMi42MyAwTDE3NiA0MzJjLTYuMjUtNi4yNS02LjI1LTE2LjM4IDAtMjIuNjNsMzAuMDYtMzAuMDZMMTQ2Ljc0IDMyMEgxMjh2NDhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIOTZjLTguODQgMC0xNi03LjE2LTE2LTE2VjIwOGMwLTguODQgNy4xNi0xNiAxNi0xNmg4MGMzNS4zNSAwIDY0IDI4LjY1IDY0IDY0IDAgMjQuMjItMTMuNjIgNDUuMDUtMzMuNDYgNTUuOTJMMjQwIDM0NS4zOGwyOS45LTI5LjljNi4yNS02LjI1IDE2LjM4LTYuMjUgMjIuNjMgMHpNMTc2IDI3MmgtNDh2LTMyaDQ4YzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2em0yMDgtMTUwLjF2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVTaWduYXR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE4LjE3IDQyNC4xNGMtMi45NS01LjkyLTguMDktNi41Mi0xMC4xNy02LjUycy03LjIyLjU5LTEwLjAyIDYuMTlsLTcuNjcgMTUuMzRjLTYuMzcgMTIuNzgtMjUuMDMgMTEuMzctMjkuNDgtMi4wOUwxNDQgMzg2LjU5bC0xMC42MSAzMS44OGMtNS44OSAxNy42Ni0yMi4zOCAyOS41My00MSAyOS41M0g4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNmgxMi4zOWM0LjgzIDAgOS4xMS0zLjA4IDEwLjY0LTcuNjZsMTguMTktNTQuNjRjMy4zLTkuODEgMTIuNDQtMTYuNDEgMjIuNzgtMTYuNDFzMTkuNDggNi41OSAyMi43NyAxNi40MWwxMy44OCA0MS42NGMxOS43NS0xNi4xOSA1NC4wNi05LjcgNjYgMTQuMTYgMS44OSAzLjc4IDUuNDkgNS45NSA5LjM2IDYuMjZ2LTgyLjEybDEyOC0xMjcuMDlWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtNDBsLTEyOC0uMTFjLTE2LjEyLS4zMS0zMC41OC05LjI4LTM3LjgzLTIzLjc1ek0zODQgMTIxLjljMC02LjMtMi41LTEyLjQtNy0xNi45TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMXptLTk2IDIyNS4wNlY0MTZoNjguOTlsMTYxLjY4LTE2Mi43OC02Ny44OC02Ny44OEwyODggMzQ2Ljk2em0yODAuNTQtMTc5LjYzbC0zMS44Ny0zMS44N2MtOS45NC05Ljk0LTI2LjA3LTkuOTQtMzYuMDEgMGwtMjcuMjUgMjcuMjUgNjcuODggNjcuODggMjcuMjUtMjcuMjVjOS45NS05Ljk0IDkuOTUtMjYuMDcgMC0zNi4wMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjUuMTggMjE2LjAxSDIyNHY4MGMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2di04MEg5NC44MmMtMTQuMjggMC0yMS40MS0xNy4yOS0xMS4yNy0yNy4zNmw5Ni40Mi05NS43YzYuNjUtNi42MSAxNy4zOS02LjYxIDI0LjA0IDBsOTYuNDIgOTUuN2MxMC4xNSAxMC4wNyAzLjAzIDI3LjM2LTExLjI1IDI3LjM2ek0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjEuOTQxVjEyOEgyNTZWMGg2LjA1OWM2LjM2NSAwIDEyLjQ3IDIuNTI5IDE2Ljk3MSA3LjAyOWw5Ny45NDEgOTcuOTQxQTI0LjAwNSAyNC4wMDUgMCAwIDEgMzg0IDEyMS45NDF6TTIyNCAxMzZWMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djQ2NGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptOTYgMTQ0LjAxNnYxMTEuOTYzYzAgMjEuNDQ1LTI1Ljk0MyAzMS45OTgtNDAuOTcxIDE2Ljk3MUwyMjQgMzUzLjk0MVYzOTJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDg4Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMjgwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djM4LjA1OWw1NS4wMjktNTUuMDEzYzE1LjAxMS0xNS4wMSA0MC45NzEtNC40OTEgNDAuOTcxIDE2Ljk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVXb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNTcuMSAxMjBIMzA1YzcuNyAwIDEzLjQgNy4xIDExLjcgMTQuN2wtMzggMTY4Yy0xLjIgNS41LTYuMSA5LjMtMTEuNyA5LjNoLTM4Yy01LjUgMC0xMC4zLTMuOC0xMS42LTkuMS0yNS44LTEwMy41LTIwLjgtODEuMi0yNS42LTExMC41aC0uNWMtMS4xIDE0LjMtMi40IDE3LjQtMjUuNiAxMTAuNS0xLjMgNS4zLTYuMSA5LjEtMTEuNiA5LjFIMTE3Yy01LjYgMC0xMC41LTMuOS0xMS43LTkuNGwtMzcuOC0xNjhjLTEuNy03LjUgNC0xNC42IDExLjctMTQuNmgyNC41YzUuNyAwIDEwLjcgNCAxMS44IDkuNyAxNS42IDc4IDIwLjEgMTA5LjUgMjEgMTIyLjIgMS42LTEwLjIgNy4zLTMyLjcgMjkuNC0xMjIuNyAxLjMtNS40IDYuMS05LjEgMTEuNy05LjFoMjkuMWM1LjYgMCAxMC40IDMuOCAxMS43IDkuMiAyNCAxMDAuNCAyOC44IDEyNCAyOS42IDEyOS40LS4yLTExLjItMi42LTE3LjggMjEuNi0xMjkuMiAxLTUuNiA1LjktOS41IDExLjUtOS41ek0zODQgMTIxLjl2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0xNjAtMTQuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbERyaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDMyMHMtNjQgOTIuNjUtNjQgMTI4YzAgMzUuMzUgMjguNjYgNjQgNjQgNjRzNjQtMjguNjUgNjQtNjQtNjQtMTI4LTY0LTEyOHptLTkuMzctMTAyLjk0TDI5NC45NCA5LjM3QzI4OC42OSAzLjEyIDI4MC41IDAgMjcyLjMxIDBzLTE2LjM4IDMuMTItMjIuNjIgOS4zN2wtODEuNTggODEuNThMODEuOTMgNC43NmMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwzNi42OSAyNy4zOGMtNi4yNCA2LjI1LTYuMjQgMTYuMzggMCAyMi42Mmw4Ni4xOSA4Ni4xOC05NC43NiA5NC43NmMtMzcuNDkgMzcuNDgtMzcuNDkgOTguMjYgMCAxMzUuNzVsMTE3LjE5IDExNy4xOWMxOC43NCAxOC43NCA0My4zMSAyOC4xMiA2Ny44NyAyOC4xMiAyNC41NyAwIDQ5LjEzLTkuMzcgNjcuODctMjguMTJsMjIxLjU3LTIyMS41N2MxMi41LTEyLjUgMTIuNS0zMi43NS4wMS00NS4yNXptLTExNi4yMiA3MC45N0g2NS45M2MxLjM2LTMuODQgMy41Ny03Ljk4IDcuNDMtMTEuODNsMTMuMTUtMTMuMTUgODEuNjEtODEuNjEgNTguNiA1OC42YzEyLjQ5IDEyLjQ5IDMyLjc1IDEyLjQ5IDQ1LjI0IDBzMTIuNDktMzIuNzUgMC00NS4yNGwtNTguNi01OC42IDU4Ljk1LTU4Ljk1IDE2Mi40NCAxNjIuNDQtNDguMzQgNDguMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjMgMjE3LjA2TDI5NC45NCA5LjM3QzI4OC42OSAzLjEyIDI4MC41IDAgMjcyLjMxIDBzLTE2LjM4IDMuMTItMjIuNjIgOS4zN2wtODEuNTggODEuNThMODEuOTMgNC43N2MtNi4yNC02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwzNi42OSAyNy4zOGMtNi4yNCA2LjI1LTYuMjQgMTYuMzggMCAyMi42M2w4Ni4xOSA4Ni4xOC05NC43NiA5NC43NmMtMzcuNDkgMzcuNDktMzcuNDkgOTguMjYgMCAxMzUuNzVsMTE3LjE5IDExNy4xOWMxOC43NSAxOC43NCA0My4zMSAyOC4xMiA2Ny44NyAyOC4xMiAyNC41NyAwIDQ5LjEzLTkuMzcgNjcuODgtMjguMTJsMjIxLjU3LTIyMS41N2MxMi40OS0xMi41IDEyLjQ5LTMyLjc2IDAtNDUuMjZ6bS0xMTYuMjIgNzAuOTdINjUuOTNjMS4zNi0zLjg0IDMuNTctNy45OCA3LjQzLTExLjgzbDEzLjE1LTEzLjE1IDgxLjYxLTgxLjYxIDU4LjYxIDU4LjZjMTIuNDkgMTIuNDkgMzIuNzUgMTIuNDkgNDUuMjQgMCAxMi40OS0xMi40OSAxMi40OS0zMi43NSAwLTQ1LjI0bC01OC42MS01OC42IDU4Ljk1LTU4Ljk1IDE2Mi40NSAxNjIuNDQtNDguMzUgNDguMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggNjRoLTh2MjBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEyVjY0SDk2djIwYzAgNi42LTUuNCAxMi0xMiAxMkg0NGMtNi42IDAtMTItNS40LTEyLTEyVjY0aC04QzEwLjcgNjQgMCA3NC43IDAgODh2MzM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDh2LTIwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjBoMzIwdi0yMGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjIwaDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWODhjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTk2IDM3MmMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMjcyIDIwOGMwIDYuNi01LjQgMTItMTIgMTJIMTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTk2YzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjk2em0wLTE2OGMwIDYuNi01LjQgMTItMTIgMTJIMTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTk2YzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjk2em0xMTIgMTUyYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtOTZjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODcuOTc2IDBIMjQuMDI4QzIuNzEgMC04LjA0NyAyNS44NjYgNy4wNTggNDAuOTcxTDE5MiAyMjUuOTQxVjQzMmMwIDcuODMxIDMuODIxIDE1LjE3IDEwLjIzNyAxOS42NjJsODAgNTUuOThDMjk4LjAyIDUxOC42OSAzMjAgNTA3LjQ5MyAzMjAgNDg3Ljk4VjIyNS45NDFsMTg0Ljk0Ny0xODQuOTdDNTIwLjAyMSAyNS44OTYgNTA5LjMzOCAwIDQ4Ny45NzYgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaW5nZXJwcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuMTIgMjQ1Ljk2Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0IDEuMTQgNzIuMjUtOC4xNCAxNDEuOS0yNy43IDIxMS41NS0yLjczIDkuNzIgMi4xNSAzMC40OSAyMy4xMiAzMC40OSAxMC40OCAwIDIwLjExLTYuOTIgMjMuMDktMTcuNTIgMTMuNTMtNDcuOTEgMzEuMDQtMTI1LjQxIDI5LjQ4LTIyNC41Mi4wMS0xMy4yNS0xMC43My0yNC0yMy45OS0yNHptLS44Ni04MS43M0MxOTQgMTY0LjE2IDE1MS4yNSAyMTEuMyAxNTIuMSAyNjUuMzJjLjc1IDQ3Ljk0LTMuNzUgOTUuOTEtMTMuMzcgMTQyLjU1LTIuNjkgMTIuOTggNS42NyAyNS42OSAxOC42NCAyOC4zNiAxMy4wNSAyLjY3IDI1LjY3LTUuNjYgMjguMzYtMTguNjQgMTAuMzQtNTAuMDkgMTUuMTctMTAxLjU4IDE0LjM3LTE1My4wMi0uNDEtMjUuOTUgMTkuOTItNTIuNDkgNTQuNDUtNTIuMzQgMzEuMzEuNDcgNTcuMTUgMjUuMzQgNTcuNjIgNTUuNDcuNzcgNDguMDUtMi44MSA5Ni4zMy0xMC42MSAxNDMuNTUtMi4xNyAxMy4wNiA2LjY5IDI1LjQyIDE5Ljc2IDI3LjU4IDE5Ljk3IDMuMzMgMjYuODEtMTUuMSAyNy41OC0xOS43NyA4LjI4LTUwLjAzIDEyLjA2LTEwMS4yMSAxMS4yNy0xNTIuMTEtLjg4LTU1LjgtNDcuOTQtMTAxLjg4LTEwNC45MS0xMDIuNzJ6bS0xMTAuNjktMTkuNzhjLTEwLjMtOC4zNC0yNS4zNy02LjgtMzMuNzYgMy40OC0yNS42MiAzMS41LTM5LjM5IDcxLjI4LTM4Ljc1IDExMiAuNTkgMzcuNTgtMi40NyA3NS4yNy05LjExIDExMi4wNS0yLjM0IDEzLjA1IDYuMzEgMjUuNTMgMTkuMzYgMjcuODkgMjAuMTEgMy41IDI3LjA3LTE0LjgxIDI3Ljg5LTE5LjM2IDcuMTktMzkuODQgMTAuNS04MC42NiA5Ljg2LTEyMS4zMy0uNDctMjkuODggOS4yLTU3Ljg4IDI4LTgwLjk3IDguMzUtMTAuMjggNi43OS0yNS4zOS0zLjQ5LTMzLjc2em0xMDkuNDctNjIuMzNjLTE1LjQxLS40MS0zMC44NyAxLjQ0LTQ1Ljc4IDQuOTctMTIuODkgMy4wNi0yMC44NyAxNS45OC0xNy44MyAyOC44OSAzLjA2IDEyLjg5IDE2IDIwLjgzIDI4Ljg5IDE3LjgzIDExLjA1LTIuNjEgMjIuNDctMy43NyAzNC0zLjY5IDc1LjQzIDEuMTMgMTM3LjczIDYxLjUgMTM4Ljg4IDEzNC41OC41OSAzNy44OC0xLjI4IDc2LjExLTUuNTggMTEzLjYzLTEuNSAxMy4xNyA3Ljk1IDI1LjA4IDIxLjExIDI2LjU4IDE2LjcyIDEuOTUgMjUuNTEtMTEuODggMjYuNTgtMjEuMTFhOTI5LjA2IDkyOS4wNiAwIDAgMCA1Ljg5LTExOS44NWMtMS41Ni05OC43NS04NS4wNy0xODAuMzMtMTg2LjE2LTE4MS44M3ptMjUyLjA3IDEyMS40NWMtMi44Ni0xMi45Mi0xNS41MS0yMS4yLTI4LjYxLTE4LjI3LTEyLjk0IDIuODYtMjEuMTIgMTUuNjYtMTguMjYgMjguNjEgNC43MSAyMS40MSA0LjkxIDM3LjQxIDQuNyA2MS42LS4xMSAxMy4yNyAxMC41NSAyNC4wOSAyMy44IDI0LjJoLjJjMTMuMTcgMCAyMy44OS0xMC42MSAyNC0yMy44LjE4LTIyLjE4LjQtNDQuMTEtNS44My03Mi4zNHptLTQwLjEyLTkwLjcyQzQxNy4yOSA0My40NiAzMzcuNiAxLjI5IDI1Mi44MS4wMiAxODMuMDItLjgyIDExOC40NyAyNC45MSA3MC40NiA3Mi45NCAyNC4wOSAxMTkuMzctLjkgMTgxLjA0LjE0IDI0Ni42NWwtLjEyIDIxLjQ3Yy0uMzkgMTMuMjUgMTAuMDMgMjQuMzEgMjMuMjggMjQuNjkuMjMuMDIuNDguMDIuNzIuMDIgMTIuOTIgMCAyMy41OS0xMC4zIDIzLjk3LTIzLjNsLjE2LTIzLjY0Yy0uODMtNTIuNSAxOS4xNi0xMDEuODYgNTYuMjgtMTM5IDM4Ljc2LTM4LjggOTEuMzQtNTkuNjcgMTQ3LjY4LTU4Ljg2IDY5LjQ1IDEuMDMgMTM0LjczIDM1LjU2IDE3NC42MiA5Mi4zOSA3LjYxIDEwLjg2IDIyLjU2IDEzLjQ1IDMzLjQyIDUuODYgMTAuODQtNy42MiAxMy40Ni0yMi41OSA1Ljg0LTMzLjQzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjU2IDUxLjJjLTIwLjggMTkuMy0zOS41OCAzOS41OS01Ni4yMiA1OS45N0MyNDAuMDggNzMuNjIgMjA2LjI4IDM1LjUzIDE2OCAwIDY5Ljc0IDkxLjE3IDAgMjA5Ljk2IDAgMjgxLjYgMCA0MDguODUgMTAwLjI5IDUxMiAyMjQgNTEyczIyNC0xMDMuMTUgMjI0LTIzMC40YzAtNTMuMjctNTEuOTgtMTYzLjE0LTEyNC40NC0yMzAuNHptLTE5LjQ3IDM0MC42NUMyODIuNDMgNDA3LjAxIDI1NS43MiA0MTYgMjI2Ljg2IDQxNiAxNTQuNzEgNDE2IDk2IDM2OC4yNiA5NiAyOTAuNzVjMC0zOC42MSAyNC4zMS03Mi42MyA3Mi43OS0xMzAuNzUgNi45MyA3Ljk4IDk4LjgzIDEyNS4zNCA5OC44MyAxMjUuMzRsNTguNjMtNjYuODhjNC4xNCA2Ljg1IDcuOTEgMTMuNTUgMTEuMjcgMTkuOTcgMjcuMzUgNTIuMTkgMTUuODEgMTE4Ljk3LTMzLjQzIDE1My40MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlRXh0aW5ndWlzaGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNC4wMjcgMjYuMzI5bC0xNjggMjhDMjU0LjY5MyA1Ni4yMTggMjU2IDY3LjggMjU2IDcyaC01OC4zMzJDMjA4LjM1MyAzNi4xMDggMTgxLjQ0NiAwIDE0NCAwYy0zOS40MzUgMC02Ni4zNjggMzkuNjc2LTUyLjIyOCA3Ni4yMDMtNTIuMDM5IDEzLjA1MS03NS4zODEgNTQuMjEzLTkwLjA0OSA5MC44ODQtNC45MjMgMTIuMzA3IDEuMDYzIDI2LjI3NCAxMy4zNyAzMS4xOTcgMTIuMzE3IDQuOTI2IDI2LjI3OS0xLjA3NSAzMS4xOTYtMTMuMzdDNzUuMDU4IDExMi45OSAxMDYuOTY0IDEyMCAxNjggMTIwdjI3LjA3NmMtNDEuNTQzIDEwLjg2Mi03MiA0OS4yMzUtNzIgOTQuMTI5VjQ4OGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTQ0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNDBjMC00NC43MzEtMzAuNTk2LTgyLjMxMi03Mi05Mi45N1YxMjBoNDBjMCAyLjk3NC0xLjcwMyAxNS43MTYgMTAuMDI3IDE3LjY3MWwxNjggMjhDNDQxLjM0MiAxNjYuODkgNDQ4IDE2MS4yNSA0NDggMTUzLjgzNFYzOC4xNjZjMC03LjQxNi02LjY1OC0xMy4wNTYtMTMuOTczLTExLjgzN3pNMTQ0IDcyYy04LjgyMiAwLTE2LTcuMTc4LTE2LTE2czcuMTc4LTE2IDE2LTE2IDE2IDcuMTc4IDE2IDE2LTcuMTc4IDE2LTE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDIzLjg2YzAtMjMuOC0zMC42NS0zMi43Ny00NC4xNS0xMy4wNEM0OCAxOTEuODUgMjI0IDIwMCAyMjQgMjg4YzAgMzUuNjMtMjkuMTEgNjQuNDYtNjQuODUgNjMuOTktMzUuMTctLjQ1LTYzLjE1LTI5Ljc3LTYzLjE1LTY0Ljk0di04NS41MWMwLTIxLjctMjYuNDctMzIuMjMtNDEuNDMtMTYuNUMyNy44IDIxMy4xNiAwIDI2MS4zMyAwIDMyMGMwIDEwNS44NyA4Ni4xMyAxOTIgMTkyIDE5MnMxOTItODYuMTMgMTkyLTE5MmMwLTE3MC4yOS0xNjgtMTkzLTE2OC0yOTYuMTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyc3RBaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDhWMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHptMTI4IDQwMGgzMjBWMzJIMTI4djQ0OHptNjQtMjQ4YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OHpNNTI4IDMyaC00OHY0NDhoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjcuMSA5NmMtODkuOTcgMC0xNjguNTQgNTQuNzctMjEyLjI3IDEwMS42M0wyNy41IDEzMS41OGMtMTIuMTMtOS4xOC0zMC4yNC42LTI3LjE0IDE0LjY2TDI0LjU0IDI1NiAuMzUgMzY1Ljc3Yy0zLjEgMTQuMDYgMTUuMDEgMjMuODMgMjcuMTQgMTQuNjZsODcuMzMtNjYuMDVDMTU4LjU1IDM2MS4yMyAyMzcuMTMgNDE2IDMyNy4xIDQxNiA0NjQuNTYgNDE2IDU3NiAyODggNTc2IDI1NlM0NjQuNTYgOTYgMzI3LjEgOTZ6bTg3LjQzIDE4NGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0IDEzLjI2IDAgMjQgMTAuNzQgMjQgMjQgMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXN0UmFpc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS45OCAxNjBWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDYuOTNjNS4wMi0xLjc4IDEwLjM0LTIuOTMgMTUuOTctMi45M2g0OC4wM3ptMTI4IDk1Ljk5Yy0uMDEtMzUuMzQtMjguNjYtNjMuOTktNjMuOTktNjMuOTlIMjA3Ljg1Yy04Ljc4IDAtMTUuOSA3LjA3LTE1LjkgMTUuODV2LjU2YzAgMjYuMjcgMjEuMyA0Ny41OSA0Ny41NyA0Ny41OWgzNS4yNmM5LjY4IDAgMTMuMiAzLjU4IDEzLjIgOHYxNi4yYzAgNC4yOS0zLjU5IDcuNzgtNy44OCA4LTQ0LjUyIDIuMjgtNjQuMTYgMjQuNzEtOTYuMDUgNzIuNTVsLTYuMzEgOS40N2E3Ljk5NCA3Ljk5NCAwIDAgMS0xMS4wOSAyLjIybC0xMy4zMS04Ljg4YTcuOTk0IDcuOTk0IDAgMCAxLTIuMjItMTEuMDlsNi4zMS05LjQ3YzE1LjczLTIzLjYgMzAuMi00My4yNiA0Ny4zMS01OC4wOC0xNy4yNy01LjUxLTMxLjQtMTguMTItMzguODctMzQuNDUtNi41OSAzLjQxLTEzLjk2IDUuNTItMjEuODcgNS41MmgtMzJjLTEyLjM0IDAtMjMuNDktNC44MS0zMi0xMi40OEM3MS40OCAyNTEuMTkgNjAuMzMgMjU2IDQ4IDI1NkgxNmMtNS42NCAwLTEwLjk3LTEuMTUtMTYtMi45NXY3Ny45M2MwIDMzLjk1IDEzLjQ4IDY2LjUgMzcuNDkgOTAuNTFMNjMuOTkgNDQ4djY0aDI1NS45OHYtNjMuOTZsMzUuOTEtMzUuOTJBOTYuMDM1IDk2LjAzNSAwIDAgMCAzODQgMzQ0LjIxbC0uMDItODguMjJ6bS0zMi4wMS05MC4wOVY0OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djExMmgzMmMxMS4yOCAwIDIxLjk0IDIuMzEgMzIgNS45ek0xNiAyMjRoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MTI4YzAgOC44NCA3LjE2IDE2IDE2IDE2em05NS45OSAwaDMyYzguODQgMCAxNi03LjE2IDE2LTE2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTYwYzAgOC44NCA3LjE2IDE2IDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYWdDaGVja2VyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQzLjIgMTg5LjlWMjU4YzI2LjEgNS45IDQ5LjMgMTUuNiA3My42IDIyLjN2LTY4LjJjLTI2LTUuOC00OS40LTE1LjUtNzMuNi0yMi4yem0yMjMuMy0xMjNjLTM0LjMgMTUuOS03Ni41IDMxLjktMTE3IDMxLjlDMjk2IDk4LjggMjUxLjcgNjQgMTg0LjMgNjRjLTI1IDAtNDcuMyA0LjQtNjggMTIgMi44LTcuMyA0LjEtMTUuMiAzLjYtMjMuNkMxMTguMSAyNCA5NC44IDEuMiA2Ni4zIDAgMzQuMy0xLjMgOCAyNC4zIDggNTZjMCAxOSA5LjUgMzUuOCAyNCA0NS45VjQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtOTQuNGMyOC4zLTEyLjEgNjMuNi0yMi4xIDExNC40LTIyLjEgNTMuNiAwIDk3LjggMzQuOCAxNjUuMiAzNC44IDQ4LjIgMCA4Ni43LTE2LjMgMTIyLjUtNDAuOSA4LjctNiAxMy44LTE1LjggMTMuOC0yNi40Vjk1LjljLjEtMjMuMy0yNC4yLTM4LjgtNDUuNC0yOXpNMTY5LjYgMzI1LjVjLTI1LjggMi43LTUwIDguMi03My42IDE2LjZ2LTcwLjVjMjYuMi05LjMgNDcuNS0xNSA3My42LTE3LjR6TTQ2NCAxOTFjLTIzLjYgOS44LTQ2LjMgMTkuNS03My42IDIzLjlWMjg2YzI0LjgtMy40IDUxLjQtMTEuOCA3My42LTI2djcwLjVjLTI1LjEgMTYuMS00OC41IDI0LjctNzMuNiAyNy4xVjI4NmMtMjcgMy43LTQ3LjkgMS41LTczLjYtNS42djY3LjRjLTIzLjktNy40LTQ3LjMtMTYuNy03My42LTIxLjNWMjU4Yy0xOS43LTQuNC00MC44LTYuOC03My42LTMuOHYtNzBjLTIyLjQgMy4xLTQ0LjYgMTAuMi03My42IDIwLjl2LTcwLjVjMzMuMi0xMi4yIDUwLjEtMTkuOCA3My42LTIydjcxLjZjMjctMy43IDQ4LjQtMS4zIDczLjYgNS43di02Ny40YzIzLjcgNy40IDQ3LjIgMTYuNyA3My42IDIxLjN2NjguNGMyMy43IDUuMyA0Ny42IDYuOSA3My42IDIuN1YxNDNjMjctNC44IDUyLjMtMTMuNiA3My42LTIyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxhZ1VzYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwem0yNjcuOSAzMDMuNmMtNTcuMi0xNS4xLTExMS43LTI4LjgtMjAzLjkgMTEuMVYzODRjMTg1LjctOTIuMiAyMjEuNyA1My4zIDM5Ny41LTIzLjEgMTEuNC01IDE4LjUtMTYuNSAxOC41LTI4Ljh2LTM2Yy00My42IDE3LjMtODAuMiAyNC4xLTExMi4xIDI0LjEtMzcuNC0uMS02OC45LTguNC0xMDAtMTYuNnptMC05NmMtNTcuMi0xNS4xLTExMS43LTI4LjgtMjAzLjkgMTEuMXY2MS41Yzk0LjgtMzcuNiAxNTQuNi0yMi43IDIxMi4xLTcuNiA1Ny4yIDE1LjEgMTExLjcgMjguOCAyMDMuOS0xMS4xVjIwMGMtNDMuNiAxNy4zLTgwLjIgMjQuMS0xMTIuMSAyNC4xLTM3LjQgMC02OC45LTguMy0xMDAtMTYuNXptOS41LTEyNS45YzUxLjggMTUuNiA5Ny40IDI5IDIwMi42LTIwLjFWMzAuOGMwLTI1LjEtMjYuOC0zOC4xLTQ5LjQtMjYuNkMyOTEuMyA5MS41IDMwNS40LTYyLjIgOTYgMzIuNHYxNTEuOWM5NC44LTM3LjUgMTU0LjYtMjIuNyAyMTIuMS03LjYgNTcuMiAxNSAxMTEuNyAyOC43IDIwMy45LTExLjFWOTYuN2MtNTMuNiAyMy41LTkzLjMgMzEuNC0xMjYuMSAzMS40cy01OS03LjgtODUuNy0xNS45Yy00LTEuMi04LjEtMi40LTEyLjEtMy41Vjc1LjVjNy4yIDIgMTQuMyA0LjEgMjEuMyA2LjJ6TTE2MCAxMjguMWMtOC44IDAtMTYtNy4xLTE2LTE2IDAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjEgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTU1LjhjLTguOCAwLTE2LTcuMS0xNi0xNiAwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4xIDE2IDE2YzAgOC44LTcuMiAxNi0xNiAxNnptNjQgNDcuOWMtOC44IDAtMTYtNy4xLTE2LTE2IDAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjEgMTYgMTZjMCA4LjgtNy4yIDE2LTE2IDE2em0wLTU1LjljLTguOCAwLTE2LTcuMS0xNi0xNiAwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4xIDE2IDE2YzAgOC44LTcuMiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0OS41NjUgOTguNzgzQzI5NS45NzggOTguNzgzIDI1MS43MjEgNjQgMTg0LjM0OCA2NGMtMjQuOTU1IDAtNDcuMzA5IDQuMzg0LTY4LjA0NSAxMi4wMTNhNTUuOTQ3IDU1Ljk0NyAwIDAgMCAzLjU4Ni0yMy41NjJDMTE4LjExNyAyNC4wMTUgOTQuODA2IDEuMjA2IDY2LjMzOC4wNDggMzQuMzQ1LTEuMjU0IDggMjQuMjk2IDggNTZjMCAxOS4wMjYgOS40OTcgMzUuODI1IDI0IDQ1Ljk0NVY0ODhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtOTQuNGMyOC4zMTEtMTIuMDY0IDYzLjU4Mi0yMi4xMjIgMTE0LjQzNS0yMi4xMjIgNTMuNTg4IDAgOTcuODQ0IDM0Ljc4MyAxNjUuMjE3IDM0Ljc4MyA0OC4xNjkgMCA4Ni42NjctMTYuMjk0IDEyMi41MDUtNDAuODU4QzUwNi44NCAzNTkuNDUyIDUxMiAzNDkuNTcxIDUxMiAzMzkuMDQ1di0yNDMuMWMwLTIzLjM5My0yNC4yNjktMzguODctNDUuNDg1LTI5LjAxNi0zNC4zMzggMTUuOTQ4LTc2LjQ1NCAzMS44NTQtMTE2Ljk1IDMxLjg1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuMiA0MDMuNUwzMjAgMjE1VjY0aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4djE1MUwxMC44IDQwMy41Qy0xOC41IDQ1MC42IDE1LjMgNTEyIDcwLjkgNTEyaDMwNi4yYzU1LjcgMCA4OS40LTYxLjUgNjAuMS0xMDguNXpNMTM3LjkgMzIwbDQ4LjItNzcuNmMzLjctNS4yIDUuOC0xMS42IDUuOC0xOC40VjY0aDY0djE2MGMwIDYuOSAyLjIgMTMuMiA1LjggMTguNGw0OC4yIDc3LjZoLTE3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbHVzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NCAyMDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em0tMTkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek04MCAyMjRjMC0zOS44IDMyLjItNzIgNzItNzJzNzIgMzIuMiA3MiA3Mi0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzJ6bTIzMiAxNzZIMTg0Yy0yMS4yIDAtMjEuMi0zMiAwLTMyaDEyOGMyMS4yIDAgMjEuMiAzMiAwIDMyem0zMi0xMDRjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzIgNzIgMzIuMiA3MiA3Mi0zMi4yIDcyLTcyIDcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxMjhIMjcybC02NC02NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE3NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tOTYgMTY4YzAgOC44NC03LjE2IDE2LTE2IDE2SDE2MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDE5MmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3Mi42OTQgMjkyLjA5M0w1MDAuMjcgNDE2LjI0OEE2My45OTcgNjMuOTk3IDAgMCAxIDQ0NC45ODkgNDQ4SDQ1LjAyNWMtMTguNTIzIDAtMzAuMDY0LTIwLjA5My0yMC43MzEtMzYuMDkzbDcyLjQyNC0xMjQuMTU1QTY0IDY0IDAgMCAxIDE1MiAyNTZoMzk5Ljk2NGMxOC41MjMgMCAzMC4wNjQgMjAuMDkzIDIwLjczIDM2LjA5M3pNMTUyIDIyNGgzMjh2LTQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhIMjcybC02NC02NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI3OC4wNDZsNjkuMDc3LTExOC40MThDODYuMjE0IDI0Mi4yNSAxMTcuOTg5IDIyNCAxNTIgMjI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0LDEyOEgyNzJMMjA4LDY0SDQ4QTQ4LDQ4LDAsMCwwLDAsMTEyVjQwMGE0OCw0OCwwLDAsMCw0OCw0OEg0NjRhNDgsNDgsMCwwLDAsNDgtNDhWMTc2QTQ4LDQ4LDAsMCwwLDQ2NCwxMjhaTTM1OS41LDI5NmExNiwxNiwwLDAsMS0xNiwxNmgtNjR2NjRhMTYsMTYsMCwwLDEtMTYsMTZoLTE2YTE2LDE2LDAsMCwxLTE2LTE2VjMxMmgtNjRhMTYsMTYsMCwwLDEtMTYtMTZWMjgwYTE2LDE2LDAsMCwxLDE2LTE2aDY0VjIwMGExNiwxNiwwLDAsMSwxNi0xNmgxNmExNiwxNiwwLDAsMSwxNiwxNnY2NGg2NGExNiwxNiwwLDAsMSwxNiwxNlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDEyOEgyNzJsLTY0LTY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTc2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgNDE2aC0yMy40MUwyNzcuODggNTMuNjlBMzIgMzIgMCAwIDAgMjQ3LjU4IDMyaC00Ny4xNmEzMiAzMiAwIDAgMC0zMC4zIDIxLjY5TDM5LjQxIDQxNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0xOS41OGwyMy4zLTY0aDE1Mi41NmwyMy4zIDY0SDMwNGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xNzYuODUgMjcyTDIyNCAxNDIuNTEgMjcxLjE1IDI3MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb290YmFsbEJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgxLjUgNjAuM2MtNC44LTE4LjItMTkuMS0zMi41LTM3LjMtMzcuNEM0MjAuMyAxNi41IDM4MyA4LjkgMzM5LjQgOEw0OTYgMTY0LjhjLS44LTQzLjUtOC4yLTgwLjYtMTQuNS0xMDQuNXptLTQ2NyAzOTEuNGM0LjggMTguMiAxOS4xIDMyLjUgMzcuMyAzNy40IDIzLjkgNi40IDYxLjIgMTQgMTA0LjggMTQuOUwwIDM0Ny4yYy44IDQzLjUgOC4yIDgwLjYgMTQuNSAxMDQuNXpNNC4yIDI4My40TDIyMC40IDUwMGMxMzIuNS0xOS40IDI0OC44LTExOC43IDI3MS41LTI3MS40TDI3NS42IDEyQzE0My4xIDMxLjQgMjYuOCAxMzAuNyA0LjIgMjgzLjR6bTMxNy4zLTEyMy42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMTEuMyAxMS4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTI4LjMgMjguMyAyOC4zIDI4LjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC0yOC4zLTI4LjMtMjIuNiAyMi43IDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBMMjQ4IDI3OC42bC0yMi42IDIyLjYgMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtMjguMy0yOC4zLTI4LjMgMjguM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtMTEuMy0xMS4zYy0zLjEtMy4xLTMuMS04LjIgMC0xMS4zbDI4LjMtMjguMy0yOC4zLTI4LjJjLTMuMS0zLjEtMy4xLTguMiAwLTExLjNsMTEuMy0xMS4zYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zIDIyLjYtMjIuNi0yOC4zLTI4LjNjLTMuMS0zLjEtMy4xLTguMiAwLTExLjNsMTEuMy0xMS4zYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zIDIyLjYtMjIuNi0yOC4zLTI4LjNjLTMuMS0zLjEtMy4xLTguMiAwLTExLjNsMTEuMy0xMS4zYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zIDI4LjMtMjguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMC41IDIzMS40bC0xOTItMTYwQzI4Ny45IDU0LjMgMjU2IDY4LjYgMjU2IDk2djMyMGMwIDI3LjQgMzEuOSA0MS44IDUyLjUgMjQuNmwxOTItMTYwYzE1LjMtMTIuOCAxNS4zLTM2LjQgMC00OS4yem0tMjU2IDBsLTE5Mi0xNjBDMzEuOSA1NC4zIDAgNjguNiAwIDk2djMyMGMwIDI3LjQgMzEuOSA0MS44IDUyLjUgMjQuNmwxOTItMTYwYzE1LjMtMTIuOCAxNS4zLTM2LjQgMC00OS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjUzIDk3LjQzQzQzOS42NyA2MC4yMyA0MDcuMTkgMzIgMzY4IDMyYy0zOS4yMyAwLTcxLjcyIDI4LjI5LTc4LjU0IDY1LjU0QzEyNi43NSAxMTIuOTYtLjUgMjUwLjEyIDAgNDE2Ljk4LjExIDQ1MS45IDI5LjA4IDQ4MCA2NCA0ODBoMzA0YzguODQgMCAxNi03LjE2IDE2LTE2IDAtMTcuNjctMTQuMzMtMzItMzItMzJoLTc5LjQ5bDM1LjgtNDguMzNjMjQuMTQtMzYuMjMgMTAuMzUtODguMjgtMzMuNzEtMTA2LjYtMjMuODktOS45My01MS41NS00LjY1LTcyLjI0IDEwLjg4bC0zMi43NiAyNC41OWMtNy4wNiA1LjMxLTE3LjA5IDMuOTEtMjIuNDEtMy4xOS01LjMtNy4wOC0zLjg4LTE3LjExIDMuMTktMjIuNDFsMzQuNzgtMjYuMDljMzYuODQtMjcuNjYgODguMjgtMjcuNjIgMTI1LjEzIDAgMTAuODcgOC4xNSA0NS44NyAzOS4wNiA0MC44IDkzLjIxTDQ2OS42MiA0ODBINTYwYzguODQgMCAxNi03LjE2IDE2LTE2IDAtMTcuNjctMTQuMzMtMzItMzItMzJoLTUzLjYzbC05OC41Mi0xMDQuNjggMTU0LjQ0LTg2LjY1QTU4LjE2IDU4LjE2IDAgMCAwIDU3NiAxODkuOTRjMC0yMS40LTExLjcyLTQwLjk1LTMwLjQ4LTUxLjIzLTQwLjU2LTIyLjIyLTk4Ljk5LTQxLjI4LTk4Ljk5LTQxLjI4ek0zNjggMTM2Yy0xMy4yNiAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzQtMjQgMjQtMjQgMTMuMjUgMCAyNCAxMC43NCAyNCAyNCAwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyb3duT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek0xMzYgMjA4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem0xODcuMyAxODMuM2MtMzEuMi05LjYtNTkuNC0xNS4zLTc1LjMtMTUuM3MtNDQuMSA1LjctNzUuMyAxNS4zYy0xMS41IDMuNS0yMi41LTYuMy0yMC41LTE4LjEgNy00MCA2MC4xLTYxLjIgOTUuOC02MS4yczg4LjggMjEuMyA5NS44IDYxLjJjMiAxMS45LTkuMSAyMS42LTIwLjUgMTguMXpNMzI4IDI0MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTY4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptLTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMTcwLjIgMjE4LjJDMzE1LjggMzY3LjQgMjgyLjkgMzUyIDI0OCAzNTJzLTY3LjggMTUuNC05MC4yIDQyLjJjLTEzLjUgMTYuMy0zOC4xLTQuMi0yNC42LTIwLjVDMTYxLjcgMzM5LjYgMjAzLjYgMzIwIDI0OCAzMjBzODYuMyAxOS42IDExNC43IDUzLjhjMTMuNiAxNi4yLTExIDM2LjctMjQuNSAyMC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZ1bm5lbERvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuNDYgMTY1Ljk0bDEwMS4yLTExMS44N0M1NTQuNjEgMzQuMTIgNTQwLjQ4IDAgNTEyLjI2IDBIMzEuNzRDMy41MiAwLTEwLjYxIDM0LjEyIDkuMzQgNTQuMDdMMTkyIDI1NnYxNTUuOTJjMCAxMi41OSA1LjkzIDI0LjQ0IDE2IDMybDc5Ljk5IDYwYzIwLjg2IDE1LjY0IDQ4LjQ3IDYuOTcgNTkuMjItMTMuNTdDMzEwLjggNDU1LjM4IDI4OCA0MDYuMzUgMjg4IDM1MmMwLTg5Ljc5IDYyLjA1LTE2NS4xNyAxNDUuNDYtMTg2LjA2ek00ODAgMTkyYy04OC4zNyAwLTE2MCA3MS42My0xNjAgMTYwczcxLjYzIDE2MCAxNjAgMTYwIDE2MC03MS42MyAxNjAtMTYwLTcxLjYzLTE2MC0xNjAtMTYwem0xNiAyMzkuODhWNDQ4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTE2LjI5Yy0xMS4yOS0uNTgtMjIuMjctNC41Mi0zMS4zNy0xMS4zNS0zLjktMi45My00LjEtOC43Ny0uNTctMTIuMTRsMTEuNzUtMTEuMjFjMi43Ny0yLjY0IDYuODktMi43NiAxMC4xMy0uNzMgMy44NyAyLjQyIDguMjYgMy43MiAxMi44MiAzLjcyaDI4LjExYzYuNSAwIDExLjgtNS45MiAxMS44LTEzLjE5IDAtNS45NS0zLjYxLTExLjE5LTguNzctMTIuNzNsLTQ1LTEzLjVjLTE4LjU5LTUuNTgtMzEuNTgtMjMuNDItMzEuNTgtNDMuMzkgMC0yNC41MiAxOS4wNS00NC40NCA0Mi42Ny00NS4wN1YyNTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTYuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNCA0NC40NC00Mi42NyA0NS4wN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGdXRib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NmMwIDEzNi45NjctMTExLjAzMyAyNDgtMjQ4IDI0OFM4IDM5Mi45NjcgOCAyNTYgMTE5LjAzMyA4IDI1NiA4czI0OCAxMTEuMDMzIDI0OCAyNDh6bS00OCAwbC0uMDAzLS4yODItMjYuMDY0IDIyLjc0MS02Mi42NzktNTguNSAxNi40NTQtODQuMzU1IDM0LjMwMyAzLjA3MmMtMjQuODg5LTM0LjIxNi02MC4wMDQtNjAuMDg5LTEwMC43MDktNzMuMTQxbDEzLjY1MSAzMS45MzlMMjU2IDEzOWwtNzQuOTUzLTQxLjUyNSAxMy42NTEtMzEuOTM5Yy00MC42MzEgMTMuMDI4LTc1Ljc4IDM4Ljg3LTEwMC43MDkgNzMuMTQxbDM0LjU2NS0zLjA3MyAxNi4xOTIgODQuMzU1LTYyLjY3OCA1OC41LTI2LjA2NC0yMi43NDEtLjAwMy4yODJjMCA0My4wMTUgMTMuNDk3IDgzLjk1MiAzOC40NzIgMTE3Ljk5MWw3LjcwNC0zMy44OTcgODUuMTM4IDEwLjQ0NyAzNi4zMDEgNzcuODI2LTI5LjkwMiAxNy43ODZjNDAuMjAyIDEzLjEyMiA4NC4yOSAxMy4xNDggMTI0LjU3MiAwbC0yOS45MDItMTcuNzg2IDM2LjMwMS03Ny44MjYgODUuMTM4LTEwLjQ0NyA3LjcwNCAzMy44OTdDNDQyLjUwMyAzMzkuOTUyIDQ1NiAyOTkuMDE1IDQ1NiAyNTZ6bS0yNDguMTAyIDY5LjU3MWwtMjkuODk0LTkxLjMxMkwyNTYgMTc3LjczMmw3Ny45OTYgNTYuNTI3LTI5LjYyMiA5MS4zMTJoLTk2LjQ3NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYW1lcGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MC4wNyA5NkgxNjBhMTYwIDE2MCAwIDEgMCAxMTQuMjQgMjcyaDkxLjUyQTE2MCAxNjAgMCAxIDAgNDgwLjA3IDk2ek0yNDggMjY4YTEyIDEyIDAgMCAxLTEyIDEyaC01MnY1MmExMiAxMiAwIDAgMS0xMiAxMmgtMjRhMTIgMTIgMCAwIDEtMTItMTJ2LTUySDg0YTEyIDEyIDAgMCAxLTEyLTEydi0yNGExMiAxMiAwIDAgMSAxMi0xMmg1MnYtNTJhMTIgMTIgMCAwIDEgMTItMTJoMjRhMTIgMTIgMCAwIDEgMTIgMTJ2NTJoNTJhMTIgMTIgMCAwIDEgMTIgMTJ6bTIxNiA3NmE0MCA0MCAwIDEgMSA0MC00MCA0MCA0MCAwIDAgMS00MCA0MHptNjQtOTZhNDAgNDAgMCAxIDEgNDAtNDAgNDAgNDAgMCAwIDEtNDAgNDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FzUHVtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNDQ4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyMGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMTU3LjItMzQwLjdsLTgxLTgxYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTEuMyAxMS4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkw0MTYgOTcuOVYxNjBjMCAyOC4xIDIwLjkgNTEuMyA0OCA1NS4yVjM3NmMwIDEzLjItMTAuOCAyNC0yNCAyNHMtMjQtMTAuOC0yNC0yNHYtMzJjMC00OC42LTM5LjQtODgtODgtODhoLThWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIOTZDNjAuNyAwIDMyIDI4LjcgMzIgNjR2MzUyaDI4OFYzMDRoOGMyMi4xIDAgNDAgMTcuOSA0MCA0MHYyNy44YzAgMzcuNyAyNyA3MiA2NC41IDc1LjkgNDMgNC4zIDc5LjUtMjkuNSA3OS41LTcxLjdWMTUyLjZjMC0xNy02LjgtMzMuMy0xOC44LTQ1LjN6TTI1NiAxOTJIOTZWNjRoMTYwdjEyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYXZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQuOTcxIDE5OS4zNjJsLTIyLjYyNy0yMi42MjdjLTkuMzczLTkuMzczLTI0LjU2OS05LjM3My0zMy45NDEgMGwtNS42NTcgNS42NTdMMzI5LjYwOCA2OS4yNTVsNS42NTctNS42NTdjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDMxMi42MzggNy4wMjljLTkuMzczLTkuMzczLTI0LjU2OS05LjM3My0zMy45NDEgMEwxNTQuMjQ2IDEzMS40OGMtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDIyLjYyNyAyMi42MjdjOS4zNzMgOS4zNzMgMjQuNTY5IDkuMzczIDMzLjk0MSAwbDUuNjU3LTUuNjU3IDM5LjU5OCAzOS41OTgtODEuMDQgODEuMDQtNS42NTctNS42NTdjLTEyLjQ5Ny0xMi40OTctMzIuNzU4LTEyLjQ5Ny00NS4yNTUgMEw5LjM3MyA0MTIuMTE4Yy0xMi40OTcgMTIuNDk3LTEyLjQ5NyAzMi43NTggMCA0NS4yNTVsNDUuMjU1IDQ1LjI1NWMxMi40OTcgMTIuNDk3IDMyLjc1OCAxMi40OTcgNDUuMjU1IDBsMTE0Ljc0NS0xMTQuNzQ1YzEyLjQ5Ny0xMi40OTcgMTIuNDk3LTMyLjc1OCAwLTQ1LjI1NWwtNS42NTctNS42NTcgODEuMDQtODEuMDQgMzkuNTk4IDM5LjU5OC01LjY1NyA1LjY1N2MtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDIyLjYyNyAyMi42MjdjOS4zNzMgOS4zNzMgMjQuNTY5IDkuMzczIDMzLjk0MSAwbDEyNC40NTEtMTI0LjQ1MWM5LjM3Mi05LjM3MiA5LjM3Mi0yNC41NjggMC0zMy45NDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2VtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4NS41IDBMNTc2IDE2MEg0NzQuOUw0MDUuNyAwaDc5Ljh6bS0xMjggMGw2OS4yIDE2MEgxNDkuM0wyMTguNSAwaDEzOXptLTI2NyAwaDc5LjhsLTY5LjIgMTYwSDBMOTAuNSAwek0wIDE5MmgxMDAuN2wxMjMgMjUxLjdjMS41IDMuMS0yLjcgNS45LTUgMy4zTDAgMTkyem0xNDguMiAwaDI3OS42bC0xMzcgMzE4LjJjLTEgMi40LTQuNSAyLjQtNS41IDBMMTQ4LjIgMTkyem0yMDQuMSAyNTEuN2wxMjMtMjUxLjdINTc2TDM1Ny4zIDQ0Ni45Yy0yLjMgMi43LTYuNS0uMS01LTMuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZW5kZXJsZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxNzZjNDQuMSAwIDgwIDM1LjkgODAgODBzLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MCAzNS45LTgwIDgwLTgwbTAtNjRDNjQuNSAxMTIgMCAxNzYuNSAwIDI1NnM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDQtNjQuNS0xNDQtMTQ0LTE0NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODYuMS4wOUM4MS4wMSAzLjI0IDAgOTQuOTIgMCAyMDAuMDV2MjYzLjkyYzAgMTQuMjYgMTcuMjMgMjEuMzkgMjcuMzEgMTEuMzFsMjQuOTItMTguNTNjNi42Ni00Ljk1IDE2LTMuOTkgMjEuNTEgMi4yMWw0Mi45NSA0OC4zNWM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDQwLjcyLTQ1Ljg1YzYuMzctNy4xNyAxNy41Ni03LjE3IDIzLjkyIDBsNDAuNzIgNDUuODVjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw0Mi45NS00OC4zNWM1LjUxLTYuMiAxNC44NS03LjE3IDIxLjUxLTIuMjFsMjQuOTIgMTguNTNjMTAuMDggMTAuMDggMjcuMzEgMi45NCAyNy4zMS0xMS4zMVYxOTJDMzg0IDg0IDI5NC44My0zLjE3IDE4Ni4xLjA5ek0xMjggMjI0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xMjggMGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNjBWMzIwSDMydjEyOHptMjU2IDMyaDE2MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMjBIMjg4djE2MHptMTkyLTMyMGgtNDIuMWM2LjItMTIuMSAxMC4xLTI1LjUgMTAuMS00MCAwLTQ4LjUtMzkuNS04OC04OC04OC00MS42IDAtNjguNSAyMS4zLTEwMyA2OC4zLTM0LjUtNDctNjEuNC02OC4zLTEwMy02OC4zLTQ4LjUgMC04OCAzOS41LTg4IDg4IDAgMTQuNSAzLjggMjcuOSAxMC4xIDQwSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MGMwIDguOCA3LjIgMTYgMTYgMTZoNDgwYzguOCAwIDE2LTcuMiAxNi0xNnYtODBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMjYuMSAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwYzE5LjkgMCAzNC42IDMuMyA4Ni4xIDgwaC04Ni4xem0yMDYuMSAwaC04Ni4xYzUxLjQtNzYuNSA2NS43LTgwIDg2LjEtODAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2lmdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjYgMTk0LjFjMS45LTMwLjggMTcuMy02MS4yIDQ0LTc5LjhDMjc5LjQgMTAzLjUgMjY4LjcgOTYgMjU2IDk2aC0yOS40bDMwLjctMjJjNy4yLTUuMSA4LjktMTUuMSAzLjctMjIuM2wtOS4zLTEzYy01LjEtNy4yLTE1LjEtOC45LTIyLjMtMy43bC0zMiAyMi45IDExLjUtMzAuNmMzLjEtOC4zLTEuMS0xNy41LTkuNC0yMC42bC0xNS01LjZjLTguMy0zLjEtMTcuNSAxLjEtMjAuNiA5LjRsLTE5LjkgNTMtMTkuOS01My4xQzEyMSAyLjEgMTExLjgtMi4xIDEwMy41IDFsLTE1IDUuNkM4MC4yIDkuNyA3NiAxOSA3OS4yIDI3LjJsMTEuNSAzMC42TDU4LjYgMzVjLTcuMi01LjEtMTcuMi0zLjUtMjIuMyAzLjdsLTkuMyAxM2MtNS4xIDcuMi0zLjUgMTcuMiAzLjcgMjIuM2wzMC43IDIySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4LjljLTUuNS05LjUtOC45LTIwLjMtOC45LTMyVjI1NmMwLTI5LjkgMjAuOC01NSA0OC42LTYxLjl6TTIyNCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTYwVjM4NEgyMjR2OTZ6bTIyNCAzMmgxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2SDQ0OHYxMjh6bTE2MC0yODhoLTIwLjRjMi42LTcuNiA0LjQtMTUuNSA0LjQtMjMuOCAwLTM1LjUtMjctNzIuMi03Mi4xLTcyLjItNDguMSAwLTc1LjkgNDcuNy04Ny45IDc1LjMtMTIuMS0yNy42LTM5LjktNzUuMy04Ny45LTc1LjMtNDUuMSAwLTcyLjEgMzYuNy03Mi4xIDcyLjIgMCA4LjMgMS43IDE2LjIgNC40IDIzLjhIMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmgxOTJWMjI0aDE1LjNsLjctLjIuNy4ySDQ0OHYxMjhoMTkydi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI3MiAwYy0yLjctMS40LTUuMS0zLTcuMi00LjgtNy4zLTYuNC04LjgtMTMuOC04LjgtMTkgMC05LjcgNi40LTI0LjIgMjQuMS0yNC4yIDE4LjcgMCAzNS42IDI3LjQgNDQuNSA0OEgzMzZ6bTE5OS4yLTQuOGMtMi4xIDEuOC00LjUgMy40LTcuMiA0LjhoLTUyLjZjOC44LTIwLjMgMjUuOC00OCA0NC41LTQ4IDE3LjcgMCAyNC4xIDE0LjUgMjQuMSAyNC4yIDAgNS4yLTEuNSAxMi42LTguOCAxOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGFzc0NoZWVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzkuNCA0MzMuNmMtOC40LTIwLjQtMzEuOC0zMC4xLTUyLjItMjEuNmwtMjIuMSA5LjItMzguNy0xMDEuOWM0Ny45LTM1IDY0LjgtMTAwLjMgMzQuNS0xNTIuOEw0NzQuMyAxNmMtOC0xMy45LTI1LjEtMTkuNy00MC0xMy42TDMyMCA0OS44IDIwNS43IDIuNGMtMTQuOS02LjItMzItLjMtNDAgMTMuNkw3OS4xIDE2Ni41QzQ4LjkgMjE5IDY1LjcgMjg0LjMgMTEzLjYgMzE5LjJMNzQuOSA0MjEuMWwtMjIuMS05LjJjLTIwLjQtOC41LTQzLjcgMS4yLTUyLjIgMjEuNi0xLjcgNC4xLjIgOC44IDQuMyAxMC41bDE2Mi4zIDY3LjRjNC4xIDEuNyA4LjctLjIgMTAuNC00LjMgOC40LTIwLjQtMS4yLTQzLjgtMjEuNi01Mi4zbC0yMi4xLTkuMkwxNzMuMyAzNDJjNC40LjUgOC44IDEuMyAxMy4xIDEuMyA1MS43IDAgOTkuNC0zMy4xIDExMy40LTg1LjNsMjAuMi03NS40IDIwLjIgNzUuNGMxNCA1Mi4yIDYxLjcgODUuMyAxMTMuNCA4NS4zIDQuMyAwIDguNy0uOCAxMy4xLTEuM0w1MDYgNDQ1LjZsLTIyLjEgOS4yYy0yMC40IDguNS0zMC4xIDMxLjktMjEuNiA1Mi4zIDEuNyA0LjEgNi40IDYgMTAuNCA0LjNMNjM1LjEgNDQ0YzQtMS43IDYtNi4zIDQuMy0xMC40ek0yNzUuOSAxNjIuMWwtMTEyLjEtNDYuNSAzNi41LTYzLjQgOTQuNSAzOS4yLTE4LjkgNzAuN3ptODguMiAwbC0xOC45LTcwLjcgOTQuNS0zOS4yIDM2LjUgNjMuNC0xMTIuMSA0Ni41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzTWFydGluaUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuMDUgNTcuNkM1MjMuMyAzNi4zNCA1MDguMjUgMCA0NzguMiAwSDMzLjhDMy43NSAwLTExLjMgMzYuMzQgOS45NSA1Ny42TDIyNCAyNzEuNjRWNDY0aC01NmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyNDBjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MGgtNTZWMjcxLjY0TDUwMi4wNSA1Ny42ek00NDMuNzcgNDhsLTQ4IDQ4SDExNi4yNGwtNDgtNDhoMzc1LjUzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzTWFydGluaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuMDUgNTcuNkM1MjMuMyAzNi4zNCA1MDguMjUgMCA0NzguMiAwSDMzLjhDMy43NSAwLTExLjMgMzYuMzQgOS45NSA1Ny42TDIyNCAyNzEuNjRWNDY0aC01NmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyNDBjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MGgtNTZWMjcxLjY0TDUwMi4wNSA1Ny42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzV2hpc2tleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMzJIMzJDMTIuNSAzMi0yLjQgNDkuMi4zIDY4LjVsNTYgMzU2LjVjNC41IDMxLjUgMzEuNSA1NC45IDYzLjQgNTQuOWgyNzNjMzEuOCAwIDU4LjktMjMuNCA2My40LTU0LjlsNTUuNi0zNTYuNUM1MTQuNCA0OS4yIDQ5OS41IDMyIDQ4MCAzMnptLTM3LjQgNjRsLTMwIDE5MmgtMzEzTDY5LjQgOTZoMzczLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzQuMSAyODAuMzdMNTI4Ljc1IDk4LjY2Yy01LjkxLTIzLjctMjEuNTktNDQuMDUtNDMtNTUuODEtMjEuNDQtMTEuNzMtNDYuOTctMTQuMTEtNzAuMTktNi4zM2wtMTUuMjUgNS4wOGMtOC4zOSAyLjc5LTEyLjkyIDExLjg2LTEwLjEyIDIwLjI0bDUuMDYgMTUuMThjMi43OSA4LjM4IDExLjg1IDEyLjkxIDIwLjIzIDEwLjEybDEzLjE4LTQuMzljMTAuODctMy42MiAyMy0zLjU3IDMzLjE2IDEuNzMgMTAuMjkgNS4zNyAxNy41NyAxNC41NiAyMC4zNyAyNS44MmwzOC40NiAxNTMuODJjLTIyLjE5LTYuODEtNDkuNzktMTIuNDYtODEuMi0xMi40Ni0zNC43NyAwLTczLjk4IDcuMDItMTE0Ljg1IDI2Ljc0aC03My4xOGMtNDAuODctMTkuNzQtODAuMDgtMjYuNzUtMTE0Ljg2LTI2Ljc1LTMxLjQyIDAtNTkuMDIgNS42NS04MS4yMSAxMi40NmwzOC40Ni0xNTMuODNjMi43OS0xMS4yNSAxMC4wOS0yMC40NSAyMC4zOC0yNS44MSAxMC4xNi01LjMgMjIuMjgtNS4zNSAzMy4xNS0xLjczbDEzLjE3IDQuMzljOC4zOCAyLjc5IDE3LjQ0LTEuNzQgMjAuMjMtMTAuMTJsNS4wNi0xNS4xOGMyLjgtOC4zOC0xLjczLTE3LjQ1LTEwLjEyLTIwLjI0bC0xNS4yNS01LjA4Yy0yMy4yMi03Ljc4LTQ4Ljc1LTUuNDEtNzAuMTkgNi4zMy0yMS40MSAxMS43Ny0zNy4wOSAzMi4xMS00MyA1NS44TDEuOSAyODAuMzdBNjQuMjE4IDY0LjIxOCAwIDAgMCAwIDI5NS44NnY3MC4yNUMwIDQyOS4wMSA1MS41OCA0ODAgMTE1LjIgNDgwaDM3LjEyYzYwLjI4IDAgMTEwLjM3LTQ1Ljk0IDExNC44OC0xMDUuMzdsMi45My0zOC42M2gzNS43NWwyLjkzIDM4LjYzQzMxMy4zMSA0MzQuMDYgMzYzLjQgNDgwIDQyMy42OCA0ODBoMzcuMTJjNjMuNjIgMCAxMTUuMi01MC45OSAxMTUuMi0xMTMuODh2LTcwLjI1YzAtNS4yMy0uNjQtMTAuNDMtMS45LTE1LjV6bS0zNzAuNzIgODkuNDJjLTEuOTcgMjUuOTEtMjQuNCA0Ni4yMS01MS4wNiA0Ni4yMUgxMTUuMkM4Ni45NyA0MTYgNjQgMzkzLjYyIDY0IDM2Ni4xMXYtMzcuNTRjMTguMTItNi40OSA0My40Mi0xMi45MiA3Mi41OC0xMi45MiAyMy44NiAwIDQ3LjI2IDQuMzMgNjkuOTMgMTIuOTJsLTMuMTMgNDEuMjJ6TTUxMiAzNjYuMTJjMCAyNy41MS0yMi45NyA0OS44OC01MS4yIDQ5Ljg4aC0zNy4xMmMtMjYuNjcgMC00OS4xLTIwLjMtNTEuMDYtNDYuMjFsLTMuMTMtNDEuMjJjMjIuNjctOC41OSA0Ni4wOC0xMi45MiA2OS45NS0xMi45MiAyOS4xMiAwIDU0LjQzIDYuNDQgNzIuNTUgMTIuOTN2MzcuNTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmVBZnJpY2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTYwIDIxNS41djYuOTNjMCA1Ljg3LTMuMzIgMTEuMjQtOC41NyAxMy44NmwtMTUuMzkgNy43YTE1LjQ4NSAxNS40ODUgMCAwIDEtMTUuNTMtLjk3bC0xOC4yMS0xMi4xNGExNS41MiAxNS41MiAwIDAgMC0xMy41LTEuODFsLTIuNjUuODhjLTkuNyAzLjIzLTEzLjY2IDE0Ljc5LTcuOTkgMjMuM2wxMy4yNCAxOS44NmMyLjg3IDQuMzEgNy43MSA2LjkgMTIuODkgNi45aDguMjFjOC41NiAwIDE1LjUgNi45NCAxNS41IDE1LjV2MTEuMzRjMCAzLjM1LTEuMDkgNi42Mi0zLjEgOS4zbC0xOC43NCAyNC45OGMtMS40MiAxLjktMi4zOSA0LjEtMi44MyA2LjQzbC00LjMgMjIuODNjLS42MiAzLjI5LTIuMjkgNi4yOS00Ljc2IDguNTZhMTU5LjYwOCAxNTkuNjA4IDAgMCAwLTI1IDI5LjE2bC0xMy4wMyAxOS41NWEyNy43NTYgMjcuNzU2IDAgMCAxLTIzLjA5IDEyLjM2Yy0xMC41MSAwLTIwLjEyLTUuOTQtMjQuODItMTUuMzRhNzguOTAyIDc4LjkwMiAwIDAgMS04LjMzLTM1LjI5VjM2Ny41YzAtOC41Ni02Ljk0LTE1LjUtMTUuNS0xNS41aC0yNS44OGMtMTQuNDkgMC0yOC4zOC01Ljc2LTM4LjYzLTE2YTU0LjY1OSA1NC42NTkgMCAwIDEtMTYtMzguNjN2LTE0LjA2YzAtMTcuMTkgOC4xLTMzLjM4IDIxLjg1LTQzLjdsMjcuNTgtMjAuNjlhNTQuNjYzIDU0LjY2MyAwIDAgMSAzMi43OC0xMC45M2guODljOC40OCAwIDE2Ljg1IDEuOTcgMjQuNDMgNS43N2wxNC43MiA3LjM2YzMuNjggMS44NCA3LjkzIDIuMTQgMTEuODMuODRsNDcuMzEtMTUuNzdjNi4zMy0yLjExIDEwLjYtOC4wMyAxMC42LTE0LjcgMC04LjU2LTYuOTQtMTUuNS0xNS41LTE1LjVoLTEwLjA5Yy00LjExIDAtOC4wNS0xLjYzLTEwLjk2LTQuNTRsLTYuOTItNi45MmExNS40OTMgMTUuNDkzIDAgMCAwLTEwLjk2LTQuNTRIMTk5LjVjLTguNTYgMC0xNS41LTYuOTQtMTUuNS0xNS41di00LjRjMC03LjExIDQuODQtMTMuMzEgMTEuNzQtMTUuMDRsMTQuNDUtMy42MWMzLjc0LS45NCA3LTMuMjMgOS4xNC02LjQ0bDguMDgtMTIuMTFjMi44Ny00LjMxIDcuNzEtNi45IDEyLjg5LTYuOWgyNC4yMWM4LjU2IDAgMTUuNS02Ljk0IDE1LjUtMTUuNXYtMjEuN0MzNTkuMjMgNzEuNjMgNDIyLjg2IDEzMS4wMiA0NDEuOTMgMjA4SDQyMy41Yy04LjU2IDAtMTUuNSA2Ljk0LTE1LjUgMTUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbG9iZUFtZXJpY2FzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTgyLjI5IDM1Ny42Yy0zLjkgMy44OC03Ljk5IDcuOTUtMTEuMzEgMTEuMjgtMi45OSAzLTUuMSA2LjctNi4xNyAxMC43MS0xLjUxIDUuNjYtMi43MyAxMS4zOC00Ljc3IDE2Ljg3bC0xNy4zOSA0Ni44NWMtMTMuNzYgMy0yOCA0LjY5LTQyLjY1IDQuNjl2LTI3LjM4YzEuNjktMTIuNjItNy42NC0zNi4yNi0yMi42My01MS4yNS02LTYtOS4zNy0xNC4xNC05LjM3LTIyLjYzdi0zMi4wMWMwLTExLjY0LTYuMjctMjIuMzQtMTYuNDYtMjcuOTctMTQuMzctNy45NS0zNC44MS0xOS4wNi00OC44MS0yNi4xMS0xMS40OC01Ljc4LTIyLjEtMTMuMTQtMzEuNjUtMjEuNzVsLS44LS43MmExMTQuNzkyIDExNC43OTIgMCAwIDEtMTguMDYtMjAuNzRjLTkuMzgtMTMuNzctMjQuNjYtMzYuNDItMzQuNTktNTEuMTQgMjAuNDctNDUuNSA1Ny4zNi04Mi4wNCAxMDMuMi0xMDEuODlsMjQuMDEgMTIuMDFDMjAzLjQ4IDg5Ljc0IDIxNiA4Mi4wMSAyMTYgNzAuMTF2LTExLjNjNy45OS0xLjI5IDE2LjEyLTIuMTEgMjQuMzktMi40MmwyOC4zIDI4LjNjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M0wyNjQgMTEybC0xMC4zNCAxMC4zNGMtMy4xMiAzLjEyLTMuMTIgOC4xOSAwIDExLjMxbDQuNjkgNC42OWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTggOGE4LjAwOCA4LjAwOCAwIDAgMS01LjY2IDIuMzRoLTguOTljLTIuMDggMC00LjA4LjgxLTUuNTggMi4yN2wtOS45MiA5LjY1YTguMDA4IDguMDA4IDAgMCAwLTEuNTggOS4zMWwxNS41OSAzMS4xOWMyLjY2IDUuMzItMS4yMSAxMS41OC03LjE1IDExLjU4aC01LjY0Yy0xLjkzIDAtMy43OS0uNy01LjI0LTEuOTZsLTkuMjgtOC4wNmExNi4wMTcgMTYuMDE3IDAgMCAwLTE1LjU1LTMuMWwtMzEuMTcgMTAuMzlhMTEuOTUgMTEuOTUgMCAwIDAtOC4xNyAxMS4zNGMwIDQuNTMgMi41NiA4LjY2IDYuNjEgMTAuNjlsMTEuMDggNS41NGM5LjQxIDQuNzEgMTkuNzkgNy4xNiAzMC4zMSA3LjE2czIyLjU5IDI3LjI5IDMyIDMyaDY2Ljc1YzguNDkgMCAxNi42MiAzLjM3IDIyLjYzIDkuMzdsMTMuNjkgMTMuNjlhMzAuNTAzIDMwLjUwMyAwIDAgMSA4LjkzIDIxLjU3IDQ2LjUzNiA0Ni41MzYgMCAwIDEtMTMuNzIgMzIuOTh6TTQxNyAyNzQuMjVjLTUuNzktMS40NS0xMC44NC01LTE0LjE1LTkuOTdsLTE3Ljk4LTI2Ljk3YTIzLjk3IDIzLjk3IDAgMCAxIDAtMjYuNjJsMTkuNTktMjkuMzhjMi4zMi0zLjQ3IDUuNS02LjI5IDkuMjQtOC4xNWwxMi45OC02LjQ5QzQ0MC4yIDE5My41OSA0NDggMjIzLjg3IDQ0OCAyNTZjMCA4LjY3LS43NCAxNy4xNi0xLjgyIDI1LjU0TDQxNyAyNzQuMjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmVBc2lhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bS0xMS4zNCAyNDAuMjNjLTIuODkgNC44Mi04LjEgNy43Ny0xMy43MiA3Ljc3aC0uMzFjLTQuMjQgMC04LjMxIDEuNjktMTEuMzEgNC42OWwtNS42NiA1LjY2Yy0zLjEyIDMuMTItMy4xMiA4LjE5IDAgMTEuMzFsNS42NiA1LjY2YzMgMyA0LjY5IDcuMDcgNC42OSAxMS4zMVYzMDRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTYuMTFjLTYuMDYgMC0xMS42LTMuNDItMTQuMzEtOC44NWwtMjIuNjItNDUuMjNjLTIuNDQtNC44OC04Ljk1LTUuOTQtMTIuODEtMi4wOGwtMTkuNDcgMTkuNDZjLTMgMy03LjA3IDQuNjktMTEuMzEgNC42OUg1MC44MUM0OS4xMiAyNzcuNTUgNDggMjY2LjkyIDQ4IDI1NmMwLTExMC4yOCA4OS43Mi0yMDAgMjAwLTIwMCAyMS41MSAwIDQyLjIgMy41MSA2MS42MyA5LjgybC01MC4xNiAzOC41M2MtNS4xMSAzLjQxLTQuNjMgMTEuMDYuODYgMTMuODFsMTAuODMgNS40MWM1LjQyIDIuNzEgOC44NCA4LjI1IDguODQgMTQuMzFWMjE2YzAgNC40Mi0zLjU4IDgtOCA4aC0zLjA2Yy0zLjAzIDAtNS44LTEuNzEtNy4xNS00LjQyLTEuNTYtMy4xMi01Ljk2LTMuMjktNy43Ni0uM2wtMTcuMzcgMjguOTV6TTQwOCAzNTguNDNjMCA0LjI0LTEuNjkgOC4zMS00LjY5IDExLjMxbC05LjU3IDkuNTdjLTMgMy03LjA3IDQuNjktMTEuMzEgNC42OWgtMTUuMTZjLTQuMjQgMC04LjMxLTEuNjktMTEuMzEtNC42OWwtMTMuMDEtMTMuMDFhMjYuNzY3IDI2Ljc2NyAwIDAgMC0yNS40Mi03LjA0bC0yMS4yNyA1LjMyYy0xLjI3LjMyLTIuNTcuNDgtMy44OC40OGgtMTAuMzRjLTQuMjQgMC04LjMxLTEuNjktMTEuMzEtNC42OWwtMTEuOTEtMTEuOTFhOC4wMDggOC4wMDggMCAwIDEtMi4zNC01LjY2di0xMC4yYzAtMy4yNyAxLjk5LTYuMjEgNS4wMy03LjQzbDM5LjM0LTE1Ljc0YzEuOTgtLjc5IDMuODYtMS44MiA1LjU5LTMuMDVsMjMuNzEtMTYuODlhNy45NzggNy45NzggMCAwIDEgNC42NC0xLjQ4aDEyLjA5YzMuMjMgMCA2LjE1IDEuOTQgNy4zOSA0LjkzbDUuMzUgMTIuODVhNCA0IDAgMCAwIDMuNjkgMi40NmgzLjhjMS43OCAwIDMuMzUtMS4xOCAzLjg0LTIuODhsNC4yLTE0LjQ3Yy41LTEuNzEgMi4wNi0yLjg4IDMuODQtMi44OGg2LjA2YzIuMjEgMCA0IDEuNzkgNCA0djEyLjkzYzAgMi4xMi44NCA0LjE2IDIuMzQgNS42NmwxMS45MSAxMS45MWMzIDMgNC42OSA3LjA3IDQuNjkgMTEuMzF2MjQuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbG9iZUV1cm9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0yMDAgMjQ4YzAgMjIuNS0zLjkgNDQuMi0xMC44IDY0LjRoLTIwLjNjLTQuMyAwLTguNC0xLjctMTEuNC00LjhsLTMyLTMyLjZjLTQuNS00LjYtNC41LTEyLjEuMS0xNi43bDEyLjUtMTIuNXYtOC43YzAtMy0xLjItNS45LTMuMy04bC05LjQtOS40Yy0yLjEtMi4xLTUtMy4zLTgtMy4zaC0xNmMtNi4yIDAtMTEuMy01LjEtMTEuMy0xMS4zIDAtMyAxLjItNS45IDMuMy04bDkuNC05LjRjMi4xLTIuMSA1LTMuMyA4LTMuM2gzMmM2LjIgMCAxMS4zLTUuMSAxMS4zLTExLjN2LTkuNGMwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNoLTM2LjdjLTguOCAwLTE2IDcuMi0xNiAxNnY0LjVjMCA2LjktNC40IDEzLTEwLjkgMTUuMmwtMzEuNiAxMC41Yy0zLjMgMS4xLTUuNSA0LjEtNS41IDcuNnYyLjJjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04cy0zLjYtOC04LThIMjQ3Yy0zIDAtNS44IDEuNy03LjIgNC40bC05LjQgMTguN2MtMi43IDUuNC04LjIgOC44LTE0LjMgOC44SDE5NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE5OWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDIwLjEtMjAuMWM0LjYtNC42IDcuMi0xMC45IDcuMi0xNy41IDAtMy40IDIuMi02LjUgNS41LTcuNmw0MC0xMy4zYzEuNy0uNiAzLjItMS41IDQuNC0yLjdsMjYuOC0yNi44YzIuMS0yLjEgMy4zLTUgMy4zLTggMC02LjItNS4xLTExLjMtMTEuMy0xMS4zSDI1OGwtMTYgMTZ2OGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LTh2LTIwYzAtMi41IDEuMi00LjkgMy4yLTYuNGwyOC45LTIxLjdjMS45LS4xIDMuOC0uMyA1LjctLjNDMzU4LjMgNTYgNDQ4IDE0NS43IDQ0OCAyNTZ6TTEzMC4xIDE0OS4xYzAtMyAxLjItNS45IDMuMy04bDI1LjQtMjUuNGMyLjEtMi4xIDUtMy4zIDgtMy4zIDYuMiAwIDExLjMgNS4xIDExLjMgMTEuM3YxNmMwIDMtMS4yIDUuOS0zLjMgOGwtOS40IDkuNGMtMi4xIDIuMS01IDMuMy04IDMuM2gtMTZjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuM3ptMTI4IDMwNi40di03LjFjMC04LjgtNy4yLTE2LTE2LTE2aC0yMC4yYy0xMC44IDAtMjYuNy01LjMtMzUuNC0xMS44bC0yMi4yLTE2LjdjLTExLjUtOC42LTE4LjItMjIuMS0xOC4yLTM2LjR2LTIzLjljMC0xNiA4LjQtMzAuOCAyMi4xLTM5bDQyLjktMjUuN2M3LjEtNC4yIDE1LjItNi41IDIzLjQtNi41aDMxLjJjMTAuOSAwIDIxLjQgMy45IDI5LjYgMTAuOWw0My4yIDM3LjFoMTguM2M4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwxNy4zIDE3LjNjMy40IDMuNCA4LjEgNS4zIDEyLjkgNS4zSDQyM2MtMzIuNCA1OC45LTkzLjggOTkuNS0xNjQuOSAxMDMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbG9iZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYuNSAxNjBDMzIyIDcwLjcgMjg3LjggOCAyNDggOHMtNzQgNjIuNy04OC41IDE1MmgxNzd6TTE1MiAyNTZjMCAyMi4yIDEuMiA0My41IDMuMyA2NGgxODUuM2MyLjEtMjAuNSAzLjMtNDEuOCAzLjMtNjRzLTEuMi00My41LTMuMy02NEgxNTUuM2MtMi4xIDIwLjUtMy4zIDQxLjgtMy4zIDY0em0zMjQuNy05NmMtMjguNi02Ny45LTg2LjUtMTIwLjQtMTU4LTE0MS42IDI0LjQgMzMuOCA0MS4yIDg0LjcgNTAgMTQxLjZoMTA4ek0xNzcuMiAxOC40QzEwNS44IDM5LjYgNDcuOCA5Mi4xIDE5LjMgMTYwaDEwOGM4LjctNTYuOSAyNS41LTEwNy44IDQ5LjktMTQxLjZ6TTQ4Ny40IDE5MkgzNzIuN2MyLjEgMjEgMy4zIDQyLjUgMy4zIDY0cy0xLjIgNDMtMy4zIDY0aDExNC42YzUuNS0yMC41IDguNi00MS44IDguNi02NHMtMy4xLTQzLjUtOC41LTY0ek0xMjAgMjU2YzAtMjEuNSAxLjItNDMgMy4zLTY0SDguNkMzLjIgMjEyLjUgMCAyMzMuOCAwIDI1NnMzLjIgNDMuNSA4LjYgNjRoMTE0LjZjLTItMjEtMy4yLTQyLjUtMy4yLTY0em0zOS41IDk2YzE0LjUgODkuMyA0OC43IDE1MiA4OC41IDE1MnM3NC02Mi43IDg4LjUtMTUyaC0xNzd6bTE1OS4zIDE0MS42YzcxLjQtMjEuMiAxMjkuNC03My43IDE1OC0xNDEuNmgtMTA4Yy04LjggNTYuOS0yNS42IDEwNy44LTUwIDE0MS42ek0xOS4zIDM1MmMyOC42IDY3LjkgODYuNSAxMjAuNCAxNTggMTQxLjYtMjQuNC0zMy44LTQxLjItODQuNy01MC0xNDEuNmgtMTA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvbGZCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQxNmgyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJoLTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyaC0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyMC0yMDhjMCA3NC4yLTM5IDEzOS4yLTk3LjUgMTc2aC0yMjFDMzkgMzQ3LjIgMCAyODIuMiAwIDIwOCAwIDkzLjEgOTMuMSAwIDIwOCAwczIwOCA5My4xIDIwOCAyMDh6bS0xODAuMSA0My45YzE4LjMgMCAzMy4xLTE0LjggMzMuMS0zMy4xIDAtMTQuNC05LjMtMjYuMy0yMi4xLTMwLjkgOS42IDI2LjgtMTUuNiA1MS4zLTQxLjkgNDEuOSA0LjYgMTIuOCAxNi41IDIyLjEgMzAuOSAyMi4xem00OS4xIDQ2LjljMC0xNC40LTkuMy0yNi4zLTIyLjEtMzAuOSA5LjYgMjYuOC0xNS42IDUxLjMtNDEuOSA0MS45IDQuNiAxMi44IDE2LjUgMjIuMSAzMC45IDIyLjEgMTguMyAwIDMzLjEtMTQuOSAzMy4xLTMzLjF6bTY0LTY0YzAtMTQuNC05LjMtMjYuMy0yMi4xLTMwLjkgOS42IDI2LjgtMTUuNiA1MS4zLTQxLjkgNDEuOSA0LjYgMTIuOCAxNi41IDIyLjEgMzAuOSAyMi4xIDE4LjMgMCAzMy4xLTE0LjkgMzMuMS0zMy4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvcHVyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDM1MmgtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNmgtMTZ2LTgwYzAtOC44LTcuMi0xNi0xNi0xNmgtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MTZoLTY0VjE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djE2aC02NFYxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYxNmgtNjRWMTZjMC04LjgtNy4yLTE2LTE2LTE2Uzk2IDcuMiA5NiAxNnYxMTJIODBjLTguOCAwLTE2IDcuMi0xNiAxNnY4MEg0OGMtOC44IDAtMTYgNy4yLTE2IDE2djExMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djEyOGMwIDguOCA3LjIgMTYgMTYgMTZoODBWMzUyaDMyVjIyNGgzMnYtOTZoMzJ2OTZoLTMydjEyOGgtMzJ2MTYwaDgwdi04MGMwLTguOCA3LjItMTYgMTYtMTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2djgwaDgwVjM1MmgtMzJWMjI0aC0zMnYtOTZoMzJ2OTZoMzJ2MTI4aDMydjE2MGg4MGM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNnpNMjMyIDE3NmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djQ4aC00OHptNTYgMTc2aC02NHYtNjRjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmFkdWF0aW9uQ2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMi4zNCAxNTMuMkwzNDMuNCA2Ny41Yy0xNS4yLTQuNjctMzEuNi00LjY3LTQ2Ljc5IDBMMTcuNjYgMTUzLjJjLTIzLjU0IDcuMjMtMjMuNTQgMzguMzYgMCA0NS41OWw0OC42MyAxNC45NGMtMTAuNjcgMTMuMTktMTcuMjMgMjkuMjgtMTcuODggNDYuOUMzOC43OCAyNjYuMTUgMzIgMjc2LjExIDMyIDI4OGMwIDEwLjc4IDUuNjggMTkuODUgMTMuODYgMjUuNjVMMjAuMzMgNDI4LjUzQzE4LjExIDQzOC41MiAyNS43MSA0NDggMzUuOTQgNDQ4aDU2LjExYzEwLjI0IDAgMTcuODQtOS40OCAxNS42Mi0xOS40N0w4Mi4xNCAzMTMuNjVDOTAuMzIgMzA3Ljg1IDk2IDI5OC43OCA5NiAyODhjMC0xMS41Ny02LjQ3LTIxLjI1LTE1LjY2LTI2Ljg3Ljc2LTE1LjAyIDguNDQtMjguMyAyMC42OS0zNi43MkwyOTYuNiAyODQuNWM5LjA2IDIuNzggMjYuNDQgNi4yNSA0Ni43OSAwbDI3OC45NS04NS43YzIzLjU1LTcuMjQgMjMuNTUtMzguMzYgMC00NS42ek0zNTIuNzkgMzE1LjA5Yy0yOC41MyA4Ljc2LTUyLjg0IDMuOTItNjUuNTkgMGwtMTQ1LjAyLTQ0LjU1TDEyOCAzODRjMCAzNS4zNSA4NS45NiA2NCAxOTIgNjRzMTkyLTI4LjY1IDE5Mi02NGwtMTQuMTgtMTEzLjQ3LTE0NS4wMyA0NC41NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmVhdGVyVGhhbkVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1LjIyIDEwNy42OWwxNzUuNTYgNjguMDktMTc1LjQ0IDY4LjA1Yy0xOC4zOSA2LjAzLTI3Ljg4IDI0LjM5LTIxLjIgNDFsMTIuMDkgMzAuMDhjNi42OCAxNi42MSAyNi45OSAyNS4xOSA0NS4zOCAxOS4xNUwzOTMuMDIgMjE0LjJjMTMuNzctNC41MiAyMi45OC0xNi42MSAyMi45OC0zMC4xN3YtMTUuOTZjMC0xMy41Ni05LjIxLTI1LjY1LTIyLjk4LTMwLjE3TDkxLjMgMTcuOTJjLTE4LjI5LTYtMzguNTEgMi41My00NS4xNSAxOS4wNkwzNC4xMiA2Ni45Yy02LjY0IDE2LjUzIDIuODEgMzQuNzkgMjEuMSA0MC43OXpNNDI0IDQwMEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwMGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyZWF0ZXJUaGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2NS41MiAyMDkuODVMNTkuMjIgNjcuMDFjLTE2LjA2LTcuNDktMzUuMTUtLjU0LTQyLjY0IDE1LjUyTDMuMDEgMTExLjYxYy03LjQ5IDE2LjA2LS41NCAzNS4xNSAxNS41MiA0Mi42NEwyMzYuOTYgMjU2LjEgMTguNDkgMzU3Ljk5QzIuNDcgMzY1LjQ2LTQuNDYgMzg0LjUgMy4wMSA0MDAuNTJsMTMuNTIgMjlDMjQgNDQ1LjU0IDQzLjA0IDQ1Mi40NyA1OS4wNiA0NDVsMzA2LjQ3LTE0Mi45MWEzMi4wMDMgMzIuMDAzIDAgMCAwIDE4LjQ4LTI5di0zNC4yM2MtLjAxLTEyLjQ1LTcuMjEtMjMuNzYtMTguNDktMjkuMDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbWFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek0xNDQgNDAwaC04Yy0xNy43IDAtMzItMTQuMy0zMi0zMnYtOGg0MHY0MHptMC01NmgtNDB2LThjMC0xNy43IDE0LjMtMzIgMzItMzJoOHY0MHptLTgtMTM2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem03MiAxOTJoLTQ4di00MGg0OHY0MHptMC01NmgtNDh2LTQwaDQ4djQwem02NCA1NmgtNDh2LTQwaDQ4djQwem0wLTU2aC00OHYtNDBoNDh2NDB6bTY0IDU2aC00OHYtNDBoNDh2NDB6bTAtNTZoLTQ4di00MGg0OHY0MHptLTgtMTA0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptNjQgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyaC04di00MGg0MHY4em0wLTI0aC00MHYtNDBoOGMxNy43IDAgMzIgMTQuMyAzMiAzMnY4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNjMuNyAxMjguN2M3LjYtMTEuNCAyNC43LTExLjcgMzIuNyAwIDEyLjQgMTguNCAxNS4xIDM2LjkgMTUuNyA1NS4zLS41IDE4LjQtMy4zIDM2LjktMTUuNyA1NS4zLTcuNiAxMS40LTI0LjcgMTEuNy0zMi43IDAtMTIuNC0xOC40LTE1LjEtMzYuOS0xNS43LTU1LjMuNS0xOC40IDMuMy0zNi45IDE1LjctNTUuM3ptLTE2MCAwYzcuNi0xMS40IDI0LjctMTEuNyAzMi43IDAgMTIuNCAxOC40IDE1LjEgMzYuOSAxNS43IDU1LjMtLjUgMTguNC0zLjMgMzYuOS0xNS43IDU1LjMtNy42IDExLjQtMjQuNyAxMS43LTMyLjcgMC0xMi40LTE4LjQtMTUuMS0zNi45LTE1LjctNTUuMy41LTE4LjQgMy4zLTM2LjkgMTUuNy01NS4zek0yNDggNDMyYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOCA5LjMtMjEuNiAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluQmVhbVN3ZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NiAxMjhjMjYuNSAwIDQ4LTIxIDQ4LTQ3IDAtMjAtMjguNS02MC40LTQxLjYtNzcuOC0zLjItNC4zLTkuNi00LjMtMTIuOCAwQzQzNi41IDIwLjYgNDA4IDYxIDQwOCA4MWMwIDI2IDIxLjUgNDcgNDggNDd6bTAgMzJjLTQ0LjEgMC04MC0zNS40LTgwLTc5IDAtNC40LjMtMTQuMiA4LjEtMzIuMkMzNDUgMjMuMSAyOTguMyA4IDI0OCA4IDExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhjMC0zNS4xLTcuNC02OC40LTIwLjUtOTguNi02LjMgMS41LTEyLjcgMi42LTE5LjUgMi42em0tMTI4LThjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTItMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjQtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em0tMTYwIDBjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTItMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMiA3LjQtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em04MCAyODBjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS41LTMuNyAyMi42IDYuMiAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5CZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE0NGMyMy44IDAgNTIuNyAyOS4zIDU2IDcxLjQuNyA4LjYtMTAuOCAxMS45LTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjEgNy4zLTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptLTE2MCAwYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMiA3LjQtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em04MCAyODBjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS45IDkuNC0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNyAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5IZWFydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNOTAuNCAxODMuNmM2LjctMTcuNiAyNi43LTI2LjcgNDQuOS0yMS45bDcuMSAxLjkgMi03LjFjNS0xOC4xIDIyLjgtMzAuOSA0MS41LTI3LjkgMjEuNCAzLjQgMzQuNCAyNC4yIDI4LjggNDQuNUwxOTUuMyAyNDNjLTEuMiA0LjUtNS45IDcuMi0xMC41IDZsLTcwLjItMTguMmMtMjAuNC01LjQtMzEuOS0yNy0yNC4yLTQ3LjJ6TTI0OCA0MzJjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMi0yMS41IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNiAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zem0xMzMuNC0yMDEuM2wtNzAuMiAxOC4yYy00LjUgMS4yLTkuMi0xLjUtMTAuNS02TDI4MS4zIDE3M2MtNS42LTIwLjMgNy40LTQxLjEgMjguOC00NC41IDE4LjYtMyAzNi40IDkuOCA0MS41IDI3LjlsMiA3LjEgNy4xLTEuOWMxOC4yLTQuNyAzOC4yIDQuMyA0NC45IDIxLjkgNy43IDIwLjMtMy44IDQxLjktMjQuMiA0Ny4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5TcXVpbnRUZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDkuNiAxMTEuOWMyMi42LTMuMiA3My41LTEyIDg4LjMtMjYuOCAxOS4yLTE5LjIgMTguOS01MC42LS43LTcwLjJTNDQ2LTUgNDI2LjkgMTQuMmMtMTQuOCAxNC44LTIzLjUgNjUuNy0yNi44IDg4LjMtLjggNS41IDMuOSAxMC4yIDkuNSA5LjR6TTEwMi40IDQwMC4xYy0yMi42IDMuMi03My41IDEyLTg4LjMgMjYuOC0xOS4xIDE5LjEtMTguOCA1MC42LjggNzAuMnM1MSAxOS45IDcwLjIuN2MxNC44LTE0LjggMjMuNS02NS43IDI2LjgtODguMy44LTUuNS0zLjktMTAuMi05LjUtOS40em0zMTEuNy0yNTYuNWMtMzMgMy45LTQ4LjYtMjUuMS00NS43LTQ1LjcgMy40LTI0IDcuNC00Mi4xIDExLjUtNTYuNUMyODUuMS0xMy40IDE2MS44LS41IDgwLjYgODAuNi0uNSAxNjEuNy0xMy40IDI4NSA0MS40IDM3OS45YzE0LjQtNC4xIDMyLjQtOCA1Ni41LTExLjUgMzMuMi0zLjkgNDguNiAyNS4yIDQ1LjcgNDUuNy0zLjQgMjQtNy40IDQyLjEtMTEuNSA1Ni41IDk0LjggNTQuOCAyMTguMSA0MS45IDI5OS4zLTM5LjJzOTQtMjA0LjQgMzkuMi0yOTkuM2MtMTQuNCA0LjEtMzIuNSA4LTU2LjUgMTEuNXpNMjU1LjcgMTA2YzMuMy0xMy4yIDIyLjQtMTEuNSAyMy42IDEuOGw0LjggNTIuMyA1Mi4zIDQuOGMxMy40IDEuMiAxNC45IDIwLjMgMS44IDIzLjZsLTkwLjUgMjIuNmMtOC45IDIuMi0xNi43LTUuOS0xNC41LTE0LjVsMjIuNS05MC42em0tOTAuOSAyMzAuM0wxNjAgMjg0bC01Mi4zLTQuOGMtMTMuNC0xLjItMTQuOS0yMC4zLTEuOC0yMy42bDkwLjUtMjIuNmM4LjgtMi4yIDE2LjcgNS44IDE0LjUgMTQuNUwxODguMyAzMzhjLTMuMSAxMy4yLTIyLjIgMTEuNy0yMy41LTEuN3ptMjE1LjcgNDQuMmMtMjkuMyAyOS4zLTc1LjcgNTAuNC0xMTYuNyA1MC40LTE4LjkgMC0zNi42LTQuNS01MS0xNC43LTkuOC02LjktOC43LTIxLjggMi0yNy4yIDI4LjMtMTQuNiA2My45LTQyLjQgOTcuOC03Ni4zczYxLjctNjkuNiA3Ni4zLTk3LjhjNS40LTEwLjUgMjAuMi0xMS45IDI3LjMtMiAzMi4zIDQ1LjMgNy4xIDEyNC43LTM1LjcgMTY3LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpblNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0zMy44IDE4OS43bDgwLTQ4YzExLjYtNi45IDI0IDcuNyAxNS40IDE4TDM0My42IDIwOGwzMy42IDQwLjNjOC43IDEwLjQtMy45IDI0LjgtMTUuNCAxOGwtODAtNDhjLTcuNy00LjctNy43LTE1LjkgMC0yMC42em0tMTYzLTMwYy04LjYtMTAuMyAzLjgtMjQuOSAxNS40LTE4bDgwIDQ4YzcuOCA0LjcgNy44IDE1LjkgMCAyMC42bC04MCA0OGMtMTEuNSA2LjgtMjQtNy42LTE1LjQtMThsMzMuNi00MC4zLTMzLjYtNDAuM3pNMjQ4IDQzMmMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjkgOS40LTIxLjYgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4yIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpblN0YXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTk0LjYgMTY4LjlsMzQuOS01IDE1LjUtMzEuNmMyLjktNS44IDExLTUuOCAxMy45IDBsMTUuNSAzMS42IDM0LjkgNWM2LjIgMSA4LjkgOC42IDQuMyAxMy4ybC0yNS40IDI0LjYgNiAzNC45YzEgNi4yLTUuMyAxMS0xMSA3LjlMMTUyIDIzMy4zbC0zMS4zIDE2LjNjLTUuNyAzLjEtMTItMS43LTExLTcuOWw2LTM0LjktMjUuNC0yNC42Yy00LjYtNC43LTEuOS0xMi4zIDQuMy0xMy4zek0yNDggNDMyYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOCA5LjMtMjEuNSAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNS0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3ptMTU3LjctMjQ5LjlsLTI1LjQgMjQuNiA2IDM0LjljMSA2LjItNS4zIDExLTExIDcuOUwzNDQgMjMzLjNsLTMxLjMgMTYuM2MtNS43IDMuMS0xMi0xLjctMTEtNy45bDYtMzQuOS0yNS40LTI0LjZjLTQuNS00LjYtMS45LTEyLjIgNC4zLTEzLjJsMzQuOS01IDE1LjUtMzEuNmMyLjktNS44IDExLTUuOCAxMy45IDBsMTUuNSAzMS42IDM0LjkgNWM2LjMuOSA5IDguNSA0LjQgMTMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluVGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAyLjQgMjU2LjFjLTIyLjYgMy4yLTczLjUgMTItODguMyAyNi44LTE5LjEgMTkuMS0xOC44IDUwLjYuOCA3MC4yczUxIDE5LjkgNzAuMi43YzE0LjgtMTQuOCAyMy41LTY1LjcgMjYuOC04OC4zLjgtNS41LTMuOS0xMC4yLTkuNS05LjR6bTUyMy40IDI2LjhjLTE0LjgtMTQuOC02NS43LTIzLjUtODguMy0yNi44LTUuNS0uOC0xMC4zIDMuOS05LjUgOS41IDMuMiAyMi42IDEyIDczLjUgMjYuOCA4OC4zIDE5LjIgMTkuMiA1MC42IDE4LjkgNzAuMi0uN3MyMC01MS4yLjgtNzAuM3ptLTEyOS40LTEyLjhjLTMuOC0yNi42IDE5LjEtNDkuNSA0NS43LTQ1LjcgOC45IDEuMyAxNi44IDIuNyAyNC4zIDQuMUM1NTIuNyAxMDQuNSA0NDcuNyA4IDMyMCA4Uzg3LjMgMTA0LjUgNzMuNiAyMjguNWM3LjUtMS40IDE1LjQtMi44IDI0LjMtNC4xIDMzLjItMy45IDQ4LjYgMjUuMyA0NS43IDQ1LjctMTEuOCA4Mi4zLTI5LjkgMTAwLjQtMzUuOCAxMDYuNC0uOS45LTIgMS42LTMgMi41IDQyLjcgNzQuNiAxMjMgMTI1IDIxNS4yIDEyNXMxNzIuNS01MC40IDIxNS4yLTEyNS4xYy0xLS45LTIuMS0xLjUtMy0yLjUtNS45LTUuOS0yNC0yNC0zNS44LTEwNi4zek00MDAgMTUyYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptLTE2MCAwYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptODAgMjgwYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuNyA5LjItMjEuNiAyMC43LTE3LjlDMjI3LjEgMzMwLjUgMjcyIDMzNiAzMjAgMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluVG9uZ3VlU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5My4xIDM3NC42Yy0xNC40LTYuNS0zMS4xIDIuMi0zNC42IDE3LjZsLTEuOCA3LjhjLTIuMSA5LjItMTUuMiA5LjItMTcuMyAwbC0xLjgtNy44Yy0zLjUtMTUuNC0yMC4yLTI0LjEtMzQuNi0xNy42LS45LjQuMy0uMi0xOC45IDkuNHY2M2MwIDM1LjIgMjggNjQuNSA2My4xIDY0LjkgMzUuNy41IDY0LjktMjguNCA2NC45LTY0di02NGMtMTkuNS05LjYtMTguMi04LjktMTktOS4zek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NmMwIDEwNi4zIDY3IDE5Ni43IDE2MSAyMzItNS42LTEyLjItOS0yNS43LTktNDB2LTQ1LjVjLTI0LjctMTYuMi00My41LTM4LjEtNDcuOC02My44LTItMTEuOCA5LjItMjEuNSAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTQuMyAyNS43LTIzLjEgNDcuNi00Ny44IDYzLjhWNDQ4YzAgMTQuMy0zLjQgMjcuOC05IDQwIDk0LTM1LjMgMTYxLTEyNS43IDE2MS0yMzJDNDk2IDExOSAzODUgOCAyNDggOHptLTMzLjggMjEwLjNsLTgwIDQ4Yy0xMS41IDYuOC0yNC03LjYtMTUuNC0xOGwzMy42LTQwLjMtMzMuNi00MC4zYy04LjYtMTAuMyAzLjgtMjQuOSAxNS40LTE4bDgwIDQ4YzcuNyA0LjcgNy43IDE1LjkgMCAyMC42em0xNjMgMzBjOC43IDEwLjQtMy45IDI0LjgtMTUuNCAxOGwtODAtNDhjLTcuOC00LjctNy44LTE1LjkgMC0yMC42bDgwLTQ4YzExLjctNi45IDIzLjkgNy43IDE1LjQgMThMMzQzLjYgMjA4bDMzLjYgNDAuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluVG9uZ3VlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4zLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS01NiAyMjVsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwxMTIgMjMzYy04LjUgNy40LTIxLjYuMy0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMjA4IDE5NyAyMTIgMjIyLjJjMS42IDExLjEtMTEuNiAxOC4yLTIwIDEwLjh6bTE1MiAzOWMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6bS01MC45IDEwMi42Yy0xNC40LTYuNS0zMS4xIDIuMi0zNC42IDE3LjZsLTEuOCA3LjhjLTIuMSA5LjItMTUuMiA5LjItMTcuMyAwbC0xLjgtNy44Yy0zLjUtMTUuNC0yMC4yLTI0LjEtMzQuNi0xNy42LS45LjQuMy0uMi0xOC45IDkuNHY2M2MwIDM1LjIgMjggNjQuNSA2My4xIDY0LjkgMzUuNy41IDY0LjktMjguNCA2NC45LTY0di02NGMtMTkuNS05LjYtMTguMi04LjktMTktOS4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5Ub25ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4zLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy42IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS04MCAyMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bS0zNC45IDEzNC42Yy0xNC40LTYuNS0zMS4xIDIuMi0zNC42IDE3LjZsLTEuOCA3LjhjLTIuMSA5LjItMTUuMiA5LjItMTcuMyAwbC0xLjgtNy44Yy0zLjUtMTUuNC0yMC4yLTI0LjEtMzQuNi0xNy42LS45LjQuMy0uMi0xOC45IDkuNHY2M2MwIDM1LjIgMjggNjQuNSA2My4xIDY0LjkgMzUuNy41IDY0LjktMjguNCA2NC45LTY0di02NGMtMTkuNS05LjYtMTguMi04LjktMTktOS4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5XaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YzAgMTM3IDExMSAyNDggMjQ4IDI0OHMyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDggMCAxMTkgMCAyNTZ6bTIwMC00OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzJ6bTE2OCAyNWwtOS41LTguNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDI4OCAyMzNjLTguMyA3LjQtMjEuNi40LTE5LjgtMTAuOCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVMzODQgMTk3IDM4OCAyMjIuMmMxLjYgMTEtMTEuNSAxOC4yLTIwIDEwLjh6bS0yNDMuMSA4Ny44QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjMtMy43IDIyLjYgNiAyMC43IDE3LjktOS4yIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zcy0xMzQuNS0zOC4zLTE0My44LTkzLjNjLTItMTEuOSA5LjMtMjEuNiAyMC43LTE3Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem04MCAyNTZjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS4zLTMuNyAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDI4OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTk2IDk2SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMTYwIDBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMTYwIDBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwTGluZXNWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA0OTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2NDgwYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ6bTEyOCAwVjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0ODBjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwTGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDI4OEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0ODBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTAtMTI4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJIMzJDMTQuMzMgMzIgMCA0Ni4zMyAwIDY0djY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0wIDE2MEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAgMTYwSDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMjg4IDMyaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMCAxNjBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMCAxNjBoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHdWl0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjYzIDM5TDQ3MyA5LjM3YTMyIDMyIDAgMCAwLTQ1LjI2IDBMMzgxLjQ2IDU1LjdhMzUuMTQgMzUuMTQgMCAwIDAtOC41MyAxMy43OUwzNjAuNzcgMTA2bC03Ni4yNiA3Ni4yNmMtMTIuMTYtOC43Ni0yNS41LTE1Ljc0LTQwLjEtMTkuMTQtMzMuNDUtNy43OC02Ny0uODgtODkuODggMjJhODIuNDUgODIuNDUgMCAwIDAtMjAuMjQgMzMuNDdjLTYgMTguNTYtMjMuMjEgMzIuNjktNDIuMTUgMzQuNDYtMjMuNyAyLjI3LTQ1LjczIDExLjQ1LTYyLjYxIDI4LjQ0Qy0xNi4xMSAzMjctNy45IDQwOSA0Ny41OCA0NjQuNDVTMTg1IDUyOCAyMzAuNTYgNDgyLjUyYzE3LTE2Ljg4IDI2LjE2LTM4LjkgMjguNDUtNjIuNzEgMS43Ni0xOC44NSAxNS44OS0zNi4xMyAzNC40My00Mi4xNGE4Mi42IDgyLjYgMCAwIDAgMzMuNDgtMjAuMjVjMjIuODctMjIuODggMjkuNzQtNTYuMzYgMjItODkuNzUtMy4zOS0xNC42NC0xMC4zNy0yOC0xOS4xNi00MC4yTDQwNiAxNTEuMjNsMzYuNDgtMTIuMTZhMzUuMTQgMzUuMTQgMCAwIDAgMTMuNzktOC41M2w0Ni4zMy00Ni4zMmEzMiAzMiAwIDAgMCAuMDMtNDUuMjJ6TTIwOCAzNTJhNDggNDggMCAxIDEgNDgtNDggNDggNDggMCAwIDEtNDggNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptLTExMiA0OGgtMzJjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2ODBIMTYwdi04MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2aC0zMmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnYyMjRjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgzMmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di04MGgxMjh2ODBjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgzMmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2VjE0NGMwLTguODM3LTcuMTYzLTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbWJ1cmdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2SDQ4YTQ4IDQ4IDAgMCAwIDAgOTZoNDE2YTQ4IDQ4IDAgMCAwIDAtOTZ6bTE2IDEyOEgzMmExNiAxNiAwIDAgMC0xNiAxNnYxNmE2NCA2NCAwIDAgMCA2NCA2NGgzNTJhNjQgNjQgMCAwIDAgNjQtNjR2LTE2YTE2IDE2IDAgMCAwLTE2LTE2ek01OC42NCAyMjRoMzk0LjcyYzM0LjU3IDAgNTQuNjItNDMuOSAzNC44Mi03NS44OEM0NDggODMuMiAzNTkuNTUgMzIuMSAyNTYgMzJjLTEwMy41NC4xLTE5MiA1MS4yLTIzMi4xOCAxMTYuMTFDNCAxODAuMDkgMjQuMDcgMjI0IDU4LjY0IDIyNHpNMzg0IDExMmExNiAxNiAwIDEgMS0xNiAxNiAxNiAxNiAwIDAgMSAxNi0xNnpNMjU2IDgwYTE2IDE2IDAgMSAxLTE2IDE2IDE2IDE2IDAgMCAxIDE2LTE2em0tMTI4IDMyYTE2IDE2IDAgMSAxLTE2IDE2IDE2IDE2IDAgMCAxIDE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzEuMzEgMTkzLjk0bC0yMi42My0yMi42M2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMTEuMzEgMTEuMzEtMjguOS0yOC45YzUuNjMtMjEuMzEuMzYtNDQuOS0xNi4zNS02MS42MWwtNDUuMjUtNDUuMjVjLTYyLjQ4LTYyLjQ4LTE2My43OS02Mi40OC0yMjYuMjggMGw5MC41MSA0NS4yNXYxOC43NWMwIDE2Ljk3IDYuNzQgMzMuMjUgMTguNzUgNDUuMjVsNDkuMTQgNDkuMTRjMTYuNzEgMTYuNzEgNDAuMyAyMS45OCA2MS42MSAxNi4zNWwyOC45IDI4LjktMTEuMzEgMTEuMzFjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjMgMjIuNjNjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw5MC41MS05MC41MWM2LjIzLTYuMjQgNi4yMy0xNi4zNy0uMDItMjIuNjJ6bS0yODYuNzItMTUuMmMtMy43LTMuNy02Ljg0LTcuNzktOS44NS0xMS45NUwxOS42NCA0MDQuOTZjLTI1LjU3IDIzLjg4LTI2LjI2IDY0LjE5LTEuNTMgODguOTNzNjUuMDUgMjQuMDUgODguOTMtMS41M2wyMzguMTMtMjU1LjA3Yy0zLjk2LTIuOTEtNy45LTUuODctMTEuNDQtOS40MWwtNDkuMTQtNDkuMTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFtc2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA5LjM0IDMwNy4yNUM1MDQuMjggMjk1LjU2IDQ5Mi43NSAyODggNDgwIDI4OGgtNjRWODBjMC0yMi0xOC00MC00MC00MHMtNDAgMTgtNDAgNDB2MTM0YzAgNS41Mi00LjQ4IDEwLTEwIDEwaC0yMGMtNS41MiAwLTEwLTQuNDgtMTAtMTBWNDBjMC0yMi0xOC00MC00MC00MHMtNDAgMTgtNDAgNDB2MTc0YzAgNS41Mi00LjQ4IDEwLTEwIDEwaC0yMGMtNS41MiAwLTEwLTQuNDgtMTAtMTBWODBjMC0yMi0xOC00MC00MC00MFM5NiA1OCA5NiA4MHYyMDhIMzJjLTEyLjc1IDAtMjQuMjggNy41Ni0yOS4zNCAxOS4yNWEzMS45NjYgMzEuOTY2IDAgMCAwIDUuOTQgMzQuNThsMTAyLjY5IDExMC4wM0MxNDYuOTcgNDkwLjA4IDE5OS42OSA1MTIgMjU2IDUxMnMxMDkuMDMtMjEuOTIgMTQ0LjcyLTYwLjE0TDUwMy40IDM0MS44M2EzMS45NjYgMzEuOTY2IDAgMCAwIDUuOTQtMzQuNTh6TTI1NiA0MTZjLTUzLjAyIDAtOTYtNjQtOTYtNjRzNDIuOTgtNjQgOTYtNjQgOTYgNjQgOTYgNjQtNDIuOTggNjQtOTYgNjR6bTAtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzUuMyAyNTAuNWM3IDcuNCAxOC40IDcuNCAyNS41IDBsMTA4LjktMTE0LjJjMzEuNi0zMy4yIDI5LjgtODguMi01LjYtMTE4LjgtMzAuOC0yNi43LTc2LjctMjEuOS0xMDQuOSA3LjdMMjg4IDM2LjlsLTExLjEtMTEuNkMyNDguNy00LjQgMjAyLjgtOS4yIDE3MiAxNy41Yy0zNS4zIDMwLjYtMzcuMiA4NS42LTUuNiAxMTguOGwxMDguOSAxMTQuMnptMjkwIDc3LjZjLTExLjgtMTAuNy0zMC4yLTEwLTQyLjYgMEw0MzAuMyA0MDJjLTExLjMgOS4xLTI1LjQgMTQtNDAgMTRIMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDc4LjNjMTUuOSAwIDMwLjctMTAuOSAzMy4zLTI2LjYgMy4zLTIwLTEyLjEtMzcuNC0zMS42LTM3LjRIMTkyYy0yNyAwLTUzLjEgOS4zLTc0LjEgMjYuM0w3MS40IDM4NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNmgzNTYuOGMxNC41IDAgMjguNi00LjkgNDAtMTRMNTY0IDM3N2MxNS4yLTEyLjEgMTYuNC0zNS4zIDEuMy00OC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTkuODgsMTc1LjgyaDY0djY0YTE2LDE2LDAsMCwwLDE2LDE2aDY0YTE2LDE2LDAsMCwwLDE2LTE2di02NGg2NGExNiwxNiwwLDAsMCwxNi0xNnYtNjRhMTYsMTYsMCwwLDAtMTYtMTZoLTY0di02NGExNiwxNiwwLDAsMC0xNi0xNmgtNjRhMTYsMTYsMCwwLDAtMTYsMTZ2NjRoLTY0YTE2LDE2LDAsMCwwLTE2LDE2djY0QTE2LDE2LDAsMCwwLDE1OS44OCwxNzUuODJaTTU2OC4wNywzMzYuMTNhMzkuOTEsMzkuOTEsMCwwLDAtNTUuOTMtOC40N0wzOTIuNDcsNDE1Ljg0SDI3MS44NmExNiwxNiwwLDAsMSwwLTMySDM1MC4xYzE2LDAsMzAuNzUtMTAuODcsMzMuMzctMjYuNjFhMzIuMDYsMzIuMDYsMCwwLDAtMzEuNjItMzcuMzhoLTE2MGExMTcuNywxMTcuNywwLDAsMC03NC4xMiwyNi4yNWwtNDYuNSwzNy43NEgxNS44N2ExNi4xMSwxNi4xMSwwLDAsMC0xNiwxNnY5NmExNi4xMSwxNi4xMSwwLDAsMCwxNiwxNmgzNDdhMTA0LjgsMTA0LjgsMCwwLDAsNjEuNy0yMC4yN0w1NTkuNiwzOTJBNDAsNDAsMCwwLDAsNTY4LjA3LDMzNi4xM1pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ1VzZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzEuMDYsMTQ0LjNsNTQuMjcsMTQuM2E4LjU5LDguNTksMCwwLDEsNi42Myw4LjFjMCw0LjYtNC4wOSw4LjQtOS4xMiw4LjRoLTM1LjZhMzAsMzAsMCwwLDEtMTEuMTktMi4yYy01LjI0LTIuMi0xMS4yOC0xLjctMTUuMywybC0xOSwxNy41YTExLjY4LDExLjY4LDAsMCwwLTIuMjUsMi42NiwxMS40MiwxMS40MiwwLDAsMCwzLjg4LDE1Ljc0LDgzLjc3LDgzLjc3LDAsMCwwLDM0LjUxLDExLjVWMjQwYzAsOC44LDcuODMsMTYsMTcuMzcsMTZoMTcuMzdjOS41NSwwLDE3LjM4LTcuMiwxNy4zOC0xNlYyMjIuNGMzMi45My0zLjYsNTcuODQtMzEsNTMuNS02My0zLjE1LTIzLTIyLjQ2LTQxLjMtNDYuNTYtNDcuN0wyODIuNjgsOTcuNGE4LjU5LDguNTksMCwwLDEtNi42My04LjFjMC00LjYsNC4wOS04LjQsOS4xMi04LjRoMzUuNkEzMCwzMCwwLDAsMSwzMzIsODMuMWM1LjIzLDIuMiwxMS4yOCwxLjcsMTUuMy0ybDE5LTE3LjVBMTEuMzEsMTEuMzEsMCwwLDAsMzY4LjQ3LDYxYTExLjQzLDExLjQzLDAsMCwwLTMuODQtMTUuNzgsODMuODIsODMuODIsMCwwLDAtMzQuNTItMTEuNVYxNmMwLTguOC03LjgyLTE2LTE3LjM3LTE2SDI5NS4zN0MyODUuODIsMCwyNzgsNy4yLDI3OCwxNlYzMy42Yy0zMi44OSwzLjYtNTcuODUsMzEtNTMuNTEsNjNDMjI3LjYzLDExOS42LDI0NywxMzcuOSwyNzEuMDYsMTQ0LjNaTTU2NS4yNywzMjguMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiwwTDQzMC4yNyw0MDJhNjMuNjQsNjMuNjQsMCwwLDEtNDAsMTRIMjcyYTE2LDE2LDAsMCwxLDAtMzJoNzguMjljMTUuOSwwLDMwLjcxLTEwLjksMzMuMjUtMjYuNmEzMS4yLDMxLjIsMCwwLDAsLjQ2LTUuNDZBMzIsMzIsMCwwLDAsMzUyLDMyMEgxOTJhMTE3LjY2LDExNy42NiwwLDAsMC03NC4xLDI2LjI5TDcxLjQsMzg0SDE2QTE2LDE2LDAsMCwwLDAsNDAwdjk2YTE2LDE2LDAsMCwwLDE2LDE2SDM3Mi43N2E2NCw2NCwwLDAsMCw0MC0xNEw1NjQsMzc3YTMyLDMyLDAsMCwwLDEuMjgtNDguOVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ1dhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyNTZjNTMgMCA5Ni00Mi4xIDk2LTk0IDAtNDAtNTcuMS0xMjAuNy04My4yLTE1NS42LTYuNC04LjUtMTkuMi04LjUtMjUuNiAwQzI0OS4xIDQxLjMgMTkyIDEyMiAxOTIgMTYyYzAgNTEuOSA0MyA5NCA5NiA5NHptMjc3LjMgNzIuMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiAwTDQzMC4zIDQwMmMtMTEuMyA5LjEtMjUuNCAxNC00MCAxNEgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNzguM2MxNS45IDAgMzAuNy0xMC45IDMzLjMtMjYuNiAzLjMtMjAtMTIuMS0zNy40LTMxLjYtMzcuNEgxOTJjLTI3IDAtNTMuMSA5LjMtNzQuMSAyNi4zTDcxLjQgMzg0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDM1Ni44YzE0LjUgMCAyOC42LTQuOSA0MC0xNEw1NjQgMzc3YzE1LjItMTIuMSAxNi40LTM1LjMgMS4zLTQ4Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY1LjMgMzI4LjFjLTExLjgtMTAuNy0zMC4yLTEwLTQyLjYgMEw0MzAuMyA0MDJjLTExLjMgOS4xLTI1LjQgMTQtNDAgMTRIMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDc4LjNjMTUuOSAwIDMwLjctMTAuOSAzMy4zLTI2LjYgMy4zLTIwLTEyLjEtMzcuNC0zMS42LTM3LjRIMTkyYy0yNyAwLTUzLjEgOS4zLTc0LjEgMjYuM0w3MS40IDM4NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNmgzNTYuOGMxNC41IDAgMjguNi00LjkgNDAtMTRMNTY0IDM3N2MxNS4yLTEyLjEgMTYuNC0zNS4zIDEuMy00OC45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRMaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ4MGgxOTJWMzYzLjc3OGE5NS45OTggOTUuOTk4IDAgMCAwLTE0LjgzMy01MS4yNjNMMzk4LjEyNyA1NC4zNjhBNDggNDggMCAwIDAgMzU3LjU0NCAzMkgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnYxNmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZoMjI5Ljk4MWMxMi44NDQgMCAyMS41NTYgMTMuMDY3IDE2LjYxNSAyNC45MjNsLTIxLjQxIDUxLjM4NUEzMiAzMiAwIDAgMSAyNTEuNjQ4IDIyNEgxMjhjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHY4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNDcuNDA2YTQ3Ljk5NSA0Ny45OTUgMCAwIDEgMjUuNjkyIDcuNDU1bDExMS43NDggNzAuODExQTI0LjAwMSAyNC4wMDEgMCAwIDEgMzg0IDQxOC41MzlWNDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRNaWRkbGVGaW5nZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc5LjkzIDMxNy4xMmEzNy4zMyAzNy4zMyAwIDAgMC0yOC4yOC0zNi4xOUw0MTYgMjcydi00OS41OWMwLTExLjQ0LTkuNjktMjEuMjktMjMuMTUtMjMuNTRsLTM4LjQtNi40QzMzNi42MyAxODkuNSAzMjAgMjAwLjg2IDMyMCAyMTZ2MzJhOCA4IDAgMCAxLTE2IDBWNTBjMC0yNi4yOC0yMC4yNS00OS4yLTQ2LjUyLTUwQTQ4IDQ4IDAgMCAwIDIwOCA0OHYyMDBhOCA4IDAgMCAxLTE2IDB2LTMyYzAtMTUuMTUtMTYuNjMtMjYuNTEtMzQuNDUtMjMuNTRsLTMwLjY4IDUuMTJjLTE4IDMtMzAuODcgMTYuMTItMzAuODcgMzEuMzhWMzc2YTggOCAwIDAgMS0xNiAwdi03NmwtMjcuMzYgMTVBMzcuMzQgMzcuMzQgMCAwIDAgMzIgMzQ4LjR2NzMuNDdhMzcuMzEgMzcuMzEgMCAwIDAgMTAuOTMgMjYuMzlsMzAuOTMgMzAuOTNBMTEyIDExMiAwIDAgMCAxNTMuMDUgNTEyaDIxNUExMTIgMTEyIDAgMCAwIDQ4MCA0MDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwOC43ODEgMTI4LjAwN0MzODYuMzU2IDEyNy41NzggMzY4IDE0Ni4zNiAzNjggMTY4Ljc5VjI1NmgtOFY3OS43OWMwLTIyLjQzLTE4LjM1Ni00MS4yMTItNDAuNzgxLTQwLjc4M0MyOTcuNDg4IDM5LjQyMyAyODAgNTcuMTY5IDI4MCA3OXYxNzdoLThWNDAuNzlDMjcyIDE4LjM2IDI1My42NDQtLjQyMiAyMzEuMjE5LjAwNyAyMDkuNDg4LjQyMyAxOTIgMTguMTY5IDE5MiA0MHYyMTZoLThWODAuNzljMC0yMi40My0xOC4zNTYtNDEuMjEyLTQwLjc4MS00MC43ODNDMTIxLjQ4OCA0MC40MjMgMTA0IDU4LjE2OSAxMDQgODB2MjM1Ljk5MmwtMzEuNjQ4LTQzLjUxOWMtMTIuOTkzLTE3Ljg2Ni0zOC4wMDktMjEuODE3LTU1Ljg3Ny04LjgyMy0xNy44NjUgMTIuOTk0LTIxLjgxNSAzOC4wMS04LjgyMiA1NS44NzdsMTI1LjYwMSAxNzIuNzA1QTQ4IDQ4IDAgMCAwIDE3Mi4wNzMgNTEyaDE5Ny41OWMyMi4yNzQgMCA0MS42MjItMTUuMzI0IDQ2LjcyNC0zNy4wMDZsMjYuNTA4LTExMi42NmExOTIuMDExIDE5Mi4wMTEgMCAwIDAgNS4xMDQtNDMuOTc1VjE2OGMuMDAxLTIxLjgzMS0xNy40ODctMzkuNTc3LTM5LjIxOC0zOS45OTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBlYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwOCAyMTZjLTIyLjA5MiAwLTQwIDE3LjkwOS00MCA0MGgtOHYtMzJjMC0yMi4wOTEtMTcuOTA4LTQwLTQwLTQwcy00MCAxNy45MDktNDAgNDB2MzJoLThWNDhjMC0yNi41MS0yMS40OS00OC00OC00OHMtNDggMjEuNDktNDggNDh2MjA4aC0xMy41NzJMOTIuNjg4IDc4LjQ0OUM4Mi45OTQgNTMuNzc0IDU1LjEzNCA0MS42MyAzMC40NjEgNTEuMzI0IDUuNzg3IDYxLjAxNy02LjM1NiA4OC44NzcgMy4zMzcgMTEzLjU1MWw3NC43NjUgMTkwLjM0Mi0zMS4wOSAyNC44NzJjLTE1LjM4MSAxMi4zMDYtMTkuNTE1IDMzLjk3OC05Ljc0MSA1MS4wODFsNjQgMTEyQTM5Ljk5OCAzOS45OTggMCAwIDAgMTM2IDUxMmgyNDBjMTguNTYyIDAgMzQuNjg2LTEyLjc3IDM4LjkzNy0zMC44MzhsMzItMTM2QTM5Ljk3IDM5Ljk3IDAgMCAwIDQ0OCAzMzZ2LTgwYzAtMjIuMDkxLTE3LjkwOC00MC00MC00MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkxLjgyNiA0NjcuMlYzMTcuOTY2Yy04LjI0OCA1Ljg0MS0xNi41NTggMTAuNTctMjQuOTE4IDE0LjE1M0MzNS4wOTggMzQ1Ljc1Mi0uMDE0IDMyMi4yMjIgMCAyODhjLjAwOC0xOC42MTYgMTAuODk3LTMyLjIwMyAyOS4wOTItNDAgMjguMjg2LTEyLjEyMiA2NC4zMjktNzguNjQ4IDc3LjMyMy0xMDcuNTM0IDcuOTU2LTE3Ljg1NyAyNS40NzktMjguNDUzIDQzLjg0NS0yOC40NjRsLjAwMS0uMDAyaDE3MS41MjZjMTEuODEyIDAgMjEuODk3IDguNTk2IDIzLjcwMyAyMC4yNjkgNy4yNSA0Ni44MzcgMzguNDgzIDYxLjc2IDM4LjMxNSAxMjMuNzMxLS4wMDcgMi43MjQuMTk1IDEzLjI1NC4xOTUgMTYgMCA1MC42NTQtMjIuMTIyIDgxLjU3NC03MS4yNjMgNzIuNi05LjI5NyAxOC41OTctMzkuNDg2IDMwLjczOC02Mi4zMTUgMTYuNDUtMjEuMTc3IDI0LjY0NS01My44OTYgMjIuNjM5LTcwLjk0NCA2LjI5OVY0NjcuMmMwIDI0LjE1LTIwLjIwMSA0NC44LTQzLjgyNiA0NC44LTIzLjI4MyAwLTQzLjgyNi0yMS4zNS00My44MjYtNDQuOHpNMTEyIDcyVjI0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxOTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djQ4YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgxMzZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHptMjEyLTI0YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0LjggMTU1LjgyNmgxNDkuMjM0Yy01Ljg0MS04LjI0OC0xMC41Ny0xNi41NTgtMTQuMTUzLTI0LjkxOEMxNjYuMjQ4IDk5LjA5OCAxODkuNzc4IDYzLjk4NiAyMjQgNjRjMTguNjE2LjAwOCAzMi4yMDMgMTAuODk3IDQwIDI5LjA5MiAxMi4xMjIgMjguMjg2IDc4LjY0OCA2NC4zMjkgMTA3LjUzNCA3Ny4zMjMgMTcuODU3IDcuOTU2IDI4LjQ1MyAyNS40NzkgMjguNDY0IDQzLjg0NWwuMDAyLjAwMXYxNzEuNTI2YzAgMTEuODEyLTguNTk2IDIxLjg5Ny0yMC4yNjkgMjMuNzAzLTQ2LjgzNyA3LjI1LTYxLjc2IDM4LjQ4My0xMjMuNzMxIDM4LjMxNS0yLjcyNC0uMDA3LTEzLjI1NC4xOTUtMTYgLjE5NS01MC42NTQgMC04MS41NzQtMjIuMTIyLTcyLjYtNzEuMjYzLTE4LjU5Ny05LjI5Ny0zMC43MzgtMzkuNDg2LTE2LjQ1LTYyLjMxNS0yNC42NDUtMjEuMTc3LTIyLjYzOS01My44OTYtNi4yOTktNzAuOTQ0SDQ0LjhjLTI0LjE1IDAtNDQuOC0yMC4yMDEtNDQuOC00My44MjYgMC0yMy4yODMgMjEuMzUtNDMuODI2IDQ0LjgtNDMuODI2ek00NDAgMTc2aDQ4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYxOTJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0aC00OGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjIwMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjR6bTI0IDIxMmMxMS4wNDYgMCAyMC04Ljk1NCAyMC0yMHMtOC45NTQtMjAtMjAtMjAtMjAgOC45NTQtMjAgMjAgOC45NTQgMjAgMjAgMjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDE5OS42NTJjMCAyMy42MjUtMjAuNjUgNDMuODI2LTQ0LjggNDMuODI2aC05OS44NTFjMTYuMzQgMTcuMDQ4IDE4LjM0NiA0OS43NjYtNi4yOTkgNzAuOTQ0IDE0LjI4OCAyMi44MjkgMi4xNDcgNTMuMDE3LTE2LjQ1IDYyLjMxNUMzNTMuNTc0IDQyNS44NzggMzIyLjY1NCA0NDggMjcyIDQ0OGMtMi43NDYgMC0xMy4yNzYtLjIwMy0xNi0uMTk1LTYxLjk3MS4xNjgtNzYuODk0LTMxLjA2NS0xMjMuNzMxLTM4LjMxNUMxMjAuNTk2IDQwNy42ODMgMTEyIDM5Ny41OTkgMTEyIDM4NS43ODZWMjE0LjI2MWwuMDAyLS4wMDFjLjAxMS0xOC4zNjYgMTAuNjA3LTM1Ljg4OSAyOC40NjQtNDMuODQ1IDI4Ljg4Ni0xMi45OTQgOTUuNDEzLTQ5LjAzOCAxMDcuNTM0LTc3LjMyMyA3Ljc5Ny0xOC4xOTQgMjEuMzg0LTI5LjA4NCA0MC0yOS4wOTIgMzQuMjIyLS4wMTQgNTcuNzUyIDM1LjA5OCA0NC4xMTkgNjYuOTA4LTMuNTgzIDguMzU5LTguMzEyIDE2LjY3LTE0LjE1MyAyNC45MThINDY3LjJjMjMuNDUgMCA0NC44IDIwLjU0MyA0NC44IDQzLjgyNnpNOTYgMjAwdjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyMDBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDQ4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHpNNjggMzY4YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzUuNjUyIDBjMjMuNjI1IDAgNDMuODI2IDIwLjY1IDQzLjgyNiA0NC44djk5Ljg1MWMxNy4wNDgtMTYuMzQgNDkuNzY2LTE4LjM0NiA3MC45NDQgNi4yOTkgMjIuODI5LTE0LjI4OCA1My4wMTctMi4xNDcgNjIuMzE1IDE2LjQ1QzM2MS44NzggMTU4LjQyNiAzODQgMTg5LjM0NiAzODQgMjQwYzAgMi43NDYtLjIwMyAxMy4yNzYtLjE5NSAxNiAuMTY4IDYxLjk3MS0zMS4wNjUgNzYuODk0LTM4LjMxNSAxMjMuNzMxQzM0My42ODMgMzkxLjQwNCAzMzMuNTk5IDQwMCAzMjEuNzg2IDQwMEgxNTAuMjYxbC0uMDAxLS4wMDJjLTE4LjM2Ni0uMDExLTM1Ljg4OS0xMC42MDctNDMuODQ1LTI4LjQ2NEM5My40MjEgMzQyLjY0OCA1Ny4zNzcgMjc2LjEyMiAyOS4wOTIgMjY0IDEwLjg5NyAyNTYuMjAzLjAwOCAyNDIuNjE2IDAgMjI0Yy0uMDE0LTM0LjIyMiAzNS4wOTgtNTcuNzUyIDY2LjkwOC00NC4xMTkgOC4zNTkgMy41ODMgMTYuNjcgOC4zMTIgMjQuOTE4IDE0LjE1M1Y0NC44YzAtMjMuNDUgMjAuNTQzLTQ0LjggNDMuODI2LTQ0Ljh6TTEzNiA0MTZoMTkyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY0OGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMTM2Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTQ4YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHptMTY4IDI4Yy0xMS4wNDYgMC0yMCA4Ljk1NC0yMCAyMHM4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMC04Ljk1NC0yMC0yMC0yMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMjQwdjk2YzAgMy4wODQtLjM1NiA2LjE1OS0xLjA2MyA5LjE2MmwtMzIgMTM2QzQxMC42ODYgNDk5LjIzIDM5NC41NjIgNTEyIDM3NiA1MTJIMTY4YTQwLjAwNCA0MC4wMDQgMCAwIDEtMzIuMzUtMTYuNDczbC0xMjcuOTk3LTE3NmMtMTIuOTkzLTE3Ljg2Ni05LjA0My00Mi44ODMgOC44MjItNTUuODc2IDE3Ljg2Ny0xMi45OTQgNDIuODg0LTkuMDQzIDU1Ljg3NyA4LjgyM0wxMDQgMzE1Ljk5MlY0MGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwdjIwMGg4di00MGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwdjQwaDh2LTI0YzAtMjIuMDkxIDE3LjkwOC00MCA0MC00MHM0MCAxNy45MDkgNDAgNDB2MjRoOGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwem0tMjU2IDgwaC04djk2aDh2LTk2em04OCAwaC04djk2aDh2LTk2em04OCAwaC04djk2aDh2LTk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRSb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NC44IDgwYy0yNi45LS40LTQ4LjggMjEuMi00OC44IDQ4aC04Vjk2LjhjMC0yNi4zLTIwLjktNDguMy00Ny4yLTQ4LjgtMjYuOS0uNC00OC44IDIxLjItNDguOCA0OHYzMmgtOFY4MC44YzAtMjYuMy0yMC45LTQ4LjMtNDcuMi00OC44LTI2LjktLjQtNDguOCAyMS4yLTQ4LjggNDh2NDhoLThWOTYuOGMwLTI2LjMtMjAuOS00OC4zLTQ3LjItNDguOC0yNi45LS40LTQ4LjggMjEuMi00OC44IDQ4djEzNmwtOC03LjF2LTQ4LjFjMC0yNi4zLTIwLjktNDguMy00Ny4yLTQ4LjhDMjEuOSAxMjcuNiAwIDE0OS4yIDAgMTc2djY2LjRjMCAyNy40IDExLjcgNTMuNSAzMi4yIDcxLjhsMTExLjcgOTkuM2MxMC4yIDkuMSAxNi4xIDIyLjIgMTYuMSAzNS45djYuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNGgyNDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTIuOWMwLTEyLjggMi42LTI1LjUgNy41LTM3LjNsNDktMTE2LjNjNS0xMS44IDcuNS0yNC41IDcuNS0zNy4zVjEyOC44YzAtMjYuMy0yMC45LTQ4LjQtNDcuMi00OC44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgNDQwYzAtMjIuMDkyIDE3LjkwOS00MCA0MC00MHYtOGgtMzJjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHMxNy45MDktNDAgNDAtNDBoMzJ2LThINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDhoMjA4di0xMy41NzJsLTE3Ny41NTEtNjkuNzRjLTI0LjY3NC05LjY5NC0zNi44MTgtMzcuNTU1LTI3LjEyNS02Mi4yMjggOS42OTMtMjQuNjc0IDM3LjU1NC0zNi44MTcgNjIuMjI4LTI3LjEyNGwxOTAuMzQyIDc0Ljc2NSAyNC44NzItMzEuMDljMTIuMzA2LTE1LjM4MSAzMy45NzgtMTkuNTE1IDUxLjA4MS05Ljc0MWwxMTIgNjRBNDAuMDAyIDQwLjAwMiAwIDAgMSA1MTIgMTY4djI0MGMwIDE4LjU2Mi0xMi43NyAzNC42ODYtMzAuODM4IDM4LjkzN2wtMTM2IDMyQTM5Ljk4MiAzOS45ODIgMCAwIDEgMzM2IDQ4MGgtODBjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kU3BhcmtsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA2LjY2LDE3MC42NGwuMDksMCw0OS41NS0yMC42NWE3LjMyLDcuMzIsMCwwLDAsMy42OC02aDBhNy4yOSw3LjI5LDAsMCwwLTMuNjgtNmwtNDkuNTctMjAuNjctLjA3LDBMODYsNjcuNjhhNi42Niw2LjY2LDAsMCwwLTExLjkyLDBsLTIwLjcsNDkuNjMtLjA1LDBMMy43LDEzOEE3LjI5LDcuMjksMCwwLDAsMCwxNDRIMGE3LjMyLDcuMzIsMCwwLDAsMy42OCw2TDUzLjI3LDE3MC42bC4wNywwTDc0LDIyMC4yNmE2LjY1LDYuNjUsMCwwLDAsMTEuOTIsMGwyMC42OS00OS42MlpNNDcxLjM4LDQ2Ny40MWwtMS0uNDItMS0uNWEzOC42NywzOC42NywwLDAsMSwwLTY5LjE0bDEtLjQ5LDEtLjQzLDM3LjQ5LTE1LjYzLDE1LjYzLTM3LjQ4LjQxLTEsLjQ3LS45NWMzLjg1LTcuNzQsMTAuNTgtMTMuNjMsMTguMzUtMTcuMzQsMC0xLjMzLjI1LTIuNjkuMjctNFYxNDRhMzIsMzIsMCwwLDAtNjQsMHY3MmE4LDgsMCwwLDEtOCw4SDQ1NmE4LDgsMCwwLDEtOC04VjY0YTMyLDMyLDAsMCwwLTY0LDBWMjE2YTgsOCwwLDAsMS04LDhIMzYwYTgsOCwwLDAsMS04LThWMzJhMzIsMzIsMCwwLDAtNjQsMFYyMTZhOCw4LDAsMCwxLTgsOEgyNjRhOCw4LDAsMCwxLTgtOFY2NGEzMiwzMiwwLDAsMC02NCwwdjI0MWwtMjMuNTktMzIuNDlhNDAsNDAsMCwwLDAtNjQuNzEsNDcuMDlMMjI5LjMsNDkyLjIxQTQ4LjA3LDQ4LjA3LDAsMCwwLDI2OC4wOSw1MTJINDY1LjdjMTkuMjQsMCwzNS42NS0xMS43Myw0My4yNC0yOC43OWwtLjA3LS4xN1pNMzQ5Ljc5LDMzOS41MiwzMjAsMzUxLjkzbC0xMi40MiwyOS43OGE0LDQsMCwwLDEtNy4xNSwwTDI4OCwzNTEuOTNsLTI5Ljc5LTEyLjQxYTQsNCwwLDAsMSwwLTcuMTZMMjg4LDMxOS45NGwxMi40Mi0yOS43OGE0LDQsMCwwLDEsNy4xNSwwTDMyMCwzMTkuOTRsMjkuNzksMTIuNDJhNCw0LDAsMCwxLDAsNy4xNlpNNjQwLDQzMS45MWE3LjI4LDcuMjgsMCwwLDAtMy42OC02bC00OS41Ny0yMC42Ny0uMDcsMEw1NjYsMzU1LjYzYTYuNjYsNi42NiwwLDAsMC0xMS45MiwwbC0yMC43LDQ5LjYzLS4wNSwwTDQ4My43LDQyNmE3LjI4LDcuMjgsMCwwLDAtMy42OCw2aDBhNy4yOSw3LjI5LDAsMCwwLDMuNjgsNS45NWw0OS41NywyMC42Ny4wNywwTDU1NCw1MDguMjFhNi42NSw2LjY1LDAsMCwwLDExLjkyLDBsMjAuNjktNDkuNjJoMGwuMDksMCw0OS41NS0yMC42NmE3LjI5LDcuMjksMCwwLDAsMy42OC01Ljk1aDBaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFNwb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC45MDA1LDE0NS4yNzAyNyw0NDIuNjA0LDQzMi4wOTM5MUExMDMuOTk1MDcsMTAzLjk5NTA3LDAsMCwxLDM0MS40Mzc0NSw1MTJIMjE0LjA3NGExMzUuOTY5NjgsMTM1Ljk2OTY4LDAsMCwxLTkzLjE4NDg5LTM2Ljk1MjkxTDEyLjU5MDcyLDM3My4xMjcyM2EzOS45OTIsMzkuOTkyLDAsMCwxLDU0LjgxMjItNTguMjQ5ODhsNjAuNTkzNDIsNTcuMDI1Mjh2MGEyODMuMjQ4NDksMjgzLjI0ODQ5LDAsMCwwLTExLjY3MDMtODAuNDY3MzRMNzMuNjM3MjYsMTQ3LjM2MDExYTQwLjAwNTc1LDQwLjAwNTc1LDAsMSwxLDc2LjcxODMzLTIyLjcxODdsMzcuMTU0NTgsMTI1LjM5NDc3YTguMzMxMTMsOC4zMzExMywwLDAsMCwxNi4wNTY1Ni00LjQ0MTRMMTUzLjI2MTgzLDQ5Ljk1NDA2QTM5Ljk5NjM4LDM5Ljk5NjM4LDAsMSwxLDIzMC43MzAxNSwzMC4wMTY2bDU2LjA5NDkxLDIxOC4xNTgyNWExMC40MjA0NywxMC40MjA0NywwLDAsMCwyMC4zMDAxOC0uNTAxTDM0NC44MDc2Niw2My45Njk2NmE0MC4wNTIsNDAuMDUyLDAsMCwxLDUxLjMwMjQ1LTMwLjA4OTNjMTkuODYwNzMsNi4yOTk4LDMwLjg2MjYyLDI3LjY3Mzc4LDI2LjY3NTY0LDQ4LjA4NDg3bC0zMy44Mzg2OSwxNjQuOTY2YTcuNTUxNzIsNy41NTE3MiwwLDAsMCwxNC43NDQwNiwzLjI2NjZsMjkuMzk3My0xMjMuNDU4NzRhMzkuOTk0MTQsMzkuOTk0MTQsMCwxLDEsNzcuODEyMDgsMTguNTMxMjFaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNIZWxwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAxOTJIMzM2djU2YzAgMzkuNy0zMi4zIDcyLTcyIDcycy03Mi0zMi4zLTcyLTcyVjEyNi40bC02NC45IDM5QzEwNy44IDE3Ni45IDk2IDE5Ny44IDk2IDIyMC4ydjQ3LjNsLTgwIDQ2LjJDLjcgMzIyLjUtNC42IDM0Mi4xIDQuMyAzNTcuNGw4MCAxMzguNmM4LjggMTUuMyAyOC40IDIwLjUgNDMuNyAxMS43TDIzMS40IDQ0OEgzNjhjMzUuMyAwIDY0LTI4LjcgNjQtNjRoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTY0aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0em0xNDcuNy0zNy40TDU1NS43IDE2QzU0Ni45LjcgNTI3LjMtNC41IDUxMiA0LjNMNDA4LjYgNjRIMzA2LjRjLTEyIDAtMjMuNyAzLjQtMzMuOSA5LjdMMjM5IDk0LjZjLTkuNCA1LjgtMTUgMTYuMS0xNSAyNy4xVjI0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwdi04OGgxODRjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MjguNWw4MC00Ni4yYzE1LjMtOC45IDIwLjUtMjguNCAxMS43LTQzLjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNXYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiwyMjRhNDgsNDgsMCwxLDAtNDgtNDhBNDgsNDgsMCwwLDAsNDk2LDIyNFpNMzExLjQ3LDE3OC40NUE1Ni43Nyw1Ni43NywwLDAsMSwzMjgsMTc2YTU2LDU2LDAsMCwxLDE5LDMuNDlsMTUuMzUtNDguNjFBMjQsMjQsMCwwLDAsMzQyLDk5Ljc0Yy0xMS41My0xLjM1LTIyLjIxLDYuNDQtMjUuNzEsMTcuNTFsLTIwLjksNjYuMTdaTTkzLjY1LDM4Ni4zM2MuOC0uMTksMS41NC0uNTQsMi4zNS0uNzFWMzU5LjkzYTE1NiwxNTYsMCwwLDEsMTA3LjA2LTE0OGw3My43LTIyLjc2TDMxMC45Miw4MS4wNWEyNCwyNCwwLDAsMC0yMC4zMy0zMS4xMWMtMTEuNTMtMS4zNC0yMi4yMiw2LjQ1LTI1LjcyLDE3LjUyTDIzMS40MiwxNzMuODhhOCw4LDAsMCwxLTE1LjI2LTQuODNMMjU5LjUzLDMxLjI2QTI0LDI0LDAsMCwwLDIzOS4yLjE1QzIyNy42Ny0xLjE5LDIxNyw2LjYsMjEzLjQ5LDE3LjY2TDE2NS41NiwxNjkuMzdhOCw4LDAsMSwxLTE1LjI2LTQuODJsMzguNTYtMTIyYTI0LDI0LDAsMCwwLTIwLjMzLTMxLjExQzE1NywxMCwxNDYuMzIsMTcuODMsMTQyLjgyLDI4LjlsLTYwLDE4OS44NUw4MC43NiwxNjguN0EyNCwyNCwwLDAsMCw1Ni45LDE0NC41NWMtMTMuMjMtLjA1LTI0LjcyLDEwLjU0LTI0LjksMjMuODZWMjgxLjE0QTEyMy42OSwxMjMuNjksMCwwLDAsOTMuNjUsMzg2LjMzWk01MTkuMSwzMzZIMzYwYTgsOCwwLDAsMSwwLTE2SDQ4OGEyNCwyNCwwLDAsMCwyMy41NC0yOC43NkM1MDkuMzUsMjc5Ljg0LDQ5OC43MSwyNzIsNDg3LjEsMjcySDI4OGw0Ny4wOS0xNy4wNmEyNCwyNCwwLDAsMC0xNC4xOC00NS44OEwyMTMuMTksMjQyLjMxQTEyMy44OCwxMjMuODgsMCwwLDAsMTI4LDM2MHYyNS42NWE3OS43OCw3OS43OCwwLDAsMSw1OCwxMDguNjNBMTE4LjksMTE4LjksMCwwLDAsMjQ4LDUxMkg0NTZhMjQsMjQsMCwwLDAsMjMuNTQtMjguNzZDNDc3LjM1LDQ3MS44NCw0NjYuNzEsNDY0LDQ1NS4xLDQ2NEgzNjBhOCw4LDAsMCwxLDAtMTZINDg4YTI0LDI0LDAsMCwwLDIzLjU0LTI4Ljc2QzUwOS4zNSw0MDcuODQsNDk4LjcxLDQwMCw0ODcuMSw0MDBIMzYwYTgsOCwwLDAsMSwwLTE2SDUyMGEyNCwyNCwwLDAsMCwyMy41NC0yOC43NkM1NDEuMzUsMzQzLjg0LDUzMC43MSwzMzYsNTE5LjEsMzM2Wk00MTYsNjRhMzIsMzIsMCwxLDAtMzItMzJBMzIsMzIsMCwwLDAsNDE2LDY0Wk0xMTIsNDE2YTQ4LDQ4LDAsMSwwLDQ4LDQ4QTQ4LDQ4LDAsMCwwLDExMiw0MTZaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA0LjggMjMwLjRjLTEwLjYtMTQuMS0zMC43LTE3LTQ0LjgtNi40LTE0LjEgMTAuNi0xNyAzMC43LTYuNCA0NC44bDM4LjEgNTAuOGM0LjggNi40IDQuMSAxNS4zLTEuNSAyMC45bC0xMi44IDEyLjhjLTYuNyA2LjctMTcuNiA2LjItMjMuNi0xLjFMNjQgMjQ0LjRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCA3OC4zIDAgOTZ2MjE4LjRjMCAxMC45IDMuNyAyMS41IDEwLjUgMzBsMTA0LjEgMTM0LjNjNSA2LjUgOC40IDEzLjkgMTAuNCAyMS43IDEuOCA2LjkgOC4xIDExLjYgMTUuMyAxMS42SDI3MmM4LjggMCAxNi03LjIgMTYtMTZWMzg0YzAtMjcuNy05LTU0LjYtMjUuNi03Ni44bC01Ny42LTc2Ljh6TTYwOCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTQ4LjRsLTg5LjggMTA3LjhjLTYgNy4yLTE3IDcuNy0yMy42IDEuMWwtMTIuOC0xMi44Yy01LjYtNS42LTYuMy0xNC41LTEuNS0yMC45bDM4LjEtNTAuOGMxMC42LTE0LjEgNy43LTM0LjItNi40LTQ0LjgtMTQuMS0xMC42LTM0LjItNy43LTQ0LjggNi40bC01Ny42IDc2LjhDMzYxIDMyOS40IDM1MiAzNTYuMyAzNTIgMzg0djExMmMwIDguOCA3LjIgMTYgMTYgMTZoMTMxLjdjNy4xIDAgMTMuNS00LjcgMTUuMy0xMS42IDItNy44IDUuNC0xNS4yIDEwLjQtMjEuN2wxMDQuMS0xMzQuM2M2LjgtOC41IDEwLjUtMTkuMSAxMC41LTMwVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzaGFrZUFsdFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1OC41OSwxOTUuNiw1MDQuMiwzMTMuOGE2My40LDYzLjQsMCwwLDEsMjIuMjEsMzcuOTFINjI0YTE2LjA1LDE2LjA1LDAsMCwwLDE2LTE2VjE0My45MUExNiwxNiwwLDAsMCw2MjQsMTI4SDUxMkw0NTcuNDEsNzMuNDFBMzIsMzIsMCwwLDAsNDM0LjgsNjRIMzQ4LjkxYTMyLDMyLDAsMCwwLTIxLjYxLDguNDFsLTg4LjEyLDgwLjY4LTI1LjY5LTE5Ljg1TDI4OS4wOSw2NEgyMDUuM2EzMiwzMiwwLDAsMC0yMi42LDkuNDFsLTIwLjM0LDIwLjNMNDUuNDcsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzgsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOSw1My45MUw1OTQuNTQsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODJsMTkuNjQtMjUuMjdhMTYsMTYsMCwwLDAtMi44MS0yMi40NUwzMDMuNCwyMDIuNzJsMzIuNjktMjkuOTIsMjctMjQuN2ExNiwxNiwwLDAsMSwyMS42MSwyMy42MVpNMTYsMTI4QTE2LjA1LDE2LjA1LDAsMCwwLDAsMTQ0VjMzNS45MWExNiwxNiwwLDAsMCwxNiwxNkgxNDYuM2w5MC41LDgxLjg5YTY0LDY0LDAsMCwwLDkwLTkuM2wuMi0uMiwxNy45MSwxNS41YTM3LjE2LDM3LjE2LDAsMCwwLDUyLjI5LTUuMzlsOC44LTEwLjgyTDIzLjU2LDEyOFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2VTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wLDEyOC4yMVYzODRINjRhMzIsMzIsMCwwLDAsMzItMzJWMTg0TDIzLjgzLDEyOC4yMVpNNDgsMzIwLjFhMTYsMTYsMCwxLDEtMTYsMTZBMTYsMTYsMCwwLDEsNDgsMzIwLjFabTgwLDMxLjgxaDE4LjNsOTAuNSw4MS44OWE2NCw2NCwwLDAsMCw5MC05LjNsLjItLjIsMTcuOTEsMTUuNWEzNy4xNiwzNy4xNiwwLDAsMCw1Mi4yOS01LjM5bDguOC0xMC44MkwxMjgsMjA4LjcyWm00MTYtMjIzLjdWMzUyLjFhMzIsMzIsMCwwLDAsMzIsMzJoNjRWMTI4LjIxWk01OTIsMzUyLjFhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsNTkyLDM1Mi4xWk0zMDMuMzMsMjAyLjY3bDU5LjU4LTU0LjU3YTE2LDE2LDAsMCwxLDIxLjU5LDIzLjYxTDM1OC40MSwxOTUuNiw1MDQsMzEzLjhhNzMuMDgsNzMuMDgsMCwwLDEsNy45MSw3LjdWMTI4TDQ1Ny4zLDczLjQxQTMxLjc2LDMxLjc2LDAsMCwwLDQzNC43LDY0SDM0OC44YTMxLjkzLDMxLjkzLDAsMCwwLTIxLjYsOC40MWwtODguMDcsODAuNjQtMjUuNjQtMTkuODFMMjg5LjA5LDY0SDIwNS4zYTMyLDMyLDAsMCwwLTIyLjYsOS40MUwxNjIuMzYsOTMuNzIsNDUuNDcsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzgsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOSw1My45MUw1OTQuNTMsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODJsMTkuNjUtMjUuMjdhMTYsMTYsMCwwLDAtMi44Mi0yMi40NVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM0LjcgNjRoLTg1LjljLTggMC0xNS43IDMtMjEuNiA4LjRsLTk4LjMgOTBjLS4xLjEtLjIuMy0uMy40LTE2LjYgMTUuNi0xNi4zIDQwLjUtMi4xIDU2IDEyLjcgMTMuOSAzOS40IDE3LjYgNTYuMSAyLjcuMS0uMS4zLS4xLjQtLjJsNzkuOS03My4yYzYuNS01LjkgMTYuNy01LjUgMjIuNiAxIDYgNi41IDUuNSAxNi42LTEgMjIuNmwtMjYuMSAyMy45TDUwNCAzMTMuOGMyLjkgMi40IDUuNSA1IDcuOSA3LjdWMTI4bC01NC42LTU0LjZjLTUuOS02LTE0LjEtOS40LTIyLjYtOS40ek01NDQgMTI4LjJ2MjIzLjljMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRWMTI4LjJoLTk2em00OCAyMjMuOWMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2ek0wIDM4NGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxMjguMkgwVjM4NHptNDgtNjMuOWM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNi0xNi03LjItMTYtMTZjMC04LjkgNy4yLTE2IDE2LTE2em00MzUuOSAxOC42TDMzNC42IDIxNy41bC0zMCAyNy41Yy0yOS43IDI3LjEtNzUuMiAyNC41LTEwMS43LTQuNC0yNi45LTI5LjQtMjQuOC03NC45IDQuNC0xMDEuN0wyODkuMSA2NGgtODMuOGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDEyOHYyMjMuOWgxOC4zbDkwLjUgODEuOWMyNy40IDIyLjMgNjcuNyAxOC4xIDkwLTkuM2wuMi0uMiAxNy45IDE1LjVjMTUuOSAxMyAzOS40IDEwLjUgNTIuMy01LjRsMzEuNC0zOC42IDUuNCA0LjRjMTMuNyAxMS4xIDMzLjkgOS4xIDQ1LTQuN2w5LjUtMTEuN2MxMS4yLTEzLjggOS4xLTMzLjktNC42LTQ1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFudWtpYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyIDE2MGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bS02NCAwYy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4YzAtNC40Mi0zLjU4LTgtOC04aC0xNnptMjI0IDBjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjhjMC00LjQyLTMuNTgtOC04LThoLTE2em02NCAwYy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4YzAtNC40Mi0zLjU4LTgtOC04aC0xNnptODggOGMwLTQuNDItMy41OC04LTgtOGgtMTZjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjh6bS00NDAtOGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bTUyMCAwaC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTEyYzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMzUyVjEyOGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE5Mkg5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlYxNzZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djExMmMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDE5MnY2NEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzUydi02NGgxOTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlYxNzZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS0xNi0zMmMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzYwOCA0OCA2MDggNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzU5NC43NSAxMjggNjA4IDEyOHptLTU3NiAwYzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMzIgNDggMzIgNDggOCA4Ni42MSA4IDEwMS4zMyAxOC43NSAxMjggMzIgMTI4em0yODgtNDhjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1MzMjAgMCAzMjAgMHMtMjQgMzguNjEtMjQgNTMuMzNTMzA2Ljc1IDgwIDMyMCA4MHptLTIwOCA0OGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzExMiA0OCAxMTIgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzk4Ljc1IDEyOCAxMTIgMTI4em02NCAwYzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMTc2IDQ4IDE3NiA0OHMtMjQgMzguNjEtMjQgNTMuMzNTMTYyLjc1IDEyOCAxNzYgMTI4em02NCAwYzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMjQwIDQ4IDI0MCA0OHMtMjQgMzguNjEtMjQgNTMuMzNTMjI2Ljc1IDEyOCAyNDAgMTI4em0xNjAgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzQwMCA0OCA0MDAgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzM4Ni43NSAxMjggNDAwIDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzQ2NCA0OCA0NjQgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzQ1MC43NSAxMjggNDY0IDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzUyOCA0OCA1MjggNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzUxNC43NSAxMjggNTI4IDEyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXJkSGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAyODhjMC04MC4yNS00OS4yOC0xNDguOTItMTE5LjE5LTE3Ny42MkwzMjAgMTkyVjgwYTE2IDE2IDAgMCAwLTE2LTE2aC05NmExNiAxNiAwIDAgMC0xNiAxNnYxMTJsLTQwLjgxLTgxLjYyQzgxLjI4IDEzOS4wOCAzMiAyMDcuNzUgMzIgMjg4djY0aDQ0OHptMTYgOTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDgwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXNodGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC42NjcgMTgyLjEwOWw3LjE0My00MGMxLjMxMy03LjM1NS00LjM0Mi0xNC4xMDktMTEuODEzLTE0LjEwOWgtNzQuODFsMTQuNjIzLTgxLjg5MUMzNzcuMTIzIDM4Ljc1NCAzNzEuNDY4IDMyIDM2My45OTcgMzJoLTQwLjYzMmExMiAxMiAwIDAgMC0xMS44MTMgOS44OTFMMjk2LjE3NSAxMjhIMTk3LjU0bDE0LjYyMy04MS44OTFDMjEzLjQ3NyAzOC43NTQgMjA3LjgyMiAzMiAyMDAuMzUgMzJoLTQwLjYzMmExMiAxMiAwIDAgMC0xMS44MTMgOS44OTFMMTMyLjUyOCAxMjhINTMuNDMyYTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MWwtNy4xNDMgNDBDMzMuMTYzIDE4NS4yNDYgMzguODE4IDE5MiA0Ni4yODkgMTkyaDc0LjgxTDk4LjI0MiAzMjBIMTkuMTQ2YTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MWwtNy4xNDMgNDBDLTEuMTIzIDM3Ny4yNDYgNC41MzIgMzg0IDEyLjAwMyAzODRoNzQuODFMNzIuMTkgNDY1Ljg5MUM3MC44NzcgNDczLjI0NiA3Ni41MzIgNDgwIDg0LjAwMyA0ODBoNDAuNjMyYTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MUwxNTEuODI2IDM4NGg5OC42MzRsLTE0LjYyMyA4MS44OTFDMjM0LjUyMyA0NzMuMjQ2IDI0MC4xNzggNDgwIDI0Ny42NSA0ODBoNDAuNjMyYTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MUwzMTUuNDcyIDM4NGg3OS4wOTZhMTIgMTIgMCAwIDAgMTEuODEzLTkuODkxbDcuMTQzLTQwYzEuMzEzLTcuMzU1LTQuMzQyLTE0LjEwOS0xMS44MTMtMTQuMTA5aC03NC44MWwyMi44NTctMTI4aDc5LjA5NmExMiAxMiAwIDAgMCAxMS44MTMtOS44OTF6TTI2MS44ODkgMzIwaC05OC42MzRsMjIuODU3LTEyOGg5OC42MzRsLTIyLjg1NyAxMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGF0Q293Ym95U2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjAuOCAyOTEuMDZjLTI4LjYzLTIyLjk0LTYyLTM1LjA2LTk2LjQtMzUuMDZDODcgMjU2IDIxLjQ3IDMxOC43MiAxLjQzIDQxMi4wNmMtMy41NSAxNi42LS40MyAzMy44MyA4LjU3IDQ3LjNDMTguNzUgNDcyLjQ3IDMxLjgzIDQ4MCA0NS44OCA0ODBINTkyYy0xMDMuMjEgMC0xNTUtMzcuMDctMjMzLjE5LTEwNC40NnptMjM0LjY1LTE4LjI5TDQ2OC40IDExNi4yQTY0IDY0IDAgMCAwIDM5MiA2NC40MUwyMDAuODUgMTA1YTY0IDY0IDAgMCAwLTUwLjM1IDU1Ljc5TDE0My42MSAyMjZjNi45LS44MyAxMy43LTIgMjAuNzktMiA0MS43OSAwIDgyIDE0LjU1IDExNy4yOSA0Mi44Mmw5OCA4NC40OEM0NTAuNzYgNDEyLjU0IDQ5NC45IDQ0OCA1OTIgNDQ4YTQ4IDQ4IDAgMCAwIDQ4LTQ4YzAtMjUuMzktMjkuNi0xMTkuMzMtMTQ0LjU1LTEyNy4yM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXRDb3dib3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkwIDI5Ni45QzQ4MC41MSAyMzkuNTEgNDUwLjUxIDY0IDM5Mi4zIDY0Yy0xNCAwLTI2LjQ5IDUuOTMtMzcgMTRhNTguMjEgNTguMjEgMCAwIDEtNzAuNTggMGMtMTAuNTEtOC0yMy0xNC0zNy0xNC01OC4yIDAtODguMiAxNzUuNDctOTcuNzEgMjMyLjg4QzE4OC44MSAzMDkuNDcgMjQzLjczIDMyMCAzMjAgMzIwczEzMS4yMy0xMC41MSAxNzAtMjMuMXptMTQyLjktMzcuMThhMTYgMTYgMCAwIDAtMTkuNzUgMS41Yy0xIC45LTEwMS4yNyA5MC43OC0yOTMuMTYgOTAuNzgtMTkwLjgyIDAtMjkyLjIyLTg5Ljk0LTI5My4yNC05MC44NEExNiAxNiAwIDAgMCAxIDI3OC41M0MxLjczIDI4MC41NSA3OC4zMiA0ODAgMzIwIDQ4MHMzMTguMjctMTk5LjQ1IDMxOS0yMDEuNDdhMTYgMTYgMCAwIDAtNi4wOS0xOC44MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXRXaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDgwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTMwNC02NGwtNjQtMzIgNjQtMzIgMzItNjQgMzIgNjQgNjQgMzItNjQgMzItMTYgMzJoMjA4bC04Ni40MS0yMDEuNjNhNjMuOTU1IDYzLjk1NSAwIDAgMS0xLjg5LTQ1LjQ1TDQxNiAwIDIyOC40MiAxMDcuMTlhMTI3Ljk4OSAxMjcuOTg5IDAgMCAwLTUzLjQ2IDU5LjE1TDY0IDQxNmgxNDRsLTE2LTMyem02NC0yMjRsMTYtMzIgMTYgMzIgMzIgMTYtMzIgMTYtMTYgMzItMTYtMzItMzItMTYgMzItMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAzMDR2OTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OHYtOTZjMC0yNi41MSAyMS40OS00OCA0OC00OGg0ODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptLTQ4LTgwYTc5LjU1NyA3OS41NTcgMCAwIDEgMzAuNzc3IDYuMTY1TDQ2Mi4yNSA4NS4zNzRBNDguMDAzIDQ4LjAwMyAwIDAgMCA0MjIuMzExIDY0SDE1My42ODlhNDggNDggMCAwIDAtMzkuOTM4IDIxLjM3NEwxNy4yMjMgMjMwLjE2NUE3OS41NTcgNzkuNTU3IDAgMCAxIDQ4IDIyNGg0ODB6bS00OCA5NmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0tOTYgMGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlQ291Z2hTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTQuMTEsMzE5LjIxYzE5LjU2LTMuODEsMzEuNjItMjUsMjMuMTEtNDQuMjEtMjEtNDcuMTItNDguNS0xNTEuNzUtNzMuMTItMTg2Ljc1QTIwOC4xMywyMDguMTMsMCwwLDAsMjM0LjEsMEgxOTJBMTkwLjY0LDE5MC42NCwwLDAsMCw4NC4xOCwzMy4zTDQ1LjQ2LDMuMzhBMTYsMTYsMCwwLDAsMjMsNi4xOUwzLjM3LDMxLjQ2QTE2LDE2LDAsMCwwLDYuMTgsNTMuOTFMNTk0LjUzLDUwOC42M0ExNiwxNiwwLDAsMCw2MTcsNTA1LjgybDE5LjY0LTI1LjI3YTE2LDE2LDAsMCwwLTIuODEtMjIuNDVaTTMxMy4zOSwyMTAuNDUsMjYzLjYxLDE3MmM1Ljg4LTcuMTQsMTQuNDMtMTIsMjQuMzYtMTJhMzIuMDYsMzIuMDYsMCwwLDEsMzIsMzJDMzIwLDE5OSwzMTcuMjQsMjA1LjE3LDMxMy4zOSwyMTAuNDVaTTYxNiwzMDRhMjQsMjQsMCwxLDAtMjQtMjRBMjQsMjQsMCwwLDAsNjE2LDMwNFptLTY0LDY0YTI0LDI0LDAsMSwwLTI0LTI0QTI0LDI0LDAsMCwwLDU1MiwzNjhaTTI4OCwzODRhMzIsMzIsMCwwLDEsMzItMzJoMTkuNTRMMjAuNzMsMTA1LjU5QTE5MC44NiwxOTAuODYsMCwwLDAsMCwxOTJjMCw1Ni43NSwyNC43NSwxMDcuNjIsNjQsMTQyLjg4VjUxMkgyODhWNDgwaDY0YTY0LDY0LDAsMCwwLDY0LTY0SDMyMEEzMiwzMiwwLDAsMSwyODgsMzg0Wm0zMjgtMjRhMjQsMjQsMCwxLDAsMjQsMjRBMjQsMjQsMCwwLDAsNjE2LDM2MFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkU2lkZUNvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxNiwzMDRhMjQsMjQsMCwxLDAtMjQtMjRBMjQsMjQsMCwwLDAsNjE2LDMwNFpNNTUyLDQxNmEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw1NTIsNDE2Wm0tNjQtNTZhMjQsMjQsMCwxLDAsMjQsMjRBMjQsMjQsMCwwLDAsNDg4LDM2MFpNNjE2LDQ2NGEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw2MTYsNDY0Wm0wLTEwNGEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw2MTYsMzYwWm0tNjQtNDBhMjQsMjQsMCwxLDAsMjQsMjRBMjQsMjQsMCwwLDAsNTUyLDMyMFptLTc0Ljc4LTQ1Yy0yMS00Ny4xMi00OC41LTE1MS43NS03My4xMi0xODYuNzVBMjA4LjEzLDIwOC4xMywwLDAsMCwyMzQuMSwwSDE5MkM4NiwwLDAsODYsMCwxOTJjMCw1Ni43NSwyNC43NSwxMDcuNjIsNjQsMTQyLjg4VjUxMkgyODhWNDgwaDY0YTY0LDY0LDAsMCwwLDY0LTY0SDMyMGEzMiwzMiwwLDAsMSwwLTY0aDk2VjMyMGgzMkEzMiwzMiwwLDAsMCw0NzcuMjIsMjc1Wk0yODgsMjI0YTMyLDMyLDAsMSwxLDMyLTMyQTMyLjA3LDMyLjA3LDAsMCwxLDI4OCwyMjRaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4xNSwxODQuNDJDLTIuMTcsMjQ0LjIxLDIzLDI5OC4wNiw2NCwzMzQuODhWNTEySDIyNFYzMTYuNTFMMy42NywxNTYuMjVBMTgyLjI4LDE4Mi4yOCwwLDAsMCwuMTUsMTg0LjQyWk01MDkuMjIsMjc1Yy0yMS00Ny4xMi00OC41LTE1MS43NS03My4xMi0xODYuNzVBMjA4LjExLDIwOC4xMSwwLDAsMCwyNjYuMTEsMEgyMDBDMTE3LDAsNDIuNDgsNTAuNTcsMTMuMjUsMTIzLjY1TDIzOS4yMSwyODhINTExLjc2QTMxLjM1LDMxLjM1LDAsMCwwLDUwOS4yMiwyNzVaTTMyMCwyMjRhMzIsMzIsMCwxLDEsMzItMzJBMzIuMDcsMzIuMDcsMCwwLDEsMzIwLDIyNFptMTYsMTQ0SDQ5NmwxNi00OEgyNTZWNTEySDQwMS44OGE2NCw2NCwwLDAsMCw2MC43MS00My43Nkw0NjQsNDY0SDMzNmExNiwxNiwwLDAsMSwwLTMySDQ3NC42N2wxMC42Ny0zMkgzMzZhMTYsMTYsMCwwLDEsMC0zMlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkU2lkZVZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiwyNDBhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMjcyLDI0MFptLTY0LTY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDIwOCwxNzZabTMwMS4yLDk5Yy0yMC45My00Ny4xMi00OC40My0xNTEuNzMtNzMuMDctMTg2Ljc1QTIwNy45LDIwNy45LDAsMCwwLDI2Ni4wOSwwSDE5MkM4NiwwLDAsODYsMCwxOTJBMTkxLjIzLDE5MS4yMywwLDAsMCw2NCwzMzQuODFWNTEySDMyMFY0NDhoNjRhNjQsNjQsMCwwLDAsNjQtNjRWMzIwSDQ4MEEzMiwzMiwwLDAsMCw1MDkuMiwyNzVaTTM2OCwyNDBIMzU1Ljg4Yy0yOC41MSwwLTQyLjc5LDM0LjQ3LTIyLjYzLDU0LjYzbDguNTgsOC41N2ExNiwxNiwwLDEsMS0yMi42MywyMi42M2wtOC41Ny04LjU4QzI5MC40NywyOTcuMDksMjU2LDMxMS4zNywyNTYsMzM5Ljg4VjM1MmExNiwxNiwwLDAsMS0zMiwwVjMzOS44OGMwLTI4LjUxLTM0LjQ3LTQyLjc5LTU0LjYzLTIyLjYzbC04LjU3LDguNThhMTYsMTYsMCwwLDEtMjIuNjMtMjIuNjNsOC41OC04LjU3YzIwLjE2LTIwLjE2LDUuODgtNTQuNjMtMjIuNjMtNTQuNjNIMTEyYTE2LDE2LDAsMCwxLDAtMzJoMTIuMTJjMjguNTEsMCw0Mi43OS0zNC40NywyMi42My01NC42M2wtOC41OC04LjU3YTE2LDE2LDAsMCwxLDIyLjYzLTIyLjYzbDguNTcsOC41OGMyMC4xNiwyMC4xNiw1NC42Myw1Ljg4LDU0LjYzLTIyLjYzVjk2YTE2LDE2LDAsMCwxLDMyLDB2MTIuMTJjMCwyOC41MSwzNC40Nyw0Mi43OSw1NC42MywyMi42M2w4LjU3LTguNThhMTYsMTYsMCwwLDEsMjIuNjMsMjIuNjNsLTguNTgsOC41N0MzMTMuMDksMTczLjUzLDMyNy4zNywyMDgsMzU1Ljg4LDIwOEgzNjhhMTYsMTYsMCwwLDEsMCwzMlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NnYzMjBoMzJhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZIMzIwYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMlYyODhIMTYwdjEyOGgzMmExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNkgzMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJWOTZIMzJhMTYgMTYgMCAwIDEtMTYtMTZWNDhhMTYgMTYgMCAwIDEgMTYtMTZoMTYwYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMnYxMjhoMTkyVjk2aC0zMmExNiAxNiAwIDAgMS0xNi0xNlY0OGExNiAxNiAwIDAgMSAxNi0xNmgxNjBhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZHBob25lc0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjg4aC0xNmMtMzUuMzUgMC02NCAyOC43LTY0IDY0LjEydjYzLjc2YzAgMzUuNDEgMjguNjUgNjQuMTIgNjQgNjQuMTJoMTZjMTcuNjcgMCAzMi0xNC4zNiAzMi0zMi4wNlYzMjAuMDZjMC0xNy43MS0xNC4zMy0zMi4wNi0zMi0zMi4wNnptMjA4IDBoLTE2Yy0xNy42NyAwLTMyIDE0LjM1LTMyIDMyLjA2djEyNy44OGMwIDE3LjcgMTQuMzMgMzIuMDYgMzIgMzIuMDZoMTZjMzUuMzUgMCA2NC0yOC43MSA2NC02NC4xMnYtNjMuNzZjMC0zNS40MS0yOC42NS02NC4xMi02NC02NC4xMnpNMjU2IDMyQzExMi45MSAzMiA0LjU3IDE1MS4xMyAwIDI4OHYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg4YzAtMTE0LjY3IDkzLjMzLTIwNy44IDIwOC0yMDcuODIgMTE0LjY3LjAyIDIwOCA5My4xNSAyMDggMjA3LjgydjExMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyODhDNTA3LjQzIDE1MS4xMyAzOTkuMDkgMzIgMjU2IDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRwaG9uZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC41MiAzMiAwIDE0Ni40OTYgMCAyODh2NDhhMzIgMzIgMCAwIDAgMTcuNjg5IDI4LjYyMmwxNC4zODMgNy4xOTFDMzQuMDgzIDQzMS45MDMgODMuNDIxIDQ4MCAxNDQgNDgwaDI0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC0yNGMtMzEuMzQyIDAtNTkuNjcxIDEyLjg3OS04MCAzMy42MjdWMjg4YzAtMTA1Ljg2OSA4Ni4xMzEtMTkyIDE5Mi0xOTJzMTkyIDg2LjEzMSAxOTIgMTkydjEuNjI3QzQyNy42NzEgMjY4Ljg3OSAzOTkuMzQyIDI1NiAzNjggMjU2aC0yNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE3NmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMjRjNjAuNTc5IDAgMTA5LjkxNy00OC4wOTggMTExLjkyOC0xMDguMTg3bDE0LjM4Mi03LjE5MUEzMiAzMiAwIDAgMCA1MTIgMzM2di00OGMwLTE0MS40NzktMTE0LjQ5Ni0yNTYtMjU2LTI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAyMDhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMTZjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2NDhjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgxNmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjIwOHptMTc2IDE0NGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0di00OGMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0aC0xNmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMTJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxNnpNMjU2IDBDMTEzLjE4IDAgNC41OCAxMTguODMgMCAyNTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtMTE0LjY5IDkzLjMxLTIwOCAyMDgtMjA4czIwOCA5My4zMSAyMDggMjA4aC0uMTJjLjA4IDIuNDMuMTIgMTY1LjcyLjEyIDE2NS43MiAwIDIzLjM1LTE4LjkzIDQyLjI4LTQyLjI4IDQyLjI4SDMyMGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC0zMmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OGgxODEuNzJjNDkuODYgMCA5MC4yOC00MC40MiA5MC4yOC05MC4yOFYyNTZDNTA3LjQyIDExOC44MyAzOTguODIgMCAyNTYgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFydEJyb2tlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzMuNyA3My44bC0yLjQtMi41Yy00Ni00Ny0xMTgtNTEuNy0xNjkuNi0xNC44TDMzNiAxNTkuOWwtOTYgNjQgNDggMTI4LTE0NC0xNDQgOTYtNjQtMjguNi04Ni41QzE1OS43IDE5LjYgODcgMjQgNDAuNyA3MS40bC0yLjQgMi40Qy0xMC40IDEyMy42LTEyLjUgMjAyLjkgMzEgMjU2bDIxMi4xIDIxOC42YzcuMSA3LjMgMTguNiA3LjMgMjUuNyAwTDQ4MSAyNTUuOWM0My41LTUzIDQxLjQtMTMyLjMtNy4zLTE4Mi4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2Mi4zIDYyLjZDNDA3LjUgMTUuOSAzMjYgMjQuMyAyNzUuNyA3Ni4yTDI1NiA5Ni41bC0xOS43LTIwLjNDMTg2LjEgMjQuMyAxMDQuNSAxNS45IDQ5LjcgNjIuNmMtNjIuOCA1My42LTY2LjEgMTQ5LjgtOS45IDIwNy45bDE5My41IDE5OS44YzEyLjUgMTIuOSAzMi44IDEyLjkgNDUuMyAwbDE5My41LTE5OS44YzU2LjMtNTguMSA1My0xNTQuMy05LjgtMjA3Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRiZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC4yIDI0My44bC00OS43IDk5LjRjLTYgMTIuMS0yMy40IDExLjctMjguOS0uNmwtNTYuOS0xMjYuMy0zMCA3MS43SDYwLjZsMTgyLjUgMTg2LjVjNy4xIDcuMyAxOC42IDcuMyAyNS43IDBMNDUxLjQgMjg4SDM0Mi4zbC0yMi4xLTQ0LjJ6TTQ3My43IDczLjlsLTIuNC0yLjVjLTUxLjUtNTIuNi0xMzUuOC01Mi42LTE4Ny40IDBMMjU2IDEwMGwtMjcuOS0yOC41Yy01MS41LTUyLjctMTM1LjktNTIuNy0xODcuNCAwbC0yLjQgMi40Qy0xMC40IDEyMy43LTEyLjUgMjAzIDMxIDI1NmgxMDIuNGwzNS45LTg2LjJjNS40LTEyLjkgMjMuNi0xMy4yIDI5LjQtLjRsNTguMiAxMjkuMyA0OS05Ny45YzUuOS0xMS44IDIyLjctMTEuOCAyOC42IDBsMjcuNiA1NS4ySDQ4MWM0My41LTUzIDQxLjQtMTMyLjMtNy4zLTE4Mi4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlbGljb3B0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDM4NGgyNzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMiAwLTEyMy43MS0xMDAuMjktMjI0LTIyNC0yMjRWNjRoMTc2YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE0NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTc2djY0SDExMkw2OC44IDcwLjRDNjUuNzggNjYuMzcgNjEuMDMgNjQgNTYgNjRIMTYuMDFDNS42IDY0LTIuMDQgNzMuNzguNDkgODMuODhMMzIgMTkybDE2MCA2NCA4Ni40IDExNS4yQTMxLjk5MiAzMS45OTIgMCAwIDAgMzA0IDM4NHptMTEyLTE4OC40OUM0NzguNTUgMjA4LjMgNTI4LjAzIDI1Ny40NCA1NDAuNzkgMzIwSDQxNlYxOTUuNTF6bTIxOS4zNyAyNjMuM2wtMjIuMTUtMjIuMmMtNi4yNS02LjI2LTE2LjI0LTYuMS0yMi42NC4wMS03LjA5IDYuNzctMTMuODQgMTEuMjUtMjQuNjQgMTEuMjVIMjQwYy04Ljg0IDAtMTYgNy4xOC0xNiAxNi4wM3YzMi4wNmMwIDguODUgNy4xNiAxNi4wMyAxNiAxNi4wM2gzMjUuOTRjMTQuODggMCAzNS4zLS40NyA2OC40NS0yOS41MiA3LjAyLTYuMTQgNy41Ny0xNy4wNS45OC0yMy42NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaWdobGlnaHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTQ0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ3OS45OEw5OS45MiA1MTJsMzUuNDUtMzUuNDUtNjcuMDQtNjcuMDRMMCA0NzkuOTh6bTEyNC42MS0yNDAuMDFhMzYuNTkyIDM2LjU5MiAwIDAgMC0xMC43OSAzOC4xbDEzLjA1IDQyLjgzLTUwLjkzIDUwLjk0IDk2LjIzIDk2LjIzIDUwLjg2LTUwLjg2IDQyLjc0IDEzLjA4YzEzLjczIDQuMiAyOC42NS0uMDEgMzguMTUtMTAuNzhsMzUuNTUtNDEuNjQtMTczLjM0LTE3My4zNC00MS41MiAzNS40NHptNDAzLjMxLTE2MC43bC02My4yLTYzLjJjLTIwLjQ5LTIwLjQ5LTUzLjM4LTIxLjUyLTc1LjEyLTIuMzVMMTkwLjU1IDE4My42OGwxNjkuNzcgMTY5Ljc4TDUzMC4yNyAxNTQuNGMxOS4xOC0yMS43NCAxOC4xNS01NC42My0yLjM1LTc1LjEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MC45NSA0NzIuMjNjLTQuMjggMTcuMTYgNi4xNCAzNC41MyAyMy4yOCAzOC44MSAyLjYxLjY2IDUuMjIuOTUgNy44Ljk1IDE0LjMzIDAgMjcuMzctOS43IDMxLjAyLTI0LjIzbDI1LjI0LTEwMC45Ny01Mi43OC01Mi43OC0zNC41NiAxMzguMjJ6bTE0Ljg5LTE5Ni4xMkwxMzcgMTE3YzIuMTktOC40Mi0zLjE0LTE2Ljk1LTExLjkyLTE5LjA2LTQzLjg4LTEwLjUyLTg4LjM1IDE1LjA3LTk5LjMyIDU3LjE3TC40OSAyNTMuMjRjLTIuMTkgOC40MiAzLjE0IDE2Ljk1IDExLjkyIDE5LjA2bDYzLjU2IDE1LjI1YzguNzkgMi4xIDE3LjY4LTMuMDIgMTkuODctMTEuNDR6TTM2OCAxNjBoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmgtMzQuNzVsLTQ2Ljc4LTQ2Ljc4QzI0My4zOCAxMzQuMTEgMjI4LjYxIDEyOCAyMTIuOTEgMTI4Yy0yNy4wMiAwLTUwLjQ3IDE4LjMtNTcuMDMgNDQuNTJsLTI2LjkyIDEwNy43MmEzMi4wMTIgMzIuMDEyIDAgMCAwIDguNDIgMzAuMzlMMjI0IDM5Ny4yNVY0ODBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnMzMi0xNC4zMyAzMi0zMnYtODIuNzVjMC0xNy4wOS02LjY2LTMzLjE2LTE4Ljc1LTQ1LjI1bC00Ni44Mi00Ni44MmMuMTUtLjUuNDktLjg5LjYyLTEuNDFsMTkuODktNzkuNTcgMjIuNDMgMjIuNDNjNiA2IDE0LjE0IDkuMzggMjIuNjIgOS4zOGg0OHYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTc2Yy4wMS04Ljg0LTcuMTUtMTYtMTUuOTktMTZ6TTI0MCA5NmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4UzI2Ni41MSAwIDI0MCAwcy00OCAyMS40OS00OCA0OCAyMS40OSA0OCA0OCA0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXBwbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01ODEuMTIgOTYuMmMtMjcuNjctLjE1LTUyLjUgMTcuNTgtNzYuNiAyNi42MkM0ODkuOTggODguMjcgNDU1LjgzIDY0IDQxNiA2NGMtMTEuMjggMC0yMS45NSAyLjMtMzIgNS44OFY1NmMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0aC0xNmMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OC45OEMyODYuMDEgNzkuNTggMjQxLjI0IDY0IDE5MiA2NCA4NS45NiA2NCAwIDEzNS42NCAwIDIyNHYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTcwLjc5QzEyOC4zNSA0MDcuNTcgMTY2LjcyIDQxNiAyMDggNDE2czc5LjY1LTguNDMgMTEyLTIyLjc5VjQ2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg2NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyODhoMTI4djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05Mi4wMmMwLTM0LjA5LTI0Ljc5LTY3LjU5LTU4Ljg4LTY3Ljc4ek00NDggMTc2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTUuNTMxYy4yNTMgMTM2LjY0LTExMS4xOCAyNDguMzcyLTI0Ny44MiAyNDguNDY4LTU5LjAxNS4wNDItMTEzLjIyMy0yMC41My0xNTUuODIyLTU0LjkxMS0xMS4wNzctOC45NC0xMS45MDUtMjUuNTQxLTEuODM5LTM1LjYwN2wxMS4yNjctMTEuMjY3YzguNjA5LTguNjA5IDIyLjM1My05LjU1MSAzMS44OTEtMS45ODRDMTczLjA2MiA0MjUuMTM1IDIxMi43ODEgNDQwIDI1NiA0NDBjMTAxLjcwNSAwIDE4NC04Mi4zMTEgMTg0LTE4NCAwLTEwMS43MDUtODIuMzExLTE4NC0xODQtMTg0LTQ4LjgxNCAwLTkzLjE0OSAxOC45NjktMTI2LjA2OCA0OS45MzJsNTAuNzU0IDUwLjc1NGMxMC4wOCAxMC4wOCAyLjk0MSAyNy4zMTQtMTEuMzEzIDI3LjMxNEgyNGMtOC44MzcgMC0xNi03LjE2My0xNi0xNlYzOC42MjdjMC0xNC4yNTQgMTcuMjM0LTIxLjM5MyAyNy4zMTQtMTEuMzE0bDQ5LjM3MiA0OS4zNzJDMTI5LjIwOSAzNC4xMzYgMTg5LjU1MiA4IDI1NiA4YzEzNi44MSAwIDI0Ny43NDcgMTEwLjc4IDI0OCAyNDcuNTMxem0tMTgwLjkxMiA3OC43ODRsOS44MjMtMTIuNjNjOC4xMzgtMTAuNDYzIDYuMjUzLTI1LjU0Mi00LjIxLTMzLjY3OUwyODggMjU2LjM0OVYxNTJjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC0xNmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djEzNS42NTFsNjUuNDA5IDUwLjg3NGMxMC40NjMgOC4xMzcgMjUuNTQxIDYuMjUzIDMzLjY3OS00LjIxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvY2tleVB1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNjBjMC01MyAxMTQuNi05NiAyNTYtOTZzMjU2IDQzIDI1NiA5Ni0xMTQuNiA5Ni0yNTYgOTZTMCAyMTMgMCAxNjB6bTAgODIuMlYzNTJjMCA1MyAxMTQuNiA5NiAyNTYgOTZzMjU2LTQzIDI1Ni05NlYyNDIuMmMtMTEzLjQgODIuMy0zOTguNSA4Mi40LTUxMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvbGx5QmVycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDE5MmMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OC00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTExMi00OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDgtNDggMjEuNS00OCA0OHptLTMyLTQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzI1MC41IDAgMjI0IDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptLTE2LjIgMTM5LjFjLjEtMTIuNC0xMy4xLTIwLjEtMjMuOC0xMy43LTM0LjMgMjAuMy03MS40IDMyLjctMTA4LjcgMzYuMi05LjcuOS0xNS42IDExLjMtMTEuNiAyMC4yIDYuMiAxMy45IDExLjEgMjguNiAxNC43IDQzLjggMy42IDE1LjItNS4zIDMwLjYtMjAuMiAzNS4xLTE0LjkgNC41LTMwLjEgNy42LTQ1LjMgOS4xLTkuNyAxLTE1LjcgMTEuMy0xMS43IDIwLjIgMTUgMzIuOCAyMi45IDY5LjUgMjMgMTA3LjcuMSAxNC40IDE1LjIgMjMuMSAyNy42IDE2IDMzLjItMTkgNjguOS0zMC41IDEwNC44LTMzLjkgOS43LS45IDE1LjYtMTEuMyAxMS42LTIwLjItNi4yLTEzLjktMTEuMS0yOC42LTE0LjctNDMuOC0zLjYtMTUuMiA1LjMtMzAuNiAyMC4yLTM1LjEgMTQuOS00LjUgMzAuMS03LjYgNDUuMy05LjEgOS43LTEgMTUuNy0xMS4zIDExLjctMjAuMi0xNS41LTM0LjItMjMuMy03Mi41LTIyLjktMTEyLjN6TTQzNSAzNjUuNmMtMTUuMi0xLjYtMzAuMy00LjctNDUuMy05LjEtMTQuOS00LjUtMjMuOC0xOS45LTIwLjItMzUuMSAzLjYtMTUuMiA4LjUtMjkuOCAxNC43LTQzLjggNC04LjktMS45LTE5LjMtMTEuNi0yMC4yLTM3LjMtMy41LTc0LjQtMTUuOS0xMDguNy0zNi4yLTEwLjctNi4zLTIzLjkgMS40LTIzLjggMTMuNyAwIDEuNi0uMiAzLjItLjIgNC45LjIgMzMuMyA3IDY1LjcgMTkuOSA5NCA1LjcgMTIuNCA1LjIgMjYuNi0uNiAzOC45IDQuOSAxLjIgOS45IDIuMiAxNC44IDMuNyAxNC45IDQuNSAyMy44IDE5LjkgMjAuMiAzNS4xLTMuNiAxNS4yLTguNSAyOS44LTE0LjcgNDMuOC00IDguOSAxLjkgMTkuMyAxMS42IDIwLjIgMzUuOSAzLjQgNzEuNiAxNC45IDEwNC44IDMzLjkgMTIuNSA3LjEgMjcuNi0xLjYgMjcuNi0xNiAuMi0zOC4yIDgtNzUgMjMtMTA3LjcgNC4zLTguNy0xLjgtMTkuMS0xMS41LTIwLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODAuMzcgMTQ4LjI2TDk2IDMwMC4xMVY0NjRhMTYgMTYgMCAwIDAgMTYgMTZsMTEyLjA2LS4yOWExNiAxNiAwIDAgMCAxNS45Mi0xNlYzNjhhMTYgMTYgMCAwIDEgMTYtMTZoNjRhMTYgMTYgMCAwIDEgMTYgMTZ2OTUuNjRhMTYgMTYgMCAwIDAgMTYgMTYuMDVMNDY0IDQ4MGExNiAxNiAwIDAgMCAxNi0xNlYzMDBMMjk1LjY3IDE0OC4yNmExMi4xOSAxMi4xOSAwIDAgMC0xNS4zIDB6TTU3MS42IDI1MS40N0w0ODggMTgyLjU2VjQ0LjA1YTEyIDEyIDAgMCAwLTEyLTEyaC01NmExMiAxMiAwIDAgMC0xMiAxMnY3Mi42MUwzMTguNDcgNDNhNDggNDggMCAwIDAtNjEgMEw0LjM0IDI1MS40N2ExMiAxMiAwIDAgMC0xLjYgMTYuOWwyNS41IDMxQTEyIDEyIDAgMCAwIDQ1LjE1IDMwMWwyMzUuMjItMTkzLjc0YTEyLjE5IDEyLjE5IDAgMCAxIDE1LjMgMEw1MzAuOSAzMDFhMTIgMTIgMCAwIDAgMTYuOS0xLjZsMjUuNS0zMWExMiAxMiAwIDAgMC0xLjctMTYuOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9yc2VIZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwOS44IDMzMi41bC02OS45LTE2NC4zYy0xNC45LTQxLjItNTAuNC03MS05My03OS4yIDE4LTEwLjYgNDYuMy0zNS45IDM0LjItODIuMy0xLjMtNS03LjEtNy45LTEyLTYuMUwxNjYuOSA3Ni4zQzM1LjkgMTIzLjQgMCAyMzguOSAwIDM5OC44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMzYuMmMyMy44IDAgMzkuMy0yNSAyOC42LTQ2LjNMMjU2IDM4NHYtLjdjLTQ1LjYtMy41LTg0LjYtMzAuNy0xMDQuMy02OS42LTEuNi0zLjEtLjktNi45IDEuNi05LjNsMTIuMS0xMi4xYzMuOS0zLjkgMTAuNi0yLjcgMTIuOSAyLjQgMTQuOCAzMy43IDQ4LjIgNTcuNCA4Ny40IDU3LjQgMTcuMiAwIDMzLTUuMSA0Ni44LTEzLjJsNDYgNjMuOWM2IDguNCAxNS43IDEzLjMgMjYgMTMuM2g1MC4zYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDQ1LjMtMzkuOGM4LjktOS4xIDExLjctMjIuNiA3LjEtMzQuNHpNMzI4IDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9yc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjkyIDc2LjZjLS4wMS04LjEzLTMuMDItMTUuODctOC41OC0yMS44LTMuNzgtNC4wMy04LjU4LTkuMTItMTMuNjktMTQuNSAxMS4wNi02Ljg0IDE5LjUtMTcuNDkgMjIuMTgtMzAuNjZDNTc2Ljg1IDQuNjggNTcyLjk2IDAgNTY3LjkgMEg0NDcuOTJjLTcwLjY5IDAtMTI4IDU3LjMxLTEyOCAxMjhIMTYwYy0yOC44NCAwLTU0LjQgMTIuOTgtNzIgMzMuMTFWMTYwYy00OC41MyAwLTg4IDM5LjQ3LTg4IDg4djU2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di01NmMwLTEzLjIyIDYuODctMjQuMzkgMTYuNzgtMzEuNjgtLjIxIDIuNTgtLjc4IDUuMDUtLjc4IDcuNjggMCAyNy42NCAxMS44NCA1Mi4zNiAzMC41NCA2OS44OGwtMjUuNzIgNjguNmE2My45NDUgNjMuOTQ1IDAgMCAwLTIuMTYgMzcuOTlsMjQuODUgOTkuNDFBMTUuOTgyIDE1Ljk4MiAwIDAgMCAxMDcuMDIgNTEyaDY1Ljk2YzEwLjQxIDAgMTguMDUtOS43OCAxNS41Mi0xOS44OGwtMjYuMzEtMTA1LjI2IDIzLjg0LTYzLjU5TDMyMCAzNDUuNlY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzE4LjIyYzE5Ljc0LTIwLjE5IDMyLTQ3Ljc1IDMyLTc4LjIyIDAtLjIyLS4wNy0uNDItLjA4LS42NFYxMzYuODlsMTYgNy4xMSAxOC45IDM3LjdjNy40NSAxNC44NyAyNS4wNSAyMS41NSA0MC40OSAxNS4zN2wzMi41NS0xMy4wMmEzMS45OTcgMzEuOTk3IDAgMCAwIDIwLjEyLTI5Ljc0bC0uMDYtNzcuNzF6bS02NCAxOS40Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgOTZINDE2VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2OGMwIDguOCA3LjIgMTYgMTYgMTZoNTQ0YzguOCAwIDE2LTcuMiAxNi0xNlYxMjhjMC0xNy43LTE0LjMtMzItMzItMzJ6TTE2MCA0MzZjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTEyOGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTE2MCAxMjhjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTEyOGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTE2LTE3MGMwIDMuMy0yLjcgNi02IDZoLTI2djI2YzAgMy4zLTIuNyA2LTYgNmgtMjBjLTMuMyAwLTYtMi43LTYtNnYtMjZoLTI2Yy0zLjMgMC02LTIuNy02LTZ2LTIwYzAtMy4zIDIuNy02IDYtNmgyNlY4NmMwLTMuMyAyLjctNiA2LTZoMjBjMy4zIDAgNiAyLjcgNiA2djI2aDI2YzMuMyAwIDYgMi43IDYgNnYyMHptMTQ0IDI5OGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtMTI4YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbFN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZzMTE0LjYgMjU2IDI1NiAyNTYgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMHptMTEyIDM3NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTg4aC05NnY4OGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMTM2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2ODhoOTZ2LTg4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvc3BpdGFsVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMzIwYTk2IDk2IDAgMSAwLTk2LTk2IDk2IDk2IDAgMCAwIDk2IDk2em00OCAzMmEyMi44OCAyMi44OCAwIDAgMC03LjA2IDEuMDkgMTI0Ljc2IDEyNC43NiAwIDAgMS04MS44OSAwQTIyLjgyIDIyLjgyIDAgMCAwIDQzMiAzNTJhMTEyIDExMiAwIDAgMC0xMTIgMTEyLjYyYy4xNCAyNi4yNiAyMS43MyA0Ny4zOCA0OCA0Ny4zOGgyMjRjMjYuMjcgMCA0Ny44Ni0yMS4xMiA0OC00Ny4zOEExMTIgMTEyIDAgMCAwIDUyOCAzNTJ6bS0xOTguMDkgMTAuNDVBMTQ1LjE5IDE0NS4xOSAwIDAgMSAzNTIgMzQ0LjYyVjEyOGEzMiAzMiAwIDAgMC0zMi0zMmgtMzJWMzJhMzIgMzIgMCAwIDAtMzItMzJIOTZhMzIgMzIgMCAwIDAtMzIgMzJ2NjRIMzJhMzIgMzIgMCAwIDAtMzIgMzJ2MzY4YTE2IDE2IDAgMCAwIDE2IDE2aDI4OC4zMUE3OC42MiA3OC42MiAwIDAgMSAyODggNDY0Ljc5YTE0My4wNiAxNDMuMDYgMCAwIDEgNDEuOTEtMTAyLjM0ek0xNDQgNDA0YTEyIDEyIDAgMCAxLTEyIDEySDkyYTEyIDEyIDAgMCAxLTEyLTEydi00MGExMiAxMiAwIDAgMSAxMi0xMmg0MGExMiAxMiAwIDAgMSAxMiAxMnptMC0xMjhhMTIgMTIgMCAwIDEtMTIgMTJIOTJhMTIgMTIgMCAwIDEtMTItMTJ2LTQwYTEyIDEyIDAgMCAxIDEyLTEyaDQwYTEyIDEyIDAgMCAxIDEyIDEyem00OC0xMjJhNiA2IDAgMCAxLTYgNmgtMjBhNiA2IDAgMCAxLTYtNnYtMjZoLTI2YTYgNiAwIDAgMS02LTZ2LTIwYTYgNiAwIDAgMSA2LTZoMjZWNzBhNiA2IDAgMCAxIDYtNmgyMGE2IDYgMCAwIDEgNiA2djI2aDI2YTYgNiAwIDAgMSA2IDZ2MjBhNiA2IDAgMCAxLTYgNmgtMjZ6bTgwIDI1MGExMiAxMiAwIDAgMS0xMiAxMmgtNDBhMTIgMTIgMCAwIDEtMTItMTJ2LTQwYTEyIDEyIDAgMCAxIDEyLTEyaDQwYTEyIDEyIDAgMCAxIDEyIDEyem0wLTEyOGExMiAxMiAwIDAgMS0xMiAxMmgtNDBhMTIgMTIgMCAwIDEtMTItMTJ2LTQwYTEyIDEyIDAgMCAxIDEyLTEyaDQwYTEyIDEyIDAgMCAxIDEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvc3BpdGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0OTJ2MjBIMHYtMjBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgyMFYxMjBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDg4VjI0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djcyaDg4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYzNjBoMjBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnpNMzA4IDE5MmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyem0tMTY4IDY0aDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ6bTEwNCAxMjhoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjg0aDY0di04NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyem02NC05NmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyem0tMTE2IDEyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDB6TTE4MiA5NmgyNnYyNmE2IDYgMCAwIDAgNiA2aDIwYTYgNiAwIDAgMCA2LTZWOTZoMjZhNiA2IDAgMCAwIDYtNlY3MGE2IDYgMCAwIDAtNi02aC0yNlYzOGE2IDYgMCAwIDAtNi02aC0yMGE2IDYgMCAwIDAtNiA2djI2aC0yNmE2IDYgMCAwIDAtNiA2djIwYTYgNiAwIDAgMCA2IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90VHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNC4yMSAxNzcuNjVjMS4wMiA4LjIxIDcuNzUgMTQuMzUgMTUuNzUgMTQuMzVoMTYuMTJjOS41MSAwIDE3LjA4LTguNTcgMTYtMTguMzUtNC4zNC0zOS4xMS0yMi40LTc0LjUzLTUwLjEzLTk3LjE2LTE3LjM3LTE0LjE3LTI4LjgyLTM2Ljc1LTMxLjk4LTYyLjE1QzM3OC45NiA2LjE0IDM3Mi4yMiAwIDM2NC4yMyAwaC0xNi4xMmMtOS41MSAwLTE3LjA5IDguNTctMTYgMTguMzUgNC4zNCAzOS4xMSAyMi40IDc0LjUzIDUwLjEzIDk3LjE2IDE3LjM2IDE0LjE3IDI4LjgyIDM2Ljc1IDMxLjk3IDYyLjE0em0tMTA4IDBjMS4wMiA4LjIxIDcuNzUgMTQuMzUgMTUuNzUgMTQuMzVoMTYuMTJjOS41MSAwIDE3LjA4LTguNTcgMTYtMTguMzUtNC4zNC0zOS4xMS0yMi40LTc0LjUzLTUwLjEzLTk3LjE2LTE3LjM3LTE0LjE3LTI4LjgyLTM2Ljc1LTMxLjk4LTYyLjE1QzI3MC45NiA2LjE0IDI2NC4yMiAwIDI1Ni4yMyAwaC0xNi4xMmMtOS41MSAwLTE3LjA5IDguNTctMTYgMTguMzUgNC4zNCAzOS4xMSAyMi40IDc0LjUzIDUwLjEzIDk3LjE2IDE3LjM2IDE0LjE3IDI4LjgyIDM2Ljc1IDMxLjk3IDYyLjE0ek00ODAgMjU2SDI1NmwtMTEwLjkzLTgzLjJhNjMuOTkgNjMuOTkgMCAwIDAtMzguNC0xMi44SDY0Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djIyNGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM4NGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0VjI4OGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xMjggNDQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LThWMzI4YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djExMnptOTYgMGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04VjMyOGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxMTJ6bTk2IDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOFYzMjhjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTEyem05NiAwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LThWMzI4YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djExMnpNNjQgMTI4YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRTOTkuMzUgMCA2NCAwIDAgMjguNjUgMCA2NHMyOC42NSA2NCA2NCA2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3Rkb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4LjU2IDIzLjQ0YTgwIDgwIDAgMCAwLTExMy4xMiAwbC0zNTIgMzUyYTgwIDgwIDAgMSAwIDExMy4xMiAxMTMuMTJsMzUyLTM1MmE4MCA4MCAwIDAgMCAwLTExMy4xMnptLTQ5LjkzIDk1LjE5Yy0xOS42IDE5LjU5LTM3LjUyIDIyLjY3LTUxLjkzIDI1LjE0QzM3My43NiAxNDYgMzY0LjQgMTQ3LjYgMzUyIDE2MHMtMTQgMjEuNzYtMTYuMjMgMzQuNzFjLTIuNDggMTQuNC01LjU1IDMyLjMzLTI1LjE1IDUxLjkycy0zNy41MiAyMi42Ny01MS45MiAyNS4xNUMyNDUuNzUgMjc0IDIzNi40IDI3NS42IDIyNCAyODhzLTE0IDIxLjc1LTE2LjIzIDM0LjdjLTIuNDcgMTQuNC01LjU0IDMyLjMzLTI1LjE0IDUxLjkycy0zNy41MyAyMi42OC01MS45MyAyNS4xNUMxMTcuNzYgNDAyIDEwOC40IDQwMy42IDk2IDQxNmExNiAxNiAwIDAgMS0yMi42My0yMi42M2MxOS42LTE5LjU5IDM3LjUyLTIyLjY3IDUxLjkyLTI1LjE0IDEzLTIuMjIgMjIuMy0zLjgyIDM0LjcxLTE2LjIzczE0LTIxLjc1IDE2LjIyLTM0LjdjMi40OC0xNC40IDUuNTUtMzIuMzMgMjUuMTUtNTEuOTJzMzcuNTItMjIuNjcgNTEuOTItMjUuMTRjMTMtMi4yMiAyMi4zLTMuODMgMzQuNy0xNi4yM3MxNC0yMS43NiAxNi4yNC0zNC43MWMyLjQ3LTE0LjQgNS41NC0zMi4zMyAyNS4xNC01MS45MnMzNy41Mi0yMi42OCA1MS45Mi0yNS4xNUMzOTQuMjQgMTEwIDQwMy41OSAxMDguNDEgNDE2IDk2YTE2IDE2IDAgMCAxIDIyLjYzIDIyLjYzek0zMS40NCAzMjIuMThMMzIyLjE4IDMxLjQ0bC0xMS41NC0xMS41NWMtMjUtMjUtNjMuODUtMjYuNjYtODYuNzktMy43MkwxNi4xNyAyMjMuODVjLTIyLjk0IDIyLjk0LTIxLjI3IDYxLjc5IDMuNzIgODYuNzh6bTQ0OS4xMi0xMzIuMzZMMTg5LjgyIDQ4MC41NmwxMS41NCAxMS41NWMyNSAyNSA2My44NSAyNi42NiA4Ni43OSAzLjcybDIwNy42OC0yMDcuNjhjMjIuOTQtMjIuOTQgMjEuMjctNjEuNzktMy43Mi04Ni43OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3RlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAgNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiAwIDAgNy4xNiAwIDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE1Ljk4djM4NEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMjQwdi04MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djgwaDI0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2VjY0aDE2em0tMzA0IDQ0LjhjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjR6bTAgOTZjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjR6bS0xMjgtOTZjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjR6TTE3OS4yIDI1NmgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOHpNMTkyIDM4NGMwLTUzLjAyIDQyLjk4LTk2IDk2LTk2czk2IDQyLjk4IDk2IDk2SDE5MnptMjU2LTE0MC44YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40em0wLTk2YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzc0VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAgNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCAwIDkwLjk2NSA1MS4wMTYgMTY3LjczNCAxMjAuODQyIDE5MkM3NS4wMTYgMjgwLjI2NiAyNCAzNTcuMDM1IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQgMC05MC45NjUtNTEuMDE2LTE2Ny43MzQtMTIwLjg0Mi0xOTJDMzA4Ljk4NCAyMzEuNzM0IDM2MCAxNTQuOTY1IDM2MCA2NHpNMTkyIDIwOGMtNTcuNzg3IDAtMTA0LTY2LjUxOC0xMDQtMTQ0aDIwOGMwIDc3Ljk0NS00Ni41MSAxNDQtMTA0IDE0NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VyZ2xhc3NIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCAwSDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0IDAgOTAuOTY1IDUxLjAxNiAxNjcuNzM0IDEyMC44NDIgMTkyQzc1LjAxNiAyODAuMjY2IDI0IDM1Ny4wMzUgMjQgNDQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNCAwLTkwLjk2NS01MS4wMTYtMTY3LjczNC0xMjAuODQyLTE5MkMzMDguOTg0IDIzMS43MzQgMzYwIDE1NC45NjUgMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6bS03NS4wNzggMzg0SDk5LjA4YzE3LjA1OS00Ni43OTcgNTIuMDk2LTgwIDkyLjkyLTgwIDQwLjgyMSAwIDc1Ljg2MiAzMy4xOTYgOTIuOTIyIDgwem0uMDE5LTI1Nkg5OS4wNzhDOTEuOTg4IDEwOC41NDggODggODYuNzQ4IDg4IDY0aDIwOGMwIDIyLjgwNS0zLjk4NyA0NC41ODctMTEuMDU5IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzc1N0YXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCAwSDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0IDAgOTAuOTY1IDUxLjAxNiAxNjcuNzM0IDEyMC44NDIgMTkyQzc1LjAxNiAyODAuMjY2IDI0IDM1Ny4wMzUgMjQgNDQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNCAwLTkwLjk2NS01MS4wMTYtMTY3LjczNC0xMjAuODQyLTE5MkMzMDguOTg0IDIzMS43MzQgMzYwIDE1NC45NjUgMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6bS02NCA0NDhIODhjMC03Ny40NTggNDYuMjA0LTE0NCAxMDQtMTQ0IDU3Ljc4NiAwIDEwNCA2Ni41MTcgMTA0IDE0NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VyZ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjQgMCA5MC45NjUgNTEuMDE2IDE2Ny43MzQgMTIwLjg0MiAxOTJDNzUuMDE2IDI4MC4yNjYgMjQgMzU3LjAzNSAyNCA0NDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0IDAtOTAuOTY1LTUxLjAxNi0xNjcuNzM0LTEyMC44NDItMTkyQzMwOC45ODQgMjMxLjczNCAzNjAgMTU0Ljk2NSAzNjAgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VEYW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDExNC45Nkw2OS40NyAzMDcuNzFjLTEuNjIgMS40Ni0zLjY5IDIuMTQtNS40NyAzLjM1VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNDkuMjNMMTkyIDQzOS4xOWwxMDQuMTEtNjQtNjAuMTYtMTE5LjIyTDM4NCAzOTIuNzVsLTEwNC4xMSA2NEwzMTkuODEgNTEySDQ5NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzMTEuMWMtMS43LTEuMTYtMy43Mi0xLjgyLTUuMjYtMy4yTDI4OCAxMTQuOTZ6bTI4Mi42OSAxMjEuMzJMNTEyIDE4NC40NVY0OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtNjRjLTguODQgMC0xNiA3LjE2LTE2IDE2djUxLjY5TDMxNC43NSAxMC4zMUMzMDcuMTIgMy40NSAyOTcuNTYuMDEgMjg4IDBzLTE5LjEgMy40MS0yNi43IDEwLjI3TDUuMzEgMjM2LjI4Yy02LjU3IDUuOTEtNy4xMiAxNi4wMi0xLjIxIDIyLjZsMjEuNCAyMy44MmM1LjkgNi41NyAxNi4wMiA3LjEyIDIyLjYgMS4yMUwyNzcuNDIgODEuNjNjNi4wNS01LjMzIDE1LjEyLTUuMzMgMjEuMTcgMEw1MjcuOTEgMjgzLjljNi41NyA1LjkgMTYuNjkgNS4zNiAyMi42LTEuMjFsMjEuNC0yMy44MmM1LjktNi41NyA1LjM2LTE2LjY5LTEuMjItMjIuNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3MC42OSwyMzYuMjcsNTEyLDE4NC40NFY0OGExNiwxNiwwLDAsMC0xNi0xNkg0MzJhMTYsMTYsMCwwLDAtMTYsMTZWOTkuNjdMMzE0Ljc4LDEwLjNDMzA4LjUsNC42MSwyOTYuNTMsMCwyODgsMHMtMjAuNDYsNC42MS0yNi43NCwxMC4zbC0yNTYsMjI2QTE4LjI3LDE4LjI3LDAsMCwwLDAsMjQ4LjJhMTguNjQsMTguNjQsMCwwLDAsNC4wOSwxMC43MUwyNS41LDI4Mi43YTIxLjE0LDIxLjE0LDAsMCwwLDEyLDUuMywyMS42NywyMS42NywwLDAsMCwxMC42OS00LjExbDE1LjktMTRWNDgwYTMyLDMyLDAsMCwwLDMyLDMySDQ4MGEzMiwzMiwwLDAsMCwzMi0zMlYyNjkuODhsMTUuOTEsMTRBMjEuOTQsMjEuOTQsMCwwLDAsNTM4LjYzLDI4OGEyMC44OSwyMC44OSwwLDAsMCwxMS44Ny01LjMxbDIxLjQxLTIzLjgxQTIxLjY0LDIxLjY0LDAsMCwwLDU3NiwyNDguMTksMjEsMjEsMCwwLDAsNTcwLjY5LDIzNi4yN1pNMjg4LDE3NmE2NCw2NCwwLDEsMS02NCw2NEE2NCw2NCwwLDAsMSwyODgsMTc2Wk00MDAsNDQ4SDE3NmExNiwxNiwwLDAsMS0xNi0xNiw5Niw5NiwwLDAsMSw5Ni05Nmg2NGE5Niw5NiwwLDAsMSw5Niw5NkExNiwxNiwwLDAsMSw0MDAsNDQ4WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhyeXZuaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDI0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQxLjg2YzEzLjQxLTI4LjYzIDEzLjc0LTYzLjMzLTQuMTMtOTQuMDVDMzAzLjM0IDQ5Ljg0IDI2Ny4xIDMyIDIyOS45NiAzMmgtNzguODJjLTI0LjMyIDAtNDcuODYgOC41My02Ni41NCAyNC4wOUw3Mi44MyA2NS45Yy0xMC4xOCA4LjQ5LTExLjU2IDIzLjYyLTMuMDcgMzMuOGwyMC40OSAyNC41OWM4LjQ5IDEwLjE5IDIzLjYyIDExLjU2IDMzLjgxIDMuMDdsMTEuNzMtOS43OGM0LjMyLTMuNiA5Ljc3LTUuNTcgMTUuMzktNS41N2g4My42MmMxMS42OSAwIDIxLjIgOS41MiAyMS4yIDIxLjIgMCA1LjkxLTIuNDggMTEuNTgtNi44MSAxNS41OEwyMTkuNyAxNzZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDEzNC4zN2wtMzQuNjcgMzJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxLjg2Yy0xMy40MSAyOC42My0xMy43NCA2My4zMyA0LjEzIDk0LjA1QzgwLjY2IDQ2Mi4xNSAxMTYuOSA0ODAgMTU0LjA0IDQ4MGg3OC44MmMyNC4zMiAwIDQ3Ljg2LTguNTMgNjYuNTQtMjQuMDlsMTEuNzctOS44MWMxMC4xOC04LjQ5IDExLjU2LTIzLjYyIDMuMDctMzMuOGwtMjAuNDktMjQuNTljLTguNDktMTAuMTktMjMuNjItMTEuNTYtMzMuODEtMy4wN2wtMTEuNzUgOS44YTIzLjk5MiAyMy45OTIgMCAwIDEtMTUuMzYgNS41NkgxNDkuMmMtMTEuNjkgMC0yMS4yLTkuNTItMjEuMi0yMS4yIDAtNS45MSAyLjQ4LTExLjU4IDYuODEtMTUuNThMMTY0LjMgMzM2SDM2OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMjMzLjYzbDM0LjY3LTMySDM2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJQ3Vyc29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1Mi4wNDhWMTIuMDY1QzI1NiA1LjQ5NiAyNTAuNzI2LjE0OCAyNDQuMTU4LjA2NiAyMTEuNjIxLS4zNDQgMTY2LjQ2OS4wMTEgMTI4IDM3Ljk1OSA5MC4yNjYuNzM2IDQ2Ljk3OS0uMTE0IDExLjkxMy4xMTQgNS4zMTguMTU3IDAgNS41MTkgMCAxMi4xMTR2MzkuNjQ1YzAgNi42ODcgNS40NTggMTIuMDc4IDEyLjE0NSAxMS45OThDMzguMTExIDYzLjQ0NyA5NiA2Ny4yNDMgOTYgMTEyLjE4MlYyMjRINjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzNnYxMTJjMCA0NC45MzItNTYuMDc1IDQ4LjAzMS04My45NSA0Ny45NTlDNS40MDQgNDQ3Ljk0MiAwIDQ1My4zMDYgMCA0NTkuOTUydjM5Ljk4M2MwIDYuNTY5IDUuMjc0IDExLjkxNyAxMS44NDIgMTEuOTk5IDMyLjUzNy40MDkgNzcuNjg5LjA1NCAxMTYuMTU4LTM3Ljg5NCAzNy43MzQgMzcuMjIzIDgxLjAyMSAzOC4wNzMgMTE2LjA4NyAzNy44NDUgNi41OTUtLjA0MyAxMS45MTMtNS40MDUgMTEuOTEzLTEyVjQ2MC4yNGMwLTYuNjg3LTUuNDU4LTEyLjA3OC0xMi4xNDUtMTEuOTk4QzIxNy44ODkgNDQ4LjU1MyAxNjAgNDQ0LjkzOSAxNjAgNDAwVjI4OGgzNmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0zNlYxMTIuMTgyYzAtNDQuOTMyIDU2LjA3NS00OC4yMTMgODMuOTUtNDguMTQyIDYuNjQ2LjAxOCAxMi4wNS01LjM0NiAxMi4wNS0xMS45OTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNlQ3JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDE2MGgtLjk0YTE0NCAxNDQgMCAxIDAtMjg2LjEyIDBIODBhNDggNDggMCAwIDAgMCA5NmgyODhhNDggNDggMCAwIDAgMC05NnpNMTk1LjM4IDQ5My42OWEzMS41MiAzMS41MiAwIDAgMCA1Ny4yNCAwTDM1MiAyODhIOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNpY2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEuNCAzNy45QzUxNS4xIDE4LjIgNTAwIDAgNDgwIDBIMzJDMTAuNiAwLTQuOCAyMC43IDEuNCA0MS4ybDg3LjEgMjczLjRjMi41IDcuMiAxMi43IDcuMiAxNS4xIDBMMTQwIDE5MC41bDQ0LjIgMTg3LjNjMS45IDguMyAxMy43IDguMyAxNS42IDBsNDYuNS0xOTYuOSAzNC4xIDEzMy40YzIuMyA3LjYgMTMgNy42IDE1LjMgMGw0NS44LTE3Mi41IDY2LjcgMzYzLjhjMS43IDguNiAxNCA4LjYgMTUuNyAwbDg3LjUtNDY3Ljd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE2LjY1IDIxOS4zNWExNS42OCAxNS42OCAwIDAgMCAyMi42NSAwbDk2Ljc1LTk5LjgzYzI4LjE1LTI5IDI2LjUtNzcuMS00LjkxLTEwMy44OEMyMDMuNzUtNy43IDE2My0zLjUgMTM3Ljg2IDIyLjQ0TDEyOCAzMi41OGwtOS44NS0xMC4xNEM5My4wNS0zLjUgNTIuMjUtNy43IDI0Ljg2IDE1LjY0Yy0zMS40MSAyNi43OC0zMyA3NC44NS01IDEwMy44OHptMTQzLjkyIDEwMC40OWgtNDhsLTcuMDgtMTQuMjRhMjcuMzkgMjcuMzkgMCAwIDAtMjUuNjYtMTcuNzhoLTcxLjcxYTI3LjM5IDI3LjM5IDAgMCAwLTI1LjY2IDE3Ljc4bC03IDE0LjI0aC00OEEyNy40NSAyNy40NSAwIDAgMCAwIDM0Ny4zdjEzNy4yNUEyNy40NCAyNy40NCAwIDAgMCAyNy40MyA1MTJoMjMzLjE0QTI3LjQ1IDI3LjQ1IDAgMCAwIDI4OCA0ODQuNTVWMzQ3LjNhMjcuNDUgMjcuNDUgMCAwIDAtMjcuNDMtMjcuNDZ6TTE0NCA0NjhhNTIgNTIgMCAxIDEgNTItNTIgNTIgNTIgMCAwIDEtNTIgNTJ6bTM1NS40LTExNS45aC02MC41OGwyMi4zNi01MC43NWMyLjEtNi42NS0zLjkzLTEzLjIxLTEyLjE4LTEzLjIxaC03NS41OWMtNi4zIDAtMTEuNjYgMy45LTEyLjUgOS4xbC0xNi44IDEwNi45M2MtMSA2LjMgNC44OCAxMS44OSAxMi41IDExLjg5aDYyLjMxbC0yNC4yIDgzYy0xLjg5IDYuNjUgNC4yIDEyLjkgMTIuMjMgMTIuOWExMy4yNiAxMy4yNiAwIDAgMCAxMC45Mi01LjI1bDkyLjQtMTM4LjkxYzQuODgtNi45MS0xLjE2LTE1LjctMTAuODctMTUuN3pNNDc4LjA4LjMzTDMyOS41MSAyMy4xN0MzMTQuODcgMjUuNDIgMzA0IDM4LjkyIDMwNCA1NC44M1YxNjEuNmE4My4yNSA4My4yNSAwIDAgMC0xNi0xLjdjLTM1LjM1IDAtNjQgMjEuNDgtNjQgNDhzMjguNjUgNDggNjQgNDhjMzUuMiAwIDYzLjczLTIxLjMyIDY0LTQ3LjY2Vjk5LjY2bDExMi0xNy4yMnY0Ny4xOGE4My4yNSA4My4yNSAwIDAgMC0xNi0xLjdjLTM1LjM1IDAtNjQgMjEuNDgtNjQgNDhzMjguNjUgNDggNjQgNDhjMzUuMiAwIDYzLjczLTIxLjMyIDY0LTQ3LjY2VjMyYzAtMTkuNDgtMTYtMzQuNDItMzMuOTItMzEuNjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRCYWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQ0IDMyaDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2aC05NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptNDggMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptMTEyIDIzNi44YzAgMTAuNi0xMCAxOS4yLTIyLjQgMTkuMkgxMDIuNEM5MCA0MTYgODAgNDA3LjQgODAgMzk2Ljh2LTE5LjJjMC0zMS44IDMwLjEtNTcuNiA2Ny4yLTU3LjZoNWMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg1YzM3LjEgMCA2Ny4yIDI1LjggNjcuMiA1Ny42djE5LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRDYXJkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA2NEgzODR2OTZIMTkyVjY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yODggMjI0YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptOTMuMyAyMjRIMTk0LjdjLTEwLjQgMC0xOC44LTEwLTE1LjYtMTkuOCA4LjMtMjUuNiAzMi40LTQ0LjIgNjAuOS00NC4yaDguMmMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg4LjJjMjguNCAwIDUyLjUgMTguNSA2MC45IDQ0LjIgMy4yIDkuOC01LjIgMTkuOC0xNS42IDE5Ljh6TTM1MiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMmgtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDEyOFYzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MTZoNTc2VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTI4SDB2MzA0em0zNTItMjMyYzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZ6bTAgNjRjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNnptMCA2NGMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2ek0xNzYgMTkyYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHpNNjcuMSAzOTYuMkM3NS41IDM3MC41IDk5LjYgMzUyIDEyOCAzNTJoOC4yYzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDguMmMyOC40IDAgNTIuNSAxOC41IDYwLjkgNDQuMiAzLjIgOS45LTUuMiAxOS44LTE1LjYgMTkuOEg4Mi43Yy0xMC40IDAtMTguOC0xMC0xNS42LTE5Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWdsb28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDMzLjljLTEwLjUtMS4yLTIxLjItMS45LTMyLTEuOS05OS44IDAtMTg3LjggNTAuOC0yMzkuNCAxMjhIMzIwVjMzLjl6TTk2IDE5MkgzMC4zQzExLjEgMjMwLjYgMCAyNzQgMCAzMjBoOTZWMTkyek0zNTIgMzkuNFYxNjBoMTc1LjRDNDg3LjIgOTkuOSA0MjQuOCA1NS45IDM1MiAzOS40ek00ODAgMzIwaDk2YzAtNDYtMTEuMS04OS40LTMwLjMtMTI4SDQ4MHYxMjh6bS02NCA2NHY5NmgxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2SDQxMS41YzIuNiAxMC4zIDQuNSAyMC45IDQuNSAzMnptMzItMTkySDEyOHYxMjhoNDkuOGMyMi4yLTM4LjEgNjMtNjQgMTEwLjItNjRzODggMjUuOSAxMTAuMiA2NEg0NDhWMTkyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxMjh2LTk2YzAtMTEuMSAxLjktMjEuNyA0LjUtMzJIMHY5NnptMjg4LTE2MGMtNTMgMC05NiA0My05NiA5NnY5NmgxOTJ2LTk2YzAtNTMtNDMtOTYtOTYtOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDQ0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTEyIDEyMGMtMzAuOTI4IDAtNTYgMjUuMDcyLTU2IDU2czI1LjA3MiA1NiA1NiA1NiA1Ni0yNS4wNzIgNTYtNTYtMjUuMDcyLTU2LTU2LTU2ek02NCAzODRoMzg0VjI3MmwtODcuNTE1LTg3LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDIwOCAzMjBsLTU1LjUxNS01NS41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw2NCAzMzZ2NDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA0MTZ2MTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxNzZjMC0yNi41MSAyMS40OS00OCA0OC00OGgxNnYyMDhjMCA0NC4xMTIgMzUuODg4IDgwIDgwIDgwaDMzNnptOTYtODBWODBjMC0yNi41MS0yMS40OS00OC00OC00OEgxNDRjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjU2YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzg0YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh6TTI1NiAxMjhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDggMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDh6bS05NiAxNDRsNTUuNTE1LTU1LjUxNWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMjcyIDI1NmwxMzUuNTE1LTEzNS41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDUxMiAyMDh2MTEySDE2MHYtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY3LjkzOCAyNDMuOTA4TDQ2Mi4yNSA4NS4zNzRBNDguMDAzIDQ4LjAwMyAwIDAgMCA0MjIuMzExIDY0SDE1My42ODlhNDggNDggMCAwIDAtMzkuOTM4IDIxLjM3NEw4LjA2MiAyNDMuOTA4QTQ3Ljk5NCA0Ny45OTQgMCAwIDAgMCAyNzAuNTMzVjQwMGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQ4MGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjI3MC41MzNhNDcuOTk0IDQ3Ljk5NCAwIDAgMC04LjA2Mi0yNi42MjV6TTE2Mi4yNTIgMTI4aDI1MS40OTdsODUuMzMzIDEyOEgzNzZsLTMyIDY0SDIzMmwtMzItNjRINzYuOTE4bDg1LjMzNC0xMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5kZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3LjMxIDM2My4zbDk2LTk2YTE2IDE2IDAgMCAwIDAtMjIuNjJsLTk2LTk2QzE3LjI3IDEzOC42NiAwIDE0NS43OCAwIDE2MHYxOTJjMCAxNC4zMSAxNy4zMyAyMS4zIDI3LjMxIDExLjN6TTQzMiA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDM1MmgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHptMC0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAxNzIuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDIyNGgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDIxMS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDE2MHpNNDMyIDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZHVzdHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NS4xMTUgMTYzLjc4MUwzMzYgMjUyLjMwOXYtNjguMjhjMC0xOC45MTYtMjAuOTMxLTMwLjM5OS0zNi44ODUtMjAuMjQ4TDE2MCAyNTIuMzA5VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnY0MDBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDQ2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTg0LjAyOWMwLTE4LjkxNy0yMC45MzEtMzAuMzk5LTM2Ljg4NS0yMC4yNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5maW5pdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcxLjEgOTZDNDA1IDk2IDM1My4zIDEzNy4zIDMyMCAxNzQuNiAyODYuNyAxMzcuMyAyMzUgOTYgMTY4LjkgOTYgNzUuOCA5NiAwIDE2Ny44IDAgMjU2czc1LjggMTYwIDE2OC45IDE2MGM2Ni4xIDAgMTE3LjgtNDEuMyAxNTEuMS03OC42IDMzLjMgMzcuMyA4NSA3OC42IDE1MS4xIDc4LjYgOTMuMSAwIDE2OC45LTcxLjggMTY4LjktMTYwUzU2NC4yIDk2IDQ3MS4xIDk2ek0xNjguOSAzMjBjLTQwLjIgMC03Mi45LTI4LjctNzIuOS02NHMzMi43LTY0IDcyLjktNjRjMzguMiAwIDczLjQgMzYuMSA5NCA2NC0yMC40IDI3LjYtNTUuOSA2NC05NCA2NHptMzAyLjIgMGMtMzguMiAwLTczLjQtMzYuMS05NC02NCAyMC40LTI3LjYgNTUuOS02NCA5NC02NCA0MC4yIDAgNzIuOSAyOC43IDcyLjkgNjRzLTMyLjcgNjQtNzIuOSA2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmZvQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5mbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0MjQuMjI5aDIwVjI3OS43NzFIMjBjLTExLjA0NiAwLTIwLTguOTU0LTIwLTIwVjIxMmMwLTExLjA0NiA4Ljk1NC0yMCAyMC0yMGgxMTJjMTEuMDQ2IDAgMjAgOC45NTQgMjAgMjB2MjEyLjIyOWgyMGMxMS4wNDYgMCAyMCA4Ljk1NCAyMCAyMFY0OTJjMCAxMS4wNDYtOC45NTQgMjAtMjAgMjBIMjBjLTExLjA0NiAwLTIwLTguOTU0LTIwLTIwdi00Ny43NzFjMC0xMS4wNDYgOC45NTQtMjAgMjAtMjB6TTk2IDBDNTYuMjM1IDAgMjQgMzIuMjM1IDI0IDcyczMyLjIzNSA3MiA3MiA3MiA3Mi0zMi4yMzUgNzItNzJTMTM1Ljc2NCAwIDk2IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSXRhbGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0OHYzMmExNiAxNiAwIDAgMS0xNiAxNmgtNjIuNzZsLTgwIDMyMEgyMDhhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZIMTZhMTYgMTYgMCAwIDEtMTYtMTZ2LTMyYTE2IDE2IDAgMCAxIDE2LTE2aDYyLjc2bDgwLTMyMEgxMTJhMTYgMTYgMCAwIDEtMTYtMTZWNDhhMTYgMTYgMCAwIDEgMTYtMTZoMTkyYTE2IDE2IDAgMCAxIDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplZGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTM1Ljk1MzA4LDM1MmMtNDIuNjQwNjksOTQuMTcxODgtMTM3LjY0MDg2LDE2MC0yNDcuOTg0OCwxNjBxLTYuMzk4NDQsMC0xMi44NDM3Ny0uMjk2ODhDMTcxLjE1NTU4LDUwNi45Mzc1LDgxLjI2NDgxLDQ0Mi4yMzQzOCw0MC4wMTQ3NCwzNTJINzkuOTM2NjhMMjEuMzI3MiwyOTMuNDA2MjVhMjY0LjgyNTIyLDI2NC44MjUyMiwwLDAsMS01LjEwOTM4LTM5LjQyMTg3LDI3My42NjUzLDI3My42NjUzLDAsMCwxLC41LTI5Ljk4NDM4SDYzLjkzNjY1TDIyLjU0NiwxODIuNjI1QTI2OS43OTc4MiwyNjkuNzk3ODIsMCwwLDEsMTMwLjUxNDg5LDIwLjU0Njg4YTE2LjA2MzkzLDE2LjA2MzkzLDAsMCwxLDkuMjgxMjctMywxNi4zNjMzMiwxNi4zNjMzMiwwLDAsMSwxMy41LDcuMjUsMTYuMDI3MzksMTYuMDI3MzksMCwwLDEsMS42MjUsMTUuMDkzNzQsMTM4LjM4NywxMzguMzg3LDAsMCwwLTkuODQzNzYsNTEuMjY1NjNjMCw0NS4xMDkzNywyMS4wNDY5MSw4Ni41NzgxMyw1Ny43MTg4NCwxMTMuNzM0MzdhMTYuMjk5ODksMTYuMjk5ODksMCwwLDEsMS4yMDMxMywyNS4zOTA2M2MtMjYuNTQ2OTIsMjMuOTg0MzctNDEuMTcxOTQsNTYuNS00MS4xNzE5NCw5MS41NzgxMywwLDYwLjAzMTI0LDQyLjk1MzE5LDExMC4yODEyNCw5OS44OTA3OSwxMjEuOTIxODdsMi41LTY1LjI2NTYzTDIzOC4wNjIsMzk3YTguMzM5MTEsOC4zMzkxMSwwLDAsMS0xMC0uNzUsOC4wMjUsOC4wMjUsMCwwLDEtMS4zOTA2My05LjkzNzVsMjAuMTI1LTMzLjc2NTYyLTQyLjA2MjU3LTguNzM0MzhhNy45ODk4LDcuOTg5OCwwLDAsMSwwLTE1LjY1NjI1bDQyLjA2MjU3LTguNzE4NzUtMjAuMTA5NDEtMzMuNzM0MzhhNy45OTEyMiw3Ljk5MTIyLDAsMCwxLDExLjM1OTM5LTEwLjcxODc0TDI2OC40MzcsMjk1LjY0MDYyLDI3OS45NTI2NSw3LjY3MTg4YTcuOTcxMzgsNy45NzEzOCwwLDAsMSw4LTcuNjcxODhoLjA0Njg3YTguMDIwNjQsOC4wMjA2NCwwLDAsMSw3Ljk1MzE0LDcuNzAzMTJMMzA3LjQ4Mzk0LDI5NS42MjVsMzAuMzkwNjgtMjAuNjcxODhhOC4wODMyNyw4LjA4MzI3LDAsMCwxLDEwLC44MTI1LDcuOTk4NjYsNy45OTg2NiwwLDAsMSwxLjM5MDYyLDkuOTA2MjZMMzI5LjEyNDYxLDMxOS40Mzc1bDQyLjA3ODE5LDguNzM0MzhhNy45OTM3Myw3Ljk5MzczLDAsMCwxLDAsMTUuNjU2MjRsLTQyLjA3ODE5LDguNzE4NzYsMjAuMTA5NCwzMy43MzQzN2E3Ljk3NzkxLDcuOTc3OTEsMCwwLDEtMS4zMjgxMiw5LjkyMTg3QTguMjU3MzksOC4yNTczOSwwLDAsMSwzMzcuODc0NjIsMzk3TDMxMC43MDI3LDM3OC41MzEyNWwyLjUsNjUuMzQzNzVjNDguNDg0NDYtOS40MDYyNSw4Ny41NzgyOC00OC4xNTYyNSw5Ny4zMTI2Ny05Ni41QTEyMy41MjY1MiwxMjMuNTI2NTIsMCwwLDAsMzcxLjk1MjgsMjMwLjI5Njg4YTE2LjMwNjM0LDE2LjMwNjM0LDAsMCwxLDEuMjAzMTMtMjUuNDIxODhjMzYuNjU2MzEtMjcuMTcxODgsNTcuNjg3Ni02OC42MDkzOCw1Ny42ODc2LTExMy43MzQzOGExMzguMDE2ODksMTM4LjAxNjg5LDAsMCwwLTkuODU5MzktNTEuMzEyNSwxNS45ODEzMiwxNS45ODEzMiwwLDAsMSwxLjYwOTM3LTE1LjA5Mzc0LDE2LjM2OTE0LDE2LjM2OTE0LDAsMCwxLDEzLjUtNy4yMzQzOCwxNi4wMjQ1MywxNi4wMjQ1MywwLDAsMSw5LjI1LDIuOTg0MzhBMjcxLjI2OTQ3LDI3MS4yNjk0NywwLDAsMSw1NTMuMjUsMTgyLjc2NTYyTDUxMS45OTk5MiwyMjRoNDYuOTUzMkM1NTkuMzEyNSwyMjkuNzY1NjIsNTYwLDIzNS40NTMxMiw1NjAsMjQxLjI2NTYyYTI3MC4wOTIsMjcwLjA5MiwwLDAsMS01LjEyNSw1MS44NTkzOEw0OTUuOTg0MjcsMzUyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NC4zNCAxODEuMWMyMi4zOCAxNS42OCAzNS42NiA0MS4xNiAzNS42NiA2OC41OVYyODBjMCA0LjQyIDMuNTggOCA4IDhoNDhjNC40MiAwIDgtMy41OCA4LTh2LTMwLjMxYzAtNDMuMjQtMjEuMDEtODMuNDEtNTYuMzQtMTA4LjA2QzQ2My44NSAxMjUuMDIgNDQ4IDk5LjM0IDQ0OCA3MC4zMVY4YzAtNC40Mi0zLjU4LTgtOC04aC00OGMtNC40MiAwLTggMy41OC04IDh2NjYuNGMwIDQzLjY5IDI0LjU2IDgxLjYzIDYwLjM0IDEwNi43ek0xOTQuOTcgMzU4Ljk4QzEyNi4wMyAzNzAuMDcgNTkuNjkgMzk0LjY5IDAgNDMyYzgzLjY1IDUyLjI4IDE4MC4zIDgwIDI3OC45NCA4MGg4OC41N0wyNTQuNzkgMzgwLjQ5Yy0xNC43NC0xNy4yLTM3LjQ1LTI1LjExLTU5LjgyLTIxLjUxek01NTMuMjggODcuMDljLTUuNjctMy44LTkuMjgtOS45Ni05LjI4LTE2Ljc4VjhjMC00LjQyLTMuNTgtOC04LThoLTQ4Yy00LjQyIDAtOCAzLjU4LTggOHY2Mi4zMWMwIDIyLjAyIDEwLjE3IDQzLjQxIDI4LjY0IDU1LjM5QzU1MC43OSAxNTMuMDQgNTc2IDE5OS41NCA1NzYgMjQ5LjY5VjI4MGMwIDQuNDIgMy41OCA4IDggOGg0OGM0LjQyIDAgOC0zLjU4IDgtOHYtMzAuMzFjMC02NS40NC0zMi40MS0xMjYuMTktODYuNzItMTYyLjZ6TTM2MC44OSAzNTIuMDVjLTM0LjQuMDYtODYuODEuMTUtODguMjEuMTdsMTE3LjggMTM3LjQzQTYzLjk4NyA2My45ODcgMCAwIDAgNDM5LjA3IDUxMmg4OC40NUw0MDkuNTcgMzc0LjRhNjMuOTU1IDYzLjk1NSAwIDAgMC00OC42OC0yMi4zNXpNNjE2IDM1Mkg0MzJsMTE3Ljk5IDEzNy42NUE2My45ODcgNjMuOTg3IDAgMCAwIDU5OC41OCA1MTJINjE2YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRWMzc2YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSm91cm5hbFdoaWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzguNDA2MjUsMzc3LjU5Mzc1Yy0zLjIwMzEzLDEyLjgxMjUtMy4yMDMxMyw1Ny42MDkzNywwLDczLjYwOTM3UTQ0Ny45OTIyLDQ2MC43ODkwNyw0NDgsNDcwLjQwNjI1djE2YzAsMTYtMTIuNzk2ODgsMjUuNTkzNzUtMjUuNTkzNzUsMjUuNTkzNzVIOTZjLTU0LjQwNjI1LDAtOTYtNDEuNTkzNzUtOTYtOTZWOTZDMCw0MS41OTM3NSw0MS41OTM3NSwwLDk2LDBINDIyLjQwNjI1QzQzOC40MDYyNSwwLDQ0OCw5LjU5Mzc1LDQ0OCwyNS41OTM3NXYzMzIuODEyNVE0NDgsMzcyLjc5Njg4LDQzOC40MDYyNSwzNzcuNTkzNzVaTTM4MC43OTY4OCwzODRIOTZjLTE2LDAtMzIsMTIuNzk2ODgtMzIsMzJzMTIuNzk2ODgsMzIsMzIsMzJIMzgwLjc5Njg4Wk0xMjguMDE1NjIsMTc2LjAxNTYyYzAsLjUxNTYzLjE0MDYzLjk4NDM4LjE0MDYzLDEuNWwzNy4xMDkzNywzMi40Njg3NkE3Ljk5OTU0LDcuOTk5NTQsMCwwLDEsMTYwLDIyNGgtLjAxNTYyYTkuMTc2NzgsOS4xNzY3OCwwLDAsMS01LjI1LTEuOTg0MzhMMTMxLjE0MDYyLDIwMS4zNzVDMTQyLjY4NzUsMjUwLjk1MzEyLDE4Ni45MDYyNSwyODgsMjQwLDI4OHM5Ny4zMTI1LTM3LjA0Njg4LDEwOC44NzUtODYuNjI1bC0yMy41OTM3NSwyMC42NDA2MmE4LjAyNTE2LDguMDI1MTYsMCwwLDEtNS4yNjU2MywxLjk2ODc2SDMyMGE5LjE0NjQxLDkuMTQ2NDEsMCwwLDEtNi4wMTU2Mi0yLjcxODc2QTkuMjY1MDgsOS4yNjUwOCwwLDAsMSwzMTIsMjE2YTkuMDk3LDkuMDk3LDAsMCwxLDIuNzM0MzgtNi4wMTU2MmwzNy4xMDkzNy0zMi40Njg3NmMuMDE1NjMtLjUzMTI0LjE1NjI1LTEsLjE1NjI1LTEuNTE1NjIsMC0xMS4wNDY4OC0yLjA5Mzc1LTIxLjUxNTYyLTUuMDYyNTEtMzEuNTkzNzVsLTIxLjI2NTYyLDIxLjI1YTguMDA0NjcsOC4wMDQ2NywwLDAsMS0xMS4zMjgxMi0xMS4zMTI1bDI2LjQyMTg3LTI2LjQwNjI1YTExMS44MTUxNywxMTEuODE1MTcsMCwwLDAtNDYuMzU5MzctNDkuMjY1NjIsNjMuMDIzMzYsNjMuMDIzMzYsMCwwLDEtMTQuMDYyNSw4Mi42NDA2MkE1NS44Mzg0Niw1NS44Mzg0NiwwLDAsMSwyNTEuNjI1LDI1NC43MzQzOGwtMS40MjE4OC0zNC4yODEyNiwxMi42NzE4OCw4LjYyNWEzLjk2NywzLjk2NywwLDAsMCwyLjI1LjY4NzUsMy45ODA1OSwzLjk4MDU5LDAsMCwwLDMuNDM3NDktNi4wMzEyNGwtOC41MzEyNC0xNC4zMTI1LDE3LjkwNjI1LTMuNzE4NzZhNC4wMDY0Nyw0LjAwNjQ3LDAsMCwwLDAtNy44NDM3NGwtMTcuOTA2MjUtMy43MTg3Niw4LjUzMTI0LTE0LjMxMjVhMy45ODA1OSwzLjk4MDU5LDAsMCwwLTMuNDM3NDktNi4wMzEyNCw0LjcyNiw0LjcyNiwwLDAsMC0yLjI1LjY3MTg3TDI0OC42ODc1LDE4NC4xMjUsMjQ0LDcxLjgyODEyYTQuMDAzODYsNC4wMDM4NiwwLDAsMC04LDBsLTQuNjI1LDExMC44MTI1LTEyLTguMTU2MjRhNC4wMDMsNC4wMDMsMCwwLDAtNS42ODc1MSw1LjM1OTM3bDguNTMxMjYsMTQuMzEyNUwyMDQuMzEyNSwxOTcuODc1YTMuOTk2ODYsMy45OTY4NiwwLDAsMCwwLDcuODI4MTJsMTcuOTA2MjUsMy43MzQzOC04LjUzMTI2LDE0LjI5Njg4YTQuNzI0NjksNC43MjQ2OSwwLDAsMC0uNTYyNDksMi4wNDY4Nyw0LjU5NTQ3LDQuNTk1NDcsMCwwLDAsMS4yNSwyLjkwNjI1LDQuMDEwNTksNC4wMTA1OSwwLDAsMCwyLjc1LDEuMDkzNzUsNC4wOTAxNiw0LjA5MDE2LDAsMCwwLDIuMjUtLjY4NzVsMTAuMzU5MzctNy4wNDY4N0wyMjguMzc1LDI1NC43NjU2MmE1NS44NjQxNCw1NS44NjQxNCwwLDAsMS0yOC43MTg3NS05My40NTMxMiw2My4wMTExOSw2My4wMTExOSwwLDAsMS0xNC4wNDY4OC04Mi42NTYyNSwxMTEuOTMxNTgsMTExLjkzMTU4LDAsMCwwLTQ2LjM3NSw0OS4yNjU2M2wyNi40MjE4NywyNi40MjE4N2E3Ljk5OTE3LDcuOTk5MTcsMCwwLDEtMTEuMzEyNSwxMS4zMTI1bC0yMS4yNjU2My0yMS4yNjU2M0MxMzAuMDkzNzUsMTU0LjQ4NDM4LDEyOCwxNjQuOTUzMTIsMTI4LjAxNTYyLDE3Ni4wMTU2MlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLYWFiYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTQuMTIgODMuNTFMMzE4LjM2IDQuOTNhOTUuOTYyIDk1Ljk2MiAwIDAgMC02MC43MSAwTDIxLjg4IDgzLjUxQTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTMuODd2NDkuMDFsMjY1LjAyLTc5LjUxYzE1LjAzLTQuNSAzMC45Mi00LjUgNDUuOTggMGwyNjUgNzkuNTF2LTQ5LjAxYzAtMTMuNzctOC44MS0yNi0yMS44OC0zMC4zNnptLTI3OS45IDMwLjUyTDAgMTk2LjN2MjI4LjM4YzAgMTUgMTAuNDIgMjcuOTggMjUuMDYgMzEuMjRsMjQyLjEyIDUzLjhhOTUuOTM3IDk1LjkzNyAwIDAgMCA0MS42NSAwbDI0Mi4xMi01My44YzE0LjY0LTMuMjUgMjUuMDYtMTYuMjQgMjUuMDYtMzEuMjRWMTk2LjI5bC0yNzQuMi04Mi4yNmMtOS4wNC0yLjcyLTE4LjU5LTIuNzItMjcuNTkgMHpNMTI4IDIzMC4xMWMwIDMuNjEtMi40MSA2Ljc3LTUuODkgNy43MmwtODAgMjEuODJDMzcuMDIgMjYxLjAzIDMyIDI1Ny4yIDMyIDI1MS45M3YtMTYuNThjMC0zLjYxIDIuNDEtNi43NyA1Ljg5LTcuNzJsODAtMjEuODJjNS4wOS0xLjM5IDEwLjExIDIuNDQgMTAuMTEgNy43MnYxNi41OHptMTQ0LTM5LjI4YzAgMy42MS0yLjQxIDYuNzctNS44OSA3LjcybC05NiAyNi4xOGMtNS4wOSAxLjM5LTEwLjExLTIuNDQtMTAuMTEtNy43MnYtMTYuNThjMC0zLjYxIDIuNDEtNi43NyA1Ljg5LTcuNzJsOTYtMjYuMThjNS4wOS0xLjM5IDEwLjExIDIuNDQgMTAuMTEgNy43MnYxNi41OHptMTc2IDIyLjdjMC01LjI4IDUuMDItOS4xMSAxMC4xMS03LjcybDgwIDIxLjgyYzMuNDguOTUgNS44OSA0LjExIDUuODkgNy43MnYxNi41OGMwIDUuMjgtNS4wMiA5LjExLTEwLjExIDcuNzJsLTgwLTIxLjgyYTcuOTk3IDcuOTk3IDAgMCAxLTUuODktNy43MnYtMTYuNTh6bS0xNDQtMzkuMjdjMC01LjI4IDUuMDItOS4xMSAxMC4xMS03LjcybDk2IDI2LjE4YzMuNDguOTUgNS44OSA0LjExIDUuODkgNy43MnYxNi41OGMwIDUuMjgtNS4wMiA5LjExLTEwLjExIDcuNzJsLTk2LTI2LjE4YTcuOTk3IDcuOTk3IDAgMCAxLTUuODktNy43MnYtMTYuNTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAxNzYuMDAxQzUxMiAyNzMuMjAzIDQzMy4yMDIgMzUyIDMzNiAzNTJjLTExLjIyIDAtMjIuMTktMS4wNjItMzIuODI3LTMuMDY5bC0yNC4wMTIgMjcuMDE0QTIzLjk5OSAyMy45OTkgMCAwIDEgMjYxLjIyMyAzODRIMjI0djQwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNGgtNDB2NDBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDI0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTc4LjA1OWMwLTYuMzY1IDIuNTI5LTEyLjQ3IDcuMDI5LTE2Ljk3MWwxNjEuODAyLTE2MS44MDJDMTYzLjEwOCAyMTMuODE0IDE2MCAxOTUuMjcxIDE2MCAxNzYgMTYwIDc4Ljc5OCAyMzguNzk3LjAwMSAzMzUuOTk5IDAgNDMzLjQ4OC0uMDAxIDUxMiA3OC41MTEgNTEyIDE3Ni4wMDF6TTMzNiAxMjhjMCAyNi41MSAyMS40OSA0OCA0OCA0OHM0OC0yMS40OSA0OC00OC0yMS40OS00OC00OC00OC00OCAyMS40OS00OCA0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLZXlib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQ4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMjggMTgwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDc2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tMzM2IDk2di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0zMzYgOTZ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJINzZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0yODggMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxNzJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtoYW5kYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTUuODEgNjZjLTYuMzctMy41LTE0LjM3LTIuMzMtMTkuMzYgMy4wMmExNS45NzQgMTUuOTc0IDAgMCAwLTEuOTEgMTkuNTJjMTYuNDkgMjYuMTYgMjUuMiA1Ni4zOSAyNS4yIDg3LjQxLS4xOSA1My4yNS0yNi43NyAxMDIuNjktNzEuMjcgMTMyLjQxbC03Ni42MyA1My4zNXYtMjAuMWw0NC4wNS0zNi4wOWMzLjkyLTQuMiA1LTEwLjA5IDIuODEtMTUuMjhMMzEwLjg1IDI3M2MzMy44NC0xOS4yNiA1Ni45NC01NS4yNSA1Ni45NC05Ni45OSAwLTQwLjc5LTIyLjAyLTc2LjEzLTU0LjU5LTk1LjcxbDUuMjItMTEuNDRjMi4zNC01LjUzLjkzLTExLjgzLTMuNTctMTYuMDRMMjU1Ljg2IDBsLTU4Ljk5IDUyLjgxYy00LjUgNC4yMS01LjkgMTAuNTEtMy41NyAxNi4wNGw1LjIyIDExLjQ0Yy0zMi41NyAxOS41OC01NC41OSA1NC45My01NC41OSA5NS43MiAwIDQxLjc1IDIzLjA5IDc3LjczIDU2Ljk0IDk2Ljk5bC03Ljg1IDE3LjI0Yy0yLjE5IDUuMTgtMS4xIDExLjA3IDIuODEgMTUuMjhsNDQuMDUgMzYuMDl2MTkuOWwtNzYuNTktNTMuMzNDMTE5LjAyIDI3OC42MiA5Mi40NCAyMjkuMTkgOTIuMjYgMTc2YzAtMzEuMDggOC43MS02MS4zMSAyNS4yLTg3LjQ3IDMuODctNi4xNiAyLjQtMTMuNzctMi41OS0xOS4wOC01LTUuMzQtMTMuNjgtNi4yLTIwLjAyLTIuN0MxNi4zMiAxMDkuNi0yMi4zIDIwNS4zIDEzLjM2IDI5NS45OWM3LjA3IDE3Ljk5IDE3Ljg5IDM0LjM4IDMwLjQ2IDQ5LjA2bDU1Ljk3IDY1LjM2YzQuODcgNS42OSAxMy4wNCA3LjI0IDE5LjY1IDMuNzJsNzkuMzUtNDIuMjNMMjI4IDM5Mi4yM2wtNDcuMDggMzIuNzhjLTEuNjctLjM3LTMuMjMtMS4wMS01LjAxLTEuMDEtMTMuMjUgMC0yMy45OSAxMC43NC0yMy45OSAyNCAwIDEzLjI1IDEwLjc0IDI0IDIzLjk5IDI0IDEyLjEgMCAyMS42OS05LjExIDIzLjMzLTIwLjc2bDQwLjYzLTI4LjI4djI5Ljk1Yy05LjM5IDUuNTctMTUuOTkgMTUuMzgtMTUuOTkgMjcuMSAwIDE3LjY3IDE0LjMyIDMyIDMxLjk4IDMyczMxLjk4LTE0LjMzIDMxLjk4LTMyYzAtMTEuNzEtNi42MS0yMS41Mi0xNS45OS0yNy4xdi0zMC4xNWw0MC45MSAyOC40OEMzMTQuNDEgNDYyLjg5IDMyNCA0NzIgMzM2LjA5IDQ3MmMxMy4yNSAwIDIzLjk5LTEwLjc1IDIzLjk5LTI0IDAtMTMuMjYtMTAuNzQtMjQtMjMuOTktMjQtMS43OCAwLTMuMzQuNjQtNS4wMSAxLjAxTDI4NCAzOTIuMjNsMjkuMjEtMjAuMzQgNzkuMzUgNDIuMjNjNi42MSAzLjUyIDE0Ljc4IDEuOTcgMTkuNjUtMy43MWw1Mi41MS02MS4zMWMxOC44Ny0yMi4wMiAzNC00Ny41IDQxLjI1LTc1LjU5IDIxLjYyLTgzLjY2LTE2LjQ1LTE2Ny4yNy05MC4xNi0yMDcuNTF6bS05NS45OSAxMTBjMCAyMi4zLTExLjQ5IDQxLjkyLTI4LjgzIDUzLjM4bC01LjY1LTEyLjQxYy04Ljc1LTI0LjUyLTguNzUtNTEuMDQgMC03NS41Nmw3LjgzLTE3LjE4YzE2LjA3IDExLjY1IDI2LjY1IDMwLjQ1IDI2LjY1IDUxLjc3em0tMTI3LjkzIDBjMC0yMS4zMiAxMC41OC00MC4xMiAyNi42Ni01MS43Nmw3LjgzIDE3LjE4YzguNzUgMjQuNTIgOC43NSA1MS4wMyAwIDc1LjU2bC01LjY1IDEyLjQxYy0xNy4zNC0xMS40Ni0yOC44NC0zMS4wOS0yOC44NC01My4zOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXNzQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tMzkgMjE5LjlsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMiA3LjQtMTUuNiA0LTE0LjktNC41IDMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy41IDguNS0xMC45IDEyLTE1LjEgNC41ek0zMDQgMzk2YzAgMTkuMi0yOC43IDQxLjUtNzEuNSA0NC04LjUuOC0xMi4xLTExLjgtMy42LTE1LjRsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTYtMi41LTYuMS0xMi4yIDAtMTQuOGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtOC42LTMuNi00LjgtMTYuNSAzLjYtMTUuNCA0Mi44IDIuNSA3MS41IDI0LjggNzEuNSA0NCAwIDEzLTEzLjQgMjcuMy0zNS4yIDM2QzI5MC42IDM2OC43IDMwNCAzODMgMzA0IDM5NnptNjUtMTY4LjFsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjMtMTUuNiA0LTE0LjktNC41IDMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy41IDguNS0xMC45IDEyLTE1LjEgNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpc3NXaW5rSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUwNCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjEgNDAyLjVjLTgtMjAuOC0zMS41LTMxLjUtNTMuMS0yNS45bC04LjQgMi4yLTIuMy04LjRjLTUuOS0yMS40LTI3LTM2LjUtNDktMzMtMjUuMiA0LTQwLjYgMjguNi0zNCA1Mi42bDIyLjkgODIuNmMxLjUgNS4zIDcgOC41IDEyLjQgNy4xbDgzLTIxLjVjMjQuMS02LjMgMzcuNy0zMS44IDI4LjUtNTUuN3ptLTE3Ny42LTRjLTUuNi0yMC4zLTIuMy00MiA5LTU5LjcgMjkuNy00Ni4zIDk4LjctNDUuNSAxMjcuOCA0LjMgNi40LjEgMTIuNiAxLjQgMTguNiAyLjkgMTAuOS0yNy45IDE3LjEtNTguMiAxNy4xLTkwQzQ5NiAxMTkgMzg1IDggMjQ4IDhTMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4YzM1LjQgMCA2OC45LTcuNSA5OS40LTIwLjktLjMtLjctMjMuOS04NC42LTIzLjktODQuNnpNMTY4IDI0MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyMCAxNTZjMCAxOS4yLTI4LjcgNDEuNS03MS41IDQ0LTguNS44LTEyLjEtMTEuOC0zLjYtMTUuNGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtNi0yLjUtNS43LTEyLjMgMC0xNC44bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy04LjgtMy43LTQuNi0xNi42IDMuNi0xNS40IDQyLjggMi41IDcxLjUgMjQuOCA3MS41IDQ0IDAgMTMtMTMuNCAyNy4zLTM1LjIgMzZDMjc0LjYgMzY4LjcgMjg4IDM4MyAyODggMzk2em0xNi0xNzljLTguMyA3LjQtMjEuNi40LTE5LjgtMTAuOCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVM0MDAgMTgxIDQwNCAyMDYuMmMxLjcgMTEuMS0xMS4zIDE4LjMtMTkuOCAxMC44bC05LjUtOC41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMzA0IDIxN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS04MCAyMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMzYgMTU2YzAgMTkuMi0yOC43IDQxLjUtNzEuNSA0NC04LjUuOC0xMi4xLTExLjgtMy42LTE1LjRsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTYtMi41LTYuMS0xMi4yIDAtMTQuOGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtOC42LTMuNi00LjgtMTYuNSAzLjYtMTUuNCA0Mi44IDIuNSA3MS41IDI0LjggNzEuNSA0NCAwIDEzLTEzLjQgMjcuMy0zNS4yIDM2QzI5MC42IDM2OC43IDMwNCAzODMgMzA0IDM5NnptMjQtMTU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXdpQmlyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzUuODEgMjE3Ljk4QzU3Mi42NCAxNTcuNDEgNTE4LjI4IDExMiA0NTcuNjMgMTEyaC05LjM3Yy01Mi44MiAwLTEwNC4yNS0xNi4yNS0xNDcuNzQtNDYuMjQtNDEuOTktMjguOTYtOTYuMDQtNDEuNjItMTUzLjIxLTI4LjdDMTI5LjMgNDEuMTItLjA4IDc4LjI0IDAgMjI0Yy4wNCA3MC45NSAzOC42OCAxMzIuOCA5NS45OSAxNjYuMDFWNDY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di01NC4yNmMxNS4zNiAzLjk2IDMxLjQgNi4yNiA0OCA2LjI2IDUuNDQgMCAxMC42OC0uNzMgMTYtMS4xOFY0NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTU5LjQzYzE0LjI0LTUuMDYgMjcuODgtMTEuMzkgNDAuMzQtMTkuNTFDMzQyLjA3IDM1NS4yNSAzOTMuODYgMzM2IDQ0OC40NiAzMzZjMjUuNDggMCAxNi4wMS0uMzEgMjMuMDUtLjc4bDc0LjQxIDEzNi40NGMyLjg2IDUuMjMgOC4zIDguMzQgMTQuMDUgOC4zNCAxLjMxIDAgMi42NC0uMTYgMy45NS0uNSA3LjA5LTEuOCAxMi4wNS04LjE5IDEyLjA1LTE1LjUgMCAwIC4xNC0yNDAuMjQtLjE2LTI0Ni4wMnpNNDYzLjk3IDI0OGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTgwIDE1My4yNWwtMzkuODYtNzMuMDhjMTUuMTItNS44MyAyOC43My0xNC42IDM5Ljg2LTI1Ljk4djk5LjA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhbmRtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMS42MiA5Mi4xMUwyNjcuMjQgMi4wNGEzMS45NTggMzEuOTU4IDAgMCAwLTIyLjQ3IDBMMTAuMzggOTIuMTFBMTYuMDAxIDE2LjAwMSAwIDAgMCAwIDEwNy4wOVYxNDRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDgwYzguODQgMCAxNi03LjE2IDE2LTE2di0zNi45MWMwLTYuNjctNC4xNC0xMi42NC0xMC4zOC0xNC45OHpNNjQgMTkydjE2MEg0OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhoNDQ4di00OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZWMTkyaC02NHYxNjBoLTk2VjE5MmgtNjR2MTYwaC05NlYxOTJINjR6bTQzMiAyNTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZ3VhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyLjEgMjM2LjJjLTMuNS0xMi4xLTcuOC0zMy4yLTcuOC0zMy4yaC0uNXMtNC4zIDIxLjEtNy44IDMzLjJsLTExLjEgMzcuNUgxNjN6TTYxNiA5NkgzMzZ2MzIwaDI4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0yNCAxMjBjMCA2LjYtNS40IDEyLTEyIDEyaC0xMS40Yy02LjkgMjMuNi0yMS43IDQ3LjQtNDIuNyA2OS45IDguNCA2LjQgMTcuMSAxMi41IDI2LjEgMTggNS41IDMuNCA3LjMgMTAuNSA0LjEgMTYuMmwtNy45IDEzLjljLTMuNCA1LjktMTAuOSA3LjgtMTYuNyA0LjMtMTIuNi03LjgtMjQuNS0xNi4xLTM1LjQtMjQuOS0xMC45IDguNy0yMi43IDE3LjEtMzUuNCAyNC45LTUuOCAzLjUtMTMuMyAxLjYtMTYuNy00LjNsLTcuOS0xMy45Yy0zLjItNS42LTEuNC0xMi44IDQuMi0xNi4yIDkuMy01LjcgMTgtMTEuNyAyNi4xLTE4LTcuOS04LjQtMTQuOS0xNy0yMS0yNS43LTQtNS43LTIuMi0xMy42IDMuNy0xNy4xbDYuNS0zLjkgNy4zLTQuM2M1LjQtMy4yIDEyLjQtMS43IDE2IDMuNCA1IDcgMTAuOCAxNCAxNy40IDIwLjkgMTMuNS0xNC4yIDIzLjgtMjguOSAzMC00My4ySDQxMmMtNi42IDAtMTItNS40LTEyLTEydi0xNmMwLTYuNiA1LjQtMTIgMTItMTJoNjR2LTE2YzAtNi42IDUuNC0xMiAxMi0xMmgxNmM2LjYgMCAxMiA1LjQgMTIgMTJ2MTZoNjRjNi42IDAgMTIgNS40IDEyIDEyek0wIDEyMHYyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMjgwVjk2SDI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNTguOSAyMTYuMUwxMTYuNCAxNjdjMS43LTQuOSA2LjItOC4xIDExLjQtOC4xaDMyLjVjNS4xIDAgOS43IDMuMyAxMS40IDguMWw1Ny41IDE2OS4xYzIuNiA3LjgtMy4xIDE1LjktMTEuNCAxNS45aC0yMi45YTEyIDEyIDAgMCAxLTExLjUtOC42bC05LjQtMzEuOWgtNjAuMmwtOS4xIDMxLjhjLTEuNSA1LjEtNi4yIDguNy0xMS41IDguN0g3MC4zYy04LjIgMC0xNC04LjEtMTEuNC0xNS45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcENvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1LjAzIDI2MS42NWM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDExLjMxLTExLjMxYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMMjUzLjI1IDE5MmwzNS43MS0zNS43MmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0xMS4zMS0xMS4zMWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtNTguMzQgNTguMzRjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsNTguMzUgNTguMzR6bTk2LjAxLTExLjNsMTEuMzEgMTEuMzFjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw1OC4zNC01OC4zNGM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC01OC4zNC01OC4zNGMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMTEuMzEgMTEuMzFjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNMMzg2Ljc1IDE5MmwtMzUuNzEgMzUuNzJjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjN6TTYyNCA0MTZIMzgxLjU0Yy0uNzQgMTkuODEtMTQuNzEgMzItMzIuNzQgMzJIMjg4Yy0xOC42OSAwLTMzLjAyLTE3LjQ3LTMyLjc3LTMySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCAzNS4yIDI4LjggNjQgNjQgNjRoNTEyYzM1LjIgMCA2NC0yOC44IDY0LTY0di0xNmMwLTguOC03LjItMTYtMTYtMTZ6TTU3NiA0OGMwLTI2LjQtMjEuNi00OC00OC00OEgxMTJDODUuNiAwIDY0IDIxLjYgNjQgNDh2MzM2aDUxMlY0OHptLTY0IDI3MkgxMjhWNjRoMzg0djI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXB0b3BIb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIsMjg4SDIwOGExNiwxNiwwLDAsMS0xNi0xNlYyMDhhMTYsMTYsMCwwLDEsMTYtMTZoNjRhMTYsMTYsMCwwLDEsMTYsMTZ2MzcuMTJDMjk5LjExLDIzMi4yNCwzMTUsMjI0LDMzMi44LDIyNEg0NjkuNzRsNi42NS03LjUzQTE2LjUxLDE2LjUxLDAsMCwwLDQ4MCwyMDdhMTYuMzEsMTYuMzEsMCwwLDAtNC43NS0xMC42MUw0MTYsMTQ0VjQ4YTE2LDE2LDAsMCwwLTE2LTE2SDM2OGExNiwxNiwwLDAsMC0xNiwxNlY4Ny4zTDI2My41LDguOTJDMjU4LDQsMjQ3LjQ1LDAsMjQwLjA1LDBzLTE3LjkzLDQtMjMuNDcsOC45Mkw0Ljc4LDE5Ni40MkExNi4xNSwxNi4xNSwwLDAsMCwwLDIwN2ExNi40LDE2LjQsMCwwLDAsMy41NSw5LjM5TDIyLjM0LDIzNy43QTE2LjIyLDE2LjIyLDAsMCwwLDMzLDI0Mi40OCwxNi41MSwxNi41MSwwLDAsMCw0Mi4zNCwyMzlMNjQsMjE5Ljg4VjM4NGEzMiwzMiwwLDAsMCwzMiwzMkgyNzJaTTYyOS4zMyw0NDhINTkyVjI4OGMwLTE3LjY3LTEyLjg5LTMyLTI4LjgtMzJIMzMyLjhjLTE1LjkxLDAtMjguOCwxNC4zMy0yOC44LDMyVjQ0OEgyNjYuNjdBMTAuNjcsMTAuNjcsMCwwLDAsMjU2LDQ1OC42N3YxMC42NkE0Mi44Miw0Mi44MiwwLDAsMCwyOTguNiw1MTJINTk3LjRBNDIuODIsNDIuODIsMCwwLDAsNjQwLDQ2OS4zM1Y0NTguNjdBMTAuNjcsMTAuNjcsMCwwLDAsNjI5LjMzLDQ0OFpNNTQ0LDQ0OEgzNTJWMzA0SDU0NFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXB0b3BNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMiAyMjRoNTZ2NTZhOCA4IDAgMCAwIDggOGg0OGE4IDggMCAwIDAgOC04di01Nmg1NmE4IDggMCAwIDAgOC04di00OGE4IDggMCAwIDAtOC04aC01NnYtNTZhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHY1NmgtNTZhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4ek01NzYgNDhhNDguMTQgNDguMTQgMCAwIDAtNDgtNDhIMTEyYTQ4LjE0IDQ4LjE0IDAgMCAwLTQ4IDQ4djMzNmg1MTJ6bS02NCAyNzJIMTI4VjY0aDM4NHptMTEyIDk2SDM4MS41NGMtLjc0IDE5LjgxLTE0LjcxIDMyLTMyLjc0IDMySDI4OGMtMTguNjkgMC0zMy0xNy40Ny0zMi43Ny0zMkgxNmExNiAxNiAwIDAgMC0xNiAxNnYxNmE2NC4xOSA2NC4xOSAwIDAgMCA2NCA2NGg1MTJhNjQuMTkgNjQuMTkgMCAwIDAgNjQtNjR2LTE2YTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgNDE2SDM4MS41NGMtLjc0IDE5LjgxLTE0LjcxIDMyLTMyLjc0IDMySDI4OGMtMTguNjkgMC0zMy4wMi0xNy40Ny0zMi43Ny0zMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgMzUuMiAyOC44IDY0IDY0IDY0aDUxMmMzNS4yIDAgNjQtMjguOCA2NC02NHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2ek01NzYgNDhjMC0yNi40LTIxLjYtNDgtNDgtNDhIMTEyQzg1LjYgMCA2NCAyMS42IDY0IDQ4djMzNmg1MTJWNDh6bS02NCAyNzJIMTI4VjY0aDM4NHYyNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGF1Z2hCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTI0IDE5OS40YzMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMiA3LjQtMTUuOCA0LjEtMTUuMS00LjV6bS0xNjAgMGMzLjMtNDIuMSAzMi4yLTcxLjQgNTYtNzEuNHM1Mi43IDI5LjMgNTYgNzEuNGMuNyA4LjYtMTAuOCAxMS45LTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjMgNy40LTE1LjggNC0xNS4xLTQuNXpNMzk4LjkgMzA2QzM5MCAzNzcgMzI5LjQgNDMyIDI1NiA0MzJoLTE2Yy03My40IDAtMTM0LTU1LTE0Mi45LTEyNi0xLjItOS41IDYuMy0xOCAxNS45LTE4aDI3MGM5LjYgMCAxNy4xIDguNCAxNS45IDE4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhdWdoU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTMzLjggMTYxLjdsODAtNDhjMTEuNi02LjkgMjQgNy43IDE1LjQgMThMMzQzLjYgMTgwbDMzLjYgNDAuM2M4LjcgMTAuNC0zLjkgMjQuOC0xNS40IDE4bC04MC00OGMtNy43LTQuNy03LjctMTUuOSAwLTIwLjZ6bS0xNjMtMzBjLTguNi0xMC4zIDMuOC0yNC45IDE1LjQtMThsODAgNDhjNy44IDQuNyA3LjggMTUuOSAwIDIwLjZsLTgwIDQ4Yy0xMS41IDYuOC0yNC03LjYtMTUuNC0xOGwzMy42LTQwLjMtMzMuNi00MC4zek0zOTguOSAzMDZDMzkwIDM3NyAzMjkuNCA0MzIgMjU2IDQzMmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGF1Z2hXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTIwLjEgMTk4LjFjNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFzNTUuOSAxNi45IDU5LjkgNDIuMWMxLjcgMTEuMS0xMS40IDE4LjMtMTkuOCAxMC44bC05LjUtOC41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMjg4IDIxN2MtOC40IDcuNC0yMS42LjMtMTkuOS0xMC45ek0xNjggMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMjMwLjkgMTQ2QzM5MCAzNzcgMzI5LjQgNDMyIDI1NiA0MzJoLTE2Yy03My40IDAtMTM0LTU1LTE0Mi45LTEyNi0xLjItOS41IDYuMy0xOCAxNS45LTE4aDI3MGM5LjYgMCAxNy4xIDguNCAxNS45IDE4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bS0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTg4IDI3MmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTgtOC45IDcxLTY5LjUgMTI2LTE0Mi45IDEyNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXllckdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjQxIDE0OC4wMmwyMzIuOTQgMTA1LjY3YzYuOCAzLjA5IDE0LjQ5IDMuMDkgMjEuMjkgMGwyMzIuOTQtMTA1LjY3YzE2LjU1LTcuNTEgMTYuNTUtMzIuNTIgMC00MC4wM0wyNjYuNjUgMi4zMWEyNS42MDcgMjUuNjA3IDAgMCAwLTIxLjI5IDBMMTIuNDEgMTA3Ljk4Yy0xNi41NSA3LjUxLTE2LjU1IDMyLjUzIDAgNDAuMDR6bTQ4Ny4xOCA4OC4yOGwtNTguMDktMjYuMzMtMTYxLjY0IDczLjI3Yy03LjU2IDMuNDMtMTUuNTkgNS4xNy0yMy44NiA1LjE3cy0xNi4yOS0xLjc0LTIzLjg2LTUuMTdMNzAuNTEgMjA5Ljk3bC01OC4xIDI2LjMzYy0xNi41NSA3LjUtMTYuNTUgMzIuNSAwIDQwbDIzMi45NCAxMDUuNTljNi44IDMuMDggMTQuNDkgMy4wOCAyMS4yOSAwTDQ5OS41OSAyNzYuM2MxNi41NS03LjUgMTYuNTUtMzIuNSAwLTQwem0wIDEyNy44bC01Ny44Ny0yNi4yMy0xNjEuODYgNzMuMzdjLTcuNTYgMy40My0xNS41OSA1LjE3LTIzLjg2IDUuMTdzLTE2LjI5LTEuNzQtMjMuODYtNS4xN0w3MC4yOSAzMzcuODcgMTIuNDEgMzY0LjFjLTE2LjU1IDcuNS0xNi41NSAzMi41IDAgNDBsMjMyLjk0IDEwNS41OWM2LjggMy4wOCAxNC40OSAzLjA4IDIxLjI5IDBMNDk5LjU5IDQwNC4xYzE2LjU1LTcuNSAxNi41NS0zMi41IDAtNDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVhZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDYuMiA5LjdjLTUuNi0xMi41LTIxLjYtMTMtMjguMy0xLjJDNDg2LjkgNjIuNCA0MzEuNCA5NiAzNjggOTZoLTgwQzE4MiA5NiA5NiAxODIgOTYgMjg4YzAgNyAuOCAxMy43IDEuNSAyMC41QzE2MS4zIDI2Mi44IDI1My40IDIyNCAzODQgMjI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2QzEzMi42IDI1NiAyNiA0MTAuMSAyLjQgNDY4Yy02LjYgMTYuMyAxLjIgMzQuOSAxNy41IDQxLjYgMTYuNCA2LjggMzUtMS4xIDQxLjgtMTcuMyAxLjUtMy42IDIwLjktNDcuOSA3MS45LTkwLjYgMzIuNCA0My45IDk0IDg1LjggMTc0LjkgNzcuMkM0NjUuNSA0NjcuNSA1NzYgMzI2LjcgNTc2IDE1NC4zYzAtNTAuMi0xMC44LTEwMi4yLTI5LjgtMTQ0LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVtb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg5LjAzOCAyMi45NjNDNDY1Ljk0NC0uMTMgNDM0LjY0OC01LjkzIDQxMy45NDcgNi4xMjljLTU4LjkwNiAzNC4zMTItMTgxLjI1LTUzLjA3Ny0zMjEuMDczIDg2Ljc0NlM0MC40NDEgMzU1LjA0MSA2LjEyOSA0MTMuOTQ1Yy0xMi4wNTkgMjAuNzAyLTYuMjYgNTEuOTk5IDE2LjgzMyA3NS4wOTMgMjMuMDk1IDIzLjA5NSA1NC4zOTIgMjguODkxIDc1LjA5NSAxNi44MzIgNTguOTAxLTM0LjMxIDE4MS4yNDYgNTMuMDc5IDMyMS4wNjgtODYuNzQzUzQ3MS41NiAxNTYuOTYgNTA1Ljg3MSA5OC4wNTZjMTIuMDU5LTIwLjcwMiA2LjI2MS01MS45OTktMTYuODMzLTc1LjA5M3pNMjQzLjg4MSA5NS41MjJjLTU4LjE4OSAxNC41NDctMTMzLjgwOCA5MC4xNTUtMTQ4LjM1OCAxNDguMzU4LTEuODE3IDcuMjctOC4zNDIgMTIuMTI0LTE1LjUxMSAxMi4xMjQtMS4yODQgMC0yLjU5LS4xNTYtMy44OTMtLjQ4MS04LjU3Mi0yLjE0NC0xMy43ODQtMTAuODMtMTEuNjQyLTE5LjQwM0M4MS45MDEgMTY2LjQyNyAxNjYuMzE2IDgxLjkzIDIzNi4xMTkgNjQuNDc4YzguNTc1LTIuMTQzIDE3LjI2MSAzLjA2OSAxOS40MDMgMTEuNjQycy0zLjA2OSAxNy4yNTktMTEuNjQxIDE5LjQwMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzVGhhbkVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0Ljk4IDIxNC4ybDMwMS40MSAxMTkuODdjMTguMzkgNi4wMyAzOC43MS0yLjU0IDQ1LjM4LTE5LjE1bDEyLjA5LTMwLjA4YzYuNjgtMTYuNjEtMi44Mi0zNC45Ny0yMS4yMS00MWwtMTc1LjQ0LTY4LjA1IDE3NS41Ni02OC4wOWMxOC4yOS02IDI3Ljc0LTI0LjI3IDIxLjEtNDAuNzlsLTEyLjAzLTI5LjkyYy02LjY0LTE2LjUzLTI2Ljg2LTI1LjA2LTQ1LjE1LTE5LjA2TDU0Ljk4IDEzNy44OUM0MS4yMSAxNDIuNDEgMzIgMTU0LjUgMzIgMTY4LjA3djE1Ljk2YzAgMTMuNTYgOS4yMSAyNS42NSAyMi45OCAzMC4xN3pNNDI0IDQwMEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwMGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlc3NUaGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2NS40NiAzNTcuNzRMMTQ3LjA0IDI1NS44OWwyMTguNDctMTAxLjg4YzE2LjAyLTcuNDcgMjIuOTUtMjYuNTEgMTUuNDgtNDIuNTNsLTEzLjUyLTI5QzM2MCA2Ni40NiAzNDAuOTYgNTkuNTMgMzI0Ljk0IDY3TDE4LjQ4IDIwOS45MWEzMi4wMTQgMzIuMDE0IDAgMCAwLTE4LjQ4IDI5djM0LjI0YzAgMTIuNDQgNy4yMSAyMy43NSAxOC40OCAyOWwzMDYuMzEgMTQyLjgzYzE2LjA2IDcuNDkgMzUuMTUuNTQgNDIuNjQtMTUuNTJsMTMuNTYtMjkuMDhjNy40OS0xNi4wNi41NC0zNS4xNS0xNS41My00Mi42NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXZlbERvd25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjU1MyAzOTIuMzMxTDIwOS41ODcgNTA0LjMzNGMtOS40ODUgMTAuMjE0LTI1LjY3NiAxMC4yMjktMzUuMTc0IDBMNzAuNDM4IDM5Mi4zMzFDNTYuMjMyIDM3Ny4wMzEgNjcuMDYyIDM1MiA4OC4wMjUgMzUySDE1MlY4MEg2OC4wMjRhMTEuOTk2IDExLjk5NiAwIDAgMS04LjQ4NS0zLjUxNWwtNTYtNTZDLTQuMDIxIDEyLjkyNiAxLjMzMyAwIDEyLjAyNCAwSDIwOGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MzI4aDYzLjk2NmMyMC44NzggMCAzMS44NTEgMjQuOTY5IDE3LjU4NyA0MC4zMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGV2ZWxVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNTUzIDExOS42NjlMMjA5LjU4NyA3LjY2NmMtOS40ODUtMTAuMjE0LTI1LjY3Ni0xMC4yMjktMzUuMTc0IDBMNzAuNDM4IDExOS42NjlDNTYuMjMyIDEzNC45NjkgNjcuMDYyIDE2MCA4OC4wMjUgMTYwSDE1MnYyNzJINjguMDI0YTExLjk5NiAxMS45OTYgMCAwIDAtOC40ODUgMy41MTVsLTU2IDU2Qy00LjAyMSA0OTkuMDc0IDEuMzMzIDUxMiAxMi4wMjQgNTEySDIwOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwaDYzLjk2NmMyMC44NzggMCAzMS44NTEtMjQuOTY5IDE3LjU4Ny00MC4zMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlmZVJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0xNzMuNjk2IDExOS41NTlsLTYzLjM5OSA2My4zOTljLTEwLjk4Ny0xOC41NTktMjYuNjctMzQuMjUyLTQ1LjI1NS00NS4yNTVsNjMuMzk5LTYzLjM5OWEyMTguMzk2IDIxOC4zOTYgMCAwIDEgNDUuMjU1IDQ1LjI1NXpNMjU2IDM1MmMtNTMuMDE5IDAtOTYtNDIuOTgxLTk2LTk2czQyLjk4MS05NiA5Ni05NiA5NiA0Mi45ODEgOTYgOTYtNDIuOTgxIDk2LTk2IDk2ek0xMjcuNTU5IDgyLjMwNGw2My4zOTkgNjMuMzk5Yy0xOC41NTkgMTAuOTg3LTM0LjI1MiAyNi42Ny00NS4yNTUgNDUuMjU1bC02My4zOTktNjMuMzk5YTIxOC4zNzIgMjE4LjM3MiAwIDAgMSA0NS4yNTUtNDUuMjU1ek04Mi4zMDQgMzg0LjQ0MWw2My4zOTktNjMuMzk5YzEwLjk4NyAxOC41NTkgMjYuNjcgMzQuMjUyIDQ1LjI1NSA0NS4yNTVsLTYzLjM5OSA2My4zOTlhMjE4LjM5NiAyMTguMzk2IDAgMCAxLTQ1LjI1NS00NS4yNTV6bTMwMi4xMzcgNDUuMjU1bC02My4zOTktNjMuMzk5YzE4LjU1OS0xMC45ODcgMzQuMjUyLTI2LjY3IDQ1LjI1NS00NS4yNTVsNjMuMzk5IDYzLjM5OWEyMTguNDAzIDIxOC40MDMgMCAwIDEtNDUuMjU1IDQ1LjI1NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaWdodGJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYuMDYgNDU0LjM1Yy4wMSA2LjI5IDEuODcgMTIuNDUgNS4zNiAxNy42OWwxNy4wOSAyNS42OWEzMS45OSAzMS45OSAwIDAgMCAyNi42NCAxNC4yOGg2MS43MWEzMS45OSAzMS45OSAwIDAgMCAyNi42NC0xNC4yOGwxNy4wOS0yNS42OWEzMS45ODkgMzEuOTg5IDAgMCAwIDUuMzYtMTcuNjlsLjA0LTM4LjM1SDk2LjAxbC4wNSAzOC4zNXpNMCAxNzZjMCA0NC4zNyAxNi40NSA4NC44NSA0My41NiAxMTUuNzggMTYuNTIgMTguODUgNDIuMzYgNTguMjMgNTIuMjEgOTEuNDUuMDQuMjYuMDcuNTIuMTEuNzhoMTYwLjI0Yy4wNC0uMjYuMDctLjUxLjExLS43OCA5Ljg1LTMzLjIyIDM1LjY5LTcyLjYgNTIuMjEtOTEuNDVDMzM1LjU1IDI2MC44NSAzNTIgMjIwLjM3IDM1MiAxNzYgMzUyIDc4LjYxIDI3Mi45MS0uMyAxNzUuNDUgMCA3My40NC4zMSAwIDgyLjk3IDAgMTc2em0xNzYtODBjLTQ0LjExIDAtODAgMzUuODktODAgODAgMCA4Ljg0LTcuMTYgMTYtMTYgMTZzLTE2LTcuMTYtMTYtMTZjMC02MS43NiA1MC4yNC0xMTIgMTEyLTExMiA4Ljg0IDAgMTYgNy4xNiAxNiAxNnMtNy4xNiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNi42MTIgMTg1LjM5MWM1OS43NDcgNTkuODA5IDU4LjkyNyAxNTUuNjk4LjM2IDIxNC41OS0uMTEuMTItLjI0LjI1LS4zNi4zN2wtNjcuMiA2Ny4yYy01OS4yNyA1OS4yNy0xNTUuNjk5IDU5LjI2Mi0yMTQuOTYgMC01OS4yNy01OS4yNi01OS4yNy0xNTUuNyAwLTIxNC45NmwzNy4xMDYtMzcuMTA2YzkuODQtOS44NCAyNi43ODYtMy4zIDI3LjI5NCAxMC42MDYuNjQ4IDE3LjcyMiAzLjgyNiAzNS41MjcgOS42OSA1Mi43MjEgMS45ODYgNS44MjIuNTY3IDEyLjI2Mi0zLjc4MyAxNi42MTJsLTEzLjA4NyAxMy4wODdjLTI4LjAyNiAyOC4wMjYtMjguOTA1IDczLjY2LTEuMTU1IDEwMS45NiAyOC4wMjQgMjguNTc5IDc0LjA4NiAyOC43NDkgMTAyLjMyNS41MWw2Ny4yLTY3LjE5YzI4LjE5MS0yOC4xOTEgMjguMDczLTczLjc1NyAwLTEwMS44My0zLjcwMS0zLjY5NC03LjQyOS02LjU2NC0xMC4zNDEtOC41NjlhMTYuMDM3IDE2LjAzNyAwIDAgMS02Ljk0Ny0xMi42MDZjLS4zOTYtMTAuNTY3IDMuMzQ4LTIxLjQ1NiAxMS42OTgtMjkuODA2bDIxLjA1NC0yMS4wNTVjNS41MjEtNS41MjEgMTQuMTgyLTYuMTk5IDIwLjU4NC0xLjczMWExNTIuNDgyIDE1Mi40ODIgMCAwIDEgMjAuNTIyIDE3LjE5N3pNNDY3LjU0NyA0NC40NDljLTU5LjI2MS01OS4yNjItMTU1LjY5LTU5LjI3LTIxNC45NiAwbC02Ny4yIDY3LjJjLS4xMi4xMi0uMjUuMjUtLjM2LjM3LTU4LjU2NiA1OC44OTItNTkuMzg3IDE1NC43ODEuMzYgMjE0LjU5YTE1Mi40NTQgMTUyLjQ1NCAwIDAgMCAyMC41MjEgMTcuMTk2YzYuNDAyIDQuNDY4IDE1LjA2NCAzLjc4OSAyMC41ODQtMS43MzFsMjEuMDU0LTIxLjA1NWM4LjM1LTguMzUgMTIuMDk0LTE5LjIzOSAxMS42OTgtMjkuODA2YTE2LjAzNyAxNi4wMzcgMCAwIDAtNi45NDctMTIuNjA2Yy0yLjkxMi0yLjAwNS02LjY0LTQuODc1LTEwLjM0MS04LjU2OS0yOC4wNzMtMjguMDczLTI4LjE5MS03My42MzkgMC0xMDEuODNsNjcuMi02Ny4xOWMyOC4yMzktMjguMjM5IDc0LjMtMjguMDY5IDEwMi4zMjUuNTEgMjcuNzUgMjguMyAyNi44NzIgNzMuOTM0LTEuMTU1IDEwMS45NmwtMTMuMDg3IDEzLjA4N2MtNC4zNSA0LjM1LTUuNzY5IDEwLjc5LTMuNzgzIDE2LjYxMiA1Ljg2NCAxNy4xOTQgOS4wNDIgMzQuOTk5IDkuNjkgNTIuNzIxLjUwOSAxMy45MDYgMTcuNDU0IDIwLjQ0NiAyNy4yOTQgMTAuNjA2bDM3LjEwNi0zNy4xMDZjNTkuMjcxLTU5LjI1OSA1OS4yNzEtMTU1LjY5OS4wMDEtMjE0Ljk1OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXJhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzEuOTk0IDI1NmgtNDguMDE5QzMxNy42NCAyNTYgMzEyIDI2MC45MTIgMzEyIDI2Ny4yNDYgMzEyIDM2OCAyMzAuMTc5IDQxNiAxNDQgNDE2VjI1Ni43ODFsMTM0LjYwMy0yOS45MTJBMTIgMTIgMCAwIDAgMjg4IDIxNS4xNTV2LTQwLjk3NmMwLTcuNjc3LTcuMTA5LTEzLjM4LTE0LjYwMy0xMS43MTRMMTQ0IDE5MS4yMTlWMTYwLjc4bDEzNC42MDMtMjkuOTEyQTEyIDEyIDAgMCAwIDI4OCAxMTkuMTU0Vjc4LjE3OWMwLTcuNjc3LTcuMTA5LTEzLjM4LTE0LjYwMy0xMS43MTRMMTQ0IDk1LjIxOVY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDc2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjY4Ljk5N0w5LjM5NyAxMjUuMTMxQTEyIDEyIDAgMCAwIDAgMTM2Ljg0NXY0MC45NzZjMCA3LjY3NyA3LjEwOSAxMy4zOCAxNC42MDMgMTEuNzE0TDY0IDE3OC41NTh2MzAuNDM5TDkuMzk3IDIyMS4xMzFBMTIgMTIgMCAwIDAgMCAyMzIuODQ1djQwLjk3NmMwIDcuNjc3IDcuMTA5IDEzLjM4IDE0LjYwMyAxMS43MTRMNjQgMjc0LjU1OFY0NjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg3OS41ODNjMTM0LjA5MSAwIDIyMy4yNTUtNzcuODM0IDIyOC40MDgtMjExLjU5Mi4yNjEtNi43ODItNS4yMTEtMTIuNDA4LTExLjk5Ny0xMi40MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNDgwSDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTEyOCAxMjBjLTIyLjA5MSAwLTQwIDE3LjkwOS00MCA0MHMxNy45MDkgNDAgNDAgNDAgNDAtMTcuOTA5IDQwLTQwLTE3LjkwOS00MC00MC00MHptMCA5NmMtMjIuMDkxIDAtNDAgMTcuOTA5LTQwIDQwczE3LjkwOSA0MCA0MCA0MCA0MC0xNy45MDkgNDAtNDAtMTcuOTA5LTQwLTQwLTQwem0wIDk2Yy0yMi4wOTEgMC00MCAxNy45MDktNDAgNDBzMTcuOTA5IDQwIDQwIDQwIDQwLTE3LjkwOSA0MC00MC0xNy45MDktNDAtNDAtNDB6bTI4OC0xMzZ2LTMyYzAtNi42MjctNS4zNzMtMTItMTItMTJIMjA0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjMyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjAwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTAgOTZ2LTMyYzAtNi42MjctNS4zNzMtMTItMTItMTJIMjA0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjMyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjAwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTAgOTZ2LTMyYzAtNi42MjctNS4zNzMtMTItMTItMTJIMjA0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjMyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjAwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdE9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxLjc3IDQwMWwxNy41LTIwLjE1YTE5LjkyIDE5LjkyIDAgMCAwIDUuMDctMTQuMTl2LTMuMzFDODQuMzQgMzU2IDgwLjUgMzUyIDczIDM1MkgxNmE4IDggMCAwIDAtOCA4djE2YTggOCAwIDAgMCA4IDhoMjIuODNhMTU3LjQxIDE1Ny40MSAwIDAgMC0xMSAxMi4zMWwtNS42MSA3Yy00IDUuMDctNS4yNSAxMC4xMy0yLjggMTQuODhsMS4wNSAxLjkzYzMgNS43NiA2LjI5IDcuODggMTIuMjUgNy44OGg0LjczYzEwLjMzIDAgMTUuOTQgMi40NCAxNS45NCA5LjA5IDAgNC43Mi00LjIgOC4yMi0xNC4zNiA4LjIyYTQxLjU0IDQxLjU0IDAgMCAxLTE1LjQ3LTMuMTJjLTYuNDktMy44OC0xMS43NC0zLjUtMTUuNiAzLjEybC01LjU5IDkuMzFjLTMuNzIgNi4xMy0zLjE5IDExLjcyIDIuNjMgMTUuOTQgNy43MSA0LjY5IDIwLjM4IDkuNDQgMzcgOS40NCAzNC4xNiAwIDQ4LjUtMjIuNzUgNDguNS00NC4xMi0uMDMtMTQuMzgtOS4xMi0yOS43Ni0yOC43My0zNC44OHpNNDk2IDIyNEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xNjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAzMjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTE2IDE2MGg2NGE4IDggMCAwIDAgOC04di0xNmE4IDggMCAwIDAtOC04SDY0VjQwYTggOCAwIDAgMC04LThIMzJhOCA4IDAgMCAwLTcuMTQgNC40MmwtOCAxNkE4IDggMCAwIDAgMjQgNjRoOHY2NEgxNmE4IDggMCAwIDAtOCA4djE2YTggOCAwIDAgMCA4IDh6bS0zLjkxIDE2MEg4MGE4IDggMCAwIDAgOC04di0xNmE4IDggMCAwIDAtOC04SDQxLjMyYzMuMjktMTAuMjkgNDguMzQtMTguNjggNDguMzQtNTYuNDQgMC0yOS4wNi0yNS0zOS41Ni00NC40Ny0zOS41Ni0yMS4zNiAwLTMzLjggMTAtNDAuNDYgMTguNzUtNC4zNyA1LjU5LTMgMTAuODQgMi44IDE1LjM3bDguNTggNi44OGM1LjYxIDQuNTYgMTEgMi40NyAxNi4xMi0yLjQ0YTEzLjQ0IDEzLjQ0IDAgMCAxIDkuNDYtMy44NGMzLjMzIDAgOS4yOCAxLjU2IDkuMjggOC43NUM1MSAyNDguMTkgMCAyNTcuMzEgMCAzMDQuNTl2NEMwIDMxNiA1LjA4IDMyMCAxMi4wOSAzMjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdFVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDQ4YTQ4IDQ4IDAgMSAwIDQ4IDQ4IDQ4IDQ4IDAgMCAwLTQ4LTQ4em0wIDE2MGE0OCA0OCAwIDEgMCA0OCA0OCA0OCA0OCAwIDAgMC00OC00OHptMCAxNjBhNDggNDggMCAxIDAgNDggNDggNDggNDggMCAwIDAtNDgtNDh6bTQ0OCAxNkgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAzNjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNkExNiAxNiAwIDAgMCAwIDY0djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjY0YTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTQxNiAxNzZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY2F0aW9uQXJyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ0LjUyIDMuNTJMMjguNzQgMTk1LjQyYy00Ny45NyAyMi4zOS0zMS45OCA5Mi43NSAxOS4xOSA5Mi43NWgxNzUuOTF2MTc1LjkxYzAgNTEuMTcgNzAuMzYgNjcuMTcgOTIuNzUgMTkuMTlsMTkxLjktNDE1Ljc4YzE1Ljk5LTM4LjM5LTI1LjU5LTc5Ljk3LTYzLjk3LTYzLjk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY2tPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMy41IDBDMzM5LjUuMyAyNzIgNjkuNSAyNzIgMTUzLjVWMjI0SDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxOTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI3MmMwLTI2LjUtMjEuNS00OC00OC00OGgtNDh2LTcxLjFjMC0zOS42IDMxLjctNzIuNSA3MS4zLTcyLjkgNDAtLjQgNzIuNyAzMi4xIDcyLjcgNzJ2ODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTgwQzU3NiA2OCA1MDcuNS0uMyA0MjMuNSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDIyNGgtMjR2LTcyQzM3NiA2OC4yIDMwNy44IDAgMjI0IDBTNzIgNjguMiA3MiAxNTJ2NzJINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djE5MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTA0IDBIMTUydi03MmMwLTM5LjcgMzIuMy03MiA3Mi03MnM3MiAzMi4zIDcyIDcydjcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvbmdBcnJvd0FsdERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4IDM0NS45NDFWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNTZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzAxLjk0MUg0MS45NDFjLTIxLjM4MiAwLTMyLjA5IDI1Ljg1MS0xNi45NzEgNDAuOTcxbDg2LjA1OSA4Ni4wNTljOS4zNzMgOS4zNzMgMjQuNTY5IDkuMzczIDMzLjk0MSAwbDg2LjA1OS04Ni4wNTljMTUuMTE5LTE1LjExOSA0LjQxMS00MC45NzEtMTYuOTcxLTQwLjk3MUgxNjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9uZ0Fycm93QWx0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzQuMDU5IDI5Nkg0MzZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNTZjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMzQuMDU5di00Ni4wNTljMC0yMS4zODItMjUuODUxLTMyLjA5LTQwLjk3MS0xNi45NzFMNy4wMjkgMjM5LjAyOWMtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDg2LjA1OSA4Ni4wNTljMTUuMTE5IDE1LjExOSA0MC45NzEgNC40MTEgNDAuOTcxLTE2Ljk3MVYyOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9uZ0Fycm93QWx0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEzLjk0MSAyMTZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzMDEuOTQxdjQ2LjA1OWMwIDIxLjM4MiAyNS44NTEgMzIuMDkgNDAuOTcxIDE2Ljk3MWw4Ni4wNTktODYuMDU5YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MWwtODYuMDU5LTg2LjA1OWMtMTUuMTE5LTE1LjExOS00MC45NzEtNC40MTEtNDAuOTcxIDE2Ljk3MVYyMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9uZ0Fycm93QWx0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODggMTY2LjA1OVY0NjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjE2Ni4wNTloNDYuMDU5YzIxLjM4MiAwIDMyLjA5LTI1Ljg1MSAxNi45NzEtNDAuOTcxbC04Ni4wNTktODYuMDU5Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBsLTg2LjA1OSA4Ni4wNTljLTE1LjExOSAxNS4xMTktNC40MTEgNDAuOTcxIDE2Ljk3MSA0MC45NzFIODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG93VmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OS4zNDQgMjMxLjYzMUM1MTIuOTYgMTM1Ljk0OSA0MDcuODEgNzIgMjg4IDcyYy0yOC40NjggMC01Ni4xMDIgMy42MTktODIuNDUxIDEwLjQwOUwxNTIuNzc4IDEwLjI0Yy03LjYwMS0xMC44NTgtMjIuNTY0LTEzLjUtMzMuNDIzLTUuOWwtMTMuMTE0IDkuMTc4Yy0xMC44NiA3LjYwMS0xMy41MDIgMjIuNTY2LTUuOSAzMy40MjZsNDMuMTMxIDU4LjM5NUM4OS40NDkgMTMxLjczIDQwLjIyOCAxNzQuNjgzIDYuNjgyIDIzMS41ODFjLS4wMS4wMTctLjAyMy4wMzMtLjAzNC4wNS04Ljc2NSAxNC44NzUtOC45NjQgMzMuNTI4IDAgNDguNzM5IDM4LjUgNjUuMzMyIDk5Ljc0MiAxMTUuODYyIDE3Mi44NTkgMTQxLjM0OUw1NS4zMTYgMjQ0LjMwMkEyNzIuMTk0IDI3Mi4xOTQgMCAwIDEgODMuNjEgMjA4LjM5bDExOS40IDE3MC41OGguMDFsNDAuNjMgNTguMDRhMzMwLjA1NSAzMzAuMDU1IDAgMCAwIDc4Ljk0IDEuMTdsLTE4OS45OC0yNzEuNGEyNzcuNjI4IDI3Ny42MjggMCAwIDEgMzguNzc3LTIxLjU2M2wyNTEuODM2IDM1Ni41NDRjNy42MDEgMTAuODU4IDIyLjU2NCAxMy40OTkgMzMuNDIzIDUuOWwxMy4xMTQtOS4xNzhjMTAuODYtNy42MDEgMTMuNTAyLTIyLjU2NyA1LjktMzMuNDI2bC00My4xMi01OC4zNzctLjAwNy0uMDA5YzU3LjE2MS0yNy45NzggMTA0LjgzNS03Mi4wNCAxMzYuODEtMTI2LjMwMWE0Ny45MzggNDcuOTM4IDAgMCAwIC4wMDEtNDguNzM5ek0zOTAuMDI2IDM0NS45NGwtMTkuMDY2LTI3LjIzYzI0LjY4Mi0zMi41NjcgMjcuNzExLTc2LjM1MyA4LjgtMTExLjY4di4wM2MwIDIzLjY1LTE5LjE3IDQyLjgyLTQyLjgyIDQyLjgyLTIzLjgyOCAwLTQyLjgyLTE5LjM0OS00Mi44Mi00Mi44MiAwLTIzLjY1IDE5LjE3LTQyLjgyIDQyLjgyLTQyLjgyaC4wM2MtMjQuNzUtMTMuMjQ5LTUzLjUyMi0xNS42NDMtNzkuNTEtNy42OGwtMTkuMDY4LTI3LjIzN0MyNTMuNzU4IDEyMy4zMDYgMjcwLjQ4OCAxMjAgMjg4IDEyMGM3NS4xNjIgMCAxMzYgNjAuODI2IDEzNiAxMzYgMCAzNC41MDQtMTIuODMzIDY1Ljk3NS0zMy45NzQgODkuOTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTHVnZ2FnZUNhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDMyMGgzMlY5NmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ6bTM1Mi0zMlYxMjhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJ2MjI0aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ6bTQ4IDk2SDEyOFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDAgMCA3LjE2IDAgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2MzY4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDgyLjk0Yy0xLjc5IDUuMDMtMi45NCAxMC4zNi0yLjk0IDE2IDAgMjYuNTEgMjEuNDkgNDggNDggNDhzNDgtMjEuNDkgNDgtNDhjMC01LjY0LTEuMTUtMTAuOTctMi45NC0xNmgxOTcuODhjLTEuNzkgNS4wMy0yLjk0IDEwLjM2LTIuOTQgMTYgMCAyNi41MSAyMS40OSA0OCA0OCA0OHM0OC0yMS40OSA0OC00OGMwLTUuNjQtMS4xNS0xMC45Ny0yLjk0LTE2SDYyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTQ4MCA5NlY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC05NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyNzJoMTkyVjk2em0tNDggMGgtOTZWNDhoOTZ2NDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTHVuZ3NWaXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQsMTUwLjY4VjE2QTE2LDE2LDAsMCwwLDMyOCwwSDMxMmExNiwxNiwwLDAsMC0xNiwxNlYxNTAuNjhhNDYuNDUsNDYuNDUsMCwwLDEsNDgsMFpNMTk1LjU0LDQ0NC40NmE0OC4wNiw0OC4wNiwwLDAsMSwwLTY3Ljg4bDguNTgtOC41OEgxOTJhNDgsNDgsMCwwLDEsMC05NmgxMi4xMmwtOC41OC04LjU3YTQ4LDQ4LDAsMCwxLDYwLjQ2LTc0VjE2MS43NUMyNTYsMTI1LjM4LDIyNC42Miw5NiwxODYsOTZjLTQ0LDAtNTgsMjguNS04MC4xMiw2My4xM2E4MTkuNTIsODE5LjUyLDAsMCwwLTEwMiwyMzFBMTEzLjE2LDExMy4xNiwwLDAsMCwwLDQxOS43NUMwLDQ4MSw2Mi41LDUyNS4yNiwxMjUuMjUsNTA4LjM4bDU5LjUtMTUuODdhOTguNTEsOTguNTEsMCwwLDAsNTIuNS0zNC43NSw0Ni40OSw0Ni40OSwwLDAsMS00MS43MS0xMy4zWm0yMjYuMjktMjIuNjNhMTYsMTYsMCwwLDAsMC0yMi42MmwtOC41OC04LjU4QzM5My4wOSwzNzAuNDcsNDA3LjM3LDMzNiw0MzUuODgsMzM2SDQ0OGExNiwxNiwwLDAsMCwwLTMySDQzNS44OGMtMjguNTEsMC00Mi43OS0zNC40Ny0yMi42My01NC42Mmw4LjU4LTguNThhMTYsMTYsMCwwLDAtMjIuNjMtMjIuNjNsLTguNTcsOC41OEMzNzAuNDcsMjQ2LjkxLDMzNiwyMzIuNjMsMzM2LDIwNC4xMlYxOTJhMTYsMTYsMCwwLDAtMzIsMHYxMi4xMmMwLDI4LjUxLTM0LjQ3LDQyLjc5LTU0LjYzLDIyLjYzbC04LjU3LTguNThhMTYsMTYsMCwwLDAtMjIuNjMsMjIuNjNsOC41OCw4LjU4YzIwLjE2LDIwLjE1LDUuODgsNTQuNjItMjIuNjMsNTQuNjJIMTkyYTE2LDE2LDAsMCwwLDAsMzJoMTIuMTJjMjguNTEsMCw0Mi43OSwzNC40NywyMi42Myw1NC42M2wtOC41OCw4LjU4YTE2LDE2LDAsMSwwLDIyLjYzLDIyLjYybDguNTctOC41N0MyNjkuNTMsMzkzLjEsMzA0LDQwNy4zOCwzMDQsNDM1Ljg4VjQ0OGExNiwxNiwwLDAsMCwzMiwwVjQzNS44OGMwLTI4LjUsMzQuNDctNDIuNzgsNTQuNjMtMjIuNjJsOC41Nyw4LjU3YTE2LDE2LDAsMCwwLDIyLjYzLDBaTTI4OCwzMDRhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsMjg4LDMwNFptNjQsNjRhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsMzUyLDM2OFptMjg0LjEyLDIyLjEzYTgxOS41Miw4MTkuNTIsMCwwLDAtMTAyLTIzMUM1MTIsMTI0LjUsNDk4LDk2LDQ1NCw5NmMtMzguNjIsMC03MCwyOS4zOC03MCw2NS43NXYyNy43MmE0OCw0OCwwLDAsMSw2MC40Niw3NEw0MzUuODgsMjcySDQ0OGE0OCw0OCwwLDAsMSwwLDk2SDQzNS44OGw4LjU4LDguNThhNDcuNyw0Ny43LDAsMCwxLTQxLjcxLDgxLjE4LDk4LjUxLDk4LjUxLDAsMCwwLDUyLjUsMzQuNzVsNTkuNSwxNS44N0M1NzcuNSw1MjUuMjYsNjQwLDQ4MSw2NDAsNDE5Ljc1QTExMy4xNiwxMTMuMTYsMCwwLDAsNjM2LjEyLDM5MC4xM1pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMdW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzYuMTEgMzkwLjE1QzYxNC40NCAzMDguODUgNTgwLjA3IDIzMSA1MzQuMSAxNTkuMTMgNTExLjk4IDEyNC41NiA0OTguMDMgOTYgNDU0LjA1IDk2IDQxNS4zNiA5NiAzODQgMTI1LjQyIDM4NCAxNjEuNzF2NjAuMTFsLTMyLjg4LTIxLjkyYTE1Ljk5NiAxNS45OTYgMCAwIDEtNy4xMi0xMy4zMVYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE3MC41OWMwIDUuMzUtMi42NyAxMC4zNC03LjEyIDEzLjMxTDI1NiAyMjEuODJ2LTYwLjExQzI1NiAxMjUuNDIgMjI0LjY0IDk2IDE4NS45NSA5NmMtNDMuOTggMC01Ny45MyAyOC41Ni04MC4wNSA2My4xM0M1OS45MyAyMzEgMjUuNTYgMzA4Ljg1IDMuODkgMzkwLjE1IDEuMyAzOTkuODQgMCA0MDkuNzkgMCA0MTkuNzhjMCA2MS4yMyA2Mi40OCAxMDUuNDQgMTI1LjI0IDg4LjYybDU5LjUtMTUuOTVjNDIuMTgtMTEuMyA3MS4yNi00Ny40NyA3MS4yNi04OC42MnYtODcuNDlsLTg1Ljg0IDU3LjIzYTcuOTkyIDcuOTkyIDAgMCAxLTExLjA5LTIuMjJsLTguODgtMTMuMzFhNy45OTIgNy45OTIgMCAwIDEgMi4yMi0xMS4wOUwzMjAgMjM1LjIzbDE2Ny41OSAxMTEuNzJhNy45OTQgNy45OTQgMCAwIDEgMi4yMiAxMS4wOWwtOC44OCAxMy4zMWE3Ljk5NCA3Ljk5NCAwIDAgMS0xMS4wOSAyLjIyTDM4NCAzMTYuMzR2ODcuNDljMCA0MS4xNSAyOS4wOCA3Ny4zMSA3MS4yNiA4OC42Mmw1OS41IDE1Ljk1QzU3Ny41MiA1MjUuMjIgNjQwIDQ4MS4wMSA2NDAgNDE5Ljc4YzAtOS45OS0xLjMtMTkuOTQtMy44OS0yOS42M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWdpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgOTZsMTYtMzIgMzItMTYtMzItMTYtMTYtMzItMTYgMzItMzIgMTYgMzIgMTYgMTYgMzJ6TTgwIDE2MGwyNi42Ni01My4zM0wxNjAgODBsLTUzLjM0LTI2LjY3TDgwIDAgNTMuMzQgNTMuMzMgMCA4MGw1My4zNCAyNi42N0w4MCAxNjB6bTM1MiAxMjhsLTI2LjY2IDUzLjMzTDM1MiAzNjhsNTMuMzQgMjYuNjdMNDMyIDQ0OGwyNi42Ni01My4zM0w1MTIgMzY4bC01My4zNC0yNi42N0w0MzIgMjg4em03MC42Mi0xOTMuNzdMNDE3Ljc3IDkuMzhDNDExLjUzIDMuMTIgNDAzLjM0IDAgMzk1LjE1IDBjLTguMTkgMC0xNi4zOCAzLjEyLTIyLjYzIDkuMzhMOS4zOCAzNzIuNTJjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjVsODQuODUgODQuODVjNi4yNSA2LjI1IDE0LjQ0IDkuMzcgMjIuNjIgOS4zNyA4LjE5IDAgMTYuMzgtMy4xMiAyMi42My05LjM3bDM2My4xNC0zNjMuMTVjMTIuNS0xMi40OCAxMi41LTMyLjc1IDAtNDUuMjR6TTM1OS40NSAyMDMuNDZsLTUwLjkxLTUwLjkxIDg2LjYtODYuNiA1MC45MSA1MC45MS04Ni42IDg2LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NC4wNyAxNDguMUgxMmExMiAxMiAwIDAgMS0xMi0xMnYtODBhMzYgMzYgMCAwIDEgMzYtMzZoMTA0YTM2IDM2IDAgMCAxIDM2IDM2djgwYTExLjg5IDExLjg5IDAgMCAxLTExLjkzIDEyem0zNDcuOTMtMTJWNTZhMzYgMzYgMCAwIDAtMzYtMzZIMzcyYTM2IDM2IDAgMCAwLTM2IDM2djgwYTEyIDEyIDAgMCAwIDEyIDEyaDE1MmExMS44OSAxMS44OSAwIDAgMCAxMi0xMS45em0tMTY0IDQ0YTEyIDEyIDAgMCAwLTEyIDEydjUyYzAgMTI4LjEtMTYwIDEyNy45LTE2MCAwdi01MmExMiAxMiAwIDAgMC0xMi0xMkgxMi4xYTEyIDEyIDAgMCAwLTEyIDEyLjFjLjEgMjEuNC42IDQwLjMgMCA1My4zIDAgMTUwLjYgMTM2LjE3IDI0Ni42IDI1Ni43NSAyNDYuNnMyNTUtOTYgMjU1LTI0Ni43Yy0uNi0xMi44LS4yLTMzIDAtNTMuMmExMiAxMiAwIDAgMC0xMi0xMi4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1haWxCdWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA0NDhjLTI1LjYgMC01MS4yLTIyLjQtNjQtMzItNjQtNDQuOC04My4yLTYwLjgtOTYtNzAuNFY0ODBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgyNTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNDUuNmMtMTIuOCA5LjYtMzIgMjUuNi05NiA3MC40LTEyLjggOS42LTM4LjQgMzItNjQgMzJ6bTEyOC0xOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTZjMjUuNiAxOS4yIDIyLjQgMTkuMiAxMTUuMiA4Ni40IDkuNiA2LjQgMjguOCAyNS42IDQ0LjggMjUuNnMzNS4yLTE5LjIgNDQuOC0yMi40YzkyLjgtNjcuMiA4OS42LTY3LjIgMTE1LjItODYuNFYyODhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMjU2LTk2SDIyNGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmg5NmMzMy4yMSAwIDYwLjU5IDI1LjQyIDYzLjcxIDU3LjgybC4yOS0uMjJWNDE2aDE5MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjE5MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tMzIgMTI4aC02NHYtNjRoNjR2NjR6bS0zNTItOTZjMC0zNS4yOSAyOC43MS02NCA2NC02NGgyMjRWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkg5NkM3OC4zMyAwIDY0IDE0LjMzIDY0IDMydjE5Mmg5NnYtMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwYzM1LjM0NiAwIDY0IDI4LjY1NCA2NCA2NHMtMjguNjU0IDY0LTY0IDY0LTY0LTI4LjY1NC02NC02NFM2MC42NTQgMCA5NiAwbTQ4IDE0NGgtMTEuMzZjLTIyLjcxMSAxMC40NDMtNDkuNTkgMTAuODk0LTczLjI4IDBINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MTM2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNnYxMzZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYzNTJoMTZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE5MmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcE1hcmtlZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtNjkuNTkgMC0xMjYgNTYuNDEtMTI2IDEyNiAwIDU2LjI2IDgyLjM1IDE1OC44IDExMy45IDE5Ni4wMiA2LjM5IDcuNTQgMTcuODIgNy41NCAyNC4yIDBDMzMxLjY1IDI4NC44IDQxNCAxODIuMjYgNDE0IDEyNiA0MTQgNTYuNDEgMzU3LjU5IDAgMjg4IDB6bTAgMTY4Yy0yMy4yIDAtNDItMTguOC00Mi00MnMxOC44LTQyIDQyLTQyIDQyIDE4LjggNDIgNDItMTguOCA0Mi00MiA0MnpNMjAuMTIgMjE1Ljk1QTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAyNDUuNjZ2MjUwLjMyYzAgMTEuMzIgMTEuNDMgMTkuMDYgMjEuOTQgMTQuODZMMTYwIDQ0OFYyMTQuOTJjLTguODQtMTUuOTgtMTYuMDctMzEuNTQtMjEuMjUtNDYuNDJMMjAuMTIgMjE1Ljk1ek0yODggMzU5LjY3Yy0xNC4wNyAwLTI3LjM4LTYuMTgtMzYuNTEtMTYuOTYtMTkuNjYtMjMuMi00MC41Ny00OS42Mi01OS40OS03Ni43MnYxODJsMTkyIDY0VjI2NmMtMTguOTIgMjcuMDktMzkuODIgNTMuNTItNTkuNDkgNzYuNzItOS4xMyAxMC43Ny0yMi40NCAxNi45NS0zNi41MSAxNi45NXptMjY2LjA2LTE5OC41MUw0MTYgMjI0djI4OGwxMzkuODgtNTUuOTVBMzEuOTk2IDMxLjk5NiAwIDAgMCA1NzYgNDI2LjM0VjE3Ni4wMmMwLTExLjMyLTExLjQzLTE5LjA2LTIxLjk0LTE0Ljg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcE1hcmtlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtNjkuNTkgMC0xMjYgNTYuNDEtMTI2IDEyNiAwIDU2LjI2IDgyLjM1IDE1OC44IDExMy45IDE5Ni4wMiA2LjM5IDcuNTQgMTcuODIgNy41NCAyNC4yIDBDMzMxLjY1IDI4NC44IDQxNCAxODIuMjYgNDE0IDEyNiA0MTQgNTYuNDEgMzU3LjU5IDAgMjg4IDB6TTIwLjEyIDIxNS45NUEzMi4wMDYgMzIuMDA2IDAgMCAwIDAgMjQ1LjY2djI1MC4zMmMwIDExLjMyIDExLjQzIDE5LjA2IDIxLjk0IDE0Ljg2TDE2MCA0NDhWMjE0LjkyYy04Ljg0LTE1Ljk4LTE2LjA3LTMxLjU0LTIxLjI1LTQ2LjQyTDIwLjEyIDIxNS45NXpNMjg4IDM1OS42N2MtMTQuMDcgMC0yNy4zOC02LjE4LTM2LjUxLTE2Ljk2LTE5LjY2LTIzLjItNDAuNTctNDkuNjItNTkuNDktNzYuNzJ2MTgybDE5MiA2NFYyNjZjLTE4LjkyIDI3LjA5LTM5LjgyIDUzLjUyLTU5LjQ5IDc2LjcyLTkuMTMgMTAuNzctMjIuNDQgMTYuOTUtMzYuNTEgMTYuOTV6bTI2Ni4wNi0xOTguNTFMNDE2IDIyNHYyODhsMTM5Ljg4LTU1Ljk1QTMxLjk5NiAzMS45OTYgMCAwIDAgNTc2IDQyNi4zNFYxNzYuMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBNYXJrZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcyLjI2OCA1MDEuNjdDMjYuOTcgMjkxLjAzMSAwIDI2OS40MTMgMCAxOTIgMCA4NS45NjEgODUuOTYxIDAgMTkyIDBzMTkyIDg1Ljk2MSAxOTIgMTkyYzAgNzcuNDEzLTI2Ljk3IDk5LjAzMS0xNzIuMjY4IDMwOS42Ny05LjUzNSAxMy43NzQtMjkuOTMgMTMuNzczLTM5LjQ2NCAwek0xOTIgMjcyYzQ0LjE4MyAwIDgwLTM1LjgxNyA4MC04MHMtMzUuODE3LTgwLTgwLTgwLTgwIDM1LjgxNy04MCA4MCAzNS44MTcgODAgODAgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwTWFya2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Mi4yNjggNTAxLjY3QzI2Ljk3IDI5MS4wMzEgMCAyNjkuNDEzIDAgMTkyIDAgODUuOTYxIDg1Ljk2MSAwIDE5MiAwczE5MiA4NS45NjEgMTkyIDE5MmMwIDc3LjQxMy0yNi45NyA5OS4wMzEtMTcyLjI2OCAzMDkuNjctOS41MzUgMTMuNzc0LTI5LjkzIDEzLjc3My0zOS40NjQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDMxNi45NHYxNTYuNjlsMjIuMDIgMzMuMDJjNC43NSA3LjEyIDE1LjIyIDcuMTIgMTkuOTcgMEwxNzYgNDczLjYzVjMxNi45NGMtMTAuMzkgMS45Mi0yMS4wNiAzLjA2LTMyIDMuMDZzLTIxLjYxLTEuMTQtMzItMy4wNnpNMTQ0IDBDNjQuNDcgMCAwIDY0LjQ3IDAgMTQ0czY0LjQ3IDE0NCAxNDQgMTQ0IDE0NC02NC40NyAxNDQtMTQ0UzIyMy41MyAwIDE0NCAwem0wIDc2Yy0zNy41IDAtNjggMzAuNS02OCA2OCAwIDYuNjItNS4zOCAxMi0xMiAxMnMtMTItNS4zOC0xMi0xMmMwLTUwLjczIDQxLjI4LTkyIDkyLTkyIDYuNjIgMCAxMiA1LjM4IDEyIDEycy01LjM4IDEyLTEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcFNpZ25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNy4zMSA4NC42OUw0NjQgNDEuMzdjLTYtNi0xNC4xNC05LjM3LTIyLjYzLTkuMzdIMjg4VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZINTZjLTEzLjI1IDAtMjQgMTAuNzUtMjQgMjR2ODBjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGgzODUuMzdjOC40OSAwIDE2LjYyLTMuMzcgMjIuNjMtOS4zN2w0My4zMS00My4zMWM2LjI1LTYuMjYgNi4yNS0xNi4zOCAwLTIyLjYzek0yMjQgNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2VjM4NGgtNjR2MTEyem0yMzItMjcySDI4OHYtMzJoLTY0djMySDcwLjYzYy04LjQ5IDAtMTYuNjIgMy4zNy0yMi42MyA5LjM3TDQuNjkgMjc2LjY5Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzTDQ4IDM0Mi42M2M2IDYgMTQuMTQgOS4zNyAyMi42MyA5LjM3SDQ1NmMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di04MGMwLTEzLjI1LTEwLjc1LTI0LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExNy42NnYzNDYuMzJjMCAxMS4zMiAxMS40MyAxOS4wNiAyMS45NCAxNC44NkwxNjAgNDE2VjMyTDIwLjEyIDg3Ljk1QTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTcuNjZ6TTE5MiA0MTZsMTkyIDY0Vjk2TDE5MiAzMnYzODR6TTU1NC4wNiAzMy4xNkw0MTYgOTZ2Mzg0bDEzOS44OC01NS45NUEzMS45OTYgMzEuOTk2IDAgMCAwIDU3NiAzOTQuMzRWNDguMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTMuOTUgMjkwLjAzQTMyNy4wMzggMzI3LjAzOCAwIDAgMCAuMTcgNDg1LjExbC0uMDMuMjNjLTEuNyAxNS4yOCAxMS4yMSAyOC4yIDI2LjQ5IDI2LjUxYTMyNy4wMiAzMjcuMDIgMCAwIDAgMTk1LjM0LTkzLjhsNzUuNC03NS40LTEyOC4wMi0xMjguMDItNzUuNCA3NS40ek00ODUuNDkgMjYuNTFjLTM1LjM1LTM1LjM1LTkyLjY3LTM1LjM1LTEyOC4wMiAwbC0yMS43NiAyMS43Ni0zNi41Ni0zNi41NWMtMTUuNjItMTUuNjItNDAuOTUtMTUuNjItNTYuNTYgMEwxMzguNDcgMTE1Ljg0Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsODcuMTUtODcuMTUgMTkuNTkgMTkuNTlMMTkxLjk4IDE5MiAzMjAgMzIwLjAybDE2NS40OS0xNjUuNDljMzUuMzUtMzUuMzUgMzUuMzUtOTIuNjYgMC0xMjguMDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc0RvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDAgMGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS00OC43IDQ4LjdDMTk4LjUgNzIuMSAxNzIuMiA2NCAxNDQgNjQgNjQuNSA2NCAwIDEyOC41IDAgMjA4czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NGMwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDQ4LjctNDguNyAxNi45IDE2LjljMi40IDIuNCA1LjUgMy41IDguNCAzLjUgNi4yIDAgMTIuMS00LjggMTIuMS0xMlYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCAyODhjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwem0zNTYtMTI4LjFoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktNDguNyA0OC43Yy0xOC4yLTExLjQtMzktMTguOS02MS41LTIxLjMtMi4xIDIxLjgtOC4yIDQzLjMtMTguNCA2My4zIDEuMSAwIDIuMi0uMSAzLjItLjEgNDQuMSAwIDgwIDM1LjkgODAgODBzLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MGMwLTEuMSAwLTIuMi4xLTMuMi0yMCAxMC4yLTQxLjUgMTYuNC02My4zIDE4LjRDMTY4LjQgNDU1LjYgMjI5LjYgNTEyIDMwNCA1MTJjNzkuNSAwIDE0NC02NC41IDE0NC0xNDQgMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2w0OC43LTQ4LjcgMTYuOSAxNi45YzIuNCAyLjQgNS40IDMuNSA4LjQgMy41IDYuMiAwIDEyLjEtNC44IDEyLjEtMTJ2LTc5YzAtNi43LTUuNC0xMi4xLTEyLTEyLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc1N0cm9rZUggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc2LjIgMjQ3LjVsLTU1LjktNTUuOWMtNy42LTcuNi0yMC41LTIuMi0yMC41IDguNVYyMjRIMzc2di0yMGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2MjBoLTI3LjZjLTUuOC0yNS42LTE4LjctNDkuOS0zOC42LTY5LjhDMTg5LjYgOTggOTguNCA5OCA0Mi4yIDE1NC4yYy01Ni4yIDU2LjItNTYuMiAxNDcuNCAwIDIwMy42IDU2LjIgNTYuMiAxNDcuNCA1Ni4yIDIwMy42IDAgMTkuOS0xOS45IDMyLjgtNDQuMiAzOC42LTY5LjhIMzEydjIwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTIwaDIzLjl2MjMuOWMwIDEwLjcgMTIuOSAxNiAyMC41IDguNWw1NS45LTU1LjljNC42LTQuNyA0LjYtMTIuMy0uMS0xN3ptLTI3NS42IDY1LjFjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMC0zMS4yLTMxLjItMzEuMi04MS45IDAtMTEzLjEgMzEuMi0zMS4yIDgxLjktMzEuMiAxMTMuMSAwIDMxLjIgMzEuMSAzMS4yIDgxLjkgMCAxMTMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzU3Ryb2tlViAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDUuOCAyMzQuMmMtMTkuOS0xOS45LTQ0LjItMzIuOC02OS44LTM4LjZ2LTI1LjRoMjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwVjgxLjRoMjMuOWMxMC43IDAgMTYtMTIuOSA4LjUtMjAuNUwxNTIuNSA1LjFjLTQuNy00LjctMTIuMy00LjctMTcgMEw3OS42IDYxYy03LjYgNy42LTIuMiAyMC41IDguNSAyMC41SDExMnYyNC43SDkyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDIwdjI1LjRjLTI1LjYgNS44LTQ5LjkgMTguNy02OS44IDM4LjYtNTYuMiA1Ni4yLTU2LjIgMTQ3LjQgMCAyMDMuNiA1Ni4yIDU2LjIgMTQ3LjQgNTYuMiAyMDMuNiAwIDU2LjMtNTYuMiA1Ni4zLTE0Ny40IDAtMjAzLjZ6bS00NS4yIDE1OC40Yy0zMS4yIDMxLjItODEuOSAzMS4yLTExMy4xIDAtMzEuMi0zMS4yLTMxLjItODEuOSAwLTExMy4xIDMxLjItMzEuMiA4MS45LTMxLjIgMTEzLjEgMCAzMS4yIDMxLjEgMzEuMiA4MS45IDAgMTEzLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc1N0cm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgNjRoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktMTcuNSAxNy41LTE0LjEtMTQuMWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDIyNC41IDEzM2MtNC43IDQuNy00LjcgMTIuMyAwIDE3bDE0LjEgMTQuMS0xOCAxOGMtMjIuMi0xNC00OC41LTIyLjEtNzYuNy0yMi4xQzY0LjUgMTYwIDAgMjI0LjUgMCAzMDRzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0YzAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsMTgtMTggMTQuMSAxNC4xYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGwyOC4zLTI4LjNjNC43LTQuNyA0LjctMTIuMyAwLTE3TDMyOS4yIDE2NGwxNy41LTE3LjUgMTYuOSAxNi45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWNzZjLS4xLTYuNi01LjUtMTItMTIuMS0xMnpNMTQ0IDM4NGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgNjRoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktODAuNyA4MC43Yy0yMi4yLTE0LTQ4LjUtMjIuMS03Ni43LTIyLjFDNjQuNSAxNjAgMCAyMjQuNSAwIDMwNHM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDRjMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2w4MC43LTgwLjcgMTYuOSAxNi45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWNzZjMC02LjYtNS40LTEyLTEyLTEyek0xNDQgMzg0Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC42NyA2NGMtNDQyLjYgMC0zNTcuNTcgMzg0LTE1OC40NiAzODQgMzkuOSAwIDc3LjQ3LTIwLjY5IDEwMS40Mi01NS44NmwyNS43My0zNy43OWMxNS42Ni0yMi45OSA0Ni45Ny0yMi45OSA2Mi42MyAwbDI1LjczIDM3Ljc5QzQwMS42NiA0MjcuMzEgNDM5LjIzIDQ0OCA0NzkuMTMgNDQ4YzE4OS44NiAwIDI5MC42My0zODQtMTU4LjQ2LTM4NHpNMTg0IDMwOC4zNmMtNDEuMDYgMC02Ny43Ni0yNS42Ni04MC4wOC00MS4wNS01LjIzLTYuNTMtNS4yMy0xNi4wOSAwLTIyLjYzIDEyLjMyLTE1LjQgMzkuMDEtNDEuMDUgODAuMDgtNDEuMDVzNjcuNzYgMjUuNjYgODAuMDggNDEuMDVjNS4yMyA2LjUzIDUuMjMgMTYuMDkgMCAyMi42My0xMi4zMiAxNS40LTM5LjAyIDQxLjA1LTgwLjA4IDQxLjA1em0yNzIgMGMtNDEuMDYgMC02Ny43Ni0yNS42Ni04MC4wOC00MS4wNS01LjIzLTYuNTMtNS4yMy0xNi4wOSAwLTIyLjYzIDEyLjMyLTE1LjQgMzkuMDEtNDEuMDUgODAuMDgtNDEuMDVzNjcuNzYgMjUuNjYgODAuMDggNDEuMDVjNS4yMyA2LjUzIDUuMjMgMTYuMDkgMCAyMi42My0xMi4zMiAxNS40LTM5LjAyIDQxLjA1LTgwLjA4IDQxLjA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMy43NSAxMzAuNzVMMTU0LjYyIDE1LjU0QTMxLjk5NyAzMS45OTcgMCAwIDAgMTI3LjE4IDBIMTYuMDNDMy4wOCAwLTQuNSAxNC41NyAyLjkyIDI1LjE4bDExMS4yNyAxNTguOTZjMjkuNzItMjcuNzcgNjcuNTItNDYuODMgMTA5LjU2LTUzLjM5ek00OTUuOTcgMEgzODQuODJjLTExLjI0IDAtMjEuNjYgNS45LTI3LjQ0IDE1LjU0bC02OS4xMyAxMTUuMjFjNDIuMDQgNi41NiA3OS44NCAyNS42MiAxMDkuNTYgNTMuMzhMNTA5LjA4IDI1LjE4QzUxNi41IDE0LjU3IDUwOC45MiAwIDQ5NS45NyAwek0yNTYgMTYwYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptOTIuNTIgMTU3LjI2bC0zNy45MyAzNi45NiA4Ljk3IDUyLjIyYzEuNiA5LjM2LTguMjYgMTYuNTEtMTYuNjUgMTIuMDlMMjU2IDM5My44OGwtNDYuOSAyNC42NWMtOC40IDQuNDUtMTguMjUtMi43NC0xNi42NS0xMi4wOWw4Ljk3LTUyLjIyLTM3LjkzLTM2Ljk2Yy02LjgyLTYuNjQtMy4wNS0xOC4yMyA2LjM1LTE5LjU5bDUyLjQzLTcuNjQgMjMuNDMtNDcuNTJjMi4xMS00LjI4IDYuMTktNi4zOSAxMC4yOC02LjM5IDQuMTEgMCA4LjIyIDIuMTQgMTAuMzMgNi4zOWwyMy40MyA0Ny41MiA1Mi40MyA3LjY0YzkuNCAxLjM2IDEzLjE3IDEyLjk1IDYuMzUgMTkuNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVka2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQ4MGgzMjBWMTI4aC0zMlY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDE3NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0OEg5NnYzNTJ6bTk2LTM4NGgxMjh2MzJIMTkyVjk2em0zMjAgODB2MjU2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhoLTE2VjEyOGgxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek02NCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTc2YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMTZ2MzUyem0yODgtMjA4djMyYzAgOC44MzctNy4xNjMgMTYtMTYgMTZoLTQ4djQ4YzAgOC44MzctNy4xNjMgMTYtMTYgMTZoLTMyYy04LjgzNyAwLTE2LTcuMTYzLTE2LTE2di00OGgtNDhjLTguODM3IDAtMTYtNy4xNjMtMTYtMTZ2LTMyYzAtOC44MzcgNy4xNjMtMTYgMTYtMTZoNDh2LTQ4YzAtOC44MzcgNy4xNjMtMTYgMTYtMTZoMzJjOC44MzcgMCAxNiA3LjE2MyAxNiAxNnY0OGg0OGM4LjgzNyAwIDE2IDcuMTYzIDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1laEJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS04MCAyMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVoUm9sbGluZ0V5ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNODggMjI0YzAtMjQuMyAxMy43LTQ1LjIgMzMuNi01Ni0uNyAyLjYtMS42IDUuMi0xLjYgOCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMi44LS45LTUuNC0xLjYtOCAxOS45IDEwLjggMzMuNiAzMS43IDMzLjYgNTYgMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjR6bTIyNCAxNzZIMTg0Yy0yMS4yIDAtMjEuMi0zMiAwLTMyaDEyOGMyMS4yIDAgMjEuMiAzMiAwIDMyem0zMi0xMTJjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMyAxMy43LTQ1LjIgMzMuNi01Ni0uNyAyLjYtMS42IDUuMi0xLjYgOCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMi44LS45LTUuNC0xLjYtOCAxOS45IDEwLjggMzMuNiAzMS43IDMzLjYgNTYgMCAzNS4zLTI4LjcgNjQtNjQgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0xNzYgMTkySDE1MmMtMjEuMiAwLTIxLjItMzIgMC0zMmgxOTJjMjEuMiAwIDIxLjIgMzIgMCAzMnptLTE2LTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVtb3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAxMzAuOTRWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzQuOTRjMTguNiA2LjYxIDMyIDI0LjE5IDMyIDQ1LjA2cy0xMy40IDM4LjQ1LTMyIDQ1LjA2VjMyMGg2NDB2LTk4Ljk0Yy0xOC42LTYuNjEtMzItMjQuMTktMzItNDUuMDZzMTMuNC0zOC40NSAzMi00NS4wNnpNMjI0IDI1NmgtNjRWMTI4aDY0djEyOHptMTI4IDBoLTY0VjEyOGg2NHYxMjh6bTEyOCAwaC02NFYxMjhoNjR2MTI4ek0wIDQ0OGg2NHYtMjYuNjdjMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNlY0NDhoMTI4di0yNi42N2MwLTguODQgNy4xNi0xNiAxNi0xNnMxNiA3LjE2IDE2IDE2VjQ0OGgxMjh2LTI2LjY3YzAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZWNDQ4aDEyOHYtMjYuNjdjMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNlY0NDhoNjR2LTk2SDB2OTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVub3JhaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMTI4aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0aDY0VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNnptOTYgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGg2NFYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTE5MiAwaC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0aDY0VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNnptOTYgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGg2NFYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTgwLTMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTNjA4IDAgNjA4IDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzUxMiAwIDUxMiAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlM0MTYgMCA0MTYgMHMtMzIgNDYuMzMtMzIgNjQgMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTMzIwIDAgMzIwIDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzIyNCAwIDIyNCAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlMxMjggMCAxMjggMCA5NiA0Ni4zMyA5NiA2NHMxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlMzMiAwIDMyIDAgMCA0Ni4zMyAwIDY0czE0LjMzIDMyIDMyIDMyem01NDQgMTkyYzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMzUyVjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE3Nkg5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDE5MnY2NEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzUydi02NGgxOTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVyY3VyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMjA4YzAtNDQuMi0xOS45LTgzLjctNTEuMi0xMTAuMSAyLjUtMS44IDQuOS0zLjggNy4yLTUuOCAyNC43LTIxLjIgMzkuOC00OC44IDQzLjItNzguOC45LTcuMS00LjctMTMuMy0xMS45LTEzLjNoLTQwLjVDMjI5IDAgMjI0LjEgNC4xIDIyMyA5LjhjLTIuNCAxMi41LTkuNiAyNC4zLTIwLjcgMzMuOEMxODcgNTYuOCAxNjYuMyA2NCAxNDQgNjRzLTQzLTcuMi01OC40LTIwLjRDNzQuNSAzNC4xIDY3LjQgMjIuMyA2NC45IDkuOCA2My44IDQuMSA1OC45IDAgNTMuMiAwSDEyLjdDNS41IDAtLjEgNi4yLjggMTMuMyA0LjIgNDMuNCAxOS4yIDcxIDQ0IDkyLjJjMi4zIDIgNC43IDMuOSA3LjIgNS44QzE5LjkgMTI0LjMgMCAxNjMuOCAwIDIwOGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWNDAwSDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtNTEuNmM2NC4xLTE0LjUgMTEyLTcxLjkgMTEyLTE0MC40em0tMjI0IDBjMC00NC4xIDM1LjktODAgODAtODBzODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWV0ZW9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS4zMjgsMjAuODAyN2MtMTEuNjA3NTksMzguNzAyNjQtMzQuMzA3MjQsMTExLjcwMTczLTYxLjMwMzExLDE4Ny43MDA3Nyw2Ljk5ODkzLDIuMDkzNzIsMTMuNDA0Miw0LDE4LjYwNjUzLDUuNTkzNjhhMTYuMDYxNTgsMTYuMDYxNTgsMCwwLDEsOS40OTg1NCwyMi45MDZjLTIyLjEwNiw0Mi4yOTYzNS04Mi42OTA0NywxNTIuNzk1LTE0Mi40NzgxOSwyMTQuNDAzNTYtLjk5OTg0LDEuMDkzNzMtMS45OTk2OSwyLjUtMi45OTk1NCwzLjQ5OTk1QTE5NC44MzA0NiwxOTQuODMwNDYsMCwxLDEsNTcuMDg1LDE3OS40MTAwOWMuOTk5ODUtMSwyLjQwNTg4LTIsMy40OTk0Ny0zLDYxLjU5OTk0LTU5LjkwNTQ5LDE3MS45NzM2Ny0xMjAuNDA0NzMsMjE0LjM3MzQzLTE0Mi40OTgyYTE2LjA1OCwxNi4wNTgsMCwwLDEsMjIuOTAyNzQsOS40OTk4OGMxLjU5MzUxLDUuMDkzNjgsMy40OTk0NywxMS41OTM2LDUuNTkyOSwxOC41OTM1MUMzNzkuMzQ4MTgsMzUuMDA1NjUsNDUyLjQzMDc0LDEyLjMwMjgxLDQ5MS4xMjc5NC43MDkyMUExNi4xODMyNSwxNi4xODMyNSwwLDAsMSw1MTEuMzI4LDIwLjgwMjdaTTMxOS45NTEsMzIwLjAwMjA3QTEyNy45ODA0MSwxMjcuOTgwNDEsMCwxLDAsMTkxLjk3MDYxLDQ0OC4wMDA0NiwxMjcuOTc1NzMsMTI3Ljk3NTczLDAsMCwwLDMxOS45NTEsMzIwLjAwMjA3Wm0tMTI3Ljk4MDQxLTMxLjk5OTZhMzEuOTk1MSwzMS45OTUxLDAsMSwxLTMxLjk5NTEtMzEuOTk5NkEzMS45NTksMzEuOTU5LDAsMCwxLDE5MS45NzA2MSwyODguMDAyNDdabTMxLjk5NTEsNzkuOTk5YTE1Ljk5NzU1LDE1Ljk5NzU1LDAsMSwxLTE1Ljk5NzU1LTE1Ljk5OThBMTYuMDQ5NzUsMTYuMDQ5NzUsMCwwLDEsMjIzLjk2NTcxLDM2OC4wMDE0N1pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb2NoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDQ4djQxNmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDE0NGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY0OGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDIyNGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4em05NiA1OHYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQyVjg4aDQyYTYgNiAwIDAgMSA2IDZ2NmgxOGE2IDYgMCAwIDEgNiA2em0wIDk2djEyYTYgNiAwIDAgMS02IDZoLTE4djZhNiA2IDAgMCAxLTYgNmgtNDJ2LTQ4aDQyYTYgNiAwIDAgMSA2IDZ2NmgxOGE2IDYgMCAwIDEgNiA2em0wIDk2djEyYTYgNiAwIDAgMS02IDZoLTE4djZhNiA2IDAgMCAxLTYgNmgtNDJ2LTQ4aDQyYTYgNiAwIDAgMSA2IDZ2NmgxOGE2IDYgMCAwIDEgNiA2em0wIDk2djEyYTYgNiAwIDAgMS02IDZoLTE4djZhNiA2IDAgMCAxLTYgNmgtNDJ2LTQ4aDQyYTYgNiAwIDAgMSA2IDZ2NmgxOGE2IDYgMCAwIDEgNiA2ek0zMCAzNzZoNDJ2NDhIMzBhNiA2IDAgMCAxLTYtNnYtNkg2YTYgNiAwIDAgMS02LTZ2LTEyYTYgNiAwIDAgMSA2LTZoMTh2LTZhNiA2IDAgMCAxIDYtNnptMC05Nmg0MnY0OEgzMGE2IDYgMCAwIDEtNi02di02SDZhNiA2IDAgMCAxLTYtNnYtMTJhNiA2IDAgMCAxIDYtNmgxOHYtNmE2IDYgMCAwIDEgNi02em0wLTk2aDQydjQ4SDMwYTYgNiAwIDAgMS02LTZ2LTZINmE2IDYgMCAwIDEtNi02di0xMmE2IDYgMCAwIDEgNi02aDE4di02YTYgNiAwIDAgMSA2LTZ6bTAtOTZoNDJ2NDhIMzBhNiA2IDAgMCAxLTYtNnYtNkg2YTYgNiAwIDAgMS02LTZ2LTEyYTYgNiAwIDAgMSA2LTZoMTh2LTZhNiA2IDAgMCAxIDYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3Bob25lQWx0U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjgyIDQ1OC4xTDQ3Ni4yNiAzMzYuMzNDNDg4Ljc0IDMxMi4yMSA0OTYgMjg0Ljk4IDQ5NiAyNTZ2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhjMCAxNy45Mi0zLjk2IDM0LjgtMTAuNzIgNTAuMmwtMjYuNTUtMjAuNTJjMy4xLTkuNCA1LjI4LTE5LjIyIDUuMjgtMjkuNjdoLTQzLjY3bC00MS40LTMySDQxNnYtMzJoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThINDE2di0zMmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEg0MTZjMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTZ2NDUuMzZMNDUuNDcgMy4zN0MzOC40OS0yLjA1IDI4LjQzLS44IDIzLjAxIDYuMThMMy4zNyAzMS40NUMtMi4wNSAzOC40Mi0uOCA0OC40NyA2LjE4IDUzLjlsNTg4LjM2IDQ1NC43M2M2Ljk4IDUuNDMgMTcuMDMgNC4xNyAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YzUuNDEtNi45NyA0LjE2LTE3LjAyLTIuODItMjIuNDV6TTQwMCA0NjRoLTU2di0zMy43OGMxMS43MS0xLjYyIDIzLjEtNC4yOCAzMy45Ni04LjA4bC01MC40LTM4Ljk2Yy02LjcxLjQtMTMuNDEuODctMjAuMzUuMi01NS44NS01LjQ1LTk4Ljc0LTQ4LjYzLTExMS4xOC0xMDEuODVMMTQ0IDI0MS4zMXY2Ljg1YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0aC01NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3Bob25lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzNTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAxOTJoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDc0LjgtNjQuNDkgMTM0LjgyLTE0MC43OSAxMjcuMzhDOTYuNzEgMzc2Ljg5IDQ4IDMxNy4xMSA0OCAyNTAuM1YyMDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQwLjE2YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0SDk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC01NnYtMzMuNzdDMjg1LjcxIDQxOC40NyAzNTIgMzQ0LjkgMzUyIDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTE3NiAzNTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEgyNzJ2LTMyaC04NS4zM2MtNS44OSAwLTEwLjY3LTMuNTgtMTAuNjctOHYtMTZjMC00LjQyIDQuNzgtOCAxMC42Ny04SDI3MnYtMzJoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThIMjcyYzAtNTMuMDItNDIuOTgtOTYtOTYtOTZTODAgNDIuOTggODAgOTZ2MTYwYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9waG9uZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44MiA0NTguMWwtMTU3LjgtMTIxLjk2QzQ4OC42MSAzMTIuMTMgNDk2IDI4NS4wMSA0OTYgMjU2di00OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4YzAgMTcuOTItMy45NiAzNC44LTEwLjcyIDUwLjJsLTI2LjU1LTIwLjUyYzMuMS05LjQgNS4yOC0xOS4yMiA1LjI4LTI5LjY3Vjk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2djQ1LjM2TDQ1LjQ3IDMuMzdDMzguNDktMi4wNSAyOC40My0uOCAyMy4wMSA2LjE4TDMuMzcgMzEuNDVDLTIuMDUgMzguNDItLjggNDguNDcgNi4xOCA1My45bDU4OC4zNiA0NTQuNzNjNi45OCA1LjQzIDE3LjAzIDQuMTcgMjIuNDYtMi44MWwxOS42NC0yNS4yN2M1LjQxLTYuOTcgNC4xNi0xNy4wMi0yLjgyLTIyLjQ1ek00MDAgNDY0aC01NnYtMzMuNzdjMTEuNjYtMS42IDIyLjg1LTQuNTQgMzMuNjctOC4zMWwtNTAuMTEtMzguNzNjLTYuNzEuNC0xMy40MS44Ny0yMC4zNS4yLTU1Ljg1LTUuNDUtOTguNzQtNDguNjMtMTExLjE4LTEwMS44NUwxNDQgMjQxLjMxdjYuODVjMCA4OS42NCA2My45NyAxNjkuNTUgMTUyIDE4MS42OVY0NjRoLTU2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1MmM1My4wMiAwIDk2LTQyLjk4IDk2LTk2Vjk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZTODAgNDIuOTggODAgOTZ2MTYwYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZ6bTE2MC0xNjBoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDc0LjgtNjQuNDkgMTM0LjgyLTE0MC43OSAxMjcuMzhDOTYuNzEgMzc2Ljg5IDQ4IDMxNy4xMSA0OCAyNTAuM1YyMDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQwLjE2YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0SDk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC01NnYtMzMuNzdDMjg1LjcxIDQxOC40NyAzNTIgMzQ0LjkgMzUyIDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9zY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMzIwaDEydjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmgxMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTY0Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYyMjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnptMzA0IDEyOGgtMS4yOUM0OTMuMjQgNDEzLjk5IDUxMiAzNjkuMiA1MTIgMzIwYzAtMTA1Ljg4LTg2LjEyLTE5Mi0xOTItMTkydjY0YzcwLjU4IDAgMTI4IDU3LjQyIDEyOCAxMjhzLTU3LjQyIDEyOC0xMjggMTI4SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4IDAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNiAwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tMzYwLTMyaDIwOGM0LjQyIDAgOC0zLjU4IDgtOHYtMTZjMC00LjQyLTMuNTgtOC04LThIMTA0Yy00LjQyIDAtOCAzLjU4LTggOHYxNmMwIDQuNDIgMy41OCA4IDggOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaW51c0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4ek0xMjQgMjk2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgyNjRjNi42IDAgMTIgNS40IDEyIDEydjU2YzAgNi42LTUuNCAxMi0xMiAxMkgxMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWludXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTIgMjk2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgyNjRjNi42IDAgMTIgNS40IDEyIDEydjU2YzAgNi42LTUuNCAxMi0xMiAxMkg5MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMjA4SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl0dGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA0MTZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzIwYzguOCAwIDE2LTcuMiAxNi0xNnYtNjRjMC04LjgtNy4yLTE2LTE2LTE2em01Ny0yMDkuMWMtMjcuMi0yMi42LTY3LjUtMTktOTAuMSA4LjJsLTIwLjkgMjUtMjkuNi0xMjguNGMtMTgtNzcuNS05NS40LTEyNS45LTE3Mi44LTEwOEMzNC4yIDIxLjYtMTQuMiA5OC45IDMuNyAxNzYuNEw1MS42IDM4NGgzMDlsNzIuNS04N2MyMi43LTI3LjIgMTktNjcuNS04LjEtOTAuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyMjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2MCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMTItMTA4YzAgNi42LTUuNCAxMi0xMiAxMkg2MGMtNi42IDAtMTItNS40LTEyLTEyVjYwYzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjMxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyMjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2MCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMjg4aC0xNnYtODhjMC00LjQyLTMuNTgtOC04LThoLTEzLjU4Yy00Ljc0IDAtOS4zNyAxLjQtMTMuMzEgNC4wM2wtMTUuMzMgMTAuMjJhNy45OTQgNy45OTQgMCAwIDAtMi4yMiAxMS4wOWw4Ljg4IDEzLjMxYTcuOTk0IDcuOTk0IDAgMCAwIDExLjA5IDIuMjJsLjQ3LS4zMVYyODhoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHYxNmMwIDQuNDIgMy41OCA4IDggOGg2NGM0LjQyIDAgOC0zLjU4IDgtOHYtMTZjMC00LjQyLTMuNTgtOC04LTh6TTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNNDggNDAwdi02NGMzNS4zNSAwIDY0IDI4LjY1IDY0IDY0SDQ4em0wLTIyNHYtNjRoNjRjMCAzNS4zNS0yOC42NSA2NC02NCA2NHptMjcyIDE5MmMtNTMuMDIgMC05Ni01MC4xNS05Ni0xMTIgMC02MS44NiA0Mi45OC0xMTIgOTYtMTEyczk2IDUwLjE0IDk2IDExMmMwIDYxLjg3LTQzIDExMi05NiAxMTJ6bTI3MiAzMmgtNjRjMC0zNS4zNSAyOC42NS02NCA2NC02NHY2NHptMC0yMjRjLTM1LjM1IDAtNjQtMjguNjUtNjQtNjRoNjR2NjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsV2F2ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjEuMTYgNTQuNDZDNTgyLjM3IDM4LjE5IDU0My41NSAzMiA1MDQuNzUgMzJjLTEyMy4xNy0uMDEtMjQ2LjMzIDYyLjM0LTM2OS41IDYyLjM0LTMwLjg5IDAtNjEuNzYtMy45Mi05Mi42NS0xMy43Mi0zLjQ3LTEuMS02Ljk1LTEuNjItMTAuMzUtMS42MkMxNS4wNCA3OSAwIDkyLjMyIDAgMTEwLjgxdjMxNy4yNmMwIDEyLjYzIDcuMjMgMjQuNiAxOC44NCAyOS40NkM1Ny42MyA0NzMuODEgOTYuNDUgNDgwIDEzNS4yNSA0ODBjMTIzLjE3IDAgMjQ2LjM0LTYyLjM1IDM2OS41MS02Mi4zNSAzMC44OSAwIDYxLjc2IDMuOTIgOTIuNjUgMTMuNzIgMy40NyAxLjEgNi45NSAxLjYyIDEwLjM1IDEuNjIgMTcuMjEgMCAzMi4yNS0xMy4zMiAzMi4yNS0zMS44MVY4My45M2MtLjAxLTEyLjY0LTcuMjQtMjQuNi0xOC44NS0yOS40N3pNMzIwIDM1MmMtNDQuMTkgMC04MC00Mi45OS04MC05NiAwLTUzLjAyIDM1LjgyLTk2IDgwLTk2czgwIDQyLjk4IDgwIDk2YzAgNTMuMDMtMzUuODMgOTYtODAgOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsV2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjEuMTYgNTQuNDZDNTgyLjM3IDM4LjE5IDU0My41NSAzMiA1MDQuNzUgMzJjLTEyMy4xNy0uMDEtMjQ2LjMzIDYyLjM0LTM2OS41IDYyLjM0LTMwLjg5IDAtNjEuNzYtMy45Mi05Mi42NS0xMy43Mi0zLjQ3LTEuMS02Ljk1LTEuNjItMTAuMzUtMS42MkMxNS4wNCA3OSAwIDkyLjMyIDAgMTEwLjgxdjMxNy4yNmMwIDEyLjYzIDcuMjMgMjQuNiAxOC44NCAyOS40NkM1Ny42MyA0NzMuODEgOTYuNDUgNDgwIDEzNS4yNSA0ODBjMTIzLjE3IDAgMjQ2LjM0LTYyLjM1IDM2OS41MS02Mi4zNSAzMC44OSAwIDYxLjc2IDMuOTIgOTIuNjUgMTMuNzIgMy40NyAxLjEgNi45NSAxLjYyIDEwLjM1IDEuNjIgMTcuMjEgMCAzMi4yNS0xMy4zMiAzMi4yNS0zMS44MVY4My45M2MtLjAxLTEyLjY0LTcuMjQtMjQuNi0xOC44NS0yOS40N3pNNDggMTMyLjIyYzIwLjEyIDUuMDQgNDEuMTIgNy41NyA2Mi43MiA4LjkzQzEwNC44NCAxNzAuNTQgNzkgMTkyLjY5IDQ4IDE5Mi42OXYtNjAuNDd6bTAgMjg1di00Ny43OGMzNC4zNyAwIDYyLjE4IDI3LjI3IDYzLjcxIDYxLjQtMjIuNTMtMS44MS00My41OS02LjMxLTYzLjcxLTEzLjYyek0zMjAgMzUyYy00NC4xOSAwLTgwLTQyLjk5LTgwLTk2IDAtNTMuMDIgMzUuODItOTYgODAtOTZzODAgNDIuOTggODAgOTZjMCA1My4wMy0zNS44MyA5Ni04MCA5NnptMjcyIDI3Ljc4Yy0xNy41Mi00LjM5LTM1LjcxLTYuODUtNTQuMzItOC40NCA1Ljg3LTI2LjA4IDI3LjUtNDUuODggNTQuMzItNDkuMjh2NTcuNzJ6bTAtMjM2LjExYy0zMC44OS0zLjkxLTU0Ljg2LTI5LjctNTUuODEtNjEuNTUgMTkuNTQgMi4xNyAzOC4wOSA2LjIzIDU1LjgxIDEyLjY2djQ4Ljg5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggNjRIMzJDMTQuMzMgNjQgMCA3OC4zMyAwIDk2djMyMGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDU3NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTQ4IDQwMHYtNjRjMzUuMzUgMCA2NCAyOC42NSA2NCA2NEg0OHptMC0yMjR2LTY0aDY0YzAgMzUuMzUtMjguNjUgNjQtNjQgNjR6bTI3MiAxNzZjLTQ0LjE5IDAtODAtNDIuOTktODAtOTYgMC01My4wMiAzNS44Mi05NiA4MC05NnM4MCA0Mi45OCA4MCA5NmMwIDUzLjAzLTM1LjgzIDk2LTgwIDk2em0yNzIgNDhoLTY0YzAtMzUuMzUgMjguNjUtNjQgNjQtNjR2NjR6bTAtMjI0Yy0zNS4zNSAwLTY0LTI4LjY1LTY0LTY0aDY0djY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5Q2hlY2tBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjA4IDMySDMyQzE0LjMzIDMyIDAgNDYuMzMgMCA2NHYzODRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xNzYgMzI3Ljg4VjM0NGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWMTUyYzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2LjI5YzExLjI5LjU4IDIyLjI3IDQuNTEgMzEuMzcgMTEuMzUgMy45IDIuOTMgNC4xIDguNzcuNTcgMTIuMTRsLTExLjc1IDExLjIxYy0yLjc3IDIuNjQtNi44OSAyLjc2LTEwLjEzLjczLTMuODctMi40My04LjI2LTMuNzItMTIuODItMy43MmgtMjguMTFjLTYuNSAwLTExLjggNS45Mi0xMS44IDEzLjE5IDAgNS45NSAzLjYxIDExLjE5IDguNzcgMTIuNzNsNDUgMTMuNWMxOC41OSA1LjU4IDMxLjU4IDIzLjQyIDMxLjU4IDQzLjM5IDAgMjQuNTMtMTkuMDUgNDQuNDQtNDIuNjcgNDUuMDd6TTQxNiAzMTJjMCA0LjQyLTMuNTggOC04IDhIMjk2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTEyYzQuNDIgMCA4IDMuNTggOCA4djE2em0xNjAgMGMwIDQuNDItMy41OCA4LTggOGgtODBjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNnptMC05NmMwIDQuNDItMy41OCA4LTggOEgyOTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgyNzJjNC40MiAwIDggMy41OCA4IDh2MTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ0OGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDU3NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjEyOEgwdjMyMHptNDQ4LTIwOGMwLTguODQgNy4xNi0xNiAxNi0xNmg5NmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNmgtOTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMnptMCAxMjBjMC00LjQyIDMuNTgtOCA4LThoMTEyYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDQ1NmMtNC40MiAwLTgtMy41OC04LTh2LTE2ek02NCAyNjRjMC00LjQyIDMuNTgtOCA4LThoMzA0YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6bTAgOTZjMC00LjQyIDMuNTgtOCA4LThoMTc2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6TTYyNCAzMkgxNkM3LjE2IDMyIDAgMzkuMTYgMCA0OHY0OGg2NDBWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9udW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzUyYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTc4Ljg2LTM0Ny4yNmEzMS45NyAzMS45NyAwIDAgMC05LjIxLTE5LjQ0TDIwMy4zMSA0LjY5Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC03Ni42IDc2LjYxYTMxLjk3IDMxLjk3IDAgMCAwLTkuMjEgMTkuNDRMNjQgNDE2aDI1NmwtMzAuODYtMzE1LjI2ek0yNDAgMzA3LjJjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC03MC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDcwLjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODMuMjExIDUxMmM3OC45NjIgMCAxNTEuMDc5LTM1LjkyNSAxOTguODU3LTk0Ljc5MiA3LjA2OC04LjcwOC0uNjM5LTIxLjQzLTExLjU2Mi0xOS4zNS0xMjQuMjAzIDIzLjY1NC0yMzguMjYyLTcxLjU3Ni0yMzguMjYyLTE5Ni45NTQgMC03Mi4yMjIgMzguNjYyLTEzOC42MzUgMTAxLjQ5OC0xNzQuMzk0IDkuNjg2LTUuNTEyIDcuMjUtMjAuMTk3LTMuNzU2LTIyLjIzQTI1OC4xNTYgMjU4LjE1NiAwIDAgMCAyODMuMjExIDBjLTE0MS4zMDkgMC0yNTYgMTE0LjUxMS0yNTYgMjU2IDAgMTQxLjMwOSAxMTQuNTExIDI1NiAyNTYgMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vcnRhclBlc3RsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuNTQgNjAuOTFjMTcuMjItMTcuMjIgMTIuNTEtNDYuMjUtOS4yNy01Ny4xNGEzNS42OTYgMzUuNjk2IDAgMCAwLTM3LjM3IDMuMzdMMjUxLjA5IDE2MGgxNTEuMzdsOTkuMDgtOTkuMDl6TTQ5NiAxOTJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzAgODAuOTggNTAuMiAxNTAuMTEgMTIxLjEzIDE3OC4zMi0xMi43NiAxNi44Ny0yMS43MiAzNi44LTI0Ljk1IDU4LjY5LTEuNDYgOS45MiA2LjA0IDE4Ljk4IDE2LjA3IDE4Ljk4aDIyMy41YzEwLjAzIDAgMTcuNTMtOS4wNiAxNi4wNy0xOC45OC0zLjIyLTIxLjg5LTEyLjE4LTQxLjgyLTI0Ljk1LTU4LjY5QzQyOS44IDQwNi4xMSA0ODAgMzM2Ljk4IDQ4MCAyNTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vc3F1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ4MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMTYwSDB2MzIwem01NzkuMTYtMTkyYzE3Ljg2LTE3LjM5IDI4Ljg0LTM3LjM0IDI4Ljg0LTU4LjkxIDAtNTIuODYtNDEuNzktOTMuNzktODcuOTItMTIyLjktNDEuOTQtMjYuNDctODAuNjMtNTcuNzctMTExLjk2LTk2LjIyTDQwMCAwbC04LjEyIDkuOTdjLTMxLjMzIDM4LjQ1LTcwLjAxIDY5Ljc2LTExMS45NiA5Ni4yMkMyMzMuNzkgMTM1LjMgMTkyIDE3Ni4yMyAxOTIgMjI5LjA5YzAgMjEuNTcgMTAuOTggNDEuNTIgMjguODQgNTguOTFoMzU4LjMyek02MDggMzIwSDE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMnYtNjRjMC0xNy42NyAxNC4zMy0zMiAzMi0zMnMzMiAxNC4zMyAzMiAzMnY2NGg2NHYtNzJjMC00OCA0OC03MiA0OC03MnM0OCAyNCA0OCA3MnY3Mmg2NHYtNjRjMC0xNy42NyAxNC4zMy0zMiAzMi0zMnMzMiAxNC4zMyAzMiAzMnY2NGgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek02NCAwUzAgMzIgMCA5NnYzMmgxMjhWOTZjMC02NC02NC05Ni02NC05NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3RvcmN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMi45IDE5MmMtMTQuOS0uMS0yOS4xIDIuMy00Mi40IDYuOUw0MzcuNiAxNDRINTIwYzEzLjMgMCAyNC0xMC43IDI0LTI0Vjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0aC00NS4zYy02LjggMC0xMy4zIDIuOS0xNy44IDcuOWwtMzcuNSA0MS43LTIyLjgtMzhDMzkyLjIgNjguNCAzODQuNCA2NCAzNzYgNjRoLTgwYy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDY2LjRsMTkuMiAzMkgyMjcuOWMtMTcuNy0yMy4xLTQ0LjktNDAtOTkuOS00MEg3Mi41QzU5IDEwNCA0Ny43IDExNSA0OCAxMjguNWMuMiAxMyAxMC45IDIzLjUgMjQgMjMuNWg1NmMyNC41IDAgMzguNyAxMC45IDQ3LjggMjQuOGwtMTEuMyAyMC41Yy0xMy0zLjktMjYuOS01LjctNDEuMy01LjJDNTUuOSAxOTQuNSAxLjYgMjQ5LjYgMCAzMTdjLTEuNiA3Mi4xIDU2LjMgMTMxIDEyOCAxMzEgNTkuNiAwIDEwOS43LTQwLjggMTI0LTk2aDg0LjJjMTMuNyAwIDI0LjYtMTEuNCAyNC0yNS4xLTIuMS00Ny4xIDE3LjUtOTMuNyA1Ni4yLTEyNWwxMi41IDIwLjhjLTI3LjYgMjMuNy00NS4xIDU4LjktNDQuOCA5OC4yLjUgNjkuNiA1Ny4yIDEyNi41IDEyNi44IDEyNy4xIDcxLjYuNyAxMjkuOC01Ny41IDEyOS4yLTEyOS4xLS43LTY5LjYtNTcuNi0xMjYuNC0xMjcuMi0xMjYuOXpNMTI4IDQwMGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MGM0LjIgMCA4LjQuMyAxMi41IDFMOTkgMzE2LjRjLTguOCAxNiAyLjggMzUuNiAyMSAzNS42aDgxLjNjLTEyLjQgMjguMi00MC42IDQ4LTczLjMgNDh6bTQ2My45LTc1LjZjLTIuMiA0MC42LTM1IDczLjQtNzUuNSA3NS41LTQ2LjEgMi41LTg0LjQtMzQuMy04NC40LTc5LjkgMC0yMS40IDguNC00MC44IDIyLjEtNTUuMWw0OS40IDgyLjRjNC41IDcuNiAxNC40IDEwIDIyIDUuNWwxMy43LTguMmM3LjYtNC41IDEwLTE0LjQgNS41LTIybC00OC42LTgwLjljNS4yLTEuMSAxMC41LTEuNiAxNS45LTEuNiA0NS42LS4xIDgyLjMgMzguMiA3OS45IDg0LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91bnRhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM0LjkyIDQ2Mi43bC0yODgtNDQ4QzM0MS4wMyA1LjU0IDMzMC44OSAwIDMyMCAwcy0yMS4wMyA1LjU0LTI2LjkyIDE0LjdsLTI4OCA0NDhhMzIuMDAxIDMyLjAwMSAwIDAgMC0xLjE3IDMyLjY0QTMyLjAwNCAzMi4wMDQgMCAwIDAgMzIgNTEyaDU3NmMxMS43MSAwIDIyLjQ4LTYuMzkgMjguMDktMTYuNjdhMzEuOTgzIDMxLjk4MyAwIDAgMC0xLjE3LTMyLjYzek0zMjAgOTEuMThMNDA1LjM5IDIyNEgzMjBsLTY0IDY0LTM4LjA2LTM4LjA2TDMyMCA5MS4xOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3VzZVBvaW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAyLjE4OSAzMjkuMTI2SDE5Ni4xMDVsNTUuODMxIDEzNS45OTNjMy44ODkgOS40MjgtLjU1NSAxOS45OTktOS40NDQgMjMuOTk5bC00OS4xNjUgMjEuNDI3Yy05LjE2NSA0LTE5LjQ0My0uNTcxLTIzLjMzMi05LjcxNGwtNTMuMDUzLTEyOS4xMzYtODYuNjY0IDg5LjEzOEMxOC43MjkgNDcyLjcxIDAgNDYzLjU1NCAwIDQ0Ny45NzdWMTguMjk5QzAgMS44OTkgMTkuOTIxLTYuMDk2IDMwLjI3NyA1LjQ0M2wyODQuNDEyIDI5Mi41NDJjMTEuNDcyIDExLjE3OSAzLjAwNyAzMS4xNDEtMTIuNSAzMS4xNDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzNTJhMTYwIDE2MCAwIDAgMCAxNjAgMTYwaDY0YTE2MCAxNjAgMCAwIDAgMTYwLTE2MFYyMjRIMHpNMTc2IDBoLTE2QTE2MCAxNjAgMCAwIDAgMCAxNjB2MzJoMTc2em00OCAwaC0xNnYxOTJoMTc2di0zMkExNjAgMTYwIDAgMCAwIDIyNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU11Z0hvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjcuMSAxNDYuNWMxLjMgNy43IDggMTMuNSAxNiAxMy41aDE2LjVjOS44IDAgMTcuNi04LjUgMTYuMy0xOC0zLjgtMjguMi0xNi40LTU0LjItMzYuNi03NC43LTE0LjQtMTQuNy0yMy42LTMzLjMtMjYuNC01My41QzExMS44IDUuOSAxMDUgMCA5Ni44IDBIODAuNEM3MC42IDAgNjMgOC41IDY0LjEgMThjMy45IDMxLjkgMTggNjEuMyA0MC42IDg0LjQgMTIgMTIuMiAxOS43IDI3LjUgMjIuNCA0NC4xem0xMTIgMGMxLjMgNy43IDggMTMuNSAxNiAxMy41aDE2LjVjOS44IDAgMTcuNi04LjUgMTYuMy0xOC0zLjgtMjguMi0xNi40LTU0LjItMzYuNi03NC43LTE0LjQtMTQuNy0yMy42LTMzLjMtMjYuNC01My41QzIyMy44IDUuOSAyMTcgMCAyMDguOCAwaC0xNi40Yy05LjggMC0xNy41IDguNS0xNi4zIDE4IDMuOSAzMS45IDE4IDYxLjMgNDAuNiA4NC40IDEyIDEyLjIgMTkuNyAyNy41IDIyLjQgNDQuMXpNNDAwIDE5MkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTkyYzAgNTMgNDMgOTYgOTYgOTZoMTkyYzUzIDAgOTYtNDMgOTYtOTZoMTZjNjEuOCAwIDExMi01MC4yIDExMi0xMTJzLTUwLjItMTEyLTExMi0xMTJ6bTAgMTYwaC0xNnYtOTZoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcwLjM4IDEuNTFMMTUwLjQxIDk2QTMyIDMyIDAgMCAwIDEyOCAxMjYuNTF2MjYxLjQxQTEzOSAxMzkgMCAwIDAgOTYgMzg0Yy01MyAwLTk2IDI4LjY2LTk2IDY0czQzIDY0IDk2IDY0IDk2LTI4LjY2IDk2LTY0VjIxNC4zMmwyNTYtNzV2MTg0LjYxYTEzOC40IDEzOC40IDAgMCAwLTMyLTMuOTNjLTUzIDAtOTYgMjguNjYtOTYgNjRzNDMgNjQgOTYgNjQgOTYtMjguNjUgOTYtNjRWMzJhMzIgMzIgMCAwIDAtNDEuNjItMzAuNDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmV0d29ya1dpcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNjR2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDM0NHYtNDBoNzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDIyNGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg3MnY0MEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTA0djQwSDY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2MGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC01NnYtNDBoMzA0djQwaC01NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxNjBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNTJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNTZ2LTQwaDEwNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnpNMjU2IDEyOFY2NGgxMjh2NjRIMjU2em0tNjQgMzIwSDk2di02NGg5NnY2NHptMzUyIDBoLTk2di02NGg5NnY2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZXV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE3NmMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDk2LjUgMCAxNzZjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQ2OGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyVjMxNi40YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0xNDQgODBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5ld3NwYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTIgNjRIODhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MjcyYzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1Nmg0NzJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4OGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTU2IDQwMGE4IDggMCAwIDEtOC04VjE0NGgxNnYyNDhhOCA4IDAgMCAxLTggOHptMjM2LTE2SDE0MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptMjA4IDBIMzQ4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi04YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTUyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2OGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyem0tMjA4LTk2SDE0MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptMjA4IDBIMzQ4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi04YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTUyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2OGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyem0wLTk2SDE0MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgzNjBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdEVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMjMuODhsNTEuODctNjYuODFjNS4zNy03LjAyIDQuMDQtMTcuMDYtMi45Ny0yMi40M0w0MTUuNjEgMy4zYy03LjAyLTUuMzgtMTcuMDYtNC4wNC0yMi40NCAyLjk3TDMxMS4wOSAxMTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgyMDQuNTZsLTc0LjUzIDk2SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTUuNDlsLTUxLjg3IDY2LjgxYy01LjM3IDcuMDEtNC4wNCAxNy4wNSAyLjk3IDIyLjQzTDY0IDUwOC43YzcuMDIgNS4zOCAxNy4wNiA0LjA0IDIyLjQzLTIuOTdMMTY4LjUyIDQwMEg0MTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgyNDMuMDVsNzQuNTMtOTZINDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdGVzTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNjRoLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xOTIgNDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em05NiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE5MmMwIDQuNC0zLjYgOC04IDhIMTA0Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNzZjNC40IDAgOCAzLjYgOCA4djE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9iamVjdEdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAxMjhWOTZoMjBjNi42MjcgMCAxMi01LjM3MyAxMi0xMlY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyMEg2NFY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyQzUuMzczIDMyIDAgMzcuMzczIDAgNDR2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMHYzMjBIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0yMGgzODR2MjBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yMFYxMjh6TTk2IDI3NlYxNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNjhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMzZjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgxMDhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTMyMCA5NmMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDIzNmMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNTJoNzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di03Mmg4NGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjEzNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPYmplY3RVbmdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyMHYyNmE2IDYgMCAwIDEtNiA2SDZhNiA2IDAgMCAxLTYtNnYtNTJhNiA2IDAgMCAxIDYtNmgyNlY5Nkg2YTYgNiAwIDAgMS02LTZWMzhhNiA2IDAgMCAxIDYtNmg1MmE2IDYgMCAwIDEgNiA2djI2aDI4OFYzOGE2IDYgMCAwIDEgNi02aDUyYTYgNiAwIDAgMSA2IDZ2NTJhNiA2IDAgMCAxLTYgNmgtMjZ2MTkyaDI2YTYgNiAwIDAgMSA2IDZ2NTJhNiA2IDAgMCAxLTYgNmgtNTJhNiA2IDAgMCAxLTYtNnYtMjZINjR6bTQ4MC02NHYtMzJoMjZhNiA2IDAgMCAwIDYtNnYtNTJhNiA2IDAgMCAwLTYtNmgtNTJhNiA2IDAgMCAwLTYgNnYyNkg0MDh2NzJoOGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2NjRjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0aC02NGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di04SDE5MnY3MmgtMjZhNiA2IDAgMCAwLTYgNnY1MmE2IDYgMCAwIDAgNiA2aDUyYTYgNiAwIDAgMCA2LTZ2LTI2aDI4OHYyNmE2IDYgMCAwIDAgNiA2aDUyYTYgNiAwIDAgMCA2LTZ2LTUyYTYgNiAwIDAgMC02LTZoLTI2VjI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPaWxDYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI5LjggMTYwLjMxTDQxNiAyMjRsLTUwLjQ5LTI1LjI0YTY0LjA3IDY0LjA3IDAgMCAwLTI4LjYyLTYuNzZIMjgwdi00OGg1NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTc2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmg1NnY0OGgtNTZMMzcuNzIgMTY2Ljg2YTMxLjkgMzEuOSAwIDAgMC01Ljc5LS41M0MxNC42NyAxNjYuMzMgMCAxODAuMzYgMCAxOTguMzR2OTQuOTVjMCAxNS40NiAxMS4wNiAyOC43MiAyNi4yOCAzMS40OEw5NiAzMzcuNDZWMzg0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMjc0LjYzYzguNTUgMCAxNi43NS0zLjQyIDIyLjc2LTkuNTFsMjEyLjI2LTIxNC43NWMxLjUtMS41IDIuMzQtMy41NCAyLjM0LTUuNjZWMTY4Yy4wMS01LjMxLTUuMDgtOS4xNS0xMC4xOS03LjY5ek05NiAyODguNjdsLTQ4LTguNzN2LTYyLjQzbDQ4IDguNzN2NjIuNDN6bTQ1My4zMyA4NC42NmMwIDIzLjU2IDE5LjEgNDIuNjcgNDIuNjcgNDIuNjdzNDIuNjctMTkuMSA0Mi42Ny00Mi42N1M1OTIgMjg4IDU5MiAyODhzLTQyLjY3IDYxLjc3LTQyLjY3IDg1LjMzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MC42IDYwLjk0YTEwLjQzIDEwLjQzIDAgMCAwIDE0Ljc2IDBsMjEuNTctMjEuNTZhMTAuNDMgMTAuNDMgMCAwIDAgMC0xNC43NkwzNzUuMzUgMy4wNmMtNC4wOC00LjA3LTEwLjY4LTQuMDctMTQuNzYgMGwtMjEuNTcgMjEuNTZhMTAuNDMgMTAuNDMgMCAwIDAgMCAxNC43NmwyMS41OCAyMS41NnpNNDEyLjExIDE5MmMtMjYuNjkgMC01MS43NyAxMC4zOS03MC42NCAyOS4yNWwtMjQuMjUgMjQuMjVjLTYuNzggNi43Ny0xNS43OCAxMC41LTI1LjM4IDEwLjVIMjQ1YzEwLjU0LTIyLjEgMTQuMTctNDguMTEgNy43My03NS4yMy0xMC4xLTQyLjU1LTQ2LjM2LTc2LjExLTg5LjUyLTgzLjE5LTM2LjE1LTUuOTMtNzAuOSA1LjA0LTk2LjAxIDI4Ljc4LTcuMzYgNi45Ni02Ljk3IDE4Ljg1IDEuMTIgMjQuOTNsMjYuMTUgMTkuNjNjNS43MiA0LjMgMTMuNjYgNC4zMiAxOS4yLS4yMSA4LjQ1LTYuOSAxOS4wMi0xMC43MSAzMC4yNy0xMC43MSAyNi40NyAwIDQ4LjAxIDIxLjUzIDQ4LjAxIDQ4cy0yMS41NCA0OC00OC4wMSA0OGgtMzEuOWMtMTEuOTYgMC0xOS43NCAxMi41OC0xNC4zOSAyMy4yOGwxNi4wOSAzMi4xN2MyLjUzIDUuMDYgNy42IDguMSAxMy4xNyA4LjU1aDMzLjAzYzM1LjMgMCA2NC4wMSAyOC43IDY0LjAxIDY0cy0yOC43MSA2NC02NC4wMSA2NGMtOTYuMDIgMC0xMjIuMzUtNTQuMDItMTQ1LjE1LTkyLjAzLTQuNTMtNy41NS0xNC43Ny0zLjU4LTE0Ljc5IDUuMjJDLS4wOSA0MTYgNDEuMTMgNTEyIDE1OS45NCA1MTJjNzAuNTkgMCAxMjguMDItNTcuNDIgMTI4LjAyLTEyOCAwLTIzLjQyLTYuNzgtNDUuMS0xNy44MS02NGgyMS42OWMyNi42OSAwIDUxLjc3LTEwLjM5IDcwLjY0LTI5LjI1bDI0LjI1LTI0LjI1YzYuNzgtNi43NyAxNS43OC0xMC41IDI1LjM4LTEwLjUgMTkuNzggMCAzNS44OCAxNi4wOSAzNS44OCAzNS44OFYzOTJjMCAxMy4yMy0xOC43NyAyNC0zMi4wMSAyNC0zOS40IDAtNjYuNjctMjQuMjQtODEuODItNDIuODktNC43Ny01Ljg3LTE0LjItMi41NC0xNC4yIDUuMDJWNDE2czAgNjQgOTYuMDIgNjRjNDguNTQgMCA5Ni4wMi0zOS40NyA5Ni4wMi04OFYyOTEuODhjMC01NS4wOC00NC44LTk5Ljg4LTk5Ljg5LTk5Ljg4em00Mi4xOC0xMjQuNzNjLTg1LjU1IDY1LjEyLTE2OS4wNSAyLjc1LTE3Mi41OC4wNS02LjAyLTQuNjItMTQuNDQtNC4zOC0yMC4xNC41NS01Ljc0IDQuOTItNy4yNyAxMy4xNy0zLjY2IDE5LjggMS42MSAyLjk1IDQwLjM3IDcyLjM0IDExOC44IDcyLjM0IDc5LjkyIDAgOTguNzgtMzEuMzYgMTAxLjc1LTM3LjY2IDEuMDItMi4xMiAxLjUzLTQuNDcgMS41My02LjgzVjgwYzAtMTMuMjItMTUuMTQtMjAuNjktMjUuNy0xMi43M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggMzJoLTMybC0xMy4yNS0xMy4yNUE2My45NyA2My45NyAwIDAgMCA1MTcuNDkgMEg0OTdjLTExLjE0IDAtMjIuMDggMi45MS0zMS43NSA4LjQzTDMxMiA5NmgtNTZDMTQ5Ljk2IDk2IDY0IDE4MS45NiA2NCAyODh2MS42MWMwIDMyLjc1LTE2IDYyLjE0LTM5LjU2IDg0Ljg5LTE4LjE5IDE3LjU4LTI4LjEgNDMuNjgtMjMuMTkgNzEuOCA2Ljc2IDM4LjggNDIuOSA2NS43IDgyLjI4IDY1LjdIMTkyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJzLTE0LjMzLTMyLTMyLTMySDgwYy04LjgzIDAtMTYtNy4xNy0xNi0xNnM3LjE3LTE2IDE2LTE2aDIyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNjRsMTQ5LjQ5LTgwLjVMNDQ4IDQxNmg4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMjguMjJsLTU1LjExLTExMC4yMUw1MjEuMTQgMTkySDU0NGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2VjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bS05NiAxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnMtNy4xNiAxNi0xNiAxNi0xNi03LjE2LTE2LTE2IDcuMTYtMTYgMTYtMTZ6bTMyIDk2aC0zNC45Nkw0MDcuMiAxOTguODRsLTEzLjc3LTI3LjU1TDUxMiAxMTJoNzcuMDVjLTYuNjIgMTguNTgtMjQuMjIgMzItNDUuMDUgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3V0ZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDAuNjkgMzYzLjI5YzEwIDEwIDI3LjMxIDIuOTMgMjcuMzEtMTEuMzFWMTYwYzAtMTQuMzItMTcuMzMtMjEuMzEtMjcuMzEtMTEuMzFsLTk2IDk2YTE2IDE2IDAgMCAwIDAgMjIuNjJ6TTQzMiA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDM1MmgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHptMC0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAxNzIuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDIyNGgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDIxMS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDE2MHpNNDMyIDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA2NEg2NGE2NCA2NCAwIDAgMC02NCA2NHYyNTZhNjQgNjQgMCAwIDAgNjQgNjRoMzg0YTY0IDY0IDAgMCAwIDY0LTY0VjEyOGE2NCA2NCAwIDAgMC02NC02NHpNMTYwIDM2OEg4MGExNiAxNiAwIDAgMS0xNi0xNnYtMTZhMTYgMTYgMCAwIDEgMTYtMTZoODB6bTEyOC0xNmExNiAxNiAwIDAgMS0xNiAxNmgtODB2LTQ4aDgwYTE2IDE2IDAgMCAxIDE2IDE2em0xNjAtMTI4YTMyIDMyIDAgMCAxLTMyIDMySDk2YTMyIDMyIDAgMCAxLTMyLTMydi02NGEzMiAzMiAwIDAgMSAzMi0zMmgzMjBhMzIgMzIgMCAwIDEgMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFpbnRCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjcuMDIgMzA5LjM0Yy00MC4xMiAyLjU4LTc2LjUzIDE3Ljg2LTk3LjE5IDcyLjMtMi4zNSA2LjIxLTggOS45OC0xNC41OSA5Ljk4LTExLjExIDAtNDUuNDYtMjcuNjctNTUuMjUtMzQuMzVDMCA0MzkuNjIgMzcuOTMgNTEyIDEyOCA1MTJjNzUuODYgMCAxMjgtNDMuNzcgMTI4LTEyMC4xOSAwLTMuMTEtLjY1LTYuMDgtLjk3LTkuMTNsLTg4LjAxLTczLjM0ek00NTcuODkgMGMtMTUuMTYgMC0yOS4zNyA2LjcxLTQwLjIxIDE2LjQ1QzIxMy4yNyAxOTkuMDUgMTkyIDIwMy4zNCAxOTIgMjU3LjA5YzAgMTMuNyAzLjI1IDI2Ljc2IDguNzMgMzguN2w2My44MiA1My4xOGM3LjIxIDEuOCAxNC42NCAzLjAzIDIyLjM5IDMuMDMgNjIuMTEgMCA5OC4xMS00NS40NyAyMTEuMTYtMjU2LjQ2IDcuMzgtMTQuMzUgMTMuOS0yOS44NSAxMy45LTQ1Ljk5QzUxMiAyMC42NCA0ODYgMCA0NTcuODkgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWludFJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTI4VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzNTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnptMzItNjR2MTI4YzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMjU2Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ2LTMyaDE2MGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2di02NGMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhbGV0dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA0LjMgNUMxMDQuOSAyNC40IDI0LjggMTA0LjMgNS4yIDIwMy40Yy0zNyAxODcgMTMxLjcgMzI2LjQgMjU4LjggMzA2LjcgNDEuMi02LjQgNjEuNC01NC42IDQyLjUtOTEuNy0yMy4xLTQ1LjQgOS45LTk4LjQgNjAuOS05OC40aDc5LjdjMzUuOCAwIDY0LjgtMjkuNiA2NC45LTY1LjNDNTExLjUgOTcuMSAzNjguMS0yNi45IDIwNC4zIDV6TTk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTMyLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAyNTZoMzUyYzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZIMzg0djEyOGwtNjQtMzItNjQgMzJWMEgxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnYyMjRjMCA4LjggNy4yIDE2IDE2IDE2em00ODAgMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djY0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNmgtNDh2LTY0aDQ4em0tMzM2IDY0SDEyOHYtNjRoMTYwdjY0em0yMjQgMEgzNTJ2LTY0aDE2MHY2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXBlclBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NiAzLjJMMTIuNSAyNzAuNmMtMTguMSAxMC40LTE1LjggMzUuNiAyLjIgNDMuMkwxMjEgMzU4LjRsMjg3LjMtMjUzLjJjNS41LTQuOSAxMy4zIDIuNiA4LjYgOC4zTDE3NiA0MDd2ODAuNWMwIDIzLjYgMjguNSAzMi45IDQyLjUgMTUuOEwyODIgNDI2bDEyNC42IDUyLjJjMTQuMiA2IDMwLjQtMi45IDMzLTE4LjJsNzItNDMyQzUxNSA3LjggNDkzLjMtNi44IDQ3NiAzLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFwZXJjbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzLjI0NiA0NjYuMTQyYy01OC40My02MC4yODktNTcuMzQxLTE1Ny41MTEgMS4zODYtMjE3LjU4MUwyNTQuMzkyIDM0YzQ0LjMxNi00NS4zMzIgMTE2LjM1MS00NS4zMzYgMTYwLjY3MSAwIDQzLjg5IDQ0Ljg5NCA0My45NDMgMTE3LjMyOSAwIDE2Mi4yNzZMMjMyLjIxNCAzODMuMTI4Yy0yOS44NTUgMzAuNTM3LTc4LjYzMyAzMC4xMTEtMTA3Ljk4Mi0uOTk4LTI4LjI3NS0yOS45Ny0yNy4zNjgtNzcuNDczIDEuNDUyLTEwNi45NTNsMTQzLjc0My0xNDYuODM1YzYuMTgyLTYuMzE0IDE2LjMxMi02LjQyMiAyMi42MjYtLjI0MWwyMi44NjEgMjIuMzc5YzYuMzE1IDYuMTgyIDYuNDIyIDE2LjMxMi4yNDEgMjIuNjI2TDE3MS40MjcgMzE5LjkyN2MtNC45MzIgNS4wNDUtNS4yMzYgMTMuNDI4LS42NDggMTguMjkyIDQuMzcyIDQuNjM0IDExLjI0NSA0LjcxMSAxNS42ODguMTY1bDE4Mi44NDktMTg2Ljg1MWMxOS42MTMtMjAuMDYyIDE5LjYxMy01Mi43MjUtLjAxMS03Mi43OTgtMTkuMTg5LTE5LjYyNy00OS45NTctMTkuNjM3LTY5LjE1NCAwTDkwLjM5IDI5My4yOTVjLTM0Ljc2MyAzNS41Ni0zNS4yOTkgOTMuMTItMS4xOTEgMTI4LjMxMyAzNC4wMSAzNS4wOTMgODguOTg1IDM1LjEzNyAxMjMuMDU4LjI4NmwxNzIuMDYtMTc1Ljk5OWM2LjE3Ny02LjMxOSAxNi4zMDctNi40MzMgMjIuNjI2LS4yNTZsMjIuODc3IDIyLjM2NGM2LjMxOSA2LjE3NyA2LjQzNCAxNi4zMDcuMjU2IDIyLjYyNmwtMTcyLjA2IDE3NS45OThjLTU5LjU3NiA2MC45MzgtMTU1Ljk0MyA2MC4yMTYtMjE0Ljc3LS40ODV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFyYWNodXRlQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS45IDE3NWMtOS4xLTc1LjYtNzguNC0xMzIuNC0xNTguMy0xNTguN0MzOTAgNTUuNyA0MTYgMTE2LjkgNDE2IDE5MmgyOC4xTDMyNy41IDMyMS41Yy0yLjUtLjYtNC44LTEuNS03LjUtMS41aC00OFYxOTJoMTEyQzM4NCA3Ni44IDMxNS4xIDAgMjU2IDBTMTI4IDc2LjggMTI4IDE5MmgxMTJ2MTI4aC00OGMtMi43IDAtNSAuOS03LjUgMS41TDY3LjkgMTkySDk2YzAtNzUuMSAyNi0xMzYuMyA2Mi40LTE3NS43Qzc4LjUgNDIuNyA5LjIgOTkuNS4xIDE3NWMtMS4xIDkuMSA2LjggMTcgMTYgMTdoOC43bDEzNi43IDE1MS45Yy0uNyAyLjYtMS42IDUuMi0xLjYgOC4xdjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMi45LS45LTUuNC0xLjYtOC4xTDQ4Ny4xIDE5Mmg4LjdjOS4zIDAgMTcuMi03LjggMTYuMS0xN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXJhZ3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQ4djMyYTE2IDE2IDAgMCAxLTE2IDE2aC00OHYzNjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2Vjk2aC0zMnYzNjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2VjM1MmgtMzJhMTYwIDE2MCAwIDAgMSAwLTMyMGgyNDBhMTYgMTYgMCAwIDEgMTYgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFya2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yNDAgMzIwaC00OHY0OGMwIDguOC03LjIgMTYtMTYgMTZoLTMyYy04LjggMC0xNi03LjItMTYtMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNmg5NmM1Mi45IDAgOTYgNDMuMSA5NiA5NnMtNDMuMSA5Ni05NiA5NnptMC0xMjhoLTQ4djY0aDQ4YzE3LjYgMCAzMi0xNC40IDMyLTMycy0xNC40LTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3Nwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOS42MiAxNzZoMzkuMDljMS40OS0yNy4wMyA2LjU0LTUxLjM1IDE0LjIxLTcwLjQxLTI3LjcxIDEzLjI0LTQ4LjAyIDM5LjE5LTUzLjMgNzAuNDF6bTAgMzJjNS4yOSAzMS4yMiAyNS41OSA1Ny4xNyA1My4zIDcwLjQxLTcuNjgtMTkuMDYtMTIuNzItNDMuMzgtMTQuMjEtNzAuNDFoLTM5LjA5ek0yMjQgMjg2LjY5YzcuNjktNy40NSAyMC43Ny0zNC40MiAyMy40My03OC42OWgtNDYuODdjMi42NyA0NC4yNiAxNS43NSA3MS4yNCAyMy40NCA3OC42OXpNMjAwLjU3IDE3Nmg0Ni44N2MtMi42Ni00NC4yNi0xNS43NC03MS4yNC0yMy40My03OC42OS03LjcgNy40NS0yMC43OCAzNC40My0yMy40NCA3OC42OXptNjQuNTEgMTAyLjQxYzI3LjcxLTEzLjI0IDQ4LjAyLTM5LjE5IDUzLjMtNzAuNDFoLTM5LjA5Yy0xLjQ5IDI3LjAzLTYuNTMgNTEuMzUtMTQuMjEgNzAuNDF6TTQxNiAwSDY0QzI4LjY1IDAgMCAyOC42NSAwIDY0djM4NGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM1MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bS04MCA0MTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDIyNGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNnptLTExMi05NmMtNzAuNjkgMC0xMjgtNTcuMzEtMTI4LTEyOFMxNTMuMzEgNjQgMjI0IDY0czEyOCA1Ny4zMSAxMjggMTI4LTU3LjMxIDEyOC0xMjggMTI4em00MS4wOC0yMTQuNDFjNy42OCAxOS4wNiAxMi43MiA0My4zOCAxNC4yMSA3MC40MWgzOS4wOWMtNS4yOC0zMS4yMi0yNS41OS01Ny4xNy01My4zLTcwLjQxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3RhZmFyaWFuaXNtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNC41NCAzNDcuNjdjLTMyLjctMTIuNTItNTcuMzYgNC4yNS03NS4zNyAxNi40NS0xNy4wNiAxMS41My0yMy4yNSAxNC40Mi0zMS40MSAxMS4zNi04LjEyLTMuMDktMTAuODMtOS4zOC0xNS44OS0yOS4zOC0zLjMzLTEzLjE1LTcuNDQtMjkuMzItMTcuOTUtNDIuNjUgMi4yNC0yLjkxIDQuNDMtNS43OSA2LjM4LTguNTdDNTAwLjQ3IDMwNC40NSA1MTMuNzEgMzEyIDUzMiAzMTJjMzMuOTUgMCA1MC44Ny0yNS43OCA2Mi4wNi00Mi44MyAxMC41OS0xNi4xNCAxNS0yMS4xNyAyMS45NC0yMS4xNyAxMy4yNSAwIDI0LTEwLjc1IDI0LTI0cy0xMC43NS0yNC0yNC0yNGMtMzMuOTUgMC01MC44NyAyNS43OC02Mi4wNiA0Mi44My0xMC42IDE2LjE0LTE1IDIxLjE3LTIxLjk0IDIxLjE3LTE3LjMxIDAtMzcuNDgtNjEuNDMtOTcuMjYtMTAxLjkxbDE3LjI1LTM0LjVDNDg1LjQzIDEyNS41IDUxMiA5Ny45OCA1MTIgNjRjMC0zNS4zNS0yOC42NS02NC02NC02NHMtNjQgMjguNjUtNjQgNjRjMCAxMy4wMiAzLjk0IDI1LjEgMTAuNjIgMzUuMjFsLTE4LjE1IDM2LjNjLTE2Ljk4LTQuNi0zNS42LTcuNTEtNTYuNDYtNy41MXMtMzkuNDkgMi45MS01Ni40NiA3LjUxbC0xOC4xNS0zNi4zQzI1Mi4wNiA4OS4xIDI1NiA3Ny4wMiAyNTYgNjRjMC0zNS4zNS0yOC42NS02NC02NC02NHMtNjQgMjguNjUtNjQgNjRjMCAzMy45OCAyNi41NiA2MS41IDYwLjAyIDYzLjZsMTcuMjUgMzQuNUMxNDUuNjggMjAyLjQ0IDEyNS4xNSAyNjQgMTA4IDI2NGMtNi45NCAwLTExLjM0LTUuMDMtMjEuOTQtMjEuMTdDNzQuODggMjI1Ljc4IDU3Ljk2IDIwMCAyNCAyMDBjLTEzLjI1IDAtMjQgMTAuNzUtMjQgMjRzMTAuNzUgMjQgMjQgMjRjNi45NCAwIDExLjM0IDUuMDMgMjEuOTQgMjEuMTdDNTcuMTMgMjg2LjIyIDc0LjA1IDMxMiAxMDggMzEyYzE4LjI5IDAgMzEuNTMtNy41NSA0MS43LTE3LjExIDEuOTUgMi43OSA0LjE0IDUuNjYgNi4zOCA4LjU3LTEwLjUxIDEzLjMzLTE0LjYyIDI5LjUtMTcuOTUgNDIuNjUtNS4wNiAyMC03Ljc3IDI2LjI4LTE1Ljg5IDI5LjM4LTguMTEgMy4wNi0xNC4zMy4xNy0zMS40MS0xMS4zNi0xOC4wMy0xMi4yLTQyLjcyLTI4LjkyLTc1LjM3LTE2LjQ1LTEyLjM5IDQuNzItMTguNTkgMTguNTgtMTMuODcgMzAuOTcgNC43MiAxMi40MSAxOC42MSAxOC42MSAzMC45NyAxMy44OCA4LjE2LTMuMDkgMTQuMzQtLjE5IDMxLjM5IDExLjM2IDEzLjU1IDkuMTYgMzAuODMgMjAuODYgNTIuNDIgMjAuODQgNy4xNyAwIDE0LjgzLTEuMjggMjIuOTctNC4zOSAzMi42Ni0xMi40NCAzOS45OC00MS4zMyA0NS4zMy02Mi40NCAyLjIxLTguNzIgMy45OS0xNC40OSA1Ljk1LTE4Ljg3IDE2LjYyIDEzLjYxIDM2Ljk1IDI1Ljg4IDYxLjY0IDM0LjE3LTkuOTYgMzctMzIuMTggOTAuOC02MC4yNiA5MC44LTEzLjI1IDAtMjQgMTAuNzUtMjQgMjRzMTAuNzUgMjQgMjQgMjRjNjYuNzQgMCA5Ny4wNS04OC42MyAxMDcuNDItMTI5LjE0IDYuNjkuNiAxMy40MiAxLjE0IDIwLjU4IDEuMTRzMTMuODktLjU0IDIwLjU4LTEuMTRDMzUwLjk1IDQyMy4zNyAzODEuMjYgNTEyIDQ0OCA1MTJjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHMtMTAuNzUtMjQtMjQtMjRjLTI3Ljk0IDAtNTAuMjEtNTMuODEtNjAuMjItOTAuODEgMjQuNjktOC4yOSA0NS0yMC41NiA2MS42Mi0zNC4xNiAxLjk2IDQuMzggMy43NCAxMC4xNSA1Ljk1IDE4Ljg3IDUuMzQgMjEuMTEgMTIuNjcgNTAgNDUuMzMgNjIuNDQgOC4xNCAzLjExIDE1LjggNC4zOSAyMi45NyA0LjM5IDIxLjU5IDAgMzguODctMTEuNjkgNTIuNDItMjAuODQgMTcuMDUtMTEuNTUgMjMuMjgtMTQuNDUgMzEuMzktMTEuMzYgMTIuMzkgNC43NSAyNi4yNy0xLjQ3IDMwLjk3LTEzLjg4IDQuNzEtMTIuNC0xLjQ5LTI2LjI2LTEzLjg5LTMwLjk4ek00NDggNDhjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2em0tMjU2IDBjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxODRjMC0zMC44NzkgMjUuMTIyLTU2IDU2LTU2aDEzNlY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTgwLjYxQzIwNC4zMDYgMTIuODkgMTgzLjYzNyAwIDE2MCAwcy00NC4zMDYgMTIuODktNTUuMzkgMzJIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2MzM2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDRWMTg0em0zMi0xNDRjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0cy0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNHptMTg0IDI0OGgxMDR2MjAwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgxODRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYxODRjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDEzNnYxMDRjMCAxMy4yIDEwLjggMjQgMjQgMjR6bTEwNC0zOC4wNTlWMjU2aC05NnYtOTZoNi4wNTlhMjQgMjQgMCAwIDEgMTYuOTcgNy4wMjlsNjUuOTQxIDY1Ljk0MWEyNC4wMDIgMjQuMDAyIDAgMCAxIDcuMDMgMTYuOTcxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhdXNlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bS0xNiAzMjhjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2djE2MHptMTEyIDBjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2djE2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgNDc5SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY3OWMwLTI2LjUgMjEuNS00OCA0OC00OGg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDh6bTMwNC00OFY3OWMwLTI2LjUtMjEuNS00OC00OC00OGgtOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDIyNGMtNzkuNDEgMC0xOTIgMTIyLjc2LTE5MiAyMDAuMjUgMCAzNC45IDI2LjgxIDU1Ljc1IDcxLjc0IDU1Ljc1IDQ4Ljg0IDAgODEuMDktMjUuMDggMTIwLjI2LTI1LjA4IDM5LjUxIDAgNzEuODUgMjUuMDggMTIwLjI2IDI1LjA4IDQ0LjkzIDAgNzEuNzQtMjAuODUgNzEuNzQtNTUuNzVDNDQ4IDM0Ni43NiAzMzUuNDEgMjI0IDI1NiAyMjR6bS0xNDcuMjgtMTIuNjFjLTEwLjQtMzQuNjUtNDIuNDQtNTcuMDktNzEuNTYtNTAuMTMtMjkuMTIgNi45Ni00NC4yOSA0MC42OS0zMy44OSA3NS4zNCAxMC40IDM0LjY1IDQyLjQ0IDU3LjA5IDcxLjU2IDUwLjEzIDI5LjEyLTYuOTYgNDQuMjktNDAuNjkgMzMuODktNzUuMzR6bTg0LjcyLTIwLjc4YzMwLjk0LTguMTQgNDYuNDItNDkuOTQgMzQuNTgtOTMuMzZzLTQ2LjUyLTcyLjAxLTc3LjQ2LTYzLjg3LTQ2LjQyIDQ5Ljk0LTM0LjU4IDkzLjM2YzExLjg0IDQzLjQyIDQ2LjUzIDcyLjAyIDc3LjQ2IDYzLjg3em0yODEuMzktMjkuMzRjLTI5LjEyLTYuOTYtNjEuMTUgMTUuNDgtNzEuNTYgNTAuMTMtMTAuNCAzNC42NSA0Ljc3IDY4LjM4IDMzLjg5IDc1LjM0IDI5LjEyIDYuOTYgNjEuMTUtMTUuNDggNzEuNTYtNTAuMTMgMTAuNC0zNC42NS00Ljc3LTY4LjM4LTMzLjg5LTc1LjM0em0tMTU2LjI3IDI5LjM0YzMwLjk0IDguMTQgNjUuNjItMjAuNDUgNzcuNDYtNjMuODcgMTEuODQtNDMuNDItMy42NC04NS4yMS0zNC41OC05My4zNnMtNjUuNjIgMjAuNDUtNzcuNDYgNjMuODdjLTExLjg0IDQzLjQyIDMuNjQgODUuMjIgMzQuNTggOTMuMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTg0IDI0OGMwIDMxLjkzLTguMiA2MS45Ny0yMi41NyA4OC4xN0wyODAgMjQwLjYzVjc0Ljk3Yzg2LjIzIDE1LjIxIDE1MiA5MC41IDE1MiAxODEuMDN6TTIxNiA0MzcuMDNjLTMzLjg2LTUuOTctNjQuNDktMjEuMi04OS4yOS00My4wMkwyMTYgMzIyLjU3djExNC40NnptNjQtMTE0LjQ2TDM2OS4yOSAzOTRjLTI0LjggMjEuODItNTUuNDMgMzcuMDUtODkuMjkgNDMuMDJWMzIyLjU3em0tNjQtMjQ3LjZ2MTY1LjY2TDg2LjU3IDM0NC4xN0M3Mi4yIDMxNy45NyA2NCAyODcuOTMgNjQgMjU2YzAtOTAuNTMgNjUuNzctMTY1LjgyIDE1Mi0xODEuMDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ny45NCA3NC4xN2wtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzUgMTguNzUtNDkuMTUgMC02Ny45MXptLTI0Ni44LTIwLjUzYy0xNS42Mi0xNS42Mi00MC45NC0xNS42Mi01Ni41NiAwTDc1LjggMTcyLjQzYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYybDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMTAxLjgyLTEwMS44MiAyMi42MyAyMi42Mkw5My45NSAyOTAuMDNBMzI3LjAzOCAzMjcuMDM4IDAgMCAwIC4xNyA0ODUuMTFsLS4wMy4yM2MtMS43IDE1LjI4IDExLjIxIDI4LjIgMjYuNDkgMjYuNTFhMzI3LjAyIDMyNy4wMiAwIDAgMCAxOTUuMzQtOTMuOGwxOTYuNzktMTk2Ljc5LTgyLjc3LTgyLjc3LTg0Ljg1LTg0Ljg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbkZhbmN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTc5LjE4IDI4Mi45NGEzMi4wMDUgMzIuMDA1IDAgMCAwLTIwLjI0IDIwLjI0TDAgNDgwbDQuNjkgNC42OSA5Mi44OS05Mi44OWMtLjY2LTIuNTYtMS41Ny01LjAzLTEuNTctNy44IDAtMTcuNjcgMTQuMzMtMzIgMzItMzJzMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJjLTIuNzcgMC01LjI0LS45MS03LjgtMS41N2wtOTIuODkgOTIuODlMMzIgNTEybDE3Ni44Mi01OC45NGEzMS45ODMgMzEuOTgzIDAgMCAwIDIwLjI0LTIwLjI0bDMzLjA3LTg0LjA3LTk4Ljg4LTk4Ljg4LTg0LjA3IDMzLjA3ek0zNjkuMjUgMjguMzJMMTg2LjE0IDIyNy44MWw5Ny44NSA5Ny44NSAxOTkuNDktMTgzLjExQzU2OC40IDY3LjQ4IDQ0My43My01NS45NCAzNjkuMjUgMjguMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuTmliIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNi42IDEzOC43OWE2NC4wMDMgNjQuMDAzIDAgMCAwLTQzLjMxIDQxLjM1TDAgNDYwbDE0LjY5IDE0LjY5TDE2NC44IDMyNC41OGMtMi45OS02LjI2LTQuOC0xMy4xOC00LjgtMjAuNTggMC0yNi41MSAyMS40OS00OCA0OC00OHM0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OGMtNy40IDAtMTQuMzItMS44MS0yMC41OC00LjhMMzcuMzEgNDk3LjMxIDUyIDUxMmwyNzkuODYtOTMuMjlhNjQuMDAzIDY0LjAwMyAwIDAgMCA0MS4zNS00My4zMUw0MTYgMjI0IDI4OCA5NmwtMTUxLjQgNDIuNzl6bTM2MS4zNC02NC42MmwtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzUgMTguNzUtNDkuMTUgMC02Ny45MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDQ4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OHpNMjM4LjEgMTc3LjlMMTAyLjQgMzEzLjZsLTYuMyA1Ny4xYy0uOCA3LjYgNS42IDE0LjEgMTMuMyAxMy4zbDU3LjEtNi4zTDMwMi4yIDI0MmMyLjMtMi4zIDIuMy02LjEgMC04LjVMMjQ2LjcgMTc4Yy0yLjUtMi40LTYuMy0yLjQtOC42LS4xek0zNDUgMTY1LjFMMzE0LjkgMTM1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMjMuMSAyMy4xYy0yLjMgMi4zLTIuMyA2LjEgMCA4LjVsNTUuNSA1NS41YzIuMyAyLjMgNi4xIDIuMyA4LjUgMEwzNDUgMTk5YzkuMy05LjMgOS4zLTI0LjUgMC0zMy45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTAuNzQgOTMuMjRsMTI4LjAyIDEyOC4wMi0yNzcuOTkgMjc3Ljk5LTExNC4xNCAxMi42QzExLjM1IDUxMy41NC0xLjU2IDUwMC42Mi4xNCA0ODUuMzRsMTIuNy0xMTQuMjIgMjc3LjktMjc3Ljg4em0yMDcuMi0xOS4wNmwtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzYgMTguNzUtNDkuMTYgMC02Ny45MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5jaWxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk3LjkgMTQyLjFsLTQ2LjEgNDYuMWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwbC0xMTEtMTExYy00LjctNC43LTQuNy0xMi4zIDAtMTdsNDYuMS00Ni4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDYwLjEgNjAuMWMxOC44IDE4LjcgMTguOCA0OS4xIDAgNjcuOXpNMjg0LjIgOTkuOEwyMS42IDM2Mi40LjQgNDgzLjljLTIuOSAxNi40IDExLjQgMzAuNiAyNy44IDI3LjhsMTIxLjUtMjEuMyAyNjIuNi0yNjIuNmM0LjctNC43IDQuNy0xMi4zIDAtMTdsLTExMS0xMTFjLTQuOC00LjctMTIuNC00LjctMTcuMSAwek0xMjQuMSAzMzkuOWMtNS41LTUuNS01LjUtMTQuMyAwLTE5LjhsMTU0LTE1NGM1LjUtNS41IDE0LjMtNS41IDE5LjggMHM1LjUgMTQuMyAwIDE5LjhsLTE1NCAxNTRjLTUuNSA1LjUtMTQuMyA1LjUtMTkuOCAwek04OCA0MjRoNDh2MzYuM2wtNjQuNSAxMS4zLTMxLjEtMzEuMUw1MS43IDM3Nkg4OHY0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5jaWxSdWxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDkuNDYgMjQ0LjA0bDEzNC41OC0xMzQuNTYtNDQuMTItNDQuMTItNjEuNjggNjEuNjhhNy45MTkgNy45MTkgMCAwIDEtMTEuMjEgMGwtMTEuMjEtMTEuMjFjLTMuMS0zLjEtMy4xLTguMTIgMC0xMS4yMWw2MS42OC02MS42OC0zMy42NC0zMy42NUMxMzEuNDctMy4xIDExMS4zOS0zLjEgOTkgOS4yOUw5LjI5IDk5Yy0xMi4zOCAxMi4zOS0xMi4zOSAzMi40NyAwIDQ0Ljg2bDEwMC4xNyAxMDAuMTh6bTM4OC40Ny0xMTYuOGMxOC43Ni0xOC43NiAxOC43NS00OS4xNyAwLTY3LjkzbC00NS4yNS00NS4yNWMtMTguNzYtMTguNzYtNDkuMTgtMTguNzYtNjcuOTUgMGwtNDYuMDIgNDYuMDEgMTEzLjIgMTEzLjIgNDYuMDItNDYuMDN6TTMxNi4wOCA4Mi43MWwtMjk3IDI5Ni45NkwuMzIgNDg3LjExYy0yLjUzIDE0LjQ5IDEwLjA5IDI3LjExIDI0LjU5IDI0LjU2bDEwNy40NS0xOC44NEw0MjkuMjggMTk1LjkgMzE2LjA4IDgyLjcxem0xODYuNjMgMjg1LjQzbC0zMy42NC0zMy42NC02MS42OCA2MS42OGMtMy4xIDMuMS04LjEyIDMuMS0xMS4yMSAwbC0xMS4yMS0xMS4yMWMtMy4wOS0zLjEtMy4wOS04LjEyIDAtMTEuMjFsNjEuNjgtNjEuNjgtNDQuMTQtNDQuMTRMMjY3LjkzIDQwMi41bDEwMC4yMSAxMDAuMmMxMi4zOSAxMi4zOSAzMi40NyAxMi4zOSA0NC44NiAwbDg5LjcxLTg5LjdjMTIuMzktMTIuMzkgMTIuMzktMzIuNDcgMC00NC44NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVBcnJvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYsMTI4QTY0LDY0LDAsMSwwLDMyLDY0LDY0LDY0LDAsMCwwLDk2LDEyOFptMCwxNzYuMDhhNDQuMTEsNDQuMTEsMCwwLDEsMTMuNjQtMzJMMTgxLjc3LDIwNGMxLjY1LTEuNTUsMy43Ny0yLjMxLDUuNjEtMy41N0E2My45MSw2My45MSwwLDAsMCwxMjgsMTYwSDY0QTY0LDY0LDAsMCwwLDAsMjI0djk2YTMyLDMyLDAsMCwwLDMyLDMyVjQ4MGEzMiwzMiwwLDAsMCwzMiwzMmg2NGEzMiwzMiwwLDAsMCwzMi0zMlYzODMuNjFsLTUwLjM2LTQ3LjUzQTQ0LjA4LDQ0LjA4LDAsMCwxLDk2LDMwNC4wOFpNNDgwLDEyOGE2NCw2NCwwLDEsMC02NC02NEE2NCw2NCwwLDAsMCw0ODAsMTI4Wm0zMiwzMkg0NDhhNjMuOTEsNjMuOTEsMCwwLDAtNTkuMzgsNDAuNDJjMS44NCwxLjI3LDQsMiw1LjYyLDMuNTlsNzIuMTIsNjguMDZhNDQuMzcsNDQuMzcsMCwwLDEsMCw2NEw0MTYsMzgzLjYyVjQ4MGEzMiwzMiwwLDAsMCwzMiwzMmg2NGEzMiwzMiwwLDAsMCwzMi0zMlYzNTJhMzIsMzIsMCwwLDAsMzItMzJWMjI0QTY0LDY0LDAsMCwwLDUxMiwxNjBaTTQ0NC40LDI5NS4zNGwtNzIuMTItNjguMDZBMTIsMTIsMCwwLDAsMzUyLDIzNnYzNkgyMjRWMjM2YTEyLDEyLDAsMCwwLTIwLjI4LTguNzNMMTMxLjYsMjk1LjM0YTEyLjQsMTIuNCwwLDAsMCwwLDE3LjQ3bDcyLjEyLDY4LjA3QTEyLDEyLDAsMCwwLDIyNCwzNzIuMTRWMzM2SDM1MnYzNi4xNGExMiwxMiwwLDAsMCwyMC4yOCw4Ljc0bDcyLjEyLTY4LjA3QTEyLjQsMTIuNCwwLDAsMCw0NDQuNCwyOTUuMzRaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVvcGxlQ2FycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzE1NC41IDAgMTI4IDAgODAgMjEuNSA4MCA0OHMyMS41IDQ4IDQ4IDQ4em0zODQgMGMyNi41IDAgNDgtMjEuNSA0OC00OFM1MzguNSAwIDUxMiAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTEyNS43IDM3Mi4xbC00NC0xMTAtNDEuMSA0Ni40LTIgMTguMiAyNy43IDY5LjJjNSAxMi41IDE3IDIwLjEgMjkuNyAyMC4xIDQgMCA4LS43IDExLjktMi4zIDE2LjQtNi42IDI0LjQtMjUuMiAxNy44LTQxLjZ6bS0zNC4yLTIwOS44TDU4NSAxNzguMWMtNC42LTIwLTE4LjYtMzYuOC0zNy41LTQ0LjktMTguNS04LTM5LTYuNy01Ni4xIDMuMy0yMi43IDEzLjQtMzkuNyAzNC41LTQ4LjEgNTkuNEw0MzIgMjI5LjggNDE2IDI0MHYtOTZjMC04LjgtNy4yLTE2LTE2LTE2SDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2djk2bC0xNi4xLTEwLjItMTEuMy0zMy45Yy04LjMtMjUtMjUuNC00Ni00OC4xLTU5LjQtMTcuMi0xMC0zNy42LTExLjMtNTYuMS0zLjMtMTguOSA4LjEtMzIuOSAyNC45LTM3LjUgNDQuOWwtMTguNCA4MC4yYy00LjYgMjAgLjcgNDEuMiAxNC40IDU2LjdsNjcuMiA3NS45IDEwLjEgOTIuNkMxMzAgNDk5LjggMTQzLjggNTEyIDE2MCA1MTJjMS4yIDAgMi4zLS4xIDMuNS0uMiAxNy42LTEuOSAzMC4yLTE3LjcgMjguMy0zNS4zbC0xMC4xLTkyLjhjLTEuNS0xMy02LjktMjUuMS0xNS42LTM1bC00My4zLTQ5IDE3LjYtNzAuMyA2LjggMjAuNGM0LjEgMTIuNSAxMS45IDIzLjQgMjQuNSAzMi42bDUxLjEgMzIuNWM0LjYgMi45IDEyLjEgNC42IDE3LjIgNWgxNjBjNS4xLS40IDEyLjYtMi4xIDE3LjItNWw1MS4xLTMyLjVjMTIuNi05LjIgMjAuNC0yMCAyNC41LTMyLjZsNi44LTIwLjQgMTcuNiA3MC4zLTQzLjMgNDljLTguNyA5LjktMTQuMSAyMi0xNS42IDM1bC0xMC4xIDkyLjhjLTEuOSAxNy42IDEwLjggMzMuNCAyOC4zIDM1LjMgMS4yLjEgMi4zLjIgMy41LjIgMTYuMSAwIDMwLTEyLjEgMzEuOC0yOC41bDEwLjEtOTIuNiA2Ny4yLTc1LjljMTMuNi0xNS41IDE5LTM2LjcgMTQuNC01Ni43ek00Ni4zIDM1OC4xbC00NCAxMTBjLTYuNiAxNi40IDEuNCAzNSAxNy44IDQxLjYgMTYuOCA2LjYgMzUuMS0xLjcgNDEuNi0xNy44bDI3LjctNjkuMi0yLTE4LjItNDEuMS00Ni40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcHBlckhvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzAuNjcgMjYzLjEyVjE3My40bC01Mi43NS0yNC4yMkMyMTkuNDQgMjE4Ljc2IDE5Ny41OCA0MDAgNTYgNDAwYTU2IDU2IDAgMCAwIDAgMTEyYzIxMi42NCAwIDM3MC42NS0xMjIuODcgNDE5LjE4LTIxMC4zNGwtMzcuMDUtMzguNTR6bTEzMS4wOS0xMjguMzdDNDkzLjkyIDc0LjkxIDQ3Ny4xOCAyNi40OCA0NTguNjIgM2E4IDggMCAwIDAtMTEuOTMtLjU5bC0yMi45IDIzYTguMDYgOC4wNiAwIDAgMC0uODkgMTAuMjNjNi44NiAxMC4zNiAxNy4wNSAzNS4xLTEuNCA3Mi4zMkExNDIuODUgMTQyLjg1IDAgMCAwIDM2NC4zNCA5NmMtMjggMC01NCA4LjU0LTc2LjM0IDIyLjU5bDc0LjY3IDM0LjI5djc4LjI0aDg5LjA5TDUwNi40NCAyODhjMy4yNi0xMi42MiA1LjU2LTI1LjYzIDUuNTYtMzkuMzFhMTU0IDE1NCAwIDAgMC01MC4yNC0xMTMuOTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMjI0YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzE3My45IDAgMTEyIDAgMCA1MC4xIDAgMTEyczUwLjEgMTEyIDExMiAxMTJ6bTAtMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4LTQ4LTIxLjUtNDgtNDggMjEuNS00OCA0OC00OHptMjI0IDIyNGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJzNTAuMSAxMTIgMTEyIDExMiAxMTItNTAuMSAxMTItMTEyLTUwLjEtMTEyLTExMi0xMTJ6bTAgMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpNMzkyLjMuMmwzMS42LS4xYzE5LjQtLjEgMzAuOSAyMS44IDE5LjcgMzcuOEw3Ny40IDUwMS42YTIzLjk1IDIzLjk1IDAgMCAxLTE5LjYgMTAuMmwtMzMuNC4xYy0xOS41IDAtMzAuOS0yMS45LTE5LjctMzcuOGwzNjgtNDYzLjdDMzc3LjIgNCAzODQuNS4yIDM5Mi4zLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyY2VudGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDkuMjUgMTczLjI1YzI0Ljk5LTI0Ljk5IDI0Ljk5LTY1LjUyIDAtOTAuNTEtMjQuOTktMjQuOTktNjUuNTItMjQuOTktOTAuNTEgMC0yNC45OSAyNC45OS0yNC45OSA2NS41MiAwIDkwLjUxIDI1IDI1IDY1LjUyIDI1IDkwLjUxIDB6bTI1NiAxNjUuNDljLTI0Ljk5LTI0Ljk5LTY1LjUyLTI0Ljk5LTkwLjUxIDAtMjQuOTkgMjQuOTktMjQuOTkgNjUuNTIgMCA5MC41MSAyNC45OSAyNC45OSA2NS41MiAyNC45OSA5MC41MSAwIDI1LTI0Ljk5IDI1LTY1LjUxIDAtOTAuNTF6bS0xLjk0LTIzMS40M2wtMjIuNjItMjIuNjJjLTEyLjUtMTIuNS0zMi43Ni0xMi41LTQ1LjI1IDBMMjAuNjkgMzU5LjQ0Yy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1bDIyLjYyIDIyLjYyYzEyLjUgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDBsMjc0Ljc1LTI3NC43NWMxMi41LTEyLjQ5IDEyLjUtMzIuNzUgMC00NS4yNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Cb290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwaC02NHYxNzZ6bTMyLTI3MmgtNTAuOWwtNDUuMi00NS4zQzExNS44IDE2Ni42IDk5LjcgMTYwIDgyLjcgMTYwSDY0Yy0xNy4xIDAtMzMuMiA2LjctNDUuMyAxOC44QzYuNyAxOTAuOSAwIDIwNyAwIDIyNC4xTC4yIDMyMCAwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMS45IDMyIDE3LjYgMCAzMi0xNC4zIDMyLTMybC4xLTEwMC43Yy45LjUgMS42IDEuMyAyLjUgMS43bDI5LjEgNDN2NTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnYtNTYuNWMwLTkuOS0yLjMtMTkuOC02LjctMjguNmwtNDEuMi02MS4zVjI1M2wyMC45IDIwLjljOS4xIDkuMSAyMS4xIDE0LjEgMzMuOSAxNC4xSDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMnpNNjQgMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzkwLjUgMzIgNjQgMzIgMTYgNTMuNSAxNiA4MHMyMS41IDQ4IDQ4IDQ4em0yMjQtOTZsMzEuNSAyMjMuMS0zMC45IDE1NC42Yy00LjMgMjEuNiAxMyAzOC4zIDMxLjQgMzguMyAxNS4yIDAgMjgtOS4xIDMyLjMtMzAuNC45IDE2LjkgMTQuNiAzMC40IDMxLjcgMzAuNCAxNy43IDAgMzItMTQuMyAzMi0zMiAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjBIMjg4djMyem0tOTYgMHYxNjBoNjRWMGgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek01NDQgMGgtMzJ2NDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk3LjM5IDM2MS44bC0xMTItNDhhMjQgMjQgMCAwIDAtMjggNi45bC00OS42IDYwLjZBMzcwLjY2IDM3MC42NiAwIDAgMSAxMzAuNiAyMDQuMTFsNjAuNi00OS42YTIzLjk0IDIzLjk0IDAgMCAwIDYuOS0yOGwtNDgtMTEyQTI0LjE2IDI0LjE2IDAgMCAwIDEyMi42LjYxbC0xMDQgMjRBMjQgMjQgMCAwIDAgMCA0OGMwIDI1Ni41IDIwNy45IDQ2NCA0NjQgNDY0YTI0IDI0IDAgMCAwIDIzLjQtMTguNmwyNC0xMDRhMjQuMjkgMjQuMjkgMCAwIDAtMTQuMDEtMjcuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OC4yIDM4MS40bC00OS42LTYwLjZjLTYuOC04LjMtMTguMi0xMS4xLTI4LTYuOWwtMTEyIDQ4Yy0xMC43IDQuNi0xNi41IDE2LjEtMTMuOSAyNy41bDI0IDEwNGMyLjUgMTAuOCAxMi4xIDE4LjYgMjMuNCAxOC42IDEwMC43IDAgMTkzLjctMzIuNCAyNjkuNy04Ni45bC04MC02MS44Yy0xMC45IDYuNS0yMi4xIDEyLjctMzMuNiAxOC4xem0zNjUuNiA3Ni43TDQ3NS4xIDMzNS41QzUzNy45IDI1Ni40IDU3NiAxNTYuOSA1NzYgNDhjMC0xMS4yLTcuNy0yMC45LTE4LjYtMjMuNGwtMTA0LTI0Yy0xMS4zLTIuNi0yMi45IDMuMy0yNy41IDEzLjlsLTQ4IDExMmMtNC4yIDkuOC0xLjQgMjEuMyA2LjkgMjhsNjAuNiA0OS42Yy0xMi4yIDI2LjEtMjcuOSA1MC4zLTQ2IDcyLjhMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRsNTg4LjQgNDU0LjdjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjQtNi44IDQuMS0xNi45LTIuOS0yMi4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lU3F1YXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEE0OCA0OCAwIDAgMCAwIDgwdjM1MmE0OCA0OCAwIDAgMCA0OCA0OGgzNTJhNDggNDggMCAwIDAgNDgtNDhWODBhNDggNDggMCAwIDAtNDgtNDh6bS0xNi4zOSAzMDcuMzdsLTE1IDY1QTE1IDE1IDAgMCAxIDM1NCA0MTZDMTk0IDQxNiA2NCAyODYuMjkgNjQgMTI2YTE1LjcgMTUuNyAwIDAgMSAxMS42My0xNC42MWw2NS0xNUExOC4yMyAxOC4yMyAwIDAgMSAxNDQgOTZhMTYuMjcgMTYuMjcgMCAwIDEgMTMuNzkgOS4wOWwzMCA3MEExNy45IDE3LjkgMCAwIDEgMTg5IDE4MWExNyAxNyAwIDAgMS01LjUgMTEuNjFsLTM3Ljg5IDMxYTIzMS45MSAyMzEuOTEgMCAwIDAgMTEwLjc4IDExMC43OGwzMS0zNy44OUExNyAxNyAwIDAgMSAyOTkgMjkxYTE3Ljg1IDE3Ljg1IDAgMCAxIDUuOTEgMS4yMWw3MCAzMEExNi4yNSAxNi4yNSAwIDAgMSAzODQgMzM2YTE3LjQxIDE3LjQxIDAgMCAxLS4zOSAzLjM3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNOTQgNDE2Yy03LjAzMyAwLTEzLjA1Ny00Ljg3My0xNC42MTYtMTEuNjI3bC0xNC45OTgtNjVhMTUgMTUgMCAwIDEgOC43MDctMTcuMTZsNjkuOTk4LTI5Ljk5OWExNSAxNSAwIDAgMSAxNy41MTggNC4yODlsMzAuOTk3IDM3Ljg4NWM0OC45NDQtMjIuOTYzIDg4LjI5Ny02Mi44NTggMTEwLjc4MS0xMTAuNzhsLTM3Ljg4Ni0zMC45OTdhMTUuMDAxIDE1LjAwMSAwIDAgMS00LjI4OS0xNy41MThsMzAtNjkuOTk4YTE1IDE1IDAgMCAxIDE3LjE2LTguNzA3bDY1IDE0Ljk5OEExNC45OTcgMTQuOTk3IDAgMCAxIDM4NCAxMjZjMCAxNjAuMjkyLTEyOS45NDUgMjkwLTI5MCAyOTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmVWb2x1bWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTcuMzMzIDUwNi45NjZjLTEyOS44NzQtMTI5Ljg3NC0xMjkuNjgxLTM0MC4yNTIgMC00NjkuOTMzIDUuNjk4LTUuNjk4IDE0LjUyNy02LjYzMiAyMS4yNjMtMi40MjJsNjQuODE3IDQwLjUxM2ExNy4xODcgMTcuMTg3IDAgMCAxIDYuODQ5IDIwLjk1OGwtMzIuNDA4IDgxLjAyMWExNy4xODggMTcuMTg4IDAgMCAxLTE3LjY2OSAxMC43MTlsLTU1LjgxLTUuNThjLTIxLjA1MSA1OC4yNjEtMjAuNjEyIDEyMi40NzEgMCAxNzkuNTE1bDU1LjgxMS01LjU4MWExNy4xODggMTcuMTg4IDAgMCAxIDE3LjY2OSAxMC43MTlsMzIuNDA4IDgxLjAyMmExNy4xODggMTcuMTg4IDAgMCAxLTYuODQ5IDIwLjk1OGwtNjQuODE3IDQwLjUxM2ExNy4xOSAxNy4xOSAwIDAgMS0yMS4yNjQtMi40MjJ6TTI0Ny4xMjYgOTUuNDczYzExLjgzMiAyMC4wNDcgMTEuODMyIDQ1LjAwOCAwIDY1LjA1NS0zLjk1IDYuNjkzLTEzLjEwOCA3Ljk1OS0xOC43MTggMi41ODFsLTUuOTc1LTUuNzI2Yy0zLjkxMS0zLjc0OC00Ljc5My05LjYyMi0yLjI2MS0xNC40MWEzMi4wNjMgMzIuMDYzIDAgMCAwIDAtMjkuOTQ1Yy0yLjUzMy00Ljc4OC0xLjY1LTEwLjY2MiAyLjI2MS0xNC40MWw1Ljk3NS01LjcyNmM1LjYxLTUuMzc4IDE0Ljc2OC00LjExMiAxOC43MTggMi41ODF6bTkxLjc4Ny05MS4xODdjNjAuMTQgNzEuNjA0IDYwLjA5MiAxNzUuODgyIDAgMjQ3LjQyOC00LjQ3NCA1LjMyNy0xMi41MyA1Ljc0Ni0xNy41NTIuOTMzbC01Ljc5OC01LjU1N2MtNC41Ni00LjM3MS00Ljk3Ny0xMS41MjktLjkzLTE2LjM3OSA0OS42ODctNTkuNTM4IDQ5LjY0Ni0xNDUuOTMzIDAtMjA1LjQyMi00LjA0Ny00Ljg1LTMuNjMxLTEyLjAwOC45My0xNi4zNzlsNS43OTgtNS41NTdjNS4wMjItNC44MTMgMTMuMDc4LTQuMzk0IDE3LjU1Mi45MzN6bS00NS45NzIgNDQuOTQxYzM2LjA1IDQ2LjMyMiAzNi4xMDggMTExLjE0OSAwIDE1Ny41NDYtNC4zOSA1LjY0MS0xMi42OTcgNi4yNTEtMTcuODU2IDEuMzA0bC01LjgxOC01LjU3OWMtNC40LTQuMjE5LTQuOTk4LTExLjA5NS0xLjI4NS0xNS45MzEgMjYuNTM2LTM0LjU2NCAyNi41MzQtODIuNTcyIDAtMTE3LjEzNC0zLjcxMy00LjgzNi0zLjExNS0xMS43MTEgMS4yODUtMTUuOTMxbDUuODE4LTUuNTc5YzUuMTU5LTQuOTQ3IDEzLjQ2Ni00LjMzNyAxNy44NTYgMS4zMDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkzLjQgMjQuNmwtMTA0LTI0Yy0xMS4zLTIuNi0yMi45IDMuMy0yNy41IDEzLjlsLTQ4IDExMmMtNC4yIDkuOC0xLjQgMjEuMyA2LjkgMjhsNjAuNiA0OS42Yy0zNiA3Ni43LTk4LjkgMTQwLjUtMTc3LjIgMTc3LjJsLTQ5LjYtNjAuNmMtNi44LTguMy0xOC4yLTExLjEtMjgtNi45bC0xMTIgNDhDMy45IDM2Ni41LTIgMzc4LjEuNiAzODkuNGwyNCAxMDRDMjcuMSA1MDQuMiAzNi43IDUxMiA0OCA1MTJjMjU2LjEgMCA0NjQtMjA3LjUgNDY0LTQ2NCAwLTExLjItNy43LTIwLjktMTguNi0yMy40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob3RvVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjA4IDBIMTYwYTMyIDMyIDAgMCAwLTMyIDMydjk2aDE2MFY2NGgxOTJ2MzIwaDEyOGEzMiAzMiAwIDAgMCAzMi0zMlYzMmEzMiAzMiAwIDAgMC0zMi0zMnpNMjMyIDEwM2E5IDkgMCAwIDEtOSA5aC0zMGE5IDkgMCAwIDEtOS05VjczYTkgOSAwIDAgMSA5LTloMzBhOSA5IDAgMCAxIDkgOXptMzUyIDIwOGE5IDkgMCAwIDEtOSA5aC0zMGE5IDkgMCAwIDEtOS05di0zMGE5IDkgMCAwIDEgOS05aDMwYTkgOSAwIDAgMSA5IDl6bTAtMTA0YTkgOSAwIDAgMS05IDloLTMwYTkgOSAwIDAgMS05LTl2LTMwYTkgOSAwIDAgMSA5LTloMzBhOSA5IDAgMCAxIDkgOXptMC0xMDRhOSA5IDAgMCAxLTkgOWgtMzBhOSA5IDAgMCAxLTktOVY3M2E5IDkgMCAwIDEgOS05aDMwYTkgOSAwIDAgMSA5IDl6bS0xNjggNTdIMzJhMzIgMzIgMCAwIDAtMzIgMzJ2Mjg4YTMyIDMyIDAgMCAwIDMyIDMyaDM4NGEzMiAzMiAwIDAgMCAzMi0zMlYxOTJhMzIgMzIgMCAwIDAtMzItMzJ6TTk2IDIyNGEzMiAzMiAwIDEgMS0zMiAzMiAzMiAzMiAwIDAgMSAzMi0zMnptMjg4IDIyNEg2NHYtMzJsNjQtNjQgMzIgMzIgMTI4LTEyOCA5NiA5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWdneUJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwIDIyNGgtMjkuNWMtOC44LTIwLTIxLjYtMzcuNy0zNy40LTUyLjVMNTEyIDk2aC0zMmMtMjkuNCAwLTU1LjQgMTMuNS03MyAzNC4zLTcuNi0xLjEtMTUuMS0yLjMtMjMtMi4zSDI1NmMtNzcuNCAwLTE0MS45IDU1LTE1Ni44IDEyOEg1NmMtMTQuOCAwLTI2LjUtMTMuNS0yMy41LTI4LjhDMzQuNyAyMTUuOCA0NS40IDIwOCA1NyAyMDhoMWMzLjMgMCA2LTIuNyA2LTZ2LTIwYzAtMy4zLTIuNy02LTYtNi0yOC41IDAtNTMuOSAyMC40LTU3LjUgNDguNkMtMy45IDI1OC44IDIyLjcgMjg4IDU2IDI4OGg0MGMwIDUyLjIgMjUuNCA5OC4xIDY0IDEyNy4zVjQ5NmMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2di00OGgxMjh2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtODAuN2MxMS44LTguOSAyMi4zLTE5LjQgMzEuMy0zMS4zSDU2MGM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNnptLTEyOCA2NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2ek0yNTYgOTZoMTI4YzUuNCAwIDEwLjcuNCAxNS45LjggMC0uMy4xLS41LjEtLjggMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyLjEuNSA0LjEuNiA2LjIgMTUuMi0zLjkgMzEtNi4yIDQ3LjQtNi4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAzMkM1MC4xIDMyIDAgODIuMSAwIDE0NHYyMjRjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMlYxNDRjMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6bTQ4IDIyNEg2NFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHYxMTJ6bTEzOS43LTI5LjdjLTMuNS0zLjUtOS40LTMuMS0xMi4zLjgtNDUuMyA2Mi41LTQwLjQgMTUwLjEgMTUuOSAyMDYuNCA1Ni4zIDU2LjMgMTQzLjkgNjEuMiAyMDYuNCAxNS45IDQtMi45IDQuMy04LjguOC0xMi4zTDI5OS43IDIyNi4zem0yMjkuOC0xOWMtNTYuMy01Ni4zLTE0My45LTYxLjItMjA2LjQtMTUuOS00IDIuOS00LjMgOC44LS44IDEyLjNsMjEwLjggMjEwLjhjMy41IDMuNSA5LjQgMy4xIDEyLjMtLjggNDUuMy02Mi42IDQwLjUtMTUwLjEtMTUuOS0yMDYuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaXp6YVNsaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1OC44Ny4xNWMtMTYuMTYtMS41Mi0zMS4yIDguNDItMzUuMzMgMjQuMTJsLTE0LjgxIDU2LjI3YzE4Ny42MiA1LjQ5IDMxNC41NCAxMzAuNjEgMzIyLjQ4IDMxN2w1Ni45NC0xNS43OGMxNS43Mi00LjM2IDI1LjQ5LTE5LjY4IDIzLjYyLTM1LjlDNDkwLjg5IDE2NS4wOCAzNDAuNzggMTcuMzIgMTU4Ljg3LjE1em0tNTguNDcgMTEyTC41NSA0OTEuNjRhMTYuMjEgMTYuMjEgMCAwIDAgMjAgMTkuNzVsMzc5LTEwNS4xYy00LjI3LTE3NC44OS0xMjMuMDgtMjkyLjE0LTI5OS4xNS0yOTQuMXpNMTI4IDQxNmEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnptNDgtMTUyYTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyem0xMDQgMTA0YTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYWNlT2ZXb3JzaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMC42MSAzNjYuNTVMNTEyIDMyMHYxOTJoMTEyYzguODQgMCAxNi03LjE2IDE2LTE2VjM5NS45NmEzMiAzMiAwIDAgMC0xOS4zOS0yOS40MXpNMCAzOTUuOTZWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDExMlYzMjBMMTkuMzkgMzY2LjU1QTMyIDMyIDAgMCAwIDAgMzk1Ljk2em00NjQuNDYtMTQ5LjI4TDQxNiAyMTcuNlYxMDIuNjNjMC04LjQ5LTMuMzctMTYuNjItOS4zOC0yMi42M0wzMzEuMzEgNC42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwyMzMuMzggODBjLTYgNi05LjM4IDE0LjE0LTkuMzggMjIuNjNWMjE3LjZsLTQ4LjQ2IDI5LjA4QTMxLjk5NyAzMS45OTcgMCAwIDAgMTYwIDI3NC4xMlY1MTJoOTZ2LTk2YzAtMzUuMzUgMjguNjYtNjQgNjQtNjRzNjQgMjguNjUgNjQgNjR2OTZoOTZWMjc0LjEyYzAtMTEuMjQtNS45LTIxLjY2LTE1LjU0LTI3LjQ0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lQXJyaXZhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00NC44MSAyMDUuNjZsODguNzQgODBhNjIuNjA3IDYyLjYwNyAwIDAgMCAyNS40NyAxMy45M2wyODcuNiA3OC4zNWMyNi40OCA3LjIxIDU0LjU2IDguNzIgODEgMS4zNiAyOS42Ny04LjI3IDQzLjQ0LTIxLjIxIDQ3LjI1LTM1LjcxIDMuODMtMTQuNS0xLjczLTMyLjcxLTIzLjM3LTU0Ljk2LTE5LjI4LTE5LjgyLTQ0LjM1LTMyLjc5LTcwLjgzLTQwbC05Ny41MS0yNi41NkwyODIuOCAzMC4yMmMtMS41MS01LjgxLTUuOTUtMTAuMzUtMTEuNjYtMTEuOTFMMjA2LjA1LjU4Yy0xMC41Ni0yLjg4LTIwLjkgNS4zMi0yMC43MSAxNi40NGw0Ny45MiAxNjQuMjEtMTAyLjItMjcuODQtMjcuNTktNjcuODhjLTEuOTMtNC44OS02LjAxLTguNTctMTEuMDItOS45M0w1Mi43MiA2NC43NWMtMTAuMzQtMi44Mi0yMC41MyA1LTIwLjcyIDE1Ljg4bC4yMyAxMDEuNzhjLjE5IDguOTEgNi4wMyAxNy4zNCAxMi41OCAyMy4yNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZURlcGFydHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek04MC41NSAzNDEuMjdjNi4yOCA2Ljg0IDE1LjEgMTAuNzIgMjQuMzMgMTAuNzFsMTMwLjU0LS4xOGE2NS42MiA2NS42MiAwIDAgMCAyOS42NC03LjEybDI5MC45Ni0xNDcuNjVjMjYuNzQtMTMuNTcgNTAuNzEtMzIuOTQgNjcuMDItNTguMzEgMTguMzEtMjguNDggMjAuMy00OS4wOSAxMy4wNy02My42NS03LjIxLTE0LjU3LTI0Ljc0LTI1LjI3LTU4LjI1LTI3LjQ1LTI5Ljg1LTEuOTQtNTkuNTQgNS45Mi04Ni4yOCAxOS40OGwtOTguNTEgNDkuOTktMjE4LjctODIuMDZhMTcuNzk5IDE3Ljc5OSAwIDAgMC0xOC0xLjExTDkwLjYyIDY3LjI5Yy0xMC42NyA1LjQxLTEzLjI1IDE5LjY1LTUuMTcgMjguNTNsMTU2LjIyIDk4LjEtMTAzLjIxIDUyLjM4LTcyLjM1LTM2LjQ3YTE3LjgwNCAxNy44MDQgMCAwIDAtMTYuMDcuMDJMOS45MSAyMzAuMjJjLTEwLjQ0IDUuMy0xMy4xOSAxOS4xMi01LjU3IDI4LjA4bDc2LjIxIDgyLjk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIuNDgsMTQ3Ljg4LDY0LDI1NiwzMi40OCwzNjQuMTNBMTYsMTYsMCwwLDAsNDgsMzg0SDg4YTE2LDE2LDAsMCwwLDEyLjgtNi40MUwxNDQsMzIwSDI0Ni44NWwtNDksMTcxLjU5QTE2LDE2LDAsMCwwLDIxMy4yLDUxMmg2NS41YTE2LDE2LDAsMCwwLDEzLjg5LTguMDZsNjYuNi0xMTYuNTRMMzQuMzUsMTM2LjM0QTE1LjQ3LDE1LjQ3LDAsMCwwLDMyLjQ4LDE0Ny44OFpNNjMzLjgyLDQ1OC4wOSw0NTUuMTQsMzIwSDUxMmMzNS4zNCwwLDk2LTI4LjY2LDk2LTY0cy02MC42Ni02NC05Ni02NEgzOTcuN0wyOTIuNjEsOC4wNkMyOTAuMDYsMy42MSwyODMuODQsMCwyNzguNzEsMEgyMTMuMmExNiwxNiwwLDAsMC0xNS4zOCwyMC4zOWwzNi45NCwxMjkuMjlMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDVBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTQsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODFsMTkuNjQtMjUuMjZBMTYsMTYsMCwwLDAsNjMzLjgyLDQ1OC4wOVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgMTkySDM2NS43MUwyNjAuNjEgOC4wNkExNi4wMTQgMTYuMDE0IDAgMCAwIDI0Ni43MSAwaC02NS41Yy0xMC42MyAwLTE4LjMgMTAuMTctMTUuMzggMjAuMzlMMjE0Ljg2IDE5MkgxMTJsLTQzLjItNTcuNmMtMy4wMi00LjAzLTcuNzctNi40LTEyLjgtNi40SDE2LjAxQzUuNiAxMjgtMi4wNCAxMzcuNzguNDkgMTQ3Ljg4TDMyIDI1NiAuNDkgMzY0LjEyQy0yLjA0IDM3NC4yMiA1LjYgMzg0IDE2LjAxIDM4NEg1NmM1LjA0IDAgOS43OC0yLjM3IDEyLjgtNi40TDExMiAzMjBoMTAyLjg2bC00OS4wMyAxNzEuNmMtMi45MiAxMC4yMiA0Ljc1IDIwLjQgMTUuMzggMjAuNGg2NS41YzUuNzQgMCAxMS4wNC0zLjA4IDEzLjg5LTguMDZMMzY1LjcxIDMyMEg0ODBjMzUuMzUgMCA5Ni0yOC42NSA5Ni02NHMtNjAuNjUtNjQtOTYtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxheUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMTUuNyAyNzJsLTE3NiAxMDFjLTE1LjggOC44LTM1LjctMi41LTM1LjctMjFWMTUyYzAtMTguNCAxOS44LTI5LjggMzUuNy0yMWwxNzYgMTA3YzE2LjQgOS4yIDE2LjQgMzIuOSAwIDQyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjQgMjE0LjdMNzIuNCA2LjZDNDMuOC0xMC4zIDAgNi4xIDAgNDcuOVY0NjRjMCAzNy41IDQwLjcgNjAuMSA3Mi40IDQxLjNsMzUyLTIwOGMzMS40LTE4LjUgMzEuNS02NC4xIDAtODIuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCwzMmEzMiwzMiwwLDAsMC02NCwwdjk2aDY0Wm00OCwxMjhIMTZBMTYsMTYsMCwwLDAsMCwxNzZ2MzJhMTYsMTYsMCwwLDAsMTYsMTZIMzJ2MzJBMTYwLjA3LDE2MC4wNywwLDAsMCwxNjAsNDEyLjhWNTEyaDY0VjQxMi44QTE2MC4wNywxNjAuMDcsMCwwLDAsMzUyLDI1NlYyMjRoMTZhMTYsMTYsMCwwLDAsMTYtMTZWMTc2QTE2LDE2LDAsMCwwLDM2OCwxNjBaTTEyOCwzMmEzMiwzMiwwLDAsMC02NCwwdjk2aDY0WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMTQ0IDI3NmMwIDYuNi01LjQgMTItMTIgMTJoLTkydjkyYzAgNi42LTUuNCAxMi0xMiAxMmgtNTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOTJoLTkyYy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmg5MnYtOTJjMC02LjYgNS40LTEyIDEyLTEyaDU2YzYuNiAwIDEyIDUuNCAxMiAxMnY5Mmg5MmM2LjYgMCAxMiA1LjQgMTIgMTJ2NTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1c1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMzIgMjUyYzAgNi42LTUuNCAxMi0xMiAxMmgtOTJ2OTJjMCA2LjYtNS40IDEyLTEyIDEyaC01NmMtNi42IDAtMTItNS40LTEyLTEydi05Mkg5MmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoOTJ2LTkyYzAtNi42IDUuNC0xMiAxMi0xMmg1NmM2LjYgMCAxMiA1LjQgMTIgMTJ2OTJoOTJjNi42IDAgMTIgNS40IDEyIDEydjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOEgyNzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTQ0SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTQ0djE0NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzA0aDE0NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvZGNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY3LjQyOSA0ODguNTYzQzI2Mi4yODYgNTA3LjU3MyAyNDIuODU4IDUxMiAyMjQgNTEyYy0xOC44NTcgMC0zOC4yODYtNC40MjctNDMuNDI4LTIzLjQzN0MxNzIuOTI3IDQ2MC4xMzQgMTYwIDM4OC44OTggMTYwIDM1NS43NWMwLTM1LjE1NiAzMS4xNDItNDMuNzUgNjQtNDMuNzVzNjQgOC41OTQgNjQgNDMuNzVjMCAzMi45NDktMTIuODcxIDEwNC4xNzktMjAuNTcxIDEzMi44MTN6TTE1Ni44NjcgMjg4LjU1NGMtMTguNjkzLTE4LjMwOC0yOS45NTgtNDQuMTczLTI4Ljc4NC03Mi41OTkgMi4wNTQtNDkuNzI0IDQyLjM5NS04OS45NTYgOTIuMTI0LTkxLjg4MUMyNzQuODYyIDEyMS45NTggMzIwIDE2NS44MDcgMzIwIDIyMGMwIDI2LjgyNy0xMS4wNjQgNTEuMTE2LTI4Ljg2NiA2OC41NTItMi42NzUgMi42Mi0yLjQwMSA2Ljk4Ni42MjggOS4xODcgOS4zMTIgNi43NjUgMTYuNDYgMTUuMzQzIDIxLjIzNCAyNS4zNjMgMS43NDEgMy42NTQgNi40OTcgNC42NiA5LjQ0OSAxLjg5MSAyOC44MjYtMjcuMDQzIDQ2LjU1My02NS43ODMgNDUuNTExLTEwOC41NjUtMS44NTUtNzYuMjA2LTYzLjU5NS0xMzguMjA4LTEzOS43OTMtMTQwLjM2OUMxNDYuODY5IDczLjc1MyA4MCAxMzkuMjE1IDgwIDIyMGMwIDQxLjM2MSAxNy41MzIgNzguNyA0NS41NSAxMDQuOTg5IDIuOTUzIDIuNzcxIDcuNzExIDEuNzcgOS40NTMtMS44ODcgNC43NzQtMTAuMDIxIDExLjkyMy0xOC41OTggMjEuMjM1LTI1LjM2MyAzLjAyOS0yLjIgMy4zMDQtNi41NjYuNjI5LTkuMTg1ek0yMjQgMEMxMDAuMjA0IDAgMCAxMDAuMTg1IDAgMjI0YzAgODkuOTkyIDUyLjYwMiAxNjUuNjQ3IDEyNS43MzkgMjAxLjQwOCA0LjMzMyAyLjExOCA5LjI2Ny0xLjU0NCA4LjUzNS02LjMxLTIuMzgyLTE1LjUxMi00LjM0Mi0zMC45NDYtNS40MDYtNDQuMzM5LS4xNDYtMS44MzYtMS4xNDktMy40ODYtMi42NzgtNC41MTItNDcuNC0zMS44MDYtNzguNTY0LTg2LjAxNi03OC4xODctMTQ3LjM0Ny41OTItOTYuMjM3IDc5LjI5LTE3NC42NDggMTc1LjUyOS0xNzQuODk5QzMyMC43OTMgNDcuNzQ3IDQwMCAxMjYuNzk3IDQwMCAyMjRjMCA2MS45MzItMzIuMTU4IDExNi40OS04MC42NSAxNDcuODY3LS45OTkgMTQuMDM3LTMuMDY5IDMwLjU4OC01LjYyNCA0Ny4yMy0uNzMyIDQuNzY3IDQuMjAzIDguNDI5IDguNTM1IDYuMzFDMzk1LjIyNyAzODkuNzI3IDQ0OCAzMTQuMTg3IDQ0OCAyMjQgNDQ4IDEwMC4yMDUgMzQ3LjgxNSAwIDIyNCAwem0wIDE2MGMtMzUuMzQ2IDAtNjQgMjguNjU0LTY0IDY0czI4LjY1NCA2NCA2NCA2NCA2NC0yOC42NTQgNjQtNjQtMjguNjU0LTY0LTY0LTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvbGxIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0MzJWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek0xMTIgMTkyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMTI4YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2SDExMnptMCA5NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDIyNGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNkgxMTJ6bTAgOTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNmgtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNjAgMzY4YzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZWMjQwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djEyOHptOTYgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2VjE0NGMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYyMjR6bTk2IDBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9vU3Rvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA4IDMzNmgtNTcuN2wxNy4zLTY0LjljMi03LjYtMy43LTE1LjEtMTEuNi0xNS4xaC02OGMtNiAwLTExLjEgNC41LTExLjkgMTAuNGwtMTYgMTIwYy0xIDcuMiA0LjYgMTMuNiAxMS45IDEzLjZoNTkuM2wtMjMgOTcuMmMtMS44IDcuNiA0IDE0LjggMTEuNyAxNC44IDQuMiAwIDguMi0yLjIgMTAuNC02bDg4LTE1MmM0LjYtOC0xLjItMTgtMTAuNC0xOHptNjYuNC0xMTEuM2M1LjktOS42IDkuNi0yMC42IDkuNi0zMi43IDAtMzUuMy0yOC43LTY0LTY0LTY0aC01LjljMy42LTEwLjEgNS45LTIwLjcgNS45LTMyIDAtNTMtNDMtOTYtOTYtOTYtNS4yIDAtMTAuMi43LTE1LjEgMS41QzIxOC4zIDE0LjYgMjI0IDMwLjYgMjI0IDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwaC0xNmMtMzUuMyAwLTY0IDI4LjctNjQgNjQgMCAxMi4xIDMuNyAyMy4xIDkuNiAzMi43QzMyLjYgMjI4IDAgMjYyLjIgMCAzMDRjMCA0NCAzNiA4MCA4MCA4MGg0OC4zYy4xLS42IDAtMS4yIDAtMS44bDE2LTEyMGMzLTIxLjggMjEuNy0zOC4yIDQzLjctMzguMmg2OGMxMy44IDAgMjYuNSA2LjMgMzQuOSAxNy4yczExLjIgMjQuOCA3LjYgMzguMWwtNi42IDI0LjdoMTZjMTUuNyAwIDMwLjMgOC40IDM4LjEgMjIgNy44IDEzLjYgNy44IDMwLjUgMCA0NGwtOC4xIDE0aDMwYzQ0IDAgODAtMzYgODAtODAgLjEtNDEuOC0zMi41LTc2LTczLjUtNzkuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUxLjQgMzY5LjFDNDY4LjcgMzU2IDQ4MCAzMzUuNCA0ODAgMzEyYzAtMzkuOC0zMi4yLTcyLTcyLTcyaC0xNC4xYzEzLjQtMTEuNyAyMi4xLTI4LjggMjIuMS00OCAwLTM1LjMtMjguNy02NC02NC02NGgtNS45YzMuNi0xMC4xIDUuOS0yMC43IDUuOS0zMiAwLTUzLTQzLTk2LTk2LTk2LTUuMiAwLTEwLjIuNy0xNS4xIDEuNUMyNTAuMyAxNC42IDI1NiAzMC42IDI1NiA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MGgtMTZjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTkuMiA4LjcgMzYuMyAyMi4xIDQ4SDEwNGMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAyMy40IDExLjMgNDQgMjguNiA1Ny4xQzI2LjMgMzc0LjYgMCA0MDQuMSAwIDQ0MGMwIDM5LjggMzIuMiA3MiA3MiA3MmgzNjhjMzkuOCAwIDcyLTMyLjIgNzItNzIgMC0zNS45LTI2LjMtNjUuNC02MC42LTcwLjl6TTE5MiAyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0xNTkuNSAxMzlDMzQxIDQyMi45IDI5MyA0NDggMjU2IDQ0OHMtODUtMjUuMS05NS41LTUzYy0yLTUuMyAyLTExIDcuOC0xMWgxNzUuNGM1LjggMCA5LjggNS43IDcuOCAxMXpNMzIwIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9vcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTEuMzYgMzY5LjE0QzQ2OC42NiAzNTUuOTkgNDgwIDMzNS40MSA0ODAgMzEyYzAtMzkuNzctMzIuMjQtNzItNzItNzJoLTE0LjA3YzEzLjQyLTExLjczIDIyLjA3LTI4Ljc4IDIyLjA3LTQ4IDAtMzUuMzUtMjguNjUtNjQtNjQtNjRoLTUuODhjMy41Ny0xMC4wNSA1Ljg4LTIwLjcyIDUuODgtMzIgMC01My4wMi00Mi45OC05Ni05Ni05Ni01LjE3IDAtMTAuMTUuNzQtMTUuMTEgMS41MkMyNTAuMzEgMTQuNjQgMjU2IDMwLjYyIDI1NiA0OGMwIDQ0LjE4LTM1LjgyIDgwLTgwIDgwaC0xNmMtMzUuMzUgMC02NCAyOC42NS02NCA2NCAwIDE5LjIyIDguNjUgMzYuMjcgMjIuMDcgNDhIMTA0Yy0zOS43NiAwLTcyIDMyLjIzLTcyIDcyIDAgMjMuNDEgMTEuMzQgNDMuOTkgMjguNjQgNTcuMTRDMjYuMzEgMzc0LjYyIDAgNDA0LjEyIDAgNDQwYzAgMzkuNzYgMzIuMjQgNzIgNzIgNzJoMzY4YzM5Ljc2IDAgNzItMzIuMjQgNzItNzIgMC0zNS44OC0yNi4zMS02NS4zOC02MC42NC03MC44NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6bTExMiAyMzYuOGMwIDEwLjYtMTAgMTkuMi0yMi40IDE5LjJIMTAyLjRDOTAgMzg0IDgwIDM3NS40IDgwIDM2NC44di0xOS4yYzAtMzEuOCAzMC4xLTU3LjYgNjcuMi01Ny42aDVjMTIuMyA1LjEgMjUuNyA4IDM5LjggOHMyNy42LTIuOSAzOS44LThoNWMzNy4xIDAgNjcuMiAyNS44IDY3LjIgNTcuNnYxOS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvdW5kU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDggMzUyaC00NS40OTVjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTAuODQ4SDEyOFYyODhoODRjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtODR2LTYzLjU1NmMwLTMyLjI2NiAyNC41NjItNTcuMDg2IDYxLjc5Mi01Ny4wODYgMjMuNjU4IDAgNDUuODc4IDExLjUwNSA1Ny42NTIgMTguODQ5IDUuMTUxIDMuMjEzIDExLjg4OCAyLjA1MSAxNS42ODgtMi42ODVsMjguNDkzLTM1LjUxM2M0LjIzMy01LjI3NiAzLjI3OS0xMy4wMDUtMi4xMTktMTcuMDgxQzI3My4xMjQgNTQuNTYgMjM2LjU3NiAzMiAxODcuOTMxIDMyIDEwNi4wMjYgMzIgNDggODQuNzQyIDQ4IDE1Ny45NjFWMjI0SDIwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjh2MTI4SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjk2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWMzY0YzAtNi42MjctNS4zNzMtMTItMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG93ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDU0LjFjNjMgNDUgMTA0IDExOC42IDEwNCAyMDEuOSAwIDEzNi44LTExMC44IDI0Ny43LTI0Ny41IDI0OEMxMjAgNTA0LjMgOC4yIDM5MyA4IDI1Ni40IDcuOSAxNzMuMSA0OC45IDk5LjMgMTExLjggNTQuMmMxMS43LTguMyAyOC00LjggMzUgNy43TDE2Mi42IDkwYzUuOSAxMC41IDMuMSAyMy44LTYuNiAzMS00MS41IDMwLjgtNjggNzkuNi02OCAxMzQuOS0uMSA5Mi4zIDc0LjUgMTY4LjEgMTY4IDE2OC4xIDkxLjYgMCAxNjguNi03NC4yIDE2OC0xNjkuMS0uMy01MS44LTI0LjctMTAxLjgtNjguMS0xMzQtOS43LTcuMi0xMi40LTIwLjUtNi41LTMwLjlsMTUuOC0yOC4xYzctMTIuNCAyMy4yLTE2LjEgMzQuOC03Ljh6TTI5NiAyNjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMTI4YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRTMjkxLjM1IDAgMjU2IDBzLTY0IDI4LjY1LTY0IDY0IDI4LjY1IDY0IDY0IDY0em0tMzAuNjMgMTY5Ljc1YzE0LjA2IDE2LjcyIDM5IDE5LjA5IDU1Ljk3IDUuMjJsODgtNzIuMDJjMTcuMDktMTMuOTggMTkuNTktMzkuMTkgNS42Mi01Ni4yOC0xMy45Ny0xNy4xMS0zOS4xOS0xOS41OS01Ni4zMS01LjYybC01Ny40NCA0Ny0zOC45MS00Ni4zMWMtMTUuNDQtMTguMzktMzkuMjItMjcuOTItNjQtMjUuMzMtMjQuMTkgMi40OC00NS4yNSAxNi4yNy01Ni4zNyAzNi45MmwtNDkuMzcgOTIuMDNjLTIzLjQgNDMuNjQtOC42OSA5Ni4zNyAzNC4xOSAxMjMuNzVMMTMxLjU2IDQzMkg0MGMtMjIuMDkgMC00MCAxNy45MS00MCA0MHMxNy45MSA0MCA0MCA0MGgyMDhjMzQuMDggMCA1My43Ny00Mi43OSAyOC4yOC02OC4yOEwxNjYuNDIgMzMzLjg2bDM0LjgtNjQuODcgMjQuMTUgMjguNzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJheWluZ0hhbmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAxOTEuOTFjLTE3LjYgMC0zMiAxNC40LTMyIDMydjgwYzAgOC44NC03LjE2IDE2LTE2IDE2cy0xNi03LjE2LTE2LTE2di03Ni41NWMwLTE3LjM5IDQuNzItMzQuNDcgMTMuNjktNDkuMzlsNzcuNzUtMTI5LjU5YzkuMDktMTUuMTYgNC4xOS0zNC44MS0xMC45Ny00My45MS0xNC40NS04LjY3LTMyLjcyLTQuMy00Mi4zIDkuMjEtLjIuMjMtLjYyLjIxLS43OS40OGwtMTE3LjI2IDE3NS45QzExNy41NiAyMDUuOSAxMTIgMjI0LjMxIDExMiAyNDMuMjl2ODAuMjNsLTkwLjEyIDMwLjA0QTMxLjk3NCAzMS45NzQgMCAwIDAgMCAzODMuOTF2OTZjMCAxMC44MiA4LjUyIDMyIDMyIDMyIDIuNjkgMCA1LjQxLS4zNCA4LjA2LTEuMDNsMTc5LjE5LTQ2LjYyQzI2OS4xNiA0NDkuOTkgMzA0IDQwMy44IDMwNCAzNTEuOTF2LTEyOGMwLTE3LjYtMTQuNC0zMi0zMi0zMnptMzQ2LjEyIDE2MS43M0w1MjggMzIzLjZ2LTgwLjIzYzAtMTguOTgtNS41Ni0zNy4zOS0xNi4xMi01My4yM0wzOTQuNjIgMTQuMjVjLS4xOC0uMjctLjU5LS4yNC0uNzktLjQ4LTkuNTgtMTMuNTEtMjcuODUtMTcuODgtNDIuMy05LjIxLTE1LjE2IDkuMDktMjAuMDYgMjguNzUtMTAuOTcgNDMuOTFsNzcuNzUgMTI5LjU5YzguOTcgMTQuOTIgMTMuNjkgMzIgMTMuNjkgNDkuMzlWMzA0YzAgOC44NC03LjE2IDE2LTE2IDE2cy0xNi03LjE2LTE2LTE2di04MGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnYxMjhjMCA1MS44OSAzNC44NCA5OC4wOCA4NC43NSAxMTIuMzRsMTc5LjE5IDQ2LjYyYzIuNjYuNjkgNS4zOCAxLjAzIDguMDYgMS4wMyAyMy40OCAwIDMyLTIxLjE4IDMyLTMydi05NmMwLTEzLjc3LTguODEtMjUuOTktMjEuODgtMzAuMzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uQm90dGxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCAwSDI0QzEwLjggMCAwIDEwLjggMCAyNHY0OGMwIDEzLjIgMTAuOCAyNCAyNCAyNGgzMzZjMTMuMiAwIDI0LTEwLjggMjQtMjRWMjRjMC0xMy4yLTEwLjgtMjQtMjQtMjR6TTMyIDQ4MGMwIDE3LjYgMTQuNCAzMiAzMiAzMmgyNTZjMTcuNiAwIDMyLTE0LjQgMzItMzJWMTI4SDMydjM1MnptNjQtMTg0YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmVzY3JpcHRpb25Cb3R0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMTkyaDEyMGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMydjY0aDEyMGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMydjY0aDEyMGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMydjY0YzAgMTcuNiAxNC40IDMyIDMyIDMyaDI1NmMxNy42IDAgMzItMTQuNCAzMi0zMlYxMjhIMzJ2NjR6TTM2MCAwSDI0QzEwLjggMCAwIDEwLjggMCAyNHY0OGMwIDEzLjIgMTAuOCAyNCAyNCAyNGgzMzZjMTMuMiAwIDI0LTEwLjggMjQtMjRWMjRjMC0xMy4yLTEwLjgtMjQtMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS4yNiAzNTJsNzguMDYtNzguMDZjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBMMjU2IDMwNi43NGwtODMuOTYtODMuOTZDMjE5LjMxIDIxNi44IDI1NiAxNzYuODkgMjU2IDEyOGMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2SDE2QzcuMTYgMzIgMCAzOS4xNiAwIDQ4djI1NmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtODBoMTguNzVsMTI4IDEyOC03OC4wNiA3OC4wNmMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwTDI1NiAzOTcuMjVsNzguMDYgNzguMDZjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42My0yMi42M2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDMwMS4yNiAzNTJ6TTY0IDk2aDk2YzE3LjY0IDAgMzIgMTQuMzYgMzIgMzJzLTE0LjM2IDMyLTMyIDMySDY0Vjk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxOTJWNzcuMjVjMC04LjQ5LTMuMzctMTYuNjItOS4zNy0yMi42M0wzOTMuMzcgOS4zN2MtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0g5NkM3OC4zMyAwIDY0IDE0LjMzIDY0IDMydjE2MGMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMjBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjU2YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS02NCAyNTZIMTI4di05NmgyNTZ2OTZ6bTAtMjI0SDEyOFY2NGgxOTJ2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2OTZ6bTQ4IDcyYy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcm9jZWR1cmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAyMjRIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2MTQ0SDY0VjE0NGMwLTguOC03LjItMTYtMTYtMTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzNTJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDhoNTEydjQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzM2YzAtNjEuOS01MC4xLTExMi0xMTItMTEyek0xMzYgOTZoMTI2LjFsMjcuNiA1NS4yYzUuOSAxMS44IDIyLjcgMTEuOCAyOC42IDBMMzY4IDUxLjggMzkwLjEgOTZINTEyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDQwOS45TDM4Mi4zIDguOEMzNzYuNC0zIDM1OS42LTMgMzUzLjcgOC44TDMwNCAxMDguMmwtMTkuOS0zOS44Yy0xLjQtMi43LTQuMS00LjQtNy4yLTQuNEgxMzZjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6bTI0IDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJvamVjdERpYWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyMEgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTI4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTE5MiAzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk1LjcybDczLjE2IDEyOC4wNEMyMTEuOTggMzAwLjk4IDIzMi40IDI4OCAyNTYgMjg4aC4yOEwxOTIgMTc1LjUxVjEyOGgyMjRWNjRIMTkyVjMyek02MDggMEg0ODBjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTI4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQdW1wTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzUuNTEsMTU5LjgySDg0LjI0QTY0LDY0LDAsMCwwLDIwLjUxLDIxOEwuMTQsNDQyYTY0LDY0LDAsMCwwLDYzLjc0LDY5LjhoMTkyQTY0LDY0LDAsMCwwLDMxOS42MSw0NDJMMjk5LjI0LDIxOEE2NCw2NCwwLDAsMCwyMzUuNTEsMTU5LjgyWm00LjM3LDE3My4zM2ExMy4zNSwxMy4zNSwwLDAsMS0xMy4zNCwxMy4zNGgtNDB2NDBhMTMuMzMsMTMuMzMsMCwwLDEtMTMuMzMsMTMuMzNIMTQ2LjU0YTEzLjMzLDEzLjMzLDAsMCwxLTEzLjMzLTEzLjMzdi00MGgtNDBhMTMuMzQsMTMuMzQsMCwwLDEtMTMuMzMtMTMuMzRWMzA2LjQ5YTEzLjMzLDEzLjMzLDAsMCwxLDEzLjMzLTEzLjM0aDQwdi00MGExMy4zMywxMy4zMywwLDAsMSwxMy4zMy0xMy4zM2gyNi42N2ExMy4zMywxMy4zMywwLDAsMSwxMy4zMywxMy4zM3Y0MGg0MGExMy4zNCwxMy4zNCwwLDAsMSwxMy4zNCwxMy4zNFpNMzc5LjE5LDkzLjg4LDMzNS44Nyw1MC41NmE2NCw2NCwwLDAsMC00NS4yNC0xOC43NEgyMjMuODhhMzIsMzIsMCwwLDAtMzItMzJoLTY0YTMyLDMyLDAsMCwwLTMyLDMydjk2aDEyOHYtMzJoNjYuNzVsNDMuMzEsNDMuMzFhMTYsMTYsMCwwLDAsMjIuNjMsMGwyMi42Mi0yMi42MkExNiwxNiwwLDAsMCwzNzkuMTksOTMuODhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHVtcFNvYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM1LjYzLDE2MEg4NC4zN2E2NCw2NCwwLDAsMC02My43NCw1OC4yMUwuMjcsNDQyLjIxQTY0LDY0LDAsMCwwLDY0LDUxMkgyNTZhNjQsNjQsMCwwLDAsNjMuNzQtNjkuNzlsLTIwLjM2LTIyNEE2NCw2NCwwLDAsMCwyMzUuNjMsMTYwWk0xNjAsNDE2Yy0zMy4xMiwwLTYwLTI2LjMzLTYwLTU4Ljc1LDAtMjUsMzUuNy03NS40Nyw1Mi05Ny4yN0ExMCwxMCwwLDAsMSwxNjgsMjYwYzE2LjMzLDIxLjgsNTIsNzIuMjcsNTIsOTcuMjdDMjIwLDM4OS42NywxOTMuMTIsNDE2LDE2MCw0MTZaTTM3OS4zMSw5NC4wNiwzMzYsNTAuNzRBNjQsNjQsMCwwLDAsMjkwLjc1LDMySDIyNEEzMiwzMiwwLDAsMCwxOTIsMEgxMjhBMzIsMzIsMCwwLDAsOTYsMzJ2OTZIMjI0Vjk2aDY2Ljc1bDQzLjMxLDQzLjMxYTE2LDE2LDAsMCwwLDIyLjYzLDBsMjIuNjItMjIuNjJBMTYsMTYsMCwwLDAsMzc5LjMxLDk0LjA2WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1enpsZVBpZWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxOS40NDIgMjg4LjY1MWMtNDEuNTE5IDAtNTkuNSAzMS41OTMtODIuMDU4IDMxLjU5M0MzNzcuNDA5IDMyMC4yNDQgNDMyIDE0NCA0MzIgMTQ0cy0xOTYuMjg4IDgwLTE5Ni4yODgtMy4yOTdjMC0zNS44MjcgMzYuMjg4LTQ2LjI1IDM2LjI4OC04NS45ODVDMjcyIDE5LjIxNiAyNDMuODg1IDAgMjEwLjUzOSAwYy0zNC42NTQgMC02Ni4zNjYgMTguODkxLTY2LjM2NiA1Ni4zNDYgMCA0MS4zNjQgMzEuNzExIDU5LjI3NyAzMS43MTEgODEuNzVDMTc1Ljg4NSAyMDcuNzE5IDAgMTY2Ljc1OCAwIDE2Ni43NTh2MzMzLjIzN3MxNzguNjM1IDQxLjA0NyAxNzguNjM1LTI4LjY2MmMwLTIyLjQ3My00MC00MC4xMDctNDAtODEuNDcxIDAtMzcuNDU2IDI5LjI1LTU2LjM0NiA2My41NzctNTYuMzQ2IDMzLjY3MyAwIDYxLjc4OCAxOS4yMTYgNjEuNzg4IDU0LjcxNyAwIDM5LjczNS0zNi4yODggNTAuMTU4LTM2LjI4OCA4NS45ODUgMCA2MC44MDMgMTI5LjY3NSAyNS43MyAxODEuMjMgMjUuNzMgMCAwLTM0LjcyNS0xMjAuMTAxIDI1LjgyNy0xMjAuMTAxIDM1Ljk2MiAwIDQ2LjQyMyAzNi4xNTIgODYuMzA4IDM2LjE1MkM1NTYuNzEyIDQxNiA1NzYgMzg3Ljk5IDU3NiAzNTQuNDQzYzAtMzQuMTk5LTE4Ljk2Mi02NS43OTItNTYuNTU4LTY1Ljc5MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjRoMTkyVjMySDB2MTkyek02NCA5Nmg2NHY2NEg2NFY5NnptMTkyLTY0djE5MmgxOTJWMzJIMjU2em0xMjggMTI4aC02NFY5Nmg2NHY2NHpNMCA0ODBoMTkyVjI4OEgwdjE5MnptNjQtMTI4aDY0djY0SDY0di02NHptMzUyLTY0aDMydjEyOGgtOTZ2LTMyaC0zMnY5NmgtNjRWMjg4aDk2djMyaDY0di0zMnptMCAxNjBoMzJ2MzJoLTMydi0zMnptLTY0IDBoMzJ2MzJoLTMydi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWVzdGlvbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM2Ljk5Ny0xMTEuMDQzIDI0OC0yNDggMjQ4UzggMzkyLjk5NyA4IDI1NkM4IDExOS4wODMgMTE5LjA0MyA4IDI1NiA4czI0OCAxMTEuMDgzIDI0OCAyNDh6TTI2Mi42NTUgOTBjLTU0LjQ5NyAwLTg5LjI1NSAyMi45NTctMTE2LjU0OSA2My43NTgtMy41MzYgNS4yODYtMi4zNTMgMTIuNDE1IDIuNzE1IDE2LjI1OGwzNC42OTkgMjYuMzFjNS4yMDUgMy45NDcgMTIuNjIxIDMuMDA4IDE2LjY2NS0yLjEyMiAxNy44NjQtMjIuNjU4IDMwLjExMy0zNS43OTcgNTcuMzAzLTM1Ljc5NyAyMC40MjkgMCA0NS42OTggMTMuMTQ4IDQ1LjY5OCAzMi45NTggMCAxNC45NzYtMTIuMzYzIDIyLjY2Ny0zMi41MzQgMzMuOTc2QzI0Ny4xMjggMjM4LjUyOCAyMTYgMjU0Ljk0MSAyMTYgMjk2djRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0xLjMzM2MwLTI4LjQ2MiA4My4xODYtMjkuNjQ3IDgzLjE4Ni0xMDYuNjY3IDAtNTguMDAyLTYwLjE2NS0xMDItMTE2LjUzMS0xMDJ6TTI1NiAzMzhjLTI1LjM2NSAwLTQ2IDIwLjYzNS00NiA0NiAwIDI1LjM2NCAyMC42MzUgNDYgNDYgNDZzNDYtMjAuNjM2IDQ2LTQ2YzAtMjUuMzY1LTIwLjYzNS00Ni00Ni00NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWVzdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDIuMDIxIDBDMTIyLjIwMiAwIDcwLjUwMyAzMi43MDMgMjkuOTE0IDkxLjAyNmMtNy4zNjMgMTAuNTgtNS4wOTMgMjUuMDg2IDUuMTc4IDMyLjg3NGw0My4xMzggMzIuNzA5YzEwLjM3MyA3Ljg2NSAyNS4xMzIgNi4wMjYgMzMuMjUzLTQuMTQ4IDI1LjA0OS0zMS4zODEgNDMuNjMtNDkuNDQ5IDgyLjc1Ny00OS40NDkgMzAuNzY0IDAgNjguODE2IDE5Ljc5OSA2OC44MTYgNDkuNjMxIDAgMjIuNTUyLTE4LjYxNyAzNC4xMzQtNDguOTkzIDUxLjE2NC0zNS40MjMgMTkuODYtODIuMjk5IDQ0LjU3Ni04Mi4yOTkgMTA2LjQwNVYzMjBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDcyLjQ3MWMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTUuNzczYzAtNDIuODYgMTI1LjI2OC00NC42NDUgMTI1LjI2OC0xNjAuNjI3QzM3Ny41MDQgNjYuMjU2IDI4Ni45MDIgMCAyMDIuMDIxIDB6TTE5MiAzNzMuNDU5Yy0zOC4xOTYgMC02OS4yNzEgMzEuMDc1LTY5LjI3MSA2OS4yNzEgMCAzOC4xOTUgMzEuMDc1IDY5LjI3IDY5LjI3MSA2OS4yN3M2OS4yNzEtMzEuMDc1IDY5LjI3MS02OS4yNzEtMzEuMDc1LTY5LjI3LTY5LjI3MS02OS4yN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWlkZGl0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LjUgMjE2LjhMMzQzLjIgMzI2cy0xNi42IDEwMi40LTc2LjYgMTUwLjFDMjA2LjcgNTIzLjggMCA1MTAuMiAwIDUxMC4yczMuOC0yMy4xIDExLTU1LjRsOTQuNi0xMTIuMmM0LTQuNy0uOS0xMS42LTYuNi05LjVsLTYwLjQgMjIuMWMxNC40LTQxLjcgMzIuNy04MCA1NC42LTk3LjUgNTkuOS00Ny44IDE2My4zLTQwLjkgMTYzLjMtNDAuOXptMjM4IDEzNWMtNDQgMC03OS44IDM1LjgtNzkuOCA3OS45IDAgNDQuMSAzNS43IDc5LjkgNzkuOCA3OS45IDQ0LjEgMCA3OS44LTM1LjggNzkuOC03OS45IDAtNDQuMi0zNS44LTc5LjktNzkuOC03OS45ek02MzYuNSAzMUw2MTYuNyA2Yy01LjUtNi45LTE1LjUtOC0yMi40LTIuNkwzNjEuOCAxODEuM2wtMzQuMS00M2MtNS4xLTYuNC0xNS4xLTUuMi0xOC42IDIuMmwtMjUuMyA1NC42IDg2LjcgMTA5LjIgNTguOC0xMi40YzgtMS43IDExLjQtMTEuMiA2LjMtMTcuNmwtMzQuMS00Mi45TDYzNCA1My41YzYuOS01LjUgOC0xNS42IDIuNS0yMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1b3RlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2aC04MHYtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtOGMtODguNCAwLTE2MCA3MS42LTE2MCAxNjB2MjQwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDEyOGMyNi41IDAgNDgtMjEuNSA0OC00OFYzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0yODggMEg5NnYtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtOEM3MS42IDMyIDAgMTAzLjYgMCAxOTJ2MjQwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDEyOGMyNi41IDAgNDgtMjEuNSA0OC00OFYzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVvdGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJIMzM2Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxMjhjMCAyNi41IDIxLjUgNDggNDggNDhoODB2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRoLThjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDhjODguNCAwIDE2MC03MS42IDE2MC0xNjBWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0yODggMEg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NGgtOGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdXJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0zMDEuMDggMTQ1LjgyYy42LTEuMjEgMS43Ni0xLjgyIDIuOTItMS44MnMyLjMyLjYxIDIuOTIgMS44MmwxMS4xOCAyMi42NSAyNSAzLjYzYzIuNjcuMzkgMy43NCAzLjY3IDEuODEgNS41NmwtMTguMDkgMTcuNjMgNC4yNyAyNC44OWMuMzYgMi4xMS0xLjMxIDMuODItMy4yMSAzLjgyLS41IDAtMS4wMi0uMTItMS41Mi0uMzhMMzA0IDIxMS44N2wtMjIuMzYgMTEuNzVjLS41LjI2LTEuMDIuMzgtMS41Mi4zOC0xLjkgMC0zLjU3LTEuNzEtMy4yMS0zLjgybDQuMjctMjQuODktMTguMDktMTcuNjNjLTEuOTQtMS44OS0uODctNS4xNyAxLjgxLTUuNTZsMjQuOTktMy42MyAxMS4xOS0yMi42NXptLTU3Ljg5LTY5LjAxYzEzLjY3IDAgMjcuMjYgMi40OSA0MC4zOCA3LjQxYTYuNzc1IDYuNzc1IDAgMSAxLTIuMzggMTMuMTJjLS42NyAwLTMuMDktLjIxLTQuMTMtLjIxLTUyLjMxIDAtOTQuODYgNDIuNTUtOTQuODYgOTQuODYgMCA1Mi4zIDQyLjU1IDk0Ljg2IDk0Ljg2IDk0Ljg2IDEuMDMgMCAzLjQ4LS4yMSA0LjEzLS4yMSAzLjkzIDAgNi44IDMuMTQgNi44IDYuNzggMCAyLjk4LTEuOTQgNS41MS00LjYyIDYuNDItMTMuMDcgNC44Ny0yNi41OSA3LjM0LTQwLjE5IDcuMzRDMTc5LjY3IDMwNy4xOSAxMjggMjU1LjUxIDEyOCAxOTJjMC02My41MiA1MS42Ny0xMTUuMTkgMTE1LjE5LTExNS4xOXpNMzgwLjggNDQ4SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHY2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYWRpYXRpb25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEyIDI1Nmg3OS4xYzkuMiAwIDE2LjktNy43IDE2LTE2LjgtNC42LTQzLjYtMjctODEuOC01OS41LTEwNy44LTcuNi02LjEtMTguOC00LjUtMjQgMy44TDI4MS45IDIwMmMxOCAxMS4yIDMwLjEgMzEuMiAzMC4xIDU0em0tOTcuOCA1NC4xTDE3Mi40IDM3N2MtNC45IDcuOC0yLjQgMTguNCA1LjggMjIuNSAyMS4xIDEwLjQgNDQuNyAxNi41IDY5LjggMTYuNXM0OC43LTYuMSA2OS45LTE2LjVjOC4yLTQuMSAxMC42LTE0LjcgNS44LTIyLjVsLTQxLjgtNjYuOWMtOS44IDYuMi0yMS40IDkuOS0zMy44IDkuOXMtMjQuMS0zLjctMzMuOS05Ljl6TTEwNC45IDI1NkgxODRjMC0yMi44IDEyLjEtNDIuOCAzMC4yLTU0LjFsLTQxLjctNjYuOGMtNS4yLTguMy0xNi40LTkuOS0yNC0zLjgtMzIuNiAyNi01NC45IDY0LjItNTkuNSAxMDcuOC0xLjEgOS4yIDYuNyAxNi45IDE1LjkgMTYuOXpNMjQ4IDUwNGMxMzcgMCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4em0wLTQzMmMxMDEuNSAwIDE4NCA4Mi41IDE4NCAxODRzLTgyLjUgMTg0LTE4NCAxODRTNjQgMzU3LjUgNjQgMjU2IDE0Ni41IDcyIDI0OCA3MnptMCAyMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhZGlhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjguMiAyNTUuOGgxNTEuNmM5LjEgMCAxNi44LTcuNyAxNi4yLTE2LjgtNS4xLTc1LjgtNDQuNC0xNDIuMi0xMDIuNS0xODQuMi03LjQtNS4zLTE3LjktMi45LTIyLjcgNC44TDI5MC40IDE4OGMyMi42IDE0LjMgMzcuOCAzOS4yIDM3LjggNjcuOHptLTM3LjggNjcuN2MtMTIuMyA3LjctMjYuOCAxMi40LTQyLjQgMTIuNC0xNS42IDAtMzAtNC43LTQyLjQtMTIuNEwxMjUuMiA0NTJjLTQuOCA3LjctMi40IDE4LjEgNS42IDIyLjRDMTY1LjcgNDkzLjIgMjA1LjYgNTA0IDI0OCA1MDRzODIuMy0xMC44IDExNy4yLTI5LjZjOC00LjMgMTAuNC0xNC44IDUuNi0yMi40bC04MC40LTEyOC41ek0yNDggMzAzLjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDgtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em0tMjMxLjgtNDhoMTUxLjZjMC0yOC42IDE1LjItNTMuNSAzNy44LTY3LjdMMTI1LjIgNTkuN2MtNC44LTcuNy0xNS4zLTEwLjItMjIuNy00LjhDNDQuNCA5Ni45IDUuMSAxNjMuMyAwIDIzOS4xYy0uNiA5IDcuMSAxNi43IDE2LjIgMTYuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYWluYm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OC4zIDMyLjdDMTE1LjQgNDIuOSAwIDE3Ni45IDAgMzMwLjJWNDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwQzY0IDE4Ni44IDE4MC45IDgwLjMgMzE3LjUgOTcuOSA0MzAuNCAxMTIuNCA1MTIgMjE0IDUxMiAzMjcuOFY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC0xNjUuMy0xNDAtMjk4LjYtMzA3LjctMjg3LjN6bS01LjYgOTYuOUMxNjYgMTQyIDk2IDIyOS4xIDk2IDMyNi43VjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGMwLTc0LjggNjQuNS0xMzQuOCAxNDAuOC0xMjcuNCA2Ni41IDYuNSAxMTUuMiA2Ni4yIDExNS4yIDEzMy4xVjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGMwLTExNC4yLTEwMC4yLTIwNS40LTIxNy4zLTE5MC40em02LjIgOTYuM2MtNDUuNiA4LjktNzYuOSA1MS41LTc2LjkgOTcuOVY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC0xNy42IDE0LjMtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnYxNDRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC01OS4yLTUzLjgtMTA2LTExNS4xLTk0LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFuZG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC45NzEgMzU5LjAyOWM5LjM3MyA5LjM3MyA5LjM3MyAyNC41NjkgMCAzMy45NDFsLTgwIDc5Ljk4NGMtMTUuMDEgMTUuMDEtNDAuOTcxIDQuNDktNDAuOTcxLTE2Ljk3MVY0MTZoLTU4Ljc4NWExMi4wMDQgMTIuMDA0IDAgMCAxLTguNzczLTMuODEybC03MC41NTYtNzUuNTk2IDUzLjMzMy01Ny4xNDNMMzUyIDMzNmgzMnYtMzkuOTgxYzAtMjEuNDM4IDI1Ljk0My0zMS45OTggNDAuOTcxLTE2Ljk3MWw4MCA3OS45ODF6TTEyIDE3Nmg4NGw1Mi43ODEgNTYuNTUxIDUzLjMzMy01Ny4xNDMtNzAuNTU2LTc1LjU5NkExMS45OTkgMTEuOTk5IDAgMCAwIDEyMi43ODUgOTZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnptMzcyIDB2MzkuOTg0YzAgMjEuNDYgMjUuOTYxIDMxLjk4IDQwLjk3MSAxNi45NzFsODAtNzkuOTg0YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MWwtODAtNzkuOTgxQzQwOS45NDMgMjQuMDIxIDM4NCAzNC41ODIgMzg0IDU2LjAxOVY5NmgtNTguNzg1YTEyLjAwNCAxMi4wMDQgMCAwIDAtOC43NzMgMy44MTJMOTYgMzM2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjU2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTEwLjc4NWMzLjMyNiAwIDYuNTAzLTEuMzgxIDguNzczLTMuODEyTDM1MiAxNzZoMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjZWlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTguNCAzLjJMMzIwIDQ4IDI2NS42IDMuMmExNS45IDE1LjkgMCAwIDAtMTkuMiAwTDE5MiA0OCAxMzcuNiAzLjJhMTUuOSAxNS45IDAgMCAwLTE5LjIgMEw2NCA0OCAyNS42IDMuMkMxNS00LjcgMCAyLjggMCAxNnY0ODBjMCAxMy4yIDE1IDIwLjcgMjUuNiAxMi44TDY0IDQ2NGw1NC40IDQ0LjhhMTUuOSAxNS45IDAgMCAwIDE5LjIgMEwxOTIgNDY0bDU0LjQgNDQuOGExNS45IDE1LjkgMCAwIDAgMTkuMiAwTDMyMCA0NjRsMzguNCA0NC44YzEwLjUgNy45IDI1LjYuNCAyNS42LTEyLjhWMTZjMC0xMy4yLTE1LTIwLjctMjUuNi0xMi44ek0zMjAgMzYwYzAgNC40LTMuNiA4LTggOEg3MmMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMjQwYzQuNCAwIDggMy42IDggOHYxNnptMC05NmMwIDQuNC0zLjYgOC04IDhINzJjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDI0MGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtOTZjMCA0LjQtMy42IDgtOCA4SDcyYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgyNDBjNC40IDAgOCAzLjYgOCA4djE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlY29yZFZpbnlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxNTJhMTA0IDEwNCAwIDEgMCAxMDQgMTA0IDEwNCAxMDQgMCAwIDAtMTA0LTEwNHptMCAxMjhhMjQgMjQgMCAxIDEgMjQtMjQgMjQgMjQgMCAwIDEtMjQgMjR6bTAtMjcyQzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgMzc2YTEyOCAxMjggMCAxIDEgMTI4LTEyOCAxMjggMTI4IDAgMCAxLTEyOCAxMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjeWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODQuNTYxIDI2MS45MDNjMy4yMzIgMTMuOTk3LTEyLjEyMyAyNC42MzUtMjQuMDY4IDE3LjE2OGwtNDAuNzM2LTI1LjQ1NS01MC44NjcgODEuNDAyQzU1LjYwNiAzNTYuMjczIDcwLjk2IDM4NCA5Ni4wMTIgMzg0SDE0OGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwYzAgNi42MjctNS4zNzMgMTItMTIgMTJIOTYuMTE1Yy03NS4zMzQgMC0xMjEuMzAyLTgzLjA0OC04MS40MDgtMTQ2Ljg4bDUwLjgyMi04MS4zODgtNDAuNzI1LTI1LjQ0OGMtMTIuMDgxLTcuNTQ3LTguOTY2LTI1Ljk2MSA0Ljg3OS0yOS4xNThsMTEwLjIzNy0yNS40NWM4LjYxMS0xLjk4OCAxNy4yMDEgMy4zODEgMTkuMTg5IDExLjk5bDI1LjQ1MiAxMTAuMjM3em05OC41NjEtMTgyLjkxNWw0MS4yODkgNjYuMDc2LTQwLjc0IDI1LjQ1N2MtMTIuMDUxIDcuNTI4LTkgMjUuOTUzIDQuODc5IDI5LjE1OGwxMTAuMjM3IDI1LjQ1YzguNjcyIDEuOTk5IDE3LjIxNS0zLjQzOCAxOS4xODktMTEuOTlsMjUuNDUtMTEwLjIzN2MzLjE5Ny0xMy44NDQtMTEuOTktMjQuNzE5LTI0LjA2OC0xNy4xNjhsLTQwLjY4NyAyNS40MjQtNDEuMjYzLTY2LjA4MmMtMzcuNTIxLTYwLjAzMy0xMjUuMjA5LTYwLjE3MS0xNjIuODE2IDBsLTE3Ljk2MyAyOC43NjZjLTMuNTEgNS42Mi0xLjggMTMuMDIxIDMuODIgMTYuNTMzbDMzLjkxOSAyMS4xOTVjNS42MiAzLjUxMiAxMy4wMjQgMS44MDMgMTYuNTM2LTMuODE3bDE3Ljk2MS0yOC43NDNjMTIuNzEyLTIwLjM0MSA0MS45NzMtMTkuNjc2IDU0LjI1Ny0uMDIyek00OTcuMjg4IDMwMS4xMmwtMjcuNTE1LTQ0LjA2NWMtMy41MTEtNS42MjMtMTAuOTE2LTcuMzM0LTE2LjUzOC0zLjgyMWwtMzMuODYxIDIxLjE1OWMtNS42MiAzLjUxMi03LjMzIDEwLjkxNS0zLjgxOCAxNi41MzZsMjcuNTY0IDQ0LjExMmMxMy4yNTcgMjEuMjExLTIuMDU3IDQ4Ljk2LTI3LjEzNiA0OC45NkgzMjBWMzM2LjAyYzAtMTQuMjEzLTE3LjI0Mi0yMS4zODMtMjcuMzEzLTExLjMxM2wtODAgNzkuOTgxYy02LjI0OSA2LjI0OC02LjI0OSAxNi4zNzkgMCAyMi42MjdsODAgNzkuOTg5QzMwMi42ODkgNTE3LjMwOCAzMjAgNTEwLjMgMzIwIDQ5NS45ODlWNDQ4aDk1Ljg4Yzc1LjI3NCAwIDEyMS4zMzUtODIuOTk3IDgxLjQwOC0xNDYuODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkb0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuNDU1IDhjNjYuMjY5LjExOSAxMjYuNDM3IDI2LjIzMyAxNzAuODU5IDY4LjY4NWwzNS43MTUtMzUuNzE1QzQ3OC4xNDkgMjUuODUxIDUwNCAzNi41NTkgNTA0IDU3Ljk0MVYxOTJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDM0NS45NDFjLTIxLjM4MiAwLTMyLjA5LTI1Ljg1MS0xNi45NzEtNDAuOTcxbDQxLjc1LTQxLjc1Yy0zMC44NjQtMjguODk5LTcwLjgwMS00NC45MDctMTEzLjIzLTQ1LjI3My05Mi4zOTgtLjc5OC0xNzAuMjgzIDczLjk3Ny0xNjkuNDg0IDE2OS40NDJDODguNzY0IDM0OC4wMDkgMTYyLjE4NCA0MjQgMjU2IDQyNGM0MS4xMjcgMCA3OS45OTctMTQuNjc4IDExMC42MjktNDEuNTU2IDQuNzQzLTQuMTYxIDExLjkwNi0zLjkwOCAxNi4zNjguNTUzbDM5LjY2MiAzOS42NjJjNC44NzIgNC44NzIgNC42MzEgMTIuODE1LS40ODIgMTcuNDMzQzM3OC4yMDIgNDc5LjgxMyAzMTkuOTI2IDUwNCAyNTYgNTA0IDExOS4wMzQgNTA0IDguMDAxIDM5Mi45NjcgOCAyNTYuMDAyIDcuOTk5IDExOS4xOTMgMTE5LjY0NiA3Ljc1NSAyNTYuNDU1IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAuMzMgMGgtNDcuNDFhMTIgMTIgMCAwIDAtMTIgMTIuNTdsNCA4Mi43NkEyNDcuNDIgMjQ3LjQyIDAgMCAwIDI1NiA4QzExOS4zNCA4IDcuOSAxMTkuNTMgOCAyNTYuMTkgOC4xIDM5My4wNyAxMTkuMSA1MDQgMjU2IDUwNGEyNDcuMSAyNDcuMSAwIDAgMCAxNjYuMTgtNjMuOTEgMTIgMTIgMCAwIDAgLjQ4LTE3LjQzbC0zNC0zNGExMiAxMiAwIDAgMC0xNi4zOC0uNTVBMTc2IDE3NiAwIDEgMSA0MDIuMSAxNTcuOGwtMTAxLjUzLTQuODdhMTIgMTIgMCAwIDAtMTIuNTcgMTJ2NDcuNDFhMTIgMTIgMCAwIDAgMTIgMTJoMjAwLjMzYTEyIDEyIDAgMCAwIDEyLTEyVjEyYTEyIDEyIDAgMCAwLTEyLTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ2lzdGVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg1LjM2MyAyMDcuNDc1YzAgMTguNi05LjgzMSAyOC40MzEtMjguNDMxIDI4LjQzMWgtMjkuODc2di01Ni4xNGgyMy4zNzhjMjguNjY4IDAgMzQuOTI5IDguNzczIDM0LjkyOSAyNy43MDl6TTUwNCAyNTZjMCAxMzYuOTY3LTExMS4wMzMgMjQ4LTI0OCAyNDhTOCAzOTIuOTY3IDggMjU2IDExOS4wMzMgOCAyNTYgOHMyNDggMTExLjAzMyAyNDggMjQ4ek0zNjMuNDExIDM2MC40MTRjLTQ2LjcyOS04NC44MjUtNDMuMjk5LTc4LjYzNi00NC43MDItODAuOTggMjMuNDMyLTE1LjE3MiAzNy45NDUtNDIuOTc5IDM3Ljk0NS03NC40ODYgMC01NC4yNDQtMzEuNS04OS4yNTItMTA1LjQ5OC04OS4yNTJoLTcwLjY2N2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0VjM3MmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMjIuNTY3YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtNzEuNjYzaDI1LjU1Nmw0NC4xMjkgODIuOTM3YTI0LjAwMSAyNC4wMDEgMCAwIDAgMjEuMTg4IDEyLjcyN2gyNC40NjRjMTguMjYxLS4wMDEgMjkuODI5LTE5LjU5MSAyMS4wMTgtMzUuNTg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlbW92ZUZvcm1hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNDE2aC0xMS4xN2w5LjI2LTI3Ljc3TDI2NyAzMzYuNCAyNDAuNDkgNDE2SDIwOGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0yOTcuODIgNDIuMUwzNzcgMjU5LjU5IDQyNi4xNyAxMTJINTQ0djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDE3NmExNiAxNiAwIDAgMC0xNiAxNnY0My45TDQ1LjQ2IDMuMzhBMTYgMTYgMCAwIDAgMjMgNi4xOUwzLjM3IDMxLjQ2YTE2IDE2IDAgMCAwIDIuODEgMjIuNDVsNTg4LjM2IDQ1NC43MmExNiAxNiAwIDAgMCAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YTE2IDE2IDAgMCAwLTIuODItMjIuNDV6TTMwOS45MSAyMDcuNzZMMjI0IDE0MS4zNlYxMTJoMTE3LjgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlcGx5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNi4zMDkgMTg5LjgzNkwzMTIuMzEzIDM3Ljg1MUMzMjcuNzIgMjQuNTQ2IDM1MiAzNS4zNDggMzUyIDU2LjAxNXY4Mi43NjNjMTI5LjE4MiAxMC4yMzEgMjI0IDUyLjIxMiAyMjQgMTgzLjU0OCAwIDYxLjQ0MS0zOS41ODIgMTIyLjMwOS04My4zMzMgMTU0LjEzMi0xMy42NTMgOS45MzEtMzMuMTExLTIuNTMzLTI4LjA3Ny0xOC42MzEgMzguNTEyLTEyMy4xNjItMy45MjItMTY5LjQ4Mi0xMTIuNTktMTgyLjAxNXY4NC4xNzVjMCAyMC43MDEtMjQuMyAzMS40NTMtMzkuNjg3IDE4LjE2NEwxMzYuMzA5IDIyNi4xNjRjLTExLjA3MS05LjU2MS0xMS4wODYtMjYuNzUzIDAtMzYuMzI4em0tMTI4IDM2LjMyOEwxODQuMzEzIDM3OC4xNUMxOTkuNyAzOTEuNDM5IDIyNCAzODAuNjg3IDIyNCAzNTkuOTg2di0xNS44MThsLTEwOC42MDYtOTMuNzg1QTU1Ljk2IDU1Ljk2IDAgMCAxIDk2IDIwNy45OThhNTUuOTUzIDU1Ljk1MyAwIDAgMSAxOS4zOTMtNDIuMzhMMjI0IDcxLjgzMlY1Ni4wMTVjMC0yMC42NjctMjQuMjgtMzEuNDY5LTM5LjY4Ny0xOC4xNjRMOC4zMDkgMTg5LjgzNmMtMTEuMDg2IDkuNTc1LTExLjA3MSAyNi43NjcgMCAzNi4zMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVwbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4zMDkgMTg5LjgzNkwxODQuMzEzIDM3Ljg1MUMxOTkuNzE5IDI0LjU0NiAyMjQgMzUuMzQ3IDIyNCA1Ni4wMTV2ODAuMDUzYzE2MC42MjkgMS44MzkgMjg4IDM0LjAzMiAyODggMTg2LjI1OCAwIDYxLjQ0MS0zOS41ODEgMTIyLjMwOS04My4zMzMgMTU0LjEzMi0xMy42NTMgOS45MzEtMzMuMTExLTIuNTMzLTI4LjA3Ny0xOC42MzEgNDUuMzQ0LTE0NS4wMTItMjEuNTA3LTE4My41MS0xNzYuNTktMTg1Ljc0MlYzNjBjMCAyMC43LTI0LjMgMzEuNDUzLTM5LjY4NyAxOC4xNjRsLTE3Ni4wMDQtMTUyYy0xMS4wNzEtOS41NjItMTEuMDg2LTI2Ljc1MyAwLTM2LjMyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXB1YmxpY2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxOTJjMC04OC40LTcxLjYtMTYwLTE2MC0xNjBIMTYwQzcxLjYgMzIgMCAxMDMuNiAwIDE5MnY2NGg1NDR2LTY0em0tMzY3LjctMjEuNmwtMTkuOCAxOS4zIDQuNyAyNy4zYy44IDQuOS00LjMgOC42LTguNyA2LjNMMTI4IDIxMC40bC0yNC41IDEyLjljLTQuMyAyLjMtOS41LTEuNC04LjctNi4zbDQuNy0yNy4zLTE5LjgtMTkuM2MtMy42LTMuNS0xLjYtOS41IDMuMy0xMC4ybDI3LjQtNCAxMi4yLTI0LjhjMi4yLTQuNSA4LjYtNC40IDEwLjcgMGwxMi4yIDI0LjggMjcuNCA0YzUgLjcgNi45IDYuNyAzLjQgMTAuMnptMTQ0IDBsLTE5LjggMTkuMyA0LjcgMjcuM2MuOCA0LjktNC4zIDguNi04LjcgNi4zTDI3MiAyMTAuNGwtMjQuNSAxMi45Yy00LjMgMi4zLTkuNS0xLjQtOC43LTYuM2w0LjctMjcuMy0xOS44LTE5LjNjLTMuNi0zLjUtMS42LTkuNSAzLjMtMTAuMmwyNy40LTQgMTIuMi0yNC44YzIuMi00LjUgOC42LTQuNCAxMC43IDBsMTIuMiAyNC44IDI3LjQgNGM1IC43IDYuOSA2LjcgMy40IDEwLjJ6bTE0NCAwbC0xOS44IDE5LjMgNC43IDI3LjNjLjggNC45LTQuMyA4LjYtOC43IDYuM0w0MTYgMjEwLjRsLTI0LjUgMTIuOWMtNC4zIDIuMy05LjUtMS40LTguNy02LjNsNC43LTI3LjMtMTkuOC0xOS4zYy0zLjYtMy41LTEuNi05LjUgMy4zLTEwLjJsMjcuNC00IDEyLjItMjQuOGMyLjItNC41IDguNi00LjQgMTAuNyAwbDEyLjIgMjQuOCAyNy40IDRjNSAuNyA2LjkgNi43IDMuNCAxMC4yek02MjQgMzIwaC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OEgwdjE3NmMwIDguOCA3LjIgMTYgMTYgMTZoOTZjOC44IDAgMTYtNy4yIDE2LTE2di04MGgxOTJ2ODBjMCA4LjggNy4yIDE2IDE2IDE2aDk2YzguOCAwIDE2LTcuMiAxNi0xNlYzNTJoMzJ2NDMuM2MwIDQxLjggMzAgODAuMSA3MS42IDg0LjMgNDcuOCA0LjkgODguNC0zMi43IDg4LjQtNzkuNnYtNjRjMC04LjgtNy4yLTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlc3Ryb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxMjhjMzUuMyAwIDY0LTI4LjcgNjQtNjRTMTYzLjMgMCAxMjggMCA2NCAyOC43IDY0IDY0czI4LjcgNjQgNjQgNjR6bTM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0UzU0Ny4zIDAgNTEyIDBzLTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptMTI3LjMgMjI2LjVsLTQ1LjYtMTg1LjhjLTMuMy0xMy41LTE1LjUtMjMtMjkuOC0yNC4yLTE1IDkuNy0zMi44IDE1LjUtNTIgMTUuNS0xOS4yIDAtMzctNS44LTUyLTE1LjUtMTQuMyAxLjItMjYuNSAxMC43LTI5LjggMjQuMmwtNDUuNiAxODUuOEMzODEgMzY5LjYgMzkzIDM4NCA0MDkuMiAzODRINDY0djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYzODRoNTQuOGMxNi4yIDAgMjguMi0xNC40IDI0LjUtMjkuNXpNMzM2IDBoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDgwYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0xODAuMSAxNDQuNGMtMTUgOS44LTMyLjkgMTUuNi01Mi4xIDE1LjYtMTkuMiAwLTM3LjEtNS44LTUyLjEtMTUuNkM1MS4zIDE0Ni41IDMyIDE2Ni45IDMyIDE5MnYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOHYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzUyaDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTkyYzAtMjUuMS0xOS4zLTQ1LjUtNDMuOS00Ny42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJldHdlZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI5LjY1NyAzNDMuNTk4TDUyOC45NzEgNDQ0LjI4NGMtOS4zNzMgOS4zNzItMjQuNTY4IDkuMzcyLTMzLjk0MSAwTDM5NC4zNDMgMzQzLjU5OGMtOS4zNzMtOS4zNzMtOS4zNzMtMjQuNTY5IDAtMzMuOTQxbDEwLjgyMy0xMC44MjNjOS41NjItOS41NjIgMjUuMTMzLTkuMzQgMzQuNDE5LjQ5Mkw0ODAgMzQyLjExOFYxNjBIMjkyLjQ1MWEyNC4wMDUgMjQuMDA1IDAgMCAxLTE2Ljk3MS03LjAyOWwtMTYtMTZDMjQ0LjM2MSAxMjEuODUxIDI1NS4wNjkgOTYgMjc2LjQ1MSA5Nkg1MjBjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djIyMi4xMThsNDAuNDE2LTQyLjc5MmM5LjI4NS05LjgzMSAyNC44NTYtMTAuMDU0IDM0LjQxOS0uNDkybDEwLjgyMyAxMC44MjNjOS4zNzIgOS4zNzIgOS4zNzIgMjQuNTY5LS4wMDEgMzMuOTQxem0tMjY1LjEzOCAxNS40MzFBMjMuOTk5IDIzLjk5OSAwIDAgMCAzNDcuNTQ4IDM1MkgxNjBWMTY5Ljg4MWw0MC40MTYgNDIuNzkyYzkuMjg2IDkuODMxIDI0Ljg1NiAxMC4wNTQgMzQuNDE5LjQ5MWwxMC44MjItMTAuODIyYzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MUwxNDQuOTcxIDY3LjcxNmMtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwTDEwLjM0MyAxNjguNDAyYy05LjM3MyA5LjM3My05LjM3MyAyNC41NjkgMCAzMy45NDFsMTAuODIyIDEwLjgyMmM5LjU2MiA5LjU2MiAyNS4xMzMgOS4zNCAzNC40MTktLjQ5MUw5NiAxNjkuODgxVjM5MmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMjQzLjU0OWMyMS4zODIgMCAzMi4wOS0yNS44NTEgMTYuOTcxLTQwLjk3MWwtMTYuMDAxLTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJpYmJvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjEgNDQ0LjNjLTkuNiAxMC44LTcuNSAyNy42IDQuNSAzNS43bDY4LjggMjcuOWM5LjkgNi43IDIzLjMgNSAzMS4zLTMuOGw5MS44LTEwMS45LTc5LjItODcuOS0xMTcuMiAxMzB6bTQzNS44IDBzLTI5Mi0zMjQuNi0yOTUuNC0zMzAuMWMxNS40LTguNCA0MC4yLTE3LjkgNzcuNS0xNy45czYyLjEgOS41IDc3LjUgMTcuOWMtMy4zIDUuNi01NiA2NC42LTU2IDY0LjZsNzkuMSA4Ny43IDM0LjItMzhjMjguNy0zMS45IDMzLjMtNzguNiAxMS40LTExNS41bC00My43LTczLjVjLTQuMy03LjItOS45LTEzLjMtMTYuOC0xOC00MC43LTI3LjYtMTI3LjQtMjkuNy0xNzEuNCAwLTYuOSA0LjctMTIuNSAxMC44LTE2LjggMThsLTQzLjYgNzMuMmMtMS41IDIuNS0zNy4xIDYyLjIgMTEuNSAxMTZMMzM3LjUgNTA0YzggOC45IDIxLjQgMTAuNSAzMS4zIDMuOGw2OC44LTI3LjljMTEuOS04IDE0LTI0LjggNC4zLTM1LjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNjRDMTEwLjA2IDY0IDAgMTI1LjkxIDAgMjA4djk4LjEzQzAgMzg0LjQ4IDExNC42MiA0NDggMjU2IDQ0OHMyNTYtNjMuNTIgMjU2LTE0MS44N1YyMDhjMC04Mi4wOS0xMTAuMDYtMTQ0LTI1Ni0xNDR6bTAgNjRjMTA2LjA0IDAgMTkyIDM1LjgyIDE5MiA4MCAwIDkuMjYtMy45NyAxOC4xMi0xMC45MSAyNi4zOUMzOTIuMTUgMjA4LjIxIDMyOC4yMyAxOTIgMjU2IDE5MnMtMTM2LjE1IDE2LjIxLTE4MS4wOSA0Mi4zOUM2Ny45NyAyMjYuMTIgNjQgMjE3LjI2IDY0IDIwOGMwLTQ0LjE4IDg1Ljk2LTgwIDE5Mi04MHpNMTIwLjQzIDI2NC42NEMxNTUuMDQgMjQ5LjkzIDIwMS42NCAyNDAgMjU2IDI0MHMxMDAuOTYgOS45MyAxMzUuNTcgMjQuNjRDMzU2Ljg0IDI3OS4wNyAzMDguOTMgMjg4IDI1NiAyODhzLTEwMC44NC04LjkzLTEzNS41Ny0yMy4zNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3My4xOSA0MDIuNjdsLTEzOS43OS0zMjBDNDI4LjQzIDcxLjI5IDQxNy42IDY0IDQwNS42OCA2NGgtOTcuNTlsMi40NSAyMy4xNmMuNSA0LjcyLTMuMjEgOC44NC03Ljk2IDguODRoLTI5LjE2Yy00Ljc1IDAtOC40Ni00LjEyLTcuOTYtOC44NEwyNjcuOTEgNjRoLTk3LjU5Yy0xMS45MyAwLTIyLjc2IDcuMjktMjcuNzMgMTguNjdMMi44IDQwMi42N0MtNi40NSA0MjMuODYgOC4zMSA0NDggMzAuNTQgNDQ4aDE5Ni44NGwxMC4zMS05Ny42OGMuODYtOC4xNCA3LjcyLTE0LjMyIDE1LjkxLTE0LjMyaDY4LjhjOC4xOSAwIDE1LjA1IDYuMTggMTUuOTEgMTQuMzJMMzQ4LjYyIDQ0OGgxOTYuODRjMjIuMjMgMCAzNi45OS0yNC4xNCAyNy43My00NS4zM3pNMjYwLjQgMTM1LjE2YTggOCAwIDAgMSA3Ljk2LTcuMTZoMzkuMjljNC4wOSAwIDcuNTMgMy4wOSA3Ljk2IDcuMTZsNC42IDQzLjU4Yy43NSA3LjA5LTQuODEgMTMuMjYtMTEuOTMgMTMuMjZoLTQwLjU0Yy03LjEzIDAtMTIuNjgtNi4xNy0xMS45My0xMy4yNmw0LjU5LTQzLjU4ek0zMTUuNjQgMzA0aC01NS4yOWMtOS41IDAtMTYuOTEtOC4yMy0xNS45MS0xNy42OGw1LjA3LTQ4Yy44Ni04LjE0IDcuNzItMTQuMzIgMTUuOTEtMTQuMzJoNDUuMTVjOC4xOSAwIDE1LjA1IDYuMTggMTUuOTEgMTQuMzJsNS4wNyA0OGMxIDkuNDUtNi40MSAxNy42OC0xNS45MSAxNy42OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2JvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiwyMjRINjRWNDE2SDMyQTMxLjk2MTY2LDMxLjk2MTY2LDAsMCwxLDAsMzg0VjI1NkEzMS45NjE2NiwzMS45NjE2NiwwLDAsMSwzMiwyMjRabTUxMi00OFY0NDhhNjQuMDYzMjgsNjQuMDYzMjgsMCwwLDEtNjQsNjRIMTYwYTY0LjA2MzI4LDY0LjA2MzI4LDAsMCwxLTY0LTY0VjE3NmE3OS45NzQsNzkuOTc0LDAsMCwxLDgwLTgwSDI4OFYzMmEzMiwzMiwwLDAsMSw2NCwwVjk2SDQ2NEE3OS45NzQsNzkuOTc0LDAsMCwxLDU0NCwxNzZaTTI2NCwyNTZhNDAsNDAsMCwxLDAtNDAsNDBBMzkuOTk3LDM5Ljk5NywwLDAsMCwyNjQsMjU2Wm0tOCwxMjhIMTkydjMyaDY0Wm05NiwwSDI4OHYzMmg2NFpNNDU2LDI1NmE0MCw0MCwwLDEsMC00MCw0MEEzOS45OTcsMzkuOTk3LDAsMCwwLDQ1NiwyNTZabS04LDEyOEgzODR2MzJoNjRaTTY0MCwyNTZWMzg0YTMxLjk2MTY2LDMxLjk2MTY2LDAsMCwxLTMyLDMySDU3NlYyMjRoMzJBMzEuOTYxNjYsMzEuOTYxNjYsMCwwLDEsNjQwLDI1NlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2NrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1LjEyMDE5LDE5LjA5Mzc1Yy0xLjE4OTQ1LTUuNTMxMjUtNi42NTgxOS0xMS0xMi4yMDctMTIuMTg3NUM0NjAuNzE2LDAsNDM1LjUwNywwLDQxMC40MDc0NywwLDMwNy4xNzUyMywwLDI0NS4yNjkwOSw1NS4yMDMxMiwxOTkuMDUyMzgsMTI4SDk0LjgzNzcyYy0xNi4zNDc2My4wMTU2Mi0zNS41NTY1OCwxMS44NzUtNDIuODg2NjQsMjYuNDg0MzhMMi41MTU2MiwyNTMuMjk2ODhBMjguNCwyOC40LDAsMCwwLDAsMjY0YTI0LjAwODY3LDI0LjAwODY3LDAsMCwwLDI0LjAwNTgyLDI0SDEyNy44MTYxOGwtMjIuNDc0NTcsMjIuNDY4NzVjLTExLjM2NTIxLDExLjM2MTMzLTEyLjk5NjA3LDMyLjI1NzgxLDAsNDUuMjVMMTU2LjI0NTgyLDQwNi42MjVjMTEuMTU2MjMsMTEuMTg3NSwzMi4xNTYxOSwxMy4xNTYyNSw0NS4yNzcyNiwwbDIyLjQ3NDU3LTIyLjQ2ODc1VjQ4OGEyNC4wMDg2NywyNC4wMDg2NywwLDAsMCwyNC4wMDU4MSwyNCwyOC41NTkzNCwyOC41NTkzNCwwLDAsMCwxMC43MDctMi41MTU2Mmw5OC43MjgzNC00OS4zOTA2M2MxNC42Mjg4OC03LjI5Njg3LDI2LjUwNzc2LTI2LjUsMjYuNTA3NzYtNDIuODU5MzdWMzEyLjc5Njg4YzcyLjU5NzUzLTQ2LjMxMjUsMTI4LjAzNDkzLTEwOC40MDYyNiwxMjguMDM0OTMtMjExLjA5Mzc2QzUxMi4wNzUyNiw3Ni41LDUxMi4wNzUyNiw1MS4yOTY4OCw1MDUuMTIwMTksMTkuMDkzNzVaTTM4NC4wNDAzMywxNjhBNDAsNDAsMCwxLDEsNDI0LjA1LDEyOCw0MC4wMjMyMiw0MC4wMjMyMiwwLDAsMSwzODQuMDQwMzMsMTY4WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMjBoLTk2Yy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyaDk2czk2LTEwNyA5Ni0xNjAtNDMtOTYtOTYtOTYtOTYgNDMtOTYgOTZjMCAyNS41IDIyLjIgNjMuNCA0NS4zIDk2SDMyMGMtNTIuOSAwLTk2IDQzLjEtOTYgOTZzNDMuMSA5NiA5NiA5Nmg5NmMxNy42IDAgMzIgMTQuNCAzMiAzMnMtMTQuNCAzMi0zMiAzMkgxODUuNWMtMTYgMjQuOC0zMy44IDQ3LjctNDcuMyA2NEg0MTZjNTIuOSAwIDk2LTQzLjEgOTYtOTZzLTQzLjEtOTYtOTYtOTZ6bTAtMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnpNOTYgMjU2Yy01MyAwLTk2IDQzLTk2IDk2czk2IDE2MCA5NiAxNjAgOTYtMTA3IDk2LTE2MC00My05Ni05Ni05NnptMCAxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJzc1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTExMiA0MTZjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTE1Ny41MzMgMGgtMzQuMzM1Yy02LjAxMSAwLTExLjA1MS00LjYzNi0xMS40NDItMTAuNjM0LTUuMjE0LTgwLjA1LTY5LjI0My0xNDMuOTItMTQ5LjEyMy0xNDkuMTIzLTUuOTk3LS4zOS0xMC42MzMtNS40MzEtMTAuNjMzLTExLjQ0MXYtMzQuMzM1YzAtNi41MzUgNS40NjgtMTEuNzc3IDExLjk5NC0xMS40MjUgMTEwLjU0NiA1Ljk3NCAxOTguOTk3IDk0LjUzNiAyMDQuOTY0IDIwNC45NjQuMzUyIDYuNTI2LTQuODkgMTEuOTk0LTExLjQyNSAxMS45OTR6bTEwMy4wMjcgMGgtMzQuMzM0Yy02LjE2MSAwLTExLjE3NS00Ljg4Mi0xMS40MjctMTEuMDM4LTUuNTk4LTEzNi41MzUtMTE1LjIwNC0yNDYuMTYxLTI1MS43Ni0yNTEuNzZDNjguODgyIDE1Mi45NDkgNjQgMTQ3LjkzNSA2NCAxNDEuNzc0VjEwNy40NGMwLTYuNDU0IDUuMzM4LTExLjY2NCAxMS43ODctMTEuNDMyIDE2Ny44MyA2LjAyNSAzMDIuMjEgMTQxLjE5MSAzMDguMjA1IDMwOC4yMDUuMjMyIDYuNDQ5LTQuOTc4IDExLjc4Ny0xMS40MzIgMTEuNzg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjguMDgxIDQxNS45NTljMCAzNS4zNjktMjguNjcyIDY0LjA0MS02NC4wNDEgNjQuMDQxUzAgNDUxLjMyOCAwIDQxNS45NTlzMjguNjcyLTY0LjA0MSA2NC4wNDEtNjQuMDQxIDY0LjA0IDI4LjY3MyA2NC4wNCA2NC4wNDF6bTE3NS42NiA0Ny4yNWMtOC4zNTQtMTU0LjYtMTMyLjE4NS0yNzguNTg3LTI4Ni45NS0yODYuOTVDNy42NTYgMTc1Ljc2NSAwIDE4My4xMDUgMCAxOTIuMjUzdjQ4LjA2OWMwIDguNDE1IDYuNDkgMTUuNDcyIDE0Ljg4NyAxNi4wMTggMTExLjgzMiA3LjI4NCAyMDEuNDczIDk2LjcwMiAyMDguNzcyIDIwOC43NzIuNTQ3IDguMzk3IDcuNjA0IDE0Ljg4NyAxNi4wMTggMTQuODg3aDQ4LjA2OWM5LjE0OS4wMDEgMTYuNDg5LTcuNjU1IDE1Ljk5NS0xNi43OXptMTQ0LjI0OS4yODhDNDM5LjU5NiAyMjkuNjc3IDI1MS40NjUgNDAuNDQ1IDE2LjUwMyAzMi4wMSA3LjQ3MyAzMS42ODYgMCAzOC45ODEgMCA0OC4wMTZ2NDguMDY4YzAgOC42MjUgNi44MzUgMTUuNjQ1IDE1LjQ1MyAxNS45OTkgMTkxLjE3OSA3LjgzOSAzNDQuNjI3IDE2MS4zMTYgMzUyLjQ2NSAzNTIuNDY1LjM1MyA4LjYxOCA3LjM3MyAxNS40NTMgMTUuOTk5IDE1LjQ1M2g0OC4wNjhjOS4wMzQtLjAwMSAxNi4zMjktNy40NzQgMTYuMDA1LTE2LjUwNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWJsZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM5LjM2IDMyMEMzMjQuNDggMzIwIDM4NCAyNjAuNTQyIDM4NCAxNzUuMDcxUzMyNC40OCAzMiAyMzkuMzYgMzJINzZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjA2LjYzMkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMlYzMDhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1MnYzMkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDUydjUyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTguNTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNTJIMzA4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMTQ2LjU2di0zMmg5Mi44em0tOTIuOC0yMTkuMjUyaDc4LjcyYzQ2LjcyIDAgNzQuODggMjkuMTEgNzQuODggNzQuMzIzIDAgNDUuODMyLTI4LjE2IDc1LjU2MS03Ni4xNiA3NS41NjFoLTc3LjQ0VjEwMC43NDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVsZXJDb21iaW5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjg4aC01NmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDU2di02NGgtNTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg1NlY5NmgtNTZjLTQuNDIgMC04LTMuNTgtOC04VjcyYzAtNC40MiAzLjU4LTggOC04aDU2VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMi43Ny45MSA1LjI0IDEuNTcgNy44TDE2MCAzMjkuMzhWMjg4em0zMjAgNjRoLTMydjU2YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTU2aC02NHY1NmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di01NmgtNjR2NTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtNTZoLTQxLjM3TDI0LjIgNTEwLjQzYzIuNTYuNjYgNS4wNCAxLjU3IDcuOCAxLjU3aDQ0OGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bGVySG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMTI4aC00OHY4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di04OGgtNjR2ODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtODhoLTY0djg4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTg4aC02NHY4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di04OGgtNjR2ODhjMCA0LjQyLTMuNTggOC04IDhIODhjLTQuNDIgMC04LTMuNTgtOC04di04OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxOTJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1MTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlclZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OCA0MTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4OHYtNjRoLTg4Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODh2LTY0aC04OGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDg4di02NGgtODhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4OFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjQ0OGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE5MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGgtODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM1LjcgMTY3LjJMNTU2LjEgMzEuN2MtOC44LTE1LTI4LjMtMjAuMS00My41LTExLjVsLTY5IDM5LjFMNTAzLjMgMTYxYzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45TDQxNiA3NWwtNTUuMiAzMS4zIDI3LjkgNDcuNGMyLjIgMy44LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOUwzMzMuMiAxMjIgMjc4IDE1My4zIDMzNy44IDI1NWMyLjIgMy43LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOWwtNTkuNy0xMDEuNy01NS4yIDMxLjMgMjcuOSA0Ny40YzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45bC0yNy45LTQ3LjUtNTUuMiAzMS4zIDU5LjcgMTAxLjdjMi4yIDMuNy45IDguNS0yLjkgMTAuN2wtMTMuOCA3LjhjLTMuOCAyLjItOC43LjktMTAuOS0yLjlMODQuOSAyNjIuOWwtNjkgMzkuMUMuNyAzMTAuNy00LjYgMzI5LjggNC4yIDM0NC44bDc5LjYgMTM1LjZjOC44IDE1IDI4LjMgMjAuMSA0My41IDExLjVMNjI0LjEgMjEwYzE1LjItOC42IDIwLjQtMjcuOCAxMS42LTQyLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVubmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgOTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFMyOTguNTEgMCAyNzIgMHMtNDggMjEuNDktNDggNDggMjEuNDkgNDggNDggNDh6TTExMy42OSAzMTcuNDdsLTE0LjggMzQuNTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzJoNzcuNDVjMTkuMjUgMCAzNi41OC0xMS40NCA0NC4xMS0yOS4wOWw4Ljc5LTIwLjUyLTEwLjY3LTYuM2MtMTcuMzItMTAuMjMtMzAuMDYtMjUuMzctMzcuOTktNDIuNjF6TTM4NCAyMjMuOTloLTQ0LjAzbC0yNi4wNi01My4yNWMtMTIuNS0yNS41NS0zNS40NS00NC4yMy02MS43OC01MC45NGwtNzEuMDgtMjEuMTRjLTI4LjMtNi44LTU3Ljc3LS41NS04MC44NCAxNy4xNGwtMzkuNjcgMzAuNDFjLTE0LjAzIDEwLjc1LTE2LjY5IDMwLjgzLTUuOTIgNDQuODZzMzAuODQgMTYuNjYgNDQuODYgNS45MmwzOS42OS0zMC40MWM3LjY3LTUuODkgMTcuNDQtOCAyNS4yNy02LjE0bDE0LjcgNC4zNy0zNy40NiA4Ny4zOWMtMTIuNjIgMjkuNDgtMS4zMSA2NC4wMSAyNi4zIDgwLjMxbDg0Ljk4IDUwLjE3LTI3LjQ3IDg3LjczYy01LjI4IDE2Ljg2IDQuMTEgMzQuODEgMjAuOTcgNDAuMDkgMy4xOSAxIDYuNDEgMS40OCA5LjU4IDEuNDggMTMuNjEgMCAyNi4yMy04Ljc3IDMwLjUyLTIyLjQ1bDMxLjY0LTEwMS4wNmM1LjkxLTIwLjc3LTIuODktNDMuMDgtMjEuNjQtNTQuMzlsLTYxLjI0LTM2LjE0IDMxLjMxLTc4LjI4IDIwLjI3IDQxLjQzYzggMTYuMzQgMjQuOTIgMjYuODkgNDMuMTEgMjYuODlIMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJzLTE0LjMzLTMxLjk5LTMyLTMxLjk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1cGVlU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDggOTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMlY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyQzUuMzczIDMyIDAgMzcuMzczIDAgNDR2NDQuNzQ4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoODUuMjhjMjcuMzA4IDAgNDguMjYxIDkuOTU4IDYwLjk3IDI3LjI1MkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE1OC43NTdjLTYuMjE3IDM2LjA4Ni0zMi45NjEgNTguNjMyLTc0Ljc1NyA1OC42MzJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTMuMDEyYzAgMy4zNDkgMS40IDYuNTQ2IDMuODYxIDguODE4bDE2NS4wNTIgMTUyLjM1NmExMi4wMDEgMTIuMDAxIDAgMCAwIDguMTM5IDMuMTgyaDgyLjU2MmMxMC45MjQgMCAxNi4xNjYtMTMuNDA4IDguMTM5LTIwLjgxOEwxMTYuODcxIDMxOS45MDZjNzYuNDk5LTIuMzQgMTMxLjE0NC01My4zOTUgMTM4LjMxOC0xMjcuOTA2SDMwOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC01OC42OWMtMy40ODYtMTEuNTQxLTguMjgtMjIuMjQ2LTE0LjI1Mi0zMkgzMDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2FkQ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2YzAgOTAuMSA0OC4yIDE2OC43IDEyMCAyMTIuMVYyODhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYxOTYuN2MyOS41IDEyLjQgNjIgMTkuMyA5NiAxOS4zczY2LjUtNi45IDk2LTE5LjNWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MTgwLjFDNDQ3LjggNDI0LjcgNDk2IDM0NiA0OTYgMjU2IDQ5NiAxMTkgMzg1IDggMjQ4IDh6bS02NS41IDIxNi41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMTEyIDIzM2MtMy44IDMuMy05LjMgNC0xMy43IDEuNi00LjQtMi40LTYuOS03LjQtNi4xLTEyLjQgNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMjA4IDE5NyAyMTIgMjIyLjJjLjggNS0xLjcgMTAtNi4xIDEyLjQtNS44IDMuMS0xMS4yLjctMTMuNy0xLjZsLTkuNy04LjV6TTI0OCA0MTZjLTI2LjUgMC00OC0yOC43LTQ4LTY0czIxLjUtNjQgNDgtNjQgNDggMjguNyA0OCA2NC0yMS41IDY0LTQ4IDY0em0xNDkuOC0xODEuNWMtNS44IDMuMS0xMS4yLjctMTMuNy0xLjZsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwzMDQgMjMzYy0zLjggMy4zLTkuMyA0LTEzLjcgMS42LTQuNC0yLjQtNi45LTcuNC02LjEtMTIuNCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVM0MDAgMTk3IDQwNCAyMjIuMmMuNiA0LjktMS44IDkuOS02LjIgMTIuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWRUZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6TTE1MiA0MTZjLTI2LjUgMC00OC0yMS00OC00NyAwLTIwIDI4LjUtNjAuNCA0MS42LTc3LjggMy4yLTQuMyA5LjYtNC4zIDEyLjggMEMxNzEuNSAzMDguNiAyMDAgMzQ5IDIwMCAzNjljMCAyNi0yMS41IDQ3LTQ4IDQ3em0xNi0xNzZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNzAuMiAxNTQuMkMzMTUuOCAzNjcuNCAyODIuOSAzNTIgMjQ4IDM1MmMtMjEuMiAwLTIxLjItMzIgMC0zMiA0NC40IDAgODYuMyAxOS42IDExNC43IDUzLjggMTMuOCAxNi40LTExLjIgMzYuNS0yNC41IDIwLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2F0ZWxsaXRlRGlzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDUuNDQ5NTQsNDYyLjU5YzcuMzkxNTcsNy4yOTc5Miw2LjE4ODI5LDIwLjA5NjYxLTMuMDAwMzgsMjUuMDAzNTYtNzcuNzEzLDQxLjgwMjgxLTE3Ni43MjU1OSwyOS45MTA1LTI0Mi4zNDMzMS0zNS43MDgyQy01LjQ5NjI0LDM4Ni4yODIyNy0xNy40MDQsMjg3LjM2MiwyNC40MTM4MSwyMDkuNTU0YzQuODkxMjUtOS4wOTUsMTcuNjg5NzUtMTAuMjk4MzQsMjUuMDAzMTgtMy4wMDA0M0wxNjYuMjI4NzIsMzIzLjM2NzA4bDI3LjM5NDExLTI3LjM5NDUyYy0uNjg3NTktMi42MDk3NC0xLjU5NC01LjAwMDcxLTEuNTk0LTcuODEzNjFhMzIuMDA0MDcsMzIuMDA0MDcsMCwxLDEsMzIuMDA0MDcsMzIuMDA0NTVjLTIuNzk3MjMsMC01LjIwMzc4LS44OTA3NS03Ljc5Nzg2LTEuNTk0bC0yNy40MDk3NCwyNy40MTAxNVpNNTExLjk3NTgsMzAzLjA2NzMyYTE2LjEwMzM2LDE2LjEwMzM2LDAsMCwxLTE2LjAwMiwxNy4wMDI0Mkg0NjMuODYwMzFhMTUuOTY5NTYsMTUuOTY5NTYsMCwwLDEtMTUuODkyNjUtMTUuMDAyMTNDNDQwLjQ2NjcxLDE3NS41NDkyLDMzNi40NTM0OCw3MC41MzQyNywyMDcuMDMwNzgsNjMuNTMzMjhhMTUuODQ0ODYsMTUuODQ0ODYsMCwwLDEtMTUuMDAxOTEtMTUuOTA4NTJWMTYuMDI2NTJBMTYuMDkzODksMTYuMDkzODksMCwwLDEsMjA5LjAzMS4wMjQyNUMzNzIuMjU0OTEsOC42MTkyMiw1MDMuNDc0NzIsMTM5Ljg0MSw1MTEuOTc1OCwzMDMuMDY3MzJabS05Ni4wMTIyMS0uMjk2OTJhMTYuMjEwOTMsMTYuMjEwOTMsMCwwLDEtMTYuMTExNDIsMTcuMjk5MzRIMzY3LjY0NWExNi4wNjg2MiwxNi4wNjg2MiwwLDAsMS0xNS44OTI2NS0xNC43MDUyMmMtNi45MDcxMi03Ny4wMTA5NC02OC4xMTgtMTM4LjkxMDM3LTE0NC45MjQ2Ny0xNDUuMjIzNzZhMTUuOTQsMTUuOTQsMCwwLDEtMTQuNzk4NzYtMTUuODkyODlWMTEyLjEzMzkzYTE2LjEzNCwxNi4xMzQsMCwwLDEsMTcuMjk5MDgtMTYuMDk2QzMxOS40NTEzMiwxMDQuNTM5MSw0MDcuNTU2MjcsMTkyLjY0NTM4LDQxNS45NjM1OSwzMDIuNzcwNFpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXRlbGxpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjYwOTY5LDMxMC4wNDIwNmwtOTYuNzAzOTMsOTYuNzE2MjVhMzEuODgxNTEsMzEuODgxNTEsMCwwLDEtNDUuMDA3NjUsMEwyODAuNTcyLDMyNi4zNDExNWwtOS44OTIzMSw5LjkwNzU5YTE5MC41NjM0MywxOTAuNTYzNDMsMCwwLDEtNS40MDcxNiwxNjguNTIyODdjLTQuNTAwNzcsOC41MDExNS0xNi4zOTM0Miw5LjU5NTA1LTIzLjIwNzA3LDIuNzk3MjVMMTM0LjU0NzE1LDQwMC4wNTQyOGwtMTcuNzk5OSwxNy43OTkyOWMuNzAzMjQsMi42MDk3MiwxLjYwOTY1LDUuMDAwNjcsMS42MDk2NSw3Ljc5NzkzYTMyLjAwNTQ0LDMyLjAwNTQ0LDAsMSwxLTMyLjAwNTQ0LTMyLjAwNDM0YzIuNzk3MzUsMCw1LjE4ODM4LjkwNjM3LDcuNzk4MiwxLjYwOTU5bDE3Ljc5OTktMTcuNzk5MjlMNC40MzEyOSwyNjkuOTQyODdjLTYuNzk4LTYuODEzNDItNS43MDQwOS0xOC42MTE5LDIuNzk3MzUtMjMuMjA2MjdhMTkwLjU4MTYxLDE5MC41ODE2MSwwLDAsMSwxNjguNTI4NjQtNS40MDdsOS43OTg1NC05Ljc5ODIxLTgwLjMxMDUzLTgwLjQxNzE2YTMyLjAwMiwzMi4wMDIsMCwwLDEsMC00NS4wOTk4N0wyMDEuOTY0NzQsOS4yOTgxNEEzMS42MjYzOSwzMS42MjYzOSwwLDAsMSwyMjQuNDY4NjgsMGEzMS45OTk1MSwzMS45OTk1MSwwLDAsMSwyMi41OTc1OSw5LjI5ODE0bDgwLjMyNjE1LDgwLjMwNzc3LDQ3LjgwNS00Ny44OTcxM2EzMy42MDc1LDMzLjYwNzUsMCwwLDEsNDcuNTA4MDgsMGw0Ny41MDgwNyw0Ny41MDY0NWEzMy42MzMwOCwzMy42MzMwOCwwLDAsMSwwLDQ3LjUwNjQ0bC00Ny44MDUsNDcuODk3MTNMNTAyLjcxOTA4LDI2NS4wMzZBMzEuNzg5MzgsMzEuNzg5MzgsMCwwLDEsNTAyLjYwOTY5LDMxMC4wNDIwNlpNMjE5LjU2MTU5LDE5Ny40MzNsNzMuODI1MDUtNzMuODIyNTItNjguOTE4LTY4LjktNzMuODA5NDIsNzMuODA2ODlabTIzNy43NDM1Miw5MC4xMDYtNjguOTAyMzMtNjguOTE1Ni03My44MjUsNzMuODIyNTIsNjguOTE4LDY4LjlaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuOTQxIDEyOS45NDFsLTgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgMzE2LjExOCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTYzLjg4MmE0OCA0OCAwIDAgMC0xNC4wNTktMzMuOTQxek0yMjQgNDE2Yy0zNS4zNDYgMC02NC0yOC42NTQtNjQtNjQgMC0zNS4zNDYgMjguNjU0LTY0IDY0LTY0czY0IDI4LjY1NCA2NCA2NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjR6bTk2LTMwNC41MlYyMTJjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg3NmMtNi42MjcgMC0xMi01LjM3My0xMi0xMlYxMDhjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgyMjguNTJjMy4xODMgMCA2LjIzNSAxLjI2NCA4LjQ4NSAzLjUxNWwzLjQ4IDMuNDhBMTEuOTk2IDExLjk5NiAwIDAgMSAzMjAgMTExLjQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDIyNHYyNzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoODBWMTkySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyem0zNjAtNDhoLTI0di00MGMwLTQuNDItMy41OC04LTgtOGgtMTZjLTQuNDIgMC04IDMuNTgtOCA4djY0YzAgNC40MiAzLjU4IDggOCA4aDQ4YzQuNDIgMCA4LTMuNTggOC04di0xNmMwLTQuNDItMy41OC04LTgtOHptMTM3Ljc1LTYzLjk2bC0xNjAtMTA2LjY3YTMyLjAyIDMyLjAyIDAgMCAwLTM1LjUgMGwtMTYwIDEwNi42N0EzMi4wMDIgMzIuMDAyIDAgMCAwIDEyOCAxMzguNjZWNTEyaDEyOFYzNjhjMC04Ljg0IDcuMTYtMTYgMTYtMTZoOTZjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MTQ0aDEyOFYxMzguNjdjMC0xMC43LTUuMzUtMjAuNy0xNC4yNS0yNi42M3pNMzIwIDI1NmMtNDQuMTggMC04MC0zNS44Mi04MC04MHMzNS44Mi04MCA4MC04MCA4MCAzNS44MiA4MCA4MC0zNS44MiA4MC04MCA4MHptMjg4LTY0aC02NHYzMjBoODBjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjI0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyZXdkcml2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDBMMzIwIDk2djYyLjA2bC04My4wMyA4My4wM2M2Ljc5IDQuMjUgMTMuMjcgOS4wNiAxOS4wNyAxNC44NyA1LjggNS44IDEwLjYyIDEyLjI4IDE0Ljg3IDE5LjA3TDM1My45NCAxOTJINDE2bDk2LTEyOC02NC02NHpNMTI4IDI3OC41OUwxMC45MiAzOTUuNjdjLTE0LjU1IDE0LjU1LTE0LjU1IDM4LjE1IDAgNTIuNzFsNTIuNyA1Mi43YzE0LjU2IDE0LjU2IDM4LjE1IDE0LjU2IDUyLjcxIDBMMjMzLjQxIDM4NGMyOS4xMS0yOS4xMSAyOS4xMS03Ni4zIDAtMTA1LjQxcy03Ni4zLTI5LjExLTEwNS40MSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjcm9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUzIDAgMCAyMS41MyAwIDQ4djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDgwVjQ4Qzk2IDIxLjUzIDc0LjQ3IDAgNDggMHptMjA4IDQxMi41N1YzNTJoMjg4Vjk2YzAtNTIuOTQtNDMuMDYtOTYtOTYtOTZIMTExLjU5QzEyMS43NCAxMy40MSAxMjggMjkuOTIgMTI4IDQ4djM2OGMwIDM4Ljg3IDM0LjY1IDY5LjY1IDc0Ljc1IDYzLjEyQzIzNC4yMiA0NzQgMjU2IDQ0NC40NiAyNTYgNDEyLjU3ek0yODggMzg0djMyYzAgNTIuOTMtNDMuMDYgOTYtOTYgOTZoMzM2YzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTIgMC04Ljg0LTcuMTYtMTYtMTYtMTZIMjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMEgxMjhMMCAxMjh2MzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0aDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NHpNMTYwIDE2MGgtNDhWNjRoNDh2OTZ6bTgwIDBoLTQ4VjY0aDQ4djk2em04MCAwaC00OFY2NGg0OHY5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1LjA0IDQ0Mi42NmwtOTkuNzEtOTkuNjljLTQuNS00LjUtMTAuNi03LTE3LTdoLTE2LjNjMjcuNi0zNS4zIDQ0LTc5LjY5IDQ0LTEyNy45OUM0MTYuMDMgOTMuMDkgMzIyLjkyIDAgMjA4LjAyIDBTMCA5My4wOSAwIDIwNy45OHM5My4xMSAyMDcuOTggMjA4LjAyIDIwNy45OGM0OC4zIDAgOTIuNzEtMTYuNCAxMjguMDEtNDR2MTYuM2MwIDYuNCAyLjUgMTIuNSA3IDE3bDk5LjcxIDk5LjY5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDI4LjMtMjguM2M5LjQtOS40IDkuNC0yNC41OS4xLTMzLjk5em0tMjk3LjAyLTkwLjdjLTc5LjU0IDAtMTQ0LTY0LjM0LTE0NC0xNDMuOTggMC03OS41MyA2NC4zNS0xNDMuOTggMTQ0LTE0My45OCA3OS41NCAwIDE0NCA2NC4zNCAxNDQgMTQzLjk4IDAgNzkuNTMtNjQuMzUgMTQzLjk4LTE0NCAxNDMuOTh6bTI3LjExLTE1Mi41NGwtNDUuMDEtMTMuNWMtNS4xNi0xLjU1LTguNzctNi43OC04Ljc3LTEyLjczIDAtNy4yNyA1LjMtMTMuMTkgMTEuOC0xMy4xOWgyOC4xMWM0LjU2IDAgOC45NiAxLjI5IDEyLjgyIDMuNzIgMy4yNCAyLjAzIDcuMzYgMS45MSAxMC4xMy0uNzNsMTEuNzUtMTEuMjFjMy41My0zLjM3IDMuMzMtOS4yMS0uNTctMTIuMTQtOS4xLTYuODMtMjAuMDgtMTAuNzctMzEuMzctMTEuMzVWMTEyYzAtNC40Mi0zLjU4LTgtOC04aC0xNmMtNC40MiAwLTggMy41OC04IDh2MTYuMTJjLTIzLjYzLjYzLTQyLjY4IDIwLjU1LTQyLjY4IDQ1LjA3IDAgMTkuOTcgMTIuOTkgMzcuODEgMzEuNTggNDMuMzlsNDUuMDEgMTMuNWM1LjE2IDEuNTUgOC43NyA2Ljc4IDguNzcgMTIuNzMgMCA3LjI3LTUuMyAxMy4xOS0xMS44IDEzLjE5aC0yOC4xYy00LjU2IDAtOC45Ni0xLjI5LTEyLjgyLTMuNzItMy4yNC0yLjAzLTcuMzYtMS45MS0xMC4xMy43M2wtMTEuNzUgMTEuMjFjLTMuNTMgMy4zNy0zLjMzIDkuMjEuNTcgMTIuMTQgOS4xIDYuODMgMjAuMDggMTAuNzcgMzEuMzcgMTEuMzVWMzA0YzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04di0xNi4xMmMyMy42My0uNjMgNDIuNjgtMjAuNTQgNDIuNjgtNDUuMDcgMC0xOS45Ny0xMi45OS0zNy44MS0zMS41OS00My4zOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDUuMDQgNDQyLjY2bC05OS43MS05OS42OWMtNC41LTQuNS0xMC42LTctMTctN2gtMTYuM2MyNy42LTM1LjMgNDQtNzkuNjkgNDQtMTI3Ljk5QzQxNi4wMyA5My4wOSAzMjIuOTIgMCAyMDguMDIgMFMwIDkzLjA5IDAgMjA3Ljk4czkzLjExIDIwNy45OCAyMDguMDIgMjA3Ljk4YzQ4LjMgMCA5Mi43MS0xNi40IDEyOC4wMS00NHYxNi4zYzAgNi40IDIuNSAxMi41IDcgMTdsOTkuNzEgOTkuNjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjU5LjEtMzMuOTl6bS0yOTcuMDItOTAuN2MtNzkuNTQgMC0xNDQtNjQuMzQtMTQ0LTE0My45OCAwLTc5LjUzIDY0LjM1LTE0My45OCAxNDQtMTQzLjk4IDc5LjU0IDAgMTQ0IDY0LjM0IDE0NCAxNDMuOTggMCA3OS41My02NC4zNSAxNDMuOTgtMTQ0IDE0My45OHptLjAyLTIzOS45NmMtNDAuNzggMC03My44NCAzMy4wNS03My44NCA3My44MyAwIDMyLjk2IDQ4LjI2IDkzLjA1IDY2Ljc1IDExNC44NmE5LjI0IDkuMjQgMCAwIDAgMTQuMTggMGMxOC40OS0yMS44MSA2Ni43NS04MS44OSA2Ni43NS0xMTQuODYgMC00MC43OC0zMy4wNi03My44My03My44NC03My44M3ptMCA5NmMtMTMuMjYgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VhcmNoTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDE5MnYzMmMwIDYuNi01LjQgMTItMTIgMTJIMTI0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTMyYzAtNi42IDUuNC0xMiAxMi0xMmgxNjhjNi42IDAgMTIgNS40IDEyIDEyem0yMDEgMjg0LjdMNDc2LjcgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzNDMgNDA1LjNjLTQuNS00LjUtNy0xMC42LTctMTdWMzcyYy0zNS4zIDI3LjYtNzkuNyA0NC0xMjggNDRDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBzMjA4IDkzLjEgMjA4IDIwOGMwIDQ4LjMtMTYuNCA5Mi43LTQ0IDEyOGgxNi4zYzYuNCAwIDEyLjUgMi41IDE3IDdsOTkuNyA5OS43YzkuMyA5LjQgOS4zIDI0LjYgMCAzNHpNMzQ0IDIwOGMwLTc1LjItNjAuOC0xMzYtMTM2LTEzNlM3MiAxMzIuOCA3MiAyMDhzNjAuOCAxMzYgMTM2IDEzNiAxMzYtNjAuOCAxMzYtMTM2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaFBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDE5MnYzMmMwIDYuNi01LjQgMTItMTIgMTJoLTU2djU2YzAgNi42LTUuNCAxMi0xMiAxMmgtMzJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNTZoLTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTMyYzAtNi42IDUuNC0xMiAxMi0xMmg1NnYtNTZjMC02LjYgNS40LTEyIDEyLTEyaDMyYzYuNiAwIDEyIDUuNCAxMiAxMnY1Nmg1NmM2LjYgMCAxMiA1LjQgMTIgMTJ6bTIwMSAyODQuN0w0NzYuNyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDM0MyA0MDUuM2MtNC41LTQuNS03LTEwLjYtNy0xN1YzNzJjLTM1LjMgMjcuNi03OS43IDQ0LTEyOCA0NEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMHMyMDggOTMuMSAyMDggMjA4YzAgNDguMy0xNi40IDkyLjctNDQgMTI4aDE2LjNjNi40IDAgMTIuNSAyLjUgMTcgN2w5OS43IDk5LjdjOS4zIDkuNCA5LjMgMjQuNiAwIDM0ek0zNDQgMjA4YzAtNzUuMi02MC44LTEzNi0xMzYtMTM2UzcyIDEzMi44IDcyIDIwOHM2MC44IDEzNiAxMzYgMTM2IDEzNi02MC44IDEzNi0xMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNSA0NDIuN0w0MDUuMyAzNDNjLTQuNS00LjUtMTAuNi03LTE3LTdIMzcyYzI3LjYtMzUuMyA0NC03OS43IDQ0LTEyOEM0MTYgOTMuMSAzMjIuOSAwIDIwOCAwUzAgOTMuMSAwIDIwOHM5My4xIDIwOCAyMDggMjA4YzQ4LjMgMCA5Mi43LTE2LjQgMTI4LTQ0djE2LjNjMCA2LjQgMi41IDEyLjUgNyAxN2w5OS43IDk5LjdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjYuMS0zNHpNMjA4IDMzNmMtNzAuNyAwLTEyOC01Ny4yLTEyOC0xMjggMC03MC43IDU3LjItMTI4IDEyOC0xMjggNzAuNyAwIDEyOCA1Ny4yIDEyOCAxMjggMCA3MC43LTU3LjIgMTI4LTEyOCAxMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VlZGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgOTZIMGMwIDEyMy43IDEwMC4zIDIyNCAyMjQgMjI0djE0NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMEMyODggMTk2LjMgMTg3LjcgOTYgNjQgOTZ6bTM4NC02NGMtODQuMiAwLTE1Ny40IDQ2LjUtMTk1LjcgMTE1LjIgMjcuNyAzMC4yIDQ4LjIgNjYuOSA1OSAxMDcuNkM0MjQgMjQzLjEgNTEyIDE0Ny45IDUxMiAzMmgtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VydmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAxNjBIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMlY2NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJoNDQ4YzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMnY2NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJ6bS00OC04OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0em0tNjQgMGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0em0xMTIgMjQ4SDMyYy0xNy42NzMgMC0zMi0xNC4zMjctMzItMzJ2LTY0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMmg0NDhjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjY0YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMnptLTQ4LTg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bS02NCAwYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bTExMiAyNDhIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnYtNjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyaDQ0OGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJ2NjRjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMyem0tNDgtODhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHptLTY0IDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFwZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4LDI1NkExMjgsMTI4LDAsMSwwLDI1NiwzODQsMTI4LDEyOCwwLDAsMCwxMjgsMjU2Wm0zNzktNTQuODZMNDAwLjA3LDE4LjI5YTM3LjI2LDM3LjI2LDAsMCwwLTY0LjE0LDBMMjI5LDIwMS4xNEMyMTQuNzYsMjI1LjUyLDIzMi41OCwyNTYsMjYxLjA5LDI1Nkg0NzQuOTFDNTAzLjQyLDI1Niw1MjEuMjQsMjI1LjUyLDUwNywyMDEuMTRaTTQ4MCwyODhIMzIwYTMyLDMyLDAsMCwwLTMyLDMyVjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkg0ODBhMzIsMzIsMCwwLDAsMzItMzJWMzIwQTMyLDMyLDAsMCwwLDQ4MCwyODhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hhcmVBbHRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDgwdjM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh6TTMwNCAyOTZjLTE0LjU2MiAwLTI3LjgyMyA1LjU2MS0zNy43ODMgMTQuNjcxbC02Ny45NTgtNDAuNzc1YTU2LjMzOSA1Ni4zMzkgMCAwIDAgMC0yNy43OTNsNjcuOTU4LTQwLjc3NUMyNzYuMTc3IDIxMC40MzkgMjg5LjQzOCAyMTYgMzA0IDIxNmMzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZzLTI1LjA3Mi01Ni01Ni01Ni01NiAyNS4wNzItNTYgNTZjMCA0Ljc5Ny42MDUgOS40NTMgMS43NCAxMy44OTdsLTY3Ljk1OCA0MC43NzVDMTcxLjgyMyAyMDUuNTYxIDE1OC41NjIgMjAwIDE0NCAyMDBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTZjMTQuNTYyIDAgMjcuODIzLTUuNTYxIDM3Ljc4My0xNC42NzFsNjcuOTU4IDQwLjc3NWE1Ni4wODggNTYuMDg4IDAgMCAwLTEuNzQgMTMuODk3YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZDMzYwIDMyMS4wNzIgMzM0LjkyOCAyOTYgMzA0IDI5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMzIwYy0yMi42MDggMC00My4zODcgNy44MTktNTkuNzkgMjAuODk1bC0xMDIuNDg2LTY0LjA1NGE5Ni41NTEgOTYuNTUxIDAgMCAwIDAtNDEuNjgzbDEwMi40ODYtNjQuMDU0QzMwOC42MTMgMTg0LjE4MSAzMjkuMzkyIDE5MiAzNTIgMTkyYzUzLjAxOSAwIDk2LTQyLjk4MSA5Ni05NlM0MDUuMDE5IDAgMzUyIDBzLTk2IDQyLjk4MS05NiA5NmMwIDcuMTU4Ljc5IDE0LjEzIDIuMjc2IDIwLjg0MUwxNTUuNzkgMTgwLjg5NUMxMzkuMzg3IDE2Ny44MTkgMTE4LjYwOCAxNjAgOTYgMTYwYy01My4wMTkgMC05NiA0Mi45ODEtOTYgOTZzNDIuOTgxIDk2IDk2IDk2YzIyLjYwOCAwIDQzLjM4Ny03LjgxOSA1OS43OS0yMC44OTVsMTAyLjQ4NiA2NC4wNTRBOTYuMzAxIDk2LjMwMSAwIDAgMCAyNTYgNDE2YzAgNTMuMDE5IDQyLjk4MSA5NiA5NiA5NnM5Ni00Mi45ODEgOTYtOTYtNDIuOTgxLTk2LTk2LTk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OC40ODIgMTc3LjQ0OEw0MjQuNDc5IDMxMy40MzNDNDA5LjMgMzI3Ljc2OCAzODQgMzE3LjE0IDM4NCAyOTUuOTg1di03MS45NjNjLTE0NC41NzUuOTctMjA1LjU2NiAzNS4xMTMtMTY0Ljc3NSAxNzEuMzUzIDQuNDgzIDE0Ljk3My0xMi44NDYgMjYuNTY3LTI1LjAwNiAxNy4zM0MxNTUuMjUyIDM4My4xMDUgMTIwIDMyNi40ODggMTIwIDI2OS4zMzljMC0xNDMuOTM3IDExNy41OTktMTcyLjUgMjY0LTE3My4zMTJWMjQuMDEyYzAtMjEuMTc0IDI1LjMxNy0zMS43NjggNDAuNDc5LTE3LjQ0OGwxNDQuMDAzIDEzNS45ODhjMTAuMDIgOS40NjMgMTAuMDI4IDI1LjQyNSAwIDM0Ljg5NnpNMzg0IDM3OS4xMjhWNDQ4SDY0VjEyOGg1MC45MTZhMTEuOTkgMTEuOTkgMCAwIDAgOC42NDgtMy42OTNjMTQuOTUzLTE1LjU2OCAzMi4yMzctMjcuODkgNTEuMDE0LTM3LjY3NkMxODUuNzA4IDgwLjgzIDE4MS41ODQgNjQgMTY5LjAzMyA2NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di04OC44MDZjMC04LjI4OC04LjE5Ny0xNC4wNjYtMTYuMDExLTExLjMwMmE3MS44MyA3MS44MyAwIDAgMS0zNC4xODkgMy4zNzdjLTcuMjctMS4wNDYtMTMuOCA0LjUxNC0xMy44IDExLjg1OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDMuNjkxIDE4OS44MzZMMzI3LjY4NyAzNy44NTFDMzEyLjI4MSAyNC41NDYgMjg4IDM1LjM0NyAyODggNTYuMDE1djgwLjA1M0MxMjcuMzcxIDEzNy45MDcgMCAxNzAuMSAwIDMyMi4zMjZjMCA2MS40NDEgMzkuNTgxIDEyMi4zMDkgODMuMzMzIDE1NC4xMzIgMTMuNjUzIDkuOTMxIDMzLjExMS0yLjUzMyAyOC4wNzctMTguNjMxQzY2LjA2NiAzMTIuODE0IDEzMi45MTcgMjc0LjMxNiAyODggMjcyLjA4NVYzNjBjMCAyMC43IDI0LjMgMzEuNDUzIDM5LjY4NyAxOC4xNjRsMTc2LjAwNC0xNTJjMTEuMDcxLTkuNTYyIDExLjA4Ni0yNi43NTMgMC0zNi4zMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hla2VsU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMTY4djE2OGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNjhjMC03NS4xMS02MC44OS0xMzYtMTM2LTEzNkgyNEMxMC43NSAzMiAwIDQyLjc0IDAgNTZ2NDA4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjExMmgxMTJjMzAuOTMgMCA1NiAyNS4wNyA1NiA1NnpNNDMyIDMyaC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2Mjk2YzAgMzAuOTMtMjUuMDcgNTYtNTYgNTZIMjAwVjE3NmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djI4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDE2OGM3NS4xMSAwIDEzNi02MC44OSAxMzYtMTM2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaWVsZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjYuNSA4My43bC0xOTItODBhNDguMTUgNDguMTUgMCAwIDAtMzYuOSAwbC0xOTIgODBDMjcuNyA5MS4xIDE2IDEwOC42IDE2IDEyOGMwIDE5OC41IDExNC41IDMzNS43IDIyMS41IDM4MC4zIDExLjggNC45IDI1LjEgNC45IDM2LjkgMEMzNjAuMSA0NzIuNiA0OTYgMzQ5LjMgNDk2IDEyOGMwLTE5LjQtMTEuNy0zNi45LTI5LjUtNDQuM3pNMjU2LjEgNDQ2LjNsLS4xLTM4MSAxNzUuOSA3My4zYy0zLjMgMTUxLjQtODIuMSAyNjEuMS0xNzUuOCAzMDcuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGllbGRWaXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQsMTkyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDIyNCwxOTJaTTQ2Ni41LDgzLjY4bC0xOTItODBBNTcuNCw1Ny40LDAsMCwwLDI1Ni4wNSwwYTU3LjQsNTcuNCwwLDAsMC0xOC40NiwzLjY3bC0xOTIsODBBNDcuOTMsNDcuOTMsMCwwLDAsMTYsMTI4QzE2LDMyNi41LDEzMC41LDQ2My43MiwyMzcuNSw1MDguMzJhNDguMDksNDguMDksMCwwLDAsMzYuOTEsMEMzNjAuMDksNDcyLjYxLDQ5NiwzNDkuMyw0OTYsMTI4QTQ4LDQ4LDAsMCwwLDQ2Ni41LDgzLjY4Wk0zODQsMjU2SDM3MS44OGMtMjguNTEsMC00Mi43OSwzNC40Ny0yMi42Myw1NC42M2w4LjU4LDguNTdhMTYsMTYsMCwxLDEtMjIuNjMsMjIuNjNsLTguNTctOC41OEMzMDYuNDcsMzEzLjA5LDI3MiwzMjcuMzcsMjcyLDM1NS44OFYzNjhhMTYsMTYsMCwwLDEtMzIsMFYzNTUuODhjMC0yOC41MS0zNC40Ny00Mi43OS01NC42My0yMi42M2wtOC41Nyw4LjU4YTE2LDE2LDAsMCwxLTIyLjYzLTIyLjYzbDguNTgtOC41N2MyMC4xNi0yMC4xNiw1Ljg4LTU0LjYzLTIyLjYzLTU0LjYzSDEyOGExNiwxNiwwLDAsMSwwLTMyaDEyLjEyYzI4LjUxLDAsNDIuNzktMzQuNDcsMjIuNjMtNTQuNjNsLTguNTgtOC41N2ExNiwxNiwwLDAsMSwyMi42My0yMi42M2w4LjU3LDguNThjMjAuMTYsMjAuMTYsNTQuNjMsNS44OCw1NC42My0yMi42M1YxMTJhMTYsMTYsMCwwLDEsMzIsMHYxMi4xMmMwLDI4LjUxLDM0LjQ3LDQyLjc5LDU0LjYzLDIyLjYzbDguNTctOC41OGExNiwxNiwwLDAsMSwyMi42MywyMi42M2wtOC41OCw4LjU3QzMyOS4wOSwxODkuNTMsMzQzLjM3LDIyNCwzNzEuODgsMjI0SDM4NGExNiwxNiwwLDAsMSwwLDMyWm0tOTYsMGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwyODgsMjU2WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjYxNiAzNzIuNjM5bDcwLjAxMi03MC4wMTJjMTYuODk5LTE2LjkgOS45NDItNDUuNzcxLTEyLjgzNi01My4wOTJMNTEyIDIzNi4xMDJWOTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMyaC02NFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2NDBoLTY0Yy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJ2MTQwLjEwMmwtNDEuNzkyIDEzLjQzM2MtMjIuNzUzIDcuMzEzLTI5Ljc1NCAzNi4xNzMtMTIuODM2IDUzLjA5Mmw3MC4wMTIgNzAuMDEyQzEyNS44MjggNDE2LjI4NyA4NS41ODcgNDQ4IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCA2MS4wMjMgMCAxMDcuNDk5LTIwLjYxIDE0My4yNTgtNTkuMzk2QzE4MS42NzcgNDg3LjQzMiAyMTYuMDIxIDUxMiAyNTYgNTEyaDEyOGMzOS45NzkgMCA3NC4zMjMtMjQuNTY4IDg4Ljc0Mi01OS4zOTZDNTA4LjQ5NSA0OTEuMzg0IDU1NC45NjggNTEyIDYxNiA1MTJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQtNjAuODE3IDAtMTAxLjU0Mi0zMS4wMDEtMTE5LjM4NC03NS4zNjF6TTE5MiAxMjhoMjU2djg3LjUzMWwtMTE4LjIwOC0zNy45OTVhMzEuOTk1IDMxLjk5NSAwIDAgMC0xOS41ODQgMEwxOTIgMjE1LjUzMVYxMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpcHBpbmdGYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAzNTJoLTE2VjI0My45YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlMNDk0IDExMC4xYy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUg0MTZWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTEyQzg1LjUgMCA2NCAyMS41IDY0IDQ4djQ4SDhjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMjcyYzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhINDBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMjA4YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIOGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOGgyMDhjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEg2NHYxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmgxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05Nmg0OGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMTYwIDQ2NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTMyMCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptODAtMjA4SDQxNlYxNDRoNDQuMWw5OS45IDk5LjlWMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob2VQcmludHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDE2MGgzMlYzMmgtMzJjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjRzMjguNjUgNjQgNjQgNjR6TTAgNDE2YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzJWMzUySDY0Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0em0zMzcuNDYtMTI4Yy0zNC45MSAwLTc2LjE2IDEzLjEyLTEwNC43MyAzMi0yNC43OSAxNi4zOC00NC41MiAzMi0xMDQuNzMgMzJ2MTI4bDU3LjUzIDE1Ljk3YzI2LjIxIDcuMjggNTMuMDEgMTMuMTIgODAuMzEgMTUuMDUgMzIuNjkgMi4zMSA2NS42LjY3IDk3LjU4LTYuMkM0NzIuOSA0ODEuMyA1MTIgNDI5LjIyIDUxMiAzODRjMC02NC04NC4xOC05Ni0xNzQuNTQtOTZ6TTQ5MS40MiA3LjE5QzQ1OS40NC4zMiA0MjYuNTMtMS4zMyAzOTMuODQuOTljLTI3LjMgMS45My01NC4xIDcuNzctODAuMzEgMTUuMDRMMjU2IDMydjEyOGM2MC4yIDAgNzkuOTQgMTUuNjIgMTA0LjczIDMyIDI4LjU3IDE4Ljg4IDY5LjgyIDMyIDEwNC43MyAzMkM1NTUuODIgMjI0IDY0MCAxOTIgNjQwIDEyOGMwLTQ1LjIyLTM5LjEtOTcuMy0xNDguNTgtMTIwLjgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BwaW5nQmFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAxNjB2LTMyQzM1MiA1Ny40MiAyOTQuNTc5IDAgMjI0IDAgMTUzLjQyIDAgOTYgNTcuNDIgOTYgMTI4djMySDB2MjcyYzAgNDQuMTgzIDM1LjgxNyA4MCA4MCA4MGgyODhjNDQuMTgzIDAgODAtMzUuODE3IDgwLTgwVjE2MGgtOTZ6bS0xOTItMzJjMC0zNS4yOSAyOC43MS02NCA2NC02NHM2NCAyOC43MSA2NCA2NHYzMkgxNjB2LTMyem0xNjAgMTIwYy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRzMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjR6bS0xOTIgMGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BwaW5nQmFza2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAyMTZ2MTZjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0aC04bC0yNi4xMTMgMTgyLjc4OEM1MTQuNTA5IDQ2Mi40MzUgNDk0LjI1NyA0ODAgNDcwLjM3IDQ4MEgxMDUuNjNjLTIzLjg4NyAwLTQ0LjEzOS0xNy41NjUtNDcuNTE4LTQxLjIxMkwzMiAyNTZoLThjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHYtMTZjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDY3LjM0MWwxMDYuNzgtMTQ2LjgyMWMxMC4zOTUtMTQuMjkyIDMwLjQwNy0xNy40NTMgNDQuNzAxLTcuMDU4IDE0LjI5MyAxMC4zOTUgMTcuNDUzIDMwLjQwOCA3LjA1OCA0NC43MDFMMTcwLjQ3NyAxOTJoMjM1LjA0NkwzMjYuMTIgODIuODIxYy0xMC4zOTUtMTQuMjkyLTcuMjM0LTM0LjMwNiA3LjA1OS00NC43MDEgMTQuMjkxLTEwLjM5NSAzNC4zMDYtNy4yMzUgNDQuNzAxIDcuMDU4TDQ4NC42NTkgMTkySDU1MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR6TTMxMiAzOTJWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHMtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRzMjQtMTAuNzQ1IDI0LTI0em0xMTIgMFYyODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0cy0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHMyNC0xMC43NDUgMjQtMjR6bS0yMjQgMFYyODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0cy0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHMyNC0xMC43NDUgMjQtMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcHBpbmdDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOC4xMiAzMDEuMzE5bDQ3LjI3My0yMDhDNTc4LjgwNiA3OC4zMDEgNTY3LjM5MSA2NCA1NTEuOTkgNjRIMTU5LjIwOGwtOS4xNjYtNDQuODFDMTQ3Ljc1OCA4LjAyMSAxMzcuOTMgMCAxMjYuNTI5IDBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoNjkuODgzbDcwLjI0OCAzNDMuNDM1QzE0Ny4zMjUgNDE3LjEgMTM2IDQzNS4yMjIgMTM2IDQ1NmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZzNTYtMjUuMDcyIDU2LTU2YzAtMTUuNjc0LTYuNDQ3LTI5LjgzNS0xNi44MjQtNDBoMjA5LjY0N0M0MzAuNDQ3IDQyNi4xNjUgNDI0IDQ0MC4zMjYgNDI0IDQ1NmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZzNTYtMjUuMDcyIDU2LTU2YzAtMjIuMTcyLTEyLjg4OC00MS4zMzItMzEuNTc5LTUwLjQwNWw1LjUxNy0yNC4yNzZjMy40MTMtMTUuMDE4LTguMDAyLTI5LjMxOS0yMy40MDMtMjkuMzE5SDIxOC4xMTdsLTYuNTQ1LTMyaDI5My4xNDVjMTEuMjA2IDAgMjAuOTItNy43NTQgMjMuNDAzLTE4LjY4MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LDMyMGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzMDQsMzIwWm0zMi05NmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzMzYsMjI0Wm0zMiw2NGExNiwxNiwwLDEsMC0xNi0xNkExNiwxNiwwLDAsMCwzNjgsMjg4Wm0tMzIsMzJhMTYsMTYsMCwxLDAtMTYtMTZBMTYsMTYsMCwwLDAsMzM2LDMyMFptLTMyLTY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMwNCwyNTZabTEyOC0zMmExNiwxNiwwLDEsMC0xNi0xNkExNiwxNiwwLDAsMCw0MzIsMjI0Wm0tNDgsMTZhMTYsMTYsMCwxLDAsMTYtMTZBMTYsMTYsMCwwLDAsMzg0LDI0MFptLTE2LTQ4YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDM2OCwxOTJabTk2LDMyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDQ2NCwyMjRabTMyLTMyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDQ5NiwxOTJabS02NCw2NGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCw0MzIsMjU2Wm0tMzIsMzJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsNDAwLDI4OFptLTY0LDY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMzNiwzNTJabS0zMiwzMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzMDQsMzg0Wm02NC02NGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzNjgsMzIwWm0yMS42NS0yMTguMzUtMTEuMy0xMS4zMWExNiwxNiwwLDAsMC0yMi42MywwTDM1MC4wNSw5NkExMTEuMTksMTExLjE5LDAsMCwwLDI3Miw2NGMtMTkuMjQsMC0zNy4wOCw1LjMtNTIuOSwxMy44NWwtMTAtMTBBMTIxLjcyLDEyMS43MiwwLDAsMCwxMjMuNDQsMzJDNTUuNDksMzEuNSwwLDkyLjkxLDAsMTYwLjg1VjQ2NGExNiwxNiwwLDAsMCwxNiwxNkg0OGExNiwxNiwwLDAsMCwxNi0xNlYxNTguNGMwLTMwLjE1LDIxLTU4LjIsNTEtNjEuOTNhNTguMzgsNTguMzgsMCwwLDEsNDguOTMsMTYuNjdsMTAsMTBDMTY1LjMsMTM4LjkyLDE2MCwxNTYuNzYsMTYwLDE3NmExMTEuMjMsMTExLjIzLDAsMCwwLDMyLDc4LjA1bC01LjY2LDUuNjdhMTYsMTYsMCwwLDAsMCwyMi42MmwxMS4zLDExLjMxYTE2LDE2LDAsMCwwLDIyLjYzLDBMMzg5LjY1LDEyNC4yOEExNiwxNiwwLDAsMCwzODkuNjUsMTAxLjY1WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNodXR0bGVWYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI4Ljg4IDIxMC42NUw0OTQuMzkgNDkuMjdBNDguMDEgNDguMDEgMCAwIDAgNDU3LjUyIDMySDMyQzE0LjMzIDMyIDAgNDYuMzMgMCA2NHYyODhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDEyOGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjQxLjM4YzAtMTEuMjMtMy45NC0yMi4xLTExLjEyLTMwLjczek02NCAxOTJWOTZoOTZ2OTZINjR6bTk2IDI0MGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMTYwLTI0MGgtOTZWOTZoOTZ2OTZ6bTE2MCAyNDBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bS05Ni0yNDBWOTZoNjYuMDJsODAgOTZIMzg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25JbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgNDQ4aC04NGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyaC04NGMtNi42IDAtMTItNS40LTEyLTEyVjc2YzAtNi42IDUuNC0xMiAxMi0xMmg4NGM1MyAwIDk2IDQzIDk2IDk2djE5MmMwIDUzLTQzIDk2LTk2IDk2em0tNDctMjAxTDIwMSA3OWMtMTUtMTUtNDEtNC41LTQxIDE3djk2SDI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMzZ2OTZjMCAyMS41IDI2IDMyIDQxIDE3bDE2OC0xNjhjOS4zLTkuNCA5LjMtMjQuNiAwLTM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25MYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS40MzQgNDgzLjk4N2MtLjMwNy0xNi4wMTggMTMuMTA5LTI5LjEyOSAyOS4xMy0yOS4xMjloNjIuMjkzdi01LjcxNEg1Ni45OTNjLTE2LjAyMSAwLTI5LjQzNy0xMy4xMTEtMjkuMTMtMjkuMTI5QzI4LjE2IDQwNC40OTEgNDAuODM1IDM5MiA1Ni40MjggMzkyaDEyNi40Mjl2LTUuNzE0SDI5LjEzNmMtMTYuMDIxIDAtMjkuNDM3LTEzLjExMS0yOS4xMy0yOS4xMjkuMjk3LTE1LjUyMiAxMi45NzMtMjguMDEzIDI4LjU2Ni0yOC4wMTNoMTU0LjI4NnYtNS43MTRINTcuNzA3Yy0xNi4wMjEgMC0yOS40MzctMTMuMTExLTI5LjEzLTI5LjEyOS4yOTctMTUuNTIyIDEyLjk3My0yOC4wMTMgMjguNTY2LTI4LjAxM2gxNjguNTY2bC0zMS4wODUtMjIuNjA2Yy0xMi43NjItOS4yODEtMTUuNTgzLTI3LjE0OS02LjMwMi0zOS45MTIgOS4yODEtMTIuNzYxIDI3LjE1LTE1LjU4MiAzOS45MTItNi4zMDJsMTIzLjM2MSA4OS43MTVhMzQuMjg3IDM0LjI4NyAwIDAgMSAxNC4xMiAyNy43Mjh2MTQxLjEzNmMwIDE1LjkxLTEwLjk0NiAyOS43My0yNi40MzMgMzMuMzc0bC04MC40NzEgMTguOTM0YTEzNy4xNiAxMzcuMTYgMCAwIDEtMzEuNDExIDMuNjQ2SDEyMGMtMTUuNTkzLS4wMDEtMjguMjY5LTEyLjQ5Mi0yOC41NjYtMjguMDE0em03My4yNDktMjI1LjcwMWgzNi40MjNsLTExLjE4Ny04LjEzNmMtMTguNTc5LTEzLjUxMS0yMC4zMTMtNDAuODg3LTMuMTctNTYuNTM2bC0xMy4wMDQtMTYuN2MtOS44NDMtMTIuNjQxLTI4LjQzLTE1LjE3MS00MC44OC01LjA4OC0xMi4wNjUgOS43NzEtMTQuMTMzIDI3LjQ0Ny00LjU1MyAzOS43NWwzNi4zNzEgNDYuNzF6bTI4My4yOTgtMi4xMDNsLTUuMDAzLTE1Mi40NTJjLS41MTgtMTUuNzcxLTEzLjcyMi0yOC4xMzYtMjkuNDkzLTI3LjYxOS0xNS43NzMuNTE4LTI4LjEzNyAxMy43MjItMjcuNjE5IDI5LjQ5M2wxLjI2MiAzOC40MTVMMjgzLjU2NSAxMS4wMTljLTkuNTgtMTIuMzAzLTI3LjIyMy0xNC42My0zOS42NTMtNS4zMjgtMTIuODI3IDkuNTk5LTE0LjkyOSAyOC4yNC01LjA4NiA0MC44ODFsNzYuODg5IDk4Ljc0NS00LjUwOSAzLjUxMS05NC43OS0xMjEuNzM0Yy05LjU4LTEyLjMwMy0yNy4yMjMtMTQuNjMtMzkuNjUzLTUuMzI4LTEyLjgyNyA5LjU5OS0xNC45MjkgMjguMjQtNS4wODYgNDAuODgxbDk0LjQ0MyAxMjEuMjg4LTQuNTA5IDMuNTExLTc3LjY3NS05OS43NTRjLTkuNTgtMTIuMzAzLTI3LjIyMy0xNC42My0zOS42NTMtNS4zMjgtMTIuODI3IDkuNTk5LTE0LjkyOSAyOC4yNC01LjA4NiA0MC44ODFsNTIuMDUzIDY2Ljg0OWMxMi40OTctOC4yNTcgMjkuMDU1LTguMjg1IDQxLjY5LjkwNGwxMjMuMzYgODkuNzE0YzEwLjkwNCA3LjkzIDE3LjQxNSAyMC43MTUgMTcuNDE1IDM0LjE5OHYxNi45OTlsNjEuMDY0LTQ3LjU0OWEzNC4yODUgMzQuMjg1IDAgMCAwIDEzLjIwMi0yOC4xNzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbk91dEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcgMjczTDMyOSA0NDFjLTE1IDE1LTQxIDQuNS00MS0xN3YtOTZIMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHYtOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTM2Vjg4YzAtMjEuNCAyNS45LTMyIDQxLTE3bDE2OCAxNjhjOS4zIDkuNCA5LjMgMjQuNiAwIDM0ek0xOTIgNDM2di00MGMwLTYuNi01LjQtMTItMTItMTJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg4NGM2LjYgMCAxMi01LjQgMTItMTJWNzZjMC02LjYtNS40LTEyLTEyLTEySDk2Yy01MyAwLTk2IDQzLTk2IDk2djE5MmMwIDUzIDQzIDk2IDk2IDk2aDg0YzYuNiAwIDEyLTUuNCAxMi0xMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiA2NEgxMjhWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMTZDNy4yIDY0IDAgNzEuMiAwIDgwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHYzNjhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMjhoMzY4YzguOCAwIDE2LTcuMiAxNi0xNlY4MGMwLTguOC03LjItMTYtMTYtMTZ6TTE2MCAzODRoMzIwVjE2MEgxNjB2MjI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgMjg4aC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTkyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjMwNGMwLTguODQtNy4xNi0xNi0xNi0xNnpNODggMzg0SDQwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY5NmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtOTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTI1Ni0xOTJoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYyODhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjA4YzAtOC44NC03LjE2LTE2LTE2LTE2em0xMjgtOTZoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzODRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTEyYzAtOC44NC03LjE2LTE2LTE2LTE2ek02MDAgMGgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4MGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaWduYXR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIzLjIgMTkyYy01MS44IDMuNS0xMjUuNyA1NC43LTE2My4xIDcxLjUtMjkuMSAxMy4xLTU0LjIgMjQuNC03Ni4xIDI0LjQtMjIuNiAwLTI2LTE2LjItMjEuMy01MS45IDEuMS04IDExLjctNzkuMi00Mi43LTc2LjEtMjUuMSAxLjUtNjQuMyAyNC44LTE2OS41IDEyNkwxOTIgMTgyLjJjMzAuNC03NS45LTUzLjItMTUxLjUtMTI5LjctMTAyLjhMNy40IDExNi4zQzAgMTIxLTIuMiAxMzAuOSAyLjUgMTM4LjRsMTcuMiAyN2M0LjcgNy41IDE0LjYgOS43IDIyLjEgNC45bDU4LTM4LjljMTguNC0xMS43IDQwLjcgNy4yIDMyLjcgMjcuMUwzNC4zIDQwNC4xQzI3LjUgNDIxIDM3IDQ0OCA2NCA0NDhjOC4zIDAgMTYuNS0zLjIgMjIuNi05LjQgNDIuMi00Mi4yIDE1NC43LTE1MC43IDIxMS4yLTE5NS44LTIuMiAyOC41LTIuMSA1OC45IDIwLjYgODMuOCAxNS4zIDE2LjggMzcuMyAyNS4zIDY1LjUgMjUuMyAzNS42IDAgNjgtMTQuNiAxMDIuMy0zMCAzMy0xNC44IDk5LTYyLjYgMTM4LjQtNjUuOCA4LjUtLjcgMTUuMi03LjMgMTUuMi0xNS44di0zMi4xYy4yLTkuMS03LjUtMTYuOC0xNi42LTE2LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2ltQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0djM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGgyNTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4TDI1NiAwSDY0QzI4LjcgMCAwIDI4LjcgMCA2NHptMjI0IDE5MmgtNjR2LTY0aDY0djY0em05NiAwaC02NHYtNjRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2MzJ6bS02NCAxMjhoNjR2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJoLTMydi02NHptLTk2IDBoNjR2NjRoLTY0di02NHptLTk2IDBoNjR2NjRIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMydi0zMnptMC05NmgyNTZ2NjRINjR2LTY0em0wLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMydjY0SDY0di0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLDQxNmE5Niw5NiwwLDAsMCw5Niw5NkgzODRhOTYsOTYsMCwwLDAsOTYtOTZWMzg0SDMyWk00OTYsMjg4SDQwMFYyNTZoNjRhMTYsMTYsMCwwLDAsMTYtMTZWMjI0YTE2LDE2LDAsMCwwLTE2LTE2SDM4NGEzMiwzMiwwLDAsMC0zMiwzMnY0OEgyODhWOTZhMzIsMzIsMCwwLDEsNjQsMHYxNmExNiwxNiwwLDAsMCwxNiwxNmgzMmExNiwxNiwwLDAsMCwxNi0xNlY5NkE5Ni4xNiw5Ni4xNiwwLDAsMCwzMDAuODcsMS44NkMyNTUuMjksMTAuNzEsMjI0LDUzLjM2LDIyNCw5OS43OVYyODhIMTYwVjI0MGEzMiwzMiwwLDAsMC0zMi0zMkg0OGExNiwxNiwwLDAsMC0xNiwxNnYxNmExNiwxNiwwLDAsMCwxNiwxNmg2NHYzMkgxNkExNiwxNiwwLDAsMCwwLDMwNHYzMmExNiwxNiwwLDAsMCwxNiwxNkg0OTZhMTYsMTYsMCwwLDAsMTYtMTZWMzA0QTE2LDE2LDAsMCwwLDQ5NiwyODhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2l0ZW1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMzUySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTI0LTgwaDE5MnY0OGg0OHYtNDhoMTkydjQ4aDQ4di01Ny41OWMwLTIxLjE3LTE3LjIzLTM4LjQxLTM4LjQxLTM4LjQxSDM0NHYtNjRoNDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDI1NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDQwdjY0SDk0LjQxQzczLjIzIDIyNCA1NiAyNDEuMjMgNTYgMjYyLjQxVjMyMGg0OHYtNDh6bTI2NCA4MGgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0yNDAgMGgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNrYXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDggNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4em0wIDQ0OGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZoLTk2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptLTI4Mi4yIDguNmMtNi4yIDYuMi0xNi40IDYuMy0yMi42IDBsLTY3LjktNjcuOWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw2Ny45IDY3LjljOS40IDkuNCAyMS43IDE0IDM0IDE0czI0LjYtNC43IDMzLjktMTRjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4zLTIyLjcgMHptNTYuMS0xNzkuOGwtOTMuNyA5My43Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuMiA2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40bDkxLjktOTEuOS0zMC4yLTMwLjJjLTUtNS05LjQtMTAuNy0xMy4yLTE2Ljh6TTEyOCAxNjBoMTA1LjVsLTIwLjEgMTcuMmMtMTMuNSAxMS41LTIxLjYgMjguNC0yMi4zIDQ2LjEtLjcgMTcuOCA2LjEgMzUuMiAxOC43IDQ3LjdsNzguMiA3OC4yVjQzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMydi04OS40YzAtMTIuNi01LjEtMjUtMTQuMS0zMy45bC02MS02MWMuNS0uNCAxLjItLjYgMS43LTEuMWw4Mi4zLTgyLjNjMTEuNS0xMS41IDE0LjktMjguNiA4LjctNDMuNi02LjItMTUtMjAuNy0yNC43LTM3LTI0LjdIMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNraWluZ05vcmRpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTMzYyLjUgMCAzMzYgMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em0yMTYgMzIwYy0xMy4yIDAtMjQgMTAuNy0yNCAyNCAwIDEzLjItMTAuOCAyNC0yNCAyNGgtNjkuNUw0NjAgMjg1LjZjMTEuNy00LjcgMjAuMS0xNi4yIDIwLjEtMjkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMmgtNDRMMzc4IDE3MC44Yy0xMi41LTI1LjUtMzUuNS00NC4yLTYxLjgtNTAuOUwyNDUgOTguN2MtMjguMy02LjgtNTcuOC0uNS04MC44IDE3LjFsLTM5LjcgMzAuNGMtMTQgMTAuNy0xNi43IDMwLjgtNS45IDQ0LjkuNy45IDEuNyAxLjMgMi40IDIuMUw2Ni45IDQ2NEgyNGMtMTMuMiAwLTI0IDEwLjctMjQgMjRzMTAuOCAyNCAyNCAyNGg0ODBjMzkuNyAwIDcyLTMyLjMgNzItNzIgMC0xMy4yLTEwLjgtMjQtMjQtMjR6bS0yNjAuNSA0OGgtOTYuOWw0My4xLTkxLTIyLTEzYy0xMi4xLTcuMi0yMS45LTE2LjktMjkuNS0yNy44TDEyMy43IDQ2NEg5OS41bDUyLjMtMjYxLjRjNC4xLTEgOC4xLTIuOSAxMS43LTUuNmwzOS43LTMwLjRjNy43LTUuOSAxNy40LTggMjUuMy02LjFsMTQuNyA0LjQtMzcuNSA4Ny40Yy0xMi42IDI5LjUtMS4zIDY0IDI2LjMgODAuM2w4NSA1MC4yLTI1LjUgODEuMnptMTEwLjYgMGgtNDMuNmwyMy42LTc1LjVjNS45LTIwLjgtMi45LTQzLjEtMjEuNi01NC40TDI5OS4zIDI5OGwzMS4zLTc4LjMgMjAuMyA0MS40YzggMTYuMyAyNC45IDI2LjkgNDMuMSAyNi45aDMzLjNsLTI1LjIgMTc2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNraWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTNDU4LjUgMCA0MzIgMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em03MyAzNTYuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDAtMTIuMSAxMi4xLTMwLjUgMTUuNC00NS4xIDguN2wtMTM1LjgtNzAuMiA0OS4yLTczLjhjMTIuNy0xOSAxMC4yLTQ0LjUtNi02MC42TDI5MyAyMTUuN2wtMTA3LTUzLjFjLTIuOSAxOS45IDMuNCA0MCAxNy43IDU0LjRsNzUuMSA3NS4yLTQ1LjkgNjguOEwzNSAyNTguN2MtMTEuNy02LTI2LjItMS41LTMyLjMgMTAuMy02LjEgMTEuOC0xLjUgMjYuMyAxMC4zIDMyLjNsMzkxLjkgMjAyLjVjMTEuOSA1LjUgMjQuNSA4LjEgMzcuMSA4LjEgMjMuMiAwIDQ2LTkgNjMtMjYgOS4zLTkuMyA5LjMtMjQuNSAwLTMzLjh6TTEyMCA5MS42bC0xMS41IDIyLjVjMTQuNCA3LjMgMzEuMiA0LjkgNDIuOC00LjhsNDcuMiAyMy40Yy0uMS4xLS4xLjItLjIuM2wxMTQuNSA1Ni44IDMyLjQtMTMgNi40IDE5LjFjNCAxMi4xIDEyLjYgMjIgMjQgMjcuN2w1OC4xIDI5YzE1LjkgNy45IDM1IDEuNSA0Mi45LTE0LjMgNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOWwtNTIuMS0yNi4xLTE3LjEtNTEuMmMtOC4xLTI0LjItNDAuOS01Ni42LTg0LjUtMzkuMmwtODEuMiAzMi41LTYyLjUtMzFjLjMtMTQuNS03LjItMjguNi0yMC45LTM1LjZsLTExLjEgMjEuN2gtLjJsLTM0LjQtN2MtMS44LS40LTMuNy4yLTUgMS43LTEuOSAyLjItMS43IDUuNS41IDcuNGwyNi4yIDIzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNrdWxsQ3Jvc3Nib25lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzkuMTUgNDUzLjA2TDI5Ny4xNyAzODRsMTQxLjk5LTY5LjA2YzcuOS0zLjk1IDExLjExLTEzLjU2IDcuMTUtMjEuNDZMNDMyIDI2NC44NWMtMy45NS03LjktMTMuNTYtMTEuMTEtMjEuNDctNy4xNkwyMjQgMzQ4LjQxIDM3LjQ3IDI1Ny42OWMtNy45LTMuOTUtMTcuNTEtLjc1LTIxLjQ3IDcuMTZMMS42OSAyOTMuNDhjLTMuOTUgNy45LS43NSAxNy41MSA3LjE1IDIxLjQ2TDE1MC44MyAzODQgOC44NSA0NTMuMDZjLTcuOSAzLjk1LTExLjExIDEzLjU2LTcuMTUgMjEuNDdsMTQuMzEgMjguNjNjMy45NSA3LjkgMTMuNTYgMTEuMTEgMjEuNDcgNy4xNUwyMjQgNDE5LjU5bDE4Ni41MyA5MC43MmM3LjkgMy45NSAxNy41MS43NSAyMS40Ny03LjE1bDE0LjMxLTI4LjYzYzMuOTUtNy45MS43NC0xNy41Mi03LjE2LTIxLjQ3ek0xNTAgMjM3LjI4bC01LjQ4IDI1Ljg3Yy0yLjY3IDEyLjYyIDUuNDIgMjQuODUgMTYuNDUgMjQuODVoMTI2LjA4YzExLjAzIDAgMTkuMTItMTIuMjMgMTYuNDUtMjQuODVsLTUuNS0yNS44N2M0MS43OC0yMi40MSA3MC02Mi43NSA3MC0xMDkuMjhDMzY4IDU3LjMxIDMwMy41MyAwIDIyNCAwUzgwIDU3LjMxIDgwIDEyOGMwIDQ2LjUzIDI4LjIyIDg2Ljg3IDcwIDEwOS4yOHpNMjgwIDExMmMxNy42NSAwIDMyIDE0LjM1IDMyIDMycy0xNC4zNSAzMi0zMiAzMi0zMi0xNC4zNS0zMi0zMiAxNC4zNS0zMiAzMi0zMnptLTExMiAwYzE3LjY1IDAgMzIgMTQuMzUgMzIgMzJzLTE0LjM1IDMyLTMyIDMyLTMyLTE0LjM1LTMyLTMyIDE0LjM1LTMyIDMyLTMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNrdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwQzExNC42IDAgMCAxMDAuMyAwIDIyNGMwIDcwLjEgMzYuOSAxMzIuNiA5NC41IDE3My43IDkuNiA2LjkgMTUuMiAxOC4xIDEzLjUgMjkuOWwtOS40IDY2LjJjLTEuNCA5LjYgNiAxOC4yIDE1LjcgMTguMkgxOTJ2LTU2YzAtNC40IDMuNi04IDgtOGgxNmM0LjQgMCA4IDMuNiA4IDh2NTZoNjR2LTU2YzAtNC40IDMuNi04IDgtOGgxNmM0LjQgMCA4IDMuNiA4IDh2NTZoNzcuN2M5LjcgMCAxNy4xLTguNiAxNS43LTE4LjJsLTkuNC02Ni4yYy0xLjctMTEuNyAzLjgtMjMgMTMuNS0yOS45QzQ3NS4xIDM1Ni42IDUxMiAyOTQuMSA1MTIgMjI0IDUxMiAxMDAuMyAzOTcuNCAwIDI1NiAwem0tOTYgMzIwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NHptMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5NC41MyA1MDguNjNMNi4xOCA1My45Yy02Ljk3LTUuNDItOC4yMy0xNS40Ny0yLjgxLTIyLjQ1TDIzLjAxIDYuMThDMjguNDMtLjggMzguNDktMi4wNiA0NS40NyAzLjM3TDYzMy44MiA0NTguMWM2Ljk3IDUuNDIgOC4yMyAxNS40NyAyLjgxIDIyLjQ1bC0xOS42NCAyNS4yN2MtNS40MiA2Ljk4LTE1LjQ4IDguMjMtMjIuNDYgMi44MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGVpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEyLjcgMzUwLjdsLTkuMy03LjRjLTYuOS01LjUtMTctNC40LTIyLjUgMi41bC0xMCAxMi41Yy01LjUgNi45LTQuNCAxNyAyLjUgMjIuNWw5LjMgNy40YzUuOSA0LjcgOS4yIDExLjcgOS4yIDE5LjIgMCAxMy42LTExIDI0LjYtMjQuNiAyNC42SDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDUxNmMzOSAwIDczLjctMjkuMyA3NS45LTY4LjMgMS40LTIzLjgtOC43LTQ2LjMtMjcuMi02MXpNMzIgMjI0YzAgNTkuNiA0MC45IDEwOS4yIDk2IDEyMy41VjQwMGg2NHYtNDhoMTkydjQ4aDY0di00OGM1MyAwIDk2LTQzIDk2LTk2di05NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmgtOTZ2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRoLTIwLjdjLTY1LjggMC0xMjUuOS0zNy4yLTE1NS4zLTk2LTI5LjQtNTguOC04OS42LTk2LTE1NS4zLTk2SDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRzMTQuMyAzMiAzMiAzMnYxMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xpZGVyc0ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDM4NEgxNjB2LTE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg4MHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgzMzZjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTAtMTYwaC04MHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMzNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmg4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMC0xNjBIMjg4VjQ4YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgxNkM3LjIgNjQgMCA3MS4yIDAgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDIwOHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgyMDhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbWlsZUJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTEyIDIyMy40YzMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMyA3LjQtMTUuOCA0LTE1LjEtNC41em0yNTAuOCAxMjIuOEMzMzQuMyAzODAuNCAyOTIuNSA0MDAgMjQ4IDQwMHMtODYuMy0xOS42LTExNC44LTUzLjhjLTEzLjUtMTYuMyAxMS0zNi43IDI0LjYtMjAuNSAyMi40IDI2LjkgNTUuMiA0Mi4yIDkwLjIgNDIuMnM2Ny44LTE1LjQgOTAuMi00Mi4yYzEzLjYtMTYuMiAzOC4xIDQuMyAyNC42IDIwLjV6bTYuMi0xMTguM2wtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4xIDcuMy0xNS42IDQtMTQuOS00LjUgMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjYgOC42LTExIDExLjktMTUuMSA0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21pbGVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YzAgMTM3IDExMSAyNDggMjQ4IDI0OHMyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDggMCAxMTkgMCAyNTZ6bTIwMC00OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzJ6bTE1OC41IDE2LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwyODggMjMzYy04LjMgNy40LTIxLjYuNC0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMzg0IDE5NyAzODggMjIyLjJjMS43IDExLjEtMTEuNCAxOC4zLTE5LjggMTAuOGwtOS43LTguNXpNMTU3LjggMzI1LjhDMTgwLjIgMzUyLjcgMjEzIDM2OCAyNDggMzY4czY3LjgtMTUuNCA5MC4yLTQyLjJjMTMuNi0xNi4yIDM4LjEgNC4yIDI0LjYgMjAuNUMzMzQuMyAzODAuNCAyOTIuNSA0MDAgMjQ4IDQwMHMtODYuMy0xOS42LTExNC44LTUzLjhjLTEzLjUtMTYuMyAxMS4yLTM2LjcgMjQuNi0yMC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bS0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTE5NC44IDE3MC4yQzMzNC4zIDM4MC40IDI5Mi41IDQwMCAyNDggNDAwcy04Ni4zLTE5LjYtMTE0LjgtNTMuOGMtMTMuNi0xNi4zIDExLTM2LjcgMjQuNi0yMC41IDIyLjQgMjYuOSA1NS4yIDQyLjIgOTAuMiA0Mi4yczY3LjgtMTUuNCA5MC4yLTQyLjJjMTMuNC0xNi4yIDM4LjEgNC4yIDI0LjYgMjAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbW9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAzNjhIODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNTQ0YzguOCAwIDE2LTcuMiAxNi0xNnYtMTZjMC04LjgtNy4yLTE2LTE2LTE2em0tNDgwIDk2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnptNDE2IDBIMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDMzNmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMTQ0IDI4OGgxNTYuMWMyMi41IDE5LjcgNTEuNiAzMiA4My45IDMyczYxLjMtMTIuMyA4My45LTMySDUyOGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1ODkuOSA2NCA1MjggNjRjLTE4IDAtMzQuNyA0LjYtNDkuNyAxMi4xQzQ1NCAzMSA0MDYuOCAwIDM1MiAwYy00MSAwLTc3LjggMTcuMy0xMDQgNDQuOEMyMjEuOCAxNy4zIDE4NSAwIDE0NCAwIDY0LjUgMCAwIDY0LjUgMCAxNDRzNjQuNSAxNDQgMTQ0IDE0NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbW9raW5nQmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMTE3LjVsLTk2LTk2SDExMmMtOC44IDAtMTYgNy4yLTE2IDE2djY0ek0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZzMTE0LjYgMjU2IDI1NiAyNTYgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMHptMCA0NDhjLTEwNS45IDAtMTkyLTg2LjEtMTkyLTE5MiAwLTQxLjQgMTMuMy03OS43IDM1LjctMTExLjFsMjY3LjQgMjY3LjRDMzM1LjcgNDM0LjcgMjk3LjQgNDQ4IDI1NiA0NDh6bTQ1LjItMTkySDM4NHYzMmgtNTAuOGwtMzItMzJ6bTExMS4xIDExMS4xTDM2NS4yIDMyMEg0MDBjOC44IDAgMTYtNy4yIDE2LTE2di02NGMwLTguOC03LjItMTYtMTYtMTZIMjY5LjJMMTQ0LjkgOTkuN0MxNzYuMyA3Ny4zIDIxNC42IDY0IDI1NiA2NGMxMDUuOSAwIDE5MiA4Ni4xIDE5MiAxOTIgMCA0MS40LTEzLjMgNzkuNy0zNS43IDExMS4xek0zMjAuNiAxMjhjLTE1LjYgMC0yOC42LTExLjItMzEuNC0yNS45LS43LTMuNi00LTYuMS03LjctNi4xaC0xNi4yYy01IDAtOC43IDQuNS04IDkuNCA0LjYgMzAuOSAzMS4yIDU0LjYgNjMuMyA1NC42IDE1LjYgMCAyOC42IDExLjIgMzEuNCAyNS45LjcgMy42IDQgNi4xIDcuNyA2LjFoMTYuMmM1IDAgOC43LTQuNSA4LTkuNC00LjYtMzAuOS0zMS4yLTU0LjYtNjMuMy01NC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtb2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMyIDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04ek01NTMuMyA4Ny4xYy01LjctMy44LTkuMy0xMC05LjMtMTYuOFY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY2Mi4zYzAgMjIgMTAuMiA0My40IDI4LjYgNTUuNCA0Mi4yIDI3LjMgNjcuNCA3My44IDY3LjQgMTI0VjI4MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di0zMC4zYzAtNjUuNS0zMi40LTEyNi4yLTg2LjctMTYyLjZ6TTQzMiAzNTJINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM4NGM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNnptLTMyIDExMkgyMjR2LTY0aDE3NnY2NHptODcuNy0zMjIuNEM0NjMuOCAxMjUgNDQ4IDk5LjMgNDQ4IDcwLjNWOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NjYuNGMwIDQzLjcgMjQuNiA4MS42IDYwLjMgMTA2LjcgMjIuNCAxNS43IDM1LjcgNDEuMiAzNS43IDY4LjZWMjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTMwLjNjMC00My4zLTIxLTgzLjQtNTYuMy0xMDguMXpNNTM2IDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuN0M0NC41IDQyMS4xIDIuNyA0NjYgMi4yIDQ2Ni41Yy0yLjIgMi4zLTIuOCA1LjctMS41IDguNyAxLjMgMyA0LjEgNC44IDcuMyA0LjggNjYuMyAwIDExNi0zMS44IDE0MC42LTUxLjQgMzIuNyAxMi4zIDY5IDE5LjQgMTA3LjQgMTkuNCAxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyek0xMjguMiAzMDRIMTE2Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMi4zYzYgMCAxMC40LTMuNSAxMC40LTYuNiAwLTEuMy0uOC0yLjctMi4xLTMuOGwtMjEuOS0xOC44Yy04LjUtNy4yLTEzLjMtMTcuNS0xMy4zLTI4LjEgMC0yMS4zIDE5LTM4LjYgNDIuNC0zOC42SDE1NmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4aC0xMi4zYy02IDAtMTAuNCAzLjUtMTAuNCA2LjYgMCAxLjMuOCAyLjcgMi4xIDMuOGwyMS45IDE4LjhjOC41IDcuMiAxMy4zIDE3LjUgMTMuMyAyOC4xLjEgMjEuMy0xOSAzOC42LTQyLjQgMzguNnptMTkxLjgtOGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LTh2LTY4LjJsLTI0LjggNTUuOGMtMi45IDUuOS0xMS40IDUuOS0xNC4zIDBMMjI0IDIyNy44VjI5NmMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWMTkyYzAtOC44IDcuMi0xNiAxNi0xNmgxNmM2LjEgMCAxMS42IDMuNCAxNC4zIDguOGwxNy43IDM1LjQgMTcuNy0zNS40YzIuNy01LjQgOC4zLTguOCAxNC4zLTguOGgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTA0em00OC4zIDhIMzU2Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMi4zYzYgMCAxMC40LTMuNSAxMC40LTYuNiAwLTEuMy0uOC0yLjctMi4xLTMuOGwtMjEuOS0xOC44Yy04LjUtNy4yLTEzLjMtMTcuNS0xMy4zLTI4LjEgMC0yMS4zIDE5LTM4LjYgNDIuNC0zOC42SDM5NmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4aC0xMi4zYy02IDAtMTAuNCAzLjUtMTAuNCA2LjYgMCAxLjMuOCAyLjcgMi4xIDMuOGwyMS45IDE4LjhjOC41IDcuMiAxMy4zIDE3LjUgMTMuMyAyOC4xLjEgMjEuMy0xOC45IDM4LjYtNDIuMyAzOC42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNub3dib2FyZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTNDU4LjUgMCA0MzIgMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em0yOC44IDE1My42YzUuOCA0LjMgMTIuNSA2LjQgMTkuMiA2LjQgOS43IDAgMTkuMy00LjQgMjUuNi0xMi44IDEwLjYtMTQuMSA3LjgtMzQuMi02LjQtNDQuOGwtMTExLjQtODMuNWMtMTMuOC0xMC4zLTI5LjEtMTguNC00NS40LTIzLjhsLTYzLjctMjEuMi0yNi4xLTUyLjFDMjQ0LjcgMiAyMjUuNS00LjQgMjA5LjcgMy41Yy0xNS44IDcuOS0yMi4yIDI3LjEtMTQuMyA0Mi45bDI5LjEgNTguMWM1LjcgMTEuNCAxNS42IDE5LjkgMjcuNyAyNGwxNi40IDUuNS00MS4yIDIwLjZjLTIxLjggMTAuOS0zNS40IDMyLjgtMzUuNCA1Ny4ydjUzLjFsLTc0LjEgMjQuN2MtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNSAxLjcgNS4yIDQuOSA5LjQgOC43IDEyLjlsLTM4LjctMTQuMWMtOS43LTMuNS0xNy40LTEwLjYtMjEuOC0yMC01LjYtMTItMTkuOS0xNy4yLTMxLjktMTEuNnMtMTcuMiAxOS45LTExLjYgMzEuOWM5LjggMjEgMjcuMSAzNi45IDQ4LjkgNDQuOGwzNjQuOCAxMzIuN2M5LjcgMy41IDE5LjcgNS4zIDI5LjcgNS4zIDEyLjUgMCAyNC45LTIuNyAzNi41LTguMiAxMi01LjYgMTcuMi0xOS45IDExLjYtMzEuOVM0NzQgNDU0LjcgNDYyIDQ2MC4zYy05LjMgNC40LTE5LjggNC44LTI5LjUgMS4zbC05MC44LTMzLjFjOC43LTQuMSAxNS42LTExLjggMTcuOC0yMS45bDIxLjktMTAyYzMuOS0xOC4yLTMuMi0zNy4yLTE4LjEtNDguNGwtNTItMzkgNjYtMzAuNSA4My41IDYyLjl6bS0xNDQuNCA1MS43bC0xOS43IDkyYy0xLjUgNy4xLS4xIDEzLjkgMi44IDIwbC0xNjkuNC02MS42YzIuNy0uMiA1LjQtLjQgOC0xLjNsODUtMjguNGMxOS42LTYuNSAzMi44LTI0LjggMzIuOC00NS41VjI1Nmw2MC41IDQ1LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd2ZsYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC4zIDM0NS4ybC0zMy44LTE5LjUgMjYtN2M4LjItMi4yIDEzLjEtMTAuNyAxMC45LTE4LjlsLTQtMTQuOWMtMi4yLTguMi0xMC43LTEzLjEtMTguOS0xMC45bC03MC44IDE5LTYzLjktMzcgNjMuOC0zNi45IDcwLjggMTljOC4yIDIuMiAxNi43LTIuNyAxOC45LTEwLjlsNC0xNC45YzIuMi04LjItMi43LTE2LjctMTAuOS0xOC45bC0yNi03IDMzLjgtMTkuNWM3LjQtNC4zIDkuOS0xMy43IDUuNy0yMS4xTDQzMC40IDExOWMtNC4zLTcuNC0xMy43LTkuOS0yMS4xLTUuN2wtMzMuOCAxOS41IDctMjZjMi4yLTguMi0yLjctMTYuNy0xMC45LTE4LjlsLTE0LjktNGMtOC4yLTIuMi0xNi43IDIuNy0xOC45IDEwLjlsLTE5IDcwLjgtNjIuOCAzNi4ydi03Ny41bDUzLjctNTMuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTEuMy0xMS4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgNTYuNFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDAuNGwtMTkuNy0xOS43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwxMzguMyA0OGMtNi4zIDYuMi02LjMgMTYuNCAwIDIyLjZsNTMuNyA1My43djc3LjVsLTYyLjgtMzYuMi0xOS03MC44Yy0yLjItOC4yLTEwLjctMTMuMS0xOC45LTEwLjlsLTE0LjkgNGMtOC4yIDIuMi0xMy4xIDEwLjctMTAuOSAxOC45bDcgMjYtMzMuOC0xOS41Yy03LjQtNC4zLTE2LjgtMS43LTIxLjEgNS43TDIuMSAxNDUuN2MtNC4zIDcuNC0xLjcgMTYuOCA1LjcgMjEuMWwzMy44IDE5LjUtMjYgN2MtOC4zIDIuMi0xMy4yIDEwLjctMTEgMTlsNCAxNC45YzIuMiA4LjIgMTAuNyAxMy4xIDE4LjkgMTAuOWw3MC44LTE5IDYzLjggMzYuOS02My44IDM2LjktNzAuOC0xOWMtOC4yLTIuMi0xNi43IDIuNy0xOC45IDEwLjlsLTQgMTQuOWMtMi4yIDguMiAyLjcgMTYuNyAxMC45IDE4LjlsMjYgNy0zMy44IDE5LjZjLTcuNCA0LjMtOS45IDEzLjctNS43IDIxLjFsMTUuNSAyNi44YzQuMyA3LjQgMTMuNyA5LjkgMjEuMSA1LjdsMzMuOC0xOS41LTcgMjZjLTIuMiA4LjIgMi43IDE2LjcgMTAuOSAxOC45bDE0LjkgNGM4LjIgMi4yIDE2LjctMi43IDE4LjktMTAuOWwxOS03MC44IDYyLjgtMzYuMnY3Ny41bC01My43IDUzLjdjLTYuMyA2LjItNi4zIDE2LjQgMCAyMi42bDExLjMgMTEuM2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwxOS43LTE5LjdWNDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTQwLjRsMTkuNyAxOS43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDExLjMtMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNkwyNTYgMzg3Ljd2LTc3LjVsNjIuOCAzNi4yIDE5IDcwLjhjMi4yIDguMiAxMC43IDEzLjEgMTguOSAxMC45bDE0LjktNGM4LjItMi4yIDEzLjEtMTAuNyAxMC45LTE4LjlsLTctMjYgMzMuOCAxOS41YzcuNCA0LjMgMTYuOCAxLjcgMjEuMS01LjdsMTUuNS0yNi44YzQuMy03LjMgMS44LTE2LjgtNS42LTIxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNub3dtYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjkgMTUyLjNsLTUuOS0xNC41Yy0zLjMtOC0xMi42LTExLjktMjAuOC04LjdMNDU2IDE0MC42di0yOWMwLTguNi03LjItMTUuNi0xNi0xNS42aC0xNmMtOC44IDAtMTYgNy0xNiAxNS42djQ2LjljMCAuNS4zIDEgLjMgMS41bC01Ni40IDIzYy01LjktMTAtMTMuMy0xOC45LTIyLTI2LjYgMTMuNi0xNi42IDIyLTM3LjQgMjItNjAuNSAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIzLjEgOC41IDQzLjkgMjIgNjAuNS04LjcgNy43LTE2IDE2LjYtMjIgMjYuNmwtNTYuNC0yM2MuMS0uNS4zLTEgLjMtMS41di00Ni45QzEwNCAxMDMgOTYuOCA5NiA4OCA5Nkg3MmMtOC44IDAtMTYgNy0xNiAxNS42djI5bC0yOC4xLTExLjVjLTguMi0zLjItMTcuNS43LTIwLjggOC43bC01LjkgMTQuNWMtMy4zIDggLjcgMTcuMSA4LjkgMjAuM2wxMzUuMiA1NS4yYy0uNCA0LTEuMiA4LTEuMiAxMi4yIDAgMTAuMSAxLjcgMTkuNiA0LjIgMjguOUMxMjAuOSAyOTYuNCAxMDQgMzM0LjIgMTA0IDM3NmMwIDU0IDI4LjQgMTAwLjkgNzAuOCAxMjcuOCA5LjMgNS45IDIwLjMgOC4yIDMxLjMgOC4yaDk5LjJjMTMuMyAwIDI2LjMtNC4xIDM3LjItMTEuNyA0Ni41LTMyLjMgNzQuNC04OS40IDYyLjktMTUyLjYtNS41LTMwLjItMjAuNS01Ny42LTQxLjYtNzkgMi41LTkuMiA0LjItMTguNyA0LjItMjguNyAwLTQuMi0uOC04LjEtMS4yLTEyLjJMNTAyIDE3Mi42YzguMS0zLjEgMTIuMS0xMi4yIDguOS0yMC4zek0yMjQgOTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMzIgMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTAtNjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMC02NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTg4cy0xNi0yMy4yLTE2LTMyIDcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtMTYgMzItMTYgMzJ6bTMyLTU2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd3Bsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwIDM3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bTIzOC42IDQ5LjRjLTE0LjUtMTQuNS0yMi42LTM0LjEtMjIuNi01NC42VjI2OS4yYzAtMjAuNSA4LjEtNDAuMSAyMi42LTU0LjZsMzYuNy0zNi43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0yMi42LTIyLjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjdjLTI2LjUgMjYuNS00MS40IDYyLjQtNDEuNCA5OS45VjI4OGgtNjR2LTUwLjljMC04LjctMS44LTE3LjItNS4yLTI1LjJMMzY0LjUgMjkuMUMzNTYuOSAxMS40IDMzOS42IDAgMzIwLjMgMEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djExMmgtMTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djkxLjJDMjYuMyAzMTcuMiAwIDM1NS40IDAgNDAwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyaDI1NmM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTE3LjMtNC4yLTMzLjQtMTEuMi00OEg1MTJ2MTguN2MwIDM3LjUgMTQuOSA3My40IDQxLjQgOTkuOWwzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjIuNi0yMi42YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2Ljd6TTE5MiA2NGgxMTcuOGw2OC42IDE2MEgyNTZsLTY0LTY0VjY0em0xNzYgMzg0SDExMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGgyNTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYsMTkyYTk1LjQyLDk1LjQyLDAsMCwxLTMwLjk0LDcwLjIxQTk1LjgsOTUuOCwwLDAsMSwzNTIsNDQ4SDE2MGE5Niw5NiwwLDAsMSwwLTE5Mmg4OC45MUE5NS4zLDk1LjMsMCwwLDEsMjI0LDE5Mkg5NkE5Niw5NiwwLDAsMCwwLDI4OFY0MTZhOTYsOTYsMCwwLDAsOTYsOTZINDE2YTk2LDk2LDAsMCwwLDk2LTk2VjI4OEE5Niw5NiwwLDAsMCw0MTYsMTkyWm0tOTYsNjRhNjQsNjQsMCwxLDAtNjQtNjRBNjQsNjQsMCwwLDAsMzIwLDI1NlpNMjA4LDk2YTQ4LDQ4LDAsMSwwLTQ4LTQ4QTQ4LDQ4LDAsMCwwLDIwOCw5NlpNMzg0LDY0YTMyLDMyLDAsMSwwLTMyLTMyQTMyLDMyLDAsMCwwLDM4NCw2NFpNMTYwLDI4OGE2NCw2NCwwLDAsMCwwLDEyOEgzNTJhNjQsNjQsMCwwLDAsMC0xMjhaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ja3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE0LjY2IDMxMS4wMUwyODggMjU2Vjk2SDEyOHYxNzZsLTg2LjY1IDY0LjYxYy0zOS40IDI5LjU2LTUzLjg2IDg0LjQyLTI5LjIxIDEyNy4wNkMzMC4zOSA0OTUuMjUgNjMuMjcgNTEyIDk2LjA4IDUxMmMyMC4wMyAwIDQwLjI1LTYuMjUgNTcuNTItMTkuMmwyMS44Ni0xNi4zOWMtMjkuODUtNTUuMzgtMTMuNTQtMTI1Ljg0IDM5LjItMTY1LjR6TTI4OCAzMmMwLTExLjA1IDMuMDctMjEuMyA4LjAyLTMwLjM4QzI5My40LjkyIDI5MC44NSAwIDI4OCAwSDE2MGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgxNjBWMzJ6TTQ4MCAwSDM1MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgxOTJWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMzIwIDI3MmwtODYuMTMgNjQuNjFjLTM5LjQgMjkuNTYtNTMuODYgODQuNDItMjkuMjEgMTI3LjA2IDE4LjI1IDMxLjU4IDUwLjYxIDQ4LjMzIDgzLjQyIDQ4LjMzIDIwLjAzIDAgNDAuMjUtNi4yNSA1Ny41Mi0xOS4ybDExNS4yLTg2LjRBMTI3Ljk5NyAxMjcuOTk3IDAgMCAwIDUxMiAzMDRWOTZIMzIwdjE3NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb2xhclBhbmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMS45OCA0NDguMDFsLTQ3Ljk3LjA1VjQxNmgtMTI4djMyLjIxbC00Ny45OC4wNWMtOC44Mi4wMS0xNS45NyA3LjE2LTE1Ljk4IDE1Ljk5bC0uMDUgMzEuNzNjLS4wMSA4Ljg1IDcuMTcgMTYuMDMgMTYuMDIgMTYuMDJsMjIzLjk2LS4yNmM4LjgyLS4wMSAxNS45Ny03LjE2IDE1Ljk4LTE1Ljk4bC4wNC0zMS43M2MuMDEtOC44NS03LjE3LTE2LjAzLTE2LjAyLTE2LjAyek01ODUuMiAyNi43NEM1ODIuNTggMTEuMzEgNTY4Ljk5IDAgNTUzLjA2IDBIODYuOTNDNzEgMCA1Ny40MSAxMS4zMSA1NC43OSAyNi43NC0zLjMyIDM2OS4xNi4wNCAzNDguMDguMDMgMzUyYy0uMDMgMTcuMzIgMTQuMjkgMzIgMzIuNiAzMmg1NzQuNzRjMTguMjMgMCAzMi41MS0xNC41NiAzMi41OS0zMS43OS4wMi00LjA4IDMuMzUgMTYuOTUtNTQuNzYtMzI1LjQ3ek0yNTkuODMgNjRoMTIwLjMzbDkuNzcgOTZIMjUwLjA2bDkuNzctOTZ6bS03NS4xNyAyNTZINzEuMDlMOTAuMSAyMDhoMTA1Ljk3bC0xMS40MSAxMTJ6bTE2LjI5LTE2MEg5OC4yNGwxNi4yOS05Nmg5Ni4xOWwtOS43NyA5NnptMzIuODIgMTYwbDExLjQtMTEyaDE0OS42NWwxMS40IDExMkgyMzMuNzd6bTE5NS41LTI1Nmg5Ni4xOWwxNi4yOSA5Nkg0MzkuMDRsLTkuNzctOTZ6bTI2LjA2IDI1NmwtMTEuNC0xMTJINTQ5LjlsMTkuMDEgMTEySDQ1NS4zM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QWxwaGFEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAzNTJoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNiAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyem0xMTItMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiA2NS42M1Y0OGExNiAxNiAwIDAgMC0xNi0xNkgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiAxOTAuMzdWMjA4YTE2IDE2IDAgMCAwIDE2IDE2em0xNTkuMDYgMjM0LjYybC01OS4yNy0xNjBBMTYgMTYgMCAwIDAgMzcyLjcyIDI4OGgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgNDgwaDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgNDgwSDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDQwMEwzNTIgMzUybDE2LjM5IDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbHBoYURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1MmgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM2IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6bTI0MC02NEgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiA0NDYuMzdWNDY0YTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiAzMjEuNjNWMzA0YTE2IDE2IDAgMCAwLTE2LTE2em0zMS4wNi04NS4zOGwtNTkuMjctMTYwQTE2IDE2IDAgMCAwIDM3Mi43MiAzMmgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgMjI0aDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgMjI0SDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDE0NEwzNTIgOTZsMTYuMzkgNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydEFscGhhVXBBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOC0xNy4yNCAxMS4zMS0yNy4zMWwtODAtOTZhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MHptMjcyIDY0aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiA2NS42M1Y0OGExNiAxNiAwIDAgMC0xNi0xNkgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiAxOTAuMzdWMjA4YTE2IDE2IDAgMCAwIDE2IDE2em0xNTkuMDYgMjM0LjYybC01OS4yNy0xNjBBMTYgMTYgMCAwIDAgMzcyLjcyIDI4OGgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgNDgwaDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgNDgwSDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDQwMEwzNTIgMzUybDE2LjM5IDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbHBoYVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzFsLTgwLTk2YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjB6bTQwMCAxMjhIMjg4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDU2bC02MS4yNiA3MC40NUEzMiAzMiAwIDAgMCAyNzIgNDQ2LjM3VjQ2NGExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC01Nmw2MS4yNi03MC40NUEzMiAzMiAwIDAgMCA0MzIgMzIxLjYzVjMwNGExNiAxNiAwIDAgMC0xNi0xNnptMzEuMDYtODUuMzhsLTU5LjI3LTE2MEExNiAxNiAwIDAgMCAzNzIuNzIgMzJoLTQxLjQ0YTE2IDE2IDAgMCAwLTE1LjA3IDEwLjYybC01OS4yNyAxNjBBMTYgMTYgMCAwIDAgMjcyIDIyNGgyNC44M2ExNiAxNiAwIDAgMCAxNS4yMy0xMS4wOGw0LjQyLTEyLjkyaDcxbDQuNDEgMTIuOTJBMTYgMTYgMCAwIDAgNDA3LjE2IDIyNEg0MzJhMTYgMTYgMCAwIDAgMTUuMDYtMjEuMzh6TTMzNS42MSAxNDRMMzUyIDk2bDE2LjM5IDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbW91bnREb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA5Nmg2NGExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTAgMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0yNTYgMTkySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMjU2LTY0aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0tNjQgMGgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM3IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydEFtb3VudERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDQxNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMTI4LTY0aC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzcgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnptMjU2LTE5MkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTY0IDEyOEgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNNDk2IDMySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydEFtb3VudFVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA5Nmg2NGExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTAgMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0yNTYgMTkySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMjU2LTY0aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2ek0xNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM5LTE3LjI0IDExLjMxLTI3LjMxbC04MC05NmExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43OCAxNjAgMTYgMTYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbW91bnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgNDE2aC02NGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzFsLTgwLTk2YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc3IDE2MCAxNiAxNjB6bTQxNiAwSDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tNjQgMTI4SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek00OTYgMzJIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI1NmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MSAyODhoMjM4YzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMMTc3IDQ0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMjQgMzI5Yy0xNS4xLTE1LjEtNC40LTQxIDE3LTQxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnROdW1lcmljRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMzUyaC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzYgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnptMjI0IDY0aC0xNlYzMDRhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCAzNTJoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMzMwLjE3IDM0LjkxYTc5IDc5IDAgMCAwLTU1IDU0LjE3Yy0xNC4yNyA1MS4wNSAyMS4xOSA5Ny43NyA2OC44MyAxMDIuNTNhODQuMDcgODQuMDcgMCAwIDEtMjAuODUgMTIuOTFjLTcuNTcgMy40LTEwLjggMTIuNDctOC4xOCAyMC4zNGw5LjkgMjBjMi44NyA4LjYzIDEyLjUzIDEzLjQ5IDIwLjkgOS45MSA1OC0yNC43NyA4Ni4yNS02MS42MSA4Ni4yNS0xMzJWMTEyYy0uMDItNTEuMjEtNDguNC05MS4zNC0xMDEuODUtNzcuMDl6TTM1MiAxMzJhMjAgMjAgMCAxIDEgMjAtMjAgMjAgMjAgMCAwIDEtMjAgMjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydE51bWVyaWNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCA5NmgxNnY2NGgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgMzA0IDk2em0yNi4xNSAxNjIuOTFhNzkgNzkgMCAwIDAtNTUgNTQuMTdjLTE0LjI1IDUxLjA1IDIxLjIxIDk3Ljc3IDY4Ljg1IDEwMi41M2E4NC4wNyA4NC4wNyAwIDAgMS0yMC44NSAxMi45MWMtNy41NyAzLjQtMTAuOCAxMi40Ny04LjE4IDIwLjM0bDkuOSAyMGMyLjg3IDguNjMgMTIuNTMgMTMuNDkgMjAuOSA5LjkxIDU4LTI0Ljc2IDg2LjI1LTYxLjYxIDg2LjI1LTEzMlYzMzZjLS4wMi01MS4yMS00OC40LTkxLjM0LTEwMS44NS03Ny4wOXpNMzUyIDM1NmEyMCAyMCAwIDEgMSAyMC0yMCAyMCAyMCAwIDAgMS0yMCAyMHptLTE3Ni00aC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzYgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0TnVtZXJpY1VwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNy4zMSAzNi42OWExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43OCAxNjAgMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOC0xNy4yNCAxMS4zMS0yNy4zMXpNNDAwIDQxNmgtMTZWMzA0YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCAzMDQgMzUyaDE2djY0aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTMzMC4xNyAzNC45MWE3OSA3OSAwIDAgMC01NSA1NC4xN2MtMTQuMjcgNTEuMDUgMjEuMTkgOTcuNzcgNjguODMgMTAyLjUzYTg0LjA3IDg0LjA3IDAgMCAxLTIwLjg1IDEyLjkxYy03LjU3IDMuNC0xMC44IDEyLjQ3LTguMTggMjAuMzRsOS45IDIwYzIuODcgOC42MyAxMi41MyAxMy40OSAyMC45IDkuOTEgNTgtMjQuNzcgODYuMjUtNjEuNjEgODYuMjUtMTMyVjExMmMtLjAyLTUxLjIxLTQ4LjQtOTEuMzQtMTAxLjg1LTc3LjA5ek0zNTIgMTMyYTIwIDIwIDAgMSAxIDIwLTIwIDIwIDIwIDAgMCAxLTIwIDIwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnROdW1lcmljVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMwLjE3IDI1OC45MWE3OSA3OSAwIDAgMC01NSA1NC4xN2MtMTQuMjcgNTEuMDUgMjEuMTkgOTcuNzcgNjguODMgMTAyLjUzYTg0LjA3IDg0LjA3IDAgMCAxLTIwLjg1IDEyLjkxYy03LjU3IDMuNC0xMC44IDEyLjQ3LTguMTggMjAuMzRsOS45IDIwYzIuODcgOC42MyAxMi41MyAxMy40OSAyMC45IDkuOTEgNTgtMjQuNzYgODYuMjUtNjEuNjEgODYuMjUtMTMyVjMzNmMtLjAyLTUxLjIxLTQ4LjQtOTEuMzQtMTAxLjg1LTc3LjA5ek0zNTIgMzU2YTIwIDIwIDAgMSAxIDIwLTIwIDIwIDIwIDAgMCAxLTIwIDIwek0zMDQgOTZoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCA5NnpNMTA3LjMxIDM2LjY5YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzkgMjI0SDQxYy0yMS40IDAtMzIuMS0yNS45LTE3LTQxTDE0MyA2NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMTkgMTE5YzE1LjIgMTUuMSA0LjUgNDEtMTYuOSA0MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxIDI4OGgyMzhjMjEuNCAwIDMyLjEgMjUuOSAxNyA0MUwxNzcgNDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwyNCAzMjljLTE1LjEtMTUuMS00LjQtNDEgMTctNDF6bTI1NS0xMDVMMTc3IDY0Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwyNCAxODNjLTE1LjEgMTUuMS00LjQgNDEgMTcgNDFoMjM4YzIxLjQgMCAzMi4xLTI1LjkgMTctNDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OC4yNSAxOTJjLTI5LjA0LjEzLTEzNS4wMSA2LjE2LTIxMy44NCA4My0zMy4xMiAyOS42My01My4zNiA2My4zLTY2LjQxIDk0Ljg2LTEzLjA1LTMxLjU2LTMzLjI5LTY1LjIzLTY2LjQxLTk0Ljg2LTc4LjgzLTc2Ljg0LTE4NC44LTgyLjg3LTIxMy44NC04My00LjQxLS4wMi03Ljc5IDMuNC03Ljc1IDcuODIuMjMgMjcuOTIgNy4xNCAxMjYuMTQgODguNzcgMTk5LjNDMTcyLjc5IDQ4MC45NCAyNTYgNDgwIDI4OCA0ODBzMTE1LjE5Ljk1IDE5OS4yMy04MC44OGM4MS42NC03My4xNyA4OC41NC0xNzEuMzggODguNzctMTk5LjMuMDQtNC40Mi0zLjM0LTcuODQtNy43NS03Ljgyek0yODcuOTggMzAyLjZjMTIuODItMTguODUgMjcuNi0zNS43OCA0NC4wOS01MC41MiAxOS4wOS0xOC42MSAzOS41OC0zMy4zIDYwLjI2LTQ1LjE4LTE2LjQ0LTcwLjUtNTEuNzItMTMzLjA1LTk2LjczLTE3Mi4yMi00LjExLTMuNTgtMTEuMDItMy41OC0xNS4xNCAwLTQ0Ljk5IDM5LjE0LTgwLjI3IDEwMS42My05Ni43NCAxNzIuMDcgMjAuMzcgMTEuNyA0MC41IDI2LjE0IDU5LjIyIDQ0LjM5YTI4Mi43NjggMjgyLjc2OCAwIDAgMSA0NS4wNCA1MS40NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGFjZVNodXR0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkyLjYwNCAyMDguMjQ0QzU1OS43MzUgMTkyLjgzNiA1MTUuNzc3IDE4NCA0NzIgMTg0SDE4Ni4zMjdjLTQuOTUyLTYuNTU1LTEwLjU4NS0xMS45NzgtMTYuNzItMTZIMzc2QzIyOS4xNTcgMTM3Ljc0NyAyMTkuNDAzIDMyIDk2LjAwMyAzMkg5NnYxMjhIODBWMzJjLTI2LjUxIDAtNDggMjguNjU0LTQ4IDY0djY0Yy0yMy4xOTcgMC0zMiAxMC4wMzItMzIgMjR2NDBjMCAxMy45ODMgOC44MTkgMjQgMzIgMjR2MTZjLTIzLjE5NyAwLTMyIDEwLjAzMi0zMiAyNHY0MGMwIDEzLjk4MyA4LjgxOSAyNCAzMiAyNHY2NGMwIDM1LjM0NiAyMS40OSA2NCA0OCA2NFYzNTJoMTZ2MTI4aC4wMDNjMTIzLjQgMCAxMzMuMTU0LTEwNS43NDcgMjc5Ljk5Ny0xMzZIMTY5LjYwNmM2LjEzNS00LjAyMiAxMS43NjgtOS40NDUgMTYuNzItMTZINDcyYzQzLjc3NyAwIDg3LjczNS04LjgzNiAxMjAuNjA0LTI0LjI0NEM2MjIuMjgyIDI4OS44NDUgNjQwIDI3MS45OTIgNjQwIDI1NnMtMTcuNzE4LTMzLjg0NS00Ny4zOTYtNDcuNzU2ek00ODggMjk2YTggOCAwIDAgMS04LTh2LTY0YTggOCAwIDAgMSA4LThjMzEuOTA5IDAgMzEuOTQyIDgwIDAgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BlbGxDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIgMjU2aDkxLjM2YzQzLjIgMCA4Mi0zMi4yIDg0LjUxLTc1LjM0YTc5LjgyIDc5LjgyIDAgMCAwLTI1LjI2LTYzLjA3IDc5LjgxIDc5LjgxIDAgMCAwIDkuMDYtNDQuOTFDNDI3LjkgMzAuNTcgMzg5LjMgMCAzNDcgMGgtNzVhMTYgMTYgMCAwIDAtMTYgMTZ2MjI0YTE2IDE2IDAgMCAwIDE2IDE2em00MC0yMDBoNDBhMjQgMjQgMCAwIDEgMCA0OGgtNDB6bTAgOTZoNTZhMjQgMjQgMCAwIDEgMCA0OGgtNTZ6TTE1NS4xMiAyMi4yNUEzMiAzMiAwIDAgMCAxMjQuNjQgMEg5OS4zNmEzMiAzMiAwIDAgMC0zMC40OCAyMi4yNUwuNTkgMjM1LjczQTE2IDE2IDAgMCAwIDE2IDI1NmgyNC45M2ExNiAxNiAwIDAgMCAxNS40Mi0xMS43M0w2OC4yOSAyMDhoODcuNDJsMTEuOTQgMzYuMjdBMTYgMTYgMCAwIDAgMTgzLjA3IDI1NkgyMDhhMTYgMTYgMCAwIDAgMTUuNDItMjAuMjd6TTg5LjM3IDE0NEwxMTIgNzUuM2wyMi42MyA2OC43em00ODIgMTMyLjQ4bC00NS4yMS00NS4zYTE1Ljg4IDE1Ljg4IDAgMCAwLTIyLjU5IDBsLTE1MS41IDE1MS41LTU1LjQxLTU1LjVhMTUuODggMTUuODggMCAwIDAtMjIuNTkgMGwtNDUuMyA0NS4zYTE2IDE2IDAgMCAwIDAgMjIuNTlsMTEyIDExMi4yMWExNS44OSAxNS44OSAwIDAgMCAyMi42IDBsMjA4LTIwOC4yMWExNiAxNiAwIDAgMC0uMDItMjIuNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BpZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MS4xNyAxNjcuMzVMMTc3LjEgMTc2aDQuNjdsNS4yMi0yNi4xMmMuNzItMy41OCAxLjgtNy41OCAzLjIxLTExLjc5bC0yMC4yOS00MC41OCAyMy44LTcxLjM5YzIuNzktOC4zOC0xLjczLTE3LjQ0LTEwLjEyLTIwLjI0TDE2OC40Mi44MmMtOC4zOC0yLjgtMTcuNDUgMS43My0yMC4yNCAxMC4xMmwtMjUuODkgNzcuNjhhMzIuMDQgMzIuMDQgMCAwIDAgMS43MyAyNC40M2wyNy4xNSA1NC4zem00MjIuMTQgMTgyLjAzbC01Mi43NS03OS4xMmEzMi4wMDIgMzIuMDAyIDAgMCAwLTI2LjYyLTE0LjI1SDQxNmw2OC45OS0yNC4zNmEzMi4wMyAzMi4wMyAwIDAgMCAxNi41MS0xMi42MWw1My42LTgwLjQxYzQuOS03LjM1IDIuOTEtMTcuMjktNC40NC0yMi4xOWwtMTMuMzEtOC44OGMtNy4zNS00LjktMTcuMjktMi45MS0yMi4xOSA0LjQ0bC01MC41NiA3NS44M0w0MDQuMSAyMDhIMzY4bC0xMC4zNy01MS44NUMzNTUuNDQgMTQ1LjE4IDM0MC4yNiA5NiAyODggOTZjLTUyLjI2IDAtNjcuNDQgNDkuMTgtNjkuNjMgNjAuMTVMMjA4IDIwOGgtMzYuMWwtNjAuNDktMjAuMTdMNjAuODQgMTEyYy00LjktNy4zNS0xNC44My05LjM0LTIyLjE5LTQuNDRsLTEzLjMxIDguODhjLTcuMzUgNC45LTkuMzQgMTQuODMtNC40NCAyMi4xOWw1My42IDgwLjQxYTMyLjAzIDMyLjAzIDAgMCAwIDE2LjUxIDEyLjYxTDE2MCAyNTZIODIuMDZhMzIuMDIgMzIuMDIgMCAwIDAtMjYuNjMgMTQuMjVMMi42OSAzNDkuMzhjLTQuOSA3LjM1LTIuOTIgMTcuMjkgNC40NCAyMi4xOWwxMy4zMSA4Ljg4YzcuMzUgNC45IDE3LjI5IDIuOTEgMjIuMTktNC40NGw0OC03Mmg0Ny4wNmwtNjAuODMgOTcuMzNBMzEuOTg4IDMxLjk4OCAwIDAgMCA3MiA0MTguM1Y0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTczLjExbDc0LjA4LTExOC41M2MtMS4wMSAxNC4wNS0yLjA4IDI4LjExLTIuMDggNDIuMjFDMTkyIDM5OS42NCAyMzIuNzYgNDQ4IDI4OCA0NDhzOTYtNDguMzYgOTYtMTAxLjQzYzAtMTQuMS0xLjA4LTI4LjE2LTIuMDgtNDIuMjFMNDU2IDQyMi44OVY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTc3LjcxYzAtNi0xLjY5LTExLjg4LTQuODYtMTYuOTZMNDM4LjMxIDMwNGg0Ny4wNmw0OCA3MmM0LjkgNy4zNSAxNC44NCA5LjM0IDIyLjE5IDQuNDRsMTMuMzEtOC44OGM3LjM2LTQuOSA5LjM0LTE0LjgzIDQuNDQtMjIuMTh6TTQwNi4wOSA5Ny41MWwtMjAuMjkgNDAuNThjMS40MSA0LjIxIDIuNDkgOC4yMSAzLjIxIDExLjc5bDUuMjIgMjYuMTJoNC42N2wyNS45My04LjY1IDI3LjE1LTU0LjNhMzEuOTk1IDMxLjk5NSAwIDAgMCAxLjczLTI0LjQzbC0yNS44OS03Ny42OEM0MjUuMDMgMi41NiA0MTUuOTYtMS45OCA0MDcuNTguODJsLTE1LjE3IDUuMDZjLTguMzggMi44LTEyLjkxIDExLjg2LTEwLjEyIDIwLjI0bDIzLjggNzEuMzl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Bpbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgNDhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDggMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDh6bS00OCAzNjhjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6bTIwOC0yMDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6TTk2IDI1NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4UzAgMjI5LjQ5IDAgMjU2czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4em0xMi45MjIgOTkuMDc4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4YzAtMjYuNTA5LTIxLjQ5MS00OC00OC00OHptMjk0LjE1NiAwYy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4YzAtMjYuNTA5LTIxLjQ5LTQ4LTQ4LTQ4ek0xMDguOTIyIDYwLjkyMmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OTEtNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Bsb3RjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzIuMjkgMTk1Ljg5bC02Ny4wNi0yMi45NWMtMTkuMjgtNi42LTMzLjU0LTIwLjkyLTM4LjE0LTM4LjNMMzUxLjEgNzQuMTljLTExLjU4LTQzLjc3LTc2LjU3LTU3LjEzLTEwOS45OC0yMi42MmwtNDYuMTQgNDcuNjdjLTEzLjI2IDEzLjcxLTMzLjU0IDIwLjkzLTU0LjIgMTkuMzFsLTcxLjg4LTUuNjJjLTUyLjA1LTQuMDctODYuOTMgNDQuODgtNTkuMDMgODIuODNsMzguNTQgNTIuNDJjMTEuMDggMTUuMDcgMTIuODIgMzMuODYgNC42NCA1MC4yNEwyNC42MiAzNTUuNGMtMjAuNTkgNDEuMjUgMjIuODQgODQuODcgNzMuNDkgNzMuODFsNjkuOTYtMTUuMjhjMjAuMTEtNC4zOSA0MS40NSAwIDU3LjA3IDExLjczbDU0LjMyIDQwLjgzYzM5LjMyIDI5LjU2IDEwMS4wNCA3LjU3IDEwNC40NS0zNy4yMmw0LjctNjEuODZjMS4zNS0xNy43OSAxMi44LTMzLjg2IDMwLjYzLTQyLjk5bDYyLTMxLjc0YzQ0Ljg4LTIyLjk2IDM5LjU5LTgwLjE3LTguOTUtOTYuNzl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3ByYXlDYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2aDEyOFYzMnptMjU2IDk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem0tMjU2IDMySDk2Yy01My4wMiAwLTk2IDQyLjk4LTk2IDk2djIyNGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDI1NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI1NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2em0tNjQgMjU2Yy00NC4xOCAwLTgwLTM1LjgyLTgwLTgwczM1LjgyLTgwIDgwLTgwIDgwIDM1LjgyIDgwIDgwLTM1LjgyIDgwLTgwIDgwek00ODAgOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnMtMTQuMzMtMzItMzItMzItMzIgMTQuMzMtMzIgMzIgMTQuMzMgMzIgMzIgMzJ6bS05NiAzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMiAzMi0xNC4zMyAzMi0zMi0xNC4zMy0zMi0zMi0zMnptLTk2LTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem05NiAwYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem05NiAxOTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgNTEySDBWMGg1MTJ2NTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVJvb3RBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTcxLjMxIDI1MS4zMWwtMjIuNjItMjIuNjJjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBMNDgwIDI3NC43NWwtNDYuMDYtNDYuMDZjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTIyLjYyIDIyLjYyYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzTDQzNC43NSAzMjBsLTQ2LjA2IDQ2LjA2Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBMNDgwIDM2NS4yNWw0Ni4wNiA0Ni4wNmM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDIyLjYyLTIyLjYyYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMNTI1LjI1IDMyMGw0Ni4wNi00Ni4wNmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzek01NTIgMEgzMDcuNjVjLTE0LjU0IDAtMjcuMjYgOS44LTMwLjk1IDIzLjg3bC04NC43OSAzMjIuOC01OC40MS0xMDYuMUEzMi4wMDggMzIuMDA4IDAgMCAwIDEwNS40NyAyMjRIMjRjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2NDhjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg0My42Mmw4OC44OCAxNjMuNzNDMTY4Ljk5IDUwMy41IDE4Ni4zIDUxMiAyMDQuOTQgNTEyYzE3LjI3IDAgNDQuNDQtOSA1NC4yOC00MS40OEwzNTcuMDMgOTZINTUyYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRWMjRjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA1MTJoNDQ4di02NEgzMnY2NHptMzg0LTI1NmgtNjYuNTZjLTE2LjI2IDAtMjkuNDQtMTMuMTgtMjkuNDQtMjkuNDR2LTkuNDZjMC0yNy4zNyA4Ljg4LTUzLjQxIDIxLjQ2LTc3LjcyIDkuMTEtMTcuNjEgMTIuOS0zOC4zOSA5LjA1LTYwLjQyLTYuNzctMzguNzgtMzguNDctNzAuNy03Ny4yNi03Ny40NUMyMTIuNjItOS4wNCAxNjAgMzcuMzMgMTYwIDk2YzAgMTQuMTYgMy4xMiAyNy41NCA4LjY5IDM5LjU4QzE4Mi4wMiAxNjQuNDMgMTkyIDE5NC43IDE5MiAyMjYuNDl2LjA3YzAgMTYuMjYtMTMuMTggMjkuNDQtMjkuNDQgMjkuNDRIOTZjLTUzLjAyIDAtOTYgNDIuOTgtOTYgOTZ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC01My4wMi00Mi45OC05Ni05Ni05NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyQW5kQ3Jlc2NlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQwLjQ3IDQ2Ni4zNmMtMS40NSAwLTYuODkuNDYtOS4xOC40Ni0xMTYuMjUgMC0yMTAuODItOTQuNTctMjEwLjgyLTIxMC44MlMyMTUuMDQgNDUuMTggMzMxLjI5IDQ1LjE4YzIuMzIgMCA3LjcuNDYgOS4xOC40NiA3LjEzIDAgMTMuMzMtNS4wMyAxNC43NS0xMi4wNyAxLjQ2LTcuMjUtMi41NS0xNC40OS05LjQ3LTE3LjA5QzMxNi41OCA1LjU0IDI4Ni4zOSAwIDI1NiAwIDExNC44NCAwIDAgMTE0Ljg0IDAgMjU2czExNC44NCAyNTYgMjU2IDI1NmMzMC4yMyAwIDYwLjI4LTUuNDkgODkuMzItMTYuMzIgNS45Ni0yLjAyIDEwLjI4LTcuNjQgMTAuMjgtMTQuMjYgMC04LjA5LTYuMzktMTUuMDYtMTUuMTMtMTUuMDZ6bTE2Mi45OS0yNTIuNWwtNzYuMzgtMTEuMS0zNC4xNi02OS4yMWMtMS44My0zLjctNS4zOC01LjU1LTguOTMtNS41NXMtNy4xIDEuODUtOC45MyA1LjU1bC0zNC4xNiA2OS4yMS03Ni4zOCAxMS4xYy04LjE3IDEuMTgtMTEuNDMgMTEuMjItNS41MiAxNi45OWw1NS4yNyA1My44Ny0xMy4wNSA3Ni4wN2MtMS4xMSA2LjQ0IDQuMDEgMTEuNjYgOS44MSAxMS42NiAxLjUzIDAgMy4xMS0uMzYgNC42NC0xLjE3TDM4NCAzMzUuMzdsNjguMzEgMzUuOTFjMS41My44IDMuMTEgMS4xNyA0LjY0IDEuMTcgNS44IDAgMTAuOTItNS4yMyA5LjgxLTExLjY2bC0xMy4wNS03Ni4wNyA1NS4yNy01My44N2M1LjkxLTUuNzcgMi42NS0xNS44MS01LjUyLTE2Ljk5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJIYWxmQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwOC41NSAxNzEuNTFMMzYyLjE4IDE1MC4yIDI5Ni43NyAxNy44MUMyOTAuODkgNS45OCAyNzkuNDIgMCAyNjcuOTUgMGMtMTEuNCAwLTIyLjc5IDUuOS0yOC42OSAxNy44MWwtNjUuNDMgMTMyLjM4LTE0Ni4zOCAyMS4yOWMtMjYuMjUgMy44LTM2Ljc3IDM2LjA5LTE3Ljc0IDU0LjU5bDEwNS44OSAxMDMtMjUuMDYgMTQ1LjQ4Qzg2Ljk4IDQ5NS4zMyAxMDMuNTcgNTEyIDEyMi4xNSA1MTJjNC45MyAwIDEwLTEuMTcgMTQuODctMy43NWwxMzAuOTUtNjguNjggMTMwLjk0IDY4LjdjNC44NiAyLjU1IDkuOTIgMy43MSAxNC44MyAzLjcxIDE4LjYgMCAzNS4yMi0xNi42MSAzMS42Ni0zNy40bC0yNS4wMy0xNDUuNDkgMTA1LjkxLTEwMi45OGMxOS4wNC0xOC41IDguNTItNTAuOC0xNy43My01NC42em0tMTIxLjc0IDEyMy4ybC0xOC4xMiAxNy42MiA0LjI4IDI0Ljg4IDE5LjUyIDExMy40NS0xMDIuMTMtNTMuNTktMjIuMzgtMTEuNzQuMDMtMzE3LjE5IDUxLjAzIDEwMy4yOSAxMS4xOCAyMi42MyAyNS4wMSAzLjY0IDExNC4yMyAxNi42My04Mi42NSA4MC4zOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtMTEuNCAwLTIyLjggNS45LTI4LjcgMTcuOEwxOTQgMTUwLjIgNDcuOSAxNzEuNGMtMjYuMiAzLjgtMzYuNyAzNi4xLTE3LjcgNTQuNmwxMDUuNyAxMDMtMjUgMTQ1LjVjLTQuNSAyNi4xIDIzIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZWMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyT2ZEYXZpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDY0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDUuNjggMjU2bDUzLjIxLTg5LjM5QzQ3My4zIDE0Mi40IDQ1NS40OCAxMTIgNDI2Ljg4IDExMkgzMTkuOTZsLTU1Ljk1LTkzLjk4QzI1Ni44NiA2LjAxIDI0NC40MyAwIDIzMiAwcy0yNC44NiA2LjAxLTMyLjAxIDE4LjAyTDE0NC4wNCAxMTJIMzcuMTFjLTI4LjYgMC00Ni40MiAzMC40LTMyLjAxIDU0LjYxTDU4LjMyIDI1NiA1LjEgMzQ1LjM5Qy05LjMxIDM2OS42IDguNTEgNDAwIDM3LjExIDQwMGgxMDYuOTNsNTUuOTUgOTMuOThDMjA3LjE0IDUwNS45OSAyMTkuNTcgNTEyIDIzMiA1MTJzMjQuODYtNi4wMSAzMi4wMS0xOC4wMkwzMTkuOTYgNDAwaDEwNi45M2MyOC42IDAgNDYuNDItMzAuNCAzMi4wMS01NC42MUw0MDUuNjggMjU2em0tMTIuNzgtODhsLTE5LjggMzMuMjZMMzUzLjMgMTY4aDM5LjZ6bS01Mi4zOSA4OGwtNTIuMzkgODhIMTc1Ljg4bC01Mi4zOS04OCA1Mi4zOC04OGgxMTIuMjVsNTIuMzkgODh6TTIzMiA3My43MkwyNTQuNzkgMTEyaC00NS41N0wyMzIgNzMuNzJ6TTcxLjEgMTY4aDM5LjZsLTE5LjggMzMuMjZMNzEuMSAxNjh6bTAgMTc2bDE5LjgtMzMuMjZMMTEwLjcgMzQ0SDcxLjF6TTIzMiA0MzguMjhMMjA5LjIxIDQwMGg0NS41N0wyMzIgNDM4LjI4ek0zNTMuMjkgMzQ0bDE5LjgtMzMuMjZMMzkyLjkgMzQ0aC0zOS42MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyT2ZMaWZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MS45OSAzMzQuNDNMMzM2LjA2IDI1NmwxMzUuOTMtNzguNDNjNy42Ni00LjQyIDEwLjI4LTE0LjIgNS44Ni0yMS44NmwtMzIuMDItNTUuNDNjLTQuNDItNy42NS0xNC4yMS0xMC4yOC0yMS44Ny01Ljg2bC0xMzUuOTMgNzguNDNWMTZjMC04Ljg0LTcuMTctMTYtMTYuMDEtMTZoLTY0LjA0Yy04Ljg0IDAtMTYuMDEgNy4xNi0xNi4wMSAxNnYxNTYuODZMNTYuMDQgOTQuNDNjLTcuNjYtNC40Mi0xNy40NS0xLjc5LTIxLjg3IDUuODZMMi4xNSAxNTUuNzFjLTQuNDIgNy42NS0xLjggMTcuNDQgNS44NiAyMS44NkwxNDMuOTQgMjU2IDguMDEgMzM0LjQzYy03LjY2IDQuNDItMTAuMjggMTQuMjEtNS44NiAyMS44NmwzMi4wMiA1NS40M2M0LjQyIDcuNjUgMTQuMjEgMTAuMjcgMjEuODcgNS44NmwxMzUuOTMtNzguNDNWNDk2YzAgOC44NCA3LjE3IDE2IDE2LjAxIDE2aDY0LjA0YzguODQgMCAxNi4wMS03LjE2IDE2LjAxLTE2VjMzOS4xNGwxMzUuOTMgNzguNDNjNy42NiA0LjQyIDE3LjQ1IDEuOCAyMS44Ny01Ljg2bDMyLjAyLTU1LjQzYzQuNDItNy42NSAxLjgtMTcuNDMtNS44Ni0yMS44NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1OS4zIDE3LjhMMTk0IDE1MC4yIDQ3LjkgMTcxLjVjLTI2LjIgMy44LTM2LjcgMzYuMS0xNy43IDU0LjZsMTA1LjcgMTAzLTI1IDE0NS41Yy00LjUgMjYuMyAyMy4yIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZsMTMwLjcgNjguN2MyMy4yIDEyLjIgNTAuOS03LjQgNDYuNC0zMy43bC0yNS0xNDUuNSAxMDUuNy0xMDNjMTktMTguNSA4LjUtNTAuOC0xNy43LTU0LjZMMzgyIDE1MC4yIDMxNi43IDE3LjhjLTExLjctMjMuNi00NS42LTIzLjktNTcuNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZXBCYWNrd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0NjhWNDRjMC02LjYgNS40LTEyIDEyLTEyaDQ4YzYuNiAwIDEyIDUuNCAxMiAxMnYxNzYuNGwxOTUuNS0xODFDMzUyLjEgMjIuMyAzODQgMzYuNiAzODQgNjR2Mzg0YzAgMjcuNC0zMS45IDQxLjctNTIuNSAyNC42TDEzNiAyOTIuN1Y0NjhjMCA2LjYtNS40IDEyLTEyIDEySDc2Yy02LjYgMC0xMi01LjQtMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlcEZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ0djQyNGMwIDYuNi01LjQgMTItMTIgMTJoLTQ4Yy02LjYgMC0xMi01LjQtMTItMTJWMjkxLjZsLTE5NS41IDE4MUM5NS45IDQ4OS43IDY0IDQ3NS40IDY0IDQ0OFY2NGMwLTI3LjQgMzEuOS00MS43IDUyLjUtMjQuNkwzMTIgMjE5LjNWNDRjMC02LjYgNS40LTEyIDEyLTEyaDQ4YzYuNiAwIDEyIDUuNCAxMiAxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGV0aG9zY29wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDcuMSAxMTJjLTM0LjIuNS02Mi4zIDI4LjQtNjMgNjIuNi0uNSAyNC4zIDEyLjUgNDUuNiAzMiA1Ni44VjM0NGMwIDU3LjMtNTAuMiAxMDQtMTEyIDEwNC02MCAwLTEwOS4yLTQ0LjEtMTExLjktOTkuMkMyNjUgMzMzLjggMzIwIDI2OS4yIDMyMCAxOTJWMzYuNmMwLTExLjQtOC4xLTIxLjMtMTkuMy0yMy41TDIzNy44LjVjLTEzLTIuNi0yNS42IDUuOC0yOC4yIDE4LjhMMjA2LjQgMzVjLTIuNiAxMyA1LjggMjUuNiAxOC44IDI4LjJsMzAuNyA2LjF2MTIxLjRjMCA1Mi45LTQyLjIgOTYuNy05NS4xIDk3LjItNTMuNC41LTk2LjktNDIuNy05Ni45LTk2VjY5LjRsMzAuNy02LjFjMTMtMi42IDIxLjQtMTUuMiAxOC44LTI4LjJsLTMuMS0xNS43QzEwNy43IDYuNCA5NS4xLTIgODIuMS42TDE5LjMgMTNDOC4xIDE1LjMgMCAyNS4xIDAgMzYuNlYxOTJjMCA3Ny4zIDU1LjEgMTQyIDEyOC4xIDE1Ni44QzEzMC43IDQzOS4yIDIwOC42IDUxMiAzMDQgNTEyYzk3IDAgMTc2LTc1LjQgMTc2LTE2OFYyMzEuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuNy0yOS4yLTY0LjUtNjQuOS02NHptLjkgODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGlja3lOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMiAzMjBoMTM2VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDI0QzEwLjcgMzIgMCA0Mi43IDAgNTZ2NDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDI2NFYzNDRjMC0xMy4yIDEwLjgtMjQgMjQtMjR6bTEyOSA1NWwtOTggOThjLTQuNSA0LjUtMTAuNiA3LTE3IDdoLTZWMzUyaDEyOHY2LjFjMCA2LjMtMi41IDEyLjQtNyAxNi45elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3BDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9wd2F0Y2gyMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTguNSwxOTAuOTFsLjU5LS42MSwyNi41OS0yNi41OGExNiwxNiwwLDAsMCwwLTIyLjYzTDQwMywxMTguNDFhMTYsMTYsMCwwLDAtMjIuNjMsMGwtMjQuNjgsMjQuNjhBMjA2LjY4LDIwNi42OCwwLDAsMCwyNTYsOTguNVY2NGgzMmExNiwxNiwwLDAsMCwxNi0xNlYxNkExNiwxNiwwLDAsMCwyODgsMEgxNjBhMTYuMDUsMTYuMDUsMCwwLDAtMTYsMTZWNDhhMTYuMDUsMTYuMDUsMCwwLDAsMTYsMTZoMzJWOTguNUEyMDcuOTIsMjA3LjkyLDAsMCwwLDE2LjA5LDI5Ny41N0MxMi42NCw0MTEuNSwxMDYuNzYsNTEwLjIyLDIyMC43Miw1MTIsMzM3LjEzLDUxMy43Nyw0MzIsNDIwLDQzMiwzMDRBMjA2LDIwNiwwLDAsMCwzOTguNSwxOTAuOTFaTTIwNC4zNywzNzcuNTVhOC4yLDguMiwwLDAsMSw4LjMyLDguMDd2MjIuMzFhOC4yLDguMiwwLDAsMS04LjMyLDguMDdIMTIxLjUyYTE2LjQ2LDE2LjQ2LDAsMCwxLTE2LjYxLTE3LjYyYzIuNzgtMzUuMjIsMTQuNjctNTcuNDEsMzguNDUtOTEuMzcsMjAuNDItMjkuMTksMjcuMS0zNy4zMiwyNy4xLTYyLjM0LDAtMTYuOTItMS43OS0yNC4yNy0xMi4yMS0yNC4yNy05LjM5LDAtMTIuNjksNy40LTEyLjY5LDIyLjY4djUuMjNhOC4yLDguMiwwLDAsMS04LjMzLDguMDdoLTI0LjlhOC4yLDguMiwwLDAsMS04LjMzLTguMDd2LTQuMDdjMC0yNy4zLDguNDgtNjAuMjQsNTYuNDMtNjAuMjQsNDMsMCw1NS41NywyNS44NSw1NS41Nyw2MSwwLDM1LjU4LTEyLjQ0LDUxLjIxLTM0LjM1LDgxLjMxLTExLjU2LDE1LTI0LjYxLDM1LjU3LTI2LjQxLDUxLjJaTTM0NCwzNTIuMzJjMCwzNS4xNi0xMi4zLDYzLjY4LTU3LjIzLDYzLjY4QzI0My4xOSw0MTYsMjMyLDM4Ni40OCwyMzIsMzUyLjU1VjI0Ny4yMmMwLTQwLjczLDE5LjU4LTYzLjIyLDU2LjItNjMuMjJDMzI1LDE4NCwzNDQsMjA2LjY0LDM0NCwyNDUuM1pNMjg3Ljg3LDIyMS43M2MtOS40MSwwLTEzLjIzLDcuNS0xMy4yMywyMFYzNTcuNjhjMCwxMy4xMSwzLjU5LDIwLjU5LDEzLjIzLDIwLjU5czEzLTgsMTMtMjEuMjdWMjQxLjA2QzMwMC44OSwyMjkuNzksMjk3Ljg4LDIyMS43MywyODcuODcsMjIxLjczWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3B3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMzA0YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMxNiA0MTguOSAxNiAzMDRjMC0xMDQgNzYuMy0xOTAuMiAxNzYtMjA1LjVWNjRoLTI4Yy02LjYgMC0xMi01LjQtMTItMTJWMTJjMC02LjYgNS40LTEyIDEyLTEyaDEyMGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC0yOHYzNC41YzM3LjUgNS44IDcxLjcgMjEuNiA5OS43IDQ0LjZsMjcuNS0yNy41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwyOC4zIDI4LjNjNC43IDQuNyA0LjcgMTIuMyAwIDE3bC0yOS40IDI5LjQtLjYuNkM0MTkuNyAyMjMuMyA0MzIgMjYyLjIgNDMyIDMwNHptLTE3NiAzNlYxODguNWMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJWMzQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcmVBbHRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44OSwxMjMuNjIsNS41MSwxNDIuMmMtMTQuMiwyMS4zLDEsNDkuOCwyNi41OSw0OS44aDc0LjI2Wk01NzYsNDEzLjQyVjIyNEg1MTJWMzY0TDM4NCwyNjVWMjI0SDMzMC45MmwtNDEuNC0zMkg2MDhjMjUuNSwwLDQwLjctMjguNSwyNi41OS00OS44bC04NS4yOS0xMjhBMzIuMTgsMzIuMTgsMCwwLDAsNTIyLjYsMEgxMTcuNDJBMzEuODcsMzEuODcsMCwwLDAsOTAuODEsMTQuMmwtMTAuNjYsMTZMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTMsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODFsMTkuNjQtMjUuMjZhMTYsMTYsMCwwLDAtMi44MS0yMi40NVpNMzIwLDM4NEgxMjhWMjI0SDY0VjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkgzNTJhMzIsMzIsMCwwLDAsMzItMzJWNDA2LjU5bC02NC00OS40N1pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9yZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzg0SDEyOFYyMjRINjR2MjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRoLTY0djE2MHptMzE0LjYtMjQxLjhsLTg1LjMtMTI4Yy02LTguOS0xNi0xNC4yLTI2LjctMTQuMkgxMTcuNGMtMTAuNyAwLTIwLjcgNS4zLTI2LjYgMTQuMmwtODUuMyAxMjhjLTE0LjIgMjEuMyAxIDQ5LjggMjYuNiA0OS44SDYwOGMyNS41IDAgNDAuNy0yOC41IDI2LjYtNDkuOHpNNTEyIDQ5NmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjIyNGgtNjR2MjcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIxLjUxLDM4NFYyODQuMmExMTkuNDMsMTE5LjQzLDAsMCwxLTI4LDMuOCwxMjMuNDYsMTIzLjQ2LDAsMCwxLTE3LjEtMS4yLDExNC44OCwxMTQuODgsMCwwLDEtMTUuNTgtMy42VjQ4MGMwLDE3LjcsMTMuNTksMzIsMzAuNCwzMkg1MDUuNzVMMzQ4LjQyLDM4NFptLTI4LTEyOC4wOWMyNS4xLDAsNDcuMjktMTAuNzIsNjQtMjcuMjRMMjQsMTIwLjA1Yy0zMC41Miw1My4zOS0yLjQ1LDEyNi41Myw1Ni40OSwxMzVBOTUuNjgsOTUuNjgsMCwwLDAsOTMuNDgsMjU1LjkxWk02MDIuMTMsNDU4LjA5LDU0Ny4yLDQxMy40MVYyODMuMmE5My41LDkzLjUsMCwwLDEtMTUuNTcsMy42LDEyNy4zMSwxMjcuMzEsMCwwLDEtMTcuMjksMS4yLDExNC44OSwxMTQuODksMCwwLDEtMjgtMy44djc5LjY4TDM0OC41MiwyNTEuNzdhODguMDYsODguMDYsMCwwLDAsMjUuNDEsNC4xNGMyOC4xMSwwLDUzLTEzLDcwLjExLTMzLjExLDE3LjE5LDIwLjExLDQyLjA4LDMzLjExLDcwLjExLDMzLjExYTk0LjMxLDk0LjMxLDAsMCwwLDEzLS45MWM1OS42Ni04LjQxLDg4LTgyLjgsNTYuMDYtMTM2LjRMNTIxLjU1LDE1QTMwLjEsMzAuMSwwLDAsMCw0OTUuODEsMEgxMTJBMzAuMTEsMzAuMTEsMCwwLDAsODYuMjcsMTVMNzYuODgsMzAuNzgsNDMuMTksMy4zOEExNC42OCwxNC42OCwwLDAsMCwyMS44Niw2LjE5TDMuMiwzMS40NUExNi41OCwxNi41OCwwLDAsMCw1Ljg3LDUzLjkxTDU2NC44MSw1MDguNjNhMTQuNjksMTQuNjksMCwwLDAsMjEuMzMtMi44MmwxOC42Ni0yNS4yNkExNi41OCwxNi41OCwwLDAsMCw2MDIuMTMsNDU4LjA5WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwMiAxMTguNkw1MzcuMSAxNUM1MzEuMyA1LjcgNTIxIDAgNTEwIDBIMTA2Qzk1IDAgODQuNyA1LjcgNzguOSAxNUwxNCAxMTguNmMtMzMuNSA1My41LTMuOCAxMjcuOSA1OC44IDEzNi40IDQuNS42IDkuMS45IDEzLjcuOSAyOS42IDAgNTUuOC0xMyA3My44LTMzLjEgMTggMjAuMSA0NC4zIDMzLjEgNzMuOCAzMy4xIDI5LjYgMCA1NS44LTEzIDczLjgtMzMuMSAxOCAyMC4xIDQ0LjMgMzMuMSA3My44IDMzLjEgMjkuNiAwIDU1LjgtMTMgNzMuOC0zMy4xIDE4LjEgMjAuMSA0NC4zIDMzLjEgNzMuOCAzMy4xIDQuNyAwIDkuMi0uMyAxMy43LS45IDYyLjgtOC40IDkyLjYtODIuOCA1OS0xMzYuNHpNNTI5LjUgMjg4Yy0xMCAwLTE5LjktMS41LTI5LjUtMy44VjM4NEgxMTZ2LTk5LjhjLTkuNiAyLjItMTkuNSAzLjgtMjkuNSAzLjgtNiAwLTEyLjEtLjQtMTgtMS4yLTUuNi0uOC0xMS4xLTIuMS0xNi40LTMuNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI4My4yYy01LjQgMS42LTEwLjggMi45LTE2LjQgMy42LTYuMS44LTEyLjEgMS4yLTE4LjIgMS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMjhoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2QzcuMTYgMzIgMCAzOS4xNiAwIDQ4djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2em00ODAgODBIODBjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNjRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS02NCAxNzZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNjRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyZWV0VmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjcuOSAzMjkuNzZjLTQuNjIgNS4zLTkuNzggMTAuMS0xNS45IDEzLjY1djIyLjk0YzY2LjUyIDkuMzQgMTEyIDI4LjA1IDExMiA0OS42NSAwIDMwLjkzLTkzLjEyIDU2LTIwOCA1NlM0OCA0NDYuOTMgNDggNDE2YzAtMjEuNiA0NS40OC00MC4zIDExMi00OS42NXYtMjIuOTRjLTYuMTItMy41NS0xMS4yOC04LjM1LTE1LjktMTMuNjVDNTguODcgMzQ1LjM0IDAgMzc4LjA1IDAgNDE2YzAgNTMuMDIgMTE0LjYyIDk2IDI1NiA5NnMyNTYtNDIuOTggMjU2LTk2YzAtMzcuOTUtNTguODctNzAuNjYtMTQ0LjEtODYuMjR6TTI1NiAxMjhjMzUuMzUgMCA2NC0yOC42NSA2NC02NFMyOTEuMzUgMCAyNTYgMHMtNjQgMjguNjUtNjQgNjQgMjguNjUgNjQgNjQgNjR6bS02NCAxOTJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC0xMS44Yy0xMS4wNyA1LjAzLTIzLjI2IDgtMzYuMiA4cy0yNS4xMy0yLjk3LTM2LjItOEgyMDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJpa2V0aHJvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyMjRIMjkzLjlsLTg3LjE3LTI2LjgzQTQzLjU1IDQzLjU1IDAgMCAxIDIxOS41NSAxMTJoNjYuNzlBNDkuODkgNDkuODkgMCAwIDEgMzMxIDEzOS41OGExNiAxNiAwIDAgMCAyMS40NiA3LjE1bDQyLjk0LTIxLjQ3YTE2IDE2IDAgMCAwIDcuMTYtMjEuNDZsLS41My0xQTEyOCAxMjggMCAwIDAgMjg3LjUxIDMyaC02OGExMjMuNjggMTIzLjY4IDAgMCAwLTEyMyAxMzUuNjRjMiAyMC44OSAxMC4xIDM5LjgzIDIxLjc4IDU2LjM2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQ4MGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0xODAuMjQgOTZBNDMgNDMgMCAwIDEgMzM2IDM1Ni40NSA0My41OSA0My41OSAwIDAgMSAyOTIuNDUgNDAwaC02Ni43OUE0OS44OSA0OS44OSAwIDAgMSAxODEgMzcyLjQyYTE2IDE2IDAgMCAwLTIxLjQ2LTcuMTVsLTQyLjk0IDIxLjQ3YTE2IDE2IDAgMCAwLTcuMTYgMjEuNDZsLjUzIDFBMTI4IDEyOCAwIDAgMCAyMjQuNDkgNDgwaDY4YTEyMy42OCAxMjMuNjggMCAwIDAgMTIzLTEzNS42NCAxMTQuMjUgMTE0LjI1IDAgMCAwLTUuMzQtMjQuMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Ryb29wd2FmZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg4LjEyIDIxMC43NEwxNDIuODYgMjU2bDQ1LjI1IDQ1LjI1TDIzMy4zNyAyNTZsLTQ1LjI1LTQ1LjI2em0xMTMuMTMtMjIuNjJMMjU2IDE0Mi44NmwtNDUuMjUgNDUuMjVMMjU2IDIzMy4zN2w0NS4yNS00NS4yNXptLTkwLjUgMTM1Ljc2TDI1NiAzNjkuMTRsNDUuMjYtNDUuMjZMMjU2IDI3OC42M2wtNDUuMjUgNDUuMjV6TTI1NiAwQzExNC42MiAwIDAgMTE0LjYyIDAgMjU2czExNC42MiAyNTYgMjU2IDI1NiAyNTYtMTE0LjYyIDI1Ni0yNTZTMzk3LjM4IDAgMjU2IDB6bTE4Ni42OCAyOTUuNmwtMTEuMzEgMTEuMzFjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMjguMjktMjguMjktNDUuMjUgNDUuMjUgMzMuOTQgMzMuOTQgMTYuOTctMTYuOTdjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTYuOTcgMTYuOTcgMTYuOTcgMTYuOTdjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xMS4zMSAxMS4zMWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xNi45Ny0xNi45Ny0xNi45NyAxNi45N2MtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xMS4zMS0xMS4zMWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDE2Ljk3LTE2Ljk3LTMzLjk0LTMzLjk0LTQ1LjI2IDQ1LjI2IDI4LjI5IDI4LjI5YzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTEuMzEgMTEuMzFjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMEwyNTYgNDE0LjM5bC0yOC4yOSAyOC4yOWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xMS4zMS0xMS4zMWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDI4LjI5LTI4LjI5LTQ1LjI1LTQ1LjI2LTMzLjk0IDMzLjk0IDE2Ljk3IDE2Ljk3YzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTEuMzEgMTEuMzFjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTYuOTctMTYuOTctMTYuOTcgMTYuOTdjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxNi45Ny0xNi45Ny0xNi45Ny0xNi45N2MtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxNi45NyAxNi45NyAzMy45NC0zMy45NC00NS4yNS00NS4yNS0yOC4yOSAyOC4yOWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwTDY5LjMyIDI5NS42Yy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFMOTcuNjEgMjU2bC0yOC4yOS0yOC4yOWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwyOC4yOSAyOC4yOSA0NS4yNS00NS4yNi0zMy45NC0zMy45NC0xNi45NyAxNi45N2MtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xMS4zMS0xMS4zMWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDE2Ljk3LTE2Ljk3LTE2Ljk3LTE2Ljk3Yy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTEuMzEtMTEuMzFjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDE2Ljk3IDE2Ljk3IDE2Ljk3LTE2Ljk3YzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxMS4zMSAxMS4zMWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTE2Ljk3IDE2Ljk3IDMzLjk0IDMzLjk0IDQ1LjI2LTQ1LjI1LTI4LjI5LTI4LjI5Yy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTEuMzEtMTEuMzFjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwTDI1NiA5Ny42MWwyOC4yOS0yOC4yOWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0yOC4yOSAyOC4yOSA0NS4yNiA0NS4yNSAzMy45NC0zMy45NC0xNi45Ny0xNi45N2MtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxNi45NyAxNi45NyAxNi45Ny0xNi45N2MzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xNi45NyAxNi45NyAxNi45NyAxNi45N2MzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTE2Ljk3LTE2Ljk3LTMzLjk0IDMzLjk0IDQ1LjI1IDQ1LjI2IDI4LjI5LTI4LjI5YzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxMS4zMSAxMS4zMWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFMNDE0LjM5IDI1NmwyOC4yOSAyOC4yOGE4LjAxNSA4LjAxNSAwIDAgMSAwIDExLjMyek0yNzguNjMgMjU2bDQ1LjI2IDQ1LjI1TDM2OS4xNCAyNTZsLTQ1LjI1LTQ1LjI2TDI3OC42MyAyNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Vic2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiA0NDhoLTE2VjMwNGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgNDAwIDM1MmgxNnY5NmgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0zMzYgNjRoLTY3YTE2IDE2IDAgMCAwLTEzLjE0IDYuODdsLTc5LjkgMTE1LTc5LjktMTE1QTE2IDE2IDAgMCAwIDgzIDY0SDE2QTE2IDE2IDAgMCAwIDAgODB2NDhhMTYgMTYgMCAwIDAgMTYgMTZoMzMuNDhsNzcuODEgMTEyLTc3LjgxIDExMkgxNmExNiAxNiAwIDAgMC0xNiAxNnY0OGExNiAxNiAwIDAgMCAxNiAxNmg2N2ExNiAxNiAwIDAgMCAxMy4xNC02Ljg3bDc5LjktMTE1IDc5LjkgMTE1QTE2IDE2IDAgMCAwIDI2OSA0NDhoNjdhMTYgMTYgMCAwIDAgMTYtMTZ2LTQ4YTE2IDE2IDAgMCAwLTE2LTE2aC0zMy40OGwtNzcuODEtMTEyIDc3LjgxLTExMkgzMzZhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Vid2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NnYyNTZjMCA1MS44MTUtNjEuNjI0IDk2LTEzMC4wMjIgOTZsNjIuOTggNDkuNzIxQzM4Ni45MDUgNTAyLjQxNyAzODMuNTYyIDUxMiAzNzYgNTEySDcyYy03LjU3OCAwLTEwLjg5Mi05LjU5NC00Ljk1Ny0xNC4yNzlMMTMwLjAyMiA0NDhDNjEuODIgNDQ4IDAgNDAzLjk1NCAwIDM1MlY5NkMwIDQyLjk4MSA2NCAwIDEyOCAwaDE5MmM2NSAwIDEyOCA0Mi45ODEgMTI4IDk2ek0yMDAgMjMyVjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINzJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6bTIwMCAwVjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjcyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0em0tNDggNTZjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6bS0yNTYgMGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdWl0Y2FzZVJvbGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDE2MEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZoMTI4djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmgxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjIwOGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tMTYgMjE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMjQwYzQuNDIgMCA4IDMuNTggOCA4djE2em0wLTk2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMjQwYzQuNDIgMCA4IDMuNTggOCA4djE2ek0xNDQgNDhoOTZ2ODBoNDhWNDhjMC0yNi41MS0yMS40OS00OC00OC00OGgtOTZjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2ODBoNDhWNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VpdGNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDQ4MGgyNTZWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY0MDB6bTY0LTM4NGgxMjh2MzJIMTkyVjk2em0zMjAgODB2MjU2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4aC00OFYxMjhoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTk2IDQ4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4djM1MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDE2MGMtNTIuOSAwLTk2IDQzLjEtOTYgOTZzNDMuMSA5NiA5NiA5NiA5Ni00My4xIDk2LTk2LTQzLjEtOTYtOTYtOTZ6bTI0Ni40IDgwLjVsLTk0LjctNDcuMyAzMy41LTEwMC40YzQuNS0xMy42LTguNC0yNi41LTIxLjktMjEuOWwtMTAwLjQgMzMuNS00Ny40LTk0LjhjLTYuNC0xMi44LTI0LjYtMTIuOC0zMSAwbC00Ny4zIDk0LjdMOTIuNyA3MC44Yy0xMy42LTQuNS0yNi41IDguNC0yMS45IDIxLjlsMzMuNSAxMDAuNC05NC43IDQ3LjRjLTEyLjggNi40LTEyLjggMjQuNiAwIDMxbDk0LjcgNDcuMy0zMy41IDEwMC41Yy00LjUgMTMuNiA4LjQgMjYuNSAyMS45IDIxLjlsMTAwLjQtMzMuNSA0Ny4zIDk0LjdjNi40IDEyLjggMjQuNiAxMi44IDMxIDBsNDcuMy05NC43IDEwMC40IDMzLjVjMTMuNiA0LjUgMjYuNS04LjQgMjEuOS0yMS45bC0zMy41LTEwMC40IDk0LjctNDcuM2MxMy02LjUgMTMtMjQuNy4yLTMxLjF6bS0xNTUuOSAxMDZjLTQ5LjkgNDkuOS0xMzEuMSA0OS45LTE4MSAwLTQ5LjktNDkuOS00OS45LTEzMS4xIDAtMTgxIDQ5LjktNDkuOSAxMzEuMS00OS45IDE4MSAwIDQ5LjkgNDkuOSA0OS45IDEzMS4xIDAgMTgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cGVyc2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAxNjBoLTE2VjE2YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCA0MDAgNjRoMTZ2OTZoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMzM2IDY0aC02N2ExNiAxNiAwIDAgMC0xMy4xNCA2Ljg3bC03OS45IDExNS03OS45LTExNUExNiAxNiAwIDAgMCA4MyA2NEgxNkExNiAxNiAwIDAgMCAwIDgwdjQ4YTE2IDE2IDAgMCAwIDE2IDE2aDMzLjQ4bDc3LjgxIDExMi03Ny44MSAxMTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NDhhMTYgMTYgMCAwIDAgMTYgMTZoNjdhMTYgMTYgMCAwIDAgMTMuMTQtNi44N2w3OS45LTExNSA3OS45IDExNUExNiAxNiAwIDAgMCAyNjkgNDQ4aDY3YTE2IDE2IDAgMCAwIDE2LTE2di00OGExNiAxNiAwIDAgMC0xNi0xNmgtMzMuNDhsLTc3LjgxLTExMiA3Ny44MS0xMTJIMzM2YTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cnByaXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEzNiAyMDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTExMiAyMDhjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em04MC0xNzZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN3YXRjaGJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM0LjY2LDE2Ny43MWgwTDM0NC41LDc3LjM2YTMxLjgzLDMxLjgzLDAsMCwwLTQ1LS4wN2gwbC0uMDcuMDdMMjI0LDE1Mi44OFY0MjRMNDM0LjY2LDIxMi45QTMyLDMyLDAsMCwwLDQzNC42NiwxNjcuNzFaTTQ4MCwzMjBIMzczLjA5TDE4Ni42OCw1MDYuNTFjLTIuMDYsMi4wNy00LjUsMy41OC02LjY4LDUuNDlINDgwYTMyLDMyLDAsMCwwLDMyLTMyVjM1MkEzMiwzMiwwLDAsMCw0ODAsMzIwWk0xOTIsMzJBMzIsMzIsMCwwLDAsMTYwLDBIMzJBMzIsMzIsMCwwLDAsMCwzMlY0MTZhOTYsOTYsMCwwLDAsMTkyLDBaTTk2LDQ0MGEyNCwyNCwwLDEsMSwyNC0yNEEyNCwyNCwwLDAsMSw5Niw0NDBabTMyLTE4NEg2NFYxOTJoNjRabTAtMTI4SDY0VjY0aDY0WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN3aW1tZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg5LjYxIDMxMC41OGMzLjU0IDMuMjYgMTUuMjcgOS40MiAzNC4zOSA5LjQyczMwLjg2LTYuMTYgMzQuMzktOS40MmMxNi4wMi0xNC43NyAzNC41LTIyLjU4IDUzLjQ2LTIyLjU4aDE2LjNjMTguOTYgMCAzNy40NSA3LjgxIDUzLjQ2IDIyLjU4IDMuNTQgMy4yNiAxNS4yNyA5LjQyIDM0LjM5IDkuNDJzMzAuODYtNi4xNiAzNC4zOS05LjQyYzE0Ljg2LTEzLjcxIDMxLjg4LTIxLjEyIDQ5LjM5LTIyLjE2bC0xMTIuODQtODAuNiAxOC0xMi44NmMzLjY0LTIuNTggOC4yOC0zLjUyIDEyLjYyLTIuNjFsMTAwLjM1IDIxLjUzYzI1LjkxIDUuNTMgNTEuNDQtMTAuOTcgNTctMzYuODggNS41NS0yNS45Mi0xMC45NS01MS40NC0zNi44OC01N0w0MzcuNjggOTguNDdjLTMwLjczLTYuNTgtNjMuMDIuMTItODguNTYgMTguMzhsLTgwLjAyIDU3LjE3Yy0xMC4zOCA3LjM5LTE5LjM2IDE2LjQ0LTI2LjcyIDI2Ljk0TDE3My43NSAyOTljNS40NyAzLjIzIDEwLjgyIDYuOTMgMTUuODYgMTEuNTh6TTYyNCAzNTJoLTE2Yy0yNi4wNCAwLTQ1LjgtOC40Mi01Ni4wOS0xNy45LTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNDYxLjggMzQzLjU4IDQ0Mi4wNCAzNTIgNDE2IDM1MnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDMjY5LjggMzQzLjU4IDI1MC4wNCAzNTIgMjI0IDM1MnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNzcuOCAzNDMuNTggNTguMDQgMzUyIDMyIDM1MkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjMzguNjIgMCA3Mi43Mi0xMi4xOSA5Ni0zMS44NCAyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NGgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS01MTItOTZjNDQuMTggMCA4MC0zNS44MiA4MC04MHMtMzUuODItODAtODAtODAtODAgMzUuODItODAgODAgMzUuODIgODAgODAgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3dpbW1pbmdQb29sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0MTZoLTE2Yy0yNi4wNCAwLTQ1LjgtOC40Mi01Ni4wOS0xNy45LTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNDYxLjggNDA3LjU4IDQ0Mi4wNCA0MTYgNDE2IDQxNnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDMjY5LjggNDA3LjU4IDI1MC4wNCA0MTYgMjI0IDQxNnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNzcuOCA0MDcuNTggNTguMDQgNDE2IDMyIDQxNkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjMzguNjIgMCA3Mi43Mi0xMi4xOSA5Ni0zMS44NCAyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NGgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS00MDAtMzJ2LTk2aDE5MnY5NmMxOS4xMiAwIDMwLjg2LTYuMTYgMzQuMzktOS40MiA5LjE3LTguNDYgMTkuMi0xNC4zNCAyOS42MS0xOC4wN1YxMjhjMC0xNy42NCAxNC4zNi0zMiAzMi0zMnMzMiAxNC4zNiAzMiAzMnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC01Mi45NC00My4wNi05Ni05Ni05NnMtOTYgNDMuMDYtOTYgOTZ2OTZIMjI0di05NmMwLTE3LjY0IDE0LjM2LTMyIDMyLTMyczMyIDE0LjM2IDMyIDMydjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTUyLjk0LTQzLjA2LTk2LTk2LTk2cy05NiA0My4wNi05NiA5NnYyMjguNWMxMC40MSAzLjczIDIwLjQ0IDkuNjIgMjkuNjEgMTguMDcgMy41MyAzLjI3IDE1LjI3IDkuNDMgMzQuMzkgOS40M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeW5hZ29ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzAgMTk2LjUxTDYuNjcgMjY4LjI5QTI2LjY0MyAyNi42NDMgMCAwIDAgMCAyODUuOTNWNTEyaDEyOFYyMzkuNThsLTM4LTQzLjA3Yy01LjMxLTYuMDEtMTQuNjktNi4wMS0yMCAwem01NjMuMzMgNzEuNzhMNTcwIDE5Ni41MWMtNS4zMS02LjAyLTE0LjY5LTYuMDItMjAgMGwtMzggNDMuMDdWNTEyaDEyOFYyODUuOTNjMC02LjUtMi4zNy0xMi43Ny02LjY3LTE3LjY0ek0zMzkuOTkgNy4wMWMtMTEuNjktOS4zNS0yOC4yOS05LjM1LTM5Ljk4IDBsLTEyOCAxMDIuNEEzMi4wMDUgMzIuMDA1IDAgMCAwIDE2MCAxMzQuNFY1MTJoOTZ2LTkyLjU3YzAtMzEuODggMjEuNzgtNjEuNDMgNTMuMjUtNjYuNTVDMzQ5LjM0IDM0Ni4zNSAzODQgMzc3LjEzIDM4NCA0MTZ2OTZoOTZWMTM0LjRjMC05LjcyLTQuNDItMTguOTItMTIuMDEtMjQuOTlsLTEyOC0xMDIuNHptNTIuMDcgMjE1LjU1YzEuOTggMy4xNS0uMjkgNy4yNC00IDcuMjRoLTM4Ljk0TDMyNCAyNjkuNzljLTEuODUgMi45NS02LjE1IDIuOTUtOCAwbC0yNS4xMi0zOS45OGgtMzguOTRjLTMuNzIgMC01Ljk4LTQuMDktNC03LjI0bDE5LjItMzAuNTYtMTkuMi0zMC41NmMtMS45OC0zLjE1LjI5LTcuMjQgNC03LjI0aDM4Ljk0bDI1LjEyLTQwYzEuODUtMi45NSA2LjE1LTIuOTUgOCAwbDI1LjEyIDM5Ljk4aDM4Ljk1YzMuNzEgMCA1Ljk4IDQuMDkgNCA3LjI0TDM3Mi44NyAxOTJsMTkuMTkgMzAuNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3luY0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzAuNzIgMTMzLjI4QzMzOS40NTggMTA0LjAwOCAyOTguODg4IDg3Ljk2MiAyNTUuODQ4IDg4Yy03Ny40NTguMDY4LTE0NC4zMjggNTMuMTc4LTE2Mi43OTEgMTI2Ljg1LTEuMzQ0IDUuMzYzLTYuMTIyIDkuMTUtMTEuNjUxIDkuMTVIMjQuMTAzYy03LjQ5OCAwLTEzLjE5NC02LjgwNy0xMS44MDctMTQuMTc2QzMzLjkzMyA5NC45MjQgMTM0LjgxMyA4IDI1NiA4YzY2LjQ0OCAwIDEyNi43OTEgMjYuMTM2IDE3MS4zMTUgNjguNjg1TDQ2My4wMyA0MC45N0M0NzguMTQ5IDI1Ljg1MSA1MDQgMzYuNTU5IDUwNCA1Ny45NDFWMTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgzNDUuOTQxYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MWw0MS43NS00MS43NDl6TTMyIDI5NmgxMzQuMDU5YzIxLjM4MiAwIDMyLjA5IDI1Ljg1MSAxNi45NzEgNDAuOTcxbC00MS43NSA0MS43NWMzMS4yNjIgMjkuMjczIDcxLjgzNSA0NS4zMTkgMTE0Ljg3NiA0NS4yOCA3Ny40MTgtLjA3IDE0NC4zMTUtNTMuMTQ0IDE2Mi43ODctMTI2Ljg0OSAxLjM0NC01LjM2MyA2LjEyMi05LjE1IDExLjY1MS05LjE1aDU3LjMwNGM3LjQ5OCAwIDEzLjE5NCA2LjgwNyAxMS44MDcgMTQuMTc2QzQ3OC4wNjcgNDE3LjA3NiAzNzcuMTg3IDUwNCAyNTYgNTA0Yy02Ni40NDggMC0xMjYuNzkxLTI2LjEzNi0xNzEuMzE1LTY4LjY4NUw0OC45NyA0NzEuMDNDMzMuODUxIDQ4Ni4xNDkgOCA0NzUuNDQxIDggNDU0LjA1OVYzMjBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN5bmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjY1IDEyLjU3bDQgODIuNzdBMjQ3LjE2IDI0Ny4xNiAwIDAgMCAyNTUuODMgOEMxMzQuNzMgOCAzMy45MSA5NC45MiAxMi4yOSAyMDkuODJBMTIgMTIgMCAwIDAgMjQuMDkgMjI0aDQ5LjA1YTEyIDEyIDAgMCAwIDExLjY3LTkuMjYgMTc1LjkxIDE3NS45MSAwIDAgMSAzMTctNTYuOTRsLTEwMS40Ni00Ljg2YTEyIDEyIDAgMCAwLTEyLjU3IDEydjQ3LjQxYTEyIDEyIDAgMCAwIDEyIDEySDUwMGExMiAxMiAwIDAgMCAxMi0xMlYxMmExMiAxMiAwIDAgMC0xMi0xMmgtNDcuMzdhMTIgMTIgMCAwIDAtMTEuOTggMTIuNTd6TTI1NS44MyA0MzJhMTc1LjYxIDE3NS42MSAwIDAgMS0xNDYtNzcuOGwxMDEuOCA0Ljg3YTEyIDEyIDAgMCAwIDEyLjU3LTEydi00Ny40YTEyIDEyIDAgMCAwLTEyLTEySDEyYTEyIDEyIDAgMCAwLTEyIDEyVjUwMGExMiAxMiAwIDAgMCAxMiAxMmg0Ny4zNWExMiAxMiAwIDAgMCAxMi0xMi42bC00LjE1LTgyLjU3QTI0Ny4xNyAyNDcuMTcgMCAwIDAgMjU1LjgzIDUwNGMxMjEuMTEgMCAyMjEuOTMtODYuOTIgMjQzLjU1LTIwMS44MmExMiAxMiAwIDAgMC0xMS44LTE0LjE4aC00OS4wNWExMiAxMiAwIDAgMC0xMS42NyA5LjI2QTE3NS44NiAxNzUuODYgMCAwIDEgMjU1LjgzIDQzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeXJpbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMS41IDE3NC44bDU1LjcgNTUuOGMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTU1LjctNTUuOC00NS4zIDQ1LjMgNTUuOCA1NS44YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMEwxMTEgMjY1LjJsLTI2LjQgMjYuNGMtMTcuMyAxNy4zLTI1LjYgNDEuMS0yMyA2NS40bDcuMSA2My42TDIuMyA0ODdjLTMuMSAzLjEtMy4xIDguMiAwIDExLjNsMTEuMyAxMS4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNjYuMy02Ni4zIDYzLjYgNy4xYzIzLjkgMi42IDQ3LjktNS40IDY1LjQtMjNsMTgxLjktMTgxLjktMTM1LjctMTM1LjctNjQuOSA2NXptMzA4LjItOTMuM0w0MzAuNSAyLjNjLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBsLTExLjMgMTEuM2MtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM2wyOC4zIDI4LjMtNDUuMyA0NS4zLTU2LjYtNTYuNi0xNy0xN2MtMy4xLTMuMS04LjItMy4xLTExLjMgMGwtMzMuOSAzMy45Yy0zLjEgMy4xLTMuMSA4LjIgMCAxMS4zbDE3IDE3TDQyNC44IDIyM2wxNyAxN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMzLjktMzRjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNzMuNS03My41IDQ1LjMtNDUuMyAyOC4zIDI4LjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMS4zLTExLjNjMy4xLTMuMiAzLjEtOC4yIDAtMTEuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZVRlbm5pcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYuMiAyOTYuNUM1MjcuNyAyMTguNyA1MTIgMTI2LjIgNDQ5IDYzLjEgMzY1LjEtMjEgMjI5LTIxIDE0NS4xIDYzLjFsLTU2IDU2LjEgMjExLjUgMjExLjVjNDYuMS02Mi4xIDEzMS41LTc3LjQgMTk1LjYtMzQuMnptLTIxNy45IDc5LjdMNTcuOSAxNTUuOWMtMjcuMyA0NS4zLTIxLjcgMTA1IDE3LjMgMTQ0LjFsMzQuNSAzNC42TDYuNyA0MjRjLTguNiA3LjUtOS4xIDIwLjctMSAyOC44bDUzLjQgNTMuNWM4IDguMSAyMS4yIDcuNiAyOC43LTFMMTc3LjEgNDAybDM1LjcgMzUuN2MxOS43IDE5LjcgNDQuNiAzMC41IDcwLjMgMzMuMy03LjEtMTctMTEtMzUuNi0xMS01NS4xLS4xLTEzLjggMi41LTI3IDYuMi0zOS43ek00MTYgMzIwYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2IDk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMjI0IDQxNkg2NHYtOTZoMTYwdjk2em0wLTE2MEg2NHYtOTZoMTYwdjk2em0yMjQgMTYwSDI4OHYtOTZoMTYwdjk2em0wLTE2MEgyODh2LTk2aDE2MHY5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIyNCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xNzYtMTA4YzAgNi42LTUuNCAxMi0xMiAxMkg2MGMtNi42IDAtMTItNS40LTEyLTEyVjYwYzAtNi42IDUuNC0xMiAxMi0xMmgzMjhjNi42IDAgMTIgNS40IDEyIDEydjMxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIyNCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDE5MkM3OC45IDE5MiAxMi41IDI1MC41LjEgMzI2LjdjLS44IDQuOCAzLjMgOS4zIDguMyA5LjNoMzAzLjNjNSAwIDkuMS00LjUgOC4zLTkuM0MzMDcuNSAyNTAuNSAyNDEuMSAxOTIgMTYwIDE5MnptMTUxLjYgMTc2SDguNGMtNSAwLTkuMSA0LjUtOC4zIDkuM0MxMi41IDQ1My41IDc4LjkgNTEyIDE2MCA1MTJzMTQ3LjUtNTguNSAxNTkuOS0xMzQuN2MuOC00LjgtMy4zLTkuMy04LjMtOS4zek01OTMuNCA0Ni42Yy01Ni41LTU2LjUtMTQ0LjItNjEuNC0yMDYuOS0xNi00IDIuOS00LjMgOC45LS44IDEyLjNMNTk3IDI1NC4zYzMuNSAzLjUgOS41IDMuMiAxMi4zLS44IDQ1LjUtNjIuNyA0MC42LTE1MC40LTE1LjktMjA2Ljl6TTM2MyA2NS43Yy0zLjUtMy41LTkuNS0zLjItMTIuMy44LTQ1LjQgNjIuNy00MC41IDE1MC40IDE1LjkgMjA2LjkgNTYuNSA1Ni41IDE0NC4yIDYxLjQgMjA2LjkgMTUuOSA0LTIuOSA0LjMtOC45LjgtMTIuM0wzNjMgNjUuN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWNob21ldGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMkMxMjguOTQgMzIgMCAxNjAuOTQgMCAzMjBjMCA1Mi44IDE0LjI1IDEwMi4yNiAzOS4wNiAxNDQuOCA1LjYxIDkuNjIgMTYuMyAxNS4yIDI3LjQ0IDE1LjJoNDQzYzExLjE0IDAgMjEuODMtNS41OCAyNy40NC0xNS4yQzU2MS43NSA0MjIuMjYgNTc2IDM3Mi44IDU3NiAzMjBjMC0xNTkuMDYtMTI4Ljk0LTI4OC0yODgtMjg4em0wIDY0YzE0LjcxIDAgMjYuNTggMTAuMTMgMzAuMzIgMjMuNjUtMS4xMSAyLjI2LTIuNjQgNC4yMy0zLjQ1IDYuNjdsLTkuMjIgMjcuNjdjLTUuMTMgMy40OS0xMC45NyA2LjAxLTE3LjY0IDYuMDEtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlMyNzAuMzMgOTYgMjg4IDk2ek05NiAzODRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTQ4LTE2MGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMjQ2Ljc3LTcyLjQxbC02MS4zMyAxODRDMzQzLjEzIDM0Ny4zMyAzNTIgMzY0LjU0IDM1MiAzODRjMCAxMS43Mi0zLjM4IDIyLjU1LTguODggMzJIMjMyLjg4Yy01LjUtOS40NS04Ljg4LTIwLjI4LTguODgtMzIgMC0zMy45NCAyNi41LTYxLjQzIDU5LjktNjMuNTlsNjEuMzQtMTg0LjAxYzQuMTctMTIuNTYgMTcuNzMtMTkuNDUgMzAuMzYtMTUuMTcgMTIuNTcgNC4xOSAxOS4zNSAxNy43OSAxNS4xNyAzMC4zNnptMTQuNjYgNTcuMmwxNS41Mi00Ni41NWMzLjQ3LTEuMjkgNy4xMy0yLjIzIDExLjA1LTIuMjMgMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnMtMTQuMzMgMzItMzIgMzJjLTExLjM4LS4wMS0yMC44OS02LjI4LTI2LjU3LTE1LjIyek00ODAgMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1Mi4xMThWNDhDMCAyMS40OSAyMS40OSAwIDQ4IDBoMjA0LjExOGE0OCA0OCAwIDAgMSAzMy45NDEgMTQuMDU5bDIxMS44ODIgMjExLjg4MmMxOC43NDUgMTguNzQ1IDE4Ljc0NSA0OS4xMzcgMCA2Ny44ODJMMjkzLjgyMyA0OTcuOTQxYy0xOC43NDUgMTguNzQ1LTQ5LjEzNyAxOC43NDUtNjcuODgyIDBMMTQuMDU5IDI4Ni4wNTlBNDggNDggMCAwIDEgMCAyNTIuMTE4ek0xMTIgNjRjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuOTQxIDIyNS45NDFMMjg2LjA1OSAxNC4wNTlBNDggNDggMCAwIDAgMjUyLjExOCAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djIwNC4xMThhNDggNDggMCAwIDAgMTQuMDU5IDMzLjk0MWwyMTEuODgyIDIxMS44ODJjMTguNzQ0IDE4Ljc0NSA0OS4xMzYgMTguNzQ2IDY3Ljg4MiAwbDIwNC4xMTgtMjA0LjExOGMxOC43NDUtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMC02Ny44ODJ6TTExMiAxNjBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTUxMy45NDEgMTMzLjgyM0w0MjEuODIzIDQ5Ny45NDFjLTE4Ljc0NSAxOC43NDUtNDkuMTM3IDE4Ljc0NS02Ny44ODIgMGwtLjM2LS4zNkw1MjcuNjQgMzIzLjUyMmMxNi45OTktMTYuOTk5IDI2LjM2LTM5LjYgMjYuMzYtNjMuNjRzLTkuMzYyLTQ2LjY0MS0yNi4zNi02My42NEwzMzEuMzk3IDBoNDguNzIxYTQ4IDQ4IDAgMCAxIDMzLjk0MSAxNC4wNTlsMjExLjg4MiAyMTEuODgyYzE4Ljc0NSAxOC43NDUgMTguNzQ1IDQ5LjEzNyAwIDY3Ljg4MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxOTJjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NC0yOC43LTY0LTY0LTY0em00MDAgMjI0SDM4MC42YzQxLjUtNDAuNyA2Ny40LTk3LjMgNjcuNC0xNjAgMC0xMjMuNy0xMDAuMy0yMjQtMjI0LTIyNFMwIDEzMi4zIDAgMjU2czEwMC4zIDIyNCAyMjQgMjI0aDQwMGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptLTQwMC02NGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXNrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzkuNjEgMzUuNWExMiAxMiAwIDAgMC0xNyAwTDU4LjkzIDk4LjgxbC0yMi43LTIyLjEyYTEyIDEyIDAgMCAwLTE3IDBMMy41MyA5Mi40MWExMiAxMiAwIDAgMCAwIDE3bDQ3LjU5IDQ3LjRhMTIuNzggMTIuNzggMCAwIDAgMTcuNjEgMGwxNS41OS0xNS42MkwxNTYuNTIgNjlhMTIuMDkgMTIuMDkgMCAwIDAgLjA5LTE3em0wIDE1OS4xOWExMiAxMiAwIDAgMC0xNyAwbC02My42OCA2My43Mi0yMi43LTIyLjFhMTIgMTIgMCAwIDAtMTcgMEwzLjUzIDI1MmExMiAxMiAwIDAgMCAwIDE3TDUxIDMxNi41YTEyLjc3IDEyLjc3IDAgMCAwIDE3LjYgMGwxNS43LTE1LjY5IDcyLjItNzIuMjJhMTIgMTIgMCAwIDAgLjA5LTE2Ljl6TTY0IDM2OGMtMjYuNDkgMC00OC41OSAyMS41LTQ4LjU5IDQ4UzM3LjUzIDQ2NCA2NCA0NjRhNDggNDggMCAwIDAgMC05NnptNDMyIDE2SDIwOGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyODhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgyMDhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgyMDhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXhpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2MiAyNDEuNjRsLTIyLTg0Ljg0Yy05LjYtMzUuMi00MS42LTYwLjgtNzYuOC02MC44SDM1MlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgtMTEuMmMtMzUuMiAwLTY3LjIgMjUuNi03Ni44IDYwLjhsLTIyIDg0Ljg0QzIxLjQxIDI0OC4wNCAwIDI3My40NyAwIDMwNHY0OGMwIDIzLjYzIDEyLjk1IDQ0LjA0IDMyIDU1LjEyVjQ0OGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDI1NnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTQwLjg4YzE5LjA1LTExLjA5IDMyLTMxLjUgMzItNTUuMTJ2LTQ4YzAtMzAuNTMtMjEuNDEtNTUuOTYtNTAtNjIuMzZ6TTk2IDM1MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMjAuNTUtMTEybDE3LjItNjYuMzZjMi4yMy04LjE2IDkuNTktMTMuNjQgMTUuMDYtMTMuNjRoMjE0LjRjNS40NyAwIDEyLjgzIDUuNDggMTQuODUgMTIuODZMMzk1LjQ1IDI0MGgtMjc4Ljl6TTQxNiAzNTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVldGhPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAwSDk2QzQyLjk4IDAgMCA0Mi45OCAwIDk2djY0YzAgMzUuMzUgMjguNjYgNjQgNjQgNjRoNTEyYzM1LjM0IDAgNjQtMjguNjUgNjQtNjRWOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnpNMTYwIDE3NmMwIDguODQtNy4xNiAxNi0xNiAxNkg4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDh2MzJ6bTE0NCAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTU2YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2NTZ6bTE0NCAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTU2YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2NTZ6bTEyOCAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC02NGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDh2MzJ6bTAgMTQ0SDY0Yy0zNS4zNCAwLTY0IDI4LjY1LTY0IDY0djMyYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZoNDQ4YzUzLjAyIDAgOTYtNDIuOTggOTYtOTZ2LTMyYzAtMzUuMzUtMjguNjYtNjQtNjQtNjR6bS00MTYgODBjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDh2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyem0xNDQtOGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtMjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MjR6bTE0NCAwYzAgMzAuOTMtMjUuMDcgNTYtNTYgNTZzLTU2LTI1LjA3LTU2LTU2di0yNGMwLTguODQgNy4xNi0xNiAxNi0xNmg4MGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYyNHptMTI4IDhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDh2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlZXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAwSDk2QzQyLjk4IDAgMCA0Mi45OCAwIDk2djMyMGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDQ0OGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2Vjk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZ6TTE2MCAzNjhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDh2LTY0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djY0em0wLTEyOGMwIDguODQtNy4xNiAxNi0xNiAxNkg4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTY0YzAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDh2NjR6bTE0NCAxMjBjMCAzMC45My0yNS4wNyA1Ni01NiA1NnMtNTYtMjUuMDctNTYtNTZ2LTU2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzguODQgMCAxNiA3LjE2IDE2IDE2djU2em0wLTEyMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di04OGMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djg4em0xNDQgMTIwYzAgMzAuOTMtMjUuMDcgNTYtNTYgNTZzLTU2LTI1LjA3LTU2LTU2di01NmMwLTguODQgNy4xNi0xNiAxNi0xNmg4MGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY1NnptMC0xMjBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtODhjMC0zMC45MyAyNS4wNy01NiA1Ni01NnM1NiAyNS4wNyA1NiA1NnY4OHptMTI4IDEyOGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4cy00OC0yMS40OS00OC00OHYtNjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoNjRjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NjR6bTAtMTI4YzAgOC44NC03LjE2IDE2LTE2IDE2aC02NGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTY0YzAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDh2NjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAwYy01Mi45IDAtOTYgNDMuMS05NiA5NnM0My4xIDk2IDk2IDk2IDk2LTQzLjEgOTYtOTYtNDMuMS05Ni05Ni05NnptMCAxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0tMTYwLTE2QzI1NiA1MC4xIDIwNS45IDAgMTQ0IDBTMzIgNTAuMSAzMiAxMTJ2MTY2LjVDMTIuMyAzMDMuMiAwIDMzNCAwIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzQtMTIuMy02NC45LTMyLTg5LjVWMTEyek0xNDQgNDQ4Yy00NC4xIDAtODAtMzUuOS04MC04MCAwLTI1LjUgMTIuMi00OC45IDMyLTYzLjhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MTkyLjJjMTkuOCAxNC44IDMyIDM4LjMgMzIgNjMuOCAwIDQ0LjEtMzUuOSA4MC04MCA4MHptMTYtMTI1LjFWMTEyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djIxMC45Yy0xOC42IDYuNi0zMiAyNC4yLTMyIDQ1LjEgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTIwLjktMTMuNC0zOC41LTMyLTQ1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDBjLTUyLjkgMC05NiA0My4xLTk2IDk2czQzLjEgOTYgOTYgOTYgOTYtNDMuMSA5Ni05Ni00My4xLTk2LTk2LTk2em0wIDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bS0xNjAtMTZDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnYxNjYuNUMxMi4zIDMwMy4yIDAgMzM0IDAgMzY4YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRjMC0zNC0xMi4zLTY0LjktMzItODkuNVYxMTJ6TTE0NCA0NDhjLTQ0LjEgMC04MC0zNS45LTgwLTgwIDAtMjUuNSAxMi4yLTQ4LjkgMzItNjMuOFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHYxOTIuMmMxOS44IDE0LjggMzIgMzguMyAzMiA2My44IDAgNDQuMS0zNS45IDgwLTgwIDgwem0xNi0xMjUuMVYzMDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MTguOWMtMTguNiA2LjYtMzIgMjQuMi0zMiA0NS4xIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNS0zMi00NS4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3MiAxNjBIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY1NmMwIDYuNiA1LjQgMTIgMTIgMTJoMTQwdjIyOGMwIDYuNiA1LjQgMTIgMTIgMTJoNTZjNi42IDAgMTItNS40IDEyLTEyVjI0MGgxNDBjNi42IDAgMTItNS40IDEyLTEydi01NmMwLTYuNi01LjQtMTItMTItMTJ6bTAtMTI4SDEyQzUuNCAzMiAwIDM3LjQgMCA0NHY1NmMwIDYuNiA1LjQgMTIgMTIgMTJoMzYwYzYuNiAwIDEyLTUuNCAxMi0xMlY0NGMwLTYuNi01LjQtMTItMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3Ljk4MSAyNzIuOTcxTDYzLjYzOCA0NjcuMzE0Yy05LjM3MyA5LjM3My0yNC41NjkgOS4zNzMtMzMuOTQxIDBMNy4wMjkgNDQ0LjY0N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTYxLjAxMSAyNTYgNi45OSAxMDEuMjU1Yy05LjMzNS05LjM3OS05LjMxNy0yNC41NDQuMDQtMzMuOTAxbDIyLjY2Ny0yMi42NjdjOS4zNzMtOS4zNzMgMjQuNTY5LTkuMzczIDMzLjk0MSAwTDI1Ny45ODEgMjM5LjAzYzkuMzczIDkuMzcyIDkuMzczIDI0LjU2OCAwIDMzLjk0MXpNNjQwIDQ1NnYtMzJjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDMxMmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djMyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRleHRIZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2OTZhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyaDU2djMwNEg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxNjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC00MFYxMTJoNTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTI1NiAzMzZoLTQ4VjE0NGg0OGMxNC4zMSAwIDIxLjMzLTE3LjMxIDExLjMxLTI3LjMxbC04MC04MGExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA4MEMzNzkuMzYgMTI2IDM4NC4zNiAxNDQgNDAwIDE0NGg0OHYyMjRoLTQ4Yy0xNC4zMSAwLTIxLjMyIDE3LjMxLTExLjMxIDI3LjMxbDgwIDgwYTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtODBDNTgwLjY0IDM4NiA1NzUuNjQgMzY4IDU2MCAzNjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGV4dFdpZHRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djgwYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0xNmgxMjB2MTEyaC0yNGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0yNFYxMTJoMTIwdjE2YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2em0tNjguNjkgMjYwLjY5QzM1NCAyODMuMzYgMzM2IDI4OC4zNiAzMzYgMzA0djQ4SDExMnYtNDhjMC0xNC4zMS0xNy4zMS0yMS4zMi0yNy4zMS0xMS4zMWwtODAgODBhMTYgMTYgMCAwIDAgMCAyMi42Mmw4MCA4MEM5NCA0ODQuNjQgMTEyIDQ3OS42NCAxMTIgNDY0di00OGgyMjR2NDhjMCAxNC4zMSAxNy4zMSAyMS4zMyAyNy4zMSAxMS4zMWw4MC04MGExNiAxNiAwIDAgMCAwLTIyLjYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoTGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDMyaDE5MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MTYwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyOTZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFY1NmMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjR6bS04MCAwSDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djE2MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTkyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTAgMjk2djE2MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTkyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyOTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bTI5NiAxODRoMTkyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyOTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI5NmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OS4zMzMgMjE2djgwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di04MGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTAxLjMzM2MxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR6TTAgMzc2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6TTEyNS4zMzMgMzJIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHptODAgNDQ4SDQ4OGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0em0tMjQtNDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bTI0IDI2NEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDkuMzMzIDU2djgwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjU2YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMDEuMzMzYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHptMTgxLjMzNCAyNDB2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU2IDAgMjQuMDAxLTEwLjc0NSAyNC4wMDEtMjR6bTMyLTI0MHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzg2LjY2N2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0em0tMzIgODBWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDIwNS4zMzNjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTYgMCAyNC4wMDEtMTAuNzQ1IDI0LjAwMS0yNHptLTIwNS4zMzQgNTZIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNMCAzNzZ2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHptMzg2LjY2Ny01Nkg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzg2LjY2N2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHptMCAxNjBINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDM4Ni42NjdjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjR6TTE4MS4zMzMgMzc2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDIwNS4zMzNjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVhdGVyTWFza3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA2Ljg2IDI0NS4xNWMtMzUuODggMTAuNDUtNTkuOTUgNDEuMi01Ny41MyA3NC4xIDExLjQtMTIuNzIgMjguODEtMjMuNyA0OS45LTMwLjkybDcuNjMtNDMuMTh6TTk1LjgxIDI5NUw2NC4wOCAxMTUuNDljLS4yOS0xLjYyLjI4LTIuNjIuMjQtMi42NSA1Ny43Ni0zMi4wNiAxMjMuMTItNDkuMDEgMTg5LjAxLTQ5LjAxIDEuNjEgMCAzLjIzLjE3IDQuODUuMTkgMTMuOTUtMTMuNDcgMzEuNzMtMjIuODMgNTEuNTktMjYgMTguODktMy4wMiAzOC4wNS00LjU1IDU3LjE4LTUuMzItOS45OS0xMy45NS0yNC40OC0yNC4yMy00MS43Ny0yN0MzMDEuMjcgMS44OSAyNzcuMjQgMCAyNTMuMzIgMCAxNzYuNjYgMCAxMDEuMDIgMTkuNDIgMzMuMiA1Ny4wNiA5LjAzIDcwLjQ4LTMuOTIgOTguNDggMS4wNSAxMjYuNThsMzEuNzMgMTc5LjUxYzE0LjIzIDgwLjUyIDEzNi4zMyAxNDIuMDggMjA0LjQ1IDE0Mi4wOCAzLjU5IDAgNi43NS0uNDYgMTAuMDEtLjgtMTMuNTItMTcuMDgtMjguOTQtNDAuNDgtMzkuNS02Ny41OC00Ny42MS0xMi45OC0xMDYuMDYtNTEuNjItMTExLjkzLTg0Ljc5em05Ny41NS0xMzcuNDZjLS43My00LjEyLTIuMjMtNy44Ny00LjA3LTExLjQtOC4yNSA4LjkxLTIwLjY3IDE1Ljc1LTM1LjMyIDE4LjMyLTE0LjY1IDIuNTgtMjguNjcuNC0zOS40OC01LjE3LS41MiAzLjk0LS42NCA3Ljk4LjA5IDEyLjEgMy44NCAyMS43IDI0LjU4IDM2LjE5IDQ2LjM0IDMyLjM3IDIxLjc1LTMuODIgMzYuMjgtMjQuNTIgMzIuNDQtNDYuMjJ6TTYwNi44IDEyMC45Yy04OC45OC00OS4zOC0xOTEuNDMtNjcuNDEtMjkxLjk4LTUxLjM1LTI3LjMxIDQuMzYtNDkuMDggMjYuMjYtNTQuMDQgNTQuMzZsLTMxLjczIDE3OS41MWMtMTUuMzkgODcuMDUgOTUuMjggMTk2LjI3IDE1OC4zMSAyMDcuMzUgNjMuMDMgMTEuMDkgMjA0LjQ3LTUzLjc5IDIxOS44Ni0xNDAuODRsMzEuNzMtMTc5LjUxYzQuOTctMjguMTEtNy45OC01Ni4xMS0zMi4xNS02OS41MnptLTI3My4yNCA5Ni44YzMuODQtMjEuNyAyNC41OC0zNi4xOSA0Ni4zNC0zMi4zNiAyMS43NiAzLjgzIDM2LjI4IDI0LjUyIDMyLjQ1IDQ2LjIyLS43MyA0LjEyLTIuMjMgNy44Ny00LjA3IDExLjQtOC4yNS04LjkxLTIwLjY3LTE1Ljc1LTM1LjMyLTE4LjMyLTE0LjY1LTIuNTgtMjguNjctLjQtMzkuNDggNS4xNy0uNTMtMy45NS0uNjUtNy45OS4wOC0xMi4xMXptNzAuNDcgMTk4Ljc2Yy01NS42OC05Ljc5LTkzLjUyLTU5LjI3LTg5LjA0LTExMi45IDIwLjYgMjUuNTQgNTYuMjEgNDYuMTcgOTkuNDkgNTMuNzggNDMuMjggNy42MSA4My44Mi4zNyAxMTEuOTMtMTYuNi0xNC4xOCA1MS45NC02Ni43MSA4NS41MS0xMjIuMzggNzUuNzJ6bTEzMC4zLTE1MS4zNGMtOC4yNS04LjkxLTIwLjY4LTE1Ljc1LTM1LjMzLTE4LjMyLTE0LjY1LTIuNTgtMjguNjctLjQtMzkuNDggNS4xNy0uNTItMy45NC0uNjQtNy45OC4wOS0xMi4xIDMuODQtMjEuNyAyNC41OC0zNi4xOSA0Ni4zNC0zMi4zNyAyMS43NSAzLjgzIDM2LjI4IDI0LjUyIDMyLjQ1IDQ2LjIyLS43MyA0LjEzLTIuMjMgNy44OC00LjA3IDExLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlcm1vbWV0ZXJFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMzUuMzQ2IDI4LjY1NC02NCA2NC02NHM2NCAyOC42NTQgNjQgNjR6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlckZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDk2YzAtNTMuMDE5LTQyLjk4MS05Ni05Ni05NlMzMiA0Mi45ODEgMzIgOTZ2MjAzLjM0N0MxMi4yMjUgMzIxLjc1Ni4xNjYgMzUxLjEzNi4wMDIgMzgzLjMzM2MtLjM1OSA3MC4zMDMgNTYuNzg3IDEyOC4xNzYgMTI3LjA4OSAxMjguNjY0LjI5OS4wMDIuNjEuMDAzLjkwOS4wMDMgNzAuNjk4IDAgMTI4LTU3LjMwNCAxMjgtMTI4IDAtMzIuNDU5LTEyLjA4OC02Mi4wOS0zMi04NC42NTNWOTZ6bS05NiAzNjhsLS41NzYtLjAwMmMtNDMuODYtLjMwNC03OS42NDctMzYuNTQ0LTc5LjQyMy04MC40Mi4xNzMtMzMuOTggMTkuMjY2LTUxLjY1MiAzMS45OTktNjYuMDhWOTZjMC0yNi40NjcgMjEuNTMzLTQ4IDQ4LTQ4czQ4IDIxLjUzMyA0OCA0OHYyMjEuNDk4YzEyLjYzIDE0LjMxMiAzMiAzMi4xNjQgMzIgNjYuNTAyIDAgNDQuMTEyLTM1Ljg4OCA4MC04MCA4MHptNjQtODBjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0cy02NC0yOC42NTQtNjQtNjRjMC0yMy42ODUgMTIuODc2LTQ0LjM0OSAzMi01NS40MTdWOTZjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnYyMzIuNTgzYzE5LjEyNCAxMS4wNjggMzIgMzEuNzMyIDMyIDU1LjQxN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDM4NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRzLTY0LTI4LjY1NC02NC02NGMwLTIzLjY4NSAxMi44NzYtNDQuMzQ5IDMyLTU1LjQxN1YyMjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnYxMDQuNTgzYzE5LjEyNCAxMS4wNjggMzIgMzEuNzMyIDMyIDU1LjQxN3ptMzItODQuNjUzYzE5LjkxMiAyMi41NjMgMzIgNTIuMTk0IDMyIDg0LjY1MyAwIDcwLjY5Ni01Ny4zMDMgMTI4LTEyOCAxMjgtLjI5OSAwLS42MDktLjAwMS0uOTA5LS4wMDNDNTYuNzg5IDUxMS41MDktLjM1NyA0NTMuNjM2LjAwMiAzODMuMzMzLjE2NiAzNTEuMTM1IDEyLjIyNSAzMjEuNzU1IDMyIDI5OS4zNDdWOTZjMC01My4wMTkgNDIuOTgxLTk2IDk2LTk2czk2IDQyLjk4MSA5NiA5NnYyMDMuMzQ3ek0yMDggMzg0YzAtMzQuMzM5LTE5LjM3LTUyLjE5LTMyLTY2LjUwMlY5NmMwLTI2LjQ2Ny0yMS41MzMtNDgtNDgtNDhTODAgNjkuNTMzIDgwIDk2djIyMS40OThjLTEyLjczMiAxNC40MjgtMzEuODI1IDMyLjEtMzEuOTk5IDY2LjA4LS4yMjQgNDMuODc2IDM1LjU2MyA4MC4xMTYgNzkuNDIzIDgwLjQyTDEyOCA0NjRjNDQuMTEyIDAgODAtMzUuODg4IDgwLTgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVyUXVhcnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3VjI4OGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjQwLjU4M2MxOS4xMjQgMTEuMDY4IDMyIDMxLjczMiAzMiA1NS40MTd6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDM4NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjQtMzUuMzQ2IDAtNjQtMjguNjU0LTY0LTY0IDAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3VjE2MGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjE2OC41ODNjMTkuMTI0IDExLjA2OCAzMiAzMS43MzIgMzIgNTUuNDE3em0zMi04NC42NTNjMTkuOTEyIDIyLjU2MyAzMiA1Mi4xOTQgMzIgODQuNjUzIDAgNzAuNjk2LTU3LjMwMyAxMjgtMTI4IDEyOC0uMjk5IDAtLjYwOS0uMDAxLS45MDktLjAwM0M1Ni43ODkgNTExLjUwOS0uMzU3IDQ1My42MzYuMDAyIDM4My4zMzMuMTY2IDM1MS4xMzUgMTIuMjI1IDMyMS43NTUgMzIgMjk5LjM0N1Y5NmMwLTUzLjAxOSA0Mi45ODEtOTYgOTYtOTZzOTYgNDIuOTgxIDk2IDk2djIwMy4zNDd6TTIwOCAzODRjMC0zNC4zMzktMTkuMzctNTIuMTktMzItNjYuNTAyVjk2YzAtMjYuNDY3LTIxLjUzMy00OC00OC00OFM4MCA2OS41MzMgODAgOTZ2MjIxLjQ5OGMtMTIuNzMyIDE0LjQyOC0zMS44MjUgMzIuMS0zMS45OTkgNjYuMDgtLjIyNCA0My44NzYgMzUuNTYzIDgwLjExNiA3OS40MjMgODAuNDJMMTI4IDQ2NGM0NC4xMTIgMCA4MC0zNS44ODggODAtODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlcm1vbWV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc2LjggMjAuNGMtMzcuNS0zMC43LTk1LjUtMjYuMy0xMzEuOSAxMC4ybC00NS43IDQ2IDUwLjUgNTAuNWMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTUwLjQtNTAuNS00NS4xIDQ1LjQgNTAuMyA1MC40YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMEwyMDkgMTY3LjRsLTQ1LjEgNDUuNEwyMTQgMjYzYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtNTAuMS01MC4yTDk2IDI4MS4xVjM4Mkw3IDQ3MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBsODktODloOTkuOUw0ODQgMTYyLjZjMzQuOS0zNC45IDQyLjItMTAxLjUtNy4yLTE0Mi4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1ic0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA1NnYyNDBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDgwYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ6bTQwIDIwMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRzMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNC0yNC0xMC43NDUtMjQtMjR6bTI3MiAyNTZjLTIwLjE4MyAwLTI5LjQ4NS0zOS4yOTMtMzMuOTMxLTU3Ljc5NS01LjIwNi0yMS42NjYtMTAuNTg5LTQ0LjA3LTI1LjM5My01OC45MDItMzIuNDY5LTMyLjUyNC00OS41MDMtNzMuOTY3LTg5LjExNy0xMTMuMTExYTExLjk4IDExLjk4IDAgMCAxLTMuNTU4LTguNTIxVjU5LjkwMWMwLTYuNTQxIDUuMjQzLTExLjg3OCAxMS43ODMtMTEuOTk4IDE1LjgzMS0uMjkgMzYuNjk0LTkuMDc5IDUyLjY1MS0xNi4xNzhDMjU2LjE4OSAxNy41OTggMjk1LjcwOS4wMTcgMzQzLjk5NSAwaDIuODQ0YzQyLjc3NyAwIDkzLjM2My40MTMgMTEzLjc3NCAyOS43MzcgOC4zOTIgMTIuMDU3IDEwLjQ0NiAyNy4wMzQgNi4xNDggNDQuNjMyIDE2LjMxMiAxNy4wNTMgMjUuMDYzIDQ4Ljg2MyAxNi4zODIgNzQuNzU3IDE3LjU0NCAyMy40MzIgMTkuMTQzIDU2LjEzMiA5LjMwOCA3OS40NjlsLjExLjExYzExLjg5MyAxMS45NDkgMTkuNTIzIDMxLjI1OSAxOS40MzkgNDkuMTk3LS4xNTYgMzAuMzUyLTI2LjE1NyA1OC4wOTgtNTkuNTUzIDU4LjA5OEgzNTAuNzIzQzM1OC4wMyAzNjQuMzQgMzg0IDM4OC4xMzIgMzg0IDQzMC41NDggMzg0IDUwNCAzMzYgNTEyIDMxMiA1MTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGh1bWJzVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA0IDIyNEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djI0MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoODBjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0OGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTY0IDQ3MmMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0ek0zODQgODEuNDUyYzAgNDIuNDE2LTI1Ljk3IDY2LjIwOC0zMy4yNzcgOTQuNTQ4aDEwMS43MjNjMzMuMzk3IDAgNTkuMzk3IDI3Ljc0NiA1OS41NTMgNTguMDk4LjA4NCAxNy45MzgtNy41NDYgMzcuMjQ5LTE5LjQzOSA0OS4xOTdsLS4xMS4xMWM5LjgzNiAyMy4zMzcgOC4yMzcgNTYuMDM3LTkuMzA4IDc5LjQ2OSA4LjY4MSAyNS44OTUtLjA2OSA1Ny43MDQtMTYuMzgyIDc0Ljc1NyA0LjI5OCAxNy41OTggMi4yNDQgMzIuNTc1LTYuMTQ4IDQ0LjYzMkM0NDAuMjAyIDUxMS41ODcgMzg5LjYxNiA1MTIgMzQ2LjgzOSA1MTJsLTIuODQ1LS4wMDFjLTQ4LjI4Ny0uMDE3LTg3LjgwNi0xNy41OTgtMTE5LjU2LTMxLjcyNS0xNS45NTctNy4wOTktMzYuODIxLTE1Ljg4Ny01Mi42NTEtMTYuMTc4LTYuNTQtLjEyLTExLjc4My01LjQ1Ny0xMS43ODMtMTEuOTk4di0yMTMuNzdjMC0zLjIgMS4yODItNi4yNzEgMy41NTgtOC41MjEgMzkuNjE0LTM5LjE0NCA1Ni42NDgtODAuNTg3IDg5LjExNy0xMTMuMTExIDE0LjgwNC0xNC44MzIgMjAuMTg4LTM3LjIzNiAyNS4zOTMtNTguOTAyQzI4Mi41MTUgMzkuMjkzIDI5MS44MTcgMCAzMTIgMGMyNCAwIDcyIDggNzIgODEuNDUyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1idGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTguMDI4IDIxNC4yNjdMMjg1Ljc5MyA5NkgzMjhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEg1NkM0Mi43NDUgMCAzMiAxMC43NDUgMzIgMjR2NDhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDQyLjIwN0w4NS45NzIgMjE0LjI2N0MzNy40NjUgMjM2LjgyIDAgMjc3LjI2MSAwIDMyOGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTM2djEwNC4wMDdjMCAxLjI0Mi4yODkgMi40NjcuODQ1IDMuNTc4bDI0IDQ4YzIuOTQxIDUuODgyIDExLjM2NCA1Ljg5MyAxNC4zMTEgMGwyNC00OGE4LjAwOCA4LjAwOCAwIDAgMCAuODQ1LTMuNTc4VjM1MmgxMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0LS4wMDEtNTEuMTgzLTM3Ljk4My05MS40Mi04NS45NzMtMTEzLjczM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaWNrZXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDE2MGgzMjB2MTkySDEyOFYxNjB6bTQwMCA5NmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4djk2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh2LTk2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhzLTIxLjQ5LTQ4LTQ4LTQ4di05NmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQ4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4em0tNDgtMTA0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgxMjBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYyMDhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTUyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpbWVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGltZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQyLjcyIDI1NmwxMDAuMDctMTAwLjA3YzEyLjI4LTEyLjI4IDEyLjI4LTMyLjE5IDAtNDQuNDhsLTIyLjI0LTIyLjI0Yy0xMi4yOC0xMi4yOC0zMi4xOS0xMi4yOC00NC40OCAwTDE3NiAxODkuMjggNzUuOTMgODkuMjFjLTEyLjI4LTEyLjI4LTMyLjE5LTEyLjI4LTQ0LjQ4IDBMOS4yMSAxMTEuNDVjLTEyLjI4IDEyLjI4LTEyLjI4IDMyLjE5IDAgNDQuNDhMMTA5LjI4IDI1NiA5LjIxIDM1Ni4wN2MtMTIuMjggMTIuMjgtMTIuMjggMzIuMTkgMCA0NC40OGwyMi4yNCAyMi4yNGMxMi4yOCAxMi4yOCAzMi4yIDEyLjI4IDQ0LjQ4IDBMMTc2IDMyMi43MmwxMDAuMDcgMTAwLjA3YzEyLjI4IDEyLjI4IDMyLjIgMTIuMjggNDQuNDggMGwyMi4yNC0yMi4yNGMxMi4yOC0xMi4yOCAxMi4yOC0zMi4xOSAwLTQ0LjQ4TDI0Mi43MiAyNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGludFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44MiA0NTguMUw0OTQuOTcgMzUwLjc4Yy41Mi01LjU3IDEuMDMtMTEuMTYgMS4wMy0xNi44NyAwLTExMS43Ni05OS43OS0xNTMuMzQtMTQ2Ljc4LTMxMS44Mi03Ljk0LTI4Ljc4LTQ5LjQ0LTMwLjEyLTU4LjQ0IDAtMTUuNTIgNTIuMzQtMzYuODcgOTEuOTYtNTguNDkgMTI1LjY4TDQ1LjQ3IDMuMzdDMzguNDktMi4wNSAyOC40My0uOCAyMy4wMSA2LjE4TDMuMzcgMzEuNDVDLTIuMDUgMzguNDItLjggNDguNDcgNi4xOCA1My45bDU4OC4zNiA0NTQuNzNjNi45OCA1LjQzIDE3LjAzIDQuMTcgMjIuNDYtMi44MWwxOS42NC0yNS4yN2M1LjQxLTYuOTcgNC4xNi0xNy4wMi0yLjgyLTIyLjQ1ek0xNDQgMzMzLjkxQzE0NCA0MzIuMzUgMjIyLjcyIDUxMiAzMjAgNTEyYzQ0LjcxIDAgODUuMzctMTYuOTYgMTE2LjQtNDQuN0wxNjIuNzIgMjU1Ljc4Yy0xMS40MSAyMy41LTE4LjcyIDQ4LjM1LTE4LjcyIDc4LjEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA1LjIyIDIyLjA5Yy03Ljk0LTI4Ljc4LTQ5LjQ0LTMwLjEyLTU4LjQ0IDBDMTAwLjAxIDE3OS44NSAwIDIyMi43MiAwIDMzMy45MSAwIDQzMi4zNSA3OC43MiA1MTIgMTc2IDUxMnMxNzYtNzkuNjUgMTc2LTE3OC4wOWMwLTExMS43NS05OS43OS0xNTMuMzQtMTQ2Ljc4LTMxMS44MnpNMTc2IDQ0OGMtNjEuNzUgMC0xMTItNTAuMjUtMTEyLTExMiAwLTguODQgNy4xNi0xNiAxNi0xNnMxNiA3LjE2IDE2IDE2YzAgNDQuMTEgMzUuODkgODAgODAgODAgOC44NCAwIDE2IDcuMTYgMTYgMTZzLTcuMTYgMTYtMTYgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMzMuOCAxODkuN2w4MC00OGMxMS42LTYuOSAyNCA3LjcgMTUuNCAxOEwzNDMuNiAyMDhsMzMuNiA0MC4zYzguNyAxMC40LTMuOSAyNC44LTE1LjQgMThsLTgwLTQ4Yy03LjctNC43LTcuNy0xNS45IDAtMjAuNnptLTE2My0zMGMtOC42LTEwLjMgMy44LTI0LjkgMTUuNC0xOGw4MCA0OGM3LjggNC43IDcuOCAxNS45IDAgMjAuNmwtODAgNDhjLTExLjUgNi44LTI0LTcuNi0xNS40LTE4bDMzLjYtNDAuMy0zMy42LTQwLjN6TTI0OCAyODhjNTEuOSAwIDExNS4zIDQzLjggMTIzLjIgMTA2LjcgMS43IDEzLjYtOCAyNC42LTE3LjcgMjAuNC0yNS45LTExLjEtNjQuNC0xNy40LTEwNS41LTE3LjRzLTc5LjYgNi4zLTEwNS41IDE3LjRjLTkuOCA0LjItMTkuNC03LTE3LjctMjAuNEMxMzIuNyAzMzEuOCAxOTYuMSAyODggMjQ4IDI4OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2dnbGVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDY0SDE5MkM4NS45NjEgNjQgMCAxNDkuOTYxIDAgMjU2czg1Ljk2MSAxOTIgMTkyIDE5MmgxOTJjMTA2LjAzOSAwIDE5Mi04NS45NjEgMTkyLTE5MlM0OTAuMDM5IDY0IDM4NCA2NHpNNjQgMjU2YzAtNzAuNzQxIDU3LjI0OS0xMjggMTI4LTEyOCA3MC43NDEgMCAxMjggNTcuMjQ5IDEyOCAxMjggMCA3MC43NDEtNTcuMjQ5IDEyOC0xMjggMTI4LTcwLjc0MSAwLTEyOC01Ny4yNDktMTI4LTEyOHptMzIwIDEyOGgtNDguOTA1YzY1LjIxNy03Mi44NTggNjUuMjM2LTE4My4xMiAwLTI1NkgzODRjNzAuNzQxIDAgMTI4IDU3LjI0OSAxMjggMTI4IDAgNzAuNzQtNTcuMjQ5IDEyOC0xMjggMTI4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvZ2dsZU9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA2NEgxOTJDODYgNjQgMCAxNTAgMCAyNTZzODYgMTkyIDE5MiAxOTJoMTkyYzEwNiAwIDE5Mi04NiAxOTItMTkyUzQ5MCA2NCAzODQgNjR6bTAgMzIwYy03MC44IDAtMTI4LTU3LjMtMTI4LTEyOCAwLTcwLjggNTcuMy0xMjggMTI4LTEyOCA3MC44IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDcwLjgtNTcuMyAxMjgtMTI4IDEyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXRQYXBlclNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0LDE5MlYzNjQuMTNjMCw0MS4xMi05Ljc1LDYyLjc1LTMxLjEyLDEyNi44N0ExNiwxNiwwLDAsMCw0OCw1MTJIMzI4Ljg2YTMxLjg3LDMxLjg3LDAsMCwwLDMwLjM4LTIxLjg3YzkuMzEtMjcuODMsMTgtNTMuMzUsMjIuMTgtODUuNTVsLTMxNi0yNDQuMjVDNjQuNTMsMTcwLjY2LDY0LDE4MS4xOSw2NCwxOTJaTTYzMy44Miw0NTguMDlsLTEwMi03OC44MUM1NzUuMjgsMzYwLjkxLDYwOCwyODQuMzIsNjA4LDE5Miw2MDgsODYsNTY1LDAsNTEyLDBzLTk2LDg2LTk2LDE5MmMwLDQyLDcsODAuNCwxOC40MywxMTJMMzg0LDI2NVYxOTJjMC04My42MiwyMy42My0xNTMuNSw2MC41LTE5MkgxNjBjLTIzLjMzLDAtNDQuNjMsMTYuODMtNjEuMjYsNDQuNTNMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDVBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTQsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODFsMTkuNjQtMjUuMjZBMTYsMTYsMCwwLDAsNjMzLjgyLDQ1OC4wOVpNNTEyLDI1NmMtMTcuNjMsMC0zMi0yOC42Mi0zMi02NHMxNC4zNy02NCwzMi02NCwzMiwyOC42MywzMiw2NFM1MjkuNjIsMjU2LDUxMiwyNTZaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9pbGV0UGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBDNzQuOTggMCAzMiA4NS45NiAzMiAxOTJ2MTcyLjA3YzAgNDEuMTItOS44IDYyLjc3LTMxLjE3IDEyNi44N0MtMi42MiA1MDEuMyA1LjA5IDUxMiAxNi4wMSA1MTJoMjgwLjkyYzEzLjc3IDAgMjYtOC44MSAzMC4zNi0yMS44OCAxMi44My0zOC40OCAyNC43MS03Mi40IDI0LjcxLTEyNi4wNVYxOTJjMC04My42IDIzLjY3LTE1My41MiA2MC40NC0xOTJIMTI4ek05NiAyMjRjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2em02NCAwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnptNjQgMGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6bTY0IDBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2ek00ODAgMGMtNTMuMDIgMC05NiA4NS45Ni05NiAxOTJzNDIuOTggMTkyIDk2IDE5MiA5Ni04NS45NiA5Ni0xOTJTNTMzLjAyIDAgNDgwIDB6bTAgMjU2Yy0xNy42NyAwLTMyLTI4LjY1LTMyLTY0czE0LjMzLTY0IDMyLTY0IDMyIDI4LjY1IDMyIDY0LTE0LjMzIDY0LTMyIDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggNDhjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNkgxNkM3LjIgMCAwIDcuMiAwIDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNmgxNnYxNTYuN0MxMS44IDIxNC44IDAgMjI2LjkgMCAyNDBjMCA2Ny4yIDM0LjYgMTI2LjIgODYuOCAxNjAuNWwtMjEuNCA3MC4yQzU5LjEgNDkxLjIgNzQuNSA1MTIgOTYgNTEyaDE5MmMyMS41IDAgMzYuOS0yMC44IDMwLjYtNDEuM2wtMjEuNC03MC4yQzM0OS40IDM2Ni4yIDM4NCAzMDcuMiAzODQgMjQwYzAtMTMuMS0xMS44LTI1LjItMzItMzUuM1Y0OGgxNnpNODAgNzJjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIODhjLTQuNCAwLTgtMy42LTgtOFY3MnptMTEyIDIwMGMtNzcuMSAwLTEzOS42LTE0LjMtMTM5LjYtMzJzNjIuNS0zMiAxMzkuNi0zMiAxMzkuNiAxNC4zIDEzOS42IDMyLTYyLjUgMzItMTM5LjYgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9vbGJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjMgMjE0LjYzbC00NS4yNS00NS4yNWMtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0gzODRWODBjMC0yNi41MS0yMS40OS00OC00OC00OEgxNzZjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2ODBINzcuMjVjLTguNDkgMC0xNi42MiAzLjM3LTIyLjYzIDkuMzdMOS4zNyAyMTQuNjNjLTYgNi05LjM3IDE0LjE0LTkuMzcgMjIuNjNWMzIwaDEyOHYtMTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MTZoMTI4di0xNmMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNmgxMjh2LTgyLjc1YzAtOC40OC0zLjM3LTE2LjYyLTkuMzctMjIuNjJ6TTMyMCAxNjBIMTkyVjk2aDEyOHY2NHptNjQgMjA4YzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2SDE5MnYxNmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2di0xNkgwdjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDQ4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2SDM4NHYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb29scyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuMSAzOTUuN0wzODQgMjc4LjZjLTIzLjEtMjMuMS01Ny42LTI3LjYtODUuNC0xMy45TDE5MiAxNTguMVY5Nkw2NCAwIDAgNjRsOTYgMTI4aDYyLjFsMTA2LjYgMTA2LjZjLTEzLjYgMjcuOC05LjIgNjIuMyAxMy45IDg1LjRsMTE3LjEgMTE3LjFjMTQuNiAxNC42IDM4LjIgMTQuNiA1Mi43IDBsNTIuNy01Mi43YzE0LjUtMTQuNiAxNC41LTM4LjIgMC01Mi43ek0zMzEuNyAyMjVjMjguMyAwIDU0LjkgMTEgNzQuOSAzMWwxOS40IDE5LjRjMTUuOC02LjkgMzAuOC0xNi41IDQzLjgtMjkuNSAzNy4xLTM3LjEgNDkuNy04OS4zIDM3LjktMTM2LjctMi4yLTktMTMuNS0xMi4xLTIwLjEtNS41bC03NC40IDc0LjQtNjcuOS0xMS4zTDMzNCA5OC45bDc0LjQtNzQuNGM2LjYtNi42IDMuNC0xNy45LTUuNy0yMC4yLTQ3LjQtMTEuNy05OS42LjktMTM2LjYgMzcuOS0yOC41IDI4LjUtNDEuOSA2Ni4xLTQxLjIgMTAzLjZsODIuMSA4Mi4xYzguMS0xLjkgMTYuNS0yLjkgMjQuNy0yLjl6bS0xMDMuOSA4MmwtNTYuNy01Ni43TDE4LjcgNDAyLjhjLTI1IDI1LTI1IDY1LjUgMCA5MC41czY1LjUgMjUgOTAuNSAwbDEyMy42LTEyMy42Yy03LjYtMTkuOS05LjktNDEuNi01LTYyLjd6TTY0IDQ3MmMtMTMuMiAwLTI0LTEwLjgtMjQtMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLjItMTAuNyAyNC0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDMuOTggOTYuMjVjLTExLjAxLTQ1LjIyLTQ3LjExLTgyLjA2LTkyLjAxLTkzLjcyLTMyLjE5LTguMzYtNjMgNS4xLTg5LjE0IDI0LjMzLTMuMjUgMi4zOS02Ljk2IDMuNzMtMTAuNSA1LjQ4bDI4LjMyIDE4LjIxYzcuNDIgNC43NyA5LjU4IDE0LjY3IDQuOCAyMi4xMS00LjQ2IDYuOTUtMTQuMjcgOS44Ni0yMi4xMSA0LjhMMTYyLjgzIDEyLjg0Yy0yMC43LTEwLjg1LTQzLjM4LTE2LjQtNjYuODEtMTAuMzEtNDQuOSAxMS42Ny04MSA0OC41LTkyLjAxIDkzLjcyLTEwLjEzIDQxLjYyLS40MiA4MC44MSAyMS41IDExMC40MyAyMy4zNiAzMS41NyAzMi42OCA2OC42NiAzNi4yOSAxMDcuMzUgNC40IDQ3LjE2IDEwLjMzIDk0LjE2IDIwLjk0IDE0MC4zMmw3LjggMzMuOTVjMy4xOSAxMy44NyAxNS40OSAyMy43IDI5LjY3IDIzLjcgMTMuOTcgMCAyNi4xNS05LjU1IDI5LjU0LTIzLjE2bDM0LjQ3LTEzOC40MmM0LjU2LTE4LjMyIDIwLjk2LTMxLjE2IDM5Ljc2LTMxLjE2czM1LjIgMTIuODUgMzkuNzYgMzEuMTZsMzQuNDcgMTM4LjQyYzMuMzkgMTMuNjEgMTUuNTcgMjMuMTYgMjkuNTQgMjMuMTYgMTQuMTggMCAyNi40OC05LjgzIDI5LjY3LTIzLjdsNy44LTMzLjk1YzEwLjYxLTQ2LjE1IDE2LjUzLTkzLjE2IDIwLjk0LTE0MC4zMiAzLjYxLTM4LjcgMTIuOTMtNzUuNzggMzYuMjktMTA3LjM1IDIxLjk1LTI5LjYxIDMxLjY2LTY4LjggMjEuNTMtMTEwLjQzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvcmFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC4wNSAzNjYuNDhsMTcuNzItMjkuNjRoLTM1LjQ2em05OS4yMS0xNjZIMzgyLjRsMTguNDYgMzAuODJ6TTQ4IDBDMjEuNDkgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMTcuNjcgMjEuNDkgMzIgNDggMzJzNDgtMTQuMzMgNDgtMzJWMzJDOTYgMTQuMzMgNzQuNTEgMCA0OCAwem0xNzIuNzQgMzExLjVoMzYuODVsLTE4LjQ2LTMwLjgyem0xNjEuNzEgMGgzNi44NmwtMTguNDUtMzAuOHpNMTI4IDQ2NGgzODRWNDhIMTI4em02Ni43Ny0yNzguMTNhMjEuMjIgMjEuMjIgMCAwIDEgMTguNDgtMTAuNzFoNTkuNDVsMjkuMTMtNDguNzFhMjEuMTMgMjEuMTMgMCAwIDEgMTguMjItMTAuMzdBMjAuNzYgMjAuNzYgMCAwIDEgMzM4IDEyNi4yOWwyOS4yNSA0OC44Nmg1OS41MmEyMS4xMiAyMS4xMiAwIDAgMSAxOC4xIDMyTDQxNS42MyAyNTYgNDQ1IDMwNWEyMC42OSAyMC42OSAwIDAgMSAuMjQgMjEuMTIgMjEuMjUgMjEuMjUgMCAwIDEtMTguNDggMTAuNzJoLTU5LjQ3bC0yOS4xMyA0OC43YTIxLjEzIDIxLjEzIDAgMCAxLTE4LjE2IDEwLjQgMjAuNzkgMjAuNzkgMCAwIDEtMTgtMTAuMjJsLTI5LjI1LTQ4Ljg4aC01OS41YTIxLjExIDIxLjExIDAgMCAxLTE4LjEtMzJMMjI0LjM2IDI1NiAxOTUgMjA3YTIwLjcgMjAuNyAwIDAgMS0uMjMtMjEuMTN6TTU5MiAwYy0yNi41MSAwLTQ4IDE0LjMzLTQ4IDMydjQ0OGMwIDE3LjY3IDIxLjQ5IDMyIDQ4IDMyczQ4LTE0LjMzIDQ4LTMyVjMyYzAtMTcuNjctMjEuNDktMzItNDgtMzJ6TTMyMCAxNDUuNTNsLTE3Ljc4IDI5LjYyaDM1LjQ2em0tNjIuNDUgNTVoLTM2LjgxbDE4LjQ0IDMwLjh6bTI5LjU4IDExMWg2NS43OUwzODYuMDkgMjU2bC0zMy4yMy01NS41MmgtNjUuNzlMMjUzLjkgMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvcmlpR2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzYuNDUgMzJoLTI0MC45QTMwMy4xNyAzMDMuMTcgMCAwIDEgMCAwdjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJ2NjRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djI0MGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyNTZoMjU2djI0MGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyNTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2aC00OHYtNjRoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYwYTMwMy4xNyAzMDMuMTcgMCAwIDEtMTM1LjU1IDMyek0xMjggMTI4aDk2djY0aC05NnYtNjR6bTI1NiA2NGgtOTZ2LTY0aDk2djY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWN0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDMzNmMtNDguNiAwLTg4IDM5LjQtODggODhzMzkuNCA4OCA4OCA4OCA4OC0zOS40IDg4LTg4LTM5LjQtODgtODgtODh6bTAgMTEyYy0xMy4yMyAwLTI0LTEwLjc3LTI0LTI0czEwLjc3LTI0IDI0LTI0IDI0IDEwLjc3IDI0IDI0LTEwLjc3IDI0LTI0IDI0em04MC0yODhoLTY0di00MC4yYzAtMTQuMTIgNC43LTI3Ljc2IDEzLjE1LTM4Ljg0IDQuNDItNS44IDMuNTUtMTQuMDYtMS4zMi0xOS40OUw1MzQuMiAzNy4zYy02LjY2LTcuNDUtMTguMzItNi45Mi0yNC43Ljc4QzQ5MC41OCA2MC45IDQ4MCA4OS44MSA0ODAgMTE5LjhWMTYwSDM3Ny42N0wzMjEuNTggMjkuMTRBNDcuOTE0IDQ3LjkxNCAwIDAgMCAyNzcuNDUgMEgxNDRjLTI2LjQ3IDAtNDggMjEuNTMtNDggNDh2MTQ2LjUyYy04LjYzLTYuNzMtMjAuOTYtNi40Ni0yOC44OSAxLjQ3TDM2IDIyNy4xYy04LjU5IDguNTktOC41OSAyMi41MiAwIDMxLjExbDUuMDYgNS4wNmMtNC45OSA5LjI2LTguOTYgMTguODItMTEuOTEgMjguNzJIMjJjLTEyLjE1IDAtMjIgOS44NS0yMiAyMnY0NGMwIDEyLjE1IDkuODUgMjIgMjIgMjJoNy4xNGMyLjk2IDkuOTEgNi45MiAxOS40NiAxMS45MSAyOC43M2wtNS4wNiA1LjA2Yy04LjU5IDguNTktOC41OSAyMi41MiAwIDMxLjExTDY3LjEgNDc2YzguNTkgOC41OSAyMi41MiA4LjU5IDMxLjExIDBsNS4wNi01LjA2YzkuMjYgNC45OSAxOC44MiA4Ljk2IDI4LjcyIDExLjkxVjQ5MGMwIDEyLjE1IDkuODUgMjIgMjIgMjJoNDRjMTIuMTUgMCAyMi05Ljg1IDIyLTIydi03LjE0YzkuOS0yLjk1IDE5LjQ2LTYuOTIgMjguNzItMTEuOTFsNS4wNiA1LjA2YzguNTkgOC41OSAyMi41MiA4LjU5IDMxLjExIDBsMzEuMTEtMzEuMTFjOC41OS04LjU5IDguNTktMjIuNTIgMC0zMS4xMWwtNS4wNi01LjA2YzQuOTktOS4yNiA4Ljk2LTE4LjgyIDExLjkxLTI4LjcySDMzMGMxMi4xNSAwIDIyLTkuODUgMjItMjJ2LTZoODAuNTRjMjEuOTEtMjguOTkgNTYuMzItNDggOTUuNDYtNDggMTguNjQgMCAzNi4wNyA0LjYxIDUxLjggMTIuMmw1MC44Mi01MC44MmM2LTYgOS4zNy0xNC4xNCA5LjM3LTIyLjYzVjE5MmMuMDEtMTcuNjctMTQuMzItMzItMzEuOTktMzJ6TTE3NiA0MTZjLTQ0LjE4IDAtODAtMzUuODItODAtODBzMzUuODItODAgODAtODAgODAgMzUuODIgODAgODAtMzUuODIgODAtODAgODB6bTIyLTI1NmgtMzhWNjRoMTA2Ljg5bDQxLjE1IDk2SDE5OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFkZW1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjYwLjYgOTZIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0My4xYzAgNi42IDUuNCAxMiAxMiAxMmg4NS4xVjQwNGMwIDYuNiA1LjQgMTIgMTIgMTJoNTQuM2M2LjYgMCAxMi01LjQgMTItMTJWMTYzLjFoODUuMWM2LjYgMCAxMi01LjQgMTItMTJWMTA4Yy4xLTYuNi01LjMtMTItMTEuOS0xMnpNNjQwIDQwM2wtMjQtMjk2Yy0uNS02LjItNS43LTExLTEyLTExaC02NS40Yy01LjEgMC05LjcgMy4zLTExLjMgOC4xbC00My44IDEyNy4xYy03LjIgMjAuNi0xNi4xIDUyLjgtMTYuMSA1Mi44aC0uOXMtOC45LTMyLjItMTYuMS01Mi44bC00My44LTEyNy4xYy0xLjctNC44LTYuMi04LjEtMTEuMy04LjFoLTY1LjRjLTYuMiAwLTExLjQgNC44LTEyIDExbC0yNC40IDI5NmMtLjYgNyA0LjkgMTMgMTIgMTNIMzYwYzYuMyAwIDExLjUtNC45IDEyLTExLjJsOS4xLTEzMi45YzEuOC0yNC4yIDAtNTMuNyAwLTUzLjdoLjlzMTAuNyAzMy42IDE3LjkgNTMuN2wzMC43IDg0LjdjMS43IDQuNyA2LjIgNy45IDExLjMgNy45aDUwLjNjNS4xIDAgOS42LTMuMiAxMS4zLTcuOWwzMC43LTg0LjdjNy4yLTIwLjEgMTcuOS01My43IDE3LjktNTMuN2guOXMtMS44IDI5LjUgMCA1My43bDkuMSAxMzIuOWMuNCA2LjMgNS43IDExLjIgMTIgMTEuMkg2MjhjNyAwIDEyLjUtNiAxMi0xM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFmZmljTGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE5MmgtNjR2LTM3Ljg4YzM3LjItMTMuMjIgNjQtNDguMzggNjQtOTAuMTJoLTY0VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIOTZDNzguMzMgMCA2NCAxNC4zMyA2NCAzMnYzMkgwYzAgNDEuNzQgMjYuOCA3Ni45IDY0IDkwLjEyVjE5MkgwYzAgNDEuNzQgMjYuOCA3Ni45IDY0IDkwLjEyVjMyMEgwYzAgNDIuODQgMjguMjUgNzguNjkgNjYuOTkgOTEuMDVDNzkuNDIgNDY4LjcyIDEzMC42IDUxMiAxOTIgNTEyczExMi41OC00My4yOCAxMjUuMDEtMTAwLjk1QzM1NS43NSAzOTguNjkgMzg0IDM2Mi44NCAzODQgMzIwaC02NHYtMzcuODhjMzcuMi0xMy4yMiA2NC00OC4zOCA2NC05MC4xMnpNMTkyIDQxNmMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMC0xMjhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTAtMTI4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWlsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0LDMyMEg1NDRWODBhMTYsMTYsMCwwLDAtMTYtMTZIMTZBMTYsMTYsMCwwLDAsMCw4MFYzNjhhMTYsMTYsMCwwLDAsMTYsMTZINjUuNjFjNy44My01NC4yMSw1NC05NiwxMTAuMzktOTZzMTAyLjU2LDQxLjc5LDExMC4zOSw5Nkg2MjRhMTYsMTYsMCwwLDAsMTYtMTZWMzM2QTE2LDE2LDAsMCwwLDYyNCwzMjBaTTk2LDI0My42OGExNzYuMjksMTc2LjI5LDAsMCwwLTMyLDIwLjcxVjEzNmE4LDgsMCwwLDEsOC04SDg4YTgsOCwwLDAsMSw4LDhabTk2LTE4LjU0Yy01LjMxLS40OS0xMC41Ny0xLjE0LTE2LTEuMTRzLTEwLjY5LjY1LTE2LDEuMTRWMTM2YTgsOCwwLDAsMSw4LThoMTZhOCw4LDAsMCwxLDgsOFptOTYsMzkuMjVhMTc2LjI5LDE3Ni4yOSwwLDAsMC0zMi0yMC43MVYxMzZhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4Wk0zODQsMzIwSDM1MlYxMzZhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4Wm05NiwwSDQ0OFYxMzZhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4Wm0tMzA0LDBhODAsODAsMCwxLDAsODAsODBBODAsODAsMCwwLDAsMTc2LDMyMFptMCwxMTJhMzIsMzIsMCwxLDEsMzItMzJBMzIsMzIsMCwwLDEsMTc2LDQzMlpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZ2MjU2YzAgNTEuODE1LTYxLjYyNCA5Ni0xMzAuMDIyIDk2bDYyLjk4IDQ5LjcyMUMzODYuOTA1IDUwMi40MTcgMzgzLjU2MiA1MTIgMzc2IDUxMkg3MmMtNy41NzggMC0xMC44OTItOS41OTQtNC45NTctMTQuMjc5TDEzMC4wMjIgNDQ4QzYxLjgyIDQ0OCAwIDQwMy45NTQgMCAzNTJWOTZDMCA0Mi45ODEgNjQgMCAxMjggMGgxOTJjNjUgMCAxMjggNDIuOTgxIDEyOCA5NnptLTQ4IDEzNlYxMjBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDcyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0em0tMTc2IDY0Yy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzA1LjcgMCAyODggMHMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0yMjMuNS0xMi4xYy0yLjMtOC42LTExLTEzLjYtMTkuNi0xMS4zbC00ODAgMTI4Yy04LjUgMi4zLTEzLjYgMTEtMTEuMyAxOS42QzIuNSAxOTUuMyA4LjkgMjAwIDE2IDIwMGMxLjQgMCAyLjgtLjIgNC4xLS41TDI0MCAxNDAuOFYyMjRINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI3MnYtOTEuN2wyMjguMS02MC44YzguNi0yLjMgMTMuNi0xMS4xIDExLjQtMTkuNnpNMTc2IDM4NEg4MHYtOTZoOTZ2OTZ6bTE2MC05Nmg5NnY5NmgtOTZ2LTk2em0tMzIgMHY5NmgtOTZ2LTk2aDk2ek0xOTIgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYW5zZ2VuZGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2OCAwaC03OWMtMTAuNyAwLTE2IDEyLjktOC41IDIwLjVsMTYuOSAxNi45LTgwLjcgODAuN0MyOTQuNSAxMDQuMSAyNjguMiA5NiAyNDAgOTZjLTI4LjIgMC01NC41IDguMS03Ni43IDIyLjFsLTE2LjUtMTYuNSAxOS44LTE5LjhjNC43LTQuNyA0LjctMTIuMyAwLTE3bC0yOC4zLTI4LjNjLTQuNy00LjctMTIuMy00LjctMTcgMGwtMTkuOCAxOS44LTE5LTE5IDE2LjktMTYuOUMxMDcuMSAxMi45IDEwMS43IDAgOTEgMEgxMkM1LjQgMCAwIDUuNCAwIDEydjc5YzAgMTAuNyAxMi45IDE2IDIwLjUgOC41bDE2LjktMTYuOSAxOSAxOS0xOS44IDE5LjhjLTQuNyA0LjctNC43IDEyLjMgMCAxN2wyOC4zIDI4LjNjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDE5LjgtMTkuOCAxNi41IDE2LjVDMTA0LjEgMTg1LjUgOTYgMjExLjggOTYgMjQwYzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFY0MDhoLTM2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djI4YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTI4aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtMjcuNmM2NC4xLTE0LjYgMTEyLTcxLjkgMTEyLTE0MC40IDAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsODAuNy04MC43IDE2LjkgMTYuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41VjEyYzAtNi42LTUuNC0xMi0xMi0xMnpNMjQwIDMyMGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhbnNnZW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktODAuNyA4MC43QzE5OC41IDEwNC4xIDE3Mi4yIDk2IDE0NCA5NiA2NC41IDk2IDAgMTYwLjUgMCAyNDBjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQwOEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYyOGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0yOGgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTI3LjZjNjQuMS0xNC42IDExMi03MS45IDExMi0xNDAuNCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDgwLjctODAuNyAxNi45IDE2LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCAzMjBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ2NGE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4SDMyem0yNzItMjU2YTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6bS05NiAwYTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6bS05NiAwYTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6TTQzMiAzMkgzMTJsLTkuNC0xOC43QTI0IDI0IDAgMCAwIDI4MS4xIDBIMTY2LjhhMjMuNzIgMjMuNzIgMCAwIDAtMjEuNCAxMy4zTDEzNiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaFJlc3RvcmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNDY0YTQ4IDQ4IDAgMCAwIDQ4IDQ4aDI4OGE0OCA0OCAwIDAgMCA0OC00OFYxMjhIMzJ6bTkxLjMxLTE3Mi44bDg5LjM4LTk0LjI2YTE1LjQxIDE1LjQxIDAgMCAxIDIyLjYyIDBsODkuMzggOTQuMjZjMTAuMDggMTAuNjIgMi45NCAyOC44LTExLjMyIDI4LjhIMjU2djExMmExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZWMzIwaC01Ny4zN2MtMTQuMjYgMC0yMS40LTE4LjE4LTExLjMyLTI4Ljh6TTQzMiAzMkgzMTJsLTkuNC0xOC43QTI0IDI0IDAgMCAwIDI4MS4xIDBIMTY2LjhhMjMuNzIgMjMuNzIgMCAwIDAtMjEuNCAxMy4zTDEzNiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaFJlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTMuMiA0NjdhNDggNDggMCAwIDAgNDcuOSA0NWgyNDUuOGE0OCA0OCAwIDAgMCA0Ny45LTQ1TDQxNiAxMjhIMzJ6bTcwLjExLTE3NS44bDg5LjM4LTk0LjI2YTE1LjQxIDE1LjQxIDAgMCAxIDIyLjYyIDBsODkuMzggOTQuMjZjMTAuMDggMTAuNjIgMi45NCAyOC44LTExLjMyIDI4LjhIMjU2djExMmExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZWMzIwaC01Ny4zN2MtMTQuMjYgMC0yMS40LTE4LjE4LTExLjMyLTI4Ljh6TTQzMiAzMkgzMTJsLTkuNC0xOC43QTI0IDI0IDAgMCAwIDI4MS4xIDBIMTY2LjhhMjMuNzIgMjMuNzIgMCAwIDAtMjEuNCAxMy4zTDEzNiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMzJIMzEybC05LjQtMTguN0EyNCAyNCAwIDAgMCAyODEuMSAwSDE2Ni44YTIzLjcyIDIzLjcyIDAgMCAwLTIxLjQgMTMuM0wxMzYgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6TTUzLjIgNDY3YTQ4IDQ4IDAgMCAwIDQ3LjkgNDVoMjQ1LjhhNDggNDggMCAwIDAgNDcuOS00NUw0MTYgMTI4SDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc4LjMxIDM3OC40OUwyOTguNDIgMjg4aDMwLjYzYzkuMDEgMCAxNi45OC01IDIwLjc4LTEzLjA2IDMuOC04LjA0IDIuNTUtMTcuMjYtMy4yOC0yNC4wNUwyNjguNDIgMTYwaDI4Ljg5YzkuMSAwIDE3LjMtNS4zNSAyMC44Ni0xMy42MSAzLjUyLTguMTMgMS44Ni0xNy41OS00LjI0LTI0LjA4TDIwMy42NiA0LjgzYy02LjAzLTYuNDUtMTcuMjgtNi40NS0yMy4zMiAwTDcwLjA2IDEyMi4zMWMtNi4xIDYuNDktNy43NSAxNS45NS00LjI0IDI0LjA4QzY5LjM4IDE1NC42NSA3Ny41OSAxNjAgODYuNjkgMTYwaDI4Ljg5bC03OC4xNCA5MC45MWMtNS44MSA2Ljc4LTcuMDYgMTUuOTktMy4yNyAyNC4wNEMzNy45NyAyODMgNDUuOTMgMjg4IDU0Ljk1IDI4OGgzMC42M0w1LjY5IDM3OC40OWMtNiA2Ljc5LTcuMzYgMTYuMDktMy41NiAyNC4yNiAzLjc1IDguMDUgMTIgMTMuMjUgMjEuMDEgMTMuMjVIMTYwdjI0LjQ1bC0zMC4yOSA0OC40Yy01LjMyIDEwLjY0IDIuNDIgMjMuMTYgMTQuMzEgMjMuMTZoOTUuOTZjMTEuODkgMCAxOS42My0xMi41MiAxNC4zMS0yMy4xNkwyMjQgNDQwLjQ1VjQxNmgxMzYuODZjOS4wMSAwIDE3LjI2LTUuMiAyMS4wMS0xMy4yNSAzLjgtOC4xNyAyLjQ0LTE3LjQ3LTMuNTYtMjQuMjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJvcGh5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MiA2NEg0NDhWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0MEgyNEMxMC43IDY0IDAgNzQuNyAwIDg4djU2YzAgMzUuNyAyMi41IDcyLjQgNjEuOSAxMDAuNyAzMS41IDIyLjcgNjkuOCAzNy4xIDExMCA0MS43QzIwMy4zIDMzOC41IDI0MCAzNjAgMjQwIDM2MHY3MmgtNDhjLTM1LjMgMC02NCAyMC43LTY0IDU2djEyYzAgNi42IDUuNCAxMiAxMiAxMmgyOTZjNi42IDAgMTItNS40IDEyLTEydi0xMmMwLTM1LjMtMjguNy01Ni02NC01NmgtNDh2LTcyczM2LjctMjEuNSA2OC4xLTczLjZjNDAuMy00LjYgNzguNi0xOSAxMTAtNDEuNyAzOS4zLTI4LjMgNjEuOS02NSA2MS45LTEwMC43Vjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0ek05OS4zIDE5Mi44Qzc0LjkgMTc1LjIgNjQgMTU1LjYgNjQgMTQ0di0xNmg2NC4yYzEgMzIuNiA1LjggNjEuMiAxMi44IDg2LjItMTUuMS01LjItMjkuMi0xMi40LTQxLjctMjEuNHpNNTEyIDE0NGMwIDE2LjEtMTcuNyAzNi4xLTM1LjMgNDguOC0xMi41IDktMjYuNyAxNi4yLTQxLjggMjEuNCA3LTI1IDExLjgtNTMuNiAxMi44LTg2LjJINTEydjE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTG9hZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MC4yIDM3NS42YzIuMyA4LjUgMTEuMSAxMy42IDE5LjYgMTEuM2wyMTYuNC01OGM4LjUtMi4zIDEzLjYtMTEuMSAxMS4zLTE5LjZsLTQ5LjctMTg1LjVjLTIuMy04LjUtMTEuMS0xMy42LTE5LjYtMTEuM0wxNTEgMTMzLjNsMjQuOCA5Mi43LTYxLjggMTYuNS0yNC44LTkyLjctNzcuMyAyMC43QzMuNCAxNzIuOC0xLjcgMTgxLjYuNiAxOTAuMWw0OS42IDE4NS41ek0zODQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzIzLjZMNS45IDQ1MGMtNC4zIDEuMi02LjggNS42LTUuNiA5LjhsMTIuNiA0Ni4zYzEuMiA0LjMgNS42IDYuOCA5LjggNS42bDM5My43LTEwNy40QzQxOC44IDQ2NC4xIDQ2Ny42IDUxMiA1MjggNTEyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyVjBIMzg0em0xNDQgNDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja01vbnN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDIyNGgtMTZ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTczLjZMNDE5LjIyIDI0LjAyQTY0LjAyNSA2NC4wMjUgMCAwIDAgMzY5LjI0IDBIMjU2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2SDQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY4MEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYuNzJjMjkuMjEtMzguNjUgNzUuMS02NCAxMjcuMjgtNjRzOTguMDcgMjUuMzUgMTI3LjI4IDY0aDY1LjQ1YzI5LjIxLTM4LjY1IDc1LjEtNjQgMTI3LjI4LTY0czk4LjA3IDI1LjM1IDEyNy4yOCA2NEg2MjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0tMzM2LTk2VjY0aDgxLjI0bDUxLjIgNjRIMjg4em0zMDQgMjI0aC01LjJjLTIuMi03LjMzLTUuMDctMTQuMjgtOC42NS0yMC44OWwzLjY3LTMuNjdjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTMuNjcgMy42N0ExMTAuODUgMTEwLjg1IDAgMCAwIDUxMiAyNzcuMlYyNzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY1LjJjLTcuMzMgMi4yLTE0LjI4IDUuMDctMjAuODkgOC42NWwtMy42Ny0zLjY3Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0yMi42MyAyMi42M2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wzLjY3IDMuNjdBMTEwLjg1IDExMC44NSAwIDAgMCAzNzMuMiAzNTJIMzY4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg1LjJjMi4yIDcuMzMgNS4wNyAxNC4yOCA4LjY1IDIwLjg5bC0zLjY3IDMuNjdjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjMgMjIuNjNjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwzLjY3LTMuNjdjNi42MSAzLjU3IDEzLjU3IDYuNDUgMjAuOSA4LjY1djUuMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNS4yYzcuMzMtMi4yIDE0LjI4LTUuMDcgMjAuOS04LjY1bDMuNjcgMy42N2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDIyLjYzLTIyLjYzYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNsLTMuNjctMy42N2ExMTAuODUgMTEwLjg1IDAgMCAwIDguNjUtMjAuODloNS4yYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMtLjAyLTguODQtNy4xOC0xNi0xNi4wMi0xNnptLTExMiA4MGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptLTIwOC04MGgtNS4yYy0yLjItNy4zMy01LjA3LTE0LjI4LTguNjUtMjAuODlsMy42Ny0zLjY3YzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNsLTIyLjYzLTIyLjYzYy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0zLjY3IDMuNjdBMTEwLjg1IDExMC44NSAwIDAgMCAxOTIgMjc3LjJWMjcyYzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NS4yYy03LjMzIDIuMi0xNC4yOCA1LjA3LTIwLjg5IDguNjVsLTMuNjctMy42N2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMEw1OC4xOCAzMDQuOGMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wzLjY3IDMuNjdhMTEwLjg1IDExMC44NSAwIDAgMC04LjY1IDIwLjg5SDQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg1LjJjMi4yIDcuMzMgNS4wNyAxNC4yOCA4LjY1IDIwLjg5bC0zLjY3IDMuNjdjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjMgMjIuNjNjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwzLjY3LTMuNjdjNi42MSAzLjU3IDEzLjU3IDYuNDUgMjAuOSA4LjY1djUuMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNS4yYzcuMzMtMi4yIDE0LjI4LTUuMDcgMjAuOS04LjY1bDMuNjcgMy42N2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDIyLjYzLTIyLjYzYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNsLTMuNjctMy42N2ExMTAuODUgMTEwLjg1IDAgMCAwIDguNjUtMjAuODloNS4yYzguODQgMCAxNi03LjE2IDE2LTE2di0zMkMyODggMzU5LjE2IDI4MC44NCAzNTIgMjcyIDM1MnptLTExMiA4MGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja01vdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjEuMyAyMzcuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDQ4MFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MCAyNi4zIDAgNDkuNC0xMi45IDY0LTMyLjQgMTQuNiAxOS42IDM3LjcgMzIuNCA2NCAzMi40IDQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtNS41LS42LTEwLjgtMS42LTE2aDE2My4yYy0xLjEgNS4yLTEuNiAxMC41LTEuNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2SDYyNGM4LjggMCAxNi03LjIgMTYtMTZ2LTg1LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTgwIDQzMmMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6bTEyOCAwYy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzItMTQuNCAzMi0zMiAzMnptMjcyLTIyNGgzNy41YzQuMyAwIDguMyAxLjcgMTEuMyA0LjdsNDMuMyA0My4zSDQ4MHYtNDh6bTQ4IDIyNGMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tQaWNrdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDI4OGgtMTZ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTQ4TDQxOS4yMiA1Ni4wMkE2NC4wMjUgNjQuMDI1IDAgMCAwIDM2OS4yNCAzMkgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4SDY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjY0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OS42MWMtLjc2IDUuMjctMS42MSAxMC41Mi0xLjYxIDE2IDAgNjEuODYgNTAuMTQgMTEyIDExMiAxMTJzMTEyLTUwLjE0IDExMi0xMTJjMC01LjQ4LS44NS0xMC43My0xLjYxLTE2aDY3LjIzYy0uNzYgNS4yNy0xLjYxIDEwLjUyLTEuNjEgMTYgMCA2MS44NiA1MC4xNCAxMTIgMTEyIDExMnMxMTItNTAuMTQgMTEyLTExMmMwLTUuNDgtLjg1LTEwLjczLTEuNjEtMTZINjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNMjg4IDk2aDgxLjI0bDc2LjggOTZIMjg4Vjk2ek0xNzYgNDE2Yy0yNi40NyAwLTQ4LTIxLjUzLTQ4LTQ4czIxLjUzLTQ4IDQ4LTQ4IDQ4IDIxLjUzIDQ4IDQ4LTIxLjUzIDQ4LTQ4IDQ4em0yODggMGMtMjYuNDcgMC00OC0yMS41My00OC00OHMyMS41My00OCA0OC00OCA0OCAyMS41MyA0OCA0OC0yMS41MyA0OC00OCA0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgMzUyaC0xNlYyNDMuOWMwLTEyLjctNS4xLTI0LjktMTQuMS0zMy45TDQ5NCAxMTAuMWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFINDE2VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHYzMjBjMCAyNi41IDIxLjUgNDggNDggNDhoMTZjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmgxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05Nmg0OGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNMTYwIDQ2NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTMyMCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptODAtMjA4SDQxNlYxNDRoNDQuMWw5OS45IDk5LjlWMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRzaGlydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzEuMiA5Ni41TDQzNi41IDBDNDE2LjQgMjcuOCAzNzEuOSA0Ny4yIDMyMCA0Ny4yUzIyMy42IDI3LjggMjAzLjUgMEw4LjggOTYuNWMtNy45IDQtMTEuMSAxMy42LTcuMiAyMS41bDU3LjIgMTE0LjVjNCA3LjkgMTMuNiAxMS4xIDIxLjUgNy4ybDU2LjYtMjcuN2MxMC42LTUuMiAyMyAyLjUgMjMgMTQuNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNi4zYzAtMTEuOCAxMi40LTE5LjYgMjMtMTQuNGw1Ni42IDI3LjdjNy45IDQgMTcuNS44IDIxLjUtNy4yTDYzOC4zIDExOGM0LTcuOS44LTE3LjYtNy4xLTIxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMzcgMTAzLjgyMmMxMzguNTMyLTEzOC41MzIgMzYyLjkzNi0xMzguMzI2IDUwMS4yNjIgMCA2LjA3OCA2LjA3OCA3LjA3NCAxNS40OTYgMi41ODMgMjIuNjgxbC00My4yMTQgNjkuMTM4YTE4LjMzMiAxOC4zMzIgMCAwIDEtMjIuMzU2IDcuMzA1bC04Ni40MjItMzQuNTY5YTE4LjMzNSAxOC4zMzUgMCAwIDEtMTEuNDM0LTE4Ljg0NkwzNTEuNzQxIDkwYy02Mi4xNDUtMjIuNDU0LTEzMC42MzYtMjEuOTg2LTE5MS40ODMgMGw1Ljk1MyA1OS41MzJhMTguMzMxIDE4LjMzMSAwIDAgMS0xMS40MzQgMTguODQ2bC04Ni40MjMgMzQuNTY4YTE4LjMzNCAxOC4zMzQgMCAwIDEtMjIuMzU2LTcuMzA1TDIuNzg3IDEyNi41MDJhMTguMzMzIDE4LjMzMyAwIDAgMSAyLjU4My0yMi42OHpNOTYgMzA4di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDQ0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tMzM2IDk2di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDkyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpNOTYgNTAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDQ0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMjg4IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjMyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTIgMEg0OEE0OCA0OCAwIDAgMCAwIDQ4djMyMGE0OCA0OCAwIDAgMCA0OCA0OGgyNDB2MzJIMTEyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMzUydi0zMmgyNDBhNDggNDggMCAwIDAgNDgtNDhWNDhhNDggNDggMCAwIDAtNDgtNDh6bS0xNiAzNTJINjRWNjRoNTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVtYnJlbGxhQmVhY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE1LjM4IDEzNi45bDEwMi4xMSAzNy4xOGMzNS4xOS04MS41NCA4Ni4yMS0xNDQuMjkgMTM5LTE3My43LTk1Ljg4LTQuODktMTg4Ljc4IDM2Ljk2LTI0OC41MyAxMTEuOC02LjY5IDguNC0yLjY2IDIxLjA1IDcuNDIgMjQuNzJ6bTEzMi4yNSA0OC4xNmwyMzguNDggODYuODNjMzUuNzYtMTIxLjM4IDE4LjctMjMxLjY2LTQyLjYzLTI1My45OC03LjQtMi43LTE1LjEzLTQtMjMuMDktNC01OC4wMi4wMS0xMjguMjcgNjkuMTctMTcyLjc2IDE3MS4xNXpNNTIxLjQ4IDYwLjVjNi4yMiAxNi4zIDEwLjgzIDM0LjYgMTMuMiA1NS4xOSA1Ljc0IDQ5Ljg5LTEuNDIgMTA4LjIzLTE4Ljk1IDE2Ni45OGwxMDIuNjIgMzcuMzZjMTAuMDkgMy42NyAyMS4zMS0zLjQzIDIxLjU3LTE0LjE3IDIuMzItOTUuNjktNDEuOTEtMTg3LjQ0LTExOC40NC0yNDUuMzZ6TTU2MCA0NDcuOThIMzIxLjA2TDM4NiAyNjkuNWwtNjAuMTQtMjEuOS03Mi45IDIwMC4zN0gxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTYuMDF2MzIuMDFDMCA1MDQuODMgNy4xNiA1MTIgMTYgNTEyaDU0NGM4Ljg0IDAgMTYtNy4xNyAxNi0xNi4wMXYtMzIuMDFjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW1icmVsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjcgMjgwLjhDNTQ3LjEgMTQ0LjUgNDM3LjMgNjIuNiAzMjAgNDkuOVYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnYxNy45QzEzOC4zIDYyLjYgMjkuNSAxNDQuNS4zIDI4MC44Yy0yLjIgMTAuMSA4LjUgMjEuMyAxOC43IDExLjQgNTItNTUgMTA3LjctNTIuNCAxNTguNiAzNyA1LjMgOS41IDE0LjkgOC42IDE5LjcgMCAyMC4yLTM1LjQgNDQuOS03My4yIDkwLjctNzMuMiA1OC41IDAgODguMiA2OC44IDkwLjcgNzMuMiA0LjggOC42IDE0LjQgOS41IDE5LjcgMCA1MS04OS41IDEwNy4xLTkxLjQgMTU4LjYtMzcgMTAuMyAxMCAyMC45LTEuMyAxOC43LTExLjR6TTI1NiAzMDEuN1Y0MzJjMCA4LjgtNy4yIDE2LTE2IDE2LTcuOCAwLTEzLjItNS4zLTE1LjEtMTAuNy01LjktMTYuNy0yNC4xLTI1LjQtNDAuOC0xOS41LTE2LjcgNS45LTI1LjQgMjQuMi0xOS41IDQwLjggMTEuMiAzMS45IDQxLjYgNTMuMyA3NS40IDUzLjMgNDQuMSAwIDgwLTM1LjkgODAtODBWMzAxLjZjLTkuMS03LjktMTkuOC0xMy42LTMyLTEzLjYtMTIuMy4xLTIyLjQgNC44LTMyIDEzLjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5kZXJsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDY0aDMydjE2MGMwIDg4LjIyIDcxLjc4IDE2MCAxNjAgMTYwczE2MC03MS43OCAxNjAtMTYwVjY0aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2YTE2IDE2IDAgMCAwLTE2LTE2SDI3MmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMnYxNjBhODAgODAgMCAwIDEtMTYwIDBWNjRoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTZhMTYgMTYgMCAwIDAtMTYtMTZIMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTQwMCAzODRIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmRvQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS41NDUgOGMtNjYuMjY5LjExOS0xMjYuNDM4IDI2LjIzMy0xNzAuODYgNjguNjg1TDQ4Ljk3MSA0MC45NzFDMzMuODUxIDI1Ljg1MSA4IDM2LjU1OSA4IDU3Ljk0MVYxOTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEzNC4wNTljMjEuMzgyIDAgMzIuMDktMjUuODUxIDE2Ljk3MS00MC45NzFsLTQxLjc1LTQxLjc1YzMwLjg2NC0yOC44OTkgNzAuODAxLTQ0LjkwNyAxMTMuMjMtNDUuMjczIDkyLjM5OC0uNzk4IDE3MC4yODMgNzMuOTc3IDE2OS40ODQgMTY5LjQ0MkM0MjMuMjM2IDM0OC4wMDkgMzQ5LjgxNiA0MjQgMjU2IDQyNGMtNDEuMTI3IDAtNzkuOTk3LTE0LjY3OC0xMTAuNjMtNDEuNTU2LTQuNzQzLTQuMTYxLTExLjkwNi0zLjkwOC0xNi4zNjguNTUzTDg5LjM0IDQyMi42NTljLTQuODcyIDQuODcyLTQuNjMxIDEyLjgxNS40ODIgMTcuNDMzQzEzMy43OTggNDc5LjgxMyAxOTIuMDc0IDUwNCAyNTYgNTA0YzEzNi45NjYgMCAyNDcuOTk5LTExMS4wMzMgMjQ4LTI0Ny45OThDNTA0LjAwMSAxMTkuMTkzIDM5Mi4zNTQgNy43NTUgMjU1LjU0NSA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEyLjMzMyAyMjQuMzMzSDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyVjEyQzAgNS4zNzMgNS4zNzMgMCAxMiAwaDQ4YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NzguMTEyQzExNy43NzMgMzkuMjc5IDE4NC4yNiA3LjQ3IDI1OC4xNzUgOC4wMDdjMTM2LjkwNi45OTQgMjQ2LjQ0OCAxMTEuNjIzIDI0Ni4xNTcgMjQ4LjUzMkM1MDQuMDQxIDM5My4yNTggMzkzLjEyIDUwNCAyNTYuMzMzIDUwNGMtNjQuMDg5IDAtMTIyLjQ5Ni0yNC4zMTMtMTY2LjUxLTY0LjIxNS01LjA5OS00LjYyMi01LjMzNC0xMi41NTQtLjQ2Ny0xNy40MmwzMy45NjctMzMuOTY3YzQuNDc0LTQuNDc0IDExLjY2Mi00LjcxNyAxNi40MDEtLjUyNUMxNzAuNzYgNDE1LjMzNiAyMTEuNTggNDMyIDI1Ni4zMzMgNDMyYzk3LjI2OCAwIDE3Ni03OC43MTYgMTc2LTE3NiAwLTk3LjI2Ny03OC43MTYtMTc2LTE3Ni0xNzYtNTguNDk2IDAtMTEwLjI4IDI4LjQ3Ni0xNDIuMjc0IDcyLjMzM2g5OC4yNzRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0OGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXZlcnNhbEFjY2VzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhjMTE0Ljk1MyAwIDIwOCA5My4wMjkgMjA4IDIwOCAwIDExNC45NTMtOTMuMDI5IDIwOC0yMDggMjA4LTExNC45NTMgMC0yMDgtOTMuMDI5LTIwOC0yMDggMC0xMTQuOTUzIDkzLjAyOS0yMDggMjA4LTIwOG0wLTQwQzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCA1NkMxNDkuOTYxIDY0IDY0IDE0OS45NjEgNjQgMjU2czg1Ljk2MSAxOTIgMTkyIDE5MiAxOTItODUuOTYxIDE5Mi0xOTJTMzYyLjAzOSA2NCAyNTYgNjR6bTAgNDRjMTkuODgyIDAgMzYgMTYuMTE4IDM2IDM2cy0xNi4xMTggMzYtMzYgMzYtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNnptMTE3Ljc0MSA5OC4wMjNjLTI4LjcxMiA2Ljc3OS01NS41MTEgMTIuNzQ4LTgyLjE0IDE1LjgwNy44NTEgMTAxLjAyMyAxMi4zMDYgMTIzLjA1MiAyNS4wMzcgMTU1LjYyMSAzLjYxNyA5LjI2LS45NTcgMTkuNjk4LTEwLjIxNyAyMy4zMTUtOS4yNjEgMy42MTctMTkuNjk5LS45NTctMjMuMzE2LTEwLjIxNy04LjcwNS0yMi4zMDgtMTcuMDg2LTQwLjYzNi0yMi4yNjEtNzguNTQ5aC05LjY4NmMtNS4xNjcgMzcuODUxLTEzLjUzNCA1Ni4yMDgtMjIuMjYyIDc4LjU0OS0zLjYxNSA5LjI1NS0xNC4wNSAxMy44MzYtMjMuMzE1IDEwLjIxNy05LjI2LTMuNjE3LTEzLjgzNC0xNC4wNTYtMTAuMjE3LTIzLjMxNSAxMi43MTMtMzIuNTQxIDI0LjE4NS01NC41NDEgMjUuMDM3LTE1NS42MjEtMjYuNjI5LTMuMDU4LTUzLjQyOC05LjAyNy04Mi4xNDEtMTUuODA3LTguNi0yLjAzMS0xMy45MjYtMTAuNjQ4LTExLjg5NS0xOS4yNDlzMTAuNjQ3LTEzLjkyNiAxOS4yNDktMTEuODk1Yzk2LjY4NiAyMi44MjkgMTI0LjI4MyAyMi43ODMgMjIwLjc3NSAwIDguNTk5LTIuMDMgMTcuMjE4IDMuMjk0IDE5LjI0OSAxMS44OTUgMi4wMjkgOC42MDEtMy4yOTcgMTcuMjE5LTExLjg5NyAxOS4yNDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5pdmVyc2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMTI4djE2YTggOCAwIDAgMS04IDhoLTI0djEyYzAgNi42MjctNS4zNzMgMTItMTIgMTJINjBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTEySDI0YTggOCAwIDAgMS04LTh2LTE2YTggOCAwIDAgMSA0Ljk0MS03LjM5MmwyMzItODhhNy45OTYgNy45OTYgMCAwIDEgNi4xMTggMGwyMzIgODhBOCA4IDAgMCAxIDQ5NiAxMjh6bS0yNCAzMDRINDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmE4IDggMCAwIDAgOCA4aDQ2NGE4IDggMCAwIDAgOC04di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTk2IDE5MnYxOTJINjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjBoNDE2di0yMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0zNlYxOTJoLTY0djE5MmgtNjRWMTkyaC02NHYxOTJoLTY0VjE5Mkg5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LjA4MyA0MDUuOTA3YzQuNjg2IDQuNjg2IDQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwtNDQuNjc0IDQ0LjY3NGMtNTkuMjYzIDU5LjI2Mi0xNTUuNjkzIDU5LjI2Ni0yMTQuOTYxIDAtNTkuMjY0LTU5LjI2NS01OS4yNjQtMTU1LjY5NiAwLTIxNC45Nmw0NC42NzUtNDQuNjc1YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMGwzOS41OTggMzkuNTk4YzQuNjg2IDQuNjg2IDQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwtNDQuNjc1IDQ0LjY3NGMtMjguMDcyIDI4LjA3My0yOC4wNzIgNzMuNzUgMCAxMDEuODIzIDI4LjA3MiAyOC4wNzIgNzMuNzUgMjguMDczIDEwMS44MjQgMGw0NC42NzQtNDQuNjc0YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMGwzOS41OTcgMzkuNTk4em0tNTYuNTY4LTI2MC4yMTZjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDQ0LjY3NC00NC42NzRjMjguMDcyLTI4LjA3NSA3My43NS0yOC4wNzMgMTAxLjgyNCAwIDI4LjA3MiAyOC4wNzMgMjguMDcyIDczLjc1IDAgMTAxLjgyM2wtNDQuNjc1IDQ0LjY3NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDM5LjU5OCAzOS41OThjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDQ0LjY3NS00NC42NzVjNTkuMjY1LTU5LjI2NSA1OS4yNjUtMTU1LjY5NSAwLTIxNC45Ni01OS4yNjYtNTkuMjY0LTE1NS42OTUtNTkuMjY0LTIxNC45NjEgMGwtNDQuNjc0IDQ0LjY3NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDM5LjU5NyAzOS41OTh6bTIzNC44MjggMzU5LjI4bDIyLjYyNy0yMi42MjdjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDYzLjU5OCA3LjAyOWMtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwTDcuMDI5IDI5LjY1N2MtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDQ0MS4zNzMgNDQxLjM3M2M5LjM3MyA5LjM3MiAyNC41NjkgOS4zNzIgMzMuOTQxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5sb2NrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAyNTZIMTUyVjE1Mi45YzAtMzkuNiAzMS43LTcyLjUgNzEuMy03Mi45IDQwLS40IDcyLjcgMzIuMSA3Mi43IDcydjE2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMyYzEzLjMgMCAyNC0xMC43IDI0LTI0di0xNkMzNzYgNjggMzA3LjUtLjMgMjIzLjUgMCAxMzkuNS4zIDcyIDY5LjUgNzIgMTUzLjVWMjU2SDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxNjBjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjY0IDQwOGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MHYtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MHY0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDI1NkgxNTJWMTUyLjljMC0zOS42IDMxLjctNzIuNSA3MS4zLTcyLjkgNDAtLjQgNzIuNyAzMi4xIDcyLjcgNzJ2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2QzM3NiA2OCAzMDcuNS0uMyAyMjMuNSAwIDEzOS41LjMgNzIgNjkuNSA3MiAxNTMuNVYyNTZINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTYgMzg0aC04MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTkyaC04Ny43Yy0xNy44IDAtMjYuNy0yMS41LTE0LjEtMzQuMUwyNDIuMyA1LjdjNy41LTcuNSAxOS44LTcuNSAyNy4zIDBsMTUyLjIgMTUyLjJjMTIuNiAxMi42IDMuNyAzNC4xLTE0LjEgMzQuMUgzMjB2MTY4YzAgMTMuMy0xMC43IDI0LTI0IDI0em0yMTYtOHYxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxMzZ2OGMwIDMwLjkgMjUuMSA1NiA1NiA1Nmg4MGMzMC45IDAgNTYtMjUuMSA1Ni01NnYtOGgxMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bS0xMjQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHptNjQgMGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJBbHRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuOCA0NTguMUwzODkuNiAyNjkuM0M0MzMuOCAyNDQuNyA0NjQgMTk4LjEgNDY0IDE0NCA0NjQgNjQuNSAzOTkuNSAwIDMyMCAwYy02Ny4xIDAtMTIzIDQ2LjEtMTM5IDEwOC4yTDQ1LjUgMy40QzM4LjUtMiAyOC41LS44IDIzIDYuMkwzLjQgMzEuNGMtNS40IDctNC4yIDE3IDIuOCAyMi40bDU4OC40IDQ1NC43YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS40LTYuOCA0LjEtMTYuOS0yLjktMjIuM3pNMTk4LjQgMzIwQzEyNC4yIDMyMCA2NCAzODAuMiA2NCA0NTQuNHY5LjZjMCAyNi41IDIxLjUgNDggNDggNDhoMzgyLjJMMjQ1LjggMzIwaC00Ny40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDI4OGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAwIDI1NiAwIDExMiA2NC41IDExMiAxNDRzNjQuNSAxNDQgMTQ0IDE0NHptMTI4IDMyaC01NS4xYy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2SDEyOEM1Ny4zIDMyMCAwIDM3Ny4zIDAgNDQ4djE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMTZjMC03MC43LTU3LjMtMTI4LTEyOC0xMjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckFzdHJvbmF1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAyMjRoMTMuNWMyNC43IDU2LjUgODAuOSA5NiAxNDYuNSA5NnMxMjEuOC0zOS41IDE0Ni41LTk2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZ2LTk2YzAtOC44LTcuMi0xNi0xNi0xNmgtMTMuNUMzNDUuOCAzOS41IDI4OS42IDAgMjI0IDBTMTAyLjIgMzkuNSA3Ny41IDk2SDY0Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2em00MC04OGMwLTIyLjEgMjEuNS00MCA0OC00MGgxNDRjMjYuNSAwIDQ4IDE3LjkgNDggNDB2MjRjMCA1My00MyA5Ni05NiA5NmgtNDhjLTUzIDAtOTYtNDMtOTYtOTZ2LTI0em03MiA3MmwxMi0zNiAzNi0xMi0zNi0xMi0xMi0zNi0xMiAzNi0zNiAxMiAzNiAxMiAxMiAzNnptMTUxLjYgMTEzLjRDMjk3LjcgMzQwLjcgMjYyLjIgMzUyIDIyNCAzNTJzLTczLjctMTEuMy0xMDMuNi0zMC42QzUyLjkgMzI4LjUgMCAzODUgMCA0NTQuNHY5LjZjMCAyNi41IDIxLjUgNDggNDggNDhoODB2LTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGg4MGMyNi41IDAgNDgtMjEuNSA0OC00OHYtOS42YzAtNjkuNC01Mi45LTEyNS45LTEyMC40LTEzM3pNMjcyIDQ0OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2em0tOTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4aDMydi00OGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40em0zMjMtMTI4LjRsLTI3LjgtMjguMWMtNC42LTQuNy0xMi4xLTQuNy0xNi44LS4xbC0xMDQuOCAxMDQtNDUuNS00NS44Yy00LjYtNC43LTEyLjEtNC43LTE2LjgtLjFsLTI4LjEgMjcuOWMtNC43IDQuNi00LjcgMTIuMS0uMSAxNi44bDgxLjcgODIuM2M0LjYgNC43IDEyLjEgNC43IDE2LjguMWwxNDEuMy0xNDAuMmM0LjYtNC43IDQuNy0xMi4yLjEtMTYuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgOTZjNDguNiAwIDg4IDM5LjQgODggODhzLTM5LjQgODgtODggODgtODgtMzkuNC04OC04OCAzOS40LTg4IDg4LTg4em0wIDM0NGMtNTguNyAwLTExMS4zLTI2LjYtMTQ2LjUtNjguMiAxOC44LTM1LjQgNTUuNi01OS44IDk4LjUtNTkuOCAyLjQgMCA0LjguNCA3LjEgMS4xIDEzIDQuMiAyNi42IDYuOSA0MC45IDYuOSAxNC4zIDAgMjgtMi43IDQwLjktNi45IDIuMy0uNyA0LjctMS4xIDcuMS0xLjEgNDIuOSAwIDc5LjcgMjQuNCA5OC41IDU5LjhDMzU5LjMgNDIxLjQgMzA2LjcgNDQ4IDI0OCA0NDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyMjRjLTc5LjYgMC0xNDQgNjQuNC0xNDQgMTQ0czY0LjQgMTQ0IDE0NCAxNDQgMTQ0LTY0LjQgMTQ0LTE0NC02NC40LTE0NC0xNDQtMTQ0em02NCAxNTAuM2MwIDUuMy00LjQgOS43LTkuNyA5LjdoLTYwLjZjLTUuMyAwLTkuNy00LjQtOS43LTkuN3YtNzYuNmMwLTUuMyA0LjQtOS43IDkuNy05LjdoMTIuNmM1LjMgMCA5LjcgNC40IDkuNyA5LjdWMzUyaDM4LjNjNS4zIDAgOS43IDQuNCA5LjcgOS43djEyLjZ6TTMyMCAzNjhjMC0yNy44IDYuNy01NC4xIDE4LjItNzcuNS04LTEuNS0xNi4yLTIuNS0yNC42LTIuNWgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM0Ny4xYy00NS4zLTMxLjktNzUuMS04NC41LTc1LjEtMTQ0em0tOTYtMTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyQ29nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxMC41IDM3My4zYzIuNi0xNC4xIDIuNi0yOC41IDAtNDIuNmwyNS44LTE0LjljMy0xLjcgNC4zLTUuMiAzLjMtOC41LTYuNy0yMS42LTE4LjItNDEuMi0zMy4yLTU3LjQtMi4zLTIuNS02LTMuMS05LTEuNGwtMjUuOCAxNC45Yy0xMC45LTkuMy0yMy40LTE2LjUtMzYuOS0yMS4zdi0yOS44YzAtMy40LTIuNC02LjQtNS43LTcuMS0yMi4zLTUtNDUtNC44LTY2LjIgMC0zLjMuNy01LjcgMy43LTUuNyA3LjF2MjkuOGMtMTMuNSA0LjgtMjYgMTItMzYuOSAyMS4zbC0yNS44LTE0LjljLTIuOS0xLjctNi43LTEuMS05IDEuNC0xNSAxNi4yLTI2LjUgMzUuOC0zMy4yIDU3LjQtMSAzLjMuNCA2LjggMy4zIDguNWwyNS44IDE0LjljLTIuNiAxNC4xLTIuNiAyOC41IDAgNDIuNmwtMjUuOCAxNC45Yy0zIDEuNy00LjMgNS4yLTMuMyA4LjUgNi43IDIxLjYgMTguMiA0MS4xIDMzLjIgNTcuNCAyLjMgMi41IDYgMy4xIDkgMS40bDI1LjgtMTQuOWMxMC45IDkuMyAyMy40IDE2LjUgMzYuOSAyMS4zdjI5LjhjMCAzLjQgMi40IDYuNCA1LjcgNy4xIDIyLjMgNSA0NSA0LjggNjYuMiAwIDMuMy0uNyA1LjctMy43IDUuNy03LjF2LTI5LjhjMTMuNS00LjggMjYtMTIgMzYuOS0yMS4zbDI1LjggMTQuOWMyLjkgMS43IDYuNyAxLjEgOS0xLjQgMTUtMTYuMiAyNi41LTM1LjggMzMuMi01Ny40IDEtMy4zLS40LTYuOC0zLjMtOC41bC0yNS44LTE0Ljl6TTQ5NiA0MDAuNWMtMjYuOCAwLTQ4LjUtMjEuOC00OC41LTQ4LjVzMjEuOC00OC41IDQ4LjUtNDguNSA0OC41IDIxLjggNDguNSA0OC41LTIxLjcgNDguNS00OC41IDQ4LjV6TTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em0yMDEuMiAyMjYuNWMtMi4zLTEuMi00LjYtMi42LTYuOC0zLjlsLTcuOSA0LjZjLTYgMy40LTEyLjggNS4zLTE5LjYgNS4zLTEwLjkgMC0yMS40LTQuNi0yOC45LTEyLjYtMTguMy0xOS44LTMyLjMtNDMuOS00MC4yLTY5LjYtNS41LTE3LjcgMS45LTM2LjQgMTcuOS00NS43bDcuOS00LjZjLS4xLTIuNi0uMS01LjIgMC03LjhsLTcuOS00LjZjLTE2LTkuMi0yMy40LTI4LTE3LjktNDUuNy45LTIuOSAyLjItNS44IDMuMi04LjctMy44LS4zLTcuNS0xLjItMTEuNC0xLjJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMTAuMSAwIDE5LjUtMy4yIDI3LjItOC41LTEuMi0zLjgtMi03LjctMi0xMS44di05LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyNzQuOWMtMi40LTYuOC0zLjQtMTQtMi42LTIxLjNsNi44LTYwLjkgMS4yLTExLjEgNy45LTcuOSA3Ny4zLTc3LjNjLTI0LjUtMjcuNy02MC00NS41LTk5LjktNDUuNXptNDUuMyAxNDUuM2wtNi44IDYxYy0xLjEgMTAuMiA3LjUgMTguOCAxNy42IDE3LjZsNjAuOS02LjggMTM3LjktMTM3LjktNzEuNy03MS43LTEzNy45IDEzNy44ek02MzMgMjY4LjlMNTk1LjEgMjMxYy05LjMtOS4zLTI0LjUtOS4zLTMzLjggMGwtMzcuOCAzNy44LTQuMSA0LjEgNzEuOCA3MS43IDQxLjgtNDEuOGM5LjMtOS40IDkuMy0yNC41IDAtMzMuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyRnJpZW5kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMjU2YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzI1My45IDMyIDE5MiAzMiA4MCA4Mi4xIDgwIDE0NHM1MC4xIDExMiAxMTIgMTEyem03Ni44IDMyaC04LjNjLTIwLjggMTAtNDMuOSAxNi02OC41IDE2cy00Ny42LTYtNjguNS0xNmgtOC4zQzUxLjYgMjg4IDAgMzM5LjYgMCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yOC44YzAtNjMuNi01MS42LTExNS4yLTExNS4yLTExNS4yek00ODAgMjU2YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2IDQzIDk2IDk2IDk2em00OCAzMmgtMy44Yy0xMy45IDQuOC0yOC42IDgtNDQuMiA4cy0zMC4zLTMuMi00NC4yLThINDMyYy0yMC40IDAtMzkuMiA1LjktNTUuNyAxNS40IDI0LjQgMjYuMyAzOS43IDYxLjIgMzkuNyA5OS44djM4LjRjMCAyLjItLjUgNC4zLS42IDYuNEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckdyYWR1YXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOS40IDMyMC42TDIyNCA0MTZsLTk1LjQtOTUuNEM1Ny4xIDMyMy43IDAgMzgyLjIgMCA0NTQuNHY5LjZjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di05LjZjMC03Mi4yLTU3LjEtMTMwLjctMTI4LjYtMTMzLjh6TTEzLjYgNzkuOGw2LjQgMS41djU4LjRjLTcgNC4yLTEyIDExLjUtMTIgMjAuMyAwIDguNCA0LjYgMTUuNCAxMS4xIDE5LjdMMy41IDI0MmMtMS43IDYuOSAyLjEgMTQgNy42IDE0aDQxLjhjNS41IDAgOS4zLTcuMSA3LjYtMTRsLTE1LjYtNjIuM0M1MS40IDE3NS40IDU2IDE2OC40IDU2IDE2MGMwLTguOC01LTE2LjEtMTItMjAuM1Y4Ny4xbDY2IDE1LjljLTguNiAxNy4yLTE0IDM2LjQtMTQgNTcgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOGMwLTIwLjYtNS4zLTM5LjgtMTQtNTdsOTYuMy0yMy4yYzE4LjItNC40IDE4LjItMjcuMSAwLTMxLjVsLTE5MC40LTQ2Yy0xMy0zLjEtMjYuNy0zLjEtMzkuNyAwTDEzLjYgNDguMmMtMTguMSA0LjQtMTguMSAyNy4yIDAgMzEuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VySW5qdXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzcuMzcgMTEuOThDMjYxLjA4IDQuNDcgMjQzLjExIDAgMjI0IDBjLTUzLjY5IDAtOTkuNSAzMy4xMy0xMTguNTEgODBoODEuMTlsOTAuNjktNjguMDJ6TTM0Mi41MSA4MGMtNy45LTE5LjQ3LTIwLjY3LTM2LjItMzYuNDktNDkuNTJMMjM5Ljk5IDgwaDEwMi41MnpNMjI0IDI1NmM3MC42OSAwIDEyOC01Ny4zMSAxMjgtMTI4IDAtNS40OC0uOTUtMTAuNy0xLjYxLTE2SDk3LjYxYy0uNjcgNS4zLTEuNjEgMTAuNTItMS42MSAxNiAwIDcwLjY5IDU3LjMxIDEyOCAxMjggMTI4ek04MCAyOTkuN1Y1MTJoMTI4LjI2bC05OC40NS0yMjEuNTJBMTMyLjgzNSAxMzIuODM1IDAgMCAwIDgwIDI5OS43ek0wIDQ2NGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4VjMyMC4yNEMxOC44OCAzNDQuODkgMCAzODEuMjYgMCA0MjIuNFY0NjR6bTI1Ni00OGgtNTUuMzhsNDIuNjcgOTZIMjU2YzI2LjQ3IDAgNDgtMjEuNTMgNDgtNDhzLTIxLjUzLTQ4LTQ4LTQ4em01Ny42LTEyOGgtMTYuNzFjLTIyLjI0IDEwLjE4LTQ2Ljg4IDE2LTcyLjg5IDE2cy01MC42NS01LjgyLTcyLjg5LTE2aC03LjM3bDQyLjY3IDk2SDI1NmM0NC4xMSAwIDgwIDM1Ljg5IDgwIDgwIDAgMTguMDgtNi4yNiAzNC41OS0xNi40MSA0OEg0MDBjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDEuNmMwLTc0LjIzLTYwLjE3LTEzNC40LTEzNC40LTEzNC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCA5NiAxMjhhMTI4IDEyOCAwIDAgMCAxMjggMTI4em05NiA2NGE2My4wOCA2My4wOCAwIDAgMSA4LjEtMzAuNWMtNC44LS41LTkuNS0xLjUtMTQuNS0xLjVoLTE2LjdhMTc0LjA4IDE3NC4wOCAwIDAgMS0xNDUuOCAwaC0xNi43QTEzNC40MyAxMzQuNDMgMCAwIDAgMCA0MjIuNFY0NjRhNDggNDggMCAwIDAgNDggNDhoMjgwLjlhNjMuNTQgNjMuNTQgMCAwIDEtOC45LTMyem0yODgtMzJoLTMydi04MGE4MCA4MCAwIDAgMC0xNjAgMHY4MGgtMzJhMzIgMzIgMCAwIDAtMzIgMzJ2MTYwYTMyIDMyIDAgMCAwIDMyIDMyaDIyNGEzMiAzMiAwIDAgMCAzMi0zMlYzMjBhMzIgMzIgMCAwIDAtMzItMzJ6TTQ5NiA0MzJhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTMyLTE0NGgtNjR2LTgwYTMyIDMyIDAgMCAxIDY0IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck1kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4ek0xMDQgNDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNC0yNCAxMC43LTI0IDI0em0yMTYtMTM1LjR2NDljMzYuNSA3LjQgNjQgMzkuOCA2NCA3OC40djQxLjdjMCA3LjYtNS40IDE0LjItMTIuOSAxNS43bC0zMi4yIDYuNGMtNC4zLjktOC41LTEuOS05LjQtNi4zbC0zLjEtMTUuN2MtLjktNC4zIDEuOS04LjYgNi4zLTkuNGwxOS4zLTMuOVY0MTZjMC02Mi44LTk2LTY1LjEtOTYgMS45djI2LjdsMTkuMyAzLjljNC4zLjkgNy4xIDUuMSA2LjMgOS40bC0zLjEgMTUuN2MtLjkgNC4zLTUuMSA3LjEtOS40IDYuM2wtMzEuMi00LjJjLTcuOS0xLjEtMTMuOC03LjgtMTMuOC0xNS45VjQxNmMwLTM4LjYgMjcuNS03MC45IDY0LTc4LjR2LTQ1LjJjLTIuMi43LTQuNCAxLjEtNi42IDEuOS0xOCA2LjMtMzcuMyA5LjgtNTcuNCA5LjhzLTM5LjQtMy41LTU3LjQtOS44Yy03LjQtMi42LTE0LjktNC4yLTIyLjYtNS4ydjgxLjZjMjMuMSA2LjkgNDAgMjguMSA0MCA1My40IDAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2YzAtMjUuMyAxNi45LTQ2LjUgNDAtNTMuNHYtODAuNEM0OC41IDMwMSAwIDM1NS44IDAgNDIyLjR2NDQuOEMwIDQ5MS45IDIwLjEgNTEyIDQ0LjggNTEyaDM1OC40YzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44di00NC44YzAtNzItNTYuOC0xMzAuMy0xMjgtMTMzLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAyMDhINDMyYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDE5MmM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptLTQwMCA0OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck5pbmphIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNS40IDI4OS4yTDIyNCAzOTAuNiAxMjIuNiAyODkuMkM1NCAyOTUuMyAwIDM1Mi4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTcwLjItNTQtMTI3LjEtMTIyLjYtMTMzLjJ6TTMyIDE5MmMyNy4zIDAgNTEuOC0xMS41IDY5LjItMjkuNyAxNS4xIDUzLjkgNjQgOTMuNyAxMjIuOCA5My43IDcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDBjLTUwLjQgMC05My42IDI5LjQtMTE0LjUgNzEuOEM5Mi4xIDQ3LjggNjQgMzIgMzIgMzJjMCAzMy40IDE3LjEgNjIuOCA0My4xIDgwLTI2IDE3LjItNDMuMSA0Ni42LTQzLjEgODB6bTE0NC05Nmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMkgxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck51cnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOS40MSwzMjAsMjI0LDQxNS4zOSwxMjguNTksMzIwQzU3LjEsMzIzLjEsMCwzODEuNiwwLDQ1My43OUE1OC4yMSw1OC4yMSwwLDAsMCw1OC4yMSw1MTJIMzg5Ljc5QTU4LjIxLDU4LjIxLDAsMCwwLDQ0OCw0NTMuNzlDNDQ4LDM4MS42LDM5MC45LDMyMy4xLDMxOS40MSwzMjBaTTIyNCwzMDRBMTI4LDEyOCwwLDAsMCwzNTIsMTc2VjY1LjgyYTMyLDMyLDAsMCwwLTIwLjc2LTMwTDI0Ni40Nyw0LjA3YTY0LDY0LDAsMCwwLTQ0Ljk0LDBMMTE2Ljc2LDM1Ljg2QTMyLDMyLDAsMCwwLDk2LDY1LjgyVjE3NkExMjgsMTI4LDAsMCwwLDIyNCwzMDRaTTE4NCw3MS42N2E1LDUsMCwwLDEsNS01aDIxLjY3VjQ1YTUsNSwwLDAsMSw1LTVoMTYuNjZhNSw1LDAsMCwxLDUsNVY2Ni42N0gyNTlhNSw1LDAsMCwxLDUsNVY4OC4zM2E1LDUsMCwwLDEtNSw1SDIzNy4zM1YxMTVhNSw1LDAsMCwxLTUsNUgyMTUuNjdhNSw1LDAsMCwxLTUtNVY5My4zM0gxODlhNSw1LDAsMCwxLTUtNVpNMTQ0LDE2MEgzMDR2MTZhODAsODAsMCwwLDEtMTYwLDBaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDIwOGgtNjR2LTY0YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGgtNjRjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjR2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNjRoNjRjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00MDAgNDhjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJTZWNyZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgzLjkgMzA4LjNsMjMuOS02Mi42YzQtMTAuNS0zLjctMjEuNy0xNS0yMS43aC01OC41YzExLTE4LjkgMTcuOC00MC42IDE3LjgtNjR2LS4zYzM5LjItNy44IDY0LTE5LjEgNjQtMzEuNyAwLTEzLjMtMjcuMy0yNS4xLTcwLjEtMzMtOS4yLTMyLjgtMjctNjUuOC00MC42LTgyLjgtOS41LTExLjktMjUuOS0xNS42LTM5LjUtOC44bC0yNy42IDEzLjhjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxODIuMSAzLjRjLTEzLjYtNi44LTMwLTMuMS0zOS41IDguOC0xMy41IDE3LTMxLjQgNTAtNDAuNiA4Mi44LTQyLjcgNy45LTcwIDE5LjctNzAgMzMgMCAxMi42IDI0LjggMjMuOSA2NCAzMS43di4zYzAgMjMuNCA2LjggNDUuMSAxNy44IDY0SDU2LjNjLTExLjUgMC0xOS4yIDExLjctMTQuNyAyMi4zbDI1LjggNjAuMkMyNy4zIDMyOS44IDAgMzcyLjcgMCA0MjIuNHY0NC44QzAgNDkxLjkgMjAuMSA1MTIgNDQuOCA1MTJoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0Ljh2LTQ0LjhjMC00OC40LTI1LjgtOTAuNC02NC4xLTExNC4xek0xNzYgNDgwbC00MS42LTE5MiA0OS42IDMyIDI0IDQwLTMyIDEyMHptOTYgMGwtMzItMTIwIDI0LTQwIDQ5LjYtMzJMMjcyIDQ4MHptNDEuNy0yOTguNWMtMy45IDExLjktNyAyNC42LTE2LjUgMzMuNC0xMC4xIDkuMy00OCAyMi40LTY0LTI1LTIuOC04LjQtMTUuNC04LjQtMTguMyAwLTE3IDUwLjItNTYgMzIuNC02NCAyNS05LjUtOC44LTEyLjctMjEuNS0xNi41LTMzLjQtLjgtMi41LTYuMy01LjctNi4zLTUuOHYtMTAuOGMyOC4zIDMuNiA2MSA1LjggOTYgNS44czY3LjctMi4xIDk2LTUuOHYxMC44Yy0uMS4xLTUuNiAzLjItNi40IDUuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMi4zIDI3MS4xbC0xMTUuMi00NWMtNC4xLTEuNi0xMi42LTMuNy0yMi4yIDBsLTExNS4yIDQ1Yy0xMC43IDQuMi0xNy43IDE0LTE3LjcgMjQuOSAwIDExMS42IDY4LjcgMTg4LjggMTMyLjkgMjEzLjkgOS42IDMuNyAxOCAxLjYgMjIuMiAwQzU1OC40IDQ4OS45IDY0MCA0MjAuNSA2NDAgMjk2YzAtMTAuOS03LTIwLjctMTcuNy0yNC45ek00OTYgNDYyLjRWMjczLjNsOTUuNSAzNy4zYy01LjYgODcuMS02MC45IDEzNS40LTk1LjUgMTUxLjh6TTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em05NiA0MGMwLTIuNS44LTQuOCAxLjEtNy4yLTIuNS0uMS00LjktLjgtNy41LS44aC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzYuOCAwIDEzLjMtMS41IDE5LjItNC01NC00Mi45LTk5LjItMTE2LjctOTkuMi0yMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44IDQ1OC4xTDM2Mi4zIDI0OC4zQzQxMi4xIDIzMC43IDQ0OCAxODMuOCA0NDggMTI4IDQ0OCA1Ny4zIDM5MC43IDAgMzIwIDBjLTY3LjEgMC0xMjEuNSA1MS44LTEyNi45IDExNy40TDQ1LjUgMy40QzM4LjUtMiAyOC41LS44IDIzIDYuMkwzLjQgMzEuNGMtNS40IDctNC4yIDE3IDIuOCAyMi40bDU4OC40IDQ1NC43YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS40LTYuOCA0LjEtMTYuOS0yLjktMjIuM3pNOTYgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MC4yTDIwNy40IDI5MC4zQzE0NC4yIDMwMS4zIDk2IDM1NiA5NiA0MjIuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMC42IDM2NC45bC05MC4zLTkwLjJjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdoLTc5LjNjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc5LjJjMCAxNyA2LjcgMzMuMiAxOC43IDQ1LjJsOTAuMyA5MC4yYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDkyLjUtOTIuNWMxMi42LTEyLjUgMTIuNi0zMi43LjEtNDUuMnptLTE4Mi44LTIxYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjRjMCAxMy4yLTEwLjcgMjQtMjQgMjR6bS0yMjMuOC04OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOEMzNTIgNTcuMyAyOTQuNyAwIDIyNCAwUzk2IDU3LjMgOTYgMTI4YzAgNzAuNiA1Ny4zIDEyNy45IDEyOCAxMjcuOXptMTI3LjggMTExLjJWMjk0Yy0xMi4yLTMuNi0yNC45LTYuMi0zOC4yLTYuMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4Ny45IDAgMzQ4LjEgMCA0MjIuM3Y0MS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMxNS41IDAgMjkuMS03LjUgMzcuOS0xOC45bC01OC01OGMtMTguMS0xOC4xLTI4LjEtNDIuMi0yOC4xLTY3Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclRpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptOTUuOCAzMi42TDI3MiA0ODBsLTMyLTEzNiAzMi01NmgtOTZsMzIgNTYtMzIgMTM2LTQ3LjgtMTkxLjRDNTYuOSAyOTIgMCAzNTAuMyAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03Mi4xLTU2LjktMTMwLjQtMTI4LjItMTMzLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclRpbWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4OS42IDI0MGw0NS42LTQ1LjZjNi4zLTYuMyA2LjMtMTYuNSAwLTIyLjhsLTIyLjgtMjIuOGMtNi4zLTYuMy0xNi41LTYuMy0yMi44IDBMNTQ0IDE5NC40bC00NS42LTQ1LjZjLTYuMy02LjMtMTYuNS02LjMtMjIuOCAwbC0yMi44IDIyLjhjLTYuMyA2LjMtNi4zIDE2LjUgMCAyMi44bDQ1LjYgNDUuNi00NS42IDQ1LjZjLTYuMyA2LjMtNi4zIDE2LjUgMCAyMi44bDIyLjggMjIuOGM2LjMgNi4zIDE2LjUgNi4zIDIyLjggMGw0NS42LTQ1LjYgNDUuNiA0NS42YzYuMyA2LjMgMTYuNSA2LjMgMjIuOCAwbDIyLjgtMjIuOGM2LjMtNi4zIDYuMy0xNi41IDAtMjIuOEw1ODkuNiAyNDB6TTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNDb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEwLjUgMzQxLjNjMi42LTE0LjEgMi42LTI4LjUgMC00Mi42bDI1LjgtMTQuOWMzLTEuNyA0LjMtNS4yIDMuMy04LjUtNi43LTIxLjYtMTguMi00MS4yLTMzLjItNTcuNC0yLjMtMi41LTYtMy4xLTktMS40bC0yNS44IDE0LjljLTEwLjktOS4zLTIzLjQtMTYuNS0zNi45LTIxLjN2LTI5LjhjMC0zLjQtMi40LTYuNC01LjctNy4xLTIyLjMtNS00NS00LjgtNjYuMiAwLTMuMy43LTUuNyAzLjctNS43IDcuMXYyOS44Yy0xMy41IDQuOC0yNiAxMi0zNi45IDIxLjNsLTI1LjgtMTQuOWMtMi45LTEuNy02LjctMS4xLTkgMS40LTE1IDE2LjItMjYuNSAzNS44LTMzLjIgNTcuNC0xIDMuMy40IDYuOCAzLjMgOC41bDI1LjggMTQuOWMtMi42IDE0LjEtMi42IDI4LjUgMCA0Mi42bC0yNS44IDE0LjljLTMgMS43LTQuMyA1LjItMy4zIDguNSA2LjcgMjEuNiAxOC4yIDQxLjEgMzMuMiA1Ny40IDIuMyAyLjUgNiAzLjEgOSAxLjRsMjUuOC0xNC45YzEwLjkgOS4zIDIzLjQgMTYuNSAzNi45IDIxLjN2MjkuOGMwIDMuNCAyLjQgNi40IDUuNyA3LjEgMjIuMyA1IDQ1IDQuOCA2Ni4yIDAgMy4zLS43IDUuNy0zLjcgNS43LTcuMXYtMjkuOGMxMy41LTQuOCAyNi0xMiAzNi45LTIxLjNsMjUuOCAxNC45YzIuOSAxLjcgNi43IDEuMSA5LTEuNCAxNS0xNi4yIDI2LjUtMzUuOCAzMy4yLTU3LjQgMS0zLjMtLjQtNi44LTMuMy04LjVsLTI1LjgtMTQuOXpNNDk2IDM2OC41Yy0yNi44IDAtNDguNS0yMS44LTQ4LjUtNDguNXMyMS44LTQ4LjUgNDguNS00OC41IDQ4LjUgMjEuOCA0OC41IDQ4LjUtMjEuNyA0OC41LTQ4LjUgNDguNXpNOTYgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptMjI0IDMyYzEuOSAwIDMuNy0uNSA1LjYtLjYgOC4zLTIxLjcgMjAuNS00Mi4xIDM2LjMtNTkuMiA3LjQtOCAxNy45LTEyLjYgMjguOS0xMi42IDYuOSAwIDEzLjcgMS44IDE5LjYgNS4zbDcuOSA0LjZjLjgtLjUgMS42LS45IDIuNC0xLjQgNy0xNC42IDExLjItMzAuOCAxMS4yLTQ4IDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzIwOCA4Mi4xIDIwOCAxNDRjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJ6bTEwNS4yIDE5NC41Yy0yLjMtMS4yLTQuNi0yLjYtNi44LTMuOS04LjIgNC44LTE1LjMgOS44LTI3LjUgOS44LTEwLjkgMC0yMS40LTQuNi0yOC45LTEyLjYtMTguMy0xOS44LTMyLjMtNDMuOS00MC4yLTY5LjYtMTAuNy0zNC41IDI0LjktNDkuNyAyNS44LTUwLjMtLjEtMi42LS4xLTUuMiAwLTcuOGwtNy45LTQuNmMtMy44LTIuMi03LTUtOS44LTguMS0zLjMuMi02LjUuNi05LjguNi0yNC42IDAtNDcuNi02LTY4LjUtMTZoLTguM0MxNzkuNiAyODggMTI4IDMzOS42IDEyOCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjU1LjRjLTMuNy02LTYuMi0xMi44LTYuMi0yMC4zdi05LjJ6TTE3My4xIDI3NC42QzE2MS41IDI2My4xIDE0NS42IDI1NiAxMjggMjU2SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NS45YzYuMy00Ny40IDM0LjktODcuMyA3NS4yLTEwOS40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMyLjY1LDIxMi4zMiwzNi4yMSwxMzcuNzhBNjMuNCw2My40LDAsMCwwLDMyLDE2MGE2My44NCw2My44NCwwLDAsMCwxMDAuNjUsNTIuMzJabTQwLjQ0LDYyLjI4QTYzLjc5LDYzLjc5LDAsMCwwLDEyOCwyNTZINjRBNjQuMDYsNjQuMDYsMCwwLDAsMCwzMjB2MzJhMzIsMzIsMCwwLDAsMzIsMzJIOTcuOTFBMTQ2LjYyLDE0Ni42MiwwLDAsMSwxNzMuMDksMjc0LjZaTTU0NCwyMjRhNjQsNjQsMCwxLDAtNjQtNjRBNjQuMDYsNjQuMDYsMCwwLDAsNTQ0LDIyNFpNNTAwLjU2LDM1NS4xMWExMTQuMjQsMTE0LjI0LDAsMCwwLTg0LjQ3LTY1LjI4TDM2MSwyNDcuMjNjNDEuNDYtMTYuMyw3MS01NS45Miw3MS0xMDMuMjNBMTExLjkzLDExMS45MywwLDAsMCwzMjAsMzJjLTU3LjE0LDAtMTAzLjY5LDQyLjgzLTExMC42LDk4LjA4TDQ1LjQ2LDMuMzhBMTYsMTYsMCwwLDAsMjMsNi4xOUwzLjM3LDMxLjQ2QTE2LDE2LDAsMCwwLDYuMTgsNTMuOTFMNTk0LjUzLDUwOC42M0ExNiwxNiwwLDAsMCw2MTcsNTA1LjgybDE5LjY0LTI1LjI3YTE2LDE2LDAsMCwwLTIuODEtMjIuNDVaTTEyOCw0MDMuMjFWNDMyYTQ4LDQ4LDAsMCwwLDQ4LDQ4SDQ2NGE0Ny40NSw0Ny40NSwwLDAsMCwxMi41Ny0xLjg3TDIzMiwyODkuMTNDMTczLjc0LDI5NC44MywxMjgsMzQzLjQyLDEyOCw0MDMuMjFaTTU3NiwyNTZINTEyYTYzLjc5LDYzLjc5LDAsMCwwLTQ1LjA5LDE4LjZBMTQ2LjI5LDE0Ni4yOSwwLDAsMSw1NDIsMzg0aDY2YTMyLDMyLDAsMCwwLDMyLTMyVjMyMEE2NC4wNiw2NC4wNiwwLDAsMCw1NzYsMjU2WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bTQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptMzIgMzJoLTY0Yy0xNy42IDAtMzMuNSA3LjEtNDUuMSAxOC42IDQwLjMgMjIuMSA2OC45IDYyIDc1LjEgMTA5LjRoNjZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0em0tMjU2IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJTMzgxLjkgMzIgMzIwIDMyIDIwOCA4Mi4xIDIwOCAxNDRzNTAuMSAxMTIgMTEyIDExMnptNzYuOCAzMmgtOC4zYy0yMC44IDEwLTQzLjkgMTYtNjguNSAxNnMtNDcuNi02LTY4LjUtMTZoLTguM0MxNzkuNiAyODggMTI4IDMzOS42IDEyOCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yOC44YzAtNjMuNi01MS42LTExNS4yLTExNS4yLTExNS4yem0tMjIzLjctMTMuNEMxNjEuNSAyNjMuMSAxNDUuNiAyNTYgMTI4IDI1Nkg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjUuOWM2LjMtNDcuNCAzNC45LTg3LjMgNzUuMi0xMDkuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVdGVuc2lsU3Bvb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwLjEgMzEuOWMtNTUtNTUuMS0xNjQuOS0zNC41LTIyNy44IDI4LjUtNDkuMyA0OS4zLTU1LjEgMTEwLTI4LjggMTYwLjRMOSA0MTMuMmMtMTEuNiAxMC41LTEyLjEgMjguNS0xIDM5LjVMNTkuMyA1MDRjMTEgMTEgMjkuMSAxMC41IDM5LjUtMS4xbDE5Mi40LTIxNC40YzUwLjQgMjYuMyAxMTEuMSAyMC41IDE2MC40LTI4LjggNjMtNjIuOSA4My42LTE3Mi44IDI4LjUtMjI3Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXRlbnNpbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA3LjkgMTUuMmMuOCA0LjcgMTYuMSA5NC41IDE2LjEgMTI4LjggMCA1Mi4zLTI3LjggODkuNi02OC45IDEwNC42TDE2OCA0ODYuN2MuNyAxMy43LTEwLjIgMjUuMy0yNCAyNS4zSDgwYy0xMy43IDAtMjQuNy0xMS41LTI0LTI1LjNsMTIuOS0yMzguMUMyNy43IDIzMy42IDAgMTk2LjIgMCAxNDQgMCAxMDkuNiAxNS4zIDE5LjkgMTYuMSAxNS4yIDE5LjMtNS4xIDYxLjQtNS40IDY0IDE2LjN2MTQxLjJjMS4zIDMuNCAxNS4xIDMuMiAxNiAwIDEuNC0yNS4zIDcuOS0xMzkuMiA4LTE0MS44IDMuMy0yMC44IDQ0LjctMjAuOCA0Ny45IDAgLjIgMi43IDYuNiAxMTYuNSA4IDE0MS44LjkgMy4yIDE0LjggMy40IDE2IDBWMTYuM2MyLjYtMjEuNiA0NC44LTIxLjQgNDgtMS4xem0xMTkuMiAyODUuN2wtMTUgMTg1LjFjLTEuMiAxNCA5LjkgMjYgMjMuOSAyNmg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyNGMwLTEzLjItMTAuNy0yNC0yNC0yNC04Mi41IDAtMjIxLjQgMTc4LjUtNjQuOSAzMDAuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZWN0b3JTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDEyOFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC05NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMkgxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMydjE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJoMTkyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMlYxNjBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnptLTk2LTY0aDMydjMyaC0zMlY2NHpNNjQgNjRoMzJ2MzJINjRWNjR6bTMyIDM4NEg2NHYtMzJoMzJ2MzJ6bTM1MiAwaC0zMnYtMzJoMzJ2MzJ6bS0zMi05NmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJIMTYwdi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDk2VjE2MGgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjk2aDE5MnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMydjE5MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51c0RvdWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTc2YzAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzAgOTYuNSAwIDE3NmMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWMzY4SDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtNTEuNmM2NC4xLTE0LjUgMTEyLTcxLjkgMTEyLTE0MC40em0tMjI0IDBjMC00NC4xIDM1LjktODAgODAtODBzODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODB6bTMzNiAxNDAuNFYzNjhoMzZjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMmgtMzZ2MzZjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi0zNmgtMzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDM2di01MS42Yy0yMS4yLTQuOC00MC42LTE0LjMtNTcuMi0yNy4zIDE0LTE2LjcgMjUtMzYgMzIuMS01Ny4xIDE0LjUgMTQuOCAzNC43IDI0IDU3LjEgMjQgNDQuMSAwIDgwLTM1LjkgODAtODBzLTM1LjktODAtODAtODBjLTIyLjMgMC00Mi42IDkuMi01Ny4xIDI0LTcuMS0yMS4xLTE4LTQwLjQtMzIuMS01Ny4xQzMwMy40IDQzLjYgMzM0LjMgMzIgMzY4IDMyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNjguNS00Ny45IDEyNS45LTExMiAxNDAuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51c01hcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY0IDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktNDguNyA0OC43QzQyMi41IDcyLjEgMzk2LjIgNjQgMzY4IDY0Yy0zMy43IDAtNjQuNiAxMS42LTg5LjIgMzAuOSAxNCAxNi43IDI1IDM2IDMyLjEgNTcuMSAxNC41LTE0LjggMzQuNy0yNCA1Ny4xLTI0IDQ0LjEgMCA4MCAzNS45IDgwIDgwcy0zNS45IDgwLTgwIDgwYy0yMi4zIDAtNDIuNi05LjItNTcuMS0yNC03LjEgMjEuMS0xOCA0MC40LTMyLjEgNTcuMSAyNC41IDE5LjQgNTUuNSAzMC45IDg5LjIgMzAuOSA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDQ4LjctNDguNyAxNi45IDE2LjljMi40IDIuNCA1LjQgMy41IDguNCAzLjUgNi4yIDAgMTIuMS00LjggMTIuMS0xMlYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCA2NEM2NC41IDY0IDAgMTI4LjUgMCAyMDhjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQwMEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYzNmMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0zNmgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTUxLjZjNjQuMS0xNC42IDExMi03MS45IDExMi0xNDAuNCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHptMCAyMjRjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCA5Ni41IDAgMTc2YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFYzNjhINzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzZoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di01MS42YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0yMjQgMGMwLTQ0LjEgMzUuOS04MCA4MC04MHM4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZXN0UGF0Y2hlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuMjUyLDIzOS44NzcsMzg0LDE2MFYzMkEzMiwzMiwwLDAsMCwzNTIsMEgzMjBhMjMuOTgyLDIzLjk4MiwwLDAsMC0xMy4zMTIsNC4wMzFsLTI1LDE2LjY3MmExMDMuNzk0LDEwMy43OTQsMCwwLDEtMTE1LjM3NiwwbC0yNS0xNi42NzJBMjMuOTgyLDIzLjk4MiwwLDAsMCwxMjgsMEg5NkEzMiwzMiwwLDAsMCw2NCwzMlYxNjBMMTAuNzQ4LDIzOS44NzdBNjQsNjQsMCwwLDAsMCwyNzUuMzc3VjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkgxOTJWMjg4YTMxLjk4NywzMS45ODcsMCwwLDEsMS42NDMtMTAuMTE5TDIwNy4xMzUsMjM3LjQsMTUwLjE4OCw2Ni41NjFBMTUxLjU3OSwxNTEuNTc5LDAsMCwwLDIyNCw4Ni4yMzRhMTUxLjU2NSwxNTEuNTY1LDAsMCwwLDczLjgxMS0xOS42NjhMMjI0LDI4OFY1MTJINDE2YTMyLDMyLDAsMCwwLDMyLTMyVjI3NS4zNzdBNjQsNjQsMCwwLDAsNDM3LjI1MiwyMzkuODc3Wk02My41LDI3Mi40ODRhMTIuMDEsMTIuMDEsMCwwLDEsMTctMTYuOTY4bDE1LjUsMTUuNSwxNS41LTE1LjVhMTIuMDEsMTIuMDEsMCwwLDEsMTcsMTYuOTY4TDExMi45ODQsMjg4LDEyOC41LDMwMy41MTZhMTIuMDEsMTIuMDEsMCwwLDEtMTcsMTYuOTY4TDk2LDMwNC45ODRsLTE1LjUsMTUuNWExMi4wMSwxMi4wMSwwLDAsMS0xNy0xNi45NjhMNzkuMDE2LDI4OFpNOTYsNDU2YTQwLDQwLDAsMSwxLDQwLTQwQTQwLDQwLDAsMCwxLDk2LDQ1NlpNMzU5LjIyNywzMzUuNzg1LDMxMC43LDMzNmE2LjY3MSw2LjY3MSwwLDAsMS02LjctNi43bC4yMTUtNDguNTc0QTI0Ljk4NywyNC45ODcsMCwwLDEsMzMxLjQzLDI1Ni4xYzEyLjc4OSwxLjE2MiwyMi4xMjksMTIuNjE5LDIyLjA1NiwyNS40MTlsLS4wMzcsNS4wNTcsNS4wNTEtLjAzN2MxMi44MjYtLjAzNSwyNC4yMzYsOS4yNzUsMjUuNCwyMi4wNzZBMjQuOTQ4LDI0Ljk0OCwwLDAsMSwzNTkuMjI3LDMzNS43ODVaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuMjUyLDIzOS44NzcsMzg0LDE2MFYzMkEzMiwzMiwwLDAsMCwzNTIsMEgzMjBhMjQuMDIxLDI0LjAyMSwwLDAsMC0xMy4zMTIsNC4wMzFsLTI1LDE2LjY3MmExMDMuNzk0LDEwMy43OTQsMCwwLDEtMTE1LjM3NiwwbC0yNS0xNi42NzJBMjQuMDIxLDI0LjAyMSwwLDAsMCwxMjgsMEg5NkEzMiwzMiwwLDAsMCw2NCwzMlYxNjBMMTAuNzQ4LDIzOS44NzdBNjQsNjQsMCwwLDAsMCwyNzUuMzc3VjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkgxOTJWMjg4YTMxLjk4NywzMS45ODcsMCwwLDEsMS42NDMtMTAuMTE5TDIwNy4xMzUsMjM3LjQsMTUwLjE4OCw2Ni41NjRBMTUxLjUxOCwxNTEuNTE4LDAsMCwwLDIyNCw4Ni4yMzRhMTUxLjU1LDE1MS41NSwwLDAsMCw3My44MTItMTkuNjcyTDIyNCwyODhWNTEySDQxNmEzMiwzMiwwLDAsMCwzMi0zMlYyNzUuMzc3QTY0LDY0LDAsMCwwLDQzNy4yNTIsMjM5Ljg3N1pNMTMxLjMxMiwzNzEuMzEybC00OCw0OGExNiwxNiwwLDAsMS0yMi42MjQtMjIuNjI0bDQ4LTQ4YTE2LDE2LDAsMCwxLDIyLjYyNCwyMi42MjRabTI1Niw0OGExNS45OTIsMTUuOTkyLDAsMCwxLTIyLjYyNCwwbC00OC00OGExNiwxNiwwLDAsMSwyMi42MjQtMjIuNjI0bDQ4LDQ4QTE1Ljk5MywxNS45OTMsMCwwLDEsMzg3LjMxMiw0MTkuMzEyWlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc3LjcgMTg2LjFMMzA5LjUgMTguM2MtMy4xLTMuMS04LjItMy4xLTExLjMgMGwtMzQgMzMuOWMtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM2wxMS4yIDExLjFMMzMgMzE2LjVjLTM4LjggMzguNy00NS4xIDEwMi05LjQgMTQzLjUgMjAuNiAyNCA0OS41IDM2IDc4LjQgMzUuOSAyNi40IDAgNTIuOC0xMCA3Mi45LTMwLjFsMjQ2LjMtMjQ1LjcgMTEuMiAxMS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMzQtMzMuOWMzLjEtMyAzLjEtOC4xIDAtMTEuMnpNMzE4IDI1NkgxNjFsMTQ4LTE0Ny43IDc4LjUgNzguM0wzMTggMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcyIDY0aDI0djI0MGMwIDQ0LjEgMzUuOSA4MCA4MCA4MHM4MC0zNS45IDgwLTgwVjY0aDI0YzQuNCAwIDgtMy42IDgtOFY4YzAtNC40LTMuNi04LTgtOEg3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptNzIgMGg2NHY5NmgtNjRWNjR6bTQ4MCAzODRIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjAgNjRoMjR2MjQwYzAgNDQuMSAzNS45IDgwIDgwIDgwczgwLTM1LjkgODAtODBWNjRoMjRjNC40IDAgOC0zLjYgOC04VjhjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptNzIgMGg2NHY5NmgtNjRWNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlkZW9TbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuOCA0NTguMWwtNTUtNDIuNWMxNS40LTEuNCAyOS4yLTEzLjcgMjkuMi0zMS4xdi0yNTdjMC0yNS41LTI5LjEtNDAuNC01MC40LTI1LjhMNDQ4IDE3Ny4zdjEzNy4ybC0zMi0yNC43di0xNzhjMC0yNi40LTIxLjQtNDcuOC00Ny44LTQ3LjhIMTIzLjlMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRMNDIuNyA4MiA0MTYgMzcwLjZsMTc4LjUgMTM4YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS41LTYuOSA0LjItMTctMi44LTIyLjR6TTMyIDQwMC4yYzAgMjYuNCAyMS40IDQ3LjggNDcuOCA0Ny44aDI4OC40YzExLjIgMCAyMS40LTQgMjkuNi0xMC41TDMyIDE1NC43djI0NS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNi4yIDY0SDQ3LjhDMjEuNCA2NCAwIDg1LjQgMCAxMTEuOHYyODguNEMwIDQyNi42IDIxLjQgNDQ4IDQ3LjggNDQ4aDI4OC40YzI2LjQgMCA0Ny44LTIxLjQgNDcuOC00Ny44VjExMS44YzAtMjYuNC0yMS40LTQ3LjgtNDcuOC00Ny44em0xODkuNCAzNy43TDQxNiAxNzcuM3YxNTcuNGwxMDkuNiA3NS41YzIxLjIgMTQuNiA1MC40LS4zIDUwLjQtMjUuOFYxMjcuNWMwLTI1LjQtMjkuMS00MC40LTUwLjQtMjUuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWhhcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMyLjg4IDQwMC43MUw1NDQgMzUydi02NGw1NS4xNi0xNy42OWMxMS43OS01LjkgMTEuNzktMjIuNzIgMC0yOC42Mkw0ODAgMTkydi02NGwyNy4zMS0xNi4zYzcuNzItNy43MiA1LjYxLTIwLjc0LTQuMTYtMjUuNjJMMzIwIDAgMTM2Ljg1IDg2LjA3Yy05Ljc3IDQuODgtMTEuODggMTcuOS00LjE2IDI1LjYyTDE2MCAxMjh2NjRMNDAuODQgMjQxLjY5Yy0xMS43OSA1LjktMTEuNzkgMjIuNzIgMCAyOC42Mkw5NiAyODh2NjRMNy4xMiA0MDAuNzFjLTUuNDIgMy42Mi03LjcgOS42My03IDE1LjI5LjYyIDUuMDEgMy41NyA5Ljc1IDguNzIgMTIuMzNMNjQgNDQ4djQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di00OGgxNjB2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTQ4aDE2MHY0OGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNDhsNTUuMTUtMTkuNjdjNS4xNi0yLjU4IDguMS03LjMyIDguNzItMTIuMzMuNzEtNS42Ny0xLjU3LTExLjY4LTYuOTktMTUuMjl6TTIyNCAxMjhoMTkydjY0SDIyNHYtNjR6bS02NCAyMjR2LTY0aDMyMHY2NEgxNjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlydXNTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTQsMjI3LjZIOTIuNEM3Ni43LDIyNy42LDY0LDI0MC4zLDY0LDI1NnMxMi43LDI4LjQsMjguNCwyOC40SDExNGM1MC43LDAsNzYuMSw2MS4zLDQwLjIsOTcuMUwxMzksMzk2LjggYy0xMS41LDEwLjctMTIuMiwyOC43LTEuNiw0MC4yczI4LjcsMTIuMiw0MC4yLDEuNmMwLjUtMC41LDEuMS0xLDEuNi0xLjZsMTUuMi0xNS4yYzM1LjgtMzUuOCw5Ny4xLTEwLjUsOTcuMSw0MC4ydjIxLjUgYzAsMTUuNywxMi44LDI4LjQsMjguNSwyOC40YzE1LjcsMCwyOC40LTEyLjcsMjguNC0yOC40VjQ2MmMwLTI2LjYsMTctNDUuOSwzOC4yLTUzLjRsLTI0NC41LTE4OSBDMTMzLjcsMjI0LjcsMTIzLjksMjI3LjUsMTE0LDIyNy42eiBNNjE3LDUwNS44bDE5LjYtMjUuM2M1LjQtNyw0LjItMTctMi44LTIyLjVMNDcwLjYsMzMyYzQuMi0yNS40LDI0LjktNDcuNSw1NS40LTQ3LjVoMjEuNSBjMTUuNywwLDI4LjQtMTIuNywyOC40LTI4LjRzLTEyLjctMjguNC0yOC40LTI4LjRINTI2Yy01MC43LDAtNzYuMS02MS4zLTQwLjItOTcuMWwxNS4yLTE1LjNjMTAuNy0xMS41LDEwLTI5LjUtMS42LTQwLjIgYy0xMC45LTEwLjEtMjcuNy0xMC4xLTM4LjYsMGwtMTUuMiwxNS4yYy0zNS44LDM1LjgtOTcuMSwxMC41LTk3LjEtNDAuMlYyOC41QzM0OC40LDEyLjcsMzM1LjcsMCwzMjAsMCBjLTE1LjcsMC0yOC40LDEyLjctMjguNCwyOC40VjUwYzAsNTAuNy02MS4zLDc2LjEtOTcuMSw0MC4yTDE3OS4yLDc1Yy0xMS4xLTExLjEtMjkuNC0xMC42LTQwLjUsMC41TDQ1LjUsMy40IGMtNy01LjQtMTctNC4yLTIyLjUsMi44TDMuNCwzMS41Yy01LjQsNy00LjIsMTcsMi44LDIyLjVsNTg4LjQsNDU0LjdDNjAxLjUsNTE0LjEsNjExLjYsNTEyLjgsNjE3LDUwNS44eiBNMzM1LjQsMjI3LjVsLTYyLjktNDguNiBjNC45LTEuOCwxMC4yLTIuOCwxNS40LTIuOWMyNi41LDAsNDgsMjEuNSw0OCw0OEMzMzYsMjI1LjIsMzM1LjUsMjI2LjMsMzM1LjQsMjI3LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgzLjU1LDIyNy41NUg0NjJjLTUwLjY4LDAtNzYuMDctNjEuMjctNDAuMjMtOTcuMTFMNDM3LDExNS4xOUEyOC40NCwyOC40NCwwLDAsMCwzOTYuOCw3NUwzODEuNTYsOTAuMjJjLTM1Ljg0LDM1LjgzLTk3LjExLDEwLjQ1LTk3LjExLTQwLjIzVjI4LjQ0YTI4LjQ1LDI4LjQ1LDAsMCwwLTU2LjksMFY1MGMwLDUwLjY4LTYxLjI3LDc2LjA2LTk3LjExLDQwLjIzTDExNS4yLDc1QTI4LjQ0LDI4LjQ0LDAsMCwwLDc1LDExNS4xOWwxNS4yNSwxNS4yNWMzNS44NCwzNS44NCwxMC40NSw5Ny4xMS00MC4yMyw5Ny4xMUgyOC40NWEyOC40NSwyOC40NSwwLDEsMCwwLDU2Ljg5SDUwYzUwLjY4LDAsNzYuMDcsNjEuMjgsNDAuMjMsOTcuMTJMNzUsMzk2LjhBMjguNDUsMjguNDUsMCwwLDAsMTE1LjIsNDM3bDE1LjI0LTE1LjI1YzM1Ljg0LTM1Ljg0LDk3LjExLTEwLjQ1LDk3LjExLDQwLjIzdjIxLjU0YTI4LjQ1LDI4LjQ1LDAsMCwwLDU2LjksMFY0NjJjMC01MC42OCw2MS4yNy03Ni4wNyw5Ny4xMS00MC4yM0wzOTYuOCw0MzdBMjguNDUsMjguNDUsMCwwLDAsNDM3LDM5Ni44bC0xNS4yNS0xNS4yNGMtMzUuODQtMzUuODQtMTAuNDUtOTcuMTIsNDAuMjMtOTcuMTJoMjEuNTRhMjguNDUsMjguNDUsMCwxLDAsMC01Ni44OVpNMjI0LDI3MmE0OCw0OCwwLDEsMSw0OC00OEE0OCw0OCwwLDAsMSwyMjQsMjcyWm04MCw1NmEyNCwyNCwwLDEsMSwyNC0yNEEyNCwyNCwwLDAsMSwzMDQsMzI4WlwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpcnVzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0LDM1Mkg2MTEuODhjLTI4LjUxLDAtNDIuNzktMzQuNDctMjIuNjMtNTQuNjNsOC41OC04LjU3YTE2LDE2LDAsMSwwLTIyLjYzLTIyLjYzbC04LjU3LDguNThDNTQ2LjQ3LDI5NC45MSw1MTIsMjgwLjYzLDUxMiwyNTIuMTJWMjQwYTE2LDE2LDAsMCwwLTMyLDB2MTIuMTJjMCwyOC41MS0zNC40Nyw0Mi43OS01NC42MywyMi42M2wtOC41Ny04LjU4YTE2LDE2LDAsMCwwLTIyLjYzLDIyLjYzbDguNTgsOC41N2MyMC4xNiwyMC4xNiw1Ljg4LDU0LjYzLTIyLjYzLDU0LjYzSDM2OGExNiwxNiwwLDAsMCwwLDMyaDEyLjEyYzI4LjUxLDAsNDIuNzksMzQuNDcsMjIuNjMsNTQuNjNsLTguNTgsOC41N2ExNiwxNiwwLDEsMCwyMi42MywyMi42M2w4LjU3LTguNThjMjAuMTYtMjAuMTYsNTQuNjMtNS44OCw1NC42MywyMi42M1Y0OTZhMTYsMTYsMCwwLDAsMzIsMFY0ODMuODhjMC0yOC41MSwzNC40Ny00Mi43OSw1NC42My0yMi42M2w4LjU3LDguNThhMTYsMTYsMCwxLDAsMjIuNjMtMjIuNjNsLTguNTgtOC41N0M1NjkuMDksNDE4LjQ3LDU4My4zNywzODQsNjExLjg4LDM4NEg2MjRhMTYsMTYsMCwwLDAsMC0zMlpNNDgwLDM4NGEzMiwzMiwwLDEsMSwzMi0zMkEzMiwzMiwwLDAsMSw0ODAsMzg0Wk0zNDYuNTEsMjEzLjMzaDE2LjE2YTIxLjMzLDIxLjMzLDAsMCwwLDAtNDIuNjZIMzQ2LjUxYy0zOCwwLTU3LjA1LTQ2LTMwLjE3LTcyLjg0bDExLjQzLTExLjQ0QTIxLjMzLDIxLjMzLDAsMCwwLDI5Ny42LDU2LjIzTDI4Ni4xNyw2Ny42NmMtMjYuODgsMjYuODgtNzIuODQsNy44NS03Mi44NC0zMC4xN1YyMS4zM2EyMS4zMywyMS4zMywwLDAsMC00Mi42NiwwVjM3LjQ5YzAsMzgtNDYsNTcuMDUtNzIuODQsMzAuMTdMODYuNCw1Ni4yM0EyMS4zMywyMS4zMywwLDAsMCw1Ni4yMyw4Ni4zOUw2Ny42Niw5Ny44M2MyNi44OCwyNi44OCw3Ljg1LDcyLjg0LTMwLjE3LDcyLjg0SDIxLjMzYTIxLjMzLDIxLjMzLDAsMCwwLDAsNDIuNjZIMzcuNDljMzgsMCw1Ny4wNSw0NiwzMC4xNyw3Mi44NEw1Ni4yMywyOTcuNkEyMS4zMywyMS4zMywwLDEsMCw4Ni40LDMyNy43N2wxMS40My0xMS40M2MyNi44OC0yNi44OCw3Mi44NC03Ljg1LDcyLjg0LDMwLjE3djE2LjE2YTIxLjMzLDIxLjMzLDAsMCwwLDQyLjY2LDBWMzQ2LjUxYzAtMzgsNDYtNTcuMDUsNzIuODQtMzAuMTdsMTEuNDMsMTEuNDNhMjEuMzMsMjEuMzMsMCwwLDAsMzAuMTctMzAuMTdsLTExLjQzLTExLjQzQzI4OS40NiwyNTkuMjksMzA4LjQ5LDIxMy4zMywzNDYuNTEsMjEzLjMzWk0xNjAsMTkyYTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDE2MCwxOTJabTgwLDMyYTE2LDE2LDAsMSwxLDE2LTE2QTE2LDE2LDAsMCwxLDI0MCwyMjRaXCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9pY2VtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAxMjhhMTQ0IDE0NCAwIDAgMC0xMTkuNzQgMjI0SDI2My43NEExNDQgMTQ0IDAgMSAwIDE0NCA0MTZoMzUyYTE0NCAxNDQgMCAwIDAgMC0yODh6TTY0IDI3MmE4MCA4MCAwIDEgMSA4MCA4MCA4MCA4MCAwIDAgMS04MC04MHptNDMyIDgwYTgwIDgwIDAgMSAxIDgwLTgwIDgwIDgwIDAgMCAxLTgwIDgwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbGxleWJhbGxCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMS4zOSAyNDMuNDhhMjg1LjU2IDI4NS41NiAwIDAgMC0yMi43LTEwNS43Yy05MC44IDQyLjQtMTU3LjUgMTIyLjQtMTgwLjMgMjE2LjhhMjQ5IDI0OSAwIDAgMCA1Ni45IDgxLjEgMzMzLjg3IDMzMy44NyAwIDAgMSAxNDYuMS0xOTIuMnptLTM2LjktMTM0LjRhMjg0LjIzIDI4NC4yMyAwIDAgMC01Ny40LTcwLjdjLTkxIDQ5LjgtMTQ0LjggMTUyLjktMTI1IDI2Mi4yIDMzLjQtODMuMSA5OC40LTE1MiAxODIuNC0xOTEuNXptMTg3LjYgMTY1LjFjOC42LTk5LjgtMjcuMy0xOTcuNS05Ny41LTI2NC40LTE0LjctMS43LTUxLjYtNS41LTk4LjkgOC41QTMzMy44NyAzMzMuODcgMCAwIDEgMjc5LjE5IDI0MWEyODUgMjg1IDAgMCAwIDEwMi45IDMzLjE4em0tMTI0LjcgOS41YTI4Ni4zMyAyODYuMzMgMCAwIDAtODAuMiA3Mi42YzgyIDU3LjMgMTg0LjUgNzUuMSAyNzcuNSA0Ny44YTI0Ny4xNSAyNDcuMTUgMCAwIDAgNDIuMi04OS45IDMzNi4xIDMzNi4xIDAgMCAxLTgwLjkgMTAuNGMtNTQuNi0uMS0xMDguOS0xNC4xLTE1OC42LTQwLjl6bS05OC4zIDk5LjdjLTE1LjIgMjYtMjUuNyA1NC40LTMyLjEgODQuMmEyNDcuMDcgMjQ3LjA3IDAgMCAwIDI4OS0yMi4xYy0xMTIuOSAxNi4xLTIwMy4zLTI0LjgtMjU2LjktNjIuMXptMTgwLjMtMzYwLjZjNTUuMyA3MC40IDgyLjUgMTYxLjIgNzQuNiAyNTMuNmEyODYuNTkgMjg2LjU5IDAgMCAwIDg5LjctMTQuMmMwLTIgLjMtNCAuMy02IDAtMTA3LjgtNjguNy0xOTkuMS0xNjQuNi0yMzMuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS4wMyA3Mi4wNEwxMjYuMDYgMTYxSDI0Yy0xMy4yNiAwLTI0IDEwLjc0LTI0IDI0djE0NGMwIDEzLjI1IDEwLjc0IDI0IDI0IDI0aDEwMi4wNmw4OC45NyA4OC45NWMxNS4wMyAxNS4wMyA0MC45NyA0LjQ3IDQwLjk3LTE2Ljk3Vjg5LjAyYzAtMjEuNDctMjUuOTYtMzEuOTgtNDAuOTctMTYuOTh6bTEyMy4yIDEwOC4wOGMtMTEuNTgtNi4zMy0yNi4xOS0yLjE2LTMyLjYxIDkuNDUtNi4zOSAxMS42MS0yLjE2IDI2LjIgOS40NSAzMi42MUMzMjcuOTggMjI5LjI4IDMzNiAyNDIuNjIgMzM2IDI1N2MwIDE0LjM4LTguMDIgMjcuNzItMjAuOTIgMzQuODEtMTEuNjEgNi40MS0xNS44NCAyMS05LjQ1IDMyLjYxIDYuNDMgMTEuNjYgMjEuMDUgMTUuOCAzMi42MSA5LjQ1IDI4LjIzLTE1LjU1IDQ1Ljc3LTQ1IDQ1Ljc3LTc2Ljg4cy0xNy41NC02MS4zMi00NS43OC03Ni44N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVNdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS4wMyA3MS4wNUwxMjYuMDYgMTYwSDI0Yy0xMy4yNiAwLTI0IDEwLjc0LTI0IDI0djE0NGMwIDEzLjI1IDEwLjc0IDI0IDI0IDI0aDEwMi4wNmw4OC45NyA4OC45NWMxNS4wMyAxNS4wMyA0MC45NyA0LjQ3IDQwLjk3LTE2Ljk3Vjg4LjAyYzAtMjEuNDYtMjUuOTYtMzEuOTgtNDAuOTctMTYuOTd6TTQ2MS42NCAyNTZsNDUuNjQtNDUuNjRjNi4zLTYuMyA2LjMtMTYuNTIgMC0yMi44MmwtMjIuODItMjIuODJjLTYuMy02LjMtMTYuNTItNi4zLTIyLjgyIDBMNDE2IDIxMC4zNmwtNDUuNjQtNDUuNjRjLTYuMy02LjMtMTYuNTItNi4zLTIyLjgyIDBsLTIyLjgyIDIyLjgyYy02LjMgNi4zLTYuMyAxNi41MiAwIDIyLjgyTDM3MC4zNiAyNTZsLTQ1LjYzIDQ1LjYzYy02LjMgNi4zLTYuMyAxNi41MiAwIDIyLjgybDIyLjgyIDIyLjgyYzYuMyA2LjMgMTYuNTIgNi4zIDIyLjgyIDBMNDE2IDMwMS42NGw0NS42NCA0NS42NGM2LjMgNi4zIDE2LjUyIDYuMyAyMi44MiAwbDIyLjgyLTIyLjgyYzYuMy02LjMgNi4zLTE2LjUyIDAtMjIuODJMNDYxLjY0IDI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1IDcxbC04OSA4OUgyNGEyNCAyNCAwIDAgMC0yNCAyNHYxNDRhMjQgMjQgMCAwIDAgMjQgMjRoMTAyLjA2TDIxNSA0NDFjMTUgMTUgNDEgNC40NyA0MS0xN1Y4OGMwLTIxLjQ3LTI2LTMyLTQxLTE3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS4wMyA3MS4wNUwxMjYuMDYgMTYwSDI0Yy0xMy4yNiAwLTI0IDEwLjc0LTI0IDI0djE0NGMwIDEzLjI1IDEwLjc0IDI0IDI0IDI0aDEwMi4wNmw4OC45NyA4OC45NWMxNS4wMyAxNS4wMyA0MC45NyA0LjQ3IDQwLjk3LTE2Ljk3Vjg4LjAyYzAtMjEuNDYtMjUuOTYtMzEuOTgtNDAuOTctMTYuOTd6bTIzMy4zMi01MS4wOGMtMTEuMTctNy4zMy0yNi4xOC00LjI0LTMzLjUxIDYuOTUtNy4zNCAxMS4xNy00LjIyIDI2LjE4IDYuOTUgMzMuNTEgNjYuMjcgNDMuNDkgMTA1LjgyIDExNi42IDEwNS44MiAxOTUuNTggMCA3OC45OC0zOS41NSAxNTIuMDktMTA1LjgyIDE5NS41OC0xMS4xNyA3LjMyLTE0LjI5IDIyLjM0LTYuOTUgMzMuNSA3LjA0IDEwLjcxIDIxLjkzIDE0LjU2IDMzLjUxIDYuOTVDNTI4LjI3IDQzOS41OCA1NzYgMzUxLjMzIDU3NiAyNTZTNTI4LjI3IDcyLjQzIDQ0OC4zNSAxOS45N3pNNDgwIDI1NmMwLTYzLjUzLTMyLjA2LTEyMS45NC04NS43Ny0xNTYuMjQtMTEuMTktNy4xNC0yNi4wMy0zLjgyLTMzLjEyIDcuNDZzLTMuNzggMjYuMjEgNy40MSAzMy4zNkM0MDguMjcgMTY1Ljk3IDQzMiAyMDkuMTEgNDMyIDI1NnMtMjMuNzMgOTAuMDMtNjMuNDggMTE1LjQyYy0xMS4xOSA3LjE0LTE0LjUgMjIuMDctNy40MSAzMy4zNiA2LjUxIDEwLjM2IDIxLjEyIDE1LjE0IDMzLjEyIDcuNDZDNDQ3Ljk0IDM3Ny45NCA0ODAgMzE5LjU0IDQ4MCAyNTZ6bS0xNDEuNzctNzYuODdjLTExLjU4LTYuMzMtMjYuMTktMi4xNi0zMi42MSA5LjQ1LTYuMzkgMTEuNjEtMi4xNiAyNi4yIDkuNDUgMzIuNjFDMzI3Ljk4IDIyOC4yOCAzMzYgMjQxLjYzIDMzNiAyNTZjMCAxNC4zOC04LjAyIDI3LjcyLTIwLjkyIDM0LjgxLTExLjYxIDYuNDEtMTUuODQgMjEtOS40NSAzMi42MSA2LjQzIDExLjY2IDIxLjA1IDE1LjggMzIuNjEgOS40NSAyOC4yMy0xNS41NSA0NS43Ny00NSA0NS43Ny03Ni44OHMtMTcuNTQtNjEuMzItNDUuNzgtNzYuODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm90ZVllYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggMzIwaC02NHY2NGgyMi40YzUuMyAwIDkuNiAzLjYgOS42IDh2MTZjMCA0LjQtNC4zIDgtOS42IDhINzMuNmMtNS4zIDAtOS42LTMuNi05LjYtOHYtMTZjMC00LjQgNC4zLTggOS42LThIOTZ2LTY0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tOTYgNjRWNjQuM2MwLTE3LjktMTQuNS0zMi4zLTMyLjMtMzIuM0gxNjAuNEMxNDIuNSAzMiAxMjggNDYuNSAxMjggNjQuM1YzODRoMzg0ek0yMTEuMiAyMDJsMjUuNS0yNS4zYzQuMi00LjIgMTEtNC4yIDE1LjIuMWw0MS4zIDQxLjYgOTUuMi05NC40YzQuMi00LjIgMTEtNC4yIDE1LjIuMWwyNS4zIDI1LjVjNC4yIDQuMiA0LjIgMTEtLjEgMTUuMkwzMDAuNSAyOTJjLTQuMiA0LjItMTEgNC4yLTE1LjItLjFsLTc0LjEtNzQuN2MtNC4zLTQuMi00LjItMTEgMC0xNS4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZyQ2FyZGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTYwLjIyYzI1LjE5IDAgNDguMDMtMTQuNzcgNTguMzYtMzcuNzRsMjcuNzQtNjEuNjRDMjg2LjIxIDMzMS4wOCAzMDIuMzUgMzIwIDMyMCAzMjBzMzMuNzkgMTEuMDggNDEuNjggMjguNjJsMjcuNzQgNjEuNjRDMzk5Ljc1IDQzMy4yMyA0MjIuNiA0NDggNDQ3Ljc4IDQ0OEg2MDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xNjAgMzA0Yy0zNS4zNSAwLTY0LTI4LjY1LTY0LTY0czI4LjY1LTY0IDY0LTY0IDY0IDI4LjY1IDY0IDY0LTI4LjY1IDY0LTY0IDY0em0zMjAgMGMtMzUuMzUgMC02NC0yOC42NS02NC02NHMyOC42NS02NCA2NC02NCA2NCAyOC42NSA2NCA2NC0yOC42NSA2NC02NCA2NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYWxraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA5NmMyNi41IDAgNDgtMjEuNSA0OC00OFMyMzQuNSAwIDIwOCAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTk0LjUgMTQ5LjFsLTIzLjMtMTEuOC05LjctMjkuNGMtMTQuNy00NC42LTU1LjctNzUuOC0xMDIuMi03NS45LTM2LS4xLTU1LjkgMTAuMS05My4zIDI1LjItMjEuNiA4LjctMzkuMyAyNS4yLTQ5LjcgNDYuMkwxNy42IDIxM2MtNy44IDE1LjgtMS41IDM1IDE0LjIgNDIuOSAxNS42IDcuOSAzNC42IDEuNSA0Mi41LTE0LjNMODEgMjI4YzMuNS03IDkuMy0xMi41IDE2LjUtMTUuNGwyNi44LTEwLjgtMTUuMiA2MC43Yy01LjIgMjAuOC40IDQyLjkgMTQuOSA1OC44bDU5LjkgNjUuNGM3LjIgNy45IDEyLjMgMTcuNCAxNC45IDI3LjdsMTguMyA3My4zYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjMgMTcuMS00LjMgMjcuNi0yMS43IDIzLjMtMzguOGwtMjIuMi04OWMtMi42LTEwLjMtNy43LTE5LjktMTQuOS0yNy43bC00NS41LTQ5LjcgMTcuMi02OC43IDUuNSAxNi41YzUuMyAxNi4xIDE2LjcgMjkuNCAzMS43IDM3bDIzLjMgMTEuOGMxNS42IDcuOSAzNC42IDEuNSA0Mi41LTE0LjMgNy43LTE1LjcgMS40LTM1LjEtMTQuMy00M3pNNzMuNiAzODUuOGMtMy4yIDguMS04IDE1LjQtMTQuMiAyMS41bC01MCA1MC4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi43IDEyLjUgNDUuMiAwbDU5LjQtNTkuNGM2LjEtNi4xIDEwLjktMTMuNCAxNC4yLTIxLjVsMTMuNS0zMy44Yy01NS4zLTYwLjMtMzguNy00MS44LTQ3LjQtNTMuN2wtMjAuNyA1MS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjEuMiAxMjhIODBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTZoMzg0YzguODQgMCAxNi03LjE2IDE2LTE2IDAtMjYuNTEtMjEuNDktNDgtNDgtNDhINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM5Ny4yYzI4LjAyIDAgNTAuOC0yMS41MyA1MC44LTQ4VjE3NmMwLTI2LjQ3LTIyLjc4LTQ4LTUwLjgtNDh6TTQxNiAzMzZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2FyZWhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAzNTJIMTM2LjRjLTQuNCAwLTggMy42LTggOGwtLjEgNDhjMCA0LjQgMy42IDggOCA4SDUwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMCA5NkgxMzYuMWMtNC40IDAtOCAzLjYtOCA4bC0uMSA0OGMwIDQuNCAzLjYgOCA4IDhoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0wLTE5MkgxMzYuNmMtNC40IDAtOCAzLjYtOCA4bC0uMSA0OGMwIDQuNCAzLjYgOCA4IDhINTA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xMDYuNS0xMzlMMzM4LjQgMy43YTQ4LjE1IDQ4LjE1IDAgMCAwLTM2LjkgMEwyOS41IDExN0MxMS43IDEyNC41IDAgMTQxLjkgMCAxNjEuM1Y1MDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOFYyNTZjMC0xNy42IDE0LjYtMzIgMzIuNi0zMmgzODIuOGMxOCAwIDMyLjYgMTQuNCAzMi42IDMydjI0OGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04VjE2MS4zYzAtMTkuNC0xMS43LTM2LjgtMjkuNS00NC4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2Mi4xIDM4My45Yy0yMS41LTIuNC00Mi4xLTEwLjUtNTcuOS0yMi45LTE0LjEtMTEuMS0zNC4yLTExLjMtNDguMiAwLTM3LjkgMzAuNC0xMDcuMiAzMC40LTE0NS43LTEuNS0xMy41LTExLjItMzMtOS4xLTQ2LjcgMS44LTM4IDMwLjEtMTA2LjkgMzAtMTQ1LjItMS43LTEzLjUtMTEuMi0zMy4zLTguOS00Ny4xIDItMTUuNSAxMi4yLTM2IDIwLjEtNTcuNyAyMi40LTcuOS44LTEzLjYgNy44LTEzLjYgMTUuN3YzMi4yYzAgOS4xIDcuNiAxNi44IDE2LjcgMTYgMjguOC0yLjUgNTYuMS0xMS40IDc5LjQtMjUuOSA1Ni41IDM0LjYgMTM3IDM0LjEgMTkyIDAgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDIzLjMgMTQuMiA1MC45IDIzLjMgNzkuMSAyNS44IDkuMS44IDE2LjctNi45IDE2LjctMTZ2LTMxLjZjLjEtOC01LjctMTUuNC0xMy44LTE2LjN6bTAtMTQ0Yy0yMS41LTIuNC00Mi4xLTEwLjUtNTcuOS0yMi45LTE0LjEtMTEuMS0zNC4yLTExLjMtNDguMiAwLTM3LjkgMzAuNC0xMDcuMiAzMC40LTE0NS43LTEuNS0xMy41LTExLjItMzMtOS4xLTQ2LjcgMS44LTM4IDMwLjEtMTA2LjkgMzAtMTQ1LjItMS43LTEzLjUtMTEuMi0zMy4zLTguOS00Ny4xIDItMTUuNSAxMi4yLTM2IDIwLjEtNTcuNyAyMi40LTcuOS44LTEzLjYgNy44LTEzLjYgMTUuN3YzMi4yYzAgOS4xIDcuNiAxNi44IDE2LjcgMTYgMjguOC0yLjUgNTYuMS0xMS40IDc5LjQtMjUuOSA1Ni41IDM0LjYgMTM3IDM0LjEgMTkyIDAgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDIzLjMgMTQuMiA1MC45IDIzLjMgNzkuMSAyNS44IDkuMS44IDE2LjctNi45IDE2LjctMTZ2LTMxLjZjLjEtOC01LjctMTUuNC0xMy44LTE2LjN6bTAtMTQ0QzU0MC42IDkzLjQgNTIwIDg1LjQgNTA0LjIgNzMgNDkwLjEgNjEuOSA0NzAgNjEuNyA0NTYgNzNjLTM3LjkgMzAuNC0xMDcuMiAzMC40LTE0NS43LTEuNS0xMy41LTExLjItMzMtOS4xLTQ2LjcgMS44LTM4IDMwLjEtMTA2LjkgMzAtMTQ1LjItMS43LTEzLjUtMTEuMi0zMy4zLTguOS00Ny4xIDItMTUuNSAxMi4yLTM2IDIwLjEtNTcuNyAyMi40LTcuOS44LTEzLjYgNy44LTEzLjYgMTUuN3YzMi4yYzAgOS4xIDcuNiAxNi44IDE2LjcgMTYgMjguOC0yLjUgNTYuMS0xMS40IDc5LjQtMjUuOSA1Ni41IDM0LjYgMTM3IDM0LjEgMTkyIDAgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDIzLjMgMTQuMiA1MC45IDIzLjMgNzkuMSAyNS44IDkuMS44IDE2LjctNi45IDE2LjctMTZ2LTMxLjZjLjEtOC01LjctMTUuNC0xMy44LTE2LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2F2ZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzYgNDgwSDMyNGEzNiAzNiAwIDAgMS0zNi0zNlY5NmgtOTZ2MTU2YTM2IDM2IDAgMCAxLTM2IDM2SDE2YTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgxMTJWNjhhMzYgMzYgMCAwIDEgMzYtMzZoMTUyYTM2IDM2IDAgMCAxIDM2IDM2djM0OGg5NlYyNjBhMzYgMzYgMCAwIDEgMzYtMzZoMTQwYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2SDUxMnYxNTZhMzYgMzYgMCAwIDEtMzYgMzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VpZ2h0SGFuZ2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuMjggNDQ1Ljg2bC03My4wMy0yOTIuMTNjLTMuOC0xNS4xOS0xNi40NC0yNS43Mi0zMC44Ny0yNS43MmgtNjAuMjVjMy41Ny0xMC4wNSA1Ljg4LTIwLjcyIDUuODgtMzIgMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTZjMCAxMS4yOCAyLjMgMjEuOTUgNS44OCAzMmgtNjAuMjVjLTE0LjQzIDAtMjcuMDggMTAuNTQtMzAuODcgMjUuNzJMMS43MiA0NDUuODZDLTYuNjEgNDc5LjE3IDE2LjM4IDUxMiA0OC4wMyA1MTJoNDE1Ljk1YzMxLjY0IDAgNTQuNjMtMzIuODMgNDYuMy02Ni4xNHpNMjU2IDEyOGMtMTcuNjQgMC0zMi0xNC4zNi0zMi0zMnMxNC4zNi0zMiAzMi0zMiAzMiAxNC4zNiAzMiAzMi0xNC4zNiAzMi0zMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDY0aC0yNS45OEM0MzguNDQgOTIuMjggNDQ4IDEyNS4wMSA0NDggMTYwYzAgMTA1Ljg3LTg2LjEzIDE5Mi0xOTIgMTkyUzY0IDI2NS44NyA2NCAxNjBjMC0zNC45OSA5LjU2LTY3LjcyIDI1Ljk4LTk2SDY0QzI4LjcxIDY0IDAgOTIuNzEgMCAxMjh2MzIwYzAgMzUuMjkgMjguNzEgNjQgNjQgNjRoMzg0YzM1LjI5IDAgNjQtMjguNzEgNjQtNjRWMTI4YzAtMzUuMjktMjguNzEtNjQtNjQtNjR6TTI1NiAzMjBjODguMzcgMCAxNjAtNzEuNjMgMTYwLTE2MFMzNDQuMzcgMCAyNTYgMCA5NiA3MS42MyA5NiAxNjBzNzEuNjMgMTYwIDE2MCAxNjB6bS0uMy0xNTEuOTRsMzMuNTgtNzguMzZjMy41LTguMTcgMTIuOTQtMTEuOTIgMjEuMDMtOC40MSA4LjEyIDMuNDggMTEuODggMTIuODkgOC40MSAyMWwtMzMuNjcgNzguNTVDMjkxLjczIDE4OCAyOTYgMTk3LjQ1IDI5NiAyMDhjMCAyMi4wOS0xNy45MSA0MC00MCA0MHMtNDAtMTcuOTEtNDAtNDBjMC0yMS45OCAxNy43Ni0zOS43NyAzOS43LTM5Ljk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoZWVsY2hhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjEwMSAzODUuNjY5bDE0LjIyNyAyOC42NjNjMy45MjkgNy45MTUuNjk3IDE3LjUxNi03LjIxOCAyMS40NDVsLTY1LjQ2NSAzMi44ODZjLTE2LjA0OSA3Ljk2Ny0zNS41NTYgMS4xOTQtNDMuMTg5LTE1LjA1NUwzMzEuNjc5IDMyMEgxOTJjLTE1LjkyNSAwLTI5LjQyNi0xMS43MS0zMS42NzktMjcuNDc1QzEyNi40MzMgNTUuMzA4IDEyOC4zOCA3MC4wNDQgMTI4IDY0YzAtMzYuMzU4IDMwLjMxOC02NS42MzUgNjcuMDUyLTYzLjkyOSAzMy4yNzEgMS41NDUgNjAuMDQ4IDI4LjkwNSA2MC45MjUgNjIuMjAxLjg2OCAzMi45MzMtMjMuMTUyIDYwLjQyMy01NC42MDggNjUuMDM5bDQuNjcgMzIuNjlIMzM2YzguODM3IDAgMTYgNy4xNjMgMTYgMTZ2MzJjMCA4LjgzNy03LjE2MyAxNi0xNiAxNkgyMTUuMTgybDQuNTcyIDMySDM1MmEzMiAzMiAwIDAgMSAyOC45NjIgMTguMzkyTDQzOC40NzcgMzk2LjhsMzYuMTc4LTE4LjM0OWM3LjkxNS0zLjkyOSAxNy41MTctLjY5NyAyMS40NDYgNy4yMTh6TTMxMS4zNTggMzUyaC0yNC41MDZjLTcuNzg4IDU0LjIwNC01NC41MjggOTYtMTEwLjg1MiA5Ni02MS43NTcgMC0xMTItNTAuMjQzLTExMi0xMTIgMC00MS41MDUgMjIuNjk0LTc3LjgwOSA1Ni4zMjQtOTcuMTU2LTMuNzEyLTI1Ljk2NS02Ljg0NC00Ny44Ni05LjQ4OC02Ni4zMzNDNDUuOTU2IDE5OC40NjQgMCAyNjEuOTYzIDAgMzM2YzAgOTcuMDQ3IDc4Ljk1MyAxNzYgMTc2IDE3NiA3MS44NyAwIDEzMy44MDYtNDMuMzA4IDE2MS4xMS0xMDUuMTkyTDMxMS4zNTggMzUyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM0LjkxIDE1NC44OEM0NTcuNzQtOC45OSAxODIuMTktOC45MyA1LjA5IDE1NC44OGMtNi42NiA2LjE2LTYuNzkgMTYuNTktLjM1IDIyLjk4bDM0LjI0IDMzLjk3YzYuMTQgNi4xIDE2LjAyIDYuMjMgMjIuNC4zOCAxNDUuOTItMTMzLjY4IDM3MS4zLTEzMy43MSA1MTcuMjUgMCA2LjM4IDUuODUgMTYuMjYgNS43MSAyMi40LS4zOGwzNC4yNC0zMy45N2M2LjQzLTYuMzkgNi4zLTE2LjgyLS4zNi0yMi45OHpNMzIwIDM1MmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NCA2NC0yOC42NSA2NC02NC0yOC42NS02NC02NC02NHptMjAyLjY3LTgzLjU5Yy0xMTUuMjYtMTAxLjkzLTI5MC4yMS0xMDEuODItNDA1LjM0IDAtNi45IDYuMS03LjEyIDE2LjY5LS41NyAyMy4xNWwzNC40NCAzMy45OWM2IDUuOTIgMTUuNjYgNi4zMiAyMi4wNS44IDgzLjk1LTcyLjU3IDIwOS43NC03Mi40MSAyOTMuNDkgMCA2LjM5IDUuNTIgMTYuMDUgNS4xMyAyMi4wNS0uOGwzNC40NC0zMy45OWM2LjU2LTYuNDYgNi4zMy0xNy4wNi0uNTYtMjMuMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTYuNyAyNTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMTQyLjJjMTUuOSAwIDMwLjggMTAuOSAzMy40IDI2LjYgMy4zIDIwLTEyLjEgMzcuNC0zMS42IDM3LjQtMTQuMSAwLTI2LjEtOS4yLTMwLjQtMjEuOS0yLjEtNi4zLTguNi0xMC4xLTE1LjItMTAuMUg4MS42Yy05LjggMC0xNy43IDguOC0xNS45IDE4LjQgOC42IDQ0LjEgNDcuNiA3Ny42IDk0LjIgNzcuNiA1Ny4xIDAgMTAyLjctNTAuMSA5NS4yLTEwOC42QzI0OSAyOTEgMjA1LjQgMjU2IDE1Ni43IDI1NnpNMTYgMjI0aDMzNmM1OS43IDAgMTA2LjgtNTQuOCA5My44LTExNi43LTcuNi0zNi4yLTM2LjktNjUuNS03My4xLTczLjEtNTUuNC0xMS42LTEwNS4xIDI0LjktMTE0LjkgNzUuNS0xLjkgOS42IDYuMSAxOC4zIDE1LjggMTguM2gzMi44YzYuNyAwIDEzLjEtMy44IDE1LjItMTAuMUMzMjUuOSAxMDUuMiAzMzcuOSA5NiAzNTIgOTZjMTkuNCAwIDM0LjkgMTcuNCAzMS42IDM3LjQtMi42IDE1LjctMTcuNCAyNi42LTMzLjQgMjYuNkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNnptMzg0IDMySDI0My43YzE5LjMgMTYuNiAzMy4yIDM4LjggMzkuOCA2NEg0MDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhjLTE3LjkgMC0zMy4zLTkuOS00MS42LTI0LjQtMi45LTUtOC43LTcuNi0xNC41LTcuNmgtMzMuOGMtMTAuOSAwLTE5IDEwLjgtMTUuMyAyMS4xIDE3LjggNTAuNiA3MC41IDg0LjggMTI5LjQgNzIuMyA0MS4yLTguNyA3NS4xLTQxLjYgODQuNy04Mi43QzUyNiAzMjEuNSA0NzAuNSAyNTYgNDAwIDI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dDbG9zZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tODMuNiAyOTAuNWM0LjggNC44IDQuOCAxMi42IDAgMTcuNGwtNDAuNSA0MC41Yy00LjggNC44LTEyLjYgNC44LTE3LjQgMEwyNTYgMzEzLjNsLTY2LjUgNjcuMWMtNC44IDQuOC0xMi42IDQuOC0xNy40IDBsLTQwLjUtNDAuNWMtNC44LTQuOC00LjgtMTIuNiAwLTE3LjRsNjcuMS02Ni41LTY3LjEtNjYuNWMtNC44LTQuOC00LjgtMTIuNiAwLTE3LjRsNDAuNS00MC41YzQuOC00LjggMTIuNi00LjggMTcuNCAwbDY2LjUgNjcuMSA2Ni41LTY3LjFjNC44LTQuOCAxMi42LTQuOCAxNy40IDBsNDAuNSA0MC41YzQuOCA0LjggNC44IDEyLjYgMCAxNy40TDMxMy4zIDI1Nmw2Ny4xIDY2LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZG93TWF4aW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTE2IDE2MEg2NHYtODRjMC02LjYgNS40LTEyIDEyLTEyaDM2MGM2LjYgMCAxMiA1LjQgMTIgMTJ2ODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZG93TWluaW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDM1Mkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MzJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0zMmMwLTI2LjUtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA0OHYyODhjMCAyNi41LTIxLjUgNDgtNDggNDhoLTQ4VjE3NmMwLTQ0LjEtMzUuOS04MC04MC04MEgxMjhWNDhjMC0yNi41IDIxLjUtNDggNDgtNDhoMjg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODQgMTc2djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDI4OGMyNi41IDAgNDggMjEuNSA0OCA0OHptLTY4IDI4YzAtNi42LTUuNC0xMi0xMi0xMkg3NmMtNi42IDAtMTIgNS40LTEyIDEydjUyaDI1MnYtNTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZUJvdHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDcuMzEgNzIuNTdMNDM5LjQzIDQuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTIyLjYzIDIyLjYzYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbC03Ni42NyA3Ni42N2MtNDYuNTgtMTkuNy0xMDIuNC0xMC43My0xNDAuMzcgMjcuMjNMMTguNzUgMzEyLjIzYy0yNC45OSAyNC45OS0yNC45OSA2NS41MiAwIDkwLjUxbDkwLjUxIDkwLjUxYzI0Ljk5IDI0Ljk5IDY1LjUyIDI0Ljk5IDkwLjUxIDBsMTU4LjM5LTE1OC4zOWMzNy45Ni0zNy45NiA0Ni45My05My43OSAyNy4yMy0xNDAuMzdsNzYuNjctNzYuNjdjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42My0yMi42M2M2LjI0LTYuMjQgNi4yNC0xNi4zNy0uMDEtMjIuNjJ6TTE3OS4yMiA0MjMuMjlsLTkwLjUxLTkwLjUxIDEyMi4wNC0xMjIuMDQgOTAuNTEgOTAuNTEtMTIyLjA0IDEyMi4wNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5lR2xhc3NBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDQ2NGgtNDBWMzQ2LjgxYzY4LjQ3LTE1Ljg5IDExOC4wNS03OS45MSAxMTEuNC0xNTQuMTZsLTE1Ljk1LTE3OC4xQzI3MC43MSA2LjMxIDI2My45IDAgMjU1Ljc0IDBIMzIuMjZjLTguMTUgMC0xNC45NyA2LjMxLTE1LjcgMTQuNTVMLjYgMTkyLjY2Qy02LjA1IDI2Ni45MSA0My41MyAzMzAuOTMgMTEyIDM0Ni44MlY0NjRINzJjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjA4YzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDB6TTYxLjc1IDQ4aDE2NC41bDcuMTcgODBINTQuNThsNy4xNy04MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5lR2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDQ2NGgtNDBWMzQ2LjgxYzY4LjQ3LTE1Ljg5IDExOC4wNS03OS45MSAxMTEuNC0xNTQuMTZsLTE1Ljk1LTE3OC4xQzI3MC43MSA2LjMxIDI2My45IDAgMjU1Ljc0IDBIMzIuMjZjLTguMTUgMC0xNC45NyA2LjMxLTE1LjcgMTQuNTVMLjYgMTkyLjY2Qy02LjA1IDI2Ni45MSA0My41MyAzMzAuOTMgMTEyIDM0Ni44MlY0NjRINzJjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjA4YzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29uU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjQgMTkyYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00OGwxOC42LTgwLjZjMS43LTcuNS00LTE0LjctMTEuNy0xNC43aC00Ni4xYy01LjcgMC0xMC42IDQtMTEuNyA5LjVMNDUwLjcgMTI4SDM0MC44bC0xOS43LTg2Yy0xLjMtNS41LTYuMS05LjMtMTEuNy05LjNoLTQ0Yy01LjYgMC0xMC40IDMuOC0xMS43IDkuM2wtMjAgODZIMTI1bC0xNy41LTg1LjdjLTEuMS01LjYtNi4xLTkuNi0xMS44LTkuNkg1My42Yy03LjcgMC0xMy40IDcuMS0xMS43IDE0LjZMNjAgMTI4SDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDYyLjNsNy4yIDMySDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDgzLjlsNDAuOSAxODIuNmMxLjIgNS41IDYuMSA5LjQgMTEuNyA5LjRoNTYuOGM1LjYgMCAxMC40LTMuOSAxMS43LTkuM0wyNTkuMyAyODhoNTUuMWw0Mi40IDE4Mi43YzEuMyA1LjQgNi4xIDkuMyAxMS43IDkuM2g1Ni44YzUuNiAwIDEwLjQtMy45IDExLjctOS4zTDQ3OS4xIDI4OEg1NjRjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTcwLjFsNy40LTMyek0xODMuOCAzNDJjLTYuMiAyNS44LTYuOCA0Ny4yLTcuMyA0Ny4yaC0xLjFzLTEuNy0yMi02LjgtNDcuMmwtMTEtNTRoMzguOHptMjcuNS0xMThoLTY2LjhsLTYuNS0zMmg4MC44em02Mi45IDBsMi04LjZjMS45LTggMy41LTE2IDQuOC0yMy40aDExLjhjMS4zIDcuNCAyLjkgMTUuNCA0LjggMjMuNGwyIDguNnptMTMwLjkgMTE4Yy01LjEgMjUuMi02LjggNDcuMi02LjggNDcuMmgtMS4xYy0uNiAwLTEuMS0yMS40LTcuMy00Ny4ybC0xMi40LTU0aDM5LjF6bTI1LjItMTE4aC02Ny40bC03LjMtMzJoODEuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcmVuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA3LjczIDEwOS4xYy0yLjI0LTkuMDMtMTMuNTQtMTIuMDktMjAuMTItNS41MWwtNzQuMzYgNzQuMzYtNjcuODgtMTEuMzEtMTEuMzEtNjcuODggNzQuMzYtNzQuMzZjNi42Mi02LjYyIDMuNDMtMTcuOS01LjY2LTIwLjE2LTQ3LjM4LTExLjc0LTk5LjU1LjkxLTEzNi41OCAzNy45My0zOS42NCAzOS42NC01MC41NSA5Ny4xLTM0LjA1IDE0Ny4yTDE4Ljc0IDQwMi43NmMtMjQuOTkgMjQuOTktMjQuOTkgNjUuNTEgMCA5MC41IDI0Ljk5IDI0Ljk5IDY1LjUxIDI0Ljk5IDkwLjUgMGwyMTMuMjEtMjEzLjIxYzUwLjEyIDE2LjcxIDEwNy40NyA1LjY4IDE0Ny4zNy0zNC4yMiAzNy4wNy0zNy4wNyA0OS43LTg5LjMyIDM3LjkxLTEzNi43M3pNNjQgNDcyYy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYUmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCAzODRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptMTYwIDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6TTYyNCAwSDE2QzcuMiAwIDAgNy4yIDAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2em0wIDQ0OGgtNDhWOTZINjR2MzUySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNNDgwIDI0OGMwIDQuNC0zLjYgOC04IDhIMzM2djMyaDEwNGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMzNnYzMmg2NGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OC00OC0yMS41LTQ4LTQ4di0xNmgtNjR2MTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDggMjEuNS00OCA0OC00OGg2NHYtMzJIMjAwYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMDR2LTMySDE2OGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTM2di0zMkgyMDBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDEwNHYtMjRjMC00LjQgMy42LTggOC04aDE2YzQuNCAwIDggMy42IDggOHYyNGgxMDRjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzMzZ2MzJoMTM2YzQuNCAwIDggMy42IDggOHYxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZZW5TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MS4yIDMyaC02NS4zYy00LjYgMC04LjggMi42LTEwLjggNi43bC01NS40IDExMy4yYy0xNC41IDM0LjctMjcuMSA3MS45LTI3LjEgNzEuOWgtMS4zcy0xMi42LTM3LjItMjcuMS03MS45TDEwOC44IDM4LjdjLTItNC4xLTYuMi02LjctMTAuOC02LjdIMzIuOGMtOS4xIDAtMTQuOCA5LjctMTAuNiAxNy42TDEwMi4zIDIwMEg0NGMtNi42IDAtMTIgNS40LTEyIDEydjMyYzAgNi42IDUuNCAxMiAxMiAxMmg4OC4ybDE5LjggMzcuMlYzMjBINDRjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMmMwIDYuNiA1LjQgMTIgMTIgMTJoMTA4djkyYzAgNi42IDUuNCAxMiAxMiAxMmg1NmM2LjYgMCAxMi01LjQgMTItMTJ2LTkyaDEwOGM2LjYgMCAxMi01LjQgMTItMTJ2LTMyYzAtNi42LTUuNC0xMi0xMi0xMkgyMzJ2LTI2LjhsMTkuOC0zNy4ySDM0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTMyYzAtNi42LTUuNC0xMi0xMi0xMmgtNTguM2w4MC4xLTE1MC40YzQuMy03LjktMS41LTE3LjYtMTAuNi0xNy42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlpbllhbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCAzNzZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtMTI4Yy01My4wMiAwLTk2IDQyLjk4LTk2IDk2czQyLjk4IDk2IDk2IDk2Yy0xMDYuMDQgMC0xOTItODUuOTYtMTkyLTE5MlMxNDEuOTYgNjQgMjQ4IDY0YzUzLjAyIDAgOTYgNDIuOTggOTYgOTZzLTQyLjk4IDk2LTk2IDk2em0wLTEyOGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMiAzMi0xNC4zMyAzMi0zMi0xNC4zMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBZGRyZXNzQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyMGMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDhoMjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwdi02NGgyMGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjB2LTY0aDIwem0tNjggMzA0SDQ4VjQ4aDMyMHY0MTZ6TTIwOCAyNTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0em0tODkuNiAxMjhoMTc5LjJjMTIuNCAwIDIyLjQtOC42IDIyLjQtMTkuMnYtMTkuMmMwLTMxLjgtMzAuMS01Ny42LTY3LjItNTcuNi0xMC44IDAtMTguNyA4LTQ0LjggOC0yNi45IDAtMzMuNC04LTQ0LjgtOC0zNy4xIDAtNjcuMiAyNS44LTY3LjIgNTcuNnYxOS4yYzAgMTAuNiAxMCAxOS4yIDIyLjQgMTkuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBZGRyZXNzQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDQwMEg0OFY4MGg0ODB2MzUyek0yMDggMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptLTg5LjYgMTI4aDE3OS4yYzEyLjQgMCAyMi40LTguNiAyMi40LTE5LjJ2LTE5LjJjMC0zMS44LTMwLjEtNTcuNi02Ny4yLTU3LjYtMTAuOCAwLTE4LjcgOC00NC44IDgtMjYuOSAwLTMzLjQtOC00NC44LTgtMzcuMSAwLTY3LjIgMjUuOC02Ny4yIDU3LjZ2MTkuMmMwIDEwLjYgMTAgMTkuMiAyMi40IDE5LjJ6TTM2MCAzMjBoMTEyYzQuNCAwIDgtMy42IDgtOHYtMTZjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptMC02NGgxMTJjNC40IDAgOC0zLjYgOC04di0xNmMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4em0wLTY0aDExMmM0LjQgMCA4LTMuNiA4LTh2LTE2YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQW5ncnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0wLTE0NGMtMzMuNiAwLTY1LjIgMTQuOC04Ni44IDQwLjYtOC41IDEwLjItNy4xIDI1LjMgMy4xIDMzLjhzMjUuMyA3LjIgMzMuOC0zYzI0LjgtMjkuNyA3NS0yOS43IDk5LjggMCA4LjEgOS43IDIzLjIgMTEuOSAzMy44IDMgMTAuMi04LjUgMTEuNS0yMy42IDMuMS0zMy44LTIxLjYtMjUuOC01My4yLTQwLjYtODYuOC00MC42em0tNDgtNzJjMTAuMyAwIDE5LjktNi43IDIzLTE3LjEgMy44LTEyLjctMy40LTI2LjEtMTYuMS0yOS45bC04MC0yNGMtMTIuOC0zLjktMjYuMSAzLjQtMjkuOSAxNi4xLTMuOCAxMi43IDMuNCAyNi4xIDE2LjEgMjkuOWwyOC4yIDguNWMtMy4xIDQuOS01LjMgMTAuNC01LjMgMTYuNiAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC40IDMyLTMyLjF6bTE5OS01NC45Yy0zLjgtMTIuNy0xNy4xLTE5LjktMjkuOS0xNi4xbC04MCAyNGMtMTIuNyAzLjgtMTkuOSAxNy4yLTE2LjEgMjkuOSAzLjEgMTAuNCAxMi43IDE3LjEgMjMgMTcuMSAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi4yLTIuMi0xMS43LTUuMy0xNi42bDI4LjItOC41YzEyLjctMy43IDE5LjktMTcuMSAxNi4xLTI5Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQXJyb3dBbHRDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgNDQ4Yy0xMTAuNSAwLTIwMC04OS41LTIwMC0yMDBTMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMHptLTMyLTMxNnYxMTZoLTY3Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWw5OSA5OWM0LjcgNC43IDEyLjMgNC43IDE3IDBsOTktOTljNy42LTcuNiAyLjItMjAuNS04LjUtMjAuNWgtNjdWMTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBcnJvd0FsdENpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOCA4IDExOSA4IDI1NnptNDQ4IDBjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwUzU2IDM2Ni41IDU2IDI1NiAxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMHptLTcyLTIwdjQwYzAgNi42LTUuNCAxMi0xMiAxMkgyNTZ2NjdjMCAxMC43LTEyLjkgMTYtMjAuNSA4LjVsLTk5LTk5Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsOTktOTljNy42LTcuNiAyMC41LTIuMiAyMC41IDguNXY2N2gxMTZjNi42IDAgMTIgNS40IDEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Fycm93QWx0Q2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NkM1MDQgMTE5IDM5MyA4IDI1NiA4UzggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDh6bS00NDggMGMwLTExMC41IDg5LjUtMjAwIDIwMC0yMDBzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwUzU2IDM2Ni41IDU2IDI1NnptNzIgMjB2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmgxMTZ2LTY3YzAtMTAuNyAxMi45LTE2IDIwLjUtOC41bDk5IDk5YzQuNyA0LjcgNC43IDEyLjMgMCAxN2wtOTkgOTljLTcuNiA3LjYtMjAuNSAyLjItMjAuNS04LjV2LTY3SDE0MGMtNi42IDAtMTItNS40LTEyLTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Fycm93QWx0Q2lyY2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUwNGMxMzcgMCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4em0wLTQ0OGMxMTAuNSAwIDIwMCA4OS41IDIwMCAyMDBzLTg5LjUgMjAwLTIwMCAyMDBTNTYgMzY2LjUgNTYgMjU2IDE0NS41IDU2IDI1NiA1NnptMjAgMzI4aC00MGMtNi42IDAtMTItNS40LTEyLTEyVjI1NmgtNjdjLTEwLjcgMC0xNi0xMi45LTguNS0yMC41bDk5LTk5YzQuNy00LjcgMTIuMy00LjcgMTcgMGw5OSA5OWM3LjYgNy42IDIuMiAyMC41LTguNSAyMC41aC02N3YxMTZjMCA2LjYtNS40IDEyLTEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0JlbGxTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuOTkgNDcxLjAyTDM2IDMuNTFDMjkuMS0yLjAxIDE5LjAzLS45IDEzLjUxIDZsLTEwIDEyLjQ5Qy0yLjAyIDI1LjM5LS45IDM1LjQ2IDYgNDAuOThsNTk4IDQ2Ny41MWM2LjkgNS41MiAxNi45NiA0LjQgMjIuNDktMi40OWwxMC0xMi40OWM1LjUyLTYuOSA0LjQxLTE2Ljk3LTIuNS0yMi40OXpNMTYzLjUzIDM2OGMxNi43MS0yMi4wMyAzNC40OC01NS44IDQxLjQtMTEwLjU4bC00NS40Ny0zNS41NWMtMy4yNyA5MC43My0zNi40NyAxMjAuNjgtNTQuODQgMTQwLjQyLTYgNi40NS04LjY2IDE0LjE2LTguNjEgMjEuNzEuMTEgMTYuNCAxMi45OCAzMiAzMi4xIDMyaDI3OS42NmwtNjEuNC00OEgxNjMuNTN6TTMyMCA5NmM2MS44NiAwIDExMiA1MC4xNCAxMTIgMTEyIDAgLjItLjA2LjM4LS4wNi41OC4wMiAxNi44NCAxLjE2IDMxLjc3IDIuNzkgNDUuNzNsNTkuNTMgNDYuNTRjLTguMzEtMjIuMTMtMTQuMzQtNTEuNDktMTQuMzQtOTIuODUgMC03Ny43LTU0LjQ4LTEzOS45LTEyNy45NC0xNTUuMTZWMzJjMC0xNy42Ny0xNC4zMi0zMi0zMS45OC0zMnMtMzEuOTggMTQuMzMtMzEuOTggMzJ2MjAuODRjLTI2LjAyIDUuNDEtNDkuNDUgMTYuOTQtNjkuMTMgMzIuNzJsMzguMTcgMjkuODRDMjc1IDEwMy4xOCAyOTYuNjUgOTYgMzIwIDk2em0wIDQxNmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDI1Ni4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0JlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5LjM5IDM2Mi4yOWMtMTkuMzItMjAuNzYtNTUuNDctNTEuOTktNTUuNDctMTU0LjI5IDAtNzcuNy01NC40OC0xMzkuOS0xMjcuOTQtMTU1LjE2VjMyYzAtMTcuNjctMTQuMzItMzItMzEuOTgtMzJzLTMxLjk4IDE0LjMzLTMxLjk4IDMydjIwLjg0QzExOC41NiA2OC4xIDY0LjA4IDEzMC4zIDY0LjA4IDIwOGMwIDEwMi4zLTM2LjE1IDEzMy41My01NS40NyAxNTQuMjktNiA2LjQ1LTguNjYgMTQuMTYtOC42MSAyMS43MS4xMSAxNi40IDEyLjk4IDMyIDMyLjEgMzJoMzgzLjhjMTkuMTIgMCAzMi0xNS42IDMyLjEtMzIgLjA1LTcuNTUtMi42MS0xNS4yNy04LjYxLTIxLjcxek02Ny41MyAzNjhjMjEuMjItMjcuOTcgNDQuNDItNzQuMzMgNDQuNTMtMTU5LjQyIDAtLjItLjA2LS4zOC0uMDYtLjU4IDAtNjEuODYgNTAuMTQtMTEyIDExMi0xMTJzMTEyIDUwLjE0IDExMiAxMTJjMCAuMi0uMDYuMzgtLjA2LjU4LjExIDg1LjEgMjMuMzEgMTMxLjQ2IDQ0LjUzIDE1OS40Mkg2Ny41M3pNMjI0IDUxMmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDE2MC4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djQ2NGwxOTItMTEyIDE5MiAxMTJWNDhjMC0yNi41MS0yMS40OS00OC00OC00OHptMCA0MjguNDNsLTE0NC04NC0xNDQgODRWNTRhNiA2IDAgMCAxIDYtNmgyNzZjMy4zMTQgMCA2IDIuNjgzIDYgNS45OTZWNDI4LjQzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0J1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxNDh2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEyem0xNDAgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyem0tMTI4IDk2aDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMnptMTI4IDBoNDBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyem0tNzYgODR2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem03NiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJ6bTE4MCAxMjR2MzZIMHYtMzZjMC02LjYgNS40LTEyIDEyLTEyaDE5LjVWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRoMzM3YzEzLjMgMCAyNCAxMC43IDI0IDI0djQ0MEg0MzZjNi42IDAgMTIgNS40IDEyIDEyek03OS41IDQ2M0gxOTJ2LTY3YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NjdoMTEyLjVWNDlMODAgNDhsLS41IDQxNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDggMjg4aC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMnptMTA4LTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptOTYgMHYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6bS05NiA5NnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6bS05NiAwdi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptMTkyIDB2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem05Ni0yNjB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQ4IDM0NlYxNjBINDh2Mjk4YzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDY0aC00OFYxMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1MkgxNjBWMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTJINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMTJjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgNDAwSDU0YTYgNiAwIDAgMS02LTZWMTYwaDM1MnYyOThhNiA2IDAgMCAxLTYgNnptLTUyLjg0OS0yMDAuNjVMMTk4Ljg0MiA0MDQuNTE5Yy00LjcwNSA0LjY2Ny0xMi4zMDMgNC42MzctMTYuOTcxLS4wNjhsLTc1LjA5MS03NS42OTljLTQuNjY3LTQuNzA1LTQuNjM3LTEyLjMwMy4wNjgtMTYuOTcxbDIyLjcxOS0yMi41MzZjNC43MDUtNC42NjcgMTIuMzAzLTQuNjM3IDE2Ljk3LjA2OWw0NC4xMDQgNDQuNDYxIDExMS4wNzItMTEwLjE4MWM0LjcwNS00LjY2NyAxMi4zMDMtNC42MzcgMTYuOTcxLjA2OGwyMi41MzYgMjIuNzE4YzQuNjY3IDQuNzA1IDQuNjM2IDEyLjMwMy0uMDY5IDE2Ljk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI0IDMyOGMtNi42IDAtMTItNS40LTEyLTEydi0yNGMwLTYuNiA1LjQtMTIgMTItMTJoMjAwYzYuNiAwIDEyIDUuNCAxMiAxMnYyNGMwIDYuNi01LjQgMTItMTIgMTJIMTI0em0zMjQtMjE2djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWMTYwSDQ4djI5OGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDI5MnYyNGMwIDYuNi01LjQgMTItMTIgMTJoLTc2djc2YzAgNi42LTUuNCAxMi0xMiAxMmgtMjRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNzZoLTc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTI0YzAtNi42IDUuNC0xMiAxMi0xMmg3NnYtNzZjMC02LjYgNS40LTEyIDEyLTEyaDI0YzYuNiAwIDEyIDUuNCAxMiAxMnY3Nmg3NmM2LjYgMCAxMiA1LjQgMTIgMTJ6bTExMi0xODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQ4IDM0NlYxNjBINDh2Mjk4YzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyVGltZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzExLjcgMzc0LjdsLTE3IDE3Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMjI0IDMzNy45bC01My43IDUzLjdjLTQuNyA0LjctMTIuMyA0LjctMTcgMGwtMTctMTdjLTQuNy00LjctNC43LTEyLjMgMC0xN2w1My43LTUzLjctNTMuNy01My43Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsMTctMTdjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDUzLjcgNTMuNyA1My43LTUzLjdjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDE3IDE3YzQuNyA0LjcgNC43IDEyLjMgMCAxN0wyNTcuOSAzMDRsNTMuNyA1My43YzQuOCA0LjcgNC44IDEyLjMuMSAxN3pNNDQ4IDExMnYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2VjE2MEg0OHYyOThjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDY0aC00OFYxMmMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJIMTYwVjEyYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY1Mkg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHptLTYgNDAwSDU0Yy0zLjMgMC02LTIuNy02LTZWMTYwaDM1MnYyOThjMCAzLjMtMi43IDYtNiA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhcmV0U3F1YXJlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjUuMSAyMDhoMTk3LjhjMTAuNyAwIDE2LjEgMTMgOC41IDIwLjVsLTk4LjkgOTguM2MtNC43IDQuNy0xMi4yIDQuNy0xNi45IDBsLTk4LjktOTguM2MtNy43LTcuNS0yLjMtMjAuNSA4LjQtMjAuNXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2Vjg2YzAtMy4zLTIuNy02LTYtNkg1NGMtMy4zIDAtNiAyLjctNiA2djM0MGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYXJldFNxdWFyZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDE1Ny4xdjE5Ny44YzAgMTAuNy0xMyAxNi4xLTIwLjUgOC41bC05OC4zLTk4LjljLTQuNy00LjctNC43LTEyLjIgMC0xNi45bDk4LjMtOTguOWM3LjUtNy43IDIwLjUtMi4zIDIwLjUgOC40ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhcmV0U3F1YXJlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1NC45VjE1Ny4xYzAtMTAuNyAxMy0xNi4xIDIwLjUtOC41bDk4LjMgOTguOWM0LjcgNC43IDQuNyAxMi4yIDAgMTYuOWwtOTguMyA5OC45Yy03LjUgNy43LTIwLjUgMi4zLTIwLjUtOC40ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhcmV0U3F1YXJlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIyLjkgMzA0SDEyNS4xYy0xMC43IDAtMTYuMS0xMy04LjUtMjAuNWw5OC45LTk4LjNjNC43LTQuNyAxMi4yLTQuNyAxNi45IDBsOTguOSA5OC4zYzcuNyA3LjUgMi4zIDIwLjUtOC40IDIwLjV6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQ4IDM0NlY4NmMwLTMuMy0yLjctNi02LTZINTRjLTMuMyAwLTYgMi43LTYgNnYzNDBjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk2LjggMzUyaDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjEwOC44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djIzMC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptLTE5MiAwaDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjE0MC44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djE5OC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptOTYgMGgyMi40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFYyMDQuOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTIyLjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYxMzQuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6TTQ5NiA0MDBINDhWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MzM2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDY0YzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTM4Ny4yLTQ4aDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44di03MC40YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djcwLjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCA0OGMxMTAuNTMyIDAgMjAwIDg5LjQ1MSAyMDAgMjAwIDAgMTEwLjUzMi04OS40NTEgMjAwLTIwMCAyMDAtMTEwLjUzMiAwLTIwMC04OS40NTEtMjAwLTIwMCAwLTExMC41MzIgODkuNDUxLTIwMCAyMDAtMjAwbTE0MC4yMDQgMTMwLjI2N2wtMjIuNTM2LTIyLjcxOGMtNC42NjctNC43MDUtMTIuMjY1LTQuNzM2LTE2Ljk3LS4wNjhMMjE1LjM0NiAzMDMuNjk3bC01OS43OTItNjAuMjc3Yy00LjY2Ny00LjcwNS0xMi4yNjUtNC43MzYtMTYuOTctLjA2OWwtMjIuNzE5IDIyLjUzNmMtNC43MDUgNC42NjctNC43MzYgMTIuMjY1LS4wNjggMTYuOTcxbDkwLjc4MSA5MS41MTZjNC42NjcgNC43MDUgMTIuMjY1IDQuNzM2IDE2Ljk3LjA2OGwxNzIuNTg5LTE3MS4yMDRjNC43MDQtNC42NjggNC43MzQtMTIuMjY2LjA2Ny0xNi45NzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hlY2tTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0wIDQwMEg0OFY4MGgzNTJ2MzUyem0tMzUuODY0LTI0MS43MjRMMTkxLjU0NyAzNjEuNDhjLTQuNzA1IDQuNjY3LTEyLjMwMyA0LjYzNy0xNi45Ny0uMDY4bC05MC43ODEtOTEuNTE2Yy00LjY2Ny00LjcwNS00LjYzNy0xMi4zMDMuMDY5LTE2Ljk3MWwyMi43MTktMjIuNTM2YzQuNzA1LTQuNjY3IDEyLjMwMy00LjYzNyAxNi45Ny4wNjlsNTkuNzkyIDYwLjI3NyAxNDEuMzUyLTE0MC4yMTZjNC43MDUtNC42NjcgMTIuMzAzLTQuNjM3IDE2Ljk3LjA2OGwyMi41MzYgMjIuNzE4YzQuNjY3IDQuNzA2IDQuNjM3IDEyLjMwNC0uMDY4IDE2Ljk3MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCA0NDhjLTExMC41IDAtMjAwLTg5LjUtMjAwLTIwMFMxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNjRoLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xOTIgNDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0xNDQgNDE4YzAgMy4zLTIuNyA2LTYgNkg1NGMtMy4zIDAtNi0yLjctNi02VjExOGMwLTMuMyAyLjctNiA2LTZoNDJ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDE2OGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDQyYzMuMyAwIDYgMi43IDYgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUgMC0yMDAtODkuNS0yMDAtMjAwUzE0NS41IDU2IDI1NiA1NnMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDB6bTYxLjgtMTA0LjRsLTg0LjktNjEuN2MtMy4xLTIuMy00LjktNS45LTQuOS05LjdWMTE2YzAtNi42IDUuNC0xMiAxMi0xMmgzMmM2LjYgMCAxMiA1LjQgMTIgMTJ2MTQxLjdsNjYuOCA0OC42YzUuNCAzLjkgNi41IDExLjQgMi42IDE2LjhMMzM0LjYgMzQ5Yy0zLjkgNS4zLTExLjQgNi41LTE2LjggMi42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAwSDE0NGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0OEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYzMjBjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzMjBjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDhoNDhjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek0zNjIgNDY0SDU0YTYgNiAwIDAgMS02LTZWMTUwYTYgNiAwIDAgMSA2LTZoNDJ2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjI0djQyYTYgNiAwIDAgMS02IDZ6bTk2LTk2SDE1MGE2IDYgMCAwIDEtNi02VjU0YTYgNiAwIDAgMSA2LTZoMzA4YTYgNiAwIDAgMSA2IDZ2MzA4YTYgNiAwIDAgMS02IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xvc2VkQ2FwdGlvbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS02IDMzNkg1NGMtMy4zIDAtNi0yLjctNi02VjExOGMwLTMuMyAyLjctNiA2LTZoNDA0YzMuMyAwIDYgMi43IDYgNnYyNzZjMCAzLjMtMi43IDYtNiA2em0tMjExLjEtODUuN2MxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjYgNTYuOC0xNzIuOCAzMi4xLTE3Mi44LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN2wtMTcuNSAzMC41Yy0xLjkgMy4xLTYuMiA0LTkuMSAxLjctNDAuOC0zMi05NC42LTE0LjktOTQuNiAzMS4yIDAgNDggNTEgNzAuNSA5Mi4yIDMyLjYgMi44LTIuNSA3LjEtMi4xIDkuMi45bDE5LjYgMjcuN3ptMTkwLjQgMGMxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjYgNTYuOS0xNzIuOCAzMi4xLTE3Mi44LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN0w0MjAgMjIwLjJjLTEuOSAzLjEtNi4yIDQtOS4xIDEuNy00MC44LTMyLTk0LjYtMTQuOS05NC42IDMxLjIgMCA0OCA1MSA3MC41IDkyLjIgMzIuNiAyLjgtMi41IDcuMS0yLjEgOS4yLjlsMTkuNiAyNy43elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbW1lbnRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDBINjRDMjguNyAwIDAgMjguNyAwIDY0djI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg5NnY4NGMwIDcuMSA1LjggMTIgMTIgMTIgMi40IDAgNC45LS43IDcuMS0yLjRMMzA0IDQxNmgxNDRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTE2IDM1MmMwIDguOC03LjIgMTYtMTYgMTZIMjg4bC0xMi44IDkuNkwyMDggNDI4di02MEg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjY0YzAtOC44IDcuMi0xNiAxNi0xNmgzODRjOC44IDAgMTYgNy4yIDE2IDE2djI4OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb21tZW50RG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMjA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptMTEyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0xMTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTI1NiAzMkMxMTQuNiAzMiAwIDEyNS4xIDAgMjQwYzAgNDcuNiAxOS45IDkxLjIgNTIuOSAxMjYuM0MzOCA0MDUuNyA3IDQzOS4xIDYuNSA0MzkuNWMtNi42IDctOC40IDE3LjItNC42IDI2UzE0LjQgNDgwIDI0IDQ4MGM2MS41IDAgMTEwLTI1LjcgMTM5LjEtNDYuM0MxOTIgNDQyLjggMjIzLjIgNDQ4IDI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMnptMCAzNjhjLTI2LjcgMC01My4xLTQuMS03OC40LTEyLjFsLTIyLjctNy4yLTE5LjUgMTMuOGMtMTQuMyAxMC4xLTMzLjkgMjEuNC01Ny41IDI5IDcuMy0xMi4xIDE0LjQtMjUuNyAxOS45LTQwLjJsMTAuNi0yOC4xLTIwLjYtMjEuOEM2OS43IDMxNC4xIDQ4IDI4Mi4yIDQ4IDI0MGMwLTg4LjIgOTMuMy0xNjAgMjA4LTE2MHMyMDggNzEuOCAyMDggMTYwLTkzLjMgMTYwLTIwOCAxNjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ3LjYgMTkuOSA5MS4yIDUyLjkgMTI2LjNDMzggNDA1LjcgNyA0MzkuMSA2LjUgNDM5LjVjLTYuNiA3LTguNCAxNy4yLTQuNiAyNlMxNC40IDQ4MCAyNCA0ODBjNjEuNSAwIDExMC0yNS43IDEzOS4xLTQ2LjNDMTkyIDQ0Mi44IDIyMy4yIDQ0OCAyNTYgNDQ4YzE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJ6bTAgMzY4Yy0yNi43IDAtNTMuMS00LjEtNzguNC0xMi4xbC0yMi43LTcuMi0xOS41IDEzLjhjLTE0LjMgMTAuMS0zMy45IDIxLjQtNTcuNSAyOSA3LjMtMTIuMSAxNC40LTI1LjcgMTkuOS00MC4ybDEwLjYtMjguMS0yMC42LTIxLjhDNjkuNyAzMTQuMSA0OCAyODIuMiA0OCAyNDBjMC04OC4yIDkzLjMtMTYwIDIwOC0xNjBzMjA4IDcxLjggMjA4IDE2MC05My4zIDE2MC0yMDggMTYwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbW1lbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUzMiAzODYuMmMyNy41LTI3LjEgNDQtNjEuMSA0NC05OC4yIDAtODAtNzYuNS0xNDYuMS0xNzYuMi0xNTcuOUMzNjguMyA3Mi41IDI5NC4zIDMyIDIwOCAzMiA5My4xIDMyIDAgMTAzLjYgMCAxOTJjMCAzNyAxNi41IDcxIDQ0IDk4LjItMTUuMyAzMC43LTM3LjMgNTQuNS0zNy43IDU0LjktNi4zIDYuNy04LjEgMTYuNS00LjQgMjUgMy42IDguNSAxMiAxNCAyMS4yIDE0IDUzLjUgMCA5Ni43LTIwLjIgMTI1LjItMzguOCA5LjIgMi4xIDE4LjcgMy43IDI4LjQgNC45QzIwOC4xIDQwNy42IDI4MS44IDQ0OCAzNjggNDQ4YzIwLjggMCA0MC44LTIuNCA1OS44LTYuOEM0NTYuMyA0NTkuNyA0OTkuNCA0ODAgNTUzIDQ4MGM5LjIgMCAxNy41LTUuNSAyMS4yLTE0IDMuNi04LjUgMS45LTE4LjMtNC40LTI1LS40LS4zLTIyLjUtMjQuMS0zNy44LTU0Ljh6bS0zOTIuOC05Mi4zTDEyMi4xIDMwNWMtMTQuMSA5LjEtMjguNSAxNi4zLTQzLjEgMjEuNCAyLjctNC43IDUuNC05LjcgOC0xNC44bDE1LjUtMzEuMUw3Ny43IDI1NkM2NC4yIDI0Mi42IDQ4IDIyMC43IDQ4IDE5MmMwLTYwLjcgNzMuMy0xMTIgMTYwLTExMnMxNjAgNTEuMyAxNjAgMTEyLTczLjMgMTEyLTE2MCAxMTJjLTE2LjUgMC0zMy0xLjktNDktNS42bC0xOS44LTQuNXpNNDk4LjMgMzUybC0yNC43IDI0LjQgMTUuNSAzMS4xYzIuNiA1LjEgNS4zIDEwLjEgOCAxNC44LTE0LjYtNS4xLTI5LTEyLjMtNDMuMS0yMS40bC0xNy4xLTExLjEtMTkuOSA0LjZjLTE2IDMuNy0zMi41IDUuNi00OSA1LjYtNTQgMC0xMDIuMi0yMC4xLTEzMS4zLTQ5LjdDMzM4IDMzOS41IDQxNiAyNzIuOSA0MTYgMTkyYzAtMy40LS40LTYuNy0uNy0xMEM0NzkuNyAxOTYuNSA1MjggMjM4LjggNTI4IDI4OGMwIDI4LjctMTYuMiA1MC42LTI5LjcgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tcGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDcuOTQgMTI5Ljg2TDIwMy42IDE5NS44M2EzMS45MzggMzEuOTM4IDAgMCAwLTE1Ljc3IDE1Ljc3bC02NS45NyAxNDQuMzRjLTcuNjEgMTYuNjUgOS41NCAzMy44MSAyNi4yIDI2LjJsMTQ0LjM0LTY1Ljk3YTMxLjkzOCAzMS45MzggMCAwIDAgMTUuNzctMTUuNzdsNjUuOTctMTQ0LjM0YzcuNjEtMTYuNjYtOS41NC0zMy44MS0yNi4yLTI2LjJ6bS03Ny4zNiAxNDguNzJjLTEyLjQ3IDEyLjQ3LTMyLjY5IDEyLjQ3LTQ1LjE2IDAtMTIuNDctMTIuNDctMTIuNDctMzIuNjkgMC00NS4xNiAxMi40Ny0xMi40NyAzMi42OS0xMi40NyA0NS4xNiAwIDEyLjQ3IDEyLjQ3IDEyLjQ3IDMyLjY5IDAgNDUuMTZ6TTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMjggMC0yMDAtODkuNzItMjAwLTIwMFMxMzcuNzIgNTYgMjQ4IDU2czIwMCA4OS43MiAyMDAgMjAwLTg5LjcyIDIwMC0yMDAgMjAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjk0MSA2NS45NDFsLTUxLjg4Mi01MS44ODJBNDggNDggMCAwIDAgMzQ4LjExOCAwSDE3NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0OEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYzMjBjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjRjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDhoODBjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY5OS44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMjY2IDQ2NEg1NGE2IDYgMCAwIDEtNi02VjE1MGE2IDYgMCAwIDEgNi02aDc0djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDk2djQyYTYgNiAwIDAgMS02IDZ6bTEyOC05NkgxODJhNiA2IDAgMCAxLTYtNlY1NGE2IDYgMCAwIDEgNi02aDEwNnY4OGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoODh2MjAyYTYgNiAwIDAgMS02IDZ6bTYtMjU2aC02NFY0OGg5LjYzMmMxLjU5MSAwIDMuMTE3LjYzMiA0LjI0MyAxLjc1N2w0OC4zNjggNDguMzY4YTYgNiAwIDAgMSAxLjc1NyA0LjI0M1YxMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29weXJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCA0NDhjLTExMC41MzIgMC0yMDAtODkuNDUxLTIwMC0yMDAgMC0xMTAuNTMxIDg5LjQ1MS0yMDAgMjAwLTIwMCAxMTAuNTMyIDAgMjAwIDg5LjQ1MSAyMDAgMjAwIDAgMTEwLjUzMi04OS40NTEgMjAwLTIwMCAyMDB6bTEwNy4zNTEtMTAxLjA2NGMtOS42MTQgOS43MTItNDUuNTMgNDEuMzk2LTEwNC4wNjUgNDEuMzk2LTgyLjQzIDAtMTQwLjQ4NC02MS40MjUtMTQwLjQ4NC0xNDEuNTY3IDAtNzkuMTUyIDYwLjI3NS0xMzkuNDAxIDEzOS43NjItMTM5LjQwMSA1NS41MzEgMCA4OC43MzggMjYuNjIgOTcuNTkzIDM0Ljc3OWExMS45NjUgMTEuOTY1IDAgMCAxIDEuOTM2IDE1LjMyMmwtMTguMTU1IDI4LjExM2MtMy44NDEgNS45NS0xMS45NjYgNy4yODItMTcuNDk5IDIuOTIxLTguNTk1LTYuNzc2LTMxLjgxNC0yMi41MzgtNjEuNzA4LTIyLjUzOC00OC4zMDMgMC03Ny45MTYgMzUuMzMtNzcuOTE2IDgwLjA4MiAwIDQxLjU4OSAyNi44ODggODMuNjkyIDc4LjI3NyA4My42OTIgMzIuNjU3IDAgNTYuODQzLTE5LjAzOSA2NS43MjYtMjcuMjI1IDUuMjctNC44NTcgMTMuNTk2LTQuMDM5IDE3LjgyIDEuNzM4bDE5Ljg2NSAyNy4xN2ExMS45NDcgMTEuOTQ3IDAgMCAxLTEuMTUyIDE1LjUxOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDcmVkaXRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyNy45IDMySDQ4LjFDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDguMSA0OGg0NzkuOGMyNi42IDAgNDguMS0yMS41IDQ4LjEtNDhWODBjMC0yNi41LTIxLjUtNDgtNDguMS00OHpNNTQuMSA4MGg0NjcuOGMzLjMgMCA2IDIuNyA2IDZ2NDJINDguMVY4NmMwLTMuMyAyLjctNiA2LTZ6bTQ2Ny44IDM1Mkg1NC4xYy0zLjMgMC02LTIuNy02LTZWMjU2aDQ3OS44djE3MGMwIDMuMy0yLjcgNi02IDZ6TTE5MiAzMzJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC03MmMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNzJjNi42IDAgMTIgNS40IDEyIDEyem0xOTIgMHY0MGMwIDYuNi01LjQgMTItMTIgMTJIMjM2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmgxMzZjNi42IDAgMTIgNS40IDEyIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Rpenp5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTMzLjgtMjE3LjljNy44LTcuOCA3LjgtMjAuNSAwLTI4LjNMMTk2LjMgMTkybDE3LjktMTcuOWM3LjgtNy44IDcuOC0yMC41IDAtMjguMy03LjgtNy44LTIwLjUtNy44LTI4LjMgMEwxNjggMTYzLjdsLTE3LjgtMTcuOGMtNy44LTcuOC0yMC41LTcuOC0yOC4zIDAtNy44IDcuOC03LjggMjAuNSAwIDI4LjNsMTcuOSAxNy45LTE3LjkgMTcuOWMtNy44IDcuOC03LjggMjAuNSAwIDI4LjMgNy44IDcuOCAyMC41IDcuOCAyOC4zIDBsMTcuOC0xNy44IDE3LjggMTcuOGM3LjkgNy43IDIwLjUgNy43IDI4LjQtLjJ6bTE2MC05Mi4yYy03LjgtNy44LTIwLjUtNy44LTI4LjMgMEwzMjggMTYzLjdsLTE3LjgtMTcuOGMtNy44LTcuOC0yMC41LTcuOC0yOC4zIDAtNy44IDcuOC03LjggMjAuNSAwIDI4LjNsMTcuOSAxNy45LTE3LjkgMTcuOWMtNy44IDcuOC03LjggMjAuNSAwIDI4LjMgNy44IDcuOCAyMC41IDcuOCAyOC4zIDBsMTcuOC0xNy44IDE3LjggMTcuOGM3LjggNy44IDIwLjUgNy44IDI4LjMgMCA3LjgtNy44IDcuOC0yMC41IDAtMjguM2wtMTcuOC0xOCAxNy45LTE3LjljNy43LTcuOCA3LjctMjAuNCAwLTI4LjJ6TTI0OCAyNzJjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NC0yOC43LTY0LTY0LTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0RvdENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTZjMTEwLjUzMiAwIDIwMCA4OS40NTEgMjAwIDIwMCAwIDExMC41MzItODkuNDUxIDIwMC0yMDAgMjAwLTExMC41MzIgMC0yMDAtODkuNDUxLTIwMC0yMDAgMC0xMTAuNTMyIDg5LjQ1MS0yMDAgMjAwLTIwMG0wLTQ4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCAxNjhjLTQ0LjE4MyAwLTgwIDM1LjgxNy04MCA4MHMzNS44MTcgODAgODAgODAgODAtMzUuODE3IDgwLTgwLTM1LjgxNy04MC04MC04MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMi4zIDM0NC45bDMyLTMyYzUtNSAxMy43LTEuNSAxMy43IDUuN1Y0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGgyNzMuNWM3LjEgMCAxMC43IDguNiA1LjcgMTMuN2wtMzIgMzJjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zSDQ4djM1MmgzNTJWMzUwLjVjMC0yLjEuOC00LjEgMi4zLTUuNnptMTU2LjYtMjAxLjhMMjk2LjMgNDA1LjdsLTkwLjQgMTBjLTI2LjIgMi45LTQ4LjUtMTkuMi00NS42LTQ1LjZsMTAtOTAuNEw0MzIuOSAxNy4xYzIyLjktMjIuOSA1OS45LTIyLjkgODIuNyAwbDQzLjIgNDMuMmMyMi45IDIyLjkgMjIuOSA2MCAuMSA4Mi44ek00NjAuMSAxNzRMNDAyIDExNS45IDIxNi4yIDMwMS44bC03LjMgNjUuMyA2NS4zLTcuM0w0NjAuMSAxNzR6bTY0LjgtNzkuN2wtNDMuMi00My4yYy00LjEtNC4xLTEwLjgtNC4xLTE0LjggMEw0MzYgODJsNTguMSA1OC4xIDMwLjktMzAuOWM0LTQuMiA0LTEwLjgtLjEtMTQuOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFbnZlbG9wZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk0LjU4NiAxNjQuNTE2Yy00LjY5Ny0zLjg4My0xMTEuNzIzLTg5Ljk1LTEzNS4yNTEtMTA4LjY1N0MzMzcuMjMxIDM4LjE5MSAyOTkuNDM3IDAgMjU2IDBjLTQzLjIwNSAwLTgwLjYzNiAzNy43MTctMTAzLjMzNSA1NS44NTktMjQuNDYzIDE5LjQ1LTEzMS4wNyAxMDUuMTk1LTEzNS4xNSAxMDguNTQ5QTQ4LjAwNCA0OC4wMDQgMCAwIDAgMCAyMDEuNDg1VjQ2NGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjIwMS41MDlhNDggNDggMCAwIDAtMTcuNDE0LTM2Ljk5M3pNNDY0IDQ1OGE2IDYgMCAwIDEtNiA2SDU0YTYgNiAwIDAgMS02LTZWMjA0LjM0N2MwLTEuODEzLjgxNi0zLjUyNiAyLjIyNi00LjY2NSAxNS44Ny0xMi44MTQgMTA4Ljc5My04Ny41NTQgMTMyLjM2NC0xMDYuMjkzQzIwMC43NTUgNzguODggMjMyLjM5OCA0OCAyNTYgNDhjMjMuNjkzIDAgNTUuODU3IDMxLjM2OSA3My40MSA0NS4zODkgMjMuNTczIDE4Ljc0MSAxMTYuNTAzIDkzLjQ5MyAxMzIuMzY2IDEwNi4zMTZhNS45OSA1Ljk5IDAgMCAxIDIuMjI0IDQuNjYzVjQ1OHptLTMxLjk5MS0xODcuNzA0YzQuMjQ5IDUuMTU5IDMuNDY1IDEyLjc5NS0xLjc0NSAxNi45ODEtMjguOTc1IDIzLjI4My01OS4yNzQgNDcuNTk3LTcwLjkyOSA1Ni44NjNDMzM2LjYzNiAzNjIuMjgzIDI5OS4yMDUgNDAwIDI1NiA0MDBjLTQzLjQ1MiAwLTgxLjI4Ny0zOC4yMzctMTAzLjMzNS01NS44Ni0xMS4yNzktOC45NjctNDEuNzQ0LTMzLjQxMy03MC45MjctNTYuODY1LTUuMjEtNC4xODctNS45OTMtMTEuODIyLTEuNzQ1LTE2Ljk4MWwxNS4yNTgtMTguNTI4YzQuMTc4LTUuMDczIDExLjY1Ny01Ljg0MyAxNi43NzktMS43MjYgMjguNjE4IDIzLjAwMSA1OC41NjYgNDcuMDM1IDcwLjU2IDU2LjU3MUMyMDAuMTQzIDMyMC42MzEgMjMyLjMwNyAzNTIgMjU2IDM1MmMyMy42MDIgMCA1NS4yNDYtMzAuODggNzMuNDEtNDUuMzg5IDExLjk5NC05LjUzNSA0MS45NDQtMzMuNTcgNzAuNTYzLTU2LjU2OCA1LjEyMi00LjExNiAxMi42MDEtMy4zNDYgMTYuNzc4IDEuNzI3bDE1LjI1OCAxOC41MjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRW52ZWxvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTEyYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bTAgNDh2NDAuODA1Yy0yMi40MjIgMTguMjU5LTU4LjE2OCA0Ni42NTEtMTM0LjU4NyAxMDYuNDktMTYuODQxIDEzLjI0Ny01MC4yMDEgNDUuMDcyLTczLjQxMyA0NC43MDEtMjMuMjA4LjM3NS01Ni41NzktMzEuNDU5LTczLjQxMy00NC43MDFDMTA2LjE4IDE5OS40NjUgNzAuNDI1IDE3MS4wNjcgNDggMTUyLjgwNVYxMTJoNDE2ek00OCA0MDBWMjE0LjM5OGMyMi45MTQgMTguMjUxIDU1LjQwOSA0My44NjIgMTA0LjkzOCA4Mi42NDYgMjEuODU3IDE3LjIwNSA2MC4xMzQgNTUuMTg2IDEwMy4wNjIgNTQuOTU1IDQyLjcxNy4yMzEgODAuNTA5LTM3LjE5OSAxMDMuMDUzLTU0Ljk0NyA0OS41MjgtMzguNzgzIDgyLjAzMi02NC40MDEgMTA0Ljk0Ny04Mi42NTNWNDAwSDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0V5ZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzNCA0NzFMMzYgMy41MUExNiAxNiAwIDAgMCAxMy41MSA2bC0xMCAxMi40OUExNiAxNiAwIDAgMCA2IDQxbDU5OCA0NjcuNDlhMTYgMTYgMCAwIDAgMjIuNDktMi40OWwxMC0xMi40OUExNiAxNiAwIDAgMCA2MzQgNDcxek0yOTYuNzkgMTQ2LjQ3bDEzNC43OSAxMDUuMzhDNDI5LjM2IDE5MS45MSAzODAuNDggMTQ0IDMyMCAxNDRhMTEyLjI2IDExMi4yNiAwIDAgMC0yMy4yMSAyLjQ3em00Ni40MiAyMTkuMDdMMjA4LjQyIDI2MC4xNkMyMTAuNjUgMzIwLjA5IDI1OS41MyAzNjggMzIwIDM2OGExMTMgMTEzIDAgMCAwIDIzLjIxLTIuNDZ6TTMyMCAxMTJjOTguNjUgMCAxODkuMDkgNTUgMjM3LjkzIDE0NGEyODUuNTMgMjg1LjUzIDAgMCAxLTQ0IDYwLjJsMzcuNzQgMjkuNWEzMzMuNyAzMzMuNyAwIDAgMCA1Mi45LTc1LjExIDMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTlDNTUwLjI5IDEzNS41OSA0NDIuOTMgNjQgMzIwIDY0Yy0zNi43IDAtNzEuNzEgNy0xMDQuNjMgMTguODFsNDYuNDEgMzYuMjljMTguOTQtNC4zIDM4LjM0LTcuMSA1OC4yMi03LjF6bTAgMjg4Yy05OC42NSAwLTE4OS4wOC01NS0yMzcuOTMtMTQ0YTI4NS40NyAyODUuNDcgMCAwIDEgNDQuMDUtNjAuMTlsLTM3Ljc0LTI5LjVhMzMzLjYgMzMzLjYgMCAwIDAtNTIuODkgNzUuMSAzMi4zNSAzMi4zNSAwIDAgMCAwIDI5LjE5Qzg5LjcyIDM3Ni40MSAxOTcuMDggNDQ4IDMyMCA0NDhjMzYuNyAwIDcxLjcxLTcuMDUgMTA0LjYzLTE4LjgxbC00Ni40MS0zNi4yOEMzNTkuMjggMzk3LjIgMzM5Ljg5IDQwMCAzMjAgNDAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTQ0YTExMC45NCAxMTAuOTQgMCAwIDAtMzEuMjQgNSA1NS40IDU1LjQgMCAwIDEgNy4yNCAyNyA1NiA1NiAwIDAgMS01NiA1NiA1NS40IDU1LjQgMCAwIDEtMjctNy4yNEExMTEuNzEgMTExLjcxIDAgMSAwIDI4OCAxNDR6bTI4NC41MiA5Ny40QzUxOC4yOSAxMzUuNTkgNDEwLjkzIDY0IDI4OCA2NFM1Ny42OCAxMzUuNjQgMy40OCAyNDEuNDFhMzIuMzUgMzIuMzUgMCAwIDAgMCAyOS4xOUM1Ny43MSAzNzYuNDEgMTY1LjA3IDQ0OCAyODggNDQ4czIzMC4zMi03MS42NCAyODQuNTItMTc3LjQxYTMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTl6TTI4OCA0MDBjLTk4LjY1IDAtMTg5LjA5LTU1LTIzNy45My0xNDRDOTguOTEgMTY3IDE4OS4zNCAxMTIgMjg4IDExMnMxODkuMDkgNTUgMjM3LjkzIDE0NEM0NzcuMSAzNDUgMzg2LjY2IDQwMCAyODggNDAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDI0OHYyOGMwIDYuNi01LjQgMTItMTIgMTJIMTA4Yy02LjYgMC0xMi01LjQtMTItMTJ2LTI4YzAtNi42IDUuNC0xMiAxMi0xMmgxNjhjNi42IDAgMTIgNS40IDEyIDEyem0tMTIgNzJIMTA4Yy02LjYgMC0xMiA1LjQtMTIgMTJ2MjhjMCA2LjYgNS40IDEyIDEyIDEyaDE2OGM2LjYgMCAxMi01LjQgMTItMTJ2LTI4YzAtNi42LTUuNC0xMi0xMi0xMnptMTA4LTE4OC4xVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDhDMCAyMS41IDIxLjUgMCA0OCAwaDIwNC4xQzI2NC44IDAgMjc3IDUuMSAyODYgMTQuMUwzNjkuOSA5OGM5IDguOSAxNC4xIDIxLjIgMTQuMSAzMy45em0tMTI4LTgwVjEyOGg3Ni4xTDI1NiA1MS45ek0zMzYgNDY0VjE3NkgyMzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjQ4SDQ4djQxNmgyODh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4LjMgMTYwdjMyaDMydi0zMnptNjQtOTZoLTMydjMyaDMyem0tNjQgMzJ2MzJoMzJWOTZ6bTY0IDMyaC0zMnYzMmgzMnptMTc3LjYtMzAuMUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0yNTYgNTEuOWw3Ni4xIDc2LjFIMjU2ek0zMzYgNDY0SDQ4VjQ4aDc5Ljd2MTZoMzJWNDhIMjA4djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR6TTE5NC4yIDI2NS43Yy0xLjEtNS42LTYtOS43LTExLjgtOS43aC0yMi4xdi0zMmgtMzJ2MzJsLTE5LjcgOTcuMUMxMDIgMzg1LjYgMTI2LjggNDE2IDE2MCA0MTZjMzMuMSAwIDU3LjktMzAuMiA1MS41LTYyLjZ6bS0zMy45IDEyNC40Yy0xNy45IDAtMzIuNC0xMi4xLTMyLjQtMjdzMTQuNS0yNyAzMi40LTI3IDMyLjQgMTIuMSAzMi40IDI3LTE0LjUgMjctMzIuNCAyN3ptMzItMTk4LjFoLTMydjMyaDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOTQxIDk3Ljk0MWwtODMuODgyLTgzLjg4MkE0OCA0OCAwIDAgMCAyNTIuMTE4IDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2NDE2YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjg4YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTMxLjg4MmE0OCA0OCAwIDAgMC0xNC4wNTktMzMuOTQxek0zMzIuMTE4IDEyOEgyNTZWNTEuODgyTDMzMi4xMTggMTI4ek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTA0djI4OEg0OHptMTQ0LTc2LjAyNGMwIDEwLjY5MS0xMi45MjYgMTYuMDQ1LTIwLjQ4NSA4LjQ4NUwxMzYgMzYwLjQ4NmgtMjhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTU2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMjhsMzUuNTE1LTM2Ljk0N2M3LjU2LTcuNTYgMjAuNDg1LTIuMjA2IDIwLjQ4NSA4LjQ4NXYxMzUuOTUyem00MS4yMDEtNDcuMTNjOS4wNTEtOS4yOTcgOS4wNi0yNC4xMzMuMDAxLTMzLjQzOS0yMi4xNDktMjIuNzUyIDEyLjIzNS01Ni4yNDYgMzQuMzk1LTMzLjQ4MSAyNy4xOTggMjcuOTQgMjcuMjEyIDcyLjQ0NC4wMDEgMTAwLjQwMS0yMS43OTMgMjIuMzg2LTU2Ljk0Ny0xMC4zMTUtMzQuMzk3LTMzLjQ4MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDkuOSAzNDkuMWwtLjItLjItMzIuOC0yOC45IDMyLjgtMjguOWMzLjYtMy4yIDQtOC44LjgtMTIuNGwtLjItLjItMTcuNC0xOC42Yy0zLjQtMy42LTktMy43LTEyLjQtLjRsLTU3LjcgNTQuMWMtMy43IDMuNS0zLjcgOS40IDAgMTIuOGw1Ny43IDU0LjFjMS42IDEuNSAzLjggMi40IDYgMi40IDIuNCAwIDQuOC0xIDYuNC0yLjhsMTcuNC0xOC42YzMuMy0zLjUgMy4xLTkuMS0uNC0xMi40em0yMjAtMjUxLjJMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMjU2IDUxLjlsNzYuMSA3Ni4xSDI1NnpNMzM2IDQ2NEg0OFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHpNMjA5LjYgMjE0Yy00LjctMS40LTkuNSAxLjMtMTAuOSA2TDE0NCA0MDguMWMtMS40IDQuNyAxLjMgOS42IDYgMTAuOWwyNC40IDcuMWM0LjcgMS40IDkuNi0xLjQgMTAuOS02TDI0MCAyMzEuOWMxLjQtNC43LTEuMy05LjYtNi0xMC45em0yNC41IDc2LjlsLjIuMiAzMi44IDI4LjktMzIuOCAyOC45Yy0zLjYgMy4yLTQgOC44LS44IDEyLjRsLjIuMiAxNy40IDE4LjZjMy4zIDMuNSA4LjkgMy43IDEyLjQuNGw1Ny43LTU0LjFjMy43LTMuNSAzLjctOS40IDAtMTIuOGwtNTcuNy01NC4xYy0zLjUtMy4zLTkuMS0zLjItMTIuNC40bC0xNy40IDE4LjZjLTMuMyAzLjUtMy4xIDkuMS40IDEyLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUV4Y2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDk3LjlMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMzMyLjEgMTI4SDI1NlY1MS45bDc2LjEgNzYuMXpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0djI4OEg0OHptMjEyLTI0MGgtMjguOGMtNC40IDAtOC40IDIuNC0xMC41IDYuMy0xOCAzMy4xLTIyLjIgNDIuNC0yOC42IDU3LjctMTMuOS0yOS4xLTYuOS0xNy4zLTI4LjYtNTcuNy0yLjEtMy45LTYuMi02LjMtMTAuNi02LjNIMTI0Yy05LjMgMC0xNSAxMC0xMC40IDE4bDQ2LjMgNzgtNDYuMyA3OGMtNC43IDggMS4xIDE4IDEwLjQgMThoMjguOWM0LjQgMCA4LjQtMi40IDEwLjUtNi4zIDIxLjctNDAgMjMtNDUgMjguNi01Ny43IDE0LjkgMzAuMiA1LjkgMTUuOSAyOC42IDU3LjcgMi4xIDMuOSA2LjIgNi4zIDEwLjYgNi4zSDI2MGM5LjMgMCAxNS0xMCAxMC40LTE4TDIyNCAzMjBjLjctMS4xIDMwLjMtNTAuNSA0Ni4zLTc4IDQuNy04LTEuMS0xOC0xMC4zLTE4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTMyLTQ4aDIyNFYyODhsLTIzLjUtMjMuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDE3NiAzNTJsLTM5LjUtMzkuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDgwIDM1MnY2NHptNDgtMjQwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlUGRmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDk3LjlMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMzMyLjEgMTI4SDI1NlY1MS45bDc2LjEgNzYuMXpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0djI4OEg0OHptMjUwLjItMTQzLjdjLTEyLjItMTItNDctOC43LTY0LjQtNi41LTE3LjItMTAuNS0yOC43LTI1LTM2LjgtNDYuMyAzLjktMTYuMSAxMC4xLTQwLjYgNS40LTU2LTQuMi0yNi4yLTM3LjgtMjMuNi00Mi42LTUuOS00LjQgMTYuMS0uNCAzOC41IDcgNjcuMS0xMCAyMy45LTI0LjkgNTYtMzUuNCA3NC40LTIwIDEwLjMtNDcgMjYuMi01MSA0Ni4yLTMuMyAxNS44IDI2IDU1LjIgNzYuMS0zMS4yIDIyLjQtNy40IDQ2LjgtMTYuNSA2OC40LTIwLjEgMTguOSAxMC4yIDQxIDE3IDU1LjggMTcgMjUuNSAwIDI4LTI4LjIgMTcuNS0zOC43em0tMTk4LjEgNzcuOGM1LjEtMTMuNyAyNC41LTI5LjUgMzAuNC0zNS0xOSAzMC4zLTMwLjQgMzUuNy0zMC40IDM1em04MS42LTE5MC42YzcuNCAwIDYuNyAzMi4xIDEuOCA0MC44LTQuNC0xMy45LTQuMy00MC44LTEuOC00MC44em0tMjQuNCAxMzYuNmM5LjctMTYuOSAxOC0zNyAyNC43LTU0LjcgOC4zIDE1LjEgMTguOSAyNy4yIDMwLjEgMzUuNS0yMC44IDQuMy0zOC45IDEzLjEtNTQuOCAxOS4yem0xMzEuNi01cy01IDYtMzcuMy03LjhjMzUuMS0yLjYgNDAuOSA1LjQgMzcuMyA3Ljh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVBvd2VycG9pbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4em03Mi02MFYyMzZjMC02LjYgNS40LTEyIDEyLTEyaDY5LjJjMzYuNyAwIDYyLjggMjcgNjIuOCA2Ni4zIDAgNzQuMy02OC43IDY2LjUtOTUuNSA2Ni41VjQwNGMwIDYuNi01LjQgMTItMTIgMTJIMTMyYy02LjYgMC0xMi01LjQtMTItMTJ6bTQ4LjUtODcuNGgyM2M3LjkgMCAxMy45LTIuNCAxOC4xLTcuMiA4LjUtOS44IDguNC0yOC41LjEtMzcuOC00LjEtNC42LTkuOS03LTE3LjQtN2gtMjMuOXY1MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5Ljk0MSA5Ny45NDFsLTgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgMjUyLjExOCAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djQxNmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDI4OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjEzMS44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMzMyLjExOCAxMjhIMjU2VjUxLjg4MkwzMzIuMTE4IDEyOHpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNHYyODhINDh6bTIyOC42ODctMjExLjMwM0wyMjQgMzA1LjM3NFYyNjhjMC0xMS4wNDYtOC45NTQtMjAtMjAtMjBIMTAwYy0xMS4wNDYgMC0yMCA4Ljk1NC0yMCAyMHYxMDRjMCAxMS4wNDYgOC45NTQgMjAgMjAgMjBoMTA0YzExLjA0NiAwIDIwLTguOTU0IDIwLTIwdi0zNy4zNzRsNTIuNjg3IDUyLjY3NEMyODYuNzA0IDM5Ny4zMTggMzA0IDM5MC4yOCAzMDQgMzc1Ljk4NlYyNjQuMDExYzAtMTQuMzExLTE3LjMwOS0yMS4zMTktMjcuMzEzLTExLjMxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlV29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTIyMC4xLTIwOGMtNS43IDAtMTAuNiA0LTExLjcgOS41LTIwLjYgOTcuNy0yMC40IDk1LjQtMjEgMTAzLjUtLjItMS4yLS40LTIuNi0uNy00LjMtLjgtNS4xLjMuMi0yMy42LTk5LjUtMS4zLTUuNC02LjEtOS4yLTExLjctOS4yaC0xMy4zYy01LjUgMC0xMC4zIDMuOC0xMS43IDkuMS0yNC40IDk5LTI0IDk2LjItMjQuOCAxMDMuNy0uMS0xLjEtLjItMi41LS41LTQuMi0uNy01LjItMTQuMS03My4zLTE5LjEtOTktMS4xLTUuNi02LTkuNy0xMS44LTkuN2gtMTYuOGMtNy44IDAtMTMuNSA3LjMtMTEuNyAxNC44IDggMzIuNiAyNi43IDEwOS41IDMzLjIgMTM2IDEuMyA1LjQgNi4xIDkuMSAxMS43IDkuMWgyNS4yYzUuNSAwIDEwLjMtMy43IDExLjYtOS4xbDE3LjktNzEuNGMxLjUtNi4yIDIuNS0xMiAzLTE3LjNsMi45IDE3LjNjLjEuNCAxMi42IDUwLjUgMTcuOSA3MS40IDEuMyA1LjMgNi4xIDkuMSAxMS42IDkuMWgyNC43YzUuNSAwIDEwLjMtMy43IDExLjYtOS4xIDIwLjgtODEuOSAzMC4yLTExOSAzNC41LTEzNiAxLjktNy42LTMuOC0xNC45LTExLjYtMTQuOWgtMTUuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDk3LjlMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMzMyLjEgMTI4SDI1NlY1MS45bDc2LjEgNzYuMXpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0djI4OEg0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNi4xNzQgODBjLTQ5LjEzMiAwLTkzLjMwNS0zMi0xNjEuOTEzLTMyLTMxLjMwMSAwLTU4LjMwMyA2LjQ4Mi04MC43MjEgMTUuMTY4YTQ4LjA0IDQ4LjA0IDAgMCAwIDIuMTQyLTIwLjcyN0M5My4wNjcgMTkuNTc1IDc0LjE2NyAxLjU5NCA1MS4yMDEuMTA0IDIzLjI0Mi0xLjcxIDAgMjAuNDMxIDAgNDhjMCAxNy43NjQgOS42NTcgMzMuMjYyIDI0IDQxLjU2MlY0OTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di04My40NDNDMTA5Ljg2OSAzOTUuMjggMTQzLjI1OSAzODQgMTk5LjgyNiAzODRjNDkuMTMyIDAgOTMuMzA1IDMyIDE2MS45MTMgMzIgNTguNDc5IDAgMTAxLjk3Mi0yMi42MTcgMTI4LjU0OC0zOS45ODFDNTAzLjg0NiAzNjcuMTYxIDUxMiAzNTIuMDUxIDUxMiAzMzUuODU1Vjk1LjkzN2MwLTM0LjQ1OS0zNS4yNjQtNTcuNzY4LTY2LjkwNC00NC4xMTdDNDA5LjE5MyA2Ny4zMDkgMzcxLjY0MSA4MCAzMzYuMTc0IDgwek00NjQgMzM2Yy0yMS43ODMgMTUuNDEyLTYwLjgyNCAzMi0xMDIuMjYxIDMyLTU5Ljk0NSAwLTEwMi4wMDItMzItMTYxLjkxMy0zMi00My4zNjEgMC05Ni4zNzkgOS40MDMtMTI3LjgyNiAyNFYxMjhjMjEuNzg0LTE1LjQxMiA2MC44MjQtMzIgMTAyLjI2MS0zMiA1OS45NDUgMCAxMDIuMDAyIDMyIDE2MS45MTMgMzIgNDMuMjcxIDAgOTYuMzItMTcuMzY2IDEyNy44MjYtMzJ2MjQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZsdXNoZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem05Ni0zMTJjLTQ0LjIgMC04MCAzNS44LTgwIDgwczM1LjggODAgODAgODAgODAtMzUuOCA4MC04MC0zNS44LTgwLTgwLTgwem0wIDEyOGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTAtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em0tMTEyIDI0YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHptLTgwIDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMC03MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bTE2MCAxNDRIMTg0Yy0xMy4yIDAtMjQgMTAuOC0yNCAyNHMxMC44IDI0IDI0IDI0aDEyOGMxMy4yIDAgMjQtMTAuOCAyNC0yNHMtMTAuOC0yNC0yNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyNy45IDIyNEg0ODB2LTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI3MmwtNjQtNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQwMGMxNi41IDAgMzEuOS04LjUgNDAuNy0yMi42bDc5LjktMTI4YzIwLTMxLjktMy03My40LTQwLjctNzMuNHpNNDggMTE4YzAtMy4zIDIuNy02IDYtNmgxMzQuMWw2NCA2NEg0MjZjMy4zIDAgNiAyLjcgNiA2djQySDE1MmMtMTYuOCAwLTMyLjQgOC44LTQxLjEgMjMuMkw0OCAzNTEuNHptNDAwIDI4Mkg3Mmw3Ny4yLTEyOEg1Mjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxMjhIMjcybC01NC42My01NC42M2MtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0g0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE3NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0wIDI3Mkg0OFYxMTJoMTQwLjEybDU0LjYzIDU0LjYzYzYgNiAxNC4xNCA5LjM3IDIyLjYzIDkuMzdINDY0djIyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGb250QXdlc29tZUxvZ29GdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzOTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTQuNiAwSDU3LjRDMjUuOSAwIDAgMjUuOSAwIDU3LjR2Mzk3LjNDMCA0ODYuMSAyNS45IDUxMiA1Ny40IDUxMmgzOTcuM2MzMS40IDAgNTcuNC0yNS45IDU3LjQtNTcuNFY1Ny40QzUxMiAyNS45IDQ4Ni4xIDAgNDU0LjYgMHptLTU4LjkgMzI0LjljMCA0LjgtNC4xIDYuOS04LjkgOC45LTE5LjIgOC4xLTM5LjcgMTUuNy02MS41IDE1LjctNDAuNSAwLTY4LjctNDQuOC0xNjMuMiAyLjV2NTEuOGMwIDMwLjMtNDUuNyAzMC4yLTQ1LjcgMHYtMjUwYy05LTctMTUtMTcuOS0xNS0zMC4zIDAtMjEgMTcuMS0zOC4yIDM4LjItMzguMiAyMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCAxMi4yLTUuOCAyMy4yLTE0LjkgMzAuMnYyMWMzNy4xLTEyIDY1LjUtMzQuNCAxNDYuMS0zLjQgMjYuNiAxMS40IDY4LjctMTUuNyA3Ni41LTE1LjcgNS41IDAgMTAuMyA0LjEgMTAuMyA4Ljl2MTYwLjR6bTQzMi45LTE3NC4yaC0xMzd2NzAuMUg4MjVjMzkuOCAwIDQwLjQgNjIuMiAwIDYyLjJINjkxLjZ2MTA1LjZjMCA0NS41LTcwLjcgNDYuNC03MC43IDBWMTI4LjNjMC0yMiAxOC0zOS44IDM5LjgtMzkuOGgxNjcuOGMzOS42IDAgNDAuNSA2Mi4yLjEgNjIuMnptMTkxLjEgMjMuNGMtMTY5LjMgMC0xNjkuMSAyNTIuNCAwIDI1Mi40IDE2OS45IDAgMTY5LjktMjUyLjQgMC0yNTIuNHptMCAxOTYuMWMtODEuNiAwLTgyLjEtMTM5LjggMC0xMzkuOCA4Mi41IDAgODIuNCAxMzkuOCAwIDEzOS44em0zNzIuNCA1My40Yy0xNy41IDAtMzEuNC0xMy45LTMxLjQtMzEuNHYtMTE3YzAtNjIuNC03Mi42LTUyLjUtOTkuMS0xNi40djEzMy40YzAgNDEuNS02My4zIDQxLjgtNjMuMyAwVjIwOGMwLTQwIDYzLjEtNDEuNiA2My4xIDB2My40YzQzLjMtNTEuNiAxNjIuNC02MC40IDE2Mi40IDM5LjN2MTQxLjVjLjMgMzAuNC0zMS41IDMxLjQtMzEuNyAzMS40em0xNzkuNyAyLjljLTQ0LjMgMC02OC4zLTIyLjktNjguMy02NS44VjIzNS4ySDE0ODhjLTM1LjYgMC0zNi43LTU1LjMgMC01NS4zaDE1LjV2LTM3LjNjMC00MS4zIDYzLjgtNDIuMSA2My44IDB2MzcuNWgyNC45YzM1LjQgMCAzNS43IDU1LjMgMCA1NS4zaC0yNC45djEwOC41YzAgMjkuNiAyNi4xIDI2LjMgMjcuNCAyNi4zIDMxLjQgMCA1Mi42IDU2LjMtMjIuOSA1Ni4zek0xOTkyIDEyM2MtMTkuNS01MC4yLTk1LjUtNTAtMTE0LjUgMC0xMDcuMyAyNzUuNy05OS41IDI1Mi43LTk5LjUgMjYyLjggMCA0Mi44IDU4LjMgNTEuMiA3Mi4xIDE0LjRsMTMuNS0zNS45SDIwMDZsMTMgMzUuOWMxNC4yIDM3LjcgNzIuMSAyNy4yIDcyLjEtMTQuNCAwLTEwLjEgNS4zIDYuOC05OS4xLTI2Mi44em0tMTA4LjkgMTc5LjFsNTEuNy0xNDIuOSA1MS44IDE0Mi45aC0xMDMuNXptNTkxLjMtODUuNmwtNTMuNyAxNzYuM2MtMTIuNCA0MS4yLTcyIDQxLTg0IDBsLTQyLjMtMTM1LjktNDIuMyAxMzUuOWMtMTIuNCA0MC45LTcyIDQxLjItODQuNSAwbC01NC4yLTE3Ni4zYy0xMi41LTM5LjQgNDkuOC01Ni4xIDYwLjItMTYuOUwyMjEzIDM0Mmw0NS4zLTEzOS41YzEwLjktMzIuNyA1OS42LTM0LjcgNzEuMiAwbDQ1LjMgMTM5LjUgMzkuMy0xNDIuNGMxMC4zLTM4LjMgNzIuNi0yMy44IDYwLjMgMTYuOXptMjc1LjQgNzUuMWMwLTQyLjQtMzMuOS0xMTcuNS0xMTkuNS0xMTcuNS03My4yIDAtMTI0LjQgNTYuMy0xMjQuNCAxMjYgMCA3Ny4yIDU1LjMgMTI2LjQgMTI4LjUgMTI2LjQgMzEuNyAwIDkzLTExLjUgOTMtMzkuOCAwLTE4LjMtMjEuMS0zMS41LTM5LjMtMjIuNC00OS40IDI2LjItMTA5IDguNC0xMTUuOS00My44aDE0OC4zYzE2LjMgMCAyOS4zLTEzLjQgMjkuMy0yOC45ek0yNTcxIDI3Ny43YzkuNS03My40IDExMy45LTY4LjYgMTE4LjYgMEgyNTcxem0zMTYuNyAxNDguOGMtMzEuNCAwLTgxLjYtMTAuNS05Ni42LTMxLjktMTIuNC0xNyAyLjUtMzkuOCAyMS44LTM5LjggMTYuMyAwIDM2LjggMjIuOSA3Ny43IDIyLjkgMjcuNCAwIDQwLjQtMTEgNDAuNC0yNS44IDAtMzkuOC0xNDIuOS03LjQtMTQyLjktMTAyIDAtNDAuNCAzNS4zLTc1LjcgOTguNi03NS43IDMxLjQgMCA3NC4xIDkuOSA4Ny42IDI5LjQgMTAuOCAxNC44LTEuNCAzNi4yLTIwLjkgMzYuMi0xNS4xIDAtMjYuNy0xNy4zLTY2LjItMTcuMy0yMi45IDAtMzcuOCAxMC41LTM3LjggMjMuOCAwIDM1LjkgMTQyLjQgNiAxNDIuNCAxMDMuMS0uMSA0My43LTM3LjQgNzcuMS0xMDQuMSA3Ny4xem0yNjYuOC0yNTIuNGMtMTY5LjMgMC0xNjkuMSAyNTIuNCAwIDI1Mi40IDE3MC4xIDAgMTY5LjYtMjUyLjQgMC0yNTIuNHptMCAxOTYuMWMtODEuOCAwLTgyLTEzOS44IDAtMTM5LjggODIuNSAwIDgyLjQgMTM5LjggMCAxMzkuOHptNDc2LjkgMjJWMjY4LjdjMC01My44LTYxLjQtNDUuOC04NS43LTEwLjV2MTM0YzAgNDEuMy02My44IDQyLjEtNjMuOCAwVjI2OC43YzAtNTIuMS01OS41LTQ3LjQtODUuNy0xMC4xdjEzMy42YzAgNDEuNS02My4zIDQxLjgtNjMuMyAwVjIwOGMwLTQwIDYzLjEtNDEuNiA2My4xIDB2My40YzkuOS0xNC40IDQxLjgtMzcuMyA3OC42LTM3LjMgMzUuMyAwIDU3LjcgMTYuNCA2Ni43IDQzLjggMTMuOS0yMS44IDQ1LjgtNDMuOCA4Mi42LTQzLjggNDQuMyAwIDcwLjcgMjMuNCA3MC43IDcyLjd2MTQ1LjNjLjUgMTcuMy0xMy41IDMxLjQtMzEuOSAzMS40IDMuNS4xLTMxLjMgMS4xLTMxLjMtMzEuM3pNMzk5MiAyOTEuNmMwLTQyLjQtMzIuNC0xMTcuNS0xMTcuOS0xMTcuNS03My4yIDAtMTI3LjUgNTYuMy0xMjcuNSAxMjYgMCA3Ny4yIDU4LjMgMTI2LjQgMTMxLjYgMTI2LjQgMzEuNyAwIDkxLjUtMTEuNSA5MS41LTM5LjggMC0xOC4zLTIxLjEtMzEuNS0zOS4zLTIyLjQtNDkuNCAyNi4yLTExMC41IDguNC0xMTcuNS00My44aDE0OS44YzE2LjMgMCAyOS4xLTEzLjQgMjkuMy0yOC45em0tMTgwLjUtMTMuOWM5LjctNzQuNCAxMTUuOS02OC4zIDEyMC4xIDBoLTEyMC4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Zyb3duT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bS00OC0yNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyem0xMjgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0tODAgMTEyYy0zNS42IDAtODguOCAyMS4zLTk1LjggNjEuMi0yIDExLjggOSAyMS41IDIwLjUgMTguMSAzMS4yLTkuNiA1OS40LTE1LjMgNzUuMy0xNS4zczQ0LjEgNS43IDc1LjMgMTUuM2MxMS40IDMuNSAyMi41LTYuMyAyMC41LTE4LjEtNy0zOS45LTYwLjItNjEuMi05NS44LTYxLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0tODAtMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwLTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptLTgwIDEyOGMtNDAuMiAwLTc4IDE3LjctMTAzLjggNDguNi04LjUgMTAuMi03LjEgMjUuMyAzLjEgMzMuOCAxMC4yIDguNCAyNS4zIDcuMSAzMy44LTMuMSAxNi42LTE5LjkgNDEtMzEuNCA2Ni45LTMxLjRzNTAuMyAxMS40IDY2LjkgMzEuNGM4LjEgOS43IDIzLjEgMTEuOSAzMy44IDMuMSAxMC4yLTguNSAxMS41LTIzLjYgMy4xLTMzLjhDMzI2IDMyMS43IDI4OC4yIDMwNCAyNDggMzA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Z1dGJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODMuOCAxNzkuNEM0NDkuOCA3NC42IDM1Mi42IDggMjQ4LjEgOGMtMjUuNCAwLTUxLjIgMy45LTc2LjcgMTIuMkM0MS4yIDYyLjUtMzAuMSAyMDIuNCAxMi4yIDMzMi42IDQ2LjIgNDM3LjQgMTQzLjQgNTA0IDI0Ny45IDUwNGMyNS40IDAgNTEuMi0zLjkgNzYuNy0xMi4yIDEzMC4yLTQyLjMgMjAxLjUtMTgyLjIgMTU5LjItMzEyLjR6bS03NC41IDE5My43bC01Mi4yIDYuNC00My43LTYwLjkgMjQuNC03NS4yIDcxLjEtMjIuMSAzOC45IDM2LjRjLS4yIDMwLjctNy40IDYxLjEtMjEuNyA4OS4yLTQuNyA5LjMtMTAuNyAxNy44LTE2LjggMjYuMnptMC0yMzUuNGwtMTAuNCA1My4xLTcwLjcgMjItNjQuMi00Ni41VjkyLjVsNDcuNC0yNi4yYzM5LjIgMTMgNzMuNCAzOCA5Ny45IDcxLjR6TTE4NC45IDY2LjRMMjMyIDkyLjV2NzMuOGwtNjQuMiA0Ni41LTcwLjYtMjItMTAuMS01Mi41YzI0LjMtMzMuNCA1Ny45LTU4LjYgOTcuOC03MS45ek0xMzkgMzc5LjVMODUuOSAzNzNjLTE0LjQtMjAuMS0zNy4zLTU5LjYtMzcuOC0xMTUuM2wzOS0zNi40IDcxLjEgMjIuMiAyNC4zIDc0LjMtNDMuNSA2MS43em00OC4yIDY3bC0yMi40LTQ4LjEgNDMuNi02MS43SDI4N2w0NC4zIDYxLjctMjIuNCA0OC4xYy02LjIgMS44LTU3LjYgMjAuNC0xMjEuNyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dlbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMEgxMTJjLTQgMC03LjggMi0xMCA1LjRMMiAxNTIuNmMtMi45IDQuNC0yLjYgMTAuMi43IDE0LjJsMjc2IDM0MC44YzQuOCA1LjkgMTMuOCA1LjkgMTguNiAwbDI3Ni0zNDAuOGMzLjMtNC4xIDMuNi05LjguNy0xNC4yTDQ3NC4xIDUuNEM0NzEuOCAyIDQ2OC4xIDAgNDY0IDB6bS0xOS4zIDQ4bDYzLjMgOTZoLTY4LjRsLTUxLjctOTZoNTYuOHptLTIwMi4xIDBoOTAuN2w1MS43IDk2SDE5MWw1MS42LTk2em0tMTExLjMgMGg1Ni44bC01MS43IDk2SDY4bDYzLjMtOTZ6bS00MyAxNDRoNTEuNEwyMDggMzUyIDg4LjMgMTkyem0xMDIuOSAwaDE5My42TDI4OCA0MzUuMyAxOTEuMiAxOTJ6TTM2OCAzNTJsNjguMi0xNjBoNTEuNEwzNjggMzUyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW1hY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0tODAtMjE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xNiAxNkgxNTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE5MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xNjggOTZoLTI0Yy04LjggMC0xNi03LjItMTYtMTZ2LThoNDB2MjR6bTAtNDBoLTQwdi04YzAtOC44IDcuMi0xNiAxNi0xNmgyNHYyNHptNjQgNDBoLTQ4di0yNGg0OHYyNHptMC00MGgtNDh2LTI0aDQ4djI0em02NCA0MGgtNDh2LTI0aDQ4djI0em0wLTQwaC00OHYtMjRoNDh2MjR6bTU2IDI0YzAgOC44LTcuMiAxNi0xNiAxNmgtMjR2LTI0aDQwdjh6bTAtMjRoLTQwdi0yNGgyNGM4LjggMCAxNiA3LjIgMTYgMTZ2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMC4zIDI0OGMxMi40LTE4LjcgMTUuMS0zNy4zIDE1LjctNTYtLjUtMTguNy0zLjMtMzcuMy0xNS43LTU2LTgtMTItMjUuMS0xMS40LTMyLjcgMC0xMi40IDE4LjctMTUuMSAzNy4zLTE1LjcgNTYgLjUgMTguNyAzLjMgMzcuMyAxNS43IDU2IDguMSAxMiAyNS4yIDExLjQgMzIuNyAwem0xMjggMGMxMi40LTE4LjcgMTUuMS0zNy4zIDE1LjctNTYtLjUtMTguNy0zLjMtMzcuMy0xNS43LTU2LTgtMTItMjUuMS0xMS40LTMyLjcgMC0xMi40IDE4LjctMTUuMSAzNy4zLTE1LjcgNTYgLjUgMTguNyAzLjMgMzcuMyAxNS43IDU2IDguMSAxMiAyNS4yIDExLjQgMzIuNyAwek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgNy45IDQ3LjIgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5CZWFtU3dlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwIDE2MGMyOS41IDAgNTMuMy0yNi4zIDUzLjMtNTguNyAwLTI1LTMxLjctNzUuNS00Ni4yLTk3LjMtMy42LTUuMy0xMC43LTUuMy0xNC4yIDAtMTQuNSAyMS44LTQ2LjIgNzIuMy00Ni4yIDk3LjMgMCAzMi40IDIzLjggNTguNyA1My4zIDU4Ljd6TTI0OCA0MDBjNTEuOSAwIDExNS4zLTMyLjkgMTIzLjMtODAgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDggNDcuMSA3MS40IDgwIDEyMy4zIDgwem0xMzAuMy0xNjguM2MzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy42IDYuMiA0LjYgOS4zIDMuN3ptMTA1LjMtNTIuOWMtMjQuNiAxNS43LTQ2IDEyLjktNDYuNCAxMi45IDYuOSAyMC4yIDEwLjggNDEuOCAxMC44IDY0LjMgMCAxMTAuMy04OS43IDIwMC0yMDAgMjAwUzQ4IDM2Ni4zIDQ4IDI1NiAxMzcuNyA1NiAyNDggNTZjMzkuOCAwIDc2LjggMTEuOCAxMDggMzEuOSAxLjctOS41IDYuMy0yNC4xIDE3LjItNDUuN0MzMzYuNCAyMC42IDI5My43IDggMjQ4IDggMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OGMwLTI3LTQuNC01Mi45LTEyLjQtNzcuMnpNMTY4IDE4OS40YzEyLjMgMCAyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjggMTkuMi0yMS42IDMxLjUtMjEuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS44LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgNy45IDQ3LjEgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zem0tMjM1LjktNzIuOWMzLjUgMS4xIDcuNC0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA2LTQuNSA1LjctOC4zLTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40cy01Mi43IDI5LjMtNTYgNzEuNGMtLjMgMy43IDIuMSA3LjIgNS43IDguM3ptMTYwIDBjMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpbkhlYXJ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTMuNiAzMDQuNmMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDcuOSA0Ny4yIDcxLjMgODAgMTIzLjMgODBzMTE1LjMtMzIuOSAxMjMuMy04MGMxLjYtOS44LTcuNy0xOC40LTE3LjctMTUuM3ptLTE1Mi44LTQ4LjljNC41IDEuMiA5LjItMS41IDEwLjUtNmwxOS40LTY5LjljNS42LTIwLjMtNy40LTQxLjEtMjguOC00NC41LTE4LjYtMy0zNi40IDkuOC00MS41IDI3LjlsLTIgNy4xLTcuMS0xLjljLTE4LjItNC43LTM4LjIgNC4zLTQ0LjkgMjItNy43IDIwLjIgMy44IDQxLjkgMjQuMiA0Ny4ybDcwLjIgMTguMXptMTg4LjgtNjUuM2MtNi43LTE3LjYtMjYuNy0yNi43LTQ0LjktMjJsLTcuMSAxLjktMi03LjFjLTUtMTguMS0yMi44LTMwLjktNDEuNS0yNy45LTIxLjQgMy40LTM0LjQgMjQuMi0yOC44IDQ0LjVsMTkuNCA2OS45YzEuMiA0LjUgNS45IDcuMiAxMC41IDZsNzAuMi0xOC4yYzIwLjQtNS4zIDMxLjktMjYuOSAyNC4yLTQ3LjF6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluU3F1aW50VGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE3LjEgMzg0LjFjLTI1LjggMy43LTg0IDEzLjctMTAwLjkgMzAuNi0yMS45IDIxLjktMjEuNSA1Ny45LjkgODAuM3M1OC4zIDIyLjggODAuMy45QzExNC4zIDQ3OSAxMjQuMyA0MjAuOCAxMjggMzk1Yy44LTYuNC00LjYtMTEuOC0xMC45LTEwLjl6bS00MS4yLTQxLjdDNDAuMyAyNjggNTMgMTc2LjEgMTE0LjYgMTE0LjYgMTUyLjQgNzYuOCAyMDIuNiA1NiAyNTYgNTZjMzYuMiAwIDcwLjggOS44IDEwMS4yIDI3LjcgMy44LTIwLjMgOC0zNi4xIDEyLTQ4LjNDMzMzLjggMTcuMiAyOTQuOSA4IDI1NiA4IDE5Mi41IDggMTI5LjEgMzIuMiA4MC42IDgwLjZjLTc0LjEgNzQuMS05MS4zIDE4My40LTUyIDI3NCAxMi4yLTQuMSAyNy43LTguMyA0Ny4zLTEyLjJ6bTM1Mi4zLTE4Ny42YzQ1IDc2LjYgMzQuOSAxNzYuOS0zMC44IDI0Mi42LTM3LjggMzcuOC04OCA1OC42LTE0MS40IDU4LjYtMzAuNSAwLTU5LjgtNy04Ni40LTE5LjgtMy45IDE5LjUtOCAzNS0xMi4yIDQ3LjIgMzEuNCAxMy42IDY1IDIwLjYgOTguNyAyMC42IDYzLjUgMCAxMjYuOS0yNC4yIDE3NS40LTcyLjYgNzguMS03OC4xIDkzLjEtMTk1LjQgNDUuMi0yODguNi0xMi4zIDQtMjguMiA4LjEtNDguNSAxMnptLTMzLjMtMjYuOWMyNS44LTMuNyA4NC0xMy43IDEwMC45LTMwLjYgMjEuOS0yMS45IDIxLjUtNTcuOS0uOS04MC4zcy01OC4zLTIyLjgtODAuMy0uOUMzOTcuNyAzMyAzODcuNyA5MS4yIDM4NCAxMTdjLS44IDYuNCA0LjYgMTEuOCAxMC45IDEwLjl6bS0xODcgMTA4LjNjLTMtMy03LjItNC4yLTExLjQtMy4yTDEwNiAyNTUuN2MtNS43IDEuNC05LjUgNi43LTkuMSAxMi42LjUgNS44IDUuMSAxMC41IDEwLjkgMTFsNTIuMyA0LjggNC44IDUyLjNjLjUgNS44IDUuMiAxMC40IDExIDEwLjloLjljNS41IDAgMTAuMy0zLjcgMTEuNy05LjFsMjIuNi05MC41YzEtNC4yLS4yLTguNS0zLjItMTEuNXptMzkuNy0yNS4xbDkwLjUtMjIuNmM1LjctMS40IDkuNS02LjcgOS4xLTEyLjYtLjUtNS44LTUuMS0xMC41LTEwLjktMTFsLTUyLjMtNC44LTQuOC01Mi4zYy0uNS01LjgtNS4yLTEwLjQtMTEtMTAuOS01LjYtLjEtMTEuMiAzLjQtMTIuNiA5LjFMMjMzIDE5Ni41Yy0xIDQuMS4yIDguNCAzLjIgMTEuNCA1IDUgMTEuMyAzLjIgMTEuNCAzLjJ6bTUyIDg4LjVjLTI5LjEgMjkuMS01OS43IDUyLjktODMuOSA2NS40LTkuMiA0LjgtMTAgMTcuNS0xLjcgMjMuNCAzOC45IDI3LjcgMTA3IDYuMiAxNDMuNy0zMC42UzQxNiAyNTMgMzg4LjMgMjE0LjFjLTUuOC04LjItMTguNS03LjYtMjMuNCAxLjctMTIuMyAyNC4yLTM2LjIgNTQuNy02NS4zIDgzLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuNC0xNy43IDE1LjMgNy45IDQ3LjEgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zem0tMjM0LjctNDAuOGMzLjYgNC4yIDkuOSA1LjcgMTUuMyAyLjVsODAtNDhjMy42LTIuMiA1LjgtNi4xIDUuOC0xMC4zcy0yLjItOC4xLTUuOC0xMC4zbC04MC00OGMtNS4xLTMtMTEuNC0xLjktMTUuMyAyLjUtMy44IDQuNS0zLjggMTEtLjEgMTUuNWwzMy42IDQwLjMtMzMuNiA0MC4zYy0zLjggNC41LTMuNyAxMS4xLjEgMTUuNXptMjQyLjkgMi41YzUuNCAzLjIgMTEuNyAxLjcgMTUuMy0yLjUgMy44LTQuNSAzLjgtMTEgLjEtMTUuNUwzNDMuNiAyMDhsMzMuNi00MC4zYzMuOC00LjUgMy43LTExLS4xLTE1LjUtMy44LTQuNC0xMC4yLTUuNC0xNS4zLTIuNWwtODAgNDhjLTMuNiAyLjItNS44IDYuMS01LjggMTAuM3MyLjIgOC4xIDUuOCAxMC4zbDgwIDQ4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5TdGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS44LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgNy45IDQ3LjIgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zem0tMjI3LjktNTcuNWMtMSA2LjIgNS40IDExIDExIDcuOWwzMS4zLTE2LjMgMzEuMyAxNi4zYzUuNiAzLjEgMTItMS43IDExLTcuOWwtNi0zNC45IDI1LjQtMjQuNmM0LjUtNC41IDEuOS0xMi4yLTQuMy0xMy4ybC0zNC45LTUtMTUuNS0zMS42Yy0yLjktNS44LTExLTUuOC0xMy45IDBsLTE1LjUgMzEuNi0zNC45IDVjLTYuMi45LTguOSA4LjYtNC4zIDEzLjJsMjUuNCAyNC42LTYuMSAzNC45em0yNTkuNy03Mi43bC0zNC45LTUtMTUuNS0zMS42Yy0yLjktNS44LTExLTUuOC0xMy45IDBsLTE1LjUgMzEuNi0zNC45IDVjLTYuMi45LTguOSA4LjYtNC4zIDEzLjJsMjUuNCAyNC42LTYgMzQuOWMtMSA2LjIgNS40IDExIDExIDcuOWwzMS4zLTE2LjMgMzEuMyAxNi4zYzUuNiAzLjEgMTItMS43IDExLTcuOWwtNi0zNC45IDI1LjQtMjQuNmM0LjUtNC42IDEuOC0xMi4yLTQuNC0xMy4yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5UZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTcuMSAyNTYuMWMtMjUuOCAzLjctODQgMTMuNy0xMDAuOSAzMC42LTIxLjkgMjEuOS0yMS41IDU3LjkuOSA4MC4zczU4LjMgMjIuOCA4MC4zLjlDMTE0LjMgMzUxIDEyNC4zIDI5Mi44IDEyOCAyNjdjLjgtNi40LTQuNi0xMS44LTEwLjktMTAuOXptNTA2LjcgMzAuNmMtMTYuOS0xNi45LTc1LjEtMjYuOS0xMDAuOS0zMC42LTYuMy0uOS0xMS43IDQuNS0xMC44IDEwLjggMy43IDI1LjggMTMuNyA4NCAzMC42IDEwMC45IDIxLjkgMjEuOSA1Ny45IDIxLjUgODAuMy0uOSAyMi4zLTIyLjMgMjIuNy01OC4zLjgtODAuMnptLTEyNi42IDYxLjdDNDYzLjggNDEyLjMgMzk2LjkgNDU2IDMyMCA0NTZjLTc2LjkgMC0xNDMuOC00My43LTE3Ny4yLTEwNy42LTEyLjUgMzcuNC0yNS4yIDQzLjktMjguMyA0Ni41QzE1OS4xIDQ2MC43IDIzNC41IDUwNCAzMjAgNTA0czE2MC45LTQzLjMgMjA1LjUtMTA5LjFjLTMuMi0yLjctMTUuOS05LjItMjguMy00Ni41ek0xMjIuNyAyMjQuNUMxMzcuOSAxMjkuMiAyMjAuNSA1NiAzMjAgNTZjOTkuNSAwIDE4Mi4xIDczLjIgMTk3LjMgMTY4LjUgMi4xLS4yIDUuMi0yLjQgNDkuNSA3QzU1NC40IDEwNiA0NDguNyA4IDMyMCA4Uzg1LjYgMTA2IDczLjIgMjMxLjRjNDQuNS05LjQgNDcuMS03LjIgNDkuNS02Ljl6TTMyMCA0MDBjNTEuOSAwIDExNS4zLTMyLjkgMTIzLjMtODAgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDggNDcuMSA3MS40IDgwIDEyMy4zIDgwem0xMzAuMy0xNjguM2MzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy42IDYuMiA0LjYgOS4zIDMuN3pNMjQwIDE4OS40YzEyLjMgMCAyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjggMTkuMi0yMS42IDMxLjUtMjEuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluVG9uZ3VlU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTY0IDQwMGMwIDM1LjYtMjkuMSA2NC41LTY0LjkgNjQtMzUuMS0uNS02My4xLTI5LjgtNjMuMS02NXYtNDIuOGwxNy43LTguOGMxNS03LjUgMzEuNSAxLjcgMzQuOSAxNi41bDIuOCAxMi4xYzIuMSA5LjIgMTUuMiA5LjIgMTcuMyAwbDIuOC0xMi4xYzMuNC0xNC44IDE5LjgtMjQuMSAzNC45LTE2LjVsMTcuNyA4LjhWNDA4em0yOC4yIDI1LjNjMi4yLTguMSAzLjgtMTYuNSAzLjgtMjUuM3YtNDMuNWMxNC4yLTEyLjQgMjQuNC0yNy41IDI3LjMtNDQuNSAxLjctOS45LTcuNy0xOC41LTE3LjctMTUuMy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgMi45IDE3IDEzLjEgMzIuMSAyNy4zIDQ0LjVWNDA4YzAgOC44IDEuNiAxNy4yIDMuOCAyNS4zQzkxLjggMzk5LjkgNDggMzMzIDQ4IDI1NmMwLTExMC4zIDg5LjctMjAwIDIwMC0yMDBzMjAwIDg5LjcgMjAwIDIwMGMwIDc3LTQzLjggMTQzLjktMTA3LjggMTc3LjN6bTM2LjktMjgxLjFjLTMuOC00LjQtMTAuMy01LjUtMTUuMy0yLjVsLTgwIDQ4Yy0zLjYgMi4yLTUuOCA2LjEtNS44IDEwLjNzMi4yIDguMSA1LjggMTAuM2w4MCA0OGM1LjQgMy4yIDExLjcgMS43IDE1LjMtMi41IDMuOC00LjUgMy44LTExIC4xLTE1LjVMMzQzLjYgMjA4bDMzLjYtNDAuM2MzLjgtNC41IDMuNy0xMS4xLS4xLTE1LjV6bS0xNjIuOSA0NS41bC04MC00OGMtNS0zLTExLjQtMi0xNS4zIDIuNS0zLjggNC41LTMuOCAxMS0uMSAxNS41bDMzLjYgNDAuMy0zMy42IDQwLjNjLTMuOCA0LjUtMy43IDExIC4xIDE1LjUgMy42IDQuMiA5LjkgNS43IDE1LjMgMi41bDgwLTQ4YzMuNi0yLjIgNS44LTYuMSA1LjgtMTAuM3MtMi4yLTguMS01LjgtMTAuM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluVG9uZ3VlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIgMTgwYy0yNS43IDAtNTUuOSAxNi45LTU5LjggNDIuMS0uOCA1IDEuNyAxMCA2LjEgMTIuNCA0LjQgMi40IDkuOSAxLjggMTMuNy0xLjZsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDBsOS41IDguNWMyLjUgMi4yIDggNC43IDEzLjcgMS42IDQuNC0yLjQgNi45LTcuNCA2LjEtMTIuNC0zLjktMjUuMi0zNC4xLTQyLjEtNTkuOC00Mi4xem0xNzYtNTJjLTQ0LjIgMC04MCAzNS44LTgwIDgwczM1LjggODAgODAgODAgODAtMzUuOCA4MC04MC0zNS44LTgwLTgwLTgwem0wIDEyOGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTAtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em02NCA0MDBjMCAzNS42LTI5LjEgNjQuNS02NC45IDY0LTM1LjEtLjUtNjMuMS0yOS44LTYzLjEtNjV2LTQyLjhsMTcuNy04LjhjMTUtNy41IDMxLjUgMS43IDM0LjkgMTYuNWwyLjggMTIuMWMyLjEgOS4yIDE1LjIgOS4yIDE3LjMgMGwyLjgtMTIuMWMzLjQtMTQuOCAxOS44LTI0LjEgMzQuOS0xNi41bDE3LjcgOC44VjQwOHptMjguMiAyNS4zYzIuMi04LjEgMy44LTE2LjUgMy44LTI1LjN2LTQzLjVjMTQuMi0xMi40IDI0LjQtMjcuNSAyNy4zLTQ0LjUgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOS0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDIuOSAxNyAxMy4xIDMyLjEgMjcuMyA0NC41VjQwOGMwIDguOCAxLjYgMTcuMiAzLjggMjUuM0M5MS44IDM5OS45IDQ4IDMzMyA0OCAyNTZjMC0xMTAuMyA4OS43LTIwMCAyMDAtMjAwczIwMCA4OS43IDIwMCAyMDBjMCA3Ny00My44IDE0My45LTEwNy44IDE3Ny4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5Ub25ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNjQgNDAwYzAgMzUuNi0yOS4xIDY0LjUtNjQuOSA2NC0zNS4xLS41LTYzLjEtMjkuOC02My4xLTY1di00Mi44bDE3LjctOC44YzE1LTcuNSAzMS41IDEuNyAzNC45IDE2LjVsMi44IDEyLjFjMi4xIDkuMiAxNS4yIDkuMiAxNy4zIDBsMi44LTEyLjFjMy40LTE0LjggMTkuOC0yNC4xIDM0LjktMTYuNWwxNy43IDguOFY0MDh6bTI4LjIgMjUuM2MyLjItOC4xIDMuOC0xNi41IDMuOC0yNS4zdi00My41YzE0LjItMTIuNCAyNC40LTI3LjUgMjcuMy00NC41IDEuNy05LjktNy43LTE4LjUtMTcuNy0xNS4zLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjktMy4xLTE5LjQgNS4zLTE3LjcgMTUuMyAyLjkgMTcgMTMuMSAzMi4xIDI3LjMgNDQuNVY0MDhjMCA4LjggMS42IDE3LjIgMy44IDI1LjNDOTEuOCAzOTkuOSA0OCAzMzMgNDggMjU2YzAtMTEwLjMgODkuNy0yMDAgMjAwLTIwMHMyMDAgODkuNyAyMDAgMjAwYzAgNzctNDMuOCAxNDMuOS0xMDcuOCAxNzcuM3pNMTY4IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjggMTgwYy0yNS42OSAwLTU1Ljg4IDE2LjkyLTU5Ljg2IDQyLjEyLTEuNzUgMTEuMjIgMTEuNSAxOC4yNCAxOS44MyAxMC44NGw5LjU1LTguNDhjMTQuODEtMTMuMTkgNDYuMTYtMTMuMTkgNjAuOTcgMGw5LjU1IDguNDhjOC40OCA3LjQzIDIxLjU2LjI1IDE5LjgzLTEwLjg0QzM4My44OCAxOTYuOTIgMzUzLjY5IDE4MCAzMjggMTgwem0tMTYwIDYwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJzLTE0LjMzLTMyLTMyLTMyLTMyIDE0LjMzLTMyIDMyIDE0LjMzIDMyIDMyIDMyem0xODUuNTUgNjQuNjRjLTI1LjkzIDguMy02NC40IDEzLjA2LTEwNS41NSAxMy4wNnMtNzkuNjItNC43NS0xMDUuNTUtMTMuMDZjLTkuOTQtMy4xMy0xOS40IDUuMzctMTcuNzEgMTUuMzRDMTMyLjY3IDM2Ny4xMyAxOTYuMDYgNDAwIDI0OCA0MDBzMTE1LjMzLTMyLjg3IDEyMy4yNi04MC4wMmMxLjY4LTkuODktNy42Ny0xOC40OC0xNy43MS0xNS4zNHpNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0NDhjLTExMC4yOCAwLTIwMC04OS43Mi0yMDAtMjAwUzEzNy43MiA1NiAyNDggNTZzMjAwIDg5LjcyIDIwMCAyMDAtODkuNzIgMjAwLTIwMCAyMDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTEwNS42LTE1MS40Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuNC0xNy43IDE1LjMgNy45IDQ3LjEgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zek0xNjggMjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRMaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTU2LjY4NiAyOTAuNTQyTDQxMC4zMjggNjQuODI5QzM5Ny4wMDEgNDQuMjcyIDM3NC40MTcgMzIgMzQ5LjkxNyAzMkg1NkMyNS4xMjEgMzIgMCA1Ny4xMjIgMCA4OHY4YzAgNDQuMTEyIDM1Ljg4OCA4MCA4MCA4MGgxOTYuMDQybC0xOC4zMzMgNDhIMTQ0Yy00OC41MjMgMC04OCAzOS40NzctODggODggMCAzMC44NzkgMjUuMTIxIDU2IDU2IDU2aDEzMS41NTJjMi45ODcgMCA1LjkxNC41NDkgOC42OTcgMS42MzFMMzUyIDQwOC40MThWNDgwaDIyNFYzNTUuODI5YzAtMjMuMjI1LTYuNjc5LTQ1LjgwMS0xOS4zMTQtNjUuMjg3ek01MjggNDMySDQwMHYtMjMuNTgyYzAtMTkuOTQ4LTEyLjAxNC0zNy41MDgtMzAuNjA0LTQ0LjczNmwtOTkuNzUxLTM4Ljc4OEE3MS43MzMgNzEuNzMzIDAgMCAwIDI0My41NTIgMzIwSDExMmMtNC40MTEgMC04LTMuNTg5LTgtOCAwLTIyLjA1NiAxNy45NDQtNDAgNDAtNDBoMTEzLjcwOWMxOS43NjcgMCAzNy43ODYtMTIuNDA3IDQ0Ljg0LTMwLjg3M2wyNC41NTItNjQuMjgxYzguOTk2LTIzLjU1My04LjQyOC00OC44NDYtMzMuNjMtNDguODQ2SDgwYy0xNy42NDUgMC0zMi0xNC4zNTUtMzItMzJ2LThjMC00LjQxMSAzLjU4OS04IDgtOGgyOTMuOTE3YzguMTY2IDAgMTUuNjkzIDQuMDkgMjAuMTM3IDEwLjk0MmwxNDYuMzU4IDIyNS43MTVBNzEuODQgNzEuODQgMCAwIDEgNTI4IDM1NS44MjlWNDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIuNTcgMTEyLjY0MXYtMTAuODI1YzAtNDMuNjEyLTQwLjUyLTc2LjY5MS04My4wMzktNjUuNTQ2LTI1LjYyOS00OS41LTk0LjA5LTQ3LjQ1LTExNy45ODIuNzQ3QzEzMC4yNjkgMjYuNDU2IDg5LjE0NCA1Ny45NDUgODkuMTQ0IDEwMnYxMjYuMTNjLTE5Ljk1My03LjQyNy00My4zMDgtNS4wNjgtNjIuMDgzIDguODcxLTI5LjM1NSAyMS43OTYtMzUuNzk0IDYzLjMzMy0xNC41NSA5My4xNTNMMTMyLjQ4IDQ5OC41NjlhMzIgMzIgMCAwIDAgMjYuMDYyIDEzLjQzMmgyMjIuODk3YzE0LjkwNCAwIDI3LjgzNS0xMC4yODkgMzEuMTgyLTI0LjgxM2wzMC4xODQtMTMwLjk1OEEyMDMuNjM3IDIwMy42MzcgMCAwIDAgNDQ4IDMxMC41NjRWMTc5YzAtNDAuNjItMzUuNTIzLTcxLjk5Mi03NS40My02Ni4zNTl6bTI3LjQyNyAxOTcuOTIyYzAgMTEuNzMxLTEuMzM0IDIzLjQ2OS0zLjk2NSAzNC44ODZMMzY4LjcwNyA0NjRoLTIwMS45Mkw1MS41OTEgMzAyLjMwM2MtMTQuNDM5LTIwLjI3IDE1LjAyMy00Mi43NzYgMjkuMzk0LTIyLjYwNWwyNy4xMjggMzguMDc5YzguOTk1IDEyLjYyNiAyOS4wMzEgNi4yODcgMjkuMDMxLTkuMjgzVjEwMmMwLTI1LjY0NSAzNi41NzEtMjQuODEgMzYuNTcxLjY5MVYyNTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg2Ljg1NmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2VjY3YzAtMjUuNjYzIDM2LjU3MS0yNC44MSAzNi41NzEuNjkxVjI1NmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDYuODU2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZWMTAxLjEyNWMwLTI1LjY3MiAzNi41Ny0yNC44MSAzNi41Ny42OTFWMjU2YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoNi44NTdjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNzYuMzA5YzAtMjYuMjQyIDM2LjU3LTI1LjY0IDM2LjU3LS42OTF2MTMxLjU2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUGVhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYyLjE0NiAxOTEuOTc2Yy0xMy43MS0yMS42NDktMzguNzYxLTM0LjAxNi02NS4wMDYtMzAuMzQxVjc0YzAtNDAuODA0LTMyLjgxMS03NC03My4xNDEtNzQtNDAuMzMgMC03My4xNCAzMy4xOTYtNzMuMTQgNzRMMTYwIDE2OGwtMTguNjc5LTc4Ljg1QzEyNi41NzggNTAuODQzIDgzLjg1IDMyLjExIDQ2LjIwOSA0Ny4yMDggOC43MzUgNjIuMjM4LTkuNTcxIDEwNC45NjMgNS4wMDggMTQyLjg1bDU1Ljc1NyAxNDQuOTI3Yy0zMC41NTcgMjQuOTU2LTQzLjk5NCA1Ny44MDktMjQuNzMzIDkyLjIxOGw1NC44NTMgOTcuOTk5QzEwMi42MjUgNDk4Ljk3IDEyNC43MyA1MTIgMTQ4LjU3NSA1MTJoMjA1LjcwMmMzMC43NDQgMCA1Ny41NTgtMjEuNDQgNjQuNTU1LTUxLjc5N2wyNy40MjctMTE4Ljk5OWE2Ny44MDEgNjcuODAxIDAgMCAwIDEuNzI5LTE1LjIwM0w0NDggMjU2YzAtNDQuOTU2LTQzLjI2My03Ny4zNDMtODUuODU0LTY0LjAyNHpNMzk5Ljk4NyAzMjZjMCAxLjQ4OC0uMTY5IDIuOTc3LS41MDIgNC40MjNsLTI3LjQyNyAxMTkuMDAxYy0xLjk3OCA4LjU4Mi05LjI5IDE0LjU3Ni0xNy43ODIgMTQuNTc2SDE0OC41NzVjLTYuNDg2IDAtMTIuNTQyLTMuNjIxLTE1LjgwNS05LjQ0OWwtNTQuODU0LTk4Yy00LjU1Ny04LjE0MS0yLjYxOS0xOC42NjggNC41MDgtMjQuNDg4bDI2LjY0Ny0yMS43NjRhMTYgMTYgMCAwIDAgNC44MTItMTguMTM5bC02NC4wOS0xNjYuNTQ5QzM3LjIyNiA5Mi45NTYgODQuMzcgNzQuODM3IDk2LjUxIDEwNi4zODlsNTkuNzg0IDE1NS4zNTdBMTYgMTYgMCAwIDAgMTcxLjIyNyAyNzJoMTEuNjMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZWNzRjMC0zNC4zNzUgNTAuMjgxLTM0LjQzIDUwLjI4MSAwdjE4MmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDYuODU2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTI4YzAtMjUuMTIyIDM2LjU2Ny0yNS4xNTkgMzYuNTY3IDB2MjhjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg2Ljg1NmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2IDAtMjUuMTIgMzYuNTY3LTI1LjE2IDM2LjU2NyAwdjcwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg4LjggNTEyYzQ1LjYxNiAwIDgzLjItMzcuNzY1IDgzLjItODMuMnYtMzUuNjQ3YTkzLjE0OCA5My4xNDggMCAwIDAgMjIuMDY0LTcuOTI5YzIyLjAwNiAyLjUwNyA0NC45NzgtMy41MDMgNjIuNzkxLTE1Ljk4NUM0MDkuMzQyIDM2OC4xIDQ0OCAzMzEuODQxIDQ0OCAyNjkuMjk5VjI0OGMwLTYwLjA2My00MC05OC41MTItNDAtMTI3LjJ2LTIuNjc5YzQuOTUyLTUuNzQ3IDgtMTMuNTM2IDgtMjIuMTJWMzJjMC0xNy42NzMtMTIuODk0LTMyLTI4LjgtMzJIMTU2LjhDMTQwLjg5NCAwIDEyOCAxNC4zMjcgMTI4IDMydjY0YzAgOC41ODQgMy4wNDggMTYuMzczIDggMjIuMTJ2Mi42NzljMCA2Ljk2NC02LjE5MyAxNC44NjItMjMuNjY4IDMwLjE4M2wtLjE0OC4xMjktLjE0Ni4xMzFjLTkuOTM3IDguODU2LTIwLjg0MSAxOC4xMTYtMzMuMjUzIDI1Ljg1MUM0OC41MzcgMTk1Ljc5OCAwIDIwNy40ODYgMCAyNTIuOGMwIDU2LjkyOCAzNS4yODYgOTIgODMuMiA5MiA4LjAyNiAwIDE1LjQ4OS0uODE0IDIyLjQtMi4xNzZWNDI4LjhjMCA0NS4wOTkgMzguMTAxIDgzLjIgODMuMiA4My4yem0wLTQ4Yy0xOC43IDAtMzUuMi0xNi43NzUtMzUuMi0zNS4yVjI3MC40Yy0xNy4zMjUgMC0zNS4yIDI2LjQtNzAuNCAyNi40LTI2LjQgMC0zNS4yLTIwLjYyNS0zNS4yLTQ0IDAtOC43OTQgMzIuNzEyLTIwLjQ0NSA1Ni4xLTM0LjkyNiAxNC41NzUtOS4wNzQgMjcuMjI1LTE5LjUyNCAzOS44NzUtMzAuNzk5IDE4LjM3NC0xNi4xMDkgMzYuNjMzLTMzLjgzNiAzOS41OTYtNTkuMDc1aDE3Ni43NTJDMzY0LjA4NyAxNzAuNzkgNDAwIDIwMi41MDkgNDAwIDI0OHYyMS4yOTljMCA0MC41MjQtMjIuMTk3IDU3LjEyNC02MS4zMjUgNTAuNjAxLTguMDAxIDE0LjYxMi0zMy45NzkgMjQuMTUxLTUzLjYyNSAxMi45MjUtMTguMjI1IDE5LjM2NS00Ni4zODEgMTcuNzg3LTYxLjA1IDQuOTVWNDI4LjhjMCAxOC45NzUtMTYuMjI1IDM1LjItMzUuMiAzNS4yek0zMjggNjRjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0czI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMjAuOEMwIDI2Ni40MTYgMzcuNzY1IDMwNCA4My4yIDMwNGgzNS42NDdhOTMuMTQ4IDkzLjE0OCAwIDAgMCA3LjkyOSAyMi4wNjRjLTIuNTA3IDIyLjAwNiAzLjUwMyA0NC45NzggMTUuOTg1IDYyLjc5MUMxNDMuOSA0NDEuMzQyIDE4MC4xNTkgNDgwIDI0Mi43MDEgNDgwSDI2NGM2MC4wNjMgMCA5OC41MTItNDAgMTI3LjItNDBoMi42NzljNS43NDcgNC45NTIgMTMuNTM2IDggMjIuMTIgOGg2NGMxNy42NzMgMCAzMi0xMi44OTQgMzItMjguOFYxODguOGMwLTE1LjkwNi0xNC4zMjctMjguOC0zMi0yOC44aC02NGMtOC41ODQgMC0xNi4zNzMgMy4wNDgtMjIuMTIgOEgzOTEuMmMtNi45NjQgMC0xNC44NjItNi4xOTMtMzAuMTgzLTIzLjY2OGwtLjEyOS0uMTQ4LS4xMzEtLjE0NmMtOC44NTYtOS45MzctMTguMTE2LTIwLjg0MS0yNS44NTEtMzMuMjUzQzMxNi4yMDIgODAuNTM3IDMwNC41MTQgMzIgMjU5LjIgMzJjLTU2LjkyOCAwLTkyIDM1LjI4Ni05MiA4My4yIDAgOC4wMjYuODE0IDE1LjQ4OSAyLjE3NiAyMi40SDgzLjJDMzguMTAxIDEzNy42IDAgMTc1LjcwMSAwIDIyMC44em00OCAwYzAtMTguNyAxNi43NzUtMzUuMiAzNS4yLTM1LjJoMTU4LjRjMC0xNy4zMjUtMjYuNC0zNS4yLTI2LjQtNzAuNCAwLTI2LjQgMjAuNjI1LTM1LjIgNDQtMzUuMiA4Ljc5NCAwIDIwLjQ0NSAzMi43MTIgMzQuOTI2IDU2LjEgOS4wNzQgMTQuNTc1IDE5LjUyNCAyNy4yMjUgMzAuNzk5IDM5Ljg3NSAxNi4xMDkgMTguMzc0IDMzLjgzNiAzNi42MzMgNTkuMDc1IDM5LjU5NnYxNzYuNzUyQzM0MS4yMSAzOTYuMDg3IDMwOS40OTEgNDMyIDI2NCA0MzJoLTIxLjI5OWMtNDAuNTI0IDAtNTcuMTI0LTIyLjE5Ny01MC42MDEtNjEuMzI1LTE0LjYxMi04LjAwMS0yNC4xNTEtMzMuOTc5LTEyLjkyNS01My42MjUtMTkuMzY1LTE4LjIyNS0xNy43ODctNDYuMzgxLTQuOTUtNjEuMDVIODMuMkM2NC4yMjUgMjU2IDQ4IDIzOS43NzUgNDggMjIwLjh6TTQ0OCAzNjBjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0cy0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjguOCAxMzcuNmgtODYuMTc3YTExNS41MiAxMTUuNTIgMCAwIDAgMi4xNzYtMjIuNGMwLTQ3LjkxNC0zNS4wNzItODMuMi05Mi04My4yLTQ1LjMxNCAwLTU3LjAwMiA0OC41MzctNzUuNzA3IDc4Ljc4NC03LjczNSAxMi40MTMtMTYuOTk0IDIzLjMxNy0yNS44NTEgMzMuMjUzbC0uMTMxLjE0Ni0uMTI5LjE0OEMxMzUuNjYyIDE2MS44MDcgMTI3Ljc2NCAxNjggMTIwLjggMTY4aC0yLjY3OWMtNS43NDctNC45NTItMTMuNTM2LTgtMjIuMTItOEgzMmMtMTcuNjczIDAtMzIgMTIuODk0LTMyIDI4Ljh2MjMwLjRDMCA0MzUuMTA2IDE0LjMyNyA0NDggMzIgNDQ4aDY0YzguNTg0IDAgMTYuMzczLTMuMDQ4IDIyLjEyLThoMi42NzljMjguNjg4IDAgNjcuMTM3IDQwIDEyNy4yIDQwaDIxLjI5OWM2Mi41NDIgMCA5OC44LTM4LjY1OCA5OS45NC05MS4xNDUgMTIuNDgyLTE3LjgxMyAxOC40OTEtNDAuNzg1IDE1Ljk4NS02Mi43OTFBOTMuMTQ4IDkzLjE0OCAwIDAgMCAzOTMuMTUyIDMwNEg0MjguOGM0NS40MzUgMCA4My4yLTM3LjU4NCA4My4yLTgzLjIgMC00NS4wOTktMzguMTAxLTgzLjItODMuMi04My4yem0wIDExOC40aC05MS4wMjZjMTIuODM3IDE0LjY2OSAxNC40MTUgNDIuODI1LTQuOTUgNjEuMDUgMTEuMjI3IDE5LjY0NiAxLjY4NyA0NS42MjQtMTIuOTI1IDUzLjYyNSA2LjUyNCAzOS4xMjgtMTAuMDc2IDYxLjMyNS01MC42IDYxLjMyNUgyNDhjLTQ1LjQ5MSAwLTc3LjIxLTM1LjkxMy0xMjAtMzkuNjc2VjIxNS41NzFjMjUuMjM5LTIuOTY0IDQyLjk2Ni0yMS4yMjIgNTkuMDc1LTM5LjU5NiAxMS4yNzUtMTIuNjUgMjEuNzI1LTI1LjMgMzAuNzk5LTM5Ljg3NUMyMzIuMzU1IDExMi43MTIgMjQ0LjAwNiA4MCAyNTIuOCA4MGMyMy4zNzUgMCA0NCA4LjggNDQgMzUuMiAwIDM1LjItMjYuNCA1My4wNzUtMjYuNCA3MC40aDE1OC40YzE4LjQyNSAwIDM1LjIgMTYuNSAzNS4yIDM1LjIgMCAxOC45NzUtMTYuMjI1IDM1LjItMzUuMiAzNS4yek04OCAzODRjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0cy0yNC0xMC43NDUtMjQtMjQgMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuNiA4My4ydjg2LjE3N2ExMTUuNTIgMTE1LjUyIDAgMCAwLTIyLjQtMi4xNzZjLTQ3LjkxNCAwLTgzLjIgMzUuMDcyLTgzLjIgOTIgMCA0NS4zMTQgNDguNTM3IDU3LjAwMiA3OC43ODQgNzUuNzA3IDEyLjQxMyA3LjczNSAyMy4zMTcgMTYuOTk0IDMzLjI1MyAyNS44NTFsLjE0Ni4xMzEuMTQ4LjEyOUMxMjkuODA3IDM3Ni4zMzggMTM2IDM4NC4yMzYgMTM2IDM5MS4ydjIuNjc5Yy00Ljk1MiA1Ljc0Ny04IDEzLjUzNi04IDIyLjEydjY0YzAgMTcuNjczIDEyLjg5NCAzMiAyOC44IDMyaDIzMC40YzE1LjkwNiAwIDI4LjgtMTQuMzI3IDI4LjgtMzJ2LTY0YzAtOC41ODQtMy4wNDgtMTYuMzczLTgtMjIuMTJWMzkxLjJjMC0yOC42ODggNDAtNjcuMTM3IDQwLTEyNy4ydi0yMS4yOTljMC02Mi41NDItMzguNjU4LTk4LjgtOTEuMTQ1LTk5Ljk0LTE3LjgxMy0xMi40ODItNDAuNzg1LTE4LjQ5MS02Mi43OTEtMTUuOTg1QTkzLjE0OCA5My4xNDggMCAwIDAgMjcyIDExOC44NDdWODMuMkMyNzIgMzcuNzY1IDIzNC40MTYgMCAxODguOCAwYy00NS4wOTkgMC04My4yIDM4LjEwMS04My4yIDgzLjJ6bTExOC40IDB2OTEuMDI2YzE0LjY2OS0xMi44MzcgNDIuODI1LTE0LjQxNSA2MS4wNSA0Ljk1IDE5LjY0Ni0xMS4yMjcgNDUuNjI0LTEuNjg3IDUzLjYyNSAxMi45MjUgMzkuMTI4LTYuNTI0IDYxLjMyNSAxMC4wNzYgNjEuMzI1IDUwLjZWMjY0YzAgNDUuNDkxLTM1LjkxMyA3Ny4yMS0zOS42NzYgMTIwSDE4My41NzFjLTIuOTY0LTI1LjIzOS0yMS4yMjItNDIuOTY2LTM5LjU5Ni01OS4wNzUtMTIuNjUtMTEuMjc1LTI1LjMtMjEuNzI1LTM5Ljg3NS0zMC43OTlDODAuNzEyIDI3OS42NDUgNDggMjY3Ljk5NCA0OCAyNTkuMmMwLTIzLjM3NSA4LjgtNDQgMzUuMi00NCAzNS4yIDAgNTMuMDc1IDI2LjQgNzAuNCAyNi40VjgzLjJjMC0xOC40MjUgMTYuNS0zNS4yIDM1LjItMzUuMiAxOC45NzUgMCAzNS4yIDE2LjIyNSAzNS4yIDM1LjJ6TTM1MiA0MjRjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0cy0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTguMTgyIDE3OS4zNjFjLTE5LjQ5My0yNC43NjgtNTIuNjc5LTMxLjk0NS03OS44NzItMTkuMDk4LTE1LjEyNy0xNS42ODctMzYuMTgyLTIyLjQ4Ny01Ni41OTUtMTkuNjI5VjY3YzAtMzYuOTQ0LTI5LjczNi02Ny02Ni4yODYtNjdTODkuMTQzIDMwLjA1NiA4OS4xNDMgNjd2MTYxLjEyOWMtMTkuOTA5LTcuNDEtNDMuMjcyLTUuMDk0LTYyLjA4MyA4Ljg3Mi0yOS4zNTUgMjEuNzk1LTM1Ljc5MyA2My4zMzMtMTQuNTUgOTMuMTUybDEwOS42OTkgMTU0LjAwMUMxMzQuNjMyIDUwMS41OSAxNTQuNzQxIDUxMiAxNzYgNTEyaDE3OC4yODZjMzAuODAyIDAgNTcuNTc0LTIxLjUgNjQuNTU3LTUxLjc5N2wyNy40MjktMTE4Ljk5OUE2Ny44NzMgNjcuODczIDAgMCAwIDQ0OCAzMjZ2LTg0YzAtNDYuODQ0LTQ2LjYyNS03OS4yNzMtODkuODE4LTYyLjYzOXpNODAuOTg1IDI3OS42OTdsMjcuMTI2IDM4LjA3OWM4Ljk5NSAxMi42MjYgMjkuMDMxIDYuMjg3IDI5LjAzMS05LjI4M1Y2N2MwLTI1LjEyIDM2LjU3MS0yNS4xNiAzNi41NzEgMHYxNzVjMCA4LjgzNiA3LjE2MyAxNiAxNiAxNmg2Ljg1N2M4LjgzNyAwIDE2LTcuMTY0IDE2LTE2di0zNWMwLTI1LjEyIDM2LjU3MS0yNS4xNiAzNi41NzEgMHYzNWMwIDguODM2IDcuMTYzIDE2IDE2IDE2SDI3MmM4LjgzNyAwIDE2LTcuMTY0IDE2LTE2di0yMWMwLTI1LjEyIDM2LjU3MS0yNS4xNiAzNi41NzEgMHYyMWMwIDguODM2IDcuMTYzIDE2IDE2IDE2aDYuODU3YzguODM3IDAgMTYtNy4xNjQgMTYtMTYgMC0yNS4xMjEgMzYuNTcxLTI1LjE2IDM2LjU3MSAwdjg0YzAgMS40ODgtLjE2OSAyLjk3Ny0uNTAyIDQuNDIzbC0yNy40MyAxMTkuMDAxYy0xLjk3OCA4LjU4Mi05LjI5IDE0LjU3Ni0xNy43ODIgMTQuNTc2SDE3NmMtNS43NjkgMC0xMS4yNjMtMi44NzgtMTQuNjk3LTcuNjk3bC0xMDkuNzEyLTE1NGMtMTQuNDA2LTIwLjIyMyAxNC45OTQtNDIuODE4IDI5LjM5NC0yMi42MDZ6TTE3Ni4xNDMgNDAwdi05NmMwLTguODM3IDYuMjY4LTE2IDE0LTE2aDZjNy43MzIgMCAxNCA3LjE2MyAxNCAxNnY5NmMwIDguODM3LTYuMjY4IDE2LTE0IDE2aC02Yy03LjczMyAwLTE0LTcuMTYzLTE0LTE2em03NS40MjggMHYtOTZjMC04LjgzNyA2LjI2OC0xNiAxNC0xNmg2YzcuNzMyIDAgMTQgNy4xNjMgMTQgMTZ2OTZjMCA4LjgzNy02LjI2OCAxNi0xNCAxNmgtNmMtNy43MzIgMC0xNC03LjE2My0xNC0xNnpNMzI3IDQwMHYtOTZjMC04LjgzNyA2LjI2OC0xNiAxNC0xNmg2YzcuNzMyIDAgMTQgNy4xNjMgMTQgMTZ2OTZjMCA4LjgzNy02LjI2OCAxNi0xNCAxNmgtNmMtNy43MzIgMC0xNC03LjE2My0xNC0xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUm9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDguODY0IDc5LjA1MmMtMjIuNDAxLTMzLjg5OC02Ni4xMDgtNDIuMjczLTk4LjgxMy0yMy41ODgtMjkuNDc0LTMxLjQ2OS03OS4xNDUtMzEuMDkzLTEwOC4zMzQtLjAyMi00Ny4xNi0yNy4wMi0xMDguNzEgNS4wNTUtMTEwLjY3MSA2MC44MDZDNDQuODQ2IDEwNS40MDcgMCAxNDAuMDAxIDAgMTg3LjQyOXY1Ni45NTNjMCAzMi43NDEgMTQuMjggNjMuOTU0IDM5LjE4IDg1LjYzNGw5Ny43MSA4NS4wODFjNC4yNTIgMy43MDIgMy4xMSA1LjU3MyAzLjExIDMyLjkwMyAwIDE3LjY3MyAxNC4zMjcgMzIgMzIgMzJoMjUyYzE3LjY3MyAwIDMyLTE0LjMyNyAzMi0zMiAwLTIzLjUxMy0xLjAxNS0zMC43NDUgMy45ODItNDIuMzdsNDIuODM1LTk5LjY1NmM2LjA5NC0xNC4xNzcgOS4xODMtMjkuMTcyIDkuMTgzLTQ0LjU2OFYxNDYuOTYzYzAtNTIuODM5LTU0LjMxNC04OC42NjItMTAzLjEzNi02Ny45MTF6TTQ2NCAyNjEuNDA2YTY0LjUwNSA2NC41MDUgMCAwIDEtNS4yODIgMjUuNjEzbC00Mi44MzUgOTkuNjU1Yy01LjIzIDEyLjE3MS03Ljg4MyAyNS4wNC03Ljg4MyAzOC4yNVY0MzJIMTg4di0xMC4yODZjMC0xNi4zNy03LjE0LTMxLjk3Ny0xOS41OS00Mi44MTdsLTk3LjcxLTg1LjA4QzU2LjI3NCAyODEuMjU1IDQ4IDI2My4yMzYgNDggMjQ0LjM4MXYtNTYuOTUzYzAtMzMuMjA4IDUyLTMzLjUzNyA1MiAuNjc3djQxLjIyOGExNiAxNiAwIDAgMCA1LjQ5MyAxMi4wNjdsNyA2LjA5NUExNiAxNiAwIDAgMCAxMzkgMjM1LjQyOVYxMTguODU3YzAtMzMuMDk3IDUyLTMzLjcyNSA1MiAuNjc3djI2Ljc1MWMwIDguODM2IDcuMTY0IDE2IDE2IDE2aDdjOC44MzYgMCAxNi03LjE2NCAxNi0xNnYtNDEuMTQzYzAtMzMuMTM0IDUyLTMzLjY3NSA1MiAuNjc3djQwLjQ2NmMwIDguODM2IDcuMTYzIDE2IDE2IDE2aDdjOC44MzcgMCAxNi03LjE2NCAxNi0xNnYtMjcuNDI5YzAtMzMuMDMgNTItMzMuNzggNTIgLjY3N3YyNi43NTFjMCA4LjgzNiA3LjE2MyAxNiAxNiAxNmg3YzguODM3IDAgMTYtNy4xNjQgMTYtMTYgMC0zMy4xNDYgNTItMzMuNjEzIDUyIC42Nzd2MTE0LjQ0NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kU2Npc3NvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4MGw3MC0uMDEzYzUuMTE0IDAgMTAuMjMxLS41ODMgMTUuMjAzLTEuNzI5bDExOC45OTktMjcuNDI3QzQ5MC41NiA0NDMuODM1IDUxMiA0MTcuMDIgNTEyIDM4Ni4yNzdWMTgwLjU3NWMwLTIzLjg0NS0xMy4wMy00NS45NTEtMzQuMDA1LTU3LjY5bC05Ny45OTktNTQuODUzYy0zNC40MDktMTkuMjYxLTY3LjI2My01LjgyNC05Mi4yMTggMjQuNzMzTDE0Mi44NSAzNy4wMDhjLTM3Ljg4Ny0xNC41NzktODAuNjEyIDMuNzI3LTk1LjY0MiA0MS4yMDEtMTUuMDk4IDM3LjY0MiAzLjYzNSA4MC4zNyA0MS45NDIgOTUuMTEyTDE2OCAxOTJsLTk0LTkuMTQxYy00MC44MDQgMC03NCAzMi44MTEtNzQgNzMuMTQgMCA0MC4zMyAzMy4xOTYgNzMuMTQxIDc0IDczLjE0MWg4Ny42MzVjLTMuNjc1IDI2LjI0NSA4LjY5MiA1MS4yOTcgMzAuMzQxIDY1LjAwNkMxNzguNjU3IDQzNi43MzcgMjExLjA0NCA0ODAgMjU2IDQ4MHptMC00OC4wMTNjLTI1LjE2IDAtMjUuMTItMzYuNTY3IDAtMzYuNTY3IDguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTYuODU2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTI4Yy0yNS4xNTkgMC0yNS4xMjItMzYuNTY3IDAtMzYuNTY3aDI4YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTYuODU2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZINzRjLTM0LjQzIDAtMzQuMzc1LTUwLjI4MSAwLTUwLjI4MWgxODJjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtMTEuNjMyYTE2IDE2IDAgMCAwLTEwLjI1NC0xNC45MzNMMTA2LjM4OSAxMjguNTFjLTMxLjU1Mi0xMi4xNC0xMy40MzItNTkuMjgzIDE5LjIyMi00Ni43MTdsMTY2LjU0OSA2NC4wOTFhMTYuMDAxIDE2LjAwMSAwIDAgMCAxOC4xMzktNC44MTJsMjEuNzY0LTI2LjY0N2M1LjgyLTcuMTI3IDE2LjM0OC05LjA2NCAyNC40ODgtNC41MDhsOTggNTQuODU0YzUuODI4IDMuMjYzIDkuNDQ5IDkuMzE4IDkuNDQ5IDE1LjgwNXYyMDUuNzAxYzAgOC40OTEtNS45OTQgMTUuODA0LTE0LjU3NiAxNy43ODJsLTExOS4wMDEgMjcuNDI3YTE5Ljc0MyAxOS43NDMgMCAwIDEtNC40MjMuNTAyaC03MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kU3BvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjAzMDUzLDExNi4xNzYwNWMtMTkuMzkwNTktMzEuNTA3NzktNTEuMjQ0MDYtMzUuNzI4NDktNjYuMzEwNDQtMzUuMDE3NTYtMTQuMTEzMjUtNTAuODEwNTEtNjIuMDAzOC01NC4wOC03MC43MzgxNi01NC4wOGE3NC4wMzA5MSw3NC4wMzA5MSwwLDAsMC03Mi4yMzgxNiw1OC45MTZsLTQuNjQ2NDgsMjIuNjYwMTQtMTMuNjgzNTctNTMuMjA3Yy05LjA5NTY5LTM1LjM3MTA3LTQ2LjQxMi02NC4wNTA3NC04OS42Ni01My4wNzIyM2E3My44OTc0OSw3My44OTc0OSwwLDAsMC01NS4xMjEsNzguOTQ3MjIsNzMuNjgyNzMsNzMuNjgyNzMsMCwwLDAtNjQuODQ5NSw5NC40MjE4MWwyNC4zNTkzMyw4Mi4xOTcyMWMtMzguMjQwMTctNy41NDQ5Mi02Mi43OTY3NywxNi4xODM1OC02OC4xMTUxMiwyMS44NDc2NGE3My42NzkxLDczLjY3OTEsMCwwLDAsMy4xOTkyMSwxMDQuMTkzMjlsOTEuMzY1MDksODUuOTc2NUExNTQuMTY0LDE1NC4xNjQsMCwwLDAsMjIwLjYyMjc5LDUxMmgxMDcuNDU0OUExMjcuMzAwNzksMTI3LjMwMDc5LDAsMCwwLDQ1Mi4zMzkyLDQxMy44NjEzOWw1Ny42MjMtMjQxLjk2MjcyQTczLjIwMjc0LDczLjIwMjc0LDAsMCwwLDUwMS4wMzA1MywxMTYuMTc2MDVabS0zNy43NTk3LDQ0LjYwNTQ0TDQwNS42NDc4OCw0MDIuNzQ4MTJhNzkuNDY2MTYsNzkuNDY2MTYsMCwwLDEtNzcuNTcwMTksNjEuMjU5NzJIMjIwLjYyMjc5YTEwNi4zNDA1MiwxMDYuMzQwNTIsMCwwLDEtNzMuMTM2Ni0yOC45OThsLTkxLjM2OS04NS45ODA0MUMzMS4zNDM4MSwzMjUuNzI2NjksNjYuNjExMzMsMjg4LjEzMSw5MS4zOTY0NCwzMTEuNTM5Mmw1MS4xMjMsNDguMTA3MzljNS40MjU3Nyw1LjEwOTM3LDEzLjQ4MjM5LjcxNjc5LDEzLjQ4MjM5LTUuODI2MTdhMjQ2Ljc5OTE0LDI0Ni43OTkxNCwwLDAsMC0xMC4xNzc3MS03MC4xNTIzbC0zNi4wMTM2Mi0xMjEuNTM5Yy05LjczMjQtMzIuODgyNzksMzkuNjk5MTYtNDcuMjcxNDUsNDkuMzg2NjQtMTQuNjI1bDMxLjM0MzcsMTA1Ljc3OTIzYzUuNTkzNzQsMTguOTA0MjgsMzMuNzgxMTksMTAuNzEyODgsMjguOTY0OC04LjAwNzgxTDE3Ny4wNjQyNyw4MC4yMzY2MmMtOC41MDM4OS0zMy4xMDM1LDQxLjQzMTU3LTQ1LjY0NjQ2LDQ5Ljg2NTE1LTEyLjgzNTkzbDQ3LjMyNjA5LDE4NC4wMzVjNC40Mjc3MywxNy4yNDIxOCwyOS4xNjIwNywxNi41MDM5LDMyLjcxMDg5LS44MDQ2OGwzMS43OTEtMTU0Ljk3MDZjNi44MTA1NC0zMy4xMDc0LDU3LjUxNzQ4LTI0LjEwNzQxLDUwLjExOTA2LDExLjk2Mjg4TDM2MC4zMjc2NCwyNDYuNzg5MjRjLTMuNzIyNjUsMTguMTA5MzYsMjMuNjY3OTMsMjQuNjMwODQsMjguMDU2NTksNi4yMTY3OUw0MTMuMTg1LDE0OC44NTk2MkM0MjEuMTQ5OCwxMTUuNTEyLDQ3MS4xNCwxMjcuNzk3MTMsNDYzLjI3MDgzLDE2MC43ODE0OVpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTE5LjIgMTI3LjlsLTQ3LjYtNDcuNkE1Ni4yNTIgNTYuMjUyIDAgMCAwIDQzMiA2NEgyMDUuMmMtMTQuOCAwLTI5LjEgNS45LTM5LjYgMTYuM0wxMTggMTI3LjlIMHYyNTUuN2g2NGMxNy42IDAgMzEuOC0xNC4yIDMxLjktMzEuN2g5LjFsODQuNiA3Ni40YzMwLjkgMjUuMSA3My44IDI1LjcgMTA1LjYgMy44IDEyLjUgMTAuOCAyNiAxNS45IDQxLjEgMTUuOSAxOC4yIDAgMzUuMy03LjQgNDguOC0yNCAyMi4xIDguNyA0OC4yIDIuNiA2NC0xNi44bDI2LjItMzIuM2M1LjYtNi45IDkuMS0xNC44IDEwLjktMjNoNTcuOWMuMSAxNy41IDE0LjQgMzEuNyAzMS45IDMxLjdoNjRWMTI3LjlINTE5LjJ6TTQ4IDM1MS42Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNmMwIDguOS03LjIgMTYtMTYgMTZ6bTM5MC02LjlsLTI2LjEgMzIuMmMtMi44IDMuNC03LjggNC0xMS4zIDEuMmwtMjMuOS0xOS40LTMwIDM2LjVjLTYgNy4zLTE1IDQuOC0xOCAyLjRsLTM2LjgtMzEuNS0xNS42IDE5LjJjLTEzLjkgMTcuMS0zOS4yIDE5LjctNTUuMyA2LjZsLTk3LjMtODhIOTZWMTc1LjhoNDEuOWw2MS43LTYxLjZjMi0uOCAzLjctMS41IDUuNy0yLjNIMjYybC0zOC43IDM1LjVjLTI5LjQgMjYuOS0zMS4xIDcyLjMtNC40IDEwMS4zIDE0LjggMTYuMiA2MS4yIDQxLjIgMTAxLjUgNC40bDguMi03LjUgMTA4LjIgODcuOGMzLjQgMi44IDMuOSA3LjkgMS4yIDExLjN6bTEwNi00MC44aC02OS4yYy0yLjMtMi44LTQuOS01LjQtNy43LTcuN2wtMTAyLjctODMuNCAxMi41LTExLjRjNi41LTYgNy0xNi4xIDEtMjIuNkwzNjcgMTY3LjFjLTYtNi41LTE2LjEtNi45LTIyLjYtMWwtNTUuMiA1MC42Yy05LjUgOC43LTI1LjcgOS40LTM0LjYgMC05LjMtOS45LTguNS0yNS4xIDEuMi0zMy45bDY1LjYtNjAuMWM3LjQtNi44IDE3LTEwLjUgMjctMTAuNWw4My43LS4yYzIuMSAwIDQuMS44IDUuNSAyLjNsNjEuNyA2MS42SDU0NHYxMjh6bTQ4IDQ3LjdjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2YzAgOC45LTcuMiAxNi0xNiAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY3LjQwMyAyMzUuNjQyTDQ2Mi4zMjMgODQuNTg5QTQ4IDQ4IDAgMCAwIDQyMi45MTkgNjRIMTUzLjA4MWE0OCA0OCAwIDAgMC0zOS40MDQgMjAuNTg5TDguNTk3IDIzNS42NDJBNDguMDAxIDQ4LjAwMSAwIDAgMCAwIDI2My4wNTRWNDAwYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDgwYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjYzLjA1NGMwLTkuODAxLTMtMTkuMzY2LTguNTk3LTI3LjQxMnpNMTUzLjA4MSAxMTJoMjY5LjgzOGw3Ny45MTMgMTEySDc1LjE2OGw3Ny45MTMtMTEyek01MjggNDAwSDQ4VjI3Mmg0ODB2MTI4em0tMzItNjRjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMycy0zMi0xNC4zMjctMzItMzIgMTQuMzI3LTMyIDMyLTMyIDMyIDE0LjMyNyAzMiAzMnptLTk2IDBjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMycy0zMi0xNC4zMjctMzItMzIgMTQuMzI3LTMyIDMyLTMyIDMyIDE0LjMyNyAzMiAzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTguNCA2NC4zQzQwMC42IDE1LjcgMzExLjMgMjMgMjU2IDc5LjMgMjAwLjcgMjMgMTExLjQgMTUuNiA1My42IDY0LjMtMjEuNiAxMjcuNi0xMC42IDIzMC44IDQzIDI4NS41bDE3NS40IDE3OC43YzEwIDEwLjIgMjMuNCAxNS45IDM3LjYgMTUuOSAxNC4zIDAgMjcuNi01LjYgMzcuNi0xNS44TDQ2OSAyODUuNmM1My41LTU0LjcgNjQuNy0xNTcuOS0xMC42LTIyMS4zem0tMjMuNiAxODcuNUwyNTkuNCA0MzAuNWMtMi40IDIuNC00LjQgMi40LTYuOCAwTDc3LjIgMjUxLjhjLTM2LjUtMzcuMi00My45LTEwNy42IDcuMy0xNTAuNyAzOC45LTMyLjcgOTguOS0yNy44IDEzNi41IDEwLjVsMzUgMzUuNyAzNS0zNS43YzM3LjgtMzguNSA5Ny44LTQzLjIgMTM2LjUtMTAuNiA1MS4xIDQzLjEgNDMuNSAxMTMuOSA3LjMgMTUwLjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSG9zcGl0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDI0NHYtNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwYzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0xNDAgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnptLTc2IDg0di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTc2IDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ6bTE4MCAxMjR2MzZIMHYtMzZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxOS41Vjg1LjAzNUMzMS41IDczLjQxOCA0Mi4yNDUgNjQgNTUuNSA2NEgxNDRWMjRjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDExMmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2NDBoODguNWMxMy4yNTUgMCAyNCA5LjQxOCAyNCAyMS4wMzVWNDY0SDQzNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEyek03OS41IDQ2M0gxOTJ2LTY3YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY2N2gxMTIuNVYxMTJIMzA0djI0YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgxNjhjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHYtMjRINzkuNXYzNTF6TTI2NiA2NGgtMjZWMzhhNiA2IDAgMCAwLTYtNmgtMjBhNiA2IDAgMCAwLTYgNnYyNmgtMjZhNiA2IDAgMCAwLTYgNnYyMGE2IDYgMCAwIDAgNiA2aDI2djI2YTYgNiAwIDAgMCA2IDZoMjBhNiA2IDAgMCAwIDYtNlY5NmgyNmE2IDYgMCAwIDAgNi02VjcwYTYgNiAwIDAgMC02LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSG91cmdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA0OGg0YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAwIDAgNS4zNzMgMCAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDRjMCA4MC41NjQgMzIuMTg4IDE2NS44MDcgOTcuMTggMjA4QzQ3Ljg5OSAyOTguMzgxIDE2IDM4My45IDE2IDQ2NGgtNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDM2MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0yNGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00YzAtODAuNTY0LTMyLjE4OC0xNjUuODA3LTk3LjE4LTIwOEMzMzYuMTAyIDIxMy42MTkgMzY4IDEyOC4xIDM2OCA0OHpNNjQgNDhoMjU2YzAgMTAxLjYyLTU3LjMwNyAxODQtMTI4IDE4NFM2NCAxNDkuNjIxIDY0IDQ4em0yNTYgNDE2SDY0YzAtMTAxLjYyIDU3LjMwOC0xODQgMTI4LTE4NHMxMjggODIuMzggMTI4IDE4NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJZEJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDQ2NEg0OFY0OGgyODh2NDE2ek0xNDQgMTEyaDk2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2aC05NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNnptNDggMTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptLTg5LjYgMTI4aDE3OS4yYzEyLjQgMCAyMi40LTguNiAyMi40LTE5LjJ2LTE5LjJjMC0zMS44LTMwLjEtNTcuNi02Ny4yLTU3LjYtMTAuOCAwLTE4LjcgOC00NC44IDgtMjYuOSAwLTMzLjQtOC00NC44LTgtMzcuMSAwLTY3LjIgMjUuOC02Ny4yIDU3LjZ2MTkuMmMwIDEwLjYgMTAgMTkuMiAyMi40IDE5LjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSWRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bTAgNDAwSDMwMy4yYy45LTQuNS44IDMuNi44LTIyLjQgMC0zMS44LTMwLjEtNTcuNi02Ny4yLTU3LjYtMTAuOCAwLTE4LjcgOC00NC44IDgtMjYuOSAwLTMzLjQtOC00NC44LTgtMzcuMSAwLTY3LjIgMjUuOC02Ny4yIDU3LjYgMCAyNi0uMiAxNy45LjggMjIuNEg0OFYxNDRoNDgwdjI4OHptLTE2OC04MGgxMTJjNC40IDAgOC0zLjYgOC04di0xNmMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4em0wLTY0aDExMmM0LjQgMCA4LTMuNiA4LTh2LTE2YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6bTAtNjRoMTEyYzQuNCAwIDgtMy42IDgtOHYtMTZjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptLTE2OCA5NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTEyYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS02IDMzNkg1NGE2IDYgMCAwIDEtNi02VjExOGE2IDYgMCAwIDEgNi02aDQwNGE2IDYgMCAwIDEgNiA2djI3NmE2IDYgMCAwIDEtNiA2ek0xMjggMTUyYy0yMi4wOTEgMC00MCAxNy45MDktNDAgNDBzMTcuOTA5IDQwIDQwIDQwIDQwLTE3LjkwOSA0MC00MC0xNy45MDktNDAtNDAtNDB6TTk2IDM1MmgzMjB2LTgwbC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMTkyIDMwNGwtMzkuNTE1LTM5LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDk2IDMwNHY0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJbWFnZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDQxNnYxNmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjE3NmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDE2djQ4SDU0YTYgNiAwIDAgMC02IDZ2MjQ0YTYgNiAwIDAgMCA2IDZoMzcyYTYgNiAwIDAgMCA2LTZ2LTEwaDQ4em00Mi0zMzZIMTUwYTYgNiAwIDAgMC02IDZ2MjQ0YTYgNiAwIDAgMCA2IDZoMzcyYTYgNiAwIDAgMCA2LTZWODZhNiA2IDAgMCAwLTYtNnptNi00OGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI1NmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDE0NGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM4NHpNMjY0IDE0NGMwIDIyLjA5MS0xNy45MDkgNDAtNDAgNDBzLTQwLTE3LjkwOS00MC00MCAxNy45MDktNDAgNDAtNDAgNDAgMTcuOTA5IDQwIDQwem0tNzIgOTZsMzkuNTE1LTM5LjUxNWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMjg4IDI0MGwxMDMuNTE1LTEwMy41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDQ4MCAyMDh2ODBIMTkydi00OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdLZXlib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0ODBjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMTJjMC0yNi41MS0yMS40OS00OC00OC00OHptOCAzMzZjMCA0LjQxMS0zLjU4OSA4LTggOEg0OGMtNC40MTEgMC04LTMuNTg5LTgtOFYxMTJjMC00LjQxMSAzLjU4OS04IDgtOGg0ODBjNC40MTEgMCA4IDMuNTg5IDggOHYyODh6TTE3MCAyNzB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTMzNiA4MnYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMkg4MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTM4NCAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6TTEyMiAxODh2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJIODJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS05OCAxNTh2LTE2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTgwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjE2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjE2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnS2lzc0JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4IDE1MmMtMjMuOCAwLTUyLjcgMjkuMy01NiA3MS40LS4zIDMuNyAyIDcuMiA1LjYgOC4zIDMuNSAxIDcuNS0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA1LjktNC41IDUuNi04LjMtMy4xLTQyLjEtMzItNzEuNC01NS44LTcxLjR6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptNTYtMTQ4YzAtMTkuMi0yOC44LTQxLjUtNzEuNS00NC0zLjgtLjQtNy40IDIuNC04LjIgNi4yLS45IDMuOCAxLjEgNy43IDQuNyA5LjJsMTYuOSA3LjJjMTMgNS41IDIwLjggMTMuNSAyMC44IDIxLjVzLTcuOCAxNi0yMC43IDIxLjVsLTE3IDcuMmMtNS43IDIuNC02IDEyLjIgMCAxNC44bDE2LjkgNy4yYzEzIDUuNSAyMC44IDEzLjUgMjAuOCAyMS41cy03LjggMTYtMjAuNyAyMS41bC0xNyA3LjJjLTMuNiAxLjUtNS42IDUuNC00LjcgOS4yLjggMy42IDQuMSA2LjIgNy44IDYuMmguNWM0Mi44LTIuNSA3MS41LTI0LjggNzEuNS00NCAwLTEzLTEzLjQtMjcuMy0zNS4yLTM2QzI5MC42IDMzNS4zIDMwNCAzMjEgMzA0IDMwOHptMjQtMTU2Yy0yMy44IDAtNTIuNyAyOS4zLTU2IDcxLjQtLjMgMy43IDIgNy4yIDUuNiA4LjMgMy41IDEgNy41LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDUuOS00LjUgNS42LTguMy0zLjEtNDIuMS0zMi03MS40LTU1LjgtNzEuNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdLaXNzV2lua0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAzMDguNWMwLTE5LjItMjguOC00MS41LTcxLjUtNDQtMy44LS40LTcuNCAyLjQtOC4yIDYuMi0uOSAzLjggMS4xIDcuNyA0LjcgOS4ybDE2LjkgNy4yYzEzIDUuNSAyMC44IDEzLjUgMjAuOCAyMS41cy03LjggMTYtMjAuNyAyMS41bC0xNyA3LjJjLTUuNyAyLjQtNiAxMi4yIDAgMTQuOGwxNi45IDcuMmMxMyA1LjUgMjAuOCAxMy41IDIwLjggMjEuNXMtNy44IDE2LTIwLjcgMjEuNWwtMTcgNy4yYy0zLjYgMS41LTUuNiA1LjQtNC43IDkuMi44IDMuNiA0LjEgNi4yIDcuOCA2LjJoLjVjNDIuOC0yLjUgNzEuNS0yNC44IDcxLjUtNDQgMC0xMy0xMy40LTI3LjMtMzUuMi0zNiAyMS43LTkuMSAzNS4xLTIzLjQgMzUuMS0zNi40em03MC41LTgzLjVsOS41IDguNWMzLjggMy4zIDkuMyA0IDEzLjcgMS42IDQuNC0yLjQgNi45LTcuNCA2LjEtMTIuNC00LTI1LjItMzQuMi00Mi4xLTU5LjgtNDIuMXMtNTUuOSAxNi45LTU5LjggNDIuMWMtLjggNSAxLjcgMTAgNi4xIDEyLjQgNS44IDMuMSAxMS4yLjcgMTMuNy0xLjZsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDB6TTEzNiAyMDguNWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMzY1LjEgMTk0Yy04LTIwLjgtMzEuNS0zMS41LTUzLjEtMjUuOWwtOC40IDIuMi0yLjMtOC40Yy01LjktMjEuNC0yNy0zNi41LTQ5LTMzLTI1LjIgNC00MC42IDI4LjYtMzQgNTIuNmwyMi45IDgyLjZjMS41IDUuMyA3IDguNSAxMi40IDcuMWw4My0yMS41YzI0LjEtNi4zIDM3LjctMzEuOCAyOC41LTU1Ljd6TTMzNCA0MzYuM2MtMjYuMSAxMi41LTU1LjIgMTkuNy04NiAxOS43LTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMGMwIDIyLjEtMy43IDQzLjMtMTAuNCA2My4yIDkgNi40IDE3IDE0LjIgMjIuNiAyMy45IDYuNC4xIDEyLjYgMS40IDE4LjYgMi45IDEwLjktMjcuOSAxNy4xLTU4LjIgMTcuMS05MEM0OTYgMTE5IDM4NSA4IDI0OCA4UzAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OGMzNS40IDAgNjguOS03LjUgOTkuNC0yMC45LTIuNS03LjMgNC4zIDE3LjItMTMuNC00Ni44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0tpc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bTEzNiAxMzJjMC0xOS4yLTI4LjgtNDEuNS03MS41LTQ0LTMuOC0uNC03LjQgMi40LTguMiA2LjItLjkgMy44IDEuMSA3LjcgNC43IDkuMmwxNi45IDcuMmMxMyA1LjUgMjAuOCAxMy41IDIwLjggMjEuNXMtNy44IDE2LTIwLjcgMjEuNWwtMTcgNy4yYy01LjcgMi40LTYgMTIuMiAwIDE0LjhsMTYuOSA3LjJjMTMgNS41IDIwLjggMTMuNSAyMC44IDIxLjVzLTcuOCAxNi0yMC43IDIxLjVsLTE3IDcuMmMtMy42IDEuNS01LjYgNS40LTQuNyA5LjIuOCAzLjYgNC4xIDYuMiA3LjggNi4yaC41YzQyLjgtMi41IDcxLjUtMjQuOCA3MS41LTQ0IDAtMTMtMTMuNC0yNy4zLTM1LjItMzZDMjkwLjYgMzM1LjMgMzA0IDMyMSAzMDQgMzA4ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTgwLTI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGF1Z2hCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0MS40IDM4OS40Yy0zNy44IDM3LjgtODggNTguNi0xNDEuNCA1OC42cy0xMDMuNi0yMC44LTE0MS40LTU4LjZTNDggMzA5LjQgNDggMjU2czIwLjgtMTAzLjYgNTguNi0xNDEuNFMxOTQuNiA1NiAyNDggNTZzMTAzLjYgMjAuOCAxNDEuNCA1OC42UzQ0OCAyMDIuNiA0NDggMjU2cy0yMC44IDEwMy42LTU4LjYgMTQxLjR6TTMyOCAxNTJjLTIzLjggMC01Mi43IDI5LjMtNTYgNzEuNC0uNyA4LjYgMTAuOCAxMS45IDE0LjkgNC41bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjNC4xIDcuNCAxNS42IDQgMTQuOS00LjUtMy4xLTQyLjEtMzItNzEuNC01NS44LTcxLjR6bS0yMDEgNzUuOWw5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzQuMSA3LjQgMTUuNiA0IDE0LjktNC41LTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40cy01Mi43IDI5LjMtNTYgNzEuNGMtLjYgOC41IDEwLjkgMTEuOSAxNS4xIDQuNXpNMzYyLjQgMjg4SDEzMy42Yy04LjIgMC0xNC41IDctMTMuNSAxNSA3LjUgNTkuMiA1OC45IDEwNSAxMjEuMSAxMDVoMTMuNmM2Mi4yIDAgMTEzLjYtNDUuOCAxMjEuMS0xMDUgMS04LTUuMy0xNS0xMy41LTE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xhdWdoU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0MS40IDM4OS40Yy0zNy44IDM3LjgtODggNTguNi0xNDEuNCA1OC42cy0xMDMuNi0yMC44LTE0MS40LTU4LjZTNDggMzA5LjQgNDggMjU2czIwLjgtMTAzLjYgNTguNi0xNDEuNFMxOTQuNiA1NiAyNDggNTZzMTAzLjYgMjAuOCAxNDEuNCA1OC42UzQ0OCAyMDIuNiA0NDggMjU2cy0yMC44IDEwMy42LTU4LjYgMTQxLjR6TTM0My42IDE5NmwzMy42LTQwLjNjOC42LTEwLjMtMy44LTI0LjgtMTUuNC0xOGwtODAgNDhjLTcuOCA0LjctNy44IDE1LjkgMCAyMC42bDgwIDQ4YzExLjUgNi44IDI0LTcuNiAxNS40LTE4TDM0My42IDE5NnptLTIwOS40IDU4LjNsODAtNDhjNy44LTQuNyA3LjgtMTUuOSAwLTIwLjZsLTgwLTQ4Yy0xMS42LTYuOS0yNCA3LjctMTUuNCAxOGwzMy42IDQwLjMtMzMuNiA0MC4zYy04LjcgMTAuNCAzLjggMjQuOCAxNS40IDE4ek0zNjIuNCAyODhIMTMzLjZjLTguMiAwLTE0LjUgNy0xMy41IDE1IDcuNSA1OS4yIDU4LjkgMTA1IDEyMS4xIDEwNWgxMy42YzYyLjIgMCAxMTMuNi00NS44IDEyMS4xLTEwNSAxLTgtNS4zLTE1LTEzLjUtMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGF1Z2hXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0MS40IDM4OS40Yy0zNy44IDM3LjgtODggNTguNi0xNDEuNCA1OC42cy0xMDMuNi0yMC44LTE0MS40LTU4LjZDNjguOCAzNTkuNiA0OCAzMDkuNCA0OCAyNTZzMjAuOC0xMDMuNiA1OC42LTE0MS40QzE0NC40IDc2LjggMTk0LjYgNTYgMjQ4IDU2czEwMy42IDIwLjggMTQxLjQgNTguNmMzNy44IDM3LjggNTguNiA4OCA1OC42IDE0MS40cy0yMC44IDEwMy42LTU4LjYgMTQxLjR6TTMyOCAxNjRjLTI1LjcgMC01NS45IDE2LjktNTkuOSA0Mi4xLTEuNyAxMS4yIDExLjUgMTguMiAxOS44IDEwLjhsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDBsOS41IDguNWM4LjUgNy40IDIxLjYuMyAxOS44LTEwLjgtMy44LTI1LjItMzQtNDIuMS01OS43LTQyLjF6bS0xNjAgNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xOTQuNCA2NEgxMzMuNmMtOC4yIDAtMTQuNSA3LTEzLjUgMTUgNy41IDU5LjIgNTguOSAxMDUgMTIxLjEgMTA1aDEzLjZjNjIuMiAwIDExMy42LTQ1LjggMTIxLjEtMTA1IDEtOC01LjMtMTUtMTMuNS0xNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMYXVnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDEuNCAzODkuNGMtMzcuOCAzNy44LTg4IDU4LjYtMTQxLjQgNTguNnMtMTAzLjYtMjAuOC0xNDEuNC01OC42UzQ4IDMwOS40IDQ4IDI1NnMyMC44LTEwMy42IDU4LjYtMTQxLjRTMTk0LjYgNTYgMjQ4IDU2czEwMy42IDIwLjggMTQxLjQgNTguNlM0NDggMjAyLjYgNDQ4IDI1NnMtMjAuOCAxMDMuNi01OC42IDE0MS40ek0zMjggMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptLTE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTk0LjQgNjRIMTMzLjZjLTguMiAwLTE0LjUgNy0xMy41IDE1IDcuNSA1OS4yIDU4LjkgMTA1IDEyMS4xIDEwNWgxMy42YzYyLjIgMCAxMTMuNi00NS44IDEyMS4xLTEwNSAxLTgtNS4zLTE1LTEzLjUtMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGVtb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg0LjExMiAyNy44ODlDNDU1Ljk4OS0uMjMzIDQxNi4xMDgtOC4wNTcgMzg3LjA1OSA4Ljg2NSAzNDcuNjA0IDMxLjg0OCAyMjMuNTA0LTQxLjExMSA5MS4xOTYgOTEuMTk3LTQxLjI3NyAyMjMuNjcyIDMxLjkyMyAzNDcuNDcyIDguODY2IDM4Ny4wNThjLTE2LjkyMiAyOS4wNTEtOS4xIDY4LjkzMiAxOS4wMjIgOTcuMDU0IDI4LjEzNSAyOC4xMzUgNjguMDExIDM1LjkzOCA5Ny4wNTcgMTkuMDIxIDM5LjQyMy0yMi45NyAxNjMuNTU3IDQ5Ljk2OSAyOTUuODU4LTgyLjMyOSAxMzIuNDc0LTEzMi40NzcgNTkuMjczLTI1Ni4yNzcgODIuMzMxLTI5NS44NjEgMTYuOTIyLTI5LjA1IDkuMS02OC45MzEtMTkuMDIyLTk3LjA1NHptLTIyLjQwNSA3Mi44OTRjLTM4LjggNjYuNjA5IDQ1LjYgMTY1LjYzNS03NC44NDUgMjg2LjA4LTEyMC40NCAxMjAuNDQzLTIxOS40NzUgMzYuMDQ4LTI4Ni4wNzYgNzQuODQzLTIyLjY3OSAxMy4yMDctNjQuMDM1LTI3LjI0MS01MC40OTMtNTAuNDg4IDM4LjgtNjYuNjA5LTQ1LjYtMTY1LjYzNSA3NC44NDUtMjg2LjA4QzI0NS41NzMgNC43MDIgMzQ0LjYxNiA4OS4wODYgNDExLjIxOSA1MC4yOTJjMjIuNzMtMTMuMjQgNjQuMDA1IDI3LjI4OCA1MC40ODggNTAuNDkxem0tMTY5Ljg2MSA4LjczNmMxLjM3IDEwLjk2LTYuNDA0IDIwLjk1Ny0xNy4zNjUgMjIuMzI3LTU0Ljg0NiA2Ljg1NS0xMzUuNzc5IDg3Ljc4Ny0xNDIuNjM1IDE0Mi42MzUtMS4zNzMgMTAuOTg5LTExLjM5OSAxOC43MzQtMjIuMzI2IDE3LjM2NS0xMC45NjEtMS4zNy0xOC43MzUtMTEuMzY2LTE3LjM2NS0yMi4zMjYgOS4xNjItNzMuMjg2IDEwNC4xNjctMTY4LjIxNSAxNzcuMzY1LTE3Ny4zNjUgMTAuOTUzLTEuMzY4IDIwLjk1NiA2LjQwMyAyMi4zMjYgMTcuMzY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xpZmVSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MDRjMTM2Ljk2NyAwIDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4em0tMTAzLjM5OC03Ni43Mmw1My40MTEtNTMuNDExYzMxLjgwNiAxMy41MDYgNjguMTI4IDEzLjUyMiA5OS45NzQgMGw1My40MTEgNTMuNDExYy02My4yMTcgMzguMzE5LTE0My41NzkgMzguMzE5LTIwNi43OTYgMHpNMzM2IDI1NmMwIDQ0LjExMi0zNS44ODggODAtODAgODBzLTgwLTM1Ljg4OC04MC04MCAzNS44ODgtODAgODAtODAgODAgMzUuODg4IDgwIDgwem05MS4yOCAxMDMuMzk4bC01My40MTEtNTMuNDExYzEzLjUwNS0zMS44MDYgMTMuNTIyLTY4LjEyOCAwLTk5Ljk3NGw1My40MTEtNTMuNDExYzM4LjMxOSA2My4yMTcgMzguMzE5IDE0My41NzkgMCAyMDYuNzk2ek0zNTkuMzk3IDg0LjcybC01My40MTEgNTMuNDExYy0zMS44MDYtMTMuNTA1LTY4LjEyOC0xMy41MjItOTkuOTczIDBMMTUyLjYwMiA4NC43MmM2My4yMTctMzguMzE5IDE0My41NzktMzguMzE5IDIwNi43OTUgMHpNODQuNzIgMTUyLjYwMmw1My40MTEgNTMuNDExYy0xMy41MDYgMzEuODA2LTEzLjUyMiA2OC4xMjggMCA5OS45NzRMODQuNzIgMzU5LjM5OGMtMzguMzE5LTYzLjIxNy0zOC4zMTktMTQzLjU3OSAwLTIwNi43OTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzNTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA4MGMtNTIuOTQgMC05NiA0My4wNi05NiA5NiAwIDguODQgNy4xNiAxNiAxNiAxNnMxNi03LjE2IDE2LTE2YzAtMzUuMyAyOC43Mi02NCA2NC02NCA4Ljg0IDAgMTYtNy4xNiAxNi0xNnMtNy4xNi0xNi0xNi0xNnpNOTYuMDYgNDU5LjE3YzAgMy4xNS45MyA2LjIyIDIuNjggOC44NGwyNC41MSAzNi44NGMyLjk3IDQuNDYgNy45NyA3LjE0IDEzLjMyIDcuMTRoNzguODVjNS4zNiAwIDEwLjM2LTIuNjggMTMuMzItNy4xNGwyNC41MS0zNi44NGMxLjc0LTIuNjIgMi42Ny01LjcgMi42OC04Ljg0bC4wNS00My4xOEg5Ni4wMmwuMDQgNDMuMTh6TTE3NiAwQzczLjcyIDAgMCA4Mi45NyAwIDE3NmMwIDQ0LjM3IDE2LjQ1IDg0Ljg1IDQzLjU2IDExNS43OCAxNi42NCAxOC45OSA0Mi43NCA1OC44IDUyLjQyIDkyLjE2di4wNmg0OHYtLjEyYy0uMDEtNC43Ny0uNzItOS41MS0yLjE1LTE0LjA3LTUuNTktMTcuODEtMjIuODItNjQuNzctNjIuMTctMTA5LjY3LTIwLjU0LTIzLjQzLTMxLjUyLTUzLjE1LTMxLjYxLTg0LjE0LS4yLTczLjY0IDU5LjY3LTEyOCAxMjcuOTUtMTI4IDcwLjU4IDAgMTI4IDU3LjQyIDEyOCAxMjggMCAzMC45Ny0xMS4yNCA2MC44NS0zMS42NSA4NC4xNC0zOS4xMSA0NC42MS01Ni40MiA5MS40Ny02Mi4xIDEwOS40NmE0Ny41MDcgNDcuNTA3IDAgMCAwLTIuMjIgMTQuM3YuMWg0OHYtLjA1YzkuNjgtMzMuMzcgMzUuNzgtNzMuMTggNTIuNDItOTIuMTZDMzM1LjU1IDI2MC44NSAzNTIgMjIwLjM3IDM1MiAxNzYgMzUyIDc4LjggMjczLjIgMCAxNzYgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMaXN0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgNDAwSDU0YTYgNiAwIDAgMS02LTZWODZhNiA2IDAgMCAxIDYtNmg0MDRhNiA2IDAgMCAxIDYgNnYzNDBhNiA2IDAgMCAxLTYgNnptLTQyLTkydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0tMjUyIDEyYzAgMTkuODgyLTE2LjExOCAzNi0zNiAzNnMtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNiAzNiAxNi4xMTggMzYgMzZ6bTAgOTZjMCAxOS44ODItMTYuMTE4IDM2LTM2IDM2cy0zNi0xNi4xMTgtMzYtMzYgMTYuMTE4LTM2IDM2LTM2IDM2IDE2LjExOCAzNiAzNnptMCA5NmMwIDE5Ljg4Mi0xNi4xMTggMzYtMzYgMzZzLTM2LTE2LjExOC0zNi0zNiAxNi4xMTgtMzYgMzYtMzYgMzYgMTYuMTE4IDM2IDM2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAuMDIgMzJjLTEuOTYgMC0zLjk4LjM3LTUuOTYgMS4xNkwzODQuMDEgOTZIMzg0TDIxMiAzNS4yOEE2NC4yNTIgNjQuMjUyIDAgMCAwIDE5MS43NiAzMmMtNi42OSAwLTEzLjM3IDEuMDUtMTkuODEgMy4xNEwyMC4xMiA4Ny45NUEzMi4wMDYgMzIuMDA2IDAgMCAwIDAgMTE3LjY2djM0Ni4zMkMwIDQ3My4xNyA3LjUzIDQ4MCAxNS45OSA0ODBjMS45NiAwIDMuOTctLjM3IDUuOTYtMS4xNkwxOTIgNDE2bDE3MiA2MC43MWE2My45OCA2My45OCAwIDAgMCA0MC4wNS4xNWwxNTEuODMtNTIuODFBMzEuOTk2IDMxLjk5NiAwIDAgMCA1NzYgMzk0LjM0VjQ4LjAyYzAtOS4xOS03LjUzLTE2LjAyLTE1Ljk4LTE2LjAyek0yMjQgOTAuNDJsMTI4IDQ1LjE5djI4NS45N2wtMTI4LTQ1LjE5VjkwLjQyek00OCA0MTguMDVWMTI5LjA3bDEyOC00NC41M3YyODYuMmwtLjY0LjIzTDQ4IDQxOC4wNXptNDgwLTM1LjEzbC0xMjggNDQuNTNWMTQxLjI2bC42NC0uMjRMNTI4IDkzLjk1djI4OC45N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNZWhCbGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bS04MC0yODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWVoUm9sbGluZ0V5ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem04OC0zMDRjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyem0wIDExMmMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC0xMy42IDcuMy0yNS4xIDE3LjctMzIuMy0xIDIuNi0xLjcgNS4zLTEuNyA4LjMgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIuOS0uNy01LjctMS43LTguMyAxMC40IDcuMiAxNy43IDE4LjcgMTcuNyAzMi4zIDAgMjIuMS0xNy45IDQwLTQwIDQwem0tMTA0LTQwYzAtMzkuOC0zMi4yLTcyLTcyLTcycy03MiAzMi4yLTcyIDcyIDMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03MnptLTExMiAwYzAtMTMuNiA3LjMtMjUuMSAxNy43LTMyLjMtMSAyLjYtMS43IDUuMy0xLjcgOC4zIDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yLjktLjctNS43LTEuNy04LjMgMTAuNCA3LjIgMTcuNyAxOC43IDE3LjcgMzIuMyAwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MHptMTkyIDEyOEgxODRjLTEzLjIgMC0yNCAxMC44LTI0IDI0czEwLjggMjQgMjQgMjRoMTI4YzEzLjIgMCAyNC0xMC44IDI0LTI0cy0xMC44LTI0LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01laCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bS04MC0yMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xNjAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem04IDE0NEgxNjBjLTEzLjIgMC0yNCAxMC44LTI0IDI0czEwLjggMjQgMjQgMjRoMTc2YzEzLjIgMCAyNC0xMC44IDI0LTI0cy0xMC44LTI0LTI0LTI0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01pbnVzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwOCAyODRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzJjMC02LjYgNS40LTEyIDEyLTEyaDIzMmM2LjYgMCAxMiA1LjQgMTIgMTJ2MzJjMCA2LjYtNS40IDEyLTEyIDEySDEwOHpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2Vjg2YzAtMy4zLTIuNy02LTYtNkg1NGMtMy4zIDAtNiAyLjctNiA2djM0MGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNb25leUJpbGxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDE0NGMtNTMuMDIgMC05NiA1MC4xNC05NiAxMTIgMCA2MS44NSA0Mi45OCAxMTIgOTYgMTEyIDUzIDAgOTYtNTAuMTMgOTYtMTEyIDAtNjEuODYtNDIuOTgtMTEyLTk2LTExMnptNDAgMTY4YzAgNC40Mi0zLjU4IDgtOCA4aC02NGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDE2di01NS40NGwtLjQ3LjMxYTcuOTkyIDcuOTkyIDAgMCAxLTExLjA5LTIuMjJsLTguODgtMTMuMzFhNy45OTIgNy45OTIgMCAwIDEgMi4yMi0xMS4wOWwxNS4zMy0xMC4yMmEyMy45OSAyMy45OSAwIDAgMSAxMy4zMS00LjAzSDMyOGM0LjQyIDAgOCAzLjU4IDggOHY4OGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNnpNNjA4IDY0SDMyQzE0LjMzIDY0IDAgNzguMzMgMCA5NnYzMjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tMTYgMjcyYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0SDExMmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0VjE3NmMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0aDQxNmMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0djE2MHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OS4xMzUgNTEyYzc4Ljc1NiAwIDE1MC45ODItMzUuODA0IDE5OC44NDQtOTQuNzc1IDI4LjI3LTM0LjgzMS0yLjU1OC04NS43MjItNDYuMjQ5LTc3LjQwMS04Mi4zNDggMTUuNjgzLTE1OC4yNzItNDcuMjY4LTE1OC4yNzItMTMwLjc5MiAwLTQ4LjQyNCAyNi4wNi05Mi4yOTIgNjcuNDM0LTExNS44MzYgMzguNzQ1LTIyLjA1IDI4Ljk5OS04MC43ODgtMTUuMDIyLTg4LjkxOUEyNTcuOTM2IDI1Ny45MzYgMCAwIDAgMjc5LjEzNSAwYy0xNDEuMzYgMC0yNTYgMTE0LjU3NS0yNTYgMjU2IDAgMTQxLjM2IDExNC41NzYgMjU2IDI1NiAyNTZ6bTAtNDY0YzEyLjk4NSAwIDI1LjY4OSAxLjIwMSAzOC4wMTYgMy40NzgtNTQuNzYgMzEuMTYzLTkxLjY5MyA5MC4wNDItOTEuNjkzIDE1Ny41NTQgMCAxMTMuODQ4IDEwMy42NDEgMTk5LjIgMjE1LjI1MiAxNzcuOTQ0QzQwMi41NzQgNDMzLjk2NCAzNDQuMzY2IDQ2NCAyNzkuMTM1IDQ2NGMtMTE0Ljg3NSAwLTIwOC05My4xMjUtMjA4LTIwOHM5My4xMjUtMjA4IDIwOC0yMDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MiA2NEgxMTJjLTIwLjg1OCAwLTM4LjY0MyAxMy4zNzctNDUuMjQ4IDMySDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MjcyYzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1Nmg0OTZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0Vjg4YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNNDggMzkyVjE0NGgxNnYyNDhjMCA0LjQxMS0zLjU4OSA4LTggOHMtOC0zLjU4OS04LTh6bTQ4MCA4SDExMS40MjJjLjM3NC0yLjYxNC41NzgtNS4yODMuNTc4LThWMTEyaDQxNnYyODh6TTE3MiAyODBoMTM2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjk2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ6bTI4LTgwaDgwdjQwaC04MHYtNDB6bS00MCAxNDB2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTM2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgxNzJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTE5MiAwdi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEwNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzY0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wLTE0NHYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMDRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDM2NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnptMCA3MnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMDRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDM2NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdPYmplY3RHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDAgMTI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNzJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJIOTZWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAzMiAwIDM3LjM3MyAwIDQ0djcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MjU2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjcyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoMzIwdjEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNzJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMTJWMTI4aDEyem0tNTItNjRoMzJ2MzJoLTMyVjY0ek0zMiA2NGgzMnYzMkgzMlY2NHptMzIgMzg0SDMydi0zMmgzMnYzMnptNDE2IDBoLTMydi0zMmgzMnYzMnptLTQwLTY0aC0xMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxMkg5NnYtMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3MlYxMjhoMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoMzIwdjEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MjU2em0tMzYtMTkyaC04NHYtNTJjMC02LjYyOC01LjM3My0xMi0xMi0xMkgxMDhjLTYuNjI3IDAtMTIgNS4zNzItMTIgMTJ2MTY4YzAgNi42MjggNS4zNzMgMTIgMTIgMTJoODR2NTJjMCA2LjYyOCA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MiAxMi0xMlYyMDRjMC02LjYyOC01LjM3My0xMi0xMi0xMnptLTI2OC0yNGgxNDR2MTEySDEzNlYxNjh6bTI0MCAxNzZIMjMydi0yNGg3NmM2LjYyNyAwIDEyLTUuMzcyIDEyLTEydi03Nmg1NnYxMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnT2JqZWN0VW5ncm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjQgMjI0YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTcyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjEyaC04OHYtMjRoMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMlY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC03MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxMkg5NlY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyQzUuMzczIDMyIDAgMzcuMzczIDAgNDR2NzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMnYxNjBIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg3MmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0xMmg4OHYyNGgtMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg3MmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0xMmgyMjR2MTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg3MmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi03MmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0xMlYyMjRoMTJ6TTM1MiA2NGgzMnYzMmgtMzJWNjR6bTAgMjU2aDMydjMyaC0zMnYtMzJ6TTY0IDM1MkgzMnYtMzJoMzJ2MzJ6bTAtMjU2SDMyVjY0aDMydjMyem0zMiAyMTZ2LTEyYzAtNi42MjctNS4zNzMtMTItMTItMTJINzJWMTI4aDEyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEyaDIyNHYxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDEydjE2MGgtMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJIOTZ6bTEyOCAxMzZoLTMydi0zMmgzMnYzMnptMjgwLTY0aC0xMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxMkgyNTZ2LTEyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTEydi0yNGg4OHYxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDcyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTcyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTEydi04OGg4OHYxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDEydjE2MHptNDAgNjRoLTMydi0zMmgzMnYzMnptMC0yNTZoLTMydi0zMmgzMnYzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQYXBlclBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MCA2LjVMMjQgMjQ2LjRjLTM0LjQgMTkuOS0zMS4xIDcwLjggNS43IDg1LjlMMTQ0IDM3OS42VjQ2NGMwIDQ2LjQgNTkuMiA2NS41IDg2LjYgMjguNmw0My44LTU5LjEgMTExLjkgNDYuMmM1LjkgMi40IDEyLjEgMy42IDE4LjMgMy42IDguMiAwIDE2LjMtMi4xIDIzLjYtNi4yIDEyLjgtNy4yIDIxLjYtMjAgMjMuOS0zNC41bDU5LjQtMzg3LjJjNi4xLTQwLjEtMzYuOS02OC44LTcxLjUtNDguOXpNMTkyIDQ2NHYtNjQuNmwzNi42IDE1LjFMMTkyIDQ2NHptMjEyLjYtMjguN2wtMTUzLjgtNjMuNUwzOTEgMTY5LjVjMTAuNy0xNS41LTkuNS0zMy41LTIzLjctMjEuMkwxNTUuOCAzMzIuNiA0OCAyODggNDY0IDQ4bC01OS40IDM4Ny4zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1BhdXNlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgNDQ4Yy0xMTAuNSAwLTIwMC04OS41LTIwMC0yMDBTMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMHptOTYtMjgwdjE2MGMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ6bS0xMTIgMHYxNjBjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1BsYXlDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcxLjcgMjM4bC0xNzYtMTA3Yy0xNS44LTguOC0zNS43IDIuNS0zNS43IDIxdjIwOGMwIDE4LjQgMTkuOCAyOS44IDM1LjcgMjFsMTc2LTEwMWMxNi40LTkuMSAxNi40LTMyLjggMC00MnpNNTA0IDI1NkM1MDQgMTE5IDM5MyA4IDI1NiA4UzggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDh6bS00NDggMGMwLTExMC41IDg5LjUtMjAwIDIwMC0yMDBzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwUzU2IDM2Ni41IDU2IDI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQbHVzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAyNDB2MzJjMCA2LjYtNS40IDEyLTEyIDEyaC04OHY4OGMwIDYuNi01LjQgMTItMTIgMTJoLTMyYy02LjYgMC0xMi01LjQtMTItMTJ2LTg4aC04OGMtNi42IDAtMTItNS40LTEyLTEydi0zMmMwLTYuNiA1LjQtMTIgMTItMTJoODh2LTg4YzAtNi42IDUuNC0xMiAxMi0xMmgzMmM2LjYgMCAxMiA1LjQgMTIgMTJ2ODhoODhjNi42IDAgMTIgNS40IDEyIDEyem05Ni0xNjB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1F1ZXN0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgNDQ4Yy0xMTAuNTMyIDAtMjAwLTg5LjQzMS0yMDAtMjAwIDAtMTEwLjQ5NSA4OS40NzItMjAwIDIwMC0yMDAgMTEwLjQ5MSAwIDIwMCA4OS40NzEgMjAwIDIwMCAwIDExMC41My04OS40MzEgMjAwLTIwMCAyMDB6bTEwNy4yNDQtMjU1LjJjMCA2Ny4wNTItNzIuNDIxIDY4LjA4NC03Mi40MjEgOTIuODYzVjMwMGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00NS42NDdjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTguNjU5YzAtMzUuNzQ1IDI3LjEtNTAuMDM0IDQ3LjU3OS02MS41MTYgMTcuNTYxLTkuODQ1IDI4LjMyNC0xNi41NDEgMjguMzI0LTI5LjU3OSAwLTE3LjI0Ni0yMS45OTktMjguNjkzLTM5Ljc4NC0yOC42OTMtMjMuMTg5IDAtMzMuODk0IDEwLjk3Ny00OC45NDIgMjkuOTY5LTQuMDU3IDUuMTItMTEuNDYgNi4wNzEtMTYuNjY2IDIuMTI0bC0yNy44MjQtMjEuMDk4Yy01LjEwNy0zLjg3Mi02LjI1MS0xMS4wNjYtMi42NDQtMTYuMzYzQzE4NC44NDYgMTMxLjQ5MSAyMTQuOTQgMTEyIDI2MS43OTQgMTEyYzQ5LjA3MSAwIDEwMS40NSAzOC4zMDQgMTAxLjQ1IDg4Ljh6TTI5OCAzNjhjMCAyMy4xNTktMTguODQxIDQyLTQyIDQycy00Mi0xOC44NDEtNDItNDIgMTguODQxLTQyIDQyLTQyIDQyIDE4Ljg0MSA0MiA0MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdSZWdpc3RlcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCA0NDhjLTExMC41MzIgMC0yMDAtODkuNDUxLTIwMC0yMDAgMC0xMTAuNTMxIDg5LjQ1MS0yMDAgMjAwLTIwMCAxMTAuNTMyIDAgMjAwIDg5LjQ1MSAyMDAgMjAwIDAgMTEwLjUzMi04OS40NTEgMjAwLTIwMCAyMDB6bTExMC40NDItODEuNzkxYy01My4wNDYtOTYuMjg0LTUwLjI1LTkxLjQ2OC01My4yNzEtOTYuMDg1IDI0LjI2Ny0xMy44NzkgMzkuNDgyLTQxLjU2MyAzOS40ODItNzMuMTc2IDAtNTIuNTAzLTMwLjI0Ny04NS4yNTItMTAxLjQ5OC04NS4yNTJoLTc4LjY2N2MtNi42MTcgMC0xMiA1LjM4My0xMiAxMlYzODBjMCA2LjYxNyA1LjM4MyAxMiAxMiAxMmgzOC41NjhjNi42MTcgMCAxMi01LjM4MyAxMi0xMnYtODMuNjYzaDMxLjk1OGw0Ny41MTUgODkuMzAzYTExLjk4IDExLjk4IDAgMCAwIDEwLjU5MyA2LjM2aDQyLjgxYzkuMTQgMCAxNC45MTQtOS43OTkgMTAuNTEtMTcuNzkxek0yNTYuOTMzIDIzOS45MDZoLTMzLjg3NXYtNjQuMTRoMjcuMzc3YzMyLjQxNyAwIDM4LjkyOSAxMi4xMzMgMzguOTI5IDMxLjcwOS0uMDAxIDIwLjkxMy0xMS41MTggMzIuNDMxLTMyLjQzMSAzMi40MzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2FkQ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0NCAzODYuNFYyODBjMC0xMy4yLTEwLjgtMjQtMjQtMjRzLTI0IDEwLjgtMjQgMjR2MTUxLjRDMzE1LjUgNDQ3IDI4Mi44IDQ1NiAyNDggNDU2cy02Ny41LTktOTYtMjQuNlYyODBjMC0xMy4yLTEwLjgtMjQtMjQtMjRzLTI0IDEwLjgtMjQgMjR2MTE0LjRjLTM0LjYtMzYtNTYtODQuNy01Ni0xMzguNCAwLTExMC4zIDg5LjctMjAwIDIwMC0yMDBzMjAwIDg5LjcgMjAwIDIwMGMwIDUzLjctMjEuNCAxMDIuNS01NiAxMzguNHpNMjA1LjggMjM0LjVjNC40LTIuNCA2LjktNy40IDYuMS0xMi40LTQtMjUuMi0zNC4yLTQyLjEtNTkuOC00Mi4xcy01NS45IDE2LjktNTkuOCA0Mi4xYy0uOCA1IDEuNyAxMCA2LjEgMTIuNCA0LjQgMi40IDkuOSAxLjggMTMuNy0xLjZsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDBsOS41IDguNWMyLjUgMi4zIDcuOSA0LjggMTMuNyAxLjZ6TTM0NCAxODBjLTI1LjcgMC01NS45IDE2LjktNTkuOCA0Mi4xLS44IDUgMS43IDEwIDYuMSAxMi40IDQuNSAyLjQgOS45IDEuOCAxMy43LTEuNmw5LjUtOC41YzE0LjgtMTMuMiA0Ni4yLTEzLjIgNjEgMGw5LjUgOC41YzIuNSAyLjIgOCA0LjcgMTMuNyAxLjYgNC40LTIuNCA2LjktNy40IDYuMS0xMi40LTMuOS0yNS4yLTM0LjEtNDIuMS01OS44LTQyLjF6bS05NiA5MmMtMzAuOSAwLTU2IDI4LjctNTYgNjRzMjUuMSA2NCA1NiA2NCA1Ni0yOC43IDU2LTY0LTI1LjEtNjQtNTYtNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2FkVGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTgtMTUyYy0xMy4yIDAtMjQgMTAuOC0yNCAyNHMxMC44IDI0IDI0IDI0YzIzLjggMCA0Ni4zIDEwLjUgNjEuNiAyOC44IDguMSA5LjggMjMuMiAxMS45IDMzLjggMy4xIDEwLjItOC41IDExLjYtMjMuNiAzLjEtMzMuOEMzMzAgMzIwLjggMjk0LjEgMzA0IDI1NiAzMDR6bS04OC02NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bS0xNjUuNiA5OC44QzE1MSAyOTAuMSAxMjYgMzI1LjQgMTI2IDM0Mi45YzAgMjIuNyAxOC44IDQxLjEgNDIgNDEuMXM0Mi0xOC40IDQyLTQxLjFjMC0xNy41LTI1LTUyLjgtMzYuNC02OC4xLTIuOC0zLjctOC40LTMuNy0xMS4yIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzMuOTQxIDEyOS45NDFsLTgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgMzE2LjExOCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTYzLjg4MmE0OCA0OCAwIDAgMC0xNC4wNTktMzMuOTQxek0yNzIgODB2ODBIMTQ0VjgwaDEyOHptMTIyIDM1Mkg1NGE2IDYgMCAwIDEtNi02Vjg2YTYgNiAwIDAgMSA2LTZoNDJ2MTA0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjgzLjg4Mmw3OC4yNDMgNzguMjQzYTYgNiAwIDAgMSAxLjc1NyA0LjI0M1Y0MjZhNiA2IDAgMCAxLTYgNnpNMjI0IDIzMmMtNDguNTIzIDAtODggMzkuNDc3LTg4IDg4czM5LjQ3NyA4OCA4OCA4OCA4OC0zOS40NzcgODgtODgtMzkuNDc3LTg4LTg4LTg4em0wIDEyOGMtMjIuMDU2IDAtNDAtMTcuOTQ0LTQwLTQwczE3Ljk0NC00MCA0MC00MCA0MCAxNy45NDQgNDAgNDAtMTcuOTQ0IDQwLTQwIDQwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NoYXJlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MS45MzggMTU4LjA2TDQxNy45NCAxNC4wOTJDMzg3LjkyNi0xNS45MjIgMzM2IDUuMDk3IDMzNiA0OC4wMzJ2NTcuMTk4Yy00Mi40NSAxLjg4LTg0LjAzIDYuNTUtMTIwLjc2IDE3Ljk5LTM1LjE3IDEwLjk1LTYzLjA3IDI3LjU4LTgyLjkxIDQ5LjQyQzEwOC4yMiAxOTkuMiA5NiAyMzIuNiA5NiAyNzEuOTRjMCA2MS42OTcgMzMuMTc4IDExMi40NTUgODQuODcgMTQ0Ljc2IDM3LjU0NiAyMy41MDggODUuMjQ4LTEyLjY1MSA3MS4wMi01NS43NC0xNS41MTUtNDcuMTE5LTE3LjE1Ni03MC45MjMgODQuMTEtNzguNzZWMzM2YzAgNDIuOTkzIDUxLjk2OCA2My45MTMgODEuOTQgMzMuOTRsMTQzLjk5OC0xNDRjMTguNzUtMTguNzQgMTguNzUtNDkuMTQgMC02Ny44OHpNMzg0IDMzNlYyMzIuMTZDMjU1LjMwOSAyMzQuMDgyIDE2Ni40OTIgMjU1LjM1IDIwNi4zMSAzNzYgMTc2Ljc5IDM1Ny41NSAxNDQgMzI0LjA4IDE0NCAyNzEuOTRjMC0xMDkuMzM0IDEyOS4xNC0xMTguOTQ3IDI0MC0xMTkuODVWNDhsMTQ0IDE0NC0xNDQgMTQ0em0yNC43NCA4NC40OTNhODIuNjU4IDgyLjY1OCAwIDAgMCAyMC45NzQtOS4zMDNjNy45NzYtNC45NTIgMTguMjg2LjgyNiAxOC4yODYgMTAuMjE0VjQ2NGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDEzMmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQuNDg2YzAgNC45MTctMi45ODcgOS4zNjktNy41NjkgMTEuMTUyLTEzLjcwMiA1LjMzMS0yNi4zOTYgMTEuNTM3LTM4LjA1IDE4LjU4NWExMi4xMzggMTIuMTM4IDAgMCAxLTYuMjggMS43NzdINTRhNiA2IDAgMCAwLTYgNnYzNDBhNiA2IDAgMCAwIDYgNmgzNDBhNiA2IDAgMCAwIDYtNnYtMjUuOTY2YzAtNS4zNyAzLjU3OS0xMC4wNTkgOC43NC0xMS41NDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU21pbGVCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptODQtMTQzLjRjLTIwLjggMjUtNTEuNSAzOS40LTg0IDM5LjRzLTYzLjItMTQuMy04NC0zOS40Yy04LjUtMTAuMi0yMy42LTExLjUtMzMuOC0zLjEtMTAuMiA4LjUtMTEuNSAyMy42LTMuMSAzMy44IDMwIDM2IDc0LjEgNTYuNiAxMjAuOSA1Ni42czkwLjktMjAuNiAxMjAuOS01Ni42YzguNS0xMC4yIDcuMS0yNS4zLTMuMS0zMy44LTEwLjItOC40LTI1LjMtNy4xLTMzLjggMy4xek0xMzYuNSAyMTFjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy40IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTd6TTMyOCAxNTJjLTIzLjggMC01Mi43IDI5LjMtNTYgNzEuNC0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU21pbGVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMTE3LjgtMTQ2LjRjLTEwLjItOC41LTI1LjMtNy4xLTMzLjggMy4xLTIwLjggMjUtNTEuNSAzOS40LTg0IDM5LjRzLTYzLjItMTQuMy04NC0zOS40Yy04LjUtMTAuMi0yMy43LTExLjUtMzMuOC0zLjEtMTAuMiA4LjUtMTEuNSAyMy42LTMuMSAzMy44IDMwIDM2IDc0LjEgNTYuNiAxMjAuOSA1Ni42czkwLjktMjAuNiAxMjAuOS01Ni42YzguNS0xMC4yIDcuMS0yNS4zLTMuMS0zMy44ek0xNjggMjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYwLTYwYy0yNS43IDAtNTUuOSAxNi45LTU5LjkgNDIuMS0xLjcgMTEuMiAxMS41IDE4LjIgMTkuOCAxMC44bDkuNS04LjVjMTQuOC0xMy4yIDQ2LjItMTMuMiA2MSAwbDkuNSA4LjVjOC41IDcuNCAyMS42LjMgMTkuOC0xMC44LTMuOC0yNS4yLTM0LTQyLjEtNTkuNy00Mi4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTgwLTIxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptNCA3Mi42Yy0yMC44IDI1LTUxLjUgMzkuNC04NCAzOS40cy02My4yLTE0LjMtODQtMzkuNGMtOC41LTEwLjItMjMuNy0xMS41LTMzLjgtMy4xLTEwLjIgOC41LTExLjUgMjMuNi0zLjEgMzMuOCAzMCAzNiA3NC4xIDU2LjYgMTIwLjkgNTYuNnM5MC45LTIwLjYgMTIwLjktNTYuNmM4LjUtMTAuMiA3LjEtMjUuMy0zLjEtMzMuOC0xMC4xLTguNC0yNS4zLTcuMS0zMy44IDMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTbm93Zmxha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjEgMzU1LjJsLTM5LjItMjMgMzQuMS05LjNjOC40LTIuMyAxMy40LTExLjEgMTEuMS0xOS42bC00LjEtMTUuNWMtMi4yLTguNS0xMC45LTEzLjYtMTkuMy0xMS4zTDM0MyAyOTguMiAyNzEuMiAyNTZsNzEuOS00Mi4yIDc5LjcgMjEuN2M4LjQgMi4zIDE3LTIuOCAxOS4zLTExLjNsNC4xLTE1LjVjMi4yLTguNS0yLjctMTcuMy0xMS4xLTE5LjZsLTM0LjEtOS4zIDM5LjItMjNjNy41LTQuNCAxMC4xLTE0LjIgNS44LTIxLjlsLTcuOS0xMy45Yy00LjMtNy43LTE0LTEwLjMtMjEuNS01LjlsLTM5LjIgMjMgOS4xLTM0LjdjMi4yLTguNS0yLjctMTcuMy0xMS4xLTE5LjZsLTE1LjItNC4xYy04LjQtMi4zLTE3IDIuOC0xOS4zIDExLjNsLTIxLjMgODEtNzEuOSA0Mi4ydi04NC41TDMwNiA3MC40YzYuMS02LjIgNi4xLTE2LjQgMC0yMi42bC0xMS4xLTExLjNjLTYuMS02LjItMTYuMS02LjItMjIuMiAwbC0yNC45IDI1LjRWMTZjMC04LjgtNy0xNi0xNS43LTE2aC0xNS43Yy04LjcgMC0xNS43IDcuMi0xNS43IDE2djQ2LjFsLTI0LjktMjUuNGMtNi4xLTYuMi0xNi4xLTYuMi0yMi4yIDBMMTQyLjEgNDhjLTYuMSA2LjItNi4xIDE2LjQgMCAyMi42bDU4LjMgNTkuM3Y4NC41bC03MS45LTQyLjItMjEuMy04MWMtMi4yLTguNS0xMC45LTEzLjYtMTkuMy0xMS4zTDcyLjcgODRjLTguNCAyLjMtMTMuNCAxMS4xLTExLjEgMTkuNmw5LjEgMzQuNy0zOS4yLTIzYy03LjUtNC40LTE3LjEtMS44LTIxLjUgNS45bC03LjkgMTMuOWMtNC4zIDcuNy0xLjggMTcuNCA1LjggMjEuOWwzOS4yIDIzLTM0LjEgOS4xYy04LjQgMi4zLTEzLjQgMTEuMS0xMS4xIDE5LjZMNiAyMjQuMmMyLjIgOC41IDEwLjkgMTMuNiAxOS4zIDExLjNsNzkuNy0yMS43IDcxLjkgNDIuMi03MS45IDQyLjItNzkuNy0yMS43Yy04LjQtMi4zLTE3IDIuOC0xOS4zIDExLjNsLTQuMSAxNS41Yy0yLjIgOC41IDIuNyAxNy4zIDExLjEgMTkuNmwzNC4xIDkuMy0zOS4yIDIzYy03LjUgNC40LTEwLjEgMTQuMi01LjggMjEuOUwxMCAzOTFjNC4zIDcuNyAxNCAxMC4zIDIxLjUgNS45bDM5LjItMjMtOS4xIDM0LjdjLTIuMiA4LjUgMi43IDE3LjMgMTEuMSAxOS42bDE1LjIgNC4xYzguNCAyLjMgMTctMi44IDE5LjMtMTEuM2wyMS4zLTgxIDcxLjktNDIuMnY4NC41bC01OC4zIDU5LjNjLTYuMSA2LjItNi4xIDE2LjQgMCAyMi42bDExLjEgMTEuM2M2LjEgNi4yIDE2LjEgNi4yIDIyLjIgMGwyNC45LTI1LjRWNDk2YzAgOC44IDcgMTYgMTUuNyAxNmgxNS43YzguNyAwIDE1LjctNy4yIDE1LjctMTZ2LTQ2LjFsMjQuOSAyNS40YzYuMSA2LjIgMTYuMSA2LjIgMjIuMiAwbDExLjEtMTEuM2M2LjEtNi4yIDYuMS0xNi40IDAtMjIuNmwtNTguMy01OS4zdi04NC41bDcxLjkgNDIuMiAyMS4zIDgxYzIuMiA4LjUgMTAuOSAxMy42IDE5LjMgMTEuM0wzNzUgNDI4YzguNC0yLjMgMTMuNC0xMS4xIDExLjEtMTkuNmwtOS4xLTM0LjcgMzkuMiAyM2M3LjUgNC40IDE3LjEgMS44IDIxLjUtNS45bDcuOS0xMy45YzQuNi03LjUgMi4xLTE3LjMtNS41LTIxLjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS02IDQwMEg1NGMtMy4zIDAtNi0yLjctNi02Vjg2YzAtMy4zIDIuNy02IDYtNmgzNDBjMy4zIDAgNiAyLjcgNiA2djM0MGMwIDMuMy0yLjcgNi02IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RhckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDM4NS4zbC0xMjQuMyA2NS40IDIzLjctMTM4LjQtMTAwLjYtOTggMTM5LTIwLjIgNjIuMi0xMjZWMGMtMTEuNCAwLTIyLjggNS45LTI4LjcgMTcuOEwxOTQgMTUwLjIgNDcuOSAxNzEuNGMtMjYuMiAzLjgtMzYuNyAzNi4xLTE3LjcgNTQuNmwxMDUuNyAxMDMtMjUgMTQ1LjVjLTQuNSAyNi4xIDIzIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZ2LTU0LjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguMSAxNzEuNUwzODIgMTUwLjIgMzE2LjcgMTcuOGMtMTEuNy0yMy42LTQ1LjYtMjMuOS01Ny40IDBMMTk0IDE1MC4yIDQ3LjkgMTcxLjVjLTI2LjIgMy44LTM2LjcgMzYuMS0xNy43IDU0LjZsMTA1LjcgMTAzLTI1IDE0NS41Yy00LjUgMjYuMyAyMy4yIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZsMTMwLjcgNjguN2MyMy4yIDEyLjIgNTAuOS03LjQgNDYuNC0zMy43bC0yNS0xNDUuNSAxMDUuNy0xMDNjMTktMTguNSA4LjUtNTAuOC0xNy43LTU0LjZ6TTM4OC42IDMxMi4zbDIzLjcgMTM4LjRMMjg4IDM4NS40bC0xMjQuMyA2NS4zIDIzLjctMTM4LjQtMTAwLjYtOTggMTM5LTIwLjIgNjIuMi0xMjYgNjIuMiAxMjYgMTM5IDIwLjItMTAwLjYgOTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RpY2t5Tm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzQ4LjEwNlY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTEuOTg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjY4LjExOGE0OCA0OCAwIDAgMCAzMy45NDEtMTQuMDU5bDgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgNDQ4IDM0OC4xMDZ6bS0xMjggODB2LTc2LjExOGg3Ni4xMThMMzIwIDQyOC4xMDZ6TTQwMCA4MHYyMjMuOTg4SDI5NmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djEwNEg0OFY4MGgzNTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RvcENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OHptLTQ0OCAwYzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDBTNTYgMzY2LjUgNTYgMjU2em0yOTYtODB2MTYwYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NC4yIDIyMS45bC01OS44LTQwLjUgMTMuNy03MWMyLjYtMTMuMi0xLjYtMjYuOC0xMS4xLTM2LjQtOS42LTkuNS0yMy4yLTEzLjctMzYuMi0xMS4xbC03MC45IDEzLjctNDAuNC01OS45Yy0xNS4xLTIyLjMtNTEuOS0yMi4zLTY3IDBsLTQwLjQgNTkuOS03MC44LTEzLjdDOTggNjAuNCA4NC41IDY0LjUgNzUgNzQuMWMtOS41IDkuNi0xMy43IDIzLjEtMTEuMSAzNi4zbDEzLjcgNzEtNTkuOCA0MC41QzYuNiAyMjkuNSAwIDI0MiAwIDI1NS41czYuNyAyNiAxNy44IDMzLjVsNTkuOCA0MC41LTEzLjcgNzFjLTIuNiAxMy4yIDEuNiAyNi44IDExLjEgMzYuMyA5LjUgOS41IDIyLjkgMTMuNyAzNi4zIDExLjFsNzAuOC0xMy43IDQwLjQgNTkuOUMyMzAgNTA1LjMgMjQyLjYgNTEyIDI1NiA1MTJzMjYtNi43IDMzLjUtMTcuOGw0MC40LTU5LjkgNzAuOSAxMy43YzEzLjQgMi43IDI2LjgtMS42IDM2LjMtMTEuMSA5LjUtOS41IDEzLjYtMjMuMSAxMS4xLTM2LjNsLTEzLjctNzEgNTkuOC00MC41YzExLjEtNy41IDE3LjgtMjAuMSAxNy44LTMzLjUtLjEtMTMuNi02LjctMjYuMS0xNy45LTMzLjd6bS0xMTIuOSA4NS42bDE3LjYgOTEuMi05MS0xNy42TDI1NiA0NThsLTUxLjktNzctOTAuOSAxNy42IDE3LjYtOTEuMi03Ni44LTUyIDc2LjgtNTItMTcuNi05MS4yIDkxIDE3LjZMMjU2IDUzbDUxLjkgNzYuOSA5MS0xNy42LTE3LjYgOTEuMSA3Ni44IDUyLTc2LjggNTIuMXpNMjU2IDE1MmMtNTcuMyAwLTEwNCA0Ni43LTEwNCAxMDRzNDYuNyAxMDQgMTA0IDEwNCAxMDQtNDYuNyAxMDQtMTA0LTQ2LjctMTA0LTEwNC0xMDR6bTAgMTYwYy0zMC45IDAtNTYtMjUuMS01Ni01NnMyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTYtMjUuMSA1Ni01NiA1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTdXJwcmlzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTAtMTc2Yy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0IDY0LTI4LjcgNjQtNjQtMjguNy02NC02NC02NHptLTQ4LTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMnptMTI4LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaHVtYnNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2Ni4yNyAyMjUuMzFjNC42NzQtMjIuNjQ3Ljg2NC00NC41MzgtOC45OS02Mi45OSAyLjk1OC0yMy44NjgtNC4wMjEtNDguNTY1LTE3LjM0LTY2Ljk5QzQzOC45ODYgMzkuNDIzIDQwNC4xMTcgMCAzMjcgMGMtNyAwLTE1IC4wMS0yMi4yMi4wMUMyMDEuMTk1LjAxIDE2OC45OTcgNDAgMTI4IDQwaC0xMC44NDVjLTUuNjQtNC45NzUtMTMuMDQyLTgtMjEuMTU1LThIMzJDMTQuMzI3IDMyIDAgNDYuMzI3IDAgNjR2MjQwYzAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmg2NGMxMS44NDIgMCAyMi4xNzUtNi40MzggMjcuNzA4LTE2aDcuMDUyYzE5LjE0NiAxNi45NTMgNDYuMDEzIDYwLjY1MyA2OC43NiA4My40IDEzLjY2NyAxMy42NjcgMTAuMTUzIDEwOC42IDcxLjc2IDEwOC42IDU3LjU4IDAgOTUuMjctMzEuOTM2IDk1LjI3LTEwNC43MyAwLTE4LjQxLTMuOTMtMzMuNzMtOC44NS00Ni41NGgzNi40OGM0OC42MDIgMCA4NS44Mi00MS41NjUgODUuODItODUuNTggMC0xOS4xNS00Ljk2LTM0Ljk5LTEzLjczLTQ5Ljg0ek02NCAyOTZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHMxMC43NDUtMjQgMjQtMjQgMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNHptMzMwLjE4IDE2LjczSDI5MC4xOWMwIDM3LjgyIDI4LjM2IDU1LjM3IDI4LjM2IDk0LjU0IDAgMjMuNzUgMCA1Ni43My00Ny4yNyA1Ni43My0xOC45MS0xOC45MS05LjQ2LTY2LjE4LTM3LjgyLTk0LjU0QzIwNi45IDM0Mi44OSAxNjcuMjggMjcyIDEzOC45MiAyNzJIMTI4Vjg1LjgzYzUzLjYxMSAwIDEwMC4wMDEtMzcuODIgMTcxLjY0LTM3LjgyaDM3LjgyYzM1LjUxMiAwIDYwLjgyIDE3LjEyIDUzLjEyIDY1LjkgMTUuMiA4LjE2IDI2LjUgMzYuNDQgMTMuOTQgNTcuNTcgMjEuNTgxIDIwLjM4NCAxOC42OTkgNTEuMDY1IDUuMjEgNjUuNjIgOS40NSAwIDIyLjM2IDE4LjkxIDIyLjI3IDM3LjgxLS4wOSAxOC45MS0xNi43MSAzNy44Mi0zNy44MiAzNy44MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaHVtYnNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjYuMjcgMjg2LjY5QzQ3NS4wNCAyNzEuODQgNDgwIDI1NiA0ODAgMjM2Ljg1YzAtNDQuMDE1LTM3LjIxOC04NS41OC04NS44Mi04NS41OEgzNTcuN2M0LjkyLTEyLjgxIDguODUtMjguMTMgOC44NS00Ni41NEMzNjYuNTUgMzEuOTM2IDMyOC44NiAwIDI3MS4yOCAwYy02MS42MDcgMC01OC4wOTMgOTQuOTMzLTcxLjc2IDEwOC42LTIyLjc0NyAyMi43NDctNDkuNjE1IDY2LjQ0Ny02OC43NiA4My40SDMyYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJ2MjQwYzAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmg2NGMxNC44OTMgMCAyNy40MDgtMTAuMTc0IDMwLjk3OC0yMy45NSA0NC41MDkgMS4wMDEgNzUuMDYgMzkuOTQgMTc3LjgwMiAzOS45NCA3LjIyIDAgMTUuMjIuMDEgMjIuMjIuMDEgNzcuMTE3IDAgMTExLjk4Ni0zOS40MjMgMTEyLjk0LTk1LjMzIDEzLjMxOS0xOC40MjUgMjAuMjk5LTQzLjEyMiAxNy4zNC02Ni45OSA5Ljg1NC0xOC40NTIgMTMuNjY0LTQwLjM0MyA4Ljk5LTYyLjk5em0tNjEuNzUgNTMuODNjMTIuNTYgMjEuMTMgMS4yNiA0OS40MS0xMy45NCA1Ny41NyA3LjcgNDguNzgtMTcuNjA4IDY1LjktNTMuMTIgNjUuOWgtMzcuODJjLTcxLjYzOSAwLTExOC4wMjktMzcuODItMTcxLjY0LTM3LjgyVjI0MGgxMC45MmMyOC4zNiAwIDY3Ljk4LTcwLjg5IDk0LjU0LTk3LjQ2IDI4LjM2LTI4LjM2IDE4LjkxLTc1LjYzIDM3LjgyLTk0LjU0IDQ3LjI3IDAgNDcuMjcgMzIuOTggNDcuMjcgNTYuNzMgMCAzOS4xNy0yOC4zNiA1Ni43Mi0yOC4zNiA5NC41NGgxMDMuOTljMjEuMTEgMCAzNy43MyAxOC45MSAzNy44MiAzNy44Mi4wOSAxOC45LTEyLjgyIDM3LjgxLTIyLjI3IDM3LjgxIDEzLjQ4OSAxNC41NTUgMTYuMzcxIDQ1LjIzNi01LjIxIDY1LjYyek04OCA0MzJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0cy0yNC0xMC43NDUtMjQtMjQgMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaW1lc0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUgMC0yMDAtODkuNS0yMDAtMjAwUzE0NS41IDU2IDI1NiA1NnMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDB6bTEwMS44LTI2Mi4yTDI5NS42IDI1Nmw2Mi4yIDYyLjJjNC43IDQuNyA0LjcgMTIuMyAwIDE3bC0yMi42IDIyLjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMjk1LjZsLTYyLjIgNjIuMmMtNC43IDQuNy0xMi4zIDQuNy0xNyAwbC0yMi42LTIyLjZjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2Mi4yLTYyLjItNjIuMi02Mi4yYy00LjctNC43LTQuNy0xMi4zIDAtMTdsMjIuNi0yMi42YzQuNy00LjcgMTIuMy00LjcgMTcgMGw2Mi4yIDYyLjIgNjIuMi02Mi4yYzQuNy00LjcgMTIuMy00LjcgMTcgMGwyMi42IDIyLjZjNC43IDQuNyA0LjcgMTIuMyAwIDE3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RpcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMTI5LjEtMzAzLjhjLTMuOC00LjQtMTAuMy01LjQtMTUuMy0yLjVsLTgwIDQ4Yy0zLjYgMi4yLTUuOCA2LjEtNS44IDEwLjNzMi4yIDguMSA1LjggMTAuM2w4MCA0OGM1LjQgMy4yIDExLjggMS42IDE1LjMtMi41IDMuOC00LjUgMy45LTExIC4xLTE1LjVMMzQzLjYgMjA4bDMzLjYtNDAuM2MzLjgtNC41IDMuNy0xMS4xLS4xLTE1LjV6TTIyMCAyMDhjMC00LjItMi4yLTguMS01LjgtMTAuM2wtODAtNDhjLTUtMy0xMS41LTEuOS0xNS4zIDIuNS0zLjggNC41LTMuOSAxMS0uMSAxNS41bDMzLjYgNDAuMy0zMy42IDQwLjNjLTMuOCA0LjUtMy43IDExIC4xIDE1LjUgMy41IDQuMSA5LjkgNS43IDE1LjMgMi41bDgwLTQ4YzMuNi0yLjIgNS44LTYuMSA1LjgtMTAuM3ptMjggNjRjLTQ1LjQgMC0xMDAuOSAzOC4zLTEwNy44IDkzLjMtMS41IDExLjggNi45IDIxLjYgMTUuNSAxNy45QzE3OC40IDM3My41IDIxMiAzNjggMjQ4IDM2OHM2OS42IDUuNSA5Mi4zIDE1LjJjOC41IDMuNyAxNy02IDE1LjUtMTcuOS02LjktNTUtNjIuNC05My4zLTEwNy44LTkzLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVHJhc2hBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY4IDQxNmgyNGExMiAxMiAwIDAgMCAxMi0xMlYxODhhMTIgMTIgMCAwIDAtMTItMTJoLTI0YTEyIDEyIDAgMCAwLTEyIDEydjIxNmExMiAxMiAwIDAgMCAxMiAxMnpNNDMyIDgwaC04Mi40MWwtMzQtNTYuN0E0OCA0OCAwIDAgMCAyNzQuNDEgMEgxNzMuNTlhNDggNDggMCAwIDAtNDEuMTYgMjMuM0w5OC40MSA4MEgxNkExNiAxNiAwIDAgMCAwIDk2djE2YTE2IDE2IDAgMCAwIDE2IDE2aDE2djMzNmE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4aDE2YTE2IDE2IDAgMCAwIDE2LTE2Vjk2YTE2IDE2IDAgMCAwLTE2LTE2ek0xNzEuODQgNTAuOTFBNiA2IDAgMCAxIDE3NyA0OGg5NGE2IDYgMCAwIDEgNS4xNSAyLjkxTDI5My42MSA4MEgxNTQuMzl6TTM2OCA0NjRIODBWMTI4aDI4OHptLTIxMi00OGgyNGExMiAxMiAwIDAgMCAxMi0xMlYxODhhMTIgMTIgMCAwIDAtMTItMTJoLTI0YTEyIDEyIDAgMCAwLTEyIDEydjIxNmExMiAxMiAwIDAgMCAxMiAxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCAxMDRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTYgOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZ6bTAgMTQ0Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMC0yNDBDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTQ5LjcgMC05NS4xLTE4LjMtMTMwLjEtNDguNCAxNC45LTIzIDQwLjQtMzguNiA2OS42LTM5LjUgMjAuOCA2LjQgNDAuNiA5LjYgNjAuNSA5LjZzMzkuNy0zLjEgNjAuNS05LjZjMjkuMiAxIDU0LjcgMTYuNSA2OS42IDM5LjUtMzUgMzAuMS04MC40IDQ4LjQtMTMwLjEgNDguNHptMTYyLjctODQuMWMtMjQuNC0zMS40LTYyLjEtNTEuOS0xMDUuMS01MS45LTEwLjIgMC0yNiA5LjYtNTcuNiA5LjYtMzEuNSAwLTQ3LjQtOS42LTU3LjYtOS42LTQyLjkgMC04MC42IDIwLjUtMTA1LjEgNTEuOUM2MS45IDMzOS4yIDQ4IDI5OS4yIDQ4IDI1NmMwLTExMC4zIDg5LjctMjAwIDIwMC0yMDBzMjAwIDg5LjcgMjAwIDIwMGMwIDQzLjItMTMuOSA4My4yLTM3LjMgMTE1Ljl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNiAzMDRjLTI4LjcgMC00Mi41IDE2LTg5LjYgMTYtNDcuMSAwLTYwLjgtMTYtODkuNi0xNkM2MC4yIDMwNCAwIDM2NC4yIDAgNDM4LjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMjUuNmMwLTc0LjItNjAuMi0xMzQuNC0xMzQuNC0xMzQuNHpNNDAwIDQ2NEg0OHYtMjUuNmMwLTQ3LjYgMzguOC04Ni40IDg2LjQtODYuNCAxNC42IDAgMzguMyAxNiA4OS42IDE2IDUxLjcgMCA3NC45LTE2IDg5LjYtMTYgNDcuNiAwIDg2LjQgMzguOCA4Ni40IDg2LjRWNDY0ek0yMjQgMjg4Yzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzMwMy41IDAgMjI0IDAgODAgNjQuNSA4MCAxNDRzNjQuNSAxNDQgMTQ0IDE0NHptMC0yNDBjNTIuOSAwIDk2IDQzLjEgOTYgOTZzLTQzLjEgOTYtOTYgOTYtOTYtNDMuMS05Ni05NiA0My4xLTk2IDk2LTk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd0Nsb3NlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bTAgMzk0YzAgMy4zLTIuNyA2LTYgNkg1NGMtMy4zIDAtNi0yLjctNi02Vjg2YzAtMy4zIDIuNy02IDYtNmg0MDRjMy4zIDAgNiAyLjcgNiA2djM0MHpNMzU2LjUgMTk0LjZMMjk1LjEgMjU2bDYxLjQgNjEuNGM0LjYgNC42IDQuNiAxMi4xIDAgMTYuOGwtMjIuMyAyMi4zYy00LjYgNC42LTEyLjEgNC42LTE2LjggMEwyNTYgMjk1LjFsLTYxLjQgNjEuNGMtNC42IDQuNi0xMi4xIDQuNi0xNi44IDBsLTIyLjMtMjIuM2MtNC42LTQuNi00LjYtMTIuMSAwLTE2LjhsNjEuNC02MS40LTYxLjQtNjEuNGMtNC42LTQuNi00LjYtMTIuMSAwLTE2LjhsMjIuMy0yMi4zYzQuNi00LjYgMTIuMS00LjYgMTYuOCAwbDYxLjQgNjEuNCA2MS40LTYxLjRjNC42LTQuNiAxMi4xLTQuNiAxNi44IDBsMjIuMyAyMi4zYzQuNyA0LjYgNC43IDEyLjEgMCAxNi44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd01heGltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bTAgMzk0YzAgMy4zLTIuNyA2LTYgNkg1NGMtMy4zIDAtNi0yLjctNi02VjE5Mmg0MTZ2MjM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd01pbmltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA0ODBIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoNDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd1Jlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDBIMTQ0Yy0yNi41IDAtNDggMjEuNS00OCA0OHY0OEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyMGMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDhoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS05NiA0NjRINDhWMjU2aDMyMHYyMDh6bTk2LTk2aC00OFYxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTQ0VjQ4aDMyMHYzMjB6XCJ9fV19KShwcm9wcyk7XG59O1xuIiwiLy8gVEhJUyBGSUxFIElTIEFVVE8gR0VORVJBVEVEXG5pbXBvcnQgeyBHZW5JY29uIH0gZnJvbSAnLi4vbGliJztcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBbGFybUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAuNWEuNS41IDAgMCAxIC41LS41aDNhLjUuNSAwIDAgMSAwIDFIOXYxLjA3YTcuMDAxIDcuMDAxIDAgMCAxIDMuMjc0IDEyLjQ3NGwuNjAxLjYwMmEuNS41IDAgMCAxLS43MDcuNzA4bC0uNzQ2LS43NDZBNi45NyA2Ljk3IDAgMCAxIDggMTZhNi45NyA2Ljk3IDAgMCAxLTMuNDIyLS44OTJsLS43NDYuNzQ2YS41LjUgMCAwIDEtLjcwNy0uNzA4bC42MDItLjYwMkE3LjAwMSA3LjAwMSAwIDAgMSA3IDIuMDdWMWgtLjVBLjUuNSAwIDAgMSA2IC41em0yLjUgNWEuNS41IDAgMCAwLTEgMHYzLjM2MmwtMS40MjkgMi4zOGEuNS41IDAgMSAwIC44NTguNTE1bDEuNS0yLjVBLjUuNSAwIDAgMCA4LjUgOVY1LjV6TS44NiA1LjM4N0EyLjUgMi41IDAgMSAxIDQuMzg3IDEuODYgOC4wMzUgOC4wMzUgMCAwIDAgLjg2IDUuMzg3ek0xMS42MTMgMS44NmEyLjUgMi41IDAgMSAxIDMuNTI3IDMuNTI3IDguMDM1IDguMDM1IDAgMCAwLTMuNTI3LTMuNTI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcmNoaXZlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi42NDMgMTVDMTMuOTc5IDE1IDE1IDEzLjg0NSAxNSAxMi41VjVIMXY3LjVDMSAxMy44NDUgMi4wMjEgMTUgMy4zNTcgMTVoOS4yODZ6TTUuNSA3aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTF6TS44IDFhLjguOCAwIDAgMC0uOC44VjNhLjguOCAwIDAgMCAuOC44aDE0LjRBLjguOCAwIDAgMCAxNiAzVjEuOGEuOC44IDAgMCAwLS44LS44SC44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd0Rvd25DaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNOC41IDQuNWEuNS41IDAgMCAwLTEgMHY1Ljc5M0w1LjM1NCA4LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDMgM2EuNS41IDAgMCAwIC43MDggMGwzLTNhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1Y0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEFycm93RG93bkxlZnRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAwIDAgOGE4IDggMCAwIDAgMTYgMHptLTUuOTA0LTIuODAzYS41LjUgMCAxIDEgLjcwNy43MDdMNi43MDcgMTBoMi43NjhhLjUuNSAwIDAgMSAwIDFINS41YS41LjUgMCAwIDEtLjUtLjVWNi41MjVhLjUuNSAwIDAgMSAxIDB2Mi43NjhsNC4wOTYtNC4wOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEFycm93RG93bkxlZnRTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTZhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJ6bTguMDk2LTEwLjgwM0w2IDkuMjkzVjYuNTI1YS41LjUgMCAwIDAtMSAwVjEwLjVhLjUuNSAwIDAgMCAuNS41aDMuOTc1YS41LjUgMCAwIDAgMC0xSDYuNzA3bDQuMDk2LTQuMDk2YS41LjUgMCAxIDAtLjcwNy0uNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd0Rvd25SaWdodENpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDh6bTUuOTA0LTIuODAzYS41LjUgMCAxIDAtLjcwNy43MDdMOS4yOTMgMTBINi41MjVhLjUuNSAwIDAgMCAwIDFIMTAuNWEuNS41IDAgMCAwIC41LS41VjYuNTI1YS41LjUgMCAwIDAtMSAwdjIuNzY4TDUuOTA0IDUuMTk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd0Rvd25SaWdodFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTZhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMmEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJ6TTUuOTA0IDUuMTk3IDEwIDkuMjkzVjYuNTI1YS41LjUgMCAwIDEgMSAwVjEwLjVhLjUuNSAwIDAgMS0uNS41SDYuNTI1YS41LjUgMCAwIDEgMC0xaDIuNzY4TDUuMTk3IDUuOTA0YS41LjUgMCAwIDEgLjcwNy0uNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd0Rvd25TcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptNi41IDQuNXY1Ljc5M2wyLjE0Ni0yLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTMtM2EuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgMTAuMjkzVjQuNWEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQXJyb3dMZWZ0Q2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhOCA4IDAgMSAwIDAgMTZBOCA4IDAgMCAwIDggMHptMy41IDcuNWEuNS41IDAgMCAxIDAgMUg1LjcwN2wyLjE0NyAyLjE0NmEuNS41IDAgMCAxLS43MDguNzA4bC0zLTNhLjUuNSAwIDAgMSAwLS43MDhsMy0zYS41LjUgMCAxIDEgLjcwOC43MDhMNS43MDcgNy41SDExLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEFycm93TGVmdFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTRhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJ6bS00LjUtNi41SDUuNzA3bDIuMTQ3LTIuMTQ2YS41LjUgMCAxIDAtLjcwOC0uNzA4bC0zIDNhLjUuNSAwIDAgMCAwIC43MDhsMyAzYS41LjUgMCAwIDAgLjcwOC0uNzA4TDUuNzA3IDguNUgxMS41YS41LjUgMCAwIDAgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd1JpZ2h0Q2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhOCA4IDAgMSAxIDAgMTZBOCA4IDAgMCAxIDggMHpNNC41IDcuNWEuNS41IDAgMCAwIDAgMWg1Ljc5M2wtMi4xNDcgMi4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwzLTNhLjUuNSAwIDAgMCAwLS43MDhsLTMtM2EuNS41IDAgMSAwLS43MDguNzA4TDEwLjI5MyA3LjVINC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd1JpZ2h0U3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMmEyIDIgMCAwIDAtMiAydjEyem00LjUtNi41aDUuNzkzTDguMTQ2IDUuMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4bDMgM2EuNS41IDAgMCAxIDAgLjcwOGwtMyAzYS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyA4LjVINC41YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd1VwQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMCAwIDhhOCA4IDAgMCAwIDE2IDB6bS03LjUgMy41YS41LjUgMCAwIDEtMSAwVjUuNzA3TDUuMzU0IDcuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDMtM2EuNS41IDAgMCAxIC43MDggMGwzIDNhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgNS43MDdWMTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQXJyb3dVcExlZnRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHptLTUuOTA0IDIuODAzYS41LjUgMCAxIDAgLjcwNy0uNzA3TDYuNzA3IDZoMi43NjhhLjUuNSAwIDEgMCAwLTFINS41YS41LjUgMCAwIDAtLjUuNXYzLjk3NWEuNS41IDAgMCAwIDEgMFY2LjcwN2w0LjA5NiA0LjA5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQXJyb3dVcExlZnRTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptOC4wOTYgMTAuODAzTDYgNi43MDd2Mi43NjhhLjUuNSAwIDAgMS0xIDBWNS41YS41LjUgMCAwIDEgLjUtLjVoMy45NzVhLjUuNSAwIDEgMSAwIDFINi43MDdsNC4wOTYgNC4wOTZhLjUuNSAwIDEgMS0uNzA3LjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQXJyb3dVcFJpZ2h0Q2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDhhOCA4IDAgMSAwIDE2IDBBOCA4IDAgMCAwIDAgOHptNS45MDQgMi44MDNhLjUuNSAwIDEgMS0uNzA3LS43MDdMOS4yOTMgNkg2LjUyNWEuNS41IDAgMSAxIDAtMUgxMC41YS41LjUgMCAwIDEgLjUuNXYzLjk3NWEuNS41IDAgMCAxLTEgMFY2LjcwN2wtNC4wOTYgNC4wOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEFycm93VXBSaWdodFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMnpNNS45MDQgMTAuODAzIDEwIDYuNzA3djIuNzY4YS41LjUgMCAwIDAgMSAwVjUuNWEuNS41IDAgMCAwLS41LS41SDYuNTI1YS41LjUgMCAxIDAgMCAxaDIuNzY4bC00LjA5NiA0LjA5NmEuNS41IDAgMCAwIC43MDcuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBcnJvd1VwU3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyem02LjUtNC41VjUuNzA3bDIuMTQ2IDIuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC0zLTNhLjUuNSAwIDAgMC0uNzA4IDBsLTMgM2EuNS41IDAgMSAwIC43MDguNzA4TDcuNSA1LjcwN1YxMS41YS41LjUgMCAwIDAgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxBc3BlY3RSYXRpb0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMi41di05QTEuNSAxLjUgMCAwIDEgMS41IDJoMTNBMS41IDEuNSAwIDAgMSAxNiAzLjV2OWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMCAxMi41ek0yLjUgNGEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMFY1aDIuNWEuNS41IDAgMCAwIDAtMWgtM3ptMTEgOGEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtMSAwVjExaC0yLjVhLjUuNSAwIDAgMCAwIDFoM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQXdhcmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggMCAxLjY2OS44NjQgMS44NTguMjgyLjg0MiAxLjY4IDEuMzM3IDEuMzJMMTMuNCA2bC4zMDYgMS44NTQtMS4zMzcgMS4zMi0uODQyIDEuNjgtMS44NTguMjgyTDggMTJsLTEuNjY5LS44NjQtMS44NTgtLjI4Mi0uODQyLTEuNjgtMS4zMzctMS4zMkwyLjYgNmwtLjMwNi0xLjg1NCAxLjMzNy0xLjMyLjg0Mi0xLjY4TDYuMzMxLjg2NCA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMS43OTRWMTZsNC0xIDQgMXYtNC4yMDZsLTIuMDE4LjMwNkw4IDEzLjEyNiA2LjAxOCAxMi4xIDQgMTEuNzk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCYWNrc3BhY2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY4MyAzYTIgMiAwIDAgMC0yLTJoLTcuMDhhMiAyIDAgMCAwLTEuNTE5LjY5OEwuMjQxIDcuMzVhMSAxIDAgMCAwIDAgMS4zMDJsNC44NDMgNS42NUEyIDIgMCAwIDAgNi42MDMgMTVoNy4wOGEyIDIgMCAwIDAgMi0yVjN6TTUuODI5IDUuODU0YS41LjUgMCAxIDEgLjcwNy0uNzA4bDIuMTQ3IDIuMTQ3IDIuMTQ2LTIuMTQ3YS41LjUgMCAxIDEgLjcwNy43MDhMOS4zOSA4bDIuMTQ2IDIuMTQ2YS41LjUgMCAwIDEtLjcwNy43MDhMOC42ODMgOC43MDdsLTIuMTQ3IDIuMTQ3YS41LjUgMCAwIDEtLjcwNy0uNzA4TDcuOTc2IDggNS44MjkgNS44NTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhY2tzcGFjZVJldmVyc2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgM2EyIDIgMCAwIDEgMi0yaDcuMDhhMiAyIDAgMCAxIDEuNTE5LjY5OGw0Ljg0MyA1LjY1MWExIDEgMCAwIDEgMCAxLjMwMkwxMC42IDE0LjNhMiAyIDAgMCAxLTEuNTIuN0gyYTIgMiAwIDAgMS0yLTJWM3ptOS44NTQgMi44NTRhLjUuNSAwIDAgMC0uNzA4LS43MDhMNyA3LjI5MyA0Ljg1NCA1LjE0NmEuNS41IDAgMSAwLS43MDguNzA4TDYuMjkzIDhsLTIuMTQ3IDIuMTQ2YS41LjUgMCAwIDAgLjcwOC43MDhMNyA4LjcwN2wyLjE0NiAyLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOEw3LjcwNyA4bDIuMTQ3LTIuMTQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCYWRnZTNERmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4xNTcgNS45NjhoLS44NDR2NC4wNmguODQ0YzEuMTE2IDAgMS42MjEtLjY2NyAxLjYyMS0yLjAyIDAtMS4zNTQtLjUxLTIuMDQtMS42MjEtMi4wNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptNS4xODQgNC4zNjhjLjY0NiAwIDEuMDU1LjM3OCAxLjA2LjkuMDA4LjUzNy0uNDI3LjkxOS0xLjA4Ni45MTktLjU5OC0uMDA0LTEuMDM3LS4zMjUtMS4wNjgtLjc1NkgzYy4wMy45MTQuNzkxIDEuNjg4IDIuMTUzIDEuNjg4IDEuMjQgMCAyLjI4NS0uNjYgMi4yNzItMS43OTgtLjAxMy0uOTUzLS43NDctMS4zOC0xLjI5Mi0xLjQzMnYtLjA2MmMuNDQtLjA3IDEuMTI1LS41MjcgMS4xMDgtMS4zNzUtLjAxMy0uOTA2LS44LTEuNTctMi4wNTMtMS41NjUtMS4zMS4wMDUtMi4wNDMuNzM0LTIuMDc0IDEuNjdoMS4xMDNjLjAyMi0uMzkxLjM4My0uNzUxLjkzNi0uNzUxLjUzMiAwIC45MjguMzMuOTI4LjgxMy4wMDQuNDc5LS4zODMuODM1LS45MjguODM1aC0uNjMydi45MTRoLjY2M3pNOC4xMjYgMTFoMi4xODlDMTIuMTI1IDExIDEzIDkuODkzIDEzIDcuOTg1YzAtMS44OTQtLjg2MS0yLjk4NC0yLjY4NS0yLjk4NEg4LjEyNlYxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFkZ2U0S0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41NzcgOC45di4wM2gxLjgyOFY1Ljg5OGgtLjA2MmE0Ni43ODEgNDYuNzgxIDAgMCAwLTEuNzY2IDMuMDAxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem0yLjM3MiAzLjcxNS40MzUtLjcxNGgxLjcxdjMuOTNoLjczM3YuOTU3aC0uNzMzVjExSDUuNDA1VjkuODg4SDIuNXYtLjk3MWMuNTc0LTEuMDc3IDEuMjI1LTIuMTQyIDEuODcyLTMuMjAyem03LjczLS43MTRoMS4zMDZsLTIuMTQgMi41ODRMMTMuNSAxMWgtMS40MjhsLTEuNjc5LTIuNjI0LS42MTUuN1YxMUg4LjU5VjUuMDAxaDEuMTg3djIuNjg2aC4wNTdMMTIuMTAyIDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZGdlOEtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOSA2LjYwNWMwIC41MS40MDUuODY2Ljk1Ljg2Ni41NDUgMCAuOTQ1LS4zNTYuOTQ1LS44NjZzLS40LS44NTItLjk0NS0uODUyYy0uNTQ1IDAtLjk1LjM0My0uOTUuODUyem0tLjE5MiAyLjY2OGMwIC41ODkuNDkyLjk4NCAxLjE0Mi45ODQuNjQ2IDAgMS4xNDMtLjM5NSAxLjE0My0uOTg0UzUuNDk2IDguMjggNC44NSA4LjI4Yy0uNjUgMC0xLjE0Mi40MDQtMS4xNDIuOTkzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem01LjE3IDcuMzQ4YzAgMS4wNDEtLjkyNyAxLjc2Ni0yLjMzMyAxLjc2Ni0xLjQwNiAwLTIuMzEyLS43Mi0yLjMxMi0xLjc2MiAwLS45NTQuNzEyLTEuMzg0IDEuMjU3LTEuNDk0di0uMDUzYy0uNTEtLjE1NC0xLjAyLS41NTgtMS4wMi0xLjMzMSAwLS45MTQuODMxLTEuNTg3IDIuMDg4LTEuNTg3IDEuMjUzIDAgMi4wODMuNjczIDIuMDgzIDEuNTg3IDAgLjc4Mi0uNTIzIDEuMTgyLTEuMDIgMS4zMzF2LjA1M2MuNTQ1LjExIDEuMjU3LjU0NSAxLjI1NyAxLjQ5ek0xMi4xMDIgNWgxLjMwNmwtMi4xNCAyLjU4NCAyLjIzMiAzLjQxNWgtMS40MjhsLTEuNjc5LTIuNjI0LS42MTUuNjk5djEuOTI1SDguNTlWNWgxLjE4N3YyLjY4NWguMDU3TDEyLjEwMiA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCYWRnZUFkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4zNSA4LjMzN2MwLS42OTktLjQyLTEuMTM4LTEuMDAxLTEuMTM4LS41ODQgMC0uOTU0LjQ0NC0uOTU0IDEuMjM5di40NTNjMCAuOC4zNzQgMS4yNDguOTcyIDEuMjQ4LjU4OCAwIC45ODQtLjQ0Ljk4NC0xLjJ2LS42MDJ6bS01LjQxMy4yMzctLjczNC0yLjQyNkg1LjE1bC0uNzM0IDIuNDI2aDEuNTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6bTYuMjA5IDYuMzJjMC0xLjI4LjY5NC0yLjA0NCAxLjc1My0yLjA0NC42NTUgMCAxLjE1Ni4yOTQgMS4zMzYuNzY5aC4wNTN2LTIuMzZoMS4xNlYxMWgtMS4xMzh2LS43NDdoLS4wNTdjLS4xNDUuNDc0LS42OS44MDQtMS4zNjcuODA0LTEuMDU1IDAtMS43NC0uNzY0LTEuNzQtMi4wNDN2LS42OTV6bS00LjA0IDEuMTM4TDMuNyAxMUgyLjVsMi4wMTMtNS45OTlINS45TDcuOTA1IDExSDYuNjQ0bC0uNDctMS41NDJINC4xN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFkZ2VBckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi4wMzEgOC41NzQtLjczNC0yLjQyNmgtLjA1Mkw0LjUxIDguNTc0aDEuNTJ6bTMuNjQyLTIuNjQxdjEuOTM4aDEuMDMzYy42NiAwIDEuMDY4LS4zMTYgMS4wNjgtLjk1IDAtLjY0LS40MjItLjk4OC0xLjA1LS45ODhoLTEuMDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTQuMjY1IDUuNDU4aDIuMDA0TDYuNzM5IDExSDhMNS45OTYgNS4wMDFINC42MDdMMi41OTUgMTFoMS4ybC40Ny0xLjU0MnpNOC41IDV2NmgxLjE3M1Y4Ljc2M2gxLjA2NEwxMS43ODcgMTFoMS4zMjdMMTEuOTEgOC41ODNDMTIuNDU1IDguMzczIDEzIDcuNzc5IDEzIDYuOWMwLTEuMTQ3LS43NzMtMS45LTIuMTA1LTEuOUg4LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZGdlQ2NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem0zLjAyNyA0LjAwMmMtLjgzIDAtMS4zMTkuNjQyLTEuMzE5IDEuNzUzdi43NDNjMCAxLjEwNy40OCAxLjcyNyAxLjMxOSAxLjcyNy42OSAwIDEuMTM4LS40MzUgMS4xODYtMS4wNUg3LjM2di4xMTRjLS4wNTcgMS4xNDctMS4wMjggMS45MzgtMi4zNDIgMS45MzgtMS42MTMgMC0yLjUxOC0xLjAyOC0yLjUxOC0yLjcyOXYtLjc0N0MyLjUgNi4wNTEgMy40MTQgNSA1LjAxOCA1YzEuMzE4IDAgMi4yOS44MTMgMi4zNDIgMnYuMTFINi4yMTNjLS4wNDgtLjYzOC0uNTA1LTEuMTA4LTEuMTg2LTEuMTA4em02LjE0IDBjLS44MzEgMC0xLjMxOS42NDItMS4zMTkgMS43NTN2Ljc0M2MwIDEuMTA3LjQ4IDEuNzI3IDEuMzE4IDEuNzI3LjY5IDAgMS4xMzktLjQzNSAxLjE4Ny0xLjA1SDEzLjV2LjExNGMtLjA1NyAxLjE0Ny0xLjAyOCAxLjkzOC0yLjM0MiAxLjkzOC0xLjYxMyAwLTIuNTE4LTEuMDI4LTIuNTE4LTIuNzI5di0uNzQ3YzAtMS43LjkxNC0yLjc1MSAyLjUxOC0yLjc1MSAxLjMxOCAwIDIuMjkuODEzIDIuMzQyIDJ2LjExaC0xLjE0N2MtLjA0OC0uNjM4LS41MDUtMS4xMDgtMS4xODctMS4xMDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZGdlSGRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUzIDUuOTY4aC0uODQzdjQuMDZoLjg0M2MxLjExNyAwIDEuNjIyLS42NjcgMS42MjItMi4wMiAwLTEuMzU0LS41MS0yLjA0LTEuNjIyLTIuMDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6bTUuMzk2IDMuMDAxVjExSDYuMjA5VjguNDNIMy42ODdWMTFIMi41VjUuMDAxaDEuMTg3djIuNDRoMi41MjJWNWgxLjE4N3pNOC41IDExVjUuMDAxaDIuMTg4YzEuODI0IDAgMi42ODUgMS4wOSAyLjY4NSAyLjk4NEMxMy4zNzMgOS44OTMgMTIuNSAxMSAxMC42OSAxMUg4LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZGdlVG1GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem0zLjI5NSAzLjk5NVYxMUg0LjEwNFY1Ljk5NWgtMS43VjVIN3YuOTk0SDUuMjk1ek04LjY5MiA3LjAxVjExSDcuNjMzVjUuMDAxaDEuMjA5bDEuNzEgMy44OTRoLjAzOWwxLjcxLTMuODk0SDEzLjVWMTFoLTEuMDcyVjcuMDFoLS4wNTdsLTEuNDIgMy4yMzloLS43NzNMOC43NSA3LjAwOGgtLjA1OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFkZ2VWb0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMjk2IDguMzk0di0uNzgyYzAtMS4xNTYtLjU3MS0xLjczNi0xLjM2Mi0xLjczNi0uNzk2IDAtMS4zNjMuNTgtMS4zNjMgMS43MzZ2Ljc4MmMwIDEuMTU2LjU2NyAxLjczMiAxLjM2MyAxLjczMi43OSAwIDEuMzYyLS41NzYgMS4zNjItMS43MzJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6bTExLjUgNS42MnYuNzdjMCAxLjY5MS0uOTYyIDIuNzI0LTIuNTY2IDIuNzI0LTEuNjA0IDAtMi41NzEtMS4wMzMtMi41NzEtMi43MjR2LS43N2MwLTEuNzA0Ljk2Ny0yLjczMyAyLjU3LTIuNzMzIDEuNjA1IDAgMi41NjcgMS4wMzcgMi41NjcgMi43MzR6TTUuOTM3IDExSDQuNTA4TDIuNSA1LjAwMWgxLjM3NUw1LjIyIDkuNzA4aC4wNTdMNi42MSA1LjAwMWgxLjMxOEw1LjkzNyAxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFkZ2VWckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS42NzMgNS45MzN2MS45MzhoMS4wMzNjLjY2IDAgMS4wNjgtLjMxNiAxLjA2OC0uOTUgMC0uNjQtLjQyMi0uOTg4LTEuMDUtLjk4OGgtMS4wNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptNS45MzcgNyAxLjk5LTUuOTk5SDYuNjFMNS4yNzcgOS43MDhINS4yMkwzLjg3NSA1LjAwMUgyLjVMNC41MDggMTFoMS40Mjl6TTguNSA1LjAwMVYxMWgxLjE3M1Y4Ljc2M2gxLjA2NEwxMS43ODcgMTFoMS4zMjdMMTEuOTEgOC41ODNDMTIuNDU1IDguMzczIDEzIDcuNzc5IDEzIDYuOWMwLTEuMTQ3LS43NzMtMS45LTIuMTA1LTEuOUg4LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZGdlV2NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY0em0xMS42NjYgMS44OWMuNjgyIDAgMS4xMzkuNDcgMS4xODcgMS4xMDdIMTR2LS4xMWMtLjA1My0xLjE4Ny0xLjAyNC0yLTIuMzQyLTItMS42MDQgMC0yLjUxOCAxLjA1LTIuNTE4IDIuNzUxdi43NDdjMCAxLjcuOTA1IDIuNzMgMi41MTggMi43MyAxLjMxNCAwIDIuMjg1LS43OTIgMi4zNDItMS45Mzl2LS4xMTRoLTEuMTQ3Yy0uMDQ4LjYxNS0uNDk3IDEuMDUtMS4xODcgMS4wNS0uODM5IDAtMS4zMTgtLjYyLTEuMzE4LTEuNzI3di0uNzQyYzAtMS4xMTIuNDg4LTEuNzU0IDEuMzE4LTEuNzU0em0tNi4xODguOTI2aC4wNDRMNi41NDIgMTFoMS4wMDZMOSA1LjAwMUg3LjgxOGwtLjgyIDQuMzU1aC0uMDU2TDUuOTcgNS4wMDFoLS45NGwtLjk3MiA0LjM1NWgtLjA1M2wtLjgyNy00LjM1NUgyTDMuNDUyIDExaDEuMDA1bDEuMDItNC4xODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZ0NoZWNrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuNSAzLjVhMi41IDIuNSAwIDAgMC01IDBWNGg1di0uNXptMSAwVjRIMTV2MTBhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWNGgzLjV2LS41YTMuNSAzLjUgMCAxIDEgNyAwem0tLjY0NiA1LjM1NGEuNS41IDAgMCAwLS43MDgtLjcwOEw3LjUgMTAuNzkzIDYuMzU0IDkuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMS41IDEuNWEuNS41IDAgMCAwIC43MDggMGwzLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZ0Rhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC41IDMuNWEyLjUgMi41IDAgMCAwLTUgMFY0aDV2LS41em0xIDBWNEgxNXYxMGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY0aDMuNXYtLjVhMy41IDMuNSAwIDEgMSA3IDB6TTYgOS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFnRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhMi41IDIuNSAwIDAgMSAyLjUgMi41VjRoLTV2LS41QTIuNSAyLjUgMCAwIDEgOCAxem0zLjUgM3YtLjVhMy41IDMuNSAwIDEgMC03IDBWNEgxdjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlY0aC0zLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhZ1BsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC41IDMuNWEyLjUgMi41IDAgMCAwLTUgMFY0aDV2LS41em0xIDBWNEgxNXYxMGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY0aDMuNXYtLjVhMy41IDMuNSAwIDEgMSA3IDB6TTguNSA4YS41LjUgMCAwIDAtMSAwdjEuNUg2YS41LjUgMCAwIDAgMCAxaDEuNVYxMmEuNS41IDAgMCAwIDEgMHYtMS41SDEwYS41LjUgMCAwIDAgMC0xSDguNVY4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCYWdYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuNSAzLjVhMi41IDIuNSAwIDAgMC01IDBWNGg1di0uNXptMSAwVjRIMTV2MTBhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWNGgzLjV2LS41YTMuNSAzLjUgMCAxIDEgNyAwek02Ljg1NCA4LjE0NmEuNS41IDAgMSAwLS43MDguNzA4TDcuMjkzIDEwbC0xLjE0NyAxLjE0NmEuNS41IDAgMCAwIC43MDguNzA4TDggMTAuNzA3bDEuMTQ2IDEuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4TDguNzA3IDEwbDEuMTQ3LTEuMTQ2YS41LjUgMCAwIDAtLjcwOC0uNzA4TDggOS4yOTMgNi44NTQgOC4xNDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhckNoYXJ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDExYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTF2LTN6bTUtNGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjd6bTUtNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFyQ2hhcnRMaW5lRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjEyaC41YS41LjUgMCAwIDEgMCAxSC41YS41LjUgMCAwIDEgMC0xSDF2LTNhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2M2gxVjdhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2N2gxVjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJhc2tldEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4wNzEgMS4yNDNhLjUuNSAwIDAgMSAuODU4LjUxNEwzLjM4MyA2aDkuMjM0TDEwLjA3IDEuNzU3YS41LjUgMCAxIDEgLjg1OC0uNTE0TDEzLjc4MyA2SDE1LjVhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41SDE1djVhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWOUguNWEuNS41IDAgMCAxLS41LS41di0yQS41LjUgMCAwIDEgLjUgNmgxLjcxN0w1LjA3IDEuMjQzek0zLjUgMTAuNWEuNS41IDAgMSAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zem0yLjUgMGEuNS41IDAgMSAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zem0yLjUgMGEuNS41IDAgMSAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zem0yLjUgMGEuNS41IDAgMSAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zem0yLjUgMGEuNS41IDAgMSAwLTEgMHYzYS41LjUgMCAwIDAgMSAwdi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCYXNrZXQyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjkyOSAxLjc1N2EuNS41IDAgMSAwLS44NTgtLjUxNEwyLjIxNyA2SC41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWguNjIzbDEuODQ0IDYuNDU2QS43NS43NSAwIDAgMCAzLjY5IDE1aDguNjIyYS43NS43NSAwIDAgMCAuNzIyLS41NDRMMTQuODc3IDhoLjYyM2EuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTEuNzE3TDEwLjkzIDEuMjQzYS41LjUgMCAxIDAtLjg1OC41MTRMMTIuNjE3IDZIMy4zODNMNS45MyAxLjc1N3pNNCAxMGExIDEgMCAwIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMnptMyAwYTEgMSAwIDAgMSAyIDB2MmExIDEgMCAxIDEtMiAwdi0yem00LTFhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDEgMS0yIDB2LTJhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQmFza2V0M0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS43NTcgMS4wNzFhLjUuNSAwIDAgMSAuMTcyLjY4NkwzLjM4MyA2aDkuMjM0TDEwLjA3IDEuNzU3YS41LjUgMCAxIDEgLjg1OC0uNTE0TDEzLjc4MyA2SDE1LjVhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41SC41YS41LjUgMCAwIDEtLjUtLjV2LTFBLjUuNSAwIDAgMSAuNSA2aDEuNzE3TDUuMDcgMS4yNDNhLjUuNSAwIDAgMSAuNjg2LS4xNzJ6TTIuNDY4IDE1LjQyNi45NDMgOWgxNC4xMTRsLTEuNTI1IDYuNDI2YS43NS43NSAwIDAgMS0uNzI5LjU3NEgzLjE5N2EuNzUuNzUgMCAwIDEtLjczLS41NzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJlbGxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZhMiAyIDAgMCAwIDItMkg2YTIgMiAwIDAgMCAyIDJ6bS45OTUtMTQuOTAxYTEgMSAwIDEgMC0xLjk5IDBBNS4wMDIgNS4wMDIgMCAwIDAgMyA2YzAgMS4wOTgtLjUgNi0yIDdoMTRjLTEuNS0xLTItNS45MDItMi03IDAtMi40Mi0xLjcyLTQuNDQtNC4wMDUtNC45MDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJlbGxTbGFzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4xNjQgMTRIMTVjLTEuNS0xLTItNS45MDItMi03IDAtLjI2NC0uMDItLjUyMy0uMDYtLjc3Nkw1LjE2NCAxNHptNi4yODgtMTAuNjE3QTQuOTg4IDQuOTg4IDAgMCAwIDguOTk1IDIuMWExIDEgMCAxIDAtMS45OSAwQTUuMDAyIDUuMDAyIDAgMCAwIDMgN2MwIC44OTgtLjMzNSA0LjM0Mi0xLjI3OCA2LjExM2w5LjczLTkuNzN6TTEwIDE1YTIgMiAwIDEgMS00IDBoNHptLTkuMzc1LjYyNWEuNTMuNTMgMCAwIDAgLjc1Ljc1bDE0Ljc1LTE0Ljc1YS41My41MyAwIDAgMC0uNzUtLjc1TC42MjUgMTUuNjI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCaW5vY3VsYXJzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgMUExLjUgMS41IDAgMCAwIDMgMi41VjNoNHYtLjVBMS41IDEuNSAwIDAgMCA1LjUgMWgtMXpNNyA0djFoMlY0aDR2Ljg4MmEuNS41IDAgMCAwIC4yNzYuNDQ3bC44OTUuNDQ3QTEuNSAxLjUgMCAwIDEgMTUgNy4xMThWMTNIOXYtMS41YS41LjUgMCAwIDEgLjE0Ni0uMzU0bC44NTQtLjg1M1Y5LjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjV2Ljc5M2wuODU0Ljg1M0EuNS41IDAgMCAxIDcgMTEuNVYxM0gxVjcuMTE4YTEuNSAxLjUgMCAwIDEgLjgzLTEuMzQybC44OTQtLjQ0N0EuNS41IDAgMCAwIDMgNC44ODJWNGg0ek0xIDE0di41QTEuNSAxLjUgMCAwIDAgMi41IDE2aDNBMS41IDEuNSAwIDAgMCA3IDE0LjVWMTRIMXptOCAwdi41YTEuNSAxLjUgMCAwIDAgMS41IDEuNWgzYTEuNSAxLjUgMCAwIDAgMS41LTEuNVYxNEg5em00LTExSDl2LS41QTEuNSAxLjUgMCAwIDEgMTAuNSAxaDFBMS41IDEuNSAwIDAgMSAxMyAyLjVWM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQm9va0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxLjc4M0M3LjAxNS45MzYgNS41ODcuODEgNC4yODcuOTRjLTEuNTE0LjE1My0zLjA0Mi42NzItMy45OTQgMS4xMDVBLjUuNSAwIDAgMCAwIDIuNXYxMWEuNS41IDAgMCAwIC43MDcuNDU1Yy44ODItLjQgMi4zMDMtLjg4MSAzLjY4LTEuMDIgMS40MDktLjE0MiAyLjU5LjA4NyAzLjIyMy44NzdhLjUuNSAwIDAgMCAuNzggMGMuNjMzLS43OSAxLjgxNC0xLjAxOSAzLjIyMi0uODc3IDEuMzc4LjEzOSAyLjguNjIgMy42ODEgMS4wMkEuNS41IDAgMCAwIDE2IDEzLjV2LTExYS41LjUgMCAwIDAtLjI5My0uNDU1Yy0uOTUyLS40MzMtMi40OC0uOTUyLTMuOTk0LTEuMTA1QzEwLjQxMy44MDkgOC45ODUuOTM2IDggMS43ODN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJvb2ttYXJrQ2hlY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDE1LjVWMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMy41YS41LjUgMCAwIDEtLjc0LjQzOUw4IDEzLjA2OWwtNS4yNiAyLjg3QS41LjUgMCAwIDEgMiAxNS41em04Ljg1NC05LjY0NmEuNS41IDAgMCAwLS43MDgtLjcwOEw3LjUgNy43OTMgNi4zNTQgNi42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwxLjUgMS41YS41LjUgMCAwIDAgLjcwOCAwbDMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQm9va21hcmtEYXNoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAxNS41VjJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NC40MzlMOCAxMy4wNjlsLTUuMjYgMi44N0EuNS41IDAgMCAxIDIgMTUuNXpNNiA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQm9va21hcmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMnYxMy41YS41LjUgMCAwIDAgLjc0LjQzOUw4IDEzLjA2OWw1LjI2IDIuODdBLjUuNSAwIDAgMCAxNCAxNS41VjJhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJvb2ttYXJrSGVhcnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTUuNWEuNS41IDAgMCAwIC43NC40MzlMOCAxMy4wNjlsNS4yNiAyLjg3QS41LjUgMCAwIDAgMTQgMTUuNVYyYTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEzLjV6TTggNC40MWMxLjM4Ny0xLjQyNSA0Ljg1NCAxLjA3IDAgNC4yNzdDMy4xNDYgNS40OCA2LjYxMyAyLjk4NiA4IDQuNDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCb29rbWFya1BsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDE1LjVWMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMy41YS41LjUgMCAwIDEtLjc0LjQzOUw4IDEzLjA2OWwtNS4yNiAyLjg3QS41LjUgMCAwIDEgMiAxNS41em02LjUtMTFhLjUuNSAwIDAgMC0xIDBWNkg2YS41LjUgMCAwIDAgMCAxaDEuNXYxLjVhLjUuNSAwIDAgMCAxIDBWN0gxMGEuNS41IDAgMCAwIDAtMUg4LjVWNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCb29rbWFya1N0YXJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDE1LjVWMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMy41YS41LjUgMCAwIDEtLjc0LjQzOUw4IDEzLjA2OWwtNS4yNiAyLjg3QS41LjUgMCAwIDEgMiAxNS41ek04LjE2IDQuMWEuMTc4LjE3OCAwIDAgMC0uMzIgMGwtLjYzNCAxLjI4NWEuMTc4LjE3OCAwIDAgMS0uMTM0LjA5OGwtMS40Mi4yMDZhLjE3OC4xNzggMCAwIDAtLjA5OC4zMDNMNi41OCA2Ljk5M2MuMDQyLjA0MS4wNjEuMS4wNTEuMTU4TDYuMzkgOC41NjVhLjE3OC4xNzggMCAwIDAgLjI1OC4xODdsMS4yNy0uNjY4YS4xNzguMTc4IDAgMCAxIC4xNjUgMGwxLjI3LjY2OGEuMTc4LjE3OCAwIDAgMCAuMjU3LS4xODdMOS4zNjggNy4xNWEuMTc4LjE3OCAwIDAgMSAuMDUtLjE1OGwxLjAyOC0xLjAwMWEuMTc4LjE3OCAwIDAgMC0uMDk4LS4zMDNsLTEuNDItLjIwNmEuMTc4LjE3OCAwIDAgMS0uMTM0LS4wOThMOC4xNiA0LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJvb2ttYXJrWEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMTUuNVYyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEzLjVhLjUuNSAwIDAgMS0uNzQuNDM5TDggMTMuMDY5bC01LjI2IDIuODdBLjUuNSAwIDAgMSAyIDE1LjV6TTYuODU0IDUuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhMNy4yOTMgNyA2LjE0NiA4LjE0NmEuNS41IDAgMSAwIC43MDguNzA4TDggNy43MDdsMS4xNDYgMS4xNDdhLjUuNSAwIDEgMCAuNzA4LS43MDhMOC43MDcgN2wxLjE0Ny0xLjE0NmEuNS41IDAgMCAwLS43MDgtLjcwOEw4IDYuMjkzIDYuODU0IDUuMTQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCb29rbWFya3NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNGEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMS41YS41LjUgMCAwIDEtLjc3Ny40MTZMNyAxMy4xMDFsLTQuMjIzIDIuODE1QS41LjUgMCAwIDEgMiAxNS41VjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4yNjggMUEyIDIgMCAwIDEgNiAwaDZhMiAyIDAgMCAxIDIgMnYxMS41YS41LjUgMCAwIDEtLjc3Ny40MTZMMTMgMTMuNzY4VjJhMSAxIDAgMCAwLTEtMUg0LjI2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQm9vdHN0cmFwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjM3NSA3LjEyNVY0LjY1OGgxLjc4Yy45NzMgMCAxLjU0Mi40NTcgMS41NDIgMS4yMzcgMCAuODAyLS42MDQgMS4yMy0xLjc2NCAxLjIzSDYuMzc1em0wIDMuNzYyaDEuODk4YzEuMTg0IDAgMS44MS0uNDggMS44MS0xLjM3NyAwLS44ODUtLjY1LTEuMzQ4LTEuODg2LTEuMzQ4SDYuMzc1djIuNzI1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMDAyIDBhNCA0IDAgMCAwLTQgNHY4YTQgNCAwIDAgMCA0IDRoOGE0IDQgMCAwIDAgNC00VjRhNCA0IDAgMCAwLTQtNGgtOHptMS4wNiAxMlYzLjU0NWgzLjM5OWMxLjU4NyAwIDIuNTQzLjgwOSAyLjU0MyAyLjExIDAgLjg4NC0uNjUgMS42NzUtMS40ODMgMS44MTZ2LjFjMS4xNDMuMTE3IDEuOTA0LjkzMSAxLjkwNCAyLjAzMyAwIDEuNDg4LTEuMDg0IDIuMzk2LTIuODg4IDIuMzk2SDUuMDYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCcmllZmNhc2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxQTEuNSAxLjUgMCAwIDAgNSAyLjVWM0gxLjVBMS41IDEuNSAwIDAgMCAwIDQuNXYxLjM4NGw3LjYxNCAyLjAzYTEuNSAxLjUgMCAwIDAgLjc3MiAwTDE2IDUuODg0VjQuNUExLjUgMS41IDAgMCAwIDE0LjUgM0gxMXYtLjVBMS41IDEuNSAwIDAgMCA5LjUgMWgtM3ptMCAxaDNhLjUuNSAwIDAgMSAuNS41VjNINnYtLjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyLjVBMS41IDEuNSAwIDAgMCAxLjUgMTRoMTNhMS41IDEuNSAwIDAgMCAxLjUtMS41VjYuODVMOC4xMjkgOC45NDdhLjUuNSAwIDAgMS0uMjU4IDBMMCA2Ljg1djUuNjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEJyaWdodG5lc3NBbHRIaWdoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDN6bTggOGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIC41LjV6bS0xMy41LjVhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMCAwIDFoMnptMTEuMTU3LTYuMTU3YS41LjUgMCAwIDEgMCAuNzA3bC0xLjQxNCAxLjQxNGEuNS41IDAgMSAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptLTkuOSAyLjEyMWEuNS41IDAgMCAwIC43MDctLjcwN0wzLjA1IDUuMzQzYS41LjUgMCAxIDAtLjcwNy43MDdsMS40MTQgMS40MTR6TTggN2E0IDQgMCAwIDAtNCA0IC41LjUgMCAwIDAgLjUuNWg3YS41LjUgMCAwIDAgLjUtLjUgNCA0IDAgMCAwLTQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQnJpZ2h0bmVzc0FsdExvd0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDUuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMHptNSA2YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxek0yIDExYS41LjUgMCAxIDAgMSAwIC41LjUgMCAwIDAtMSAwem0xMC4yNDMtMy41MzZhLjUuNSAwIDEgMS0uNzA3LS43MDcuNS41IDAgMCAxIC43MDcuNzA3em0tOC40ODYtLjcwN2EuNS41IDAgMSAwIC43MDcuNzA3LjUuNSAwIDAgMC0uNzA3LS43MDd6TTggN2E0IDQgMCAwIDAtNCA0IC41LjUgMCAwIDAgLjUuNWg3YS41LjUgMCAwIDAgLjUtLjUgNCA0IDAgMCAwLTQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQnJpZ2h0bmVzc0hpZ2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhhNCA0IDAgMSAxLTggMCA0IDQgMCAwIDEgOCAwek04IDBhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDB6bTAgMTNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDEzem04LTVhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAuNS41ek0zIDhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJBLjUuNSAwIDAgMSAzIDh6bTEwLjY1Ny01LjY1N2EuNS41IDAgMCAxIDAgLjcwN2wtMS40MTQgMS40MTVhLjUuNSAwIDEgMS0uNzA3LS43MDhsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6bS05LjE5MyA5LjE5M2EuNS41IDAgMCAxIDAgLjcwN0wzLjA1IDEzLjY1N2EuNS41IDAgMCAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptOS4xOTMgMi4xMjFhLjUuNSAwIDAgMS0uNzA3IDBsLTEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA3ek00LjQ2NCA0LjQ2NWEuNS41IDAgMCAxLS43MDcgMEwyLjM0MyAzLjA1YS41LjUgMCAxIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCcmlnaHRuZXNzTG93RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4YTQgNCAwIDEgMS04IDAgNCA0IDAgMCAxIDggMHpNOC41IDIuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMHptMCAxMWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMHptNS01YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0tMTEgMGEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXptOS43NDMtNC4wMzZhLjUuNSAwIDEgMS0uNzA3LS43MDcuNS41IDAgMCAxIC43MDcuNzA3em0tNy43NzkgNy43NzlhLjUuNSAwIDEgMS0uNzA3LS43MDcuNS41IDAgMCAxIC43MDcuNzA3em03LjA3MiAwYS41LjUgMCAxIDEgLjcwNy0uNzA3LjUuNSAwIDAgMS0uNzA3LjcwN3pNMy43NTcgNC40NjRhLjUuNSAwIDEgMSAuNzA3LS43MDcuNS41IDAgMCAxLS43MDcuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxCcnVzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuODI1LjEyYS41LjUgMCAwIDEgLjEzMi41ODRjLTEuNTMgMy40My00Ljc0MyA4LjE3LTcuMDk1IDEwLjY0YTYuMDY3IDYuMDY3IDAgMCAxLTIuMzczIDEuNTM0Yy0uMDE4LjIyNy0uMDYuNTM4LS4xNi44NjgtLjIwMS42NTktLjY2NyAxLjQ3OS0xLjcwOCAxLjc0YTguMTE4IDguMTE4IDAgMCAxLTMuMDc4LjEzMiAzLjY1OSAzLjY1OSAwIDAgMS0uNTYyLS4xMzUgMS4zODIgMS4zODIgMCAwIDEtLjQ2Ni0uMjQ3LjcxNC43MTQgMCAwIDEtLjIwNC0uMjg4LjYyMi42MjIgMCAwIDEgLjAwNC0uNDQzYy4wOTUtLjI0NS4zMTYtLjM4LjQ2MS0uNDUyLjM5NC0uMTk3LjYyNS0uNDUzLjg2Ny0uODI2LjA5NS0uMTQ0LjE4NC0uMjk3LjI4Ny0uNDcybC4xMTctLjE5OGMuMTUxLS4yNTUuMzI2LS41NC41NDYtLjg0OC41MjgtLjczOSAxLjIwMS0uOTI1IDEuNzQ2LS44OTYuMTI2LjAwNy4yNDMuMDI1LjM0OC4wNDguMDYyLS4xNzIuMTQyLS4zOC4yMzgtLjYwOC4yNjEtLjYxOS42NTgtMS40MTkgMS4xODctMi4wNjkgMi4xNzYtMi42NyA2LjE4LTYuMjA2IDkuMTE3LTguMTA0YS41LjUgMCAwIDEgLjU5Ni4wNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQnVja2V0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUyMiA1SDJhLjUuNSAwIDAgMC0uNDk0LjU3NGwxLjM3MiA5LjE0OUExLjUgMS41IDAgMCAwIDQuMzYgMTZoNy4yNzhhMS41IDEuNSAwIDAgMCAxLjQ4My0xLjI3N2wxLjM3My05LjE0OUEuNS41IDAgMCAwIDE0IDVoLS41MjJBNS41IDUuNSAwIDAgMCAyLjUyMiA1em0xLjAwNSAwYTQuNSA0LjUgMCAwIDEgOC45NDUgMEgzLjUyN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQnVnRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljk3OC44NTVhLjUuNSAwIDEgMC0uOTU2LjI5bC40MSAxLjM1MkE0Ljk4NSA0Ljk4NSAwIDAgMCAzIDZoMTBhNC45ODUgNC45ODUgMCAwIDAtMS40MzItMy41MDNsLjQxLTEuMzUyYS41LjUgMCAxIDAtLjk1Ni0uMjlsLS4yOTEuOTU2QTQuOTc4IDQuOTc4IDAgMCAwIDggMWE0Ljk3OSA0Ljk3OSAwIDAgMC0yLjczMS44MTFsLS4yOS0uOTU2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDZ2MUg4LjV2OC45NzVBNSA1IDAgMCAwIDEzIDExaC41YS41LjUgMCAwIDEgLjUuNXYuNWEuNS41IDAgMSAwIDEgMHYtLjVhMS41IDEuNSAwIDAgMC0xLjUtMS41SDEzVjloMS41YS41LjUgMCAwIDAgMC0xSDEzVjdoLjVBMS41IDEuNSAwIDAgMCAxNSA1LjVWNWEuNS41IDAgMCAwLTEgMHYuNWEuNS41IDAgMCAxLS41LjVIMTN6bS01LjUgOS45NzVWN0gzVjZoLS41YS41LjUgMCAwIDEtLjUtLjVWNWEuNS41IDAgMCAwLTEgMHYuNUExLjUgMS41IDAgMCAwIDIuNSA3SDN2MUgxLjVhLjUuNSAwIDAgMCAwIDFIM3YxaC0uNUExLjUgMS41IDAgMCAwIDEgMTEuNXYuNWEuNS41IDAgMSAwIDEgMHYtLjVhLjUuNSAwIDAgMSAuNS0uNUgzYTUgNSAwIDAgMCA0LjUgNC45NzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGN1bGF0b3JGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem0yIC41djJhLjUuNSAwIDAgMCAuNS41aDdhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC03YS41LjUgMCAwIDAtLjUuNXptMCA0djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAtLjUuNXpNNC41IDlhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xek00IDEyLjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41ek03LjUgNmEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6TTcgOS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAtLjUuNXptLjUgMi41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpNMTAgNi41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAtLjUuNXptLjUgMi41YS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXJDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6TTE2IDE0VjVIMHY5YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnptLTUuMTQ2LTUuMTQ2LTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMCAxIC43MDgtLjcwOEw3LjUgMTAuNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGVuZGFyRGF0ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6bTUuNDAyIDkuNzQ2Yy42MjUgMCAxLjE4NC0uNDg0IDEuMTg0LTEuMTggMC0uODMyLS41MjctMS4yMy0xLjE2LTEuMjMtLjU4NiAwLTEuMTY4LjM4Ny0xLjE2OCAxLjIxIDAgLjgxNy41NDMgMS4yIDEuMTQ0IDEuMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNFY1SDB2OWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ6bS02LjY2NC0xLjIxYy0xLjExIDAtMS42NTYtLjc2Ny0xLjcwMy0xLjQwN2guNjgzYy4wNDMuMzcuMzg3LjgyIDEuMDUxLjgyLjg0NCAwIDEuMzAxLS44NDggMS4zMDUtMi4xNjRoLS4wMjdjLS4xNTMuNDE0LS42MzcuNzktMS4zODMuNzktLjg1MiAwLTEuNjc2LS42MS0xLjY3Ni0xLjc3IDAtMS4xMzcuODcxLTEuODA5IDEuNzk3LTEuODA5IDEuMTcyIDAgMS45NTMuNzM0IDEuOTUzIDIuNjY4IDAgMS44MDUtLjc0MiAyLjg3MS0yIDIuODcxem0tMi44OS01LjQzNXY1LjMzMkg1Ljc3VjguMDc5aC0uMDEyYy0uMjkuMTU2LS44ODMuNTItMS4yNTguNzc3VjguMTZhMTIuNiAxMi42IDAgMCAxIDEuMzEzLS44MDVoLjYzMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXJEYXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgLjVhLjUuNSAwIDAgMC0xIDBWMUgyYTIgMiAwIDAgMC0yIDJ2MWgxNlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41ek0xNiAxNGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY1aDE2djl6bS00Ljc4NS02LjE0NWEuNDI4LjQyOCAwIDEgMCAwLS44NTUuNDI2LjQyNiAwIDAgMC0uNDMuNDNjMCAuMjM4LjE5Mi40MjUuNDMuNDI1em0uMzM2LjU2M2gtLjY3MnY0LjEwNWguNjcyVjguNDE4em0tNi44NjcgNC4xMDV2LTIuM2gyLjI2MXYtLjYxSDQuNjg0VjcuODAxaDIuNDY0di0uNjFINHY1LjMzMmguNjg0em0zLjI5NiAwaC42NzZWOS45OGMwLS41NTQuMjI3LTEuMDA3Ljk1My0xLjAwNy4xMjUgMCAuMjU4LjAwNC4zMjkuMDE1di0uNjEzYTEuODA2IDEuODA2IDAgMCAwLS4yNTQtLjAyYy0uNTgyIDAtLjg5MS4zMi0xLjAxMi41NjdoLS4wMnYtLjUwNEg3Ljk4djQuMTA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhckV2ZW50RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjFoMTZWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMTYgMTRWNUgwdjlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yem0tMy41LTdoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY1aDE2VjRIMFYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhck1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjFoMTZWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMTYgMTRWNUgwdjlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yek02IDEwaDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXJNb250aEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6bS4xMDQgNy4zMDVMNC45IDEwLjE4SDMuMjg0bC44LTIuMzc1aC4wMnptOS4wNzQgMi4yOTdjMC0uODMyLS40MTQtMS4zNi0xLjA2Mi0xLjM2LS42OTIgMC0xLjA5OC40OTItMS4wOTggMS4zNnYuMjUzYzAgLjg1Mi40MDYgMS4zNjQgMS4wOTggMS4zNjQuNjcxIDAgMS4wNjItLjUxNiAxLjA2Mi0xLjM2NHYtLjI1M3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNFY1SDB2OWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ6TTIuNTYgMTIuMzMyaC0uNzFMMy43NDggN2guNjk2bDEuODk4IDUuMzMyaC0uNzE5bC0uNTM5LTEuNjAySDMuMWwtLjU0IDEuNjAyem03LjI5LTQuMTA1djQuMTA1aC0uNjY4di0uNTM5aC0uMDI3Yy0uMTQ1LjMyNC0uNTMyLjYwNS0xLjE4OC42MDUtLjg0NyAwLTEuNDUzLS40ODQtMS40NTMtMS40MjVWOC4yMjdoLjY3NnYyLjU1NGMwIC43NjYuNDQxIDEuMDEyLjk4IDEuMDEyLjU5IDAgMS4wMDQtLjM3MSAxLjAwNC0xLjAyM1Y4LjIyN2guNjc2em0xLjI3MyA0LjQxYy4wNzUuMzMyLjQyMi42MzYuOTg1LjYzNi42NDggMCAxLjA3LS4zNzggMS4wNy0xLjAyM3YtLjYwNWgtLjAyYy0uMTYzLjM1NS0uNjEzLjY0OC0xLjE3MS42NDgtLjk1NyAwLTEuNjQtLjY3Mi0xLjY0LTEuOTAydi0uMzRjMC0xLjIwNy42NzUtMS44ODcgMS42NC0xLjg4Ny41NTggMCAxLjAwNC4yOTMgMS4xOTUuNjRoLjAydi0uNTc3aC42NDh2NC4wM2MwIDEuMDUyLS44MTYgMS41NzktMS43NDYgMS41NzktMS4wNDMgMC0xLjU3NC0uNTE2LTEuNjY4LTEuMmguNjg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhclBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgLjVhLjUuNSAwIDAgMC0xIDBWMUgyYTIgMiAwIDAgMC0yIDJ2MWgxNlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41ek0xNiAxNFY1SDB2OWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ6TTguNSA4LjVWMTBIMTBhLjUuNSAwIDAgMSAwIDFIOC41djEuNWEuNS41IDAgMCAxLTEgMFYxMUg2YS41LjUgMCAwIDEgMC0xaDEuNVY4LjVhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGVuZGFyUmFuZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgLjVhLjUuNSAwIDAgMC0xIDBWMUgyYTIgMiAwIDAgMC0yIDJ2MWgxNlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41ek0xNiA3VjVIMHY1aDVhMSAxIDAgMSAxIDAgMkgwdjJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjloLTZhMSAxIDAgMSAxIDAtMmg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhcldlZWtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgLjVhLjUuNSAwIDAgMC0xIDBWMUgyYTIgMiAwIDAgMC0yIDJ2MWgxNlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41ek0xNiAxNFY1SDB2OWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ6TTkuNSA3aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNXptMyAwaDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNXpNMiAxMC41YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptMy41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXJYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjFoMTZWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMTYgMTRWNUgwdjlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yek02Ljg1NCA4LjE0NiA4IDkuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhMOC43MDcgMTBsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDEwLjcwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgMTAgNi4xNDYgOC44NTRhLjUuNSAwIDEgMSAuNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGVuZGFyMkNoZWNrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41em0tMi42IDUuODU0YS41LjUgMCAwIDAtLjcwOC0uNzA4TDcuNSAxMC43OTMgNi4zNTQgOS42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwxLjUgMS41YS41LjUgMCAwIDAgLjcwOCAwbDMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXIyRGF0ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40MDIgMTAuMjQ2Yy42MjUgMCAxLjE4NC0uNDg0IDEuMTg0LTEuMTggMC0uODMyLS41MjctMS4yMy0xLjE2LTEuMjMtLjU4NiAwLTEuMTY4LjM4Ny0xLjE2OCAxLjIxIDAgLjgxNy41NDMgMS4yIDEuMTQ0IDEuMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41em0tNC4xMTggOS43OWMxLjI1OCAwIDItMS4wNjcgMi0yLjg3MiAwLTEuOTM0LS43ODEtMi42NjgtMS45NTMtMi42NjgtLjkyNiAwLTEuNzk3LjY3Mi0xLjc5NyAxLjgwOSAwIDEuMTYuODI0IDEuNzcgMS42NzYgMS43Ny43NDYgMCAxLjIzLS4zNzYgMS4zODMtLjc5aC4wMjdjLS4wMDQgMS4zMTYtLjQ2MSAyLjE2NC0xLjMwNSAyLjE2NC0uNjY0IDAtMS4wMDgtLjQ1LTEuMDUtLjgyaC0uNjg0Yy4wNDcuNjQuNTk0IDEuNDA2IDEuNzAzIDEuNDA2em0tMi44OS01LjQzNWgtLjYzM0ExMi42IDEyLjYgMCAwIDAgNC41IDguMTZ2LjY5NWMuMzc1LS4yNTcuOTY5LS42MiAxLjI1OC0uNzc3aC4wMTJ2NC42MWguNjc1VjcuMzU0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhcjJEYXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXptOS45NTQgM0gyLjU0NWMtLjMgMC0uNTQ1LjIyNC0uNTQ1LjV2MWMwIC4yNzYuMjQ0LjUuNTQ1LjVoMTAuOTFjLjMgMCAuNTQ1LS4yMjQuNTQ1LS41di0xYzAtLjI3Ni0uMjQ0LS41LS41NDYtLjV6bS0yLjI0IDQuODU1YS40MjguNDI4IDAgMSAwIDAtLjg1NS40MjYuNDI2IDAgMCAwLS40MjkuNDNjMCAuMjM4LjE5Mi40MjUuNDMuNDI1em0uMzM3LjU2M2gtLjY3MnY0LjEwNWguNjcyVjguNDE4em0tNi44NjcgNC4xMDV2LTIuM2gyLjI2MXYtLjYxSDQuNjg0VjcuODAxaDIuNDY0di0uNjFINHY1LjMzMmguNjg0em0zLjI5NiAwaC42NzZWOS45OGMwLS41NTQuMjI3LTEuMDA3Ljk1My0xLjAwNy4xMjUgMCAuMjU4LjAwNC4zMjkuMDE1di0uNjEzYTEuODA2IDEuODA2IDAgMCAwLS4yNTQtLjAyYy0uNTgyIDAtLjg5MS4zMi0xLjAxMi41NjdoLS4wMnYtLjUwNEg3Ljk4djQuMTA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhcjJFdmVudEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41em05Ljk1NCAzSDIuNTQ1Yy0uMyAwLS41NDUuMjI0LS41NDUuNXYxYzAgLjI3Ni4yNDQuNS41NDUuNWgxMC45MWMuMyAwIC41NDUtLjIyNC41NDUtLjV2LTFjMC0uMjc2LS4yNDQtLjUtLjU0Ni0uNXpNMTEuNSA3YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXIyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41ek0yLjU0NSAzaDEwLjkxYy4zIDAgLjU0NS4yMjQuNTQ1LjV2MWMwIC4yNzYtLjI0NC41LS41NDYuNUgyLjU0NUMyLjI0NSA1IDIgNC43NzYgMiA0LjV2LTFjMC0uMjc2LjI0NC0uNS41NDUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGVuZGFyMk1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41ek02IDEwYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXIyTW9udGhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMTA0IDcuODA1IDQuOSAxMC4xOEgzLjI4NGwuOC0yLjM3NWguMDJ6bTkuMDc0IDIuMjk3YzAtLjgzMi0uNDE0LTEuMzYtMS4wNjItMS4zNi0uNjkyIDAtMS4wOTguNDkyLTEuMDk4IDEuMzZ2LjI1M2MwIC44NTIuNDA2IDEuMzY0IDEuMDk4IDEuMzY0LjY3MSAwIDEuMDYyLS41MTYgMS4wNjItMS4zNjR2LS4yNTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41em05Ljk1NCAzSDIuNTQ1Yy0uMyAwLS41NDUuMjI0LS41NDUuNXYxYzAgLjI3Ni4yNDQuNS41NDUuNWgxMC45MWMuMyAwIC41NDUtLjIyNC41NDUtLjV2LTFjMC0uMjc2LS4yNDQtLjUtLjU0Ni0uNXpNMi41NjEgMTIuMzMyIDMuMSAxMC43M2gxLjk4NGwuNTQgMS42MDJoLjcxOEw0LjQ0NCA3aC0uNjk2TDEuODUgMTIuMzMyaC43MXpNOS44NSA4LjIyN2gtLjY3NnYyLjU0M2MwIC42NTItLjQxNCAxLjAyMy0xLjAwNCAxLjAyMy0uNTM5IDAtLjk4LS4yNDYtLjk4LTEuMDEyVjguMjI3aC0uNjc2djIuNzQ2YzAgLjk0MS42MDYgMS40MjUgMS40NTMgMS40MjUuNjU2IDAgMS4wNDMtLjI4IDEuMTg4LS42MDVoLjAyN3YuNTM5aC42NjhWOC4yMjd6bTEuMjczIDQuNDFoLS42ODdjLjA5NC42ODMuNjI1IDEuMTk5IDEuNjY4IDEuMTk5LjkzIDAgMS43NDYtLjUyNyAxLjc0Ni0xLjU3OFY4LjIyN2gtLjY0OXYuNTc4aC0uMDE5Yy0uMTkxLS4zNDgtLjYzNy0uNjQtMS4xOTUtLjY0LS45NjUgMC0xLjY0LjY3OS0xLjY0IDEuODg2di4zNGMwIDEuMjMuNjgzIDEuOTAyIDEuNjQgMS45MDIuNTU4IDAgMS4wMDgtLjI5MyAxLjE3Mi0uNjQ4aC4wMnYuNjA1YzAgLjY0NS0uNDIzIDEuMDIzLTEuMDcxIDEuMDIzLS41NjMgMC0uOTEtLjMwNC0uOTg1LS42MzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGVuZGFyMlBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMiAzLjV2MWMwIC4yNzYuMjQ0LjUuNTQ1LjVoMTAuOTFjLjMgMCAuNTQ1LS4yMjQuNTQ1LS41di0xYzAtLjI3Ni0uMjQ0LS41LS41NDYtLjVIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41em02LjUgNWEuNS41IDAgMCAwLTEgMFYxMEg2YS41LjUgMCAwIDAgMCAxaDEuNXYxLjVhLjUuNSAwIDAgMCAxIDBWMTFIMTBhLjUuNSAwIDAgMCAwLTFIOC41VjguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXIyUmFuZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXptOS45NTQgM0gyLjU0NWMtLjMgMC0uNTQ1LjIyNC0uNTQ1LjV2MWMwIC4yNzYuMjQ0LjUuNTQ1LjVoMTAuOTFjLjMgMCAuNTQ1LS4yMjQuNTQ1LS41di0xYzAtLjI3Ni0uMjQ0LS41LS41NDYtLjV6TTEwIDdhMSAxIDAgMCAwIDAgMmg1VjdoLTV6bS00IDRhMSAxIDAgMCAwLTEtMUgxdjJoNGExIDEgMCAwIDAgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhcjJXZWVrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41ek04LjUgN2EuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6bTMgMGEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6TTMgMTAuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV6bTMuNS0uNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbGVuZGFyMlhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXptOS45NTQgM0gyLjU0NWMtLjMgMC0uNTQ1LjIyNC0uNTQ1LjV2MWMwIC4yNzYuMjQ0LjUuNTQ1LjVoMTAuOTFjLjMgMCAuNTQ1LS4yMjQuNTQ1LS41di0xYzAtLjI3Ni0uMjQ0LS41LS41NDYtLjV6bS02LjYgNS4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOEw3LjI5MyAxMGwtMS4xNDcgMS4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOEw4IDEwLjcwN2wxLjE0NiAxLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOEw4LjcwNyAxMGwxLjE0Ny0xLjE0NmEuNS41IDAgMCAwLS43MDgtLjcwOEw4IDkuMjkzIDYuODU0IDguMTQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhcjNFdmVudEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAyaDE2YTIgMiAwIDAgMC0yLTJIMnpNMCAxNFYzaDE2djExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yem0xMi04YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXIzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAySDB6bTAgMXYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWM0gwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYWxlbmRhcjNSYW5nZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAyaDE2YTIgMiAwIDAgMC0yLTJIMnpNMCA4VjNoMTZ2MmgtNmExIDEgMCAxIDAgMCAyaDZ2N2EyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnYtNGg2YTEgMSAwIDEgMCAwLTJIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FsZW5kYXIzV2Vla0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAyaDE2YTIgMiAwIDAgMC0yLTJIMnpNMCAxNFYzaDE2djExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yem0xMi04YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMHpNNSA5YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMHptNS0yYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnpNMiA5YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FtZXJhRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDguNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDRhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTEuMTcyYTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0uODI4LS44MjhBMiAyIDAgMCAwIDkuMTcyIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtLjgyOC44MjhBMiAyIDAgMCAxIDMuMTcyIDRIMnptLjUgMmEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXptOSAyLjVhMy41IDMuNSAwIDEgMS03IDAgMy41IDMuNSAwIDAgMSA3IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbWVyYVJlZWxzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDNhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNmEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2aC41YTIgMiAwIDAgMSAxLjk4MyAxLjczOGwzLjExLTEuMzgyQTEgMSAwIDAgMSAxNiA3LjI2OXY3LjQ2MmExIDEgMCAwIDEtMS40MDYuOTEzbC0zLjExMS0xLjM4MkEyIDIgMCAwIDEgOS41IDE2SDJhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FtZXJhVmlkZW9GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0wIDVhMiAyIDAgMCAxIDItMmg3LjVhMiAyIDAgMCAxIDEuOTgzIDEuNzM4bDMuMTEtMS4zODJBMSAxIDAgMCAxIDE2IDQuMjY5djcuNDYyYTEgMSAwIDAgMS0xLjQwNi45MTNsLTMuMTExLTEuMzgyQTIgMiAwIDAgMSA5LjUgMTNIMmEyIDIgMCAwIDEtMi0yVjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhbWVyYVZpZGVvT2ZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuOTYxIDEyLjM2NWExLjk5IDEuOTkgMCAwIDAgLjUyMi0xLjEwM2wzLjExIDEuMzgyQTEgMSAwIDAgMCAxNiAxMS43MzFWNC4yNjlhMSAxIDAgMCAwLTEuNDA2LS45MTNsLTMuMTExIDEuMzgyQTIgMiAwIDAgMCA5LjUgM0g0LjI3Mmw2LjY5IDkuMzY1em0tMTAuMTE0LTlBMi4wMDEgMi4wMDEgMCAwIDAgMCA1djZhMiAyIDAgMCAwIDIgMmg1LjcyOEwuODQ3IDMuMzY2em05Ljc0NiAxMS45MjUtMTAtMTQgLjgxNC0uNTggMTAgMTQtLjgxNC41OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2Fwc2xvY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjcgMS4wNDdhMSAxIDAgMCAxIDEuNDYgMGw2LjM0NSA2Ljc3Yy42LjYzOC4xNDYgMS42ODMtLjczIDEuNjgzSDExLjV2MWExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTF2LTFIMS42NTRDLjc4IDkuNS4zMjYgOC40NTUuOTI0IDcuODE2TDcuMjcgMS4wNDd6TTQuNSAxMy41YTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYXJldERvd25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjQ3IDExLjE0IDIuNDUxIDUuNjU4QzEuODg1IDUuMDEzIDIuMzQ1IDQgMy4yMDQgNGg5LjU5MmExIDEgMCAwIDEgLjc1MyAxLjY1OWwtNC43OTYgNS40OGExIDEgMCAwIDEtMS41MDYgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FyZXREb3duU3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTQgNGEuNS41IDAgMCAwLS4zNzQuODMybDQgNC41YS41LjUgMCAwIDAgLjc0OCAwbDQtNC41QS41LjUgMCAwIDAgMTIgNkg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYXJldExlZnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuODYgOC43NTMgNS40ODIgNC43OTZjLjY0Ni41NjYgMS42NTguMTA2IDEuNjU4LS43NTNWMy4yMDRhMSAxIDAgMCAwLTEuNjU5LS43NTNsLTUuNDggNC43OTZhMSAxIDAgMCAwIDAgMS41MDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhcmV0TGVmdFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem0xMC41IDEwVjRhLjUuNSAwIDAgMC0uODMyLS4zNzRsLTQuNSA0YS41LjUgMCAwIDAgMCAuNzQ4bDQuNSA0QS41LjUgMCAwIDAgMTAuNSAxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FyZXRSaWdodEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuMTQgOC43NTMtNS40ODIgNC43OTZjLS42NDYuNTY2LTEuNjU4LjEwNi0xLjY1OC0uNzUzVjMuMjA0YTEgMSAwIDAgMSAxLjY1OS0uNzUzbDUuNDggNC43OTZhMSAxIDAgMCAxIDAgMS41MDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhcmV0UmlnaHRTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMnptNS41IDEwYS41LjUgMCAwIDAgLjgzMi4zNzRsNC41LTRhLjUuNSAwIDAgMCAwLS43NDhsLTQuNS00QS41LjUgMCAwIDAgNS41IDR2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FyZXRVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy4yNDcgNC44Ni00Ljc5NiA1LjQ4MWMtLjU2Ni42NDctLjEwNiAxLjY1OS43NTMgMS42NTloOS41OTJhMSAxIDAgMCAwIC43NTMtMS42NTlsLTQuNzk2LTUuNDhhMSAxIDAgMCAwLTEuNTA2IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhcmV0VXBTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMnptNCA5aDhhLjUuNSAwIDAgMCAuMzc0LS44MzJsLTQtNC41YS41LjUgMCAwIDAtLjc0OCAwbC00IDQuNUEuNS41IDAgMCAwIDQgMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhcnRDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgMWEuNS41IDAgMCAwIDAgMWgxLjExbC40MDEgMS42MDcgMS40OTggNy45ODVBLjUuNSAwIDAgMCA0IDEyaDFhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDdhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDFhLjUuNSAwIDAgMCAuNDkxLS40MDhsMS41LThBLjUuNSAwIDAgMCAxNC41IDNIMi44OWwtLjQwNS0xLjYyMUEuNS41IDAgMCAwIDIgMUguNXpNNiAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTcgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bS0xLjY0Ni03LjY0Ni0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMOCA4LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDYXJ0RGFzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgMWEuNS41IDAgMCAwIDAgMWgxLjExbC40MDEgMS42MDcgMS40OTggNy45ODVBLjUuNSAwIDAgMCA0IDEyaDFhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDdhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDFhLjUuNSAwIDAgMCAuNDkxLS40MDhsMS41LThBLjUuNSAwIDAgMCAxNC41IDNIMi44OWwtLjQwNS0xLjYyMUEuNS41IDAgMCAwIDIgMUguNXpNNiAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTcgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6TTYuNSA3aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENhcnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMS41QS41LjUgMCAwIDEgLjUgMUgyYS41LjUgMCAwIDEgLjQ4NS4zNzlMMi44OSAzSDE0LjVhLjUuNSAwIDAgMSAuNDkxLjU5MmwtMS41IDhBLjUuNSAwIDAgMSAxMyAxMkg0YS41LjUgMCAwIDEtLjQ5MS0uNDA4TDIuMDEgMy42MDcgMS42MSAySC41YS41LjUgMCAwIDEtLjUtLjV6TTUgMTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00em03IDBhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00em0tNyAxYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMnptNyAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FydFBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDFhLjUuNSAwIDAgMCAwIDFoMS4xMWwuNDAxIDEuNjA3IDEuNDk4IDcuOTg1QS41LjUgMCAwIDAgNCAxMmgxYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGg3YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGgxYS41LjUgMCAwIDAgLjQ5MS0uNDA4bDEuNS04QS41LjUgMCAwIDAgMTQuNSAzSDIuODlsLS40MDUtMS42MjFBLjUuNSAwIDAgMCAyIDFILjV6TTYgMTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem03IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwek05IDUuNVY3aDEuNWEuNS41IDAgMCAxIDAgMUg5djEuNWEuNS41IDAgMCAxLTEgMFY4SDYuNWEuNS41IDAgMCAxIDAtMUg4VjUuNWEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2FydFhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDFhLjUuNSAwIDAgMCAwIDFoMS4xMWwuNDAxIDEuNjA3IDEuNDk4IDcuOTg1QS41LjUgMCAwIDAgNCAxMmgxYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGg3YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGgxYS41LjUgMCAwIDAgLjQ5MS0uNDA4bDEuNS04QS41LjUgMCAwIDAgMTQuNSAzSDIuODlsLS40MDUtMS42MjFBLjUuNSAwIDAgMCAyIDFILjV6TTYgMTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem03IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwek03LjM1NCA1LjY0NiA4LjUgNi43OTNsMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw5LjIwNyA3LjVsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgOC4yMDcgNy4zNTQgOS4zNTRhLjUuNSAwIDEgMS0uNzA4LS43MDhMNy43OTMgNy41IDYuNjQ2IDYuMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGF0RG90c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOGMwIDMuODY2LTMuNTgyIDctOCA3YTkuMDYgOS4wNiAwIDAgMS0yLjM0Ny0uMzA2Yy0uNTg0LjI5Ni0xLjkyNS44NjQtNC4xODEgMS4yMzQtLjIuMDMyLS4zNTItLjE3Ni0uMjczLS4zNjIuMzU0LS44MzYuNjc0LTEuOTUuNzctMi45NjZDLjc0NCAxMS4zNyAwIDkuNzYgMCA4YzAtMy44NjYgMy41ODItNyA4LTdzOCAzLjEzNCA4IDd6TTUgOGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6bTQgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6bTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENoYXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVjNC40MTggMCA4LTMuMTM0IDgtN3MtMy41ODItNy04LTctOCAzLjEzNC04IDdjMCAxLjc2Ljc0MyAzLjM3IDEuOTcgNC42LS4wOTcgMS4wMTYtLjQxNyAyLjEzLS43NzEgMi45NjYtLjA3OS4xODYuMDc0LjM5NC4yNzMuMzYyIDIuMjU2LS4zNyAzLjU5Ny0uOTM4IDQuMTgtMS4yMzRBOS4wNiA5LjA2IDAgMCAwIDggMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENoYXRMZWZ0RG90c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINC40MTRhMSAxIDAgMCAwLS43MDcuMjkzTC44NTQgMTUuMTQ2QS41LjUgMCAwIDEgMCAxNC43OTNWMnptNSA0YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHptNCAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHptMyAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hhdExlZnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyLjc5M2EuNS41IDAgMCAwIC44NTQuMzUzbDIuODUzLTIuODUzQTEgMSAwIDAgMSA0LjQxNCAxMkgxNGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGF0TGVmdFF1b3RlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0LjQxNGExIDEgMCAwIDAtLjcwNy4yOTNMLjg1NCAxNS4xNDZBLjUuNSAwIDAgMSAwIDE0Ljc5M1Yyem03LjE5NCAyLjc2NmExLjY4OCAxLjY4OCAwIDAgMC0uMjI3LS4yNzIgMS40NjcgMS40NjcgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgNS43MzQgNEM0Ljc3NiA0IDQgNC43NDYgNCA1LjY2N2MwIC45Mi43NzYgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjYtLjEzNy4zODktLjM5LjgwNC0uODEgMS4yMmEuNDA1LjQwNSAwIDAgMCAuMDExLjU5Yy4xNzMuMTYuNDQ3LjE1NS42MTQtLjAxIDEuMzM0LTEuMzI5IDEuMzctMi43NTguOTQxLTMuNzA2YTIuNDYxIDIuNDYxIDAgMCAwLS4yMjctLjR6TTExIDcuMDczYy0uMTM2LjM4OS0uMzkuODA0LS44MSAxLjIyYS40MDUuNDA1IDAgMCAwIC4wMTIuNTljLjE3Mi4xNi40NDYuMTU1LjYxMy0uMDEgMS4zMzQtMS4zMjkgMS4zNy0yLjc1OC45NDItMy43MDZhMi40NjYgMi40NjYgMCAwIDAtLjIyOC0uNCAxLjY4NiAxLjY4NiAwIDAgMC0uMjI3LS4yNzMgMS40NjYgMS40NjYgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgMTAuMDcgNGMtLjk1NyAwLTEuNzM0Ljc0Ni0xLjczNCAxLjY2NyAwIC45Mi43NzcgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENoYXRMZWZ0VGV4dEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINC40MTRhMSAxIDAgMCAwLS43MDcuMjkzTC44NTQgMTUuMTQ2QS41LjUgMCAwIDEgMCAxNC43OTNWMnptMy41IDFhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOXptMCAyLjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOXptMCAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hhdFF1b3RlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4YzAgMy44NjYtMy41ODIgNy04IDdhOS4wNiA5LjA2IDAgMCAxLTIuMzQ3LS4zMDZjLS41ODQuMjk2LTEuOTI1Ljg2NC00LjE4MSAxLjIzNC0uMi4wMzItLjM1Mi0uMTc2LS4yNzMtLjM2Mi4zNTQtLjgzNi42NzQtMS45NS43Ny0yLjk2NkMuNzQ0IDExLjM3IDAgOS43NiAwIDhjMC0zLjg2NiAzLjU4Mi03IDgtN3M4IDMuMTM0IDggN3pNNy4xOTQgNi43NjZhMS42ODggMS42ODggMCAwIDAtLjIyNy0uMjcyIDEuNDY3IDEuNDY3IDAgMCAwLS40NjktLjMyNGwtLjAwOC0uMDA0QTEuNzg1IDEuNzg1IDAgMCAwIDUuNzM0IDZDNC43NzYgNiA0IDYuNzQ2IDQgNy42NjdjMCAuOTIuNzc2IDEuNjY2IDEuNzM0IDEuNjY2LjM0MyAwIC42NjItLjA5NS45MzEtLjI2LS4xMzcuMzg5LS4zOS44MDQtLjgxIDEuMjJhLjQwNS40MDUgMCAwIDAgLjAxMS41OWMuMTczLjE2LjQ0Ny4xNTUuNjE0LS4wMSAxLjMzNC0xLjMyOSAxLjM3LTIuNzU4Ljk0MS0zLjcwNmEyLjQ2MSAyLjQ2MSAwIDAgMC0uMjI3LS40ek0xMSA5LjA3M2MtLjEzNi4zODktLjM5LjgwNC0uODEgMS4yMmEuNDA1LjQwNSAwIDAgMCAuMDEyLjU5Yy4xNzIuMTYuNDQ2LjE1NS42MTMtLjAxIDEuMzM0LTEuMzI5IDEuMzctMi43NTguOTQyLTMuNzA2YTIuNDY2IDIuNDY2IDAgMCAwLS4yMjgtLjQgMS42ODYgMS42ODYgMCAwIDAtLjIyNy0uMjczIDEuNDY2IDEuNDY2IDAgMCAwLS40NjktLjMyNGwtLjAwOC0uMDA0QTEuNzg1IDEuNzg1IDAgMCAwIDEwLjA3IDZjLS45NTcgMC0xLjczNC43NDYtMS43MzQgMS42NjcgMCAuOTIuNzc3IDEuNjY2IDEuNzM0IDEuNjY2LjM0MyAwIC42NjItLjA5NS45MzEtLjI2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGF0UmlnaHREb3RzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyYTIgMiAwIDAgMC0yLTJIMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmg5LjU4NmExIDEgMCAwIDEgLjcwNy4yOTNsMi44NTMgMi44NTNhLjUuNSAwIDAgMCAuODU0LS4zNTNWMnpNNSA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptNCAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAxYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hhdFJpZ2h0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAwYTIgMiAwIDAgMSAyIDJ2MTIuNzkzYS41LjUgMCAwIDEtLjg1NC4zNTNsLTIuODUzLTIuODUzYTEgMSAwIDAgMC0uNzA3LS4yOTNIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hhdFJpZ2h0UXVvdGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJhMiAyIDAgMCAwLTItMkgyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDkuNTg2YTEgMSAwIDAgMSAuNzA3LjI5M2wyLjg1MyAyLjg1M2EuNS41IDAgMCAwIC44NTQtLjM1M1Yyek03LjE5NCA0Ljc2NmMuMDg3LjEyNC4xNjMuMjYuMjI3LjQwMS40MjguOTQ4LjM5MyAyLjM3Ny0uOTQyIDMuNzA2YS40NDYuNDQ2IDAgMCAxLS42MTIuMDEuNDA1LjQwNSAwIDAgMS0uMDExLS41OWMuNDE5LS40MTYuNjcyLS44MzEuODA5LTEuMjItLjI2OS4xNjUtLjU4OC4yNi0uOTMuMjZDNC43NzUgNy4zMzMgNCA2LjU4NyA0IDUuNjY3IDQgNC43NDcgNC43NzYgNCA1LjczNCA0Yy4yNzEgMCAuNTI4LjA2Ljc1Ni4xNjZsLjAwOC4wMDRjLjE2OS4wNy4zMjcuMTgyLjQ2OS4zMjQuMDg1LjA4My4xNjEuMTc0LjIyNy4yNzJ6TTExIDcuMDczYy0uMjY5LjE2NS0uNTg4LjI2LS45My4yNi0uOTU4IDAtMS43MzUtLjc0Ni0xLjczNS0xLjY2NiAwLS45Mi43NzctMS42NjcgMS43MzQtMS42NjcuMjcxIDAgLjUyOC4wNi43NTYuMTY2bC4wMDguMDA0Yy4xNy4wNy4zMjcuMTgyLjQ2OS4zMjQuMDg1LjA4My4xNjEuMTc0LjIyNy4yNzIuMDg3LjEyNC4xNjQuMjYuMjI4LjQwMS40MjguOTQ4LjM5MiAyLjM3Ny0uOTQyIDMuNzA2YS40NDYuNDQ2IDAgMCAxLS42MTMuMDEuNDA1LjQwNSAwIDAgMS0uMDExLS41OWMuNDItLjQxNi42NzItLjgzMS44MS0xLjIyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGF0UmlnaHRUZXh0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyYTIgMiAwIDAgMC0yLTJIMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmg5LjU4NmExIDEgMCAwIDEgLjcwNy4yOTNsMi44NTMgMi44NTNhLjUuNSAwIDAgMCAuODU0LS4zNTNWMnpNMy41IDNoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMXptMCAyLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMXptMCAyLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hhdFNxdWFyZURvdHNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjVhMSAxIDAgMCAwLS44LjRsLTEuOSAyLjUzM2ExIDEgMCAwIDEtMS42IDBMNS4zIDEyLjRhMSAxIDAgMCAwLS44LS40SDJhMiAyIDAgMCAxLTItMlYyem01IDRhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwem00IDBhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwem0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGF0U3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMi41YTEgMSAwIDAgMSAuOC40bDEuOSAyLjUzM2ExIDEgMCAwIDAgMS42IDBsMS45LTIuNTMzYTEgMSAwIDAgMSAuOC0uNEgxNGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGF0U3F1YXJlUXVvdGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjVhMSAxIDAgMCAwLS44LjRsLTEuOSAyLjUzM2ExIDEgMCAwIDEtMS42IDBMNS4zIDEyLjRhMSAxIDAgMCAwLS44LS40SDJhMiAyIDAgMCAxLTItMlYyem03LjE5NCAyLjc2NmExLjY4OCAxLjY4OCAwIDAgMC0uMjI3LS4yNzIgMS40NjcgMS40NjcgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgNS43MzQgNEM0Ljc3NiA0IDQgNC43NDYgNCA1LjY2N2MwIC45Mi43NzYgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjYtLjEzNy4zODktLjM5LjgwNC0uODEgMS4yMmEuNDA1LjQwNSAwIDAgMCAuMDExLjU5Yy4xNzMuMTYuNDQ3LjE1NS42MTQtLjAxIDEuMzM0LTEuMzI5IDEuMzctMi43NTguOTQxLTMuNzA2YTIuNDYxIDIuNDYxIDAgMCAwLS4yMjctLjR6TTExIDcuMDczYy0uMTM2LjM4OS0uMzkuODA0LS44MSAxLjIyYS40MDUuNDA1IDAgMCAwIC4wMTIuNTljLjE3Mi4xNi40NDYuMTU1LjYxMy0uMDEgMS4zMzQtMS4zMjkgMS4zNy0yLjc1OC45NDItMy43MDZhMi40NjYgMi40NjYgMCAwIDAtLjIyOC0uNCAxLjY4NiAxLjY4NiAwIDAgMC0uMjI3LS4yNzMgMS40NjYgMS40NjYgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgMTAuMDcgNGMtLjk1NyAwLTEuNzM0Ljc0Ni0xLjczNCAxLjY2NyAwIC45Mi43NzcgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENoYXRTcXVhcmVUZXh0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi41YTEgMSAwIDAgMC0uOC40bC0xLjkgMi41MzNhMSAxIDAgMCAxLTEuNiAwTDUuMyAxMi40YTEgMSAwIDAgMC0uOC0uNEgyYTIgMiAwIDAgMS0yLTJWMnptMy41IDFhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOXptMCAyLjVhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOXptMCAyLjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hhdFRleHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhjMCAzLjg2Ni0zLjU4MiA3LTggN2E5LjA2IDkuMDYgMCAwIDEtMi4zNDctLjMwNmMtLjU4NC4yOTYtMS45MjUuODY0LTQuMTgxIDEuMjM0LS4yLjAzMi0uMzUyLS4xNzYtLjI3My0uMzYyLjM1NC0uODM2LjY3NC0xLjk1Ljc3LTIuOTY2Qy43NDQgMTEuMzcgMCA5Ljc2IDAgOGMwLTMuODY2IDMuNTgyLTcgOC03czggMy4xMzQgOCA3ek00LjUgNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03em0wIDIuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03em0wIDIuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDaGVja0NpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwem0tMy45Ny0zLjAzYS43NS43NSAwIDAgMC0xLjA4LjAyMkw3LjQ3NyA5LjQxNyA1LjM4NCA3LjMyM2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2TDYuOTcgMTEuMDNhLjc1Ljc1IDAgMCAwIDEuMDc5LS4wMmwzLjk5Mi00Ljk5YS43NS43NSAwIDAgMC0uMDEtMS4wNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2hlY2tTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptMTAuMDMgNC45N2EuNzUuNzUgMCAwIDEgLjAxMSAxLjA1bC0zLjk5MiA0Ljk5YS43NS43NSAwIDAgMS0xLjA4LjAyTDQuMzI0IDguMzg0YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4wOTQgMi4wOTMgMy40NzMtNC40MjVhLjc1Ljc1IDAgMCAxIDEuMDgtLjAyMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCI4XCIsXCJyXCI6XCI4XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb2NrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTggMy41YS41LjUgMCAwIDAtMSAwVjlhLjUuNSAwIDAgMCAuMjUyLjQzNGwzLjUgMmEuNS41IDAgMCAwIC40OTYtLjg2OEw4IDguNzFWMy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZEFycm93RG93bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyYTUuNTMgNS41MyAwIDAgMC0zLjU5NCAxLjM0MmMtLjc2Ni42Ni0xLjMyMSAxLjUyLTEuNDY0IDIuMzgzQzEuMjY2IDYuMDk1IDAgNy41NTUgMCA5LjMxOCAwIDExLjM2NiAxLjcwOCAxMyAzLjc4MSAxM2g4LjkwNkMxNC41MDIgMTMgMTYgMTEuNTcgMTYgOS43NzNjMC0xLjYzNi0xLjI0Mi0yLjk2OS0yLjgzNC0zLjE5NEMxMi45MjMgMy45OTkgMTAuNjkgMiA4IDJ6bTIuMzU0IDYuODU0LTIgMmEuNS41IDAgMCAxLS43MDggMGwtMi0yYS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA5LjI5M1Y1LjVhLjUuNSAwIDAgMSAxIDB2My43OTNsMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRBcnJvd1VwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDJhNS41MyA1LjUzIDAgMCAwLTMuNTk0IDEuMzQyYy0uNzY2LjY2LTEuMzIxIDEuNTItMS40NjQgMi4zODNDMS4yNjYgNi4wOTUgMCA3LjU1NSAwIDkuMzE4IDAgMTEuMzY2IDEuNzA4IDEzIDMuNzgxIDEzaDguOTA2QzE0LjUwMiAxMyAxNiAxMS41NyAxNiA5Ljc3M2MwLTEuNjM2LTEuMjQyLTIuOTY5LTIuODM0LTMuMTk0QzEyLjkyMyAzLjk5OSAxMC42OSAyIDggMnptMi4zNTQgNS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgNi43MDdWMTAuNWEuNS41IDAgMCAxLTEgMFY2LjcwN0w2LjM1NCA3Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOGwyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMiAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZENoZWNrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDJhNS41MyA1LjUzIDAgMCAwLTMuNTk0IDEuMzQyYy0uNzY2LjY2LTEuMzIxIDEuNTItMS40NjQgMi4zODNDMS4yNjYgNi4wOTUgMCA3LjU1NSAwIDkuMzE4IDAgMTEuMzY2IDEuNzA4IDEzIDMuNzgxIDEzaDguOTA2QzE0LjUwMiAxMyAxNiAxMS41NyAxNiA5Ljc3M2MwLTEuNjM2LTEuMjQyLTIuOTY5LTIuODM0LTMuMTk0QzEyLjkyMyAzLjk5OSAxMC42OSAyIDggMnptMi4zNTQgNC44NTQtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcgOC43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWREb3dubG9hZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMGE1LjUzIDUuNTMgMCAwIDAtMy41OTQgMS4zNDJjLS43NjYuNjYtMS4zMjEgMS41Mi0xLjQ2NCAyLjM4M0MxLjI2NiA0LjA5NSAwIDUuNTU1IDAgNy4zMTggMCA5LjM2NiAxLjcwOCAxMSAzLjc4MSAxMUg3LjVWNS41YS41LjUgMCAwIDEgMSAwVjExaDQuMTg4QzE0LjUwMiAxMSAxNiA5LjU3IDE2IDcuNzczYzAtMS42MzYtMS4yNDItMi45NjktMi44MzQtMy4xOTRDMTIuOTIzIDEuOTk5IDEwLjY5IDAgOCAwem0tLjM1NCAxNS44NTRhLjUuNSAwIDAgMCAuNzA4IDBsMy0zYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSAxNC4yOTNWMTFoLTF2My4yOTNsLTIuMTQ2LTIuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMyAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZERyaXp6bGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMTU4IDEyLjAyNWEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em02IDBhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAwIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptLTMuNSAxLjVhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAwIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptNiAwYS41LjUgMCAwIDEgLjMxNi42MzNsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTd6bS43NDctOC40OThhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTFIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjQwNiAzLjM0MkE1LjUzIDUuNTMgMCAwIDEgOCAyYzIuNjkgMCA0LjkyMyAyIDUuMTY2IDQuNTc5QzE0Ljc1OCA2LjgwNCAxNiA4LjEzNyAxNiA5Ljc3MyAxNiAxMS41NjkgMTQuNTAyIDEzIDEyLjY4NyAxM0gzLjc4MUMxLjcwOCAxMyAwIDExLjM2NiAwIDkuMzE4YzAtMS43NjMgMS4yNjYtMy4yMjMgMi45NDItMy41OTMuMTQzLS44NjMuNjk4LTEuNzIzIDEuNDY0LTIuMzgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZEZvZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMy41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTEwLjQwNS05LjQ3M2E1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMkgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRGb2cyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgM2E1LjAwMSA1LjAwMSAwIDAgMSA0LjkwNSA0LjAyN0EzIDMgMCAwIDEgMTMgMTNoLTEuNWEuNS41IDAgMCAwIDAtMUgxLjA1YTMuNTEgMy41MSAwIDAgMS0uNzEzLTFIOS41YS41LjUgMCAwIDAgMC0xSC4wMzVhMy41MyAzLjUzIDAgMCAxIDAtMUg3LjVhLjUuNSAwIDAgMCAwLTFILjMzN2EzLjUgMy41IDAgMCAxIDMuNTctMS45NzdBNS4wMDEgNS4wMDEgMCAwIDEgOC41IDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkSGFpbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy43NSAxNS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0uNDA4LTMuNzI0YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6TTcuNzUgMTUuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMHptLjQwOC0zLjcyNGEuNS41IDAgMCAxIC4zMTYuNjMybC0uNSAxLjVhLjUuNSAwIDEgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE2em0zLjU5MiAzLjcyNGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0uNDA4LTMuNzI0YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6bTEuMjQ3LTYuOTk5YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwLjVIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkSGF6ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMS41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0tMyAyYS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0yIDJhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6TTEzLjQwNSA0LjAyN2E1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMEgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRIYXplMkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDJhNS4wMDEgNS4wMDEgMCAwIDEgNC45MDUgNC4wMjdBMyAzIDAgMCAxIDEzIDEySDMuNUEzLjUgMy41IDAgMCAxIC4wMzUgOUg1LjVhLjUuNSAwIDAgMCAwLTFILjAzNWEzLjUgMy41IDAgMCAxIDMuODcxLTIuOTc3QTUuMDAxIDUuMDAxIDAgMCAxIDguNSAyem0tNiA4YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTl6TTAgMTMuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRMaWdodG5pbmdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDUzIDExLjI3NkEuNS41IDAgMCAxIDcuNSAxMWgxYS41LjUgMCAwIDEgLjQ3NC42NThsLS4yOC44NDJIOS41YS41LjUgMCAwIDEgLjM5LjgxMmwtMiAyLjVhLjUuNSAwIDAgMS0uODc1LS40MzNMNy4zNiAxNEg2LjVhLjUuNSAwIDAgMS0uNDQ3LS43MjRsMS0yem02LjM1Mi03LjI0OWE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMEgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRMaWdodG5pbmdSYWluRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjY1OCAxMS4wMjZhLjUuNSAwIDAgMSAuMzE2LjYzMmwtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxNnptOS41IDBhLjUuNSAwIDAgMSAuMzE2LjYzMmwtLjUgMS41YS41LjUgMCAwIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxNnptLTcuNSAxLjVhLjUuNSAwIDAgMSAuMzE2LjYzMmwtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxNnptOS41IDBhLjUuNSAwIDAgMSAuMzE2LjYzMmwtLjUgMS41YS41LjUgMCAwIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxNnptLTcuMTA1LTEuMjVBLjUuNSAwIDAgMSA3LjUgMTFoMWEuNS41IDAgMCAxIC40NzQuNjU4bC0uMjguODQySDkuNWEuNS41IDAgMCAxIC4zOS44MTJsLTIgMi41YS41LjUgMCAwIDEtLjg3NS0uNDMzTDcuMzYgMTRINi41YS41LjUgMCAwIDEtLjQ0Ny0uNzI0bDEtMnptNi4zNTItNy4yNDlhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTBIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkTWludXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMmE1LjUzIDUuNTMgMCAwIDAtMy41OTQgMS4zNDJjLS43NjYuNjYtMS4zMjEgMS41Mi0xLjQ2NCAyLjM4M0MxLjI2NiA2LjA5NSAwIDcuNTU1IDAgOS4zMTggMCAxMS4zNjYgMS43MDggMTMgMy43ODEgMTNoOC45MDZDMTQuNTAyIDEzIDE2IDExLjU3IDE2IDkuNzczYzAtMS42MzYtMS4yNDItMi45NjktMi44MzQtMy4xOTRDMTIuOTIzIDMuOTk5IDEwLjY5IDIgOCAyek02IDcuNWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkTW9vbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNDczIDExYTQuNSA0LjUgMCAwIDAtOC43Mi0uOTlBMyAzIDAgMCAwIDMgMTZoOC41YTIuNSAyLjUgMCAwIDAgMC01aC0uMDI3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjI4NiAxLjc3OGEuNS41IDAgMCAwLS41NjUtLjc1NSA0LjU5NSA0LjU5NSAwIDAgMC0zLjE4IDUuMDAzIDUuNDYgNS40NiAwIDAgMSAxLjA1NS4yMDlBMy42MDMgMy42MDMgMCAwIDEgOS44MyAyLjYxN2E0LjU5MyA0LjU5MyAwIDAgMCA0LjMxIDUuNzQ0IDMuNTc2IDMuNTc2IDAgMCAxLTIuMjQxLjYzNGMuMTYyLjMxNy4yOTUuNjUyLjM5NCAxYTQuNTkgNC41OSAwIDAgMCAzLjYyNC0yLjA0LjUuNSAwIDAgMC0uNTY1LS43NTUgMy41OTMgMy41OTMgMCAwIDEtNC4wNjUtNS40MjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkUGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyYTUuNTMgNS41MyAwIDAgMC0zLjU5NCAxLjM0MmMtLjc2Ni42Ni0xLjMyMSAxLjUyLTEuNDY0IDIuMzgzQzEuMjY2IDYuMDk1IDAgNy41NTUgMCA5LjMxOCAwIDExLjM2NiAxLjcwOCAxMyAzLjc4MSAxM2g4LjkwNkMxNC41MDIgMTMgMTYgMTEuNTcgMTYgOS43NzNjMC0xLjYzNi0xLjI0Mi0yLjk2OS0yLjgzNC0zLjE5NEMxMi45MjMgMy45OTkgMTAuNjkgMiA4IDJ6bS41IDR2MS41SDEwYS41LjUgMCAwIDEgMCAxSDguNVYxMGEuNS41IDAgMCAxLTEgMFY4LjVINmEuNS41IDAgMCAxIDAtMWgxLjVWNmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRSYWluRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjE1OCAxMi4wMjVhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptMyAwYS41LjUgMCAwIDEgLjMxNi42MzNsLTEgM2EuNS41IDAgMSAxLS45NDgtLjMxNmwxLTNhLjUuNSAwIDAgMSAuNjMyLS4zMTd6bTMgMGEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDEgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em0zIDBhLjUuNSAwIDAgMSAuMzE2LjYzM2wtMSAzYS41LjUgMCAxIDEtLjk0OC0uMzE2bDEtM2EuNS41IDAgMCAxIC42MzItLjMxN3ptLjI0Ny02Ljk5OGE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRSYWluSGVhdnlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMTc2IDExLjAzMmEuNS41IDAgMCAxIC4yOTIuNjQzbC0xLjUgNGEuNS41IDAgMCAxLS45MzYtLjM1bDEuNS00YS41LjUgMCAwIDEgLjY0NC0uMjkzem0zIDBhLjUuNSAwIDAgMSAuMjkyLjY0M2wtMS41IDRhLjUuNSAwIDAgMS0uOTM2LS4zNWwxLjUtNGEuNS41IDAgMCAxIC42NDQtLjI5M3ptMyAwYS41LjUgMCAwIDEgLjI5Mi42NDNsLTEuNSA0YS41LjUgMCAwIDEtLjkzNi0uMzVsMS41LTRhLjUuNSAwIDAgMSAuNjQ0LS4yOTN6bTMgMGEuNS41IDAgMCAxIC4yOTIuNjQzbC0xLjUgNGEuNS41IDAgMCAxLS45MzYtLjM1bDEuNS00YS41LjUgMCAwIDEgLjY0NC0uMjkzem0uMjI5LTcuMDA1YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwSDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZFNsYXNoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy4xMTIgNS4xMTJhMy4xMjUgMy4xMjUgMCAwIDAtLjE3LjYxM0MxLjI2NiA2LjA5NSAwIDcuNTU1IDAgOS4zMTggMCAxMS4zNjYgMS43MDggMTMgMy43ODEgMTNIMTFMMy4xMTIgNS4xMTJ6bTExLjM3MiA3LjM3Mkw0LjkzNyAyLjkzN0E1LjUxMiA1LjUxMiAwIDAgMSA4IDJjMi42OSAwIDQuOTIzIDIgNS4xNjYgNC41NzlDMTQuNzU4IDYuODA0IDE2IDguMTM3IDE2IDkuNzczYTMuMiAzLjIgMCAwIDEtMS41MTYgMi43MTF6bS0uODM4IDEuODctMTItMTIgLjcwOC0uNzA4IDEyIDEyLS43MDcuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZFNsZWV0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjM3NSAxMy41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMSAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAxIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMSAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMS44NDktMi40NDdhLjUuNSAwIDAgMSAuMjIzLjY3bC0uNSAxYS41LjUgMCAwIDEtLjg5NC0uNDQ3bC41LTFhLjUuNSAwIDAgMSAuNjctLjIyM3pNNi4zNzUgMTMuNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41N2wuNS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ5LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAxIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDEgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDEgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAxIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1em0xLjg0OS0yLjQ0N2EuNS41IDAgMCAxIC4yMjMuNjdsLS41IDFhLjUuNSAwIDAgMS0uODk0LS40NDdsLjUtMWEuNS41IDAgMCAxIC42Ny0uMjIzem0yLjE1MSAyLjQ0N2EuMjUuMjUgMCAwIDEgLjI1LjI1di41N2wuNS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ5LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAxIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDAgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDEgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAxIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1em0xLjg0OS0yLjQ0N2EuNS41IDAgMCAxIC4yMjMuNjdsLS41IDFhLjUuNSAwIDEgMS0uODk0LS40NDdsLjUtMWEuNS41IDAgMCAxIC42Ny0uMjIzem0xLjE4MS03LjAyNmE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMEgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRTbm93RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjYyNSAxMS41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMi43NSAyYS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41LS4yODdhLjI1LjI1IDAgMCAxIC4yNDkuNDM0bC0uNDk1LjI4My40OTUuMjgzYS4yNS4yNSAwIDAgMS0uMjQ4LjQzNGwtLjUwMS0uMjg2di41NjlhLjI1LjI1IDAgMSAxLS41IDB2LS41N2wtLjUwMS4yODdhLjI1LjI1IDAgMCAxLS4yNDgtLjQzNGwuNDk1LS4yODMtLjQ5NS0uMjgzYS4yNS4yNSAwIDAgMSAuMjQ4LS40MzRsLjUwMS4yODZ2LS41NjlhLjI1LjI1IDAgMCAxIC4yNS0uMjV6bTUuNSAwYS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41LS4yODdhLjI1LjI1IDAgMCAxIC4yNDkuNDM0bC0uNDk1LjI4My40OTUuMjgzYS4yNS4yNSAwIDAgMS0uMjQ4LjQzNGwtLjUwMS0uMjg2di41NjlhLjI1LjI1IDAgMCAxLS41IDB2LS41N2wtLjUwMS4yODdhLjI1LjI1IDAgMCAxLS4yNDgtLjQzNGwuNDk1LS4yODMtLjQ5NS0uMjgzYS4yNS4yNSAwIDAgMSAuMjQ4LS40MzRsLjUwMS4yODZ2LS41NjlhLjI1LjI1IDAgMCAxIC4yNS0uMjV6bS0yLjc1LTJhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OS40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptNS41IDBhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OS40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAwIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAxIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptLS4yMi03LjIyM2E1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMC4yNUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRTdW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ3MyAxMWE0LjUgNC41IDAgMCAwLTguNzItLjk5QTMgMyAwIDAgMCAzIDE2aDguNWEyLjUgMi41IDAgMCAwIDAtNWgtLjAyN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDEuNWEuNS41IDAgMCAwLTEgMHYxYS41LjUgMCAwIDAgMSAwdi0xem0zLjc0MyAxLjk2NGEuNS41IDAgMSAwLS43MDctLjcwN2wtLjcwOC43MDdhLjUuNSAwIDAgMCAuNzA4LjcwOGwuNzA3LS43MDh6bS03Ljc3OS0uNzA3YS41LjUgMCAwIDAtLjcwNy43MDdsLjcwNy43MDhhLjUuNSAwIDEgMCAuNzA4LS43MDhsLS43MDgtLjcwN3ptMS43MzQgMy4zNzRhMiAyIDAgMSAxIDMuMjk2IDIuMTk4Yy4xOTkuMjgxLjM3Mi41ODIuNTE2Ljg5OGEzIDMgMCAxIDAtNC44NC0zLjIyNWMuMzUyLjAxMS42OTYuMDU1IDEuMDI4LjEyOXptNC40ODQgNC4wNzRjLjYuMjE1IDEuMTI1LjU5IDEuNTIyIDEuMDcyYS41LjUgMCAwIDAgLjAzOS0uNzQybC0uNzA3LS43MDdhLjUuNSAwIDAgMC0uODU0LjM3N3pNMTQuNSA2LjVhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ2xvdWRVcGxvYWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBhNS41MyA1LjUzIDAgMCAwLTMuNTk0IDEuMzQyYy0uNzY2LjY2LTEuMzIxIDEuNTItMS40NjQgMi4zODNDMS4yNjYgNC4wOTUgMCA1LjU1NSAwIDcuMzE4IDAgOS4zNjYgMS43MDggMTEgMy43ODEgMTFINy41VjUuNzA3TDUuMzU0IDcuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDMtM2EuNS41IDAgMCAxIC43MDggMGwzIDNhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgNS43MDdWMTFoNC4xODhDMTQuNTAyIDExIDE2IDkuNTcgMTYgNy43NzNjMC0xLjYzNi0xLjI0Mi0yLjk2OS0yLjgzNC0zLjE5NEMxMi45MjMgMS45OTkgMTAuNjkgMCA4IDB6bS0uNSAxNC41VjExaDF2My41YS41LjUgMCAwIDEtMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDbG91ZHNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ3MyA5YTQuNSA0LjUgMCAwIDAtOC43Mi0uOTlBMyAzIDAgMCAwIDMgMTRoOC41YTIuNSAyLjUgMCAxIDAtLjAyNy01elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU0NCA5Ljc3MmEzLjUwNiAzLjUwNiAwIDAgMC0yLjIyNS0xLjY3NiA1LjUwMiA1LjUwMiAwIDAgMC02LjMzNy00LjAwMiA0LjAwMiA0LjAwMiAwIDAgMSA3LjM5Mi45MSAyLjUgMi41IDAgMCAxIDEuMTcgNC43Njl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENsb3VkeUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDA1IDcuMDI3YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEzSDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDb2xsZWN0aW9uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEzYTEuNSAxLjUgMCAwIDAgMS41IDEuNWgxM0ExLjUgMS41IDAgMCAwIDE2IDEzVjZhMS41IDEuNSAwIDAgMC0xLjUtMS41aC0xM0ExLjUgMS41IDAgMCAwIDAgNnY3ek0yIDNhLjUuNSAwIDAgMCAuNS41aDExYS41LjUgMCAwIDAgMC0xaC0xMUEuNS41IDAgMCAwIDIgM3ptMi0yYS41LjUgMCAwIDAgLjUuNWg3YS41LjUgMCAwIDAgMC0xaC03QS41LjUgMCAwIDAgNCAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDb2xsZWN0aW9uUGxheUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDMuNWEuNS41IDAgMCAxIDAtMWgxMWEuNS41IDAgMCAxIDAgMWgtMTF6bTItMmEuNS41IDAgMCAxIDAtMWg3YS41LjUgMCAwIDEgMCAxaC03ek0wIDEzYTEuNSAxLjUgMCAwIDAgMS41IDEuNWgxM0ExLjUgMS41IDAgMCAwIDE2IDEzVjZhMS41IDEuNSAwIDAgMC0xLjUtMS41aC0xM0ExLjUgMS41IDAgMCAwIDAgNnY3em02LjI1OC02LjQzN2EuNS41IDAgMCAxIC41MDcuMDEzbDQgMi41YS41LjUgMCAwIDEgMCAuODQ4bC00IDIuNUEuNS41IDAgMCAxIDYgMTJWN2EuNS41IDAgMCAxIC4yNTgtLjQzN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ29tcGFzc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA4LjUxNmE3LjUgNy41IDAgMSAxLTkuNDYyLTcuMjRBMSAxIDAgMCAxIDcgMGgyYTEgMSAwIDAgMSAuOTYyIDEuMjc2IDcuNTAzIDcuNTAzIDAgMCAxIDUuNTM4IDcuMjR6bS0zLjYxLTMuOTA1TDYuOTQgNy40MzkgNC4xMSAxMi4zOWw0Ljk1LTIuODI4IDIuODI4LTQuOTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbENwdUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDZhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNS41YS41LjUgMCAwIDAtMSAwVjJBMi41IDIuNSAwIDAgMCAyIDQuNUguNWEuNS41IDAgMCAwIDAgMUgydjFILjVhLjUuNSAwIDAgMCAwIDFIMnYxSC41YS41LjUgMCAwIDAgMCAxSDJ2MUguNWEuNS41IDAgMCAwIDAgMUgyQTIuNSAyLjUgMCAwIDAgNC41IDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjEuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjEuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjEuNWEuNS41IDAgMCAwIDEgMFYxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjVoMS41YS41LjUgMCAwIDAgMC0xSDE0di0xaDEuNWEuNS41IDAgMCAwIDAtMUgxNHYtMWgxLjVhLjUuNSAwIDAgMCAwLTFIMTR2LTFoMS41YS41LjUgMCAwIDAgMC0xSDE0QTIuNSAyLjUgMCAwIDAgMTEuNSAyVi41YS41LjUgMCAwIDAtMSAwVjJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYyaC0xVi41em0xIDQuNWgzQTEuNSAxLjUgMCAwIDEgMTEgNi41djNBMS41IDEuNSAwIDAgMSA5LjUgMTFoLTNBMS41IDEuNSAwIDAgMSA1IDkuNXYtM0ExLjUgMS41IDAgMCAxIDYuNSA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDcmVkaXRDYXJkMkJhY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NUgwVjR6bTExLjUgMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMmEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTJ6TTAgMTF2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTFIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ3JlZGl0Q2FyZDJGcm9udEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTIuNSAxYS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgyYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMnptMCAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTV6bTAgMmEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xem0zIDBhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMXptMyAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTF6bTMgMGEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxDcmVkaXRDYXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFIMFY0em0wIDN2NWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN0gwem0zIDJoMWExIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTF2LTFhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ3VwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDJhMSAxIDAgMCAxIDEtMWgxMWExIDEgMCAwIDEgMSAxdjFoLjVBMS41IDEuNSAwIDAgMSAxNiA0LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLS41NWEyLjUgMi41IDAgMCAxLTIuNDUgMmgtOEEyLjUgMi41IDAgMCAxIDEgMTIuNVYyem0xMyAxMGguNWEuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjUtLjVIMTR2OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsQ3Vyc29yRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4wODIgMi4xODJhLjUuNSAwIDAgMSAuMTAzLjU1N0w4LjUyOCAxNS40NjdhLjUuNSAwIDAgMS0uOTE3LS4wMDdMNS41NyAxMC42OTQuODAzIDguNjUyYS41LjUgMCAwIDEtLjAwNi0uOTE2bDEyLjcyOC01LjY1N2EuNS41IDAgMCAxIC41NTYuMTAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxEYXNoQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTQuNSA3LjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRGFzaFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0yLjUgNy41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbERpYWdyYW0yRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAzLjVBMS41IDEuNSAwIDAgMSA3LjUgMmgxQTEuNSAxLjUgMCAwIDEgMTAgMy41djFBMS41IDEuNSAwIDAgMSA4LjUgNnYxSDExYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtMSAwVjhoLTV2LjVhLjUuNSAwIDAgMS0xIDB2LTFBLjUuNSAwIDAgMSA1IDdoMi41VjZBMS41IDEuNSAwIDAgMSA2IDQuNXYtMXptLTMgOEExLjUgMS41IDAgMCAxIDQuNSAxMGgxQTEuNSAxLjUgMCAwIDEgNyAxMS41djFBMS41IDEuNSAwIDAgMSA1LjUgMTRoLTFBMS41IDEuNSAwIDAgMSAzIDEyLjV2LTF6bTYgMGExLjUgMS41IDAgMCAxIDEuNS0xLjVoMWExLjUgMS41IDAgMCAxIDEuNSAxLjV2MWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSA5IDEyLjV2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbERpYWdyYW0zRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAzLjVBMS41IDEuNSAwIDAgMSA3LjUgMmgxQTEuNSAxLjUgMCAwIDEgMTAgMy41djFBMS41IDEuNSAwIDAgMSA4LjUgNnYxSDE0YS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtMSAwVjhoLTV2LjVhLjUuNSAwIDAgMS0xIDBWOGgtNXYuNWEuNS41IDAgMCAxLTEgMHYtMUEuNS41IDAgMCAxIDIgN2g1LjVWNkExLjUgMS41IDAgMCAxIDYgNC41di0xem0tNiA4QTEuNSAxLjUgMCAwIDEgMS41IDEwaDFBMS41IDEuNSAwIDAgMSA0IDExLjV2MUExLjUgMS41IDAgMCAxIDIuNSAxNGgtMUExLjUgMS41IDAgMCAxIDAgMTIuNXYtMXptNiAwQTEuNSAxLjUgMCAwIDEgNy41IDEwaDFhMS41IDEuNSAwIDAgMSAxLjUgMS41djFBMS41IDEuNSAwIDAgMSA4LjUgMTRoLTFBMS41IDEuNSAwIDAgMSA2IDEyLjV2LTF6bTYgMGExLjUgMS41IDAgMCAxIDEuNS0xLjVoMWExLjUgMS41IDAgMCAxIDEuNSAxLjV2MWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTFhMS41IDEuNSAwIDAgMS0xLjUtMS41di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxEaWFtb25kRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi45NS40MzVjLjU4LS41OCAxLjUyLS41OCAyLjEgMGw2LjUxNSA2LjUxNmMuNTguNTguNTggMS41MTkgMCAyLjA5OEw5LjA1IDE1LjU2NWMtLjU4LjU4LTEuNTE5LjU4LTIuMDk4IDBMLjQzNSA5LjA1YTEuNDgyIDEuNDgyIDAgMCAxIDAtMi4wOThMNi45NS40MzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbERpY2UxRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBhMyAzIDAgMCAwLTMgM3YxMGEzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWM2EzIDMgMCAwIDAtMy0zSDN6bTUgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxEaWNlMkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzYTMgMyAwIDAgMSAzLTNoMTBhMyAzIDAgMCAxIDMgM3YxMGEzIDMgMCAwIDEtMyAzSDNhMyAzIDAgMCAxLTMtM1Yzem01LjUgMWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMHptNi41IDkuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRGljZTNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMi41IDRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTggOGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNOCA5LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbERpY2U0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBhMyAzIDAgMCAwLTMgM3YxMGEzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWM2EzIDMgMCAwIDAtMy0zSDN6bTEgNS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzem04IDBhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTEuNSA2LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6TTQgMTMuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRGljZTVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMi41IDRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTggMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNMTIgMTMuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pNNS41IDEyYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwek04IDkuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRGljZTZGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMSA1LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTggMGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptMS41IDYuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNMTIgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzek01LjUgMTJhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6TTQgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxEaXNjRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6bS02IDBhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwek00IDhhNCA0IDAgMCAxIDQtNCAuNS41IDAgMCAwIDAtMSA1IDUgMCAwIDAtNSA1IC41LjUgMCAwIDAgMSAwem05IDBhLjUuNSAwIDEgMC0xIDAgNCA0IDAgMCAxLTQgNCAuNS41IDAgMCAwIDAgMSA1IDUgMCAwIDAgNS01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxEaXNwbGF5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEyYzAgLjY2Ny0uMDgzIDEuMTY3LS4yNSAxLjVINWEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC0uNzVjLS4xNjctLjMzMy0uMjUtLjgzMy0uMjUtMS41aDRjMiAwIDItMiAyLTJWNGMwLTItMi0yLTItMkgyQzAgMiAwIDQgMCA0djZjMCAyIDIgMiAyIDJoNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRG9vckNsb3NlZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMWExIDEgMCAwIDEgMSAxdjEzaDEuNWEuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMSAwLTFIM1YyYTEgMSAwIDAgMSAxLTFoOHptLTIgOWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbERvb3JPcGVuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMTVhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDAgMCAwLTFIMTNWMi41QTEuNSAxLjUgMCAwIDAgMTEuNSAxSDExVi41YS41LjUgMCAwIDAtLjU3LS40OTVsLTcgMUEuNS41IDAgMCAwIDMgMS41VjE1SDEuNXpNMTEgMmguNWEuNS41IDAgMCAxIC41LjVWMTVoLTFWMnptLTIuNSA4Yy0uMjc2IDAtLjUtLjQ0OC0uNS0xcy4yMjQtMSAuNS0xIC41LjQ0OC41IDEtLjIyNCAxLS41IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbERyb3BsZXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDE2YTYgNiAwIDAgMCA2LTZjMC0xLjY1NS0xLjEyMi0yLjkwNC0yLjQzMi00LjM2MkMxMC4yNTQgNC4xNzYgOC43NSAyLjUwMyA4IDBjMCAwLTYgNS42ODYtNiAxMGE2IDYgMCAwIDAgNiA2ek02LjY0NiA0LjY0NmMtLjM3Ni4zNzctMS4yNzIgMS40ODktMi4wOTMgMy4xM2wuODk0LjQ0OGMuNzgtMS41NTkgMS42MTYtMi41OCAxLjkwNy0yLjg3bC0uNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVhc2VsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQ3My4zMzdhLjUuNSAwIDAgMC0uOTQ2IDBMNi45NTQgMkgyYTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDEuODVsLTEuMzIzIDMuODM3YS41LjUgMCAxIDAgLjk0Ni4zMjZMNC45MDggMTFINy41djIuNWEuNS41IDAgMCAwIDEgMFYxMWgyLjU5MmwxLjQzNSA0LjE2M2EuNS41IDAgMCAwIC45NDYtLjMyNkwxMi4xNSAxMUgxNGExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUg5LjA0Nkw4LjQ3My4zMzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVnZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBhNiA2IDAgMCAxLTEyIDBDMiA1LjY4NiA1IDAgOCAwczYgNS42ODYgNiAxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRWplY3RGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjcgMS4wNDdhMSAxIDAgMCAxIDEuNDYgMGw2LjM0NSA2Ljc3Yy42LjYzOC4xNDYgMS42ODMtLjczIDEuNjgzSDEuNjU2Qy43OCA5LjUuMzI2IDguNDU1LjkyNiA3LjgxNkw3LjI3IDEuMDQ3ek0uNSAxMS41YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFoLTEzYTEgMSAwIDAgMS0xLTF2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVtb2ppQW5ncnlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpNNC4wNTMgNC4yNzZhLjUuNSAwIDAgMSAuNjctLjIyM2wyIDFhLjUuNSAwIDAgMSAuMTY2Ljc2Yy4wNzEuMjA2LjExMS40NC4xMTEuNjg3QzcgNy4zMjggNi41NTIgOCA2IDhzLTEtLjY3Mi0xLTEuNWMwLS40MDguMTA5LS43NzguMjg1LTEuMDQ5bC0xLjAwOS0uNTA0YS41LjUgMCAwIDEtLjIyMy0uNjd6bS4yMzIgOC4xNTdhLjUuNSAwIDAgMS0uMTgzLS42ODNBNC40OTggNC40OTggMCAwIDEgOCA5LjVhNC41IDQuNSAwIDAgMSAzLjg5OCAyLjI1LjUuNSAwIDEgMS0uODY2LjVBMy40OTggMy40OTggMCAwIDAgOCAxMC41YTMuNDk4IDMuNDk4IDAgMCAwLTMuMDMyIDEuNzUuNS41IDAgMCAxLS42ODMuMTgzek0xMCA4Yy0uNTUyIDAtMS0uNjcyLTEtMS41IDAtLjI0Ny4wNC0uNDguMTEtLjY4NmEuNTAyLjUwMiAwIDAgMSAuMTY2LS43NjFsMi0xYS41LjUgMCAxIDEgLjQ0OC44OTRsLTEuMDA5LjUwNGMuMTc2LjI3LjI4NS42NC4yODUgMS4wNDkgMCAuODI4LS40NDggMS41LTEgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFbW9qaURpenp5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTQuMTQ2IDUuMTQ2YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ3LjY0Ni0uNjQ3YS41LjUgMCAxIDEgLjcwOC43MDhsLS42NDcuNjQ2LjY0Ny42NDZhLjUuNSAwIDEgMS0uNzA4LjcwOEw1LjUgNy4yMDdsLS42NDYuNjQ3YS41LjUgMCAxIDEtLjcwOC0uNzA4bC42NDctLjY0Ni0uNjQ3LS42NDZhLjUuNSAwIDAgMSAwLS43MDh6bTUgMGEuNS41IDAgMCAxIC43MDggMGwuNjQ2LjY0Ny42NDYtLjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC0uNjQ3LjY0Ni42NDcuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhsLS42NDYtLjY0Ny0uNjQ2LjY0N2EuNS41IDAgMSAxLS43MDgtLjcwOGwuNjQ3LS42NDYtLjY0Ny0uNjQ2YS41LjUgMCAwIDEgMC0uNzA4ek04IDEzYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRW1vamlFeHByZXNzaW9ubGVzc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2ek00LjUgNmgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xem01IDBoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMXptLTUgNGg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFbW9qaUZyb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTcgNi41QzcgNy4zMjggNi41NTIgOCA2IDhzLTEtLjY3Mi0xLTEuNVM1LjQ0OCA1IDYgNXMxIC42NzIgMSAxLjV6bS0yLjcxNSA1LjkzM2EuNS41IDAgMCAxLS4xODMtLjY4M0E0LjQ5OCA0LjQ5OCAwIDAgMSA4IDkuNWE0LjUgNC41IDAgMCAxIDMuODk4IDIuMjUuNS41IDAgMCAxLS44NjYuNUEzLjQ5OCAzLjQ5OCAwIDAgMCA4IDEwLjVhMy40OTggMy40OTggMCAwIDAtMy4wMzIgMS43NS41LjUgMCAwIDEtLjY4My4xODN6TTEwIDhjLS41NTIgMC0xLS42NzItMS0xLjVTOS40NDggNSAxMCA1czEgLjY3MiAxIDEuNVMxMC41NTIgOCAxMCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFbW9qaUhlYXJ0RXllc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYTggOCAwIDEgMCAwIDE2QTggOCAwIDAgMCA4IDB6TTQuNzU2IDQuNTY2Yy43NjMtMS40MjQgNC4wMi0uMTIuOTUyIDMuNDM0LTQuNDk2LTEuNTk2LTIuMzUtNC4yOTgtLjk1Mi0zLjQzNHptNi41NTkgNS40NDhhLjUuNSAwIDAgMSAuNTQ4LjczNkE0LjQ5OCA0LjQ5OCAwIDAgMSA3Ljk2NSAxM2E0LjQ5OCA0LjQ5OCAwIDAgMS0zLjg5OC0yLjI1LjUuNSAwIDAgMSAuNTQ4LS43MzZoLjAwNWwuMDE3LjAwNS4wNjcuMDE1LjI1Mi4wNTVjLjIxNS4wNDYuNTE1LjEwOC44NTcuMTY5LjY5My4xMjQgMS41MjIuMjQyIDIuMTUyLjI0Mi42MyAwIDEuNDYtLjExOCAyLjE1Mi0uMjQyYTI2LjU4IDI2LjU4IDAgMCAwIDEuMTA5LS4yMjRsLjA2Ny0uMDE1LjAxNy0uMDA0LjAwNS0uMDAyem0tLjA3LTUuNDQ4YzEuMzk3LS44NjQgMy41NDMgMS44MzgtLjk1MyAzLjQzNC0zLjA2Ny0zLjU1NC4xOS00Ljg1OC45NTItMy40MzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVtb2ppTGF1Z2hpbmdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpNNyA2LjVjMCAuNTAxLS4xNjQuMzk2LS40MTUuMjM1QzYuNDIgNi42MjkgNi4yMTggNi41IDYgNi41Yy0uMjE4IDAtLjQyLjEzLS41ODUuMjM1QzUuMTY0IDYuODk2IDUgNyA1IDYuNSA1IDUuNjcyIDUuNDQ4IDUgNiA1czEgLjY3MiAxIDEuNXptNS4zMzEgM2ExIDEgMCAwIDEgMCAxQTQuOTk4IDQuOTk4IDAgMCAxIDggMTNhNC45OTggNC45OTggMCAwIDEtNC4zMy0yLjVBMSAxIDAgMCAxIDQuNTM1IDloNi45M2ExIDEgMCAwIDEgLjg2Ni41em0tMS43NDYtMi43NjVDMTAuNDIgNi42MjkgMTAuMjE4IDYuNSAxMCA2LjVjLS4yMTggMC0uNDIuMTMtLjU4NS4yMzVDOS4xNjQgNi44OTYgOSA3IDkgNi41YzAtLjgyOC40NDgtMS41IDEtMS41czEgLjY3MiAxIDEuNWMwIC41MDEtLjE2NC4zOTYtLjQxNS4yMzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVtb2ppTmV1dHJhbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2ek03IDYuNUM3IDcuMzI4IDYuNTUyIDggNiA4cy0xLS42NzItMS0xLjVTNS40NDggNSA2IDVzMSAuNjcyIDEgMS41em0tMyA0YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41ek0xMCA4Yy0uNTUyIDAtMS0uNjcyLTEtMS41UzkuNDQ4IDUgMTAgNXMxIC42NzIgMSAxLjVTMTAuNTUyIDggMTAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRW1vamlTbWlsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2ek03IDYuNUM3IDcuMzI4IDYuNTUyIDggNiA4cy0xLS42NzItMS0xLjVTNS40NDggNSA2IDVzMSAuNjcyIDEgMS41ek00LjI4NSA5LjU2N2EuNS41IDAgMCAxIC42ODMuMTgzQTMuNDk4IDMuNDk4IDAgMCAwIDggMTEuNWEzLjQ5OCAzLjQ5OCAwIDAgMCAzLjAzMi0xLjc1LjUuNSAwIDEgMSAuODY2LjVBNC40OTggNC40OTggMCAwIDEgOCAxMi41YTQuNDk4IDQuNDk4IDAgMCAxLTMuODk4LTIuMjUuNS41IDAgMCAxIC4xODMtLjY4M3pNMTAgOGMtLjU1MiAwLTEtLjY3Mi0xLTEuNVM5LjQ0OCA1IDEwIDVzMSAuNjcyIDEgMS41UzEwLjU1MiA4IDEwIDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVtb2ppU21pbGVVcHNpZGVEb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhOCA4IDAgMSAxIDAgMTZBOCA4IDAgMCAxIDggMHpNNyA5LjVDNyA4LjY3MiA2LjU1MiA4IDYgOHMtMSAuNjcyLTEgMS41LjQ0OCAxLjUgMSAxLjUgMS0uNjcyIDEtMS41ek00LjI4NSA2LjQzM2EuNS41IDAgMCAwIC42ODMtLjE4M0EzLjQ5OCAzLjQ5OCAwIDAgMSA4IDQuNWMxLjI5NSAwIDIuNDI2LjcwMyAzLjAzMiAxLjc1YS41LjUgMCAwIDAgLjg2Ni0uNUE0LjQ5OCA0LjQ5OCAwIDAgMCA4IDMuNWE0LjUgNC41IDAgMCAwLTMuODk4IDIuMjUuNS41IDAgMCAwIC4xODMuNjgzek0xMCA4Yy0uNTUyIDAtMSAuNjcyLTEgMS41cy40NDggMS41IDEgMS41IDEtLjY3MiAxLTEuNVMxMC41NTIgOCAxMCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFbW9qaVN1bmdsYXNzZXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpNMi4zMSA1LjI0M0ExIDEgMCAwIDEgMy4yOCA0SDZhMSAxIDAgMCAxIDEgMXYuMTE2QTQuMjIgNC4yMiAwIDAgMSA4IDVjLjM1IDAgLjY5LjA0IDEgLjExNlY1YTEgMSAwIDAgMSAxLTFoMi43MmExIDEgMCAwIDEgLjk3IDEuMjQzbC0uMzExIDEuMjQyQTIgMiAwIDAgMSAxMS40MzkgOEgxMWEyIDIgMCAwIDEtMS45OTQtMS44MzlBMi45OSAyLjk5IDAgMCAwIDggNmMtLjM5MyAwLS43NC4wNjQtMS4wMDYuMTYxQTIgMiAwIDAgMSA1IDhoLS40MzhhMiAyIDAgMCAxLTEuOTQtMS41MTVMMi4zMSA1LjI0M3pNNC45NjkgOS43NUEzLjQ5OCAzLjQ5OCAwIDAgMCA4IDExLjVhMy40OTggMy40OTggMCAwIDAgMy4wMzItMS43NS41LjUgMCAxIDEgLjg2Ni41QTQuNDk4IDQuNDk4IDAgMCAxIDggMTIuNWE0LjQ5OCA0LjQ5OCAwIDAgMS0zLjg5OC0yLjI1LjUuNSAwIDAgMSAuODY2LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFbW9qaVdpbmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGE4IDggMCAxIDEgMCAxNkE4IDggMCAwIDEgOCAwek03IDYuNUM3IDUuNjcyIDYuNTUyIDUgNiA1cy0xIC42NzItMSAxLjVTNS40NDggOCA2IDhzMS0uNjcyIDEtMS41ek00LjI4NSA5LjU2N2EuNS41IDAgMCAwLS4xODMuNjgzQTQuNDk4IDQuNDk4IDAgMCAwIDggMTIuNWE0LjUgNC41IDAgMCAwIDMuODk4LTIuMjUuNS41IDAgMSAwLS44NjYtLjVBMy40OTggMy40OTggMCAwIDEgOCAxMS41YTMuNDk4IDMuNDk4IDAgMCAxLTMuMDMyLTEuNzUuNS41IDAgMCAwLS42ODMtLjE4M3ptNS4xNTItMy4zMWEuNS41IDAgMCAwLS44NzQuNDg2Yy4zMy41OTUuOTU4IDEuMDA3IDEuNjg3IDEuMDA3LjczIDAgMS4zNTYtLjQxMiAxLjY4Ny0xLjAwN2EuNS41IDAgMCAwLS44NzQtLjQ4Ni45MzQuOTM0IDAgMCAxLS44MTMuNDkzLjkzNC45MzQgMCAwIDEtLjgxMy0uNDkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFbnZlbG9wZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjA1IDMuNTU1QTIgMiAwIDAgMSAyIDJoMTJhMiAyIDAgMCAxIDEuOTUgMS41NTVMOCA4LjQxNC4wNSAzLjU1NXpNMCA0LjY5N3Y3LjEwNGw1LjgwMy0zLjU1OEwwIDQuNjk3ek02Ljc2MSA4LjgzbC02LjU3IDQuMDI3QTIgMiAwIDAgMCAyIDE0aDEyYTIgMiAwIDAgMCAxLjgwOC0xLjE0NGwtNi41Ny00LjAyN0w4IDkuNTg2bC0xLjIzOS0uNzU3em0zLjQzNi0uNTg2TDE2IDExLjgwMVY0LjY5N2wtNS44MDMgMy41NDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVudmVsb3BlT3BlbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45NDEuNDM1YTIgMiAwIDAgMC0xLjg4MiAwbC02IDMuMkEyIDIgMCAwIDAgMCA1LjR2LjMxM2w2LjcwOSAzLjkzM0w4IDguOTI4bDEuMjkxLjcxN0wxNiA1LjcxNVY1LjRhMiAyIDAgMCAwLTEuMDU5LTEuNzY1bC02LTMuMnpNMTYgNi44NzNsLTUuNjkzIDMuMzM3TDE2IDEzLjM3MnYtNi41em0tLjA1OSA3LjYxMUw4IDEwLjA3Mi4wNTkgMTQuNDg0QTIgMiAwIDAgMCAyIDE2aDEyYTIgMiAwIDAgMCAxLjk0MS0xLjUxNnpNMCAxMy4zNzNsNS42OTMtMy4xNjNMMCA2Ljg3M3Y2LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEVyYXNlckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wODYgMi4yMDdhMiAyIDAgMCAxIDIuODI4IDBsMy44NzkgMy44NzlhMiAyIDAgMCAxIDAgMi44MjhsLTUuNSA1LjVBMiAyIDAgMCAxIDcuODc5IDE1SDUuMTJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTIuNS0yLjVhMiAyIDAgMCAxIDAtMi44MjhsNi44NzktNi44Nzl6bS42NiAxMS4zNEwzLjQ1MyA4LjI1NCAxLjkxNCA5Ljc5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjUgMi41YTEgMSAwIDAgMCAuNzA3LjI5M0g3Ljg4YTEgMSAwIDAgMCAuNzA3LS4yOTNsLjE2LS4xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRXhjbGFtYXRpb25DaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNOCA0YS45MDUuOTA1IDAgMCAwLS45Ljk5NWwuMzUgMy41MDdhLjU1Mi41NTIgMCAwIDAgMS4xIDBsLjM1LTMuNTA3QS45MDUuOTA1IDAgMCAwIDggNHptLjAwMiA2YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRXhjbGFtYXRpb25EaWFtb25kRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjA1LjQzNWMtLjU4LS41OC0xLjUyLS41OC0yLjEgMEwuNDM2IDYuOTVjLS41OC41OC0uNTggMS41MTkgMCAyLjA5OGw2LjUxNiA2LjUxNmMuNTguNTggMS41MTkuNTggMi4wOTggMGw2LjUxNi02LjUxNmMuNTgtLjU4LjU4LTEuNTE5IDAtMi4wOThMOS4wNS40MzV6TTggNGMuNTM1IDAgLjk1NC40NjIuOS45OTVsLS4zNSAzLjUwN2EuNTUyLjU1MiAwIDAgMS0xLjEgMEw3LjEgNC45OTVBLjkwNS45MDUgMCAwIDEgOCA0em0uMDAyIDZhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFeGNsYW1hdGlvbk9jdGFnb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ2LjE0NkEuNS41IDAgMCAwIDExLjEwNyAwSDQuODkzYS41LjUgMCAwIDAtLjM1My4xNDZMLjE0NiA0LjU0QS41LjUgMCAwIDAgMCA0Ljg5M3Y2LjIxNGEuNS41IDAgMCAwIC4xNDYuMzUzbDQuMzk0IDQuMzk0YS41LjUgMCAwIDAgLjM1My4xNDZoNi4yMTRhLjUuNSAwIDAgMCAuMzUzLS4xNDZsNC4zOTQtNC4zOTRhLjUuNSAwIDAgMCAuMTQ2LS4zNTNWNC44OTNhLjUuNSAwIDAgMC0uMTQ2LS4zNTNMMTEuNDYuMTQ2ek04IDRjLjUzNSAwIC45NTQuNDYyLjkuOTk1bC0uMzUgMy41MDdhLjU1Mi41NTIgMCAwIDEtMS4xIDBMNy4xIDQuOTk1QS45MDUuOTA1IDAgMCAxIDggNHptLjAwMiA2YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRXhjbGFtYXRpb25TcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptNiA0Yy41MzUgMCAuOTU0LjQ2Mi45Ljk5NWwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NUEuOTA1LjkwNSAwIDAgMSA4IDR6bS4wMDIgNmExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEV4Y2xhbWF0aW9uVHJpYW5nbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguOTgyIDEuNTY2YTEuMTMgMS4xMyAwIDAgMC0xLjk2IDBMLjE2NSAxMy4yMzNjLS40NTcuNzc4LjA5MSAxLjc2Ny45OCAxLjc2N2gxMy43MTNjLjg4OSAwIDEuNDM4LS45OS45OC0xLjc2N0w4Ljk4MiAxLjU2NnpNOCA1Yy41MzUgMCAuOTU0LjQ2Mi45Ljk5NWwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA1Ljk5NUEuOTA1LjkwNSAwIDAgMSA4IDV6bS4wMDIgNmExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEV5ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOHMzLTUuNSA4LTUuNVMxNiA4IDE2IDhzLTMgNS41LTggNS41UzAgOCAwIDh6bTggMy41YTMuNSAzLjUgMCAxIDAgMC03IDMuNSAzLjUgMCAwIDAgMCA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxFeWVTbGFzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuNzkgMTIuOTEyLTEuNjE0LTEuNjE1YTMuNSAzLjUgMCAwIDEtNC40NzQtNC40NzRsLTIuMDYtMi4wNkMuOTM4IDYuMjc4IDAgOCAwIDhzMyA1LjUgOCA1LjVhNy4wMjkgNy4wMjkgMCAwIDAgMi43OS0uNTg4ek01LjIxIDMuMDg4QTcuMDI4IDcuMDI4IDAgMCAxIDggMi41YzUgMCA4IDUuNSA4IDUuNXMtLjkzOSAxLjcyMS0yLjY0MSAzLjIzOGwtMi4wNjItMi4wNjJhMy41IDMuNSAwIDAgMC00LjQ3NC00LjQ3NEw1LjIxIDMuMDg5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNTI1IDcuNjQ2YTIuNSAyLjUgMCAwIDAgMi44MjkgMi44MjlsLTIuODMtMi44Mjl6bTQuOTUuNzA4LTIuODI5LTIuODNhMi41IDIuNSAwIDAgMSAyLjgyOSAyLjgyOXptMy4xNzEgNi0xMi0xMiAuNzA4LS43MDggMTIgMTItLjcwOC43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVBcnJvd0Rvd25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNOCA1YS41LjUgMCAwIDEgLjUuNXYzLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4IDBsLTItMmEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgOS4yOTNWNS41QS41LjUgMCAwIDEgOCA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlQXJyb3dVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek03LjUgNi43MDcgNi4zNTQgNy44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDIgMmEuNS41IDAgMCAxLS43MDguNzA4TDguNSA2LjcwN1YxMC41YS41LjUgMCAwIDEtMSAwVjYuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlQmFyR3JhcGhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnptLTIgMTEuNXYtNmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djZhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV6bS0yLjUuNWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLS41LjVoLTF6bS0zIDBhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41aC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlQmluYXJ5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUyNiA5LjI3M2MtLjU0MiAwLS44MzIuNTYzLS44MzIgMS42MTIgMCAuMDg4LjAwMy4xNzMuMDA2LjI1MmwxLjU2LTEuMTQzYy0uMTI2LS40NzQtLjM3NS0uNzItLjczMy0uNzJ6bS0uNzMyIDIuNTA4Yy4xMjYuNDcyLjM3Mi43MTguNzMyLjcxOC41NCAwIC44My0uNTYzLjgzLTEuNjE0IDAtLjA4NS0uMDAzLS4xNy0uMDA2LS4yNWwtMS41NTYgMS4xNDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek03LjA1IDEwLjg4NWMwIDEuNDE1LS41NDggMi4yMDYtMS41MjQgMi4yMDZDNC41NDggMTMuMDkgNCAxMi4zIDQgMTAuODg1YzAtMS40MTIuNTQ4LTIuMjAzIDEuNTI2LTIuMjAzLjk3NiAwIDEuNTI0Ljc5IDEuNTI0IDIuMjAzem0zLjgwNSAxLjUyVjEzaC0zdi0uNTk1aDEuMTgxVjkuNWgtLjA1bC0xLjEzNi43NDd2LS42ODhsMS4xOS0uNzg2aC42OXYzLjYzM2gxLjEyNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUJyZWFrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBoOGEyIDIgMCAwIDEgMiAydjdIMlYyYTIgMiAwIDAgMSAyLTJ6TTIgMTJoMTJ2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMnpNLjUgMTBhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFILjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yem0tMS4xNDYgNi44NTQtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA4Ljc5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlQ29kZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek02LjY0NiA1LjY0NmEuNS41IDAgMSAxIC43MDguNzA4TDUuNzA3IDhsMS42NDcgMS42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtMi0yYS41LjUgMCAwIDEgMC0uNzA4bDItMnptMi43MDggMCAyIDJhLjUuNSAwIDAgMSAwIC43MDhsLTIgMmEuNS41IDAgMCAxLS43MDgtLjcwOEwxMC4yOTMgOCA4LjY0NiA2LjM1NGEuNS41IDAgMSAxIC43MDgtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZURpZmZGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNOC41IDQuNVY2SDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWN0g2YS41LjUgMCAwIDEgMC0xaDEuNVY0LjVhLjUuNSAwIDAgMSAxIDB6TTYgMTBoNGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya0Fycm93RG93bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6bS0xIDR2My43OTNsMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtMiAyYS41LjUgMCAwIDEtLjcwOCAwbC0yLTJhLjUuNSAwIDAgMSAuNzA4LS43MDhMNy41IDExLjI5M1Y3LjVhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrQXJyb3dVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTYuMzU0IDkuODU0YS41LjUgMCAwIDEtLjcwOC0uNzA4bDItMmEuNS41IDAgMCAxIC43MDggMGwyIDJhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgOC43MDdWMTIuNWEuNS41IDAgMCAxLTEgMFY4LjcwN0w2LjM1NCA5Ljg1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtCYXJHcmFwaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6bS41IDEwdi02YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2NmEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXptLTIuNS41YS41LjUgMCAwIDEtLjUtLjV2LTRhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtMXptLTMgMGEuNS41IDAgMCAxLS41LS41di0yYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrQmluYXJ5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUyNiAxMC4yNzNjLS41NDIgMC0uODMyLjU2My0uODMyIDEuNjEyIDAgLjA4OC4wMDMuMTczLjAwNi4yNTJsMS41NTktMS4xNDNjLS4xMjYtLjQ3NC0uMzc1LS43Mi0uNzMzLS43MnptLS43MzIgMi41MDhjLjEyNi40NzIuMzcyLjcxOC43MzIuNzE4LjU0IDAgLjgzLS41NjMuODMtMS42MTQgMC0uMDg1LS4wMDMtLjE3LS4wMDYtLjI1bC0xLjU1NiAxLjE0NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXptLTIuNDUgOC4zODVjMCAxLjQxNS0uNTQ4IDIuMjA2LTEuNTI0IDIuMjA2QzQuNTQ4IDE0LjA5IDQgMTMuMyA0IDExLjg4NWMwLTEuNDEyLjU0OC0yLjIwMyAxLjUyNi0yLjIwMy45NzYgMCAxLjUyNC43OSAxLjUyNCAyLjIwM3ptMy44MDUgMS41MlYxNGgtM3YtLjU5NWgxLjE4MVYxMC41aC0uMDVsLTEuMTM2Ljc0N3YtLjY4OGwxLjE5LS43ODZoLjY5djMuNjMzaDEuMTI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya0JyZWFrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBoNS4yOTNBMSAxIDAgMCAxIDEwIC4yOTNMMTMuNzA3IDRhMSAxIDAgMCAxIC4yOTMuNzA3VjlIMlYyYTIgMiAwIDAgMSAyLTJ6bTUuNSAxLjV2MmExIDEgMCAwIDAgMSAxaDJsLTMtM3pNMiAxMmgxMnYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0yek0uNSAxMGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMUguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6bTEuMzU0IDQuMzU0LTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgOS43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtDb2RlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNNi42NDYgNy42NDZhLjUuNSAwIDEgMSAuNzA4LjcwOEw1LjcwNyAxMGwxLjY0NyAxLjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC0yLTJhLjUuNSAwIDAgMSAwLS43MDhsMi0yem0yLjcwOCAwIDIgMmEuNS41IDAgMCAxIDAgLjcwOGwtMiAyYS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyAxMCA4LjY0NiA4LjM1NGEuNS41IDAgMSAxIC43MDgtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtEaWZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNOCA2YS41LjUgMCAwIDEgLjUuNVY4SDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWOUg2YS41LjUgMCAwIDEgMC0xaDEuNVY2LjVBLjUuNSAwIDAgMSA4IDZ6bS0yLjUgNi41QS41LjUgMCAwIDEgNiAxMmg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtFYXNlbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA3LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek04LjUgNmgyQTEuNSAxLjUgMCAwIDEgMTIgNy41djJhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0uNDczbC40NDcgMS4zNDJhLjUuNSAwIDAgMS0uOTQ4LjMxNkw4Ljk3MyAxMUg4LjV2MWEuNS41IDAgMCAxLTEgMHYtMWgtLjQ3M2wtLjU1MyAxLjY1OGEuNS41IDAgMSAxLS45NDgtLjMxNkw1Ljk3MyAxMUg1LjVBMS41IDEuNSAwIDAgMSA0IDkuNXYtMkExLjUgMS41IDAgMCAxIDUuNSA2aDJhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrRXhjZWxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek01Ljg4NCA2LjY4IDggOS4yMTlsMi4xMTYtMi41NGEuNS41IDAgMSAxIC43NjguNjQxTDguNjUxIDEwbDIuMjMzIDIuNjhhLjUuNSAwIDAgMS0uNzY4LjY0TDggMTAuNzgxbC0yLjExNiAyLjU0YS41LjUgMCAwIDEtLjc2OC0uNjQxTDcuMzQ5IDEwIDUuMTE2IDcuMzJhLjUuNSAwIDEgMSAuNzY4LS42NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg1LjI5M0ExIDEgMCAwIDEgMTAgLjI5M0wxMy43MDcgNGExIDEgMCAwIDEgLjI5My43MDdWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yem01LjUgMS41djJhMSAxIDAgMCAwIDEgMWgybC0zLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrRm9udEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTUuMDU3IDZoNS44ODZMMTEgOGgtLjVjLS4xOC0xLjA5Ni0uMzU2LTEuMTkyLTEuNjk0LTEuMjM1bC0uMjk4LS4wMXY1LjA5YzAgLjQ3LjEuNTgyLjkwMy42NTV2LjVINi41OXYtLjVjLjc5OS0uMDczLjg5OC0uMTg0Ljg5OC0uNjU0VjYuNzU1bC0uMjkzLjAxQzUuODU2IDYuODA4IDUuNjggNi45MDUgNS41IDhINWwuMDU3LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrSW1hZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg1LjI5M0ExIDEgMCAwIDEgMTAgLjI5M0wxMy43MDcgNGExIDEgMCAwIDEgLjI5My43MDd2NS41ODZsLTIuNzMtMi43M2ExIDEgMCAwIDAtMS41Mi4xMjdsLTEuODg5IDIuNjQ0LTEuNzY5LTEuMDYyYTEgMSAwIDAgMC0xLjIyMi4xNUwyIDEyLjI5MlYyYTIgMiAwIDAgMSAyLTJ6bTUuNSAxLjV2MmExIDEgMCAwIDAgMSAxaDJsLTMtM3ptLTEuNDk4IDRhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNTY0IDguMjcgMTQgMTEuNzA4VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0uMjkzbDMuNTc4LTMuNTc3IDIuNTYgMS41MzYgMi40MjYtMy4zOTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrTG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3YTEgMSAwIDAgMSAyIDB2MUg3Vjd6TTYgOS4zYzAtLjA0Mi4wMi0uMTA3LjEwNS0uMTc1QS42MzcuNjM3IDAgMCAxIDYuNSA5aDNhLjY0LjY0IDAgMCAxIC4zOTUuMTI1Yy4wODUuMDY4LjEwNS4xMzMuMTA1LjE3NXYyLjRjMCAuMDQyLS4wMi4xMDctLjEwNS4xNzVBLjYzNy42MzcgMCAwIDEgOS41IDEyaC0zYS42MzcuNjM3IDAgMCAxLS4zOTUtLjEyNUM2LjAyIDExLjgwNyA2IDExLjc0MiA2IDExLjdWOS4zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek0xMCA3djEuMDc2Yy41NC4xNjYgMSAuNTk3IDEgMS4yMjR2Mi40YzAgLjgxNi0uNzgxIDEuMy0xLjUgMS4zaC0zYy0uNzE5IDAtMS41LS40ODQtMS41LTEuM1Y5LjNjMC0uNjI3LjQ2LTEuMDU4IDEtMS4yMjRWN2EyIDIgMCAxIDEgNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya0xvY2syRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdhMSAxIDAgMCAxIDIgMHYxSDdWN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNMTAgN3YxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOS4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjdhMiAyIDAgMSAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtNZWRpY2FsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXptLTMgMnYuNjM0bC41NDktLjMxN2EuNS41IDAgMSAxIC41Ljg2Nkw3IDdsLjU0OS4zMTdhLjUuNSAwIDEgMS0uNS44NjZMNi41IDcuODY2VjguNWEuNS41IDAgMCAxLTEgMHYtLjYzNGwtLjU0OS4zMTdhLjUuNSAwIDEgMS0uNS0uODY2TDUgN2wtLjU0OS0uMzE3YS41LjUgMCAwIDEgLjUtLjg2NmwuNTQ5LjMxN1Y1LjVhLjUuNSAwIDEgMSAxIDB6bS0yIDQuNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xem0wIDJoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtNaW51c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTYgOC41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtNdXNpY0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTExIDYuNjR2MS43NWwtMiAuNXYzLjYxYzAgLjQ5NS0uMzAxLjg4My0uNjYyIDEuMTIzQzcuOTc0IDEzLjg2NiA3LjQ5OSAxNCA3IDE0Yy0uNSAwLS45NzQtLjEzNC0xLjMzOC0uMzc3LS4zNi0uMjQtLjY2Mi0uNjI4LS42NjItMS4xMjNzLjMwMS0uODgzLjY2Mi0xLjEyM0M2LjAyNiAxMS4xMzQgNi41MDEgMTEgNyAxMWMuMzU2IDAgLjcuMDY4IDEgLjE5NlY2Ljg5YTEgMSAwIDAgMSAuNzU3LS45N2wxLS4yNUExIDEgMCAwIDEgMTEgNi42NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtQZGZGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNTIzIDEyLjQyNGMuMTQtLjA4Mi4yOTMtLjE2Mi40NTktLjIzOGE3Ljg3OCA3Ljg3OCAwIDAgMS0uNDUuNjA2Yy0uMjguMzM3LS40OTguNTE2LS42MzUuNTcyYS4yNjYuMjY2IDAgMCAxLS4wMzUuMDEyLjI4Mi4yODIgMCAwIDEtLjAyNi0uMDQ0Yy0uMDU2LS4xMS0uMDU0LS4yMTYuMDQtLjM2LjEwNi0uMTY1LjMxOS0uMzU0LjY0Ny0uNTQ4em0yLjQ1NS0xLjY0N2MtLjExOS4wMjUtLjIzNy4wNS0uMzU2LjA3OGEyMS4xNDggMjEuMTQ4IDAgMCAwIC41LTEuMDUgMTIuMDQ1IDEyLjA0NSAwIDAgMCAuNTEuODU4Yy0uMjE3LjAzMi0uNDM2LjA3LS42NTQuMTE0em0yLjUyNS45MzlhMy44ODEgMy44ODEgMCAwIDEtLjQzNS0uNDFjLjIyOC4wMDUuNDM0LjAyMi42MTIuMDU0LjMxNy4wNTcuNDY2LjE0Ny41MTguMjA5YS4wOTUuMDk1IDAgMCAxIC4wMjYuMDY0LjQzNi40MzYgMCAwIDEtLjA2LjIuMzA3LjMwNyAwIDAgMS0uMDk0LjEyNC4xMDcuMTA3IDAgMCAxLS4wNjkuMDE1Yy0uMDktLjAwMy0uMjU4LS4wNjYtLjQ5OC0uMjU2ek04LjI3OCA2Ljk3Yy0uMDQuMjQ0LS4xMDguNTI0LS4yLjgyOWE0Ljg2IDQuODYgMCAwIDEtLjA4OS0uMzQ2Yy0uMDc2LS4zNTMtLjA4Ny0uNjMtLjA0Ni0uODIyLjAzOC0uMTc3LjExLS4yNDguMTk2LS4yODNhLjUxNy41MTcgMCAwIDEgLjE0NS0uMDRjLjAxMy4wMy4wMjguMDkyLjAzMi4xOTguMDA1LjEyMi0uMDA3LjI3Ny0uMDM4LjQ2NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAwaDUuMjkzQTEgMSAwIDAgMSAxMCAuMjkzTDEzLjcwNyA0YTEgMSAwIDAgMSAuMjkzLjcwN1YxNGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJ6bTUuNSAxLjV2MmExIDEgMCAwIDAgMSAxaDJsLTMtM3pNNC4xNjUgMTMuNjY4Yy4wOS4xOC4yMy4zNDMuNDM4LjQxOS4yMDcuMDc1LjQxMi4wNC41OC0uMDMuMzE4LS4xMy42MzUtLjQzNi45MjYtLjc4Ni4zMzMtLjQwMS42ODMtLjkyNyAxLjAyMS0xLjUxYTExLjY1MSAxMS42NTEgMCAwIDEgMS45OTctLjQwNmMuMy4zODMuNjEuNzEzLjkxLjk1LjI4LjIyLjYwMy40MDMuOTM0LjQxN2EuODU2Ljg1NiAwIDAgMCAuNTEtLjEzOGMuMTU1LS4xMDEuMjctLjI0Ny4zNTQtLjQxNi4wOS0uMTgxLjE0NS0uMzcuMTM4LS41NjNhLjg0NC44NDQgMCAwIDAtLjItLjUxOGMtLjIyNi0uMjctLjU5Ni0uNC0uOTYtLjQ2NWE1Ljc2IDUuNzYgMCAwIDAtMS4zMzUtLjA1IDEwLjk1NCAxMC45NTQgMCAwIDEtLjk4LTEuNjg2Yy4yNS0uNjYuNDM3LTEuMjg0LjUyLTEuNzk0LjAzNi0uMjE4LjA1NS0uNDI2LjA0OC0uNjE0YTEuMjM4IDEuMjM4IDAgMCAwLS4xMjctLjUzOC43LjcgMCAwIDAtLjQ3Ny0uMzY1Yy0uMjAyLS4wNDMtLjQxIDAtLjYwMS4wNzctLjM3Ny4xNS0uNTc2LjQ3LS42NTEuODIzLS4wNzMuMzQtLjA0LjczNi4wNDYgMS4xMzYuMDg4LjQwNi4yMzguODQ4LjQzIDEuMjk1YTE5LjY5NyAxOS42OTcgMCAwIDEtMS4wNjIgMi4yMjcgNy42NjIgNy42NjIgMCAwIDAtMS40ODIuNjQ1Yy0uMzcuMjItLjY5OS40OC0uODk3Ljc4Ny0uMjEuMzI2LS4yNzUuNzE0LS4wOCAxLjEwM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtQZXJzb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek0xMSA4YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMHptMiA1Ljc1NVYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtLjI0NVM0IDEyIDggMTJzNSAxLjc1NSA1IDEuNzU1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya1BsYXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek02IDYuODgzYS41LjUgMCAwIDEgLjc1Ny0uNDI5bDMuNTI4IDIuMTE3YS41LjUgMCAwIDEgMCAuODU4bC0zLjUyOCAyLjExN2EuNS41IDAgMCAxLS43NTctLjQzVjYuODg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya1BsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek04LjUgN3YxLjVIMTBhLjUuNSAwIDAgMSAwIDFIOC41VjExYS41LjUgMCAwIDEtMSAwVjkuNUg2YS41LjUgMCAwIDEgMC0xaDEuNVY3YS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya1Bvc3RGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xem0tNS0uNUg3YS41LjUgMCAwIDEgMCAxSDQuNWEuNS41IDAgMCAxIDAtMXptMCAzaDdhLjUuNSAwIDAgMSAuNS41djdhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtQcHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTg4IDEwSDdWNi41aDEuMTg4YTEuNzUgMS43NSAwIDEgMSAwIDMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBoNS4yOTNBMSAxIDAgMCAxIDEwIC4yOTNMMTMuNzA3IDRhMSAxIDAgMCAxIC4yOTMuNzA3VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMnptNS41IDEuNXYyYTEgMSAwIDAgMCAxIDFoMmwtMy0zek03IDUuNWExIDEgMCAwIDAtMSAxVjEzYS41LjUgMCAwIDAgMSAwdi0yaDEuMTg4YTIuNzUgMi43NSAwIDAgMCAwLTUuNUg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya1JpY2h0ZXh0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNNyA2LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDB6bS0uODYxIDEuNTQyIDEuMzMuODg2IDEuODU0LTEuODU1YS4yNS4yNSAwIDAgMSAuMjg5LS4wNDdsMS44ODguOTc0VjkuNWEuNS41IDAgMCAxLS41LjVINWEuNS41IDAgMCAxLS41LS41VjlzMS41NC0xLjI3NCAxLjYzOS0xLjIwOHpNNSAxMWg2YS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMSAwLTF6bTAgMmgzYS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrUnVsZWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek0zIDloMTB2MUg2djJoN3YxSDZ2Mkg1di0ySDN2LTFoMnYtMkgzVjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrU2xpZGVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDkuNzhWNy4yMmMwLS4wOTYuMTA2LS4xNTYuMTktLjEwNmwyLjEzIDEuMjc5YS4xMjUuMTI1IDAgMCAxIDAgLjIxNGwtMi4xMyAxLjI4QS4xMjUuMTI1IDAgMCAxIDcgOS43Nzh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTUgNmg2YS41LjUgMCAwIDEgLjQ5Ni40MzhsLjUgNEEuNS41IDAgMCAxIDExLjUgMTFoLTN2Mi4wMTZjLjg2My4wNTUgMS41LjI1MSAxLjUuNDg0IDAgLjI3Ni0uODk1LjUtMiAuNXMtMi0uMjI0LTItLjVjMC0uMjMzLjYzNy0uNDI5IDEuNS0uNDg0VjExaC0zYS41LjUgMCAwIDEtLjQ5Ni0uNTYybC41LTRBLjUuNSAwIDAgMSA1IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrU3ByZWFkc2hlZXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTJ2LTJoM3YySDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTMgOWgxMHYxaC0zdjJoM3YxaC0zdjJIOXYtMkg2djJINXYtMkgzdi0xaDJ2LTJIM1Y5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya1RleHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek00LjUgOWEuNS41IDAgMCAxIDAtMWg3YS41LjUgMCAwIDEgMCAxaC03ek00IDEwLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6bS41IDIuNWEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDEgMCAxaC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFybWFya1dvcmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek01LjQ4NSA2Ljg3OWwxLjAzNiA0LjE0NC45OTctMy42NTVhLjUuNSAwIDAgMSAuOTY0IDBsLjk5NyAzLjY1NSAxLjAzNi00LjE0NGEuNS41IDAgMCAxIC45Ny4yNDJsLTEuNSA2YS41LjUgMCAwIDEtLjk2Ny4wMUw4IDkuNDAybC0xLjAxOCAzLjczYS41LjUgMCAwIDEtLjk2Ny0uMDFsLTEuNS02YS41LjUgMCAxIDEgLjk3LS4yNDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVFYXJtYXJrWEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTYuODU0IDcuMTQ2IDggOC4yOTNsMS4xNDYtMS4xNDdhLjUuNSAwIDEgMSAuNzA4LjcwOEw4LjcwNyA5bDEuMTQ3IDEuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA5LjcwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOSA2LjE0NiA3Ljg1NGEuNS41IDAgMSAxIC43MDgtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUVhcm1hcmtaaXBGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA5LjQzOFY4LjVoMXYuOTM4YTEgMSAwIDAgMCAuMDMuMjQzbC40IDEuNTk4LS45My42Mi0uOTMtLjYyLjQtMS41OThhMSAxIDAgMCAwIC4wMy0uMjQzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xem0tNC0uNVYyaC0xVjFINnYxaDF2MUg2djFoMXYxSDZ2MWgxdjFINS41VjZoLTFWNWgxVjRoLTFWM2gxem0wIDQuNWgxYTEgMSAwIDAgMSAxIDF2LjkzOGwuNCAxLjU5OWExIDEgMCAwIDEtLjQxNiAxLjA3NGwtLjkzLjYyYTEgMSAwIDAgMS0xLjEwOSAwbC0uOTMtLjYyYTEgMSAwIDAgMS0uNDE1LTEuMDc0bC40LTEuNTk5VjguNWExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRWFzZWxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNi41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTguNSA1aDJBMS41IDEuNSAwIDAgMSAxMiA2LjV2MmExLjUgMS41IDAgMCAxLTEuNSAxLjVoLS40NzNsLjQ0NyAxLjM0MmEuNS41IDAgMCAxLS45NDguMzE2TDguOTczIDEwSDguNXYxYS41LjUgMCAwIDEtMSAwdi0xaC0uNDczbC0uNTUzIDEuNjU4YS41LjUgMCAxIDEtLjk0OC0uMzE2TDUuOTczIDEwSDUuNUExLjUgMS41IDAgMCAxIDQgOC41di0yQTEuNSAxLjUgMCAwIDEgNS41IDVoMmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUV4Y2VsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTUuODg0IDQuNjggOCA3LjIxOWwyLjExNi0yLjU0YS41LjUgMCAxIDEgLjc2OC42NDFMOC42NTEgOGwyLjIzMyAyLjY4YS41LjUgMCAwIDEtLjc2OC42NEw4IDguNzgxbC0yLjExNiAyLjU0YS41LjUgMCAwIDEtLjc2OC0uNjQxTDcuMzQ5IDggNS4xMTYgNS4zMmEuNS41IDAgMSAxIC43NjgtLjY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAwaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVGb250RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTUuMDU3IDRoNS44ODZMMTEgNmgtLjVjLS4xOC0xLjA5Ni0uMzU2LTEuMTkyLTEuNjk0LTEuMjM1bC0uMjk4LS4wMXY2LjA5YzAgLjQ3LjEuNTgyLjkwMy42NTV2LjVINi41OXYtLjVjLjc5OS0uMDczLjg5OC0uMTg0Ljg5OC0uNjU0VjQuNzU1bC0uMjkzLjAxQzUuODU2IDQuODA4IDUuNjggNC45MDUgNS41IDZINWwuMDU3LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVJbWFnZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwaDhhMiAyIDAgMCAxIDIgMnY4LjI5M2wtMi43My0yLjczYTEgMSAwIDAgMC0xLjUyLjEyN2wtMS44ODkgMi42NDQtMS43NjktMS4wNjJhMSAxIDAgMCAwLTEuMjIyLjE1TDIgMTIuMjkyVjJhMiAyIDAgMCAxIDItMnptNC4wMDIgNS41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjU2NCA4LjI3IDE0IDExLjcwOFYxNGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtLjI5M2wzLjU3OC0zLjU3NyAyLjU2IDEuNTM2IDIuNDI2LTMuMzk1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlTG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA2YTEgMSAwIDAgMSAyIDB2MUg3VjZ6TTYgOC4zYzAtLjA0Mi4wMi0uMTA3LjEwNS0uMTc1QS42MzcuNjM3IDAgMCAxIDYuNSA4aDNhLjY0LjY0IDAgMCAxIC4zOTUuMTI1Yy4wODUuMDY4LjEwNS4xMzMuMTA1LjE3NXYyLjRjMCAuMDQyLS4wMi4xMDctLjEwNS4xNzVBLjYzNy42MzcgMCAwIDEgOS41IDExaC0zYS42MzcuNjM3IDAgMCAxLS4zOTUtLjEyNUM2LjAyIDEwLjgwNyA2IDEwLjc0MiA2IDEwLjdWOC4zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnptLTIgNnYxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOC4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjZhMiAyIDAgMSAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZUxvY2syRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDZhMSAxIDAgMCAxIDIgMHYxSDdWNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6bS0yIDZ2MS4wNzZjLjU0LjE2NiAxIC41OTcgMSAxLjIyNHYyLjRjMCAuODE2LS43ODEgMS4zLTEuNSAxLjNoLTNjLS43MTkgMC0xLjUtLjQ4NC0xLjUtMS4zVjguM2MwLS42MjcuNDYtMS4wNTggMS0xLjIyNFY2YTIgMiAwIDEgMSA0IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVNZWRpY2FsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTguNSA0LjV2LjYzNGwuNTQ5LS4zMTdhLjUuNSAwIDEgMSAuNS44NjZMOSA2bC41NDkuMzE3YS41LjUgMCAxIDEtLjUuODY2TDguNSA2Ljg2NlY3LjVhLjUuNSAwIDAgMS0xIDB2LS42MzRsLS41NDkuMzE3YS41LjUgMCAxIDEtLjUtLjg2Nkw3IDZsLS41NDktLjMxN2EuNS41IDAgMCAxIC41LS44NjZsLjU0OS4zMTdWNC41YS41LjUgMCAxIDEgMSAwek01LjUgOWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xem0wIDJoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZU1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTYgNy41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZU11c2ljRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6bS0uNSA0LjExdjEuOGwtMi41LjV2NS4wOWMwIC40OTUtLjMwMS44ODMtLjY2MiAxLjEyM0M3Ljk3NCAxMi44NjYgNy40OTkgMTMgNyAxM2MtLjUgMC0uOTc0LS4xMzQtMS4zMzgtLjM3Ny0uMzYtLjI0LS42NjItLjYyOC0uNjYyLTEuMTIzcy4zMDEtLjg4My42NjItMS4xMjNDNi4wMjYgMTAuMTM0IDYuNTAxIDEwIDcgMTBjLjM1NiAwIC43LjA2OCAxIC4xOTZWNC40MWExIDEgMCAwIDEgLjgwNC0uOThsMS41LS4zYTEgMSAwIDAgMSAxLjE5Ni45OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZVBkZkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41MjMgMTAuNDI0Yy4xNC0uMDgyLjI5My0uMTYyLjQ1OS0uMjM4YTcuODc4IDcuODc4IDAgMCAxLS40NS42MDZjLS4yOC4zMzctLjQ5OC41MTYtLjYzNS41NzJhLjI2Ni4yNjYgMCAwIDEtLjAzNS4wMTIuMjgyLjI4MiAwIDAgMS0uMDI2LS4wNDRjLS4wNTYtLjExLS4wNTQtLjIxNi4wNC0uMzYuMTA2LS4xNjUuMzE5LS4zNTQuNjQ3LS41NDh6bTIuNDU1LTEuNjQ3Yy0uMTE5LjAyNS0uMjM3LjA1LS4zNTYuMDc4YTIxLjAzNSAyMS4wMzUgMCAwIDAgLjUtMS4wNSAxMS45NiAxMS45NiAwIDAgMCAuNTEuODU4Yy0uMjE3LjAzMi0uNDM2LjA3LS42NTQuMTE0em0yLjUyNS45MzlhMy44ODggMy44ODggMCAwIDEtLjQzNS0uNDFjLjIyOC4wMDUuNDM0LjAyMi42MTIuMDU0LjMxNy4wNTcuNDY2LjE0Ny41MTguMjA5YS4wOTUuMDk1IDAgMCAxIC4wMjYuMDY0LjQzNi40MzYgMCAwIDEtLjA2LjIuMzA3LjMwNyAwIDAgMS0uMDk0LjEyNC4xMDcuMTA3IDAgMCAxLS4wNjkuMDE1Yy0uMDktLjAwMy0uMjU4LS4wNjYtLjQ5OC0uMjU2ek04LjI3OCA0Ljk3Yy0uMDQuMjQ0LS4xMDguNTI0LS4yLjgyOWE0Ljg2IDQuODYgMCAwIDEtLjA4OS0uMzQ2Yy0uMDc2LS4zNTMtLjA4Ny0uNjMtLjA0Ni0uODIyLjAzOC0uMTc3LjExLS4yNDguMTk2LS4yODNhLjUxNy41MTcgMCAwIDEgLjE0NS0uMDRjLjAxMy4wMy4wMjguMDkyLjAzMi4xOTguMDA1LjEyMi0uMDA3LjI3Ny0uMDM4LjQ2NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAwaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJ6bS4xNjUgMTEuNjY4Yy4wOS4xOC4yMy4zNDMuNDM4LjQxOS4yMDcuMDc1LjQxMi4wNC41OC0uMDMuMzE4LS4xMy42MzUtLjQzNi45MjYtLjc4Ni4zMzMtLjQwMS42ODMtLjkyNyAxLjAyMS0xLjUxYTExLjY0IDExLjY0IDAgMCAxIDEuOTk3LS40MDZjLjMuMzgzLjYxLjcxMy45MS45NS4yOC4yMi42MDMuNDAzLjkzNC40MTdhLjg1Ni44NTYgMCAwIDAgLjUxLS4xMzhjLjE1NS0uMTAxLjI3LS4yNDcuMzU0LS40MTYuMDktLjE4MS4xNDUtLjM3LjEzOC0uNTYzYS44NDQuODQ0IDAgMCAwLS4yLS41MThjLS4yMjYtLjI3LS41OTYtLjQtLjk2LS40NjVhNS43NiA1Ljc2IDAgMCAwLTEuMzM1LS4wNSAxMC45NTQgMTAuOTU0IDAgMCAxLS45OC0xLjY4NmMuMjUtLjY2LjQzNy0xLjI4NC41Mi0xLjc5NC4wMzYtLjIxOC4wNTUtLjQyNi4wNDgtLjYxNGExLjIzOCAxLjIzOCAwIDAgMC0uMTI3LS41MzguNy43IDAgMCAwLS40NzctLjM2NWMtLjIwMi0uMDQzLS40MSAwLS42MDEuMDc3LS4zNzcuMTUtLjU3Ni40Ny0uNjUxLjgyMy0uMDczLjM0LS4wNC43MzYuMDQ2IDEuMTM2LjA4OC40MDYuMjM4Ljg0OC40MyAxLjI5NWExOS43MDcgMTkuNzA3IDAgMCAxLTEuMDYyIDIuMjI3IDcuNjYyIDcuNjYyIDAgMCAwLTEuNDgyLjY0NWMtLjM3LjIyLS42OTkuNDgtLjg5Ny43ODctLjIxLjMyNi0uMjc1LjcxNC0uMDggMS4xMDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVQZXJzb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnptLTEgN2EzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDB6bS0zIDRjMi42MjMgMCA0LjE0Ni44MjYgNSAxLjc1NVYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtMS4yNDVDMy44NTQgMTEuODI1IDUuMzc3IDExIDggMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVQbGF5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTYgNS44ODNhLjUuNSAwIDAgMSAuNzU3LS40MjlsMy41MjggMi4xMTdhLjUuNSAwIDAgMSAwIC44NThsLTMuNTI4IDIuMTE3YS41LjUgMCAwIDEtLjc1Ny0uNDNWNS44ODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVQbHVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTguNSA2djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTBhLjUuNSAwIDAgMS0xIDBWOC41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjZhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVQb3N0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTQuNSAzaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTF6bTAgMmg3YS41LjUgMCAwIDEgLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di04YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVQcHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTg4IDguNUg3VjVoMS4xODhhMS43NSAxLjc1IDAgMSAxIDAgMy41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yem0zIDRhMSAxIDAgMCAwLTEgMXY2LjVhLjUuNSAwIDAgMCAxIDB2LTJoMS4xODhhMi43NSAyLjc1IDAgMCAwIDAtNS41SDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVSaWNodGV4dEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek03IDQuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMHptLS44NjEgMS41NDIgMS4zMy44ODYgMS44NTQtMS44NTVhLjI1LjI1IDAgMCAxIC4yODktLjA0N2wxLjg4OC45NzRWNy41YS41LjUgMCAwIDEtLjUuNUg1YS41LjUgMCAwIDEtLjUtLjVWN3MxLjU0LTEuMjc0IDEuNjM5LTEuMjA4ek01IDloNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xem0wIDJoM2EuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlUnVsZWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjRoMTJWMmEyIDIgMCAwIDAtMi0yem0yIDdINnYyaDhWN3ptMCAzSDZ2Mmg4di0yem0wIDNINnYzaDZhMiAyIDAgMCAwIDItMnYtMXptLTkgM3YtM0gydjFhMiAyIDAgMCAwIDIgMmgxem0tMy00aDN2LTJIMnYyem0wLTNoM1Y3SDJ2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsZVNsaWRlc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3Ljc4VjUuMjJjMC0uMDk2LjEwNi0uMTU2LjE5LS4xMDZsMi4xMyAxLjI3OWEuMTI1LjEyNSAwIDAgMSAwIC4yMTRsLTIuMTMgMS4yOEEuMTI1LjEyNSAwIDAgMSA3IDcuNzc4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNNSA0aDZhLjUuNSAwIDAgMSAuNDk2LjQzOGwuNSA0QS41LjUgMCAwIDEgMTEuNSA5aC0zdjIuMDE2Yy44NjMuMDU1IDEuNS4yNTEgMS41LjQ4NCAwIC4yNzYtLjg5NS41LTIgLjVzLTItLjIyNC0yLS41YzAtLjIzMy42MzctLjQyOSAxLjUtLjQ4NFY5aC0zYS41LjUgMCAwIDEtLjQ5Ni0uNTYybC41LTRBLjUuNSAwIDAgMSA1IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVTcHJlYWRzaGVldEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2NGgxMlYyYTIgMiAwIDAgMC0yLTJ6bTIgN2gtNHYyaDRWN3ptMCAzaC00djJoNHYtMnptMCAzaC00djNoMmEyIDIgMCAwIDAgMi0ydi0xem0tNSAzdi0zSDZ2M2gzem0tNCAwdi0zSDJ2MWEyIDIgMCAwIDAgMiAyaDF6bS0zLTRoM3YtMkgydjJ6bTAtM2gzVjdIMnYyem00IDBWN2gzdjJINnptMCAxaDN2Mkg2di0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlVGV4dEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek01IDRoNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xem0tLjUgMi41QS41LjUgMCAwIDEgNSA2aDZhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxLS41LS41ek01IDhoNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xem0wIDJoM2EuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlV29yZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek01LjQ4NSA0Ljg3OWwxLjAzNiA0LjE0NC45OTctMy42NTVhLjUuNSAwIDAgMSAuOTY0IDBsLjk5NyAzLjY1NSAxLjAzNi00LjE0NGEuNS41IDAgMCAxIC45Ny4yNDJsLTEuNSA2YS41LjUgMCAwIDEtLjk2Ny4wMUw4IDcuNDAybC0xLjAxOCAzLjczYS41LjUgMCAwIDEtLjk2Ny0uMDFsLTEuNS02YS41LjUgMCAxIDEgLjk3LS4yNDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbGVYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTYuODU0IDYuMTQ2IDggNy4yOTNsMS4xNDYtMS4xNDdhLjUuNSAwIDEgMSAuNzA4LjcwOEw4LjcwNyA4bDEuMTQ3IDEuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwNyA2Ljg1NCA5Ljg1NGEuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDYuMTQ2IDYuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGaWxlWmlwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgOS40MzhWOC41aC0xdi45MzhhMSAxIDAgMCAxLS4wMy4yNDNsLS40IDEuNTk4LjkzLjYyLjkzLS42Mi0uNC0xLjU5OGExIDEgMCAwIDEtLjAzLS4yNDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJ6bTIuNSA4LjV2LjkzOGwtLjQgMS41OTlhMSAxIDAgMCAwIC40MTYgMS4wNzRsLjkzLjYyYTEgMSAwIDAgMCAxLjEwOSAwbC45My0uNjJhMSAxIDAgMCAwIC40MTUtMS4wNzRsLS40LTEuNTk5VjguNWExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDAgMC0xIDF6bTEtNS41aC0xdjFoMXYxaC0xdjFoMXYxSDlWNkg4VjVoMVY0SDhWM2gxVjJIOFYxSDYuNXYxaDF2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmlsdGVyQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTMuNSA1aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTF6TTUgOC41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41em0yIDNhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZpbHRlclNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0uNSA1aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxIDAtMXpNNCA4LjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6bTIgM2EuNS41IDAgMCAxIC41LS41aDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsRmxhZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzc4LjA4NUEuNS41IDAgMCAxIDE1IC41VjhhLjUuNSAwIDAgMS0uMzE0LjQ2NEwxNC41IDhsLjE4Ni40NjQtLjAwMy4wMDEtLjAwNi4wMDMtLjAyMy4wMDlhMTIuNDM1IDEyLjQzNSAwIDAgMS0uMzk3LjE1Yy0uMjY0LjA5NS0uNjMxLjIyMy0xLjA0Ny4zNS0uODE2LjI1Mi0xLjg3OS41MjMtMi43MS41MjMtLjg0NyAwLTEuNTQ4LS4yOC0yLjE1OC0uNTI1bC0uMDI4LS4wMUM3LjY4IDguNzEgNy4xNCA4LjUgNi41IDguNWMtLjcgMC0xLjYzOC4yMy0yLjQzNy40NzdBMTkuNjI2IDE5LjYyNiAwIDAgMCAzIDkuMzQyVjE1LjVhLjUuNSAwIDAgMS0xIDBWLjVhLjUuNSAwIDAgMSAxIDB2LjI4MmMuMjI2LS4wNzkuNDk2LS4xNy43OS0uMjZDNC42MDYuMjcyIDUuNjcgMCA2LjUgMGMuODQgMCAxLjUyNC4yNzcgMi4xMjEuNTE5bC4wNDMuMDE4QzkuMjg2Ljc4OCA5LjgyOCAxIDEwLjUgMWMuNyAwIDEuNjM4LS4yMyAyLjQzNy0uNDc3YTE5LjU4NyAxOS41ODcgMCAwIDAgMS4zNDktLjQ3NmwuMDE5LS4wMDcuMDA0LS4wMDJoLjAwMVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGb2xkZXJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODI4IDNoMy45ODJhMiAyIDAgMCAxIDEuOTkyIDIuMTgxbC0uNjM3IDdBMiAyIDAgMCAxIDEzLjE3NCAxNEgyLjgyNWEyIDIgMCAwIDEtMS45OTEtMS44MTlsLS42MzctN2ExLjk5IDEuOTkgMCAwIDEgLjM0Mi0xLjMxTC41IDNhMiAyIDAgMCAxIDItMmgzLjY3MmEyIDIgMCAwIDEgMS40MTQuNTg2bC44MjguODI4QTIgMiAwIDAgMCA5LjgyOCAzem0tOC4zMjIuMTJDMS43MiAzLjA0MiAxLjk1IDMgMi4xOSAzaDUuMzk2bC0uNzA3LS43MDdBMSAxIDAgMCAwIDYuMTcyIDJIMi41YTEgMSAwIDAgMC0xIC45ODFsLjAwNi4xMzl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZvbGRlclN5bWxpbmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjgxIDNIOS44MjhhMiAyIDAgMCAxLTEuNDE0LS41ODZsLS44MjgtLjgyOEEyIDIgMCAwIDAgNi4xNzIgMUgyLjVhMiAyIDAgMCAwLTIgMmwuMDQuODdhMS45OSAxLjk5IDAgMCAwLS4zNDIgMS4zMTFsLjYzNyA3QTIgMiAwIDAgMCAyLjgyNiAxNGgxMC4zNDhhMiAyIDAgMCAwIDEuOTkxLTEuODE5bC42MzctN0EyIDIgMCAwIDAgMTMuODEgM3pNMi4xOSAzYy0uMjQgMC0uNDcuMDQyLS42ODMuMTJMMS41IDIuOThhMSAxIDAgMCAxIDEtLjk4aDMuNjcyYTEgMSAwIDAgMSAuNzA3LjI5M0w3LjU4NiAzSDIuMTl6bTkuNjA4IDUuMjcxLTMuMTgyIDEuOTdjLS4yNy4xNjYtLjYxNi0uMDM2LS42MTYtLjM3MlY5LjFzLTIuNTcxLS4zLTQgMi40Yy41NzEtNC44IDMuMTQzLTQuOCA0LTQuOHYtLjc2OWMwLS4zMzYuMzQ2LS41MzguNjE2LS4zNzFsMy4xODIgMS45NjljLjI3LjE2Ni4yNy41NzYgMCAuNzQyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxGb3J3YXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05Ljc3IDEyLjExIDQuMDEyLTIuOTUzYS42NDcuNjQ3IDAgMCAwIDAtMS4xMTRMOS43NzEgNS4wOWEuNjQ0LjY0NCAwIDAgMC0uOTcxLjU1N1Y2LjY1SDJ2My45aDYuOHYxLjAwM2MwIC41MDUuNTQ1LjgwOC45Ny41NTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEZ1bm5lbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS41IDEuNUEuNS41IDAgMCAxIDIgMWgxMmEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS4xMjguMzM0TDEwIDguNjkyVjEzLjVhLjUuNSAwIDAgMS0uMzQyLjQ3NGwtMyAxQS41LjUgMCAwIDEgNiAxNC41VjguNjkyTDEuNjI4IDMuODM0QS41LjUgMCAwIDEgMS41IDMuNXYtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsR2VhckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40MDUgMS4wNWMtLjQxMy0xLjQtMi4zOTctMS40LTIuODEgMGwtLjEuMzRhMS40NjQgMS40NjQgMCAwIDEtMi4xMDUuODcybC0uMzEtLjE3Yy0xLjI4My0uNjk4LTIuNjg2LjcwNS0xLjk4NyAxLjk4N2wuMTY5LjMxMWMuNDQ2LjgyLjAyMyAxLjg0MS0uODcyIDIuMTA1bC0uMzQuMWMtMS40LjQxMy0xLjQgMi4zOTcgMCAyLjgxbC4zNC4xYTEuNDY0IDEuNDY0IDAgMCAxIC44NzIgMi4xMDVsLS4xNy4zMWMtLjY5OCAxLjI4My43MDUgMi42ODYgMS45ODcgMS45ODdsLjMxMS0uMTY5YTEuNDY0IDEuNDY0IDAgMCAxIDIuMTA1Ljg3MmwuMS4zNGMuNDEzIDEuNCAyLjM5NyAxLjQgMi44MSAwbC4xLS4zNGExLjQ2NCAxLjQ2NCAwIDAgMSAyLjEwNS0uODcybC4zMS4xN2MxLjI4My42OTggMi42ODYtLjcwNSAxLjk4Ny0xLjk4N2wtLjE2OS0uMzExYTEuNDY0IDEuNDY0IDAgMCAxIC44NzItMi4xMDVsLjM0LS4xYzEuNC0uNDEzIDEuNC0yLjM5NyAwLTIuODFsLS4zNC0uMWExLjQ2NCAxLjQ2NCAwIDAgMS0uODcyLTIuMTA1bC4xNy0uMzFjLjY5OC0xLjI4My0uNzA1LTIuNjg2LTEuOTg3LTEuOTg3bC0uMzExLjE2OWExLjQ2NCAxLjQ2NCAwIDAgMS0yLjEwNS0uODcybC0uMS0uMzR6TTggMTAuOTNhMi45MjkgMi45MjkgMCAxIDEgMC01Ljg2IDIuOTI5IDIuOTI5IDAgMCAxIDAgNS44NTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEdlb0FsdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNnM2LTUuNjg2IDYtMTBBNiA2IDAgMCAwIDIgNmMwIDQuMzE0IDYgMTAgNiAxMHptMC03YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsR2VvRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA0YTQgNCAwIDEgMSA0LjUgMy45NjlWMTMuNWEuNS41IDAgMCAxLTEgMFY3Ljk3QTQgNCAwIDAgMSA0IDMuOTk5em0yLjQ5MyA4LjU3NGEuNS41IDAgMCAxLS40MTEuNTc1Yy0uNzEyLjExOC0xLjI4LjI5NS0xLjY1NS40OTNhMS4zMTkgMS4zMTkgMCAwIDAtLjM3LjI2NS4zMDEuMzAxIDAgMCAwLS4wNTcuMDlWMTRsLjAwMi4wMDhhLjE0Ny4xNDcgMCAwIDAgLjAxNi4wMzMuNjE3LjYxNyAwIDAgMCAuMTQ1LjE1Yy4xNjUuMTMuNDM1LjI3LjgxMy4zOTUuNzUxLjI1IDEuODIuNDE0IDMuMDI0LjQxNHMyLjI3My0uMTYzIDMuMDI0LS40MTRjLjM3OC0uMTI2LjY0OC0uMjY1LjgxMy0uMzk1YS42MTkuNjE5IDAgMCAwIC4xNDYtLjE1LjE0OC4xNDggMCAwIDAgLjAxNS0uMDMzTDEyIDE0di0uMDA0YS4zMDEuMzAxIDAgMCAwLS4wNTctLjA5IDEuMzE4IDEuMzE4IDAgMCAwLS4zNy0uMjY0Yy0uMzc2LS4xOTgtLjk0My0uMzc1LTEuNjU1LS40OTNhLjUuNSAwIDEgMSAuMTY0LS45ODZjLjc3LjEyNyAxLjQ1Mi4zMjggMS45NTcuNTk0QzEyLjUgMTMgMTMgMTMuNCAxMyAxNGMwIC40MjYtLjI2Ljc1Mi0uNTQ0Ljk3Ny0uMjkuMjI4LS42OC40MTMtMS4xMTYuNTU4LS44NzguMjkzLTIuMDU5LjQ2NS0zLjM0LjQ2NS0xLjI4MSAwLTIuNDYyLS4xNzItMy4zNC0uNDY1LS40MzYtLjE0NS0uODI2LS4zMy0xLjExNi0uNTU4QzMuMjYgMTQuNzUyIDMgMTQuNDI2IDMgMTRjMC0uNTk5LjUtMSAuOTYxLTEuMjQzLjUwNS0uMjY2IDEuMTg3LS40NjcgMS45NTctLjU5NGEuNS41IDAgMCAxIC41NzUuNDExelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxHaWZ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIuNWEyLjUgMi41IDAgMCAxIDUgMCAyLjUgMi41IDAgMCAxIDUgMHYuMDA2YzAgLjA3IDAgLjI3LS4wMzguNDk0SDE1YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDFhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMi4wMzhBMi45NjggMi45NjggMCAwIDEgMyAyLjUwNlYyLjV6bTEuMDY4LjVIN3YtLjVhMS41IDEuNSAwIDEgMC0zIDBjMCAuMDg1LjAwMi4yNzQuMDQ1LjQzYS41MjIuNTIyIDAgMCAwIC4wMjMuMDd6TTkgM2gyLjkzMmEuNTYuNTYgMCAwIDAgLjAyMy0uMDdjLjA0My0uMTU2LjA0NS0uMzQ1LjA0NS0uNDNhMS41IDEuNSAwIDAgMC0zIDBWM3ptNiA0djcuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVIOVY3aDZ6TTIuNSAxNkExLjUgMS41IDAgMCAxIDEgMTQuNVY3aDZ2OUgyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEdyaWQxWDJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMWExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXYxNGExIDEgMCAwIDEtMSAxSDFhMSAxIDAgMCAxLTEtMVYxem05IDBhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTFWMXptMCA5YTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxHcmlkM1gyR2FwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDRhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY0em01IDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY0em01IDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFWNHpNMSA5YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWOXptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWOXptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xVjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEdyaWQzWDNHYXBGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJ6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjJ6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVYyek0xIDdhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY3em01IDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMVY3em01IDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFWN3pNMSAxMmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xdi0yem01IDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDdhMSAxIDAgMCAxLTEtMXYtMnptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xdi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxHcmlkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDIuNUExLjUgMS41IDAgMCAxIDIuNSAxaDNBMS41IDEuNSAwIDAgMSA3IDIuNXYzQTEuNSAxLjUgMCAwIDEgNS41IDdoLTNBMS41IDEuNSAwIDAgMSAxIDUuNXYtM3ptOCAwQTEuNSAxLjUgMCAwIDEgMTAuNSAxaDNBMS41IDEuNSAwIDAgMSAxNSAyLjV2M0ExLjUgMS41IDAgMCAxIDEzLjUgN2gtM0ExLjUgMS41IDAgMCAxIDkgNS41di0zem0tOCA4QTEuNSAxLjUgMCAwIDEgMi41IDloM0ExLjUgMS41IDAgMCAxIDcgMTAuNXYzQTEuNSAxLjUgMCAwIDEgNS41IDE1aC0zQTEuNSAxLjUgMCAwIDEgMSAxMy41di0zem04IDBBMS41IDEuNSAwIDAgMSAxMC41IDloM2ExLjUgMS41IDAgMCAxIDEuNSAxLjV2M2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTNBMS41IDEuNSAwIDAgMSA5IDEzLjV2LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhhbmRJbmRleEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDQuNDY2VjEuNzVhMS43NSAxLjc1IDAgMSAwLTMuNSAwdjUuMzRsLTEuMi4yNGExLjUgMS41IDAgMCAwLTEuMTk2IDEuNjM2bC4zNDUgMy4xMDZhMi41IDIuNSAwIDAgMCAuNDA1IDEuMTFsMS40MzMgMi4xNUExLjUgMS41IDAgMCAwIDYuMDM1IDE2aDYuMzg1YTEuNSAxLjUgMCAwIDAgMS4zMDItLjc1NmwxLjM5NS0yLjQ0MWEzLjUgMy41IDAgMCAwIC40NDQtMS4zODlsLjI3MS0yLjcxNWEyIDIgMCAwIDAtMS45OS0yLjE5OWgtLjU4MWE1LjExNCA1LjExNCAwIDAgMC0uMTk1LS4yNDhjLS4xOTEtLjIyOS0uNTEtLjU2OC0uODgtLjcxNi0uMzY0LS4xNDYtLjg0Ni0uMTMyLTEuMTU4LS4xMDhsLS4xMzIuMDEyYTEuMjYgMS4yNiAwIDAgMC0uNTYtLjY0MiAyLjYzMiAyLjYzMiAwIDAgMC0uNzM4LS4yODhjLS4zMS0uMDYyLS43MzktLjA1OC0xLjA1LS4wNDZsLS4wNDguMDAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxIYW5kSW5kZXhUaHVtYkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDEuNzV2Mi43MTZsLjA0Ny0uMDAyYy4zMTItLjAxMi43NDItLjAxNiAxLjA1MS4wNDYuMjguMDU2LjU0My4xOC43MzguMjg4LjI3My4xNTIuNDU2LjM4NS41Ni42NDJsLjEzMi0uMDEyYy4zMTItLjAyNC43OTQtLjAzOCAxLjE1OC4xMDguMzcuMTQ4LjY4OS40ODcuODguNzE2LjA3NS4wOS4xNDEuMTc1LjE5NS4yNDhoLjU4MmEyIDIgMCAwIDEgMS45OSAyLjE5OWwtLjI3MiAyLjcxNWEzLjUgMy41IDAgMCAxLS40NDQgMS4zODlsLTEuMzk1IDIuNDQxQTEuNSAxLjUgMCAwIDEgMTIuNDIgMTZINi4xMThhMS41IDEuNSAwIDAgMS0xLjM0Mi0uODNsLTEuMjE1LTIuNDNMMS4wNyA4LjU4OWExLjUxNyAxLjUxNyAwIDAgMSAyLjM3My0xLjg1Mkw1IDguMjkzVjEuNzVhMS43NSAxLjc1IDAgMCAxIDMuNSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxIYW5kVGh1bWJzRG93bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi45NTYgMTQuNTM0Yy4wNjUuOTM2Ljk1MiAxLjY1OSAxLjkwOCAxLjQybC4yNjEtLjA2NWExLjM3OCAxLjM3OCAwIDAgMCAxLjAxMi0uOTY1Yy4yMi0uODE2LjUzMy0yLjUxMi4wNjItNC41MS4xMzYuMDIuMjg1LjAzNy40NDMuMDUxLjcxMy4wNjUgMS42NjkuMDcxIDIuNTE2LS4yMTEuNTE4LS4xNzMuOTk0LS42OCAxLjItMS4yNzJhMS44OTYgMS44OTYgMCAwIDAtLjIzNC0xLjczNGMuMDU4LS4xMTguMTAzLS4yNDIuMTM4LS4zNjIuMDc3LS4yNy4xMTMtLjU2OC4xMTMtLjg1NiAwLS4yOS0uMDM2LS41ODYtLjExMy0uODU3YTIuMDk0IDIuMDk0IDAgMCAwLS4xNi0uNDAzYy4xNjktLjM4Ny4xMDctLjgyLS4wMDMtMS4xNDlhMy4xNjIgMy4xNjIgMCAwIDAtLjQ4OC0uOWMuMDU0LS4xNTMuMDc2LS4zMTMuMDc2LS40NjVhMS44NiAxLjg2IDAgMCAwLS4yNTMtLjkxMkMxMy4xLjc1NyAxMi40MzcuMjggMTEuNS4yOEg4Yy0uNjA1IDAtMS4wNy4wOC0xLjQ2Ni4yMTdhNC44MjMgNC44MjMgMCAwIDAtLjk3LjQ4NWwtLjA0OC4wMjljLS41MDQuMzA4LS45OTkuNjEtMi4wNjguNzIzQzIuNjgyIDEuODE1IDIgMi40MzQgMiAzLjI3OXY0YzAgLjg1MS42ODUgMS40MzMgMS4zNTcgMS42MTYuODQ5LjIzMiAxLjU3NC43ODcgMi4xMzIgMS40MS41Ni42MjYuOTE0IDEuMjggMS4wMzkgMS42MzguMTk5LjU3NS4zNTYgMS41NC40MjggMi41OTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhhbmRUaHVtYnNVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi45NTYgMS43NDVDNy4wMjEuODEgNy45MDguMDg3IDguODY0LjMyNWwuMjYxLjA2NmMuNDYzLjExNi44NzQuNDU2IDEuMDEyLjk2NS4yMi44MTYuNTMzIDIuNTExLjA2MiA0LjUxYTkuODQgOS44NCAwIDAgMSAuNDQzLS4wNTFjLjcxMy0uMDY1IDEuNjY5LS4wNzIgMi41MTYuMjEuNTE4LjE3My45OTQuNjgxIDEuMiAxLjI3My4xODQuNTMyLjE2IDEuMTYyLS4yMzQgMS43MzMuMDU4LjExOS4xMDMuMjQyLjEzOC4zNjMuMDc3LjI3LjExMy41NjcuMTEzLjg1NiAwIC4yODktLjAzNi41ODYtLjExMy44NTYtLjAzOS4xMzUtLjA5LjI3My0uMTYuNDA0LjE2OS4zODcuMTA3LjgxOS0uMDAzIDEuMTQ4YTMuMTYzIDMuMTYzIDAgMCAxLS40ODguOTAxYy4wNTQuMTUyLjA3Ni4zMTIuMDc2LjQ2NSAwIC4zMDUtLjA4OS42MjUtLjI1My45MTJDMTMuMSAxNS41MjIgMTIuNDM3IDE2IDExLjUgMTZIOGMtLjYwNSAwLTEuMDctLjA4MS0xLjQ2Ni0uMjE4YTQuODIgNC44MiAwIDAgMS0uOTctLjQ4NGwtLjA0OC0uMDNjLS41MDQtLjMwNy0uOTk5LS42MDktMi4wNjgtLjcyMkMyLjY4MiAxNC40NjQgMiAxMy44NDYgMiAxM1Y5YzAtLjg1LjY4NS0xLjQzMiAxLjM1Ny0xLjYxNS44NDktLjIzMiAxLjU3NC0uNzg3IDIuMTMyLTEuNDEuNTYtLjYyNy45MTQtMS4yOCAxLjAzOS0xLjYzOS4xOTktLjU3NS4zNTYtMS41MzkuNDI4LTIuNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhhbmRiYWdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMWEyIDIgMCAwIDAtMiAydjJINVYzYTMgMyAwIDEgMSA2IDB2MmgtMVYzYTIgMiAwIDAgMC0yLTJ6TTUgNUgzLjM2YTEuNSAxLjUgMCAwIDAtMS40ODMgMS4yNzdMLjg1IDEzLjEzQTIuNSAyLjUgMCAwIDAgMy4zMjIgMTZoOS4zNTVhMi41IDIuNSAwIDAgMCAyLjQ3My0yLjg3bC0xLjAyOC02Ljg1M0ExLjUgMS41IDAgMCAwIDEyLjY0IDVIMTF2MS41YS41LjUgMCAwIDEtMSAwVjVINnYxLjVhLjUuNSAwIDAgMS0xIDBWNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsSGRkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0ydi0xem0yLjUgMWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMXptMiAwYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxek0uOTEgNy4yMDRBMi45OTMgMi45OTMgMCAwIDEgMiA3aDEyYy4zODQgMCAuNzUyLjA3MiAxLjA5LjIwNGwtMS44NjctMy40MjJBMS41IDEuNSAwIDAgMCAxMS45MDYgM0g0LjA5NGExLjUgMS41IDAgMCAwLTEuMzE3Ljc4MkwuOTEgNy4yMDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhkZE5ldHdvcmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDIgMmg1LjV2M0ExLjUgMS41IDAgMCAwIDYgMTEuNUguNWEuNS41IDAgMCAwIDAgMUg2QTEuNSAxLjUgMCAwIDAgNy41IDE0aDFhMS41IDEuNSAwIDAgMCAxLjUtMS41aDUuNWEuNS41IDAgMCAwIDAtMUgxMEExLjUgMS41IDAgMCAwIDguNSAxMFY3SDE0YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6bS41IDNhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6bTIgMGEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsSGRkUmFja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDF2MkgyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMmgtMVY3aDFhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptLjUgM2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXptMiAwYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0tMiA3YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0yIDBhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6TTEyIDd2Mkg0VjdoOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsSGRkU3RhY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgOWEyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJIMnptLjUgM2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXptMiAwYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxek0yIDJhMiAyIDAgMCAwLTIgMnYxYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptLjUgM2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXptMiAwYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxIZWFydEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMS4zMTRDMTIuNDM4LTMuMjQ4IDIzLjUzNCA0LjczNSA4IDE1LTcuNTM0IDQuNzM2IDMuNTYyLTMuMjQ4IDggMS4zMTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhlcHRhZ29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy43NzkuMDUyYS41LjUgMCAwIDEgLjQ0MiAwbDYuMDE1IDIuOTdhLjUuNSAwIDAgMSAuMjY3LjM0bDEuNDg1IDYuNjc2YS41LjUgMCAwIDEtLjA5My40MTVsLTQuMTYyIDUuMzU0YS41LjUgMCAwIDEtLjM5NS4xOTNINC42NjJhLjUuNSAwIDAgMS0uMzk1LS4xOTNMLjEwNSAxMC40NTNhLjUuNSAwIDAgMS0uMDkzLS40MTVsMS40ODUtNi42NzZhLjUuNSAwIDAgMSAuMjY3LS4zNEw3Ljc3OS4wNTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhleGFnb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04LjUuMTM0YTEgMSAwIDAgMC0xIDBsLTYgMy41NzdhMSAxIDAgMCAwLS41Ljg2NnY2Ljg0NmExIDEgMCAwIDAgLjUuODY2bDYgMy41NzdhMSAxIDAgMCAwIDEgMGw2LTMuNTc3YTEgMSAwIDAgMCAuNS0uODY2VjQuNTc3YTEgMSAwIDAgMC0uNS0uODY2TDguNS4xMzR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEhvdXNlRG9vckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDE0LjV2LTMuNTA1YzAtLjI0NS4yNS0uNDk1LjUtLjQ5NWgyYy4yNSAwIC41LjI1LjUuNXYzLjVhLjUuNSAwIDAgMCAuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXYtN2EuNS41IDAgMCAwLS4xNDYtLjM1NEwxMyA1Ljc5M1YyLjVhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2MS4yOTNMOC4zNTQgMS4xNDZhLjUuNSAwIDAgMC0uNzA4IDBsLTYgNkEuNS41IDAgMCAwIDEuNSA3LjV2N2EuNS41IDAgMCAwIC41LjVoNGEuNS41IDAgMCAwIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxIb3VzZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwibTggMy4yOTMgNiA2VjEzLjVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgMiAxMy41VjkuMjkzbDYtNnptNS0uNzkzVjZsLTItMlYyLjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy4yOTMgMS41YTEgMSAwIDAgMSAxLjQxNCAwbDYuNjQ3IDYuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCAyLjIwNyAxLjM1NCA4Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOEw3LjI5MyAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEltYWdlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMDAyIDNhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTEyYTIgMiAwIDAgMS0yLTJWM3ptMSA5djFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjkuNWwtMy43NzctMS45NDdhLjUuNSAwIDAgMC0uNTc3LjA5M2wtMy43MSAzLjcxLTIuNjYtMS43NzJhLjUuNSAwIDAgMC0uNjMuMDYyTDEuMDAyIDEyem01LTYuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsSW5ib3hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuOTggNGEuNS41IDAgMCAwLS4zOS4xODhMMS41NCA4SDZhLjUuNSAwIDAgMSAuNS41IDEuNSAxLjUgMCAxIDAgMyAwQS41LjUgMCAwIDEgMTAgOGg0LjQ2bC0zLjA1LTMuODEyQS41LjUgMCAwIDAgMTEuMDIgNEg0Ljk4em0tMS4xNy0uNDM3QTEuNSAxLjUgMCAwIDEgNC45OCAzaDYuMDRhMS41IDEuNSAwIDAgMSAxLjE3LjU2M2wzLjcgNC42MjVhLjUuNSAwIDAgMSAuMTA2LjM3NGwtLjM5IDMuMTI0QTEuNSAxLjUgMCAwIDEgMTQuMTE3IDEzSDEuODgzYTEuNSAxLjUgMCAwIDEtMS40ODktMS4zMTRsLS4zOS0zLjEyNGEuNS41IDAgMCAxIC4xMDYtLjM3NGwzLjctNC42MjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEluYm94ZXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuOTggMWEuNS41IDAgMCAwLS4zOS4xODhMMS41NCA1SDZhLjUuNSAwIDAgMSAuNS41IDEuNSAxLjUgMCAwIDAgMyAwQS41LjUgMCAwIDEgMTAgNWg0LjQ2bC0zLjA1LTMuODEyQS41LjUgMCAwIDAgMTEuMDIgMUg0Ljk4ek0zLjgxLjU2M0ExLjUgMS41IDAgMCAxIDQuOTggMGg2LjA0YTEuNSAxLjUgMCAwIDEgMS4xNy41NjNsMy43IDQuNjI1YS41LjUgMCAwIDEgLjEwNi4zNzRsLS4zOSAzLjEyNEExLjUgMS41IDAgMCAxIDE0LjExNyAxMEgxLjg4M0ExLjUgMS41IDAgMCAxIC4zOTQgOC42ODZsLS4zOS0zLjEyNGEuNS41IDAgMCAxIC4xMDYtLjM3NEwzLjgxLjU2M3pNLjEyNSAxMS4xN0EuNS41IDAgMCAxIC41IDExSDZhLjUuNSAwIDAgMSAuNS41IDEuNSAxLjUgMCAwIDAgMyAwIC41LjUgMCAwIDEgLjUtLjVoNS41YS41LjUgMCAwIDEgLjQ5Ni41NjJsLS4zOSAzLjEyNEExLjUgMS41IDAgMCAxIDE0LjExNyAxNkgxLjg4M2ExLjUgMS41IDAgMCAxLTEuNDg5LTEuMzE0bC0uMzktMy4xMjRhLjUuNSAwIDAgMSAuMTIxLS4zOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEluZm9DaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnptLjkzLTkuNDEyLTEgNC43MDVjLS4wNy4zNC4wMjkuNTMzLjMwNC41MzMuMTk0IDAgLjQ4Ny0uMDcuNjg2LS4yNDZsLS4wODguNDE2Yy0uMjg3LjM0Ni0uOTIuNTk4LTEuNDY1LjU5OC0uNzAzIDAtMS4wMDItLjQyMi0uODA4LTEuMzE5bC43MzgtMy40NjhjLjA2NC0uMjkzLjAwNi0uMzk5LS4yODctLjQ3bC0uNDUxLS4wODEuMDgyLS4zODEgMi4yOS0uMjg3ek04IDUuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEluZm9TcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMnptOC45MyA0LjU4OC0yLjI5LjI4Ny0uMDgyLjM4LjQ1LjA4M2MuMjk0LjA3LjM1Mi4xNzYuMjg4LjQ2OWwtLjczOCAzLjQ2OGMtLjE5NC44OTcuMTA1IDEuMzE5LjgwOCAxLjMxOS41NDUgMCAxLjE3OC0uMjUyIDEuNDY1LS41OThsLjA4OC0uNDE2Yy0uMi4xNzYtLjQ5Mi4yNDYtLjY4Ni4yNDYtLjI3NSAwLS4zNzUtLjE5My0uMzA0LS41MzNMOC45MyA2LjU4OHpNOCA1LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxKb3VybmFsQm9va21hcmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDFoNnY3YS41LjUgMCAwIDEtLjc1Ny40MjlMOSA3LjA4MyA2Ljc1NyA4LjQzQS41LjUgMCAwIDEgNiA4VjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAwaDEwYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJ2LTFoMXYxYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjFIMVYyYTIgMiAwIDAgMSAyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA1di0uNWEuNS41IDAgMCAxIDEgMFY1aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDBWOGguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwdi41aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbEthbmJhbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yaC0xMXptNSAyaDFhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTF6bS01IDFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2N2ExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWM3ptOS0xaDFhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxLZXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAxMS41YTMuNSAzLjUgMCAxIDEgMy4xNjMtNUgxNEwxNS41IDggMTQgOS41bC0xLTEtMSAxLTEtMS0xIDEtMS0xLTEgMUg2LjY2M2EzLjUgMy41IDAgMCAxLTMuMTYzIDJ6TTIuNSA5YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsS2V5Ym9hcmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY2em0xMyAuMjV2LjVjMCAuMTM4LjExMi4yNS4yNS4yNWguNWEuMjUuMjUgMCAwIDAgLjI1LS4yNXYtLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTIuMjUgOGEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVBLjI1LjI1IDAgMCAwIDMgOC43NXYtLjVBLjI1LjI1IDAgMCAwIDIuNzUgOGgtLjV6TTQgOC4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41QS4yNS4yNSAwIDAgMCA1IDguNzV2LS41QS4yNS4yNSAwIDAgMCA0Ljc1IDhoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTYuMjUgOGEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVBLjI1LjI1IDAgMCAwIDcgOC43NXYtLjVBLjI1LjI1IDAgMCAwIDYuNzUgOGgtLjV6TTggOC4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41QS4yNS4yNSAwIDAgMCA5IDguNzV2LS41QS4yNS4yNSAwIDAgMCA4Ljc1IDhoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTEzLjI1IDhhLjI1LjI1IDAgMCAwLS4yNS4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtLjV6bTAgMmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0uNXptLTMtMmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMS41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMS41em0uNzUgMi4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtLjVhLjI1LjI1IDAgMCAwLS4yNS4yNXpNMTEuMjUgNmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0uNXpNOSA2LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41QS4yNS4yNSAwIDAgMCA5Ljc1IDZoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTcuMjUgNmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVBLjI1LjI1IDAgMCAwIDggNi43NXYtLjVBLjI1LjI1IDAgMCAwIDcuNzUgNmgtLjV6TTUgNi4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41QS4yNS4yNSAwIDAgMCA2IDYuNzV2LS41QS4yNS4yNSAwIDAgMCA1Ljc1IDZoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTIuMjUgNmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMS41QS4yNS4yNSAwIDAgMCA0IDYuNzV2LS41QS4yNS4yNSAwIDAgMCAzLjc1IDZoLTEuNXpNMiAxMC4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtLjVhLjI1LjI1IDAgMCAwLS4yNS4yNXpNNC4yNSAxMGEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNS41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxMYW1wRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWM3ptNS41LTIgLjI3Ni0uNTUzYS4yNS4yNSAwIDAgMSAuNDQ4IDBMOC41IDFoLTF6bS0uNjE1IDhoMi4yM0M5Ljk2OCAxMC41OTUgMTEgMTIuNjkgMTEgMTMuNWMwIDEuMzgtMS4zNDMgMi41LTMgMi41cy0zLTEuMTItMy0yLjVjMC0uODEgMS4wMzItMi45MDUgMS44ODUtNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxMYXB0b3BGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAyQTEuNSAxLjUgMCAwIDAgMSAzLjVWMTJoMTRWMy41QTEuNSAxLjUgMCAwIDAgMTMuNSAyaC0xMXpNMCAxMi41aDE2YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAwIDEyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbExheWVyc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43NjUgMS41NTlhLjUuNSAwIDAgMSAuNDcgMGw3LjUgNGEuNS41IDAgMCAxIDAgLjg4MmwtNy41IDRhLjUuNSAwIDAgMS0uNDcgMGwtNy41LTRhLjUuNSAwIDAgMSAwLS44ODJsNy41LTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi4xMjUgOC41NjctMS44Ni45OTJhLjUuNSAwIDAgMCAwIC44ODJsNy41IDRhLjUuNSAwIDAgMCAuNDcgMGw3LjUtNGEuNS41IDAgMCAwIDAtLjg4MmwtMS44Ni0uOTkyLTUuMTcgMi43NTZhMS41IDEuNSAwIDAgMS0xLjQxIDBsLTUuMTctMi43NTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbExpZ2h0YnVsYkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2YTYgNiAwIDEgMSAxMC4xNzQgNC4zMWMtLjIwMy4xOTYtLjM1OS40LS40NTMuNjE5bC0uNzYyIDEuNzY5QS41LjUgMCAwIDEgMTAuNSAxM2gtNWEuNS41IDAgMCAxLS40Ni0uMzAybC0uNzYxLTEuNzdhMS45NjQgMS45NjQgMCAwIDAtLjQ1My0uNjE4QTUuOTg0IDUuOTg0IDAgMCAxIDIgNnptMyA4LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxbC0uMjI0LjQ0N2ExIDEgMCAwIDEtLjg5NC41NTNINi42MThhMSAxIDAgMCAxLS44OTQtLjU1M0w1LjUgMTVhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTGlnaHRidWxiT2ZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZjMC0uNTcyLjA4LTEuMTI1LjIzLTEuNjVsOC41NTggOC41NTlBLjUuNSAwIDAgMSAxMC41IDEzaC01YS41LjUgMCAwIDEtLjQ2LS4zMDJsLS43NjEtMS43N2ExLjk2NCAxLjk2NCAwIDAgMC0uNDUzLS42MThBNS45ODQgNS45ODQgMCAwIDEgMiA2em0xMC4zMDMgNC4xODFMMy44MTggMS42OTdhNiA2IDAgMCAxIDguNDg0IDguNDg0ek01IDE0LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxbC0uMjI0LjQ0N2ExIDEgMCAwIDEtLjg5NC41NTNINi42MThhMSAxIDAgMCAxLS44OTQtLjU1M0w1LjUgMTVhLjUuNSAwIDAgMS0uNS0uNXpNMi4zNTQgMS42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwxMiAxMmEuNS41IDAgMCAwIC43MDgtLjcwOGwtMTItMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbExpZ2h0bmluZ0NoYXJnZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjUxLjA2OGEuNS41IDAgMCAxIC4yMjcuNThMOS42NzcgNi41SDEzYS41LjUgMCAwIDEgLjM2NC44NDNsLTggOC41YS41LjUgMCAwIDEtLjg0Mi0uNDlMNi4zMjMgOS41SDNhLjUuNSAwIDAgMS0uMzY0LS44NDNsOC04LjVhLjUuNSAwIDAgMSAuNjE1LS4wOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTGlnaHRuaW5nRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUyLjM1OUEuNS41IDAgMCAxIDYgMGg0YS41LjUgMCAwIDEgLjQ3NC42NThMOC42OTQgNkgxMi41YS41LjUgMCAwIDEgLjM5NS44MDdsLTcgOWEuNS41IDAgMCAxLS44NzMtLjQ1NEw2LjgyMyA5LjVIMy41YS41LjUgMCAwIDEtLjQ4LS42NDFsMi41LTguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIgMiAwIDAgMSAyIDJ2NEg2VjNhMiAyIDAgMCAxIDItMnptMyA2VjNhMyAzIDAgMCAwLTYgMHY0YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbE1hcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2IC41YS41LjUgMCAwIDAtLjU5OC0uNDlMMTAuNS45OSA1LjU5OC4wMWEuNS41IDAgMCAwLS4xOTYgMGwtNSAxQS41LjUgMCAwIDAgMCAxLjV2MTRhLjUuNSAwIDAgMCAuNTk4LjQ5bDQuOTAyLS45OCA0LjkwMi45OGEuNTAyLjUwMiAwIDAgMCAuMTk2IDBsNS0xQS41LjUgMCAwIDAgMTYgMTQuNVYuNXpNNSAxNC4wOVYxLjExbC41LS4xLjUuMXYxMi45OGwtLjQwMi0uMDhhLjQ5OC40OTggMCAwIDAtLjE5NiAwTDUgMTQuMDl6bTUgLjhWMS45MWwuNDAyLjA4YS41LjUgMCAwIDAgLjE5NiAwTDExIDEuOTF2MTIuOThsLS41LjEtLjUtLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbE1hcmtkb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMTEuNSAxYS41LjUgMCAwIDAtLjUuNXYzLjc5M0w5Ljg1NCA4LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDIgMmEuNS41IDAgMCAwIC43MDggMGwyLTJhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTIgOS4yOTNWNS41YS41LjUgMCAwIDAtLjUtLjV6TTMuNTYgNy4wMWguMDU2bDEuNDI4IDMuMjM5aC43NzRsMS40Mi0zLjI0aC4wNTZWMTFoMS4wNzNWNS4wMDFoLTEuMmwtMS43MSAzLjg5NGgtLjAzOWwtMS43MS0zLjg5NEgyLjVWMTFoMS4wNlY3LjAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxNZWdhcGhvbmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIuNWExLjUgMS41IDAgMCAxIDMgMHYxMWExLjUgMS41IDAgMCAxLTMgMHYtMTF6bS0xIC43MjRjLTIuMDY3Ljk1LTQuNTM5IDEuNDgxLTcgMS42NTZ2Ni4yMzdhMjUuMjIyIDI1LjIyMiAwIDAgMSAxLjA4OC4wODVjMi4wNTMuMjA0IDQuMDM4LjY2OCA1LjkxMiAxLjU2VjMuMjI0em0tOCA3Ljg0MVY0LjkzNGMtLjY4LjAyNy0xLjM5OS4wNDMtMi4wMDguMDUzQTIuMDIgMi4wMiAwIDAgMCAwIDd2MmMwIDEuMTA2Ljg5NiAxLjk5NiAxLjk5NCAyLjAwOWE2OC4xNCA2OC4xNCAwIDAgMSAuNDk2LjAwOCA2NCA2NCAwIDAgMSAxLjUxLjA0OHptMS4zOSAxLjA4MWMuMjg1LjAyMS41NjkuMDQ3Ljg1LjA3OGwuMjUzIDEuNjlhMSAxIDAgMCAxLS45ODMgMS4xODdoLS41NDhhMSAxIDAgMCAxLS45MTYtLjU5OWwtMS4zMTQtMi40OGE2NS44MSA2NS44MSAwIDAgMSAxLjY5Mi4wNjRjLjMyNy4wMTcuNjUuMDM3Ljk2Ni4wNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTWVudUFwcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxLjVBMS41IDEuNSAwIDAgMSAxLjUgMGgyQTEuNSAxLjUgMCAwIDEgNSAxLjV2MkExLjUgMS41IDAgMCAxIDMuNSA1aC0yQTEuNSAxLjUgMCAwIDEgMCAzLjV2LTJ6TTAgOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY4em0xIDN2MmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTJIMXptMTQtMVY4YTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjJoMTR6TTIgOC41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wIDRhLjUuNSAwIDAgMSAuNS0uNWg2YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbE1lbnVCdXR0b25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAwQTEuNSAxLjUgMCAwIDAgMCAxLjV2MkExLjUgMS41IDAgMCAwIDEuNSA1aDhBMS41IDEuNSAwIDAgMCAxMSAzLjV2LTJBMS41IDEuNSAwIDAgMCA5LjUgMGgtOHptNS45MjcgMi40MjdBLjI1LjI1IDAgMCAxIDcuNjA0IDJoLjc5MmEuMjUuMjUgMCAwIDEgLjE3Ny40MjdsLS4zOTYuMzk2YS4yNS4yNSAwIDAgMS0uMzU0IDBsLS4zOTYtLjM5NnpNMCA4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjh6bTEgM3YyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMkgxem0xNC0xVjhhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2MmgxNHpNMiA4LjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAgNGEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTWVudUJ1dHRvbldpZGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAwQTEuNSAxLjUgMCAwIDAgMCAxLjV2MkExLjUgMS41IDAgMCAwIDEuNSA1aDEzQTEuNSAxLjUgMCAwIDAgMTYgMy41di0yQTEuNSAxLjUgMCAwIDAgMTQuNSAwaC0xM3ptMSAyaDNhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMSAwLTF6bTkuOTI3LjQyN0EuMjUuMjUgMCAwIDEgMTIuNjA0IDJoLjc5MmEuMjUuMjUgMCAwIDEgLjE3Ny40MjdsLS4zOTYuMzk2YS4yNS4yNSAwIDAgMS0uMzU0IDBsLS4zOTYtLjM5NnpNMCA4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjh6bTEgM3YyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMkgxem0xNC0xVjhhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2MmgxNHpNMiA4LjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAgNGEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTWljRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDNhMyAzIDAgMCAxIDYgMHY1YTMgMyAwIDAgMS02IDBWM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgNi41QS41LjUgMCAwIDEgNCA3djFhNCA0IDAgMCAwIDggMFY3YS41LjUgMCAwIDEgMSAwdjFhNSA1IDAgMCAxLTQuNSA0Ljk3NVYxNWgzYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDN2LTIuMDI1QTUgNSAwIDAgMSAzIDhWN2EuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxNaWNNdXRlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4YzAgLjU2NC0uMDk0IDEuMTA3LS4yNjYgMS42MTNsLS44MTQtLjgxNEE0LjAyIDQuMDIgMCAwIDAgMTIgOFY3YS41LjUgMCAwIDEgMSAwdjF6bS01IDRjLjgxOCAwIDEuNTc4LS4yNDUgMi4yMTItLjY2N2wuNzE4LjcxOWE0Ljk3MyA0Ljk3MyAwIDAgMS0yLjQzLjkyM1YxNWgzYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDN2LTIuMDI1QTUgNSAwIDAgMSAzIDhWN2EuNS41IDAgMCAxIDEgMHYxYTQgNCAwIDAgMCA0IDR6bTMtOXY0Ljg3OUw1LjE1OCAyLjAzN0EzLjAwMSAzLjAwMSAwIDAgMSAxMSAzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNDg2IDEwLjYwNyA1IDYuMTJWOGEzIDMgMCAwIDAgNC40ODYgMi42MDd6bS03Ljg0LTkuMjUzIDEyIDEyIC43MDgtLjcwOC0xMi0xMi0uNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTW9vbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAuMjc4YS43NjguNzY4IDAgMCAxIC4wOC44NTggNy4yMDggNy4yMDggMCAwIDAtLjg3OCAzLjQ2YzAgNC4wMjEgMy4yNzggNy4yNzcgNy4zMTggNy4yNzcuNTI3IDAgMS4wNC0uMDU1IDEuNTMzLS4xNmEuNzg3Ljc4NyAwIDAgMSAuODEuMzE2LjczMy43MzMgMCAwIDEtLjAzMS44OTNBOC4zNDkgOC4zNDkgMCAwIDEgOC4zNDQgMTZDMy43MzQgMTYgMCAxMi4yODYgMCA3LjcxIDAgNC4yNjYgMi4xMTQgMS4zMTIgNS4xMjQuMDZBLjc1Mi43NTIgMCAwIDEgNiAuMjc4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxNb29uU3RhcnNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgLjI3OGEuNzY4Ljc2OCAwIDAgMSAuMDguODU4IDcuMjA4IDcuMjA4IDAgMCAwLS44NzggMy40NmMwIDQuMDIxIDMuMjc4IDcuMjc3IDcuMzE4IDcuMjc3LjUyNyAwIDEuMDQtLjA1NSAxLjUzMy0uMTZhLjc4Ny43ODcgMCAwIDEgLjgxLjMxNi43MzMuNzMzIDAgMCAxLS4wMzEuODkzQTguMzQ5IDguMzQ5IDAgMCAxIDguMzQ0IDE2QzMuNzM0IDE2IDAgMTIuMjg2IDAgNy43MSAwIDQuMjY2IDIuMTE0IDEuMzEyIDUuMTI0LjA2QS43NTIuNzUyIDAgMCAxIDYgLjI3OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC43OTQgMy4xNDhhLjIxNy4yMTcgMCAwIDEgLjQxMiAwbC4zODcgMS4xNjJjLjE3My41MTguNTc5LjkyNCAxLjA5NyAxLjA5N2wxLjE2Mi4zODdhLjIxNy4yMTcgMCAwIDEgMCAuNDEybC0xLjE2Mi4zODdhMS43MzQgMS43MzQgMCAwIDAtMS4wOTcgMS4wOTdsLS4zODcgMS4xNjJhLjIxNy4yMTcgMCAwIDEtLjQxMiAwbC0uMzg3LTEuMTYyQTEuNzM0IDEuNzM0IDAgMCAwIDkuMzEgNi41OTNsLTEuMTYyLS4zODdhLjIxNy4yMTcgMCAwIDEgMC0uNDEybDEuMTYyLS4zODdhMS43MzQgMS43MzQgMCAwIDAgMS4wOTctMS4wOTdsLjM4Ny0xLjE2MnpNMTMuODYzLjA5OWEuMTQ1LjE0NSAwIDAgMSAuMjc0IDBsLjI1OC43NzRjLjExNS4zNDYuMzg2LjYxNy43MzIuNzMybC43NzQuMjU4YS4xNDUuMTQ1IDAgMCAxIDAgLjI3NGwtLjc3NC4yNThhMS4xNTYgMS4xNTYgMCAwIDAtLjczMi43MzJsLS4yNTguNzc0YS4xNDUuMTQ1IDAgMCAxLS4yNzQgMGwtLjI1OC0uNzc0YTEuMTU2IDEuMTU2IDAgMCAwLS43MzItLjczMmwtLjc3NC0uMjU4YS4xNDUuMTQ1IDAgMCAxIDAtLjI3NGwuNzc0LS4yNThjLjM0Ni0uMTE1LjYxNy0uMzg2LjczMi0uNzMyTDEzLjg2My4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxNb3VzZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1YTUgNSAwIDAgMSAxMCAwdjZhNSA1IDAgMCAxLTEwIDBWNXptNS41LTEuNWEuNS41IDAgMCAwLTEgMHYyYS41LjUgMCAwIDAgMSAwdi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxNb3VzZTJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNS4wMjZDNC45NTguMjg2IDMgMi41MTUgMyA1LjE4OFY1LjVoNC41Vi4wMjZ6bTEgMFY1LjVIMTN2LS4zMTJDMTMgMi41MTUgMTEuMDQyLjI4NiA4LjUuMDI2ek0xMyA2LjVIM3Y0LjMxM0MzIDEzLjY1OCA1LjIyIDE2IDggMTZzNS0yLjM0MiA1LTUuMTg4VjYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTW91c2UzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUuMDY5QTE1LjMyOCAxNS4zMjggMCAwIDAgNyAwYy0uNTkzIDAtMS4xMDQuMTU3LTEuNTI3LjQ2My0uNDE4LjMwMi0uNzE3LjcyNi0uOTMgMS4yMDgtLjM4Ni44NzMtLjUyMiAyLjAxLS41NCAzLjIwNmw0LjQ5NyAxVi4wNjl6TTMuNzEgNS44MzYgMy4zODEgNkEyLjUgMi41IDAgMCAwIDIgOC4yMzZ2Mi41NzZDMiAxMy42NTkgNC4yMiAxNiA3IDE2aDJjMi43OCAwIDUtMi4zNDIgNS01LjE4OFY4LjEyM2wtOS0ydi4wMDNsLjAwOC4zNTNjLjAwNy4zLjAyMy43MTUuMDUzIDEuMTc1LjA2My45MzcuMTg2IDIuMDA1LjQxMyAyLjY4OGEuNS41IDAgMSAxLS45NDguMzE2Yy0uMjczLS44MTctLjQtMi0uNDYyLTIuOTM3QTMwLjE2IDMwLjE2IDAgMCAxIDQgNi4wMDNjMC0uMDM0LjAwMy0uMDY3LjAxLS4xbC0uMy0uMDY3ek0xNCA3LjFWNS4xODdjMC0xLjEzLS4yNzItMi4wNDQtLjc0OC0yLjc3Mi0uNDc0LS43MjYtMS4xMy0xLjIzNS0xLjg0OS0xLjU5QTcuNDk1IDcuNDk1IDAgMCAwIDkuNS4yMTJ2NS44ODdsNC41IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbE11c2ljUGxheWVyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEyYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptMSAyaDZhMSAxIDAgMCAxIDEgMXYyLjVhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xem0zIDEyYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTm9kZU1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTYgOGE1IDUgMCAwIDEtOS45NzUuNUg0QTEuNSAxLjUgMCAwIDEgMi41IDEwaC0xQTEuNSAxLjUgMCAwIDEgMCA4LjV2LTFBMS41IDEuNSAwIDAgMSAxLjUgNmgxQTEuNSAxLjUgMCAwIDEgNCA3LjVoMi4wMjVBNSA1IDAgMCAxIDE2IDh6bS0yIDBhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwIDAgMWg1QS41LjUgMCAwIDAgMTQgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTm9kZVBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEzYTUgNSAwIDEgMC00Ljk3NS01LjVINEExLjUgMS41IDAgMCAwIDIuNSA2aC0xQTEuNSAxLjUgMCAwIDAgMCA3LjV2MUExLjUgMS41IDAgMCAwIDEuNSAxMGgxQTEuNSAxLjUgMCAwIDAgNCA4LjVoMi4wMjVBNSA1IDAgMCAwIDExIDEzem0uNS03LjV2MmgyYS41LjUgMCAwIDEgMCAxaC0ydjJhLjUuNSAwIDAgMS0xIDB2LTJoLTJhLjUuNSAwIDAgMSAwLTFoMnYtMmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsTnV0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjU4IDFhMSAxIDAgMCAwLS44NjguNTA0bC0zLjQyOCA2YTEgMSAwIDAgMCAwIC45OTJsMy40MjggNkExIDEgMCAwIDAgNC41OCAxNWg2Ljg0YTEgMSAwIDAgMCAuODY4LS41MDRsMy40MjktNmExIDEgMCAwIDAgMC0uOTkybC0zLjQyOS02QTEgMSAwIDAgMCAxMS40MiAxSDQuNTh6bTUuMDE4IDkuNjk2YTMgMyAwIDEgMS0zLTUuMTk2IDMgMyAwIDAgMSAzIDUuMTk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxPY3RhZ29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4xMDcgMGEuNS41IDAgMCAxIC4zNTMuMTQ2bDQuMzk0IDQuMzk0YS41LjUgMCAwIDEgLjE0Ni4zNTN2Ni4yMTRhLjUuNSAwIDAgMS0uMTQ2LjM1M2wtNC4zOTQgNC4zOTRhLjUuNSAwIDAgMS0uMzUzLjE0Nkg0Ljg5M2EuNS41IDAgMCAxLS4zNTMtLjE0NkwuMTQ2IDExLjQ2QS41LjUgMCAwIDEgMCAxMS4xMDdWNC44OTNhLjUuNSAwIDAgMSAuMTQ2LS4zNTNMNC41NC4xNDZBLjUuNSAwIDAgMSA0Ljg5MyAwaDYuMjE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQYWxldHRlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40MzMgMTAuMDdDMTQuMTMzIDEwLjU4NSAxNiAxMS4xNSAxNiA4YTggOCAwIDEgMC04IDhjMS45OTYgMCAxLjgyNi0xLjUwNCAxLjY0OS0zLjA4LS4xMjQtMS4xMDEtLjI1Mi0yLjIzNy4zNTEtMi45Mi40NjUtLjUyNyAxLjQyLS4yMzcgMi40MzMuMDd6TTggNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptNC41IDNhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6TTUgNi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem0uNSA2LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBhdGNoQ2hlY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA2Ny44N2EyLjg5IDIuODkgMCAwIDAtNC4xMzQgMGwtLjYyMi42MzgtLjg5LS4wMTFhMi44OSAyLjg5IDAgMCAwLTIuOTI0IDIuOTI0bC4wMS44OS0uNjM2LjYyMmEyLjg5IDIuODkgMCAwIDAgMCA0LjEzNGwuNjM3LjYyMi0uMDExLjg5YTIuODkgMi44OSAwIDAgMCAyLjkyNCAyLjkyNGwuODktLjAxLjYyMi42MzZhMi44OSAyLjg5IDAgMCAwIDQuMTM0IDBsLjYyMi0uNjM3Ljg5LjAxMWEyLjg5IDIuODkgMCAwIDAgMi45MjQtMi45MjRsLS4wMS0uODkuNjM2LS42MjJhMi44OSAyLjg5IDAgMCAwIDAtNC4xMzRsLS42MzctLjYyMi4wMTEtLjg5YTIuODkgMi44OSAwIDAgMC0yLjkyNC0yLjkyNGwtLjg5LjAxLS42MjItLjYzNnptLjI4NyA1Ljk4NC0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMNyA4Ljc5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQYXRjaEV4Y2xhbWF0aW9uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wNjcuODdhMi44OSAyLjg5IDAgMCAwLTQuMTM0IDBsLS42MjIuNjM4LS44OS0uMDExYTIuODkgMi44OSAwIDAgMC0yLjkyNCAyLjkyNGwuMDEuODktLjYzNi42MjJhMi44OSAyLjg5IDAgMCAwIDAgNC4xMzRsLjYzNy42MjItLjAxMS44OWEyLjg5IDIuODkgMCAwIDAgMi45MjQgMi45MjRsLjg5LS4wMS42MjIuNjM2YTIuODkgMi44OSAwIDAgMCA0LjEzNCAwbC42MjItLjYzNy44OS4wMTFhMi44OSAyLjg5IDAgMCAwIDIuOTI0LTIuOTI0bC0uMDEtLjg5LjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMCAwLTQuMTM0bC0uNjM3LS42MjIuMDExLS44OWEyLjg5IDIuODkgMCAwIDAtMi45MjQtMi45MjRsLS44OS4wMS0uNjIyLS42MzZ6TTggNGMuNTM1IDAgLjk1NC40NjIuOS45OTVsLS4zNSAzLjUwN2EuNTUyLjU1MiAwIDAgMS0xLjEgMEw3LjEgNC45OTVBLjkwNS45MDUgMCAwIDEgOCA0em0uMDAyIDZhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQYXRjaE1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wNjcuODdhMi44OSAyLjg5IDAgMCAwLTQuMTM0IDBsLS42MjIuNjM4LS44OS0uMDExYTIuODkgMi44OSAwIDAgMC0yLjkyNCAyLjkyNGwuMDEuODktLjYzNi42MjJhMi44OSAyLjg5IDAgMCAwIDAgNC4xMzRsLjYzNy42MjItLjAxMS44OWEyLjg5IDIuODkgMCAwIDAgMi45MjQgMi45MjRsLjg5LS4wMS42MjIuNjM2YTIuODkgMi44OSAwIDAgMCA0LjEzNCAwbC42MjItLjYzNy44OS4wMTFhMi44OSAyLjg5IDAgMCAwIDIuOTI0LTIuOTI0bC0uMDEtLjg5LjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMCAwLTQuMTM0bC0uNjM3LS42MjIuMDExLS44OWEyLjg5IDIuODkgMCAwIDAtMi45MjQtMi45MjRsLS44OS4wMS0uNjIyLS42MzZ6TTYgNy41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGF0Y2hQbHVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wNjcuODdhMi44OSAyLjg5IDAgMCAwLTQuMTM0IDBsLS42MjIuNjM4LS44OS0uMDExYTIuODkgMi44OSAwIDAgMC0yLjkyNCAyLjkyNGwuMDEuODktLjYzNi42MjJhMi44OSAyLjg5IDAgMCAwIDAgNC4xMzRsLjYzNy42MjItLjAxMS44OWEyLjg5IDIuODkgMCAwIDAgMi45MjQgMi45MjRsLjg5LS4wMS42MjIuNjM2YTIuODkgMi44OSAwIDAgMCA0LjEzNCAwbC42MjItLjYzNy44OS4wMTFhMi44OSAyLjg5IDAgMCAwIDIuOTI0LTIuOTI0bC0uMDEtLjg5LjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMCAwLTQuMTM0bC0uNjM3LS42MjIuMDExLS44OWEyLjg5IDIuODkgMCAwIDAtMi45MjQtMi45MjRsLS44OS4wMS0uNjIyLS42MzZ6TTguNSA2djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTBhLjUuNSAwIDAgMS0xIDBWOC41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjZhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBhdGNoUXVlc3Rpb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOTMzLjg3YTIuODkgMi44OSAwIDAgMSA0LjEzNCAwbC42MjIuNjM4Ljg5LS4wMTFhMi44OSAyLjg5IDAgMCAxIDIuOTI0IDIuOTI0bC0uMDEuODkuNjM2LjYyMmEyLjg5IDIuODkgMCAwIDEgMCA0LjEzNGwtLjYzNy42MjIuMDExLjg5YTIuODkgMi44OSAwIDAgMS0yLjkyNCAyLjkyNGwtLjg5LS4wMS0uNjIyLjYzNmEyLjg5IDIuODkgMCAwIDEtNC4xMzQgMGwtLjYyMi0uNjM3LS44OS4wMTFhMi44OSAyLjg5IDAgMCAxLTIuOTI0LTIuOTI0bC4wMS0uODktLjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMSAwLTQuMTM0bC42MzctLjYyMi0uMDExLS44OWEyLjg5IDIuODkgMCAwIDEgMi45MjQtMi45MjRsLjg5LjAxLjYyMi0uNjM2ek03LjAwMiAxMWExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDB6bTEuNjAyLTIuMDI3Yy4wNC0uNTM0LjE5OC0uODE1Ljg0Ni0xLjI2LjY3NC0uNDc1IDEuMDUtMS4wOSAxLjA1LTEuOTg2IDAtMS4zMjUtLjkyLTIuMjI3LTIuMjYyLTIuMjI3LTEuMDIgMC0xLjc5Mi40OTItMi4xIDEuMjlBMS43MSAxLjcxIDAgMCAwIDYgNS40OGMwIC4zOTMuMjAzLjY0LjU0NS42NC4yNzIgMCAuNDU1LS4xNDcuNTY0LS41MS4xNTgtLjU5Mi41MjUtLjkxNSAxLjA3NC0uOTE1LjYxIDAgMS4wMy40NDYgMS4wMyAxLjA4NCAwIC41NjMtLjIwOC44ODUtLjgyMiAxLjMyNS0uNjE5LjQzMy0uOTI2LjkxNC0uOTI2IDEuNjR2LjExMWMwIC40MjguMjA4Ljc0NS41ODUuNzQ1LjMzNiAwIC41MDQtLjI0LjU1NC0uNjI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQYXVzZUJ0bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMlY0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yem02LjI1LTdDNS41NiA1IDUgNS41NiA1IDYuMjV2My41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtMy41QzcuNSA1LjU2IDYuOTQgNSA2LjI1IDV6bTMuNSAwYy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYzLjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi0zLjVDMTEgNS41NiAxMC40NCA1IDkuNzUgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGF1c2VDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNi4yNSA1QzUuNTYgNSA1IDUuNTYgNSA2LjI1djMuNWExLjI1IDEuMjUgMCAxIDAgMi41IDB2LTMuNUM3LjUgNS41NiA2Ljk0IDUgNi4yNSA1em0zLjUgMGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2My41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtMy41QzExIDUuNTYgMTAuNDQgNSA5Ljc1IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBhdXNlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMy41QTEuNSAxLjUgMCAwIDEgNyA1djZhMS41IDEuNSAwIDAgMS0zIDBWNWExLjUgMS41IDAgMCAxIDEuNS0xLjV6bTUgMEExLjUgMS41IDAgMCAxIDEyIDV2NmExLjUgMS41IDAgMCAxLTMgMFY1YTEuNSAxLjUgMCAwIDEgMS41LTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGVhY2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEzLjI5MkE4IDggMCAwIDAgOC41LjAxNXY3Ljc3OGw1LjUgNS41em0tLjcwOC43MDhMOC41IDkuMjA2djYuNzc4YTcuOTY3IDcuOTY3IDAgMCAwIDQuNzkyLTEuOTg2ek03LjUgMTUuOTg1VjkuMjA3TDIuNzA4IDE0QTcuOTY3IDcuOTY3IDAgMCAwIDcuNSAxNS45ODV6TTIgMTMuMjkyQTggOCAwIDAgMSA3LjUuMDE1djcuNzc4bC01LjUgNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQZW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzLjQ5OC43OTUuMTQ5LS4xNDlhMS4yMDcgMS4yMDcgMCAxIDEgMS43MDcgMS43MDhsLS4xNDkuMTQ4YTEuNSAxLjUgMCAwIDEtLjA1OSAyLjA1OUw0Ljg1NCAxNC44NTRhLjUuNSAwIDAgMS0uMjMzLjEzMWwtNCAxYS41LjUgMCAwIDEtLjYwNi0uNjA2bDEtNGEuNS41IDAgMCAxIC4xMzEtLjIzMmw5LjY0Mi05LjY0MmEuNS41IDAgMCAwLS42NDIuMDU2TDYuODU0IDQuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4TDkuNDQuODU0QTEuNSAxLjUgMCAwIDEgMTEuNS43OTZhMS41IDEuNSAwIDAgMSAxLjk5OC0uMDAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQZW5jaWxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjg1NC4xNDZhLjUuNSAwIDAgMC0uNzA3IDBMMTAuNSAxLjc5MyAxNC4yMDcgNS41bDEuNjQ3LTEuNjQ2YS41LjUgMCAwIDAgMC0uNzA4bC0zLTN6bS42NDYgNi4wNjFMOS43OTMgMi41IDMuMjkzIDlIMy41YS41LjUgMCAwIDEgLjUuNXYuNWguNWEuNS41IDAgMCAxIC41LjV2LjVoLjVhLjUuNSAwIDAgMSAuNS41di41aC41YS41LjUgMCAwIDEgLjUuNXYuMjA3bDYuNS02LjV6bS03LjQ2OCA3LjQ2OEEuNS41IDAgMCAxIDYgMTMuNVYxM2gtLjVhLjUuNSAwIDAgMS0uNS0uNVYxMmgtLjVhLjUuNSAwIDAgMS0uNS0uNVYxMWgtLjVhLjUuNSAwIDAgMS0uNS0uNVYxMGgtLjVhLjQ5OS40OTkgMCAwIDEtLjE3NS0uMDMybC0uMTc5LjE3OGEuNS41IDAgMCAwLS4xMS4xNjhsLTIgNWEuNS41IDAgMCAwIC42NS42NWw1LTJhLjUuNSAwIDAgMCAuMTY4LS4xMWwuMTc4LS4xNzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBlbnRhZ29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04IDAgOCA2LjUtMyA5LjVIM0wwIDYuNSA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBlb3BsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNHMtMSAwLTEtMSAxLTQgNS00IDUgMyA1IDQtMSAxLTEgMUg3em00LTZhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjIxNiAxNEEyLjIzOCAyLjIzOCAwIDAgMSA1IDEzYzAtMS4zNTUuNjgtMi43NSAxLjkzNi0zLjcyQTYuMzI1IDYuMzI1IDAgMCAwIDUgOWMtNCAwLTUgMy01IDRzMSAxIDEgMWg0LjIxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgOGEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGVyc29uQmFkZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem00LjUgMGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zek04IDExYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptNSAyLjc1NUMxMi4xNDYgMTIuODI1IDEwLjYyMyAxMiA4IDEycy00LjE0Ni44MjYtNSAxLjc1NVYxNGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtLjI0NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGVyc29uQ2hlY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNS44NTQgNS4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMCAxIC43MDgtLjcwOEwxMi41IDcuNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTRzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0LTEgMS0xIDFIMXptNS02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGVyc29uRGFzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExIDcuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDE0cy0xIDAtMS0xIDEtNCA2LTQgNiAzIDYgNC0xIDEtMSAxSDF6bTUtNmEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBlcnNvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNHMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDQtMSAxLTEgMUgzem01LTZhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQZXJzb25MaW5lc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptLTUgNnMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDQtMSAxLTEgMUgxek0xMSAzLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjV6bS41IDIuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00em0yIDNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMnptMCAzYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBlcnNvblBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTRzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0LTEgMS0xIDFIMXptNS02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTMuNSA1YS41LjUgMCAwIDEgLjUuNVY3aDEuNWEuNS41IDAgMCAxIDAgMUgxNHYxLjVhLjUuNSAwIDAgMS0xIDBWOGgtMS41YS41LjUgMCAwIDEgMC0xSDEzVjUuNWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQZXJzb25YRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMSAxNHMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDQtMSAxLTEgMUgxem01LTZhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2em02LjE0Ni0yLjg1NGEuNS41IDAgMCAxIC43MDggMEwxNCA2LjI5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4TDE0LjcwNyA3bDEuMTQ3IDEuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMMTQgNy43MDdsLTEuMTQ2IDEuMTQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEzLjI5MyA3bC0xLjE0Ny0xLjE0NmEuNS41IDAgMCAxIDAtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGhvbmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYyem02IDExYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGhvbmVMYW5kc2NhcGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTIuNWEyIDIgMCAwIDEtMi0ydi02YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJIMnptMTEtNmExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBob25lVmlicmF0ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNHptNSA3YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHpNMS44MDcgNC43MzRhLjUuNSAwIDEgMC0uODg0LS40NjhBNy45NjcgNy45NjcgMCAwIDAgMCA4YzAgMS4zNDcuMzM0IDIuNjE4LjkyMyAzLjczNGEuNS41IDAgMSAwIC44ODQtLjQ2OEE2Ljk2NyA2Ljk2NyAwIDAgMSAxIDhjMC0xLjE4LjI5Mi0yLjI5Mi44MDctMy4yNjZ6bTEzLjI3LS40NjhhLjUuNSAwIDAgMC0uODg0LjQ2OEMxNC43MDggNS43MDggMTUgNi44MTkgMTUgOGMwIDEuMTgtLjI5MiAyLjI5Mi0uODA3IDMuMjY2YS41LjUgMCAwIDAgLjg4NC40NjhBNy45NjcgNy45NjcgMCAwIDAgMTYgOGE3Ljk2NyA3Ljk2NyAwIDAgMC0uOTIzLTMuNzM0ek0zLjM0IDYuMTgyYS41LjUgMCAxIDAtLjkzLS4zNjRBNS45ODYgNS45ODYgMCAwIDAgMiA4YzAgLjc2OS4xNDUgMS41MDUuNDEgMi4xODJhLjUuNSAwIDEgMCAuOTMtLjM2NEE0Ljk4NiA0Ljk4NiAwIDAgMSAzIDhjMC0uNjQyLjEyLTEuMjU1LjM0LTEuODE4em0xMC4yNS0uMzY0YS41LjUgMCAwIDAtLjkzLjM2NGMuMjIuNTYzLjM0IDEuMTc2LjM0IDEuODE4IDAgLjY0Mi0uMTIgMS4yNTUtLjM0IDEuODE4YS41LjUgMCAwIDAgLjkzLjM2NEMxMy44NTYgOS41MDUgMTQgOC43NjkgMTQgOGMwLS43NjktLjE0NS0xLjUwNS0uNDEtMi4xODJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBpZUNoYXJ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS45ODUgOC41SDguMjA3bC01LjUgNS41YTggOCAwIDAgMCAxMy4yNzctNS41ek0yIDEzLjI5MkE4IDggMCAwIDEgNy41LjAxNXY3Ljc3OGwtNS41IDUuNXpNOC41LjAxNVY3LjVoNy40ODVBOC4wMDEgOC4wMDEgMCAwIDAgOC41LjAxNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGlnZ3lCYW5rRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy45NjQgMS41MjdjLTIuOTc3IDAtNS41NzEgMS43MDQtNi4zMiA0LjEyNWgtLjU1QTEgMSAwIDAgMCAuMTEgNi44MjRsLjI1NCAxLjQ2YTEuNSAxLjUgMCAwIDAgMS40NzggMS4yNDNoLjI2M2MuMy41MTMuNjg4Ljk3OCAxLjE0NSAxLjM4MmwtLjcyOSAyLjQ3N2EuNS41IDAgMCAwIC40OC42NDFoMmEuNS41IDAgMCAwIC40NzEtLjMzMmwuNDgyLTEuMzUxYy42MzUuMTczIDEuMzEuMjY3IDIuMDExLjI2Ny43MDcgMCAxLjM4OC0uMDk1IDIuMDI4LS4yNzJsLjU0MyAxLjM3MmEuNS41IDAgMCAwIC40NjUuMzE2aDJhLjUuNSAwIDAgMCAuNDc4LS42NDVsLS43NjEtMi41MDZDMTMuODEgOS44OTUgMTQuNSA4LjU1OSAxNC41IDcuMDY5YzAtLjE0NS0uMDA3LS4yOS0uMDItLjQzMS4yNjEtLjExLjUwOC0uMjY2LjcwNS0uNDQ0LjMxNS4zMDYuODE1LjMwNi44MTUtLjQxNyAwIC4yMjMtLjUuMjIzLS40NjEtLjAyNmEuOTUuOTUgMCAwIDAgLjA5LS4yNTUuNy43IDAgMCAwLS4yMDItLjY0NS41OC41OCAwIDAgMC0uNzA3LS4wOTguNzM1LjczNSAwIDAgMC0uMzc1LjU2MmMtLjAyNC4yNDMuMDgyLjQ4LjMyLjY1NGEyLjExMiAyLjExMiAwIDAgMS0uMjU5LjE1M2MtLjUzNC0yLjY2NC0zLjI4NC00LjU5NS02LjQ0Mi00LjU5NXptNy4xNzMgMy44NzZhLjU2NS41NjUgMCAwIDEtLjA5OC4yMS43MDQuNzA0IDAgMCAxLS4wNDQtLjAyNWMtLjE0Ni0uMDktLjE1Ny0uMTc1LS4xNTItLjIyM2EuMjM2LjIzNiAwIDAgMSAuMTE3LS4xNzNjLjA0OS0uMDI3LjA4LS4wMjEuMTEzLjAxMmEuMjAyLjIwMiAwIDAgMSAuMDY0LjE5OXptLTguOTk5LS42NUE2LjYxMyA2LjYxMyAwIDAgMSA3Ljk2NCA0LjVjLjY2NiAwIDEuMzAzLjA5NyAxLjg5My4yNzNhLjUuNSAwIDEgMCAuMjg2LS45NThBNy42MDEgNy42MDEgMCAwIDAgNy45NjQgMy41Yy0uNzM0IDAtMS40NDEuMTAzLTIuMTAyLjI5MmEuNS41IDAgMSAwIC4yNzYuOTYyek01IDYuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGluQW5nbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODI4LjcyMmEuNS41IDAgMCAxIC4zNTQuMTQ2bDQuOTUgNC45NWEuNS41IDAgMCAxIDAgLjcwN2MtLjQ4LjQ4LTEuMDcyLjU4OC0xLjUwMy41ODgtLjE3NyAwLS4zMzUtLjAxOC0uNDYtLjAzOWwtMy4xMzQgMy4xMzRhNS45MjcgNS45MjcgMCAwIDEgLjE2IDEuMDEzYy4wNDYuNzAyLS4wMzIgMS42ODctLjcyIDIuMzc1YS41LjUgMCAwIDEtLjcwNyAwbC0yLjgyOS0yLjgyOC0zLjE4MiAzLjE4MmMtLjE5NS4xOTUtMS4yMTkuOTAyLTEuNDE0LjcwNy0uMTk1LS4xOTUuNTEyLTEuMjIuNzA3LTEuNDE0bDMuMTgyLTMuMTgyLTIuODI4LTIuODI5YS41LjUgMCAwIDEgMC0uNzA3Yy42ODgtLjY4OCAxLjY3My0uNzY3IDIuMzc1LS43MmE1LjkyMiA1LjkyMiAwIDAgMSAxLjAxMy4xNmwzLjEzNC0zLjEzM2EyLjc3MiAyLjc3MiAwIDAgMS0uMDQtLjQ2MWMwLS40My4xMDgtMS4wMjIuNTg5LTEuNTAzYS41LjUgMCAwIDEgLjM1My0uMTQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQaW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMTQ2LjE0NkEuNS41IDAgMCAxIDQuNSAwaDdhLjUuNSAwIDAgMSAuNS41YzAgLjY4LS4zNDIgMS4xNzQtLjY0NiAxLjQ3OS0uMTI2LjEyNS0uMjUuMjI0LS4zNTQuMjk4djQuNDMxbC4wNzguMDQ4Yy4yMDMuMTI3LjQ3Ni4zMTQuNzUxLjU1NUMxMi4zNiA3Ljc3NSAxMyA4LjUyNyAxMyA5LjVhLjUuNSAwIDAgMS0uNS41aC00djQuNWMwIC4yNzYtLjIyNCAxLjUtLjUgMS41cy0uNS0xLjIyNC0uNS0xLjVWMTBoLTRhLjUuNSAwIDAgMS0uNS0uNWMwLS45NzMuNjQtMS43MjUgMS4xNy0yLjE4OUE1LjkyMSA1LjkyMSAwIDAgMSA1IDYuNzA4VjIuMjc3YTIuNzcgMi43NyAwIDAgMS0uMzU0LS4yOThDNC4zNDIgMS42NzQgNCAxLjE3OSA0IC41YS41LjUgMCAwIDEgLjE0Ni0uMzU0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQaW5NYXBGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjEgMTEuMmEuNS41IDAgMCAxIC40LS4ySDZhLjUuNSAwIDAgMSAwIDFIMy43NUwxLjUgMTVoMTNsLTIuMjUtM0gxMGEuNS41IDAgMCAxIDAtMWgyLjVhLjUuNSAwIDAgMSAuNC4ybDMgNGEuNS41IDAgMCAxLS40LjhILjVhLjUuNSAwIDAgMS0uNC0uOGwzLTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGE0IDQgMCAxIDEgNC41IDMuOTY5VjEzLjVhLjUuNSAwIDAgMS0xIDBWNy45N0E0IDQgMCAwIDEgNCAzLjk5OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGlwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMkExLjUgMS41IDAgMCAwIDAgMy41djlBMS41IDEuNSAwIDAgMCAxLjUgMTRoMTNhMS41IDEuNSAwIDAgMCAxLjUtMS41di05QTEuNSAxLjUgMCAwIDAgMTQuNSAyaC0xM3ptNyA2aDVhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTNhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGxheUJ0bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMlY0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yem02Ljc5LTYuOTA3QS41LjUgMCAwIDAgNiA1LjV2NWEuNS41IDAgMCAwIC43OS40MDdsMy41LTIuNWEuNS41IDAgMCAwIDAtLjgxNGwtMy41LTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGxheUNpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek02Ljc5IDUuMDkzQS41LjUgMCAwIDAgNiA1LjV2NWEuNS41IDAgMCAwIC43OS40MDdsMy41LTIuNWEuNS41IDAgMCAwIDAtLjgxNGwtMy41LTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUGxheUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuNTk2IDguNjk3LTYuMzYzIDMuNjkyYy0uNTQuMzEzLTEuMjMzLS4wNjYtMS4yMzMtLjY5N1Y0LjMwOGMwLS42My42OTItMS4wMSAxLjIzMy0uNjk2bDYuMzYzIDMuNjkyYS44MDIuODAyIDAgMCAxIDAgMS4zOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBsdWdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMGEuNS41IDAgMCAxIC41LjVWM2gzVi41YS41LjUgMCAwIDEgMSAwVjNoMWEuNS41IDAgMCAxIC41LjV2M0EzLjUgMy41IDAgMCAxIDguNSAxMGMtLjAwMi40MzQtLjAxLjg0NS0uMDQgMS4yMi0uMDQxLjUxNC0uMTI2IDEuMDAzLS4zMTcgMS40MjRhMi4wODMgMi4wODMgMCAwIDEtLjk3IDEuMDI4QzYuNzI1IDEzLjkgNi4xNjkgMTQgNS41IDE0Yy0uOTk4IDAtMS42MS4zMy0xLjk3NC43MThBMS45MjIgMS45MjIgMCAwIDAgMyAxNkgyYzAtLjYxNi4yMzItMS4zNjcuNzk3LTEuOTY4QzMuMzc0IDEzLjQyIDQuMjYxIDEzIDUuNSAxM2MuNTgxIDAgLjk2Mi0uMDg4IDEuMjE4LS4yMTkuMjQxLS4xMjMuNC0uMy41MTQtLjU1LjEyMS0uMjY2LjE5My0uNjIxLjIzLTEuMDkuMDI3LS4zNC4wMzUtLjcxOC4wMzctMS4xNDFBMy41IDMuNSAwIDAgMSA0IDYuNXYtM2EuNS41IDAgMCAxIC41LS41aDFWLjVBLjUuNSAwIDAgMSA2IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFBsdXNDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNOC41IDQuNWEuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMCAwIDEgMHYtM2gzYS41LjUgMCAwIDAgMC0xaC0zdi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxQbHVzU3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6bTYuNSA0LjV2M2gzYS41LjUgMCAwIDEgMCAxaC0zdjNhLjUuNSAwIDAgMS0xIDB2LTNoLTNhLjUuNSAwIDAgMSAwLTFoM3YtM2EuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUHJpbnRlckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxYTIgMiAwIDAgMC0yIDJ2MWgxMFYzYTIgMiAwIDAgMC0yLTJINXptNiA4SDVhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA3YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJoLTF2LTJhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MkgyYTIgMiAwIDAgMS0yLTJWN3ptMi41IDFhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFB1enpsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4xMTIgMy42NDVBMS41IDEuNSAwIDAgMSA0LjYwNSAySDdhLjUuNSAwIDAgMSAuNS41di4zODJjMCAuNjk2LS40OTcgMS4xODItLjg3MiAxLjQ2OWEuNDU5LjQ1OSAwIDAgMC0uMTE1LjExOC4xMTMuMTEzIDAgMCAwLS4wMTIuMDI1TDYuNSA0LjV2LjAwM2wuMDAzLjAxYy4wMDQuMDEuMDE0LjAyOC4wMzYuMDUzYS44Ni44NiAwIDAgMCAuMjcuMTk0QzcuMDkgNC45IDcuNTEgNSA4IDVjLjQ5MiAwIC45MTItLjEgMS4xOS0uMjRhLjg2Ljg2IDAgMCAwIC4yNzEtLjE5NC4yMTMuMjEzIDAgMCAwIC4wMzYtLjA1NGwuMDAzLS4wMXYtLjAwOGEuMTEyLjExMiAwIDAgMC0uMDEyLS4wMjUuNDU5LjQ1OSAwIDAgMC0uMTE1LS4xMThjLS4zNzUtLjI4Ny0uODcyLS43NzMtLjg3Mi0xLjQ2OVYyLjVBLjUuNSAwIDAgMSA5IDJoMi4zOTVhMS41IDEuNSAwIDAgMSAxLjQ5MyAxLjY0NUwxMi42NDUgNi41aC4yMzdjLjE5NSAwIC40Mi0uMTQ3LjY3NS0uNDguMjEtLjI3NC41MjgtLjUyLjk0My0uNTIuNTY4IDAgLjk0Ny40NDcgMS4xNTQuODYyQzE1Ljg3NyA2LjgwNyAxNiA3LjM4NyAxNiA4cy0uMTIzIDEuMTkzLS4zNDYgMS42MzhjLS4yMDcuNDE1LS41ODYuODYyLTEuMTU0Ljg2Mi0uNDE1IDAtLjczMy0uMjQ2LS45NDMtLjUyLS4yNTUtLjMzMy0uNDgtLjQ4LS42NzUtLjQ4aC0uMjM3bC4yNDMgMi44NTVBMS41IDEuNSAwIDAgMSAxMS4zOTUgMTRIOWEuNS41IDAgMCAxLS41LS41di0uMzgyYzAtLjY5Ni40OTctMS4xODIuODcyLTEuNDY5YS40NTkuNDU5IDAgMCAwIC4xMTUtLjExOC4xMTMuMTEzIDAgMCAwIC4wMTItLjAyNUw5LjUgMTEuNXYtLjAwM2wtLjAwMy0uMDFhLjIxNC4yMTQgMCAwIDAtLjAzNi0uMDUzLjg1OS44NTkgMCAwIDAtLjI3LS4xOTRDOC45MSAxMS4xIDguNDkgMTEgOCAxMWMtLjQ5MSAwLS45MTIuMS0xLjE5LjI0YS44NTkuODU5IDAgMCAwLS4yNzEuMTk0LjIxNC4yMTQgMCAwIDAtLjAzNi4wNTRsLS4wMDMuMDF2LjAwMmwuMDAxLjAwNmEuMTEzLjExMyAwIDAgMCAuMDEyLjAyNWMuMDE2LjAyNy4wNS4wNjguMTE1LjExOC4zNzUuMjg3Ljg3Mi43NzMuODcyIDEuNDY5di4zODJhLjUuNSAwIDAgMS0uNS41SDQuNjA1YTEuNSAxLjUgMCAwIDEtMS40OTMtMS42NDVMMy4zNTYgOS41aC0uMjM4Yy0uMTk1IDAtLjQyLjE0Ny0uNjc1LjQ4LS4yMS4yNzQtLjUyOC41Mi0uOTQzLjUyLS41NjggMC0uOTQ3LS40NDctMS4xNTQtLjg2MkMuMTIzIDkuMTkzIDAgOC42MTMgMCA4cy4xMjMtMS4xOTMuMzQ2LTEuNjM4Qy41NTMgNS45NDcuOTMyIDUuNSAxLjUgNS41Yy40MTUgMCAuNzMzLjI0Ni45NDMuNTIuMjU1LjMzMy40OC40OC42NzUuNDhoLjIzOGwtLjI0NC0yLjg1NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUXVlc3Rpb25DaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNS40OTYgNi4wMzNoLjgyNWMuMTM4IDAgLjI0OC0uMTEzLjI2Ni0uMjUuMDktLjY1Ni41NC0xLjEzNCAxLjM0Mi0xLjEzNC42ODYgMCAxLjMxNC4zNDMgMS4zMTQgMS4xNjggMCAuNjM1LS4zNzQuOTI3LS45NjUgMS4zNzEtLjY3My40ODktMS4yMDYgMS4wNi0xLjE2OCAxLjk4N2wuMDAzLjIxN2EuMjUuMjUgMCAwIDAgLjI1LjI0NmguODExYS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uMTA1YzAtLjcxOC4yNzMtLjkyNyAxLjAxLTEuNDg2LjYwOS0uNDYzIDEuMjQ0LS45NzcgMS4yNDQtMi4wNTYgMC0xLjUxMS0xLjI3Ni0yLjI0MS0yLjY3My0yLjI0MS0xLjI2NyAwLTIuNjU1LjU5LTIuNzUgMi4yODZhLjIzNy4yMzcgMCAwIDAgLjI0MS4yNDd6bTIuMzI1IDYuNDQzYy42MSAwIDEuMDI5LS4zOTQgMS4wMjktLjkyNyAwLS41NTItLjQyLS45NC0xLjAyOS0uOTQtLjU4NCAwLTEuMDA5LjM4OC0xLjAwOS45NCAwIC41MzMuNDI1LjkyNyAxLjAxLjkyN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUXVlc3Rpb25EaWFtb25kRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjA1LjQzNWMtLjU4LS41OC0xLjUyLS41OC0yLjEgMEwuNDM2IDYuOTVjLS41OC41OC0uNTggMS41MTkgMCAyLjA5OGw2LjUxNiA2LjUxNmMuNTguNTggMS41MTkuNTggMi4wOTggMGw2LjUxNi02LjUxNmMuNTgtLjU4LjU4LTEuNTE5IDAtMi4wOThMOS4wNS40MzV6TTUuNDk1IDYuMDMzYS4yMzcuMjM3IDAgMCAxLS4yNC0uMjQ3QzUuMzUgNC4wOTEgNi43MzcgMy41IDguMDA1IDMuNWMxLjM5NiAwIDIuNjcyLjczIDIuNjcyIDIuMjQgMCAxLjA4LS42MzUgMS41OTQtMS4yNDQgMi4wNTctLjczNy41NTktMS4wMS43NjgtMS4wMSAxLjQ4NnYuMTA1YS4yNS4yNSAwIDAgMS0uMjUuMjVoLS44MWEuMjUuMjUgMCAwIDEtLjI1LS4yNDZsLS4wMDQtLjIxN2MtLjAzOC0uOTI3LjQ5NS0xLjQ5OCAxLjE2OC0xLjk4Ny41OS0uNDQ0Ljk2NS0uNzM2Ljk2NS0xLjM3MSAwLS44MjUtLjYyOC0xLjE2OC0xLjMxNC0xLjE2OC0uODAzIDAtMS4yNTMuNDc4LTEuMzQyIDEuMTM0LS4wMTguMTM3LS4xMjguMjUtLjI2Ni4yNWgtLjgyNXptMi4zMjUgNi40NDNjLS41ODQgMC0xLjAwOS0uMzk0LTEuMDA5LS45MjcgMC0uNTUyLjQyNS0uOTQgMS4wMS0uOTQuNjA5IDAgMS4wMjguMzg4IDEuMDI4Ljk0IDAgLjUzMy0uNDIuOTI3LTEuMDI5LjkyN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUXVlc3Rpb25PY3RhZ29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40Ni4xNDZBLjUuNSAwIDAgMCAxMS4xMDcgMEg0Ljg5M2EuNS41IDAgMCAwLS4zNTMuMTQ2TC4xNDYgNC41NEEuNS41IDAgMCAwIDAgNC44OTN2Ni4yMTRhLjUuNSAwIDAgMCAuMTQ2LjM1M2w0LjM5NCA0LjM5NGEuNS41IDAgMCAwIC4zNTMuMTQ2aDYuMjE0YS41LjUgMCAwIDAgLjM1My0uMTQ2bDQuMzk0LTQuMzk0YS41LjUgMCAwIDAgLjE0Ni0uMzUzVjQuODkzYS41LjUgMCAwIDAtLjE0Ni0uMzUzTDExLjQ2LjE0NnpNNS40OTYgNi4wMzNhLjIzNy4yMzcgMCAwIDEtLjI0LS4yNDdDNS4zNSA0LjA5MSA2LjczNyAzLjUgOC4wMDUgMy41YzEuMzk2IDAgMi42NzIuNzMgMi42NzIgMi4yNCAwIDEuMDgtLjYzNSAxLjU5NC0xLjI0NCAyLjA1Ny0uNzM3LjU1OS0xLjAxLjc2OC0xLjAxIDEuNDg2di4xMDVhLjI1LjI1IDAgMCAxLS4yNS4yNWgtLjgxYS4yNS4yNSAwIDAgMS0uMjUtLjI0NmwtLjAwNC0uMjE3Yy0uMDM4LS45MjcuNDk1LTEuNDk4IDEuMTY4LTEuOTg3LjU5LS40NDQuOTY1LS43MzYuOTY1LTEuMzcxIDAtLjgyNS0uNjI4LTEuMTY4LTEuMzE0LTEuMTY4LS44MDMgMC0xLjI1My40NzgtMS4zNDIgMS4xMzQtLjAxOC4xMzctLjEyOC4yNS0uMjY2LjI1aC0uODI1em0yLjMyNSA2LjQ0M2MtLjU4NCAwLTEuMDA5LS4zOTQtMS4wMDktLjkyNyAwLS41NTIuNDI1LS45NCAxLjAxLS45NC42MDkgMCAxLjAyOC4zODggMS4wMjguOTQgMCAuNTMzLS40Mi45MjctMS4wMjkuOTI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxRdWVzdGlvblNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0zLjQ5NiA2LjAzM2EuMjM3LjIzNyAwIDAgMS0uMjQtLjI0N0M1LjM1IDQuMDkxIDYuNzM3IDMuNSA4LjAwNSAzLjVjMS4zOTYgMCAyLjY3Mi43MyAyLjY3MiAyLjI0IDAgMS4wOC0uNjM1IDEuNTk0LTEuMjQ0IDIuMDU3LS43MzcuNTU5LTEuMDEuNzY4LTEuMDEgMS40ODZ2LjEwNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uODFhLjI1LjI1IDAgMCAxLS4yNS0uMjQ2bC0uMDA0LS4yMTdjLS4wMzgtLjkyNy40OTUtMS40OTggMS4xNjgtMS45ODcuNTktLjQ0NC45NjUtLjczNi45NjUtMS4zNzEgMC0uODI1LS42MjgtMS4xNjgtMS4zMTQtMS4xNjgtLjgwMyAwLTEuMjUzLjQ3OC0xLjM0MiAxLjEzNC0uMDE4LjEzNy0uMTI4LjI1LS4yNjYuMjVoLS44MjV6bTIuMzI1IDYuNDQzYy0uNTg0IDAtMS4wMDktLjM5NC0xLjAwOS0uOTI3IDAtLjU1Mi40MjUtLjk0IDEuMDEtLjk0LjYwOSAwIDEuMDI4LjM4OCAxLjAyOC45NCAwIC41MzMtLjQyLjkyNy0xLjAyOS45Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFJlY29yZEJ0bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMlY0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yem04LTFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxSZWNvcmRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHptLTggM2EzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFJlY29yZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTNBNSA1IDAgMSAwIDggM2E1IDUgMCAwIDAgMCAxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsUmVjb3JkMkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOGEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxM0E1IDUgMCAxIDAgOCAzYTUgNSAwIDAgMCAwIDEwem0wLTJhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxSZXBseUFsbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wMjEgMTEuOSAzLjQ1MyA4LjYyYS43MTkuNzE5IDAgMCAxIDAtMS4yMzhMOC4wMjEgNC4xYS43MTYuNzE2IDAgMCAxIDEuMDc5LjYxOVY2YzEuNSAwIDYgMCA3IDgtMi41LTQuNS03LTQtNy00djEuMjgxYzAgLjU2LS42MDYuODk4LTEuMDc5LjYyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMjMyIDQuMjkzYS41LjUgMCAwIDEtLjEwNi43TDEuMTE0IDcuOTQ1YS41LjUgMCAwIDEtLjA0Mi4wMjguMTQ3LjE0NyAwIDAgMCAwIC4yNTIuNTAzLjUwMyAwIDAgMSAuMDQyLjAyOGw0LjAxMiAyLjk1NGEuNS41IDAgMSAxLS41OTMuODA1TC41MzkgOS4wNzNhMS4xNDcgMS4xNDcgMCAwIDEgMC0xLjk0NmwzLjk5NC0yLjk0YS41LjUgMCAwIDEgLjY5OS4xMDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFJlcGx5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjkyMSAxMS45IDEuMzUzIDguNjJhLjcxOS43MTkgMCAwIDEgMC0xLjIzOEw1LjkyMSA0LjFBLjcxNi43MTYgMCAwIDEgNyA0LjcxOVY2YzEuNSAwIDYgMCA3IDgtMi41LTQuNS03LTQtNy00djEuMjgxYzAgLjU2LS42MDYuODk4LTEuMDc5LjYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxSc3NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptMS41IDIuNWM1LjUyMyAwIDEwIDQuNDc3IDEwIDEwYTEgMSAwIDEgMS0yIDAgOCA4IDAgMCAwLTgtOCAxIDEgMCAwIDEgMC0yem0wIDRhNiA2IDAgMCAxIDYgNiAxIDEgMCAxIDEtMiAwIDQgNCAwIDAgMC00LTQgMSAxIDAgMCAxIDAtMnptLjUgN2ExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2FmZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS43NzggOS40MTRBMiAyIDAgMSAxIDYuOTUgNi41ODZhMiAyIDAgMCAxIDIuODI4IDIuODI4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAwQTEuNSAxLjUgMCAwIDAgMSAxLjVWM0guNWEuNS41IDAgMCAwIDAgMUgxdjMuNUguNWEuNS41IDAgMCAwIDAgMUgxVjEySC41YS41LjUgMCAwIDAgMCAxSDF2MS41QTEuNSAxLjUgMCAwIDAgMi41IDE2aDEyYTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTNBMS41IDEuNSAwIDAgMCAxNC41IDBoLTEyem0zLjAzNiA0LjQ2NCAxLjA5IDEuMDlhMy4wMDMgMy4wMDMgMCAwIDEgMy40NzYgMGwxLjA5LTEuMDlhLjUuNSAwIDEgMSAuNzA3LjcwOGwtMS4wOSAxLjA5Yy43NCAxLjAzNy43NCAyLjQ0IDAgMy40NzZsMS4wOSAxLjA5YS41LjUgMCAxIDEtLjcwNy43MDhsLTEuMDktMS4wOWEzLjAwMiAzLjAwMiAwIDAgMS0zLjQ3NiAwbC0xLjA5IDEuMDlhLjUuNSAwIDEgMS0uNzA4LS43MDhsMS4wOS0xLjA5YTMuMDAzIDMuMDAzIDAgMCAxIDAtMy40NzZsLTEuMDktMS4wOWEuNS41IDAgMSAxIC43MDgtLjcwOHpNMTQgNi41djNhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNhZmUyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjU2MyA4SDUuMDM1YTMuNDgyIDMuNDgyIDAgMCAxIC42NjItMS41OTZsMS4wOCAxLjA4Yy0uMDk0LjE2LS4xNjcuMzMyLS4yMTQuNTE2em0uOTIxLTEuMjIzLTEuMDgtMS4wOEEzLjQ4MiAzLjQ4MiAwIDAgMSA4IDUuMDM1djEuNTI4Yy0uMTg0LjA0Ny0uMzU3LjEyLS41MTYuMjE0ek05IDYuNTYzVjUuMDM1YTMuNDgyIDMuNDgyIDAgMCAxIDEuNTk2LjY2MmwtMS4wOCAxLjA4QTEuOTg4IDEuOTg4IDAgMCAwIDkgNi41NjN6bTEuMjIzLjkyMSAxLjA4LTEuMDhjLjM0My40NTguNTc3IDEuMDAzLjY2MiAxLjU5NmgtMS41MjhhMS45ODkgMS45ODkgMCAwIDAtLjIxNC0uNTE2ek0xMC40MzcgOWgxLjUyOGEzLjQ4MyAzLjQ4MyAwIDAgMS0uNjYyIDEuNTk2bC0xLjA4LTEuMDhjLjA5NC0uMTYuMTY3LS4zMzIuMjE0LS41MTZ6bS0uOTIxIDEuMjIzIDEuMDggMS4wOEEzLjQ4MyAzLjQ4MyAwIDAgMSA5IDExLjk2NXYtMS41MjhjLjE4NC0uMDQ3LjM1Ny0uMTIuNTE2LS4yMTR6TTggMTAuNDM3djEuNTI4YTMuNDgzIDMuNDgzIDAgMCAxLTEuNTk2LS42NjJsMS4wOC0xLjA4Yy4xNi4wOTQuMzMyLjE2Ny41MTYuMjE0em0tMS4yMjMtLjkyMS0xLjA4IDEuMDhBMy40ODIgMy40ODIgMCAwIDEgNS4wMzUgOWgxLjUyOGMuMDQ3LjE4NC4xMi4zNTcuMjE0LjUxNnpNNy41IDguNWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDFBMS41IDEuNSAwIDAgMCAxIDIuNVYzSC41YS41LjUgMCAwIDAgMCAxSDF2NEguNWEuNS41IDAgMCAwIDAgMUgxdjRILjVhLjUuNSAwIDAgMCAwIDFIMXYuNUExLjUgMS41IDAgMCAwIDIuNSAxNmgxMmExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTEyQTEuNSAxLjUgMCAwIDAgMTQuNSAxaC0xMnptNiAzYTQuNSA0LjUgMCAxIDEgMCA5IDQuNSA0LjUgMCAwIDEgMC05elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTYXZlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMS41QTEuNSAxLjUgMCAwIDEgMTAgMGg0YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDZjLS4zMTQuNDE4LS41LjkzNy0uNSAxLjV2Ny43OTNMNC44NTQgNi42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwzLjUgMy41YS41LjUgMCAwIDAgLjcwOCAwbDMuNS0zLjVhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDkuMjkzVjEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2F2ZTJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxLjVBMS41IDEuNSAwIDAgMSAxMCAwaDRhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoNmMtLjMxNC40MTgtLjUuOTM3LS41IDEuNXY2aC0yYS41LjUgMCAwIDAtLjM1NC44NTRsMi41IDIuNWEuNS41IDAgMCAwIC43MDggMGwyLjUtMi41QS41LjUgMCAwIDAgMTAuNSA3LjVoLTJ2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNkQ2FyZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjUgMEg1LjkxNGExLjUgMS41IDAgMCAwLTEuMDYuNDRMMi40MzkgMi44NTNBMS41IDEuNSAwIDAgMCAyIDMuOTE0VjE0LjVBMS41IDEuNSAwIDAgMCAzLjUgMTZoOWExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTEzQTEuNSAxLjUgMCAwIDAgMTIuNSAwem0tNyAyLjc1YS43NS43NSAwIDAgMSAuNzUuNzV2MmEuNzUuNzUgMCAwIDEtMS41IDB2LTJhLjc1Ljc1IDAgMCAxIC43NS0uNzV6bTIgMGEuNzUuNzUgMCAwIDEgLjc1Ljc1djJhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yYS43NS43NSAwIDAgMSAuNzUtLjc1em0yLjc1Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYyYS43NS43NSAwIDAgMCAxLjUgMHYtMnptMS4yNS0uNzVhLjc1Ljc1IDAgMCAxIC43NS43NXYyYS43NS43NSAwIDAgMS0xLjUgMHYtMmEuNzUuNzUgMCAwIDEgLjc1LS43NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2hhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIuNWEyLjUgMi41IDAgMSAxIC42MDMgMS42MjhsLTYuNzE4IDMuMTJhMi40OTkgMi40OTkgMCAwIDEgMCAxLjUwNGw2LjcxOCAzLjEyYTIuNSAyLjUgMCAxIDEtLjQ4OC44NzZsLTYuNzE4LTMuMTJhMi41IDIuNSAwIDEgMSAwLTMuMjU2bDYuNzE4LTMuMTJBMi41IDIuNSAwIDAgMSAxMSAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNoaWVsZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4wNzIuNTZDNi4xNTcuMjY1IDcuMzEgMCA4IDBzMS44NDMuMjY1IDIuOTI4LjU2YzEuMTEuMyAyLjIyOS42NTUgMi44ODcuODdhMS41NCAxLjU0IDAgMCAxIDEuMDQ0IDEuMjYyYy41OTYgNC40NzctLjc4NyA3Ljc5NS0yLjQ2NSA5Ljk5YTExLjc3NSAxMS43NzUgMCAwIDEtMi41MTcgMi40NTMgNy4xNTkgNy4xNTkgMCAwIDEtMS4wNDguNjI1Yy0uMjguMTMyLS41ODEuMjQtLjgyOS4yNHMtLjU0OC0uMTA4LS44MjktLjI0YTcuMTU4IDcuMTU4IDAgMCAxLTEuMDQ4LS42MjUgMTEuNzc3IDExLjc3NyAwIDAgMS0yLjUxNy0yLjQ1M0MxLjkyOCAxMC40ODcuNTQ1IDcuMTY5IDEuMTQxIDIuNjkyQTEuNTQgMS41NCAwIDAgMSAyLjE4NSAxLjQzIDYyLjQ1NiA2Mi40NTYgMCAwIDEgNS4wNzIuNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNoaWVsZExvY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBjLS42OSAwLTEuODQzLjI2NS0yLjkyOC41Ni0xLjExLjMtMi4yMjkuNjU1LTIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMC0xLjA0NCAxLjI2MmMtLjU5NiA0LjQ3Ny43ODcgNy43OTUgMi40NjUgOS45OWExMS43NzcgMTEuNzc3IDAgMCAwIDIuNTE3IDIuNDUzYy4zODYuMjczLjc0NC40ODIgMS4wNDguNjI1LjI4LjEzMi41ODEuMjQuODI5LjI0cy41NDgtLjEwOC44MjktLjI0YTcuMTU5IDcuMTU5IDAgMCAwIDEuMDQ4LS42MjUgMTEuNzc1IDExLjc3NSAwIDAgMCAyLjUxNy0yLjQ1M2MxLjY3OC0yLjE5NSAzLjA2MS01LjUxMyAyLjQ2NS05Ljk5YTEuNTQxIDEuNTQxIDAgMCAwLTEuMDQ0LTEuMjYzIDYyLjQ2NyA2Mi40NjcgMCAwIDAtMi44ODctLjg3QzkuODQzLjI2NiA4LjY5IDAgOCAwem0wIDVhMS41IDEuNSAwIDAgMSAuNSAyLjkxNWwuMzg1IDEuOTlhLjUuNSAwIDAgMS0uNDkxLjU5NWgtLjc4OGEuNS41IDAgMCAxLS40OS0uNTk1bC4zODQtMS45OUExLjUgMS41IDAgMCAxIDggNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2hpZWxkU2xhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjA5MyAzLjA5M2MtLjQ2NSA0LjI3NS44ODUgNy40NiAyLjUxMyA5LjU4OWExMS43NzcgMTEuNzc3IDAgMCAwIDIuNTE3IDIuNDUzYy4zODYuMjczLjc0NC40ODIgMS4wNDguNjI1LjI4LjEzMi41ODEuMjQuODI5LjI0cy41NDgtLjEwOC44MjktLjI0YTcuMTU5IDcuMTU5IDAgMCAwIDEuMDQ4LS42MjUgMTEuMzIgMTEuMzIgMCAwIDAgMS43MzMtMS41MjVMMS4wOTMgMy4wOTN6bTEyLjIxNSA4LjIxNUwzLjEyOCAxLjEyOEE2MS4zNjkgNjEuMzY5IDAgMCAxIDUuMDczLjU2QzYuMTU3LjI2NSA3LjMxIDAgOCAwczEuODQzLjI2NSAyLjkyOC41NmMxLjExLjMgMi4yMjkuNjU1IDIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMSAxLjA0NCAxLjI2MmMuNDgzIDMuNjI2LS4zMzIgNi40OTEtMS41NTEgOC42MTZ6bS4zMzggMy4wNDYtMTMtMTMgLjcwOC0uNzA4IDEzIDEzLS43MDcuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTaGlmdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yNyAyLjA0N2ExIDEgMCAwIDEgMS40NiAwbDYuMzQ1IDYuNzdjLjYuNjM4LjE0NiAxLjY4My0uNzMgMS42ODNIMTEuNXYzYTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtM0gxLjY1NEMuNzggMTAuNS4zMjYgOS40NTUuOTI0IDguODE2TDcuMjcgMi4wNDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNpZ25wb3N0MkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yOTMuNzA3QTEgMSAwIDAgMCA3IDEuNDE0VjJIMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWg1djFIMi41YTEgMSAwIDAgMC0uOC40TC43MjUgOC43YS41LjUgMCAwIDAgMCAuNmwuOTc1IDEuM2ExIDEgMCAwIDAgLjguNEg3djVoMnYtNWg1YTEgMSAwIDAgMCAxLTFWOGExIDEgMCAwIDAtMS0xSDlWNmg0LjVhMSAxIDAgMCAwIC44LS40bC45NzUtMS4zYS41LjUgMCAwIDAgMC0uNkwxNC4zIDIuNGExIDEgMCAwIDAtLjgtLjRIOXYtLjU4NkExIDEgMCAwIDAgNy4yOTMuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTaWducG9zdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yOTMuNzA3QTEgMSAwIDAgMCA3IDEuNDE0VjRIMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1djZoMnYtNmgzLjUzMmExIDEgMCAwIDAgLjc2OC0uMzZsMS45MzMtMi4zMmEuNS41IDAgMCAwIDAtLjY0TDEzLjMgNC4zNmExIDEgMCAwIDAtLjc2OC0uMzZIOVYxLjQxNEExIDEgMCAwIDAgNy4yOTMuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTaWducG9zdFNwbGl0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE2aDJWNmg1YTEgMSAwIDAgMCAuOC0uNGwuOTc1LTEuM2EuNS41IDAgMCAwIDAtLjZMMTQuOCAyLjRBMSAxIDAgMCAwIDE0IDJIOXYtLjU4NmExIDEgMCAwIDAtMiAwVjdIMmExIDEgMCAwIDAtLjguNEwuMjI1IDguN2EuNS41IDAgMCAwIDAgLjZsLjk3NSAxLjNhMSAxIDAgMCAwIC44LjRoNXY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTaW1GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNC41YS41LjUgMCAwIDEgLjUtLjVoMnYySDVWNC41ek04LjUgNlY0aDJhLjUuNSAwIDAgMSAuNS41VjZIOC41ek01IDdoNnYySDVWN3ptMy41IDNIMTF2MS41YS41LjUgMCAwIDEtLjUuNWgtMnYtMnptLTEgMHYyaC0yYS41LjUgMCAwIDEtLjUtLjVWMTBoMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwQTEuNSAxLjUgMCAwIDAgMiAxLjV2MTNBMS41IDEuNSAwIDAgMCAzLjUgMTZoOWExLjUgMS41IDAgMCAwIDEuNS0xLjVWMy40MTRhMS41IDEuNSAwIDAgMC0uNDQtMS4wNkwxMS42NDcuNDM5QTEuNSAxLjUgMCAwIDAgMTAuNTg2IDBIMy41em0yIDNoNUExLjUgMS41IDAgMCAxIDEyIDQuNXY3YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtNUExLjUgMS41IDAgMCAxIDQgMTEuNXYtN0ExLjUgMS41IDAgMCAxIDUuNSAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTa2lwQmFja3dhcmRCdG5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTJWNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnptMTEuMjEtNi45MDdMOC41IDcuMDI4VjUuNWEuNS41IDAgMCAwLS43OS0uNDA3TDUgNy4wMjhWNS41YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDBWOC45NzJsMi43MSAxLjkzNWEuNS41IDAgMCAwIC43OS0uNDA3VjguOTcybDIuNzEgMS45MzVBLjUuNSAwIDAgMCAxMiAxMC41di01YS41LjUgMCAwIDAtLjc5LS40MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNraXBCYWNrd2FyZENpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwem0tNC43OS0yLjkwN0w4LjUgNy4wMjhWNS41YS41LjUgMCAwIDAtLjc5LS40MDdMNSA3LjAyOFY1LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMFY4Ljk3MmwyLjcxIDEuOTM1YS41LjUgMCAwIDAgLjc5LS40MDdWOC45NzJsMi43MSAxLjkzNUEuNS41IDAgMCAwIDEyIDEwLjV2LTVhLjUuNSAwIDAgMC0uNzktLjQwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2tpcEJhY2t3YXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uNSAzLjVBLjUuNSAwIDAgMCAwIDR2OGEuNS41IDAgMCAwIDEgMFY4Ljc1M2w2LjI2NyAzLjYzNmMuNTQuMzEzIDEuMjMzLS4wNjYgMS4yMzMtLjY5N3YtMi45NGw2LjI2NyAzLjYzNmMuNTQuMzE0IDEuMjMzLS4wNjUgMS4yMzMtLjY5NlY0LjMwOGMwLS42My0uNjkzLTEuMDEtMS4yMzMtLjY5Nkw4LjUgNy4yNDh2LTIuOTRjMC0uNjMtLjY5Mi0xLjAxLTEuMjMzLS42OTZMMSA3LjI0OFY0YS41LjUgMCAwIDAtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNraXBFbmRCdG5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTJWNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnptNi43OS02LjkwN0EuNS41IDAgMCAwIDYgNS41djVhLjUuNSAwIDAgMCAuNzkuNDA3TDkuNSA4Ljk3MlYxMC41YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtMSAwdjEuNTI4TDYuNzkgNS4wOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNraXBFbmRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNi43OSA1LjA5M0EuNS41IDAgMCAwIDYgNS41djVhLjUuNSAwIDAgMCAuNzkuNDA3TDkuNSA4Ljk3MlYxMC41YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtMSAwdjEuNTI4TDYuNzkgNS4wOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNraXBFbmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgNGEuNS41IDAgMCAwLTEgMHYzLjI0OEw1LjIzMyAzLjYxMkM0LjY5MyAzLjMgNCAzLjY3OCA0IDQuMzA4djcuMzg0YzAgLjYzLjY5MiAxLjAxIDEuMjMzLjY5N0wxMS41IDguNzUzVjEyYS41LjUgMCAwIDAgMSAwVjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNraXBGb3J3YXJkQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEwVjJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTQuNzktNi45MDdBLjUuNSAwIDAgMCA0IDMuNXY1YS41LjUgMCAwIDAgLjc5LjQwN0w3LjUgNi45NzJWOC41YS41LjUgMCAwIDAgLjc5LjQwN0wxMSA2Ljk3MlY4LjVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0xIDB2MS41MjhMOC4yOSAzLjA5M2EuNS41IDAgMCAwLS43OS40MDd2MS41MjhMNC43OSAzLjA5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2tpcEZvcndhcmRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNC43OSA1LjA5M0EuNS41IDAgMCAwIDQgNS41djVhLjUuNSAwIDAgMCAuNzkuNDA3TDcuNSA4Ljk3MlYxMC41YS41LjUgMCAwIDAgLjc5LjQwN0wxMSA4Ljk3MlYxMC41YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtMSAwdjEuNTI4TDguMjkgNS4wOTNhLjUuNSAwIDAgMC0uNzkuNDA3djEuNTI4TDQuNzkgNS4wOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNraXBGb3J3YXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDMuNWEuNS41IDAgMCAxIC41LjV2OGEuNS41IDAgMCAxLTEgMFY4Ljc1M2wtNi4yNjcgMy42MzZjLS41NC4zMTMtMS4yMzMtLjA2Ni0xLjIzMy0uNjk3di0yLjk0bC02LjI2NyAzLjYzNkMuNjkzIDEyLjcwMyAwIDEyLjMyNCAwIDExLjY5M1Y0LjMwOGMwLS42My42OTMtMS4wMSAxLjIzMy0uNjk2TDcuNSA3LjI0OHYtMi45NGMwLS42My42OTMtMS4wMSAxLjIzMy0uNjk2TDE1IDcuMjQ4VjRhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2tpcFN0YXJ0QnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTkuNzEtNi45MDdMNyA3LjAyOFY1LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMFY4Ljk3MmwyLjcxIDEuOTM1YS41LjUgMCAwIDAgLjc5LS40MDd2LTVhLjUuNSAwIDAgMC0uNzktLjQwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2tpcFN0YXJ0Q2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTkuNzEgNS4wOTMgNyA3LjAyOFY1LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMFY4Ljk3MmwyLjcxIDEuOTM1YS41LjUgMCAwIDAgLjc5LS40MDd2LTVhLjUuNSAwIDAgMC0uNzktLjQwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2tpcFN0YXJ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRhLjUuNSAwIDAgMSAxIDB2My4yNDhsNi4yNjctMy42MzZjLjU0LS4zMTMgMS4yMzIuMDY2IDEuMjMyLjY5NnY3LjM4NGMwIC42My0uNjkyIDEuMDEtMS4yMzIuNjk3TDUgOC43NTNWMTJhLjUuNSAwIDAgMS0xIDBWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU2xhc2hDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHptLTQuNjQ2LTIuNjQ2YS41LjUgMCAwIDAtLjcwOC0uNzA4bC02IDZhLjUuNSAwIDAgMCAuNzA4LjcwOGw2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFNsYXNoU3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6bTkuMzU0IDUuMzU0LTYgNmEuNS41IDAgMCAxLS43MDgtLjcwOGw2LTZhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3BlYWtlckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptLTIuNSA2LjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTYgNGEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDB6TTggN2EzLjUgMy41IDAgMSAxIDAgNyAzLjUgMy41IDAgMCAxIDAtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFN0YXJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNjEyIDE1LjQ0M2MtLjM4Ni4xOTgtLjgyNC0uMTQ5LS43NDYtLjU5MmwuODMtNC43M0wuMTczIDYuNzY1Yy0uMzI5LS4zMTQtLjE1OC0uODg4LjI4My0uOTVsNC44OTgtLjY5Nkw3LjUzOC43OTJjLjE5Ny0uMzkuNzMtLjM5LjkyNyAwbDIuMTg0IDQuMzI3IDQuODk4LjY5NmMuNDQxLjA2Mi42MTIuNjM2LjI4Mi45NWwtMy41MjIgMy4zNTYuODMgNC43M2MuMDc4LjQ0My0uMzYuNzktLjc0Ni41OTJMOCAxMy4xODdsLTQuMzg5IDIuMjU2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTdGlja2llc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxLjVWMTNhMSAxIDAgMCAwIDEgMVYxLjVhLjUuNSAwIDAgMSAuNS0uNUgxNGExIDEgMCAwIDAtMS0xSDEuNUExLjUgMS41IDAgMCAwIDAgMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAyQTEuNSAxLjUgMCAwIDAgMiAzLjV2MTFBMS41IDEuNSAwIDAgMCAzLjUgMTZoNi4wODZhMS41IDEuNSAwIDAgMCAxLjA2LS40NGw0LjkxNS00LjkxNEExLjUgMS41IDAgMCAwIDE2IDkuNTg2VjMuNUExLjUgMS41IDAgMCAwIDE0LjUgMmgtMTF6bTYgOC41YTEgMSAwIDAgMSAxLTFoNC4zOTZhLjI1LjI1IDAgMCAxIC4xNzcuNDI3bC01LjE0NiA1LjE0NmEuMjUuMjUgMCAwIDEtLjQyNy0uMTc3VjEwLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFN0aWNreUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDFBMS41IDEuNSAwIDAgMCAxIDIuNXYxMUExLjUgMS41IDAgMCAwIDIuNSAxNWg2LjA4NmExLjUgMS41IDAgMCAwIDEuMDYtLjQ0bDQuOTE1LTQuOTE0QTEuNSAxLjUgMCAwIDAgMTUgOC41ODZWMi41QTEuNSAxLjUgMCAwIDAgMTMuNSAxaC0xMXptNiA4LjVhMSAxIDAgMCAxIDEtMWg0LjM5NmEuMjUuMjUgMCAwIDEgLjE3Ny40MjdsLTUuMTQ2IDUuMTQ2YS4yNS4yNSAwIDAgMS0uNDI3LS4xNzdWOS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTdG9wQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTYuNS03QTEuNSAxLjUgMCAwIDAgNSA2LjV2M0ExLjUgMS41IDAgMCAwIDYuNSAxMWgzQTEuNSAxLjUgMCAwIDAgMTEgOS41di0zQTEuNSAxLjUgMCAwIDAgOS41IDVoLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFN0b3BDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNi41IDVBMS41IDEuNSAwIDAgMCA1IDYuNXYzQTEuNSAxLjUgMCAwIDAgNi41IDExaDNBMS41IDEuNSAwIDAgMCAxMSA5LjV2LTNBMS41IDEuNSAwIDAgMCA5LjUgNWgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3RvcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzLjVoNkExLjUgMS41IDAgMCAxIDEyLjUgNXY2YTEuNSAxLjUgMCAwIDEtMS41IDEuNUg1QTEuNSAxLjUgMCAwIDEgMy41IDExVjVBMS41IDEuNSAwIDAgMSA1IDMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3RvcGxpZ2h0c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMGEyIDIgMCAwIDAtMiAySDJjLjE2Ny41LjggMS42IDIgMnYySDJjLjE2Ny41LjggMS42IDIgMnYySDJjLjE2Ny41LjggMS42IDIgMnYxYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi0xYzEuMi0uNCAxLjgzMy0xLjUgMi0yaC0yVjhjMS4yLS40IDEuODMzLTEuNSAyLTJoLTJWNGMxLjItLjQgMS44MzMtMS41IDItMmgtMmEyIDIgMCAwIDAtMi0ySDZ6bTMuNSAzLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTAgNGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNOCAxM2ExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3RvcHdhdGNoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMGEuNS41IDAgMCAwIDAgMUg3djEuMDdBNy4wMDEgNy4wMDEgMCAwIDAgOCAxNmE3IDcgMCAwIDAgNS4yOS0xMS41ODQuNTMxLjUzMSAwIDAgMCAuMDEzLS4wMTJsLjM1NC0uMzU0LjM1My4zNTRhLjUuNSAwIDEgMCAuNzA3LS43MDdsLTEuNDE0LTEuNDE1YS41LjUgMCAxIDAtLjcwNy43MDdsLjM1NC4zNTQtLjM1NC4zNTRhLjcxNy43MTcgMCAwIDAtLjAxMi4wMTJBNi45NzMgNi45NzMgMCAwIDAgOSAyLjA3MVYxaC41YS41LjUgMCAwIDAgMC0xaC0zem0yIDUuNlY5YS41LjUgMCAwIDEtLjUuNUg0LjVhLjUuNSAwIDAgMSAwLTFoM1Y1LjZhLjUuNSAwIDEgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFN1aXRDbHViRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDEyLjVhMy40OTMgMy40OTMgMCAwIDEtMi42ODQtMS4yNTQgMTkuOTIgMTkuOTIgMCAwIDAgMS41ODIgMi45MDdjLjIzMS4zNS0uMDIuODQ3LS40MzguODQ3SDYuMDRjLS40MTkgMC0uNjctLjQ5Ny0uNDM4LS44NDdhMTkuOTE5IDE5LjkxOSAwIDAgMCAxLjU4Mi0yLjkwNyAzLjUgMy41IDAgMSAxLTIuNTM4LTUuNzQzIDMuNSAzLjUgMCAxIDEgNi43MDggMEEzLjUgMy41IDAgMSAxIDExLjUgMTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3VpdERpYW1vbmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNDUgNy40IDcuMiAxLjA2N2ExIDEgMCAwIDEgMS42IDBMMTMuNTUgNy40YTEgMSAwIDAgMSAwIDEuMkw4LjggMTQuOTMzYTEgMSAwIDAgMS0xLjYgMEwyLjQ1IDguNmExIDEgMCAwIDEgMC0xLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFN1aXRIZWFydEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxYzIuMjEgMCA0IDEuNzU1IDQgMy45MkM4IDIuNzU1IDkuNzkgMSAxMiAxczQgMS43NTUgNCAzLjkyYzAgMy4yNjMtMy4yMzQgNC40MTQtNy42MDggOS42MDhhLjUxMy41MTMgMCAwIDEtLjc4NCAwQzMuMjM0IDkuMzM0IDAgOC4xODMgMCA0LjkyIDAgMi43NTUgMS43OSAxIDQgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsU3VpdFNwYWRlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjE4NCAxMS4yNDZBMy41IDMuNSAwIDAgMSAxIDljMC0xLjYwMiAxLjE0LTIuNjMzIDIuNjYtNC4wMDhDNC45ODYgMy43OTIgNi42MDIgMi4zMyA4IDBjMS4zOTggMi4zMyAzLjAxNCAzLjc5MiA0LjM0IDQuOTkyQzEzLjg2IDYuMzY3IDE1IDcuMzk4IDE1IDlhMy41IDMuNSAwIDAgMS02LjE4NCAyLjI0NiAxOS45MiAxOS45MiAwIDAgMCAxLjU4MiAyLjkwN2MuMjMxLjM1LS4wMi44NDctLjQzOC44NDdINi4wNGMtLjQxOSAwLS42Ny0uNDk3LS40MzgtLjg0N2ExOS45MTkgMTkuOTE5IDAgMCAwIDEuNTgyLTIuOTA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTdW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTJhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4ek04IDBhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDB6bTAgMTNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDEzem04LTVhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAuNS41ek0zIDhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJBLjUuNSAwIDAgMSAzIDh6bTEwLjY1Ny01LjY1N2EuNS41IDAgMCAxIDAgLjcwN2wtMS40MTQgMS40MTVhLjUuNSAwIDEgMS0uNzA3LS43MDhsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6bS05LjE5MyA5LjE5M2EuNS41IDAgMCAxIDAgLjcwN0wzLjA1IDEzLjY1N2EuNS41IDAgMCAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptOS4xOTMgMi4xMjFhLjUuNSAwIDAgMS0uNzA3IDBsLTEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA3ek00LjQ2NCA0LjQ2NWEuNS41IDAgMCAxLS43MDcgMEwyLjM0MyAzLjA1YS41LjUgMCAxIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxTdW5yaXNlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjY0NiAxLjE0NmEuNS41IDAgMCAxIC43MDggMGwxLjUgMS41YS41LjUgMCAwIDEtLjcwOC43MDhMOC41IDIuNzA3VjQuNWEuNS41IDAgMCAxLTEgMFYyLjcwN2wtLjY0Ni42NDdhLjUuNSAwIDEgMS0uNzA4LS43MDhsMS41LTEuNXpNMi4zNDMgNC4zNDNhLjUuNSAwIDAgMSAuNzA3IDBsMS40MTQgMS40MTRhLjUuNSAwIDAgMS0uNzA3LjcwN0wyLjM0MyA1LjA1YS41LjUgMCAwIDEgMC0uNzA3em0xMS4zMTQgMGEuNS41IDAgMCAxIDAgLjcwN2wtMS40MTQgMS40MTRhLjUuNSAwIDEgMS0uNzA3LS43MDdsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6TTExLjcwOSAxMS41YTQgNCAwIDEgMC03LjQxOCAwSC41YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0zLjc5ek0wIDEwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDAgMTB6bTEzIDBhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFN1bnNldEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy42NDYgNC44NTRhLjUuNSAwIDAgMCAuNzA4IDBsMS41LTEuNWEuNS41IDAgMCAwLS43MDgtLjcwOGwtLjY0Ni42NDdWMS41YS41LjUgMCAwIDAtMSAwdjEuNzkzbC0uNjQ2LS42NDdhLjUuNSAwIDEgMC0uNzA4LjcwOGwxLjUgMS41em0tNS4zMDMtLjUxYS41LjUgMCAwIDEgLjcwNyAwbDEuNDE0IDEuNDEzYS41LjUgMCAwIDEtLjcwNy43MDdMMi4zNDMgNS4wNWEuNS41IDAgMCAxIDAtLjcwN3ptMTEuMzE0IDBhLjUuNSAwIDAgMSAwIC43MDZsLTEuNDE0IDEuNDE0YS41LjUgMCAxIDEtLjcwNy0uNzA3bDEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNyAwek0xMS43MDkgMTEuNWE0IDQgMCAxIDAtNy40MTggMEguNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMy43OXpNMCAxMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSAwIDEwem0xMyAwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxUYWJsZXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem03IDExYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVGFibGV0TGFuZHNjYXBlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJ6bTExLTdhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxUYWdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMWExIDEgMCAwIDAtMSAxdjQuNTg2YTEgMSAwIDAgMCAuMjkzLjcwN2w3IDdhMSAxIDAgMCAwIDEuNDE0IDBsNC41ODYtNC41ODZhMSAxIDAgMCAwIDAtMS40MTRsLTctN0ExIDEgMCAwIDAgNi41ODYgMUgyem00IDMuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVGFnc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTEgMSAwIDAgMSAxLTFoNC41ODZhMSAxIDAgMCAxIC43MDcuMjkzbDcgN2ExIDEgMCAwIDEgMCAxLjQxNGwtNC41ODYgNC41ODZhMSAxIDAgMCAxLTEuNDE0IDBsLTctN0ExIDEgMCAwIDEgMiA2LjU4NlYyem0zLjUgNGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjI5MyA3Ljc5M0ExIDEgMCAwIDEgMSA3LjA4NlYyYTEgMSAwIDAgMC0xIDF2NC41ODZhMSAxIDAgMCAwIC4yOTMuNzA3bDcgN2ExIDEgMCAwIDAgMS40MTQgMGwuMDQzLS4wNDMtNy40NTctNy40NTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRlbGVwaG9uZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuODg1LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVGVsZXBob25lRm9yd2FyZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuODg1LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXptMTAuNzYxLjEzNWEuNS41IDAgMCAxIC43MDggMGwyLjUgMi41YS41LjUgMCAwIDEgMCAuNzA4bC0yLjUgMi41YS41LjUgMCAwIDEtLjcwOC0uNzA4TDE0LjI5MyA0SDkuNWEuNS41IDAgMCAxIDAtMWg0Ljc5M2wtMS42NDctMS42NDZhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRlbGVwaG9uZUluYm91bmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjg4NS41MTFhMS43NDUgMS43NDUgMCAwIDEgMi42MS4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6TTE1Ljg1NC4xNDZhLjUuNSAwIDAgMSAwIC43MDhMMTEuNzA3IDVIMTQuNWEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgMSAwdjIuNzkzTDE1LjE0Ni4xNDZhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRlbGVwaG9uZU1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS44ODUuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEuMTYzTDYuMjkgMi45OGMuMzI5LjQyMy40NDUuOTc0LjMxNSAxLjQ5NGwtLjU0NyAyLjE5YS42NzguNjc4IDAgMCAwIC4xNzguNjQzbDIuNDU3IDIuNDU3YS42NzguNjc4IDAgMCAwIC42NDQuMTc4bDIuMTg5LS41NDdhMS43NDUgMS43NDUgMCAwIDEgMS40OTQuMzE1bDIuMzA2IDEuNzk0Yy44MjkuNjQ1LjkwNSAxLjg3LjE2MyAyLjYxMWwtMS4wMzQgMS4wMzRjLS43NC43NC0xLjg0NiAxLjA2NS0yLjg3Ny43MDJhMTguNjM0IDE4LjYzNCAwIDAgMS03LjAxLTQuNDIgMTguNjM0IDE4LjYzNCAwIDAgMS00LjQyLTcuMDA5Yy0uMzYyLTEuMDMtLjAzNy0yLjEzNy43MDMtMi44NzdMMS44ODUuNTExek0xMCAzLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRlbGVwaG9uZU91dGJvdW5kRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS44ODUuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEuMTYzTDYuMjkgMi45OGMuMzI5LjQyMy40NDUuOTc0LjMxNSAxLjQ5NGwtLjU0NyAyLjE5YS42NzguNjc4IDAgMCAwIC4xNzguNjQzbDIuNDU3IDIuNDU3YS42NzguNjc4IDAgMCAwIC42NDQuMTc4bDIuMTg5LS41NDdhMS43NDUgMS43NDUgMCAwIDEgMS40OTQuMzE1bDIuMzA2IDEuNzk0Yy44MjkuNjQ1LjkwNSAxLjg3LjE2MyAyLjYxMWwtMS4wMzQgMS4wMzRjLS43NC43NC0xLjg0NiAxLjA2NS0yLjg3Ny43MDJhMTguNjM0IDE4LjYzNCAwIDAgMS03LjAxLTQuNDIgMTguNjM0IDE4LjYzNCAwIDAgMS00LjQyLTcuMDA5Yy0uMzYyLTEuMDMtLjAzNy0yLjEzNy43MDMtMi44NzdMMS44ODUuNTExek0xMSAuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAuNS41djRhLjUuNSAwIDAgMS0xIDBWMS43MDdsLTQuMTQ2IDQuMTQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDE0LjI5MyAxSDExLjVhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVGVsZXBob25lUGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuODg1LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXpNMTIuNSAxYS41LjUgMCAwIDEgLjUuNVYzaDEuNWEuNS41IDAgMCAxIDAgMUgxM3YxLjVhLjUuNSAwIDAgMS0xIDBWNGgtMS41YS41LjUgMCAwIDEgMC0xSDEyVjEuNWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxUZWxlcGhvbmVYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS44ODUuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEuMTYzTDYuMjkgMi45OGMuMzI5LjQyMy40NDUuOTc0LjMxNSAxLjQ5NGwtLjU0NyAyLjE5YS42NzguNjc4IDAgMCAwIC4xNzguNjQzbDIuNDU3IDIuNDU3YS42NzguNjc4IDAgMCAwIC42NDQuMTc4bDIuMTg5LS41NDdhMS43NDUgMS43NDUgMCAwIDEgMS40OTQuMzE1bDIuMzA2IDEuNzk0Yy44MjkuNjQ1LjkwNSAxLjg3LjE2MyAyLjYxMWwtMS4wMzQgMS4wMzRjLS43NC43NC0xLjg0NiAxLjA2NS0yLjg3Ny43MDJhMTguNjM0IDE4LjYzNCAwIDAgMS03LjAxLTQuNDIgMTguNjM0IDE4LjYzNCAwIDAgMS00LjQyLTcuMDA5Yy0uMzYyLTEuMDMtLjAzNy0yLjEzNy43MDMtMi44NzdMMS44ODUuNTExem05LjI2MSAxLjEzNWEuNS41IDAgMCAxIC43MDggMEwxMyAyLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4TDEzLjcwNyAzLjVsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEwxMyA0LjIwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTIuMjkzIDMuNWwtMS4xNDctMS4xNDZhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRlcm1pbmFsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDNhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjN6bTkuNSA1LjVoLTNhLjUuNSAwIDAgMCAwIDFoM2EuNS41IDAgMCAwIDAtMXptLTYuMzU0LS4zNTRhLjUuNSAwIDEgMCAuNzA4LjcwOGwyLTJhLjUuNSAwIDAgMCAwLS43MDhsLTItMmEuNS41IDAgMSAwLS43MDguNzA4TDQuNzkzIDYuNSAzLjE0NiA4LjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVHJhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxSDN2OWEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMlY0aC41YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxSDIuNXptMyA0YS41LjUgMCAwIDEgLjUuNXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgLjUtLjV6TTggNWEuNS41IDAgMCAxIC41LjV2N2EuNS41IDAgMCAxLTEgMHYtN0EuNS41IDAgMCAxIDggNXptMyAuNXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxUcmFzaDJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuMDM3IDMuMjI1QS43MDMuNzAzIDAgMCAxIDIgM2MwLTEuMTA1IDIuNjg2LTIgNi0yczYgLjg5NSA2IDJhLjcwMi43MDIgMCAwIDEtLjAzNy4yMjVsLTEuNjg0IDEwLjEwNEEyIDIgMCAwIDEgMTAuMzA1IDE1SDUuNjk0YTIgMiAwIDAgMS0xLjk3My0xLjY3MUwyLjAzNyAzLjIyNXptOS44OS0uNjlDMTAuOTY2IDIuMjE0IDkuNTc4IDIgOCAyYy0xLjU4IDAtMi45NjguMjE1LTMuOTI2LjUzNC0uNDc3LjE2LS43OTUuMzI3LS45NzUuNDY2LjE4LjE0LjQ5OC4zMDcuOTc1LjQ2NkM1LjAzMiAzLjc4NiA2LjQyIDQgOCA0czIuOTY3LS4yMTUgMy45MjYtLjUzNGMuNDc3LS4xNi43OTUtLjMyNy45NzUtLjQ2Ni0uMTgtLjE0LS40OTgtLjMwNy0uOTc1LS40NjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRyZWVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNDE2LjIyM2EuNS41IDAgMCAwLS44MzIgMGwtMyA0LjVBLjUuNSAwIDAgMCA1IDUuNWguMDk4TDMuMDc2IDguNzM1QS41LjUgMCAwIDAgMy41IDkuNWguMTkxbC0xLjYzOCAzLjI3NmEuNS41IDAgMCAwIC40NDcuNzI0SDdWMTZoMnYtMi41aDQuNWEuNS41IDAgMCAwIC40NDctLjcyNEwxMi4zMSA5LjVoLjE5MWEuNS41IDAgMCAwIC40MjQtLjc2NUwxMC45MDIgNS41SDExYS41LjUgMCAwIDAgLjQxNi0uNzc3bC0zLTQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVHJpYW5nbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjAyMiAxLjU2NmExLjEzIDEuMTMgMCAwIDEgMS45NiAwbDYuODU3IDExLjY2N2MuNDU3Ljc3OC0uMDkyIDEuNzY3LS45OCAxLjc2N0gxLjE0NGMtLjg4OSAwLTEuNDM3LS45OS0uOTgtMS43NjdMNy4wMjIgMS41NjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFRyb3BoeUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41LjVBLjUuNSAwIDAgMSAzIDBoMTBhLjUuNSAwIDAgMSAuNS41YzAgLjUzOC0uMDEyIDEuMDUtLjAzNCAxLjUzNmEzIDMgMCAxIDEtMS4xMzMgNS44OWMtLjc5IDEuODY1LTEuODc4IDIuNzc3LTIuODMzIDMuMDExdjIuMTczbDEuNDI1LjM1NmMuMTk0LjA0OC4zNzcuMTM1LjUzNy4yNTVMMTMuMyAxNS4xYS41LjUgMCAwIDEtLjMuOUgzYS41LjUgMCAwIDEtLjMtLjlsMS44MzgtMS4zNzljLjE2LS4xMi4zNDMtLjIwNy41MzctLjI1NUw2LjUgMTMuMTF2LTIuMTczYy0uOTU1LS4yMzQtMi4wNDMtMS4xNDYtMi44MzMtMy4wMTJhMyAzIDAgMSAxLTEuMTMyLTUuODlBMzMuMDc2IDMzLjA3NiAwIDAgMSAyLjUuNXptLjA5OSAyLjU0YTIgMiAwIDAgMCAuNzIgMy45MzVjLS4zMzMtMS4wNS0uNTg4LTIuMzQ2LS43Mi0zLjkzNXptMTAuMDgzIDMuOTM1YTIgMiAwIDAgMCAuNzItMy45MzVjLS4xMzMgMS41OS0uMzg4IDIuODg1LS43MiAzLjkzNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVHZGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxMy41QS41LjUgMCAwIDEgMyAxM2gxMGEuNS41IDAgMCAxIDAgMUgzYS41LjUgMCAwIDEtLjUtLjV6TTIgMmgxMnMyIDAgMiAydjZzMCAyLTIgMkgycy0yIDAtMi0yVjRzMC0yIDItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVW1icmVsbGFGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBhLjUuNSAwIDAgMSAuNS41di41MTRDMTIuNjI1IDEuMjM4IDE2IDQuMjIgMTYgOGMwIDAgMCAuNS0uNS41LS4xNDkgMC0uMzUyLS4xNDUtLjM1Mi0uMTQ1bC0uMDA0LS4wMDQtLjAyNS0uMDIzYTMuNDg0IDMuNDg0IDAgMCAwLS41NTUtLjM5NEEzLjE2NiAzLjE2NiAwIDAgMCAxMyA3LjVjLS42MzggMC0xLjE3OC4yMTMtMS41NjQuNDM0YTMuNDg0IDMuNDg0IDAgMCAwLS41NTUuMzk0bC0uMDI1LjAyMy0uMDAzLjAwM3MtLjIwNC4xNDYtLjM1My4xNDYtLjM1Mi0uMTQ1LS4zNTItLjE0NWwtLjAwNC0uMDA0LS4wMjUtLjAyM2EzLjQ4NCAzLjQ4NCAwIDAgMC0uNTU1LS4zOTQgMy4zIDMuMyAwIDAgMC0xLjA2NC0uMzlWMTMuNUg4aC41di4wMzlsLS4wMDUuMDgzYTIuOTU4IDIuOTU4IDAgMCAxLS4yOTggMS4xMDIgMi4yNTcgMi4yNTcgMCAwIDEtLjc2My44OEM3LjA2IDE1Ljg1MSA2LjU4NyAxNiA2IDE2cy0xLjA2MS0uMTQ4LTEuNDM0LS4zOTZhMi4yNTUgMi4yNTUgMCAwIDEtLjc2My0uODggMi45NTggMi45NTggMCAwIDEtLjMwMi0xLjE4NXYtLjAyNWwtLjAwMS0uMDA5di0uMDAzczAtLjAwMi41LS4wMDJoLS41VjEzYS41LjUgMCAwIDEgMSAwdi41MDZsLjAwMy4wNDRhMS45NTggMS45NTggMCAwIDAgLjE5NS43MjZjLjA5NS4xOTEuMjMuMzY3LjQyMy40OTUuMTkuMTI3LjQ2Ni4yMjkuODc5LjIyOXMuNjg5LS4xMDIuODc5LS4yMjljLjE5My0uMTI4LjMyOC0uMzA0LjQyNC0uNDk1YTEuOTU4IDEuOTU4IDAgMCAwIC4xOTctLjc3VjcuNTQ0YTMuMyAzLjMgMCAwIDAtMS4wNjQuMzkgMy40ODIgMy40ODIgMCAwIDAtLjU4LjQxN2wtLjAwNC4wMDRTNS42NSA4LjUgNS41IDguNWMtLjE0OSAwLS4zNTItLjE0NS0uMzUyLS4xNDVsLS4wMDQtLjAwNGEzLjQ4MiAzLjQ4MiAwIDAgMC0uNTgtLjQxN0EzLjE2NiAzLjE2NiAwIDAgMCAzIDcuNWMtLjYzOCAwLTEuMTc3LjIxMy0xLjU2NC40MzRhMy40ODIgMy40ODIgMCAwIDAtLjU4LjQxN2wtLjAwNC4wMDRTLjY1IDguNS41IDguNUMwIDguNSAwIDggMCA4YzAtMy43OCAzLjM3NS02Ljc2MiA3LjUtNi45ODZWLjVBLjUuNSAwIDAgMSA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFVubG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMWEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmg1VjNhMyAzIDAgMCAxIDYgMHY0YS41LjUgMCAwIDEtMSAwVjNhMiAyIDAgMCAwLTItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVmlueWxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTR6bTAgM2ExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek00IDhhNCA0IDAgMSAwIDggMCA0IDQgMCAwIDAtOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxWb2x1bWVEb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRhLjUuNSAwIDAgMC0uODEyLS4zOUw1LjgyNSA1LjVIMy41QS41LjUgMCAwIDAgMyA2djRhLjUuNSAwIDAgMCAuNS41aDIuMzI1bDIuMzYzIDEuODlBLjUuNSAwIDAgMCA5IDEyVjR6bTMuMDI1IDRhNC40ODYgNC40ODYgMCAwIDEtMS4zMTggMy4xODJMMTAgMTAuNDc1QTMuNDg5IDMuNDg5IDAgMCAwIDExLjAyNSA4IDMuNDkgMy40OSAwIDAgMCAxMCA1LjUyNWwuNzA3LS43MDdBNC40ODYgNC40ODYgMCAwIDEgMTIuMDI1IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFZvbHVtZU11dGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzE3IDMuNTVBLjUuNSAwIDAgMSA3IDR2OGEuNS41IDAgMCAxLS44MTIuMzlMMy44MjUgMTAuNUgxLjVBLjUuNSAwIDAgMSAxIDEwVjZhLjUuNSAwIDAgMSAuNS0uNWgyLjMyNWwyLjM2My0xLjg5YS41LjUgMCAwIDEgLjUyOS0uMDZ6bTcuMTM3IDIuMDk2YS41LjUgMCAwIDEgMCAuNzA4TDEyLjIwNyA4bDEuNjQ3IDEuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMMTEuNSA4LjcwN2wtMS42NDYgMS42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuNzkzIDggOS4xNDYgNi4zNTRhLjUuNSAwIDEgMSAuNzA4LS43MDhMMTEuNSA3LjI5M2wxLjY0Ni0xLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsVm9sdW1lT2ZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC43MTcgMy41NUEuNS41IDAgMCAxIDExIDR2OGEuNS41IDAgMCAxLS44MTIuMzlMNy44MjUgMTAuNUg1LjVBLjUuNSAwIDAgMSA1IDEwVjZhLjUuNSAwIDAgMSAuNS0uNWgyLjMyNWwyLjM2My0xLjg5YS41LjUgMCAwIDEgLjUyOS0uMDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFZvbHVtZVVwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41MzYgMTQuMDFBOC40NzMgOC40NzMgMCAwIDAgMTQuMDI2IDhhOC40NzMgOC40NzMgMCAwIDAtMi40OS02LjAxbC0uNzA4LjcwN0E3LjQ3NiA3LjQ3NiAwIDAgMSAxMy4wMjUgOGMwIDIuMDcxLS44NCAzLjk0Ni0yLjE5NyA1LjMwM2wuNzA4LjcwN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4xMjEgMTIuNTk2QTYuNDggNi40OCAwIDAgMCAxMi4wMjUgOGE2LjQ4IDYuNDggMCAwIDAtMS45MDQtNC41OTZsLS43MDcuNzA3QTUuNDgzIDUuNDgzIDAgMCAxIDExLjAyNSA4YTUuNDgzIDUuNDgzIDAgMCAxLTEuNjEgMy44OWwuNzA2LjcwNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjcwNyAxMS4xODJBNC40ODYgNC40ODYgMCAwIDAgMTAuMDI1IDhhNC40ODYgNC40ODYgMCAwIDAtMS4zMTgtMy4xODJMOCA1LjUyNUEzLjQ4OSAzLjQ4OSAwIDAgMSA5LjAyNSA4IDMuNDkgMy40OSAwIDAgMSA4IDEwLjQ3NWwuNzA3LjcwN3pNNi43MTcgMy41NUEuNS41IDAgMCAxIDcgNHY4YS41LjUgMCAwIDEtLjgxMi4zOUwzLjgyNSAxMC41SDEuNUEuNS41IDAgMCAxIDEgMTBWNmEuNS41IDAgMCAxIC41LS41aDIuMzI1bDIuMzYzLTEuODlhLjUuNSAwIDAgMSAuNTI5LS4wNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsV2FsbGV0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMkExLjUgMS41IDAgMCAwIDAgMy41djJoNmEuNS41IDAgMCAxIC41LjVjMCAuMjUzLjA4LjY0NC4zMDYuOTU4LjIwNy4yODguNTU3LjU0MiAxLjE5NC41NDIuNjM3IDAgLjk4Ny0uMjU0IDEuMTk0LS41NDIuMjI2LS4zMTQuMzA2LS43MDUuMzA2LS45NThhLjUuNSAwIDAgMSAuNS0uNWg2di0yQTEuNSAxLjUgMCAwIDAgMTQuNSAyaC0xM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2LjVoLTUuNTUxYTIuNjc4IDIuNjc4IDAgMCAxLS40NDMgMS4wNDJDOS42MTMgOC4wODggOC45NjMgOC41IDggOC41Yy0uOTYzIDAtMS42MTMtLjQxMi0yLjAwNi0uOTU4QTIuNjc5IDIuNjc5IDAgMCAxIDUuNTUxIDYuNUgwdjZBMS41IDEuNSAwIDAgMCAxLjUgMTRoMTNhMS41IDEuNSAwIDAgMCAxLjUtMS41di02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGxYQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTUuMzU0IDQuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhMNy4yOTMgOGwtMi42NDcgMi42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOEw4IDguNzA3bDIuNjQ2IDIuNjQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4TDguNzA3IDhsMi42NDctMi42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMOCA3LjI5MyA1LjM1NCA0LjY0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxsWERpYW1vbmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDUuNDM1Yy0uNTgtLjU4LTEuNTItLjU4LTIuMSAwTDQuMDQ3IDMuMzM5IDggNy4yOTNsMy45NTQtMy45NTRMOS4wNDkuNDM1em0zLjYxIDMuNjExTDguNzA4IDhsMy45NTQgMy45NTQgMi45MDQtMi45MDVjLjU4LS41OC41OC0xLjUxOSAwLTIuMDk4bC0yLjkwNC0yLjkwNXptLS43MDYgOC42MTRMOCA4LjcwOGwtMy45NTQgMy45NTQgMi45MDUgMi45MDRjLjU4LjU4IDEuNTE5LjU4IDIuMDk4IDBsMi45MDUtMi45MDR6bS04LjYxNC0uNzA2TDcuMjkyIDggMy4zMzkgNC4wNDYuNDM1IDYuOTUxYy0uNTguNTgtLjU4IDEuNTE5IDAgMi4wOThsMi45MDQgMi45MDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFhPY3RhZ29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40Ni4xNDZBLjUuNSAwIDAgMCAxMS4xMDcgMEg0Ljg5M2EuNS41IDAgMCAwLS4zNTMuMTQ2TC4xNDYgNC41NEEuNS41IDAgMCAwIDAgNC44OTN2Ni4yMTRhLjUuNSAwIDAgMCAuMTQ2LjM1M2w0LjM5NCA0LjM5NGEuNS41IDAgMCAwIC4zNTMuMTQ2aDYuMjE0YS41LjUgMCAwIDAgLjM1My0uMTQ2bDQuMzk0LTQuMzk0YS41LjUgMCAwIDAgLjE0Ni0uMzUzVjQuODkzYS41LjUgMCAwIDAtLjE0Ni0uMzUzTDExLjQ2LjE0NnptLTYuMTA2IDQuNUw4IDcuMjkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhMOC43MDcgOGwyLjY0NyAyLjY0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOC43MDdsLTIuNjQ2IDIuNjQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDcuMjkzIDggNC42NDYgNS4zNTRhLjUuNSAwIDEgMSAuNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsbFhTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptMy4zNTQgNC42NDZMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JldmVyc2VCYWNrc3BhY2VSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODU0IDUuMTQ2YS41LjUgMCAwIDEgMCAuNzA4TDcuNzA3IDhsMi4xNDcgMi4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw3IDguNzA3bC0yLjE0NiAyLjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw2LjI5MyA4IDQuMTQ2IDUuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcgNy4yOTNsMi4xNDYtMi4xNDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmg3LjA4YTIgMiAwIDAgMCAxLjUxOS0uNjk4bDQuODQzLTUuNjUxYTEgMSAwIDAgMCAwLTEuMzAyTDEwLjYgMS43QTIgMiAwIDAgMCA5LjA4IDFIMnptNy4wOCAxYTEgMSAwIDAgMSAuNzYuMzVMMTQuNjgyIDhsLTQuODQ0IDUuNjVhMSAxIDAgMCAxLS43NTkuMzVIMmExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWg3LjA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JldmVyc2VMYXlvdXRTaWRlYmFySW5zZXRSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIMnptMTItMWEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xVjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmV2ZXJzZUxheW91dFNpZGViYXJSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNhMiAyIDAgMCAwLTItMkgyYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjN6bS01LTF2MTJIMmExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWg5em0xIDBoMmExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFoLTJWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSZXZlcnNlTGF5b3V0VGV4dFNpZGViYXJSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgM2EuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMWg1em0wIDNhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoNXptLjUgMy41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41em0tLjUgMi41YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMmEyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMnpNNCAxdjE0SDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMnptMSAwaDlhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDVWMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSZXZlcnNlTGF5b3V0VGV4dFdpbmRvd1JldmVyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNi41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41em0wIDNhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjUtLjV6bS0uNSAyLjVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAwYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDEyek0yIDFhMSAxIDAgMCAwLTEgMXYxaDE0VjJhMSAxIDAgMCAwLTEtMUgyek0xIDR2MTBhMSAxIDAgMCAwIDEgMWgyVjRIMXptNCAwdjExaDlhMSAxIDAgMCAwIDEtMVY0SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQWxhcm1GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgLjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxSDl2MS4wN2E3LjAwMSA3LjAwMSAwIDAgMSAzLjI3NCAxMi40NzRsLjYwMS42MDJhLjUuNSAwIDAgMS0uNzA3LjcwOGwtLjc0Ni0uNzQ2QTYuOTcgNi45NyAwIDAgMSA4IDE2YTYuOTcgNi45NyAwIDAgMS0zLjQyMi0uODkybC0uNzQ2Ljc0NmEuNS41IDAgMCAxLS43MDctLjcwOGwuNjAyLS42MDJBNy4wMDEgNy4wMDEgMCAwIDEgNyAyLjA3VjFoLS41QS41LjUgMCAwIDEgNiAuNXptMi41IDVhLjUuNSAwIDAgMC0xIDB2My4zNjJsLTEuNDI5IDIuMzhhLjUuNSAwIDEgMCAuODU4LjUxNWwxLjUtMi41QS41LjUgMCAwIDAgOC41IDlWNS41ek0uODYgNS4zODdBMi41IDIuNSAwIDEgMSA0LjM4NyAxLjg2IDguMDM1IDguMDM1IDAgMCAwIC44NiA1LjM4N3pNMTEuNjEzIDEuODZhMi41IDIuNSAwIDEgMSAzLjUyNyAzLjUyNyA4LjAzNSA4LjAzNSAwIDAgMC0zLjUyNy0zLjUyN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBbGFybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgNS41YS41LjUgMCAwIDAtMSAwdjMuMzYybC0xLjQyOSAyLjM4YS41LjUgMCAxIDAgLjg1OC41MTVsMS41LTIuNUEuNS41IDAgMCAwIDguNSA5VjUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMGEuNS41IDAgMCAwIDAgMUg3djEuMDdhNy4wMDEgNy4wMDEgMCAwIDAtMy4yNzMgMTIuNDc0bC0uNjAyLjYwMmEuNS41IDAgMCAwIC43MDcuNzA4bC43NDYtLjc0NkE2Ljk3IDYuOTcgMCAwIDAgOCAxNmE2Ljk3IDYuOTcgMCAwIDAgMy40MjItLjg5MmwuNzQ2Ljc0NmEuNS41IDAgMCAwIC43MDctLjcwOGwtLjYwMS0uNjAyQTcuMDAxIDcuMDAxIDAgMCAwIDkgMi4wN1YxaC41YS41LjUgMCAwIDAgMC0xaC0zem0xLjAzOCAzLjAxOGE2LjA5MyA2LjA5MyAwIDAgMSAuOTI0IDAgNiA2IDAgMSAxLS45MjQgMHpNMCAzLjVjMCAuNzUzLjMzMyAxLjQyOS44NiAxLjg4N0E4LjAzNSA4LjAzNSAwIDAgMSA0LjM4NyAxLjg2IDIuNSAyLjUgMCAwIDAgMCAzLjV6TTEzLjUgMWMtLjc1MyAwLTEuNDI5LjMzMy0xLjg4Ny44NmE4LjAzNSA4LjAzNSAwIDAgMSAzLjUyNyAzLjUyN0EyLjUgMi41IDAgMCAwIDEzLjUgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBbGlnbkJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicmVjdFwiLFwiYXR0clwiOntcIndpZHRoXCI6XCI0XCIsXCJoZWlnaHRcIjpcIjEyXCIsXCJ4XCI6XCI2XCIsXCJ5XCI6XCIxXCIsXCJyeFwiOlwiMVwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAxNGEuNS41IDAgMCAwIDAgMXYtMXptMTMgMWEuNS41IDAgMCAwIDAtMXYxem0tMTMgMGgxM3YtMWgtMTN2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBbGlnbkNlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhLjUuNSAwIDAgMSAuNS41VjZoLTFWMS41QS41LjUgMCAwIDEgOCAxem0wIDE0YS41LjUgMCAwIDEtLjUtLjVWMTBoMXY0LjVhLjUuNSAwIDAgMS0uNS41ek0yIDdhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBbGlnbkVuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuNSAxYS41LjUgMCAwIDAtLjUuNXYxM2EuNS41IDAgMCAwIDEgMHYtMTNhLjUuNSAwIDAgMC0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3YTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQWxpZ25NaWRkbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjEwek0xIDhhLjUuNSAwIDAgMCAuNS41SDZ2LTFIMS41QS41LjUgMCAwIDAgMSA4em0xNCAwYS41LjUgMCAwIDEtLjUuNUgxMHYtMWg0LjVhLjUuNSAwIDAgMSAuNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0FsaWduU3RhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuNSAxYS41LjUgMCAwIDEgLjUuNXYxM2EuNS41IDAgMCAxLTEgMHYtMTNhLjUuNSAwIDAgMSAuNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDdhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBbGlnblRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicmVjdFwiLFwiYXR0clwiOntcIndpZHRoXCI6XCI0XCIsXCJoZWlnaHRcIjpcIjEyXCIsXCJyeFwiOlwiMVwiLFwidHJhbnNmb3JtXCI6XCJtYXRyaXgoMSAwIDAgLTEgNiAxNSlcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMmEuNS41IDAgMCAxIDAtMXYxem0xMy0xYS41LjUgMCAwIDEgMCAxVjF6bS0xMyAwaDEzdjFoLTEzVjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTMuNWEuNS41IDAgMCAwIC41LjVoMy43OTdhLjUuNSAwIDAgMCAuNDM5LS4yNkwxMSAzaDMuNWEuNS41IDAgMCAwIDAtMWgtMy43OTdhLjUuNSAwIDAgMC0uNDM5LjI2TDUgMTNIMS41YS41LjUgMCAwIDAtLjUuNXptMTAgMGEuNS41IDAgMCAwIC41LjVoM2EuNS41IDAgMCAwIDAtMWgtM2EuNS41IDAgMCAwLS41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXBwSW5kaWNhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAyQTMuNSAzLjUgMCAwIDAgMiA1LjV2NUEzLjUgMy41IDAgMCAwIDUuNSAxNGg1YTMuNSAzLjUgMCAwIDAgMy41LTMuNVY4YS41LjUgMCAwIDEgMSAwdjIuNWE0LjUgNC41IDAgMCAxLTQuNSA0LjVoLTVBNC41IDQuNSAwIDAgMSAxIDEwLjV2LTVBNC41IDQuNSAwIDAgMSA1LjUgMUg4YS41LjUgMCAwIDEgMCAxSDUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAzYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMmEzIDMgMCAwIDEgMyAzdjZhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTNWNWEzIDMgMCAwIDEgMy0zaDZ6TTUgMWE0IDQgMCAwIDAtNCA0djZhNCA0IDAgMCAwIDQgNGg2YTQgNCAwIDAgMCA0LTRWNWE0IDQgMCAwIDAtNC00SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXBwbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMTgyLjAwOEMxMS4xNDgtLjAzIDkuOTIzLjAyMyA4Ljg1NyAxLjE4Yy0xLjA2NiAxLjE1Ni0uOTAyIDIuNDgyLS44NzggMi41MTYuMDI0LjAzNCAxLjUyLjA4NyAyLjQ3NS0xLjI1OC45NTUtMS4zNDUuNzYyLTIuMzkxLjcyOC0yLjQzem0zLjMxNCAxMS43MzNjLS4wNDgtLjA5Ni0yLjMyNS0xLjIzNC0yLjExMy0zLjQyMi4yMTItMi4xODkgMS42NzUtMi43ODkgMS42OTgtMi44NTQuMDIzLS4wNjUtLjU5Ny0uNzktMS4yNTQtMS4xNTdhMy42OTIgMy42OTIgMCAwIDAtMS41NjMtLjQzNGMtLjEwOC0uMDAzLS40ODMtLjA5NS0xLjI1NC4xMTYtLjUwOC4xMzktMS42NTMuNTg5LTEuOTY4LjYwNy0uMzE2LjAxOC0xLjI1Ni0uNTIyLTIuMjY3LS42NjUtLjY0Ny0uMTI1LTEuMzMzLjEzMS0xLjgyNC4zMjgtLjQ5LjE5Ni0xLjQyMi43NTQtMi4wNzQgMi4yMzctLjY1MiAxLjQ4Mi0uMzExIDMuODMtLjA2NyA0LjU2LjI0NC43MjkuNjI1IDEuOTI0IDEuMjczIDIuNzk2LjU3Ni45ODQgMS4zNCAxLjY2NyAxLjY1OSAxLjg5OS4zMTkuMjMyIDEuMjE5LjM4NiAxLjg0My4wNjcuNTAyLS4zMDggMS40MDgtLjQ4NSAxLjc2Ni0uNDcyLjM1Ny4wMTMgMS4wNjEuMTU0IDEuNzgyLjUzOS41NzEuMTk3IDEuMTExLjExNSAxLjY1Mi0uMTA1LjU0MS0uMjIxIDEuMzI0LTEuMDU5IDIuMjM4LTIuNzU4LjM0Ny0uNzkuNTA1LTEuMjE3LjQ3My0xLjI4MnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4xODIuMDA4QzExLjE0OC0uMDMgOS45MjMuMDIzIDguODU3IDEuMThjLTEuMDY2IDEuMTU2LS45MDIgMi40ODItLjg3OCAyLjUxNi4wMjQuMDM0IDEuNTIuMDg3IDIuNDc1LTEuMjU4Ljk1NS0xLjM0NS43NjItMi4zOTEuNzI4LTIuNDN6bTMuMzE0IDExLjczM2MtLjA0OC0uMDk2LTIuMzI1LTEuMjM0LTIuMTEzLTMuNDIyLjIxMi0yLjE4OSAxLjY3NS0yLjc4OSAxLjY5OC0yLjg1NC4wMjMtLjA2NS0uNTk3LS43OS0xLjI1NC0xLjE1N2EzLjY5MiAzLjY5MiAwIDAgMC0xLjU2My0uNDM0Yy0uMTA4LS4wMDMtLjQ4My0uMDk1LTEuMjU0LjExNi0uNTA4LjEzOS0xLjY1My41ODktMS45NjguNjA3LS4zMTYuMDE4LTEuMjU2LS41MjItMi4yNjctLjY2NS0uNjQ3LS4xMjUtMS4zMzMuMTMxLTEuODI0LjMyOC0uNDkuMTk2LTEuNDIyLjc1NC0yLjA3NCAyLjIzNy0uNjUyIDEuNDgyLS4zMTEgMy44My0uMDY3IDQuNTYuMjQ0LjcyOS42MjUgMS45MjQgMS4yNzMgMi43OTYuNTc2Ljk4NCAxLjM0IDEuNjY3IDEuNjU5IDEuODk5LjMxOS4yMzIgMS4yMTkuMzg2IDEuODQzLjA2Ny41MDItLjMwOCAxLjQwOC0uNDg1IDEuNzY2LS40NzIuMzU3LjAxMyAxLjA2MS4xNTQgMS43ODIuNTM5LjU3MS4xOTcgMS4xMTEuMTE1IDEuNjUyLS4xMDUuNTQxLS4yMjEgMS4zMjQtMS4wNTkgMi4yMzgtMi43NTguMzQ3LS43OS41MDUtMS4yMTcuNDczLTEuMjgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0FyY2hpdmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjY0MyAxNUMxMy45NzkgMTUgMTUgMTMuODQ1IDE1IDEyLjVWNUgxdjcuNUMxIDEzLjg0NSAyLjAyMSAxNSAzLjM1NyAxNWg5LjI4NnpNNS41IDdoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMXpNLjggMWEuOC44IDAgMCAwLS44LjhWM2EuOC44IDAgMCAwIC44LjhoMTQuNEEuOC44IDAgMCAwIDE2IDNWMS44YS44LjggMCAwIDAtLjgtLjhILjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMXY3LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC05QTIuNSAyLjUgMCAwIDEgMSAxMi41VjVhMSAxIDAgMCAxLTEtMVYyem0yIDN2Ny41QTEuNSAxLjUgMCAwIDAgMy41IDE0aDlhMS41IDEuNSAwIDAgMCAxLjUtMS41VjVIMnptMTMtM0gxdjJoMTRWMnpNNSA3LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3c5MERlZ0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuODU0IDE0Ljg1NGEuNS41IDAgMCAxLS43MDggMGwtNC00YS41LjUgMCAwIDEgLjcwOC0uNzA4TDQgMTMuMjkzVjMuNUEyLjUgMi41IDAgMCAxIDYuNSAxaDhhLjUuNSAwIDAgMSAwIDFoLThBMS41IDEuNSAwIDAgMCA1IDMuNXY5Ljc5M2wzLjE0Ni0zLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC00IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3c5MERlZ0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuMTQ2IDQuODU0YS41LjUgMCAwIDEgMC0uNzA4bDQtNGEuNS41IDAgMSAxIC43MDguNzA4TDIuNzA3IDRIMTIuNUEyLjUgMi41IDAgMCAxIDE1IDYuNXY4YS41LjUgMCAwIDEtMSAwdi04QTEuNSAxLjUgMCAwIDAgMTIuNSA1SDIuNzA3bDMuMTQ3IDMuMTQ2YS41LjUgMCAxIDEtLjcwOC43MDhsLTQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvdzkwRGVnUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0Ljg1NCA0Ljg1NGEuNS41IDAgMCAwIDAtLjcwOGwtNC00YS41LjUgMCAwIDAtLjcwOC43MDhMMTMuMjkzIDRIMy41QTIuNSAyLjUgMCAwIDAgMSA2LjV2OGEuNS41IDAgMCAwIDEgMHYtOEExLjUgMS41IDAgMCAxIDMuNSA1aDkuNzkzbC0zLjE0NyAzLjE0NmEuNS41IDAgMCAwIC43MDguNzA4bDQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvdzkwRGVnVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuODU0IDEuMTQ2YS41LjUgMCAwIDAtLjcwOCAwbC00IDRhLjUuNSAwIDEgMCAuNzA4LjcwOEw0IDIuNzA3VjEyLjVBMi41IDIuNSAwIDAgMCA2LjUgMTVoOGEuNS41IDAgMCAwIDAtMWgtOEExLjUgMS41IDAgMCAxIDUgMTIuNVYyLjcwN2wzLjE0NiAzLjE0N2EuNS41IDAgMSAwIC43MDgtLjcwOGwtNC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93QmFyRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMSAzLjVhLjUuNSAwIDAgMSAuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNXpNOCA2YS41LjUgMCAwIDEgLjUuNXY1Ljc5M2wyLjE0Ni0yLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTMtM2EuNS41IDAgMCAxIC43MDgtLjcwOEw3LjUgMTIuMjkzVjYuNUEuNS41IDAgMCAxIDggNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0JhckxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjUgMTVhLjUuNSAwIDAgMS0uNS0uNXYtMTNhLjUuNSAwIDAgMSAxIDB2MTNhLjUuNSAwIDAgMS0uNS41ek0xMCA4YS41LjUgMCAwIDEtLjUuNUgzLjcwN2wyLjE0NyAyLjE0NmEuNS41IDAgMCAxLS43MDguNzA4bC0zLTNhLjUuNSAwIDAgMSAwLS43MDhsMy0zYS41LjUgMCAxIDEgLjcwOC43MDhMMy43MDcgNy41SDkuNWEuNS41IDAgMCAxIC41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dCYXJSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiA4YS41LjUgMCAwIDAgLjUuNWg1Ljc5M2wtMi4xNDcgMi4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwzLTNhLjUuNSAwIDAgMCAwLS43MDhsLTMtM2EuNS41IDAgMCAwLS43MDguNzA4TDEyLjI5MyA3LjVINi41QS41LjUgMCAwIDAgNiA4em0tMi41IDdhLjUuNSAwIDAgMS0uNS0uNXYtMTNhLjUuNSAwIDAgMSAxIDB2MTNhLjUuNSAwIDAgMS0uNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93QmFyVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTBhLjUuNSAwIDAgMCAuNS0uNVYzLjcwN2wyLjE0NiAyLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtMy0zYS41LjUgMCAwIDAtLjcwOCAwbC0zIDNhLjUuNSAwIDEgMCAuNzA4LjcwOEw3LjUgMy43MDdWOS41YS41LjUgMCAwIDAgLjUuNXptLTcgMi41YS41LjUgMCAwIDEgLjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dDbG9ja3dpc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggM2E1IDUgMCAxIDAgNC41NDYgMi45MTQuNS41IDAgMCAxIC45MDgtLjQxN0E2IDYgMCAxIDEgOCAydjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0LjQ2NlYuNTM0YS4yNS4yNSAwIDAgMSAuNDEtLjE5MmwyLjM2IDEuOTY2Yy4xMi4xLjEyLjI4NCAwIC4zODRMOC40MSA0LjY1OEEuMjUuMjUgMCAwIDEgOCA0LjQ2NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0NvdW50ZXJjbG9ja3dpc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggM2E1IDUgMCAxIDEtNC41NDYgMi45MTQuNS41IDAgMCAwLS45MDgtLjQxN0E2IDYgMCAxIDAgOCAydjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0LjQ2NlYuNTM0YS4yNS4yNSAwIDAgMC0uNDEtLjE5Mkw1LjIzIDIuMzA4YS4yNS4yNSAwIDAgMCAwIC4zODRsMi4zNiAxLjk2NkEuMjUuMjUgMCAwIDAgOCA0LjQ2NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0Rvd25DaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNOC41IDQuNWEuNS41IDAgMCAwLTEgMHY1Ljc5M0w1LjM1NCA4LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDMgM2EuNS41IDAgMCAwIC43MDggMGwzLTNhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1Y0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dEb3duQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xIDhhNyA3IDAgMSAwIDE0IDBBNyA3IDAgMCAwIDEgOHptMTUgMEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek04LjUgNC41YS41LjUgMCAwIDAtMSAwdjUuNzkzTDUuMzU0IDguMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMyAzYS41LjUgMCAwIDAgLjcwOCAwbDMtM2EuNS41IDAgMCAwLS43MDgtLjcwOEw4LjUgMTAuMjkzVjQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0Rvd25MZWZ0Q2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMCAwIDhhOCA4IDAgMCAwIDE2IDB6bS01LjkwNC0yLjgwM2EuNS41IDAgMSAxIC43MDcuNzA3TDYuNzA3IDEwaDIuNzY4YS41LjUgMCAwIDEgMCAxSDUuNWEuNS41IDAgMCAxLS41LS41VjYuNTI1YS41LjUgMCAwIDEgMSAwdjIuNzY4bDQuMDk2LTQuMDk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93RG93bkxlZnRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgOGE3IDcgMCAxIDAgMTQgMEE3IDcgMCAwIDAgMSA4em0xNSAwQTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6bS01LjkwNC0yLjg1NGEuNS41IDAgMSAxIC43MDcuNzA4TDYuNzA3IDkuOTVoMi43NjhhLjUuNSAwIDEgMSAwIDFINS41YS41LjUgMCAwIDEtLjUtLjVWNi40NzVhLjUuNSAwIDEgMSAxIDB2Mi43NjhsNC4wOTYtNC4wOTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dEb3duTGVmdFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMnptOC4wOTYtMTAuODAzTDYgOS4yOTNWNi41MjVhLjUuNSAwIDAgMC0xIDBWMTAuNWEuNS41IDAgMCAwIC41LjVoMy45NzVhLjUuNSAwIDAgMCAwLTFINi43MDdsNC4wOTYtNC4wOTZhLjUuNSAwIDEgMC0uNzA3LS43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dEb3duTGVmdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTUgMmExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWMnpNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem0xMC4wOTYgMy4xNDZhLjUuNSAwIDEgMSAuNzA3LjcwOEw2LjcwNyA5Ljk1aDIuNzY4YS41LjUgMCAxIDEgMCAxSDUuNWEuNS41IDAgMCAxLS41LS41VjYuNDc1YS41LjUgMCAxIDEgMSAwdjIuNzY4bDQuMDk2LTQuMDk3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93RG93bkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMTMuNWEuNS41IDAgMCAwIC41LjVoNmEuNS41IDAgMCAwIDAtMUgzLjcwN0wxMy44NTQgMi44NTRhLjUuNSAwIDAgMC0uNzA4LS43MDhMMyAxMi4yOTNWNy41YS41LjUgMCAwIDAtMSAwdjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dEb3duUmlnaHRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4em01LjkwNC0yLjgwM2EuNS41IDAgMSAwLS43MDcuNzA3TDkuMjkzIDEwSDYuNTI1YS41LjUgMCAwIDAgMCAxSDEwLjVhLjUuNSAwIDAgMCAuNS0uNVY2LjUyNWEuNS41IDAgMCAwLTEgMHYyLjc2OEw1LjkwNCA1LjE5N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0Rvd25SaWdodENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMSA4YTcgNyAwIDEgMCAxNCAwQTcgNyAwIDAgMCAxIDh6bTE1IDBBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNS44NTQgNS4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOEw5LjI0MyA5Ljk1SDYuNDc1YS41LjUgMCAxIDAgMCAxaDMuOTc1YS41LjUgMCAwIDAgLjUtLjVWNi40NzVhLjUuNSAwIDEgMC0xIDB2Mi43NjhMNS44NTQgNS4xNDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dEb3duUmlnaHRTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE2YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyek01LjkwNCA1LjE5NyAxMCA5LjI5M1Y2LjUyNWEuNS41IDAgMCAxIDEgMFYxMC41YS41LjUgMCAwIDEtLjUuNUg2LjUyNWEuNS41IDAgMCAxIDAtMWgyLjc2OEw1LjE5NyA1LjkwNGEuNS41IDAgMCAxIC43MDctLjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0Rvd25SaWdodFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTUgMmExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWMnpNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem01Ljg1NCAzLjE0NmEuNS41IDAgMSAwLS43MDguNzA4TDkuMjQzIDkuOTVINi40NzVhLjUuNSAwIDEgMCAwIDFoMy45NzVhLjUuNSAwIDAgMCAuNS0uNVY2LjQ3NWEuNS41IDAgMSAwLTEgMHYyLjc2OEw1Ljg1NCA1LjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0Rvd25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQgMTMuNWEuNS41IDAgMCAxLS41LjVoLTZhLjUuNSAwIDAgMSAwLTFoNC43OTNMMi4xNDYgMi44NTRhLjUuNSAwIDEgMSAuNzA4LS43MDhMMTMgMTIuMjkzVjcuNWEuNS41IDAgMCAxIDEgMHY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93RG93blNob3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDRhLjUuNSAwIDAgMSAuNS41djUuNzkzbDIuMTQ2LTIuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMy0zYS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSAxMC4yOTNWNC41QS41LjUgMCAwIDEgOCA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93RG93blNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem02LjUgNC41djUuNzkzbDIuMTQ2LTIuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMy0zYS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSAxMC4yOTNWNC41YS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93RG93blNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTUgMmExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWMnpNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem04LjUgMi41YS41LjUgMCAwIDAtMSAwdjUuNzkzTDUuMzU0IDguMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMyAzYS41LjUgMCAwIDAgLjcwOCAwbDMtM2EuNS41IDAgMCAwLS43MDgtLjcwOEw4LjUgMTAuMjkzVjQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0Rvd25VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEuNSAxNWEuNS41IDAgMCAwIC41LS41VjIuNzA3bDMuMTQ2IDMuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC00LTRhLjUuNSAwIDAgMC0uNzA4IDBsLTQgNGEuNS41IDAgMSAwIC43MDguNzA4TDExIDIuNzA3VjE0LjVhLjUuNSAwIDAgMCAuNS41em0tNy0xNGEuNS41IDAgMCAxIC41LjV2MTEuNzkzbDMuMTQ2LTMuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTQgNGEuNS41IDAgMCAxLS43MDggMGwtNC00YS41LjUgMCAwIDEgLjcwOC0uNzA4TDQgMTMuMjkzVjEuNWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAxYS41LjUgMCAwIDEgLjUuNXYxMS43OTNsMy4xNDYtMy4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtNCA0YS41LjUgMCAwIDEtLjcwOCAwbC00LTRhLjUuNSAwIDAgMSAuNzA4LS43MDhMNy41IDEzLjI5M1YxLjVBLjUuNSAwIDAgMSA4IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dMZWZ0Q2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhOCA4IDAgMSAwIDAgMTZBOCA4IDAgMCAwIDggMHptMy41IDcuNWEuNS41IDAgMCAxIDAgMUg1LjcwN2wyLjE0NyAyLjE0NmEuNS41IDAgMCAxLS43MDguNzA4bC0zLTNhLjUuNSAwIDAgMSAwLS43MDhsMy0zYS41LjUgMCAxIDEgLjcwOC43MDhMNS43MDcgNy41SDExLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dMZWZ0Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xIDhhNyA3IDAgMSAwIDE0IDBBNyA3IDAgMCAwIDEgOHptMTUgMEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwem0tNC41LS41YS41LjUgMCAwIDEgMCAxSDUuNzA3bDIuMTQ3IDIuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhsLTMtM2EuNS41IDAgMCAxIDAtLjcwOGwzLTNhLjUuNSAwIDEgMSAuNzA4LjcwOEw1LjcwNyA3LjVIMTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0xlZnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMSAxMS41YS41LjUgMCAwIDAgLjUuNWgxMS43OTNsLTMuMTQ3IDMuMTQ2YS41LjUgMCAwIDAgLjcwOC43MDhsNC00YS41LjUgMCAwIDAgMC0uNzA4bC00LTRhLjUuNSAwIDAgMC0uNzA4LjcwOEwxMy4yOTMgMTFIMS41YS41LjUgMCAwIDAtLjUuNXptMTQtN2EuNS41IDAgMCAxLS41LjVIMi43MDdsMy4xNDcgMy4xNDZhLjUuNSAwIDEgMS0uNzA4LjcwOGwtNC00YS41LjUgMCAwIDEgMC0uNzA4bDQtNGEuNS41IDAgMSAxIC43MDguNzA4TDIuNzA3IDRIMTQuNWEuNS41IDAgMCAxIC41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dMZWZ0U2hvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyIDhhLjUuNSAwIDAgMS0uNS41SDUuNzA3bDIuMTQ3IDIuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhsLTMtM2EuNS41IDAgMCAxIDAtLjcwOGwzLTNhLjUuNSAwIDEgMSAuNzA4LjcwOEw1LjcwNyA3LjVIMTEuNWEuNS41IDAgMCAxIC41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dMZWZ0U3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMnptLTQuNS02LjVINS43MDdsMi4xNDctMi4xNDZhLjUuNSAwIDEgMC0uNzA4LS43MDhsLTMgM2EuNS41IDAgMCAwIDAgLjcwOGwzIDNhLjUuNSAwIDAgMCAuNzA4LS43MDhMNS43MDcgOC41SDExLjVhLjUuNSAwIDAgMCAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dMZWZ0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNSAyYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYyek0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTExLjUgNS41YS41LjUgMCAwIDEgMCAxSDUuNzA3bDIuMTQ3IDIuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhsLTMtM2EuNS41IDAgMCAxIDAtLjcwOGwzLTNhLjUuNSAwIDEgMSAuNzA4LjcwOEw1LjcwNyA3LjVIMTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE1IDhhLjUuNSAwIDAgMC0uNS0uNUgyLjcwN2wzLjE0Ny0zLjE0NmEuNS41IDAgMSAwLS43MDgtLjcwOGwtNCA0YS41LjUgMCAwIDAgMCAuNzA4bDQgNGEuNS41IDAgMCAwIC43MDgtLjcwOEwyLjcwNyA4LjVIMTQuNUEuNS41IDAgMCAwIDE1IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dSZXBlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNTM0IDdoMy45MzJhLjI1LjI1IDAgMCAxIC4xOTIuNDFsLTEuOTY2IDIuMzZhLjI1LjI1IDAgMCAxLS4zODQgMGwtMS45NjYtMi4zNmEuMjUuMjUgMCAwIDEgLjE5Mi0uNDF6bS0xMSAyaDMuOTMyYS4yNS4yNSAwIDAgMCAuMTkyLS40MUwyLjY5MiA2LjIzYS4yNS4yNSAwIDAgMC0uMzg0IDBMLjM0MiA4LjU5QS4yNS4yNSAwIDAgMCAuNTM0IDl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggM2MtMS41NTIgMC0yLjk0LjcwNy0zLjg1NyAxLjgxOGEuNS41IDAgMSAxLS43NzEtLjYzNkE2LjAwMiA2LjAwMiAwIDAgMSAxMy45MTcgN0gxMi45QTUuMDAyIDUuMDAyIDAgMCAwIDggM3pNMy4xIDlhNS4wMDIgNS4wMDIgMCAwIDAgOC43NTcgMi4xODIuNS41IDAgMSAxIC43NzEuNjM2QTYuMDAyIDYuMDAyIDAgMCAxIDIuMDgzIDlIMy4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93UmV0dXJuTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuNSAxLjVhLjUuNSAwIDAgMSAuNS41djQuOGEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMi43MDdsMy4zNDcgMy4zNDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtNC4yLTQuMmEuNS41IDAgMCAxIDAtLjcwOGw0LTRhLjUuNSAwIDEgMSAuNzA4LjcwOEwyLjcwNyA4LjNIMTIuNUExLjUgMS41IDAgMCAwIDE0IDYuOFYyYS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dSZXR1cm5SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS41IDEuNUEuNS41IDAgMCAwIDEgMnY0LjhhMi41IDIuNSAwIDAgMCAyLjUgMi41aDkuNzkzbC0zLjM0NyAzLjM0NmEuNS41IDAgMCAwIC43MDguNzA4bDQuMi00LjJhLjUuNSAwIDAgMCAwLS43MDhsLTQtNGEuNS41IDAgMCAwLS43MDguNzA4TDEzLjI5MyA4LjNIMy41QTEuNSAxLjUgMCAwIDEgMiA2LjhWMmEuNS41IDAgMCAwLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93UmlnaHRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGE4IDggMCAxIDEgMCAxNkE4IDggMCAwIDEgOCAwek00LjUgNy41YS41LjUgMCAwIDAgMCAxaDUuNzkzbC0yLjE0NyAyLjE0NmEuNS41IDAgMCAwIC43MDguNzA4bDMtM2EuNS41IDAgMCAwIDAtLjcwOGwtMy0zYS41LjUgMCAxIDAtLjcwOC43MDhMMTAuMjkzIDcuNUg0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dSaWdodENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMSA4YTcgNyAwIDEgMCAxNCAwQTcgNyAwIDAgMCAxIDh6bTE1IDBBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNC41IDcuNWEuNS41IDAgMCAwIDAgMWg1Ljc5M2wtMi4xNDcgMi4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwzLTNhLjUuNSAwIDAgMCAwLS43MDhsLTMtM2EuNS41IDAgMSAwLS43MDguNzA4TDEwLjI5MyA3LjVINC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93UmlnaHRTaG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA4YS41LjUgMCAwIDEgLjUtLjVoNS43OTNMOC4xNDYgNS4zNTRhLjUuNSAwIDEgMSAuNzA4LS43MDhsMyAzYS41LjUgMCAwIDEgMCAuNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuMjkzIDguNUg0LjVBLjUuNSAwIDAgMSA0IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dSaWdodFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnYxMnptNC41LTYuNWg1Ljc5M0w4LjE0NiA1LjM1NGEuNS41IDAgMSAxIC43MDgtLjcwOGwzIDNhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDgtLjcwOEwxMC4yOTMgOC41SDQuNWEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1JpZ2h0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNSAyYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYyek0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTQuNSA1LjVhLjUuNSAwIDAgMCAwIDFoNS43OTNsLTIuMTQ3IDIuMTQ2YS41LjUgMCAwIDAgLjcwOC43MDhsMy0zYS41LjUgMCAwIDAgMC0uNzA4bC0zLTNhLjUuNSAwIDEgMC0uNzA4LjcwOEwxMC4yOTMgNy41SDQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xIDhhLjUuNSAwIDAgMSAuNS0uNWgxMS43OTNsLTMuMTQ3LTMuMTQ2YS41LjUgMCAwIDEgLjcwOC0uNzA4bDQgNGEuNS41IDAgMCAxIDAgLjcwOGwtNCA0YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEzLjI5MyA4LjVIMS41QS41LjUgMCAwIDEgMSA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93VXBDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAwIDAgOGE4IDggMCAwIDAgMTYgMHptLTcuNSAzLjVhLjUuNSAwIDAgMS0xIDBWNS43MDdMNS4zNTQgNy44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMy0zYS41LjUgMCAwIDEgLjcwOCAwbDMgM2EuNS41IDAgMCAxLS43MDguNzA4TDguNSA1LjcwN1YxMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93VXBDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgOGE3IDcgMCAxIDAgMTQgMEE3IDcgMCAwIDAgMSA4em0xNSAwQTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6bS03LjUgMy41YS41LjUgMCAwIDEtMSAwVjUuNzA3TDUuMzU0IDcuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDMtM2EuNS41IDAgMCAxIC43MDggMGwzIDNhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgNS43MDdWMTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwTGVmdENpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwem0tNS45MDQgMi44MDNhLjUuNSAwIDEgMCAuNzA3LS43MDdMNi43MDcgNmgyLjc2OGEuNS41IDAgMSAwIDAtMUg1LjVhLjUuNSAwIDAgMC0uNS41djMuOTc1YS41LjUgMCAwIDAgMSAwVjYuNzA3bDQuMDk2IDQuMDk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93VXBMZWZ0Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xIDhhNyA3IDAgMSAwIDE0IDBBNyA3IDAgMCAwIDEgOHptMTUgMEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwem0tNS45MDQgMi44MDNhLjUuNSAwIDEgMCAuNzA3LS43MDdMNi43MDcgNmgyLjc2OGEuNS41IDAgMSAwIDAtMUg1LjVhLjUuNSAwIDAgMC0uNS41djMuOTc1YS41LjUgMCAwIDAgMSAwVjYuNzA3bDQuMDk2IDQuMDk2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93VXBMZWZ0U3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6bTguMDk2IDEwLjgwM0w2IDYuNzA3djIuNzY4YS41LjUgMCAwIDEtMSAwVjUuNWEuNS41IDAgMCAxIC41LS41aDMuOTc1YS41LjUgMCAxIDEgMCAxSDYuNzA3bDQuMDk2IDQuMDk2YS41LjUgMCAxIDEtLjcwNy43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dVcExlZnRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE1IDJhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjJ6TTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMnptMTAuMDk2IDguODAzYS41LjUgMCAxIDAgLjcwNy0uNzA3TDYuNzA3IDZoMi43NjhhLjUuNSAwIDEgMCAwLTFINS41YS41LjUgMCAwIDAtLjUuNXYzLjk3NWEuNS41IDAgMCAwIDEgMFY2LjcwN2w0LjA5NiA0LjA5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAyLjVhLjUuNSAwIDAgMSAuNS0uNWg2YS41LjUgMCAwIDEgMCAxSDMuNzA3bDEwLjE0NyAxMC4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEwzIDMuNzA3VjguNWEuNS41IDAgMCAxLTEgMHYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwUmlnaHRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOGE4IDggMCAxIDAgMTYgMEE4IDggMCAwIDAgMCA4em01LjkwNCAyLjgwM2EuNS41IDAgMSAxLS43MDctLjcwN0w5LjI5MyA2SDYuNTI1YS41LjUgMCAxIDEgMC0xSDEwLjVhLjUuNSAwIDAgMSAuNS41djMuOTc1YS41LjUgMCAwIDEtMSAwVjYuNzA3bC00LjA5NiA0LjA5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwUmlnaHRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgOGE3IDcgMCAxIDAgMTQgMEE3IDcgMCAwIDAgMSA4em0xNSAwQTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTUuODU0IDEwLjgwM2EuNS41IDAgMSAxLS43MDgtLjcwN0w5LjI0MyA2SDYuNDc1YS41LjUgMCAxIDEgMC0xaDMuOTc1YS41LjUgMCAwIDEgLjUuNXYzLjk3NWEuNS41IDAgMSAxLTEgMFY2LjcwN2wtNC4wOTYgNC4wOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dVcFJpZ2h0U3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAwYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDEyek01LjkwNCAxMC44MDMgMTAgNi43MDd2Mi43NjhhLjUuNSAwIDAgMCAxIDBWNS41YS41LjUgMCAwIDAtLjUtLjVINi41MjVhLjUuNSAwIDEgMCAwIDFoMi43NjhsLTQuMDk2IDQuMDk2YS41LjUgMCAwIDAgLjcwNy43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dVcFJpZ2h0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNSAyYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYyek0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTUuODU0IDguODAzYS41LjUgMCAxIDEtLjcwOC0uNzA3TDkuMjQzIDZINi40NzVhLjUuNSAwIDEgMSAwLTFoMy45NzVhLjUuNSAwIDAgMSAuNS41djMuOTc1YS41LjUgMCAxIDEtMSAwVjYuNzA3bC00LjA5NiA0LjA5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0IDIuNWEuNS41IDAgMCAwLS41LS41aC02YS41LjUgMCAwIDAgMCAxaDQuNzkzTDIuMTQ2IDEzLjE0NmEuNS41IDAgMCAwIC43MDguNzA4TDEzIDMuNzA3VjguNWEuNS41IDAgMCAwIDEgMHYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwU2hvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTJhLjUuNSAwIDAgMCAuNS0uNVY1LjcwN2wyLjE0NiAyLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtMy0zYS41LjUgMCAwIDAtLjcwOCAwbC0zIDNhLjUuNSAwIDEgMCAuNzA4LjcwOEw3LjUgNS43MDdWMTEuNWEuNS41IDAgMCAwIC41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dVcFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMnptNi41LTQuNVY1LjcwN2wyLjE0NiAyLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtMy0zYS41LjUgMCAwIDAtLjcwOCAwbC0zIDNhLjUuNSAwIDEgMCAuNzA4LjcwOEw3LjUgNS43MDdWMTEuNWEuNS41IDAgMCAwIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd1VwU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNSAyYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYyek0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTguNSA5LjVhLjUuNSAwIDAgMS0xIDBWNS43MDdMNS4zNTQgNy44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMy0zYS41LjUgMCAwIDEgLjcwOCAwbDMgM2EuNS41IDAgMCAxLS43MDguNzA4TDguNSA1LjcwN1YxMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Fycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTVhLjUuNSAwIDAgMCAuNS0uNVYyLjcwN2wzLjE0NiAzLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtNC00YS41LjUgMCAwIDAtLjcwOCAwbC00IDRhLjUuNSAwIDEgMCAuNzA4LjcwOEw3LjUgMi43MDdWMTQuNWEuNS41IDAgMCAwIC41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dzQW5nbGVDb250cmFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNLjE3MiAxNS44MjhhLjUuNSAwIDAgMCAuNzA3IDBsNC4wOTYtNC4wOTZWMTQuNWEuNS41IDAgMSAwIDEgMHYtMy45NzVhLjUuNSAwIDAgMC0uNS0uNUgxLjVhLjUuNSAwIDAgMCAwIDFoMi43NjhMLjE3MiAxNS4xMjFhLjUuNSAwIDAgMCAwIC43MDd6TTE1LjgyOC4xNzJhLjUuNSAwIDAgMC0uNzA3IDBsLTQuMDk2IDQuMDk2VjEuNWEuNS41IDAgMSAwLTEgMHYzLjk3NWEuNS41IDAgMCAwIC41LjVIMTQuNWEuNS41IDAgMCAwIDAtMWgtMi43NjhMMTUuODI4Ljg3OWEuNS41IDAgMCAwIDAtLjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd3NBbmdsZUV4cGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS44MjggMTAuMTcyYS41LjUgMCAwIDAtLjcwNyAwbC00LjA5NiA0LjA5NlYxMS41YS41LjUgMCAwIDAtMSAwdjMuOTc1YS41LjUgMCAwIDAgLjUuNUg0LjVhLjUuNSAwIDAgMCAwLTFIMS43MzJsNC4wOTYtNC4wOTZhLjUuNSAwIDAgMCAwLS43MDd6bTQuMzQ0LTQuMzQ0YS41LjUgMCAwIDAgLjcwNyAwbDQuMDk2LTQuMDk2VjQuNWEuNS41IDAgMSAwIDEgMFYuNTI1YS41LjUgMCAwIDAtLjUtLjVIMTEuNWEuNS41IDAgMCAwIDAgMWgyLjc2OGwtNC4wOTYgNC4wOTZhLjUuNSAwIDAgMCAwIC43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dzQ29sbGFwc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgOGEuNS41IDAgMCAxIC41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM0EuNS41IDAgMCAxIDEgOHptNy04YS41LjUgMCAwIDEgLjUuNXYzLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4IDBsLTItMmEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgNC4yOTNWLjVBLjUuNSAwIDAgMSA4IDB6bS0uNSAxMS43MDctMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDIgMmEuNS41IDAgMCAxLS43MDguNzA4TDguNSAxMS43MDdWMTUuNWEuNS41IDAgMCAxLTEgMHYtMy43OTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXJyb3dzRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xIDhhLjUuNSAwIDAgMSAuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNBLjUuNSAwIDAgMSAxIDh6TTcuNjQ2LjE0NmEuNS41IDAgMCAxIC43MDggMGwyIDJhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgMS43MDdWNS41YS41LjUgMCAwIDEtMSAwVjEuNzA3TDYuMzU0IDIuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDItMnpNOCAxMGEuNS41IDAgMCAxIC41LjV2My43OTNsMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtMiAyYS41LjUgMCAwIDEtLjcwOCAwbC0yLTJhLjUuNSAwIDAgMSAuNzA4LS43MDhMNy41IDE0LjI5M1YxMC41QS41LjUgMCAwIDEgOCAxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd3NGdWxsc2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjgyOCAxMC4xNzJhLjUuNSAwIDAgMC0uNzA3IDBsLTQuMDk2IDQuMDk2VjExLjVhLjUuNSAwIDAgMC0xIDB2My45NzVhLjUuNSAwIDAgMCAuNS41SDQuNWEuNS41IDAgMCAwIDAtMUgxLjczMmw0LjA5Ni00LjA5NmEuNS41IDAgMCAwIDAtLjcwN3ptNC4zNDQgMGEuNS41IDAgMCAxIC43MDcgMGw0LjA5NiA0LjA5NlYxMS41YS41LjUgMCAxIDEgMSAwdjMuOTc1YS41LjUgMCAwIDEtLjUuNUgxMS41YS41LjUgMCAwIDEgMC0xaDIuNzY4bC00LjA5Ni00LjA5NmEuNS41IDAgMCAxIDAtLjcwN3ptMC00LjM0NGEuNS41IDAgMCAwIC43MDcgMGw0LjA5Ni00LjA5NlY0LjVhLjUuNSAwIDEgMCAxIDBWLjUyNWEuNS41IDAgMCAwLS41LS41SDExLjVhLjUuNSAwIDAgMCAwIDFoMi43NjhsLTQuMDk2IDQuMDk2YS41LjUgMCAwIDAgMCAuNzA3em0tNC4zNDQgMGEuNS41IDAgMCAxLS43MDcgMEwxLjAyNSAxLjczMlY0LjVhLjUuNSAwIDAgMS0xIDBWLjUyNWEuNS41IDAgMCAxIC41LS41SDQuNWEuNS41IDAgMCAxIDAgMUgxLjczMmw0LjA5NiA0LjA5NmEuNS41IDAgMCAxIDAgLjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBcnJvd3NNb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjY0Ni4xNDZhLjUuNSAwIDAgMSAuNzA4IDBsMiAyYS41LjUgMCAwIDEtLjcwOC43MDhMOC41IDEuNzA3VjUuNWEuNS41IDAgMCAxLTEgMFYxLjcwN0w2LjM1NCAyLjg1NGEuNS41IDAgMSAxLS43MDgtLjcwOGwyLTJ6TTggMTBhLjUuNSAwIDAgMSAuNS41djMuNzkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTIgMmEuNS41IDAgMCAxLS43MDggMGwtMi0yYS41LjUgMCAwIDEgLjcwOC0uNzA4TDcuNSAxNC4yOTNWMTAuNUEuNS41IDAgMCAxIDggMTB6TS4xNDYgOC4zNTRhLjUuNSAwIDAgMSAwLS43MDhsMi0yYS41LjUgMCAxIDEgLjcwOC43MDhMMS43MDcgNy41SDUuNWEuNS41IDAgMCAxIDAgMUgxLjcwN2wxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4bC0yLTJ6TTEwIDhhLjUuNSAwIDAgMSAuNS0uNWgzLjc5M2wtMS4xNDctMS4xNDZhLjUuNSAwIDAgMSAuNzA4LS43MDhsMiAyYS41LjUgMCAwIDEgMCAuNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTQuMjkzIDguNUgxMC41QS41LjUgMCAwIDEgMTAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBc3BlY3RSYXRpb0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMi41di05QTEuNSAxLjUgMCAwIDEgMS41IDJoMTNBMS41IDEuNSAwIDAgMSAxNiAzLjV2OWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMCAxMi41ek0yLjUgNGEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMFY1aDIuNWEuNS41IDAgMCAwIDAtMWgtM3ptMTEgOGEuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtMSAwVjExaC0yLjVhLjUuNSAwIDAgMCAwIDFoM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBc3BlY3RSYXRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMuNUExLjUgMS41IDAgMCAxIDEuNSAyaDEzQTEuNSAxLjUgMCAwIDEgMTYgMy41djlhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDAgMTIuNXYtOXpNMS41IDNhLjUuNSAwIDAgMC0uNS41djlhLjUuNSAwIDAgMCAuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0LjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxSDN2Mi41YS41LjUgMCAwIDEtMSAwdi0zem0xMiA3YS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxIDAtMUgxM1Y4LjVhLjUuNSAwIDAgMSAxIDB2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNBc3RlcmlzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhMSAxIDAgMCAxIDEgMXY1LjI2OGw0LjU2Mi0yLjYzNGExIDEgMCAxIDEgMSAxLjczMkwxMCA4bDQuNTYyIDIuNjM0YTEgMSAwIDEgMS0xIDEuNzMyTDkgOS43MzJWMTVhMSAxIDAgMSAxLTIgMFY5LjczMmwtNC41NjIgMi42MzRhMSAxIDAgMSAxLTEtMS43MzJMNiA4IDEuNDM4IDUuMzY2YTEgMSAwIDAgMSAxLTEuNzMyTDcgNi4yNjhWMWExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjEwNiA3LjIyMmMwLTIuOTY3LTIuMjQ5LTUuMDMyLTUuNDgyLTUuMDMyLTMuMzUgMC01LjY0NiAyLjMxOC01LjY0NiA1LjcwMiAwIDMuNDkzIDIuMjM1IDUuNzA4IDUuNzYyIDUuNzA4Ljg2MiAwIDEuNjg5LS4xMjMgMi4zMDQtLjMzNXYtLjg2MmMtLjQzLjE5OS0xLjM1NC4zMjgtMi4yOS4zMjgtMi45MjYgMC00LjgxMy0xLjg4LTQuODEzLTQuNzk4IDAtMi44NDQgMS45MjEtNC44ODEgNC41OTQtNC44ODEgMi43MzUgMCA0LjYwOCAxLjY4OCA0LjYwOCA0LjE1NiAwIDEuNjgyLS41NTQgMi43NjktMS40MTYgMi43NjktLjQ5MiAwLS43NzItLjI4LS43NzItLjc2VjUuMjA2SDguOTIzdi44MzRoLS4xMWMtLjI2Ni0uNTk1LS44ODEtLjk2NC0xLjYtLjk2NC0xLjQgMC0yLjM3OCAxLjE2Mi0yLjM3OCAyLjgyMyAwIDEuNzM3Ljk1NyAyLjkwNiAyLjM3OSAyLjkwNi44IDAgMS40MTUtLjM5IDEuNzA5LTEuMDg3aC4xMWMuMDgxLjY3LjcwMyAxLjE0OCAxLjUwMyAxLjE0OCAxLjU3MiAwIDIuNTctMS40MTUgMi41Ny0zLjY0M3ptLTcuMTc3LjcwNGMwLTEuMTk3LjU0LTEuOTA3IDEuNDU2LTEuOTA3LjkzIDAgMS41MjQuNzM4IDEuNTI0IDEuOTA3UzguMzA4IDkuODQgNy4zNzEgOS44NGMtLjg5NSAwLTEuNDQyLS43MjUtMS40NDItMS45MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQXdhcmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggMCAxLjY2OS44NjQgMS44NTguMjgyLjg0MiAxLjY4IDEuMzM3IDEuMzJMMTMuNCA2bC4zMDYgMS44NTQtMS4zMzcgMS4zMi0uODQyIDEuNjgtMS44NTguMjgyTDggMTJsLTEuNjY5LS44NjQtMS44NTgtLjI4Mi0uODQyLTEuNjgtMS4zMzctMS4zMkwyLjYgNmwtLjMwNi0xLjg1NCAxLjMzNy0xLjMyLjg0Mi0xLjY4TDYuMzMxLjg2NCA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMS43OTRWMTZsNC0xIDQgMXYtNC4yMDZsLTIuMDE4LjMwNkw4IDEzLjEyNiA2LjAxOCAxMi4xIDQgMTEuNzk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0F3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNjY5Ljg2NCA4IDAgNi4zMzEuODY0bC0xLjg1OC4yODItLjg0MiAxLjY4LTEuMzM3IDEuMzJMMi42IDZsLS4zMDYgMS44NTQgMS4zMzcgMS4zMi44NDIgMS42OCAxLjg1OC4yODJMOCAxMmwxLjY2OS0uODY0IDEuODU4LS4yODIuODQyLTEuNjggMS4zMzctMS4zMkwxMy40IDZsLjMwNi0xLjg1NC0xLjMzNy0xLjMyLS44NDItMS42OEw5LjY2OS44NjR6bTEuMTk2IDEuMTkzLjY4NCAxLjM2NSAxLjA4NiAxLjA3MkwxMi4zODcgNmwuMjQ4IDEuNTA2LTEuMDg2IDEuMDcyLS42ODQgMS4zNjUtMS41MS4yMjlMOCAxMC44NzRsLTEuMzU1LS43MDItMS41MS0uMjI5LS42ODQtMS4zNjUtMS4wODYtMS4wNzJMMy42MTQgNmwtLjI1LTEuNTA2IDEuMDg3LTEuMDcyLjY4NC0xLjM2NSAxLjUxLS4yMjlMOCAxLjEyNmwxLjM1Ni43MDIgMS41MDkuMjI5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTEuNzk0VjE2bDQtMSA0IDF2LTQuMjA2bC0yLjAxOC4zMDZMOCAxMy4xMjYgNi4wMTggMTIuMSA0IDExLjc5NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYyaDJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0ySDJhMiAyIDAgMCAxLTItMlYyem0yLTFhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhY2tzcGFjZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjgzIDNhMiAyIDAgMCAwLTItMmgtNy4wOGEyIDIgMCAwIDAtMS41MTkuNjk4TC4yNDEgNy4zNWExIDEgMCAwIDAgMCAxLjMwMmw0Ljg0MyA1LjY1QTIgMiAwIDAgMCA2LjYwMyAxNWg3LjA4YTIgMiAwIDAgMCAyLTJWM3pNNS44MjkgNS44NTRhLjUuNSAwIDEgMSAuNzA3LS43MDhsMi4xNDcgMi4xNDcgMi4xNDYtMi4xNDdhLjUuNSAwIDEgMSAuNzA3LjcwOEw5LjM5IDhsMi4xNDYgMi4xNDZhLjUuNSAwIDAgMS0uNzA3LjcwOEw4LjY4MyA4LjcwN2wtMi4xNDcgMi4xNDdhLjUuNSAwIDAgMS0uNzA3LS43MDhMNy45NzYgOCA1LjgyOSA1Ljg1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWNrc3BhY2VSZXZlcnNlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDNhMiAyIDAgMCAxIDItMmg3LjA4YTIgMiAwIDAgMSAxLjUxOS42OThsNC44NDMgNS42NTFhMSAxIDAgMCAxIDAgMS4zMDJMMTAuNiAxNC4zYTIgMiAwIDAgMS0xLjUyLjdIMmEyIDIgMCAwIDEtMi0yVjN6bTkuODU0IDIuODU0YS41LjUgMCAwIDAtLjcwOC0uNzA4TDcgNy4yOTMgNC44NTQgNS4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOEw2LjI5MyA4bC0yLjE0NyAyLjE0NmEuNS41IDAgMCAwIC43MDguNzA4TDcgOC43MDdsMi4xNDYgMi4xNDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMNy43MDcgOGwyLjE0Ny0yLjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWNrc3BhY2VSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODU0IDUuMTQ2YS41LjUgMCAwIDEgMCAuNzA4TDcuNzA3IDhsMi4xNDcgMi4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw3IDguNzA3bC0yLjE0NiAyLjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw2LjI5MyA4IDQuMTQ2IDUuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcgNy4yOTNsMi4xNDYtMi4xNDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmg3LjA4YTIgMiAwIDAgMCAxLjUxOS0uNjk4bDQuODQzLTUuNjUxYTEgMSAwIDAgMCAwLTEuMzAyTDEwLjYgMS43QTIgMiAwIDAgMCA5LjA4IDFIMnptNy4wOCAxYTEgMSAwIDAgMSAuNzYuMzVMMTQuNjgyIDhsLTQuODQ0IDUuNjVhMSAxIDAgMCAxLS43NTkuMzVIMmExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWg3LjA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhY2tzcGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjgzIDUuMTQ2YS41LjUgMCAwIDAgMCAuNzA4TDcuOTc1IDhsLTIuMTQ3IDIuMTQ2YS41LjUgMCAwIDAgLjcwNy43MDhsMi4xNDctMi4xNDcgMi4xNDYgMi4xNDdhLjUuNSAwIDAgMCAuNzA3LS43MDhMOS4zOSA4bDIuMTQ2LTIuMTQ2YS41LjUgMCAwIDAtLjcwNy0uNzA4TDguNjgzIDcuMjkzIDYuNTM2IDUuMTQ2YS41LjUgMCAwIDAtLjcwNyAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjY4MyAxYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtNy4wOGEyIDIgMCAwIDEtMS41MTktLjY5OEwuMjQxIDguNjVhMSAxIDAgMCAxIDAtMS4zMDJMNS4wODQgMS43QTIgMiAwIDAgMSA2LjYwMyAxaDcuMDh6bS03LjA4IDFhMSAxIDAgMCAwLS43Ni4zNUwxIDhsNC44NDQgNS42NWExIDEgMCAwIDAgLjc1OS4zNWg3LjA4YTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xaC03LjA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlM0RGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjE1NyA1Ljk2OGgtLjg0NHY0LjA2aC44NDRjMS4xMTYgMCAxLjYyMS0uNjY3IDEuNjIxLTIuMDIgMC0xLjM1NC0uNTEtMi4wNC0xLjYyMS0yLjA0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY0em01LjE4NCA0LjM2OGMuNjQ2IDAgMS4wNTUuMzc4IDEuMDYuOS4wMDguNTM3LS40MjcuOTE5LTEuMDg2LjkxOS0uNTk4LS4wMDQtMS4wMzctLjMyNS0xLjA2OC0uNzU2SDNjLjAzLjkxNC43OTEgMS42ODggMi4xNTMgMS42ODggMS4yNCAwIDIuMjg1LS42NiAyLjI3Mi0xLjc5OC0uMDEzLS45NTMtLjc0Ny0xLjM4LTEuMjkyLTEuNDMydi0uMDYyYy40NC0uMDcgMS4xMjUtLjUyNyAxLjEwOC0xLjM3NS0uMDEzLS45MDYtLjgtMS41Ny0yLjA1My0xLjU2NS0xLjMxLjAwNS0yLjA0My43MzQtMi4wNzQgMS42N2gxLjEwM2MuMDIyLS4zOTEuMzgzLS43NTEuOTM2LS43NTEuNTMyIDAgLjkyOC4zMy45MjguODEzLjAwNC40NzktLjM4My44MzUtLjkyOC44MzVoLS42MzJ2LjkxNGguNjYzek04LjEyNiAxMWgyLjE4OUMxMi4xMjUgMTEgMTMgOS44OTMgMTMgNy45ODVjMC0xLjg5NC0uODYxLTIuOTg0LTIuNjg1LTIuOTg0SDguMTI2VjExelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlM0QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41MiA4LjM2OGguNjY0Yy42NDYgMCAxLjA1NS4zNzggMS4wNi45LjAwOC41MzctLjQyNy45MTktMS4wODYuOTE5LS41OTgtLjAwNC0xLjAzNy0uMzI1LTEuMDY4LS43NTZIM2MuMDMuOTE0Ljc5MSAxLjY4OCAyLjE1MyAxLjY4OCAxLjI0IDAgMi4yODUtLjY2IDIuMjcyLTEuNzk4LS4wMTMtLjk1My0uNzQ3LTEuMzgtMS4yOTItMS40MzJ2LS4wNjJjLjQ0LS4wNyAxLjEyNS0uNTI3IDEuMTA4LTEuMzc1LS4wMTMtLjkwNi0uOC0xLjU3LTIuMDUzLTEuNTY1LTEuMzEuMDA1LTIuMDQzLjczNC0yLjA3NCAxLjY3aDEuMTAzYy4wMjItLjM5MS4zODMtLjc1MS45MzYtLjc1MS41MzIgMCAuOTI4LjMzLjkyOC44MTMuMDA0LjQ3OS0uMzgzLjgzNS0uOTI4LjgzNWgtLjYzMnYuOTE0em0zLjYwNi0zLjM2N1YxMWgyLjE4OUMxMi4xMjUgMTEgMTMgOS44OTMgMTMgNy45ODVjMC0xLjg5NC0uODYxLTIuOTg0LTIuNjg1LTIuOTg0SDguMTI2em0xLjE4Ny45NjdoLjg0NGMxLjExMiAwIDEuNjIxLjY4NiAxLjYyMSAyLjA0IDAgMS4zNTMtLjUwNSAyLjAyLTEuNjIxIDIuMDJoLS44NDR2LTQuMDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgM2ExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDEyek0yIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZTRLRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjU3NyA4Ljl2LjAzaDEuODI4VjUuODk4aC0uMDYyYTQ2Ljc4MSA0Ni43ODEgMCAwIDAtMS43NjYgMy4wMDF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6bTIuMzcyIDMuNzE1LjQzNS0uNzE0aDEuNzF2My45M2guNzMzdi45NTdoLS43MzNWMTFINS40MDVWOS44ODhIMi41di0uOTcxYy41NzQtMS4wNzcgMS4yMjUtMi4xNDIgMS44NzItMy4yMDJ6bTcuNzMtLjcxNGgxLjMwNmwtMi4xNCAyLjU4NEwxMy41IDExaC0xLjQyOGwtMS42NzktMi42MjQtLjYxNS43VjExSDguNTlWNS4wMDFoMS4xODd2Mi42ODZoLjA1N0wxMi4xMDIgNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZTRLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuODA3IDUuMDAxQzQuMDIxIDYuMjk4IDMuMjAzIDcuNiAyLjUgOC45MTd2Ljk3MWgyLjkwNVYxMWgxLjExMlY5Ljg4OGguNzMzVjguOTNoLS43MzNWNS4wMDFoLTEuNzF6bS0xLjIzIDMuOTN2LS4wMzJhNDYuNzgxIDQ2Ljc4MSAwIDAgMSAxLjc2Ni0zLjAwMWguMDYyVjguOTNIMy41Nzd6bTkuODMxLTMuOTNoLTEuMzA2TDkuODM1IDcuNjg3aC0uMDU3VjVIOC41OXY2aDEuMTg3VjkuMDc1bC42MTUtLjY5OUwxMi4wNzIgMTFIMTMuNWwtMi4yMzItMy40MTUgMi4xNC0yLjU4NHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTJ6TTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlOEtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOSA2LjYwNWMwIC41MS40MDUuODY2Ljk1Ljg2Ni41NDUgMCAuOTQ1LS4zNTYuOTQ1LS44NjZzLS40LS44NTItLjk0NS0uODUyYy0uNTQ1IDAtLjk1LjM0My0uOTUuODUyem0tLjE5MiAyLjY2OGMwIC41ODkuNDkyLjk4NCAxLjE0Mi45ODQuNjQ2IDAgMS4xNDMtLjM5NSAxLjE0My0uOTg0UzUuNDk2IDguMjggNC44NSA4LjI4Yy0uNjUgMC0xLjE0Mi40MDQtMS4xNDIuOTkzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem01LjE3IDcuMzQ4YzAgMS4wNDEtLjkyNyAxLjc2Ni0yLjMzMyAxLjc2Ni0xLjQwNiAwLTIuMzEyLS43Mi0yLjMxMi0xLjc2MiAwLS45NTQuNzEyLTEuMzg0IDEuMjU3LTEuNDk0di0uMDUzYy0uNTEtLjE1NC0xLjAyLS41NTgtMS4wMi0xLjMzMSAwLS45MTQuODMxLTEuNTg3IDIuMDg4LTEuNTg3IDEuMjUzIDAgMi4wODMuNjczIDIuMDgzIDEuNTg3IDAgLjc4Mi0uNTIzIDEuMTgyLTEuMDIgMS4zMzF2LjA1M2MuNTQ1LjExIDEuMjU3LjU0NSAxLjI1NyAxLjQ5ek0xMi4xMDIgNWgxLjMwNmwtMi4xNCAyLjU4NCAyLjIzMiAzLjQxNWgtMS40MjhsLTEuNjc5LTIuNjI0LS42MTUuNjk5djEuOTI1SDguNTlWNWgxLjE4N3YyLjY4NWguMDU3TDEyLjEwMiA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlOEsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC44MzcgMTEuMTE0YzEuNDA2IDAgMi4zMzMtLjcyNSAyLjMzMy0xLjc2NiAwLS45NDUtLjcxMi0xLjM4LTEuMjU2LTEuNDl2LS4wNTNjLjQ5Ni0uMTUgMS4wMi0uNTUgMS4wMi0xLjMzMSAwLS45MTQtLjgzMS0xLjU4Ny0yLjA4NC0xLjU4Ny0xLjI1NyAwLTIuMDg3LjY3My0yLjA4NyAxLjU4NyAwIC43NzMuNTEgMS4xNzcgMS4wMiAxLjMzMXYuMDUzYy0uNTQ2LjExLTEuMjU4LjU0LTEuMjU4IDEuNDk0IDAgMS4wNDIuOTA2IDEuNzYyIDIuMzEyIDEuNzYyem0uMDEzLTMuNjQzYy0uNTQ1IDAtLjk1LS4zNTYtLjk1LS44NjZzLjQwNS0uODUyLjk1LS44NTJjLjU0NSAwIC45NDUuMzQzLjk0NS44NTIgMCAuNTEtLjQuODY2LS45NDUuODY2em0wIDIuNzg2Yy0uNjUgMC0xLjE0Mi0uMzk1LTEuMTQyLS45ODRTNC4yIDguMjggNC44NSA4LjI4Yy42NDYgMCAxLjE0My40MDQgMS4xNDMuOTkzcy0uNDk3Ljk4NC0xLjE0My45ODR6TTEzLjQwOCA1aC0xLjMwNkw5LjgzNSA3LjY4NWgtLjA1N1Y1SDguNTl2NS45OThoMS4xODdWOS4wNzVsLjYxNS0uNjk5IDEuNjc5IDIuNjIzSDEzLjVsLTIuMjMyLTMuNDE0TDEzLjQwOCA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDNhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMnpNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFkZ2VBZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMzUgOC4zMzdjMC0uNjk5LS40Mi0xLjEzOC0xLjAwMS0xLjEzOC0uNTg0IDAtLjk1NC40NDQtLjk1NCAxLjIzOXYuNDUzYzAgLjguMzc0IDEuMjQ4Ljk3MiAxLjI0OC41ODggMCAuOTg0LS40NC45ODQtMS4ydi0uNjAyem0tNS40MTMuMjM3LS43MzQtMi40MjZINS4xNWwtLjczNCAyLjQyNmgxLjUyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem02LjIwOSA2LjMyYzAtMS4yOC42OTQtMi4wNDQgMS43NTMtMi4wNDQuNjU1IDAgMS4xNTYuMjk0IDEuMzM2Ljc2OWguMDUzdi0yLjM2aDEuMTZWMTFoLTEuMTM4di0uNzQ3aC0uMDU3Yy0uMTQ1LjQ3NC0uNjkuODA0LTEuMzY3LjgwNC0xLjA1NSAwLTEuNzQtLjc2NC0xLjc0LTIuMDQzdi0uNjk1em0tNC4wNCAxLjEzOEwzLjcgMTFIMi41bDIuMDEzLTUuOTk5SDUuOUw3LjkwNSAxMUg2LjY0NGwtLjQ3LTEuNTQySDQuMTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFkZ2VBZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjcgMTEgLjQ3LTEuNTQyaDIuMDA0TDYuNjQ0IDExaDEuMjYxTDUuOTAxIDUuMDAxSDQuNTEzTDIuNSAxMWgxLjJ6bTEuNTAzLTQuODUyLjczNCAyLjQyNkg0LjQxNmwuNzM0LTIuNDI2aC4wNTN6bTQuNzU5LjEyOGMtMS4wNTkgMC0xLjc1My43NjUtMS43NTMgMi4wNDN2LjY5NWMwIDEuMjc5LjY4NSAyLjA0MyAxLjc0IDIuMDQzLjY3NyAwIDEuMjIyLS4zMyAxLjM2Ny0uODA0aC4wNTdWMTFoMS4xMzhWNC42ODVoLTEuMTZ2Mi4zNmgtLjA1M2MtLjE4LS40NzUtLjY4LS43Ny0xLjMzNi0uNzd6bS4zODcuOTIzYy41OCAwIDEuMDAyLjQ0IDEuMDAyIDEuMTM4di42MDJjMCAuNzYtLjM5NiAxLjItLjk4NCAxLjItLjU5OCAwLS45NzItLjQ0OS0uOTcyLTEuMjQ4di0uNDUzYzAtLjc5NS4zNy0xLjI0Ljk1NC0xLjI0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDNhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMnpNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFkZ2VBckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi4wMzEgOC41NzQtLjczNC0yLjQyNmgtLjA1Mkw0LjUxIDguNTc0aDEuNTJ6bTMuNjQyLTIuNjQxdjEuOTM4aDEuMDMzYy42NiAwIDEuMDY4LS4zMTYgMS4wNjgtLjk1IDAtLjY0LS40MjItLjk4OC0xLjA1LS45ODhoLTEuMDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTQuMjY1IDUuNDU4aDIuMDA0TDYuNzM5IDExSDhMNS45OTYgNS4wMDFINC42MDdMMi41OTUgMTFoMS4ybC40Ny0xLjU0MnpNOC41IDV2NmgxLjE3M1Y4Ljc2M2gxLjA2NEwxMS43ODcgMTFoMS4zMjdMMTEuOTEgOC41ODNDMTIuNDU1IDguMzczIDEzIDcuNzc5IDEzIDYuOWMwLTEuMTQ3LS43NzMtMS45LTIuMTA1LTEuOUg4LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFkZ2VBciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjc5NCAxMSAuNDctMS41NDJINi4yN0w2LjczOSAxMUg4TDUuOTk2IDUuMDAxSDQuNjA3TDIuNTk1IDExaDEuMnptMS41MDMtNC44NTIuNzM0IDIuNDI2aC0xLjUybC43MzQtMi40MjZoLjA1MnptNS41OTgtMS4xNDdIOC41VjExaDEuMTczVjguNzYzaDEuMDY0TDExLjc4NyAxMWgxLjMyN0wxMS45MSA4LjU4M0MxMi40NTUgOC4zNzMgMTMgNy43NzkgMTMgNi45YzAtMS4xNDctLjc3My0xLjktMi4xMDUtMS45em0tMS4yMjIgMi44N1Y1LjkzM2gxLjA1Yy42MyAwIDEuMDUuMzQ3IDEuMDUuOTg5IDAgLjYzMy0uNDA4Ljk1LTEuMDY3Ljk1SDkuNjczelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDNhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMnpNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFkZ2VDY0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6bTMuMDI3IDQuMDAyYy0uODMgMC0xLjMxOS42NDItMS4zMTkgMS43NTN2Ljc0M2MwIDEuMTA3LjQ4IDEuNzI3IDEuMzE5IDEuNzI3LjY5IDAgMS4xMzgtLjQzNSAxLjE4Ni0xLjA1SDcuMzZ2LjExNGMtLjA1NyAxLjE0Ny0xLjAyOCAxLjkzOC0yLjM0MiAxLjkzOC0xLjYxMyAwLTIuNTE4LTEuMDI4LTIuNTE4LTIuNzI5di0uNzQ3QzIuNSA2LjA1MSAzLjQxNCA1IDUuMDE4IDVjMS4zMTggMCAyLjI5LjgxMyAyLjM0MiAydi4xMUg2LjIxM2MtLjA0OC0uNjM4LS41MDUtMS4xMDgtMS4xODYtMS4xMDh6bTYuMTQgMGMtLjgzMSAwLTEuMzE5LjY0Mi0xLjMxOSAxLjc1M3YuNzQzYzAgMS4xMDcuNDggMS43MjcgMS4zMTggMS43MjcuNjkgMCAxLjEzOS0uNDM1IDEuMTg3LTEuMDVIMTMuNXYuMTE0Yy0uMDU3IDEuMTQ3LTEuMDI4IDEuOTM4LTIuMzQyIDEuOTM4LTEuNjEzIDAtMi41MTgtMS4wMjgtMi41MTgtMi43Mjl2LS43NDdjMC0xLjcuOTE0LTIuNzUxIDIuNTE4LTIuNzUxIDEuMzE4IDAgMi4yOS44MTMgMi4zNDIgMnYuMTFoLTEuMTQ3Yy0uMDQ4LS42MzgtLjUwNS0xLjEwOC0xLjE4Ny0xLjEwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZUNjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNzA4IDcuNzU1YzAtMS4xMTEuNDg4LTEuNzUzIDEuMzE5LTEuNzUzLjY4MSAwIDEuMTM4LjQ3IDEuMTg2IDEuMTA3SDcuMzZWN2MtLjA1Mi0xLjE4Ni0xLjAyNC0yLTIuMzQyLTJDMy40MTQgNSAyLjUgNi4wNSAyLjUgNy43NTF2Ljc0N2MwIDEuNy45MDUgMi43MyAyLjUxOCAyLjczIDEuMzE0IDAgMi4yODUtLjc5MiAyLjM0Mi0xLjkzOXYtLjExNEg2LjIxM2MtLjA0OC42MTUtLjQ5NiAxLjA1LTEuMTg2IDEuMDUtLjg0IDAtMS4zMTktLjYyLTEuMzE5LTEuNzI3di0uNzQzem02LjE0IDBjMC0xLjExMS40ODgtMS43NTMgMS4zMTgtMS43NTMuNjgyIDAgMS4xMzkuNDcgMS4xODcgMS4xMDdIMTMuNVY3Yy0uMDUzLTEuMTg2LTEuMDI0LTItMi4zNDItMkM5LjU1NCA1IDguNjQgNi4wNSA4LjY0IDcuNzUxdi43NDdjMCAxLjcuOTA1IDIuNzMgMi41MTggMi43MyAxLjMxNCAwIDIuMjg1LS43OTIgMi4zNDItMS45Mzl2LS4xMTRoLTEuMTQ3Yy0uMDQ4LjYxNS0uNDk3IDEuMDUtMS4xODcgMS4wNS0uODM5IDAtMS4zMTgtLjYyLTEuMzE4LTEuNzI3di0uNzQzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDNhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMnpNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFkZ2VIZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNTMgNS45NjhoLS44NDN2NC4wNmguODQzYzEuMTE3IDAgMS42MjItLjY2NyAxLjYyMi0yLjAyIDAtMS4zNTQtLjUxLTIuMDQtMS42MjItMi4wNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptNS4zOTYgMy4wMDFWMTFINi4yMDlWOC40M0gzLjY4N1YxMUgyLjVWNS4wMDFoMS4xODd2Mi40NGgyLjUyMlY1aDEuMTg3ek04LjUgMTFWNS4wMDFoMi4xODhjMS44MjQgMCAyLjY4NSAxLjA5IDIuNjg1IDIuOTg0QzEzLjM3MyA5Ljg5MyAxMi41IDExIDEwLjY5IDExSDguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZUhkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMzk2IDExVjUuMDAxSDYuMjA5djIuNDRIMy42ODdWNUgyLjV2NmgxLjE4N1Y4LjQzaDIuNTIyVjExaDEuMTg3ek04LjUgNS4wMDFWMTFoMi4xODhjMS44MTEgMCAyLjY4NS0xLjEwNyAyLjY4NS0zLjAxNSAwLTEuODk0LS44Ni0yLjk4NC0yLjY4NC0yLjk4NEg4LjV6bTEuMTg3Ljk2N2guODQzYzEuMTEyIDAgMS42MjIuNjg2IDEuNjIyIDIuMDQgMCAxLjM1My0uNTA1IDIuMDItMS42MjIgMi4wMmgtLjg0M3YtNC4wNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTJ6TTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlVG1GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem0zLjI5NSAzLjk5NVYxMUg0LjEwNFY1Ljk5NWgtMS43VjVIN3YuOTk0SDUuMjk1ek04LjY5MiA3LjAxVjExSDcuNjMzVjUuMDAxaDEuMjA5bDEuNzEgMy44OTRoLjAzOWwxLjcxLTMuODk0SDEzLjVWMTFoLTEuMDcyVjcuMDFoLS4wNTdsLTEuNDIgMy4yMzloLS43NzNMOC43NSA3LjAwOGgtLjA1OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZVRtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMjk1IDExVjUuOTk1SDdWNUgyLjQwM3YuOTk0aDEuNzAxVjExaDEuMTl6bTMuMzk3IDBWNy4wMWguMDU4bDEuNDI4IDMuMjM5aC43NzNsMS40Mi0zLjI0aC4wNTdWMTFIMTMuNVY1LjAwMWgtMS4ybC0xLjcxIDMuODk0aC0uMDM5bC0xLjcxLTMuODk0SDcuNjM0VjExaDEuMDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgM2ExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDEyek0yIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZVZvRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4yOTYgOC4zOTR2LS43ODJjMC0xLjE1Ni0uNTcxLTEuNzM2LTEuMzYyLTEuNzM2LS43OTYgMC0xLjM2My41OC0xLjM2MyAxLjczNnYuNzgyYzAgMS4xNTYuNTY3IDEuNzMyIDEuMzYzIDEuNzMyLjc5IDAgMS4zNjItLjU3NiAxLjM2Mi0xLjczMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptMTEuNSA1LjYydi43N2MwIDEuNjkxLS45NjIgMi43MjQtMi41NjYgMi43MjQtMS42MDQgMC0yLjU3MS0xLjAzMy0yLjU3MS0yLjcyNHYtLjc3YzAtMS43MDQuOTY3LTIuNzMzIDIuNTctMi43MzMgMS42MDUgMCAyLjU2NyAxLjAzNyAyLjU2NyAyLjczNHpNNS45MzcgMTFINC41MDhMMi41IDUuMDAxaDEuMzc1TDUuMjIgOS43MDhoLjA1N0w2LjYxIDUuMDAxaDEuMzE4TDUuOTM3IDExelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlVm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41MDggMTFoMS40MjlsMS45OS01Ljk5OUg2LjYxTDUuMjc3IDkuNzA4SDUuMjJMMy44NzUgNS4wMDFIMi41TDQuNTA4IDExek0xMy41IDguMzl2LS43N2MwLTEuNjk2LS45NjItMi43MzMtMi41NjYtMi43MzMtMS42MDQgMC0yLjU3MSAxLjAyOS0yLjU3MSAyLjczNHYuNzY5YzAgMS42OTEuOTY3IDIuNzI0IDIuNTcgMi43MjQgMS42MDUgMCAyLjU2Ny0xLjAzMyAyLjU2Ny0yLjcyNHptLTEuMjA0LS43Nzh2Ljc4MmMwIDEuMTU2LS41NzEgMS43MzItMS4zNjIgMS43MzItLjc5NiAwLTEuMzYzLS41NzYtMS4zNjMtMS43MzJ2LS43ODJjMC0xLjE1Ni41NjctMS43MzYgMS4zNjMtMS43MzYuNzkgMCAxLjM2Mi41OCAxLjM2MiAxLjczNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTJ6TTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlVnJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNjczIDUuOTMzdjEuOTM4aDEuMDMzYy42NiAwIDEuMDY4LS4zMTYgMS4wNjgtLjk1IDAtLjY0LS40MjItLjk4OC0xLjA1LS45ODhoLTEuMDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTUuOTM3IDcgMS45OS01Ljk5OUg2LjYxTDUuMjc3IDkuNzA4SDUuMjJMMy44NzUgNS4wMDFIMi41TDQuNTA4IDExaDEuNDI5ek04LjUgNS4wMDFWMTFoMS4xNzNWOC43NjNoMS4wNjRMMTEuNzg3IDExaDEuMzI3TDExLjkxIDguNTgzQzEyLjQ1NSA4LjM3MyAxMyA3Ljc3OSAxMyA2LjljMC0xLjE0Ny0uNzczLTEuOS0yLjEwNS0xLjlIOC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlVnIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgM2ExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDEyek0yIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUwOCAxMWgxLjQyOWwxLjk5LTUuOTk5SDYuNjFMNS4yNzcgOS43MDhINS4yMkwzLjg3NSA1LjAwMUgyLjVMNC41MDggMTF6bTYuMzg3LTUuOTk5SDguNVYxMWgxLjE3M1Y4Ljc2M2gxLjA2NEwxMS43ODcgMTFoMS4zMjdMMTEuOTEgOC41ODNDMTIuNDU1IDguMzczIDEzIDcuNzc5IDEzIDYuOWMwLTEuMTQ3LS43NzMtMS45LTIuMTA1LTEuOXptLTEuMjIyIDIuODdWNS45MzNoMS4wNWMuNjMgMCAxLjA1LjM0NyAxLjA1Ljk4OSAwIC42MzMtLjQwOC45NS0xLjA2Ny45NUg5LjY3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWRnZVdjRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMTEuNjY2IDEuODljLjY4MiAwIDEuMTM5LjQ3IDEuMTg3IDEuMTA3SDE0di0uMTFjLS4wNTMtMS4xODctMS4wMjQtMi0yLjM0Mi0yLTEuNjA0IDAtMi41MTggMS4wNS0yLjUxOCAyLjc1MXYuNzQ3YzAgMS43LjkwNSAyLjczIDIuNTE4IDIuNzMgMS4zMTQgMCAyLjI4NS0uNzkyIDIuMzQyLTEuOTM5di0uMTE0aC0xLjE0N2MtLjA0OC42MTUtLjQ5NyAxLjA1LTEuMTg3IDEuMDUtLjgzOSAwLTEuMzE4LS42Mi0xLjMxOC0xLjcyN3YtLjc0MmMwLTEuMTEyLjQ4OC0xLjc1NCAxLjMxOC0xLjc1NHptLTYuMTg4LjkyNmguMDQ0TDYuNTQyIDExaDEuMDA2TDkgNS4wMDFINy44MThsLS44MiA0LjM1NWgtLjA1Nkw1Ljk3IDUuMDAxaC0uOTRsLS45NzIgNC4zNTVoLS4wNTNsLS44MjctNC4zNTVIMkwzLjQ1MiAxMWgxLjAwNWwxLjAyLTQuMTg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZGdlV2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMzQ4IDcuNjQzYzAtMS4xMTIuNDg4LTEuNzU0IDEuMzE4LTEuNzU0LjY4MiAwIDEuMTM5LjQ3IDEuMTg3IDEuMTA4SDE0di0uMTFjLS4wNTMtMS4xODctMS4wMjQtMi0yLjM0Mi0yLTEuNjA0IDAtMi41MTggMS4wNS0yLjUxOCAyLjc1MXYuNzQ3YzAgMS43LjkwNSAyLjczIDIuNTE4IDIuNzMgMS4zMTQgMCAyLjI4NS0uNzkyIDIuMzQyLTEuOTM5di0uMTE0aC0xLjE0N2MtLjA0OC42MTUtLjQ5NyAxLjA1LTEuMTg3IDEuMDUtLjgzOSAwLTEuMzE4LS42Mi0xLjMxOC0xLjcyN3YtLjc0MnpNNC40NTcgMTFsMS4wMi00LjE4NGguMDQ1TDYuNTQyIDExaDEuMDA2TDkgNS4wMDFINy44MThsLS44MiA0LjM1NWgtLjA1Nkw1Ljk3IDUuMDAxaC0uOTRsLS45NzIgNC4zNTVoLS4wNTNsLS44MjctNC4zNTVIMkwzLjQ1MiAxMWgxLjAwNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTJ6TTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZ0NoZWNrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuNSAzLjVhMi41IDIuNSAwIDAgMC01IDBWNGg1di0uNXptMSAwVjRIMTV2MTBhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWNGgzLjV2LS41YTMuNSAzLjUgMCAxIDEgNyAwem0tLjY0NiA1LjM1NGEuNS41IDAgMCAwLS43MDgtLjcwOEw3LjUgMTAuNzkzIDYuMzU0IDkuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMS41IDEuNWEuNS41IDAgMCAwIC43MDggMGwzLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFnQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjg1NCA4LjE0NmEuNS41IDAgMCAxIDAgLjcwOGwtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAwIDEgLjcwOC0uNzA4TDcuNSAxMC43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIuNSAyLjUgMCAwIDEgMi41IDIuNVY0aC01di0uNUEyLjUgMi41IDAgMCAxIDggMXptMy41IDN2LS41YTMuNSAzLjUgMCAxIDAtNyAwVjRIMXYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNGgtMy41ek0yIDVoMTJ2OWExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZ0Rhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC41IDMuNWEyLjUgMi41IDAgMCAwLTUgMFY0aDV2LS41em0xIDBWNEgxNXYxMGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY0aDMuNXYtLjVhMy41IDMuNSAwIDEgMSA3IDB6TTYgOS41YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWdEYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjUgMTBhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhMi41IDIuNSAwIDAgMSAyLjUgMi41VjRoLTV2LS41QTIuNSAyLjUgMCAwIDEgOCAxem0zLjUgM3YtLjVhMy41IDMuNSAwIDEgMC03IDBWNEgxdjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlY0aC0zLjV6TTIgNWgxMnY5YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFnRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhMi41IDIuNSAwIDAgMSAyLjUgMi41VjRoLTV2LS41QTIuNSAyLjUgMCAwIDEgOCAxem0zLjUgM3YtLjVhMy41IDMuNSAwIDEgMC03IDBWNEgxdjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlY0aC0zLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFnUGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjUgMy41YTIuNSAyLjUgMCAwIDAtNSAwVjRoNXYtLjV6bTEgMFY0SDE1djEwYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjRoMy41di0uNWEzLjUgMy41IDAgMSAxIDcgMHpNOC41IDhhLjUuNSAwIDAgMC0xIDB2MS41SDZhLjUuNSAwIDAgMCAwIDFoMS41VjEyYS41LjUgMCAwIDAgMSAwdi0xLjVIMTBhLjUuNSAwIDAgMCAwLTFIOC41Vjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFnUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCA3LjVhLjUuNSAwIDAgMSAuNS41djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTJhLjUuNSAwIDAgMS0xIDB2LTEuNUg2YS41LjUgMCAwIDEgMC0xaDEuNVY4YS41LjUgMCAwIDEgLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIuNSAyLjUgMCAwIDEgMi41IDIuNVY0aC01di0uNUEyLjUgMi41IDAgMCAxIDggMXptMy41IDN2LS41YTMuNSAzLjUgMCAxIDAtNyAwVjRIMXYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNGgtMy41ek0yIDVoMTJ2OWExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZ1hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC41IDMuNWEyLjUgMi41IDAgMCAwLTUgMFY0aDV2LS41em0xIDBWNEgxNXYxMGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY0aDMuNXYtLjVhMy41IDMuNSAwIDEgMSA3IDB6TTYuODU0IDguMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhMNy4yOTMgMTBsLTEuMTQ3IDEuMTQ2YS41LjUgMCAwIDAgLjcwOC43MDhMOCAxMC43MDdsMS4xNDYgMS4xNDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMOC43MDcgMTBsMS4xNDctMS4xNDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMOCA5LjI5MyA2Ljg1NCA4LjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYWdYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02LjE0NiA4LjE0NmEuNS41IDAgMCAxIC43MDggMEw4IDkuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhMOC43MDcgMTBsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDEwLjcwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgMTAgNi4xNDYgOC44NTRhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIuNSAyLjUgMCAwIDEgMi41IDIuNVY0aC01di0uNUEyLjUgMi41IDAgMCAxIDggMXptMy41IDN2LS41YTMuNSAzLjUgMCAxIDAtNyAwVjRIMXYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNGgtMy41ek0yIDVoMTJ2OWExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhMi41IDIuNSAwIDAgMSAyLjUgMi41VjRoLTV2LS41QTIuNSAyLjUgMCAwIDEgOCAxem0zLjUgM3YtLjVhMy41IDMuNSAwIDEgMC03IDBWNEgxdjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlY0aC0zLjV6TTIgNWgxMnY5YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IC45NSAxNC42MSA0aC44OWEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVIMTV2N2EuNS41IDAgMCAxIC40ODUuMzc5bC41IDJBLjUuNSAwIDAgMSAxNS41IDE3SC41YS41LjUgMCAwIDEtLjQ4NS0uNjIxbC41LTJBLjUuNSAwIDAgMSAxIDE0VjdILjVhLjUuNSAwIDAgMS0uNS0uNXYtMkEuNS41IDAgMCAxIC41IDRoLjg5TDggLjk1ek0zLjc3NiA0aDguNDQ3TDggMi4wNSAzLjc3NiA0ek0yIDd2N2gxVjdIMnptMiAwdjdoMi41VjdINHptMy41IDB2N2gxVjdoLTF6bTIgMHY3SDEyVjdIOS41ek0xMyA3djdoMVY3aC0xem0yLTFWNUgxdjFoMTR6bS0uMzkgOUgxLjM5bC0uMjUgMWgxMy43MmwtLjI1LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFuazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4yNzcuMDg0YS41LjUgMCAwIDAtLjU1NCAwbC03LjUgNUEuNS41IDAgMCAwIC41IDZoMS44NzV2N0gxLjVhLjUuNSAwIDAgMCAwIDFoMTNhLjUuNSAwIDEgMCAwLTFoLS44NzVWNkgxNS41YS41LjUgMCAwIDAgLjI3Ny0uOTE2bC03LjUtNXpNMTIuMzc1IDZ2N2gtMS4yNVY2aDEuMjV6bS0yLjUgMHY3aC0xLjI1VjZoMS4yNXptLTIuNSAwdjdoLTEuMjVWNmgxLjI1em0tMi41IDB2N2gtMS4yNVY2aDEuMjV6TTggNGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6TS41IDE1YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAxIDAgMC0xSC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhckNoYXJ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDExYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTF2LTN6bTUtNGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjd6bTUtNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXJDaGFydExpbmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDJhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MTJoLjVhLjUuNSAwIDAgMSAwIDFILjVhLjUuNSAwIDAgMSAwLTFIMXYtM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYzaDFWN2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY3aDFWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXJDaGFydExpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYxMmguNWEuNS41IDAgMCAxIDAgMUguNWEuNS41IDAgMCAxIDAtMUgxdi0zYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjNoMVY3YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjdoMVYyem0xIDEyaDJWMmgtMnYxMnptLTMgMFY3SDd2N2gyem0tNSAwdi0zSDJ2M2gyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JhckNoYXJ0U3RlcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgMGEuNS41IDAgMCAxIC41LjV2MTVhLjUuNSAwIDAgMS0xIDBWLjVBLjUuNSAwIDAgMSAuNSAwek0yIDEuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC00YS41LjUgMCAwIDEtLjUtLjV2LTF6bTIgNGEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTF6bTIgNGEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC02YS41LjUgMCAwIDEtLjUtLjV2LTF6bTIgNGEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFyQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMUgydjNoMnYtM3ptNS00SDd2N2gyVjd6bTUtNXYxMmgtMlYyaDJ6bS0yLTFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFoLTJ6TTYgN2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY3YTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjd6bS01IDRhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMXYtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXNrZXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMDcxIDEuMjQzYS41LjUgMCAwIDEgLjg1OC41MTRMMy4zODMgNmg5LjIzNEwxMC4wNyAxLjc1N2EuNS41IDAgMSAxIC44NTgtLjUxNEwxMy43ODMgNkgxNS41YS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNUgxNXY1YTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjlILjVhLjUuNSAwIDAgMS0uNS0uNXYtMkEuNS41IDAgMCAxIC41IDZoMS43MTdMNS4wNyAxLjI0M3pNMy41IDEwLjVhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM3ptMi41IDBhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM3ptMi41IDBhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM3ptMi41IDBhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM3ptMi41IDBhLjUuNSAwIDEgMC0xIDB2M2EuNS41IDAgMCAwIDEgMHYtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS43NTcgMS4wNzFhLjUuNSAwIDAgMSAuMTcyLjY4NkwzLjM4MyA2aDkuMjM0TDEwLjA3IDEuNzU3YS41LjUgMCAxIDEgLjg1OC0uNTE0TDEzLjc4MyA2SDE1YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxdjQuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTlBMi41IDIuNSAwIDAgMSAxIDEzLjVWOWExIDEgMCAwIDEtMS0xVjdhMSAxIDAgMCAxIDEtMWgxLjIxN0w1LjA3IDEuMjQzYS41LjUgMCAwIDEgLjY4Ni0uMTcyek0yIDl2NC41QTEuNSAxLjUgMCAwIDAgMy41IDE1aDlhMS41IDEuNSAwIDAgMCAxLjUtMS41VjlIMnpNMSA3djFoMTRWN0gxem0zIDNhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNBLjUuNSAwIDAgMSA0IDEwem0yIDBhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNBLjUuNSAwIDAgMSA2IDEwem0yIDBhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNBLjUuNSAwIDAgMSA4IDEwem0yIDBhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMSAuNS0uNXptMiAwYS41LjUgMCAwIDEgLjUuNXYzYS41LjUgMCAwIDEtMSAwdi0zYS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFza2V0MkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS45MjkgMS43NTdhLjUuNSAwIDEgMC0uODU4LS41MTRMMi4yMTcgNkguNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoLjYyM2wxLjg0NCA2LjQ1NkEuNzUuNzUgMCAwIDAgMy42OSAxNWg4LjYyMmEuNzUuNzUgMCAwIDAgLjcyMi0uNTQ0TDE0Ljg3NyA4aC42MjNhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xLjcxN0wxMC45MyAxLjI0M2EuNS41IDAgMSAwLS44NTguNTE0TDEyLjYxNyA2SDMuMzgzTDUuOTMgMS43NTd6TTQgMTBhMSAxIDAgMCAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJ6bTMgMGExIDEgMCAwIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMnptNC0xYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAxIDEtMiAwdi0yYTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmFza2V0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEwYTEgMSAwIDAgMSAyIDB2MmExIDEgMCAwIDEtMiAwdi0yem0zIDBhMSAxIDAgMCAxIDIgMHYyYTEgMSAwIDAgMS0yIDB2LTJ6bTMgMGExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMCAxLTIgMHYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljc1NyAxLjA3MWEuNS41IDAgMCAxIC4xNzIuNjg2TDMuMzgzIDZoOS4yMzRMMTAuMDcgMS43NTdhLjUuNSAwIDEgMSAuODU4LS41MTRMMTMuNzgzIDZIMTUuNWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLS42MjNsLTEuODQ0IDYuNDU2YS43NS43NSAwIDAgMS0uNzIyLjU0NEgzLjY5YS43NS43NSAwIDAgMS0uNzIyLS41NDRMMS4xMjMgOEguNWEuNS41IDAgMCAxLS41LS41di0xQS41LjUgMCAwIDEgLjUgNmgxLjcxN0w1LjA3IDEuMjQzYS41LjUgMCAwIDEgLjY4Ni0uMTcyek0yLjE2MyA4bDEuNzE0IDZoOC4yNDZsMS43MTQtNkgyLjE2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXNrZXQzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljc1NyAxLjA3MWEuNS41IDAgMCAxIC4xNzIuNjg2TDMuMzgzIDZoOS4yMzRMMTAuMDcgMS43NTdhLjUuNSAwIDEgMSAuODU4LS41MTRMMTMuNzgzIDZIMTUuNWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVILjVhLjUuNSAwIDAgMS0uNS0uNXYtMUEuNS41IDAgMCAxIC41IDZoMS43MTdMNS4wNyAxLjI0M2EuNS41IDAgMCAxIC42ODYtLjE3MnpNMi40NjggMTUuNDI2Ljk0MyA5aDE0LjExNGwtMS41MjUgNi40MjZhLjc1Ljc1IDAgMCAxLS43MjkuNTc0SDMuMTk3YS43NS43NSAwIDAgMS0uNzMtLjU3NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXNrZXQzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzU3IDEuMDcxYS41LjUgMCAwIDEgLjE3Mi42ODZMMy4zODMgNmg5LjIzNEwxMC4wNyAxLjc1N2EuNS41IDAgMSAxIC44NTgtLjUxNEwxMy43ODMgNkgxNS41YS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNUguNWEuNS41IDAgMCAxLS41LS41di0xQS41LjUgMCAwIDEgLjUgNmgxLjcxN0w1LjA3IDEuMjQzYS41LjUgMCAwIDEgLjY4Ni0uMTcyek0zLjM5NCAxNWwtMS40OC02aC0uOTdsMS41MjUgNi40MjZhLjc1Ljc1IDAgMCAwIC43MjkuNTc0aDkuNjA2YS43NS43NSAwIDAgMCAuNzMtLjU3NEwxNS4wNTYgOWgtLjk3MmwtMS40NzkgNmgtOS4yMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXR0ZXJ5Q2hhcmdpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41ODUgMi41NjhhLjUuNSAwIDAgMSAuMjI2LjU4TDguNjc3IDYuODMyaDEuOTlhLjUuNSAwIDAgMSAuMzY0Ljg0M2wtNS4zMzQgNS42NjdhLjUuNSAwIDAgMS0uODQyLS40OUw1Ljk5IDkuMTY3SDRhLjUuNSAwIDAgMS0uMzY0LS44NDNsNS4zMzMtNS42NjdhLjUuNSAwIDAgMSAuNjE2LS4wOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDRoNC4zMzJsLS45NCAxSDJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMi4zOGwtLjMwOCAxSDJhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2aDIuNDVMMi45MDggNy42MzlBMS41IDEuNSAwIDAgMCAzLjMxMyAxMEgyVjZ6bTguNTk1LTItLjMwOCAxSDEyYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxSDkuMjc2bC0uOTQyIDFIMTJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTEuNDA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwaC0xLjc4M2wxLjU0Mi0xLjYzOWMuMDk3LS4xMDMuMTc4LS4yMTguMjQxLS4zNFYxMHptMC0zLjM1NFY2aC0uNjQ2YTEuNSAxLjUgMCAwIDEgLjY0Ni42NDZ6TTE2IDhhMS41IDEuNSAwIDAgMS0xLjUgMS41di0zQTEuNSAxLjUgMCAwIDEgMTYgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCYXR0ZXJ5RnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZoMTB2NEgyVjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDJ6bTEwIDFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgxMHptNCAzYTEuNSAxLjUgMCAwIDEtMS41IDEuNXYtM0ExLjUgMS41IDAgMCAxIDE2IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmF0dGVyeUhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2aDV2NEgyVjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDJ6bTEwIDFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgxMHptNCAzYTEuNSAxLjUgMCAwIDEtMS41IDEuNXYtM0ExLjUgMS41IDAgMCAxIDE2IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmF0dGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDZhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNnptMi0xYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xSDJ6bTE0IDNhMS41IDEuNSAwIDAgMS0xLjUgMS41di0zQTEuNSAxLjUgMCAwIDEgMTYgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCZWhhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjU0IDNjLjQ2MSAwIC44ODcuMDM1IDEuMjc4LjE0LjM5LjA3LjcxMS4yMTYuOTk2LjM5MS4yODYuMTc2LjQ5Ny40MjYuNjQxLjc0Ny4xNC4zMi4yMTYuNzExLjIxNiAxLjEzNyAwIC40OTYtLjEwNi45MjItLjM1NiAxLjI0Mi0uMjE1LjMyLS41NjYuNjA2LS45OTcuODE3LjYwNi4xNzYgMS4wNjcuNDk2IDEuMzQ4LjkyMi4yODEuNDI2LjQ2MS45NTcuNDYxIDEuNTYzIDAgLjQ5Ni0uMTA1LjkyMi0uMjg1IDEuMjc4YTIuMzE3IDIuMzE3IDAgMCAxLS43ODIuODg3Yy0uMzIuMjE1LS43MTEuMzktMS4xMzcuNDk2YTUuMzI5IDUuMzI5IDAgMCAxLTEuMjc4LjE3NkwwIDEyLjgwM1YzaDQuNjU0em0tLjI4NSAzLjk3OGMuMzkgMCAuNzEtLjEwNS45NTctLjI4NS4yNDYtLjE4LjM1NS0uNDk3LjM1NS0uODg3IDAtLjIxNi0uMDM1LS40MjYtLjEwNS0uNTY3YS45ODEuOTgxIDAgMCAwLS4zMi0uMzU1IDEuODQgMS44NCAwIDAgMC0uNDYxLS4xNzZjLS4xNzYtLjAzNS0uMzU2LS4wMzUtLjU2Ny0uMDM1SDIuMTd2Mi4zMWMwLS4wMDUgMi4yLS4wMDUgMi4yLS4wMDV6bS4xMDUgNC4xOTNjLjIxNSAwIC40MjYtLjAzNS42MDYtLjA3LjE3Ni0uMDM1LjM1Ni0uMTA2LjQ5Ni0uMjE2cy4yNS0uMjE1LjM1Ni0uMzljLjA3LS4xNzYuMTQtLjM5MS4xNC0uNjQxIDAtLjQ5Ni0uMTQtLjg1Mi0uNDI2LTEuMTAyLS4yODUtLjIxNS0uNjc2LS4zMi0xLjEzNy0uMzJIMi4xN3YyLjczNGgyLjMwNXYuMDA1em02Ljg1OC0uMDM1Yy4yODYuMjg1LjcxMS40MjYgMS4yNzguNDI2LjM5IDAgLjc0Ni0uMTA2IDEuMDMyLS4yODYuMjg1LS4yMTUuNDYtLjQyNi41My0uNjRoMS43NGMtLjI4Ni44NTEtLjcxMiAxLjQ1Ny0xLjI3OCAxLjg0OC0uNTY2LjM1NS0xLjI0My41NjYtMi4wNi41NjZhNC4xMzUgNC4xMzUgMCAwIDEtMS41MjctLjI4NSAyLjgyNyAyLjgyNyAwIDAgMS0xLjEzNy0uNzgyIDIuODUxIDIuODUxIDAgMCAxLS43MTItMS4xNzJjLS4xNzUtLjQ2MS0uMjUtLjk1Ny0uMjUtMS41MjggMC0uNTMxLjA3LTEuMDMyLjI1LTEuNDkzLjE4LS40Ni40MjYtLjg1Mi43NDctMS4yMDcuMzItLjMyLjcxMS0uNjA2IDEuMTM3LS43ODJhNC4wMTggNC4wMTggMCAwIDEgMS40OTMtLjI4NWMuNjA2IDAgMS4xMzcuMTA1IDEuNTk4LjM1NS40Ni4yNS44MTcuNTMyIDEuMTAyLjk1OC4yODUuMzkuNDk2Ljg1MS42NDEgMS4zNDguMDcuNDk2LjEwNS45OTYuMDcgMS41NjNoLTUuMTVjMCAuNTguMjEgMS4xMS40OTYgMS4zOTZ6bTIuMjQtMy43MzJjLS4yNS0uMjUtLjY0Mi0uMzkxLTEuMTAzLS4zOTEtLjMyIDAtLjU2Ni4wNy0uNzgxLjE3Ni0uMjE1LjEwNS0uMzU2LjI1LS40OTYuMzlhLjk1Ny45NTcgMCAwIDAtLjI1LjQ5N2MtLjAzNi4xNzUtLjA3LjMyLS4wNy40NmgzLjE5NmMtLjA3LS41MjYtLjI1LS44ODItLjQ5Ny0xLjEzMnptLTMuMTI3LTMuNzI4aDMuOTc4di45NTdoLTMuOTc4di0uOTU3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JlbGxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZhMiAyIDAgMCAwIDItMkg2YTIgMiAwIDAgMCAyIDJ6bS45OTUtMTQuOTAxYTEgMSAwIDEgMC0xLjk5IDBBNS4wMDIgNS4wMDIgMCAwIDAgMyA2YzAgMS4wOTgtLjUgNi0yIDdoMTRjLTEuNS0xLTItNS45MDItMi03IDAtMi40Mi0xLjcyLTQuNDQtNC4wMDUtNC45MDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmVsbFNsYXNoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjE2NCAxNEgxNWMtMS41LTEtMi01LjkwMi0yLTcgMC0uMjY0LS4wMi0uNTIzLS4wNi0uNzc2TDUuMTY0IDE0em02LjI4OC0xMC42MTdBNC45ODggNC45ODggMCAwIDAgOC45OTUgMi4xYTEgMSAwIDEgMC0xLjk5IDBBNS4wMDIgNS4wMDIgMCAwIDAgMyA3YzAgLjg5OC0uMzM1IDQuMzQyLTEuMjc4IDYuMTEzbDkuNzMtOS43M3pNMTAgMTVhMiAyIDAgMSAxLTQgMGg0em0tOS4zNzUuNjI1YS41My41MyAwIDAgMCAuNzUuNzVsMTQuNzUtMTQuNzVhLjUzLjUzIDAgMCAwLS43NS0uNzVMLjYyNSAxNS42MjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmVsbFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMTY0IDE0SDE1Yy0uMjk5LS4xOTktLjU1Ny0uNTUzLS43OC0xLS45LTEuOC0xLjIyLTUuMTItMS4yMi02IDAtLjI2NC0uMDItLjUyMy0uMDYtLjc3NmwtLjkzOC45MzhjLjAyLjcwOC4xNTcgMi4xNTQuNDU3IDMuNTguMTYxLjc2Ny4zNzcgMS41NjYuNjYzIDIuMjU4SDYuMTY0bC0xIDF6bTUuNTgxLTkuOTFhMy45ODYgMy45ODYgMCAwIDAtMS45NDgtMS4wMUw4IDIuOTE3bC0uNzk3LjE2MUE0LjAwMiA0LjAwMiAwIDAgMCA0IDdjMCAuNjI4LS4xMzQgMi4xOTctLjQ1OSAzLjc0Mi0uMDUuMjM4LS4xMDUuNDc5LS4xNjYuNzE4bC0xLjY1MyAxLjY1M2MuMDItLjAzNy4wNC0uMDc0LjA1OS0uMTEzQzIuNjc5IDExLjIgMyA3Ljg4IDMgN2MwLTIuNDIgMS43Mi00LjQ0IDQuMDA1LTQuOTAxYTEgMSAwIDEgMSAxLjk5IDBjLjk0Mi4xOSAxLjc4OC42NDUgMi40NTcgMS4yODRsLS43MDcuNzA3ek0xMCAxNWEyIDIgMCAxIDEtNCAwaDR6bS05LjM3NS42MjVhLjUzLjUzIDAgMCAwIC43NS43NWwxNC43NS0xNC43NWEuNTMuNTMgMCAwIDAtLjc1LS43NUwuNjI1IDE1LjYyNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZhMiAyIDAgMCAwIDItMkg2YTIgMiAwIDAgMCAyIDJ6TTggMS45MThsLS43OTcuMTYxQTQuMDAyIDQuMDAyIDAgMCAwIDQgNmMwIC42MjgtLjEzNCAyLjE5Ny0uNDU5IDMuNzQyLS4xNi43NjctLjM3NiAxLjU2Ni0uNjYzIDIuMjU4aDEwLjI0NGMtLjI4Ny0uNjkyLS41MDItMS40OS0uNjYzLTIuMjU4QzEyLjEzNCA4LjE5NyAxMiA2LjYyOCAxMiA2YTQuMDAyIDQuMDAyIDAgMCAwLTMuMjAzLTMuOTJMOCAxLjkxN3pNMTQuMjIgMTJjLjIyMy40NDcuNDgxLjgwMS43OCAxSDFjLjI5OS0uMTk5LjU1Ny0uNTUzLjc4LTFDMi42OCAxMC4yIDMgNi44OCAzIDZjMC0yLjQyIDEuNzItNC40NCA0LjAwNS00LjkwMWExIDEgMCAxIDEgMS45OSAwQTUuMDAyIDUuMDAyIDAgMCAxIDEzIDZjMCAuODguMzIgNC4yIDEuMjIgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCZXppZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgMTAuNUExLjUgMS41IDAgMCAxIDEuNSA5aDFBMS41IDEuNSAwIDAgMSA0IDEwLjV2MUExLjUgMS41IDAgMCAxIDIuNSAxM2gtMUExLjUgMS41IDAgMCAxIDAgMTEuNXYtMXptMS41LS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXptMTAuNS41QTEuNSAxLjUgMCAwIDEgMTMuNSA5aDFhMS41IDEuNSAwIDAgMSAxLjUgMS41djFhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMXptMS41LS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpNNiA0LjVBMS41IDEuNSAwIDAgMSA3LjUgM2gxQTEuNSAxLjUgMCAwIDEgMTAgNC41djFBMS41IDEuNSAwIDAgMSA4LjUgN2gtMUExLjUgMS41IDAgMCAxIDYgNS41di0xek03LjUgNGEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA0LjVIMS44NjZhMSAxIDAgMSAwIDAgMWgyLjY2OEE2LjUxNyA2LjUxNyAwIDAgMCAxLjgxNCA5SDIuNWMuMTIzIDAgLjI0NC4wMTUuMzU4LjA0M2E1LjUxNyA1LjUxNyAwIDAgMSAzLjE4NS0zLjE4NUExLjUwMyAxLjUwMyAwIDAgMSA2IDUuNXYtMXptMy45NTcgMS4zNThBMS41IDEuNSAwIDAgMCAxMCA1LjV2LTFoNC4xMzRhMSAxIDAgMSAxIDAgMWgtMi42NjhhNi41MTcgNi41MTcgMCAwIDEgMi43MiAzLjVIMTMuNWMtLjEyMyAwLS4yNDMuMDE1LS4zNTguMDQzYTUuNTE3IDUuNTE3IDAgMCAwLTMuMTg1LTMuMTg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JlemllcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgMi41QTEuNSAxLjUgMCAwIDEgMi41IDFoMUExLjUgMS41IDAgMCAxIDUgMi41aDQuMTM0YTEgMSAwIDEgMSAwIDFoLTIuMDFjLjE4LjE4LjM0LjM4MS40ODQuNjA1LjYzOC45OTIuODkyIDIuMzU0Ljg5MiAzLjg5NSAwIDEuOTkzLjI1NyAzLjA5Mi43MTMgMy43LjM1Ni40NzYuODk1LjcyMSAxLjc4Ny43ODRBMS41IDEuNSAwIDAgMSAxMi41IDExaDFhMS41IDEuNSAwIDAgMSAxLjUgMS41djFhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xYTEuNSAxLjUgMCAwIDEtMS41LTEuNUg2Ljg2NmExIDEgMCAxIDEgMC0xaDEuNzExYTIuODM5IDIuODM5IDAgMCAxLS4xNjUtLjJDNy43NDMgMTEuNDA3IDcuNSAxMC4wMDcgNy41IDhjMC0xLjQ2LS4yNDYtMi41OTctLjczMy0zLjM1NS0uMzktLjYwNS0uOTUyLTEtMS43NjctMS4xMTJBMS41IDEuNSAwIDAgMSAzLjUgNWgtMUExLjUgMS41IDAgMCAxIDEgMy41di0xek0yLjUgMmEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6bTEwIDEwYS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCaWN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNC41YS41LjUgMCAwIDEgLjUtLjVINmEuNS41IDAgMCAxIDAgMXYuNWg0LjE0bC4zODYtMS4xNThBLjUuNSAwIDAgMSAxMSA0aDFhLjUuNSAwIDAgMSAwIDFoLS42NGwtLjMxMS45MzUuODA3IDEuMjlhMyAzIDAgMSAxLS44NDguNTNsLS41MDgtLjgxMi0yLjA3NiAzLjMyMkEuNS41IDAgMCAxIDggMTAuNUg1Ljk1OWEzIDMgMCAxIDEtMS44MTUtMy4yNzRMNSA1Ljg1NlY1aC0uNWEuNS41IDAgMCAxLS41LS41em0xLjUgMi40NDMtLjUwOC44MTRjLjUuNDQ0Ljg1IDEuMDU0Ljk2NyAxLjc0M2gxLjEzOUw1LjUgNi45NDN6TTggOS4wNTcgOS41OTggNi41SDYuNDAyTDggOS4wNTd6TTQuOTM3IDkuNWExLjk5NyAxLjk5NyAwIDAgMC0uNDg3LS44NzdsLS41NDguODc3aDEuMDM1ek0zLjYwMyA4LjA5MkEyIDIgMCAxIDAgNC45MzcgMTAuNUgzYS41LjUgMCAwIDEtLjQyNC0uNzY1bDEuMDI3LTEuNjQzem03Ljk0Ny41M2EyIDIgMCAxIDAgLjg0OC0uNTNsMS4wMjYgMS42NDNhLjUuNSAwIDEgMS0uODQ4LjUzTDExLjU1IDguNjIzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jpbm9jdWxhcnNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAxQTEuNSAxLjUgMCAwIDAgMyAyLjVWM2g0di0uNUExLjUgMS41IDAgMCAwIDUuNSAxaC0xek03IDR2MWgyVjRoNHYuODgyYS41LjUgMCAwIDAgLjI3Ni40NDdsLjg5NS40NDdBMS41IDEuNSAwIDAgMSAxNSA3LjExOFYxM0g5di0xLjVhLjUuNSAwIDAgMSAuMTQ2LS4zNTRsLjg1NC0uODUzVjkuNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNXYuNzkzbC44NTQuODUzQS41LjUgMCAwIDEgNyAxMS41VjEzSDFWNy4xMThhMS41IDEuNSAwIDAgMSAuODMtMS4zNDJsLjg5NC0uNDQ3QS41LjUgMCAwIDAgMyA0Ljg4MlY0aDR6TTEgMTR2LjVBMS41IDEuNSAwIDAgMCAyLjUgMTZoM0ExLjUgMS41IDAgMCAwIDcgMTQuNVYxNEgxem04IDB2LjVhMS41IDEuNSAwIDAgMCAxLjUgMS41aDNhMS41IDEuNSAwIDAgMCAxLjUtMS41VjE0SDl6bTQtMTFIOXYtLjVBMS41IDEuNSAwIDAgMSAxMC41IDFoMUExLjUgMS41IDAgMCAxIDEzIDIuNVYzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jpbm9jdWxhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyLjVBMS41IDEuNSAwIDAgMSA0LjUgMWgxQTEuNSAxLjUgMCAwIDEgNyAyLjVWNWgyVjIuNUExLjUgMS41IDAgMCAxIDEwLjUgMWgxQTEuNSAxLjUgMCAwIDEgMTMgMi41djIuMzgyYS41LjUgMCAwIDAgLjI3Ni40NDdsLjg5NS40NDdBMS41IDEuNSAwIDAgMSAxNSA3LjExOFYxNC41YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDkgMTQuNXYtM2EuNS41IDAgMCAxIC4xNDYtLjM1NGwuODU0LS44NTNWOS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41di43OTNsLjg1NC44NTNBLjUuNSAwIDAgMSA3IDExLjV2M0ExLjUgMS41IDAgMCAxIDUuNSAxNmgtM0ExLjUgMS41IDAgMCAxIDEgMTQuNVY3LjExOGExLjUgMS41IDAgMCAxIC44My0xLjM0MmwuODk0LS40NDdBLjUuNSAwIDAgMCAzIDQuODgyVjIuNXpNNC41IDJhLjUuNSAwIDAgMC0uNS41VjNoMnYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMXpNNiA0SDR2Ljg4MmExLjUgMS41IDAgMCAxLS44MyAxLjM0MmwtLjg5NC40NDdBLjUuNSAwIDAgMCAyIDcuMTE4VjEzaDR2LTEuMjkzbC0uODU0LS44NTNBLjUuNSAwIDAgMSA1IDEwLjV2LTFBMS41IDEuNSAwIDAgMSA2LjUgOGgzQTEuNSAxLjUgMCAwIDEgMTEgOS41djFhLjUuNSAwIDAgMS0uMTQ2LjM1NGwtLjg1NC44NTNWMTNoNFY3LjExOGEuNS41IDAgMCAwLS4yNzYtLjQ0N2wtLjg5NS0uNDQ3QTEuNSAxLjUgMCAwIDEgMTIgNC44ODJWNGgtMnYxLjVhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjVWNHptNC0xaDJ2LS41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41VjN6bTQgMTFoLTR2LjVhLjUuNSAwIDAgMCAuNS41aDNhLjUuNSAwIDAgMCAuNS0uNVYxNHptLTggMEgydi41YS41LjUgMCAwIDAgLjUuNWgzYS41LjUgMCAwIDAgLjUtLjVWMTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQmxvY2txdW90ZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDNhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExem01IDNhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNnptMCAzYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZ6bS01IDNhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExem0uNzktNS4zNzNjLjExMi0uMDc4LjI2LS4xNy40NDQtLjI3NUwzLjUyNCA2Yy0uMTIyLjA3NC0uMjcyLjE3LS40NTIuMjg3LS4xOC4xMTctLjM1LjI2LS41MS40MjhhMi40MjUgMi40MjUgMCAwIDAtLjM5OC41NjJjLS4xMS4yMDctLjE2NC40MzgtLjE2NC42OTIgMCAuMzYuMDcyLjY1LjIxNy44NzMuMTQ0LjIxOS4zODUuMzI4LjcyLjMyOC4yMTUgMCAuMzgzLS4wNy41MDQtLjIxMWEuNjk3LjY5NyAwIDAgMCAuMTg4LS40NjNjMC0uMjMtLjA3LS40MDQtLjIxMS0uNTIxLS4xMzctLjEyMS0uMzI2LS4xODItLjU2OC0uMTgyaC0uMjgyYy4wMjQtLjIwMy4wNjUtLjM3LjEyMy0uNDk4YTEuMzggMS4zOCAwIDAgMSAuMjUyLS4zNyAxLjk0IDEuOTQgMCAwIDEgLjM0Ni0uMjk4em0yLjE2NyAwYy4xMTMtLjA3OC4yNjItLjE3LjQ0NS0uMjc1TDUuNjkyIDZjLS4xMjIuMDc0LS4yNzIuMTctLjQ1Mi4yODctLjE4LjExNy0uMzUuMjYtLjUxLjQyOGEyLjQyNSAyLjQyNSAwIDAgMC0uMzk4LjU2MmMtLjExLjIwNy0uMTY0LjQzOC0uMTY0LjY5MiAwIC4zNi4wNzIuNjUuMjE3Ljg3My4xNDQuMjE5LjM4NS4zMjguNzIuMzI4LjIxNSAwIC4zODMtLjA3LjUwNC0uMjExYS42OTcuNjk3IDAgMCAwIC4xODgtLjQ2M2MwLS4yMy0uMDctLjQwNC0uMjExLS41MjEtLjEzNy0uMTIxLS4zMjYtLjE4Mi0uNTY4LS4xODJoLS4yODJhMS43NSAxLjc1IDAgMCAxIC4xMTgtLjQ5MmMuMDU4LS4xMy4xNDQtLjI1NC4yNTctLjM3NWExLjk0IDEuOTQgMCAwIDEgLjM0Ni0uM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCbG9ja3F1b3RlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDNhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAwLTFoLTExem0wIDNhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMWgtNnptMCAzYS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFoLTZ6bTAgM2EuNS41IDAgMCAwIDAgMWgxMWEuNS41IDAgMCAwIDAtMWgtMTF6bTEwLjExMy01LjM3M2E2LjU5IDYuNTkgMCAwIDAtLjQ0NS0uMjc1bC4yMS0uMzUyYy4xMjIuMDc0LjI3Mi4xNy40NTIuMjg3LjE4LjExNy4zNS4yNi41MS40MjguMTU2LjE2NC4yODkuMzUxLjM5OC41NjIuMTEuMjA3LjE2NC40MzguMTY0LjY5MiAwIC4zNi0uMDcyLjY1LS4yMTYuODczLS4xNDUuMjE5LS4zODUuMzI4LS43MjEuMzI4LS4yMTUgMC0uMzgzLS4wNy0uNTA0LS4yMTFhLjY5Ny42OTcgMCAwIDEtLjE4OC0uNDYzYzAtLjIzLjA3LS40MDQuMjExLS41MjEuMTM3LS4xMjEuMzI2LS4xODIuNTY5LS4xODJoLjI4MWExLjY4NiAxLjY4NiAwIDAgMC0uMTIzLS40OTggMS4zNzkgMS4zNzkgMCAwIDAtLjI1Mi0uMzcgMS45NCAxLjk0IDAgMCAwLS4zNDYtLjI5OHptLTIuMTY4IDBBNi41OSA2LjU5IDAgMCAwIDEwIDYuMzUyTDEwLjIxIDZjLjEyMi4wNzQuMjcyLjE3LjQ1Mi4yODcuMTguMTE3LjM1LjI2LjUxLjQyOC4xNTYuMTY0LjI4OS4zNTEuMzk4LjU2Mi4xMS4yMDcuMTY0LjQzOC4xNjQuNjkyIDAgLjM2LS4wNzIuNjUtLjIxNi44NzMtLjE0NS4yMTktLjM4NS4zMjgtLjcyMS4zMjgtLjIxNSAwLS4zODMtLjA3LS41MDQtLjIxMWEuNjk3LjY5NyAwIDAgMS0uMTg4LS40NjNjMC0uMjMuMDctLjQwNC4yMTEtLjUyMS4xMzctLjEyMS4zMjctLjE4Mi41NjktLjE4MmguMjgxYTEuNzQ5IDEuNzQ5IDAgMCAwLS4xMTctLjQ5MiAxLjQwMiAxLjQwMiAwIDAgMC0uMjU4LS4zNzUgMS45NCAxLjk0IDAgMCAwLS4zNDYtLjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9va0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxLjc4M0M3LjAxNS45MzYgNS41ODcuODEgNC4yODcuOTRjLTEuNTE0LjE1My0zLjA0Mi42NzItMy45OTQgMS4xMDVBLjUuNSAwIDAgMCAwIDIuNXYxMWEuNS41IDAgMCAwIC43MDcuNDU1Yy44ODItLjQgMi4zMDMtLjg4MSAzLjY4LTEuMDIgMS40MDktLjE0MiAyLjU5LjA4NyAzLjIyMy44NzdhLjUuNSAwIDAgMCAuNzggMGMuNjMzLS43OSAxLjgxNC0xLjAxOSAzLjIyMi0uODc3IDEuMzc4LjEzOSAyLjguNjIgMy42ODEgMS4wMkEuNS41IDAgMCAwIDE2IDEzLjV2LTExYS41LjUgMCAwIDAtLjI5My0uNDU1Yy0uOTUyLS40MzMtMi40OC0uOTUyLTMuOTk0LTEuMTA1QzEwLjQxMy44MDkgOC45ODUuOTM2IDggMS43ODN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9va0hhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDIuNjg3Yy42NTQtLjY4OSAxLjc4Mi0uODg2IDMuMTEyLS43NTIgMS4yMzQuMTI0IDIuNTAzLjUyMyAzLjM4OC44OTN2OS45MjNjLS45MTgtLjM1LTIuMTA3LS42OTItMy4yODctLjgxLTEuMDk0LS4xMTEtMi4yNzgtLjAzOS0zLjIxMy40OTJWMi42ODd6TTggMS43ODNDNy4wMTUuOTM2IDUuNTg3LjgxIDQuMjg3Ljk0Yy0xLjUxNC4xNTMtMy4wNDIuNjcyLTMuOTk0IDEuMTA1QS41LjUgMCAwIDAgMCAyLjV2MTFhLjUuNSAwIDAgMCAuNzA3LjQ1NWMuODgyLS40IDIuMzAzLS44ODEgMy42OC0xLjAyIDEuNDA5LS4xNDIgMi41OS4wODcgMy4yMjMuODc3YS41LjUgMCAwIDAgLjc4IDBjLjYzMy0uNzkgMS44MTQtMS4wMTkgMy4yMjItLjg3NyAxLjM3OC4xMzkgMi44LjYyIDMuNjgxIDEuMDJBLjUuNSAwIDAgMCAxNiAxMy41di0xMWEuNS41IDAgMCAwLS4yOTMtLjQ1NWMtLjk1Mi0uNDMzLTIuNDgtLjk1Mi0zLjk5NC0xLjEwNUMxMC40MTMuODA5IDguOTg1LjkzNiA4IDEuNzgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyLjgyOGMuODg1LS4zNyAyLjE1NC0uNzY5IDMuMzg4LS44OTMgMS4zMy0uMTM0IDIuNDU4LjA2MyAzLjExMi43NTJ2OS43NDZjLS45MzUtLjUzLTIuMTItLjYwMy0zLjIxMy0uNDkzLTEuMTguMTItMi4zNy40NjEtMy4yODcuODExVjIuODI4em03LjUtLjE0MWMuNjU0LS42ODkgMS43ODItLjg4NiAzLjExMi0uNzUyIDEuMjM0LjEyNCAyLjUwMy41MjMgMy4zODguODkzdjkuOTIzYy0uOTE4LS4zNS0yLjEwNy0uNjkyLTMuMjg3LS44MS0xLjA5NC0uMTExLTIuMjc4LS4wMzktMy4yMTMuNDkyVjIuNjg3ek04IDEuNzgzQzcuMDE1LjkzNiA1LjU4Ny44MSA0LjI4Ny45NGMtMS41MTQuMTUzLTMuMDQyLjY3Mi0zLjk5NCAxLjEwNUEuNS41IDAgMCAwIDAgMi41djExYS41LjUgMCAwIDAgLjcwNy40NTVjLjg4Mi0uNCAyLjMwMy0uODgxIDMuNjgtMS4wMiAxLjQwOS0uMTQyIDIuNTkuMDg3IDMuMjIzLjg3N2EuNS41IDAgMCAwIC43OCAwYy42MzMtLjc5IDEuODE0LTEuMDE5IDMuMjIyLS44NzcgMS4zNzguMTM5IDIuOC42MiAzLjY4MSAxLjAyQS41LjUgMCAwIDAgMTYgMTMuNXYtMTFhLjUuNSAwIDAgMC0uMjkzLS40NTVjLS45NTItLjQzMy0yLjQ4LS45NTItMy45OTQtMS4xMDVDMTAuNDEzLjgwOSA4Ljk4NS45MzYgOCAxLjc4M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb29rbWFya0NoZWNrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAxNS41VjJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NC40MzlMOCAxMy4wNjlsLTUuMjYgMi44N0EuNS41IDAgMCAxIDIgMTUuNXptOC44NTQtOS42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMNy41IDcuNzkzIDYuMzU0IDYuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMS41IDEuNWEuNS41IDAgMCAwIC43MDggMGwzLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9va21hcmtDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuODU0IDUuMTQ2YS41LjUgMCAwIDEgMCAuNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMNy41IDcuNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMy41YS41LjUgMCAwIDEtLjc3Ny40MTZMOCAxMy4xMDFsLTUuMjIzIDIuODE1QS41LjUgMCAwIDEgMiAxNS41VjJ6bTItMWExIDEgMCAwIDAtMSAxdjEyLjU2Nmw0LjcyMy0yLjQ4MmEuNS41IDAgMCAxIC41NTQgMEwxMyAxNC41NjZWMmExIDEgMCAwIDAtMS0xSDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9va21hcmtEYXNoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAxNS41VjJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NC40MzlMOCAxMy4wNjlsLTUuMjYgMi44N0EuNS41IDAgMCAxIDIgMTUuNXpNNiA2YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb29rbWFya0Rhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuNSA2LjVBLjUuNSAwIDAgMSA2IDZoNGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEzLjVhLjUuNSAwIDAgMS0uNzc3LjQxNkw4IDEzLjEwMWwtNS4yMjMgMi44MTVBLjUuNSAwIDAgMSAyIDE1LjVWMnptMi0xYTEgMSAwIDAgMC0xIDF2MTIuNTY2bDQuNzIzLTIuNDgyYS41LjUgMCAwIDEgLjU1NCAwTDEzIDE0LjU2NlYyYTEgMSAwIDAgMC0xLTFINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb29rbWFya0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAydjEzLjVhLjUuNSAwIDAgMCAuNzQuNDM5TDggMTMuMDY5bDUuMjYgMi44N0EuNS41IDAgMCAwIDE0IDE1LjVWMmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb29rbWFya0hlYXJ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE1LjVhLjUuNSAwIDAgMCAuNzQuNDM5TDggMTMuMDY5bDUuMjYgMi44N0EuNS41IDAgMCAwIDE0IDE1LjVWMmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMy41ek04IDQuNDFjMS4zODctMS40MjUgNC44NTQgMS4wNyAwIDQuMjc3QzMuMTQ2IDUuNDggNi42MTMgMi45ODYgOCA0LjQxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb29rbWFya0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDQuNDFjMS4zODctMS40MjUgNC44NTQgMS4wNyAwIDQuMjc3QzMuMTQ2IDUuNDggNi42MTMgMi45ODYgOCA0LjQxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NzcuNDE2TDggMTMuMTAxbC01LjIyMyAyLjgxNUEuNS41IDAgMCAxIDIgMTUuNVYyem0yLTFhMSAxIDAgMCAwLTEgMXYxMi41NjZsNC43MjMtMi40ODJhLjUuNSAwIDAgMSAuNTU0IDBMMTMgMTQuNTY2VjJhMSAxIDAgMCAwLTEtMUg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2ttYXJrUGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMTUuNVYyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEzLjVhLjUuNSAwIDAgMS0uNzQuNDM5TDggMTMuMDY5bC01LjI2IDIuODdBLjUuNSAwIDAgMSAyIDE1LjV6bTYuNS0xMWEuNS41IDAgMCAwLTEgMFY2SDZhLjUuNSAwIDAgMCAwIDFoMS41djEuNWEuNS41IDAgMCAwIDEgMFY3SDEwYS41LjUgMCAwIDAgMC0xSDguNVY0LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9va21hcmtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMy41YS41LjUgMCAwIDEtLjc3Ny40MTZMOCAxMy4xMDFsLTUuMjIzIDIuODE1QS41LjUgMCAwIDEgMiAxNS41VjJ6bTItMWExIDEgMCAwIDAtMSAxdjEyLjU2Nmw0LjcyMy0yLjQ4MmEuNS41IDAgMCAxIC41NTQgMEwxMyAxNC41NjZWMmExIDEgMCAwIDAtMS0xSDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0YS41LjUgMCAwIDEgLjUuNVY2SDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWN0g2YS41LjUgMCAwIDEgMC0xaDEuNVY0LjVBLjUuNSAwIDAgMSA4IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9va21hcmtTdGFyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAxNS41VjJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NC40MzlMOCAxMy4wNjlsLTUuMjYgMi44N0EuNS41IDAgMCAxIDIgMTUuNXpNOC4xNiA0LjFhLjE3OC4xNzggMCAwIDAtLjMyIDBsLS42MzQgMS4yODVhLjE3OC4xNzggMCAwIDEtLjEzNC4wOThsLTEuNDIuMjA2YS4xNzguMTc4IDAgMCAwLS4wOTguMzAzTDYuNTggNi45OTNjLjA0Mi4wNDEuMDYxLjEuMDUxLjE1OEw2LjM5IDguNTY1YS4xNzguMTc4IDAgMCAwIC4yNTguMTg3bDEuMjctLjY2OGEuMTc4LjE3OCAwIDAgMSAuMTY1IDBsMS4yNy42NjhhLjE3OC4xNzggMCAwIDAgLjI1Ny0uMTg3TDkuMzY4IDcuMTVhLjE3OC4xNzggMCAwIDEgLjA1LS4xNThsMS4wMjgtMS4wMDFhLjE3OC4xNzggMCAwIDAtLjA5OC0uMzAzbC0xLjQyLS4yMDZhLjE3OC4xNzggMCAwIDEtLjEzNC0uMDk4TDguMTYgNC4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2ttYXJrU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljg0IDQuMWEuMTc4LjE3OCAwIDAgMSAuMzIgMGwuNjM0IDEuMjg1YS4xNzguMTc4IDAgMCAwIC4xMzQuMDk4bDEuNDIuMjA2Yy4xNDUuMDIxLjIwNC4yLjA5OC4zMDNMOS40MiA2Ljk5M2EuMTc4LjE3OCAwIDAgMC0uMDUxLjE1OGwuMjQyIDEuNDE0YS4xNzguMTc4IDAgMCAxLS4yNTguMTg3bC0xLjI3LS42NjhhLjE3OC4xNzggMCAwIDAtLjE2NSAwbC0xLjI3LjY2OGEuMTc4LjE3OCAwIDAgMS0uMjU3LS4xODdsLjI0Mi0xLjQxNGEuMTc4LjE3OCAwIDAgMC0uMDUtLjE1OGwtMS4wMy0xLjAwMWEuMTc4LjE3OCAwIDAgMSAuMDk4LS4zMDNsMS40Mi0uMjA2YS4xNzguMTc4IDAgMCAwIC4xMzQtLjA5OEw3Ljg0IDQuMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NzcuNDE2TDggMTMuMTAxbC01LjIyMyAyLjgxNUEuNS41IDAgMCAxIDIgMTUuNVYyem0yLTFhMSAxIDAgMCAwLTEgMXYxMi41NjZsNC43MjMtMi40ODJhLjUuNSAwIDAgMSAuNTU0IDBMMTMgMTQuNTY2VjJhMSAxIDAgMCAwLTEtMUg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2ttYXJrWEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMTUuNVYyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEzLjVhLjUuNSAwIDAgMS0uNzQuNDM5TDggMTMuMDY5bC01LjI2IDIuODdBLjUuNSAwIDAgMSAyIDE1LjV6TTYuODU0IDUuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhMNy4yOTMgNyA2LjE0NiA4LjE0NmEuNS41IDAgMSAwIC43MDguNzA4TDggNy43MDdsMS4xNDYgMS4xNDdhLjUuNSAwIDEgMCAuNzA4LS43MDhMOC43MDcgN2wxLjE0Ny0xLjE0NmEuNS41IDAgMCAwLS43MDgtLjcwOEw4IDYuMjkzIDYuODU0IDUuMTQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2ttYXJrWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi4xNDYgNS4xNDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA2LjI5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMSAxIC43MDguNzA4TDguNzA3IDdsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDcuNzA3IDYuODU0IDguODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4TDcuMjkzIDcgNi4xNDYgNS44NTRhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEzLjVhLjUuNSAwIDAgMS0uNzc3LjQxNkw4IDEzLjEwMWwtNS4yMjMgMi44MTVBLjUuNSAwIDAgMSAyIDE1LjVWMnptMi0xYTEgMSAwIDAgMC0xIDF2MTIuNTY2bDQuNzIzLTIuNDgyYS41LjUgMCAwIDEgLjU1NCAwTDEzIDE0LjU2NlYyYTEgMSAwIDAgMC0xLTFINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb29rbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTMuNWEuNS41IDAgMCAxLS43NzcuNDE2TDggMTMuMTAxbC01LjIyMyAyLjgxNUEuNS41IDAgMCAxIDIgMTUuNVYyem0yLTFhMSAxIDAgMCAwLTEgMXYxMi41NjZsNC43MjMtMi40ODJhLjUuNSAwIDAgMSAuNTU0IDBMMTMgMTQuNTY2VjJhMSAxIDAgMCAwLTEtMUg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2ttYXJrc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjExLjVhLjUuNSAwIDAgMS0uNzc3LjQxNkw3IDEzLjEwMWwtNC4yMjMgMi44MTVBLjUuNSAwIDAgMSAyIDE1LjVWNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjI2OCAxQTIgMiAwIDAgMSA2IDBoNmEyIDIgMCAwIDEgMiAydjExLjVhLjUuNSAwIDAgMS0uNzc3LjQxNkwxMyAxMy43NjhWMmExIDEgMCAwIDAtMS0xSDQuMjY4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2ttYXJrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDRhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MTEuNWEuNS41IDAgMCAxLS43NzcuNDE2TDcgMTMuMTAxbC00LjIyMyAyLjgxNUEuNS41IDAgMCAxIDIgMTUuNVY0em0yLTFhMSAxIDAgMCAwLTEgMXYxMC41NjZsMy43MjMtMi40ODJhLjUuNSAwIDAgMSAuNTU0IDBMMTEgMTQuNTY2VjRhMSAxIDAgMCAwLTEtMUg0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjY4IDFIMTJhMSAxIDAgMCAxIDEgMXYxMS43NjhsLjIyMy4xNDhBLjUuNSAwIDAgMCAxNCAxMy41VjJhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0xLjczMiAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Jvb2tzaGVsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMGEuNS41IDAgMCAxIC41LjVWMmgxMFYuNWEuNS41IDAgMCAxIDEgMHYxNWEuNS41IDAgMCAxLTEgMFYxNUgzdi41YS41LjUgMCAwIDEtMSAwVi41YS41LjUgMCAwIDEgLjUtLjV6TTMgMTRoMTB2LTNIM3Yzem0wLTRoMTBWN0gzdjN6bTAtNGgxMFYzSDN2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb290c3RyYXBGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMzc1IDcuMTI1VjQuNjU4aDEuNzhjLjk3MyAwIDEuNTQyLjQ1NyAxLjU0MiAxLjIzNyAwIC44MDItLjYwNCAxLjIzLTEuNzY0IDEuMjNINi4zNzV6bTAgMy43NjJoMS44OThjMS4xODQgMCAxLjgxLS40OCAxLjgxLTEuMzc3IDAtLjg4NS0uNjUtMS4zNDgtMS44ODYtMS4zNDhINi4zNzV2Mi43MjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4wMDIgMGE0IDQgMCAwIDAtNCA0djhhNCA0IDAgMCAwIDQgNGg4YTQgNCAwIDAgMCA0LTRWNGE0IDQgMCAwIDAtNC00aC04em0xLjA2IDEyVjMuNTQ1aDMuMzk5YzEuNTg3IDAgMi41NDMuODA5IDIuNTQzIDIuMTEgMCAuODg0LS42NSAxLjY3NS0xLjQ4MyAxLjgxNnYuMWMxLjE0My4xMTcgMS45MDQuOTMxIDEuOTA0IDIuMDMzIDAgMS40ODgtMS4wODQgMi4zOTYtMi44ODggMi4zOTZINS4wNjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9vdHN0cmFwUmVib290IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMTYxIDhhNi44NCA2Ljg0IDAgMSAwIDYuODQyLTYuODQuNTguNTggMCAxIDEgMC0xLjE2IDggOCAwIDEgMS02LjU1NiAzLjQxMmwtLjY2My0uNTc3YS41OC41OCAwIDAgMSAuMjI3LS45OTdsMi41Mi0uNjlhLjU4LjU4IDAgMCAxIC43MjguNjMzbC0uMzMyIDIuNTkyYS41OC41OCAwIDAgMS0uOTU2LjM2NGwtLjY0My0uNTZBNi44MTIgNi44MTIgMCAwIDAgMS4xNiA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNjQxIDExLjY3MVY4Ljg0M2gxLjU3bDEuNDk4IDIuODI4aDEuMzE0TDkuMzc3IDguNjY1Yy44OTctLjMgMS40MjctMS4xMDYgMS40MjctMi4xIDAtMS4zNy0uOTQzLTIuMjQ2LTIuNDU2LTIuMjQ2SDUuNXY3LjM1MmgxLjE0MXptMC0zLjc1VjUuMjc3aDEuNTdjLjg4MSAwIDEuNDE2LjQ5OSAxLjQxNiAxLjMyIDAgLjg0LS41MDQgMS4zMjQtMS4zODYgMS4zMjRoLTEuNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb290c3RyYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4wNjIgMTJoMy40NzVjMS44MDQgMCAyLjg4OC0uOTA4IDIuODg4LTIuMzk2IDAtMS4xMDItLjc2MS0xLjkxNi0xLjkwNC0yLjAzNHYtLjFjLjgzMi0uMTQgMS40ODItLjkzIDEuNDgyLTEuODE2IDAtMS4zLS45NTUtMi4xMS0yLjU0Mi0yLjExSDUuMDYyVjEyem0xLjMxMy00Ljg3NVY0LjY1OGgxLjc4Yy45NzMgMCAxLjU0Mi40NTcgMS41NDIgMS4yMzcgMCAuODAyLS42MDQgMS4yMy0xLjc2NCAxLjIzSDYuMzc1em0wIDMuNzYyVjguMTYyaDEuODIyYzEuMjM2IDAgMS44ODcuNDYzIDEuODg3IDEuMzQ4IDAgLjg5Ni0uNjI3IDEuMzc3LTEuODExIDEuMzc3SDYuMzc1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHY4YTQgNCAwIDAgMS00IDRINGE0IDQgMCAwIDEtNC00VjR6bTQtM2EzIDMgMCAwIDAtMyAzdjhhMyAzIDAgMCAwIDMgM2g4YTMgMyAwIDAgMCAzLTNWNGEzIDMgMCAwIDAtMy0zSDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9yZGVyQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgxNnYxNkgwVjB6bTEgMXY2LjVoNi41VjFIMXptNy41IDB2Ni41SDE1VjFIOC41ek0xNSA4LjVIOC41VjE1SDE1VjguNXpNNy41IDE1VjguNUgxVjE1aDYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3JkZXJCb3R0b20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjk2OSAwSDB2Ljk2OWguNVYxaC40NjlWLjk2OUgxVi41SC45NjlWMHptLjkzNyAxaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC45MzhWMEgzLjc4djF6bTEuODc1IDBoLjkzOFYwaC0uOTM4djF6TTcuNTMxLjk2OVYxaC45MzhWLjk2OUg4LjVWLjVoLS4wMzFWMEg3LjUzdi41SDcuNXYuNDY5aC4wMzF6TTkuNDA2IDFoLjkzOFYwaC0uOTM4djF6bTEuODc1IDBoLjkzOFYwaC0uOTM4djF6bTEuODc1IDBoLjkzOFYwaC0uOTM4djF6bTEuODc1IDBoLjQ2OVYuOTY5aC41VjBoLS45Njl2LjVIMTV2LjQ2OWguMDMxVjF6TTEgMi44NDR2LS45MzhIMHYuOTM4aDF6bTYuNS0uOTM4di45MzhoMXYtLjkzOGgtMXptNy41IDB2LjkzOGgxdi0uOTM4aC0xek0xIDQuNzE5VjMuNzhIMHYuOTM4aDF6bTYuNS0uOTM4di45MzhoMVYzLjc4aC0xem03LjUgMHYuOTM4aDFWMy43OGgtMXpNMSA2LjU5NHYtLjkzOEgwdi45MzhoMXptNi41LS45Mzh2LjkzOGgxdi0uOTM4aC0xem03LjUgMHYuOTM4aDF2LS45MzhoLTF6TS41IDguNWguNDY5di0uMDMxSDFWNy41M0guOTY5VjcuNUguNXYuMDMxSDB2LjkzOGguNVY4LjV6bTEuNDA2IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFIMy43OHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMi44MTMgMHYtLjAzMUg4LjVWNy41M2gtLjAzMVY3LjVINy41M3YuMDMxSDcuNXYuOTM4aC4wMzFWOC41aC45Mzh6bS45MzcgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguNDY5di0uMDMxaC41VjcuNTNoLS41VjcuNWgtLjQ2OXYuMDMxSDE1di45MzhoLjAzMVY4LjV6TTAgOS40MDZ2LjkzOGgxdi0uOTM4SDB6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXptOC41LjkzOHYtLjkzOGgtMXYuOTM4aDF6bS0xNiAuOTM3di45MzhoMXYtLjkzOEgwem03LjUgMHYuOTM4aDF2LS45MzhoLTF6bTguNS45Mzh2LS45MzhoLTF2LjkzOGgxem0tMTYgLjkzN3YuOTM4aDF2LS45MzhIMHptNy41IDB2LjkzOGgxdi0uOTM4aC0xem04LjUuOTM4di0uOTM4aC0xdi45MzhoMXpNMCAxNWgxNnYxSDB2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9yZGVyQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS45NjkgMEgwdi45NjloLjVWMWguNDY5Vi45NjlIMVYuNUguOTY5VjB6bS45MzcgMWguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBIMy43OHYxem0xLjg3NSAwaC45MzhWMGgtLjkzOHYxek03LjUzMS45NjlWMWguOTM4Vi45NjlIOC41Vi41aC0uMDMxVjBINy41M3YuNUg3LjV2LjQ2OWguMDMxek05LjQwNiAxaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC40NjlWLjk2OWguNVYwaC0uOTY5di41SDE1di40NjloLjAzMVYxek0xIDIuODQ0di0uOTM4SDB2LjkzOGgxem02LjUtLjkzOHYuOTM4aDF2LS45MzhoLTF6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXpNMSA0LjcxOVYzLjc4SDB2LjkzOGgxem02LjUtLjkzOHYuOTM4aDFWMy43OGgtMXptNy41IDB2LjkzOGgxVjMuNzhoLTF6TTEgNi41OTR2LS45MzhIMHYuOTM4aDF6bTYuNS0uOTM4di45MzhoMXYtLjkzOGgtMXptNy41IDB2LjkzOGgxdi0uOTM4aC0xek0wIDguNXYtMWgxNnYxSDB6bTAgLjkwNnYuOTM4aDF2LS45MzhIMHptNy41IDB2LjkzOGgxdi0uOTM4aC0xem04LjUuOTM4di0uOTM4aC0xdi45MzhoMXptLTE2IC45Mzd2LjkzOGgxdi0uOTM4SDB6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXptOC41LjkzOHYtLjkzOGgtMXYuOTM4aDF6bS0xNiAuOTM3di45MzhoMXYtLjkzOEgwem03LjUgMHYuOTM4aDF2LS45MzhoLTF6bTguNS45Mzh2LS45MzhoLTF2LjkzOGgxek0wIDE2aC45Njl2LS41SDF2LS40NjlILjk2OVYxNUguNXYuMDMxSDBWMTZ6bTEuOTA2IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFIMy43OHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUtLjV2LjVoLjkzOHYtLjVIOC41di0uNDY5aC0uMDMxVjE1SDcuNTN2LjAzMUg3LjV2LjQ2OWguMDMxem0xLjg3NS41aC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NS0uNXYuNUgxNnYtLjk2OWgtLjVWMTVoLS40Njl2LjAzMUgxNXYuNDY5aC4wMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9yZGVySW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjk2OSAwSDB2Ljk2OWguNVYxaC40NjlWLjk2OUgxVi41SC45NjlWMHptLjkzNyAxaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC45MzhWMEgzLjc4djF6bTEuODc1IDBoLjkzOFYwaC0uOTM4djF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDcuNUgxNnYxSDguNVYxNmgtMVY4LjVIMHYtMWg3LjVWMGgxdjcuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQwNiAxaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC45MzhWMGgtLjkzOHYxem0xLjg3NSAwaC40NjlWLjk2OWguNVYwaC0uOTY5di41SDE1di40NjloLjAzMVYxek0xIDIuODQ0di0uOTM4SDB2LjkzOGgxem0xNC0uOTM4di45MzhoMXYtLjkzOGgtMXpNMSA0LjcxOVYzLjc4SDB2LjkzOGgxem0xNC0uOTM4di45MzhoMVYzLjc4aC0xek0xIDYuNTk0di0uOTM4SDB2LjkzOGgxem0xNC0uOTM4di45MzhoMXYtLjkzOGgtMXpNMCA5LjQwNnYuOTM4aDF2LS45MzhIMHptMTYgLjkzOHYtLjkzOGgtMXYuOTM4aDF6bS0xNiAuOTM3di45MzhoMXYtLjkzOEgwem0xNiAuOTM4di0uOTM4aC0xdi45MzhoMXptLTE2IC45Mzd2LjkzOGgxdi0uOTM4SDB6bTE2IC45Mzh2LS45MzhoLTF2LjkzOGgxek0wIDE2aC45Njl2LS41SDF2LS40NjlILjk2OVYxNUguNXYuMDMxSDBWMTZ6bTEuOTA2IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFIMy43OHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMy43NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NS0uNXYuNUgxNnYtLjk2OWgtLjVWMTVoLS40Njl2LjAzMUgxNXYuNDY5aC4wMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9yZGVyTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDB2MTZoMVYwSDB6bTEuOTA2IDFoLjkzOFYwaC0uOTM4djF6bTEuODc1IDBoLjkzOFYwSDMuNzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXpNNy41MzEuOTY5VjFoLjkzOFYuOTY5SDguNVYuNWgtLjAzMVYwSDcuNTN2LjVINy41di40NjloLjAzMXpNOS40MDYgMWguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguNDY5Vi45NjloLjVWMGgtLjk2OXYuNUgxNXYuNDY5aC4wMzFWMXpNNy41IDEuOTA2di45MzhoMXYtLjkzOGgtMXptNy41IDB2LjkzOGgxdi0uOTM4aC0xek03LjUgMy43ODF2LjkzOGgxVjMuNzhoLTF6bTcuNSAwdi45MzhoMVYzLjc4aC0xek03LjUgNS42NTZ2LjkzOGgxdi0uOTM4aC0xem03LjUgMHYuOTM4aDF2LS45MzhoLTF6TTEuOTA2IDguNWguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMUgzLjc4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0yLjgxMyAwdi0uMDMxSDguNVY3LjUzaC0uMDMxVjcuNUg3LjUzdi4wMzFINy41di45MzhoLjAzMVY4LjVoLjkzOHptLjkzNyAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC40Njl2LS4wMzFoLjVWNy41M2gtLjVWNy41aC0uNDY5di4wMzFIMTV2LjkzOGguMDMxVjguNXpNNy41IDkuNDA2di45MzhoMXYtLjkzOGgtMXptOC41LjkzOHYtLjkzOGgtMXYuOTM4aDF6bS04LjUuOTM3di45MzhoMXYtLjkzOGgtMXptOC41LjkzOHYtLjkzOGgtMXYuOTM4aDF6bS04LjUuOTM3di45MzhoMXYtLjkzOGgtMXptOC41LjkzOHYtLjkzOGgtMXYuOTM4aDF6TTEuOTA2IDE2aC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xSDMuNzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1LS41di41aC45Mzh2LS41SDguNXYtLjQ2OWgtLjAzMVYxNUg3LjUzdi4wMzFINy41di40NjloLjAzMXptMS44NzUuNWguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUtLjV2LjVIMTZ2LS45NjloLS41VjE1aC0uNDY5di4wMzFIMTV2LjQ2OWguMDMxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JvcmRlck1pZGRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uOTY5IDBIMHYuOTY5aC41VjFoLjQ2OVYuOTY5SDFWLjVILjk2OVYwem0uOTM3IDFoLjkzOFYwaC0uOTM4djF6bTEuODc1IDBoLjkzOFYwSDMuNzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXpNOC41IDE2aC0xVjBoMXYxNnptLjkwNi0xNWguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguNDY5Vi45NjloLjVWMGgtLjk2OXYuNUgxNXYuNDY5aC4wMzFWMXpNMSAyLjg0NHYtLjkzOEgwdi45MzhoMXptMTQtLjkzOHYuOTM4aDF2LS45MzhoLTF6TTEgNC43MTlWMy43OEgwdi45MzhoMXptMTQtLjkzOHYuOTM4aDFWMy43OGgtMXpNMSA2LjU5NHYtLjkzOEgwdi45MzhoMXptMTQtLjkzOHYuOTM4aDF2LS45MzhoLTF6TS41IDguNWguNDY5di0uMDMxSDFWNy41M0guOTY5VjcuNUguNXYuMDMxSDB2LjkzOGguNVY4LjV6bTEuNDA2IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFIMy43OHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMy43NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC40Njl2LS4wMzFoLjVWNy41M2gtLjVWNy41aC0uNDY5di4wMzFIMTV2LjkzOGguMDMxVjguNXpNMCA5LjQwNnYuOTM4aDF2LS45MzhIMHptMTYgLjkzOHYtLjkzOGgtMXYuOTM4aDF6bS0xNiAuOTM3di45MzhoMXYtLjkzOEgwem0xNiAuOTM4di0uOTM4aC0xdi45MzhoMXptLTE2IC45Mzd2LjkzOGgxdi0uOTM4SDB6bTE2IC45Mzh2LS45MzhoLTF2LjkzOGgxek0wIDE2aC45Njl2LS41SDF2LS40NjlILjk2OVYxNUguNXYuMDMxSDBWMTZ6bTEuOTA2IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFIMy43OHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMy43NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NS0uNXYuNUgxNnYtLjk2OWgtLjVWMTVoLS40Njl2LjAzMUgxNXYuNDY5aC4wMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm9yZGVyT3V0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEuOTA2di45MzhoMXYtLjkzOGgtMXptMCAxLjg3NXYuOTM4aDFWMy43OGgtMXptMCAxLjg3NXYuOTM4aDF2LS45MzhoLTF6TTEuOTA2IDguNWguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMUgzLjc4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0yLjgxMyAwdi0uMDMxSDguNVY3LjUzaC0uMDMxVjcuNUg3LjUzdi4wMzFINy41di45MzhoLjAzMVY4LjVoLjkzOHptLjkzNyAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxek03LjUgOS40MDZ2LjkzOGgxdi0uOTM4aC0xem0wIDEuODc1di45MzhoMXYtLjkzOGgtMXptMCAxLjg3NXYuOTM4aDF2LS45MzhoLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwdjE2aDE2VjBIMHptMSAxaDE0djE0SDFWMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3JkZXJSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uOTY5IDBIMHYuOTY5aC41VjFoLjQ2OVYuOTY5SDFWLjVILjk2OVYwem0uOTM3IDFoLjkzOFYwaC0uOTM4djF6bTEuODc1IDBoLjkzOFYwSDMuNzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXpNNy41MzEuOTY5VjFoLjkzOFYuOTY5SDguNVYuNWgtLjAzMVYwSDcuNTN2LjVINy41di40NjloLjAzMXpNOS40MDYgMWguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXptMS44NzUgMGguOTM4VjBoLS45Mzh2MXpNMTYgMGgtMXYxNmgxVjB6TTEgMi44NDR2LS45MzhIMHYuOTM4aDF6bTYuNS0uOTM4di45MzhoMXYtLjkzOGgtMXpNMSA0LjcxOVYzLjc4SDB2LjkzOGgxem02LjUtLjkzOHYuOTM4aDFWMy43OGgtMXpNMSA2LjU5NHYtLjkzOEgwdi45MzhoMXptNi41LS45Mzh2LjkzOGgxdi0uOTM4aC0xek0uNSA4LjVoLjQ2OXYtLjAzMUgxVjcuNTNILjk2OVY3LjVILjV2LjAzMUgwdi45MzhoLjVWOC41em0xLjQwNiAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xSDMuNzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTIuODEzIDB2LS4wMzFIOC41VjcuNTNoLS4wMzFWNy41SDcuNTN2LjAzMUg3LjV2LjkzOGguMDMxVjguNWguOTM4em0uOTM3IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6TTAgOS40MDZ2LjkzOGgxdi0uOTM4SDB6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXpNMCAxMS4yODF2LjkzOGgxdi0uOTM4SDB6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXpNMCAxMy4xNTZ2LjkzOGgxdi0uOTM4SDB6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXpNMCAxNmguOTY5di0uNUgxdi0uNDY5SC45NjlWMTVILjV2LjAzMUgwVjE2em0xLjkwNiAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xSDMuNzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1LS41di41aC45Mzh2LS41SDguNXYtLjQ2OWgtLjAzMVYxNUg3LjUzdi4wMzFINy41di40NjloLjAzMXptMS44NzUuNWguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3JkZXJTdHlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDMuNWEuNS41IDAgMCAxIC41LS41aDEzYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMTNhLjUuNSAwIDAgMS0uNS0uNXYtMXptMCA0YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMXptMCA0YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptOCAwYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptLTQgMGEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTggMGEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bS00LTRhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JvcmRlclRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDB2MWgxNlYwSDB6bTEgMi44NDR2LS45MzhIMHYuOTM4aDF6bTYuNS0uOTM4di45MzhoMXYtLjkzOGgtMXptNy41IDB2LjkzOGgxdi0uOTM4aC0xek0xIDQuNzE5VjMuNzhIMHYuOTM4aDF6bTYuNS0uOTM4di45MzhoMVYzLjc4aC0xem03LjUgMHYuOTM4aDFWMy43OGgtMXpNMSA2LjU5NHYtLjkzOEgwdi45MzhoMXptNi41LS45Mzh2LjkzOGgxdi0uOTM4aC0xem03LjUgMHYuOTM4aDF2LS45MzhoLTF6TS41IDguNWguNDY5di0uMDMxSDFWNy41M0guOTY5VjcuNUguNXYuMDMxSDB2LjkzOGguNVY4LjV6bTEuNDA2IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFIMy43OHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMi44MTMgMHYtLjAzMUg4LjVWNy41M2gtLjAzMVY3LjVINy41M3YuMDMxSDcuNXYuOTM4aC4wMzFWOC41aC45Mzh6bS45MzcgMGguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguNDY5di0uMDMxaC41VjcuNTNoLS41VjcuNWgtLjQ2OXYuMDMxSDE1di45MzhoLjAzMVY4LjV6TTAgOS40MDZ2LjkzOGgxdi0uOTM4SDB6bTcuNSAwdi45MzhoMXYtLjkzOGgtMXptOC41LjkzOHYtLjkzOGgtMXYuOTM4aDF6bS0xNiAuOTM3di45MzhoMXYtLjkzOEgwem03LjUgMHYuOTM4aDF2LS45MzhoLTF6bTguNS45Mzh2LS45MzhoLTF2LjkzOGgxem0tMTYgLjkzN3YuOTM4aDF2LS45MzhIMHptNy41IDB2LjkzOGgxdi0uOTM4aC0xem04LjUuOTM4di0uOTM4aC0xdi45MzhoMXpNMCAxNmguOTY5di0uNUgxdi0uNDY5SC45NjlWMTVILjV2LjAzMUgwVjE2em0xLjkwNiAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUgMGguOTM4di0xSDMuNzh2MXptMS44NzUgMGguOTM4di0xaC0uOTM4djF6bTEuODc1LS41di41aC45Mzh2LS41SDguNXYtLjQ2OWgtLjAzMVYxNUg3LjUzdi4wMzFINy41di40NjloLjAzMXptMS44NzUuNWguOTM4di0xaC0uOTM4djF6bTEuODc1IDBoLjkzOHYtMWgtLjkzOHYxem0xLjg3NSAwaC45Mzh2LTFoLS45Mzh2MXptMS44NzUtLjV2LjVIMTZ2LS45NjloLS41VjE1aC0uNDY5di4wMzFIMTV2LjQ2OWguMDMxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JvcmRlcldpZHRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMy41QS41LjUgMCAwIDEgLjUgM2gxNWEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVILjVhLjUuNSAwIDAgMS0uNS0uNXYtMnptMCA1QS41LjUgMCAwIDEgLjUgOGgxNWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVILjVhLjUuNSAwIDAgMS0uNS0uNXYtMXptMCA0YS41LjUgMCAwIDEgLjUtLjVoMTVhLjUuNSAwIDAgMSAwIDFILjVhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaC45Njl2LjVIMXYuNDY5SC45NjlWMUguNVYuOTY5SDBWMHptMi44NDQgMWgtLjkzOFYwaC45Mzh2MXptMS44NzUgMEgzLjc4VjBoLjkzOHYxem0xLjg3NSAwaC0uOTM4VjBoLjkzOHYxem0uOTM3IDBWLjk2OUg3LjVWLjVoLjAzMVYwaC45Mzh2LjVIOC41di40NjloLS4wMzFWMUg3LjUzem0yLjgxMyAwaC0uOTM4VjBoLjkzOHYxem0xLjg3NSAwaC0uOTM4VjBoLjkzOHYxem0xLjg3NSAwaC0uOTM4VjBoLjkzOHYxek0xNS41IDFoLS40NjlWLjk2OUgxNVYuNWguMDMxVjBIMTZ2Ljk2OWgtLjVWMXpNMSAxLjkwNnYuOTM4SDB2LS45MzhoMXptNi41LjkzOHYtLjkzOGgxdi45MzhoLTF6bTcuNSAwdi0uOTM4aDF2LjkzOGgtMXpNMSAzLjc4di45MzhIMFYzLjc4aDF6bTYuNS45MzhWMy43OGgxdi45MzhoLTF6bTcuNSAwVjMuNzhoMXYuOTM4aC0xek0xIDUuNjU2di45MzhIMHYtLjkzOGgxem02LjUuOTM4di0uOTM4aDF2LjkzOGgtMXptNy41IDB2LS45MzhoMXYuOTM4aC0xek0uOTY5IDguNUguNXYtLjAzMUgwVjcuNTNoLjVWNy41aC40Njl2LjAzMUgxdi45MzhILjk2OVY4LjV6bTEuODc1IDBoLS45Mzh2LTFoLjkzOHYxem0xLjg3NSAwSDMuNzh2LTFoLjkzOHYxem0xLjg3NSAwaC0uOTM4di0xaC45Mzh2MXptMS44NzUtLjAzMVY4LjVINy41M3YtLjAzMUg3LjVWNy41M2guMDMxVjcuNWguOTM4di4wMzFIOC41di45MzhoLS4wMzF6bTEuODc1LjAzMWgtLjkzOHYtMWguOTM4djF6bTEuODc1IDBoLS45Mzh2LTFoLjkzOHYxem0xLjg3NSAwaC0uOTM4di0xaC45Mzh2MXptMS40MDYgMGgtLjQ2OXYtLjAzMUgxNVY3LjUzaC4wMzFWNy41aC40Njl2LjAzMWguNXYuOTM4aC0uNVY4LjV6TTAgMTAuMzQ0di0uOTM4aDF2LjkzOEgwem03LjUgMHYtLjkzOGgxdi45MzhoLTF6bTguNS0uOTM4di45MzhoLTF2LS45MzhoMXpNMCAxMi4yMnYtLjkzOGgxdi45MzhIMHptNy41IDB2LS45MzhoMXYuOTM4aC0xem04LjUtLjkzOHYuOTM4aC0xdi0uOTM4aDF6TTAgMTQuMDk0di0uOTM4aDF2LjkzOEgwem03LjUgMHYtLjkzOGgxdi45MzhoLTF6bTguNS0uOTM4di45MzhoLTF2LS45MzhoMXpNLjk2OSAxNkgwdi0uOTY5aC41VjE1aC40Njl2LjAzMUgxdi40NjlILjk2OXYuNXptMS44NzUgMGgtLjkzOHYtMWguOTM4djF6bTEuODc1IDBIMy43OHYtMWguOTM4djF6bTEuODc1IDBoLS45Mzh2LTFoLjkzOHYxem0uOTM3IDB2LS41SDcuNXYtLjQ2OWguMDMxVjE1aC45Mzh2LjAzMUg4LjV2LjQ2OWgtLjAzMXYuNUg3LjUzem0yLjgxMyAwaC0uOTM4di0xaC45Mzh2MXptMS44NzUgMGgtLjkzOHYtMWguOTM4djF6bTEuODc1IDBoLS45Mzh2LTFoLjkzOHYxem0uOTM3IDB2LS41SDE1di0uNDY5aC4wMzFWMTVoLjQ2OXYuMDMxaC41VjE2aC0uOTY5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JvdW5kaW5nQm94Q2lyY2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDFhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yek0wIDJhMiAyIDAgMCAxIDMuOTM3LS41aDguMTI2QTIgMiAwIDEgMSAxNC41IDMuOTM3djguMTI2YTIgMiAwIDEgMS0yLjQzNyAyLjQzN0gzLjkzN0EyIDIgMCAxIDEgMS41IDEyLjA2M1YzLjkzN0EyIDIgMCAwIDEgMCAyem0yLjUgMS45Mzd2OC4xMjZjLjcwMy4xOCAxLjI1Ni43MzQgMS40MzcgMS40MzdoOC4xMjZhMi4wMDQgMi4wMDQgMCAwIDEgMS40MzctMS40MzdWMy45MzdBMi4wMDQgMi4wMDQgMCAwIDEgMTIuMDYzIDIuNUgzLjkzN0EyLjAwNCAyLjAwNCAwIDAgMSAyLjUgMy45Mzd6TTE0IDFhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yek0yIDEzYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMnptMTIgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm91bmRpbmdCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyVjBIMHY1aDJ2NkgwdjVoNXYtMmg2djJoNXYtNWgtMlY1aDJWMGgtNXYySDV6bTYgMXYyaDJ2NmgtMnYySDV2LTJIM1Y1aDJWM2g2em0xLTJoM3YzaC0zVjF6bTMgMTF2M2gtM3YtM2gzek00IDE1SDF2LTNoM3Yzek0xIDRWMWgzdjNIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3hBcnJvd0Rvd25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjM2NCAxMi41YS41LjUgMCAwIDAgLjUuNUgxNC41YTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTBBMS41IDEuNSAwIDAgMCAxNC41IDBoLTEwQTEuNSAxLjUgMCAwIDAgMyAxLjV2Ni42MzZhLjUuNSAwIDEgMCAxIDBWMS41YS41LjUgMCAwIDEgLjUtLjVoMTBhLjUuNSAwIDAgMSAuNS41djEwYS41LjUgMCAwIDEtLjUuNUg3Ljg2NGEuNS41IDAgMCAwLS41LjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgMTUuNWEuNS41IDAgMCAwIC41LjVoNWEuNS41IDAgMCAwIDAtMUgxLjcwN2w4LjE0Ny04LjE0NmEuNS41IDAgMCAwLS43MDgtLjcwOEwxIDE0LjI5M1YxMC41YS41LjUgMCAwIDAtMSAwdjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94QXJyb3dEb3duUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTguNjM2IDEyLjVhLjUuNSAwIDAgMS0uNS41SDEuNUExLjUgMS41IDAgMCAxIDAgMTEuNXYtMTBBMS41IDEuNSAwIDAgMSAxLjUgMGgxMEExLjUgMS41IDAgMCAxIDEzIDEuNXY2LjYzNmEuNS41IDAgMCAxLTEgMFYxLjVhLjUuNSAwIDAgMC0uNS0uNWgtMTBhLjUuNSAwIDAgMC0uNS41djEwYS41LjUgMCAwIDAgLjUuNWg2LjYzNmEuNS41IDAgMCAxIC41LjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2IDE1LjVhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEgMC0xaDMuNzkzTDYuMTQ2IDYuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDE1IDE0LjI5M1YxMC41YS41LjUgMCAwIDEgMSAwdjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94QXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjUgMTBhLjUuNSAwIDAgMS0uNS0uNXYtOGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAuNS41djhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDAgMCAxaDJBMS41IDEuNSAwIDAgMCAxNCA5LjV2LThBMS41IDEuNSAwIDAgMCAxMi41IDBoLTlBMS41IDEuNSAwIDAgMCAyIDEuNXY4QTEuNSAxLjUgMCAwIDAgMy41IDExaDJhLjUuNSAwIDAgMCAwLTFoLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuNjQ2IDE1Ljg1NGEuNS41IDAgMCAwIC43MDggMGwzLTNhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDE0LjI5M1Y1LjVhLjUuNSAwIDAgMC0xIDB2OC43OTNsLTIuMTQ2LTIuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMyAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JveEFycm93SW5Eb3duTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOS42MzYgMi41YS41LjUgMCAwIDAtLjUtLjVIMi41QTEuNSAxLjUgMCAwIDAgMSAzLjV2MTBBMS41IDEuNSAwIDAgMCAyLjUgMTVoMTBhMS41IDEuNSAwIDAgMCAxLjUtMS41VjYuODY0YS41LjUgMCAwIDAtMSAwVjEzLjVhLjUuNSAwIDAgMS0uNS41aC0xMGEuNS41IDAgMCAxLS41LS41di0xMGEuNS41IDAgMCAxIC41LS41aDYuNjM2YS41LjUgMCAwIDAgLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMTAuNWEuNS41IDAgMCAwIC41LjVoNWEuNS41IDAgMCAwIDAtMUg2LjcwN2w4LjE0Ny04LjE0NmEuNS41IDAgMCAwLS43MDgtLjcwOEw2IDkuMjkzVjUuNWEuNS41IDAgMCAwLTEgMHY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JveEFycm93SW5Eb3duUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYuMzY0IDIuNWEuNS41IDAgMCAxIC41LS41SDEzLjVBMS41IDEuNSAwIDAgMSAxNSAzLjV2MTBhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xMEExLjUgMS41IDAgMCAxIDIgMTMuNVY2Ljg2NGEuNS41IDAgMSAxIDEgMFYxMy41YS41LjUgMCAwIDAgLjUuNWgxMGEuNS41IDAgMCAwIC41LS41di0xMGEuNS41IDAgMCAwLS41LS41SDYuODY0YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExIDEwLjVhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEgMC0xaDMuNzkzTDEuMTQ2IDEuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDEwIDkuMjkzVjUuNWEuNS41IDAgMCAxIDEgMHY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JveEFycm93SW5Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjUgNmEuNS41IDAgMCAwLS41LjV2OGEuNS41IDAgMCAwIC41LjVoOWEuNS41IDAgMCAwIC41LS41di04YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMSAwLTFoMkExLjUgMS41IDAgMCAxIDE0IDYuNXY4YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDIgMTQuNXYtOEExLjUgMS41IDAgMCAxIDMuNSA1aDJhLjUuNSAwIDAgMSAwIDFoLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuNjQ2IDExLjg1NGEuNS41IDAgMCAwIC43MDggMGwzLTNhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1YxLjVhLjUuNSAwIDAgMC0xIDB2OC43OTNMNS4zNTQgOC4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwzIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94QXJyb3dJbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDMuNWEuNS41IDAgMCAwLS41LS41aC04YS41LjUgMCAwIDAtLjUuNXY5YS41LjUgMCAwIDAgLjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMSAxIDB2MkExLjUgMS41IDAgMCAxIDkuNSAxNGgtOEExLjUgMS41IDAgMCAxIDAgMTIuNXYtOUExLjUgMS41IDAgMCAxIDEuNSAyaDhBMS41IDEuNSAwIDAgMSAxMSAzLjV2MmEuNS41IDAgMCAxLTEgMHYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNC4xNDYgOC4zNTRhLjUuNSAwIDAgMSAwLS43MDhsMy0zYS41LjUgMCAxIDEgLjcwOC43MDhMNS43MDcgNy41SDE0LjVhLjUuNSAwIDAgMSAwIDFINS43MDdsMi4xNDcgMi4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtMy0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JveEFycm93SW5SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAzLjVhLjUuNSAwIDAgMSAuNS0uNWg4YS41LjUgMCAwIDEgLjUuNXY5YS41LjUgMCAwIDEtLjUuNWgtOGEuNS41IDAgMCAxLS41LS41di0yYS41LjUgMCAwIDAtMSAwdjJBMS41IDEuNSAwIDAgMCA2LjUgMTRoOGExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTlBMS41IDEuNSAwIDAgMCAxNC41IDJoLThBMS41IDEuNSAwIDAgMCA1IDMuNXYyYS41LjUgMCAwIDAgMSAwdi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMS44NTQgOC4zNTRhLjUuNSAwIDAgMCAwLS43MDhsLTMtM2EuNS41IDAgMSAwLS43MDguNzA4TDEwLjI5MyA3LjVIMS41YS41LjUgMCAwIDAgMCAxaDguNzkzbC0yLjE0NyAyLjE0NmEuNS41IDAgMCAwIC43MDguNzA4bDMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3hBcnJvd0luVXBMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05LjYzNiAxMy41YS41LjUgMCAwIDEtLjUuNUgyLjVBMS41IDEuNSAwIDAgMSAxIDEyLjV2LTEwQTEuNSAxLjUgMCAwIDEgMi41IDFoMTBBMS41IDEuNSAwIDAgMSAxNCAyLjV2Ni42MzZhLjUuNSAwIDAgMS0xIDBWMi41YS41LjUgMCAwIDAtLjUtLjVoLTEwYS41LjUgMCAwIDAtLjUuNXYxMGEuNS41IDAgMCAwIC41LjVoNi42MzZhLjUuNSAwIDAgMSAuNS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDUuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFINi43MDdsOC4xNDcgOC4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw2IDYuNzA3VjEwLjVhLjUuNSAwIDAgMS0xIDB2LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94QXJyb3dJblVwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYuMzY0IDEzLjVhLjUuNSAwIDAgMCAuNS41SDEzLjVhMS41IDEuNSAwIDAgMCAxLjUtMS41di0xMEExLjUgMS41IDAgMCAwIDEzLjUgMWgtMTBBMS41IDEuNSAwIDAgMCAyIDIuNXY2LjYzNmEuNS41IDAgMSAwIDEgMFYyLjVhLjUuNSAwIDAgMSAuNS0uNWgxMGEuNS41IDAgMCAxIC41LjV2MTBhLjUuNSAwIDAgMS0uNS41SDYuODY0YS41LjUgMCAwIDAtLjUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEgNS41YS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoMy43OTNsLTguMTQ3IDguMTQ2YS41LjUgMCAwIDAgLjcwOC43MDhMMTAgNi43MDdWMTAuNWEuNS41IDAgMCAwIDEgMHYtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3hBcnJvd0luVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuNSAxMGEuNS41IDAgMCAxLS41LS41di04YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIC41LjV2OGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMCAwIDFoMkExLjUgMS41IDAgMCAwIDE0IDkuNXYtOEExLjUgMS41IDAgMCAwIDEyLjUgMGgtOUExLjUgMS41IDAgMCAwIDIgMS41djhBMS41IDEuNSAwIDAgMCAzLjUgMTFoMmEuNS41IDAgMCAwIDAtMWgtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy42NDYgNC4xNDZhLjUuNSAwIDAgMSAuNzA4IDBsMyAzYS41LjUgMCAwIDEtLjcwOC43MDhMOC41IDUuNzA3VjE0LjVhLjUuNSAwIDAgMS0xIDBWNS43MDdMNS4zNTQgNy44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMy0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JveEFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAxMi41YS41LjUgMCAwIDAgLjUuNWg4YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtOGEuNS41IDAgMCAwLS41LjV2MmEuNS41IDAgMCAxLTEgMHYtMkExLjUgMS41IDAgMCAxIDYuNSAyaDhBMS41IDEuNSAwIDAgMSAxNiAzLjV2OWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLThBMS41IDEuNSAwIDAgMSA1IDEyLjV2LTJhLjUuNSAwIDAgMSAxIDB2MnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNLjE0NiA4LjM1NGEuNS41IDAgMCAxIDAtLjcwOGwzLTNhLjUuNSAwIDEgMSAuNzA4LjcwOEwxLjcwNyA3LjVIMTAuNWEuNS41IDAgMCAxIDAgMUgxLjcwN2wyLjE0NyAyLjE0NmEuNS41IDAgMCAxLS43MDguNzA4bC0zLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94QXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMTIuNWEuNS41IDAgMCAxLS41LjVoLThhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDhhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMCAxIDB2LTJBMS41IDEuNSAwIDAgMCA5LjUgMmgtOEExLjUgMS41IDAgMCAwIDAgMy41djlBMS41IDEuNSAwIDAgMCAxLjUgMTRoOGExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTJhLjUuNSAwIDAgMC0xIDB2MnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTUuODU0IDguMzU0YS41LjUgMCAwIDAgMC0uNzA4bC0zLTNhLjUuNSAwIDAgMC0uNzA4LjcwOEwxNC4yOTMgNy41SDUuNWEuNS41IDAgMCAwIDAgMWg4Ljc5M2wtMi4xNDcgMi4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwzLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94QXJyb3dVcExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuMzY0IDMuNWEuNS41IDAgMCAxIC41LS41SDE0LjVBMS41IDEuNSAwIDAgMSAxNiA0LjV2MTBhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xMEExLjUgMS41IDAgMCAxIDMgMTQuNVY3Ljg2NGEuNS41IDAgMSAxIDEgMFYxNC41YS41LjUgMCAwIDAgLjUuNWgxMGEuNS41IDAgMCAwIC41LS41di0xMGEuNS41IDAgMCAwLS41LS41SDcuODY0YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgLjVBLjUuNSAwIDAgMSAuNSAwaDVhLjUuNSAwIDAgMSAwIDFIMS43MDdsOC4xNDcgOC4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEwxIDEuNzA3VjUuNWEuNS41IDAgMCAxLTEgMHYtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3hBcnJvd1VwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTguNjM2IDMuNWEuNS41IDAgMCAwLS41LS41SDEuNUExLjUgMS41IDAgMCAwIDAgNC41djEwQTEuNSAxLjUgMCAwIDAgMS41IDE2aDEwYTEuNSAxLjUgMCAwIDAgMS41LTEuNVY3Ljg2NGEuNS41IDAgMCAwLTEgMFYxNC41YS41LjUgMCAwIDEtLjUuNWgtMTBhLjUuNSAwIDAgMS0uNS0uNXYtMTBhLjUuNSAwIDAgMSAuNS0uNWg2LjYzNmEuNS41IDAgMCAwIC41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNiAuNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDMuNzkzTDYuMTQ2IDkuMTQ2YS41LjUgMCAxIDAgLjcwOC43MDhMMTUgMS43MDdWNS41YS41LjUgMCAwIDAgMSAwdi01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JveEFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuNSA2YS41LjUgMCAwIDAtLjUuNXY4YS41LjUgMCAwIDAgLjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LThhLjUuNSAwIDAgMC0uNS0uNWgtMmEuNS41IDAgMCAxIDAtMWgyQTEuNSAxLjUgMCAwIDEgMTQgNi41djhhMS41IDEuNSAwIDAgMS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgMiAxNC41di04QTEuNSAxLjUgMCAwIDEgMy41IDVoMmEuNS41IDAgMCAxIDAgMWgtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy42NDYuMTQ2YS41LjUgMCAwIDEgLjcwOCAwbDMgM2EuNS41IDAgMCAxLS43MDguNzA4TDguNSAxLjcwN1YxMC41YS41LjUgMCAwIDEtMSAwVjEuNzA3TDUuMzU0IDMuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCb3hTZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTg2IDEuMTEzYS41LjUgMCAwIDAtLjM3MiAwTDEuODQ2IDMuNWwyLjQwNC45NjFMMTAuNDA0IDJsLTIuMjE4LS44ODd6bTMuNTY0IDEuNDI2TDUuNTk2IDUgOCA1Ljk2MSAxNC4xNTQgMy41bC0yLjQwNC0uOTYxem0zLjI1IDEuNy02LjUgMi42djcuOTIybDYuNS0yLjZWNC4yNHpNNy41IDE0Ljc2MlY2LjgzOEwxIDQuMjM5djcuOTIzbDYuNSAyLjZ6TTcuNDQzLjE4NGExLjUgMS41IDAgMCAxIDEuMTE0IDBsNy4xMjkgMi44NTJBLjUuNSAwIDAgMSAxNiAzLjV2OC42NjJhMSAxIDAgMCAxLS42MjkuOTI4bC03LjE4NSAyLjg3NGEuNS41IDAgMCAxLS4zNzIgMEwuNjMgMTMuMDlhMSAxIDAgMCAxLS42My0uOTI4VjMuNWEuNS41IDAgMCAxIC4zMTQtLjQ2NEw3LjQ0My4xODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTg2IDEuMTEzYS41LjUgMCAwIDAtLjM3MiAwTDEuODQ2IDMuNSA4IDUuOTYxIDE0LjE1NCAzLjUgOC4xODYgMS4xMTN6TTE1IDQuMjM5bC02LjUgMi42djcuOTIybDYuNS0yLjZWNC4yNHpNNy41IDE0Ljc2MlY2LjgzOEwxIDQuMjM5djcuOTIzbDYuNSAyLjZ6TTcuNDQzLjE4NGExLjUgMS41IDAgMCAxIDEuMTE0IDBsNy4xMjkgMi44NTJBLjUuNSAwIDAgMSAxNiAzLjV2OC42NjJhMSAxIDAgMCAxLS42MjkuOTI4bC03LjE4NSAyLjg3NGEuNS41IDAgMCAxLS4zNzIgMEwuNjMgMTMuMDlhMSAxIDAgMCAxLS42My0uOTI4VjMuNWEuNS41IDAgMCAxIC4zMTQtLjQ2NEw3LjQ0My4xODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJhY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuMTE0IDguMDYzVjcuOWMxLjAwNS0uMTAyIDEuNDk3LS42MTUgMS40OTctMS42VjQuNTAzYzAtMS4wOTQuMzktMS41MzggMS4zNTQtMS41MzhoLjI3M1YyaC0uMzc2QzMuMjUgMiAyLjQ5IDIuNzU5IDIuNDkgNC4zNTJ2MS41MjRjMCAxLjA5NC0uMzc2IDEuNDU2LTEuNDkgMS40NTZ2MS4yOTljMS4xMTQgMCAxLjQ5LjM2MiAxLjQ5IDEuNDU2djEuNTI0YzAgMS41OTMuNzU5IDIuMzUyIDIuMzcyIDIuMzUyaC4zNzZ2LS45NjRoLS4yNzNjLS45NjQgMC0xLjM1NC0uNDQ0LTEuMzU0LTEuNTM4VjkuNjYzYzAtLjk4NC0uNDkyLTEuNDk3LTEuNDk3LTEuNnpNMTMuODg2IDcuOXYuMTYzYy0xLjAwNS4xMDMtMS40OTcuNjE2LTEuNDk3IDEuNnYxLjc5OGMwIDEuMDk0LS4zOSAxLjUzOC0xLjM1NCAxLjUzOGgtLjI3M3YuOTY0aC4zNzZjMS42MTMgMCAyLjM3Mi0uNzU5IDIuMzcyLTIuMzUydi0xLjUyNGMwLTEuMDk0LjM3Ni0xLjQ1NiAxLjQ5LTEuNDU2VjcuMzMyYy0xLjExNCAwLTEuNDktLjM2Mi0xLjQ5LTEuNDU2VjQuMzUyQzEzLjUxIDIuNzU5IDEyLjc1IDIgMTEuMTM4IDJoLS4zNzZ2Ljk2NGguMjczYy45NjQgMCAxLjM1NC40NDQgMS4zNTQgMS41MzhWNi4zYzAgLjk4NC40OTIgMS40OTcgMS40OTcgMS42elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JyaWNrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIC41QS41LjUgMCAwIDEgLjUgMGgxNWEuNS41IDAgMCAxIC41LjV2M2EuNS41IDAgMCAxLS41LjVIMTR2MmgxLjVhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMS0uNS41SDE0djJoMS41YS41LjUgMCAwIDEgLjUuNXYzYS41LjUgMCAwIDEtLjUuNUguNWEuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAwIDEgLjUtLjVIMnYtMkguNWEuNS41IDAgMCAxLS41LS41di0zQS41LjUgMCAwIDEgLjUgNkgyVjRILjVhLjUuNSAwIDAgMS0uNS0uNXYtM3pNMyA0djJoNC41VjRIM3ptNS41IDB2MkgxM1Y0SDguNXpNMyAxMHYyaDQuNXYtMkgzem01LjUgMHYySDEzdi0ySDguNXpNMSAxdjJoMy41VjFIMXptNC41IDB2Mmg1VjFoLTV6bTYgMHYySDE1VjFoLTMuNXpNMSA3djJoMy41VjdIMXptNC41IDB2Mmg1VjdoLTV6bTYgMHYySDE1VjdoLTMuNXpNMSAxM3YyaDMuNXYtMkgxem00LjUgMHYyaDV2LTJoLTV6bTYgMHYySDE1di0yaC0zLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJpZWZjYXNlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMUExLjUgMS41IDAgMCAwIDUgMi41VjNIMS41QTEuNSAxLjUgMCAwIDAgMCA0LjV2MS4zODRsNy42MTQgMi4wM2ExLjUgMS41IDAgMCAwIC43NzIgMEwxNiA1Ljg4NFY0LjVBMS41IDEuNSAwIDAgMCAxNC41IDNIMTF2LS41QTEuNSAxLjUgMCAwIDAgOS41IDFoLTN6bTAgMWgzYS41LjUgMCAwIDEgLjUuNVYzSDZ2LS41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMi41QTEuNSAxLjUgMCAwIDAgMS41IDE0aDEzYTEuNSAxLjUgMCAwIDAgMS41LTEuNVY2Ljg1TDguMTI5IDguOTQ3YS41LjUgMCAwIDEtLjI1OCAwTDAgNi44NXY1LjY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JyaWVmY2FzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMUExLjUgMS41IDAgMCAwIDUgMi41VjNIMS41QTEuNSAxLjUgMCAwIDAgMCA0LjV2OEExLjUgMS41IDAgMCAwIDEuNSAxNGgxM2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LThBMS41IDEuNSAwIDAgMCAxNC41IDNIMTF2LS41QTEuNSAxLjUgMCAwIDAgOS41IDFoLTN6bTAgMWgzYS41LjUgMCAwIDEgLjUuNVYzSDZ2LS41YS41LjUgMCAwIDEgLjUtLjV6bTEuODg2IDYuOTE0TDE1IDcuMTUxVjEyLjVhLjUuNSAwIDAgMS0uNS41aC0xM2EuNS41IDAgMCAxLS41LS41VjcuMTVsNi42MTQgMS43NjRhMS41IDEuNSAwIDAgMCAuNzcyIDB6TTEuNSA0aDEzYS41LjUgMCAwIDEgLjUuNXYxLjYxNkw4LjEyOSA3Ljk0OGEuNS41IDAgMCAxLS4yNTggMEwxIDYuMTE2VjQuNWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JyaWdodG5lc3NBbHRIaWdoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDN6bTggOGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIC41LjV6bS0xMy41LjVhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMCAwIDFoMnptMTEuMTU3LTYuMTU3YS41LjUgMCAwIDEgMCAuNzA3bC0xLjQxNCAxLjQxNGEuNS41IDAgMSAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptLTkuOSAyLjEyMWEuNS41IDAgMCAwIC43MDctLjcwN0wzLjA1IDUuMzQzYS41LjUgMCAxIDAtLjcwNy43MDdsMS40MTQgMS40MTR6TTggN2E0IDQgMCAwIDAtNCA0IC41LjUgMCAwIDAgLjUuNWg3YS41LjUgMCAwIDAgLjUtLjUgNCA0IDAgMCAwLTQtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCcmlnaHRuZXNzQWx0SGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDN6bTggOGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIC41LjV6bS0xMy41LjVhLjUuNSAwIDAgMCAwLTFoLTJhLjUuNSAwIDAgMCAwIDFoMnptMTEuMTU3LTYuMTU3YS41LjUgMCAwIDEgMCAuNzA3bC0xLjQxNCAxLjQxNGEuNS41IDAgMSAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptLTkuOSAyLjEyMWEuNS41IDAgMCAwIC43MDctLjcwN0wzLjA1IDUuMzQzYS41LjUgMCAxIDAtLjcwNy43MDdsMS40MTQgMS40MTR6TTggN2E0IDQgMCAwIDAtNCA0IC41LjUgMCAwIDAgLjUuNWg3YS41LjUgMCAwIDAgLjUtLjUgNCA0IDAgMCAwLTQtNHptMCAxYTMgMyAwIDAgMSAyLjk1OSAyLjVINS4wNEEzIDMgMCAwIDEgOCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JyaWdodG5lc3NBbHRMb3dGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6bTUgNmEuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXpNMiAxMWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMHptMTAuMjQzLTMuNTM2YS41LjUgMCAxIDEtLjcwNy0uNzA3LjUuNSAwIDAgMSAuNzA3LjcwN3ptLTguNDg2LS43MDdhLjUuNSAwIDEgMCAuNzA3LjcwNy41LjUgMCAwIDAtLjcwNy0uNzA3ek04IDdhNCA0IDAgMCAwLTQgNCAuNS41IDAgMCAwIC41LjVoN2EuNS41IDAgMCAwIC41LS41IDQgNCAwIDAgMC00LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJpZ2h0bmVzc0FsdExvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgNS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem01IDZhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6TTIgMTFhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDB6bTEwLjI0My0zLjUzNmEuNS41IDAgMSAxLS43MDctLjcwNy41LjUgMCAwIDEgLjcwNy43MDd6bS04LjQ4Ni0uNzA3YS41LjUgMCAxIDAgLjcwNy43MDcuNS41IDAgMCAwLS43MDctLjcwN3pNOCA3YTQgNCAwIDAgMC00IDQgLjUuNSAwIDAgMCAuNS41aDdhLjUuNSAwIDAgMCAuNS0uNSA0IDQgMCAwIDAtNC00em0wIDFhMyAzIDAgMCAxIDIuOTU5IDIuNUg1LjA0QTMgMyAwIDAgMSA4IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJpZ2h0bmVzc0hpZ2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhhNCA0IDAgMSAxLTggMCA0IDQgMCAwIDEgOCAwek04IDBhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDB6bTAgMTNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDEzem04LTVhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAuNS41ek0zIDhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJBLjUuNSAwIDAgMSAzIDh6bTEwLjY1Ny01LjY1N2EuNS41IDAgMCAxIDAgLjcwN2wtMS40MTQgMS40MTVhLjUuNSAwIDEgMS0uNzA3LS43MDhsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6bS05LjE5MyA5LjE5M2EuNS41IDAgMCAxIDAgLjcwN0wzLjA1IDEzLjY1N2EuNS41IDAgMCAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptOS4xOTMgMi4xMjFhLjUuNSAwIDAgMS0uNzA3IDBsLTEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA3ek00LjQ2NCA0LjQ2NWEuNS41IDAgMCAxLS43MDcgMEwyLjM0MyAzLjA1YS41LjUgMCAxIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JyaWdodG5lc3NIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2em0wIDFhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4ek04IDBhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDB6bTAgMTNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDEzem04LTVhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJhLjUuNSAwIDAgMSAuNS41ek0zIDhhLjUuNSAwIDAgMS0uNS41aC0yYS41LjUgMCAwIDEgMC0xaDJBLjUuNSAwIDAgMSAzIDh6bTEwLjY1Ny01LjY1N2EuNS41IDAgMCAxIDAgLjcwN2wtMS40MTQgMS40MTVhLjUuNSAwIDEgMS0uNzA3LS43MDhsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6bS05LjE5MyA5LjE5M2EuNS41IDAgMCAxIDAgLjcwN0wzLjA1IDEzLjY1N2EuNS41IDAgMCAxLS43MDctLjcwN2wxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptOS4xOTMgMi4xMjFhLjUuNSAwIDAgMS0uNzA3IDBsLTEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA3ek00LjQ2NCA0LjQ2NWEuNS41IDAgMCAxLS43MDcgMEwyLjM0MyAzLjA1YS41LjUgMCAxIDEgLjcwNy0uNzA3bDEuNDE0IDEuNDE0YS41LjUgMCAwIDEgMCAuNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0JyaWdodG5lc3NMb3dGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhhNCA0IDAgMSAxLTggMCA0IDQgMCAwIDEgOCAwek04LjUgMi41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem0wIDExYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem01LTVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6bS0xMSAwYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem05Ljc0My00LjAzNmEuNS41IDAgMSAxLS43MDctLjcwNy41LjUgMCAwIDEgLjcwNy43MDd6bS03Ljc3OSA3Ljc3OWEuNS41IDAgMSAxLS43MDctLjcwNy41LjUgMCAwIDEgLjcwNy43MDd6bTcuMDcyIDBhLjUuNSAwIDEgMSAuNzA3LS43MDcuNS41IDAgMCAxLS43MDcuNzA3ek0zLjc1NyA0LjQ2NGEuNS41IDAgMSAxIC43MDctLjcwNy41LjUgMCAwIDEtLjcwNy43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJpZ2h0bmVzc0xvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNnptMCAxYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOHptLjUtOS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem0wIDExYS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem01LTVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6bS0xMSAwYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem05Ljc0My00LjAzNmEuNS41IDAgMSAxLS43MDctLjcwNy41LjUgMCAwIDEgLjcwNy43MDd6bS03Ljc3OSA3Ljc3OWEuNS41IDAgMSAxLS43MDctLjcwNy41LjUgMCAwIDEgLjcwNy43MDd6bTcuMDcyIDBhLjUuNSAwIDEgMSAuNzA3LS43MDcuNS41IDAgMCAxLS43MDcuNzA3ek0zLjc1NyA0LjQ2NGEuNS41IDAgMSAxIC43MDctLjcwNy41LjUgMCAwIDEtLjcwNy43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJvYWRjYXN0UGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMDUgMy4wNWE3IDcgMCAwIDAgMCA5LjkuNS41IDAgMCAxLS43MDcuNzA3IDggOCAwIDAgMSAwLTExLjMxNC41LjUgMCAwIDEgLjcwNy43MDd6bTIuMTIyIDIuMTIyYTQgNCAwIDAgMCAwIDUuNjU2LjUuNSAwIDEgMS0uNzA4LjcwOCA1IDUgMCAwIDEgMC03LjA3Mi41LjUgMCAwIDEgLjcwOC43MDh6bTUuNjU2LS43MDhhLjUuNSAwIDAgMSAuNzA4IDAgNSA1IDAgMCAxIDAgNy4wNzIuNS41IDAgMSAxLS43MDgtLjcwOCA0IDQgMCAwIDAgMC01LjY1Ni41LjUgMCAwIDEgMC0uNzA4em0yLjEyMi0yLjEyYS41LjUgMCAwIDEgLjcwNyAwIDggOCAwIDAgMSAwIDExLjMxMy41LjUgMCAwIDEtLjcwNy0uNzA3IDcgNyAwIDAgMCAwLTkuOS41LjUgMCAwIDEgMC0uNzA3ek02IDhhMiAyIDAgMSAxIDIuNSAxLjkzN1YxNS41YS41LjUgMCAwIDEtMSAwVjkuOTM3QTIgMiAwIDAgMSA2IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnJvYWRjYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMDUgMy4wNWE3IDcgMCAwIDAgMCA5LjkuNS41IDAgMCAxLS43MDcuNzA3IDggOCAwIDAgMSAwLTExLjMxNC41LjUgMCAwIDEgLjcwNy43MDd6bTIuMTIyIDIuMTIyYTQgNCAwIDAgMCAwIDUuNjU2LjUuNSAwIDEgMS0uNzA4LjcwOCA1IDUgMCAwIDEgMC03LjA3Mi41LjUgMCAwIDEgLjcwOC43MDh6bTUuNjU2LS43MDhhLjUuNSAwIDAgMSAuNzA4IDAgNSA1IDAgMCAxIDAgNy4wNzIuNS41IDAgMSAxLS43MDgtLjcwOCA0IDQgMCAwIDAgMC01LjY1Ni41LjUgMCAwIDEgMC0uNzA4em0yLjEyMi0yLjEyYS41LjUgMCAwIDEgLjcwNyAwIDggOCAwIDAgMSAwIDExLjMxMy41LjUgMCAwIDEtLjcwNy0uNzA3IDcgNyAwIDAgMCAwLTkuOS41LjUgMCAwIDEgMC0uNzA3ek0xMCA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCcnVzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuODI1LjEyYS41LjUgMCAwIDEgLjEzMi41ODRjLTEuNTMgMy40My00Ljc0MyA4LjE3LTcuMDk1IDEwLjY0YTYuMDY3IDYuMDY3IDAgMCAxLTIuMzczIDEuNTM0Yy0uMDE4LjIyNy0uMDYuNTM4LS4xNi44NjgtLjIwMS42NTktLjY2NyAxLjQ3OS0xLjcwOCAxLjc0YTguMTE4IDguMTE4IDAgMCAxLTMuMDc4LjEzMiAzLjY1OSAzLjY1OSAwIDAgMS0uNTYyLS4xMzUgMS4zODIgMS4zODIgMCAwIDEtLjQ2Ni0uMjQ3LjcxNC43MTQgMCAwIDEtLjIwNC0uMjg4LjYyMi42MjIgMCAwIDEgLjAwNC0uNDQzYy4wOTUtLjI0NS4zMTYtLjM4LjQ2MS0uNDUyLjM5NC0uMTk3LjYyNS0uNDUzLjg2Ny0uODI2LjA5NS0uMTQ0LjE4NC0uMjk3LjI4Ny0uNDcybC4xMTctLjE5OGMuMTUxLS4yNTUuMzI2LS41NC41NDYtLjg0OC41MjgtLjczOSAxLjIwMS0uOTI1IDEuNzQ2LS44OTYuMTI2LjAwNy4yNDMuMDI1LjM0OC4wNDguMDYyLS4xNzIuMTQyLS4zOC4yMzgtLjYwOC4yNjEtLjYxOS42NTgtMS40MTkgMS4xODctMi4wNjkgMi4xNzYtMi42NyA2LjE4LTYuMjA2IDkuMTE3LTguMTA0YS41LjUgMCAwIDEgLjU5Ni4wNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS44MjUuMTJhLjUuNSAwIDAgMSAuMTMyLjU4NGMtMS41MyAzLjQzLTQuNzQzIDguMTctNy4wOTUgMTAuNjRhNi4wNjcgNi4wNjcgMCAwIDEtMi4zNzMgMS41MzRjLS4wMTguMjI3LS4wNi41MzgtLjE2Ljg2OC0uMjAxLjY1OS0uNjY3IDEuNDc5LTEuNzA4IDEuNzRhOC4xMTggOC4xMTggMCAwIDEtMy4wNzguMTMyIDMuNjU5IDMuNjU5IDAgMCAxLS41NjItLjEzNSAxLjM4MiAxLjM4MiAwIDAgMS0uNDY2LS4yNDcuNzE0LjcxNCAwIDAgMS0uMjA0LS4yODguNjIyLjYyMiAwIDAgMSAuMDA0LS40NDNjLjA5NS0uMjQ1LjMxNi0uMzguNDYxLS40NTIuMzk0LS4xOTcuNjI1LS40NTMuODY3LS44MjYuMDk1LS4xNDQuMTg0LS4yOTcuMjg3LS40NzJsLjExNy0uMTk4Yy4xNTEtLjI1NS4zMjYtLjU0LjU0Ni0uODQ4LjUyOC0uNzM5IDEuMjAxLS45MjUgMS43NDYtLjg5Ni4xMjYuMDA3LjI0My4wMjUuMzQ4LjA0OC4wNjItLjE3Mi4xNDItLjM4LjIzOC0uNjA4LjI2MS0uNjE5LjY1OC0xLjQxOSAxLjE4Ny0yLjA2OSAyLjE3Ni0yLjY3IDYuMTgtNi4yMDYgOS4xMTctOC4xMDRhLjUuNSAwIDAgMSAuNTk2LjA0ek00LjcwNSAxMS45MTJhMS4yMyAxLjIzIDAgMCAwLS40MTktLjFjLS4yNDYtLjAxMy0uNTczLjA1LS44NzkuNDc5LS4xOTcuMjc1LS4zNTUuNTMyLS41Ljc3N2wtLjEwNS4xNzdjLS4xMDYuMTgxLS4yMTMuMzYyLS4zMi41MjhhMy4zOSAzLjM5IDAgMCAxLS43Ni44NjFjLjY5LjExMiAxLjczNi4xMTEgMi42NTctLjEyLjU1OS0uMTM5Ljg0My0uNTY5Ljk5My0xLjA2YTMuMTIyIDMuMTIyIDAgMCAwIC4xMjYtLjc1bC0uNzkzLS43OTJ6bTEuNDQuMDI2Yy4xMi0uMDQuMjc3LS4xLjQ1OC0uMTgzYTUuMDY4IDUuMDY4IDAgMCAwIDEuNTM1LTEuMWMxLjktMS45OTYgNC40MTItNS41NyA2LjA1Mi04LjYzMS0yLjU5IDEuOTI3LTUuNTY2IDQuNjYtNy4zMDIgNi43OTItLjQ0Mi41NDMtLjc5NSAxLjI0My0xLjA0MiAxLjgyNi0uMTIxLjI4OC0uMjE0LjU0LS4yNzUuNzJ2LjAwMWwuNTc1LjU3NXptLTQuOTczIDMuMDQuMDA3LS4wMDVhLjAzMS4wMzEgMCAwIDEtLjAwNy4wMDR6bTMuNTgyLTMuMDQzLjAwMi4wMDFoLS4wMDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnVja2V0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUyMiA1SDJhLjUuNSAwIDAgMC0uNDk0LjU3NGwxLjM3MiA5LjE0OUExLjUgMS41IDAgMCAwIDQuMzYgMTZoNy4yNzhhMS41IDEuNSAwIDAgMCAxLjQ4My0xLjI3N2wxLjM3My05LjE0OUEuNS41IDAgMCAwIDE0IDVoLS41MjJBNS41IDUuNSAwIDAgMCAyLjUyMiA1em0xLjAwNSAwYTQuNSA0LjUgMCAwIDEgOC45NDUgMEgzLjUyN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCdWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41MjIgNUgyYS41LjUgMCAwIDAtLjQ5NC41NzRsMS4zNzIgOS4xNDlBMS41IDEuNSAwIDAgMCA0LjM2IDE2aDcuMjc4YTEuNSAxLjUgMCAwIDAgMS40ODMtMS4yNzdsMS4zNzMtOS4xNDlBLjUuNSAwIDAgMCAxNCA1aC0uNTIyQTUuNSA1LjUgMCAwIDAgMi41MjIgNXptMS4wMDUgMGE0LjUgNC41IDAgMCAxIDguOTQ1IDBIMy41Mjd6bTkuODkyIDEtMS4yODYgOC41NzRhLjUuNSAwIDAgMS0uNDk0LjQyNkg0LjM2YS41LjUgMCAwIDEtLjQ5NC0uNDI2TDIuNTggNmgxMC44Mzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnVnRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljk3OC44NTVhLjUuNSAwIDEgMC0uOTU2LjI5bC40MSAxLjM1MkE0Ljk4NSA0Ljk4NSAwIDAgMCAzIDZoMTBhNC45ODUgNC45ODUgMCAwIDAtMS40MzItMy41MDNsLjQxLTEuMzUyYS41LjUgMCAxIDAtLjk1Ni0uMjlsLS4yOTEuOTU2QTQuOTc4IDQuOTc4IDAgMCAwIDggMWE0Ljk3OSA0Ljk3OSAwIDAgMC0yLjczMS44MTFsLS4yOS0uOTU2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDZ2MUg4LjV2OC45NzVBNSA1IDAgMCAwIDEzIDExaC41YS41LjUgMCAwIDEgLjUuNXYuNWEuNS41IDAgMSAwIDEgMHYtLjVhMS41IDEuNSAwIDAgMC0xLjUtMS41SDEzVjloMS41YS41LjUgMCAwIDAgMC0xSDEzVjdoLjVBMS41IDEuNSAwIDAgMCAxNSA1LjVWNWEuNS41IDAgMCAwLTEgMHYuNWEuNS41IDAgMCAxLS41LjVIMTN6bS01LjUgOS45NzVWN0gzVjZoLS41YS41LjUgMCAwIDEtLjUtLjVWNWEuNS41IDAgMCAwLTEgMHYuNUExLjUgMS41IDAgMCAwIDIuNSA3SDN2MUgxLjVhLjUuNSAwIDAgMCAwIDFIM3YxaC0uNUExLjUgMS41IDAgMCAwIDEgMTEuNXYuNWEuNS41IDAgMSAwIDEgMHYtLjVhLjUuNSAwIDAgMSAuNS0uNUgzYTUgNSAwIDAgMCA0LjUgNC45NzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMzU1LjUyMmEuNS41IDAgMCAxIC42MjMuMzMzbC4yOTEuOTU2QTQuOTc5IDQuOTc5IDAgMCAxIDggMWMxLjAwNyAwIDEuOTQ2LjI5OCAyLjczMS44MTFsLjI5LS45NTZhLjUuNSAwIDEgMSAuOTU3LjI5bC0uNDEgMS4zNTJBNC45ODUgNC45ODUgMCAwIDEgMTMgNmguNWEuNS41IDAgMCAwIC41LS41VjVhLjUuNSAwIDAgMSAxIDB2LjVBMS41IDEuNSAwIDAgMSAxMy41IDdIMTN2MWgxLjVhLjUuNSAwIDAgMSAwIDFIMTN2MWguNWExLjUgMS41IDAgMCAxIDEuNSAxLjV2LjVhLjUuNSAwIDEgMS0xIDB2LS41YS41LjUgMCAwIDAtLjUtLjVIMTNhNSA1IDAgMCAxLTEwIDBoLS41YS41LjUgMCAwIDAtLjUuNXYuNWEuNS41IDAgMSAxLTEgMHYtLjVBMS41IDEuNSAwIDAgMSAyLjUgMTBIM1Y5SDEuNWEuNS41IDAgMCAxIDAtMUgzVjdoLS41QTEuNSAxLjUgMCAwIDEgMSA1LjVWNWEuNS41IDAgMCAxIDEgMHYuNWEuNS41IDAgMCAwIC41LjVIM2MwLTEuMzY0LjU0Ny0yLjYwMSAxLjQzMi0zLjUwM2wtLjQxLTEuMzUyYS41LjUgMCAwIDEgLjMzMy0uNjIzek00IDd2NGE0IDQgMCAwIDAgMy41IDMuOTdWN0g0em00LjUgMHY3Ljk3QTQgNCAwIDAgMCAxMiAxMVY3SDguNXpNMTIgNmEzLjk4OSAzLjk4OSAwIDAgMC0xLjMzNC0yLjk4MkEzLjk4MyAzLjk4MyAwIDAgMCA4IDJhMy45ODMgMy45ODMgMCAwIDAtMi42NjcgMS4wMThBMy45ODkgMy45ODkgMCAwIDAgNCA2aDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQnVpbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0Ljc2My4wNzVBLjUuNSAwIDAgMSAxNSAuNXYxNWEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNVYxNGgtMXYxLjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjVWMTBhLjUuNSAwIDAgMSAuMzQyLS40NzRMNiA3LjY0VjQuNWEuNS41IDAgMCAxIC4yNzYtLjQ0N2w4LTRhLjUuNSAwIDAgMSAuNDg3LjAyMnpNNiA4LjY5NCAxIDEwLjM2VjE1aDVWOC42OTR6TTcgMTVoMnYtMS41YS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIC41LjVWMTVoMlYxLjMwOWwtNyAzLjVWMTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMWgxdjFIMnYtMXptMiAwaDF2MUg0di0xem0tMiAyaDF2MUgydi0xem0yIDBoMXYxSDR2LTF6bTQtNGgxdjFIOFY5em0yIDBoMXYxaC0xVjl6bS0yIDJoMXYxSDh2LTF6bTIgMGgxdjFoLTF2LTF6bTItMmgxdjFoLTFWOXptMCAyaDF2MWgtMXYtMXpNOCA3aDF2MUg4Vjd6bTIgMGgxdjFoLTFWN3ptMiAwaDF2MWgtMVY3ek04IDVoMXYxSDhWNXptMiAwaDF2MWgtMVY1em0yIDBoMXYxaC0xVjV6bTAtMmgxdjFoLTFWM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNCdWxsc2V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTNBNSA1IDAgMSAxIDggM2E1IDUgMCAwIDEgMCAxMHptMCAxQTYgNiAwIDEgMCA4IDJhNiA2IDAgMCAwIDAgMTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZ6bTAgMWE0IDQgMCAxIDAgMC04IDQgNCAwIDAgMCAwIDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsY3VsYXRvckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJ6bTIgLjV2MmEuNS41IDAgMCAwIC41LjVoN2EuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMC0uNS41em0wIDR2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41ek00LjUgOWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6TTQgMTIuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV6TTcuNSA2YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpNNyA5LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41em0uNSAyLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xek0xMCA2LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41em0uNSAyLjVhLjUuNSAwIDAgMC0uNS41djRhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAwLS41LS41aC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGN1bGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg4ek00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTJ6bTAgNGEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTAgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTAgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTMtNmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTAgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTAgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTMtNmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bTAgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djRhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6TTE2IDE0VjVIMHY5YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnptLTUuMTQ2LTUuMTQ2LTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMCAxIC43MDgtLjcwOEw3LjUgMTAuNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44NTQgNy4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgOS43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0xIDR2MTBhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjRIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhckRhdGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgLjVhLjUuNSAwIDAgMC0xIDBWMUgyYTIgMiAwIDAgMC0yIDJ2MWgxNlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41em01LjQwMiA5Ljc0NmMuNjI1IDAgMS4xODQtLjQ4NCAxLjE4NC0xLjE4IDAtLjgzMi0uNTI3LTEuMjMtMS4xNi0xLjIzLS41ODYgMC0xLjE2OC4zODctMS4xNjggMS4yMSAwIC44MTcuNTQzIDEuMiAxLjE0NCAxLjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTRWNUgwdjlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yem0tNi42NjQtMS4yMWMtMS4xMSAwLTEuNjU2LS43NjctMS43MDMtMS40MDdoLjY4M2MuMDQzLjM3LjM4Ny44MiAxLjA1MS44Mi44NDQgMCAxLjMwMS0uODQ4IDEuMzA1LTIuMTY0aC0uMDI3Yy0uMTUzLjQxNC0uNjM3Ljc5LTEuMzgzLjc5LS44NTIgMC0xLjY3Ni0uNjEtMS42NzYtMS43NyAwLTEuMTM3Ljg3MS0xLjgwOSAxLjc5Ny0xLjgwOSAxLjE3MiAwIDEuOTUzLjczNCAxLjk1MyAyLjY2OCAwIDEuODA1LS43NDIgMi44NzEtMiAyLjg3MXptLTIuODktNS40MzV2NS4zMzJINS43N1Y4LjA3OWgtLjAxMmMtLjI5LjE1Ni0uODgzLjUyLTEuMjU4Ljc3N1Y4LjE2YTEyLjYgMTIuNiAwIDAgMSAxLjMxMy0uODA1aC42MzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJEYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNDQ1IDExLjY4OFY2LjM1NGgtLjYzM0ExMi42IDEyLjYgMCAwIDAgNC41IDcuMTZ2LjY5NWMuMzc1LS4yNTcuOTY5LS42MiAxLjI1OC0uNzc3aC4wMTJ2NC42MWguNjc1em0xLjE4OC0xLjMwNWMuMDQ3LjY0LjU5NCAxLjQwNiAxLjcwMyAxLjQwNiAxLjI1OCAwIDItMS4wNjYgMi0yLjg3MSAwLTEuOTM0LS43ODEtMi42NjgtMS45NTMtMi42NjgtLjkyNiAwLTEuNzk3LjY3Mi0xLjc5NyAxLjgwOSAwIDEuMTYuODI0IDEuNzcgMS42NzYgMS43Ny43NDYgMCAxLjIzLS4zNzYgMS4zODMtLjc5aC4wMjdjLS4wMDQgMS4zMTYtLjQ2MSAyLjE2NC0xLjMwNSAyLjE2NC0uNjY0IDAtMS4wMDgtLjQ1LTEuMDUtLjgyaC0uNjg0em0yLjk1My0yLjMxN2MwIC42OTYtLjU1OSAxLjE4LTEuMTg0IDEuMTgtLjYwMSAwLTEuMTQ0LS4zODMtMS4xNDQtMS4yIDAtLjgyMy41ODItMS4yMSAxLjE2OC0xLjIxLjYzMyAwIDEuMTYuMzk4IDEuMTYgMS4yM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTEgNHYxMGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNEgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyRGF5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjFoMTZWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMTYgMTRhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNWgxNnY5em0tNC43ODUtNi4xNDVhLjQyOC40MjggMCAxIDAgMC0uODU1LjQyNi40MjYgMCAwIDAtLjQzLjQzYzAgLjIzOC4xOTIuNDI1LjQzLjQyNXptLjMzNi41NjNoLS42NzJ2NC4xMDVoLjY3MlY4LjQxOHptLTYuODY3IDQuMTA1di0yLjNoMi4yNjF2LS42MUg0LjY4NFY3LjgwMWgyLjQ2NHYtLjYxSDR2NS4zMzJoLjY4NHptMy4yOTYgMGguNjc2VjkuOThjMC0uNTU0LjIyNy0xLjAwNy45NTMtMS4wMDcuMTI1IDAgLjI1OC4wMDQuMzI5LjAxNXYtLjYxM2ExLjgwNiAxLjgwNiAwIDAgMC0uMjU0LS4wMmMtLjU4MiAwLS44OTEuMzItMS4wMTIuNTY3aC0uMDJ2LS41MDRINy45OHY0LjEwNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhckRheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjY4NCAxMS41MjN2LTIuM2gyLjI2MXYtLjYxSDQuNjg0VjYuODAxaDIuNDY0di0uNjFINHY1LjMzMmguNjg0em0zLjI5NiAwaC42NzZWOC45OGMwLS41NTQuMjI3LTEuMDA3Ljk1My0xLjAwNy4xMjUgMCAuMjU4LjAwNC4zMjkuMDE1di0uNjEzYTEuODA2IDEuODA2IDAgMCAwLS4yNTQtLjAyYy0uNTgyIDAtLjg5MS4zMi0xLjAxMi41NjdoLS4wMnYtLjUwNEg3Ljk4djQuMTA1em0yLjgwNS01LjA5M2MwIC4yMzguMTkyLjQyNS40My40MjVhLjQyOC40MjggMCAxIDAgMC0uODU1LjQyNi40MjYgMCAwIDAtLjQzLjQzem0uMDk0IDUuMDkzaC42NzJWNy40MThoLS42NzJ2NC4xMDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0xIDR2MTBhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjRIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhckV2ZW50RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjFoMTZWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMTYgMTRWNUgwdjlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yem0tMy41LTdoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMWEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyRXZlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNi41YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTEgNHYxMGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNEgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjVoMTZWNEgwVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJNaW51c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6TTE2IDE0VjVIMHY5YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnpNNiAxMGg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgOS41QS41LjUgMCAwIDEgNiA5aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMSA0djEwYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0SDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJNb250aEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6bS4xMDQgNy4zMDVMNC45IDEwLjE4SDMuMjg0bC44LTIuMzc1aC4wMnptOS4wNzQgMi4yOTdjMC0uODMyLS40MTQtMS4zNi0xLjA2Mi0xLjM2LS42OTIgMC0xLjA5OC40OTItMS4wOTggMS4zNnYuMjUzYzAgLjg1Mi40MDYgMS4zNjQgMS4wOTggMS4zNjQuNjcxIDAgMS4wNjItLjUxNiAxLjA2Mi0xLjM2NHYtLjI1M3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNFY1SDB2OWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ6TTIuNTYgMTIuMzMyaC0uNzFMMy43NDggN2guNjk2bDEuODk4IDUuMzMyaC0uNzE5bC0uNTM5LTEuNjAySDMuMWwtLjU0IDEuNjAyem03LjI5LTQuMTA1djQuMTA1aC0uNjY4di0uNTM5aC0uMDI3Yy0uMTQ1LjMyNC0uNTMyLjYwNS0xLjE4OC42MDUtLjg0NyAwLTEuNDUzLS40ODQtMS40NTMtMS40MjVWOC4yMjdoLjY3NnYyLjU1NGMwIC43NjYuNDQxIDEuMDEyLjk4IDEuMDEyLjU5IDAgMS4wMDQtLjM3MSAxLjAwNC0xLjAyM1Y4LjIyN2guNjc2em0xLjI3MyA0LjQxYy4wNzUuMzMyLjQyMi42MzYuOTg1LjYzNi42NDggMCAxLjA3LS4zNzggMS4wNy0xLjAyM3YtLjYwNWgtLjAyYy0uMTYzLjM1NS0uNjEzLjY0OC0xLjE3MS42NDgtLjk1NyAwLTEuNjQtLjY3Mi0xLjY0LTEuOTAydi0uMzRjMC0xLjIwNy42NzUtMS44ODcgMS42NC0xLjg4Ny41NTggMCAxLjAwNC4yOTMgMS4xOTUuNjRoLjAydi0uNTc3aC42NDh2NC4wM2MwIDEuMDUyLS44MTYgMS41NzktMS43NDYgMS41NzktMS4wNDMgMC0xLjU3NC0uNTE2LTEuNjY4LTEuMmguNjg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyTW9udGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41NiAxMS4zMzIgMy4xIDkuNzNoMS45ODRsLjU0IDEuNjAyaC43MThMNC40NDQgNmgtLjY5NkwxLjg1IDExLjMzMmguNzF6bTEuNTQ0LTQuNTI3TDQuOSA5LjE4SDMuMjg0bC44LTIuMzc1aC4wMnptNS43NDYuNDIyaC0uNjc2VjkuNzdjMCAuNjUyLS40MTQgMS4wMjMtMS4wMDQgMS4wMjMtLjUzOSAwLS45OC0uMjQ2LS45OC0xLjAxMlY3LjIyN2gtLjY3NnYyLjc0NmMwIC45NDEuNjA2IDEuNDI1IDEuNDUzIDEuNDI1LjY1NiAwIDEuMDQzLS4yOCAxLjE4OC0uNjA1aC4wMjd2LjUzOWguNjY4VjcuMjI3em0yLjI1OCA1LjA0NmMtLjU2MyAwLS45MS0uMzA0LS45ODUtLjYzNmgtLjY4N2MuMDk0LjY4My42MjUgMS4xOTkgMS42NjggMS4xOTkuOTMgMCAxLjc0Ni0uNTI3IDEuNzQ2LTEuNTc4VjcuMjI3aC0uNjQ5di41NzhoLS4wMTljLS4xOTEtLjM0OC0uNjM3LS42NC0xLjE5NS0uNjQtLjk2NSAwLTEuNjQuNjc5LTEuNjQgMS44ODZ2LjM0YzAgMS4yMy42ODMgMS45MDIgMS42NCAxLjkwMi41NTggMCAxLjAwOC0uMjkzIDEuMTcyLS42NDhoLjAydi42MDVjMCAuNjQ1LS40MjMgMS4wMjMtMS4wNzEgMS4wMjN6bS4wMDgtNC41M2MuNjQ4IDAgMS4wNjIuNTI3IDEuMDYyIDEuMzU5di4yNTNjMCAuODQ4LS4zOSAxLjM2NC0xLjA2MiAxLjM2NC0uNjkyIDAtMS4wOTgtLjUxMi0xLjA5OC0xLjM2NHYtLjI1M2MwLS44NjguNDA2LTEuMzYgMS4wOTgtMS4zNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTEgNHYxMGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNEgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyUGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6TTE2IDE0VjVIMHY5YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnpNOC41IDguNVYxMEgxMGEuNS41IDAgMCAxIDAgMUg4LjV2MS41YS41LjUgMCAwIDEtMSAwVjExSDZhLjUuNSAwIDAgMSAwLTFoMS41VjguNWEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA3YS41LjUgMCAwIDEgLjUuNVY5SDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTBINmEuNS41IDAgMCAxIDAtMWgxLjVWNy41QS41LjUgMCAwIDEgOCA3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMSA0djEwYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0SDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJSYW5nZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxaDE2VjNhMiAyIDAgMCAwLTItMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYxSDRWLjV6TTE2IDdWNUgwdjVoNWExIDEgMCAxIDEgMCAySDB2MmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOWgtNmExIDEgMCAxIDEgMC0yaDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJSYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDdhMSAxIDAgMCAxIDEtMWg1djJoLTVhMSAxIDAgMCAxLTEtMXpNMSA5aDRhMSAxIDAgMCAxIDAgMkgxVjl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0xIDR2MTBhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjRIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcldlZWtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgLjVhLjUuNSAwIDAgMC0xIDBWMUgyYTIgMiAwIDAgMC0yIDJ2MWgxNlYzYTIgMiAwIDAgMC0yLTJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMUg0Vi41ek0xNiAxNFY1SDB2OWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ6TTkuNSA3aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNXptMyAwaDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNXpNMiAxMC41YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptMy41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcldlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNi41YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptLTMgMGEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bS01IDNhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xem0zIDBhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMSA0djEwYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0SDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IC41YS41LjUgMCAwIDAtMSAwVjFIMmEyIDIgMCAwIDAtMiAydjFoMTZWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMTYgMTRWNUgwdjlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yek02Ljg1NCA4LjE0NiA4IDkuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhMOC43MDcgMTBsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDEwLjcwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgMTAgNi4xNDYgOC44NTRhLjUuNSAwIDEgMSAuNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXJYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMTQ2IDcuMTQ2YS41LjUgMCAwIDEgLjcwOCAwTDggOC4yOTNsMS4xNDYtMS4xNDdhLjUuNSAwIDEgMSAuNzA4LjcwOEw4LjcwNyA5bDEuMTQ3IDEuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA5LjcwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOSA2LjE0NiA3Ljg1NGEuNS41IDAgMCAxIDAtLjcwOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTEgNHYxMGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNEgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMSA0djEwYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0SDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIyQ2hlY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXptOS45NTQgM0gyLjU0NWMtLjMgMC0uNTQ1LjIyNC0uNTQ1LjV2MWMwIC4yNzYuMjQ0LjUuNTQ1LjVoMTAuOTFjLjMgMCAuNTQ1LS4yMjQuNTQ1LS41di0xYzAtLjI3Ni0uMjQ0LS41LS41NDYtLjV6bS0yLjYgNS44NTRhLjUuNSAwIDAgMC0uNzA4LS43MDhMNy41IDEwLjc5MyA2LjM1NCA5LjY0NmEuNS41IDAgMSAwLS43MDguNzA4bDEuNSAxLjVhLjUuNSAwIDAgMCAuNzA4IDBsMy0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMkNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjg1NCA4LjE0NmEuNS41IDAgMCAxIDAgLjcwOGwtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAwIDEgLjcwOC0uNzA4TDcuNSAxMC43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0yIDJhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDRhLjUuNSAwIDAgMSAuNS0uNWgxMGEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVIM2EuNS41IDAgMCAxLS41LS41VjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIyRGF0ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40MDIgMTAuMjQ2Yy42MjUgMCAxLjE4NC0uNDg0IDEuMTg0LTEuMTggMC0uODMyLS41MjctMS4yMy0xLjE2LTEuMjMtLjU4NiAwLTEuMTY4LjM4Ny0xLjE2OCAxLjIxIDAgLjgxNy41NDMgMS4yIDEuMTQ0IDEuMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41em0tNC4xMTggOS43OWMxLjI1OCAwIDItMS4wNjcgMi0yLjg3MiAwLTEuOTM0LS43ODEtMi42NjgtMS45NTMtMi42NjgtLjkyNiAwLTEuNzk3LjY3Mi0xLjc5NyAxLjgwOSAwIDEuMTYuODI0IDEuNzcgMS42NzYgMS43Ny43NDYgMCAxLjIzLS4zNzYgMS4zODMtLjc5aC4wMjdjLS4wMDQgMS4zMTYtLjQ2MSAyLjE2NC0xLjMwNSAyLjE2NC0uNjY0IDAtMS4wMDgtLjQ1LTEuMDUtLjgyaC0uNjg0Yy4wNDcuNjQuNTk0IDEuNDA2IDEuNzAzIDEuNDA2em0tMi44OS01LjQzNWgtLjYzM0ExMi42IDEyLjYgMCAwIDAgNC41IDguMTZ2LjY5NWMuMzc1LS4yNTcuOTY5LS42MiAxLjI1OC0uNzc3aC4wMTJ2NC42MWguNjc1VjcuMzU0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMkRhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi40NDUgMTIuNjg4VjcuMzU0aC0uNjMzQTEyLjYgMTIuNiAwIDAgMCA0LjUgOC4xNnYuNjk1Yy4zNzUtLjI1Ny45NjktLjYyIDEuMjU4LS43NzdoLjAxMnY0LjYxaC42NzV6bTEuMTg4LTEuMzA1Yy4wNDcuNjQuNTk0IDEuNDA2IDEuNzAzIDEuNDA2IDEuMjU4IDAgMi0xLjA2NiAyLTIuODcxIDAtMS45MzQtLjc4MS0yLjY2OC0xLjk1My0yLjY2OC0uOTI2IDAtMS43OTcuNjcyLTEuNzk3IDEuODA5IDAgMS4xNi44MjQgMS43NyAxLjY3NiAxLjc3Ljc0NiAwIDEuMjMtLjM3NiAxLjM4My0uNzloLjAyN2MtLjAwNCAxLjMxNi0uNDYxIDIuMTY0LTEuMzA1IDIuMTY0LS42NjQgMC0xLjAwOC0uNDUtMS4wNS0uODJoLS42ODR6bTIuOTUzLTIuMzE3YzAgLjY5Ni0uNTU5IDEuMTgtMS4xODQgMS4xOC0uNjAxIDAtMS4xNDQtLjM4My0xLjE0NC0xLjIgMC0uODIzLjU4Mi0xLjIxIDEuMTY4LTEuMjEuNjMzIDAgMS4xNi4zOTggMS4xNiAxLjIzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMiAyYTEgMSAwIDAgMC0xIDF2MTFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA0YS41LjUgMCAwIDEgLjUtLjVoMTBhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMkRheUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41em05Ljk1NCAzSDIuNTQ1Yy0uMyAwLS41NDUuMjI0LS41NDUuNXYxYzAgLjI3Ni4yNDQuNS41NDUuNWgxMC45MWMuMyAwIC41NDUtLjIyNC41NDUtLjV2LTFjMC0uMjc2LS4yNDQtLjUtLjU0Ni0uNXptLTIuMjQgNC44NTVhLjQyOC40MjggMCAxIDAgMC0uODU1LjQyNi40MjYgMCAwIDAtLjQyOS40M2MwIC4yMzguMTkyLjQyNS40My40MjV6bS4zMzcuNTYzaC0uNjcydjQuMTA1aC42NzJWOC40MTh6bS02Ljg2NyA0LjEwNXYtMi4zaDIuMjYxdi0uNjFINC42ODRWNy44MDFoMi40NjR2LS42MUg0djUuMzMyaC42ODR6bTMuMjk2IDBoLjY3NlY5Ljk4YzAtLjU1NC4yMjctMS4wMDcuOTUzLTEuMDA3LjEyNSAwIC4yNTguMDA0LjMyOS4wMTV2LS42MTNhMS44MDYgMS44MDYgMCAwIDAtLjI1NC0uMDJjLS41ODIgMC0uODkxLjMyLTEuMDEyLjU2N2gtLjAydi0uNTA0SDcuOTh2NC4xMDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIyRGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjg0IDEyLjUyM3YtMi4zaDIuMjYxdi0uNjFINC42ODRWNy44MDFoMi40NjR2LS42MUg0djUuMzMyaC42ODR6bTMuMjk2IDBoLjY3NlY5Ljk4YzAtLjU1NC4yMjctMS4wMDcuOTUzLTEuMDA3LjEyNSAwIC4yNTguMDA0LjMyOS4wMTV2LS42MTNhMS44MDYgMS44MDYgMCAwIDAtLjI1NC0uMDJjLS41ODIgMC0uODkxLjMyLTEuMDEyLjU2N2gtLjAydi0uNTA0SDcuOTh2NC4xMDV6bTIuODA1LTUuMDkzYzAgLjIzOC4xOTIuNDI1LjQzLjQyNWEuNDI4LjQyOCAwIDEgMCAwLS44NTUuNDI2LjQyNiAwIDAgMC0uNDMuNDN6bS4wOTQgNS4wOTNoLjY3MlY4LjQxOGgtLjY3MnY0LjEwNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTIgMmExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgNGEuNS41IDAgMCAxIC41LS41aDEwYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNUgzYS41LjUgMCAwIDEtLjUtLjVWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJFdmVudEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41em05Ljk1NCAzSDIuNTQ1Yy0uMyAwLS41NDUuMjI0LS41NDUuNXYxYzAgLjI3Ni4yNDQuNS41NDUuNWgxMC45MWMuMyAwIC41NDUtLjIyNC41NDUtLjV2LTFjMC0uMjc2LS4yNDQtLjUtLjU0Ni0uNXpNMTEuNSA3YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJFdmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3LjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMiAyYTEgMSAwIDAgMC0xIDF2MTFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA0YS41LjUgMCAwIDEgLjUtLjVoMTBhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAuNWEuNS41IDAgMCAwLTEgMFYxSDJhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWM2EyIDIgMCAwIDAtMi0yaC0xVi41YS41LjUgMCAwIDAtMSAwVjFINFYuNXpNMi41NDUgM2gxMC45MWMuMyAwIC41NDUuMjI0LjU0NS41djFjMCAuMjc2LS4yNDQuNS0uNTQ2LjVIMi41NDVDMi4yNDUgNSAyIDQuNzc2IDIgNC41di0xYzAtLjI3Ni4yNDQtLjUuNTQ1LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMk1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41ek02IDEwYS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFINnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTAuNUEuNS41IDAgMCAxIDYgMTBoNGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0yIDJhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDRhLjUuNSAwIDAgMSAuNS0uNWgxMGEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVIM2EuNS41IDAgMCAxLS41LS41VjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIyTW9udGhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMTA0IDcuODA1IDQuOSAxMC4xOEgzLjI4NGwuOC0yLjM3NWguMDJ6bTkuMDc0IDIuMjk3YzAtLjgzMi0uNDE0LTEuMzYtMS4wNjItMS4zNi0uNjkyIDAtMS4wOTguNDkyLTEuMDk4IDEuMzZ2LjI1M2MwIC44NTIuNDA2IDEuMzY0IDEuMDk4IDEuMzY0LjY3MSAwIDEuMDYyLS41MTYgMS4wNjItMS4zNjR2LS4yNTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41em05Ljk1NCAzSDIuNTQ1Yy0uMyAwLS41NDUuMjI0LS41NDUuNXYxYzAgLjI3Ni4yNDQuNS41NDUuNWgxMC45MWMuMyAwIC41NDUtLjIyNC41NDUtLjV2LTFjMC0uMjc2LS4yNDQtLjUtLjU0Ni0uNXpNMi41NjEgMTIuMzMyIDMuMSAxMC43M2gxLjk4NGwuNTQgMS42MDJoLjcxOEw0LjQ0NCA3aC0uNjk2TDEuODUgMTIuMzMyaC43MXpNOS44NSA4LjIyN2gtLjY3NnYyLjU0M2MwIC42NTItLjQxNCAxLjAyMy0xLjAwNCAxLjAyMy0uNTM5IDAtLjk4LS4yNDYtLjk4LTEuMDEyVjguMjI3aC0uNjc2djIuNzQ2YzAgLjk0MS42MDYgMS40MjUgMS40NTMgMS40MjUuNjU2IDAgMS4wNDMtLjI4IDEuMTg4LS42MDVoLjAyN3YuNTM5aC42NjhWOC4yMjd6bTEuMjczIDQuNDFoLS42ODdjLjA5NC42ODMuNjI1IDEuMTk5IDEuNjY4IDEuMTk5LjkzIDAgMS43NDYtLjUyNyAxLjc0Ni0xLjU3OFY4LjIyN2gtLjY0OXYuNTc4aC0uMDE5Yy0uMTkxLS4zNDgtLjYzNy0uNjQtMS4xOTUtLjY0LS45NjUgMC0xLjY0LjY3OS0xLjY0IDEuODg2di4zNGMwIDEuMjMuNjgzIDEuOTAyIDEuNjQgMS45MDIuNTU4IDAgMS4wMDgtLjI5MyAxLjE3Mi0uNjQ4aC4wMnYuNjA1YzAgLjY0NS0uNDIzIDEuMDIzLTEuMDcxIDEuMDIzLS41NjMgMC0uOTEtLjMwNC0uOTg1LS42MzZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIyTW9udGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi41NiAxMi4zMzIuNTQtMS42MDJoMS45ODRsLjU0IDEuNjAyaC43MThMNC40NDQgN2gtLjY5NkwxLjg1IDEyLjMzMmguNzF6bTEuNTQ0LTQuNTI3TDQuOSAxMC4xOEgzLjI4NGwuOC0yLjM3NWguMDJ6bTUuNzQ2LjQyMmgtLjY3NnYyLjU0M2MwIC42NTItLjQxNCAxLjAyMy0xLjAwNCAxLjAyMy0uNTM5IDAtLjk4LS4yNDYtLjk4LTEuMDEyVjguMjI3aC0uNjc2djIuNzQ2YzAgLjk0MS42MDYgMS40MjUgMS40NTMgMS40MjUuNjU2IDAgMS4wNDMtLjI4IDEuMTg4LS42MDVoLjAyN3YuNTM5aC42NjhWOC4yMjd6bTIuMjU4IDUuMDQ2Yy0uNTYzIDAtLjkxLS4zMDQtLjk4NS0uNjM2aC0uNjg3Yy4wOTQuNjgzLjYyNSAxLjE5OSAxLjY2OCAxLjE5OS45MyAwIDEuNzQ2LS41MjcgMS43NDYtMS41NzhWOC4yMjdoLS42NDl2LjU3OGgtLjAxOWMtLjE5MS0uMzQ4LS42MzctLjY0LTEuMTk1LS42NC0uOTY1IDAtMS42NC42NzktMS42NCAxLjg4NnYuMzRjMCAxLjIzLjY4MyAxLjkwMiAxLjY0IDEuOTAyLjU1OCAwIDEuMDA4LS4yOTMgMS4xNzItLjY0OGguMDJ2LjYwNWMwIC42NDUtLjQyMyAxLjAyMy0xLjA3MSAxLjAyM3ptLjAwOC00LjUzYy42NDggMCAxLjA2Mi41MjcgMS4wNjIgMS4zNTl2LjI1M2MwIC44NDgtLjM5IDEuMzY0LTEuMDYyIDEuMzY0LS42OTIgMC0xLjA5OC0uNTEyLTEuMDk4LTEuMzY0di0uMjUzYzAtLjg2OC40MDYtMS4zNiAxLjA5OC0xLjM2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMiAyYTEgMSAwIDAgMC0xIDF2MTFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA0YS41LjUgMCAwIDEgLjUtLjVoMTBhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMlBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMiAzLjV2MWMwIC4yNzYuMjQ0LjUuNTQ1LjVoMTAuOTFjLjMgMCAuNTQ1LS4yMjQuNTQ1LS41di0xYzAtLjI3Ni0uMjQ0LS41LS41NDYtLjVIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41em02LjUgNWEuNS41IDAgMCAwLTEgMFYxMEg2YS41LjUgMCAwIDAgMCAxaDEuNXYxLjVhLjUuNSAwIDAgMCAxIDBWMTFIMTBhLjUuNSAwIDAgMCAwLTFIOC41VjguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAwYS41LjUgMCAwIDEgLjUuNVYxaDhWLjVhLjUuNSAwIDAgMSAxIDBWMWgxYTIgMiAwIDAgMSAyIDJ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDFWLjVhLjUuNSAwIDAgMSAuNS0uNXpNMiAyYTEgMSAwIDAgMC0xIDF2MTFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA0YS41LjUgMCAwIDEgLjUtLjVoMTBhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41SDNhLjUuNSAwIDAgMS0uNS0uNVY0ek04IDhhLjUuNSAwIDAgMSAuNS41VjEwSDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTFINmEuNS41IDAgMCAxIDAtMWgxLjVWOC41QS41LjUgMCAwIDEgOCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMlJhbmdlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41ek0xMCA3YTEgMSAwIDAgMCAwIDJoNVY3aC01em0tNCA0YTEgMSAwIDAgMC0xLTFIMXYyaDRhMSAxIDAgMCAwIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJSYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTIgMmExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgNGEuNS41IDAgMCAxIC41LS41aDEwYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNUgzYS41LjUgMCAwIDEtLjUtLjVWNHpNOSA4YTEgMSAwIDAgMSAxLTFoNXYyaC01YTEgMSAwIDAgMS0xLTF6bS04IDJoNGExIDEgMCAxIDEgMCAySDF2LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIyV2Vla0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41em05Ljk1NCAzSDIuNTQ1Yy0uMyAwLS41NDUuMjI0LS41NDUuNXYxYzAgLjI3Ni4yNDQuNS41NDUuNWgxMC45MWMuMyAwIC41NDUtLjIyNC41NDUtLjV2LTFjMC0uMjc2LS4yNDQtLjUtLjU0Ni0uNXpNOC41IDdhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xem0zIDBhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xek0zIDEwLjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41em0zLjUtLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyMldlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0yIDJhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDRhLjUuNSAwIDAgMSAuNS0uNWgxMGEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVIM2EuNS41IDAgMCAxLS41LS41VjR6TTExIDcuNWEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bS0zIDBhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xem0tNSAzYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptMyAwYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6bTkuOTU0IDNIMi41NDVjLS4zIDAtLjU0NS4yMjQtLjU0NS41djFjMCAuMjc2LjI0NC41LjU0NS41aDEwLjkxYy4zIDAgLjU0NS0uMjI0LjU0NS0uNXYtMWMwLS4yNzYtLjI0NC0uNS0uNTQ2LS41em0tNi42IDUuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhMNy4yOTMgMTBsLTEuMTQ3IDEuMTQ2YS41LjUgMCAwIDAgLjcwOC43MDhMOCAxMC43MDdsMS4xNDYgMS4xNDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMOC43MDcgMTBsMS4xNDctMS4xNDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMOCA5LjI5MyA2Ljg1NCA4LjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjJYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMTQ2IDguMTQ2YS41LjUgMCAwIDEgLjcwOCAwTDggOS4yOTNsMS4xNDYtMS4xNDdhLjUuNSAwIDEgMSAuNzA4LjcwOEw4LjcwNyAxMGwxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDggMTAuNzA3bC0xLjE0NiAxLjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyAxMCA2LjE0NiA4Ljg1NGEuNS41IDAgMCAxIDAtLjcwOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTIgMmExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgNGEuNS41IDAgMCAxIC41LS41aDEwYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNUgzYS41LjUgMCAwIDEtLjUtLjVWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0yIDJhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDRhLjUuNSAwIDAgMSAuNS0uNWgxMGEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVIM2EuNS41IDAgMCAxLS41LS41VjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIzRXZlbnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMmgxNmEyIDIgMCAwIDAtMi0ySDJ6TTAgMTRWM2gxNnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnptMTItOGExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIzRXZlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMEgyYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNMSAzLjg1N0MxIDMuMzg0IDEuNDQ4IDMgMiAzaDEyYy41NTIgMCAxIC4zODQgMSAuODU3djEwLjI4NmMwIC40NzMtLjQ0OC44NTctMSAuODU3SDJjLS41NTIgMC0xLS4zODQtMS0uODU3VjMuODU3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyM0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMkgwem0wIDF2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjNIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjNSYW5nZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAyaDE2YTIgMiAwIDAgMC0yLTJIMnpNMCA4VjNoMTZ2MmgtNmExIDEgMCAxIDAgMCAyaDZ2N2EyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnYtNGg2YTEgMSAwIDEgMCAwLTJIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjNSYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAwSDJhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek0xIDMuODU3QzEgMy4zODQgMS40NDggMyAyIDNoMTJjLjU1MiAwIDEgLjM4NCAxIC44NTd2MTAuMjg2YzAgLjQ3My0uNDQ4Ljg1Ny0xIC44NTdIMmMtLjU1MiAwLTEtLjM4NC0xLS44NTdWMy44NTd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMGExIDEgMCAwIDAgMC0ySDF2Mmg2em0yLTNoNlY1SDlhMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjNXZWVrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJoMTZhMiAyIDAgMCAwLTItMkgyek0wIDE0VjNoMTZ2MTFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTEyLThhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwek01IDlhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwem01LTJhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyek0yIDlhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyM1dlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMEgyYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNMSAzLjg1N0MxIDMuMzg0IDEuNDQ4IDMgMiAzaDEyYy41NTIgMCAxIC4zODQgMSAuODU3djEwLjI4NmMwIC40NzMtLjQ0OC44NTctMSAuODU3SDJjLS41NTIgMC0xLS4zODQtMS0uODU3VjMuODU3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0tNSAzYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptMi0zYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptLTUgM2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXIzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDBIMmEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTEgMy44NTdDMSAzLjM4NCAxLjQ0OCAzIDIgM2gxMmMuNTUyIDAgMSAuMzg0IDEgLjg1N3YxMC4yODZjMCAuNDczLS40NDguODU3LTEgLjg1N0gyYy0uNTUyIDAtMS0uMzg0LTEtLjg1N1YzLjg1N3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTMgMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTMgMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bS05IDNhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0zIDBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0zIDBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0zIDBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0tOSAzYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptMyAwYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptMyAwYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYWxlbmRhcjRFdmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTIgMmExIDEgMCAwIDAtMSAxdjFoMTRWM2ExIDEgMCAwIDAtMS0xSDJ6bTEzIDNIMXY5YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDcuNWEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FsZW5kYXI0UmFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0yIDJhMSAxIDAgMCAwLTEgMXYxaDE0VjNhMSAxIDAgMCAwLTEtMUgyem0xMyAzSDF2OWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDcuNWEuNS41IDAgMCAxIC41LS41SDE1djJIOS41YS41LjUgMCAwIDEtLjUtLjV2LTF6bS0yIDN2MWEuNS41IDAgMCAxLS41LjVIMXYtMmg1LjVhLjUuNSAwIDAgMSAuNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyNFdlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDBhLjUuNSAwIDAgMSAuNS41VjFoOFYuNWEuNS41IDAgMCAxIDEgMFYxaDFhMiAyIDAgMCAxIDIgMnYxMWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMVYuNWEuNS41IDAgMCAxIC41LS41ek0yIDJhMSAxIDAgMCAwLTEgMXYxaDE0VjNhMSAxIDAgMCAwLTEtMUgyem0xMyAzSDF2OWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3LjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xem0tMyAwYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtMXptLTIgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV2LTF6bS0zIDBhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbGVuZGFyNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMGEuNS41IDAgMCAxIC41LjVWMWg4Vi41YS41LjUgMCAwIDEgMSAwVjFoMWEyIDIgMCAwIDEgMiAydjExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxVi41YS41LjUgMCAwIDEgLjUtLjV6TTIgMmExIDEgMCAwIDAtMSAxdjFoMTRWM2ExIDEgMCAwIDAtMS0xSDJ6bTEzIDNIMXY5YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbWVyYUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSA4LjVhMi41IDIuNSAwIDEgMS01IDAgMi41IDIuNSAwIDAgMSA1IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC0xLjE3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtLjgyOC0uODI4QTIgMiAwIDAgMCA5LjE3MiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLS44MjguODI4QTIgMiAwIDAgMSAzLjE3MiA0SDJ6bS41IDJhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6bTkgMi41YTMuNSAzLjUgMCAxIDEtNyAwIDMuNSAzLjUgMCAwIDEgNyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbWVyYVJlZWxzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDNhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNmEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2aC41YTIgMiAwIDAgMSAxLjk4MyAxLjczOGwzLjExLTEuMzgyQTEgMSAwIDAgMSAxNiA3LjI2OXY3LjQ2MmExIDEgMCAwIDEtMS40MDYuOTEzbC0zLjExMS0xLjM4MkEyIDIgMCAwIDEgOS41IDE2SDJhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYW1lcmFSZWVscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDNhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwek0xIDNhMiAyIDAgMSAwIDQgMCAyIDIgMCAwIDAtNCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNmguNWEyIDIgMCAwIDEgMS45ODMgMS43MzhsMy4xMS0xLjM4MkExIDEgMCAwIDEgMTYgNy4yNjl2Ny40NjJhMSAxIDAgMCAxLTEuNDA2LjkxM2wtMy4xMTEtMS4zODJBMiAyIDAgMCAxIDkuNSAxNkgyYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDd6bTYgOC43M1Y3LjI3bC0zLjUgMS41NTV2NC4zNWwzLjUgMS41NTZ6TTEgOHY2YTEgMSAwIDAgMCAxIDFoNy41YTEgMSAwIDAgMCAxLTFWOGExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDZhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2ek03IDNhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbWVyYVZpZGVvRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMCA1YTIgMiAwIDAgMSAyLTJoNy41YTIgMiAwIDAgMSAxLjk4MyAxLjczOGwzLjExLTEuMzgyQTEgMSAwIDAgMSAxNiA0LjI2OXY3LjQ2MmExIDEgMCAwIDEtMS40MDYuOTEzbC0zLjExMS0xLjM4MkEyIDIgMCAwIDEgOS41IDEzSDJhMiAyIDAgMCAxLTItMlY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhbWVyYVZpZGVvT2ZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuOTYxIDEyLjM2NWExLjk5IDEuOTkgMCAwIDAgLjUyMi0xLjEwM2wzLjExIDEuMzgyQTEgMSAwIDAgMCAxNiAxMS43MzFWNC4yNjlhMSAxIDAgMCAwLTEuNDA2LS45MTNsLTMuMTExIDEuMzgyQTIgMiAwIDAgMCA5LjUgM0g0LjI3Mmw2LjY5IDkuMzY1em0tMTAuMTE0LTlBMi4wMDEgMi4wMDEgMCAwIDAgMCA1djZhMiAyIDAgMCAwIDIgMmg1LjcyOEwuODQ3IDMuMzY2em05Ljc0NiAxMS45MjUtMTAtMTQgLjgxNC0uNTggMTAgMTQtLjgxNC41OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYW1lcmFWaWRlb09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuOTYxIDEyLjM2NWExLjk5IDEuOTkgMCAwIDAgLjUyMi0xLjEwM2wzLjExIDEuMzgyQTEgMSAwIDAgMCAxNiAxMS43MzFWNC4yNjlhMSAxIDAgMCAwLTEuNDA2LS45MTNsLTMuMTExIDEuMzgyQTIgMiAwIDAgMCA5LjUgM0g0LjI3MmwuNzE0IDFIOS41YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtLjE0NC41MThsLjYwNS44NDd6TTEuNDI4IDQuMThBLjk5OS45OTkgMCAwIDAgMSA1djZhMSAxIDAgMCAwIDEgMWg1LjAxNGwuNzE0IDFIMmEyIDIgMCAwIDEtMi0yVjVjMC0uNjc1LjMzNC0xLjI3Mi44NDctMS42MzRsLjU4LjgxNHpNMTUgMTEuNzNsLTMuNS0xLjU1NXYtNC4zNUwxNSA0LjI2OXY3LjQ2MnptLTQuNDA3IDMuNTYtMTAtMTQgLjgxNC0uNTggMTAgMTQtLjgxNC41OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYW1lcmFWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMCA1YTIgMiAwIDAgMSAyLTJoNy41YTIgMiAwIDAgMSAxLjk4MyAxLjczOGwzLjExLTEuMzgyQTEgMSAwIDAgMSAxNiA0LjI2OXY3LjQ2MmExIDEgMCAwIDEtMS40MDYuOTEzbC0zLjExMS0xLjM4MkEyIDIgMCAwIDEgOS41IDEzSDJhMiAyIDAgMCAxLTItMlY1em0xMS41IDUuMTc1IDMuNSAxLjU1NlY0LjI2OWwtMy41IDEuNTU2djQuMzV6TTIgNGExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWg3LjVhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMC0xLTFIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTJhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDEuMTcyYTMgMyAwIDAgMCAyLjEyLS44NzlsLjgzLS44MjhBMSAxIDAgMCAxIDYuODI3IDNoMi4zNDRhMSAxIDAgMCAxIC43MDcuMjkzbC44MjguODI4QTMgMyAwIDAgMCAxMi44MjggNUgxNGExIDEgMCAwIDEgMSAxdjZ6TTIgNGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtMS4xNzJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLS44MjgtLjgyOEEyIDIgMCAwIDAgOS4xNzIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0uODI4LjgyOEEyIDIgMCAwIDEgMy4xNzIgNEgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6bTAgMWEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN3pNMyA2LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FtZXJhMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhjMC0xLjY1NyAyLjM0My0zIDQtM1Y0YTQgNCAwIDAgMC00IDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMzE4IDNoMi4wMTVDMTUuMjUzIDMgMTYgMy43NDYgMTYgNC42Njd2Ni42NjZjMCAuOTItLjc0NiAxLjY2Ny0xLjY2NyAxLjY2N2gtMi4wMTVBNS45NyA1Ljk3IDAgMCAxIDkgMTRhNS45NzIgNS45NzIgMCAwIDEtMy4zMTgtMUgxLjY2N0MuNzQ3IDEzIDAgMTIuMjU0IDAgMTEuMzMzVjQuNjY3QzAgMy43NDcuNzQ2IDMgMS42NjcgM0gyYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxaC42ODJBNS45NyA1Ljk3IDAgMCAxIDkgMmMxLjIyNyAwIDIuMzY3LjM2OCAzLjMxOCAxek0yIDQuNWEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMHpNMTQgOEE1IDUgMCAxIDAgNCA4YTUgNSAwIDAgMCAxMCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcHNsb2NrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjI3IDEuMDQ3YTEgMSAwIDAgMSAxLjQ2IDBsNi4zNDUgNi43N2MuNi42MzguMTQ2IDEuNjgzLS43MyAxLjY4M0gxMS41djFhMSAxIDAgMCAxLTEgMWgtNWExIDEgMCAwIDEtMS0xdi0xSDEuNjU0Qy43OCA5LjUuMzI2IDguNDU1LjkyNCA3LjgxNkw3LjI3IDEuMDQ3ek00LjUgMTMuNWExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXBzbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy4yNyAxLjA0N2ExIDEgMCAwIDEgMS40NiAwbDYuMzQ1IDYuNzdjLjYuNjM4LjE0NiAxLjY4My0uNzMgMS42ODNIMTEuNXYxYTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtMUgxLjY1NEMuNzggOS41LjMyNiA4LjQ1NS45MjQgNy44MTZMNy4yNyAxLjA0N3pNMTQuMzQ2IDguNSA4IDEuNzMxIDEuNjU0IDguNUg0LjVhMSAxIDAgMCAxIDEgMXYxaDV2LTFhMSAxIDAgMCAxIDEtMWgyLjg0NnptLTkuODQ2IDVhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTF2LTF6bTYgMGgtNXYxaDV2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZENoZWNrbGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDNhLjUuNSAwIDAgMSAuNS41djlhLjUuNSAwIDAgMS0uNS41aC0xM2EuNS41IDAgMCAxLS41LS41di05YS41LjUgMCAwIDEgLjUtLjVoMTN6bS0xMy0xQTEuNSAxLjUgMCAwIDAgMCAzLjV2OUExLjUgMS41IDAgMCAwIDEuNSAxNGgxM2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTlBMS41IDEuNSAwIDAgMCAxNC41IDJoLTEzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41em0tMS40OTYtLjg1NGEuNS41IDAgMCAxIDAgLjcwOGwtMS41IDEuNWEuNS41IDAgMCAxLS43MDggMGwtLjUtLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhsLjE0Ni4xNDcgMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4IDB6TTcgOS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41em0tMS40OTYtLjg1NGEuNS41IDAgMCAxIDAgLjcwOGwtMS41IDEuNWEuNS41IDAgMCAxLS43MDggMGwtLjUtLjVhLjUuNSAwIDAgMSAuNzA4LS43MDhsLjE0Ni4xNDcgMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZEhlYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAzYS41LjUgMCAwIDEgLjUuNXY5YS41LjUgMCAwIDEtLjUuNWgtMTNhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDEzem0tMTMtMUExLjUgMS41IDAgMCAwIDAgMy41djlBMS41IDEuNSAwIDAgMCAxLjUgMTRoMTNhMS41IDEuNSAwIDAgMCAxLjUtMS41di05QTEuNSAxLjUgMCAwIDAgMTQuNSAyaC0xM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDguNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41em0wLTVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmRJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjAwMiA1LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS41IDJBMS41IDEuNSAwIDAgMCAwIDMuNXY5QTEuNSAxLjUgMCAwIDAgMS41IDE0aDEzYTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtOUExLjUgMS41IDAgMCAwIDE0LjUgMmgtMTN6bTEzIDFhLjUuNSAwIDAgMSAuNS41djZsLTMuNzc1LTEuOTQ3YS41LjUgMCAwIDAtLjU3Ny4wOTNsLTMuNzEgMy43MS0yLjY2LTEuNzcyYS41LjUgMCAwIDAtLjYzLjA2MkwxLjAwMiAxMnYuNTRBLjUwNS41MDUgMCAwIDEgMSAxMi41di05YS41LjUgMCAwIDEgLjUtLjVoMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZExpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAzYS41LjUgMCAwIDEgLjUuNXY5YS41LjUgMCAwIDEtLjUuNWgtMTNhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDEzem0tMTMtMUExLjUgMS41IDAgMCAwIDAgMy41djlBMS41IDEuNSAwIDAgMCAxLjUgMTRoMTNhMS41IDEuNSAwIDAgMCAxLjUtMS41di05QTEuNSAxLjUgMCAwIDAgMTQuNSAyaC0xM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNSA4em0wLTIuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXptMCA1YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0tMS01YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwek00IDhhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6bTAgMi41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmRUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgM2EuNS41IDAgMCAxIC41LjV2OWEuNS41IDAgMCAxLS41LjVoLTEzYS41LjUgMCAwIDEtLjUtLjV2LTlhLjUuNSAwIDAgMSAuNS0uNWgxM3ptLTEzLTFBMS41IDEuNSAwIDAgMCAwIDMuNXY5QTEuNSAxLjUgMCAwIDAgMS41IDE0aDEzYTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtOUExLjUgMS41IDAgMCAwIDE0LjUgMmgtMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1LjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6TTMgOGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlBLjUuNSAwIDAgMSAzIDh6bTAgMi41YS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0RG93bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yNDcgMTEuMTQgMi40NTEgNS42NThDMS44ODUgNS4wMTMgMi4zNDUgNCAzLjIwNCA0aDkuNTkyYTEgMSAwIDAgMSAuNzUzIDEuNjU5bC00Ljc5NiA1LjQ4YTEgMSAwIDAgMS0xLjUwNiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0RG93blNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem00IDRhLjUuNSAwIDAgMC0uMzc0LjgzMmw0IDQuNWEuNS41IDAgMCAwIC43NDggMGw0LTQuNUEuNS41IDAgMCAwIDEyIDZINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJldERvd25TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy42MjYgNi44MzJBLjUuNSAwIDAgMSA0IDZoOGEuNS41IDAgMCAxIC4zNzQuODMybC00IDQuNWEuNS41IDAgMCAxLS43NDggMGwtNC00LjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem0xNSAwYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjIwNCA1aDkuNTkyTDggMTAuNDgxIDMuMjA0IDV6bS0uNzUzLjY1OSA0Ljc5NiA1LjQ4YTEgMSAwIDAgMCAxLjUwNiAwbDQuNzk2LTUuNDhjLjU2Ni0uNjQ3LjEwNi0xLjY1OS0uNzUzLTEuNjU5SDMuMjA0YTEgMSAwIDAgMC0uNzUzIDEuNjU5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0TGVmdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy44NiA4Ljc1MyA1LjQ4MiA0Ljc5NmMuNjQ2LjU2NiAxLjY1OC4xMDYgMS42NTgtLjc1M1YzLjIwNGExIDEgMCAwIDAtMS42NTktLjc1M2wtNS40OCA0Ljc5NmExIDEgMCAwIDAgMCAxLjUwNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJldExlZnRTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMnptMTAuNSAxMFY0YS41LjUgMCAwIDAtLjgzMi0uMzc0bC00LjUgNGEuNS41IDAgMCAwIDAgLjc0OGw0LjUgNEEuNS41IDAgMCAwIDEwLjUgMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZXRMZWZ0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4yMDUgMTIuNDU2QS41LjUgMCAwIDAgMTAuNSAxMlY0YS41LjUgMCAwIDAtLjgzMi0uMzc0bC00LjUgNGEuNS41IDAgMCAwIDAgLjc0OGw0LjUgNGEuNS41IDAgMCAwIC41MzcuMDgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMi43OTZWMy4yMDRMNC41MTkgOCAxMCAxMi43OTZ6bS0uNjU5Ljc1My01LjQ4LTQuNzk2YTEgMSAwIDAgMSAwLTEuNTA2bDUuNDgtNC43OTZBMSAxIDAgMCAxIDExIDMuMjA0djkuNTkyYTEgMSAwIDAgMS0xLjY1OS43NTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZXRSaWdodEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuMTQgOC43NTMtNS40ODIgNC43OTZjLS42NDYuNTY2LTEuNjU4LjEwNi0xLjY1OC0uNzUzVjMuMjA0YTEgMSAwIDAgMSAxLjY1OS0uNzUzbDUuNDggNC43OTZhMSAxIDAgMCAxIDAgMS41MDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZXRSaWdodFNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem01LjUgMTBhLjUuNSAwIDAgMCAuODMyLjM3NGw0LjUtNGEuNS41IDAgMCAwIDAtLjc0OGwtNC41LTRBLjUuNSAwIDAgMCA1LjUgNHY4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0UmlnaHRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzk1IDEyLjQ1NkEuNS41IDAgMCAxIDUuNSAxMlY0YS41LjUgMCAwIDEgLjgzMi0uMzc0bDQuNSA0YS41LjUgMCAwIDEgMCAuNzQ4bC00LjUgNGEuNS41IDAgMCAxLS41MzcuMDgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMi43OTZWMy4yMDRMMTEuNDgxIDggNiAxMi43OTZ6bS42NTkuNzUzIDUuNDgtNC43OTZhMSAxIDAgMCAwIDAtMS41MDZMNi42NiAyLjQ1MUM2LjAxMSAxLjg4NSA1IDIuMzQ1IDUgMy4yMDR2OS41OTJhMSAxIDAgMCAwIDEuNjU5Ljc1M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJldFVwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03LjI0NyA0Ljg2LTQuNzk2IDUuNDgxYy0uNTY2LjY0Ny0uMTA2IDEuNjU5Ljc1MyAxLjY1OWg5LjU5MmExIDEgMCAwIDAgLjc1My0xLjY1OWwtNC43OTYtNS40OGExIDEgMCAwIDAtMS41MDYgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJldFVwU3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTQgOWg4YS41LjUgMCAwIDAgLjM3NC0uODMybC00LTQuNWEuNS41IDAgMCAwLS43NDggMGwtNCA0LjVBLjUuNSAwIDAgMCA0IDExelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcmV0VXBTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNTQ0IDEwLjcwNUEuNS41IDAgMCAwIDQgMTFoOGEuNS41IDAgMCAwIC4zNzQtLjgzMmwtNC00LjVhLjUuNSAwIDAgMC0uNzQ4IDBsLTQgNC41YS41LjUgMCAwIDAtLjA4Mi41Mzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FyZXRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjIwNCAxMWg5LjU5Mkw4IDUuNTE5IDMuMjA0IDExem0tLjc1My0uNjU5IDQuNzk2LTUuNDhhMSAxIDAgMCAxIDEuNTA2IDBsNC43OTYgNS40OGMuNTY2LjY0Ny4xMDYgMS42NTktLjc1MyAxLjY1OUgzLjIwNGExIDEgMCAwIDEtLjc1My0xLjY1OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJ0Q2hlY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDFhLjUuNSAwIDAgMCAwIDFoMS4xMWwuNDAxIDEuNjA3IDEuNDk4IDcuOTg1QS41LjUgMCAwIDAgNCAxMmgxYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGg3YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGgxYS41LjUgMCAwIDAgLjQ5MS0uNDA4bDEuNS04QS41LjUgMCAwIDAgMTQuNSAzSDIuODlsLS40MDUtMS42MjFBLjUuNSAwIDAgMCAyIDFILjV6TTYgMTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem03IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0tMS42NDYtNy42NDYtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDggOC4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJ0Q2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMzU0IDYuMzU0YS41LjUgMCAwIDAtLjcwOC0uNzA4TDggOC4yOTMgNi44NTQgNy4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwxLjUgMS41YS41LjUgMCAwIDAgLjcwOCAwbDMtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uNSAxYS41LjUgMCAwIDAgMCAxaDEuMTFsLjQwMSAxLjYwNyAxLjQ5OCA3Ljk4NUEuNS41IDAgMCAwIDQgMTJoMWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRoN2EyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRoMWEuNS41IDAgMCAwIC40OTEtLjQwOGwxLjUtOEEuNS41IDAgMCAwIDE0LjUgM0gyLjg5bC0uNDA1LTEuNjIxQS41LjUgMCAwIDAgMiAxSC41em0zLjkxNSAxMEwzLjEwMiA0aDEwLjc5NmwtMS4zMTMgN2gtOC4xN3pNNiAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTcgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FydERhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDFhLjUuNSAwIDAgMCAwIDFoMS4xMWwuNDAxIDEuNjA3IDEuNDk4IDcuOTg1QS41LjUgMCAwIDAgNCAxMmgxYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGg3YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGgxYS41LjUgMCAwIDAgLjQ5MS0uNDA4bDEuNS04QS41LjUgMCAwIDAgMTQuNSAzSDIuODlsLS40MDUtMS42MjFBLjUuNSAwIDAgMCAyIDFILjV6TTYgMTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem03IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwek02LjUgN2g0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcnREYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA3YS41LjUgMCAwIDAgMCAxaDRhLjUuNSAwIDAgMCAwLTFoLTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgMWEuNS41IDAgMCAwIDAgMWgxLjExbC40MDEgMS42MDcgMS40OTggNy45ODVBLjUuNSAwIDAgMCA0IDEyaDFhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDdhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDFhLjUuNSAwIDAgMCAuNDkxLS40MDhsMS41LThBLjUuNSAwIDAgMCAxNC41IDNIMi44OWwtLjQwNS0xLjYyMUEuNS41IDAgMCAwIDIgMUguNXptMy45MTUgMTBMMy4xMDIgNGgxMC43OTZsLTEuMzEzIDdoLTguMTd6TTYgMTRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem03IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMS41QS41LjUgMCAwIDEgLjUgMUgyYS41LjUgMCAwIDEgLjQ4NS4zNzlMMi44OSAzSDE0LjVhLjUuNSAwIDAgMSAuNDkxLjU5MmwtMS41IDhBLjUuNSAwIDAgMSAxMyAxMkg0YS41LjUgMCAwIDEtLjQ5MS0uNDA4TDIuMDEgMy42MDcgMS42MSAySC41YS41LjUgMCAwIDEtLjUtLjV6TTUgMTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00em03IDBhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00em0tNyAxYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMnptNyAwYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJ0UGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgMWEuNS41IDAgMCAwIDAgMWgxLjExbC40MDEgMS42MDcgMS40OTggNy45ODVBLjUuNSAwIDAgMCA0IDEyaDFhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDdhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDFhLjUuNSAwIDAgMCAuNDkxLS40MDhsMS41LThBLjUuNSAwIDAgMCAxNC41IDNIMi44OWwtLjQwNS0xLjYyMUEuNS41IDAgMCAwIDIgMUguNXpNNiAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTcgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6TTkgNS41VjdoMS41YS41LjUgMCAwIDEgMCAxSDl2MS41YS41LjUgMCAwIDEtMSAwVjhINi41YS41LjUgMCAwIDEgMC0xSDhWNS41YS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcnRQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNS41YS41LjUgMCAwIDAtMSAwVjdINi41YS41LjUgMCAwIDAgMCAxSDh2MS41YS41LjUgMCAwIDAgMSAwVjhoMS41YS41LjUgMCAwIDAgMC0xSDlWNS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDFhLjUuNSAwIDAgMCAwIDFoMS4xMWwuNDAxIDEuNjA3IDEuNDk4IDcuOTg1QS41LjUgMCAwIDAgNCAxMmgxYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGg3YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNGgxYS41LjUgMCAwIDAgLjQ5MS0uNDA4bDEuNS04QS41LjUgMCAwIDAgMTQuNSAzSDIuODlsLS40MDUtMS42MjFBLjUuNSAwIDAgMCAyIDFILjV6bTMuOTE1IDEwTDMuMTAyIDRoMTAuNzk2bC0xLjMxMyA3aC04LjE3ek02IDE0YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptNyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJ0WEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgMWEuNS41IDAgMCAwIDAgMWgxLjExbC40MDEgMS42MDcgMS40OTggNy45ODVBLjUuNSAwIDAgMCA0IDEyaDFhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDdhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00aDFhLjUuNSAwIDAgMCAuNDkxLS40MDhsMS41LThBLjUuNSAwIDAgMCAxNC41IDNIMi44OWwtLjQwNS0xLjYyMUEuNS41IDAgMCAwIDIgMUguNXpNNiAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTcgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6TTcuMzU0IDUuNjQ2IDguNSA2Ljc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4TDkuMjA3IDcuNWwxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDguNSA4LjIwNyA3LjM1NCA5LjM1NGEuNS41IDAgMSAxLS43MDgtLjcwOEw3Ljc5MyA3LjUgNi42NDYgNi4zNTRhLjUuNSAwIDEgMSAuNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FydFggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4zNTQgNS42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOEw3Ljc5MyA3LjUgNi42NDYgOC42NDZhLjUuNSAwIDEgMCAuNzA4LjcwOEw4LjUgOC4yMDdsMS4xNDYgMS4xNDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMOS4yMDcgNy41bDEuMTQ3LTEuMTQ2YS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSA2Ljc5MyA3LjM1NCA1LjY0NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uNSAxYS41LjUgMCAwIDAgMCAxaDEuMTFsLjQwMSAxLjYwNyAxLjQ5OCA3Ljk4NUEuNS41IDAgMCAwIDQgMTJoMWEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRoN2EyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTRoMWEuNS41IDAgMCAwIC40OTEtLjQwOGwxLjUtOEEuNS41IDAgMCAwIDE0LjUgM0gyLjg5bC0uNDA1LTEuNjIxQS41LjUgMCAwIDAgMiAxSC41em0zLjkxNSAxMEwzLjEwMiA0aDEwLjc5NmwtMS4zMTMgN2gtOC4xN3pNNiAxNGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTcgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuNUEuNS41IDAgMCAxIC41IDFIMmEuNS41IDAgMCAxIC40ODUuMzc5TDIuODkgM0gxNC41YS41LjUgMCAwIDEgLjQ5MS41OTJsLTEuNSA4QS41LjUgMCAwIDEgMTMgMTJINGEuNS41IDAgMCAxLS40OTEtLjQwOEwyLjAxIDMuNjA3IDEuNjEgMkguNWEuNS41IDAgMCAxLS41LS41ek0zLjEwMiA0bDEuMzEzIDdoOC4xN2wxLjMxMy03SDMuMTAyek01IDEyYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNHptNyAwYTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNHptLTcgMWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTcgMGExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2FydDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyLjVBLjUuNSAwIDAgMSAuNSAySDJhLjUuNSAwIDAgMSAuNDg1LjM3OUwyLjg5IDRIMTQuNWEuNS41IDAgMCAxIC40ODUuNjIxbC0xLjUgNkEuNS41IDAgMCAxIDEzIDExSDRhLjUuNSAwIDAgMS0uNDg1LS4zNzlMMS42MSAzSC41YS41LjUgMCAwIDEtLjUtLjV6TTMuMTQgNWwxLjI1IDVoOC4yMmwxLjI1LTVIMy4xNHpNNSAxM2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bS0yIDFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwem05LTFhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yem0tMiAxYTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDYXJ0MyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuNUEuNS41IDAgMCAxIC41IDFIMmEuNS41IDAgMCAxIC40ODUuMzc5TDIuODkgM0gxNC41YS41LjUgMCAwIDEgLjQ5LjU5OGwtMSA1YS41LjUgMCAwIDEtLjQ2NS40MDFsLTkuMzk3LjQ3Mkw0LjQxNSAxMUgxM2EuNS41IDAgMCAxIDAgMUg0YS41LjUgMCAwIDEtLjQ5MS0uNDA4TDIuMDEgMy42MDcgMS42MSAySC41YS41LjUgMCAwIDEtLjUtLjV6TTMuMTAyIDRsLjg0IDQuNDc5IDkuMTQ0LS40NTlMMTMuODkgNEgzLjEwMnpNNSAxMmEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTR6bTcgMGEyIDIgMCAxIDAgMCA0IDIgMiAwIDAgMCAwLTR6bS03IDFhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yem03IDBhMSAxIDAgMSAxIDAgMiAxIDEgMCAwIDEgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NhcnQ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMi41QS41LjUgMCAwIDEgLjUgMkgyYS41LjUgMCAwIDEgLjQ4NS4zNzlMMi44OSA0SDE0LjVhLjUuNSAwIDAgMSAuNDg1LjYyMWwtMS41IDZBLjUuNSAwIDAgMSAxMyAxMUg0YS41LjUgMCAwIDEtLjQ4NS0uMzc5TDEuNjEgM0guNWEuNS41IDAgMCAxLS41LS41ek0zLjE0IDVsLjUgMkg1VjVIMy4xNHpNNiA1djJoMlY1SDZ6bTMgMHYyaDJWNUg5em0zIDB2MmgxLjM2bC41LTJIMTJ6bTEuMTEgM0gxMnYyaC42MWwuNS0yek0xMSA4SDl2MmgyVjh6TTggOEg2djJoMlY4ek01IDhIMy44OWwuNSAySDVWOHptMCA1YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMnptLTIgMWEyIDIgMCAxIDEgNCAwIDIgMiAwIDAgMS00IDB6bTktMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bS0yIDFhMiAyIDAgMSAxIDQgMCAyIDIgMCAwIDEtNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nhc2hDb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMSAxNWE0IDQgMCAxIDAgMC04IDQgNCAwIDAgMCAwIDh6bTUtNGE1IDUgMCAxIDEtMTAgMCA1IDUgMCAwIDEgMTAgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQzOCAxMS45NDRjLjA0Ny41OTYuNTE4IDEuMDYgMS4zNjMgMS4xMTZ2LjQ0aC4zNzV2LS40NDNjLjg3NS0uMDYxIDEuMzg2LS41MjkgMS4zODYtMS4yMDcgMC0uNjE4LS4zOS0uOTM2LTEuMDktMS4xbC0uMjk2LS4wN3YtMS4yYy4zNzYuMDQzLjYxNC4yNDguNjcxLjUzMmguNjU4Yy0uMDQ3LS41NzUtLjU0LTEuMDI0LTEuMzI5LTEuMDczVjguNWgtLjM3NXYuNDVjLS43NDcuMDczLTEuMjU1LjUyMi0xLjI1NSAxLjE1OCAwIC41NjIuMzc4LjkyIDEuMDA3IDEuMDY2bC4yNDguMDYxdjEuMjcyYy0uMzg0LS4wNTgtLjYzOS0uMjctLjY5Ni0uNTYzaC0uNjY4em0xLjM2LTEuMzU0Yy0uMzY5LS4wODUtLjU2OS0uMjYtLjU2OS0uNTIyIDAtLjI5NC4yMTYtLjUxNC41NzItLjU3OHYxLjFoLS4wMDN6bS40MzIuNzQ2Yy40NDkuMTA0LjY1NS4yNzIuNjU1LjU2OSAwIC4zMzktLjI1Ny41NzEtLjcwOS42MTR2LTEuMTk1bC4wNTQuMDEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMGExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg0LjA4M2MuMDU4LS4zNDQuMTQ1LS42NzguMjU4LTFIM2EyIDIgMCAwIDAtMi0yVjNhMiAyIDAgMCAwIDItMmgxMGEyIDIgMCAwIDAgMiAydjMuNTI4Yy4zOC4zNC43MTcuNzI4IDEgMS4xNTRWMWExIDEgMCAwIDAtMS0xSDF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS45OTggNS4wODMgMTAgNWEyIDIgMCAxIDAtMy4xMzIgMS42NSA1Ljk4MiA1Ljk4MiAwIDAgMSAzLjEzLTEuNTY3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nhc2hTdGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxSDF6bTcgOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA1YTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjV6bTMgMGEyIDIgMCAwIDEtMiAydjRhMiAyIDAgMCAxIDIgMmgxMGEyIDIgMCAwIDEgMi0yVjdhMiAyIDAgMCAxLTItMkgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjR6bTMgMGEyIDIgMCAwIDEtMiAydjRhMiAyIDAgMCAxIDIgMmgxMGEyIDIgMCAwIDEgMi0yVjZhMiAyIDAgMCAxLTItMkgzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy42NDYgOS4zNTQtMy43OTIgMy43OTJhLjUuNSAwIDAgMCAuMzUzLjg1NGg3LjU4NmEuNS41IDAgMCAwIC4zNTQtLjg1NEw4LjM1NCA5LjM1NGEuNS41IDAgMCAwLS43MDggMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40MTQgMTFIMTQuNWEuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjUtLjVoLTEzYS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAwIDAgLjUuNWgzLjA4NmwtMSAxSDEuNUExLjUgMS41IDAgMCAxIDAgMTAuNXYtN0ExLjUgMS41IDAgMCAxIDEuNSAyaDEzQTEuNSAxLjUgMCAwIDEgMTYgMy41djdhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0yLjA4NmwtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXREb3RzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4YzAgMy44NjYtMy41ODIgNy04IDdhOS4wNiA5LjA2IDAgMCAxLTIuMzQ3LS4zMDZjLS41ODQuMjk2LTEuOTI1Ljg2NC00LjE4MSAxLjIzNC0uMi4wMzItLjM1Mi0uMTc2LS4yNzMtLjM2Mi4zNTQtLjgzNi42NzQtMS45NS43Ny0yLjk2NkMuNzQ0IDExLjM3IDAgOS43NiAwIDhjMC0zLjg2NiAzLjU4Mi03IDgtN3M4IDMuMTM0IDggN3pNNSA4YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHptNCAwYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHptMyAxYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0RG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuMTY1IDE1LjgwMy4wMi0uMDA0YzEuODMtLjM2MyAyLjk0OC0uODQyIDMuNDY4LTEuMTA1QTkuMDYgOS4wNiAwIDAgMCA4IDE1YzQuNDE4IDAgOC0zLjEzNCA4LTdzLTMuNTgyLTctOC03LTggMy4xMzQtOCA3YzAgMS43Ni43NDMgMy4zNyAxLjk3IDQuNmExMC40MzcgMTAuNDM3IDAgMCAxLS41MjQgMi4zMThsLS4wMDMuMDExYTEwLjcyMiAxMC43MjIgMCAwIDEtLjI0NC42MzdjLS4wNzkuMTg2LjA3NC4zOTQuMjczLjM2MmEyMS42NzMgMjEuNjczIDAgMCAwIC42OTMtLjEyNXptLjgtMy4xMDhhMSAxIDAgMCAwLS4yODctLjgwMUMxLjYxOCAxMC44MyAxIDkuNDY4IDEgOGMwLTMuMTkyIDMuMDA0LTYgNy02czcgMi44MDggNyA2YzAgMy4xOTMtMy4wMDQgNi03IDZhOC4wNiA4LjA2IDAgMCAxLTIuMDg4LS4yNzIgMSAxIDAgMCAwLS43MTEuMDc0Yy0uMzg3LjE5Ni0xLjI0LjU3LTIuNjM0Ljg5M2ExMC45NyAxMC45NyAwIDAgMCAuMzk4LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNWM0LjQxOCAwIDgtMy4xMzQgOC03cy0zLjU4Mi03LTgtNy04IDMuMTM0LTggN2MwIDEuNzYuNzQzIDMuMzcgMS45NyA0LjYtLjA5NyAxLjAxNi0uNDE3IDIuMTMtLjc3MSAyLjk2Ni0uMDc5LjE4Ni4wNzQuMzk0LjI3My4zNjIgMi4yNTYtLjM3IDMuNTk3LS45MzggNC4xOC0xLjIzNEE5LjA2IDkuMDYgMCAwIDAgOCAxNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0TGVmdERvdHNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDQuNDE0YTEgMSAwIDAgMC0uNzA3LjI5M0wuODU0IDE1LjE0NkEuNS41IDAgMCAxIDAgMTQuNzkzVjJ6bTUgNGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6bTQgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6bTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdExlZnREb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFINC40MTRBMiAyIDAgMCAwIDMgMTEuNTg2bC0yIDJWMmExIDEgMCAwIDEgMS0xaDEyek0yIDBhMiAyIDAgMCAwLTIgMnYxMi43OTNhLjUuNSAwIDAgMCAuODU0LjM1M2wyLjg1My0yLjg1M0ExIDEgMCAwIDEgNC40MTQgMTJIMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRMZWZ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMnYxMi43OTNhLjUuNSAwIDAgMCAuODU0LjM1M2wyLjg1My0yLjg1M0ExIDEgMCAwIDEgNC40MTQgMTJIMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0TGVmdFF1b3RlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0LjQxNGExIDEgMCAwIDAtLjcwNy4yOTNMLjg1NCAxNS4xNDZBLjUuNSAwIDAgMSAwIDE0Ljc5M1Yyem03LjE5NCAyLjc2NmExLjY4OCAxLjY4OCAwIDAgMC0uMjI3LS4yNzIgMS40NjcgMS40NjcgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgNS43MzQgNEM0Ljc3NiA0IDQgNC43NDYgNCA1LjY2N2MwIC45Mi43NzYgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjYtLjEzNy4zODktLjM5LjgwNC0uODEgMS4yMmEuNDA1LjQwNSAwIDAgMCAuMDExLjU5Yy4xNzMuMTYuNDQ3LjE1NS42MTQtLjAxIDEuMzM0LTEuMzI5IDEuMzctMi43NTguOTQxLTMuNzA2YTIuNDYxIDIuNDYxIDAgMCAwLS4yMjctLjR6TTExIDcuMDczYy0uMTM2LjM4OS0uMzkuODA0LS44MSAxLjIyYS40MDUuNDA1IDAgMCAwIC4wMTIuNTljLjE3Mi4xNi40NDYuMTU1LjYxMy0uMDEgMS4zMzQtMS4zMjkgMS4zNy0yLjc1OC45NDItMy43MDZhMi40NjYgMi40NjYgMCAwIDAtLjIyOC0uNCAxLjY4NiAxLjY4NiAwIDAgMC0uMjI3LS4yNzMgMS40NjYgMS40NjYgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgMTAuMDcgNGMtLjk1NyAwLTEuNzM0Ljc0Ni0xLjczNCAxLjY2NyAwIC45Mi43NzcgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdExlZnRRdW90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDQuNDE0QTIgMiAwIDAgMCAzIDExLjU4NmwtMiAyVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTIuNzkzYS41LjUgMCAwIDAgLjg1NC4zNTNsMi44NTMtMi44NTNBMSAxIDAgMCAxIDQuNDE0IDEySDE0YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNjYgNC43NkExLjY2NSAxLjY2NSAwIDAgMCA0IDUuNjY4YTEuNjY3IDEuNjY3IDAgMCAwIDIuNTYxIDEuNDA2Yy0uMTMxLjM4OS0uMzc1LjgwNC0uNzc3IDEuMjJhLjQxNy40MTcgMCAxIDAgLjYuNThjMS40ODYtMS41NCAxLjI5My0zLjIxNC42ODItNC4xMTJ6bTQgMEExLjY2NSAxLjY2NSAwIDAgMCA4IDUuNjY4YTEuNjY3IDEuNjY3IDAgMCAwIDIuNTYxIDEuNDA2Yy0uMTMxLjM4OS0uMzc1LjgwNC0uNzc3IDEuMjJhLjQxNy40MTcgMCAxIDAgLjYuNThjMS40ODYtMS41NCAxLjI5My0zLjIxNC42ODItNC4xMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdExlZnRUZXh0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg0LjQxNGExIDEgMCAwIDAtLjcwNy4yOTNMLjg1NCAxNS4xNDZBLjUuNSAwIDAgMSAwIDE0Ljc5M1Yyem0zLjUgMWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05em0wIDIuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05em0wIDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRMZWZ0VGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDQuNDE0QTIgMiAwIDAgMCAzIDExLjU4NmwtMiAyVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTIuNzkzYS41LjUgMCAwIDAgLjg1NC4zNTNsMi44NTMtMi44NTNBMSAxIDAgMCAxIDQuNDE0IDEySDE0YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzLjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6TTMgNmEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlBLjUuNSAwIDAgMSAzIDZ6bTAgMi41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFINC40MTRBMiAyIDAgMCAwIDMgMTEuNTg2bC0yIDJWMmExIDEgMCAwIDEgMS0xaDEyek0yIDBhMiAyIDAgMCAwLTIgMnYxMi43OTNhLjUuNSAwIDAgMCAuODU0LjM1M2wyLjg1My0yLjg1M0ExIDEgMCAwIDEgNC40MTQgMTJIMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0UXVvdGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhjMCAzLjg2Ni0zLjU4MiA3LTggN2E5LjA2IDkuMDYgMCAwIDEtMi4zNDctLjMwNmMtLjU4NC4yOTYtMS45MjUuODY0LTQuMTgxIDEuMjM0LS4yLjAzMi0uMzUyLS4xNzYtLjI3My0uMzYyLjM1NC0uODM2LjY3NC0xLjk1Ljc3LTIuOTY2Qy43NDQgMTEuMzcgMCA5Ljc2IDAgOGMwLTMuODY2IDMuNTgyLTcgOC03czggMy4xMzQgOCA3ek03LjE5NCA2Ljc2NmExLjY4OCAxLjY4OCAwIDAgMC0uMjI3LS4yNzIgMS40NjcgMS40NjcgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgNS43MzQgNkM0Ljc3NiA2IDQgNi43NDYgNCA3LjY2N2MwIC45Mi43NzYgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjYtLjEzNy4zODktLjM5LjgwNC0uODEgMS4yMmEuNDA1LjQwNSAwIDAgMCAuMDExLjU5Yy4xNzMuMTYuNDQ3LjE1NS42MTQtLjAxIDEuMzM0LTEuMzI5IDEuMzctMi43NTguOTQxLTMuNzA2YTIuNDYxIDIuNDYxIDAgMCAwLS4yMjctLjR6TTExIDkuMDczYy0uMTM2LjM4OS0uMzkuODA0LS44MSAxLjIyYS40MDUuNDA1IDAgMCAwIC4wMTIuNTljLjE3Mi4xNi40NDYuMTU1LjYxMy0uMDEgMS4zMzQtMS4zMjkgMS4zNy0yLjc1OC45NDItMy43MDZhMi40NjYgMi40NjYgMCAwIDAtLjIyOC0uNCAxLjY4NiAxLjY4NiAwIDAgMC0uMjI3LS4yNzMgMS40NjYgMS40NjYgMCAwIDAtLjQ2OS0uMzI0bC0uMDA4LS4wMDRBMS43ODUgMS43ODUgMCAwIDAgMTAuMDcgNmMtLjk1NyAwLTEuNzM0Ljc0Ni0xLjczNCAxLjY2NyAwIC45Mi43NzcgMS42NjYgMS43MzQgMS42NjYuMzQzIDAgLjY2Mi0uMDk1LjkzMS0uMjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdFF1b3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNjc4IDExLjg5NGExIDEgMCAwIDEgLjI4Ny44MDEgMTAuOTcgMTAuOTcgMCAwIDEtLjM5OCAyYzEuMzk1LS4zMjMgMi4yNDctLjY5NyAyLjYzNC0uODkzYTEgMSAwIDAgMSAuNzEtLjA3NEE4LjA2IDguMDYgMCAwIDAgOCAxNGMzLjk5NiAwIDctMi44MDcgNy02IDAtMy4xOTItMy4wMDQtNi03LTZTMSA0LjgwOCAxIDhjMCAxLjQ2OC42MTcgMi44MyAxLjY3OCAzLjg5NHptLS40OTMgMy45MDVhMjEuNjgyIDIxLjY4MiAwIDAgMS0uNzEzLjEyOWMtLjIuMDMyLS4zNTItLjE3Ni0uMjczLS4zNjJhOS42OCA5LjY4IDAgMCAwIC4yNDQtLjYzN2wuMDAzLS4wMWMuMjQ4LS43Mi40NS0xLjU0OC41MjQtMi4zMTlDLjc0MyAxMS4zNyAwIDkuNzYgMCA4YzAtMy44NjYgMy41ODItNyA4LTdzOCAzLjEzNCA4IDctMy41ODIgNy04IDdhOS4wNiA5LjA2IDAgMCAxLTIuMzQ3LS4zMDZjLS41Mi4yNjMtMS42MzkuNzQyLTMuNDY4IDEuMTA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDY2IDYuNzZBMS42NjUgMS42NjUgMCAwIDAgNCA3LjY2OGExLjY2NyAxLjY2NyAwIDAgMCAyLjU2MSAxLjQwNmMtLjEzMS4zODktLjM3NS44MDQtLjc3NyAxLjIyYS40MTcuNDE3IDAgMCAwIC42LjU4YzEuNDg2LTEuNTQgMS4yOTMtMy4yMTQuNjgyLTQuMTEyem00IDBBMS42NjUgMS42NjUgMCAwIDAgOCA3LjY2OGExLjY2NyAxLjY2NyAwIDAgMCAyLjU2MSAxLjQwNmMtLjEzMS4zODktLjM3NS44MDQtLjc3NyAxLjIyYS40MTcuNDE3IDAgMCAwIC42LjU4YzEuNDg2LTEuNTQgMS4yOTMtMy4yMTQuNjgyLTQuMTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRSaWdodERvdHNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJhMiAyIDAgMCAwLTItMkgyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDkuNTg2YTEgMSAwIDAgMSAuNzA3LjI5M2wyLjg1MyAyLjg1M2EuNS41IDAgMCAwIC44NTQtLjM1M1Yyek01IDZhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0zIDFhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRSaWdodERvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDkuNTg2YTIgMiAwIDAgMSAxLjQxNC41ODZsMiAyVjJhMSAxIDAgMCAwLTEtMUgyem0xMi0xYTIgMiAwIDAgMSAyIDJ2MTIuNzkzYS41LjUgMCAwIDEtLjg1NC4zNTNsLTIuODUzLTIuODUzYTEgMSAwIDAgMC0uNzA3LS4yOTNIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem00IDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRSaWdodEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMGEyIDIgMCAwIDEgMiAydjEyLjc5M2EuNS41IDAgMCAxLS44NTQuMzUzbC0yLjg1My0yLjg1M2ExIDEgMCAwIDAtLjcwNy0uMjkzSDJhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdFJpZ2h0UXVvdGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJhMiAyIDAgMCAwLTItMkgyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDkuNTg2YTEgMSAwIDAgMSAuNzA3LjI5M2wyLjg1MyAyLjg1M2EuNS41IDAgMCAwIC44NTQtLjM1M1Yyek03LjE5NCA0Ljc2NmMuMDg3LjEyNC4xNjMuMjYuMjI3LjQwMS40MjguOTQ4LjM5MyAyLjM3Ny0uOTQyIDMuNzA2YS40NDYuNDQ2IDAgMCAxLS42MTIuMDEuNDA1LjQwNSAwIDAgMS0uMDExLS41OWMuNDE5LS40MTYuNjcyLS44MzEuODA5LTEuMjItLjI2OS4xNjUtLjU4OC4yNi0uOTMuMjZDNC43NzUgNy4zMzMgNCA2LjU4NyA0IDUuNjY3IDQgNC43NDcgNC43NzYgNCA1LjczNCA0Yy4yNzEgMCAuNTI4LjA2Ljc1Ni4xNjZsLjAwOC4wMDRjLjE2OS4wNy4zMjcuMTgyLjQ2OS4zMjQuMDg1LjA4My4xNjEuMTc0LjIyNy4yNzJ6TTExIDcuMDczYy0uMjY5LjE2NS0uNTg4LjI2LS45My4yNi0uOTU4IDAtMS43MzUtLjc0Ni0xLjczNS0xLjY2NiAwLS45Mi43NzctMS42NjcgMS43MzQtMS42NjcuMjcxIDAgLjUyOC4wNi43NTYuMTY2bC4wMDguMDA0Yy4xNy4wNy4zMjcuMTgyLjQ2OS4zMjQuMDg1LjA4My4xNjEuMTc0LjIyNy4yNzIuMDg3LjEyNC4xNjQuMjYuMjI4LjQwMS40MjguOTQ4LjM5MiAyLjM3Ny0uOTQyIDMuNzA2YS40NDYuNDQ2IDAgMCAxLS42MTMuMDEuNDA1LjQwNSAwIDAgMS0uMDExLS41OWMuNDItLjQxNi42NzItLjgzMS44MS0xLjIyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRSaWdodFF1b3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMWExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg5LjU4NmEyIDIgMCAwIDEgMS40MTQuNTg2bDIgMlYyYTEgMSAwIDAgMC0xLTFIMnptMTItMWEyIDIgMCAwIDEgMiAydjEyLjc5M2EuNS41IDAgMCAxLS44NTQuMzUzbC0yLjg1My0yLjg1M2ExIDEgMCAwIDAtLjcwNy0uMjkzSDJhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoMTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNjYgNC43NkExLjY2NSAxLjY2NSAwIDAgMCA0IDUuNjY4YTEuNjY3IDEuNjY3IDAgMCAwIDIuNTYxIDEuNDA2Yy0uMTMxLjM4OS0uMzc1LjgwNC0uNzc3IDEuMjJhLjQxNy40MTcgMCAxIDAgLjYuNThjMS40ODYtMS41NCAxLjI5My0zLjIxNC42ODItNC4xMTJ6bTQgMEExLjY2NSAxLjY2NSAwIDAgMCA4IDUuNjY4YTEuNjY3IDEuNjY3IDAgMCAwIDIuNTYxIDEuNDA2Yy0uMTMxLjM4OS0uMzc1LjgwNC0uNzc3IDEuMjJhLjQxNy40MTcgMCAxIDAgLjYuNThjMS40ODYtMS41NCAxLjI5My0zLjIxNC42ODItNC4xMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdFJpZ2h0VGV4dEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMmEyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoOS41ODZhMSAxIDAgMCAxIC43MDcuMjkzbDIuODUzIDIuODUzYS41LjUgMCAwIDAgLjg1NC0uMzUzVjJ6TTMuNSAzaDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTF6bTAgMi41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMSAwLTF6bTAgMi41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdFJpZ2h0VGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDFhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOS41ODZhMiAyIDAgMCAxIDEuNDE0LjU4NmwyIDJWMmExIDEgMCAwIDAtMS0xSDJ6bTEyLTFhMiAyIDAgMCAxIDIgMnYxMi43OTNhLjUuNSAwIDAgMS0uODU0LjM1M2wtMi44NTMtMi44NTNhMSAxIDAgMCAwLS43MDctLjI5M0gyYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMy41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41ek0zIDZhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05QS41LjUgMCAwIDEgMyA2em0wIDIuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDkuNTg2YTIgMiAwIDAgMSAxLjQxNC41ODZsMiAyVjJhMSAxIDAgMCAwLTEtMUgyem0xMi0xYTIgMiAwIDAgMSAyIDJ2MTIuNzkzYS41LjUgMCAwIDEtLjg1NC4zNTNsLTIuODUzLTIuODUzYTEgMSAwIDAgMC0uNzA3LS4yOTNIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0U3F1YXJlRG90c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNWExIDEgMCAwIDAtLjguNGwtMS45IDIuNTMzYTEgMSAwIDAgMS0xLjYgMEw1LjMgMTIuNGExIDEgMCAwIDAtLjgtLjRIMmEyIDIgMCAwIDEtMi0yVjJ6bTUgNGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6bTQgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6bTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdFNxdWFyZURvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtMi41YTIgMiAwIDAgMC0xLjYuOEw4IDE0LjMzMyA2LjEgMTEuOGEyIDIgMCAwIDAtMS42LS44SDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMGEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgyLjVhMSAxIDAgMCAxIC44LjRsMS45IDIuNTMzYTEgMSAwIDAgMCAxLjYgMGwxLjktMi41MzNhMSAxIDAgMCAxIC44LS40SDE0YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA2YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptNCAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptNCAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0U3F1YXJlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDBhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMi41YTEgMSAwIDAgMSAuOC40bDEuOSAyLjUzM2ExIDEgMCAwIDAgMS42IDBsMS45LTIuNTMzYTEgMSAwIDAgMSAuOC0uNEgxNGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRTcXVhcmVRdW90ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuNWExIDEgMCAwIDAtLjguNGwtMS45IDIuNTMzYTEgMSAwIDAgMS0xLjYgMEw1LjMgMTIuNGExIDEgMCAwIDAtLjgtLjRIMmEyIDIgMCAwIDEtMi0yVjJ6bTcuMTk0IDIuNzY2YTEuNjg4IDEuNjg4IDAgMCAwLS4yMjctLjI3MiAxLjQ2NyAxLjQ2NyAwIDAgMC0uNDY5LS4zMjRsLS4wMDgtLjAwNEExLjc4NSAxLjc4NSAwIDAgMCA1LjczNCA0QzQuNzc2IDQgNCA0Ljc0NiA0IDUuNjY3YzAgLjkyLjc3NiAxLjY2NiAxLjczNCAxLjY2Ni4zNDMgMCAuNjYyLS4wOTUuOTMxLS4yNi0uMTM3LjM4OS0uMzkuODA0LS44MSAxLjIyYS40MDUuNDA1IDAgMCAwIC4wMTEuNTljLjE3My4xNi40NDcuMTU1LjYxNC0uMDEgMS4zMzQtMS4zMjkgMS4zNy0yLjc1OC45NDEtMy43MDZhMi40NjEgMi40NjEgMCAwIDAtLjIyNy0uNHpNMTEgNy4wNzNjLS4xMzYuMzg5LS4zOS44MDQtLjgxIDEuMjJhLjQwNS40MDUgMCAwIDAgLjAxMi41OWMuMTcyLjE2LjQ0Ni4xNTUuNjEzLS4wMSAxLjMzNC0xLjMyOSAxLjM3LTIuNzU4Ljk0Mi0zLjcwNmEyLjQ2NiAyLjQ2NiAwIDAgMC0uMjI4LS40IDEuNjg2IDEuNjg2IDAgMCAwLS4yMjctLjI3MyAxLjQ2NiAxLjQ2NiAwIDAgMC0uNDY5LS4zMjRsLS4wMDgtLjAwNEExLjc4NSAxLjc4NSAwIDAgMCAxMC4wNyA0Yy0uOTU3IDAtMS43MzQuNzQ2LTEuNzM0IDEuNjY3IDAgLjkyLjc3NyAxLjY2NiAxLjczNCAxLjY2Ni4zNDMgMCAuNjYyLS4wOTUuOTMxLS4yNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0U3F1YXJlUXVvdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMWgtMi41YTIgMiAwIDAgMC0xLjYuOEw4IDE0LjMzMyA2LjEgMTEuOGEyIDIgMCAwIDAtMS42LS44SDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMGEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgyLjVhMSAxIDAgMCAxIC44LjRsMS45IDIuNTMzYTEgMSAwIDAgMCAxLjYgMGwxLjktMi41MzNhMSAxIDAgMCAxIC44LS40SDE0YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNjYgNC43NkExLjY2NSAxLjY2NSAwIDAgMCA0IDUuNjY4YTEuNjY3IDEuNjY3IDAgMCAwIDIuNTYxIDEuNDA2Yy0uMTMxLjM4OS0uMzc1LjgwNC0uNzc3IDEuMjJhLjQxNy40MTcgMCAxIDAgLjYuNThjMS40ODYtMS41NCAxLjI5My0zLjIxNC42ODItNC4xMTJ6bTQgMEExLjY2NSAxLjY2NSAwIDAgMCA4IDUuNjY4YTEuNjY3IDEuNjY3IDAgMCAwIDIuNTYxIDEuNDA2Yy0uMTMxLjM4OS0uMzc1LjgwNC0uNzc3IDEuMjJhLjQxNy40MTcgMCAxIDAgLjYuNThjMS40ODYtMS41NCAxLjI5My0zLjIxNC42ODItNC4xMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdFNxdWFyZVRleHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjVhMSAxIDAgMCAwLS44LjRsLTEuOSAyLjUzM2ExIDEgMCAwIDEtMS42IDBMNS4zIDEyLjRhMSAxIDAgMCAwLS44LS40SDJhMiAyIDAgMCAxLTItMlYyem0zLjUgMWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05em0wIDIuNWEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05em0wIDIuNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRTcXVhcmVUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFoLTIuNWEyIDIgMCAwIDAtMS42LjhMOCAxNC4zMzMgNi4xIDExLjhhMiAyIDAgMCAwLTEuNi0uOEgyYTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDEyek0yIDBhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMi41YTEgMSAwIDAgMSAuOC40bDEuOSAyLjUzM2ExIDEgMCAwIDAgMS42IDBsMS45LTIuNTMzYTEgMSAwIDAgMSAuOC0uNEgxNGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMy41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41ek0zIDZhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05QS41LjUgMCAwIDEgMyA2em0wIDIuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0U3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFoLTIuNWEyIDIgMCAwIDAtMS42LjhMOCAxNC4zMzMgNi4xIDExLjhhMiAyIDAgMCAwLTEuNi0uOEgyYTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDEyek0yIDBhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMi41YTEgMSAwIDAgMSAuOC40bDEuOSAyLjUzM2ExIDEgMCAwIDAgMS42IDBsMS45LTIuNTMzYTEgMSAwIDAgMSAuOC0uNEgxNGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoYXRUZXh0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4YzAgMy44NjYtMy41ODIgNy04IDdhOS4wNiA5LjA2IDAgMCAxLTIuMzQ3LS4zMDZjLS41ODQuMjk2LTEuOTI1Ljg2NC00LjE4MSAxLjIzNC0uMi4wMzItLjM1Mi0uMTc2LS4yNzMtLjM2Mi4zNTQtLjgzNi42NzQtMS45NS43Ny0yLjk2NkMuNzQ0IDExLjM3IDAgOS43NiAwIDhjMC0zLjg2NiAzLjU4Mi03IDgtN3M4IDMuMTM0IDggN3pNNC41IDVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN3ptMCAyLjVhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIDAtMWgtN3ptMCAyLjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMWgtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGF0VGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjY3OCAxMS44OTRhMSAxIDAgMCAxIC4yODcuODAxIDEwLjk3IDEwLjk3IDAgMCAxLS4zOTggMmMxLjM5NS0uMzIzIDIuMjQ3LS42OTcgMi42MzQtLjg5M2ExIDEgMCAwIDEgLjcxLS4wNzRBOC4wNiA4LjA2IDAgMCAwIDggMTRjMy45OTYgMCA3LTIuODA3IDctNiAwLTMuMTkyLTMuMDA0LTYtNy02UzEgNC44MDggMSA4YzAgMS40NjguNjE3IDIuODMgMS42NzggMy44OTR6bS0uNDkzIDMuOTA1YTIxLjY4MiAyMS42ODIgMCAwIDEtLjcxMy4xMjljLS4yLjAzMi0uMzUyLS4xNzYtLjI3My0uMzYyYTkuNjggOS42OCAwIDAgMCAuMjQ0LS42MzdsLjAwMy0uMDFjLjI0OC0uNzIuNDUtMS41NDguNTI0LTIuMzE5Qy43NDMgMTEuMzcgMCA5Ljc2IDAgOGMwLTMuODY2IDMuNTgyLTcgOC03czggMy4xMzQgOCA3LTMuNTgyIDctOCA3YTkuMDYgOS4wNiAwIDAgMS0yLjM0Ny0uMzA2Yy0uNTIuMjYzLTEuNjM5Ljc0Mi0zLjQ2OCAxLjEwNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDUuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXpNNCA4YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN0EuNS41IDAgMCAxIDQgOHptMCAyLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjY3OCAxMS44OTRhMSAxIDAgMCAxIC4yODcuODAxIDEwLjk3IDEwLjk3IDAgMCAxLS4zOTggMmMxLjM5NS0uMzIzIDIuMjQ3LS42OTcgMi42MzQtLjg5M2ExIDEgMCAwIDEgLjcxLS4wNzRBOC4wNiA4LjA2IDAgMCAwIDggMTRjMy45OTYgMCA3LTIuODA3IDctNiAwLTMuMTkyLTMuMDA0LTYtNy02UzEgNC44MDggMSA4YzAgMS40NjguNjE3IDIuODMgMS42NzggMy44OTR6bS0uNDkzIDMuOTA1YTIxLjY4MiAyMS42ODIgMCAwIDEtLjcxMy4xMjljLS4yLjAzMi0uMzUyLS4xNzYtLjI3My0uMzYyYTkuNjggOS42OCAwIDAgMCAuMjQ0LS42MzdsLjAwMy0uMDFjLjI0OC0uNzIuNDUtMS41NDguNTI0LTIuMzE5Qy43NDMgMTEuMzcgMCA5Ljc2IDAgOGMwLTMuODY2IDMuNTgyLTcgOC03czggMy4xMzQgOCA3LTMuNTgyIDctOCA3YTkuMDYgOS4wNiAwIDAgMS0yLjM0Ny0uMzA2Yy0uNTIuMjYzLTEuNjM5Ljc0Mi0zLjQ2OCAxLjEwNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGVja0FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ljk3IDQuOTdhLjc1Ljc1IDAgMCAxIDEuMDcgMS4wNWwtMy45OSA0Ljk5YS43NS43NSAwIDAgMS0xLjA4LjAyTDIuMzI0IDguMzg0YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4wOTQgMi4wOTNMOC45NSA0Ljk5MmEuMjUyLjI1MiAwIDAgMSAuMDItLjAyMnptLS45MiA1LjE0LjkyLjkyYS43NS43NSAwIDAgMCAxLjA3OS0uMDJsMy45OTItNC45OWEuNzUuNzUgMCAxIDAtMS4wOTEtMS4wMjhMOS40NzcgOS40MTdsLS40ODUtLjQ4Ni0uOTQzIDEuMTc5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZWNrQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6bS0zLjk3LTMuMDNhLjc1Ljc1IDAgMCAwLTEuMDguMDIyTDcuNDc3IDkuNDE3IDUuMzg0IDcuMzIzYS43NS43NSAwIDAgMC0xLjA2IDEuMDZMNi45NyAxMS4wM2EuNzUuNzUgMCAwIDAgMS4wNzktLjAybDMuOTkyLTQuOTlhLjc1Ljc1IDAgMCAwLS4wMS0xLjA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVBNyA3IDAgMSAxIDggMWE3IDcgMCAwIDEgMCAxNHptMCAxQTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuOTcgNC45N2EuMjM1LjIzNSAwIDAgMC0uMDIuMDIyTDcuNDc3IDkuNDE3IDUuMzg0IDcuMzIzYS43NS43NSAwIDAgMC0xLjA2IDEuMDZMNi45NyAxMS4wM2EuNzUuNzUgMCAwIDAgMS4wNzktLjAybDMuOTkyLTQuOTlhLjc1Ljc1IDAgMCAwLTEuMDcxLTEuMDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hlY2tMZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy40ODUgMS40MzFhMS40NzMgMS40NzMgMCAwIDEgMi4xMDQgMi4wNjJsLTcuODQgOS44MDFhMS40NzMgMS40NzMgMCAwIDEtMi4xMi4wNEwuNDMxIDguMTM4YTEuNDczIDEuNDczIDAgMCAxIDIuMDg0LTIuMDgzbDQuMTExIDQuMTEyIDYuODItOC42OWEuNDg2LjQ4NiAwIDAgMSAuMDQtLjA0NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGVja1NxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0xMC4wMyA0Ljk3YS43NS43NSAwIDAgMSAuMDExIDEuMDVsLTMuOTkyIDQuOTlhLjc1Ljc1IDAgMCAxLTEuMDguMDJMNC4zMjQgOC4zODRhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyLjA5NCAyLjA5MyAzLjQ3My00LjQyNWEuNzUuNzUgMCAwIDEgMS4wOC0uMDIyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZWNrU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC45NyA0Ljk3YS43NS43NSAwIDAgMSAxLjA3MSAxLjA1bC0zLjk5MiA0Ljk5YS43NS43NSAwIDAgMS0xLjA4LjAyTDQuMzI0IDguMzg0YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4wOTQgMi4wOTMgMy40NzMtNC40MjVhLjIzNS4yMzUgMCAwIDEgLjAyLS4wMjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuOTcgNC45N2EuNzUuNzUgMCAwIDEgMS4wNyAxLjA1bC0zLjk5IDQuOTlhLjc1Ljc1IDAgMCAxLTEuMDguMDJMNC4zMjQgOC4zODRhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyLjA5NCAyLjA5MyAzLjQ3My00LjQyNWEuMjY3LjI2NyAwIDAgMSAuMDItLjAyMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGVjazJBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMzU0IDQuMzU0YS41LjUgMCAwIDAtLjcwOC0uNzA4TDUgMTAuMjkzIDEuODU0IDcuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMy41IDMuNWEuNS41IDAgMCAwIC43MDggMGw3LTd6bS00LjIwOCA3LS44OTYtLjg5Ny43MDctLjcwNy41NDMuNTQzIDYuNjQ2LTYuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTcgN2EuNS41IDAgMCAxLS43MDggMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm01LjM1NCA3LjE0Ni44OTYuODk3LS43MDcuNzA3LS44OTctLjg5NmEuNS41IDAgMSAxIC43MDgtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGVjazJDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDhhNS41IDUuNSAwIDAgMSA4LjI1LTQuNzY0LjUuNSAwIDAgMCAuNS0uODY2QTYuNSA2LjUgMCAxIDAgMTQuNSA4YS41LjUgMCAwIDAtMSAwIDUuNSA1LjUgMCAxIDEtMTEgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4zNTQgMy4zNTRhLjUuNSAwIDAgMC0uNzA4LS43MDhMOCA5LjI5MyA1LjM1NCA2LjY0NmEuNS41IDAgMSAwLS43MDguNzA4bDMgM2EuNS41IDAgMCAwIC43MDggMGw3LTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hlY2syU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTQuNUExLjUgMS41IDAgMCAxIDEuNSAxM1YzQTEuNSAxLjUgMCAwIDEgMyAxLjVoOGEuNS41IDAgMCAxIDAgMUgzYS41LjUgMCAwIDAtLjUuNXYxMGEuNS41IDAgMCAwIC41LjVoMTBhLjUuNSAwIDAgMCAuNS0uNVY4YS41LjUgMCAwIDEgMSAwdjVhMS41IDEuNSAwIDAgMS0xLjUgMS41SDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC4zNTQgMTAuMzU0IDctN2EuNS41IDAgMCAwLS43MDgtLjcwOEw4IDkuMjkzIDUuMzU0IDYuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMyAzYS41LjUgMCAwIDAgLjcwOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZWNrMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy44NTQgMy42NDZhLjUuNSAwIDAgMSAwIC43MDhsLTcgN2EuNS41IDAgMCAxLS43MDggMGwtMy41LTMuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw2LjUgMTAuMjkzbDYuNjQ2LTYuNjQ3YS41LjUgMCAwIDEgLjcwOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25CYXJDb250cmFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy42NDYgMTQuODU0YS41LjUgMCAwIDAgLjcwOCAwTDggMTEuMjA3bDMuNjQ2IDMuNjQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC00LTRhLjUuNSAwIDAgMC0uNzA4IDBsLTQgNGEuNS41IDAgMCAwIDAgLjcwOHptMC0xMy43MDhhLjUuNSAwIDAgMSAuNzA4IDBMOCA0Ljc5M2wzLjY0Ni0zLjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC00IDRhLjUuNSAwIDAgMS0uNzA4IDBsLTQtNGEuNS41IDAgMCAxIDAtLjcwOHpNMSA4YS41LjUgMCAwIDEgLjUtLjVoMTNhLjUuNSAwIDAgMSAwIDFoLTEzQS41LjUgMCAwIDEgMSA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25CYXJEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjY0NiA0LjE0NmEuNS41IDAgMCAxIC43MDggMEw4IDcuNzkzbDMuNjQ2LTMuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTQgNGEuNS41IDAgMCAxLS43MDggMGwtNC00YS41LjUgMCAwIDEgMC0uNzA4ek0xIDExLjVhLjUuNSAwIDAgMSAuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uQmFyRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjY0NiAxMC4xNDZhLjUuNSAwIDAgMSAuNzA4IDBMOCAxMy43OTNsMy42NDYtMy42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtNCA0YS41LjUgMCAwIDEtLjcwOCAwbC00LTRhLjUuNSAwIDAgMSAwLS43MDh6bTAtNC4yOTJhLjUuNSAwIDAgMCAuNzA4IDBMOCAyLjIwN2wzLjY0NiAzLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtNC00YS41LjUgMCAwIDAtLjcwOCAwbC00IDRhLjUuNSAwIDAgMCAwIC43MDh6TTEgOGEuNS41IDAgMCAxIC41LS41aDEzYS41LjUgMCAwIDEgMCAxaC0xM0EuNS41IDAgMCAxIDEgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uQmFyTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEuODU0IDMuNjQ2YS41LjUgMCAwIDEgMCAuNzA4TDguMjA3IDhsMy42NDcgMy42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtNC00YS41LjUgMCAwIDEgMC0uNzA4bDQtNGEuNS41IDAgMCAxIC43MDggMHpNNC41IDFhLjUuNSAwIDAgMC0uNS41djEzYS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25CYXJSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNC4xNDYgMy42NDZhLjUuNSAwIDAgMCAwIC43MDhMNy43OTMgOGwtMy42NDcgMy42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOGw0LTRhLjUuNSAwIDAgMCAwLS43MDhsLTQtNGEuNS41IDAgMCAwLS43MDggMHpNMTEuNSAxYS41LjUgMCAwIDEgLjUuNXYxM2EuNS41IDAgMCAxLTEgMHYtMTNhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uQmFyVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuNjQ2IDExLjg1NGEuNS41IDAgMCAwIC43MDggMEw4IDguMjA3bDMuNjQ2IDMuNjQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC00LTRhLjUuNSAwIDAgMC0uNzA4IDBsLTQgNGEuNS41IDAgMCAwIDAgLjcwOHpNMi40IDUuMmMwIC4yMi4xOC40LjQuNGgxMC40YS40LjQgMCAwIDAgMC0uOEgyLjhhLjQuNCAwIDAgMC0uNC40elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25Db21wYWN0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS41NTMgNi43NzZhLjUuNSAwIDAgMSAuNjctLjIyM0w4IDkuNDRsNS43NzYtMi44ODhhLjUuNSAwIDEgMSAuNDQ4Ljg5NGwtNiAzYS41LjUgMCAwIDEtLjQ0OCAwbC02LTNhLjUuNSAwIDAgMS0uMjIzLS42N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uQ29tcGFjdExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkuMjI0IDEuNTUzYS41LjUgMCAwIDEgLjIyMy42N0w2LjU2IDhsMi44ODggNS43NzZhLjUuNSAwIDEgMS0uODk0LjQ0OGwtMy02YS41LjUgMCAwIDEgMC0uNDQ4bDMtNmEuNS41IDAgMCAxIC42Ny0uMjIzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25Db21wYWN0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYuNzc2IDEuNTUzYS41LjUgMCAwIDEgLjY3MS4yMjNsMyA2YS41LjUgMCAwIDEgMCAuNDQ4bC0zIDZhLjUuNSAwIDEgMS0uODk0LS40NDhMOS40NCA4IDYuNTUzIDIuMjI0YS41LjUgMCAwIDEgLjIyMy0uNjcxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25Db21wYWN0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuNzc2IDUuNTUzYS41LjUgMCAwIDEgLjQ0OCAwbDYgM2EuNS41IDAgMSAxLS40NDguODk0TDggNi41NiAyLjIyNCA5LjQ0N2EuNS41IDAgMSAxLS40NDgtLjg5NGw2LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hldnJvbkNvbnRyYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjY0NiAxMy44NTRhLjUuNSAwIDAgMCAuNzA4IDBMOCAxMC4yMDdsMy42NDYgMy42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhsLTQtNGEuNS41IDAgMCAwLS43MDggMGwtNCA0YS41LjUgMCAwIDAgMCAuNzA4em0wLTExLjcwOGEuNS41IDAgMCAxIC43MDggMEw4IDUuNzkzbDMuNjQ2LTMuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTQgNGEuNS41IDAgMCAxLS43MDggMGwtNC00YS41LjUgMCAwIDEgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25Eb3VibGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjY0NiA2LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEyLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS42NDYgMi42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA4LjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uRG91YmxlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOC4zNTQgMS42NDZhLjUuNSAwIDAgMSAwIC43MDhMMi43MDcgOGw1LjY0NyA1LjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC02LTZhLjUuNSAwIDAgMSAwLS43MDhsNi02YS41LjUgMCAwIDEgLjcwOCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMi4zNTQgMS42NDZhLjUuNSAwIDAgMSAwIC43MDhMNi43MDcgOGw1LjY0NyA1LjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC02LTZhLjUuNSAwIDAgMSAwLS43MDhsNi02YS41LjUgMCAwIDEgLjcwOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25Eb3VibGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy42NDYgMS42NDZhLjUuNSAwIDAgMSAuNzA4IDBsNiA2YS41LjUgMCAwIDEgMCAuNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4LS43MDhMOS4yOTMgOCAzLjY0NiAyLjM1NGEuNS41IDAgMCAxIDAtLjcwOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy42NDYgMS42NDZhLjUuNSAwIDAgMSAuNzA4IDBsNiA2YS41LjUgMCAwIDEgMCAuNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTMuMjkzIDggNy42NDYgMi4zNTRhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2hldnJvbkRvdWJsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjY0NiAyLjY0NmEuNS41IDAgMCAxIC43MDggMGw2IDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDMuNzA3IDIuMzU0IDkuMzU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDYtNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy42NDYgNi42NDZhLjUuNSAwIDAgMSAuNzA4IDBsNiA2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA3LjcwN2wtNS42NDYgNS42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhsNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEwLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjY0NiA5LjE0NmEuNS41IDAgMCAxIC43MDggMEw4IDEyLjc5M2wzLjY0Ni0zLjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC00IDRhLjUuNSAwIDAgMS0uNzA4IDBsLTQtNGEuNS41IDAgMCAxIDAtLjcwOHptMC0yLjI5MmEuNS41IDAgMCAwIC43MDggMEw4IDMuMjA3bDMuNjQ2IDMuNjQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC00LTRhLjUuNSAwIDAgMC0uNzA4IDBsLTQgNGEuNS41IDAgMCAwIDAgLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEuMzU0IDEuNjQ2YS41LjUgMCAwIDEgMCAuNzA4TDUuNzA3IDhsNS42NDcgNS42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtNi02YS41LjUgMCAwIDEgMC0uNzA4bDYtNmEuNS41IDAgMCAxIC43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuNjQ2IDEuNjQ2YS41LjUgMCAwIDEgLjcwOCAwbDYgNmEuNS41IDAgMCAxIDAgLjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyA4IDQuNjQ2IDIuMzU0YS41LjUgMCAwIDEgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NoZXZyb25VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBsNiA2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA1LjcwN2wtNS42NDYgNS42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhsNi02elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiOFwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NpcmNsZUhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDAgOCAxdjE0em0wIDFBOCA4IDAgMSAxIDggMGE4IDggMCAwIDEgMCAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDaXJjbGVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2YTYgNiAwIDEgMSAxMiAwQTYgNiAwIDAgMSAwIDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTMgNWgxLjU3YS41LjUgMCAwIDEgLjUuNXY5YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41di0xLjU3YTYuOTUzIDYuOTUzIDAgMCAxLTEtLjIydjEuNzlBMS41IDEuNSAwIDAgMCA1LjUgMTZoOWExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTlBMS41IDEuNSAwIDAgMCAxNC41IDRoLTEuNzljLjA5Ny4zMjQuMTcuNjU4LjIyIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVBNyA3IDAgMSAxIDggMWE3IDcgMCAwIDEgMCAxNHptMCAxQTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xpcGJvYXJkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjg1NCA3LjE0NmEuNS41IDAgMCAxIDAgLjcwOGwtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA5Ljc5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEuNUgzYTIgMiAwIDAgMC0yIDJWMTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjMuNWEyIDIgMCAwIDAtMi0yaC0xdjFoMWExIDEgMCAwIDEgMSAxVjE0YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjMuNWExIDEgMCAwIDEgMS0xaDF2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNWgzem0tMy0xQTEuNSAxLjUgMCAwIDAgNSAxLjV2MUExLjUgMS41IDAgMCAwIDYuNSA0aDNBMS41IDEuNSAwIDAgMCAxMSAyLjV2LTFBMS41IDEuNSAwIDAgMCA5LjUgMGgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbGlwYm9hcmREYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTFhMSAxIDAgMSAxIDIgMHYxYTEgMSAwIDEgMS0yIDB2LTF6bTYtNGExIDEgMCAxIDEgMiAwdjVhMSAxIDAgMSAxLTIgMFY3ek03IDlhMSAxIDAgMCAxIDIgMHYzYTEgMSAwIDEgMS0yIDBWOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEuNUgzYTIgMiAwIDAgMC0yIDJWMTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjMuNWEyIDIgMCAwIDAtMi0yaC0xdjFoMWExIDEgMCAwIDEgMSAxVjE0YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjMuNWExIDEgMCAwIDEgMS0xaDF2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNWgzem0tMy0xQTEuNSAxLjUgMCAwIDAgNSAxLjV2MUExLjUgMS41IDAgMCAwIDYuNSA0aDNBMS41IDEuNSAwIDAgMCAxMSAyLjV2LTFBMS41IDEuNSAwIDAgMCA5LjUgMGgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbGlwYm9hcmRNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS41IDkuNUEuNS41IDAgMCAxIDYgOWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEuNUgzYTIgMiAwIDAgMC0yIDJWMTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjMuNWEyIDIgMCAwIDAtMi0yaC0xdjFoMWExIDEgMCAwIDEgMSAxVjE0YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjMuNWExIDEgMCAwIDEgMS0xaDF2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNWgzem0tMy0xQTEuNSAxLjUgMCAwIDAgNSAxLjV2MUExLjUgMS41IDAgMCAwIDYuNSA0aDNBMS41IDEuNSAwIDAgMCAxMSAyLjV2LTFBMS41IDEuNSAwIDAgMCA5LjUgMGgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbGlwYm9hcmRQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDdhLjUuNSAwIDAgMSAuNS41VjlIMTBhLjUuNSAwIDAgMSAwIDFIOC41djEuNWEuNS41IDAgMCAxLTEgMFYxMEg2YS41LjUgMCAwIDEgMC0xaDEuNVY3LjVBLjUuNSAwIDAgMSA4IDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxLjVIM2EyIDIgMCAwIDAtMiAyVjE0YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYzLjVhMiAyIDAgMCAwLTItMmgtMXYxaDFhMSAxIDAgMCAxIDEgMVYxNGExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVYzLjVhMSAxIDAgMCAxIDEtMWgxdi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtM2EuNS41IDAgMCAxLS41LS41di0xYS41LjUgMCAwIDEgLjUtLjVoM3ptLTMtMUExLjUgMS41IDAgMCAwIDUgMS41djFBMS41IDEuNSAwIDAgMCA2LjUgNGgzQTEuNSAxLjUgMCAwIDAgMTEgMi41di0xQTEuNSAxLjUgMCAwIDAgOS41IDBoLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xpcGJvYXJkWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi4xNDYgNy4xNDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA4LjI5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMSAxIC43MDguNzA4TDguNzA3IDlsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDkuNzA3bC0xLjE0NiAxLjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA5IDYuMTQ2IDcuODU0YS41LjUgMCAwIDEgMC0uNzA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMS41SDNhMiAyIDAgMCAwLTIgMlYxNGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWMy41YTIgMiAwIDAgMC0yLTJoLTF2MWgxYTEgMSAwIDAgMSAxIDFWMTRhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWMy41YTEgMSAwIDAgMSAxLTFoMXYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTNhLjUuNSAwIDAgMS0uNS0uNXYtMWEuNS41IDAgMCAxIC41LS41aDN6bS0zLTFBMS41IDEuNSAwIDAgMCA1IDEuNXYxQTEuNSAxLjUgMCAwIDAgNi41IDRoM0ExLjUgMS41IDAgMCAwIDExIDIuNXYtMUExLjUgMS41IDAgMCAwIDkuNSAwaC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEuNUgzYTIgMiAwIDAgMC0yIDJWMTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjMuNWEyIDIgMCAwIDAtMi0yaC0xdjFoMWExIDEgMCAwIDEgMSAxVjE0YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjMuNWExIDEgMCAwIDEgMS0xaDF2LTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC0zYS41LjUgMCAwIDEtLjUtLjV2LTFhLjUuNSAwIDAgMSAuNS0uNWgzem0tMy0xQTEuNSAxLjUgMCAwIDAgNSAxLjV2MUExLjUgMS41IDAgMCAwIDYuNSA0aDNBMS41IDEuNSAwIDAgMCAxMSAyLjV2LTFBMS41IDEuNSAwIDAgMCA5LjUgMGgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek04IDMuNWEuNS41IDAgMCAwLTEgMFY5YS41LjUgMCAwIDAgLjI1Mi40MzRsMy41IDJhLjUuNSAwIDAgMCAuNDk2LS44NjhMOCA4LjcxVjMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG9ja0hpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41MTUgMS4wMTlBNyA3IDAgMCAwIDggMVYwYTggOCAwIDAgMSAuNTg5LjAyMmwtLjA3NC45OTd6bTIuMDA0LjQ1YTcuMDAzIDcuMDAzIDAgMCAwLS45ODUtLjI5OWwuMjE5LS45NzZjLjM4My4wODYuNzYuMiAxLjEyNi4zNDJsLS4zNi45MzN6bTEuMzcuNzFhNy4wMSA3LjAxIDAgMCAwLS40MzktLjI3bC40OTMtLjg3YTguMDI1IDguMDI1IDAgMCAxIC45NzkuNjU0bC0uNjE1Ljc4OWE2Ljk5NiA2Ljk5NiAwIDAgMC0uNDE4LS4zMDJ6bTEuODM0IDEuNzlhNi45OSA2Ljk5IDAgMCAwLS42NTMtLjc5NmwuNzI0LS42OWMuMjcuMjg1LjUyLjU5Ljc0Ny45MWwtLjgxOC41NzZ6bS43NDQgMS4zNTJhNy4wOCA3LjA4IDAgMCAwLS4yMTQtLjQ2OGwuODkzLS40NWE3Ljk3NiA3Ljk3NiAwIDAgMSAuNDUgMS4wODhsLS45NS4zMTNhNy4wMjMgNy4wMjMgMCAwIDAtLjE3OS0uNDgzem0uNTMgMi41MDdhNi45OTEgNi45OTEgMCAwIDAtLjEtMS4wMjVsLjk4NS0uMTdjLjA2Ny4zODYuMTA2Ljc3OC4xMTYgMS4xN2wtMSAuMDI1em0tLjEzMSAxLjUzOGMuMDMzLS4xNy4wNi0uMzM5LjA4MS0uNTFsLjk5My4xMjNhNy45NTcgNy45NTcgMCAwIDEtLjIzIDEuMTU1bC0uOTY0LS4yNjdjLjA0Ni0uMTY1LjA4Ni0uMzMyLjEyLS41MDF6bS0uOTUyIDIuMzc5Yy4xODQtLjI5LjM0Ni0uNTk0LjQ4Ni0uOTA4bC45MTQuNDA1Yy0uMTYuMzYtLjM0NS43MDYtLjU1NSAxLjAzOGwtLjg0NS0uNTM1em0tLjk2NCAxLjIwNWMuMTIyLS4xMjIuMjM5LS4yNDguMzUtLjM3OGwuNzU4LjY1M2E4LjA3MyA4LjA3MyAwIDAgMS0uNDAxLjQzMmwtLjcwNy0uNzA3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMWE3IDcgMCAxIDAgNC45NSAxMS45NWwuNzA3LjcwN0E4LjAwMSA4LjAwMSAwIDEgMSA4IDB2MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgM2EuNS41IDAgMCAxIC41LjV2NS4yMWwzLjI0OCAxLjg1NmEuNS41IDAgMCAxLS40OTYuODY4bC0zLjUtMkEuNS41IDAgMCAxIDcgOVYzLjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDMuNWEuNS41IDAgMCAwLTEgMFY5YS41LjUgMCAwIDAgLjI1Mi40MzRsMy41IDJhLjUuNSAwIDAgMCAuNDk2LS44NjhMOCA4LjcxVjMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6bTctOEE3IDcgMCAxIDEgMSA4YTcgNyAwIDAgMSAxNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkQXJyb3dEb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDJhNS41MyA1LjUzIDAgMCAwLTMuNTk0IDEuMzQyYy0uNzY2LjY2LTEuMzIxIDEuNTItMS40NjQgMi4zODNDMS4yNjYgNi4wOTUgMCA3LjU1NSAwIDkuMzE4IDAgMTEuMzY2IDEuNzA4IDEzIDMuNzgxIDEzaDguOTA2QzE0LjUwMiAxMyAxNiAxMS41NyAxNiA5Ljc3M2MwLTEuNjM2LTEuMjQyLTIuOTY5LTIuODM0LTMuMTk0QzEyLjkyMyAzLjk5OSAxMC42OSAyIDggMnptMi4zNTQgNi44NTQtMiAyYS41LjUgMCAwIDEtLjcwOCAwbC0yLTJhLjUuNSAwIDEgMSAuNzA4LS43MDhMNy41IDkuMjkzVjUuNWEuNS41IDAgMCAxIDEgMHYzLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjY0NiAxMC44NTRhLjUuNSAwIDAgMCAuNzA4IDBsMi0yYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSA5LjI5M1Y1LjVhLjUuNSAwIDAgMC0xIDB2My43OTNMNi4zNTQgOC4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwyIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC40MDYgMy4zNDJBNS41MyA1LjUzIDAgMCAxIDggMmMyLjY5IDAgNC45MjMgMiA1LjE2NiA0LjU3OUMxNC43NTggNi44MDQgMTYgOC4xMzcgMTYgOS43NzMgMTYgMTEuNTY5IDE0LjUwMiAxMyAxMi42ODcgMTNIMy43ODFDMS43MDggMTMgMCAxMS4zNjYgMCA5LjMxOGMwLTEuNzYzIDEuMjY2LTMuMjIzIDIuOTQyLTMuNTkzLjE0My0uODYzLjY5OC0xLjcyMyAxLjQ2NC0yLjM4M3ptLjY1My43NTdjLS43NTcuNjUzLTEuMTUzIDEuNDQtMS4xNTMgMi4wNTZ2LjQ0OGwtLjQ0NS4wNDlDMi4wNjQgNi44MDUgMSA3Ljk1MiAxIDkuMzE4IDEgMTAuNzg1IDIuMjMgMTIgMy43ODEgMTJoOC45MDZDMTMuOTggMTIgMTUgMTAuOTg4IDE1IDkuNzczYzAtMS4yMTYtMS4wMi0yLjIyOC0yLjMxMy0yLjIyOGgtLjV2LS41QzEyLjE4OCA0LjgyNSAxMC4zMjggMyA4IDNhNC41MyA0LjUzIDAgMCAwLTIuOTQxIDEuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZEFycm93VXBGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMmE1LjUzIDUuNTMgMCAwIDAtMy41OTQgMS4zNDJjLS43NjYuNjYtMS4zMjEgMS41Mi0xLjQ2NCAyLjM4M0MxLjI2NiA2LjA5NSAwIDcuNTU1IDAgOS4zMTggMCAxMS4zNjYgMS43MDggMTMgMy43ODEgMTNoOC45MDZDMTQuNTAyIDEzIDE2IDExLjU3IDE2IDkuNzczYzAtMS42MzYtMS4yNDItMi45NjktMi44MzQtMy4xOTRDMTIuOTIzIDMuOTk5IDEwLjY5IDIgOCAyem0yLjM1NCA1LjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDguNSA2LjcwN1YxMC41YS41LjUgMCAwIDEtMSAwVjYuNzA3TDYuMzU0IDcuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDItMmEuNS41IDAgMCAxIC43MDggMGwyIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjY0NiA1LjE0NmEuNS41IDAgMCAxIC43MDggMGwyIDJhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgNi43MDdWMTAuNWEuNS41IDAgMCAxLTEgMFY2LjcwN0w2LjM1NCA3Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOGwyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC40MDYgMy4zNDJBNS41MyA1LjUzIDAgMCAxIDggMmMyLjY5IDAgNC45MjMgMiA1LjE2NiA0LjU3OUMxNC43NTggNi44MDQgMTYgOC4xMzcgMTYgOS43NzMgMTYgMTEuNTY5IDE0LjUwMiAxMyAxMi42ODcgMTNIMy43ODFDMS43MDggMTMgMCAxMS4zNjYgMCA5LjMxOGMwLTEuNzYzIDEuMjY2LTMuMjIzIDIuOTQyLTMuNTkzLjE0My0uODYzLjY5OC0xLjcyMyAxLjQ2NC0yLjM4M3ptLjY1My43NTdjLS43NTcuNjUzLTEuMTUzIDEuNDQtMS4xNTMgMi4wNTZ2LjQ0OGwtLjQ0NS4wNDlDMi4wNjQgNi44MDUgMSA3Ljk1MiAxIDkuMzE4IDEgMTAuNzg1IDIuMjMgMTIgMy43ODEgMTJoOC45MDZDMTMuOTggMTIgMTUgMTAuOTg4IDE1IDkuNzczYzAtMS4yMTYtMS4wMi0yLjIyOC0yLjMxMy0yLjIyOGgtLjV2LS41QzEyLjE4OCA0LjgyNSAxMC4zMjggMyA4IDNhNC41MyA0LjUzIDAgMCAwLTIuOTQxIDEuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZENoZWNrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDJhNS41MyA1LjUzIDAgMCAwLTMuNTk0IDEuMzQyYy0uNzY2LjY2LTEuMzIxIDEuNTItMS40NjQgMi4zODNDMS4yNjYgNi4wOTUgMCA3LjU1NSAwIDkuMzE4IDAgMTEuMzY2IDEuNzA4IDEzIDMuNzgxIDEzaDguOTA2QzE0LjUwMiAxMyAxNiAxMS41NyAxNiA5Ljc3M2MwLTEuNjM2LTEuMjQyLTIuOTY5LTIuODM0LTMuMTk0QzEyLjkyMyAzLjk5OSAxMC42OSAyIDggMnptMi4zNTQgNC44NTQtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcgOC43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC4zNTQgNi4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3IDguNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNDA2IDMuMzQyQTUuNTMgNS41MyAwIDAgMSA4IDJjMi42OSAwIDQuOTIzIDIgNS4xNjYgNC41NzlDMTQuNzU4IDYuODA0IDE2IDguMTM3IDE2IDkuNzczIDE2IDExLjU2OSAxNC41MDIgMTMgMTIuNjg3IDEzSDMuNzgxQzEuNzA4IDEzIDAgMTEuMzY2IDAgOS4zMThjMC0xLjc2MyAxLjI2Ni0zLjIyMyAyLjk0Mi0zLjU5My4xNDMtLjg2My42OTgtMS43MjMgMS40NjQtMi4zODN6bS42NTMuNzU3Yy0uNzU3LjY1My0xLjE1MyAxLjQ0LTEuMTUzIDIuMDU2di40NDhsLS40NDUuMDQ5QzIuMDY0IDYuODA1IDEgNy45NTIgMSA5LjMxOCAxIDEwLjc4NSAyLjIzIDEyIDMuNzgxIDEyaDguOTA2QzEzLjk4IDEyIDE1IDEwLjk4OCAxNSA5Ljc3M2MwLTEuMjE2LTEuMDItMi4yMjgtMi4zMTMtMi4yMjhoLS41di0uNUMxMi4xODggNC44MjUgMTAuMzI4IDMgOCAzYTQuNTMgNC41MyAwIDAgMC0yLjk0MSAxLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWREb3dubG9hZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMGE1LjUzIDUuNTMgMCAwIDAtMy41OTQgMS4zNDJjLS43NjYuNjYtMS4zMjEgMS41Mi0xLjQ2NCAyLjM4M0MxLjI2NiA0LjA5NSAwIDUuNTU1IDAgNy4zMTggMCA5LjM2NiAxLjcwOCAxMSAzLjc4MSAxMUg3LjVWNS41YS41LjUgMCAwIDEgMSAwVjExaDQuMTg4QzE0LjUwMiAxMSAxNiA5LjU3IDE2IDcuNzczYzAtMS42MzYtMS4yNDItMi45NjktMi44MzQtMy4xOTRDMTIuOTIzIDEuOTk5IDEwLjY5IDAgOCAwem0tLjM1NCAxNS44NTRhLjUuNSAwIDAgMCAuNzA4IDBsMy0zYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSAxNC4yOTNWMTFoLTF2My4yOTNsLTIuMTQ2LTIuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMyAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC40MDYgMS4zNDJBNS41MyA1LjUzIDAgMCAxIDggMGMyLjY5IDAgNC45MjMgMiA1LjE2NiA0LjU3OUMxNC43NTggNC44MDQgMTYgNi4xMzcgMTYgNy43NzMgMTYgOS41NjkgMTQuNTAyIDExIDEyLjY4NyAxMUgxMGEuNS41IDAgMCAxIDAtMWgyLjY4OEMxMy45NzkgMTAgMTUgOC45ODggMTUgNy43NzNjMC0xLjIxNi0xLjAyLTIuMjI4LTIuMzEzLTIuMjI4aC0uNXYtLjVDMTIuMTg4IDIuODI1IDEwLjMyOCAxIDggMWE0LjUzIDQuNTMgMCAwIDAtMi45NDEgMS4xYy0uNzU3LjY1Mi0xLjE1MyAxLjQzOC0xLjE1MyAyLjA1NXYuNDQ4bC0uNDQ1LjA0OUMyLjA2NCA0LjgwNSAxIDUuOTUyIDEgNy4zMTggMSA4Ljc4NSAyLjIzIDEwIDMuNzgxIDEwSDZhLjUuNSAwIDAgMSAwIDFIMy43ODFDMS43MDggMTEgMCA5LjM2NiAwIDcuMzE4YzAtMS43NjMgMS4yNjYtMy4yMjMgMi45NDItMy41OTMuMTQzLS44NjMuNjk4LTEuNzIzIDEuNDY0LTIuMzgzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNjQ2IDE1Ljg1NGEuNS41IDAgMCAwIC43MDggMGwzLTNhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDE0LjI5M1Y1LjVhLjUuNSAwIDAgMC0xIDB2OC43OTNsLTIuMTQ2LTIuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMyAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkRHJpenpsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNTggMTIuMDI1YS41LjUgMCAwIDEgLjMxNi42MzNsLS41IDEuNWEuNS41IDAgMCAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTd6bTYgMGEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em0tMy41IDEuNWEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em02IDBhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptLjc0Ny04LjQ5OGE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZERyaXp6bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNTggMTIuMDI1YS41LjUgMCAwIDEgLjMxNi42MzNsLS41IDEuNWEuNS41IDAgMCAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTd6bTYgMGEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em0tMy41IDEuNWEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em02IDBhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptLjc0Ny04LjQ5OGE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pNOC41IDJhNCA0IDAgMCAxIDMuOTc2IDMuNTU1LjUuNSAwIDAgMCAuNS40NDVIMTNhMiAyIDAgMCAxIDAgNEgzLjVhMi41IDIuNSAwIDEgMSAuNjA1LTQuOTI2LjUuNSAwIDAgMCAuNTk2LS4zMjlBNC4wMDIgNC4wMDIgMCAwIDEgOC41IDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNDA2IDMuMzQyQTUuNTMgNS41MyAwIDAgMSA4IDJjMi42OSAwIDQuOTIzIDIgNS4xNjYgNC41NzlDMTQuNzU4IDYuODA0IDE2IDguMTM3IDE2IDkuNzczIDE2IDExLjU2OSAxNC41MDIgMTMgMTIuNjg3IDEzSDMuNzgxQzEuNzA4IDEzIDAgMTEuMzY2IDAgOS4zMThjMC0xLjc2MyAxLjI2Ni0zLjIyMyAyLjk0Mi0zLjU5My4xNDMtLjg2My42OTgtMS43MjMgMS40NjQtMi4zODN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRGb2dGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTMuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0xMC40MDUtOS40NzNhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTJIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRGb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMy41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTEwLjQwNS05LjQ3M2E1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMkgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pNOC41IDNhNCA0IDAgMCAxIDMuOTc2IDMuNTU1LjUuNSAwIDAgMCAuNS40NDVIMTNhMiAyIDAgMCAxIDAgNEgzLjVhMi41IDIuNSAwIDEgMSAuNjA1LTQuOTI2LjUuNSAwIDAgMCAuNTk2LS4zMjlBNC4wMDIgNC4wMDIgMCAwIDEgOC41IDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRGb2cyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgM2E1LjAwMSA1LjAwMSAwIDAgMSA0LjkwNSA0LjAyN0EzIDMgMCAwIDEgMTMgMTNoLTEuNWEuNS41IDAgMCAwIDAtMUgxLjA1YTMuNTEgMy41MSAwIDAgMS0uNzEzLTFIOS41YS41LjUgMCAwIDAgMC0xSC4wMzVhMy41MyAzLjUzIDAgMCAxIDAtMUg3LjVhLjUuNSAwIDAgMCAwLTFILjMzN2EzLjUgMy41IDAgMCAxIDMuNTctMS45NzdBNS4wMDEgNS4wMDEgMCAwIDEgOC41IDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRGb2cyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA0YTQuMDAyIDQuMDAyIDAgMCAwLTMuOCAyLjc0NS41LjUgMCAxIDEtLjk0OS0uMzEzIDUuMDAyIDUuMDAyIDAgMCAxIDkuNjU0LjU5NUEzIDMgMCAwIDEgMTMgMTNILjVhLjUuNSAwIDAgMSAwLTFIMTNhMiAyIDAgMCAwIC4wMDEtNGgtLjAyNmEuNS41IDAgMCAxLS41LS40NDVBNCA0IDAgMCAwIDguNSA0ek0wIDguNUEuNS41IDAgMCAxIC41IDhoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRIYWlsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjc1IDE1LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDB6bS40MDgtMy43MjRhLjUuNSAwIDAgMSAuMzE2LjYzMmwtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxNnpNNy43NSAxNS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0uNDA4LTMuNzI0YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6bTMuNTkyIDMuNzI0YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDB6bS40MDgtMy43MjRhLjUuNSAwIDAgMSAuMzE2LjYzMmwtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxNnptMS4yNDctNi45OTlhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTAuNUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZEhhaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDA1IDQuNTI3YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwLjVIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6TTguNSAxLjVhNCA0IDAgMCAxIDMuOTc2IDMuNTU1LjUuNSAwIDAgMCAuNS40NDVIMTNhMiAyIDAgMCAxLS4wMDEgNEgzLjVhMi41IDIuNSAwIDEgMSAuNjA1LTQuOTI2LjUuNSAwIDAgMCAuNTk2LS4zMjlBNC4wMDIgNC4wMDIgMCAwIDEgOC41IDEuNXpNMy43NSAxNS4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0uNDA4LTMuNzI0YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6TTcuNzUgMTUuMjVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMHptLjQwOC0zLjcyNGEuNS41IDAgMCAxIC4zMTYuNjMybC0uNSAxLjVhLjUuNSAwIDEgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE2em0zLjU5MiAzLjcyNGEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0uNDA4LTMuNzI0YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRIYXplMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDExLjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bS0zIDJhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTIgMmEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXpNMTMuNDA1IDQuMDI3YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwSDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczek04LjUgMWE0IDQgMCAwIDEgMy45NzYgMy41NTUuNS41IDAgMCAwIC41LjQ0NUgxM2EyIDIgMCAwIDEgMCA0SDMuNWEyLjUgMi41IDAgMSAxIC42MDUtNC45MjYuNS41IDAgMCAwIC41OTYtLjMyOUE0LjAwMiA0LjAwMiAwIDAgMSA4LjUgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZEhhemVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTEuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptLTMgMmEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMiAyYS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41ek0xMy40MDUgNC4wMjdhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTBIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRIYXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAzYTQuMDAyIDQuMDAyIDAgMCAwLTMuOCAyLjc0NS41LjUgMCAxIDEtLjk0OS0uMzEzIDUuMDAyIDUuMDAyIDAgMCAxIDkuNjU0LjU5NUEzIDMgMCAwIDEgMTMgMTJINC41YS41LjUgMCAwIDEgMC0xSDEzYTIgMiAwIDAgMCAuMDAxLTRoLS4wMjZhLjUuNSAwIDAgMS0uNS0uNDQ1QTQgNCAwIDAgMCA4LjUgM3pNMCA3LjVBLjUuNSAwIDAgMSAuNSA3aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXptMiAyYS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0tMiA0YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkSGF6ZTJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAyYTUuMDAxIDUuMDAxIDAgMCAxIDQuOTA1IDQuMDI3QTMgMyAwIDAgMSAxMyAxMkgzLjVBMy41IDMuNSAwIDAgMSAuMDM1IDlINS41YS41LjUgMCAwIDAgMC0xSC4wMzVhMy41IDMuNSAwIDAgMSAzLjg3MS0yLjk3N0E1LjAwMSA1LjAwMSAwIDAgMSA4LjUgMnptLTYgOGEuNS41IDAgMCAwIDAgMWg5YS41LjUgMCAwIDAgMC0xaC05ek0wIDEzLjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRMaWdodG5pbmdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDUzIDExLjI3NkEuNS41IDAgMCAxIDcuNSAxMWgxYS41LjUgMCAwIDEgLjQ3NC42NThsLS4yOC44NDJIOS41YS41LjUgMCAwIDEgLjM5LjgxMmwtMiAyLjVhLjUuNSAwIDAgMS0uODc1LS40MzNMNy4zNiAxNEg2LjVhLjUuNSAwIDAgMS0uNDQ3LS43MjRsMS0yem02LjM1Mi03LjI0OWE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMEgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZExpZ2h0bmluZ1JhaW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNjU4IDExLjAyNmEuNS41IDAgMCAxIC4zMTYuNjMybC0uNSAxLjVhLjUuNSAwIDEgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE2em05LjUgMGEuNS41IDAgMCAxIC4zMTYuNjMybC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE2em0tNy41IDEuNWEuNS41IDAgMCAxIC4zMTYuNjMybC0uNSAxLjVhLjUuNSAwIDEgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE2em05LjUgMGEuNS41IDAgMCAxIC4zMTYuNjMybC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE2em0tNy4xMDUtMS4yNUEuNS41IDAgMCAxIDcuNSAxMWgxYS41LjUgMCAwIDEgLjQ3NC42NThsLS4yOC44NDJIOS41YS41LjUgMCAwIDEgLjM5LjgxMmwtMiAyLjVhLjUuNSAwIDAgMS0uODc1LS40MzNMNy4zNiAxNEg2LjVhLjUuNSAwIDAgMS0uNDQ3LS43MjRsMS0yem02LjM1Mi03LjI0OWE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMEgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZExpZ2h0bmluZ1JhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi42NTggMTEuMDI2YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6bTkuNSAwYS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6bS03LjUgMS41YS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6bTkuNSAwYS41LjUgMCAwIDEgLjMxNi42MzJsLS41IDEuNWEuNS41IDAgMSAxLS45NDgtLjMxNmwuNS0xLjVhLjUuNSAwIDAgMSAuNjMyLS4zMTZ6bS0uNzUzLTguNDk5YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwSDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczek04LjUgMWE0IDQgMCAwIDEgMy45NzYgMy41NTUuNS41IDAgMCAwIC41LjQ0NUgxM2EyIDIgMCAwIDEgMCA0SDMuNWEyLjUgMi41IDAgMSAxIC42MDUtNC45MjYuNS41IDAgMCAwIC41OTYtLjMyOUE0LjAwMiA0LjAwMiAwIDAgMSA4LjUgMXpNNy4wNTMgMTEuMjc2QS41LjUgMCAwIDEgNy41IDExaDFhLjUuNSAwIDAgMSAuNDc0LjY1OGwtLjI4Ljg0Mkg5LjVhLjUuNSAwIDAgMSAuMzkuODEybC0yIDIuNWEuNS41IDAgMCAxLS44NzUtLjQzM0w3LjM2IDE0SDYuNWEuNS41IDAgMCAxLS40NDctLjcyNGwxLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRMaWdodG5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDA1IDQuMDI3YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwSDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczek04LjUgMWE0IDQgMCAwIDEgMy45NzYgMy41NTUuNS41IDAgMCAwIC41LjQ0NUgxM2EyIDIgMCAwIDEgMCA0SDMuNWEyLjUgMi41IDAgMSAxIC42MDUtNC45MjYuNS41IDAgMCAwIC41OTYtLjMyOUE0LjAwMiA0LjAwMiAwIDAgMSA4LjUgMXpNNy4wNTMgMTEuMjc2QS41LjUgMCAwIDEgNy41IDExaDFhLjUuNSAwIDAgMSAuNDc0LjY1OGwtLjI4Ljg0Mkg5LjVhLjUuNSAwIDAgMSAuMzkuODEybC0yIDIuNWEuNS41IDAgMCAxLS44NzUtLjQzM0w3LjM2IDE0SDYuNWEuNS41IDAgMCAxLS40NDctLjcyNGwxLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRNaW51c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyYTUuNTMgNS41MyAwIDAgMC0zLjU5NCAxLjM0MmMtLjc2Ni42Ni0xLjMyMSAxLjUyLTEuNDY0IDIuMzgzQzEuMjY2IDYuMDk1IDAgNy41NTUgMCA5LjMxOCAwIDExLjM2NiAxLjcwOCAxMyAzLjc4MSAxM2g4LjkwNkMxNC41MDIgMTMgMTYgMTEuNTcgMTYgOS43NzNjMC0xLjYzNi0xLjI0Mi0yLjk2OS0yLjgzNC0zLjE5NEMxMi45MjMgMy45OTkgMTAuNjkgMiA4IDJ6TTYgNy41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZE1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNDA2IDMuMzQyQTUuNTMgNS41MyAwIDAgMSA4IDJjMi42OSAwIDQuOTIzIDIgNS4xNjYgNC41NzlDMTQuNzU4IDYuODA0IDE2IDguMTM3IDE2IDkuNzczIDE2IDExLjU2OSAxNC41MDIgMTMgMTIuNjg3IDEzSDMuNzgxQzEuNzA4IDEzIDAgMTEuMzY2IDAgOS4zMThjMC0xLjc2MyAxLjI2Ni0zLjIyMyAyLjk0Mi0zLjU5My4xNDMtLjg2My42OTgtMS43MjMgMS40NjQtMi4zODN6bS42NTMuNzU3Yy0uNzU3LjY1My0xLjE1MyAxLjQ0LTEuMTUzIDIuMDU2di40NDhsLS40NDUuMDQ5QzIuMDY0IDYuODA1IDEgNy45NTIgMSA5LjMxOCAxIDEwLjc4NSAyLjIzIDEyIDMuNzgxIDEyaDguOTA2QzEzLjk4IDEyIDE1IDEwLjk4OCAxNSA5Ljc3M2MwLTEuMjE2LTEuMDItMi4yMjgtMi4zMTMtMi4yMjhoLS41di0uNUMxMi4xODggNC44MjUgMTAuMzI4IDMgOCAzYTQuNTMgNC41MyAwIDAgMC0yLjk0MSAxLjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA3LjVhLjUuNSAwIDAgMCAwIDFoNGEuNS41IDAgMCAwIDAtMUg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkTW9vbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNDczIDExYTQuNSA0LjUgMCAwIDAtOC43Mi0uOTlBMyAzIDAgMCAwIDMgMTZoOC41YTIuNSAyLjUgMCAwIDAgMC01aC0uMDI3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjI4NiAxLjc3OGEuNS41IDAgMCAwLS41NjUtLjc1NSA0LjU5NSA0LjU5NSAwIDAgMC0zLjE4IDUuMDAzIDUuNDYgNS40NiAwIDAgMSAxLjA1NS4yMDlBMy42MDMgMy42MDMgMCAwIDEgOS44MyAyLjYxN2E0LjU5MyA0LjU5MyAwIDAgMCA0LjMxIDUuNzQ0IDMuNTc2IDMuNTc2IDAgMCAxLTIuMjQxLjYzNGMuMTYyLjMxNy4yOTUuNjUyLjM5NCAxYTQuNTkgNC41OSAwIDAgMCAzLjYyNC0yLjA0LjUuNSAwIDAgMC0uNTY1LS43NTUgMy41OTMgMy41OTMgMCAwIDEtNC4wNjUtNS40MjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRNb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOGEzLjUgMy41IDAgMCAxIDMuNSAzLjU1NS41LjUgMCAwIDAgLjYyNS40OTJBMS41MDMgMS41MDMgMCAwIDEgMTMgMTMuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVIM2EyIDIgMCAxIDEgLjEtMy45OTguNS41IDAgMCAwIC41MDktLjM3NUEzLjUwMiAzLjUwMiAwIDAgMSA3IDh6bTQuNDczIDNhNC41IDQuNSAwIDAgMC04LjcyLS45OUEzIDMgMCAwIDAgMyAxNmg4LjVhMi41IDIuNSAwIDAgMCAwLTVoLS4wMjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjg2IDEuNzc4YS41LjUgMCAwIDAtLjU2NS0uNzU1IDQuNTk1IDQuNTk1IDAgMCAwLTMuMTggNS4wMDMgNS40NiA1LjQ2IDAgMCAxIDEuMDU1LjIwOUEzLjYwMyAzLjYwMyAwIDAgMSA5LjgzIDIuNjE3YTQuNTkzIDQuNTkzIDAgMCAwIDQuMzEgNS43NDQgMy41NzYgMy41NzYgMCAwIDEtMi4yNDEuNjM0Yy4xNjIuMzE3LjI5NS42NTIuMzk0IDFhNC41OSA0LjU5IDAgMCAwIDMuNjI0LTIuMDQuNS41IDAgMCAwLS41NjUtLjc1NSAzLjU5MyAzLjU5MyAwIDAgMS00LjA2NS01LjQyMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZFBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMmE1LjUzIDUuNTMgMCAwIDAtMy41OTQgMS4zNDJjLS43NjYuNjYtMS4zMjEgMS41Mi0xLjQ2NCAyLjM4M0MxLjI2NiA2LjA5NSAwIDcuNTU1IDAgOS4zMTggMCAxMS4zNjYgMS43MDggMTMgMy43ODEgMTNoOC45MDZDMTQuNTAyIDEzIDE2IDExLjU3IDE2IDkuNzczYzAtMS42MzYtMS4yNDItMi45NjktMi44MzQtMy4xOTRDMTIuOTIzIDMuOTk5IDEwLjY5IDIgOCAyem0uNSA0djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTBhLjUuNSAwIDAgMS0xIDBWOC41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjZhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDUuNWEuNS41IDAgMCAxIC41LjV2MS41SDEwYS41LjUgMCAwIDEgMCAxSDguNVYxMGEuNS41IDAgMCAxLTEgMFY4LjVINmEuNS41IDAgMCAxIDAtMWgxLjVWNmEuNS41IDAgMCAxIC41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNDA2IDMuMzQyQTUuNTMgNS41MyAwIDAgMSA4IDJjMi42OSAwIDQuOTIzIDIgNS4xNjYgNC41NzlDMTQuNzU4IDYuODA0IDE2IDguMTM3IDE2IDkuNzczIDE2IDExLjU2OSAxNC41MDIgMTMgMTIuNjg3IDEzSDMuNzgxQzEuNzA4IDEzIDAgMTEuMzY2IDAgOS4zMThjMC0xLjc2MyAxLjI2Ni0zLjIyMyAyLjk0Mi0zLjU5My4xNDMtLjg2My42OTgtMS43MjMgMS40NjQtMi4zODN6bS42NTMuNzU3Yy0uNzU3LjY1My0xLjE1MyAxLjQ0LTEuMTUzIDIuMDU2di40NDhsLS40NDUuMDQ5QzIuMDY0IDYuODA1IDEgNy45NTIgMSA5LjMxOCAxIDEwLjc4NSAyLjIzIDEyIDMuNzgxIDEyaDguOTA2QzEzLjk4IDEyIDE1IDEwLjk4OCAxNSA5Ljc3M2MwLTEuMjE2LTEuMDItMi4yMjgtMi4zMTMtMi4yMjhoLS41di0uNUMxMi4xODggNC44MjUgMTAuMzI4IDMgOCAzYTQuNTMgNC41MyAwIDAgMC0yLjk0MSAxLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRSYWluRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjE1OCAxMi4wMjVhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAxIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptMyAwYS41LjUgMCAwIDEgLjMxNi42MzNsLTEgM2EuNS41IDAgMSAxLS45NDgtLjMxNmwxLTNhLjUuNSAwIDAgMSAuNjMyLS4zMTd6bTMgMGEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDEgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em0zIDBhLjUuNSAwIDAgMSAuMzE2LjYzM2wtMSAzYS41LjUgMCAxIDEtLjk0OC0uMzE2bDEtM2EuNS41IDAgMCAxIC42MzItLjMxN3ptLjI0Ny02Ljk5OGE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZFJhaW5IZWF2eUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNzYgMTEuMDMyYS41LjUgMCAwIDEgLjI5Mi42NDNsLTEuNSA0YS41LjUgMCAwIDEtLjkzNi0uMzVsMS41LTRhLjUuNSAwIDAgMSAuNjQ0LS4yOTN6bTMgMGEuNS41IDAgMCAxIC4yOTIuNjQzbC0xLjUgNGEuNS41IDAgMCAxLS45MzYtLjM1bDEuNS00YS41LjUgMCAwIDEgLjY0NC0uMjkzem0zIDBhLjUuNSAwIDAgMSAuMjkyLjY0M2wtMS41IDRhLjUuNSAwIDAgMS0uOTM2LS4zNWwxLjUtNGEuNS41IDAgMCAxIC42NDQtLjI5M3ptMyAwYS41LjUgMCAwIDEgLjI5Mi42NDNsLTEuNSA0YS41LjUgMCAwIDEtLjkzNi0uMzVsMS41LTRhLjUuNSAwIDAgMSAuNjQ0LS4yOTN6bS4yMjktNy4wMDVhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTBIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRSYWluSGVhdnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNzYgMTEuMDMyYS41LjUgMCAwIDEgLjI5Mi42NDNsLTEuNSA0YS41LjUgMCAxIDEtLjkzNi0uMzVsMS41LTRhLjUuNSAwIDAgMSAuNjQ0LS4yOTN6bTMgMGEuNS41IDAgMCAxIC4yOTIuNjQzbC0xLjUgNGEuNS41IDAgMSAxLS45MzYtLjM1bDEuNS00YS41LjUgMCAwIDEgLjY0NC0uMjkzem0zIDBhLjUuNSAwIDAgMSAuMjkyLjY0M2wtMS41IDRhLjUuNSAwIDEgMS0uOTM2LS4zNWwxLjUtNGEuNS41IDAgMCAxIC42NDQtLjI5M3ptMyAwYS41LjUgMCAwIDEgLjI5Mi42NDNsLTEuNSA0YS41LjUgMCAwIDEtLjkzNi0uMzVsMS41LTRhLjUuNSAwIDAgMSAuNjQ0LS4yOTN6bS4yMjktNy4wMDVhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTBIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6TTguNSAxYTQgNCAwIDAgMSAzLjk3NiAzLjU1NS41LjUgMCAwIDAgLjUuNDQ1SDEzYTIgMiAwIDAgMSAwIDRIMy41YTIuNSAyLjUgMCAxIDEgLjYwNS00LjkyNi41LjUgMCAwIDAgLjU5Ni0uMzI5QTQuMDAyIDQuMDAyIDAgMCAxIDguNSAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjE1OCAxMi4wMjVhLjUuNSAwIDAgMSAuMzE2LjYzM2wtLjUgMS41YS41LjUgMCAwIDEtLjk0OC0uMzE2bC41LTEuNWEuNS41IDAgMCAxIC42MzItLjMxN3ptMyAwYS41LjUgMCAwIDEgLjMxNi42MzNsLTEgM2EuNS41IDAgMCAxLS45NDgtLjMxNmwxLTNhLjUuNSAwIDAgMSAuNjMyLS4zMTd6bTMgMGEuNS41IDAgMCAxIC4zMTYuNjMzbC0uNSAxLjVhLjUuNSAwIDAgMS0uOTQ4LS4zMTZsLjUtMS41YS41LjUgMCAwIDEgLjYzMi0uMzE3em0zIDBhLjUuNSAwIDAgMSAuMzE2LjYzM2wtMSAzYS41LjUgMCAxIDEtLjk0OC0uMzE2bDEtM2EuNS41IDAgMCAxIC42MzItLjMxN3ptLjI0Ny02Ljk5OGE1LjAwMSA1LjAwMSAwIDAgMC05LjQ5OS0xLjAwNEEzLjUgMy41IDAgMSAwIDMuNSAxMUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pNOC41IDJhNCA0IDAgMCAxIDMuOTc2IDMuNTU1LjUuNSAwIDAgMCAuNS40NDVIMTNhMiAyIDAgMCAxIDAgNEgzLjVhMi41IDIuNSAwIDEgMSAuNjA1LTQuOTI2LjUuNSAwIDAgMCAuNTk2LS4zMjlBNC4wMDIgNC4wMDIgMCAwIDEgOC41IDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRTbGFzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuMTEyIDUuMTEyYTMuMTI1IDMuMTI1IDAgMCAwLS4xNy42MTNDMS4yNjYgNi4wOTUgMCA3LjU1NSAwIDkuMzE4IDAgMTEuMzY2IDEuNzA4IDEzIDMuNzgxIDEzSDExTDMuMTEyIDUuMTEyem0xMS4zNzIgNy4zNzJMNC45MzcgMi45MzdBNS41MTIgNS41MTIgMCAwIDEgOCAyYzIuNjkgMCA0LjkyMyAyIDUuMTY2IDQuNTc5QzE0Ljc1OCA2LjgwNCAxNiA4LjEzNyAxNiA5Ljc3M2EzLjIgMy4yIDAgMCAxLTEuNTE2IDIuNzExem0tLjgzOCAxLjg3LTEyLTEyIC43MDgtLjcwOCAxMiAxMi0uNzA3LjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjExMiA1LjExMmEzLjEyNSAzLjEyNSAwIDAgMC0uMTcuNjEzQzEuMjY2IDYuMDk1IDAgNy41NTUgMCA5LjMxOCAwIDExLjM2NiAxLjcwOCAxMyAzLjc4MSAxM0gxMWwtMS0xSDMuNzgxQzIuMjMxIDEyIDEgMTAuNzg1IDEgOS4zMThjMC0xLjM2NSAxLjA2NC0yLjUxMyAyLjQ2LTIuNjY2bC40NDYtLjA1di0uNDQ3YzAtLjA3NS4wMDYtLjE1Mi4wMTgtLjIzMWwtLjgxMi0uODEyem0yLjU1LTEuNDUtLjcyNS0uNzI1QTUuNTEyIDUuNTEyIDAgMCAxIDggMmMyLjY5IDAgNC45MjMgMiA1LjE2NiA0LjU3OUMxNC43NTggNi44MDQgMTYgOC4xMzcgMTYgOS43NzNhMy4yIDMuMiAwIDAgMS0xLjUxNiAyLjcxMWwtLjczMy0uNzMzQzE0LjQ5OCAxMS4zNzggMTUgMTAuNjI2IDE1IDkuNzczYzAtMS4yMTYtMS4wMi0yLjIyOC0yLjMxMy0yLjIyOGgtLjV2LS41QzEyLjE4OCA0LjgyNSAxMC4zMjggMyA4IDNjLS44NzUgMC0xLjY3OC4yNi0yLjMzOS42NjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuNjQ2IDE0LjM1NC0xMi0xMiAuNzA4LS43MDggMTIgMTItLjcwNy43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRTbGVldEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4zNzUgMTMuNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41N2wuNTAxLS4yODdhLjI1LjI1IDAgMCAxIC4yNDguNDM0bC0uNDk1LjI4My40OTUuMjgzYS4yNS4yNSAwIDEgMS0uMjQ4LjQzNGwtLjUwMS0uMjg2di41NjlhLjI1LjI1IDAgMSAxLS41IDB2LS41N2wtLjUwMS4yODdhLjI1LjI1IDAgMSAxLS4yNDgtLjQzNGwuNDk1LS4yODMtLjQ5NS0uMjgzYS4yNS4yNSAwIDEgMSAuMjQ4LS40MzRsLjUwMS4yODZ2LS41NjlhLjI1LjI1IDAgMCAxIC4yNS0uMjV6bTEuODQ5LTIuNDQ3YS41LjUgMCAwIDEgLjIyMy42N2wtLjUgMWEuNS41IDAgMCAxLS44OTQtLjQ0N2wuNS0xYS41LjUgMCAwIDEgLjY3LS4yMjN6TTYuMzc1IDEzLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OS40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMSAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAxIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMSAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMS44NDktMi40NDdhLjUuNSAwIDAgMSAuMjIzLjY3bC0uNSAxYS41LjUgMCAwIDEtLjg5NC0uNDQ3bC41LTFhLjUuNSAwIDAgMSAuNjctLjIyM3ptMi4xNTEgMi40NDdhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OS40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMSAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAwIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAxIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMSAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMS44NDktMi40NDdhLjUuNSAwIDAgMSAuMjIzLjY3bC0uNSAxYS41LjUgMCAxIDEtLjg5NC0uNDQ3bC41LTFhLjUuNSAwIDAgMSAuNjctLjIyM3ptMS4xODEtNy4wMjZhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTBIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRTbGVldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy40MDUgNC4wMjdhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTBIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6TTguNSAxYTQgNCAwIDAgMSAzLjk3NiAzLjU1NS41LjUgMCAwIDAgLjUuNDQ1SDEzYTIgMiAwIDAgMSAwIDRIMy41YTIuNSAyLjUgMCAxIDEgLjYwNS00LjkyNi41LjUgMCAwIDAgLjU5Ni0uMzI5QTQuMDAyIDQuMDAyIDAgMCAxIDguNSAxek0yLjM3NSAxMy41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMS44NDktMi40NDdhLjUuNSAwIDAgMSAuMjIzLjY3bC0uNSAxYS41LjUgMCAxIDEtLjg5NC0uNDQ3bC41LTFhLjUuNSAwIDAgMSAuNjctLjIyM3pNNi4zNzUgMTMuNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41N2wuNTAxLS4yODdhLjI1LjI1IDAgMCAxIC4yNDguNDM0bC0uNDk1LjI4My40OTUuMjgzYS4yNS4yNSAwIDAgMS0uMjQ4LjQzNGwtLjUwMS0uMjg2di41NjlhLjI1LjI1IDAgMSAxLS41IDB2LS41N2wtLjUwMS4yODdhLjI1LjI1IDAgMCAxLS4yNDgtLjQzNGwuNDk1LS4yODMtLjQ5NS0uMjgzYS4yNS4yNSAwIDAgMSAuMjQ4LS40MzRsLjUwMS4yODZ2LS41NjlhLjI1LjI1IDAgMCAxIC4yNS0uMjV6bTEuODQ5LTIuNDQ3YS41LjUgMCAwIDEgLjIyMy42N2wtLjUgMWEuNS41IDAgMSAxLS44OTQtLjQ0N2wuNS0xYS41LjUgMCAwIDEgLjY3LS4yMjN6bTIuMTUxIDIuNDQ3YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMS44NDktMi40NDdhLjUuNSAwIDAgMSAuMjIzLjY3bC0uNSAxYS41LjUgMCAxIDEtLjg5NC0uNDQ3bC41LTFhLjUuNSAwIDAgMSAuNjctLjIyM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZFNub3dGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNjI1IDExLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUwMS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ4LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAwIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDEgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDAgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAwIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1em0yLjc1IDJhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OS40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptNS41IDBhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OS40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAwIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptLTIuNzUtMmEuMjUuMjUgMCAwIDEgLjI1LjI1di41N2wuNS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ5LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAwIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDEgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDAgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAwIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1em01LjUgMGEuMjUuMjUgMCAwIDEgLjI1LjI1di41N2wuNS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ5LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAwIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDAgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDEgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAwIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1em0tLjIyLTcuMjIzYTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEwLjI1SDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkU25vdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy40MDUgNC4yNzdhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTAuMjVIMTNhMyAzIDAgMCAwIC40MDUtNS45NzN6TTguNSAxLjI1YTQgNCAwIDAgMSAzLjk3NiAzLjU1NS41LjUgMCAwIDAgLjUuNDQ1SDEzYTIgMiAwIDAgMS0uMDAxIDRIMy41YTIuNSAyLjUgMCAxIDEgLjYwNS00LjkyNi41LjUgMCAwIDAgLjU5Ni0uMzI5QTQuMDAyIDQuMDAyIDAgMCAxIDguNSAxLjI1ek0yLjYyNSAxMS41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptMi43NSAyYS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptNS41IDBhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUwMS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ4LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAwIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDEgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDAgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAwIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1em0tMi43NS0yYS4yNS4yNSAwIDAgMSAuMjUuMjV2LjU3bC41MDEtLjI4N2EuMjUuMjUgMCAwIDEgLjI0OC40MzRsLS40OTUuMjgzLjQ5NS4yODNhLjI1LjI1IDAgMCAxLS4yNDguNDM0bC0uNTAxLS4yODZ2LjU2OWEuMjUuMjUgMCAxIDEtLjUgMHYtLjU3bC0uNTAxLjI4N2EuMjUuMjUgMCAwIDEtLjI0OC0uNDM0bC40OTUtLjI4My0uNDk1LS4yODNhLjI1LjI1IDAgMCAxIC4yNDgtLjQzNGwuNTAxLjI4NnYtLjU2OWEuMjUuMjUgMCAwIDEgLjI1LS4yNXptNS41IDBhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNTdsLjUwMS0uMjg3YS4yNS4yNSAwIDAgMSAuMjQ4LjQzNGwtLjQ5NS4yODMuNDk1LjI4M2EuMjUuMjUgMCAwIDEtLjI0OC40MzRsLS41MDEtLjI4NnYuNTY5YS4yNS4yNSAwIDEgMS0uNSAwdi0uNTdsLS41MDEuMjg3YS4yNS4yNSAwIDAgMS0uMjQ4LS40MzRsLjQ5NS0uMjgzLS40OTUtLjI4M2EuMjUuMjUgMCAwIDEgLjI0OC0uNDM0bC41MDEuMjg2di0uNTY5YS4yNS4yNSAwIDAgMSAuMjUtLjI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkU3VuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40NzMgMTFhNC41IDQuNSAwIDAgMC04LjcyLS45OUEzIDMgMCAwIDAgMyAxNmg4LjVhMi41IDIuNSAwIDAgMCAwLTVoLS4wMjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSAxLjVhLjUuNSAwIDAgMC0xIDB2MWEuNS41IDAgMCAwIDEgMHYtMXptMy43NDMgMS45NjRhLjUuNSAwIDEgMC0uNzA3LS43MDdsLS43MDguNzA3YS41LjUgMCAwIDAgLjcwOC43MDhsLjcwNy0uNzA4em0tNy43NzktLjcwN2EuNS41IDAgMCAwLS43MDcuNzA3bC43MDcuNzA4YS41LjUgMCAxIDAgLjcwOC0uNzA4bC0uNzA4LS43MDd6bTEuNzM0IDMuMzc0YTIgMiAwIDEgMSAzLjI5NiAyLjE5OGMuMTk5LjI4MS4zNzIuNTgyLjUxNi44OThhMyAzIDAgMSAwLTQuODQtMy4yMjVjLjM1Mi4wMTEuNjk2LjA1NSAxLjAyOC4xMjl6bTQuNDg0IDQuMDc0Yy42LjIxNSAxLjEyNS41OSAxLjUyMiAxLjA3MmEuNS41IDAgMCAwIC4wMzktLjc0MmwtLjcwNy0uNzA3YS41LjUgMCAwIDAtLjg1NC4zNzd6TTE0LjUgNi41YS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA4YTMuNSAzLjUgMCAwIDEgMy41IDMuNTU1LjUuNSAwIDAgMCAuNjI0LjQ5MkExLjUwMyAxLjUwMyAwIDAgMSAxMyAxMy41YTEuNSAxLjUgMCAwIDEtMS41IDEuNUgzYTIgMiAwIDEgMSAuMS0zLjk5OC41LjUgMCAwIDAgLjUxLS4zNzVBMy41MDIgMy41MDIgMCAwIDEgNyA4em00LjQ3MyAzYTQuNSA0LjUgMCAwIDAtOC43Mi0uOTlBMyAzIDAgMCAwIDMgMTZoOC41YTIuNSAyLjUgMCAwIDAgMC01aC0uMDI3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgMS41YS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMCAxIDB2LTF6bTMuNzQzIDEuOTY0YS41LjUgMCAxIDAtLjcwNy0uNzA3bC0uNzA4LjcwN2EuNS41IDAgMCAwIC43MDguNzA4bC43MDctLjcwOHptLTcuNzc5LS43MDdhLjUuNSAwIDAgMC0uNzA3LjcwN2wuNzA3LjcwOGEuNS41IDAgMSAwIC43MDgtLjcwOGwtLjcwOC0uNzA3em0xLjczNCAzLjM3NGEyIDIgMCAxIDEgMy4yOTYgMi4xOThjLjE5OS4yODEuMzcyLjU4Mi41MTYuODk4YTMgMyAwIDEgMC00Ljg0LTMuMjI1Yy4zNTIuMDExLjY5Ni4wNTUgMS4wMjguMTI5em00LjQ4NCA0LjA3NGMuNi4yMTUgMS4xMjUuNTkgMS41MjIgMS4wNzJhLjUuNSAwIDAgMCAuMDM5LS43NDJsLS43MDctLjcwN2EuNS41IDAgMCAwLS44NTQuMzc3ek0xNC41IDYuNWEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkVXBsb2FkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAwYTUuNTMgNS41MyAwIDAgMC0zLjU5NCAxLjM0MmMtLjc2Ni42Ni0xLjMyMSAxLjUyLTEuNDY0IDIuMzgzQzEuMjY2IDQuMDk1IDAgNS41NTUgMCA3LjMxOCAwIDkuMzY2IDEuNzA4IDExIDMuNzgxIDExSDcuNVY1LjcwN0w1LjM1NCA3Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOGwzLTNhLjUuNSAwIDAgMSAuNzA4IDBsMyAzYS41LjUgMCAwIDEtLjcwOC43MDhMOC41IDUuNzA3VjExaDQuMTg4QzE0LjUwMiAxMSAxNiA5LjU3IDE2IDcuNzczYzAtMS42MzYtMS4yNDItMi45NjktMi44MzQtMy4xOTRDMTIuOTIzIDEuOTk5IDEwLjY5IDAgOCAwem0tLjUgMTQuNVYxMWgxdjMuNWEuNS41IDAgMCAxLTEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZFVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNC40MDYgMS4zNDJBNS41MyA1LjUzIDAgMCAxIDggMGMyLjY5IDAgNC45MjMgMiA1LjE2NiA0LjU3OUMxNC43NTggNC44MDQgMTYgNi4xMzcgMTYgNy43NzMgMTYgOS41NjkgMTQuNTAyIDExIDEyLjY4NyAxMUgxMGEuNS41IDAgMCAxIDAtMWgyLjY4OEMxMy45NzkgMTAgMTUgOC45ODggMTUgNy43NzNjMC0xLjIxNi0xLjAyLTIuMjI4LTIuMzEzLTIuMjI4aC0uNXYtLjVDMTIuMTg4IDIuODI1IDEwLjMyOCAxIDggMWE0LjUzIDQuNTMgMCAwIDAtMi45NDEgMS4xYy0uNzU3LjY1Mi0xLjE1MyAxLjQzOC0xLjE1MyAyLjA1NXYuNDQ4bC0uNDQ1LjA0OUMyLjA2NCA0LjgwNSAxIDUuOTUyIDEgNy4zMTggMSA4Ljc4NSAyLjIzIDEwIDMuNzgxIDEwSDZhLjUuNSAwIDAgMSAwIDFIMy43ODFDMS43MDggMTEgMCA5LjM2NiAwIDcuMzE4YzAtMS43NjMgMS4yNjYtMy4yMjMgMi45NDItMy41OTMuMTQzLS44NjMuNjk4LTEuNzIzIDEuNDY0LTIuMzgzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjY0NiA0LjE0NmEuNS41IDAgMCAxIC43MDggMGwzIDNhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgNS43MDdWMTQuNWEuNS41IDAgMCAxLTEgMFY1LjcwN0w1LjM1NCA3Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOGwzLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC40MDYgMy4zNDJBNS41MyA1LjUzIDAgMCAxIDggMmMyLjY5IDAgNC45MjMgMiA1LjE2NiA0LjU3OUMxNC43NTggNi44MDQgMTYgOC4xMzcgMTYgOS43NzMgMTYgMTEuNTY5IDE0LjUwMiAxMyAxMi42ODcgMTNIMy43ODFDMS43MDggMTMgMCAxMS4zNjYgMCA5LjMxOGMwLTEuNzYzIDEuMjY2LTMuMjIzIDIuOTQyLTMuNTkzLjE0My0uODYzLjY5OC0xLjcyMyAxLjQ2NC0yLjM4M3ptLjY1My43NTdjLS43NTcuNjUzLTEuMTUzIDEuNDQtMS4xNTMgMi4wNTZ2LjQ0OGwtLjQ0NS4wNDlDMi4wNjQgNi44MDUgMSA3Ljk1MiAxIDkuMzE4IDEgMTAuNzg1IDIuMjMgMTIgMy43ODEgMTJoOC45MDZDMTMuOTggMTIgMTUgMTAuOTg4IDE1IDkuNzczYzAtMS4yMTYtMS4wMi0yLjIyOC0yLjMxMy0yLjIyOGgtLjV2LS41QzEyLjE4OCA0LjgyNSAxMC4zMjggMyA4IDNhNC41MyA0LjUzIDAgMCAwLTIuOTQxIDEuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDbG91ZHNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ3MyA5YTQuNSA0LjUgMCAwIDAtOC43Mi0uOTlBMyAzIDAgMCAwIDMgMTRoOC41YTIuNSAyLjUgMCAxIDAtLjAyNy01elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU0NCA5Ljc3MmEzLjUwNiAzLjUwNiAwIDAgMC0yLjIyNS0xLjY3NiA1LjUwMiA1LjUwMiAwIDAgMC02LjMzNy00LjAwMiA0LjAwMiA0LjAwMiAwIDAgMSA3LjM5Mi45MSAyLjUgMi41IDAgMCAxIDEuMTcgNC43Njl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ2xvdWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDcuNWEyLjUgMi41IDAgMCAxLTEuNDU2IDIuMjcyIDMuNTEzIDMuNTEzIDAgMCAwLS42NS0uODI0IDEuNSAxLjUgMCAwIDAtLjc4OS0yLjg5Ni41LjUgMCAwIDEtLjYyNy0uNDIxIDMgMyAwIDAgMC01LjIyLTEuNjI1IDUuNTg3IDUuNTg3IDAgMCAwLTEuMjc2LjA4OCA0LjAwMiA0LjAwMiAwIDAgMSA3LjM5Mi45MUEyLjUgMi41IDAgMCAxIDE2IDcuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDVhNC41IDQuNSAwIDAgMSA0LjQ3MyA0aC4wMjdhMi41IDIuNSAwIDAgMSAwIDVIM2EzIDMgMCAwIDEtLjI0Ny01Ljk5QTQuNTAyIDQuNTAyIDAgMCAxIDcgNXptMy41IDQuNWEzLjUgMy41IDAgMCAwLTYuODktLjg3My41LjUgMCAwIDEtLjUxLjM3NUEyIDIgMCAxIDAgMyAxM2g4LjVhMS41IDEuNSAwIDEgMC0uMzc2LTIuOTUzLjUuNSAwIDAgMS0uNjI0LS40OTJWOS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkeUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDA1IDcuMDI3YTUuMDAxIDUuMDAxIDAgMCAwLTkuNDk5LTEuMDA0QTMuNSAzLjUgMCAxIDAgMy41IDEzSDEzYTMgMyAwIDAgMCAuNDA1LTUuOTczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nsb3VkeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy40MDUgOC41MjdhNS4wMDEgNS4wMDEgMCAwIDAtOS40OTktMS4wMDRBMy41IDMuNSAwIDEgMCAzLjUgMTQuNUgxM2EzIDMgMCAwIDAgLjQwNS01Ljk3M3pNOC41IDUuNWE0IDQgMCAwIDEgMy45NzYgMy41NTUuNS41IDAgMCAwIC41LjQ0NUgxM2EyIDIgMCAwIDEtLjAwMSA0SDMuNWEyLjUgMi41IDAgMSAxIC42MDUtNC45MjYuNS41IDAgMCAwIC41OTYtLjMyOUE0LjAwMiA0LjAwMiAwIDAgMSA4LjUgNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvZGVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC40NzggMS42NDdhLjUuNSAwIDEgMC0uOTU2LS4yOTRsLTQgMTNhLjUuNSAwIDAgMCAuOTU2LjI5NGw0LTEzek00Ljg1NCA0LjE0NmEuNS41IDAgMCAxIDAgLjcwOEwxLjcwNyA4bDMuMTQ3IDMuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhsLTMuNS0zLjVhLjUuNSAwIDAgMSAwLS43MDhsMy41LTMuNWEuNS41IDAgMCAxIC43MDggMHptNi4yOTIgMGEuNS41IDAgMCAwIDAgLjcwOEwxNC4yOTMgOGwtMy4xNDcgMy4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwzLjUtMy41YS41LjUgMCAwIDAgMC0uNzA4bC0zLjUtMy41YS41LjUgMCAwIDAtLjcwOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvZGVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODU0IDQuNjQ2YS41LjUgMCAwIDEgMCAuNzA4TDQuMjA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtMy0zYS41LjUgMCAwIDEgMC0uNzA4bDMtM2EuNS41IDAgMCAxIC43MDggMHptMi4yOTIgMGEuNS41IDAgMCAwIDAgLjcwOEwxMS43OTMgOGwtMi42NDcgMi42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwzLTNhLjUuNSAwIDAgMCAwLS43MDhsLTMtM2EuNS41IDAgMCAwLS43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuODU0IDQuODU0YS41LjUgMCAxIDAtLjcwOC0uNzA4bC0zLjUgMy41YS41LjUgMCAwIDAgMCAuNzA4bDMuNSAzLjVhLjUuNSAwIDAgMCAuNzA4LS43MDhMMi43MDcgOGwzLjE0Ny0zLjE0NnptNC4yOTIgMGEuNS41IDAgMCAxIC43MDgtLjcwOGwzLjUgMy41YS41LjUgMCAwIDEgMCAuNzA4bC0zLjUgMy41YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEzLjI5MyA4bC0zLjE0Ny0zLjE0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA5LjUxMWMuMDc2Ljk1NC44MyAxLjY5NyAyLjE4MiAxLjc4NVYxMmguNnYtLjcwOWMxLjQtLjA5OCAyLjIxOC0uODQ2IDIuMjE4LTEuOTMyIDAtLjk4Ny0uNjI2LTEuNDk2LTEuNzQ1LTEuNzZsLS40NzMtLjExMlY1LjU3Yy42LjA2OC45ODIuMzk2IDEuMDc0Ljg1aDEuMDUyYy0uMDc2LS45MTktLjg2NC0xLjYzOC0yLjEyNi0xLjcxNlY0aC0uNnYuNzE5Yy0xLjE5NS4xMTctMi4wMS44MzYtMi4wMSAxLjg1MyAwIC45LjYwNiAxLjQ3MiAxLjYxMyAxLjcwN2wuMzk3LjA5OHYyLjAzNGMtLjYxNS0uMDkzLTEuMDIyLS40My0xLjExNC0uOUg1LjV6bTIuMTc3LTIuMTY2Yy0uNTktLjEzNy0uOTEtLjQxNi0uOTEtLjgzNiAwLS40Ny4zNDUtLjgyMi45MTUtLjkyNXYxLjc2aC0uMDA1em0uNjkyIDEuMTkzYy43MTcuMTY2IDEuMDQ4LjQzNSAxLjA0OC45MSAwIC41NDItLjQxMi45MTQtMS4xMzUuOTgyVjguNTE4bC4wODcuMDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEzLjVhNS41IDUuNSAwIDEgMSAwLTExIDUuNSA1LjUgMCAwIDEgMCAxMXptMCAuNUE2IDYgMCAxIDAgOCAyYTYgNiAwIDAgMCAwIDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvbGxlY3Rpb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTNhMS41IDEuNSAwIDAgMCAxLjUgMS41aDEzQTEuNSAxLjUgMCAwIDAgMTYgMTNWNmExLjUgMS41IDAgMCAwLTEuNS0xLjVoLTEzQTEuNSAxLjUgMCAwIDAgMCA2djd6TTIgM2EuNS41IDAgMCAwIC41LjVoMTFhLjUuNSAwIDAgMCAwLTFoLTExQS41LjUgMCAwIDAgMiAzem0yLTJhLjUuNSAwIDAgMCAuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdBLjUuNSAwIDAgMCA0IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ29sbGVjdGlvblBsYXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAzLjVhLjUuNSAwIDAgMSAwLTFoMTFhLjUuNSAwIDAgMSAwIDFoLTExem0yLTJhLjUuNSAwIDAgMSAwLTFoN2EuNS41IDAgMCAxIDAgMWgtN3pNMCAxM2ExLjUgMS41IDAgMCAwIDEuNSAxLjVoMTNBMS41IDEuNSAwIDAgMCAxNiAxM1Y2YTEuNSAxLjUgMCAwIDAtMS41LTEuNWgtMTNBMS41IDEuNSAwIDAgMCAwIDZ2N3ptNi4yNTgtNi40MzdhLjUuNSAwIDAgMSAuNTA3LjAxM2w0IDIuNWEuNS41IDAgMCAxIDAgLjg0OGwtNCAyLjVBLjUuNSAwIDAgMSA2IDEyVjdhLjUuNSAwIDAgMSAuMjU4LS40Mzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ29sbGVjdGlvblBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzYS41LjUgMCAwIDAgLjUuNWgxMWEuNS41IDAgMCAwIDAtMWgtMTFBLjUuNSAwIDAgMCAyIDN6bTItMmEuNS41IDAgMCAwIC41LjVoN2EuNS41IDAgMCAwIDAtMWgtN0EuNS41IDAgMCAwIDQgMXptMi43NjUgNS41NzZBLjUuNSAwIDAgMCA2IDd2NWEuNS41IDAgMCAwIC43NjUuNDI0bDQtMi41YS41LjUgMCAwIDAgMC0uODQ4bC00LTIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMTQuNUExLjUgMS41IDAgMCAxIDAgMTNWNmExLjUgMS41IDAgMCAxIDEuNS0xLjVoMTNBMS41IDEuNSAwIDAgMSAxNiA2djdhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xM3ptMTMtMWEuNS41IDAgMCAwIC41LS41VjZhLjUuNSAwIDAgMC0uNS0uNWgtMTNBLjUuNSAwIDAgMCAxIDZ2N2EuNS41IDAgMCAwIC41LjVoMTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ29sbGVjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMy41YS41LjUgMCAwIDEgMC0xaDExYS41LjUgMCAwIDEgMCAxaC0xMXptMi0yYS41LjUgMCAwIDEgMC0xaDdhLjUuNSAwIDAgMSAwIDFoLTd6TTAgMTNhMS41IDEuNSAwIDAgMCAxLjUgMS41aDEzQTEuNSAxLjUgMCAwIDAgMTYgMTNWNmExLjUgMS41IDAgMCAwLTEuNS0xLjVoLTEzQTEuNSAxLjUgMCAwIDAgMCA2djd6bTEuNS41QS41LjUgMCAwIDEgMSAxM1Y2YS41LjUgMCAwIDEgLjUtLjVoMTNhLjUuNSAwIDAgMSAuNS41djdhLjUuNSAwIDAgMS0uNS41aC0xM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDb2x1bW5zR2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMXYzSDFWMWg1ek0xIDBhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xVjFhMSAxIDAgMCAwLTEtMUgxem0xNCAxMnYzaC01di0zaDV6bS01LTFhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTV6TTYgOHY3SDFWOGg1ek0xIDdhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xVjhhMSAxIDAgMCAwLTEtMUgxem0xNC02djdoLTVWMWg1em0tNS0xYTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMVYxYTEgMSAwIDAgMC0xLTFoLTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ29sdW1ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjJ6bTguNSAwdjhIMTVWMkg4LjV6bTAgOXYzSDE1di0zSDguNXptLTEtOUgxdjNoNi41VjJ6TTEgMTRoNi41VjZIMXY4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvbW1hbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDJBMS41IDEuNSAwIDAgMSA1IDMuNVY1SDMuNWExLjUgMS41IDAgMSAxIDAtM3pNNiA1VjMuNUEyLjUgMi41IDAgMSAwIDMuNSA2SDV2NEgzLjVBMi41IDIuNSAwIDEgMCA2IDEyLjVWMTFoNHYxLjVhMi41IDIuNSAwIDEgMCAyLjUtMi41SDExVjZoMS41QTIuNSAyLjUgMCAxIDAgMTAgMy41VjVINnptNCAxdjRINlY2aDR6bTEtMVYzLjVBMS41IDEuNSAwIDEgMSAxMi41IDVIMTF6bTAgNmgxLjVhMS41IDEuNSAwIDEgMS0xLjUgMS41VjExem0tNiAwdjEuNUExLjUgMS41IDAgMSAxIDMuNSAxMUg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvbXBhc3NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgOC41MTZhNy41IDcuNSAwIDEgMS05LjQ2Mi03LjI0QTEgMSAwIDAgMSA3IDBoMmExIDEgMCAwIDEgLjk2MiAxLjI3NiA3LjUwMyA3LjUwMyAwIDAgMSA1LjUzOCA3LjI0em0tMy42MS0zLjkwNUw2Ljk0IDcuNDM5IDQuMTEgMTIuMzlsNC45NS0yLjgyOCAyLjgyOC00Ljk1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvbXBhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNi4wMTZhNy41IDcuNSAwIDAgMCAxLjk2Mi0xNC43NEExIDEgMCAwIDAgOSAwSDdhMSAxIDAgMCAwLS45NjIgMS4yNzZBNy41IDcuNSAwIDAgMCA4IDE2LjAxNnptNi41LTcuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYuOTQgNy40NCA0Ljk1LTIuODMtMi44MyA0Ljk1LTQuOTQ5IDIuODMgMi44MjgtNC45NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDb25lU3RyaXBlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05Ljk3IDQuODguOTUzIDMuODExQzEwLjE1OSA4Ljg3OCA5LjE0IDkgOCA5Yy0xLjE0IDAtMi4xNTgtLjEyMi0yLjkyMy0uMzA5TDYuMDMgNC44OEM2LjYzNSA0Ljk1NyA3LjMgNSA4IDVzMS4zNjUtLjA0MyAxLjk3LS4xMnptLS4yNDUtLjk3OEw4Ljk3Ljg4QzguNzE4LS4xMyA3LjI4Mi0uMTMgNy4wMy44OEw2LjI3NSAzLjlDNi44IDMuOTY1IDcuMzgyIDQgOCA0Yy42MTggMCAxLjItLjAzNiAxLjcyNS0uMDk4em00LjM5NiA4LjYxM2EuNS41IDAgMCAxIC4wMzcuOTZsLTYgMmEuNS41IDAgMCAxLS4zMTYgMGwtNi0yYS41LjUgMCAwIDEgLjAzNy0uOTZsMi4zOTEtLjU5OC41NjUtMi4yNTdjLjg2Mi4yMTIgMS45NjQuMzM5IDMuMTY1LjMzOXMyLjMwMy0uMTI3IDMuMTY1LS4zMzlsLjU2NSAyLjI1NyAyLjM5MS41OTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ29uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAzIDEuODhjLjI1Mi0xLjAxIDEuNjg4LTEuMDEgMS45NCAwbDIuOTA1IDExLjYySDE0YS41LjUgMCAwIDEgMCAxSDJhLjUuNSAwIDAgMSAwLTFoMi4xMjVMNy4wMyAxLjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NvbnRyb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA2LjAyN2EuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMHptLTEuNSAxLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6bTIuNS0uNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMHptLTEuNSAxLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6bS02LjUtM2gxdjFoMXYxaC0xdjFoLTF2LTFoLTF2LTFoMXYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjA1MSAzLjI2YS41LjUgMCAwIDEgLjM1NC0uNjEzbDEuOTMyLS41MThhLjUuNSAwIDAgMSAuNjIuMzljLjY1NS0uMDc5IDEuMzUtLjExNyAyLjA0My0uMTE3LjcyIDAgMS40NDMuMDQxIDIuMTIuMTI2YS41LjUgMCAwIDEgLjYyMi0uMzk5bDEuOTMyLjUxOGEuNS41IDAgMCAxIC4zMDYuNzI5Yy4xNC4wOS4yNjYuMTkuMzczLjI5Ny40MDguNDA4Ljc4IDEuMDUgMS4wOTUgMS43NzIuMzIuNzMzLjU5OSAxLjU5MS44MDUgMi40NjYuMjA2Ljg3NS4zNCAxLjc4LjM2NCAyLjYwNi4wMjQuODE2LS4wNTkgMS42MDItLjMyOCAyLjIxYTEuNDIgMS40MiAwIDAgMS0xLjQ0NS44M2MtLjYzNi0uMDY3LTEuMTE1LS4zOTQtMS41MTMtLjc3My0uMjQ1LS4yMzItLjQ5Ni0uNTI2LS43MzktLjgwOC0uMTI2LS4xNDgtLjI1LS4yOTItLjM2OC0uNDIzLS43MjgtLjgwNC0xLjU5Ny0xLjUyNy0zLjIyNC0xLjUyNy0xLjYyNyAwLTIuNDk2LjcyMy0zLjIyNCAxLjUyNy0uMTE5LjEzMS0uMjQyLjI3NS0uMzY4LjQyMy0uMjQzLjI4Mi0uNDk0LjU3NS0uNzM5LjgwOC0uMzk4LjM4LS44NzcuNzA2LTEuNTEzLjc3M2ExLjQyIDEuNDIgMCAwIDEtMS40NDUtLjgzYy0uMjctLjYwOC0uMzUyLTEuMzk1LS4zMjktMi4yMS4wMjQtLjgyNi4xNi0xLjczLjM2NS0yLjYwNi4yMDYtLjg3NS40ODYtMS43MzMuODA1LTIuNDY2LjMxNS0uNzIyLjY4Ny0xLjM2NCAxLjA5NC0xLjc3MmEyLjM0IDIuMzQgMCAwIDEgLjQzMy0uMzM1LjUwNC41MDQgMCAwIDEtLjAyOC0uMDc5em0yLjAzNi40MTJjLS44NzcuMTg1LTEuNDY5LjQ0My0xLjczMy43MDgtLjI3Ni4yNzYtLjU4Ny43ODMtLjg4NSAxLjQ2NWExMy43NDggMTMuNzQ4IDAgMCAwLS43NDggMi4yOTUgMTIuMzUxIDEyLjM1MSAwIDAgMC0uMzM5IDIuNDA2Yy0uMDIyLjc1NS4wNjIgMS4zNjguMjQzIDEuNzc2YS40Mi40MiAwIDAgMCAuNDI2LjI0Yy4zMjctLjAzNC42MS0uMTk5LjkyOS0uNTAyLjIxMi0uMjAyLjQtLjQyMy42MTUtLjY3NC4xMzMtLjE1Ni4yNzYtLjMyMy40NC0uNTA0QzQuODYxIDkuOTY5IDUuOTc4IDkuMDI3IDggOS4wMjdzMy4xMzkuOTQyIDMuOTY1IDEuODU1Yy4xNjQuMTgxLjMwNy4zNDguNDQuNTA0LjIxNC4yNTEuNDAzLjQ3Mi42MTUuNjc0LjMxOC4zMDMuNjAxLjQ2OC45MjkuNTAzYS40Mi40MiAwIDAgMCAuNDI2LS4yNDFjLjE4LS40MDguMjY1LTEuMDIuMjQzLTEuNzc2YTEyLjM1NCAxMi4zNTQgMCAwIDAtLjMzOS0yLjQwNiAxMy43NTMgMTMuNzUzIDAgMCAwLS43NDgtMi4yOTVjLS4yOTgtLjY4Mi0uNjEtMS4xOS0uODg1LTEuNDY1LS4yNjQtLjI2NS0uODU2LS41MjMtMS43MzMtLjcwOC0uODUtLjE3OS0xLjg3Ny0uMjctMi45MTMtLjI3LTEuMDM2IDAtMi4wNjMuMDkxLTIuOTEzLjI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NwdUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDZhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNS41YS41LjUgMCAwIDAtMSAwVjJBMi41IDIuNSAwIDAgMCAyIDQuNUguNWEuNS41IDAgMCAwIDAgMUgydjFILjVhLjUuNSAwIDAgMCAwIDFIMnYxSC41YS41LjUgMCAwIDAgMCAxSDJ2MUguNWEuNS41IDAgMCAwIDAgMUgyQTIuNSAyLjUgMCAwIDAgNC41IDE0djEuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjEuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjEuNWEuNS41IDAgMCAwIDEgMFYxNGgxdjEuNWEuNS41IDAgMCAwIDEgMFYxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjVoMS41YS41LjUgMCAwIDAgMC0xSDE0di0xaDEuNWEuNS41IDAgMCAwIDAtMUgxNHYtMWgxLjVhLjUuNSAwIDAgMCAwLTFIMTR2LTFoMS41YS41LjUgMCAwIDAgMC0xSDE0QTIuNSAyLjUgMCAwIDAgMTEuNSAyVi41YS41LjUgMCAwIDAtMSAwVjJoLTFWLjVhLjUuNSAwIDAgMC0xIDBWMmgtMVYuNWEuNS41IDAgMCAwLTEgMFYyaC0xVi41em0xIDQuNWgzQTEuNSAxLjUgMCAwIDEgMTEgNi41djNBMS41IDEuNSAwIDAgMSA5LjUgMTFoLTNBMS41IDEuNSAwIDAgMSA1IDkuNXYtM0ExLjUgMS41IDAgMCAxIDYuNSA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0NwdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDBhLjUuNSAwIDAgMSAuNS41VjJoMVYuNWEuNS41IDAgMCAxIDEgMFYyaDFWLjVhLjUuNSAwIDAgMSAxIDBWMmgxVi41YS41LjUgMCAwIDEgMSAwVjJBMi41IDIuNSAwIDAgMSAxNCA0LjVoMS41YS41LjUgMCAwIDEgMCAxSDE0djFoMS41YS41LjUgMCAwIDEgMCAxSDE0djFoMS41YS41LjUgMCAwIDEgMCAxSDE0djFoMS41YS41LjUgMCAwIDEgMCAxSDE0YTIuNSAyLjUgMCAwIDEtMi41IDIuNXYxLjVhLjUuNSAwIDAgMS0xIDBWMTRoLTF2MS41YS41LjUgMCAwIDEtMSAwVjE0aC0xdjEuNWEuNS41IDAgMCAxLTEgMFYxNGgtMXYxLjVhLjUuNSAwIDAgMS0xIDBWMTRBMi41IDIuNSAwIDAgMSAyIDExLjVILjVhLjUuNSAwIDAgMSAwLTFIMnYtMUguNWEuNS41IDAgMCAxIDAtMUgydi0xSC41YS41LjUgMCAwIDEgMC0xSDJ2LTFILjVhLjUuNSAwIDAgMSAwLTFIMkEyLjUgMi41IDAgMCAxIDQuNSAyVi41QS41LjUgMCAwIDEgNSAwem0tLjUgM0ExLjUgMS41IDAgMCAwIDMgNC41djdBMS41IDEuNSAwIDAgMCA0LjUgMTNoN2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTdBMS41IDEuNSAwIDAgMCAxMS41IDNoLTd6TTUgNi41QTEuNSAxLjUgMCAwIDEgNi41IDVoM0ExLjUgMS41IDAgMCAxIDExIDYuNXYzQTEuNSAxLjUgMCAwIDEgOS41IDExaC0zQTEuNSAxLjUgMCAwIDEgNSA5LjV2LTN6TTYuNSA2YS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDAgLjUuNWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDcmVkaXRDYXJkMkJhY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NUgwVjR6bTExLjUgMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMmEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTJ6TTAgMTF2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTFIMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDcmVkaXRDYXJkMkJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNS41YS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptMTMgMnY1SDFWNGExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF6bS0xIDlIMmExIDEgMCAwIDEtMS0xdi0xaDE0djFhMSAxIDAgMCAxLTEgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDcmVkaXRDYXJkMkZyb250RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMi41IDFhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0yem0wIDNhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXptMCAyYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTF6bTMgMGEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xem0zIDBhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMXptMyAwYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3JlZGl0Q2FyZDJGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMTJ6TTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNS41YS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMXptMCAzYS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjV6bTMgMGEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNXptMyAwYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41em0zIDBhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3JlZGl0Q2FyZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxSDBWNHptMCAzdjVhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjdIMHptMyAyaDFhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMi0xYTEgMSAwIDAgMC0xIDF2MWgxNFY0YTEgMSAwIDAgMC0xLTFIMnptMTMgNEgxdjVhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMGExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xdi0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Nyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41LjVBLjUuNSAwIDAgMSA0IDF2MTNoMTNhLjUuNSAwIDAgMSAwIDFoLTJ2MmEuNS41IDAgMCAxLTEgMHYtMkgzLjVhLjUuNSAwIDAgMS0uNS0uNVY0SDFhLjUuNSAwIDAgMSAwLTFoMlYxYS41LjUgMCAwIDEgLjUtLjV6bTIuNSAzYS41LjUgMCAwIDEgLjUtLjVoOGEuNS41IDAgMCAxIC41LjV2OGEuNS41IDAgMCAxLTEgMFY0SDYuNWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0N1cEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyYTEgMSAwIDAgMSAxLTFoMTFhMSAxIDAgMCAxIDEgMXYxaC41QTEuNSAxLjUgMCAwIDEgMTYgNC41djdhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0uNTVhMi41IDIuNSAwIDAgMS0yLjQ1IDJoLThBMi41IDIuNSAwIDAgMSAxIDEyLjVWMnptMTMgMTBoLjVhLjUuNSAwIDAgMCAuNS0uNXYtN2EuNS41IDAgMCAwLS41LS41SDE0djh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3VwU3RyYXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTAyLjMzNGEuNS41IDAgMCAxLS4yOC42NWwtMi4yNTQuOTAyLS40IDEuOTI3Yy4zNzYuMDk1LjcxNS4yMTUuOTcyLjM2Ny4yMjguMTM1LjU2LjM5Ni41Ni44MiAwIC4wNDYtLjAwNC4wOS0uMDExLjEzMmwtLjk2MiA5LjA2OGExLjI4IDEuMjggMCAwIDEtLjUyNC45M2MtLjQ4OC4zNC0xLjQ5NC44Ny0zLjAxLjg3LTEuNTE2IDAtMi41MjItLjUzLTMuMDEtLjg3YTEuMjggMS4yOCAwIDAgMS0uNTI0LS45M0wzLjUxIDUuMTMyQS43OC43OCAwIDAgMSAzLjUgNWMwLS40MjQuMzMyLS42ODUuNTYtLjgyLjI2Mi0uMTU0LjYwNy0uMjc2Ljk5LS4zNzJDNS44MjQgMy42MTQgNi44NjcgMy41IDggMy41Yy43MTIgMCAxLjM4OS4wNDUgMS45ODUuMTI3bC40NjQtMi4yMTVhLjUuNSAwIDAgMSAuMzAzLS4zNTZsMi41LTFhLjUuNSAwIDAgMSAuNjUuMjc4ek05Ljc2OCA0LjYwN0ExMy45OTEgMTMuOTkxIDAgMCAwIDggNC41Yy0xLjA3NiAwLTIuMDMzLjExLTIuNzA3LjI3OEEzLjI4NCAzLjI4NCAwIDAgMCA0LjY0NSA1Yy4xNDYuMDczLjM2Mi4xNS42NDguMjIyQzUuOTY3IDUuMzkgNi45MjQgNS41IDggNS41Yy41NzEgMCAxLjEwOS0uMDMgMS41ODgtLjA4NWwuMTgtLjgwOHptLjI5MiAxLjc1NkM5LjQ0NSA2LjQ1IDguNzQyIDYuNSA4IDYuNWMtMS4xMzMgMC0yLjE3Ni0uMTE0LTIuOTUtLjMwOGE1LjUxNCA1LjUxNCAwIDAgMS0uNDM1LS4xMjdsLjgzOCA4LjAzYy4wMTMuMTIxLjA2LjE4Ni4xMDIuMjE1LjM1Ny4yNDkgMS4xNjguNjkgMi40MzguNjkgMS4yNyAwIDIuMDgxLS40NDEgMi40MzgtLjY5LjA0Mi0uMDI5LjA5LS4wOTQuMTAyLS4yMTVsLjg1Mi04LjAzYTUuNTE3IDUuNTE3IDAgMCAxLS40MzUuMTI3IDguODggOC44OCAwIDAgMS0uODkuMTd6TTQuNDY3IDQuODg0cy4wMDMuMDAyLjAwNS4wMDZsLS4wMDUtLjAwNnptNy4wNjYgMC0uMDA1LjAwNmMuMDAyLS4wMDQuMDA1LS4wMDYuMDA1LS4wMDZ6TTExLjM1NCA1YTMuMTc0IDMuMTc0IDAgMCAwLS42MDQtLjIxbC0uMDk5LjQ0NS4wNTUtLjAxM2MuMjg2LS4wNzIuNTAyLS4xNDkuNjQ4LS4yMjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMmExIDEgMCAwIDEgMS0xaDExYTEgMSAwIDAgMSAxIDF2MWguNUExLjUgMS41IDAgMCAxIDE2IDQuNXY3YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtLjU1YTIuNSAyLjUgMCAwIDEtMi40NSAyaC04QTIuNSAyLjUgMCAwIDEgMSAxMi41VjJ6bTEzIDEwaC41YS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uNS0uNUgxNHY4ek0xMyAySDJ2MTAuNUExLjUgMS41IDAgMCAwIDMuNSAxNGg4YTEuNSAxLjUgMCAwIDAgMS41LTEuNVYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0N1cnJlbmN5Qml0Y29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTN2MS4yNWMwIC4xMzguMTEyLjI1LjI1LjI1aDFhLjI1LjI1IDAgMCAwIC4yNS0uMjVWMTNoLjV2MS4yNWMwIC4xMzguMTEyLjI1LjI1LjI1aDFhLjI1LjI1IDAgMCAwIC4yNS0uMjVWMTNoLjA4NGMxLjk5MiAwIDMuNDE2LTEuMDMzIDMuNDE2LTIuODIgMC0xLjUwMi0xLjAwNy0yLjMyMy0yLjE4Ni0yLjQ0di0uMDg4Yy45Ny0uMjQyIDEuNjgzLS45NzQgMS42ODMtMi4xOUMxMS45OTcgMy45MyAxMC44NDcgMyA5LjA5MiAzSDlWMS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMWEuMjUuMjUgMCAwIDAtLjI1LjI1VjNoLS41NzNWMS43NWEuMjUuMjUgMCAwIDAtLjI1LS4yNUg1Ljc1YS4yNS4yNSAwIDAgMC0uMjUuMjVWM2wtMS45OTguMDExYS4yNS4yNSAwIDAgMC0uMjUuMjV2Ljk4OWMwIC4xMzcuMTEuMjUuMjQ4LjI1bC43NTUtLjAwNWEuNzUuNzUgMCAwIDEgLjc0NS43NXY1LjUwNWEuNzUuNzUgMCAwIDEtLjc1Ljc1bC0uNzQ4LjAxMWEuMjUuMjUgMCAwIDAtLjI1LjI1djFjMCAuMTM4LjExMi4yNS4yNS4yNUw1LjUgMTN6bTEuNDI3LTguNTEzaDEuNzE5Yy45MDYgMCAxLjQzOC40OTggMS40MzggMS4zMTIgMCAuODcxLS41NzUgMS4zNjItMS44NzcgMS4zNjJoLTEuMjhWNC40ODd6bTAgNC4wNTFoMS44NGMxLjEzNyAwIDEuNzU2LjU4IDEuNzU2IDEuNTI0IDAgLjk1My0uNjI2IDEuNDUtMi4xNTggMS40NUg2LjkyN1Y4LjUzOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDdXJyZW5jeURvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEwLjc4MWMuMTQ4IDEuNjY3IDEuNTEzIDIuODUgMy41OTEgMy4wMDNWMTVoMS4wNDN2LTEuMjE2YzIuMjctLjE3OSAzLjY3OC0xLjQzOCAzLjY3OC0zLjMgMC0xLjU5LS45NDctMi41MS0yLjk1Ni0zLjAyOGwtLjcyMi0uMTg3VjMuNDY3YzEuMTIyLjExIDEuODc5LjcxNCAyLjA3IDEuNjE2aDEuNDdjLS4xNjYtMS42LTEuNTQtMi43NDgtMy41NC0yLjg3NVYxSDcuNTkxdjEuMjMzYy0xLjkzOS4yMy0zLjI3IDEuNDcyLTMuMjcgMy4xNTYgMCAxLjQ1NC45NjYgMi40ODMgMi42NjEgMi45MTdsLjYxLjE2MnY0LjAzMWMtMS4xNDktLjE3LTEuOTQtLjgtMi4xMzEtMS43MThINHptMy4zOTEtMy44MzZjLTEuMDQzLS4yNjMtMS42LS44MjUtMS42LTEuNjE2IDAtLjk0NC43MDQtMS42NDEgMS44LTEuODI4djMuNDk1bC0uMi0uMDV6bTEuNTkxIDEuODcyYzEuMjg3LjMyMyAxLjg1Mi44NTkgMS44NTIgMS43NjkgMCAxLjA5Ny0uODI2IDEuODI4LTIuMiAxLjkzOVY4LjczbC4zNDguMDg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0N1cnJlbmN5RXVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDkuNDJoMS4wNjNDNS40IDEyLjMyMyA3LjMxNyAxNCAxMC4zNCAxNGMuNjIyIDAgMS4xNjctLjA2OCAxLjY1OS0uMTg1di0xLjNjLS40ODQuMTE5LTEuMDQ1LjE3LTEuNjU5LjE3LTIuMSAwLTMuNDU1LTEuMTk4LTMuNzc1LTMuMjY0aDQuMDE3di0uOTI4SDYuNDk3di0uOTM2YzAtLjExIDAtLjIxOS4wMDgtLjMyOWg0LjA3OHYtLjkyN0g2LjYxOGMuMzg4LTEuODk4IDEuNzE5LTIuOTg1IDMuNzIzLTIuOTg1LjYxNCAwIDEuMTc1LjA1IDEuNjU5LjE3N1YyLjE5NEE2LjYxNyA2LjYxNyAwIDAgMCAxMC4zNDEgMmMtMi45MjggMC00LjgyIDEuNTY5LTUuMjQ0IDQuM0g0di45MjhoMS4wMXYxLjI2NUg0di45Mjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3VycmVuY3lFeGNoYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDVhNS4wMDIgNS4wMDIgMCAwIDAgNC4wMjcgNC45MDUgNi40NiA2LjQ2IDAgMCAxIC41NDQtMi4wNzNDMy42OTUgNy41MzYgMy4xMzIgNi44NjQgMyA1LjkxaC0uNXYtLjQyNmguNDY2VjUuMDVjMC0uMDQ2IDAtLjA5My4wMDQtLjEzNUgyLjV2LS40MjdoLjUxMUMzLjIzNiAzLjI0IDQuMjEzIDIuNSA1LjY4MSAyLjVjLjMxNiAwIC41OS4wMzEuODE5LjA4NXYuNzMzYTMuNDYgMy40NiAwIDAgMC0uODE1LS4wODJjLS45MTkgMC0xLjUzOC40NjYtMS43MzQgMS4yNTJoMS45MTd2LjQyN2gtMS45OGMtLjAwMy4wNDYtLjAwMy4wOTctLjAwMy4xNDd2LjQyMmgxLjk4M3YuNDI3SDMuOTNjLjExOC42MDIuNDY4IDEuMDMgMS4wMDUgMS4yMjlhNi41IDYuNSAwIDAgMSA0Ljk3LTMuMTEzQTUuMDAyIDUuMDAyIDAgMCAwIDAgNXptMTYgNS41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDB6bS03Ljc1IDEuMzIyYy4wNjkuODM1Ljc0NiAxLjQ4NSAxLjk2NCAxLjU2MlYxNGguNTR2LS42MmMxLjI1OS0uMDg2IDEuOTk2LS43NCAxLjk5Ni0xLjY5IDAtLjg2NS0uNTYzLTEuMzEtMS41Ny0xLjU0bC0uNDI2LS4xVjguMzc0Yy41NC4wNi44ODQuMzQ3Ljk2Ni43NDVoLjk0OGMtLjA3LS44MDQtLjc3OS0xLjQzMy0xLjkxNC0xLjUwMlY3aC0uNTR2LjYyOWMtMS4wNzYuMTAzLTEuODA4LjczMi0xLjgwOCAxLjYyMiAwIC43ODcuNTQ0IDEuMjg4IDEuNDUgMS40OTNsLjM1OC4wODV2MS43OGMtLjU1NC0uMDgtLjkyLS4zNzYtMS4wMDMtLjc4N0g4LjI1em0xLjk2LTEuODk1Yy0uNTMyLS4xMi0uODItLjM2NC0uODItLjczMiAwLS40MS4zMTEtLjcxOS44MjQtLjgwOXYxLjU0aC0uMDA1em0uNjIyIDEuMDQ0Yy42NDUuMTQ1Ljk0My4zOC45NDMuNzk2IDAgLjQ3NC0uMzcuOC0xLjAyLjg2di0xLjY3NGwuMDc3LjAxOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDdXJyZW5jeVBvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOC41ODVoMS45NjljLjExNS40NjUuMTg2LjkzOS4xODYgMS40MyAwIDEuMzg1LS43MzYgMi40OTYtMi4wNzUgMi43NzFWMTRIMTJ2LTEuMjRINi40OTJ2LS4xMjljLjgyNS0uNTI1IDEuMTM1LTEuNDQ2IDEuMTM1LTIuNjk0IDAtLjQ2NS0uMDctLjkxMy0uMTY4LTEuMzUyaDMuMjl2LS45NzJINy4yMmMtLjE4Ni0uNzIzLS4zNzItMS40NTUtLjM3Mi0yLjI0NyAwLTEuMjc0IDEuMDQ3LTIuMDY2IDIuNTgtMi4wNjZhNS4zMiA1LjMyIDAgMCAxIDIuMTAzLjQ2NVYyLjQ1NkE1LjYyOSA1LjYyOSAwIDAgMCA5LjM0OCAyQzYuODY1IDIgNS4zMjIgMy4yOTEgNS4zMjIgNS4zNjZjMCAuNzc1LjE5NSAxLjUxNS4zOTkgMi4yNDdINHYuOTcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0N1cnJlbmN5WWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNzUgMTR2LTIuNjI5aDIuNDQ2di0uOTY3SDguNzV2LTEuMzFoMi40NDV2LS45NjdIOS4xMjhMMTIuNSAyaC0xLjY5OUw4LjA0NyA3LjMyN2gtLjA4Nkw1LjIwNyAySDMuNWwzLjM2MyA2LjEyN0g0Ljc3OHYuOTY4SDcuMjV2MS4zMUg0Ljc4di45NjZoMi40N1YxNGgxLjUwMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNDdXJzb3JGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjA4MiAyLjE4MmEuNS41IDAgMCAxIC4xMDMuNTU3TDguNTI4IDE1LjQ2N2EuNS41IDAgMCAxLS45MTctLjAwN0w1LjU3IDEwLjY5NC44MDMgOC42NTJhLjUuNSAwIDAgMS0uMDA2LS45MTZsMTIuNzI4LTUuNjU3YS41LjUgMCAwIDEgLjU1Ni4xMDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3Vyc29yVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJhLjUuNSAwIDAgMSAuNS0uNWMuODYyIDAgMS41NzMuMjg3IDIuMDYuNTY2LjE3NC4wOTkuMzIxLjE5OC40NC4yODYuMTE5LS4wODguMjY2LS4xODcuNDQtLjI4NkE0LjE2NSA0LjE2NSAwIDAgMSAxMC41IDEuNWEuNS41IDAgMCAxIDAgMWMtLjYzOCAwLTEuMTc3LjIxMy0xLjU2NC40MzRhMy40OSAzLjQ5IDAgMCAwLS40MzYuMjk0VjcuNUg5YS41LjUgMCAwIDEgMCAxaC0uNXY0LjI3MmMuMS4wOC4yNDguMTg3LjQzNi4yOTQuMzg3LjIyMS45MjYuNDM0IDEuNTY0LjQzNGEuNS41IDAgMCAxIDAgMSA0LjE2NSA0LjE2NSAwIDAgMS0yLjA2LS41NjZBNC41NjEgNC41NjEgMCAwIDEgOCAxMy42NWE0LjU2MSA0LjU2MSAwIDAgMS0uNDQuMjg1IDQuMTY1IDQuMTY1IDAgMCAxLTIuMDYuNTY2LjUuNSAwIDAgMSAwLTFjLjYzOCAwIDEuMTc3LS4yMTMgMS41NjQtLjQzNC4xODgtLjEwNy4zMzUtLjIxNC40MzYtLjI5NFY4LjVIN2EuNS41IDAgMCAxIDAtMWguNVYzLjIyOGEzLjQ5IDMuNDkgMCAwIDAtLjQzNi0uMjk0QTMuMTY2IDMuMTY2IDAgMCAwIDUuNSAyLjUuNS41IDAgMCAxIDUgMnptMy4zNTIgMS4zNTV6bS0uNzA0IDkuMjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzQ3Vyc29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjA4MiAyLjE4MmEuNS41IDAgMCAxIC4xMDMuNTU3TDguNTI4IDE1LjQ2N2EuNS41IDAgMCAxLS45MTctLjAwN0w1LjU3IDEwLjY5NC44MDMgOC42NTJhLjUuNSAwIDAgMS0uMDA2LS45MTZsMTIuNzI4LTUuNjU3YS41LjUgMCAwIDEgLjU1Ni4xMDN6TTIuMjUgOC4xODRsMy44OTcgMS42N2EuNS41IDAgMCAxIC4yNjIuMjYzbDEuNjcgMy44OTdMMTIuNzQzIDMuNTIgMi4yNSA4LjE4NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEYXNoQ2lyY2xlRG90dGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGMtLjE3NiAwLS4zNS4wMDYtLjUyMy4wMTdsLjA2NC45OThhNy4xMTcgNy4xMTcgMCAwIDEgLjkxOCAwbC4wNjQtLjk5OEE4LjExMyA4LjExMyAwIDAgMCA4IDB6TTYuNDQuMTUyYy0uMzQ2LjA2OS0uNjg0LjE2LTEuMDEyLjI3bC4zMjEuOTQ4Yy4yODctLjA5OC41ODItLjE3Ny44ODQtLjIzN0w2LjQ0LjE1M3ptNC4xMzIuMjcxYTcuOTQ2IDcuOTQ2IDAgMCAwLTEuMDExLS4yN2wtLjE5NC45OGMuMzAyLjA2LjU5Ny4xNC44ODQuMjM3bC4zMjEtLjk0N3ptMS44NzMuOTI1YTggOCAwIDAgMC0uOTA2LS41MjRsLS40NDMuODk2Yy4yNzUuMTM2LjU0LjI5Ljc5My40NTlsLjU1Ni0uODMxek00LjQ2LjgyNGMtLjMxNC4xNTUtLjYxNi4zMy0uOTA1LjUyNGwuNTU2LjgzYTcuMDcgNy4wNyAwIDAgMSAuNzkzLS40NThMNC40Ni44MjR6TTIuNzI1IDEuOTg1Yy0uMjYyLjIzLS41MS40NzgtLjc0Ljc0bC43NTIuNjZjLjIwMi0uMjMuNDE4LS40NDYuNjQ4LS42NDhsLS42Ni0uNzUyem0xMS4yOS43NGE4LjA1OCA4LjA1OCAwIDAgMC0uNzQtLjc0bC0uNjYuNzUyYy4yMy4yMDIuNDQ3LjQxOC42NDguNjQ4bC43NTItLjY2em0xLjE2MSAxLjczNWE3Ljk4IDcuOTggMCAwIDAtLjUyNC0uOTA1bC0uODMuNTU2Yy4xNjkuMjUzLjMyMi41MTguNDU4Ljc5M2wuODk2LS40NDN6TTEuMzQ4IDMuNTU1Yy0uMTk0LjI4OS0uMzcuNTkxLS41MjQuOTA2bC44OTYuNDQzYy4xMzYtLjI3NS4yOS0uNTQuNDU5LS43OTNsLS44MzEtLjU1NnpNLjQyMyA1LjQyOGE3Ljk0NSA3Ljk0NSAwIDAgMC0uMjcgMS4wMTFsLjk4LjE5NGMuMDYtLjMwMi4xNC0uNTk3LjIzNy0uODg0bC0uOTQ3LS4zMjF6TTE1Ljg0OCA2LjQ0YTcuOTQzIDcuOTQzIDAgMCAwLS4yNy0xLjAxMmwtLjk0OC4zMjFjLjA5OC4yODcuMTc3LjU4Mi4yMzcuODg0bC45OC0uMTk0ek0uMDE3IDcuNDc3YTguMTEzIDguMTEzIDAgMCAwIDAgMS4wNDZsLjk5OC0uMDY0YTcuMTE3IDcuMTE3IDAgMCAxIDAtLjkxOGwtLjk5OC0uMDY0ek0xNiA4YTguMSA4LjEgMCAwIDAtLjAxNy0uNTIzbC0uOTk4LjA2NGE3LjExIDcuMTEgMCAwIDEgMCAuOTE4bC45OTguMDY0QTguMSA4LjEgMCAwIDAgMTYgOHpNLjE1MiA5LjU2Yy4wNjkuMzQ2LjE2LjY4NC4yNyAxLjAxMmwuOTQ4LS4zMjFhNi45NDQgNi45NDQgMCAwIDEtLjIzNy0uODg0bC0uOTguMTk0em0xNS40MjUgMS4wMTJjLjExMi0uMzI4LjIwMi0uNjY2LjI3LTEuMDExbC0uOTgtLjE5NGMtLjA2LjMwMi0uMTQuNTk3LS4yMzcuODg0bC45NDcuMzIxek0uODI0IDExLjU0YTggOCAwIDAgMCAuNTI0LjkwNWwuODMtLjU1NmE2Ljk5OSA2Ljk5OSAwIDAgMS0uNDU4LS43OTNsLS44OTYuNDQzem0xMy44MjguOTA1Yy4xOTQtLjI4OS4zNy0uNTkxLjUyNC0uOTA2bC0uODk2LS40NDNjLS4xMzYuMjc1LS4yOS41NC0uNDU5Ljc5M2wuODMxLjU1NnptLTEyLjY2Ny44M2MuMjMuMjYyLjQ3OC41MS43NC43NGwuNjYtLjc1MmE3LjA0NyA3LjA0NyAwIDAgMS0uNjQ4LS42NDhsLS43NTIuNjZ6bTExLjI5Ljc0Yy4yNjItLjIzLjUxLS40NzguNzQtLjc0bC0uNzUyLS42NmMtLjIwMS4yMy0uNDE4LjQ0Ny0uNjQ4LjY0OGwuNjYuNzUyem0tMS43MzUgMS4xNjFjLjMxNC0uMTU1LjYxNi0uMzMuOTA1LS41MjRsLS41NTYtLjgzYTcuMDcgNy4wNyAwIDAgMS0uNzkzLjQ1OGwuNDQzLjg5NnptLTcuOTg1LS41MjRjLjI4OS4xOTQuNTkxLjM3LjkwNi41MjRsLjQ0My0uODk2YTYuOTk4IDYuOTk4IDAgMCAxLS43OTMtLjQ1OWwtLjU1Ni44MzF6bTEuODczLjkyNWMuMzI4LjExMi42NjYuMjAyIDEuMDExLjI3bC4xOTQtLjk4YTYuOTUzIDYuOTUzIDAgMCAxLS44ODQtLjIzN2wtLjMyMS45NDd6bTQuMTMyLjI3MWE3Ljk0NCA3Ljk0NCAwIDAgMCAxLjAxMi0uMjdsLS4zMjEtLjk0OGE2Ljk1NCA2Ljk1NCAwIDAgMS0uODg0LjIzN2wuMTk0Ljk4em0tMi4wODMuMTM1YTguMSA4LjEgMCAwIDAgMS4wNDYgMGwtLjA2NC0uOTk4YTcuMTEgNy4xMSAwIDAgMS0uOTE4IDBsLS4wNjQuOTk4ek00LjUgNy41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGFzaENpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek00LjUgNy41YS41LjUgMCAwIDAgMCAxaDdhLjUuNSAwIDAgMCAwLTFoLTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGFzaENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOGEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSA0IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGFzaExnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOGExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDEgMSAwIDJIMWExIDEgMCAwIDEtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Rhc2hTcXVhcmVEb3R0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDBjLS4xNjYgMC0uMzMuMDE2LS40ODcuMDQ4bC4xOTQuOThBMS41MSAxLjUxIDAgMCAxIDIuNSAxaC40NThWMEgyLjV6bTIuMjkyIDBoLS45MTd2MWguOTE3VjB6bTEuODMzIDBoLS45MTd2MWguOTE3VjB6bTEuODMzIDBoLS45MTZ2MWguOTE2VjB6bTEuODM0IDBoLS45MTd2MWguOTE3VjB6bTEuODMzIDBoLS45MTd2MWguOTE3VjB6TTEzLjUgMGgtLjQ1OHYxaC40NThjLjEgMCAuMTk5LjAxLjI5My4wMjlsLjE5NC0uOTgxQTIuNTEgMi41MSAwIDAgMCAxMy41IDB6bTIuMDc5IDEuMTFhMi41MTEgMi41MTEgMCAwIDAtLjY5LS42ODlsLS41NTYuODMxYy4xNjQuMTEuMzA1LjI1MS40MTUuNDE1bC44My0uNTU2ek0xLjExLjQyMWEyLjUxMSAyLjUxMSAwIDAgMC0uNjg5LjY5bC44MzEuNTU2Yy4xMS0uMTY0LjI1MS0uMzA1LjQxNS0uNDE1TDEuMTEuNDIyek0xNiAyLjVjMC0uMTY2LS4wMTYtLjMzLS4wNDgtLjQ4N2wtLjk4LjE5NGMuMDE4LjA5NC4wMjguMTkyLjAyOC4yOTN2LjQ1OGgxVjIuNXpNLjA0OCAyLjAxM0EyLjUxIDIuNTEgMCAwIDAgMCAyLjV2LjQ1OGgxVjIuNWMwLS4xLjAxLS4xOTkuMDI5LS4yOTNsLS45ODEtLjE5NHpNMCAzLjg3NXYuOTE3aDF2LS45MTdIMHptMTYgLjkxN3YtLjkxN2gtMXYuOTE3aDF6TTAgNS43MDh2LjkxN2gxdi0uOTE3SDB6bTE2IC45MTd2LS45MTdoLTF2LjkxN2gxek0wIDcuNTQydi45MTZoMXYtLjkxNkgwem0xNSAuOTE2aDF2LS45MTZoLTF2LjkxNnpNMCA5LjM3NXYuOTE3aDF2LS45MTdIMHptMTYgLjkxN3YtLjkxN2gtMXYuOTE3aDF6bS0xNiAuOTE2di45MTdoMXYtLjkxN0gwem0xNiAuOTE3di0uOTE3aC0xdi45MTdoMXptLTE2IC45MTd2LjQ1OGMwIC4xNjYuMDE2LjMzLjA0OC40ODdsLjk4LS4xOTRBMS41MSAxLjUxIDAgMCAxIDEgMTMuNXYtLjQ1OEgwem0xNiAuNDU4di0uNDU4aC0xdi40NThjMCAuMS0uMDEuMTk5LS4wMjkuMjkzbC45ODEuMTk0Yy4wMzItLjE1OC4wNDgtLjMyLjA0OC0uNDg3ek0uNDIxIDE0Ljg5Yy4xODMuMjcyLjQxNy41MDYuNjkuNjg5bC41NTYtLjgzMWExLjUxIDEuNTEgMCAwIDEtLjQxNS0uNDE1bC0uODMuNTU2em0xNC40NjkuNjg5Yy4yNzItLjE4My41MDYtLjQxNy42ODktLjY5bC0uODMxLS41NTZjLS4xMS4xNjQtLjI1MS4zMDUtLjQxNS40MTVsLjU1Ni44M3ptLTEyLjg3Ny4zNzNjLjE1OC4wMzIuMzIuMDQ4LjQ4Ny4wNDhoLjQ1OHYtMUgyLjVjLS4xIDAtLjE5OS0uMDEtLjI5My0uMDI5bC0uMTk0Ljk4MXpNMTMuNSAxNmMuMTY2IDAgLjMzLS4wMTYuNDg3LS4wNDhsLS4xOTQtLjk4QTEuNTEgMS41MSAwIDAgMSAxMy41IDE1aC0uNDU4djFoLjQ1OHptLTkuNjI1IDBoLjkxN3YtMWgtLjkxN3Yxem0xLjgzMyAwaC45MTd2LTFoLS45MTd2MXptMS44MzQgMGguOTE2di0xaC0uOTE2djF6bTEuODMzIDBoLjkxN3YtMWgtLjkxN3Yxem0xLjgzMyAwaC45MTd2LTFoLS45MTd2MXpNNC41IDcuNWEuNS41IDAgMCAwIDAgMWg3YS41LjUgMCAwIDAgMC0xaC03elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Rhc2hTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptMi41IDcuNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Rhc2hTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOGEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdBLjUuNSAwIDAgMSA0IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDhhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03QS41LjUgMCAwIDEgNCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0RpYWdyYW0yRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAzLjVBMS41IDEuNSAwIDAgMSA3LjUgMmgxQTEuNSAxLjUgMCAwIDEgMTAgMy41djFBMS41IDEuNSAwIDAgMSA4LjUgNnYxSDExYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtMSAwVjhoLTV2LjVhLjUuNSAwIDAgMS0xIDB2LTFBLjUuNSAwIDAgMSA1IDdoMi41VjZBMS41IDEuNSAwIDAgMSA2IDQuNXYtMXptLTMgOEExLjUgMS41IDAgMCAxIDQuNSAxMGgxQTEuNSAxLjUgMCAwIDEgNyAxMS41djFBMS41IDEuNSAwIDAgMSA1LjUgMTRoLTFBMS41IDEuNSAwIDAgMSAzIDEyLjV2LTF6bTYgMGExLjUgMS41IDAgMCAxIDEuNS0xLjVoMWExLjUgMS41IDAgMCAxIDEuNSAxLjV2MWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTFBMS41IDEuNSAwIDAgMSA5IDEyLjV2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGlhZ3JhbTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMy41QTEuNSAxLjUgMCAwIDEgNy41IDJoMUExLjUgMS41IDAgMCAxIDEwIDMuNXYxQTEuNSAxLjUgMCAwIDEgOC41IDZ2MUgxMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLTEgMFY4aC01di41YS41LjUgMCAwIDEtMSAwdi0xQS41LjUgMCAwIDEgNSA3aDIuNVY2QTEuNSAxLjUgMCAwIDEgNiA0LjV2LTF6TTguNSA1YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMXpNMyAxMS41QTEuNSAxLjUgMCAwIDEgNC41IDEwaDFBMS41IDEuNSAwIDAgMSA3IDExLjV2MUExLjUgMS41IDAgMCAxIDUuNSAxNGgtMUExLjUgMS41IDAgMCAxIDMgMTIuNXYtMXptMS41LS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXptNC41LjVhMS41IDEuNSAwIDAgMSAxLjUtMS41aDFhMS41IDEuNSAwIDAgMSAxLjUgMS41djFhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xQTEuNSAxLjUgMCAwIDEgOSAxMi41di0xem0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djFhLjUuNSAwIDAgMCAuNS41aDFhLjUuNSAwIDAgMCAuNS0uNXYtMWEuNS41IDAgMCAwLS41LS41aC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0RpYWdyYW0zRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAzLjVBMS41IDEuNSAwIDAgMSA3LjUgMmgxQTEuNSAxLjUgMCAwIDEgMTAgMy41djFBMS41IDEuNSAwIDAgMSA4LjUgNnYxSDE0YS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtMSAwVjhoLTV2LjVhLjUuNSAwIDAgMS0xIDBWOGgtNXYuNWEuNS41IDAgMCAxLTEgMHYtMUEuNS41IDAgMCAxIDIgN2g1LjVWNkExLjUgMS41IDAgMCAxIDYgNC41di0xem0tNiA4QTEuNSAxLjUgMCAwIDEgMS41IDEwaDFBMS41IDEuNSAwIDAgMSA0IDExLjV2MUExLjUgMS41IDAgMCAxIDIuNSAxNGgtMUExLjUgMS41IDAgMCAxIDAgMTIuNXYtMXptNiAwQTEuNSAxLjUgMCAwIDEgNy41IDEwaDFhMS41IDEuNSAwIDAgMSAxLjUgMS41djFBMS41IDEuNSAwIDAgMSA4LjUgMTRoLTFBMS41IDEuNSAwIDAgMSA2IDEyLjV2LTF6bTYgMGExLjUgMS41IDAgMCAxIDEuNS0xLjVoMWExLjUgMS41IDAgMCAxIDEuNSAxLjV2MWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTFhMS41IDEuNSAwIDAgMS0xLjUtMS41di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0RpYWdyYW0zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDMuNUExLjUgMS41IDAgMCAxIDcuNSAyaDFBMS41IDEuNSAwIDAgMSAxMCAzLjV2MUExLjUgMS41IDAgMCAxIDguNSA2djFIMTRhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0xIDBWOGgtNXYuNWEuNS41IDAgMCAxLTEgMFY4aC01di41YS41LjUgMCAwIDEtMSAwdi0xQS41LjUgMCAwIDEgMiA3aDUuNVY2QTEuNSAxLjUgMCAwIDEgNiA0LjV2LTF6TTguNSA1YS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMXpNMCAxMS41QTEuNSAxLjUgMCAwIDEgMS41IDEwaDFBMS41IDEuNSAwIDAgMSA0IDExLjV2MUExLjUgMS41IDAgMCAxIDIuNSAxNGgtMUExLjUgMS41IDAgMCAxIDAgMTIuNXYtMXptMS41LS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXptNC41LjVBMS41IDEuNSAwIDAgMSA3LjUgMTBoMWExLjUgMS41IDAgMCAxIDEuNSAxLjV2MUExLjUgMS41IDAgMCAxIDguNSAxNGgtMUExLjUgMS41IDAgMCAxIDYgMTIuNXYtMXptMS41LS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXptNC41LjVhMS41IDEuNSAwIDAgMSAxLjUtMS41aDFhMS41IDEuNSAwIDAgMSAxLjUgMS41djFhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xYTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtMXptMS41LS41YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaWFtb25kRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi45NS40MzVjLjU4LS41OCAxLjUyLS41OCAyLjEgMGw2LjUxNSA2LjUxNmMuNTguNTguNTggMS41MTkgMCAyLjA5OEw5LjA1IDE1LjU2NWMtLjU4LjU4LTEuNTE5LjU4LTIuMDk4IDBMLjQzNSA5LjA1YTEuNDgyIDEuNDgyIDAgMCAxIDAtMi4wOThMNi45NS40MzV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGlhbW9uZEhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wNS40MzVjLS41OC0uNTgtMS41Mi0uNTgtMi4xIDBMLjQzNiA2Ljk1Yy0uNTguNTgtLjU4IDEuNTE5IDAgMi4wOThsNi41MTYgNi41MTZjLjU4LjU4IDEuNTE5LjU4IDIuMDk4IDBsNi41MTYtNi41MTZjLjU4LS41OC41OC0xLjUxOSAwLTIuMDk4TDkuMDUuNDM1ek04IC45ODljLjEyNyAwIC4yNTMuMDQ5LjM1LjE0NWw2LjUxNiA2LjUxNmEuNDk1LjQ5NSAwIDAgMSAwIC43TDguMzUgMTQuODY2YS40OTMuNDkzIDAgMCAxLS4zNS4xNDVWLjk4OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaWFtb25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOTUuNDM1Yy41OC0uNTggMS41Mi0uNTggMi4xIDBsNi41MTUgNi41MTZjLjU4LjU4LjU4IDEuNTE5IDAgMi4wOThMOS4wNSAxNS41NjVjLS41OC41OC0xLjUxOS41OC0yLjA5OCAwTC40MzUgOS4wNWExLjQ4MiAxLjQ4MiAwIDAgMSAwLTIuMDk4TDYuOTUuNDM1em0xLjQuN2EuNDk1LjQ5NSAwIDAgMC0uNyAwTDEuMTM0IDcuNjVhLjQ5NS40OTUgMCAwIDAgMCAuN2w2LjUxNiA2LjUxNmEuNDk1LjQ5NSAwIDAgMCAuNyAwbDYuNTE2LTYuNTE2YS40OTUuNDk1IDAgMCAwIDAtLjdMOC4zNSAxLjEzNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaWNlMUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAwYTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjNhMyAzIDAgMCAwLTMtM0gzem01IDkuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaWNlMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCI4XCIsXCJyXCI6XCIxLjVcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDEwek0zIDBhMyAzIDAgMCAwLTMgM3YxMGEzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWM2EzIDMgMCAwIDAtMy0zSDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgM2EzIDMgMCAwIDEgMy0zaDEwYTMgMyAwIDAgMSAzIDN2MTBhMyAzIDAgMCAxLTMgM0gzYTMgMyAwIDAgMS0zLTNWM3ptNS41IDFhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDB6bTYuNSA5LjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMWEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxMHpNMyAwYTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjNhMyAzIDAgMCAwLTMtM0gzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA0YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem04IDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMi41IDRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTggOGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNOCA5LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMWEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxMHpNMyAwYTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMy0zVjNhMyAzIDAgMCAwLTMtM0gzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA0YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem04IDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bS00LTRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMSA1LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTggMGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptMS41IDYuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNNCAxMy41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0RpY2U0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDFhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMTB6TTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgNGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptOCAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem0wIDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bS04IDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMi41IDRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTggMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNMTIgMTMuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pNNS41IDEyYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwek04IDkuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaWNlNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWM2EyIDIgMCAwIDEgMi0yaDEwek0zIDBhMyAzIDAgMCAwLTMgM3YxMGEzIDMgMCAwIDAgMyAzaDEwYTMgMyAwIDAgMCAzLTNWM2EzIDMgMCAwIDAtMy0zSDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTggMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptMCA4YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem0tOCAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem00LTRhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGljZTZGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3ptMSA1LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTggMGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptMS41IDYuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNMTIgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzek01LjUgMTJhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6TTQgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0RpY2U2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDFhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJoMTB6TTMgMGEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTBhMyAzIDAgMCAwIDMtM1YzYTMgMyAwIDAgMC0zLTNIM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgNGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptOCAwYTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem0wIDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTAtNGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptLTggNGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptMC00YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Rpc2NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHptLTYgMGEyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDB6TTQgOGE0IDQgMCAwIDEgNC00IC41LjUgMCAwIDAgMC0xIDUgNSAwIDAgMC01IDUgLjUuNSAwIDAgMCAxIDB6bTkgMGEuNS41IDAgMSAwLTEgMCA0IDQgMCAwIDEtNCA0IC41LjUgMCAwIDAgMCAxIDUgNSAwIDAgMCA1LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRGlzYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwek04IDRhNCA0IDAgMCAwLTQgNCAuNS41IDAgMCAxLTEgMCA1IDUgMCAwIDEgNS01IC41LjUgMCAwIDEgMCAxem00LjUgMy41YS41LjUgMCAwIDEgLjUuNSA1IDUgMCAwIDEtNSA1IC41LjUgMCAwIDEgMC0xIDQgNCAwIDAgMCA0LTQgLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaXNjb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTUyIDYuNzEyYy0uNDU2IDAtLjgxNi40LS44MTYuODg4cy4zNjguODg4LjgxNi44ODhjLjQ1NiAwIC44MTYtLjQuODE2LS44ODguMDA4LS40ODgtLjM2LS44ODgtLjgxNi0uODg4em0yLjkyIDBjLS40NTYgMC0uODE2LjQtLjgxNi44ODhzLjM2OC44ODguODE2Ljg4OGMuNDU2IDAgLjgxNi0uNC44MTYtLjg4OHMtLjM2LS44ODgtLjgxNi0uODg4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjM2IDBIMi42NEMxLjczNiAwIDEgLjczNiAxIDEuNjQ4djEwLjgxNmMwIC45MTIuNzM2IDEuNjQ4IDEuNjQgMS42NDhoOS4wNzJsLS40MjQtMS40OCAxLjAyNC45NTIuOTY4Ljg5NkwxNSAxNlYxLjY0OEMxNSAuNzM2IDE0LjI2NCAwIDEzLjM2IDB6bS0zLjA4OCAxMC40NDhzLS4yODgtLjM0NC0uNTI4LS42NDhjMS4wNDgtLjI5NiAxLjQ0OC0uOTUyIDEuNDQ4LS45NTItLjMyOC4yMTYtLjY0LjM2OC0uOTIuNDcyLS40LjE2OC0uNzg0LjI4LTEuMTYuMzQ0YTUuNjA0IDUuNjA0IDAgMCAxLTIuMDcyLS4wMDggNi43MTYgNi43MTYgMCAwIDEtMS4xNzYtLjM0NCA0LjY4OCA0LjY4OCAwIDAgMS0uNTg0LS4yNzJjLS4wMjQtLjAxNi0uMDQ4LS4wMjQtLjA3Mi0uMDQtLjAxNi0uMDA4LS4wMjQtLjAxNi0uMDMyLS4wMjQtLjE0NC0uMDgtLjIyNC0uMTM2LS4yMjQtLjEzNnMuMzg0LjY0IDEuNC45NDRjLS4yNC4zMDQtLjUzNi42NjQtLjUzNi42NjQtMS43NjgtLjA1Ni0yLjQ0LTEuMjE2LTIuNDQtMS4yMTYgMC0yLjU3NiAxLjE1Mi00LjY2NCAxLjE1Mi00LjY2NCAxLjE1Mi0uODY0IDIuMjQ4LS44NCAyLjI0OC0uODRsLjA4LjA5NmMtMS40NC40MTYtMi4xMDQgMS4wNDgtMi4xMDQgMS4wNDhzLjE3Ni0uMDk2LjQ3Mi0uMjMyYy44NTYtLjM3NiAxLjUzNi0uNDggMS44MTYtLjUwNC4wNDgtLjAwOC4wODgtLjAxNi4xMzYtLjAxNmE2LjUyMSA2LjUyMSAwIDAgMSA0LjAyNC43NTJzLS42MzItLjYtMS45OTItMS4wMTZsLjExMi0uMTI4czEuMDk2LS4wMjQgMi4yNDguODRjMCAwIDEuMTUyIDIuMDg4IDEuMTUyIDQuNjY0IDAgMC0uNjggMS4xNi0yLjQ0OCAxLjIxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaXNwbGF5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEyYzAgLjY2Ny0uMDgzIDEuMTY3LS4yNSAxLjVINWEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xaC0uNzVjLS4xNjctLjMzMy0uMjUtLjgzMy0uMjUtMS41aDRjMiAwIDItMiAyLTJWNGMwLTItMi0yLTItMkgyQzAgMiAwIDQgMCA0djZjMCAyIDIgMiAyIDJoNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaXNwbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNHMwLTIgMi0yaDEyczIgMCAyIDJ2NnMwIDItMiAyaC00YzAgLjY2Ny4wODMgMS4xNjcuMjUgMS41SDExYS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMSAwLTFoLjc1Yy4xNjctLjMzMy4yNS0uODMzLjI1LTEuNUgycy0yIDAtMi0yVjR6bTEuMzk4LS44NTVhLjc1OC43NTggMCAwIDAtLjI1NC4zMDJBMS40NiAxLjQ2IDAgMCAwIDEgNC4wMVYxMGMwIC4zMjUuMDc4LjUwMi4xNDUuNjAyLjA3LjEwNS4xNy4xODguMzAyLjI1NGExLjQ2NCAxLjQ2NCAwIDAgMCAuNTM4LjE0M0wyLjAxIDExSDE0Yy4zMjUgMCAuNTAyLS4wNzguNjAyLS4xNDVhLjc1OC43NTggMCAwIDAgLjI1NC0uMzAyIDEuNDY0IDEuNDY0IDAgMCAwIC4xNDMtLjUzOEwxNSA5Ljk5VjRjMC0uMzI1LS4wNzgtLjUwMi0uMTQ1LS42MDJhLjc1Ny43NTcgMCAwIDAtLjMwMi0uMjU0QTEuNDYgMS40NiAwIDAgMCAxMy45OSAzSDJjLS4zMjUgMC0uNTAyLjA3OC0uNjAyLjE0NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaXN0cmlidXRlSG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuNSAxYS41LjUgMCAwIDAtLjUuNXYxM2EuNS41IDAgMCAwIDEgMHYtMTNhLjUuNSAwIDAgMC0uNS0uNXptLTEzIDBhLjUuNSAwIDAgMC0uNS41djEzYS41LjUgMCAwIDAgMSAwdi0xM2EuNS41IDAgMCAwLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEaXN0cmlidXRlVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgMS41YS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIDAtMWgtMTNhLjUuNSAwIDAgMC0uNS41em0wIDEzYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIDAtMWgtMTNhLjUuNSAwIDAgMC0uNS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgN2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Rvb3JDbG9zZWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFhMSAxIDAgMCAxIDEgMXYxM2gxLjVhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEgMC0xSDNWMmExIDEgMCAwIDEgMS0xaDh6bS0yIDlhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Rvb3JDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjEzaDEuNWEuNS41IDAgMCAxIDAgMWgtMTNhLjUuNSAwIDAgMSAwLTFIM1Yyem0xIDEzaDhWMkg0djEzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOWExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRG9vck9wZW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAxNWEuNS41IDAgMCAwIDAgMWgxM2EuNS41IDAgMCAwIDAtMUgxM1YyLjVBMS41IDEuNSAwIDAgMCAxMS41IDFIMTFWLjVhLjUuNSAwIDAgMC0uNTctLjQ5NWwtNyAxQS41LjUgMCAwIDAgMyAxLjVWMTVIMS41ek0xMSAyaC41YS41LjUgMCAwIDEgLjUuNVYxNWgtMVYyem0tMi41IDhjLS4yNzYgMC0uNS0uNDQ4LS41LTFzLjIyNC0xIC41LTEgLjUuNDQ4LjUgMS0uMjI0IDEtLjUgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEb29yT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTBjLS4yNzYgMC0uNS0uNDQ4LS41LTFzLjIyNC0xIC41LTEgLjUuNDQ4LjUgMS0uMjI0IDEtLjUgMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44MjguMTIyQS41LjUgMCAwIDEgMTEgLjVWMWguNUExLjUgMS41IDAgMCAxIDEzIDIuNVYxNWgxLjVhLjUuNSAwIDAgMSAwIDFoLTEzYS41LjUgMCAwIDEgMC0xSDNWMS41YS41LjUgMCAwIDEgLjQzLS40OTVsNy0xYS41LjUgMCAwIDEgLjM5OC4xMTd6TTExLjUgMkgxMXYxM2gxVjIuNWEuNS41IDAgMCAwLS41LS41ek00IDEuOTM0VjE1aDZWMS4wNzdsLTYgLjg1N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5LjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjUgOS45YS41LjUgMCAwIDEgLjUuNXYyLjVhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0yLjVhLjUuNSAwIDAgMSAxIDB2Mi41YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0ydi0yLjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjY0NiAxMS44NTRhLjUuNSAwIDAgMCAuNzA4IDBsMy0zYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSAxMC4yOTNWMS41YS41LjUgMCAwIDAtMSAwdjguNzkzTDUuMzU0IDguMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMyAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0RyaWJiYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBDMy41ODQgMCAwIDMuNTg0IDAgOHMzLjU4NCA4IDggOGM0LjQwOCAwIDgtMy41ODQgOC04cy0zLjU5Mi04LTgtOHptNS4yODQgMy42ODhhNi44MDIgNi44MDIgMCAwIDEgMS41NDUgNC4yNTFjLS4yMjYtLjA0My0yLjQ4Mi0uNTAzLTQuNzU1LS4yMTctLjA1Mi0uMTEyLS4wOTYtLjIzNC0uMTQ4LS4zNTUtLjEzOS0uMzMtLjI5NS0uNjY4LS40NTEtLjk5IDIuNTE2LTEuMDIzIDMuNjYyLTIuNDk4IDMuODEtMi42OXpNOCAxLjE4YzEuNzM1IDAgMy4zMjMuNjUgNC41MyAxLjcxOC0uMTIyLjE3NC0xLjE1NSAxLjU1My0zLjU4NCAyLjQ2NC0xLjEyLTIuMDU2LTIuMzYtMy43NC0yLjU1MS00QTYuOTUgNi45NSAwIDAgMSA4IDEuMTh6bS0yLjkwNy42NDJBNDMuMTIzIDQzLjEyMyAwIDAgMSA3LjYyNyA1Ljc3Yy0zLjE5My44NS02LjAxMy44MzMtNi4zMTcuODMzYTYuODY1IDYuODY1IDAgMCAxIDMuNzgzLTQuNzh6TTEuMTYzIDguMDFWNy44Yy4yOTUuMDEgMy42MS4wNTMgNy4wMi0uOTcxLjE5OS4zODEuMzgxLjc3Mi41NTUgMS4xNjJsLS4yNy4wNzhjLTMuNTIyIDEuMTM3LTUuMzk2IDQuMjQzLTUuNTUzIDQuNTA0YTYuODE3IDYuODE3IDAgMCAxLTEuNzUyLTQuNTY0ek04IDE0LjgzN2E2Ljc4NSA2Ljc4NSAwIDAgMS00LjE5LTEuNDRjLjEyLS4yNTIgMS41MDktMi45MjQgNS4zNjEtNC4yNjkuMDE4LS4wMDkuMDI2LS4wMDkuMDQ0LS4wMTdhMjguMjQ2IDI4LjI0NiAwIDAgMSAxLjQ1NyA1LjE4QTYuNzIyIDYuNzIyIDAgMCAxIDggMTQuODM3em0zLjgxLTEuMTcxYy0uMDctLjQxNy0uNDM1LTIuNDEyLTEuMzI4LTQuODY4IDIuMTQzLS4zMzggNC4wMTcuMjE3IDQuMjUxLjI5NWE2Ljc3NCA2Ljc3NCAwIDAgMS0yLjkyNCA0LjU3M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEcm9wbGV0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAxNmE2IDYgMCAwIDAgNi02YzAtMS42NTUtMS4xMjItMi45MDQtMi40MzItNC4zNjJDMTAuMjU0IDQuMTc2IDguNzUgMi41MDMgOCAwYzAgMC02IDUuNjg2LTYgMTBhNiA2IDAgMCAwIDYgNnpNNi42NDYgNC42NDZjLS4zNzYuMzc3LTEuMjcyIDEuNDg5LTIuMDkzIDMuMTNsLjg5NC40NDhjLjc4LTEuNTU5IDEuNjE2LTIuNTggMS45MDctMi44N2wtLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Ryb3BsZXRIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjIxLjhDNy42OS4yOTUgOCAwIDggMGMuMTA5LjM2My4yMzQuNzA4LjM3MSAxLjAzOC44MTIgMS45NDYgMi4wNzMgMy4zNSAzLjE5NyA0LjZDMTIuODc4IDcuMDk2IDE0IDguMzQ1IDE0IDEwYTYgNiAwIDAgMS0xMiAwQzIgNi42NjggNS41OCAyLjUxNyA3LjIxLjh6bS40MTMgMS4wMjFBMzEuMjUgMzEuMjUgMCAwIDAgNS43OTQgMy45OWMtLjcyNi45NS0xLjQzNiAyLjAwOC0xLjk2IDMuMDdDMy4zMDQgOC4xMzMgMyA5LjEzOCAzIDEwYzAgMCAyLjUgMS41IDUgLjVzNS0uNSA1LS41YzAtMS4yMDEtLjc5Ni0yLjE1Ny0yLjE4MS0zLjdsLS4wMy0uMDMyQzkuNzUgNS4xMSA4LjUgMy43MiA3LjYyMyAxLjgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00LjU1MyA3Ljc3NmMuODItMS42NDEgMS43MTctMi43NTMgMi4wOTMtMy4xM2wuNzA4LjcwOGMtLjI5LjI5LTEuMTI4IDEuMzExLTEuOTA3IDIuODdsLS44OTQtLjQ0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNEcm9wbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjIxLjhDNy42OS4yOTUgOCAwIDggMGMuMTA5LjM2My4yMzQuNzA4LjM3MSAxLjAzOC44MTIgMS45NDYgMi4wNzMgMy4zNSAzLjE5NyA0LjZDMTIuODc4IDcuMDk2IDE0IDguMzQ1IDE0IDEwYTYgNiAwIDAgMS0xMiAwQzIgNi42NjggNS41OCAyLjUxNyA3LjIxLjh6bS40MTMgMS4wMjFBMzEuMjUgMzEuMjUgMCAwIDAgNS43OTQgMy45OWMtLjcyNi45NS0xLjQzNiAyLjAwOC0xLjk2IDMuMDdDMy4zMDQgOC4xMzMgMyA5LjEzOCAzIDEwYTUgNSAwIDAgMCAxMCAwYzAtMS4yMDEtLjc5Ni0yLjE1Ny0yLjE4MS0zLjdsLS4wMy0uMDMyQzkuNzUgNS4xMSA4LjUgMy43MiA3LjYyMyAxLjgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00LjU1MyA3Ljc3NmMuODItMS42NDEgMS43MTctMi43NTMgMi4wOTMtMy4xM2wuNzA4LjcwOGMtLjI5LjI5LTEuMTI4IDEuMzExLTEuOTA3IDIuODdsLS44OTQtLjQ0OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFYXJidWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02LjgyNSA0LjEzOGMuNTk2IDIuMTQxLS4zNiAzLjU5My0yLjM4OSA0LjExN2E0LjQzMiA0LjQzMiAwIDAgMS0yLjAxOC4wNTRjLS4wNDgtLjAxLjkgMi43NzggMS41MjIgNC42MWwuNDEgMS4yMDVhLjUyLjUyIDAgMCAxLS4zNDYuNjU5bC0uNTkzLjE5YS41NDguNTQ4IDAgMCAxLS42OS0uMzRMLjE4NCA2Ljk5Yy0uNjk2LTIuMTM3LjY2Mi00LjMwOSAyLjU2NC00LjggMi4wMjktLjUyMyAzLjQwMiAwIDQuMDc2IDEuOTQ4em0tLjg2OCAyLjIyMWMuNDMtLjExMi41NjEtLjk5My4yOTItMS45NjktLjI2OS0uOTc1LS44MzYtMS42NzUtMS4yNjYtMS41NjMtLjQzLjExMi0uNTYxLjk5NC0uMjkyIDEuOTY5LjI2OS45NzUuODM2IDEuNjc1IDEuMjY2IDEuNTYzem0zLjIxOC0yLjIyMWMtLjU5NiAyLjE0MS4zNiAzLjU5MyAyLjM4OSA0LjExN2E0LjQzNCA0LjQzNCAwIDAgMCAyLjAxOC4wNTRjLjA0OC0uMDEtLjkgMi43NzgtMS41MjIgNC42MWwtLjQxIDEuMjA1YS41Mi41MiAwIDAgMCAuMzQ2LjY1OWwuNTkzLjE5Yy4yODkuMDkyLjYtLjA2LjY5LS4zNGwyLjUzNi03LjY0M2MuNjk2LTIuMTM3LS42NjItNC4zMDktMi41NjQtNC44LTIuMDI5LS41MjMtMy40MDIgMC00LjA3NiAxLjk0OHptLjg2OCAyLjIyMWMtLjQzLS4xMTItLjU2MS0uOTkzLS4yOTItMS45NjkuMjY5LS45NzUuODM2LTEuNjc1IDEuMjY2LTEuNTYzLjQzLjExMi41NjEuOTk0LjI5MiAxLjk2OS0uMjY5Ljk3NS0uODM2IDEuNjc1LTEuMjY2IDEuNTYzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vhc2VsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQ3My4zMzdhLjUuNSAwIDAgMC0uOTQ2IDBMNi45NTQgMkgyYTEgMSAwIDAgMC0xIDF2N2ExIDEgMCAwIDAgMSAxaDEuODVsLTEuMzIzIDMuODM3YS41LjUgMCAxIDAgLjk0Ni4zMjZMNC45MDggMTFINy41djIuNWEuNS41IDAgMCAwIDEgMFYxMWgyLjU5MmwxLjQzNSA0LjE2M2EuNS41IDAgMCAwIC45NDYtLjMyNkwxMi4xNSAxMUgxNGExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUg5LjA0Nkw4LjQ3My4zMzd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRWFzZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYS41LjUgMCAwIDEgLjQ3My4zMzdMOS4wNDYgMkgxNGExIDEgMCAwIDEgMSAxdjdhMSAxIDAgMCAxLTEgMWgtMS44NWwxLjMyMyAzLjgzN2EuNS41IDAgMSAxLS45NDYuMzI2TDExLjA5MiAxMUg4LjV2M2EuNS41IDAgMCAxLTEgMHYtM0g0LjkwOGwtMS40MzUgNC4xNjNhLjUuNSAwIDEgMS0uOTQ2LS4zMjZMMy44NSAxMUgyYTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xaDQuOTU0TDcuNTI3LjMzN0EuNS41IDAgMCAxIDggMHpNMiAzdjdoMTJWM0gyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0VnZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBhNiA2IDAgMCAxLTEyIDBDMiA1LjY4NiA1IDAgOCAwczYgNS42ODYgNiAxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFZ2dGcmllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45OTcgNS4xN2E1IDUgMCAwIDAtOC4xMDEtNC4wOUE1IDUgMCAwIDAgMS4yOCA5LjM0MmE1IDUgMCAwIDAgOC4zMzYgNS4xMDkgMy41IDMuNSAwIDAgMCA1LjIwMS00LjA2NSAzLjAwMSAzLjAwMSAwIDAgMC0uODIyLTUuMjE2em0tMS0uMDM0YTEgMSAwIDAgMCAuNjY4Ljk3NyAyLjAwMSAyLjAwMSAwIDAgMSAuNTQ3IDMuNDc4IDEgMSAwIDAgMC0uMzQxIDEuMTEzIDIuNSAyLjUgMCAwIDEtMy43MTUgMi45MDUgMSAxIDAgMCAwLTEuMjYyLjE1MiA0IDQgMCAwIDEtNi42Ny00LjA4NyAxIDEgMCAwIDAtLjItMSA0IDQgMCAwIDEgMy42OTMtNi42MSAxIDEgMCAwIDAgLjgtLjIgNCA0IDAgMCAxIDYuNDggMy4yNzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRWdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVhNSA1IDAgMCAxLTUtNWMwLTEuOTU2LjY5LTQuMjg2IDEuNzQyLTYuMTIuNTI0LS45MTMgMS4xMTItMS42NTggMS43MDQtMi4xNjRDNy4wNDQgMS4yMDYgNy41NzIgMSA4IDFjLjQyOCAwIC45NTYuMjA2IDEuNTU0LjcxNi41OTIuNTA2IDEuMTggMS4yNTEgMS43MDQgMi4xNjRDMTIuMzEgNS43MTQgMTMgOC4wNDQgMTMgMTBhNSA1IDAgMCAxLTUgNXptMCAxYTYgNiAwIDAgMCA2LTZjMC00LjMxNC0zLTEwLTYtMTBTMiA1LjY4NiAyIDEwYTYgNiAwIDAgMCA2IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRWplY3RGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjcgMS4wNDdhMSAxIDAgMCAxIDEuNDYgMGw2LjM0NSA2Ljc3Yy42LjYzOC4xNDYgMS42ODMtLjczIDEuNjgzSDEuNjU2Qy43OCA5LjUuMzI2IDguNDU1LjkyNiA3LjgxNkw3LjI3IDEuMDQ3ek0uNSAxMS41YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFoLTEzYTEgMSAwIDAgMS0xLTF2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRWplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yNyAxLjA0N2ExIDEgMCAwIDEgMS40NiAwbDYuMzQ1IDYuNzdjLjYuNjM4LjE0NiAxLjY4My0uNzMgMS42ODNIMS42NTZDLjc4IDkuNS4zMjYgOC40NTUuOTI2IDcuODE2TDcuMjcgMS4wNDd6TTE0LjM0NiA4LjUgOCAxLjczMSAxLjY1NCA4LjVoMTIuNjkyek0uNSAxMS41YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFoLTEzYTEgMSAwIDAgMS0xLTF2LTF6bTE0IDBoLTEzdjFoMTN2LTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW1vamlBbmdyeUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2ek00LjA1MyA0LjI3NmEuNS41IDAgMCAxIC42Ny0uMjIzbDIgMWEuNS41IDAgMCAxIC4xNjYuNzZjLjA3MS4yMDYuMTExLjQ0LjExMS42ODdDNyA3LjMyOCA2LjU1MiA4IDYgOHMtMS0uNjcyLTEtMS41YzAtLjQwOC4xMDktLjc3OC4yODUtMS4wNDlsLTEuMDA5LS41MDRhLjUuNSAwIDAgMS0uMjIzLS42N3ptLjIzMiA4LjE1N2EuNS41IDAgMCAxLS4xODMtLjY4M0E0LjQ5OCA0LjQ5OCAwIDAgMSA4IDkuNWE0LjUgNC41IDAgMCAxIDMuODk4IDIuMjUuNS41IDAgMSAxLS44NjYuNUEzLjQ5OCAzLjQ5OCAwIDAgMCA4IDEwLjVhMy40OTggMy40OTggMCAwIDAtMy4wMzIgMS43NS41LjUgMCAwIDEtLjY4My4xODN6TTEwIDhjLS41NTIgMC0xLS42NzItMS0xLjUgMC0uMjQ3LjA0LS40OC4xMS0uNjg2YS41MDIuNTAyIDAgMCAxIC4xNjYtLjc2MWwyLTFhLjUuNSAwIDEgMSAuNDQ4Ljg5NGwtMS4wMDkuNTA0Yy4xNzYuMjcuMjg1LjY0LjI4NSAxLjA0OSAwIC44MjgtLjQ0OCAxLjUtMSAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW1vamlBbmdyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjg1IDEyLjQzM2EuNS41IDAgMCAwIC42ODMtLjE4M0EzLjQ5OCAzLjQ5OCAwIDAgMSA4IDEwLjVjMS4yOTUgMCAyLjQyNi43MDMgMy4wMzIgMS43NWEuNS41IDAgMCAwIC44NjYtLjVBNC40OTggNC40OTggMCAwIDAgOCA5LjVhNC41IDQuNSAwIDAgMC0zLjg5OCAyLjI1LjUuNSAwIDAgMCAuMTgzLjY4M3ptNi45OTEtOC4zOGEuNS41IDAgMSAxIC40NDguODk0bC0xLjAwOS41MDRjLjE3Ni4yNy4yODUuNjQuMjg1IDEuMDQ5IDAgLjgyOC0uNDQ4IDEuNS0xIDEuNXMtMS0uNjcyLTEtMS41YzAtLjI0Ny4wNC0uNDguMTEtLjY4NmEuNTAyLjUwMiAwIDAgMSAuMTY2LS43NjFsMi0xem0tNi41NTIgMGEuNS41IDAgMCAwLS40NDguODk0bDEuMDA5LjUwNEExLjk0IDEuOTQgMCAwIDAgNSA2LjVDNSA3LjMyOCA1LjQ0OCA4IDYgOHMxLS42NzIgMS0xLjVjMC0uMjQ3LS4wNC0uNDgtLjExLS42ODZhLjUwMi41MDIgMCAwIDAtLjE2Ni0uNzYxbC0yLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW1vamlEaXp6eUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2ek00LjE0NiA1LjE0NmEuNS41IDAgMCAxIC43MDggMGwuNjQ2LjY0Ny42NDYtLjY0N2EuNS41IDAgMSAxIC43MDguNzA4bC0uNjQ3LjY0Ni42NDcuNjQ2YS41LjUgMCAxIDEtLjcwOC43MDhMNS41IDcuMjA3bC0uNjQ2LjY0N2EuNS41IDAgMSAxLS43MDgtLjcwOGwuNjQ3LS42NDYtLjY0Ny0uNjQ2YS41LjUgMCAwIDEgMC0uNzA4em01IDBhLjUuNSAwIDAgMSAuNzA4IDBsLjY0Ni42NDcuNjQ2LS42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtLjY0Ny42NDYuNjQ3LjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC0uNjQ2LS42NDctLjY0Ni42NDdhLjUuNSAwIDEgMS0uNzA4LS43MDhsLjY0Ny0uNjQ2LS42NDctLjY0NmEuNS41IDAgMCAxIDAtLjcwOHpNOCAxM2EyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW1vamlEaXp6eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMTQ2IDUuMTQ2YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ3LjY0Ni0uNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLS42NDcuNjQ2LjY0Ny42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtLjY0Ni0uNjQ3LS42NDYuNjQ3YS41LjUgMCAxIDEtLjcwOC0uNzA4bC42NDctLjY0Ni0uNjQ3LS42NDZhLjUuNSAwIDAgMSAwLS43MDh6bS01IDBhLjUuNSAwIDAgMSAuNzA4IDBsLjY0Ni42NDcuNjQ2LS42NDdhLjUuNSAwIDEgMSAuNzA4LjcwOGwtLjY0Ny42NDYuNjQ3LjY0NmEuNS41IDAgMSAxLS43MDguNzA4TDUuNSA3LjIwN2wtLjY0Ni42NDdhLjUuNSAwIDEgMS0uNzA4LS43MDhsLjY0Ny0uNjQ2LS42NDctLjY0NmEuNS41IDAgMCAxIDAtLjcwOHpNMTAgMTFhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppRXhwcmVzc2lvbmxlc3NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpNNC41IDZoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMXptNSAwaDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTF6bS01IDRoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaUV4cHJlc3Npb25sZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVBNyA3IDAgMSAxIDggMWE3IDcgMCAwIDEgMCAxNHptMCAxQTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMC41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6bTUgMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaUZyb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTcgNi41QzcgNy4zMjggNi41NTIgOCA2IDhzLTEtLjY3Mi0xLTEuNVM1LjQ0OCA1IDYgNXMxIC42NzIgMSAxLjV6bS0yLjcxNSA1LjkzM2EuNS41IDAgMCAxLS4xODMtLjY4M0E0LjQ5OCA0LjQ5OCAwIDAgMSA4IDkuNWE0LjUgNC41IDAgMCAxIDMuODk4IDIuMjUuNS41IDAgMCAxLS44NjYuNUEzLjQ5OCAzLjQ5OCAwIDAgMCA4IDEwLjVhMy40OTggMy40OTggMCAwIDAtMy4wMzIgMS43NS41LjUgMCAwIDEtLjY4My4xODN6TTEwIDhjLS41NTIgMC0xLS42NzItMS0xLjVTOS40NDggNSAxMCA1czEgLjY3MiAxIDEuNVMxMC41NTIgOCAxMCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjI4NSAxMi40MzNhLjUuNSAwIDAgMCAuNjgzLS4xODNBMy40OTggMy40OTggMCAwIDEgOCAxMC41YzEuMjk1IDAgMi40MjYuNzAzIDMuMDMyIDEuNzVhLjUuNSAwIDAgMCAuODY2LS41QTQuNDk4IDQuNDk4IDAgMCAwIDggOS41YTQuNSA0LjUgMCAwIDAtMy44OTggMi4yNS41LjUgMCAwIDAgLjE4My42ODN6TTcgNi41QzcgNy4zMjggNi41NTIgOCA2IDhzLTEtLjY3Mi0xLTEuNVM1LjQ0OCA1IDYgNXMxIC42NzIgMSAxLjV6bTQgMGMwIC44MjgtLjQ0OCAxLjUtMSAxLjVzLTEtLjY3Mi0xLTEuNVM5LjQ0OCA1IDEwIDVzMSAuNjcyIDEgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppSGVhcnRFeWVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhOCA4IDAgMSAwIDAgMTZBOCA4IDAgMCAwIDggMHpNNC43NTYgNC41NjZjLjc2My0xLjQyNCA0LjAyLS4xMi45NTIgMy40MzQtNC40OTYtMS41OTYtMi4zNS00LjI5OC0uOTUyLTMuNDM0em02LjU1OSA1LjQ0OGEuNS41IDAgMCAxIC41NDguNzM2QTQuNDk4IDQuNDk4IDAgMCAxIDcuOTY1IDEzYTQuNDk4IDQuNDk4IDAgMCAxLTMuODk4LTIuMjUuNS41IDAgMCAxIC41NDgtLjczNmguMDA1bC4wMTcuMDA1LjA2Ny4wMTUuMjUyLjA1NWMuMjE1LjA0Ni41MTUuMTA4Ljg1Ny4xNjkuNjkzLjEyNCAxLjUyMi4yNDIgMi4xNTIuMjQyLjYzIDAgMS40Ni0uMTE4IDIuMTUyLS4yNDJhMjYuNTggMjYuNTggMCAwIDAgMS4xMDktLjIyNGwuMDY3LS4wMTUuMDE3LS4wMDQuMDA1LS4wMDJ6bS0uMDctNS40NDhjMS4zOTctLjg2NCAzLjU0MyAxLjgzOC0uOTUzIDMuNDM0LTMuMDY3LTMuNTU0LjE5LTQuODU4Ljk1Mi0zLjQzNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaUhlYXJ0RXllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjMxNSAxMC4wMTRhLjUuNSAwIDAgMSAuNTQ4LjczNkE0LjQ5OCA0LjQ5OCAwIDAgMSA3Ljk2NSAxM2E0LjQ5OCA0LjQ5OCAwIDAgMS0zLjg5OC0yLjI1LjUuNSAwIDAgMSAuNTQ4LS43MzZoLjAwNWwuMDE3LjAwNS4wNjcuMDE1LjI1Mi4wNTVjLjIxNS4wNDYuNTE1LjEwOC44NTcuMTY5LjY5My4xMjQgMS41MjIuMjQyIDIuMTUyLjI0Mi42MyAwIDEuNDYtLjExOCAyLjE1Mi0uMjQyYTI2LjU4IDI2LjU4IDAgMCAwIDEuMTA5LS4yMjRsLjA2Ny0uMDE1LjAxNy0uMDA0LjAwNS0uMDAyek00Ljc1NiA0LjU2NmMuNzYzLTEuNDI0IDQuMDItLjEyLjk1MiAzLjQzNC00LjQ5Ni0xLjU5Ni0yLjM1LTQuMjk4LS45NTItMy40MzR6bTYuNDg4IDBjMS4zOTgtLjg2NCAzLjU0NCAxLjgzOC0uOTUyIDMuNDM0LTMuMDY3LTMuNTU0LjE5LTQuODU4Ljk1Mi0zLjQzNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaUxhdWdoaW5nRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTcgNi41YzAgLjUwMS0uMTY0LjM5Ni0uNDE1LjIzNUM2LjQyIDYuNjI5IDYuMjE4IDYuNSA2IDYuNWMtLjIxOCAwLS40Mi4xMy0uNTg1LjIzNUM1LjE2NCA2Ljg5NiA1IDcgNSA2LjUgNSA1LjY3MiA1LjQ0OCA1IDYgNXMxIC42NzIgMSAxLjV6bTUuMzMxIDNhMSAxIDAgMCAxIDAgMUE0Ljk5OCA0Ljk5OCAwIDAgMSA4IDEzYTQuOTk4IDQuOTk4IDAgMCAxLTQuMzMtMi41QTEgMSAwIDAgMSA0LjUzNSA5aDYuOTNhMSAxIDAgMCAxIC44NjYuNXptLTEuNzQ2LTIuNzY1QzEwLjQyIDYuNjI5IDEwLjIxOCA2LjUgMTAgNi41Yy0uMjE4IDAtLjQyLjEzLS41ODUuMjM1QzkuMTY0IDYuODk2IDkgNyA5IDYuNWMwLS44MjguNDQ4LTEuNSAxLTEuNXMxIC42NzIgMSAxLjVjMCAuNTAxLS4xNjQuMzk2LS40MTUuMjM1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppTGF1Z2hpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4zMzEgOS41YTEgMSAwIDAgMSAwIDFBNC45OTggNC45OTggMCAwIDEgOCAxM2E0Ljk5OCA0Ljk5OCAwIDAgMS00LjMzLTIuNUExIDEgMCAwIDEgNC41MzUgOWg2LjkzYTEgMSAwIDAgMSAuODY2LjV6TTcgNi41YzAgLjgyOC0uNDQ4IDAtMSAwcy0xIC44MjgtMSAwUzUuNDQ4IDUgNiA1czEgLjY3MiAxIDEuNXptNCAwYzAgLjgyOC0uNDQ4IDAtMSAwcy0xIC44MjgtMSAwUzkuNDQ4IDUgMTAgNXMxIC42NzIgMSAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW1vamlOZXV0cmFsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTcgNi41QzcgNy4zMjggNi41NTIgOCA2IDhzLTEtLjY3Mi0xLTEuNVM1LjQ0OCA1IDYgNXMxIC42NzIgMSAxLjV6bS0zIDRhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6TTEwIDhjLS41NTIgMC0xLS42NzItMS0xLjVTOS40NDggNSAxMCA1czEgLjY3MiAxIDEuNVMxMC41NTIgOCAxMCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppTmV1dHJhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTAuNWEuNS41IDAgMCAwIC41LjVoN2EuNS41IDAgMCAwIDAtMWgtN2EuNS41IDAgMCAwLS41LjV6bTMtNEM3IDUuNjcyIDYuNTUyIDUgNiA1cy0xIC42NzItMSAxLjVTNS40NDggOCA2IDhzMS0uNjcyIDEtMS41em00IDBjMC0uODI4LS40NDgtMS41LTEtMS41cy0xIC42NzItMSAxLjVTOS40NDggOCAxMCA4czEtLjY3MiAxLTEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaVNtaWxlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2QTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6TTcgNi41QzcgNy4zMjggNi41NTIgOCA2IDhzLTEtLjY3Mi0xLTEuNVM1LjQ0OCA1IDYgNXMxIC42NzIgMSAxLjV6TTQuMjg1IDkuNTY3YS41LjUgMCAwIDEgLjY4My4xODNBMy40OTggMy40OTggMCAwIDAgOCAxMS41YTMuNDk4IDMuNDk4IDAgMCAwIDMuMDMyLTEuNzUuNS41IDAgMSAxIC44NjYuNUE0LjQ5OCA0LjQ5OCAwIDAgMSA4IDEyLjVhNC40OTggNC40OTggMCAwIDEtMy44OTgtMi4yNS41LjUgMCAwIDEgLjE4My0uNjgzek0xMCA4Yy0uNTUyIDAtMS0uNjcyLTEtMS41UzkuNDQ4IDUgMTAgNXMxIC42NzIgMSAxLjVTMTAuNTUyIDggMTAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaVNtaWxlVXBzaWRlRG93bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYTggOCAwIDEgMSAwIDE2QTggOCAwIDAgMSA4IDB6TTcgOS41QzcgOC42NzIgNi41NTIgOCA2IDhzLTEgLjY3Mi0xIDEuNS40NDggMS41IDEgMS41IDEtLjY3MiAxLTEuNXpNNC4yODUgNi40MzNhLjUuNSAwIDAgMCAuNjgzLS4xODNBMy40OTggMy40OTggMCAwIDEgOCA0LjVjMS4yOTUgMCAyLjQyNi43MDMgMy4wMzIgMS43NWEuNS41IDAgMCAwIC44NjYtLjVBNC40OTggNC40OTggMCAwIDAgOCAzLjVhNC41IDQuNSAwIDAgMC0zLjg5OCAyLjI1LjUuNSAwIDAgMCAuMTgzLjY4M3pNMTAgOGMtLjU1MiAwLTEgLjY3Mi0xIDEuNXMuNDQ4IDEuNSAxIDEuNSAxLS42NzIgMS0xLjVTMTAuNTUyIDggMTAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaVNtaWxlVXBzaWRlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhNyA3IDAgMSAwIDAgMTRBNyA3IDAgMCAwIDggMXptMC0xYTggOCAwIDEgMSAwIDE2QTggOCAwIDAgMSA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4yODUgNi40MzNhLjUuNSAwIDAgMCAuNjgzLS4xODNBMy40OTggMy40OTggMCAwIDEgOCA0LjVjMS4yOTUgMCAyLjQyNi43MDMgMy4wMzIgMS43NWEuNS41IDAgMCAwIC44NjYtLjVBNC40OTggNC40OTggMCAwIDAgOCAzLjVhNC41IDQuNSAwIDAgMC0zLjg5OCAyLjI1LjUuNSAwIDAgMCAuMTgzLjY4M3pNNyA5LjVDNyA4LjY3MiA2LjU1MiA4IDYgOHMtMSAuNjcyLTEgMS41LjQ0OCAxLjUgMSAxLjUgMS0uNjcyIDEtMS41em00IDBjMC0uODI4LS40NDgtMS41LTEtMS41cy0xIC42NzItMSAxLjUuNDQ4IDEuNSAxIDEuNSAxLS42NzIgMS0xLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW1vamlTbWlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjg1IDkuNTY3YS41LjUgMCAwIDEgLjY4My4xODNBMy40OTggMy40OTggMCAwIDAgOCAxMS41YTMuNDk4IDMuNDk4IDAgMCAwIDMuMDMyLTEuNzUuNS41IDAgMSAxIC44NjYuNUE0LjQ5OCA0LjQ5OCAwIDAgMSA4IDEyLjVhNC40OTggNC40OTggMCAwIDEtMy44OTgtMi4yNS41LjUgMCAwIDEgLjE4My0uNjgzek03IDYuNUM3IDcuMzI4IDYuNTUyIDggNiA4cy0xLS42NzItMS0xLjVTNS40NDggNSA2IDVzMSAuNjcyIDEgMS41em00IDBjMCAuODI4LS40NDggMS41LTEgMS41cy0xLS42NzItMS0xLjVTOS40NDggNSAxMCA1czEgLjY3MiAxIDEuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaVN1bmdsYXNzZXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpNMi4zMSA1LjI0M0ExIDEgMCAwIDEgMy4yOCA0SDZhMSAxIDAgMCAxIDEgMXYuMTE2QTQuMjIgNC4yMiAwIDAgMSA4IDVjLjM1IDAgLjY5LjA0IDEgLjExNlY1YTEgMSAwIDAgMSAxLTFoMi43MmExIDEgMCAwIDEgLjk3IDEuMjQzbC0uMzExIDEuMjQyQTIgMiAwIDAgMSAxMS40MzkgOEgxMWEyIDIgMCAwIDEtMS45OTQtMS44MzlBMi45OSAyLjk5IDAgMCAwIDggNmMtLjM5MyAwLS43NC4wNjQtMS4wMDYuMTYxQTIgMiAwIDAgMSA1IDhoLS40MzhhMiAyIDAgMCAxLTEuOTQtMS41MTVMMi4zMSA1LjI0M3pNNC45NjkgOS43NUEzLjQ5OCAzLjQ5OCAwIDAgMCA4IDExLjVhMy40OTggMy40OTggMCAwIDAgMy4wMzItMS43NS41LjUgMCAxIDEgLjg2Ni41QTQuNDk4IDQuNDk4IDAgMCAxIDggMTIuNWE0LjQ5OCA0LjQ5OCAwIDAgMS0zLjg5OC0yLjI1LjUuNSAwIDAgMSAuODY2LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppU3VuZ2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljk2OCA5Ljc1YS41LjUgMCAxIDAtLjg2Ni41QTQuNDk4IDQuNDk4IDAgMCAwIDggMTIuNWE0LjUgNC41IDAgMCAwIDMuODk4LTIuMjUuNS41IDAgMSAwLS44NjYtLjVBMy40OTggMy40OTggMCAwIDEgOCAxMS41YTMuNDk4IDMuNDk4IDAgMCAxLTMuMDMyLTEuNzV6TTcgNS4xMTZWNWExIDEgMCAwIDAtMS0xSDMuMjhhMSAxIDAgMCAwLS45NyAxLjI0M2wuMzExIDEuMjQyQTIgMiAwIDAgMCA0LjU2MSA4SDVhMiAyIDAgMCAwIDEuOTk0LTEuODM5QTIuOTkgMi45OSAwIDAgMSA4IDZjLjM5MyAwIC43NC4wNjQgMS4wMDYuMTYxQTIgMiAwIDAgMCAxMSA4aC40MzhhMiAyIDAgMCAwIDEuOTQtMS41MTVsLjMxMS0xLjI0MkExIDEgMCAwIDAgMTIuNzIgNEgxMGExIDEgMCAwIDAtMSAxdi4xMTZBNC4yMiA0LjIyIDAgMCAwIDggNWMtLjM1IDAtLjY5LjA0LTEgLjExNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6bS0xIDBBNyA3IDAgMSAwIDEgOGE3IDcgMCAwIDAgMTQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbW9qaVdpbmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGE4IDggMCAxIDEgMCAxNkE4IDggMCAwIDEgOCAwek03IDYuNUM3IDUuNjcyIDYuNTUyIDUgNiA1cy0xIC42NzItMSAxLjVTNS40NDggOCA2IDhzMS0uNjcyIDEtMS41ek00LjI4NSA5LjU2N2EuNS41IDAgMCAwLS4xODMuNjgzQTQuNDk4IDQuNDk4IDAgMCAwIDggMTIuNWE0LjUgNC41IDAgMCAwIDMuODk4LTIuMjUuNS41IDAgMSAwLS44NjYtLjVBMy40OTggMy40OTggMCAwIDEgOCAxMS41YTMuNDk4IDMuNDk4IDAgMCAxLTMuMDMyLTEuNzUuNS41IDAgMCAwLS42ODMtLjE4M3ptNS4xNTItMy4zMWEuNS41IDAgMCAwLS44NzQuNDg2Yy4zMy41OTUuOTU4IDEuMDA3IDEuNjg3IDEuMDA3LjczIDAgMS4zNTYtLjQxMiAxLjY4Ny0xLjAwN2EuNS41IDAgMCAwLS44NzQtLjQ4Ni45MzQuOTM0IDAgMCAxLS44MTMuNDkzLjkzNC45MzQgMCAwIDEtLjgxMy0uNDkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Vtb2ppV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjg1IDkuNTY3YS41LjUgMCAwIDEgLjY4My4xODNBMy40OTggMy40OTggMCAwIDAgOCAxMS41YTMuNDk4IDMuNDk4IDAgMCAwIDMuMDMyLTEuNzUuNS41IDAgMSAxIC44NjYuNUE0LjQ5OCA0LjQ5OCAwIDAgMSA4IDEyLjVhNC40OTggNC40OTggMCAwIDEtMy44OTgtMi4yNS41LjUgMCAwIDEgLjE4My0uNjgzek03IDYuNUM3IDcuMzI4IDYuNTUyIDggNiA4cy0xLS42NzItMS0xLjVTNS40NDggNSA2IDVzMSAuNjcyIDEgMS41em0xLjc1Ny0uNDM3YS41LjUgMCAwIDEgLjY4LjE5NC45MzQuOTM0IDAgMCAwIC44MTMuNDkzYy4zMzkgMCAuNjQ1LS4xOS44MTMtLjQ5M2EuNS41IDAgMSAxIC44NzQuNDg2QTEuOTM0IDEuOTM0IDAgMCAxIDEwLjI1IDcuNzVjLS43MyAwLTEuMzU2LS40MTItMS42ODctMS4wMDdhLjUuNSAwIDAgMSAuMTk0LS42OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbnZlbG9wZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjA1IDMuNTU1QTIgMiAwIDAgMSAyIDJoMTJhMiAyIDAgMCAxIDEuOTUgMS41NTVMOCA4LjQxNC4wNSAzLjU1NXpNMCA0LjY5N3Y3LjEwNGw1LjgwMy0zLjU1OEwwIDQuNjk3ek02Ljc2MSA4LjgzbC02LjU3IDQuMDI3QTIgMiAwIDAgMCAyIDE0aDEyYTIgMiAwIDAgMCAxLjgwOC0xLjE0NGwtNi41Ny00LjAyN0w4IDkuNTg2bC0xLjIzOS0uNzU3em0zLjQzNi0uNTg2TDE2IDExLjgwMVY0LjY5N2wtNS44MDMgMy41NDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW52ZWxvcGVPcGVuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ljk0MS40MzVhMiAyIDAgMCAwLTEuODgyIDBsLTYgMy4yQTIgMiAwIDAgMCAwIDUuNHYuMzEzbDYuNzA5IDMuOTMzTDggOC45MjhsMS4yOTEuNzE3TDE2IDUuNzE1VjUuNGEyIDIgMCAwIDAtMS4wNTktMS43NjVsLTYtMy4yek0xNiA2Ljg3M2wtNS42OTMgMy4zMzdMMTYgMTMuMzcydi02LjV6bS0uMDU5IDcuNjExTDggMTAuMDcyLjA1OSAxNC40ODRBMiAyIDAgMCAwIDIgMTZoMTJhMiAyIDAgMCAwIDEuOTQxLTEuNTE2ek0wIDEzLjM3M2w1LjY5My0zLjE2M0wwIDYuODczdjYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFbnZlbG9wZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40NyAxLjMxOGExIDEgMCAwIDAtLjk0IDBsLTYgMy4yQTEgMSAwIDAgMCAxIDUuNHYuODE4bDUuNzI0IDMuNDY1TDggOC45MTdsMS4yNzYuNzY2TDE1IDYuMjE4VjUuNGExIDEgMCAwIDAtLjUzLS44ODJsLTYtMy4yek0xNSA3LjM4OGwtNC43NTQgMi44NzdMMTUgMTMuMTE3di01Ljczem0tLjAzNSA2Ljg3NEw4IDEwLjA4M2wtNi45NjUgNC4xOEExIDEgMCAwIDAgMiAxNWgxMmExIDEgMCAwIDAgLjk2NS0uNzM4ek0xIDEzLjExN2w0Ljc1NC0yLjg1MkwxIDcuMzg3djUuNzN6TTcuMDU5LjQzNWEyIDIgMCAwIDEgMS44ODIgMGw2IDMuMkEyIDIgMCAwIDEgMTYgNS40VjE0YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjUuNGEyIDIgMCAwIDEgMS4wNTktMS43NjVsNi0zLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRW52ZWxvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTItMWExIDEgMCAwIDAtMSAxdi4yMTdsNyA0LjIgNy00LjJWNGExIDEgMCAwIDAtMS0xSDJ6bTEzIDIuMzgzLTQuNzU4IDIuODU1TDE1IDExLjExNHYtNS43M3ptLS4wMzQgNi44NzhMOS4yNzEgOC44MiA4IDkuNTgzIDYuNzI4IDguODJsLTUuNjk0IDMuNDRBMSAxIDAgMCAwIDIgMTNoMTJhMSAxIDAgMCAwIC45NjYtLjczOXpNMSAxMS4xMTRsNC43NTgtMi44NzZMMSA1LjM4M3Y1LjczelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0VyYXNlckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wODYgMi4yMDdhMiAyIDAgMCAxIDIuODI4IDBsMy44NzkgMy44NzlhMiAyIDAgMCAxIDAgMi44MjhsLTUuNSA1LjVBMiAyIDAgMCAxIDcuODc5IDE1SDUuMTJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTIuNS0yLjVhMiAyIDAgMCAxIDAtMi44MjhsNi44NzktNi44Nzl6bS42NiAxMS4zNEwzLjQ1MyA4LjI1NCAxLjkxNCA5Ljc5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjUgMi41YTEgMSAwIDAgMCAuNzA3LjI5M0g3Ljg4YTEgMSAwIDAgMCAuNzA3LS4yOTNsLjE2LS4xNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFcmFzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wODYgMi4yMDdhMiAyIDAgMCAxIDIuODI4IDBsMy44NzkgMy44NzlhMiAyIDAgMCAxIDAgMi44MjhsLTUuNSA1LjVBMiAyIDAgMCAxIDcuODc5IDE1SDUuMTJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTIuNS0yLjVhMiAyIDAgMCAxIDAtMi44MjhsNi44NzktNi44Nzl6bTIuMTIxLjcwN2ExIDEgMCAwIDAtMS40MTQgMEw0LjE2IDcuNTQ3bDUuMjkzIDUuMjkzIDQuNjMzLTQuNjMzYTEgMSAwIDAgMCAwLTEuNDE0bC0zLjg3OS0zLjg3OXpNOC43NDYgMTMuNTQ3IDMuNDUzIDguMjU0IDEuOTE0IDkuNzkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuNSAyLjVhMSAxIDAgMCAwIC43MDcuMjkzSDcuODhhMSAxIDAgMCAwIC43MDctLjI5M2wuMTYtLjE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0V4Y2xhbWF0aW9uQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTggNGEuOTA1LjkwNSAwIDAgMC0uOS45OTVsLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAwIDEuMSAwbC4zNS0zLjUwN0EuOTA1LjkwNSAwIDAgMCA4IDR6bS4wMDIgNmExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAwMiAxMWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDB6TTcuMSA0Ljk5NWEuOTA1LjkwNSAwIDEgMSAxLjggMGwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFeGNsYW1hdGlvbkRpYW1vbmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDUuNDM1Yy0uNTgtLjU4LTEuNTItLjU4LTIuMSAwTC40MzYgNi45NWMtLjU4LjU4LS41OCAxLjUxOSAwIDIuMDk4bDYuNTE2IDYuNTE2Yy41OC41OCAxLjUxOS41OCAyLjA5OCAwbDYuNTE2LTYuNTE2Yy41OC0uNTguNTgtMS41MTkgMC0yLjA5OEw5LjA1LjQzNXpNOCA0Yy41MzUgMCAuOTU0LjQ2Mi45Ljk5NWwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NUEuOTA1LjkwNSAwIDAgMSA4IDR6bS4wMDIgNmExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25EaWFtb25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOTUuNDM1Yy41OC0uNTggMS41Mi0uNTggMi4xIDBsNi41MTUgNi41MTZjLjU4LjU4LjU4IDEuNTE5IDAgMi4wOThMOS4wNSAxNS41NjVjLS41OC41OC0xLjUxOS41OC0yLjA5OCAwTC40MzUgOS4wNWExLjQ4MiAxLjQ4MiAwIDAgMSAwLTIuMDk4TDYuOTUuNDM1em0xLjQuN2EuNDk1LjQ5NSAwIDAgMC0uNyAwTDEuMTM0IDcuNjVhLjQ5NS40OTUgMCAwIDAgMCAuN2w2LjUxNiA2LjUxNmEuNDk1LjQ5NSAwIDAgMCAuNyAwbDYuNTE2LTYuNTE2YS40OTUuNDk1IDAgMCAwIDAtLjdMOC4zNSAxLjEzNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAwMiAxMWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDB6TTcuMSA0Ljk5NWEuOTA1LjkwNSAwIDEgMSAxLjggMGwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFeGNsYW1hdGlvbkxnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMDAyIDE0YTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMHptLjE5NS0xMi4wMWExLjgxIDEuODEgMCAxIDEgMy42MDIgMGwtLjcwMSA3LjAxNWExLjEwNSAxLjEwNSAwIDAgMS0yLjIgMGwtLjctNy4wMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25PY3RhZ29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40Ni4xNDZBLjUuNSAwIDAgMCAxMS4xMDcgMEg0Ljg5M2EuNS41IDAgMCAwLS4zNTMuMTQ2TC4xNDYgNC41NEEuNS41IDAgMCAwIDAgNC44OTN2Ni4yMTRhLjUuNSAwIDAgMCAuMTQ2LjM1M2w0LjM5NCA0LjM5NGEuNS41IDAgMCAwIC4zNTMuMTQ2aDYuMjE0YS41LjUgMCAwIDAgLjM1My0uMTQ2bDQuMzk0LTQuMzk0YS41LjUgMCAwIDAgLjE0Ni0uMzUzVjQuODkzYS41LjUgMCAwIDAtLjE0Ni0uMzUzTDExLjQ2LjE0NnpNOCA0Yy41MzUgMCAuOTU0LjQ2Mi45Ljk5NWwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NUEuOTA1LjkwNSAwIDAgMSA4IDR6bS4wMDIgNmExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25PY3RhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTQuMTQ2QS41LjUgMCAwIDEgNC44OTMgMGg2LjIxNGEuNS41IDAgMCAxIC4zNTMuMTQ2bDQuMzk0IDQuMzk0YS41LjUgMCAwIDEgLjE0Ni4zNTN2Ni4yMTRhLjUuNSAwIDAgMS0uMTQ2LjM1M2wtNC4zOTQgNC4zOTRhLjUuNSAwIDAgMS0uMzUzLjE0Nkg0Ljg5M2EuNS41IDAgMCAxLS4zNTMtLjE0NkwuMTQ2IDExLjQ2QS41LjUgMCAwIDEgMCAxMS4xMDdWNC44OTNhLjUuNSAwIDAgMSAuMTQ2LS4zNTNMNC41NC4xNDZ6TTUuMSAxIDEgNS4xdjUuOEw1LjEgMTVoNS44bDQuMS00LjFWNS4xTDEwLjkgMUg1LjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMDIgMTFhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwek03LjEgNC45OTVhLjkwNS45MDUgMCAxIDEgMS44IDBsLS4zNSAzLjUwN2EuNTUyLjU1MiAwIDAgMS0xLjEgMEw3LjEgNC45OTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25TcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptNiA0Yy41MzUgMCAuOTU0LjQ2Mi45Ljk5NWwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NUEuOTA1LjkwNSAwIDAgMSA4IDR6bS4wMDIgNmExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDAyIDExYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMHpNNy4xIDQuOTk1YS45MDUuOTA1IDAgMSAxIDEuOCAwbC0uMzUgMy41MDdhLjU1Mi41NTIgMCAwIDEtMS4xIDBMNy4xIDQuOTk1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0V4Y2xhbWF0aW9uVHJpYW5nbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguOTgyIDEuNTY2YTEuMTMgMS4xMyAwIDAgMC0xLjk2IDBMLjE2NSAxMy4yMzNjLS40NTcuNzc4LjA5MSAxLjc2Ny45OCAxLjc2N2gxMy43MTNjLjg4OSAwIDEuNDM4LS45OS45OC0xLjc2N0w4Ljk4MiAxLjU2NnpNOCA1Yy41MzUgMCAuOTU0LjQ2Mi45Ljk5NWwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA1Ljk5NUEuOTA1LjkwNSAwIDAgMSA4IDV6bS4wMDIgNmExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXhjbGFtYXRpb25UcmlhbmdsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjkzOCAyLjAxNkEuMTMuMTMgMCAwIDEgOC4wMDIgMmEuMTMuMTMgMCAwIDEgLjA2My4wMTYuMTQ2LjE0NiAwIDAgMSAuMDU0LjA1N2w2Ljg1NyAxMS42NjdjLjAzNi4wNi4wMzUuMTI0LjAwMi4xODNhLjE2My4xNjMgMCAwIDEtLjA1NC4wNi4xMTYuMTE2IDAgMCAxLS4wNjYuMDE3SDEuMTQ2YS4xMTUuMTE1IDAgMCAxLS4wNjYtLjAxNy4xNjMuMTYzIDAgMCAxLS4wNTQtLjA2LjE3Ni4xNzYgMCAwIDEgLjAwMi0uMTgzTDcuODg0IDIuMDczYS4xNDcuMTQ3IDAgMCAxIC4wNTQtLjA1N3ptMS4wNDQtLjQ1YTEuMTMgMS4xMyAwIDAgMC0xLjk2IDBMLjE2NSAxMy4yMzNjLS40NTcuNzc4LjA5MSAxLjc2Ny45OCAxLjc2N2gxMy43MTNjLjg4OSAwIDEuNDM4LS45OS45OC0xLjc2N0w4Ljk4MiAxLjU2NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAwMiAxMmExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDB6TTcuMSA1Ljk5NWEuOTA1LjkwNSAwIDEgMSAxLjggMGwtLjM1IDMuNTA3YS41NTIuNTUyIDAgMCAxLTEuMSAwTDcuMSA1Ljk5NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjAwMiAxMWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDB6TTcuMSA0Ljk5NWEuOTA1LjkwNSAwIDEgMSAxLjggMGwtLjM1IDMuNTA3YS41NTMuNTUzIDAgMCAxLTEuMSAwTDcuMSA0Ljk5NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFeGNsdWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYyaDJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0ySDJhMiAyIDAgMCAxLTItMlYyem0xMiAySDVhMSAxIDAgMCAwLTEgMXY3aDdhMSAxIDAgMCAwIDEtMVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0V5ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOHMzLTUuNSA4LTUuNVMxNiA4IDE2IDhzLTMgNS41LTggNS41UzAgOCAwIDh6bTggMy41YTMuNSAzLjUgMCAxIDAgMC03IDMuNSAzLjUgMCAwIDAgMCA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0V5ZVNsYXNoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC43OSAxMi45MTItMS42MTQtMS42MTVhMy41IDMuNSAwIDAgMS00LjQ3NC00LjQ3NGwtMi4wNi0yLjA2Qy45MzggNi4yNzggMCA4IDAgOHMzIDUuNSA4IDUuNWE3LjAyOSA3LjAyOSAwIDAgMCAyLjc5LS41ODh6TTUuMjEgMy4wODhBNy4wMjggNy4wMjggMCAwIDEgOCAyLjVjNSAwIDggNS41IDggNS41cy0uOTM5IDEuNzIxLTIuNjQxIDMuMjM4bC0yLjA2Mi0yLjA2MmEzLjUgMy41IDAgMCAwLTQuNDc0LTQuNDc0TDUuMjEgMy4wODl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41MjUgNy42NDZhMi41IDIuNSAwIDAgMCAyLjgyOSAyLjgyOWwtMi44My0yLjgyOXptNC45NS43MDgtMi44MjktMi44M2EyLjUgMi41IDAgMCAxIDIuODI5IDIuODI5em0zLjE3MSA2LTEyLTEyIC43MDgtLjcwOCAxMiAxMi0uNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFeWVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4zNTkgMTEuMjM4QzE1LjA2IDkuNzIgMTYgOCAxNiA4cy0zLTUuNS04LTUuNWE3LjAyOCA3LjAyOCAwIDAgMC0yLjc5LjU4OGwuNzcuNzcxQTUuOTQ0IDUuOTQ0IDAgMCAxIDggMy41YzIuMTIgMCAzLjg3OSAxLjE2OCA1LjE2OCAyLjQ1N0ExMy4xMzQgMTMuMTM0IDAgMCAxIDE0LjgyOCA4Yy0uMDU4LjA4Ny0uMTIyLjE4My0uMTk1LjI4OC0uMzM1LjQ4LS44MyAxLjEyLTEuNDY1IDEuNzU1LS4xNjUuMTY1LS4zMzcuMzI4LS41MTcuNDg2bC43MDguNzA5elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjI5NyA5LjE3NmEzLjUgMy41IDAgMCAwLTQuNDc0LTQuNDc0bC44MjMuODIzYTIuNSAyLjUgMCAwIDEgMi44MjkgMi44MjlsLjgyMi44MjJ6bS0yLjk0MyAxLjI5OS44MjIuODIyYTMuNSAzLjUgMCAwIDEtNC40NzQtNC40NzRsLjgyMy44MjNhMi41IDIuNSAwIDAgMCAyLjgyOSAyLjgyOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjM1IDUuNDdjLS4xOC4xNi0uMzUzLjMyMi0uNTE4LjQ4N0ExMy4xMzQgMTMuMTM0IDAgMCAwIDEuMTcyIDhsLjE5NS4yODhjLjMzNS40OC44MyAxLjEyIDEuNDY1IDEuNzU1QzQuMTIxIDExLjMzMiA1Ljg4MSAxMi41IDggMTIuNWMuNzE2IDAgMS4zOS0uMTMzIDIuMDItLjM2bC43Ny43NzJBNy4wMjkgNy4wMjkgMCAwIDEgOCAxMy41QzMgMTMuNSAwIDggMCA4cy45MzktMS43MjEgMi42NDEtMy4yMzhsLjcwOC43MDl6bTEwLjI5NiA4Ljg4NC0xMi0xMiAuNzA4LS43MDggMTIgMTItLjcwOC43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhzLTMtNS41LTgtNS41UzAgOCAwIDhzMyA1LjUgOCA1LjVTMTYgOCAxNiA4ek0xLjE3MyA4YTEzLjEzMyAxMy4xMzMgMCAwIDEgMS42Ni0yLjA0M0M0LjEyIDQuNjY4IDUuODggMy41IDggMy41YzIuMTIgMCAzLjg3OSAxLjE2OCA1LjE2OCAyLjQ1N0ExMy4xMzMgMTMuMTMzIDAgMCAxIDE0LjgyOCA4Yy0uMDU4LjA4Ny0uMTIyLjE4My0uMTk1LjI4OC0uMzM1LjQ4LS44MyAxLjEyLTEuNDY1IDEuNzU1QzExLjg3OSAxMS4zMzIgMTAuMTE5IDEyLjUgOCAxMi41Yy0yLjEyIDAtMy44NzktMS4xNjgtNS4xNjgtMi40NTdBMTMuMTM0IDEzLjEzNCAwIDAgMSAxLjE3MiA4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNS41YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01ek00LjUgOGEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNFeWVkcm9wcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjM1NC42NDZhMS4yMDcgMS4yMDcgMCAwIDAtMS43MDggMEw4LjUgMy43OTNsLS42NDYtLjY0N2EuNS41IDAgMSAwLS43MDguNzA4TDguMjkzIDVsLTcuMTQ3IDcuMTQ2QS41LjUgMCAwIDAgMSAxMi41djEuNzkzbC0uODU0Ljg1M2EuNS41IDAgMSAwIC43MDguNzA3TDEuNzA3IDE1SDMuNWEuNS41IDAgMCAwIC4zNTQtLjE0NkwxMSA3LjcwN2wxLjE0NiAxLjE0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtLjY0Ny0uNjQ2IDMuMTQ3LTMuMTQ2YTEuMjA3IDEuMjA3IDAgMCAwIDAtMS43MDhsLTItMnpNMiAxMi43MDdsNy03TDEwLjI5MyA3bC03IDdIMnYtMS4yOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRXllZ2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00em0yLjYyNS41NDdhMyAzIDAgMCAwLTUuNTg0Ljk1M0guNWEuNS41IDAgMCAwIDAgMWguNTQxQTMgMyAwIDAgMCA3IDhhMSAxIDAgMCAxIDIgMCAzIDMgMCAwIDAgNS45NTkuNWguNTQxYS41LjUgMCAwIDAgMC0xaC0uNTQxYTMgMyAwIDAgMC01LjU4NC0uOTUzQTEuOTkzIDEuOTkzIDAgMCAwIDggNmMtLjUzMiAwLTEuMDE2LjIwOC0xLjM3NS41NDd6TTE0IDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZhY2Vib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDguMDQ5YzAtNC40NDYtMy41ODItOC4wNS04LTguMDVDMy41OCAwLS4wMDIgMy42MDMtLjAwMiA4LjA1YzAgNC4wMTcgMi45MjYgNy4zNDcgNi43NSA3Ljk1MXYtNS42MjVoLTIuMDNWOC4wNUg2Ljc1VjYuMjc1YzAtMi4wMTcgMS4xOTUtMy4xMzEgMy4wMjItMy4xMzEuODc2IDAgMS43OTEuMTU3IDEuNzkxLjE1N3YxLjk4aC0xLjAwOWMtLjk5MyAwLTEuMzAzLjYyMS0xLjMwMyAxLjI1OHYxLjUxaDIuMjE4bC0uMzU0IDIuMzI2SDkuMjVWMTZjMy44MjQtLjYwNCA2Ljc1LTMuOTM0IDYuNzUtNy45NTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUFycm93RG93bkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek04IDVhLjUuNSAwIDAgMSAuNS41djMuNzkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTIgMmEuNS41IDAgMCAxLS43MDggMGwtMi0yYS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA5LjI5M1Y1LjVBLjUuNSAwIDAgMSA4IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDVhLjUuNSAwIDAgMSAuNS41djMuNzkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTIgMmEuNS41IDAgMCAxLS43MDggMGwtMi0yYS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA5LjI5M1Y1LjVBLjUuNSAwIDAgMSA4IDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVBcnJvd1VwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcuNSA2LjcwNyA2LjM1NCA3Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOGwyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMiAyYS41LjUgMCAwIDEtLjcwOC43MDhMOC41IDYuNzA3VjEwLjVhLjUuNSAwIDAgMS0xIDBWNi43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMWEuNS41IDAgMCAwIC41LS41VjYuNzA3bDEuMTQ2IDEuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC0yLTJhLjUuNSAwIDAgMC0uNzA4IDBsLTIgMmEuNS41IDAgMSAwIC43MDguNzA4TDcuNSA2LjcwN1YxMC41YS41LjUgMCAwIDAgLjUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUJhckdyYXBoRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6bS0yIDExLjV2LTZhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXY2YS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41em0tMi41LjVhLjUuNSAwIDAgMS0uNS0uNXYtNGEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djRhLjUuNSAwIDAgMS0uNS41aC0xem0tMyAwYS41LjUgMCAwIDEtLjUtLjV2LTJhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlQmFyR3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDEyYS41LjUgMCAwIDEtLjUtLjV2LTJhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMXptMyAwYS41LjUgMCAwIDEtLjUtLjV2LTRhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXY0YS41LjUgMCAwIDEtLjUuNWgtMXptMyAwYS41LjUgMCAwIDEtLjUtLjV2LTZhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXY2YS41LjUgMCAwIDEtLjUuNWgtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUJpbmFyeUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41MjYgOS4yNzNjLS41NDIgMC0uODMyLjU2My0uODMyIDEuNjEyIDAgLjA4OC4wMDMuMTczLjAwNi4yNTJsMS41Ni0xLjE0M2MtLjEyNi0uNDc0LS4zNzUtLjcyLS43MzMtLjcyem0tLjczMiAyLjUwOGMuMTI2LjQ3Mi4zNzIuNzE4LjczMi43MTguNTQgMCAuODMtLjU2My44My0xLjYxNCAwLS4wODUtLjAwMy0uMTctLjAwNi0uMjVsLTEuNTU2IDEuMTQ2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNNy4wNSAxMC44ODVjMCAxLjQxNS0uNTQ4IDIuMjA2LTEuNTI0IDIuMjA2QzQuNTQ4IDEzLjA5IDQgMTIuMyA0IDEwLjg4NWMwLTEuNDEyLjU0OC0yLjIwMyAxLjUyNi0yLjIwMy45NzYgMCAxLjUyNC43OSAxLjUyNCAyLjIwM3ptMy44MDUgMS41MlYxM2gtM3YtLjU5NWgxLjE4MVY5LjVoLS4wNWwtMS4xMzYuNzQ3di0uNjg4bDEuMTktLjc4NmguNjl2My42MzNoMS4xMjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUJpbmFyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUyNiAxMy4wOWMuOTc2IDAgMS41MjQtLjc5IDEuNTI0LTIuMjA1IDAtMS40MTItLjU0OC0yLjIwMy0xLjUyNC0yLjIwMy0uOTc4IDAtMS41MjYuNzktMS41MjYgMi4yMDMgMCAxLjQxNS41NDggMi4yMDYgMS41MjYgMi4yMDZ6bS0uODMyLTIuMjA1YzAtMS4wNS4yOS0xLjYxMi44MzItMS42MTIuMzU4IDAgLjYwNy4yNDcuNzMzLjcyMUw0LjcgMTEuMTM3YTYuNzQ5IDYuNzQ5IDAgMCAxLS4wMDYtLjI1MnptLjgzMiAxLjYxNGMtLjM2IDAtLjYwNi0uMjQ2LS43MzItLjcxOGwxLjU1Ni0xLjE0NWMuMDAzLjA3OS4wMDUuMTY0LjAwNS4yNDkgMCAxLjA1Mi0uMjkgMS42MTQtLjgyOSAxLjYxNHptNS4zMjkuNTAxdi0uNTk1SDkuNzNWOC43NzJoLS42OWwtMS4xOS43ODZ2LjY4OEw4Ljk4NiA5LjVoLjA1djIuOTA2aC0xLjE4VjEzaDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVCcmVha0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwaDhhMiAyIDAgMCAxIDIgMnY3SDJWMmEyIDIgMCAwIDEgMi0yek0yIDEyaDEydjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTJ6TS41IDEwYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xSC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVCcmVhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEwLjVhLjUuNSAwIDAgMSAuNS0uNWgxNWEuNS41IDAgMCAxIDAgMUguNWEuNS41IDAgMCAxLS41LS41ek0xMiAwSDRhMiAyIDAgMCAwLTIgMnY3aDFWMmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY3aDFWMmEyIDIgMCAwIDAtMi0yem0yIDEyaC0xdjJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LTJIMnYyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yem0tMS4xNDYgNi44NTQtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA4Ljc5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44NTQgNi4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgOC43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVDb2RlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTYuNjQ2IDUuNjQ2YS41LjUgMCAxIDEgLjcwOC43MDhMNS43MDcgOGwxLjY0NyAxLjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC0yLTJhLjUuNSAwIDAgMSAwLS43MDhsMi0yem0yLjcwOCAwIDIgMmEuNS41IDAgMCAxIDAgLjcwOGwtMiAyYS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyA4IDguNjQ2IDYuMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNjQ2IDUuNjQ2YS41LjUgMCAxIDEgLjcwOC43MDhMNS43MDcgOGwxLjY0NyAxLjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC0yLTJhLjUuNSAwIDAgMSAwLS43MDhsMi0yem0yLjcwOCAwYS41LjUgMCAxIDAtLjcwOC43MDhMMTAuMjkzIDggOC42NDYgOS42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwyLTJhLjUuNSAwIDAgMCAwLS43MDhsLTItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMTAtMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVEaWZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTguNSA0LjVWNkgxMGEuNS41IDAgMCAxIDAgMUg4LjV2MS41YS41LjUgMCAwIDEtMSAwVjdINmEuNS41IDAgMCAxIDAtMWgxLjVWNC41YS41LjUgMCAwIDEgMSAwek02IDEwaDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRGlmZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDRhLjUuNSAwIDAgMSAuNS41VjZIMTBhLjUuNSAwIDAgMSAwIDFIOC41djEuNWEuNS41IDAgMCAxLTEgMFY3SDZhLjUuNSAwIDAgMSAwLTFoMS41VjQuNUEuNS41IDAgMCAxIDggNHptLTIuNSA2LjVBLjUuNSAwIDAgMSA2IDEwaDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem0xMC0xSDRhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtBcnJvd0Rvd25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xem0tMSA0djMuNzkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTIgMmEuNS41IDAgMCAxLS43MDggMGwtMi0yYS41LjUgMCAwIDEgLjcwOC0uNzA4TDcuNSAxMS4yOTNWNy41YS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA2LjVhLjUuNSAwIDAgMC0xIDB2My43OTNMNi4zNTQgOS4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwyIDJhLjUuNSAwIDAgMCAuNzA4IDBsMi0yYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSAxMC4yOTNWNi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQXJyb3dVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTYuMzU0IDkuODU0YS41LjUgMCAwIDEtLjcwOC0uNzA4bDItMmEuNS41IDAgMCAxIC43MDggMGwyIDJhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgOC43MDdWMTIuNWEuNS41IDAgMCAxLTEgMFY4LjcwN0w2LjM1NCA5Ljg1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0Fycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVhLjUuNSAwIDAgMS0xIDBWNy43MDdMNi4zNTQgOC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDIgMmEuNS41IDAgMCAxLS43MDguNzA4TDguNSA3LjcwN1YxMS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQmFyR3JhcGhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xem0uNSAxMHYtNmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djZhLjUuNSAwIDAgMS0uNS41aC0xYS41LjUgMCAwIDEtLjUtLjV6bS0yLjUuNWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLS41LjVoLTF6bS0zIDBhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41aC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQmFyR3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTMuNWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di02YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41djZ6bS0yLjUuNWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLS41LjVoLTF6bS0zIDBhLjUuNSAwIDAgMS0uNS0uNXYtMmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41aC0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQmluYXJ5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUyNiAxMC4yNzNjLS41NDIgMC0uODMyLjU2My0uODMyIDEuNjEyIDAgLjA4OC4wMDMuMTczLjAwNi4yNTJsMS41NTktMS4xNDNjLS4xMjYtLjQ3NC0uMzc1LS43Mi0uNzMzLS43MnptLS43MzIgMi41MDhjLjEyNi40NzIuMzcyLjcxOC43MzIuNzE4LjU0IDAgLjgzLS41NjMuODMtMS42MTQgMC0uMDg1LS4wMDMtLjE3LS4wMDYtLjI1bC0xLjU1NiAxLjE0NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXptLTIuNDUgOC4zODVjMCAxLjQxNS0uNTQ4IDIuMjA2LTEuNTI0IDIuMjA2QzQuNTQ4IDE0LjA5IDQgMTMuMyA0IDExLjg4NWMwLTEuNDEyLjU0OC0yLjIwMyAxLjUyNi0yLjIwMy45NzYgMCAxLjUyNC43OSAxLjUyNCAyLjIwM3ptMy44MDUgMS41MlYxNGgtM3YtLjU5NWgxLjE4MVYxMC41aC0uMDVsLTEuMTM2Ljc0N3YtLjY4OGwxLjE5LS43ODZoLjY5djMuNjMzaDEuMTI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQmluYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDUgMTEuODg1YzAgMS40MTUtLjU0OCAyLjIwNi0xLjUyNCAyLjIwNkM0LjU0OCAxNC4wOSA0IDEzLjMgNCAxMS44ODVjMC0xLjQxMi41NDgtMi4yMDMgMS41MjYtMi4yMDMuOTc2IDAgMS41MjQuNzkgMS41MjQgMi4yMDN6bS0xLjUyNC0xLjYxMmMtLjU0MiAwLS44MzIuNTYzLS44MzIgMS42MTIgMCAuMDg4LjAwMy4xNzMuMDA2LjI1MmwxLjU1OS0xLjE0M2MtLjEyNi0uNDc0LS4zNzUtLjcyLS43MzMtLjcyem0tLjczMiAyLjUwOGMuMTI2LjQ3Mi4zNzIuNzE4LjczMi43MTguNTQgMCAuODMtLjU2My44My0xLjYxNCAwLS4wODUtLjAwMy0uMTctLjAwNi0uMjVsLTEuNTU2IDEuMTQ2em02LjA2MS42MjRWMTRoLTN2LS41OTVoMS4xODFWMTAuNWgtLjA1bC0xLjEzNi43NDd2LS42ODhsMS4xOS0uNzg2aC42OXYzLjYzM2gxLjEyNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0JyZWFrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBoNS4yOTNBMSAxIDAgMCAxIDEwIC4yOTNMMTMuNzA3IDRhMSAxIDAgMCAxIC4yOTMuNzA3VjlIMlYyYTIgMiAwIDAgMSAyLTJ6bTUuNSAxLjV2MmExIDEgMCAwIDAgMSAxaDJsLTMtM3pNMiAxMmgxMnYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0yek0uNSAxMGEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMUguNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0JyZWFrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDQuNVY5aC0xVjQuNWgtMkExLjUgMS41IDAgMCAxIDkuNSAzVjFINGExIDEgMCAwIDAtMSAxdjdIMlYyYTIgMiAwIDAgMSAyLTJoNS41TDE0IDQuNXpNMTMgMTJoMXYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0yaDF2MmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtMnpNLjUgMTBhLjUuNSAwIDAgMCAwIDFoMTVhLjUuNSAwIDAgMCAwLTFILjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6bTEuMzU0IDQuMzU0LTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgOS43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0NoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjg1NCA3Ljg1NGEuNS41IDAgMCAwLS43MDgtLjcwOEw3LjUgOS43OTMgNi4zNTQgOC42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwxLjUgMS41YS41LjUgMCAwIDAgLjcwOCAwbDMtM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0NvZGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek02LjY0NiA3LjY0NmEuNS41IDAgMSAxIC43MDguNzA4TDUuNzA3IDEwbDEuNjQ3IDEuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhsLTItMmEuNS41IDAgMCAxIDAtLjcwOGwyLTJ6bTIuNzA4IDAgMiAyYS41LjUgMCAwIDEgMCAuNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuMjkzIDEwIDguNjQ2IDguMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0LjVWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDUuNUwxNCA0LjV6bS0zIDBBMS41IDEuNSAwIDAgMSA5LjUgM1YxSDRhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0LjVoLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC42NDYgNi42NDZhLjUuNSAwIDAgMSAuNzA4IDBsMiAyYS41LjUgMCAwIDEgMCAuNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuMjkzIDkgOC42NDYgNy4zNTRhLjUuNSAwIDAgMSAwLS43MDh6bS0xLjI5MiAwYS41LjUgMCAwIDAtLjcwOCAwbC0yIDJhLjUuNSAwIDAgMCAwIC43MDhsMiAyYS41LjUgMCAwIDAgLjcwOC0uNzA4TDUuNzA3IDlsMS42NDctMS42NDZhLjUuNSAwIDAgMCAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtEaWZmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNOCA2YS41LjUgMCAwIDEgLjUuNVY4SDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWOUg2YS41LjUgMCAwIDEgMC0xaDEuNVY2LjVBLjUuNSAwIDAgMSA4IDZ6bS0yLjUgNi41QS41LjUgMCAwIDEgNiAxMmg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0RpZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA1YS41LjUgMCAwIDEgLjUuNVY3SDEwYS41LjUgMCAwIDEgMCAxSDguNXYxLjVhLjUuNSAwIDAgMS0xIDBWOEg2YS41LjUgMCAwIDEgMC0xaDEuNVY1LjVBLjUuNSAwIDAgMSA4IDV6bS0yLjUgNi41QS41LjUgMCAwIDEgNiAxMWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0Vhc2VsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDcuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTguNSA2aDJBMS41IDEuNSAwIDAgMSAxMiA3LjV2MmExLjUgMS41IDAgMCAxLTEuNSAxLjVoLS40NzNsLjQ0NyAxLjM0MmEuNS41IDAgMCAxLS45NDguMzE2TDguOTczIDExSDguNXYxYS41LjUgMCAwIDEtMSAwdi0xaC0uNDczbC0uNTUzIDEuNjU4YS41LjUgMCAxIDEtLjk0OC0uMzE2TDUuOTczIDExSDUuNUExLjUgMS41IDAgMCAxIDQgOS41di0yQTEuNSAxLjUgMCAwIDEgNS41IDZoMmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0Vhc2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA2YS41LjUgMCAxIDAtMSAwaC0yQTEuNSAxLjUgMCAwIDAgNCA3LjV2MkExLjUgMS41IDAgMCAwIDUuNSAxMWguNDczbC0uNDQ3IDEuMzQyYS41LjUgMCAxIDAgLjk0OC4zMTZMNy4wMjcgMTFINy41djFhLjUuNSAwIDAgMCAxIDB2LTFoLjQ3M2wuNTUzIDEuNjU4YS41LjUgMCAxIDAgLjk0OC0uMzE2TDEwLjAyNyAxMWguNDczQTEuNSAxLjUgMCAwIDAgMTIgOS41di0yQTEuNSAxLjUgMCAwIDAgMTAuNSA2aC0yek01IDcuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uNS41aC01YS41LjUgMCAwIDEtLjUtLjV2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtFeGNlbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTUuODg0IDYuNjggOCA5LjIxOWwyLjExNi0yLjU0YS41LjUgMCAxIDEgLjc2OC42NDFMOC42NTEgMTBsMi4yMzMgMi42OGEuNS41IDAgMCAxLS43NjguNjRMOCAxMC43ODFsLTIuMTE2IDIuNTRhLjUuNSAwIDAgMS0uNzY4LS42NDFMNy4zNDkgMTAgNS4xMTYgNy4zMmEuNS41IDAgMSAxIC43NjgtLjY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrRXhjZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS44ODQgNi42OGEuNS41IDAgMSAwLS43NjguNjRMNy4zNDkgMTBsLTIuMjMzIDIuNjhhLjUuNSAwIDAgMCAuNzY4LjY0TDggMTAuNzgxbDIuMTE2IDIuNTRhLjUuNSAwIDAgMCAuNzY4LS42NDFMOC42NTEgMTBsMi4yMzMtMi42OGEuNS41IDAgMCAwLS43NjgtLjY0TDggOS4yMTlsLTIuMTE2LTIuNTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg1LjI5M0ExIDEgMCAwIDEgMTAgLjI5M0wxMy43MDcgNGExIDEgMCAwIDEgLjI5My43MDdWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yem01LjUgMS41djJhMSAxIDAgMCAwIDEgMWgybC0zLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtGb250RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNNS4wNTcgNmg1Ljg4NkwxMSA4aC0uNWMtLjE4LTEuMDk2LS4zNTYtMS4xOTItMS42OTQtMS4yMzVsLS4yOTgtLjAxdjUuMDljMCAuNDcuMS41ODIuOTAzLjY1NXYuNUg2LjU5di0uNWMuNzk5LS4wNzMuODk4LS4xODQuODk4LS42NTRWNi43NTVsLS4yOTMuMDFDNS44NTYgNi44MDggNS42OCA2LjkwNSA1LjUgOEg1bC4wNTctMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0ZvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuOTQzIDZINS4wNTdMNSA4aC41Yy4xOC0xLjA5Ni4zNTYtMS4xOTIgMS42OTQtMS4yMzVsLjI5My0uMDF2NS4wOWMwIC40Ny0uMS41ODItLjg5OC42NTV2LjVIOS40MXYtLjVjLS44MDMtLjA3My0uOTAzLS4xODQtLjkwMy0uNjU0VjYuNzU1bC4yOTguMDFjMS4zMzguMDQzIDEuNTE0LjE0IDEuNjk0IDEuMjM1aC41bC0uMDU3LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNC41VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmg1LjVMMTQgNC41em0tMyAwQTEuNSAxLjUgMCAwIDEgOS41IDNWMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNC41aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrSW1hZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg1LjI5M0ExIDEgMCAwIDEgMTAgLjI5M0wxMy43MDcgNGExIDEgMCAwIDEgLjI5My43MDd2NS41ODZsLTIuNzMtMi43M2ExIDEgMCAwIDAtMS41Mi4xMjdsLTEuODg5IDIuNjQ0LTEuNzY5LTEuMDYyYTEgMSAwIDAgMC0xLjIyMi4xNUwyIDEyLjI5MlYyYTIgMiAwIDAgMSAyLTJ6bTUuNSAxLjV2MmExIDEgMCAwIDAgMSAxaDJsLTMtM3ptLTEuNDk4IDRhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNTY0IDguMjcgMTQgMTEuNzA4VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0uMjkzbDMuNTc4LTMuNTc3IDIuNTYgMS41MzYgMi40MjYtMy4zOTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUwMiA3YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmg1LjVMMTQgNC41VjE0ek00IDFhMSAxIDAgMCAwLTEgMXYxMGwyLjIyNC0yLjIyNGEuNS41IDAgMCAxIC42MS0uMDc1TDggMTFsMi4xNTctMy4wMmEuNS41IDAgMCAxIC43Ni0uMDYzTDEzIDEwVjQuNWgtMkExLjUgMS41IDAgMCAxIDkuNSAzVjFINHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0xvY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2ExIDEgMCAwIDEgMiAwdjFIN1Y3ek02IDkuM2MwLS4wNDIuMDItLjEwNy4xMDUtLjE3NUEuNjM3LjYzNyAwIDAgMSA2LjUgOWgzYS42NC42NCAwIDAgMSAuMzk1LjEyNWMuMDg1LjA2OC4xMDUuMTMzLjEwNS4xNzV2Mi40YzAgLjA0Mi0uMDIuMTA3LS4xMDUuMTc1QS42MzcuNjM3IDAgMCAxIDkuNSAxMmgtM2EuNjM3LjYzNyAwIDAgMS0uMzk1LS4xMjVDNi4wMiAxMS44MDcgNiAxMS43NDIgNiAxMS43VjkuM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNMTAgN3YxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOS4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjdhMiAyIDAgMSAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya0xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgN3YxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOS4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjdhMiAyIDAgMSAxIDQgMHpNNyA3djFoMlY3YTEgMSAwIDAgMC0yIDB6TTYgOS4zdjIuNGMwIC4wNDIuMDIuMTA3LjEwNS4xNzVBLjYzNy42MzcgMCAwIDAgNi41IDEyaDNhLjY0LjY0IDAgMCAwIC4zOTUtLjEyNWMuMDg1LS4wNjguMTA1LS4xMzMuMTA1LS4xNzVWOS4zYzAtLjA0Mi0uMDItLjEwNy0uMTA1LS4xNzVBLjYzNy42MzcgMCAwIDAgOS41IDloLTNhLjYzNy42MzcgMCAwIDAtLjM5NS4xMjVDNi4wMiA5LjE5MyA2IDkuMjU4IDYgOS4zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrTG9jazJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2ExIDEgMCAwIDEgMiAwdjFIN1Y3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek0xMCA3djEuMDc2Yy41NC4xNjYgMSAuNTk3IDEgMS4yMjR2Mi40YzAgLjgxNi0uNzgxIDEuMy0xLjUgMS4zaC0zYy0uNzE5IDAtMS41LS40ODQtMS41LTEuM1Y5LjNjMC0uNjI3LjQ2LTEuMDU4IDEtMS4yMjRWN2EyIDIgMCAxIDEgNCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrTG9jazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgN3YxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOS4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjdhMiAyIDAgMSAxIDQgMHpNNyA3djFoMlY3YTEgMSAwIDAgMC0yIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtNZWRpY2FsRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXptLTMgMnYuNjM0bC41NDktLjMxN2EuNS41IDAgMSAxIC41Ljg2Nkw3IDdsLjU0OS4zMTdhLjUuNSAwIDEgMS0uNS44NjZMNi41IDcuODY2VjguNWEuNS41IDAgMCAxLTEgMHYtLjYzNGwtLjU0OS4zMTdhLjUuNSAwIDEgMS0uNS0uODY2TDUgN2wtLjU0OS0uMzE3YS41LjUgMCAwIDEgLjUtLjg2NmwuNTQ5LjMxN1Y1LjVhLjUuNSAwIDEgMSAxIDB6bS0yIDQuNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xem0wIDJoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDUuNWEuNS41IDAgMCAwLTEgMHYuNjM0bC0uNTQ5LS4zMTdhLjUuNSAwIDEgMC0uNS44NjZMNiA3bC0uNTQ5LjMxN2EuNS41IDAgMSAwIC41Ljg2NmwuNTQ5LS4zMTdWOC41YS41LjUgMCAxIDAgMSAwdi0uNjM0bC41NDkuMzE3YS41LjUgMCAxIDAgLjUtLjg2Nkw4IDdsLjU0OS0uMzE3YS41LjUgMCAxIDAtLjUtLjg2NmwtLjU0OS4zMTdWNS41em0tMiA0LjVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXptMCAyYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtNaW51c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTYgOC41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya01pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA5YS41LjUgMCAwIDEgLjUtLjVoNGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNC41VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmg1LjVMMTQgNC41em0tMyAwQTEuNSAxLjUgMCAwIDEgOS41IDNWMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNC41aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrTXVzaWNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek0xMSA2LjY0djEuNzVsLTIgLjV2My42MWMwIC40OTUtLjMwMS44ODMtLjY2MiAxLjEyM0M3Ljk3NCAxMy44NjYgNy40OTkgMTQgNyAxNGMtLjUgMC0uOTc0LS4xMzQtMS4zMzgtLjM3Ny0uMzYtLjI0LS42NjItLjYyOC0uNjYyLTEuMTIzcy4zMDEtLjg4My42NjItMS4xMjNDNi4wMjYgMTEuMTM0IDYuNTAxIDExIDcgMTFjLjM1NiAwIC43LjA2OCAxIC4xOTZWNi44OWExIDEgMCAwIDEgLjc1Ny0uOTdsMS0uMjVBMSAxIDAgMCAxIDExIDYuNjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtNdXNpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2LjY0YTEgMSAwIDAgMC0xLjI0My0uOTdsLTEgLjI1QTEgMSAwIDAgMCA4IDYuODl2NC4zMDZBMi41NzIgMi41NzIgMCAwIDAgNyAxMWMtLjUgMC0uOTc0LjEzNC0xLjMzOC4zNzctLjM2LjI0LS42NjIuNjI4LS42NjIgMS4xMjNzLjMwMS44ODMuNjYyIDEuMTIzYy4zNjQuMjQzLjgzOS4zNzcgMS4zMzguMzc3LjUgMCAuOTc0LS4xMzQgMS4zMzgtLjM3Ny4zNi0uMjQuNjYyLS42MjguNjYyLTEuMTIzVjguODlsMi0uNVY2LjY0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrUGRmRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUyMyAxMi40MjRjLjE0LS4wODIuMjkzLS4xNjIuNDU5LS4yMzhhNy44NzggNy44NzggMCAwIDEtLjQ1LjYwNmMtLjI4LjMzNy0uNDk4LjUxNi0uNjM1LjU3MmEuMjY2LjI2NiAwIDAgMS0uMDM1LjAxMi4yODIuMjgyIDAgMCAxLS4wMjYtLjA0NGMtLjA1Ni0uMTEtLjA1NC0uMjE2LjA0LS4zNi4xMDYtLjE2NS4zMTktLjM1NC42NDctLjU0OHptMi40NTUtMS42NDdjLS4xMTkuMDI1LS4yMzcuMDUtLjM1Ni4wNzhhMjEuMTQ4IDIxLjE0OCAwIDAgMCAuNS0xLjA1IDEyLjA0NSAxMi4wNDUgMCAwIDAgLjUxLjg1OGMtLjIxNy4wMzItLjQzNi4wNy0uNjU0LjExNHptMi41MjUuOTM5YTMuODgxIDMuODgxIDAgMCAxLS40MzUtLjQxYy4yMjguMDA1LjQzNC4wMjIuNjEyLjA1NC4zMTcuMDU3LjQ2Ni4xNDcuNTE4LjIwOWEuMDk1LjA5NSAwIDAgMSAuMDI2LjA2NC40MzYuNDM2IDAgMCAxLS4wNi4yLjMwNy4zMDcgMCAwIDEtLjA5NC4xMjQuMTA3LjEwNyAwIDAgMS0uMDY5LjAxNWMtLjA5LS4wMDMtLjI1OC0uMDY2LS40OTgtLjI1NnpNOC4yNzggNi45N2MtLjA0LjI0NC0uMTA4LjUyNC0uMi44MjlhNC44NiA0Ljg2IDAgMCAxLS4wODktLjM0NmMtLjA3Ni0uMzUzLS4wODctLjYzLS4wNDYtLjgyMi4wMzgtLjE3Ny4xMS0uMjQ4LjE5Ni0uMjgzYS41MTcuNTE3IDAgMCAxIC4xNDUtLjA0Yy4wMTMuMDMuMDI4LjA5Mi4wMzIuMTk4LjAwNS4xMjItLjAwNy4yNzctLjAzOC40NjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgMGg1LjI5M0ExIDEgMCAwIDEgMTAgLjI5M0wxMy43MDcgNGExIDEgMCAwIDEgLjI5My43MDdWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yem01LjUgMS41djJhMSAxIDAgMCAwIDEgMWgybC0zLTN6TTQuMTY1IDEzLjY2OGMuMDkuMTguMjMuMzQzLjQzOC40MTkuMjA3LjA3NS40MTIuMDQuNTgtLjAzLjMxOC0uMTMuNjM1LS40MzYuOTI2LS43ODYuMzMzLS40MDEuNjgzLS45MjcgMS4wMjEtMS41MWExMS42NTEgMTEuNjUxIDAgMCAxIDEuOTk3LS40MDZjLjMuMzgzLjYxLjcxMy45MS45NS4yOC4yMi42MDMuNDAzLjkzNC40MTdhLjg1Ni44NTYgMCAwIDAgLjUxLS4xMzhjLjE1NS0uMTAxLjI3LS4yNDcuMzU0LS40MTYuMDktLjE4MS4xNDUtLjM3LjEzOC0uNTYzYS44NDQuODQ0IDAgMCAwLS4yLS41MThjLS4yMjYtLjI3LS41OTYtLjQtLjk2LS40NjVhNS43NiA1Ljc2IDAgMCAwLTEuMzM1LS4wNSAxMC45NTQgMTAuOTU0IDAgMCAxLS45OC0xLjY4NmMuMjUtLjY2LjQzNy0xLjI4NC41Mi0xLjc5NC4wMzYtLjIxOC4wNTUtLjQyNi4wNDgtLjYxNGExLjIzOCAxLjIzOCAwIDAgMC0uMTI3LS41MzguNy43IDAgMCAwLS40NzctLjM2NWMtLjIwMi0uMDQzLS40MSAwLS42MDEuMDc3LS4zNzcuMTUtLjU3Ni40Ny0uNjUxLjgyMy0uMDczLjM0LS4wNC43MzYuMDQ2IDEuMTM2LjA4OC40MDYuMjM4Ljg0OC40MyAxLjI5NWExOS42OTcgMTkuNjk3IDAgMCAxLTEuMDYyIDIuMjI3IDcuNjYyIDcuNjYyIDAgMCAwLTEuNDgyLjY0NWMtLjM3LjIyLS42OTkuNDgtLjg5Ny43ODctLjIxLjMyNi0uMjc1LjcxNC0uMDggMS4xMDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQZGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC42MDMgMTQuMDg3YS44MS44MSAwIDAgMS0uNDM4LS40MmMtLjE5NS0uMzg4LS4xMy0uNzc2LjA4LTEuMTAyLjE5OC0uMzA3LjUyNi0uNTY4Ljg5Ny0uNzg3YTcuNjggNy42OCAwIDAgMSAxLjQ4Mi0uNjQ1IDE5LjY5NyAxOS42OTcgMCAwIDAgMS4wNjItMi4yMjcgNy4yNjkgNy4yNjkgMCAwIDEtLjQzLTEuMjk1Yy0uMDg2LS40LS4xMTktLjc5Ni0uMDQ2LTEuMTM2LjA3NS0uMzU0LjI3NC0uNjcyLjY1LS44MjMuMTkyLS4wNzcuNC0uMTIuNjAyLS4wNzdhLjcuNyAwIDAgMSAuNDc3LjM2NWMuMDg4LjE2NC4xMi4zNTYuMTI3LjUzOC4wMDcuMTg4LS4wMTIuMzk2LS4wNDcuNjE0LS4wODQuNTEtLjI3IDEuMTM0LS41MiAxLjc5NGExMC45NTQgMTAuOTU0IDAgMCAwIC45OCAxLjY4NiA1Ljc1MyA1Ljc1MyAwIDAgMSAxLjMzNC4wNWMuMzY0LjA2Ni43MzQuMTk1Ljk2LjQ2NS4xMi4xNDQuMTkzLjMyLjIuNTE4LjAwNy4xOTItLjA0Ny4zODItLjEzOC41NjNhMS4wNCAxLjA0IDAgMCAxLS4zNTQuNDE2Ljg1Ni44NTYgMCAwIDEtLjUxLjEzOGMtLjMzMS0uMDE0LS42NTQtLjE5Ni0uOTMzLS40MTdhNS43MTIgNS43MTIgMCAwIDEtLjkxMS0uOTUgMTEuNjUxIDExLjY1MSAwIDAgMC0xLjk5Ny40MDYgMTEuMzA3IDExLjMwNyAwIDAgMS0xLjAyIDEuNTFjLS4yOTIuMzUtLjYwOS42NTYtLjkyNy43ODdhLjc5My43OTMgMCAwIDEtLjU4LjAyOXptMS4zNzktMS45MDFjLS4xNjYuMDc2LS4zMi4xNTYtLjQ1OS4yMzgtLjMyOC4xOTQtLjU0MS4zODMtLjY0Ny41NDctLjA5NC4xNDUtLjA5Ni4yNS0uMDQuMzYxLjAxLjAyMi4wMi4wMzYuMDI2LjA0NGEuMjY2LjI2NiAwIDAgMCAuMDM1LS4wMTJjLjEzNy0uMDU2LjM1NS0uMjM1LjYzNS0uNTcyYTguMTggOC4xOCAwIDAgMCAuNDUtLjYwNnptMS42NC0xLjMzYTEyLjcxIDEyLjcxIDAgMCAxIDEuMDEtLjE5MyAxMS43NDQgMTEuNzQ0IDAgMCAxLS41MS0uODU4IDIwLjgwMSAyMC44MDEgMCAwIDEtLjUgMS4wNXptMi40NDYuNDVjLjE1LjE2My4yOTYuMy40MzUuNDEuMjQuMTkuNDA3LjI1My40OTguMjU2YS4xMDcuMTA3IDAgMCAwIC4wNy0uMDE1LjMwNy4zMDcgMCAwIDAgLjA5NC0uMTI1LjQzNi40MzYgMCAwIDAgLjA1OS0uMi4wOTUuMDk1IDAgMCAwLS4wMjYtLjA2M2MtLjA1Mi0uMDYyLS4yLS4xNTItLjUxOC0uMjA5YTMuODc2IDMuODc2IDAgMCAwLS42MTItLjA1M3pNOC4wNzggNy44YTYuNyA2LjcgMCAwIDAgLjItLjgyOGMuMDMxLS4xODguMDQzLS4zNDMuMDM4LS40NjVhLjYxMy42MTMgMCAwIDAtLjAzMi0uMTk4LjUxNy41MTcgMCAwIDAtLjE0NS4wNGMtLjA4Ny4wMzUtLjE1OC4xMDYtLjE5Ni4yODMtLjA0LjE5Mi0uMDMuNDY5LjA0Ni44MjIuMDI0LjExMS4wNTQuMjI3LjA5LjM0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya1BlcnNvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTExIDhhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwem0yIDUuNzU1VjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi0uMjQ1UzQgMTIgOCAxMnM1IDEuNzU1IDUgMS43NTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOGEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMnY5LjI1NVMxMiAxMiA4IDEycy01IDEuNzU1LTUgMS43NTVWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrUGxheUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTYgNi44ODNhLjUuNSAwIDAgMSAuNzU3LS40MjlsMy41MjggMi4xMTdhLjUuNSAwIDAgMSAwIC44NThsLTMuNTI4IDIuMTE3YS41LjUgMCAwIDEtLjc1Ny0uNDNWNi44ODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNi44ODN2NC4yMzRhLjUuNSAwIDAgMCAuNzU3LjQyOWwzLjUyOC0yLjExN2EuNS41IDAgMCAwIDAtLjg1OEw2Ljc1NyA2LjQ1NGEuNS41IDAgMCAwLS43NTcuNDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQbHVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNOC41IDd2MS41SDEwYS41LjUgMCAwIDEgMCAxSDguNVYxMWEuNS41IDAgMCAxLTEgMFY5LjVINmEuNS41IDAgMCAxIDAtMWgxLjVWN2EuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA2LjVhLjUuNSAwIDAgMSAuNS41djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTFhLjUuNSAwIDAgMS0xIDBWOS41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjdhLjUuNSAwIDAgMSAuNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0LjVWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDUuNUwxNCA0LjV6bS0zIDBBMS41IDEuNSAwIDAgMSA5LjUgM1YxSDRhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0LjVoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQb3N0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXptLTUtLjVIN2EuNS41IDAgMCAxIDAgMUg0LjVhLjUuNSAwIDAgMSAwLTF6bTAgM2g3YS41LjUgMCAwIDEgLjUuNXY3YS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di03YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQb3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDQuNVYxNGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoNS41TDE0IDQuNXptLTMgMEExLjUgMS41IDAgMCAxIDkuNSAzVjFINGExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjQuNWgtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDYuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djdhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTd6bTAtM2EuNS41IDAgMCAxIC41LS41SDdhLjUuNSAwIDAgMSAwIDFINC41YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtQcHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMTg4IDEwSDdWNi41aDEuMTg4YTEuNzUgMS43NSAwIDEgMSAwIDMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBoNS4yOTNBMSAxIDAgMCAxIDEwIC4yOTNMMTMuNzA3IDRhMSAxIDAgMCAxIC4yOTMuNzA3VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMnptNS41IDEuNXYyYTEgMSAwIDAgMCAxIDFoMmwtMy0zek03IDUuNWExIDEgMCAwIDAtMSAxVjEzYS41LjUgMCAwIDAgMSAwdi0yaDEuMTg4YTIuNzUgMi43NSAwIDAgMCAwLTUuNUg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrUHB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNS41YTEgMSAwIDAgMC0xIDFWMTNhLjUuNSAwIDAgMCAxIDB2LTJoMS4xODhhMi43NSAyLjc1IDAgMCAwIDAtNS41SDd6TTguMTg4IDEwSDdWNi41aDEuMTg4YTEuNzUgMS43NSAwIDEgMSAwIDMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0LjVWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDUuNUwxNCA0LjV6bS0zIDBBMS41IDEuNSAwIDAgMSA5LjUgM1YxSDRhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0LjVoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtSaWNodGV4dEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTcgNi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0tLjg2MSAxLjU0MiAxLjMzLjg4NiAxLjg1NC0xLjg1NWEuMjUuMjUgMCAwIDEgLjI4OS0uMDQ3bDEuODg4Ljk3NFY5LjVhLjUuNSAwIDAgMS0uNS41SDVhLjUuNSAwIDAgMS0uNS0uNVY5czEuNTQtMS4yNzQgMS42MzktMS4yMDh6TTUgMTFoNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xem0wIDJoM2EuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrUmljaHRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNC41VjE0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmg1LjVMMTQgNC41em0tMyAwQTEuNSAxLjUgMCAwIDEgOS41IDNWMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNC41aC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAxMi41QS41LjUgMCAwIDEgNSAxMmgzYS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMS0uNS0uNXptMC0yQS41LjUgMCAwIDEgNSAxMGg2YS41LjUgMCAwIDEgMCAxSDVhLjUuNSAwIDAgMS0uNS0uNXptMS42MzktMy43MDggMS4zMy44ODYgMS44NTQtMS44NTVhLjI1LjI1IDAgMCAxIC4yODktLjA0N2wxLjg4OC45NzRWOC41YS41LjUgMCAwIDEtLjUuNUg1YS41LjUgMCAwIDEtLjUtLjVWOHMxLjU0LTEuMjc0IDEuNjM5LTEuMjA4ek02LjI1IDZhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrUnVsZWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek0zIDloMTB2MUg2djJoN3YxSDZ2Mkg1di0ySDN2LTFoMnYtMkgzVjl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtSdWxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjlIM1YyYTEgMSAwIDAgMSAxLTFoNS41djJ6TTMgMTJ2LTJoMnYySDN6bTAgMWgydjJINGExIDEgMCAwIDEtMS0xdi0xem0zIDJ2LTJoN3YxYTEgMSAwIDAgMS0xIDFINnptNy0zSDZ2LTJoN3YyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrU2xpZGVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDkuNzhWNy4yMmMwLS4wOTYuMTA2LS4xNTYuMTktLjEwNmwyLjEzIDEuMjc5YS4xMjUuMTI1IDAgMCAxIDAgLjIxNGwtMi4xMyAxLjI4QS4xMjUuMTI1IDAgMCAxIDcgOS43Nzh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTUgNmg2YS41LjUgMCAwIDEgLjQ5Ni40MzhsLjUgNEEuNS41IDAgMCAxIDExLjUgMTFoLTN2Mi4wMTZjLjg2My4wNTUgMS41LjI1MSAxLjUuNDg0IDAgLjI3Ni0uODk1LjUtMiAuNXMtMi0uMjI0LTItLjVjMC0uMjMzLjYzNy0uNDI5IDEuNS0uNDg0VjExaC0zYS41LjUgMCAwIDEtLjQ5Ni0uNTYybC41LTRBLjUuNSAwIDAgMSA1IDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtTbGlkZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA2YS41LjUgMCAwIDAtLjQ5Ni40MzhsLS41IDRBLjUuNSAwIDAgMCA0LjUgMTFoM3YyLjAxNmMtLjg2My4wNTUtMS41LjI1MS0xLjUuNDg0IDAgLjI3Ni44OTUuNSAyIC41czItLjIyNCAyLS41YzAtLjIzMy0uNjM3LS40MjktMS41LS40ODRWMTFoM2EuNS41IDAgMCAwIC40OTYtLjU2MmwtLjUtNEEuNS41IDAgMCAwIDExIDZINXptMiAzLjc4VjcuMjJjMC0uMDk2LjEwNi0uMTU2LjE5LS4xMDZsMi4xMyAxLjI3OWEuMTI1LjEyNSAwIDAgMSAwIC4yMTRsLTIuMTMgMS4yOEEuMTI1LjEyNSAwIDAgMSA3IDkuNzc4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrU3ByZWFkc2hlZXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTJ2LTJoM3YySDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6TTMgOWgxMHYxaC0zdjJoM3YxaC0zdjJIOXYtMkg2djJINXYtMkgzdi0xaDJ2LTJIM1Y5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrU3ByZWFkc2hlZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlY5SDNWMmExIDEgMCAwIDEgMS0xaDUuNXYyek0zIDEydi0yaDJ2Mkgzem0wIDFoMnYySDRhMSAxIDAgMCAxLTEtMXYtMXptMyAydi0yaDN2Mkg2em00IDB2LTJoM3YxYTEgMSAwIDAgMS0xIDFoLTJ6bTMtM2gtM3YtMmgzdjJ6bS03IDB2LTJoM3YySDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtUZXh0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNNC41IDlhLjUuNSAwIDAgMSAwLTFoN2EuNS41IDAgMCAxIDAgMWgtN3pNNCAxMC41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0uNSAyLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMWgtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya1RleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDdhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXpNNSA5LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6bTAgMmEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC41TDkuNSAwem0wIDF2MkExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtXb3JkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI5MyAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY0LjcwN0ExIDEgMCAwIDAgMTMuNzA3IDRMMTAgLjI5M0ExIDEgMCAwIDAgOS4yOTMgMHpNOS41IDMuNXYtMmwzIDNoLTJhMSAxIDAgMCAxLTEtMXpNNS40ODUgNi44NzlsMS4wMzYgNC4xNDQuOTk3LTMuNjU1YS41LjUgMCAwIDEgLjk2NCAwbC45OTcgMy42NTUgMS4wMzYtNC4xNDRhLjUuNSAwIDAgMSAuOTcuMjQybC0xLjUgNmEuNS41IDAgMCAxLS45NjcuMDFMOCA5LjQwMmwtMS4wMTggMy43M2EuNS41IDAgMCAxLS45NjctLjAxbC0xLjUtNmEuNS41IDAgMSAxIC45Ny0uMjQyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrV29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjQ4NSA2Ljg3OWEuNS41IDAgMSAwLS45Ny4yNDJsMS41IDZhLjUuNSAwIDAgMCAuOTY3LjAxTDggOS40MDJsMS4wMTggMy43M2EuNS41IDAgMCAwIC45NjctLjAxbDEuNS02YS41LjUgMCAwIDAtLjk3LS4yNDJsLTEuMDM2IDQuMTQ0LS45OTctMy42NTVhLjUuNSAwIDAgMC0uOTY0IDBsLS45OTcgMy42NTVMNS40ODUgNi44OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya1hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjkzIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjQuNzA3QTEgMSAwIDAgMCAxMy43MDcgNEwxMCAuMjkzQTEgMSAwIDAgMCA5LjI5MyAwek05LjUgMy41di0ybDMgM2gtMmExIDEgMCAwIDEtMS0xek02Ljg1NCA3LjE0NiA4IDguMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhMOC43MDcgOWwxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOS43MDdsLTEuMTQ2IDEuMTQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDcuMjkzIDkgNi4xNDYgNy44NTRhLjUuNSAwIDEgMSAuNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODU0IDcuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhMNy4yOTMgOWwtMS4xNDcgMS4xNDZhLjUuNSAwIDAgMCAuNzA4LjcwOEw4IDkuNzA3bDEuMTQ2IDEuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4TDguNzA3IDlsMS4xNDctMS4xNDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMOCA4LjI5MyA2Ljg1NCA3LjE0NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFybWFya1ppcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDkuNDM4VjguNWgxdi45MzhhMSAxIDAgMCAwIC4wMy4yNDNsLjQgMS41OTgtLjkzLjYyLS45My0uNjIuNC0xLjU5OGExIDEgMCAwIDAgLjAzLS4yNDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yOTMgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNC43MDdBMSAxIDAgMCAwIDEzLjcwNyA0TDEwIC4yOTNBMSAxIDAgMCAwIDkuMjkzIDB6TTkuNSAzLjV2LTJsMyAzaC0yYTEgMSAwIDAgMS0xLTF6bS00LS41VjJoLTFWMUg2djFoMXYxSDZ2MWgxdjFINnYxaDF2MUg1LjVWNmgtMVY1aDFWNGgtMVYzaDF6bTAgNC41aDFhMSAxIDAgMCAxIDEgMXYuOTM4bC40IDEuNTk5YTEgMSAwIDAgMS0uNDE2IDEuMDc0bC0uOTMuNjJhMSAxIDAgMCAxLTEuMTA5IDBsLS45My0uNjJhMSAxIDAgMCAxLS40MTUtMS4wNzRsLjQtMS41OTlWOC41YTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZUVhcm1hcmtaaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA3LjVhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2LjkzOGwuNCAxLjU5OWExIDEgMCAwIDEtLjQxNiAxLjA3NGwtLjkzLjYyYTEgMSAwIDAgMS0xLjExIDBsLS45MjktLjYyYTEgMSAwIDAgMS0uNDE1LTEuMDc0TDUgOC40MzhWNy41em0yIDBINnYuOTM4YTEgMSAwIDAgMS0uMDMuMjQzbC0uNCAxLjU5OC45My42Mi45MjktLjYyLS40LTEuNTk4QTEgMSAwIDAgMSA3IDguNDM4VjcuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0LjVWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDUuNUwxNCA0LjV6bS0zIDBBMS41IDEuNSAwIDAgMSA5LjUgM1YxaC0ydjFoLTF2MWgxdjFoLTF2MWgxdjFINlY1SDVWNGgxVjNINVYyaDFWMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNC41aC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFYXJtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDQuNVYxNGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJoNS41TDE0IDQuNXptLTMgMEExLjUgMS41IDAgMCAxIDkuNSAzVjFINGExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjQuNWgtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFzZWxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNi41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTguNSA1aDJBMS41IDEuNSAwIDAgMSAxMiA2LjV2MmExLjUgMS41IDAgMCAxLTEuNSAxLjVoLS40NzNsLjQ0NyAxLjM0MmEuNS41IDAgMCAxLS45NDguMzE2TDguOTczIDEwSDguNXYxYS41LjUgMCAwIDEtMSAwdi0xaC0uNDczbC0uNTUzIDEuNjU4YS41LjUgMCAxIDEtLjk0OC0uMzE2TDUuOTczIDEwSDUuNUExLjUgMS41IDAgMCAxIDQgOC41di0yQTEuNSAxLjUgMCAwIDEgNS41IDVoMmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRWFzZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDVhLjUuNSAwIDEgMC0xIDBoLTJBMS41IDEuNSAwIDAgMCA0IDYuNXYyQTEuNSAxLjUgMCAwIDAgNS41IDEwaC40NzNsLS40NDcgMS4zNDJhLjUuNSAwIDEgMCAuOTQ4LjMxNkw3LjAyNyAxMEg3LjV2MWEuNS41IDAgMCAwIDEgMHYtMWguNDczbC41NTMgMS42NThhLjUuNSAwIDEgMCAuOTQ4LS4zMTZMMTAuMDI3IDEwaC40NzNBMS41IDEuNSAwIDAgMCAxMiA4LjV2LTJBMS41IDEuNSAwIDAgMCAxMC41IDVoLTJ6TTUgNi41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMTAtMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVFeGNlbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek01Ljg4NCA0LjY4IDggNy4yMTlsMi4xMTYtMi41NGEuNS41IDAgMSAxIC43NjguNjQxTDguNjUxIDhsMi4yMzMgMi42OGEuNS41IDAgMCAxLS43NjguNjRMOCA4Ljc4MWwtMi4xMTYgMi41NGEuNS41IDAgMCAxLS43NjgtLjY0MUw3LjM0OSA4IDUuMTE2IDUuMzJhLjUuNSAwIDEgMSAuNzY4LS42NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRXhjZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4xOCA0LjYxNmEuNS41IDAgMCAxIC43MDQuMDY0TDggNy4yMTlsMi4xMTYtMi41NGEuNS41IDAgMSAxIC43NjguNjQxTDguNjUxIDhsMi4yMzMgMi42OGEuNS41IDAgMCAxLS43NjguNjRMOCA4Ljc4MWwtMi4xMTYgMi41NGEuNS41IDAgMCAxLS43NjgtLjY0MUw3LjM0OSA4IDUuMTE2IDUuMzJhLjUuNSAwIDAgMSAuMDY0LS43MDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDBoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlRm9udEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek01LjA1NyA0aDUuODg2TDExIDZoLS41Yy0uMTgtMS4wOTYtLjM1Ni0xLjE5Mi0xLjY5NC0xLjIzNWwtLjI5OC0uMDF2Ni4wOWMwIC40Ny4xLjU4Mi45MDMuNjU1di41SDYuNTl2LS41Yy43OTktLjA3My44OTgtLjE4NC44OTgtLjY1NFY0Ljc1NWwtLjI5My4wMUM1Ljg1NiA0LjgwOCA1LjY4IDQuOTA1IDUuNSA2SDVsLjA1Ny0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVGb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjk0MyA0SDUuMDU3TDUgNmguNWMuMTgtMS4wOTYuMzU2LTEuMTkyIDEuNjk0LTEuMjM1bC4yOTMtLjAxdjYuMDljMCAuNDctLjEuNTgyLS44OTguNjU1di41SDkuNDF2LS41Yy0uODAzLS4wNzMtLjkwMy0uMTg0LS45MDMtLjY1NFY0Ljc1NWwuMjk4LjAxYzEuMzM4LjA0MyAxLjUxNC4xNCAxLjY5NCAxLjIzNWguNWwtLjA1Ny0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkg0em0wIDFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlSW1hZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg4YTIgMiAwIDAgMSAyIDJ2OC4yOTNsLTIuNzMtMi43M2ExIDEgMCAwIDAtMS41Mi4xMjdsLTEuODg5IDIuNjQ0LTEuNzY5LTEuMDYyYTEgMSAwIDAgMC0xLjIyMi4xNUwyIDEyLjI5MlYyYTIgMiAwIDAgMSAyLTJ6bTQuMDAyIDUuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41NjQgOC4yNyAxNCAxMS43MDhWMTRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LS4yOTNsMy41NzgtMy41NzcgMi41NiAxLjUzNiAyLjQyNi0zLjM5NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wMDIgNS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNMyAyYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjhsLTIuMDgzLTIuMDgzYS41LjUgMCAwIDAtLjc2LjA2M0w4IDExIDUuODM1IDkuN2EuNS41IDAgMCAwLS42MTEuMDc2TDMgMTJWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlTG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA2YTEgMSAwIDAgMSAyIDB2MUg3VjZ6TTYgOC4zYzAtLjA0Mi4wMi0uMTA3LjEwNS0uMTc1QS42MzcuNjM3IDAgMCAxIDYuNSA4aDNhLjY0LjY0IDAgMCAxIC4zOTUuMTI1Yy4wODUuMDY4LjEwNS4xMzMuMTA1LjE3NXYyLjRjMCAuMDQyLS4wMi4xMDctLjEwNS4xNzVBLjYzNy42MzcgMCAwIDEgOS41IDExaC0zYS42MzcuNjM3IDAgMCAxLS4zOTUtLjEyNUM2LjAyIDEwLjgwNyA2IDEwLjc0MiA2IDEwLjdWOC4zelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnptLTIgNnYxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOC4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjZhMiAyIDAgMSAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDVhMSAxIDAgMCAxIDEgMXYxSDdWNmExIDEgMCAwIDEgMS0xem0yIDIuMDc2VjZhMiAyIDAgMSAwLTQgMHYxLjA3NmMtLjU0LjE2Ni0xIC41OTctMSAxLjIyNHYyLjRjMCAuODE2Ljc4MSAxLjMgMS41IDEuM2gzYy43MTkgMCAxLjUtLjQ4NCAxLjUtMS4zVjguM2MwLS42MjctLjQ2LTEuMDU4LTEtMS4yMjR6TTYuMTA1IDguMTI1QS42MzcuNjM3IDAgMCAxIDYuNSA4aDNhLjY0LjY0IDAgMCAxIC4zOTUuMTI1Yy4wODUuMDY4LjEwNS4xMzMuMTA1LjE3NXYyLjRjMCAuMDQyLS4wMi4xMDctLjEwNS4xNzVBLjYzNy42MzcgMCAwIDEgOS41IDExaC0zYS42MzcuNjM3IDAgMCAxLS4zOTUtLjEyNUM2LjAyIDEwLjgwNyA2IDEwLjc0MiA2IDEwLjdWOC4zYzAtLjA0Mi4wMi0uMTA3LjEwNS0uMTc1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkg0em0wIDFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlTG9jazJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNmExIDEgMCAwIDEgMiAwdjFIN1Y2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnptLTIgNnYxLjA3NmMuNTQuMTY2IDEgLjU5NyAxIDEuMjI0djIuNGMwIC44MTYtLjc4MSAxLjMtMS41IDEuM2gtM2MtLjcxOSAwLTEuNS0uNDg0LTEuNS0xLjNWOC4zYzAtLjYyNy40Ni0xLjA1OCAxLTEuMjI0VjZhMiAyIDAgMSAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlTG9jazIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA1YTEgMSAwIDAgMSAxIDF2MUg3VjZhMSAxIDAgMCAxIDEtMXptMiAyLjA3NlY2YTIgMiAwIDEgMC00IDB2MS4wNzZjLS41NC4xNjYtMSAuNTk3LTEgMS4yMjR2Mi40YzAgLjgxNi43ODEgMS4zIDEuNSAxLjNoM2MuNzE5IDAgMS41LS40ODQgMS41LTEuM1Y4LjNjMC0uNjI3LS40Ni0xLjA1OC0xLTEuMjI0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkg0em0wIDFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlTWVkaWNhbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek04LjUgNC41di42MzRsLjU0OS0uMzE3YS41LjUgMCAxIDEgLjUuODY2TDkgNmwuNTQ5LjMxN2EuNS41IDAgMSAxLS41Ljg2Nkw4LjUgNi44NjZWNy41YS41LjUgMCAwIDEtMSAwdi0uNjM0bC0uNTQ5LjMxN2EuNS41IDAgMSAxLS41LS44NjZMNyA2bC0uNTQ5LS4zMTdhLjUuNSAwIDAgMSAuNS0uODY2bC41NDkuMzE3VjQuNWEuNS41IDAgMSAxIDEgMHpNNS41IDloNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMXptMCAyaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDQuNWEuNS41IDAgMCAwLTEgMHYuNjM0bC0uNTQ5LS4zMTdhLjUuNSAwIDEgMC0uNS44NjZMNyA2bC0uNTQ5LjMxN2EuNS41IDAgMSAwIC41Ljg2NmwuNTQ5LS4zMTdWNy41YS41LjUgMCAxIDAgMSAwdi0uNjM0bC41NDkuMzE3YS41LjUgMCAxIDAgLjUtLjg2Nkw5IDZsLjU0OS0uMzE3YS41LjUgMCAxIDAtLjUtLjg2NmwtLjU0OS4zMTdWNC41ek01LjUgOWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01em0wIDJhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMTAtMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVNaW51c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek02IDcuNWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMSAwLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA4YS41LjUgMCAwIDEgLjUtLjVoNGEuNS41IDAgMCAxIDAgMUg2YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVNdXNpY0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yem0tLjUgNC4xMXYxLjhsLTIuNS41djUuMDljMCAuNDk1LS4zMDEuODgzLS42NjIgMS4xMjNDNy45NzQgMTIuODY2IDcuNDk5IDEzIDcgMTNjLS41IDAtLjk3NC0uMTM0LTEuMzM4LS4zNzctLjM2LS4yNC0uNjYyLS42MjgtLjY2Mi0xLjEyM3MuMzAxLS44ODMuNjYyLTEuMTIzQzYuMDI2IDEwLjEzNCA2LjUwMSAxMCA3IDEwYy4zNTYgMCAuNy4wNjggMSAuMTk2VjQuNDFhMSAxIDAgMCAxIC44MDQtLjk4bDEuNS0uM2ExIDEgMCAwIDEgMS4xOTYuOTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZU11c2ljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjMwNCAzLjEzYTEgMSAwIDAgMSAxLjE5Ni45OHYxLjhsLTIuNS41djUuMDljMCAuNDk1LS4zMDEuODgzLS42NjIgMS4xMjNDNy45NzQgMTIuODY2IDcuNDk5IDEzIDcgMTNjLS41IDAtLjk3NC0uMTM0LTEuMzM4LS4zNzctLjM2LS4yNC0uNjYyLS42MjgtLjY2Mi0xLjEyM3MuMzAxLS44ODMuNjYyLTEuMTIzQzYuMDI2IDEwLjEzNCA2LjUwMSAxMCA3IDEwYy4zNTYgMCAuNy4wNjggMSAuMTk2VjQuNDFhMSAxIDAgMCAxIC44MDQtLjk4bDEuNS0uM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVBkZkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41MjMgMTAuNDI0Yy4xNC0uMDgyLjI5My0uMTYyLjQ1OS0uMjM4YTcuODc4IDcuODc4IDAgMCAxLS40NS42MDZjLS4yOC4zMzctLjQ5OC41MTYtLjYzNS41NzJhLjI2Ni4yNjYgMCAwIDEtLjAzNS4wMTIuMjgyLjI4MiAwIDAgMS0uMDI2LS4wNDRjLS4wNTYtLjExLS4wNTQtLjIxNi4wNC0uMzYuMTA2LS4xNjUuMzE5LS4zNTQuNjQ3LS41NDh6bTIuNDU1LTEuNjQ3Yy0uMTE5LjAyNS0uMjM3LjA1LS4zNTYuMDc4YTIxLjAzNSAyMS4wMzUgMCAwIDAgLjUtMS4wNSAxMS45NiAxMS45NiAwIDAgMCAuNTEuODU4Yy0uMjE3LjAzMi0uNDM2LjA3LS42NTQuMTE0em0yLjUyNS45MzlhMy44ODggMy44ODggMCAwIDEtLjQzNS0uNDFjLjIyOC4wMDUuNDM0LjAyMi42MTIuMDU0LjMxNy4wNTcuNDY2LjE0Ny41MTguMjA5YS4wOTUuMDk1IDAgMCAxIC4wMjYuMDY0LjQzNi40MzYgMCAwIDEtLjA2LjIuMzA3LjMwNyAwIDAgMS0uMDk0LjEyNC4xMDcuMTA3IDAgMCAxLS4wNjkuMDE1Yy0uMDktLjAwMy0uMjU4LS4wNjYtLjQ5OC0uMjU2ek04LjI3OCA0Ljk3Yy0uMDQuMjQ0LS4xMDguNTI0LS4yLjgyOWE0Ljg2IDQuODYgMCAwIDEtLjA4OS0uMzQ2Yy0uMDc2LS4zNTMtLjA4Ny0uNjMtLjA0Ni0uODIyLjAzOC0uMTc3LjExLS4yNDguMTk2LS4yODNhLjUxNy41MTcgMCAwIDEgLjE0NS0uMDRjLjAxMy4wMy4wMjguMDkyLjAzMi4xOTguMDA1LjEyMi0uMDA3LjI3Ny0uMDM4LjQ2NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAwaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyYTIgMiAwIDAgMSAyLTJ6bS4xNjUgMTEuNjY4Yy4wOS4xOC4yMy4zNDMuNDM4LjQxOS4yMDcuMDc1LjQxMi4wNC41OC0uMDMuMzE4LS4xMy42MzUtLjQzNi45MjYtLjc4Ni4zMzMtLjQwMS42ODMtLjkyNyAxLjAyMS0xLjUxYTExLjY0IDExLjY0IDAgMCAxIDEuOTk3LS40MDZjLjMuMzgzLjYxLjcxMy45MS45NS4yOC4yMi42MDMuNDAzLjkzNC40MTdhLjg1Ni44NTYgMCAwIDAgLjUxLS4xMzhjLjE1NS0uMTAxLjI3LS4yNDcuMzU0LS40MTYuMDktLjE4MS4xNDUtLjM3LjEzOC0uNTYzYS44NDQuODQ0IDAgMCAwLS4yLS41MThjLS4yMjYtLjI3LS41OTYtLjQtLjk2LS40NjVhNS43NiA1Ljc2IDAgMCAwLTEuMzM1LS4wNSAxMC45NTQgMTAuOTU0IDAgMCAxLS45OC0xLjY4NmMuMjUtLjY2LjQzNy0xLjI4NC41Mi0xLjc5NC4wMzYtLjIxOC4wNTUtLjQyNi4wNDgtLjYxNGExLjIzOCAxLjIzOCAwIDAgMC0uMTI3LS41MzguNy43IDAgMCAwLS40NzctLjM2NWMtLjIwMi0uMDQzLS40MSAwLS42MDEuMDc3LS4zNzcuMTUtLjU3Ni40Ny0uNjUxLjgyMy0uMDczLjM0LS4wNC43MzYuMDQ2IDEuMTM2LjA4OC40MDYuMjM4Ljg0OC40MyAxLjI5NWExOS43MDcgMTkuNzA3IDAgMCAxLTEuMDYyIDIuMjI3IDcuNjYyIDcuNjYyIDAgMCAwLTEuNDgyLjY0NWMtLjM3LjIyLS42OTkuNDgtLjg5Ny43ODctLjIxLjMyNi0uMjc1LjcxNC0uMDggMS4xMDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVBkZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC42MDMgMTIuMDg3YS44MS44MSAwIDAgMS0uNDM4LS40MmMtLjE5NS0uMzg4LS4xMy0uNzc2LjA4LTEuMTAyLjE5OC0uMzA3LjUyNi0uNTY4Ljg5Ny0uNzg3YTcuNjggNy42OCAwIDAgMSAxLjQ4Mi0uNjQ1IDE5LjcwMSAxOS43MDEgMCAwIDAgMS4wNjItMi4yMjcgNy4yNjkgNy4yNjkgMCAwIDEtLjQzLTEuMjk1Yy0uMDg2LS40LS4xMTktLjc5Ni0uMDQ2LTEuMTM2LjA3NS0uMzU0LjI3NC0uNjcyLjY1LS44MjMuMTkyLS4wNzcuNC0uMTIuNjAyLS4wNzdhLjcuNyAwIDAgMSAuNDc3LjM2NWMuMDg4LjE2NC4xMi4zNTYuMTI3LjUzOC4wMDcuMTg3LS4wMTIuMzk1LS4wNDcuNjE0LS4wODQuNTEtLjI3IDEuMTM0LS41MiAxLjc5NGExMC45NTQgMTAuOTU0IDAgMCAwIC45OCAxLjY4NiA1Ljc1MyA1Ljc1MyAwIDAgMSAxLjMzNC4wNWMuMzY0LjA2NS43MzQuMTk1Ljk2LjQ2NS4xMi4xNDQuMTkzLjMyLjIuNTE4LjAwNy4xOTItLjA0Ny4zODItLjEzOC41NjNhMS4wNCAxLjA0IDAgMCAxLS4zNTQuNDE2Ljg1Ni44NTYgMCAwIDEtLjUxLjEzOGMtLjMzMS0uMDE0LS42NTQtLjE5Ni0uOTMzLS40MTdhNS43MTYgNS43MTYgMCAwIDEtLjkxMS0uOTUgMTEuNjQyIDExLjY0MiAwIDAgMC0xLjk5Ny40MDYgMTEuMzExIDExLjMxMSAwIDAgMS0xLjAyMSAxLjUxYy0uMjkuMzUtLjYwOC42NTUtLjkyNi43ODdhLjc5My43OTMgMCAwIDEtLjU4LjAyOXptMS4zNzktMS45MDFjLS4xNjYuMDc2LS4zMi4xNTYtLjQ1OS4yMzgtLjMyOC4xOTQtLjU0MS4zODMtLjY0Ny41NDctLjA5NC4xNDUtLjA5Ni4yNS0uMDQuMzYxLjAxLjAyMi4wMi4wMzYuMDI2LjA0NGEuMjcuMjcgMCAwIDAgLjAzNS0uMDEyYy4xMzctLjA1Ni4zNTUtLjIzNS42MzUtLjU3MmE4LjE4IDguMTggMCAwIDAgLjQ1LS42MDZ6bTEuNjQtMS4zM2ExMi42NDcgMTIuNjQ3IDAgMCAxIDEuMDEtLjE5MyAxMS42NjYgMTEuNjY2IDAgMCAxLS41MS0uODU4IDIwLjc0MSAyMC43NDEgMCAwIDEtLjUgMS4wNXptMi40NDYuNDVjLjE1LjE2Mi4yOTYuMy40MzUuNDEuMjQuMTkuNDA3LjI1My40OTguMjU2YS4xMDcuMTA3IDAgMCAwIC4wNy0uMDE1LjMwNy4zMDcgMCAwIDAgLjA5NC0uMTI1LjQzNi40MzYgMCAwIDAgLjA1OS0uMi4wOTUuMDk1IDAgMCAwLS4wMjYtLjA2M2MtLjA1Mi0uMDYyLS4yLS4xNTItLjUxOC0uMjA5YTMuODgxIDMuODgxIDAgMCAwLS42MTItLjA1M3pNOC4wNzggNS44YTYuNyA2LjcgMCAwIDAgLjItLjgyOGMuMDMxLS4xODguMDQzLS4zNDMuMDM4LS40NjVhLjYxMy42MTMgMCAwIDAtLjAzMi0uMTk4LjUxNy41MTcgMCAwIDAtLjE0NS4wNGMtLjA4Ny4wMzUtLjE1OC4xMDYtLjE5Ni4yODMtLjA0LjE5Mi0uMDMuNDY5LjA0Ni44MjIuMDI0LjExMS4wNTQuMjI3LjA5LjM0NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlUGVyc29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6bS0xIDdhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwem0tMyA0YzIuNjIzIDAgNC4xNDYuODI2IDUgMS43NTVWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LTEuMjQ1QzMuODU0IDExLjgyNSA1LjM3NyAxMSA4IDExelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMWExIDEgMCAwIDEgMSAxdjEwLjc1NVMxMiAxMSA4IDExcy01IDEuNzU1LTUgMS43NTVWMmExIDEgMCAwIDEgMS0xaDh6TTQgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkg0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTBhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVQbGF5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTYgNS44ODNhLjUuNSAwIDAgMSAuNzU3LS40MjlsMy41MjggMi4xMTdhLjUuNSAwIDAgMSAwIC44NThsLTMuNTI4IDIuMTE3YS41LjUgMCAwIDEtLjc1Ny0uNDNWNS44ODR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMC4xMTdWNS44ODNhLjUuNSAwIDAgMSAuNzU3LS40MjlsMy41MjggMi4xMTdhLjUuNSAwIDAgMSAwIC44NThsLTMuNTI4IDIuMTE3YS41LjUgMCAwIDEtLjc1Ny0uNDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVQbHVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTguNSA2djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTBhLjUuNSAwIDAgMS0xIDBWOC41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjZhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDZhLjUuNSAwIDAgMC0xIDB2MS41SDZhLjUuNSAwIDAgMCAwIDFoMS41VjEwYS41LjUgMCAwIDAgMSAwVjguNUgxMGEuNS41IDAgMCAwIDAtMUg4LjVWNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMTAtMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVQb3N0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTQuNSAzaDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTF6bTAgMmg3YS41LjUgMCAwIDEgLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtN2EuNS41IDAgMCAxLS41LS41di04YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVBvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAzLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6bTAgMmEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djhhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJ6bTEwLTFINGExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlUHB0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjE4OCA4LjVIN1Y1aDEuMTg4YTEuNzUgMS43NSAwIDEgMSAwIDMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMnptMyA0YTEgMSAwIDAgMC0xIDF2Ni41YS41LjUgMCAwIDAgMSAwdi0yaDEuMTg4YTIuNzUgMi43NSAwIDAgMCAwLTUuNUg3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVQcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJ6bTEwLTFINGExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDVhMSAxIDAgMCAxIDEtMWgxLjE4OGEyLjc1IDIuNzUgMCAwIDEgMCA1LjVIN3YyYS41LjUgMCAwIDEtMSAwVjV6bTEgMy41aDEuMTg4YTEuNzUgMS43NSAwIDEgMCAwLTMuNUg3djMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlUmljaHRleHRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNNyA0LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDB6bS0uODYxIDEuNTQyIDEuMzMuODg2IDEuODU0LTEuODU1YS4yNS4yNSAwIDAgMSAuMjg5LS4wNDdsMS44ODguOTc0VjcuNWEuNS41IDAgMCAxLS41LjVINWEuNS41IDAgMCAxLS41LS41VjdzMS41NC0xLjI3NCAxLjYzOS0xLjIwOHpNNSA5aDZhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxIDAtMXptMCAyaDNhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlUmljaHRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA0LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDB6bS0uODYxIDEuNTQyIDEuMzMuODg2IDEuODU0LTEuODU1YS4yNS4yNSAwIDAgMSAuMjg5LS4wNDdsMS44ODguOTc0VjcuNWEuNS41IDAgMCAxLS41LjVINWEuNS41IDAgMCAxLS41LS41VjdzMS41NC0xLjI3NCAxLjYzOS0xLjIwOHpNNSA5YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTFINXptMCAyYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFINXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMTAtMUg0YTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVSdWxlZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2NGgxMlYyYTIgMiAwIDAgMC0yLTJ6bTIgN0g2djJoOFY3em0wIDNINnYyaDh2LTJ6bTAgM0g2djNoNmEyIDIgMCAwIDAgMi0ydi0xem0tOSAzdi0zSDJ2MWEyIDIgMCAwIDAgMiAyaDF6bS0zLTRoM3YtMkgydjJ6bTAtM2gzVjdIMnYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVSdWxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMi0xYTEgMSAwIDAgMC0xIDF2NGgxMFYyYTEgMSAwIDAgMC0xLTFINHptOSA2SDZ2Mmg3Vjd6bTAgM0g2djJoN3YtMnptMCAzSDZ2Mmg2YTEgMSAwIDAgMCAxLTF2LTF6bS04IDJ2LTJIM3YxYTEgMSAwIDAgMCAxIDFoMXptLTItM2gydi0ySDN2MnptMC0zaDJWN0gzdjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVNsaWRlc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3Ljc4VjUuMjJjMC0uMDk2LjEwNi0uMTU2LjE5LS4xMDZsMi4xMyAxLjI3OWEuMTI1LjEyNSAwIDAgMSAwIC4yMTRsLTIuMTMgMS4yOEEuMTI1LjEyNSAwIDAgMSA3IDcuNzc4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMnpNNSA0aDZhLjUuNSAwIDAgMSAuNDk2LjQzOGwuNSA0QS41LjUgMCAwIDEgMTEuNSA5aC0zdjIuMDE2Yy44NjMuMDU1IDEuNS4yNTEgMS41LjQ4NCAwIC4yNzYtLjg5NS41LTIgLjVzLTItLjIyNC0yLS41YzAtLjIzMy42MzctLjQyOSAxLjUtLjQ4NFY5aC0zYS41LjUgMCAwIDEtLjQ5Ni0uNTYybC41LTRBLjUuNSAwIDAgMSA1IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVNsaWRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDRhLjUuNSAwIDAgMC0uNDk2LjQzOGwtLjUgNEEuNS41IDAgMCAwIDQuNSA5aDN2Mi4wMTZjLS44NjMuMDU1LTEuNS4yNTEtMS41LjQ4NCAwIC4yNzYuODk1LjUgMiAuNXMyLS4yMjQgMi0uNWMwLS4yMzMtLjYzNy0uNDI5LTEuNS0uNDg0VjloM2EuNS41IDAgMCAwIC40OTYtLjU2MmwtLjUtNEEuNS41IDAgMCAwIDExIDRINXptMiAzLjc4VjUuMjJjMC0uMDk2LjEwNi0uMTU2LjE5LS4xMDZsMi4xMyAxLjI3OWEuMTI1LjEyNSAwIDAgMSAwIC4yMTRsLTIuMTMgMS4yOEEuMTI1LjEyNSAwIDAgMSA3IDcuNzc4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem0xMC0xSDRhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVNwcmVhZHNoZWV0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAwSDRhMiAyIDAgMCAwLTIgMnY0aDEyVjJhMiAyIDAgMCAwLTItMnptMiA3aC00djJoNFY3em0wIDNoLTR2Mmg0di0yem0wIDNoLTR2M2gyYTIgMiAwIDAgMCAyLTJ2LTF6bS01IDN2LTNINnYzaDN6bS00IDB2LTNIMnYxYTIgMiAwIDAgMCAyIDJoMXptLTMtNGgzdi0ySDJ2MnptMC0zaDNWN0gydjJ6bTQgMFY3aDN2Mkg2em0wIDFoM3YySDZ2LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVNwcmVhZHNoZWV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem0yLTFhMSAxIDAgMCAwLTEgMXY0aDEwVjJhMSAxIDAgMCAwLTEtMUg0em05IDZoLTN2MmgzVjd6bTAgM2gtM3YyaDN2LTJ6bTAgM2gtM3YyaDJhMSAxIDAgMCAwIDEtMXYtMXptLTQgMnYtMkg2djJoM3ptLTQgMHYtMkgzdjFhMSAxIDAgMCAwIDEgMWgxem0tMi0zaDJ2LTJIM3Yyem0wLTNoMlY3SDN2MnptMy0ydjJoM1Y3SDZ6bTMgM0g2djJoM3YtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlVGV4dEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek01IDRoNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xem0tLjUgMi41QS41LjUgMCAwIDEgNSA2aDZhLjUuNSAwIDAgMSAwIDFINWEuNS41IDAgMCAxLS41LS41ek01IDhoNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xem0wIDJoM2EuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEgMC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNGEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xSDV6bS0uNSAyLjVBLjUuNSAwIDAgMSA1IDZoNmEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEtLjUtLjV6TTUgOGEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xSDV6bTAgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xSDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjJ6bTEwLTFINGExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlV29yZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek01LjQ4NSA0Ljg3OWwxLjAzNiA0LjE0NC45OTctMy42NTVhLjUuNSAwIDAgMSAuOTY0IDBsLjk5NyAzLjY1NSAxLjAzNi00LjE0NGEuNS41IDAgMCAxIC45Ny4yNDJsLTEuNSA2YS41LjUgMCAwIDEtLjk2Ny4wMUw4IDcuNDAybC0xLjAxOCAzLjczYS41LjUgMCAwIDEtLjk2Ny0uMDFsLTEuNS02YS41LjUgMCAxIDEgLjk3LS4yNDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVdvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC44NzkgNC41MTVhLjUuNSAwIDAgMSAuNjA2LjM2NGwxLjAzNiA0LjE0NC45OTctMy42NTVhLjUuNSAwIDAgMSAuOTY0IDBsLjk5NyAzLjY1NSAxLjAzNi00LjE0NGEuNS41IDAgMCAxIC45Ny4yNDJsLTEuNSA2YS41LjUgMCAwIDEtLjk2Ny4wMUw4IDcuNDAybC0xLjAxOCAzLjczYS41LjUgMCAwIDEtLjk2Ny0uMDFsLTEuNS02YS41LjUgMCAwIDEgLjM2NC0uNjA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkg0em0wIDFoOGExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlWEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yek02Ljg1NCA2LjE0NiA4IDcuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhMOC43MDcgOGwxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOC43MDcgNi44NTQgOS44NTRhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA2LjE0NiA2Ljg1NGEuNS41IDAgMSAxIC43MDgtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjE0NiA2LjE0NmEuNS41IDAgMCAxIC43MDggMEw4IDcuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAxIDEgLjcwOC43MDhMOC43MDcgOGwxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOC43MDcgNi44NTQgOS44NTRhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA2LjE0NiA2Ljg1NGEuNS41IDAgMCAxIDAtLjcwOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptMCAxaDhhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVppcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDkuNDM4VjguNWgtMXYuOTM4YTEgMSAwIDAgMS0uMDMuMjQzbC0uNCAxLjU5OC45My42Mi45My0uNjItLjQtMS41OThhMSAxIDAgMCAxLS4wMy0uMjQzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMGg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yem0yLjUgOC41di45MzhsLS40IDEuNTk5YTEgMSAwIDAgMCAuNDE2IDEuMDc0bC45My42MmExIDEgMCAwIDAgMS4xMDkgMGwuOTMtLjYyYTEgMSAwIDAgMCAuNDE1LTEuMDc0bC0uNC0xLjU5OVY4LjVhMSAxIDAgMCAwLTEtMWgtMWExIDEgMCAwIDAtMSAxem0xLTUuNWgtMXYxaDF2MWgtMXYxaDF2MUg5VjZIOFY1aDFWNEg4VjNoMVYySDhWMUg2LjV2MWgxdjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsZVppcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgNy41YTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdi45MzhsLjQgMS41OTlhMSAxIDAgMCAxLS40MTYgMS4wNzRsLS45My42MmExIDEgMCAwIDEtMS4xMDkgMGwtLjkzLS42MmExIDEgMCAwIDEtLjQxNS0xLjA3NGwuNC0xLjU5OVY3LjV6bTIgMGgtMXYuOTM4YTEgMSAwIDAgMS0uMDMuMjQzbC0uNCAxLjU5OC45My42Mi45My0uNjItLjQtMS41OThhMSAxIDAgMCAxLS4wMy0uMjQzVjcuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptNS41LTFINGExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUg5djFIOHYxaDF2MUg4djFoMXYxSDcuNVY1aC0xVjRoMVYzaC0xVjJoMVYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTAgMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbGVzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDBIM2EyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yIDIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yLTJ6bTIgM2ExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMVYzek0yIDJhMSAxIDAgMCAxIDEtMWg4YTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAwSDZhMiAyIDAgMCAwLTIgMiAyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoN2EyIDIgMCAwIDAgMi0yIDIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yem0wIDEzVjRhMiAyIDAgMCAwLTItMkg1YTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDF6TTMgNGExIDEgMCAwIDEgMS0xaDdhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZpbG0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxYTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXYxNGExIDEgMCAwIDEtMSAxSDFhMSAxIDAgMCAxLTEtMVYxem00IDB2Nmg4VjFINHptOCA4SDR2Nmg4Vjl6TTEgMXYyaDJWMUgxem0yIDNIMXYyaDJWNHpNMSA3djJoMlY3SDF6bTIgM0gxdjJoMnYtMnptLTIgM3YyaDJ2LTJIMXpNMTUgMWgtMnYyaDJWMXptLTIgM3YyaDJWNGgtMnptMiAzaC0ydjJoMlY3em0tMiAzdjJoMnYtMmgtMnptMiAzaC0ydjJoMnYtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWx0ZXJDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpNMy41IDVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxIDAtMXpNNSA4LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6bTIgM2EuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWx0ZXJDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExLjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjV6bS0yLTNhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6bS0yLTNhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsdGVyTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEwLjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjV6bTAtM2EuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXptMC0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsdGVyUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTAuNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAuNS0uNXptMC0zYS41LjUgMCAwIDAtLjUtLjVoLTdhLjUuNSAwIDAgMCAwIDFoN2EuNS41IDAgMCAwIC41LS41em0wLTNhLjUuNSAwIDAgMC0uNS0uNWgtMTFhLjUuNSAwIDAgMCAwIDFoMTFhLjUuNSAwIDAgMCAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWx0ZXJTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptLjUgNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMSAwLTF6TTQgOC41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0yIDNhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmlsdGVyU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDExLjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjV6bS0yLTNhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6bS0yLTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMC41YS41LjUgMCAwIDEgLjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxLS41LS41em0tMi0zYS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0tMi0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmxhZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzc4LjA4NUEuNS41IDAgMCAxIDE1IC41VjhhLjUuNSAwIDAgMS0uMzE0LjQ2NEwxNC41IDhsLjE4Ni40NjQtLjAwMy4wMDEtLjAwNi4wMDMtLjAyMy4wMDlhMTIuNDM1IDEyLjQzNSAwIDAgMS0uMzk3LjE1Yy0uMjY0LjA5NS0uNjMxLjIyMy0xLjA0Ny4zNS0uODE2LjI1Mi0xLjg3OS41MjMtMi43MS41MjMtLjg0NyAwLTEuNTQ4LS4yOC0yLjE1OC0uNTI1bC0uMDI4LS4wMUM3LjY4IDguNzEgNy4xNCA4LjUgNi41IDguNWMtLjcgMC0xLjYzOC4yMy0yLjQzNy40NzdBMTkuNjI2IDE5LjYyNiAwIDAgMCAzIDkuMzQyVjE1LjVhLjUuNSAwIDAgMS0xIDBWLjVhLjUuNSAwIDAgMSAxIDB2LjI4MmMuMjI2LS4wNzkuNDk2LS4xNy43OS0uMjZDNC42MDYuMjcyIDUuNjcgMCA2LjUgMGMuODQgMCAxLjUyNC4yNzcgMi4xMjEuNTE5bC4wNDMuMDE4QzkuMjg2Ljc4OCA5LjgyOCAxIDEwLjUgMWMuNyAwIDEuNjM4LS4yMyAyLjQzNy0uNDc3YTE5LjU4NyAxOS41ODcgMCAwIDAgMS4zNDktLjQ3NmwuMDE5LS4wMDcuMDA0LS4wMDJoLjAwMVwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzc4LjA4NUEuNS41IDAgMCAxIDE1IC41VjhhLjUuNSAwIDAgMS0uMzE0LjQ2NEwxNC41IDhsLjE4Ni40NjQtLjAwMy4wMDEtLjAwNi4wMDMtLjAyMy4wMDlhMTIuNDM1IDEyLjQzNSAwIDAgMS0uMzk3LjE1Yy0uMjY0LjA5NS0uNjMxLjIyMy0xLjA0Ny4zNS0uODE2LjI1Mi0xLjg3OS41MjMtMi43MS41MjMtLjg0NyAwLTEuNTQ4LS4yOC0yLjE1OC0uNTI1bC0uMDI4LS4wMUM3LjY4IDguNzEgNy4xNCA4LjUgNi41IDguNWMtLjcgMC0xLjYzOC4yMy0yLjQzNy40NzdBMTkuNjI2IDE5LjYyNiAwIDAgMCAzIDkuMzQyVjE1LjVhLjUuNSAwIDAgMS0xIDBWLjVhLjUuNSAwIDAgMSAxIDB2LjI4MmMuMjI2LS4wNzkuNDk2LS4xNy43OS0uMjZDNC42MDYuMjcyIDUuNjcgMCA2LjUgMGMuODQgMCAxLjUyNC4yNzcgMi4xMjEuNTE5bC4wNDMuMDE4QzkuMjg2Ljc4OCA5LjgyOCAxIDEwLjUgMWMuNyAwIDEuNjM4LS4yMyAyLjQzNy0uNDc3YTE5LjU4NyAxOS41ODcgMCAwIDAgMS4zNDktLjQ3NmwuMDE5LS4wMDcuMDA0LS4wMDJoLjAwMU0xNCAxLjIyMWMtLjIyLjA3OC0uNDguMTY3LS43NjYuMjU1LS44MS4yNTItMS44NzIuNTIzLTIuNzM0LjUyMy0uODg2IDAtMS41OTItLjI4Ni0yLjIwMy0uNTM0bC0uMDA4LS4wMDNDNy42NjIgMS4yMSA3LjEzOSAxIDYuNSAxYy0uNjY5IDAtMS42MDYuMjI5LTIuNDE1LjQ3OEEyMS4yOTQgMjEuMjk0IDAgMCAwIDMgMS44NDV2Ni40MzNjLjIyLS4wNzguNDgtLjE2Ny43NjYtLjI1NUM0LjU3NiA3Ljc3IDUuNjM4IDcuNSA2LjUgNy41Yy44NDcgMCAxLjU0OC4yOCAyLjE1OC41MjVsLjAyOC4wMUM5LjMyIDguMjkgOS44NiA4LjUgMTAuNSA4LjVjLjY2OCAwIDEuNjA2LS4yMjkgMi40MTUtLjQ3OEEyMS4zMTcgMjEuMzE3IDAgMCAwIDE0IDcuNjU1VjEuMjIyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0Zsb3dlcjEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4xNzQgMS4xODRhMiAyIDAgMCAxIDMuNjUyIDBBMiAyIDAgMCAxIDEyLjk5IDMuMDFhMiAyIDAgMCAxIDEuODI2IDMuMTY0IDIgMiAwIDAgMSAwIDMuNjUyIDIgMiAwIDAgMS0xLjgyNiAzLjE2NCAyIDIgMCAwIDEtMy4xNjQgMS44MjYgMiAyIDAgMCAxLTMuNjUyIDBBMiAyIDAgMCAxIDMuMDEgMTIuOTlhMiAyIDAgMCAxLTEuODI2LTMuMTY0IDIgMiAwIDAgMSAwLTMuNjUyQTIgMiAwIDAgMSAzLjAxIDMuMDFhMiAyIDAgMCAxIDMuMTY0LTEuODI2ek04IDFhMSAxIDAgMCAwLS45OTggMS4wM2wuMDEuMDkxYy4wMTIuMDc3LjAyOS4xNzYuMDU0LjI5Ni4wNDkuMjQxLjEyMi41NDIuMjEzLjg4Ny4xODIuNjg4LjQyOCAxLjUxMy42NzYgMi4zMTRMOCA1Ljc2MmwuMDQ1LS4xNDRjLjI0OC0uOC40OTQtMS42MjYuNjc2LTIuMzE0LjA5MS0uMzQ1LjE2NC0uNjQ2LjIxMy0uODg3YTQuOTk3IDQuOTk3IDAgMCAwIC4wNjQtLjM4Nkw5IDJhMSAxIDAgMCAwLTEtMXpNMiA5bC4wMy0uMDAyLjA5MS0uMDFhNC45OSA0Ljk5IDAgMCAwIC4yOTYtLjA1NGMuMjQxLS4wNDkuNTQyLS4xMjIuODg3LS4yMTNhNjAuNTkgNjAuNTkgMCAwIDAgMi4zMTQtLjY3Nkw1Ljc2MiA4bC0uMTQ0LS4wNDVhNjAuNTkgNjAuNTkgMCAwIDAtMi4zMTQtLjY3NiAxNi43MDUgMTYuNzA1IDAgMCAwLS44ODctLjIxMyA0Ljk5IDQuOTkgMCAwIDAtLjM4Ni0uMDY0TDIgN2ExIDEgMCAxIDAgMCAyem03IDUtLjAwMi0uMDNhNS4wMDUgNS4wMDUgMCAwIDAtLjA2NC0uMzg2IDE2LjM5OCAxNi4zOTggMCAwIDAtLjIxMy0uODg4IDYwLjU4MiA2MC41ODIgMCAwIDAtLjY3Ni0yLjMxNEw4IDEwLjIzOGwtLjA0NS4xNDRjLS4yNDguOC0uNDk0IDEuNjI2LS42NzYgMi4zMTQtLjA5MS4zNDUtLjE2NC42NDYtLjIxMy44ODdhNC45OTYgNC45OTYgMCAwIDAtLjA2NC4zODZMNyAxNGExIDEgMCAxIDAgMiAwem0tNS42OTYtMi4xMzQuMDI1LS4wMTdhNS4wMDEgNS4wMDEgMCAwIDAgLjMwMy0uMjQ4Yy4xODQtLjE2NC40MDgtLjM3Ny42NjEtLjYyOUE2MC42MTQgNjAuNjE0IDAgMCAwIDUuOTYgOS4yM2wuMTAzLS4xMTEtLjE0Ny4wMzNhNjAuODggNjAuODggMCAwIDAtMi4zNDMuNTcyYy0uMzQ0LjA5My0uNjQuMTgtLjg3NC4yNThhNS4wNjMgNS4wNjMgMCAwIDAtLjM2Ny4xMzhsLS4wMjcuMDE0YTEgMSAwIDEgMCAxIDEuNzMyek00LjUgMTQuMDYyYTEgMSAwIDAgMCAxLjM2Ni0uMzY2bC4wMTQtLjAyN2MuMDEtLjAyLjAyMS0uMDQ4LjAzNi0uMDg0YTUuMDkgNS4wOSAwIDAgMCAuMTAyLS4yODNjLjA3OC0uMjMzLjE2NS0uNTMuMjU4LS44NzRhNjAuNiA2MC42IDAgMCAwIC41NzItMi4zNDNsLjAzMy0uMTQ3LS4xMS4xMDJhNjAuODQ4IDYwLjg0OCAwIDAgMC0xLjc0MyAxLjY2NyAxNy4wNyAxNy4wNyAwIDAgMC0uNjI5LjY2IDUuMDYgNS4wNiAwIDAgMC0uMjQ4LjMwNGwtLjAxNy4wMjVhMSAxIDAgMCAwIC4zNjYgMS4zNjZ6bTkuMTk2LTguMTk2YTEgMSAwIDAgMC0xLTEuNzMybC0uMDI1LjAxN2E0Ljk1MSA0Ljk1MSAwIDAgMC0uMzAzLjI0OCAxNi42OSAxNi42OSAwIDAgMC0uNjYxLjYyOUE2MC43MiA2MC43MiAwIDAgMCAxMC4wNCA2Ljc3bC0uMTAyLjExMS4xNDctLjAzM2E2MC42IDYwLjYgMCAwIDAgMi4zNDItLjU3MmMuMzQ1LS4wOTMuNjQyLS4xOC44NzUtLjI1OGE0Ljk5MyA0Ljk5MyAwIDAgMCAuMzY3LS4xMzguNTMuNTMgMCAwIDAgLjAyNy0uMDE0ek0xMS41IDEuOTM4YTEgMSAwIDAgMC0xLjM2Ni4zNjZsLS4wMTQuMDI3Yy0uMDEuMDItLjAyMS4wNDgtLjAzNi4wODRhNS4wOSA1LjA5IDAgMCAwLS4xMDIuMjgzYy0uMDc4LjIzMy0uMTY1LjUzLS4yNTguODc1YTYwLjYyIDYwLjYyIDAgMCAwLS41NzIgMi4zNDJsLS4wMzMuMTQ3LjExLS4xMDJhNjAuODQ4IDYwLjg0OCAwIDAgMCAxLjc0My0xLjY2N2MuMjUyLS4yNTMuNDY1LS40NzcuNjI5LS42NmE1LjAwMSA1LjAwMSAwIDAgMCAuMjQ4LS4zMDRsLjAxNy0uMDI1YTEgMSAwIDAgMC0uMzY2LTEuMzY2ek0xNCA5YTEgMSAwIDAgMCAwLTJsLS4wMy4wMDJhNC45OTYgNC45OTYgMCAwIDAtLjM4Ni4wNjRjLS4yNDIuMDQ5LS41NDMuMTIyLS44ODguMjEzLS42ODguMTgyLTEuNTEzLjQyOC0yLjMxNC42NzZMMTAuMjM4IDhsLjE0NC4wNDVjLjguMjQ4IDEuNjI2LjQ5NCAyLjMxNC42NzYuMzQ1LjA5MS42NDYuMTY0Ljg4Ny4yMTNhNC45OTYgNC45OTYgMCAwIDAgLjM4Ni4wNjRMMTQgOXpNMS45MzggNC41YTEgMSAwIDAgMCAuMzkzIDEuMzhsLjA4NC4wMzVjLjA3Mi4wMy4xNjYuMDY0LjI4My4xMDMuMjMzLjA3OC41My4xNjUuODc0LjI1OGE2MC44OCA2MC44OCAwIDAgMCAyLjM0My41NzJsLjE0Ny4wMzMtLjEwMy0uMTExYTYwLjU4NCA2MC41ODQgMCAwIDAtMS42NjYtMS43NDIgMTYuNzA1IDE2LjcwNSAwIDAgMC0uNjYtLjYyOSA0Ljk5NiA0Ljk5NiAwIDAgMC0uMzA0LS4yNDhsLS4wMjUtLjAxN2ExIDEgMCAwIDAtMS4zNjYuMzY2em0yLjE5Ni0xLjE5Ni4wMTcuMDI1YTQuOTk2IDQuOTk2IDAgMCAwIC4yNDguMzAzYy4xNjQuMTg0LjM3Ny40MDguNjI5LjY2MUE2MC41OTcgNjAuNTk3IDAgMCAwIDYuNzcgNS45NmwuMTExLjEwMi0uMDMzLS4xNDdhNjAuNjAyIDYwLjYwMiAwIDAgMC0uNTcyLTIuMzQyYy0uMDkzLS4zNDUtLjE4LS42NDItLjI1OC0uODc1YTUuMDA2IDUuMDA2IDAgMCAwLS4xMzgtLjM2N2wtLjAxNC0uMDI3YTEgMSAwIDEgMC0xLjczMiAxem05LjkyOCA4LjE5NmExIDEgMCAwIDAtLjM2Ni0xLjM2NmwtLjAyNy0uMDE0YTUgNSAwIDAgMC0uMzY3LS4xMzhjLS4yMzMtLjA3OC0uNTMtLjE2NS0uODc1LS4yNThhNjAuNjE5IDYwLjYxOSAwIDAgMC0yLjM0Mi0uNTcybC0uMTQ3LS4wMzMuMTAyLjExMWE2MC43MyA2MC43MyAwIDAgMCAxLjY2NyAxLjc0MmMuMjUzLjI1Mi40NzcuNDY1LjY2LjYyOWE0Ljk0NiA0Ljk0NiAwIDAgMCAuMzA0LjI0OGwuMDI1LjAxN2ExIDEgMCAwIDAgMS4zNjYtLjM2NnptLTMuOTI4IDIuMTk2YTEgMSAwIDAgMCAxLjczMi0xbC0uMDE3LS4wMjVhNS4wNjUgNS4wNjUgMCAwIDAtLjI0OC0uMzAzIDE2LjcwNSAxNi43MDUgMCAwIDAtLjYyOS0uNjYxQTYwLjQ2MiA2MC40NjIgMCAwIDAgOS4yMyAxMC4wNGwtLjExMS0uMTAyLjAzMy4xNDdhNjAuNiA2MC42IDAgMCAwIC41NzIgMi4zNDJjLjA5My4zNDUuMTguNjQyLjI1OC44NzVhNC45ODUgNC45ODUgMCAwIDAgLjEzOC4zNjcuNTc1LjU3NSAwIDAgMCAuMDE0LjAyN3pNOCA5LjVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRmxvd2VyMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YTQgNCAwIDAgMCA0LTQgNCA0IDAgMCAwIDAtOCA0IDQgMCAwIDAtOCAwIDQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDQgNHptMy0xMmMwIC4wNzMtLjAxLjE1NS0uMDMuMjQ3LS41NDQuMjQxLTEuMDkxLjYzOC0xLjU5OCAxLjA4NEEyLjk4NyAyLjk4NyAwIDAgMCA4IDVjLS40OTQgMC0uOTYuMTItMS4zNzIuMzMxLS41MDctLjQ0Ni0xLjA1NC0uODQzLTEuNTk3LTEuMDg0QTEuMTE3IDEuMTE3IDAgMCAxIDUgNGEzIDMgMCAwIDEgNiAwem0tLjgxMiA2LjA1MkEyLjk5IDIuOTkgMCAwIDAgMTEgOGEyLjk5IDIuOTkgMCAwIDAtLjgxMi0yLjA1MmMuMjE1LS4xOC40MzItLjM0Ni42NDctLjQ4N0MxMS4zNCA1LjEzMSAxMS43MzIgNSAxMiA1YTMgMyAwIDEgMSAwIDZjLS4yNjggMC0uNjYtLjEzLTEuMTY1LS40NjFhNi44MzMgNi44MzMgMCAwIDEtLjY0Ny0uNDg3em0tMy41Ni42MTdhMy4wMDEgMy4wMDEgMCAwIDAgMi43NDQgMGMuNTA3LjQ0NiAxLjA1NC44NDIgMS41OTggMS4wODQuMDIuMDkxLjAzLjE3NC4wMy4yNDdhMyAzIDAgMSAxLTYgMGMwLS4wNzMuMDEtLjE1NS4wMy0uMjQ3LjU0NC0uMjQyIDEuMDkxLS42MzggMS41OTgtMS4wODR6bS0uODE2LTQuNzIxQTIuOTkgMi45OSAwIDAgMCA1IDhjMCAuNzk0LjMwOCAxLjUxNi44MTIgMi4wNTJhNi44MyA2LjgzIDAgMCAxLS42NDcuNDg3QzQuNjYgMTAuODY5IDQuMjY4IDExIDQgMTFhMyAzIDAgMCAxIDAtNmMuMjY4IDAgLjY2LjEzIDEuMTY1LjQ2MS4yMTUuMTQxLjQzMi4zMDYuNjQ3LjQ4N3pNOCA5YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGbG93ZXIzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQyNCA4Yy40MzctLjA1Mi44MTEtLjEzNiAxLjA0LS4yNjhhMiAyIDAgMCAwLTItMy40NjRjLS4yMjkuMTMyLS40ODkuNDE0LS43NTIuNzY3QzkuODg2IDQuNjMgMTAgNC4yNjQgMTAgNGEyIDIgMCAxIDAtNCAwYzAgLjI2NC4xMTQuNjMuMjg4IDEuMDM1LS4yNjMtLjM1My0uNTIzLS42MzUtLjc1Mi0uNzY3YTIgMiAwIDAgMC0yIDMuNDY0Yy4yMjkuMTMyLjYwMy4yMTYgMS4wNC4yNjgtLjQzNy4wNTItLjgxMS4xMzYtMS4wNC4yNjhhMiAyIDAgMSAwIDIgMy40NjRjLjIyOS0uMTMyLjQ4OS0uNDE0Ljc1Mi0uNzY3QzYuMTE0IDExLjM3IDYgMTEuNzM2IDYgMTJhMiAyIDAgMSAwIDQgMGMwLS4yNjQtLjExNC0uNjMtLjI4OC0xLjAzNS4yNjMuMzUzLjUyMy42MzUuNzUyLjc2N2EyIDIgMCAxIDAgMi0zLjQ2NGMtLjIyOS0uMTMyLS42MDMtLjIxNi0xLjA0LS4yNjh6TTkgNGExLjQ2OCAxLjQ2OCAwIDAgMS0uMDQ1LjIwNWMtLjAzOS4xMzItLjEuMjk1LS4xODMuNDg0YTEyLjg4IDEyLjg4IDAgMCAxLS42MzcgMS4yMjNMOCA2LjE0MmEyMS43MyAyMS43MyAwIDAgMS0uMTM1LS4yMyAxMi44OCAxMi44OCAwIDAgMS0uNjM3LTEuMjIzIDQuMjE2IDQuMjE2IDAgMCAxLS4xODMtLjQ4NEExLjQ3MyAxLjQ3MyAwIDAgMSA3IDRhMSAxIDAgMSAxIDIgMHpNMy42NyA1LjVhMSAxIDAgMCAxIDEuMzY2LS4zNjYgMS40NzIgMS40NzIgMCAwIDEgLjE1Ni4xNDJjLjA5NC4xLjIwNC4yMzMuMzI2LjQuMjQ1LjMzMy41MDIuNzQ3Ljc0MiAxLjE2M2wuMTMuMjMyYTIxLjg2IDIxLjg2IDAgMCAxLS4yNjUuMDAyIDEyLjg4IDEyLjg4IDAgMCAxLTEuMzc5LS4wNiA0LjIxNCA0LjIxNCAwIDAgMS0uNTEtLjA4MyAxLjQ3IDEuNDcgMCAwIDEtLjItLjA2NEExIDEgMCAwIDEgMy42NyA1LjV6bTEuMzY2IDUuMzY2YTEgMSAwIDAgMS0xLTEuNzMyYy4wMDEgMCAuMDE2LS4wMDguMDQ3LS4wMi4wMzctLjAxMy4wODctLjAyOC4xNTMtLjA0NC4xMzQtLjAzMi4zMDUtLjA2LjUxLS4wODNhMTIuODggMTIuODggMCAwIDEgMS4zNzktLjA2Yy4wOSAwIC4xNzggMCAuMjY2LjAwMmEyMS44MiAyMS44MiAwIDAgMS0uMTMxLjIzMmMtLjI0LjQxNi0uNDk3LjgzLS43NDIgMS4xNjNhNC4xIDQuMSAwIDAgMS0uMzI3LjQgMS40ODMgMS40ODMgMCAwIDEtLjE1NS4xNDJ6TTkgMTJhMSAxIDAgMCAxLTIgMCAxLjQ3NiAxLjQ3NiAwIDAgMSAuMDQ1LS4yMDZjLjAzOS0uMTMxLjEtLjI5NC4xODMtLjQ4My4xNjYtLjM3OC4zOTYtLjgwOC42MzctMS4yMjNMOCA5Ljg1OGwuMTM1LjIzYy4yNDEuNDE1LjQ3Ljg0NS42MzcgMS4yMjMuMDgzLjE5LjE0NC4zNTIuMTgzLjQ4NEExLjMzOCAxLjMzOCAwIDAgMSA5IDEyem0zLjMzLTYuNWExIDEgMCAwIDEtLjM2NiAxLjM2NiAxLjQ3OCAxLjQ3OCAwIDAgMS0uMi4wNjRjLS4xMzQuMDMyLS4zMDUuMDYtLjUxLjA4My0uNDEyLjA0NS0uODk4LjA2MS0xLjM3OS4wNi0uMDkgMC0uMTc4IDAtLjI2Ni0uMDAybC4xMzEtLjIzMmMuMjQtLjQxNi40OTctLjgzLjc0Mi0xLjE2M2E0LjEgNC4xIDAgMCAxIC4zMjctLjRjLjA0Ni0uMDUuMDg1LS4wODYuMTE0LS4xMS4wMjYtLjAyMi4wNC0uMDMuMDQxLS4wMzJhMSAxIDAgMCAxIDEuMzY2LjM2NnptLTEuMzY2IDUuMzY2YTEuNDk0IDEuNDk0IDAgMCAxLS4xNTUtLjE0MSA0LjIyNSA0LjIyNSAwIDAgMS0uMzI3LS40QTEyLjg4IDEyLjg4IDAgMCAxIDkuNzQgOS4xNmEyMiAyMiAwIDAgMS0uMTMtLjIzMmwuMjY1LS4wMDJjLjQ4LS4wMDEuOTY3LjAxNSAxLjM3OS4wNi4yMDUuMDIzLjM3Ni4wNTEuNTEuMDgzLjA2Ni4wMTYuMTE2LjAzMS4xNTMuMDQ0bC4wNDguMDJhMSAxIDAgMSAxLTEgMS43MzJ6TTggOWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRm9sZGVyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtLjUgMyAuMDQuODdhMS45OSAxLjk5IDAgMCAwLS4zNDIgMS4zMTFsLjYzNyA3QTIgMiAwIDAgMCAyLjgyNiAxNEg5di0xSDIuODI2YTEgMSAwIDAgMS0uOTk1LS45MWwtLjYzNy03QTEgMSAwIDAgMSAyLjE5IDRoMTEuNjJhMSAxIDAgMCAxIC45OTYgMS4wOUwxNC41NCA4aDEuMDA1bC4yNTYtMi44MTlBMiAyIDAgMCAwIDEzLjgxIDNIOS44MjhhMiAyIDAgMCAxLTEuNDE0LS41ODZsLS44MjgtLjgyOEEyIDIgMCAwIDAgNi4xNzIgMUgyLjVhMiAyIDAgMCAwLTIgMnptNS42NzItMWExIDEgMCAwIDEgLjcwNy4yOTNMNy41ODYgM0gyLjE5Yy0uMjQgMC0uNDcuMDQyLS42ODMuMTJMMS41IDIuOThhMSAxIDAgMCAxIDEtLjk4aDMuNjcyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljg1NCAxMC4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDcgMGwtMS41LTEuNWEuNS41IDAgMCAxIC43MDctLjcwOGwxLjE0NiAxLjE0NyAyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGb2xkZXJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODI4IDNoMy45ODJhMiAyIDAgMCAxIDEuOTkyIDIuMTgxbC0uNjM3IDdBMiAyIDAgMCAxIDEzLjE3NCAxNEgyLjgyNWEyIDIgMCAwIDEtMS45OTEtMS44MTlsLS42MzctN2ExLjk5IDEuOTkgMCAwIDEgLjM0Mi0xLjMxTC41IDNhMiAyIDAgMCAxIDItMmgzLjY3MmEyIDIgMCAwIDEgMS40MTQuNTg2bC44MjguODI4QTIgMiAwIDAgMCA5LjgyOCAzem0tOC4zMjIuMTJDMS43MiAzLjA0MiAxLjk1IDMgMi4xOSAzaDUuMzk2bC0uNzA3LS43MDdBMSAxIDAgMCAwIDYuMTcyIDJIMi41YTEgMSAwIDAgMC0xIC45ODFsLjAwNi4xMzl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRm9sZGVyTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtLjUgMyAuMDQuODdhMS45OSAxLjk5IDAgMCAwLS4zNDIgMS4zMTFsLjYzNyA3QTIgMiAwIDAgMCAyLjgyNiAxNEg5di0xSDIuODI2YTEgMSAwIDAgMS0uOTk1LS45MWwtLjYzNy03QTEgMSAwIDAgMSAyLjE5IDRoMTEuNjJhMSAxIDAgMCAxIC45OTYgMS4wOUwxNC41NCA4aDEuMDA1bC4yNTYtMi44MTlBMiAyIDAgMCAwIDEzLjgxIDNIOS44MjhhMiAyIDAgMCAxLTEuNDE0LS41ODZsLS44MjgtLjgyOEEyIDIgMCAwIDAgNi4xNzIgMUgyLjVhMiAyIDAgMCAwLTIgMnptNS42NzItMWExIDEgMCAwIDEgLjcwNy4yOTNMNy41ODYgM0gyLjE5Yy0uMjQgMC0uNDcuMDQyLS42ODMuMTJMMS41IDIuOThhMSAxIDAgMCAxIDEtLjk4aDMuNjcyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDExLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAxIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRm9sZGVyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0uNSAzIC4wNC44N2ExLjk5IDEuOTkgMCAwIDAtLjM0MiAxLjMxMWwuNjM3IDdBMiAyIDAgMCAwIDIuODI2IDE0SDl2LTFIMi44MjZhMSAxIDAgMCAxLS45OTUtLjkxbC0uNjM3LTdBMSAxIDAgMCAxIDIuMTkgNGgxMS42MmExIDEgMCAwIDEgLjk5NiAxLjA5TDE0LjU0IDhoMS4wMDVsLjI1Ni0yLjgxOUEyIDIgMCAwIDAgMTMuODEgM0g5LjgyOGEyIDIgMCAwIDEtMS40MTQtLjU4NmwtLjgyOC0uODI4QTIgMiAwIDAgMCA2LjE3MiAxSDIuNWEyIDIgMCAwIDAtMiAyem01LjY3Mi0xYTEgMSAwIDAgMSAuNzA3LjI5M0w3LjU4NiAzSDIuMTljLS4yNCAwLS40Ny4wNDItLjY4My4xMkwxLjUgMi45OGExIDEgMCAwIDEgMS0uOThoMy42NzJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSAxMGEuNS41IDAgMCAxIC41LjVWMTJoMS41YS41LjUgMCAxIDEgMCAxSDE0djEuNWEuNS41IDAgMSAxLTEgMFYxM2gtMS41YS41LjUgMCAwIDEgMC0xSDEzdi0xLjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGb2xkZXJTeW1saW5rRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy44MSAzSDkuODI4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0uODI4LS44MjhBMiAyIDAgMCAwIDYuMTcyIDFIMi41YTIgMiAwIDAgMC0yIDJsLjA0Ljg3YTEuOTkgMS45OSAwIDAgMC0uMzQyIDEuMzExbC42MzcgN0EyIDIgMCAwIDAgMi44MjYgMTRoMTAuMzQ4YTIgMiAwIDAgMCAxLjk5MS0xLjgxOWwuNjM3LTdBMiAyIDAgMCAwIDEzLjgxIDN6TTIuMTkgM2MtLjI0IDAtLjQ3LjA0Mi0uNjgzLjEyTDEuNSAyLjk4YTEgMSAwIDAgMSAxLS45OGgzLjY3MmExIDEgMCAwIDEgLjcwNy4yOTNMNy41ODYgM0gyLjE5em05LjYwOCA1LjI3MS0zLjE4MiAxLjk3Yy0uMjcuMTY2LS42MTYtLjAzNi0uNjE2LS4zNzJWOS4xcy0yLjU3MS0uMy00IDIuNGMuNTcxLTQuOCAzLjE0My00LjggNC00Ljh2LS43NjljMC0uMzM2LjM0Ni0uNTM4LjYxNi0uMzcxbDMuMTgyIDEuOTY5Yy4yNy4xNjYuMjcuNTc2IDAgLjc0MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGb2xkZXJTeW1saW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjc5OCA4LjI3MS0zLjE4MiAxLjk3Yy0uMjcuMTY2LS42MTYtLjAzNi0uNjE2LS4zNzJWOS4xcy0yLjU3MS0uMy00IDIuNGMuNTcxLTQuOCAzLjE0My00LjggNC00Ljh2LS43NjljMC0uMzM2LjM0Ni0uNTM4LjYxNi0uMzcxbDMuMTgyIDEuOTY5Yy4yNy4xNjYuMjcuNTc2IDAgLjc0MnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0uNSAzIC4wNC44N2ExLjk5IDEuOTkgMCAwIDAtLjM0MiAxLjMxMWwuNjM3IDdBMiAyIDAgMCAwIDIuODI2IDE0aDEwLjM0OGEyIDIgMCAwIDAgMS45OTEtMS44MTlsLjYzNy03QTIgMiAwIDAgMCAxMy44MSAzSDkuODI4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0uODI4LS44MjhBMiAyIDAgMCAwIDYuMTcyIDFIMi41YTIgMiAwIDAgMC0yIDJ6bS42OTQgMi4wOUExIDEgMCAwIDEgMi4xOSA0aDExLjYyYTEgMSAwIDAgMSAuOTk2IDEuMDlsLS42MzYgN2ExIDEgMCAwIDEtLjk5Ni45MUgyLjgyNmExIDEgMCAwIDEtLjk5NS0uOTFsLS42MzctN3pNNi4xNzIgMmExIDEgMCAwIDEgLjcwNy4yOTNMNy41ODYgM0gyLjE5Yy0uMjQgMC0uNDcuMDQyLS42ODMuMTJMMS41IDIuOThhMSAxIDAgMCAxIDEtLjk4aDMuNjcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZvbGRlclggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjU0IDMuODcuNSAzYTIgMiAwIDAgMSAyLTJoMy42NzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwuODI4LjgyOEEyIDIgMCAwIDAgOS44MjggM2gzLjk4MmEyIDIgMCAwIDEgMS45OTIgMi4xODFMMTUuNTQ2IDhIMTQuNTRsLjI2NS0yLjkxQTEgMSAwIDAgMCAxMy44MSA0SDIuMTlhMSAxIDAgMCAwLS45OTYgMS4wOWwuNjM3IDdhMSAxIDAgMCAwIC45OTUuOTFIOXYxSDIuODI2YTIgMiAwIDAgMS0xLjk5MS0xLjgxOWwtLjYzNy03YTEuOTkgMS45OSAwIDAgMSAuMzQyLTEuMzF6bTYuMzM5LTEuNTc3QTEgMSAwIDAgMCA2LjE3MiAySDIuNWExIDEgMCAwIDAtMSAuOTgxbC4wMDYuMTM5QzEuNzIgMy4wNDIgMS45NSAzIDIuMTkgM2g1LjM5NmwtLjcwNy0uNzA3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjg1NCAxMC4xNDZhLjUuNSAwIDAgMC0uNzA3LjcwOEwxMi4yOTMgMTJsLTEuMTQ2IDEuMTQ2YS41LjUgMCAwIDAgLjcwNy43MDhMMTMgMTIuNzA3bDEuMTQ2IDEuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4TDEzLjcwNyAxMmwxLjE0Ny0xLjE0NmEuNS41IDAgMCAwLS43MDctLjcwOEwxMyAxMS4yOTNsLTEuMTQ2LTEuMTQ3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uNTQgMy44Ny41IDNhMiAyIDAgMCAxIDItMmgzLjY3MmEyIDIgMCAwIDEgMS40MTQuNTg2bC44MjguODI4QTIgMiAwIDAgMCA5LjgyOCAzaDMuOTgyYTIgMiAwIDAgMSAxLjk5MiAyLjE4MWwtLjYzNyA3QTIgMiAwIDAgMSAxMy4xNzQgMTRIMi44MjZhMiAyIDAgMCAxLTEuOTkxLTEuODE5bC0uNjM3LTdhMS45OSAxLjk5IDAgMCAxIC4zNDItMS4zMXpNMi4xOSA0YTEgMSAwIDAgMC0uOTk2IDEuMDlsLjYzNyA3YTEgMSAwIDAgMCAuOTk1LjkxaDEwLjM0OGExIDEgMCAwIDAgLjk5NS0uOTFsLjYzNy03QTEgMSAwIDAgMCAxMy44MSA0SDIuMTl6bTQuNjktMS43MDdBMSAxIDAgMCAwIDYuMTcyIDJIMi41YTEgMSAwIDAgMC0xIC45ODFsLjAwNi4xMzlDMS43MiAzLjA0MiAxLjk1IDMgMi4xOSAzaDUuMzk2bC0uNzA3LS43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRm9sZGVyMk9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM3Ljk4NSAzLjY0OCA4LjQ4IDQgOSA0aDQuNUExLjUgMS41IDAgMCAxIDE1IDUuNXYuNjRjLjU3LjI2NS45NC44NzYuODU2IDEuNTQ2bC0uNjQgNS4xMjRBMi41IDIuNSAwIDAgMSAxMi43MzMgMTVIMy4yNjZhMi41IDIuNSAwIDAgMS0yLjQ4MS0yLjE5bC0uNjQtNS4xMjRBMS41IDEuNSAwIDAgMSAxIDYuMTRWMy41ek0yIDZoMTJ2LS41YS41LjUgMCAwIDAtLjUtLjVIOWMtLjk2NCAwLTEuNzEtLjYyOS0yLjE3NC0xLjE1NEM2LjM3NCAzLjMzNCA1LjgyIDMgNS4yNjQgM0gyLjVhLjUuNSAwIDAgMC0uNS41VjZ6bS0uMzY3IDFhLjUuNSAwIDAgMC0uNDk2LjU2MmwuNjQgNS4xMjRBMS41IDEuNSAwIDAgMCAzLjI2NiAxNGg5LjQ2OGExLjUgMS41IDAgMCAwIDEuNDg5LTEuMzE0bC42NC01LjEyNEEuNS41IDAgMCAwIDE0LjM2NyA3SDEuNjMzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZvbGRlcjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM3Ljk4NSAzLjY0OCA4LjQ4IDQgOSA0aDQuNUExLjUgMS41IDAgMCAxIDE1IDUuNXY3YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSAxIDEyLjV2LTl6TTIuNSAzYS41LjUgMCAwIDAtLjUuNVY2aDEydi0uNWEuNS41IDAgMCAwLS41LS41SDljLS45NjQgMC0xLjcxLS42MjktMi4xNzQtMS4xNTRDNi4zNzQgMy4zMzQgNS44MiAzIDUuMjY0IDNIMi41ek0xNCA3SDJ2NS41YS41LjUgMCAwIDAgLjUuNWgxMWEuNS41IDAgMCAwIC41LS41Vjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRm9udHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMjU4IDNoLTguNTFsLS4wODMgMi40NmguNDc5Yy4yNi0xLjU0NC43NTgtMS43ODMgMi42OTMtMS44NDVsLjQyNC0uMDEzdjcuODI3YzAgLjY2My0uMTQ0LjgyLTEuMy45MjN2LjUyaDQuMDgydi0uNTJjLTEuMTYyLS4xMDMtMS4zMDYtLjI2LTEuMzA2LS45MjNWMy42MDJsLjQzMS4wMTNjMS45MzQuMDYyIDIuNDM0LjMwMSAyLjY5MyAxLjg0NmguNDc5TDEyLjI1OCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ZvcndhcmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkuNzcgMTIuMTEgNC4wMTItMi45NTNhLjY0Ny42NDcgMCAwIDAgMC0xLjExNEw5Ljc3MSA1LjA5YS42NDQuNjQ0IDAgMCAwLS45NzEuNTU3VjYuNjVIMnYzLjloNi44djEuMDAzYzAgLjUwNS41NDUuODA4Ljk3LjU1N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNTAyIDUuNTEzYS4xNDQuMTQ0IDAgMCAwLS4yMDIuMTM0VjYuNjVhLjUuNSAwIDAgMS0uNS41SDIuNXYyLjloNi4zYS41LjUgMCAwIDEgLjUuNXYxLjAwM2MwIC4xMDguMTEuMTc2LjIwMi4xMzRsMy45ODQtMi45MzNhLjUxLjUxIDAgMCAxIC4wNDItLjAyOC4xNDcuMTQ3IDAgMCAwIDAtLjI1Mi41MS41MSAwIDAgMS0uMDQyLS4wMjhMOS41MDIgNS41MTN6TTguMyA1LjY0N2ExLjE0NCAxLjE0NCAwIDAgMSAxLjc2Ny0uOTZsMy45OTQgMi45NGExLjE0NyAxLjE0NyAwIDAgMSAwIDEuOTQ2bC0zLjk5NCAyLjk0YTEuMTQ0IDEuMTQ0IDAgMCAxLTEuNzY3LS45NnYtLjUwM0gyYS41LjUgMCAwIDEtLjUtLjV2LTMuOWEuNS41IDAgMCAxIC41LS41aDYuM3YtLjUwM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MmgyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMkgyYTIgMiAwIDAgMS0yLTJWMnptNSAxMHYyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMnY1YTIgMiAwIDAgMS0yIDJINXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGdWxsc2NyZWVuRXhpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMGEuNS41IDAgMCAxIC41LjV2NEExLjUgMS41IDAgMCAxIDQuNSA2aC00YS41LjUgMCAwIDEgMC0xaDRhLjUuNSAwIDAgMCAuNS0uNXYtNGEuNS41IDAgMCAxIC41LS41em01IDBhLjUuNSAwIDAgMSAuNS41djRhLjUuNSAwIDAgMCAuNS41aDRhLjUuNSAwIDAgMSAwIDFoLTRBMS41IDEuNSAwIDAgMSAxMCA0LjV2LTRhLjUuNSAwIDAgMSAuNS0uNXpNMCAxMC41YS41LjUgMCAwIDEgLjUtLjVoNEExLjUgMS41IDAgMCAxIDYgMTEuNXY0YS41LjUgMCAwIDEtMSAwdi00YS41LjUgMCAwIDAtLjUtLjVoLTRhLjUuNSAwIDAgMS0uNS0uNXptMTAgMWExLjUgMS41IDAgMCAxIDEuNS0xLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAwLS41LjV2NGEuNS41IDAgMCAxLTEgMHYtNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGdWxsc2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAxYS41LjUgMCAwIDAtLjUuNXY0YS41LjUgMCAwIDEtMSAwdi00QTEuNSAxLjUgMCAwIDEgMS41IDBoNGEuNS41IDAgMCAxIDAgMWgtNHpNMTAgLjVhLjUuNSAwIDAgMSAuNS0uNWg0QTEuNSAxLjUgMCAwIDEgMTYgMS41djRhLjUuNSAwIDAgMS0xIDB2LTRhLjUuNSAwIDAgMC0uNS0uNWgtNGEuNS41IDAgMCAxLS41LS41ek0uNSAxMGEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAwIC41LjVoNGEuNS41IDAgMCAxIDAgMWgtNEExLjUgMS41IDAgMCAxIDAgMTQuNXYtNGEuNS41IDAgMCAxIC41LS41em0xNSAwYS41LjUgMCAwIDEgLjUuNXY0YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtNGEuNS41IDAgMCAxIDAtMWg0YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNGdW5uZWxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAxLjVBLjUuNSAwIDAgMSAyIDFoMTJhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uMTI4LjMzNEwxMCA4LjY5MlYxMy41YS41LjUgMCAwIDEtLjM0Mi40NzRsLTMgMUEuNS41IDAgMCAxIDYgMTQuNVY4LjY5MkwxLjYyOCAzLjgzNEEuNS41IDAgMCAxIDEuNSAzLjV2LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzRnVubmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAxLjVBLjUuNSAwIDAgMSAyIDFoMTJhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0uMTI4LjMzNEwxMCA4LjY5MlYxMy41YS41LjUgMCAwIDEtLjM0Mi40NzRsLTMgMUEuNS41IDAgMCAxIDYgMTQuNVY4LjY5MkwxLjYyOCAzLjgzNEEuNS41IDAgMCAxIDEuNSAzLjV2LTJ6bTEgLjV2MS4zMDhsNC4zNzIgNC44NThBLjUuNSAwIDAgMSA3IDguNXY1LjMwNmwyLS42NjZWOC41YS41LjUgMCAwIDEgLjEyOC0uMzM0TDEzLjUgMy4zMDhWMmgtMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2VhckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40MDUgMS4wNWMtLjQxMy0xLjQtMi4zOTctMS40LTIuODEgMGwtLjEuMzRhMS40NjQgMS40NjQgMCAwIDEtMi4xMDUuODcybC0uMzEtLjE3Yy0xLjI4My0uNjk4LTIuNjg2LjcwNS0xLjk4NyAxLjk4N2wuMTY5LjMxMWMuNDQ2LjgyLjAyMyAxLjg0MS0uODcyIDIuMTA1bC0uMzQuMWMtMS40LjQxMy0xLjQgMi4zOTcgMCAyLjgxbC4zNC4xYTEuNDY0IDEuNDY0IDAgMCAxIC44NzIgMi4xMDVsLS4xNy4zMWMtLjY5OCAxLjI4My43MDUgMi42ODYgMS45ODcgMS45ODdsLjMxMS0uMTY5YTEuNDY0IDEuNDY0IDAgMCAxIDIuMTA1Ljg3MmwuMS4zNGMuNDEzIDEuNCAyLjM5NyAxLjQgMi44MSAwbC4xLS4zNGExLjQ2NCAxLjQ2NCAwIDAgMSAyLjEwNS0uODcybC4zMS4xN2MxLjI4My42OTggMi42ODYtLjcwNSAxLjk4Ny0xLjk4N2wtLjE2OS0uMzExYTEuNDY0IDEuNDY0IDAgMCAxIC44NzItMi4xMDVsLjM0LS4xYzEuNC0uNDEzIDEuNC0yLjM5NyAwLTIuODFsLS4zNC0uMWExLjQ2NCAxLjQ2NCAwIDAgMS0uODcyLTIuMTA1bC4xNy0uMzFjLjY5OC0xLjI4My0uNzA1LTIuNjg2LTEuOTg3LTEuOTg3bC0uMzExLjE2OWExLjQ2NCAxLjQ2NCAwIDAgMS0yLjEwNS0uODcybC0uMS0uMzR6TTggMTAuOTNhMi45MjkgMi45MjkgMCAxIDEgMC01Ljg2IDIuOTI5IDIuOTI5IDAgMCAxIDAgNS44NTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2VhcldpZGVDb25uZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wNjguNzI3Yy4yNDMtLjk3IDEuNjItLjk3IDEuODY0IDBsLjA3MS4yODZhLjk2Ljk2IDAgMCAwIDEuNjIyLjQzNGwuMjA1LS4yMTFjLjY5NS0uNzE5IDEuODg4LS4wMyAxLjYxMy45MzFsLS4wOC4yODRhLjk2Ljk2IDAgMCAwIDEuMTg3IDEuMTg3bC4yODMtLjA4MWMuOTYtLjI3NSAxLjY1LjkxOC45MzEgMS42MTNsLS4yMTEuMjA1YS45Ni45NiAwIDAgMCAuNDM0IDEuNjIybC4yODYuMDcxYy45Ny4yNDMuOTcgMS42MiAwIDEuODY0bC0uMjg2LjA3MWEuOTYuOTYgMCAwIDAtLjQzNCAxLjYyMmwuMjExLjIwNWMuNzE5LjY5NS4wMyAxLjg4OC0uOTMxIDEuNjEzbC0uMjg0LS4wOGEuOTYuOTYgMCAwIDAtMS4xODcgMS4xODdsLjA4MS4yODNjLjI3NS45Ni0uOTE4IDEuNjUtMS42MTMuOTMxbC0uMjA1LS4yMTFhLjk2Ljk2IDAgMCAwLTEuNjIyLjQzNGwtLjA3MS4yODZjLS4yNDMuOTctMS42Mi45Ny0xLjg2NCAwbC0uMDcxLS4yODZhLjk2Ljk2IDAgMCAwLTEuNjIyLS40MzRsLS4yMDUuMjExYy0uNjk1LjcxOS0xLjg4OC4wMy0xLjYxMy0uOTMxbC4wOC0uMjg0YS45Ni45NiAwIDAgMC0xLjE4Ni0xLjE4N2wtLjI4NC4wODFjLS45Ni4yNzUtMS42NS0uOTE4LS45MzEtMS42MTNsLjIxMS0uMjA1YS45Ni45NiAwIDAgMC0uNDM0LTEuNjIybC0uMjg2LS4wNzFjLS45Ny0uMjQzLS45Ny0xLjYyIDAtMS44NjRsLjI4Ni0uMDcxYS45Ni45NiAwIDAgMCAuNDM0LTEuNjIybC0uMjExLS4yMDVjLS43MTktLjY5NS0uMDMtMS44ODguOTMxLTEuNjEzbC4yODQuMDhhLjk2Ljk2IDAgMCAwIDEuMTg3LTEuMTg2bC0uMDgxLS4yODRjLS4yNzUtLjk2LjkxOC0xLjY1IDEuNjEzLS45MzFsLjIwNS4yMTFhLjk2Ljk2IDAgMCAwIDEuNjIyLS40MzRsLjA3MS0uMjg2ek0xMi45NzMgOC41SDguMjVsLTIuODM0IDMuNzc5QTQuOTk4IDQuOTk4IDAgMCAwIDEyLjk3MyA4LjV6bTAtMWE0Ljk5OCA0Ljk5OCAwIDAgMC03LjU1Ny0zLjc3OWwyLjgzNCAzLjc4aDQuNzIzek01LjA0OCAzLjk2N2MtLjAzLjAyMS0uMDU4LjA0My0uMDg3LjA2NWwuMDg3LS4wNjV6bS0uNDMxLjM1NUE0Ljk4NCA0Ljk4NCAwIDAgMCAzLjAwMiA4YzAgMS40NTUuNjIyIDIuNzY1IDEuNjE1IDMuNjc4TDcuMzc1IDggNC42MTcgNC4zMjJ6bS4zNDQgNy42NDYuMDg3LjA2NS0uMDg3LS4wNjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2VhcldpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45MzIuNzI3Yy0uMjQzLS45Ny0xLjYyLS45Ny0xLjg2NCAwbC0uMDcxLjI4NmEuOTYuOTYgMCAwIDEtMS42MjIuNDM0bC0uMjA1LS4yMTFjLS42OTUtLjcxOS0xLjg4OC0uMDMtMS42MTMuOTMxbC4wOC4yODRhLjk2Ljk2IDAgMCAxLTEuMTg2IDEuMTg3bC0uMjg0LS4wODFjLS45Ni0uMjc1LTEuNjUuOTE4LS45MzEgMS42MTNsLjIxMS4yMDVhLjk2Ljk2IDAgMCAxLS40MzQgMS42MjJsLS4yODYuMDcxYy0uOTcuMjQzLS45NyAxLjYyIDAgMS44NjRsLjI4Ni4wNzFhLjk2Ljk2IDAgMCAxIC40MzQgMS42MjJsLS4yMTEuMjA1Yy0uNzE5LjY5NS0uMDMgMS44ODguOTMxIDEuNjEzbC4yODQtLjA4YS45Ni45NiAwIDAgMSAxLjE4NyAxLjE4N2wtLjA4MS4yODNjLS4yNzUuOTYuOTE4IDEuNjUgMS42MTMuOTMxbC4yMDUtLjIxMWEuOTYuOTYgMCAwIDEgMS42MjIuNDM0bC4wNzEuMjg2Yy4yNDMuOTcgMS42Mi45NyAxLjg2NCAwbC4wNzEtLjI4NmEuOTYuOTYgMCAwIDEgMS42MjItLjQzNGwuMjA1LjIxMWMuNjk1LjcxOSAxLjg4OC4wMyAxLjYxMy0uOTMxbC0uMDgtLjI4NGEuOTYuOTYgMCAwIDEgMS4xODctMS4xODdsLjI4My4wODFjLjk2LjI3NSAxLjY1LS45MTguOTMxLTEuNjEzbC0uMjExLS4yMDVhLjk2Ljk2IDAgMCAxIC40MzQtMS42MjJsLjI4Ni0uMDcxYy45Ny0uMjQzLjk3LTEuNjIgMC0xLjg2NGwtLjI4Ni0uMDcxYS45Ni45NiAwIDAgMS0uNDM0LTEuNjIybC4yMTEtLjIwNWMuNzE5LS42OTUuMDMtMS44ODgtLjkzMS0xLjYxM2wtLjI4NC4wOGEuOTYuOTYgMCAwIDEtMS4xODctMS4xODZsLjA4MS0uMjg0Yy4yNzUtLjk2LS45MTgtMS42NS0xLjYxMy0uOTMxbC0uMjA1LjIxMWEuOTYuOTYgMCAwIDEtMS42MjItLjQzNEw4LjkzMi43Mjd6TTggMTIuOTk3YTQuOTk4IDQuOTk4IDAgMSAxIDAtOS45OTUgNC45OTggNC45OTggMCAwIDEgMCA5Ljk5NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNC43NTRhMy4yNDYgMy4yNDYgMCAxIDAgMCA2LjQ5MiAzLjI0NiAzLjI0NiAwIDAgMCAwLTYuNDkyek01Ljc1NCA4YTIuMjQ2IDIuMjQ2IDAgMSAxIDQuNDkyIDAgMi4yNDYgMi4yNDYgMCAwIDEtNC40OTIgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05Ljc5NiAxLjM0M2MtLjUyNy0xLjc5LTMuMDY1LTEuNzktMy41OTIgMGwtLjA5NC4zMTlhLjg3My44NzMgMCAwIDEtMS4yNTUuNTJsLS4yOTItLjE2Yy0xLjY0LS44OTItMy40MzMuOTAyLTIuNTQgMi41NDFsLjE1OS4yOTJhLjg3My44NzMgMCAwIDEtLjUyIDEuMjU1bC0uMzE5LjA5NGMtMS43OS41MjctMS43OSAzLjA2NSAwIDMuNTkybC4zMTkuMDk0YS44NzMuODczIDAgMCAxIC41MiAxLjI1NWwtLjE2LjI5MmMtLjg5MiAxLjY0LjkwMSAzLjQzNCAyLjU0MSAyLjU0bC4yOTItLjE1OWEuODczLjg3MyAwIDAgMSAxLjI1NS41MmwuMDk0LjMxOWMuNTI3IDEuNzkgMy4wNjUgMS43OSAzLjU5MiAwbC4wOTQtLjMxOWEuODczLjg3MyAwIDAgMSAxLjI1NS0uNTJsLjI5Mi4xNmMxLjY0Ljg5MyAzLjQzNC0uOTAyIDIuNTQtMi41NDFsLS4xNTktLjI5MmEuODczLjg3MyAwIDAgMSAuNTItMS4yNTVsLjMxOS0uMDk0YzEuNzktLjUyNyAxLjc5LTMuMDY1IDAtMy41OTJsLS4zMTktLjA5NGEuODczLjg3MyAwIDAgMS0uNTItMS4yNTVsLjE2LS4yOTJjLjg5My0xLjY0LS45MDItMy40MzMtMi41NDEtMi41NGwtLjI5Mi4xNTlhLjg3My44NzMgMCAwIDEtMS4yNTUtLjUybC0uMDk0LS4zMTl6bS0yLjYzMy4yODNjLjI0Ni0uODM1IDEuNDI4LS44MzUgMS42NzQgMGwuMDk0LjMxOWExLjg3MyAxLjg3MyAwIDAgMCAyLjY5MyAxLjExNWwuMjkxLS4xNmMuNzY0LS40MTUgMS42LjQyIDEuMTg0IDEuMTg1bC0uMTU5LjI5MmExLjg3MyAxLjg3MyAwIDAgMCAxLjExNiAyLjY5MmwuMzE4LjA5NGMuODM1LjI0Ni44MzUgMS40MjggMCAxLjY3NGwtLjMxOS4wOTRhMS44NzMgMS44NzMgMCAwIDAtMS4xMTUgMi42OTNsLjE2LjI5MWMuNDE1Ljc2NC0uNDIgMS42LTEuMTg1IDEuMTg0bC0uMjkxLS4xNTlhMS44NzMgMS44NzMgMCAwIDAtMi42OTMgMS4xMTZsLS4wOTQuMzE4Yy0uMjQ2LjgzNS0xLjQyOC44MzUtMS42NzQgMGwtLjA5NC0uMzE5YTEuODczIDEuODczIDAgMCAwLTIuNjkyLTEuMTE1bC0uMjkyLjE2Yy0uNzY0LjQxNS0xLjYtLjQyLTEuMTg0LTEuMTg1bC4xNTktLjI5MUExLjg3MyAxLjg3MyAwIDAgMCAxLjk0NSA4LjkzbC0uMzE5LS4wOTRjLS44MzUtLjI0Ni0uODM1LTEuNDI4IDAtMS42NzRsLjMxOS0uMDk0QTEuODczIDEuODczIDAgMCAwIDMuMDYgNC4zNzdsLS4xNi0uMjkyYy0uNDE1LS43NjQuNDItMS42IDEuMTg1LTEuMTg0bC4yOTIuMTU5YTEuODczIDEuODczIDAgMCAwIDIuNjkyLTEuMTE1bC4wOTQtLjMxOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4xLjdhLjUuNSAwIDAgMSAuNC0uMmg5YS41LjUgMCAwIDEgLjQuMmwyLjk3NiAzLjk3NGMuMTQ5LjE4NS4xNTYuNDUuMDEuNjQ0TDguNCAxNS4zYS41LjUgMCAwIDEtLjggMEwuMSA1LjNhLjUuNSAwIDAgMSAwLS42bDMtNHptMTEuMzg2IDMuNzg1LTEuODA2LTIuNDEtLjc3NiAyLjQxMyAyLjU4Mi0uMDAzem0tMy42MzMuMDA0Ljk2MS0yLjk4OUg0LjE4NmwuOTYzIDIuOTk1IDUuNzA0LS4wMDZ6TTUuNDcgNS40OTUgOCAxMy4zNjZsMi41MzItNy44NzYtNS4wNjIuMDA1em0tMS4zNzEtLjk5OS0uNzgtMi40MjItMS44MTggMi40MjUgMi41OTgtLjAwM3pNMS40OTkgNS41bDUuMTEzIDYuODE3LTIuMTkyLTYuODJMMS41IDUuNXptNy44ODkgNi44MTcgNS4xMjMtNi44My0yLjkyOC4wMDItMi4xOTUgNi44Mjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2VuZGVyQW1iaWd1b3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMS41IDFhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLTEgMFYxLjcwN2wtMy40NSAzLjQ1QTQgNCAwIDAgMSA4LjUgMTAuOTdWMTNIMTBhLjUuNSAwIDAgMSAwIDFIOC41djEuNWEuNS41IDAgMCAxLTEgMFYxNEg2YS41LjUgMCAwIDEgMC0xaDEuNXYtMi4wM2E0IDQgMCAxIDEgMy40NzEtNi42NDhMMTQuMjkzIDFIMTEuNXptLS45OTcgNC4zNDZhMyAzIDAgMSAwLTUuMDA2IDMuMzA5IDMgMyAwIDAgMCA1LjAwNi0zLjMxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dlbmRlckZlbWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAxYTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOHpNMyA1YTUgNSAwIDEgMSA1LjUgNC45NzVWMTJoMmEuNS41IDAgMCAxIDAgMWgtMnYyLjVhLjUuNSAwIDAgMS0xIDBWMTNoLTJhLjUuNSAwIDAgMSAwLTFoMlY5Ljk3NUE1IDUgMCAwIDEgMyA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dlbmRlck1hbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkuNSAyYS41LjUgMCAwIDEgMC0xaDVhLjUuNSAwIDAgMSAuNS41djVhLjUuNSAwIDAgMS0xIDBWMi43MDdMOS44NzEgNi44MzZhNSA1IDAgMSAxLS43MDctLjcwN0wxMy4yOTMgMkg5LjV6TTYgNmE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLTh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2VuZGVyVHJhbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgLjVBLjUuNSAwIDAgMSAuNSAwaDNhLjUuNSAwIDAgMSAwIDFIMS43MDdMMy41IDIuNzkzbC42NDYtLjY0N2EuNS41IDAgMSAxIC43MDguNzA4bC0uNjQ3LjY0Ni44MjIuODIyQTMuOTkgMy45OSAwIDAgMSA4IDNjMS4xOCAwIDIuMjM5LjUxIDIuOTcxIDEuMzIyTDE0LjI5MyAxSDExLjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLTEgMFYxLjcwN2wtMy40NSAzLjQ1QTQgNCAwIDAgMSA4LjUgMTAuOTdWMTNIMTBhLjUuNSAwIDAgMSAwIDFIOC41djEuNWEuNS41IDAgMCAxLTEgMFYxNEg2YS41LjUgMCAwIDEgMC0xaDEuNXYtMi4wM2E0IDQgMCAwIDEtMy4wNS01LjgxNGwtLjk1LS45NDktLjY0Ni42NDdhLjUuNSAwIDEgMS0uNzA4LS43MDhsLjY0Ny0uNjQ2TDEgMS43MDdWMy41YS41LjUgMCAwIDEtMSAwdi0zem01LjQ5IDQuODU2YTMgMyAwIDEgMCA1LjAyIDMuMjg4IDMgMyAwIDAgMC01LjAyLTMuMjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dlb0FsdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNnM2LTUuNjg2IDYtMTBBNiA2IDAgMCAwIDIgNmMwIDQuMzE0IDYgMTAgNiAxMHptMC03YTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHZW9BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMTY2IDguOTRjLS41MjQgMS4wNjItMS4yMzQgMi4xMi0xLjk2IDMuMDdBMzEuNDkzIDMxLjQ5MyAwIDAgMSA4IDE0LjU4YTMxLjQ4MSAzMS40ODEgMCAwIDEtMi4yMDYtMi41N2MtLjcyNi0uOTUtMS40MzYtMi4wMDgtMS45Ni0zLjA3QzMuMzA0IDcuODY3IDMgNi44NjIgMyA2YTUgNSAwIDAgMSAxMCAwYzAgLjg2Mi0uMzA1IDEuODY3LS44MzQgMi45NHpNOCAxNnM2LTUuNjg2IDYtMTBBNiA2IDAgMCAwIDIgNmMwIDQuMzE0IDYgMTAgNiAxMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDhhMiAyIDAgMSAxIDAtNCAyIDIgMCAwIDEgMCA0em0wIDFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dlb0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGE0IDQgMCAxIDEgNC41IDMuOTY5VjEzLjVhLjUuNSAwIDAgMS0xIDBWNy45N0E0IDQgMCAwIDEgNCAzLjk5OXptMi40OTMgOC41NzRhLjUuNSAwIDAgMS0uNDExLjU3NWMtLjcxMi4xMTgtMS4yOC4yOTUtMS42NTUuNDkzYTEuMzE5IDEuMzE5IDAgMCAwLS4zNy4yNjUuMzAxLjMwMSAwIDAgMC0uMDU3LjA5VjE0bC4wMDIuMDA4YS4xNDcuMTQ3IDAgMCAwIC4wMTYuMDMzLjYxNy42MTcgMCAwIDAgLjE0NS4xNWMuMTY1LjEzLjQzNS4yNy44MTMuMzk1Ljc1MS4yNSAxLjgyLjQxNCAzLjAyNC40MTRzMi4yNzMtLjE2MyAzLjAyNC0uNDE0Yy4zNzgtLjEyNi42NDgtLjI2NS44MTMtLjM5NWEuNjE5LjYxOSAwIDAgMCAuMTQ2LS4xNS4xNDguMTQ4IDAgMCAwIC4wMTUtLjAzM0wxMiAxNHYtLjAwNGEuMzAxLjMwMSAwIDAgMC0uMDU3LS4wOSAxLjMxOCAxLjMxOCAwIDAgMC0uMzctLjI2NGMtLjM3Ni0uMTk4LS45NDMtLjM3NS0xLjY1NS0uNDkzYS41LjUgMCAxIDEgLjE2NC0uOTg2Yy43Ny4xMjcgMS40NTIuMzI4IDEuOTU3LjU5NEMxMi41IDEzIDEzIDEzLjQgMTMgMTRjMCAuNDI2LS4yNi43NTItLjU0NC45NzctLjI5LjIyOC0uNjguNDEzLTEuMTE2LjU1OC0uODc4LjI5My0yLjA1OS40NjUtMy4zNC40NjUtMS4yODEgMC0yLjQ2Mi0uMTcyLTMuMzQtLjQ2NS0uNDM2LS4xNDUtLjgyNi0uMzMtMS4xMTYtLjU1OEMzLjI2IDE0Ljc1MiAzIDE0LjQyNiAzIDE0YzAtLjU5OS41LTEgLjk2MS0xLjI0My41MDUtLjI2NiAxLjE4Ny0uNDY3IDEuOTU3LS41OTRhLjUuNSAwIDAgMSAuNTc1LjQxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMWEzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZ6TTQgNGE0IDQgMCAxIDEgNC41IDMuOTY5VjEzLjVhLjUuNSAwIDAgMS0xIDBWNy45N0E0IDQgMCAwIDEgNCAzLjk5OXptMi40OTMgOC41NzRhLjUuNSAwIDAgMS0uNDExLjU3NWMtLjcxMi4xMTgtMS4yOC4yOTUtMS42NTUuNDkzYTEuMzE5IDEuMzE5IDAgMCAwLS4zNy4yNjUuMzAxLjMwMSAwIDAgMC0uMDU3LjA5VjE0bC4wMDIuMDA4YS4xNDcuMTQ3IDAgMCAwIC4wMTYuMDMzLjYxNy42MTcgMCAwIDAgLjE0NS4xNWMuMTY1LjEzLjQzNS4yNy44MTMuMzk1Ljc1MS4yNSAxLjgyLjQxNCAzLjAyNC40MTRzMi4yNzMtLjE2MyAzLjAyNC0uNDE0Yy4zNzgtLjEyNi42NDgtLjI2NS44MTMtLjM5NWEuNjE5LjYxOSAwIDAgMCAuMTQ2LS4xNS4xNDguMTQ4IDAgMCAwIC4wMTUtLjAzM0wxMiAxNHYtLjAwNGEuMzAxLjMwMSAwIDAgMC0uMDU3LS4wOSAxLjMxOCAxLjMxOCAwIDAgMC0uMzctLjI2NGMtLjM3Ni0uMTk4LS45NDMtLjM3NS0xLjY1NS0uNDkzYS41LjUgMCAxIDEgLjE2NC0uOTg2Yy43Ny4xMjcgMS40NTIuMzI4IDEuOTU3LjU5NEMxMi41IDEzIDEzIDEzLjQgMTMgMTRjMCAuNDI2LS4yNi43NTItLjU0NC45NzctLjI5LjIyOC0uNjguNDEzLTEuMTE2LjU1OC0uODc4LjI5My0yLjA1OS40NjUtMy4zNC40NjUtMS4yODEgMC0yLjQ2Mi0uMTcyLTMuMzQtLjQ2NS0uNDM2LS4xNDUtLjgyNi0uMzMtMS4xMTYtLjU1OEMzLjI2IDE0Ljc1MiAzIDE0LjQyNiAzIDE0YzAtLjU5OS41LTEgLjk2MS0xLjI0My41MDUtLjI2NiAxLjE4Ny0uNDY3IDEuOTU3LS41OTRhLjUuNSAwIDAgMSAuNTc1LjQxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHaWZ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIuNWEyLjUgMi41IDAgMCAxIDUgMCAyLjUgMi41IDAgMCAxIDUgMHYuMDA2YzAgLjA3IDAgLjI3LS4wMzguNDk0SDE1YTEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDEtMSAxSDFhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMi4wMzhBMi45NjggMi45NjggMCAwIDEgMyAyLjUwNlYyLjV6bTEuMDY4LjVIN3YtLjVhMS41IDEuNSAwIDEgMC0zIDBjMCAuMDg1LjAwMi4yNzQuMDQ1LjQzYS41MjIuNTIyIDAgMCAwIC4wMjMuMDd6TTkgM2gyLjkzMmEuNTYuNTYgMCAwIDAgLjAyMy0uMDdjLjA0My0uMTU2LjA0NS0uMzQ1LjA0NS0uNDNhMS41IDEuNSAwIDAgMC0zIDBWM3ptNiA0djcuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVIOVY3aDZ6TTIuNSAxNkExLjUgMS41IDAgMCAxIDEgMTQuNVY3aDZ2OUgyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2lmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIuNWEyLjUgMi41IDAgMCAxIDUgMCAyLjUgMi41IDAgMCAxIDUgMHYuMDA2YzAgLjA3IDAgLjI3LS4wMzguNDk0SDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxdjcuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMSAxNC41VjdhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMi4wMzhBMi45NjggMi45NjggMCAwIDEgMyAyLjUwNlYyLjV6bTEuMDY4LjVIN3YtLjVhMS41IDEuNSAwIDEgMC0zIDBjMCAuMDg1LjAwMi4yNzQuMDQ1LjQzYS41MjIuNTIyIDAgMCAwIC4wMjMuMDd6TTkgM2gyLjkzMmEuNTYuNTYgMCAwIDAgLjAyMy0uMDdjLjA0My0uMTU2LjA0NS0uMzQ1LjA0NS0uNDNhMS41IDEuNSAwIDAgMC0zIDBWM3pNMSA0djJoNlY0SDF6bTggMHYyaDZWNEg5em01IDNIOXY4aDQuNWEuNS41IDAgMCAwIC41LS41Vjd6bS03IDhWN0gydjcuNWEuNS41IDAgMCAwIC41LjVIN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHaXRodWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwQzMuNTggMCAwIDMuNTggMCA4YzAgMy41NCAyLjI5IDYuNTMgNS40NyA3LjU5LjQuMDcuNTUtLjE3LjU1LS4zOCAwLS4xOS0uMDEtLjgyLS4wMS0xLjQ5LTIuMDEuMzctMi41My0uNDktMi42OS0uOTQtLjA5LS4yMy0uNDgtLjk0LS44Mi0xLjEzLS4yOC0uMTUtLjY4LS41Mi0uMDEtLjUzLjYzLS4wMSAxLjA4LjU4IDEuMjMuODIuNzIgMS4yMSAxLjg3Ljg3IDIuMzMuNjYuMDctLjUyLjI4LS44Ny41MS0xLjA3LTEuNzgtLjItMy42NC0uODktMy42NC0zLjk1IDAtLjg3LjMxLTEuNTkuODItMi4xNS0uMDgtLjItLjM2LTEuMDIuMDgtMi4xMiAwIDAgLjY3LS4yMSAyLjIuODIuNjQtLjE4IDEuMzItLjI3IDItLjI3LjY4IDAgMS4zNi4wOSAyIC4yNyAxLjUzLTEuMDQgMi4yLS44MiAyLjItLjgyLjQ0IDEuMS4xNiAxLjkyLjA4IDIuMTIuNTEuNTYuODIgMS4yNy44MiAyLjE1IDAgMy4wNy0xLjg3IDMuNzUtMy42NSAzLjk1LjI5LjI1LjU0LjczLjU0IDEuNDggMCAxLjA3LS4wMSAxLjkzLS4wMSAyLjIgMCAuMjEuMTUuNDYuNTUuMzhBOC4wMTIgOC4wMTIgMCAwIDAgMTYgOGMwLTQuNDItMy41OC04LTgtOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHbG9iZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOHptNy41LTYuOTIzYy0uNjcuMjA0LTEuMzM1LjgyLTEuODg3IDEuODU1QTcuOTcgNy45NyAwIDAgMCA1LjE0NSA0SDcuNVYxLjA3N3pNNC4wOSA0YTkuMjY3IDkuMjY3IDAgMCAxIC42NC0xLjUzOSA2LjcgNi43IDAgMCAxIC41OTctLjkzM0E3LjAyNSA3LjAyNSAwIDAgMCAyLjI1NSA0SDQuMDl6bS0uNTgyIDMuNWMuMDMtLjg3Ny4xMzgtMS43MTguMzEyLTIuNUgxLjY3NGE2Ljk1OCA2Ljk1OCAwIDAgMC0uNjU2IDIuNWgyLjQ5ek00Ljg0NyA1YTEyLjUgMTIuNSAwIDAgMC0uMzM4IDIuNUg3LjVWNUg0Ljg0N3pNOC41IDV2Mi41aDIuOTlhMTIuNDk1IDEyLjQ5NSAwIDAgMC0uMzM3LTIuNUg4LjV6TTQuNTEgOC41YTEyLjUgMTIuNSAwIDAgMCAuMzM3IDIuNUg3LjVWOC41SDQuNTF6bTMuOTkgMFYxMWgyLjY1M2MuMTg3LS43NjUuMzA2LTEuNjA4LjMzOC0yLjVIOC41ek01LjE0NSAxMmMuMTM4LjM4Ni4yOTUuNzQ0LjQ2OCAxLjA2OC41NTIgMS4wMzUgMS4yMTggMS42NSAxLjg4NyAxLjg1NVYxMkg1LjE0NXptLjE4MiAyLjQ3MmE2LjY5NiA2LjY5NiAwIDAgMS0uNTk3LS45MzNBOS4yNjggOS4yNjggMCAwIDEgNC4wOSAxMkgyLjI1NWE3LjAyNCA3LjAyNCAwIDAgMCAzLjA3MiAyLjQ3MnpNMy44MiAxMWExMy42NTIgMTMuNjUyIDAgMCAxLS4zMTItMi41aC0yLjQ5Yy4wNjIuODkuMjkxIDEuNzMzLjY1NiAyLjVIMy44MnptNi44NTMgMy40NzJBNy4wMjQgNy4wMjQgMCAwIDAgMTMuNzQ1IDEySDExLjkxYTkuMjcgOS4yNyAwIDAgMS0uNjQgMS41MzkgNi42ODggNi42ODggMCAwIDEtLjU5Ny45MzN6TTguNSAxMnYyLjkyM2MuNjctLjIwNCAxLjMzNS0uODIgMS44ODctMS44NTUuMTczLS4zMjQuMzMtLjY4Mi40NjgtMS4wNjhIOC41em0zLjY4LTFoMi4xNDZjLjM2NS0uNzY3LjU5NC0xLjYxLjY1Ni0yLjVoLTIuNDlhMTMuNjUgMTMuNjUgMCAwIDEtLjMxMiAyLjV6bTIuODAyLTMuNWE2Ljk1OSA2Ljk1OSAwIDAgMC0uNjU2LTIuNUgxMi4xOGMuMTc0Ljc4Mi4yODIgMS42MjMuMzEyIDIuNWgyLjQ5ek0xMS4yNyAyLjQ2MWMuMjQ3LjQ2NC40NjIuOTguNjQgMS41MzloMS44MzVhNy4wMjQgNy4wMjQgMCAwIDAtMy4wNzItMi40NzJjLjIxOC4yODQuNDE4LjU5OC41OTcuOTMzek0xMC44NTUgNGE3Ljk2NiA3Ljk2NiAwIDAgMC0uNDY4LTEuMDY4QzkuODM1IDEuODk3IDkuMTcgMS4yODIgOC41IDEuMDc3VjRoMi4zNTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR2xvYmUyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4em03LjUtNi45MjNjLS42Ny4yMDQtMS4zMzUuODItMS44ODcgMS44NTUtLjE0My4yNjgtLjI3Ni41Ni0uMzk1Ljg3Mi43MDUuMTU3IDEuNDcyLjI1NyAyLjI4Mi4yODdWMS4wNzd6TTQuMjQ5IDMuNTM5Yy4xNDItLjM4NC4zMDQtLjc0NC40ODEtMS4wNzhhNi43IDYuNyAwIDAgMSAuNTk3LS45MzNBNy4wMSA3LjAxIDAgMCAwIDMuMDUxIDMuMDVjLjM2Mi4xODQuNzYzLjM0OSAxLjE5OC40OXpNMy41MDkgNy41Yy4wMzYtMS4wNy4xODgtMi4wODcuNDM2LTMuMDA4YTkuMTI0IDkuMTI0IDAgMCAxLTEuNTY1LS42NjdBNi45NjQgNi45NjQgMCAwIDAgMS4wMTggNy41aDIuNDl6bTEuNC0yLjc0MWExMi4zNDQgMTIuMzQ0IDAgMCAwLS40IDIuNzQxSDcuNVY1LjA5MWMtLjkxLS4wMy0xLjc4My0uMTQ1LTIuNTkxLS4zMzJ6TTguNSA1LjA5VjcuNWgyLjk5YTEyLjM0MiAxMi4zNDIgMCAwIDAtLjM5OS0yLjc0MWMtLjgwOC4xODctMS42ODEuMzAxLTIuNTkxLjMzMnpNNC41MSA4LjVjLjAzNS45ODcuMTc2IDEuOTE0LjM5OSAyLjc0MUExMy42MTIgMTMuNjEyIDAgMCAxIDcuNSAxMC45MVY4LjVINC41MXptMy45OSAwdjIuNDA5Yy45MS4wMyAxLjc4My4xNDUgMi41OTEuMzMyLjIyMy0uODI3LjM2NC0xLjc1NC40LTIuNzQxSDguNXptLTMuMjgyIDMuNjk2Yy4xMi4zMTIuMjUyLjYwNC4zOTUuODcyLjU1MiAxLjAzNSAxLjIxOCAxLjY1IDEuODg3IDEuODU1VjExLjkxYy0uODEuMDMtMS41NzcuMTMtMi4yODIuMjg3em0uMTEgMi4yNzZhNi42OTYgNi42OTYgMCAwIDEtLjU5OC0uOTMzIDguODUzIDguODUzIDAgMCAxLS40ODEtMS4wNzkgOC4zOCA4LjM4IDAgMCAwLTEuMTk4LjQ5IDcuMDEgNy4wMSAwIDAgMCAyLjI3NiAxLjUyMnptLTEuMzgzLTIuOTY0QTEzLjM2IDEzLjM2IDAgMCAxIDMuNTA4IDguNWgtMi40OWE2Ljk2MyA2Ljk2MyAwIDAgMCAxLjM2MiAzLjY3NWMuNDctLjI1OC45OTUtLjQ4MiAxLjU2NS0uNjY3em02LjcyOCAyLjk2NGE3LjAwOSA3LjAwOSAwIDAgMCAyLjI3NS0xLjUyMSA4LjM3NiA4LjM3NiAwIDAgMC0xLjE5Ny0uNDkgOC44NTMgOC44NTMgMCAwIDEtLjQ4MSAxLjA3OCA2LjY4OCA2LjY4OCAwIDAgMS0uNTk3LjkzM3pNOC41IDExLjkwOXYzLjAxNGMuNjctLjIwNCAxLjMzNS0uODIgMS44ODctMS44NTUuMTQzLS4yNjguMjc2LS41Ni4zOTUtLjg3MkExMi42MyAxMi42MyAwIDAgMCA4LjUgMTEuOTF6bTMuNTU1LS40MDFjLjU3LjE4NSAxLjA5NS40MDkgMS41NjUuNjY3QTYuOTYzIDYuOTYzIDAgMCAwIDE0Ljk4MiA4LjVoLTIuNDlhMTMuMzYgMTMuMzYgMCAwIDEtLjQzNyAzLjAwOHpNMTQuOTgyIDcuNWE2Ljk2MyA2Ljk2MyAwIDAgMC0xLjM2Mi0zLjY3NWMtLjQ3LjI1OC0uOTk1LjQ4Mi0xLjU2NS42NjcuMjQ4LjkyLjQgMS45MzguNDM3IDMuMDA4aDIuNDl6TTExLjI3IDIuNDYxYy4xNzcuMzM0LjMzOS42OTQuNDgyIDEuMDc4YTguMzY4IDguMzY4IDAgMCAwIDEuMTk2LS40OSA3LjAxIDcuMDEgMCAwIDAtMi4yNzUtMS41MmMuMjE4LjI4My40MTguNTk3LjU5Ny45MzJ6bS0uNDg4IDEuMzQzYTcuNzY1IDcuNzY1IDAgMCAwLS4zOTUtLjg3MkM5LjgzNSAxLjg5NyA5LjE3IDEuMjgyIDguNSAxLjA3N1Y0LjA5Yy44MS0uMDMgMS41NzctLjEzIDIuMjgyLS4yODd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR29vZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjU0NSA2LjU1OGE5LjQyIDkuNDIgMCAwIDEgLjEzOSAxLjYyNmMwIDIuNDM0LS44NyA0LjQ5Mi0yLjM4NCA1Ljg4NWguMDAyQzExLjk3OCAxNS4yOTIgMTAuMTU4IDE2IDggMTZBOCA4IDAgMSAxIDggMGE3LjY4OSA3LjY4OSAwIDAgMSA1LjM1MiAyLjA4MmwtMi4yODQgMi4yODRBNC4zNDcgNC4zNDcgMCAwIDAgOCAzLjE2NmMtMi4wODcgMC0zLjg2IDEuNDA4LTQuNDkyIDMuMzA0YTQuNzkyIDQuNzkyIDAgMCAwIDAgMy4wNjNoLjAwM2MuNjM1IDEuODkzIDIuNDA1IDMuMzAxIDQuNDkyIDMuMzAxIDEuMDc4IDAgMi4wMDQtLjI3NiAyLjcyMi0uNzY0aC0uMDAzYTMuNzAyIDMuNzAyIDAgMCAwIDEuNTk5LTIuNDMxSDh2LTMuMDhoNy41NDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JhcGhEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0wIDBoMXYxNWgxNXYxSDBWMHptMTAgMTEuNWEuNS41IDAgMCAwIC41LjVoNGEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtMSAwdjIuNmwtMy42MTMtNC40MTdhLjUuNSAwIDAgMC0uNzQtLjAzN0w3LjA2IDguMjMzIDMuNDA0IDMuMjA2YS41LjUgMCAwIDAtLjgwOC41ODhsNCA1LjVhLjUuNSAwIDAgMCAuNzU4LjA2bDIuNjA5LTIuNjFMMTMuNDQ1IDExSDEwLjVhLjUuNSAwIDAgMC0uNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dyYXBoVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgMGgxdjE1aDE1djFIMFYwem0xMCAzLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgLjUuNXY0YS41LjUgMCAwIDEtMSAwVjQuOWwtMy42MTMgNC40MTdhLjUuNSAwIDAgMS0uNzQuMDM3TDcuMDYgNi43NjdsLTMuNjU2IDUuMDI3YS41LjUgMCAwIDEtLjgwOC0uNTg4bDQtNS41YS41LjUgMCAwIDEgLjc1OC0uMDZsMi42MDkgMi42MUwxMy40NDUgNEgxMC41YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpZDFYMkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxYTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjE0YTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjF6bTkgMGExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMVYxem0wIDlhMSAxIDAgMCAxIDEtMWg1YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxaC01YTEgMSAwIDAgMS0xLTF2LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpZDFYMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDFIMXYxNGg1VjF6bTkgMGgtNXY1aDVWMXptMCA5djVoLTV2LTVoNXpNMCAxYTEgMSAwIDAgMSAxLTFoNWExIDEgMCAwIDEgMSAxdjE0YTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjF6bTkgMGExIDEgMCAwIDEgMS0xaDVhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMVYxem0xIDhhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi01YTEgMSAwIDAgMC0xLTFoLTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpZDNYMkdhcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA0YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWNHptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWNHptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xVjR6TTEgOWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjl6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjl6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVY5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dyaWQzWDJHYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0djJIMlY0aDJ6bTEgN1Y5YTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6bTAtNVY0YTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6bTUgNVY5YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6bTAtNVY0YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6TTkgNHYySDdWNGgyem01IDBoLTJ2MmgyVjR6TTQgOXYySDJWOWgyem01IDB2Mkg3VjloMnptNSAwdjJoLTJWOWgyem0tMy01YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xVjR6bTEgNGExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDAtMS0xaC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dyaWQzWDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzLjVBMS41IDEuNSAwIDAgMSAxLjUgMmgxM0ExLjUgMS41IDAgMCAxIDE2IDMuNXY4YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAwIDExLjV2LTh6TTEuNSAzYS41LjUgMCAwIDAtLjUuNVY3aDRWM0gxLjV6TTUgOEgxdjMuNWEuNS41IDAgMCAwIC41LjVINVY4em0xIDB2NGg0VjhINnptNC0xVjNINnY0aDR6bTEgMXY0aDMuNWEuNS41IDAgMCAwIC41LS41VjhoLTR6bTAtMWg0VjMuNWEuNS41IDAgMCAwLS41LS41SDExdjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpZDNYM0dhcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWMnptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg3YTEgMSAwIDAgMS0xLTFWMnptNSAwYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xVjJ6TTEgN2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjd6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xVjd6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVY3ek0xIDEyYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTF2LTJ6bTUgMGExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIN2ExIDEgMCAwIDEtMS0xdi0yem01IDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTF2LTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpZDNYM0dhcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDJ2MkgyVjJoMnptMSAxMnYtMmExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xem0wLTVWN2ExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xem0wLTVWMmExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xem01IDEwdi0yYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6bTAtNVY3YTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6bTAtNVYyYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6TTkgMnYySDdWMmgyem01IDB2MmgtMlYyaDJ6TTQgN3YySDJWN2gyem01IDB2Mkg3VjdoMnptNSAwaC0ydjJoMlY3ek00IDEydjJIMnYtMmgyem01IDB2Mkg3di0yaDJ6bTUgMHYyaC0ydi0yaDJ6TTEyIDFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMWgtMnptLTEgNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMVY3em0xIDRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpZDNYMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuNUExLjUgMS41IDAgMCAxIDEuNSAwaDEzQTEuNSAxLjUgMCAwIDEgMTYgMS41djEzYTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAwIDE0LjV2LTEzek0xLjUgMWEuNS41IDAgMCAwLS41LjVWNWg0VjFIMS41ek01IDZIMXY0aDRWNnptMSA0aDRWNkg2djR6bS0xIDFIMXYzLjVhLjUuNSAwIDAgMCAuNS41SDV2LTR6bTEgMHY0aDR2LTRINnptNSAwdjRoMy41YS41LjUgMCAwIDAgLjUtLjVWMTFoLTR6bTAtMWg0VjZoLTR2NHptMC01aDRWMS41YS41LjUgMCAwIDAtLjUtLjVIMTF2NHptLTEgMFYxSDZ2NGg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dyaWRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMi41QTEuNSAxLjUgMCAwIDEgMi41IDFoM0ExLjUgMS41IDAgMCAxIDcgMi41djNBMS41IDEuNSAwIDAgMSA1LjUgN2gtM0ExLjUgMS41IDAgMCAxIDEgNS41di0zem04IDBBMS41IDEuNSAwIDAgMSAxMC41IDFoM0ExLjUgMS41IDAgMCAxIDE1IDIuNXYzQTEuNSAxLjUgMCAwIDEgMTMuNSA3aC0zQTEuNSAxLjUgMCAwIDEgOSA1LjV2LTN6bS04IDhBMS41IDEuNSAwIDAgMSAyLjUgOWgzQTEuNSAxLjUgMCAwIDEgNyAxMC41djNBMS41IDEuNSAwIDAgMSA1LjUgMTVoLTNBMS41IDEuNSAwIDAgMSAxIDEzLjV2LTN6bTggMEExLjUgMS41IDAgMCAxIDEwLjUgOWgzYTEuNSAxLjUgMCAwIDEgMS41IDEuNXYzYTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtM0ExLjUgMS41IDAgMCAxIDkgMTMuNXYtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNHcmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMi41QTEuNSAxLjUgMCAwIDEgMi41IDFoM0ExLjUgMS41IDAgMCAxIDcgMi41djNBMS41IDEuNSAwIDAgMSA1LjUgN2gtM0ExLjUgMS41IDAgMCAxIDEgNS41di0zek0yLjUgMmEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIC41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTN6bTYuNS41QTEuNSAxLjUgMCAwIDEgMTAuNSAxaDNBMS41IDEuNSAwIDAgMSAxNSAyLjV2M0ExLjUgMS41IDAgMCAxIDEzLjUgN2gtM0ExLjUgMS41IDAgMCAxIDkgNS41di0zem0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zek0xIDEwLjVBMS41IDEuNSAwIDAgMSAyLjUgOWgzQTEuNSAxLjUgMCAwIDEgNyAxMC41djNBMS41IDEuNSAwIDAgMSA1LjUgMTVoLTNBMS41IDEuNSAwIDAgMSAxIDEzLjV2LTN6bTEuNS0uNWEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIC41LjVoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDAtLjUtLjVoLTN6bTYuNS41QTEuNSAxLjUgMCAwIDEgMTAuNSA5aDNhMS41IDEuNSAwIDAgMSAxLjUgMS41djNhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0zQTEuNSAxLjUgMCAwIDEgOSAxMy41di0zem0xLjUtLjVhLjUuNSAwIDAgMC0uNS41djNhLjUuNSAwIDAgMCAuNS41aDNhLjUuNSAwIDAgMCAuNS0uNXYtM2EuNS41IDAgMCAwLS41LS41aC0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0dyaXBIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgOGExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTMgM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTMgM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTMgM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTMgM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTAtM2ExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzR3JpcFZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTMgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6TTcgNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTMgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6TTcgOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTMgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bS0zIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0zIDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0tMyAzYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIYW1tZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS45NzIgMi41MDhhLjUuNSAwIDAgMC0uMTYtLjU1NmwtLjE3OC0uMTI5YTUuMDA5IDUuMDA5IDAgMCAwLTIuMDc2LS43ODNDNi4yMTUuODYyIDQuNTA0IDEuMjI5IDIuODQgMy4xMzNIMS43ODZhLjUuNSAwIDAgMC0uMzU0LjE0N0wuMTQ2IDQuNTY3YS41LjUgMCAwIDAgMCAuNzA2bDIuNTcxIDIuNTc5YS41LjUgMCAwIDAgLjcwOCAwbDEuMjg2LTEuMjlhLjUuNSAwIDAgMCAuMTQ2LS4zNTNWNS41N2w4LjM4NyA4Ljg3M0EuNS41IDAgMCAwIDE0IDE0LjVsMS41LTEuNWEuNS41IDAgMCAwIC4wMTctLjY4OWwtOS4xMjktOC42M2MuNzQ3LS40NTYgMS43NzItLjgzOSAzLjExMi0uODM5YS41LjUgMCAwIDAgLjQ3Mi0uMzM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hhbmRJbmRleEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDQuNDY2VjEuNzVhMS43NSAxLjc1IDAgMSAwLTMuNSAwdjUuMzRsLTEuMi4yNGExLjUgMS41IDAgMCAwLTEuMTk2IDEuNjM2bC4zNDUgMy4xMDZhMi41IDIuNSAwIDAgMCAuNDA1IDEuMTFsMS40MzMgMi4xNUExLjUgMS41IDAgMCAwIDYuMDM1IDE2aDYuMzg1YTEuNSAxLjUgMCAwIDAgMS4zMDItLjc1NmwxLjM5NS0yLjQ0MWEzLjUgMy41IDAgMCAwIC40NDQtMS4zODlsLjI3MS0yLjcxNWEyIDIgMCAwIDAtMS45OS0yLjE5OWgtLjU4MWE1LjExNCA1LjExNCAwIDAgMC0uMTk1LS4yNDhjLS4xOTEtLjIyOS0uNTEtLjU2OC0uODgtLjcxNi0uMzY0LS4xNDYtLjg0Ni0uMTMyLTEuMTU4LS4xMDhsLS4xMzIuMDEyYTEuMjYgMS4yNiAwIDAgMC0uNTYtLjY0MiAyLjYzMiAyLjYzMiAwIDAgMC0uNzM4LS4yODhjLS4zMS0uMDYyLS43MzktLjA1OC0xLjA1LS4wNDZsLS4wNDguMDAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hhbmRJbmRleFRodW1iRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMS43NXYyLjcxNmwuMDQ3LS4wMDJjLjMxMi0uMDEyLjc0Mi0uMDE2IDEuMDUxLjA0Ni4yOC4wNTYuNTQzLjE4LjczOC4yODguMjczLjE1Mi40NTYuMzg1LjU2LjY0MmwuMTMyLS4wMTJjLjMxMi0uMDI0Ljc5NC0uMDM4IDEuMTU4LjEwOC4zNy4xNDguNjg5LjQ4Ny44OC43MTYuMDc1LjA5LjE0MS4xNzUuMTk1LjI0OGguNTgyYTIgMiAwIDAgMSAxLjk5IDIuMTk5bC0uMjcyIDIuNzE1YTMuNSAzLjUgMCAwIDEtLjQ0NCAxLjM4OWwtMS4zOTUgMi40NDFBMS41IDEuNSAwIDAgMSAxMi40MiAxNkg2LjExOGExLjUgMS41IDAgMCAxLTEuMzQyLS44M2wtMS4yMTUtMi40M0wxLjA3IDguNTg5YTEuNTE3IDEuNTE3IDAgMCAxIDIuMzczLTEuODUyTDUgOC4yOTNWMS43NWExLjc1IDEuNzUgMCAwIDEgMy41IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGFuZEluZGV4VGh1bWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi43NSAxYS43NS43NSAwIDAgMSAuNzUuNzVWOGEuNS41IDAgMCAwIDEgMFY1LjQ2N2wuMDg2LS4wMDRjLjMxNy0uMDEyLjYzNy0uMDA4LjgxNi4wMjcuMTM0LjAyNy4yOTQuMDk2LjQ0OC4xODIuMDc3LjA0Mi4xNS4xNDcuMTUuMzE0VjhhLjUuNSAwIDAgMCAxIDBWNi40MzVsLjEwNi0uMDFjLjMxNi0uMDI0LjU4NC0uMDEuNzA4LjA0LjExOC4wNDYuMy4yMDcuNDg2LjQzLjA4MS4wOTYuMTUuMTkuMi4yNTlWOC41YS41LjUgMCAxIDAgMSAwdi0xaC4zNDJhMSAxIDAgMCAxIC45OTUgMS4xbC0uMjcxIDIuNzE1YTIuNSAyLjUgMCAwIDEtLjMxNy45OTFsLTEuMzk1IDIuNDQyYS41LjUgMCAwIDEtLjQzNC4yNTJINi4xMThhLjUuNSAwIDAgMS0uNDQ3LS4yNzZsLTEuMjMyLTIuNDY1LTIuNTEyLTQuMTg1YS41MTcuNTE3IDAgMCAxIC44MDktLjYzMWwyLjQxIDIuNDFBLjUuNSAwIDAgMCA2IDkuNVYxLjc1QS43NS43NSAwIDAgMSA2Ljc1IDF6TTguNSA0LjQ2NlYxLjc1YTEuNzUgMS43NSAwIDEgMC0zLjUgMHY2LjU0M0wzLjQ0MyA2LjczNkExLjUxNyAxLjUxNyAwIDAgMCAxLjA3IDguNTg4bDIuNDkxIDQuMTUzIDEuMjE1IDIuNDNBMS41IDEuNSAwIDAgMCA2LjExOCAxNmg2LjMwMmExLjUgMS41IDAgMCAwIDEuMzAyLS43NTZsMS4zOTUtMi40NDFhMy41IDMuNSAwIDAgMCAuNDQ0LTEuMzg5bC4yNzEtMi43MTVhMiAyIDAgMCAwLTEuOTktMi4xOTloLS41ODFhNS4xMTQgNS4xMTQgMCAwIDAtLjE5NS0uMjQ4Yy0uMTkxLS4yMjktLjUxLS41NjgtLjg4LS43MTYtLjM2NC0uMTQ2LS44NDYtLjEzMi0xLjE1OC0uMTA4bC0uMTMyLjAxMmExLjI2IDEuMjYgMCAwIDAtLjU2LS42NDIgMi42MzIgMi42MzIgMCAwIDAtLjczOC0uMjg4Yy0uMzEtLjA2Mi0uNzM5LS4wNTgtMS4wNS0uMDQ2bC0uMDQ4LjAwMnptMi4wOTQgMi4wMjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGFuZEluZGV4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzUgMWEuNzUuNzUgMCAwIDEgLjc1Ljc1VjhhLjUuNSAwIDAgMCAxIDBWNS40NjdsLjA4Ni0uMDA0Yy4zMTctLjAxMi42MzctLjAwOC44MTYuMDI3LjEzNC4wMjcuMjk0LjA5Ni40NDguMTgyLjA3Ny4wNDIuMTUuMTQ3LjE1LjMxNFY4YS41LjUgMCAxIDAgMSAwVjYuNDM1YTQuOSA0LjkgMCAwIDEgLjEwNi0uMDFjLjMxNi0uMDI0LjU4NC0uMDEuNzA4LjA0LjExOC4wNDYuMy4yMDcuNDg2LjQzLjA4MS4wOTYuMTUuMTkuMi4yNTlWOC41YS41LjUgMCAwIDAgMSAwdi0xaC4zNDJhMSAxIDAgMCAxIC45OTUgMS4xbC0uMjcxIDIuNzE1YTIuNSAyLjUgMCAwIDEtLjMxNy45OTFsLTEuMzk1IDIuNDQyYS41LjUgMCAwIDEtLjQzNC4yNTJINi4wMzVhLjUuNSAwIDAgMS0uNDE2LS4yMjNsLTEuNDMzLTIuMTVhMS41IDEuNSAwIDAgMS0uMjQzLS42NjZsLS4zNDUtMy4xMDVhLjUuNSAwIDAgMSAuMzk5LS41NDZMNSA4LjExVjlhLjUuNSAwIDAgMCAxIDBWMS43NUEuNzUuNzUgMCAwIDEgNi43NSAxek04LjUgNC40NjZWMS43NWExLjc1IDEuNzUgMCAxIDAtMy41IDB2NS4zNGwtMS4yLjI0YTEuNSAxLjUgMCAwIDAtMS4xOTYgMS42MzZsLjM0NSAzLjEwNmEyLjUgMi41IDAgMCAwIC40MDUgMS4xMWwxLjQzMyAyLjE1QTEuNSAxLjUgMCAwIDAgNi4wMzUgMTZoNi4zODVhMS41IDEuNSAwIDAgMCAxLjMwMi0uNzU2bDEuMzk1LTIuNDQxYTMuNSAzLjUgMCAwIDAgLjQ0NC0xLjM4OWwuMjcxLTIuNzE1YTIgMiAwIDAgMC0xLjk5LTIuMTk5aC0uNTgxYTUuMTE0IDUuMTE0IDAgMCAwLS4xOTUtLjI0OGMtLjE5MS0uMjI5LS41MS0uNTY4LS44OC0uNzE2LS4zNjQtLjE0Ni0uODQ2LS4xMzItMS4xNTgtLjEwOGwtLjEzMi4wMTJhMS4yNiAxLjI2IDAgMCAwLS41Ni0uNjQyIDIuNjMyIDIuNjMyIDAgMCAwLS43MzgtLjI4OGMtLjMxLS4wNjItLjczOS0uMDU4LTEuMDUtLjA0NmwtLjA0OC4wMDJ6bTIuMDk0IDIuMDI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hhbmRUaHVtYnNEb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljk1NiAxNC41MzRjLjA2NS45MzYuOTUyIDEuNjU5IDEuOTA4IDEuNDJsLjI2MS0uMDY1YTEuMzc4IDEuMzc4IDAgMCAwIDEuMDEyLS45NjVjLjIyLS44MTYuNTMzLTIuNTEyLjA2Mi00LjUxLjEzNi4wMi4yODUuMDM3LjQ0My4wNTEuNzEzLjA2NSAxLjY2OS4wNzEgMi41MTYtLjIxMS41MTgtLjE3My45OTQtLjY4IDEuMi0xLjI3MmExLjg5NiAxLjg5NiAwIDAgMC0uMjM0LTEuNzM0Yy4wNTgtLjExOC4xMDMtLjI0Mi4xMzgtLjM2Mi4wNzctLjI3LjExMy0uNTY4LjExMy0uODU2IDAtLjI5LS4wMzYtLjU4Ni0uMTEzLS44NTdhMi4wOTQgMi4wOTQgMCAwIDAtLjE2LS40MDNjLjE2OS0uMzg3LjEwNy0uODItLjAwMy0xLjE0OWEzLjE2MiAzLjE2MiAwIDAgMC0uNDg4LS45Yy4wNTQtLjE1My4wNzYtLjMxMy4wNzYtLjQ2NWExLjg2IDEuODYgMCAwIDAtLjI1My0uOTEyQzEzLjEuNzU3IDEyLjQzNy4yOCAxMS41LjI4SDhjLS42MDUgMC0xLjA3LjA4LTEuNDY2LjIxN2E0LjgyMyA0LjgyMyAwIDAgMC0uOTcuNDg1bC0uMDQ4LjAyOWMtLjUwNC4zMDgtLjk5OS42MS0yLjA2OC43MjNDMi42ODIgMS44MTUgMiAyLjQzNCAyIDMuMjc5djRjMCAuODUxLjY4NSAxLjQzMyAxLjM1NyAxLjYxNi44NDkuMjMyIDEuNTc0Ljc4NyAyLjEzMiAxLjQxLjU2LjYyNi45MTQgMS4yOCAxLjAzOSAxLjYzOC4xOTkuNTc1LjM1NiAxLjU0LjQyOCAyLjU5MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIYW5kVGh1bWJzRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ljg2NCAxNS42NzRjLS45NTYuMjQtMS44NDMtLjQ4NC0xLjkwOC0xLjQyLS4wNzItMS4wNS0uMjMtMi4wMTUtLjQyOC0yLjU5LS4xMjUtLjM2LS40NzktMS4wMTItMS4wNC0xLjYzOC0uNTU3LS42MjQtMS4yODItMS4xNzktMi4xMzEtMS40MUMyLjY4NSA4LjQzMiAyIDcuODUgMiA3VjNjMC0uODQ1LjY4Mi0xLjQ2NCAxLjQ0OC0xLjU0NiAxLjA3LS4xMTMgMS41NjQtLjQxNSAyLjA2OC0uNzIzbC4wNDgtLjAyOWMuMjcyLS4xNjYuNTc4LS4zNDkuOTctLjQ4NEM2LjkzMS4wOCA3LjM5NSAwIDggMGgzLjVjLjkzNyAwIDEuNTk5LjQ3OCAxLjkzNCAxLjA2NC4xNjQuMjg3LjI1NC42MDcuMjU0LjkxMyAwIC4xNTItLjAyMy4zMTItLjA3Ny40NjQuMjAxLjI2Mi4zOC41NzcuNDg4LjkuMTEuMzMuMTcyLjc2Mi4wMDQgMS4xNS4wNjkuMTMuMTIuMjY4LjE1OS40MDMuMDc3LjI3LjExMy41NjcuMTEzLjg1NiAwIC4yODktLjAzNi41ODYtLjExMy44NTYtLjAzNS4xMi0uMDguMjQ0LS4xMzguMzYzLjM5NC41NzEuNDE4IDEuMi4yMzQgMS43MzMtLjIwNi41OTItLjY4MiAxLjEtMS4yIDEuMjcyLS44NDcuMjgzLTEuODAzLjI3Ni0yLjUxNi4yMTFhOS44NzcgOS44NzcgMCAwIDEtLjQ0My0uMDUgOS4zNjQgOS4zNjQgMCAwIDEtLjA2MiA0LjUxYy0uMTM4LjUwOC0uNTUuODQ4LTEuMDEyLjk2NGwtLjI2MS4wNjV6TTExLjUgMUg4Yy0uNTEgMC0uODYzLjA2OC0xLjE0LjE2My0uMjgxLjA5Ny0uNTA2LjIyOS0uNzc2LjM5M2wtLjA0LjAyNWMtLjU1NS4zMzgtMS4xOTguNzMtMi40OS44NjgtLjMzMy4wMzUtLjU1NC4yOS0uNTU0LjU1VjdjMCAuMjU1LjIyNi41NDMuNjIuNjUgMS4wOTUuMyAxLjk3Ny45OTcgMi42MTQgMS43MDkuNjM1LjcxIDEuMDY0IDEuNDc1IDEuMjM4IDEuOTc3LjI0My43LjQwNyAxLjc2OC40ODIgMi44NS4wMjUuMzYyLjM2LjU5NS42NjcuNTE4bC4yNjItLjA2NWMuMTYtLjA0LjI1OC0uMTQ0LjI4OC0uMjU1YTguMzQgOC4zNCAwIDAgMC0uMTQ1LTQuNzI2LjUuNSAwIDAgMSAuNTk1LS42NDNoLjAwM2wuMDE0LjAwNC4wNTguMDEzYTguOTEyIDguOTEyIDAgMCAwIDEuMDM2LjE1N2MuNjYzLjA2IDEuNDU3LjA1NCAyLjExLS4xNjMuMTc1LS4wNTkuNDUtLjMwMS41Ny0uNjUxLjEwNy0uMzA4LjA4Ny0uNjctLjI2Ni0xLjAyMUwxMi43OTMgN2wuMzUzLS4zNTRjLjA0My0uMDQyLjEwNS0uMTQuMTU0LS4zMTUuMDQ4LS4xNjcuMDc1LS4zNy4wNzUtLjU4MSAwLS4yMTEtLjAyNy0uNDE0LS4wNzUtLjU4MS0uMDUtLjE3NC0uMTExLS4yNzMtLjE1NC0uMzE1bC0uMzUzLS4zNTQuMzUzLS4zNTRjLjA0Ny0uMDQ3LjEwOS0uMTc2LjAwNS0uNDg4YTIuMjI0IDIuMjI0IDAgMCAwLS41MDUtLjgwNGwtLjM1My0uMzU0LjM1My0uMzU0Yy4wMDYtLjAwNS4wNDEtLjA1LjA0MS0uMTdhLjg2Ni44NjYgMCAwIDAtLjEyMS0uNDE1QzEyLjQgMS4yNzIgMTIuMDYzIDEgMTEuNSAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hhbmRUaHVtYnNVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi45NTYgMS43NDVDNy4wMjEuODEgNy45MDguMDg3IDguODY0LjMyNWwuMjYxLjA2NmMuNDYzLjExNi44NzQuNDU2IDEuMDEyLjk2NS4yMi44MTYuNTMzIDIuNTExLjA2MiA0LjUxYTkuODQgOS44NCAwIDAgMSAuNDQzLS4wNTFjLjcxMy0uMDY1IDEuNjY5LS4wNzIgMi41MTYuMjEuNTE4LjE3My45OTQuNjgxIDEuMiAxLjI3My4xODQuNTMyLjE2IDEuMTYyLS4yMzQgMS43MzMuMDU4LjExOS4xMDMuMjQyLjEzOC4zNjMuMDc3LjI3LjExMy41NjcuMTEzLjg1NiAwIC4yODktLjAzNi41ODYtLjExMy44NTYtLjAzOS4xMzUtLjA5LjI3My0uMTYuNDA0LjE2OS4zODcuMTA3LjgxOS0uMDAzIDEuMTQ4YTMuMTYzIDMuMTYzIDAgMCAxLS40ODguOTAxYy4wNTQuMTUyLjA3Ni4zMTIuMDc2LjQ2NSAwIC4zMDUtLjA4OS42MjUtLjI1My45MTJDMTMuMSAxNS41MjIgMTIuNDM3IDE2IDExLjUgMTZIOGMtLjYwNSAwLTEuMDctLjA4MS0xLjQ2Ni0uMjE4YTQuODIgNC44MiAwIDAgMS0uOTctLjQ4NGwtLjA0OC0uMDNjLS41MDQtLjMwNy0uOTk5LS42MDktMi4wNjgtLjcyMkMyLjY4MiAxNC40NjQgMiAxMy44NDYgMiAxM1Y5YzAtLjg1LjY4NS0xLjQzMiAxLjM1Ny0xLjYxNS44NDktLjIzMiAxLjU3NC0uNzg3IDIuMTMyLTEuNDEuNTYtLjYyNy45MTQtMS4yOCAxLjAzOS0xLjYzOS4xOTktLjU3NS4zNTYtMS41MzkuNDI4LTIuNTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGFuZFRodW1ic1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguODY0LjA0NkM3LjkwOC0uMTkzIDcuMDIuNTMgNi45NTYgMS40NjZjLS4wNzIgMS4wNTEtLjIzIDIuMDE2LS40MjggMi41OS0uMTI1LjM2LS40NzkgMS4wMTMtMS4wNCAxLjYzOS0uNTU3LjYyMy0xLjI4MiAxLjE3OC0yLjEzMSAxLjQxQzIuNjg1IDcuMjg4IDIgNy44NyAyIDguNzJ2NC4wMDFjMCAuODQ1LjY4MiAxLjQ2NCAxLjQ0OCAxLjU0NSAxLjA3LjExNCAxLjU2NC40MTUgMi4wNjguNzIzbC4wNDguMDNjLjI3Mi4xNjUuNTc4LjM0OC45Ny40ODQuMzk3LjEzNi44NjEuMjE3IDEuNDY2LjIxN2gzLjVjLjkzNyAwIDEuNTk5LS40NzcgMS45MzQtMS4wNjRhMS44NiAxLjg2IDAgMCAwIC4yNTQtLjkxMmMwLS4xNTItLjAyMy0uMzEyLS4wNzctLjQ2NC4yMDEtLjI2My4zOC0uNTc4LjQ4OC0uOTAxLjExLS4zMy4xNzItLjc2Mi4wMDQtMS4xNDkuMDY5LS4xMy4xMi0uMjY5LjE1OS0uNDAzLjA3Ny0uMjcuMTEzLS41NjguMTEzLS44NTcgMC0uMjg4LS4wMzYtLjU4NS0uMTEzLS44NTZhMi4xNDQgMi4xNDQgMCAwIDAtLjEzOC0uMzYyIDEuOSAxLjkgMCAwIDAgLjIzNC0xLjczNGMtLjIwNi0uNTkyLS42ODItMS4xLTEuMi0xLjI3Mi0uODQ3LS4yODItMS44MDMtLjI3Ni0yLjUxNi0uMjExYTkuODQgOS44NCAwIDAgMC0uNDQzLjA1IDkuMzY1IDkuMzY1IDAgMCAwLS4wNjItNC41MDlBMS4zOCAxLjM4IDAgMCAwIDkuMTI1LjExMUw4Ljg2NC4wNDZ6TTExLjUgMTQuNzIxSDhjLS41MSAwLS44NjMtLjA2OS0xLjE0LS4xNjQtLjI4MS0uMDk3LS41MDYtLjIyOC0uNzc2LS4zOTNsLS4wNC0uMDI0Yy0uNTU1LS4zMzktMS4xOTgtLjczMS0yLjQ5LS44NjgtLjMzMy0uMDM2LS41NTQtLjI5LS41NTQtLjU1VjguNzJjMC0uMjU0LjIyNi0uNTQzLjYyLS42NSAxLjA5NS0uMyAxLjk3Ny0uOTk2IDIuNjE0LTEuNzA4LjYzNS0uNzEgMS4wNjQtMS40NzUgMS4yMzgtMS45NzguMjQzLS43LjQwNy0xLjc2OC40ODItMi44NS4wMjUtLjM2Mi4zNi0uNTk0LjY2Ny0uNTE4bC4yNjIuMDY2Yy4xNi4wNC4yNTguMTQzLjI4OC4yNTVhOC4zNCA4LjM0IDAgMCAxLS4xNDUgNC43MjUuNS41IDAgMCAwIC41OTUuNjQ0bC4wMDMtLjAwMS4wMTQtLjAwMy4wNTgtLjAxNGE4LjkwOCA4LjkwOCAwIDAgMSAxLjAzNi0uMTU3Yy42NjMtLjA2IDEuNDU3LS4wNTQgMi4xMS4xNjQuMTc1LjA1OC40NS4zLjU3LjY1LjEwNy4zMDguMDg3LjY3LS4yNjYgMS4wMjJsLS4zNTMuMzUzLjM1My4zNTRjLjA0My4wNDMuMTA1LjE0MS4xNTQuMzE1LjA0OC4xNjcuMDc1LjM3LjA3NS41ODEgMCAuMjEyLS4wMjcuNDE0LS4wNzUuNTgyLS4wNS4xNzQtLjExMS4yNzItLjE1NC4zMTVsLS4zNTMuMzUzLjM1My4zNTRjLjA0Ny4wNDcuMTA5LjE3Ny4wMDUuNDg4YTIuMjI0IDIuMjI0IDAgMCAxLS41MDUuODA1bC0uMzUzLjM1My4zNTMuMzU0Yy4wMDYuMDA1LjA0MS4wNS4wNDEuMTdhLjg2Ni44NjYgMCAwIDEtLjEyMS40MTZjLS4xNjUuMjg4LS41MDMuNTYtMS4wNjYuNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGFuZGJhZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIgMiAwIDAgMC0yIDJ2Mkg1VjNhMyAzIDAgMSAxIDYgMHYyaC0xVjNhMiAyIDAgMCAwLTItMnpNNSA1SDMuMzZhMS41IDEuNSAwIDAgMC0xLjQ4MyAxLjI3N0wuODUgMTMuMTNBMi41IDIuNSAwIDAgMCAzLjMyMiAxNmg5LjM1NWEyLjUgMi41IDAgMCAwIDIuNDczLTIuODdsLTEuMDI4LTYuODUzQTEuNSAxLjUgMCAwIDAgMTIuNjQgNUgxMXYxLjVhLjUuNSAwIDAgMS0xIDBWNUg2djEuNWEuNS41IDAgMCAxLTEgMFY1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hhbmRiYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIgMiAwIDAgMSAyIDJ2Mkg2VjNhMiAyIDAgMCAxIDItMnptMyA0VjNhMyAzIDAgMSAwLTYgMHYySDMuMzZhMS41IDEuNSAwIDAgMC0xLjQ4MyAxLjI3N0wuODUgMTMuMTNBMi41IDIuNSAwIDAgMCAzLjMyMiAxNmg5LjM1NWEyLjUgMi41IDAgMCAwIDIuNDczLTIuODdsLTEuMDI4LTYuODUzQTEuNSAxLjUgMCAwIDAgMTIuNjQgNUgxMXptLTEgMXYxLjVhLjUuNSAwIDAgMCAxIDBWNmgxLjYzOWEuNS41IDAgMCAxIC40OTQuNDI2bDEuMDI4IDYuODUxQTEuNSAxLjUgMCAwIDEgMTIuNjc4IDE1SDMuMzIyYTEuNSAxLjUgMCAwIDEtMS40ODMtMS43MjNsMS4wMjgtNi44NTFBLjUuNSAwIDAgMSAzLjM2IDZINXYxLjVhLjUuNSAwIDEgMCAxIDBWNmg0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4zOSAxMi42NDhhMS4zMiAxLjMyIDAgMCAwLS4wMTUuMThjMCAuMzA1LjIxLjUwOC41LjUwOC4yNjYgMCAuNDkyLS4xNzIuNTU1LS40NzdsLjU1NC0yLjcwM2gxLjIwNGMuNDIxIDAgLjYxNy0uMjM0LjYxNy0uNTQ3IDAtLjMxMi0uMTg4LS41My0uNjE3LS41M2gtLjk4NWwuNTE2LTIuNTI0aDEuMjY1Yy40MyAwIC42MTgtLjIyNy42MTgtLjU0NyAwLS4zMTMtLjE4OC0uNTI0LS42MTgtLjUyNGgtMS4wNDZsLjQ3Ni0yLjMwNGExLjA2IDEuMDYgMCAwIDAgLjAxNi0uMTY0LjUxLjUxIDAgMCAwLS41MTYtLjUxNi41NC41NCAwIDAgMC0uNTM5LjQzbC0uNTIzIDIuNTU0SDcuNjE3bC40NzctMi4zMDRjLjAwOC0uMDQuMDE1LS4xMTguMDE1LS4xNjRhLjUxMi41MTIgMCAwIDAtLjUyMy0uNTE2LjUzOS41MzkgMCAwIDAtLjUzMS40M0w2LjUzIDUuNDg0SDUuNDE0Yy0uNDMgMC0uNjE3LjIyLS42MTcuNTMyIDAgLjMxMi4xODcuNTM5LjYxNy41MzloLjkwNmwtLjUxNSAyLjUyM0g0LjYwOWMtLjQyMSAwLS42MDkuMjE5LS42MDkuNTMxIDAgLjMxMy4xODguNTQ3LjYxLjU0N2guOTc2bC0uNTE2IDIuNDkyYy0uMDA4LjA0LS4wMTUuMTI1LS4wMTUuMTggMCAuMzA1LjIxLjUwOC41LjUwOC4yNjUgMCAuNDkyLS4xNzIuNTU0LS40NzdsLjU1NS0yLjcwM2gyLjI0MmwtLjUxNSAyLjQ5MnptLTEtNi4xMDloMi4yNjZsLS41MTUgMi41NjNINi44NTlsLjUzMi0yLjU2M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZGRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ2LTF6bTIuNSAxYS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxem0yIDBhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6TS45MSA3LjIwNEEyLjk5MyAyLjk5MyAwIDAgMSAyIDdoMTJjLjM4NCAwIC43NTIuMDcyIDEuMDkuMjA0bC0xLjg2Ny0zLjQyMkExLjUgMS41IDAgMCAwIDExLjkwNiAzSDQuMDk0YTEuNSAxLjUgMCAwIDAtMS4zMTcuNzgyTC45MSA3LjIwNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZGROZXR3b3JrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAwLTIgMnYxYTIgMiAwIDAgMCAyIDJoNS41djNBMS41IDEuNSAwIDAgMCA2IDExLjVILjVhLjUuNSAwIDAgMCAwIDFINkExLjUgMS41IDAgMCAwIDcuNSAxNGgxYTEuNSAxLjUgMCAwIDAgMS41LTEuNWg1LjVhLjUuNSAwIDAgMCAwLTFIMTBBMS41IDEuNSAwIDAgMCA4LjUgMTBWN0gxNGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem0uNSAzYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0yIDBhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGRkTmV0d29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgNWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMXpNMyA0LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTIgMiAwIDAgMS0yIDJIOC41djNhMS41IDEuNSAwIDAgMSAxLjUgMS41aDUuNWEuNS41IDAgMCAxIDAgMUgxMEExLjUgMS41IDAgMCAxIDguNSAxNGgtMUExLjUgMS41IDAgMCAxIDYgMTIuNUguNWEuNS41IDAgMCAxIDAtMUg2QTEuNSAxLjUgMCAwIDEgNy41IDEwVjdIMmEyIDIgMCAwIDEtMi0yVjR6bTEgMHYxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxem02IDcuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMWEuNS41IDAgMCAwLS41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGRkUmFja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDF2MkgyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMmgtMVY3aDFhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptLjUgM2EuNS41IDAgMSAxIDAtMSAuNS41IDAgMCAxIDAgMXptMiAwYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0tMiA3YS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0yIDBhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6TTEyIDd2Mkg0VjdoOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZGRSYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSA1YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxek0zIDQuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMHptMiA3YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem0tMi41LjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDF2MkgyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMmgtMVY3aDFhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIMnptMTMgMnYxYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxem0wIDd2MWExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF6bS0zLTR2Mkg0VjdoOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZGRTdGFja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA5YTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMiAyIDAgMCAwLTItMkgyem0uNSAzYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0yIDBhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6TTIgMmEyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkgyem0uNSAzYS41LjUgMCAxIDEgMC0xIC41LjUgMCAwIDEgMCAxem0yIDBhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGRkU3RhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMSAxLTFoMTJ6TTIgOWEyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0xYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDExLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6bS0yIDBhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6TTE0IDNhMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMnpNMiAyYTIgMiAwIDAgMC0yIDJ2MWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6bS0yIDBhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAxMWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMXpNMyAxMC41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDExYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjkuNTFjMC0uNDE4LjEwNS0uODMuMzA1LTEuMTk3bDIuNDcyLTQuNTMxQTEuNSAxLjUgMCAwIDEgNC4wOTQgM2g3LjgxMmExLjUgMS41IDAgMCAxIDEuMzE3Ljc4MmwyLjQ3MiA0LjUzYy4yLjM2OC4zMDUuNzguMzA1IDEuMTk4VjExek0zLjY1NSA0LjI2IDEuNTkyIDguMDQzQzEuNzI0IDguMDE0IDEuODYgOCAyIDhoMTJjLjE0IDAgLjI3Ni4wMTQuNDA4LjA0MkwxMi4zNDUgNC4yNmEuNS41IDAgMCAwLS40MzktLjI2SDQuMDk0YS41LjUgMCAwIDAtLjQ0LjI2ek0xIDEwdjFhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hlYWRwaG9uZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAzYTUgNSAwIDAgMC01IDV2MWgxYTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAwIDEtMSAxSDNhMSAxIDAgMCAxLTEtMVY4YTYgNiAwIDEgMSAxMiAwdjVhMSAxIDAgMCAxLTEgMWgtMWExIDEgMCAwIDEtMS0xdi0zYTEgMSAwIDAgMSAxLTFoMVY4YTUgNSAwIDAgMC01LTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGVhZHNldFZyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMS4yNDhjMS44NTcgMCAzLjUyNi42NDEgNC42NSAxLjc5NGE0Ljk3OCA0Ljk3OCAwIDAgMSAyLjUxOCAxLjA5QzEzLjkwNyAxLjQ4MiAxMS4yOTUgMCA4IDAgNC43NSAwIDIuMTIgMS40OC44NDQgNC4xMjJhNC45NzkgNC45NzkgMCAwIDEgMi4yODktMS4wNDdDNC4yMzYgMS44NzIgNS45NzQgMS4yNDggOCAxLjI0OHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMmEzLjk4OCAzLjk4OCAwIDAgMS0yLjc4Ni0xLjEzbC0uMDAyLS4wMDJhMS42MTIgMS42MTIgMCAwIDAtLjI3Ni0uMTY3QTIuMTY0IDIuMTY0IDAgMCAwIDggMTAuNWMtLjQxNCAwLS43MjkuMTAzLS45MzUuMjAxYTEuNjEyIDEuNjEyIDAgMCAwLS4yNzcuMTY3bC0uMDAyLjAwMkE0IDQgMCAxIDEgNCA0aDhhNCA0IDAgMCAxIDAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZWFkc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMWE1IDUgMCAwIDAtNSA1djFoMWExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWNmE2IDYgMCAxIDEgMTIgMHY2YTIuNSAyLjUgMCAwIDEtMi41IDIuNUg5LjM2NmExIDEgMCAwIDEtLjg2Ni41aC0xYTEgMSAwIDEgMSAwLTJoMWExIDEgMCAwIDEgLjg2Ni41SDExLjVBMS41IDEuNSAwIDAgMCAxMyAxMmgtMWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMWgxVjZhNSA1IDAgMCAwLTUtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZWFydEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMS4zMTRDMTIuNDM4LTMuMjQ4IDIzLjUzNCA0LjczNSA4IDE1LTcuNTM0IDQuNzM2IDMuNTYyLTMuMjQ4IDggMS4zMTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGVhcnRIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMi43NDh2MTEuMDQ3YzMuNDUyLTIuMzY4IDUuMzY1LTQuNTQyIDYuMjg2LTYuMzU3Ljk1NS0xLjg4Ni44MzgtMy4zNjIuMzE0LTQuMzg1QzEzLjQ4Ni44NzggMTAuNC4yOCA4LjcxNyAyLjAxTDggMi43NDh6TTggMTVDLTcuMzMzIDQuODY4IDMuMjc5LTMuMDQgNy44MjQgMS4xNDNjLjA2LjA1NS4xMTkuMTEyLjE3Ni4xNzFhMy4xMiAzLjEyIDAgMCAxIC4xNzYtLjE3QzEyLjcyLTMuMDQyIDIzLjMzMyA0Ljg2NyA4IDE1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggMi43NDgtLjcxNy0uNzM3QzUuNi4yODEgMi41MTQuODc4IDEuNCAzLjA1M2MtLjUyMyAxLjAyMy0uNjQxIDIuNS4zMTQgNC4zODUuOTIgMS44MTUgMi44MzQgMy45ODkgNi4yODYgNi4zNTcgMy40NTItMi4zNjggNS4zNjUtNC41NDIgNi4yODYtNi4zNTcuOTU1LTEuODg2LjgzOC0zLjM2Mi4zMTQtNC4zODVDMTMuNDg2Ljg3OCAxMC40LjI4IDguNzE3IDIuMDFMOCAyLjc0OHpNOCAxNUMtNy4zMzMgNC44NjggMy4yNzktMy4wNCA3LjgyNCAxLjE0M2MuMDYuMDU1LjExOS4xMTIuMTc2LjE3MWEzLjEyIDMuMTIgMCAwIDEgLjE3Ni0uMTdDMTIuNzItMy4wNDIgMjMuMzMzIDQuODY3IDggMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGVwdGFnb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03Ljc3OS4wNTJhLjUuNSAwIDAgMSAuNDQyIDBsNi4wMTUgMi45N2EuNS41IDAgMCAxIC4yNjcuMzRsMS40ODUgNi42NzZhLjUuNSAwIDAgMS0uMDkzLjQxNWwtNC4xNjIgNS4zNTRhLjUuNSAwIDAgMS0uMzk1LjE5M0g0LjY2MmEuNS41IDAgMCAxLS4zOTUtLjE5M0wuMTA1IDEwLjQ1M2EuNS41IDAgMCAxLS4wOTMtLjQxNWwxLjQ4NS02LjY3NmEuNS41IDAgMCAxIC4yNjctLjM0TDcuNzc5LjA1M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZXB0YWdvbkhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43NzkuMDUyYS41LjUgMCAwIDEgLjQ0MiAwbDYuMDE1IDIuOTdhLjUuNSAwIDAgMSAuMjY3LjM0bDEuNDg1IDYuNjc2YS41LjUgMCAwIDEtLjA5My40MTVsLTQuMTYyIDUuMzU0YS41LjUgMCAwIDEtLjM5NS4xOTNINC42NjJhLjUuNSAwIDAgMS0uMzk1LS4xOTNMLjEwNSAxMC40NTNhLjUuNSAwIDAgMS0uMDkzLS40MTVsMS40ODUtNi42NzZhLjUuNSAwIDAgMSAuMjY3LS4zNEw3Ljc3OS4wNTN6TTggMTVoMy4wOTNsMy44NjgtNC45NzUtMS4zODMtNi4yMTJMOCAxLjA1OFYxNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZXB0YWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc3OS4wNTJhLjUuNSAwIDAgMSAuNDQyIDBsNi4wMTUgMi45N2EuNS41IDAgMCAxIC4yNjcuMzRsMS40ODUgNi42NzZhLjUuNSAwIDAgMS0uMDkzLjQxNWwtNC4xNjIgNS4zNTRhLjUuNSAwIDAgMS0uMzk1LjE5M0g0LjY2MmEuNS41IDAgMCAxLS4zOTUtLjE5M0wuMTA1IDEwLjQ1M2EuNS41IDAgMCAxLS4wOTMtLjQxNWwxLjQ4NS02LjY3NmEuNS41IDAgMCAxIC4yNjctLjM0TDcuNzc5LjA1M3pNMi40MjIgMy44MTNsLTEuMzgzIDYuMjEyTDQuOTA3IDE1aDYuMTg2bDMuODY4LTQuOTc1LTEuMzgzLTYuMjEyTDggMS4wNTggMi40MjIgMy44MTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSGV4YWdvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTguNS4xMzRhMSAxIDAgMCAwLTEgMGwtNiAzLjU3N2ExIDEgMCAwIDAtLjUuODY2djYuODQ2YTEgMSAwIDAgMCAuNS44NjZsNiAzLjU3N2ExIDEgMCAwIDAgMSAwbDYtMy41NzdhMSAxIDAgMCAwIC41LS44NjZWNC41NzdhMSAxIDAgMCAwLS41LS44NjZMOC41LjEzNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIZXhhZ29uSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA0LjU3N3Y2Ljg0Nkw4IDE1VjFsNiAzLjU3N3pNOC41LjEzNGExIDEgMCAwIDAtMSAwbC02IDMuNTc3YTEgMSAwIDAgMC0uNS44NjZ2Ni44NDZhMSAxIDAgMCAwIC41Ljg2Nmw2IDMuNTc3YTEgMSAwIDAgMCAxIDBsNi0zLjU3N2ExIDEgMCAwIDAgLjUtLjg2NlY0LjU3N2ExIDEgMCAwIDAtLjUtLjg2Nkw4LjUuMTM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hleGFnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNC41Nzd2Ni44NDZMOCAxNWwtNi0zLjU3N1Y0LjU3N0w4IDFsNiAzLjU3N3pNOC41LjEzNGExIDEgMCAwIDAtMSAwbC02IDMuNTc3YTEgMSAwIDAgMC0uNS44NjZ2Ni44NDZhMSAxIDAgMCAwIC41Ljg2Nmw2IDMuNTc3YTEgMSAwIDAgMCAxIDBsNi0zLjU3N2ExIDEgMCAwIDAgLjUtLjg2NlY0LjU3N2ExIDEgMCAwIDAtLjUtLjg2Nkw4LjUuMTM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0hvdXJnbGFzc0JvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEuNWEuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xdjFhNC41IDQuNSAwIDAgMS0yLjU1NyA0LjA2Yy0uMjkuMTM5LS40NDMuMzc3LS40NDMuNTl2LjdjMCAuMjEzLjE1NC40NTEuNDQzLjU5QTQuNSA0LjUgMCAwIDEgMTIuNSAxM3YxaDFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAxIDEgMC0xaDF2LTFhNC41IDQuNSAwIDAgMSAyLjU1Ny00LjA2Yy4yOS0uMTM5LjQ0My0uMzc3LjQ0My0uNTl2LS43YzAtLjIxMy0uMTU0LS40NTEtLjQ0My0uNTlBNC41IDQuNSAwIDAgMSAzLjUgM1YyaC0xYS41LjUgMCAwIDEtLjUtLjV6bTIuNS41djFhMy41IDMuNSAwIDAgMCAxLjk4OSAzLjE1OGMuNTMzLjI1NiAxLjAxMS43OTEgMS4wMTEgMS40OTF2LjcwMnMuMTguMTQ5LjUuMTQ5LjUtLjE1LjUtLjE1di0uN2MwLS43MDEuNDc4LTEuMjM2IDEuMDExLTEuNDkyQTMuNSAzLjUgMCAwIDAgMTEuNSAzVjJoLTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSG91cmdsYXNzU3BsaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDE1YS41LjUgMCAxIDEgMC0xaDF2LTFhNC41IDQuNSAwIDAgMSAyLjU1Ny00LjA2Yy4yOS0uMTM5LjQ0My0uMzc3LjQ0My0uNTl2LS43YzAtLjIxMy0uMTU0LS40NTEtLjQ0My0uNTlBNC41IDQuNSAwIDAgMSAzLjUgM1YyaC0xYS41LjUgMCAwIDEgMC0xaDExYS41LjUgMCAwIDEgMCAxaC0xdjFhNC41IDQuNSAwIDAgMS0yLjU1NyA0LjA2Yy0uMjkuMTM5LS40NDMuMzc3LS40NDMuNTl2LjdjMCAuMjEzLjE1NC40NTEuNDQzLjU5QTQuNSA0LjUgMCAwIDEgMTIuNSAxM3YxaDFhLjUuNSAwIDAgMSAwIDFoLTExem0yLTEzdjFjMCAuNTM3LjEyIDEuMDQ1LjMzNyAxLjVoNi4zMjZjLjIxNi0uNDU1LjMzNy0uOTYzLjMzNy0xLjVWMmgtN3ptMyA2LjM1YzAgLjcwMS0uNDc4IDEuMjM2LTEuMDExIDEuNDkyQTMuNSAzLjUgMCAwIDAgNC41IDEzcy44NjYtMS4yOTkgMy0xLjQ4VjguMzV6bTEgMHYzLjE3YzIuMTM0LjE4MSAzIDEuNDggMyAxLjQ4YTMuNSAzLjUgMCAwIDAtMS45ODktMy4xNThDOC45NzggOS41ODYgOC41IDkuMDUyIDguNSA4LjM1MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIb3VyZ2xhc3NUb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNC41YS41LjUgMCAwIDAgLjUuNWgxMWEuNS41IDAgMSAwIDAtMWgtMXYtMWE0LjUgNC41IDAgMCAwLTIuNTU3LTQuMDZjLS4yOS0uMTM5LS40NDMtLjM3Ny0uNDQzLS41OXYtLjdjMC0uMjEzLjE1NC0uNDUxLjQ0My0uNTlBNC41IDQuNSAwIDAgMCAxMi41IDNWMmgxYS41LjUgMCAwIDAgMC0xaC0xMWEuNS41IDAgMCAwIDAgMWgxdjFhNC41IDQuNSAwIDAgMCAyLjU1NyA0LjA2Yy4yOS4xMzkuNDQzLjM3Ny40NDMuNTl2LjdjMCAuMjEzLS4xNTQuNDUxLS40NDMuNTlBNC41IDQuNSAwIDAgMCAzLjUgMTN2MWgtMWEuNS41IDAgMCAwLS41LjV6bTIuNS0uNXYtMWEzLjUgMy41IDAgMCAxIDEuOTg5LTMuMTU4Yy41MzMtLjI1NiAxLjAxMS0uNzkgMS4wMTEtMS40OTF2LS43MDJzLjE4LjEwMS41LjEwMS41LS4xLjUtLjF2LjdjMCAuNzAxLjQ3OCAxLjIzNiAxLjAxMSAxLjQ5MkEzLjUgMy41IDAgMCAxIDExLjUgMTN2MWgtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIb3VyZ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxLjVhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMXYxYTQuNSA0LjUgMCAwIDEtMi41NTcgNC4wNmMtLjI5LjEzOS0uNDQzLjM3Ny0uNDQzLjU5di43YzAgLjIxMy4xNTQuNDUxLjQ0My41OUE0LjUgNC41IDAgMCAxIDEyLjUgMTN2MWgxYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMSAxIDAtMWgxdi0xYTQuNSA0LjUgMCAwIDEgMi41NTctNC4wNmMuMjktLjEzOS40NDMtLjM3Ny40NDMtLjU5di0uN2MwLS4yMTMtLjE1NC0uNDUxLS40NDMtLjU5QTQuNSA0LjUgMCAwIDEgMy41IDNWMmgtMWEuNS41IDAgMCAxLS41LS41em0yLjUuNXYxYTMuNSAzLjUgMCAwIDAgMS45ODkgMy4xNThjLjUzMy4yNTYgMS4wMTEuNzkxIDEuMDExIDEuNDkxdi43MDJjMCAuNy0uNDc4IDEuMjM1LTEuMDExIDEuNDkxQTMuNSAzLjUgMCAwIDAgNC41IDEzdjFoN3YtMWEzLjUgMy41IDAgMCAwLTEuOTg5LTMuMTU4QzguOTc4IDkuNTg2IDguNSA5LjA1MiA4LjUgOC4zNTF2LS43MDJjMC0uNy40NzgtMS4yMzUgMS4wMTEtMS40OTFBMy41IDMuNSAwIDAgMCAxMS41IDNWMmgtN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIb3VzZURvb3JGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxNC41di0zLjUwNWMwLS4yNDUuMjUtLjQ5NS41LS40OTVoMmMuMjUgMCAuNS4yNS41LjV2My41YS41LjUgMCAwIDAgLjUuNWg0YS41LjUgMCAwIDAgLjUtLjV2LTdhLjUuNSAwIDAgMC0uMTQ2LS4zNTRMMTMgNS43OTNWMi41YS41LjUgMCAwIDAtLjUtLjVoLTFhLjUuNSAwIDAgMC0uNS41djEuMjkzTDguMzU0IDEuMTQ2YS41LjUgMCAwIDAtLjcwOCAwbC02IDZBLjUuNSAwIDAgMCAxLjUgNy41djdhLjUuNSAwIDAgMCAuNS41aDRhLjUuNSAwIDAgMCAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIb3VzZURvb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4zNTQgMS4xNDZhLjUuNSAwIDAgMC0uNzA4IDBsLTYgNkEuNS41IDAgMCAwIDEuNSA3LjV2N2EuNS41IDAgMCAwIC41LjVoNC41YS41LjUgMCAwIDAgLjUtLjV2LTRoMnY0YS41LjUgMCAwIDAgLjUuNUgxNGEuNS41IDAgMCAwIC41LS41di03YS41LjUgMCAwIDAtLjE0Ni0uMzU0TDEzIDUuNzkzVjIuNWEuNS41IDAgMCAwLS41LS41aC0xYS41LjUgMCAwIDAtLjUuNXYxLjI5M0w4LjM1NCAxLjE0NnpNMi41IDE0VjcuNzA3bDUuNS01LjUgNS41IDUuNVYxNEgxMHYtNGEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNXY0SDIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNIb3VzZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwibTggMy4yOTMgNiA2VjEzLjVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC05QTEuNSAxLjUgMCAwIDEgMiAxMy41VjkuMjkzbDYtNnptNS0uNzkzVjZsLTItMlYyLjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy4yOTMgMS41YTEgMSAwIDAgMSAxLjQxNCAwbDYuNjQ3IDYuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCAyLjIwNyAxLjM1NCA4Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOEw3LjI5MyAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMTMuNVY3aDF2Ni41YS41LjUgMCAwIDAgLjUuNWg5YS41LjUgMCAwIDAgLjUtLjVWN2gxdjYuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSAyIDEzLjV6bTExLTExVjZsLTItMlYyLjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy4yOTMgMS41YTEgMSAwIDAgMSAxLjQxNCAwbDYuNjQ3IDYuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCAyLjIwNyAxLjM1NCA4Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOEw3LjI5MyAxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSHIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM0g0YTEgMSAwIDAgMC0xIDF2Mi41SDJWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYyLjVoLTFWNGExIDEgMCAwIDAtMS0xek0yIDkuNWgxVjEyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjkuNWgxVjEyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkuNXptLTEuNS0yYS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xSC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0h1cnJpY2FuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljk5OSAyLjZBNS41IDUuNSAwIDAgMSAxNSA3LjVhLjUuNSAwIDAgMCAxIDAgNi41IDYuNSAwIDEgMC0xMyAwIDUgNSAwIDAgMCA2LjAwMSA0LjlBNS41IDUuNSAwIDAgMSAxIDcuNWEuNS41IDAgMCAwLTEgMCA2LjUgNi41IDAgMSAwIDEzIDAgNSA1IDAgMCAwLTYuMDAxLTQuOXpNMTAgNy41YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNJbWFnZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIuNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMHptNC4yMjUgNC4wNTNhLjUuNSAwIDAgMC0uNTc3LjA5M2wtMy43MSA0LjcxLTIuNjYtMi43NzJhLjUuNSAwIDAgMC0uNjMuMDYyTC4wMDIgMTN2MmExIDEgMCAwIDAgMSAxaDE0YTEgMSAwIDAgMCAxLTF2LTQuNWwtNC43NzctMy45NDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSW1hZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4wMDIgM2EyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMTJhMiAyIDAgMCAxLTItMlYzem0xIDl2MWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWOS41bC0zLjc3Ny0xLjk0N2EuNS41IDAgMCAwLS41NzcuMDkzbC0zLjcxIDMuNzEtMi42Ni0xLjc3MmEuNS41IDAgMCAwLS42My4wNjJMMS4wMDIgMTJ6bTUtNi41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMDAyIDUuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjAwMiAxYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMmgtMTJ6bTEyIDFhMSAxIDAgMCAxIDEgMXY2LjVsLTMuNzc3LTEuOTQ3YS41LjUgMCAwIDAtLjU3Ny4wOTNsLTMuNzEgMy43MS0yLjY2LTEuNzcyYS41LjUgMCAwIDAtLjYzLjA2MkwxLjAwMiAxMlYzYTEgMSAwIDAgMSAxLTFoMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTAyIDlhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMDAyIDEzYTIgMiAwIDAgMS0yIDJoLTEwYTIgMiAwIDAgMS0yLTJWNUEyIDIgMCAwIDEgMiAzYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0xLjk5OCAyek0xNCAySDRhMSAxIDAgMCAwLTEgMWg5LjAwMmEyIDIgMCAwIDEgMiAydjdBMSAxIDAgMCAwIDE1IDExVjNhMSAxIDAgMCAwLTEtMXpNMi4wMDIgNGExIDEgMCAwIDAtMSAxdjhsMi42NDYtMi4zNTRhLjUuNSAwIDAgMSAuNjMtLjA2MmwyLjY2IDEuNzczIDMuNzEtMy43MWEuNS41IDAgMCAxIC41NzctLjA5NGwxLjc3NyAxLjk0N1Y1YTEgMSAwIDAgMC0xLTFoLTEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luYm94RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljk4IDRhLjUuNSAwIDAgMC0uMzkuMTg4TDEuNTQgOEg2YS41LjUgMCAwIDEgLjUuNSAxLjUgMS41IDAgMSAwIDMgMEEuNS41IDAgMCAxIDEwIDhoNC40NmwtMy4wNS0zLjgxMkEuNS41IDAgMCAwIDExLjAyIDRINC45OHptLTEuMTctLjQzN0ExLjUgMS41IDAgMCAxIDQuOTggM2g2LjA0YTEuNSAxLjUgMCAwIDEgMS4xNy41NjNsMy43IDQuNjI1YS41LjUgMCAwIDEgLjEwNi4zNzRsLS4zOSAzLjEyNEExLjUgMS41IDAgMCAxIDE0LjExNyAxM0gxLjg4M2ExLjUgMS41IDAgMCAxLTEuNDg5LTEuMzE0bC0uMzktMy4xMjRhLjUuNSAwIDAgMSAuMTA2LS4zNzRsMy43LTQuNjI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuOTggNGEuNS41IDAgMCAwLS4zOS4xODhMMS41NCA4SDZhLjUuNSAwIDAgMSAuNS41IDEuNSAxLjUgMCAxIDAgMyAwQS41LjUgMCAwIDEgMTAgOGg0LjQ2bC0zLjA1LTMuODEyQS41LjUgMCAwIDAgMTEuMDIgNEg0Ljk4em05Ljk1NCA1SDEwLjQ1YTIuNSAyLjUgMCAwIDEtNC45IDBIMS4wNjZsLjMyIDIuNTYyYS41LjUgMCAwIDAgLjQ5Ny40MzhoMTIuMjM0YS41LjUgMCAwIDAgLjQ5Ni0uNDM4TDE0LjkzMyA5ek0zLjgwOSAzLjU2M0ExLjUgMS41IDAgMCAxIDQuOTgxIDNoNi4wMzhhMS41IDEuNSAwIDAgMSAxLjE3Mi41NjNsMy43IDQuNjI1YS41LjUgMCAwIDEgLjEwNS4zNzRsLS4zOSAzLjEyNEExLjUgMS41IDAgMCAxIDE0LjExNyAxM0gxLjg4M2ExLjUgMS41IDAgMCAxLTEuNDg5LTEuMzE0bC0uMzktMy4xMjRhLjUuNSAwIDAgMSAuMTA2LS4zNzRsMy43LTQuNjI1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luYm94ZXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuOTggMWEuNS41IDAgMCAwLS4zOS4xODhMMS41NCA1SDZhLjUuNSAwIDAgMSAuNS41IDEuNSAxLjUgMCAwIDAgMyAwQS41LjUgMCAwIDEgMTAgNWg0LjQ2bC0zLjA1LTMuODEyQS41LjUgMCAwIDAgMTEuMDIgMUg0Ljk4ek0zLjgxLjU2M0ExLjUgMS41IDAgMCAxIDQuOTggMGg2LjA0YTEuNSAxLjUgMCAwIDEgMS4xNy41NjNsMy43IDQuNjI1YS41LjUgMCAwIDEgLjEwNi4zNzRsLS4zOSAzLjEyNEExLjUgMS41IDAgMCAxIDE0LjExNyAxMEgxLjg4M0ExLjUgMS41IDAgMCAxIC4zOTQgOC42ODZsLS4zOS0zLjEyNGEuNS41IDAgMCAxIC4xMDYtLjM3NEwzLjgxLjU2M3pNLjEyNSAxMS4xN0EuNS41IDAgMCAxIC41IDExSDZhLjUuNSAwIDAgMSAuNS41IDEuNSAxLjUgMCAwIDAgMyAwIC41LjUgMCAwIDEgLjUtLjVoNS41YS41LjUgMCAwIDEgLjQ5Ni41NjJsLS4zOSAzLjEyNEExLjUgMS41IDAgMCAxIDE0LjExNyAxNkgxLjg4M2ExLjUgMS41IDAgMCAxLTEuNDg5LTEuMzE0bC0uMzktMy4xMjRhLjUuNSAwIDAgMSAuMTIxLS4zOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSW5ib3hlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljk4IDFhLjUuNSAwIDAgMC0uMzkuMTg4TDEuNTQgNUg2YS41LjUgMCAwIDEgLjUuNSAxLjUgMS41IDAgMCAwIDMgMEEuNS41IDAgMCAxIDEwIDVoNC40NmwtMy4wNS0zLjgxMkEuNS41IDAgMCAwIDExLjAyIDFINC45OHptOS45NTQgNUgxMC40NWEyLjUgMi41IDAgMCAxLTQuOSAwSDEuMDY2bC4zMiAyLjU2MkEuNS41IDAgMCAwIDEuODg0IDloMTIuMjM0YS41LjUgMCAwIDAgLjQ5Ni0uNDM4TDE0LjkzMyA2ek0zLjgwOS41NjNBMS41IDEuNSAwIDAgMSA0Ljk4MSAwaDYuMDM4YTEuNSAxLjUgMCAwIDEgMS4xNzIuNTYzbDMuNyA0LjYyNWEuNS41IDAgMCAxIC4xMDUuMzc0bC0uMzkgMy4xMjRBMS41IDEuNSAwIDAgMSAxNC4xMTcgMTBIMS44ODNBMS41IDEuNSAwIDAgMSAuMzk0IDguNjg2bC0uMzktMy4xMjRhLjUuNSAwIDAgMSAuMTA2LS4zNzRMMy44MS41NjN6TS4xMjUgMTEuMTdBLjUuNSAwIDAgMSAuNSAxMUg2YS41LjUgMCAwIDEgLjUuNSAxLjUgMS41IDAgMCAwIDMgMCAuNS41IDAgMCAxIC41LS41aDUuNWEuNS41IDAgMCAxIC40OTYuNTYybC0uMzkgMy4xMjRBMS41IDEuNSAwIDAgMSAxNC4xMTcgMTZIMS44ODNhMS41IDEuNSAwIDAgMS0xLjQ4OS0xLjMxNGwtLjM5LTMuMTI0YS41LjUgMCAwIDEgLjEyMS0uMzkzem0uOTQxLjgzLjMyIDIuNTYyYS41LjUgMCAwIDAgLjQ5Ny40MzhoMTIuMjM0YS41LjUgMCAwIDAgLjQ5Ni0uNDM4bC4zMi0yLjU2MkgxMC40NWEyLjUgMi41IDAgMCAxLTQuOSAwSDEuMDY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luZm9DaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnptLjkzLTkuNDEyLTEgNC43MDVjLS4wNy4zNC4wMjkuNTMzLjMwNC41MzMuMTk0IDAgLjQ4Ny0uMDcuNjg2LS4yNDZsLS4wODguNDE2Yy0uMjg3LjM0Ni0uOTIuNTk4LTEuNDY1LjU5OC0uNzAzIDAtMS4wMDItLjQyMi0uODA4LTEuMzE5bC43MzgtMy40NjhjLjA2NC0uMjkzLjAwNi0uMzk5LS4yODctLjQ3bC0uNDUxLS4wODEuMDgyLS4zODEgMi4yOS0uMjg3ek04IDUuNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSW5mb0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguOTMgNi41ODgtMi4yOS4yODctLjA4Mi4zOC40NS4wODNjLjI5NC4wNy4zNTIuMTc2LjI4OC40NjlsLS43MzggMy40NjhjLS4xOTQuODk3LjEwNSAxLjMxOS44MDggMS4zMTkuNTQ1IDAgMS4xNzgtLjI1MiAxLjQ2NS0uNTk4bC4wODgtLjQxNmMtLjIuMTc2LS40OTIuMjQ2LS42ODYuMjQ2LS4yNzUgMC0uMzc1LS4xOTMtLjMwNC0uNTMzTDguOTMgNi41ODh6TTkgNC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNJbmZvTGcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuMjc3IDUuNDMzLTQuMDMxLjUwNS0uMTQ1LjY3Ljc5NC4xNDVjLjUxNi4xMjMuNjE5LjMwOS41MDUuODI0TDYuMTAxIDEzLjY4Yy0uMzQgMS41NzguMTg2IDIuMzIgMS40MjMgMi4zMi45NTkgMCAyLjA3Mi0uNDQzIDIuNTc3LTEuMDUybC4xNTUtLjczMmMtLjM1LjMxLS44NjYuNDM0LTEuMjA2LjQzNC0uNDg1IDAtLjY2LS4zNC0uNTM2LS45MzlsMS43NjMtOC4yNzh6bS4xMjItMy42NzNhMS43NiAxLjc2IDAgMSAxLTMuNTIgMCAxLjc2IDEuNzYgMCAwIDEgMy41MiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luZm9TcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMnptOC45MyA0LjU4OC0yLjI5LjI4Ny0uMDgyLjM4LjQ1LjA4M2MuMjk0LjA3LjM1Mi4xNzYuMjg4LjQ2OWwtLjczOCAzLjQ2OGMtLjE5NC44OTcuMTA1IDEuMzE5LjgwOCAxLjMxOS41NDUgMCAxLjE3OC0uMjUyIDEuNDY1LS41OThsLjA4OC0uNDE2Yy0uMi4xNzYtLjQ5Mi4yNDYtLjY4Ni4yNDYtLjI3NSAwLS4zNzUtLjE5My0uMzA0LS41MzNMOC45MyA2LjU4OHpNOCA1LjVhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luZm9TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguOTMgNi41ODgtMi4yOS4yODctLjA4Mi4zOC40NS4wODNjLjI5NC4wNy4zNTIuMTc2LjI4OC40NjlsLS43MzggMy40NjhjLS4xOTQuODk3LjEwNSAxLjMxOS44MDggMS4zMTkuNTQ1IDAgMS4xNzgtLjI1MiAxLjQ2NS0uNTk4bC4wODgtLjQxNmMtLjIuMTc2LS40OTIuMjQ2LS42ODYuMjQ2LS4yNzUgMC0uMzc1LS4xOTMtLjMwNC0uNTMzTDguOTMgNi41ODh6TTkgNC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNJbmZvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguOTMgNi41ODgtMi4yOS4yODctLjA4Mi4zOC40NS4wODNjLjI5NC4wNy4zNTIuMTc2LjI4OC40NjlsLS43MzggMy40NjhjLS4xOTQuODk3LjEwNSAxLjMxOS44MDggMS4zMTkuNTQ1IDAgMS4xNzgtLjI1MiAxLjQ2NS0uNTk4bC4wODgtLjQxNmMtLjIuMTc2LS40OTIuMjQ2LS42ODYuMjQ2LS4yNzUgMC0uMzc1LS4xOTMtLjMwNC0uNTMzTDguOTMgNi41ODh6TTkgNC41YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNJbnB1dEN1cnNvclRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMmEuNS41IDAgMCAxIC41LS41Yy44NjIgMCAxLjU3My4yODcgMi4wNi41NjYuMTc0LjA5OS4zMjEuMTk4LjQ0LjI4Ni4xMTktLjA4OC4yNjYtLjE4Ny40NC0uMjg2QTQuMTY1IDQuMTY1IDAgMCAxIDEwLjUgMS41YS41LjUgMCAwIDEgMCAxYy0uNjM4IDAtMS4xNzcuMjEzLTEuNTY0LjQzNGEzLjQ5IDMuNDkgMCAwIDAtLjQzNi4yOTRWNy41SDlhLjUuNSAwIDAgMSAwIDFoLS41djQuMjcyYy4xLjA4LjI0OC4xODcuNDM2LjI5NC4zODcuMjIxLjkyNi40MzQgMS41NjQuNDM0YS41LjUgMCAwIDEgMCAxIDQuMTY1IDQuMTY1IDAgMCAxLTIuMDYtLjU2NkE0LjU2MSA0LjU2MSAwIDAgMSA4IDEzLjY1YTQuNTYxIDQuNTYxIDAgMCAxLS40NC4yODUgNC4xNjUgNC4xNjUgMCAwIDEtMi4wNi41NjYuNS41IDAgMCAxIDAtMWMuNjM4IDAgMS4xNzctLjIxMyAxLjU2NC0uNDM0LjE4OC0uMTA3LjMzNS0uMjE0LjQzNi0uMjk0VjguNUg3YS41LjUgMCAwIDEgMC0xaC41VjMuMjI4YTMuNDkgMy40OSAwIDAgMC0uNDM2LS4yOTRBMy4xNjYgMy4xNjYgMCAwIDAgNS41IDIuNS41LjUgMCAwIDEgNSAyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDVoNGExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMWgtNHYxaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTR2MXpNNiA1VjRIMmEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmg0di0xSDJhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNJbnB1dEN1cnNvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA1aDRhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFoLTR2MWg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00djF6TTYgNVY0SDJhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoNHYtMUgyYTEgMSAwIDAgMS0xLTFWNmExIDEgMCAwIDEgMS0xaDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMWEuNS41IDAgMCAxIC41LjV2MTNhLjUuNSAwIDAgMS0xIDB2LTEzQS41LjUgMCAwIDEgOCAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0luc3RhZ3JhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBDNS44MjkgMCA1LjU1Ni4wMSA0LjcwMy4wNDggMy44NS4wODggMy4yNjkuMjIyIDIuNzYuNDJhMy45MTcgMy45MTcgMCAwIDAtMS40MTcuOTIzQTMuOTI3IDMuOTI3IDAgMCAwIC40MiAyLjc2Qy4yMjIgMy4yNjguMDg3IDMuODUuMDQ4IDQuNy4wMSA1LjU1NSAwIDUuODI3IDAgOC4wMDFjMCAyLjE3Mi4wMSAyLjQ0NC4wNDggMy4yOTcuMDQuODUyLjE3NCAxLjQzMy4zNzIgMS45NDIuMjA1LjUyNi40NzguOTcyLjkyMyAxLjQxNy40NDQuNDQ1Ljg5LjcxOSAxLjQxNi45MjMuNTEuMTk4IDEuMDkuMzMzIDEuOTQyLjM3MkM1LjU1NSAxNS45OSA1LjgyNyAxNiA4IDE2czIuNDQ0LS4wMSAzLjI5OC0uMDQ4Yy44NTEtLjA0IDEuNDM0LS4xNzQgMS45NDMtLjM3MmEzLjkxNiAzLjkxNiAwIDAgMCAxLjQxNi0uOTIzYy40NDUtLjQ0NS43MTgtLjg5MS45MjMtMS40MTcuMTk3LS41MDkuMzMyLTEuMDkuMzcyLTEuOTQyQzE1Ljk5IDEwLjQ0NSAxNiAxMC4xNzMgMTYgOHMtLjAxLTIuNDQ1LS4wNDgtMy4yOTljLS4wNC0uODUxLS4xNzUtMS40MzMtLjM3Mi0xLjk0MWEzLjkyNiAzLjkyNiAwIDAgMC0uOTIzLTEuNDE3QTMuOTExIDMuOTExIDAgMCAwIDEzLjI0LjQyYy0uNTEtLjE5OC0xLjA5Mi0uMzMzLTEuOTQzLS4zNzJDMTAuNDQzLjAxIDEwLjE3MiAwIDcuOTk4IDBoLjAwM3ptLS43MTcgMS40NDJoLjcxOGMyLjEzNiAwIDIuMzg5LjAwNyAzLjIzMi4wNDYuNzguMDM1IDEuMjA0LjE2NiAxLjQ4Ni4yNzUuMzczLjE0NS42NC4zMTkuOTIuNTk5LjI4LjI4LjQ1My41NDYuNTk4LjkyLjExLjI4MS4yNC43MDUuMjc1IDEuNDg1LjAzOS44NDMuMDQ3IDEuMDk2LjA0NyAzLjIzMXMtLjAwOCAyLjM4OS0uMDQ3IDMuMjMyYy0uMDM1Ljc4LS4xNjYgMS4yMDMtLjI3NSAxLjQ4NWEyLjQ3IDIuNDcgMCAwIDEtLjU5OS45MTljLS4yOC4yOC0uNTQ2LjQ1My0uOTIuNTk4LS4yOC4xMS0uNzA0LjI0LTEuNDg1LjI3Ni0uODQzLjAzOC0xLjA5Ni4wNDctMy4yMzIuMDQ3cy0yLjM5LS4wMDktMy4yMzMtLjA0N2MtLjc4LS4wMzYtMS4yMDMtLjE2Ni0xLjQ4NS0uMjc2YTIuNDc4IDIuNDc4IDAgMCAxLS45Mi0uNTk4IDIuNDggMi40OCAwIDAgMS0uNi0uOTJjLS4xMDktLjI4MS0uMjQtLjcwNS0uMjc1LTEuNDg1LS4wMzgtLjg0My0uMDQ2LTEuMDk2LS4wNDYtMy4yMzMgMC0yLjEzNi4wMDgtMi4zODguMDQ2LTMuMjMxLjAzNi0uNzguMTY2LTEuMjA0LjI3Ni0xLjQ4Ni4xNDUtLjM3My4zMTktLjY0LjU5OS0uOTIuMjgtLjI4LjU0Ni0uNDUzLjkyLS41OTguMjgyLS4xMS43MDUtLjI0IDEuNDg1LS4yNzYuNzM4LS4wMzQgMS4wMjQtLjA0NCAyLjUxNS0uMDQ1di4wMDJ6bTQuOTg4IDEuMzI4YS45Ni45NiAwIDEgMCAwIDEuOTIuOTYuOTYgMCAwIDAgMC0xLjkyem0tNC4yNyAxLjEyMmE0LjEwOSA0LjEwOSAwIDEgMCAwIDguMjE3IDQuMTA5IDQuMTA5IDAgMCAwIDAtOC4yMTd6bTAgMS40NDFhMi42NjcgMi42NjcgMCAxIDEgMCA1LjMzNCAyLjY2NyAyLjY2NyAwIDAgMSAwLTUuMzM0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0ludGVyc2VjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MmgyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMkgyYTIgMiAwIDAgMS0yLTJWMnptNSAxMHYyYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMnY1YTIgMiAwIDAgMS0yIDJINXptNi04VjJhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDJWNmEyIDIgMCAwIDEgMi0yaDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSm91cm5hbEFsYnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA0YS41LjUgMCAwIDAtLjUuNXY1YS41LjUgMCAwIDAgLjUuNWg1YS41LjUgMCAwIDAgLjUtLjV2LTVhLjUuNSAwIDAgMC0uNS0uNWgtNXptMSA3YS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAwaDEwYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJ2LTFoMXYxYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjFIMVYyYTIgMiAwIDAgMSAyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA1di0uNWEuNS41IDAgMCAxIDEgMFY1aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDBWOGguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwdi41aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSm91cm5hbEFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCA1YS41LjUgMCAwIDEgLjUuNXYzLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4IDBsLTItMmEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgOS4yOTNWNS41QS41LjUgMCAwIDEgOCA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGgxMGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0ydi0xaDF2MWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXYxSDFWMmEyIDIgMCAwIDEgMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNXYtLjVhLjUuNSAwIDAgMSAxIDBWNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwVjhoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMHYuNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0pvdXJuYWxBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDExYS41LjUgMCAwIDAgLjUtLjVWNi43MDdsMS4xNDYgMS4xNDdhLjUuNSAwIDAgMCAuNzA4LS43MDhsLTItMmEuNS41IDAgMCAwLS43MDggMGwtMiAyYS41LjUgMCAxIDAgLjcwOC43MDhMNy41IDYuNzA3VjEwLjVhLjUuNSAwIDAgMCAuNS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGgxMGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0ydi0xaDF2MWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXYxSDFWMmEyIDIgMCAwIDEgMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNXYtLjVhLjUuNSAwIDAgMSAxIDBWNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwVjhoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMHYuNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0pvdXJuYWxCb29rbWFya0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMWg2djdhLjUuNSAwIDAgMS0uNzU3LjQyOUw5IDcuMDgzIDYuNzU3IDguNDNBLjUuNSAwIDAgMSA2IDhWMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFsQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgOFYxaDF2Ni4xMTdMOC43NDMgNi4wN2EuNS41IDAgMCAxIC41MTQgMEwxMSA3LjExN1YxaDF2N2EuNS41IDAgMCAxLS43NTcuNDI5TDkgNy4wODMgNi43NTcgOC40M0EuNS41IDAgMCAxIDYgOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFsQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjg1NCA2LjE0NmEuNS41IDAgMCAxIDAgLjcwOGwtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAxIDEgLjcwOC0uNzA4TDcuNSA4Ljc5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFsQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOC42NDYgNS42NDZhLjUuNSAwIDAgMSAuNzA4IDBsMiAyYS41LjUgMCAwIDEgMCAuNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuMjkzIDggOC42NDYgNi4zNTRhLjUuNSAwIDAgMSAwLS43MDh6bS0xLjI5MiAwYS41LjUgMCAwIDAtLjcwOCAwbC0yIDJhLjUuNSAwIDAgMCAwIC43MDhsMiAyYS41LjUgMCAwIDAgLjcwOC0uNzA4TDUuNzA3IDhsMS42NDctMS42NDZhLjUuNSAwIDAgMCAwLS43MDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAwaDEwYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJ2LTFoMXYxYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjFIMVYyYTIgMiAwIDAgMSAyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA1di0uNWEuNS41IDAgMCAxIDEgMFY1aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDBWOGguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwdi41aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSm91cm5hbE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggNGEuNS41IDAgMCAxIC41LjV2LjYzNGwuNTQ5LS4zMTdhLjUuNSAwIDEgMSAuNS44NjZMOSA2bC41NDkuMzE3YS41LjUgMCAxIDEtLjUuODY2TDguNSA2Ljg2NlY3LjVhLjUuNSAwIDAgMS0xIDB2LS42MzRsLS41NDkuMzE3YS41LjUgMCAxIDEtLjUtLjg2Nkw3IDZsLS41NDktLjMxN2EuNS41IDAgMCAxIC41LS44NjZsLjU0OS4zMTdWNC41QS41LjUgMCAwIDEgOCA0ek01IDkuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGgxMGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0ydi0xaDF2MWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXYxSDFWMmEyIDIgMCAwIDEgMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNXYtLjVhLjUuNSAwIDAgMSAxIDBWNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwVjhoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMHYuNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0pvdXJuYWxNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS41IDhhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFsUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCA1LjVhLjUuNSAwIDAgMSAuNS41djEuNUgxMGEuNS41IDAgMCAxIDAgMUg4LjVWMTBhLjUuNSAwIDAgMS0xIDBWOC41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjZhLjUuNSAwIDAgMSAuNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFsUmljaHRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDMuNzVhLjc1Ljc1IDAgMSAxLTEuNSAwIC43NS43NSAwIDAgMSAxLjUgMHptLS44NjEgMS41NDIgMS4zMy44ODYgMS44NTQtMS44NTVhLjI1LjI1IDAgMCAxIC4yODktLjA0N0wxMSA0Ljc1VjdhLjUuNSAwIDAgMS0uNS41aC01QS41LjUgMCAwIDEgNSA3di0uNXMxLjU0LTEuMjc0IDEuNjM5LTEuMjA4ek01IDkuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGgxMGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0ydi0xaDF2MWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXYxSDFWMmEyIDIgMCAwIDEgMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNXYtLjVhLjUuNSAwIDAgMSAxIDBWNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwVjhoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMHYuNWguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0pvdXJuYWxUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTAuNWEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXptMC0yYS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41em0wLTJhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6bTAtMmEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFsWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi4xNDYgNi4xNDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMSAxIC43MDguNzA4TDguNzA3IDhsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3IDYuODU0IDkuODU0YS41LjUgMCAwIDEtLjcwOC0uNzA4TDcuMjkzIDggNi4xNDYgNi44NTRhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAwaDEwYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJ2LTFoMXYxYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjFIMVYyYTIgMiAwIDAgMSAyLTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA1di0uNWEuNS41IDAgMCAxIDEgMFY1aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDBWOGguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwdi41aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSm91cm5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDBoMTBhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtMWgxdjFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2MUgxVjJhMiAyIDAgMCAxIDItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDV2LS41YS41LjUgMCAwIDEgMSAwVjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAzdi0uNWEuNS41IDAgMCAxIDEgMFY4aC41YS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEgMC0xSDF6bTAgM3YtLjVhLjUuNSAwIDAgMSAxIDB2LjVoLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3VybmFscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDBoOGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJoMWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxSDFhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OWExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDFIM2EyIDIgMCAwIDEgMi0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgNnYtLjVhLjUuNSAwIDAgMSAxIDBWNmguNWEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxIDAtMUgxem0wIDN2LS41YS41LjUgMCAwIDEgMSAwVjloLjVhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMSAwLTFIMXptMCAyLjV2LjVILjVhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMUgydi0uNWEuNS41IDAgMCAwLTEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNKb3lzdGljayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyYTIgMiAwIDAgMS0xLjUgMS45Mzd2NS4wODdjLjg2My4wODMgMS41LjM3NyAxLjUuNzI2IDAgLjQxNC0uODk1Ljc1LTIgLjc1cy0yLS4zMzYtMi0uNzVjMC0uMzUuNjM3LS42NDMgMS41LS43MjZWMy45MzdBMiAyIDAgMSAxIDEwIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5LjY2NXYxLjcxN2ExIDEgMCAwIDAgLjU1My44OTRsNi41NTMgMy4yNzdhMiAyIDAgMCAwIDEuNzg4IDBsNi41NTMtMy4yNzdhMSAxIDAgMCAwIC41NTMtLjg5NFY5LjY2NWMwLS4xLS4wNi0uMTktLjE1Mi0uMjNMOS41IDYuNzE1di45OTNsNS4yMjcgMi4xNzhhLjEyNS4xMjUgMCAwIDEgLjAwMS4yM2wtNS45NCAyLjU0NmEyIDIgMCAwIDEtMS41NzYgMGwtNS45NC0yLjU0NmEuMTI1LjEyNSAwIDAgMSAuMDAxLS4yM0w2LjUgNy43MDhsLS4wMTMtLjk4OEwuMTUyIDkuNDM1YS4yNS4yNSAwIDAgMC0uMTUyLjIzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0p1c3RpZnlMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDEyLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6bTAtM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41em0wLTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXptMC0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzSnVzdGlmeVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDEyLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6bS00LTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXptMC0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6bTAtM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0p1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIgMTIuNWEuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41em0wLTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXptMC0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6bTAtM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0thbmJhbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yaC0xMXptNSAyaDFhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTF6bS01IDFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMSAxIDF2N2ExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWM3ptOS0xaDFhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWM2ExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0thbmJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDFhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxaC0xMWExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMXptLTExLTFhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0yaC0xMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgM2ExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFoLTFhMSAxIDAgMCAxLTEtMVYzem0tNCAwYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjdhMSAxIDAgMCAxLTEgMWgtMWExIDEgMCAwIDEtMS0xVjN6bTggMGExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxaC0xYTEgMSAwIDAgMS0xLTFWM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNLZXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAxMS41YTMuNSAzLjUgMCAxIDEgMy4xNjMtNUgxNEwxNS41IDggMTQgOS41bC0xLTEtMSAxLTEtMS0xIDEtMS0xLTEgMUg2LjY2M2EzLjUgMy41IDAgMCAxLTMuMTYzIDJ6TTIuNSA5YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4YTQgNCAwIDAgMSA3LjQ2NS0ySDE0YS41LjUgMCAwIDEgLjM1NC4xNDZsMS41IDEuNWEuNS41IDAgMCAxIDAgLjcwOGwtMS41IDEuNWEuNS41IDAgMCAxLS43MDggMEwxMyA5LjIwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBMMTEgOS4yMDdsLS42NDYuNjQ3YS41LjUgMCAwIDEtLjcwOCAwTDkgOS4yMDdsLS42NDYuNjQ3QS41LjUgMCAwIDEgOCAxMGgtLjUzNUE0IDQgMCAwIDEgMCA4em00LTNhMyAzIDAgMSAwIDIuNzEyIDQuMjg1QS41LjUgMCAwIDEgNy4xNjMgOWguNjNsLjg1My0uODU0YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ3LjY0Ni0uNjQ3YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ3LjY0Ni0uNjQ3YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ3Ljc5My0uNzkzLTEtMWgtNi42M2EuNS41IDAgMCAxLS40NTEtLjI4NUEzIDMgMCAwIDAgNCA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzS2V5Ym9hcmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY2em0xMyAuMjV2LjVjMCAuMTM4LjExMi4yNS4yNS4yNWguNWEuMjUuMjUgMCAwIDAgLjI1LS4yNXYtLjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTIuMjUgOGEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVBLjI1LjI1IDAgMCAwIDMgOC43NXYtLjVBLjI1LjI1IDAgMCAwIDIuNzUgOGgtLjV6TTQgOC4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41QS4yNS4yNSAwIDAgMCA1IDguNzV2LS41QS4yNS4yNSAwIDAgMCA0Ljc1IDhoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTYuMjUgOGEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVBLjI1LjI1IDAgMCAwIDcgOC43NXYtLjVBLjI1LjI1IDAgMCAwIDYuNzUgOGgtLjV6TTggOC4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41QS4yNS4yNSAwIDAgMCA5IDguNzV2LS41QS4yNS4yNSAwIDAgMCA4Ljc1IDhoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTEzLjI1IDhhLjI1LjI1IDAgMCAwLS4yNS4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtLjV6bTAgMmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0uNXptLTMtMmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMS41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtMS41em0uNzUgMi4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtLjVhLjI1LjI1IDAgMCAwLS4yNS4yNXpNMTEuMjUgNmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0uNXpNOSA2LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS41QS4yNS4yNSAwIDAgMCA5Ljc1IDZoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTcuMjUgNmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjVBLjI1LjI1IDAgMCAwIDggNi43NXYtLjVBLjI1LjI1IDAgMCAwIDcuNzUgNmgtLjV6TTUgNi4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41QS4yNS4yNSAwIDAgMCA2IDYuNzV2LS41QS4yNS4yNSAwIDAgMCA1Ljc1IDZoLS41YS4yNS4yNSAwIDAgMC0uMjUuMjV6TTIuMjUgNmEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMS41QS4yNS4yNSAwIDAgMCA0IDYuNzV2LS41QS4yNS4yNSAwIDAgMCAzLjc1IDZoLTEuNXpNMiAxMC4yNXYuNWMwIC4xMzguMTEyLjI1LjI1LjI1aC41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtLjVhLjI1LjI1IDAgMCAwLS4yNS4yNXpNNC4yNSAxMGEuMjUuMjUgMCAwIDAtLjI1LjI1di41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNS41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uNWEuMjUuMjUgMCAwIDAtLjI1LS4yNWgtNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0tleWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDVhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjZhMSAxIDAgMCAxIDEtMWgxMnpNMiA0YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTAuMjVhLjI1LjI1IDAgMCAxIC4yNS0uMjVoLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtLjV6bTAtMmEuMjUuMjUgMCAwIDEgLjI1LS4yNWguNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41YS4yNS4yNSAwIDAgMS0uMjUuMjVoLS41YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0uNXptLTUgMEEuMjUuMjUgMCAwIDEgOC4yNSA4aC41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjVhLjI1LjI1IDAgMCAxLS4yNS4yNWgtLjVBLjI1LjI1IDAgMCAxIDggOC43NXYtLjV6bTIgMGEuMjUuMjUgMCAwIDEgLjI1LS4yNWgxLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0xLjVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LS41em0xIDJhLjI1LjI1IDAgMCAxIC4yNS0uMjVoLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtLjV6bS01LTJBLjI1LjI1IDAgMCAxIDYuMjUgOGguNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41YS4yNS4yNSAwIDAgMS0uMjUuMjVoLS41QS4yNS4yNSAwIDAgMSA2IDguNzV2LS41em0tMiAwQS4yNS4yNSAwIDAgMSA0LjI1IDhoLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uNUEuMjUuMjUgMCAwIDEgNCA4Ljc1di0uNXptLTIgMEEuMjUuMjUgMCAwIDEgMi4yNSA4aC41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjVhLjI1LjI1IDAgMCAxLS4yNS4yNWgtLjVBLjI1LjI1IDAgMCAxIDIgOC43NXYtLjV6bTExLTJhLjI1LjI1IDAgMCAxIC4yNS0uMjVoLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtLjV6bS0yIDBhLjI1LjI1IDAgMCAxIC4yNS0uMjVoLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtLjV6bS0yIDBBLjI1LjI1IDAgMCAxIDkuMjUgNmguNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41YS4yNS4yNSAwIDAgMS0uMjUuMjVoLS41QS4yNS4yNSAwIDAgMSA5IDYuNzV2LS41em0tMiAwQS4yNS4yNSAwIDAgMSA3LjI1IDZoLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uNUEuMjUuMjUgMCAwIDEgNyA2Ljc1di0uNXptLTIgMEEuMjUuMjUgMCAwIDEgNS4yNSA2aC41YS4yNS4yNSAwIDAgMSAuMjUuMjV2LjVhLjI1LjI1IDAgMCAxLS4yNS4yNWgtLjVBLjI1LjI1IDAgMCAxIDUgNi43NXYtLjV6bS0zIDBBLjI1LjI1IDAgMCAxIDIuMjUgNmgxLjVhLjI1LjI1IDAgMCAxIC4yNS4yNXYuNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0xLjVBLjI1LjI1IDAgMCAxIDIgNi43NXYtLjV6bTAgNGEuMjUuMjUgMCAwIDEgLjI1LS4yNWguNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41YS4yNS4yNSAwIDAgMS0uMjUuMjVoLS41YS4yNS4yNSAwIDAgMS0uMjUtLjI1di0uNXptMiAwYS4yNS4yNSAwIDAgMSAuMjUtLjI1aDUuNWEuMjUuMjUgMCAwIDEgLjI1LjI1di41YS4yNS4yNSAwIDAgMS0uMjUuMjVoLTUuNWEuMjUuMjUgMCAwIDEtLjI1LS4yNXYtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGFkZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAxYS41LjUgMCAwIDEgLjUuNVYyaDZ2LS41YS41LjUgMCAwIDEgMSAwdjE0YS41LjUgMCAwIDEtMSAwVjE1SDV2LjVhLjUuNSAwIDAgMS0xIDB2LTE0YS41LjUgMCAwIDEgLjUtLjV6TTUgMTRoNnYtMkg1djJ6bTAtM2g2VjlINXYyem0wLTNoNlY2SDV2MnptMC0zaDZWM0g1djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGFtcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIM2ExIDEgMCAwIDEtMS0xVjN6bTUuNS0yIC4yNzYtLjU1M2EuMjUuMjUgMCAwIDEgLjQ0OCAwTDguNSAxaC0xem0tLjYxNSA4aDIuMjNDOS45NjggMTAuNTk1IDExIDEyLjY5IDExIDEzLjVjMCAxLjM4LTEuMzQzIDIuNS0zIDIuNXMtMy0xLjEyLTMtMi41YzAtLjgxIDEuMDMyLTIuOTA1IDEuODg1LTQuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMYW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDN2NEgzVjNoMTB6TTMgMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUgzem00LjUtMSAuMjc2LS41NTNhLjI1LjI1IDAgMCAxIC40NDggMEw4LjUgMWgtMXptLS4wMTIgOWgxLjAyNGMuMzM3LjY0Ni42NzcgMS4zMy45NSAxLjk0OS4xNzYuMzk2LjMxOC43NS40MTMgMS4wNDIuMDQ4LjE0Ni4wODEuMjY2LjEwMi4zNkExLjM0NyAxLjM0NyAwIDAgMSAxMCAxMy41YzAgLjY2NS0uNzE3IDEuNS0yIDEuNXMtMi0uODM1LTItMS41YzAgMCAwLS4wMTMuMDA0LS4wMzkuMDAzLS4wMjcuMDEtLjA2My4wMi0uMTEuMDItLjA5NC4wNTMtLjIxNC4xLS4zNi4wOTYtLjI5MS4yMzgtLjY0Ni40MTMtMS4wNDIuMjc0LS42Mi42MTQtMS4zMDMuOTUtMS45NDl6bTEuNjI3LTFoLTIuMjNDNi4wMzIgMTAuNTk1IDUgMTIuNjkgNSAxMy41IDUgMTQuODggNi4zNDMgMTYgOCAxNnMzLTEuMTIgMy0yLjVjMC0uODEtMS4wMzItMi45MDUtMS44ODUtNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xhcHRvcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDJBMS41IDEuNSAwIDAgMCAxIDMuNVYxMmgxNFYzLjVBMS41IDEuNSAwIDAgMCAxMy41IDJoLTExek0wIDEyLjVoMTZhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDAgMTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMYXB0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSAzYS41LjUgMCAwIDEgLjUuNVYxMUgyVjMuNWEuNS41IDAgMCAxIC41LS41aDExem0tMTEtMUExLjUgMS41IDAgMCAwIDEgMy41VjEyaDE0VjMuNUExLjUgMS41IDAgMCAwIDEzLjUgMmgtMTF6TTAgMTIuNWgxNmExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMCAxMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheWVyQmFja3dhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4zNTQgMTUuODU0YS41LjUgMCAwIDEtLjcwOCAwbC0zLTNhLjUuNSAwIDAgMSAwLS43MDhsMS0xYS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ3VjRIMWExIDEgMCAwIDEtMS0xVjFhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg5djcuNzkzbC42NDYtLjY0N2EuNS41IDAgMCAxIC43MDggMGwxIDFhLjUuNSAwIDAgMSAwIC43MDhsLTMgM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDlhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTFoNC41YS41LjUgMCAwIDEgMCAxSDF2Mmg0LjVhLjUuNSAwIDAgMSAwIDFIMXptOS41IDBhLjUuNSAwIDAgMSAwLTFIMTVWNmgtNC41YS41LjUgMCAwIDEgMC0xSDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC00LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGF5ZXJGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMzU0LjE0NmEuNS41IDAgMCAwLS43MDggMGwtMyAzYS41LjUgMCAwIDAgMCAuNzA4bDEgMWEuNS41IDAgMCAwIC43MDggMEw3IDQuMjA3VjEySDFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xSDlWNC4yMDdsLjY0Ni42NDdhLjUuNSAwIDAgMCAuNzA4IDBsMS0xYS41LjUgMCAwIDAgMC0uNzA4bC0zLTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA3YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDQuNWEuNS41IDAgMCAwIDAtMUgxVjhoNC41YS41LjUgMCAwIDAgMC0xSDF6bTkuNSAwYS41LjUgMCAwIDAgMCAxSDE1djJoLTQuNWEuNS41IDAgMCAwIDAgMUgxNWExIDEgMCAwIDAgMS0xVjhhMSAxIDAgMCAwLTEtMWgtNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheWVyc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43NjUgMS41NTlhLjUuNSAwIDAgMSAuNDcgMGw3LjUgNGEuNS41IDAgMCAxIDAgLjg4MmwtNy41IDRhLjUuNSAwIDAgMS0uNDcgMGwtNy41LTRhLjUuNSAwIDAgMSAwLS44ODJsNy41LTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi4xMjUgOC41NjctMS44Ni45OTJhLjUuNSAwIDAgMCAwIC44ODJsNy41IDRhLjUuNSAwIDAgMCAuNDcgMGw3LjUtNGEuNS41IDAgMCAwIDAtLjg4MmwtMS44Ni0uOTkyLTUuMTcgMi43NTZhMS41IDEuNSAwIDAgMS0xLjQxIDBsLTUuMTctMi43NTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGF5ZXJzSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjIzNSAxLjU1OWEuNS41IDAgMCAwLS40NyAwbC03LjUgNGEuNS41IDAgMCAwIDAgLjg4MkwzLjE4OCA4IC4yNjQgOS41NTlhLjUuNSAwIDAgMCAwIC44ODJsNy41IDRhLjUuNSAwIDAgMCAuNDcgMGw3LjUtNGEuNS41IDAgMCAwIDAtLjg4MkwxMi44MTMgOGwyLjkyMi0xLjU1OWEuNS41IDAgMCAwIDAtLjg4MmwtNy41LTR6TTggOS40MzMgMS41NjIgNiA4IDIuNTY3IDE0LjQzOCA2IDggOS40MzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGF5ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMjM1IDEuNTU5YS41LjUgMCAwIDAtLjQ3IDBsLTcuNSA0YS41LjUgMCAwIDAgMCAuODgyTDMuMTg4IDggLjI2NCA5LjU1OWEuNS41IDAgMCAwIDAgLjg4Mmw3LjUgNGEuNS41IDAgMCAwIC40NyAwbDcuNS00YS41LjUgMCAwIDAgMC0uODgyTDEyLjgxMyA4bDIuOTIyLTEuNTU5YS41LjUgMCAwIDAgMC0uODgybC03LjUtNHptMy41MTUgNy4wMDhMMTQuNDM4IDEwIDggMTMuNDMzIDEuNTYyIDEwIDQuMjUgOC41NjdsMy41MTUgMS44NzRhLjUuNSAwIDAgMCAuNDcgMGwzLjUxNS0xLjg3NHpNOCA5LjQzMyAxLjU2MiA2IDggMi41NjcgMTQuNDM4IDYgOCA5LjQzM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMYXlvdXRTaWRlYmFySW5zZXRSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFIMnptMTItMWEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjNhMiAyIDAgMCAxIDItMmgxMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xVjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGF5b3V0U2lkZWJhckluc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMWEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDRhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheW91dFNpZGViYXJSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNhMiAyIDAgMCAwLTItMkgyYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjN6bS01LTF2MTJIMmExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWg5em0xIDBoMmExIDEgMCAwIDEgMSAxdjEwYTEgMSAwIDAgMS0xIDFoLTJWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMYXlvdXRTaWRlYmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgM2EyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWM3ptNS0xdjEyaDlhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFINXpNNCAySDJhMSAxIDAgMCAwLTEgMXYxMGExIDEgMCAwIDAgMSAxaDJWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMYXlvdXRTcGxpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDNhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjN6bTguNS0xdjEySDE0YTEgMSAwIDAgMCAxLTFWM2ExIDEgMCAwIDAtMS0xSDguNXptLTEgMEgyYTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWg1LjVWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMYXlvdXRUZXh0U2lkZWJhclJldmVyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAzYS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDV6bTAgM2EuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxIDAtMWg1em0uNSAzLjVhLjUuNSAwIDAgMC0uNS0uNWgtNWEuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgLjUtLjV6bS0uNSAyLjVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMSAwLTFoNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyYTIgMiAwIDAgMC0yLTJIMmEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyek00IDF2MTRIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgyem0xIDBoOWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINVYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheW91dFRleHRTaWRlYmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAzYS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTV6bTAgM2EuNS41IDAgMCAwIDAgMWg1YS41LjUgMCAwIDAgMC0xaC01ek0zIDkuNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXptLjUgMi41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem0xMi0xdjE0aDJhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFoLTJ6bS0xIDBIMmExIDEgMCAwIDAtMSAxdjEyYTEgMSAwIDAgMCAxIDFoOVYxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheW91dFRleHRXaW5kb3dSZXZlcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDYuNWEuNS41IDAgMCAwLS41LS41aC01YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAuNS0uNXptMCAzYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIC41LS41em0tLjUgMi41YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEgMC0xaDV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgxMnpNMiAxYTEgMSAwIDAgMC0xIDF2MWgxNFYyYTEgMSAwIDAgMC0xLTFIMnpNMSA0djEwYTEgMSAwIDAgMCAxIDFoMlY0SDF6bTQgMHYxMWg5YTEgMSAwIDAgMCAxLTFWNEg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheW91dFRleHRXaW5kb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA2LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6bTAgM2EuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXptLjUgMi41YS41LjUgMCAwIDAgMCAxaDVhLjUuNSAwIDAgMCAwLTFoLTV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0xMiAxYTEgMSAwIDAgMSAxIDF2MUgxVjJhMSAxIDAgMCAxIDEtMWgxMnptMSAzdjEwYTEgMSAwIDAgMS0xIDFoLTJWNGgzem0tNCAwdjExSDJhMSAxIDAgMCAxLTEtMVY0aDEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xheW91dFRocmVlQ29sdW1ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuNUExLjUgMS41IDAgMCAxIDEuNSAwaDEzQTEuNSAxLjUgMCAwIDEgMTYgMS41djEzYTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTNBMS41IDEuNSAwIDAgMSAwIDE0LjV2LTEzek0xLjUgMWEuNS41IDAgMCAwLS41LjV2MTNhLjUuNSAwIDAgMCAuNS41SDVWMUgxLjV6TTEwIDE1VjFINnYxNGg0em0xIDBoMy41YS41LjUgMCAwIDAgLjUtLjV2LTEzYS41LjUgMCAwIDAtLjUtLjVIMTF2MTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGF5b3V0V3RmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMXY4SDFWMWg0ek0xIDBhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xVjFhMSAxIDAgMCAwLTEtMUgxem0xMyAydjVIOVYyaDV6TTkgMWExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDl6TTUgMTN2Mkgzdi0yaDJ6bS0yLTFhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFIM3ptMTItMXYySDl2LTJoNnptLTYtMWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMUg5elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpZmVQcmVzZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNkE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2em02LjQzLTUuMjI4YTcuMDI1IDcuMDI1IDAgMCAxLTMuNjU4IDMuNjU4bC0xLjExNS0yLjc4OGE0LjAxNSA0LjAxNSAwIDAgMCAxLjk4NS0xLjk4NWwyLjc4OCAxLjExNXpNNS4yMjggMTQuNDNhNy4wMjUgNy4wMjUgMCAwIDEtMy42NTgtMy42NThsMi43ODgtMS4xMTVhNC4wMTUgNC4wMTUgMCAwIDAgMS45ODUgMS45ODVMNS4yMjggMTQuNDN6bTkuMjAyLTkuMjAyLTIuNzg4IDEuMTE1YTQuMDE1IDQuMDE1IDAgMCAwLTEuOTg1LTEuOTg1bDEuMTE1LTIuNzg4YTcuMDI1IDcuMDI1IDAgMCAxIDMuNjU4IDMuNjU4em0tOC4wODctLjg3YTQuMDE1IDQuMDE1IDAgMCAwLTEuOTg1IDEuOTg1TDEuNTcgNS4yMjhBNy4wMjUgNy4wMjUgMCAwIDEgNS4yMjggMS41N2wxLjExNSAyLjc4OHpNOCAxMWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGlnaHRidWxiRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZhNiA2IDAgMSAxIDEwLjE3NCA0LjMxYy0uMjAzLjE5Ni0uMzU5LjQtLjQ1My42MTlsLS43NjIgMS43NjlBLjUuNSAwIDAgMSAxMC41IDEzaC01YS41LjUgMCAwIDEtLjQ2LS4zMDJsLS43NjEtMS43N2ExLjk2NCAxLjk2NCAwIDAgMC0uNDUzLS42MThBNS45ODQgNS45ODQgMCAwIDEgMiA2em0zIDguNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFsLS4yMjQuNDQ3YTEgMSAwIDAgMS0uODk0LjU1M0g2LjYxOGExIDEgMCAwIDEtLjg5NC0uNTUzTDUuNSAxNWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpZ2h0YnVsYk9mZkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2YzAtLjU3Mi4wOC0xLjEyNS4yMy0xLjY1bDguNTU4IDguNTU5QS41LjUgMCAwIDEgMTAuNSAxM2gtNWEuNS41IDAgMCAxLS40Ni0uMzAybC0uNzYxLTEuNzdhMS45NjQgMS45NjQgMCAwIDAtLjQ1My0uNjE4QTUuOTg0IDUuOTg0IDAgMCAxIDIgNnptMTAuMzAzIDQuMTgxTDMuODE4IDEuNjk3YTYgNiAwIDAgMSA4LjQ4NCA4LjQ4NHpNNSAxNC41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWwtLjIyNC40NDdhMSAxIDAgMCAxLS44OTQuNTUzSDYuNjE4YTEgMSAwIDAgMS0uODk0LS41NTNMNS41IDE1YS41LjUgMCAwIDEtLjUtLjV6TTIuMzU0IDEuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMTIgMTJhLjUuNSAwIDAgMCAuNzA4LS43MDhsLTEyLTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpZ2h0YnVsYk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMi4yMyA0LjM1QTYuMDA0IDYuMDA0IDAgMCAwIDIgNmMwIDEuNjkxLjcgMy4yMiAxLjgyNiA0LjMxLjIwMy4xOTYuMzU5LjQuNDUzLjYxOWwuNzYyIDEuNzY5QS41LjUgMCAwIDAgNS41IDEzYS41LjUgMCAwIDAgMCAxIC41LjUgMCAwIDAgMCAxbC4yMjQuNDQ3YTEgMSAwIDAgMCAuODk0LjU1M2gyLjc2NGExIDEgMCAwIDAgLjg5NC0uNTUzTDEwLjUgMTVhLjUuNSAwIDAgMCAwLTEgLjUuNSAwIDAgMCAwLTEgLjUuNSAwIDAgMCAuMjg4LS4wOTFMOS44NzggMTJINS44M2wtLjYzMi0xLjQ2N2EyLjk1NCAyLjk1NCAwIDAgMC0uNjc2LS45NDEgNC45ODQgNC45ODQgMCAwIDEtMS40NTUtNC40MDVsLS44MzctLjgzNnptMS41ODgtMi42NTMuNzA4LjcwN2E1IDUgMCAwIDEgNy4wNyA3LjA3bC43MDcuNzA3YTYgNiAwIDAgMC04LjQ4NC04LjQ4NHptLTIuMTcyLS4wNTFhLjUuNSAwIDAgMSAuNzA4IDBsMTIgMTJhLjUuNSAwIDAgMS0uNzA4LjcwOGwtMTItMTJhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNmE2IDYgMCAxIDEgMTAuMTc0IDQuMzFjLS4yMDMuMTk2LS4zNTkuNC0uNDUzLjYxOWwtLjc2MiAxLjc2OUEuNS41IDAgMCAxIDEwLjUgMTNhLjUuNSAwIDAgMSAwIDEgLjUuNSAwIDAgMSAwIDFsLS4yMjQuNDQ3YTEgMSAwIDAgMS0uODk0LjU1M0g2LjYxOGExIDEgMCAwIDEtLjg5NC0uNTUzTDUuNSAxNWEuNS41IDAgMCAxIDAtMSAuNS41IDAgMCAxIDAtMSAuNS41IDAgMCAxLS40Ni0uMzAybC0uNzYxLTEuNzdhMS45NjQgMS45NjQgMCAwIDAtLjQ1My0uNjE4QTUuOTg0IDUuOTg0IDAgMCAxIDIgNnptNi01YTUgNSAwIDAgMC0zLjQ3OSA4LjU5MmMuMjYzLjI1NC41MTQuNTY0LjY3Ni45NDFMNS44MyAxMmg0LjM0MmwuNjMyLTEuNDY3Yy4xNjItLjM3Ny40MTMtLjY4Ny42NzYtLjk0MUE1IDUgMCAwIDAgOCAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpZ2h0bmluZ0NoYXJnZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjUxLjA2OGEuNS41IDAgMCAxIC4yMjcuNThMOS42NzcgNi41SDEzYS41LjUgMCAwIDEgLjM2NC44NDNsLTggOC41YS41LjUgMCAwIDEtLjg0Mi0uNDlMNi4zMjMgOS41SDNhLjUuNSAwIDAgMS0uMzY0LS44NDNsOC04LjVhLjUuNSAwIDAgMSAuNjE1LS4wOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaWdodG5pbmdDaGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjUxLjA2OGEuNS41IDAgMCAxIC4yMjcuNThMOS42NzcgNi41SDEzYS41LjUgMCAwIDEgLjM2NC44NDNsLTggOC41YS41LjUgMCAwIDEtLjg0Mi0uNDlMNi4zMjMgOS41SDNhLjUuNSAwIDAgMS0uMzY0LS44NDNsOC04LjVhLjUuNSAwIDAgMSAuNjE1LS4wOXpNNC4xNTcgOC41SDdhLjUuNSAwIDAgMSAuNDc4LjY0N0w2LjExIDEzLjU5bDUuNzMyLTYuMDlIOWEuNS41IDAgMCAxLS40NzgtLjY0N0w5Ljg5IDIuNDEgNC4xNTcgOC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpZ2h0bmluZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41Mi4zNTlBLjUuNSAwIDAgMSA2IDBoNGEuNS41IDAgMCAxIC40NzQuNjU4TDguNjk0IDZIMTIuNWEuNS41IDAgMCAxIC4zOTUuODA3bC03IDlhLjUuNSAwIDAgMS0uODczLS40NTRMNi44MjMgOS41SDMuNWEuNS41IDAgMCAxLS40OC0uNjQxbDIuNS04LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGlnaHRuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNTIuMzU5QS41LjUgMCAwIDEgNiAwaDRhLjUuNSAwIDAgMSAuNDc0LjY1OEw4LjY5NCA2SDEyLjVhLjUuNSAwIDAgMSAuMzk1LjgwN2wtNyA5YS41LjUgMCAwIDEtLjg3My0uNDU0TDYuODIzIDkuNUgzLjVhLjUuNSAwIDAgMS0uNDgtLjY0MWwyLjUtOC41ek02LjM3NCAxIDQuMTY4IDguNUg3LjVhLjUuNSAwIDAgMSAuNDc4LjY0N0w2Ljc4IDEzLjA0IDExLjQ3OCA3SDhhLjUuNSAwIDAgMS0uNDc0LS42NThMOS4zMDYgMUg2LjM3NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBjNC40MTEgMCA4IDIuOTEyIDggNi40OTIgMCAxLjQzMy0uNTU1IDIuNzIzLTEuNzE1IDMuOTk0LTEuNjc4IDEuOTMyLTUuNDMxIDQuMjg1LTYuMjg1IDQuNjQ1LS44My4zNS0uNzM0LS4xOTctLjY5Ni0uNDEzbC4wMDMtLjAxOC4xMTQtLjY4NWMuMDI3LS4yMDQuMDU1LS41MjEtLjAyNi0uNzIzLS4wOS0uMjIzLS40NDQtLjMzOS0uNzA0LS4zOTVDMi44NDYgMTIuMzkgMCA5LjcwMSAwIDYuNDkyIDAgMi45MTIgMy41OSAwIDggMHpNNS4wMjIgNy42ODZIMy40OTdWNC45MThhLjE1Ni4xNTYgMCAwIDAtLjE1NS0uMTU2SDIuNzhhLjE1Ni4xNTYgMCAwIDAtLjE1Ni4xNTZ2My40ODZjMCAuMDQxLjAxNy4wOC4wNDQuMTA3di4wMDFsLjAwMi4wMDIuMDAyLjAwMmEuMTU0LjE1NCAwIDAgMCAuMTA4LjA0M2gyLjI0MmMuMDg2IDAgLjE1NS0uMDcuMTU1LS4xNTZ2LS41NmEuMTU2LjE1NiAwIDAgMC0uMTU1LS4xNTd6bS43OTEtMi45MjRoLjU2MmMuMDg2IDAgLjE1NS4wNy4xNTUuMTU2djMuNDg2YzAgLjA4Ni0uMDcuMTU1LS4xNTUuMTU1aC0uNTYyYS4xNTYuMTU2IDAgMCAxLS4xNTYtLjE1NVY0LjkxOGMwLS4wODYuMDctLjE1Ni4xNTYtLjE1NnptMy44NjMgMGguNTZjLjA4NyAwIC4xNTcuMDcuMTU3LjE1NnYzLjQ4NmMwIC4wODYtLjA3LjE1NS0uMTU2LjE1NWgtLjU2MWEuMTU1LjE1NSAwIDAgMS0uMDQtLjAwNWgtLjAwMmEuMTY4LjE2OCAwIDAgMS0uMDExLS4wMDRsLS4wMDUtLjAwMi0uMDA3LS4wMDNhLjA2Ni4wNjYgMCAwIDEtLjAwOC0uMDA0TDkuNiA4LjU0bC0uMDEtLjAwNi0uMDAxLS4wMDFhLjE1NC4xNTQgMCAwIDEtLjA0LS4wMzlsLTEuNi0yLjE2djIuMDdhLjE1NS4xNTUgMCAwIDEtLjE1NS4xNTZoLS41NjFhLjE1Ni4xNTYgMCAwIDEtLjE1Ni0uMTU1VjQuOTE4YzAtLjA4Ni4wNy0uMTU2LjE1Ni0uMTU2SDcuOGwuMDA1LjAwMWguMDA2bC4wMDMuMDAxaC4wMDZsLjAxLjAwM2guMDAybC4wMDIuMDAxLjAxLjAwMy4wMDUuMDAyYS4wOS4wOSAwIDAgMSAuMDA5LjAwNGwuMDAzLjAwMS4wMDIuMDAxYS4xMTMuMTEzIDAgMCAxIC4wMTMuMDA4bC4wMDMuMDAyLjAwNS4wMDN2LjAwMWMuMDAyIDAgLjAwMy4wMDIuMDA0LjAwM2EuMDkyLjA5MiAwIDAgMSAuMDA4LjAwNmwuMDAzLjAwM2EuMTcuMTcgMCAwIDEgLjAyMy4wMjZMOS41MiA2Ljk5VjQuOTE4YzAtLjA4Ni4wNy0uMTU2LjE1Ni0uMTU2em0zLjgxNS43MTdjMCAuMDg2LS4wNy4xNTYtLjE1NS4xNTZIMTEuODF2LjU5aDEuNTI1Yy4wODYgMCAuMTU1LjA3LjE1NS4xNTV2LjU2MWMwIC4wODYtLjA3LjE1Ni0uMTU1LjE1NkgxMS44MXYuNTloMS41MjVjLjA4NiAwIC4xNTUuMDcuMTU1LjE1NXYuNTYxYzAgLjA4Ni0uMDcuMTU2LS4xNTUuMTU2aC0yLjI0MmEuMTU1LjE1NSAwIDAgMS0uMTEtLjA0NWwtLjAwMi0uMDAzYS4xNTUuMTU1IDAgMCAxLS4wNDQtLjEwN1Y0LjkxOGMwLS4wNDIuMDE3LS4wOC4wNDMtLjEwN2wuMDAzLS4wMDMuMDAxLS4wMDFhLjE1NS4xNTUgMCAwIDEgLjEwOS0uMDQ1aDIuMjQyYy4wODYgMCAuMTU1LjA3LjE1NS4xNTZ2LjU2MXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaW5rNDVEZWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC43MTUgNi41NDIgMy4zNDMgNy45MTRhMyAzIDAgMSAwIDQuMjQzIDQuMjQzbDEuODI4LTEuODI5QTMgMyAwIDAgMCA4LjU4NiA1LjVMOCA2LjA4NmExLjAwMiAxLjAwMiAwIDAgMC0uMTU0LjE5OSAyIDIgMCAwIDEgLjg2MSAzLjMzN0w2Ljg4IDExLjQ1YTIgMiAwIDEgMS0yLjgzLTIuODNsLjc5My0uNzkyYTQuMDE4IDQuMDE4IDAgMCAxLS4xMjgtMS4yODd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41ODYgNC42NzJBMyAzIDAgMCAwIDcuNDE0IDkuNWwuNzc1LS43NzZhMiAyIDAgMCAxLS44OTYtMy4zNDZMOS4xMiAzLjU1YTIgMiAwIDEgMSAyLjgzIDIuODNsLS43OTMuNzkyYy4xMTIuNDIuMTU1Ljg1NS4xMjggMS4yODdsMS4zNzItMS4zNzJhMyAzIDAgMSAwLTQuMjQzLTQuMjQzTDYuNTg2IDQuNjcyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4zNTQgNS41SDRhMyAzIDAgMCAwIDAgNmgzYTMgMyAwIDAgMCAyLjgzLTRIOWMtLjA4NiAwLS4xNy4wMS0uMjUuMDMxQTIgMiAwIDAgMSA3IDEwLjVINGEyIDIgMCAxIDEgMC00aDEuNTM1Yy4yMTgtLjM3Ni40OTUtLjcxNC44Mi0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNS41YTMgMyAwIDAgMC0yLjgzIDRoMS4wOThBMiAyIDAgMCAxIDkgNi41aDNhMiAyIDAgMSAxIDAgNGgtMS41MzVhNC4wMiA0LjAyIDAgMCAxLS44MiAxSDEyYTMgMyAwIDEgMCAwLTZIOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaW5rZWRpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuMTQ2QzAgLjUxMy41MjYgMCAxLjE3NSAwaDEzLjY1QzE1LjQ3NCAwIDE2IC41MTMgMTYgMS4xNDZ2MTMuNzA4YzAgLjYzMy0uNTI2IDEuMTQ2LTEuMTc1IDEuMTQ2SDEuMTc1Qy41MjYgMTYgMCAxNS40ODcgMCAxNC44NTRWMS4xNDZ6bTQuOTQzIDEyLjI0OFY2LjE2OUgyLjU0MnY3LjIyNWgyLjQwMXptLTEuMi04LjIxMmMuODM3IDAgMS4zNTgtLjU1NCAxLjM1OC0xLjI0OC0uMDE1LS43MDktLjUyLTEuMjQ4LTEuMzQyLTEuMjQ4LS44MjIgMC0xLjM1OS41NC0xLjM1OSAxLjI0OCAwIC42OTQuNTIxIDEuMjQ4IDEuMzI3IDEuMjQ4aC4wMTZ6bTQuOTA4IDguMjEyVjkuMzU5YzAtLjIxNi4wMTYtLjQzMi4wOC0uNTg2LjE3My0uNDMxLjU2OC0uODc4IDEuMjMyLS44NzguODY5IDAgMS4yMTYuNjYyIDEuMjE2IDEuNjM0djMuODY1aDIuNDAxVjkuMjVjMC0yLjIyLTEuMTg0LTMuMjUyLTIuNzY0LTMuMjUyLTEuMjc0IDAtMS44NDUuNy0yLjE2NSAxLjE5M3YuMDI1aC0uMDE2YTUuNTQgNS41NCAwIDAgMSAuMDE2LS4wMjVWNi4xNjloLTIuNGMuMDMuNjc4IDAgNy4yMjUgMCA3LjIyNWgyLjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTGlzdENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDExLjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAtNGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMC00YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41ek0zLjg1NCAyLjE0NmEuNS41IDAgMCAxIDAgLjcwOGwtMS41IDEuNWEuNS41IDAgMCAxLS43MDggMGwtLjUtLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMMiAzLjI5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDggMHptMCA0YS41LjUgMCAwIDEgMCAuNzA4bC0xLjUgMS41YS41LjUgMCAwIDEtLjcwOCAwbC0uNS0uNWEuNS41IDAgMSAxIC43MDgtLjcwOEwyIDcuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOCAwem0wIDRhLjUuNSAwIDAgMSAwIC43MDhsLTEuNSAxLjVhLjUuNSAwIDAgMS0uNzA4IDBsLS41LS41YS41LjUgMCAwIDEgLjcwOC0uNzA4bC4xNDYuMTQ3IDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpc3ROZXN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuNSAxMS41QS41LjUgMCAwIDEgNSAxMWgxMGEuNS41IDAgMCAxIDAgMUg1YS41LjUgMCAwIDEtLjUtLjV6bS0yLTRBLjUuNSAwIDAgMSAzIDdoMTBhLjUuNSAwIDAgMSAwIDFIM2EuNS41IDAgMCAxLS41LS41em0tMi00QS41LjUgMCAwIDEgMSAzaDEwYS41LjUgMCAwIDEgMCAxSDFhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaXN0T2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMTEuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMC00YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS43MTMgMTEuODY1di0uNDc0SDJjLjIxNyAwIC4zNjMtLjEzNy4zNjMtLjMxNyAwLS4xODUtLjE1OC0uMzEtLjM2MS0uMzEtLjIyMyAwLS4zNjcuMTUyLS4zNzMuMzFoLS41OWMuMDE2LS40NjcuMzczLS43ODcuOTg2LS43ODcuNTg4LS4wMDIuOTU0LjI5MS45NTcuNzAzYS41OTUuNTk1IDAgMCAxLS40OTIuNTk0di4wMzNhLjYxNS42MTUgMCAwIDEgLjU2OS42MzFjLjAwMy41MzMtLjUwMi44LTEuMDUxLjgtLjY1NiAwLTEtLjM3LTEuMDA4LS43OTRoLjU4MmMuMDA4LjE3OC4xODYuMzA2LjQyMi4zMDkuMjU0IDAgLjQyNC0uMTQ1LjQyMi0uMzUtLjAwMi0uMTk1LS4xNTUtLjM0OC0uNDE0LS4zNDhoLS4zem0tLjAwNC00LjY5OWgtLjYwNHYtLjAzNWMwLS40MDguMjk1LS44NDQuOTU4LS44NDQuNTgzIDAgLjk2LjMyNi45Ni43NTYgMCAuMzg5LS4yNTcuNjE3LS40NzYuODQ4bC0uNTM3LjU3MnYuMDNoMS4wNTRWOUgxLjE0M3YtLjM5NWwuOTU3LS45OWMuMTM4LS4xNDIuMjkzLS4zMDQuMjkzLS41MDggMC0uMTgtLjE0Ny0uMzItLjM0Mi0uMzJhLjMzLjMzIDAgMCAwLS4zNDIuMzM4di4wNDF6TTIuNTY0IDVoLS42MzVWMi45MjRoLS4wMzFsLS41OTguNDJ2LS41NjdsLjYyOS0uNDQzaC42MzVWNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaXN0U3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMTEuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMC00YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4yNDIgMi4xOTRhLjI3LjI3IDAgMCAxIC41MTYgMGwuMTYyLjUzYy4wMzUuMTE1LjE0LjE5NC4yNTguMTk0aC41NTFjLjI1OSAwIC4zNy4zMzMuMTY0LjQ5M2wtLjQ2OC4zNjNhLjI3Ny4yNzcgMCAwIDAtLjA5NC4zbC4xNzMuNTY5Yy4wNzguMjU2LS4yMTMuNDYyLS40MjMuM2wtLjQxNy0uMzI0YS4yNjcuMjY3IDAgMCAwLS4zMjggMGwtLjQxNy4zMjNjLS4yMS4xNjMtLjUtLjA0My0uNDIzLS4yOTlsLjE3My0uNTdhLjI3Ny4yNzcgMCAwIDAtLjA5NC0uMjk5bC0uNDY4LS4zNjNjLS4yMDYtLjE2LS4wOTUtLjQ5My4xNjQtLjQ5M2guNTVhLjI3MS4yNzEgMCAwIDAgLjI1OS0uMTk0bC4xNjItLjUzem0wIDRhLjI3LjI3IDAgMCAxIC41MTYgMGwuMTYyLjUzYy4wMzUuMTE1LjE0LjE5NC4yNTguMTk0aC41NTFjLjI1OSAwIC4zNy4zMzMuMTY0LjQ5M2wtLjQ2OC4zNjNhLjI3Ny4yNzcgMCAwIDAtLjA5NC4zbC4xNzMuNTY5Yy4wNzguMjU1LS4yMTMuNDYyLS40MjMuM2wtLjQxNy0uMzI0YS4yNjcuMjY3IDAgMCAwLS4zMjggMGwtLjQxNy4zMjNjLS4yMS4xNjMtLjUtLjA0My0uNDIzLS4yOTlsLjE3My0uNTdhLjI3Ny4yNzcgMCAwIDAtLjA5NC0uMjk5bC0uNDY4LS4zNjNjLS4yMDYtLjE2LS4wOTUtLjQ5My4xNjQtLjQ5M2guNTVhLjI3MS4yNzEgMCAwIDAgLjI1OS0uMTk0bC4xNjItLjUzem0wIDRhLjI3LjI3IDAgMCAxIC41MTYgMGwuMTYyLjUzYy4wMzUuMTE1LjE0LjE5NC4yNTguMTk0aC41NTFjLjI1OSAwIC4zNy4zMzMuMTY0LjQ5M2wtLjQ2OC4zNjNhLjI3Ny4yNzcgMCAwIDAtLjA5NC4zbC4xNzMuNTY5Yy4wNzguMjU1LS4yMTMuNDYyLS40MjMuM2wtLjQxNy0uMzI0YS4yNjcuMjY3IDAgMCAwLS4zMjggMGwtLjQxNy4zMjNjLS4yMS4xNjMtLjUtLjA0My0uNDIzLS4yOTlsLjE3My0uNTdhLjI3Ny4yNzcgMCAwIDAtLjA5NC0uMjk5bC0uNDY4LS4zNjNjLS4yMDYtLjE2LS4wOTUtLjQ5My4xNjQtLjQ5M2guNTVhLjI3MS4yNzEgMCAwIDAgLjI1OS0uMTk0bC4xNjItLjUzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpc3RUYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDIuNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNUgyek0zIDNIMnYxaDFWM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDMuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXpNNS41IDdhLjUuNSAwIDAgMCAwIDFoOWEuNS41IDAgMCAwIDAtMWgtOXptMCA0YS41LjUgMCAwIDAgMCAxaDlhLjUuNSAwIDAgMCAwLTFoLTl6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuNSA3YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVIMmEuNS41IDAgMCAxLS41LS41Vjd6TTIgN2gxdjFIMlY3em0wIDMuNWEuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVIMnptMSAuNUgydjFoMXYtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNMaXN0VWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMTEuNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMC00YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bS0zIDFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0wIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyem0wIDRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc0xpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIuNSAxMmEuNS41IDAgMCAxIC41LS41aDEwYS41LjUgMCAwIDEgMCAxSDNhLjUuNSAwIDAgMS0uNS0uNXptMC00YS41LjUgMCAwIDEgLjUtLjVoMTBhLjUuNSAwIDAgMSAwIDFIM2EuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWgxMGEuNS41IDAgMCAxIDAgMUgzYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTG9ja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxYTIgMiAwIDAgMSAyIDJ2NEg2VjNhMiAyIDAgMCAxIDItMnptMyA2VjNhMyAzIDAgMCAwLTYgMHY0YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhMiAyIDAgMCAxIDIgMnY0SDZWM2EyIDIgMCAwIDEgMi0yem0zIDZWM2EzIDMgMCAwIDAtNiAwdjRhMiAyIDAgMCAwLTIgMnY1YTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMnpNNSA4aDZhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjlhMSAxIDAgMCAxIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNYWlsYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGEzIDMgMCAwIDAtMyAzdjZoNlY3YTMgMyAwIDAgMC0zLTN6bTAtMWg4YTQgNCAwIDAgMSA0IDR2NmExIDEgMCAwIDEtMSAxSDFhMSAxIDAgMCAxLTEtMVY3YTQgNCAwIDAgMSA0LTR6bTIuNjQ2IDFBMy45OSAzLjk5IDAgMCAxIDggN3Y2aDdWN2EzIDMgMCAwIDAtMy0zSDYuNjQ2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjc5MyA4LjVIOXYtMWg1YS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS4zNTQtLjE0NmwtLjg1My0uODU0ek01IDdjMCAuNTUyLS40NDggMC0xIDBzLTEgLjU1Mi0xIDBhMSAxIDAgMCAxIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNYWlsYm94MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDguNWgyLjc5M2wuODUzLjg1NEEuNS41IDAgMCAwIDEzIDkuNWgxYS41LjUgMCAwIDAgLjUtLjVWOGEuNS41IDAgMCAwLS41LS41SDl2MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzSDRhNCA0IDAgMCAwLTQgNHY2YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMVY3YTQgNCAwIDAgMC00LTR6TTggN2EzLjk5IDMuOTkgMCAwIDAtMS4zNTQtM0gxMmEzIDMgMCAwIDEgMyAzdjZIOFY3em0tMy40MTUuMTU3QzQuNDIgNy4wODcgNC4yMTggNyA0IDdjLS4yMTggMC0uNDIuMDg2LS41ODUuMTU3QzMuMTY0IDcuMjY0IDMgNy4zMzQgMyA3YTEgMSAwIDAgMSAyIDBjMCAuMzM0LS4xNjQuMjY0LS40MTUuMTU3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01hcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2IC41YS41LjUgMCAwIDAtLjU5OC0uNDlMMTAuNS45OSA1LjU5OC4wMWEuNS41IDAgMCAwLS4xOTYgMGwtNSAxQS41LjUgMCAwIDAgMCAxLjV2MTRhLjUuNSAwIDAgMCAuNTk4LjQ5bDQuOTAyLS45OCA0LjkwMi45OGEuNTAyLjUwMiAwIDAgMCAuMTk2IDBsNS0xQS41LjUgMCAwIDAgMTYgMTQuNVYuNXpNNSAxNC4wOVYxLjExbC41LS4xLjUuMXYxMi45OGwtLjQwMi0uMDhhLjQ5OC40OTggMCAwIDAtLjE5NiAwTDUgMTQuMDl6bTUgLjhWMS45MWwuNDAyLjA4YS41LjUgMCAwIDAgLjE5NiAwTDExIDEuOTF2MTIuOThsLS41LjEtLjUtLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNS44MTcuMTEzQS41LjUgMCAwIDEgMTYgLjV2MTRhLjUuNSAwIDAgMS0uNDAyLjQ5bC01IDFhLjUwMi41MDIgMCAwIDEtLjE5NiAwTDUuNSAxNS4wMWwtNC45MDIuOThBLjUuNSAwIDAgMSAwIDE1LjV2LTE0YS41LjUgMCAwIDEgLjQwMi0uNDlsNS0xYS41LjUgMCAwIDEgLjE5NiAwTDEwLjUuOTlsNC45MDItLjk4YS41LjUgMCAwIDEgLjQxNS4xMDN6TTEwIDEuOTFsLTQtLjh2MTIuOThsNCAuOFYxLjkxem0xIDEyLjk4IDQtLjhWMS4xMWwtNCAuOHYxMi45OHptLTYtLjhWMS4xMWwtNCAuOHYxMi45OGw0LS44elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01hcmtkb3duRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMTEuNSAxYS41LjUgMCAwIDAtLjUuNXYzLjc5M0w5Ljg1NCA4LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDIgMmEuNS41IDAgMCAwIC43MDggMGwyLTJhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTIgOS4yOTNWNS41YS41LjUgMCAwIDAtLjUtLjV6TTMuNTYgNy4wMWguMDU2bDEuNDI4IDMuMjM5aC43NzRsMS40Mi0zLjI0aC4wNTZWMTFoMS4wNzNWNS4wMDFoLTEuMmwtMS43MSAzLjg5NGgtLjAzOWwtMS43MS0zLjg5NEgyLjVWMTFoMS4wNlY3LjAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01hcmtkb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDNhMSAxIDAgMCAxIDEgMXY4YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgxMnpNMiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkuMTQ2IDguMTQ2YS41LjUgMCAwIDEgLjcwOCAwTDExLjUgOS43OTNsMS42NDYtMS42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtMiAyYS41LjUgMCAwIDEtLjcwOCAwbC0yLTJhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExLjUgNWEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLTEgMHYtNGEuNS41IDAgMCAxIC41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNTYgMTFWNy4wMWguMDU2bDEuNDI4IDMuMjM5aC43NzRsMS40Mi0zLjI0aC4wNTZWMTFoMS4wNzNWNS4wMDFoLTEuMmwtMS43MSAzLjg5NGgtLjAzOWwtMS43MS0zLjg5NEgyLjVWMTFoMS4wNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMjI1IDEuMjI3QTcuNSA3LjUgMCAwIDEgMTAuNSA4YTcuNSA3LjUgMCAwIDEtNC4yNzUgNi43NzMgNyA3IDAgMSAwIDAtMTMuNTQ2ek00LjE4Ny45NjZhOCA4IDAgMSAxIDcuNjI3IDE0LjA2OUE4IDggMCAwIDEgNC4xODYuOTY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01hc3RvZG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjE5IDEyLjE5NWMyLjAxNi0uMjQgMy43Ny0xLjQ3NSAzLjk5LTIuNjAzLjM0OC0xLjc3OC4zMi00LjMzOS4zMi00LjMzOSAwLTMuNDctMi4yODYtNC40ODgtMi4yODYtNC40ODhDMTIuMDYyLjIzOCAxMC4wODMuMDE3IDguMDI3IDBoLS4wNUM1LjkyLjAxNyAzLjk0Mi4yMzggMi43OS43NjVjMCAwLTIuMjg1IDEuMDE3LTIuMjg1IDQuNDg4bC0uMDAyLjY2MmMtLjAwNC42NC0uMDA3IDEuMzUuMDExIDIuMDkxLjA4MyAzLjM5NC42MjYgNi43NCAzLjc4IDcuNTcgMS40NTQuMzgzIDIuNzAzLjQ2MyAzLjcwOS40MDggMS44MjMtLjEgMi44NDctLjY0NyAyLjg0Ny0uNjQ3bC0uMDYtMS4zMTdzLTEuMzAzLjQxLTIuNzY3LjM2Yy0xLjQ1LS4wNS0yLjk4LS4xNTYtMy4yMTUtMS45MjhhMy42MTQgMy42MTQgMCAwIDEtLjAzMy0uNDk2czEuNDI0LjM0NiAzLjIyOC40MjhjMS4xMDMuMDUgMi4xMzctLjA2NCAzLjE4OC0uMTg5em0xLjYxMy0yLjQ3SDExLjEzdi00LjA4YzAtLjg1OS0uMzY0LTEuMjk1LTEuMDkxLTEuMjk1LS44MDQgMC0xLjIwNy41MTctMS4yMDcgMS41NDF2Mi4yMzNINy4xNjhWNS44OWMwLTEuMDI0LS40MDMtMS41NDEtMS4yMDctMS41NDEtLjcyNyAwLTEuMDkxLjQzNi0xLjA5MSAxLjI5NnY0LjA3OUgzLjE5N1Y1LjUyMmMwLS44NTkuMjItMS41NDEuNjYtMi4wNDYuNDU2LS41MDUgMS4wNTItLjc2NCAxLjc5My0uNzY0Ljg1NiAwIDEuNTA0LjMyOCAxLjkzMy45ODNMOCA0LjM5bC40MTctLjY5NWMuNDI5LS42NTUgMS4wNzctLjk4MyAxLjkzNC0uOTgzLjc0IDAgMS4zMzYuMjU5IDEuNzkxLjc2NC40NDIuNTA1LjY2MSAxLjE4Ny42NjEgMi4wNDZ2NC4yMDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTWVkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDI1IDhjMCAyLjQ4NS0yLjAyIDQuNS00LjUxMyA0LjVBNC41MDYgNC41MDYgMCAwIDEgMCA4YzAtMi40ODYgMi4wMi00LjUgNC41MTItNC41QTQuNTA2IDQuNTA2IDAgMCAxIDkuMDI1IDh6bTQuOTUgMGMwIDIuMzQtMS4wMSA0LjIzNi0yLjI1NiA0LjIzNi0xLjI0NiAwLTIuMjU2LTEuODk3LTIuMjU2LTQuMjM2IDAtMi4zNCAxLjAxLTQuMjM2IDIuMjU2LTQuMjM2IDEuMjQ2IDAgMi4yNTYgMS44OTcgMi4yNTYgNC4yMzZ6TTE2IDhjMCAyLjA5Ni0uMzU1IDMuNzk1LS43OTQgMy43OTUtLjQzOCAwLS43OTMtMS43LS43OTMtMy43OTUgMC0yLjA5Ni4zNTUtMy43OTUuNzk0LTMuNzk1LjQzOCAwIC43OTMgMS42OTkuNzkzIDMuNzk1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01lZ2FwaG9uZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMi41YTEuNSAxLjUgMCAwIDEgMyAwdjExYTEuNSAxLjUgMCAwIDEtMyAwdi0xMXptLTEgLjcyNGMtMi4wNjcuOTUtNC41MzkgMS40ODEtNyAxLjY1NnY2LjIzN2EyNS4yMjIgMjUuMjIyIDAgMCAxIDEuMDg4LjA4NWMyLjA1My4yMDQgNC4wMzguNjY4IDUuOTEyIDEuNTZWMy4yMjR6bS04IDcuODQxVjQuOTM0Yy0uNjguMDI3LTEuMzk5LjA0My0yLjAwOC4wNTNBMi4wMiAyLjAyIDAgMCAwIDAgN3YyYzAgMS4xMDYuODk2IDEuOTk2IDEuOTk0IDIuMDA5YTY4LjE0IDY4LjE0IDAgMCAxIC40OTYuMDA4IDY0IDY0IDAgMCAxIDEuNTEuMDQ4em0xLjM5IDEuMDgxYy4yODUuMDIxLjU2OS4wNDcuODUuMDc4bC4yNTMgMS42OWExIDEgMCAwIDEtLjk4MyAxLjE4N2gtLjU0OGExIDEgMCAwIDEtLjkxNi0uNTk5bC0xLjMxNC0yLjQ4YTY1LjgxIDY1LjgxIDAgMCAxIDEuNjkyLjA2NGMuMzI3LjAxNy42NS4wMzcuOTY2LjA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01lZ2FwaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyLjVhMS41IDEuNSAwIDAgMSAzIDB2MTFhMS41IDEuNSAwIDAgMS0zIDB2LS4yMTRjLTIuMTYyLTEuMjQxLTQuNDktMS44NDMtNi45MTItMi4wODNsLjQwNSAyLjcxMkExIDEgMCAwIDEgNS41MSAxNS4xaC0uNTQ4YTEgMSAwIDAgMS0uOTE2LS41OTlsLTEuODUtMy40OWE2OC4xNCA2OC4xNCAwIDAgMC0uMjAyLS4wMDNBMi4wMTQgMi4wMTQgMCAwIDEgMCA5VjdhMi4wMiAyLjAyIDAgMCAxIDEuOTkyLTIuMDEzIDc0LjY2MyA3NC42NjMgMCAwIDAgMi40ODMtLjA3NWMzLjA0My0uMTU0IDYuMTQ4LS44NDkgOC41MjUtMi4xOTlWMi41em0xIDB2MTFhLjUuNSAwIDAgMCAxIDB2LTExYS41LjUgMCAwIDAtMSAwem0tMSAxLjM1Yy0yLjM0NCAxLjIwNS01LjIwOSAxLjg0Mi04IDIuMDMzdjQuMjMzYy4xOC4wMS4zNTkuMDIyLjUzNy4wMzYgMi41NjguMTg5IDUuMDkzLjc0NCA3LjQ2MyAxLjk5M1YzLjg1em0tOSA2LjIxNXYtNC4xM2E5NS4wOSA5NS4wOSAwIDAgMS0xLjk5Mi4wNTJBMS4wMiAxLjAyIDAgMCAwIDEgN3YyYzAgLjU1LjQ0OCAxLjAwMiAxLjAwNiAxLjAwOUE2MC40OSA2MC40OSAwIDAgMSA0IDEwLjA2NXptLS42NTcuOTc1IDEuNjA5IDMuMDM3LjAxLjAyNGguNTQ4bC0uMDAyLS4wMTQtLjQ0My0yLjk2NmE2OC4wMTkgNjguMDE5IDAgMCAwLTEuNzIyLS4wODJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTWVudUFwcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxLjVBMS41IDEuNSAwIDAgMSAxLjUgMGgyQTEuNSAxLjUgMCAwIDEgNSAxLjV2MkExLjUgMS41IDAgMCAxIDMuNSA1aC0yQTEuNSAxLjUgMCAwIDEgMCAzLjV2LTJ6TTAgOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY4em0xIDN2MmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTJIMXptMTQtMVY4YTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjJoMTR6TTIgOC41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wIDRhLjUuNSAwIDAgMSAuNS0uNWg2YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTWVudUFwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuNUExLjUgMS41IDAgMCAxIDEuNSAwaDJBMS41IDEuNSAwIDAgMSA1IDEuNXYyQTEuNSAxLjUgMCAwIDEgMy41IDVoLTJBMS41IDEuNSAwIDAgMSAwIDMuNXYtMnpNMS41IDFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAuNS41aDJhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC0yek0wIDhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWOHptMSAzdjJhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0ySDF6bTE0LTFWOGExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYyaDE0ek0yIDguNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMCA0YS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01lbnVCdXR0b25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAwQTEuNSAxLjUgMCAwIDAgMCAxLjV2MkExLjUgMS41IDAgMCAwIDEuNSA1aDhBMS41IDEuNSAwIDAgMCAxMSAzLjV2LTJBMS41IDEuNSAwIDAgMCA5LjUgMGgtOHptNS45MjcgMi40MjdBLjI1LjI1IDAgMCAxIDcuNjA0IDJoLjc5MmEuMjUuMjUgMCAwIDEgLjE3Ny40MjdsLS4zOTYuMzk2YS4yNS4yNSAwIDAgMS0uMzU0IDBsLS4zOTYtLjM5NnpNMCA4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjh6bTEgM3YyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMkgxem0xNC0xVjhhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2MmgxNHpNMiA4LjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAgNGEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNZW51QnV0dG9uV2lkZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS41IDBBMS41IDEuNSAwIDAgMCAwIDEuNXYyQTEuNSAxLjUgMCAwIDAgMS41IDVoMTNBMS41IDEuNSAwIDAgMCAxNiAzLjV2LTJBMS41IDEuNSAwIDAgMCAxNC41IDBoLTEzem0xIDJoM2EuNS41IDAgMCAxIDAgMWgtM2EuNS41IDAgMCAxIDAtMXptOS45MjcuNDI3QS4yNS4yNSAwIDAgMSAxMi42MDQgMmguNzkyYS4yNS4yNSAwIDAgMSAuMTc3LjQyN2wtLjM5Ni4zOTZhLjI1LjI1IDAgMCAxLS4zNTQgMGwtLjM5Ni0uMzk2ek0wIDhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWOHptMSAzdjJhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0ySDF6bTE0LTFWOGExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXYyaDE0ek0yIDguNWEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptMCA0YS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01lbnVCdXR0b25XaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMS41QTEuNSAxLjUgMCAwIDEgMS41IDBoMTNBMS41IDEuNSAwIDAgMSAxNiAxLjV2MkExLjUgMS41IDAgMCAxIDE0LjUgNWgtMTNBMS41IDEuNSAwIDAgMSAwIDMuNXYtMnpNMS41IDFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTJhLjUuNSAwIDAgMC0uNS0uNWgtMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyLjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjV6bTEwLjgyMy4zMjMtLjM5Ni0uMzk2QS4yNS4yNSAwIDAgMSAxMi42MDQgMmguNzkyYS4yNS4yNSAwIDAgMSAuMTc3LjQyN2wtLjM5Ni4zOTZhLjI1LjI1IDAgMCAxLS4zNTQgMHpNMCA4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjh6bTEgM3YyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMkgxem0xNC0xVjhhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2MmgxNHpNMiA4LjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAgNGEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNZW51QnV0dG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMS41QTEuNSAxLjUgMCAwIDEgMS41IDBoOEExLjUgMS41IDAgMCAxIDExIDEuNXYyQTEuNSAxLjUgMCAwIDEgOS41IDVoLThBMS41IDEuNSAwIDAgMSAwIDMuNXYtMnpNMS41IDFhLjUuNSAwIDAgMC0uNS41djJhLjUuNSAwIDAgMCAuNS41aDhhLjUuNSAwIDAgMCAuNS0uNXYtMmEuNS41IDAgMCAwLS41LS41aC04elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcuODIzIDIuODIzLS4zOTYtLjM5NkEuMjUuMjUgMCAwIDEgNy42MDQgMmguNzkyYS4yNS4yNSAwIDAgMSAuMTc3LjQyN2wtLjM5Ni4zOTZhLjI1LjI1IDAgMCAxLS4zNTQgMHpNMCA4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjh6bTEgM3YyYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMkgxem0xNC0xVjhhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2MmgxNHpNMiA4LjVhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAgNGEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNZW51RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjY0Ni4xNDZhLjUuNSAwIDAgMSAuNzA4IDBMMTAuMjA3IDJIMTRhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgzLjc5M0w3LjY0Ni4xNDZ6TTEgN3YzaDE0VjdIMXptMTQtMVY0YTEgMSAwIDAgMC0xLTFoLTMuNzkzYTEgMSAwIDAgMS0uNzA3LS4yOTNMOCAxLjIwN2wtMS41IDEuNUExIDEgMCAwIDEgNS43OTMgM0gyYTEgMSAwIDAgMC0xIDF2MmgxNHptMCA1SDF2MmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTJ6TTIgNC41YS41LjUgMCAwIDEgLjUtLjVoOGEuNS41IDAgMCAxIDAgMWgtOGEuNS41IDAgMCAxLS41LS41em0wIDRhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXptMCA0YS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01lbnVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjY0NiAxNS44NTRhLjUuNSAwIDAgMCAuNzA4IDBMMTAuMjA3IDE0SDE0YTIgMiAwIDAgMCAyLTJWM2EyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoMy43OTNsMS44NTMgMS44NTR6TTEgOVY2aDE0djNIMXptMTQgMXYyYTEgMSAwIDAgMS0xIDFoLTMuNzkzYTEgMSAwIDAgMC0uNzA3LjI5M2wtMS41IDEuNS0xLjUtMS41QTEgMSAwIDAgMCA1Ljc5MyAxM0gyYTEgMSAwIDAgMS0xLTF2LTJoMTR6bTAtNUgxVjNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjJ6TTIgMTEuNWEuNS41IDAgMCAwIC41LjVoOGEuNS41IDAgMCAwIDAtMWgtOGEuNS41IDAgMCAwLS41LjV6bTAtNGEuNS41IDAgMCAwIC41LjVoMTFhLjUuNSAwIDAgMCAwLTFoLTExYS41LjUgMCAwIDAtLjUuNXptMC00YS41LjUgMCAwIDAgLjUuNWg2YS41LjUgMCAwIDAgMC0xaC02YS41LjUgMCAwIDAtLjUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNZXNzZW5nZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA3Ljc2QzAgMy4zMDEgMy40OTMgMCA4IDBzOCAzLjMwMSA4IDcuNzYtMy40OTMgNy43Ni04IDcuNzZjLS44MSAwLTEuNTg2LS4xMDctMi4zMTYtLjMwN2EuNjM5LjYzOSAwIDAgMC0uNDI3LjAzbC0xLjU4OC43MDJhLjY0LjY0IDAgMCAxLS44OTgtLjU2NmwtLjA0NC0xLjQyM2EuNjM5LjYzOSAwIDAgMC0uMjE1LS40NTZDLjk1NiAxMi4xMDggMCAxMC4wOTIgMCA3Ljc2em01LjU0Ni0xLjQ1OS0yLjM1IDMuNzI4Yy0uMjI1LjM1OC4yMTQuNzYxLjU1MS41MDZsMi41MjUtMS45MTZhLjQ4LjQ4IDAgMCAxIC41NzgtLjAwMmwxLjg2OSAxLjQwMmExLjIgMS4yIDAgMCAwIDEuNzM1LS4zMmwyLjM1LTMuNzI4Yy4yMjYtLjM1OC0uMjE0LS43NjEtLjU1MS0uNTA2TDkuNzI4IDcuMzgxYS40OC40OCAwIDAgMS0uNTc4LjAwMkw3LjI4MSA1Ljk4YTEuMiAxLjIgMCAwIDAtMS43MzUuMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTWljRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDNhMyAzIDAgMCAxIDYgMHY1YTMgMyAwIDAgMS02IDBWM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgNi41QS41LjUgMCAwIDEgNCA3djFhNCA0IDAgMCAwIDggMFY3YS41LjUgMCAwIDEgMSAwdjFhNSA1IDAgMCAxLTQuNSA0Ljk3NVYxNWgzYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDN2LTIuMDI1QTUgNSAwIDAgMSAzIDhWN2EuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01pY011dGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDhjMCAuNTY0LS4wOTQgMS4xMDctLjI2NiAxLjYxM2wtLjgxNC0uODE0QTQuMDIgNC4wMiAwIDAgMCAxMiA4VjdhLjUuNSAwIDAgMSAxIDB2MXptLTUgNGMuODE4IDAgMS41NzgtLjI0NSAyLjIxMi0uNjY3bC43MTguNzE5YTQuOTczIDQuOTczIDAgMCAxLTIuNDMuOTIzVjE1aDNhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMSAwLTFoM3YtMi4wMjVBNSA1IDAgMCAxIDMgOFY3YS41LjUgMCAwIDEgMSAwdjFhNCA0IDAgMCAwIDQgNHptMy05djQuODc5TDUuMTU4IDIuMDM3QTMuMDAxIDMuMDAxIDAgMCAxIDExIDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40ODYgMTAuNjA3IDUgNi4xMlY4YTMgMyAwIDAgMCA0LjQ4NiAyLjYwN3ptLTcuODQtOS4yNTMgMTIgMTIgLjcwOC0uNzA4LTEyLTEyLS43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01pY011dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGMwIC41NjQtLjA5NCAxLjEwNy0uMjY2IDEuNjEzbC0uODE0LS44MTRBNC4wMiA0LjAyIDAgMCAwIDEyIDhWN2EuNS41IDAgMCAxIDEgMHYxem0tNSA0Yy44MTggMCAxLjU3OC0uMjQ1IDIuMjEyLS42NjdsLjcxOC43MTlhNC45NzMgNC45NzMgMCAwIDEtMi40My45MjNWMTVoM2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxIDAtMWgzdi0yLjAyNUE1IDUgMCAwIDEgMyA4VjdhLjUuNSAwIDAgMSAxIDB2MWE0IDQgMCAwIDAgNCA0em0zLTl2NC44NzlsLTEtMVYzYTIgMiAwIDAgMC0zLjk5Ny0uMTE4bC0uODQ1LS44NDVBMy4wMDEgMy4wMDEgMCAwIDEgMTEgM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjQ4NiAxMC42MDctLjc0OC0uNzQ4QTIgMiAwIDAgMSA2IDh2LS44NzhsLTEtMVY4YTMgMyAwIDAgMCA0LjQ4NiAyLjYwN3ptLTcuODQtOS4yNTMgMTIgMTIgLjcwOC0uNzA4LTEyLTEyLS43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc01pYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgNi41QS41LjUgMCAwIDEgNCA3djFhNCA0IDAgMCAwIDggMFY3YS41LjUgMCAwIDEgMSAwdjFhNSA1IDAgMCAxLTQuNSA0Ljk3NVYxNWgzYS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEgMC0xaDN2LTIuMDI1QTUgNSAwIDAgMSAzIDhWN2EuNS41IDAgMCAxIC41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDhhMiAyIDAgMSAxLTQgMFYzYTIgMiAwIDEgMSA0IDB2NXpNOCAwYTMgMyAwIDAgMC0zIDN2NWEzIDMgMCAwIDAgNiAwVjNhMyAzIDAgMCAwLTMtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNaWNyb3NvZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40NjIgMEgwdjcuMTloNy40NjJWMHpNMTYgMEg4LjUzOHY3LjE5SDE2VjB6TTcuNDYyIDguMjExSDBWMTZoNy40NjJWOC4yMTF6bTguNTM4IDBIOC41MzhWMTZIMTZWOC4yMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTWluZWNhcnRMb2FkZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxNWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6bTAgMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6bTgtMWExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6bTAgMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6TS4xMTUgMy4xOEEuNS41IDAgMCAxIC41IDNoMTVhLjUuNSAwIDAgMSAuNDkxLjU5MmwtMS41IDhBLjUuNSAwIDAgMSAxNCAxMkgyYS41LjUgMCAwIDEtLjQ5MS0uNDA4bC0xLjUtOGEuNS41IDAgMCAxIC4xMDYtLjQxMXptLjk4Ny44MiAxLjMxMyA3aDExLjE3bDEuMzEzLTdIMS4xMDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMWEyLjQ5OCAyLjQ5OCAwIDAgMSA0IDBjLjgxOCAwIDEuNTQ1LjM5NCAyIDEgLjY3IDAgMS41NTIuNTcgMiAxaC0yYy0uMzE0IDAtLjYxMS0uMTUtLjgtLjQtLjI3NC0uMzY1LS43MS0uNi0xLjItLjYtLjMxNCAwLS42MTEtLjE1LS44LS40YTEuNDk3IDEuNDk3IDAgMCAwLTIuNCAwYy0uMTg5LjI1LS40ODYuNC0uOC40LS41MDcgMC0uOTU1LjI1MS0xLjIyOC42MzgtLjA5LjEzLS4xOTQuMjUtLjMwOC4zNjJIM2MuMTMtLjE0Ny40MDEtLjQzMi41NjItLjU0NWExLjYzIDEuNjMgMCAwIDAgLjM5My0uMzkzQTIuNDk4IDIuNDk4IDAgMCAxIDYgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNaW5lY2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE1YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnptMCAxYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHptOC0xYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnptMCAxYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHpNLjExNSAzLjE4QS41LjUgMCAwIDEgLjUgM2gxNWEuNS41IDAgMCAxIC40OTEuNTkybC0xLjUgOEEuNS41IDAgMCAxIDE0IDEySDJhLjUuNSAwIDAgMS0uNDkxLS40MDhsLTEuNS04YS41LjUgMCAwIDEgLjEwNi0uNDExem0uOTg3LjgyIDEuMzEzIDdoMTEuMTdsMS4zMTMtN0gxLjEwMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNb2lzdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDBhLjUuNSAwIDAgMCAwIDFIMTV2Mi43NWgtLjVhLjUuNSAwIDAgMCAwIDFoLjVWNy41aC0xLjVhLjUuNSAwIDAgMCAwIDFIMTV2Mi43NWgtLjVhLjUuNSAwIDAgMCAwIDFoLjVWMTVoLTEuNWEuNS41IDAgMCAwIDAgMWgyYS41LjUgMCAwIDAgLjUtLjVWLjVhLjUuNSAwIDAgMC0uNS0uNWgtMnpNNyAxLjVsLjM2NC0uMzQzYS41LjUgMCAwIDAtLjcyOCAwbC0uMDAyLjAwMi0uMDA2LjAwNy0uMDIyLjAyMy0uMDguMDg4YTI4LjQ1OCAyOC40NTggMCAwIDAtMS4yNzQgMS41MTdjLS43NjkuOTgzLTEuNzE0IDIuMzI1LTIuMzg1IDMuNzI3QzIuMzY4IDcuNTY0IDIgOC42ODIgMiA5LjczMyAyIDEyLjYxNCA0LjIxMiAxNSA3IDE1czUtMi4zODYgNS01LjI2N2MwLTEuMDUtLjM2OC0yLjE2OS0uODY3LTMuMjEyLS42NzEtMS40MDItMS42MTYtMi43NDQtMi4zODUtMy43MjdhMjguNDU4IDI4LjQ1OCAwIDAgMC0xLjM1NC0xLjYwNWwtLjAyMi0uMDIzLS4wMDYtLjAwNy0uMDAyLS4wMDFMNyAxLjV6bTAgMC0uMzY0LS4zNDNMNyAxLjV6bS0uMDE2Ljc2Nkw3IDIuMjQ3bC4wMTYuMDE5Yy4yNC4yNzQuNTcyLjY2Ny45NDQgMS4xNDQuNjExLjc4MSAxLjMyIDEuNzc2IDEuOTAxIDIuODI3SDQuMTRjLjU4LTEuMDUxIDEuMjktMi4wNDYgMS45LTIuODI3LjM3My0uNDc3LjcwNi0uODcuOTQ1LTEuMTQ0ek0zIDkuNzMzYzAtLjc1NS4yNDQtMS42MTIuNjM4LTIuNDk2aDYuNzI0Yy4zOTUuODg0LjYzOCAxLjc0MS42MzggMi40OTZDMTEgMTIuMTE3IDkuMTgyIDE0IDcgMTRzLTQtMS44ODMtNC00LjI2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNb29uRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IC4yNzhhLjc2OC43NjggMCAwIDEgLjA4Ljg1OCA3LjIwOCA3LjIwOCAwIDAgMC0uODc4IDMuNDZjMCA0LjAyMSAzLjI3OCA3LjI3NyA3LjMxOCA3LjI3Ny41MjcgMCAxLjA0LS4wNTUgMS41MzMtLjE2YS43ODcuNzg3IDAgMCAxIC44MS4zMTYuNzMzLjczMyAwIDAgMS0uMDMxLjg5M0E4LjM0OSA4LjM0OSAwIDAgMSA4LjM0NCAxNkMzLjczNCAxNiAwIDEyLjI4NiAwIDcuNzEgMCA0LjI2NiAyLjExNCAxLjMxMiA1LjEyNC4wNkEuNzUyLjc1MiAwIDAgMSA2IC4yNzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTW9vblN0YXJzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IC4yNzhhLjc2OC43NjggMCAwIDEgLjA4Ljg1OCA3LjIwOCA3LjIwOCAwIDAgMC0uODc4IDMuNDZjMCA0LjAyMSAzLjI3OCA3LjI3NyA3LjMxOCA3LjI3Ny41MjcgMCAxLjA0LS4wNTUgMS41MzMtLjE2YS43ODcuNzg3IDAgMCAxIC44MS4zMTYuNzMzLjczMyAwIDAgMS0uMDMxLjg5M0E4LjM0OSA4LjM0OSAwIDAgMSA4LjM0NCAxNkMzLjczNCAxNiAwIDEyLjI4NiAwIDcuNzEgMCA0LjI2NiAyLjExNCAxLjMxMiA1LjEyNC4wNkEuNzUyLjc1MiAwIDAgMSA2IC4yNzh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNzk0IDMuMTQ4YS4yMTcuMjE3IDAgMCAxIC40MTIgMGwuMzg3IDEuMTYyYy4xNzMuNTE4LjU3OS45MjQgMS4wOTcgMS4wOTdsMS4xNjIuMzg3YS4yMTcuMjE3IDAgMCAxIDAgLjQxMmwtMS4xNjIuMzg3YTEuNzM0IDEuNzM0IDAgMCAwLTEuMDk3IDEuMDk3bC0uMzg3IDEuMTYyYS4yMTcuMjE3IDAgMCAxLS40MTIgMGwtLjM4Ny0xLjE2MkExLjczNCAxLjczNCAwIDAgMCA5LjMxIDYuNTkzbC0xLjE2Mi0uMzg3YS4yMTcuMjE3IDAgMCAxIDAtLjQxMmwxLjE2Mi0uMzg3YTEuNzM0IDEuNzM0IDAgMCAwIDEuMDk3LTEuMDk3bC4zODctMS4xNjJ6TTEzLjg2My4wOTlhLjE0NS4xNDUgMCAwIDEgLjI3NCAwbC4yNTguNzc0Yy4xMTUuMzQ2LjM4Ni42MTcuNzMyLjczMmwuNzc0LjI1OGEuMTQ1LjE0NSAwIDAgMSAwIC4yNzRsLS43NzQuMjU4YTEuMTU2IDEuMTU2IDAgMCAwLS43MzIuNzMybC0uMjU4Ljc3NGEuMTQ1LjE0NSAwIDAgMS0uMjc0IDBsLS4yNTgtLjc3NGExLjE1NiAxLjE1NiAwIDAgMC0uNzMyLS43MzJsLS43NzQtLjI1OGEuMTQ1LjE0NSAwIDAgMSAwLS4yNzRsLjc3NC0uMjU4Yy4zNDYtLjExNS42MTctLjM4Ni43MzItLjczMkwxMy44NjMuMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNb29uU3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAuMjc4YS43NjguNzY4IDAgMCAxIC4wOC44NTggNy4yMDggNy4yMDggMCAwIDAtLjg3OCAzLjQ2YzAgNC4wMjEgMy4yNzggNy4yNzcgNy4zMTggNy4yNzcuNTI3IDAgMS4wNC0uMDU1IDEuNTMzLS4xNmEuNzg3Ljc4NyAwIDAgMSAuODEuMzE2LjczMy43MzMgMCAwIDEtLjAzMS44OTNBOC4zNDkgOC4zNDkgMCAwIDEgOC4zNDQgMTZDMy43MzQgMTYgMCAxMi4yODYgMCA3LjcxIDAgNC4yNjYgMi4xMTQgMS4zMTIgNS4xMjQuMDZBLjc1Mi43NTIgMCAwIDEgNiAuMjc4ek00Ljg1OCAxLjMxMUE3LjI2OSA3LjI2OSAwIDAgMCAxLjAyNSA3LjcxYzAgNC4wMiAzLjI3OSA3LjI3NiA3LjMxOSA3LjI3NmE3LjMxNiA3LjMxNiAwIDAgMCA1LjIwNS0yLjE2MmMtLjMzNy4wNDItLjY4LjA2My0xLjAyOS4wNjMtNC42MSAwLTguMzQzLTMuNzE0LTguMzQzLTguMjkgMC0xLjE2Ny4yNDItMi4yNzguNjgxLTMuMjg2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjc5NCAzLjE0OGEuMjE3LjIxNyAwIDAgMSAuNDEyIDBsLjM4NyAxLjE2MmMuMTczLjUxOC41NzkuOTI0IDEuMDk3IDEuMDk3bDEuMTYyLjM4N2EuMjE3LjIxNyAwIDAgMSAwIC40MTJsLTEuMTYyLjM4N2ExLjczNCAxLjczNCAwIDAgMC0xLjA5NyAxLjA5N2wtLjM4NyAxLjE2MmEuMjE3LjIxNyAwIDAgMS0uNDEyIDBsLS4zODctMS4xNjJBMS43MzQgMS43MzQgMCAwIDAgOS4zMSA2LjU5M2wtMS4xNjItLjM4N2EuMjE3LjIxNyAwIDAgMSAwLS40MTJsMS4xNjItLjM4N2ExLjczNCAxLjczNCAwIDAgMCAxLjA5Ny0xLjA5N2wuMzg3LTEuMTYyek0xMy44NjMuMDk5YS4xNDUuMTQ1IDAgMCAxIC4yNzQgMGwuMjU4Ljc3NGMuMTE1LjM0Ni4zODYuNjE3LjczMi43MzJsLjc3NC4yNThhLjE0NS4xNDUgMCAwIDEgMCAuMjc0bC0uNzc0LjI1OGExLjE1NiAxLjE1NiAwIDAgMC0uNzMyLjczMmwtLjI1OC43NzRhLjE0NS4xNDUgMCAwIDEtLjI3NCAwbC0uMjU4LS43NzRhMS4xNTYgMS4xNTYgMCAwIDAtLjczMi0uNzMybC0uNzc0LS4yNThhLjE0NS4xNDUgMCAwIDEgMC0uMjc0bC43NzQtLjI1OGMuMzQ2LS4xMTUuNjE3LS4zODYuNzMyLS43MzJMMTMuODYzLjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IC4yNzhhLjc2OC43NjggMCAwIDEgLjA4Ljg1OCA3LjIwOCA3LjIwOCAwIDAgMC0uODc4IDMuNDZjMCA0LjAyMSAzLjI3OCA3LjI3NyA3LjMxOCA3LjI3Ny41MjcgMCAxLjA0LS4wNTUgMS41MzMtLjE2YS43ODcuNzg3IDAgMCAxIC44MS4zMTYuNzMzLjczMyAwIDAgMS0uMDMxLjg5M0E4LjM0OSA4LjM0OSAwIDAgMSA4LjM0NCAxNkMzLjczNCAxNiAwIDEyLjI4NiAwIDcuNzEgMCA0LjI2NiAyLjExNCAxLjMxMiA1LjEyNC4wNkEuNzUyLjc1MiAwIDAgMSA2IC4yNzh6TTQuODU4IDEuMzExQTcuMjY5IDcuMjY5IDAgMCAwIDEuMDI1IDcuNzFjMCA0LjAyIDMuMjc5IDcuMjc2IDcuMzE5IDcuMjc2YTcuMzE2IDcuMzE2IDAgMCAwIDUuMjA1LTIuMTYyYy0uMzM3LjA0Mi0uNjguMDYzLTEuMDI5LjA2My00LjYxIDAtOC4zNDMtMy43MTQtOC4zNDMtOC4yOSAwLTEuMTY3LjI0Mi0yLjI3OC42ODEtMy4yODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTW91c2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNWE1IDUgMCAwIDEgMTAgMHY2YTUgNSAwIDAgMS0xMCAwVjV6bTUuNS0xLjVhLjUuNSAwIDAgMC0xIDB2MmEuNS41IDAgMCAwIDEgMHYtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDNhLjUuNSAwIDAgMSAuNS41djJhLjUuNSAwIDAgMS0xIDB2LTJBLjUuNSAwIDAgMSA4IDN6bTQgOGE0IDQgMCAwIDEtOCAwVjVhNCA0IDAgMSAxIDggMHY2ek04IDBhNSA1IDAgMCAwLTUgNXY2YTUgNSAwIDAgMCAxMCAwVjVhNSA1IDAgMCAwLTUtNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNb3VzZTJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNS4wMjZDNC45NTguMjg2IDMgMi41MTUgMyA1LjE4OFY1LjVoNC41Vi4wMjZ6bTEgMFY1LjVIMTN2LS4zMTJDMTMgMi41MTUgMTEuMDQyLjI4NiA4LjUuMDI2ek0xMyA2LjVIM3Y0LjMxM0MzIDEzLjY1OCA1LjIyIDE2IDggMTZzNS0yLjM0MiA1LTUuMTg4VjYuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNb3VzZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1LjE4OEMzIDIuMzQxIDUuMjIgMCA4IDBzNSAyLjM0MiA1IDUuMTg4djUuNjI1QzEzIDEzLjY1OCAxMC43OCAxNiA4IDE2cy01LTIuMzQyLTUtNS4xODhWNS4xODl6bTQuNS00LjE1NUM1LjU0MSAxLjI4OSA0IDMuMDM1IDQgNS4xODhWNS41aDMuNVYxLjAzM3ptMSAwVjUuNUgxMnYtLjMxM2MwLTIuMTUyLTEuNTQxLTMuODk4LTMuNS00LjE1NHpNMTIgNi41SDR2NC4zMTNDNCAxMy4xNDUgNS44MSAxNSA4IDE1czQtMS44NTUgNC00LjE4OFY2LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTW91c2UzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUuMDY5QTE1LjMyOCAxNS4zMjggMCAwIDAgNyAwYy0uNTkzIDAtMS4xMDQuMTU3LTEuNTI3LjQ2My0uNDE4LjMwMi0uNzE3LjcyNi0uOTMgMS4yMDgtLjM4Ni44NzMtLjUyMiAyLjAxLS41NCAzLjIwNmw0LjQ5NyAxVi4wNjl6TTMuNzEgNS44MzYgMy4zODEgNkEyLjUgMi41IDAgMCAwIDIgOC4yMzZ2Mi41NzZDMiAxMy42NTkgNC4yMiAxNiA3IDE2aDJjMi43OCAwIDUtMi4zNDIgNS01LjE4OFY4LjEyM2wtOS0ydi4wMDNsLjAwOC4zNTNjLjAwNy4zLjAyMy43MTUuMDUzIDEuMTc1LjA2My45MzcuMTg2IDIuMDA1LjQxMyAyLjY4OGEuNS41IDAgMSAxLS45NDguMzE2Yy0uMjczLS44MTctLjQtMi0uNDYyLTIuOTM3QTMwLjE2IDMwLjE2IDAgMCAxIDQgNi4wMDNjMC0uMDM0LjAwMy0uMDY3LjAxLS4xbC0uMy0uMDY3ek0xNCA3LjFWNS4xODdjMC0xLjEzLS4yNzItMi4wNDQtLjc0OC0yLjc3Mi0uNDc0LS43MjYtMS4xMy0xLjIzNS0xLjg0OS0xLjU5QTcuNDk1IDcuNDk1IDAgMCAwIDkuNS4yMTJ2NS44ODdsNC41IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTW91c2UzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMGMtLjU5MyAwLTEuMTA0LjE1Ny0xLjUyNy40NjMtLjQxOC4zMDItLjcxNy43MjYtLjkzIDEuMjA4QzQuMTIzIDIuNjE5IDQgMy44NzkgNCA1LjE4N3YuNTA0TDMuMzgyIDZBMi41IDIuNSAwIDAgMCAyIDguMjM2djIuNTc2QzIgMTMuNjU5IDQuMjIgMTYgNyAxNmgyYzIuNzggMCA1LTIuMzQyIDUtNS4xODhWNy41MWEuNzEuNzEgMCAwIDAgMC0uMDJWNS4xODZjMC0xLjEzLS4yNzItMi4wNDQtLjc0OC0yLjc3Mi0uNDc0LS43MjYtMS4xMy0xLjIzNS0xLjg0OS0xLjU5QzkuOTgxLjEyMyA4LjI2IDAgNyAwem0yLjUgNi4wOTlWMS4yMzJjLjUxLjExIDEuMDA4LjI2NyAxLjQ2LjQ5LjU5Ni4yOTMgMS4wOTkuNjk0IDEuNDU1IDEuMjQuMzU1LjU0My41ODUgMS4yNjIuNTg1IDIuMjI1djEuNjlsLTMuNS0uNzc4em0tMS01LjAyNXY0LjgwM0w1IDUuMDk5Yy4wMDYtMS4yNDIuMTM0LTIuMjkzLjQ1Ny0zLjAyNC4xNjItLjM2Ni4zNjMtLjYzLjYwMi0uODAxQzYuMjkyIDEuMTA1IDYuNTkzIDEgNyAxYy40NjggMCAuOTguMDE4IDEuNS4wNzR6TTUgNi4xMjQgMTMgNy45djIuOTEyQzEzIDEzLjE0NSAxMS4xOSAxNSA5IDE1SDdjLTIuMTkgMC00LTEuODU1LTQtNC4xODhWOC4yMzZhMS41IDEuNSAwIDAgMSAuODMtMS4zNDJsLjE4Ny0uMDkzYy4wMS4yNjUuMDI0LjU4LjA0Ny45Mi4wNjIuOTM4LjE5IDIuMTIuNDYyIDIuOTM3YS41LjUgMCAxIDAgLjk0OC0uMzE2Yy0uMjI3LS42ODMtLjM1LTEuNzUtLjQxMy0yLjY4OGEyOS4xNyAyOS4xNyAwIDAgMS0uMDYtMS41Mjh2LS4wMDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTXVzaWNOb3RlQmVhbWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTNjMCAxLjEwNS0xLjEyIDItMi41IDJTMSAxNC4xMDUgMSAxM2MwLTEuMTA0IDEuMTItMiAyLjUtMnMyLjUuODk2IDIuNSAyem05LTJjMCAxLjEwNS0xLjEyIDItMi41IDJzLTIuNS0uODk1LTIuNS0yIDEuMTItMiAyLjUtMiAyLjUuODk1IDIuNSAyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNCAxMVYyaDF2OWgtMXpNNiAzdjEwSDVWM2gxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMi45MDVhMSAxIDAgMCAxIC45LS45OTVsOC0uOGExIDEgMCAwIDEgMS4xLjk5NVYzTDUgNFYyLjkwNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNdXNpY05vdGVMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzYzAgMS4xMDUtMS4xMiAyLTIuNSAyUzcgMTQuMTA1IDcgMTNzMS4xMi0yIDIuNS0yIDIuNS44OTUgMi41IDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyIDN2MTBoLTFWM2gxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIuODJhMSAxIDAgMCAxIC44MDQtLjk4bDMtLjZBMSAxIDAgMCAxIDE2IDIuMjJWNGwtNSAxVjIuODJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgMTEuNWEuNS41IDAgMCAxIC41LS41SDRhLjUuNSAwIDAgMSAwIDFILjVhLjUuNSAwIDAgMS0uNS0uNXptMC00QS41LjUgMCAwIDEgLjUgN0g4YS41LjUgMCAwIDEgMCAxSC41YS41LjUgMCAwIDEtLjUtLjV6bTAtNEEuNS41IDAgMCAxIC41IDNIOGEuNS41IDAgMCAxIDAgMUguNWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc011c2ljTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEzYzAgMS4xMDUtMS4xMiAyLTIuNSAyUzQgMTQuMTA1IDQgMTNzMS4xMi0yIDIuNS0yIDIuNS44OTUgMi41IDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkgM3YxMEg4VjNoMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDIuODJhMSAxIDAgMCAxIC44MDQtLjk4bDMtLjZBMSAxIDAgMCAxIDEzIDIuMjJWNEw4IDVWMi44MnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNNdXNpY1BsYXllckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMmEyIDIgMCAwIDAtMi0ySDR6bTEgMmg2YTEgMSAwIDAgMSAxIDF2Mi41YTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMXptMyAxMmEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTXVzaWNQbGF5ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAzYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTFWM3ptMSAwdjNoNlYzSDV6bTMgOWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTFhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwem0tMyAyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptMi0xYTEgMSAwIDAgMC0xIDF2MTJhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMi41QTEuNSAxLjUgMCAwIDEgMS41IDFoMTFBMS41IDEuNSAwIDAgMSAxNCAyLjV2MTAuNTI4YzAgLjMtLjA1LjY1NC0uMjM4Ljk3MmguNzM4YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMSAxIDB2OWExLjUgMS41IDAgMCAxLTEuNSAxLjVIMS40OTdBMS40OTcgMS40OTcgMCAwIDEgMCAxMy41di0xMXpNMTIgMTRjLjM3IDAgLjY1NC0uMjExLjg1My0uNDQxLjA5Mi0uMTA2LjE0Ny0uMjc5LjE0Ny0uNTMxVjIuNWEuNS41IDAgMCAwLS41LS41aC0xMWEuNS41IDAgMCAwLS41LjV2MTFjMCAuMjc4LjIyMy41LjQ5Ny41SDEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgM2gxMHYySDJWM3ptMCAzaDR2M0gyVjZ6bTAgNGg0djFIMnYtMXptMCAyaDR2MUgydi0xem01LTZoMnYxSDdWNnptMyAwaDJ2MWgtMlY2ek03IDhoMnYxSDdWOHptMyAwaDJ2MWgtMlY4em0tMyAyaDJ2MUg3di0xem0zIDBoMnYxaC0ydi0xem0tMyAyaDJ2MUg3di0xem0zIDBoMnYxaC0ydi0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc05vZGVNaW51c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2IDhhNSA1IDAgMCAxLTkuOTc1LjVINEExLjUgMS41IDAgMCAxIDIuNSAxMGgtMUExLjUgMS41IDAgMCAxIDAgOC41di0xQTEuNSAxLjUgMCAwIDEgMS41IDZoMUExLjUgMS41IDAgMCAxIDQgNy41aDIuMDI1QTUgNSAwIDAgMSAxNiA4em0tMiAwYS41LjUgMCAwIDAtLjUtLjVoLTVhLjUuNSAwIDAgMCAwIDFoNUEuNS41IDAgMCAwIDE0IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTm9kZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMSA0YTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOHpNNi4wMjUgNy41YTUgNSAwIDEgMSAwIDFINEExLjUgMS41IDAgMCAxIDIuNSAxMGgtMUExLjUgMS41IDAgMCAxIDAgOC41di0xQTEuNSAxLjUgMCAwIDEgMS41IDZoMUExLjUgMS41IDAgMCAxIDQgNy41aDIuMDI1ek0xLjUgN2EuNS41IDAgMCAwLS41LjV2MWEuNS41IDAgMCAwIC41LjVoMWEuNS41IDAgMCAwIC41LS41di0xYS41LjUgMCAwIDAtLjUtLjVoLTF6TTggOGEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVBLjUuNSAwIDAgMSA4IDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTm9kZVBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEzYTUgNSAwIDEgMC00Ljk3NS01LjVINEExLjUgMS41IDAgMCAwIDIuNSA2aC0xQTEuNSAxLjUgMCAwIDAgMCA3LjV2MUExLjUgMS41IDAgMCAwIDEuNSAxMGgxQTEuNSAxLjUgMCAwIDAgNCA4LjVoMi4wMjVBNSA1IDAgMCAwIDExIDEzem0uNS03LjV2MmgyYS41LjUgMCAwIDEgMCAxaC0ydjJhLjUuNSAwIDAgMS0xIDB2LTJoLTJhLjUuNSAwIDAgMSAwLTFoMnYtMmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNOb2RlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEgNGE0IDQgMCAxIDAgMCA4IDQgNCAwIDAgMCAwLTh6TTYuMDI1IDcuNWE1IDUgMCAxIDEgMCAxSDRBMS41IDEuNSAwIDAgMSAyLjUgMTBoLTFBMS41IDEuNSAwIDAgMSAwIDguNXYtMUExLjUgMS41IDAgMCAxIDEuNSA2aDFBMS41IDEuNSAwIDAgMSA0IDcuNWgyLjAyNXpNMTEgNWEuNS41IDAgMCAxIC41LjV2MmgyYS41LjUgMCAwIDEgMCAxaC0ydjJhLjUuNSAwIDAgMS0xIDB2LTJoLTJhLjUuNSAwIDAgMSAwLTFoMnYtMkEuNS41IDAgMCAxIDExIDV6TTEuNSA3YS41LjUgMCAwIDAtLjUuNXYxYS41LjUgMCAwIDAgLjUuNWgxYS41LjUgMCAwIDAgLjUtLjV2LTFhLjUuNSAwIDAgMC0uNS0uNWgtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNOdXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTggMWExIDEgMCAwIDAtLjg2OC41MDRsLTMuNDI4IDZhMSAxIDAgMCAwIDAgLjk5MmwzLjQyOCA2QTEgMSAwIDAgMCA0LjU4IDE1aDYuODRhMSAxIDAgMCAwIC44NjgtLjUwNGwzLjQyOS02YTEgMSAwIDAgMCAwLS45OTJsLTMuNDI5LTZBMSAxIDAgMCAwIDExLjQyIDFINC41OHptNS4wMTggOS42OTZhMyAzIDAgMSAxLTMtNS4xOTYgMyAzIDAgMCAxIDMgNS4xOTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzTnV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjQyIDIgMy40MjggNi0zLjQyOCA2SDQuNThMMS4xNTIgOCA0LjU4IDJoNi44NHpNNC41OCAxYTEgMSAwIDAgMC0uODY4LjUwNGwtMy40MjggNmExIDEgMCAwIDAgMCAuOTkybDMuNDI4IDZBMSAxIDAgMCAwIDQuNTggMTVoNi44NGExIDEgMCAwIDAgLjg2OC0uNTA0bDMuNDI5LTZhMSAxIDAgMCAwIDAtLjk5MmwtMy40MjktNkExIDEgMCAwIDAgMTEuNDIgMUg0LjU4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODQ4IDUuOTMzYTIuNSAyLjUgMCAxIDAgMi41IDQuMzMgMi41IDIuNSAwIDAgMC0yLjUtNC4zM3ptLTEuNzggMy45MTVhMy41IDMuNSAwIDEgMSA2LjA2MS0zLjUgMy41IDMuNSAwIDAgMS02LjA2MiAzLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzT2N0YWdvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMTA3IDBhLjUuNSAwIDAgMSAuMzUzLjE0Nmw0LjM5NCA0LjM5NGEuNS41IDAgMCAxIC4xNDYuMzUzdjYuMjE0YS41LjUgMCAwIDEtLjE0Ni4zNTNsLTQuMzk0IDQuMzk0YS41LjUgMCAwIDEtLjM1My4xNDZINC44OTNhLjUuNSAwIDAgMS0uMzUzLS4xNDZMLjE0NiAxMS40NkEuNS41IDAgMCAxIDAgMTEuMTA3VjQuODkzYS41LjUgMCAwIDEgLjE0Ni0uMzUzTDQuNTQuMTQ2QS41LjUgMCAwIDEgNC44OTMgMGg2LjIxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNPY3RhZ29uSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjU0LjE0NkEuNS41IDAgMCAxIDQuODkzIDBoNi4yMTRhLjUuNSAwIDAgMSAuMzUzLjE0Nmw0LjM5NCA0LjM5NGEuNS41IDAgMCAxIC4xNDYuMzUzdjYuMjE0YS41LjUgMCAwIDEtLjE0Ni4zNTNsLTQuMzk0IDQuMzk0YS41LjUgMCAwIDEtLjM1My4xNDZINC44OTNhLjUuNSAwIDAgMS0uMzUzLS4xNDZMLjE0NiAxMS40NkEuNS41IDAgMCAxIDAgMTEuMTA3VjQuODkzYS41LjUgMCAwIDEgLjE0Ni0uMzUzTDQuNTQuMTQ2ek04IDE1aDIuOWw0LjEtNC4xVjUuMUwxMC45IDFIOHYxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNPY3RhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTQuMTQ2QS41LjUgMCAwIDEgNC44OTMgMGg2LjIxNGEuNS41IDAgMCAxIC4zNTMuMTQ2bDQuMzk0IDQuMzk0YS41LjUgMCAwIDEgLjE0Ni4zNTN2Ni4yMTRhLjUuNSAwIDAgMS0uMTQ2LjM1M2wtNC4zOTQgNC4zOTRhLjUuNSAwIDAgMS0uMzUzLjE0Nkg0Ljg5M2EuNS41IDAgMCAxLS4zNTMtLjE0NkwuMTQ2IDExLjQ2QS41LjUgMCAwIDEgMCAxMS4xMDdWNC44OTNhLjUuNSAwIDAgMSAuMTQ2LS4zNTNMNC41NC4xNDZ6TTUuMSAxIDEgNS4xdjUuOEw1LjEgMTVoNS44bDQuMS00LjFWNS4xTDEwLjkgMUg1LjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzT3B0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMi41YS41LjUgMCAwIDEgLjUtLjVoMy43OTdhLjUuNSAwIDAgMSAuNDM5LjI2TDExIDEzaDMuNWEuNS41IDAgMCAxIDAgMWgtMy43OTdhLjUuNSAwIDAgMS0uNDM5LS4yNkw1IDNIMS41YS41LjUgMCAwIDEtLjUtLjV6bTEwIDBhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzT3V0bGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMzQgMi45OTRjLjI3NS0uMzM4LjY4LS40OTQgMS4wNzQtLjQ5NGg3LjE3MmMuMzkzIDAgLjc5OC4xNTYgMS4wNzQuNDk0LjU3OC43MDggMS44NCAyLjUzNCAxLjg0IDUuMDA2IDAgMi40NzItMS4yNjIgNC4yOTctMS44NCA1LjAwNi0uMjc2LjMzOC0uNjguNDk0LTEuMDc0LjQ5NEg0LjQxNGMtLjM5NCAwLS43OTktLjE1Ni0xLjA3NC0uNDk0QzIuNzYyIDEyLjI5NyAxLjUgMTAuNDcyIDEuNSA4YzAtMi40NzIgMS4yNjItNC4yOTcgMS44NC01LjAwNnptMS4wNzQuNTA2YS4zNzYuMzc2IDAgMCAwLS4yOTkuMTI2QzMuNTk5IDQuMjU5IDIuNSA1Ljg2MyAyLjUgOGMwIDIuMTM3IDEuMDk5IDMuNzQgMS42MTUgNC4zNzQuMDYuMDczLjE2My4xMjYuMy4xMjZoNy4xN2MuMTM3IDAgLjI0LS4wNTMuMy0uMTI2LjUxNi0uNjMzIDEuNjE1LTIuMjM3IDEuNjE1LTQuMzc0IDAtMi4xMzctMS4wOTktMy43NC0xLjYxNS00LjM3NGEuMzc2LjM3NiAwIDAgMC0uMy0uMTI2aC03LjE3elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNS41YS41LjUgMCAwIDEgLjUuNXYxLjVhLjUuNSAwIDAgMS0xIDBWNmEuNS41IDAgMCAxIC41LS41em00IDBhLjUuNSAwIDAgMSAuNS41djEuNWEuNS41IDAgMCAxLTEgMFY2YS41LjUgMCAwIDEgLjUtLjV6TTcgMTB2MWgydi0xYTEgMSAwIDAgMC0yIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGFpbnRCdWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4xOTIgMi43OGMtLjQ1OC0uNjc3LS45MjctMS4yNDgtMS4zNS0xLjY0M2EyLjk3MiAyLjk3MiAwIDAgMC0uNzEtLjUxNWMtLjIxNy0uMTA0LS41Ni0uMjA1LS44ODItLjAyLS4zNjcuMjEzLS40MjcuNjMtLjQzLjg5Ni0uMDAzLjMwNC4wNjQuNjY0LjE3MyAxLjA0NC4xOTYuNjg3LjU1NiAxLjUyOCAxLjAzNSAyLjQwMkwuNzUyIDguMjJjLS4yNzcuMjc3LS4yNjkuNjU2LS4yMTguOTE4LjA1NS4yODMuMTg3LjU5My4zNi45MDMuMzQ4LjYyNy45MiAxLjM2MSAxLjYyNiAyLjA2OC43MDcuNzA3IDEuNDQxIDEuMjc4IDIuMDY4IDEuNjI2LjMxLjE3My42Mi4zMDUuOTAzLjM2LjI2Mi4wNS42NC4wNTkuOTE4LS4yMThsNS42MTUtNS42MTVjLjExOC4yNTcuMDkyLjUxMi4wNS45MzktLjAzLjI5Mi0uMDY4LjY2NS0uMDczIDEuMTc2di4xMjNoLjAwM2ExIDEgMCAwIDAgMS45OTMgMEgxNHYtLjA1N2ExLjAxIDEuMDEgMCAwIDAtLjAwNC0uMTE3Yy0uMDU1LTEuMjUtLjctMi43MzgtMS44Ni0zLjQ5NGE0LjMyMiA0LjMyMiAwIDAgMC0uMjExLS40MzRjLS4zNDktLjYyNi0uOTItMS4zNi0xLjYyNy0yLjA2Ny0uNzA3LS43MDctMS40NDEtMS4yNzktMi4wNjgtMS42MjctLjMxLS4xNzItLjYyLS4zMDQtLjkwMy0uMzYtLjI2Mi0uMDUtLjY0LS4wNTgtLjkxOC4yMTlsLS4yMTcuMjE2ek00LjE2IDEuODY3Yy4zODEuMzU2Ljg0NC45MjIgMS4zMTEgMS42MzJsLS43MDQuNzA1Yy0uMzgyLS43MjctLjY2LTEuNDAyLS44MTMtMS45MzhhMy4yODMgMy4yODMgMCAwIDEtLjEzMS0uNjczYy4wOTEuMDYxLjIwNC4xNS4zMzcuMjc0em0uMzk0IDMuOTY1Yy41NC44NTIgMS4xMDcgMS41NjcgMS42MDcgMi4wMzNhLjUuNSAwIDEgMCAuNjgyLS43MzJjLS40NTMtLjQyMi0xLjAxNy0xLjEzNi0xLjU2NC0yLjAyN2wxLjA4OC0xLjA4OGMuMDU0LjEyLjExNS4yNDMuMTgzLjM2NS4zNDkuNjI3LjkyIDEuMzYxIDEuNjI3IDIuMDY4LjcwNi43MDcgMS40NCAxLjI3OCAyLjA2OCAxLjYyNi4xMjIuMDY4LjI0NC4xMy4zNjUuMTgzbC00Ljg2MSA0Ljg2MmEuNTcxLjU3MSAwIDAgMS0uMDY4LS4wMWMtLjEzNy0uMDI3LS4zNDItLjEwNC0uNjA4LS4yNTItLjUyNC0uMjkyLTEuMTg2LS44LTEuODQ2LTEuNDYtLjY2LS42Ni0xLjE2OC0xLjMyLTEuNDYtMS44NDYtLjE0Ny0uMjY1LS4yMjUtLjQ3LS4yNTEtLjYwN2EuNTczLjU3MyAwIDAgMS0uMDEtLjA2OGwzLjA0OC0zLjA0N3ptMi44Ny0xLjkzNWEyLjQ0IDIuNDQgMCAwIDEtLjI0MS0uNTYxYy4xMzUuMDMzLjMyNC4xMS41NjIuMjQxLjUyNC4yOTIgMS4xODYuOCAxLjg0NiAxLjQ2LjQ1LjQ1LjgzLjkwMSAxLjExOCAxLjMxYTMuNDk3IDMuNDk3IDAgMCAwLTEuMDY2LjA5MSAxMS4yNyAxMS4yNyAwIDAgMS0uNzYtLjY5NGMtLjY2LS42Ni0xLjE2Ny0xLjMyMi0xLjQ1OC0xLjg0N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYWxldHRlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40MzMgMTAuMDdDMTQuMTMzIDEwLjU4NSAxNiAxMS4xNSAxNiA4YTggOCAwIDEgMC04IDhjMS45OTYgMCAxLjgyNi0xLjUwNCAxLjY0OS0zLjA4LS4xMjQtMS4xMDEtLjI1Mi0yLjIzNy4zNTEtMi45Mi40NjUtLjUyNyAxLjQyLS4yMzcgMi40MzMuMDd6TTggNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptNC41IDNhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6TTUgNi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem0uNSA2LjVhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGFsZXR0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDVhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6bTQgM2ExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM3pNNS41IDdhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bS41IDZhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOGMwIDMuMTUtMS44NjYgMi41ODUtMy41NjcgMi4wN0MxMS40MiA5Ljc2MyAxMC40NjUgOS40NzMgMTAgMTBjLS42MDMuNjgzLS40NzUgMS44MTktLjM1MSAyLjkyQzkuODI2IDE0LjQ5NSA5Ljk5NiAxNiA4IDE2YTggOCAwIDEgMSA4LTh6bS04IDdjLjYxMSAwIC42NTQtLjE3MS42NTUtLjE3Ni4wNzgtLjE0Ni4xMjQtLjQ2NC4wNy0xLjExOS0uMDE0LS4xNjgtLjAzNy0uMzctLjA2MS0uNTkxLS4wNTItLjQ2NC0uMTEyLTEuMDA1LS4xMTgtMS40NjItLjAxLS43MDcuMDgzLTEuNjEuNzA0LTIuMzE0LjM2OS0uNDE3Ljg0NS0uNTc4IDEuMjcyLS42MTguNDA0LS4wMzguODEyLjAyNiAxLjE2LjEwNC4zNDMuMDc3LjcwMi4xODYgMS4wMjUuMjg0bC4wMjguMDA4Yy4zNDYuMTA1LjY1OC4xOTkuOTUzLjI2Ni42NTMuMTQ4LjkwNC4wODMuOTkxLjAyNEMxNC43MTcgOS4zOCAxNSA5LjE2MSAxNSA4YTcgNyAwIDEgMC03IDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGFsZXR0ZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAuNUEuNS41IDAgMCAxIC41IDBoNWEuNS41IDAgMCAxIC41LjV2NS4yNzdsNC4xNDctNC4xMzFhLjUuNSAwIDAgMSAuNzA3IDBsMy41MzUgMy41MzZhLjUuNSAwIDAgMSAwIC43MDhMMTAuMjYxIDEwSDE1LjVhLjUuNSAwIDAgMSAuNS41djVhLjUuNSAwIDAgMS0uNS41SDNhMi45OSAyLjk5IDAgMCAxLTIuMTIxLS44NzlBMi45OSAyLjk5IDAgMCAxIDAgMTMuMDQ0bTYtLjIxIDcuMzI4LTcuMy0yLjgyOS0yLjgyOEw2IDcuMTg4djUuNjQ3ek00LjUgMTNhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDB6TTE1IDE1di00SDkuMjU4bC00LjAxNSA0SDE1ek0wIC41djEyLjQ5NVYuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyLjk5NVYxM2EzLjA3IDMuMDcgMCAwIDAgMC0uMDA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BhcGVyY2xpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgM2EyLjUgMi41IDAgMCAxIDUgMHY5YTEuNSAxLjUgMCAwIDEtMyAwVjVhLjUuNSAwIDAgMSAxIDB2N2EuNS41IDAgMCAwIDEgMFYzYTEuNSAxLjUgMCAxIDAtMyAwdjlhMi41IDIuNSAwIDAgMCA1IDBWNWEuNS41IDAgMCAxIDEgMHY3YTMuNSAzLjUgMCAxIDEtNyAwVjN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGFyYWdyYXBoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgMTVhLjUuNSAwIDAgMS0uNS0uNVYySDl2MTIuNWEuNS41IDAgMCAxLTEgMFY5SDdhNCA0IDAgMSAxIDAtOGg1LjVhLjUuNSAwIDAgMSAwIDFIMTF2MTIuNWEuNS41IDAgMCAxLS41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGF0Y2hDaGVja0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDY3Ljg3YTIuODkgMi44OSAwIDAgMC00LjEzNCAwbC0uNjIyLjYzOC0uODktLjAxMWEyLjg5IDIuODkgMCAwIDAtMi45MjQgMi45MjRsLjAxLjg5LS42MzYuNjIyYTIuODkgMi44OSAwIDAgMCAwIDQuMTM0bC42MzcuNjIyLS4wMTEuODlhMi44OSAyLjg5IDAgMCAwIDIuOTI0IDIuOTI0bC44OS0uMDEuNjIyLjYzNmEyLjg5IDIuODkgMCAwIDAgNC4xMzQgMGwuNjIyLS42MzcuODkuMDExYTIuODkgMi44OSAwIDAgMCAyLjkyNC0yLjkyNGwtLjAxLS44OS42MzYtLjYyMmEyLjg5IDIuODkgMCAwIDAgMC00LjEzNGwtLjYzNy0uNjIyLjAxMS0uODlhMi44OSAyLjg5IDAgMCAwLTIuOTI0LTIuOTI0bC0uODkuMDEtLjYyMi0uNjM2em0uMjg3IDUuOTg0LTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3IDguNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGF0Y2hDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuMzU0IDYuMTQ2YS41LjUgMCAwIDEgMCAuNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMNyA4Ljc5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC4yNzMgMi41MTMtLjkyMS0uOTQ0LjcxNS0uNjk4LjYyMi42MzcuODktLjAxMWEyLjg5IDIuODkgMCAwIDEgMi45MjQgMi45MjRsLS4wMS44OS42MzYuNjIyYTIuODkgMi44OSAwIDAgMSAwIDQuMTM0bC0uNjM3LjYyMi4wMTEuODlhMi44OSAyLjg5IDAgMCAxLTIuOTI0IDIuOTI0bC0uODktLjAxLS42MjIuNjM2YTIuODkgMi44OSAwIDAgMS00LjEzNCAwbC0uNjIyLS42MzctLjg5LjAxMWEyLjg5IDIuODkgMCAwIDEtMi45MjQtMi45MjRsLjAxLS44OS0uNjM2LS42MjJhMi44OSAyLjg5IDAgMCAxIDAtNC4xMzRsLjYzNy0uNjIyLS4wMTEtLjg5YTIuODkgMi44OSAwIDAgMSAyLjkyNC0yLjkyNGwuODkuMDEuNjIyLS42MzZhMi44OSAyLjg5IDAgMCAxIDQuMTM0IDBsLS43MTUuNjk4YTEuODkgMS44OSAwIDAgMC0yLjcwNCAwbC0uOTIuOTQ0LTEuMzItLjAxNmExLjg5IDEuODkgMCAwIDAtMS45MTEgMS45MTJsLjAxNiAxLjMxOC0uOTQ0LjkyMWExLjg5IDEuODkgMCAwIDAgMCAyLjcwNGwuOTQ0LjkyLS4wMTYgMS4zMmExLjg5IDEuODkgMCAwIDAgMS45MTIgMS45MTFsMS4zMTgtLjAxNi45MjEuOTQ0YTEuODkgMS44OSAwIDAgMCAyLjcwNCAwbC45Mi0uOTQ0IDEuMzIuMDE2YTEuODkgMS44OSAwIDAgMCAxLjkxMS0xLjkxMmwtLjAxNi0xLjMxOC45NDQtLjkyMWExLjg5IDEuODkgMCAwIDAgMC0yLjcwNGwtLjk0NC0uOTIuMDE2LTEuMzJhMS44OSAxLjg5IDAgMCAwLTEuOTEyLTEuOTExbC0xLjMxOC4wMTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGF0Y2hFeGNsYW1hdGlvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDY3Ljg3YTIuODkgMi44OSAwIDAgMC00LjEzNCAwbC0uNjIyLjYzOC0uODktLjAxMWEyLjg5IDIuODkgMCAwIDAtMi45MjQgMi45MjRsLjAxLjg5LS42MzYuNjIyYTIuODkgMi44OSAwIDAgMCAwIDQuMTM0bC42MzcuNjIyLS4wMTEuODlhMi44OSAyLjg5IDAgMCAwIDIuOTI0IDIuOTI0bC44OS0uMDEuNjIyLjYzNmEyLjg5IDIuODkgMCAwIDAgNC4xMzQgMGwuNjIyLS42MzcuODkuMDExYTIuODkgMi44OSAwIDAgMCAyLjkyNC0yLjkyNGwtLjAxLS44OS42MzYtLjYyMmEyLjg5IDIuODkgMCAwIDAgMC00LjEzNGwtLjYzNy0uNjIyLjAxMS0uODlhMi44OSAyLjg5IDAgMCAwLTIuOTI0LTIuOTI0bC0uODkuMDEtLjYyMi0uNjM2ek04IDRjLjUzNSAwIC45NTQuNDYyLjkuOTk1bC0uMzUgMy41MDdhLjU1Mi41NTIgMCAwIDEtMS4xIDBMNy4xIDQuOTk1QS45MDUuOTA1IDAgMCAxIDggNHptLjAwMiA2YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYXRjaEV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDAxIDExYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMHpNNy4xIDQuOTk1YS45MDUuOTA1IDAgMSAxIDEuOCAwbC0uMzUgMy41MDdhLjU1My41NTMgMCAwIDEtMS4xIDBMNy4xIDQuOTk1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjI3MyAyLjUxMy0uOTIxLS45NDQuNzE1LS42OTguNjIyLjYzNy44OS0uMDExYTIuODkgMi44OSAwIDAgMSAyLjkyNCAyLjkyNGwtLjAxLjg5LjYzNi42MjJhMi44OSAyLjg5IDAgMCAxIDAgNC4xMzRsLS42MzcuNjIyLjAxMS44OWEyLjg5IDIuODkgMCAwIDEtMi45MjQgMi45MjRsLS44OS0uMDEtLjYyMi42MzZhMi44OSAyLjg5IDAgMCAxLTQuMTM0IDBsLS42MjItLjYzNy0uODkuMDExYTIuODkgMi44OSAwIDAgMS0yLjkyNC0yLjkyNGwuMDEtLjg5LS42MzYtLjYyMmEyLjg5IDIuODkgMCAwIDEgMC00LjEzNGwuNjM3LS42MjItLjAxMS0uODlhMi44OSAyLjg5IDAgMCAxIDIuOTI0LTIuOTI0bC44OS4wMS42MjItLjYzNmEyLjg5IDIuODkgMCAwIDEgNC4xMzQgMGwtLjcxNS42OThhMS44OSAxLjg5IDAgMCAwLTIuNzA0IDBsLS45Mi45NDQtMS4zMi0uMDE2YTEuODkgMS44OSAwIDAgMC0xLjkxMSAxLjkxMmwuMDE2IDEuMzE4LS45NDQuOTIxYTEuODkgMS44OSAwIDAgMCAwIDIuNzA0bC45NDQuOTItLjAxNiAxLjMyYTEuODkgMS44OSAwIDAgMCAxLjkxMiAxLjkxMWwxLjMxOC0uMDE2LjkyMS45NDRhMS44OSAxLjg5IDAgMCAwIDIuNzA0IDBsLjkyLS45NDQgMS4zMi4wMTZhMS44OSAxLjg5IDAgMCAwIDEuOTExLTEuOTEybC0uMDE2LTEuMzE4Ljk0NC0uOTIxYTEuODkgMS44OSAwIDAgMCAwLTIuNzA0bC0uOTQ0LS45Mi4wMTYtMS4zMmExLjg5IDEuODkgMCAwIDAtMS45MTItMS45MTFsLTEuMzE4LjAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYXRjaE1pbnVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wNjcuODdhMi44OSAyLjg5IDAgMCAwLTQuMTM0IDBsLS42MjIuNjM4LS44OS0uMDExYTIuODkgMi44OSAwIDAgMC0yLjkyNCAyLjkyNGwuMDEuODktLjYzNi42MjJhMi44OSAyLjg5IDAgMCAwIDAgNC4xMzRsLjYzNy42MjItLjAxMS44OWEyLjg5IDIuODkgMCAwIDAgMi45MjQgMi45MjRsLjg5LS4wMS42MjIuNjM2YTIuODkgMi44OSAwIDAgMCA0LjEzNCAwbC42MjItLjYzNy44OS4wMTFhMi44OSAyLjg5IDAgMCAwIDIuOTI0LTIuOTI0bC0uMDEtLjg5LjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMCAwLTQuMTM0bC0uNjM3LS42MjIuMDExLS44OWEyLjg5IDIuODkgMCAwIDAtMi45MjQtMi45MjRsLS44OS4wMS0uNjIyLS42MzZ6TTYgNy41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxIDAtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYXRjaE1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjUgOGEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAwIDFINmEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjI3MyAyLjUxMy0uOTIxLS45NDQuNzE1LS42OTguNjIyLjYzNy44OS0uMDExYTIuODkgMi44OSAwIDAgMSAyLjkyNCAyLjkyNGwtLjAxLjg5LjYzNi42MjJhMi44OSAyLjg5IDAgMCAxIDAgNC4xMzRsLS42MzcuNjIyLjAxMS44OWEyLjg5IDIuODkgMCAwIDEtMi45MjQgMi45MjRsLS44OS0uMDEtLjYyMi42MzZhMi44OSAyLjg5IDAgMCAxLTQuMTM0IDBsLS42MjItLjYzNy0uODkuMDExYTIuODkgMi44OSAwIDAgMS0yLjkyNC0yLjkyNGwuMDEtLjg5LS42MzYtLjYyMmEyLjg5IDIuODkgMCAwIDEgMC00LjEzNGwuNjM3LS42MjItLjAxMS0uODlhMi44OSAyLjg5IDAgMCAxIDIuOTI0LTIuOTI0bC44OS4wMS42MjItLjYzNmEyLjg5IDIuODkgMCAwIDEgNC4xMzQgMGwtLjcxNS42OThhMS44OSAxLjg5IDAgMCAwLTIuNzA0IDBsLS45Mi45NDQtMS4zMi0uMDE2YTEuODkgMS44OSAwIDAgMC0xLjkxMSAxLjkxMmwuMDE2IDEuMzE4LS45NDQuOTIxYTEuODkgMS44OSAwIDAgMCAwIDIuNzA0bC45NDQuOTItLjAxNiAxLjMyYTEuODkgMS44OSAwIDAgMCAxLjkxMiAxLjkxMWwxLjMxOC0uMDE2LjkyMS45NDRhMS44OSAxLjg5IDAgMCAwIDIuNzA0IDBsLjkyLS45NDQgMS4zMi4wMTZhMS44OSAxLjg5IDAgMCAwIDEuOTExLTEuOTEybC0uMDE2LTEuMzE4Ljk0NC0uOTIxYTEuODkgMS44OSAwIDAgMCAwLTIuNzA0bC0uOTQ0LS45Mi4wMTYtMS4zMmExLjg5IDEuODkgMCAwIDAtMS45MTItMS45MTFsLTEuMzE4LjAxNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYXRjaFBsdXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA2Ny44N2EyLjg5IDIuODkgMCAwIDAtNC4xMzQgMGwtLjYyMi42MzgtLjg5LS4wMTFhMi44OSAyLjg5IDAgMCAwLTIuOTI0IDIuOTI0bC4wMS44OS0uNjM2LjYyMmEyLjg5IDIuODkgMCAwIDAgMCA0LjEzNGwuNjM3LjYyMi0uMDExLjg5YTIuODkgMi44OSAwIDAgMCAyLjkyNCAyLjkyNGwuODktLjAxLjYyMi42MzZhMi44OSAyLjg5IDAgMCAwIDQuMTM0IDBsLjYyMi0uNjM3Ljg5LjAxMWEyLjg5IDIuODkgMCAwIDAgMi45MjQtMi45MjRsLS4wMS0uODkuNjM2LS42MjJhMi44OSAyLjg5IDAgMCAwIDAtNC4xMzRsLS42MzctLjYyMi4wMTEtLjg5YTIuODkgMi44OSAwIDAgMC0yLjkyNC0yLjkyNGwtLjg5LjAxLS42MjItLjYzNnpNOC41IDZ2MS41SDEwYS41LjUgMCAwIDEgMCAxSDguNVYxMGEuNS41IDAgMCAxLTEgMFY4LjVINmEuNS41IDAgMCAxIDAtMWgxLjVWNmEuNS41IDAgMCAxIDEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYXRjaFBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggNS41YS41LjUgMCAwIDEgLjUuNXYxLjVIMTBhLjUuNSAwIDAgMSAwIDFIOC41VjEwYS41LjUgMCAwIDEtMSAwVjguNUg2YS41LjUgMCAwIDEgMC0xaDEuNVY2YS41LjUgMCAwIDEgLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAuMjczIDIuNTEzLS45MjEtLjk0NC43MTUtLjY5OC42MjIuNjM3Ljg5LS4wMTFhMi44OSAyLjg5IDAgMCAxIDIuOTI0IDIuOTI0bC0uMDEuODkuNjM2LjYyMmEyLjg5IDIuODkgMCAwIDEgMCA0LjEzNGwtLjYzNy42MjIuMDExLjg5YTIuODkgMi44OSAwIDAgMS0yLjkyNCAyLjkyNGwtLjg5LS4wMS0uNjIyLjYzNmEyLjg5IDIuODkgMCAwIDEtNC4xMzQgMGwtLjYyMi0uNjM3LS44OS4wMTFhMi44OSAyLjg5IDAgMCAxLTIuOTI0LTIuOTI0bC4wMS0uODktLjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMSAwLTQuMTM0bC42MzctLjYyMi0uMDExLS44OWEyLjg5IDIuODkgMCAwIDEgMi45MjQtMi45MjRsLjg5LjAxLjYyMi0uNjM2YTIuODkgMi44OSAwIDAgMSA0LjEzNCAwbC0uNzE1LjY5OGExLjg5IDEuODkgMCAwIDAtMi43MDQgMGwtLjkyLjk0NC0xLjMyLS4wMTZhMS44OSAxLjg5IDAgMCAwLTEuOTExIDEuOTEybC4wMTYgMS4zMTgtLjk0NC45MjFhMS44OSAxLjg5IDAgMCAwIDAgMi43MDRsLjk0NC45Mi0uMDE2IDEuMzJhMS44OSAxLjg5IDAgMCAwIDEuOTEyIDEuOTExbDEuMzE4LS4wMTYuOTIxLjk0NGExLjg5IDEuODkgMCAwIDAgMi43MDQgMGwuOTItLjk0NCAxLjMyLjAxNmExLjg5IDEuODkgMCAwIDAgMS45MTEtMS45MTJsLS4wMTYtMS4zMTguOTQ0LS45MjFhMS44OSAxLjg5IDAgMCAwIDAtMi43MDRsLS45NDQtLjkyLjAxNi0xLjMyYTEuODkgMS44OSAwIDAgMC0xLjkxMi0xLjkxMWwtMS4zMTguMDE2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BhdGNoUXVlc3Rpb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOTMzLjg3YTIuODkgMi44OSAwIDAgMSA0LjEzNCAwbC42MjIuNjM4Ljg5LS4wMTFhMi44OSAyLjg5IDAgMCAxIDIuOTI0IDIuOTI0bC0uMDEuODkuNjM2LjYyMmEyLjg5IDIuODkgMCAwIDEgMCA0LjEzNGwtLjYzNy42MjIuMDExLjg5YTIuODkgMi44OSAwIDAgMS0yLjkyNCAyLjkyNGwtLjg5LS4wMS0uNjIyLjYzNmEyLjg5IDIuODkgMCAwIDEtNC4xMzQgMGwtLjYyMi0uNjM3LS44OS4wMTFhMi44OSAyLjg5IDAgMCAxLTIuOTI0LTIuOTI0bC4wMS0uODktLjYzNi0uNjIyYTIuODkgMi44OSAwIDAgMSAwLTQuMTM0bC42MzctLjYyMi0uMDExLS44OWEyLjg5IDIuODkgMCAwIDEgMi45MjQtMi45MjRsLjg5LjAxLjYyMi0uNjM2ek03LjAwMiAxMWExIDEgMCAxIDAgMiAwIDEgMSAwIDAgMC0yIDB6bTEuNjAyLTIuMDI3Yy4wNC0uNTM0LjE5OC0uODE1Ljg0Ni0xLjI2LjY3NC0uNDc1IDEuMDUtMS4wOSAxLjA1LTEuOTg2IDAtMS4zMjUtLjkyLTIuMjI3LTIuMjYyLTIuMjI3LTEuMDIgMC0xLjc5Mi40OTItMi4xIDEuMjlBMS43MSAxLjcxIDAgMCAwIDYgNS40OGMwIC4zOTMuMjAzLjY0LjU0NS42NC4yNzIgMCAuNDU1LS4xNDcuNTY0LS41MS4xNTgtLjU5Mi41MjUtLjkxNSAxLjA3NC0uOTE1LjYxIDAgMS4wMy40NDYgMS4wMyAxLjA4NCAwIC41NjMtLjIwOC44ODUtLjgyMiAxLjMyNS0uNjE5LjQzMy0uOTI2LjkxNC0uOTI2IDEuNjR2LjExMWMwIC40MjguMjA4Ljc0NS41ODUuNzQ1LjMzNiAwIC41MDQtLjI0LjU1NC0uNjI3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BhdGNoUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4wNSA5LjZjLjMzNiAwIC41MDQtLjI0LjU1NC0uNjI3LjA0LS41MzQuMTk4LS44MTUuODQ3LTEuMjYuNjczLS40NzUgMS4wNDktMS4wOSAxLjA0OS0xLjk4NiAwLTEuMzI1LS45Mi0yLjIyNy0yLjI2Mi0yLjIyNy0xLjAyIDAtMS43OTIuNDkyLTIuMSAxLjI5QTEuNzEgMS43MSAwIDAgMCA2IDUuNDhjMCAuMzkzLjIwMy42NC41NDUuNjQuMjcyIDAgLjQ1NS0uMTQ3LjU2NC0uNTEuMTU4LS41OTIuNTI1LS45MTUgMS4wNzQtLjkxNS42MSAwIDEuMDMuNDQ2IDEuMDMgMS4wODQgMCAuNTYzLS4yMDguODg1LS44MjIgMS4zMjUtLjYxOS40MzMtLjkyNi45MTQtLjkyNiAxLjY0di4xMTFjMCAuNDI4LjIwOC43NDUuNTg1Ljc0NXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC4yNzMgMi41MTMtLjkyMS0uOTQ0LjcxNS0uNjk4LjYyMi42MzcuODktLjAxMWEyLjg5IDIuODkgMCAwIDEgMi45MjQgMi45MjRsLS4wMS44OS42MzYuNjIyYTIuODkgMi44OSAwIDAgMSAwIDQuMTM0bC0uNjM3LjYyMi4wMTEuODlhMi44OSAyLjg5IDAgMCAxLTIuOTI0IDIuOTI0bC0uODktLjAxLS42MjIuNjM2YTIuODkgMi44OSAwIDAgMS00LjEzNCAwbC0uNjIyLS42MzctLjg5LjAxMWEyLjg5IDIuODkgMCAwIDEtMi45MjQtMi45MjRsLjAxLS44OS0uNjM2LS42MjJhMi44OSAyLjg5IDAgMCAxIDAtNC4xMzRsLjYzNy0uNjIyLS4wMTEtLjg5YTIuODkgMi44OSAwIDAgMSAyLjkyNC0yLjkyNGwuODkuMDEuNjIyLS42MzZhMi44OSAyLjg5IDAgMCAxIDQuMTM0IDBsLS43MTUuNjk4YTEuODkgMS44OSAwIDAgMC0yLjcwNCAwbC0uOTIuOTQ0LTEuMzItLjAxNmExLjg5IDEuODkgMCAwIDAtMS45MTEgMS45MTJsLjAxNiAxLjMxOC0uOTQ0LjkyMWExLjg5IDEuODkgMCAwIDAgMCAyLjcwNGwuOTQ0LjkyLS4wMTYgMS4zMmExLjg5IDEuODkgMCAwIDAgMS45MTIgMS45MTFsMS4zMTgtLjAxNi45MjEuOTQ0YTEuODkgMS44OSAwIDAgMCAyLjcwNCAwbC45Mi0uOTQ0IDEuMzIuMDE2YTEuODkgMS44OSAwIDAgMCAxLjkxMS0xLjkxMmwtLjAxNi0xLjMxOC45NDQtLjkyMWExLjg5IDEuODkgMCAwIDAgMC0yLjcwNGwtLjk0NC0uOTIuMDE2LTEuMzJhMS44OSAxLjg5IDAgMCAwLTEuOTEyLTEuOTExbC0xLjMxOC4wMTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMDEgMTFhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BhdXNlQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTYuMjUtN0M1LjU2IDUgNSA1LjU2IDUgNi4yNXYzLjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi0zLjVDNy41IDUuNTYgNi45NCA1IDYuMjUgNXptMy41IDBjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djMuNWExLjI1IDEuMjUgMCAxIDAgMi41IDB2LTMuNUMxMSA1LjU2IDEwLjQ0IDUgOS43NSA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BhdXNlQnRuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMjUgNUM1LjU2IDUgNSA1LjU2IDUgNi4yNXYzLjVhMS4yNSAxLjI1IDAgMSAwIDIuNSAwdi0zLjVDNy41IDUuNTYgNi45NCA1IDYuMjUgNXptMy41IDBjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djMuNWExLjI1IDEuMjUgMCAxIDAgMi41IDB2LTMuNUMxMSA1LjU2IDEwLjQ0IDUgOS43NSA1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY0em0xNSAwYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGF1c2VDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNi4yNSA1QzUuNTYgNSA1IDUuNTYgNSA2LjI1djMuNWExLjI1IDEuMjUgMCAxIDAgMi41IDB2LTMuNUM3LjUgNS41NiA2Ljk0IDUgNi4yNSA1em0zLjUgMGMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2My41YTEuMjUgMS4yNSAwIDEgMCAyLjUgMHYtMy41QzExIDUuNTYgMTAuNDQgNSA5Ljc1IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGF1c2VDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDYuMjVhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjMuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LTMuNXptMy41IDBhMS4yNSAxLjI1IDAgMSAxIDIuNSAwdjMuNWExLjI1IDEuMjUgMCAxIDEtMi41IDB2LTMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQYXVzZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDMuNUExLjUgMS41IDAgMCAxIDcgNXY2YTEuNSAxLjUgMCAwIDEtMyAwVjVhMS41IDEuNSAwIDAgMSAxLjUtMS41em01IDBBMS41IDEuNSAwIDAgMSAxMiA1djZhMS41IDEuNSAwIDAgMS0zIDBWNWExLjUgMS41IDAgMCAxIDEuNS0xLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzLjVhLjUuNSAwIDAgMSAuNS41djhhLjUuNSAwIDAgMS0xIDBWNGEuNS41IDAgMCAxIC41LS41em00IDBhLjUuNSAwIDAgMSAuNS41djhhLjUuNSAwIDAgMS0xIDBWNGEuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BheXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuMDYgMy43MTNjLjEyLTEuMDcxLS4wOTMtMS44MzItLjcwMi0yLjUyNkMxMi42MjguMzU2IDExLjMxMiAwIDkuNjI2IDBINC43MzRhLjcuNyAwIDAgMC0uNjkxLjU5TDIuMDA1IDEzLjUwOWEuNDIuNDIgMCAwIDAgLjQxNS40ODZoMi43NTZsLS4yMDIgMS4yOGEuNjI4LjYyOCAwIDAgMCAuNjIuNzI2SDguMTRjLjQyOSAwIC43OTMtLjMxLjg2Mi0uNzMxbC4wMjUtLjEzLjQ4LTMuMDQzLjAzLS4xNjQuMDAxLS4wMDdhLjM1MS4zNTEgMCAwIDEgLjM0OC0uMjk3aC4zOGMxLjI2NiAwIDIuNDI1LS4yNTYgMy4zNDUtLjkxLjM3OS0uMjcuNzEyLS42MDMuOTkzLTEuMDA1YTQuOTQyIDQuOTQyIDAgMCAwIC44OC0yLjE5NWMuMjQyLTEuMjQ2LjEzLTIuMzU2LS41Ny0zLjE1NGEyLjY4NyAyLjY4NyAwIDAgMC0uNzYtLjU5bC0uMDk0LS4wNjF6TTYuNTQzIDguODJsLS44NDUgNS4yMTN2LjAwMWwtLjIwOCAxLjMyYy0uMDEuMDY2LjA0LjEyMy4xMDUuMTIzSDguMTRjLjE3MyAwIC4zMi0uMTI1LjM0OC0uMjk2di0uMDA1bC4wMjYtLjEyOS40OC0zLjA0My4wMy0uMTY0YS44NzMuODczIDAgMCAxIC44NjItLjczNGguMzhjMS4yMDEgMCAyLjI0LS4yNDQgMy4wNDMtLjgxNS43OTctLjU2NyAxLjM5LTEuNDc3IDEuNjYzLTIuODc0LjIyOS0xLjE3NS4wOTYtMi4wODctLjQ1LTIuNzFhMi4xMjYgMi4xMjYgMCAwIDAtLjU0OC0uNDM4bC0uMDAzLjAxNmMtLjY0NSAzLjMxMi0yLjg1MyA0LjQ1Ni01LjY3MiA0LjQ1Nkg2Ljg2NGEuNjk1LjY5NSAwIDAgMC0uMzIxLjA3OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZWFjZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTMuMjkyQTggOCAwIDAgMCA4LjUuMDE1djcuNzc4bDUuNSA1LjV6bS0uNzA4LjcwOEw4LjUgOS4yMDZ2Ni43NzhhNy45NjcgNy45NjcgMCAwIDAgNC43OTItMS45ODZ6TTcuNSAxNS45ODVWOS4yMDdMMi43MDggMTRBNy45NjcgNy45NjcgMCAwIDAgNy41IDE1Ljk4NXpNMiAxMy4yOTJBOCA4IDAgMCAxIDcuNS4wMTV2Ny43NzhsLTUuNSA1LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEuMDE4YTcgNyAwIDAgMC00Ljc5IDExLjU2Nkw3LjUgNy43OTNWMS4wMTh6bTEgMHY2Ljc3NWw0Ljc5IDQuNzlBNyA3IDAgMCAwIDguNSAxLjAxOHptNC4wODQgMTIuMjczTDguNSA5LjIwN3Y1Ljc3NWE2Ljk3IDYuOTcgMCAwIDAgNC4wODQtMS42OTF6TTcuNSAxNC45ODJWOS4yMDdsLTQuMDg0IDQuMDg0QTYuOTcgNi45NyAwIDAgMCA3LjUgMTQuOTgyek0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZW5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzLjQ5OC43OTUuMTQ5LS4xNDlhMS4yMDcgMS4yMDcgMCAxIDEgMS43MDcgMS43MDhsLS4xNDkuMTQ4YTEuNSAxLjUgMCAwIDEtLjA1OSAyLjA1OUw0Ljg1NCAxNC44NTRhLjUuNSAwIDAgMS0uMjMzLjEzMWwtNCAxYS41LjUgMCAwIDEtLjYwNi0uNjA2bDEtNGEuNS41IDAgMCAxIC4xMzEtLjIzMmw5LjY0Mi05LjY0MmEuNS41IDAgMCAwLS42NDIuMDU2TDYuODU0IDQuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4TDkuNDQuODU0QTEuNSAxLjUgMCAwIDEgMTEuNS43OTZhMS41IDEuNSAwIDAgMSAxLjk5OC0uMDAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMy40OTguNzk1LjE0OS0uMTQ5YTEuMjA3IDEuMjA3IDAgMSAxIDEuNzA3IDEuNzA4bC0uMTQ5LjE0OGExLjUgMS41IDAgMCAxLS4wNTkgMi4wNTlMNC44NTQgMTQuODU0YS41LjUgMCAwIDEtLjIzMy4xMzFsLTQgMWEuNS41IDAgMCAxLS42MDYtLjYwNmwxLTRhLjUuNSAwIDAgMSAuMTMxLS4yMzJsOS42NDItOS42NDJhLjUuNSAwIDAgMC0uNjQyLjA1Nkw2Ljg1NCA0Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOEw5LjQ0Ljg1NEExLjUgMS41IDAgMCAxIDExLjUuNzk2YTEuNSAxLjUgMCAwIDEgMS45OTgtLjAwMXptLS42NDQuNzY2YS41LjUgMCAwIDAtLjcwNyAwTDEuOTUgMTEuNzU2bC0uNzY0IDMuMDU3IDMuMDU3LS43NjRMMTQuNDQgMy44NTRhLjUuNSAwIDAgMCAwLS43MDhsLTEuNTg1LTEuNTg1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlbmNpbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODU0LjE0NmEuNS41IDAgMCAwLS43MDcgMEwxMC41IDEuNzkzIDE0LjIwNyA1LjVsMS42NDctMS42NDZhLjUuNSAwIDAgMCAwLS43MDhsLTMtM3ptLjY0NiA2LjA2MUw5Ljc5MyAyLjUgMy4yOTMgOUgzLjVhLjUuNSAwIDAgMSAuNS41di41aC41YS41LjUgMCAwIDEgLjUuNXYuNWguNWEuNS41IDAgMCAxIC41LjV2LjVoLjVhLjUuNSAwIDAgMSAuNS41di4yMDdsNi41LTYuNXptLTcuNDY4IDcuNDY4QS41LjUgMCAwIDEgNiAxMy41VjEzaC0uNWEuNS41IDAgMCAxLS41LS41VjEyaC0uNWEuNS41IDAgMCAxLS41LS41VjExaC0uNWEuNS41IDAgMCAxLS41LS41VjEwaC0uNWEuNDk5LjQ5OSAwIDAgMS0uMTc1LS4wMzJsLS4xNzkuMTc4YS41LjUgMCAwIDAtLjExLjE2OGwtMiA1YS41LjUgMCAwIDAgLjY1LjY1bDUtMmEuNS41IDAgMCAwIC4xNjgtLjExbC4xNzgtLjE3OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZW5jaWxTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTAyIDEuOTRhLjUuNSAwIDAgMSAwIC43MDZMMTQuNDU5IDMuNjlsLTItMkwxMy41MDIuNjQ2YS41LjUgMCAwIDEgLjcwNyAwbDEuMjkzIDEuMjkzem0tMS43NSAyLjQ1Ni0yLTJMNC45MzkgOS4yMWEuNS41IDAgMCAwLS4xMjEuMTk2bC0uODA1IDIuNDE0YS4yNS4yNSAwIDAgMCAuMzE2LjMxNmwyLjQxNC0uODA1YS41LjUgMCAwIDAgLjE5Ni0uMTJsNi44MTMtNi44MTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEgMTMuNUExLjUgMS41IDAgMCAwIDIuNSAxNWgxMWExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTZhLjUuNSAwIDAgMC0xIDB2NmEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjV2LTExYS41LjUgMCAwIDEgLjUtLjVIOWEuNS41IDAgMCAwIDAtMUgyLjVBMS41IDEuNSAwIDAgMCAxIDIuNXYxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZW5jaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMTQ2LjE0NmEuNS41IDAgMCAxIC43MDggMGwzIDNhLjUuNSAwIDAgMSAwIC43MDhsLTEwIDEwYS41LjUgMCAwIDEtLjE2OC4xMWwtNSAyYS41LjUgMCAwIDEtLjY1LS42NWwyLTVhLjUuNSAwIDAgMSAuMTEtLjE2OGwxMC0xMHpNMTEuMjA3IDIuNSAxMy41IDQuNzkzIDE0Ljc5MyAzLjUgMTIuNSAxLjIwNyAxMS4yMDcgMi41em0xLjU4NiAzTDEwLjUgMy4yMDcgNCA5LjcwN1YxMGguNWEuNS41IDAgMCAxIC41LjV2LjVoLjVhLjUuNSAwIDAgMSAuNS41di41aC4yOTNsNi41LTYuNXptLTkuNzYxIDUuMTc1LS4xMDYuMTA2LTEuNTI4IDMuODIxIDMuODIxLTEuNTI4LjEwNi0uMTA2QS41LjUgMCAwIDEgNSAxMi41VjEyaC0uNWEuNS41IDAgMCAxLS41LS41VjExaC0uNWEuNS41IDAgMCAxLS40NjgtLjMyNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZW50YWdvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOCAwIDggNi41LTMgOS41SDNMMCA2LjUgOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlbnRhZ29uSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04IDEuMjg4IDYuODQyIDUuNTZMMTIuMjY3IDE1SDhWMS4yODh6TTE2IDYuNSA4IDAgMCA2LjUgMyAxNmgxMGwzLTkuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZW50YWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04IDEuMjg4IDYuODQyIDUuNTZMMTIuMjY3IDE1SDMuNzMzTDEuMTU4IDYuODQ3IDggMS4yODh6TTE2IDYuNSA4IDAgMCA2LjUgMyAxNmgxMGwzLTkuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZW9wbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTRzLTEgMC0xLTEgMS00IDUtNCA1IDMgNSA0LTEgMS0xIDFIN3ptNC02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS4yMTYgMTRBMi4yMzggMi4yMzggMCAwIDEgNSAxM2MwLTEuMzU1LjY4LTIuNzUgMS45MzYtMy43MkE2LjMyNSA2LjMyNSAwIDAgMCA1IDljLTQgMC01IDMtNSA0czEgMSAxIDFoNC4yMTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDhhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE0czEgMCAxLTEtMS00LTUtNC01IDMtNSA0IDEgMSAxIDFoOHptLTcuOTc4LTFBLjI2MS4yNjEgMCAwIDEgNyAxMi45OTZjLjAwMS0uMjY0LjE2Ny0xLjAzLjc2LTEuNzJDOC4zMTIgMTAuNjI5IDkuMjgyIDEwIDExIDEwYzEuNzE3IDAgMi42ODcuNjMgMy4yNCAxLjI3Ni41OTMuNjkuNzU4IDEuNDU3Ljc2IDEuNzJsLS4wMDguMDAyYS4yNzQuMjc0IDAgMCAxLS4wMTQuMDAySDcuMDIyek0xMSA3YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHptMy0yYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMHpNNi45MzYgOS4yOGE1Ljg4IDUuODggMCAwIDAtMS4yMy0uMjQ3QTcuMzUgNy4zNSAwIDAgMCA1IDljLTQgMC01IDMtNSA0IDAgLjY2Ny4zMzMgMSAxIDFoNC4yMTZBMi4yMzggMi4yMzggMCAwIDEgNSAxM2MwLTEuMDEuMzc3LTIuMDQyIDEuMDktMi45MDQuMjQzLS4yOTQuNTI2LS41NjkuODQ2LS44MTZ6TTQuOTIgMTBBNS40OTMgNS40OTMgMCAwIDAgNCAxM0gxYzAtLjI2LjE2NC0xLjAzLjc2LTEuNzI0LjU0NS0uNjM2IDEuNDkyLTEuMjU2IDMuMTYtMS4yNzV6TTEuNSA1LjVhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwem0zLTJhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlcmNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNDQyIDIuNTU4YS42MjUuNjI1IDAgMCAxIDAgLjg4NGwtMTAgMTBhLjYyNS42MjUgMCAxIDEtLjg4NC0uODg0bDEwLTEwYS42MjUuNjI1IDAgMCAxIC44ODQgMHpNNC41IDZhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTAgMWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNXptNyA2YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzem0wIDFhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uQmFkZ2VGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYyem00LjUgMGEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zek04IDExYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptNSAyLjc1NUMxMi4xNDYgMTIuODI1IDEwLjYyMyAxMiA4IDEycy00LjE0Ni44MjYtNSAxLjc1NVYxNGExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMXYtLjI0NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZXJzb25CYWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMmEuNS41IDAgMCAwIDAgMWgzYS41LjUgMCAwIDAgMC0xaC0zek0xMSA4YTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgMEEyLjUgMi41IDAgMCAwIDIgMi41VjE0YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjIuNUEyLjUgMi41IDAgMCAwIDExLjUgMGgtN3pNMyAyLjVBMS41IDEuNSAwIDAgMSA0LjUgMWg3QTEuNSAxLjUgMCAwIDEgMTMgMi41djEwLjc5NWE0LjIgNC4yIDAgMCAwLS43NzYtLjQ5MkMxMS4zOTIgMTIuMzg3IDEwLjA2MyAxMiA4IDEycy0zLjM5Mi4zODctNC4yMjQuODAzYTQuMiA0LjIgMCAwIDAtLjc3Ni40OTJWMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlcnNvbkJvdW5kaW5nQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAxYS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDEtMSAwdi0zQTEuNSAxLjUgMCAwIDEgMS41IDBoM2EuNS41IDAgMCAxIDAgMWgtM3pNMTEgLjVhLjUuNSAwIDAgMSAuNS0uNWgzQTEuNSAxLjUgMCAwIDEgMTYgMS41djNhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAxLS41LS41ek0uNSAxMWEuNS41IDAgMCAxIC41LjV2M2EuNS41IDAgMCAwIC41LjVoM2EuNS41IDAgMCAxIDAgMWgtM0ExLjUgMS41IDAgMCAxIDAgMTQuNXYtM2EuNS41IDAgMCAxIC41LS41em0xNSAwYS41LjUgMCAwIDEgLjUuNXYzYTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtM2EuNS41IDAgMCAxIDAtMWgzYS41LjUgMCAwIDAgLjUtLjV2LTNhLjUuNSAwIDAgMSAuNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE0cy0xIDAtMS0xIDEtNCA2LTQgNiAzIDYgNC0xIDEtMSAxSDN6bTgtOWEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uQ2hlY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNS44NTQgNS4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMCAxIC43MDgtLjcwOEwxMi41IDcuNzkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTRzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0LTEgMS0xIDFIMXptNS02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZXJzb25DaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDhhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2em0yLTNhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwem00IDhjMCAxLTEgMS0xIDFIMXMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDR6bS0xLS4wMDRjLS4wMDEtLjI0Ni0uMTU0LS45ODYtLjgzMi0xLjY2NEM5LjUxNiAxMC42OCA4LjI4OSAxMCA2IDEwYy0yLjI5IDAtMy41MTYuNjgtNC4xNjggMS4zMzItLjY3OC42NzgtLjgzIDEuNDE4LS44MzIgMS42NjRoMTB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE1Ljg1NCA1LjE0NmEuNS41IDAgMCAxIDAgLjcwOGwtMyAzYS41LjUgMCAwIDEtLjcwOCAwbC0xLjUtMS41YS41LjUgMCAwIDEgLjcwOC0uNzA4TDEyLjUgNy43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOHptOC03YTcgNyAwIDAgMC01LjQ2OCAxMS4zN0MzLjI0MiAxMS4yMjYgNC44MDUgMTAgOCAxMHM0Ljc1NyAxLjIyNSA1LjQ2OCAyLjM3QTcgNyAwIDAgMCA4IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uRGFzaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExIDcuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDE0cy0xIDAtMS0xIDEtNCA2LTQgNiAzIDYgNC0xIDEtMSAxSDF6bTUtNmEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uRGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDhhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2em0yLTNhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwem00IDhjMCAxLTEgMS0xIDFIMXMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDR6bS0xLS4wMDRjLS4wMDEtLjI0Ni0uMTU0LS45ODYtLjgzMi0xLjY2NEM5LjUxNiAxMC42OCA4LjI4OSAxMCA2IDEwYy0yLjI5IDAtMy41MTYuNjgtNC4xNjggMS4zMzItLjY3OC42NzgtLjgzIDEuNDE4LS44MzIgMS42NjRoMTB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExIDcuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZXJzb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTRzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0LTEgMS0xIDFIM3ptNS02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZXJzb25MaW5lc0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptLTUgNnMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDQtMSAxLTEgMUgxek0xMSAzLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxaC00YS41LjUgMCAwIDEtLjUtLjV6bS41IDIuNWEuNS41IDAgMCAwIDAgMWg0YS41LjUgMCAwIDAgMC0xaC00em0yIDNhLjUuNSAwIDAgMCAwIDFoMmEuNS41IDAgMCAwIDAtMWgtMnptMCAzYS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAwLTFoLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uUGx1c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAxNHMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDQtMSAxLTEgMUgxem01LTZhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMy41IDVhLjUuNSAwIDAgMSAuNS41VjdoMS41YS41LjUgMCAwIDEgMCAxSDE0djEuNWEuNS41IDAgMCAxLTEgMFY4aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTNWNS41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDhhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2em0yLTNhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwem00IDhjMCAxLTEgMS0xIDFIMXMtMSAwLTEtMSAxLTQgNi00IDYgMyA2IDR6bS0xLS4wMDRjLS4wMDEtLjI0Ni0uMTU0LS45ODYtLjgzMi0xLjY2NEM5LjUxNiAxMC42OCA4LjI4OSAxMCA2IDEwYy0yLjI5IDAtMy41MTYuNjgtNC4xNjggMS4zMzItLjY3OC42NzgtLjgzIDEuNDE4LS44MzIgMS42NjRoMTB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEzLjUgNWEuNS41IDAgMCAxIC41LjVWN2gxLjVhLjUuNSAwIDAgMSAwIDFIMTR2MS41YS41LjUgMCAwIDEtMSAwVjhoLTEuNWEuNS41IDAgMCAxIDAtMUgxM1Y1LjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQZXJzb25TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNmEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0xMiAxYTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMXYtMWMwLTEtMS00LTYtNHMtNiAzLTYgNHYxYTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlcnNvblhGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xIDE0cy0xIDAtMS0xIDEtNCA2LTQgNiAzIDYgNC0xIDEtMSAxSDF6bTUtNmEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6bTYuMTQ2LTIuODU0YS41LjUgMCAwIDEgLjcwOCAwTDE0IDYuMjkzbDEuMTQ2LTEuMTQ3YS41LjUgMCAwIDEgLjcwOC43MDhMMTQuNzA3IDdsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEwxNCA3LjcwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTMuMjkzIDdsLTEuMTQ3LTEuMTQ2YS41LjUgMCAwIDEgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BlcnNvblggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptMi0zYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHptNCA4YzAgMS0xIDEtMSAxSDFzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0em0tMS0uMDA0Yy0uMDAxLS4yNDYtLjE1NC0uOTg2LS44MzItMS42NjRDOS41MTYgMTAuNjggOC4yODkgMTAgNiAxMGMtMi4yOSAwLTMuNTE2LjY4LTQuMTY4IDEuMzMyLS42NzguNjc4LS44MyAxLjQxOC0uODMyIDEuNjY0aDEwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMi4xNDYgNS4xNDZhLjUuNSAwIDAgMSAuNzA4IDBMMTQgNi4yOTNsMS4xNDYtMS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOEwxNC43MDcgN2wxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4TDE0IDcuNzA3bC0xLjE0NiAxLjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEwxMy4yOTMgN2wtMS4xNDctMS4xNDZhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGVyc29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggOGEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6bTItM2EyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDB6bTQgOGMwIDEtMSAxLTEgMUgzcy0xIDAtMS0xIDEtNCA2LTQgNiAzIDYgNHptLTEtLjAwNGMtLjAwMS0uMjQ2LS4xNTQtLjk4Ni0uODMyLTEuNjY0QzExLjUxNiAxMC42OCAxMC4yODkgMTAgOCAxMGMtMi4yOSAwLTMuNTE2LjY4LTQuMTY4IDEuMzMyLS42NzguNjc4LS44MyAxLjQxOC0uODMyIDEuNjY0aDEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1Bob25lRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMnptNiAxMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGhvbmVMYW5kc2NhcGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTIuNWEyIDIgMCAwIDEtMi0ydi02YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJIMnptMTEtNmExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGhvbmVMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA0LjVhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTF2LTZ6bS0xIDZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi02YTIgMiAwIDAgMC0yLTJIMmEyIDIgMCAwIDAtMiAydjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNy41YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQaG9uZVZpYnJhdGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjR6bTUgN2ExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6TTEuODA3IDQuNzM0YS41LjUgMCAxIDAtLjg4NC0uNDY4QTcuOTY3IDcuOTY3IDAgMCAwIDAgOGMwIDEuMzQ3LjMzNCAyLjYxOC45MjMgMy43MzRhLjUuNSAwIDEgMCAuODg0LS40NjhBNi45NjcgNi45NjcgMCAwIDEgMSA4YzAtMS4xOC4yOTItMi4yOTIuODA3LTMuMjY2em0xMy4yNy0uNDY4YS41LjUgMCAwIDAtLjg4NC40NjhDMTQuNzA4IDUuNzA4IDE1IDYuODE5IDE1IDhjMCAxLjE4LS4yOTIgMi4yOTItLjgwNyAzLjI2NmEuNS41IDAgMCAwIC44ODQuNDY4QTcuOTY3IDcuOTY3IDAgMCAwIDE2IDhhNy45NjcgNy45NjcgMCAwIDAtLjkyMy0zLjczNHpNMy4zNCA2LjE4MmEuNS41IDAgMSAwLS45My0uMzY0QTUuOTg2IDUuOTg2IDAgMCAwIDIgOGMwIC43NjkuMTQ1IDEuNTA1LjQxIDIuMTgyYS41LjUgMCAxIDAgLjkzLS4zNjRBNC45ODYgNC45ODYgMCAwIDEgMyA4YzAtLjY0Mi4xMi0xLjI1NS4zNC0xLjgxOHptMTAuMjUtLjM2NGEuNS41IDAgMCAwLS45My4zNjRjLjIyLjU2My4zNCAxLjE3Ni4zNCAxLjgxOCAwIC42NDItLjEyIDEuMjU1LS4zNCAxLjgxOGEuNS41IDAgMCAwIC45My4zNjRDMTMuODU2IDkuNTA1IDE0IDguNzY5IDE0IDhjMC0uNzY5LS4xNDUtMS41MDUtLjQxLTIuMTgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1Bob25lVmlicmF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNHpNNiAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEyYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpNMS41OTkgNC4wNThhLjUuNSAwIDAgMSAuMjA4LjY3NkE2Ljk2NyA2Ljk2NyAwIDAgMCAxIDhjMCAxLjE4LjI5MiAyLjI5Mi44MDcgMy4yNjZhLjUuNSAwIDAgMS0uODg0LjQ2OEE3Ljk2OCA3Ljk2OCAwIDAgMSAwIDhjMC0xLjM0Ny4zMzQtMi42MTkuOTIzLTMuNzM0YS41LjUgMCAwIDEgLjY3Ni0uMjA4em0xMi44MDIgMGEuNS41IDAgMCAxIC42NzYuMjA4QTcuOTY3IDcuOTY3IDAgMCAxIDE2IDhhNy45NjcgNy45NjcgMCAwIDEtLjkyMyAzLjczNC41LjUgMCAwIDEtLjg4NC0uNDY4QTYuOTY3IDYuOTY3IDAgMCAwIDE1IDhjMC0xLjE4LS4yOTItMi4yOTItLjgwNy0zLjI2NmEuNS41IDAgMCAxIC4yMDgtLjY3NnpNMy4wNTcgNS41MzRhLjUuNSAwIDAgMSAuMjg0LjY0OEE0Ljk4NiA0Ljk4NiAwIDAgMCAzIDhjMCAuNjQyLjEyIDEuMjU1LjM0IDEuODE4YS41LjUgMCAxIDEtLjkzLjM2NEE1Ljk4NiA1Ljk4NiAwIDAgMSAyIDhjMC0uNzY5LjE0NS0xLjUwNS40MS0yLjE4MmEuNS41IDAgMCAxIC42NDctLjI4NHptOS44ODYgMGEuNS41IDAgMCAxIC42NDguMjg0QzEzLjg1NSA2LjQ5NSAxNCA3LjIzMSAxNCA4YzAgLjc2OS0uMTQ1IDEuNTA1LS40MSAyLjE4MmEuNS41IDAgMCAxLS45My0uMzY0QzEyLjg4IDkuMjU1IDEzIDguNjQyIDEzIDhjMC0uNjQyLS4xMi0xLjI1NS0uMzQtMS44MThhLjUuNSAwIDAgMSAuMjgzLS42NDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg2ek01IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE0YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQaWVDaGFydEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuOTg1IDguNUg4LjIwN2wtNS41IDUuNWE4IDggMCAwIDAgMTMuMjc3LTUuNXpNMiAxMy4yOTJBOCA4IDAgMCAxIDcuNS4wMTV2Ny43NzhsLTUuNSA1LjV6TTguNS4wMTVWNy41aDcuNDg1QTguMDAxIDguMDAxIDAgMCAwIDguNS4wMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGllQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEuMDE4YTcgNyAwIDAgMC00Ljc5IDExLjU2Nkw3LjUgNy43OTNWMS4wMTh6bTEgMFY3LjVoNi40ODJBNy4wMDEgNy4wMDEgMCAwIDAgOC41IDEuMDE4ek0xNC45ODIgOC41SDguMjA3bC00Ljc5IDQuNzlBNyA3IDAgMCAwIDE0Ljk4MiA4LjV6TTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BpZ2d5QmFua0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuOTY0IDEuNTI3Yy0yLjk3NyAwLTUuNTcxIDEuNzA0LTYuMzIgNC4xMjVoLS41NUExIDEgMCAwIDAgLjExIDYuODI0bC4yNTQgMS40NmExLjUgMS41IDAgMCAwIDEuNDc4IDEuMjQzaC4yNjNjLjMuNTEzLjY4OC45NzggMS4xNDUgMS4zODJsLS43MjkgMi40NzdhLjUuNSAwIDAgMCAuNDguNjQxaDJhLjUuNSAwIDAgMCAuNDcxLS4zMzJsLjQ4Mi0xLjM1MWMuNjM1LjE3MyAxLjMxLjI2NyAyLjAxMS4yNjcuNzA3IDAgMS4zODgtLjA5NSAyLjAyOC0uMjcybC41NDMgMS4zNzJhLjUuNSAwIDAgMCAuNDY1LjMxNmgyYS41LjUgMCAwIDAgLjQ3OC0uNjQ1bC0uNzYxLTIuNTA2QzEzLjgxIDkuODk1IDE0LjUgOC41NTkgMTQuNSA3LjA2OWMwLS4xNDUtLjAwNy0uMjktLjAyLS40MzEuMjYxLS4xMS41MDgtLjI2Ni43MDUtLjQ0NC4zMTUuMzA2LjgxNS4zMDYuODE1LS40MTcgMCAuMjIzLS41LjIyMy0uNDYxLS4wMjZhLjk1Ljk1IDAgMCAwIC4wOS0uMjU1LjcuNyAwIDAgMC0uMjAyLS42NDUuNTguNTggMCAwIDAtLjcwNy0uMDk4LjczNS43MzUgMCAwIDAtLjM3NS41NjJjLS4wMjQuMjQzLjA4Mi40OC4zMi42NTRhMi4xMTIgMi4xMTIgMCAwIDEtLjI1OS4xNTNjLS41MzQtMi42NjQtMy4yODQtNC41OTUtNi40NDItNC41OTV6bTcuMTczIDMuODc2YS41NjUuNTY1IDAgMCAxLS4wOTguMjEuNzA0LjcwNCAwIDAgMS0uMDQ0LS4wMjVjLS4xNDYtLjA5LS4xNTctLjE3NS0uMTUyLS4yMjNhLjIzNi4yMzYgMCAwIDEgLjExNy0uMTczYy4wNDktLjAyNy4wOC0uMDIxLjExMy4wMTJhLjIwMi4yMDIgMCAwIDEgLjA2NC4xOTl6bS04Ljk5OS0uNjVBNi42MTMgNi42MTMgMCAwIDEgNy45NjQgNC41Yy42NjYgMCAxLjMwMy4wOTcgMS44OTMuMjczYS41LjUgMCAxIDAgLjI4Ni0uOTU4QTcuNjAxIDcuNjAxIDAgMCAwIDcuOTY0IDMuNWMtLjczNCAwLTEuNDQxLjEwMy0yLjEwMi4yOTJhLjUuNSAwIDEgMCAuMjc2Ljk2MnpNNSA2LjI1YS43NS43NSAwIDEgMS0xLjUgMCAuNzUuNzUgMCAwIDEgMS41IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGlnZ3lCYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNi4yNWEuNzUuNzUgMCAxIDEtMS41IDAgLjc1Ljc1IDAgMCAxIDEuNSAwem0xLjEzOC0xLjQ5NkE2LjYxMyA2LjYxMyAwIDAgMSA3Ljk2NCA0LjVjLjY2NiAwIDEuMzAzLjA5NyAxLjg5My4yNzNhLjUuNSAwIDAgMCAuMjg2LS45NThBNy42MDIgNy42MDIgMCAwIDAgNy45NjQgMy41Yy0uNzM0IDAtMS40NDEuMTAzLTIuMTAyLjI5MmEuNS41IDAgMSAwIC4yNzYuOTYyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03Ljk2NCAxLjUyN2MtMi45NzcgMC01LjU3MSAxLjcwNC02LjMyIDQuMTI1aC0uNTVBMSAxIDAgMCAwIC4xMSA2LjgyNGwuMjU0IDEuNDZhMS41IDEuNSAwIDAgMCAxLjQ3OCAxLjI0M2guMjYzYy4zLjUxMy42ODguOTc4IDEuMTQ1IDEuMzgybC0uNzI5IDIuNDc3YS41LjUgMCAwIDAgLjQ4LjY0MWgyYS41LjUgMCAwIDAgLjQ3MS0uMzMybC40ODItMS4zNTFjLjYzNS4xNzMgMS4zMS4yNjcgMi4wMTEuMjY3LjcwNyAwIDEuMzg4LS4wOTUgMi4wMjgtLjI3MmwuNTQzIDEuMzcyYS41LjUgMCAwIDAgLjQ2NS4zMTZoMmEuNS41IDAgMCAwIC40NzgtLjY0NWwtLjc2MS0yLjUwNkMxMy44MSA5Ljg5NSAxNC41IDguNTU5IDE0LjUgNy4wNjljMC0uMTQ1LS4wMDctLjI5LS4wMi0uNDMxLjI2MS0uMTEuNTA4LS4yNjYuNzA1LS40NDQuMzE1LjMwNi44MTUuMzA2LjgxNS0uNDE3IDAgLjIyMy0uNS4yMjMtLjQ2MS0uMDI2YS45NS45NSAwIDAgMCAuMDktLjI1NS43LjcgMCAwIDAtLjIwMi0uNjQ1LjU4LjU4IDAgMCAwLS43MDctLjA5OC43MzUuNzM1IDAgMCAwLS4zNzUuNTYyYy0uMDI0LjI0My4wODIuNDguMzIuNjU0YTIuMTEyIDIuMTEyIDAgMCAxLS4yNTkuMTUzYy0uNTM0LTIuNjY0LTMuMjg0LTQuNTk1LTYuNDQyLTQuNTk1ek0yLjUxNiA2LjI2Yy40NTUtMi4wNjYgMi42NjctMy43MzMgNS40NDgtMy43MzMgMy4xNDYgMCA1LjUzNiAyLjExNCA1LjUzNiA0LjU0MiAwIDEuMjU0LS42MjQgMi40MS0xLjY3IDMuMjQ4YS41LjUgMCAwIDAtLjE2NS41MzVsLjY2IDIuMTc1aC0uOTg1bC0uNTktMS40ODdhLjUuNSAwIDAgMC0uNjI5LS4yODhjLS42NjEuMjMtMS4zOS4zNTktMi4xNTcuMzU5YTYuNTU4IDYuNTU4IDAgMCAxLTIuMTU3LS4zNTkuNS41IDAgMCAwLS42MzUuMzA0bC0uNTI1IDEuNDcxaC0uOTc5bC42MzMtMi4xNWEuNS41IDAgMCAwLS4xNy0uNTM0IDQuNjQ5IDQuNjQ5IDAgMCAxLTEuMjg0LTEuNTQxLjUuNSAwIDAgMC0uNDQ2LS4yNzVoLS41NmEuNS41IDAgMCAxLS40OTItLjQxNGwtLjI1NC0xLjQ2aC45MzNhLjUuNSAwIDAgMCAuNDg4LS4zOTN6bTEyLjYyMS0uODU3YS41NjUuNTY1IDAgMCAxLS4wOTguMjEuNzA0LjcwNCAwIDAgMS0uMDQ0LS4wMjVjLS4xNDYtLjA5LS4xNTctLjE3NS0uMTUyLS4yMjNhLjIzNi4yMzYgMCAwIDEgLjExNy0uMTczYy4wNDktLjAyNy4wOC0uMDIxLjExMy4wMTJhLjIwMi4yMDIgMCAwIDEgLjA2NC4xOTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGluQW5nbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODI4LjcyMmEuNS41IDAgMCAxIC4zNTQuMTQ2bDQuOTUgNC45NWEuNS41IDAgMCAxIDAgLjcwN2MtLjQ4LjQ4LTEuMDcyLjU4OC0xLjUwMy41ODgtLjE3NyAwLS4zMzUtLjAxOC0uNDYtLjAzOWwtMy4xMzQgMy4xMzRhNS45MjcgNS45MjcgMCAwIDEgLjE2IDEuMDEzYy4wNDYuNzAyLS4wMzIgMS42ODctLjcyIDIuMzc1YS41LjUgMCAwIDEtLjcwNyAwbC0yLjgyOS0yLjgyOC0zLjE4MiAzLjE4MmMtLjE5NS4xOTUtMS4yMTkuOTAyLTEuNDE0LjcwNy0uMTk1LS4xOTUuNTEyLTEuMjIuNzA3LTEuNDE0bDMuMTgyLTMuMTgyLTIuODI4LTIuODI5YS41LjUgMCAwIDEgMC0uNzA3Yy42ODgtLjY4OCAxLjY3My0uNzY3IDIuMzc1LS43MmE1LjkyMiA1LjkyMiAwIDAgMSAxLjAxMy4xNmwzLjEzNC0zLjEzM2EyLjc3MiAyLjc3MiAwIDAgMS0uMDQtLjQ2MWMwLS40My4xMDgtMS4wMjIuNTg5LTEuNTAzYS41LjUgMCAwIDEgLjM1My0uMTQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BpbkFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuODI4LjcyMmEuNS41IDAgMCAxIC4zNTQuMTQ2bDQuOTUgNC45NWEuNS41IDAgMCAxIDAgLjcwN2MtLjQ4LjQ4LTEuMDcyLjU4OC0xLjUwMy41ODgtLjE3NyAwLS4zMzUtLjAxOC0uNDYtLjAzOWwtMy4xMzQgMy4xMzRhNS45MjcgNS45MjcgMCAwIDEgLjE2IDEuMDEzYy4wNDYuNzAyLS4wMzIgMS42ODctLjcyIDIuMzc1YS41LjUgMCAwIDEtLjcwNyAwbC0yLjgyOS0yLjgyOC0zLjE4MiAzLjE4MmMtLjE5NS4xOTUtMS4yMTkuOTAyLTEuNDE0LjcwNy0uMTk1LS4xOTUuNTEyLTEuMjIuNzA3LTEuNDE0bDMuMTgyLTMuMTgyLTIuODI4LTIuODI5YS41LjUgMCAwIDEgMC0uNzA3Yy42ODgtLjY4OCAxLjY3My0uNzY3IDIuMzc1LS43MmE1LjkyMiA1LjkyMiAwIDAgMSAxLjAxMy4xNmwzLjEzNC0zLjEzM2EyLjc3MiAyLjc3MiAwIDAgMS0uMDQtLjQ2MWMwLS40My4xMDgtMS4wMjIuNTg5LTEuNTAzYS41LjUgMCAwIDEgLjM1My0uMTQ2em0uMTIyIDIuMTEydi0uMDAyLjAwMnptMC0uMDAydi4wMDJhLjUuNSAwIDAgMS0uMTIyLjUxTDYuMjkzIDYuODc4YS41LjUgMCAwIDEtLjUxMS4xMkg1Ljc4bC0uMDE0LS4wMDRhNC41MDcgNC41MDcgMCAwIDAtLjI4OC0uMDc2IDQuOTIyIDQuOTIyIDAgMCAwLS43NjUtLjExNmMtLjQyMi0uMDI4LS44MzYuMDA4LTEuMTc1LjE1bDUuNTEgNS41MDljLjE0MS0uMzQuMTc3LS43NTMuMTQ5LTEuMTc1YTQuOTI0IDQuOTI0IDAgMCAwLS4xOTItMS4wNTRsLS4wMDQtLjAxM3YtLjAwMWEuNS41IDAgMCAxIC4xMi0uNTEybDMuNTM2LTMuNTM1YS41LjUgMCAwIDEgLjUzMi0uMTE1bC4wOTYuMDIyYy4wODcuMDE3LjIwOC4wMzQuMzQ0LjAzNC4xMTQgMCAuMjMtLjAxMS4zNDMtLjA0TDkuOTI3IDIuMDI4Yy0uMDI5LjExMy0uMDQuMjMtLjA0LjM0M2ExLjc3OSAxLjc3OSAwIDAgMCAuMDYyLjQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BpbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNDYuMTQ2QS41LjUgMCAwIDEgNC41IDBoN2EuNS41IDAgMCAxIC41LjVjMCAuNjgtLjM0MiAxLjE3NC0uNjQ2IDEuNDc5LS4xMjYuMTI1LS4yNS4yMjQtLjM1NC4yOTh2NC40MzFsLjA3OC4wNDhjLjIwMy4xMjcuNDc2LjMxNC43NTEuNTU1QzEyLjM2IDcuNzc1IDEzIDguNTI3IDEzIDkuNWEuNS41IDAgMCAxLS41LjVoLTR2NC41YzAgLjI3Ni0uMjI0IDEuNS0uNSAxLjVzLS41LTEuMjI0LS41LTEuNVYxMGgtNGEuNS41IDAgMCAxLS41LS41YzAtLjk3My42NC0xLjcyNSAxLjE3LTIuMTg5QTUuOTIxIDUuOTIxIDAgMCAxIDUgNi43MDhWMi4yNzdhMi43NyAyLjc3IDAgMCAxLS4zNTQtLjI5OEM0LjM0MiAxLjY3NCA0IDEuMTc5IDQgLjVhLjUuNSAwIDAgMSAuMTQ2LS4zNTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGluTWFwRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMy4xIDExLjJhLjUuNSAwIDAgMSAuNC0uMkg2YS41LjUgMCAwIDEgMCAxSDMuNzVMMS41IDE1aDEzbC0yLjI1LTNIMTBhLjUuNSAwIDAgMSAwLTFoMi41YS41LjUgMCAwIDEgLjQuMmwzIDRhLjUuNSAwIDAgMS0uNC44SC41YS41LjUgMCAwIDEtLjQtLjhsMy00elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDRhNCA0IDAgMSAxIDQuNSAzLjk2OVYxMy41YS41LjUgMCAwIDEtMSAwVjcuOTdBNCA0IDAgMCAxIDQgMy45OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGluTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zLjEgMTEuMmEuNS41IDAgMCAxIC40LS4ySDZhLjUuNSAwIDAgMSAwIDFIMy43NUwxLjUgMTVoMTNsLTIuMjUtM0gxMGEuNS41IDAgMCAxIDAtMWgyLjVhLjUuNSAwIDAgMSAuNC4ybDMgNGEuNS41IDAgMCAxLS40LjhILjVhLjUuNSAwIDAgMS0uNC0uOGwzLTR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMWEzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTZ6TTQgNGE0IDQgMCAxIDEgNC41IDMuOTY5VjEzLjVhLjUuNSAwIDAgMS0xIDBWNy45N0E0IDQgMCAwIDEgNCAzLjk5OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNDYuMTQ2QS41LjUgMCAwIDEgNC41IDBoN2EuNS41IDAgMCAxIC41LjVjMCAuNjgtLjM0MiAxLjE3NC0uNjQ2IDEuNDc5LS4xMjYuMTI1LS4yNS4yMjQtLjM1NC4yOTh2NC40MzFsLjA3OC4wNDhjLjIwMy4xMjcuNDc2LjMxNC43NTEuNTU1QzEyLjM2IDcuNzc1IDEzIDguNTI3IDEzIDkuNWEuNS41IDAgMCAxLS41LjVoLTR2NC41YzAgLjI3Ni0uMjI0IDEuNS0uNSAxLjVzLS41LTEuMjI0LS41LTEuNVYxMGgtNGEuNS41IDAgMCAxLS41LS41YzAtLjk3My42NC0xLjcyNSAxLjE3LTIuMTg5QTUuOTIxIDUuOTIxIDAgMCAxIDUgNi43MDhWMi4yNzdhMi43NyAyLjc3IDAgMCAxLS4zNTQtLjI5OEM0LjM0MiAxLjY3NCA0IDEuMTc5IDQgLjVhLjUuNSAwIDAgMSAuMTQ2LS4zNTR6bTEuNTggMS40MDgtLjAwMi0uMDAxLjAwMi4wMDF6bS0uMDAyLS4wMDEuMDAyLjAwMUEuNS41IDAgMCAxIDYgMnY1YS41LjUgMCAwIDEtLjI3Ni40NDdoLS4wMDJsLS4wMTIuMDA3LS4wNTQuMDNhNC45MjIgNC45MjIgMCAwIDAtLjgyNy41OGMtLjMxOC4yNzgtLjU4NS41OTYtLjcyNS45MzZoNy43OTJjLS4xNC0uMzQtLjQwNy0uNjU4LS43MjUtLjkzNmE0LjkxNSA0LjkxNSAwIDAgMC0uODgxLS42MWwtLjAxMi0uMDA2aC0uMDAyQS41LjUgMCAwIDEgMTAgN1YyYS41LjUgMCAwIDEgLjI5NS0uNDU4IDEuNzc1IDEuNzc1IDAgMCAwIC4zNTEtLjI3MWMuMDgtLjA4LjE1NS0uMTcuMjE0LS4yNzFINS4xNGMuMDYuMS4xMzMuMTkxLjIxNC4yNzFhMS43OCAxLjc4IDAgMCAwIC4zNy4yODJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGludGVyZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGE4IDggMCAwIDAtMi45MTUgMTUuNDUyYy0uMDctLjYzMy0uMTM0LTEuNjA2LjAyNy0yLjI5Ny4xNDYtLjYyNS45MzgtMy45NzcuOTM4LTMuOTc3cy0uMjM5LS40NzktLjIzOS0xLjE4N2MwLTEuMTEzLjY0NS0xLjk0MyAxLjQ0OC0xLjk0My42ODIgMCAxLjAxMi41MTIgMS4wMTIgMS4xMjcgMCAuNjg2LS40MzcgMS43MTItLjY2MyAyLjY2My0uMTg4Ljc5Ni40IDEuNDQ2IDEuMTg1IDEuNDQ2IDEuNDIyIDAgMi41MTUtMS41IDIuNTE1LTMuNjY0IDAtMS45MTUtMS4zNzctMy4yNTQtMy4zNDItMy4yNTQtMi4yNzYgMC0zLjYxMiAxLjcwNy0zLjYxMiAzLjQ3MSAwIC42ODguMjY1IDEuNDI1LjU5NSAxLjgyNmEuMjQuMjQgMCAwIDEgLjA1Ni4yM2MtLjA2MS4yNTItLjE5Ni43OTYtLjIyMi45MDctLjAzNS4xNDYtLjExNi4xNzctLjI2OC4xMDctMS0uNDY1LTEuNjI0LTEuOTI2LTEuNjI0LTMuMSAwLTIuNTIzIDEuODM0LTQuODQgNS4yODYtNC44NCAyLjc3NSAwIDQuOTMyIDEuOTc3IDQuOTMyIDQuNjIgMCAyLjc1Ny0xLjczOSA0Ljk3Ni00LjE1MSA0Ljk3Ni0uODExIDAtMS41NzMtLjQyMS0xLjgzNC0uOTE5bC0uNDk4IDEuOTAyYy0uMTgxLjY5NS0uNjY5IDEuNTY2LS45OTUgMi4wOTdBOCA4IDAgMSAwIDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQaXBGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2OUExLjUgMS41IDAgMCAwIDEuNSAxNGgxM2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTlBMS41IDEuNSAwIDAgMCAxNC41IDJoLTEzem03IDZoNWEuNS41IDAgMCAxIC41LjV2M2EuNS41IDAgMCAxLS41LjVoLTVhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIC41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMuNUExLjUgMS41IDAgMCAxIDEuNSAyaDEzQTEuNSAxLjUgMCAwIDEgMTYgMy41djlhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDAgMTIuNXYtOXpNMS41IDNhLjUuNSAwIDAgMC0uNS41djlhLjUuNSAwIDAgMCAuNS41aDEzYS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtMTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA4LjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYzYS41LjUgMCAwIDEtLjUuNWgtNWEuNS41IDAgMCAxLS41LS41di0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsYXlCdG5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTJWNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnptNi43OS02LjkwN0EuNS41IDAgMCAwIDYgNS41djVhLjUuNSAwIDAgMCAuNzkuNDA3bDMuNS0yLjVhLjUuNSAwIDAgMCAwLS44MTRsLTMuNS0yLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGxheUJ0biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljc5IDUuMDkzQS41LjUgMCAwIDAgNiA1LjV2NWEuNS41IDAgMCAwIC43OS40MDdsMy41LTIuNWEuNS41IDAgMCAwIDAtLjgxNGwtMy41LTIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMTUgMGExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsYXlDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNi43OSA1LjA5M0EuNS41IDAgMCAwIDYgNS41djVhLjUuNSAwIDAgMCAuNzkuNDA3bDMuNS0yLjVhLjUuNSAwIDAgMCAwLS44MTRsLTMuNS0yLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGxheUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMjcxIDUuMDU1YS41LjUgMCAwIDEgLjUyLjAzOGwzLjUgMi41YS41LjUgMCAwIDEgMCAuODE0bC0zLjUgMi41QS41LjUgMCAwIDEgNiAxMC41di01YS41LjUgMCAwIDEgLjI3MS0uNDQ1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsYXlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjU5NiA4LjY5Ny02LjM2MyAzLjY5MmMtLjU0LjMxMy0xLjIzMy0uMDY2LTEuMjMzLS42OTdWNC4zMDhjMC0uNjMuNjkyLTEuMDEgMS4yMzMtLjY5Nmw2LjM2MyAzLjY5MmEuODAyLjgwMiAwIDAgMSAwIDEuMzkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODA0IDggNSA0LjYzM3Y2LjczNEwxMC44MDQgOHptLjc5Mi0uNjk2YS44MDIuODAyIDAgMCAxIDAgMS4zOTJsLTYuMzYzIDMuNjkyQzQuNzEzIDEyLjY5IDQgMTIuMzQ1IDQgMTEuNjkyVjQuMzA4YzAtLjY1My43MTMtLjk5OCAxLjIzMy0uNjk2bDYuMzYzIDMuNjkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsdWdGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMGEuNS41IDAgMCAxIC41LjVWM2gzVi41YS41LjUgMCAwIDEgMSAwVjNoMWEuNS41IDAgMCAxIC41LjV2M0EzLjUgMy41IDAgMCAxIDguNSAxMGMtLjAwMi40MzQtLjAxLjg0NS0uMDQgMS4yMi0uMDQxLjUxNC0uMTI2IDEuMDAzLS4zMTcgMS40MjRhMi4wODMgMi4wODMgMCAwIDEtLjk3IDEuMDI4QzYuNzI1IDEzLjkgNi4xNjkgMTQgNS41IDE0Yy0uOTk4IDAtMS42MS4zMy0xLjk3NC43MThBMS45MjIgMS45MjIgMCAwIDAgMyAxNkgyYzAtLjYxNi4yMzItMS4zNjcuNzk3LTEuOTY4QzMuMzc0IDEzLjQyIDQuMjYxIDEzIDUuNSAxM2MuNTgxIDAgLjk2Mi0uMDg4IDEuMjE4LS4yMTkuMjQxLS4xMjMuNC0uMy41MTQtLjU1LjEyMS0uMjY2LjE5My0uNjIxLjIzLTEuMDkuMDI3LS4zNC4wMzUtLjcxOC4wMzctMS4xNDFBMy41IDMuNSAwIDAgMSA0IDYuNXYtM2EuNS41IDAgMCAxIC41LS41aDFWLjVBLjUuNSAwIDAgMSA2IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGx1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDBhLjUuNSAwIDAgMSAuNS41VjNoM1YuNWEuNS41IDAgMCAxIDEgMFYzaDFhLjUuNSAwIDAgMSAuNS41djNBMy41IDMuNSAwIDAgMSA4LjUgMTBjLS4wMDIuNDM0LS4wMS44NDUtLjA0IDEuMjItLjA0MS41MTQtLjEyNiAxLjAwMy0uMzE3IDEuNDI0YTIuMDgzIDIuMDgzIDAgMCAxLS45NyAxLjAyOEM2LjcyNSAxMy45IDYuMTY5IDE0IDUuNSAxNGMtLjk5OCAwLTEuNjEuMzMtMS45NzQuNzE4QTEuOTIyIDEuOTIyIDAgMCAwIDMgMTZIMmMwLS42MTYuMjMyLTEuMzY3Ljc5Ny0xLjk2OEMzLjM3NCAxMy40MiA0LjI2MSAxMyA1LjUgMTNjLjU4MSAwIC45NjItLjA4OCAxLjIxOC0uMjE5LjI0MS0uMTIzLjQtLjMuNTE0LS41NS4xMjEtLjI2Ni4xOTMtLjYyMS4yMy0xLjA5LjAyNy0uMzQuMDM1LS43MTguMDM3LTEuMTQxQTMuNSAzLjUgMCAwIDEgNCA2LjV2LTNhLjUuNSAwIDAgMSAuNS0uNWgxVi41QS41LjUgMCAwIDEgNiAwek01IDR2Mi41QTIuNSAyLjUgMCAwIDAgNy41IDloMUEyLjUgMi41IDAgMCAwIDExIDYuNVY0SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGx1c0NpcmNsZURvdHRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBjLS4xNzYgMC0uMzUuMDA2LS41MjMuMDE3bC4wNjQuOTk4YTcuMTE3IDcuMTE3IDAgMCAxIC45MTggMGwuMDY0LS45OThBOC4xMTMgOC4xMTMgMCAwIDAgOCAwek02LjQ0LjE1MmMtLjM0Ni4wNjktLjY4NC4xNi0xLjAxMi4yN2wuMzIxLjk0OGMuMjg3LS4wOTguNTgyLS4xNzcuODg0LS4yMzdMNi40NC4xNTN6bTQuMTMyLjI3MWE3Ljk0NiA3Ljk0NiAwIDAgMC0xLjAxMS0uMjdsLS4xOTQuOThjLjMwMi4wNi41OTcuMTQuODg0LjIzN2wuMzIxLS45NDd6bTEuODczLjkyNWE4IDggMCAwIDAtLjkwNi0uNTI0bC0uNDQzLjg5NmMuMjc1LjEzNi41NC4yOS43OTMuNDU5bC41NTYtLjgzMXpNNC40Ni44MjRjLS4zMTQuMTU1LS42MTYuMzMtLjkwNS41MjRsLjU1Ni44M2E3LjA3IDcuMDcgMCAwIDEgLjc5My0uNDU4TDQuNDYuODI0ek0yLjcyNSAxLjk4NWMtLjI2Mi4yMy0uNTEuNDc4LS43NC43NGwuNzUyLjY2Yy4yMDItLjIzLjQxOC0uNDQ2LjY0OC0uNjQ4bC0uNjYtLjc1MnptMTEuMjkuNzRhOC4wNTggOC4wNTggMCAwIDAtLjc0LS43NGwtLjY2Ljc1MmMuMjMuMjAyLjQ0Ny40MTguNjQ4LjY0OGwuNzUyLS42NnptMS4xNjEgMS43MzVhNy45OCA3Ljk4IDAgMCAwLS41MjQtLjkwNWwtLjgzLjU1NmMuMTY5LjI1My4zMjIuNTE4LjQ1OC43OTNsLjg5Ni0uNDQzek0xLjM0OCAzLjU1NWMtLjE5NC4yODktLjM3LjU5MS0uNTI0LjkwNmwuODk2LjQ0M2MuMTM2LS4yNzUuMjktLjU0LjQ1OS0uNzkzbC0uODMxLS41NTZ6TS40MjMgNS40MjhhNy45NDUgNy45NDUgMCAwIDAtLjI3IDEuMDExbC45OC4xOTRjLjA2LS4zMDIuMTQtLjU5Ny4yMzctLjg4NGwtLjk0Ny0uMzIxek0xNS44NDggNi40NGE3Ljk0MyA3Ljk0MyAwIDAgMC0uMjctMS4wMTJsLS45NDguMzIxYy4wOTguMjg3LjE3Ny41ODIuMjM3Ljg4NGwuOTgtLjE5NHpNLjAxNyA3LjQ3N2E4LjExMyA4LjExMyAwIDAgMCAwIDEuMDQ2bC45OTgtLjA2NGE3LjExNyA3LjExNyAwIDAgMSAwLS45MThsLS45OTgtLjA2NHpNMTYgOGE4LjEgOC4xIDAgMCAwLS4wMTctLjUyM2wtLjk5OC4wNjRhNy4xMSA3LjExIDAgMCAxIDAgLjkxOGwuOTk4LjA2NEE4LjEgOC4xIDAgMCAwIDE2IDh6TS4xNTIgOS41NmMuMDY5LjM0Ni4xNi42ODQuMjcgMS4wMTJsLjk0OC0uMzIxYTYuOTQ0IDYuOTQ0IDAgMCAxLS4yMzctLjg4NGwtLjk4LjE5NHptMTUuNDI1IDEuMDEyYy4xMTItLjMyOC4yMDItLjY2Ni4yNy0xLjAxMWwtLjk4LS4xOTRjLS4wNi4zMDItLjE0LjU5Ny0uMjM3Ljg4NGwuOTQ3LjMyMXpNLjgyNCAxMS41NGE4IDggMCAwIDAgLjUyNC45MDVsLjgzLS41NTZhNi45OTkgNi45OTkgMCAwIDEtLjQ1OC0uNzkzbC0uODk2LjQ0M3ptMTMuODI4LjkwNWMuMTk0LS4yODkuMzctLjU5MS41MjQtLjkwNmwtLjg5Ni0uNDQzYy0uMTM2LjI3NS0uMjkuNTQtLjQ1OS43OTNsLjgzMS41NTZ6bS0xMi42NjcuODNjLjIzLjI2Mi40NzguNTEuNzQuNzRsLjY2LS43NTJhNy4wNDcgNy4wNDcgMCAwIDEtLjY0OC0uNjQ4bC0uNzUyLjY2em0xMS4yOS43NGMuMjYyLS4yMy41MS0uNDc4Ljc0LS43NGwtLjc1Mi0uNjZjLS4yMDEuMjMtLjQxOC40NDctLjY0OC42NDhsLjY2Ljc1MnptLTEuNzM1IDEuMTYxYy4zMTQtLjE1NS42MTYtLjMzLjkwNS0uNTI0bC0uNTU2LS44M2E3LjA3IDcuMDcgMCAwIDEtLjc5My40NThsLjQ0My44OTZ6bS03Ljk4NS0uNTI0Yy4yODkuMTk0LjU5MS4zNy45MDYuNTI0bC40NDMtLjg5NmE2Ljk5OCA2Ljk5OCAwIDAgMS0uNzkzLS40NTlsLS41NTYuODMxem0xLjg3My45MjVjLjMyOC4xMTIuNjY2LjIwMiAxLjAxMS4yN2wuMTk0LS45OGE2Ljk1MyA2Ljk1MyAwIDAgMS0uODg0LS4yMzdsLS4zMjEuOTQ3em00LjEzMi4yNzFhNy45NDQgNy45NDQgMCAwIDAgMS4wMTItLjI3bC0uMzIxLS45NDhhNi45NTQgNi45NTQgMCAwIDEtLjg4NC4yMzdsLjE5NC45OHptLTIuMDgzLjEzNWE4LjEgOC4xIDAgMCAwIDEuMDQ2IDBsLS4wNjQtLjk5OGE3LjExIDcuMTEgMCAwIDEtLjkxOCAwbC0uMDY0Ljk5OHpNOC41IDQuNWEuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMCAwIDEgMHYtM2gzYS41LjUgMCAwIDAgMC0xaC0zdi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsdXNDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNOC41IDQuNWEuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMCAwIDEgMHYtM2gzYS41LjUgMCAwIDAgMC0xaC0zdi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsdXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDRhLjUuNSAwIDAgMSAuNS41djNoM2EuNS41IDAgMCAxIDAgMWgtM3YzYS41LjUgMCAwIDEtMSAwdi0zaC0zYS41LjUgMCAwIDEgMC0xaDN2LTNBLjUuNSAwIDAgMSA4IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUGx1c0xnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGExIDEgMCAwIDEgMSAxdjZoNmExIDEgMCAxIDEgMCAySDl2NmExIDEgMCAxIDEtMiAwVjlIMWExIDEgMCAwIDEgMC0yaDZWMWExIDEgMCAwIDEgMS0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsdXNTcXVhcmVEb3R0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDBjLS4xNjYgMC0uMzMuMDE2LS40ODcuMDQ4bC4xOTQuOThBMS41MSAxLjUxIDAgMCAxIDIuNSAxaC40NThWMEgyLjV6bTIuMjkyIDBoLS45MTd2MWguOTE3VjB6bTEuODMzIDBoLS45MTd2MWguOTE3VjB6bTEuODMzIDBoLS45MTZ2MWguOTE2VjB6bTEuODM0IDBoLS45MTd2MWguOTE3VjB6bTEuODMzIDBoLS45MTd2MWguOTE3VjB6TTEzLjUgMGgtLjQ1OHYxaC40NThjLjEgMCAuMTk5LjAxLjI5My4wMjlsLjE5NC0uOTgxQTIuNTEgMi41MSAwIDAgMCAxMy41IDB6bTIuMDc5IDEuMTFhMi41MTEgMi41MTEgMCAwIDAtLjY5LS42ODlsLS41NTYuODMxYy4xNjQuMTEuMzA1LjI1MS40MTUuNDE1bC44My0uNTU2ek0xLjExLjQyMWEyLjUxMSAyLjUxMSAwIDAgMC0uNjg5LjY5bC44MzEuNTU2Yy4xMS0uMTY0LjI1MS0uMzA1LjQxNS0uNDE1TDEuMTEuNDIyek0xNiAyLjVjMC0uMTY2LS4wMTYtLjMzLS4wNDgtLjQ4N2wtLjk4LjE5NGMuMDE4LjA5NC4wMjguMTkyLjAyOC4yOTN2LjQ1OGgxVjIuNXpNLjA0OCAyLjAxM0EyLjUxIDIuNTEgMCAwIDAgMCAyLjV2LjQ1OGgxVjIuNWMwLS4xLjAxLS4xOTkuMDI5LS4yOTNsLS45ODEtLjE5NHpNMCAzLjg3NXYuOTE3aDF2LS45MTdIMHptMTYgLjkxN3YtLjkxN2gtMXYuOTE3aDF6TTAgNS43MDh2LjkxN2gxdi0uOTE3SDB6bTE2IC45MTd2LS45MTdoLTF2LjkxN2gxek0wIDcuNTQydi45MTZoMXYtLjkxNkgwem0xNSAuOTE2aDF2LS45MTZoLTF2LjkxNnpNMCA5LjM3NXYuOTE3aDF2LS45MTdIMHptMTYgLjkxN3YtLjkxN2gtMXYuOTE3aDF6bS0xNiAuOTE2di45MTdoMXYtLjkxN0gwem0xNiAuOTE3di0uOTE3aC0xdi45MTdoMXptLTE2IC45MTd2LjQ1OGMwIC4xNjYuMDE2LjMzLjA0OC40ODdsLjk4LS4xOTRBMS41MSAxLjUxIDAgMCAxIDEgMTMuNXYtLjQ1OEgwem0xNiAuNDU4di0uNDU4aC0xdi40NThjMCAuMS0uMDEuMTk5LS4wMjkuMjkzbC45ODEuMTk0Yy4wMzItLjE1OC4wNDgtLjMyLjA0OC0uNDg3ek0uNDIxIDE0Ljg5Yy4xODMuMjcyLjQxNy41MDYuNjkuNjg5bC41NTYtLjgzMWExLjUxIDEuNTEgMCAwIDEtLjQxNS0uNDE1bC0uODMuNTU2em0xNC40NjkuNjg5Yy4yNzItLjE4My41MDYtLjQxNy42ODktLjY5bC0uODMxLS41NTZjLS4xMS4xNjQtLjI1MS4zMDUtLjQxNS40MTVsLjU1Ni44M3ptLTEyLjg3Ny4zNzNjLjE1OC4wMzIuMzIuMDQ4LjQ4Ny4wNDhoLjQ1OHYtMUgyLjVjLS4xIDAtLjE5OS0uMDEtLjI5My0uMDI5bC0uMTk0Ljk4MXpNMTMuNSAxNmMuMTY2IDAgLjMzLS4wMTYuNDg3LS4wNDhsLS4xOTQtLjk4QTEuNTEgMS41MSAwIDAgMSAxMy41IDE1aC0uNDU4djFoLjQ1OHptLTkuNjI1IDBoLjkxN3YtMWgtLjkxN3Yxem0xLjgzMyAwaC45MTd2LTFoLS45MTd2MXptMS44MzQtMXYxaC45MTZ2LTFoLS45MTZ6bTEuODMzIDFoLjkxN3YtMWgtLjkxN3Yxem0xLjgzMyAwaC45MTd2LTFoLS45MTd2MXpNOC41IDQuNWEuNS41IDAgMCAwLTEgMHYzaC0zYS41LjUgMCAwIDAgMCAxaDN2M2EuNS41IDAgMCAwIDEgMHYtM2gzYS41LjUgMCAwIDAgMC0xaC0zdi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsdXNTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptNi41IDQuNXYzaDNhLjUuNSAwIDAgMSAwIDFoLTN2M2EuNS41IDAgMCAxLTEgMHYtM2gtM2EuNS41IDAgMCAxIDAtMWgzdi0zYS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1BsdXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNGEuNS41IDAgMCAxIC41LjV2M2gzYS41LjUgMCAwIDEgMCAxaC0zdjNhLjUuNSAwIDAgMS0xIDB2LTNoLTNhLjUuNSAwIDAgMSAwLTFoM3YtM0EuNS41IDAgMCAxIDggNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNGEuNS41IDAgMCAxIC41LjV2M2gzYS41LjUgMCAwIDEgMCAxaC0zdjNhLjUuNSAwIDAgMS0xIDB2LTNoLTNhLjUuNSAwIDAgMSAwLTFoM3YtM0EuNS41IDAgMCAxIDggNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMXY3aDFWMWgtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDguODEyYTQuOTk5IDQuOTk5IDAgMCAxIDIuNTc4LTQuMzc1bC0uNDg1LS44NzRBNiA2IDAgMSAwIDExIDMuNjE2bC0uNTAxLjg2NUE1IDUgMCAxIDEgMyA4LjgxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQcmludGVyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDFhMiAyIDAgMCAwLTIgMnYxaDEwVjNhMiAyIDAgMCAwLTItMkg1em02IDhINWExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDdhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtMXYtMmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYySDJhMiAyIDAgMCAxLTItMlY3em0yLjUgMWEuNS41IDAgMSAwIDAtMSAuNS41IDAgMCAwIDAgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQcmludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA4YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMWEyIDIgMCAwIDAtMiAydjJIMmEyIDIgMCAwIDAtMiAydjNhMiAyIDAgMCAwIDIgMmgxdjFhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTFoMWEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMVYzYTIgMiAwIDAgMC0yLTJINXpNNCAzYTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDEgMSAxdjJINFYzem0xIDVhMiAyIDAgMCAwLTIgMnYxSDJhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFoLTF2LTFhMiAyIDAgMCAwLTItMkg1em03IDJ2M2ExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXYtM2ExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDEgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNQdXp6bGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMTEyIDMuNjQ1QTEuNSAxLjUgMCAwIDEgNC42MDUgMkg3YS41LjUgMCAwIDEgLjUuNXYuMzgyYzAgLjY5Ni0uNDk3IDEuMTgyLS44NzIgMS40NjlhLjQ1OS40NTkgMCAwIDAtLjExNS4xMTguMTEzLjExMyAwIDAgMC0uMDEyLjAyNUw2LjUgNC41di4wMDNsLjAwMy4wMWMuMDA0LjAxLjAxNC4wMjguMDM2LjA1M2EuODYuODYgMCAwIDAgLjI3LjE5NEM3LjA5IDQuOSA3LjUxIDUgOCA1Yy40OTIgMCAuOTEyLS4xIDEuMTktLjI0YS44Ni44NiAwIDAgMCAuMjcxLS4xOTQuMjEzLjIxMyAwIDAgMCAuMDM2LS4wNTRsLjAwMy0uMDF2LS4wMDhhLjExMi4xMTIgMCAwIDAtLjAxMi0uMDI1LjQ1OS40NTkgMCAwIDAtLjExNS0uMTE4Yy0uMzc1LS4yODctLjg3Mi0uNzczLS44NzItMS40NjlWMi41QS41LjUgMCAwIDEgOSAyaDIuMzk1YTEuNSAxLjUgMCAwIDEgMS40OTMgMS42NDVMMTIuNjQ1IDYuNWguMjM3Yy4xOTUgMCAuNDItLjE0Ny42NzUtLjQ4LjIxLS4yNzQuNTI4LS41Mi45NDMtLjUyLjU2OCAwIC45NDcuNDQ3IDEuMTU0Ljg2MkMxNS44NzcgNi44MDcgMTYgNy4zODcgMTYgOHMtLjEyMyAxLjE5My0uMzQ2IDEuNjM4Yy0uMjA3LjQxNS0uNTg2Ljg2Mi0xLjE1NC44NjItLjQxNSAwLS43MzMtLjI0Ni0uOTQzLS41Mi0uMjU1LS4zMzMtLjQ4LS40OC0uNjc1LS40OGgtLjIzN2wuMjQzIDIuODU1QTEuNSAxLjUgMCAwIDEgMTEuMzk1IDE0SDlhLjUuNSAwIDAgMS0uNS0uNXYtLjM4MmMwLS42OTYuNDk3LTEuMTgyLjg3Mi0xLjQ2OWEuNDU5LjQ1OSAwIDAgMCAuMTE1LS4xMTguMTEzLjExMyAwIDAgMCAuMDEyLS4wMjVMOS41IDExLjV2LS4wMDNsLS4wMDMtLjAxYS4yMTQuMjE0IDAgMCAwLS4wMzYtLjA1My44NTkuODU5IDAgMCAwLS4yNy0uMTk0QzguOTEgMTEuMSA4LjQ5IDExIDggMTFjLS40OTEgMC0uOTEyLjEtMS4xOS4yNGEuODU5Ljg1OSAwIDAgMC0uMjcxLjE5NC4yMTQuMjE0IDAgMCAwLS4wMzYuMDU0bC0uMDAzLjAxdi4wMDJsLjAwMS4wMDZhLjExMy4xMTMgMCAwIDAgLjAxMi4wMjVjLjAxNi4wMjcuMDUuMDY4LjExNS4xMTguMzc1LjI4Ny44NzIuNzczLjg3MiAxLjQ2OXYuMzgyYS41LjUgMCAwIDEtLjUuNUg0LjYwNWExLjUgMS41IDAgMCAxLTEuNDkzLTEuNjQ1TDMuMzU2IDkuNWgtLjIzOGMtLjE5NSAwLS40Mi4xNDctLjY3NS40OC0uMjEuMjc0LS41MjguNTItLjk0My41Mi0uNTY4IDAtLjk0Ny0uNDQ3LTEuMTU0LS44NjJDLjEyMyA5LjE5MyAwIDguNjEzIDAgOHMuMTIzLTEuMTkzLjM0Ni0xLjYzOEMuNTUzIDUuOTQ3LjkzMiA1LjUgMS41IDUuNWMuNDE1IDAgLjczMy4yNDYuOTQzLjUyLjI1NS4zMzMuNDguNDguNjc1LjQ4aC4yMzhsLS4yNDQtMi44NTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUHV6emxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMTEyIDMuNjQ1QTEuNSAxLjUgMCAwIDEgNC42MDUgMkg3YS41LjUgMCAwIDEgLjUuNXYuMzgyYzAgLjY5Ni0uNDk3IDEuMTgyLS44NzIgMS40NjlhLjQ1OS40NTkgMCAwIDAtLjExNS4xMTguMTEzLjExMyAwIDAgMC0uMDEyLjAyNUw2LjUgNC41di4wMDNsLjAwMy4wMWMuMDA0LjAxLjAxNC4wMjguMDM2LjA1M2EuODYuODYgMCAwIDAgLjI3LjE5NEM3LjA5IDQuOSA3LjUxIDUgOCA1Yy40OTIgMCAuOTEyLS4xIDEuMTktLjI0YS44Ni44NiAwIDAgMCAuMjcxLS4xOTQuMjEzLjIxMyAwIDAgMCAuMDM5LS4wNjN2LS4wMDlhLjExMi4xMTIgMCAwIDAtLjAxMi0uMDI1LjQ1OS40NTkgMCAwIDAtLjExNS0uMTE4Yy0uMzc1LS4yODctLjg3Mi0uNzczLS44NzItMS40NjlWMi41QS41LjUgMCAwIDEgOSAyaDIuMzk1YTEuNSAxLjUgMCAwIDEgMS40OTMgMS42NDVMMTIuNjQ1IDYuNWguMjM3Yy4xOTUgMCAuNDItLjE0Ny42NzUtLjQ4LjIxLS4yNzQuNTI4LS41Mi45NDMtLjUyLjU2OCAwIC45NDcuNDQ3IDEuMTU0Ljg2MkMxNS44NzcgNi44MDcgMTYgNy4zODcgMTYgOHMtLjEyMyAxLjE5My0uMzQ2IDEuNjM4Yy0uMjA3LjQxNS0uNTg2Ljg2Mi0xLjE1NC44NjItLjQxNSAwLS43MzMtLjI0Ni0uOTQzLS41Mi0uMjU1LS4zMzMtLjQ4LS40OC0uNjc1LS40OGgtLjIzN2wuMjQzIDIuODU1QTEuNSAxLjUgMCAwIDEgMTEuMzk1IDE0SDlhLjUuNSAwIDAgMS0uNS0uNXYtLjM4MmMwLS42OTYuNDk3LTEuMTgyLjg3Mi0xLjQ2OWEuNDU5LjQ1OSAwIDAgMCAuMTE1LS4xMTguMTEzLjExMyAwIDAgMCAuMDEyLS4wMjVMOS41IDExLjV2LS4wMDNhLjIxNC4yMTQgMCAwIDAtLjAzOS0uMDY0Ljg1OS44NTkgMCAwIDAtLjI3LS4xOTNDOC45MSAxMS4xIDguNDkgMTEgOCAxMWMtLjQ5MSAwLS45MTIuMS0xLjE5LjI0YS44NTkuODU5IDAgMCAwLS4yNzEuMTk0LjIxNC4yMTQgMCAwIDAtLjAzOS4wNjN2LjAwM2wuMDAxLjAwNmEuMTEzLjExMyAwIDAgMCAuMDEyLjAyNWMuMDE2LjAyNy4wNS4wNjguMTE1LjExOC4zNzUuMjg3Ljg3Mi43NzMuODcyIDEuNDY5di4zODJhLjUuNSAwIDAgMS0uNS41SDQuNjA1YTEuNSAxLjUgMCAwIDEtMS40OTMtMS42NDVMMy4zNTYgOS41aC0uMjM4Yy0uMTk1IDAtLjQyLjE0Ny0uNjc1LjQ4LS4yMS4yNzQtLjUyOC41Mi0uOTQzLjUyLS41NjggMC0uOTQ3LS40NDctMS4xNTQtLjg2MkMuMTIzIDkuMTkzIDAgOC42MTMgMCA4cy4xMjMtMS4xOTMuMzQ2LTEuNjM4Qy41NTMgNS45NDcuOTMyIDUuNSAxLjUgNS41Yy40MTUgMCAuNzMzLjI0Ni45NDMuNTIuMjU1LjMzMy40OC40OC42NzUuNDhoLjIzOGwtLjI0NC0yLjg1NXpNNC42MDUgM2EuNS41IDAgMCAwLS40OTguNTVsLjAwMS4wMDcuMjkgMy40QS41LjUgMCAwIDEgMy45IDcuNWgtLjc4MmMtLjY5NiAwLTEuMTgyLS40OTctMS40NjktLjg3MmEuNDU5LjQ1OSAwIDAgMC0uMTE4LS4xMTUuMTEyLjExMiAwIDAgMC0uMDI1LS4wMTJMMS41IDYuNWgtLjAwM2EuMjEzLjIxMyAwIDAgMC0uMDY0LjAzOS44Ni44NiAwIDAgMC0uMTkzLjI3QzEuMSA3LjA5IDEgNy41MSAxIDhjMCAuNDkxLjEuOTEyLjI0IDEuMTkuMDcuMTQuMTQuMjI1LjE5NC4yNzFhLjIxMy4yMTMgMCAwIDAgLjA2My4wMzlIMS41bC4wMDYtLjAwMWEuMTEyLjExMiAwIDAgMCAuMDI1LS4wMTIuNDU5LjQ1OSAwIDAgMCAuMTE4LS4xMTVjLjI4Ny0uMzc1Ljc3My0uODcyIDEuNDY5LS44NzJIMy45YS41LjUgMCAwIDEgLjQ5OC41NDJsLS4yOSAzLjQwOGEuNS41IDAgMCAwIC40OTcuNTVoMS44NzhjLS4wNDgtLjE2Ni0uMTk1LS4zNTItLjQ2My0uNTU3LS4yNzQtLjIxLS41Mi0uNTI4LS41Mi0uOTQzIDAtLjU2OC40NDctLjk0Ny44NjItMS4xNTRDNi44MDcgMTAuMTIzIDcuMzg3IDEwIDggMTBzMS4xOTMuMTIzIDEuNjM4LjM0NmMuNDE1LjIwNy44NjIuNTg2Ljg2MiAxLjE1NCAwIC40MTUtLjI0Ni43MzMtLjUyLjk0My0uMjY4LjIwNS0uNDE1LjM5LS40NjMuNTU3aDEuODc4YS41LjUgMCAwIDAgLjQ5OC0uNTVsLS4wMDEtLjAwNy0uMjktMy40QS41LjUgMCAwIDEgMTIuMSA4LjVoLjc4MmMuNjk2IDAgMS4xODIuNDk3IDEuNDY5Ljg3Mi4wNS4wNjUuMDkxLjA5OS4xMTguMTE1LjAxMy4wMDguMDIxLjAxLjAyNS4wMTJhLjAyLjAyIDAgMCAwIC4wMDYuMDAxaC4wMDNhLjIxNC4yMTQgMCAwIDAgLjA2NC0uMDM5Ljg2Ljg2IDAgMCAwIC4xOTMtLjI3Yy4xNC0uMjguMjQtLjcuMjQtMS4xOTEgMC0uNDkyLS4xLS45MTItLjI0LTEuMTlhLjg2Ljg2IDAgMCAwLS4xOTQtLjI3MS4yMTUuMjE1IDAgMCAwLS4wNjMtLjAzOUgxNC41bC0uMDA2LjAwMWEuMTEzLjExMyAwIDAgMC0uMDI1LjAxMi40NTkuNDU5IDAgMCAwLS4xMTguMTE1Yy0uMjg3LjM3NS0uNzczLjg3Mi0xLjQ2OS44NzJIMTIuMWEuNS41IDAgMCAxLS40OTgtLjU0M2wuMjktMy40MDdhLjUuNSAwIDAgMC0uNDk3LS41NUg5LjUxN2MuMDQ4LjE2Ni4xOTUuMzUyLjQ2My41NTcuMjc0LjIxLjUyLjUyOC41Mi45NDMgMCAuNTY4LS40NDcuOTQ3LS44NjIgMS4xNTRDOS4xOTMgNS44NzcgOC42MTMgNiA4IDZzLTEuMTkzLS4xMjMtMS42MzgtLjM0NkM1Ljk0NyA1LjQ0NyA1LjUgNS4wNjggNS41IDQuNWMwLS40MTUuMjQ2LS43MzMuNTItLjk0My4yNjgtLjIwNS40MTUtLjM5LjQ2My0uNTU3SDQuNjA1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1F1ZXN0aW9uQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTUuNDk2IDYuMDMzaC44MjVjLjEzOCAwIC4yNDgtLjExMy4yNjYtLjI1LjA5LS42NTYuNTQtMS4xMzQgMS4zNDItMS4xMzQuNjg2IDAgMS4zMTQuMzQzIDEuMzE0IDEuMTY4IDAgLjYzNS0uMzc0LjkyNy0uOTY1IDEuMzcxLS42NzMuNDg5LTEuMjA2IDEuMDYtMS4xNjggMS45ODdsLjAwMy4yMTdhLjI1LjI1IDAgMCAwIC4yNS4yNDZoLjgxMWEuMjUuMjUgMCAwIDAgLjI1LS4yNXYtLjEwNWMwLS43MTguMjczLS45MjcgMS4wMS0xLjQ4Ni42MDktLjQ2MyAxLjI0NC0uOTc3IDEuMjQ0LTIuMDU2IDAtMS41MTEtMS4yNzYtMi4yNDEtMi42NzMtMi4yNDEtMS4yNjcgMC0yLjY1NS41OS0yLjc1IDIuMjg2YS4yMzcuMjM3IDAgMCAwIC4yNDEuMjQ3em0yLjMyNSA2LjQ0M2MuNjEgMCAxLjAyOS0uMzk0IDEuMDI5LS45MjcgMC0uNTUyLS40Mi0uOTQtMS4wMjktLjk0LS41ODQgMC0xLjAwOS4zODgtMS4wMDkuOTQgMCAuNTMzLjQyNS45MjcgMS4wMS45Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUXVlc3Rpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjI1NSA1Ljc4NmEuMjM3LjIzNyAwIDAgMCAuMjQxLjI0N2guODI1Yy4xMzggMCAuMjQ4LS4xMTMuMjY2LS4yNS4wOS0uNjU2LjU0LTEuMTM0IDEuMzQyLTEuMTM0LjY4NiAwIDEuMzE0LjM0MyAxLjMxNCAxLjE2OCAwIC42MzUtLjM3NC45MjctLjk2NSAxLjM3MS0uNjczLjQ4OS0xLjIwNiAxLjA2LTEuMTY4IDEuOTg3bC4wMDMuMjE3YS4yNS4yNSAwIDAgMCAuMjUuMjQ2aC44MTFhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS4xMDVjMC0uNzE4LjI3My0uOTI3IDEuMDEtMS40ODYuNjA5LS40NjMgMS4yNDQtLjk3NyAxLjI0NC0yLjA1NiAwLTEuNTExLTEuMjc2LTIuMjQxLTIuNjczLTIuMjQxLTEuMjY3IDAtMi42NTUuNTktMi43NSAyLjI4NnptMS41NTcgNS43NjNjMCAuNTMzLjQyNS45MjcgMS4wMS45MjcuNjA5IDAgMS4wMjgtLjM5NCAxLjAyOC0uOTI3IDAtLjU1Mi0uNDItLjk0LTEuMDI5LS45NC0uNTg0IDAtMS4wMDkuMzg4LTEuMDA5Ljk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1F1ZXN0aW9uRGlhbW9uZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wNS40MzVjLS41OC0uNTgtMS41Mi0uNTgtMi4xIDBMLjQzNiA2Ljk1Yy0uNTguNTgtLjU4IDEuNTE5IDAgMi4wOThsNi41MTYgNi41MTZjLjU4LjU4IDEuNTE5LjU4IDIuMDk4IDBsNi41MTYtNi41MTZjLjU4LS41OC41OC0xLjUxOSAwLTIuMDk4TDkuMDUuNDM1ek01LjQ5NSA2LjAzM2EuMjM3LjIzNyAwIDAgMS0uMjQtLjI0N0M1LjM1IDQuMDkxIDYuNzM3IDMuNSA4LjAwNSAzLjVjMS4zOTYgMCAyLjY3Mi43MyAyLjY3MiAyLjI0IDAgMS4wOC0uNjM1IDEuNTk0LTEuMjQ0IDIuMDU3LS43MzcuNTU5LTEuMDEuNzY4LTEuMDEgMS40ODZ2LjEwNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uODFhLjI1LjI1IDAgMCAxLS4yNS0uMjQ2bC0uMDA0LS4yMTdjLS4wMzgtLjkyNy40OTUtMS40OTggMS4xNjgtMS45ODcuNTktLjQ0NC45NjUtLjczNi45NjUtMS4zNzEgMC0uODI1LS42MjgtMS4xNjgtMS4zMTQtMS4xNjgtLjgwMyAwLTEuMjUzLjQ3OC0xLjM0MiAxLjEzNC0uMDE4LjEzNy0uMTI4LjI1LS4yNjYuMjVoLS44MjV6bTIuMzI1IDYuNDQzYy0uNTg0IDAtMS4wMDktLjM5NC0xLjAwOS0uOTI3IDAtLjU1Mi40MjUtLjk0IDEuMDEtLjk0LjYwOSAwIDEuMDI4LjM4OCAxLjAyOC45NCAwIC41MzMtLjQyLjkyNy0xLjAyOS45Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUXVlc3Rpb25EaWFtb25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOTUuNDM1Yy41OC0uNTggMS41Mi0uNTggMi4xIDBsNi41MTUgNi41MTZjLjU4LjU4LjU4IDEuNTE5IDAgMi4wOThMOS4wNSAxNS41NjVjLS41OC41OC0xLjUxOS41OC0yLjA5OCAwTC40MzUgOS4wNWExLjQ4MiAxLjQ4MiAwIDAgMSAwLTIuMDk4TDYuOTUuNDM1em0xLjQuN2EuNDk1LjQ5NSAwIDAgMC0uNyAwTDEuMTM0IDcuNjVhLjQ5NS40OTUgMCAwIDAgMCAuN2w2LjUxNiA2LjUxNmEuNDk1LjQ5NSAwIDAgMCAuNyAwbDYuNTE2LTYuNTE2YS40OTUuNDk1IDAgMCAwIDAtLjdMOC4zNSAxLjEzNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjI1NSA1Ljc4NmEuMjM3LjIzNyAwIDAgMCAuMjQxLjI0N2guODI1Yy4xMzggMCAuMjQ4LS4xMTMuMjY2LS4yNS4wOS0uNjU2LjU0LTEuMTM0IDEuMzQyLTEuMTM0LjY4NiAwIDEuMzE0LjM0MyAxLjMxNCAxLjE2OCAwIC42MzUtLjM3NC45MjctLjk2NSAxLjM3MS0uNjczLjQ4OS0xLjIwNiAxLjA2LTEuMTY4IDEuOTg3bC4wMDMuMjE3YS4yNS4yNSAwIDAgMCAuMjUuMjQ2aC44MTFhLjI1LjI1IDAgMCAwIC4yNS0uMjV2LS4xMDVjMC0uNzE4LjI3My0uOTI3IDEuMDEtMS40ODYuNjA5LS40NjMgMS4yNDQtLjk3NyAxLjI0NC0yLjA1NiAwLTEuNTExLTEuMjc2LTIuMjQxLTIuNjczLTIuMjQxLTEuMjY3IDAtMi42NTUuNTktMi43NSAyLjI4NnptMS41NTcgNS43NjNjMCAuNTMzLjQyNS45MjcgMS4wMS45MjcuNjA5IDAgMS4wMjgtLjM5NCAxLjAyOC0uOTI3IDAtLjU1Mi0uNDItLjk0LTEuMDI5LS45NC0uNTg0IDAtMS4wMDkuMzg4LTEuMDA5Ljk0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1F1ZXN0aW9uTGcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA0LjA3NWEuNDIzLjQyMyAwIDAgMCAuNDMuNDRINC45Yy4yNDcgMCAuNDQyLS4yLjQ3NS0uNDQ1LjE1OS0xLjE3Ljk2Mi0yLjAyMiAyLjM5My0yLjAyMiAxLjIyMiAwIDIuMzQyLjYxMSAyLjM0MiAyLjA4MiAwIDEuMTMyLS42NjggMS42NTItMS43MiAyLjQ0NC0xLjIuODcyLTIuMTUgMS44OS0yLjA4MiAzLjU0MmwuMDA1LjM4NmMuMDAzLjI0NC4yMDIuNDQuNDQ2LjQ0aDEuNDQ1Yy4yNDcgMCAuNDQ2LS4yLjQ0Ni0uNDQ2di0uMTg4YzAtMS4yNzguNDg3LTEuNjUyIDEuOC0yLjY0NyAxLjA4Ni0uODI2IDIuMjE3LTEuNzQzIDIuMjE3LTMuNjY3QzEyLjY2NyAxLjMwMSAxMC4zOTMgMCA3LjkwMyAwIDUuNjQ1IDAgMy4xNyAxLjA1MyAzLjAwMSA0LjA3NXptMi43NzYgMTAuMjczYzAgLjk1Ljc1OCAxLjY1MiAxLjggMS42NTIgMS4wODUgMCAxLjgzMi0uNzAyIDEuODMyLTEuNjUyIDAtLjk4NS0uNzQ3LTEuNjc1LTEuODMzLTEuNjc1LTEuMDQgMC0xLjc5OS42OS0xLjc5OSAxLjY3NXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNRdWVzdGlvbk9jdGFnb25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQ2LjE0NkEuNS41IDAgMCAwIDExLjEwNyAwSDQuODkzYS41LjUgMCAwIDAtLjM1My4xNDZMLjE0NiA0LjU0QS41LjUgMCAwIDAgMCA0Ljg5M3Y2LjIxNGEuNS41IDAgMCAwIC4xNDYuMzUzbDQuMzk0IDQuMzk0YS41LjUgMCAwIDAgLjM1My4xNDZoNi4yMTRhLjUuNSAwIDAgMCAuMzUzLS4xNDZsNC4zOTQtNC4zOTRhLjUuNSAwIDAgMCAuMTQ2LS4zNTNWNC44OTNhLjUuNSAwIDAgMC0uMTQ2LS4zNTNMMTEuNDYuMTQ2ek01LjQ5NiA2LjAzM2EuMjM3LjIzNyAwIDAgMS0uMjQtLjI0N0M1LjM1IDQuMDkxIDYuNzM3IDMuNSA4LjAwNSAzLjVjMS4zOTYgMCAyLjY3Mi43MyAyLjY3MiAyLjI0IDAgMS4wOC0uNjM1IDEuNTk0LTEuMjQ0IDIuMDU3LS43MzcuNTU5LTEuMDEuNzY4LTEuMDEgMS40ODZ2LjEwNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uODFhLjI1LjI1IDAgMCAxLS4yNS0uMjQ2bC0uMDA0LS4yMTdjLS4wMzgtLjkyNy40OTUtMS40OTggMS4xNjgtMS45ODcuNTktLjQ0NC45NjUtLjczNi45NjUtMS4zNzEgMC0uODI1LS42MjgtMS4xNjgtMS4zMTQtMS4xNjgtLjgwMyAwLTEuMjUzLjQ3OC0xLjM0MiAxLjEzNC0uMDE4LjEzNy0uMTI4LjI1LS4yNjYuMjVoLS44MjV6bTIuMzI1IDYuNDQzYy0uNTg0IDAtMS4wMDktLjM5NC0xLjAwOS0uOTI3IDAtLjU1Mi40MjUtLjk0IDEuMDEtLjk0LjYwOSAwIDEuMDI4LjM4OCAxLjAyOC45NCAwIC41MzMtLjQyLjkyNy0xLjAyOS45Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUXVlc3Rpb25PY3RhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTQuMTQ2QS41LjUgMCAwIDEgNC44OTMgMGg2LjIxNGEuNS41IDAgMCAxIC4zNTMuMTQ2bDQuMzk0IDQuMzk0YS41LjUgMCAwIDEgLjE0Ni4zNTN2Ni4yMTRhLjUuNSAwIDAgMS0uMTQ2LjM1M2wtNC4zOTQgNC4zOTRhLjUuNSAwIDAgMS0uMzUzLjE0Nkg0Ljg5M2EuNS41IDAgMCAxLS4zNTMtLjE0NkwuMTQ2IDExLjQ2QS41LjUgMCAwIDEgMCAxMS4xMDdWNC44OTNhLjUuNSAwIDAgMSAuMTQ2LS4zNTNMNC41NC4xNDZ6TTUuMSAxIDEgNS4xdjUuOEw1LjEgMTVoNS44bDQuMS00LjFWNS4xTDEwLjkgMUg1LjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4yNTUgNS43ODZhLjIzNy4yMzcgMCAwIDAgLjI0MS4yNDdoLjgyNWMuMTM4IDAgLjI0OC0uMTEzLjI2Ni0uMjUuMDktLjY1Ni41NC0xLjEzNCAxLjM0Mi0xLjEzNC42ODYgMCAxLjMxNC4zNDMgMS4zMTQgMS4xNjggMCAuNjM1LS4zNzQuOTI3LS45NjUgMS4zNzEtLjY3My40ODktMS4yMDYgMS4wNi0xLjE2OCAxLjk4N2wuMDAzLjIxN2EuMjUuMjUgMCAwIDAgLjI1LjI0NmguODExYS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uMTA1YzAtLjcxOC4yNzMtLjkyNyAxLjAxLTEuNDg2LjYwOS0uNDYzIDEuMjQ0LS45NzcgMS4yNDQtMi4wNTYgMC0xLjUxMS0xLjI3Ni0yLjI0MS0yLjY3My0yLjI0MS0xLjI2NyAwLTIuNjU1LjU5LTIuNzUgMi4yODZ6bTEuNTU3IDUuNzYzYzAgLjUzMy40MjUuOTI3IDEuMDEuOTI3LjYwOSAwIDEuMDI4LS4zOTQgMS4wMjgtLjkyNyAwLS41NTItLjQyLS45NC0xLjAyOS0uOTQtLjU4NCAwLTEuMDA5LjM4OC0xLjAwOS45NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNRdWVzdGlvblNxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyem0zLjQ5NiA2LjAzM2EuMjM3LjIzNyAwIDAgMS0uMjQtLjI0N0M1LjM1IDQuMDkxIDYuNzM3IDMuNSA4LjAwNSAzLjVjMS4zOTYgMCAyLjY3Mi43MyAyLjY3MiAyLjI0IDAgMS4wOC0uNjM1IDEuNTk0LTEuMjQ0IDIuMDU3LS43MzcuNTU5LTEuMDEuNzY4LTEuMDEgMS40ODZ2LjEwNWEuMjUuMjUgMCAwIDEtLjI1LjI1aC0uODFhLjI1LjI1IDAgMCAxLS4yNS0uMjQ2bC0uMDA0LS4yMTdjLS4wMzgtLjkyNy40OTUtMS40OTggMS4xNjgtMS45ODcuNTktLjQ0NC45NjUtLjczNi45NjUtMS4zNzEgMC0uODI1LS42MjgtMS4xNjgtMS4zMTQtMS4xNjgtLjgwMyAwLTEuMjUzLjQ3OC0xLjM0MiAxLjEzNC0uMDE4LjEzNy0uMTI4LjI1LS4yNjYuMjVoLS44MjV6bTIuMzI1IDYuNDQzYy0uNTg0IDAtMS4wMDktLjM5NC0xLjAwOS0uOTI3IDAtLjU1Mi40MjUtLjk0IDEuMDEtLjk0LjYwOSAwIDEuMDI4LjM4OCAxLjAyOC45NCAwIC41MzMtLjQyLjkyNy0xLjAyOS45Mjd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUXVlc3Rpb25TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMjU1IDUuNzg2YS4yMzcuMjM3IDAgMCAwIC4yNDEuMjQ3aC44MjVjLjEzOCAwIC4yNDgtLjExMy4yNjYtLjI1LjA5LS42NTYuNTQtMS4xMzQgMS4zNDItMS4xMzQuNjg2IDAgMS4zMTQuMzQzIDEuMzE0IDEuMTY4IDAgLjYzNS0uMzc0LjkyNy0uOTY1IDEuMzcxLS42NzMuNDg5LTEuMjA2IDEuMDYtMS4xNjggMS45ODdsLjAwMy4yMTdhLjI1LjI1IDAgMCAwIC4yNS4yNDZoLjgxMWEuMjUuMjUgMCAwIDAgLjI1LS4yNXYtLjEwNWMwLS43MTguMjczLS45MjcgMS4wMS0xLjQ4Ni42MDktLjQ2MyAxLjI0NC0uOTc3IDEuMjQ0LTIuMDU2IDAtMS41MTEtMS4yNzYtMi4yNDEtMi42NzMtMi4yNDEtMS4yNjcgMC0yLjY1NS41OS0yLjc1IDIuMjg2em0xLjU1NyA1Ljc2M2MwIC41MzMuNDI1LjkyNyAxLjAxLjkyNy42MDkgMCAxLjAyOC0uMzk0IDEuMDI4LS45MjcgMC0uNTUyLS40Mi0uOTQtMS4wMjktLjk0LS41ODQgMC0xLjAwOS4zODgtMS4wMDkuOTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4yNTUgNS43ODZhLjIzNy4yMzcgMCAwIDAgLjI0MS4yNDdoLjgyNWMuMTM4IDAgLjI0OC0uMTEzLjI2Ni0uMjUuMDktLjY1Ni41NC0xLjEzNCAxLjM0Mi0xLjEzNC42ODYgMCAxLjMxNC4zNDMgMS4zMTQgMS4xNjggMCAuNjM1LS4zNzQuOTI3LS45NjUgMS4zNzEtLjY3My40ODktMS4yMDYgMS4wNi0xLjE2OCAxLjk4N2wuMDAzLjIxN2EuMjUuMjUgMCAwIDAgLjI1LjI0NmguODExYS4yNS4yNSAwIDAgMCAuMjUtLjI1di0uMTA1YzAtLjcxOC4yNzMtLjkyNyAxLjAxLTEuNDg2LjYwOS0uNDYzIDEuMjQ0LS45NzcgMS4yNDQtMi4wNTYgMC0xLjUxMS0xLjI3Ni0yLjI0MS0yLjY3My0yLjI0MS0xLjI2NyAwLTIuNjU1LjU5LTIuNzUgMi4yODZ6bTEuNTU3IDUuNzYzYzAgLjUzMy40MjUuOTI3IDEuMDEuOTI3LjYwOSAwIDEuMDI4LS4zOTQgMS4wMjgtLjkyNyAwLS41NTItLjQyLS45NC0xLjAyOS0uOTQtLjU4NCAwLTEuMDA5LjM4OC0xLjAwOS45NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSYWluYm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNC41YTcgNyAwIDAgMC03IDcgLjUuNSAwIDAgMS0xIDAgOCA4IDAgMSAxIDE2IDAgLjUuNSAwIDAgMS0xIDAgNyA3IDAgMCAwLTctN3ptMCAyYTUgNSAwIDAgMC01IDUgLjUuNSAwIDAgMS0xIDAgNiA2IDAgMSAxIDEyIDAgLjUuNSAwIDAgMS0xIDAgNSA1IDAgMCAwLTUtNXptMCAyYTMgMyAwIDAgMC0zIDMgLjUuNSAwIDAgMS0xIDAgNCA0IDAgMSAxIDggMCAuNS41IDAgMCAxLTEgMCAzIDMgMCAwIDAtMy0zem0wIDJhMSAxIDAgMCAwLTEgMSAuNS41IDAgMCAxLTEgMCAyIDIgMCAxIDEgNCAwIC41LjUgMCAwIDEtMSAwIDEgMSAwIDAgMC0xLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjZWlwdEN1dG9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDQuNWEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDEgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMSAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWg2YS41LjUgMCAxIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjV6bTAgMmEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41ek0xMS41IDRhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMXptMCAyYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTF6bTAgMmEuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xem0wIDJhLjUuNSAwIDAgMCAwIDFoMWEuNS41IDAgMCAwIDAtMWgtMXptMCAyYS41LjUgMCAwIDAgMCAxaDFhLjUuNSAwIDAgMCAwLTFoLTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4zNTQuNjQ2YS41LjUgMCAwIDAtLjgwMS4xM2wtLjUgMUEuNS41IDAgMCAwIDEgMnYxM0guNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMUgxNVYyYS41LjUgMCAwIDAtLjA1My0uMjI0bC0uNS0xYS41LjUgMCAwIDAtLjgtLjEzTDEzIDEuMjkzbC0uNjQ2LS42NDdhLjUuNSAwIDAgMC0uNzA4IDBMMTEgMS4yOTNsLS42NDYtLjY0N2EuNS41IDAgMCAwLS43MDggMEw5IDEuMjkzIDguMzU0LjY0NmEuNS41IDAgMCAwLS43MDggMEw3IDEuMjkzIDYuMzU0LjY0NmEuNS41IDAgMCAwLS43MDggMEw1IDEuMjkzIDQuMzU0LjY0NmEuNS41IDAgMCAwLS43MDggMEwzIDEuMjkzIDIuMzU0LjY0NnptLS4yMTcgMS4xOTguNTEuNTFhLjUuNSAwIDAgMCAuNzA3IDBMNCAxLjcwN2wuNjQ2LjY0N2EuNS41IDAgMCAwIC43MDggMEw2IDEuNzA3bC42NDYuNjQ3YS41LjUgMCAwIDAgLjcwOCAwTDggMS43MDdsLjY0Ni42NDdhLjUuNSAwIDAgMCAuNzA4IDBMMTAgMS43MDdsLjY0Ni42NDdhLjUuNSAwIDAgMCAuNzA4IDBMMTIgMS43MDdsLjY0Ni42NDdhLjUuNSAwIDAgMCAuNzA4IDBsLjUwOS0uNTEuMTM3LjI3NFYxNUgyVjIuMTE4bC4xMzctLjI3NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSZWNlaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuOTIuNTA2YS41LjUgMCAwIDEgLjQzNC4xNEwzIDEuMjkzbC42NDYtLjY0N2EuNS41IDAgMCAxIC43MDggMEw1IDEuMjkzbC42NDYtLjY0N2EuNS41IDAgMCAxIC43MDggMEw3IDEuMjkzbC42NDYtLjY0N2EuNS41IDAgMCAxIC43MDggMEw5IDEuMjkzbC42NDYtLjY0N2EuNS41IDAgMCAxIC43MDggMGwuNjQ2LjY0Ny42NDYtLjY0N2EuNS41IDAgMCAxIC43MDggMGwuNjQ2LjY0Ny42NDYtLjY0N2EuNS41IDAgMCAxIC44MDEuMTNsLjUgMUEuNS41IDAgMCAxIDE1IDJ2MTJhLjUuNSAwIDAgMS0uMDUzLjIyNGwtLjUgMWEuNS41IDAgMCAxLS44LjEzTDEzIDE0LjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBMMTEgMTQuNzA3bC0uNjQ2LjY0N2EuNS41IDAgMCAxLS43MDggMEw5IDE0LjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBMNyAxNC43MDdsLS42NDYuNjQ3YS41LjUgMCAwIDEtLjcwOCAwTDUgMTQuNzA3bC0uNjQ2LjY0N2EuNS41IDAgMCAxLS43MDggMEwzIDE0LjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uODAxLS4xM2wtLjUtMUEuNS41IDAgMCAxIDEgMTRWMmEuNS41IDAgMCAxIC4wNTMtLjIyNGwuNS0xYS41LjUgMCAwIDEgLjM2Ny0uMjd6bS4yMTcgMS4zMzhMMiAyLjExOHYxMS43NjRsLjEzNy4yNzQuNTEtLjUxYS41LjUgMCAwIDEgLjcwNyAwbC42NDYuNjQ3LjY0Ni0uNjQ2YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ2LjY0Ni0uNjQ2YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ2LjY0Ni0uNjQ2YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ2LjY0Ni0uNjQ2YS41LjUgMCAwIDEgLjcwOCAwbC42NDYuNjQ2LjY0Ni0uNjQ2YS41LjUgMCAwIDEgLjcwOCAwbC41MDkuNTA5LjEzNy0uMjc0VjIuMTE4bC0uMTM3LS4yNzQtLjUxLjUxYS41LjUgMCAwIDEtLjcwNyAwTDEyIDEuNzA3bC0uNjQ2LjY0N2EuNS41IDAgMCAxLS43MDggMEwxMCAxLjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBMOCAxLjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBMNiAxLjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBMNCAxLjcwN2wtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA4IDBsLS41MDktLjUxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNC41YS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMSAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWg2YS41LjUgMCAxIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjV6bTAgMmEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDEgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41em04LTZhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjV6bTAgMmEuNS41IDAgMCAxIC41LS41aDFhLjUuNSAwIDAgMSAwIDFoLTFhLjUuNSAwIDAgMS0uNS0uNXptMCAyYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41em0wIDJhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgMCAxaC0xYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjZXB0aW9uMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEzLjVhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6bTQgMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXptNCAwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41em00IDBhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjZXB0aW9uMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExLjVhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0yem00IDJhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6bTQgMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJhLjUuNSAwIDAgMS0uNS0uNXptNCAwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JlY2VwdGlvbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMS41YS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMnptNC0zYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIC41LjV2NWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtNXptNCA1YS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41em00IDBhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjZXB0aW9uMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExLjVhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0yem00LTNhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di01em00LTNhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di04em00IDhhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjZXB0aW9uNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExLjVhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di0yem00LTNhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXY1YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di01em00LTNhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXY4YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41di04em00LTNhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXYxMWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMS0uNS0uNXYtMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjb3JkQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTgtMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjb3JkQnRuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY0em0xNSAwYTEgMSAwIDAgMC0xLTFIMmExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVjb3JkQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6bS04IDNhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JlY29yZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDhhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JlY29yZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTNBNSA1IDAgMSAwIDggM2E1IDUgMCAwIDAgMCAxMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSZWNvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMmE0IDQgMCAxIDEgMC04IDQgNCAwIDAgMSAwIDh6bTAgMUE1IDUgMCAxIDAgOCAzYTUgNSAwIDAgMCAwIDEwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JlY29yZDJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDhhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTNBNSA1IDAgMSAwIDggM2E1IDUgMCAwIDAgMCAxMHptMC0yYTMgMyAwIDEgMSAwLTYgMyAzIDAgMCAxIDAgNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSZWNvcmQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTJhNCA0IDAgMSAxIDAtOCA0IDQgMCAwIDEgMCA4em0wIDFBNSA1IDAgMSAwIDggM2E1IDUgMCAwIDAgMCAxMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA4YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSZWN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMzAyIDEuMjU2YTEuNSAxLjUgMCAwIDAtMi42MDQgMGwtMS43MDQgMi45OGEuNS41IDAgMCAwIC44NjkuNDk3bDEuNzAzLTIuOTgxYS41LjUgMCAwIDEgLjg2OCAwbDIuNTQgNC40NDQtMS4yNTYtLjMzN2EuNS41IDAgMSAwLS4yNi45NjZsMi40MTUuNjQ3YS41LjUgMCAwIDAgLjYxMy0uMzUzbC42NDctMi40MTVhLjUuNSAwIDEgMC0uOTY2LS4yNTlsLS4zMzMgMS4yNDItMi41MzItNC40MzF6TTIuOTczIDcuNzczbC0xLjI1NS4zMzdhLjUuNSAwIDEgMS0uMjYtLjk2NmwyLjQxNi0uNjQ3YS41LjUgMCAwIDEgLjYxMi4zNTNsLjY0NyAyLjQxNWEuNS41IDAgMCAxLS45NjYuMjU5bC0uMzMzLTEuMjQyLTIuNTQ1IDQuNDU0YS41LjUgMCAwIDAgLjQzNC43NDhINWEuNS41IDAgMCAxIDAgMUgxLjcyM0ExLjUgMS41IDAgMCAxIC40MjEgMTIuMjRsMi41NTItNC40Njd6bTEwLjg5IDEuNDYzYS41LjUgMCAxIDAtLjg2OC40OTZsMS43MTYgMy4wMDRhLjUuNSAwIDAgMS0uNDM0Ljc0OGgtNS41N2wuNjQ3LS42NDZhLjUuNSAwIDEgMC0uNzA4LS43MDdsLTEuNSAxLjVhLjQ5OC40OTggMCAwIDAgMCAuNzA3bDEuNSAxLjVhLjUuNSAwIDEgMCAuNzA4LS43MDdsLS42NDctLjY0N2g1LjU3YTEuNSAxLjUgMCAwIDAgMS4zMDItMi4yNDRsLTEuNzE2LTMuMDA0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JlZGRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjE2NyA4YS44MzEuODMxIDAgMCAwLS44My44M2MwIC40NTkuMzcyLjg0LjgzLjgzMWEuODMxLjgzMSAwIDAgMCAwLTEuNjYxem0xLjg0MyAzLjY0N2MuMzE1IDAgMS40MDMtLjAzOCAxLjk3Ni0uNjExYS4yMzIuMjMyIDAgMCAwIDAtLjMwNi4yMTMuMjEzIDAgMCAwLS4zMDYgMGMtLjM1My4zNjMtMS4xMjYuNDg3LTEuNjcuNDg3LS41NDUgMC0xLjMwOC0uMTI0LTEuNjcxLS40ODdhLjIxMy4yMTMgMCAwIDAtLjMwNiAwIC4yMTMuMjEzIDAgMCAwIDAgLjMwNmMuNTY0LjU2MyAxLjY1Mi42MSAxLjk3Ny42MXptLjk5Mi0yLjgwN2MwIC40NTguMzczLjgzLjgzMS44My40NTggMCAuODMtLjM4MS44My0uODNhLjgzMS44MzEgMCAwIDAtMS42NiAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHptLTMuODI4LTEuMTY1Yy0uMzE1IDAtLjYwMi4xMjQtLjgxMi4zMjUtLjgwMS0uNTczLTEuOS0uOTQ1LTMuMTIxLS45OTNsLjUzNC0yLjUwMSAxLjczOC4zNzJhLjgzLjgzIDAgMSAwIC44My0uODY5LjgzLjgzIDAgMCAwLS43NDQuNDY4bC0xLjkzOC0uNDFhLjIwMy4yMDMgMCAwIDAtLjE1My4wMjguMTg2LjE4NiAwIDAgMC0uMDg2LjEzNGwtLjU5MiAyLjc4OGMtMS4yNC4wMzgtMi4zNTguNDEtMy4xNy45OTItLjIxLS4yLS40OTYtLjMyNC0uODEtLjMyNGExLjE2MyAxLjE2MyAwIDAgMC0uNDc4IDIuMjI0Yy0uMDIuMTE1LS4wMjkuMjMtLjAyOS4zNTMgMCAxLjc5NSAyLjA5MSAzLjI1NiA0LjY2OSAzLjI1NiAyLjU3NyAwIDQuNjY4LTEuNDUxIDQuNjY4LTMuMjU2IDAtLjExNC0uMDEtLjIzOC0uMDI5LS4zNTMuNDAxLS4xODEuNjg4LS41OTIuNjg4LTEuMDY5IDAtLjY1LS41MjUtMS4xNjUtMS4xNjUtMS4xNjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVwbHlBbGxGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMDIxIDExLjkgMy40NTMgOC42MmEuNzE5LjcxOSAwIDAgMSAwLTEuMjM4TDguMDIxIDQuMWEuNzE2LjcxNiAwIDAgMSAxLjA3OS42MTlWNmMxLjUgMCA2IDAgNyA4LTIuNS00LjUtNy00LTctNHYxLjI4MWMwIC41Ni0uNjA2Ljg5OC0xLjA3OS42MnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjIzMiA0LjI5M2EuNS41IDAgMCAxLS4xMDYuN0wxLjExNCA3Ljk0NWEuNS41IDAgMCAxLS4wNDIuMDI4LjE0Ny4xNDcgMCAwIDAgMCAuMjUyLjUwMy41MDMgMCAwIDEgLjA0Mi4wMjhsNC4wMTIgMi45NTRhLjUuNSAwIDEgMS0uNTkzLjgwNUwuNTM5IDkuMDczYTEuMTQ3IDEuMTQ3IDAgMCAxIDAtMS45NDZsMy45OTQtMi45NGEuNS41IDAgMCAxIC42OTkuMTA2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1JlcGx5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMDk4IDUuMDEzYS4xNDQuMTQ0IDAgMCAxIC4yMDIuMTM0VjYuM2EuNS41IDAgMCAwIC41LjVjLjY2NyAwIDIuMDEzLjAwNSAzLjMuODIyLjk4NC42MjQgMS45OSAxLjc2IDIuNTk1IDMuODc2LTEuMDItLjk4My0yLjE4NS0xLjUxNi0zLjIwNS0xLjc5OWE4Ljc0IDguNzQgMCAwIDAtMS45MjEtLjMwNiA3LjQwNCA3LjQwNCAwIDAgMC0uNzk4LjAwOGgtLjAxM2wtLjAwNS4wMDFoLS4wMDFMOC44IDkuOWwtLjA1LS40OThhLjUuNSAwIDAgMC0uNDUuNDk4djEuMTUzYzAgLjEwOC0uMTEuMTc2LS4yMDIuMTM0TDQuMTE0IDguMjU0YS41MDIuNTAyIDAgMCAwLS4wNDItLjAyOC4xNDcuMTQ3IDAgMCAxIDAtLjI1Mi40OTcuNDk3IDAgMCAwIC4wNDItLjAyOGwzLjk4NC0yLjkzM3pNOS4zIDEwLjM4NmMuMDY4IDAgLjE0My4wMDMuMjIzLjAwNi40MzQuMDIgMS4wMzQuMDg2IDEuNy4yNzEgMS4zMjYuMzY4IDIuODk2IDEuMjAyIDMuOTQgMy4wOGEuNS41IDAgMCAwIC45MzMtLjMwNWMtLjQ2NC0zLjcxLTEuODg2LTUuNjYyLTMuNDYtNi42Ni0xLjI0NS0uNzktMi41MjctLjk0Mi0zLjMzNi0uOTcxdi0uNjZhMS4xNDQgMS4xNDQgMCAwIDAtMS43NjctLjk2bC0zLjk5NCAyLjk0YTEuMTQ3IDEuMTQ3IDAgMCAwIDAgMS45NDZsMy45OTQgMi45NGExLjE0NCAxLjE0NCAwIDAgMCAxLjc2Ny0uOTZ2LS42Njd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4yMzIgNC4yOTNhLjUuNSAwIDAgMC0uNy0uMTA2TC41NCA3LjEyN2ExLjE0NyAxLjE0NyAwIDAgMCAwIDEuOTQ2bDMuOTk0IDIuOTRhLjUuNSAwIDEgMCAuNTkzLS44MDVMMS4xMTQgOC4yNTRhLjUwMy41MDMgMCAwIDAtLjA0Mi0uMDI4LjE0Ny4xNDcgMCAwIDEgMC0uMjUyLjUuNSAwIDAgMCAuMDQyLS4wMjhsNC4wMTItMi45NTRhLjUuNSAwIDAgMCAuMTA2LS42OTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVwbHlGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOTIxIDExLjkgMS4zNTMgOC42MmEuNzE5LjcxOSAwIDAgMSAwLTEuMjM4TDUuOTIxIDQuMUEuNzE2LjcxNiAwIDAgMSA3IDQuNzE5VjZjMS41IDAgNiAwIDcgOC0yLjUtNC41LTctNC03LTR2MS4yODFjMCAuNTYtLjYwNi44OTgtMS4wNzkuNjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzUmVwbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41OTggNS4wMTNhLjE0NC4xNDQgMCAwIDEgLjIwMi4xMzRWNi4zYS41LjUgMCAwIDAgLjUuNWMuNjY3IDAgMi4wMTMuMDA1IDMuMy44MjIuOTg0LjYyNCAxLjk5IDEuNzYgMi41OTUgMy44NzYtMS4wMi0uOTgzLTIuMTg1LTEuNTE2LTMuMjA1LTEuNzk5YTguNzQgOC43NCAwIDAgMC0xLjkyMS0uMzA2IDcuNDA0IDcuNDA0IDAgMCAwLS43OTguMDA4aC0uMDEzbC0uMDA1LjAwMWgtLjAwMUw3LjMgOS45bC0uMDUtLjQ5OGEuNS41IDAgMCAwLS40NS40OTh2MS4xNTNjMCAuMTA4LS4xMS4xNzYtLjIwMi4xMzRMMi42MTQgOC4yNTRhLjUwMy41MDMgMCAwIDAtLjA0Mi0uMDI4LjE0Ny4xNDcgMCAwIDEgMC0uMjUyLjQ5OS40OTkgMCAwIDAgLjA0Mi0uMDI4bDMuOTg0LTIuOTMzek03LjggMTAuMzg2Yy4wNjggMCAuMTQzLjAwMy4yMjMuMDA2LjQzNC4wMiAxLjAzNC4wODYgMS43LjI3MSAxLjMyNi4zNjggMi44OTYgMS4yMDIgMy45NCAzLjA4YS41LjUgMCAwIDAgLjkzMy0uMzA1Yy0uNDY0LTMuNzEtMS44ODYtNS42NjItMy40Ni02LjY2LTEuMjQ1LS43OS0yLjUyNy0uOTQyLTMuMzM2LS45NzF2LS42NmExLjE0NCAxLjE0NCAwIDAgMC0xLjc2Ny0uOTZsLTMuOTk0IDIuOTRhMS4xNDcgMS4xNDcgMCAwIDAgMCAxLjk0NmwzLjk5NCAyLjk0YTEuMTQ0IDEuMTQ0IDAgMCAwIDEuNzY3LS45NnYtLjY2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSc3NGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptMS41IDIuNWM1LjUyMyAwIDEwIDQuNDc3IDEwIDEwYTEgMSAwIDEgMS0yIDAgOCA4IDAgMCAwLTgtOCAxIDEgMCAwIDEgMC0yem0wIDRhNiA2IDAgMCAxIDYgNiAxIDEgMCAxIDEtMiAwIDQgNCAwIDAgMC00LTQgMSAxIDAgMCAxIDAtMnptLjUgN2ExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAxMmExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptLTMtOC41YTEgMSAwIDAgMSAxLTFjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMGExIDEgMCAxIDEtMiAwIDggOCAwIDAgMC04LTggMSAxIDAgMCAxLTEtMXptMCA0YTEgMSAwIDAgMSAxLTEgNiA2IDAgMCAxIDYgNiAxIDEgMCAxIDEtMiAwIDQgNCAwIDAgMC00LTQgMSAxIDAgMCAxLTEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNSdWxlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAwYTEgMSAwIDAgMC0xIDF2MTRhMSAxIDAgMCAwIDEgMWg1di0xSDJ2LTFoNHYtMUg0di0xaDJ2LTFIMnYtMWg0VjlINFY4aDJWN0gyVjZoNFYyaDF2NGgxVjRoMXYyaDFWMmgxdjRoMVY0aDF2MmgxVjJoMXY0aDFWMWExIDEgMCAwIDAtMS0xSDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2FmZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS43NzggOS40MTRBMiAyIDAgMSAxIDYuOTUgNi41ODZhMiAyIDAgMCAxIDIuODI4IDIuODI4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAwQTEuNSAxLjUgMCAwIDAgMSAxLjVWM0guNWEuNS41IDAgMCAwIDAgMUgxdjMuNUguNWEuNS41IDAgMCAwIDAgMUgxVjEySC41YS41LjUgMCAwIDAgMCAxSDF2MS41QTEuNSAxLjUgMCAwIDAgMi41IDE2aDEyYTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTNBMS41IDEuNSAwIDAgMCAxNC41IDBoLTEyem0zLjAzNiA0LjQ2NCAxLjA5IDEuMDlhMy4wMDMgMy4wMDMgMCAwIDEgMy40NzYgMGwxLjA5LTEuMDlhLjUuNSAwIDEgMSAuNzA3LjcwOGwtMS4wOSAxLjA5Yy43NCAxLjAzNy43NCAyLjQ0IDAgMy40NzZsMS4wOSAxLjA5YS41LjUgMCAxIDEtLjcwNy43MDhsLTEuMDktMS4wOWEzLjAwMiAzLjAwMiAwIDAgMS0zLjQ3NiAwbC0xLjA5IDEuMDlhLjUuNSAwIDEgMS0uNzA4LS43MDhsMS4wOS0xLjA5YTMuMDAzIDMuMDAzIDAgMCAxIDAtMy40NzZsLTEuMDktMS4wOWEuNS41IDAgMSAxIC43MDgtLjcwOHpNMTQgNi41djNhLjUuNSAwIDAgMS0xIDB2LTNhLjUuNSAwIDAgMSAxIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2FmZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDEuNUExLjUgMS41IDAgMCAxIDIuNSAwaDEyQTEuNSAxLjUgMCAwIDEgMTYgMS41djEzYTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTJBMS41IDEuNSAwIDAgMSAxIDE0LjVWMTNILjVhLjUuNSAwIDAgMSAwLTFIMVY4LjVILjVhLjUuNSAwIDAgMSAwLTFIMVY0SC41YS41LjUgMCAwIDEgMC0xSDFWMS41ek0yLjUgMWEuNS41IDAgMCAwLS41LjV2MTNhLjUuNSAwIDAgMCAuNS41aDEyYS41LjUgMCAwIDAgLjUtLjV2LTEzYS41LjUgMCAwIDAtLjUtLjVoLTEyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgNmEuNS41IDAgMCAxIC41LjV2M2EuNS41IDAgMCAxLTEgMHYtM2EuNS41IDAgMCAxIC41LS41ek00LjgyOCA0LjQ2NGEuNS41IDAgMCAxIC43MDggMGwxLjA5IDEuMDlhMy4wMDMgMy4wMDMgMCAwIDEgMy40NzYgMGwxLjA5LTEuMDlhLjUuNSAwIDEgMSAuNzA3LjcwOGwtMS4wOSAxLjA5Yy43NCAxLjAzNy43NCAyLjQ0IDAgMy40NzZsMS4wOSAxLjA5YS41LjUgMCAxIDEtLjcwNy43MDhsLTEuMDktMS4wOWEzLjAwMiAzLjAwMiAwIDAgMS0zLjQ3NiAwbC0xLjA5IDEuMDlhLjUuNSAwIDEgMS0uNzA4LS43MDhsMS4wOS0xLjA5YTMuMDAzIDMuMDAzIDAgMCAxIDAtMy40NzZsLTEuMDktMS4wOWEuNS41IDAgMCAxIDAtLjcwOHpNNi45NSA2LjU4NmEyIDIgMCAxIDAgMi44MjggMi44MjhBMiAyIDAgMCAwIDYuOTUgNi41ODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2FmZTJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTYzIDhINS4wMzVhMy40ODIgMy40ODIgMCAwIDEgLjY2Mi0xLjU5NmwxLjA4IDEuMDhjLS4wOTQuMTYtLjE2Ny4zMzItLjIxNC41MTZ6bS45MjEtMS4yMjMtMS4wOC0xLjA4QTMuNDgyIDMuNDgyIDAgMCAxIDggNS4wMzV2MS41MjhjLS4xODQuMDQ3LS4zNTcuMTItLjUxNi4yMTR6TTkgNi41NjNWNS4wMzVhMy40ODIgMy40ODIgMCAwIDEgMS41OTYuNjYybC0xLjA4IDEuMDhBMS45ODggMS45ODggMCAwIDAgOSA2LjU2M3ptMS4yMjMuOTIxIDEuMDgtMS4wOGMuMzQzLjQ1OC41NzcgMS4wMDMuNjYyIDEuNTk2aC0xLjUyOGExLjk4OSAxLjk4OSAwIDAgMC0uMjE0LS41MTZ6TTEwLjQzNyA5aDEuNTI4YTMuNDgzIDMuNDgzIDAgMCAxLS42NjIgMS41OTZsLTEuMDgtMS4wOGMuMDk0LS4xNi4xNjctLjMzMi4yMTQtLjUxNnptLS45MjEgMS4yMjMgMS4wOCAxLjA4QTMuNDgzIDMuNDgzIDAgMCAxIDkgMTEuOTY1di0xLjUyOGMuMTg0LS4wNDcuMzU3LS4xMi41MTYtLjIxNHpNOCAxMC40Mzd2MS41MjhhMy40ODMgMy40ODMgMCAwIDEtMS41OTYtLjY2MmwxLjA4LTEuMDhjLjE2LjA5NC4zMzIuMTY3LjUxNi4yMTR6bS0xLjIyMy0uOTIxLTEuMDggMS4wOEEzLjQ4MiAzLjQ4MiAwIDAgMSA1LjAzNSA5aDEuNTI4Yy4wNDcuMTg0LjEyLjM1Ny4yMTQuNTE2ek03LjUgOC41YTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMUExLjUgMS41IDAgMCAwIDEgMi41VjNILjVhLjUuNSAwIDAgMCAwIDFIMXY0SC41YS41LjUgMCAwIDAgMCAxSDF2NEguNWEuNS41IDAgMCAwIDAgMUgxdi41QTEuNSAxLjUgMCAwIDAgMi41IDE2aDEyYTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTJBMS41IDEuNSAwIDAgMCAxNC41IDFoLTEyem02IDNhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2FmZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyLjVBMS41IDEuNSAwIDAgMSAyLjUgMWgxMkExLjUgMS41IDAgMCAxIDE2IDIuNXYxMmExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTEyQTEuNSAxLjUgMCAwIDEgMSAxNC41VjE0SC41YS41LjUgMCAwIDEgMC0xSDFWOUguNWEuNS41IDAgMCAxIDAtMUgxVjRILjVhLjUuNSAwIDAgMSAwLTFIMXYtLjV6TTIuNSAyYS41LjUgMCAwIDAtLjUuNXYxMmEuNS41IDAgMCAwIC41LjVoMTJhLjUuNSAwIDAgMCAuNS0uNXYtMTJhLjUuNSAwIDAgMC0uNS0uNWgtMTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4wMzUgOGgxLjUyOGMuMDQ3LS4xODQuMTItLjM1Ny4yMTQtLjUxNmwtMS4wOC0xLjA4QTMuNDgyIDMuNDgyIDAgMCAwIDUuMDM1IDh6bTEuMzY5LTIuMzAzIDEuMDggMS4wOGMuMTYtLjA5NC4zMzItLjE2Ny41MTYtLjIxNFY1LjAzNWEzLjQ4MiAzLjQ4MiAwIDAgMC0xLjU5Ni42NjJ6TTkgNS4wMzV2MS41MjhjLjE4NC4wNDcuMzU3LjEyLjUxNi4yMTRsMS4wOC0xLjA4QTMuNDgyIDMuNDgyIDAgMCAwIDkgNS4wMzV6bTIuMzAzIDEuMzY5LTEuMDggMS4wOGMuMDk0LjE2LjE2Ny4zMzIuMjE0LjUxNmgxLjUyOGEzLjQ4MyAzLjQ4MyAwIDAgMC0uNjYyLTEuNTk2ek0xMS45NjUgOWgtMS41MjhjLS4wNDcuMTg0LS4xMi4zNTctLjIxNC41MTZsMS4wOCAxLjA4QTMuNDgzIDMuNDgzIDAgMCAwIDExLjk2NSA5em0tMS4zNjkgMi4zMDMtMS4wOC0xLjA4Yy0uMTYuMDk0LS4zMzIuMTY3LS41MTYuMjE0djEuNTI4YTMuNDgzIDMuNDgzIDAgMCAwIDEuNTk2LS42NjJ6TTggMTEuOTY1di0xLjUyOGExLjk4OSAxLjk4OSAwIDAgMS0uNTE2LS4yMTRsLTEuMDggMS4wOEEzLjQ4MyAzLjQ4MyAwIDAgMCA4IDExLjk2NXptLTIuMzAzLTEuMzY5IDEuMDgtMS4wOEExLjk4OCAxLjk4OCAwIDAgMSA2LjU2MyA5SDUuMDM1Yy4wODUuNTkzLjMxOSAxLjEzOC42NjIgMS41OTZ6TTQgOC41YTQuNSA0LjUgMCAxIDEgOSAwIDQuNSA0LjUgMCAwIDEtOSAwem00LjUtMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2F2ZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDEuNUExLjUgMS41IDAgMCAxIDEwIDBoNGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmg2Yy0uMzE0LjQxOC0uNS45MzctLjUgMS41djcuNzkzTDQuODU0IDYuNjQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMy41IDMuNWEuNS41IDAgMCAwIC43MDggMGwzLjUtMy41YS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSA5LjI5M1YxLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDkuNWExIDEgMCAwIDAtMSAxdjcuMjkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTMuNSAzLjVhLjUuNSAwIDAgMS0uNzA4IDBsLTMuNS0zLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMNy41IDkuMjkzVjJhMiAyIDAgMCAxIDItMkgxNGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmgyLjVhLjUuNSAwIDAgMSAwIDFIMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTYXZlMkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDEuNUExLjUgMS41IDAgMCAxIDEwIDBoNGEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMmg2Yy0uMzE0LjQxOC0uNS45MzctLjUgMS41djZoLTJhLjUuNSAwIDAgMC0uMzU0Ljg1NGwyLjUgMi41YS41LjUgMCAwIDAgLjcwOCAwbDIuNS0yLjVBLjUuNSAwIDAgMCAxMC41IDcuNWgtMnYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTYXZlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDFhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDkuNWExIDEgMCAwIDAtMSAxdjQuNWgyYS41LjUgMCAwIDEgLjM1NC44NTRsLTIuNSAyLjVhLjUuNSAwIDAgMS0uNzA4IDBsLTIuNS0yLjVBLjUuNSAwIDAgMSA1LjUgNi41aDJWMmEyIDIgMCAwIDEgMi0ySDE0YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yaDIuNWEuNS41IDAgMCAxIDAgMUgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NjaXNzb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAzLjVjLS42MTQtLjg4NC0uMDc0LTEuOTYyLjg1OC0yLjVMOCA3LjIyNiAxMS42NDIgMWMuOTMyLjUzOCAxLjQ3MiAxLjYxNi44NTggMi41TDguODEgOC42MWwxLjU1NiAyLjY2MWEyLjUgMi41IDAgMSAxLS43OTQuNjM3TDggOS43M2wtMS41NzIgMi4xNzdhMi41IDIuNSAwIDEgMS0uNzk0LS42MzdMNy4xOSA4LjYxIDMuNSAzLjV6bTIuNSAxMGExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMHptNyAwYTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NjcmV3ZHJpdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTAgMSAxLTEgMy4wODEgMi4yYTEgMSAwIDAgMSAuNDE5LjgxNXYuMDdhMSAxIDAgMCAwIC4yOTMuNzA4TDEwLjUgOS41bC45MTQtLjMwNWExIDEgMCAwIDEgMS4wMjMuMjQybDMuMzU2IDMuMzU2YTEgMSAwIDAgMSAwIDEuNDE0bC0xLjU4NiAxLjU4NmExIDEgMCAwIDEtMS40MTQgMGwtMy4zNTYtMy4zNTZhMSAxIDAgMCAxLS4yNDItMS4wMjNMOS41IDEwLjUgMy43OTMgNC43OTNhMSAxIDAgMCAwLS43MDctLjI5M2gtLjA3MWExIDEgMCAwIDEtLjgxNC0uNDE5TDAgMXptMTEuMzU0IDkuNjQ2YS41LjUgMCAwIDAtLjcwOC43MDhsMyAzYS41LjUgMCAwIDAgLjcwOC0uNzA4bC0zLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2RDYXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTIuNSAwSDUuOTE0YTEuNSAxLjUgMCAwIDAtMS4wNi40NEwyLjQzOSAyLjg1M0ExLjUgMS41IDAgMCAwIDIgMy45MTRWMTQuNUExLjUgMS41IDAgMCAwIDMuNSAxNmg5YTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTNBMS41IDEuNSAwIDAgMCAxMi41IDB6bS03IDIuNzVhLjc1Ljc1IDAgMCAxIC43NS43NXYyYS43NS43NSAwIDAgMS0xLjUgMHYtMmEuNzUuNzUgMCAwIDEgLjc1LS43NXptMiAwYS43NS43NSAwIDAgMSAuNzUuNzV2MmEuNzUuNzUgMCAwIDEtMS41IDB2LTJhLjc1Ljc1IDAgMCAxIC43NS0uNzV6bTIuNzUuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjJhLjc1Ljc1IDAgMCAwIDEuNSAwdi0yem0xLjI1LS43NWEuNzUuNzUgMCAwIDEgLjc1Ljc1djJhLjc1Ljc1IDAgMCAxLTEuNSAwdi0yYS43NS43NSAwIDAgMSAuNzUtLjc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjI1IDMuNWEuNzUuNzUgMCAwIDAtMS41IDB2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJ6bTIgMGEuNzUuNzUgMCAwIDAtMS41IDB2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJ6bTIgMGEuNzUuNzUgMCAwIDAtMS41IDB2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJ6bTIgMGEuNzUuNzUgMCAwIDAtMS41IDB2MmEuNzUuNzUgMCAwIDAgMS41IDB2LTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuOTE0IDBIMTIuNUExLjUgMS41IDAgMCAxIDE0IDEuNXYxM2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSAyIDE0LjVWMy45MTRjMC0uMzk4LjE1OC0uNzguNDQtMS4wNkw0Ljg1My40MzlBMS41IDEuNSAwIDAgMSA1LjkxNCAwek0xMyAxLjVhLjUuNSAwIDAgMC0uNS0uNUg1LjkxNGEuNS41IDAgMCAwLS4zNTMuMTQ2TDMuMTQ2IDMuNTYxQS41LjUgMCAwIDAgMyAzLjkxNFYxNC41YS41LjUgMCAwIDAgLjUuNWg5YS41LjUgMCAwIDAgLjUtLjV2LTEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS43NDIgMTAuMzQ0YTYuNSA2LjUgMCAxIDAtMS4zOTcgMS4zOThoLS4wMDFjLjAzLjA0LjA2Mi4wNzguMDk4LjExNWwzLjg1IDMuODVhMSAxIDAgMCAwIDEuNDE1LTEuNDE0bC0zLjg1LTMuODVhMS4wMDcgMS4wMDcgMCAwIDAtLjExNS0uMXpNMTIgNi41YTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2VnbWVudGVkTmF2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY2em02IDNoNFY1SDZ2NHptOS0xVjZhMSAxIDAgMCAwLTEtMWgtM3Y0aDNhMSAxIDAgMCAwIDEtMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTZXJ2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4zMzMgMi42NjdDMS4zMzMgMS4xOTQgNC4zMTggMCA4IDBzNi42NjcgMS4xOTQgNi42NjcgMi42NjdWNGMwIDEuNDczLTIuOTg1IDIuNjY3LTYuNjY3IDIuNjY3UzEuMzMzIDUuNDczIDEuMzMzIDRWMi42Njd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4zMzMgNi4zMzR2M0MxLjMzMyAxMC44MDUgNC4zMTggMTIgOCAxMnM2LjY2Ny0xLjE5NCA2LjY2Ny0yLjY2N1Y2LjMzNGE2LjUxIDYuNTEgMCAwIDEtMS40NTguNzlDMTEuODEgNy42ODQgOS45NjcgOCA4IDhjLTEuOTY2IDAtMy44MDktLjMxNy01LjIwOC0uODc2YTYuNTA4IDYuNTA4IDAgMCAxLTEuNDU4LS43OXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC42NjcgMTEuNjY4YTYuNTEgNi41MSAwIDAgMS0xLjQ1OC43ODljLTEuNC41Ni0zLjI0Mi44NzYtNS4yMS44NzYtMS45NjYgMC0zLjgwOS0uMzE2LTUuMjA4LS44NzZhNi41MSA2LjUxIDAgMCAxLTEuNDU4LS43OXYxLjY2NkMxLjMzMyAxNC44MDYgNC4zMTggMTYgOCAxNnM2LjY2Ny0xLjE5NCA2LjY2Ny0yLjY2N3YtMS42NjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIuNWEyLjUgMi41IDAgMSAxIC42MDMgMS42MjhsLTYuNzE4IDMuMTJhMi40OTkgMi40OTkgMCAwIDEgMCAxLjUwNGw2LjcxOCAzLjEyYTIuNSAyLjUgMCAxIDEtLjQ4OC44NzZsLTYuNzE4LTMuMTJhMi41IDIuNSAwIDEgMSAwLTMuMjU2bDYuNzE4LTMuMTJBMi41IDIuNSAwIDAgMSAxMSAyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSAxYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zek0xMSAyLjVhMi41IDIuNSAwIDEgMSAuNjAzIDEuNjI4bC02LjcxOCAzLjEyYTIuNDk5IDIuNDk5IDAgMCAxIDAgMS41MDRsNi43MTggMy4xMmEyLjUgMi41IDAgMSAxLS40ODguODc2bC02LjcxOC0zLjEyYTIuNSAyLjUgMCAxIDEgMC0zLjI1Nmw2LjcxOC0zLjEyQTIuNSAyLjUgMCAwIDEgMTEgMi41em0tOC41IDRhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTN6bTExIDUuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaGllbGRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjMzOCAxLjU5YTYxLjQ0IDYxLjQ0IDAgMCAwLTIuODM3Ljg1Ni40ODEuNDgxIDAgMCAwLS4zMjguMzljLS41NTQgNC4xNTcuNzI2IDcuMTkgMi4yNTMgOS4xODhhMTAuNzI1IDEwLjcyNSAwIDAgMCAyLjI4NyAyLjIzM2MuMzQ2LjI0NC42NTIuNDIuODkzLjUzMy4xMi4wNTcuMjE4LjA5NS4yOTMuMTE4YS41NS41NSAwIDAgMCAuMTAxLjAyNS42MTUuNjE1IDAgMCAwIC4xLS4wMjVjLjA3Ni0uMDIzLjE3NC0uMDYxLjI5NC0uMTE4LjI0LS4xMTMuNTQ3LS4yOS44OTMtLjUzM2ExMC43MjYgMTAuNzI2IDAgMCAwIDIuMjg3LTIuMjMzYzEuNTI3LTEuOTk3IDIuODA3LTUuMDMxIDIuMjUzLTkuMTg4YS40OC40OCAwIDAgMC0uMzI4LS4zOWMtLjY1MS0uMjEzLTEuNzUtLjU2LTIuODM3LS44NTVDOS41NTIgMS4yOSA4LjUzMSAxLjA2NyA4IDEuMDY3Yy0uNTMgMC0xLjU1Mi4yMjMtMi42NjIuNTI0ek01LjA3Mi41NkM2LjE1Ny4yNjUgNy4zMSAwIDggMHMxLjg0My4yNjUgMi45MjguNTZjMS4xMS4zIDIuMjI5LjY1NSAyLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDEgMS4wNDQgMS4yNjJjLjU5NiA0LjQ3Ny0uNzg3IDcuNzk1LTIuNDY1IDkuOTlhMTEuNzc1IDExLjc3NSAwIDAgMS0yLjUxNyAyLjQ1MyA3LjE1OSA3LjE1OSAwIDAgMS0xLjA0OC42MjVjLS4yOC4xMzItLjU4MS4yNC0uODI5LjI0cy0uNTQ4LS4xMDgtLjgyOS0uMjRhNy4xNTggNy4xNTggMCAwIDEtMS4wNDgtLjYyNSAxMS43NzcgMTEuNzc3IDAgMCAxLTIuNTE3LTIuNDUzQzEuOTI4IDEwLjQ4Ny41NDUgNy4xNjkgMS4xNDEgMi42OTJBMS41NCAxLjU0IDAgMCAxIDIuMTg1IDEuNDMgNjIuNDU2IDYyLjQ1NiAwIDAgMSA1LjA3Mi41NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44NTQgNS4xNDZhLjUuNSAwIDAgMSAwIC43MDhsLTMgM2EuNS41IDAgMCAxLS43MDggMGwtMS41LTEuNWEuNS41IDAgMSAxIC43MDgtLjcwOEw3LjUgNy43OTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4zMzggMS41OWE2MS40NCA2MS40NCAwIDAgMC0yLjgzNy44NTYuNDgxLjQ4MSAwIDAgMC0uMzI4LjM5Yy0uNTU0IDQuMTU3LjcyNiA3LjE5IDIuMjUzIDkuMTg4YTEwLjcyNSAxMC43MjUgMCAwIDAgMi4yODcgMi4yMzNjLjM0Ni4yNDQuNjUyLjQyLjg5My41MzMuMTIuMDU3LjIxOC4wOTUuMjkzLjExOGEuNTUuNTUgMCAwIDAgLjEwMS4wMjUuNjE1LjYxNSAwIDAgMCAuMS0uMDI1Yy4wNzYtLjAyMy4xNzQtLjA2MS4yOTQtLjExOC4yNC0uMTEzLjU0Ny0uMjkuODkzLS41MzNhMTAuNzI2IDEwLjcyNiAwIDAgMCAyLjI4Ny0yLjIzM2MxLjUyNy0xLjk5NyAyLjgwNy01LjAzMSAyLjI1My05LjE4OGEuNDguNDggMCAwIDAtLjMyOC0uMzljLS42NTEtLjIxMy0xLjc1LS41Ni0yLjgzNy0uODU1QzkuNTUyIDEuMjkgOC41MzEgMS4wNjcgOCAxLjA2N2MtLjUzIDAtMS41NTIuMjIzLTIuNjYyLjUyNHpNNS4wNzIuNTZDNi4xNTcuMjY1IDcuMzEgMCA4IDBzMS44NDMuMjY1IDIuOTI4LjU2YzEuMTEuMyAyLjIyOS42NTUgMi44ODcuODdhMS41NCAxLjU0IDAgMCAxIDEuMDQ0IDEuMjYyYy41OTYgNC40NzctLjc4NyA3Ljc5NS0yLjQ2NSA5Ljk5YTExLjc3NSAxMS43NzUgMCAwIDEtMi41MTcgMi40NTMgNy4xNTkgNy4xNTkgMCAwIDEtMS4wNDguNjI1Yy0uMjguMTMyLS41ODEuMjQtLjgyOS4yNHMtLjU0OC0uMTA4LS44MjktLjI0YTcuMTU4IDcuMTU4IDAgMCAxLTEuMDQ4LS42MjUgMTEuNzc3IDExLjc3NyAwIDAgMS0yLjUxNy0yLjQ1M0MxLjkyOCAxMC40ODcuNTQ1IDcuMTY5IDEuMTQxIDIuNjkyQTEuNTQgMS41NCAwIDAgMSAyLjE4NSAxLjQzIDYyLjQ1NiA2Mi40NTYgMCAwIDEgNS4wNzIuNTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMDEgMTFhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwek03LjEgNC45OTVhLjkwNS45MDUgMCAxIDEgMS44IDBsLS4zNSAzLjUwN2EuNTUzLjU1MyAwIDAgMS0xLjEgMEw3LjEgNC45OTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkRmlsbENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBjLS42OSAwLTEuODQzLjI2NS0yLjkyOC41Ni0xLjExLjMtMi4yMjkuNjU1LTIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMC0xLjA0NCAxLjI2MmMtLjU5NiA0LjQ3Ny43ODcgNy43OTUgMi40NjUgOS45OWExMS43NzcgMTEuNzc3IDAgMCAwIDIuNTE3IDIuNDUzYy4zODYuMjczLjc0NC40ODIgMS4wNDguNjI1LjI4LjEzMi41ODEuMjQuODI5LjI0cy41NDgtLjEwOC44MjktLjI0YTcuMTU5IDcuMTU5IDAgMCAwIDEuMDQ4LS42MjUgMTEuNzc1IDExLjc3NSAwIDAgMCAyLjUxNy0yLjQ1M2MxLjY3OC0yLjE5NSAzLjA2MS01LjUxMyAyLjQ2NS05Ljk5YTEuNTQxIDEuNTQxIDAgMCAwLTEuMDQ0LTEuMjYzIDYyLjQ2NyA2Mi40NjcgMCAwIDAtMi44ODctLjg3QzkuODQzLjI2NiA4LjY5IDAgOCAwem0yLjE0NiA1LjE0NmEuNS41IDAgMCAxIC43MDguNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4IDBsLTEuNS0xLjVhLjUuNSAwIDEgMSAuNzA4LS43MDhMNy41IDcuNzkzbDIuNjQ2LTIuNjQ3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NoaWVsZEZpbGxFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAwYy0uNjkgMC0xLjg0My4yNjUtMi45MjguNTYtMS4xMS4zLTIuMjI5LjY1NS0yLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDAtMS4wNDQgMS4yNjJjLS41OTYgNC40NzcuNzg3IDcuNzk1IDIuNDY1IDkuOTlhMTEuNzc3IDExLjc3NyAwIDAgMCAyLjUxNyAyLjQ1M2MuMzg2LjI3My43NDQuNDgyIDEuMDQ4LjYyNS4yOC4xMzIuNTgxLjI0LjgyOS4yNHMuNTQ4LS4xMDguODI5LS4yNGE3LjE1OSA3LjE1OSAwIDAgMCAxLjA0OC0uNjI1IDExLjc3NSAxMS43NzUgMCAwIDAgMi41MTctMi40NTNjMS42NzgtMi4xOTUgMy4wNjEtNS41MTMgMi40NjUtOS45OWExLjU0MSAxLjU0MSAwIDAgMC0xLjA0NC0xLjI2MyA2Mi40NjcgNjIuNDY3IDAgMCAwLTIuODg3LS44N0M5Ljg0My4yNjYgOC42OSAwIDggMHptLS41NSA4LjUwMkw3LjEgNC45OTVhLjkwNS45MDUgMCAxIDEgMS44IDBsLS4zNSAzLjUwN2EuNTUyLjU1MiAwIDAgMS0xLjEgMHpNOC4wMDIgMTJhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NoaWVsZEZpbGxNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAwYy0uNjkgMC0xLjg0My4yNjUtMi45MjguNTYtMS4xMS4zLTIuMjI5LjY1NS0yLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDAtMS4wNDQgMS4yNjJjLS41OTYgNC40NzcuNzg3IDcuNzk1IDIuNDY1IDkuOTlhMTEuNzc3IDExLjc3NyAwIDAgMCAyLjUxNyAyLjQ1M2MuMzg2LjI3My43NDQuNDgyIDEuMDQ4LjYyNS4yOC4xMzIuNTgxLjI0LjgyOS4yNHMuNTQ4LS4xMDguODI5LS4yNGE3LjE1OSA3LjE1OSAwIDAgMCAxLjA0OC0uNjI1IDExLjc3NSAxMS43NzUgMCAwIDAgMi41MTctMi40NTNjMS42NzgtMi4xOTUgMy4wNjEtNS41MTMgMi40NjUtOS45OWExLjU0MSAxLjU0MSAwIDAgMC0xLjA0NC0xLjI2MyA2Mi40NjcgNjIuNDY3IDAgMCAwLTIuODg3LS44N0M5Ljg0My4yNjYgOC42OSAwIDggMHpNNiA3LjVhLjUuNSAwIDAgMSAwLTFoNGEuNS41IDAgMCAxIDAgMUg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NoaWVsZEZpbGxQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDBjLS42OSAwLTEuODQzLjI2NS0yLjkyOC41Ni0xLjExLjMtMi4yMjkuNjU1LTIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMC0xLjA0NCAxLjI2MmMtLjU5NiA0LjQ3Ny43ODcgNy43OTUgMi40NjUgOS45OWExMS43NzcgMTEuNzc3IDAgMCAwIDIuNTE3IDIuNDUzYy4zODYuMjczLjc0NC40ODIgMS4wNDguNjI1LjI4LjEzMi41ODEuMjQuODI5LjI0cy41NDgtLjEwOC44MjktLjI0YTcuMTU5IDcuMTU5IDAgMCAwIDEuMDQ4LS42MjUgMTEuNzc1IDExLjc3NSAwIDAgMCAyLjUxNy0yLjQ1M2MxLjY3OC0yLjE5NSAzLjA2MS01LjUxMyAyLjQ2NS05Ljk5YTEuNTQxIDEuNTQxIDAgMCAwLTEuMDQ0LTEuMjYzIDYyLjQ2NyA2Mi40NjcgMCAwIDAtMi44ODctLjg3QzkuODQzLjI2NiA4LjY5IDAgOCAwem0tLjUgNWEuNS41IDAgMCAxIDEgMHYxLjVIMTBhLjUuNSAwIDAgMSAwIDFIOC41VjlhLjUuNSAwIDAgMS0xIDBWNy41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkRmlsbFggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYy0uNjkgMC0xLjg0My4yNjUtMi45MjguNTYtMS4xMS4zLTIuMjI5LjY1NS0yLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDAtMS4wNDQgMS4yNjJjLS41OTYgNC40NzcuNzg3IDcuNzk1IDIuNDY1IDkuOTlhMTEuNzc3IDExLjc3NyAwIDAgMCAyLjUxNyAyLjQ1M2MuMzg2LjI3My43NDQuNDgyIDEuMDQ4LjYyNS4yOC4xMzIuNTgxLjI0LjgyOS4yNHMuNTQ4LS4xMDguODI5LS4yNGE3LjE1OSA3LjE1OSAwIDAgMCAxLjA0OC0uNjI1IDExLjc3NSAxMS43NzUgMCAwIDAgMi41MTctMi40NTNjMS42NzgtMi4xOTUgMy4wNjEtNS41MTMgMi40NjUtOS45OWExLjU0MSAxLjU0MSAwIDAgMC0xLjA0NC0xLjI2MyA2Mi40NjcgNjIuNDY3IDAgMCAwLTIuODg3LS44N0M5Ljg0My4yNjYgOC42OSAwIDggMHpNNi44NTQgNS4xNDYgOCA2LjI5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMSAxIC43MDguNzA4TDguNzA3IDdsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDcuNzA3IDYuODU0IDguODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4TDcuMjkzIDcgNi4xNDYgNS44NTRhLjUuNSAwIDEgMSAuNzA4LS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjA3Mi41NkM2LjE1Ny4yNjUgNy4zMSAwIDggMHMxLjg0My4yNjUgMi45MjguNTZjMS4xMS4zIDIuMjI5LjY1NSAyLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDEgMS4wNDQgMS4yNjJjLjU5NiA0LjQ3Ny0uNzg3IDcuNzk1LTIuNDY1IDkuOTlhMTEuNzc1IDExLjc3NSAwIDAgMS0yLjUxNyAyLjQ1MyA3LjE1OSA3LjE1OSAwIDAgMS0xLjA0OC42MjVjLS4yOC4xMzItLjU4MS4yNC0uODI5LjI0cy0uNTQ4LS4xMDgtLjgyOS0uMjRhNy4xNTggNy4xNTggMCAwIDEtMS4wNDgtLjYyNSAxMS43NzcgMTEuNzc3IDAgMCAxLTIuNTE3LTIuNDUzQzEuOTI4IDEwLjQ4Ny41NDUgNy4xNjkgMS4xNDEgMi42OTJBMS41NCAxLjU0IDAgMCAxIDIuMTg1IDEuNDMgNjIuNDU2IDYyLjQ1NiAwIDAgMSA1LjA3Mi41NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaGllbGRMb2NrRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCAwYy0uNjkgMC0xLjg0My4yNjUtMi45MjguNTYtMS4xMS4zLTIuMjI5LjY1NS0yLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDAtMS4wNDQgMS4yNjJjLS41OTYgNC40NzcuNzg3IDcuNzk1IDIuNDY1IDkuOTlhMTEuNzc3IDExLjc3NyAwIDAgMCAyLjUxNyAyLjQ1M2MuMzg2LjI3My43NDQuNDgyIDEuMDQ4LjYyNS4yOC4xMzIuNTgxLjI0LjgyOS4yNHMuNTQ4LS4xMDguODI5LS4yNGE3LjE1OSA3LjE1OSAwIDAgMCAxLjA0OC0uNjI1IDExLjc3NSAxMS43NzUgMCAwIDAgMi41MTctMi40NTNjMS42NzgtMi4xOTUgMy4wNjEtNS41MTMgMi40NjUtOS45OWExLjU0MSAxLjU0MSAwIDAgMC0xLjA0NC0xLjI2MyA2Mi40NjcgNjIuNDY3IDAgMCAwLTIuODg3LS44N0M5Ljg0My4yNjYgOC42OSAwIDggMHptMCA1YTEuNSAxLjUgMCAwIDEgLjUgMi45MTVsLjM4NSAxLjk5YS41LjUgMCAwIDEtLjQ5MS41OTVoLS43ODhhLjUuNSAwIDAgMS0uNDktLjU5NWwuMzg0LTEuOTlBMS41IDEuNSAwIDAgMSA4IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjMzOCAxLjU5YTYxLjQ0IDYxLjQ0IDAgMCAwLTIuODM3Ljg1Ni40ODEuNDgxIDAgMCAwLS4zMjguMzljLS41NTQgNC4xNTcuNzI2IDcuMTkgMi4yNTMgOS4xODhhMTAuNzI1IDEwLjcyNSAwIDAgMCAyLjI4NyAyLjIzM2MuMzQ2LjI0NC42NTIuNDIuODkzLjUzMy4xMi4wNTcuMjE4LjA5NS4yOTMuMTE4YS41NS41NSAwIDAgMCAuMTAxLjAyNS42MTUuNjE1IDAgMCAwIC4xLS4wMjVjLjA3Ni0uMDIzLjE3NC0uMDYxLjI5NC0uMTE4LjI0LS4xMTMuNTQ3LS4yOS44OTMtLjUzM2ExMC43MjYgMTAuNzI2IDAgMCAwIDIuMjg3LTIuMjMzYzEuNTI3LTEuOTk3IDIuODA3LTUuMDMxIDIuMjUzLTkuMTg4YS40OC40OCAwIDAgMC0uMzI4LS4zOWMtLjY1MS0uMjEzLTEuNzUtLjU2LTIuODM3LS44NTVDOS41NTIgMS4yOSA4LjUzMSAxLjA2NyA4IDEuMDY3Yy0uNTMgMC0xLjU1Mi4yMjMtMi42NjIuNTI0ek01LjA3Mi41NkM2LjE1Ny4yNjUgNy4zMSAwIDggMHMxLjg0My4yNjUgMi45MjguNTZjMS4xMS4zIDIuMjI5LjY1NSAyLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDEgMS4wNDQgMS4yNjJjLjU5NiA0LjQ3Ny0uNzg3IDcuNzk1LTIuNDY1IDkuOTlhMTEuNzc1IDExLjc3NSAwIDAgMS0yLjUxNyAyLjQ1MyA3LjE1OSA3LjE1OSAwIDAgMS0xLjA0OC42MjVjLS4yOC4xMzItLjU4MS4yNC0uODI5LjI0cy0uNTQ4LS4xMDgtLjgyOS0uMjRhNy4xNTggNy4xNTggMCAwIDEtMS4wNDgtLjYyNSAxMS43NzcgMTEuNzc3IDAgMCAxLTIuNTE3LTIuNDUzQzEuOTI4IDEwLjQ4Ny41NDUgNy4xNjkgMS4xNDEgMi42OTJBMS41NCAxLjU0IDAgMCAxIDIuMTg1IDEuNDMgNjIuNDU2IDYyLjQ1NiAwIDAgMSA1LjA3Mi41NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgNi41YTEuNSAxLjUgMCAwIDEtMSAxLjQxNWwuMzg1IDEuOTlhLjUuNSAwIDAgMS0uNDkxLjU5NWgtLjc4OGEuNS41IDAgMCAxLS40OS0uNTk1bC4zODQtMS45OWExLjUgMS41IDAgMSAxIDItMS40MTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4zMzggMS41OWE2MS40NCA2MS40NCAwIDAgMC0yLjgzNy44NTYuNDgxLjQ4MSAwIDAgMC0uMzI4LjM5Yy0uNTU0IDQuMTU3LjcyNiA3LjE5IDIuMjUzIDkuMTg4YTEwLjcyNSAxMC43MjUgMCAwIDAgMi4yODcgMi4yMzNjLjM0Ni4yNDQuNjUyLjQyLjg5My41MzMuMTIuMDU3LjIxOC4wOTUuMjkzLjExOGEuNTUuNTUgMCAwIDAgLjEwMS4wMjUuNjE1LjYxNSAwIDAgMCAuMS0uMDI1Yy4wNzYtLjAyMy4xNzQtLjA2MS4yOTQtLjExOC4yNC0uMTEzLjU0Ny0uMjkuODkzLS41MzNhMTAuNzI2IDEwLjcyNiAwIDAgMCAyLjI4Ny0yLjIzM2MxLjUyNy0xLjk5NyAyLjgwNy01LjAzMSAyLjI1My05LjE4OGEuNDguNDggMCAwIDAtLjMyOC0uMzljLS42NTEtLjIxMy0xLjc1LS41Ni0yLjgzNy0uODU1QzkuNTUyIDEuMjkgOC41MzEgMS4wNjcgOCAxLjA2N2MtLjUzIDAtMS41NTIuMjIzLTIuNjYyLjUyNHpNNS4wNzIuNTZDNi4xNTcuMjY1IDcuMzEgMCA4IDBzMS44NDMuMjY1IDIuOTI4LjU2YzEuMTEuMyAyLjIyOS42NTUgMi44ODcuODdhMS41NCAxLjU0IDAgMCAxIDEuMDQ0IDEuMjYyYy41OTYgNC40NzctLjc4NyA3Ljc5NS0yLjQ2NSA5Ljk5YTExLjc3NSAxMS43NzUgMCAwIDEtMi41MTcgMi40NTMgNy4xNTkgNy4xNTkgMCAwIDEtMS4wNDguNjI1Yy0uMjguMTMyLS41ODEuMjQtLjgyOS4yNHMtLjU0OC0uMTA4LS44MjktLjI0YTcuMTU4IDcuMTU4IDAgMCAxLTEuMDQ4LS42MjUgMTEuNzc3IDExLjc3NyAwIDAgMS0yLjUxNy0yLjQ1M0MxLjkyOCAxMC40ODcuNTQ1IDcuMTY5IDEuMTQxIDIuNjkyQTEuNTQgMS41NCAwIDAgMSAyLjE4NSAxLjQzIDYyLjQ1NiA2Mi40NTYgMCAwIDEgNS4wNzIuNTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDdhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgMCAxSDZhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaGllbGRQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMzM4IDEuNTlhNjEuNDQgNjEuNDQgMCAwIDAtMi44MzcuODU2LjQ4MS40ODEgMCAwIDAtLjMyOC4zOWMtLjU1NCA0LjE1Ny43MjYgNy4xOSAyLjI1MyA5LjE4OGExMC43MjUgMTAuNzI1IDAgMCAwIDIuMjg3IDIuMjMzYy4zNDYuMjQ0LjY1Mi40Mi44OTMuNTMzLjEyLjA1Ny4yMTguMDk1LjI5My4xMThhLjU1LjU1IDAgMCAwIC4xMDEuMDI1LjYxNS42MTUgMCAwIDAgLjEtLjAyNWMuMDc2LS4wMjMuMTc0LS4wNjEuMjk0LS4xMTguMjQtLjExMy41NDctLjI5Ljg5My0uNTMzYTEwLjcyNiAxMC43MjYgMCAwIDAgMi4yODctMi4yMzNjMS41MjctMS45OTcgMi44MDctNS4wMzEgMi4yNTMtOS4xODhhLjQ4LjQ4IDAgMCAwLS4zMjgtLjM5Yy0uNjUxLS4yMTMtMS43NS0uNTYtMi44MzctLjg1NUM5LjU1MiAxLjI5IDguNTMxIDEuMDY3IDggMS4wNjdjLS41MyAwLTEuNTUyLjIyMy0yLjY2Mi41MjR6TTUuMDcyLjU2QzYuMTU3LjI2NSA3LjMxIDAgOCAwczEuODQzLjI2NSAyLjkyOC41NmMxLjExLjMgMi4yMjkuNjU1IDIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMSAxLjA0NCAxLjI2MmMuNTk2IDQuNDc3LS43ODcgNy43OTUtMi40NjUgOS45OWExMS43NzUgMTEuNzc1IDAgMCAxLTIuNTE3IDIuNDUzIDcuMTU5IDcuMTU5IDAgMCAxLTEuMDQ4LjYyNWMtLjI4LjEzMi0uNTgxLjI0LS44MjkuMjRzLS41NDgtLjEwOC0uODI5LS4yNGE3LjE1OCA3LjE1OCAwIDAgMS0xLjA0OC0uNjI1IDExLjc3NyAxMS43NzcgMCAwIDEtMi41MTctMi40NTNDMS45MjggMTAuNDg3LjU0NSA3LjE2OSAxLjE0MSAyLjY5MkExLjU0IDEuNTQgMCAwIDEgMi4xODUgMS40MyA2Mi40NTYgNjIuNDU2IDAgMCAxIDUuMDcyLjU2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNC41YS41LjUgMCAwIDEgLjUuNXYxLjVIMTBhLjUuNSAwIDAgMSAwIDFIOC41VjlhLjUuNSAwIDAgMS0xIDBWNy41SDZhLjUuNSAwIDAgMSAwLTFoMS41VjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaGllbGRTaGFkZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMTQuOTMzYS42MTUuNjE1IDAgMCAwIC4xLS4wMjVjLjA3Ni0uMDIzLjE3NC0uMDYxLjI5NC0uMTE4LjI0LS4xMTMuNTQ3LS4yOS44OTMtLjUzM2ExMC43MjYgMTAuNzI2IDAgMCAwIDIuMjg3LTIuMjMzYzEuNTI3LTEuOTk3IDIuODA3LTUuMDMxIDIuMjUzLTkuMTg4YS40OC40OCAwIDAgMC0uMzI4LS4zOWMtLjY1MS0uMjEzLTEuNzUtLjU2LTIuODM3LS44NTVDOS41NTIgMS4yOSA4LjUzMSAxLjA2NyA4IDEuMDY3djEzLjg2NnpNNS4wNzIuNTZDNi4xNTcuMjY1IDcuMzEgMCA4IDBzMS44NDMuMjY1IDIuOTI4LjU2YzEuMTEuMyAyLjIyOS42NTUgMi44ODcuODdhMS41NCAxLjU0IDAgMCAxIDEuMDQ0IDEuMjYyYy41OTYgNC40NzctLjc4NyA3Ljc5NS0yLjQ2NSA5Ljk5YTExLjc3NSAxMS43NzUgMCAwIDEtMi41MTcgMi40NTMgNy4xNTkgNy4xNTkgMCAwIDEtMS4wNDguNjI1Yy0uMjguMTMyLS41ODEuMjQtLjgyOS4yNHMtLjU0OC0uMTA4LS44MjktLjI0YTcuMTU4IDcuMTU4IDAgMCAxLTEuMDQ4LS42MjUgMTEuNzc3IDExLjc3NyAwIDAgMS0yLjUxNy0yLjQ1M0MxLjkyOCAxMC40ODcuNTQ1IDcuMTY5IDEuMTQxIDIuNjkyQTEuNTQgMS41NCAwIDAgMSAyLjE4NSAxLjQzIDYyLjQ1NiA2Mi40NTYgMCAwIDEgNS4wNzIuNTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZWxkU2xhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjA5MyAzLjA5M2MtLjQ2NSA0LjI3NS44ODUgNy40NiAyLjUxMyA5LjU4OWExMS43NzcgMTEuNzc3IDAgMCAwIDIuNTE3IDIuNDUzYy4zODYuMjczLjc0NC40ODIgMS4wNDguNjI1LjI4LjEzMi41ODEuMjQuODI5LjI0cy41NDgtLjEwOC44MjktLjI0YTcuMTU5IDcuMTU5IDAgMCAwIDEuMDQ4LS42MjUgMTEuMzIgMTEuMzIgMCAwIDAgMS43MzMtMS41MjVMMS4wOTMgMy4wOTN6bTEyLjIxNSA4LjIxNUwzLjEyOCAxLjEyOEE2MS4zNjkgNjEuMzY5IDAgMCAxIDUuMDczLjU2QzYuMTU3LjI2NSA3LjMxIDAgOCAwczEuODQzLjI2NSAyLjkyOC41NmMxLjExLjMgMi4yMjkuNjU1IDIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMSAxLjA0NCAxLjI2MmMuNDgzIDMuNjI2LS4zMzIgNi40OTEtMS41NTEgOC42MTZ6bS4zMzggMy4wNDYtMTMtMTMgLjcwOC0uNzA4IDEzIDEzLS43MDcuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NoaWVsZFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjA5MyAzLjA5M2MtLjQ2NSA0LjI3NS44ODUgNy40NiAyLjUxMyA5LjU4OWExMS43NzcgMTEuNzc3IDAgMCAwIDIuNTE3IDIuNDUzYy4zODYuMjczLjc0NC40ODIgMS4wNDguNjI1LjI4LjEzMi41ODEuMjQuODI5LjI0cy41NDgtLjEwOC44MjktLjI0YTcuMTU5IDcuMTU5IDAgMCAwIDEuMDQ4LS42MjUgMTEuMzIgMTEuMzIgMCAwIDAgMS43MzMtMS41MjVsLS43NDUtLjc0NWExMC4yNyAxMC4yNyAwIDAgMS0xLjU3OCAxLjM5MmMtLjM0Ni4yNDQtLjY1Mi40Mi0uODkzLjUzMy0uMTIuMDU3LS4yMTguMDk1LS4yOTMuMTE4YS41NS41NSAwIDAgMS0uMTAxLjAyNS42MTUuNjE1IDAgMCAxLS4xLS4wMjUgMi4zNDggMi4zNDggMCAwIDEtLjI5NC0uMTE4IDYuMTQxIDYuMTQxIDAgMCAxLS44OTMtLjUzMyAxMC43MjUgMTAuNzI1IDAgMCAxLTIuMjg3LTIuMjMzQzMuMDUzIDEwLjIyOCAxLjg3OSA3LjU5NCAyLjA2IDQuMDZsLS45NjctLjk2N3pNMy45OCAxLjk4bC0uODUyLS44NTJBNTguOTM1IDU4LjkzNSAwIDAgMSA1LjA3Mi41NTlDNi4xNTcuMjY2IDcuMzEgMCA4IDBzMS44NDMuMjY1IDIuOTI4LjU2YzEuMTEuMyAyLjIyOS42NTUgMi44ODcuODdhMS41NCAxLjU0IDAgMCAxIDEuMDQ0IDEuMjYyYy40ODMgMy42MjYtLjMzMiA2LjQ5MS0xLjU1MSA4LjYxNmwtLjc3LS43N2MxLjA0Mi0xLjkxNSAxLjcyLTQuNDY5IDEuMjktNy43MDJhLjQ4LjQ4IDAgMCAwLS4zMy0uMzljLS42NS0uMjEzLTEuNzUtLjU2LTIuODM2LS44NTVDOS41NTIgMS4yOSA4LjUzMSAxLjA2NyA4IDEuMDY3Yy0uNTMgMC0xLjU1Mi4yMjMtMi42NjIuNTI0YTQ5LjcgNDkuNyAwIDAgMC0xLjM1Ny4zOXptOS42NjYgMTIuMzc0LTEzLTEzIC43MDgtLjcwOCAxMyAxMy0uNzA3LjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaGllbGRYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMzM4IDEuNTlhNjEuNDQgNjEuNDQgMCAwIDAtMi44MzcuODU2LjQ4MS40ODEgMCAwIDAtLjMyOC4zOWMtLjU1NCA0LjE1Ny43MjYgNy4xOSAyLjI1MyA5LjE4OGExMC43MjUgMTAuNzI1IDAgMCAwIDIuMjg3IDIuMjMzYy4zNDYuMjQ0LjY1Mi40Mi44OTMuNTMzLjEyLjA1Ny4yMTguMDk1LjI5My4xMThhLjU1LjU1IDAgMCAwIC4xMDEuMDI1LjYxNS42MTUgMCAwIDAgLjEtLjAyNWMuMDc2LS4wMjMuMTc0LS4wNjEuMjk0LS4xMTguMjQtLjExMy41NDctLjI5Ljg5My0uNTMzYTEwLjcyNiAxMC43MjYgMCAwIDAgMi4yODctMi4yMzNjMS41MjctMS45OTcgMi44MDctNS4wMzEgMi4yNTMtOS4xODhhLjQ4LjQ4IDAgMCAwLS4zMjgtLjM5Yy0uNjUxLS4yMTMtMS43NS0uNTYtMi44MzctLjg1NUM5LjU1MiAxLjI5IDguNTMxIDEuMDY3IDggMS4wNjdjLS41MyAwLTEuNTUyLjIyMy0yLjY2Mi41MjR6TTUuMDcyLjU2QzYuMTU3LjI2NSA3LjMxIDAgOCAwczEuODQzLjI2NSAyLjkyOC41NmMxLjExLjMgMi4yMjkuNjU1IDIuODg3Ljg3YTEuNTQgMS41NCAwIDAgMSAxLjA0NCAxLjI2MmMuNTk2IDQuNDc3LS43ODcgNy43OTUtMi40NjUgOS45OWExMS43NzUgMTEuNzc1IDAgMCAxLTIuNTE3IDIuNDUzIDcuMTU5IDcuMTU5IDAgMCAxLTEuMDQ4LjYyNWMtLjI4LjEzMi0uNTgxLjI0LS44MjkuMjRzLS41NDgtLjEwOC0uODI5LS4yNGE3LjE1OCA3LjE1OCAwIDAgMS0xLjA0OC0uNjI1IDExLjc3NyAxMS43NzcgMCAwIDEtMi41MTctMi40NTNDMS45MjggMTAuNDg3LjU0NSA3LjE2OSAxLjE0MSAyLjY5MkExLjU0IDEuNTQgMCAwIDEgMi4xODUgMS40MyA2Mi40NTYgNjIuNDU2IDAgMCAxIDUuMDcyLjU2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMTQ2IDUuMTQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNi4yOTNsMS4xNDYtMS4xNDdhLjUuNSAwIDEgMSAuNzA4LjcwOEw4LjcwNyA3bDEuMTQ3IDEuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA3LjcwNyA2Ljg1NCA4Ljg1NGEuNS41IDAgMSAxLS43MDgtLjcwOEw3LjI5MyA3IDYuMTQ2IDUuODU0YS41LjUgMCAwIDEgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NoaWVsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjMzOCAxLjU5YTYxLjQ0IDYxLjQ0IDAgMCAwLTIuODM3Ljg1Ni40ODEuNDgxIDAgMCAwLS4zMjguMzljLS41NTQgNC4xNTcuNzI2IDcuMTkgMi4yNTMgOS4xODhhMTAuNzI1IDEwLjcyNSAwIDAgMCAyLjI4NyAyLjIzM2MuMzQ2LjI0NC42NTIuNDIuODkzLjUzMy4xMi4wNTcuMjE4LjA5NS4yOTMuMTE4YS41NS41NSAwIDAgMCAuMTAxLjAyNS42MTUuNjE1IDAgMCAwIC4xLS4wMjVjLjA3Ni0uMDIzLjE3NC0uMDYxLjI5NC0uMTE4LjI0LS4xMTMuNTQ3LS4yOS44OTMtLjUzM2ExMC43MjYgMTAuNzI2IDAgMCAwIDIuMjg3LTIuMjMzYzEuNTI3LTEuOTk3IDIuODA3LTUuMDMxIDIuMjUzLTkuMTg4YS40OC40OCAwIDAgMC0uMzI4LS4zOWMtLjY1MS0uMjEzLTEuNzUtLjU2LTIuODM3LS44NTVDOS41NTIgMS4yOSA4LjUzMSAxLjA2NyA4IDEuMDY3Yy0uNTMgMC0xLjU1Mi4yMjMtMi42NjIuNTI0ek01LjA3Mi41NkM2LjE1Ny4yNjUgNy4zMSAwIDggMHMxLjg0My4yNjUgMi45MjguNTZjMS4xMS4zIDIuMjI5LjY1NSAyLjg4Ny44N2ExLjU0IDEuNTQgMCAwIDEgMS4wNDQgMS4yNjJjLjU5NiA0LjQ3Ny0uNzg3IDcuNzk1LTIuNDY1IDkuOTlhMTEuNzc1IDExLjc3NSAwIDAgMS0yLjUxNyAyLjQ1MyA3LjE1OSA3LjE1OSAwIDAgMS0xLjA0OC42MjVjLS4yOC4xMzItLjU4MS4yNC0uODI5LjI0cy0uNTQ4LS4xMDgtLjgyOS0uMjRhNy4xNTggNy4xNTggMCAwIDEtMS4wNDgtLjYyNSAxMS43NzcgMTEuNzc3IDAgMCAxLTIuNTE3LTIuNDUzQzEuOTI4IDEwLjQ4Ny41NDUgNy4xNjkgMS4xNDEgMi42OTJBMS41NCAxLjU0IDAgMCAxIDIuMTg1IDEuNDMgNjIuNDU2IDYyLjQ1NiAwIDAgMSA1LjA3Mi41NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaGlmdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yNyAyLjA0N2ExIDEgMCAwIDEgMS40NiAwbDYuMzQ1IDYuNzdjLjYuNjM4LjE0NiAxLjY4My0uNzMgMS42ODNIMTEuNXYzYTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtM0gxLjY1NEMuNzggMTAuNS4zMjYgOS40NTUuOTI0IDguODE2TDcuMjcgMi4wNDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yNyAyLjA0N2ExIDEgMCAwIDEgMS40NiAwbDYuMzQ1IDYuNzdjLjYuNjM4LjE0NiAxLjY4My0uNzMgMS42ODNIMTEuNXYzYTEgMSAwIDAgMS0xIDFoLTVhMSAxIDAgMCAxLTEtMXYtM0gxLjY1NEMuNzggMTAuNS4zMjYgOS40NTUuOTI0IDguODE2TDcuMjcgMi4wNDd6TTE0LjM0NiA5LjUgOCAyLjczMSAxLjY1NCA5LjVINC41YTEgMSAwIDAgMSAxIDF2M2g1di0zYTEgMSAwIDAgMSAxLTFoMi44NDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hvcFdpbmRvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjk3IDEuMzVBMSAxIDAgMCAxIDMuNzMgMWg4LjU0YTEgMSAwIDAgMSAuNzYuMzVsMi42MDkgMy4wNDRBMS41IDEuNSAwIDAgMSAxNiA1LjM3di4yNTVhMi4zNzUgMi4zNzUgMCAwIDEtNC4yNSAxLjQ1OEEyLjM3MSAyLjM3MSAwIDAgMSA5Ljg3NSA4IDIuMzcgMi4zNyAwIDAgMSA4IDcuMDgzIDIuMzcgMi4zNyAwIDAgMSA2LjEyNSA4YTIuMzcgMi4zNyAwIDAgMS0xLjg3NS0uOTE3QTIuMzc1IDIuMzc1IDAgMCAxIDAgNS42MjVWNS4zN2ExLjUgMS41IDAgMCAxIC4zNjEtLjk3NmwyLjYxLTMuMDQ1em0xLjc4IDQuMjc1YTEuMzc1IDEuMzc1IDAgMCAwIDIuNzUgMCAuNS41IDAgMCAxIDEgMCAxLjM3NSAxLjM3NSAwIDAgMCAyLjc1IDAgLjUuNSAwIDAgMSAxIDAgMS4zNzUgMS4zNzUgMCAxIDAgMi43NSAwVjUuMzdhLjUuNSAwIDAgMC0uMTItLjMyNUwxMi4yNyAySDMuNzNMMS4xMiA1LjA0NUEuNS41IDAgMCAwIDEgNS4zN3YuMjU1YTEuMzc1IDEuMzc1IDAgMCAwIDIuNzUgMCAuNS41IDAgMCAxIDEgMHpNMS41IDguNUEuNS41IDAgMCAxIDIgOXY2aDEyVjlhLjUuNSAwIDAgMSAxIDB2NmguNWEuNS41IDAgMCAxIDAgMUguNWEuNS41IDAgMCAxIDAtMUgxVjlhLjUuNSAwIDAgMSAuNS0uNXptMiAuNWEuNS41IDAgMCAxIC41LjVWMTNoOFY5LjVhLjUuNSAwIDAgMSAxIDBWMTNhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWOS41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2hvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjk3IDEuMzVBMSAxIDAgMCAxIDMuNzMgMWg4LjU0YTEgMSAwIDAgMSAuNzYuMzVsMi42MDkgMy4wNDRBMS41IDEuNSAwIDAgMSAxNiA1LjM3di4yNTVhMi4zNzUgMi4zNzUgMCAwIDEtNC4yNSAxLjQ1OEEyLjM3MSAyLjM3MSAwIDAgMSA5Ljg3NSA4IDIuMzcgMi4zNyAwIDAgMSA4IDcuMDgzIDIuMzcgMi4zNyAwIDAgMSA2LjEyNSA4YTIuMzcgMi4zNyAwIDAgMS0xLjg3NS0uOTE3QTIuMzc1IDIuMzc1IDAgMCAxIDAgNS42MjVWNS4zN2ExLjUgMS41IDAgMCAxIC4zNjEtLjk3NmwyLjYxLTMuMDQ1em0xLjc4IDQuMjc1YTEuMzc1IDEuMzc1IDAgMCAwIDIuNzUgMCAuNS41IDAgMCAxIDEgMCAxLjM3NSAxLjM3NSAwIDAgMCAyLjc1IDAgLjUuNSAwIDAgMSAxIDAgMS4zNzUgMS4zNzUgMCAxIDAgMi43NSAwVjUuMzdhLjUuNSAwIDAgMC0uMTItLjMyNUwxMi4yNyAySDMuNzNMMS4xMiA1LjA0NUEuNS41IDAgMCAwIDEgNS4zN3YuMjU1YTEuMzc1IDEuMzc1IDAgMCAwIDIuNzUgMCAuNS41IDAgMCAxIDEgMHpNMS41IDguNUEuNS41IDAgMCAxIDIgOXY2aDF2LTVhMSAxIDAgMCAxIDEtMWgzYTEgMSAwIDAgMSAxIDF2NWg2VjlhLjUuNSAwIDAgMSAxIDB2NmguNWEuNS41IDAgMCAxIDAgMUguNWEuNS41IDAgMCAxIDAtMUgxVjlhLjUuNSAwIDAgMSAuNS0uNXpNNCAxNWgzdi01SDR2NXptNS01YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xdi0zem0zIDBoLTJ2M2gydi0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NodWZmbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgMy41QS41LjUgMCAwIDEgLjUgM0gxYzIuMjAyIDAgMy44MjcgMS4yNCA0Ljg3NCAyLjQxOC40OS41NTIuODY1IDEuMTAyIDEuMTI2IDEuNTMyLjI2LS40My42MzYtLjk4IDEuMTI2LTEuNTMyQzkuMTczIDQuMjQgMTAuNzk4IDMgMTMgM3YxYy0xLjc5OCAwLTMuMTczIDEuMDEtNC4xMjYgMi4wODJBOS42MjQgOS42MjQgMCAwIDAgNy41NTYgOGE5LjYyNCA5LjYyNCAwIDAgMCAxLjMxNyAxLjkxOEM5LjgyOCAxMC45OSAxMS4yMDQgMTIgMTMgMTJ2MWMtMi4yMDIgMC0zLjgyNy0xLjI0LTQuODc0LTIuNDE4QTEwLjU5NSAxMC41OTUgMCAwIDEgNyA5LjA1Yy0uMjYuNDMtLjYzNi45OC0xLjEyNiAxLjUzMkM0LjgyNyAxMS43NiAzLjIwMiAxMyAxIDEzSC41YS41LjUgMCAwIDEgMC0xSDFjMS43OTggMCAzLjE3My0xLjAxIDQuMTI2LTIuMDgyQTkuNjI0IDkuNjI0IDAgMCAwIDYuNDQ0IDhhOS42MjQgOS42MjQgMCAwIDAtMS4zMTctMS45MThDNC4xNzIgNS4wMSAyLjc5NiA0IDEgNEguNWEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDUuNDY2VjEuNTM0YS4yNS4yNSAwIDAgMSAuNDEtLjE5MmwyLjM2IDEuOTY2Yy4xMi4xLjEyLjI4NCAwIC4zODRsLTIuMzYgMS45NjZhLjI1LjI1IDAgMCAxLS40MS0uMTkyem0wIDl2LTMuOTMyYS4yNS4yNSAwIDAgMSAuNDEtLjE5MmwyLjM2IDEuOTY2Yy4xMi4xLjEyLjI4NCAwIC4zODRsLTIuMzYgMS45NjZhLjI1LjI1IDAgMCAxLS40MS0uMTkyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NpZ25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02LjA4LjIzNC4xNzkuNzI3YTcuMjY0IDcuMjY0IDAgMCAwLTIuMDEuODMybC0uMzgzLS42NDNBNy45IDcuOSAwIDAgMSA2LjA3OS4yMzR6bTMuODQgMEw5Ljc0Mi45NmE3LjI2NSA3LjI2NSAwIDAgMSAyLjAxLjgzMmwuMzg4LS42NDNBNy45NTcgNy45NTcgMCAwIDAgOS45Mi4yMzR6bS04Ljc3IDMuNjNhNy45NDQgNy45NDQgMCAwIDAtLjkxNiAyLjIxNWwuNzI3LjE4YTcuMjY0IDcuMjY0IDAgMCAxIC44MzItMi4wMWwtLjY0My0uMzg2ek0uNzUgOGE3LjMgNy4zIDAgMCAxIC4wODEtMS4wODZMLjA5MSA2LjhhOCA4IDAgMCAwIDAgMi4zOThsLjc0LS4xMTJBNy4yNjIgNy4yNjIgMCAwIDEgLjc1IDh6bTExLjM4NCA2Ljg0OC0uMzg0LS42NGE3LjIzIDcuMjMgMCAwIDEtMi4wMDcuODMxbC4xOC43MjhhNy45NjUgNy45NjUgMCAwIDAgMi4yMTEtLjkxOXpNMTUuMjUxIDhjMCAuMzY0LS4wMjguNzI3LS4wODIgMS4wODZsLjc0LjExMmE3Ljk2NiA3Ljk2NiAwIDAgMCAwLTIuMzk4bC0uNzQuMTE0Yy4wNTQuMzYuMDgyLjcyMi4wODIgMS4wODZ6bS41MTYgMS45MTgtLjcyOC0uMThhNy4yNTIgNy4yNTIgMCAwIDEtLjgzMiAyLjAxMmwuNjQzLjM4N2E3LjkzMyA3LjkzMyAwIDAgMCAuOTE3LTIuMjE5em0tNi42OCA1LjI1Yy0uNzIuMTEtMS40NTMuMTEtMi4xNzMgMGwtLjExMi43NDJhNy45OSA3Ljk5IDAgMCAwIDIuMzk2IDBsLS4xMTItLjc0MXptNC43NS0yLjg2OGE3LjIyOSA3LjIyOSAwIDAgMS0xLjUzNyAxLjUzNGwuNDQ2LjYwNWE4LjA3IDguMDcgMCAwIDAgMS42OTUtMS42ODlsLS42MDQtLjQ1ek0xMi4zIDIuMTYzYy41ODcuNDMyIDEuMTA1Ljk1IDEuNTM3IDEuNTM3bC42MDQtLjQ1YTguMDYgOC4wNiAwIDAgMC0xLjY5LTEuNjkxbC0uNDUuNjA0ek0yLjE2MyAzLjdBNy4yNDIgNy4yNDIgMCAwIDEgMy43IDIuMTYzbC0uNDUtLjYwNGE4LjA2IDguMDYgMCAwIDAtMS42OTEgMS42OWwuNjA0LjQ1em0xMi42ODguMTYzLS42NDQuMzg3Yy4zNzcuNjIzLjY1OCAxLjMuODMyIDIuMDA3bC43MjgtLjE4YTcuOTMxIDcuOTMxIDAgMCAwLS45MTYtMi4yMTR6TTYuOTEzLjgzMWE3LjI1NCA3LjI1NCAwIDAgMSAyLjE3MiAwbC4xMTItLjc0YTcuOTg1IDcuOTg1IDAgMCAwLTIuMzk2IDBsLjExMi43NHpNMi41NDcgMTQuNjQgMSAxNWwuMzYtMS41NDktLjcyOS0uMTctLjM2MSAxLjU0OGEuNzUuNzUgMCAwIDAgLjkuOTAybDEuNTQ4LS4zNTctLjE3LS43MzR6TS43ODYgMTIuNjEybC43MzIuMTY4LjI1LTEuMDczQTcuMTg3IDcuMTg3IDAgMCAxIC45NiA5Ljc0bC0uNzI3LjE4YTggOCAwIDAgMCAuNzM2IDEuOTAybC0uMTg0Ljc5em0zLjUgMS42MjMtMS4wNzMuMjUuMTcuNzMxLjc5LS4xODRjLjYuMzI3IDEuMjM5LjU3NCAxLjkwMi43MzdsLjE4LS43MjhhNy4xOTcgNy4xOTcgMCAwIDEtMS45NjItLjgxMWwtLjAwNy4wMDV6TTggMS41YTYuNTAyIDYuNTAyIDAgMCAwLTYuNDk4IDYuNTAyIDYuNTE2IDYuNTE2IDAgMCAwIC45OTggMy40NTVsLS42MjUgMi42NjhMNC41NCAxMy41YTYuNTAyIDYuNTAyIDAgMCAwIDYuOTMtMTFBNi41MTYgNi41MTYgMCAwIDAgOCAxLjVcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaWducG9zdDJGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjkzLjcwN0ExIDEgMCAwIDAgNyAxLjQxNFYySDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNXYxSDIuNWExIDEgMCAwIDAtLjguNEwuNzI1IDguN2EuNS41IDAgMCAwIDAgLjZsLjk3NSAxLjNhMSAxIDAgMCAwIC44LjRIN3Y1aDJ2LTVoNWExIDEgMCAwIDAgMS0xVjhhMSAxIDAgMCAwLTEtMUg5VjZoNC41YTEgMSAwIDAgMCAuOC0uNGwuOTc1LTEuM2EuNS41IDAgMCAwIDAtLjZMMTQuMyAyLjRhMSAxIDAgMCAwLS44LS40SDl2LS41ODZBMSAxIDAgMCAwIDcuMjkzLjcwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaWducG9zdDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxLjQxNFYySDJhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoNXYxSDIuNWExIDEgMCAwIDAtLjguNEwuNzI1IDguN2EuNS41IDAgMCAwIDAgLjZsLjk3NSAxLjNhMSAxIDAgMCAwIC44LjRIN3Y1aDJ2LTVoNWExIDEgMCAwIDAgMS0xVjhhMSAxIDAgMCAwLTEtMUg5VjZoNC41YTEgMSAwIDAgMCAuOC0uNGwuOTc1LTEuM2EuNS41IDAgMCAwIDAtLjZMMTQuMyAyLjRhMSAxIDAgMCAwLS44LS40SDl2LS41ODZhMSAxIDAgMCAwLTIgMHpNMTMuNSAzbC43NSAxLS43NSAxSDJWM2gxMS41em0uNSA1djJIMi41bC0uNzUtMSAuNzUtMUgxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaWducG9zdEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4yOTMuNzA3QTEgMSAwIDAgMCA3IDEuNDE0VjRIMmExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWg1djZoMnYtNmgzLjUzMmExIDEgMCAwIDAgLjc2OC0uMzZsMS45MzMtMi4zMmEuNS41IDAgMCAwIDAtLjY0TDEzLjMgNC4zNmExIDEgMCAwIDAtLjc2OC0uMzZIOVYxLjQxNEExIDEgMCAwIDAgNy4yOTMuNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NpZ25wb3N0U3BsaXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTZoMlY2aDVhMSAxIDAgMCAwIC44LS40bC45NzUtMS4zYS41LjUgMCAwIDAgMC0uNkwxNC44IDIuNEExIDEgMCAwIDAgMTQgMkg5di0uNTg2YTEgMSAwIDAgMC0yIDBWN0gyYTEgMSAwIDAgMC0uOC40TC4yMjUgOC43YS41LjUgMCAwIDAgMCAuNmwuOTc1IDEuM2ExIDEgMCAwIDAgLjguNGg1djV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2lnbnBvc3RTcGxpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdWMS40MTRhMSAxIDAgMCAxIDIgMFYyaDVhMSAxIDAgMCAxIC44LjRsLjk3NSAxLjNhLjUuNSAwIDAgMSAwIC42TDE0LjggNS42YTEgMSAwIDAgMS0uOC40SDl2MTBIN3YtNUgyYTEgMSAwIDAgMS0uOC0uNEwuMjI1IDkuM2EuNS41IDAgMCAxIDAtLjZMMS4yIDcuNEExIDEgMCAwIDEgMiA3aDV6bTEgM1Y4SDJsLS43NSAxTDIgMTBoNnptMC01aDZsLjc1LTFMMTQgM0g4djJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2lnbnBvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxLjQxNFY0SDJhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoNXY2aDJ2LTZoMy41MzJhMSAxIDAgMCAwIC43NjgtLjM2bDEuOTMzLTIuMzJhLjUuNSAwIDAgMCAwLS42NEwxMy4zIDQuMzZhMSAxIDAgMCAwLS43NjgtLjM2SDlWMS40MTRhMSAxIDAgMCAwLTIgMHpNMTIuNTMyIDVsMS42NjYgMi0xLjY2NiAySDJWNWgxMC41MzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2ltRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDQuNWEuNS41IDAgMCAxIC41LS41aDJ2Mkg1VjQuNXpNOC41IDZWNGgyYS41LjUgMCAwIDEgLjUuNVY2SDguNXpNNSA3aDZ2Mkg1Vjd6bTMuNSAzSDExdjEuNWEuNS41IDAgMCAxLS41LjVoLTJ2LTJ6bS0xIDB2MmgtMmEuNS41IDAgMCAxLS41LS41VjEwaDIuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjUgMEExLjUgMS41IDAgMCAwIDIgMS41djEzQTEuNSAxLjUgMCAwIDAgMy41IDE2aDlhMS41IDEuNSAwIDAgMCAxLjUtMS41VjMuNDE0YTEuNSAxLjUgMCAwIDAtLjQ0LTEuMDZMMTEuNjQ3LjQzOUExLjUgMS41IDAgMCAwIDEwLjU4NiAwSDMuNXptMiAzaDVBMS41IDEuNSAwIDAgMSAxMiA0LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA0IDExLjV2LTdBMS41IDEuNSAwIDAgMSA1LjUgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTaW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxLjVBMS41IDEuNSAwIDAgMSAzLjUgMGg3LjA4NmExLjUgMS41IDAgMCAxIDEuMDYuNDRsMS45MTUgMS45MTRBMS41IDEuNSAwIDAgMSAxNCAzLjQxNFYxNC41YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtOUExLjUgMS41IDAgMCAxIDIgMTQuNXYtMTN6TTMuNSAxYS41LjUgMCAwIDAtLjUuNXYxM2EuNS41IDAgMCAwIC41LjVoOWEuNS41IDAgMCAwIC41LS41VjMuNDE0YS41LjUgMCAwIDAtLjE0Ni0uMzUzbC0xLjkxNS0xLjkxNUEuNS41IDAgMCAwIDEwLjU4NiAxSDMuNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgNGEuNS41IDAgMCAwLS41LjVWNmgyLjVWNGgtMnptMyAwdjJIMTFWNC41YS41LjUgMCAwIDAtLjUtLjVoLTJ6TTExIDdINXYyaDZWN3ptMCAzSDguNXYyaDJhLjUuNSAwIDAgMCAuNS0uNVYxMHptLTMuNSAydi0ySDV2MS41YS41LjUgMCAwIDAgLjUuNWgyek00IDQuNUExLjUgMS41IDAgMCAxIDUuNSAzaDVBMS41IDEuNSAwIDAgMSAxMiA0LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTVBMS41IDEuNSAwIDAgMSA0IDExLjV2LTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcEJhY2t3YXJkQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTExLjIxLTYuOTA3TDguNSA3LjAyOFY1LjVhLjUuNSAwIDAgMC0uNzktLjQwN0w1IDcuMDI4VjUuNWEuNS41IDAgMCAwLTEgMHY1YS41LjUgMCAwIDAgMSAwVjguOTcybDIuNzEgMS45MzVhLjUuNSAwIDAgMCAuNzktLjQwN1Y4Ljk3MmwyLjcxIDEuOTM1QS41LjUgMCAwIDAgMTIgMTAuNXYtNWEuNS41IDAgMCAwLS43OS0uNDA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBCYWNrd2FyZEJ0biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yMSA1LjA5M0EuNS41IDAgMCAxIDEyIDUuNXY1YS41LjUgMCAwIDEtLjc5LjQwN0w4LjUgOC45NzJWMTAuNWEuNS41IDAgMCAxLS43OS40MDdMNSA4Ljk3MlYxMC41YS41LjUgMCAwIDEtMSAwdi01YS41LjUgMCAwIDEgMSAwdjEuNTI4bDIuNzEtMS45MzVhLjUuNSAwIDAgMSAuNzkuNDA3djEuNTI4bDIuNzEtMS45MzV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTE1IDBhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwQmFja3dhcmRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHptLTQuNzktMi45MDdMOC41IDcuMDI4VjUuNWEuNS41IDAgMCAwLS43OS0uNDA3TDUgNy4wMjhWNS41YS41LjUgMCAwIDAtMSAwdjVhLjUuNSAwIDAgMCAxIDBWOC45NzJsMi43MSAxLjkzNWEuNS41IDAgMCAwIC43OS0uNDA3VjguOTcybDIuNzEgMS45MzVBLjUuNSAwIDAgMCAxMiAxMC41di01YS41LjUgMCAwIDAtLjc5LS40MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcEJhY2t3YXJkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVBNyA3IDAgMSAxIDggMWE3IDcgMCAwIDEgMCAxNHptMCAxQTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNzI5IDUuMDU1YS41LjUgMCAwIDAtLjUyLjAzOEw4LjUgNy4wMjhWNS41YS41LjUgMCAwIDAtLjc5LS40MDdMNSA3LjAyOFY1LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMFY4Ljk3MmwyLjcxIDEuOTM1YS41LjUgMCAwIDAgLjc5LS40MDdWOC45NzJsMi43MSAxLjkzNUEuNS41IDAgMCAwIDEyIDEwLjV2LTVhLjUuNSAwIDAgMC0uMjcxLS40NDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcEJhY2t3YXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uNSAzLjVBLjUuNSAwIDAgMCAwIDR2OGEuNS41IDAgMCAwIDEgMFY4Ljc1M2w2LjI2NyAzLjYzNmMuNTQuMzEzIDEuMjMzLS4wNjYgMS4yMzMtLjY5N3YtMi45NGw2LjI2NyAzLjYzNmMuNTQuMzE0IDEuMjMzLS4wNjUgMS4yMzMtLjY5NlY0LjMwOGMwLS42My0uNjkzLTEuMDEtMS4yMzMtLjY5Nkw4LjUgNy4yNDh2LTIuOTRjMC0uNjMtLjY5Mi0xLjAxLTEuMjMzLS42OTZMMSA3LjI0OFY0YS41LjUgMCAwIDAtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcEJhY2t3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDMuNUEuNS41IDAgMCAxIDEgNHYzLjI0OGw2LjI2Ny0zLjYzNmMuNTItLjMwMiAxLjIzMy4wNDMgMS4yMzMuNjk2djIuOTRsNi4yNjctMy42MzZjLjUyLS4zMDIgMS4yMzMuMDQzIDEuMjMzLjY5NnY3LjM4NGMwIC42NTMtLjcxMy45OTgtMS4yMzMuNjk2TDguNSA4Ljc1MnYyLjk0YzAgLjY1My0uNzEzLjk5OC0xLjIzMy42OTZMMSA4Ljc1MlYxMmEuNS41IDAgMCAxLTEgMFY0YS41LjUgMCAwIDEgLjUtLjV6bTcgMS4xMzNMMS42OTYgOCA3LjUgMTEuMzY3VjQuNjMzem03LjUgMEw5LjE5NiA4IDE1IDExLjM2N1Y0LjYzM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwRW5kQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTYuNzktNi45MDdBLjUuNSAwIDAgMCA2IDUuNXY1YS41LjUgMCAwIDAgLjc5LjQwN0w5LjUgOC45NzJWMTAuNWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLTEgMHYxLjUyOEw2Ljc5IDUuMDkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBFbmRCdG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi43OSA1LjA5MyA5LjUgNy4wMjhWNS41YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDBWOC45NzJsLTIuNzEgMS45MzVBLjUuNSAwIDAgMSA2IDEwLjV2LTVhLjUuNSAwIDAgMSAuNzktLjQwN3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMTUgMGExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBFbmRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNi43OSA1LjA5M0EuNS41IDAgMCAwIDYgNS41djVhLjUuNSAwIDAgMCAuNzkuNDA3TDkuNSA4Ljk3MlYxMC41YS41LjUgMCAwIDAgMSAwdi01YS41LjUgMCAwIDAtMSAwdjEuNTI4TDYuNzkgNS4wOTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcEVuZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMjcxIDUuMDU1YS41LjUgMCAwIDEgLjUyLjAzOEw5LjUgNy4wMjhWNS41YS41LjUgMCAwIDEgMSAwdjVhLjUuNSAwIDAgMS0xIDBWOC45NzJsLTIuNzEgMS45MzVBLjUuNSAwIDAgMSA2IDEwLjV2LTVhLjUuNSAwIDAgMSAuMjcxLS40NDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcEVuZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA0YS41LjUgMCAwIDAtMSAwdjMuMjQ4TDUuMjMzIDMuNjEyQzQuNjkzIDMuMyA0IDMuNjc4IDQgNC4zMDh2Ny4zODRjMCAuNjMuNjkyIDEuMDEgMS4yMzMuNjk3TDExLjUgOC43NTNWMTJhLjUuNSAwIDAgMCAxIDBWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwRW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgNGEuNS41IDAgMCAwLTEgMHYzLjI0OEw1LjIzMyAzLjYxMkM0LjcxMyAzLjMxIDQgMy42NTUgNCA0LjMwOHY3LjM4NGMwIC42NTMuNzEzLjk5OCAxLjIzMy42OTZMMTEuNSA4Ljc1MlYxMmEuNS41IDAgMCAwIDEgMFY0ek01IDQuNjMzIDEwLjgwNCA4IDUgMTEuMzY3VjQuNjMzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBGb3J3YXJkQnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEwVjJhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTQuNzktNi45MDdBLjUuNSAwIDAgMCA0IDMuNXY1YS41LjUgMCAwIDAgLjc5LjQwN0w3LjUgNi45NzJWOC41YS41LjUgMCAwIDAgLjc5LjQwN0wxMSA2Ljk3MlY4LjVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0xIDB2MS41MjhMOC4yOSAzLjA5M2EuNS41IDAgMCAwLS43OS40MDd2MS41MjhMNC43OSAzLjA5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwRm9yd2FyZEJ0biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljc5IDUuMDkzQS41LjUgMCAwIDAgNCA1LjV2NWEuNS41IDAgMCAwIC43OS40MDdMNy41IDguOTcyVjEwLjVhLjUuNSAwIDAgMCAuNzkuNDA3TDExIDguOTcyVjEwLjVhLjUuNSAwIDAgMCAxIDB2LTVhLjUuNSAwIDAgMC0xIDB2MS41MjhMOC4yOSA1LjA5M2EuNS41IDAgMCAwLS43OS40MDd2MS41MjhMNC43OSA1LjA5M3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJWNHptMTUgMGExIDEgMCAwIDAtMS0xSDJhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMVY0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBGb3J3YXJkQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTQuNzkgNS4wOTNBLjUuNSAwIDAgMCA0IDUuNXY1YS41LjUgMCAwIDAgLjc5LjQwN0w3LjUgOC45NzJWMTAuNWEuNS41IDAgMCAwIC43OS40MDdMMTEgOC45NzJWMTAuNWEuNS41IDAgMCAwIDEgMHYtNWEuNS41IDAgMCAwLTEgMHYxLjUyOEw4LjI5IDUuMDkzYS41LjUgMCAwIDAtLjc5LjQwN3YxLjUyOEw0Ljc5IDUuMDkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBGb3J3YXJkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTVBNyA3IDAgMSAxIDggMWE3IDcgMCAwIDEgMCAxNHptMCAxQTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4yNzEgNS4wNTVhLjUuNSAwIDAgMSAuNTIuMDM4TDcuNSA3LjAyOFY1LjVhLjUuNSAwIDAgMSAuNzktLjQwN0wxMSA3LjAyOFY1LjVhLjUuNSAwIDAgMSAxIDB2NWEuNS41IDAgMCAxLTEgMFY4Ljk3MmwtMi43MSAxLjkzNWEuNS41IDAgMCAxLS43OS0uNDA3VjguOTcybC0yLjcxIDEuOTM1QS41LjUgMCAwIDEgNCAxMC41di01YS41LjUgMCAwIDEgLjI3MS0uNDQ1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBGb3J3YXJkRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDMuNWEuNS41IDAgMCAxIC41LjV2OGEuNS41IDAgMCAxLTEgMFY4Ljc1M2wtNi4yNjcgMy42MzZjLS41NC4zMTMtMS4yMzMtLjA2Ni0xLjIzMy0uNjk3di0yLjk0bC02LjI2NyAzLjYzNkMuNjkzIDEyLjcwMyAwIDEyLjMyNCAwIDExLjY5M1Y0LjMwOGMwLS42My42OTMtMS4wMSAxLjIzMy0uNjk2TDcuNSA3LjI0OHYtMi45NGMwLS42My42OTMtMS4wMSAxLjIzMy0uNjk2TDE1IDcuMjQ4VjRhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDMuNWEuNS41IDAgMCAxIC41LjV2OGEuNS41IDAgMCAxLTEgMFY4Ljc1MmwtNi4yNjcgMy42MzZjLS41Mi4zMDItMS4yMzMtLjA0My0xLjIzMy0uNjk2di0yLjk0bC02LjI2NyAzLjYzNkMuNzEzIDEyLjY5IDAgMTIuMzQ1IDAgMTEuNjkyVjQuMzA4YzAtLjY1My43MTMtLjk5OCAxLjIzMy0uNjk2TDcuNSA3LjI0OHYtMi45NGMwLS42NTMuNzEzLS45OTggMS4yMzMtLjY5NkwxNSA3LjI0OFY0YS41LjUgMCAwIDEgLjUtLjV6TTEgNC42MzN2Ni43MzRMNi44MDQgOCAxIDQuNjMzem03LjUgMHY2LjczNEwxNC4zMDQgOCA4LjUgNC42MzN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcFN0YXJ0QnRuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyYTIgMiAwIDAgMS0yLTJ6bTkuNzEtNi45MDdMNyA3LjAyOFY1LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMFY4Ljk3MmwyLjcxIDEuOTM1YS41LjUgMCAwIDAgLjc5LS40MDd2LTVhLjUuNSAwIDAgMC0uNzktLjQwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwU3RhcnRCdG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS43MSA1LjA5M2EuNS41IDAgMCAxIC43OS40MDd2NWEuNS41IDAgMCAxLS43OS40MDdMNyA4Ljk3MlYxMC41YS41LjUgMCAwIDEtMSAwdi01YS41LjUgMCAwIDEgMSAwdjEuNTI4bDIuNzEtMS45MzV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTE1IDBhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwU3RhcnRDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNOS43MSA1LjA5MyA3IDcuMDI4VjUuNWEuNS41IDAgMCAwLTEgMHY1YS41LjUgMCAwIDAgMSAwVjguOTcybDIuNzEgMS45MzVhLjUuNSAwIDAgMCAuNzktLjQwN3YtNWEuNS41IDAgMCAwLS43OS0uNDA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NraXBTdGFydENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjIyOSA1LjA1NWEuNS41IDAgMCAwLS41Mi4wMzhMNyA3LjAyOFY1LjVhLjUuNSAwIDAgMC0xIDB2NWEuNS41IDAgMCAwIDEgMFY4Ljk3MmwyLjcxIDEuOTM1YS41LjUgMCAwIDAgLjc5LS40MDd2LTVhLjUuNSAwIDAgMC0uMjcxLS40NDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2tpcFN0YXJ0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRhLjUuNSAwIDAgMSAxIDB2My4yNDhsNi4yNjctMy42MzZjLjU0LS4zMTMgMS4yMzIuMDY2IDEuMjMyLjY5NnY3LjM4NGMwIC42My0uNjkyIDEuMDEtMS4yMzIuNjk3TDUgOC43NTNWMTJhLjUuNSAwIDAgMS0xIDBWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa2lwU3RhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA0YS41LjUgMCAwIDEgMSAwdjMuMjQ4bDYuMjY3LTMuNjM2Yy41Mi0uMzAyIDEuMjMzLjA0MyAxLjIzMy42OTZ2Ny4zODRjMCAuNjUzLS43MTMuOTk4LTEuMjMzLjY5Nkw1IDguNzUyVjEyYS41LjUgMCAwIDEtMSAwVjR6bTcuNS42MzNMNS42OTYgOGw1LjgwNCAzLjM2N1Y0LjYzM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTa3lwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjY3MSAwYy44OCAwIDEuNzMzLjI0NyAyLjQ2OC43MDJhNy40MjMgNy40MjMgMCAwIDEgNi4wMiAyLjExOCA3LjM3MiA3LjM3MiAwIDAgMSAyLjE2NyA1LjIxNWMwIC4zNDQtLjAyNC42ODctLjA3MiAxLjAyNmE0LjY2MiA0LjY2MiAwIDAgMSAuNiAyLjI4MSA0LjY0NSA0LjY0NSAwIDAgMS0xLjM3IDMuMjk0QTQuNjczIDQuNjczIDAgMCAxIDExLjE4IDE2Yy0uODQgMC0xLjY1OC0uMjI2LTIuMzctLjY0NGE3LjQyMyA3LjQyMyAwIDAgMS02LjExNC0yLjEwN0E3LjM3NCA3LjM3NCAwIDAgMSAuNTI5IDguMDM1YzAtLjM2My4wMjYtLjcyNC4wOC0xLjA4MWE0LjY0NCA0LjY0NCAwIDAgMSAuNzYtNS41OUE0LjY4IDQuNjggMCAwIDEgNC42NyAwem0uNDQ3IDcuMDFjLjE4LjMwOS40My41NzIuNzI5Ljc2OWE3LjA3IDcuMDcgMCAwIDAgMS4yNTcuNjUzYy40OTIuMjA1Ljg3My4zOCAxLjE0NS41MjMuMjI5LjExMi40MzcuMjY0LjYxNS40NDguMTM1LjE0Mi4yMS4zMzEuMjEuNTI4YS44NzIuODcyIDAgMCAxLS4zMzUuNzIzYy0uMjkxLjE5Ni0uNjQuMjg5LS45OS4yNjRhMi42MTggMi42MTggMCAwIDEtMS4wNDgtLjIwNiAxMS40NCAxMS40NCAwIDAgMS0uNTMyLS4yNTMgMS4yODQgMS4yODQgMCAwIDAtLjU4Ny0uMTUuNzE3LjcxNyAwIDAgMC0uNTAxLjE3Ni42My42MyAwIDAgMC0uMTk1LjQ5MS43OTYuNzk2IDAgMCAwIC4xNDguNDgyIDEuMiAxLjIgMCAwIDAgLjQ1Ni4zNTQgNS4xMTMgNS4xMTMgMCAwIDAgMi4yMTIuNDE5IDQuNTU0IDQuNTU0IDAgMCAwIDEuNjI0LS4yNjUgMi4yOTYgMi4yOTYgMCAwIDAgMS4wOC0uODAxYy4yNjctLjM5LjQwMi0uODU1LjM4Ni0xLjMyN2EyLjA5IDIuMDkgMCAwIDAtLjI3OS0xLjEwMSAyLjUzIDIuNTMgMCAwIDAtLjc3Mi0uNzkyQTcuMTk4IDcuMTk4IDAgMCAwIDguNDg2IDcuM2ExLjA1IDEuMDUgMCAwIDAtLjE0NS0uMDU4IDE4LjE4MiAxOC4xODIgMCAwIDEtMS4wMTMtLjQ0NyAxLjgyNyAxLjgyNyAwIDAgMS0uNTQtLjM4Ny43MjcuNzI3IDAgMCAxLS4yLS41MDguODA1LjgwNSAwIDAgMSAuMzg1LS43MjMgMS43NiAxLjc2IDAgMCAxIC45NjgtLjI0N2MuMjYtLjAwMy41Mi4wMy43NzIuMDk2LjI3NC4wNzkuNTQyLjE3Ny44MDIuMjkzLjEwNS4wNDkuMjIuMDc1LjMzNi4wNzZhLjYuNiAwIDAgMCAuNDUzLS4xOS42OS42OSAwIDAgMCAuMTgtLjQ5Ni43MTcuNzE3IDAgMCAwLS4xNy0uNDc2IDEuMzc0IDEuMzc0IDAgMCAwLS41NTYtLjM1NCAzLjY5IDMuNjkgMCAwIDAtLjcwOC0uMTgzIDUuOTYzIDUuOTYzIDAgMCAwLTEuMDIyLS4wNzggNC41MyA0LjUzIDAgMCAwLTEuNTM2LjI1OCAyLjcxIDIuNzEgMCAwIDAtMS4xNzQuNzg0IDEuOTEgMS45MSAwIDAgMC0uNDUgMS4yODdjLS4wMS4zNy4wNzYuNzM2LjI1IDEuMDYzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NsYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMzYyIDEwLjExYzAgLjkyNi0uNzU2IDEuNjgxLTEuNjgxIDEuNjgxUzAgMTEuMDM2IDAgMTAuMTExQzAgOS4xODYuNzU2IDguNDMgMS42OCA4LjQzaDEuNjgydjEuNjh6bS44NDYgMGMwLS45MjQuNzU2LTEuNjggMS42ODEtMS42OHMxLjY4MS43NTYgMS42ODEgMS42OHY0LjIxYzAgLjkyNC0uNzU2IDEuNjgtMS42OCAxLjY4YTEuNjg1IDEuNjg1IDAgMCAxLTEuNjgyLTEuNjh2LTQuMjF6TTUuODkgMy4zNjJjLS45MjYgMC0xLjY4Mi0uNzU2LTEuNjgyLTEuNjgxUzQuOTY0IDAgNS44OSAwczEuNjguNzU2IDEuNjggMS42OHYxLjY4Mkg1Ljg5em0wIC44NDZjLjkyNCAwIDEuNjguNzU2IDEuNjggMS42ODFTNi44MTQgNy41NyA1Ljg5IDcuNTdIMS42OEMuNzU3IDcuNTcgMCA2LjgxNCAwIDUuODljMC0uOTI2Ljc1Ni0xLjY4MiAxLjY4LTEuNjgyaDQuMjF6bTYuNzQ5IDEuNjgyYzAtLjkyNi43NTUtMS42ODIgMS42OC0xLjY4Mi45MjUgMCAxLjY4MS43NTYgMS42ODEgMS42ODFzLS43NTYgMS42ODEtMS42OCAxLjY4MWgtMS42ODFWNS44OXptLS44NDggMGMwIC45MjQtLjc1NSAxLjY4LTEuNjggMS42OEExLjY4NSAxLjY4NSAwIDAgMSA4LjQzIDUuODlWMS42OEM4LjQzLjc1NyA5LjE4NiAwIDEwLjExIDBjLjkyNiAwIDEuNjgxLjc1NiAxLjY4MSAxLjY4djQuMjF6bS0xLjY4MSA2Ljc0OGMuOTI2IDAgMS42ODIuNzU2IDEuNjgyIDEuNjgxUzExLjAzNiAxNiAxMC4xMSAxNnMtMS42ODEtLjc1Ni0xLjY4MS0xLjY4di0xLjY4MmgxLjY4em0wLS44NDdjLS45MjQgMC0xLjY4LS43NTUtMS42OC0xLjY4IDAtLjkyNS43NTYtMS42ODEgMS42OC0xLjY4MWg0LjIxYy45MjQgMCAxLjY4Ljc1NiAxLjY4IDEuNjggMCAuOTI2LS43NTYgMS42ODEtMS42OCAxLjY4MWgtNC4yMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTbGFzaENpcmNsZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwem0tNC42NDYtMi42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhsLTYgNmEuNS41IDAgMCAwIC43MDguNzA4bDYtNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTbGFzaENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjM1NCA0LjY0NmEuNS41IDAgMCAwLS43MDggMGwtNiA2YS41LjUgMCAwIDAgLjcwOC43MDhsNi02YS41LjUgMCAwIDAgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NsYXNoTGcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzA3IDEuMjkzYTEgMSAwIDAgMSAwIDEuNDE0bC0xMiAxMmExIDEgMCAwIDEtMS40MTQtMS40MTRsMTItMTJhMSAxIDAgMCAxIDEuNDE0IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2xhc2hTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptOS4zNTQgNS4zNTQtNiA2YS41LjUgMCAwIDEtLjcwOC0uNzA4bDYtNmEuNS41IDAgMCAxIC43MDguNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NsYXNoU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDFhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoMTJ6TTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4zNTQgNC42NDZhLjUuNSAwIDAgMSAwIC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDgtLjcwOGw2LTZhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMzU0IDQuNjQ2YS41LjUgMCAwIDEgMCAuNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4LS43MDhsNi02YS41LjUgMCAwIDEgLjcwOCAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NsaWRlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExLjUgMmExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM3pNOS4wNSAzYTIuNSAyLjUgMCAwIDEgNC45IDBIMTZ2MWgtMi4wNWEyLjUgMi41IDAgMCAxLTQuOSAwSDBWM2g5LjA1ek00LjUgN2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM3pNMi4wNSA4YTIuNSAyLjUgMCAwIDEgNC45IDBIMTZ2MUg2Ljk1YTIuNSAyLjUgMCAwIDEtNC45IDBIMFY4aDIuMDV6bTkuNDUgNGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM3ptLTIuNDUgMWEyLjUgMi41IDAgMCAxIDQuOSAwSDE2djFoLTIuMDVhMi41IDIuNSAwIDAgMS00LjkgMEgwdi0xaDkuMDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU21hcnR3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDVhLjUuNSAwIDAgMC0xIDB2M0g2YS41LjUgMCAwIDAgMCAxaDIuNWEuNS41IDAgMCAwIC41LS41VjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxLjY2N3YuMzgzQTIuNSAyLjUgMCAwIDAgMiA0LjV2N2EyLjUgMi41IDAgMCAwIDIgMi40NXYuMzgzQzQgMTUuMjUzIDQuNzQ2IDE2IDUuNjY3IDE2aDQuNjY2Yy45MiAwIDEuNjY3LS43NDYgMS42NjctMS42Njd2LS4zODNhMi41IDIuNSAwIDAgMCAyLTIuNDVWOGguNWEuNS41IDAgMCAwIC41LS41di0yYS41LjUgMCAwIDAtLjUtLjVIMTR2LS41YTIuNSAyLjUgMCAwIDAtMi0yLjQ1di0uMzgzQzEyIC43NDcgMTEuMjU0IDAgMTAuMzMzIDBINS42NjdDNC43NDcgMCA0IC43NDYgNCAxLjY2N3pNNC41IDNoN0ExLjUgMS41IDAgMCAxIDEzIDQuNXY3YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtN0ExLjUgMS41IDAgMCAxIDMgMTEuNXYtN0ExLjUgMS41IDAgMCAxIDQuNSAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NuYXBjaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljk4IDExLjkzYy0uMDY4LS4yMzItLjQwNS0uMzk1LS40MDUtLjM5NWwtLjA4Mi0uMDQ0YTYuNDYyIDYuNDYyIDAgMCAxLTEuNDY2LS45NiA1LjAyOCA1LjAyOCAwIDAgMS0uODUtLjk2NiAzLjc3NSAzLjc3NSAwIDAgMS0uNDctLjk2NmMtLjAzLS4xMjYtLjAyNy0uMTczIDAtLjIzOGEuMzYuMzYgMCAwIDEgLjExNi0uMTNjLjE4Ny0uMTMyLjQ5LS4zMy42NzctLjQ0OC4xNi0uMTA2LjMtLjE5NC4zODEtLjI1Mi4yNjItLjE4NC40MzktLjM2Ny41NDQtLjU2OGEuOTg3Ljk4NyAwIDAgMCAuMDQ4LS44MjdjLS4xNDMtLjM3Ny0uNDk3LS42MDUtLjk0Ni0uNjA1LS4wOTggMC0uMjA0LjAxLS4zMDYuMDM0YTQuMzI1IDQuMzI1IDAgMCAwLS43MDcuMjI4Yy0uMDE0LjAwNy0uMDMtLjAwNy0uMDMtLjAyLjAyLS41MDcuMDQzLTEuMTg4LS4wMTEtMS44MzQtLjA1MS0uNTg1LS4xNy0xLjA3OC0uMzY4LTEuNTA3YTQuMDUzIDQuMDUzIDAgMCAwLS42NTYtLjk4MyAzLjk4OSAzLjk4OSAwIDAgMC0xLjAzNy0uODMzQzkuNjk3LjIwNyA4Ljg4IDAgNy45OTIgMGMtLjg4OCAwLTEuNy4yMDctMi40MTkuNjE2YTQuMDQzIDQuMDQzIDAgMCAwLTEuMDM3LjgzM2MtLjIuMjMxLS40Ni41NTEtLjY1Ni45ODMtLjE5OC40MjktLjMxNy45MjItLjM2OCAxLjUwNy0uMDU0LjY1LS4wMzQgMS4yNzYtLjAxIDEuODMzIDAgLjAxNy0uMDE3LjAyOC0uMDMuMDJhNS4xOTUgNS4xOTUgMCAwIDAtLjcwNS0uMjI3IDEuMzQgMS4zNCAwIDAgMC0uMzA2LS4wMzRjLS40NDkgMC0uODAzLjIyOC0uOTQ2LjYwNWEuOTc1Ljk3NSAwIDAgMCAuMDQ4LjgyN2MuMTA1LjIuMjg2LjM4OC41NDQuNTY4LjA4Mi4wNTguMjE4LjE0Ni4zODEuMjUyLjE4LjExOS40NzYuMzEuNjY0LjQ0MmEuNDM0LjQzNCAwIDAgMSAuMTI5LjE0Yy4wMjcuMDY4LjAzLjExNS0uMDA0LjI0OC0uMDU3LjE5NC0uMTkuNTQtLjQ2Ni45NTZhNC45OSA0Ljk5IDAgMCAxLS44NS45NjYgNi40NjggNi40NjggMCAwIDEtMS40NTYuOTU5Yy0uMDI3LjAxNC0uMDU4LjAyNy0uMDkyLjA0NyAwIDAtLjMzMy4xNy0uMzk0LjM4OC0uMDkyLjMyMy4xNTMuNjI2LjQwNS43OS40MTEuMjY1LjkxNS40MDggMS4yMDQuNDg2LjA4MS4wMi4xNTMuMDQuMjIuMDYxYS40NTcuNDU3IDAgMCAxIC4xOTEuMTEyYy4wNTguMDcyLjA2NS4xNjQuMDg1LjI2Ni4wMy4xNy4xMDIuMzguMzEzLjUyNy4yMzIuMTYuNTI3LjE3Ljg5OC4xODcuMzkxLjAxNC44NzguMDM0IDEuNDMyLjIxOC4yNTkuMDg1LjQ5LjIyOC43NjIuMzk0LjU2NS4zNDcgMS4yNjYuNzggMi40NjYuNzggMS4yMDEgMCAxLjkwOS0uNDM2IDIuNDc3LS43ODMuMjY4LS4xNjMuNS0uMzA2Ljc1Mi0uMzkxLjU1NC0uMTg0IDEuMDQtLjIgMS40MzItLjIxOC4zNzQtLjAxNC42NjYtLjAyNC44OTgtLjE4Ny4yMjQtLjE1Ni4yOTItLjM4OC4zMi0uNTY1LjAxNi0uMDg1LjAyNy0uMTYzLjA3OC0uMjI4LjA0LS4wNTQuMTM5LS4wOTEuMTgzLS4xMDhsLjIyOC0uMDY1Yy4yOTMtLjA3OC42NTctLjE3IDEuMDk5LS40MjIuNTM3LS4zLjU3NS0uNjcuNTE3LS44NTR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU25vdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YS41LjUgMCAwIDEtLjUtLjV2LTEuMjkzbC0uNjQ2LjY0N2EuNS41IDAgMCAxLS43MDctLjcwOEw3LjUgMTIuNzkzVjguODY2bC0zLjQgMS45NjMtLjQ5NiAxLjg1YS41LjUgMCAxIDEtLjk2Ni0uMjZsLjIzNy0uODgyLTEuMTIuNjQ2YS41LjUgMCAwIDEtLjUtLjg2NmwxLjEyLS42NDYtLjg4NC0uMjM3YS41LjUgMCAxIDEgLjI2LS45NjZsMS44NDguNDk1TDcgOCAzLjYgNi4wMzdsLTEuODUuNDk1YS41LjUgMCAwIDEtLjI1OC0uOTY2bC44ODMtLjIzNy0xLjEyLS42NDZhLjUuNSAwIDEgMSAuNS0uODY2bDEuMTIuNjQ2LS4yMzctLjg4M2EuNS41IDAgMSAxIC45NjYtLjI1OGwuNDk1IDEuODQ5TDcuNSA3LjEzNFYzLjIwN0w2LjE0NyAxLjg1NGEuNS41IDAgMSAxIC43MDctLjcwOGwuNjQ2LjY0N1YuNWEuNS41IDAgMSAxIDEgMHYxLjI5M2wuNjQ3LS42NDdhLjUuNSAwIDEgMSAuNzA3LjcwOEw4LjUgMy4yMDd2My45MjdsMy40LTEuOTYzLjQ5Ni0xLjg1YS41LjUgMCAxIDEgLjk2Ni4yNmwtLjIzNi44ODIgMS4xMi0uNjQ2YS41LjUgMCAwIDEgLjUuODY2bC0xLjEyLjY0Ni44ODMuMjM3YS41LjUgMCAxIDEtLjI2Ljk2NmwtMS44NDgtLjQ5NUw5IDhsMy40IDEuOTYzIDEuODQ5LS40OTVhLjUuNSAwIDAgMSAuMjU5Ljk2NmwtLjg4My4yMzcgMS4xMi42NDZhLjUuNSAwIDAgMS0uNS44NjZsLTEuMTItLjY0Ni4yMzYuODgzYS41LjUgMCAxIDEtLjk2Ni4yNThsLS40OTUtMS44NDktMy40LTEuOTYzdjMuOTI3bDEuMzUzIDEuMzUzYS41LjUgMCAwIDEtLjcwNy43MDhsLS42NDctLjY0N1YxNS41YS41LjUgMCAwIDEtLjUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTbm93MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2YS41LjUgMCAwIDEtLjUtLjV2LTEuMjkzbC0uNjQ2LjY0N2EuNS41IDAgMCAxLS43MDctLjcwOEw3LjUgMTIuNzkzdi0xLjA4NmwtLjY0Ni42NDdhLjUuNSAwIDAgMS0uNzA3LS43MDhMNy41IDEwLjI5M1Y4Ljg2NmwtMS4yMzYuNzEzLS40OTUgMS44NWEuNS41IDAgMSAxLS45NjYtLjI2bC4yMzctLjg4Mi0uOTQuNTQyLS40OTYgMS44NWEuNS41IDAgMSAxLS45NjYtLjI2bC4yMzctLjg4Mi0xLjEyLjY0NmEuNS41IDAgMCAxLS41LS44NjZsMS4xMi0uNjQ2LS44ODQtLjIzN2EuNS41IDAgMSAxIC4yNi0uOTY2bDEuODQ4LjQ5NS45NC0uNTQyLS44ODItLjIzN2EuNS41IDAgMSAxIC4yNTgtLjk2NmwxLjg1LjQ5NUw3IDhsLTEuMjM2LS43MTMtMS44NDkuNDk1YS41LjUgMCAxIDEtLjI1OC0uOTY2bC44ODMtLjIzNy0uOTQtLjU0Mi0xLjg1LjQ5NWEuNS41IDAgMCAxLS4yNTgtLjk2NmwuODgzLS4yMzctMS4xMi0uNjQ2YS41LjUgMCAxIDEgLjUtLjg2NmwxLjEyLjY0Ni0uMjM3LS44ODNhLjUuNSAwIDAgMSAuOTY2LS4yNThsLjQ5NSAxLjg0OS45NC41NDItLjIzNi0uODgzYS41LjUgMCAwIDEgLjk2Ni0uMjU4bC40OTUgMS44NDkgMS4yMzYuNzEzVjUuNzA3TDYuMTQ3IDQuMzU0YS41LjUgMCAxIDEgLjcwNy0uNzA4bC42NDYuNjQ3VjMuMjA3TDYuMTQ3IDEuODU0YS41LjUgMCAxIDEgLjcwNy0uNzA4bC42NDYuNjQ3Vi41YS41LjUgMCAwIDEgMSAwdjEuMjkzbC42NDctLjY0N2EuNS41IDAgMSAxIC43MDcuNzA4TDguNSAzLjIwN3YxLjA4NmwuNjQ3LS42NDdhLjUuNSAwIDEgMSAuNzA3LjcwOEw4LjUgNS43MDd2MS40MjdsMS4yMzYtLjcxMy40OTUtMS44NWEuNS41IDAgMSAxIC45NjYuMjZsLS4yMzYuODgyLjk0LS41NDIuNDk1LTEuODVhLjUuNSAwIDEgMSAuOTY2LjI2bC0uMjM2Ljg4MiAxLjEyLS42NDZhLjUuNSAwIDAgMSAuNS44NjZsLTEuMTIuNjQ2Ljg4My4yMzdhLjUuNSAwIDEgMS0uMjYuOTY2bC0xLjg0OC0uNDk1LS45NC41NDIuODgzLjIzN2EuNS41IDAgMSAxLS4yNi45NjZsLTEuODQ4LS40OTVMOSA4bDEuMjM2LjcxMyAxLjg0OS0uNDk1YS41LjUgMCAwIDEgLjI1OS45NjZsLS44ODMuMjM3Ljk0LjU0MiAxLjg0OS0uNDk1YS41LjUgMCAwIDEgLjI1OS45NjZsLS44ODMuMjM3IDEuMTIuNjQ2YS41LjUgMCAwIDEtLjUuODY2bC0xLjEyLS42NDYuMjM2Ljg4M2EuNS41IDAgMSAxLS45NjYuMjU4bC0uNDk1LTEuODQ5LS45NC0uNTQyLjIzNi44ODNhLjUuNSAwIDAgMS0uOTY2LjI1OEw5LjczNiA5LjU4IDguNSA4Ljg2NnYxLjQyN2wxLjM1NCAxLjM1M2EuNS41IDAgMCAxLS43MDcuNzA4bC0uNjQ3LS42NDd2MS4wODZsMS4zNTQgMS4zNTNhLjUuNSAwIDAgMS0uNzA3LjcwOGwtLjY0Ny0uNjQ3VjE1LjVhLjUuNSAwIDAgMS0uNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1Nub3czIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNy41YS41LjUgMCAxIDAgMCAxIC41LjUgMCAwIDAgMC0xelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTZhLjUuNSAwIDAgMS0uNS0uNXYtMS4yOTNsLS42NDYuNjQ3YS41LjUgMCAwIDEtLjcwNy0uNzA4TDcuNSAxMi43OTN2LTEuNTFsLTIuMDUzLTEuMjMyLTEuMzQ4Ljc3OC0uNDk1IDEuODVhLjUuNSAwIDEgMS0uOTY2LS4yNmwuMjM3LS44ODItMS4xMi42NDZhLjUuNSAwIDAgMS0uNS0uODY2bDEuMTItLjY0Ni0uODgzLS4yMzdhLjUuNSAwIDEgMSAuMjU4LS45NjZsMS44NS40OTVMNSA5LjE1NXYtMi4zMWwtMS40LS44MDgtMS44NS40OTVhLjUuNSAwIDEgMS0uMjU5LS45NjZsLjg4NC0uMjM3LTEuMTItLjY0NmEuNS41IDAgMCAxIC41LS44NjZsMS4xMi42NDYtLjIzNy0uODgzYS41LjUgMCAxIDEgLjk2Ni0uMjU4bC40OTUgMS44NDkgMS4zNDguNzc4TDcuNSA0LjcxN3YtMS41MUw2LjE0NyAxLjg1NGEuNS41IDAgMSAxIC43MDctLjcwOGwuNjQ2LjY0N1YuNWEuNS41IDAgMCAxIDEgMHYxLjI5M2wuNjQ3LS42NDdhLjUuNSAwIDEgMSAuNzA3LjcwOEw4LjUgMy4yMDd2MS41MWwyLjA1MyAxLjIzMiAxLjM0OC0uNzc4LjQ5NS0xLjg1YS41LjUgMCAxIDEgLjk2Ni4yNmwtLjIzNi44ODIgMS4xMi0uNjQ2YS41LjUgMCAwIDEgLjUuODY2bC0xLjEyLjY0Ni44ODMuMjM3YS41LjUgMCAxIDEtLjI2Ljk2NmwtMS44NDgtLjQ5NS0xLjQuODA4djIuMzFsMS40LjgwOCAxLjg0OS0uNDk1YS41LjUgMCAxIDEgLjI1OS45NjZsLS44ODMuMjM3IDEuMTIuNjQ2YS41LjUgMCAwIDEtLjUuODY2bC0xLjEyLS42NDYuMjM2Ljg4M2EuNS41IDAgMSAxLS45NjYuMjU4bC0uNDk1LTEuODQ5LTEuMzQ4LS43NzhMOC41IDExLjI4M3YxLjUxbDEuMzU0IDEuMzUzYS41LjUgMCAwIDEtLjcwNy43MDhsLS42NDctLjY0N1YxNS41YS41LjUgMCAwIDEtLjUuNXptMi02Ljc4M1Y2Ljc4M2wtMi0xLjItMiAxLjJ2Mi40MzRsMiAxLjIgMi0xLjJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU29ydEFscGhhRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45NiA3SDkuMDI4di0uNjkxbDIuNTc5LTMuNzJ2LS4wNTRIOS4wOTh2LS44NjdoMy43ODV2LjY5MWwtMi41NjcgMy43MnYuMDU0aDIuNjQ1Vjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjA4MiAxMi42MjkgOS42NjQgMTRIOC41OThsMS43ODktNS4zMzJoMS4yMzRMMTMuNDAyIDE0aC0xLjEybC0uNDE5LTEuMzcxaC0xLjc4MXptMS41Ny0uNzg1TDExIDkuNjg4aC0uMDQ3bC0uNjUyIDIuMTU2aDEuMzUxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAyLjVhLjUuNSAwIDAgMC0xIDB2OS43OTNsLTEuMTQ2LTEuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMiAxLjk5OS4wMDcuMDA3YS40OTcuNDk3IDAgMCAwIC43LS4wMDZsMi0yYS41LjUgMCAwIDAtLjcwNy0uNzA4TDQuNSAxMi4yOTNWMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvcnRBbHBoYURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjA4MiA1LjYyOSA5LjY2NCA3SDguNTk4bDEuNzg5LTUuMzMyaDEuMjM0TDEzLjQwMiA3aC0xLjEybC0uNDE5LTEuMzcxaC0xLjc4MXptMS41Ny0uNzg1TDExIDIuNjg3aC0uMDQ3bC0uNjUyIDIuMTU3aDEuMzUxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjk2IDE0SDkuMDI4di0uNjkxbDIuNTc5LTMuNzJ2LS4wNTRIOS4wOTh2LS44NjdoMy43ODV2LjY5MWwtMi41NjcgMy43MnYuMDU0aDIuNjQ1VjE0ek00LjUgMi41YS41LjUgMCAwIDAtMSAwdjkuNzkzbC0xLjE0Ni0xLjE0N2EuNS41IDAgMCAwLS43MDguNzA4bDIgMS45OTkuMDA3LjAwN2EuNDk3LjQ5NyAwIDAgMCAuNy0uMDA2bDItMmEuNS41IDAgMCAwLS43MDctLjcwOEw0LjUgMTIuMjkzVjIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTb3J0QWxwaGFVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45NiA3SDkuMDI4di0uNjkxbDIuNTc5LTMuNzJ2LS4wNTRIOS4wOTh2LS44NjdoMy43ODV2LjY5MWwtMi41NjcgMy43MnYuMDU0aDIuNjQ1Vjd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjA4MiAxMi42MjkgOS42NjQgMTRIOC41OThsMS43ODktNS4zMzJoMS4yMzRMMTMuNDAyIDE0aC0xLjEybC0uNDE5LTEuMzcxaC0xLjc4MXptMS41Ny0uNzg1TDExIDkuNjg4aC0uMDQ3bC0uNjUyIDIuMTU2aDEuMzUxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAxMy41YS41LjUgMCAwIDEtMSAwVjMuNzA3TDIuMzU0IDQuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDItMS45OTkuMDA3LS4wMDdhLjQ5OC40OTggMCAwIDEgLjcuMDA2bDIgMmEuNS41IDAgMSAxLS43MDcuNzA4TDQuNSAzLjcwN1YxMy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvcnRBbHBoYVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC4wODIgNS42MjkgOS42NjQgN0g4LjU5OGwxLjc4OS01LjMzMmgxLjIzNEwxMy40MDIgN2gtMS4xMmwtLjQxOS0xLjM3MWgtMS43ODF6bTEuNTctLjc4NUwxMSAyLjY4N2gtLjA0N2wtLjY1MiAyLjE1N2gxLjM1MXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi45NiAxNEg5LjAyOHYtLjY5MWwyLjU3OS0zLjcydi0uMDU0SDkuMDk4di0uODY3aDMuNzg1di42OTFsLTIuNTY3IDMuNzJ2LjA1NGgyLjY0NVYxNHptLTguNDYtLjVhLjUuNSAwIDAgMS0xIDBWMy43MDdMMi4zNTQgNC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMi0xLjk5OS4wMDctLjAwN2EuNDk4LjQ5OCAwIDAgMSAuNy4wMDZsMiAyYS41LjUgMCAxIDEtLjcwNy43MDhMNC41IDMuNzA3VjEzLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU29ydERvd25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDMuNWEuNS41IDAgMCAwLTEgMHY4Ljc5M2wtMS4xNDYtMS4xNDdhLjUuNSAwIDAgMC0uNzA4LjcwOGwyIDEuOTk5LjAwNy4wMDdhLjQ5Ny40OTcgMCAwIDAgLjctLjAwNmwyLTJhLjUuNSAwIDAgMC0uNzA3LS43MDhMMy41IDEyLjI5M1YzLjV6bTQgLjVhLjUuNSAwIDAgMSAwLTFoMWEuNS41IDAgMCAxIDAgMWgtMXptMCAzYS41LjUgMCAwIDEgMC0xaDNhLjUuNSAwIDAgMSAwIDFoLTN6bTAgM2EuNS41IDAgMCAxIDAtMWg1YS41LjUgMCAwIDEgMCAxaC01ek03IDEyLjVhLjUuNSAwIDAgMCAuNS41aDdhLjUuNSAwIDAgMCAwLTFoLTdhLjUuNSAwIDAgMC0uNS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvcnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAyLjVhLjUuNSAwIDAgMC0xIDB2OC43OTNsLTEuMTQ2LTEuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMiAxLjk5OS4wMDcuMDA3YS40OTcuNDk3IDAgMCAwIC43LS4wMDZsMi0yYS41LjUgMCAwIDAtLjcwNy0uNzA4TDMuNSAxMS4yOTNWMi41em0zLjUgMWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXpNNy41IDZhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXptMCAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTN6bTAgM2EuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvcnROdW1lcmljRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEuMzYgNy4wOThjLTEuMTM3IDAtMS43MDgtLjY1Ny0xLjc2Mi0xLjI3OGgxLjAwNGMuMDU4LjIyMy4zNDMuNDUuNzczLjQ1LjgyNCAwIDEuMTY0LS44MjkgMS4xMzMtMS44NTZoLS4wNTljLS4xNDguMzktLjU3Ljc0Mi0xLjI2MS43NDItLjkxIDAtMS43Mi0uNjEzLTEuNzItMS43NTggMC0xLjE0OC44NDgtMS44MzYgMS45NzMtMS44MzYgMS4wOSAwIDIuMDYzLjYzNyAyLjA2MyAyLjY4OCAwIDEuODY3LS43MjMgMi44NDgtMi4xNDUgMi44NDh6bS4wNjItMi43MzVjLjUwNCAwIC45MzMtLjMzNi45MzMtLjk3MiAwLS42MzMtLjM5OC0xLjAwOC0uOTQtMS4wMDgtLjUyIDAtLjkyNy4zNzUtLjkyNyAxIDAgLjY0LjQxOC45OC45MzQuOTh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNDM4IDguNjY4VjE0SDExLjM5VjkuNjg0aC0uMDUxbC0xLjIxMS44NTl2LS45NjlsMS4yNjItLjkwNmgxLjA0NnpNNC41IDIuNWEuNS41IDAgMCAwLTEgMHY5Ljc5M2wtMS4xNDYtMS4xNDdhLjUuNSAwIDAgMC0uNzA4LjcwOGwyIDEuOTk5LjAwNy4wMDdhLjQ5Ny40OTcgMCAwIDAgLjctLjAwNmwyLTJhLjUuNSAwIDAgMC0uNzA3LS43MDhMNC41IDEyLjI5M1YyLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU29ydE51bWVyaWNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjQzOCAxLjY2OFY3SDExLjM5VjIuNjg0aC0uMDUxbC0xLjIxMS44NTl2LS45NjlsMS4yNjItLjkwNmgxLjA0NnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEuMzYgMTQuMDk4Yy0xLjEzNyAwLTEuNzA4LS42NTctMS43NjItMS4yNzhoMS4wMDRjLjA1OC4yMjMuMzQzLjQ1Ljc3My40NS44MjQgMCAxLjE2NC0uODI5IDEuMTMzLTEuODU2aC0uMDU5Yy0uMTQ4LjM5LS41Ny43NDItMS4yNjEuNzQyLS45MSAwLTEuNzItLjYxMy0xLjcyLTEuNzU4IDAtMS4xNDguODQ4LTEuODM1IDEuOTczLTEuODM1IDEuMDkgMCAyLjA2My42MzYgMi4wNjMgMi42ODcgMCAxLjg2Ny0uNzIzIDIuODQ4LTIuMTQ1IDIuODQ4em0uMDYyLTIuNzM1Yy41MDQgMCAuOTMzLS4zMzYuOTMzLS45NzIgMC0uNjMzLS4zOTgtMS4wMDgtLjk0LTEuMDA4LS41MiAwLS45MjcuMzc1LS45MjcgMSAwIC42NC40MTguOTguOTM0Ljk4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAyLjVhLjUuNSAwIDAgMC0xIDB2OS43OTNsLTEuMTQ2LTEuMTQ3YS41LjUgMCAwIDAtLjcwOC43MDhsMiAxLjk5OS4wMDcuMDA3YS40OTcuNDk3IDAgMCAwIC43LS4wMDZsMi0yYS41LjUgMCAwIDAtLjcwNy0uNzA4TDQuNSAxMi4yOTNWMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvcnROdW1lcmljVXBBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExLjM2IDcuMDk4Yy0xLjEzNyAwLTEuNzA4LS42NTctMS43NjItMS4yNzhoMS4wMDRjLjA1OC4yMjMuMzQzLjQ1Ljc3My40NS44MjQgMCAxLjE2NC0uODI5IDEuMTMzLTEuODU2aC0uMDU5Yy0uMTQ4LjM5LS41Ny43NDItMS4yNjEuNzQyLS45MSAwLTEuNzItLjYxMy0xLjcyLTEuNzU4IDAtMS4xNDguODQ4LTEuODM2IDEuOTczLTEuODM2IDEuMDkgMCAyLjA2My42MzcgMi4wNjMgMi42ODggMCAxLjg2Ny0uNzIzIDIuODQ4LTIuMTQ1IDIuODQ4em0uMDYyLTIuNzM1Yy41MDQgMCAuOTMzLS4zMzYuOTMzLS45NzIgMC0uNjMzLS4zOTgtMS4wMDgtLjk0LTEuMDA4LS41MiAwLS45MjcuMzc1LS45MjcgMSAwIC42NC40MTguOTguOTM0Ljk4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjQzOCA4LjY2OFYxNEgxMS4zOVY5LjY4NGgtLjA1MWwtMS4yMTEuODU5di0uOTY5bDEuMjYyLS45MDZoMS4wNDZ6TTQuNSAxMy41YS41LjUgMCAwIDEtMSAwVjMuNzA3TDIuMzU0IDQuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDItMS45OTkuMDA3LS4wMDdhLjQ5OC40OTggMCAwIDEgLjcuMDA2bDIgMmEuNS41IDAgMSAxLS43MDcuNzA4TDQuNSAzLjcwN1YxMy41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvcnROdW1lcmljVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNDM4IDEuNjY4VjdIMTEuMzlWMi42ODRoLS4wNTFsLTEuMjExLjg1OXYtLjk2OWwxLjI2Mi0uOTA2aDEuMDQ2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMS4zNiAxNC4wOThjLTEuMTM3IDAtMS43MDgtLjY1Ny0xLjc2Mi0xLjI3OGgxLjAwNGMuMDU4LjIyMy4zNDMuNDUuNzczLjQ1LjgyNCAwIDEuMTY0LS44MjkgMS4xMzMtMS44NTZoLS4wNTljLS4xNDguMzktLjU3Ljc0Mi0xLjI2MS43NDItLjkxIDAtMS43Mi0uNjEzLTEuNzItMS43NTggMC0xLjE0OC44NDgtMS44MzUgMS45NzMtMS44MzUgMS4wOSAwIDIuMDYzLjYzNiAyLjA2MyAyLjY4NyAwIDEuODY3LS43MjMgMi44NDgtMi4xNDUgMi44NDh6bS4wNjItMi43MzVjLjUwNCAwIC45MzMtLjMzNi45MzMtLjk3MiAwLS42MzMtLjM5OC0xLjAwOC0uOTQtMS4wMDgtLjUyIDAtLjkyNy4zNzUtLjkyNyAxIDAgLjY0LjQxOC45OC45MzQuOTh6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDEzLjVhLjUuNSAwIDAgMS0xIDBWMy43MDdMMi4zNTQgNC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMi0xLjk5OS4wMDctLjAwN2EuNDk4LjQ5OCAwIDAgMSAuNy4wMDZsMiAyYS41LjUgMCAxIDEtLjcwNy43MDhMNC41IDMuNzA3VjEzLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU29ydFVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAxMy41YS41LjUgMCAwIDEtMSAwVjQuNzA3TDEuMzU0IDUuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDItMS45OTkuMDA3LS4wMDdhLjQ5OC40OTggMCAwIDEgLjcuMDA2bDIgMmEuNS41IDAgMSAxLS43MDcuNzA4TDMuNSA0LjcwN1YxMy41em00LTkuNWEuNS41IDAgMCAxIDAtMWgxYS41LjUgMCAwIDEgMCAxaC0xem0wIDNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAxIDAgMWgtM3ptMCAzYS41LjUgMCAwIDEgMC0xaDVhLjUuNSAwIDAgMSAwIDFoLTV6TTcgMTIuNWEuNS41IDAgMCAwIC41LjVoN2EuNS41IDAgMCAwIDAtMWgtN2EuNS41IDAgMCAwLS41LjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU29ydFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAxMi41YS41LjUgMCAwIDEtMSAwVjMuNzA3TDEuMzU0IDQuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4bDItMS45OTkuMDA3LS4wMDdhLjQ5OC40OTggMCAwIDEgLjcuMDA2bDIgMmEuNS41IDAgMSAxLS43MDcuNzA4TDMuNSAzLjcwN1YxMi41em0zLjUtOWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXpNNy41IDZhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMWgtNXptMCAzYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTFoLTN6bTAgM2EuNS41IDAgMCAwIDAgMWgxYS41LjUgMCAwIDAgMC0xaC0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NvdW5kd2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOC41IDJhLjUuNSAwIDAgMSAuNS41djExYS41LjUgMCAwIDEtMSAwdi0xMWEuNS41IDAgMCAxIC41LS41em0tMiAyYS41LjUgMCAwIDEgLjUuNXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgLjUtLjV6bTQgMGEuNS41IDAgMCAxIC41LjV2N2EuNS41IDAgMCAxLTEgMHYtN2EuNS41IDAgMCAxIC41LS41em0tNiAxLjVBLjUuNSAwIDAgMSA1IDZ2NGEuNS41IDAgMCAxLTEgMFY2YS41LjUgMCAwIDEgLjUtLjV6bTggMGEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLTEgMFY2YS41LjUgMCAwIDEgLjUtLjV6bS0xMCAxQS41LjUgMCAwIDEgMyA3djJhLjUuNSAwIDAgMS0xIDBWN2EuNS41IDAgMCAxIC41LS41em0xMiAwYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtMSAwVjdhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTcGVha2VyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0tMi41IDYuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHptNiA0YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHpNOCA3YTMuNSAzLjUgMCAxIDEgMCA3IDMuNSAzLjUgMCAwIDEgMC03elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NwZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg4ek00IDBhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJINHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDQuNzVhLjc1Ljc1IDAgMSAxIDAtMS41Ljc1Ljc1IDAgMCAxIDAgMS41ek04IDZhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0em0wIDNhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTN6bS0zLjUgMS41YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAwIDEtNyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NwZWVkb21ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMmEuNS41IDAgMCAxIC41LjVWNGEuNS41IDAgMCAxLTEgMFYyLjVBLjUuNSAwIDAgMSA4IDJ6TTMuNzMyIDMuNzMyYS41LjUgMCAwIDEgLjcwNyAwbC45MTUuOTE0YS41LjUgMCAxIDEtLjcwOC43MDhsLS45MTQtLjkxNWEuNS41IDAgMCAxIDAtLjcwN3pNMiA4YS41LjUgMCAwIDEgLjUtLjVoMS41ODZhLjUuNSAwIDAgMSAwIDFIMi41QS41LjUgMCAwIDEgMiA4em05LjUgMGEuNS41IDAgMCAxIC41LS41aDEuNWEuNS41IDAgMCAxIDAgMUgxMmEuNS41IDAgMCAxLS41LS41em0uNzU0LTQuMjQ2YS4zODkuMzg5IDAgMCAwLS41MjctLjAyTDcuNTQ3IDcuMzFBLjkxLjkxIDAgMSAwIDguODUgOC41NjlsMy40MzQtNC4yOTdhLjM4OS4zODkgMCAwIDAtLjAyOS0uNTE4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02LjY2NCAxNS44ODlBOCA4IDAgMSAxIDkuMzM2LjExYTggOCAwIDAgMS0yLjY3MiAxNS43OHptLTQuNjY1LTQuMjgzQTExLjk0NSAxMS45NDUgMCAwIDEgOCAxMGMyLjE4NiAwIDQuMjM2LjU4NSA2LjAwMSAxLjYwNmE3IDcgMCAxIDAtMTIuMDAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3BlZWRvbWV0ZXIyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNGEuNS41IDAgMCAxIC41LjVWNmEuNS41IDAgMCAxLTEgMFY0LjVBLjUuNSAwIDAgMSA4IDR6TTMuNzMyIDUuNzMyYS41LjUgMCAwIDEgLjcwNyAwbC45MTUuOTE0YS41LjUgMCAxIDEtLjcwOC43MDhsLS45MTQtLjkxNWEuNS41IDAgMCAxIDAtLjcwN3pNMiAxMGEuNS41IDAgMCAxIC41LS41aDEuNTg2YS41LjUgMCAwIDEgMCAxSDIuNUEuNS41IDAgMCAxIDIgMTB6bTkuNSAwYS41LjUgMCAwIDEgLjUtLjVoMS41YS41LjUgMCAwIDEgMCAxSDEyYS41LjUgMCAwIDEtLjUtLjV6bS43NTQtNC4yNDZhLjM4OS4zODkgMCAwIDAtLjUyNy0uMDJMNy41NDcgOS4zMWEuOTEuOTEgMCAxIDAgMS4zMDIgMS4yNThsMy40MzQtNC4yOTdhLjM4OS4zODkgMCAwIDAtLjAyOS0uNTE4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0wIDEwYTggOCAwIDEgMSAxNS41NDcgMi42NjFjLS40NDIgMS4yNTMtMS44NDUgMS42MDItMi45MzIgMS4yNUMxMS4zMDkgMTMuNDg4IDkuNDc1IDEzIDggMTNjLTEuNDc0IDAtMy4zMS40ODgtNC42MTUuOTExLTEuMDg3LjM1Mi0yLjQ5LjAwMy0yLjkzMi0xLjI1QTcuOTg4IDcuOTg4IDAgMCAxIDAgMTB6bTgtN2E3IDcgMCAwIDAtNi42MDMgOS4zMjljLjIwMy41NzUuOTIzLjg3NiAxLjY4LjYzQzQuMzk3IDEyLjUzMyA2LjM1OCAxMiA4IDEyczMuNjA0LjUzMiA0LjkyMy45NmMuNzU3LjI0NSAxLjQ3Ny0uMDU2IDEuNjgtLjYzMUE3IDcgMCAwIDAgOCAzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NwZWxsY2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4yMTcgMTEuMDY4YzEuMjE2IDAgMS45NDgtLjg2OSAxLjk0OC0yLjMxdi0uNzAyYzAtMS40NC0uNzI3LTIuMzA1LTEuOTI5LTIuMzA1LS43NDIgMC0xLjMyOC4zNDctMS40OTkuODg5aC0uMDYzVjMuOTgzaC0xLjI5VjExaDEuMjd2LS43OTFoLjA2NGMuMjEuNTMyLjc3Ni44NiAxLjQ5OS44NnptLS40My0xLjAyNWMtLjY2IDAtMS4xMTMtLjUxOC0xLjExMy0xLjI4VjguMTJjMC0uODI1LjQyLTEuMzQzIDEuMDk4LTEuMzQzLjY4NCAwIDEuMDc1LjUxOCAxLjA3NSAxLjQxNnYuNDVjMCAuODg4LS4zODYgMS40MDEtMS4wNiAxLjQwMXptLTUuNTgzIDEuMDM1Yy43NjcgMCAxLjIwMS0uMzU2IDEuNDA2LS43MzdoLjA1OVYxMWgxLjIxNlY3LjUxOWMwLTEuMzE0LS45NDctMS43ODMtMi4xMS0xLjc4M0MxLjM1NSA1LjczNi43NSA2LjQyLjY5IDcuMjdoMS4yMTZjLjA2NC0uMzIzLjMxMy0uNTUyLjg0LS41NTIuNTI3IDAgLjg2NC4yNDkuODY0Ljc3MXYuNDY0SDIuMzQ2QzEuMTQ1IDcuOTUzLjUgOC41NjguNSA5LjQ5NmMwIC45NzcuNjkzIDEuNTgyIDEuNzA0IDEuNTgyem0uNDItLjk0N2MtLjQ0IDAtLjg0NS0uMjM1LS44NDUtLjcxOCAwLS4zOTUuMjY5LS42ODQuODQtLjY4NGguOTkxdi41MzhjMCAuNTAzLS40NDQuODY0LS45ODYuODY0em04Ljg5Ny41NjdjLS41NzctLjQtLjktMS4wODgtLjktMS45ODN2LS42NWMwLTEuNDIuODk0LTIuMzM4IDIuMzA1LTIuMzM4IDEuMzUyIDAgMi4xMTkuODIgMi4xMzkgMS44MDZoLTEuMTg3Yy0uMDQtLjM1MS0uMjgzLS43NzYtLjkxOC0uNzc2LS42NzQgMC0xLjA0NS41MTctMS4wNDUgMS4zMjh2LjYyNWMwIC40NjguMTIxLjgzNC4zNDMgMS4wNjdsLS43MzcuOTJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNDY5IDkuNDE0YS43NS43NSAwIDAgMSAuMTE3IDEuMDU1bC00IDVhLjc1Ljc1IDAgMCAxLTEuMTE2LjA2MWwtMi41LTIuNWEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2bDEuOTA4IDEuOTA3IDMuNDc2LTQuMzQ2YS43NS43NSAwIDAgMSAxLjA1NS0uMTE3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1Nwb3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAwYTggOCAwIDEgMCAwIDE2QTggOCAwIDAgMCA4IDB6bTMuNjY5IDExLjUzOGEuNDk4LjQ5OCAwIDAgMS0uNjg2LjE2NWMtMS44NzktMS4xNDctNC4yNDMtMS40MDctNy4wMjgtLjc3YS40OTkuNDk5IDAgMCAxLS4yMjItLjk3M2MzLjA0OC0uNjk2IDUuNjYyLS4zOTcgNy43Ny44OTJhLjUuNSAwIDAgMSAuMTY2LjY4NnptLjk3OS0yLjE3OGEuNjI0LjYyNCAwIDAgMS0uODU4LjIwNWMtMi4xNS0xLjMyMS01LjQyOC0xLjcwNC03Ljk3Mi0uOTMyYS42MjUuNjI1IDAgMCAxLS4zNjItMS4xOTRjMi45MDUtLjg4MSA2LjUxNy0uNDU0IDguOTg2IDEuMDYzYS42MjQuNjI0IDAgMCAxIC4yMDYuODU4em0uMDg0LTIuMjY4QzEwLjE1NCA1LjU2IDUuOSA1LjQxOSAzLjQzOCA2LjE2NmEuNzQ4Ljc0OCAwIDEgMS0uNDM0LTEuNDMyYzIuODI1LS44NTcgNy41MjMtLjY5MiAxMC40OTIgMS4wN2EuNzQ3Ljc0NyAwIDEgMS0uNzY0IDEuMjg4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NxdWFyZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1NxdWFyZUhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNVYxaDZhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDh6bTYgMWEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N0YWNrT3ZlcmZsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNDEyIDE0LjU3MlYxMC4yOWgxLjQyOFYxNkgxdi01LjcxaDEuNDI4djQuMjgyaDkuOTg0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuODU3IDEzLjE0NWg3LjEzN3YtMS40MjhIMy44NTd2MS40Mjh6TTEwLjI1NCAwIDkuMTA4Ljg1Mmw0LjI2IDUuNzI3IDEuMTQ2LS44NTJMMTAuMjU0IDB6bS0zLjU0IDMuMzc3IDUuNDg0IDQuNTY3LjkxMy0xLjA5N0w3LjYyNyAyLjI4bC0uOTE0IDEuMDk3ek00LjkyMiA2LjU1bDYuNDcgMy4wMTMuNjAzLTEuMjk0LTYuNDctMy4wMTMtLjYwMyAxLjI5NHptLS45MjUgMy4zNDQgNi45ODUgMS40NjkuMjk0LTEuMzk4LTYuOTg1LTEuNDY4LS4yOTQgMS4zOTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3RhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMTIgMTAuMTYzIDEuNzE1Ljg1OGMuMjIuMTEuMjIuNDI0IDAgLjUzNEw4LjI2NyAxNS4zNGEuNTk4LjU5OCAwIDAgMS0uNTM0IDBMLjE2NSAxMS41NTVhLjI5OS4yOTkgMCAwIDEgMC0uNTM0bDEuNzE2LS44NTggNS4zMTcgMi42NTljLjUwNS4yNTIgMS4xLjI1MiAxLjYwNCAwbDUuMzE3LTIuNjZ6TTcuNzMzLjA2M2EuNTk4LjU5OCAwIDAgMSAuNTM0IDBsNy41NjggMy43ODRhLjMuMyAwIDAgMSAwIC41MzVMOC4yNjcgOC4xNjVhLjU5OC41OTggMCAwIDEtLjUzNCAwTC4xNjUgNC4zODJhLjI5OS4yOTkgMCAwIDEgMC0uNTM1TDcuNzMzLjA2M3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4xMiA2LjU3NiAxLjcxNS44NThjLjIyLjExLjIyLjQyNCAwIC41MzRsLTcuNTY4IDMuNzg0YS41OTguNTk4IDAgMCAxLS41MzQgMEwuMTY1IDcuOTY4YS4yOTkuMjk5IDAgMCAxIDAtLjUzNGwxLjcxNi0uODU4IDUuMzE3IDIuNjU5Yy41MDUuMjUyIDEuMS4yNTIgMS42MDQgMGw1LjMxNy0yLjY1OXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGFyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjYxMiAxNS40NDNjLS4zODYuMTk4LS44MjQtLjE0OS0uNzQ2LS41OTJsLjgzLTQuNzNMLjE3MyA2Ljc2NWMtLjMyOS0uMzE0LS4xNTgtLjg4OC4yODMtLjk1bDQuODk4LS42OTZMNy41MzguNzkyYy4xOTctLjM5LjczLS4zOS45MjcgMGwyLjE4NCA0LjMyNyA0Ljg5OC42OTZjLjQ0MS4wNjIuNjEyLjYzNi4yODIuOTVsLTMuNTIyIDMuMzU2LjgzIDQuNzNjLjA3OC40NDMtLjM2Ljc5LS43NDYuNTkyTDggMTMuMTg3bC00LjM4OSAyLjI1NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjM1NCA1LjExOSA3LjUzOC43OTJBLjUxNi41MTYgMCAwIDEgOCAuNWMuMTgzIDAgLjM2Ni4wOTcuNDY1LjI5MmwyLjE4NCA0LjMyNyA0Ljg5OC42OTZBLjUzNy41MzcgMCAwIDEgMTYgNi4zMmEuNTQ4LjU0OCAwIDAgMS0uMTcuNDQ1bC0zLjUyMyAzLjM1Ni44MyA0LjczYy4wNzguNDQzLS4zNi43OS0uNzQ2LjU5Mkw4IDEzLjE4N2wtNC4zODkgMi4yNTZhLjUyLjUyIDAgMCAxLS4xNDYuMDVjLS4zNDIuMDYtLjY2OC0uMjU0LS42LS42NDJsLjgzLTQuNzNMLjE3MyA2Ljc2NWEuNTUuNTUgMCAwIDEtLjE3Mi0uNDAzLjU4LjU4IDAgMCAxIC4wODUtLjMwMi41MTMuNTEzIDAgMCAxIC4zNy0uMjQ1bDQuODk4LS42OTZ6TTggMTIuMDI3YS41LjUgMCAwIDEgLjIzMi4wNTZsMy42ODYgMS44OTQtLjY5NC0zLjk1N2EuNTY1LjU2NSAwIDAgMSAuMTYyLS41MDVsMi45MDctMi43Ny00LjA1Mi0uNTc2YS41MjUuNTI1IDAgMCAxLS4zOTMtLjI4OEw4LjAwMSAyLjIyMyA4IDIuMjI2djkuOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODY2IDE0Ljg1Yy0uMDc4LjQ0NC4zNi43OTEuNzQ2LjU5M2w0LjM5LTIuMjU2IDQuMzg5IDIuMjU2Yy4zODYuMTk4LjgyNC0uMTQ5Ljc0Ni0uNTkybC0uODMtNC43MyAzLjUyMi0zLjM1NmMuMzMtLjMxNC4xNi0uODg4LS4yODItLjk1bC00Ljg5OC0uNjk2TDguNDY1Ljc5MmEuNTEzLjUxMyAwIDAgMC0uOTI3IDBMNS4zNTQgNS4xMmwtNC44OTguNjk2Yy0uNDQxLjA2Mi0uNjEyLjYzNi0uMjgzLjk1bDMuNTIzIDMuMzU2LS44MyA0Ljczem00LjkwNS0yLjc2Ny0zLjY4NiAxLjg5NC42OTQtMy45NTdhLjU2NS41NjUgMCAwIDAtLjE2My0uNTA1TDEuNzEgNi43NDVsNC4wNTItLjU3NmEuNTI1LjUyNSAwIDAgMCAuMzkzLS4yODhMOCAyLjIyM2wxLjg0NyAzLjY1OGEuNTI1LjUyNSAwIDAgMCAuMzkzLjI4OGw0LjA1Mi41NzUtMi45MDYgMi43N2EuNTY1LjU2NSAwIDAgMC0uMTYzLjUwNmwuNjk0IDMuOTU3LTMuNjg2LTEuODk0YS41MDMuNTAzIDAgMCAwLS40NjEgMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjY1NyA2LjI0N2MuMTEtLjMzLjU3Ni0uMzMuNjg2IDBsLjY0NSAxLjkzN2EyLjg5IDIuODkgMCAwIDAgMS44MjkgMS44MjhsMS45MzYuNjQ1Yy4zMy4xMS4zMy41NzYgMCAuNjg2bC0xLjkzNy42NDVhMi44OSAyLjg5IDAgMCAwLTEuODI4IDEuODI5bC0uNjQ1IDEuOTM2YS4zNjEuMzYxIDAgMCAxLS42ODYgMGwtLjY0NS0xLjkzN2EyLjg5IDIuODkgMCAwIDAtMS44MjgtMS44MjhsLTEuOTM3LS42NDVhLjM2MS4zNjEgMCAwIDEgMC0uNjg2bDEuOTM3LS42NDVhMi44OSAyLjg5IDAgMCAwIDEuODI4LTEuODI4bC42NDUtMS45Mzd6TTMuNzk0IDEuMTQ4YS4yMTcuMjE3IDAgMCAxIC40MTIgMGwuMzg3IDEuMTYyYy4xNzMuNTE4LjU3OS45MjQgMS4wOTcgMS4wOTdsMS4xNjIuMzg3YS4yMTcuMjE3IDAgMCAxIDAgLjQxMmwtMS4xNjIuMzg3QTEuNzM0IDEuNzM0IDAgMCAwIDQuNTkzIDUuNjlsLS4zODcgMS4xNjJhLjIxNy4yMTcgMCAwIDEtLjQxMiAwTDMuNDA3IDUuNjlBMS43MzQgMS43MzQgMCAwIDAgMi4zMSA0LjU5M2wtMS4xNjItLjM4N2EuMjE3LjIxNyAwIDAgMSAwLS40MTJsMS4xNjItLjM4N0ExLjczNCAxLjczNCAwIDAgMCAzLjQwNyAyLjMxbC4zODctMS4xNjJ6TTEwLjg2My4wOTlhLjE0NS4xNDUgMCAwIDEgLjI3NCAwbC4yNTguNzc0Yy4xMTUuMzQ2LjM4Ni42MTcuNzMyLjczMmwuNzc0LjI1OGEuMTQ1LjE0NSAwIDAgMSAwIC4yNzRsLS43NzQuMjU4YTEuMTU2IDEuMTU2IDAgMCAwLS43MzIuNzMybC0uMjU4Ljc3NGEuMTQ1LjE0NSAwIDAgMS0uMjc0IDBsLS4yNTgtLjc3NGExLjE1NiAxLjE1NiAwIDAgMC0uNzMyLS43MzJMOS4xIDIuMTM3YS4xNDUuMTQ1IDAgMCAxIDAtLjI3NGwuNzc0LS4yNThjLjM0Ni0uMTE1LjYxNy0uMzg2LjczMi0uNzMyTDEwLjg2My4xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N0aWNraWVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEuNVYxM2ExIDEgMCAwIDAgMSAxVjEuNWEuNS41IDAgMCAxIC41LS41SDE0YTEgMSAwIDAgMC0xLTFIMS41QTEuNSAxLjUgMCAwIDAgMCAxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDJBMS41IDEuNSAwIDAgMCAyIDMuNXYxMUExLjUgMS41IDAgMCAwIDMuNSAxNmg2LjA4NmExLjUgMS41IDAgMCAwIDEuMDYtLjQ0bDQuOTE1LTQuOTE0QTEuNSAxLjUgMCAwIDAgMTYgOS41ODZWMy41QTEuNSAxLjUgMCAwIDAgMTQuNSAyaC0xMXptNiA4LjVhMSAxIDAgMCAxIDEtMWg0LjM5NmEuMjUuMjUgMCAwIDEgLjE3Ny40MjdsLTUuMTQ2IDUuMTQ2YS4yNS4yNSAwIDAgMS0uNDI3LS4xNzdWMTAuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGlja2llcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMEExLjUgMS41IDAgMCAwIDAgMS41VjEzYTEgMSAwIDAgMCAxIDFWMS41YS41LjUgMCAwIDEgLjUtLjVIMTRhMSAxIDAgMCAwLTEtMUgxLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDJBMS41IDEuNSAwIDAgMCAyIDMuNXYxMUExLjUgMS41IDAgMCAwIDMuNSAxNmg2LjA4NmExLjUgMS41IDAgMCAwIDEuMDYtLjQ0bDQuOTE1LTQuOTE0QTEuNSAxLjUgMCAwIDAgMTYgOS41ODZWMy41QTEuNSAxLjUgMCAwIDAgMTQuNSAyaC0xMXpNMyAzLjVhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIC41LjVWOWgtNC41QTEuNSAxLjUgMCAwIDAgOSAxMC41VjE1SDMuNWEuNS41IDAgMCAxLS41LS41di0xMXptNyAxMS4yOTNWMTAuNWEuNS41IDAgMCAxIC41LS41aDQuMjkzTDEwIDE0Ljc5M3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGlja3lGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxQTEuNSAxLjUgMCAwIDAgMSAyLjV2MTFBMS41IDEuNSAwIDAgMCAyLjUgMTVoNi4wODZhMS41IDEuNSAwIDAgMCAxLjA2LS40NGw0LjkxNS00LjkxNEExLjUgMS41IDAgMCAwIDE1IDguNTg2VjIuNUExLjUgMS41IDAgMCAwIDEzLjUgMWgtMTF6bTYgOC41YTEgMSAwIDAgMSAxLTFoNC4zOTZhLjI1LjI1IDAgMCAxIC4xNzcuNDI3bC01LjE0NiA1LjE0NmEuMjUuMjUgMCAwIDEtLjQyNy0uMTc3VjkuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdGlja3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDFBMS41IDEuNSAwIDAgMCAxIDIuNXYxMUExLjUgMS41IDAgMCAwIDIuNSAxNWg2LjA4NmExLjUgMS41IDAgMCAwIDEuMDYtLjQ0bDQuOTE1LTQuOTE0QTEuNSAxLjUgMCAwIDAgMTUgOC41ODZWMi41QTEuNSAxLjUgMCAwIDAgMTMuNSAxaC0xMXpNMiAyLjVhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIC41LjVWOEg5LjVBMS41IDEuNSAwIDAgMCA4IDkuNVYxNEgyLjVhLjUuNSAwIDAgMS0uNS0uNXYtMTF6bTcgMTEuMjkzVjkuNWEuNS41IDAgMCAxIC41LS41aDQuMjkzTDkgMTMuNzkzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N0b3BCdG5GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTJWNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnptNi41LTdBMS41IDEuNSAwIDAgMCA1IDYuNXYzQTEuNSAxLjUgMCAwIDAgNi41IDExaDNBMS41IDEuNSAwIDAgMCAxMSA5LjV2LTNBMS41IDEuNSAwIDAgMCA5LjUgNWgtM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdG9wQnRuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA1QTEuNSAxLjUgMCAwIDAgNSA2LjV2M0ExLjUgMS41IDAgMCAwIDYuNSAxMWgzQTEuNSAxLjUgMCAwIDAgMTEgOS41di0zQTEuNSAxLjUgMCAwIDAgOS41IDVoLTN6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjR6bTE1IDBhMSAxIDAgMCAwLTEtMUgyYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTFWNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdG9wQ2lyY2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTYuNSA1QTEuNSAxLjUgMCAwIDAgNSA2LjV2M0ExLjUgMS41IDAgMCAwIDYuNSAxMWgzQTEuNSAxLjUgMCAwIDAgMTEgOS41di0zQTEuNSAxLjUgMCAwIDAgOS41IDVoLTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3RvcENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE1QTcgNyAwIDEgMSA4IDFhNyA3IDAgMCAxIDAgMTR6bTAgMUE4IDggMCAxIDAgOCAwYTggOCAwIDAgMCAwIDE2elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNi41QTEuNSAxLjUgMCAwIDEgNi41IDVoM0ExLjUgMS41IDAgMCAxIDExIDYuNXYzQTEuNSAxLjUgMCAwIDEgOS41IDExaC0zQTEuNSAxLjUgMCAwIDEgNSA5LjV2LTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3RvcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzLjVoNkExLjUgMS41IDAgMCAxIDEyLjUgNXY2YTEuNSAxLjUgMCAwIDEtMS41IDEuNUg1QTEuNSAxLjUgMCAwIDEgMy41IDExVjVBMS41IDEuNSAwIDAgMSA1IDMuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSA1QTEuNSAxLjUgMCAwIDEgNSAzLjVoNkExLjUgMS41IDAgMCAxIDEyLjUgNXY2YTEuNSAxLjUgMCAwIDEtMS41IDEuNUg1QTEuNSAxLjUgMCAwIDEgMy41IDExVjV6TTUgNC41YS41LjUgMCAwIDAtLjUuNXY2YS41LjUgMCAwIDAgLjUuNWg2YS41LjUgMCAwIDAgLjUtLjVWNWEuNS41IDAgMCAwLS41LS41SDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3RvcGxpZ2h0c0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMGEyIDIgMCAwIDAtMiAySDJjLjE2Ny41LjggMS42IDIgMnYySDJjLjE2Ny41LjggMS42IDIgMnYySDJjLjE2Ny41LjggMS42IDIgMnYxYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi0xYzEuMi0uNCAxLjgzMy0xLjUgMi0yaC0yVjhjMS4yLS40IDEuODMzLTEuNSAyLTJoLTJWNGMxLjItLjQgMS44MzMtMS41IDItMmgtMmEyIDIgMCAwIDAtMi0ySDZ6bTMuNSAzLjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6bTAgNGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHpNOCAxM2ExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdG9wbGlnaHRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM3ptMCA0YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzem0xLjUgMi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMmEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMmgyYy0uMTY3LjUtLjggMS42LTIgMnYyaDJjLS4xNjcuNS0uOCAxLjYtMiAydjJoMmMtLjE2Ny41LS44IDEuNi0yIDJ2MWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMWMtMS4yLS40LTEuODMzLTEuNS0yLTJoMlY4Yy0xLjItLjQtMS44MzMtMS41LTItMmgyVjRjLTEuMi0uNC0xLjgzMy0xLjUtMi0yaDJ6bTItMWExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUg2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N0b3B3YXRjaEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDBhLjUuNSAwIDAgMCAwIDFIN3YxLjA3QTcuMDAxIDcuMDAxIDAgMCAwIDggMTZhNyA3IDAgMCAwIDUuMjktMTEuNTg0LjUzMS41MzEgMCAwIDAgLjAxMy0uMDEybC4zNTQtLjM1NC4zNTMuMzU0YS41LjUgMCAxIDAgLjcwNy0uNzA3bC0xLjQxNC0xLjQxNWEuNS41IDAgMSAwLS43MDcuNzA3bC4zNTQuMzU0LS4zNTQuMzU0YS43MTcuNzE3IDAgMCAwLS4wMTIuMDEyQTYuOTczIDYuOTczIDAgMCAwIDkgMi4wNzFWMWguNWEuNS41IDAgMCAwIDAtMWgtM3ptMiA1LjZWOWEuNS41IDAgMCAxLS41LjVINC41YS41LjUgMCAwIDEgMC0xaDNWNS42YS41LjUgMCAxIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N0b3B3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgNS42YS41LjUgMCAxIDAtMSAwdjIuOWgtM2EuNS41IDAgMCAwIDAgMUg4YS41LjUgMCAwIDAgLjUtLjVWNS42elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxQS41LjUgMCAwIDEgNyAuNWgyYS41LjUgMCAwIDEgMCAxdi41N2MxLjM2LjE5NiAyLjU5NC43OCAzLjU4NCAxLjY0YS43MTUuNzE1IDAgMCAxIC4wMTItLjAxM2wuMzU0LS4zNTQtLjM1NC0uMzUzYS41LjUgMCAwIDEgLjcwNy0uNzA4bDEuNDE0IDEuNDE1YS41LjUgMCAxIDEtLjcwNy43MDdsLS4zNTMtLjM1NC0uMzU0LjM1NGEuNTEyLjUxMiAwIDAgMS0uMDEzLjAxMkE3IDcgMCAxIDEgNyAyLjA3MVYxLjVhLjUuNSAwIDAgMS0uNS0uNXpNOCAzYTYgNiAwIDEgMCAuMDAxIDEyQTYgNiAwIDAgMCA4IDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3RyYXZhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzMxIDAgMiA5LjEyNWgyLjc4OEw2LjczIDUuNDk3bDEuOTMgMy42MjhoMi43NjZMNi43MzEgMHptNC42OTQgOS4xMjUtMS4zNzIgMi43NTZMOC42NiA5LjEyNUg2LjU0N0wxMC4wNTMgMTZsMy40ODQtNi44NzVoLTIuMTEyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N1YnRyYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYyaDJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0ySDJhMiAyIDAgMCAxLTItMlYyem0yLTFhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N1aXRDbHViRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDEyLjVhMy40OTMgMy40OTMgMCAwIDEtMi42ODQtMS4yNTQgMTkuOTIgMTkuOTIgMCAwIDAgMS41ODIgMi45MDdjLjIzMS4zNS0uMDIuODQ3LS40MzguODQ3SDYuMDRjLS40MTkgMC0uNjctLjQ5Ny0uNDM4LS44NDdhMTkuOTE5IDE5LjkxOSAwIDAgMCAxLjU4Mi0yLjkwNyAzLjUgMy41IDAgMSAxLTIuNTM4LTUuNzQzIDMuNSAzLjUgMCAxIDEgNi43MDggMEEzLjUgMy41IDAgMSAxIDExLjUgMTIuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdWl0Q2x1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDFhMy4yNSAzLjI1IDAgMCAwLTMuMjUgMy4yNWMwIC4xODYgMCAuMjkuMDE2LjQxLjAxNC4xMi4wNDUuMjcuMTIuNTI3bC4xOS42NjUtLjY5Mi0uMDI4YTMuMjUgMy4yNSAwIDEgMCAyLjM1NyA1LjMzNC41LjUgMCAwIDEgLjg0NC41MThsLS4wMDMuMDA1LS4wMDYuMDE1LS4wMjQuMDU1YTIxLjg5MyAyMS44OTMgMCAwIDEtLjQzOC45MiAyMi4zOCAyMi4zOCAwIDAgMS0xLjI2NiAyLjE5N2MtLjAxMy4wMTgtLjAyLjA1LjAwMS4wOS4wMS4wMi4wMjEuMDMuMDMuMDM2QS4wMzYuMDM2IDAgMCAwIDUuOSAxNWg0LjJjLjAxIDAgLjAxNi0uMDAyLjAyMi0uMDA2YS4wOTIuMDkyIDAgMCAwIC4wMjktLjAzNWMuMDItLjA0LjAxNC0uMDczLjAwMS0uMDkxYTIyLjg3NSAyMi44NzUgMCAwIDEtMS43MDQtMy4xMTdsLS4wMjQtLjA1NC0uMDA2LS4wMTUtLjAwMi0uMDA0YS41LjUgMCAwIDEgLjgzOC0uNTI0Yy42MDEuNyAxLjUxNiAxLjE2OCAyLjQ5NiAxLjE2OGEzLjI1IDMuMjUgMCAxIDAtLjEzOS02LjQ5OGwtLjY5OS4wMy4xOTktLjY3MWMuMTQtLjQ3LjE0LS43NDUuMTM5LS45MjdWNC4yNUEzLjI1IDMuMjUgMCAwIDAgOCAxem0yLjIwNyAxMi4wMjRjLjIyNS40MDUuNDg3Ljg0OC43OCAxLjI5NEMxMS40MzcgMTUgMTAuOTc1IDE2IDEwLjEgMTZINS45Yy0uODc2IDAtMS4zMzgtMS0uODg3LTEuNjgzLjI5MS0uNDQyLjU1Mi0uODguNzc2LTEuMjgzYTQuMjUgNC4yNSAwIDEgMS0yLjAwNy04LjE4NyAyLjc5IDIuNzkgMCAwIDEtLjAwOS0uMDY0Yy0uMDIzLS4xODctLjAyMy0uMzQ4LS4wMjMtLjUyVjQuMjVhNC4yNSA0LjI1IDAgMCAxIDguNSAwYzAgLjE0IDAgLjMzMy0uMDQuNTk2YTQuMjUgNC4yNSAwIDAgMS0uNDYgOC40NzYgNC4xODYgNC4xODYgMCAwIDEtMS41NDMtLjI5OHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdWl0RGlhbW9uZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi40NSA3LjQgNy4yIDEuMDY3YTEgMSAwIDAgMSAxLjYgMEwxMy41NSA3LjRhMSAxIDAgMCAxIDAgMS4yTDguOCAxNC45MzNhMSAxIDAgMCAxLTEuNiAwTDIuNDUgOC42YTEgMSAwIDAgMSAwLTEuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdWl0RGlhbW9uZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjM4NCAxLjIyNmEuNDYzLjQ2MyAwIDAgMC0uNzY4IDBsLTQuNTYgNi40NjhhLjUzNy41MzcgMCAwIDAgMCAuNjEybDQuNTYgNi40NjlhLjQ2My40NjMgMCAwIDAgLjc2OCAwbDQuNTYtNi40NjlhLjUzNy41MzcgMCAwIDAgMC0uNjEybC00LjU2LTYuNDY4ek02Ljg0OC42MTNhMS4zOSAxLjM5IDAgMCAxIDIuMzA0IDBsNC41NiA2LjQ2OGExLjYxIDEuNjEgMCAwIDEgMCAxLjgzOGwtNC41NiA2LjQ2OGExLjM5IDEuMzkgMCAwIDEtMi4zMDQgMEwyLjI4OCA4LjkyYTEuNjEgMS42MSAwIDAgMSAwLTEuODM4TDYuODQ4LjYxM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdWl0SGVhcnRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMWMyLjIxIDAgNCAxLjc1NSA0IDMuOTJDOCAyLjc1NSA5Ljc5IDEgMTIgMXM0IDEuNzU1IDQgMy45MmMwIDMuMjYzLTMuMjM0IDQuNDE0LTcuNjA4IDkuNjA4YS41MTMuNTEzIDAgMCAxLS43ODQgMEMzLjIzNCA5LjMzNCAwIDguMTgzIDAgNC45MiAwIDIuNzU1IDEuNzkgMSA0IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3VpdEhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggNi4yMzYtLjg5NC0xLjc4OWMtLjIyMi0uNDQzLS42MDctMS4wOC0xLjE1Mi0xLjU5NUM1LjQxOCAyLjM0NSA0Ljc3NiAyIDQgMiAyLjMyNCAyIDEgMy4zMjYgMSA0LjkyYzAgMS4yMTEuNTU0IDIuMDY2IDEuODY4IDMuMzcuMzM3LjMzNC43MjEuNjk1IDEuMTQ2IDEuMDkzQzUuMTIyIDEwLjQyMyA2LjUgMTEuNzE3IDggMTMuNDQ3YzEuNS0xLjczIDIuODc4LTMuMDI0IDMuOTg2LTQuMDY0LjQyNS0uMzk4LjgxLS43NiAxLjE0Ni0xLjA5M0MxNC40NDYgNi45ODYgMTUgNi4xMzEgMTUgNC45MiAxNSAzLjMyNiAxMy42NzYgMiAxMiAyYy0uNzc3IDAtMS40MTguMzQ1LTEuOTU0Ljg1Mi0uNTQ1LjUxNS0uOTMgMS4xNTItMS4xNTIgMS41OTVMOCA2LjIzNnptLjM5MiA4LjI5MmEuNTEzLjUxMyAwIDAgMS0uNzg0IDBjLTEuNjAxLTEuOTAyLTMuMDUtMy4yNjItNC4yNDMtNC4zODFDMS4zIDguMjA4IDAgNi45ODkgMCA0LjkyIDAgMi43NTUgMS43OSAxIDQgMWMxLjYgMCAyLjcxOSAxLjA1IDMuNDA0IDIuMDA4LjI2LjM2NS40NTguNzE2LjU5Ni45OTJhNy41NSA3LjU1IDAgMCAxIC41OTYtLjk5MkM5LjI4MSAyLjA0OSAxMC40IDEgMTIgMWMyLjIxIDAgNCAxLjc1NSA0IDMuOTIgMCAyLjA2OS0xLjMgMy4yODgtMy4zNjUgNS4yMjctMS4xOTMgMS4xMi0yLjY0MiAyLjQ4LTQuMjQzIDQuMzh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3VpdFNwYWRlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjE4NCAxMS4yNDZBMy41IDMuNSAwIDAgMSAxIDljMC0xLjYwMiAxLjE0LTIuNjMzIDIuNjYtNC4wMDhDNC45ODYgMy43OTIgNi42MDIgMi4zMyA4IDBjMS4zOTggMi4zMyAzLjAxNCAzLjc5MiA0LjM0IDQuOTkyQzEzLjg2IDYuMzY3IDE1IDcuMzk4IDE1IDlhMy41IDMuNSAwIDAgMS02LjE4NCAyLjI0NiAxOS45MiAxOS45MiAwIDAgMCAxLjU4MiAyLjkwN2MuMjMxLjM1LS4wMi44NDctLjQzOC44NDdINi4wNGMtLjQxOSAwLS42Ny0uNDk3LS40MzgtLjg0N2ExOS45MTkgMTkuOTE5IDAgMCAwIDEuNTgyLTIuOTA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N1aXRTcGFkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhLjUuNSAwIDAgMSAuNDI5LjI0M2MxLjM1OSAyLjI2NSAyLjkyNSAzLjY4MiA0LjI1IDQuODgyLjA5Ni4wODYuMTkuMTcuMjgyLjI1NUMxNC4zMDggNi42MDQgMTUuNSA3Ljc0NyAxNS41IDkuNWE0IDQgMCAwIDEtNS40MDYgMy43NDZjLjIzNS4zOS40OTEuNzgyLjcyMiAxLjEzMS40MzQuNjU5LS4wMSAxLjYyMy0uODU2IDEuNjIzSDYuMDRjLS44NDUgMC0xLjI5LS45NjQtLjg1Ni0xLjYyMy4yNjMtLjM5Ny41MS0uNzc3LjcyOC0xLjEzNEE0IDQgMCAwIDEgLjUgOS41YzAtMS43NTMgMS4xOTItMi44OTYgMi41MzktNC4xMmwuMjgxLS4yNTVjMS4zMjYtMS4yIDIuODkyLTIuNjE3IDQuMjUxLTQuODgyQS41LjUgMCAwIDEgOCAwek0zLjcxMSA2LjEyQzIuMzA4IDcuMzk2IDEuNSA4LjI1MyAxLjUgOS41YTMgMyAwIDAgMCA1LjI3NSAxLjk1Ni41LjUgMCAwIDEgLjg2OC40M2MtLjA5NC40MzgtLjMzLjkzMi0uNjExIDEuNDI4YTI5LjI0NyAyOS4yNDcgMCAwIDEtMS4wMTMgMS42MTQuMDMuMDMgMCAwIDAtLjAwNS4wMTguMDc0LjA3NCAwIDAgMCAuMDI0LjA1NGgzLjkyNGEuMDc0LjA3NCAwIDAgMCAuMDI0LS4wNTQuMDMuMDMgMCAwIDAtLjAwNS0uMDE4Yy0uMy0uNDU1LS42NTgtMS4wMDUtLjk2LTEuNTM1LS4yOTQtLjUxNC0uNTctMS4wNjQtLjY2NC0xLjUwN2EuNS41IDAgMCAxIC44NjgtLjQzQTMgMyAwIDAgMCAxNC41IDkuNWMwLTEuMjQ3LS44MDgtMi4xMDQtMi4yMTEtMy4zOEwxMiA1Ljg2Yy0xLjE5Ni0xLjA4NC0yLjY2OC0yLjQxNi00LTQuNDI0LTEuMzMyIDIuMDA4LTIuODA0IDMuMzQtNCA0LjQyMmwtLjI4OS4yNjF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3VuRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEyYTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOHpNOCAwYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yQS41LjUgMCAwIDEgOCAwem0wIDEzYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtMSAwdi0yQS41LjUgMCAwIDEgOCAxM3ptOC01YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWgyYS41LjUgMCAwIDEgLjUuNXpNMyA4YS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxIDAtMWgyQS41LjUgMCAwIDEgMyA4em0xMC42NTctNS42NTdhLjUuNSAwIDAgMSAwIC43MDdsLTEuNDE0IDEuNDE1YS41LjUgMCAxIDEtLjcwNy0uNzA4bDEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNyAwem0tOS4xOTMgOS4xOTNhLjUuNSAwIDAgMSAwIC43MDdMMy4wNSAxMy42NTdhLjUuNSAwIDAgMS0uNzA3LS43MDdsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6bTkuMTkzIDIuMTIxYS41LjUgMCAwIDEtLjcwNyAwbC0xLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDctLjcwN2wxLjQxNCAxLjQxNGEuNS41IDAgMCAxIDAgLjcwN3pNNC40NjQgNC40NjVhLjUuNSAwIDAgMS0uNzA3IDBMMi4zNDMgMy4wNWEuNS41IDAgMSAxIC43MDctLjcwN2wxLjQxNCAxLjQxNGEuNS41IDAgMCAxIDAgLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxMWEzIDMgMCAxIDEgMC02IDMgMyAwIDAgMSAwIDZ6bTAgMWE0IDQgMCAxIDAgMC04IDQgNCAwIDAgMCAwIDh6TTggMGEuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEuNS41IDAgMCAxIDggMHptMCAxM2EuNS41IDAgMCAxIC41LjV2MmEuNS41IDAgMCAxLTEgMHYtMkEuNS41IDAgMCAxIDggMTN6bTgtNWEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMmEuNS41IDAgMCAxIC41LjV6TTMgOGEuNS41IDAgMCAxLS41LjVoLTJhLjUuNSAwIDAgMSAwLTFoMkEuNS41IDAgMCAxIDMgOHptMTAuNjU3LTUuNjU3YS41LjUgMCAwIDEgMCAuNzA3bC0xLjQxNCAxLjQxNWEuNS41IDAgMSAxLS43MDctLjcwOGwxLjQxNC0xLjQxNGEuNS41IDAgMCAxIC43MDcgMHptLTkuMTkzIDkuMTkzYS41LjUgMCAwIDEgMCAuNzA3TDMuMDUgMTMuNjU3YS41LjUgMCAwIDEtLjcwNy0uNzA3bDEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNyAwem05LjE5MyAyLjEyMWEuNS41IDAgMCAxLS43MDcgMGwtMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3LS43MDdsMS40MTQgMS40MTRhLjUuNSAwIDAgMSAwIC43MDd6TTQuNDY0IDQuNDY1YS41LjUgMCAwIDEtLjcwNyAwTDIuMzQzIDMuMDVhLjUuNSAwIDEgMSAuNzA3LS43MDdsMS40MTQgMS40MTRhLjUuNSAwIDAgMSAwIC43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3VuZ2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVhMiAyIDAgMCAwLTIgMnYuNUguNWEuNS41IDAgMCAwIDAgMUgxVjlhMiAyIDAgMCAwIDIgMmgxYTMgMyAwIDAgMCAzLTMgMSAxIDAgMSAxIDIgMCAzIDMgMCAwIDAgMyAzaDFhMiAyIDAgMCAwIDItMnYtLjVoLjVhLjUuNSAwIDAgMCAwLTFIMTVWN2EyIDIgMCAwIDAtMi0yaC0yYTIgMiAwIDAgMC0xLjg4OCAxLjMzOEExLjk5IDEuOTkgMCAwIDAgOCA2YTEuOTkgMS45OSAwIDAgMC0xLjExMi4zMzhBMiAyIDAgMCAwIDUgNUgzem0wIDFoLjk0MWMuMjY0IDAgLjM0OC4zNTYuMTEyLjQ3NGwtLjQ1Ny4yMjhhMiAyIDAgMCAwLS44OTQuODk0bC0uMjI4LjQ1N0MyLjM1NiA4LjI4OSAyIDguMjA1IDIgNy45NFY3YTEgMSAwIDAgMSAxLTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3VucmlzZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy42NDYgMS4xNDZhLjUuNSAwIDAgMSAuNzA4IDBsMS41IDEuNWEuNS41IDAgMCAxLS43MDguNzA4TDguNSAyLjcwN1Y0LjVhLjUuNSAwIDAgMS0xIDBWMi43MDdsLS42NDYuNjQ3YS41LjUgMCAxIDEtLjcwOC0uNzA4bDEuNS0xLjV6TTIuMzQzIDQuMzQzYS41LjUgMCAwIDEgLjcwNyAwbDEuNDE0IDEuNDE0YS41LjUgMCAwIDEtLjcwNy43MDdMMi4zNDMgNS4wNWEuNS41IDAgMCAxIDAtLjcwN3ptMTEuMzE0IDBhLjUuNSAwIDAgMSAwIC43MDdsLTEuNDE0IDEuNDE0YS41LjUgMCAxIDEtLjcwNy0uNzA3bDEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNyAwek0xMS43MDkgMTEuNWE0IDQgMCAxIDAtNy40MTggMEguNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMy43OXpNMCAxMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSAwIDEwem0xMyAwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N1bnJpc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy42NDYgMS4xNDZhLjUuNSAwIDAgMSAuNzA4IDBsMS41IDEuNWEuNS41IDAgMCAxLS43MDguNzA4TDguNSAyLjcwN1Y0LjVhLjUuNSAwIDAgMS0xIDBWMi43MDdsLS42NDYuNjQ3YS41LjUgMCAxIDEtLjcwOC0uNzA4bDEuNS0xLjV6TTIuMzQzIDQuMzQzYS41LjUgMCAwIDEgLjcwNyAwbDEuNDE0IDEuNDE0YS41LjUgMCAwIDEtLjcwNy43MDdMMi4zNDMgNS4wNWEuNS41IDAgMCAxIDAtLjcwN3ptMTEuMzE0IDBhLjUuNSAwIDAgMSAwIC43MDdsLTEuNDE0IDEuNDE0YS41LjUgMCAxIDEtLjcwNy0uNzA3bDEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNyAwek04IDdhMyAzIDAgMCAxIDIuNTk5IDQuNUg1LjRBMyAzIDAgMCAxIDggN3ptMy43MSA0LjVhNCA0IDAgMSAwLTcuNDE4IDBILjQ5OWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMy43OXpNMCAxMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSAwIDEwem0xMyAwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N1bnNldEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy42NDYgNC44NTRhLjUuNSAwIDAgMCAuNzA4IDBsMS41LTEuNWEuNS41IDAgMCAwLS43MDgtLjcwOGwtLjY0Ni42NDdWMS41YS41LjUgMCAwIDAtMSAwdjEuNzkzbC0uNjQ2LS42NDdhLjUuNSAwIDEgMC0uNzA4LjcwOGwxLjUgMS41em0tNS4zMDMtLjUxYS41LjUgMCAwIDEgLjcwNyAwbDEuNDE0IDEuNDEzYS41LjUgMCAwIDEtLjcwNy43MDdMMi4zNDMgNS4wNWEuNS41IDAgMCAxIDAtLjcwN3ptMTEuMzE0IDBhLjUuNSAwIDAgMSAwIC43MDZsLTEuNDE0IDEuNDE0YS41LjUgMCAxIDEtLjcwNy0uNzA3bDEuNDE0LTEuNDE0YS41LjUgMCAwIDEgLjcwNyAwek0xMS43MDkgMTEuNWE0IDQgMCAxIDAtNy40MTggMEguNWEuNS41IDAgMCAwIDAgMWgxNWEuNS41IDAgMCAwIDAtMWgtMy43OXpNMCAxMGEuNS41IDAgMCAxIC41LS41aDJhLjUuNSAwIDAgMSAwIDFoLTJBLjUuNSAwIDAgMSAwIDEwem0xMyAwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1N1bnNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjY0NiA0Ljg1NGEuNS41IDAgMCAwIC43MDggMGwxLjUtMS41YS41LjUgMCAwIDAtLjcwOC0uNzA4bC0uNjQ2LjY0N1YxLjVhLjUuNSAwIDAgMC0xIDB2MS43OTNsLS42NDYtLjY0N2EuNS41IDAgMSAwLS43MDguNzA4bDEuNSAxLjV6bS01LjMwMy0uNTFhLjUuNSAwIDAgMSAuNzA3IDBsMS40MTQgMS40MTNhLjUuNSAwIDAgMS0uNzA3LjcwN0wyLjM0MyA1LjA1YS41LjUgMCAwIDEgMC0uNzA3em0xMS4zMTQgMGEuNS41IDAgMCAxIDAgLjcwNmwtMS40MTQgMS40MTRhLjUuNSAwIDEgMS0uNzA3LS43MDdsMS40MTQtMS40MTRhLjUuNSAwIDAgMSAuNzA3IDB6TTggN2EzIDMgMCAwIDEgMi41OTkgNC41SDUuNEEzIDMgMCAwIDEgOCA3em0zLjcxIDQuNWE0IDQgMCAxIDAtNy40MTggMEguNDk5YS41LjUgMCAwIDAgMCAxaDE1YS41LjUgMCAwIDAgMC0xaC0zLjc5ek0wIDEwYS41LjUgMCAwIDEgLjUtLjVoMmEuNS41IDAgMCAxIDAgMWgtMkEuNS41IDAgMCAxIDAgMTB6bTEzIDBhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgMCAxaC0yYS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3ltbWV0cnlIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgN2EuNS41IDAgMCAwIC4yNC0uOTM5bC0xMS02QS41LjUgMCAwIDAgMiAuNXY2YS41LjUgMCAwIDAgLjUuNWgxMXptLjQ4NSAyLjM3NmEuNS41IDAgMCAxLS4yNDYuNTYzbC0xMSA2QS41LjUgMCAwIDEgMiAxNS41di02YS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAuNDg1LjM3NnpNMTEuNTM5IDEwSDN2NC42NThMMTEuNTQgMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzU3ltbWV0cnlWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIuNWEuNS41IDAgMCAwLS45MzktLjI0bC02IDExQS41LjUgMCAwIDAgLjUgMTRoNmEuNS41IDAgMCAwIC41LS41di0xMXptMi4zNzYtLjQ4NGEuNS41IDAgMCAxIC41NjMuMjQ1bDYgMTFBLjUuNSAwIDAgMSAxNS41IDE0aC02YS41LjUgMCAwIDEtLjUtLjV2LTExYS41LjUgMCAwIDEgLjM3Ni0uNDg0ek0xMCA0LjQ2VjEzaDQuNjU4TDEwIDQuNDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYyem0xNSAyaC00djNoNFY0em0wIDRoLTR2M2g0Vjh6bTAgNGgtNHYzaDNhMSAxIDAgMCAwIDEtMXYtMnptLTUgM3YtM0g2djNoNHptLTUgMHYtM0gxdjJhMSAxIDAgMCAwIDEgMWgzem0tNC00aDRWOEgxdjN6bTAtNGg0VjRIMXYzem01LTN2M2g0VjRINnptNCA0SDZ2M2g0Vjh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGFibGV0RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMnptNyAxMWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGFibGV0TGFuZHNjYXBlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDJ6bTExLTdhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RhYmxldExhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDRhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjhhMSAxIDAgMCAxLTEgMUgyYTEgMSAwIDAgMS0xLTFWNHptLTEgOGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnY4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDhhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RhYmxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxYTEgMSAwIDAgMSAxIDF2MTJhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDh6TTQgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkg0elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTRhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RhZ0ZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxYTEgMSAwIDAgMC0xIDF2NC41ODZhMSAxIDAgMCAwIC4yOTMuNzA3bDcgN2ExIDEgMCAwIDAgMS40MTQgMGw0LjU4Ni00LjU4NmExIDEgMCAwIDAgMC0xLjQxNGwtNy03QTEgMSAwIDAgMCA2LjU4NiAxSDJ6bTQgMy41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDQuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptLTEgMGEuNS41IDAgMSAwLTEgMCAuNS41IDAgMCAwIDEgMHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDFoNC41ODZhMSAxIDAgMCAxIC43MDcuMjkzbDcgN2ExIDEgMCAwIDEgMCAxLjQxNGwtNC41ODYgNC41ODZhMSAxIDAgMCAxLTEuNDE0IDBsLTctN0ExIDEgMCAwIDEgMSA2LjU4NlYyYTEgMSAwIDAgMSAxLTF6bTAgNS41ODYgNyA3TDEzLjU4NiA5bC03LTdIMnY0LjU4NnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUYWdzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDJhMSAxIDAgMCAxIDEtMWg0LjU4NmExIDEgMCAwIDEgLjcwNy4yOTNsNyA3YTEgMSAwIDAgMSAwIDEuNDE0bC00LjU4NiA0LjU4NmExIDEgMCAwIDEtMS40MTQgMGwtNy03QTEgMSAwIDAgMSAyIDYuNTg2VjJ6bTMuNSA0YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMjkzIDcuNzkzQTEgMSAwIDAgMSAxIDcuMDg2VjJhMSAxIDAgMCAwLTEgMXY0LjU4NmExIDEgMCAwIDAgLjI5My43MDdsNyA3YTEgMSAwIDAgMCAxLjQxNCAwbC4wNDMtLjA0My03LjQ1Ny03LjQ1N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUYWdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMnY0LjU4Nmw3IDdMMTQuNTg2IDlsLTctN0gzek0yIDJhMSAxIDAgMCAxIDEtMWg0LjU4NmExIDEgMCAwIDEgLjcwNy4yOTNsNyA3YTEgMSAwIDAgMSAwIDEuNDE0bC00LjU4NiA0LjU4NmExIDEgMCAwIDEtMS40MTQgMGwtNy03QTEgMSAwIDAgMSAyIDYuNTg2VjJ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDVhLjUuNSAwIDEgMSAwLTEgLjUuNSAwIDAgMSAwIDF6bTAgMWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM3pNMSA3LjA4NmExIDEgMCAwIDAgLjI5My43MDdMOC43NSAxNS4yNWwtLjA0My4wNDNhMSAxIDAgMCAxLTEuNDE0IDBsLTctN0ExIDEgMCAwIDEgMCA3LjU4NlYzYTEgMSAwIDAgMSAxLTF2NS4wODZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek04LjI4NyA1LjkwNmMtLjc3OC4zMjQtMi4zMzQuOTk0LTQuNjY2IDIuMDEtLjM3OC4xNS0uNTc3LjI5OC0uNTk1LjQ0Mi0uMDMuMjQzLjI3NS4zMzkuNjkuNDdsLjE3NS4wNTVjLjQwOC4xMzMuOTU4LjI4OCAxLjI0My4yOTQuMjYuMDA2LjU0OS0uMS44NjgtLjMyIDIuMTc5LTEuNDcxIDMuMzA0LTIuMjE0IDMuMzc0LTIuMjMuMDUtLjAxMi4xMi0uMDI2LjE2Ni4wMTYuMDQ3LjA0MS4wNDIuMTIuMDM3LjE0MS0uMDMuMTI5LTEuMjI3IDEuMjQxLTEuODQ2IDEuODE3LS4xOTMuMTgtLjMzLjMwNy0uMzU4LjMzNmE4LjE1NCA4LjE1NCAwIDAgMS0uMTg4LjE4NmMtLjM4LjM2Ni0uNjY0LjY0LjAxNSAxLjA4OC4zMjcuMjE2LjU4OS4zOTMuODUuNTcxLjI4NC4xOTQuNTY4LjM4Ny45MzYuNjI5LjA5My4wNi4xODMuMTI1LjI3LjE4Ny4zMzEuMjM2LjYzLjQ0OC45OTcuNDE0LjIxNC0uMDIuNDM1LS4yMi41NDctLjgyLjI2NS0xLjQxNy43ODYtNC40ODYuOTA2LTUuNzUxYTEuNDI2IDEuNDI2IDAgMCAwLS4wMTMtLjMxNS4zMzcuMzM3IDAgMCAwLS4xMTQtLjIxNy41MjYuNTI2IDAgMCAwLS4zMS0uMDkzYy0uMy4wMDUtLjc2My4xNjYtMi45ODQgMS4wOXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZWxlcGhvbmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjg4NS41MTFhMS43NDUgMS43NDUgMCAwIDEgMi42MS4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lRm9yd2FyZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuODg1LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXptMTAuNzYxLjEzNWEuNS41IDAgMCAxIC43MDggMGwyLjUgMi41YS41LjUgMCAwIDEgMCAuNzA4bC0yLjUgMi41YS41LjUgMCAwIDEtLjcwOC0uNzA4TDE0LjI5MyA0SDkuNWEuNS41IDAgMCAxIDAtMWg0Ljc5M2wtMS42NDctMS42NDZhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjY1NCAxLjMyOGEuNjc4LjY3OCAwIDAgMC0xLjAxNS0uMDYzTDEuNjA1IDIuM2MtLjQ4My40ODQtLjY2MSAxLjE2OS0uNDUgMS43N2ExNy41NjggMTcuNTY4IDAgMCAwIDQuMTY4IDYuNjA4IDE3LjU2OSAxNy41NjkgMCAwIDAgNi42MDggNC4xNjhjLjYwMS4yMTEgMS4yODYuMDMzIDEuNzctLjQ1bDEuMDM0LTEuMDM0YS42NzguNjc4IDAgMCAwLS4wNjMtMS4wMTVsLTIuMzA3LTEuNzk0YS42NzguNjc4IDAgMCAwLS41OC0uMTIybC0yLjE5LjU0N2ExLjc0NSAxLjc0NSAwIDAgMS0xLjY1Ny0uNDU5TDUuNDgyIDguMDYyYTEuNzQ1IDEuNzQ1IDAgMCAxLS40Ni0xLjY1N2wuNTQ4LTIuMTlhLjY3OC42NzggMCAwIDAtLjEyMi0uNThMMy42NTQgMS4zMjh6TTEuODg0LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxMi4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6bTEwLjc2Mi4xMzVhLjUuNSAwIDAgMSAuNzA4IDBsMi41IDIuNWEuNS41IDAgMCAxIDAgLjcwOGwtMi41IDIuNWEuNS41IDAgMCAxLS43MDgtLjcwOEwxNC4yOTMgNEg5LjVhLjUuNSAwIDAgMSAwLTFoNC43OTNsLTEuNjQ3LTEuNjQ2YS41LjUgMCAwIDEgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RlbGVwaG9uZUluYm91bmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjg4NS41MTFhMS43NDUgMS43NDUgMCAwIDEgMi42MS4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6TTE1Ljg1NC4xNDZhLjUuNSAwIDAgMSAwIC43MDhMMTEuNzA3IDVIMTQuNWEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgMSAwdjIuNzkzTDE1LjE0Ni4xNDZhLjUuNSAwIDAgMSAuNzA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lSW5ib3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS44NTQuMTQ2YS41LjUgMCAwIDEgMCAuNzA4TDExLjcwNyA1SDE0LjVhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNXYtNGEuNS41IDAgMCAxIDEgMHYyLjc5M0wxNS4xNDYuMTQ2YS41LjUgMCAwIDEgLjcwOCAwem0tMTIuMiAxLjE4MmEuNjc4LjY3OCAwIDAgMC0xLjAxNS0uMDYzTDEuNjA1IDIuM2MtLjQ4My40ODQtLjY2MSAxLjE2OS0uNDUgMS43N2ExNy41NjggMTcuNTY4IDAgMCAwIDQuMTY4IDYuNjA4IDE3LjU2OSAxNy41NjkgMCAwIDAgNi42MDggNC4xNjhjLjYwMS4yMTEgMS4yODYuMDMzIDEuNzctLjQ1bDEuMDM0LTEuMDM0YS42NzguNjc4IDAgMCAwLS4wNjMtMS4wMTVsLTIuMzA3LTEuNzk0YS42NzguNjc4IDAgMCAwLS41OC0uMTIybC0yLjE5LjU0N2ExLjc0NSAxLjc0NSAwIDAgMS0xLjY1Ny0uNDU5TDUuNDgyIDguMDYyYTEuNzQ1IDEuNzQ1IDAgMCAxLS40Ni0xLjY1N2wuNTQ4LTIuMTlhLjY3OC42NzggMCAwIDAtLjEyMi0uNThMMy42NTQgMS4zMjh6TTEuODg0LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxMi4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lTWludXNGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xLjg4NS41MTFhMS43NDUgMS43NDUgMCAwIDEgMi42MS4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6TTEwIDMuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAwIDFoLTRhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZWxlcGhvbmVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMy41YS41LjUgMCAwIDEgLjUtLjVoNGEuNS41IDAgMCAxIDAgMWgtNGEuNS41IDAgMCAxLS41LS41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNjU0IDEuMzI4YS42NzguNjc4IDAgMCAwLTEuMDE1LS4wNjNMMS42MDUgMi4zYy0uNDgzLjQ4NC0uNjYxIDEuMTY5LS40NSAxLjc3YTE3LjU2OCAxNy41NjggMCAwIDAgNC4xNjggNi42MDggMTcuNTY5IDE3LjU2OSAwIDAgMCA2LjYwOCA0LjE2OGMuNjAxLjIxMSAxLjI4Ni4wMzMgMS43Ny0uNDVsMS4wMzQtMS4wMzRhLjY3OC42NzggMCAwIDAtLjA2My0xLjAxNWwtMi4zMDctMS43OTRhLjY3OC42NzggMCAwIDAtLjU4LS4xMjJsLTIuMTkuNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxLTEuNjU3LS40NTlMNS40ODIgOC4wNjJhMS43NDUgMS43NDUgMCAwIDEtLjQ2LTEuNjU3bC41NDgtMi4xOWEuNjc4LjY3OCAwIDAgMC0uMTIyLS41OEwzLjY1NCAxLjMyOHpNMS44ODQuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEyLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZWxlcGhvbmVPdXRib3VuZEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEuODg1LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXpNMTEgLjVhLjUuNSAwIDAgMSAuNS0uNWg0YS41LjUgMCAwIDEgLjUuNXY0YS41LjUgMCAwIDEtMSAwVjEuNzA3bC00LjE0NiA0LjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEwxNC4yOTMgMUgxMS41YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lT3V0Ym91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy42NTQgMS4zMjhhLjY3OC42NzggMCAwIDAtMS4wMTUtLjA2M0wxLjYwNSAyLjNjLS40ODMuNDg0LS42NjEgMS4xNjktLjQ1IDEuNzdhMTcuNTY4IDE3LjU2OCAwIDAgMCA0LjE2OCA2LjYwOCAxNy41NjkgMTcuNTY5IDAgMCAwIDYuNjA4IDQuMTY4Yy42MDEuMjExIDEuMjg2LjAzMyAxLjc3LS40NWwxLjAzNC0xLjAzNGEuNjc4LjY3OCAwIDAgMC0uMDYzLTEuMDE1bC0yLjMwNy0xLjc5NGEuNjc4LjY3OCAwIDAgMC0uNTgtLjEyMmwtMi4xOS41NDdhMS43NDUgMS43NDUgMCAwIDEtMS42NTctLjQ1OUw1LjQ4MiA4LjA2MmExLjc0NSAxLjc0NSAwIDAgMS0uNDYtMS42NTdsLjU0OC0yLjE5YS42NzguNjc4IDAgMCAwLS4xMjItLjU4TDMuNjU0IDEuMzI4ek0xLjg4NC41MTFhMS43NDUgMS43NDUgMCAwIDEgMi42MTIuMTYzTDYuMjkgMi45OGMuMzI5LjQyMy40NDUuOTc0LjMxNSAxLjQ5NGwtLjU0NyAyLjE5YS42NzguNjc4IDAgMCAwIC4xNzguNjQzbDIuNDU3IDIuNDU3YS42NzguNjc4IDAgMCAwIC42NDQuMTc4bDIuMTg5LS41NDdhMS43NDUgMS43NDUgMCAwIDEgMS40OTQuMzE1bDIuMzA2IDEuNzk0Yy44MjkuNjQ1LjkwNSAxLjg3LjE2MyAyLjYxMWwtMS4wMzQgMS4wMzRjLS43NC43NC0xLjg0NiAxLjA2NS0yLjg3Ny43MDJhMTguNjM0IDE4LjYzNCAwIDAgMS03LjAxLTQuNDIgMTguNjM0IDE4LjYzNCAwIDAgMS00LjQyLTcuMDA5Yy0uMzYyLTEuMDMtLjAzNy0yLjEzNy43MDMtMi44NzdMMS44ODUuNTExek0xMSAuNWEuNS41IDAgMCAxIC41LS41aDRhLjUuNSAwIDAgMSAuNS41djRhLjUuNSAwIDAgMS0xIDBWMS43MDdsLTQuMTQ2IDQuMTQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDE0LjI5MyAxSDExLjVhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZWxlcGhvbmVQbHVzRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS44ODUuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEuMTYzTDYuMjkgMi45OGMuMzI5LjQyMy40NDUuOTc0LjMxNSAxLjQ5NGwtLjU0NyAyLjE5YS42NzguNjc4IDAgMCAwIC4xNzguNjQzbDIuNDU3IDIuNDU3YS42NzguNjc4IDAgMCAwIC42NDQuMTc4bDIuMTg5LS41NDdhMS43NDUgMS43NDUgMCAwIDEgMS40OTQuMzE1bDIuMzA2IDEuNzk0Yy44MjkuNjQ1LjkwNSAxLjg3LjE2MyAyLjYxMWwtMS4wMzQgMS4wMzRjLS43NC43NC0xLjg0NiAxLjA2NS0yLjg3Ny43MDJhMTguNjM0IDE4LjYzNCAwIDAgMS03LjAxLTQuNDIgMTguNjM0IDE4LjYzNCAwIDAgMS00LjQyLTcuMDA5Yy0uMzYyLTEuMDMtLjAzNy0yLjEzNy43MDMtMi44NzdMMS44ODUuNTExek0xMi41IDFhLjUuNSAwIDAgMSAuNS41VjNoMS41YS41LjUgMCAwIDEgMCAxSDEzdjEuNWEuNS41IDAgMCAxLTEgMFY0aC0xLjVhLjUuNSAwIDAgMSAwLTFIMTJWMS41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjY1NCAxLjMyOGEuNjc4LjY3OCAwIDAgMC0xLjAxNS0uMDYzTDEuNjA1IDIuM2MtLjQ4My40ODQtLjY2MSAxLjE2OS0uNDUgMS43N2ExNy41NjggMTcuNTY4IDAgMCAwIDQuMTY4IDYuNjA4IDE3LjU2OSAxNy41NjkgMCAwIDAgNi42MDggNC4xNjhjLjYwMS4yMTEgMS4yODYuMDMzIDEuNzctLjQ1bDEuMDM0LTEuMDM0YS42NzguNjc4IDAgMCAwLS4wNjMtMS4wMTVsLTIuMzA3LTEuNzk0YS42NzguNjc4IDAgMCAwLS41OC0uMTIybC0yLjE5LjU0N2ExLjc0NSAxLjc0NSAwIDAgMS0xLjY1Ny0uNDU5TDUuNDgyIDguMDYyYTEuNzQ1IDEuNzQ1IDAgMCAxLS40Ni0xLjY1N2wuNTQ4LTIuMTlhLjY3OC42NzggMCAwIDAtLjEyMi0uNThMMy42NTQgMS4zMjh6TTEuODg0LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxMi4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjUgMWEuNS41IDAgMCAxIC41LjVWM2gxLjVhLjUuNSAwIDAgMSAwIDFIMTN2MS41YS41LjUgMCAwIDEtMSAwVjRoLTEuNWEuNS41IDAgMCAxIDAtMUgxMlYxLjVhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZWxlcGhvbmVYRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMS44ODUuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEuMTYzTDYuMjkgMi45OGMuMzI5LjQyMy40NDUuOTc0LjMxNSAxLjQ5NGwtLjU0NyAyLjE5YS42NzguNjc4IDAgMCAwIC4xNzguNjQzbDIuNDU3IDIuNDU3YS42NzguNjc4IDAgMCAwIC42NDQuMTc4bDIuMTg5LS41NDdhMS43NDUgMS43NDUgMCAwIDEgMS40OTQuMzE1bDIuMzA2IDEuNzk0Yy44MjkuNjQ1LjkwNSAxLjg3LjE2MyAyLjYxMWwtMS4wMzQgMS4wMzRjLS43NC43NC0xLjg0NiAxLjA2NS0yLjg3Ny43MDJhMTguNjM0IDE4LjYzNCAwIDAgMS03LjAxLTQuNDIgMTguNjM0IDE4LjYzNCAwIDAgMS00LjQyLTcuMDA5Yy0uMzYyLTEuMDMtLjAzNy0yLjEzNy43MDMtMi44NzdMMS44ODUuNTExem05LjI2MSAxLjEzNWEuNS41IDAgMCAxIC43MDggMEwxMyAyLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4TDEzLjcwNyAzLjVsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEwxMyA0LjIwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTIuMjkzIDMuNWwtMS4xNDctMS4xNDZhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lWCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjY1NCAxLjMyOGEuNjc4LjY3OCAwIDAgMC0xLjAxNS0uMDYzTDEuNjA1IDIuM2MtLjQ4My40ODQtLjY2MSAxLjE2OS0uNDUgMS43N2ExNy41NjggMTcuNTY4IDAgMCAwIDQuMTY4IDYuNjA4IDE3LjU2OSAxNy41NjkgMCAwIDAgNi42MDggNC4xNjhjLjYwMS4yMTEgMS4yODYuMDMzIDEuNzctLjQ1bDEuMDM0LTEuMDM0YS42NzguNjc4IDAgMCAwLS4wNjMtMS4wMTVsLTIuMzA3LTEuNzk0YS42NzguNjc4IDAgMCAwLS41OC0uMTIybC0yLjE5LjU0N2ExLjc0NSAxLjc0NSAwIDAgMS0xLjY1Ny0uNDU5TDUuNDgyIDguMDYyYTEuNzQ1IDEuNzQ1IDAgMCAxLS40Ni0xLjY1N2wuNTQ4LTIuMTlhLjY3OC42NzggMCAwIDAtLjEyMi0uNThMMy42NTQgMS4zMjh6TTEuODg0LjUxMWExLjc0NSAxLjc0NSAwIDAgMSAyLjYxMi4xNjNMNi4yOSAyLjk4Yy4zMjkuNDIzLjQ0NS45NzQuMzE1IDEuNDk0bC0uNTQ3IDIuMTlhLjY3OC42NzggMCAwIDAgLjE3OC42NDNsMi40NTcgMi40NTdhLjY3OC42NzggMCAwIDAgLjY0NC4xNzhsMi4xODktLjU0N2ExLjc0NSAxLjc0NSAwIDAgMSAxLjQ5NC4zMTVsMi4zMDYgMS43OTRjLjgyOS42NDUuOTA1IDEuODcuMTYzIDIuNjExbC0xLjAzNCAxLjAzNGMtLjc0Ljc0LTEuODQ2IDEuMDY1LTIuODc3LjcwMmExOC42MzQgMTguNjM0IDAgMCAxLTcuMDEtNC40MiAxOC42MzQgMTguNjM0IDAgMCAxLTQuNDItNy4wMDljLS4zNjItMS4wMy0uMDM3LTIuMTM3LjcwMy0yLjg3N0wxLjg4NS41MTF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTExLjE0NiAxLjY0NmEuNS41IDAgMCAxIC43MDggMEwxMyAyLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4TDEzLjcwNyAzLjVsMS4xNDcgMS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEwxMyA0LjIwN2wtMS4xNDYgMS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTIuMjkzIDMuNWwtMS4xNDctMS4xNDZhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVsZXBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNjU0IDEuMzI4YS42NzguNjc4IDAgMCAwLTEuMDE1LS4wNjNMMS42MDUgMi4zYy0uNDgzLjQ4NC0uNjYxIDEuMTY5LS40NSAxLjc3YTE3LjU2OCAxNy41NjggMCAwIDAgNC4xNjggNi42MDggMTcuNTY5IDE3LjU2OSAwIDAgMCA2LjYwOCA0LjE2OGMuNjAxLjIxMSAxLjI4Ni4wMzMgMS43Ny0uNDVsMS4wMzQtMS4wMzRhLjY3OC42NzggMCAwIDAtLjA2My0xLjAxNWwtMi4zMDctMS43OTRhLjY3OC42NzggMCAwIDAtLjU4LS4xMjJsLTIuMTkuNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxLTEuNjU3LS40NTlMNS40ODIgOC4wNjJhMS43NDUgMS43NDUgMCAwIDEtLjQ2LTEuNjU3bC41NDgtMi4xOWEuNjc4LjY3OCAwIDAgMC0uMTIyLS41OEwzLjY1NCAxLjMyOHpNMS44ODQuNTExYTEuNzQ1IDEuNzQ1IDAgMCAxIDIuNjEyLjE2M0w2LjI5IDIuOThjLjMyOS40MjMuNDQ1Ljk3NC4zMTUgMS40OTRsLS41NDcgMi4xOWEuNjc4LjY3OCAwIDAgMCAuMTc4LjY0M2wyLjQ1NyAyLjQ1N2EuNjc4LjY3OCAwIDAgMCAuNjQ0LjE3OGwyLjE4OS0uNTQ3YTEuNzQ1IDEuNzQ1IDAgMCAxIDEuNDk0LjMxNWwyLjMwNiAxLjc5NGMuODI5LjY0NS45MDUgMS44Ny4xNjMgMi42MTFsLTEuMDM0IDEuMDM0Yy0uNzQuNzQtMS44NDYgMS4wNjUtMi44NzcuNzAyYTE4LjYzNCAxOC42MzQgMCAwIDEtNy4wMS00LjQyIDE4LjYzNCAxOC42MzQgMCAwIDEtNC40Mi03LjAwOWMtLjM2Mi0xLjAzLS4wMzctMi4xMzcuNzAzLTIuODc3TDEuODg1LjUxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZXJtaW5hbEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlYzem05LjUgNS41aC0zYS41LjUgMCAwIDAgMCAxaDNhLjUuNSAwIDAgMCAwLTF6bS02LjM1NC0uMzU0YS41LjUgMCAxIDAgLjcwOC43MDhsMi0yYS41LjUgMCAwIDAgMC0uNzA4bC0yLTJhLjUuNSAwIDEgMC0uNzA4LjcwOEw0Ljc5MyA2LjUgMy4xNDYgOC4xNDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA5YS41LjUgMCAwIDEgLjUtLjVoM2EuNS41IDAgMCAxIDAgMWgtM0EuNS41IDAgMCAxIDYgOXpNMy44NTQgNC4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOEw0Ljc5MyA2LjUgMy4xNDYgOC4xNDZhLjUuNSAwIDEgMCAuNzA4LjcwOGwyLTJhLjUuNSAwIDAgMCAwLS43MDhsLTItMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDFhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWM2EyIDIgMCAwIDAtMi0ySDJ6bTEyIDFhMSAxIDAgMCAxIDEgMXYxMGExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMVYzYTEgMSAwIDAgMSAxLTFoMTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGV4dENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAxMi41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0tMi0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6bTItM2EuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXptLTItM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RleHRJbmRlbnRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMy41YS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6bS42NDYgMi4xNDZhLjUuNSAwIDAgMSAuNzA4IDBsMiAyYS41LjUgMCAwIDEgMCAuNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4LS43MDhMNC4yOTMgOCAyLjY0NiA2LjM1NGEuNS41IDAgMCAxIDAtLjcwOHpNNyA2LjVhLjUuNSAwIDAgMSAuNS0uNWg2YS41LjUgMCAwIDEgMCAxaC02YS41LjUgMCAwIDEtLjUtLjV6bTAgM2EuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXptLTUgM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RleHRJbmRlbnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDMuNWEuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41em0xMC42NDYgMi4xNDZhLjUuNSAwIDAgMSAuNzA4LjcwOEwxMS43MDcgOGwxLjY0NyAxLjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC0yLTJhLjUuNSAwIDAgMSAwLS43MDhsMi0yek0yIDYuNWEuNS41IDAgMCAxIC41LS41aDZhLjUuNSAwIDAgMSAwIDFoLTZhLjUuNSAwIDAgMS0uNS0uNXptMCAzYS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41em0wIDNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZXh0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiAxMi41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0wLTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXptMC0zYS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0wLTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZXh0UGFyYWdyYXBoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDEyLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgMCAxaC03YS41LjUgMCAwIDEtLjUtLjV6bTAtM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41em0wLTNhLjUuNSAwIDAgMSAuNS0uNWgxMWEuNS41IDAgMCAxIDAgMWgtMTFhLjUuNSAwIDAgMS0uNS0uNXptNC0zYS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RleHRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAxMi41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIDAgMWgtN2EuNS41IDAgMCAxLS41LS41em0tNC0zYS41LjUgMCAwIDEgLjUtLjVoMTFhLjUuNSAwIDAgMSAwIDFoLTExYS41LjUgMCAwIDEtLjUtLjV6bTQtM2EuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAwIDFoLTdhLjUuNSAwIDAgMS0uNS0uNXptLTQtM2EuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMWEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RleHRhcmVhUmVzaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNC41QTIuNSAyLjUgMCAwIDEgMi41IDJoMTFBMi41IDIuNSAwIDAgMSAxNiA0LjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgMCAxMS41di03ek0yLjUgM0ExLjUgMS41IDAgMCAwIDEgNC41djdBMS41IDEuNSAwIDAgMCAyLjUgMTNoMTFhMS41IDEuNSAwIDAgMCAxLjUtMS41di03QTEuNSAxLjUgMCAwIDAgMTMuNSAzaC0xMXptMTAuODU0IDQuNjQ2YS41LjUgMCAwIDEgMCAuNzA4bC0zIDNhLjUuNSAwIDAgMS0uNzA4LS43MDhsMy0zYS41LjUgMCAwIDEgLjcwOCAwem0wIDIuNWEuNS41IDAgMCAxIDAgLjcwOGwtLjUuNWEuNS41IDAgMCAxLS43MDgtLjcwOGwuNS0uNWEuNS41IDAgMCAxIC43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUZXh0YXJlYVQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS41IDIuNUExLjUgMS41IDAgMCAxIDMgMWgxMGExLjUgMS41IDAgMCAxIDEuNSAxLjV2My41NjNhMiAyIDAgMCAxIDAgMy44NzRWMTMuNUExLjUgMS41IDAgMCAxIDEzIDE1SDNhMS41IDEuNSAwIDAgMS0xLjUtMS41VjkuOTM3YTIgMiAwIDAgMSAwLTMuODc0VjIuNXptMSAzLjU2M2EyIDIgMCAwIDEgMCAzLjg3NFYxMy41YS41LjUgMCAwIDAgLjUuNWgxMGEuNS41IDAgMCAwIC41LS41VjkuOTM3YTIgMiAwIDAgMSAwLTMuODc0VjIuNUEuNS41IDAgMCAwIDEzIDJIM2EuNS41IDAgMCAwLS41LjV2My41NjN6TTIgN2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTEyIDBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjQzNCA0SDQuNTY2TDQuNSA1Ljk5NGguMzg2Yy4yMS0xLjI1Mi42MTItMS40NDYgMi4xNzMtMS40OTVsLjM0My0uMDExdjYuMzQzYzAgLjUzNy0uMTE2LjY2NS0xLjA0OS43NDhWMTJoMy4yOTR2LS40MjFjLS45MzgtLjA4My0xLjA1NC0uMjEtMS4wNTQtLjc0OFY0LjQ4OGwuMzQ4LjAxYzEuNTYuMDUgMS45NjMuMjQ0IDIuMTczIDEuNDk2aC4zODZMMTEuNDM0IDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGV4dGFyZWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS41IDIuNUExLjUgMS41IDAgMCAxIDMgMWgxMGExLjUgMS41IDAgMCAxIDEuNSAxLjV2My41NjNhMiAyIDAgMCAxIDAgMy44NzRWMTMuNUExLjUgMS41IDAgMCAxIDEzIDE1SDNhMS41IDEuNSAwIDAgMS0xLjUtMS41VjkuOTM3YTIgMiAwIDAgMSAwLTMuODc0VjIuNXptMSAzLjU2M2EyIDIgMCAwIDEgMCAzLjg3NFYxMy41YS41LjUgMCAwIDAgLjUuNWgxMGEuNS41IDAgMCAwIC41LS41VjkuOTM3YTIgMiAwIDAgMSAwLTMuODc0VjIuNUEuNS41IDAgMCAwIDEzIDJIM2EuNS41IDAgMCAwLS41LjV2My41NjN6TTIgN2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTEyIDBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RoZXJtb21ldGVySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTIuNWExLjUgMS41IDAgMSAxLTItMS40MTVWNi41YS41LjUgMCAwIDEgMSAwdjQuNTg1YTEuNSAxLjUgMCAwIDEgMSAxLjQxNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMi41YTIuNSAyLjUgMCAwIDEgNSAwdjcuNTVhMy41IDMuNSAwIDEgMS01IDBWMi41ek04IDFhMS41IDEuNSAwIDAgMC0xLjUgMS41djcuOTg3bC0uMTY3LjE1YTIuNSAyLjUgMCAxIDAgMy4zMzMgMGwtLjE2Ni0uMTVWMi41QTEuNSAxLjUgMCAwIDAgOCAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RoZXJtb21ldGVySGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTIuNWExLjUgMS41IDAgMSAxLTItMS40MTVWMi41YS41LjUgMCAwIDEgMSAwdjguNTg1YTEuNSAxLjUgMCAwIDEgMSAxLjQxNXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMi41YTIuNSAyLjUgMCAwIDEgNSAwdjcuNTVhMy41IDMuNSAwIDEgMS01IDBWMi41ek04IDFhMS41IDEuNSAwIDAgMC0xLjUgMS41djcuOTg3bC0uMTY3LjE1YTIuNSAyLjUgMCAxIDAgMy4zMzMgMGwtLjE2Ni0uMTVWMi41QTEuNSAxLjUgMCAwIDAgOCAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RoZXJtb21ldGVyTG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMi41YTEuNSAxLjUgMCAxIDEtMi0xLjQxNVY5LjVhLjUuNSAwIDAgMSAxIDB2MS41ODVhMS41IDEuNSAwIDAgMSAxIDEuNDE1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAyLjVhMi41IDIuNSAwIDAgMSA1IDB2Ny41NWEzLjUgMy41IDAgMSAxLTUgMFYyLjV6TTggMWExLjUgMS41IDAgMCAwLTEuNSAxLjV2Ny45ODdsLS4xNjcuMTVhMi41IDIuNSAwIDEgMCAzLjMzMyAwbC0uMTY2LS4xNVYyLjVBMS41IDEuNSAwIDAgMCA4IDF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGhlcm1vbWV0ZXJTbm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTIuNWExLjUgMS41IDAgMSAxLTItMS40MTVWOS41YS41LjUgMCAwIDEgMSAwdjEuNTg1QTEuNSAxLjUgMCAwIDEgNSAxMi41elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMi41YTIuNSAyLjUgMCAwIDEgNSAwdjcuNTVhMy41IDMuNSAwIDEgMS01IDBWMi41ek0zLjUgMUExLjUgMS41IDAgMCAwIDIgMi41djcuOTg3bC0uMTY3LjE1YTIuNSAyLjUgMCAxIDAgMy4zMzMgMEw1IDEwLjQ4NlYyLjVBMS41IDEuNSAwIDAgMCAzLjUgMXptNSAxYS41LjUgMCAwIDEgLjUuNXYxLjI5M2wuNjQ2LS42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw5IDUuMjA3djEuOTI3bDEuNjY5LS45NjMuNDk1LTEuODVhLjUuNSAwIDEgMSAuOTY2LjI2bC0uMjM3Ljg4MiAxLjEyLS42NDZhLjUuNSAwIDAgMSAuNS44NjZsLTEuMTIuNjQ2Ljg4NC4yMzdhLjUuNSAwIDEgMS0uMjYuOTY2bC0xLjg0OC0uNDk1TDkuNSA4bDEuNjY5Ljk2MyAxLjg0OS0uNDk1YS41LjUgMCAxIDEgLjI1OC45NjZsLS44ODMuMjM3IDEuMTIuNjQ2YS41LjUgMCAwIDEtLjUuODY2bC0xLjEyLS42NDYuMjM3Ljg4M2EuNS41IDAgMSAxLS45NjYuMjU4TDEwLjY3IDkuODMgOSA4Ljg2NnYxLjkyN2wxLjM1NCAxLjM1M2EuNS41IDAgMCAxLS43MDguNzA4TDkgMTIuMjA3VjEzLjVhLjUuNSAwIDAgMS0xIDB2LTExYS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGhlcm1vbWV0ZXJTdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxMi41YTEuNSAxLjUgMCAxIDEtMi0xLjQxNVYyLjVhLjUuNSAwIDAgMSAxIDB2OC41ODVBMS41IDEuNSAwIDAgMSA1IDEyLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyLjVhMi41IDIuNSAwIDAgMSA1IDB2Ny41NWEzLjUgMy41IDAgMSAxLTUgMFYyLjV6TTMuNSAxQTEuNSAxLjUgMCAwIDAgMiAyLjV2Ny45ODdsLS4xNjcuMTVhMi41IDIuNSAwIDEgMCAzLjMzMyAwTDUgMTAuNDg2VjIuNUExLjUgMS41IDAgMCAwIDMuNSAxem01IDFhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFhLjUuNSAwIDAgMSAuNS0uNXptNC4yNDMgMS43NTdhLjUuNSAwIDAgMSAwIC43MDdsLS43MDcuNzA4YS41LjUgMCAxIDEtLjcwOC0uNzA4bC43MDgtLjcwN2EuNS41IDAgMCAxIC43MDcgMHpNOCA1LjVhLjUuNSAwIDAgMSAuNS0uNSAzIDMgMCAxIDEgMCA2IC41LjUgMCAwIDEgMC0xIDIgMiAwIDAgMCAwLTQgLjUuNSAwIDAgMS0uNS0uNXpNMTIuNSA4YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMSAxIDAgMWgtMWEuNS41IDAgMCAxLS41LS41em0tMS4xNzIgMi44MjhhLjUuNSAwIDAgMSAuNzA4IDBsLjcwNy43MDhhLjUuNSAwIDAgMS0uNzA3LjcwN2wtLjcwOC0uNzA3YS41LjUgMCAwIDEgMC0uNzA4ek04LjUgMTJhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0xIDB2LTFhLjUuNSAwIDAgMSAuNS0uNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUaGVybW9tZXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE0YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMGEyLjUgMi41IDAgMCAwLTIuNSAyLjV2Ny41NWEzLjUgMy41IDAgMSAwIDUgMFYyLjVBMi41IDIuNSAwIDAgMCA4IDB6TTYuNSAyLjVhMS41IDEuNSAwIDEgMSAzIDB2Ny45ODdsLjE2Ny4xNWEyLjUgMi41IDAgMSAxLTMuMzMzIDBsLjE2Ni0uMTVWMi41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RocmVlRG90c1ZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxM2ExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptMC01YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwem0wLTVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVGhyZWVEb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOS41YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzem01IDBhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTUgMGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUb2dnbGVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNGE0IDQgMCAwIDEgMCA4SDhhNC45OTIgNC45OTIgMCAwIDAgMi00IDQuOTkyIDQuOTkyIDAgMCAwLTItNGgzem0tNiA4YTQgNCAwIDEgMSAwLTggNCA0IDAgMCAxIDAgOHpNMCA4YTUgNSAwIDAgMCA1IDVoNmE1IDUgMCAwIDAgMC0xMEg1YTUgNSAwIDAgMC01IDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVG9nZ2xlT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzYTUgNSAwIDAgMCAwIDEwaDZhNSA1IDAgMCAwIDAtMTBINXptNiA5YTQgNCAwIDEgMSAwLTggNCA0IDAgMCAxIDAgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUb2dnbGUyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTFjLjYyOC0uODM2IDEtMS44NzQgMS0zYTQuOTc4IDQuOTc4IDAgMCAwLTEtM2g0YTMgMyAwIDEgMSAwIDZIOXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEyYTQgNCAwIDEgMSAwLTggNCA0IDAgMCAxIDAgOHptMCAxQTUgNSAwIDEgMCA1IDNhNSA1IDAgMCAwIDAgMTB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVG9nZ2xlMk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNUgzYTMgMyAwIDAgMCAwIDZoNGE0Ljk5NSA0Ljk5NSAwIDAgMS0uNTg0LTFIM2EyIDIgMCAxIDEgMC00aDMuNDE2Yy4xNTYtLjM1Ny4zNTItLjY5Mi41ODQtMXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTUgNSAwIDEgMSA2IDhhNSA1IDAgMCAxIDEwIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVG9nZ2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjUgOWEzLjUgMy41IDAgMSAwIDAgN2g3YTMuNSAzLjUgMCAxIDAgMC03aC03em03IDZhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6bS03LTE0YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01em0yLjQ1IDBBMy40OSAzLjQ5IDAgMCAxIDggMy41IDMuNDkgMy40OSAwIDAgMSA2Ljk1IDZoNC41NWEyLjUgMi41IDAgMCAwIDAtNUg2Ljk1ek00LjUgMGg3YTMuNSAzLjUgMCAxIDEgMCA3aC03YTMuNSAzLjUgMCAxIDEgMC03elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RvZ2dsZXMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNDY1IDEwSDEyYTIgMiAwIDEgMSAwIDRIOS40NjVjLjM0LS41ODguNTM1LTEuMjcxLjUzNS0yIDAtLjcyOS0uMTk1LTEuNDEyLS41MzUtMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE1YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptMCAxYTQgNCAwIDEgMSAwLTggNCA0IDAgMCAxIDAgOHptLjUzNS0xMGEzLjk3NSAzLjk3NSAwIDAgMS0uNDA5LTFINGExIDEgMCAwIDEgMC0yaDIuMTI2Yy4wOTEtLjM1NS4yMy0uNjkuNDEtMUg0YTIgMiAwIDEgMCAwIDRoMi41MzV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNGE0IDQgMCAxIDEtOCAwIDQgNCAwIDAgMSA4IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVG9vbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAwIDAgMWwyLjIgMy4wODFhMSAxIDAgMCAwIC44MTUuNDE5aC4wN2ExIDEgMCAwIDEgLjcwOC4yOTNsMi42NzUgMi42NzUtMi42MTcgMi42NTRBMy4wMDMgMy4wMDMgMCAwIDAgMCAxM2EzIDMgMCAxIDAgNS44NzgtLjg1MWwyLjY1NC0yLjYxNy45NjguOTY4LS4zMDUuOTE0YTEgMSAwIDAgMCAuMjQyIDEuMDIzbDMuMzU2IDMuMzU2YTEgMSAwIDAgMCAxLjQxNCAwbDEuNTg2LTEuNTg2YTEgMSAwIDAgMCAwLTEuNDE0bC0zLjM1Ni0zLjM1NmExIDEgMCAwIDAtMS4wMjMtLjI0MkwxMC41IDkuNWwtLjk2LS45NiAyLjY4LTIuNjQzQTMuMDA1IDMuMDA1IDAgMCAwIDE2IDNjMC0uMjY5LS4wMzUtLjUzLS4xMDItLjc3N2wtMi4xNCAyLjE0MUwxMiA0bC0uMzY0LTEuNzU3TDEzLjc3Ny4xMDJhMyAzIDAgMCAwLTMuNjc1IDMuNjhMNy40NjIgNi40NiA0Ljc5MyAzLjc5M2ExIDEgMCAwIDEtLjI5My0uNzA3di0uMDcxYTEgMSAwIDAgMC0uNDE5LS44MTRMMSAwem05LjY0NiAxMC42NDZhLjUuNSAwIDAgMSAuNzA4IDBsMyAzYS41LjUgMCAwIDEtLjcwOC43MDhsLTMtM2EuNS41IDAgMCAxIDAtLjcwOHpNMyAxMWwuNDcxLjI0Mi41MjkuMDI2LjI4Ny40NDUuNDQ1LjI4Ny4wMjYuNTI5TDUgMTNsLS4yNDIuNDcxLS4wMjYuNTI5LS40NDUuMjg3LS4yODcuNDQ1LS41MjkuMDI2TDMgMTVsLS40NzEtLjI0MkwyIDE0LjczMmwtLjI4Ny0uNDQ1TDEuMjY4IDE0bC0uMDI2LS41MjlMMSAxM2wuMjQyLS40NzEuMDI2LS41MjkuNDQ1LS4yODcuMjg3LS40NDUuNTI5LS4wMjZMMyAxMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUb3JuYWRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMTI1IDIuNDVBLjg5Mi44OTIgMCAwIDEgMSAyYzAtLjI2LjExNi0uNDc0LjI1OC0uNjM0YTEuOSAxLjkgMCAwIDEgLjUxMy0uMzg5Yy4zODctLjIxLjkxMy0uMzg1IDEuNTItLjUyNUM0LjUxNC4xNyA2LjE4IDAgOCAwYzEuODIxIDAgMy40ODYuMTcgNC43MDkuNDUyLjYwNy4xNCAxLjEzMy4zMTQgMS41Mi41MjUuMTkzLjEwNi4zNzQuMjMzLjUxMy4zODkuMTQxLjE2LjI1OC4zNzQuMjU4LjYzNCAwIDEuMDExLS4zNSAxLjYxMi0uNjM0IDIuMTAyLS4wNC4wNy0uMDguMTM3LS4xMTYuMjAzYTIuNTUgMi41NSAwIDAgMC0uMzEzLjgwOSAyLjkzOCAyLjkzOCAwIDAgMC0uMDExLjg5MS41LjUgMCAwIDEgLjQyOC44NDljLS4wNi4wNi0uMTMzLjEyNi0uMjE1LjE5NS4yMDQgMS4xMTYuMDg4IDEuOTktLjMgMi43MTEtLjQ1My44NC0xLjIzMSAxLjM4My0yLjAyIDEuODU2LS4yMDQuMTIzLS40MTIuMjQzLS42Mi4zNjQtMS40NDQuODMyLTIuOTI4IDEuNjg5LTMuNzM1IDMuNzA2YS41LjUgMCAwIDEtLjc0OC4yMjZsLS4wMDEtLjAwMS0uMDAyLS4wMDEtLjAwNC0uMDAzLS4wMS0uMDA4YTIuMTQyIDIuMTQyIDAgMCAxLS4xNDctLjExNSA0LjA5NSA0LjA5NSAwIDAgMS0xLjE3OS0xLjY1NiAzLjc4NiAzLjc4NiAwIDAgMS0uMjQ3LTEuMjk2QS40OTguNDk4IDAgMCAxIDUgMTIuNXYtLjAxOGEuNjIuNjIgMCAwIDEgLjAwOC0uMDc5LjcyOC43MjggMCAwIDEgLjE4OC0uMzg2Yy4wOS0uNDg5LjI3Mi0xLjAxNC41NzMtMS41NzRhLjUuNSAwIDAgMSAuMDczLS45MTggMy4yOSAzLjI5IDAgMCAxIC42MTctLjE0NGwuMTUtLjE5M2MuMjg1LS4zNTYuNDA0LS42MzkuNDM3LS44NjFhLjk0OC45NDggMCAwIDAtLjEyMi0uNjE5Yy0uMjQ5LS40NTUtLjgxNS0uOTAzLTEuNjEzLTEuNDMtLjE5My0uMTI3LS4zOTgtLjI1OC0uNjA5LS4zOTRsLS4xMTktLjA3NmExMi4zMDcgMTIuMzA3IDAgMCAxLTEuMjQxLS4zMzQuNS41IDAgMCAxLS4yODUtLjcwN2wtLjIzLS4xOEMyLjExNyA0LjAxIDEuNDYzIDMuMzIgMS4xMjUgMi40NXptMS45NzMgMS4wNTFjLjExMy4xMDQuMjMzLjIwNy4zNTguMzA4LjQ3Mi4zODEuOTkuNzIyIDEuNTE1IDEuMDYgMS41NC4zMTcgMy42MzIuNSA1LjQzLjE0YS41LjUgMCAwIDEgLjE5Ny45ODFjLTEuMjE2LjI0NC0yLjUzNy4yNi0zLjc1OS4xNTcuMzk5LjMyNi43NDQuNjgyLjk2MyAxLjA4MS4yMDMuMzczLjMwMi43OS4yMzMgMS4yNDctLjA1LjMzLS4xODIuNjU3LS4zOS45ODUuMDc1LjAxNy4xNDguMDM1LjIyLjA1M2wuMDA2LjAwMmMuNDgxLjEyLjg2My4yMTMgMS40Ny4wMWEuNS41IDAgMSAxIC4zMTcuOTVjLS44ODguMjk1LTEuNTA1LjE0MS0yLjAyMy4wMTJsLS4wMDYtLjAwMmEzLjg5NCAzLjg5NCAwIDAgMC0uNjQ0LS4xMjNjLS4zNy41NS0uNTk4IDEuMDUtLjcyNiAxLjQ5Ny4xNDIuMDQ1LjI5Ni4xMS40NjUuMTk0YS41LjUgMCAxIDEtLjQ0OC44OTQgMy4xMSAzLjExIDAgMCAwLS4xNDgtLjA3Yy4wMTIuMzQ1LjA4NC42NDMuMTguODk1LjE0LjM2OS4zNDIuNjY2LjUyOC44ODYuOTkyLTEuOTAzIDIuNTgzLTIuODE0IDMuODg1LTMuNTYuMjAzLS4xMTYuMzk5LS4yMjguNTg0LS4zNC43NzUtLjQ2NCAxLjM0LS44OSAxLjY1My0xLjQ3Mi4yMTItLjM5My4zMy0uOS4yNi0xLjYxN0E2Ljc0IDYuNzQgMCAwIDEgMTAgOC41YS41LjUgMCAwIDEgMC0xIDUuNzYgNS43NiAwIDAgMCAzLjAxNy0uODcyLjUxNS41MTUgMCAwIDEtLjAwNy0uMDNjLS4xMzUtLjY3My0uMTQtMS4yMDctLjA1Ni0xLjY2NS4wODQtLjQ2LjI1My0uODEuNDIxLTEuMTEzbC4xMzEtLjIzYy4wNjUtLjExMi4xMjYtLjIyLjE4Mi0uMzI3LS4yOS4xMDctLjYyLjIwMi0uOTguMjg1QzExLjQ4NyAzLjgzIDkuODIyIDQgOCA0Yy0xLjgyMSAwLTMuNDg2LS4xNy00LjcwOS0uNDUyLS4wNjUtLjAxNS0uMTMtLjAzLS4xOTMtLjA0N3pNMTMuOTY0IDJhMS4xMiAxLjEyIDAgMCAwLS4yMTQtLjE0NWMtLjI3Mi0uMTQ4LS42OTctLjI5Ny0xLjI2Ni0uNDI4QzExLjM1NCAxLjE2NiA5Ljc2OSAxIDggMWMtMS43NjkgMC0zLjM1NC4xNjYtNC40ODQuNDI3LS41NjkuMTMtLjk5NC4yOC0xLjI2Ni40MjhBMS4xMiAxLjEyIDAgMCAwIDIuMDM2IDJjLjA0LjAzOC4xMDkuMDg3LjIxNC4xNDUuMjcyLjE0OC42OTcuMjk3IDEuMjY2LjQyOEM0LjY0NiAyLjgzNCA2LjIzMSAzIDggM2MxLjc2OSAwIDMuMzU0LS4xNjYgNC40ODQtLjQyNy41NjktLjEzLjk5NC0uMjggMS4yNjYtLjQyOEExLjEyIDEuMTIgMCAwIDAgMTMuOTY0IDJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJhbnNsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTQ1IDYuNzE0IDQuMTEgOEgzbDEuODYyLTVoMS4yODRMOCA4SDYuODMzbC0uNDM1LTEuMjg2SDQuNTQ1em0xLjYzNC0uNzM2TDUuNSAzLjk1NmgtLjA0OWwtLjY3OSAyLjAyMkg2LjE4elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMmEyIDIgMCAwIDEgMi0yaDdhMiAyIDAgMCAxIDIgMnYzaDNhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0ydi0zSDJhMiAyIDAgMCAxLTItMlYyem0yLTFhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoN2ExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUgyem03LjEzOCA5Ljk5NWMuMTkzLjMwMS40MDIuNTgzLjYzLjg0Ni0uNzQ4LjU3NS0xLjY3MyAxLjAwMS0yLjc2OCAxLjI5Mi4xNzguMjE3LjQ1MS42MzUuNTU1Ljg2NyAxLjEyNS0uMzU5IDIuMDgtLjg0NCAyLjg4Ni0xLjQ5NC43NzcuNjY1IDEuNzM5IDEuMTY1IDIuOTMgMS40NzIuMTMzLS4yNTQuNDE0LS42NzMuNjI5LS44OS0xLjEyNS0uMjUzLTIuMDU3LS42OTQtMi44Mi0xLjI4NC42ODEtLjc0NyAxLjIyMi0xLjY1MSAxLjYyMS0yLjc1N0gxNFY4aC0zdjEuMDQ3aC43NjVjLS4zMTguODQ0LS43NCAxLjU0Ni0xLjI3MiAyLjEzYTYuMDY2IDYuMDY2IDAgMCAxLS40MTUtLjQ5MiAxLjk4OCAxLjk4OCAwIDAgMS0uOTQuMzF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJhc2hGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDAgMSAxSDN2OWEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMlY0aC41YTEgMSAwIDAgMCAxLTFWMmExIDEgMCAwIDAtMS0xSDEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxSDIuNXptMyA0YS41LjUgMCAwIDEgLjUuNXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgLjUtLjV6TTggNWEuNS41IDAgMCAxIC41LjV2N2EuNS41IDAgMCAxLTEgMHYtN0EuNS41IDAgMCAxIDggNXptMyAuNXY3YS41LjUgMCAwIDEtMSAwdi03YS41LjUgMCAwIDEgMSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSA1LjVBLjUuNSAwIDAgMSA2IDZ2NmEuNS41IDAgMCAxLTEgMFY2YS41LjUgMCAwIDEgLjUtLjV6bTIuNSAwYS41LjUgMCAwIDEgLjUuNXY2YS41LjUgMCAwIDEtMSAwVjZhLjUuNSAwIDAgMSAuNS0uNXptMyAuNWEuNS41IDAgMCAwLTEgMHY2YS41LjUgMCAwIDAgMSAwVjZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0LjUgM2ExIDEgMCAwIDEtMSAxSDEzdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNGgtLjVhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFINmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMWgzLjVhMSAxIDAgMCAxIDEgMXYxek00LjExOCA0IDQgNC4wNTlWMTNhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWNC4wNTlMMTEuODgyIDRINC4xMTh6TTIuNSAzVjJoMTF2MWgtMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJhc2gyRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjAzNyAzLjIyNUEuNzAzLjcwMyAwIDAgMSAyIDNjMC0xLjEwNSAyLjY4Ni0yIDYtMnM2IC44OTUgNiAyYS43MDIuNzAyIDAgMCAxLS4wMzcuMjI1bC0xLjY4NCAxMC4xMDRBMiAyIDAgMCAxIDEwLjMwNSAxNUg1LjY5NGEyIDIgMCAwIDEtMS45NzMtMS42NzFMMi4wMzcgMy4yMjV6bTkuODktLjY5QzEwLjk2NiAyLjIxNCA5LjU3OCAyIDggMmMtMS41OCAwLTIuOTY4LjIxNS0zLjkyNi41MzQtLjQ3Ny4xNi0uNzk1LjMyNy0uOTc1LjQ2Ni4xOC4xNC40OTguMzA3Ljk3NS40NjZDNS4wMzIgMy43ODYgNi40MiA0IDggNHMyLjk2Ny0uMjE1IDMuOTI2LS41MzRjLjQ3Ny0uMTYuNzk1LS4zMjcuOTc1LS40NjYtLjE4LS4xNC0uNDk4LS4zMDctLjk3NS0uNDY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RyYXNoMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAzYS43MDIuNzAyIDAgMCAxLS4wMzcuMjI1bC0xLjY4NCAxMC4xMDRBMiAyIDAgMCAxIDEwLjMwNSAxNUg1LjY5NGEyIDIgMCAwIDEtMS45NzMtMS42NzFMMi4wMzcgMy4yMjVBLjcwMy43MDMgMCAwIDEgMiAzYzAtMS4xMDUgMi42ODYtMiA2LTJzNiAuODk1IDYgMnpNMy4yMTUgNC4yMDdsMS40OTMgOC45NTdhMSAxIDAgMCAwIC45ODYuODM2aDQuNjEyYTEgMSAwIDAgMCAuOTg2LS44MzZsMS40OTMtOC45NTdDMTEuNjkgNC42ODkgOS45NTQgNSA4IDVjLTEuOTU0IDAtMy42OS0uMzExLTQuNzg1LS43OTN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJlZUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40MTYuMjIzYS41LjUgMCAwIDAtLjgzMiAwbC0zIDQuNUEuNS41IDAgMCAwIDUgNS41aC4wOThMMy4wNzYgOC43MzVBLjUuNSAwIDAgMCAzLjUgOS41aC4xOTFsLTEuNjM4IDMuMjc2YS41LjUgMCAwIDAgLjQ0Ny43MjRIN1YxNmgydi0yLjVoNC41YS41LjUgMCAwIDAgLjQ0Ny0uNzI0TDEyLjMxIDkuNWguMTkxYS41LjUgMCAwIDAgLjQyNC0uNzY1TDEwLjkwMiA1LjVIMTFhLjUuNSAwIDAgMCAuNDE2LS43NzdsLTMtNC41elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40MTYuMjIzYS41LjUgMCAwIDAtLjgzMiAwbC0zIDQuNUEuNS41IDAgMCAwIDUgNS41aC4wOThMMy4wNzYgOC43MzVBLjUuNSAwIDAgMCAzLjUgOS41aC4xOTFsLTEuNjM4IDMuMjc2YS41LjUgMCAwIDAgLjQ0Ny43MjRIN1YxNmgydi0yLjVoNC41YS41LjUgMCAwIDAgLjQ0Ny0uNzI0TDEyLjMxIDkuNWguMTkxYS41LjUgMCAwIDAgLjQyNC0uNzY1TDEwLjkwMiA1LjVIMTFhLjUuNSAwIDAgMCAuNDE2LS43NzdsLTMtNC41ek02LjQzNyA0Ljc1OEEuNS41IDAgMCAwIDYgNC41aC0uMDY2TDggMS40MDEgMTAuMDY2IDQuNUgxMGEuNS41IDAgMCAwLS40MjQuNzY1TDExLjU5OCA4LjVIMTEuNWEuNS41IDAgMCAwLS40NDcuNzI0TDEyLjY5IDEyLjVIMy4zMDlsMS42MzgtMy4yNzZBLjUuNSAwIDAgMCA0LjUgOC41aC0uMDk4bDIuMDIyLTMuMjM1YS41LjUgMCAwIDAgLjAxMy0uNTA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RyaWFuZ2xlRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy4wMjIgMS41NjZhMS4xMyAxLjEzIDAgMCAxIDEuOTYgMGw2Ljg1NyAxMS42NjdjLjQ1Ny43NzgtLjA5MiAxLjc2Ny0uOTggMS43NjdIMS4xNDRjLS44ODkgMC0xLjQzNy0uOTktLjk4LTEuNzY3TDcuMDIyIDEuNTY2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RyaWFuZ2xlSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjA2NSAyLjAxNkEuMTMuMTMgMCAwIDAgOC4wMDIgMnYxMS45ODNsNi44NTYuMDE3YS4xMi4xMiAwIDAgMCAuMDY2LS4wMTcuMTYyLjE2MiAwIDAgMCAuMDU0LS4wNi4xNzYuMTc2IDAgMCAwLS4wMDItLjE4M0w4LjEyIDIuMDczYS4xNDYuMTQ2IDAgMCAwLS4wNTQtLjA1N3ptLTEuMDQzLS40NWExLjEzIDEuMTMgMCAwIDEgMS45NiAwbDYuODU2IDExLjY2N2MuNDU4Ljc3OC0uMDkxIDEuNzY3LS45OCAxLjc2N0gxLjE0NmMtLjg4OSAwLTEuNDM3LS45OS0uOTgtMS43NjdMNy4wMjIgMS41NjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJpYW5nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy45MzggMi4wMTZBLjEzLjEzIDAgMCAxIDguMDAyIDJhLjEzLjEzIDAgMCAxIC4wNjMuMDE2LjE0Ni4xNDYgMCAwIDEgLjA1NC4wNTdsNi44NTcgMTEuNjY3Yy4wMzYuMDYuMDM1LjEyNC4wMDIuMTgzYS4xNjMuMTYzIDAgMCAxLS4wNTQuMDYuMTE2LjExNiAwIDAgMS0uMDY2LjAxN0gxLjE0NmEuMTE1LjExNSAwIDAgMS0uMDY2LS4wMTcuMTYzLjE2MyAwIDAgMS0uMDU0LS4wNi4xNzYuMTc2IDAgMCAxIC4wMDItLjE4M0w3Ljg4NCAyLjA3M2EuMTQ3LjE0NyAwIDAgMSAuMDU0LS4wNTd6bTEuMDQ0LS40NWExLjEzIDEuMTMgMCAwIDAtMS45NiAwTC4xNjUgMTMuMjMzYy0uNDU3Ljc3OC4wOTEgMS43NjcuOTggMS43NjdoMTMuNzEzYy44ODkgMCAxLjQzOC0uOTkuOTgtMS43NjdMOC45ODIgMS41NjZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJvcGh5RmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUuNUEuNS41IDAgMCAxIDMgMGgxMGEuNS41IDAgMCAxIC41LjVjMCAuNTM4LS4wMTIgMS4wNS0uMDM0IDEuNTM2YTMgMyAwIDEgMS0xLjEzMyA1Ljg5Yy0uNzkgMS44NjUtMS44NzggMi43NzctMi44MzMgMy4wMTF2Mi4xNzNsMS40MjUuMzU2Yy4xOTQuMDQ4LjM3Ny4xMzUuNTM3LjI1NUwxMy4zIDE1LjFhLjUuNSAwIDAgMS0uMy45SDNhLjUuNSAwIDAgMS0uMy0uOWwxLjgzOC0xLjM3OWMuMTYtLjEyLjM0My0uMjA3LjUzNy0uMjU1TDYuNSAxMy4xMXYtMi4xNzNjLS45NTUtLjIzNC0yLjA0My0xLjE0Ni0yLjgzMy0zLjAxMmEzIDMgMCAxIDEtMS4xMzItNS44OUEzMy4wNzYgMzMuMDc2IDAgMCAxIDIuNS41em0uMDk5IDIuNTRhMiAyIDAgMCAwIC43MiAzLjkzNWMtLjMzMy0xLjA1LS41ODgtMi4zNDYtLjcyLTMuOTM1em0xMC4wODMgMy45MzVhMiAyIDAgMCAwIC43Mi0zLjkzNWMtLjEzMyAxLjU5LS4zODggMi44ODUtLjcyIDMuOTM1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1Ryb3BoeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUuNUEuNS41IDAgMCAxIDMgMGgxMGEuNS41IDAgMCAxIC41LjVjMCAuNTM4LS4wMTIgMS4wNS0uMDM0IDEuNTM2YTMgMyAwIDEgMS0xLjEzMyA1Ljg5Yy0uNzkgMS44NjUtMS44NzggMi43NzctMi44MzMgMy4wMTF2Mi4xNzNsMS40MjUuMzU2Yy4xOTQuMDQ4LjM3Ny4xMzUuNTM3LjI1NUwxMy4zIDE1LjFhLjUuNSAwIDAgMS0uMy45SDNhLjUuNSAwIDAgMS0uMy0uOWwxLjgzOC0xLjM3OWMuMTYtLjEyLjM0My0uMjA3LjUzNy0uMjU1TDYuNSAxMy4xMXYtMi4xNzNjLS45NTUtLjIzNC0yLjA0My0xLjE0Ni0yLjgzMy0zLjAxMmEzIDMgMCAxIDEtMS4xMzItNS44OUEzMy4wNzYgMzMuMDc2IDAgMCAxIDIuNS41em0uMDk5IDIuNTRhMiAyIDAgMCAwIC43MiAzLjkzNWMtLjMzMy0xLjA1LS41ODgtMi4zNDYtLjcyLTMuOTM1em0xMC4wODMgMy45MzVhMiAyIDAgMCAwIC43Mi0zLjkzNWMtLjEzMyAxLjU5LS4zODggMi44ODUtLjcyIDMuOTM1ek0zLjUwNCAxYy4wMDcuNTE3LjAyNiAxLjAwNi4wNTYgMS40NjkuMTMgMi4wMjguNDU3IDMuNTQ2Ljg3IDQuNjY3QzUuMjk0IDkuNDggNi40ODQgMTAgNyAxMGEuNS41IDAgMCAxIC41LjV2Mi42MWExIDEgMCAwIDEtLjc1Ny45N2wtMS40MjYuMzU2YS41LjUgMCAwIDAtLjE3OS4wODVMNC41IDE1aDdsLS42MzgtLjQ3OWEuNTAxLjUwMSAwIDAgMC0uMTgtLjA4NWwtMS40MjUtLjM1NmExIDEgMCAwIDEtLjc1Ny0uOTdWMTAuNUEuNS41IDAgMCAxIDkgMTBjLjUxNiAwIDEuNzA2LS41MiAyLjU3LTIuODY0LjQxMy0xLjEyLjc0LTIuNjQuODctNC42NjcuMDMtLjQ2My4wNDktLjk1Mi4wNTYtMS40NjlIMy41MDR6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHJvcGljYWxTdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDkuNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDJjLS45IDAtMS43NS4yMTYtMi41MDEuNkE1IDUgMCAwIDEgMTMgNy41YTYuNSA2LjUgMCAxIDEtMTMgMCAuNS41IDAgMCAxIDEgMCA1LjUgNS41IDAgMCAwIDguMDAxIDQuOUE1IDUgMCAwIDEgMyA3LjVhNi41IDYuNSAwIDAgMSAxMyAwIC41LjUgMCAwIDEtMSAwQTUuNSA1LjUgMCAwIDAgOS41IDJ6TTggMy41YTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUcnVja0ZsYXRiZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA0YS41LjUgMCAwIDEgLjUuNVY1aDEuMDJhMS41IDEuNSAwIDAgMSAxLjE3LjU2M2wxLjQ4MSAxLjg1YTEuNSAxLjUgMCAwIDEgLjMyOS45MzhWMTAuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVIMTRhMiAyIDAgMSAxLTQgMEg1YTIgMiAwIDEgMS00IDAgMSAxIDAgMCAxLTEtMXYtMWgxMVY0LjVhLjUuNSAwIDAgMSAuNS0uNXpNMyAxMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTkgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTEuNzMyIDBoLjc2OGEuNS41IDAgMCAwIC41LS41VjguMzVhLjUuNSAwIDAgMC0uMTEtLjMxMmwtMS40OC0xLjg1QS41LjUgMCAwIDAgMTMuMDIgNkgxMnY0YTIgMiAwIDAgMSAxLjczMiAxelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1RydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMy41QTEuNSAxLjUgMCAwIDEgMS41IDJoOUExLjUgMS41IDAgMCAxIDEyIDMuNVY1aDEuMDJhMS41IDEuNSAwIDAgMSAxLjE3LjU2M2wxLjQ4MSAxLjg1YTEuNSAxLjUgMCAwIDEgLjMyOS45MzhWMTAuNWExLjUgMS41IDAgMCAxLTEuNSAxLjVIMTRhMiAyIDAgMSAxLTQgMEg1YTIgMiAwIDEgMS0zLjk5OC0uMDg1QTEuNSAxLjUgMCAwIDEgMCAxMC41di03em0xLjI5NCA3LjQ1NkExLjk5OSAxLjk5OSAwIDAgMSA0LjczMiAxMWg1LjUzNmEyLjAxIDIuMDEgMCAwIDEgLjczMi0uNzMyVjMuNWEuNS41IDAgMCAwLS41LS41aC05YS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAwIDAgLjI5NC40NTZ6TTEyIDEwYTIgMiAwIDAgMSAxLjczMiAxaC43NjhhLjUuNSAwIDAgMCAuNS0uNVY4LjM1YS41LjUgMCAwIDAtLjExLS4zMTJsLTEuNDgtMS44NUEuNS41IDAgMCAwIDEzLjAyIDZIMTJ2NHptLTkgMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTkgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHN1bmFtaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMDM2IDEyLjMxNGEuNS41IDAgMCAxIC42NS0uMjc4bDEuNzU3LjcwM2ExLjUgMS41IDAgMCAwIDEuMTE0IDBsMS4wMTQtLjQwNmEyLjUgMi41IDAgMCAxIDEuODU3IDBsMS4wMTUuNDA2YTEuNSAxLjUgMCAwIDAgMS4xMTQgMGwxLjAxNC0uNDA2YTIuNSAyLjUgMCAwIDEgMS44NTcgMGwxLjAxNS40MDZhMS41IDEuNSAwIDAgMCAxLjExNCAwbDEuNzU3LS43MDNhLjUuNSAwIDEgMSAuMzcyLjkyOGwtMS43NTguNzAzYTIuNSAyLjUgMCAwIDEtMS44NTcgMGwtMS4wMTQtLjQwNmExLjUgMS41IDAgMCAwLTEuMTE0IDBsLTEuMDE1LjQwNmEyLjUgMi41IDAgMCAxLTEuODU3IDBsLTEuMDE0LS40MDZhMS41IDEuNSAwIDAgMC0xLjExNCAwbC0xLjAxNS40MDZhMi41IDIuNSAwIDAgMS0xLjg1NyAwbC0xLjc1Ny0uNzAzYS41LjUgMCAwIDEtLjI3OC0uNjV6bTAgMmEuNS41IDAgMCAxIC42NS0uMjc4bDEuNzU3LjcwM2ExLjUgMS41IDAgMCAwIDEuMTE0IDBsMS4wMTQtLjQwNmEyLjUgMi41IDAgMCAxIDEuODU3IDBsMS4wMTUuNDA2YTEuNSAxLjUgMCAwIDAgMS4xMTQgMGwxLjAxNC0uNDA2YTIuNSAyLjUgMCAwIDEgMS44NTcgMGwxLjAxNS40MDZhMS41IDEuNSAwIDAgMCAxLjExNCAwbDEuNzU3LS43MDNhLjUuNSAwIDEgMSAuMzcyLjkyOGwtMS43NTguNzAzYTIuNSAyLjUgMCAwIDEtMS44NTcgMGwtMS4wMTQtLjQwNmExLjUgMS41IDAgMCAwLTEuMTE0IDBsLTEuMDE1LjQwNmEyLjUgMi41IDAgMCAxLTEuODU3IDBsLTEuMDE0LS40MDZhMS41IDEuNSAwIDAgMC0xLjExNCAwbC0xLjAxNS40MDZhMi41IDIuNSAwIDAgMS0xLjg1NyAwbC0xLjc1Ny0uNzAzYS41LjUgMCAwIDEtLjI3OC0uNjV6TTIuNjYyIDguMDhjLS40NTYgMS4wNjMtLjk5NCAyLjA5OC0xLjg0MiAyLjgwNGEuNS41IDAgMCAxLS42NC0uNzY4Yy42NTItLjU0NCAxLjExNC0xLjM4NCAxLjU2NC0yLjQzLjE0LS4zMjguMjgxLS42OC40MjctMS4wNDQuMzAyLS43NTQuNjI0LTEuNTU5IDEuMDEtMi4zMDhDMy43NjMgMy4yIDQuNTI4IDIuMTA1IDUuNyAxLjI5OSA2Ljg3Ny40OSA4LjQxOCAwIDEwLjUgMGMxLjQ2MyAwIDIuNTExLjQgMy4xNzkgMS4wNTguNjcuNjYuODkzIDEuNTE4LjgxOSAyLjMwMi0uMDc0Ljc3MS0uNDQxIDEuNTE2LTEuMDIgMS45NjVhMS44NzggMS44NzggMCAwIDEtMS45MDQuMjdjLS42NS42NDItLjkwNyAxLjY3OS0uNzEgMi42MTRDMTEuMDc2IDkuMjE1IDExLjc4NCAxMCAxMyAxMGgyLjVhLjUuNSAwIDAgMSAwIDFIMTNjLTEuNzg0IDAtMi44MjYtMS4yMTUtMy4xMTQtMi41ODUtLjIzMi0xLjEuMDA1LTIuMzczLjc1OC0zLjI4NEwxMC41IDUuMDZsLS43NzcuMzg4YS41LjUgMCAwIDEtLjQ0NyAwbC0xLS41YS41LjUgMCAwIDEgLjQ0Ny0uODk0bC43NzcuMzg4Ljc3Ni0uMzg4YS41LjUgMCAwIDEgLjQ0NyAwbDEgLjVhLjQ5My40OTMgMCAwIDEgLjAzNC4wMThjLjQ0LjI2NC44MS4xOTUgMS4xMDgtLjAzNi4zMjgtLjI1NS41ODYtLjcyOS42MzctMS4yNy4wNS0uNTI5LS4xLTEuMDc2LS41MjUtMS40OTUtLjQyNi0uNDItMS4xOS0uNzctMi40NzctLjc3LTEuOTE4IDAtMy4yNTIuNDQ4LTQuMjMyIDEuMTIzQzUuMjgzIDIuOCA0LjYxIDMuNzM4IDQuMDcgNC43OWMtLjM2NS43MS0uNjU1IDEuNDMzLS45NDUgMi4xNi0uMTUuMzc2LS4zMDEuNzUzLS40NjMgMS4xM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUdkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDEzLjVBLjUuNSAwIDAgMSAzIDEzaDEwYS41LjUgMCAwIDEgMCAxSDNhLjUuNSAwIDAgMS0uNS0uNXpNMiAyaDEyczIgMCAyIDJ2NnMwIDItMiAySDJzLTIgMC0yLTJWNHMwLTIgMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1R2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSAxMy41QS41LjUgMCAwIDEgMyAxM2gxMGEuNS41IDAgMCAxIDAgMUgzYS41LjUgMCAwIDEtLjUtLjV6TTEzLjk5MSAzbC4wMjQuMDAxYTEuNDYgMS40NiAwIDAgMSAuNTM4LjE0My43NTcuNzU3IDAgMCAxIC4zMDIuMjU0Yy4wNjcuMS4xNDUuMjc3LjE0NS42MDJ2NS45OTFsLS4wMDEuMDI0YTEuNDY0IDEuNDY0IDAgMCAxLS4xNDMuNTM4Ljc1OC43NTggMCAwIDEtLjI1NC4zMDJjLS4xLjA2Ny0uMjc3LjE0NS0uNjAyLjE0NUgyLjAwOWwtLjAyNC0uMDAxYTEuNDY0IDEuNDY0IDAgMCAxLS41MzgtLjE0My43NTguNzU4IDAgMCAxLS4zMDItLjI1NEMxLjA3OCAxMC41MDIgMSAxMC4zMjUgMSAxMFY0LjAwOWwuMDAxLS4wMjRhMS40NiAxLjQ2IDAgMCAxIC4xNDMtLjUzOC43NTguNzU4IDAgMCAxIC4yNTQtLjMwMkMxLjQ5OCAzLjA3OCAxLjY3NSAzIDIgM2gxMS45OTF6TTE0IDJIMkMwIDIgMCA0IDAgNHY2YzAgMiAyIDIgMiAyaDEyYzIgMCAyLTIgMi0yVjRjMC0yLTItMi0yLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHdpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuODU3IDAgMSAyLjg1N3YxMC4yODZoMy40MjlWMTZsMi44NTctMi44NTdIOS41N0wxNC43MTQgOFYwSDMuODU3em05LjcxNCA3LjQyOS0yLjI4NSAyLjI4NUg5bC0yIDJ2LTJINC40MjlWMS4xNDNoOS4xNDJ2Ni4yODZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuODU3IDMuMTQzaC0xLjE0M1Y2LjU3aDEuMTQzVjMuMTQzem0tMy4xNDMgMEg3LjU3MVY2LjU3aDEuMTQzVjMuMTQzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1R3aXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4wMjYgMTVjNi4wMzggMCA5LjM0MS01LjAwMyA5LjM0MS05LjMzNCAwLS4xNCAwLS4yODItLjAwNi0uNDIyQTYuNjg1IDYuNjg1IDAgMCAwIDE2IDMuNTQyYTYuNjU4IDYuNjU4IDAgMCAxLTEuODg5LjUxOCAzLjMwMSAzLjMwMSAwIDAgMCAxLjQ0Ny0xLjgxNyA2LjUzMyA2LjUzMyAwIDAgMS0yLjA4Ny43OTNBMy4yODYgMy4yODYgMCAwIDAgNy44NzUgNi4wM2E5LjMyNSA5LjMyNSAwIDAgMS02Ljc2Ny0zLjQyOSAzLjI4OSAzLjI4OSAwIDAgMCAxLjAxOCA0LjM4MkEzLjMyMyAzLjMyMyAwIDAgMSAuNjQgNi41NzV2LjA0NWEzLjI4OCAzLjI4OCAwIDAgMCAyLjYzMiAzLjIxOCAzLjIwMyAzLjIwMyAwIDAgMS0uODY1LjExNSAzLjIzIDMuMjMgMCAwIDEtLjYxNC0uMDU3IDMuMjgzIDMuMjgzIDAgMCAwIDMuMDY3IDIuMjc3QTYuNTg4IDYuNTg4IDAgMCAxIC43OCAxMy41OGE2LjMyIDYuMzIgMCAwIDEtLjc4LS4wNDVBOS4zNDQgOS4zNDQgMCAwIDAgNS4wMjYgMTV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHlwZUJvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4yMSAxM2MyLjEwNiAwIDMuNDEyLTEuMDg3IDMuNDEyLTIuODIzIDAtMS4zMDYtLjk4NC0yLjI4My0yLjMyNC0yLjM4NnYtLjA1NWEyLjE3NiAyLjE3NiAwIDAgMCAxLjg1Mi0yLjE0YzAtMS41MS0xLjE2Mi0yLjQ2LTMuMDE0LTIuNDZIMy44NDNWMTNIOC4yMXpNNS45MDggNC42NzRoMS42OTZjLjk2MyAwIDEuNTE3LjQ1MSAxLjUxNyAxLjI0NCAwIC44MzQtLjYyOSAxLjMyLTEuNzMgMS4zMkg1LjkwOFY0LjY3M3ptMCA2Ljc4OFY4LjU5OGgxLjczYzEuMjE3IDAgMS44OC40OTIgMS44OCAxLjQxNSAwIC45NDMtLjY0MyAxLjQ0OS0xLjgzMiAxLjQ0OUg1LjkwN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUeXBlSDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC42MzcgMTNWMy42NjlINy4zNzlWNy42MkgyLjc1OFYzLjY3SDEuNVYxM2gxLjI1OFY4LjcyOGg0LjYyVjEzaDEuMjU5em01LjMyOSAwVjMuNjY5aC0xLjI0NEwxMC41IDUuMzE2djEuMjY1bDIuMTYtMS41NjVoLjA2MlYxM2gxLjI0NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUeXBlSDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy42MzggMTNWMy42NjlINi4zOFY3LjYySDEuNzU5VjMuNjdILjVWMTNoMS4yNThWOC43MjhoNC42MlYxM2gxLjI1OXptMy4wMjItNi43MzN2LS4wNDhjMC0uODg5LjYzLTEuNjY4IDEuNzE2LTEuNjY4Ljk1NyAwIDEuNjc1LjYwOCAxLjY3NSAxLjU3MiAwIC44NTUtLjU1NCAxLjUwNC0xLjA2NyAyLjA4NWwtMy41MTMgMy45OTlWMTNIMTUuNXYtMS4wOTRoLTQuMjQ1di0uMDc1bDIuNDgxLTIuODQ0Yy44NzUtLjk5OCAxLjU4Ni0xLjc4NCAxLjU4Ni0yLjk1MyAwLTEuNDYzLTEuMTU1LTIuNTU2LTIuOTE5LTIuNTU2LTEuOTQxIDAtMi45NjYgMS4zMjYtMi45NjYgMi43NHYuMDQ5aDEuMjIzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1R5cGVIMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjYzNyAxM1YzLjY2OUg2LjM3OVY3LjYySDEuNzU4VjMuNjdILjVWMTNoMS4yNThWOC43MjhoNC42MlYxM2gxLjI1OXptMy42MjUtNC4yNzJoMS4wMThjMS4xNDIgMCAxLjkzNS42NyAxLjk0OSAxLjY3NC4wMTMgMS4wMDUtLjc4IDEuNzM3LTIuMDEgMS43My0xLjA4LS4wMDctMS44NTMtLjU4OC0xLjkzNS0xLjMySDkuMTA4Yy4wNjkgMS4zMjcgMS4yMjQgMi4zODYgMy4wODMgMi4zODYgMS45MzUgMCAzLjM0My0xLjE1NSAzLjMwOS0yLjc4OS0uMDI3LTEuNTEtMS4yNTEtMi4xNi0yLjAzNy0yLjI0OXYtLjA2OGMuNzA0LS4xMjMgMS43NjQtLjkxIDEuNzIzLTIuMjI5LS4wMzUtMS4zNTMtMS4xNzYtMi40LTIuOTU0LTIuMzg1LTEuODczLjAwNi0yLjg1NyAxLjE2Mi0yLjg5OCAyLjM1OGgxLjE5NmMuMDYyLS42OS43MTEtMS4yOTkgMS42OTYtMS4yOTkuOTk4IDAgMS42OTUuNjIyIDEuNjk1IDEuNTI1LjAwNy45MjItLjcxOCAxLjU5Mi0xLjY5NSAxLjU5MmgtLjk2NHYxLjA3NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUeXBlSXRhbGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuOTkxIDExLjY3NCA5LjUzIDQuNDU1Yy4xMjMtLjU5NS4yNDYtLjcxIDEuMzQ3LS44MDdsLjExLS41Mkg3LjIxMWwtLjExLjUyYzEuMDYuMDk2IDEuMTI4LjIxMiAxLjAwNS44MDdMNi41NyAxMS42NzRjLS4xMjMuNTk1LS4yNDYuNzEtMS4zNDYuODA2bC0uMTEuNTJoMy43NzRsLjExLS41MmMtMS4wNi0uMDk1LTEuMTI5LS4yMTEtMS4wMDYtLjgwNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUeXBlU3RyaWtldGhyb3VnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjMzMyA1LjY4NmMwIC4zMS4wODMuNTgxLjI3LjgxNEg1LjE2NmEyLjc3NiAyLjc3NiAwIDAgMS0uMDk5LS43NmMwLTEuNjI3IDEuNDM2LTIuNzY4IDMuNDgtMi43NjggMS45NjkgMCAzLjM5IDEuMTc1IDMuNDQ1IDIuODVoLTEuMjNjLS4xMS0xLjA4LS45NjQtMS43NDMtMi4yNS0xLjc0My0xLjIzIDAtMi4xOC42MDItMi4xOCAxLjYwN3ptMi4xOTQgNy40NzhjLTIuMTUzIDAtMy41ODktMS4xMDctMy43MDUtMi44MWgxLjIzYy4xNDQgMS4wNiAxLjEyOSAxLjcwMyAyLjU0NCAxLjcwMyAxLjM0IDAgMi4zMS0uNzA1IDIuMzEtMS42NzUgMC0uODI3LS41NDctMS4zNzQtMS45MTQtMS42NzVMOC4wNDYgOC41SDF2LTFoMTR2MWgtMy41MDRjLjQ2OC40MzcuNjc1Ljk5NC42NzUgMS42OTcgMCAxLjgyNi0xLjQzNiAyLjk2Ny0zLjY0NCAyLjk2N3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNUeXBlVW5kZXJsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMzEzIDMuMTM2aC0xLjIzVjkuNTRjMCAyLjEwNSAxLjQ3IDMuNjIzIDMuOTE3IDMuNjIzczMuOTE3LTEuNTE4IDMuOTE3LTMuNjIzVjMuMTM2aC0xLjIzdjYuMzIzYzAgMS40OS0uOTc4IDIuNTctMi42ODcgMi41Ny0xLjcwOSAwLTIuNjg3LTEuMDgtMi42ODctMi41N1YzLjEzNnpNMTIuNSAxNWgtOXYtMWg5djF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVHlwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjI0NCAxMy4wODEuOTQzLTIuODAzSDYuNjZsLjk0NCAyLjgwM0g4Ljg2TDUuNTQgMy43NUg0LjMyMkwxIDEzLjA4MWgxLjI0NHptMi43LTcuOTIzTDYuMzQgOS4zMTRIMy41MWwxLjQtNC4xNTZoLjAzNHptOS4xNDYgNy4wMjdoLjAzNXYuODk2aDEuMTI4VjguMTI1YzAtMS41MS0xLjExNC0yLjM0NS0yLjY0Ni0yLjM0NS0xLjczNiAwLTIuNTkuOTE2LTIuNjY2IDIuMTc0aDEuMTA4Yy4wNjgtLjcxOC41OTUtMS4xOSAxLjUxNy0xLjE5Ljk3MSAwIDEuNTE4LjUyIDEuNTE4IDEuNDY0di43MzFIMTIuMTljLTEuNjQ3LjAwNy0yLjUyMi44LTIuNTIyIDIuMDU4IDAgMS4zMTkuOTU3IDIuMTggMi4zNDUgMi4xOCAxLjA2IDAgMS43MTYtLjQzIDIuMDc4LTEuMDExem0tMS43NjMuMDM1Yy0uNzUyIDAtMS40NTYtLjM5Ny0xLjQ1Ni0xLjI0NCAwLS42NS40MjQtMS4xMTUgMS40MDgtMS4xMTVoMS44MDV2LjgzNGMwIC44OTYtLjc1MiAxLjUyNS0xLjc1NyAxLjUyNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNVaUNoZWNrc0dyaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMGgzYTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAwIDEtMSAxSDJhMSAxIDAgMCAxLTEtMXYtM2ExIDEgMCAwIDEgMS0xem05LTloM2ExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMWgtM2ExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMXptMCA5YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0zem0wLTEwYTIgMiAwIDAgMC0yIDJ2M2EyIDIgMCAwIDAgMiAyaDNhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJoLTN6TTIgOWEyIDIgMCAwIDAtMiAydjNhMiAyIDAgMCAwIDIgMmgzYTIgMiAwIDAgMCAyLTJ2LTNhMiAyIDAgMCAwLTItMkgyem03IDJhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyaC0zYTIgMiAwIDAgMS0yLTJ2LTN6TTAgMmEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJ6bTUuMzU0Ljg1NGEuNS41IDAgMSAwLS43MDgtLjcwOEwzIDMuNzkzbC0uNjQ2LS42NDdhLjUuNSAwIDEgMC0uNzA4LjcwOGwxIDFhLjUuNSAwIDAgMCAuNzA4IDBsMi0yelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1VpQ2hlY2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMi41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMXpNMiAxYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJIMnptMCA4YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0ySDJ6bS44NTQtMy42NDZhLjUuNSAwIDAgMS0uNzA4IDBsLTEtMWEuNS41IDAgMSAxIC43MDgtLjcwOGwuNjQ2LjY0NyAxLjY0Ni0xLjY0N2EuNS41IDAgMSAxIC43MDguNzA4bC0yIDJ6bTAgOGEuNS41IDAgMCAxLS43MDggMGwtMS0xYS41LjUgMCAwIDEgLjcwOC0uNzA4bC42NDYuNjQ3IDEuNjQ2LTEuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTIgMnpNNyAxMC41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIC41LjV2MWEuNS41IDAgMCAxLS41LjVoLTdhLjUuNSAwIDAgMS0uNS0uNXYtMXptMC01YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41em0wIDhhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgMCAxaC01YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVWlSYWRpb3NHcmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNSAxNWEyLjUgMi41IDAgMSAwIDAtNSAyLjUgMi41IDAgMCAwIDAgNXptOS05YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1em0wIDlhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6TTE2IDMuNWEzLjUgMy41IDAgMSAxLTcgMCAzLjUgMy41IDAgMCAxIDcgMHptLTkgOWEzLjUgMy41IDAgMSAxLTcgMCAzLjUgMy41IDAgMCAxIDcgMHptNS41IDMuNWEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN3ptLTktMTFhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTAgMmEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNVaVJhZGlvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTF6TTAgMTJhMyAzIDAgMSAxIDYgMCAzIDMgMCAwIDEtNiAwem03LTEuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41djFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTF6bTAtNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAwIDFoLTVhLjUuNSAwIDAgMS0uNS0uNXptMCA4YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIDAgMWgtNWEuNS41IDAgMCAxLS41LS41ek0zIDFhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02em0wIDQuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3pcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNVbWJyZWxsYUZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggMGEuNS41IDAgMCAxIC41LjV2LjUxNEMxMi42MjUgMS4yMzggMTYgNC4yMiAxNiA4YzAgMCAwIC41LS41LjUtLjE0OSAwLS4zNTItLjE0NS0uMzUyLS4xNDVsLS4wMDQtLjAwNC0uMDI1LS4wMjNhMy40ODQgMy40ODQgMCAwIDAtLjU1NS0uMzk0QTMuMTY2IDMuMTY2IDAgMCAwIDEzIDcuNWMtLjYzOCAwLTEuMTc4LjIxMy0xLjU2NC40MzRhMy40ODQgMy40ODQgMCAwIDAtLjU1NS4zOTRsLS4wMjUuMDIzLS4wMDMuMDAzcy0uMjA0LjE0Ni0uMzUzLjE0Ni0uMzUyLS4xNDUtLjM1Mi0uMTQ1bC0uMDA0LS4wMDQtLjAyNS0uMDIzYTMuNDg0IDMuNDg0IDAgMCAwLS41NTUtLjM5NCAzLjMgMy4zIDAgMCAwLTEuMDY0LS4zOVYxMy41SDhoLjV2LjAzOWwtLjAwNS4wODNhMi45NTggMi45NTggMCAwIDEtLjI5OCAxLjEwMiAyLjI1NyAyLjI1NyAwIDAgMS0uNzYzLjg4QzcuMDYgMTUuODUxIDYuNTg3IDE2IDYgMTZzLTEuMDYxLS4xNDgtMS40MzQtLjM5NmEyLjI1NSAyLjI1NSAwIDAgMS0uNzYzLS44OCAyLjk1OCAyLjk1OCAwIDAgMS0uMzAyLTEuMTg1di0uMDI1bC0uMDAxLS4wMDl2LS4wMDNzMC0uMDAyLjUtLjAwMmgtLjVWMTNhLjUuNSAwIDAgMSAxIDB2LjUwNmwuMDAzLjA0NGExLjk1OCAxLjk1OCAwIDAgMCAuMTk1LjcyNmMuMDk1LjE5MS4yMy4zNjcuNDIzLjQ5NS4xOS4xMjcuNDY2LjIyOS44NzkuMjI5cy42ODktLjEwMi44NzktLjIyOWMuMTkzLS4xMjguMzI4LS4zMDQuNDI0LS40OTVhMS45NTggMS45NTggMCAwIDAgLjE5Ny0uNzdWNy41NDRhMy4zIDMuMyAwIDAgMC0xLjA2NC4zOSAzLjQ4MiAzLjQ4MiAwIDAgMC0uNTguNDE3bC0uMDA0LjAwNFM1LjY1IDguNSA1LjUgOC41Yy0uMTQ5IDAtLjM1Mi0uMTQ1LS4zNTItLjE0NWwtLjAwNC0uMDA0YTMuNDgyIDMuNDgyIDAgMCAwLS41OC0uNDE3QTMuMTY2IDMuMTY2IDAgMCAwIDMgNy41Yy0uNjM4IDAtMS4xNzcuMjEzLTEuNTY0LjQzNGEzLjQ4MiAzLjQ4MiAwIDAgMC0uNTguNDE3bC0uMDA0LjAwNFMuNjUgOC41LjUgOC41QzAgOC41IDAgOCAwIDhjMC0zLjc4IDMuMzc1LTYuNzYyIDcuNS02Ljk4NlYuNUEuNS41IDAgMCAxIDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNVbWJyZWxsYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDBhLjUuNSAwIDAgMSAuNS41di41MTRDMTIuNjI1IDEuMjM4IDE2IDQuMjIgMTYgOGMwIDAgMCAuNS0uNS41LS4xNDkgMC0uMzUyLS4xNDUtLjM1Mi0uMTQ1bC0uMDA0LS4wMDQtLjAyNS0uMDIzYTMuNDg0IDMuNDg0IDAgMCAwLS41NTUtLjM5NEEzLjE2NiAzLjE2NiAwIDAgMCAxMyA3LjVjLS42MzggMC0xLjE3OC4yMTMtMS41NjQuNDM0YTMuNDg0IDMuNDg0IDAgMCAwLS41NTUuMzk0bC0uMDI1LjAyMy0uMDAzLjAwM3MtLjIwNC4xNDYtLjM1My4xNDYtLjM1Mi0uMTQ1LS4zNTItLjE0NWwtLjAwNC0uMDA0LS4wMjUtLjAyM2EzLjQ4NCAzLjQ4NCAwIDAgMC0uNTU1LS4zOTQgMy4zIDMuMyAwIDAgMC0xLjA2NC0uMzlWMTMuNUg4aC41di4wMzlsLS4wMDUuMDgzYTIuOTU4IDIuOTU4IDAgMCAxLS4yOTggMS4xMDIgMi4yNTcgMi4yNTcgMCAwIDEtLjc2My44OEM3LjA2IDE1Ljg1MSA2LjU4NyAxNiA2IDE2cy0xLjA2MS0uMTQ4LTEuNDM0LS4zOTZhMi4yNTUgMi4yNTUgMCAwIDEtLjc2My0uODggMi45NTggMi45NTggMCAwIDEtLjMwMi0xLjE4NXYtLjAyNWwtLjAwMS0uMDA5di0uMDAzczAtLjAwMi41LS4wMDJoLS41VjEzYS41LjUgMCAwIDEgMSAwdi41MDZsLjAwMy4wNDRhMS45NTggMS45NTggMCAwIDAgLjE5NS43MjZjLjA5NS4xOTEuMjMuMzY3LjQyMy40OTUuMTkuMTI3LjQ2Ni4yMjkuODc5LjIyOXMuNjg5LS4xMDIuODc5LS4yMjljLjE5My0uMTI4LjMyOC0uMzA0LjQyNC0uNDk1YTEuOTU4IDEuOTU4IDAgMCAwIC4xOTctLjc3VjcuNTQ0YTMuMyAzLjMgMCAwIDAtMS4wNjQuMzkgMy40ODIgMy40ODIgMCAwIDAtLjU4LjQxN2wtLjAwNC4wMDRTNS42NSA4LjUgNS41IDguNWMtLjE0OSAwLS4zNTItLjE0NS0uMzUyLS4xNDVsLS4wMDQtLjAwNGEzLjQ4MiAzLjQ4MiAwIDAgMC0uNTgtLjQxN0EzLjE2NiAzLjE2NiAwIDAgMCAzIDcuNWMtLjYzOCAwLTEuMTc3LjIxMy0xLjU2NC40MzRhMy40ODIgMy40ODIgMCAwIDAtLjU4LjQxN2wtLjAwNC4wMDRTLjY1IDguNS41IDguNUMwIDguNSAwIDggMCA4YzAtMy43OCAzLjM3NS02Ljc2MiA3LjUtNi45ODZWLjVBLjUuNSAwIDAgMSA4IDB6TTYuNTc3IDIuMTIzYy0yLjgzMy41LTQuOTkgMi40NTgtNS40NzQgNC44NTRBNC4xMjQgNC4xMjQgMCAwIDEgMyA2LjVjLjgwNiAwIDEuNDguMjUgMS45NjIuNTExYTkuNzA2IDkuNzA2IDAgMCAxIC4zNDQtMi4zNThjLjI0Mi0uODY4LjY0LTEuNzY1IDEuMjcxLTIuNTN6bS0uNjE1IDQuOTNBNC4xNiA0LjE2IDAgMCAxIDggNi41YTQuMTYgNC4xNiAwIDAgMSAyLjAzOC41NTMgOC42ODggOC42ODggMCAwIDAtLjMwNy0yLjEzQzkuNDM0IDMuODU4IDguODk4IDIuODMgOCAyLjExN2MtLjg5OC43MTItMS40MzQgMS43NC0xLjczMSAyLjgwNGE4LjY4NyA4LjY4NyAwIDAgMC0uMzA3IDIuMTMxem0zLjQ2LTQuOTNjLjYzMS43NjUgMS4wMyAxLjY2MiAxLjI3MiAyLjUzLjIzMy44MzMuMzI4IDEuNjYuMzQ0IDIuMzU4QTQuMTQgNC4xNCAwIDAgMSAxMyA2LjVjLjc3IDAgMS40Mi4yMyAxLjg5Ny40NzctLjQ4NC0yLjM5Ni0yLjY0MS00LjM1NS01LjQ3NC00Ljg1NHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNVbmlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MmgyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMkgyYTIgMiAwIDAgMS0yLTJWMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNVbmxvY2tGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDFhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoNVYzYTMgMyAwIDAgMSA2IDB2NGEuNS41IDAgMCAxLTEgMFYzYTIgMiAwIDAgMC0yLTJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVW5sb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDFhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoNVYzYTMgMyAwIDAgMSA2IDB2NGEuNS41IDAgMCAxLTEgMFYzYTIgMiAwIDAgMC0yLTJ6TTMgOGExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDAtMS0xSDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVXBjU2NhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjUgMWEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAxLTEgMHYtM0ExLjUgMS41IDAgMCAxIDEuNSAwaDNhLjUuNSAwIDAgMSAwIDFoLTN6TTExIC41YS41LjUgMCAwIDEgLjUtLjVoM0ExLjUgMS41IDAgMCAxIDE2IDEuNXYzYS41LjUgMCAwIDEtMSAwdi0zYS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMS0uNS0uNXpNLjUgMTFhLjUuNSAwIDAgMSAuNS41djNhLjUuNSAwIDAgMCAuNS41aDNhLjUuNSAwIDAgMSAwIDFoLTNBMS41IDEuNSAwIDAgMSAwIDE0LjV2LTNhLjUuNSAwIDAgMSAuNS0uNXptMTUgMGEuNS41IDAgMCAxIC41LjV2M2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTNhLjUuNSAwIDAgMSAwLTFoM2EuNS41IDAgMCAwIC41LS41di0zYS41LjUgMCAwIDEgLjUtLjV6TTMgNC41YS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTd6bTIgMGEuNS41IDAgMCAxIDEgMHY3YS41LjUgMCAwIDEtMSAwdi03em0yIDBhLjUuNSAwIDAgMSAxIDB2N2EuNS41IDAgMCAxLTEgMHYtN3ptMiAwYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2N2EuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtN3ptMyAwYS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVXBjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNC41YS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTd6bTIgMGEuNS41IDAgMCAxIDEgMHY3YS41LjUgMCAwIDEtMSAwdi03em0yIDBhLjUuNSAwIDAgMSAxIDB2N2EuNS41IDAgMCAxLTEgMHYtN3ptMiAwYS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2N2EuNS41IDAgMCAxLS41LjVoLTFhLjUuNSAwIDAgMS0uNS0uNXYtN3ptMyAwYS41LjUgMCAwIDEgMSAwdjdhLjUuNSAwIDAgMS0xIDB2LTd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS41IDkuOWEuNS41IDAgMCAxIC41LjV2Mi41YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMi41YS41LjUgMCAwIDEgMSAwdjIuNWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnYtMi41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy42NDYgMS4xNDZhLjUuNSAwIDAgMSAuNzA4IDBsMyAzYS41LjUgMCAwIDEtLjcwOC43MDhMOC41IDIuNzA3VjExLjVhLjUuNSAwIDAgMS0xIDBWMi43MDdMNS4zNTQgNC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsMy0zelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1ZlY3RvclBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAuNjQ2LjY0NmEuNS41IDAgMCAxIC43MDggMGw0IDRhLjUuNSAwIDAgMSAwIC43MDhsLTEuOTAyIDEuOTAyLS44MjkgMy4zMTNhMS41IDEuNSAwIDAgMS0xLjAyNCAxLjA3M0wxLjI1NCAxNC43NDYgNC4zNTggNC40QTEuNSAxLjUgMCAwIDEgNS40MyAzLjM3N2wzLjMxMy0uODI4TDEwLjY0Ni42NDZ6bS0xLjggMi45MDgtMy4xNzMuNzkzYS41LjUgMCAwIDAtLjM1OC4zNDJsLTIuNTcgOC41NjUgOC41NjctMi41N2EuNS41IDAgMCAwIC4zNC0uMzU3bC43OTQtMy4xNzQtMy42LTMuNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMi44MzIgMTMuMjI4IDggOWExIDEgMCAxIDAtMS0xbC00LjIyOCA1LjE2OC0uMDI2LjA4Ni4wODYtLjAyNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWaWV3TGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDQuNWgxMGEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMnptMCAxYTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMUgzek0xIDJhLjUuNSAwIDAgMSAuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNBLjUuNSAwIDAgMSAxIDJ6bTAgMTJhLjUuNSAwIDAgMSAuNS0uNWgxM2EuNS41IDAgMCAxIDAgMWgtMTNBLjUuNSAwIDAgMSAxIDE0elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1ZpZXdTdGFja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMGgxMGEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkgzYTIgMiAwIDAgMS0yLTJWMmEyIDIgMCAwIDEgMi0yem0wIDFhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVYyYTEgMSAwIDAgMC0xLTFIM3ptMCA4aDEwYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yem0wIDFhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xSDN6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVmltZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuOTkyIDQuMjA0Yy0uMDcxIDEuNTU2LTEuMTU4IDMuNjg3LTMuMjYyIDYuMzkzLTIuMTc1IDIuODI5LTQuMDE2IDQuMjQzLTUuNTIyIDQuMjQzLS45MzMgMC0xLjcyMi0uODYxLTIuMzY3LTIuNTgzTDMuNTUgNy41MjNDMy4wNyA1LjggMi41NTYgNC45NCAyLjAwNyA0Ljk0Yy0uMTE4IDAtLjUzNy4yNTMtMS4yNTQuNzU0TDAgNC43MjRhMjA5LjU2IDIwOS41NiAwIDAgMCAyLjMzNC0yLjA4MWMxLjA1NC0uOTEgMS44NDUtMS4zODggMi4zNzMtMS40MzcgMS4yNDMtLjEyMyAyLjAxLjcyOCAyLjI5OCAyLjU1My4zMSAxLjk2OC41MjYgMy4xOS42NDYgMy42NjYuMzYgMS42MzEuNzU2IDIuNDQ2IDEuMTg2IDIuNDQ1LjMzNCAwIC44MzYtLjUzIDEuNTA4LTEuNTg3LjY3MS0xLjA1OCAxLjAzLTEuODYzIDEuMDc3LTIuNDE1LjA5Ni0uOTEzLS4yNjMtMS4zNy0xLjA3Ny0xLjM3YTMuMDIyIDMuMDIyIDAgMCAwLTEuMTg1LjI2MWMuNzg5LTIuNTczIDIuMjkxLTMuODI1IDQuNTA4LTMuNzU2IDEuNjQ0LjA1IDIuNDE5IDEuMTE3IDIuMzI0IDMuMnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWaW55bEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA2YTIgMiAwIDEgMCAwIDQgMiAyIDAgMCAwIDAtNHptMCAzYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4QTggOCAwIDEgMSAwIDhhOCA4IDAgMCAxIDE2IDB6TTQgOGE0IDQgMCAxIDAgOCAwIDQgNCAwIDAgMC04IDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVmlueWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDZhMiAyIDAgMSAwIDAgNCAyIDIgMCAwIDAgMC00ek00IDhhNCA0IDAgMSAxIDggMCA0IDQgMCAwIDEtOCAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVm9pY2VtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOC41QTMuNDkgMy40OSAwIDAgMSA1Ljk1IDExaDQuMWEzLjUgMy41IDAgMSAxIDIuNDUgMWgtOUEzLjUgMy41IDAgMSAxIDcgOC41em0tNiAwYTIuNSAyLjUgMCAxIDAgNSAwIDIuNSAyLjUgMCAwIDAtNSAwem0xNCAwYTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1ZvbHVtZURvd25GaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGEuNS41IDAgMCAwLS44MTItLjM5TDUuODI1IDUuNUgzLjVBLjUuNSAwIDAgMCAzIDZ2NGEuNS41IDAgMCAwIC41LjVoMi4zMjVsMi4zNjMgMS44OUEuNS41IDAgMCAwIDkgMTJWNHptMy4wMjUgNGE0LjQ4NiA0LjQ4NiAwIDAgMS0xLjMxOCAzLjE4MkwxMCAxMC40NzVBMy40ODkgMy40ODkgMCAwIDAgMTEuMDI1IDggMy40OSAzLjQ5IDAgMCAwIDEwIDUuNTI1bC43MDctLjcwN0E0LjQ4NiA0LjQ4NiAwIDAgMSAxMi4wMjUgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWb2x1bWVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGEuNS41IDAgMCAwLS44MTItLjM5TDUuODI1IDUuNUgzLjVBLjUuNSAwIDAgMCAzIDZ2NGEuNS41IDAgMCAwIC41LjVoMi4zMjVsMi4zNjMgMS44OUEuNS41IDAgMCAwIDkgMTJWNHpNNi4zMTIgNi4zOSA4IDUuMDR2NS45Mkw2LjMxMiA5LjYxQS41LjUgMCAwIDAgNiA5LjVINHYtM2gyYS41LjUgMCAwIDAgLjMxMi0uMTF6TTEyLjAyNSA4YTQuNDg2IDQuNDg2IDAgMCAxLTEuMzE4IDMuMTgyTDEwIDEwLjQ3NUEzLjQ4OSAzLjQ4OSAwIDAgMCAxMS4wMjUgOCAzLjQ5IDMuNDkgMCAwIDAgMTAgNS41MjVsLjcwNy0uNzA3QTQuNDg2IDQuNDg2IDAgMCAxIDEyLjAyNSA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1ZvbHVtZU11dGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzE3IDMuNTVBLjUuNSAwIDAgMSA3IDR2OGEuNS41IDAgMCAxLS44MTIuMzlMMy44MjUgMTAuNUgxLjVBLjUuNSAwIDAgMSAxIDEwVjZhLjUuNSAwIDAgMSAuNS0uNWgyLjMyNWwyLjM2My0xLjg5YS41LjUgMCAwIDEgLjUyOS0uMDZ6bTcuMTM3IDIuMDk2YS41LjUgMCAwIDEgMCAuNzA4TDEyLjIwNyA4bDEuNjQ3IDEuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMMTEuNSA4LjcwN2wtMS42NDYgMS42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuNzkzIDggOS4xNDYgNi4zNTRhLjUuNSAwIDEgMSAuNzA4LS43MDhMMTEuNSA3LjI5M2wxLjY0Ni0xLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWb2x1bWVNdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzE3IDMuNTVBLjUuNSAwIDAgMSA3IDR2OGEuNS41IDAgMCAxLS44MTIuMzlMMy44MjUgMTAuNUgxLjVBLjUuNSAwIDAgMSAxIDEwVjZhLjUuNSAwIDAgMSAuNS0uNWgyLjMyNWwyLjM2My0xLjg5YS41LjUgMCAwIDEgLjUyOS0uMDZ6TTYgNS4wNCA0LjMxMiA2LjM5QS41LjUgMCAwIDEgNCA2LjVIMnYzaDJhLjUuNSAwIDAgMSAuMzEyLjExTDYgMTAuOTZWNS4wNHptNy44NTQuNjA2YS41LjUgMCAwIDEgMCAuNzA4TDEyLjIwNyA4bDEuNjQ3IDEuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMMTEuNSA4LjcwN2wtMS42NDYgMS42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMMTAuNzkzIDggOS4xNDYgNi4zNTRhLjUuNSAwIDEgMSAuNzA4LS43MDhMMTEuNSA3LjI5M2wxLjY0Ni0xLjY0N2EuNS41IDAgMCAxIC43MDggMHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWb2x1bWVPZmZGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjcxNyAzLjU1QS41LjUgMCAwIDEgMTEgNHY4YS41LjUgMCAwIDEtLjgxMi4zOUw3LjgyNSAxMC41SDUuNUEuNS41IDAgMCAxIDUgMTBWNmEuNS41IDAgMCAxIC41LS41aDIuMzI1bDIuMzYzLTEuODlhLjUuNSAwIDAgMSAuNTI5LS4wNnpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNzE3IDMuNTVBLjUuNSAwIDAgMSAxMSA0djhhLjUuNSAwIDAgMS0uODEyLjM5TDcuODI1IDEwLjVINS41QS41LjUgMCAwIDEgNSAxMFY2YS41LjUgMCAwIDEgLjUtLjVoMi4zMjVsMi4zNjMtMS44OWEuNS41IDAgMCAxIC41MjktLjA2ek0xMCA1LjA0IDguMzEyIDYuMzlBLjUuNSAwIDAgMSA4IDYuNUg2djNoMmEuNS41IDAgMCAxIC4zMTIuMTFMMTAgMTAuOTZWNS4wNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNWb2x1bWVVcEZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNTM2IDE0LjAxQTguNDczIDguNDczIDAgMCAwIDE0LjAyNiA4YTguNDczIDguNDczIDAgMCAwLTIuNDktNi4wMWwtLjcwOC43MDdBNy40NzYgNy40NzYgMCAwIDEgMTMuMDI1IDhjMCAyLjA3MS0uODQgMy45NDYtMi4xOTcgNS4zMDNsLjcwOC43MDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMTIxIDEyLjU5NkE2LjQ4IDYuNDggMCAwIDAgMTIuMDI1IDhhNi40OCA2LjQ4IDAgMCAwLTEuOTA0LTQuNTk2bC0uNzA3LjcwN0E1LjQ4MyA1LjQ4MyAwIDAgMSAxMS4wMjUgOGE1LjQ4MyA1LjQ4MyAwIDAgMS0xLjYxIDMuODlsLjcwNi43MDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC43MDcgMTEuMTgyQTQuNDg2IDQuNDg2IDAgMCAwIDEwLjAyNSA4YTQuNDg2IDQuNDg2IDAgMCAwLTEuMzE4LTMuMTgyTDggNS41MjVBMy40ODkgMy40ODkgMCAwIDEgOS4wMjUgOCAzLjQ5IDMuNDkgMCAwIDEgOCAxMC40NzVsLjcwNy43MDd6TTYuNzE3IDMuNTVBLjUuNSAwIDAgMSA3IDR2OGEuNS41IDAgMCAxLS44MTIuMzlMMy44MjUgMTAuNUgxLjVBLjUuNSAwIDAgMSAxIDEwVjZhLjUuNSAwIDAgMSAuNS0uNWgyLjMyNWwyLjM2My0xLjg5YS41LjUgMCAwIDEgLjUyOS0uMDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVm9sdW1lVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNTM2IDE0LjAxQTguNDczIDguNDczIDAgMCAwIDE0LjAyNiA4YTguNDczIDguNDczIDAgMCAwLTIuNDktNi4wMWwtLjcwOC43MDdBNy40NzYgNy40NzYgMCAwIDEgMTMuMDI1IDhjMCAyLjA3MS0uODQgMy45NDYtMi4xOTcgNS4zMDNsLjcwOC43MDd6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMTIxIDEyLjU5NkE2LjQ4IDYuNDggMCAwIDAgMTIuMDI1IDhhNi40OCA2LjQ4IDAgMCAwLTEuOTA0LTQuNTk2bC0uNzA3LjcwN0E1LjQ4MyA1LjQ4MyAwIDAgMSAxMS4wMjUgOGE1LjQ4MyA1LjQ4MyAwIDAgMS0xLjYxIDMuODlsLjcwNi43MDZ6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDI1IDhhNC40ODYgNC40ODYgMCAwIDEtMS4zMTggMy4xODJMOCAxMC40NzVBMy40ODkgMy40ODkgMCAwIDAgOS4wMjUgOGMwLS45NjYtLjM5Mi0xLjg0MS0xLjAyNS0yLjQ3NWwuNzA3LS43MDdBNC40ODYgNC40ODYgMCAwIDEgMTAuMDI1IDh6TTcgNGEuNS41IDAgMCAwLS44MTItLjM5TDMuODI1IDUuNUgxLjVBLjUuNSAwIDAgMCAxIDZ2NGEuNS41IDAgMCAwIC41LjVoMi4zMjVsMi4zNjMgMS44OUEuNS41IDAgMCAwIDcgMTJWNHpNNC4zMTIgNi4zOSA2IDUuMDR2NS45Mkw0LjMxMiA5LjYxQS41LjUgMCAwIDAgNCA5LjVIMnYtM2gyYS41LjUgMCAwIDAgLjMxMi0uMTF6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzVnIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMlY0YTEgMSAwIDAgMSAxLTFoMi41VjJINGEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgyLjV2LTFINGExIDEgMCAwIDEtMS0xem02LjUgMXYxSDEyYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDkuNXYxSDEyYTEgMSAwIDAgMSAxIDF2OGExIDEgMCAwIDEtMSAxSDkuNXpNOCAxNmEuNS41IDAgMCAxLS41LS41Vi41YS41LjUgMCAwIDEgMSAwdjE1YS41LjUgMCAwIDEtLjUuNXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNXYWxsZXRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2Mmg2YS41LjUgMCAwIDEgLjUuNWMwIC4yNTMuMDguNjQ0LjMwNi45NTguMjA3LjI4OC41NTcuNTQyIDEuMTk0LjU0Mi42MzcgMCAuOTg3LS4yNTQgMS4xOTQtLjU0Mi4yMjYtLjMxNC4zMDYtLjcwNS4zMDYtLjk1OGEuNS41IDAgMCAxIC41LS41aDZ2LTJBMS41IDEuNSAwIDAgMCAxNC41IDJoLTEzelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDYuNWgtNS41NTFhMi42NzggMi42NzggMCAwIDEtLjQ0MyAxLjA0MkM5LjYxMyA4LjA4OCA4Ljk2MyA4LjUgOCA4LjVjLS45NjMgMC0xLjYxMy0uNDEyLTIuMDA2LS45NThBMi42NzkgMi42NzkgMCAwIDEgNS41NTEgNi41SDB2NkExLjUgMS41IDAgMCAwIDEuNSAxNGgxM2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2FsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgM2EyIDIgMCAwIDEgMi0yaDEzLjVhLjUuNSAwIDAgMSAwIDFIMTV2MmExIDEgMCAwIDEgMSAxdjguNWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTEyQTIuNSAyLjUgMCAwIDEgMCAxMi41VjN6bTEgMS43MzJWMTIuNUExLjUgMS41IDAgMCAwIDIuNSAxNGgxMmEuNS41IDAgMCAwIC41LS41VjVIMmExLjk5IDEuOTkgMCAwIDEtMS0uMjY4ek0xIDNhMSAxIDAgMCAwIDEgMWgxMlYySDJhMSAxIDAgMCAwLTEgMXpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNXYWxsZXQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjEzNi4zMjZBMS41IDEuNSAwIDAgMSAxNCAxLjc4VjNoLjVBMS41IDEuNSAwIDAgMSAxNiA0LjV2OWExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTEzQTEuNSAxLjUgMCAwIDEgMCAxMy41di05YTEuNSAxLjUgMCAwIDEgMS40MzItMS40OTlMMTIuMTM2LjMyNnpNNS41NjIgM0gxM1YxLjc4YS41LjUgMCAwIDAtLjYyMS0uNDg0TDUuNTYyIDN6TTEuNSA0YS41LjUgMCAwIDAtLjUuNXY5YS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTEzelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1dhdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA1YS41LjUgMCAwIDAtMSAwdjIuNUg2YS41LjUgMCAwIDAgMCAxaDJhLjUuNSAwIDAgMCAuNS0uNVY1elwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNjY3IDE2QzQuNzQ3IDE2IDQgMTUuMjU0IDQgMTQuMzMzdi0xLjg2QTUuOTg1IDUuOTg1IDAgMCAxIDIgOGMwLTEuNzc3Ljc3Mi0zLjM3NCAyLTQuNDcyVjEuNjY3QzQgLjc0NyA0Ljc0NiAwIDUuNjY3IDBoNC42NjZDMTEuMjUzIDAgMTIgLjc0NiAxMiAxLjY2N3YxLjg2YTUuOTkgNS45OSAwIDAgMSAxLjkxOCAzLjQ4LjUwMi41MDIgMCAwIDEgLjU4Mi40OTN2MWEuNS41IDAgMCAxLS41ODIuNDkzQTUuOTkgNS45OSAwIDAgMSAxMiAxMi40NzN2MS44NmMwIC45Mi0uNzQ2IDEuNjY3LTEuNjY3IDEuNjY3SDUuNjY3ek0xMyA4QTUgNSAwIDEgMCAzIDhhNSA1IDAgMCAwIDEwIDB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjAzNiAzLjMxNGEuNS41IDAgMCAxIC42NS0uMjc4bDEuNzU3LjcwM2ExLjUgMS41IDAgMCAwIDEuMTE0IDBsMS4wMTQtLjQwNmEyLjUgMi41IDAgMCAxIDEuODU3IDBsMS4wMTUuNDA2YTEuNSAxLjUgMCAwIDAgMS4xMTQgMGwxLjAxNC0uNDA2YTIuNSAyLjUgMCAwIDEgMS44NTcgMGwxLjAxNS40MDZhMS41IDEuNSAwIDAgMCAxLjExNCAwbDEuNzU3LS43MDNhLjUuNSAwIDEgMSAuMzcyLjkyOGwtMS43NTguNzAzYTIuNSAyLjUgMCAwIDEtMS44NTcgMGwtMS4wMTQtLjQwNmExLjUgMS41IDAgMCAwLTEuMTE0IDBsLTEuMDE1LjQwNmEyLjUgMi41IDAgMCAxLTEuODU3IDBsLTEuMDE0LS40MDZhMS41IDEuNSAwIDAgMC0xLjExNCAwbC0xLjAxNS40MDZhMi41IDIuNSAwIDAgMS0xLjg1NyAwTC4zMTQgMy45NjRhLjUuNSAwIDAgMS0uMjc4LS42NXptMCAzYS41LjUgMCAwIDEgLjY1LS4yNzhsMS43NTcuNzAzYTEuNSAxLjUgMCAwIDAgMS4xMTQgMGwxLjAxNC0uNDA2YTIuNSAyLjUgMCAwIDEgMS44NTcgMGwxLjAxNS40MDZhMS41IDEuNSAwIDAgMCAxLjExNCAwbDEuMDE0LS40MDZhMi41IDIuNSAwIDAgMSAxLjg1NyAwbDEuMDE1LjQwNmExLjUgMS41IDAgMCAwIDEuMTE0IDBsMS43NTctLjcwM2EuNS41IDAgMSAxIC4zNzIuOTI4bC0xLjc1OC43MDNhMi41IDIuNSAwIDAgMS0xLjg1NyAwbC0xLjAxNC0uNDA2YTEuNSAxLjUgMCAwIDAtMS4xMTQgMGwtMS4wMTUuNDA2YTIuNSAyLjUgMCAwIDEtMS44NTcgMGwtMS4wMTQtLjQwNmExLjUgMS41IDAgMCAwLTEuMTE0IDBsLTEuMDE1LjQwNmEyLjUgMi41IDAgMCAxLTEuODU3IDBMLjMxNCA2Ljk2NGEuNS41IDAgMCAxLS4yNzgtLjY1em0wIDNhLjUuNSAwIDAgMSAuNjUtLjI3OGwxLjc1Ny43MDNhMS41IDEuNSAwIDAgMCAxLjExNCAwbDEuMDE0LS40MDZhMi41IDIuNSAwIDAgMSAxLjg1NyAwbDEuMDE1LjQwNmExLjUgMS41IDAgMCAwIDEuMTE0IDBsMS4wMTQtLjQwNmEyLjUgMi41IDAgMCAxIDEuODU3IDBsMS4wMTUuNDA2YTEuNSAxLjUgMCAwIDAgMS4xMTQgMGwxLjc1Ny0uNzAzYS41LjUgMCAxIDEgLjM3Mi45MjhsLTEuNzU4LjcwM2EyLjUgMi41IDAgMCAxLTEuODU3IDBsLTEuMDE0LS40MDZhMS41IDEuNSAwIDAgMC0xLjExNCAwbC0xLjAxNS40MDZhMi41IDIuNSAwIDAgMS0xLjg1NyAwbC0xLjAxNC0uNDA2YTEuNSAxLjUgMCAwIDAtMS4xMTQgMGwtMS4wMTUuNDA2YTIuNSAyLjUgMCAwIDEtMS44NTcgMEwuMzE0IDkuOTY0YS41LjUgMCAwIDEtLjI3OC0uNjV6bTAgM2EuNS41IDAgMCAxIC42NS0uMjc4bDEuNzU3LjcwM2ExLjUgMS41IDAgMCAwIDEuMTE0IDBsMS4wMTQtLjQwNmEyLjUgMi41IDAgMCAxIDEuODU3IDBsMS4wMTUuNDA2YTEuNSAxLjUgMCAwIDAgMS4xMTQgMGwxLjAxNC0uNDA2YTIuNSAyLjUgMCAwIDEgMS44NTcgMGwxLjAxNS40MDZhMS41IDEuNSAwIDAgMCAxLjExNCAwbDEuNzU3LS43MDNhLjUuNSAwIDEgMSAuMzcyLjkyOGwtMS43NTguNzAzYTIuNSAyLjUgMCAwIDEtMS44NTcgMGwtMS4wMTQtLjQwNmExLjUgMS41IDAgMCAwLTEuMTE0IDBsLTEuMDE1LjQwNmEyLjUgMi41IDAgMCAxLTEuODU3IDBsLTEuMDE0LS40MDZhMS41IDEuNSAwIDAgMC0xLjExNCAwbC0xLjAxNS40MDZhMi41IDIuNSAwIDAgMS0xLjg1NyAwbC0xLjc1Ny0uNzAzYS41LjUgMCAwIDEtLjI3OC0uNjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2hhdHNhcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNjAxIDIuMzI2QTcuODU0IDcuODU0IDAgMCAwIDcuOTk0IDBDMy42MjcgMCAuMDY4IDMuNTU4LjA2NCA3LjkyNmMwIDEuMzk5LjM2NiAyLjc2IDEuMDU3IDMuOTY1TDAgMTZsNC4yMDQtMS4xMDJhNy45MzMgNy45MzMgMCAwIDAgMy43OS45NjVoLjAwNGM0LjM2OCAwIDcuOTI2LTMuNTU4IDcuOTMtNy45M0E3Ljg5OCA3Ljg5OCAwIDAgMCAxMy42IDIuMzI2ek03Ljk5NCAxNC41MjFhNi41NzMgNi41NzMgMCAwIDEtMy4zNTYtLjkybC0uMjQtLjE0NC0yLjQ5NC42NTQuNjY2LTIuNDMzLS4xNTYtLjI1MWE2LjU2IDYuNTYgMCAwIDEtMS4wMDctMy41MDVjMC0zLjYyNiAyLjk1Ny02LjU4NCA2LjU5MS02LjU4NGE2LjU2IDYuNTYgMCAwIDEgNC42NiAxLjkzMSA2LjU1NyA2LjU1NyAwIDAgMSAxLjkyOCA0LjY2Yy0uMDA0IDMuNjM5LTIuOTYxIDYuNTkyLTYuNTkyIDYuNTkyem0zLjYxNS00LjkzNGMtLjE5Ny0uMDk5LTEuMTctLjU3OC0xLjM1My0uNjQ2LS4xODItLjA2NS0uMzE1LS4wOTktLjQ0NS4wOTktLjEzMy4xOTctLjUxMy42NDYtLjYyNy43NzUtLjExNC4xMzMtLjIzMi4xNDgtLjQzLjA1LS4xOTctLjEtLjgzNi0uMzA4LTEuNTkyLS45ODUtLjU5LS41MjUtLjk4NS0xLjE3NS0xLjEwMy0xLjM3Mi0uMTE0LS4xOTgtLjAxMS0uMzA0LjA4OC0uNDAzLjA4Ny0uMDg4LjE5Ny0uMjMyLjI5Ni0uMzQ2LjEtLjExNC4xMzMtLjE5OC4xOTgtLjMzLjA2NS0uMTM0LjAzNC0uMjQ4LS4wMTUtLjM0Ny0uMDUtLjA5OS0uNDQ1LTEuMDc2LS42MTItMS40Ny0uMTYtLjM4OS0uMzIzLS4zMzUtLjQ0NS0uMzQtLjExNC0uMDA3LS4yNDctLjAwNy0uMzgtLjAwN2EuNzI5LjcyOSAwIDAgMC0uNTI5LjI0N2MtLjE4Mi4xOTgtLjY5MS42NzctLjY5MSAxLjY1NCAwIC45NzcuNzEgMS45MTYuODEgMi4wNDkuMDk4LjEzMyAxLjM5NCAyLjEzMiAzLjM4MyAyLjk5Mi40Ny4yMDUuODQuMzI2IDEuMTI5LjQxOC40NzUuMTUyLjkwNC4xMjkgMS4yNDYuMDguMzgtLjA1OCAxLjE3MS0uNDggMS4zMzgtLjk0My4xNjQtLjQ2NC4xNjQtLjg2LjExNC0uOTQzLS4wNDktLjA4NC0uMTgyLS4xMzMtLjM4LS4yMzJ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2lmaTEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDQ2IDEwLjQ1NGMuMjI2LS4yMjYuMTg1LS42MDUtLjEtLjc1QTYuNDczIDYuNDczIDAgMCAwIDggOWMtMS4wNiAwLTIuMDYyLjI1NC0yLjk0Ni43MDQtLjI4NS4xNDUtLjMyNi41MjQtLjEuNzVsLjAxNS4wMTVjLjE2LjE2LjQwNy4xOS42MTEuMDlBNS40NzggNS40NzggMCAwIDEgOCAxMGMuODY4IDAgMS42OS4yMDEgMi40Mi41Ni4yMDMuMS40NS4wNy42MTEtLjA5MWwuMDE1LS4wMTV6TTkuMDYgMTIuNDRjLjE5Ni0uMTk2LjE5OC0uNTItLjA0LS42NkExLjk5IDEuOTkgMCAwIDAgOCAxMS41YTEuOTkgMS45OSAwIDAgMC0xLjAyLjI4Yy0uMjM4LjE0LS4yMzYuNDY0LS4wNC42NmwuNzA2LjcwNmEuNS41IDAgMCAwIC43MDcgMGwuNzA4LS43MDd6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2lmaTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjI5IDguMjcxYy4yMTYtLjIxNi4xOTQtLjU3OC0uMDYzLS43NDVBOS40NTYgOS40NTYgMCAwIDAgOCA2Yy0xLjkwNSAwLTMuNjguNTYtNS4xNjYgMS41MjZhLjQ4LjQ4IDAgMCAwLS4wNjMuNzQ1LjUyNS41MjUgMCAwIDAgLjY1Mi4wNjVBOC40NiA4LjQ2IDAgMCAxIDggN2E4LjQ2IDguNDYgMCAwIDEgNC41NzcgMS4zMzZjLjIwNS4xMzIuNDguMTA4LjY1Mi0uMDY1em0tMi4xODMgMi4xODNjLjIyNi0uMjI2LjE4NS0uNjA1LS4xLS43NUE2LjQ3MyA2LjQ3MyAwIDAgMCA4IDljLTEuMDYgMC0yLjA2Mi4yNTQtMi45NDYuNzA0LS4yODUuMTQ1LS4zMjYuNTI0LS4xLjc1bC4wMTUuMDE1Yy4xNi4xNi40MDguMTkuNjExLjA5QTUuNDc4IDUuNDc4IDAgMCAxIDggMTBjLjg2OCAwIDEuNjkuMjAxIDIuNDIuNTYuMjAzLjEuNDUuMDcuNjExLS4wOTFsLjAxNS0uMDE1ek05LjA2IDEyLjQ0Yy4xOTYtLjE5Ni4xOTgtLjUyLS4wNC0uNjZBMS45OSAxLjk5IDAgMCAwIDggMTEuNWExLjk5IDEuOTkgMCAwIDAtMS4wMi4yOGMtLjIzOC4xNC0uMjM2LjQ2NC0uMDQuNjZsLjcwNi43MDZhLjUuNSAwIDAgMCAuNzA4IDBsLjcwNy0uNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1dpZmlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNzA2IDMuMjk0QTEyLjU0NSAxMi41NDUgMCAwIDAgOCAzQzUuMjU5IDMgMi43MjMgMy44ODIuNjYzIDUuMzc5YS40ODUuNDg1IDAgMCAwLS4wNDguNzM2LjUxOC41MTggMCAwIDAgLjY2OC4wNUExMS40NDggMTEuNDQ4IDAgMCAxIDggNGMuNjMgMCAxLjI0OS4wNSAxLjg1Mi4xNDhsLjg1NC0uODU0ek04IDZjLTEuOTA1IDAtMy42OC41Ni01LjE2NiAxLjUyNmEuNDguNDggMCAwIDAtLjA2My43NDUuNTI1LjUyNSAwIDAgMCAuNjUyLjA2NSA4LjQ0OCA4LjQ0OCAwIDAgMSAzLjUxLTEuMjdMOCA2em0yLjU5NiAxLjQwNC43ODUtLjc4NWMuNjMuMjQgMS4yMjcuNTQ1IDEuNzg1LjkwN2EuNDgyLjQ4MiAwIDAgMSAuMDYzLjc0NS41MjUuNTI1IDAgMCAxLS42NTIuMDY1IDguNDYyIDguNDYyIDAgMCAwLTEuOTgtLjkzMnpNOCAxMGwuOTMzLS45MzNhNi40NTUgNi40NTUgMCAwIDEgMi4wMTMuNjM3Yy4yODUuMTQ1LjMyNi41MjQuMS43NWwtLjAxNS4wMTVhLjUzMi41MzIgMCAwIDEtLjYxMS4wOUE1LjQ3OCA1LjQ3OCAwIDAgMCA4IDEwem00LjkwNS00LjkwNS43NDctLjc0N2MuNTkuMyAxLjE1My42NDUgMS42ODUgMS4wM2EuNDg1LjQ4NSAwIDAgMSAuMDQ3LjczNy41MTguNTE4IDAgMCAxLS42NjguMDUgMTEuNDkzIDExLjQ5MyAwIDAgMC0xLjgxMS0xLjA3ek05LjAyIDExLjc4Yy4yMzguMTQuMjM2LjQ2NC4wNC42NmwtLjcwNy43MDZhLjUuNSAwIDAgMS0uNzA3IDBsLS43MDctLjcwN2MtLjE5NS0uMTk1LS4xOTctLjUxOC4wNC0uNjZBMS45OSAxLjk5IDAgMCAxIDggMTEuNWMuMzc0IDAgLjcyMy4xMDIgMS4wMjEuMjh6bTQuMzU1LTkuOTA1YS41My41MyAwIDAgMSAuNzUuNzVsLTEwLjc1IDEwLjc1YS41My41MyAwIDAgMS0uNzUtLjc1bDEwLjc1LTEwLjc1elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1dpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMzg0IDYuMTE1YS40ODUuNDg1IDAgMCAwLS4wNDctLjczNkExMi40NDQgMTIuNDQ0IDAgMCAwIDggM0M1LjI1OSAzIDIuNzIzIDMuODgyLjY2MyA1LjM3OWEuNDg1LjQ4NSAwIDAgMC0uMDQ4LjczNi41MTguNTE4IDAgMCAwIC42NjguMDVBMTEuNDQ4IDExLjQ0OCAwIDAgMSA4IDRjMi41MDcgMCA0LjgyNy44MDIgNi43MTYgMi4xNjQuMjA1LjE0OC40OS4xMy42NjgtLjA0OXpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4yMjkgOC4yNzFhLjQ4Mi40ODIgMCAwIDAtLjA2My0uNzQ1QTkuNDU1IDkuNDU1IDAgMCAwIDggNmMtMS45MDUgMC0zLjY4LjU2LTUuMTY2IDEuNTI2YS40OC40OCAwIDAgMC0uMDYzLjc0NS41MjUuNTI1IDAgMCAwIC42NTIuMDY1QTguNDYgOC40NiAwIDAgMSA4IDdhOC40NiA4LjQ2IDAgMCAxIDQuNTc2IDEuMzM2Yy4yMDYuMTMyLjQ4LjEwOC42NTMtLjA2NXptLTIuMTgzIDIuMTgzYy4yMjYtLjIyNi4xODUtLjYwNS0uMS0uNzVBNi40NzMgNi40NzMgMCAwIDAgOCA5Yy0xLjA2IDAtMi4wNjIuMjU0LTIuOTQ2LjcwNC0uMjg1LjE0NS0uMzI2LjUyNC0uMS43NWwuMDE1LjAxNWMuMTYuMTYuNDA3LjE5LjYxMS4wOUE1LjQ3OCA1LjQ3OCAwIDAgMSA4IDEwYy44NjggMCAxLjY5LjIwMSAyLjQyLjU2LjIwMy4xLjQ1LjA3LjYxLS4wOTFsLjAxNi0uMDE1ek05LjA2IDEyLjQ0Yy4xOTYtLjE5Ni4xOTgtLjUyLS4wNC0uNjZBMS45OSAxLjk5IDAgMCAwIDggMTEuNWExLjk5IDEuOTkgMCAwIDAtMS4wMi4yOGMtLjIzOC4xNC0uMjM2LjQ2NC0uMDQuNjZsLjcwNi43MDZhLjUuNSAwIDAgMCAuNzA3IDBsLjcwNy0uNzA3elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1dpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAyQTIuNSAyLjUgMCAwIDAgMTAgNC41YS41LjUgMCAwIDEtMSAwQTMuNSAzLjUgMCAxIDEgMTIuNSA4SC41YS41LjUgMCAwIDEgMC0xaDEyYTIuNSAyLjUgMCAwIDAgMC01em0tNyAxYTEgMSAwIDAgMC0xIDEgLjUuNSAwIDAgMS0xIDAgMiAyIDAgMSAxIDIgMmgtNWEuNS41IDAgMCAxIDAtMWg1YTEgMSAwIDAgMCAwLTJ6TTAgOS41QS41LjUgMCAwIDEgLjUgOWgxMC4wNDJhMyAzIDAgMSAxLTMgMyAuNS41IDAgMCAxIDEgMCAyIDIgMCAxIDAgMi0ySC41YS41LjUgMCAwIDEtLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2luZG93RG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTUgNUgxdjhhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xVjV6bTAtMUgxVjNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjF6bTEtMWEyIDIgMCAwIDAtMi0ySDJhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWM3pcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDExLjVhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xem00IDBhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xem00IDBhLjUuNSAwIDAgMSAuNS0uNWgxYS41LjUgMCAwIDEgLjUuNXYxYS41LjUgMCAwIDEtLjUuNWgtMWEuNS41IDAgMCAxLS41LS41di0xelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1dpbmRvd1NpZGViYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDRhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6bTItLjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDAgMSAxIDB6bTEgLjVhLjUuNSAwIDEgMCAwLTEgLjUuNSAwIDAgMCAwIDF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxYTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjNhMiAyIDAgMCAwLTItMkgyem0xMiAxYTEgMSAwIDAgMSAxIDF2MkgxVjNhMSAxIDAgMCAxIDEtMWgxMnpNMSAxM1Y2aDR2OEgyYTEgMSAwIDAgMS0xLTF6bTUgMVY2aDl2N2ExIDEgMCAwIDEtMSAxSDZ6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV2luZG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA0YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxem0yLS41YS41LjUgMCAxIDEtMSAwIC41LjUgMCAwIDEgMSAwem0xIC41YS41LjUgMCAxIDAgMC0xIC41LjUgMCAwIDAgMCAxelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMWEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYzYTIgMiAwIDAgMC0yLTJIMnptMTMgMnYySDFWM2ExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF6TTIgMTRhMSAxIDAgMCAxLTEtMVY2aDE0djdhMSAxIDAgMCAxLTEgMUgyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1dpbmRvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41NTUgMS4zNzUgMCAyLjIzN3Y1LjQ1aDYuNTU1VjEuMzc1ek0wIDEzLjc5NWw2LjU1NS45MzNWOC4zMTNIMHY1LjQ4MnptNy4yNzgtNS40LjAyNiA2LjM3OEwxNiAxNlY4LjM5NUg3LjI3OHpNMTYgMCA3LjMzIDEuMjQ0djYuNDE0SDE2VjB6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzV29yZHByZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjYzMyA3LjY1M2MwLS44NDgtLjMwNS0xLjQzNS0uNTY2LTEuODkybC0uMDgtLjEzYy0uMzE3LS41MS0uNTk0LS45NTgtLjU5NC0xLjQ4IDAtLjYzLjQ3OC0xLjIxOCAxLjE1Mi0xLjIxOC4wMiAwIC4wMzkuMDAyLjA1OC4wMDNsLjAzMS4wMDNBNi44MzggNi44MzggMCAwIDAgOCAxLjEzNyA2Ljg1NSA2Ljg1NSAwIDAgMCAyLjI2NiA0LjIzYy4xNi4wMDUuMzEzLjAwOS40NDIuMDA5LjcxNyAwIDEuODI4LS4wODcgMS44MjgtLjA4Ny4zNy0uMDIyLjQxNC41MjEuMDQ0LjU2NSAwIDAtLjM3MS4wNDQtLjc4NS4wNjVsMi41IDcuNDM0IDEuNS00LjUwNi0xLjA3LTIuOTI5Yy0uMzY5LS4wMjItLjcxOS0uMDY1LS43MTktLjA2NS0uMzctLjAyMi0uMzI2LS41ODguMDQzLS41NjYgMCAwIDEuMTM0LjA4NyAxLjgwOC4wODcuNzE4IDAgMS44My0uMDg3IDEuODMtLjA4Ny4zNy0uMDIyLjQxMy41MjIuMDQzLjU2NiAwIDAtLjM3Mi4wNDMtLjc4NS4wNjVsMi40OCA3LjM3Ny42ODQtMi4yODcuMDU0LS4xNzNjLjI3LS44Ni40NjktMS40OTUuNDY5LTIuMDQ2ek0xLjEzNyA4YTYuODY0IDYuODY0IDAgMCAwIDMuODY4IDYuMTc2TDEuNzMgNS4yMDZBNi44MzcgNi44MzcgMCAwIDAgMS4xMzcgOHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjA2MSAxNC41ODMgOC4xMjEgOC42bDIuMTA5IDUuNzhjLjAxNC4wMzMuMDMuMDY0LjA0OS4wOTRhNi44NTQgNi44NTQgMCAwIDEtNC4yMTguMTA5em03Ljk2LTkuODc2Yy4wMy4yMTkuMDQ3LjQ1My4wNDcuNzA2IDAgLjY5Ni0uMTMgMS40NzktLjUyMiAyLjQ1OGwtMi4wOTYgNi4wNmE2Ljg2IDYuODYgMCAwIDAgMi41NzItOS4yMjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTAgOGMwLTQuNDExIDMuNTg5LTggOC04IDQuNDEgMCA4IDMuNTg5IDggOHMtMy41OSA4LTggOGMtNC40MTEgMC04LTMuNTg5LTgtOHptLjM2NyAwYzAgNC4yMDkgMy40MjQgNy42MzMgNy42MzMgNy42MzMgNC4yMDggMCA3LjYzMi0zLjQyNCA3LjYzMi03LjYzM0MxNS42MzIgMy43OSAxMi4yMDguMzY3IDggLjM2NyAzLjc5LjM2Ny4zNjcgMy43OS4zNjcgOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNXcmVuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjEwMiAyLjIyM0EzLjAwNCAzLjAwNCAwIDAgMCAzLjc4IDUuODk3bDYuMzQxIDYuMjUyQTMuMDAzIDMuMDAzIDAgMCAwIDEzIDE2YTMgMyAwIDEgMC0uODUxLTUuODc4TDUuODk3IDMuNzgxQTMuMDA0IDMuMDA0IDAgMCAwIDIuMjIzLjFsMi4xNDEgMi4xNDJMNCA0bC0xLjc1Ny4zNjRMLjEwMiAyLjIyM3ptMTMuMzcgOS4wMTkuNTI4LjAyNi4yODcuNDQ1LjQ0NS4yODcuMDI2LjUyOUwxNSAxM2wtLjI0Mi40NzEtLjAyNi41MjktLjQ0NS4yODctLjI4Ny40NDUtLjUyOS4wMjZMMTMgMTVsLS40NzEtLjI0Mi0uNTI5LS4wMjYtLjI4Ny0uNDQ1LS40NDUtLjI4Ny0uMDI2LS41MjlMMTEgMTNsLjI0Mi0uNDcxLjAyNi0uNTI5LjQ0NS0uMjg3LjI4Ny0uNDQ1LjUyOS0uMDI2TDEzIDExbC40NzEuMjQyelwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1hDaXJjbGVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhBOCA4IDAgMSAxIDAgOGE4IDggMCAwIDEgMTYgMHpNNS4zNTQgNC42NDZhLjUuNSAwIDEgMC0uNzA4LjcwOEw3LjI5MyA4bC0yLjY0NyAyLjY0NmEuNS41IDAgMCAwIC43MDguNzA4TDggOC43MDdsMi42NDYgMi42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMOC43MDcgOGwyLjY0Ny0yLjY0NmEuNS41IDAgMCAwLS43MDgtLjcwOEw4IDcuMjkzIDUuMzU0IDQuNjQ2elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1hDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDcuMjkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhMOC43MDcgOGwyLjY0NyAyLjY0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOC43MDdsLTIuNjQ2IDIuNjQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDcuMjkzIDggNC42NDYgNS4zNTRhLjUuNSAwIDAgMSAwLS43MDh6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzWERpYW1vbmRGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDUuNDM1Yy0uNTgtLjU4LTEuNTItLjU4LTIuMSAwTDQuMDQ3IDMuMzM5IDggNy4yOTNsMy45NTQtMy45NTRMOS4wNDkuNDM1em0zLjYxIDMuNjExTDguNzA4IDhsMy45NTQgMy45NTQgMi45MDQtMi45MDVjLjU4LS41OC41OC0xLjUxOSAwLTIuMDk4bC0yLjkwNC0yLjkwNXptLS43MDYgOC42MTRMOCA4LjcwOGwtMy45NTQgMy45NTQgMi45MDUgMi45MDRjLjU4LjU4IDEuNTE5LjU4IDIuMDk4IDBsMi45MDUtMi45MDR6bS04LjYxNC0uNzA2TDcuMjkyIDggMy4zMzkgNC4wNDYuNDM1IDYuOTUxYy0uNTguNTgtLjU4IDEuNTE5IDAgMi4wOThsMi45MDQgMi45MDV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzWERpYW1vbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy45ODcgMTZhMS41MjYgMS41MjYgMCAwIDEtMS4wNy0uNDQ4TC40NSA5LjA4MmExLjUzMSAxLjUzMSAwIDAgMSAwLTIuMTY1TDYuOTE3LjQ1YTEuNTMxIDEuNTMxIDAgMCAxIDIuMTY2IDBsNi40NjkgNi40NjhBMS41MjYgMS41MjYgMCAwIDEgMTYgOC4wMTNhMS41MjYgMS41MjYgMCAwIDEtLjQ0OCAxLjA3bC02LjQ3IDYuNDY5QTEuNTI2IDEuNTI2IDAgMCAxIDcuOTg4IDE2ek03LjYzOSAxLjE3IDQuNzY2IDQuMDQ0IDggNy4yNzhsMy4yMzQtMy4yMzRMOC4zNjEgMS4xN2EuNTEuNTEgMCAwIDAtLjcyMiAwek04LjcyMiA4bDMuMjM0IDMuMjM0IDIuODczLTIuODczYy4yLS4yLjItLjUyMyAwLS43MjJsLTIuODczLTIuODczTDguNzIyIDh6TTggOC43MjJsLTMuMjM0IDMuMjM0IDIuODczIDIuODczYy4yLjIuNTIzLjIuNzIyIDBsMi44NzMtMi44NzNMOCA4LjcyMnpNNy4yNzggOCA0LjA0NCA0Ljc2NiAxLjE3IDcuNjM5YS41MTEuNTExIDAgMCAwIDAgLjcyMmwyLjg3NCAyLjg3M0w3LjI3OCA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1hMZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjI5MyAxLjI5M2ExIDEgMCAwIDEgMS40MTQgMEw4IDYuNTg2bDUuMjkzLTUuMjkzYTEgMSAwIDEgMSAxLjQxNCAxLjQxNEw5LjQxNCA4bDUuMjkzIDUuMjkzYTEgMSAwIDAgMS0xLjQxNCAxLjQxNEw4IDkuNDE0bC01LjI5MyA1LjI5M2ExIDEgMCAwIDEtMS40MTQtMS40MTRMNi41ODYgOCAxLjI5MyAyLjcwN2ExIDEgMCAwIDEgMC0xLjQxNHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNYT2N0YWdvbkZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNDYuMTQ2QS41LjUgMCAwIDAgMTEuMTA3IDBINC44OTNhLjUuNSAwIDAgMC0uMzUzLjE0NkwuMTQ2IDQuNTRBLjUuNSAwIDAgMCAwIDQuODkzdjYuMjE0YS41LjUgMCAwIDAgLjE0Ni4zNTNsNC4zOTQgNC4zOTRhLjUuNSAwIDAgMCAuMzUzLjE0Nmg2LjIxNGEuNS41IDAgMCAwIC4zNTMtLjE0Nmw0LjM5NC00LjM5NGEuNS41IDAgMCAwIC4xNDYtLjM1M1Y0Ljg5M2EuNS41IDAgMCAwLS4xNDYtLjM1M0wxMS40Ni4xNDZ6bS02LjEwNiA0LjVMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1hPY3RhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTQuMTQ2QS41LjUgMCAwIDEgNC44OTMgMGg2LjIxNGEuNS41IDAgMCAxIC4zNTMuMTQ2bDQuMzk0IDQuMzk0YS41LjUgMCAwIDEgLjE0Ni4zNTN2Ni4yMTRhLjUuNSAwIDAgMS0uMTQ2LjM1M2wtNC4zOTQgNC4zOTRhLjUuNSAwIDAgMS0uMzUzLjE0Nkg0Ljg5M2EuNS41IDAgMCAxLS4zNTMtLjE0NkwuMTQ2IDExLjQ2QS41LjUgMCAwIDEgMCAxMS4xMDdWNC44OTNhLjUuNSAwIDAgMSAuMTQ2LS4zNTNMNC41NC4xNDZ6TTUuMSAxIDEgNS4xdjUuOEw1LjEgMTVoNS44bDQuMS00LjFWNS4xTDEwLjkgMUg1LjF6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1hTcXVhcmVGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJIMnptMy4zNTQgNC42NDZMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAxIDEgLjcwOC0uNzA4elwifX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBCc1hTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMTYgMTZcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMWExIDEgMCAwIDEgMSAxdjEyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWgxMnpNMiAwYTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjJhMiAyIDAgMCAwLTItMkgyelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHpcIn19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gQnNZb3V0dWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMDUxIDEuOTk5aC4wODljLjgyMi4wMDMgNC45ODcuMDMzIDYuMTEuMzM1YTIuMDEgMi4wMSAwIDAgMSAxLjQxNSAxLjQyYy4xMDEuMzguMTcyLjg4My4yMiAxLjQwMmwuMDEuMTA0LjAyMi4yNi4wMDguMTA0Yy4wNjUuOTE0LjA3MyAxLjc3LjA3NCAxLjk1N3YuMDc1Yy0uMDAxLjE5NC0uMDEgMS4xMDgtLjA4MiAyLjA2bC0uMDA4LjEwNS0uMDA5LjEwNGMtLjA1LjU3Mi0uMTI0IDEuMTQtLjIzNSAxLjU1OGEyLjAwNyAyLjAwNyAwIDAgMS0xLjQxNSAxLjQyYy0xLjE2LjMxMi01LjU2OS4zMzQtNi4xOC4zMzVoLS4xNDJjLS4zMDkgMC0xLjU4Ny0uMDA2LTIuOTI3LS4wNTJsLS4xNy0uMDA2LS4wODctLjAwNC0uMTcxLS4wMDctLjE3MS0uMDA3Yy0xLjExLS4wNDktMi4xNjctLjEyOC0yLjY1NC0uMjZhMi4wMDcgMi4wMDcgMCAwIDEtMS40MTUtMS40MTljLS4xMTEtLjQxNy0uMTg1LS45ODYtLjIzNS0xLjU1OEwuMDkgOS44MmwtLjAwOC0uMTA0QTMxLjQgMzEuNCAwIDAgMSAwIDcuNjh2LS4xMjNjLjAwMi0uMjE1LjAxLS45NTguMDY0LTEuNzc4bC4wMDctLjEwMy4wMDMtLjA1Mi4wMDgtLjEwNC4wMjItLjI2LjAxLS4xMDRjLjA0OC0uNTE5LjExOS0xLjAyMy4yMi0xLjQwMmEyLjAwNyAyLjAwNyAwIDAgMSAxLjQxNS0xLjQyYy40ODctLjEzIDEuNTQ0LS4yMSAyLjY1NC0uMjZsLjE3LS4wMDcuMTcyLS4wMDYuMDg2LS4wMDMuMTcxLS4wMDdBOTkuNzg4IDk5Ljc4OCAwIDAgMSA3Ljg1OCAyaC4xOTN6TTYuNCA1LjIwOXY0LjgxOGw0LjE1Ny0yLjQwOEw2LjQgNS4yMDl6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzWm9vbUluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwidmlld0JveFwiOlwiMCAwIDE2IDE2XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02LjUgMTJhNS41IDUuNSAwIDEgMCAwLTExIDUuNSA1LjUgMCAwIDAgMCAxMXpNMTMgNi41YTYuNSA2LjUgMCAxIDEtMTMgMCA2LjUgNi41IDAgMCAxIDEzIDB6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMzQ0IDExLjc0MmMuMDMuMDQuMDYyLjA3OC4wOTguMTE1bDMuODUgMy44NWExIDEgMCAwIDAgMS40MTUtMS40MTRsLTMuODUtMy44NWExLjAwNyAxLjAwNyAwIDAgMC0uMTE1LS4xIDYuNTM4IDYuNTM4IDAgMCAxLTEuMzk4IDEuNHpcIn19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi41IDNhLjUuNSAwIDAgMSAuNS41VjZoMi41YS41LjUgMCAwIDEgMCAxSDd2Mi41YS41LjUgMCAwIDEtMSAwVjdIMy41YS41LjUgMCAwIDEgMC0xSDZWMy41YS41LjUgMCAwIDEgLjUtLjV6XCJ9fV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEJzWm9vbU91dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcInZpZXdCb3hcIjpcIjAgMCAxNiAxNlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi41IDEyYTUuNSA1LjUgMCAxIDAgMC0xMSA1LjUgNS41IDAgMCAwIDAgMTF6TTEzIDYuNWE2LjUgNi41IDAgMSAxLTEzIDAgNi41IDYuNSAwIDAgMSAxMyAwelwifX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjM0NCAxMS43NDJjLjAzLjA0LjA2Mi4wNzguMDk4LjExNWwzLjg1IDMuODVhMSAxIDAgMCAwIDEuNDE1LTEuNDE0bC0zLjg1LTMuODVhMS4wMDcgMS4wMDcgMCAwIDAtLjExNS0uMSA2LjUzOCA2LjUzOCAwIDAgMS0xLjM5OCAxLjR6XCJ9fSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgNi41YS41LjUgMCAwIDEgLjUtLjVoNmEuNS41IDAgMCAxIDAgMWgtNmEuNS41IDAgMCAxLS41LS41elwifX1dfSkocHJvcHMpO1xufTtcbiIsImltcG9ydCB7IEJzRmlsbFF1ZXN0aW9uQ2lyY2xlRmlsbCB9IGZyb20gXCJyZWFjdC1pY29ucy9ic1wiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5cclxuLyoqIENvbXBvbmVudCByZXByZXNlbnRpbmcgYSB0b29sdGlwLCB3aGljaCB3aGVuIGhvdmVyZWQgc2hvd3MgdGhlIGBvdmVybGF5Q29udGVudGAgKi9cclxuZXhwb3J0IGNvbnN0IFRvb2x0aXA6IFJlYWN0LkZDPHsgb3ZlcmxheUNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZSB9PiA9IChwcm9wcykgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvb2x0aXBcIj5cclxuICAgICAgICAgICAgPEJzRmlsbFF1ZXN0aW9uQ2lyY2xlRmlsbCBjbGFzc05hbWU9XCJ0b29sdGlwLWljb25cIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvb2x0aXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+e3Byb3BzLm92ZXJsYXlDb250ZW50fTwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG59O1xyXG4iLCJmdW5jdGlvbiB0KHQpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT10JiYxPT09dC5ub2RlVHlwZX1mdW5jdGlvbiBlKHQsZSl7cmV0dXJuKCFlfHxcImhpZGRlblwiIT09dCkmJlwidmlzaWJsZVwiIT09dCYmXCJjbGlwXCIhPT10fWZ1bmN0aW9uIG4odCxuKXtpZih0LmNsaWVudEhlaWdodDx0LnNjcm9sbEhlaWdodHx8dC5jbGllbnRXaWR0aDx0LnNjcm9sbFdpZHRoKXt2YXIgcj1nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk7cmV0dXJuIGUoci5vdmVyZmxvd1ksbil8fGUoci5vdmVyZmxvd1gsbil8fGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCF0Lm93bmVyRG9jdW1lbnR8fCF0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpcmV0dXJuIG51bGw7dHJ5e3JldHVybiB0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50fWNhdGNoKHQpe3JldHVybiBudWxsfX0odCk7cmV0dXJuISFlJiYoZS5jbGllbnRIZWlnaHQ8dC5zY3JvbGxIZWlnaHR8fGUuY2xpZW50V2lkdGg8dC5zY3JvbGxXaWR0aCl9KHQpfXJldHVybiExfWZ1bmN0aW9uIHIodCxlLG4scixpLG8sbCxkKXtyZXR1cm4gbzx0JiZsPmV8fG8+dCYmbDxlPzA6bzw9dCYmZDw9bnx8bD49ZSYmZD49bj9vLXQtcjpsPmUmJmQ8bnx8bzx0JiZkPm4/bC1lK2k6MH12YXIgaT1mdW5jdGlvbihlLGkpe3ZhciBvPXdpbmRvdyxsPWkuc2Nyb2xsTW9kZSxkPWkuYmxvY2ssZj1pLmlubGluZSxoPWkuYm91bmRhcnksdT1pLnNraXBPdmVyZmxvd0hpZGRlbkVsZW1lbnRzLHM9XCJmdW5jdGlvblwiPT10eXBlb2YgaD9oOmZ1bmN0aW9uKHQpe3JldHVybiB0IT09aH07aWYoIXQoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgdGFyZ2V0XCIpO2Zvcih2YXIgYSxjLGc9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHA9W10sbT1lO3QobSkmJnMobSk7KXtpZigobT1udWxsPT0oYz0oYT1tKS5wYXJlbnRFbGVtZW50KT9hLmdldFJvb3ROb2RlKCkuaG9zdHx8bnVsbDpjKT09PWcpe3AucHVzaChtKTticmVha31udWxsIT1tJiZtPT09ZG9jdW1lbnQuYm9keSYmbihtKSYmIW4oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8bnVsbCE9bSYmbihtLHUpJiZwLnB1c2gobSl9Zm9yKHZhciB3PW8udmlzdWFsVmlld3BvcnQ/by52aXN1YWxWaWV3cG9ydC53aWR0aDppbm5lcldpZHRoLHY9by52aXN1YWxWaWV3cG9ydD9vLnZpc3VhbFZpZXdwb3J0LmhlaWdodDppbm5lckhlaWdodCxXPXdpbmRvdy5zY3JvbGxYfHxwYWdlWE9mZnNldCxIPXdpbmRvdy5zY3JvbGxZfHxwYWdlWU9mZnNldCxiPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseT1iLmhlaWdodCxFPWIud2lkdGgsTT1iLnRvcCxWPWIucmlnaHQseD1iLmJvdHRvbSxJPWIubGVmdCxDPVwic3RhcnRcIj09PWR8fFwibmVhcmVzdFwiPT09ZD9NOlwiZW5kXCI9PT1kP3g6TSt5LzIsUj1cImNlbnRlclwiPT09Zj9JK0UvMjpcImVuZFwiPT09Zj9WOkksVD1bXSxrPTA7azxwLmxlbmd0aDtrKyspe3ZhciBCPXBba10sRD1CLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE89RC5oZWlnaHQsWD1ELndpZHRoLFk9RC50b3AsTD1ELnJpZ2h0LFM9RC5ib3R0b20saj1ELmxlZnQ7aWYoXCJpZi1uZWVkZWRcIj09PWwmJk0+PTAmJkk+PTAmJng8PXYmJlY8PXcmJk0+PVkmJng8PVMmJkk+PWomJlY8PUwpcmV0dXJuIFQ7dmFyIE49Z2V0Q29tcHV0ZWRTdHlsZShCKSxxPXBhcnNlSW50KE4uYm9yZGVyTGVmdFdpZHRoLDEwKSx6PXBhcnNlSW50KE4uYm9yZGVyVG9wV2lkdGgsMTApLEE9cGFyc2VJbnQoTi5ib3JkZXJSaWdodFdpZHRoLDEwKSxGPXBhcnNlSW50KE4uYm9yZGVyQm90dG9tV2lkdGgsMTApLEc9MCxKPTAsSz1cIm9mZnNldFdpZHRoXCJpbiBCP0Iub2Zmc2V0V2lkdGgtQi5jbGllbnRXaWR0aC1xLUE6MCxQPVwib2Zmc2V0SGVpZ2h0XCJpbiBCP0Iub2Zmc2V0SGVpZ2h0LUIuY2xpZW50SGVpZ2h0LXotRjowLFE9XCJvZmZzZXRXaWR0aFwiaW4gQj8wPT09Qi5vZmZzZXRXaWR0aD8wOlgvQi5vZmZzZXRXaWR0aDowLFU9XCJvZmZzZXRIZWlnaHRcImluIEI/MD09PUIub2Zmc2V0SGVpZ2h0PzA6Ty9CLm9mZnNldEhlaWdodDowO2lmKGc9PT1CKUc9XCJzdGFydFwiPT09ZD9DOlwiZW5kXCI9PT1kP0MtdjpcIm5lYXJlc3RcIj09PWQ/cihILEgrdix2LHosRixIK0MsSCtDK3kseSk6Qy12LzIsSj1cInN0YXJ0XCI9PT1mP1I6XCJjZW50ZXJcIj09PWY/Ui13LzI6XCJlbmRcIj09PWY/Ui13OnIoVyxXK3csdyxxLEEsVytSLFcrUitFLEUpLEc9TWF0aC5tYXgoMCxHK0gpLEo9TWF0aC5tYXgoMCxKK1cpO2Vsc2V7Rz1cInN0YXJ0XCI9PT1kP0MtWS16OlwiZW5kXCI9PT1kP0MtUytGK1A6XCJuZWFyZXN0XCI9PT1kP3IoWSxTLE8seixGK1AsQyxDK3kseSk6Qy0oWStPLzIpK1AvMixKPVwic3RhcnRcIj09PWY/Ui1qLXE6XCJjZW50ZXJcIj09PWY/Ui0oaitYLzIpK0svMjpcImVuZFwiPT09Zj9SLUwrQStLOnIoaixMLFgscSxBK0ssUixSK0UsRSk7dmFyIFo9Qi5zY3JvbGxMZWZ0LCQ9Qi5zY3JvbGxUb3A7Qys9JC0oRz1NYXRoLm1heCgwLE1hdGgubWluKCQrRy9VLEIuc2Nyb2xsSGVpZ2h0LU8vVStQKSkpLFIrPVotKEo9TWF0aC5tYXgoMCxNYXRoLm1pbihaK0ovUSxCLnNjcm9sbFdpZHRoLVgvUStLKSkpfVQucHVzaCh7ZWw6Qix0b3A6RyxsZWZ0Okp9KX1yZXR1cm4gVH07ZXhwb3J0e2kgYXMgZGVmYXVsdH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cblxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XG4gIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XG4gIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG59XG5cbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcbiAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcbiAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0O1xuICB9XG4gIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICB0W3BdID0gc1twXTtcbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICB9XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcbiAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRnVuY3Rpb24gZXhwZWN0ZWRcIik7IHJldHVybiBmOyB9XG4gIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XG4gIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xuICB2YXIgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JJbiB8fCAodGFyZ2V0ID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGNvbnRleHRJbi5uYW1lKSA6IHt9KTtcbiAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcbiAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBjb250ZXh0ID0ge307XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkXCIpOyBleHRyYUluaXRpYWxpemVycy5wdXNoKGFjY2VwdChmIHx8IG51bGwpKTsgfTtcbiAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xuICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LnNldCkpIGRlc2NyaXB0b3Iuc2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoXyA9IGFjY2VwdChyZXN1bHQpKSB7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xuICAgICAgfVxuICB9XG4gIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcbiAgZG9uZSA9IHRydWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19ydW5Jbml0aWFsaXplcnModGhpc0FyZywgaW5pdGlhbGl6ZXJzLCB2YWx1ZSkge1xuICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlID0gdXNlVmFsdWUgPyBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnLCB2YWx1ZSkgOiBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnKTtcbiAgfVxuICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCIgPyB4IDogXCJcIi5jb25jYXQoeCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19zZXRGdW5jdGlvbk5hbWUoZiwgbmFtZSwgcHJlZml4KSB7XG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xuICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgfVxufVxuXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xuICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgb1trMl0gPSBtW2tdO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xuICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSBfX2NyZWF0ZUJpbmRpbmcobywgbSwgcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XG4gIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XG4gIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xuICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XG4gICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XG4gICAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XG4gIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFtKSByZXR1cm4gbztcbiAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XG4gIHRyeSB7XG4gICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcbiAgfVxuICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgfVxuICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XG4gIH1cbiAgcmV0dXJuIGFyO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcbiAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXG4gICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheXMoKSB7XG4gIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXG4gICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcbiAgICAgICAgICByW2tdID0gYVtqXTtcbiAgcmV0dXJuIHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XG4gIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XG4gICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcbiAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICB9XG4gIH1cbiAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcbiAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xuICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xuICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xuICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIsIGF3YWl0UmV0dXJuKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xuICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxuICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaWYgKGdbbl0pIHsgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgaWYgKGYpIGlbbl0gPSBmKGlbbl0pOyB9IH1cbiAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxuICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cbiAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XG4gIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xuICB2YXIgaSwgcDtcbiAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xuICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xuICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xuICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cbiAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcbiAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgcmV0dXJuIGNvb2tlZDtcbn07XG5cbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gIG9bXCJkZWZhdWx0XCJdID0gdjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XG4gIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZSwgaW5uZXI7XG4gICAgaWYgKGFzeW5jKSB7XG4gICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKCFTeW1ib2wuZGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XG4gICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xuICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xuICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XG4gIH1cbiAgZWxzZSBpZiAoYXN5bmMpIHtcbiAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcbiAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xuICBmdW5jdGlvbiBmYWlsKGUpIHtcbiAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XG4gICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuICBmdW5jdGlvbiBuZXh0KCkge1xuICAgIHdoaWxlIChlbnYuc3RhY2subGVuZ3RoKSB7XG4gICAgICB2YXIgcmVjID0gZW52LnN0YWNrLnBvcCgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlYy5kaXNwb3NlICYmIHJlYy5kaXNwb3NlLmNhbGwocmVjLnZhbHVlKTtcbiAgICAgICAgaWYgKHJlYy5hc3luYykgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpLnRoZW4obmV4dCwgZnVuY3Rpb24oZSkgeyBmYWlsKGUpOyByZXR1cm4gbmV4dCgpOyB9KTtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgZmFpbChlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVudi5oYXNFcnJvcikgdGhyb3cgZW52LmVycm9yO1xuICB9XG4gIHJldHVybiBuZXh0KCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgX19leHRlbmRzLFxuICBfX2Fzc2lnbixcbiAgX19yZXN0LFxuICBfX2RlY29yYXRlLFxuICBfX3BhcmFtLFxuICBfX21ldGFkYXRhLFxuICBfX2F3YWl0ZXIsXG4gIF9fZ2VuZXJhdG9yLFxuICBfX2NyZWF0ZUJpbmRpbmcsXG4gIF9fZXhwb3J0U3RhcixcbiAgX192YWx1ZXMsXG4gIF9fcmVhZCxcbiAgX19zcHJlYWQsXG4gIF9fc3ByZWFkQXJyYXlzLFxuICBfX3NwcmVhZEFycmF5LFxuICBfX2F3YWl0LFxuICBfX2FzeW5jR2VuZXJhdG9yLFxuICBfX2FzeW5jRGVsZWdhdG9yLFxuICBfX2FzeW5jVmFsdWVzLFxuICBfX21ha2VUZW1wbGF0ZU9iamVjdCxcbiAgX19pbXBvcnRTdGFyLFxuICBfX2ltcG9ydERlZmF1bHQsXG4gIF9fY2xhc3NQcml2YXRlRmllbGRHZXQsXG4gIF9fY2xhc3NQcml2YXRlRmllbGRTZXQsXG4gIF9fY2xhc3NQcml2YXRlRmllbGRJbixcbiAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2UsXG4gIF9fZGlzcG9zZVJlc291cmNlcyxcbn07XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjbG9uZUVsZW1lbnQsIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNGb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QtaXMnO1xuaW1wb3J0IGNvbXB1dGVTY3JvbGxJbnRvVmlldyBmcm9tICdjb21wdXRlLXNjcm9sbC1pbnRvLXZpZXcnO1xuaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tICd0c2xpYic7XG5cbmxldCBpZENvdW50ZXIgPSAwO1xuXG4vKipcbiAqIEFjY2VwdHMgYSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgaXQgaWYgaXQncyBhIGZ1bmN0aW9uXG4gKiBvciBhIG5vb3AgZnVuY3Rpb24gaWYgaXQncyBub3QuIFRoaXMgYWxsb3dzIHVzIHRvXG4gKiBhY2NlcHQgYSBjYWxsYmFjaywgYnV0IG5vdCB3b3JyeSBhYm91dCBpdCBpZiBpdCdzIG5vdFxuICogcGFzc2VkLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2IgdGhlIGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gYSBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBjYlRvQ2IoY2IpIHtcbiAgcmV0dXJuIHR5cGVvZiBjYiA9PT0gJ2Z1bmN0aW9uJyA/IGNiIDogbm9vcDtcbn1cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vKipcbiAqIFNjcm9sbCBub2RlIGludG8gdmlldyBpZiBuZWNlc3NhcnlcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG5vZGUgdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgc2Nyb2xsIGludG8gdmlld1xuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbWVudU5vZGUgdGhlIG1lbnUgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50XG4gKi9cbmZ1bmN0aW9uIHNjcm9sbEludG9WaWV3KG5vZGUsIG1lbnVOb2RlKSB7XG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBhY3Rpb25zID0gY29tcHV0ZVNjcm9sbEludG9WaWV3KG5vZGUsIHtcbiAgICBib3VuZGFyeTogbWVudU5vZGUsXG4gICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICBzY3JvbGxNb2RlOiAnaWYtbmVlZGVkJ1xuICB9KTtcbiAgYWN0aW9ucy5mb3JFYWNoKF9yZWYgPT4ge1xuICAgIGxldCB7XG4gICAgICBlbCxcbiAgICAgIHRvcCxcbiAgICAgIGxlZnRcbiAgICB9ID0gX3JlZjtcbiAgICBlbC5zY3JvbGxUb3AgPSB0b3A7XG4gICAgZWwuc2Nyb2xsTGVmdCA9IGxlZnQ7XG4gIH0pO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHBhcmVudCB0aGUgcGFyZW50IG5vZGVcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGNoaWxkIHRoZSBjaGlsZCBub2RlXG4gKiBAcGFyYW0ge1dpbmRvd30gZW52aXJvbm1lbnQgVGhlIHdpbmRvdyBjb250ZXh0IHdoZXJlIGRvd25zaGlmdCByZW5kZXJzLlxuICogQHJldHVybiB7Qm9vbGVhbn0gd2hldGhlciB0aGUgcGFyZW50IGlzIHRoZSBjaGlsZCBvciB0aGUgY2hpbGQgaXMgaW4gdGhlIHBhcmVudFxuICovXG5mdW5jdGlvbiBpc09yQ29udGFpbnNOb2RlKHBhcmVudCwgY2hpbGQsIGVudmlyb25tZW50KSB7XG4gIGNvbnN0IHJlc3VsdCA9IHBhcmVudCA9PT0gY2hpbGQgfHwgY2hpbGQgaW5zdGFuY2VvZiBlbnZpcm9ubWVudC5Ob2RlICYmIHBhcmVudC5jb250YWlucyAmJiBwYXJlbnQuY29udGFpbnMoY2hpbGQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFNpbXBsZSBkZWJvdW5jZSBpbXBsZW1lbnRhdGlvbi4gV2lsbCBjYWxsIHRoZSBnaXZlblxuICogZnVuY3Rpb24gb25jZSBhZnRlciB0aGUgdGltZSBnaXZlbiBoYXMgcGFzc2VkIHNpbmNlXG4gKiBpdCB3YXMgbGFzdCBjYWxsZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiB0aGUgZnVuY3Rpb24gdG8gY2FsbCBhZnRlciB0aGUgdGltZVxuICogQHBhcmFtIHtOdW1iZXJ9IHRpbWUgdGhlIHRpbWUgdG8gd2FpdFxuICogQHJldHVybiB7RnVuY3Rpb259IHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHRpbWUpIHtcbiAgbGV0IHRpbWVvdXRJZDtcbiAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgIGlmICh0aW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgY2FuY2VsKCk7XG4gICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aW1lb3V0SWQgPSBudWxsO1xuICAgICAgZm4oLi4uYXJncyk7XG4gICAgfSwgdGltZSk7XG4gIH1cbiAgd3JhcHBlci5jYW5jZWwgPSBjYW5jZWw7XG4gIHJldHVybiB3cmFwcGVyO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBjb21wb3NlIGV2ZW50IGhhbmRsZXJzLlxuICogVGhleSBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIgdW50aWwgb25lIG9mIHRoZW0gc2V0c1xuICogYGV2ZW50LnByZXZlbnREb3duc2hpZnREZWZhdWx0ID0gdHJ1ZWAuXG4gKiBAcGFyYW0gey4uLkZ1bmN0aW9ufSBmbnMgdGhlIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gdGhlIGV2ZW50IGhhbmRsZXIgdG8gYWRkIHRvIGFuIGVsZW1lbnRcbiAqL1xuZnVuY3Rpb24gY2FsbEFsbEV2ZW50SGFuZGxlcnMoKSB7XG4gIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgZm5zID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgZm5zW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMyA+IDEgPyBfbGVuMyAtIDEgOiAwKSwgX2tleTMgPSAxOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7XG4gICAgICBhcmdzW19rZXkzIC0gMV0gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgIH1cbiAgICByZXR1cm4gZm5zLnNvbWUoZm4gPT4ge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIGZuKGV2ZW50LCAuLi5hcmdzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBldmVudC5wcmV2ZW50RG93bnNoaWZ0RGVmYXVsdCB8fCBldmVudC5oYXNPd25Qcm9wZXJ0eSgnbmF0aXZlRXZlbnQnKSAmJiBldmVudC5uYXRpdmVFdmVudC5wcmV2ZW50RG93bnNoaWZ0RGVmYXVsdDtcbiAgICB9KTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGhhbmRsZVJlZnMoKSB7XG4gIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgcmVmcyA9IG5ldyBBcnJheShfbGVuNCksIF9rZXk0ID0gMDsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgIHJlZnNbX2tleTRdID0gYXJndW1lbnRzW19rZXk0XTtcbiAgfVxuICByZXR1cm4gbm9kZSA9PiB7XG4gICAgcmVmcy5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYobm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHJlZikge1xuICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogVGhpcyBnZW5lcmF0ZXMgYSB1bmlxdWUgSUQgZm9yIGFuIGluc3RhbmNlIG9mIERvd25zaGlmdFxuICogQHJldHVybiB7U3RyaW5nfSB0aGUgdW5pcXVlIElEXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlSWQoKSB7XG4gIHJldHVybiBTdHJpbmcoaWRDb3VudGVyKyspO1xufVxuXG4vKipcbiAqIFJlc2V0cyBpZENvdW50ZXIgdG8gMC4gVXNlZCBmb3IgU1NSLlxuICovXG5mdW5jdGlvbiByZXNldElkQ291bnRlcigpIHtcbiAgaWRDb3VudGVyID0gMDtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBzdGF0dXMgbWVzc2FnZS4gT25seSBhZGRlZCB3aGVuIG1lbnUgaXMgb3Blbi5cbiAqIFdpbGwgc3BlY2lmeSBpZiB0aGVyZSBhcmUgcmVzdWx0cyBpbiB0aGUgbGlzdCwgYW5kIGlmIHNvLCBob3cgbWFueSxcbiAqIGFuZCB3aGF0IGtleXMgYXJlIHJlbGV2YW50LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbSB0aGUgZG93bnNoaWZ0IHN0YXRlIGFuZCBvdGhlciByZWxldmFudCBwcm9wZXJ0aWVzXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHRoZSBhMTF5IHN0YXR1cyBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIGdldEExMXlTdGF0dXNNZXNzYWdlJDEoX3JlZjIpIHtcbiAgbGV0IHtcbiAgICBpc09wZW4sXG4gICAgcmVzdWx0Q291bnQsXG4gICAgcHJldmlvdXNSZXN1bHRDb3VudFxuICB9ID0gX3JlZjI7XG4gIGlmICghaXNPcGVuKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmICghcmVzdWx0Q291bnQpIHtcbiAgICByZXR1cm4gJ05vIHJlc3VsdHMgYXJlIGF2YWlsYWJsZS4nO1xuICB9XG4gIGlmIChyZXN1bHRDb3VudCAhPT0gcHJldmlvdXNSZXN1bHRDb3VudCkge1xuICAgIHJldHVybiBgJHtyZXN1bHRDb3VudH0gcmVzdWx0JHtyZXN1bHRDb3VudCA9PT0gMSA/ICcgaXMnIDogJ3MgYXJlJ30gYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4gUHJlc3MgRW50ZXIga2V5IHRvIHNlbGVjdC5gO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBUYWtlcyBhbiBhcmd1bWVudCBhbmQgaWYgaXQncyBhbiBhcnJheSwgcmV0dXJucyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXlcbiAqIG90aGVyd2lzZSByZXR1cm5zIHRoZSBhcmd1bWVudFxuICogQHBhcmFtIHsqfSBhcmcgdGhlIG1heWJlLWFycmF5XG4gKiBAcGFyYW0geyp9IGRlZmF1bHRWYWx1ZSB0aGUgdmFsdWUgaWYgYXJnIGlzIGZhbHNleSBub3QgZGVmaW5lZFxuICogQHJldHVybiB7Kn0gdGhlIGFyZyBvciBpdCdzIGZpcnN0IGl0ZW1cbiAqL1xuZnVuY3Rpb24gdW53cmFwQXJyYXkoYXJnLCBkZWZhdWx0VmFsdWUpIHtcbiAgYXJnID0gQXJyYXkuaXNBcnJheShhcmcpID8gLyogaXN0YW5idWwgaWdub3JlIG5leHQgKHByZWFjdCkgKi9hcmdbMF0gOiBhcmc7XG4gIGlmICghYXJnICYmIGRlZmF1bHRWYWx1ZSkge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGFyZztcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7T2JqZWN0fSBlbGVtZW50IChQKXJlYWN0IGVsZW1lbnRcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHdoZXRoZXIgaXQncyBhIERPTSBlbGVtZW50XG4gKi9cbmZ1bmN0aW9uIGlzRE9NRWxlbWVudChlbGVtZW50KSB7XG5cbiAgLy8gdGhlbiB3ZSBhc3N1bWUgdGhpcyBpcyByZWFjdFxuICByZXR1cm4gdHlwZW9mIGVsZW1lbnQudHlwZSA9PT0gJ3N0cmluZyc7XG59XG5cbi8qKlxuICogQHBhcmFtIHtPYmplY3R9IGVsZW1lbnQgKFApcmVhY3QgZWxlbWVudFxuICogQHJldHVybiB7T2JqZWN0fSB0aGUgcHJvcHNcbiAqL1xuZnVuY3Rpb24gZ2V0RWxlbWVudFByb3BzKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQucHJvcHM7XG59XG5cbi8qKlxuICogVGhyb3dzIGEgaGVscGZ1bCBlcnJvciBtZXNzYWdlIGZvciByZXF1aXJlZCBwcm9wZXJ0aWVzLiBVc2VmdWxcbiAqIHRvIGJlIHVzZWQgYXMgYSBkZWZhdWx0IGluIGRlc3RydWN0dXJpbmcgb3Igb2JqZWN0IHBhcmFtcy5cbiAqIEBwYXJhbSB7U3RyaW5nfSBmbk5hbWUgdGhlIGZ1bmN0aW9uIG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wTmFtZSB0aGUgcHJvcCBuYW1lXG4gKi9cbmZ1bmN0aW9uIHJlcXVpcmVkUHJvcChmbk5hbWUsIHByb3BOYW1lKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoYFRoZSBwcm9wZXJ0eSBcIiR7cHJvcE5hbWV9XCIgaXMgcmVxdWlyZWQgaW4gXCIke2ZuTmFtZX1cImApO1xufVxuY29uc3Qgc3RhdGVLZXlzID0gWydoaWdobGlnaHRlZEluZGV4JywgJ2lucHV0VmFsdWUnLCAnaXNPcGVuJywgJ3NlbGVjdGVkSXRlbScsICd0eXBlJ107XG4vKipcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSB0aGUgc3RhdGUgb2JqZWN0XG4gKiBAcmV0dXJuIHtPYmplY3R9IHN0YXRlIHRoYXQgaXMgcmVsZXZhbnQgdG8gZG93bnNoaWZ0XG4gKi9cbmZ1bmN0aW9uIHBpY2tTdGF0ZShzdGF0ZSkge1xuICBpZiAoc3RhdGUgPT09IHZvaWQgMCkge1xuICAgIHN0YXRlID0ge307XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIHN0YXRlS2V5cy5mb3JFYWNoKGsgPT4ge1xuICAgIGlmIChzdGF0ZS5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgcmVzdWx0W2tdID0gc3RhdGVba107XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBUaGlzIHdpbGwgcGVyZm9ybSBhIHNoYWxsb3cgbWVyZ2Ugb2YgdGhlIGdpdmVuIHN0YXRlIG9iamVjdFxuICogd2l0aCB0aGUgc3RhdGUgY29taW5nIGZyb20gcHJvcHNcbiAqIChmb3IgdGhlIGNvbnRyb2xsZWQgY29tcG9uZW50IHNjZW5hcmlvKVxuICogVGhpcyBpcyB1c2VkIGluIHN0YXRlIHVwZGF0ZXIgZnVuY3Rpb25zIHNvIHRoZXkncmUgcmVmZXJlbmNpbmdcbiAqIHRoZSByaWdodCBzdGF0ZSByZWdhcmRsZXNzIG9mIHdoZXJlIGl0IGNvbWVzIGZyb20uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50L2hvb2suXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgVGhlIHByb3BzIHRoYXQgbWF5IGNvbnRhaW4gY29udHJvbGxlZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgbWVyZ2VkIGNvbnRyb2xsZWQgc3RhdGUuXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXRlKHN0YXRlLCBwcm9wcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZSgocHJldlN0YXRlLCBrZXkpID0+IHtcbiAgICBwcmV2U3RhdGVba2V5XSA9IGlzQ29udHJvbGxlZFByb3AocHJvcHMsIGtleSkgPyBwcm9wc1trZXldIDogc3RhdGVba2V5XTtcbiAgICByZXR1cm4gcHJldlN0YXRlO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogVGhpcyBkZXRlcm1pbmVzIHdoZXRoZXIgYSBwcm9wIGlzIGEgXCJjb250cm9sbGVkIHByb3BcIiBtZWFuaW5nIGl0IGlzXG4gKiBzdGF0ZSB3aGljaCBpcyBjb250cm9sbGVkIGJ5IHRoZSBvdXRzaWRlIG9mIHRoaXMgY29tcG9uZW50IHJhdGhlclxuICogdGhhbiB3aXRoaW4gdGhpcyBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIFRoZSBwcm9wcyB0aGF0IG1heSBjb250YWluIGNvbnRyb2xsZWQgdmFsdWVzLlxuICogQHBhcmFtIHtTdHJpbmd9IGtleSB0aGUga2V5IHRvIGNoZWNrXG4gKiBAcmV0dXJuIHtCb29sZWFufSB3aGV0aGVyIGl0IGlzIGEgY29udHJvbGxlZCBjb250cm9sbGVkIHByb3BcbiAqL1xuZnVuY3Rpb24gaXNDb250cm9sbGVkUHJvcChwcm9wcywga2V5KSB7XG4gIHJldHVybiBwcm9wc1trZXldICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyB0aGUgJ2tleScgcHJvcGVydHkgb2YgYSBLZXlib2FyZEV2ZW50IGluIElFL0VkZ2VcbiAqIEBwYXJhbSB7T2JqZWN0fSBldmVudCBhIGtleWJvYXJkRXZlbnQgb2JqZWN0XG4gKiBAcmV0dXJuIHtTdHJpbmd9IGtleWJvYXJkIGtleVxuICovXG5mdW5jdGlvbiBub3JtYWxpemVBcnJvd0tleShldmVudCkge1xuICBjb25zdCB7XG4gICAga2V5LFxuICAgIGtleUNvZGVcbiAgfSA9IGV2ZW50O1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAoaWUpICovXG4gIGlmIChrZXlDb2RlID49IDM3ICYmIGtleUNvZGUgPD0gNDAgJiYga2V5LmluZGV4T2YoJ0Fycm93JykgIT09IDApIHtcbiAgICByZXR1cm4gYEFycm93JHtrZXl9YDtcbiAgfVxuICByZXR1cm4ga2V5O1xufVxuXG4vKipcbiAqIFNpbXBsZSBjaGVjayBpZiB0aGUgdmFsdWUgcGFzc2VkIGlzIG9iamVjdCBsaXRlcmFsXG4gKiBAcGFyYW0geyp9IG9iaiBhbnkgdGhpbmdzXG4gKiBAcmV0dXJuIHtCb29sZWFufSB3aGV0aGVyIGl0J3Mgb2JqZWN0IGxpdGVyYWxcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBPYmplY3RdJztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBuZXcgaW5kZXggaW4gdGhlIGxpc3QsIGluIGEgY2lyY3VsYXIgd2F5LiBJZiBuZXh0IHZhbHVlIGlzIG91dCBvZiBib25kcyBmcm9tIHRoZSB0b3RhbCxcbiAqIGl0IHdpbGwgd3JhcCB0byBlaXRoZXIgMCBvciBpdGVtQ291bnQgLSAxLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBtb3ZlQW1vdW50IE51bWJlciBvZiBwb3NpdGlvbnMgdG8gbW92ZS4gTmVnYXRpdmUgdG8gbW92ZSBiYWNrd2FyZHMsIHBvc2l0aXZlIGZvcndhcmRzLlxuICogQHBhcmFtIHtudW1iZXJ9IGJhc2VJbmRleCBUaGUgaW5pdGlhbCBwb3NpdGlvbiB0byBtb3ZlIGZyb20uXG4gKiBAcGFyYW0ge251bWJlcn0gaXRlbUNvdW50IFRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBnZXRJdGVtTm9kZUZyb21JbmRleCBVc2VkIHRvIGNoZWNrIGlmIGl0ZW0gaXMgZGlzYWJsZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGNpcmN1bGFyIFNwZWNpZnkgaWYgbmF2aWdhdGlvbiBpcyBjaXJjdWxhci4gRGVmYXVsdCBpcyB0cnVlLlxuICogQHJldHVybnMge251bWJlcn0gVGhlIG5ldyBpbmRleCBhZnRlciB0aGUgbW92ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0TmV4dFdyYXBwaW5nSW5kZXgobW92ZUFtb3VudCwgYmFzZUluZGV4LCBpdGVtQ291bnQsIGdldEl0ZW1Ob2RlRnJvbUluZGV4LCBjaXJjdWxhcikge1xuICBpZiAoY2lyY3VsYXIgPT09IHZvaWQgMCkge1xuICAgIGNpcmN1bGFyID0gdHJ1ZTtcbiAgfVxuICBpZiAoaXRlbUNvdW50ID09PSAwKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGNvbnN0IGl0ZW1zTGFzdEluZGV4ID0gaXRlbUNvdW50IC0gMTtcbiAgaWYgKHR5cGVvZiBiYXNlSW5kZXggIT09ICdudW1iZXInIHx8IGJhc2VJbmRleCA8IDAgfHwgYmFzZUluZGV4ID49IGl0ZW1Db3VudCkge1xuICAgIGJhc2VJbmRleCA9IG1vdmVBbW91bnQgPiAwID8gLTEgOiBpdGVtc0xhc3RJbmRleCArIDE7XG4gIH1cbiAgbGV0IG5ld0luZGV4ID0gYmFzZUluZGV4ICsgbW92ZUFtb3VudDtcbiAgaWYgKG5ld0luZGV4IDwgMCkge1xuICAgIG5ld0luZGV4ID0gY2lyY3VsYXIgPyBpdGVtc0xhc3RJbmRleCA6IDA7XG4gIH0gZWxzZSBpZiAobmV3SW5kZXggPiBpdGVtc0xhc3RJbmRleCkge1xuICAgIG5ld0luZGV4ID0gY2lyY3VsYXIgPyAwIDogaXRlbXNMYXN0SW5kZXg7XG4gIH1cbiAgY29uc3Qgbm9uRGlzYWJsZWROZXdJbmRleCA9IGdldE5leHROb25EaXNhYmxlZEluZGV4KG1vdmVBbW91bnQsIG5ld0luZGV4LCBpdGVtQ291bnQsIGdldEl0ZW1Ob2RlRnJvbUluZGV4LCBjaXJjdWxhcik7XG4gIGlmIChub25EaXNhYmxlZE5ld0luZGV4ID09PSAtMSkge1xuICAgIHJldHVybiBiYXNlSW5kZXggPj0gaXRlbUNvdW50ID8gLTEgOiBiYXNlSW5kZXg7XG4gIH1cbiAgcmV0dXJuIG5vbkRpc2FibGVkTmV3SW5kZXg7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbmV4dCBpbmRleCBpbiB0aGUgbGlzdCBvZiBhbiBpdGVtIHRoYXQgaXMgbm90IGRpc2FibGVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBtb3ZlQW1vdW50IE51bWJlciBvZiBwb3NpdGlvbnMgdG8gbW92ZS4gTmVnYXRpdmUgdG8gbW92ZSBiYWNrd2FyZHMsIHBvc2l0aXZlIGZvcndhcmRzLlxuICogQHBhcmFtIHtudW1iZXJ9IGJhc2VJbmRleCBUaGUgaW5pdGlhbCBwb3NpdGlvbiB0byBtb3ZlIGZyb20uXG4gKiBAcGFyYW0ge251bWJlcn0gaXRlbUNvdW50IFRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBnZXRJdGVtTm9kZUZyb21JbmRleCBVc2VkIHRvIGNoZWNrIGlmIGl0ZW0gaXMgZGlzYWJsZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGNpcmN1bGFyIFNwZWNpZnkgaWYgbmF2aWdhdGlvbiBpcyBjaXJjdWxhci4gRGVmYXVsdCBpcyB0cnVlLlxuICogQHJldHVybnMge251bWJlcn0gVGhlIG5ldyBpbmRleC4gUmV0dXJucyBiYXNlSW5kZXggaWYgaXRlbSBpcyBub3QgZGlzYWJsZWQuIFJldHVybnMgbmV4dCBub24tZGlzYWJsZWQgaXRlbSBvdGhlcndpc2UuIElmIG5vIG5vbi1kaXNhYmxlZCBmb3VuZCBpdCB3aWxsIHJldHVybiAtMS5cbiAqL1xuZnVuY3Rpb24gZ2V0TmV4dE5vbkRpc2FibGVkSW5kZXgobW92ZUFtb3VudCwgYmFzZUluZGV4LCBpdGVtQ291bnQsIGdldEl0ZW1Ob2RlRnJvbUluZGV4LCBjaXJjdWxhcikge1xuICBjb25zdCBjdXJyZW50RWxlbWVudE5vZGUgPSBnZXRJdGVtTm9kZUZyb21JbmRleChiYXNlSW5kZXgpO1xuICBpZiAoIWN1cnJlbnRFbGVtZW50Tm9kZSB8fCAhY3VycmVudEVsZW1lbnROb2RlLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgIHJldHVybiBiYXNlSW5kZXg7XG4gIH1cbiAgaWYgKG1vdmVBbW91bnQgPiAwKSB7XG4gICAgZm9yIChsZXQgaW5kZXggPSBiYXNlSW5kZXggKyAxOyBpbmRleCA8IGl0ZW1Db3VudDsgaW5kZXgrKykge1xuICAgICAgaWYgKCFnZXRJdGVtTm9kZUZyb21JbmRleChpbmRleCkuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yIChsZXQgaW5kZXggPSBiYXNlSW5kZXggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgICBpZiAoIWdldEl0ZW1Ob2RlRnJvbUluZGV4KGluZGV4KS5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoY2lyY3VsYXIpIHtcbiAgICByZXR1cm4gbW92ZUFtb3VudCA+IDAgPyBnZXROZXh0Tm9uRGlzYWJsZWRJbmRleCgxLCAwLCBpdGVtQ291bnQsIGdldEl0ZW1Ob2RlRnJvbUluZGV4LCBmYWxzZSkgOiBnZXROZXh0Tm9uRGlzYWJsZWRJbmRleCgtMSwgaXRlbUNvdW50IC0gMSwgaXRlbUNvdW50LCBnZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpO1xuICB9XG4gIHJldHVybiAtMTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgZXZlbnQgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgZG93bnNoaWZ0IGVsZW1lbnRzLlxuICpcbiAqIEBwYXJhbSB7RXZlbnRUYXJnZXR9IHRhcmdldCBUYXJnZXQgdG8gY2hlY2suXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50W119IGRvd25zaGlmdEVsZW1lbnRzIFRoZSBlbGVtZW50cyB0aGF0IGZvcm0gZG93bnNoaWZ0IChsaXN0LCB0b2dnbGUgYnV0dG9uIGV0YykuXG4gKiBAcGFyYW0ge1dpbmRvd30gZW52aXJvbm1lbnQgVGhlIHdpbmRvdyBjb250ZXh0IHdoZXJlIGRvd25zaGlmdCByZW5kZXJzLlxuICogQHBhcmFtIHtib29sZWFufSBjaGVja0FjdGl2ZUVsZW1lbnQgV2hldGhlciB0byBhbHNvIGNoZWNrIGFjdGl2ZUVsZW1lbnQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgb3Igbm90IHRoZSB0YXJnZXQgaXMgd2l0aGluIGRvd25zaGlmdCBlbGVtZW50cy5cbiAqL1xuZnVuY3Rpb24gdGFyZ2V0V2l0aGluRG93bnNoaWZ0KHRhcmdldCwgZG93bnNoaWZ0RWxlbWVudHMsIGVudmlyb25tZW50LCBjaGVja0FjdGl2ZUVsZW1lbnQpIHtcbiAgaWYgKGNoZWNrQWN0aXZlRWxlbWVudCA9PT0gdm9pZCAwKSB7XG4gICAgY2hlY2tBY3RpdmVFbGVtZW50ID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZG93bnNoaWZ0RWxlbWVudHMuc29tZShjb250ZXh0Tm9kZSA9PiBjb250ZXh0Tm9kZSAmJiAoaXNPckNvbnRhaW5zTm9kZShjb250ZXh0Tm9kZSwgdGFyZ2V0LCBlbnZpcm9ubWVudCkgfHwgY2hlY2tBY3RpdmVFbGVtZW50ICYmIGlzT3JDb250YWluc05vZGUoY29udGV4dE5vZGUsIGVudmlyb25tZW50LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsIGVudmlyb25tZW50KSkpO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xubGV0IHZhbGlkYXRlQ29udHJvbGxlZFVuY2hhbmdlZCA9IG5vb3A7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFsaWRhdGVDb250cm9sbGVkVW5jaGFuZ2VkID0gKHN0YXRlLCBwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIGNvbnN0IHdhcm5pbmdEZXNjcmlwdGlvbiA9IGBUaGlzIHByb3Agc2hvdWxkIG5vdCBzd2l0Y2ggZnJvbSBjb250cm9sbGVkIHRvIHVuY29udHJvbGxlZCAob3IgdmljZSB2ZXJzYSkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgRG93bnNoaWZ0IGVsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0aHViLmNvbS9kb3duc2hpZnQtanMvZG93bnNoaWZ0I2NvbnRyb2wtcHJvcHNgO1xuICAgIE9iamVjdC5rZXlzKHN0YXRlKS5mb3JFYWNoKHByb3BLZXkgPT4ge1xuICAgICAgaWYgKHByZXZQcm9wc1twcm9wS2V5XSAhPT0gdW5kZWZpbmVkICYmIG5leHRQcm9wc1twcm9wS2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGRvd25zaGlmdDogQSBjb21wb25lbnQgaGFzIGNoYW5nZWQgdGhlIGNvbnRyb2xsZWQgcHJvcCBcIiR7cHJvcEtleX1cIiB0byBiZSB1bmNvbnRyb2xsZWQuICR7d2FybmluZ0Rlc2NyaXB0aW9ufWApO1xuICAgICAgfSBlbHNlIGlmIChwcmV2UHJvcHNbcHJvcEtleV0gPT09IHVuZGVmaW5lZCAmJiBuZXh0UHJvcHNbcHJvcEtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKGBkb3duc2hpZnQ6IEEgY29tcG9uZW50IGhhcyBjaGFuZ2VkIHRoZSB1bmNvbnRyb2xsZWQgcHJvcCBcIiR7cHJvcEtleX1cIiB0byBiZSBjb250cm9sbGVkLiAke3dhcm5pbmdEZXNjcmlwdGlvbn1gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn1cblxuY29uc3QgY2xlYW51cFN0YXR1cyA9IGRlYm91bmNlKGRvY3VtZW50UHJvcCA9PiB7XG4gIGdldFN0YXR1c0Rpdihkb2N1bWVudFByb3ApLnRleHRDb250ZW50ID0gJyc7XG59LCA1MDApO1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdGF0dXMgdGhlIHN0YXR1cyBtZXNzYWdlXG4gKiBAcGFyYW0ge09iamVjdH0gZG9jdW1lbnRQcm9wIGRvY3VtZW50IHBhc3NlZCBieSB0aGUgdXNlci5cbiAqL1xuZnVuY3Rpb24gc2V0U3RhdHVzKHN0YXR1cywgZG9jdW1lbnRQcm9wKSB7XG4gIGNvbnN0IGRpdiA9IGdldFN0YXR1c0Rpdihkb2N1bWVudFByb3ApO1xuICBpZiAoIXN0YXR1cykge1xuICAgIHJldHVybjtcbiAgfVxuICBkaXYudGV4dENvbnRlbnQgPSBzdGF0dXM7XG4gIGNsZWFudXBTdGF0dXMoZG9jdW1lbnRQcm9wKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHN0YXR1cyBub2RlIG9yIGNyZWF0ZSBpdCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LlxuICogQHBhcmFtIHtPYmplY3R9IGRvY3VtZW50UHJvcCBkb2N1bWVudCBwYXNzZWQgYnkgdGhlIHVzZXIuXG4gKiBAcmV0dXJuIHtIVE1MRWxlbWVudH0gdGhlIHN0YXR1cyBub2RlLlxuICovXG5mdW5jdGlvbiBnZXRTdGF0dXNEaXYoZG9jdW1lbnRQcm9wKSB7XG4gIGlmIChkb2N1bWVudFByb3AgPT09IHZvaWQgMCkge1xuICAgIGRvY3VtZW50UHJvcCA9IGRvY3VtZW50O1xuICB9XG4gIGxldCBzdGF0dXNEaXYgPSBkb2N1bWVudFByb3AuZ2V0RWxlbWVudEJ5SWQoJ2ExMXktc3RhdHVzLW1lc3NhZ2UnKTtcbiAgaWYgKHN0YXR1c0Rpdikge1xuICAgIHJldHVybiBzdGF0dXNEaXY7XG4gIH1cbiAgc3RhdHVzRGl2ID0gZG9jdW1lbnRQcm9wLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBzdGF0dXNEaXYuc2V0QXR0cmlidXRlKCdpZCcsICdhMTF5LXN0YXR1cy1tZXNzYWdlJyk7XG4gIHN0YXR1c0Rpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnc3RhdHVzJyk7XG4gIHN0YXR1c0Rpdi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGl2ZScsICdwb2xpdGUnKTtcbiAgc3RhdHVzRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1yZWxldmFudCcsICdhZGRpdGlvbnMgdGV4dCcpO1xuICBPYmplY3QuYXNzaWduKHN0YXR1c0Rpdi5zdHlsZSwge1xuICAgIGJvcmRlcjogJzAnLFxuICAgIGNsaXA6ICdyZWN0KDAgMCAwIDApJyxcbiAgICBoZWlnaHQ6ICcxcHgnLFxuICAgIG1hcmdpbjogJy0xcHgnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICBwYWRkaW5nOiAnMCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgd2lkdGg6ICcxcHgnXG4gIH0pO1xuICBkb2N1bWVudFByb3AuYm9keS5hcHBlbmRDaGlsZChzdGF0dXNEaXYpO1xuICByZXR1cm4gc3RhdHVzRGl2O1xufVxuXG5jb25zdCB1bmtub3duID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX3Vua25vd25fXycgOiAwO1xuY29uc3QgbW91c2VVcCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2F1dG9jb21wbGV0ZV9tb3VzZXVwX18nIDogMTtcbmNvbnN0IGl0ZW1Nb3VzZUVudGVyID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX2l0ZW1fbW91c2VlbnRlcl9fJyA6IDI7XG5jb25zdCBrZXlEb3duQXJyb3dVcCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2F1dG9jb21wbGV0ZV9rZXlkb3duX2Fycm93X3VwX18nIDogMztcbmNvbnN0IGtleURvd25BcnJvd0Rvd24gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19hdXRvY29tcGxldGVfa2V5ZG93bl9hcnJvd19kb3duX18nIDogNDtcbmNvbnN0IGtleURvd25Fc2NhcGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19hdXRvY29tcGxldGVfa2V5ZG93bl9lc2NhcGVfXycgOiA1O1xuY29uc3Qga2V5RG93bkVudGVyID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX2tleWRvd25fZW50ZXJfXycgOiA2O1xuY29uc3Qga2V5RG93bkhvbWUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19hdXRvY29tcGxldGVfa2V5ZG93bl9ob21lX18nIDogNztcbmNvbnN0IGtleURvd25FbmQgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19hdXRvY29tcGxldGVfa2V5ZG93bl9lbmRfXycgOiA4O1xuY29uc3QgY2xpY2tJdGVtID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX2NsaWNrX2l0ZW1fXycgOiA5O1xuY29uc3QgYmx1cklucHV0ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX2JsdXJfaW5wdXRfXycgOiAxMDtcbmNvbnN0IGNoYW5nZUlucHV0ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX2NoYW5nZV9pbnB1dF9fJyA6IDExO1xuY29uc3Qga2V5RG93blNwYWNlQnV0dG9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fYXV0b2NvbXBsZXRlX2tleWRvd25fc3BhY2VfYnV0dG9uX18nIDogMTI7XG5jb25zdCBjbGlja0J1dHRvbiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2F1dG9jb21wbGV0ZV9jbGlja19idXR0b25fXycgOiAxMztcbmNvbnN0IGJsdXJCdXR0b24gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19hdXRvY29tcGxldGVfYmx1cl9idXR0b25fXycgOiAxNDtcbmNvbnN0IGNvbnRyb2xsZWRQcm9wVXBkYXRlZFNlbGVjdGVkSXRlbSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2F1dG9jb21wbGV0ZV9jb250cm9sbGVkX3Byb3BfdXBkYXRlZF9zZWxlY3RlZF9pdGVtX18nIDogMTU7XG5jb25zdCB0b3VjaEVuZCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2F1dG9jb21wbGV0ZV90b3VjaGVuZF9fJyA6IDE2O1xuXG52YXIgc3RhdGVDaGFuZ2VUeXBlcyQzID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIHVua25vd246IHVua25vd24sXG4gIG1vdXNlVXA6IG1vdXNlVXAsXG4gIGl0ZW1Nb3VzZUVudGVyOiBpdGVtTW91c2VFbnRlcixcbiAga2V5RG93bkFycm93VXA6IGtleURvd25BcnJvd1VwLFxuICBrZXlEb3duQXJyb3dEb3duOiBrZXlEb3duQXJyb3dEb3duLFxuICBrZXlEb3duRXNjYXBlOiBrZXlEb3duRXNjYXBlLFxuICBrZXlEb3duRW50ZXI6IGtleURvd25FbnRlcixcbiAga2V5RG93bkhvbWU6IGtleURvd25Ib21lLFxuICBrZXlEb3duRW5kOiBrZXlEb3duRW5kLFxuICBjbGlja0l0ZW06IGNsaWNrSXRlbSxcbiAgYmx1cklucHV0OiBibHVySW5wdXQsXG4gIGNoYW5nZUlucHV0OiBjaGFuZ2VJbnB1dCxcbiAga2V5RG93blNwYWNlQnV0dG9uOiBrZXlEb3duU3BhY2VCdXR0b24sXG4gIGNsaWNrQnV0dG9uOiBjbGlja0J1dHRvbixcbiAgYmx1ckJ1dHRvbjogYmx1ckJ1dHRvbixcbiAgY29udHJvbGxlZFByb3BVcGRhdGVkU2VsZWN0ZWRJdGVtOiBjb250cm9sbGVkUHJvcFVwZGF0ZWRTZWxlY3RlZEl0ZW0sXG4gIHRvdWNoRW5kOiB0b3VjaEVuZFxufSk7XG5cbi8qIGVzbGludCBjYW1lbGNhc2U6MCAqL1xuY29uc3QgRG93bnNoaWZ0ID0gLyojX19QVVJFX18qLygoKSA9PiB7XG4gIGNsYXNzIERvd25zaGlmdCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IoX3Byb3BzKSB7XG4gICAgICB2YXIgX3RoaXM7XG4gICAgICBzdXBlcihfcHJvcHMpO1xuICAgICAgX3RoaXMgPSB0aGlzO1xuICAgICAgdGhpcy5pZCA9IHRoaXMucHJvcHMuaWQgfHwgYGRvd25zaGlmdC0ke2dlbmVyYXRlSWQoKX1gO1xuICAgICAgdGhpcy5tZW51SWQgPSB0aGlzLnByb3BzLm1lbnVJZCB8fCBgJHt0aGlzLmlkfS1tZW51YDtcbiAgICAgIHRoaXMubGFiZWxJZCA9IHRoaXMucHJvcHMubGFiZWxJZCB8fCBgJHt0aGlzLmlkfS1sYWJlbGA7XG4gICAgICB0aGlzLmlucHV0SWQgPSB0aGlzLnByb3BzLmlucHV0SWQgfHwgYCR7dGhpcy5pZH0taW5wdXRgO1xuICAgICAgdGhpcy5nZXRJdGVtSWQgPSB0aGlzLnByb3BzLmdldEl0ZW1JZCB8fCAoaW5kZXggPT4gYCR7dGhpcy5pZH0taXRlbS0ke2luZGV4fWApO1xuICAgICAgdGhpcy5pbnB1dCA9IG51bGw7XG4gICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICB0aGlzLml0ZW1Db3VudCA9IG51bGw7XG4gICAgICB0aGlzLnByZXZpb3VzUmVzdWx0Q291bnQgPSAwO1xuICAgICAgdGhpcy50aW1lb3V0SWRzID0gW107XG4gICAgICB0aGlzLmludGVybmFsU2V0VGltZW91dCA9IChmbiwgdGltZSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudGltZW91dElkcyA9IHRoaXMudGltZW91dElkcy5maWx0ZXIoaSA9PiBpICE9PSBpZCk7XG4gICAgICAgICAgZm4oKTtcbiAgICAgICAgfSwgdGltZSk7XG4gICAgICAgIHRoaXMudGltZW91dElkcy5wdXNoKGlkKTtcbiAgICAgIH07XG4gICAgICB0aGlzLnNldEl0ZW1Db3VudCA9IGNvdW50ID0+IHtcbiAgICAgICAgdGhpcy5pdGVtQ291bnQgPSBjb3VudDtcbiAgICAgIH07XG4gICAgICB0aGlzLnVuc2V0SXRlbUNvdW50ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1Db3VudCA9IG51bGw7XG4gICAgICB9O1xuICAgICAgdGhpcy5zZXRIaWdobGlnaHRlZEluZGV4ID0gZnVuY3Rpb24gKGhpZ2hsaWdodGVkSW5kZXgsIG90aGVyU3RhdGVUb1NldCkge1xuICAgICAgICBpZiAoaGlnaGxpZ2h0ZWRJbmRleCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleCA9IF90aGlzLnByb3BzLmRlZmF1bHRIaWdobGlnaHRlZEluZGV4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvdGhlclN0YXRlVG9TZXQgPT09IHZvaWQgMCkge1xuICAgICAgICAgIG90aGVyU3RhdGVUb1NldCA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIG90aGVyU3RhdGVUb1NldCA9IHBpY2tTdGF0ZShvdGhlclN0YXRlVG9TZXQpO1xuICAgICAgICBfdGhpcy5pbnRlcm5hbFNldFN0YXRlKHtcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgICAgICAgIC4uLm90aGVyU3RhdGVUb1NldFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uID0gY2IgPT4ge1xuICAgICAgICB0aGlzLmludGVybmFsU2V0U3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkSXRlbTogbnVsbCxcbiAgICAgICAgICBpbnB1dFZhbHVlOiAnJyxcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiB0aGlzLnByb3BzLmRlZmF1bHRIaWdobGlnaHRlZEluZGV4LFxuICAgICAgICAgIGlzT3BlbjogdGhpcy5wcm9wcy5kZWZhdWx0SXNPcGVuXG4gICAgICAgIH0sIGNiKTtcbiAgICAgIH07XG4gICAgICB0aGlzLnNlbGVjdEl0ZW0gPSAoaXRlbSwgb3RoZXJTdGF0ZVRvU2V0LCBjYikgPT4ge1xuICAgICAgICBvdGhlclN0YXRlVG9TZXQgPSBwaWNrU3RhdGUob3RoZXJTdGF0ZVRvU2V0KTtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFNldFN0YXRlKHtcbiAgICAgICAgICBpc09wZW46IHRoaXMucHJvcHMuZGVmYXVsdElzT3BlbixcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiB0aGlzLnByb3BzLmRlZmF1bHRIaWdobGlnaHRlZEluZGV4LFxuICAgICAgICAgIHNlbGVjdGVkSXRlbTogaXRlbSxcbiAgICAgICAgICBpbnB1dFZhbHVlOiB0aGlzLnByb3BzLml0ZW1Ub1N0cmluZyhpdGVtKSxcbiAgICAgICAgICAuLi5vdGhlclN0YXRlVG9TZXRcbiAgICAgICAgfSwgY2IpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbUF0SW5kZXggPSAoaXRlbUluZGV4LCBvdGhlclN0YXRlVG9TZXQsIGNiKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zW2l0ZW1JbmRleF07XG4gICAgICAgIGlmIChpdGVtID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0sIG90aGVyU3RhdGVUb1NldCwgY2IpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuc2VsZWN0SGlnaGxpZ2h0ZWRJdGVtID0gKG90aGVyU3RhdGVUb1NldCwgY2IpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0SXRlbUF0SW5kZXgodGhpcy5nZXRTdGF0ZSgpLmhpZ2hsaWdodGVkSW5kZXgsIG90aGVyU3RhdGVUb1NldCwgY2IpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW50ZXJuYWxTZXRTdGF0ZSA9IChzdGF0ZVRvU2V0LCBjYikgPT4ge1xuICAgICAgICBsZXQgaXNJdGVtU2VsZWN0ZWQsIG9uQ2hhbmdlQXJnO1xuICAgICAgICBjb25zdCBvblN0YXRlQ2hhbmdlQXJnID0ge307XG4gICAgICAgIGNvbnN0IGlzU3RhdGVUb1NldEZ1bmN0aW9uID0gdHlwZW9mIHN0YXRlVG9TZXQgPT09ICdmdW5jdGlvbic7XG5cbiAgICAgICAgLy8gd2Ugd2FudCB0byBjYWxsIGBvbklucHV0VmFsdWVDaGFuZ2VgIGJlZm9yZSB0aGUgYHNldFN0YXRlYCBjYWxsXG4gICAgICAgIC8vIHNvIHNvbWVvbmUgY29udHJvbGxpbmcgdGhlIGBpbnB1dFZhbHVlYCBzdGF0ZSBnZXRzIG5vdGlmaWVkIG9mXG4gICAgICAgIC8vIHRoZSBpbnB1dCBjaGFuZ2UgYXMgc29vbiBhcyBwb3NzaWJsZS4gVGhpcyBhdm9pZHMgaXNzdWVzIHdpdGhcbiAgICAgICAgLy8gcHJlc2VydmluZyB0aGUgY3Vyc29yIHBvc2l0aW9uLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2Rvd25zaGlmdC1qcy9kb3duc2hpZnQvaXNzdWVzLzIxNyBmb3IgbW9yZSBpbmZvLlxuICAgICAgICBpZiAoIWlzU3RhdGVUb1NldEZ1bmN0aW9uICYmIHN0YXRlVG9TZXQuaGFzT3duUHJvcGVydHkoJ2lucHV0VmFsdWUnKSkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25JbnB1dFZhbHVlQ2hhbmdlKHN0YXRlVG9TZXQuaW5wdXRWYWx1ZSwge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRTdGF0ZUFuZEhlbHBlcnMoKSxcbiAgICAgICAgICAgIC4uLnN0YXRlVG9TZXRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZXRTdGF0ZShzdGF0ZSA9PiB7XG4gICAgICAgICAgc3RhdGUgPSB0aGlzLmdldFN0YXRlKHN0YXRlKTtcbiAgICAgICAgICBsZXQgbmV3U3RhdGVUb1NldCA9IGlzU3RhdGVUb1NldEZ1bmN0aW9uID8gc3RhdGVUb1NldChzdGF0ZSkgOiBzdGF0ZVRvU2V0O1xuXG4gICAgICAgICAgLy8gWW91ciBvd24gZnVuY3Rpb24gdGhhdCBjb3VsZCBtb2RpZnkgdGhlIHN0YXRlIHRoYXQgd2lsbCBiZSBzZXQuXG4gICAgICAgICAgbmV3U3RhdGVUb1NldCA9IHRoaXMucHJvcHMuc3RhdGVSZWR1Y2VyKHN0YXRlLCBuZXdTdGF0ZVRvU2V0KTtcblxuICAgICAgICAgIC8vIGNoZWNrcyBpZiBhbiBpdGVtIGlzIHNlbGVjdGVkLCByZWdhcmRsZXNzIG9mIGlmIGl0J3MgZGlmZmVyZW50IGZyb21cbiAgICAgICAgICAvLyB3aGF0IHdhcyBzZWxlY3RlZCBiZWZvcmVcbiAgICAgICAgICAvLyB1c2VkIHRvIGRldGVybWluZSBpZiBvblNlbGVjdCBhbmQgb25DaGFuZ2UgY2FsbGJhY2tzIHNob3VsZCBiZSBjYWxsZWRcbiAgICAgICAgICBpc0l0ZW1TZWxlY3RlZCA9IG5ld1N0YXRlVG9TZXQuaGFzT3duUHJvcGVydHkoJ3NlbGVjdGVkSXRlbScpO1xuICAgICAgICAgIC8vIHRoaXMga2VlcHMgdHJhY2sgb2YgdGhlIG9iamVjdCB3ZSB3YW50IHRvIGNhbGwgd2l0aCBzZXRTdGF0ZVxuICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZSA9IHt9O1xuICAgICAgICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvbiBjaGFuZ2UgaWYgdGhlIG91dHNpZGUgd29ybGQgaXMgY29udHJvbGxpbmcgYW55IG9mIG91ciBzdGF0ZVxuICAgICAgICAgIC8vIGFuZCB3ZSdyZSB0cnlpbmcgdG8gdXBkYXRlIHRoYXQgc3RhdGUuIE9SIGlmIHRoZSBzZWxlY3Rpb24gaGFzIGNoYW5nZWQgYW5kIHdlJ3JlXG4gICAgICAgICAgLy8gdHJ5aW5nIHRvIHVwZGF0ZSB0aGUgc2VsZWN0aW9uXG4gICAgICAgICAgaWYgKGlzSXRlbVNlbGVjdGVkICYmIG5ld1N0YXRlVG9TZXQuc2VsZWN0ZWRJdGVtICE9PSBzdGF0ZS5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIG9uQ2hhbmdlQXJnID0gbmV3U3RhdGVUb1NldC5zZWxlY3RlZEl0ZW07XG4gICAgICAgICAgfVxuICAgICAgICAgIG5ld1N0YXRlVG9TZXQudHlwZSA9IG5ld1N0YXRlVG9TZXQudHlwZSB8fCB1bmtub3duO1xuICAgICAgICAgIE9iamVjdC5rZXlzKG5ld1N0YXRlVG9TZXQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIC8vIG9uU3RhdGVDaGFuZ2VBcmcgc2hvdWxkIG9ubHkgaGF2ZSB0aGUgc3RhdGUgdGhhdCBpc1xuICAgICAgICAgICAgLy8gYWN0dWFsbHkgY2hhbmdpbmdcbiAgICAgICAgICAgIGlmIChzdGF0ZVtrZXldICE9PSBuZXdTdGF0ZVRvU2V0W2tleV0pIHtcbiAgICAgICAgICAgICAgb25TdGF0ZUNoYW5nZUFyZ1trZXldID0gbmV3U3RhdGVUb1NldFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGhlIHR5cGUgaXMgdXNlZnVsIGZvciB0aGUgb25TdGF0ZUNoYW5nZUFyZ1xuICAgICAgICAgICAgLy8gYnV0IHdlIGRvbid0IGFjdHVhbGx5IHdhbnQgdG8gc2V0IGl0IGluIGludGVybmFsIHN0YXRlLlxuICAgICAgICAgICAgLy8gdGhpcyBpcyBhbiB1bmRvY3VtZW50ZWQgZmVhdHVyZSBmb3Igbm93Li4uIE5vdCBhbGwgaW50ZXJuYWxTZXRTdGF0ZVxuICAgICAgICAgICAgLy8gY2FsbHMgc3VwcG9ydCBpdCBhbmQgSSdtIG5vdCBjZXJ0YWluIHdlIHdhbnQgdGhlbSB0byB5ZXQuXG4gICAgICAgICAgICAvLyBCdXQgaXQgZW5hYmxlcyB1c2VycyBjb250cm9sbGluZyB0aGUgaXNPcGVuIHN0YXRlIHRvIGtub3cgd2hlblxuICAgICAgICAgICAgLy8gdGhlIGlzT3BlbiBzdGF0ZSBjaGFuZ2VzIGR1ZSB0byBtb3VzZXVwIGV2ZW50cyB3aGljaCBpcyBxdWl0ZSBoYW5keS5cbiAgICAgICAgICAgIGlmIChrZXkgPT09ICd0eXBlJykge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdTdGF0ZVRvU2V0W2tleV07XG4gICAgICAgICAgICAvLyBpZiBpdCdzIGNvbWluZyBmcm9tIHByb3BzLCB0aGVuIHdlIGRvbid0IGNhcmUgdG8gc2V0IGl0IGludGVybmFsbHlcbiAgICAgICAgICAgIGlmICghaXNDb250cm9sbGVkUHJvcCh0aGlzLnByb3BzLCBrZXkpKSB7XG4gICAgICAgICAgICAgIG5leHRTdGF0ZVtrZXldID0gbmV3U3RhdGVUb1NldFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gaWYgc3RhdGVUb1NldCBpcyBhIGZ1bmN0aW9uLCB0aGVuIHdlIHdlcmVuJ3QgYWJsZSB0byBjYWxsIG9uSW5wdXRWYWx1ZUNoYW5nZVxuICAgICAgICAgIC8vIGVhcmxpZXIsIHNvIHdlJ2xsIGNhbGwgaXQgbm93IHRoYXQgd2Uga25vdyB3aGF0IHRoZSBpbnB1dFZhbHVlIHN0YXRlIHdpbGwgYmUuXG4gICAgICAgICAgaWYgKGlzU3RhdGVUb1NldEZ1bmN0aW9uICYmIG5ld1N0YXRlVG9TZXQuaGFzT3duUHJvcGVydHkoJ2lucHV0VmFsdWUnKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbklucHV0VmFsdWVDaGFuZ2UobmV3U3RhdGVUb1NldC5pbnB1dFZhbHVlLCB7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZ2V0U3RhdGVBbmRIZWxwZXJzKCksXG4gICAgICAgICAgICAgIC4uLm5ld1N0YXRlVG9TZXRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgLy8gY2FsbCB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgaWYgaXQncyBhIGZ1bmN0aW9uXG4gICAgICAgICAgY2JUb0NiKGNiKSgpO1xuXG4gICAgICAgICAgLy8gb25seSBjYWxsIHRoZSBvblN0YXRlQ2hhbmdlIGFuZCBvbkNoYW5nZSBjYWxsYmFja3MgaWZcbiAgICAgICAgICAvLyB3ZSBoYXZlIHJlbGV2YW50IGluZm9ybWF0aW9uIHRvIHBhc3MgdGhlbS5cbiAgICAgICAgICBjb25zdCBoYXNNb3JlU3RhdGVUaGFuVHlwZSA9IE9iamVjdC5rZXlzKG9uU3RhdGVDaGFuZ2VBcmcpLmxlbmd0aCA+IDE7XG4gICAgICAgICAgaWYgKGhhc01vcmVTdGF0ZVRoYW5UeXBlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU3RhdGVDaGFuZ2Uob25TdGF0ZUNoYW5nZUFyZywgdGhpcy5nZXRTdGF0ZUFuZEhlbHBlcnMoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0l0ZW1TZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChzdGF0ZVRvU2V0LnNlbGVjdGVkSXRlbSwgdGhpcy5nZXRTdGF0ZUFuZEhlbHBlcnMoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvbkNoYW5nZUFyZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKG9uQ2hhbmdlQXJnLCB0aGlzLmdldFN0YXRlQW5kSGVscGVycygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gdGhpcyBpcyBjdXJyZW50bHkgdW5kb2N1bWVudGVkIGFuZCB0aGVyZWZvcmUgc3ViamVjdCB0byBjaGFuZ2VcbiAgICAgICAgICAvLyBXZSdsbCB0cnkgdG8gbm90IGJyZWFrIGl0LCBidXQganVzdCBiZSB3YXJuZWQuXG4gICAgICAgICAgdGhpcy5wcm9wcy5vblVzZXJBY3Rpb24ob25TdGF0ZUNoYW5nZUFyZywgdGhpcy5nZXRTdGF0ZUFuZEhlbHBlcnMoKSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHRoaXMucm9vdFJlZiA9IG5vZGUgPT4gdGhpcy5fcm9vdE5vZGUgPSBub2RlO1xuICAgICAgdGhpcy5nZXRSb290UHJvcHMgPSBmdW5jdGlvbiAoX3RlbXAsIF90ZW1wMikge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIHJlZktleSA9ICdyZWYnLFxuICAgICAgICAgIHJlZixcbiAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBzdXBwcmVzc1JlZkVycm9yID0gZmFsc2VcbiAgICAgICAgfSA9IF90ZW1wMiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDI7XG4gICAgICAgIC8vIHRoaXMgaXMgdXNlZCBpbiB0aGUgcmVuZGVyIHRvIGtub3cgd2hldGhlciB0aGUgdXNlciBoYXMgY2FsbGVkIGdldFJvb3RQcm9wcy5cbiAgICAgICAgLy8gSXQgdXNlcyB0aGF0IHRvIGtub3cgd2hldGhlciB0byBhcHBseSB0aGUgcHJvcHMgYXV0b21hdGljYWxseVxuICAgICAgICBfdGhpcy5nZXRSb290UHJvcHMuY2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgX3RoaXMuZ2V0Um9vdFByb3BzLnJlZktleSA9IHJlZktleTtcbiAgICAgICAgX3RoaXMuZ2V0Um9vdFByb3BzLnN1cHByZXNzUmVmRXJyb3IgPSBzdXBwcmVzc1JlZkVycm9yO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaXNPcGVuXG4gICAgICAgIH0gPSBfdGhpcy5nZXRTdGF0ZSgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFtyZWZLZXldOiBoYW5kbGVSZWZzKHJlZiwgX3RoaXMucm9vdFJlZiksXG4gICAgICAgICAgcm9sZTogJ2NvbWJvYm94JyxcbiAgICAgICAgICAnYXJpYS1leHBhbmRlZCc6IGlzT3BlbixcbiAgICAgICAgICAnYXJpYS1oYXNwb3B1cCc6ICdsaXN0Ym94JyxcbiAgICAgICAgICAnYXJpYS1vd25zJzogaXNPcGVuID8gX3RoaXMubWVudUlkIDogbnVsbCxcbiAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogX3RoaXMubGFiZWxJZCxcbiAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgdGhpcy5rZXlEb3duSGFuZGxlcnMgPSB7XG4gICAgICAgIEFycm93RG93bihldmVudCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgaWYgKHRoaXMuZ2V0U3RhdGUoKS5pc09wZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IGV2ZW50LnNoaWZ0S2V5ID8gNSA6IDE7XG4gICAgICAgICAgICB0aGlzLm1vdmVIaWdobGlnaHRlZEluZGV4KGFtb3VudCwge1xuICAgICAgICAgICAgICB0eXBlOiBrZXlEb3duQXJyb3dEb3duXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFNldFN0YXRlKHtcbiAgICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgICAgICB0eXBlOiBrZXlEb3duQXJyb3dEb3duXG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1Db3VudCA9IHRoaXMuZ2V0SXRlbUNvdW50KCk7XG4gICAgICAgICAgICAgIGlmIChpdGVtQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgICAgICAgIH0gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEhpZ2hsaWdodGVkSW5kZXggPSBnZXROZXh0V3JhcHBpbmdJbmRleCgxLCBoaWdobGlnaHRlZEluZGV4LCBpdGVtQ291bnQsIGluZGV4ID0+IHRoaXMuZ2V0SXRlbU5vZGVGcm9tSW5kZXgoaW5kZXgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEhpZ2hsaWdodGVkSW5kZXgobmV4dEhpZ2hsaWdodGVkSW5kZXgsIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IGtleURvd25BcnJvd0Rvd25cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBBcnJvd1VwKGV2ZW50KSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBpZiAodGhpcy5nZXRTdGF0ZSgpLmlzT3Blbikge1xuICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gZXZlbnQuc2hpZnRLZXkgPyAtNSA6IC0xO1xuICAgICAgICAgICAgdGhpcy5tb3ZlSGlnaGxpZ2h0ZWRJbmRleChhbW91bnQsIHtcbiAgICAgICAgICAgICAgdHlwZToga2V5RG93bkFycm93VXBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFsU2V0U3RhdGUoe1xuICAgICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgICAgIHR5cGU6IGtleURvd25BcnJvd1VwXG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1Db3VudCA9IHRoaXMuZ2V0SXRlbUNvdW50KCk7XG4gICAgICAgICAgICAgIGlmIChpdGVtQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgICAgICAgIH0gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEhpZ2hsaWdodGVkSW5kZXggPSBnZXROZXh0V3JhcHBpbmdJbmRleCgtMSwgaGlnaGxpZ2h0ZWRJbmRleCwgaXRlbUNvdW50LCBpbmRleCA9PiB0aGlzLmdldEl0ZW1Ob2RlRnJvbUluZGV4KGluZGV4KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRIaWdobGlnaHRlZEluZGV4KG5leHRIaWdobGlnaHRlZEluZGV4LCB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBrZXlEb3duQXJyb3dVcFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIEVudGVyKGV2ZW50KSB7XG4gICAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAyMjkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaXNPcGVuLFxuICAgICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgIH0gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgICAgICAgaWYgKGlzT3BlbiAmJiBoaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1toaWdobGlnaHRlZEluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1Ob2RlID0gdGhpcy5nZXRJdGVtTm9kZUZyb21JbmRleChoaWdobGlnaHRlZEluZGV4KTtcbiAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwgfHwgaXRlbU5vZGUgJiYgaXRlbU5vZGUuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0SGlnaGxpZ2h0ZWRJdGVtKHtcbiAgICAgICAgICAgICAgdHlwZToga2V5RG93bkVudGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIEVzY2FwZShldmVudCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5yZXNldCh7XG4gICAgICAgICAgICB0eXBlOiBrZXlEb3duRXNjYXBlLFxuICAgICAgICAgICAgLi4uKCF0aGlzLnN0YXRlLmlzT3BlbiAmJiB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbTogbnVsbCxcbiAgICAgICAgICAgICAgaW5wdXRWYWx1ZTogJydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB0aGlzLmJ1dHRvbktleURvd25IYW5kbGVycyA9IHtcbiAgICAgICAgLi4udGhpcy5rZXlEb3duSGFuZGxlcnMsXG4gICAgICAgICcgJyhldmVudCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy50b2dnbGVNZW51KHtcbiAgICAgICAgICAgIHR5cGU6IGtleURvd25TcGFjZUJ1dHRvblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5pbnB1dEtleURvd25IYW5kbGVycyA9IHtcbiAgICAgICAgLi4udGhpcy5rZXlEb3duSGFuZGxlcnMsXG4gICAgICAgIEhvbWUoZXZlbnQpIHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBpc09wZW5cbiAgICAgICAgICB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuICAgICAgICAgIGlmICghaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY29uc3QgaXRlbUNvdW50ID0gdGhpcy5nZXRJdGVtQ291bnQoKTtcbiAgICAgICAgICBpZiAoaXRlbUNvdW50IDw9IDAgfHwgIWlzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGdldCBuZXh0IG5vbi1kaXNhYmxlZCBzdGFydGluZyBkb3dud2FyZHMgZnJvbSAwIGlmIHRoYXQncyBkaXNhYmxlZC5cbiAgICAgICAgICBjb25zdCBuZXdIaWdobGlnaHRlZEluZGV4ID0gZ2V0TmV4dE5vbkRpc2FibGVkSW5kZXgoMSwgMCwgaXRlbUNvdW50LCBpbmRleCA9PiB0aGlzLmdldEl0ZW1Ob2RlRnJvbUluZGV4KGluZGV4KSwgZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRJbmRleChuZXdIaWdobGlnaHRlZEluZGV4LCB7XG4gICAgICAgICAgICB0eXBlOiBrZXlEb3duSG9tZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBFbmQoZXZlbnQpIHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBpc09wZW5cbiAgICAgICAgICB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuICAgICAgICAgIGlmICghaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY29uc3QgaXRlbUNvdW50ID0gdGhpcy5nZXRJdGVtQ291bnQoKTtcbiAgICAgICAgICBpZiAoaXRlbUNvdW50IDw9IDAgfHwgIWlzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGdldCBuZXh0IG5vbi1kaXNhYmxlZCBzdGFydGluZyB1cHdhcmRzIGZyb20gbGFzdCBpbmRleCBpZiB0aGF0J3MgZGlzYWJsZWQuXG4gICAgICAgICAgY29uc3QgbmV3SGlnaGxpZ2h0ZWRJbmRleCA9IGdldE5leHROb25EaXNhYmxlZEluZGV4KC0xLCBpdGVtQ291bnQgLSAxLCBpdGVtQ291bnQsIGluZGV4ID0+IHRoaXMuZ2V0SXRlbU5vZGVGcm9tSW5kZXgoaW5kZXgpLCBmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zZXRIaWdobGlnaHRlZEluZGV4KG5ld0hpZ2hsaWdodGVkSW5kZXgsIHtcbiAgICAgICAgICAgIHR5cGU6IGtleURvd25FbmRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMuZ2V0VG9nZ2xlQnV0dG9uUHJvcHMgPSBmdW5jdGlvbiAoX3RlbXAzKSB7XG4gICAgICAgIGxldCB7XG4gICAgICAgICAgb25DbGljayxcbiAgICAgICAgICBvblByZXNzLFxuICAgICAgICAgIG9uS2V5RG93bixcbiAgICAgICAgICBvbktleVVwLFxuICAgICAgICAgIG9uQmx1cixcbiAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSBfdGVtcDMgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAzO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaXNPcGVuXG4gICAgICAgIH0gPSBfdGhpcy5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBlbmFibGVkRXZlbnRIYW5kbGVycyA9IHtcbiAgICAgICAgICBvbkNsaWNrOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbkNsaWNrLCBfdGhpcy5idXR0b25IYW5kbGVDbGljayksXG4gICAgICAgICAgb25LZXlEb3duOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbktleURvd24sIF90aGlzLmJ1dHRvbkhhbmRsZUtleURvd24pLFxuICAgICAgICAgIG9uS2V5VXA6IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uS2V5VXAsIF90aGlzLmJ1dHRvbkhhbmRsZUtleVVwKSxcbiAgICAgICAgICBvbkJsdXI6IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uQmx1ciwgX3RoaXMuYnV0dG9uSGFuZGxlQmx1cilcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVycyA9IHJlc3QuZGlzYWJsZWQgPyB7fSA6IGVuYWJsZWRFdmVudEhhbmRsZXJzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgIHJvbGU6ICdidXR0b24nLFxuICAgICAgICAgICdhcmlhLWxhYmVsJzogaXNPcGVuID8gJ2Nsb3NlIG1lbnUnIDogJ29wZW4gbWVudScsXG4gICAgICAgICAgJ2FyaWEtaGFzcG9wdXAnOiB0cnVlLFxuICAgICAgICAgICdkYXRhLXRvZ2dsZSc6IHRydWUsXG4gICAgICAgICAgLi4uZXZlbnRIYW5kbGVycyxcbiAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgdGhpcy5idXR0b25IYW5kbGVLZXlVcCA9IGV2ZW50ID0+IHtcbiAgICAgICAgLy8gUHJldmVudCBjbGljayBldmVudCBmcm9tIGVtaXR0aW5nIGluIEZpcmVmb3hcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH07XG4gICAgICB0aGlzLmJ1dHRvbkhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IG5vcm1hbGl6ZUFycm93S2V5KGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuYnV0dG9uS2V5RG93bkhhbmRsZXJzW2tleV0pIHtcbiAgICAgICAgICB0aGlzLmJ1dHRvbktleURvd25IYW5kbGVyc1trZXldLmNhbGwodGhpcywgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5idXR0b25IYW5kbGVDbGljayA9IGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gaGFuZGxlIG9kZCBjYXNlIGZvciBTYWZhcmkgYW5kIEZpcmVmb3ggd2hpY2hcbiAgICAgICAgLy8gZG9uJ3QgZ2l2ZSB0aGUgYnV0dG9uIHRoZSBmb2N1cyBwcm9wZXJseS5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmIChjYW4ndCByZWFzb25hYmx5IHRlc3QgdGhpcykgKi9cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZW52aXJvbm1lbnQuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5wcm9wcy5lbnZpcm9ubWVudC5kb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgZXZlbnQudGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdG8gc2ltcGxpZnkgdGVzdGluZyBjb21wb25lbnRzIHRoYXQgdXNlIGRvd25zaGlmdCwgd2UnbGwgbm90IHdyYXAgdGhpcyBpbiBhIHNldFRpbWVvdXRcbiAgICAgICAgLy8gaWYgdGhlIE5PREVfRU5WIGlzIHRlc3QuIFdpdGggdGhlIHByb3BlciBidWlsZCBzeXN0ZW0sIHRoaXMgc2hvdWxkIGJlIGRlYWQgY29kZSBlbGltaW5hdGVkXG4gICAgICAgIC8vIHdoZW4gYnVpbGRpbmcgZm9yIHByb2R1Y3Rpb24gYW5kIHNob3VsZCB0aGVyZWZvcmUgaGF2ZSBubyBpbXBhY3Qgb24gcHJvZHVjdGlvbiBjb2RlLlxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICd0ZXN0Jykge1xuICAgICAgICAgIHRoaXMudG9nZ2xlTWVudSh7XG4gICAgICAgICAgICB0eXBlOiBjbGlja0J1dHRvblxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRvZ2dsZSBvZiBtZW51IG9jY3VycyBhZnRlciB0aGUgcG90ZW50aWFsIGJsdXIgZXZlbnQgaW4gaU9TXG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFNldFRpbWVvdXQoKCkgPT4gdGhpcy50b2dnbGVNZW51KHtcbiAgICAgICAgICAgIHR5cGU6IGNsaWNrQnV0dG9uXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5idXR0b25IYW5kbGVCbHVyID0gZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCBibHVyVGFyZ2V0ID0gZXZlbnQudGFyZ2V0OyAvLyBTYXZlIGJsdXIgdGFyZ2V0IGZvciBjb21wYXJpc29uIHdpdGggYWN0aXZlRWxlbWVudCBsYXRlclxuICAgICAgICAvLyBOZWVkIHNldFRpbWVvdXQsIHNvIHRoYXQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIFRhYiwgdGhlIGFjdGl2ZUVsZW1lbnQgaXMgdGhlIG5leHQgZm9jdXNlZCBlbGVtZW50LCBub3QgYm9keSBlbGVtZW50XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24gJiYgKHRoaXMucHJvcHMuZW52aXJvbm1lbnQuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBudWxsIHx8IHRoaXMucHJvcHMuZW52aXJvbm1lbnQuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCAhPT0gdGhpcy5pbnB1dElkKSAmJiB0aGlzLnByb3BzLmVudmlyb25tZW50LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGJsdXJUYXJnZXQgLy8gRG8gbm90aGluZyBpZiB3ZSByZWZvY3VzIHRoZSBzYW1lIGVsZW1lbnQgYWdhaW4gKHRvIHNvbHZlIGlzc3VlIGluIFNhZmFyaSBvbiBpT1MpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KHtcbiAgICAgICAgICAgICAgdHlwZTogYmx1ckJ1dHRvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldExhYmVsUHJvcHMgPSBwcm9wcyA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaHRtbEZvcjogdGhpcy5pbnB1dElkLFxuICAgICAgICAgIGlkOiB0aGlzLmxhYmVsSWQsXG4gICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldElucHV0UHJvcHMgPSBmdW5jdGlvbiAoX3RlbXA0KSB7XG4gICAgICAgIGxldCB7XG4gICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICAgIG9uQmx1cixcbiAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICBvbklucHV0LFxuICAgICAgICAgIG9uQ2hhbmdlVGV4dCxcbiAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSBfdGVtcDQgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA0O1xuICAgICAgICBsZXQgb25DaGFuZ2VLZXk7XG4gICAgICAgIGxldCBldmVudEhhbmRsZXJzID0ge307XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKHByZWFjdCkgKi9cbiAgICAgICAge1xuICAgICAgICAgIG9uQ2hhbmdlS2V5ID0gJ29uQ2hhbmdlJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaW5wdXRWYWx1ZSxcbiAgICAgICAgICBpc09wZW4sXG4gICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICB9ID0gX3RoaXMuZ2V0U3RhdGUoKTtcbiAgICAgICAgaWYgKCFyZXN0LmRpc2FibGVkKSB7XG4gICAgICAgICAgZXZlbnRIYW5kbGVycyA9IHtcbiAgICAgICAgICAgIFtvbkNoYW5nZUtleV06IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uQ2hhbmdlLCBvbklucHV0LCBfdGhpcy5pbnB1dEhhbmRsZUNoYW5nZSksXG4gICAgICAgICAgICBvbktleURvd246IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uS2V5RG93biwgX3RoaXMuaW5wdXRIYW5kbGVLZXlEb3duKSxcbiAgICAgICAgICAgIG9uQmx1cjogY2FsbEFsbEV2ZW50SGFuZGxlcnMob25CbHVyLCBfdGhpcy5pbnB1dEhhbmRsZUJsdXIpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0JyxcbiAgICAgICAgICAnYXJpYS1hY3RpdmVkZXNjZW5kYW50JzogaXNPcGVuICYmIHR5cGVvZiBoaWdobGlnaHRlZEluZGV4ID09PSAnbnVtYmVyJyAmJiBoaWdobGlnaHRlZEluZGV4ID49IDAgPyBfdGhpcy5nZXRJdGVtSWQoaGlnaGxpZ2h0ZWRJbmRleCkgOiBudWxsLFxuICAgICAgICAgICdhcmlhLWNvbnRyb2xzJzogaXNPcGVuID8gX3RoaXMubWVudUlkIDogbnVsbCxcbiAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogX3RoaXMubGFiZWxJZCxcbiAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TZWN1cml0eS9TZWN1cmluZ195b3VyX3NpdGUvVHVybmluZ19vZmZfZm9ybV9hdXRvY29tcGxldGlvblxuICAgICAgICAgIC8vIHJldmVydCBiYWNrIHNpbmNlIGF1dG9jb21wbGV0ZT1cIm5vcGVcIiBpcyBpZ25vcmVkIG9uIGxhdGVzdCBDaHJvbWUgYW5kIE9wZXJhXG4gICAgICAgICAgYXV0b0NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgICAgICB2YWx1ZTogaW5wdXRWYWx1ZSxcbiAgICAgICAgICBpZDogX3RoaXMuaW5wdXRJZCxcbiAgICAgICAgICAuLi5ldmVudEhhbmRsZXJzLFxuICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICB0aGlzLmlucHV0SGFuZGxlS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gbm9ybWFsaXplQXJyb3dLZXkoZXZlbnQpO1xuICAgICAgICBpZiAoa2V5ICYmIHRoaXMuaW5wdXRLZXlEb3duSGFuZGxlcnNba2V5XSkge1xuICAgICAgICAgIHRoaXMuaW5wdXRLZXlEb3duSGFuZGxlcnNba2V5XS5jYWxsKHRoaXMsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMuaW5wdXRIYW5kbGVDaGFuZ2UgPSBldmVudCA9PiB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTZXRTdGF0ZSh7XG4gICAgICAgICAgdHlwZTogY2hhbmdlSW5wdXQsXG4gICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIGlucHV0VmFsdWU6IGV2ZW50LnRhcmdldC52YWx1ZSxcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiB0aGlzLnByb3BzLmRlZmF1bHRIaWdobGlnaHRlZEluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW5wdXRIYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgICAgICAvLyBOZWVkIHNldFRpbWVvdXQsIHNvIHRoYXQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIFRhYiwgdGhlIGFjdGl2ZUVsZW1lbnQgaXMgdGhlIG5leHQgZm9jdXNlZCBlbGVtZW50LCBub3QgdGhlIGJvZHkgZWxlbWVudFxuICAgICAgICB0aGlzLmludGVybmFsU2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZG93bnNoaWZ0QnV0dG9uSXNBY3RpdmUgPSB0aGlzLnByb3BzLmVudmlyb25tZW50LmRvY3VtZW50ICYmICEhdGhpcy5wcm9wcy5lbnZpcm9ubWVudC5kb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmICEhdGhpcy5wcm9wcy5lbnZpcm9ubWVudC5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmRhdGFzZXQgJiYgdGhpcy5wcm9wcy5lbnZpcm9ubWVudC5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmRhdGFzZXQudG9nZ2xlICYmIHRoaXMuX3Jvb3ROb2RlICYmIHRoaXMuX3Jvb3ROb2RlLmNvbnRhaW5zKHRoaXMucHJvcHMuZW52aXJvbm1lbnQuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzTW91c2VEb3duICYmICFkb3duc2hpZnRCdXR0b25Jc0FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCh7XG4gICAgICAgICAgICAgIHR5cGU6IGJsdXJJbnB1dFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB0aGlzLm1lbnVSZWYgPSBub2RlID0+IHtcbiAgICAgICAgdGhpcy5fbWVudU5vZGUgPSBub2RlO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZ2V0TWVudVByb3BzID0gZnVuY3Rpb24gKF90ZW1wNSwgX3RlbXA2KSB7XG4gICAgICAgIGxldCB7XG4gICAgICAgICAgcmVmS2V5ID0gJ3JlZicsXG4gICAgICAgICAgcmVmLFxuICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0gPSBfdGVtcDUgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA1O1xuICAgICAgICBsZXQge1xuICAgICAgICAgIHN1cHByZXNzUmVmRXJyb3IgPSBmYWxzZVxuICAgICAgICB9ID0gX3RlbXA2ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNjtcbiAgICAgICAgX3RoaXMuZ2V0TWVudVByb3BzLmNhbGxlZCA9IHRydWU7XG4gICAgICAgIF90aGlzLmdldE1lbnVQcm9wcy5yZWZLZXkgPSByZWZLZXk7XG4gICAgICAgIF90aGlzLmdldE1lbnVQcm9wcy5zdXBwcmVzc1JlZkVycm9yID0gc3VwcHJlc3NSZWZFcnJvcjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBbcmVmS2V5XTogaGFuZGxlUmVmcyhyZWYsIF90aGlzLm1lbnVSZWYpLFxuICAgICAgICAgIHJvbGU6ICdsaXN0Ym94JyxcbiAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogcHJvcHMgJiYgcHJvcHNbJ2FyaWEtbGFiZWwnXSA/IG51bGwgOiBfdGhpcy5sYWJlbElkLFxuICAgICAgICAgIGlkOiBfdGhpcy5tZW51SWQsXG4gICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldEl0ZW1Qcm9wcyA9IGZ1bmN0aW9uIChfdGVtcDcpIHtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBvbk1vdXNlTW92ZSxcbiAgICAgICAgICBvbk1vdXNlRG93bixcbiAgICAgICAgICBvbkNsaWNrLFxuICAgICAgICAgIG9uUHJlc3MsXG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgaXRlbSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgPyAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL3VuZGVmaW5lZCA6IHJlcXVpcmVkUHJvcCgnZ2V0SXRlbVByb3BzJywgJ2l0ZW0nKSxcbiAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSBfdGVtcDcgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA3O1xuICAgICAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIF90aGlzLml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgaW5kZXggPSBfdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLml0ZW1zW2luZGV4XSA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25TZWxlY3RLZXkgPSAnb25DbGljayc7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNsaWNrSGFuZGxlciA9IG9uQ2xpY2s7XG4gICAgICAgIGNvbnN0IGVuYWJsZWRFdmVudEhhbmRsZXJzID0ge1xuICAgICAgICAgIC8vIG9uTW91c2VNb3ZlIGlzIHVzZWQgb3ZlciBvbk1vdXNlRW50ZXIgaGVyZS4gb25Nb3VzZU1vdmVcbiAgICAgICAgICAvLyBpcyBvbmx5IHRyaWdnZXJlZCBvbiBhY3R1YWwgbW91c2UgbW92ZW1lbnQgd2hpbGUgb25Nb3VzZUVudGVyXG4gICAgICAgICAgLy8gY2FuIGZpcmUgb24gRE9NIGNoYW5nZXMsIGludGVycnVwdGluZyBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgICAgICAgb25Nb3VzZU1vdmU6IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uTW91c2VNb3ZlLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IF90aGlzLmdldFN0YXRlKCkuaGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdGhpcy5zZXRIaWdobGlnaHRlZEluZGV4KGluZGV4LCB7XG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW1Nb3VzZUVudGVyXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gV2UgbmV2ZXIgd2FudCB0byBtYW51YWxseSBzY3JvbGwgd2hlbiBjaGFuZ2luZyBzdGF0ZSBiYXNlZFxuICAgICAgICAgICAgLy8gb24gYG9uTW91c2VNb3ZlYCBiZWNhdXNlIHdlIHdpbGwgYmUgbW92aW5nIHRoZSBlbGVtZW50IG91dFxuICAgICAgICAgICAgLy8gZnJvbSB1bmRlciB0aGUgdXNlciB3aGljaCBpcyBjdXJyZW50bHkgc2Nyb2xsaW5nL21vdmluZyB0aGVcbiAgICAgICAgICAgIC8vIGN1cnNvclxuICAgICAgICAgICAgX3RoaXMuYXZvaWRTY3JvbGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgX3RoaXMuaW50ZXJuYWxTZXRUaW1lb3V0KCgpID0+IF90aGlzLmF2b2lkU2Nyb2xsaW5nID0gZmFsc2UsIDI1MCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgb25Nb3VzZURvd246IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uTW91c2VEb3duLCBldmVudCA9PiB7XG4gICAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSBhY3RpdmVFbGVtZW50IGZyb20gYmVpbmcgY2hhbmdlZFxuICAgICAgICAgICAgLy8gdG8gdGhlIGl0ZW0gc28gaXQgY2FuIHJlbWFpbiB3aXRoIHRoZSBjdXJyZW50IGFjdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC8vIHdoaWNoIGlzIGEgbW9yZSBjb21tb24gdXNlIGNhc2UuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIFtvblNlbGVjdEtleV06IGNhbGxBbGxFdmVudEhhbmRsZXJzKGN1c3RvbUNsaWNrSGFuZGxlciwgKCkgPT4ge1xuICAgICAgICAgICAgX3RoaXMuc2VsZWN0SXRlbUF0SW5kZXgoaW5kZXgsIHtcbiAgICAgICAgICAgICAgdHlwZTogY2xpY2tJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFBhc3NpbmcgZG93biB0aGUgb25Nb3VzZURvd24gaGFuZGxlciB0byBwcmV2ZW50IHJlZGlyZWN0XG4gICAgICAgIC8vIG9mIHRoZSBhY3RpdmVFbGVtZW50IGlmIGNsaWNraW5nIG9uIGRpc2FibGVkIGl0ZW1zXG4gICAgICAgIGNvbnN0IGV2ZW50SGFuZGxlcnMgPSByZXN0LmRpc2FibGVkID8ge1xuICAgICAgICAgIG9uTW91c2VEb3duOiBlbmFibGVkRXZlbnRIYW5kbGVycy5vbk1vdXNlRG93blxuICAgICAgICB9IDogZW5hYmxlZEV2ZW50SGFuZGxlcnM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IF90aGlzLmdldEl0ZW1JZChpbmRleCksXG4gICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBfdGhpcy5nZXRTdGF0ZSgpLmhpZ2hsaWdodGVkSW5kZXggPT09IGluZGV4LFxuICAgICAgICAgIC4uLmV2ZW50SGFuZGxlcnMsXG4gICAgICAgICAgLi4ucmVzdFxuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIHRoaXMuY2xlYXJJdGVtcyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgfTtcbiAgICAgIHRoaXMucmVzZXQgPSBmdW5jdGlvbiAob3RoZXJTdGF0ZVRvU2V0LCBjYikge1xuICAgICAgICBpZiAob3RoZXJTdGF0ZVRvU2V0ID09PSB2b2lkIDApIHtcbiAgICAgICAgICBvdGhlclN0YXRlVG9TZXQgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBvdGhlclN0YXRlVG9TZXQgPSBwaWNrU3RhdGUob3RoZXJTdGF0ZVRvU2V0KTtcbiAgICAgICAgX3RoaXMuaW50ZXJuYWxTZXRTdGF0ZShfcmVmID0+IHtcbiAgICAgICAgICBsZXQge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtXG4gICAgICAgICAgfSA9IF9yZWY7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzT3BlbjogX3RoaXMucHJvcHMuZGVmYXVsdElzT3BlbixcbiAgICAgICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IF90aGlzLnByb3BzLmRlZmF1bHRIaWdobGlnaHRlZEluZGV4LFxuICAgICAgICAgICAgaW5wdXRWYWx1ZTogX3RoaXMucHJvcHMuaXRlbVRvU3RyaW5nKHNlbGVjdGVkSXRlbSksXG4gICAgICAgICAgICAuLi5vdGhlclN0YXRlVG9TZXRcbiAgICAgICAgICB9O1xuICAgICAgICB9LCBjYik7XG4gICAgICB9O1xuICAgICAgdGhpcy50b2dnbGVNZW51ID0gZnVuY3Rpb24gKG90aGVyU3RhdGVUb1NldCwgY2IpIHtcbiAgICAgICAgaWYgKG90aGVyU3RhdGVUb1NldCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgb3RoZXJTdGF0ZVRvU2V0ID0ge307XG4gICAgICAgIH1cbiAgICAgICAgb3RoZXJTdGF0ZVRvU2V0ID0gcGlja1N0YXRlKG90aGVyU3RhdGVUb1NldCk7XG4gICAgICAgIF90aGlzLmludGVybmFsU2V0U3RhdGUoX3JlZjIgPT4ge1xuICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICBpc09wZW5cbiAgICAgICAgICB9ID0gX3JlZjI7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzT3BlbjogIWlzT3BlbixcbiAgICAgICAgICAgIC4uLihpc09wZW4gJiYge1xuICAgICAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBfdGhpcy5wcm9wcy5kZWZhdWx0SGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAuLi5vdGhlclN0YXRlVG9TZXRcbiAgICAgICAgICB9O1xuICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaXNPcGVuLFxuICAgICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleFxuICAgICAgICAgIH0gPSBfdGhpcy5nZXRTdGF0ZSgpO1xuICAgICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgIGlmIChfdGhpcy5nZXRJdGVtQ291bnQoKSA+IDAgJiYgdHlwZW9mIGhpZ2hsaWdodGVkSW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgIF90aGlzLnNldEhpZ2hsaWdodGVkSW5kZXgoaGlnaGxpZ2h0ZWRJbmRleCwgb3RoZXJTdGF0ZVRvU2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY2JUb0NiKGNiKSgpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB0aGlzLm9wZW5NZW51ID0gY2IgPT4ge1xuICAgICAgICB0aGlzLmludGVybmFsU2V0U3RhdGUoe1xuICAgICAgICAgIGlzT3BlbjogdHJ1ZVxuICAgICAgICB9LCBjYik7XG4gICAgICB9O1xuICAgICAgdGhpcy5jbG9zZU1lbnUgPSBjYiA9PiB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTZXRTdGF0ZSh7XG4gICAgICAgICAgaXNPcGVuOiBmYWxzZVxuICAgICAgICB9LCBjYik7XG4gICAgICB9O1xuICAgICAgdGhpcy51cGRhdGVTdGF0dXMgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1tzdGF0ZS5oaWdobGlnaHRlZEluZGV4XTtcbiAgICAgICAgY29uc3QgcmVzdWx0Q291bnQgPSB0aGlzLmdldEl0ZW1Db3VudCgpO1xuICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnByb3BzLmdldEExMXlTdGF0dXNNZXNzYWdlKHtcbiAgICAgICAgICBpdGVtVG9TdHJpbmc6IHRoaXMucHJvcHMuaXRlbVRvU3RyaW5nLFxuICAgICAgICAgIHByZXZpb3VzUmVzdWx0Q291bnQ6IHRoaXMucHJldmlvdXNSZXN1bHRDb3VudCxcbiAgICAgICAgICByZXN1bHRDb3VudCxcbiAgICAgICAgICBoaWdobGlnaHRlZEl0ZW06IGl0ZW0sXG4gICAgICAgICAgLi4uc3RhdGVcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJldmlvdXNSZXN1bHRDb3VudCA9IHJlc3VsdENvdW50O1xuICAgICAgICBzZXRTdGF0dXMoc3RhdHVzLCB0aGlzLnByb3BzLmVudmlyb25tZW50LmRvY3VtZW50KTtcbiAgICAgIH0sIDIwMCk7XG4gICAgICAvLyBmYW5jeSBkZXN0cnVjdHVyaW5nICsgZGVmYXVsdHMgKyBhbGlhc2VzXG4gICAgICAvLyB0aGlzIGJhc2ljYWxseSBzYXlzIGVhY2ggdmFsdWUgb2Ygc3RhdGUgc2hvdWxkIGVpdGhlciBiZSBzZXQgdG9cbiAgICAgIC8vIHRoZSBpbml0aWFsIHZhbHVlIG9yIHRoZSBkZWZhdWx0IHZhbHVlIGlmIHRoZSBpbml0aWFsIHZhbHVlIGlzIG5vdCBwcm92aWRlZFxuICAgICAgY29uc3Qge1xuICAgICAgICBkZWZhdWx0SGlnaGxpZ2h0ZWRJbmRleCxcbiAgICAgICAgaW5pdGlhbEhpZ2hsaWdodGVkSW5kZXg6IF9oaWdobGlnaHRlZEluZGV4ID0gZGVmYXVsdEhpZ2hsaWdodGVkSW5kZXgsXG4gICAgICAgIGRlZmF1bHRJc09wZW4sXG4gICAgICAgIGluaXRpYWxJc09wZW46IF9pc09wZW4gPSBkZWZhdWx0SXNPcGVuLFxuICAgICAgICBpbml0aWFsSW5wdXRWYWx1ZTogX2lucHV0VmFsdWUgPSAnJyxcbiAgICAgICAgaW5pdGlhbFNlbGVjdGVkSXRlbTogX3NlbGVjdGVkSXRlbSA9IG51bGxcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgX3N0YXRlID0gdGhpcy5nZXRTdGF0ZSh7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IF9oaWdobGlnaHRlZEluZGV4LFxuICAgICAgICBpc09wZW46IF9pc09wZW4sXG4gICAgICAgIGlucHV0VmFsdWU6IF9pbnB1dFZhbHVlLFxuICAgICAgICBzZWxlY3RlZEl0ZW06IF9zZWxlY3RlZEl0ZW1cbiAgICAgIH0pO1xuICAgICAgaWYgKF9zdGF0ZS5zZWxlY3RlZEl0ZW0gIT0gbnVsbCAmJiB0aGlzLnByb3BzLmluaXRpYWxJbnB1dFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgX3N0YXRlLmlucHV0VmFsdWUgPSB0aGlzLnByb3BzLml0ZW1Ub1N0cmluZyhfc3RhdGUuc2VsZWN0ZWRJdGVtKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdGUgPSBfc3RhdGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFyIGFsbCBydW5uaW5nIHRpbWVvdXRzXG4gICAgICovXG4gICAgaW50ZXJuYWxDbGVhclRpbWVvdXRzKCkge1xuICAgICAgdGhpcy50aW1lb3V0SWRzLmZvckVhY2goaWQgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnRpbWVvdXRJZHMgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzdGF0ZSBiYXNlZCBvbiBpbnRlcm5hbCBzdGF0ZSBvciBwcm9wc1xuICAgICAqIElmIGEgc3RhdGUgdmFsdWUgaXMgcGFzc2VkIHZpYSBwcm9wcywgdGhlbiB0aGF0XG4gICAgICogaXMgdGhlIHZhbHVlIGdpdmVuLCBvdGhlcndpc2UgaXQncyByZXRyaWV2ZWQgZnJvbVxuICAgICAqIHN0YXRlVG9NZXJnZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRlVG9NZXJnZSBkZWZhdWx0cyB0byB0aGlzLnN0YXRlXG4gICAgICogQHJldHVybiB7T2JqZWN0fSB0aGUgc3RhdGVcbiAgICAgKi9cbiAgICBnZXRTdGF0ZShzdGF0ZVRvTWVyZ2UpIHtcbiAgICAgIGlmIChzdGF0ZVRvTWVyZ2UgPT09IHZvaWQgMCkge1xuICAgICAgICBzdGF0ZVRvTWVyZ2UgPSB0aGlzLnN0YXRlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldFN0YXRlKHN0YXRlVG9NZXJnZSwgdGhpcy5wcm9wcyk7XG4gICAgfVxuICAgIGdldEl0ZW1Db3VudCgpIHtcbiAgICAgIC8vIHRoaW5ncyByZWFkIGJldHRlciB0aGlzIHdheS4gVGhleSdyZSBpbiBwcmlvcml0eSBvcmRlcjpcbiAgICAgIC8vIDEuIGB0aGlzLml0ZW1Db3VudGBcbiAgICAgIC8vIDIuIGB0aGlzLnByb3BzLml0ZW1Db3VudGBcbiAgICAgIC8vIDMuIGB0aGlzLml0ZW1zLmxlbmd0aGBcbiAgICAgIGxldCBpdGVtQ291bnQgPSB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgIGlmICh0aGlzLml0ZW1Db3VudCAhPSBudWxsKSB7XG4gICAgICAgIGl0ZW1Db3VudCA9IHRoaXMuaXRlbUNvdW50O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLml0ZW1Db3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGl0ZW1Db3VudCA9IHRoaXMucHJvcHMuaXRlbUNvdW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW1Db3VudDtcbiAgICB9XG4gICAgZ2V0SXRlbU5vZGVGcm9tSW5kZXgoaW5kZXgpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmVudmlyb25tZW50LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0SXRlbUlkKGluZGV4KSk7XG4gICAgfVxuICAgIHNjcm9sbEhpZ2hsaWdodGVkSXRlbUludG9WaWV3KCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKHJlYWN0LW5hdGl2ZSkgKi9cbiAgICAgIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0SXRlbU5vZGVGcm9tSW5kZXgodGhpcy5nZXRTdGF0ZSgpLmhpZ2hsaWdodGVkSW5kZXgpO1xuICAgICAgICB0aGlzLnByb3BzLnNjcm9sbEludG9WaWV3KG5vZGUsIHRoaXMuX21lbnVOb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbW92ZUhpZ2hsaWdodGVkSW5kZXgoYW1vdW50LCBvdGhlclN0YXRlVG9TZXQpIHtcbiAgICAgIGNvbnN0IGl0ZW1Db3VudCA9IHRoaXMuZ2V0SXRlbUNvdW50KCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXhcbiAgICAgIH0gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgICBpZiAoaXRlbUNvdW50ID4gMCkge1xuICAgICAgICBjb25zdCBuZXh0SGlnaGxpZ2h0ZWRJbmRleCA9IGdldE5leHRXcmFwcGluZ0luZGV4KGFtb3VudCwgaGlnaGxpZ2h0ZWRJbmRleCwgaXRlbUNvdW50LCBpbmRleCA9PiB0aGlzLmdldEl0ZW1Ob2RlRnJvbUluZGV4KGluZGV4KSk7XG4gICAgICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRJbmRleChuZXh0SGlnaGxpZ2h0ZWRJbmRleCwgb3RoZXJTdGF0ZVRvU2V0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZ2V0U3RhdGVBbmRIZWxwZXJzKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICBzZWxlY3RlZEl0ZW0sXG4gICAgICAgIGlzT3BlblxuICAgICAgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXRlbVRvU3RyaW5nXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWRcbiAgICAgIH0gPSB0aGlzO1xuICAgICAgY29uc3Qge1xuICAgICAgICBnZXRSb290UHJvcHMsXG4gICAgICAgIGdldFRvZ2dsZUJ1dHRvblByb3BzLFxuICAgICAgICBnZXRMYWJlbFByb3BzLFxuICAgICAgICBnZXRNZW51UHJvcHMsXG4gICAgICAgIGdldElucHV0UHJvcHMsXG4gICAgICAgIGdldEl0ZW1Qcm9wcyxcbiAgICAgICAgb3Blbk1lbnUsXG4gICAgICAgIGNsb3NlTWVudSxcbiAgICAgICAgdG9nZ2xlTWVudSxcbiAgICAgICAgc2VsZWN0SXRlbSxcbiAgICAgICAgc2VsZWN0SXRlbUF0SW5kZXgsXG4gICAgICAgIHNlbGVjdEhpZ2hsaWdodGVkSXRlbSxcbiAgICAgICAgc2V0SGlnaGxpZ2h0ZWRJbmRleCxcbiAgICAgICAgY2xlYXJTZWxlY3Rpb24sXG4gICAgICAgIGNsZWFySXRlbXMsXG4gICAgICAgIHJlc2V0LFxuICAgICAgICBzZXRJdGVtQ291bnQsXG4gICAgICAgIHVuc2V0SXRlbUNvdW50LFxuICAgICAgICBpbnRlcm5hbFNldFN0YXRlOiBzZXRTdGF0ZVxuICAgICAgfSA9IHRoaXM7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAvLyBwcm9wIGdldHRlcnNcbiAgICAgICAgZ2V0Um9vdFByb3BzLFxuICAgICAgICBnZXRUb2dnbGVCdXR0b25Qcm9wcyxcbiAgICAgICAgZ2V0TGFiZWxQcm9wcyxcbiAgICAgICAgZ2V0TWVudVByb3BzLFxuICAgICAgICBnZXRJbnB1dFByb3BzLFxuICAgICAgICBnZXRJdGVtUHJvcHMsXG4gICAgICAgIC8vIGFjdGlvbnNcbiAgICAgICAgcmVzZXQsXG4gICAgICAgIG9wZW5NZW51LFxuICAgICAgICBjbG9zZU1lbnUsXG4gICAgICAgIHRvZ2dsZU1lbnUsXG4gICAgICAgIHNlbGVjdEl0ZW0sXG4gICAgICAgIHNlbGVjdEl0ZW1BdEluZGV4LFxuICAgICAgICBzZWxlY3RIaWdobGlnaHRlZEl0ZW0sXG4gICAgICAgIHNldEhpZ2hsaWdodGVkSW5kZXgsXG4gICAgICAgIGNsZWFyU2VsZWN0aW9uLFxuICAgICAgICBjbGVhckl0ZW1zLFxuICAgICAgICBzZXRJdGVtQ291bnQsXG4gICAgICAgIHVuc2V0SXRlbUNvdW50LFxuICAgICAgICBzZXRTdGF0ZSxcbiAgICAgICAgLy8gcHJvcHNcbiAgICAgICAgaXRlbVRvU3RyaW5nLFxuICAgICAgICAvLyBkZXJpdmVkXG4gICAgICAgIGlkLFxuICAgICAgICAvLyBzdGF0ZVxuICAgICAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICBpc09wZW4sXG4gICAgICAgIHNlbGVjdGVkSXRlbVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIFJPT1RcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmIChyZWFjdC1uYXRpdmUpICovXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhZmFsc2UgJiYgdGhpcy5nZXRNZW51UHJvcHMuY2FsbGVkICYmICF0aGlzLmdldE1lbnVQcm9wcy5zdXBwcmVzc1JlZkVycm9yKSB7XG4gICAgICAgIHZhbGlkYXRlR2V0TWVudVByb3BzQ2FsbGVkQ29ycmVjdGx5KHRoaXMuX21lbnVOb2RlLCB0aGlzLmdldE1lbnVQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAocmVhY3QtbmF0aXZlKSAqL1xuICAgICAge1xuICAgICAgICAvLyB0aGlzLmlzTW91c2VEb3duIGhlbHBzIHVzIHRyYWNrIHdoZXRoZXIgdGhlIG1vdXNlIGlzIGN1cnJlbnRseSBoZWxkIGRvd24uXG4gICAgICAgIC8vIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIGFuIGl0ZW0gaW4gdGhlIGxpc3QsIGJ1dCBob2xkcyB0aGUgbW91c2VcbiAgICAgICAgLy8gZG93biBsb25nIGVub3VnaCBmb3IgdGhlIGxpc3QgdG8gZGlzYXBwZWFyIChiZWNhdXNlIHRoZSBibHVyIGV2ZW50IGZpcmVzIG9uIHRoZSBpbnB1dClcbiAgICAgICAgLy8gdGhpcy5pc01vdXNlRG93biBpcyB1c2VkIGluIHRoZSBibHVyIGhhbmRsZXIgb24gdGhlIGlucHV0IHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBibHVyIGV2ZW50IHNob3VsZFxuICAgICAgICAvLyB0cmlnZ2VyIGhpZGluZyB0aGUgbWVudS5cbiAgICAgICAgY29uc3Qgb25Nb3VzZURvd24gPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc01vdXNlRG93biA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uTW91c2VVcCA9IGV2ZW50ID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW91c2VEb3duID0gZmFsc2U7XG4gICAgICAgICAgLy8gaWYgdGhlIHRhcmdldCBlbGVtZW50IG9yIHRoZSBhY3RpdmVFbGVtZW50IGlzIHdpdGhpbiBhIGRvd25zaGlmdCBub2RlXG4gICAgICAgICAgLy8gdGhlbiB3ZSBkb24ndCB3YW50IHRvIHJlc2V0IGRvd25zaGlmdFxuICAgICAgICAgIGNvbnN0IGNvbnRleHRXaXRoaW5Eb3duc2hpZnQgPSB0YXJnZXRXaXRoaW5Eb3duc2hpZnQoZXZlbnQudGFyZ2V0LCBbdGhpcy5fcm9vdE5vZGUsIHRoaXMuX21lbnVOb2RlXSwgdGhpcy5wcm9wcy5lbnZpcm9ubWVudCk7XG4gICAgICAgICAgaWYgKCFjb250ZXh0V2l0aGluRG93bnNoaWZ0ICYmIHRoaXMuZ2V0U3RhdGUoKS5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoe1xuICAgICAgICAgICAgICB0eXBlOiBtb3VzZVVwXG4gICAgICAgICAgICB9LCAoKSA9PiB0aGlzLnByb3BzLm9uT3V0ZXJDbGljayh0aGlzLmdldFN0YXRlQW5kSGVscGVycygpKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBUb3VjaGluZyBhbiBlbGVtZW50IGluIGlPUyBnaXZlcyBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLCBidXQgdG91Y2hpbmcgb3V0IG9mXG4gICAgICAgIC8vIHRoZSBlbGVtZW50IHdpbGwgcmVtb3ZlIGhvdmVyLCBhbmQgcGVyc2lzdCB0aGUgZm9jdXMgc3RhdGUsIHJlc3VsdGluZyBpbiB0aGVcbiAgICAgICAgLy8gYmx1ciBldmVudCBub3QgYmVpbmcgdHJpZ2dlcmVkLlxuICAgICAgICAvLyB0aGlzLmlzVG91Y2hNb3ZlIGhlbHBzIHVzIHRyYWNrIHdoZXRoZXIgdGhlIHVzZXIgaXMgdGFwcGluZyBvciBzd2lwaW5nIG9uIGEgdG91Y2ggc2NyZWVuLlxuICAgICAgICAvLyBJZiB0aGUgdXNlciB0YXBzIG91dHNpZGUgb2YgRG93bnNoaWZ0LCB0aGUgY29tcG9uZW50IHNob3VsZCBiZSByZXNldCxcbiAgICAgICAgLy8gYnV0IG5vdCBpZiB0aGUgdXNlciBpcyBzd2lwaW5nXG4gICAgICAgIGNvbnN0IG9uVG91Y2hTdGFydCA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzVG91Y2hNb3ZlID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uVG91Y2hNb3ZlID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNUb3VjaE1vdmUgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblRvdWNoRW5kID0gZXZlbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHRXaXRoaW5Eb3duc2hpZnQgPSB0YXJnZXRXaXRoaW5Eb3duc2hpZnQoZXZlbnQudGFyZ2V0LCBbdGhpcy5fcm9vdE5vZGUsIHRoaXMuX21lbnVOb2RlXSwgdGhpcy5wcm9wcy5lbnZpcm9ubWVudCwgZmFsc2UpO1xuICAgICAgICAgIGlmICghdGhpcy5pc1RvdWNoTW92ZSAmJiAhY29udGV4dFdpdGhpbkRvd25zaGlmdCAmJiB0aGlzLmdldFN0YXRlKCkuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KHtcbiAgICAgICAgICAgICAgdHlwZTogdG91Y2hFbmRcbiAgICAgICAgICAgIH0sICgpID0+IHRoaXMucHJvcHMub25PdXRlckNsaWNrKHRoaXMuZ2V0U3RhdGVBbmRIZWxwZXJzKCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBlbnZpcm9ubWVudFxuICAgICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgZW52aXJvbm1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Nb3VzZURvd24pO1xuICAgICAgICBlbnZpcm9ubWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25Nb3VzZVVwKTtcbiAgICAgICAgZW52aXJvbm1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uVG91Y2hTdGFydCk7XG4gICAgICAgIGVudmlyb25tZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uVG91Y2hNb3ZlKTtcbiAgICAgICAgZW52aXJvbm1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvblRvdWNoRW5kKTtcbiAgICAgICAgdGhpcy5jbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxDbGVhclRpbWVvdXRzKCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMuY2FuY2VsKCk7XG4gICAgICAgICAgZW52aXJvbm1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Nb3VzZURvd24pO1xuICAgICAgICAgIGVudmlyb25tZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBvbk1vdXNlVXApO1xuICAgICAgICAgIGVudmlyb25tZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQpO1xuICAgICAgICAgIGVudmlyb25tZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uVG91Y2hNb3ZlKTtcbiAgICAgICAgICBlbnZpcm9ubWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIG9uVG91Y2hFbmQpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICBzaG91bGRTY3JvbGwocHJldlN0YXRlLCBwcmV2UHJvcHMpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogY3VycmVudEhpZ2hsaWdodGVkSW5kZXhcbiAgICAgIH0gPSB0aGlzLnByb3BzLmhpZ2hsaWdodGVkSW5kZXggPT09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0U3RhdGUoKSA6IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IHByZXZIaWdobGlnaHRlZEluZGV4XG4gICAgICB9ID0gcHJldlByb3BzLmhpZ2hsaWdodGVkSW5kZXggPT09IHVuZGVmaW5lZCA/IHByZXZTdGF0ZSA6IHByZXZQcm9wcztcbiAgICAgIGNvbnN0IHNjcm9sbFdoZW5PcGVuID0gY3VycmVudEhpZ2hsaWdodGVkSW5kZXggJiYgdGhpcy5nZXRTdGF0ZSgpLmlzT3BlbiAmJiAhcHJldlN0YXRlLmlzT3BlbjtcbiAgICAgIGNvbnN0IHNjcm9sbFdoZW5OYXZpZ2F0aW5nID0gY3VycmVudEhpZ2hsaWdodGVkSW5kZXggIT09IHByZXZIaWdobGlnaHRlZEluZGV4O1xuICAgICAgcmV0dXJuIHNjcm9sbFdoZW5PcGVuIHx8IHNjcm9sbFdoZW5OYXZpZ2F0aW5nO1xuICAgIH1cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHZhbGlkYXRlQ29udHJvbGxlZFVuY2hhbmdlZCh0aGlzLnN0YXRlLCBwcmV2UHJvcHMsIHRoaXMucHJvcHMpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKHJlYWN0LW5hdGl2ZSkgKi9cbiAgICAgICAgaWYgKHRoaXMuZ2V0TWVudVByb3BzLmNhbGxlZCAmJiAhdGhpcy5nZXRNZW51UHJvcHMuc3VwcHJlc3NSZWZFcnJvcikge1xuICAgICAgICAgIHZhbGlkYXRlR2V0TWVudVByb3BzQ2FsbGVkQ29ycmVjdGx5KHRoaXMuX21lbnVOb2RlLCB0aGlzLmdldE1lbnVQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc0NvbnRyb2xsZWRQcm9wKHRoaXMucHJvcHMsICdzZWxlY3RlZEl0ZW0nKSAmJiB0aGlzLnByb3BzLnNlbGVjdGVkSXRlbUNoYW5nZWQocHJldlByb3BzLnNlbGVjdGVkSXRlbSwgdGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW0pKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTZXRTdGF0ZSh7XG4gICAgICAgICAgdHlwZTogY29udHJvbGxlZFByb3BVcGRhdGVkU2VsZWN0ZWRJdGVtLFxuICAgICAgICAgIGlucHV0VmFsdWU6IHRoaXMucHJvcHMuaXRlbVRvU3RyaW5nKHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5hdm9pZFNjcm9sbGluZyAmJiB0aGlzLnNob3VsZFNjcm9sbChwcmV2U3RhdGUsIHByZXZQcm9wcykpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxIaWdobGlnaHRlZEl0ZW1JbnRvVmlldygpO1xuICAgICAgfVxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAocmVhY3QtbmF0aXZlKSAqL1xuICAgICAge1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuY2xlYW51cCgpOyAvLyBhdm9pZHMgbWVtb3J5IGxlYWtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHVud3JhcEFycmF5KHRoaXMucHJvcHMuY2hpbGRyZW4sIG5vb3ApO1xuICAgICAgLy8gYmVjYXVzZSB0aGUgaXRlbXMgYXJlIHJlcmVuZGVyZWQgZXZlcnkgdGltZSB3ZSBjYWxsIHRoZSBjaGlsZHJlblxuICAgICAgLy8gd2UgY2xlYXIgdGhpcyBvdXQgZWFjaCByZW5kZXIgYW5kIGl0IHdpbGwgYmUgcG9wdWxhdGVkIGFnYWluIGFzXG4gICAgICAvLyBnZXRJdGVtUHJvcHMgaXMgY2FsbGVkLlxuICAgICAgdGhpcy5jbGVhckl0ZW1zKCk7XG4gICAgICAvLyB3ZSByZXNldCB0aGlzIHNvIHdlIGtub3cgd2hldGhlciB0aGUgdXNlciBjYWxscyBnZXRSb290UHJvcHMgZHVyaW5nXG4gICAgICAvLyB0aGlzIHJlbmRlci4gSWYgdGhleSBkbyB0aGVuIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcsXG4gICAgICAvLyBpZiB0aGV5IGRvbid0IHRoZW4gd2UgbmVlZCB0byBjbG9uZSB0aGUgZWxlbWVudCB0aGV5IHJldHVybiBhbmRcbiAgICAgIC8vIGFwcGx5IHRoZSBwcm9wcyBmb3IgdGhlbS5cbiAgICAgIHRoaXMuZ2V0Um9vdFByb3BzLmNhbGxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5nZXRSb290UHJvcHMucmVmS2V5ID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5nZXRSb290UHJvcHMuc3VwcHJlc3NSZWZFcnJvciA9IHVuZGVmaW5lZDtcbiAgICAgIC8vIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIGZvciBnZXRNZW51UHJvcHNcbiAgICAgIHRoaXMuZ2V0TWVudVByb3BzLmNhbGxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5nZXRNZW51UHJvcHMucmVmS2V5ID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5nZXRNZW51UHJvcHMuc3VwcHJlc3NSZWZFcnJvciA9IHVuZGVmaW5lZDtcbiAgICAgIC8vIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIGZvciBnZXRMYWJlbFByb3BzXG4gICAgICB0aGlzLmdldExhYmVsUHJvcHMuY2FsbGVkID0gZmFsc2U7XG4gICAgICAvLyBhbmQgc29tZXRoaW5nIHNpbWlsYXIgZm9yIGdldElucHV0UHJvcHNcbiAgICAgIHRoaXMuZ2V0SW5wdXRQcm9wcy5jYWxsZWQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB1bndyYXBBcnJheShjaGlsZHJlbih0aGlzLmdldFN0YXRlQW5kSGVscGVycygpKSk7XG4gICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5nZXRSb290UHJvcHMuY2FsbGVkIHx8IHRoaXMucHJvcHMuc3VwcHJlc3NSZWZFcnJvcikge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5nZXRSb290UHJvcHMuc3VwcHJlc3NSZWZFcnJvciAmJiAhdGhpcy5wcm9wcy5zdXBwcmVzc1JlZkVycm9yKSB7XG4gICAgICAgICAgdmFsaWRhdGVHZXRSb290UHJvcHNDYWxsZWRDb3JyZWN0bHkoZWxlbWVudCwgdGhpcy5nZXRSb290UHJvcHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgICAgfSBlbHNlIGlmIChpc0RPTUVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgICAgLy8gdGhleSBkaWRuJ3QgYXBwbHkgdGhlIHJvb3QgcHJvcHMsIGJ1dCB3ZSBjYW4gY2xvbmVcbiAgICAgICAgLy8gdGhpcyBhbmQgYXBwbHkgdGhlIHByb3BzIG91cnNlbHZlc1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL2Nsb25lRWxlbWVudChlbGVtZW50LCB0aGlzLmdldFJvb3RQcm9wcyhnZXRFbGVtZW50UHJvcHMoZWxlbWVudCkpKTtcbiAgICAgIH1cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8vIHRoZXkgZGlkbid0IGFwcGx5IHRoZSByb290IHByb3BzLCBidXQgdGhleSBuZWVkIHRvXG4gICAgICAgIC8vIG90aGVyd2lzZSB3ZSBjYW4ndCBxdWVyeSBhcm91bmQgdGhlIGF1dG9jb21wbGV0ZVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZG93bnNoaWZ0OiBJZiB5b3UgcmV0dXJuIGEgbm9uLURPTSBlbGVtZW50LCB5b3UgbXVzdCBhcHBseSB0aGUgZ2V0Um9vdFByb3BzIGZ1bmN0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICBEb3duc2hpZnQuZGVmYXVsdFByb3BzID0ge1xuICAgIGRlZmF1bHRIaWdobGlnaHRlZEluZGV4OiBudWxsLFxuICAgIGRlZmF1bHRJc09wZW46IGZhbHNlLFxuICAgIGdldEExMXlTdGF0dXNNZXNzYWdlOiBnZXRBMTF5U3RhdHVzTWVzc2FnZSQxLFxuICAgIGl0ZW1Ub1N0cmluZzogaSA9PiB7XG4gICAgICBpZiAoaSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzUGxhaW5PYmplY3QoaSkgJiYgIWkuaGFzT3duUHJvcGVydHkoJ3RvU3RyaW5nJykpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKCdkb3duc2hpZnQ6IEFuIG9iamVjdCB3YXMgcGFzc2VkIHRvIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGBpdGVtVG9TdHJpbmdgLiBZb3Ugc2hvdWxkIHByb2JhYmx5IHByb3ZpZGUgeW91ciBvd24gYGl0ZW1Ub1N0cmluZ2AgaW1wbGVtZW50YXRpb24uIFBsZWFzZSByZWZlciB0byB0aGUgYGl0ZW1Ub1N0cmluZ2AgQVBJIGRvY3VtZW50YXRpb24uJywgJ1RoZSBvYmplY3QgdGhhdCB3YXMgcGFzc2VkOicsIGkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyhpKTtcbiAgICB9LFxuICAgIG9uU3RhdGVDaGFuZ2U6IG5vb3AsXG4gICAgb25JbnB1dFZhbHVlQ2hhbmdlOiBub29wLFxuICAgIG9uVXNlckFjdGlvbjogbm9vcCxcbiAgICBvbkNoYW5nZTogbm9vcCxcbiAgICBvblNlbGVjdDogbm9vcCxcbiAgICBvbk91dGVyQ2xpY2s6IG5vb3AsXG4gICAgc2VsZWN0ZWRJdGVtQ2hhbmdlZDogKHByZXZJdGVtLCBpdGVtKSA9PiBwcmV2SXRlbSAhPT0gaXRlbSxcbiAgICBlbnZpcm9ubWVudDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKHNzcikgKi9cbiAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IHt9IDogd2luZG93LFxuICAgIHN0YXRlUmVkdWNlcjogKHN0YXRlLCBzdGF0ZVRvU2V0KSA9PiBzdGF0ZVRvU2V0LFxuICAgIHN1cHByZXNzUmVmRXJyb3I6IGZhbHNlLFxuICAgIHNjcm9sbEludG9WaWV3XG4gIH07XG4gIERvd25zaGlmdC5zdGF0ZUNoYW5nZVR5cGVzID0gc3RhdGVDaGFuZ2VUeXBlcyQzO1xuICByZXR1cm4gRG93bnNoaWZ0O1xufSkoKTtcbnByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IERvd25zaGlmdC5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYyxcbiAgZGVmYXVsdEhpZ2hsaWdodGVkSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGRlZmF1bHRJc09wZW46IFByb3BUeXBlcy5ib29sLFxuICBpbml0aWFsSGlnaGxpZ2h0ZWRJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgaW5pdGlhbFNlbGVjdGVkSXRlbTogUHJvcFR5cGVzLmFueSxcbiAgaW5pdGlhbElucHV0VmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGluaXRpYWxJc09wZW46IFByb3BUeXBlcy5ib29sLFxuICBnZXRBMTF5U3RhdHVzTWVzc2FnZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGl0ZW1Ub1N0cmluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICBvblN0YXRlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25JbnB1dFZhbHVlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Vc2VyQWN0aW9uOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25PdXRlckNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgc2VsZWN0ZWRJdGVtQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIHN0YXRlUmVkdWNlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIGl0ZW1Db3VudDogUHJvcFR5cGVzLm51bWJlcixcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGVudmlyb25tZW50OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGFkZEV2ZW50TGlzdGVuZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIGRvY3VtZW50OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgZ2V0RWxlbWVudEJ5SWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgYWN0aXZlRWxlbWVudDogUHJvcFR5cGVzLmFueSxcbiAgICAgIGJvZHk6IFByb3BUeXBlcy5hbnlcbiAgICB9KVxuICB9KSxcbiAgc3VwcHJlc3NSZWZFcnJvcjogUHJvcFR5cGVzLmJvb2wsXG4gIHNjcm9sbEludG9WaWV3OiBQcm9wVHlwZXMuZnVuYyxcbiAgLy8gdGhpbmdzIHdlIGtlZXAgaW4gc3RhdGUgZm9yIHVuY29udHJvbGxlZCBjb21wb25lbnRzXG4gIC8vIGJ1dCBjYW4gYWNjZXB0IGFzIHByb3BzIGZvciBjb250cm9sbGVkIGNvbXBvbmVudHNcbiAgLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tdW51c2VkLXByb3AtdHlwZXMgKi9cbiAgc2VsZWN0ZWRJdGVtOiBQcm9wVHlwZXMuYW55LFxuICBpc09wZW46IFByb3BUeXBlcy5ib29sLFxuICBpbnB1dFZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoaWdobGlnaHRlZEluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBsYWJlbElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbnB1dElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBtZW51SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGdldEl0ZW1JZDogUHJvcFR5cGVzLmZ1bmNcbiAgLyogZXNsaW50LWVuYWJsZSByZWFjdC9uby11bnVzZWQtcHJvcC10eXBlcyAqL1xufSA6IHZvaWQgMDtcbnZhciBEb3duc2hpZnQkMSA9IERvd25zaGlmdDtcbmZ1bmN0aW9uIHZhbGlkYXRlR2V0TWVudVByb3BzQ2FsbGVkQ29ycmVjdGx5KG5vZGUsIF9yZWYzKSB7XG4gIGxldCB7XG4gICAgcmVmS2V5XG4gIH0gPSBfcmVmMztcbiAgaWYgKCFub2RlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGBkb3duc2hpZnQ6IFRoZSByZWYgcHJvcCBcIiR7cmVmS2V5fVwiIGZyb20gZ2V0TWVudVByb3BzIHdhcyBub3QgYXBwbGllZCBjb3JyZWN0bHkgb24geW91ciBtZW51IGVsZW1lbnQuYCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHZhbGlkYXRlR2V0Um9vdFByb3BzQ2FsbGVkQ29ycmVjdGx5KGVsZW1lbnQsIF9yZWY0KSB7XG4gIGxldCB7XG4gICAgcmVmS2V5XG4gIH0gPSBfcmVmNDtcbiAgY29uc3QgcmVmS2V5U3BlY2lmaWVkID0gcmVmS2V5ICE9PSAncmVmJztcbiAgY29uc3QgaXNDb21wb3NpdGUgPSAhaXNET01FbGVtZW50KGVsZW1lbnQpO1xuICBpZiAoaXNDb21wb3NpdGUgJiYgIXJlZktleVNwZWNpZmllZCAmJiAhaXNGb3J3YXJkUmVmKGVsZW1lbnQpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKCdkb3duc2hpZnQ6IFlvdSByZXR1cm5lZCBhIG5vbi1ET00gZWxlbWVudC4gWW91IG11c3Qgc3BlY2lmeSBhIHJlZktleSBpbiBnZXRSb290UHJvcHMnKTtcbiAgfSBlbHNlIGlmICghaXNDb21wb3NpdGUgJiYgcmVmS2V5U3BlY2lmaWVkKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGBkb3duc2hpZnQ6IFlvdSByZXR1cm5lZCBhIERPTSBlbGVtZW50LiBZb3Ugc2hvdWxkIG5vdCBzcGVjaWZ5IGEgcmVmS2V5IGluIGdldFJvb3RQcm9wcy4gWW91IHNwZWNpZmllZCBcIiR7cmVmS2V5fVwiYCk7XG4gIH1cbiAgaWYgKCFpc0ZvcndhcmRSZWYoZWxlbWVudCkgJiYgIWdldEVsZW1lbnRQcm9wcyhlbGVtZW50KVtyZWZLZXldKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGBkb3duc2hpZnQ6IFlvdSBtdXN0IGFwcGx5IHRoZSByZWYgcHJvcCBcIiR7cmVmS2V5fVwiIGZyb20gZ2V0Um9vdFByb3BzIG9udG8geW91ciByb290IGVsZW1lbnQuYCk7XG4gIH1cbn1cblxuY29uc3QgZHJvcGRvd25EZWZhdWx0U3RhdGVWYWx1ZXMgPSB7XG4gIGhpZ2hsaWdodGVkSW5kZXg6IC0xLFxuICBpc09wZW46IGZhbHNlLFxuICBzZWxlY3RlZEl0ZW06IG51bGwsXG4gIGlucHV0VmFsdWU6ICcnXG59O1xuZnVuY3Rpb24gY2FsbE9uQ2hhbmdlUHJvcHMoYWN0aW9uLCBzdGF0ZSwgbmV3U3RhdGUpIHtcbiAgY29uc3Qge1xuICAgIHByb3BzLFxuICAgIHR5cGVcbiAgfSA9IGFjdGlvbjtcbiAgY29uc3QgY2hhbmdlcyA9IHt9O1xuICBPYmplY3Qua2V5cyhzdGF0ZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGludm9rZU9uQ2hhbmdlSGFuZGxlcihrZXksIGFjdGlvbiwgc3RhdGUsIG5ld1N0YXRlKTtcbiAgICBpZiAobmV3U3RhdGVba2V5XSAhPT0gc3RhdGVba2V5XSkge1xuICAgICAgY2hhbmdlc1trZXldID0gbmV3U3RhdGVba2V5XTtcbiAgICB9XG4gIH0pO1xuICBpZiAocHJvcHMub25TdGF0ZUNoYW5nZSAmJiBPYmplY3Qua2V5cyhjaGFuZ2VzKS5sZW5ndGgpIHtcbiAgICBwcm9wcy5vblN0YXRlQ2hhbmdlKHtcbiAgICAgIHR5cGUsXG4gICAgICAuLi5jaGFuZ2VzXG4gICAgfSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGludm9rZU9uQ2hhbmdlSGFuZGxlcihrZXksIGFjdGlvbiwgc3RhdGUsIG5ld1N0YXRlKSB7XG4gIGNvbnN0IHtcbiAgICBwcm9wcyxcbiAgICB0eXBlXG4gIH0gPSBhY3Rpb247XG4gIGNvbnN0IGhhbmRsZXIgPSBgb24ke2NhcGl0YWxpemVTdHJpbmcoa2V5KX1DaGFuZ2VgO1xuICBpZiAocHJvcHNbaGFuZGxlcl0gJiYgbmV3U3RhdGVba2V5XSAhPT0gdW5kZWZpbmVkICYmIG5ld1N0YXRlW2tleV0gIT09IHN0YXRlW2tleV0pIHtcbiAgICBwcm9wc1toYW5kbGVyXSh7XG4gICAgICB0eXBlLFxuICAgICAgLi4ubmV3U3RhdGVcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIERlZmF1bHQgc3RhdGUgcmVkdWNlciB0aGF0IHJldHVybnMgdGhlIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHMgc3RhdGUuXG4gKiBAcGFyYW0ge09iamVjdH0gYSBhY3Rpb24gd2l0aCBjaGFuZ2VzLlxuICogQHJldHVybnMge09iamVjdH0gY2hhbmdlcy5cbiAqL1xuZnVuY3Rpb24gc3RhdGVSZWR1Y2VyKHMsIGEpIHtcbiAgcmV0dXJuIGEuY2hhbmdlcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgbWVzc2FnZSB0byBiZSBhZGRlZCB0byBhcmlhLWxpdmUgcmVnaW9uIHdoZW4gaXRlbSBpcyBzZWxlY3RlZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2VsZWN0aW9uUGFyYW1ldGVycyBQYXJhbWV0ZXJzIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBtZXNzYWdlLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGExMXkgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gZ2V0QTExeVNlbGVjdGlvbk1lc3NhZ2Uoc2VsZWN0aW9uUGFyYW1ldGVycykge1xuICBjb25zdCB7XG4gICAgc2VsZWN0ZWRJdGVtLFxuICAgIGl0ZW1Ub1N0cmluZzogaXRlbVRvU3RyaW5nTG9jYWxcbiAgfSA9IHNlbGVjdGlvblBhcmFtZXRlcnM7XG4gIHJldHVybiBzZWxlY3RlZEl0ZW0gPyBgJHtpdGVtVG9TdHJpbmdMb2NhbChzZWxlY3RlZEl0ZW0pfSBoYXMgYmVlbiBzZWxlY3RlZC5gIDogJyc7XG59XG5cbi8qKlxuICogRGVib3VuY2VkIGNhbGwgZm9yIHVwZGF0aW5nIHRoZSBhMTF5IG1lc3NhZ2UuXG4gKi9cbmNvbnN0IHVwZGF0ZUExMXlTdGF0dXMgPSBkZWJvdW5jZSgoZ2V0QTExeU1lc3NhZ2UsIGRvY3VtZW50KSA9PiB7XG4gIHNldFN0YXR1cyhnZXRBMTF5TWVzc2FnZSgpLCBkb2N1bWVudCk7XG59LCAyMDApO1xuXG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7XG5mdW5jdGlvbiB1c2VFbGVtZW50SWRzKF9yZWYpIHtcbiAgbGV0IHtcbiAgICBpZCA9IGBkb3duc2hpZnQtJHtnZW5lcmF0ZUlkKCl9YCxcbiAgICBsYWJlbElkLFxuICAgIG1lbnVJZCxcbiAgICBnZXRJdGVtSWQsXG4gICAgdG9nZ2xlQnV0dG9uSWQsXG4gICAgaW5wdXRJZFxuICB9ID0gX3JlZjtcbiAgY29uc3QgZWxlbWVudElkc1JlZiA9IHVzZVJlZih7XG4gICAgbGFiZWxJZDogbGFiZWxJZCB8fCBgJHtpZH0tbGFiZWxgLFxuICAgIG1lbnVJZDogbWVudUlkIHx8IGAke2lkfS1tZW51YCxcbiAgICBnZXRJdGVtSWQ6IGdldEl0ZW1JZCB8fCAoaW5kZXggPT4gYCR7aWR9LWl0ZW0tJHtpbmRleH1gKSxcbiAgICB0b2dnbGVCdXR0b25JZDogdG9nZ2xlQnV0dG9uSWQgfHwgYCR7aWR9LXRvZ2dsZS1idXR0b25gLFxuICAgIGlucHV0SWQ6IGlucHV0SWQgfHwgYCR7aWR9LWlucHV0YFxuICB9KTtcbiAgcmV0dXJuIGVsZW1lbnRJZHNSZWYuY3VycmVudDtcbn1cbmZ1bmN0aW9uIGdldEl0ZW1JbmRleChpbmRleCwgaXRlbSwgaXRlbXMpIHtcbiAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbiAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuICByZXR1cm4gaXRlbXMuaW5kZXhPZihpdGVtKTtcbn1cbmZ1bmN0aW9uIGl0ZW1Ub1N0cmluZyhpdGVtKSB7XG4gIHJldHVybiBpdGVtID8gU3RyaW5nKGl0ZW0pIDogJyc7XG59XG5mdW5jdGlvbiBpc0FjY2VwdGVkQ2hhcmFjdGVyS2V5KGtleSkge1xuICByZXR1cm4gL15cXFN7MX0kLy50ZXN0KGtleSk7XG59XG5mdW5jdGlvbiBjYXBpdGFsaXplU3RyaW5nKHN0cmluZykge1xuICByZXR1cm4gYCR7c3RyaW5nLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCl9JHtzdHJpbmcuc2xpY2UoMSl9YDtcbn1cbmZ1bmN0aW9uIHVzZUxhdGVzdFJlZih2YWwpIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmKHZhbCk7XG4gIC8vIHRlY2huaWNhbGx5IHRoaXMgaXMgbm90IFwiY29uY3VycmVudCBtb2RlIHNhZmVcIiBiZWNhdXNlIHdlJ3JlIG1hbmlwdWxhdGluZ1xuICAvLyB0aGUgdmFsdWUgZHVyaW5nIHJlbmRlciAoc28gaXQncyBub3QgaWRlbXBvdGVudCkuIEhvd2V2ZXIsIHRoZSBwbGFjZXMgdGhpc1xuICAvLyBob29rIGlzIHVzZWQgaXMgdG8gc3VwcG9ydCBtZW1vaXppbmcgY2FsbGJhY2tzIHdoaWNoIHdpbGwgYmUgY2FsbGVkXG4gIC8vICpkdXJpbmcqIHJlbmRlciwgc28gd2UgbmVlZCB0aGUgbGF0ZXN0IHZhbHVlcyAqZHVyaW5nKiByZW5kZXIuXG4gIC8vIElmIG5vdCBmb3IgdGhpcywgdGhlbiB3ZSdkIHByb2JhYmx5IHdhbnQgdG8gdXNlIHVzZUxheW91dEVmZmVjdCBpbnN0ZWFkLlxuICByZWYuY3VycmVudCA9IHZhbDtcbiAgcmV0dXJuIHJlZjtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgY29udHJvbGxlZCBzdGF0ZSB1c2luZyBhIHRoZSBwcmV2aW91cyBzdGF0ZSwgcHJvcHMsXG4gKiB0d28gcmVkdWNlcnMsIG9uZSBmcm9tIGRvd25zaGlmdCBhbmQgYW4gb3B0aW9uYWwgb25lIGZyb20gdGhlIHVzZXIuXG4gKiBBbHNvIGNhbGxzIHRoZSBvbkNoYW5nZSBoYW5kbGVycyBmb3Igc3RhdGUgdmFsdWVzIHRoYXQgaGF2ZSBjaGFuZ2VkLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlZHVjZXIgUmVkdWNlciBmdW5jdGlvbiBmcm9tIGRvd25zaGlmdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBpbml0aWFsU3RhdGUgSW5pdGlhbCBzdGF0ZSBvZiB0aGUgaG9vay5cbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBUaGUgaG9vayBwcm9wcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gQW4gYXJyYXkgd2l0aCB0aGUgc3RhdGUgYW5kIGFuIGFjdGlvbiBkaXNwYXRjaGVyLlxuICovXG5mdW5jdGlvbiB1c2VFbmhhbmNlZFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbFN0YXRlLCBwcm9wcykge1xuICBjb25zdCBwcmV2U3RhdGVSZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgYWN0aW9uUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGVuaGFuY2VkUmVkdWNlciA9IHVzZUNhbGxiYWNrKChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgYWN0aW9uUmVmLmN1cnJlbnQgPSBhY3Rpb247XG4gICAgc3RhdGUgPSBnZXRTdGF0ZShzdGF0ZSwgYWN0aW9uLnByb3BzKTtcbiAgICBjb25zdCBjaGFuZ2VzID0gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IGFjdGlvbi5wcm9wcy5zdGF0ZVJlZHVjZXIoc3RhdGUsIHtcbiAgICAgIC4uLmFjdGlvbixcbiAgICAgIGNoYW5nZXNcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3U3RhdGU7XG4gIH0sIFtyZWR1Y2VyXSk7XG4gIGNvbnN0IFtzdGF0ZSwgZGlzcGF0Y2hdID0gdXNlUmVkdWNlcihlbmhhbmNlZFJlZHVjZXIsIGluaXRpYWxTdGF0ZSk7XG4gIGNvbnN0IHByb3BzUmVmID0gdXNlTGF0ZXN0UmVmKHByb3BzKTtcbiAgY29uc3QgZGlzcGF0Y2hXaXRoUHJvcHMgPSB1c2VDYWxsYmFjayhhY3Rpb24gPT4gZGlzcGF0Y2goe1xuICAgIHByb3BzOiBwcm9wc1JlZi5jdXJyZW50LFxuICAgIC4uLmFjdGlvblxuICB9KSwgW3Byb3BzUmVmXSk7XG4gIGNvbnN0IGFjdGlvbiA9IGFjdGlvblJlZi5jdXJyZW50O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhY3Rpb24gJiYgcHJldlN0YXRlUmVmLmN1cnJlbnQgJiYgcHJldlN0YXRlUmVmLmN1cnJlbnQgIT09IHN0YXRlKSB7XG4gICAgICBjYWxsT25DaGFuZ2VQcm9wcyhhY3Rpb24sIGdldFN0YXRlKHByZXZTdGF0ZVJlZi5jdXJyZW50LCBhY3Rpb24ucHJvcHMpLCBzdGF0ZSk7XG4gICAgfVxuICAgIHByZXZTdGF0ZVJlZi5jdXJyZW50ID0gc3RhdGU7XG4gIH0sIFtzdGF0ZSwgcHJvcHMsIGFjdGlvbl0pO1xuICByZXR1cm4gW3N0YXRlLCBkaXNwYXRjaFdpdGhQcm9wc107XG59XG5cbi8qKlxuICogV3JhcHMgdGhlIHVzZUVuaGFuY2VkUmVkdWNlciBhbmQgYXBwbGllcyB0aGUgY29udHJvbGxlZCBwcm9wIHZhbHVlcyBiZWZvcmVcbiAqIHJldHVybmluZyB0aGUgbmV3IHN0YXRlLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlZHVjZXIgUmVkdWNlciBmdW5jdGlvbiBmcm9tIGRvd25zaGlmdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBpbml0aWFsU3RhdGUgSW5pdGlhbCBzdGF0ZSBvZiB0aGUgaG9vay5cbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBUaGUgaG9vayBwcm9wcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gQW4gYXJyYXkgd2l0aCB0aGUgc3RhdGUgYW5kIGFuIGFjdGlvbiBkaXNwYXRjaGVyLlxuICovXG5mdW5jdGlvbiB1c2VDb250cm9sbGVkUmVkdWNlciQxKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgcHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VFbmhhbmNlZFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbFN0YXRlLCBwcm9wcyk7XG4gIHJldHVybiBbZ2V0U3RhdGUoc3RhdGUsIHByb3BzKSwgZGlzcGF0Y2hdO1xufVxuY29uc3QgZGVmYXVsdFByb3BzJDMgPSB7XG4gIGl0ZW1Ub1N0cmluZyxcbiAgc3RhdGVSZWR1Y2VyLFxuICBnZXRBMTF5U2VsZWN0aW9uTWVzc2FnZSxcbiAgc2Nyb2xsSW50b1ZpZXcsXG4gIGVudmlyb25tZW50OiAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAoc3NyKSAqL1xuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IHt9IDogd2luZG93XG59O1xuZnVuY3Rpb24gZ2V0RGVmYXVsdFZhbHVlJDEocHJvcHMsIHByb3BLZXksIGRlZmF1bHRTdGF0ZVZhbHVlcykge1xuICBpZiAoZGVmYXVsdFN0YXRlVmFsdWVzID09PSB2b2lkIDApIHtcbiAgICBkZWZhdWx0U3RhdGVWYWx1ZXMgPSBkcm9wZG93bkRlZmF1bHRTdGF0ZVZhbHVlcztcbiAgfVxuICBjb25zdCBkZWZhdWx0VmFsdWUgPSBwcm9wc1tgZGVmYXVsdCR7Y2FwaXRhbGl6ZVN0cmluZyhwcm9wS2V5KX1gXTtcbiAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFN0YXRlVmFsdWVzW3Byb3BLZXldO1xufVxuZnVuY3Rpb24gZ2V0SW5pdGlhbFZhbHVlJDEocHJvcHMsIHByb3BLZXksIGRlZmF1bHRTdGF0ZVZhbHVlcykge1xuICBpZiAoZGVmYXVsdFN0YXRlVmFsdWVzID09PSB2b2lkIDApIHtcbiAgICBkZWZhdWx0U3RhdGVWYWx1ZXMgPSBkcm9wZG93bkRlZmF1bHRTdGF0ZVZhbHVlcztcbiAgfVxuICBjb25zdCB2YWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBjb25zdCBpbml0aWFsVmFsdWUgPSBwcm9wc1tgaW5pdGlhbCR7Y2FwaXRhbGl6ZVN0cmluZyhwcm9wS2V5KX1gXTtcbiAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGluaXRpYWxWYWx1ZTtcbiAgfVxuICByZXR1cm4gZ2V0RGVmYXVsdFZhbHVlJDEocHJvcHMsIHByb3BLZXksIGRlZmF1bHRTdGF0ZVZhbHVlcyk7XG59XG5mdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUkMihwcm9wcykge1xuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBnZXRJbml0aWFsVmFsdWUkMShwcm9wcywgJ3NlbGVjdGVkSXRlbScpO1xuICBjb25zdCBpc09wZW4gPSBnZXRJbml0aWFsVmFsdWUkMShwcm9wcywgJ2lzT3BlbicpO1xuICBjb25zdCBoaWdobGlnaHRlZEluZGV4ID0gZ2V0SW5pdGlhbFZhbHVlJDEocHJvcHMsICdoaWdobGlnaHRlZEluZGV4Jyk7XG4gIGNvbnN0IGlucHV0VmFsdWUgPSBnZXRJbml0aWFsVmFsdWUkMShwcm9wcywgJ2lucHV0VmFsdWUnKTtcbiAgcmV0dXJuIHtcbiAgICBoaWdobGlnaHRlZEluZGV4OiBoaWdobGlnaHRlZEluZGV4IDwgMCAmJiBzZWxlY3RlZEl0ZW0gJiYgaXNPcGVuID8gcHJvcHMuaXRlbXMuaW5kZXhPZihzZWxlY3RlZEl0ZW0pIDogaGlnaGxpZ2h0ZWRJbmRleCxcbiAgICBpc09wZW4sXG4gICAgc2VsZWN0ZWRJdGVtLFxuICAgIGlucHV0VmFsdWVcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldEhpZ2hsaWdodGVkSW5kZXhPbk9wZW4ocHJvcHMsIHN0YXRlLCBvZmZzZXQpIHtcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGluaXRpYWxIaWdobGlnaHRlZEluZGV4LFxuICAgIGRlZmF1bHRIaWdobGlnaHRlZEluZGV4XG4gIH0gPSBwcm9wcztcbiAgY29uc3Qge1xuICAgIHNlbGVjdGVkSXRlbSxcbiAgICBoaWdobGlnaHRlZEluZGV4XG4gIH0gPSBzdGF0ZTtcbiAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8vIGluaXRpYWxIaWdobGlnaHRlZEluZGV4IHdpbGwgZ2l2ZSB2YWx1ZSB0byBoaWdobGlnaHRlZEluZGV4IG9uIGluaXRpYWwgc3RhdGUgb25seS5cbiAgaWYgKGluaXRpYWxIaWdobGlnaHRlZEluZGV4ICE9PSB1bmRlZmluZWQgJiYgaGlnaGxpZ2h0ZWRJbmRleCA9PT0gaW5pdGlhbEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICByZXR1cm4gaW5pdGlhbEhpZ2hsaWdodGVkSW5kZXg7XG4gIH1cbiAgaWYgKGRlZmF1bHRIaWdobGlnaHRlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGVmYXVsdEhpZ2hsaWdodGVkSW5kZXg7XG4gIH1cbiAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgIHJldHVybiBpdGVtcy5pbmRleE9mKHNlbGVjdGVkSXRlbSk7XG4gIH1cbiAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuICByZXR1cm4gb2Zmc2V0IDwgMCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiAwO1xufVxuXG4vKipcbiAqIFJldXNlIHRoZSBtb3ZlbWVudCB0cmFja2luZyBvZiBtb3VzZSBhbmQgdG91Y2ggZXZlbnRzLlxuICpcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNPcGVuIFdoZXRoZXIgdGhlIGRyb3Bkb3duIGlzIG9wZW4gb3Igbm90LlxuICogQHBhcmFtIHtBcnJheTxPYmplY3Q+fSBkb3duc2hpZnRFbGVtZW50UmVmcyBEb3duc2hpZnQgZWxlbWVudCByZWZzIHRvIHRyYWNrIG1vdmVtZW50ICh0b2dnbGVCdXR0b24sIG1lbnUgZXRjLilcbiAqIEBwYXJhbSB7T2JqZWN0fSBlbnZpcm9ubWVudCBFbnZpcm9ubWVudCB3aGVyZSBjb21wb25lbnQvaG9vayBleGlzdHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVCbHVyIEhhbmRsZXIgb24gYmx1ciBmcm9tIG1vdXNlIG9yIHRvdWNoLlxuICogQHJldHVybnMge09iamVjdH0gUmVmIGNvbnRhaW5pbmcgd2hldGhlciBtb3VzZURvd24gb3IgdG91Y2hNb3ZlIGV2ZW50IGlzIGhhcHBlbmluZ1xuICovXG5mdW5jdGlvbiB1c2VNb3VzZUFuZFRvdWNoVHJhY2tlcihpc09wZW4sIGRvd25zaGlmdEVsZW1lbnRSZWZzLCBlbnZpcm9ubWVudCwgaGFuZGxlQmx1cikge1xuICBjb25zdCBtb3VzZUFuZFRvdWNoVHJhY2tlcnNSZWYgPSB1c2VSZWYoe1xuICAgIGlzTW91c2VEb3duOiBmYWxzZSxcbiAgICBpc1RvdWNoTW92ZTogZmFsc2VcbiAgfSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVGhlIHNhbWUgc3RyYXRlZ3kgZm9yIGNoZWNraW5nIGlmIGEgY2xpY2sgb2NjdXJyZWQgaW5zaWRlIG9yIG91dHNpZGUgZG93bnNpZnRcbiAgICAvLyBhcyBpbiBkb3duc2hpZnQuanMuXG4gICAgY29uc3Qgb25Nb3VzZURvd24gPSAoKSA9PiB7XG4gICAgICBtb3VzZUFuZFRvdWNoVHJhY2tlcnNSZWYuY3VycmVudC5pc01vdXNlRG93biA9IHRydWU7XG4gICAgfTtcbiAgICBjb25zdCBvbk1vdXNlVXAgPSBldmVudCA9PiB7XG4gICAgICBtb3VzZUFuZFRvdWNoVHJhY2tlcnNSZWYuY3VycmVudC5pc01vdXNlRG93biA9IGZhbHNlO1xuICAgICAgaWYgKGlzT3BlbiAmJiAhdGFyZ2V0V2l0aGluRG93bnNoaWZ0KGV2ZW50LnRhcmdldCwgZG93bnNoaWZ0RWxlbWVudFJlZnMubWFwKHJlZiA9PiByZWYuY3VycmVudCksIGVudmlyb25tZW50KSkge1xuICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvblRvdWNoU3RhcnQgPSAoKSA9PiB7XG4gICAgICBtb3VzZUFuZFRvdWNoVHJhY2tlcnNSZWYuY3VycmVudC5pc1RvdWNoTW92ZSA9IGZhbHNlO1xuICAgIH07XG4gICAgY29uc3Qgb25Ub3VjaE1vdmUgPSAoKSA9PiB7XG4gICAgICBtb3VzZUFuZFRvdWNoVHJhY2tlcnNSZWYuY3VycmVudC5pc1RvdWNoTW92ZSA9IHRydWU7XG4gICAgfTtcbiAgICBjb25zdCBvblRvdWNoRW5kID0gZXZlbnQgPT4ge1xuICAgICAgaWYgKGlzT3BlbiAmJiAhbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmLmN1cnJlbnQuaXNUb3VjaE1vdmUgJiYgIXRhcmdldFdpdGhpbkRvd25zaGlmdChldmVudC50YXJnZXQsIGRvd25zaGlmdEVsZW1lbnRSZWZzLm1hcChyZWYgPT4gcmVmLmN1cnJlbnQpLCBlbnZpcm9ubWVudCwgZmFsc2UpKSB7XG4gICAgICAgIGhhbmRsZUJsdXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGVudmlyb25tZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uTW91c2VEb3duKTtcbiAgICBlbnZpcm9ubWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25Nb3VzZVVwKTtcbiAgICBlbnZpcm9ubWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgb25Ub3VjaFN0YXJ0KTtcbiAgICBlbnZpcm9ubWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSk7XG4gICAgZW52aXJvbm1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvblRvdWNoRW5kKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIGVudmlyb25tZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uTW91c2VEb3duKTtcbiAgICAgIGVudmlyb25tZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBvbk1vdXNlVXApO1xuICAgICAgZW52aXJvbm1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uVG91Y2hTdGFydCk7XG4gICAgICBlbnZpcm9ubWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSk7XG4gICAgICBlbnZpcm9ubWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIG9uVG91Y2hFbmQpO1xuICAgIH07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbaXNPcGVuLCBlbnZpcm9ubWVudF0pO1xuICByZXR1cm4gbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1tdXRhYmxlLWV4cG9ydHNcbmxldCB1c2VHZXR0ZXJQcm9wc0NhbGxlZENoZWNrZXIgPSAoKSA9PiBub29wO1xuLyoqXG4gKiBDdXN0b20gaG9vayB0aGF0IGNoZWNrcyBpZiBnZXR0ZXIgcHJvcHMgYXJlIGNhbGxlZCBjb3JyZWN0bHkuXG4gKlxuICogQHBhcmFtICB7Li4uYW55fSBwcm9wS2V5cyBHZXR0ZXIgcHJvcCBuYW1lcyB0byBiZSBoYW5kbGVkLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBTZXR0ZXIgZnVuY3Rpb24gY2FsbGVkIGluc2lkZSBnZXR0ZXIgcHJvcHMgdG8gc2V0IGNhbGwgaW5mb3JtYXRpb24uXG4gKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB1c2VHZXR0ZXJQcm9wc0NhbGxlZENoZWNrZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaXNJbml0aWFsTW91bnRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHByb3BLZXlzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgcHJvcEtleXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIGNvbnN0IGdldHRlclByb3BzQ2FsbGVkUmVmID0gdXNlUmVmKHByb3BLZXlzLnJlZHVjZSgoYWNjLCBwcm9wS2V5KSA9PiB7XG4gICAgICBhY2NbcHJvcEtleV0gPSB7fTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgT2JqZWN0LmtleXMoZ2V0dGVyUHJvcHNDYWxsZWRSZWYuY3VycmVudCkuZm9yRWFjaChwcm9wS2V5ID0+IHtcbiAgICAgICAgY29uc3QgcHJvcENhbGxJbmZvID0gZ2V0dGVyUHJvcHNDYWxsZWRSZWYuY3VycmVudFtwcm9wS2V5XTtcbiAgICAgICAgaWYgKGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKHByb3BDYWxsSW5mbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgZG93bnNoaWZ0OiBZb3UgZm9yZ290IHRvIGNhbGwgdGhlICR7cHJvcEtleX0gZ2V0dGVyIGZ1bmN0aW9uIG9uIHlvdXIgY29tcG9uZW50IC8gZWxlbWVudC5gKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHN1cHByZXNzUmVmRXJyb3IsXG4gICAgICAgICAgcmVmS2V5LFxuICAgICAgICAgIGVsZW1lbnRSZWZcbiAgICAgICAgfSA9IHByb3BDYWxsSW5mbztcbiAgICAgICAgaWYgKCghZWxlbWVudFJlZiB8fCAhZWxlbWVudFJlZi5jdXJyZW50KSAmJiAhc3VwcHJlc3NSZWZFcnJvcikge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgZG93bnNoaWZ0OiBUaGUgcmVmIHByb3AgXCIke3JlZktleX1cIiBmcm9tICR7cHJvcEtleX0gd2FzIG5vdCBhcHBsaWVkIGNvcnJlY3RseSBvbiB5b3VyIGVsZW1lbnQuYCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaXNJbml0aWFsTW91bnRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEdldHRlclByb3BDYWxsSW5mbyA9IHVzZUNhbGxiYWNrKChwcm9wS2V5LCBzdXBwcmVzc1JlZkVycm9yLCByZWZLZXksIGVsZW1lbnRSZWYpID0+IHtcbiAgICAgIGdldHRlclByb3BzQ2FsbGVkUmVmLmN1cnJlbnRbcHJvcEtleV0gPSB7XG4gICAgICAgIHN1cHByZXNzUmVmRXJyb3IsXG4gICAgICAgIHJlZktleSxcbiAgICAgICAgZWxlbWVudFJlZlxuICAgICAgfTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHNldEdldHRlclByb3BDYWxsSW5mbztcbiAgfTtcbn1cbmZ1bmN0aW9uIHVzZUExMXlNZXNzYWdlU2V0dGVyKGdldEExMXlNZXNzYWdlLCBkZXBlbmRlbmN5QXJyYXksIF9yZWYyKSB7XG4gIGxldCB7XG4gICAgaXNJbml0aWFsTW91bnQsXG4gICAgaGlnaGxpZ2h0ZWRJbmRleCxcbiAgICBpdGVtcyxcbiAgICBlbnZpcm9ubWVudCxcbiAgICAuLi5yZXN0XG4gIH0gPSBfcmVmMjtcbiAgLy8gU2V0cyBhMTF5IHN0YXR1cyBtZXNzYWdlIG9uIGNoYW5nZXMgaW4gc3RhdGUuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbE1vdW50IHx8IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHVwZGF0ZUExMXlTdGF0dXMoKCkgPT4gZ2V0QTExeU1lc3NhZ2Uoe1xuICAgICAgaGlnaGxpZ2h0ZWRJbmRleCxcbiAgICAgIGhpZ2hsaWdodGVkSXRlbTogaXRlbXNbaGlnaGxpZ2h0ZWRJbmRleF0sXG4gICAgICByZXN1bHRDb3VudDogaXRlbXMubGVuZ3RoLFxuICAgICAgLi4ucmVzdFxuICAgIH0pLCBlbnZpcm9ubWVudC5kb2N1bWVudCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBkZXBlbmRlbmN5QXJyYXkpO1xufVxuZnVuY3Rpb24gdXNlU2Nyb2xsSW50b1ZpZXcoX3JlZjMpIHtcbiAgbGV0IHtcbiAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgIGlzT3BlbixcbiAgICBpdGVtUmVmcyxcbiAgICBnZXRJdGVtTm9kZUZyb21JbmRleCxcbiAgICBtZW51RWxlbWVudCxcbiAgICBzY3JvbGxJbnRvVmlldzogc2Nyb2xsSW50b1ZpZXdQcm9wXG4gIH0gPSBfcmVmMztcbiAgLy8gdXNlZCBub3QgdG8gc2Nyb2xsIG9uIGhpZ2hsaWdodCBieSBtb3VzZS5cbiAgY29uc3Qgc2hvdWxkU2Nyb2xsUmVmID0gdXNlUmVmKHRydWUpO1xuICAvLyBTY3JvbGwgb24gaGlnaGxpZ2h0ZWQgaXRlbSBpZiBjaGFuZ2UgY29tZXMgZnJvbSBrZXlib2FyZC5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGhpZ2hsaWdodGVkSW5kZXggPCAwIHx8ICFpc09wZW4gfHwgIU9iamVjdC5rZXlzKGl0ZW1SZWZzLmN1cnJlbnQpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc2hvdWxkU2Nyb2xsUmVmLmN1cnJlbnQgPT09IGZhbHNlKSB7XG4gICAgICBzaG91bGRTY3JvbGxSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjcm9sbEludG9WaWV3UHJvcChnZXRJdGVtTm9kZUZyb21JbmRleChoaWdobGlnaHRlZEluZGV4KSwgbWVudUVsZW1lbnQpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtoaWdobGlnaHRlZEluZGV4XSk7XG4gIHJldHVybiBzaG91bGRTY3JvbGxSZWY7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tbXV0YWJsZS1leHBvcnRzXG5sZXQgdXNlQ29udHJvbFByb3BzVmFsaWRhdG9yID0gbm9vcDtcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB1c2VDb250cm9sUHJvcHNWYWxpZGF0b3IgPSBfcmVmNCA9PiB7XG4gICAgbGV0IHtcbiAgICAgIGlzSW5pdGlhbE1vdW50LFxuICAgICAgcHJvcHMsXG4gICAgICBzdGF0ZVxuICAgIH0gPSBfcmVmNDtcbiAgICAvLyB1c2VkIGZvciBjaGVja2luZyB3aGVuIHByb3BzIGFyZSBtb3ZpbmcgZnJvbSBjb250cm9sbGVkIHRvIHVuY29udHJvbGxlZC5cbiAgICBjb25zdCBwcmV2UHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNJbml0aWFsTW91bnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFsaWRhdGVDb250cm9sbGVkVW5jaGFuZ2VkKHN0YXRlLCBwcmV2UHJvcHNSZWYuY3VycmVudCwgcHJvcHMpO1xuICAgICAgcHJldlByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9LCBbc3RhdGUsIHByb3BzLCBpc0luaXRpYWxNb3VudF0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBkb3duc2hpZnRDb21tb25SZWR1Y2VyKHN0YXRlLCBhY3Rpb24sIHN0YXRlQ2hhbmdlVHlwZXMpIHtcbiAgY29uc3Qge1xuICAgIHR5cGUsXG4gICAgcHJvcHNcbiAgfSA9IGFjdGlvbjtcbiAgbGV0IGNoYW5nZXM7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2Ugc3RhdGVDaGFuZ2VUeXBlcy5JdGVtTW91c2VNb3ZlOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogYWN0aW9uLmRpc2FibGVkID8gLTEgOiBhY3Rpb24uaW5kZXhcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIHN0YXRlQ2hhbmdlVHlwZXMuTWVudU1vdXNlTGVhdmU6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiAtMVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2Ugc3RhdGVDaGFuZ2VUeXBlcy5Ub2dnbGVCdXR0b25DbGljazpcbiAgICBjYXNlIHN0YXRlQ2hhbmdlVHlwZXMuRnVuY3Rpb25Ub2dnbGVNZW51OlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaXNPcGVuOiAhc3RhdGUuaXNPcGVuLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBzdGF0ZS5pc09wZW4gPyAtMSA6IGdldEhpZ2hsaWdodGVkSW5kZXhPbk9wZW4ocHJvcHMsIHN0YXRlLCAwKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2Ugc3RhdGVDaGFuZ2VUeXBlcy5GdW5jdGlvbk9wZW5NZW51OlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXRIaWdobGlnaHRlZEluZGV4T25PcGVuKHByb3BzLCBzdGF0ZSwgMClcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIHN0YXRlQ2hhbmdlVHlwZXMuRnVuY3Rpb25DbG9zZU1lbnU6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBpc09wZW46IGZhbHNlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBzdGF0ZUNoYW5nZVR5cGVzLkZ1bmN0aW9uU2V0SGlnaGxpZ2h0ZWRJbmRleDpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGFjdGlvbi5oaWdobGlnaHRlZEluZGV4XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBzdGF0ZUNoYW5nZVR5cGVzLkZ1bmN0aW9uU2V0SW5wdXRWYWx1ZTpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGlucHV0VmFsdWU6IGFjdGlvbi5pbnB1dFZhbHVlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBzdGF0ZUNoYW5nZVR5cGVzLkZ1bmN0aW9uUmVzZXQ6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2hpZ2hsaWdodGVkSW5kZXgnKSxcbiAgICAgICAgaXNPcGVuOiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2lzT3BlbicpLFxuICAgICAgICBzZWxlY3RlZEl0ZW06IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnc2VsZWN0ZWRJdGVtJyksXG4gICAgICAgIGlucHV0VmFsdWU6IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnaW5wdXRWYWx1ZScpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVkdWNlciBjYWxsZWQgd2l0aG91dCBwcm9wZXIgYWN0aW9uIHR5cGUuJyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi5jaGFuZ2VzXG4gIH07XG59XG4vKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuZnVuY3Rpb24gZ2V0SXRlbUluZGV4QnlDaGFyYWN0ZXJLZXkoX2EpIHtcbiAgICB2YXIga2V5c1NvRmFyID0gX2Eua2V5c1NvRmFyLCBoaWdobGlnaHRlZEluZGV4ID0gX2EuaGlnaGxpZ2h0ZWRJbmRleCwgaXRlbXMgPSBfYS5pdGVtcywgaXRlbVRvU3RyaW5nID0gX2EuaXRlbVRvU3RyaW5nLCBnZXRJdGVtTm9kZUZyb21JbmRleCA9IF9hLmdldEl0ZW1Ob2RlRnJvbUluZGV4O1xuICAgIHZhciBsb3dlckNhc2VkS2V5c1NvRmFyID0ga2V5c1NvRmFyLnRvTG93ZXJDYXNlKCk7XG4gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW1zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICB2YXIgb2Zmc2V0SW5kZXggPSAoaW5kZXggKyBoaWdobGlnaHRlZEluZGV4ICsgMSkgJSBpdGVtcy5sZW5ndGg7XG4gICAgICAgIHZhciBpdGVtID0gaXRlbXNbb2Zmc2V0SW5kZXhdO1xuICAgICAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBpdGVtVG9TdHJpbmcoaXRlbSlcbiAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgIC5zdGFydHNXaXRoKGxvd2VyQ2FzZWRLZXlzU29GYXIpKSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IGdldEl0ZW1Ob2RlRnJvbUluZGV4KG9mZnNldEluZGV4KTtcbiAgICAgICAgICAgIGlmICghKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mZnNldEluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoaWdobGlnaHRlZEluZGV4O1xufVxudmFyIHByb3BUeXBlcyQyID0ge1xuICAgIGl0ZW1zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICBpdGVtVG9TdHJpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAgIGdldEExMXlTdGF0dXNNZXNzYWdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBnZXRBMTF5U2VsZWN0aW9uTWVzc2FnZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaGlnaGxpZ2h0ZWRJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBkZWZhdWx0SGlnaGxpZ2h0ZWRJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBpbml0aWFsSGlnaGxpZ2h0ZWRJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBpc09wZW46IFByb3BUeXBlcy5ib29sLFxuICAgIGRlZmF1bHRJc09wZW46IFByb3BUeXBlcy5ib29sLFxuICAgIGluaXRpYWxJc09wZW46IFByb3BUeXBlcy5ib29sLFxuICAgIHNlbGVjdGVkSXRlbTogUHJvcFR5cGVzLmFueSxcbiAgICBpbml0aWFsU2VsZWN0ZWRJdGVtOiBQcm9wVHlwZXMuYW55LFxuICAgIGRlZmF1bHRTZWxlY3RlZEl0ZW06IFByb3BUeXBlcy5hbnksXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGFiZWxJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtZW51SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZ2V0SXRlbUlkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICB0b2dnbGVCdXR0b25JZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzdGF0ZVJlZHVjZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uU2VsZWN0ZWRJdGVtQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkhpZ2hsaWdodGVkSW5kZXhDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uU3RhdGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uSXNPcGVuQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBlbnZpcm9ubWVudDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICBkb2N1bWVudDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgICAgIGFjdGl2ZUVsZW1lbnQ6IFByb3BUeXBlcy5hbnksXG4gICAgICAgICAgICBib2R5OiBQcm9wVHlwZXMuYW55XG4gICAgICAgIH0pXG4gICAgfSlcbn07XG4vKipcbiAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIHN0YXR1cyBtZXNzYWdlLiBPbmx5IGFkZGVkIHdoZW4gbWVudSBpcyBvcGVuLlxuICogV2lsbCBzcGVjaWZ0IGlmIHRoZXJlIGFyZSByZXN1bHRzIGluIHRoZSBsaXN0LCBhbmQgaWYgc28sIGhvdyBtYW55LFxuICogYW5kIHdoYXQga2V5cyBhcmUgcmVsZXZhbnQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtIHRoZSBkb3duc2hpZnQgc3RhdGUgYW5kIG90aGVyIHJlbGV2YW50IHByb3BlcnRpZXNcbiAqIEByZXR1cm4ge1N0cmluZ30gdGhlIGExMXkgc3RhdHVzIG1lc3NhZ2VcbiAqL1xuZnVuY3Rpb24gZ2V0QTExeVN0YXR1c01lc3NhZ2UoX2EpIHtcbiAgICB2YXIgaXNPcGVuID0gX2EuaXNPcGVuLCByZXN1bHRDb3VudCA9IF9hLnJlc3VsdENvdW50LCBwcmV2aW91c1Jlc3VsdENvdW50ID0gX2EucHJldmlvdXNSZXN1bHRDb3VudDtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICghcmVzdWx0Q291bnQpIHtcbiAgICAgICAgcmV0dXJuICdObyByZXN1bHRzIGFyZSBhdmFpbGFibGUuJztcbiAgICB9XG4gICAgaWYgKHJlc3VsdENvdW50ICE9PSBwcmV2aW91c1Jlc3VsdENvdW50KSB7XG4gICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChyZXN1bHRDb3VudCwgXCIgcmVzdWx0XCIpLmNvbmNhdChyZXN1bHRDb3VudCA9PT0gMSA/ICcgaXMnIDogJ3MgYXJlJywgXCIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4gUHJlc3MgRW50ZXIgb3IgU3BhY2UgQmFyIGtleXMgdG8gc2VsZWN0LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxudmFyIGRlZmF1bHRQcm9wcyQyID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGRlZmF1bHRQcm9wcyQzKSwgeyBnZXRBMTF5U3RhdHVzTWVzc2FnZTogZ2V0QTExeVN0YXR1c01lc3NhZ2UgfSk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xudmFyIHZhbGlkYXRlUHJvcFR5cGVzJDIgPSBub29wO1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMkMiA9IGZ1bmN0aW9uIChvcHRpb25zLCBjYWxsZXIpIHtcbiAgICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKHByb3BUeXBlcyQyLCBvcHRpb25zLCAncHJvcCcsIGNhbGxlci5uYW1lKTtcbiAgICB9O1xufVxuXG5jb25zdCBUb2dnbGVCdXR0b25DbGljayQxID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fdG9nZ2xlYnV0dG9uX2NsaWNrX18nIDogMDtcbmNvbnN0IFRvZ2dsZUJ1dHRvbktleURvd25BcnJvd0Rvd24gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX190b2dnbGVidXR0b25fa2V5ZG93bl9hcnJvd19kb3duX18nIDogMTtcbmNvbnN0IFRvZ2dsZUJ1dHRvbktleURvd25BcnJvd1VwID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fdG9nZ2xlYnV0dG9uX2tleWRvd25fYXJyb3dfdXBfXycgOiAyO1xuY29uc3QgVG9nZ2xlQnV0dG9uS2V5RG93bkNoYXJhY3RlciA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX3RvZ2dsZWJ1dHRvbl9rZXlkb3duX2NoYXJhY3Rlcl9fJyA6IDM7XG5jb25zdCBUb2dnbGVCdXR0b25LZXlEb3duRXNjYXBlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fdG9nZ2xlYnV0dG9uX2tleWRvd25fZXNjYXBlX18nIDogNDtcbmNvbnN0IFRvZ2dsZUJ1dHRvbktleURvd25Ib21lID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fdG9nZ2xlYnV0dG9uX2tleWRvd25faG9tZV9fJyA6IDU7XG5jb25zdCBUb2dnbGVCdXR0b25LZXlEb3duRW5kID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fdG9nZ2xlYnV0dG9uX2tleWRvd25fZW5kX18nIDogNjtcbmNvbnN0IFRvZ2dsZUJ1dHRvbktleURvd25FbnRlciA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX3RvZ2dsZWJ1dHRvbl9rZXlkb3duX2VudGVyX18nIDogNztcbmNvbnN0IFRvZ2dsZUJ1dHRvbktleURvd25TcGFjZUJ1dHRvbiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX3RvZ2dsZWJ1dHRvbl9rZXlkb3duX3NwYWNlX2J1dHRvbl9fJyA6IDg7XG5jb25zdCBUb2dnbGVCdXR0b25LZXlEb3duUGFnZVVwID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fdG9nZ2xlYnV0dG9uX2tleWRvd25fcGFnZV91cF9fJyA6IDk7XG5jb25zdCBUb2dnbGVCdXR0b25LZXlEb3duUGFnZURvd24gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX190b2dnbGVidXR0b25fa2V5ZG93bl9wYWdlX2Rvd25fXycgOiAxMDtcbmNvbnN0IFRvZ2dsZUJ1dHRvbkJsdXIgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX190b2dnbGVidXR0b25fYmx1cl9fJyA6IDExO1xuY29uc3QgTWVudU1vdXNlTGVhdmUkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX21lbnVfbW91c2VfbGVhdmVfXycgOiAxMjtcbmNvbnN0IEl0ZW1Nb3VzZU1vdmUkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2l0ZW1fbW91c2VfbW92ZV9fJyA6IDEzO1xuY29uc3QgSXRlbUNsaWNrJDEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19pdGVtX2NsaWNrX18nIDogMTQ7XG5jb25zdCBGdW5jdGlvblRvZ2dsZU1lbnUkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Z1bmN0aW9uX3RvZ2dsZV9tZW51X18nIDogMTU7XG5jb25zdCBGdW5jdGlvbk9wZW5NZW51JDEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9vcGVuX21lbnVfXycgOiAxNjtcbmNvbnN0IEZ1bmN0aW9uQ2xvc2VNZW51JDEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9jbG9zZV9tZW51X18nIDogMTc7XG5jb25zdCBGdW5jdGlvblNldEhpZ2hsaWdodGVkSW5kZXgkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Z1bmN0aW9uX3NldF9oaWdobGlnaHRlZF9pbmRleF9fJyA6IDE4O1xuY29uc3QgRnVuY3Rpb25TZWxlY3RJdGVtJDEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9zZWxlY3RfaXRlbV9fJyA6IDE5O1xuY29uc3QgRnVuY3Rpb25TZXRJbnB1dFZhbHVlJDEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9zZXRfaW5wdXRfdmFsdWVfXycgOiAyMDtcbmNvbnN0IEZ1bmN0aW9uUmVzZXQkMiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Z1bmN0aW9uX3Jlc2V0X18nIDogMjE7XG5cbnZhciBzdGF0ZUNoYW5nZVR5cGVzJDIgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgVG9nZ2xlQnV0dG9uQ2xpY2s6IFRvZ2dsZUJ1dHRvbkNsaWNrJDEsXG4gIFRvZ2dsZUJ1dHRvbktleURvd25BcnJvd0Rvd246IFRvZ2dsZUJ1dHRvbktleURvd25BcnJvd0Rvd24sXG4gIFRvZ2dsZUJ1dHRvbktleURvd25BcnJvd1VwOiBUb2dnbGVCdXR0b25LZXlEb3duQXJyb3dVcCxcbiAgVG9nZ2xlQnV0dG9uS2V5RG93bkNoYXJhY3RlcjogVG9nZ2xlQnV0dG9uS2V5RG93bkNoYXJhY3RlcixcbiAgVG9nZ2xlQnV0dG9uS2V5RG93bkVzY2FwZTogVG9nZ2xlQnV0dG9uS2V5RG93bkVzY2FwZSxcbiAgVG9nZ2xlQnV0dG9uS2V5RG93bkhvbWU6IFRvZ2dsZUJ1dHRvbktleURvd25Ib21lLFxuICBUb2dnbGVCdXR0b25LZXlEb3duRW5kOiBUb2dnbGVCdXR0b25LZXlEb3duRW5kLFxuICBUb2dnbGVCdXR0b25LZXlEb3duRW50ZXI6IFRvZ2dsZUJ1dHRvbktleURvd25FbnRlcixcbiAgVG9nZ2xlQnV0dG9uS2V5RG93blNwYWNlQnV0dG9uOiBUb2dnbGVCdXR0b25LZXlEb3duU3BhY2VCdXR0b24sXG4gIFRvZ2dsZUJ1dHRvbktleURvd25QYWdlVXA6IFRvZ2dsZUJ1dHRvbktleURvd25QYWdlVXAsXG4gIFRvZ2dsZUJ1dHRvbktleURvd25QYWdlRG93bjogVG9nZ2xlQnV0dG9uS2V5RG93blBhZ2VEb3duLFxuICBUb2dnbGVCdXR0b25CbHVyOiBUb2dnbGVCdXR0b25CbHVyLFxuICBNZW51TW91c2VMZWF2ZTogTWVudU1vdXNlTGVhdmUkMSxcbiAgSXRlbU1vdXNlTW92ZTogSXRlbU1vdXNlTW92ZSQxLFxuICBJdGVtQ2xpY2s6IEl0ZW1DbGljayQxLFxuICBGdW5jdGlvblRvZ2dsZU1lbnU6IEZ1bmN0aW9uVG9nZ2xlTWVudSQxLFxuICBGdW5jdGlvbk9wZW5NZW51OiBGdW5jdGlvbk9wZW5NZW51JDEsXG4gIEZ1bmN0aW9uQ2xvc2VNZW51OiBGdW5jdGlvbkNsb3NlTWVudSQxLFxuICBGdW5jdGlvblNldEhpZ2hsaWdodGVkSW5kZXg6IEZ1bmN0aW9uU2V0SGlnaGxpZ2h0ZWRJbmRleCQxLFxuICBGdW5jdGlvblNlbGVjdEl0ZW06IEZ1bmN0aW9uU2VsZWN0SXRlbSQxLFxuICBGdW5jdGlvblNldElucHV0VmFsdWU6IEZ1bmN0aW9uU2V0SW5wdXRWYWx1ZSQxLFxuICBGdW5jdGlvblJlc2V0OiBGdW5jdGlvblJlc2V0JDJcbn0pO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5mdW5jdGlvbiBkb3duc2hpZnRTZWxlY3RSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHtcbiAgY29uc3Qge1xuICAgIHR5cGUsXG4gICAgcHJvcHMsXG4gICAgYWx0S2V5XG4gIH0gPSBhY3Rpb247XG4gIGxldCBjaGFuZ2VzO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIEl0ZW1DbGljayQxOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaXNPcGVuOiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2lzT3BlbicpLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2hpZ2hsaWdodGVkSW5kZXgnKSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtOiBwcm9wcy5pdGVtc1thY3Rpb24uaW5kZXhdXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBUb2dnbGVCdXR0b25LZXlEb3duQ2hhcmFjdGVyOlxuICAgICAge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2VkS2V5ID0gYWN0aW9uLmtleTtcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGAke3N0YXRlLmlucHV0VmFsdWV9JHtsb3dlcmNhc2VkS2V5fWA7XG4gICAgICAgIGNvbnN0IHByZXZIaWdobGlnaHRlZEluZGV4ID0gIXN0YXRlLmlzT3BlbiAmJiBzdGF0ZS5zZWxlY3RlZEl0ZW0gPyBwcm9wcy5pdGVtcy5pbmRleE9mKHN0YXRlLnNlbGVjdGVkSXRlbSkgOiBzdGF0ZS5oaWdobGlnaHRlZEluZGV4O1xuICAgICAgICBjb25zdCBoaWdobGlnaHRlZEluZGV4ID0gZ2V0SXRlbUluZGV4QnlDaGFyYWN0ZXJLZXkoe1xuICAgICAgICAgIGtleXNTb0ZhcjogaW5wdXRWYWx1ZSxcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBwcmV2SGlnaGxpZ2h0ZWRJbmRleCxcbiAgICAgICAgICBpdGVtczogcHJvcHMuaXRlbXMsXG4gICAgICAgICAgaXRlbVRvU3RyaW5nOiBwcm9wcy5pdGVtVG9TdHJpbmcsXG4gICAgICAgICAgZ2V0SXRlbU5vZGVGcm9tSW5kZXg6IGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleFxuICAgICAgICB9KTtcbiAgICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICAgIGhpZ2hsaWdodGVkSW5kZXgsXG4gICAgICAgICAgaXNPcGVuOiB0cnVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFRvZ2dsZUJ1dHRvbktleURvd25BcnJvd0Rvd246XG4gICAgICB7XG4gICAgICAgIGNvbnN0IGhpZ2hsaWdodGVkSW5kZXggPSBzdGF0ZS5pc09wZW4gPyBnZXROZXh0V3JhcHBpbmdJbmRleCgxLCBzdGF0ZS5oaWdobGlnaHRlZEluZGV4LCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpIDogYWx0S2V5ICYmIHN0YXRlLnNlbGVjdGVkSXRlbSA9PSBudWxsID8gLTEgOiBnZXRIaWdobGlnaHRlZEluZGV4T25PcGVuKHByb3BzLCBzdGF0ZSwgMSk7XG4gICAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleCxcbiAgICAgICAgICBpc09wZW46IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVG9nZ2xlQnV0dG9uS2V5RG93bkFycm93VXA6XG4gICAgICBpZiAoc3RhdGUuaXNPcGVuICYmIGFsdEtleSkge1xuICAgICAgICBjaGFuZ2VzID0ge1xuICAgICAgICAgIGlzT3BlbjogZ2V0RGVmYXVsdFZhbHVlJDEocHJvcHMsICdpc09wZW4nKSxcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2hpZ2hsaWdodGVkSW5kZXgnKSxcbiAgICAgICAgICAuLi4oc3RhdGUuaGlnaGxpZ2h0ZWRJbmRleCA+PSAwICYmIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbTogcHJvcHMuaXRlbXNbc3RhdGUuaGlnaGxpZ2h0ZWRJbmRleF1cbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRJbmRleCA9IHN0YXRlLmlzT3BlbiA/IGdldE5leHRXcmFwcGluZ0luZGV4KC0xLCBzdGF0ZS5oaWdobGlnaHRlZEluZGV4LCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpIDogZ2V0SGlnaGxpZ2h0ZWRJbmRleE9uT3Blbihwcm9wcywgc3RhdGUsIC0xKTtcbiAgICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgICAgICAgIGlzT3BlbjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgLy8gb25seSB0cmlnZ2VyZWQgd2hlbiBtZW51IGlzIG9wZW4uXG4gICAgY2FzZSBUb2dnbGVCdXR0b25LZXlEb3duRW50ZXI6XG4gICAgY2FzZSBUb2dnbGVCdXR0b25LZXlEb3duU3BhY2VCdXR0b246XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBpc09wZW46IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnaXNPcGVuJyksXG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnaGlnaGxpZ2h0ZWRJbmRleCcpLFxuICAgICAgICAuLi4oc3RhdGUuaGlnaGxpZ2h0ZWRJbmRleCA+PSAwICYmIHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW06IHByb3BzLml0ZW1zW3N0YXRlLmhpZ2hsaWdodGVkSW5kZXhdXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBUb2dnbGVCdXR0b25LZXlEb3duSG9tZTpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldE5leHROb25EaXNhYmxlZEluZGV4KDEsIDAsIHByb3BzLml0ZW1zLmxlbmd0aCwgYWN0aW9uLmdldEl0ZW1Ob2RlRnJvbUluZGV4LCBmYWxzZSksXG4gICAgICAgIGlzT3BlbjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVG9nZ2xlQnV0dG9uS2V5RG93bkVuZDpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldE5leHROb25EaXNhYmxlZEluZGV4KC0xLCBwcm9wcy5pdGVtcy5sZW5ndGggLSAxLCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpLFxuICAgICAgICBpc09wZW46IHRydWVcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIFRvZ2dsZUJ1dHRvbktleURvd25QYWdlVXA6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXROZXh0V3JhcHBpbmdJbmRleCgtMTAsIHN0YXRlLmhpZ2hsaWdodGVkSW5kZXgsIHByb3BzLml0ZW1zLmxlbmd0aCwgYWN0aW9uLmdldEl0ZW1Ob2RlRnJvbUluZGV4LCBmYWxzZSlcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIFRvZ2dsZUJ1dHRvbktleURvd25QYWdlRG93bjpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldE5leHRXcmFwcGluZ0luZGV4KDEwLCBzdGF0ZS5oaWdobGlnaHRlZEluZGV4LCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBUb2dnbGVCdXR0b25LZXlEb3duRXNjYXBlOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogLTFcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIFRvZ2dsZUJ1dHRvbkJsdXI6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBpc09wZW46IGZhbHNlLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiAtMSxcbiAgICAgICAgLi4uKHN0YXRlLmhpZ2hsaWdodGVkSW5kZXggPj0gMCAmJiB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtOiBwcm9wcy5pdGVtc1tzdGF0ZS5oaWdobGlnaHRlZEluZGV4XVxuICAgICAgICB9KVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRnVuY3Rpb25TZWxlY3RJdGVtJDE6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBzZWxlY3RlZEl0ZW06IGFjdGlvbi5zZWxlY3RlZEl0ZW1cbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGRvd25zaGlmdENvbW1vblJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgc3RhdGVDaGFuZ2VUeXBlcyQyKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLmNoYW5nZXNcbiAgfTtcbn1cbi8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuXG51c2VTZWxlY3Quc3RhdGVDaGFuZ2VUeXBlcyA9IHN0YXRlQ2hhbmdlVHlwZXMkMjtcbmZ1bmN0aW9uIHVzZVNlbGVjdCh1c2VyUHJvcHMpIHtcbiAgaWYgKHVzZXJQcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgdXNlclByb3BzID0ge307XG4gIH1cbiAgdmFsaWRhdGVQcm9wVHlwZXMkMih1c2VyUHJvcHMsIHVzZVNlbGVjdCk7XG4gIC8vIFByb3BzIGRlZmF1bHRzIGFuZCBkZXN0cnVjdHVyaW5nLlxuICBjb25zdCBwcm9wcyA9IHtcbiAgICAuLi5kZWZhdWx0UHJvcHMkMixcbiAgICAuLi51c2VyUHJvcHNcbiAgfTtcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIHNjcm9sbEludG9WaWV3LFxuICAgIGVudmlyb25tZW50LFxuICAgIGl0ZW1Ub1N0cmluZyxcbiAgICBnZXRBMTF5U2VsZWN0aW9uTWVzc2FnZSxcbiAgICBnZXRBMTF5U3RhdHVzTWVzc2FnZVxuICB9ID0gcHJvcHM7XG4gIC8vIEluaXRpYWwgc3RhdGUgZGVwZW5kaW5nIG9uIGNvbnRyb2xsZWQgcHJvcHMuXG4gIGNvbnN0IGluaXRpYWxTdGF0ZSA9IGdldEluaXRpYWxTdGF0ZSQyKHByb3BzKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VDb250cm9sbGVkUmVkdWNlciQxKGRvd25zaGlmdFNlbGVjdFJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgcHJvcHMpO1xuICBjb25zdCB7XG4gICAgaXNPcGVuLFxuICAgIGhpZ2hsaWdodGVkSW5kZXgsXG4gICAgc2VsZWN0ZWRJdGVtLFxuICAgIGlucHV0VmFsdWVcbiAgfSA9IHN0YXRlO1xuXG4gIC8vIEVsZW1lbnQgZWZzLlxuICBjb25zdCB0b2dnbGVCdXR0b25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IG1lbnVSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGl0ZW1SZWZzID0gdXNlUmVmKHt9KTtcbiAgLy8gdXNlZCB0byBrZWVwIHRoZSBpbnB1dFZhbHVlIGNsZWFyVGltZW91dCBvYmplY3QgYmV0d2VlbiByZW5kZXJzLlxuICBjb25zdCBjbGVhclRpbWVvdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gIC8vIHByZXZlbnQgaWQgcmUtZ2VuZXJhdGlvbiBiZXR3ZWVuIHJlbmRlcnMuXG4gIGNvbnN0IGVsZW1lbnRJZHMgPSB1c2VFbGVtZW50SWRzKHByb3BzKTtcbiAgLy8gdXNlZCB0byBrZWVwIHRyYWNrIG9mIGhvdyBtYW55IGl0ZW1zIHdlIGhhZCBvbiBwcmV2aW91cyBjeWNsZS5cbiAgY29uc3QgcHJldmlvdXNSZXN1bHRDb3VudFJlZiA9IHVzZVJlZigpO1xuICBjb25zdCBpc0luaXRpYWxNb3VudFJlZiA9IHVzZVJlZih0cnVlKTtcbiAgLy8gdXRpbGl0eSBjYWxsYmFjayB0byBnZXQgaXRlbSBlbGVtZW50LlxuICBjb25zdCBsYXRlc3QgPSB1c2VMYXRlc3RSZWYoe1xuICAgIHN0YXRlLFxuICAgIHByb3BzXG4gIH0pO1xuXG4gIC8vIFNvbWUgdXRpbHMuXG4gIGNvbnN0IGdldEl0ZW1Ob2RlRnJvbUluZGV4ID0gdXNlQ2FsbGJhY2soaW5kZXggPT4gaXRlbVJlZnMuY3VycmVudFtlbGVtZW50SWRzLmdldEl0ZW1JZChpbmRleCldLCBbZWxlbWVudElkc10pO1xuXG4gIC8vIEVmZmVjdHMuXG4gIC8vIFNldHMgYTExeSBzdGF0dXMgbWVzc2FnZSBvbiBjaGFuZ2VzIGluIHN0YXRlLlxuICB1c2VBMTF5TWVzc2FnZVNldHRlcihnZXRBMTF5U3RhdHVzTWVzc2FnZSwgW2lzT3BlbiwgaGlnaGxpZ2h0ZWRJbmRleCwgaW5wdXRWYWx1ZSwgaXRlbXNdLCB7XG4gICAgaXNJbml0aWFsTW91bnQ6IGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQsXG4gICAgcHJldmlvdXNSZXN1bHRDb3VudDogcHJldmlvdXNSZXN1bHRDb3VudFJlZi5jdXJyZW50LFxuICAgIGl0ZW1zLFxuICAgIGVudmlyb25tZW50LFxuICAgIGl0ZW1Ub1N0cmluZyxcbiAgICAuLi5zdGF0ZVxuICB9KTtcbiAgLy8gU2V0cyBhMTF5IHN0YXR1cyBtZXNzYWdlIG9uIGNoYW5nZXMgaW4gc2VsZWN0ZWRJdGVtLlxuICB1c2VBMTF5TWVzc2FnZVNldHRlcihnZXRBMTF5U2VsZWN0aW9uTWVzc2FnZSwgW3NlbGVjdGVkSXRlbV0sIHtcbiAgICBpc0luaXRpYWxNb3VudDogaXNJbml0aWFsTW91bnRSZWYuY3VycmVudCxcbiAgICBwcmV2aW91c1Jlc3VsdENvdW50OiBwcmV2aW91c1Jlc3VsdENvdW50UmVmLmN1cnJlbnQsXG4gICAgaXRlbXMsXG4gICAgZW52aXJvbm1lbnQsXG4gICAgaXRlbVRvU3RyaW5nLFxuICAgIC4uLnN0YXRlXG4gIH0pO1xuICAvLyBTY3JvbGwgb24gaGlnaGxpZ2h0ZWQgaXRlbSBpZiBjaGFuZ2UgY29tZXMgZnJvbSBrZXlib2FyZC5cbiAgY29uc3Qgc2hvdWxkU2Nyb2xsUmVmID0gdXNlU2Nyb2xsSW50b1ZpZXcoe1xuICAgIG1lbnVFbGVtZW50OiBtZW51UmVmLmN1cnJlbnQsXG4gICAgaGlnaGxpZ2h0ZWRJbmRleCxcbiAgICBpc09wZW4sXG4gICAgaXRlbVJlZnMsXG4gICAgc2Nyb2xsSW50b1ZpZXcsXG4gICAgZ2V0SXRlbU5vZGVGcm9tSW5kZXhcbiAgfSk7XG5cbiAgLy8gU2V0cyBjbGVhbnVwIGZvciB0aGUga2V5c1NvRmFyIGNhbGxiYWNrLCBkZWJvdW5kZWQgYWZ0ZXIgNTAwbXMuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gaW5pdCB0aGUgY2xlYW4gZnVuY3Rpb24gaGVyZSBhcyB3ZSBuZWVkIGFjY2VzcyB0byBkaXNwYXRjaC5cbiAgICBjbGVhclRpbWVvdXRSZWYuY3VycmVudCA9IGRlYm91bmNlKG91dGVyRGlzcGF0Y2ggPT4ge1xuICAgICAgb3V0ZXJEaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEZ1bmN0aW9uU2V0SW5wdXRWYWx1ZSQxLFxuICAgICAgICBpbnB1dFZhbHVlOiAnJ1xuICAgICAgfSk7XG4gICAgfSwgNTAwKTtcblxuICAgIC8vIENhbmNlbCBhbnkgcGVuZGluZyBkZWJvdW5jZWQgY2FsbHMgb24gbW91bnRcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0UmVmLmN1cnJlbnQuY2FuY2VsKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIC8vIEludm9rZXMgdGhlIGtleXNTb0ZhciBjYWxsYmFjayBzZXQgdXAgYWJvdmUuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNsZWFyVGltZW91dFJlZi5jdXJyZW50KGRpc3BhdGNoKTtcbiAgfSwgW2Rpc3BhdGNoLCBpbnB1dFZhbHVlXSk7XG4gIHVzZUNvbnRyb2xQcm9wc1ZhbGlkYXRvcih7XG4gICAgaXNJbml0aWFsTW91bnQ6IGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQsXG4gICAgcHJvcHMsXG4gICAgc3RhdGVcbiAgfSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcHJldmlvdXNSZXN1bHRDb3VudFJlZi5jdXJyZW50ID0gaXRlbXMubGVuZ3RoO1xuICB9KTtcbiAgLy8gQWRkIG1vdXNlL3RvdWNoIGV2ZW50cyB0byBkb2N1bWVudC5cbiAgY29uc3QgbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmID0gdXNlTW91c2VBbmRUb3VjaFRyYWNrZXIoaXNPcGVuLCBbbWVudVJlZiwgdG9nZ2xlQnV0dG9uUmVmXSwgZW52aXJvbm1lbnQsICgpID0+IHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBUb2dnbGVCdXR0b25CbHVyXG4gICAgfSk7XG4gIH0pO1xuICBjb25zdCBzZXRHZXR0ZXJQcm9wQ2FsbEluZm8gPSB1c2VHZXR0ZXJQcm9wc0NhbGxlZENoZWNrZXIoJ2dldE1lbnVQcm9wcycsICdnZXRUb2dnbGVCdXR0b25Qcm9wcycpO1xuICAvLyBNYWtlIGluaXRpYWwgcmVmIGZhbHNlLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgfSwgW10pO1xuICAvLyBSZXNldCBpdGVtUmVmcyBvbiBjbG9zZS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgaXRlbVJlZnMuY3VycmVudCA9IHt9O1xuICAgIH1cbiAgfSwgW2lzT3Blbl0pO1xuXG4gIC8vIEV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zLlxuICBjb25zdCB0b2dnbGVCdXR0b25LZXlEb3duSGFuZGxlcnMgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgQXJyb3dEb3duKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25LZXlEb3duQXJyb3dEb3duLFxuICAgICAgICBnZXRJdGVtTm9kZUZyb21JbmRleCxcbiAgICAgICAgYWx0S2V5OiBldmVudC5hbHRLZXlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgQXJyb3dVcChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogVG9nZ2xlQnV0dG9uS2V5RG93bkFycm93VXAsXG4gICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4LFxuICAgICAgICBhbHRLZXk6IGV2ZW50LmFsdEtleVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBIb21lKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25LZXlEb3duSG9tZSxcbiAgICAgICAgZ2V0SXRlbU5vZGVGcm9tSW5kZXhcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgRW5kKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25LZXlEb3duRW5kLFxuICAgICAgICBnZXRJdGVtTm9kZUZyb21JbmRleFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBFc2NhcGUoKSB7XG4gICAgICBpZiAobGF0ZXN0LmN1cnJlbnQuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25LZXlEb3duRXNjYXBlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgRW50ZXIoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IGxhdGVzdC5jdXJyZW50LnN0YXRlLmlzT3BlbiA/IFRvZ2dsZUJ1dHRvbktleURvd25FbnRlciA6IFRvZ2dsZUJ1dHRvbkNsaWNrJDFcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgUGFnZVVwKGV2ZW50KSB7XG4gICAgICBpZiAobGF0ZXN0LmN1cnJlbnQuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25LZXlEb3duUGFnZVVwLFxuICAgICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgUGFnZURvd24oZXZlbnQpIHtcbiAgICAgIGlmIChsYXRlc3QuY3VycmVudC5zdGF0ZS5pc09wZW4pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IFRvZ2dsZUJ1dHRvbktleURvd25QYWdlRG93bixcbiAgICAgICAgICBnZXRJdGVtTm9kZUZyb21JbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgICcgJyhldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogbGF0ZXN0LmN1cnJlbnQuc3RhdGUuaXNPcGVuID8gVG9nZ2xlQnV0dG9uS2V5RG93blNwYWNlQnV0dG9uIDogVG9nZ2xlQnV0dG9uQ2xpY2skMVxuICAgICAgfSk7XG4gICAgfVxuICB9KSwgW2Rpc3BhdGNoLCBnZXRJdGVtTm9kZUZyb21JbmRleCwgbGF0ZXN0XSk7XG5cbiAgLy8gQWN0aW9uIGZ1bmN0aW9ucy5cbiAgY29uc3QgdG9nZ2xlTWVudSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBGdW5jdGlvblRvZ2dsZU1lbnUkMVxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3QgY2xvc2VNZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uQ2xvc2VNZW51JDFcbiAgICB9KTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG4gIGNvbnN0IG9wZW5NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uT3Blbk1lbnUkMVxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3Qgc2V0SGlnaGxpZ2h0ZWRJbmRleCA9IHVzZUNhbGxiYWNrKG5ld0hpZ2hsaWdodGVkSW5kZXggPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uU2V0SGlnaGxpZ2h0ZWRJbmRleCQxLFxuICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogbmV3SGlnaGxpZ2h0ZWRJbmRleFxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3Qgc2VsZWN0SXRlbSA9IHVzZUNhbGxiYWNrKG5ld1NlbGVjdGVkSXRlbSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25TZWxlY3RJdGVtJDEsXG4gICAgICBzZWxlY3RlZEl0ZW06IG5ld1NlbGVjdGVkSXRlbVxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3QgcmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25SZXNldCQyXG4gICAgfSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuICBjb25zdCBzZXRJbnB1dFZhbHVlID0gdXNlQ2FsbGJhY2sobmV3SW5wdXRWYWx1ZSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25TZXRJbnB1dFZhbHVlJDEsXG4gICAgICBpbnB1dFZhbHVlOiBuZXdJbnB1dFZhbHVlXG4gICAgfSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuICAvLyBHZXR0ZXIgZnVuY3Rpb25zLlxuICBjb25zdCBnZXRMYWJlbFByb3BzID0gdXNlQ2FsbGJhY2sobGFiZWxQcm9wcyA9PiAoe1xuICAgIGlkOiBlbGVtZW50SWRzLmxhYmVsSWQsXG4gICAgaHRtbEZvcjogZWxlbWVudElkcy50b2dnbGVCdXR0b25JZCxcbiAgICAuLi5sYWJlbFByb3BzXG4gIH0pLCBbZWxlbWVudElkc10pO1xuICBjb25zdCBnZXRNZW51UHJvcHMgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoX3RlbXAsIF90ZW1wMikge1xuICAgIGxldCB7XG4gICAgICBvbk1vdXNlTGVhdmUsXG4gICAgICByZWZLZXkgPSAncmVmJyxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uQmx1cixcbiAgICAgIHJlZixcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA7XG4gICAgbGV0IHtcbiAgICAgIHN1cHByZXNzUmVmRXJyb3IgPSBmYWxzZVxuICAgIH0gPSBfdGVtcDIgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAyO1xuICAgIGNvbnN0IG1lbnVIYW5kbGVNb3VzZUxlYXZlID0gKCkgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBNZW51TW91c2VMZWF2ZSQxXG4gICAgICB9KTtcbiAgICB9O1xuICAgIHNldEdldHRlclByb3BDYWxsSW5mbygnZ2V0TWVudVByb3BzJywgc3VwcHJlc3NSZWZFcnJvciwgcmVmS2V5LCBtZW51UmVmKTtcbiAgICByZXR1cm4ge1xuICAgICAgW3JlZktleV06IGhhbmRsZVJlZnMocmVmLCBtZW51Tm9kZSA9PiB7XG4gICAgICAgIG1lbnVSZWYuY3VycmVudCA9IG1lbnVOb2RlO1xuICAgICAgfSksXG4gICAgICBpZDogZWxlbWVudElkcy5tZW51SWQsXG4gICAgICByb2xlOiAnbGlzdGJveCcsXG4gICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZWxlbWVudElkcy5sYWJlbElkLFxuICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgb25Nb3VzZUxlYXZlOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbk1vdXNlTGVhdmUsIG1lbnVIYW5kbGVNb3VzZUxlYXZlKSxcbiAgICAgIC4uLnJlc3RcbiAgICB9O1xuICB9LCBbZGlzcGF0Y2gsIHNldEdldHRlclByb3BDYWxsSW5mbywgZWxlbWVudElkc10pO1xuICBjb25zdCBnZXRUb2dnbGVCdXR0b25Qcm9wcyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChfdGVtcDMsIF90ZW1wNCkge1xuICAgIGxldCB7XG4gICAgICBvbkJsdXIsXG4gICAgICBvbkNsaWNrLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgcmVmS2V5ID0gJ3JlZicsXG4gICAgICByZWYsXG4gICAgICAuLi5yZXN0XG4gICAgfSA9IF90ZW1wMyA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDM7XG4gICAgbGV0IHtcbiAgICAgIHN1cHByZXNzUmVmRXJyb3IgPSBmYWxzZVxuICAgIH0gPSBfdGVtcDQgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA0O1xuICAgIGNvbnN0IGxhdGVzdFN0YXRlID0gbGF0ZXN0LmN1cnJlbnQuc3RhdGU7XG4gICAgY29uc3QgdG9nZ2xlQnV0dG9uSGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IFRvZ2dsZUJ1dHRvbkNsaWNrJDFcbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgdG9nZ2xlQnV0dG9uSGFuZGxlQmx1ciA9ICgpID0+IHtcbiAgICAgIGlmIChsYXRlc3RTdGF0ZS5pc09wZW4gJiYgIW1vdXNlQW5kVG91Y2hUcmFja2Vyc1JlZi5jdXJyZW50LmlzTW91c2VEb3duKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25CbHVyXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgdG9nZ2xlQnV0dG9uSGFuZGxlS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IG5vcm1hbGl6ZUFycm93S2V5KGV2ZW50KTtcbiAgICAgIGlmIChrZXkgJiYgdG9nZ2xlQnV0dG9uS2V5RG93bkhhbmRsZXJzW2tleV0pIHtcbiAgICAgICAgdG9nZ2xlQnV0dG9uS2V5RG93bkhhbmRsZXJzW2tleV0oZXZlbnQpO1xuICAgICAgfSBlbHNlIGlmIChpc0FjY2VwdGVkQ2hhcmFjdGVyS2V5KGtleSkpIHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IFRvZ2dsZUJ1dHRvbktleURvd25DaGFyYWN0ZXIsXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgdG9nZ2xlUHJvcHMgPSB7XG4gICAgICBbcmVmS2V5XTogaGFuZGxlUmVmcyhyZWYsIHRvZ2dsZUJ1dHRvbk5vZGUgPT4ge1xuICAgICAgICB0b2dnbGVCdXR0b25SZWYuY3VycmVudCA9IHRvZ2dsZUJ1dHRvbk5vZGU7XG4gICAgICB9KSxcbiAgICAgICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnOiBsYXRlc3RTdGF0ZS5pc09wZW4gJiYgbGF0ZXN0U3RhdGUuaGlnaGxpZ2h0ZWRJbmRleCA+IC0xID8gZWxlbWVudElkcy5nZXRJdGVtSWQobGF0ZXN0U3RhdGUuaGlnaGxpZ2h0ZWRJbmRleCkgOiAnJyxcbiAgICAgICdhcmlhLWNvbnRyb2xzJzogZWxlbWVudElkcy5tZW51SWQsXG4gICAgICAnYXJpYS1leHBhbmRlZCc6IGxhdGVzdC5jdXJyZW50LnN0YXRlLmlzT3BlbixcbiAgICAgICdhcmlhLWhhc3BvcHVwJzogJ2xpc3Rib3gnLFxuICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGAke2VsZW1lbnRJZHMubGFiZWxJZH1gLFxuICAgICAgaWQ6IGVsZW1lbnRJZHMudG9nZ2xlQnV0dG9uSWQsXG4gICAgICByb2xlOiAnY29tYm9ib3gnLFxuICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICBvbkJsdXI6IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uQmx1ciwgdG9nZ2xlQnV0dG9uSGFuZGxlQmx1ciksXG4gICAgICAuLi5yZXN0XG4gICAgfTtcbiAgICBpZiAoIXJlc3QuZGlzYWJsZWQpIHtcbiAgICAgIHRvZ2dsZVByb3BzLm9uQ2xpY2sgPSBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbkNsaWNrLCB0b2dnbGVCdXR0b25IYW5kbGVDbGljayk7XG4gICAgICB0b2dnbGVQcm9wcy5vbktleURvd24gPSBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbktleURvd24sIHRvZ2dsZUJ1dHRvbkhhbmRsZUtleURvd24pO1xuICAgIH1cbiAgICBzZXRHZXR0ZXJQcm9wQ2FsbEluZm8oJ2dldFRvZ2dsZUJ1dHRvblByb3BzJywgc3VwcHJlc3NSZWZFcnJvciwgcmVmS2V5LCB0b2dnbGVCdXR0b25SZWYpO1xuICAgIHJldHVybiB0b2dnbGVQcm9wcztcbiAgfSwgW2xhdGVzdCwgZWxlbWVudElkcywgc2V0R2V0dGVyUHJvcENhbGxJbmZvLCBkaXNwYXRjaCwgbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmLCB0b2dnbGVCdXR0b25LZXlEb3duSGFuZGxlcnMsIGdldEl0ZW1Ob2RlRnJvbUluZGV4XSk7XG4gIGNvbnN0IGdldEl0ZW1Qcm9wcyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChfdGVtcDUpIHtcbiAgICBsZXQge1xuICAgICAgaXRlbTogaXRlbVByb3AsXG4gICAgICBpbmRleDogaW5kZXhQcm9wLFxuICAgICAgb25Nb3VzZU1vdmUsXG4gICAgICBvbkNsaWNrLFxuICAgICAgcmVmS2V5ID0gJ3JlZicsXG4gICAgICByZWYsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gX3RlbXA1ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNTtcbiAgICBjb25zdCB7XG4gICAgICBzdGF0ZTogbGF0ZXN0U3RhdGUsXG4gICAgICBwcm9wczogbGF0ZXN0UHJvcHNcbiAgICB9ID0gbGF0ZXN0LmN1cnJlbnQ7XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1Qcm9wID8/IGl0ZW1zW2luZGV4UHJvcF07XG4gICAgY29uc3QgaW5kZXggPSBnZXRJdGVtSW5kZXgoaW5kZXhQcm9wLCBpdGVtLCBsYXRlc3RQcm9wcy5pdGVtcyk7XG4gICAgY29uc3QgaXRlbUhhbmRsZU1vdXNlTW92ZSA9ICgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gbGF0ZXN0U3RhdGUuaGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzaG91bGRTY3JvbGxSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBJdGVtTW91c2VNb3ZlJDEsXG4gICAgICAgIGluZGV4LFxuICAgICAgICBkaXNhYmxlZFxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBpdGVtSGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEl0ZW1DbGljayQxLFxuICAgICAgICBpbmRleFxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBpdGVtSW5kZXggPSBnZXRJdGVtSW5kZXgoaW5kZXgsIGl0ZW0sIGxhdGVzdFByb3BzLml0ZW1zKTtcbiAgICBpZiAoaXRlbUluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXNzIGVpdGhlciBpdGVtIG9yIGl0ZW0gaW5kZXggaW4gZ2V0SXRlbVByb3BzIScpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtUHJvcHMgPSB7XG4gICAgICBkaXNhYmxlZCxcbiAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBgJHtpdGVtID09PSBzZWxlY3RlZEl0ZW19YCxcbiAgICAgIGlkOiBlbGVtZW50SWRzLmdldEl0ZW1JZChpdGVtSW5kZXgpLFxuICAgICAgW3JlZktleV06IGhhbmRsZVJlZnMocmVmLCBpdGVtTm9kZSA9PiB7XG4gICAgICAgIGlmIChpdGVtTm9kZSkge1xuICAgICAgICAgIGl0ZW1SZWZzLmN1cnJlbnRbZWxlbWVudElkcy5nZXRJdGVtSWQoaXRlbUluZGV4KV0gPSBpdGVtTm9kZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICAuLi5yZXN0XG4gICAgfTtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBpdGVtUHJvcHMub25DbGljayA9IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uQ2xpY2ssIGl0ZW1IYW5kbGVDbGljayk7XG4gICAgfVxuICAgIGl0ZW1Qcm9wcy5vbk1vdXNlTW92ZSA9IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uTW91c2VNb3ZlLCBpdGVtSGFuZGxlTW91c2VNb3ZlKTtcbiAgICByZXR1cm4gaXRlbVByb3BzO1xuICB9LCBbbGF0ZXN0LCBpdGVtcywgc2VsZWN0ZWRJdGVtLCBlbGVtZW50SWRzLCBzaG91bGRTY3JvbGxSZWYsIGRpc3BhdGNoXSk7XG4gIHJldHVybiB7XG4gICAgLy8gcHJvcCBnZXR0ZXJzLlxuICAgIGdldFRvZ2dsZUJ1dHRvblByb3BzLFxuICAgIGdldExhYmVsUHJvcHMsXG4gICAgZ2V0TWVudVByb3BzLFxuICAgIGdldEl0ZW1Qcm9wcyxcbiAgICAvLyBhY3Rpb25zLlxuICAgIHRvZ2dsZU1lbnUsXG4gICAgb3Blbk1lbnUsXG4gICAgY2xvc2VNZW51LFxuICAgIHNldEhpZ2hsaWdodGVkSW5kZXgsXG4gICAgc2VsZWN0SXRlbSxcbiAgICByZXNldCxcbiAgICBzZXRJbnB1dFZhbHVlLFxuICAgIC8vIHN0YXRlLlxuICAgIGhpZ2hsaWdodGVkSW5kZXgsXG4gICAgaXNPcGVuLFxuICAgIHNlbGVjdGVkSXRlbSxcbiAgICBpbnB1dFZhbHVlXG4gIH07XG59XG5cbmNvbnN0IElucHV0S2V5RG93bkFycm93RG93biA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2lucHV0X2tleWRvd25fYXJyb3dfZG93bl9fJyA6IDA7XG5jb25zdCBJbnB1dEtleURvd25BcnJvd1VwID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19faW5wdXRfa2V5ZG93bl9hcnJvd191cF9fJyA6IDE7XG5jb25zdCBJbnB1dEtleURvd25Fc2NhcGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19pbnB1dF9rZXlkb3duX2VzY2FwZV9fJyA6IDI7XG5jb25zdCBJbnB1dEtleURvd25Ib21lID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19faW5wdXRfa2V5ZG93bl9ob21lX18nIDogMztcbmNvbnN0IElucHV0S2V5RG93bkVuZCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2lucHV0X2tleWRvd25fZW5kX18nIDogNDtcbmNvbnN0IElucHV0S2V5RG93blBhZ2VVcCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2lucHV0X2tleWRvd25fcGFnZV91cF9fJyA6IDU7XG5jb25zdCBJbnB1dEtleURvd25QYWdlRG93biA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2lucHV0X2tleWRvd25fcGFnZV9kb3duX18nIDogNjtcbmNvbnN0IElucHV0S2V5RG93bkVudGVyID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19faW5wdXRfa2V5ZG93bl9lbnRlcl9fJyA6IDc7XG5jb25zdCBJbnB1dENoYW5nZSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2lucHV0X2NoYW5nZV9fJyA6IDg7XG5jb25zdCBJbnB1dEJsdXIgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19pbnB1dF9ibHVyX18nIDogOTtcbmNvbnN0IElucHV0Rm9jdXMgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19pbnB1dF9mb2N1c19fJyA6IDEwO1xuY29uc3QgTWVudU1vdXNlTGVhdmUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19tZW51X21vdXNlX2xlYXZlX18nIDogMTE7XG5jb25zdCBJdGVtTW91c2VNb3ZlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19faXRlbV9tb3VzZV9tb3ZlX18nIDogMTI7XG5jb25zdCBJdGVtQ2xpY2sgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19pdGVtX2NsaWNrX18nIDogMTM7XG5jb25zdCBUb2dnbGVCdXR0b25DbGljayA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX3RvZ2dsZWJ1dHRvbl9jbGlja19fJyA6IDE0O1xuY29uc3QgRnVuY3Rpb25Ub2dnbGVNZW51ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fZnVuY3Rpb25fdG9nZ2xlX21lbnVfXycgOiAxNTtcbmNvbnN0IEZ1bmN0aW9uT3Blbk1lbnUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9vcGVuX21lbnVfXycgOiAxNjtcbmNvbnN0IEZ1bmN0aW9uQ2xvc2VNZW51ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fZnVuY3Rpb25fY2xvc2VfbWVudV9fJyA6IDE3O1xuY29uc3QgRnVuY3Rpb25TZXRIaWdobGlnaHRlZEluZGV4ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fZnVuY3Rpb25fc2V0X2hpZ2hsaWdodGVkX2luZGV4X18nIDogMTg7XG5jb25zdCBGdW5jdGlvblNlbGVjdEl0ZW0gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9zZWxlY3RfaXRlbV9fJyA6IDE5O1xuY29uc3QgRnVuY3Rpb25TZXRJbnB1dFZhbHVlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fZnVuY3Rpb25fc2V0X2lucHV0X3ZhbHVlX18nIDogMjA7XG5jb25zdCBGdW5jdGlvblJlc2V0JDEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9yZXNldF9fJyA6IDIxO1xuY29uc3QgQ29udHJvbGxlZFByb3BVcGRhdGVkU2VsZWN0ZWRJdGVtID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fY29udHJvbGxlZF9wcm9wX3VwZGF0ZWRfc2VsZWN0ZWRfaXRlbV9fJyA6IDIyO1xuXG52YXIgc3RhdGVDaGFuZ2VUeXBlcyQxID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIElucHV0S2V5RG93bkFycm93RG93bjogSW5wdXRLZXlEb3duQXJyb3dEb3duLFxuICBJbnB1dEtleURvd25BcnJvd1VwOiBJbnB1dEtleURvd25BcnJvd1VwLFxuICBJbnB1dEtleURvd25Fc2NhcGU6IElucHV0S2V5RG93bkVzY2FwZSxcbiAgSW5wdXRLZXlEb3duSG9tZTogSW5wdXRLZXlEb3duSG9tZSxcbiAgSW5wdXRLZXlEb3duRW5kOiBJbnB1dEtleURvd25FbmQsXG4gIElucHV0S2V5RG93blBhZ2VVcDogSW5wdXRLZXlEb3duUGFnZVVwLFxuICBJbnB1dEtleURvd25QYWdlRG93bjogSW5wdXRLZXlEb3duUGFnZURvd24sXG4gIElucHV0S2V5RG93bkVudGVyOiBJbnB1dEtleURvd25FbnRlcixcbiAgSW5wdXRDaGFuZ2U6IElucHV0Q2hhbmdlLFxuICBJbnB1dEJsdXI6IElucHV0Qmx1cixcbiAgSW5wdXRGb2N1czogSW5wdXRGb2N1cyxcbiAgTWVudU1vdXNlTGVhdmU6IE1lbnVNb3VzZUxlYXZlLFxuICBJdGVtTW91c2VNb3ZlOiBJdGVtTW91c2VNb3ZlLFxuICBJdGVtQ2xpY2s6IEl0ZW1DbGljayxcbiAgVG9nZ2xlQnV0dG9uQ2xpY2s6IFRvZ2dsZUJ1dHRvbkNsaWNrLFxuICBGdW5jdGlvblRvZ2dsZU1lbnU6IEZ1bmN0aW9uVG9nZ2xlTWVudSxcbiAgRnVuY3Rpb25PcGVuTWVudTogRnVuY3Rpb25PcGVuTWVudSxcbiAgRnVuY3Rpb25DbG9zZU1lbnU6IEZ1bmN0aW9uQ2xvc2VNZW51LFxuICBGdW5jdGlvblNldEhpZ2hsaWdodGVkSW5kZXg6IEZ1bmN0aW9uU2V0SGlnaGxpZ2h0ZWRJbmRleCxcbiAgRnVuY3Rpb25TZWxlY3RJdGVtOiBGdW5jdGlvblNlbGVjdEl0ZW0sXG4gIEZ1bmN0aW9uU2V0SW5wdXRWYWx1ZTogRnVuY3Rpb25TZXRJbnB1dFZhbHVlLFxuICBGdW5jdGlvblJlc2V0OiBGdW5jdGlvblJlc2V0JDEsXG4gIENvbnRyb2xsZWRQcm9wVXBkYXRlZFNlbGVjdGVkSXRlbTogQ29udHJvbGxlZFByb3BVcGRhdGVkU2VsZWN0ZWRJdGVtXG59KTtcblxuZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlJDEocHJvcHMpIHtcbiAgY29uc3QgaW5pdGlhbFN0YXRlID0gZ2V0SW5pdGlhbFN0YXRlJDIocHJvcHMpO1xuICBjb25zdCB7XG4gICAgc2VsZWN0ZWRJdGVtXG4gIH0gPSBpbml0aWFsU3RhdGU7XG4gIGxldCB7XG4gICAgaW5wdXRWYWx1ZVxuICB9ID0gaW5pdGlhbFN0YXRlO1xuICBpZiAoaW5wdXRWYWx1ZSA9PT0gJycgJiYgc2VsZWN0ZWRJdGVtICYmIHByb3BzLmRlZmF1bHRJbnB1dFZhbHVlID09PSB1bmRlZmluZWQgJiYgcHJvcHMuaW5pdGlhbElucHV0VmFsdWUgPT09IHVuZGVmaW5lZCAmJiBwcm9wcy5pbnB1dFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBpbnB1dFZhbHVlID0gcHJvcHMuaXRlbVRvU3RyaW5nKHNlbGVjdGVkSXRlbSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgaW5wdXRWYWx1ZVxuICB9O1xufVxuY29uc3QgcHJvcFR5cGVzJDEgPSB7XG4gIGl0ZW1zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgaXRlbVRvU3RyaW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgZ2V0QTExeVN0YXR1c01lc3NhZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBnZXRBMTF5U2VsZWN0aW9uTWVzc2FnZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGhpZ2hsaWdodGVkSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGRlZmF1bHRIaWdobGlnaHRlZEluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBpbml0aWFsSGlnaGxpZ2h0ZWRJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgaXNPcGVuOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGVmYXVsdElzT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIGluaXRpYWxJc09wZW46IFByb3BUeXBlcy5ib29sLFxuICBzZWxlY3RlZEl0ZW06IFByb3BUeXBlcy5hbnksXG4gIGluaXRpYWxTZWxlY3RlZEl0ZW06IFByb3BUeXBlcy5hbnksXG4gIGRlZmF1bHRTZWxlY3RlZEl0ZW06IFByb3BUeXBlcy5hbnksXG4gIGlucHV0VmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRlZmF1bHRJbnB1dFZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbml0aWFsSW5wdXRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxhYmVsSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG1lbnVJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgZ2V0SXRlbUlkOiBQcm9wVHlwZXMuZnVuYyxcbiAgaW5wdXRJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdG9nZ2xlQnV0dG9uSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0YXRlUmVkdWNlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uU2VsZWN0ZWRJdGVtQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25IaWdobGlnaHRlZEluZGV4Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TdGF0ZUNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uSXNPcGVuQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25JbnB1dFZhbHVlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgZW52aXJvbm1lbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZG9jdW1lbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBnZXRFbGVtZW50QnlJZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBhY3RpdmVFbGVtZW50OiBQcm9wVHlwZXMuYW55LFxuICAgICAgYm9keTogUHJvcFR5cGVzLmFueVxuICAgIH0pXG4gIH0pXG59O1xuXG4vKipcbiAqIFRoZSB1c2VDb21ib2JveCB2ZXJzaW9uIG9mIHVzZUNvbnRyb2xsZWRSZWR1Y2VyLCB3aGljaCBhbHNvXG4gKiBjaGVja3MgaWYgdGhlIGNvbnRyb2xsZWQgcHJvcCBzZWxlY3RlZEl0ZW0gY2hhbmdlZCBiZXR3ZWVuXG4gKiByZW5kZXJzLiBJZiBzbywgaXQgd2lsbCBhbHNvIHVwZGF0ZSBpbnB1dFZhbHVlIHdpdGggaXRzXG4gKiBzdHJpbmcgZXF1aXZhbGVudC4gSXQgdXNlcyB0aGUgY29tbW9uIHVzZUVuaGFuY2VkUmVkdWNlciB0b1xuICogY29tcHV0ZSB0aGUgcmVzdCBvZiB0aGUgc3RhdGUuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVkdWNlciBSZWR1Y2VyIGZ1bmN0aW9uIGZyb20gZG93bnNoaWZ0LlxuICogQHBhcmFtIHtPYmplY3R9IGluaXRpYWxTdGF0ZSBJbml0aWFsIHN0YXRlIG9mIHRoZSBob29rLlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIFRoZSBob29rIHByb3BzLlxuICogQHJldHVybnMge0FycmF5fSBBbiBhcnJheSB3aXRoIHRoZSBzdGF0ZSBhbmQgYW4gYWN0aW9uIGRpc3BhdGNoZXIuXG4gKi9cbmZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgcHJvcHMpIHtcbiAgY29uc3QgcHJldmlvdXNTZWxlY3RlZEl0ZW1SZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VFbmhhbmNlZFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbFN0YXRlLCBwcm9wcyk7XG5cbiAgLy8gVG9EbzogaWYgbmVlZGVkLCBtYWtlIHNhbWUgYXBwcm9hY2ggYXMgc2VsZWN0ZWRJdGVtQ2hhbmdlZCBmcm9tIERvd25zaGlmdC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNDb250cm9sbGVkUHJvcChwcm9wcywgJ3NlbGVjdGVkSXRlbScpKSB7XG4gICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEl0ZW1SZWYuY3VycmVudCAhPT0gcHJvcHMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBDb250cm9sbGVkUHJvcFVwZGF0ZWRTZWxlY3RlZEl0ZW0sXG4gICAgICAgICAgaW5wdXRWYWx1ZTogcHJvcHMuaXRlbVRvU3RyaW5nKHByb3BzLnNlbGVjdGVkSXRlbSlcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBwcmV2aW91c1NlbGVjdGVkSXRlbVJlZi5jdXJyZW50ID0gc3RhdGUuc2VsZWN0ZWRJdGVtID09PSBwcmV2aW91c1NlbGVjdGVkSXRlbVJlZi5jdXJyZW50ID8gcHJvcHMuc2VsZWN0ZWRJdGVtIDogc3RhdGUuc2VsZWN0ZWRJdGVtO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBbZ2V0U3RhdGUoc3RhdGUsIHByb3BzKSwgZGlzcGF0Y2hdO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xubGV0IHZhbGlkYXRlUHJvcFR5cGVzJDEgPSBub29wO1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhbGlkYXRlUHJvcFR5cGVzJDEgPSAob3B0aW9ucywgY2FsbGVyKSA9PiB7XG4gICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKHByb3BUeXBlcyQxLCBvcHRpb25zLCAncHJvcCcsIGNhbGxlci5uYW1lKTtcbiAgfTtcbn1cbmNvbnN0IGRlZmF1bHRQcm9wcyQxID0ge1xuICAuLi5kZWZhdWx0UHJvcHMkMyxcbiAgZ2V0QTExeVN0YXR1c01lc3NhZ2U6IGdldEExMXlTdGF0dXNNZXNzYWdlJDFcbn07XG5cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmZ1bmN0aW9uIGRvd25zaGlmdFVzZUNvbWJvYm94UmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIGNvbnN0IHtcbiAgICB0eXBlLFxuICAgIHByb3BzLFxuICAgIGFsdEtleVxuICB9ID0gYWN0aW9uO1xuICBsZXQgY2hhbmdlcztcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBJdGVtQ2xpY2s6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBpc09wZW46IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnaXNPcGVuJyksXG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnaGlnaGxpZ2h0ZWRJbmRleCcpLFxuICAgICAgICBzZWxlY3RlZEl0ZW06IHByb3BzLml0ZW1zW2FjdGlvbi5pbmRleF0sXG4gICAgICAgIGlucHV0VmFsdWU6IHByb3BzLml0ZW1Ub1N0cmluZyhwcm9wcy5pdGVtc1thY3Rpb24uaW5kZXhdKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgSW5wdXRLZXlEb3duQXJyb3dEb3duOlxuICAgICAgaWYgKHN0YXRlLmlzT3Blbikge1xuICAgICAgICBjaGFuZ2VzID0ge1xuICAgICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldE5leHRXcmFwcGluZ0luZGV4KDEsIHN0YXRlLmhpZ2hsaWdodGVkSW5kZXgsIHByb3BzLml0ZW1zLmxlbmd0aCwgYWN0aW9uLmdldEl0ZW1Ob2RlRnJvbUluZGV4LCB0cnVlKVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBhbHRLZXkgJiYgc3RhdGUuc2VsZWN0ZWRJdGVtID09IG51bGwgPyAtMSA6IGdldEhpZ2hsaWdodGVkSW5kZXhPbk9wZW4ocHJvcHMsIHN0YXRlLCAxLCBhY3Rpb24uZ2V0SXRlbU5vZGVGcm9tSW5kZXgpLFxuICAgICAgICAgIGlzT3BlbjogcHJvcHMuaXRlbXMubGVuZ3RoID49IDBcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgSW5wdXRLZXlEb3duQXJyb3dVcDpcbiAgICAgIGlmIChzdGF0ZS5pc09wZW4pIHtcbiAgICAgICAgaWYgKGFsdEtleSkge1xuICAgICAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgICAgICBpc09wZW46IGdldERlZmF1bHRWYWx1ZSQxKHByb3BzLCAnaXNPcGVuJyksXG4gICAgICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2hpZ2hsaWdodGVkSW5kZXgnKSxcbiAgICAgICAgICAgIC4uLihzdGF0ZS5oaWdobGlnaHRlZEluZGV4ID49IDAgJiYge1xuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW06IHByb3BzLml0ZW1zW3N0YXRlLmhpZ2hsaWdodGVkSW5kZXhdLFxuICAgICAgICAgICAgICBpbnB1dFZhbHVlOiBwcm9wcy5pdGVtVG9TdHJpbmcocHJvcHMuaXRlbXNbc3RhdGUuaGlnaGxpZ2h0ZWRJbmRleF0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldE5leHRXcmFwcGluZ0luZGV4KC0xLCBzdGF0ZS5oaWdobGlnaHRlZEluZGV4LCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgdHJ1ZSlcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGFuZ2VzID0ge1xuICAgICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldEhpZ2hsaWdodGVkSW5kZXhPbk9wZW4ocHJvcHMsIHN0YXRlLCAtMSwgYWN0aW9uLmdldEl0ZW1Ob2RlRnJvbUluZGV4KSxcbiAgICAgICAgICBpc09wZW46IHByb3BzLml0ZW1zLmxlbmd0aCA+PSAwXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIElucHV0S2V5RG93bkVudGVyOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaXNPcGVuOiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2lzT3BlbicpLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2hpZ2hsaWdodGVkSW5kZXgnKSxcbiAgICAgICAgLi4uKHN0YXRlLmhpZ2hsaWdodGVkSW5kZXggPj0gMCAmJiB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtOiBwcm9wcy5pdGVtc1tzdGF0ZS5oaWdobGlnaHRlZEluZGV4XSxcbiAgICAgICAgICBpbnB1dFZhbHVlOiBwcm9wcy5pdGVtVG9TdHJpbmcocHJvcHMuaXRlbXNbc3RhdGUuaGlnaGxpZ2h0ZWRJbmRleF0pXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBJbnB1dEtleURvd25Fc2NhcGU6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBpc09wZW46IGZhbHNlLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiAtMSxcbiAgICAgICAgLi4uKCFzdGF0ZS5pc09wZW4gJiYge1xuICAgICAgICAgIHNlbGVjdGVkSXRlbTogbnVsbCxcbiAgICAgICAgICBpbnB1dFZhbHVlOiAnJ1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgSW5wdXRLZXlEb3duUGFnZVVwOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogZ2V0TmV4dFdyYXBwaW5nSW5kZXgoLTEwLCBzdGF0ZS5oaWdobGlnaHRlZEluZGV4LCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBJbnB1dEtleURvd25QYWdlRG93bjpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldE5leHRXcmFwcGluZ0luZGV4KDEwLCBzdGF0ZS5oaWdobGlnaHRlZEluZGV4LCBwcm9wcy5pdGVtcy5sZW5ndGgsIGFjdGlvbi5nZXRJdGVtTm9kZUZyb21JbmRleCwgZmFsc2UpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBJbnB1dEtleURvd25Ib21lOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogZ2V0TmV4dE5vbkRpc2FibGVkSW5kZXgoMSwgMCwgcHJvcHMuaXRlbXMubGVuZ3RoLCBhY3Rpb24uZ2V0SXRlbU5vZGVGcm9tSW5kZXgsIGZhbHNlKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgSW5wdXRLZXlEb3duRW5kOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaGlnaGxpZ2h0ZWRJbmRleDogZ2V0TmV4dE5vbkRpc2FibGVkSW5kZXgoLTEsIHByb3BzLml0ZW1zLmxlbmd0aCAtIDEsIHByb3BzLml0ZW1zLmxlbmd0aCwgYWN0aW9uLmdldEl0ZW1Ob2RlRnJvbUluZGV4LCBmYWxzZSlcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIElucHV0Qmx1cjpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGlzT3BlbjogZmFsc2UsXG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IC0xLFxuICAgICAgICAuLi4oc3RhdGUuaGlnaGxpZ2h0ZWRJbmRleCA+PSAwICYmIGFjdGlvbi5zZWxlY3RJdGVtICYmIHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW06IHByb3BzLml0ZW1zW3N0YXRlLmhpZ2hsaWdodGVkSW5kZXhdLFxuICAgICAgICAgIGlucHV0VmFsdWU6IHByb3BzLml0ZW1Ub1N0cmluZyhwcm9wcy5pdGVtc1tzdGF0ZS5oaWdobGlnaHRlZEluZGV4XSlcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIElucHV0Q2hhbmdlOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICBoaWdobGlnaHRlZEluZGV4OiBnZXREZWZhdWx0VmFsdWUkMShwcm9wcywgJ2hpZ2hsaWdodGVkSW5kZXgnKSxcbiAgICAgICAgaW5wdXRWYWx1ZTogYWN0aW9uLmlucHV0VmFsdWVcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIElucHV0Rm9jdXM6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgIGhpZ2hsaWdodGVkSW5kZXg6IGdldEhpZ2hsaWdodGVkSW5kZXhPbk9wZW4ocHJvcHMsIHN0YXRlLCAwKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRnVuY3Rpb25TZWxlY3RJdGVtOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtOiBhY3Rpb24uc2VsZWN0ZWRJdGVtLFxuICAgICAgICBpbnB1dFZhbHVlOiBwcm9wcy5pdGVtVG9TdHJpbmcoYWN0aW9uLnNlbGVjdGVkSXRlbSlcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIENvbnRyb2xsZWRQcm9wVXBkYXRlZFNlbGVjdGVkSXRlbTpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGlucHV0VmFsdWU6IGFjdGlvbi5pbnB1dFZhbHVlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkb3duc2hpZnRDb21tb25SZWR1Y2VyKHN0YXRlLCBhY3Rpb24sIHN0YXRlQ2hhbmdlVHlwZXMkMSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi5jaGFuZ2VzXG4gIH07XG59XG4vKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LXN0YXRlbWVudHMgKi9cbnVzZUNvbWJvYm94LnN0YXRlQ2hhbmdlVHlwZXMgPSBzdGF0ZUNoYW5nZVR5cGVzJDE7XG5mdW5jdGlvbiB1c2VDb21ib2JveCh1c2VyUHJvcHMpIHtcbiAgaWYgKHVzZXJQcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgdXNlclByb3BzID0ge307XG4gIH1cbiAgdmFsaWRhdGVQcm9wVHlwZXMkMSh1c2VyUHJvcHMsIHVzZUNvbWJvYm94KTtcbiAgLy8gUHJvcHMgZGVmYXVsdHMgYW5kIGRlc3RydWN0dXJpbmcuXG4gIGNvbnN0IHByb3BzID0ge1xuICAgIC4uLmRlZmF1bHRQcm9wcyQxLFxuICAgIC4uLnVzZXJQcm9wc1xuICB9O1xuICBjb25zdCB7XG4gICAgaW5pdGlhbElzT3BlbixcbiAgICBkZWZhdWx0SXNPcGVuLFxuICAgIGl0ZW1zLFxuICAgIHNjcm9sbEludG9WaWV3LFxuICAgIGVudmlyb25tZW50LFxuICAgIGdldEExMXlTdGF0dXNNZXNzYWdlLFxuICAgIGdldEExMXlTZWxlY3Rpb25NZXNzYWdlLFxuICAgIGl0ZW1Ub1N0cmluZ1xuICB9ID0gcHJvcHM7XG4gIC8vIEluaXRpYWwgc3RhdGUgZGVwZW5kaW5nIG9uIGNvbnRyb2xsZWQgcHJvcHMuXG4gIGNvbnN0IGluaXRpYWxTdGF0ZSA9IGdldEluaXRpYWxTdGF0ZSQxKHByb3BzKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VDb250cm9sbGVkUmVkdWNlcihkb3duc2hpZnRVc2VDb21ib2JveFJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgcHJvcHMpO1xuICBjb25zdCB7XG4gICAgaXNPcGVuLFxuICAgIGhpZ2hsaWdodGVkSW5kZXgsXG4gICAgc2VsZWN0ZWRJdGVtLFxuICAgIGlucHV0VmFsdWVcbiAgfSA9IHN0YXRlO1xuXG4gIC8vIEVsZW1lbnQgcmVmcy5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaXRlbVJlZnMgPSB1c2VSZWYoe30pO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgdG9nZ2xlQnV0dG9uUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc0luaXRpYWxNb3VudFJlZiA9IHVzZVJlZih0cnVlKTtcbiAgLy8gcHJldmVudCBpZCByZS1nZW5lcmF0aW9uIGJldHdlZW4gcmVuZGVycy5cbiAgY29uc3QgZWxlbWVudElkcyA9IHVzZUVsZW1lbnRJZHMocHJvcHMpO1xuICAvLyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgaG93IG1hbnkgaXRlbXMgd2UgaGFkIG9uIHByZXZpb3VzIGN5Y2xlLlxuICBjb25zdCBwcmV2aW91c1Jlc3VsdENvdW50UmVmID0gdXNlUmVmKCk7XG4gIC8vIHV0aWxpdHkgY2FsbGJhY2sgdG8gZ2V0IGl0ZW0gZWxlbWVudC5cbiAgY29uc3QgbGF0ZXN0ID0gdXNlTGF0ZXN0UmVmKHtcbiAgICBzdGF0ZSxcbiAgICBwcm9wc1xuICB9KTtcbiAgY29uc3QgZ2V0SXRlbU5vZGVGcm9tSW5kZXggPSB1c2VDYWxsYmFjayhpbmRleCA9PiBpdGVtUmVmcy5jdXJyZW50W2VsZW1lbnRJZHMuZ2V0SXRlbUlkKGluZGV4KV0sIFtlbGVtZW50SWRzXSk7XG5cbiAgLy8gRWZmZWN0cy5cbiAgLy8gU2V0cyBhMTF5IHN0YXR1cyBtZXNzYWdlIG9uIGNoYW5nZXMgaW4gc3RhdGUuXG4gIHVzZUExMXlNZXNzYWdlU2V0dGVyKGdldEExMXlTdGF0dXNNZXNzYWdlLCBbaXNPcGVuLCBoaWdobGlnaHRlZEluZGV4LCBpbnB1dFZhbHVlLCBpdGVtc10sIHtcbiAgICBpc0luaXRpYWxNb3VudDogaXNJbml0aWFsTW91bnRSZWYuY3VycmVudCxcbiAgICBwcmV2aW91c1Jlc3VsdENvdW50OiBwcmV2aW91c1Jlc3VsdENvdW50UmVmLmN1cnJlbnQsXG4gICAgaXRlbXMsXG4gICAgZW52aXJvbm1lbnQsXG4gICAgaXRlbVRvU3RyaW5nLFxuICAgIC4uLnN0YXRlXG4gIH0pO1xuICAvLyBTZXRzIGExMXkgc3RhdHVzIG1lc3NhZ2Ugb24gY2hhbmdlcyBpbiBzZWxlY3RlZEl0ZW0uXG4gIHVzZUExMXlNZXNzYWdlU2V0dGVyKGdldEExMXlTZWxlY3Rpb25NZXNzYWdlLCBbc2VsZWN0ZWRJdGVtXSwge1xuICAgIGlzSW5pdGlhbE1vdW50OiBpc0luaXRpYWxNb3VudFJlZi5jdXJyZW50LFxuICAgIHByZXZpb3VzUmVzdWx0Q291bnQ6IHByZXZpb3VzUmVzdWx0Q291bnRSZWYuY3VycmVudCxcbiAgICBpdGVtcyxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBpdGVtVG9TdHJpbmcsXG4gICAgLi4uc3RhdGVcbiAgfSk7XG4gIC8vIFNjcm9sbCBvbiBoaWdobGlnaHRlZCBpdGVtIGlmIGNoYW5nZSBjb21lcyBmcm9tIGtleWJvYXJkLlxuICBjb25zdCBzaG91bGRTY3JvbGxSZWYgPSB1c2VTY3JvbGxJbnRvVmlldyh7XG4gICAgbWVudUVsZW1lbnQ6IG1lbnVSZWYuY3VycmVudCxcbiAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgIGlzT3BlbixcbiAgICBpdGVtUmVmcyxcbiAgICBzY3JvbGxJbnRvVmlldyxcbiAgICBnZXRJdGVtTm9kZUZyb21JbmRleFxuICB9KTtcbiAgdXNlQ29udHJvbFByb3BzVmFsaWRhdG9yKHtcbiAgICBpc0luaXRpYWxNb3VudDogaXNJbml0aWFsTW91bnRSZWYuY3VycmVudCxcbiAgICBwcm9wcyxcbiAgICBzdGF0ZVxuICB9KTtcbiAgLy8gRm9jdXMgdGhlIGlucHV0IG9uIGZpcnN0IHJlbmRlciBpZiByZXF1aXJlZC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmb2N1c09uT3BlbiA9IGluaXRpYWxJc09wZW4gfHwgZGVmYXVsdElzT3BlbiB8fCBpc09wZW47XG4gICAgaWYgKGZvY3VzT25PcGVuICYmIGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcHJldmlvdXNSZXN1bHRDb3VudFJlZi5jdXJyZW50ID0gaXRlbXMubGVuZ3RoO1xuICB9KTtcbiAgLy8gQWRkIG1vdXNlL3RvdWNoIGV2ZW50cyB0byBkb2N1bWVudC5cbiAgY29uc3QgbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmID0gdXNlTW91c2VBbmRUb3VjaFRyYWNrZXIoaXNPcGVuLCBbaW5wdXRSZWYsIG1lbnVSZWYsIHRvZ2dsZUJ1dHRvblJlZl0sIGVudmlyb25tZW50LCAoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogSW5wdXRCbHVyLFxuICAgICAgc2VsZWN0SXRlbTogZmFsc2VcbiAgICB9KTtcbiAgfSk7XG4gIGNvbnN0IHNldEdldHRlclByb3BDYWxsSW5mbyA9IHVzZUdldHRlclByb3BzQ2FsbGVkQ2hlY2tlcignZ2V0SW5wdXRQcm9wcycsICdnZXRNZW51UHJvcHMnKTtcbiAgLy8gTWFrZSBpbml0aWFsIHJlZiBmYWxzZS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc0luaXRpYWxNb3VudFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gIH0sIFtdKTtcbiAgLy8gUmVzZXQgaXRlbVJlZnMgb24gY2xvc2UuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIGl0ZW1SZWZzLmN1cnJlbnQgPSB7fTtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIHZhciBfaW5wdXRSZWYkY3VycmVudDtcbiAgICAgIGlucHV0UmVmID09IG51bGwgPyB2b2lkIDAgOiAoX2lucHV0UmVmJGN1cnJlbnQgPSBpbnB1dFJlZi5jdXJyZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2lucHV0UmVmJGN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtpc09wZW5dKTtcblxuICAvKiBFdmVudCBoYW5kbGVyIGZ1bmN0aW9ucyAqL1xuICBjb25zdCBpbnB1dEtleURvd25IYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICBBcnJvd0Rvd24oZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IElucHV0S2V5RG93bkFycm93RG93bixcbiAgICAgICAgYWx0S2V5OiBldmVudC5hbHRLZXksXG4gICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4XG4gICAgICB9KTtcbiAgICB9LFxuICAgIEFycm93VXAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IElucHV0S2V5RG93bkFycm93VXAsXG4gICAgICAgIGFsdEtleTogZXZlbnQuYWx0S2V5LFxuICAgICAgICBnZXRJdGVtTm9kZUZyb21JbmRleFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBIb21lKGV2ZW50KSB7XG4gICAgICBpZiAoIWxhdGVzdC5jdXJyZW50LnN0YXRlLmlzT3Blbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBJbnB1dEtleURvd25Ib21lLFxuICAgICAgICBnZXRJdGVtTm9kZUZyb21JbmRleFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBFbmQoZXZlbnQpIHtcbiAgICAgIGlmICghbGF0ZXN0LmN1cnJlbnQuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IElucHV0S2V5RG93bkVuZCxcbiAgICAgICAgZ2V0SXRlbU5vZGVGcm9tSW5kZXhcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgRXNjYXBlKGV2ZW50KSB7XG4gICAgICBjb25zdCBsYXRlc3RTdGF0ZSA9IGxhdGVzdC5jdXJyZW50LnN0YXRlO1xuICAgICAgaWYgKGxhdGVzdFN0YXRlLmlzT3BlbiB8fCBsYXRlc3RTdGF0ZS5pbnB1dFZhbHVlIHx8IGxhdGVzdFN0YXRlLnNlbGVjdGVkSXRlbSB8fCBsYXRlc3RTdGF0ZS5oaWdobGlnaHRlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IElucHV0S2V5RG93bkVzY2FwZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIEVudGVyKGV2ZW50KSB7XG4gICAgICBjb25zdCBsYXRlc3RTdGF0ZSA9IGxhdGVzdC5jdXJyZW50LnN0YXRlO1xuICAgICAgLy8gaWYgY2xvc2VkIG9yIG5vIGhpZ2hsaWdodGVkIGluZGV4LCBkbyBub3RoaW5nLlxuICAgICAgaWYgKCFsYXRlc3RTdGF0ZS5pc09wZW4gfHwgZXZlbnQud2hpY2ggPT09IDIyOSAvLyBpZiBJTUUgY29tcG9zaW5nLCB3YWl0IGZvciBuZXh0IEVudGVyIGtleWRvd24gZXZlbnQuXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogSW5wdXRLZXlEb3duRW50ZXIsXG4gICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFBhZ2VVcChldmVudCkge1xuICAgICAgaWYgKGxhdGVzdC5jdXJyZW50LnN0YXRlLmlzT3Blbikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogSW5wdXRLZXlEb3duUGFnZVVwLFxuICAgICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgUGFnZURvd24oZXZlbnQpIHtcbiAgICAgIGlmIChsYXRlc3QuY3VycmVudC5zdGF0ZS5pc09wZW4pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IElucHV0S2V5RG93blBhZ2VEb3duLFxuICAgICAgICAgIGdldEl0ZW1Ob2RlRnJvbUluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSksIFtkaXNwYXRjaCwgbGF0ZXN0LCBnZXRJdGVtTm9kZUZyb21JbmRleF0pO1xuXG4gIC8vIEdldHRlciBwcm9wcy5cbiAgY29uc3QgZ2V0TGFiZWxQcm9wcyA9IHVzZUNhbGxiYWNrKGxhYmVsUHJvcHMgPT4gKHtcbiAgICBpZDogZWxlbWVudElkcy5sYWJlbElkLFxuICAgIGh0bWxGb3I6IGVsZW1lbnRJZHMuaW5wdXRJZCxcbiAgICAuLi5sYWJlbFByb3BzXG4gIH0pLCBbZWxlbWVudElkc10pO1xuICBjb25zdCBnZXRNZW51UHJvcHMgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoX3RlbXAsIF90ZW1wMikge1xuICAgIGxldCB7XG4gICAgICBvbk1vdXNlTGVhdmUsXG4gICAgICByZWZLZXkgPSAncmVmJyxcbiAgICAgIHJlZixcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA7XG4gICAgbGV0IHtcbiAgICAgIHN1cHByZXNzUmVmRXJyb3IgPSBmYWxzZVxuICAgIH0gPSBfdGVtcDIgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAyO1xuICAgIHNldEdldHRlclByb3BDYWxsSW5mbygnZ2V0TWVudVByb3BzJywgc3VwcHJlc3NSZWZFcnJvciwgcmVmS2V5LCBtZW51UmVmKTtcbiAgICByZXR1cm4ge1xuICAgICAgW3JlZktleV06IGhhbmRsZVJlZnMocmVmLCBtZW51Tm9kZSA9PiB7XG4gICAgICAgIG1lbnVSZWYuY3VycmVudCA9IG1lbnVOb2RlO1xuICAgICAgfSksXG4gICAgICBpZDogZWxlbWVudElkcy5tZW51SWQsXG4gICAgICByb2xlOiAnbGlzdGJveCcsXG4gICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZWxlbWVudElkcy5sYWJlbElkLFxuICAgICAgb25Nb3VzZUxlYXZlOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbk1vdXNlTGVhdmUsICgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IE1lbnVNb3VzZUxlYXZlXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICAuLi5yZXN0XG4gICAgfTtcbiAgfSwgW2Rpc3BhdGNoLCBzZXRHZXR0ZXJQcm9wQ2FsbEluZm8sIGVsZW1lbnRJZHNdKTtcbiAgY29uc3QgZ2V0SXRlbVByb3BzID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKF90ZW1wMykge1xuICAgIGxldCB7XG4gICAgICBpdGVtLFxuICAgICAgaW5kZXgsXG4gICAgICByZWZLZXkgPSAncmVmJyxcbiAgICAgIHJlZixcbiAgICAgIG9uTW91c2VNb3ZlLFxuICAgICAgb25Nb3VzZURvd24sXG4gICAgICBvbkNsaWNrLFxuICAgICAgb25QcmVzcyxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgLi4ucmVzdFxuICAgIH0gPSBfdGVtcDMgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAzO1xuICAgIGNvbnN0IHtcbiAgICAgIHByb3BzOiBsYXRlc3RQcm9wcyxcbiAgICAgIHN0YXRlOiBsYXRlc3RTdGF0ZVxuICAgIH0gPSBsYXRlc3QuY3VycmVudDtcbiAgICBjb25zdCBpdGVtSW5kZXggPSBnZXRJdGVtSW5kZXgoaW5kZXgsIGl0ZW0sIGxhdGVzdFByb3BzLml0ZW1zKTtcbiAgICBpZiAoaXRlbUluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXNzIGVpdGhlciBpdGVtIG9yIGl0ZW0gaW5kZXggaW4gZ2V0SXRlbVByb3BzIScpO1xuICAgIH1cbiAgICBjb25zdCBvblNlbGVjdEtleSA9ICdvbkNsaWNrJztcbiAgICBjb25zdCBjdXN0b21DbGlja0hhbmRsZXIgPSBvbkNsaWNrO1xuICAgIGNvbnN0IGl0ZW1IYW5kbGVNb3VzZU1vdmUgPSAoKSA9PiB7XG4gICAgICBpZiAoaW5kZXggPT09IGxhdGVzdFN0YXRlLmhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc2hvdWxkU2Nyb2xsUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogSXRlbU1vdXNlTW92ZSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIGRpc2FibGVkXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGl0ZW1IYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogSXRlbUNsaWNrLFxuICAgICAgICBpbmRleFxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBpdGVtSGFuZGxlTW91c2VEb3duID0gZSA9PiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtyZWZLZXldOiBoYW5kbGVSZWZzKHJlZiwgaXRlbU5vZGUgPT4ge1xuICAgICAgICBpZiAoaXRlbU5vZGUpIHtcbiAgICAgICAgICBpdGVtUmVmcy5jdXJyZW50W2VsZW1lbnRJZHMuZ2V0SXRlbUlkKGl0ZW1JbmRleCldID0gaXRlbU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICdhcmlhLXNlbGVjdGVkJzogYCR7aXRlbUluZGV4ID09PSBsYXRlc3RTdGF0ZS5oaWdobGlnaHRlZEluZGV4fWAsXG4gICAgICBpZDogZWxlbWVudElkcy5nZXRJdGVtSWQoaXRlbUluZGV4KSxcbiAgICAgIC4uLighZGlzYWJsZWQgJiYge1xuICAgICAgICBbb25TZWxlY3RLZXldOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhjdXN0b21DbGlja0hhbmRsZXIsIGl0ZW1IYW5kbGVDbGljaylcbiAgICAgIH0pLFxuICAgICAgb25Nb3VzZU1vdmU6IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uTW91c2VNb3ZlLCBpdGVtSGFuZGxlTW91c2VNb3ZlKSxcbiAgICAgIG9uTW91c2VEb3duOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbk1vdXNlRG93biwgaXRlbUhhbmRsZU1vdXNlRG93biksXG4gICAgICAuLi5yZXN0XG4gICAgfTtcbiAgfSwgW2Rpc3BhdGNoLCBsYXRlc3QsIHNob3VsZFNjcm9sbFJlZiwgZWxlbWVudElkc10pO1xuICBjb25zdCBnZXRUb2dnbGVCdXR0b25Qcm9wcyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChfdGVtcDQpIHtcbiAgICBsZXQge1xuICAgICAgb25DbGljayxcbiAgICAgIG9uUHJlc3MsXG4gICAgICByZWZLZXkgPSAncmVmJyxcbiAgICAgIHJlZixcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gX3RlbXA0ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNDtcbiAgICBjb25zdCBsYXRlc3RTdGF0ZSA9IGxhdGVzdC5jdXJyZW50LnN0YXRlO1xuICAgIGNvbnN0IHRvZ2dsZUJ1dHRvbkhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBUb2dnbGVCdXR0b25DbGlja1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgW3JlZktleV06IGhhbmRsZVJlZnMocmVmLCB0b2dnbGVCdXR0b25Ob2RlID0+IHtcbiAgICAgICAgdG9nZ2xlQnV0dG9uUmVmLmN1cnJlbnQgPSB0b2dnbGVCdXR0b25Ob2RlO1xuICAgICAgfSksXG4gICAgICAnYXJpYS1jb250cm9scyc6IGVsZW1lbnRJZHMubWVudUlkLFxuICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBsYXRlc3RTdGF0ZS5pc09wZW4sXG4gICAgICBpZDogZWxlbWVudElkcy50b2dnbGVCdXR0b25JZCxcbiAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgIC4uLighcmVzdC5kaXNhYmxlZCAmJiB7XG4gICAgICAgIC4uLih7XG4gICAgICAgICAgb25DbGljazogY2FsbEFsbEV2ZW50SGFuZGxlcnMob25DbGljaywgdG9nZ2xlQnV0dG9uSGFuZGxlQ2xpY2spXG4gICAgICAgIH0pXG4gICAgICB9KSxcbiAgICAgIC4uLnJlc3RcbiAgICB9O1xuICB9LCBbZGlzcGF0Y2gsIGxhdGVzdCwgZWxlbWVudElkc10pO1xuICBjb25zdCBnZXRJbnB1dFByb3BzID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKF90ZW1wNSwgX3RlbXA2KSB7XG4gICAgbGV0IHtcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25JbnB1dCxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbkNoYW5nZVRleHQsXG4gICAgICByZWZLZXkgPSAncmVmJyxcbiAgICAgIHJlZixcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gX3RlbXA1ID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wNTtcbiAgICBsZXQge1xuICAgICAgc3VwcHJlc3NSZWZFcnJvciA9IGZhbHNlXG4gICAgfSA9IF90ZW1wNiA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDY7XG4gICAgc2V0R2V0dGVyUHJvcENhbGxJbmZvKCdnZXRJbnB1dFByb3BzJywgc3VwcHJlc3NSZWZFcnJvciwgcmVmS2V5LCBpbnB1dFJlZik7XG4gICAgY29uc3QgbGF0ZXN0U3RhdGUgPSBsYXRlc3QuY3VycmVudC5zdGF0ZTtcbiAgICBjb25zdCBpbnB1dEhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBub3JtYWxpemVBcnJvd0tleShldmVudCk7XG4gICAgICBpZiAoa2V5ICYmIGlucHV0S2V5RG93bkhhbmRsZXJzW2tleV0pIHtcbiAgICAgICAgaW5wdXRLZXlEb3duSGFuZGxlcnNba2V5XShldmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBpbnB1dEhhbmRsZUNoYW5nZSA9IGV2ZW50ID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogSW5wdXRDaGFuZ2UsXG4gICAgICAgIGlucHV0VmFsdWU6IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBpbnB1dEhhbmRsZUJsdXIgPSAoKSA9PiB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGxhdGVzdFN0YXRlLmlzT3BlbiAmJiAhbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmLmN1cnJlbnQuaXNNb3VzZURvd24pIHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IElucHV0Qmx1cixcbiAgICAgICAgICBzZWxlY3RJdGVtOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgaW5wdXRIYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICAgIGlmICghbGF0ZXN0U3RhdGUuaXNPcGVuKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBJbnB1dEZvY3VzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAocHJlYWN0KSAqL1xuICAgIGNvbnN0IG9uQ2hhbmdlS2V5ID0gJ29uQ2hhbmdlJztcbiAgICBsZXQgZXZlbnRIYW5kbGVycyA9IHt9O1xuICAgIGlmICghcmVzdC5kaXNhYmxlZCkge1xuICAgICAgZXZlbnRIYW5kbGVycyA9IHtcbiAgICAgICAgW29uQ2hhbmdlS2V5XTogY2FsbEFsbEV2ZW50SGFuZGxlcnMob25DaGFuZ2UsIG9uSW5wdXQsIGlucHV0SGFuZGxlQ2hhbmdlKSxcbiAgICAgICAgb25LZXlEb3duOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbktleURvd24sIGlucHV0SGFuZGxlS2V5RG93biksXG4gICAgICAgIG9uQmx1cjogY2FsbEFsbEV2ZW50SGFuZGxlcnMob25CbHVyLCBpbnB1dEhhbmRsZUJsdXIpLFxuICAgICAgICBvbkZvY3VzOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbkZvY3VzLCBpbnB1dEhhbmRsZUZvY3VzKVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIFtyZWZLZXldOiBoYW5kbGVSZWZzKHJlZiwgaW5wdXROb2RlID0+IHtcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudCA9IGlucHV0Tm9kZTtcbiAgICAgIH0pLFxuICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IGxhdGVzdFN0YXRlLmlzT3BlbiAmJiBsYXRlc3RTdGF0ZS5oaWdobGlnaHRlZEluZGV4ID4gLTEgPyBlbGVtZW50SWRzLmdldEl0ZW1JZChsYXRlc3RTdGF0ZS5oaWdobGlnaHRlZEluZGV4KSA6ICcnLFxuICAgICAgJ2FyaWEtYXV0b2NvbXBsZXRlJzogJ2xpc3QnLFxuICAgICAgJ2FyaWEtY29udHJvbHMnOiBlbGVtZW50SWRzLm1lbnVJZCxcbiAgICAgICdhcmlhLWV4cGFuZGVkJzogbGF0ZXN0U3RhdGUuaXNPcGVuLFxuICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGVsZW1lbnRJZHMubGFiZWxJZCxcbiAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1NlY3VyaXR5L1NlY3VyaW5nX3lvdXJfc2l0ZS9UdXJuaW5nX29mZl9mb3JtX2F1dG9jb21wbGV0aW9uXG4gICAgICAvLyByZXZlcnQgYmFjayBzaW5jZSBhdXRvY29tcGxldGU9XCJub3BlXCIgaXMgaWdub3JlZCBvbiBsYXRlc3QgQ2hyb21lIGFuZCBPcGVyYVxuICAgICAgYXV0b0NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgIGlkOiBlbGVtZW50SWRzLmlucHV0SWQsXG4gICAgICByb2xlOiAnY29tYm9ib3gnLFxuICAgICAgdmFsdWU6IGxhdGVzdFN0YXRlLmlucHV0VmFsdWUsXG4gICAgICAuLi5ldmVudEhhbmRsZXJzLFxuICAgICAgLi4ucmVzdFxuICAgIH07XG4gIH0sIFtkaXNwYXRjaCwgaW5wdXRLZXlEb3duSGFuZGxlcnMsIGxhdGVzdCwgbW91c2VBbmRUb3VjaFRyYWNrZXJzUmVmLCBzZXRHZXR0ZXJQcm9wQ2FsbEluZm8sIGVsZW1lbnRJZHNdKTtcblxuICAvLyByZXR1cm5zXG4gIGNvbnN0IHRvZ2dsZU1lbnUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25Ub2dnbGVNZW51XG4gICAgfSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuICBjb25zdCBjbG9zZU1lbnUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25DbG9zZU1lbnVcbiAgICB9KTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG4gIGNvbnN0IG9wZW5NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uT3Blbk1lbnVcbiAgICB9KTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG4gIGNvbnN0IHNldEhpZ2hsaWdodGVkSW5kZXggPSB1c2VDYWxsYmFjayhuZXdIaWdobGlnaHRlZEluZGV4ID0+IHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBGdW5jdGlvblNldEhpZ2hsaWdodGVkSW5kZXgsXG4gICAgICBoaWdobGlnaHRlZEluZGV4OiBuZXdIaWdobGlnaHRlZEluZGV4XG4gICAgfSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuICBjb25zdCBzZWxlY3RJdGVtID0gdXNlQ2FsbGJhY2sobmV3U2VsZWN0ZWRJdGVtID0+IHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBGdW5jdGlvblNlbGVjdEl0ZW0sXG4gICAgICBzZWxlY3RlZEl0ZW06IG5ld1NlbGVjdGVkSXRlbVxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3Qgc2V0SW5wdXRWYWx1ZSA9IHVzZUNhbGxiYWNrKG5ld0lucHV0VmFsdWUgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uU2V0SW5wdXRWYWx1ZSxcbiAgICAgIGlucHV0VmFsdWU6IG5ld0lucHV0VmFsdWVcbiAgICB9KTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG4gIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uUmVzZXQkMVxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgcmV0dXJuIHtcbiAgICAvLyBwcm9wIGdldHRlcnMuXG4gICAgZ2V0SXRlbVByb3BzLFxuICAgIGdldExhYmVsUHJvcHMsXG4gICAgZ2V0TWVudVByb3BzLFxuICAgIGdldElucHV0UHJvcHMsXG4gICAgZ2V0VG9nZ2xlQnV0dG9uUHJvcHMsXG4gICAgLy8gYWN0aW9ucy5cbiAgICB0b2dnbGVNZW51LFxuICAgIG9wZW5NZW51LFxuICAgIGNsb3NlTWVudSxcbiAgICBzZXRIaWdobGlnaHRlZEluZGV4LFxuICAgIHNldElucHV0VmFsdWUsXG4gICAgc2VsZWN0SXRlbSxcbiAgICByZXNldCxcbiAgICAvLyBzdGF0ZS5cbiAgICBoaWdobGlnaHRlZEluZGV4LFxuICAgIGlzT3BlbixcbiAgICBzZWxlY3RlZEl0ZW0sXG4gICAgaW5wdXRWYWx1ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0U3RhdGVWYWx1ZXMgPSB7XG4gIGFjdGl2ZUluZGV4OiAtMSxcbiAgc2VsZWN0ZWRJdGVtczogW11cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgYSBzdGF0ZSBrZXkgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjpcbiAqIDEuIGNvbnRyb2xsZWQgcHJvcCwgMi4gaW5pdGlhbCBwcm9wLCAzLiBkZWZhdWx0IHByb3AsIDQuIGRlZmF1bHRcbiAqIHZhbHVlIGZyb20gRG93bnNoaWZ0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBQcm9wcyBwYXNzZWQgdG8gdGhlIGhvb2suXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcEtleSBQcm9wcyBrZXkgdG8gZ2VuZXJhdGUgdGhlIHZhbHVlIGZvci5cbiAqIEByZXR1cm5zIHthbnl9IFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGF0IHByb3AuXG4gKi9cbmZ1bmN0aW9uIGdldEluaXRpYWxWYWx1ZShwcm9wcywgcHJvcEtleSkge1xuICByZXR1cm4gZ2V0SW5pdGlhbFZhbHVlJDEocHJvcHMsIHByb3BLZXksIGRlZmF1bHRTdGF0ZVZhbHVlcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYSBzdGF0ZSBrZXkgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjpcbiAqIDEuIGNvbnRyb2xsZWQgcHJvcCwgMi4gZGVmYXVsdCBwcm9wLCAzLiBkZWZhdWx0IHZhbHVlIGZyb20gRG93bnNoaWZ0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBQcm9wcyBwYXNzZWQgdG8gdGhlIGhvb2suXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcEtleSBQcm9wcyBrZXkgdG8gZ2VuZXJhdGUgdGhlIHZhbHVlIGZvci5cbiAqIEByZXR1cm5zIHthbnl9IFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGF0IHByb3AuXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRWYWx1ZShwcm9wcywgcHJvcEtleSkge1xuICByZXR1cm4gZ2V0RGVmYXVsdFZhbHVlJDEocHJvcHMsIHByb3BLZXksIGRlZmF1bHRTdGF0ZVZhbHVlcyk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgaW5pdGlhbCBzdGF0ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcHJvcHMuIEl0IHVzZXMgaW5pdGlhbCwgZGVmYXVsdFxuICogYW5kIGNvbnRyb2xsZWQgcHJvcHMgcmVsYXRlZCB0byBzdGF0ZSBpbiBvcmRlciB0byBjb21wdXRlIHRoZSBpbml0aWFsIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyBQcm9wcyBwYXNzZWQgdG8gdGhlIGhvb2suXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgaW5pdGlhbCBzdGF0ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKHByb3BzKSB7XG4gIGNvbnN0IGFjdGl2ZUluZGV4ID0gZ2V0SW5pdGlhbFZhbHVlKHByb3BzLCAnYWN0aXZlSW5kZXgnKTtcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGdldEluaXRpYWxWYWx1ZShwcm9wcywgJ3NlbGVjdGVkSXRlbXMnKTtcbiAgcmV0dXJuIHtcbiAgICBhY3RpdmVJbmRleCxcbiAgICBzZWxlY3RlZEl0ZW1zXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIGRyb3Bkb3duIGtleWRvd24gb3BlcmF0aW9uIGlzIHBlcm1pdHRlZC4gU2hvdWxkIG5vdCBiZVxuICogYWxsb3dlZCBvbiBrZXlkb3duIHdpdGggbW9kaWZpZXIga2V5cyAoY3RybCwgYWx0LCBzaGlmdCwgbWV0YSksIG9uXG4gKiBpbnB1dCBlbGVtZW50IHdpdGggdGV4dCBjb250ZW50IHRoYXQgaXMgZWl0aGVyIGhpZ2hsaWdodGVkIG9yIHNlbGVjdGlvblxuICogY3Vyc29yIGlzIG5vdCBhdCB0aGUgc3RhcnRpbmcgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCBUaGUgZXZlbnQgZnJvbSBrZXlkb3duLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIG9wZXJhdGlvbiBpcyBhbGxvd2VkLlxuICovXG5mdW5jdGlvbiBpc0tleURvd25PcGVyYXRpb25QZXJtaXR0ZWQoZXZlbnQpIHtcbiAgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmXG4gIC8vIGlmIGVsZW1lbnQgaXMgYSB0ZXh0IGlucHV0XG4gIGVsZW1lbnQudmFsdWUgIT09ICcnICYmIChcbiAgLy8gYW5kIHdlIGhhdmUgdGV4dCBpbiBpdFxuICAvLyBhbmQgY3Vyc29yIGlzIGVpdGhlciBub3QgYXQgdGhlIHN0YXJ0IG9yIGlzIGN1cnJlbnRseSBoaWdobGlnaHRpbmcgdGV4dC5cbiAgZWxlbWVudC5zZWxlY3Rpb25TdGFydCAhPT0gMCB8fCBlbGVtZW50LnNlbGVjdGlvbkVuZCAhPT0gMCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIG1lc3NhZ2UgdG8gYmUgYWRkZWQgdG8gYXJpYS1saXZlIHJlZ2lvbiB3aGVuIGl0ZW0gaXMgcmVtb3ZlZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2VsZWN0aW9uUGFyYW1ldGVycyBQYXJhbWV0ZXJzIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBtZXNzYWdlLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGExMXkgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gZ2V0QTExeVJlbW92YWxNZXNzYWdlKHNlbGVjdGlvblBhcmFtZXRlcnMpIHtcbiAgY29uc3Qge1xuICAgIHJlbW92ZWRTZWxlY3RlZEl0ZW0sXG4gICAgaXRlbVRvU3RyaW5nOiBpdGVtVG9TdHJpbmdMb2NhbFxuICB9ID0gc2VsZWN0aW9uUGFyYW1ldGVycztcbiAgcmV0dXJuIGAke2l0ZW1Ub1N0cmluZ0xvY2FsKHJlbW92ZWRTZWxlY3RlZEl0ZW0pfSBoYXMgYmVlbiByZW1vdmVkLmA7XG59XG5jb25zdCBwcm9wVHlwZXMgPSB7XG4gIHNlbGVjdGVkSXRlbXM6IFByb3BUeXBlcy5hcnJheSxcbiAgaW5pdGlhbFNlbGVjdGVkSXRlbXM6IFByb3BUeXBlcy5hcnJheSxcbiAgZGVmYXVsdFNlbGVjdGVkSXRlbXM6IFByb3BUeXBlcy5hcnJheSxcbiAgaXRlbVRvU3RyaW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgZ2V0QTExeVJlbW92YWxNZXNzYWdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgc3RhdGVSZWR1Y2VyOiBQcm9wVHlwZXMuZnVuYyxcbiAgYWN0aXZlSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGluaXRpYWxBY3RpdmVJbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgZGVmYXVsdEFjdGl2ZUluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBvbkFjdGl2ZUluZGV4Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZWxlY3RlZEl0ZW1zQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAga2V5TmF2aWdhdGlvbk5leHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGtleU5hdmlnYXRpb25QcmV2aW91czogUHJvcFR5cGVzLnN0cmluZyxcbiAgZW52aXJvbm1lbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZG9jdW1lbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBnZXRFbGVtZW50QnlJZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBhY3RpdmVFbGVtZW50OiBQcm9wVHlwZXMuYW55LFxuICAgICAgYm9keTogUHJvcFR5cGVzLmFueVxuICAgIH0pXG4gIH0pXG59O1xuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBpdGVtVG9TdHJpbmc6IGRlZmF1bHRQcm9wcyQzLml0ZW1Ub1N0cmluZyxcbiAgc3RhdGVSZWR1Y2VyOiBkZWZhdWx0UHJvcHMkMy5zdGF0ZVJlZHVjZXIsXG4gIGVudmlyb25tZW50OiBkZWZhdWx0UHJvcHMkMy5lbnZpcm9ubWVudCxcbiAgZ2V0QTExeVJlbW92YWxNZXNzYWdlLFxuICBrZXlOYXZpZ2F0aW9uTmV4dDogJ0Fycm93UmlnaHQnLFxuICBrZXlOYXZpZ2F0aW9uUHJldmlvdXM6ICdBcnJvd0xlZnQnXG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xubGV0IHZhbGlkYXRlUHJvcFR5cGVzID0gbm9vcDtcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YWxpZGF0ZVByb3BUeXBlcyA9IChvcHRpb25zLCBjYWxsZXIpID0+IHtcbiAgICBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBvcHRpb25zLCAncHJvcCcsIGNhbGxlci5uYW1lKTtcbiAgfTtcbn1cblxuY29uc3QgU2VsZWN0ZWRJdGVtQ2xpY2sgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19zZWxlY3RlZF9pdGVtX2NsaWNrX18nIDogMDtcbmNvbnN0IFNlbGVjdGVkSXRlbUtleURvd25EZWxldGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19zZWxlY3RlZF9pdGVtX2tleWRvd25fZGVsZXRlX18nIDogMTtcbmNvbnN0IFNlbGVjdGVkSXRlbUtleURvd25CYWNrc3BhY2UgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19zZWxlY3RlZF9pdGVtX2tleWRvd25fYmFja3NwYWNlX18nIDogMjtcbmNvbnN0IFNlbGVjdGVkSXRlbUtleURvd25OYXZpZ2F0aW9uTmV4dCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX3NlbGVjdGVkX2l0ZW1fa2V5ZG93bl9uYXZpZ2F0aW9uX25leHRfXycgOiAzO1xuY29uc3QgU2VsZWN0ZWRJdGVtS2V5RG93bk5hdmlnYXRpb25QcmV2aW91cyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX3NlbGVjdGVkX2l0ZW1fa2V5ZG93bl9uYXZpZ2F0aW9uX3ByZXZpb3VzX18nIDogNDtcbmNvbnN0IERyb3Bkb3duS2V5RG93bk5hdmlnYXRpb25QcmV2aW91cyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Ryb3Bkb3duX2tleWRvd25fbmF2aWdhdGlvbl9wcmV2aW91c19fJyA6IDU7XG5jb25zdCBEcm9wZG93bktleURvd25CYWNrc3BhY2UgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19kcm9wZG93bl9rZXlkb3duX2JhY2tzcGFjZV9fJyA6IDY7XG5jb25zdCBEcm9wZG93bkNsaWNrID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gJ19fZHJvcGRvd25fY2xpY2tfXycgOiA3O1xuY29uc3QgRnVuY3Rpb25BZGRTZWxlY3RlZEl0ZW0gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9hZGRfc2VsZWN0ZWRfaXRlbV9fJyA6IDg7XG5jb25zdCBGdW5jdGlvblJlbW92ZVNlbGVjdGVkSXRlbSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Z1bmN0aW9uX3JlbW92ZV9zZWxlY3RlZF9pdGVtX18nIDogOTtcbmNvbnN0IEZ1bmN0aW9uU2V0U2VsZWN0ZWRJdGVtcyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Z1bmN0aW9uX3NldF9zZWxlY3RlZF9pdGVtc19fJyA6IDEwO1xuY29uc3QgRnVuY3Rpb25TZXRBY3RpdmVJbmRleCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/ICdfX2Z1bmN0aW9uX3NldF9hY3RpdmVfaW5kZXhfXycgOiAxMTtcbmNvbnN0IEZ1bmN0aW9uUmVzZXQgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyAnX19mdW5jdGlvbl9yZXNldF9fJyA6IDEyO1xuXG52YXIgc3RhdGVDaGFuZ2VUeXBlcyA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgX19wcm90b19fOiBudWxsLFxuICBTZWxlY3RlZEl0ZW1DbGljazogU2VsZWN0ZWRJdGVtQ2xpY2ssXG4gIFNlbGVjdGVkSXRlbUtleURvd25EZWxldGU6IFNlbGVjdGVkSXRlbUtleURvd25EZWxldGUsXG4gIFNlbGVjdGVkSXRlbUtleURvd25CYWNrc3BhY2U6IFNlbGVjdGVkSXRlbUtleURvd25CYWNrc3BhY2UsXG4gIFNlbGVjdGVkSXRlbUtleURvd25OYXZpZ2F0aW9uTmV4dDogU2VsZWN0ZWRJdGVtS2V5RG93bk5hdmlnYXRpb25OZXh0LFxuICBTZWxlY3RlZEl0ZW1LZXlEb3duTmF2aWdhdGlvblByZXZpb3VzOiBTZWxlY3RlZEl0ZW1LZXlEb3duTmF2aWdhdGlvblByZXZpb3VzLFxuICBEcm9wZG93bktleURvd25OYXZpZ2F0aW9uUHJldmlvdXM6IERyb3Bkb3duS2V5RG93bk5hdmlnYXRpb25QcmV2aW91cyxcbiAgRHJvcGRvd25LZXlEb3duQmFja3NwYWNlOiBEcm9wZG93bktleURvd25CYWNrc3BhY2UsXG4gIERyb3Bkb3duQ2xpY2s6IERyb3Bkb3duQ2xpY2ssXG4gIEZ1bmN0aW9uQWRkU2VsZWN0ZWRJdGVtOiBGdW5jdGlvbkFkZFNlbGVjdGVkSXRlbSxcbiAgRnVuY3Rpb25SZW1vdmVTZWxlY3RlZEl0ZW06IEZ1bmN0aW9uUmVtb3ZlU2VsZWN0ZWRJdGVtLFxuICBGdW5jdGlvblNldFNlbGVjdGVkSXRlbXM6IEZ1bmN0aW9uU2V0U2VsZWN0ZWRJdGVtcyxcbiAgRnVuY3Rpb25TZXRBY3RpdmVJbmRleDogRnVuY3Rpb25TZXRBY3RpdmVJbmRleCxcbiAgRnVuY3Rpb25SZXNldDogRnVuY3Rpb25SZXNldFxufSk7XG5cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmZ1bmN0aW9uIGRvd25zaGlmdE11bHRpcGxlU2VsZWN0aW9uUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIGNvbnN0IHtcbiAgICB0eXBlLFxuICAgIGluZGV4LFxuICAgIHByb3BzLFxuICAgIHNlbGVjdGVkSXRlbVxuICB9ID0gYWN0aW9uO1xuICBjb25zdCB7XG4gICAgYWN0aXZlSW5kZXgsXG4gICAgc2VsZWN0ZWRJdGVtc1xuICB9ID0gc3RhdGU7XG4gIGxldCBjaGFuZ2VzO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFNlbGVjdGVkSXRlbUNsaWNrOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgYWN0aXZlSW5kZXg6IGluZGV4XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBTZWxlY3RlZEl0ZW1LZXlEb3duTmF2aWdhdGlvblByZXZpb3VzOlxuICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgYWN0aXZlSW5kZXg6IGFjdGl2ZUluZGV4IC0gMSA8IDAgPyAwIDogYWN0aXZlSW5kZXggLSAxXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBTZWxlY3RlZEl0ZW1LZXlEb3duTmF2aWdhdGlvbk5leHQ6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBhY3RpdmVJbmRleDogYWN0aXZlSW5kZXggKyAxID49IHNlbGVjdGVkSXRlbXMubGVuZ3RoID8gLTEgOiBhY3RpdmVJbmRleCArIDFcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIFNlbGVjdGVkSXRlbUtleURvd25CYWNrc3BhY2U6XG4gICAgY2FzZSBTZWxlY3RlZEl0ZW1LZXlEb3duRGVsZXRlOlxuICAgICAge1xuICAgICAgICBsZXQgbmV3QWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgbmV3QWN0aXZlSW5kZXggPSAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3RpdmVJbmRleCA9PT0gc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3QWN0aXZlSW5kZXggPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDI7XG4gICAgICAgIH1cbiAgICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4uc2VsZWN0ZWRJdGVtcy5zbGljZSgwLCBhY3RpdmVJbmRleCksIC4uLnNlbGVjdGVkSXRlbXMuc2xpY2UoYWN0aXZlSW5kZXggKyAxKV0sXG4gICAgICAgICAgLi4ue1xuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IG5ld0FjdGl2ZUluZGV4XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICBjYXNlIERyb3Bkb3duS2V5RG93bk5hdmlnYXRpb25QcmV2aW91czpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGFjdGl2ZUluZGV4OiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDFcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIERyb3Bkb3duS2V5RG93bkJhY2tzcGFjZTpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IHNlbGVjdGVkSXRlbXMuc2xpY2UoMCwgc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRnVuY3Rpb25BZGRTZWxlY3RlZEl0ZW06XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4uc2VsZWN0ZWRJdGVtcywgc2VsZWN0ZWRJdGVtXVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRHJvcGRvd25DbGljazpcbiAgICAgIGNoYW5nZXMgPSB7XG4gICAgICAgIGFjdGl2ZUluZGV4OiAtMVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRnVuY3Rpb25SZW1vdmVTZWxlY3RlZEl0ZW06XG4gICAgICB7XG4gICAgICAgIGxldCBuZXdBY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4O1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1JbmRleCA9IHNlbGVjdGVkSXRlbXMuaW5kZXhPZihzZWxlY3RlZEl0ZW0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggPj0gMCkge1xuICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgbmV3QWN0aXZlSW5kZXggPSAtMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSXRlbUluZGV4ID09PSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5ld0FjdGl2ZUluZGV4ID0gc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGFuZ2VzID0ge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLnNlbGVjdGVkSXRlbXMuc2xpY2UoMCwgc2VsZWN0ZWRJdGVtSW5kZXgpLCAuLi5zZWxlY3RlZEl0ZW1zLnNsaWNlKHNlbGVjdGVkSXRlbUluZGV4ICsgMSldLFxuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IG5ld0FjdGl2ZUluZGV4XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICBjYXNlIEZ1bmN0aW9uU2V0U2VsZWN0ZWRJdGVtczpcbiAgICAgIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IG5ld1NlbGVjdGVkSXRlbXNcbiAgICAgICAgfSA9IGFjdGlvbjtcbiAgICAgICAgY2hhbmdlcyA9IHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBuZXdTZWxlY3RlZEl0ZW1zXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIGNhc2UgRnVuY3Rpb25TZXRBY3RpdmVJbmRleDpcbiAgICAgIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGFjdGl2ZUluZGV4OiBuZXdBY3RpdmVJbmRleFxuICAgICAgICB9ID0gYWN0aW9uO1xuICAgICAgICBjaGFuZ2VzID0ge1xuICAgICAgICAgIGFjdGl2ZUluZGV4OiBuZXdBY3RpdmVJbmRleFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICBjYXNlIEZ1bmN0aW9uUmVzZXQ6XG4gICAgICBjaGFuZ2VzID0ge1xuICAgICAgICBhY3RpdmVJbmRleDogZ2V0RGVmYXVsdFZhbHVlKHByb3BzLCAnYWN0aXZlSW5kZXgnKSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogZ2V0RGVmYXVsdFZhbHVlKHByb3BzLCAnc2VsZWN0ZWRJdGVtcycpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVkdWNlciBjYWxsZWQgd2l0aG91dCBwcm9wZXIgYWN0aW9uIHR5cGUuJyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi5jaGFuZ2VzXG4gIH07XG59XG5cbnVzZU11bHRpcGxlU2VsZWN0aW9uLnN0YXRlQ2hhbmdlVHlwZXMgPSBzdGF0ZUNoYW5nZVR5cGVzO1xuZnVuY3Rpb24gdXNlTXVsdGlwbGVTZWxlY3Rpb24odXNlclByb3BzKSB7XG4gIGlmICh1c2VyUHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHVzZXJQcm9wcyA9IHt9O1xuICB9XG4gIHZhbGlkYXRlUHJvcFR5cGVzKHVzZXJQcm9wcywgdXNlTXVsdGlwbGVTZWxlY3Rpb24pO1xuICAvLyBQcm9wcyBkZWZhdWx0cyBhbmQgZGVzdHJ1Y3R1cmluZy5cbiAgY29uc3QgcHJvcHMgPSB7XG4gICAgLi4uZGVmYXVsdFByb3BzLFxuICAgIC4uLnVzZXJQcm9wc1xuICB9O1xuICBjb25zdCB7XG4gICAgZ2V0QTExeVJlbW92YWxNZXNzYWdlLFxuICAgIGl0ZW1Ub1N0cmluZyxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBrZXlOYXZpZ2F0aW9uTmV4dCxcbiAgICBrZXlOYXZpZ2F0aW9uUHJldmlvdXNcbiAgfSA9IHByb3BzO1xuXG4gIC8vIFJlZHVjZXIgaW5pdC5cbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VDb250cm9sbGVkUmVkdWNlciQxKGRvd25zaGlmdE11bHRpcGxlU2VsZWN0aW9uUmVkdWNlciwgZ2V0SW5pdGlhbFN0YXRlKHByb3BzKSwgcHJvcHMpO1xuICBjb25zdCB7XG4gICAgYWN0aXZlSW5kZXgsXG4gICAgc2VsZWN0ZWRJdGVtc1xuICB9ID0gc3RhdGU7XG5cbiAgLy8gUmVmcy5cbiAgY29uc3QgaXNJbml0aWFsTW91bnRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGRyb3Bkb3duUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBwcmV2aW91c1NlbGVjdGVkSXRlbXNSZWYgPSB1c2VSZWYoc2VsZWN0ZWRJdGVtcyk7XG4gIGNvbnN0IHNlbGVjdGVkSXRlbVJlZnMgPSB1c2VSZWYoKTtcbiAgc2VsZWN0ZWRJdGVtUmVmcy5jdXJyZW50ID0gW107XG4gIGNvbnN0IGxhdGVzdCA9IHVzZUxhdGVzdFJlZih7XG4gICAgc3RhdGUsXG4gICAgcHJvcHNcbiAgfSk7XG5cbiAgLy8gRWZmZWN0cy5cbiAgLyogU2V0cyBhMTF5IHN0YXR1cyBtZXNzYWdlIG9uIGNoYW5nZXMgaW4gc2VsZWN0ZWRJdGVtLiAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0luaXRpYWxNb3VudFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA8IHByZXZpb3VzU2VsZWN0ZWRJdGVtc1JlZi5jdXJyZW50Lmxlbmd0aCkge1xuICAgICAgY29uc3QgcmVtb3ZlZFNlbGVjdGVkSXRlbSA9IHByZXZpb3VzU2VsZWN0ZWRJdGVtc1JlZi5jdXJyZW50LmZpbmQoaXRlbSA9PiBzZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSkgPCAwKTtcbiAgICAgIHNldFN0YXR1cyhnZXRBMTF5UmVtb3ZhbE1lc3NhZ2Uoe1xuICAgICAgICBpdGVtVG9TdHJpbmcsXG4gICAgICAgIHJlc3VsdENvdW50OiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgcmVtb3ZlZFNlbGVjdGVkSXRlbSxcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIGFjdGl2ZVNlbGVjdGVkSXRlbTogc2VsZWN0ZWRJdGVtc1thY3RpdmVJbmRleF1cbiAgICAgIH0pLCBlbnZpcm9ubWVudC5kb2N1bWVudCk7XG4gICAgfVxuICAgIHByZXZpb3VzU2VsZWN0ZWRJdGVtc1JlZi5jdXJyZW50ID0gc2VsZWN0ZWRJdGVtcztcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3NlbGVjdGVkSXRlbXMubGVuZ3RoXSk7XG4gIC8vIFNldHMgZm9jdXMgb24gYWN0aXZlIGl0ZW0uXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzSW5pdGlhbE1vdW50UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGFjdGl2ZUluZGV4ID09PSAtMSAmJiBkcm9wZG93blJlZi5jdXJyZW50KSB7XG4gICAgICBkcm9wZG93blJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZEl0ZW1SZWZzLmN1cnJlbnRbYWN0aXZlSW5kZXhdKSB7XG4gICAgICBzZWxlY3RlZEl0ZW1SZWZzLmN1cnJlbnRbYWN0aXZlSW5kZXhdLmZvY3VzKCk7XG4gICAgfVxuICB9LCBbYWN0aXZlSW5kZXhdKTtcbiAgdXNlQ29udHJvbFByb3BzVmFsaWRhdG9yKHtcbiAgICBpc0luaXRpYWxNb3VudDogaXNJbml0aWFsTW91bnRSZWYuY3VycmVudCxcbiAgICBwcm9wcyxcbiAgICBzdGF0ZVxuICB9KTtcbiAgY29uc3Qgc2V0R2V0dGVyUHJvcENhbGxJbmZvID0gdXNlR2V0dGVyUHJvcHNDYWxsZWRDaGVja2VyKCdnZXREcm9wZG93blByb3BzJyk7XG4gIC8vIE1ha2UgaW5pdGlhbCByZWYgZmFsc2UuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaXNJbml0aWFsTW91bnRSZWYuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbXSk7XG5cbiAgLy8gRXZlbnQgaGFuZGxlciBmdW5jdGlvbnMuXG4gIGNvbnN0IHNlbGVjdGVkSXRlbUtleURvd25IYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICBba2V5TmF2aWdhdGlvblByZXZpb3VzXSgpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogU2VsZWN0ZWRJdGVtS2V5RG93bk5hdmlnYXRpb25QcmV2aW91c1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBba2V5TmF2aWdhdGlvbk5leHRdKCkge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBTZWxlY3RlZEl0ZW1LZXlEb3duTmF2aWdhdGlvbk5leHRcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgRGVsZXRlKCkge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBTZWxlY3RlZEl0ZW1LZXlEb3duRGVsZXRlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIEJhY2tzcGFjZSgpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogU2VsZWN0ZWRJdGVtS2V5RG93bkJhY2tzcGFjZVxuICAgICAgfSk7XG4gICAgfVxuICB9KSwgW2Rpc3BhdGNoLCBrZXlOYXZpZ2F0aW9uTmV4dCwga2V5TmF2aWdhdGlvblByZXZpb3VzXSk7XG4gIGNvbnN0IGRyb3Bkb3duS2V5RG93bkhhbmRsZXJzID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIFtrZXlOYXZpZ2F0aW9uUHJldmlvdXNdKGV2ZW50KSB7XG4gICAgICBpZiAoaXNLZXlEb3duT3BlcmF0aW9uUGVybWl0dGVkKGV2ZW50KSkge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogRHJvcGRvd25LZXlEb3duTmF2aWdhdGlvblByZXZpb3VzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgQmFja3NwYWNlKGV2ZW50KSB7XG4gICAgICBpZiAoaXNLZXlEb3duT3BlcmF0aW9uUGVybWl0dGVkKGV2ZW50KSkge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogRHJvcGRvd25LZXlEb3duQmFja3NwYWNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSksIFtkaXNwYXRjaCwga2V5TmF2aWdhdGlvblByZXZpb3VzXSk7XG5cbiAgLy8gR2V0dGVyIHByb3BzLlxuICBjb25zdCBnZXRTZWxlY3RlZEl0ZW1Qcm9wcyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChfdGVtcCkge1xuICAgIGxldCB7XG4gICAgICByZWZLZXkgPSAncmVmJyxcbiAgICAgIHJlZixcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbktleURvd24sXG4gICAgICBzZWxlY3RlZEl0ZW0sXG4gICAgICBpbmRleCxcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXA7XG4gICAgY29uc3Qge1xuICAgICAgc3RhdGU6IGxhdGVzdFN0YXRlXG4gICAgfSA9IGxhdGVzdC5jdXJyZW50O1xuICAgIGNvbnN0IGl0ZW1JbmRleCA9IGdldEl0ZW1JbmRleChpbmRleCwgc2VsZWN0ZWRJdGVtLCBsYXRlc3RTdGF0ZS5zZWxlY3RlZEl0ZW1zKTtcbiAgICBpZiAoaXRlbUluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXNzIGVpdGhlciBzZWxlY3RlZEl0ZW0gb3IgaW5kZXggaW4gZ2V0U2VsZWN0ZWRJdGVtUHJvcHMhJyk7XG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbUhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBTZWxlY3RlZEl0ZW1DbGljayxcbiAgICAgICAgaW5kZXhcbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtSGFuZGxlS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IG5vcm1hbGl6ZUFycm93S2V5KGV2ZW50KTtcbiAgICAgIGlmIChrZXkgJiYgc2VsZWN0ZWRJdGVtS2V5RG93bkhhbmRsZXJzW2tleV0pIHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtS2V5RG93bkhhbmRsZXJzW2tleV0oZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIFtyZWZLZXldOiBoYW5kbGVSZWZzKHJlZiwgc2VsZWN0ZWRJdGVtTm9kZSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW1Ob2RlKSB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtUmVmcy5jdXJyZW50LnB1c2goc2VsZWN0ZWRJdGVtTm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFiSW5kZXg6IGluZGV4ID09PSBsYXRlc3RTdGF0ZS5hY3RpdmVJbmRleCA/IDAgOiAtMSxcbiAgICAgIG9uQ2xpY2s6IGNhbGxBbGxFdmVudEhhbmRsZXJzKG9uQ2xpY2ssIHNlbGVjdGVkSXRlbUhhbmRsZUNsaWNrKSxcbiAgICAgIG9uS2V5RG93bjogY2FsbEFsbEV2ZW50SGFuZGxlcnMob25LZXlEb3duLCBzZWxlY3RlZEl0ZW1IYW5kbGVLZXlEb3duKSxcbiAgICAgIC4uLnJlc3RcbiAgICB9O1xuICB9LCBbZGlzcGF0Y2gsIGxhdGVzdCwgc2VsZWN0ZWRJdGVtS2V5RG93bkhhbmRsZXJzXSk7XG4gIGNvbnN0IGdldERyb3Bkb3duUHJvcHMgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoX3RlbXAyLCBfdGVtcDMpIHtcbiAgICBsZXQge1xuICAgICAgcmVmS2V5ID0gJ3JlZicsXG4gICAgICByZWYsXG4gICAgICBvbktleURvd24sXG4gICAgICBvbkNsaWNrLFxuICAgICAgcHJldmVudEtleUFjdGlvbiA9IGZhbHNlLFxuICAgICAgLi4ucmVzdFxuICAgIH0gPSBfdGVtcDIgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAyO1xuICAgIGxldCB7XG4gICAgICBzdXBwcmVzc1JlZkVycm9yID0gZmFsc2VcbiAgICB9ID0gX3RlbXAzID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wMztcbiAgICBzZXRHZXR0ZXJQcm9wQ2FsbEluZm8oJ2dldERyb3Bkb3duUHJvcHMnLCBzdXBwcmVzc1JlZkVycm9yLCByZWZLZXksIGRyb3Bkb3duUmVmKTtcbiAgICBjb25zdCBkcm9wZG93bkhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBub3JtYWxpemVBcnJvd0tleShldmVudCk7XG4gICAgICBpZiAoa2V5ICYmIGRyb3Bkb3duS2V5RG93bkhhbmRsZXJzW2tleV0pIHtcbiAgICAgICAgZHJvcGRvd25LZXlEb3duSGFuZGxlcnNba2V5XShldmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBkcm9wZG93bkhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBEcm9wZG93bkNsaWNrXG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICBbcmVmS2V5XTogaGFuZGxlUmVmcyhyZWYsIGRyb3Bkb3duTm9kZSA9PiB7XG4gICAgICAgIGlmIChkcm9wZG93bk5vZGUpIHtcbiAgICAgICAgICBkcm9wZG93blJlZi5jdXJyZW50ID0gZHJvcGRvd25Ob2RlO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIC4uLighcHJldmVudEtleUFjdGlvbiAmJiB7XG4gICAgICAgIG9uS2V5RG93bjogY2FsbEFsbEV2ZW50SGFuZGxlcnMob25LZXlEb3duLCBkcm9wZG93bkhhbmRsZUtleURvd24pLFxuICAgICAgICBvbkNsaWNrOiBjYWxsQWxsRXZlbnRIYW5kbGVycyhvbkNsaWNrLCBkcm9wZG93bkhhbmRsZUNsaWNrKVxuICAgICAgfSksXG4gICAgICAuLi5yZXN0XG4gICAgfTtcbiAgfSwgW2Rpc3BhdGNoLCBkcm9wZG93bktleURvd25IYW5kbGVycywgc2V0R2V0dGVyUHJvcENhbGxJbmZvXSk7XG5cbiAgLy8gcmV0dXJuc1xuICBjb25zdCBhZGRTZWxlY3RlZEl0ZW0gPSB1c2VDYWxsYmFjayhzZWxlY3RlZEl0ZW0gPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uQWRkU2VsZWN0ZWRJdGVtLFxuICAgICAgc2VsZWN0ZWRJdGVtXG4gICAgfSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuICBjb25zdCByZW1vdmVTZWxlY3RlZEl0ZW0gPSB1c2VDYWxsYmFjayhzZWxlY3RlZEl0ZW0gPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uUmVtb3ZlU2VsZWN0ZWRJdGVtLFxuICAgICAgc2VsZWN0ZWRJdGVtXG4gICAgfSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuICBjb25zdCBzZXRTZWxlY3RlZEl0ZW1zID0gdXNlQ2FsbGJhY2sobmV3U2VsZWN0ZWRJdGVtcyA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25TZXRTZWxlY3RlZEl0ZW1zLFxuICAgICAgc2VsZWN0ZWRJdGVtczogbmV3U2VsZWN0ZWRJdGVtc1xuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3Qgc2V0QWN0aXZlSW5kZXggPSB1c2VDYWxsYmFjayhuZXdBY3RpdmVJbmRleCA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25TZXRBY3RpdmVJbmRleCxcbiAgICAgIGFjdGl2ZUluZGV4OiBuZXdBY3RpdmVJbmRleFxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgY29uc3QgcmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRnVuY3Rpb25SZXNldFxuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2hdKTtcbiAgcmV0dXJuIHtcbiAgICBnZXRTZWxlY3RlZEl0ZW1Qcm9wcyxcbiAgICBnZXREcm9wZG93blByb3BzLFxuICAgIGFkZFNlbGVjdGVkSXRlbSxcbiAgICByZW1vdmVTZWxlY3RlZEl0ZW0sXG4gICAgc2V0U2VsZWN0ZWRJdGVtcyxcbiAgICBzZXRBY3RpdmVJbmRleCxcbiAgICByZXNldCxcbiAgICBzZWxlY3RlZEl0ZW1zLFxuICAgIGFjdGl2ZUluZGV4XG4gIH07XG59XG5cbmV4cG9ydCB7IERvd25zaGlmdCQxIGFzIGRlZmF1bHQsIHJlc2V0SWRDb3VudGVyLCB1c2VDb21ib2JveCwgdXNlTXVsdGlwbGVTZWxlY3Rpb24sIHVzZVNlbGVjdCB9O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCc0FzdGVyaXNrLCBCc0NoZWNrTGcgfSBmcm9tIFwicmVhY3QtaWNvbnMvYnNcIjtcclxuaW1wb3J0IHsgSW1TcGlubmVyMiB9IGZyb20gXCJyZWFjdC1pY29ucy9pbVwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4uL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgSW5mb0NhcmQsIEluZm9DYXJkRGVzY3JpcHRpb24gfSBmcm9tIFwiLi4vSW5mb0NhcmRcIjtcclxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCIuLi9Ub29sdGlwXCI7XHJcbmltcG9ydCBEb3duc2hpZnQgZnJvbSBcImRvd25zaGlmdFwiO1xyXG5cclxuLyoqIFJlcHJlc2VudHMgYW4gb3B0aW9uIHRvIGJlIGNob3NlbiBpbiB0aGUgZmllbGQgKi9cclxuZXhwb3J0IHR5cGUgTG9va3VwT3B0aW9uID0ge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHByaW1hcnlUZXh0OiBzdHJpbmc7XHJcbiAgICBzZWNvbmRhcnlUZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgb3B0aW9uIHNob3VsZCBiZSBwaWNrYWJsZS4gQW4gb3B0aW9uIG1heSBiZSBzZXQgYGlzUGlja2FibGVgIGZhbHNlXHJcbiAgICAgKiBpZiBpdCBtYXkgYmUgcG9wdWxhdGVkIGFzIHRoZSBgZGVmYXVsdFNlbGVjdGVkT3B0aW9uSWRgIGJ1dCBzaG91bGQgbm90IGJlIHBpY2thYmxlLiBGb3IgZXhhbXBsZSxcclxuICAgICAqIG9ubHkgJ2FjdGl2ZScgcmVjb3JkcyBtYXkgYmUgc2V0IHdpdGggYGlzUGlja2FibGVgIHRydWUsIGJ1dCAnaW5hY3RpdmUnIHJlY29yZHMgd2lsbCBiZSBwYXNzZWRcclxuICAgICAqIGluIHdpdGggYGlzUGlja2FibGVgIGZhbHNlIGFzIGl0IG1heSBiZSB0aGUgIGBkZWZhdWx0U2VsZWN0ZWRPcHRpb25JZGAuXHJcbiAgICAgKi9cclxuICAgIGlzUGlja2FibGU6IGJvb2xlYW47XHJcbn07XHJcblxyXG4vKiogTG9va3VwIGZpZWxkIHRvIGFub3RoZXIgcmVjb3JkICovXHJcbmV4cG9ydCBjb25zdCBMb29rdXBGaWVsZCA9IGZ1bmN0aW9uIExvb2t1cEZpZWxkPFRMb29rdXBPcHRpb24gZXh0ZW5kcyBMb29rdXBPcHRpb24+KFxyXG4gICAgcHJvcHM6IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPHtcclxuICAgICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgbGFiZWw6IHN0cmluZztcclxuICAgICAgICB0b29sdGlwPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uSWQ6IFRMb29rdXBPcHRpb25bXCJpZFwiXSB8IG51bGw7XHJcbiAgICAgICAgb3B0aW9uczogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IHwgeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiOyB2YWx1ZTogVExvb2t1cE9wdGlvbltdIH07XHJcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25DYXJkSW5mbz86IChzZWxlY3RlZE9wdGlvbjogVExvb2t1cE9wdGlvbikgPT4gSW5mb0NhcmREZXNjcmlwdGlvbjtcclxuICAgICAgICBwbHVyYWxPcHRpb25zTmFtZTogc3RyaW5nO1xyXG4gICAgICAgIHNldFNlbGVjdGVkT3B0aW9uSWQ6IChvcHRpb25JZDogVExvb2t1cE9wdGlvbltcImlkXCJdIHwgbnVsbCkgPT4gdm9pZDtcclxuICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz86IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFJlYWN0LklucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4sIEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gICAgICAgIGFkZGl0aW9uYWxMYWJlbFByb3BzPzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XHJcbiAgICAgICAgICAgIFJlYWN0LkxhYmVsSFRNTEF0dHJpYnV0ZXM8SFRNTExhYmVsRWxlbWVudD4sXHJcbiAgICAgICAgICAgIEhUTUxMYWJlbEVsZW1lbnRcclxuICAgICAgICA+ICYge1xyXG4gICAgICAgICAgICBbZGF0YUF0dHJpYnV0ZTogc3RyaW5nXTogYW55O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY3VzdG9tVmFsaWRpdHk/OiAodmFsaWRpdHk6IFZhbGlkaXR5U3RhdGUpID0+IHN0cmluZztcclxuICAgICAgICBmaXhlZFdpZHRoPzogbnVtYmVyO1xyXG4gICAgfT5cclxuKSB7XHJcbiAgICBjb25zdCBzZWFyY2hUZXJtSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XHJcbiAgICBjb25zdCBjbGVhckJ1dHRvblJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbCk7XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBjdXN0b20gdmFsaWRpdHkgcnVsZXMuXHJcbiAgICBpZiAocHJvcHMuY3VzdG9tVmFsaWRpdHkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHNlYXJjaFRlcm1JbnB1dFJlZi5jdXJyZW50Py5zZXRDdXN0b21WYWxpZGl0eShwcm9wcy5jdXN0b21WYWxpZGl0eShzZWFyY2hUZXJtSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCB0aGUgZGVmYXVsdHMgZm9yIHRoZSBjb250cm9sXHJcbiAgICBjb25zdCBhZGRpdGlvbmFsSW5wdXRQcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XHJcbiAgICAgICAgUmVhY3QuSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PixcclxuICAgICAgICBIVE1MSW5wdXRFbGVtZW50XHJcbiAgICA+ID0ge1xyXG4gICAgICAgIC4uLnByb3BzLmFkZGl0aW9uYWxJbnB1dFByb3BzLFxyXG4gICAgICAgIHJlcXVpcmVkOiBwcm9wcy5hZGRpdGlvbmFsSW5wdXRQcm9wcz8ucmVxdWlyZWQgPz8gdHJ1ZSxcclxuICAgICAgICBhdXRvQ29tcGxldGU6IHByb3BzLmFkZGl0aW9uYWxJbnB1dFByb3BzPy5hdXRvQ29tcGxldGUgPz8gXCJvZmZcIixcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgW3NlYXJjaFRlcm0sIHNldFNlYXJjaFRlcm1dID0gdXNlU3RhdGU8c3RyaW5nPigpO1xyXG4gICAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtpc1NlbGVjdGVkT3B0aW9uSG92ZXJlZCwgc2V0SXNTZWxlY3RlZE9wdGlvbkhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFwcm9wcy5zZWxlY3RlZE9wdGlvbklkKSB7XHJcbiAgICAgICAgICAgIHNldFNlYXJjaFRlcm0oXCJcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3Byb3BzLnNlbGVjdGVkT3B0aW9uSWRdKTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHRoZSBmaWVsZCBpcyBtYW5kYXRvcnlcclxuICAgICAgICBpZiAoYWRkaXRpb25hbElucHV0UHJvcHMucmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgLy8gSWYgdGhlIGZpZWxkIGlzIHBvcHVsYXRlZFxyXG4gICAgICAgICAgICBpZiAocHJvcHMuc2VsZWN0ZWRPcHRpb25JZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHZhbGlkaXR5IG1lc3NhZ2UgKHVzaW5nIHRoZSBjdXN0b20gb25lIHBhc3NlZCBpbiwgaWYgc3VwcGxpZWQpXHJcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXJtSW5wdXRSZWYuY3VycmVudD8uc2V0Q3VzdG9tVmFsaWRpdHkoXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuY3VzdG9tVmFsaWRpdHk/LihzZWFyY2hUZXJtSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eSkgfHwgXCJcIlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFNob3cgYW4gdmFsaWRpdHkgZXJyb3JcclxuICAgICAgICAgICAgICAgIHNlYXJjaFRlcm1JbnB1dFJlZi5jdXJyZW50Py5zZXRDdXN0b21WYWxpZGl0eShcIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2FkZGl0aW9uYWxJbnB1dFByb3BzLCBwcm9wcy5zZWxlY3RlZE9wdGlvbklkLCBzZWFyY2hUZXJtSW5wdXRSZWZdKTtcclxuXHJcbiAgICBjb25zdCBNQVhfUkVTVUxUU19TSE9XTiA9IDEwO1xyXG5cclxuICAgIC8vIEZpbHRlcnMgdGhlIG9wdGlvbnMgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2VhcmNoVGVybVxyXG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zOiBUTG9va3VwT3B0aW9uW10gPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMub3B0aW9ucy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBpY2thYmxlT3B0aW9ucyA9IHByb3BzLm9wdGlvbnMudmFsdWUuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5pc1BpY2thYmxlKTtcclxuXHJcbiAgICAgICAgaWYgKCFzZWFyY2hUZXJtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwaWNrYWJsZU9wdGlvbnMuc29ydCgoYSwgYikgPT4gKGEucHJpbWFyeVRleHQgfHwgXCJcIikubG9jYWxlQ29tcGFyZShiLnByaW1hcnlUZXh0IHx8IFwiXCIpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHBpY2thYmxlT3B0aW9uc1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIE1hcCBlYWNoIG9wdGlvbiB0byBhIGNvdW50IG9mIGhvdyB3ZWxsIGl0IG1hdGNoZXMgYWdhaW5zdCBlYWNoIHdvcmQgb2YgdGhlIGBzZWFyY2hUZXJtYFxyXG4gICAgICAgICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaENvdW50OiBzZWFyY2hUZXJtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50cmltKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiIFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKCh3b3JkLCBpKSA9PiBpID09PSAwIHx8IHdvcmQubGVuZ3RoID49IDMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yZCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24ucHJpbWFyeVRleHQ/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMod29yZD8udG9Mb3dlckNhc2UoKSkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2Vjb25kYXJ5VGV4dD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh3b3JkPy50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLmxlbmd0aCxcclxuICAgICAgICAgICAgICAgIH0pKVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgbm9uLW1hdGNoZXNcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHsgbWF0Y2hDb3VudCB9KSA9PiBtYXRjaENvdW50ID4gMClcclxuXHJcbiAgICAgICAgICAgICAgICAvLyAoU2Vjb25kYXJ5KSBzb3J0IGJ5IHRoZSBuYW1lXHJcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEub3B0aW9uLnByaW1hcnlUZXh0IHx8IFwiXCIpLmxvY2FsZUNvbXBhcmUoYi5vcHRpb24ucHJpbWFyeVRleHQgfHwgXCJcIikpXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gKFByaW1hcnkpIFNvcnQgYnkgdGhlICdzdHJvbmdlc3QnIG1hdGNoXHJcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5tYXRjaENvdW50IC0gYS5tYXRjaENvdW50KVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJldHVybiB0aGUgb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAubWFwKCh7IG9wdGlvbiB9KSA9PiBvcHRpb24pXHJcbiAgICAgICAgKTtcclxuICAgIH0sIFtzZWFyY2hUZXJtLCBwcm9wcy5vcHRpb25zXSk7XHJcblxyXG4gICAgLy8gSGFuZGxlIGtleWJvYXJkIGtleSBwcmVzc2VzIHdoZW4gdGhlIGNvbnRyb2wgYGlzRm9jdXNlZGBcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5UHJlc3MgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGNsZWFyQnV0dG9uUmVmLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFkZGl0aW9uYWxJbnB1dFByb3BzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJCYWNrc3BhY2VcIjpcclxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5zZXRTZWxlY3RlZE9wdGlvbklkKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2VhcmNoVGVybUlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCksIDUwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5UHJlc3MpO1xyXG5cclxuICAgICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5UHJlc3MpO1xyXG4gICAgfSwgW2NsZWFyQnV0dG9uUmVmLCBzZWFyY2hUZXJtSW5wdXRSZWYsIHByb3BzLnNldFNlbGVjdGVkT3B0aW9uSWRdKTtcclxuXHJcbiAgICBjb25zdCBvdmVybGF5Q2FyZDogUmVhY3QuUmVhY3ROb2RlID0gKCgpID0+IHtcclxuICAgICAgICBpZiAoIXByb3BzLnNlbGVjdGVkT3B0aW9uSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXByb3BzLnNlbGVjdGVkT3B0aW9uQ2FyZEluZm8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWlzU2VsZWN0ZWRPcHRpb25Ib3ZlcmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHByb3BzLm9wdGlvbnMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBgcHJvcHMub3B0aW9ucy5sb2FkaW5nU3RhdHVzYCB0byBiZSAnbG9hZGVkJ1wiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gcHJvcHMub3B0aW9ucy52YWx1ZS5maW5kKChvKSA9PiBvLmlkID09PSBwcm9wcy5zZWxlY3RlZE9wdGlvbklkKTtcclxuXHJcbiAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGluZm8gPSBwcm9wcy5zZWxlY3RlZE9wdGlvbkNhcmRJbmZvKHNlbGVjdGVkT3B0aW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIDxJbmZvQ2FyZCBpbmZvPXtpbmZvfSAvPjtcclxuICAgIH0pKCk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgZGF0YS1uYW1lPXtwcm9wcy5uYW1lfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmaWVsZCBsb29rdXAtZmllbGRcIlxyXG4gICAgICAgICAgICBhcmlhLWRpc2FibGVkPXthZGRpdGlvbmFsSW5wdXRQcm9wcy5kaXNhYmxlZH1cclxuICAgICAgICAgICAgey4uLnByb3BzLmFkZGl0aW9uYWxMYWJlbFByb3BzfVxyXG4gICAgICAgICAgICBvbkZvY3VzPXsoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSl9XHJcbiAgICAgICAgICAgIG9uQmx1cj17KCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZC1sYWJlbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgeyFhZGRpdGlvbmFsSW5wdXRQcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcy5yZXF1aXJlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocHJvcHMuc2VsZWN0ZWRPcHRpb25JZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCc0NoZWNrTGcgY2xhc3NOYW1lPVwiY29tcGxldGVkLWljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJzQXN0ZXJpc2sgY2xhc3NOYW1lPVwicmVxdWlyZWQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy50b29sdGlwICYmIDxUb29sdGlwIG92ZXJsYXlDb250ZW50PXtwcm9wcy50b29sdGlwfT48L1Rvb2x0aXA+fXtcIiBcIn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAge3NlYXJjaFRlcm1JbnB1dFJlZi5jdXJyZW50Py52YWxpZGF0aW9uTWVzc2FnZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidmFsaWRpdHktbWVzc2FnZVwiPntzZWFyY2hUZXJtSW5wdXRSZWYuY3VycmVudD8udmFsaWRhdGlvbk1lc3NhZ2V9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIHtwcm9wcy5vcHRpb25zLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibG9hZGluZy1tZXNzYWdlXCIgdGl0bGU9e2BMb2FkaW5nICR7cHJvcHMucGx1cmFsT3B0aW9uc05hbWV9YH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbVNwaW5uZXIyIGNsYXNzTmFtZT1cInNwaW5cIiAvPiBMb2FkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICA8RG93bnNoaWZ0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoc2VsZWN0aW9uOiBMb29rdXBPcHRpb24gfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuc2V0U2VsZWN0ZWRPcHRpb25JZChzZWxlY3Rpb24uaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW09e3Byb3BzLm9wdGlvbnMudmFsdWUuZmluZCgoeCkgPT4geC5pZCA9PT0gcHJvcHMuc2VsZWN0ZWRPcHRpb25JZCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbUNoYW5nZWQ9eygpID0+IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtVG9TdHJpbmc9eyhpdGVtOiBUTG9va3VwT3B0aW9uIHwgbnVsbCkgPT4gKGl0ZW0gPyBpdGVtLnByaW1hcnlUZXh0IHx8IFwiXCIgOiBcIlwiKX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBnZXRJbnB1dFByb3BzLCBnZXRJdGVtUHJvcHMsIGdldE1lbnVQcm9wcywgaGlnaGxpZ2h0ZWRJbmRleCwgaXNPcGVuIH0pID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsb29rdXAtZmllbGQtY29udHJvbC13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcHJvcHMuZml4ZWRXaWR0aCAhPT0gdW5kZWZpbmVkID8gXCJmaXhlZFwiIDogXCJyZWxhdGl2ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cHJvcHMuZml4ZWRXaWR0aH1weGAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuc2VsZWN0ZWRPcHRpb25JZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzZWxlY3RlZC1vcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwcmltYXJ5LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiBzZXRJc1NlbGVjdGVkT3B0aW9uSG92ZXJlZCh0cnVlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0SXNTZWxlY3RlZE9wdGlvbkhvdmVyZWQoZmFsc2UpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHByb3BzLm9wdGlvbnMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9wdGlvbnMudmFsdWUuZmluZCgobykgPT4gby5pZCA9PT0gcHJvcHMuc2VsZWN0ZWRPcHRpb25JZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5wcmltYXJ5VGV4dCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIihObyBuYW1lKVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshYWRkaXRpb25hbElucHV0UHJvcHMuZGlzYWJsZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0dG9uIGNsZWFyLWJ1dHRvbiBkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHByb3BzLnNldFNlbGVjdGVkT3B0aW9uSWQobnVsbCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2NsZWFyQnV0dG9uUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkNsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PntvdmVybGF5Q2FyZH08L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmllbGQtY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17c2VhcmNoVGVybUlucHV0UmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRJbnB1dFByb3BzKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmFkZGl0aW9uYWxJbnB1dFByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXJtfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGVybShlLnRhcmdldC52YWx1ZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhpc09wZW4gfHwgaXNGb2N1c2VkKSAmJiBwcm9wcy5vcHRpb25zLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInN1Z2dlc3Rpb25zXCIgey4uLmdldE1lbnVQcm9wcygpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3VnZ2VzdGlvbnMtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzdWdnZXN0aW9ucy1oZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMucGx1cmFsT3B0aW9uc05hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzdWdnZXN0aW9ucy1oZWFkZXItcmVzdWx0cy1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPiBNQVhfUkVTVUxUU19TSE9XTiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5TaG93aW5nIHRvcCB7TUFYX1JFU1VMVFNfU0hPV059IHJlc3VsdHM8Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm91bmQge2ZpbHRlcmVkT3B0aW9ucy5sZW5ndGh9IHJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPT09IDEgPyBcIlwiIDogXCJzXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID09PSAwID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm8tcmVzdWx0cy1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8ge3Byb3BzLnBsdXJhbE9wdGlvbnNOYW1lfSBmb3VuZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkT3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKF8sIGkpID0+IGkgPCBNQVhfUkVTVUxUU19TSE9XTilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChvcHRpb24sIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzdWdnZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLmlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1pcy1mb2N1c3NlZC1vcHRpb249e2hpZ2hsaWdodGVkSW5kZXggPT09IGluZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldEl0ZW1Qcm9wcyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBgJHtvcHRpb24uaWR9JHtpbmRleH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IG9wdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwcmltYXJ5LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLnByaW1hcnlUZXh0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic2Vjb25kYXJ5LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLnNlY29uZGFyeVRleHR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyZWRPcHRpb25zLmxlbmd0aCA+IE1BWF9SRVNVTFRTX1NIT1dOICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInJlZmluZW1lbnQtbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZmluZSB5b3VyIHNlYXJjaCB0byBzZWUgbW9yZSB7cHJvcHMucGx1cmFsT3B0aW9uc05hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvRG93bnNoaWZ0PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VXaW5kb3dXaWR0aCB9IGZyb20gXCIuLi9Ib29rcy91c2VXaW5kb3dXaWR0aFwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSBcIi4uL01vZGVscy9GaWx0ZXJUeXBlXCI7XHJcbmltcG9ydCB7IExvb2t1cEZpZWxkIH0gZnJvbSBcIi4vRmllbGRzL0xvb2t1cEZpZWxkXCI7XHJcblxyXG4vKiogUmVwcmVzZW50cyB0aGUgZGlmZmVyZW50IHBvc3NpYmxlIHRpbGUgZ3JvdXAgbGF5b3V0cyBvbiB0aGUgQWR2YW5jZWQgRmlsdGVyIFNlY3Rpb24uICovXHJcbnR5cGUgVGlsZUdyaWRMYXlvdXQgPSBcIjQ6MFwiIHwgXCIzOjFcIiB8IFwiMjoyXCIgfCBcIjFcIjtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHRpbGUgbGF5b3V0IGJhc2VkIG9uIHBhZ2Ugc2l6ZS5cclxuICogQHBhcmFtIHtOdW1iZXJ9IHBhZ2VXaWR0aCBUaGUgd2lkdGggb2YgdGhlIGhvbWVwYWdlLlxyXG4gKiBAcmV0dXJucyBUaGUgY3VycmVudCB0aWxlIGxheW91dC5cclxuICovXHJcbmNvbnN0IGdldEN1cnJlbnRUaWxlTGF5b3V0ID0gKHBhZ2VXaWR0aDogbnVtYmVyKTogVGlsZUdyaWRMYXlvdXQgPT4ge1xyXG4gICAgaWYgKHBhZ2VXaWR0aCA+IDE2MDApIHtcclxuICAgICAgICByZXR1cm4gXCI0OjBcIjtcclxuICAgIH1cclxuICAgIGlmIChwYWdlV2lkdGggPiAxMzUzKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiMzoxXCI7XHJcbiAgICB9XHJcbiAgICBpZiAocGFnZVdpZHRoID4gMTExNSkge1xyXG4gICAgICAgIHJldHVybiBcIjI6MlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiMVwiO1xyXG59O1xyXG5cclxuLyoqIEZ1bmN0aW9uYWwgY29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgQWR2YW5jZWQgRmlsdGVyIFBhbmVsLCB1c2VkIHRvIGZpbHRlciByZWNvcmRzIG9uIGEgTWFuYWdlbWVudCBwYWdlLiovXHJcbmV4cG9ydCBmdW5jdGlvbiBBZHZhbmNlZEZpbHRlclBhbmVsKHByb3BzOiB7IGZpbHRlcnNUb0Rpc3BsYXk6IEZpbHRlclR5cGVbXTsgb25SZXNldDogKCkgPT4gdm9pZCB9KSB7XHJcbiAgICAvLyBVc2VkIHRvIHJlc2V0IHRoZSBDcmVhdGVkIEJ5IGZpZWxkLlxyXG4gICAgY29uc3QgW3Jlc2V0S2V5LCBzZXRSZXNldEtleV0gPSB1c2VTdGF0ZSgxKTtcclxuICAgIGNvbnN0IHJlc2V0Q3JlYXRlZEJ5RmllbGQgPSAoKSA9PiBzZXRSZXNldEtleShyZXNldEtleSArIDEpO1xyXG5cclxuICAgIC8vIFNldHMgdGhlIGJvcmRlciBsYXlvdXQgb24gdGhlIHBhZ2UgYmFzZWQgb24gcGFnZSBzaXplXHJcbiAgICBjb25zdCBbdGlsZUdyaWRMYXlvdXQsIHNldFRpbGVHcmlkTGF5b3V0XSA9IHVzZVN0YXRlKFwiXCIpO1xyXG5cclxuICAgIGNvbnN0IHBhZ2VXaWR0aCA9IHVzZVdpbmRvd1dpZHRoKCk7XHJcblxyXG4gICAgLy8gU2V0cyB0aGUgY3VycmVudCB0aWxlIGdyaWQgbGF5b3V0IG9uIGNoYW5nZSBlbGVtZW50IHNpemUgY2hhbmdlLlxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBzZXRUaWxlR3JpZExheW91dChnZXRDdXJyZW50VGlsZUxheW91dChwYWdlV2lkdGgpKTtcclxuICAgIH0sIFtwYWdlV2lkdGhdKTtcclxuXHJcbiAgICAvKiogUmVzZXRzIGFsbCBvZiB0aGUgQWR2YW5jZWQgU2VhcmNoIGZpbHRlcnMgYmFjayB0byBkZWZhdWx0LiAqL1xyXG4gICAgY29uc3QgcmVzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMgPSAoKSA9PiB7XHJcbiAgICAgICAgcHJvcHMuZmlsdGVyc1RvRGlzcGxheS5mb3JFYWNoKChmaWx0ZXJUb0Rpc3BsYXkpID0+IGZpbHRlclRvRGlzcGxheS5vbkNoYW5nZShudWxsKSk7XHJcbiAgICAgICAgcmVzZXRDcmVhdGVkQnlGaWVsZCgpO1xyXG4gICAgICAgIHByb3BzLm9uUmVzZXQoKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZGV0ZXJtaW5lRmlsdGVyVHlwZSA9IChmaWx0ZXJPYmplY3Q6IHN0cmluZywgZmlsdGVyVHlwZTogRmlsdGVyVHlwZSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmlsdGVyT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJvcHRpb25TZXRcIjoge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvblNldEZpbHRlcihmaWx0ZXJUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FzZSBcImxvb2t1cFwiOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTG9va3VwRmlsdGVyKGZpbHRlclR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBPcHRpb25TZXRGaWx0ZXIgPSAoZmlsdGVyVHlwZTogRmlsdGVyVHlwZSk6IFJlYWN0LlJlYWN0Tm9kZSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbHRlclR5cGUudHlwZSAhPT0gXCJvcHRpb25TZXRcIikge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgRXhwZWN0ZWQgYSBmaWx0ZXIgdHlwZSBvZiAnb3B0aW9uU2V0JyBidXQgd2FzICR7ZmlsdGVyVHlwZS50eXBlfSBgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFkdmFuY2VkLWZpbHRlci10aWxlXCIga2V5PXtmaWx0ZXJUeXBlLm5hbWV9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMz57ZmlsdGVyVHlwZS50aXRsZX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9e2ZpbHRlclR5cGUuc3R5bGVDbGFzc05hbWV9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyVHlwZS5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtvcHRpb24ubmFtZX0gY2xhc3NOYW1lPXtgJHtmaWx0ZXJUeXBlLmlucHV0VHlwZX0tbGlzdGB9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtmaWx0ZXJUeXBlLmlucHV0VHlwZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtvcHRpb24ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtvcHRpb24udmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtvcHRpb24ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2ZpbHRlclR5cGUuYXNzb2NpYXRlZExpc3QuaW5jbHVkZXMob3B0aW9uLnZhbHVlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gZmlsdGVyVHlwZS5vbkNoYW5nZShvcHRpb24ubmFtZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb24ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAge3RpbGVHcmlkTGF5b3V0ICE9PSBcIjFcIiAmJiA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlclwiIGtleT17YCR7ZmlsdGVyVHlwZS5uYW1lfS1ib3JkZXJgfT48L2Rpdj59XHJcbiAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IExvb2t1cEZpbHRlciA9IChmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlKTogUmVhY3QuUmVhY3ROb2RlID0+IHtcclxuICAgICAgICBpZiAoZmlsdGVyVHlwZS50eXBlICE9PSBcImxvb2t1cFwiKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBFeHBlY3RlZCBhIGZpbHRlciB0eXBlIG9mICdsb29rdXAnIGJ1dCB3YXMgJHtmaWx0ZXJUeXBlLnR5cGV9IGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgW3NlbGVjdGVkT3B0aW9uSWQsIHNldFNlbGVjdGVkT3B0aW9uSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gICAgICAgIC8vIElmIHRoZSBsb29rdXAgaXMgcmVzZXQsIHRoZW4gY2xlYXIgdGhlIHNlbGVjdGVkIG9wdGlvblxyXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uSWQobnVsbCk7XHJcbiAgICAgICAgfSwgW3Jlc2V0S2V5LCBzZXRTZWxlY3RlZE9wdGlvbklkXSk7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFkdmFuY2VkLWZpbHRlci10aWxlXCIga2V5PXtmaWx0ZXJUeXBlLm5hbWV9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMz57ZmlsdGVyVHlwZS50aXRsZX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TG9va3VwRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cmVzZXRLZXl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtmaWx0ZXJUeXBlLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtzZWxlY3RlZE9wdGlvbklkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsT3B0aW9uc05hbWU9e2ZpbHRlclR5cGUucGx1cmFsT3B0aW9uc05hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtmaWx0ZXJUeXBlLm9wdGlvbnN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbklkPXsoc2VsZWN0ZWRPcHRpb25JZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uSWQoc2VsZWN0ZWRPcHRpb25JZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZS5vbkNoYW5nZShzZWxlY3RlZE9wdGlvbklkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBwbGFjZWhvbGRlcjogZmlsdGVyVHlwZS5wbGFjZWhvbGRlclRleHQsIHJlcXVpcmVkOiBmYWxzZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Lz5cclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWR2YW5jZWQtZmlsdGVycy1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhZHZhbmNlZC1maWx0ZXItc2VjdGlvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuZmlsdGVyc1RvRGlzcGxheS5tYXAoKGZpbHRlcikgPT4gZGV0ZXJtaW5lRmlsdGVyVHlwZShmaWx0ZXIudHlwZSwgZmlsdGVyKSl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicmVzZXQtZmlsdGVycyBkZWZhdWx0XCIgb25DbGljaz17cmVzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnN9PlxyXG4gICAgICAgICAgICAgICAgICAgIFJlc2V0IEZpbHRlcnNcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn1cclxuIiwiaW1wb3J0IHsgRmlsdGVyVGlsZUluZm8gfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyVGlsZUluZm9cIjtcclxuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tIFwiLi9JbWFnZVwiO1xyXG5cclxuLyoqIENvbXBvbmVudCByZXByZXNlbnRpbmcgYSB0aWxlIHRvIGFwcGx5IGZpbHRlcnMgaW4gdGhlIE1hbmFnZW1lbnQgUGFuZWwgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZpbHRlclRpbGU8VFJlY29yZD4ocHJvcHM6IHtcclxuICAgIHRpbGU6IEZpbHRlclRpbGVJbmZvPFRSZWNvcmQ+O1xyXG4gICAgc2VsZWN0ZWRUaWxlSWRzOiBzdHJpbmdbXTtcclxuICAgIHNldFNlbGVjdGVkVGlsZUlkczogKHNlbGVjdGVkVGlsZUlkczogc3RyaW5nW10pID0+IHZvaWQ7XHJcbiAgICBvbkhvdmVyTWVzc2FnZT86IHN0cmluZztcclxufSkge1xyXG4gICAgLyoqIFBlcmZvcm0gYWN0aW9ucyB3aGVuIGEgdGlsZSBpcyBjbGlja2VkLiAqL1xyXG4gICAgY29uc3Qgb25DbGlja1RpbGUgPSAoKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRpbGUgaXMgY3VycmVudGx5IHNlbGVjdGVkLlxyXG4gICAgICAgIGlmIChwcm9wcy5zZWxlY3RlZFRpbGVJZHMuaW5jbHVkZXMocHJvcHMudGlsZS5pZCkpIHtcclxuICAgICAgICAgICAgLy8gU2V0IG5vbmUgb2YgdGhlIHRpbGVzIHRvIHNlbGVjdGVkIC0gdGhpcyBpcyB0aGUgc2FtZSBhcyB0aGVtIGFsbCBiZWluZyBzZWxlY3RlZC5cclxuICAgICAgICAgICAgcHJvcHMuc2V0U2VsZWN0ZWRUaWxlSWRzKFtdKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTZXQgdGhlIGluZGl2aWR1YWwgdGlsZSB0byBzZWxlY3RlZC5cclxuICAgICAgICAgICAgcHJvcHMuc2V0U2VsZWN0ZWRUaWxlSWRzKFtwcm9wcy50aWxlLmlkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBDcmVhdGUgYW4gb2JqZWN0IHRvIGR5bmFtaWNhbGx5IGFkZCBkYXRhIGF0dHJpYnV0ZXMuXHJcbiAgICBsZXQgYXR0cmlidXRlcyA9IHt9O1xyXG5cclxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBzZWxlY3RlZCB0aWxlcywgZG9uJ3Qgc2V0IHRoZSAnZGF0YS1zZWxlY3RlZCcgYXR0cmlidXRlIChmb3IgZGVmYXVsdCBzdHlsaW5nKS5cclxuICAgIGlmIChwcm9wcy5zZWxlY3RlZFRpbGVJZHMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgYXR0cmlidXRlcyA9IHtcclxuICAgICAgICAgICAgXCJkYXRhLXNlbGVjdGVkXCI6IHByb3BzLnNlbGVjdGVkVGlsZUlkcy5pbmNsdWRlcyhwcm9wcy50aWxlLmlkKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItdGlsZVwiIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2tUaWxlKCl9IHsuLi5hdHRyaWJ1dGVzfSB0aXRsZT17cHJvcHMub25Ib3Zlck1lc3NhZ2V9PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+e3Byb3BzLnRpbGUubGFiZWx9PC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImNvdW50XCI+e3Byb3BzLnRpbGUudmFsdWUubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiA/IHByb3BzLnRpbGUudmFsdWUuZGF0YSA6IFwiKlwifTwvc3Bhbj5cclxuICAgICAgICAgICAgPEltYWdlIGNsYXNzTmFtZT1cImltYWdlXCIgc3JjPXtwcm9wcy50aWxlLmltYWdlUGF0aH0gaGVpZ2h0PXs0OH0gLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn1cclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IEZhU2VhcmNoIH0gZnJvbSBcInJlYWN0LWljb25zL2ZhXCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJHcm91cCB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJHcm91cFwiO1xyXG5pbXBvcnQgeyBTdW1tYXJ5U2VjdGlvbiB9IGZyb20gXCIuLi9UeXBlcy9TdW1tYXJ5U2VjdGlvblwiO1xyXG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlclBhbmVsIH0gZnJvbSBcIi4vQWR2YW5jZWRGaWx0ZXJQYW5lbFwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJUaWxlIH0gZnJvbSBcIi4vRmlsdGVyVGlsZVwiO1xyXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSBcIi4vVG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSBcIi4uL01vZGVscy9GaWx0ZXJUeXBlXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcblxyXG4vKiogQ29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgbWFuYWdlbWVudCBwYW5lbCBvZiB0aGUgcGFnZSAqL1xyXG5leHBvcnQgZnVuY3Rpb24gTWFuYWdlbWVudFBhbmVsPFRSZWNvcmQ+KHByb3BzOiB7XHJcbiAgICBzZXRTZWFyY2hCYXJDb250ZW50OiAoc2VhcmNoSW5wdXQ6IHN0cmluZykgPT4gdm9pZDtcclxuICAgIGZpbHRlckdyb3VwczogRmlsdGVyR3JvdXA8VFJlY29yZD5bXSB8IG51bGw7XHJcbiAgICBwbGFjZWhvbGRlclRleHQ6IHN0cmluZztcclxuICAgIGdldFN1bW1hcnlTZWN0aW9uczogKGlzQWR2YW5jZWRGaWx0ZXJzU2hvd246IGJvb2xlYW4pID0+IFN1bW1hcnlTZWN0aW9uW107XHJcbiAgICBmaWx0ZXJzVG9EaXNwbGF5OiBGaWx0ZXJUeXBlW107XHJcbn0pIHtcclxuICAgIGNvbnN0IFtzZWFyY2hJbnB1dCwgc2V0U2VhcmNoSW5wdXRdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgICBjb25zdCBbc2hvd0FkdmFuY2VkRmlsdGVycywgc2V0U2hvd0FkdmFuY2VkRmlsdGVyc10gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBpbml0aWFsRmlsdGVyR3JvdXBzID0gdXNlUmVmKHByb3BzLmZpbHRlckdyb3Vwcyk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHNob3dBZHZhbmNlZEZpbHRlcnMpIHtcclxuICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7IHR5cGU6IFwiTWFuYWdlbWVudCBQYW5lbCAtIEFkdmFuY2VkIEZpbHRlciBQYW5lbCBvcGVuZWRcIiB9KTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbc2hvd0FkdmFuY2VkRmlsdGVyc10pO1xyXG5cclxuICAgIC8qKiBGdW5jdGlvbiB3aGljaCBkZXRlcm1pbmVzIHdoYXQgdHlwZSBvZiBjb250ZW50IHRvIHJlbmRlciBpbiBhIHRpbGUgY29tcG9uZW50LiAqL1xyXG4gICAgZnVuY3Rpb24gcmVuZGVyVGlsZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgY29ycmVjdFN1bW1hcnkgPSBwcm9wcy5nZXRTdW1tYXJ5U2VjdGlvbnMoc2hvd0FkdmFuY2VkRmlsdGVycykubWFwKChzdW1tYXJ5U2VjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHN1bW1hcnlTZWN0aW9uLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJidXR0b24tbGlua1wiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtzdW1tYXJ5U2VjdGlvbi50eXBlfSArICR7c3VtbWFyeVNlY3Rpb24ubGFiZWx9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHlwZT17c3VtbWFyeVNlY3Rpb24udHlwZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN1bW1hcnktc2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPntzdW1tYXJ5U2VjdGlvbi5sYWJlbH08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VtbWFyeVNlY3Rpb24udG8ubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYnV0dG9uXCIgdG89e3N1bW1hcnlTZWN0aW9uLnRvLmRhdGF9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VtbWFyeVNlY3Rpb24uYnV0dG9uTGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhc2UgXCJjb3VudFwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtzdW1tYXJ5U2VjdGlvbi50eXBlfSArICR7c3VtbWFyeVNlY3Rpb24ubGFiZWx9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHlwZT17c3VtbWFyeVNlY3Rpb24udHlwZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN1bW1hcnktc2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPntzdW1tYXJ5U2VjdGlvbi5sYWJlbH08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdW1tYXJ5U2VjdGlvbi52YWx1ZS5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiID8gc3VtbWFyeVNlY3Rpb24udmFsdWUuZGF0YSA6IFwiKlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3N1bW1hcnlTZWN0aW9uLnR5cGV9ICsgJHtzdW1tYXJ5U2VjdGlvbi5sYWJlbH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10eXBlPXtzdW1tYXJ5U2VjdGlvbi50eXBlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic3VtbWFyeS1zZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+e3N1bW1hcnlTZWN0aW9uLmxhYmVsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1bW1hcnlTZWN0aW9uLnZhbHVlLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgPyBzdW1tYXJ5U2VjdGlvbi52YWx1ZS5kYXRhIDogXCIqXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhc2UgXCJsaW5rXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3N1bW1hcnlTZWN0aW9uLnR5cGV9ICsgJHtzdW1tYXJ5U2VjdGlvbi5sYWJlbH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10eXBlPXtzdW1tYXJ5U2VjdGlvbi50eXBlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic3VtbWFyeS1zZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+e3N1bW1hcnlTZWN0aW9uLmxhYmVsfTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdW1tYXJ5U2VjdGlvbi50by5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGluayB0bz17c3VtbWFyeVNlY3Rpb24udG8uZGF0YX0+e3N1bW1hcnlTZWN0aW9uLmJ1dHRvbkxhYmVsfTwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5pbXBsZW1lbnRlZCBzdW1tYXJ5IHNlY3Rpb24gdHlwZTogJyR7KHN1bW1hcnlTZWN0aW9uIGFzIGFueSkudHlwZX0nYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gY29ycmVjdFN1bW1hcnk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3VtbWFyeVNlY3Rpb24gPSByZW5kZXJUaWxlQ29udGVudCgpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYW5hZ2VtZW50LXBhbmVsXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VhcmNoLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlNlYXJjaDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNlYXJjaC1iYXItZ3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5zZXRTZWFyY2hCYXJDb250ZW50KHNlYXJjaElucHV0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJNYW5hZ2VtZW50IFBhbmVsIC0gU2VhcmNoIHN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFRlcm06IHNlYXJjaElucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidmlldy1zZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2VhcmNoLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoSW5wdXQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VhcmNoSW5wdXR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cHJvcHMucGxhY2Vob2xkZXJUZXh0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17cHJvcHMucGxhY2Vob2xkZXJUZXh0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNlYXJjaC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJTZWFyY2ggUmVzdWx0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBwcm9wcy5zZXRTZWFyY2hCYXJDb250ZW50KHNlYXJjaElucHV0KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWFyY2ggUmVzdWx0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGYVNlYXJjaCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHtwcm9wcy5maWx0ZXJHcm91cHMgIT09IG51bGwgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLWdyb3Vwc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuZmlsdGVyR3JvdXBzLm1hcCgoZmlsdGVyR3JvdXApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItZ3JvdXBcIiBrZXk9e2ZpbHRlckdyb3VwLmF0dHJpYnV0ZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyIGJ5IHtmaWx0ZXJHcm91cC5sYWJlbEVsZW1lbnR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyR3JvdXAudG9vbHRpcEVsZW1lbnQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIG92ZXJsYXlDb250ZW50PXtmaWx0ZXJHcm91cC50b29sdGlwRWxlbWVudH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLXRpbGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyR3JvdXAudGlsZXMubWFwKCh0aWxlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbHRlclRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt0aWxlLmlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZT17dGlsZS5vbkhvdmVyTWVzc2FnZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZT17dGlsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUaWxlSWRzPXt0aWxlLnNlbGVjdGVkVGlsZUlkc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzPXsoaWRzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlLnNldFNlbGVjdGVkVGlsZUlkcyhpZHMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiTWFuYWdlbWVudCBQYW5lbCAtIEZpbHRlciBUaWxlIGNsaWNrZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTmFtZTogdGlsZS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5maWx0ZXJzVG9EaXNwbGF5Lmxlbmd0aCAhPT0gMCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFkdmFuY2VkLWZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhZHZhbmNlZC1maWx0ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFkdmFuY2VkLWZpbHRlci1idXR0b24taWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWlzLW9wZW49e3Nob3dBZHZhbmNlZEZpbHRlcnN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57YD5gfTwvc3Bhbj57XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFkdmFuY2VkLWZpbHRlci1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkdmFuY2VkRmlsdGVycyghc2hvd0FkdmFuY2VkRmlsdGVycyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkdmFuY2VkIEZpbHRlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dBZHZhbmNlZEZpbHRlcnMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWR2YW5jZWRGaWx0ZXJQYW5lbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyc1RvRGlzcGxheT17cHJvcHMuZmlsdGVyc1RvRGlzcGxheX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVzZXQ9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgc2VhcmNoIHRlcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hJbnB1dChcIlwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgYWxsIGZpbHRlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5maWx0ZXJHcm91cHMhLmZvckVhY2goKGZpbHRlckdyb3VwLCBmaWx0ZXJHcm91cEluZGV4KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJHcm91cC50aWxlcy5mb3JFYWNoKCh0aWxlLCB0aWxlSW5kZXgpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlLnNldFNlbGVjdGVkVGlsZUlkcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmlsdGVyR3JvdXBzLmN1cnJlbnQhW2ZpbHRlckdyb3VwSW5kZXhdLnRpbGVzW3RpbGVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlbGVjdGVkVGlsZUlkc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIHtzdW1tYXJ5U2VjdGlvbi5sZW5ndGggPiAwICYmIDxkaXYgY2xhc3NOYW1lPVwic3VtbWFyeS1zZWN0aW9uc1wiPntzdW1tYXJ5U2VjdGlvbn08L2Rpdj59XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG59XHJcbiIsImltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBhIHBvdGVudGlhbGx5IGxvYWRpbmcgb2JqZWN0IHRvIGFub3RoZXIgbG9hZGluZyBvYmplY3QsIHRyYW5zZm9ybWluZyB0aGUgZGF0YSBpZiBsb2FkZWQuXHJcbiAqIEBwYXJhbSBsb2FkaW5nRGF0YSBMb2FkaW5nIGRhdGEgdG8gdHJhbnNmb3JtLlxyXG4gKiBAcGFyYW0gaWZMb2FkZWQgVHJhbnNmb3JtYXRpb24gdG8gcGVyZm9ybSBpZiB0aGUgZGF0YSBpcyBsb2FkZWQuXHJcbiAqIEByZXR1cm5zIE5ldyBsb2FkaW5nIGRhdGEgb2JqZWN0LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvTG9hZGluZ0RhdGE8VEluLCBUT3V0Pihsb2FkaW5nRGF0YTogTG9hZGluZ0RhdGE8VEluPiwgaWZMb2FkZWQ6IChkYXRhOiBUSW4pID0+IFRPdXQpOiBMb2FkaW5nRGF0YTxUT3V0PiB7XHJcbiAgICBpZiAobG9hZGluZ0RhdGEubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IGxvYWRpbmdEYXRhLmxvYWRpbmdTdGF0dXMgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBpZkxvYWRlZChsb2FkaW5nRGF0YS5kYXRhKSB9O1xyXG59XHJcbiIsImltcG9ydCB7IENhc2VUeXBlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VUeXBlXCI7XHJcbmltcG9ydCB7IEluY2lkZW50U3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9JbmNpZGVudFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgdG9Mb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9IZWxwZXJzL3RvTG9hZGluZ0RhdGFcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlIH0gZnJvbSBcIi4uL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVcIjtcclxuaW1wb3J0IHsgRmlsdGVyR3JvdXAgfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyR3JvdXBcIjtcclxuaW1wb3J0IHsgRmlsdGVyZWRJbmNpZGVudHMgfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyTW9kZWxzL0ZpbHRlcmVkSW5jaWRlbnRzXCI7XHJcblxyXG5jb25zdCBXSVRIX0JJU1RFQ0hfVE9PTFRJUCA9IFwiQ2FzZXMgaW4tcHJvZ3Jlc3MgYW5kIGN1cnJlbnRseSBiZWluZyB3b3JrZWQgb24uXCI7XHJcbmNvbnN0IFdJVEhfWU9VX1RPT0xUSVAgPSBcIkNhc2VzIGF3YWl0aW5nIGZlZWRiYWNrIG9yIGNvbmZpcm1hdGlvbiBvZiByZXNvbHV0aW9uLlwiO1xyXG5jb25zdCBPTl9IT0xEX1RPT0xUSVAgPSBcIkNhc2VzIHdoZXJlIHRoZSByZXNvbHV0aW9uIG9mIENhc2UgaXMgb24gaG9sZCBhcyBhZ3JlZWQgd2l0aCB5b3UuXCI7XHJcblxyXG5jb25zdCBJTkNJREVOVF9UT09MVElQID0gXCJBIGZhdWx0IG9yIGltcGFpcm1lbnQgY2F1c2luZyBhIHJlZHVjdGlvbiBpbiBzZXJ2aWNlLlwiO1xyXG5jb25zdCBTVVBQT1JUX1JFUVVFU1RfVE9PTFRJUCA9IFwiQSBmb3JtYWwgcmVxdWVzdCBmb3Igc29tZXRoaW5nIHRvIGJlIHByb3ZpZGVkLlwiO1xyXG5jb25zdCBDSEFOR0VfVE9PTFRJUCA9IFwiQW4gYW1lbmRtZW50IHRvIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGEgc2VydmljZS5cIjtcclxuY29uc3QgUFJPQkxFTV9UT09MVElQID0gXCJBbiBvbmdvaW5nIHJlZHVjdGlvbiBpbiBzZXJ2aWNlLCBmb3Igd2hpY2ggYSByZXNvbHV0aW9uIGhhcyB5ZXQgdG8gYmUgZGV0ZXJtaW5lZC5cIjtcclxuXHJcbi8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgQ2FzZSBmaWx0ZXIgZ3JvdXBzIHRvIGRpc3BsYXkgb24gdGhlIE1hbmFnZW1lbnQgUGFuZWwuICovXHJcbmV4cG9ydCBjb25zdCBnZXRDYXNlc0ZpbHRlckdyb3VwcyA9IChcclxuICAgIGZpbHRlcmVkSW5jaWRlbnRzOiBGaWx0ZXJlZEluY2lkZW50cyxcclxuICAgIHNlbGVjdGVkU3RhdHVzVGlsZUlkczogc3RyaW5nW10sXHJcbiAgICBzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHM6IFJlYWN0LkRpc3BhdGNoPFJlYWN0LlNldFN0YXRlQWN0aW9uPHN0cmluZ1tdPj4sXHJcbiAgICBzZWxlY3RlZFR5cGVUaWxlSWRzOiBzdHJpbmdbXSxcclxuICAgIHNldFNlbGVjdGVkVHlwZVRpbGVJZHM6IChzZWxlY3RlZFRpbGVUeXBlSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxyXG4pOiBGaWx0ZXJHcm91cDxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+W10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxhYmVsRWxlbWVudDogPD5TdGF0dXM8Lz4sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJTdGF0dXNcIixcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnQ6IChcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+V2l0aCBCaXN0ZWNoPC9zdHJvbmc+IC0ge1dJVEhfQklTVEVDSF9UT09MVElQfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5XaXRoIFlvdTwvc3Ryb25nPiAtIHtXSVRIX1lPVV9UT09MVElQfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5PbiBIb2xkPC9zdHJvbmc+IC0ge09OX0hPTERfVE9PTFRJUH1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGlsZXM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJjYXNlLXR5cGUtd2l0aC1iaXN0ZWNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUaWxlSWRzOiBzZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAoaW5jaWRlbnQpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY2lkZW50U3RhdHVzQ29kZS5PcGVuLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jaWRlbnRTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zdXJlIFJlcXVlc3RlZFwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhpbmNpZGVudC5zdGF0dXNjb2RlKSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgV2l0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaXN0ZWNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTG9hZGluZ0RhdGEoZmlsdGVyZWRJbmNpZGVudHMuY2FzZXNXaXRoQmlzdGVjaCwgKGluY2lkZW50cykgPT4gaW5jaWRlbnRzLmxlbmd0aCksXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoOiBcIi9jYXNlLW1hbmFnZW1lbnQtc3RhdHVzLXdpdGgtYmlzdGVjaC5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogV0lUSF9CSVNURUNIX1RPT0xUSVAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBcImNhc2UtdHlwZS13aXRoLXlvdVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKGluY2lkZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbSW5jaWRlbnRTdGF0dXNDb2RlW1wiUGVuZGluZyBGZWVkYmFja1wiXSwgSW5jaWRlbnRTdGF0dXNDb2RlLlJlc29sdmVkXS5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2lkZW50LnN0YXR1c2NvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgV2l0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Mb2FkaW5nRGF0YShmaWx0ZXJlZEluY2lkZW50cy5jYXNlc1dpdGhZb3UsIChpbmNpZGVudHMpID0+IGluY2lkZW50cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvY2FzZS1tYW5hZ2VtZW50LXN0YXR1cy13aXRoLXlvdS5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogV0lUSF9ZT1VfVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiY2FzZS10eXBlLW9uLWhvbGRcIixcclxuICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZFRpbGVJZHM6IHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFRpbGVJZHM6IHNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChpbmNpZGVudCkgPT4gaW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiT24gSG9sZFwiXSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9sZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b0xvYWRpbmdEYXRhKGZpbHRlcmVkSW5jaWRlbnRzLmNhc2VzT25Ib2xkLCAoaW5jaWRlbnRzKSA9PiBpbmNpZGVudHMubGVuZ3RoKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg6IFwiL2Nhc2UtbWFuYWdlbWVudC1zdGF0dXMtb24taG9sZC5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogT05fSE9MRF9UT09MVElQLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGFiZWxFbGVtZW50OiA8PlR5cGU8Lz4sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJUeXBlXCIsXHJcbiAgICAgICAgICAgIHRvb2x0aXBFbGVtZW50OiAoXHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkluY2lkZW50PC9zdHJvbmc+IC0ge0lOQ0lERU5UX1RPT0xUSVB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlN1cHBvcnQgUmVxdWVzdDwvc3Ryb25nPiAtIHtTVVBQT1JUX1JFUVVFU1RfVE9PTFRJUH1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Q2hhbmdlPC9zdHJvbmc+IC0ge0NIQU5HRV9UT09MVElQfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Qcm9ibGVtPC9zdHJvbmc+IC0ge1BST0JMRU1fVE9PTFRJUH1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGlsZXM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJjYXNlLXR5cGUtc3VwcG9ydC1yZXF1ZXN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFR5cGVUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRUeXBlVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChpbmNpZGVudCkgPT4gaW5jaWRlbnQuY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZVtcIlN1cHBvcnQgUmVxdWVzdFwiXSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcG9ydFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b0xvYWRpbmdEYXRhKGZpbHRlcmVkSW5jaWRlbnRzLnN1cHBvcnRSZXF1ZXN0cywgKGluY2lkZW50cykgPT4gaW5jaWRlbnRzLmxlbmd0aCksXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoOiBcIi9jYXNlLXR5cGUtc2VydmljZS1yZXF1ZXN0LnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uSG92ZXJNZXNzYWdlOiBTVVBQT1JUX1JFUVVFU1RfVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiY2FzZS10eXBlLWluY2lkZW50XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFR5cGVUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRUeXBlVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChpbmNpZGVudCkgPT4gaW5jaWRlbnQuY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZS5JbmNpZGVudCxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJJbmNpZGVudHNcIixcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Mb2FkaW5nRGF0YShmaWx0ZXJlZEluY2lkZW50cy5pbmNpZGVudHMsIChpbmNpZGVudHMpID0+IGluY2lkZW50cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvY2FzZS10eXBlLWluY2lkZW50LnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uSG92ZXJNZXNzYWdlOiBJTkNJREVOVF9UT09MVElQLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJjYXNlLXR5cGUtY2hhbmdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFR5cGVUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRUeXBlVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChpbmNpZGVudCkgPT4gaW5jaWRlbnQuY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZS5DaGFuZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQ2hhbmdlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b0xvYWRpbmdEYXRhKGZpbHRlcmVkSW5jaWRlbnRzLmNoYW5nZXMsIChpbmNpZGVudHMpID0+IGluY2lkZW50cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvY2FzZS10eXBlLWNoYW5nZS5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogQ0hBTkdFX1RPT0xUSVAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBcImNhc2UtdHlwZS1wcm9ibGVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFR5cGVUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRUeXBlVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChpbmNpZGVudCkgPT4gaW5jaWRlbnQuY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZS5Qcm9ibGVtLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlByb2JsZW1zXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTG9hZGluZ0RhdGEoZmlsdGVyZWRJbmNpZGVudHMucHJvYmxlbXMsIChpbmNpZGVudHMpID0+IGluY2lkZW50cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvY2FzZS10eXBlLXByb2JsZW0uc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgb25Ib3Zlck1lc3NhZ2U6IFBST0JMRU1fVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcbn07XHJcbiIsImltcG9ydCB7IEJzU29ydERvd24sIEJzU29ydFVwIH0gZnJvbSBcInJlYWN0LWljb25zL2JzXCI7XHJcbmltcG9ydCB7IFNvcnRhYmxlVGFibGVIZWFkZXJDb2x1bW5zIH0gZnJvbSBcIi4uL1R5cGVzL1NvcnRhYmxlVGFibGVIZWFkZXJDb2x1bW5zXCI7XHJcblxyXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciB0aGUgc29ydGluZyBwcm9wcyBvZiB0aGUgdGFibGUgaGVhZGVyIGNlbGwuICovXHJcbnR5cGUgU29ydGluZ1Byb3BzID1cclxuICAgIHwge1xyXG4gICAgICAgICAgc29ydGluZ0VuYWJsZWQ6IHRydWU7XHJcbiAgICAgICAgICBzb3J0ZWRDb2x1bW46IFNvcnRhYmxlVGFibGVIZWFkZXJDb2x1bW5zO1xyXG4gICAgICAgICAgc2V0U29ydGVkQ29sdW1uOiAoaXNTb3J0ZWRBc2NlbmRpbmc6IFNvcnRhYmxlVGFibGVIZWFkZXJDb2x1bW5zKSA9PiB2b2lkO1xyXG4gICAgICAgICAgaXNTb3J0ZWRBc2NlbmRpbmc6IGJvb2xlYW47XHJcbiAgICAgICAgICBzZXRJc1NvcnRlZEFzY2VuZGluZzogKGlzU29ydGVkQXNjZW5kaW5nOiBib29sZWFuKSA9PiB2b2lkO1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHNvcnRpbmdFbmFibGVkOiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfCB1bmRlZmluZWQ7XHJcblxyXG4vKiogQ29tcG9uZW50IGZvciBhIGhlYWRlciBjZWxsIG9mIGEgdGFibGUgKi9cclxuZXhwb3J0IGNvbnN0IFRhYmxlSGVhZGVyQ2VsbCA9IChwcm9wczoge1xyXG4gICAgY29sdW1uSGVhZGVyOiBzdHJpbmc7XHJcbiAgICBmaWVsZE5hbWU6IFNvcnRhYmxlVGFibGVIZWFkZXJDb2x1bW5zO1xyXG4gICAgaXNEYXRlPzogYm9vbGVhbjtcclxuICAgIHNvcnRpbmdQcm9wcz86IFNvcnRpbmdQcm9wcztcclxuICAgIGhlYWRlcldpZHRoPzogc3RyaW5nO1xyXG59KSA9PiB7XHJcbiAgICBjb25zdCBzb3J0aW5nUHJvcHMgPSBwcm9wcy5zb3J0aW5nUHJvcHM7XHJcblxyXG4gICAgaWYgKHNvcnRpbmdQcm9wcz8uc29ydGluZ0VuYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICByZXR1cm4gPHRoIGNsYXNzTmFtZT17cHJvcHMuZmllbGROYW1lfT57cHJvcHMuY29sdW1uSGVhZGVyfTwvdGg+O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzU29ydGVkOiBib29sZWFuID0gcHJvcHMuZmllbGROYW1lID09PSBzb3J0aW5nUHJvcHMuc29ydGVkQ29sdW1uO1xyXG5cclxuICAgIGNvbnN0IG9uQ2xpY2tDb2x1bW4gPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzU29ydGVkKSB7XHJcbiAgICAgICAgICAgIHNvcnRpbmdQcm9wcy5zZXRJc1NvcnRlZEFzY2VuZGluZyghc29ydGluZ1Byb3BzLmlzU29ydGVkQXNjZW5kaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNvcnRpbmdQcm9wcy5zZXRTb3J0ZWRDb2x1bW4ocHJvcHMuZmllbGROYW1lKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgc29ydEljb24gPSBzb3J0aW5nUHJvcHMuaXNTb3J0ZWRBc2NlbmRpbmcgPyAoXHJcbiAgICAgICAgPEJzU29ydFVwIHNpemU9ezIwfSBjbGFzc05hbWU9XCJzb3J0LWljb25cIiAvPlxyXG4gICAgKSA6IChcclxuICAgICAgICA8QnNTb3J0RG93biBzaXplPXsyMH0gY2xhc3NOYW1lPVwic29ydC1pY29uXCIgLz5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8dGhcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtwcm9wcy5maWVsZE5hbWV9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2tDb2x1bW59XHJcbiAgICAgICAgICAgIHN0eWxlPXtwcm9wcy5oZWFkZXJXaWR0aCA/IHsgd2lkdGg6IHByb3BzLmhlYWRlcldpZHRoIH0gOiB7fX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIHtwcm9wcy5jb2x1bW5IZWFkZXJ9IHtpc1NvcnRlZCAmJiBzb3J0SWNvbn1cclxuICAgICAgICA8L3RoPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgQ2FzZVRhYmxlSGVhZGVyQ2VsbCB9IGZyb20gXCIuLi9UeXBlcy9UYWJsZUhlYWRlckNlbGxzL0Nhc2VUYWJsZUhlYWRlckNlbGxcIjtcclxuXHJcbi8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgdGFibGUgaGVhZGVyIGNlbGxzIHRvIGRpc3BsYXkgaW4gdGhlIENhc2VzIFRhYmxlLiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q2FzZVRhYmxlSGVhZGVyQ2VsbHMgPSAoKTogQ2FzZVRhYmxlSGVhZGVyQ2VsbFtdID0+IHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIkNhc2UgTnVtYmVyXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJ0aWNrZXRudW1iZXJcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJDYXNlIFRpdGxlXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJ0aXRsZVwiLFxyXG4gICAgICAgICAgICBpc1NvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogMixcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIkNhc2UgVHlwZVwiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwiY2FzZXR5cGVjb2RlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAzLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiQ3JlYXRlZCBPblwiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwiY3JlYXRlZG9uXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiA0LFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiUHJpbWFyeSBDb250YWN0XCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICBpc1NvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogNSxcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIkNhc2UgUHJpb3JpdHlcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcInByaW9yaXR5Y29kZVwiLFxyXG4gICAgICAgICAgICBpc1NvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogNixcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIkNhc2UgU3RhdHVzXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJzdGF0dXNjb2RlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcbn07XHJcbiIsImltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuaW1wb3J0IHsgUEFHRVMgfSBmcm9tIFwiLi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgU3VtbWFyeVNlY3Rpb24gfSBmcm9tIFwiLi4vVHlwZXMvU3VtbWFyeVNlY3Rpb25cIjtcclxuXHJcbi8qKlxyXG4gKiBEZXNjcmlwdGlvbiBvZiB0aGUgQ2FzZXMgc3VtbWFyeSBzZWN0aW9ucyB0byBkaXNwbGF5IG9uIHRoZSBNYW5hZ2VtZW50IFBhbmVsLlxyXG4gKiBAcGFyYW0gbnVtYmVyT2ZBY3RpdmVDYXNlcyBOdW1iZXIgb2YgY3VycmVudGx5IGFjdGl2ZSBDYXNlcy5cclxuICogQHBhcmFtIGlzQWR2YW5jZWRGaWx0ZXJzU2hvd24gV2hldGhlciB0aGUgJ0FkdmFuY2VkIEZpbHRlcnMnIHBhbmVsIGlzIHNob3duLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENhc2VzU3VtbWFyeVNlY3Rpb25zKFxyXG4gICAgbnVtYmVyT2ZBY3RpdmVDYXNlczogTG9hZGluZ0RhdGE8bnVtYmVyPixcclxuICAgIGlzQWR2YW5jZWRGaWx0ZXJzU2hvd246IGJvb2xlYW5cclxuKTogU3VtbWFyeVNlY3Rpb25bXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogXCJidXR0b24tbGlua1wiLFxyXG4gICAgICAgICAgICBsYWJlbDogXCJOZXcgQ2FzZVwiLFxyXG4gICAgICAgICAgICBidXR0b25MYWJlbDogXCJDcmVhdGVcIixcclxuICAgICAgICAgICAgdG86IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogUEFHRVMuQ3JlYXRlQ2FzZS5wYXRoIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiY291bnRcIixcclxuICAgICAgICAgICAgbGFiZWw6IFwiQWN0aXZlIENhc2VzXCIsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudW1iZXJPZkFjdGl2ZUNhc2VzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uKGlzQWR2YW5jZWRGaWx0ZXJzU2hvd25cclxuICAgICAgICAgICAgPyBbXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uLWxpbmtcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNsb3NlZCBDYXNlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFwiQ2xvc2VkIENhc2VzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB0bzogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBQQUdFUy5DbG9zZWRDYXNlcy5wYXRoIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0gYXMgU3VtbWFyeVNlY3Rpb24sXHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICA6IFtdKSxcclxuICAgIF07XHJcbn1cclxuIiwiLyoqIEVudW0gcmVwcmVzZW50aW5nIHRoZSBkYXRlIHNpbmNlIGFuIEluY2lkZW50IHdhcyBDcmVhdGVkLiAqL1xyXG5leHBvcnQgZW51bSBEYXRlU2luY2Uge1xyXG4gICAgLyoqIFJhaXNlZCBUb2RheSAqL1xyXG4gICAgVG9kYXkgPSAxLFxyXG5cclxuICAgIC8qKiBSYWlzZWQgWWVzdGVyZGF5ICovXHJcbiAgICBZZXN0ZXJkYXkgPSAyLFxyXG5cclxuICAgIC8qKiBSYWlzZWQgdGhpcyBXZWVrLiAqL1xyXG4gICAgXCJUaGlzIFdlZWtcIiA9IDMsXHJcblxyXG4gICAgLyoqIFJhaXNlZCB0aGlzIE1vbnRoLiAqL1xyXG4gICAgXCJUaGlzIE1vbnRoXCIgPSA0LFxyXG5cclxuICAgIC8qKiBSYWlzZWQgdGhpcyBZZWFyLiAqL1xyXG4gICAgXCJUaGlzIFllYXJcIiA9IDUsXHJcbn1cclxuIiwiaW1wb3J0IHsgTGluayB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IFBBR0VTIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVBhZ2VOYXZpZ2F0aW9uXCI7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSBcIi4vSW1hZ2VcIjtcclxuXHJcbi8qKiBCYW5uZXIgZGlzcGxheWluZyBpbmZvcm1hdGlvbiBwZXJ0YWluaW5nIHRvIE1ham9yIEluY2lkZW50cyAqL1xyXG5leHBvcnQgY29uc3QgTWFqb3JJbmNpZGVudEJhbm5lcjogUmVhY3QuRkM8eyBtZXNzYWdlVGV4dDogc3RyaW5nOyBzdHlsZUNsYXNzOiBzdHJpbmcgfT4gPSAocHJvcHMpID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3Byb3BzLnN0eWxlQ2xhc3N9IGRhdGEtaW5jaWRlbnQtc3RhdHVzPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxJbWFnZSBzcmM9XCJpbmNpZGVudC13YXJuaW5nLXRyaWFuZ2xlLnN2Z1wiIGhlaWdodD17NTN9IHdpZHRoPXs2NH0gY2xhc3NOYW1lPVwiaW5jaWRlbnQtd2FybmluZy10cmlhbmdsZVwiIC8+XHJcblxyXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJpbmNpZGVudC13YXJuaW5nLW1lc3NhZ2VcIj57cHJvcHMubWVzc2FnZVRleHR9PC9wPlxyXG4gICAgICAgICAgICA8TGluayB0bz17UEFHRVMuTWFqb3JJbmNpZGVudHMucGF0aH0gY2xhc3NOYW1lPVwiYnV0dG9uIGRlZmF1bHQgYnRuLWluY2lkZW50LWRldGFpbHNcIiB0aXRsZT1cIlZpZXcgRGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgVmlldyBEZXRhaWxzXHJcbiAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBDYXNlVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVHlwZVwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvSW5jaWRlbnRTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IENhc2VQcmlvcml0eUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVByaW9yaXR5Q29kZVwiO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gXCIuL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJHcm91cCB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJHcm91cFwiO1xyXG5pbXBvcnQgeyBNYW5hZ2VtZW50UGFuZWwgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9NYW5hZ2VtZW50UGFuZWxcIjtcclxuaW1wb3J0IHsgZ2V0Q2FzZXNGaWx0ZXJHcm91cHMgfSBmcm9tIFwiLi4vRGF0YS9nZXRDYXNlc0ZpbHRlckdyb3Vwc1wiO1xyXG5pbXBvcnQgeyBGaWx0ZXJlZEluY2lkZW50cyB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJNb2RlbHMvRmlsdGVyZWRJbmNpZGVudHNcIjtcclxuaW1wb3J0IHsgVGFibGVIZWFkZXJDZWxsIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvVGFibGVIZWFkZXJDZWxsXCI7XHJcbmltcG9ydCB7IGdldENhc2VUYWJsZUhlYWRlckNlbGxzIH0gZnJvbSBcIi4uL0RhdGEvZ2V0Q2FzZVRhYmxlSGVhZGVyQ2VsbHNcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlIH0gZnJvbSBcIi4uL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVcIjtcclxuaW1wb3J0IHsgU3VtbWFyeVNlY3Rpb24gfSBmcm9tIFwiLi4vVHlwZXMvU3VtbWFyeVNlY3Rpb25cIjtcclxuaW1wb3J0IHsgZ2V0Q2FzZXNTdW1tYXJ5U2VjdGlvbnMgfSBmcm9tIFwiLi4vRGF0YS9nZXRDYXNlc1N1bW1hcnlTZWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBEYXRlU2luY2UgfSBmcm9tIFwiLi4vRW51bXMvRGF0ZVNpbmNlXCI7XHJcbmltcG9ydCB7IE1ham9ySW5jaWRlbnRCYW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9NYWpvckluY2lkZW50QmFubmVyXCI7XHJcbmltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuaW1wb3J0IHsgdG9Mb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9IZWxwZXJzL3RvTG9hZGluZ0RhdGFcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBDb250YWN0U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RTdGF0ZUNvZGVcIjtcclxuXHJcbi8qKiBBZHZhbmNlZCBmaWx0ZXIgY29uZmlndXJhdGlvbiAqL1xyXG5leHBvcnQgdHlwZSBBZHZhbmNlZEZpbHRlciA9IHtcclxuICAgIC8qKiBMaXN0IG9mIHNlbGVjdGVkIEluY2lkZW50IFN0YXR1c2VzLiAqL1xyXG4gICAgc2VsZWN0ZWRJbmNpZGVudFN0YXR1c2VzOiBJbmNpZGVudFN0YXR1c0NvZGVbXTtcclxuXHJcbiAgICAvKiogTGlzdCBvZiBzZWxlY3RlZCBDYXNlIFR5cGVzLiAqL1xyXG4gICAgc2VsZWN0ZWRDYXNlVHlwZXM6IENhc2VUeXBlW107XHJcblxyXG4gICAgLyoqIENyZWF0ZWQgQnkgQ29udGFjdC4gKi9cclxuICAgIGNyZWF0ZWRCeTogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBEYXRlIG9mIENyZWF0aW9uLiAqL1xyXG4gICAgZGF0ZVJhbmdlOiB7IHZhbHVlOiBEYXRlU2luY2UgfCBudWxsOyBmcm9tOiBEYXRlIHwgbnVsbDsgdG86IERhdGUgfCBudWxsIH07XHJcbn07XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgQ2FzZXMgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgQ2FzZXM6IFJlYWN0LkZDID0gKCkgPT4ge1xyXG4gICAgY29uc3QgaW5jaWRlbnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5pbmNpZGVudHMpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuXHJcbiAgICAvLyBMb2NhbCBzdGF0ZSB1c2VkIGZvciB0aGUgdGFibGUgc29ydGluZy5cclxuICAgIGNvbnN0IFtzb3J0ZWRDb2x1bW4sIHNldFNvcnRlZENvbHVtbl0gPSB1c2VTdGF0ZTxrZXlvZiBJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+KFwiY3JlYXRlZG9uXCIpO1xyXG4gICAgY29uc3QgW2lzU29ydGVkQXNjZW5kaW5nLCBzZXRJc1NvcnRlZEFzY2VuZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgLy8gTG9jYWwgc3RhdGUgdXNlZCBmb3IgdGhlIFNlYXJjaCBCYXJcclxuICAgIGNvbnN0IFtzZWFyY2hCYXJDb250ZW50LCBzZXRTZWFyY2hCYXJDb250ZW50XSA9IHVzZVN0YXRlPHN0cmluZz4oXCJcIik7XHJcblxyXG4gICAgLy8gTG9jYWwgc3RhdGUgdXNlZCBmb3IgdGhlIFRpbGUgc2VsZWN0aW9uLlxyXG4gICAgY29uc3QgW3NlbGVjdGVkU3RhdHVzVGlsZUlkcywgc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XHJcbiAgICBjb25zdCBbc2VsZWN0ZWRUeXBlVGlsZUlkcywgc2V0U2VsZWN0ZWRUeXBlVGlsZUlkc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oW10pO1xyXG5cclxuICAgIC8vIExvY2FsIHN0YXRlIHVzZWQgZm9yIGFkdmFuY2VkIGZpbHRlcnMuXHJcbiAgICBjb25zdCBbYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLCBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnNdID0gdXNlU3RhdGU8QWR2YW5jZWRGaWx0ZXI+KHtcclxuICAgICAgICBzZWxlY3RlZENhc2VUeXBlczogW10sXHJcbiAgICAgICAgc2VsZWN0ZWRJbmNpZGVudFN0YXR1c2VzOiBbXSxcclxuICAgICAgICBjcmVhdGVkQnk6IFwiXCIsXHJcbiAgICAgICAgZGF0ZVJhbmdlOiB7IHZhbHVlOiBudWxsLCBmcm9tOiBudWxsLCB0bzogbnVsbCB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBxdWVyaWVkIENyZWF0ZWRCeSB2YWx1ZSBpbiB0aGUgQWR2YW5jZWQgRmlsdGVyLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBjcmVhdGVkQnlJZCBUaGUgQ29udGFjdCB0aGF0IGNyZWF0ZWQgdGhlIEluY2lkZW50LlxyXG4gICAgICovXHJcbiAgICBjb25zdCB1cGRhdGVDcmVhdGVkQnlDb250YWN0ID0gKGNyZWF0ZWRCeUlkOiBzdHJpbmcgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgdGhlIGNyZWF0ZWRCeUlkIGlzIGFscmVhZHkgbnVsbCwgcmVtb3ZlIGl0LlxyXG4gICAgICAgIGlmICghY3JlYXRlZEJ5SWQpIHtcclxuICAgICAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRCeTogXCJcIixcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbHNlOyBVcGRhdGUgdGhlIENyZWF0ZWRCeSBmaWx0ZXIuXHJcbiAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi5wcmV2aW91c1N0YXRlLFxyXG4gICAgICAgICAgICBjcmVhdGVkQnk6IGNyZWF0ZWRCeUlkLFxyXG4gICAgICAgIH0pKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBxdWVyaWVkIEluY2lkZW50U3RhdHVzQ29kZSBlbnVtIHZhbHVlcyBpbiB0aGUgQWR2YW5jZWQgRmlsdGVyLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBJbmNpZGVudFN0YXR1c0NvZGUgZW51bS5cclxuICAgICAqL1xyXG4gICAgY29uc3QgdXBkYXRlU2VsZWN0ZWRJbmNpZGVudFR5cGVzID0gKGtleTogc3RyaW5nIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmIChrZXkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSW5jaWRlbnRTdGF0dXNlczogW10sXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgaW5jaWRlbnRTdGF0dXNFbnVtVmFsdWUgPSBJbmNpZGVudFN0YXR1c0NvZGVba2V5IGFzIGtleW9mIHR5cGVvZiBJbmNpZGVudFN0YXR1c0NvZGVdO1xyXG5cclxuICAgICAgICBpZiAoIWluY2lkZW50U3RhdHVzRW51bVZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7a2V5fScgZmlsdGVyIHZhbHVlIGZvciB0aGUgQ2FzZSBTdGF0dXMgZmlsdGVyIGlzIG5vdCBpbXBsZW1lbnRlZGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBhbHJlYWR5IGluIHRoZSBJbmNpZGVudFN0YXR1c0NvZGUgbGlzdCwgcmVtb3ZlIGl0LlxyXG4gICAgICAgIGlmIChhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRJbmNpZGVudFN0YXR1c2VzLmluY2x1ZGVzKGluY2lkZW50U3RhdHVzRW51bVZhbHVlKSkge1xyXG4gICAgICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAuLi5wcmV2aW91c1N0YXRlLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmNpZGVudFN0YXR1c2VzOiBbLi4uYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkSW5jaWRlbnRTdGF0dXNlc10uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtICE9PSBpbmNpZGVudFN0YXR1c0VudW1WYWx1ZVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbHNlOyBBZGQgdGhlIEluY2lkZW50U3RhdHVzQ29kZSB0byB0aGUgbGlzdC5cclxuICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkSW5jaWRlbnRTdGF0dXNlczogWy4uLmFkdmFuY2VkU2VhcmNoRmlsdGVycy5zZWxlY3RlZEluY2lkZW50U3RhdHVzZXMsIGluY2lkZW50U3RhdHVzRW51bVZhbHVlXSxcclxuICAgICAgICB9KSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgcXVlcmllZCBDYXNlVHlwZSB2YWx1ZXMgaW4gdGhlIEFkdmFuY2VkIEZpbHRlci5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgQ2FzZVR5cGUgZW51bS5cclxuICAgICAqL1xyXG4gICAgY29uc3QgdXBkYXRlU2VsZWN0ZWRDYXNlVHlwZXMgPSAoa2V5OiBzdHJpbmcgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAuLi5wcmV2aW91c1N0YXRlLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDYXNlVHlwZXM6IFtdLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNhc2VFbnVtVmFsdWUgPSBDYXNlVHlwZVtrZXkgYXMga2V5b2YgdHlwZW9mIENhc2VUeXBlXTtcclxuXHJcbiAgICAgICAgaWYgKCFjYXNlRW51bVZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7a2V5fScgZmlsdGVyIHZhbHVlIGZvciB0aGUgQ2FzZSBUeXBlIGZpbHRlciBpcyBub3QgaW1wbGVtZW50ZWRgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgYWxyZWFkeSBpbiB0aGUgQ2FzZVR5cGUgbGlzdCwgcmVtb3ZlIGl0LlxyXG4gICAgICAgIGlmIChhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRDYXNlVHlwZXMuaW5jbHVkZXMoY2FzZUVudW1WYWx1ZSkpIHtcclxuICAgICAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2FzZVR5cGVzOiBbLi4uYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkQ2FzZVR5cGVzXS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IGNhc2VFbnVtVmFsdWVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRWxzZTsgQWRkIENhc2VUeXBlIHRvIHRoZSBsaXN0LlxyXG4gICAgICAgIHNldEFkdmFuY2VkU2VhcmNoRmlsdGVycygocHJldmlvdXNTdGF0ZSkgPT4gKHtcclxuICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcclxuICAgICAgICAgICAgc2VsZWN0ZWRDYXNlVHlwZXM6IFsuLi5hZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRDYXNlVHlwZXMsIGNhc2VFbnVtVmFsdWVdLFxyXG4gICAgICAgIH0pKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBxdWVyaWVkIERhdGVTaW5jZSB2YWx1ZSBpbiB0aGUgQWR2YW5jZWQgRmlsdGVyLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGVTaW5jZSBUaGUgRGF0ZSBTaW5jZSBjcmVhdGlvbiBvZiB0aGUgSW5jaWRlbnQuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHVwZGF0ZUNyZWF0ZWRPbkRhdGUgPSAoZGF0ZVNpbmNlOiBzdHJpbmcgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgaWYgKCFkYXRlU2luY2UpIHtcclxuICAgICAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcclxuICAgICAgICAgICAgICAgIGRhdGVSYW5nZTogeyB2YWx1ZTogbnVsbCwgZnJvbTogbnVsbCwgdG86IG51bGwgfSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBmcm9tRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbGV0IHRvRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgdGltZSBvZiBmcm9tIGFuZCB0byB0byB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgZGF5IChyZXNwZWN0aXZlbHkpLlxyXG4gICAgICAgIGZyb21EYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgICAgIHRvRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xyXG5cclxuICAgICAgICAvLyBTZXRzIHRoZSBmcm9tRGF0ZSBhbmQgdG9EYXRlIGJhc2VkIG9uIHRoZSBlbnVtIFR5cGUuXHJcbiAgICAgICAgc3dpdGNoIChEYXRlU2luY2VbZGF0ZVNpbmNlIGFzIGtleW9mIHR5cGVvZiBEYXRlU2luY2VdKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0ZVNpbmNlLlRvZGF5OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIERhdGVTaW5jZS5ZZXN0ZXJkYXk6XHJcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZS5zZXREYXRlKGZyb21EYXRlLmdldERhdGUoKSAtIDEpO1xyXG4gICAgICAgICAgICAgICAgdG9EYXRlLnNldERhdGUodG9EYXRlLmdldERhdGUoKSAtIDEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIERhdGVTaW5jZVtcIlRoaXMgV2Vla1wiXTpcclxuICAgICAgICAgICAgICAgIGZyb21EYXRlLnNldERhdGUoZnJvbURhdGUuZ2V0RGF0ZSgpIC0gZnJvbURhdGUuZ2V0RGF5KCkpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIERhdGVTaW5jZVtcIlRoaXMgTW9udGhcIl06XHJcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZSA9IG5ldyBEYXRlKGZyb21EYXRlLmdldEZ1bGxZZWFyKCksIGZyb21EYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIERhdGVTaW5jZVtcIlRoaXMgWWVhclwiXTpcclxuICAgICAgICAgICAgICAgIGZyb21EYXRlID0gbmV3IERhdGUoZnJvbURhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke2RhdGVTaW5jZX0nIGZpbHRlciB2YWx1ZSBmb3IgdGhlIENyZWF0ZWQgT24gZmlsdGVyIGlzIG5vdCBpbXBsZW1lbnRlZGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBkYXRlIHJhbmdlIG9iamVjdC5cclxuICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXHJcbiAgICAgICAgICAgIGRhdGVSYW5nZTogeyB2YWx1ZTogRGF0ZVNpbmNlW2RhdGVTaW5jZSBhcyBrZXlvZiB0eXBlb2YgRGF0ZVNpbmNlXSwgZnJvbTogZnJvbURhdGUsIHRvOiB0b0RhdGUgfSxcclxuICAgICAgICB9KSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNvcnRlZEluY2lkZW50czogTG9hZGluZ0RhdGE8SW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlW10+ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgaWYgKGluY2lkZW50cy5hY3RpdmVJbmNpZGVudHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmRhdGFcclxuICAgICAgICAgICAgLnNsaWNlKClcclxuICAgICAgICAgICAgLnNvcnQoKGluY2lkZW50QTogSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlLCBpbmNpZGVudEI6IEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSkgPT5cclxuICAgICAgICAgICAgICAgIChpbmNpZGVudEFbc29ydGVkQ29sdW1uXT8udG9TdHJpbmcoKSA/PyBcIlwiKS5sb2NhbGVDb21wYXJlKGluY2lkZW50Qltzb3J0ZWRDb2x1bW5dPy50b1N0cmluZygpID8/IFwiXCIpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChpc1NvcnRlZEFzY2VuZGluZykge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBzb3J0ZWREYXRhIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBzb3J0ZWREYXRhLnJldmVyc2UoKSB9O1xyXG4gICAgfSwgW2luY2lkZW50cywgc29ydGVkQ29sdW1uLCBpc1NvcnRlZEFzY2VuZGluZ10pO1xyXG5cclxuICAgIC8qKiBPYmplY3QgZGVmaW5pbmcgaW5jaWRlbnRzIGZpbHRlcmVkIGJ5IGRpZmZlcmVudCBwYXJhbWV0ZXJzICovXHJcbiAgICBjb25zdCBmaWx0ZXJlZEluY2lkZW50czogRmlsdGVyZWRJbmNpZGVudHMgPSB7XHJcbiAgICAgICAgYWN0aXZlQ2FzZXM6IHNvcnRlZEluY2lkZW50cyxcclxuICAgICAgICBjYXNlc1dpdGhCaXN0ZWNoOiB0b0xvYWRpbmdEYXRhKHNvcnRlZEluY2lkZW50cywgKGluY2lkZW50cykgPT5cclxuICAgICAgICAgICAgaW5jaWRlbnRzLmZpbHRlcigoaW5jaWRlbnQpID0+XHJcbiAgICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICAgICAgSW5jaWRlbnRTdGF0dXNDb2RlLk9wZW4sXHJcbiAgICAgICAgICAgICAgICAgICAgSW5jaWRlbnRTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgSW5jaWRlbnRTdGF0dXNDb2RlW1wiQ2xvc3VyZSBSZXF1ZXN0ZWRcIl0sXHJcbiAgICAgICAgICAgICAgICBdLmluY2x1ZGVzKGluY2lkZW50LnN0YXR1c2NvZGUpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApLFxyXG4gICAgICAgIGNhc2VzV2l0aFlvdTogdG9Mb2FkaW5nRGF0YShzb3J0ZWRJbmNpZGVudHMsIChpbmNpZGVudHMpID0+XHJcbiAgICAgICAgICAgIGluY2lkZW50cy5maWx0ZXIoKGluY2lkZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgW0luY2lkZW50U3RhdHVzQ29kZVtcIlBlbmRpbmcgRmVlZGJhY2tcIl0sIEluY2lkZW50U3RhdHVzQ29kZS5SZXNvbHZlZF0uaW5jbHVkZXMoaW5jaWRlbnQuc3RhdHVzY29kZSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgY2FzZXNPbkhvbGQ6IHRvTG9hZGluZ0RhdGEoc29ydGVkSW5jaWRlbnRzLCAoaW5jaWRlbnRzKSA9PlxyXG4gICAgICAgICAgICBpbmNpZGVudHMuZmlsdGVyKChpbmNpZGVudCkgPT4gaW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiT24gSG9sZFwiXSlcclxuICAgICAgICApLFxyXG4gICAgICAgIHN1cHBvcnRSZXF1ZXN0czogdG9Mb2FkaW5nRGF0YShzb3J0ZWRJbmNpZGVudHMsIChpbmNpZGVudHMpID0+XHJcbiAgICAgICAgICAgIGluY2lkZW50cy5maWx0ZXIoKGluY2lkZW50KSA9PiBpbmNpZGVudC5jYXNldHlwZWNvZGUgPT09IENhc2VUeXBlW1wiU3VwcG9ydCBSZXF1ZXN0XCJdKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgaW5jaWRlbnRzOiB0b0xvYWRpbmdEYXRhKHNvcnRlZEluY2lkZW50cywgKGluY2lkZW50cykgPT5cclxuICAgICAgICAgICAgaW5jaWRlbnRzLmZpbHRlcigoaW5jaWRlbnQpID0+IGluY2lkZW50LmNhc2V0eXBlY29kZSA9PT0gQ2FzZVR5cGUuSW5jaWRlbnQpXHJcbiAgICAgICAgKSxcclxuICAgICAgICBjaGFuZ2VzOiB0b0xvYWRpbmdEYXRhKHNvcnRlZEluY2lkZW50cywgKGluY2lkZW50cykgPT5cclxuICAgICAgICAgICAgaW5jaWRlbnRzLmZpbHRlcigoaW5jaWRlbnQpID0+IGluY2lkZW50LmNhc2V0eXBlY29kZSA9PT0gQ2FzZVR5cGUuQ2hhbmdlKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgcHJvYmxlbXM6IHRvTG9hZGluZ0RhdGEoc29ydGVkSW5jaWRlbnRzLCAoaW5jaWRlbnRzKSA9PlxyXG4gICAgICAgICAgICBpbmNpZGVudHMuZmlsdGVyKChpbmNpZGVudCkgPT4gaW5jaWRlbnQuY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZS5Qcm9ibGVtKVxyXG4gICAgICAgICksXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIERlc2NyaXB0aW9uIG9mIHRoZSBncm91cHMgb2YgcHJvZHVjdCB0aWxlcyB0byBkaXNwbGF5IGluIHRoZSBOYXZpZ2F0aW9uIHBhbmVsLlxyXG4gICAgY29uc3QgY2FzZXNGaWx0ZXJHcm91cHM6IEZpbHRlckdyb3VwPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT5bXSA9IGdldENhc2VzRmlsdGVyR3JvdXBzKFxyXG4gICAgICAgIGZpbHRlcmVkSW5jaWRlbnRzLFxyXG4gICAgICAgIHNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICBzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgc2VsZWN0ZWRUeXBlVGlsZUlkcyxcclxuICAgICAgICBzZXRTZWxlY3RlZFR5cGVUaWxlSWRzXHJcbiAgICApO1xyXG5cclxuICAgIC8vIERldGVybWluZSB0aGUgYXBwbGljYWJsZSBTdGF0dXMgZmlsdGVycy5cclxuICAgIGNvbnN0IGFwcGxpY2FibGVTdGF0dXNGaWx0ZXJzID0gY2FzZXNGaWx0ZXJHcm91cHMuZmxhdE1hcCgoZmlsdGVyR3JvdXApID0+XHJcbiAgICAgICAgZmlsdGVyR3JvdXAudGlsZXNcclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHNlbGVjdGVkIHRpbGVzIGluIHRoZSBncm91cCB0aGVuIG5vIGZpbHRlcnMgYXJlIGFwcGxpZWQuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHRpbGUpID0+IChzZWxlY3RlZFN0YXR1c1RpbGVJZHMubGVuZ3RoID4gMCA/IHNlbGVjdGVkU3RhdHVzVGlsZUlkcy5pbmNsdWRlcyh0aWxlLmlkKSA6IHRydWUpKVxyXG4gICAgICAgICAgICAuZmxhdE1hcCgodGlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRpbGUuZmlsdGVyO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGFwcGxpY2FibGUgVHlwZSBmaWx0ZXJzLlxyXG4gICAgY29uc3QgYXBwbGljYWJsZVR5cGVGaWx0ZXJzID0gY2FzZXNGaWx0ZXJHcm91cHMuZmxhdE1hcCgoZmlsdGVyR3JvdXApID0+XHJcbiAgICAgICAgZmlsdGVyR3JvdXAudGlsZXNcclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHNlbGVjdGVkIHRpbGVzIGluIHRoZSBncm91cCB0aGVuIG5vIGZpbHRlcnMgYXJlIGFwcGxpZWQuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHRpbGUpID0+IChzZWxlY3RlZFR5cGVUaWxlSWRzLmxlbmd0aCA+IDAgPyBzZWxlY3RlZFR5cGVUaWxlSWRzLmluY2x1ZGVzKHRpbGUuaWQpIDogdHJ1ZSkpXHJcbiAgICAgICAgICAgIC5mbGF0TWFwKCh0aWxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGlsZS5maWx0ZXI7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBzdW1tYXJ5IHNlY3Rpb25zIHRvIGRpc3BsYXkuXHJcbiAgICBjb25zdCBnZXRTdW1tYXJ5U2VjdGlvbnM6IChpc0FkdmFuY2VkRmlsdGVyc1Nob3duOiBib29sZWFuKSA9PiBTdW1tYXJ5U2VjdGlvbltdID0gKGlzQWR2YW5jZWRGaWx0ZXJzU2hvd24pID0+XHJcbiAgICAgICAgZ2V0Q2FzZXNTdW1tYXJ5U2VjdGlvbnMoXHJcbiAgICAgICAgICAgIGZpbHRlcmVkSW5jaWRlbnRzLmFjdGl2ZUNhc2VzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCJcclxuICAgICAgICAgICAgICAgID8geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBmaWx0ZXJlZEluY2lkZW50cy5hY3RpdmVDYXNlcy5kYXRhLmxlbmd0aCB9XHJcbiAgICAgICAgICAgICAgICA6IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfSxcclxuICAgICAgICAgICAgaXNBZHZhbmNlZEZpbHRlcnNTaG93blxyXG4gICAgICAgICk7XHJcblxyXG4gICAgLy8gTWVzc2FnZSB0byBkaXNwbGF5IGNvbmNlcm5pbmcgYWN0aXZlIE1ham9yIEluY2lkZW50cy5cclxuICAgIGNvbnN0IGFjdGl2ZU1ham9ySW5jaWRlbnRUZXh0ID1cclxuICAgICAgICBcIldlIGFyZSBhd2FyZSBvZiBhbiBpc3N1ZSB3aGljaCBtYXkgYmUgYWZmZWN0aW5nIHNvbWUgY3VzdG9tZXJzLiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbnkgaXNzdWVzIHBsZWFzZSBjcmVhdGUgYSBjYXNlIGFuZCB3ZSBzaGFsbCBwcm92aWRlIGFwcHJvcHJpYXRlIHVwZGF0ZXMuXCI7XHJcblxyXG4gICAgLy8gTWVzc2FnZSB0byBkaXNwbGF5IGNvbmNlcm5pbmcgcmVjZW50bHkgcmVzb2x2ZWQgTWFqb3IgSW5jaWRlbnRzLlxyXG4gICAgY29uc3QgcmVzb2x2ZWRNYWpvckluY2lkZW50VGV4dCA9XHJcbiAgICAgICAgXCJBIHByZXZpb3VzIGlzc3VlIHdoaWNoIHdhcyBhZmZlY3Rpbmcgc29tZSBjdXN0b21lcnMgaGFzIHJlY2VudGx5IGJlZW4gcmVzb2x2ZWQuIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGFueSBmdXJ0aGVyIGlzc3VlcywgcGxlYXNlIHVwZGF0ZSB5b3VyIGNhc2UuXCI7XHJcblxyXG4gICAgY29uc3QgaGVhZGVyQ2VsbHMgPSBnZXRDYXNlVGFibGVIZWFkZXJDZWxscygpO1xyXG5cclxuICAgIGNvbnN0IGdldENvbHVtbkhlYWRlciA9IChmaWVsZE5hbWU6IGtleW9mIEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSkgPT5cclxuICAgICAgICBoZWFkZXJDZWxscy5maW5kKChoZWFkZXJDZWxsKSA9PiBoZWFkZXJDZWxsLmZpZWxkTmFtZSA9PT0gZmllbGROYW1lKT8uY29sdW1uSGVhZGVyO1xyXG5cclxuICAgIC8vIEZpbmQgdGhlIHJlc3VsdHMgdG8gZGlzcGxheVxyXG4gICAgY29uc3QgbWF0Y2hpbmdJbmNpZGVudHMgPSB0b0xvYWRpbmdEYXRhKHNvcnRlZEluY2lkZW50cywgKGluY2lkZW50cykgPT5cclxuICAgICAgICBpbmNpZGVudHNcclxuICAgICAgICAgICAgLy8gQXBwbHkgdGhlIFNlYXJjaCBCYXIgZmlsdGVyLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChpbmNpZGVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGluY2lkZW50KS5zb21lKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gdmFsdWU/LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjb250ZW50cyBpbiB0aGUgdGFibGUgaXMgZm9ybWF0dGVkIGZvciB0aGUgdXNlciB0aGVyZWZvcmUgdGhlIHNlYXJjaCB2YWx1ZXMgaGF2ZSB0byBhbHNvIGJlIGZvcm1hdHRlZC5cclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0ICdDYXNlIFR5cGUnIHRvIGEgc3RyaW5nIGZvciBjb21wYXJpc29uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY2FzZXR5cGVjb2RlXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRWYWx1ZSA9ICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmNpZGVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5jaWRlbnQuY2FzZXR5cGVjb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENhc2VUeXBlW2luY2lkZW50LmNhc2V0eXBlY29kZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSAnQ3JlYXRlZCBPbicgZGF0ZSB0byBhIHN0cmluZyBmb3IgY29tcGFyaXNvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImNyZWF0ZWRvblwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VmFsdWUgPSBEYXRlSGVscGVyLnRvRGF0ZVN0cmluZyhpbmNpZGVudC5jcmVhdGVkb24pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0ICdQcmlvcml0eSBDb2RlJyB0byBhIHN0cmluZyBmb3IgY29tcGFyaXNvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInByaW9yaXR5Y29kZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VmFsdWUgPSAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5jaWRlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWluY2lkZW50LnByaW9yaXR5Y29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDYXNlUHJpb3JpdHlDb2RlW2luY2lkZW50LnByaW9yaXR5Y29kZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0ICdTdGF0dXMgQ29kZScgdG8gYSBzdHJpbmcgZm9yIGNvbXBhcmlzb24uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzdGF0dXNjb2RlXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRWYWx1ZSA9ICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmNpZGVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5jaWRlbnQuY2FzZXR5cGVjb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluY2lkZW50U3RhdHVzQ29kZVtpbmNpZGVudC5zdGF0dXNjb2RlXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBmdWxsICdQcmltYXJ5IENvbnRhY3QnIG5hbWUgdXNpbmcgdGhlIENvbnRhY3QgSWQgZm9yIGNvbXBhcmlzb24uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VmFsdWUgPSAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhY3QgPSBjb250YWN0cy5kYXRhLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250YWN0KSA9PiBjb250YWN0LmNvbnRhY3RpZCA9PT0gaW5jaWRlbnQuX3ByaW1hcnljb250YWN0aWRfdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRhY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRWYWx1ZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaEJhckNvbnRlbnQudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBTdGF0dXMgVGlsZSBmaWx0ZXJzLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChpbmNpZGVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcGxpY2FibGVTdGF0dXNGaWx0ZXJzLnNvbWUoKGZpbHRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIoaW5jaWRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgVHlwZSBUaWxlIGZpbHRlcnMuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKGluY2lkZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwbGljYWJsZVR5cGVGaWx0ZXJzLnNvbWUoKGZpbHRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIoaW5jaWRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC8vIEFwcGx5IGFueSBhZHZhbmNlZCBmaWx0ZXJzLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChpbmNpZGVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3JlYXRlZE9uRGF0ZSA9IG5ldyBEYXRlKGluY2lkZW50LmNyZWF0ZWRvbik7XHJcbiAgICAgICAgICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhZHZhbmNlZCBzZWFyY2ggZmlsdGVycyBhcmUgbm90IHBvcHVsYXRlZCwgZG8gbm90IGZpbHRlciBieSB0aGlzIHZhbHVlLlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgaW5jaWRlbnQgc3RhdHVzIGxpc3QgY29udGFpbnMgdGhlIGluY2lkZW50IHN0YXR1cyBjb2RlLCBhZGQgdGhpcyBpbmNpZGVudC5cclxuICAgICAgICAgICAgICAgICAgICAoYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkSW5jaWRlbnRTdGF0dXNlcy5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRJbmNpZGVudFN0YXR1c2VzPy5pbmNsdWRlcyhpbmNpZGVudC5zdGF0dXNjb2RlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRydWUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhc2UgdHlwZSBjb2RlIGxpc3QgY29udGFpbnMgdGhlIGluY2lkZW50IGNhc2UgY29kZSwgYWRkIHRoaXMgaW5jaWRlbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgKGluY2lkZW50LmNhc2V0eXBlY29kZSAmJiBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRDYXNlVHlwZXMubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkQ2FzZVR5cGVzPy5pbmNsdWRlcyhpbmNpZGVudC5jYXNldHlwZWNvZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYWR2YW5jZWQgZmlsdGVycyBjb250YWN0IGlkIG1hdGNoZXMgdGhlIGluY2lkZW50IGNvbnRhY3QgaWQsIGFkZCB0aGlzIGluY2lkZW50LlxyXG4gICAgICAgICAgICAgICAgICAgIChhZHZhbmNlZFNlYXJjaEZpbHRlcnMuY3JlYXRlZEJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmNyZWF0ZWRCeSA9PT0gaW5jaWRlbnQuX3ByaW1hcnljb250YWN0aWRfdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBpbmNpZGVudCBjcmVhdGVkIG9uIGRhdGUgaXMgd2l0aGluIGEgZ2l2ZW4gcmFuZ2UsIGFkZCB0aGlzIGluY2lkZW50LlxyXG4gICAgICAgICAgICAgICAgICAgIChhZHZhbmNlZFNlYXJjaEZpbHRlcnMuZGF0ZVJhbmdlLmZyb20gJiYgYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmRhdGVSYW5nZS50b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGNyZWF0ZWRPbkRhdGUgPj0gYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmRhdGVSYW5nZS5mcm9tICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZE9uRGF0ZSA8PSBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuZGF0ZVJhbmdlLnRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHJlbGF0ZWROb25SZXNvbHZlZEFjdGl2ZU1ham9ySW5jaWRlbnRzOiBudW1iZXIgPVxyXG4gICAgICAgIGluY2lkZW50cy5hY3RpdmVNYWpvckluY2lkZW50cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiXHJcbiAgICAgICAgICAgID8gaW5jaWRlbnRzLmFjdGl2ZU1ham9ySW5jaWRlbnRzLmRhdGEuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAobWFqb3JJbmNpZGVudDogSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWFqb3JJbmNpZGVudC5zdGF0dXNjb2RlICE9PSBJbmNpZGVudFN0YXR1c0NvZGUuUmVzb2x2ZWRcclxuICAgICAgICAgICAgICApLmxlbmd0aFxyXG4gICAgICAgICAgICA6IDA7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8QmFzZVBhZ2UgdGl0bGU9XCJDYXNlc1wiPlxyXG4gICAgICAgICAgICB7aW5jaWRlbnRzLmFjdGl2ZU1ham9ySW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgJiZcclxuICAgICAgICAgICAgICAgIHJlbGF0ZWROb25SZXNvbHZlZEFjdGl2ZU1ham9ySW5jaWRlbnRzID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPE1ham9ySW5jaWRlbnRCYW5uZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQ9e2FjdGl2ZU1ham9ySW5jaWRlbnRUZXh0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiaW5jaWRlbnQtd2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvTWFqb3JJbmNpZGVudEJhbm5lcj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIHtpbmNpZGVudHMucmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgJiZcclxuICAgICAgICAgICAgICAgIGluY2lkZW50cy5hY3RpdmVNYWpvckluY2lkZW50cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiICYmXHJcbiAgICAgICAgICAgICAgICByZWxhdGVkTm9uUmVzb2x2ZWRBY3RpdmVNYWpvckluY2lkZW50cyA9PT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgaW5jaWRlbnRzLnJlY2VudGx5UmVzb2x2ZWRNYWpvckluY2lkZW50cy5kYXRhLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxNYWpvckluY2lkZW50QmFubmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0PXtyZXNvbHZlZE1ham9ySW5jaWRlbnRUZXh0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicmVzb2x2ZWQtaW5jaWRlbnQtd2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvTWFqb3JJbmNpZGVudEJhbm5lcj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxNYW5hZ2VtZW50UGFuZWxcclxuICAgICAgICAgICAgICAgIHNldFNlYXJjaEJhckNvbnRlbnQ9e3NldFNlYXJjaEJhckNvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJHcm91cHM9e2Nhc2VzRmlsdGVyR3JvdXBzfVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PVwiU2VhcmNoIGZvciBDYXNlXCJcclxuICAgICAgICAgICAgICAgIGdldFN1bW1hcnlTZWN0aW9ucz17Z2V0U3VtbWFyeVNlY3Rpb25zfVxyXG4gICAgICAgICAgICAgICAgZmlsdGVyc1RvRGlzcGxheT17W1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvcHRpb25TZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIk9wZW5cIiwgdmFsdWU6IEluY2lkZW50U3RhdHVzQ29kZVtcIk9wZW5cIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJJbiBQcm9ncmVzc1wiLCB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJPbiBIb2xkXCIsIHZhbHVlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiUGVuZGluZyBGZWVkYmFja1wiLCB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiUGVuZGluZyBGZWVkYmFja1wiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIlJlc29sdmVkXCIsIHZhbHVlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJSZXNvbHZlZFwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIkNsb3N1cmUgUmVxdWVzdGVkXCIsIHZhbHVlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zdXJlIFJlcXVlc3RlZFwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogdXBkYXRlU2VsZWN0ZWRJbmNpZGVudFR5cGVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkTGlzdDogYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkSW5jaWRlbnRTdGF0dXNlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpbmNpZGVudC10eXBlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6IFwiY2hlY2tib3hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzc05hbWU6IFwiY2hlY2tib3gtc2VjdGlvbiBpbmNpZGVudFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJTdGF0dXNcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvcHRpb25TZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIkluY2lkZW50XCIsIHZhbHVlOiBDYXNlVHlwZVtcIkluY2lkZW50XCJdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiU3VwcG9ydCBSZXF1ZXN0XCIsIHZhbHVlOiBDYXNlVHlwZVtcIlN1cHBvcnQgUmVxdWVzdFwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIlByb2JsZW1cIiwgdmFsdWU6IENhc2VUeXBlW1wiUHJvYmxlbVwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIkNoYW5nZVwiLCB2YWx1ZTogQ2FzZVR5cGVbXCJDaGFuZ2VcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IHVwZGF0ZVNlbGVjdGVkQ2FzZVR5cGVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkTGlzdDogYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkQ2FzZVR5cGVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNhc2UtdHlwZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlOiBcImNoZWNrYm94XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3NOYW1lOiBcImNoZWNrYm94LXNlY3Rpb24gY2FzZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJDYXNlIFR5cGVcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvcHRpb25TZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIlRvZGF5XCIsIHZhbHVlOiBEYXRlU2luY2VbXCJUb2RheVwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIlllc3RlcmRheVwiLCB2YWx1ZTogRGF0ZVNpbmNlW1wiWWVzdGVyZGF5XCJdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiVGhpcyBXZWVrXCIsIHZhbHVlOiBEYXRlU2luY2VbXCJUaGlzIFdlZWtcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJUaGlzIE1vbnRoXCIsIHZhbHVlOiBEYXRlU2luY2VbXCJUaGlzIE1vbnRoXCJdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiVGhpcyBZZWFyXCIsIHZhbHVlOiBEYXRlU2luY2VbXCJUaGlzIFllYXJcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IHVwZGF0ZUNyZWF0ZWRPbkRhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWRMaXN0OiBbYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmRhdGVSYW5nZS52YWx1ZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZGF0ZS1zaW5jZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6IFwicmFkaW9cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzc05hbWU6IFwiY2hlY2tib3gtc2VjdGlvbiBjYXNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkNyZWF0ZWQgT25cIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJsb29rdXBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IFwiRmlsdGVyIGJ5IGNvbnRhY3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsT3B0aW9uc05hbWU6IFwiQ29udGFjdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQ3JlYXRlZCBCeVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGFjdHMuZGF0YS5tYXAoKGNvbnRhY3QpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBjb250YWN0LmNvbnRhY3RpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IFtjb250YWN0LmZpcnN0bmFtZSwgY29udGFjdC5sYXN0bmFtZV0uZmlsdGVyKChzKSA9PiBzKS5qb2luKFwiIFwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dDogQ29udGFjdFN0YXRlQ29kZVtjb250YWN0LnN0YXRlY29kZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlja2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IHVwZGF0ZUNyZWF0ZWRCeUNvbnRhY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICB7bWF0Y2hpbmdJbmNpZGVudHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIiA/IChcclxuICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxyXG4gICAgICAgICAgICApIDogbWF0Y2hpbmdJbmNpZGVudHMuZGF0YS5sZW5ndGggPT09IDAgPyAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vLXJlc3VsdHMtbWVzc2FnZVwiPlRoZXJlIGFyZSBubyByZWNvcmRzIHRvIGRpc3BsYXkuPC9kaXY+XHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwiZW50aXR5bGlzdCBjYXNlcy10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlckNlbGxzLm1hcCgoY2VsbCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZUhlYWRlckNlbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjZWxsLmlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXI9e2NlbGwuY29sdW1uSGVhZGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU9e2NlbGwuZmllbGROYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJXaWR0aD17Y2VsbC5jZWxsV2lkdGh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRpbmdQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGluZ0VuYWJsZWQ6IGNlbGwuaXNTb3J0YWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZENvbHVtbjogc29ydGVkQ29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U29ydGVkQ29sdW1uOiAoKSA9PiBzZXRTb3J0ZWRDb2x1bW4oY2VsbC5maWVsZE5hbWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTb3J0ZWRBc2NlbmRpbmc6IGlzU29ydGVkQXNjZW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNTb3J0ZWRBc2NlbmRpbmc6IHNldElzU29ydGVkQXNjZW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge21hdGNoaW5nSW5jaWRlbnRzLmRhdGEubWFwKChpbmNpZGVudCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmNpZGVudC5pbmNpZGVudGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaWQ9e2luY2lkZW50LmluY2lkZW50aWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1lbnRpdHk9XCJpbmNpZGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1uYW1lPXtpbmNpZGVudC50aXRsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e2luY2lkZW50LnRpY2tldG51bWJlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJ0aWNrZXRudW1iZXJcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmNpZGVudC5pbmNpZGVudGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e2BlZGl0P2Nhc2VJZD0ke2luY2lkZW50LmluY2lkZW50aWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPntgJHtpbmNpZGVudC50aWNrZXRudW1iZXJ9YH08L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17aW5jaWRlbnQudGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwidGl0bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmNpZGVudC5pbmNpZGVudGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e2BlZGl0P2Nhc2VJZD0ke2luY2lkZW50LmluY2lkZW50aWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPntgJHtpbmNpZGVudC50aXRsZX1gfTwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJ0eXBlXCIgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJjYXNldHlwZWNvZGVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5jaWRlbnQuY2FzZXR5cGVjb2RlICYmIENhc2VUeXBlW2luY2lkZW50LmNhc2V0eXBlY29kZV19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY3JlYXRlZC1vblwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiY3JlYXRlZG9uXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge0RhdGVIZWxwZXIudG9EYXRlU3RyaW5nKGluY2lkZW50LmNyZWF0ZWRvbil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29udGFjdFwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiX3ByaW1hcnljb250YWN0aWRfdmFsdWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5jaWRlbnQuX3ByaW1hcnljb250YWN0aWRfdmFsdWUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFjdCA9IGNvbnRhY3RzLmRhdGEuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhY3QpID0+IGNvbnRhY3QuY29udGFjdGlkID09PSBpbmNpZGVudC5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY29udGFjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbY29udGFjdC5maXJzdG5hbWUsIGNvbnRhY3QubGFzdG5hbWVdLmZpbHRlcigocykgPT4gcykuam9pbihcIiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInByaW9yaXR5XCIgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJwcmlvcml0eWNvZGVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5jaWRlbnQucHJpb3JpdHljb2RlICYmIENhc2VQcmlvcml0eUNvZGVbaW5jaWRlbnQucHJpb3JpdHljb2RlXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJzdGF0dXNcIiBkYXRhLWhlYWRpbmctdGl0bGU9e2dldENvbHVtbkhlYWRlcihcInN0YXR1c2NvZGVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7SW5jaWRlbnRTdGF0dXNDb2RlW2luY2lkZW50LnN0YXR1c2NvZGVdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8L0Jhc2VQYWdlPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgQ2FzZU9yaWdpbkNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZU9yaWdpbkNvZGVcIjtcclxuaW1wb3J0IHsgQ2FzZVByaW9yaXR5Q29kZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUHJpb3JpdHlDb2RlXCI7XHJcbmltcG9ydCB7IENhc2VTZXZlcml0eUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVNldmVyaXR5Q29kZVwiO1xyXG5pbXBvcnQgeyBDYXNlVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVHlwZVwiO1xyXG5pbXBvcnQgeyBDYXNlVXJnZW5jeSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVXJnZW5jeVwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvSW5jaWRlbnRTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGFuIEluY2lkZW50IHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBtYXRjaCBleGFjdGx5IHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGluY2lkZW50aWQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICB0aXRsZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIF9jdXN0b21lcmlkX3ZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgdGlja2V0bnVtYmVyPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBjYXNldHlwZWNvZGU/OiBDYXNlVHlwZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBjYXNlb3JpZ2luY29kZT86IENhc2VPcmlnaW5Db2RlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHNldmVyaXR5Y29kZT86IENhc2VTZXZlcml0eUNvZGUgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF91cmdlbmN5PzogQ2FzZVVyZ2VuY3kgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgcHJpb3JpdHljb2RlPzogQ2FzZVByaW9yaXR5Q29kZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBzdGF0dXNjb2RlPzogSW5jaWRlbnRTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgY3JlYXRlZG9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlPzogRGF0ZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwidGl0bGVcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlKVtdLFxyXG4gICAgZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3M6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX2N1c3RvbWVyaWRfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJjdXN0b21lcmlkX2FjY291bnRcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJhY2NvdW50c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwicHJpbWFyeWNvbnRhY3RpZFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImNvbnRhY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcImJpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImNvbnRhY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiLyoqXHJcbiAqIEdlbmVyYXRlcyBhIG5ldyBHVUlELlxyXG4gKiBAcmV0dXJucyBOZXcgcmFuZG9tIEdVSUQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbmV3R3VpZCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZW1wdHkgPSBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiO1xyXG5cclxuICAgIHJldHVybiBlbXB0eS5yZXBsYWNlKC9bMF0vZywgKGxldHRlcikgPT4gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTYpLnRvU3RyaW5nKDE2KSk7XHJcbn1cclxuIiwiaW1wb3J0IHsgbmV3R3VpZCB9IGZyb20gXCIuLi9IZWxwZXJzL25ld0d1aWRcIjtcclxuaW1wb3J0IHtcclxuICAgIEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSxcclxuICAgIFJFVFJJRVZFX01VTFRJUExFX0lOQ0lERU5UX01FVEFEQVRBLFxyXG59IGZyb20gXCIuLi9Nb2RlbHMvSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlXCI7XHJcbmltcG9ydCB7IENvbmRpdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwiLi4vVHlwZXMvQ29uZGl0aW9uRXhwcmVzc2lvblwiO1xyXG5pbXBvcnQgeyBGZWVkYmFja0NhdGVnb3J5IH0gZnJvbSBcIi4uL1R5cGVzL0ZlZWRiYWNrQ2F0ZWdvcnlcIjtcclxuaW1wb3J0IHsgU3VibWlzc2lvbkRhdGEgfSBmcm9tIFwiLi4vVHlwZXMvU3VibWlzc2lvbkRhdGFcIjtcclxuXHJcbi8qKlxyXG4gKiBFeHRlbmRlZCBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZvciB0aGUgZ2xvYmFsIGB3aW5kb3dgIG9iamVjdC5cclxuICogVGhpcyBleHRlbnNpb24gaW5jbHVkZXMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHVzZWZ1bCBmb3Igc3BlY2lmaWMgZnVuY3Rpb25hbGl0aWVzLlxyXG4gKlxyXG4gKiAtIGB0b3BgOiBSZXByZXNlbnRzIHRoZSB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCdzIHdpbmRvdywgZXh0ZW5kZWQgd2l0aCBhIHBvdGVudGlhbCBgX19wcmVsb2FkYCBvYmplY3QuXHJcbiAqICAgLSBgX19wcmVsb2FkYDogQW4gb3B0aW9uYWwgb2JqZWN0IGNvbnRhaW5pbmcgcHJlbG9hZGVkIGRhdGEsIHN1Y2ggYXMgYHVzZXJJZGAuXHJcbiAqXHJcbiAqIC0gYHNoZWxsYDogQW4gb3B0aW9uYWwgb2JqZWN0IHJlcHJlc2VudGluZyBhIHNoZWxsLCBwcm92aWRpbmcgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXRpZXMuXHJcbiAqICAgLSBgZ2V0VG9rZW5EZWZlcnJlZGA6IEEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgc3RyaW5nIHRva2VuLlxyXG4gKlxyXG4gKiBAcmVtYXJrc1xyXG4gKiBUaGlzIGRlY2xhcmF0aW9uIGlzIHVzZWZ1bCBpbiBzY2VuYXJpb3Mgd2hlcmUgdGhlIGFwcGxpY2F0aW9uIHJlbGllcyBvbiBzcGVjaWZpYyBwcm9wZXJ0aWVzXHJcbiAqIGF0dGFjaGVkIHRvIHRoZSBnbG9iYWwgYHdpbmRvd2Agb2JqZWN0LiBUaGUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGxpa2UgYF9fcHJlbG9hZGAgYW5kIGBzaGVsbGBcclxuICogbWF5IGJlIHBhcnQgb2YgYSBsYXJnZXIgc3lzdGVtIG9yIGZyYW1ld29yaywgYW5kIHRoaXMgZGVjbGFyYXRpb24gZW5zdXJlcyBUeXBlU2NyaXB0IHJlY29nbml6ZXNcclxuICogdGhlc2UgcHJvcGVydGllcyBhbmQgdGhlaXIgdHlwZXMgZHVyaW5nIGRldmVsb3BtZW50LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIC8vIEFjY2Vzc2luZyB0aGUgcHJlbG9hZGVkIHVzZXJJZCwgaWYgYXZhaWxhYmxlXHJcbiAqIGNvbnN0IHVzZXJJZCA9IHdpbmRvdy50b3A/Ll9fcHJlbG9hZD8udXNlcklkO1xyXG4gKlxyXG4gKiAvLyBPYnRhaW5pbmcgYSB0b2tlbiBmcm9tIHRoZSBzaGVsbFxyXG4gKiBpZiAod2luZG93LnNoZWxsPy5nZXRUb2tlbkRlZmVycmVkKSB7XHJcbiAqICAgd2luZG93LnNoZWxsLmdldFRva2VuRGVmZXJyZWQoKS50aGVuKCh0b2tlbikgPT4ge1xyXG4gKiAgICAgY29uc29sZS5sb2coJ1JlY2VpdmVkIHRva2VuOicsIHRva2VuKTtcclxuICogICB9KTtcclxuICogfVxyXG4gKiBgYGBcclxuICovXHJcbmRlY2xhcmUgY29uc3Qgd2luZG93OiBXaW5kb3cgJiB7XHJcbiAgICB0b3A/OiBXaW5kb3cgJiB7XHJcbiAgICAgICAgX19wcmVsb2FkPzoge1xyXG4gICAgICAgICAgICB1c2VySWQ/OiBzdHJpbmc7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICBzaGVsbD86IHtcclxuICAgICAgICBnZXRUb2tlbkRlZmVycmVkPzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+O1xyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKiBNZXRhZGF0YSBmb3IgYW4gZW50aXR5LiAqL1xyXG5leHBvcnQgdHlwZSBFbnRpdHlNZXRhZGF0YTxUPiA9IHtcclxuICAgIC8qKiBOYW1lIG9mIHRoZSBQcmltYXJ5IE5hbWUvVGl0bGUgY29sdW1uLCBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLiAqL1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBrZXlvZiBUIHwgbnVsbDtcclxuXHJcbiAgICAvKiogTmFtZXMgb2YgYWxsIHRoZSBjb2x1bW5zICovXHJcbiAgICBjb2x1bW5OYW1lczogKGtleW9mIFQpW107XHJcblxyXG4gICAgLyoqIE1hcHBpbmdzIG9mIGFsbCBFbnRpdHkgUmVmZXJlbmNlIGNvbHVtbnMsIHRvIHRoZSBwbHVyYWwgbmFtZSBvZiB0aGUgZW50aXR5IHNldC4gKi9cclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiB7XHJcbiAgICAgICAgY29sdW1uTmFtZToga2V5b2YgVDtcclxuICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogc3RyaW5nO1xyXG4gICAgfVtdO1xyXG5cclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IHtcclxuICAgICAgICBjb2x1bW5OYW1lOiBrZXlvZiBUO1xyXG4gICAgICAgIGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxhbnk+O1xyXG4gICAgfVtdO1xyXG59O1xyXG5cclxuLyoqIEEgcmV0dXJuIHR5cGUgZm9yIHRoZSBMaXZlIENSVUQgU2VydmljZS4gKi9cclxuZXhwb3J0IHR5cGUgQ3J1ZFNlcnZpY2UgPSB7XHJcbiAgICAvKipcclxuICAgICAqIEFuIEFQSSBDcmVhdGUgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBwbHVyYWxMb2dpY2FsTmFtZSBQbHVyYWwgbG9naWNhbCBuYW1lIG9mIHRoZSBEeW5hbWljcyBBUEkgZW5kcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0gYm9keSBBbiBvYmplY3QgY29udGFpbmluZyBkYXRhIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICAgKiBAcGFyYW0gbWV0YWRhdGEgTWV0YWRhdGEgb2YgdGhlIGVudGl0eSBiZWluZyBjcmVhdGVkLlxyXG4gICAgICogQHJldHVybnMgQ3JlYXRlZCByZWNvcmQgSUQuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZTogPFRGb3JDcmVhdGUgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAgICAgIHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgYm9keTogVEZvckNyZWF0ZSxcclxuICAgICAgICBtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VEZvckNyZWF0ZT5cclxuICAgICkgPT4gUHJvbWlzZTx7IGlkOiBzdHJpbmcgfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbiBBUEkgUmV0cmlldmUgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBwbHVyYWxMb2dpY2FsTmFtZSBQbHVyYWwgbG9naWNhbCBuYW1lIG9mIHRoZSBEeW5hbWljcyBBUEkgZW5kcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkSWQgVGhlIElkIG9mIHRoZSByZWNvcmQgdG8gcXVlcnkgaW4gRHluYW1pY3MuXHJcbiAgICAgKiBAcGFyYW0gbWV0YWRhdGEgTWV0YWRhdGEgb2YgdGhlIGVudGl0eSBiZWluZyByZXRyaWV2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyBSZXRyaWV2ZWQgcmVjb3JkLlxyXG4gICAgICovXHJcbiAgICByZXRyaWV2ZTogPFRGb3JSZXRyaWV2YWwgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAgICAgIHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcmVjb3JkSWQ6IHN0cmluZyxcclxuICAgICAgICBtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VEZvclJldHJpZXZhbD5cclxuICAgICkgPT4gUHJvbWlzZTxURm9yUmV0cmlldmFsPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIEFQSSBSZXRyaWV2ZSBtdWx0aXBsZSByZXF1ZXN0LlxyXG4gICAgICogQHBhcmFtIHBsdXJhbExvZ2ljYWxOYW1lIFBsdXJhbCBsb2dpY2FsIG5hbWUgb2YgdGhlIER5bmFtaWNzIEFQSSBlbmRwb2ludC5cclxuICAgICAqIEBwYXJhbSBtZXRhZGF0YSBNZXRhZGF0YSBvZiB0aGUgZW50aXR5IGJlaW5nIHJldHJpZXZlZC5cclxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBmaWx0ZXJzIHRvIGFwcGx5IHRvIHRoZSBBUEkgcmV0cmlldmFsLlxyXG4gICAgICogQHJldHVybnMgUmV0cmlldmVkIHJlY29yZHMuXHJcbiAgICAgKi9cclxuICAgIHJldHJpZXZlTXVsdGlwbGU6IDxURm9yUmV0cmlldmFsIGV4dGVuZHMgb2JqZWN0PihcclxuICAgICAgICBwbHVyYWxMb2dpY2FsTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxURm9yUmV0cmlldmFsPixcclxuICAgICAgICBmaWx0ZXJzPzogQ29uZGl0aW9uRXhwcmVzc2lvbjxURm9yUmV0cmlldmFsPltdXHJcbiAgICApID0+IFByb21pc2U8VEZvclJldHJpZXZhbFtdPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIEFQSSBVcGRhdGUgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBwbHVyYWxMb2dpY2FsTmFtZSBQbHVyYWwgbG9naWNhbCBuYW1lIG9mIHRoZSBEeW5hbWljcyBBUEkgZW5kcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkSWQgVGhlIElkIG9mIHRoZSByZWNvcmQgdG8gdXBkYXRlIGluIER5bmFtaWNzLlxyXG4gICAgICogQHBhcmFtIGJvZHkgQW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSB0byBiZSB1cGRhdGVkLlxyXG4gICAgICogQHBhcmFtIG1ldGFkYXRhIE1ldGFkYXRhIG9mIHRoZSBlbnRpdHkgYmVpbmcgdXBkYXRlZC5cclxuICAgICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IDxURm9yVXBkYXRlIGV4dGVuZHMgb2JqZWN0PihcclxuICAgICAgICBwbHVyYWxMb2dpY2FsTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHJlY29yZElkOiBzdHJpbmcsXHJcbiAgICAgICAgYm9keTogUGFydGlhbDxURm9yVXBkYXRlPixcclxuICAgICAgICBtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VEZvclVwZGF0ZT5cclxuICAgICkgPT4gUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIEFQSSBEaXNhc3NvY2lhdGUgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBwbHVyYWxMb2dpY2FsTmFtZSBQbHVyYWwgbG9naWNhbCBuYW1lIG9mIHRoZSBEeW5hbWljcyBBUEkgZW5kcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0gaWQgVGhlIElkIG9mIHRoZSByZWNvcmQgdG8gZGlzYXNzb2NpYXRlIGluIER5bmFtaWNzLlxyXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSB0byBkaXNhc3NvY2lhdGUuXHJcbiAgICAgKiBAcGFyYW0gbWV0YWRhdGEgTWV0YWRhdGEgb2YgdGhlIGVudGl0eSBiZWluZyBkaXNhc3NvY2lhdGVkLlxyXG4gICAgICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSBvcGVyYXRpb25cclxuICAgICAqL1xyXG4gICAgZGlzYXNzb2NpYXRlOiA8VEZvclVwZGF0ZSBleHRlbmRzIG9iamVjdD4oXHJcbiAgICAgICAgcGx1cmFsTG9naWNhbE5hbWU6IHN0cmluZyxcclxuICAgICAgICBpZDogc3RyaW5nLFxyXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxURm9yVXBkYXRlPlxyXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVxdWVzdHMgY2xvc3VyZSBmb3IgdGhlIHNwZWNpZmllZCBDYXNlLlxyXG4gICAgICogQHBhcmFtIGluY2lkZW50SWQgSUQgb2YgdGhlIENhc2UgZm9yIHdoaWNoIHRvIHJlcXVlc3QgY2xvc3VyZS5cclxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgQ2FzZS5cclxuICAgICAqL1xyXG4gICAgZXhlY3V0ZVJlcXVlc3RDbG9zdXJlUG9ydGFsQWN0aW9uOiAoaW5jaWRlbnRJZDogc3RyaW5nKSA9PiBQcm9taXNlPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXF1ZXN0cyByZS1vcGVuIGZvciB0aGUgc3BlY2lmaWVkIENhc2UuXHJcbiAgICAgKiBAcGFyYW0gaW5jaWRlbnRJZCBJRCBvZiB0aGUgQ2FzZSBmb3Igd2hpY2ggdG8gcmVxdWVzdCByZS1vcGVuaW5nLlxyXG4gICAgICogQHJldHVybnMgVXBkYXRlZCBDYXNlLlxyXG4gICAgICovXHJcbiAgICBleGVjdXRlUmVxdWVzdFJlb3BlblBvcnRhbEFjdGlvbjogKGluY2lkZW50SWQ6IHN0cmluZykgPT4gUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3VibWl0cyBmZWVkYmFjayB0byBCaXN0ZWNoLlxyXG4gICAgICogQHBhcmFtIGZlZWRiYWNrRGVzY3JpcHRpb24gQ29udGVudCBvZiB0aGUgZmVlZGJhY2suXHJcbiAgICAgKiBAcGFyYW0gZmVlZGJhY2tDYXRlZ29yeSBUeXBlIG9mIGZlZWRiYWNrLlxyXG4gICAgICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSBvcGVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIGV4ZWN1dGVGZWVkYmFja1BvcnRhbEFjdGlvbjogKGZlZWRiYWNrRGVzY3JpcHRpb246IHN0cmluZywgZmVlZGJhY2tDYXRlZ29yeTogRmVlZGJhY2tDYXRlZ29yeSkgPT4gUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbmRzIGEgUG9ydGFsIEludml0YXRpb24gdG8gdGhlIENvbnRhY3QuXHJcbiAgICAgKiBAcGFyYW0gY29udGFjdElkIENvbnRhY3QgdG8gaW52aXRlLlxyXG4gICAgICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSBvcGVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIGV4ZWN1dGVTZW5kSW52aXRhdGlvblBvcnRhbEFjdGlvbjogKGNvbnRhY3RJZDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xvc2VzIHRoZSBzcGVjaWZpZWQgUHJvamVjdCBUYXNrLlxyXG4gICAgICogQHBhcmFtIHByb2plY3RUYXNrSWQgVGhlIFByb2plY3QgVGFzayB0byBjbG9zZVxyXG4gICAgICogQHBhcmFtIGNvbW1lbnQgVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBQcm9qZWN0IFRhc2tcclxuICAgICAqIEByZXR1cm5zIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uXHJcbiAgICAgKi9cclxuICAgIGV4ZWN1dGVDbG9zZVByb2plY3RUYXNrOiAocHJvamVjdFRhc2tJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XHJcbn07XHJcblxyXG50eXBlIE9EYXRhUmV0cmlldmVSZXNwb25zZTxUPiA9IFQgJiB7XHJcbiAgICBcIkBvZGF0YS5jb250ZXh0XCI6IHN0cmluZztcclxuICAgIFwiQG9kYXRhLmV0YWdcIjogc3RyaW5nO1xyXG59O1xyXG5cclxudHlwZSBPRGF0YVJldHJpZXZlTXVsdGlwbGVSZXNwb25zZTxUPiA9IHtcclxuICAgIFwiQG9kYXRhLmNvbnRleHRcIjogc3RyaW5nO1xyXG4gICAgXCJATWljcm9zb2Z0LkR5bmFtaWNzLkNSTS50b3RhbHJlY29yZGNvdW50XCI6IG51bWJlcjtcclxuICAgIFwiQE1pY3Jvc29mdC5EeW5hbWljcy5DUk0udG90YWxyZWNvcmRjb3VudGxpbWl0ZXhjZWVkZWRcIjogYm9vbGVhbjtcclxuICAgIFwiQE1pY3Jvc29mdC5EeW5hbWljcy5DUk0uZ2xvYmFsbWV0YWRhdGF2ZXJzaW9uXCI6IG51bWJlcjtcclxuICAgIHZhbHVlOiBUW107XHJcbn07XHJcblxyXG50eXBlIE9EYXRhRXJyb3JSZXNwb25zZSA9IHtcclxuICAgIGVycm9yOiB7XHJcbiAgICAgICAgY29kZTogc3RyaW5nO1xyXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgICBpbm5lcmVycm9yPzoge1xyXG4gICAgICAgICAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgICAgICAgdHlwZTogc3RyaW5nO1xyXG4gICAgICAgIH07XHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFBlcmZvcm0gQVBJIENSVUQgcmVxdWVzdHMgYWdhaW5zdCB0aGUgY3VycmVudCBpbnN0YW5jZSBvZiBEeW5hbWljcy5cclxuICogVXNlZCB3aGVuIGRlcGxveWVkIHRvIHRoZSBwb3J0YWwsIGFzIG9wcG9zZWQgdG8gbG9jYWwgZGV2ZWxvcG1lbnRcclxuICogQHJldHVybnMgVGhlIENSVUQgb3BlcmF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjb25zdCB1c2VMaXZlQ3J1ZFNlcnZpY2U6ICgpID0+IENydWRTZXJ2aWNlID0gKCkgPT4ge1xyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGU8VEZvckNyZWF0ZSBleHRlbmRzIG9iamVjdCwgVFJldHVybiBleHRlbmRzIG9iamVjdD4oXHJcbiAgICAgICAgcGx1cmFsTG9naWNhbE5hbWU6IHN0cmluZyxcclxuICAgICAgICBib2R5OiBURm9yQ3JlYXRlLFxyXG4gICAgICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxURm9yQ3JlYXRlPlxyXG4gICAgKTogUHJvbWlzZTx7IGlkOiBzdHJpbmcgfT4ge1xyXG4gICAgICAgIGlmICghd2luZG93LnNoZWxsPy5nZXRUb2tlbkRlZmVycmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImB3aW5kb3cuc2hlbGwuZ2V0VG9rZW5EZWZlcnJlZGAgaXMgbm90IGRlZmluZWRcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHdpbmRvdy5zaGVsbC5nZXRUb2tlbkRlZmVycmVkKCk7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZTtcclxuICAgICAgICBsZXQgcmVjb3JkSWQ6IHN0cmluZztcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL19hcGkvJHtwbHVyYWxMb2dpY2FsTmFtZX1gLCB7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIF9fUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuOiB0b2tlbixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShidWlsZFVwc2VydEJvZHkoYm9keSwgbWV0YWRhdGEpKSxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBBc3NlcnQgdGhlIHN0YXR1cyBpcyBub3QgJ05vIENvbnRlbnQnXHJcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwNCkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhyb3dFcnJvckZyb21SZXNwb25zZShyZXNwb25zZSwgeyBzdGF0dXNDb2RlOiAyMDQsIHN0YXR1c1RleHQ6IFwiTm8gQ29udGVudFwiIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBleHRyYWN0ZWRSZWNvcmRJZCA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiZW50aXR5aWRcIik7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWV4dHJhY3RlZFJlY29yZElkKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIHJlc3BvbnNlIGZyb20gUE9TVCByZXF1ZXN0IHRvIGNvbnRhaW4gdGhlICdlbnRpdHlpZCdgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVjb3JkSWQgPSBleHRyYWN0ZWRSZWNvcmRJZDtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgYSAnJHtwbHVyYWxMb2dpY2FsTmFtZX0nIHJlY29yZDpcXHJcXG4ke2Vycm9yfWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgaWQ6IHJlY29yZElkIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZU11bHRpcGxlPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAgICAgIHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgbWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhPFQ+LFxyXG4gICAgICAgIGZpbHRlcnM/OiBDb25kaXRpb25FeHByZXNzaW9uPFQ+W11cclxuICAgICk6IFByb21pc2U8VFtdPiB7XHJcbiAgICAgICAgaWYgKCF3aW5kb3cuc2hlbGw/LmdldFRva2VuRGVmZXJyZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYHdpbmRvdy5zaGVsbC5nZXRUb2tlbkRlZmVycmVkYCBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgaW50aWFsIHNlbGVjdCBxdWVyeSB1c2luZyB0aGUgY29sdW1uIG5hbWVzIGluIHRoZSBtZXRhZGF0YS5cclxuICAgICAgICBjb25zdCBzZWxlY3RRdWVyeSA9IGZvcm1hdFNlbGVjdFF1ZXJ5KG1ldGFkYXRhLmNvbHVtbk5hbWVzIGFzIHN0cmluZ1tdKTtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIGVudGl0eSBoYXMgYW4gYXBwcm9wcmlhdGUgc3RyaW5nIGZpZWxkLCBhZGQgYSBjYWNoZS1idXN0aW5nIHVuaXF1ZSBmaWx0ZXIgdG8gZW5zdXJlIGZyZXNoIGRhdGEgaXMgcmV0dXJuZWRcclxuICAgICAgICBpZiAobWV0YWRhdGEudGl0bGVDb2x1bW5OYW1lKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMgPSAoZmlsdGVycyA/PyBbXSkuY29uY2F0KFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IG1ldGFkYXRhLnRpdGxlQ29sdW1uTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogXCJuZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBgJ2NhY2hlLWJ1c3Rlci0ke25ld0d1aWQoKS5zdWJzdHJpbmcoMCwgOCl9J2AsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIGZpbHRlcnMgaGF2ZSBiZWVuIHByb3ZpZGVkIHRoZW4gZm9ybWF0IHRoZW0gaW50byBhIHF1ZXJ5IHN0cmluZyB0byBwcm92aWRlIGluIHRoZSBVUkwuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyUXVlcnkgPSBmaWx0ZXJzID8gZm9ybWF0RmlsdGVyUXVlcnkoZmlsdGVycykgOiBcIlwiO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgcHJvcGVydGllcyB0byBleHBhbmQgaGF2ZSBiZWVuIHByb3ZpZGVkIHRoZW4gZm9ybWF0IHRoZW0gaW50byBhIHF1ZXJ5IHN0cmluZyB0byBwcm92aWRlIGluIHRoZSBVUkwuXHJcbiAgICAgICAgY29uc3QgZXhwYW5kZWRQcm9wZXJ0aWVzUXVlcnkgPVxyXG4gICAgICAgICAgICBtZXRhZGF0YS5leHBhbmRQcm9wZXJ0aWVzLmxlbmd0aCA+IDAgPyBmb3JtYXRFeHBhbmRlZFByb3BlcnRpZXNRdWVyeShtZXRhZGF0YSkgOiBcIlwiO1xyXG5cclxuICAgICAgICAvLyBDb25jYXRlbmF0ZSB0aGUgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIFVSTC5cclxuICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gYCR7c2VsZWN0UXVlcnl9JHtmaWx0ZXJRdWVyeX0ke2V4cGFuZGVkUHJvcGVydGllc1F1ZXJ5fWA7XHJcblxyXG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgd2luZG93LnNoZWxsLmdldFRva2VuRGVmZXJyZWQoKTtcclxuICAgICAgICBsZXQgcmVzcG9uc2U6IFJlc3BvbnNlO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAvX2FwaS8ke3BsdXJhbExvZ2ljYWxOYW1lfT8ke3JlcXVlc3RVcmx9YCwge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIF9fUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuOiB0b2tlbixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gQXNzZXJ0IHRoZSBzdGF0dXMgaXMgT0tcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aHJvd0Vycm9yRnJvbVJlc3BvbnNlKHJlc3BvbnNlLCB7IHN0YXR1c0NvZGU6IDIwMCwgc3RhdHVzVGV4dDogXCJPS1wiIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IE9EYXRhUmV0cmlldmVNdWx0aXBsZVJlc3BvbnNlPFQ+ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byByZXRyaWV2ZSBtdWx0aXBsZSAnJHtwbHVyYWxMb2dpY2FsTmFtZX0nIHJlY29yZHM6XFxyXFxuJHtlcnJvcn1gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZTxUIGV4dGVuZHMgb2JqZWN0PihcclxuICAgICAgICBwbHVyYWxMb2dpY2FsTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHJlY29yZElkOiBzdHJpbmcsXHJcbiAgICAgICAgbWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhPFQ+XHJcbiAgICApOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICBpZiAoIXdpbmRvdy5zaGVsbD8uZ2V0VG9rZW5EZWZlcnJlZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJgd2luZG93LnNoZWxsLmdldFRva2VuRGVmZXJyZWRgIGlzIG5vdCBkZWZpbmVkXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBpbnRpYWwgc2VsZWN0IHF1ZXJ5IHVzaW5nIHRoZSBjb2x1bW4gbmFtZXMgaW4gdGhlIG1ldGFkYXRhLlxyXG4gICAgICAgIGNvbnN0IHNlbGVjdFF1ZXJ5ID0gZm9ybWF0U2VsZWN0UXVlcnkobWV0YWRhdGEuY29sdW1uTmFtZXMgYXMgc3RyaW5nW10pO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgZW50aXR5IGhhcyBhbiBhcHByb3ByaWF0ZSBzdHJpbmcgZmllbGQsIGFkZCBhIGNhY2hlLWJ1c3RpbmcgdW5pcXVlIGZpbHRlciB0byBlbnN1cmUgZnJlc2ggZGF0YSBpcyByZXR1cm5lZFxyXG4gICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5ID0gbWV0YWRhdGEudGl0bGVDb2x1bW5OYW1lXHJcbiAgICAgICAgICAgID8gYCYkZmlsdGVyPSR7bWV0YWRhdGEudGl0bGVDb2x1bW5OYW1lLnRvU3RyaW5nKCl9IG5lICdjYWNoZS1idXN0ZXItJHtuZXdHdWlkKCkuc3Vic3RyaW5nKDAsIDgpfSdgXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHByb3BlcnRpZXMgdG8gZXhwYW5kIGhhdmUgYmVlbiBwcm92aWRlZCB0aGVuIGZvcm1hdCB0aGVtIGludG8gYSBxdWVyeSBzdHJpbmcgdG8gcHJvdmlkZSBpbiB0aGUgVVJMLlxyXG4gICAgICAgIGNvbnN0IGV4cGFuZGVkUHJvcGVydGllc1F1ZXJ5ID1cclxuICAgICAgICAgICAgbWV0YWRhdGEuZXhwYW5kUHJvcGVydGllcy5sZW5ndGggPiAwID8gZm9ybWF0RXhwYW5kZWRQcm9wZXJ0aWVzUXVlcnkobWV0YWRhdGEpIDogXCJcIjtcclxuXHJcbiAgICAgICAgLy8gQ29uY2F0ZW5hdGUgdGhlIHBhcmFtZXRlcnMgdG8gYWRkIHRvIHRoZSBVUkwuXHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IGAke3NlbGVjdFF1ZXJ5fSR7ZmlsdGVyUXVlcnl9JHtleHBhbmRlZFByb3BlcnRpZXNRdWVyeX1gO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHdpbmRvdy5zaGVsbC5nZXRUb2tlbkRlZmVycmVkKCk7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL19hcGkvJHtwbHVyYWxMb2dpY2FsTmFtZX0oJHtyZWNvcmRJZH0pPyR7cmVxdWVzdFVybH1gLCB7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgX19SZXF1ZXN0VmVyaWZpY2F0aW9uVG9rZW46IHRva2VuLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBBc3NlcnQgdGhlIHN0YXR1cyBpcyBPS1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRocm93RXJyb3JGcm9tUmVzcG9uc2UocmVzcG9uc2UsIHsgc3RhdHVzQ29kZTogMjAwLCBzdGF0dXNUZXh0OiBcIk9LXCIgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogT0RhdGFSZXRyaWV2ZVJlc3BvbnNlPFQ+ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byByZXRyaWV2ZSBhIHNpbmd1bGFyICcke3BsdXJhbExvZ2ljYWxOYW1lfScgcmVjb3JkOlxcclxcbiR7ZXJyb3J9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAgICAgIHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcmVjb3JkSWQ6IHN0cmluZyxcclxuICAgICAgICBib2R5OiBQYXJ0aWFsPFQ+LFxyXG4gICAgICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUPlxyXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF3aW5kb3cuc2hlbGw/LmdldFRva2VuRGVmZXJyZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYHdpbmRvdy5zaGVsbC5nZXRUb2tlbkRlZmVycmVkYCBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgd2luZG93LnNoZWxsLmdldFRva2VuRGVmZXJyZWQoKTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gSWYgdGhlIHVwZGF0ZSBib2R5IGlzIG5vdCBlbXB0eVxyXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoYm9keSkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL19hcGkvJHtwbHVyYWxMb2dpY2FsTmFtZX0oJHtyZWNvcmRJZH0pYCwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQQVRDSFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9fUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuOiB0b2tlbixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJ1aWxkVXBzZXJ0Qm9keShib2R5LCBtZXRhZGF0YSkpLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQXNzZXJ0IHRoZSBzdGF0dXMgaXMgTm8tQ29udGVudFxyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhyb3dFcnJvckZyb21SZXNwb25zZShyZXNwb25zZSwgeyBzdGF0dXNDb2RlOiAyMDQsIHN0YXR1c1RleHQ6IFwiTm8gQ29udGVudFwiIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byB1cGRhdGUgJHtPYmplY3Qua2V5cyhib2R5KVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gYCcke2tleX0nYClcclxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfSBjb2x1bW5zIG9mIGEgJyR7cGx1cmFsTG9naWNhbE5hbWV9JyByZWNvcmQ6XFxyXFxuJHtlcnJvcn1gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZGlzYXNzb2NpYXRlKHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF3aW5kb3cuc2hlbGw/LmdldFRva2VuRGVmZXJyZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYHdpbmRvdy5zaGVsbC5nZXRUb2tlbkRlZmVycmVkYCBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgd2luZG93LnNoZWxsLmdldFRva2VuRGVmZXJyZWQoKTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL19hcGkvJHtwbHVyYWxMb2dpY2FsTmFtZX0oJHtpZH0pLyR7ZmllbGROYW1lfS8kcmVmYCwge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIkRFTEVURVwiLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIF9fUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuOiB0b2tlbixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjA0KSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aHJvd0Vycm9yRnJvbVJlc3BvbnNlKHJlc3BvbnNlLCB7IHN0YXR1c0NvZGU6IDIwNCwgc3RhdHVzVGV4dDogXCJObyBDb250ZW50XCIgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGRpc2Fzc29jaWF0ZSAnJHtmaWVsZE5hbWV9JyBmcm9tICcke3BsdXJhbExvZ2ljYWxOYW1lfScgcmVjb3JkIHdpdGggaWQgJyR7aWR9JzpcXHJcXG4ke2Vycm9yfWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlRmVlZGJhY2tQb3J0YWxBY3Rpb24oXHJcbiAgICAgICAgZmVlZGJhY2tEZXNjcmlwdGlvbjogc3RyaW5nLFxyXG4gICAgICAgIGZlZWRiYWNrQ2F0ZWdvcnk6IEZlZWRiYWNrQ2F0ZWdvcnlcclxuICAgICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGF3YWl0IGV4ZWN1dGVQb3J0YWxBY3Rpb24oe1xyXG4gICAgICAgICAgICBldmVudDogXCJGZWVkYmFja1wiLFxyXG4gICAgICAgICAgICBmZWVkYmFja0NhdGVnb3J5LFxyXG4gICAgICAgICAgICBmZWVkYmFja0Rlc2NyaXB0aW9uLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVJlcXVlc3RDbG9zdXJlUG9ydGFsQWN0aW9uKGluY2lkZW50SWQ6IHN0cmluZyk6IFByb21pc2U8SW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlPiB7XHJcbiAgICAgICAgYXdhaXQgZXhlY3V0ZVBvcnRhbEFjdGlvbih7XHJcbiAgICAgICAgICAgIGV2ZW50OiBcIlJlcXVlc3RDbG9zdXJlXCIsXHJcbiAgICAgICAgICAgIGluY2lkZW50SWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBhd2FpdCByZXRyaWV2ZShcImluY2lkZW50c1wiLCBpbmNpZGVudElkLCBSRVRSSUVWRV9NVUxUSVBMRV9JTkNJREVOVF9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlUmVxdWVzdFJlb3BlblBvcnRhbEFjdGlvbihpbmNpZGVudElkOiBzdHJpbmcpOiBQcm9taXNlPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT4ge1xyXG4gICAgICAgIGF3YWl0IGV4ZWN1dGVQb3J0YWxBY3Rpb24oe1xyXG4gICAgICAgICAgICBldmVudDogXCJSZXF1ZXN0UmVvcGVuXCIsXHJcbiAgICAgICAgICAgIGluY2lkZW50SWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBhd2FpdCByZXRyaWV2ZShcImluY2lkZW50c1wiLCBpbmNpZGVudElkLCBSRVRSSUVWRV9NVUxUSVBMRV9JTkNJREVOVF9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlU2VuZEludml0YXRpb25Qb3J0YWxBY3Rpb24oY29udGFjdElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCBleGVjdXRlUG9ydGFsQWN0aW9uKHtcclxuICAgICAgICAgICAgZXZlbnQ6IFwiU2VuZFBvcnRhbEludml0YXRpb25cIixcclxuICAgICAgICAgICAgY29udGFjdElkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUNsb3NlUHJvamVjdFRhc2socHJvamVjdFRhc2tJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCBleGVjdXRlUG9ydGFsQWN0aW9uKHtcclxuICAgICAgICAgICAgZXZlbnQ6IFwiQ2xvc2VQcm9qZWN0VGFza1wiLFxyXG4gICAgICAgICAgICBwcm9qZWN0VGFza0lkLFxyXG4gICAgICAgICAgICBjb21tZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhlY3V0ZXMgYSBQb3J0YWwgQWN0aW9uLlxyXG4gICAgICogQHBhcmFtIHN1Ym1pc3Npb25EYXRhIFN1Ym1pc3Npb24gdG8gbWFrZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVBvcnRhbEFjdGlvbihzdWJtaXNzaW9uRGF0YTogU3VibWlzc2lvbkRhdGEpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoc3VibWlzc2lvbkRhdGEpO1xyXG4gICAgICAgICAgICBjb25zdCB1cmxTdHJpbmcgPSBlbmNvZGVVUklDb21wb25lbnQoanNvblN0cmluZyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAvcG9ydGFsYWN0aW9ucy8/cGFyYW1zPSR7dXJsU3RyaW5nfWApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aHJvd0Vycm9yRnJvbVJlc3BvbnNlKHJlc3BvbnNlLCB7IHN0YXR1c0NvZGU6IDIwMCwgc3RhdHVzVGV4dDogXCJPS1wiIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZXhlY3V0ZSBQb3J0YWwgQWN0aW9uICcke3N1Ym1pc3Npb25EYXRhLmV2ZW50fSc6ICR7ZXJyb3J9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgY3JlYXRlLFxyXG4gICAgICAgIHJldHJpZXZlTXVsdGlwbGUsXHJcbiAgICAgICAgcmV0cmlldmUsXHJcbiAgICAgICAgdXBkYXRlLFxyXG4gICAgICAgIGRpc2Fzc29jaWF0ZSxcclxuICAgICAgICBleGVjdXRlRmVlZGJhY2tQb3J0YWxBY3Rpb24sXHJcbiAgICAgICAgZXhlY3V0ZVJlcXVlc3RDbG9zdXJlUG9ydGFsQWN0aW9uLFxyXG4gICAgICAgIGV4ZWN1dGVSZXF1ZXN0UmVvcGVuUG9ydGFsQWN0aW9uLFxyXG4gICAgICAgIGV4ZWN1dGVDbG9zZVByb2plY3RUYXNrLFxyXG4gICAgICAgIGV4ZWN1dGVTZW5kSW52aXRhdGlvblBvcnRhbEFjdGlvbixcclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogVGhyb3dzIGFuIGVycm9yIHdpdGggdGhlIG1vc3QgZGV0YWlsIHBvc3NpYmxlIGZyb20gdGhlIHJlc3BvbnNlLlxyXG4gKiBAcGFyYW0gcmVzcG9uc2UgUmVzcG9uc2UgdG8gcGFyc2UuXHJcbiAqIEBwYXJhbSBleHBlY3RlZFN0YXR1cyBFeHBlY3RlZCBzdGF0dXMgb2YgdGhlIHJlc3BvbnNlLCBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLlxyXG4gKiBAdGhyb3dzIEFsd2F5cyB0aHJvd3MgYW4gZXJyb3IuXHJcbiAqL1xyXG5hc3luYyBmdW5jdGlvbiB0aHJvd0Vycm9yRnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZSwgZXhwZWN0ZWRTdGF0dXM6IHsgc3RhdHVzQ29kZTogbnVtYmVyOyBzdGF0dXNUZXh0OiBzdHJpbmcgfSkge1xyXG4gICAgLy8gR2V0IHRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXlcclxuICAgIGNvbnN0IGVycm9yTWVzc2FnZTogc3RyaW5nID0gYXdhaXQgKGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCBnZW5lcmljRXJyb3JNZXNzYWdlID0gYEV4cGVjdGVkIEhUVFAgU3RhdHVzIENvZGUgdG8gYmUgJyR7ZXhwZWN0ZWRTdGF0dXMuc3RhdHVzQ29kZX0gKCR7ZXhwZWN0ZWRTdGF0dXMuc3RhdHVzVGV4dH0pJywgYnV0IHdhcyAnJHtyZXNwb25zZS5zdGF0dXN9J2A7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIEdldCB0aGUgSlNPTiByZXNwb25zZVxyXG4gICAgICAgICAgICBjb25zdCBwb3NzaWJsZUVycm9yT2JqZWN0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGxvb2tzIGxpa2UgYW4gT0RhdGEgZXJyb3JcclxuICAgICAgICAgICAgaWYgKGlzT0RhdGFFcnJvcihwb3NzaWJsZUVycm9yT2JqZWN0KSkge1xyXG4gICAgICAgICAgICAgICAgLy8gR2V0IGEgam9pbmVkIHN0cmluZyBvZiB0aGUgdW5pcXVlIGVycm9yIG1lc3NhZ2VzIGFuZCBlcnJvciBjb2RlcyByZXR1cm5lZFxyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JJbmZvID0gQXJyYXkuZnJvbShcclxuICAgICAgICAgICAgICAgICAgICBuZXcgU2V0KFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zc2libGVFcnJvck9iamVjdC5lcnJvci5pbm5lcmVycm9yPy50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZUVycm9yT2JqZWN0LmVycm9yLmlubmVyZXJyb3I/Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlRXJyb3JPYmplY3QuZXJyb3IuaW5uZXJlcnJvcj8uY29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgKEVycm9yIENvZGU6ICR7cG9zc2libGVFcnJvck9iamVjdC5lcnJvci5pbm5lcmVycm9yPy5jb2RlfSlgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlRXJyb3JPYmplY3QuZXJyb3IubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYChFcnJvciBDb2RlOiAke3Bvc3NpYmxlRXJyb3JPYmplY3QuZXJyb3IuY29kZX0pYCxcclxuICAgICAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGVycm9yUGFydCkgPT4gZXJyb3JQYXJ0KVxyXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZXJyb3JJbmZvfS4gJHtnZW5lcmljRXJyb3JNZXNzYWdlfWA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJpY0Vycm9yTWVzc2FnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBjb3VsZCBub3QgYmUgcGFyc2VkIGFzIGFuIE9EYXRhIEVycm9yLCBmYWxsYmFjayB0byBhIGdlbmVyaWMgZXJyb3JcclxuICAgICAgICAgICAgcmV0dXJuIGdlbmVyaWNFcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfSkoKTtcclxuXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFR5cGUgZ3VhcmQgdG8gdGVzdCB3aGV0aGVyIHRoZSBvYmplY3QgaXMgYW4gT0RhdGEgZXJyb3IgcmVzcG9uc2UuXHJcbiAqIEBwYXJhbSBvYmplY3QgT2JqZWN0IHRvIHRlc3QuXHJcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIG9iamVjdCBpcyBhbiBPRGF0YSBlcnJvciByZXNwb25zZS5cclxuICovXHJcbmZ1bmN0aW9uIGlzT0RhdGFFcnJvcihvYmplY3Q6IGFueSk6IG9iamVjdCBpcyBPRGF0YUVycm9yUmVzcG9uc2Uge1xyXG4gICAgY29uc3Qgb2JqZWN0QXNPRGF0YUVycm9yUmVzcG9uc2UgPSBvYmplY3QgYXMgT0RhdGFFcnJvclJlc3BvbnNlO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgdHlwZW9mIG9iamVjdEFzT0RhdGFFcnJvclJlc3BvbnNlLmVycm9yID09PSBcIm9iamVjdFwiICYmXHJcbiAgICAgICAgdHlwZW9mIG9iamVjdEFzT0RhdGFFcnJvclJlc3BvbnNlLmVycm9yLmNvZGUgPT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgICB0eXBlb2Ygb2JqZWN0QXNPRGF0YUVycm9yUmVzcG9uc2UuZXJyb3IubWVzc2FnZSA9PT0gXCJzdHJpbmdcIlxyXG4gICAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnN0cnVjdCB0aGUgJ3NlbGVjdCcgc2VjdGlvbiBvZiB0aGUgcXVlcnkgdG8gdGhlIFdlYiBBUEkuXHJcbiAqIEBwYXJhbSBjb2x1bW5OYW1lcyBUaGUgY29sdW1uIG5hbWVzIHByb3ZpZGVkIGluIHRoZSBXZWIgQVBJIHF1ZXJ5LlxyXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nICdTZWxlY3QnIHF1ZXJ5IHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGZpZWxkcyB3aWxsIGJlIHJldHJpZXZlZC5cclxuICovXHJcbmZ1bmN0aW9uIGZvcm1hdFNlbGVjdFF1ZXJ5KGNvbHVtbk5hbWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCRzZWxlY3Q9JHtjb2x1bW5OYW1lc1xyXG4gICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gIWNvbHVtbi5pbmNsdWRlcyhcIkBPRGF0YVwiKSlcclxuICAgICAgICAubWFwKChjb2x1bW4pID0+IGNvbHVtbi50b0xvY2FsZVN0cmluZygpKVxyXG4gICAgICAgIC5qb2luKFwiLFwiKX1gO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uc3RydWN0IHRoZSAnZmlsdGVyJyBzZWN0aW9uIG9mIHRoZSBxdWVyeSB0byB0aGUgV2ViIEFQSS5cclxuICogQHBhcmFtIGZpbHRlcnMgVGhlIGZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIFdlYiBBUEkgcXVlcnkuXHJcbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgJ0ZpbHRlcicgcXVlcnkgYXBwbGllZCB0byB0aGUgV2ViIEFQSSBxdWVyeS5cclxuICovXHJcbmZ1bmN0aW9uIGZvcm1hdEZpbHRlclF1ZXJ5PFQgZXh0ZW5kcyBvYmplY3Q+KGZpbHRlcnM6IENvbmRpdGlvbkV4cHJlc3Npb248VD5bXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGZpbHRlcnNcclxuICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+ICEoZmlsdGVyLmF0dHJpYnV0ZSBhcyBzdHJpbmcpLmluY2x1ZGVzKFwiQE9EYXRhXCIpKVxyXG4gICAgICAgIC5tYXAoKGZpbHRlcikgPT4gYCR7ZmlsdGVyLmF0dHJpYnV0ZSBhcyBzdHJpbmd9ICR7ZmlsdGVyLm9wZXJhdG9yfSAke2ZpbHRlci52YWx1ZSA/PyBcIlwifWApXHJcbiAgICAgICAgLmpvaW4oXCIgYW5kIFwiKTtcclxuXHJcbiAgICByZXR1cm4gYCYkZmlsdGVyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5U3RyaW5nKX1gO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0IHRoZSAnZXhwYW5kJyBwcm9wZXJ0aWVzIGluIHRoZSBtZXRhZGF0YS5cclxuICogQHBhcmFtIG1ldGFkYXRhIFRoZSBtZXRhZGF0YSB0byB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgZXhwYW5kZWQgcHJvcGVydGllcy5cclxuICogQHJldHVybnMgQSBzdHJpbmcgdG8gcmV0cmlldmUgdGhlIGV4cGFuZGVkIHByb3BlcnRpZXMgZnJvbSB0aGUgV2ViIEFQSS5cclxuICovXHJcbmZ1bmN0aW9uIGZvcm1hdEV4cGFuZGVkUHJvcGVydGllc1F1ZXJ5PFQ+KG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUPik6IHN0cmluZyB7XHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgZXhwYW5kZWQgcHJvcGVydGllcyB0aGVuIHByb2R1Y2UgYSBxdWVyeSBzdHJpbmcgZm9yIHRoZW0uXHJcbiAgICBpZiAobWV0YWRhdGEuZXhwYW5kUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPVxyXG4gICAgICAgICAgICBcIiYkZXhwYW5kPVwiICtcclxuICAgICAgICAgICAgbWV0YWRhdGEuZXhwYW5kUHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAocHJvcGVydHkpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3Byb3BlcnR5LmNvbHVtbk5hbWUudG9TdHJpbmcoKX0oJHtmb3JtYXRTZWxlY3RRdWVyeShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LmVudGl0eU1ldGFkYXRhLmNvbHVtbk5hbWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIG91dCBhbnkgbmVzdGVkIGV4cGFuZGVkIHByb3BlcnRpZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbHVtbk5hbWUpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvcGVydHkuZW50aXR5TWV0YWRhdGEuZXhwYW5kUHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKG5lc3RlZFByb3ApID0+IG5lc3RlZFByb3AuY29sdW1uTmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoY29sdW1uTmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGFzIHN0cmluZ1tdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9KWBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5qb2luKFwiLFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG59XHJcblxyXG4vKipcclxuICogTWFwIHRoZSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBrZXkgYW5kIHZhbHVlIHBhaXIuXHJcbiAqIEBwYXJhbSBtZXRhZGF0YSBUaGUgbWV0YWRhdGEgdXNlZCBmb3IgdGhlIGVudGl0eSByZWZlcmVuY2UgY29sdW1uIG1hcHBpbmdzLlxyXG4gKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIGN1cnJlbnQgZW50cnkuXHJcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgZW50cnkuXHJcbiAqL1xyXG5mdW5jdGlvbiBtYXBOYXZpZ2F0aW9uUHJvcGVydGllczxUPihtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VD4sIGtleTogYW55LCB2YWx1ZTogYW55KSB7XHJcbiAgICAvLyBJZiB0aGUga2V5IChjb2x1bW4gbmFtZSkgbG9va3MgbGlrZSBhbiBFbnRpdHkgUmVmZXJlbmNlXHJcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoXCJfXCIpICYmIGtleS5lbmRzV2l0aChcIl92YWx1ZVwiKSkge1xyXG4gICAgICAgIC8vIEZpbmQgYSBtYXBwaW5nIGRlc2NyaWJpbmcgdGhlIHBsdXJhbCBFbnRpdHkgU2V0IG5hbWVcclxuICAgICAgICBjb25zdCBtYXBwaW5nID0gbWV0YWRhdGEuZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3MuZmluZCgobWFwcGluZykgPT4gbWFwcGluZy5jb2x1bW5OYW1lID09PSBrZXkpO1xyXG5cclxuICAgICAgICAvLyBJZiBubyBtYXBwaW5nIHdhcyBmb3VuZFxyXG4gICAgICAgIGlmICghbWFwcGluZykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgXFxgZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3NcXGAgZG9lcyBub3QgY29udGFpbiBhIGRlZmluaXRpb24gZm9yIHRoZSBFbnRpdHkgUmVmZXJlbmNlIGNvbHVtbiAnJHtrZXl9J2BcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlbmFtZSB0aGUga2V5IChjb2x1bW4gbmFtZSkgZnJvbSBcIl9hcHBsZV92YWx1ZVwiIHRvIFwiYXBwbGVAb2RhdGEuYmluZFwiXHJcbiAgICAgICAga2V5ID0gYCR7bWFwcGluZy5uYXZpZ2F0aW9uUHJvcGVydHlOYW1lfUBvZGF0YS5iaW5kYDtcclxuXHJcbiAgICAgICAgLy8gUmVuYW1lIHRoZSB2YWx1ZSAoR1VJRCkgZnJvbSBcIkdVSURcIiB0byBcIi9hcHBsZXMoR1VJRClcIlxyXG4gICAgICAgIHZhbHVlID0gdmFsdWUgPyBgLyR7bWFwcGluZy5wbHVyYWxFbnRpdHlTZXROYW1lfSgke3ZhbHVlfSlgIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW2tleSwgdmFsdWVdO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHRoZSBvYmplY3QgdG8gSlNPTiBzdHJpbmdpZnkgZm9yIGFueSBjcmVhdGlvbiBvciB1cGRhdGUuXHJcbiAqIEBwYXJhbSBib2R5IFJlY29yZCB0byB1cHNlcnQuXHJcbiAqIEBwYXJhbSBtZXRhZGF0YSBNZXRhZGF0YSBvZiB0aGUgZW50aXR5LlxyXG4gKiBAcmV0dXJucyBPYmplY3QgdmFsaWQgZm9yIHVwc2VydC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVwc2VydEJvZHk8VCBleHRlbmRzIG9iamVjdD4oYm9keTogUGFydGlhbDxUPiwgbWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhPFQ+KTogb2JqZWN0IHtcclxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoYm9keSBhcyBhbnkpXHJcbiAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgdGhlIGtleXMgdGhhdCBjb250YWluICdAT0RhdGEnIGFzIHRoZXNlIGFyZSB0eXBpY2FsbHkgZm9ybWF0dGVkIHZhbHVlcy5cclxuICAgICAgICAgICAgLmZpbHRlcigoW2tleV0pID0+ICFrZXkuaW5jbHVkZXMoXCJAT0RhdGFcIikpXHJcbiAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgYW55IG5hdmlnYXRpb24gcHJvcGVydGllcyB0aGF0IGFyZSBudWxsLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChba2V5LCB2YWx1ZV0pID0+ICEoa2V5LnN0YXJ0c1dpdGgoXCJfXCIpICYmIGtleS5lbmRzV2l0aChcIl92YWx1ZVwiKSAmJiAhdmFsdWUpKVxyXG4gICAgICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIFtrZXksIHZhbHVlXSA9IG1hcE5hdmlnYXRpb25Qcm9wZXJ0aWVzKG1ldGFkYXRhLCBrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkUHJvcGVydGllcyA9IG1ldGFkYXRhLmV4cGFuZFByb3BlcnRpZXMuZmluZCgocHJvcCkgPT4gcHJvcC5jb2x1bW5OYW1lID09PSBrZXkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBrZXkgaXMgYW4gZXhwYW5kZWQgcHJvcGVydHkuXHJcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWRQcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkcyA9IHZhbHVlIGFzIFRbXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHJlY3Vyc2lvbiB0byBleHBhbmQgYWxsIHRoZSBwcm9wZXJ0aWVzLlxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gYnVpbGRVcHNlcnRCb2R5KHJlY29yZCwgZXhwYW5kZWRQcm9wZXJ0aWVzLmVudGl0eU1ldGFkYXRhKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtrZXksIHZhbHVlXTtcclxuICAgICAgICAgICAgfSlcclxuICAgICk7XHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgc3RhdGVjb2RlIG9mIGFuIEFjdGl2aXR5ICovXHJcbmV4cG9ydCBlbnVtIEFjdGl2aXR5U3RhdGVDb2RlIHtcclxuICAgIC8qKiBPcGVuICovXHJcbiAgICBPcGVuID0gMCxcclxuICAgIFxyXG4gICAgLyoqIENvbXBsZXRlZCAqL1xyXG4gICAgQ29tcGxldGVkID0gMSxcclxuICAgIFxyXG4gICAgLyoqIENhbmNlbGxlZCAqL1xyXG4gICAgQ2FuY2VsbGVkID0gMixcclxuICAgIFxyXG4gICAgLyoqIFNjaGVkdWxlZCAqL1xyXG4gICAgU2NoZWR1bGVkID0gMyxcclxufVxyXG4iLCIvKiogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBkaXJlY3Rpb24gb2YgYW4gUG9ydGFsIENvbW1lbnQgKi9cclxuZXhwb3J0IGVudW0gRGlyZWN0aW9uQ29kZSB7XHJcbiAgICAvKiogSW5jb21pbmcgKi9cclxuICAgIEluY29taW5nID0gMSxcclxuXHJcbiAgICAvKiogT3V0Z29pbmcgKi9cclxuICAgIE91dGdvaW5nID0gMixcclxufVxyXG4iLCIvKiogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBzdGF0dXNjb2RlIG9mIGEgUG9ydGFsIENvbW1lbnQgKi9cclxuZXhwb3J0IGVudW0gUG9ydGFsQ29tbWVudFN0YXR1c0NvZGUge1xyXG4gICAgLyoqIE9wZW4gKi9cclxuICAgIE9wZW4gPSAxLFxyXG4gICAgXHJcbiAgICAvKiogU2VudCAqL1xyXG4gICAgU2VudCA9IDIsXHJcbiAgICBcclxuICAgIC8qKiBSZWNlaXZlZCAqL1xyXG4gICAgUmVjZWl2ZWQgPSAzLFxyXG4gICAgXHJcbiAgICAvKiogQ2FuY2VsbGVkICovXHJcbiAgICBDYW5jZWxsZWQgPSA0LFxyXG5cclxuICAgIC8qKiBTY2hlZHVsZWQgKi9cclxuICAgIFNjaGVkdWxlZCA9IDUsXHJcbn1cclxuIiwiaW1wb3J0IHsgQWN0aXZpdHlTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQWN0aXZpdHlTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9EaXJlY3Rpb25Db2RlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1BvcnRhbENvbW1lbnRTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxcIjtcclxuXHJcbi8qKiBNb2NrIGRhdGEgZm9yIFBvcnRhbCBDb21tZW50cyAqL1xyXG5leHBvcnQgY29uc3QgTW9ja1BvcnRhbENvbW1lbnREYXRhOiBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MGMwLWFjZjQtZTE1ZWhrZ2dtajJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIyZmJjNmQ3Yi02OTYxLTQwYzAtYWNmNC1lMTVlOGNiMDMyZTFcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJJbSBzdHVjayBpbiBhbm90aGVyIGNvdW50cnksIGluIGEgY2F2ZS5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wN1QwODo0ODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA4OjQ4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMTEtNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjJmYmM2ZDdiLTY5NjEtNDBjMC1hY2Y0LWUxNWU4Y2IwMzJlMVwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkdvbm5hIG5lZWQgeW91ciBtYWdpYy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wN1QwOTowODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMTItNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjBlYTllZTkxLWVkYzAtNGRjMi04OThkLTFlMjhiYmFmZWRlNVwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlN0b3AgYnJlYWtpbmcgc3R1ZmYgcGxlYXNlIEh1bGsuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDktMDNUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDEzLTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1YTU3MDBiMi0xYTdmLTRiMGYtYjViYi1kNDIyMjM3YzVhMDNcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJIZSBoYXMgc2V0IHRoZSBzZXJ2ZXJzIG9uIGZpcmUuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDktMDNUMDg6Mjg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDE0LTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI3N2M2MTJjMi02MTcwLTRhMzAtODBiNS1iZDVlZTNhOWJmMTZcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJDYW4geW91IGhlbHAgbWUgZ2V0IGJhY2sgdG8gQXNnYXJkIGFzIEkgaGF2ZSBiZWVuIGV4aWxlZCB0byBNaWRnYXJkLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA5LTA0VDAzOjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQxNS02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiNzdjNjEyYzItNjE3MC00YTMwLTgwYjUtYmQ1ZWUzYTliZjE2XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiR29pbmcgdG8gbmVlZCBzb21lIFN0YXJrIHRlY2ggdG8gcHV0IHRoZSBmaXJlcyBvdXQuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDktMDZUMDg6NDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDE2LTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI0ZjRlZTMyMC05YTUwLTQzOGUtYmYyNC1mZmQ3ODZhZmMzOTdcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJJbSBub3Qgc3VyZSBob3cgdG8gdXNlIGEgY29tcHV0ZXIgeWV0LiBJJ3ZlIGJlZW4gc3R1Y2sgaW4gdGhlIGljZS5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0wNFQwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMTctNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImVlZDU2OTljLTQzOTUtNDg5ZS04NTNmLTllN2E2ZDVlYTBlYVwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIk15IG1hZ2ljIHRyaWNrcyBhcmUgYmV0dGVyIHRoYW4geW91cnMuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDVUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDE4LTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIxYjI2Yjk0ZC03MzdiLTQ1MWItYjg5ZC03MjViZDI1ZmYwMmVcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJXZSBuZWVkIHRvIGdldCB0aGUgdGVhbSB0b2dldGhlci4gV2UgbmVlZCB0byBzdG9wIExva2kgZnJvbSBzZXR0aW5nIHRoZSBzZXJ2ZXJzIG9uIGZpcmUuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDZUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDE5LTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIzZDZjNzQxMS0xNjIyLTQ4ZjMtYmQwYi01MDlkNmEzOWE1NjJcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJBLkkuTSBoYXMgYmlnIGFpbXMgZm9yIHZlcnkgZmFzdCBuZXR3b3JrIGNvbm5lY3Rpb25zLiBUaGVpciBzZXJ2ZXJzIGFyZSBhbHNvIGZpcmVwcm9vZiFcIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0wN1QwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMjEtNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImQ0MzdkZGUwLWM3OWQtNDFjNi1iNzE5LWUyMzc4MjY5ZGM3YlwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkhvdyBhcmUgd2UgZ29pbmcgdG8gcmVzb2x2ZSB0aGlzPyBJcyB0aGVyZSBhIGJhY2t1cCBvZiBhIGJhY2t1cD9cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0wOFQwNzo1NjowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMjItNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjUwOTkwOTEzLThlY2YtNGQ2Zi1iODA2LWIwMTI3OGM2ODM2OVwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkhlIGhhcyB1c2VkIEh5ZHJhJ3Mgc2VydmVycyBhbmQgaXMgdXNpbmcgdGhlaXIgYnJvYWRiYW5kIHRvby5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0xMVQwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMjMtNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNmOWRmNmVmLTQzYWUtNDRkYS1iM2FhLTY4NzZjNmU2ODY1N1wiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBcIkkgYW0gR3Jvb3QgSSBhbSBHcm9vdCBJIGFtIEdyb290IEkgYW0gR3Jvb3QgSSBhbSBHcm9vdCBJIGFtIEdyb290IEkgYW0gR3Jvb3QgSSBhbSBHcm9vdCBJIGFtIEdyb290LiBJIGFtIEdyb290LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTEyVDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQyNS02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiM2Y5ZGY2ZWYtNDNhZS00NGRhLWIzYWEtNjg3NmM2ZTY4NjU3XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSW0gc29ycnkgYWJvdXQgdGhhdCwgSSB0aGluayBHcm9vdCBnb3Qgb250byBteSBlbWFpbCBhY2NvdW50LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTEzVDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcImU0MWYwYzMxLTEwOGUtNGYzZS05NjRjLTI3MzNrZGdqc284XCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImU0MWYwYzhjLTEwOGUtNGYzZS05NjRjLTI3MzM2MTQyNWY0OFwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkRvIHlvdSBzZWUgdGhlIGZseWluZyBjaXR5IHRvbz9cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0xNFQwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkMzItNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImU0MWYwYzhjLTEwOGUtNGYzZS05NjRjLTI3MzM2MTQyNWY0OFwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIldlIGhhdmVuJ3Qgc2VlbiB5b3UgaW4gYSB3aGlsZSwgaG93J3MgdGhlIGpldCB0cmVhdGluZyB5b3U/XCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMTVUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDMzLTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1ODVkNDViYy0zNGJiLTQ1MzctOWVmNy1lZDY2ZDY5ZTU0Y2JcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJJdCdzIGdldHRpbmcgcmVhbGx5IGJvcmluZywgaSd2ZSByZXNvcnRlZCB0byBsZWFybmluZyBtYWdpYyB0cmlja3MuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMTZUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDM0LTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1ODVkNDViYy0zNGJiLTQ1MzctOWVmNy1lZDY2ZDY5ZTU0Y2JcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJZb3UgaGF2ZSBhYm91dCA1IHdlZWtzIGxlZnQuIFNvcnJ5LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTI1VDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQzNS02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiZTUzNjc1NTktMzZmMC00NDk0LTg3YmQtNmNiODI0OWM4ZDJjXCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXQncyBub3QgaGlzIGZhdWx0IGZvciB0aGUgc2VydmVyIGZpcmUuIEh5ZHJhIHVzZWQgaGltIHRvIHNldCB0aGUgV2FrYW5kYW4ncyBzZXJ2ZXJzIG9uIGZpcmUuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMTVUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDM2LTY5NjEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCJlNTM2NzU1OS0zNmYwLTQ0OTQtODdiZC02Y2I4MjQ5YzhkMmNcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJIZSBkaWQgYWxsIG9mIGl0IHVuZGVyIGhpcyBvd24gaW5mbHVlbmNlLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTAyVDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ0MS02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiYzA4M2FkMzQtNjliMi00NjAzLTkzNTgtNTIyZTU2YjNkYTI5XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSSBoYXMgYSBzZXJ2ZXIgZXJyb3IgYW5kIG5vdyBpIG5lZWQgYW4gb3BlcmF0aW9uLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTA2VDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ0Mi02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiNzdlNGE3YTQtNzAzNy00MWVkLThlOGYtOGEyMThmYWZiOWE0XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhpcyBndXkgaXMgYSBwbGFuZXQsIGl0cyBpbmZsYXRlZCBoaXMgRWdvIHNvIG11Y2guIEFsc28gaGUgaXMgbXkgZmF0aGVyLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTI1VDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ0My02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiYWExMzEzZGYtMDU5MC00NmFlLWFiOWEtNjFjN2QxYTE3YjA2XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiTmVkIGlzIGJ1c3kgZml4aW5nIGEgc2VydmVyIGlzc3VlLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEyLTE0VDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTJUMDk6NDM6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ0NS02OTYxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiYzM0ODk1NWYtYWQ0OC00M2MzLTg4YWItNDIzZmYyYmI4ZTI4XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXQgdHVybnMgb3V0IG15IHNpc3RlciBpcyBIZWxhLCBzaGUgaXMgZ29vZCBhdCBmaXhpbmcgc2VydmVycy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMi0xNlQwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkNDctNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjg2NGU0ZjZmLWZhYzYtNDViMS1iNzIwLWI1MjE1MzI1OWZlM1wiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIldha2FuZGEgaXMgZ3JlYXQsIHdlIGhhdmUgZmlyZXByb29mIHNlcnZlcnMgbWFkZSBmcm9tIHZpYnJhbml1bS5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMi0xN1QwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA5LTEyVDA5OjQzOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkNTEtNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNiNWIxODQwLWM5NzgtNDc2ZS04Njk3LTE0OWIxNjU3M2Y4MVwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkkgZ290IGludG8gc29tZSB0cm91YmxlIGFuZCBuZWVkIHlvdSBkb2MuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTItMTlUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0xMlQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDUyLTkxMjMtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIzYjViMTg0MC1jOTc4LTQ3NmUtODY5Ny0xNDliMTY1NzNmODFcIixcclxuICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJJIG5lZWQgdGhpcyBzb3J0ZWQgQVNBUC5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMi0xM1QwNzoxODowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTEwLTEzVDA5OjAxOjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IEFjdGl2aXR5U3RhdGVDb2RlW1wiQ29tcGxldGVkXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkNTMtOTEyMy00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImVlZDU2OTljLTQzOTUtNDg5ZS04NTNmLTllN2E2ZDVlYTBlYVwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBcIkFudG1hbiBzaHJ1bmsgdGhlIHNlcnZlciBhbmQgaXRzIG9ubHkgd29ya2luZyB3aXRoIHF1YW50dW0gcHJvY2Vzc2luZywgY2FuIHdlIGdldCBhIG5ldyBvbmUgcGxlYXNlP1wiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTExLTE0VDA3OjE4OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMTAtMTNUMDk6MDE6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVbXCJTZW50XCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjRoZmhkZmQ0Ny02OTYxLTUwZDItYmJmNC1lMTVlOGVyMDMyYTNcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiMzc3ZTQ2NTItZTM4ZC00YzBjLTk3NjgtYjA0N2E0YTQ1OWM2XCIsXHJcbiAgICAgICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlOiBEaXJlY3Rpb25Db2RlW1wiSW5jb21pbmdcIl0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSSB3YW50IFNvR0Zhc3QgYW5kIEkgd2FudCBpdCBpbiBhbGwgb2YgVmFsaGFsbGEuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjItMTAtMTRUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMi0xMS0xOVQwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiZmM5ZDYyZGEtNzcxNi00NmE1LTlhNDItYWY0MTk5NmZjNjBkXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImI5YzVmZTMzLTgwOGYtNDdhMC04NDAyLWRlOWIyZWUxMGE3ZFwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkdhcmV0aCBTb3V0aGdhdGUgc3RvcHMgYXQgcmVkIGxpZ2h0cyBpbiBHVEEuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjQtMDYtMjdUMDc6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyNC0wNi0yN1QwOTo0MzowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBBY3Rpdml0eVN0YXRlQ29kZVtcIkNvbXBsZXRlZFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxDb21tZW50U3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG5dO1xyXG4iLCJpbXBvcnQgeyBNYWpvckluY2lkZW50VXBkYXRlIH0gZnJvbSBcIi4uL01vZGVscy9NYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7IE1vY2tDb250YWN0RGF0YSB9IGZyb20gXCIuL01vY2tDb250YWN0RGF0YVwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgTWFqb3IgSW5jaWRlbnQgVXBkYXRlcyAqL1xyXG5leHBvcnQgY29uc3QgTW9ja01ham9ySW5jaWRlbnRVcGRhdGVEYXRhOiBNYWpvckluY2lkZW50VXBkYXRlW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjJmYmM2ZDdiLTY5NjEtNDBjMC1hY2Y0LWUxNWU4Y2IwMzJlMVwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5uaWNrRnVyeS5jb250YWN0aWQsXHJcbiAgICAgICAgYWN0dWFsZW5kOiBcIjIwMjAtMDctMDdUMDk6NTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBcIjFcIixcclxuICAgICAgICBzdWJqZWN0OiBcIlRoZSAxMCByaW5ncyBoYXZlIGEgbG90IG9mIHdlYXBvbnJ5LlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIldlIG5lZWQgdG8gdHJ5IGFuZCBzdG9wIHRoZW0gZnJvbSB1c2luZyB0aGVpciBtaXNzaWxlcy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wN1QwODozMTo1NS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MDExLWFjZjQtZTE1ZThlcjAzMmUyXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjIwZWE5ZWU5MS1lZGMwLTRkYzItODk4ZC0xZTI4YmJhZmVkZTVcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEubmlja0Z1cnkuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJCaWcgZ3JlZW4gcmFnaW5nIG1vbnN0ZXIuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlcmUgaXMgYSBiaWcgZ3JlZW4gbW9uc3RlciBydW5uaW5nIHJhbXBhbnQgYXJvdW5kIHRoZSBjaXR5LiBXZSBuZWVkIGFpciBzdXBwb3J0IEFTQVAhXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDg6MzM6NTUuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAxMi1hY2Y0LWUxNWU4ZXIwMzJlM1wiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1YTU3MDBiMi0xYTdmLTRiMGYtYjViYi1kNDIyMjM3YzVhMDNcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEubmlja0Z1cnkuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJUaGVyZSBpcyBhIG1hbiBvbiB0aGUgRm9ybXVsYSAxIHRyYWNrLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZXJlIGlzIGEgbWFuIG9uIHRoZSBGMSB0cmFjaywgd2UgbmVlZCBJcm9uIE1hbiBub3cuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDhUMDg6MjM6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAxMy1hY2Y0LWUxNWU4ZXIwMzJlNFwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1YTU3MDBiMi0xYTdmLTRiMGYtYjViYi1kNDIyMjM3YzVhMDNcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBhY3R1YWxlbmQ6IFwiMjAyMC0wNy0wN1QwOTo1ODowMC4wMDBaXCIsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiVGhlIHN0YXJrIGV4cG8gaGFzIGdvbmUgYXdyeS5cIixcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgXCJXZSBoYXZlIHJlbW90ZWx5IGNvbnRyb2xsZWQgbWFjaGluZXMgYXR0YWNraW5nIGNpdmlsaWFucy4gSXJvbiBNYW4gYW5kIFdhciBNYWNoaW5lIG5lZWQgdG8gYWN0IGZhc3QuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDhUMDg6Mjc6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAxNC1hY2Y0LWUxNWU4ZXIwMTRhZlwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI3N2M2MTJjMi02MTcwLTRhMzAtODBiNS1iZDVlZTNhOWJmMTZcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudGhvci5jb250YWN0aWQsXHJcbiAgICAgICAgYWN0dWFsZW5kOiBcIjIwMjAtMDctMDdUMDk6NTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBcIjFcIixcclxuICAgICAgICBzdWJqZWN0OiBcIkxva2kgaXMgdGFraW5nIG92ZXIgQXNnYXJkLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkkgaGF2ZSBiZWVuIGV4aWxlZCB0byBNaWRnYXJkIGFuZCBMb2tpIGlzIHRyeWluZyB0cnlpbmcgdG8gdGFrZSB0aGUgdGhyb25lIG9mIEFzZ2FyZC5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wOFQwODozMjoxMS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MDE1LWFjZjQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjRmNGVlMzIwLTlhNTAtNDM4ZS1iZjI0LWZmZDc4NmFmYzM5N1wiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGV2ZVJvZ2Vycy5jb250YWN0aWQsXHJcbiAgICAgICAgYWN0dWFsZW5kOiBcIjIwMjAtMDctMDdUMDk6NTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBcIjFcIixcclxuICAgICAgICBzdWJqZWN0OiBcIlJlZCBTa3VsbCBoYXMgdGhlIFRlc3NlcmFjdC5cIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJSZWQgU2t1bGwgaGFzIHRoZSBUZXNzZXJhY3QgYW5kIGNvdWxkIHdyZWFrIGhhdm9jIHdpdGggaXQuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDhUMDg6MzE6MTMuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAxNi1hY2Y0LWUxNWU4MTIzMTJmc1wiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI0ZjRlZTMyMC05YTUwLTQzOGUtYmYyNC1mZmQ3ODZhZmMzOTdcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RldmVSb2dlcnMuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJJIG5lZWQgdG8gY3Jhc2ggaW50byB0aGUgSWNlLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRvIHN0b3AgdGhlc2UgbWlzc2lsZXMgcmVhY2hpbmcgdGhlaXIgZGVzdGluYXRpb24gSSBtdXN0IGNyYXNoIHRoaXMgcGxhbmUgaW50byB0aGUgaWNlLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA4LTAxVDA4OjMyOjEzLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMDk6MzU6MDAuMDAwWlwiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi02OTYxLTQxMTctYWNmNC1lMTVlODEyMzEyZnNcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiMWIyNmI5NGQtNzM3Yi00NTFiLWI4OWQtNzI1YmQyNWZmMDJlXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLm5pY2tGdXJ5LmNvbnRhY3RpZCxcclxuICAgICAgICBhY3R1YWxlbmQ6IFwiMjAyMC0wNy0wN1QwOTo1ODowMC4wMDBaXCIsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiTG9raSBpcyBhdHRhY2tpbmcgTmV3IFlvcmsuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiV2UgYXJlIGdvaW5nIHRvIG5lZWQgdGhlIEF2ZW5nZXJzIHRvIGFzc2VtYmxlIHRvIGdldCBvdXQgb2YgdGhpcyBvbmUuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDgtMTFUMTE6MzI6MTMuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTZhc3MtMjMxOC1hY2Y0LWUxNWU4MTIzMTJmc1wiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIzZDZjNzQxMS0xNjIyLTQ4ZjMtYmQwYi01MDlkNmEzOWE1NjJcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBhY3R1YWxlbmQ6IFwiMjAyMC0wNy0wN1QwOTo1ODowMC4wMDBaXCIsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiQS5JLk0gaXMgdXAgdG8gc29tZXRoaW5nLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkltIGdvaW5nIHRvIHNvcnQgdGhpcyBvdXQsIHNob3VsZCBiZSBzb2x2ZWQgaW4gYSBmZXcgZGF5cy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wOC0xMVQxMjoxMzoxMS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MDIxLWFkZnNzNC1lMTVlODEyMzEyZnNcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiZDQzN2RkZTAtYzc5ZC00MWM2LWI3MTktZTIzNzgyNjlkYzdiXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRob3IuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJNYWxla2l0aCBpcyB1cCB0byBzb21ldGhpbmcuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGUgaXMgY2F1c2luZyBoYXZvYyBvbiBNaWRnYXJkLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA4LTExVDEzOjE2OjExLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMDk6MzU6MDAuMDAwWlwiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi02OTYxLTQwMjItYWRmc3M0LWUxNWU4MTIzMTJmc1wiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1MDk5MDkxMy04ZWNmLTRkNmYtYjgwNi1iMDEyNzhjNjgzNjlcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RldmVSb2dlcnMuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJCdWNreSBpcyB1cCB0byBzb21ldGhpbmcuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGUgaXMgYnJlYWtpbmcgV2FrYW5kYSdzIHNlcnZlcnMuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDgtMTVUMTM6MTg6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAyMy1hZGZzczQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNmOWRmNmVmLTQzYWUtNDRkYS1iM2FhLTY4NzZjNmU2ODY1N1wiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5wZXRlclF1aWxsLmNvbnRhY3RpZCxcclxuICAgICAgICBhY3R1YWxlbmQ6IFwiMjAyMC0wNy0wN1QwOTo1ODowMC4wMDBaXCIsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiUm9uYW4gaXMgdXAgdG8gc29tZXRoaW5nLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkhlIGhhcyBhbG1vc3QgZ290IGhpcyBoYW5kcyBvbiB0aGUgcG93ZXIgc3RvbmUuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDgtMTVUMTM6MTg6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAyNC1hZGZzczQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImU0MWYwYzhjLTEwOGUtNGYzZS05NjRjLTI3MzM2MTQyNWY0OFwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGV2ZVJvZ2Vycy5jb250YWN0aWQsXHJcbiAgICAgICAgYWN0dWFsZW5kOiBcIjIwMjAtMDctMDdUMDk6NTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBcIjFcIixcclxuICAgICAgICBzdWJqZWN0OiBcIlVsdHJvbiBpcyB1cCB0byBzb21ldGhpbmcuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGUgaGFzIGxpZnRlZCBTb2tvdmlhIHVwIGludG8gdGhlIHNreSwgd2hhdCBpcyBnb2luZyBvbj9cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wOC0xNVQxNzoxODoxMS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MGM1LWFkZnNzNC1lMTVlODEyMzEyZnNcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiNTg1ZDQ1YmMtMzRiYi00NTM3LTllZjctZWQ2NmQ2OWU1NGNiXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnNjb3R0TGFuZy5jb250YWN0aWQsXHJcbiAgICAgICAgYWN0dWFsZW5kOiBcIjIwMjAtMDctMDdUMDk6NTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBcIjFcIixcclxuICAgICAgICBzdWJqZWN0OiBcIlllbGxvdyBKYWNrZXQgaXMgdXAgdG8gc29tZXRoaW5nLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkhlIGhhcyBzdG9sZSBIYW5rJ3MgUHltIFBhcnRpY2FscyBhbmQgaXMgZ29pbmcgdG8gc2hyaW5rIHRoZSBzZXJ2ZXIuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDgtMTdUMTI6MTE6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAyNS1hZGZzczQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImU1MzY3NTU5LTM2ZjAtNDQ5NC04N2JkLTZjYjgyNDljOGQyY1wiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50b255U3RhcmsuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJTdGV2ZSBpcyB1cCB0byBzb21ldGhpbmcuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGUgaXMgb24gdGhlIHJ1biB3aXRoIEJ1Y2t5LCB3ZSBuZWVkIHRvIGdldCB0aGVtIHVuZGVyIGNvbnRyb2wuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDktMTdUMTM6MTE6MTAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAyNi1hZGZzczQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImMwODNhZDM0LTY5YjItNDYwMy05MzU4LTUyMmU1NmIzZGEyOVwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICAgICAgYWN0dWFsZW5kOiBcIjIwMjAtMDctMDdUMDk6NTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBcIjFcIixcclxuICAgICAgICBzdWJqZWN0OiBcIkRvcm1hbW11IGlzIHVwIHRvIHNvbWV0aGluZy5cIixcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgXCJIZSBhbmQgaGlzIGRpc2NpcGxlcyBhcmUgYnJlYWtpbmcgYWxsIHRoZSBzZXJ2ZXJzLCB3ZSBuZWVkIHRvIHNlbmQgdGhlbSBiYWNrIHRvIHRoZSBEYXJrIERpbWVuc2lvbi5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wOS0yM1QwOToxMToxMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjk2MS00MDMxLWFkZnNzNC1lMTVlODEyMzEyZnNcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiNzdlNGE3YTQtNzAzNy00MWVkLThlOGYtOGEyMThmYWZiOWE0XCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnBldGVyUXVpbGwuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJFZ28gaXMgdXAgdG8gc29tZXRoaW5nLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkhlIGlzIHRyeWluZyB0byBnZXQgbWUgdG8gdGFrZSBvdmVyIHNlcnZlcnMgd2l0aCBoaW0uXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDNUMTA6MTE6MTAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtNDAzMi1hZGZzczQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNiNWIxODQwLWM5NzgtNDc2ZS04Njk3LTE0OWIxNjU3M2Y4MVwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50b255U3RhcmsuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJUaGFub3MgaXMgdXAgdG8gc29tZXRoaW5nLlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkhlIGhhcyBqdXN0IHN0b2xlIHRoZSBQb3dlciBTdG9uZSBhbmQgaXMgbm93IHRyeWluZyB0byBnZXQgdGhlIE1pbmQgU3RvbmUgZnJvbSBWaXNpb24uXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDdUMTA6MTU6MTAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTY5NjEtMzIzMi1hZGZzczQtZTE1ZTgxMjMxMmZzXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNiNWIxODQwLWM5NzgtNDc2ZS04Njk3LTE0OWIxNjU3M2Y4MVwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50b255U3RhcmsuY29udGFjdGlkLFxyXG4gICAgICAgIGFjdHVhbGVuZDogXCIyMDIwLTA3LTA3VDA5OjU4OjAwLjAwMFpcIixcclxuICAgICAgICBwcmlvcml0eWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogXCIxXCIsXHJcbiAgICAgICAgc3ViamVjdDogXCJUaGFub3MgYW5kIHRoZSBTdG9uZXMuXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgIFwiSWYgVGhhbm9zIGdldHMgaGlzIGhhbmRzIG9uIGFsbCA2IEluZmluaXR5IFN0b25lcyBoZSB3aWxsIGhhdmUgdGhlIHBvd2VyIHRvIHdpcGUgb3V0IGhhbGYgb2YgdGhlIGludGVybmV0LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTAzVDExOjE4OjEwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMDk6MzU6MDAuMDAwWlwiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi02OTYxLTQwNDMtYWNmNC1lMTVlOGVyMDMyMTJcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiZWVkNTY5OWMtNDM5NS00ODllLTg1M2YtOWU3YTZkNWVhMGVhXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXZlUm9nZXJzLmNvbnRhY3RpZCxcclxuICAgICAgICBhY3R1YWxlbmQ6IFwiMjAyMC0wNy0wN1QwOTo1ODowMC4wMDBaXCIsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBcIjFcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFwiMVwiLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiVGhhbm9zIGp1c3QgdXNlZCB0aGUgSW5maW5pdHkgR2F1bnRsZXRcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJGaWZ0eSBQZXJjZW50IG9mIGxpZmUgaW4gdGhlIHVuaXZlcnNlIGlzIEdPTkUhXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDlUMTA6MTI6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICB9LFxyXG5dO1xyXG4iLCJpbXBvcnQgeyBQb3J0YWxFbWFpbCB9IGZyb20gXCIuLi9Nb2RlbHMvUG9ydGFsRW1haWxcIjtcclxuaW1wb3J0IHsgTW9ja0NvbnRhY3REYXRhIH0gZnJvbSBcIi4vTW9ja0NvbnRhY3REYXRhXCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBQb3J0YWwgRW1haWxzICovXHJcbmV4cG9ydCBjb25zdCBNb2NrUG9ydGFsRW1haWxEYXRhOiBQb3J0YWxFbWFpbFtdID0gW1xyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTAwMDEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIyZmJjNmQ3Yi02OTYxLTQwYzAtYWNmNC1lMTVlOGNiMDMyZTFcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJJcm9uIE1hblwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIldlIG5lZWQgeW91IHRvIGNvbWUgYW5kIGhlbHAgdXMgZml4IHRoZXNlIHNlcnZlcnMuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDc6MDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwNzowODowMC4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItMDAwMS00MGMwLWFjZjQtZTE1ZThlcjAzMmUyXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjJmYmM2ZDdiLTY5NjEtNDBjMC1hY2Y0LWUxNWU4Y2IwMzJlMVwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiVG9ueSBTdGFyayBpcyBJcm9uIE1hblwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkRpZCB5b3Ugc2VlIHRoYXQgVG9ueSBTdGFyayBpcyBJcm9uIE1hbj8gTmV3cyB0byBtZSFcIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wN1QxMjowNjowMC4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDEyOjA2OjAwLjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi0wMDAxLTQwYzAtYWNmNC1lMTVlOGVyMDMyZTNcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiMmZiYzZkN2ItNjk2MS00MGMwLWFjZjQtZTE1ZThjYjAzMmUxXCIsXHJcbiAgICAgICAgYmlzdGVjaF9kaXJlY3Rpb246IHRydWUsXHJcbiAgICAgICAgc3ViamVjdDogXCJUb255IFN0YXJrIGlzIG9idmlvdXNseSBJcm9uIE1hblwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkRpZCB5b3Uga25vdyBUb255IFN0YXJrIGlzIElyb24gTWFuPyBTdXBlciBvYnZpb3VzIHRvIG1lIVwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA3VDEzOjE2OjAwLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMTM6MTY6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTAwMDEtNDBjMC1hY3NzLWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIwZWE5ZWU5MS1lZGMwLTRkYzItODk4ZC0xZTI4YmJhZmVkZTVcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbnZvaWNlOiAkMTAwLDAwMCwwMDBcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJIZWxsbyBCcnVjZSwgeW91IGhhdmUgY2F1c2VkIGNoYW9zIGluIHRoZSBjaXR5LiBJIHdpbGwgYmUgaW52b2ljaW5nIHlvdSBmb3IgdGhlIGRhbWFuZ2UgY2F1c2VkLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA3VDE0OjA2OjMxLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMTQ6MDY6MzEuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTBjYzEtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1YTU3MDBiMi0xYTdmLTRiMGYtYjViYi1kNDIyMjM3YzVhMDNcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJXaGlwbGFzaCBuZWVkIGEgbmV3IHNlcnZlci5cIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJIZWxsbyBUb255LCB3b3VsZCB5b3UgYmUgYWJsZSB0byBnZXQgV2hpcGxhc2ggYSBuZXcgc2VydmVyPyBIaXMgb2xkIHdhcyB3YXMgc2V0IG9uIGZpcmUuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDgtMDFUMTQ6MDY6MzEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOC0wMVQxNDowNjozMS4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItMDExMS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjc3YzYxMmMyLTYxNzAtNGEzMC04MGI1LWJkNWVlM2E5YmYxNlwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgXCJUaG9yIGlzIGNhdXNpbmcgY2hhb3Mgb24gRWFydGguIFdlIG5lZWQgdG8gZ2V0IHJpZCBvZiBoaW0hIEkgaG9wZSB3ZSBuZXZlciBzZWUgaGlzIGJyb3RoZXIgTG9raSBlaXRoZXIuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDktMDJUMTE6MDk6MzcuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0wMlQxMTowOTozNy4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItMzMwMS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjRmNGVlMzIwLTlhNTAtNDM4ZS1iZjI0LWZmZDc4NmFmYzM5N1wiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkltIGdvaW5nIHRvIG5lZWQgYSBuZXcgc3VpdCwgY2FuIHlvdSBtYWtlIG1lIG9uZT8gT2ggbmV2ZXJtaW5kLCB5b3UgYXJlbid0IGJvcm4geWV0LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA5LTA3VDExOjA5OjM3LjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMDdUMTE6MDk6MzcuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTQ0NDQtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIxYjI2Yjk0ZC03MzdiLTQ1MWItYjg5ZC03MjViZDI1ZmYwMmVcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogdHJ1ZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJIZWxsbywgY2FuIEkgYmVjb21lIHBhcnQgb2YgeW91ciBBdmVuZ2VycyB0ZWFtPyBJIGNhbiBmaXggeW91ciBzZXJ2ZXJzLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA5LTE0VDEwOjEwOjM3LjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMTRUMTA6MTA6MzcuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTU1NTUtNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIzZDZjNzQxMS0xNjIyLTQ4ZjMtYmQwYi01MDlkNmEzOWE1NjJcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbiByZWZlcmVuY2UgdG86IFRFU1QtMTIzXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgIFwiQS5JLk0gZm9yIGJldHRlciBiYW5kd2l0aC4gV2UgY2FuIG9mZmVyIHlvdSBhIG11Y2ggYmV0dGVyIGRlYWwgb24gYmFuZHdpdGggd2l0aCBtdWNoIGZhc3RlciBkb3dubG9hZCBzcGVlZHMuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDktMjFUMTE6MDk6MzcuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wOS0yMVQxMTowOTozNy4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjY2Ni00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImQ0MzdkZGUwLWM3OWQtNDFjNi1iNzE5LWUyMzc4MjY5ZGM3YlwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIk1hbGVraXRoIGlzIGNhdXNpbmcgYWxvdCBvZiBjaGFvcyB3aXRoIHRoZSBzZXJ2ZXJzLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA5LTI4VDExOjIzOjM3LjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDktMjhUMTE6MjM6MzcuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTc3NzctNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1MDk5MDkxMy04ZWNmLTRkNmYtYjgwNi1iMDEyNzhjNjgzNjlcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbiByZWZlcmVuY2UgdG86IFRFU1QtMTIzXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQnVja3kgaXMgd29ya2luZyBvbiBzZXJ2ZXJzIHdpdGggSHlkcmEuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDJUMTE6MDk6MzcuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0xMC0wMlQxMTowOTozNy4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItODg4OC00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNmOWRmNmVmLTQzYWUtNDRkYS1iM2FhLTY4NzZjNmU2ODY1N1wiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJvbmFuIGhhcyBnb3QgdGhlIG1vc3QgcG93ZXJmdWwgc2VydmVyIGluIHRoZSBnYWxheHkuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDNUMTA6MzQ6MzcuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0xMC0wM1QxMDozNDozNy4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItOTk5OS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImU0MWYwYzhjLTEwOGUtNGYzZS05NjRjLTI3MzM2MTQyNWY0OFwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJVbHRyb24gaXMgd29ya2luZyB3aXRoIFdhbmRhIGFuZCBQaWV0cm8gb24gc29tZSBuZXcgc2VydmVycy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0wNVQxMDoyMjoxMi4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTEwLTA1VDEwOjIyOjEyLjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi04ODk5LTQwYzAtYWNmNC1lMTVlOGVyMDMyZTFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiZTQxZjBjOGMtMTA4ZS00ZjNlLTk2NGMtMjczMzYxNDI1ZjQ4XCIsXHJcbiAgICAgICAgYmlzdGVjaF9kaXJlY3Rpb246IGZhbHNlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIldhbmRhIGFuZCBQaWV0cm8gYXJlIG5vdyB3b3JraW5nIG9uIG91ciBzZXJ2ZXJzLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTA1VDExOjExOjExLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMTAtMDVUMTE6MTE6MTEuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTc3OTktNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI1ODVkNDViYy0zNGJiLTQ1MzctOWVmNy1lZDY2ZDY5ZTU0Y2JcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogdHJ1ZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJJIGNhbid0IHdhaXQgdG8gZ2V0IG91dCBvZiBteSBob3VzZSwgSSBuZWVkIHRvIGZpeCBzb21lIHNlcnZlcnMuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDVUMTQ6MTQ6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0xMC0wNVQxNDoxNDoxMS4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNjY5OS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImU1MzY3NTU5LTM2ZjAtNDQ5NC04N2JkLTZjYjgyNDljOGQyY1wiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkJ1Y2t5IGlzIHdvcmtpbmcgb24gb3VyIHNlcnZlcnMgbm93LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTA2VDExOjE0OjExLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMTAtMDZUMTE6MTQ6MTEuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTU1OTktNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCJjMDgzYWQzNC02OWIyLTQ2MDMtOTM1OC01MjJlNTZiM2RhMjlcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbiByZWZlcmVuY2UgdG86IFRFU1QtMTIzXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiRG9ybWFtbXUgbG92ZXMgZGFyayBtb2RlLCBwbGVhc2UgY2FuIHdlIGdldCBzb21lIHN1cHBvcnQgZm9yIHRoYXQ/XCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTEtMDZUMTE6MTM6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0xMS0wNlQxMToxMzoxMS4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNDk0OS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjc3ZTRhN2E0LTcwMzctNDFlZC04ZThmLThhMjE4ZmFmYjlhNFwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkVnbyBpcyB0cnlpbmcgdG8gdGFrZSBvdmVyIG91ciBzZXJ2ZXJzLiBXaGF0IGNhbiB3ZSBkbyB0byBwcmV2ZW50IGhpbSBmcm9tIGRvaW5nIHRoaXM/XCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTEtMDhUMTM6MTE6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0xMS0wOFQxMzoxMToxMS4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNDQ5OS00MGMwLWFjZjQtZTE1ZThlcjAzMmUxXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImFhMTMxM2RmLTA1OTAtNDZhZS1hYjlhLTYxYzdkMWExN2IwNlwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSW4gcmVmZXJlbmNlIHRvOiBURVNULTEyM1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkkgaGFkIGEgbmljZSB0aW1lIGF0IEhvbWVjb21pbmcsIEkgZml4ZWQgYSBmZXcgc2VydmVycyB3aGlsZSBJIHdhcyB0aGVyZS5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMS0xMFQxMjoxMToxNS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTExLTEwVDEyOjExOjE1LjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi0zMzk5LTQwYzAtYWNmNC1lMTVlOGVyOTk5OVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCJcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogdHJ1ZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMS0xNFQxNToxMjoxNS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTExLTE0VDE1OjEyOjE1LjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi00NDExLTQwYzAtYWNmNC1lMTVlOGVyODg4OFwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI4NjRlNGY2Zi1mYWM2LTQ1YjEtYjcyMC1iNTIxNTMyNTlmZTNcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbiByZWZlcmVuY2UgdG86IFRFU1QtMTIzXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiV2FrYW5kYSBoYXMgdGhlIGJlc3QgVmlicmFuaXVtIHNlcnZlcnMsIGdldCB5b3VycyBoZXJlIG5vdy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMS0xNFQxODoxMjoxNS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTExLTE0VDE4OjEyOjE1LjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi00NDIyLTQwYzAtYWNmNC1lMTVlOGVyNzc3N1wiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCI4NjRlNGY2Zi1mYWM2LTQ1YjEtYjcyMC1iNTIxNTMyNTlmZTNcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogdHJ1ZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJTaHVyaSB3aWxsIGJlIGFibGUgdG8gZml4IHlvdXIgc2VydmVyLCBubyBwcm9ibGVtcy5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMS0xNVQxNToxMjoxNS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTExLTE1VDE1OjEyOjE1LjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi00NDMzLTQwYzAtYWNmNC1lMTVlOGVyMDY2NjZcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiM2I1YjE4NDAtYzk3OC00NzZlLTg2OTctMTQ5YjE2NTczZjgxXCIsXHJcbiAgICAgICAgYmlzdGVjaF9kaXJlY3Rpb246IHRydWUsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbiByZWZlcmVuY2UgdG86IFRFU1QtMTIzXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhhbm9zIGhhcyBnb3QgYWxsIHRoZSBzdG9uZXMuIFRoaXMgd2lsbCBiZSBxdWl0ZSBjYXRhc3Ryb3BoaWMuXCIsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjEtMTEtMTVUMTM6MTI6MTUuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMS0xMS0xNVQxMzoxMjoxNS4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCIyZmJoZGZkN2ItNDQ1NS00MGMwLWFjZjQtZTE1ZThlcjA1NTU1XCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcIjNiNWIxODQwLWM5NzgtNDc2ZS04Njk3LTE0OWIxNjU3M2Y4MVwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkluIHJlZmVyZW5jZSB0bzogVEVTVC0xMjNcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGFub3MgaGFzIHdpcGVkIG91dCBoYWxmIG9mIHRoZSBpbnRlcm5ldC5cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMS0xMS0xN1QxMToxMToxNS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIxLTExLTE3VDExOjExOjE1LjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcIjJmYmhkZmQ3Yi00NDY2LTQwYzAtYWNmNC1lMTVlOGU0NDQ0NDRcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IFwiZWVkNTY5OWMtNDM5NS00ODllLTg1M2YtOWU3YTZkNWVhMGVhXCIsXHJcbiAgICAgICAgYmlzdGVjaF9kaXJlY3Rpb246IHRydWUsXHJcbiAgICAgICAgc3ViamVjdDogXCJJbiByZWZlcmVuY2UgdG86IFRFU1QtMTIzXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHNlcnZlciBpcyBwZXJmb3JtaW5nIGF0IHF1YW50dW0gc3BlZWRzLlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIxLTEyLTExVDE0OjEzOjE1LjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjEtMTItMTFUMTQ6MTM6MTUuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiMmZiaGRmZDdiLTQ0NzctNDBjMC1hY2Y0LWUxNWU4ZXIwMzJlMVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCIzYjViMTg0MC1jOTc4LTQ3NmUtODY5Ny0xNDliMTY1NzNmODFcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgc3ViamVjdDogXCJUaW1lIHRvIGNoYW5nZSBiYWNrIHRvIEJhbm5lciwgSHVsay5cIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgc3VucyBnZXR0aW5nIHJlYWwgbG93LlwiLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIxLTEyLTE1VDE0OjExOjE1LjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjEtMTItMTVUMTQ6MTE6MTUuMDAwWlwiLFxyXG4gICAgICAgIF9jcmVhdGVkYnlfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGVwaGVuc3RyYW5nZS5jb250YWN0aWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiYTA2OThjZTUtYmQ1OS00MWViLWJiMGYtMTM3ODlhODQ1ZDIzM1wiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogXCJiOWM1ZmUzMy04MDhmLTQ3YTAtODQwMi1kZTliMmVlMTBhN2RcIixcclxuICAgICAgICBiaXN0ZWNoX2RpcmVjdGlvbjogdHJ1ZSxcclxuICAgICAgICBzdWJqZWN0OiBcIkRvIGZpc2ggbm90IGxpa2UgcGluZWFwcGxlP1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBgSGkgTG91aXNhLFxyXG5cclxuSSBhbSBqdXN0IHRha2luZyBhbiBpbml0aWFsIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBhbmQgbmVlZCB0byBjb25maXJtIHNvbWUgbW9yZSBpbmZvcm1hdGlvbi5cclxuXHJcbkFzIHBhcnQgb2YgdGhlc2UgY2hhbmdlIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGRlY29tbWlzc2lvbiBhbmQgcmVtb3ZlIGFueSBjb25maWd1cmF0aW9uIHRoYXQgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLlxyXG5cclxuQXMgd2VsbCBhcyB0aGUgMDE4NzcgNDQwMDExIHRoZXJlIGFyZSBhIGZldyBvdGhlciBsaW5lcyB0aGF0IGVuZCB1cCB3aXRoIHNvbWUgb2YgdGhlIE9wZXJhdGlvbnMgZXhpc3RpbmcgcXVldWVzL2dyb3Vwcy5cclxuXHJcblRoZXNlIGFyZTpcclxuXHJcbjAxODc3MDMwODI6IFdoaWNoIGRlcGVuZGFudCBvbiB0aGUgdGltZSBvZiB0aGUgY2FsbCBnb2VzIHRvIHRoZSBHb2luZyBRdWV1ZSBvciB0aGUgSGVscGRlc2sgUXVldWVcclxuXHJcbjAxODc3MDMwODU6IFdoaWNoIGRlcGVuZGFudCBvbiB0aGUgdGltZSBvZiB0aGUgY2FsbCBnb2VzIHRvIHRoZSBOb24gUnVubmVycyBRdWV1ZSBvciB0aGUgSGVscGRlc2sgUXVldWVcclxuXHJcbjAxODc3MDMwODY6IFdoaWNoIGVuZHMgdXAgYXQgdGhlIEVudHJpZXMgcXVldWVcclxuXHJcbkkgaGF2ZSBhbHNvIGF0dGFjaGVkIHRoZSBsaXN0IG9mIEFDRCBQYXRocyBhbmQgQUNEIEdyb3VwcyByZWxhdGluZyB0byBPcGVyYXRpb25zLlxyXG5cclxuRG8geW91IHdhbnQgdG8gcmV2aWV3IHRoZSBhYm92ZSBhbmQgY29uZmlybSBob3cgaXQgbmVlZHMgdG8gd29yayBpbiB0aGUgbmV3IHNldHVwLlxyXG5cclxuVGhhbmtzLFJvYmAsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjEtMTItMTVUMTQ6MTE6MTUuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMS0xMi0xNVQxNDoxMToxNS4wMDBaXCIsXHJcbiAgICAgICAgX2NyZWF0ZWRieV92YWx1ZTogXCI0XCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiYTA2OThjZTUtYmQ1OS00MWViLWJiMGYtMTM3ODlhODQ1ZDJmXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBcImI5YzVmZTMzLTgwOGYtNDdhMC04NDAyLWRlOWIyZWUxMGE3ZFwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGlyZWN0aW9uOiB0cnVlLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiSG93IGNhbiBNciBLcmFicyBsZWF2ZSBoaXMgcmVzdHVyYW50P1wiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBcIkl0J3MgbGl0ZXJhbGx5IGEgbG9ic3RlciBjYWdlLCBzbyBoZSBzaG91bGRuJ3QgYmUgYWJsZSB0byBsZWF2ZT9cIixcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMi0wMy0xMlQxNDoxMToxNS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIyLTAzLTEyVDE0OjExOjE1LjAwMFpcIixcclxuICAgICAgICBfY3JlYXRlZGJ5X3ZhbHVlOiBcIjVcIixcclxuICAgIH0sXHJcbl07XHJcbiIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgYGJpc3RlY2hfdXJnZW5jeWAgb2YgYW4gYGluY2lkZW50YCAqL1xyXG5leHBvcnQgZW51bSBDYXNlVXJnZW5jeSB7XHJcbiAgICAvKiogTG93ICovXHJcbiAgICBMb3cgPSAxLFxyXG5cclxuICAgIC8qKiBNZWRpdW0gKi9cclxuICAgIE1lZGl1bSA9IDIsXHJcblxyXG4gICAgLyoqIEhpZ2ggKi9cclxuICAgIEhpZ2ggPSAzLFxyXG59XHJcbiIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgYHNldmVyaXR5Y29kZWAgb2YgYW4gYGluY2lkZW50YCAqL1xyXG5leHBvcnQgZW51bSBDYXNlU2V2ZXJpdHlDb2RlIHtcclxuICAgIC8qKiBMb3cgKi9cclxuICAgIExvdyA9IDEsXHJcblxyXG4gICAgLyoqIE1lZGl1bSAqL1xyXG4gICAgTWVkaXVtID0gMixcclxuXHJcbiAgICAvKiogSGlnaCAqL1xyXG4gICAgSGlnaCA9IDMsXHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgQ2FzZSBvcmlnaW4gKi9cclxuZXhwb3J0IGVudW0gQ2FzZU9yaWdpbkNvZGUge1xyXG4gICAgLyoqIFBob25lIE9yaWdpbiAqL1xyXG4gICAgUGhvbmUgPSAxLFxyXG5cclxuICAgIC8qKiBFbWFpbCBPcmlnaW4gKi9cclxuICAgIEVtYWlsID0gMixcclxuXHJcbiAgICAvKiogUG9ydGFsIE9yaWdpbiAqL1xyXG4gICAgUG9ydGFsID0gMyxcclxuXHJcbiAgICAvKiogRXZlbnQgT3JpZ2luICovXHJcbiAgICBFdmVudCA9IDQsXHJcblxyXG4gICAgLyoqIE90aGVyIE9yaWdpbiAqL1xyXG4gICAgT3RoZXIgPSA1XHJcbn1cclxuIiwiaW1wb3J0IHsgQ2FzZVR5cGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVR5cGVcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0luY2lkZW50U3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBDYXNlUHJpb3JpdHlDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VQcmlvcml0eUNvZGVcIjtcclxuaW1wb3J0IHsgTW9ja0FjY291bnREYXRhIH0gZnJvbSBcIi4vTW9ja0FjY291bnREYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tDb250YWN0RGF0YSB9IGZyb20gXCIuL01vY2tDb250YWN0RGF0YVwiO1xyXG5pbXBvcnQgeyBDYXNlVXJnZW5jeSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVXJnZW5jeVwiO1xyXG5pbXBvcnQgeyBDYXNlU2V2ZXJpdHlDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VTZXZlcml0eUNvZGVcIjtcclxuaW1wb3J0IHsgQ2FzZU9yaWdpbkNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZU9yaWdpbkNvZGVcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL0luY2lkZW50Rm9yUmV0cmlldmFsXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTW9ja0luY2lkZW50RGF0YTogSW5jaWRlbnRGb3JSZXRyaWV2YWxbXSA9IFtcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcIjJmYmM2ZDdiLTY5NjEtNDBjMC1hY2Y0LWUxNWU4Y2IwMzJlMVwiLFxyXG4gICAgICAgIHRpdGxlOiBcIklyb24gTWFuXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJQb3J0YWxcIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cmdlbmN5OiBDYXNlVXJnZW5jeS5IaWdoLFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5NZWRpdW0sXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMDgtMDktMDdUMDc6NDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtMVIwTi1NNE4tMVwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLkluY2lkZW50LFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZS5PcGVuLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogQ2FzZVByaW9yaXR5Q29kZVtcIlByaW9yaXR5IDJcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCIwZWE5ZWU5MS1lZGMwLTRkYzItODk4ZC0xZTI4YmJhZmVkZTVcIixcclxuICAgICAgICB0aXRsZTogXCJUaGUgSW5jcmVkaWJsZSBIdWxrXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJQb3J0YWxcIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cmdlbmN5OiBDYXNlVXJnZW5jeS5Mb3csXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAwOC0wNi0xM1QxNjo0NTowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5icnVjZUJhbm5lci5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRvbnlTdGFyay5jb250YWN0aWQsXHJcbiAgICAgICAgY2FzZXR5cGVjb2RlOiBDYXNlVHlwZS5JbmNpZGVudCxcclxuICAgICAgICBwcmlvcml0eWNvZGU6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAzXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZS5PcGVuLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtSFVMSy0xXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCI1YTU3MDBiMi0xYTdmLTRiMGYtYjViYi1kNDIyMjM3YzVhMDNcIixcclxuICAgICAgICB0aXRsZTogXCJJcm9uIE1hbiAyXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJFbWFpbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkxvdyxcclxuICAgICAgICBzZXZlcml0eWNvZGU6IENhc2VTZXZlcml0eUNvZGUuTWVkaXVtLFxyXG4gICAgICAgIF9jdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDEwLTA1LTA3VDE5OjEyOjAwLjAwMFpcIixcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRvbnlTdGFyay5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlW1wiU3VwcG9ydCBSZXF1ZXN0XCJdLFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogQ2FzZVByaW9yaXR5Q29kZVtcIlByaW9yaXR5IDNcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiQ2xvc3VyZSBSZXF1ZXN0ZWRcIl0sXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy0xUjBOLU00Ti0yXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCI3N2M2MTJjMi02MTcwLTRhMzAtODBiNS1iZDVlZTNhOWJmMTZcIixcclxuICAgICAgICB0aXRsZTogXCJUaG9yXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJFbWFpbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkhpZ2gsXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxMS0wNS0wNlQxMDowMjowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50aG9yLmNvbnRhY3RpZCxcclxuICAgICAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGNhc2V0eXBlY29kZTogQ2FzZVR5cGVbXCJNYWpvciBJbmNpZGVudFwiXSxcclxuICAgICAgICBwcmlvcml0eWNvZGU6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAyXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZVtcIlBlbmRpbmcgRmVlZGJhY2tcIl0sXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy1USDBSLTFcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBudWxsLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcIjRmNGVlMzIwLTlhNTAtNDM4ZS1iZjI0LWZmZDc4NmFmYzM5N1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIkNhcHRhaW4gQW1lcmljYVwiLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgY2FzZW9yaWdpbmNvZGU6IENhc2VPcmlnaW5Db2RlW1wiRW1haWxcIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cmdlbmN5OiBDYXNlVXJnZW5jeS5Mb3csXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLkxvdyxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxMS0wNy0yMlQxNDo1MzowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGV2ZVJvZ2Vycy5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLlByb2JsZW0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgNFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtRjFSNVQtNFYzTkczUlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU6IG51bGwsXHJcbiAgICAgICAgaW5jaWRlbnRfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGluY2lkZW50aWQ6IFwiMWIyNmI5NGQtNzM3Yi00NTFiLWI4OWQtNzI1YmQyNWZmMDJlXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiQXZlbmdlcnMgQXNzZW1ibGVcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIlBvcnRhbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkhpZ2gsXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxMi0wNS0wNFQxODo1MTowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5uaWNrRnVyeS5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLm5pY2tGdXJ5LmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLlByb2JsZW0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMlwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuT3BlbixcclxuICAgICAgICB0aWNrZXRudW1iZXI6IFwiQ0FTLTQ1NTNNQkwzXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCIzZDZjNzQxMS0xNjIyLTQ4ZjMtYmQwYi01MDlkNmEzOWE1NjJcIixcclxuICAgICAgICB0aXRsZTogXCJJcm9uIE1hbiAzXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJQb3J0YWxcIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cmdlbmN5OiBDYXNlVXJnZW5jeS5IaWdoLFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5NZWRpdW0sXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMTMtMDYtMDNUMDk6MTk6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLlByb2JsZW0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMlwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuT3BlbixcclxuICAgICAgICB0aWNrZXRudW1iZXI6IFwiQ0FTLTFSME4tTTROLTNcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBudWxsLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcImQ0MzdkZGUwLWM3OWQtNDFjNi1iNzE5LWUyMzc4MjY5ZGM3YlwiLFxyXG4gICAgICAgIHRpdGxlOiBcIlRob3I6IFRoZSBEYXJrIFdvcmxkXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJQaG9uZVwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkxvdyxcclxuICAgICAgICBzZXZlcml0eWNvZGU6IENhc2VTZXZlcml0eUNvZGUuTWVkaXVtLFxyXG4gICAgICAgIF9jdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDEzLTExLTA4VDE2OjM0OjAwLjAwMFpcIixcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRob3IuY29udGFjdGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgY2FzZXR5cGVjb2RlOiBDYXNlVHlwZVtcIlN1cHBvcnQgUmVxdWVzdFwiXSxcclxuICAgICAgICBwcmlvcml0eWNvZGU6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAzXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtRDRSSy1XMFJMRFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU6IG51bGwsXHJcbiAgICAgICAgaW5jaWRlbnRfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGluY2lkZW50aWQ6IFwiNTA5OTA5MTMtOGVjZi00ZDZmLWI4MDYtYjAxMjc4YzY4MzY5XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiQ2FwdGFpbiBBbWVyaWNhOiBUaGUgV2ludGVyIFNvbGRpZXJcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIlBvcnRhbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkhpZ2gsXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxNC0wNC0wNFQwNjo0OTowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGV2ZVJvZ2Vycy5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXZlUm9nZXJzLmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLkNoYW5nZSxcclxuICAgICAgICBwcmlvcml0eWNvZGU6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAyXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtNTBMRDEzUlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU6IG51bGwsXHJcbiAgICAgICAgaW5jaWRlbnRfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGluY2lkZW50aWQ6IFwiM2Y5ZGY2ZWYtNDNhZS00NGRhLWIzYWEtNjg3NmM2ZTY4NjU3XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiR3VhcmRpYW5zIG9mIHRoZSBHYWxheHlcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIlBob25lXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfdXJnZW5jeTogQ2FzZVVyZ2VuY3kuTG93LFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5Mb3csXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMTQtMDgtMDFUMTY6Mzc6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEucGV0ZXJRdWlsbC5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLlByb2JsZW0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgNFwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuT3BlbixcclxuICAgICAgICB0aWNrZXRudW1iZXI6IFwiQ0FTLVYwTFVNMy0xXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCJlNDFmMGM4Yy0xMDhlLTRmM2UtOTY0Yy0yNzMzNjE0MjVmNDhcIixcclxuICAgICAgICB0aXRsZTogXCJBdmVuZ2VyczogQWdlIG9mIFVsdHJvblwiLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgY2FzZW9yaWdpbmNvZGU6IENhc2VPcmlnaW5Db2RlW1wiRXZlbnRcIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cmdlbmN5OiBDYXNlVXJnZW5jeS5IaWdoLFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5IaWdoLFxyXG4gICAgICAgIF9jdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDE1LTA1LTAxVDE0OjUxOjAwLjAwMFpcIixcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLm5pY2tGdXJ5LmNvbnRhY3RpZCxcclxuICAgICAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGNhc2V0eXBlY29kZTogQ2FzZVR5cGUuSW5jaWRlbnQsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMVwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuUmVzb2x2ZWQsXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy00RzMtMEYtVUxUUjBOXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCI1ODVkNDViYy0zNGJiLTQ1MzctOWVmNy1lZDY2ZDY5ZTU0Y2JcIixcclxuICAgICAgICB0aXRsZTogXCJBbnQtTWFuXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJFbWFpbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkhpZ2gsXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxNS0wNy0xN1QxMjowMzowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zY290dExhbmcuY29udGFjdGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgY2FzZXR5cGVjb2RlOiBDYXNlVHlwZS5JbmNpZGVudCxcclxuICAgICAgICBwcmlvcml0eWNvZGU6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAyXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZVtcIlBlbmRpbmcgRmVlZGJhY2tcIl0sXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy00TlQtTTROLTFcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBudWxsLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcImU1MzY3NTU5LTM2ZjAtNDQ5NC04N2JkLTZjYjgyNDljOGQyY1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIkNhcHRhaW4gQW1lcmljYTogQ2l2aWwgV2FyXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJQb3J0YWxcIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cmdlbmN5OiBDYXNlVXJnZW5jeS5Mb3csXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxNi0wNS0wNlQxNzozOTowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5zdGV2ZVJvZ2Vycy5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXZlUm9nZXJzLmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLkluY2lkZW50LFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogQ2FzZVByaW9yaXR5Q29kZVtcIlByaW9yaXR5IDNcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogSW5jaWRlbnRTdGF0dXNDb2RlLk9wZW4sXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy1DMVYxTC1XNFJcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBudWxsLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcImMwODNhZDM0LTY5YjItNDYwMy05MzU4LTUyMmU1NmIzZGEyOVwiLFxyXG4gICAgICAgIHRpdGxlOiBcIkRvY3RvciBTdHJhbmdlXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBjYXNlb3JpZ2luY29kZTogQ2FzZU9yaWdpbkNvZGVbXCJFbWFpbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5Lk1lZGl1bSxcclxuICAgICAgICBzZXZlcml0eWNvZGU6IENhc2VTZXZlcml0eUNvZGUuTWVkaXVtLFxyXG4gICAgICAgIF9jdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDE2LTExLTA0VDE3OjM5OjAwLjAwMFpcIixcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXBoZW5zdHJhbmdlLmNvbnRhY3RpZCxcclxuICAgICAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGNhc2V0eXBlY29kZTogQ2FzZVR5cGUuSW5jaWRlbnQsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMlwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtSzRNNFItVDRKXCIsXHJcbiAgICAgICAgYmlzdGVjaF9yZXNvbHV0aW9uZGF0ZTogbnVsbCxcclxuICAgICAgICBpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGluY2lkZW50X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW5jaWRlbnRpZDogXCI3N2U0YTdhNC03MDM3LTQxZWQtOGU4Zi04YTIxOGZhZmI5YTRcIixcclxuICAgICAgICB0aXRsZTogXCJHdWFyZGlhbnMgb2YgdGhlIEdhbGF4eSBWb2wuIDJcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIkVtYWlsXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfdXJnZW5jeTogQ2FzZVVyZ2VuY3kuTWVkaXVtLFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5NZWRpdW0sXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMTctMDYtMDVUMTE6NDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEucGV0ZXJRdWlsbC5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLlByb2JsZW0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMlwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuQ2xvc2VkLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtVjBMVU0zLTJcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBudWxsLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcImFhMTMxM2RmLTA1OTAtNDZhZS1hYjlhLTYxYzdkMWExN2IwNlwiLFxyXG4gICAgICAgIHRpdGxlOiBcIlNwaWRlci1NYW46IEhvbWVjb21pbmdcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIkVtYWlsXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfdXJnZW5jeTogQ2FzZVVyZ2VuY3kuTG93LFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5NZWRpdW0sXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMTctMDctMDdUMTI6MjA6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEucGV0ZXJQYXJrZXIuY29udGFjdGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgY2FzZXR5cGVjb2RlOiBDYXNlVHlwZS5JbmNpZGVudCxcclxuICAgICAgICBwcmlvcml0eWNvZGU6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAzXCJdLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtSDBNM0MwTTFOR1wiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU6IG51bGwsXHJcbiAgICAgICAgaW5jaWRlbnRfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGluY2lkZW50aWQ6IFwiYzM0ODk1NWYtYWQ0OC00M2MzLTg4YWItNDIzZmYyYmI4ZTI4XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiVGhvcjogUmFnbmFyb2tcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIlBvcnRhbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkxvdyxcclxuICAgICAgICBzZXZlcml0eWNvZGU6IENhc2VTZXZlcml0eUNvZGUuTG93LFxyXG4gICAgICAgIF9jdXN0b21lcmlkX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDE3LTExLTAzVDA5OjU0OjAwLjAwMFpcIixcclxuICAgICAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRob3IuY29udGFjdGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50aG9yLmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlLkluY2lkZW50LFxyXG4gICAgICAgIHByaW9yaXR5Y29kZTogQ2FzZVByaW9yaXR5Q29kZVtcIlByaW9yaXR5IDRcIl0sXHJcbiAgICAgICAgc3RhdHVzY29kZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiQ2xvc3VyZSBSZXF1ZXN0ZWRcIl0sXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy1SNEdONFIwS1wiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU6IG51bGwsXHJcbiAgICAgICAgaW5jaWRlbnRfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG5cclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcIjg2NGU0ZjZmLWZhYzYtNDViMS1iNzIwLWI1MjE1MzI1OWZlM1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIkJsYWNrIFBhbnRoZXJcIixcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGNhc2VvcmlnaW5jb2RlOiBDYXNlT3JpZ2luQ29kZVtcIlBvcnRhbFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3VyZ2VuY3k6IENhc2VVcmdlbmN5LkhpZ2gsXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBDYXNlU2V2ZXJpdHlDb2RlLkhpZ2gsXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMTgtMDItMTZUMTU6Mjk6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudGNoYWxsYS5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRjaGFsbGEuY29udGFjdGlkLFxyXG4gICAgICAgIGNhc2V0eXBlY29kZTogQ2FzZVR5cGUuSW5jaWRlbnQsXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMVwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuQ2xvc2VkLFxyXG4gICAgICAgIHRpY2tldG51bWJlcjogXCJDQVMtVzRLNE5ENFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU6IG51bGwsXHJcbiAgICAgICAgaW5jaWRlbnRfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGluY2lkZW50aWQ6IFwiM2I1YjE4NDAtYzk3OC00NzZlLTg2OTctMTQ5YjE2NTczZjgxXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiQXZlbmdlcnM6IEluZmluaXR5IFdhclwiLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgY2FzZW9yaWdpbmNvZGU6IENhc2VPcmlnaW5Db2RlW1wiUG9ydGFsXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfdXJnZW5jeTogQ2FzZVVyZ2VuY3kuSGlnaCxcclxuICAgICAgICBzZXZlcml0eWNvZGU6IENhc2VTZXZlcml0eUNvZGUuSGlnaCxcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAxOC0wNC0yN1QxMjozMzowMC4wMDBaXCIsXHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5uaWNrRnVyeS5jb250YWN0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLm5pY2tGdXJ5LmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMVwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgICAgICB0aWNrZXRudW1iZXI6IFwiQ0FTLUc0TlRMM1RcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBudWxsLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBpbmNpZGVudGlkOiBcImVlZDU2OTljLTQzOTUtNDg5ZS04NTNmLTllN2E2ZDVlYTBlYVwiLFxyXG4gICAgICAgIHRpdGxlOiBcIkFudC1NYW4gYW5kIHRoZSBXYXNwXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJNYXJ2ZWwgUmVmZXJlbmNlXCIsXHJcbiAgICAgICAgY2FzZW9yaWdpbmNvZGU6IENhc2VPcmlnaW5Db2RlW1wiUG9ydGFsXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfdXJnZW5jeTogQ2FzZVVyZ2VuY3kuTWVkaXVtLFxyXG4gICAgICAgIHNldmVyaXR5Y29kZTogQ2FzZVNldmVyaXR5Q29kZS5NZWRpdW0sXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMTgtMDctMDZUMTk6MTg6MDAuMDAwWlwiLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc2NvdHRMYW5nLmNvbnRhY3RpZCxcclxuICAgICAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc2NvdHRMYW5nLmNvbnRhY3RpZCxcclxuICAgICAgICBjYXNldHlwZWNvZGU6IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0sXHJcbiAgICAgICAgcHJpb3JpdHljb2RlOiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMlwiXSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGUuUmVzb2x2ZWQsXHJcbiAgICAgICAgdGlja2V0bnVtYmVyOiBcIkNBUy1UVEgzLVc0U1BcIixcclxuICAgICAgICBiaXN0ZWNoX3Jlc29sdXRpb25kYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuXTtcclxuIiwiaW1wb3J0IHsgUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nIH0gZnJvbSBcIi4uL0VudW1zL1Byb2R1Y3RQb3J0YWxUaWxlTWFwcGluZ1wiO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSBcIi4uL01vZGVscy9Qcm9kdWN0XCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBQcm9kdWN0cyAqL1xyXG5leHBvcnQgY29uc3QgTW9ja1Byb2R1Y3REYXRhOiBQcm9kdWN0W10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgcHJvZHVjdGlkOiBcImE0YjEzNDhiLWUxMzItNGIxYy04MjdjLWRlZDEzNzEwNGVkYlwiLFxyXG4gICAgICAgIGJpc3RlY2hfdGlsZXRhcmdldHVybDogXCJodHRwczovL2FjY291bnQubWVyYWtpLmNvbS9sb2dpbi9kYXNoYm9hcmRfbG9naW5cIixcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbHRpbGVtYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuTWVyYWtpLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwcm9kdWN0aWQ6IFwiMDY0ZDVhYjQtMzkxZi00MDQzLThjYmQtZmY2NjJmOWE4MzRiXCIsXHJcbiAgICAgICAgYmlzdGVjaF90aWxldGFyZ2V0dXJsOiBcImh0dHBzOi8vbG9naW4ubWltZWNhc3QuY29tL3UvbG9naW4vP2d0YT1hcHBzIy9sb2dpblwiLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsdGlsZW1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5NaW1lY2FzdCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcHJvZHVjdGlkOiBcIjE0N2QxNDgyLWE4YzgtNDBhZi1hODUxLTVhOGQzNDFhYjg1N1wiLFxyXG4gICAgICAgIGJpc3RlY2hfdGlsZXRhcmdldHVybDogXCJodHRwczovL3V0bS5iaXN0ZWNoLmNvLnVrL2xvZ2luP3JlZGlyPSUyRm5nXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWx0aWxlbWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLkZvcnRpR2F0ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcHJvZHVjdGlkOiBcIjA4MmM5Y2FlLTAxZmItNGM1Ni05MjRkLTY1MTk4NDFmMzNhY1wiLFxyXG4gICAgICAgIGJpc3RlY2hfdGlsZXRhcmdldHVybDogXCJodHRwczovL2NzcC5iaXN0ZWNoLmNvLnVrXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWx0aWxlbWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLk1pY3Jvc29mdExpY2Vuc2luZyxcclxuICAgIH0sXHJcbl07XHJcbiIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgc3RhdHVzIHJlYXNvbnMgZm9yIGFuIE9yZGVyICovXHJcbmV4cG9ydCBlbnVtIE9yZGVyU3RhdGVDb2RlIHtcclxuICAgIC8qKiBBY3RpdmUgKi9cclxuICAgIEFjdGl2ZSA9IDAsXHJcblxyXG4gICAgLyoqIFN1Ym1pdHRlZCAqL1xyXG4gICAgU3VibWl0dGVkID0gMSxcclxuXHJcbiAgICAvKiogQ2FuY2VsZWQgKi9cclxuICAgIENhbmNlbGVkID0gMixcclxuXHJcbiAgICAvKiogRnVsZmlsbGVkICovXHJcbiAgICBGdWxmaWxsZWQgPSAzLFxyXG5cclxuICAgIC8qKiBJbnZvaWNlZCAqL1xyXG4gICAgSW52b2ljZWQgPSA0LFxyXG59XHJcbiIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyBhbiBPcmRlciBTdGF0dXMgQ29kZS4gKi9cclxuZXhwb3J0IGVudW0gT3JkZXJTdGF0dXNDb2RlIHtcclxuICAgIC8qKiBPcmRlciBpcyBOZXcgKEFjdGl2ZSBzdGF0ZWNvZGUpICovXHJcbiAgICBOZXcgPSAxLFxyXG5cclxuICAgIC8qKiBPcmRlciBpcyBQZW5kaW5nIChBY3RpdmUgc3RhdGVjb2RlKSAqL1xyXG4gICAgUGVuZGluZyA9IDIsXHJcblxyXG4gICAgLyoqIE9yZGVyIGlzIE9uIEhvbGQgIChBY3RpdmUgc3RhdGVjb2RlKSAqL1xyXG4gICAgXCJPbiBIb2xkXCIgPSA2OTBfOTcwXzAwMCxcclxuXHJcbiAgICAvKiogT3JkZXIgaGFzIGJlZW4gU2lnbmVkIChBY3RpdmUgc3RhdGVjb2RlKSAgKi9cclxuICAgIFNpZ25lZCA9IDY5MF85NzBfMDAxLFxyXG5cclxuICAgIC8qKiBPcmRlciBpcyBQcm9jZXNzaW5nIChBY3RpdmUgc3RhdGVjb2RlKSAgKi9cclxuICAgIFByb2Nlc3NpbmcgPSA2OTBfOTcwXzAwMixcclxuXHJcbiAgICAvKiogT3JkZXJzIHJlbGF0ZWQgUHJvamVjdHMgYXJlIGJlaW5nIE9uYm9hcmRlZCAoQWN0aXZlIHN0YXRlY29kZSkgICovXHJcbiAgICBcIlByb2plY3QgT25ib2FyZGluZ1wiID0gNjkwXzk3MF8wMDQsXHJcblxyXG4gICAgLyoqIE9yZGVyIGlzIEluIFByb2dyZXNzIChBY3RpdmUgc3RhdGVjb2RlKSAgKi9cclxuICAgIFwiSW4gUHJvZ3Jlc3NcIiA9IDY5MF85NzBfMDA1LFxyXG5cclxuICAgIC8qKiBPcmRlciBpcyBQcm9jZXNzaW5nIENvbXBsZXRlIChBY3RpdmUgc3RhdGVjb2RlKSAgKi9cclxuICAgIFwiUHJvY2Vzc2luZyBDb21wbGV0ZVwiID0gNjkwXzk3MF8wMDYsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmRlciBpcyBJbiBQcm9ncmVzcyAoU3VibWl0dGVkIHN0YXRlY29kZSlcclxuICAgICAqIEBkZXByZWNhdGVkIFRoaXMgKHN0b2NrKSBTdGF0dXMgUmVhc29uIGlzIG5vdCB1c2VkLlxyXG4gICAgICovXHJcbiAgICBcIkluIFByb2dyZXNzKlwiID0gMyxcclxuXHJcbiAgICAvKiogT3JkZXIgaXMgQ29tcGxldGUgKEZ1bGZpbGxlZCBzdGF0ZWNvZGUpICovXHJcbiAgICBDb21wbGV0ZSA9IDEwMF8wMDEsXHJcblxyXG4gICAgLyoqIE9yZGVyIGlzIFBhcnRpYWwgKEZ1bGZpbGxlZCBzdGF0ZWNvZGUpICovXHJcbiAgICBQYXJ0aWFsID0gMTAwXzAwMixcclxuXHJcbiAgICAvKiogT3JkZXIgaXMgSW52b2ljZWQgKEZ1bGZpbGxlZCBzdGF0ZWNvZGUpICovXHJcbiAgICBJbnZvaWNlZCA9IDEwMF8wMDMsXHJcblxyXG4gICAgLyoqIE9yZGVyIGlzIENhbmNlbGxlZCAoQ2FuY2VsbGVkIHN0YXRlY29kZSkgKi9cclxuICAgIENhbmNlbGxlZCA9IDY5MF85NzBfMDAzLFxyXG5cclxuICAgIC8qKiBPcmRlciBpcyBSZXZpc2VkIChDYW5jZWxsZWQgc3RhdGVjb2RlKSAqL1xyXG4gICAgUmV2aXNlZCA9IDEwMF8wMDQsXHJcblxyXG4gICAgLyoqIE9yZGVyIGlzIENhbmNlbGxlZCBkdWUgdG8gTm8gTW9uZXkgKENhbmNlbGxlZCBzdGF0ZWNvZGUpICovXHJcbiAgICBOb01vbmV5ID0gNCxcclxufVxyXG4iLCIvKiogUmVwcmVzZW50cyBhIFBERiBmaWxlIGluIEJhc2UgNjQgZW5jb2RpbmcsIHRoaXMgaXMgaG93IGZpbGVzIGFyZSBzdG9yZWQgaW4gRHluYW1pY3MgQW5ub3RhdGlvbnMuICovXHJcbmV4cG9ydCBjb25zdCBNb2NrQmFzZTY0T3JkZXJGb3JtUERGOiBzdHJpbmcgPVxyXG4gICAgXCJKVkJFUmkweExqY0tDalFnTUNCdlltb0tLRWxrWlc1MGFYUjVLUXBsYm1Sdlltb0tOU0F3SUc5aWFnb29RV1J2WW1VcENtVnVaRzlpYWdvNElEQWdiMkpxQ2p3OENpOUdhV3gwWlhJZ0wwWnNZWFJsUkdWamIyUmxDaTlNWlc1bmRHZ2dOamcyTmpVS0wweGxibWQwYURFZ016RXlNak15Q2k5VWVYQmxJQzlUZEhKbFlXMEtQajRLYzNSeVpXRnRDbmljN0wwSllGVFY5VDkrN24zN3ZGbmVUR2JOWkpraENRa1pZRUlDZ1NDYUVReEVVRUZBQ1pSQVVKYUlDeUFvcU5CSU1RMkxWbEFCRlJmYTJrTDlXaHpRU3JSUUVhZ3JXTmRxNjFvM2tJcFE2OElYeU16LzNEY3pJU2kyMys4ZitmSDdwZmVUdlBQdWUrL2VkN2R6enpuMzNEc3pRQURBaTBTRWhuTkduVHRrMUFYUDN3TDBieUdBM0VlSG5GTXpPT3R0WnlQUXhHc0F3Z2REUmd3ZnRWQWJld0VJdEJYSStWOFBHWFhSd09tUExod0Q0b2c0d05VM25UZDZWRzJYNS8vckk0QXpCd0FZazRlUGlwYi81YXlMM3dZZ2V6R1hob3ZQT2I5dXhxeHJEd09jdnhaQWV2L1NLeWZOdlBYbU9UY0FIZjRBUGo5ODZiVnpRbk5mbmY5VG9CUHhmWFQ1MUpuVHJoVG01RThHT2dMakswdW1UWm85RXdLZ1lma01qRzlNdStLNnFkbTlIbjBUNkNVeGdOamV4c2xYenV0Ly9kVzFBS051QkhLMHNISEtwTW1mL2JrQjA1SXJNSDVsSTk2d0wzYitFYTlaZm9XTlY4NlpOK1NwNENPWUY2YnAvK1VWTXk2ZGRQNEhaLzBENkM5TEFFTGJyNXcwYjZibk1iVS94bjhXNDRldW5ESm4wcEN1bDcwSzRvN2VlSDMxVlpPdW5MTC9nZWVXQTkzeEdiWVhtVGxqOXB4a01Vd0YrdjVCRm4vbTFWTm11cFFEendDdDY0N2wvNG5aMWdyQWo5YTFYVGJSTWVBckNLckE4UEJYQXg1bTV6KzN2SG40eVBpMkwvVG5WSXlGOVNTUUFwNlZoc1JJQVAzZEkrTVBYNjgvMS80a0RWczJ1Mk0wd0kxZ21EY29ucU53RVhicis4b1M4NDRnTkpQbElJRXEzUzFWNEN1RHFiUHdNa3lsTGxXaXVpeFNCdkZqNkpuY0JnMC93alRkV01MelI0VkNFSVBRRVZsNk5YRWhzU2tOWkVPSWtHUUkyMGdza3A1Z05RVVByWU55TStNcVBFS3BVdEUzWUhUSFVrb1hRNTE1LzBHNEFZK2htZnVZNWpHOEhtaWVNYjA0RzhiajhTRWUxWGlNWTNId2ZIRW1QZ3RucmxrYThTR1lsVG1PNVpWTVlINFBTTTlBQXg0UHNMRDRJVHdnVjZXdU1kMFdFYUJ2K24wUHlBK2FjVlBQTWE3NWpsUzY4Wml1UjdyOFZ2ZzNFS2NudjB5Lzh3SThsbUVldFhnMkQ4elRTSWVYa1ZkaG1Sa1BVbUhNZjVrWlAvM2NqUCtnbWI0YTB4WGdkUXVHZzFnbUM1N3RMQXdjUHlob1hhcnZ6UENES2Q0bHo4Q0NmNWNPKzhKZ0IvekF5UEFJQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCOGYvR1loUHdWVGc0T0Q0WDRQY0RSd2NIQndjSEJ3Y0hQK2hFSWVCSWZ0VGh6Z0t6emFvQmc0T0RnNE9qdjhyWURUa0VVSWdnTUV3V0swQWdYREE3dzY3M2VBR1FCckl6OC9IUi82ZVBmMDVnWjdkUE9BTzk4ejNBMTVoL0RRSTVBZTZZYm9BMlF2dXZTV2tXeURnY1FkSXQ1N2R3cWVpeUdIMjc4eGNlVHduaXJNWE9EZzRPRGc0T0RnNk1RaDBLblN5Nm5EOHZ3ZWNFcEVTNE9EZytBRkF6QUZGd0FxSDFDU29vQ1FUb0lFRnFRVjBwTHBKcldCRGFrUGFCbmF3STNXQUE2a0JSdklvVHZnWmRZRUxhUlprSlkrQUc5eElQU2IxZ2dlcEQzekp3K0EzYVFEOGVDY2JBa2lEa0kwMEIrbGh5SVVnMGp6SVRmNDM1Q005RENHa2h5QU0rWGluQzRTUUZwaTBFTUpJaTZBQWFWY294RGpGSmkyQm91UTMwQTI2SWkyRllxUVI2SmI4R3JwREtkSWVKdTBKRWFSUjZJNjBET2xYMEF0NklpMkhLTklLS0VQYTI2UjlvRmZ5UzZpRUNxUjlUZG9QZWlPdGdqNUkrME5sOHA5d2hra0hRRCtrWjBJVjByT2dQOUpxcEY5QURNNUFlallNUURvUXprUTZDTTVDZWc1VUovOEJOUkJET3Rpa1EyQWcwbG9ZaFBSY3BBZGhLTlFnSFdiUzgyQXcwdk5oQ05JTG9EWjVBSWJEdVVoSHdGQ2tGOEl3cENQaFBLU2o0UHprNXpEYXBCZkJCVWd2aHVGSXg4QUlwSFV3TXJrZnhwcDBISXhDK2lPVGpvZUxrTllqL1F3bXdCaWtFNkVPYVlOSko4RllwSmZBdU9UZjRWSVlqM1N5U2FkQVBkS3BNQUhwTkppWTNBZU4wSUQwTXBpRWREcGNndlJ5azE0Qmx5WS9oU3RoQ3RLclREb0RwaUdkYWRKWjBKamNDMWViZERaTVJ6b0hya0I2alVtdmhTdVRlMkN1U2VmQlZVaXZneGxJcjRkWlNHK0FxNU1mdzN5VExvRFpTSDlzMGlhNEJ1bU5NRGY1RVN3MDZVOWdIdEpGSnIwSnJrUGFERGNrUDRTZndueWtMYkFBNldLVExvRWZJMTFxMG1Xd01Qa0IzR3pTVytBblNIOEdpNURlYXRMbGNGUHliN0FDZm9yME5taEJlcnRKNzRERlNGZkNrdVQ3c0FxV0lsME5OeU85MDZSM3dTMUk3MGI2SHF5Qm55RzlCMVlndmRlazk4RnRTTzlIK2k2c2hkdVIvdHlrdjRCVlNIOEpxNUUrZ1BRZCtCWGNpZlRYSmwwSGR5TmREMnVRL2didVNiNE5EOEs5U1AvTHBBL0JmVWgvQy9jajNRQS9UNzRGRDVzMERyOUF1aEYraVhTVFNSK0JYeVgvQ28vQ3I1SCtEdFloZlF6V0k5MXMwbFo0TVBrWGVOeWtUOEJEU0g5djBpM3dXNlJiWVVQeVRmZ0RQSXowU1lnajNRWWJrVDRGbTVCdVIvb0c3SUJIa082RTN5SDlvMG1maHMxSW4wSDZaM2dXV3BFK0I0OGpmUjZlUVBvQ2JFRzZDK25yc0J1MkpsK0RGMDM2SjNnUzZVc21mUm1lU3I0S3I4QjJwSythOURYWWdmUjEySW4wei9ESDVDdUErU0I5RTU1QitoZDRGdWxmNFRta2I4SHp5WmZoYlpPK0E3dVF2bXZTOTJBMzB2ZmhUOG1YNEc4bS9RQmVRdm9odkl6MEkzZ0Y2Y2Z3YXZKUDhBbThoblFQdkk1MHIway9oVGVRN2tQNkl2d2Qvb0wwTS9ncjB2MG0vUnplUW5vQTNrN3Vob1B3RHRKL3dMdEl2NEQza1A0VDNrZjZKZEpkOEJWOGdQUnJrMzRESHlFOVpOTC9obytUTDhCaCtBVHBFZGlEOUNoOGlyVE5wQW5ZbDN3ZWtpWUZsS05nVE5ZMEFRUUtBbDdMSUFqcyt4b0ZRVUtBQklDVWhRRVVXVkZrUEFTOHJXRVFiMGpzR3lWVHdKc01HSldDUk5WVVdKQmtsU1g5NFNHd2I3Nmo3Wm1mTUE4S0hCd2NIQndjSEJ5ZEdCSjBLbkRiamVNMFExSVVTUUVPRG82VGg0WDVHQVJUVFNudFBnWVpBVElBVWhiR1I0cWlLckxLZkF5eWhrRzgwY0hIZ0hGbFNaWXhxdWxqWUtrRkNhKzRqNEdEZzRPRGc0T0Q0OVJBaGs0RmJydHhuR1pJcWlxcHdNSEJjZkxRai9rWTJ2Y3hTTi9uWTFCTkg0T3FLcUFxeXZFK0JqbnRZNUJQdlk5QllqNEdvZjJLK3hnNE9EZzRPRGc0L3ZQUXlWWmN1ZTNHY1pxQlV4MloreGc0T0g0SVdIV1J1UlpFREtvZzRra1FCVUZSVWk0RXBDeU1BVlhWVkVYVEJCa1VYZE5VME5RT1BnYTJyWUY5a0FML1FSWjBsbHFVQlVYUzVGUGlZeENQOHpISUovVGlDOERCd2NIQndjSEIwWW5CZlF3Y0hEOGtaRTJUTmVEZzREaDUySFFSeE5RK0JpM2pZeEMvNDJQUU5NMmlxUmFMZ0xkMWkwVURpNlpCK3lCVVFGVVZWUlZVUlFCRjBER29pc3pqb01tblJQdEozTWZBd2NIQndjSEI4WitPVHJiaXltMDNqdE1NeFdKUkxNREJ3WEh5c0RNZmc1ajJNYkRQSFlpU0tLb0lwcm1Rc25ER3g2QXpId05TL1ZzK0JqWGxZOENvcG8rQnBaWVVVVDFWUGdhUnVSbmFGWkZ5d2p5NG51TGc0T0RnNE9EbzFPQStCZzZPSHhLcXJxczZjSEJ3bkR3Y3RuWWZnK1dFUGdaTjB3QTBpNjViTktzdTRHMmJiclVBWGgzdlkxRFRQZ1pWc0trYSs4WVVVVlYwaGZzWU9EZzRPRGc0T0RoT0JUclpybTV1dTNHY1puQWZBd2ZIRHdYREpqRWZBL3ZBZ2Q3dVk5QzAxRFlGcENrZmc2N3JWdDFpczBvcWFLYVB3YXByMEQ0SU1hNm1hcHJFZmdkVEZXd3N0YVJLMnFueU1jam0xMU8yWjM1Q0RjdjFGQWNIQndjSEIwZW5SaWZiMWMxdE40N1RETTFxMWF6QXdjRng4bkRhSmVaYVNQa1kySGNiaUxJb2RmQXhTQllMcWpEZGFyWHBGcHROMU1CaXh5QllkY3Z4UGdiTjlER0lvSXAyRnBieFNyV3FwMlFYbjhTK0FVSnN6L3lFUGdZUk9EZzRPRGc0T0RnNk1iaVBnWVBqaDRSbXMyazI0T0RnT0htNGp2a1lyS2FQUVpJbDVsZXdNTTJGVk5KMUhSOVpiVGFyYmsvNUdHeDJLOWlzVm1oMzlHRmNpMmF4WURJUk5OSE9Vc3VhWk5GczJpblp4Y2Q5REJ3Y0hCd2NIQnovOGVoa3U3cTU3Y1p4bW1HeDJ5MTI0T0RnT0hsa0dUTHpNYkFQTmRpKzM4ZGdzOXBzTnF2ZHpud01odDJSOGpHME8vb3dybTdSZFJIL1FSTU5US0hMbXFocmRzc3A4VEdvNXM5c1pxNjRqNEdEZzRPRGc0UGpQeERjeDhEQjhVT0MreGc0T0g0b3VKMHl5QmtmQS92K0JFbVJaT1lsWUpvTHFXeTFXZ0hzTm9mZFpuWFlKYnp0dEJzMnNObHQwRDRJOFNiek1Vak14MkJKK3hnc2ttNnhXMDdKTGo2WjcyUGc0T0RnNE9EZytFOUhKL3ZrT0xmZE9FNHpkSWREZHdBSEI4Zkp3K09TMmZZRjVtT3dtejRHV1pHWlg4SDhLQVRTdEkvQjduRFliWVpEMHNIcWNoaDJjSFQwTVdCY3EyNjFZbFFKZE1uSlVpdTZiTlVkK2lueHNKcytCaWx6ZGVJOEpPRGc0T0RnNE9EZzZNVGdQZ1lPamg4U3VtSG9CbkJ3Y0p3OHZGbW1qNEY5T2FQamhENEdtODJHanh5RzRiQTVEWm41R0F5bkF3eUhGZG9kZmNmN0dMTGFmUXdHOXpGd2NIQndjSEJ3Y0p3U2RMSnZwK00rQm83VERLdlRhWFVDQndmSHljUG5WakkrQmdQWTcwRElxcXpZbUdNQk5SZFMyVzYzQXpnTXA5Tnd1Snl5Rld4dVY1WUJUc000NW1OZ0g1MncydTJ5M1NhRFZYYmJNSWxxbFcyNjY5VDRHSlRqZkF6V0UzcnhaZURnNE9EZzRPRGc2TVRvWko4YzUrdERIS2NaVnBlTCt4ZzRPSDRRK04wS0tQOXYrUmhVN21QZzRPRGc0T0RnK0U4SDl6RndjUHlRc0xsY05oZHdjSENjUElKZUZWVEYvSWxsbC9uOWlhcW1xZzRFY3lFZ1ZRM0R3RWN1dDl2bDlMaFZPemk4Ym84TDhBcmFCeUhHZGRnZERrd21nMTMyc3RTYVhYWFkzYlpUb3YxVUFPMllFOEYrd2p5NGo0R0RnNE9EZzRPalU2T1RmWEtjK3hnNFRqUHNIby9ERFJ3Y0hDZVAzSURHdGk4d0gwTVcrNjFLVUMwcTh5c1lUSE1oVloxT0p6N0s4bml5WEQ2UDZnREQ3L0ZsQVY1aC9EUXdydUV3REV5bWdFTUpzTlFXaDJvNFBJNVQ4dDJzR3Z1MXpIWW53b256VUlDRGc0T0RnNE9Eb3hPamsrM3E1dXRESEtjWmh0ZHJlSUdEZytQa0VRcHFiUHNDKzFDRDEveitSTTJpYVM3RDVXTGJGSkJxV1ZsWitNamo4M25jQVo5cWdDdmJIL0RnRFRlMEQwS01peW1jbXN1bGdLRUVYUWpkMEZ3TzM2bnhNZGpadDB5Mk94R01FM3J4dVkrQmc0T0RnNE9EbzFNakN6b1Z1SStCNHpURDZmYzcvY0RCd1hIeUNBY3R6TWZBdnRRZzdXUFFOWTE1Q1k3M01YajlmcTg3MjY4NndSWDBaM3NCcjQ3M01UaGRMdFBINEV6N0dKeWF5K2wzbmhJUHV3VkFQK1pFT0hFZTNNZkF3Y0hCd2NIQjBhblJ5WFoxYzl1TjR6VERGUWk0QXNEQndYSHlLTXJYMlVjazJNOGZCY3p2VDdSWUxSWVBBandBU0MxZXJ4Y2ZCWUxCZ0M4M3FHV0JKeitZR3dDOGd2WkI2TWFJV1I0UEpsTWhTODFqcWExWkZrOVdNT3VVZU5oMXRvOUJ6VnlkT0E4Vk9EZzRPRGc0T0RnNk1UclpybTd1WStBNHpYRG41TGh6Z0lPRDQrUlJXbUFGcTI3K1JrU08rZjJKVnJ2VjZrT0FEd0NwTlJBSTRLT2N2THljN0hDZTFRTytncnh3RHVBVnRBOUNqT3Z6K0h5WXpBSWVTd0ZMYmZkWWZaNDhqK2RVRk5uS1BpNmhaYTVPbkljRk9EZzRPRGc0T0RnNk1UclppaXRmSCtJNHpmQ0ZRcjRRY0hCd25EeDZkcldCeldwK05YRysrZjJKTm9mTmxvMkFiQUNrdG1Bd2lJL3l3K0g4bk1Ld3pRZlpYY09GK1lCWEdEK05BRWIwWldkak1ndjRMRjFaYW9mUGx1MEwrM3lub3NnMjlrc1c3VTZFRStmQmZRd2NIQndjSEJ3Y25ScEI2RlRRZ0lQanRDSlFVQkFvQUE0T2pwTkhlYWtEN0RiemR5akQ1bmNiMkoxMmV3NkNiVk5BYXMvTnpjVkg0Y0xDY0g1eG9UMEFPYVdGeFdIQUs0eWZCc2JOQ2VUa1lESWRBbm9wUyswTTJITUNoWUZUNG1GM3NHOVMxak5YSjg1REJ3NE9EZzRPRGc2T1Rvdzg2RlRnNjBNY3B4bkJybDJEWFlHRGcrUGtVZG5EQUlmZC9HcmlRdllkaitCd09SeDVDS2E1a0RwQ29SQStLaXd1TGd5WEZqdUNrTmVqdUxRUThBcmpwNEZ4ODRKNWVaak1Ca0ZiRDViYUZYVGtCWXVEcDhURGJyQnZtYlJtcms2Y2h3MDRPRGc0T0RnNE9Eb3hPdG11YnI0K3hIR2FrZHV0VzI0MzRPRGdPSG4wTDNPQzRXQmY4QWpGNXZjbkdsbUdFV0tPQmRSY1NJMHVYYnJnbytMUzB1S0NIcVZHTG9US1Nuc1VBMTVoL0RRd2JpZzNGTUprTnNpMWxiSFVXYmxHS0xlVWJZSDQ0ZUZrdjliVTdrUTRjUjdjeDhEQndjSEJ3Y0hScWRFRk9oV3N3TUZ4V3BIZnZYdCtkK0RnNERoNURPcm5oaXdYc0IrRDdRSHNKeVN5dkZsWlJRZ29Ba0NhVlZ4Y2pJOTZsSlgxNk5hN0xLc0xGUFVyNjkwRDhBcmpwNEZ4aTdvVUZXRXlPM1N4OTJPcHZWMnlpcnFVZFRrbDJzL052a25aa2JrNmNSNTI0T0RnNE9EZzRPRG94Q2lCVGdXK1BzUnhtbEZZVVZGWUFSd2NIQ2VQWVdkNXdlTTJ2emFvM1B4dUEwL0E0eWxGUUNrQVVrLzM3dDN4VVhsbFpYblAvcFdlcmxCNlZtWC9jc0Fyako5R040ell0YlFVa3ptaHEvTXNsanJRMVZQYXRiTHJLZmxNRS9zdFRiYVpJWVVUNStFRURnNE9EZzRPRG81T2pCN1FxZUFBRG83VGlwS3FxbTVWd01IQmNmSVlWZU1IbnhmWUJ3NzZzdTk0QkYrT3o5Y1RBVDBCa1ByS3lzcndVZDhCQS9wV25EM0FWd285YXdhYzNSZndDdU9uZ1hGN2x2YnNpY25jVU9xdVlhbHpTbjA5U3dlVWxwNktJdnZadDB5Nk1sY256c01OSEJ3Y0hCd2NIQnlkR0wyZ1U0R3ZEM0djWnZTb3J1NVJEUndjSENlUDhlY0hJZHR2L2tiRW1aQ2ZENUNkbjUxZGdZQUtBS1RabFpXVitPak1nUVBQN0ZjN01Mc25WSncvc1BaTXdDdU1ud2JHcmVoWlVZSEozTkRUZlQ1TG5kOHp1Nkxud0o0OVQwV1IyVzlwSG5NaW5EZ1A3bVBnNE9EZzRPRGc2TlRvQzUwS0x1RGdPSzNvTlhodytXRGc0T0E0ZVV3ZWxRczVRZk0zSWdaQk9BeVFFODdKNlllQWZnQkljL3IzNzQrUEJ0WFdEanJ6Z3RxY2N1ZzNxdmFDUVlCWEdEK052aGl4dkY4L1RPYURjdDhvbGpwY250T3Z2TGE4L0ZRVW1mMldKdnZBUkFvbnpzTUhIQndjSEJ3Y0hCeWRHR2RBcHdKZkgrSTR6YWc4Nzd6Szg0Q0RnK01IQVFFQkQvWjl2aUo4anVmZUVNS1FHMmtYNkFyZG9BTDZRQldjQlVOaEJJeUdpMkVpWEFiWHdWcjRMZWtsL0Rpa2hiSkNnVkJ1MGE0amNqSUprRTVWQXQweFZUOVVmMmZEZVREU1REVUpMajlCS2tnbWt4Lyt5NzlMOGUrQm8ydjNMWDcvdnZmdmZYLzFoMStiWmY3ZlFnU3d1ZUZKMkdiejJMdzJuODBQRUR0NzlNanp6enUzOW95cWZuMHIrL1N1S085VkZ1M1pvM3VrdEZ0SmNkZWl3b0l1NFZCK1htNU9NRHZnOTNrOTdpeVgwM0RZYlZiZG9xbUtMSWtDSmRDZHhQMkQ2bXFteHdPREd1S0RDODRwTUVMeHdSY2NQRDhhQjFjd1hPQ3NHTnNqRlNVdVJlS1FOU3p1SGxHM0VXTDl4c2JseUhIUEw0Z0xSY1lYWVV4MmZqQlVFeGVMOEw5ZzZLVEo4WktSZGVFQzQ1VmcrL094bUNTZVBhZ3VIQTdHYVJIK240dVA4SC9vcE5Ea3VERUM3NGVEcVR2bnhtRkVIVHRha3gvMHc1dEd2L0RZWUJ4RzFzWHo4TEkxZVJDdng0NDlRUWtmQjBodU82Nk1GNUNseHNiQmdVSG54TUc5RVFaL0VBY1BpM1N3SDhSaFFMd2tnc1V3TUlTdjhzY2hHaWZ1TCtJa0swNDg1Mk9CajNzL1MvVit2Mi9Ydm1ieTlJS2F5WmRoSzA1dU9OYU9CMU90R0E0dERTMGRXZWVzd0tCWjJvMjZaVkRCb0NtV0h0MWhvMFhIb0k0aFREVnpJeGw4RmpFRGRIQk4vNDBVVkJ1MmxZdVZyb1lkMCtPeFpRMFlLRGdIR3dtZlpCMTcwcHJjZG5QSFI0REpNcUdzVklqRTVVRnh4Y3czZEZrOE5pa095MElidTI5YmVuT3JBWmMwUkt5VEN5WlBHbDhYRnlaaEdUZUNVRlRUT0RxZU0yekVPTHlGbWVEUjBCaGl2WHFPU1ZnZmhXb2FRMHZ4bXNWdFFGcHdEdXZiNCs1UGJwelN3TGlCTkJTY2c4KzBRWFV0NFczQnVBdlBOWEZuSkQ0RW93MjUvcU9nc0xUR2YxbUlYUzVkMmhLS3I3MndydVBUTUtQWTFYNHMrdEthQXN3TlgxWXpmU0RycjJpbWYweWVPM2N5NjRoSm9maU5sMHhQc2Rla216UE1IVjVxeEFkL0hjWnV3STdJcEVvMzRPU0c2YXk0MHlleEt0Wk1EeTFkTnNXczVzMW10WkFsUXpYVHoyRUhTNGdNRGhkaDZuRjFOWTBGTmRpV3kxSVpZcVV4SUJSOU8yMDRIQTlFV01LbFMydFkrU1pOeHBLbnlvc1BqaFdlc1gwd1FyQThnK0t4MGVZSlJwdnRqem5HSnAwek5uMHJIV0VjUzhhZU5Kd3pkbXc0MWNmRFJ0WU5ZdlVwbUhST01GWEw5anNONlR0NG95YnprSlcyNEZ4OFF6eDBhWWdOclFLTTJvK1JLZjFnNmFYOXpMWUtqeVdZYXNTeFZIR3B5Q2dJTGYwS1dMZnUvK3o0TzVQU2QrUWk0eXRnd2NFRmd4dVdMaDFjRUJxOHRHSHBwTmJralpjVWhJeUNwUnVIRFZzNnM2WWhaQTV5Z3ZlZldCYU1ENzU1Yk54b2FDVDlzYU1aencwZXlYcG9jS2h4VWtva1ZCZUVzVXpPc1puSEk3N3ZNU0NuSTcvanlGcHFZQm5pVmhRNHdkQmdWa1VtT0pnd1lXTVJjNytvRHZuL1VwTlhUWUxqWWhTK05jaEdpREMycU9heVVlbUtJeGVtbVlXSnRRdlRkL0VsNFRBYk84dGFZM0FKWHNSdnZMQXVkUjJDUzRLYklCYU5ZTDgxc0NmYk1rODhGN0VuTjJhZXRDZHZLTUErSERicVgvRnlSejVlNml4d2hhcWlaaEhDYVpFd3FFNEkwckdwRUEwS0xHU0pvRGdhRVBkRk1FeUxXUFZSNGkzRi9ucXBJRzVFNHRLZ3VtM0JBV05EaGhQRkZldnBVUVhETGh4WDF5L1QyU2dhWHlwNGpqQ0JDRzRqVGdiRWlaZmRCeFNRcHBRV2ZQM3dZWHZDVU0zU0RLdkY2YURSZFIzZmx4bDd4K2N4YkhRbVpDYUkxMFl5OFZMWDU1clhLZFpkRUx5ZXlTY0tBemNXa01VWGJveVJ4YVBHMVQxdW9PWmVQTHB1RXlWMFVNUEFzUnNMOFZuZDR5RlVrdVpkMm42WFhZWFlGUXhqUTJNVFZjMUh3Y2RqQURlYVQwWHpobmw5YVNzQjg1NmF1VWZnMGxhYXVtZVk5NWdDUXZXOGNYU3NsZlI1SktkTFZmUnNLK2tEMVhnTXgrTldQTzdIUTRJWTZmbElUbjVWMmRrdVVvS3ZpU0c5RVkvbGVLekZJNDZIQkFkSVYvTlowU1BCL0tyWTJSWlNpSmRSSWlFZFRrVHprUkI3VUxOVlJhZEVwMGFuUlJ1amwwV25SK2RFcjRuZUVKMGZmVG42aWpWMHRPeG83T2hMUjhWL2ZCRm8rb0xjK3NYRFg3ei9oZkR5SzE1ZnpnM3p2Y0ViNWdmSzVzZm1qNWpmTUgvbWZPbmF1WGo3eXBsSXJwaUI1UEtydkVISDVVMlgzM3JWL1ZjOWZKVjArVlZOVjJmUHVjYnR5WmsySGNsdnBqOCsvZFBwL3oxZG5Ib1pYajE5R1puUzZBNDZwdVJQb1E4M1B0bDRZRXB5aWppbHNYbFdkbUMyOS9wQmdmQjFlRVRQSGtJR1lwa0hRaE1lQW93Z1o1ajE2WSsxNlE4ejhHakM0MGs4SkF6MXhtZE5wQUticFFLYnBRTGp6eURsZUtjY1c3RWNyMmFTc0prNmpLMGJ4amVFWVNJZUlqWmZIalpmSG16RFE0QVE2UUZsZURUZ01ST1BHL0ZZam9lTTVYQThxdWRYYWRHejg0a2QwOXF4Wit6d01CNVA0aUZockZUb1QzaThoOGNCODI0STZRdzg0bmk4aE1mN3hMNUpldGx4ZGdHR3F6dWtFTUdSZml1THZmWmI3MUxNdU1QeGFFcm55ZDZleEhmSjl6ZVo3M280OVc1MkQ5K1ZuMzc3dzhlVmhlWEFua1RUNzdrVmoyM0hZbXhTcjd6LzdHQTYxd1B0NzNLa3I2Z1ppcWJmUFB4YmFaWCtNN2VtTHlrMmxmMlJTRVhWUlBOdE05TTUzZCtoUG5KN1dkaTdia3pYOW9ENWhDWFdnbFV6ZjA4cXNiOUNSSDNFNXF6QzRVRTM2ZTZxeDVQYmlQSklrSTBUUDdGaUtheVlYUlFwd1R4MHMzOFZ2S3RnMlJSc2J3WEx6NjRZNTBOc3NtNVV4Uks2cytyOXJ3bit1NzhzL0pMTytaTEUzbXQ0ajRiZUxIc3o5cVl3OWFscm42SjMvWUdFTnBWdGltMFNHdUl6NDNUTjdSQzUremFJM0xVQ0luZGcrRFk4VnR3dVIyNWZLVVR1YkJZanExZUprVlVZdm12bGIxYlNHV2M3U0M5czNWNVlubDRna0RMaWhYS3NhUURQSGp4N056VUxrY2VUNzVQb0kxaWRtV2ZiaU04c3RROWJ3b2RsOVNFUCtFQWtXY1M5cVRSLzdSYmlSdFp4WTNYY01hOHc4OGpCSXpSNlpNYVJwaU5DN1BDSXd3MkhEeDRXMFhhTEpRODdQVlVqUHB2NUdUVko3RFB5NU4vSnpIMmtiQitaK1NtWitPbk1UdzkrS3F6RjBONlplK21CdmFScDc1TjdEK3dWRHU0aCtCL2RjK09ldFhzTzdoRkhmSEx3RXpyaWs0WlBabjZ5N1JOeHhNZGs1c2ZreG8vZS8ramdSMExzN2JWdjA3TGxJNWJUME5yaGF5ZXV2WC90dzJzUHJKWGYvNHJnL3orYjgvS2pINURZTytUKzF4OSsvY25YQmNlcnNWZnAreThSeDg2Wk8ybDBaL1hPNFRzbjdyeC81OE03RCt4TTdsVHYybnJYay9TdmZ4RWpmMjZta1YyNzVjaHVQRC8zckJ4NUZzKzNMQk1qTnk4TDVDOWI5R3ora2dXVDh4YzJxWkVGZURRMUs1R0hzYkVYTjVOSVN6TkVic0x3SWp4SDI0YTMwYWJZZngwZ1BRNmVjWEQ0d2NzT05oMlVnbjA5L2txUHA0L0gxZHZqcVBCWXl6MWFMNDljNWhHaUh1anA2VnJzS0NsMmRJWFNmRWRwdExTNlZJZ1dQbGxJU3lPTzdoRkhsd0o3WVlFakw5OGV5bmVFSk9Jd25GYXJ6VzdWTExwVlZsU3JJRXJJYXRRS2dqOS9oR09tZ3pZNWJuUTg2UkFjUXI0UUZZWUxUY0tUd2dGQkVVbjMvQ0RKdGZtVmJKdkg4Tmxjb3RzMk0waEdCR2NHRHdZRjFtRjZNTXRmTlRONFk1Q09xQ0J4MXpBWU5ucGdQSXZnZWRUQWVFVmtXS3NRR2hrdmp3eUxheU4rVkxlUmtKK054YnR4dWhnMXl1aTR1QmlWeUdpMGdzZjlxSzZWQk5qajV1RGp5RFFRSDliUWZNdllTRzU4TWpNRGJzd2RHeTluZ2VXNVkyRjJaTTZjQ01QczJha3podEtuMlpHTkpWMXI0cVUxaytMZGF4ck9pWFRBN1BpQm12akJta21OU0JyaUJ3ck9tVDJiUkw0RGZPVnNoc2ljVkdnTyt6UERjMWdRYVlRRkk2bWNaOFBzamtsTnpHR1BVdStJUk15STEweVlQZWY0STJLKzF3U1dJZTZQOThMR2lyQzRzODJxek03VWlkMlp6ZDVtMWhWcnA3R1dIREZ5NExENGdKSEQ0bzRSUDRwbkYrREZzM2hSaVJmV2dvRVJBT2tKQ0dUb0NTYlFSYW43eVQzSEtFT2lNYm52K0pqMHErVG4wbTQ4djVQOG5CNzgzMHpTMWZUeGIvRUtzWlB1Sk1zTVAwczBlUFpiejVkQUxRU1RjNU90eVkvaEFaZ0lsdVQ0NU0rVFg2ZWZXdHBEREdPVDYrQTVQTy9BWXpzc01zOWJ6ZU02REYrQjV4WHdNSXRJWjhBRytEWGNqY0UxY0Fjc2cxM205UjNtVzVJQTVNTi9XZWJkK05kSVBvY0d1UGs3ejlhYmY0OWpqUFV3a2t5SGMyRUIvaTJDcGZoc0Z1YTJBdWJoKzQvQ3JPU3R0QlN1eER6WDByc0ZDN1JpQ1phUlpXUUZlVmxZZ2UrZFRSdnBBalExMzZFNVFnWDlKYjJjemlZajZYa1Fodk9rUGVJWGNHZXlFUjZDUDBJei9vMkgwVmlXUjhrVHlmeEVJK2F6Q0xiZ2UrOUlOaWMzd0Vqb0pydngzWU5oY0tKT2FvQmJsUWI2QlJUQldUQUVSa0FkekliMXBBRlRyL3pPUGZiMVVDUHd5VUs0SFo0Z2F2TFY1SWJrQ25razNobVBjanhDSXVJVDVDelNyRFNBRnl3d1RGd2czNk93TnpYQWVmQUNlVnQ4Uk5vT1A0R3BlRnlGaXEwY1c3MnJER2lXS0FBVnpyQ3pLT3dNbDVNdkUvTklUdUlqR1E3REZWTEo4ZDZnWHBnRVJndWI2RUxrWkFsMDZCMExXOVFZR3JhaUlEMjhUU1JSa1lqNncvbVdxSVZhRHRwSXZpMXFvL1gxMGZyOXI5WFg3NGZxM2ZWVlZiM0tpRkFnOUttUVRFb1g5cGpSYTNkaUxhUGlDNGs5SkhEZ2dFbFp1ZXFTZThUUHBWY2hDTVZvTnJsaTI0ZVZrWktZM1ZrN0xVaG1abU9tMmU3c3dtemhDaTlwSWlUV1kwU1BoaDVDVXluSkx5RXhiNE9YUnQxTmJ0cFZJMDJVWE5HTjFPUmNsRE1sUjhqeGVJTWlkRmxsNlZaQ1JTSTVTTEdEQ0E0eWgybnhBSmtUSU1FQVU2ZlJsYUpYVmNneVN2eUxBamxGK2MwelhZU0dYRGU2cUN2MWhxSm04dzFnTmF3aDYwenJqVlpKczFwZEFRRzZMMUppRGh3V00wRFFoWEtZUVhzcFY5Q21jbktnbklUS1NYMzlyRWlFVEp4UW4rMDN6dC92OGxWRko5VDdxdlk3TVZBL3NYNi9zeXE2djc2K0YxVHZyOTVaWDE5ZlVWODlzYjdlbFlwUVgxOVdud0srQlNQWFIrcUxsR0k1M0tXd1QrL0t2bDJSVkpSN1BXNVpJWlY5S3hpdDdOTzdhMEVYMmVQMkVTTGp5VnRSTG41K1c5T0d4T0huRS8rOS9xRjcvblRmN1UvOWJBVXBqc2c3YkkxdGg2YzFYRHFvOXBKeFpFUmlUZE9jTmRjOGY4a05hOWNlM3JSNDE2Um5iN2g1eSthZnpQbk42TVNLcTVidTJVQVg5WnN4L0x6NnNiVVhYdDFXUVo0YzFsdy84emZNYTNoRFlpUnR3TjdTNEt4WVYxbUVIRW4xcUVXcUlNZ0Z5TCtVZ3Rvc3hKZ3VvNXBnRWFiUWtFN3FqelhGem9uMTVSUHJvYm9hK2FNQW5BYmEyRTZETml4TTNFTW1MMHk4bmhoSlhpUmZrSCtTRnhQaFJGNGlIL01iaXZsRjAva1ZhYUtVWTFHeWxWSkYwQVF0UjdwQ290UWhFWXNrS2MwMHB1UFFUV1ZuNXZVYVpqcXhmaHRTTTc4c2xwMlo1d3RrY3VLZWhTU1NlRjE2TlZHZXNDWHNpWEx5SHZrYitZQzhoemsrbG5pUExFSTVvc0dJbUoyV2FiWks4UkZoRTZoeHhWUzdoWnBSS1c4VXRJZlZtRU90Vm9lckUxVlJGeXk2K25CWldVeS9VWS9yQjNYeFdKWGJLdlpISU5wVzhmWCtYbVdSc0ZzdTZGUGVwNkJQQlZuVU9HWEtsTjJMN210NGFqZm1PWkMwWXVHdnhOSFFLeGE2bFJBU3BjUHBSQ3BRSmdqb1RMd21CQ1F5VXlKb1VkVFBpaHBQSTNOQXRINTNQVFprdUUrWU5yYjlsWFlscmI5ajVjZHVZdVVYb0NqbXBYR0NGbnhNbEFncm5uU2pGSmNPU21LbWlTQ0twUXFieGRtOWUzZEtDdEFxSFBVQ2pJejFGZ2lRUjZuZ3BsUW9BaUtBd0VRQUhZb2lGU1VvRm1jcUpUVzBtZEtlbEFqMDd4S0pTb1FpdzBieHFEZTJzZkpOWkp6ZHE2eEY2aGxwV2JDVGtBSkNxeEoxSzhoNjZZbkRnekVibERQamNmVDdzSDhWeUlJSk1aZDlEWnVmR2JxakZrUjFUVzhVTkszSmc3RnVlQzFtNlV0b0lTVTJta3VwYzRrY2k4aUV5aTZaMmtVUG5VL2Q4ZzEwclFjNzMyejVGTGRoTVZBY1JlcjNzd01iS3VRMHduaVFjaGN5WFVFWDZqUmN0SXE4bStpU0tDRHZMRnUrZk5uUzVjdWxWOXZVTml2OWtoNDZ2SjVZeVdoeUVYRWsvcEg0cjhSRGlTOFovMy9JUkJhV1Y0VnpZaEdxaUd1a21OV29sTkJldXdrTEc3TWJsU0lLbE41d0RzekJpR0RSWmxvSVhXc2g5Uk5uT1YwNC9QZVg3NHhneTFUL09ZSmlnRFcrRTFraWxGVWh3SmFyRDVDeEZTdkVoZWZkUVN5WVV6VmFEQmJNeVErelkxR0hsemc4K1o1cXozQ1BxT3RCUGFJTE5vdENIRFp0ald3UXd4QjlkNUhsUHVMdzVmdW9TL0MxSnArTkJYU2owa2Y4OHBJc1lsMWlpMlZuemFjQkd6WlN0dGxJcWVGbzdIL2FWUlZoRFlhc1VEMmhmdi91WG1VVDZ2R3lQaHp1WFFscDJhSVVWS2FsRGloaDBYSzB6Ni9KN3grNHVlbXFleXc3akxZWDMvbzgzdmFWUkhmKzlFc3k1ZldXNjViZHZQaXBQWC9mdVBhcnhIbk1XVEVPK3plSXRlZ0t2NHBORCtVVFcwNXVEblg1aU0yWjY2UjJoNG84Umd3UjNHczhzYkRzV2VNdmkrV1J2T0Nhc0RoY0k2QVJteWJaUERacXQ2MlJzNkRRNDE4U0xTUzJ3dHpDTXdzRlF5ak1YWkxueVNzVU5HT0pZRm1peFVxRStiUll3eXFXSEt1aVlZcmYvVkZXeC8xUlZ4VUszUW4xdS9HaWV2L08rZ2lZY2JBZjJPTUpwdFQxWWozRmdpNkZ4UlZNbEpvdGdBTWtaTGJFc1lZUXhKK3VTT3g3OFUrSm81WWR0eTIrNmQ1ZjNsTWJJYTU1Vjc2ZnZkM3p4Y2FkZTZjSVJRWFBMMzRoOGNFVFY5enpZTXZTbGJjZm5YSHRwMC9zZUgzOWhIV01peTdHVmduakFNaUJsVEd0aDQva1p2WElvczdXNUV1eEVjanFMbHNYR3ozVFFuSUFidkVIM0g0Zy9vQVAvSjY3Z1ExQU5lZXVnREJjSjZBVG02QTcxcWhaMlFId0JYSkVmN1pmZHkyUnJFdjBXSjQwbiticTJCSjV4N1ZFVlZYVVZ4R05ZaHZzbm1nMmdjbVJ1NW02YmxGN1JxUUZ4azVnR3FlZVlEWFp0NHliN2VETnRBUFdQeXZzQ1pPaFYvNXlNekVTQno1OEluSElzOE80Ni9MRnYzbG95YjFYM25HVzRHcTdWYmltTHRIMjVnZUpOMTdjMWJ6d3hUdnYzblNkSUc5Z2c0YlZPUmM1SVF0eW9SczhIak1ja0k4Q3dHSllhTmh2TVNyZGJLUlBRNllORmhCYkFRa2lyK1FUSTVlSXVjVHdFTkZENUdKdk1iVjNEUkF0UUJ4ZUIxUHJCbHB3NGJ2ZE1ZZWJCR1NINUw3Ylh4Wlk0eENMMTBoWjNpV3VuQ1ZXc0ZoZG9wcUhrbU9KaXVOMVBpMVZzVlVpMytXUC9Vd2JvNmpPYUtxcXFqUkxUS2pQSUJKQkdZSnRJNllZcEUvdm9uWjFMTFZyWWRLN2EzRmFEVmZTejBpdnhGZC9lVFB4RmVsMTZPOVBidHVYdUhqdkRWZGVjUU5WbDY1ZXRmUytuL3prZm9IZWN2RHhqejkrL09BdHQ3NXgvNjVkOTc5eGRtTjh5dFZYVDRtMzdaNjRaTkNnSlJQbi8reG5URXBlbkphU0hnaEJ5Kzk4bzdHNVBLM0p4YkVMTVZEaklYMWNOUzc2SXdjcHM4YXN5RGpuVzY2MENObWtsTkQ4TmFBNktORUZTbTJCTmFwb1pLMnhaWUYzbWU1Y1lrQ09rVVB0VXM0U0tkWkZuMC9ERWpaTWwyTU5nOVYvRFZ1bkhOdGxwOGtvZU1OVmhXSTAweGhFUmhIYXA3Y0xPUVhsYXBldXlDZ1Y1YTZzcnRSc0J3d0xkU3UyYm00Nzh0TG5SRzM3N3djKzltLzN2OUx5YTVmNDYyWFgzN1p5d1JyNndGcWl2L2d5S1VyY2xsaDM5SzNXMy8yRjVKSjcyNGh0NTIxM2JHVjFOdlV3enBrMHNNR1ltTlBVeEhyY2Vwd3lMa2dwWTV1VnFXTlY3YWZXcW5Xb2pnRUZDK3E3SVk1dkhCUW1kbERHVlZYdDZqaDZ2RUoySGxQS3UxTnFtUzVqR25FV2ZDaWVJZTRBR1JiRkxxcVZ5QkNCREFFaWlaSXNQaWxRdHlCUVNaWkUrVWtnYmh6WXhVRG1Da1FWU29SK1FxMGdhZ0l3MTh4OFRBQVh3UlJBaTBpRlY2aENYcVpqVkRKRUpYdFIvazFzdHhiUlhBRi85R25HY1RnZ2U1NGZVWEZBdG9nOS9XYUEyWU5GcEEveEVDS2VjYlJTZVA1b1FxQWZrbnZXazNzZVNleEk3R0J0Tm91c3hkTEtwclZmRytzaC9jRXZsOGlOc2lDVFA4UVVXa3luVVVFSHFnZ3lXbWV2VUpWaU9UUXlSQ043dGZaeU9DdWNGVmdLMW1MbjcvK3pxVGZSd0hEaWtjNFZEMkhDK3JhNzF4L1hPczJ4TWRnMDJFQzFoQWlpUU1Vbkpka3RTYkpBQlpFK1NjQ05Ca3d4SVhNbG9rb2xVaitwVmhJMWlUbXU1dUZyTEdRY21VNnVKK0svYmg4TS9adjJJZGcrK0crV2xHTDdQRStiRXBNZklXZVNNeDlKVEFhYVRPRHN2QTdsTG9vZGFJdjFYSysxYW5RTW1pOGdpU0phRTRxQ2JadURVNDZGZ2dXNzFrS1VIQUxLUWxWenE2cW10aWIzeGVab2dVckJpK1JPeTNvTHBkZGJpTkRYTXNReXhqTE5JaExGNHJNVVd3UjZKM3V0TUZjai9iV2gyamh0dWliNnRSSnRzU1pRaTBZc2dudzc5b1dQVXV5Sm1LN0xaNkI5cFdxQ2FoWG1VbDI5bHZhMVRyTitZeFhxclBPc1ZMVzJXaGtIejhMeGhsV3ZaaEk4a3VvYTdKZFVrK0NSK1l0RVducEcxUFFhQlRhTnhKcW0vVktSakFFREZEeklSTlpTQWlrUXdrSUJxUkR1VGlTK0ZoNTc2OEcydTMreG0xYThUT3ZvK3JhNnR2WGtENG1CcGkzNEFGb2luMkhJaGpQT1BOZ2VHOVRQVm11anFrNFVsVGlwbnJmQ0hwTkUrd3AvbVhlRkpQaFdpRGdLMUd4L05yVlJYWFExV2JVY2pUb0V6Vyt6eVdkb1ZsWmpUVU96N3ZDajdBWUdqbTVtOThUc0JkQ2EvTks4aVlGOWo3R2JZRWRUNW1nc3dHNzZtc1JZQ0dkYStlTGxkRjJJTEE3dERiR21hUmRZa1hJakV0bnZpa1N3aVZnYm9jektHRGI3ajFmMDljUXRodGswR0NXNTR2V1NjRXE5NFIxVHpZZkZ6eEo3RTErMXZVVXQrNGoxMVovZGN2UjZNdmpuZDk2eE9iR0xUQ0xqZi81YW9wVTgrT0xiMGhQUGJuaHRhdUZUSkRwdDNoVlhIdm5GMFVYWElTczNKUGRJRTFCU0IrQ3BXTzlzZjZtL3YxK1FuTVRpSUI2VkNEalVWSTFvdHR0a1VmRzErSkFGZkZtM1FaWmkrQXhzTFl2bVhlREx0SUdQcWNNQWF3U2Y1UFA0cU1NWFE5MW9MQkNzN0NsS3Z6L0h6TFlVWW9xQWVoQnZmQkRMMWZUS29HOEd4ZGt5YlEyU01VRlNIT3diSEJPY0cxd1hsTkpzbEJHR2tRZzIyWVI2MW1hbXJrc2JCVWpaNkdKOFZTK0ZVTEpEdUJ4OEJWMVJ1N0VMMUdvNDdVUkJsbmd1Y1F1WlRmb2VJQ004ejFyLzhxdjNFa2NKZmVlaDErelBlaEpQQk1oZEJPZXY1SzVFNHRWbER5UjJKejVNZkpUWXRmNmVmV3gvQzJYOEpEVWdQOG5nZ0hreFA0NGNpUkxOc1FJRVpZV3M2bjZkY2M0Q3JOSFJSOU4xM1dleWlLQTB5YTNKcjgyYkdEZ1V5MkYzNVpoVG1FRU4rWEk2eGtuV09ZbmZXZXRjN0JReWNpTmRWVlpQVmt2R0RjekdyYzlpVTRGd3VHODR4R1lENGZBREtIVCszdVpKUkxjVG5WVHYzWlBZbHZoS2VxSXQwaGJjUUxvUk8xRklpRmx1YkN4OGltWFg0WkpZdnJaQ3hqbVJqSnd2cmFDQ1pRVU9DSjlLTGFDS0lGdWFTSWJITVpDSXVWaFpTY3lHSEd3bGw5TzlOaWJaanBXdjNOaTVNMU8rTkxmaTdBQlowcE0reEUrUC9GNHNPSHEvME8zb0c4SWk2WWtOaWRpR2hKRXVFZlBVYURBODVzUnlvUGhjb1FxS0tBS1ZteFNXZFE0cmhCS0RtTzZ0MURGL2k0TDU2NlJZSDZPblIxQ3FHRmdLMVBNNE9XSHEzaFQ4WnRZRm1QbkNveC9UalczRHR3dnZTTlpFL3cxdGpXejJsdUwyeDVEYmMrR1QyTWdjZzFXeE5MZC83dlc1Z2pETlRXaVJrNVE2aUxCWUpiUVBjditkaEZEZkNyOGZTdEpqZ1BGK3RtV0JackswWmliWFZIK3RuMnJnei9FMlpUTW1EN0s3MlgyeVVkQm1vekEyY0FKNDNDQndwQVpCc1VBa2dkaFQ0OENQNHlBL2V3Yk53M0V3TDU4VTU2L0wzNXovVGI2WXFXeDZoc2phM1pTaEUzRVk0TVNNbVR6SUpxd0IyREJJTlVKR3RxWUViSHBJaE1RT1F5TFV0dy9Ua0FYRnNsQ1UySm1ZUzI0aVp4Q05UUFE4WjkzN2h3OFRmeWYrRDhpWmR5Y1cwT29sRlNzRDVENVNSOGFTZTVOLy90blBFODhuUGtuc1NUejM4bnNQdDdudmZpVE5YMUtCeVY4ellnRmhoUnFUSlJYNXl5SmovVFRTQlBhMGZEd2MwMHdCcVlwTkVnNEZrODlZSU9aanR5WGtzNnVvVmNJeFlTTzF0c1UyVTRsMDVEYXNaemxFSzZvcmpqRWI5alAyTmZNUlZrZ0ZPOXJrN2R2cDRSMTBVOXNGT0F4K1RjZXgwbTFCMG1UcWhFdlIwaFRZYXFtWTV2Q2pNVnVLdzBXSk5JWExKR2FlbFJhVVZDcVNUK29yVFpQbVNpMlNQRVFhZzhFV2FiVzBUdG9zUFNOOUkybDNTbVNlUkV6aDFLR0EyQWRtaVNwSTA0NGRLVjdybTl3ampNZWdBK2JIOGk5Q3hXc1hWS1ZPUVJtcVdGYlVDb1FLV2ZZbWg5aytEaVk3YzFseEhHcFRiSnBDVk1XdmxDaTFpbWdEeFd1T2h0YmszdFNRVkp5T3EyaXJreFE3MXpsVG80SDRVd3FFYVZuV1RsQTlzWDQvWXc3VG1VRU10SHU3OXVsVFliQlprYk5DR1AvU0M0Kzl0dU9aeTJadUo2OG4vdm0zZHg4clRueDU3WlBDZ1l5MGlKcGUxRE5pRHJTRVZoQ0lPZnlWb0loTlpwTTVVMDBtbzBCWXA1REZDa2tWSURVWWphY2pUQnlZWWdCN1JZd2V2V1k3ZlU1NjR2Q1hxVGZMTXI3WlNvb2VCeUg1WmN6Q3FxWFhva0dzdFNaYlk2c3djTE4rajA0WGFiZHJsRGFLaE5TS2RlSThOTTJtQ1FUTjJESENYRFJlL1JaQ0pJdkhVb1JteTJJTE0yb0UyR0o1MjBLRlovRkpudFJUUWtNbTNWbHZTQkpwbGxaS0ZQSm9UelJhNXRKMWRETjlocjVCOFQ1ZFNhbEVMWUo0blVoVTBTK1dpUDFFVVFOZEZZaW82TFFKTEduRy9Uck51SnJFaE5QUldNanNoSmdkK2RXR2NtbXVuWXl4cjdaVDFlNjM5N1B2dFlzZDVYZ0h4a1hPWlYyRWt6ZWNrZURRbkRYeEdEWFA1SmhaeE1ZODhoSXBJRXlXRVJLVzVkYkVoQTJKQ2ExNDZ4WnlLeWtRM3pzU1pvZjB4SkgrNHRNZHg2RUdzMkorQmVmZEMyWEZMY3VLSktDZDk5MWhLTk1tTVRNTXhYYlZKTVowckpZRkRaYTVPcG1uazFwOXIzNUlGOUthK051RHNab1p0Y3hSRmpZTFdrSFlPSHltRFZxZkZ1QnhzZm5JRFZpNkc4Um1wa0daM0gwTDVTN2FEN0Ixbzh6MnFNUXNydHRBdE40bVp6bFFCbjZlMFp6dngweXhLZ2dCdnljdFoxRnFiazVaWVFFLzgwbEZJcnZUSjNNTzNLc3NHQnZxdXMwQzJWQ0tBeDFmS2NrZXVVZ1dOSHoxQXNHelFJczFDbWpHWmd2OWhhR0NPRTFEd2VUUittZzFHcHJ2QVZURmZ1MEt1amRBeGdSSWNZQms2bXJhWGZYcEtUY3dWMU0xbTF1TUpXbUJ5aWhoTTBsSVNWVWhuL1FtaXhQekVyc1NMeVN1SlV0Snhkc2trTmo3bDNjU0g1TnM2ZFZFUStKQi9Hc2dQeWNYa1l2SjJzTlBrSDdFajMvOUVzK2k4ZlpwNHBtVW5TRWVOV1dwQnhiRWJOWVZtcVo3ME1yUWpRVlNwb2t3OE5lVW1ZVlNpbEJKOGtqVUprZ3hIRDVXUzVPZTZWT2RzYW9wV3ZXWVQ1cEJ2VHFxVUIrWjYxdm42MkNFbXIwWk1WV0trVllrS1NXU0ZTNDMvVW80a2d1eVV1WW0ycGtQMElKSC8va3pWQUZmSlc3ZHZwM00vdjM5ZFMxTmlSWFNFNFBlVy9ydUoyMlAwVU0zMzFTM3VEQnRNVTNIbXJnaEIvNFI4dzJ4anNGSmdrRFBFOGJqL0lxU0hMSVEzRzVnZkZkdXNpTzRsN3BKZC9jQU4xWGRmamZWcUdUMzJJdnNmZXlpRUZpZzJIMzJZbnRmdTJnM1piY2RMYzVZTmt0bUo5VHVkTGxsVU1FUDgwQ3dnVWRwVWpOTndBS3hLSXVueHZMUWlzaFZMNmN0VGtKZFRzMnpZclZNWkZuTnVRMW52R3B0SHBtYlI5YmxiYzVMVFYyWW1rbDVtbkQ2TXJHK3JFTmJZVk01ZlJYSWV2WDdjYUF5RnNFUkVMRzNUMWw2QVJ1LzRRS0JOUmNidkdZenlvckg2MHRaN2VHd05QMlZwVVVQelV6Y3RaMHVlZkROeGZHNzdocHg5RmF5OFhlL1REeWQ2RVZhR205cXUwVjZZdUJyelhmdXloZDd2VWx1dS9ybXcyeDhNNy96WnppQ0NranNjY2hGbTV0VkxJYzF4YlVzTks0TEVScnpDUjJUanpaSFBzNHA4MnJ5cURBdmw5Q3MzSUxjVVdqZjlNdXV6YWEweE5mUFYrc1RZQjVhT3hlNXlVVUdKclBQczlONU5rSlVHN0dNczVJNkhRMGhIQjlVOEVuRnlHUUNURU54TWhSbm5SWkhNQ3hDbzRkNC9DdGNqTUU4ckoxZG9pSXc4VHhOYUJFa0hXMWlwc3hDcHRKYUFWbmVKbzlwOW51Q1RRNHo0UEE0QkV0VEdFZTZXWVd3Mlpzc2RsaHNFbUpGNFJtMGtNMEdpdllXMFhWRnBPT0V5Wnd1c1FubC9paFRjdnNqcG82TDdOK1prcW9kNU9lRWxQM1RZYWJaY2M2Sk50RXhKMkZoMXo2OUN5dkswVDZpWWRNUEpKcU1UM2VqcmJOYi9iM2pudy85OHBrWEU5cGJKUGV6UTZSTTI1cWIyUGlMVGJlU2xrOGVTTHdhSU42L1BuRHZUMmRmZDlYbGY3aHYwMGVmdkVJczEwOFpQLzdpMFJ0WGJqMk1mZFlEeC9Oak9Bb1VPRGZXaTBnclpFR0F0VlJhUzVzRWs1T0ZHTTZqbThyS1B0VklyY1ltNFljMFVkRjgybHp0RGMzVUkrMnE5UlBqRXpZNHkwMGJ0OEIwYmp5V0NPNUk1SXRMSk92aEx5WHJCc1lqVmh4MXRlWThaUnZUc2Z0aTlUanhCemI3bjBmdUpNOFNnZlloTlNoL3BoQlJVSWlQRkpOcFJKeExWNk5PRkdoLzdPSnhkRG9WQlpYNmFRbHRwQ0pxVllHcU1KTXF3cFcwcnpwTi9VWVY2dFI1S2xYVlZyWGpORDh6dDg5WW5aR1VpQS9Hc2lVNVJ4TGxoU2x2a3lUbVNMSzRNT1dHTXYwaDN6ZjFIOHZXWGlwUTFkZTJQZjFzMjlOL0l2aVhXb001NGhNL3hWY2x2MHo4UWJ3MldZZ0MzL0U3OGdnRmlVU05uUkJOdTMvRWE0LzhXUHhKNGc5VFVSWmRnSGJZSHZGTTFJd2gwaVZXbmw5cWMxWXF1YjdjNHR5K3VTSmRuYjB1ZTNQMk05bHZaRXZrZWpjUk50dWZzYjloMzJQL3hpNnBOcitOb3VYUGxKS09pWVF5bTFGSlZydVlwUmd6T1QvbXNycjlsYXJMNzZJMkNGcGRxLzFsYXNBZktBazBCdVlGbmczSUFlK3FvS0dzc25wRG9UQyt3TitjZWlwWUlNRFkzdlF3Qk14UkVRZzRYQ1RVbkc5cXZIdzA5bjdIN3VhYnF0bG1LdWxGRG5mYVZQd281amNIVXF4TGZpTU5PNmJTTVYzSXVpNmt0Z3Y1MWh3eVlpcnFjbGZHd1JCSnpSVFlPZ0plUmxLczFhc3NaVHltUmdlSmtENEZvWlE3MkdjYWprYTRnZ24vTGtxQkM2V1p4MWtnUkJZbXBzNmJXcitoZlBtSDkrMmlDOGY3cjVwM1ZOM2lJYi9iOWRFVzR2djdleGVPR1gzSlQvK3JoY3k1ZXRvNWo1SWh2OWpmTnBMWkFNdFFna1dRTyswUWdLMnhJZXNEclFGS2ExSGpydk5zOWxCYWxFV0VPZ2V4V0xJdHBaYitsbkdXNlpickxRcWRLN2ZJcTNFeXNVN2NMTkwxcEJWblpLdW9ZUVBuS3RWcmRTK1NNdTRIREx3Uzg1aDZVWlg4VWdsejJObW9BL1JtYXlZS0JwNlBlVmtVYXl3b1hVYXpyVk5vYlhCdjhGQlFPSDVxeThSOFJoOVdWNXN1NUlrZHhRbGJiWEI1MkpKY3NZZE5RSTZ0TjVEYUgyOTg2YVBrOW9ldTNicjF1bnV2WDc3NCtuc1hDcjllbmZqTGtjU1J4TXVYajBUK0hianc1VC90ZklFdGVrSXRjdWJIeUprQldCMExsL2o3K1dteDJsZWxWTE90R29yNnlmQmxyYXBoQzVsZWkrWmQ1R01TTSsxb2VTMDF5L1FOOFUxRGRTNFpXQmFiWUN3U1hHa2o2dTNVWklLNVd2cWFzbGwwMHFCdk9zMFdwdEpEUVdTVFdjZTVWZG9OZ0tvcWMrNnd1OXBjV01NYVMya25pamMxZlV5dkUvU3RrR1ZhOVVIaUg4VHh3WVpQUGR2Rmxva3Q2OWNqRWJkN1BnM2d5RlZ4T3RrbC91dUprM2UvOFB6dXlSTitIV2Y5ejJxN0Ivc2ZtUjhlZWh6Y09Lck93QUcxM3RIcW9LclZiNlhyTEpzdGRMM1NxcUNha2dnWmc3UHZJVUNJc0NyTDhJRzJ5aGF3ZVQwUWFQYWJ0ZlN6Q1pHZDFkSXZMeklNZHN0Z0E3V1kzVEppekVOVmJBd3g1aG90eG1wRHNkR2d2NUZtRzFPUDcvQmpUWkFhS1ZBZE5WSTkzcTVLbUF4MnRsZTlyN21HWUxncXluM1k3emdVcnIvM3VoVkxycnR2b2RudFR6MDBkOHNXMG9zY01ydFl2Sk9VSENFaWlVNG5ldzRQVHJlQUdNSCtacitHKzJaTXkzWVNOWlRscTdTeWN0Zm85a28xaXhqVHlGeEM5VlhCbUNWSW5GU0c0Q3AvMlZEL09ELzFyMW9xa3lreUVXUkRjZmxjVkFPWGZWVVJzS1ZYQjdLSWM1SExzMGpMV0lrWWVEZmxhZENDK2lMQlNQUEZ1N0d1MytHTFhPMHltb044TVNaM2JpNnR6ZDJiZXloWFNFKytqeldQYWZLL3htYVdiRmx5ZDJwdVdiKy8vdGo2RXc2U0NheEoyMWtHbko2d044TXRXU2IzS1BTQ2ZZbVBTTmE3SHhMSDBiOVpIMWwwNmYzaURtOWJnMi90bkZtLzhBWklFWkd4dllvVDd5YSs2ZEc2YVVyOUE1dm9iWGZkdWZwdU5sWU1iTUJMMFA1eHc0ckhRVTMrT1hhaFpxc3NOdEFDWEtrUkZ3aXJaQWRkNTk3c3BuMzFJZm82ZmJPK1IvOUdsM1hCN1pLaGVaNUFGTUVuRkF1YmhXZUVOd1JaTEJFSS9vOFJ5R3BoSFZxa0dlL01IMUpUYkdHZWx3enhydk51OW43ak5mVXdNL2h3dXIrN3ZyNnRxbXEzc1pONWFhdHh0SmljTWl2Q1pqOEZmU3BRVkpiN1BDYXZlQ284cEhITFBmZVFiajhxNzllL1p0Qnp3b3FqTTRRVmQwd2dJNndQV002Zk9QNE9reDhTSTAzTjVFZXJMdSt4YkZPcW8rRysxelNNckpsQWdMSEhHU3kwcm1CekFTM0p3MkdCVW5OOXFEVkU2VVdlS1I0cXJEZGFEYnJPdHRsRzZSQUxnZlFFdVlhUS9qaDhQRGgvZWdRSG1zaThUMzZYdHpKbmxkdndPN3Fzc250eEJnRlN0YzB3eGVlMldKYkZXU21wcTJoT3dHdHRCaU05WmR5Ymtwa2dMNUppK0JvcGY1SFRmT1JzSDI3T21PTDBPWXVkUTV4em5TM08xVTRjYmtYUVNBdWRPTnpRamp0VTlKM2g5bHFrZmNUdDM0bjZwejR0YUZud1c4SzJIdGdleHlLMll0ZW53czBrYlo5amc3QlBoWEJzY0FwN0V1WFA3dG14NzZibHgwWmplbnlPVE1DRzJ6ZXNlSzFQKzVnYzJXWk5qMVBHWGNzQUJMWmlZTUJWc1I2M3E3OVUwZHAxQ3JPRUZjTFBCVWtUU0JZS05jRWlXRmFDblJvT2tPMXlzeVNtMWM0bnFTbTFCTFptTzlNd3BsQ3l4MXhTSTNYYXA5RGpYUUZzYmxGdExrdE9OUGN0b0NvSk9aRjlUTzFoVHFKcmI0bVRhVnZycHk5ZnZuV3JjTi85aWV2YWh0SU5QN242d1RiVlhBZkNrcEphMDZPbFFNVW02VTZaZFp3NVpaYUJPb2pXS0luUVRGcVRMNW5yRVdTS2Fud2RRYVpsNWlPYXlpa2ZsYm1ocDNZclFpeDZibGVtL29mTW1lZSszMmtoYjdCU1paMTduanRZV2F3T1FWTlAxNEhOMndRTHp0Mm9RRnBBUjN0T1Y3VWNyY1VpdUMwV3dhTVRCZWNOaWtBY1FLaUtVd1VaSkYzS3NueG9vUllMY1FvV0xPY2orRDUyL3AxdVZGb3N3RFo5cEoyQ1FuTkhSZjVzekoxeENsNURyZElVMm1KYlozb0VPK2hvVjJiWnBONVZ4ZXJtUzYyVklMK3czVHZpOTY0cHFjWUFkWUM1eGhvSkZ4Q3p5WjFvYVFxSC9wWlloMHFiM1BWNTRpb2F2Q1l4VG5yaTZGUGt3Y1ExcWRaSnQzbkpab3BtYktQWndrY3p2dkpNVTR2WTFKRzJUNDY1QXJHSk1aV1pYaTdDY1o0TGYzZ2NjcEw3SHRIMFNoOWJuZXVKZ1l0emZwcEQ0VUxmUWgvMUJZalBRMmhRc3EzMHU1MWV3NFg5NlNUTnNGejFxMjZqMmNtbVhLWlFkeTVYbXpVeDR4eUo5VFVGUFU0bWlBNTUrVnB6V2RuRitVVE5yODFmbi85bS90NThxWjk1RXFibFA1TlBpL1BINUsvTzM0ekIxQUxMckZrZHgrV1hPQ2FkRmNhWCswMlBGVnUrMjE5VmxWcGRZYTBmUHNhbzdRenJRV1BJVjhuWVdDN2FldDdZSlRkdE9XL2Nra1ZidC83MGw1L0dwdDh4aEF5bUcyNmFpZHliUG9sRkxmZHZXekFvY1YxbTFHRzdHSEROLzJEVU9iNDE2aHp0bzQ2bTNRTGZOL1oraU1FbkZuWFU0TXlQdFNabWNhMWlYcWVoeUJoTVRIWTNCYVpoWGNYOFR6V3lZQk5rMDhLWHZhcmdGMG9FZ2MzdGlqWEJUUjJMVU5rY3pMaThYa29WVzBEOWJhVDc5UDJVZ2FmRkFzSmwxSytoMVJZZ3RUaXIyQnM0RkJDUGQ0Mm5GNHJxb2RxMDhkTmJ4enA0cHJMSzJ6ZDdlR25WaDJ4NzJJY3AyNDBaYlhpSVp6S05temlVZUNkanVoMDlhL2Z6TCt4bXhodVRPSWxHczg3TWJuODZkbDdBRkRiL3hub1hqN2ZicVVROHFOMEZ3YlRkSGFidEhqelZ4bnQxOWJkTXVVd0FJaDBNZU9mL3lvQlBlS1d0UjkvSVdQQk1nemVhR3B5MXpjN0h3WkZXMlRvYmxVT1ljU3UzeW5RZG1oMlVzUURxN1hXQnpRRmh2YmZWaXphdUcyMWNOR0NHT1BDc1Q5T3AzWUg4WlBoWGlWNFNkRmhKUncxc01naDRGaW4yOUdMQTJ5bk5xOFFVeGFjVUswT1V1VXFMc2xwaGhpNXEzbXpsM3hxNmJDSlluWEpGWnd4ZHRPWWloTzN2K3g3dHV1VTdhalhSU0gzZnIxSHBKbXdaR3d5TitabEJRcTJVcnRRTnhTRnJVck1zcHRkRVgwcUplam5tUUZGdmw2ZlFZc2RteDdkRVBSUHZxVEZMamhNNmRGUEpzT1hUdG02ZGUyOUpUK0U2NitvMmwxaDB4ME1xeTcwYTV4cHh6RDJmRU9ZSitTUjJEY3RsVW1wOW1Rb21oYm5aekpJYUU1Z1dtQnNRaGZZUUhQTTlObHBKQzJxMUVyMmZUbUdlQlJXYnpaOHJnc3V6eWpEWWxvaHBkQzV0TVZjVTl0QnYwQ0tuMGlyd010OEMxV2hXczh2UEp2bG1KL3FiYlM0Yk5ZTVVaWmZwenFacWMyNUdDdVN5SGpYZHRibENNNDJGY3kraklUcVZGb2ZYaFk4MVJ0b0RGb2xVVlVYM1I2TDdVNHZnTzVueHRMT0RCK3c0YnhkTzZLV1FVT0VOdHp1N1VPWmxGYVI3VldUT1NTb256bmR2cFVTKzVvWjVpU1cvZmVOUjhuTnRpK1dOaVFzYXlNTGY3d21RaTdkUE9yZjJqQWx6YnJ2cHQ0azNWdFhXbk5XM2Z2NmRLNTdFVmk1SWZrR0xwUjdnaGFaWWpWQ3FHWlVQaWtRbzBlZnBWRGRzeWlxTHc3Mkt6dlVTeHpvdjhkb3NSdk04aGFUNFZWQkxGSUwvNjVUTnlqUEtHNHFvV05PTXZUMjl5alhQVDRiNDEvazMrNy94dDV2Z0dRdjh6L1ZQcHhhZTBSZzMxLzRqRW5OVmRPM0RySEMySHdobjVlWnNqUmFmZGU2Y0s3SVhMZHJ5MEVOOXkzcjFvTlpSUDVsSng5MUIxTVNoTzlydXVmSU1GV3ZSWXZxSGlsQUwvVGlXNzhmdXZrZDlTS1YySVUvNHNYQ2ZzQUUxa1pYa2tPNU1FekdiUE9WOEFXcVRISVpsSmZVYXFJQXlmdW05WnNjeU5kV2EzSlVhdEZMTVpVZGxKSFV3QkZQTEo5WDdvOVVWTHV5MVNFb1pUYXd2a2d0UUhWV2tpcDZhWHQ0U1Q5eTFkZnowK3hadDJkS3lsaXltajdXTlJHMUVEeDE1aTNGNUVQWG54MWh5R1Y1THI2azRKWUhLRHNGQkNaVkFsZ1FSQy9LK1dTaEpVaFZ6MWVTZDNRYis3OTdOUnBXVDVSOUVlV3A2NlZvNmV1bGFVbDQ2YzNsNkVITWo1aUdaUUltRlp0T2hWTGlRRUNiVGE0aWdDNWlkQ3RQUjlzUGhvSDZqbXA3Q3VXcUx1azdkZzVlS2l0WUxUWHVtamprTHpTMTUveU1mb1BCeFlzYjZ4SXhkSkVBQ1l0R1J0OFNpbzl1RnMxajlMUURTRnF5L2xUeWNxdjlqMUhTbUtXeWRTemUxaHN5b2hWMDdUZFVxSDl2VUk3TFJhWTQ1RmVzZ1MxYUg1c0JKcEtTckFqQzFrekl3cklLc3BGN0svQ3FwYlIyQzNXWTI1V3VSM1FZN1dHTmlhMkp6c2xHWStiQlk4TEc1QXJZaXNiQjNhV2hUYTFZa1pxNFArWUtWMUlwa3NmVk82NXRXb1FXSEFHMjJrRXN0c3kyMHI0VXMxWWpRcU0zVEtPbW5rWnZSS21xazh5aUZSVGk2cG9selJRcER4REVpMWEwNXVzV2E3alZWeVZFMXBVV1czRExyOXl5eFFCU3NOSWQycDRMQWRER2RCNHVCMHNVU0VkaWFVUkV5U2d1MnJZV3dmWmVDaGx3ajJWRUUyK1E1NWxMbVh2c2h1empHUHRlZVhpMDYzc3ViRmpQMS83TC9TUDF4bWplOUN4TmZOYkdlZGEzQXRuSmxaZUcvdENYeDFLT2ZmUHhvWXR2TE93NDhkSEFINjJUQmV2Ukw3T2czek4wajNiQ3Y3Y2pyWDJCZjYyUjJtdGV6V1ZlSnNzaDZqWWdXcklLQ3hybnB2ODZzR0ZKcXM1bzl0UzNGOWVhLzJWZXByZ3JHYm45VHhWbUw2a09HTmYzZTgzQjI4enlRNXkza2p5TDVvOHlrR2FuVjYxQ2szYW1MbE8zMWFkVUZVaXdSdGpOZ3JyUmFFaW5iTUxCWkVqUzJ5WkpOa21TaWFxcHUwWEdDaHNOUUIyUXVpeVRqOEZORlVWUHdjUXNvMkdNSys3eEppNmk1OGE3c0VDRWY1d0lXUmxBci9vM05FSkJUL2haenNidXlSUWJSbkF1SmM2aU5UYVJzemtwMmpqbVFodzdaeURUYlhCc3RObmZvb0QzUGRveGdyYXY4MGFqWjN1WkNyWVJkMWJKZ1p3dDJFVHNaNmpaMTIzZHBxb1BOVmVsWlpwZUIyWHRqY2FxRWc5SHNMeUo4c1E5dHhVUDd5T0xFNm4yZmZyb3ZzWnJjbDdpRUZwTUUyMkdWRUUzSmxCaHBTaWFEZEUvM2xvK3FraUJZbVhCeXdFcHJqbDFTMHZMcDdiUjhjams3eUtlZFVOMzI5TEZ1T3BjSmtSSlZvRjJ4QVNXdjFGVVNZSWpPckNhQnJxYnJLQldZT2k2bTJBdk01WkdXWjRycVZoVDF1L0lzRjBXWnd1U1o0RkRQcFNoSGFIL0t6Qk5ZR2JQbU9GaTdka05kaGxMTklTaUNTNWxPblNqYXBybm11bWl4cTYrTEJWcGM2MXg3WE4rNDFMUXR6c3JwajBhZ092dDhjK3YreFBxS2FsTVNzTW5vOTQ4UWN3M1JORWxUelp4Vm5zVWtYZ1d4TTlPMGovZVptOGVtQmQrdXhJeitGeTZhT0tTaWV4S2JOeVVDajd4MTU2OW0yVGZZMldvSWVZNU9wdU54SWpJZzFvMjgzbzJTV3VTOUVsSkxhREVNQWJZOE1rWWk4eVhTVGZxTlJHdWxlZEloS2JYakxQWFpISWpXWjNiTzBzbHR5K2xNOHR6dHFVL1Y3YVlYbTdzS3NtQnBMTnZLOWpTYkc1dnRObk5mczlNaUtIR1hLcGhNaVcxbWJuSStLL09KbzI5VW91Sy95OWhveTNxNHpqWFBSZGxTU1FrR1JOY2V6emNlT3RaRGZ1TWg4enhFOWZnOTh6eUxQWGQ2MHJQUyttajlyTGFLL2NacnFQQXI5aU1UVjFmczk1Vi9iYzVHc2IzYnQwRkw3U0Y2c2JrWk92RkM0NVRKazNlTG45OTBiOE5UdTNhWmxISGtBbUUzR1pyZWRlWTQ5aWtwSmE0S1pxRkR4ejRtbGVZMURWSWZrcHFyRXhRQ3FZMHVIVDhrVmIyLzNQeVExTEhDa0tFZDgyYWZJVENRM0dCNkxmMlFBNzlLZVM2dlNuc3V2WGY2SU9qSS92L2p3TlJFbFczYkpqcTcrNHdnWUhxdko3czVFTXNMb0tySUk4VjVRL0ttNWJFbGJhbDlodzc3akVEVXREVm1zYytUZk51VG1UYXl2OCtiYVc0NXh4bnljVjVOTXBRNWtiN2oyeVQxdXc0UHh0RlBqNnYvbWxUdEc5TzE5NEgzaDZwNXN5ZVc3Y0Y2WjVQaTdDSFowOHdWdlk3MS9wZTEvbGQxUGxGOXYxUGJvek5TKzcxTUx4SFdXb0M4emRTUjhSSjFkQTU5eXpkazJweFRZWno0SS9FQ1ZCWU84RUUrRkVNVStrSTFEdHJoTUFZbXdqU1lBWE9oQ1o2TlhkcDR4WWpSbzhmWHpadmZiOERNT1NYZEd5WVhubGRyVmMrSmlhRGlYMDZvY0VEM3dzTHVBNFM2bk41bGJzUHc1MXd3OU5xcnI3NWs2dUNCUDc2K3N2eXE2Uzd2eUl1cDNQK3NpL0d2eTRSeGVkbmpycDgrYnR6MDY0V3BYU3oyMHA0OXUzYVpDdEYzZDFkRmQ3KzBtd20wYURScXZJVFdqUlA1Sm1yc1pzR09oeG1QUkZObjQ4VlUvRzlGL2s1OGxESHVnaTdzcTllSzArZXM5Tm1YUG1lZUs5KzZKdi9tdWVJOS9ycm9XKy9QNUNlOFZ0YTdkOWtkakh4VDBhdWlWeUVMSmZxV0kzNWIwYXRYQlIzSmFGczJ1MEVYdGNkdDIxRFd1N3k4a1BUcTNic1hlWVk5VEl4bjlCc1crdzRXRWxZaEtjT3J4QnNWRmIzZXd3dXlHZ01YczdmZGdJUnNMWS8yYWF2RjBNcXlzdDQwbEk2VVVEQ3dseVg3UysreTNqMHg4SjFQTjV1ckgrSWNIRWRGRUk0WkNnNlpBb3ZYa2U5YW1XMWpoajdiRnJtL3ZMb0NDUmJBM0RUMlhYNE9IOC9jd3ZWYkVnK21lYnZQbVRXRHlNV1pVSHF0NG5ndTc3QndZVW8xNlJhek5OMmdCMFJpM3VJN3V3RXJWZmRqeFlwSU5MWHJ6U3dZSzFuMS92OXAyVExDNWwrVXNhUGsrYjZTWnNSUVNnNjFsN2hyTEN0VjJtT0ZMVDZ1c0t5cy8vT2kvdHRpL3V0Q1pxU0hrZnhDUEJ0TFdBd2xNWGR1cmpPc0s2dnk3TmtPNzBvbktWcEZxWVlGWkZQZVZQblFVQ3JybFpuMG5xaVVIV2ZCNHRubUxEaXh2b01vSTNYSFQ0bVBMOTV4OCtQcTVCN3B5UC9IM3J2QVJWVnRBZVA3bkprQlp1YndjRjdBTURNY2hnRUdSQndRRmMxTUVCQVVFUUVSRlI4OEJrRjVCZmlNRE5GSWpjeThoa2hHYUdwcTVGdmora0RGRjVHWnFabVptWnI1Q28zVXpNand2L1krQnhqUXV0MzcrOTN2ZnQvdmI2ZTkxOXA3cjczMzJtdXR2ZFkrZXdaSDlCYWFnS0lIR2NHK0IvWVpPQ3dwSWlKK1dIeDRuL0lrRDZPOVJJS1NISWFWaHp1V2F6VGhLamQ1dVlQQkhuR3k3SG5iQVhQY3M5ZG5BUTYzdS9YREJ6eElHUFFDQ1h0NkFmdUJBMm44K2JMS3NZTmhaY2ZiZk8rMmo1MkJ3QnJUdSt1dDhkK080N0pLcWJDR1YyWnl1ekdRN2gzbzVZbWYzb0Y5OGQrNDBVZG9tcVlDeHJ3MHROOFVIMU4zYnJIOGJZRGRBUGR4NmZaaXFlMjdEcXpMK0NFVFh4aG9DcWc3T0g1Q1lXRjlhNVFjWDRYMEgvdTg2NERuOSt3Wm5UQTFhMGZvTktIVTFrNnFzUjB4YmJpbmdySHIxbnFhRTg2Yi9IWENCWUVrTmExN2ttZVA3bDVlckVzUGd5RnNvRWJqNXpmdytSVnZUWnBJSmRTcmU3eGdpTkM2K3ZrOTk5eGI4eE5HdStCdHJTQ1BCcDZSM0VNWjRabEVyU0RQYWVvM09NL0cwT3ZwYndXREJKOEtQaFdHa2VkNzBYaDRxa1cvV3ZXRWR6cDRyUFhXdFRaRGJkYmIvQ3p1S1Q0bjhaS1lKZnZoYVpLdWxQN0l6R0crWjc2M0xiTkx0NnV5cTdKWFBQRjR3M1BiWVRwb0prZkd5S2JMbjVNdmtlK1I3MUVNVlV4UlBGQ09VSDZpR3EyNjZ1anVlTmFwbjFPNXMwck5xTDkzZWVmL21lY1lmalMrOEV4KzRybXVIZiszbjVuUG5tZlBzK2ZaOCt4NTlqeDduajNQbm1mUHMrZlo4K3g1OWp4N25qM1BudjgzSDkyOFo4Ly94Yy9yejU1bno3UG4yZlAvNitlVWEzZlhJdGRQMk1Kbno3UG4yZlBzZWZZOGUvNzNEL2xxa2gvdDEvWmRKVXFNMm42akUvL2JxV0llcDVFMWxjN2pBcVNoUnZLNDBJSkdoQmdxbThldGtJeWF4ZVBXS0tLZHh0YWFwbDdIdjFvcUZNQ1lqTTBiQkJmaGIvYll2RXR3SzFML0VjR3RTZjAvQ1c1RDhFOElEanpTS3B1dmVaeENSc2xQUEU0ak8ra0dIaGVnSU9rclBDNjBvQkVoSituSFBHNkZETkxQZWR3YUxXbW5zVUUrTnRkNVhJcmlwZmQ0M05aT3dRemhjYnYyZW9uRldxU1lUL1U0Z2pNVzlmaTNwUmoxVklJN1lEN1ZMeEZjRHJoTXZaRGdDZ3Q2SlZrdmg2c3M2cDFKMzNjSTdrTG00c2JVV3RDNFd1QUdRcy9KeElmZzNOcDdFUHdJeG0wcytMZXhtSXV4cUdmNHRXeGdBMHorUWV6d3pOVDgzSUxjOUVKMmNHNStYbTUrY21GbWJvNGZHNXlWeGVablRzNG9MR0R6elFYbS9Pbm1ORDliMndoelNyNTVCanNpejV3VFB5dlB6RVlsejhxZFZzaG01VTdPVEdWVGMvTm1rUzRzSHRyVWkvWEVvSzh2RzV1Y2xaZkJSaVRucE9hbVRvWGFvYmtaT1d6RXRMUUNQRkY4Um1ZQm0yVTVUbnB1UGh1U21aS1ZtWnFjeGZJekFrMHVUTW9XNUU3TFR6V3ptTjhaeWZsbWRscE9tam1mTGN3d3M4TWo0OW1vekZSelRvSDVPYmJBYkdiTjJTbm10RFJ6R3B2RjFiSnA1b0xVL013OHZENHlSNXE1TURrenE4Q3ZRd0p4eVRrRmJKdzVQek1kVDVqTUZ1WW5wNW16ay9PbnNybnAzQ1R0cEpQemM2Zmw0ZXJVM095ODVKeE04NStNRTJ1ZVBDMHJPVC9CbkYrQTUrM3JaeksxMDJFeVF0WFJzMkJhWGw1V0pqQ2RucHRUNk1lT3laM0daaWZQWXFjQis0VllVTGlhTGN4bFUvUE55WVZtWHpZdHN5QVBoT2ZMSnVla3NYbjVtZENhQ2lSbWdNa0ZiSjQ1UHp1enNCQ0dTNWxGK0c4VFJTRTBnRVR6MjVCMFBJUHZrNnZNeTg5Tm01WmE2TXRpQzRDK3ZyaFAyd1NaT2V5TWpNelVEQXZPWnNDa21UbXBXZE5BN2gzYzUrWmt6V0tObWQ2Y1NpeklZWVMvNHBiVFlHYk9aR3lDaGZtWnFWaDFIUlBnN3UxalBVY2tZTXlFV1FyTjJkaU84ek5oMXJUY0dUbFp1Y2xwbmFXWHpJa0tMQWVXa3d0VFFUNnRNQThzTU0yTWw0bHBNc3haZVowbENwc2laeFpQamhVQ0E0SjhNakpUTWd2SjVvZ0hsdE56czdKeVoyQ1dlVkg3c2luSkJjQnJiazY3bGJZcHdaaFJXSmpYdjJkUGM0N2ZqTXlwbVhubXRNeGt2OXo4eVQxeHFTZFFUdVR0MlJ2VVM4eWlBRE9HaDNuNkJuemF4am5GVTBSaGl0Tll6Rk55WVUxWU5PYnA1aXpZVkVUY25iY29GbVduVFdwckc0T1ZVMEJzR05ZTklqQkRyOG41eVNDWk5GODJQUjgySE40TUdjbjVrMkhOV01ZZ0s5QW9kR2R6VTJDajVXQ2hKQk1uMFdabmYzOFZtS0hrZ29MYzFNeGtiQjlwdWFuVHNrRWp5ZHhlenN3Q3lSanhpSjFXeThieFh1SzBOK0VvelF3RFpuSjZlQ29kT3lPek1BTlhXNWliTDI5dW1QdTI1cXhNc0ZOdWJqd1c3eVpoQnJLSjhBcDkyZXpjdE14MERNMUVJSG5UWUVFRkdXVER3dEFwMC9EbUxjQ1Z2SlhBQ252Q3dndk00SGRoQkt4clhrcFBaWlhiOERBbHQybDRTUk1tWm1Ua1p2L0ZHdkUybUphZkE4eVl5UUJwdWVCTkNTOVR6S21GYlFiV1ljZGcvR21aWk9QMTUwdzhPU1YzdXRuQzJlZmtGdUl0US9qQm15eXZ3MUw0cG9LTVpGaFZpcm5UemsyMldHZytucjZnRUl3cEUxUUVtNWZiNkg4bEFMemZJc0xZdUJIaDhhT0RZOFBZeURnMkpuWkVRbVJvV0NqckZSd0haUzlmZG5Sa2ZNU0lVZkVzVU1RR1I4ZVBZVWVFczhIUlk5aGhrZEdodm14WVlreHNXRndjT3lLV2pSd2VFeFVaQm5XUjBZT2pSb1ZHUmc5aFE2QmY5QWlJS1pHd0UySFErQkVzbnBBZktqSXNEZzgyUEN4MmNBUVVnME1pb3lMangvaXk0Wkh4MFhqTWNCZzBtSTBKam8yUEhEd3FLamlXalJrVkd6TWlMZ3ltRDRWaG95T2p3Mk5obHJEaFlkSHhmakFyMUxGaENWQmc0eUtDbzZMSVZNR2pnUHRZd3QvZ0VURmpZaU9IUk1TekVTT2lRc09nTWlRTU9Bc09pUXJqcG9KRkRZNEtqaHp1eTRZR0R3OGVFa1o2allCUllna1p6OTNvaURCU0JmTUZ3LytENHlOSFJPTmxEQjRSSFI4TFJWOVlaV3g4ZTlmUmtYRmh2bXh3YkdRY0ZraDQ3QWdZSG9zVGVvd2dnMEMvNkRCdUZDeHF0cE5HZ0FTWFI4V0ZkZkFTR2hZY0JXUEY0YzZXeEg0b0d1V2lmSlNOa2xFV3lrR3pvSlNDWmxHMnlJeW1RUGttcEk3Mk9GUUlNQWVsUVo2UDBnU1ZncTJDZllMOWtQNHAyQzJvUVJzUWl3S1FDZm1qSU1DR28weVVDblM1cUFCU092UmwwV0F5V2g3Sms2RW1FN0FjNUFjdHdUQitGc0I4cUp1TU1xQ3RnSlRNQU0wQXAwT2VCcFMyU0VKU0JKUlRTUHNNb0JzQlk1cGhwSGhZQWNaWUZBWGo0OVZNSS9ObUFUYVo4TU5DeWdXYVdSWXpzZTJjbTFBdndEemJTMzJSTCtDeFpQVjVRTXZDdkZnQ2VJeFVOSlduSFFxbERLakZyZE9BeTRMMlZjVkRmU1paU2RhZjhwTk9wTUdpRUNpblFBdXVUU2F5Nkx4R2JweGNmcVVzbVdVYXRLYVM5YmJKZUFiUkRhNlpSalJsSm1NWEFoOW1vcE5JNEFsTEo1UDB5eUhTZlk3ME54TUtNK2c2aGNnNmplUXN6MUViTFV2cUM0aG1NNEdYTmgxMnJBTzNZenZKaEo0RklJV24yVUVja1dJQndjeGtwUFQyRlNZVGZyRjlwQkZ1OEhxbWtwV25kMXJKazZOT0p1VnB3RlViTmRaVE5wVHhiSm1FNzMrSG4xakFKOE40V1lTSEJOSlMwTDdldmpBV3RwRW54MnNicldNc2JHV0Z3RWQvMUJPZUdlVHhBODY2OXZUak9lNEorQ3l5VHlZVFNXRGJtd1cxNldSdXZEZDZQblVkQldUMWVVUm5uUGJhZW1CckhFT2t3eEtaemlJV3dtbTBzTjFLMjZoeFhTNlJIN1lsdkZQTlpDZWtFYm84M3BwOWliWnl5RHg1WktWYzMxUitGRE5mVGlaajV4RnA0RFVYa2piY0s0WHcwYWJUcnBaV3lQZmc3RDcvaVpyMDlqWDQvaTM3eUNQbE5PaVRDbVZmM3VxeGIrSG05VzJmcCtzS01vbkdaeEE1cFJJLzhEU1p6ZUJYbWtrOFJCYnhCWnpYZWxMMnVFOFd3WXhBNzkxcDV6MTlkSTZILzFTMmx2c2FqelM1M2JzV0VzMmx0dS9rcDYyZ2JmWW4rWHJPd2did1NyaTFGSkw1MnZ4OFB2RUZzNGo5NEQvaHl5SCtML2xQVjhyWlhuSW5xK0w4V0M2ZmM2dmk4R2xrWjNGK0ZYUGJwczIyY1RCbEZ2RUpmMjZqWEFUSzRUWFRNWHJiRHNua3BaeFBQRDMyMDVtOG5Ec2lVand2YWJ5T0xMTENHZTJTN216WnZrUTd5UVJQNDIzaFNSL2RkVGNZdTNnUk00a3hlSTZweEJPYmlXYVRvUTVMYVRMeE0xeGJUMzdNaVYzOHZqZS9nenM4UmtHNzFOcTQrWGNpNjkrTVpLeW15eGhSYldPdzJuYUxuZ0oxbks3YUxNZE16Z0JaZkFUc3NQQy9pczV0bHZubkVicE5lekh0TzZqQXdzZHpldWVzd2N6UHgzbmtIRjcvdm1UZCtYejBiSXM2R2NUcUovTzZick5uenI3eStEakN6WURQVzF5MHpHbTNsbVRVY1VycDZ0ZitDL3BvbDFJeVdUdVdYU2J2ODlQNFBac0tvMmZ6ZXlXNVU4ekhPNXV6RzJNYmozK3VYNFRqYTZkekNxdmxyWkNUVVJxSk5sbWQvTTJUYS95TDhSQkxyQjczYTZOK3VwZno3ZUxsMm1UZnRUZVdHdWRYTGRmZHhsZm4weXEzaG82STFLWkRqR2VUeUlQUEFtMWxzNFdGWVAvRmFhZ0FSdXVJdEJ6WEtZUVhNeCt4cHJYcjB0S2ZjRHJzeVd1OGdPeVVySFllMnZaMloxdjYrMUsxalBUY0tpMGpUbWViN3BERURDTEg3UDlRajIxUkFaOXhjM2pKbUMwNFNDTTVuck5ETGxPQUl0VWloaFQraFUvbUlrQWFXVUZiNU92L2hEZFBobEZ6aWVkNStwdEREb2tYYlJHblEwWVo3VEhqYVg2bGM2OEM0aTg0ZmFYd2EzOTYvRTMrRTYzbXQwdWdBQlh5M2ltVDMwbGNGTGFNN3YrcEZWakd1Z2dVUmloR29IQW9qWWJvR1V0cUlxR09CVzhhQ3kwSlVBcUYybENvOFFLS09MN2RpMmhzTklsSkVVQTNpc1E3Ym94WXlLT2hQSWI0dW5ERWtqSXVEUVA2YUJnTDl3MURpV1NPTUJndGpsREdrckdIUTIwVXdEQ2VEdmNZRERXam9JenhJY1FiY3ZORlF5L3VYU2lTajQ4Y3AvRlF6N2F2c0ROWGtXVEdOczZHUXlrV3hvL2dXNE5oN0VneUh1WWZ6eDlPOE9oMlBzTjVUb09KalBESWVNekJ3RkVVS2VIYVVRQmpnQzZPekI5TTFzeHhHMDNXRUE3dDNGckNDQWQ0Wmo5K3JSd2RsazhDMzRKMWhQbUxncWRqVmNGRUJoR0Vtdzc1RFFZWUE1emo4WWRBSys2TmFhS0lGam5LRU5JZnJ4R3ZOb3FVT2xiRmFXb3dXUTJXS3BaQktPRERJUTFwbDEwc3lUbGVZaTFHNnl5NzBhUzlnNHBiWHpDZkR5YVNHMEZLbkRZR2sxSTgwUlZ1OWVWMUdVdlcwWFhXMGNRU3d3aFZNRmx4WEx1RmhCUHI1Ymh2czA1dWpoRVduSER6WWQxYTh0Sm0xZXhmN0JGdWxMYjJVYnltbjVRTGxub3drUW5tSzY1OTVqOGIyZkkySjVuRWlMYnlaWEs3WSs1MDIyUHVkSjlEYm5TRU9xRy9jSmh3aVBCNXlQc0JkVEo0UG54TzUveFZCcldGV2lWQXhIOEdBMzArdVdQQVk1RFBOTWwvanczZ01wNytud0RoVHlCbGlIcjhtRkJUNUNHZmxXcXJ5TitCay8rMDVhWVM3Vklyc1U5cFJPbXZ0cFExWFYyaW5RZFZyOUFVNVM4MWlhMUUzZTBFdEZxRVRNbFdrdTc0bjhrdTZVdFR3dW80MDBpVHIwV05acld1V0lNR2tHY0U4WXk1Wk5VNGtnN0VqOG5OWWpDaFFxd0wvTVJVY0dUSHdOKy8zN2c4MWFmdmtzWkZKNnBMbk9KTkpjSjZVNGxnWTdVQS80U3Z2QmV3dVArdHJOK0wxSVpMZXNMd2ZwTnRPN2VVQ1BpYVFkZ1VqQkpheWVsUmNmNXlVemRjc0pGTFJpY1haR1RtVEM3TXpmRjNNTm5oU211NWRhdzVMVHMzSjgxZlo5TGdHb2xjK2RTUEJ2M2RUSzY0WFNCMzZtaVB6OHcyOTRnclRNN09ZMk1HQjV0MGpyYitmVXo5VEgzOSsvWU9DdXczRm9wQkZrWFQzRzMvRmM0WS9CdG5vNFJTdVNCNHhHQi9MNU1IVjlMbERNN013eC9haE1hRnNXRngwZjE3OXgwYzFDTWcxTDkzRC8vQlFTSCtIaVozYmtHYXB5NG9qdnZveTFSQzZTMEZUSW1Rb0lTeVIxQXZvVXNvQ24xMCs1WFNBdzlXVHh1dEhLNTQwTGhnMUtOOTQ5ZjJvdmUxQ25ReEZTZk5udk9qRGwxZStPRDg1bHRWNitJMGZZdjBzUzhFdmRUNDZxUjlTK3ZuTzE2YUpId3BmdEQ5NmpzbjZzeEZ1eCtzYmJsU3QrNzJLNStsK0Y3cy92TGdyVjdTTGY3WE54NjlmcUQ4amNtVGR1MnBTTTc3MEhyZjUxUm05NTZ0K1dzM2I2NmFsN0g4bTU1alh4ODM5eXZERzdOdkh0NzUxWVg1a2wvaTFyZzAwVU0rS3BBWGJpaGFkK3JHL2szbmxjTzdoOGxOZy81UnJuVmQzeXBVUDJqdDlVZHIzN0EzM2x4NU9NTnh5NzFkYzk1ZGRON2h2bEcrNEZoc3dEYyt5bFEwNkhTUEgzWVZyWG9qdVZJc1l5NitlakRveTArQ2hiZStiZlE4NTNoZWJsMzJ3NVFkMDA2V1h5OTAxbjd0ZDlMT2Y4Y2UvRnR1MVBzbGxCZ2tJakpwUWFSYU82RktxTGlhcGU2blB2YVB4QjNoZmN6V2g5SEhzeHhYZGlNbXBIVVhPcGxVeFFyM3dJZGZ4NGJuU1c0UCtuMzY3OXU3YnpuVWU3dTlLUjRUdUFxSG00YVpJcXVIVkllVkR1WS9MVXZOei9MTGJ0T1RYMnB1ZHMrOHFabTR0aWYvWVdWQnozWTFZaTBTSllKUitnR0pLZEhLQnZhbFNJUi9wRFhLTk5RVTBWWTIwYVVEK0FsbXpKanh0QW5NK1g4eGNxRkpqdm4xRUdJVDVJY1UySFRaandKc0pZc3Y3bnJqNkp5dmk2ZThzMlBvb3UvNk5BWEczNyt5ZXJYZmF3NmhjVis4N05MelN1ckk1ejYrRSsyOTRGZkpoZmZ1di9oYmo3SGZmLy9SL0UyZmVPN3YvVS9QOG1hMzRBbktkYTl1WGJSeXhvdVZac2N2R3UvUGZmanhBY0drQWZIdTcrdzhzdS9EYjBybkgwN3BOZWJObmJXdlRNOE5iTXl5dVhQZ3dtbC8yNEt2UWxaT2ZmV3JBWXV0bGVWckp6cEpYNjZ0ZjJ0OGcvRWI3N2o0aGg3akJTZUc5eWlzTmgyN1o1ejFqMm1hMGRRdkdmZHkzcG9zSHRuNlhNL1BQcmtTM2VnZWV1WHE0MXUrcjMwK2Nibmtnd2NyRjMzNXFQZFhXOG9sOVY1Zkx2dnhsRmZwMU5Gdk1DblhmUzZPV2xLN3F0dkxNemY3anZxaHNHWjV5STdhV1ZkdmhONnYydWRVVXhBOE4rVmEwb2tWMnBrWEoyYVlTcXdvOEdJM0xielk0WnNMSDg2ZUczUHpNZkZpaHkybEpnVXZOdWUvNGl1TUprOXUwN3RhdHFlWjJiak15ZVNqU2xBcy9vS0VQM0ZtZlUxQi92NEJKbmdDT1dmV1VUUVYvbGY0NDlzRmY5TCtMNzNSZ2tXMWhrUFdiMVlXejFJKzhwejBLSCtCYjh2OTk1Y3ZLQS8vK1AxUEp5N3MyYitYbis2dG1TMUZHMXhMcUoyelAxWHZGVFNHLzNoa3hhKy9DN1YzWDVVODF1ZXN1anY1K1NOZVRqOFlYWDhSTGd0T2JmcCt0N0xzdHJ5eTk4V2d2UGpjNTVvK0NoT2JJZy9XdldsYXdYdzYvWk5mQzk1V3pmamk5VDNManRtOHl0N1dyZS85ODR2MWx3clJzRVduTHJ6MTQ5bVpyVyswZkRScHdmUDcvdW02S1dYNS9pUHp0eTdaZEhaejk5UHh2L2MrLzltTFM2L3BIamU5T1BYVFYyeW1GMTV5R0JseDVtZlVFQkgxdm5Ydkg4YlkvbEcwc3VIYTJPOWYvZVZzcGIzcjRuVlg1enNlUE52NG5wWTY5a2ZFQi9LbHZaYTdSUVE4ckRlc1J0dnE0aHJuNVhpUG0vdFRVRTd4dlQxTmN1bVBiZDZvR0NSU3hMa2JEK3h1MmdOemxBM1Z2bE1GRnU3cTA3TXA4eitmMU8vVzQ4bjFTYWNhOW56NDhTRjVoU2tXTjNjVGdpOWFNOFFVNW05cmtuS2hSVGg4UkV5c2Y2QXBBQmRGOHU0QnZVd20vNER1cVVHbXdKVGU1dVFlZ2YxU0Fuc0VCdlFLNmhIVXEwOUFqN1NnM3Y3cHlRRUJ2UVBUVXp1NXdJaWN0QjlpUktkTE5qcjI3YXZmbWIyK2NScjk5cCs3d0tkNnFOeThBdUlGd1Z6QWpzR0t3WUN4L1U3RVdROVQzeDZtSU9JQ2t5MWM0Q2dUSEZZc1hHRFl2NXlnelF2K3hSU0ZKZ1l6THFlb3gwTGFoTHBzWjBFSlRTRXJsZXMzbyt0akd0eEhyQjQ1ODZ2YkQvLzRiTitYQjM3K3pTWGhkbHhENWhEUmw0Yy9iYnJ5YU1XNHR5ZDJDekllRUlYSkwxWE9XckEzL2NOdjl2eElqM0wvK0huM21jSFpteDcrak1ZdVc3RkljMXo4OXNsS1RhaHB3MXJWc2QxRHh2M1NQZkQxOTk1TTdIc29Xck5aMytqdzJia1NodzI5bXpmcEc5NDBySnY3K25kZW1xdnAyb1VEL1I2UEZndy9tRE92T3VESEhkdDd4aVNNdDlxcUxHdlFwbjVjd0h4L2RyYW52VTk1MkFjQjh3YVdEeHdkT2NOOVlldFdoMk9MZnJCUmpqelNmYXovdUg1VHl0ZXZXVEMxM0pqNzgrRk50L2FGT1I1UGlaNjdNMTQ5WkhIRjJ1d0RPVjVISDNxNU50eG1OMGkzL254Q1dybnN5cFIzTStldDZ2TlZOdHY2NnBlUEQ5VXU3eU51ZlY1eHNFS3g0VURwOFo5S0RuNDR5akRZYVdmRXF6TkxULzUyNnQwWG5MOVdMTHoreG5zWmhnVVp6MjA0Vmh6dGVkM0dMU3IxajVYL1VBN3Z0VE5oMG9pdmh2NHphUEZqdjIrM1Rsd3plT29uTXovZnVtZnFtL095WHN2ZmVHdnQ3Kzk5cXo3YjcxSGFKOWtEYlg0b21yZjFvNzN2NzM3cDgvS0VOYk1UUDVVTlNUbmw5dE9qQVlmOXBiLzJISmkydG0vdXBKZ1hQZzVkTXFKYStucmRuTVFIeHlhL2x2eE5WY1hoaHJKUGM0ZGNQdUMzN1BiV0IxdE0yVTFUSXRmZkxKL2VzTS9tY090enYyd3E2R3UxTGVGejV6TjdmbG5XK0pybWJ2RVVhc1F1bDdrRjIwK1AwNy9RUDlIcHV3VjNKaCtPL0tEbkJZL1huNTl3c2lrdzlDM3QzcmVZNlNVRGZ6cDhyc2NxSWIwNDRyZWZ2cVUvRjZ5R0lHQU5RZUFuTGdoSWtsVVpnY1QzYTdxZVlDY1NkeW9STC9WYytJKzd2bW1VczBvQTF1anZiSExzVkNsdU4xWXd3KzZjM3pSMCtNM1kzRnh3bm1DNm1lbVpxY21GWmpaNFdtRkdibjVtNFN6czNFMTlUWUdtWHY0QnZYdVo4RWsxd0o4VWU1bHc4WDkzaFA1WC92MjlWVmxidi9zbVlxbFAwVlEvNTh2N3JueC9aTVZJOTVpUFRuenJGRzJ3di9QRkIxOUVmVlJvWXJ2OWFQMWwvTnZLeUdVdUlVczNWU1NaUE0ranFUZGUydGUwME5yK1Z6dGhSZlBDNDY2ZjlqSzg5dTdkKzVNMXZvOWV1cjVBZSt0NjlQdXJEcnJITmI3UkV2YTUrT1NFelNlM2hBaFgvN1l1NngrVHZ6SmVDSS9iVW5yeUIyTzRuMWRONlloUnNjeFZnZS92VTVZc01lVzhkbStNNmQyV09XZVhiNy9odG56T3cxUHllellmeDJYSDdnaGI4bDRFR2pva3ZadVhkL3I2NVZkUFc4MGR1dnEzK1I5MEc2SVFsN3czLy9hb21hMVVwVGJHNWxYa1lBcS8vZkZGOS9BOWgzdkV2N2RaTnpQWWY4YnhkNzU3YnQ0L1ZpWFRPN1cyV3gvOStzNDI2b1IrV1B6ajMwU0g2bGxwbTMvL0VDVHlnY20rM2VPSVRBSUFGdjc4cWFkTDdMNjE5a0loMkYrcHljRkt6TWNFSllWcmtHbHVCZWViNXk0eHpYMmpXR0ZYVXpKcFVJTFg4aDg4NUk5OExrdmkzaDV6ZGMycTFEWEovM1h6TEhHWTlaRnExZERxdFI5RkZTVGV0NWI3bVUweFhGQ0lORUVjcWg1Y0hWejZ3dDgvRjdjMzU4T00ySldUZ0JCdkVSQWlUT0dtVUl1QUVQVHZuSW54T2daem8vN044ekRJMm1INW9rTkpndEErMzk3YzhkR01iMDdNR2ptYzJ1cFgrT0s0YkViKzRZbTZsOTZzOVRzalcxMlduVkk3bXY0MG1wWEhyUGgyOXFBcm8vZHNUcXpVWE5aU3BUVjdadDU5L1dUVGM5U2RLM1Z2U2tRTmIwUmNhWTVUZmp2aXc2VlhyNzh4NWN2aWc5ZVczYlhxK2FyZzVscytCbjNlN3c4ZVhaMjV3cy8yVitzcmVYdWRvdDlkUEZXUy8zYnRxbjRySi9jNE10THVWa3JTQzZxSzE5a1hybGlyQTM0NzdqOTB1di96M2ZPbERiZnlubi84cWtUK1hiMGtlWEh6VjdXT1AwYS8vc3FSM3QwbnZMLy94NzB2UzBOZU9oT1g3M2JIMUxobnBqbHBIT1VvVWRpZE9xK28rR1hBUDlNVHQvZm9lZjIzVjB1UGoweTQ4Vzdlc3F5YWZsRm5Ic3phdjlGcGRvcjNUNnZmOFE2MG1xRk8rZVI1WGJaclNiUDBtTytlendkdi8rRzNwcGQzZnI5bWZXSHYydWdqTDdyTFBLZExCOFNXdlRnMmZMQmk3L2J0VzRaUGJuZ3Y1SEh4TExmaUtxVXAvVWFJYklLNm9VcnZkbkx3emU0Mzk5eVBPTzU3NWx4QWNaU25UNFJoNHRoYkNUK3R1N2ppM2NiK3Vmdm1laFZhZGJzejNXMy9PeVVIdmVKM2JaM3kvTUpWMDVOMzVLeVNyOXUvY1VpekxQZVBSUUZaMjFxL0c5bFE1djVKK3I1M3RhL0owdWpuZTJ3ZTgyYnRWYmNmZG01cFROMHhNMTUwSnRndnBtYlpsclV6UDl4ZVhUNU4vZlhTMStUVDlEMEQxdHZrVkk4cjg5aGYvZFA4UnJlelArcEdmRko1Si9MU3I1UTVkNkgwNVliTWhtczV0ejVZZnNMZis3SGRrWEZKNTRhN3JEclgwclBxQmI5UnFxbWZ5Ti8vdzFSaVBkdFVJa3BwQ3dWMlMwNXhselJkWHdQbUx2aXZ1T0lBazRuYmtONS9aME4ydkJINFE5Z0lDakQxN3NjRmpUNms2Ry9DeGYvNUcwc0ovV1Rzb0hIc29DRjJ3Sjc3c0xrbDMwSGo5OUc1bkkwbERzTURkOS9kbGVqMlhvaUx6OVNiWTJNMjFsb0ZxWVdSdTE4NXhPaSs3VHYxcU95Y3REbW9mb1hWbG9aK1gxSUsvNURUQzIxbnBiMDJaOWtrUTlibXFzaVZOek1tblBydW5iaHRFdDlEbTcvZTBIM1RiUEhtcjhySE5FNVNpMjZtVDc4UkVPc3A2M245UTV1WXo3ZUhmanorM0dFL3diUVBNKzU5bW4ydmY5SXExZjN3M1plQzBtcHkwbnJQWEZlZGF0L2o5S0IvUFB6K29yWHRsMG16MWtaNlg3ZXRxNWJQcUZ2Mi9FKy9mOTk5cklQcjhBVGo2dG41bDJUOVA0NmNjTzcyN2NGdnpmdjZwVzB2bGJwOFBYQnIyZmdiQzBmTVY5OWQxWFBNMVNYUDlkalVLL0hJeHdOYkEwNXZGenkvZGR2bXBVRnpUcjFiN1B0TGRNSmJicjA5RHZYTFNYc2xidmRLKzQrYzNlZC9lbiszb1BTTlh5YzJuNHpkWDdic3RiMEgzQW85SmpvWmR4MzNNZ1o1VlBRYjJ1ZnpvcTFMTjJuY1A5aVEzcFRzT3VXeU1mTGRpUXV1ZUl3LzdUWnNZT3pobmFOZk1BaWF2NWc5cnVlWDd0L25qYmNmR1Q1aiswTjBlVzhOWFRMeG13UEs3ZnRjem93YWRyM2ZLdnViN3BGN25XcERpOEt1SGp5VVAvdFMvblhEZC92RFZ4ejVxVjR6K3B0NWJ6UU5qelI5OE9IaTc1ckd2YmY1MGJkYjBxOGNYRDczcGR0bmJ3KzdIdW45Z2R5NDdvT1hKeGRmVzVReWMrSzJudk8vR3IweWFmOE1vL0huMjltSGpHLzZ2am1vNzRpRGwxOE5YWGhZSEhYa3pOckJQUXZmL2pYbjRVdzIwVmMrZnRMYmxRTkg5SnAvZnNzQ3g0dFYwZmZMdCt3TnI4NnFPSFhwN0lLeTl0aDVHMkxuemFlRXY0N2crZFQzRXVmMkRncGF5T2drS0k1ODRqTVlCWGVPcTA4RVpjczNudndlL1duL0pZUC9xUkJGWDc3MXdUSC9MOXdYQnByR2NzRU4zNkNPcUI1ZVBhdzA4dCs2OUlGOUM3c1dObXY3UzhsRVU2K0pBUUVrekUyd0NIT3hwaGhUdEVXWUMvbDdZZTR2eGk4MHpYMFBNODhLNXk0M3pWMW1tdnRXdTVEOEJLYTU4MHd2dEUxSFU2cGUvK28xS3kwM3RRQldscG1kbkQ4ck5hL0FMNk13MnpTb2ZRRGFGS2dMWUxVb0N1R3ZoZUVyOUlua3d6WHV3OWhaVUNyZ1B5WTJ0MzlZN3NkcW4vWWlOdmx1NmRxS1MvR3oxSDZuenhWTzFyOGpMZTkyT1hYcGlwRHlsMC9OWXBZY05FLzA4eDM0OEZEK0Y5bnpXdXRldUNGcGZHNy9rQTN2Mzh2OEpuVy92dmZhNWVQTjg1ZTgvSHA0ektoenpOS2lVK3BobW5zRFFsNlBQYm5sajZuZkQ3VDI4MzduMnZNdWE4L3MxTTVZMXUvS3piUlBRcCtmT2R2OW52emxkVXNLNTcxeC8xTlBPdHluZnBIRG5qVWJSTXc3dHpOYU12emVydlo1d1dkcVltU3Fxemd6WjJ4RitkVjU5dys4ZVMrOCs4Vkh6NTNjMS91bkhJOU5QMnoydW4zeTIzdDJtMWNZbDFjTXQzdGVldGRtNFZuWFF3Rk9WNXFQOURneHJtcEhaRC9KVVVuOTBZODIvYkR0NjIrVUMwYUdKUVlGdk9pbGZtWHJmYStIRjMzN3M1a1YyOFlzek1qSi9lRGp3a09EUkZicktCL2p3SklYNU1QVHBRZTJELy9sOHB1dmFIS1ZMNGQ5TVAySFFUN205dytOajAwcFBhUk43Yk84OUx2ejl4N2VWYTJxOUxyODJkcmxKKytNVHczK2ZwejF5dGNHV3MydytzSnE2elJYUlYxeThzN21DMGRkaEhYZkJSK3pNOTY1YU83WnRQekJxcVR5Yytqc3F2QjlZKzR0WHlzZUZ1R3dvdGoxSlBJK3N2V2R0UytFemREMVBucHE5ZXIzWnMvV3QwUzg3ZnJoNzBQY2kzK3BlcmgvNnNmRGxsLzVjZHBNZGRPdHZpdG1PUTE3ZkhhN2U4YTBhNXRiSHIzK283VDRWdVp6bXgrWmJndWpGbi8zM2JUczFMZWUvK0xkaE9nUis0dEg2MWZON0JiZ052dW5ZTW5XRjM1ZmYzek4rSU9yRnJ3eitzV0U2SWl3QXlHZnZETjluS1E0WXVvZnM5NDd1Qzg3ZThvbnNRVnkyOWt4bi9tWENMZVlTb1ExTkVXWjVyNzl2dzVjVDc4TzdQaHNwSHJ1WWV4OGVDTVdDL3daeXc5ZWdJdU9rdFRmem1UWnFqUzVkM1FVK21QWHR1U1Vxczd6ZXBGMjBEOStid3o3UTFsWnVHeWpLYzJpQytPZllJcXY5aWsyUHZVN2ZQRlBmaTl5bFdleDRVOTNkdnlzdk56SitjbDVHYlBZTHJGWldFS2hVZlZlODlEa0F3ZVhlcjc0V2RPYnpnbVZsY2U2VFRseDRjT3ZCa1pFN0E5OG9EdlFwLytISHlmMnpUNGt2UEZ5OTlrRGJmeExLOFZOYWRzUFhuSDJyUm92NlgzbXpSVzZaWm1mbWo0OTZCUCt3WVRSWDMxeGErbUJYWDNHdjN1dHhaU1ZOTmpMOFdYUmtNYlZyM3hXS1QyOTJtVzM3ck9ldCs1N2Y1L3ArdkhrOFdmT0QzMVl0MnZENVlWeHh6VDdQOG9PKzhWbjUxYlU2bWovbWV4R3hzankvV01MWjF6TVNacGo3UmJ6d2orZXU5NHZmQU82blZObkUxWTRjZlA4Z3k1WHphL0YvV0p6N3RVcnRnNnoyWVpndXkxSFloZmRhcHgyVTdjNDk3Mnd3TVhUeDRoY0g5QnV2NXp3bnZ4NDB1TnU3dDJtL2Z4R1h2RHVSTk9QQjdJMnpYUzRIaDhWdFBpT01WM3U4V2EvVDlDcUV0b0l4eE5EaDQ2cy9FdG9KVlIxSTZhNStILzJJdjcwRDlvc2JISzh5Y25TSktVZEh4aFNNSGw3aThqZm5sd2M0d09udjMrL1huM0hQbUdSVmVvN3l3K2ZtbDhRZS9uZTE4TXYzMnBjNzk1amNKZFhKbXdydXJpZDV1VDh0YW16ZjM0Z3lUdmRGTEhxcTZNTDZSQ1hwVnRYK3cwOWZtNm4vK080Ky9tamEyZm9EcWFOekVMRHovUnlPR3Ura0IzYzNicTVxYXpXTit2eW5EMHZQemVzZDlud2lTc3lmVmNkV3BEb1A2ZjFvZGY4b0VGbGYxeDR2YVM0OVBNVko3M3ZHWS9NT1AvYjlsWHU5YTkrMWl2c2k0Z3ArM1l1Nk52dzhweXRnVzRwZ1ptcGZSVjUwc0hPVE5YQXFPc0xYenpVUTVRdFBCbTM5VUN2Y1hYcFNXVkRmTDFnQ3ZOUExvdXpILzk4citLOTlaZktxM1ZMcTQvblY2MDhWSVBXdXBkdWZmM0xIV08rb3F1L0dwOTVlMzNHeGVtUFo2M1ZIekhMWjRWdDBVL0tVa3hkZWJYU2VlVlhqeHRPKzN4djNlZm5FYjdEcnZkZTZCRTF5NlYvM2RjSDA0SlBENnk0Wk9EL3FwVkJpRzRWNEw4eGZSbEtaNkh1SzNnRTZCd2RnaWg2TUQwQ0NlZ1lPZ2J3a2ZSSXdHUHBXTURqNkhqQVI5R3JBRjlOcndiOGZYb2Q0Qi9RL3dSOHR3RC91SGU0WUFpaUJSR0NvVWdnR0NZWURuaTBZQVRVeHdoaUFCOHBtQUg0VE1FcjBGb3NtQXMxSllJU3FKa25LSVdhMXdTdkExNG1XQUY0cGFBUzhIY0VNSXZnZmNFcHdFOExUZ04rUnZBbDRHY0Yzd0orVWZBRDROY0V0d0cvSTJnQi9IZkJINEMzQ29NUkpRd1JoaUNCY0xBd0FmRFJ3a1RBeHdqSElGbzRWamdXYXNZSngwUE5CR0VHNEpuQ0hNQnpoYm1BNXduekFTOFF3U0ZQUkl1c2tFQmtMYklCWEN5U0FTNFh5UUZYaUZTQU8xcHRSWlRWTnF0SFNHRDFoN1VFMGRaU216R0lzaGxyTXhFSmJDYlpmQXI0Y1p2amdIOW1jd0x3ejIxT0l0cm1DeHZnM09haVdJUmdtNHBoZkxHMVdBVzRvM2cxb3NYdml3OUNUYjI0SG1vT2lZOENma3g4R2ZBcjRpYkFiMHNtSVVxU0xNbEVBdnhyOG9DL0pIa1o4RG1TVndFdmxieUdhTWtDU1RuZ3l5WHZRUDFLQ1doSDhvSGtROEJySk1DdFpKdGtCK0E3SlI4RFhpdlpCM2lkZERTaXBJblNjVWdnVFpJdUJ2eE42UkpFUzkrUzFnRCtrWFFYMUgvTUNCSEZpQmhiSkdEc0dIdkFIUmdIUkRQZG1GR0FKekFUQUovSXBFSnJHbE1BTllWTUllRFRtR21BVDJkbVFldHM1bjNBMXpCMVVMK2ZPUUExQjVsalVOUEFORUROSnd5c2tibkMvQWg0RS9NVDRNM01YY0R2TVE4QS81VjVDUGh2ekcrQXR6QXQwUGQzV3pHaWJDVzJFaVN3bGRxN0k4cmVZRzlBQW5zUCt3MkFiN1NIOWRyWE9FUWp5bUdFUXhJU09JeDNHQS80QkllSllPOUNmZ2ZReUFCMit3SFk3WHA2UFJMUkcraU5ZRGx2ZyszUnhOSm9zTEd2SVQ4dnVNRGJHQTI2cmdkZEg3WTZoa1JXRFZiQXVWV2oxUW5BdjdBNkRmbFpxMHVRWDdPNkNma3RxNStndGRtcUdmQ2ZyWDRHL0s3VmZjQi9zZm9WOElkV3Z5RVIyQWxZSUdjUFJOZEMwUEpWd0g4UTMwQWk4VTN4VGRET2Vza0dKSkpzbEFCdm9LTXhrSStWamtVaTZUaWlyMDNTN1pEdmtPNkFtcDNTbllEdkFuMkorQlZLVUFOOUZvbVM4NU5URUpzNkt6OEx6Y3d3cCtTajBxemt3aHkwdERBak9STnRRUm9rREErT1paRnhlTlFZRmdYR1JZZXlhTkNvMkZEOGhSN0VmOGREaE94NW5FSlcrTGNuQ0U0amE5U054L0czUW1ROExpUy9yaVFrM3lONURGUVNwR2d2VVVnS1pTcDJ4SEFXZjFPRXRETkl5V08yU0dYUnp3NDVJcWVwNW56Z2xlUWJTVjVQOHZNa3Y0di91cGlTa055SjVKNGtEeVI1Q01salNKNUE4Z3FTMTVEOFFQYlU3S25VVVpLZklQbFprbDhrK1RXUzN5SDVBNUszNHB5MkluSlZBTWNxekIxeVJtcmtBakxVL2grbzUvUktFd24vNXlVS05JV1FLOUpCWXBFYjBpTjNaRUFleUJQL1VnZnlSajZvTy9KRlBaQWY2a24rQ0N3QTlVS0JxRGZxZy9xaUlOUVA5VWZQb1FFd2dnMW8zd1kwTFFHTk1xQTV1eitwbzdDTjRCL3NRbFovQzlwaiszb0tsSUZOdlVweHYxdzVscHBDemFZV1VaWFVSbW8zMVVpZHAyNVJMVFQrSlVjZnVqODlsQjVMVDZGcjZLc0NqU0Flb3NsaHdWMGhLNHdXRmduTGhDdUZOY0tUd2tzaU95dWg5UVRySE9zNTFvOXNXSnRsTnZWU2xkUlQya2NhTGsyUXBrdW5TMHVsRzZXN3BSY1psb2xtSmpBNXpFcW1odG5MSEdjdWdIOTZaTXZZYW14OWJRZllSdGttMldiWkZ0bVcyYTYwcmJIZGEzdmM5b0p0ayswak84Wk9ZK2RyTjhBdXlpN0pMc3V1eUs3TWJxVmRqZDFldStOMkYreWE3QjdaTS9ZYWUxLzdBZlpSOWtuMldmWkY5bVgySysxcjdQZmFIN2UvWU45ay93aWNxOGJCMTJHQVE1UkRra09XUTVGRG1jTktoeHFIdlE3SEhTNDRORGs4NnNaMDB5QXgrZDRWL2owVDBLcURVK2N5dTVlVWhhQUJGV2phazlPNklaeUhFM2c0bTRjVkZyM0JXZ3pORm1Wbzk1VlpsRUZMdnA2ZHkvNDNrSmkzTERKN3I1bWR5NmwxbmN0cFhlZ3pVT2R5OGRuTzVaS1d6dVg1Q2lRV1dwVGZBbWtJVUFjL3E4b1FoTmVPOHRwSm5mdC9NQmFKYVl2Mmo3WWhNV1ZSM3FJbjlGWmdjMnJZSHo2d0IvcHprdGlTeE1QcFBGekN3NDA4UE16RGkyUUVFZGl1RThKZnFqZng5VGM0dUZYSVE1YUhBM2lZK1BSK1c5TjRXTXpEbFR5czVlR1pQK2wzaVlldEhOeW00U0cvbm0xL010KzJkQjdPNStGcUhoN2c0WitzYjFzVEI3ZExlR2prSVc5NTI5Tkl2eTUydWIyUWg4dDR1SU9IWjU1S2ZZMkRPNng0eU5mdkNIOGE5WTVFSHM3a1lRVVBhNTlLM2NqRFd4emN5YTlqcDAvbi9iVXpwRXY1VXVjZHN5ZU5sQVhnQmZGdjRuQjEvT3IyOERheXA2WHpHSHVOVDl1eiszZ0wyN2VPaDNjNVdEZUlVRHVCWHg2SXdsRTBTa0FUNE9VNkIwMUhjMUFwV296S1VSVmFoemFoWGFnT0hVVW40SXgvRVYxRGQvamVZM2xZd3NOcUh0N240SDRaRDNrNzJGL0V3L01jUE1EYnp3SGVEZzgwYy9BZ3IrZURmUDFCZnJ6NktCN3lxNmh2NGVDaEdCN3k5WWQ0T3oyY3dNTXRQSHpFd1NORHlhcjFhQ2lLUldQSm53cmtvOW1vQkMxQ1MxRWxXbzAyb20xb042cEhqZWdVT28rdW9Gdm9MbXFoYUVwQ3lTZzFwYWQ4cUFDcVB4VkNEYVZpK1JGNURvN3dXam1hdzhGamFoN3lFampHNzl5R0xCN3lISCtpNHVFQ0h2SVcxQmpDdzcwODVGZjJLZTg1UHVVbGRyeVNnNS94a3Z1TWw5Z0pudTRFTDZuUCtaMy9PZC92WkFvUHozTHdDMzRkWHh6bjRLbWhQS3puNEduZXc1em1QY1laZnNlZTRUM1hsNTZkcmZITHdNNFdmWEUrS1RQRU12MmVZblVjRmErdml6eVgzL0hTKys0aUR4OXc4RklvRC9rOWNhbUdoL3hxTC9QY1grWlhlWG5May92cE1pK3BLOUU4TENZMFVtZzN3QWttRUU0cG9YQ0dqVWRKS0EzeFdydFN6a05lYXQvejN1SDdDeHk4eXZ2M3F6eS9QL0R6LzdDZWc5ZDRxVjNiemNIcjZHbDc5bm9RRDNtZDNlQzl5STF5UXYwY0trTHpVUmxhaGxhaU5hZ0c3VUI3MFdGMEhKMUJGOUJWMUlUdW8wZVVFRTQ2Q2pqckdPQzBFMGdOb0VLcEtDcWVTcUxTcUN5cWtDcWk1bE5sMURKcUpiV0dxcUYyVUh1cHc5Ung2Z3gxZ2JwS05WSDNxVWUwa0dab0JhMmhEYlF2SFVnUG9FTnBmZ2ZlNEZkeWt5L2Y1Q1YrNnd3SGY5ekV3YVpGSEx6TmEvQU9yN0dmZUkvZXpQQ1E5MGMvbitQZ1hUNUMzT1B0N1I1dmYvZDVILzhMTDZOZmVFL3lZREVIZitYSGY4aWZVQi95KytZMy9velN3c3UwNVNFSGY1L0NRMTV6ajNoTlB1TFg4UWZ2c1ZvTlBEekJ3Y2N6ZVpzMjhKRGJMeFRGOFVmUk9oNDJjRkRBMXdzOWVjaXRreEp4OHFHc0J2SndHd2V0dVVpTi8vMG9EbkwrZ0JMUDRTSG5SeWhKRWc4NXowWkpPWTlKTWZ4NERCZTVLVnN1QWxOMmZqems1N2ZuNngxTW5mWXQ1WEMyMDc2bDVBODdseFdTTG1XOXhka0lJcW9pcU5QWmpsTHM2bHhXM25saUoxS09mSDlIbmtmSHBNNTlIRXVlN09PMGdJZDFISFRXRVpvbnoxeVVjd2dQZWMwNWIrTGhWUTZxMVR5TWVjcGVwTlI4THpYZlM4MzNjbEYzbG9OTFNHZWVYYktlTnBxRzE2Wld6OE1pSHA3cnJBV2RuMFVaSGwzc3YxbU82VktPdHRBU0xpZDBLWS90VXA3VXBaemVwWnpWcFp6ZnBUeXpTM2wybDNKUmwvS2NMdVhpTHVXU0x1WFNMdVd5THVXbFhjb1ZYY3BWWGNyVlhjcnJ1cFJydXBTM2RTblhkaW52N2xJKzBLVjh0RXY1ZUpmeXFTN2xzMTNLRjdxVXIzUXAzK2hTdnRPbDNOeWxmTGRMK1g2WDhvTXU1WWRkeWkxZHlvKzZsRnM3bDExUmx6TGRwU3pzVXJicVVtYTZsR1ZkeXAzZlp5bFhYZWV5Kzh6T1pROWhsL0tOem1XdmhDN2wyczVsbjlMT1pkOHU4L3NXZHk3N0dicVV1L1R2T2FCejJYUytjemtndjNNNVVOalorL1ErMTduY0o3Qkx1Ynh6L3o0UE81ZjdZY2pBaVppbXd1bEhpRWFPNUVZZThUZnY4d1R6a0pUY2lUUGtIdHhPbUNuTVJOMkVMd3J6a1l6Y2VpdEVZcEVkY2haMUU4bVFLN252ZGlQM3pnWnlzOXlEM0IwSGtCdmhJSEx6RzB6dWZNT1pOY3dHTklUWnd0U2g0ZVJ1TjRuYzBvNG45N01UeUcwc3ZvUFZDT1FDUFhEVFE5QWJPUWo2Q2dZalowR1lJQXg1Q3FJRjBjaExFQ2VZZ1l5QzF3U0wwSEJCcTlBV2pSVHFoRHFVTEJ3c2pFRXB3bmhoQXNvanQvVUY1SjYrVU9RbzBsRUNFU3RpS2FuTkp6YU5GQ09aSW5tUnNwT1VTRjZsVkpJNnFZQlNTNytSTmxHVG1CN01LQ29mMzFKVDd6Q3ZNZTlUSHpLdHpHT3F3WmF5RlZPTjlqcDdkK3EwUTVERFVPcHJmR2RNTmFGc01QUXNpNVJQSUNXZUNYQU9KSWpDNGtWODJ4Skk1UmEwS3lHdGhyUWUwaVpJOEZZcjNnM3dBS1NqUER3TzZSUVBjVG9IQ2M2ZTRxc0FiL0UwY0tJU041TTJTdnlBcDNsRTZFaVMwSENLc09IcUFlZWdIU1NGUlZKRFlpRjVRdklGK2dDQVFaQUdXdkM3b3lOSlFqbCtKWEFPbDhSQU9ZRlBTUVJTZkdxcmZ6cWV3dU1aRm0wNW5lZ3MrM1drUW90eFp2UEpjdnhpSGkvdDBxK2RqcnB0YzlibWtzMDFtMmFiQjJJa3RoSTdpRlZpalZnUHVCR1NuemhRM0Y4OENHQTRnVkVBWXdFbWlpZUkweUJORWVkQlBVNFRvRzQ2d0NKb3gyM1RBUmFKUzJ5YXhRc2dMZVpoaGJoS3ZBYkczU1RlUWViWURYVUhZTTRGVUkvblBTbytMajRGK0ZIeE9UTC9VZkZGUW50VmZFZDgzK1lTSHRQbXJMaFZJaFR2d0h4TEpERFBLWW1EUkNYUlNQU1FqT0pCT0dFZUpYNHdEaDRMOHdRSmFQa2tDU1FKZUNZcGxQQmNKQmtxUmxDdndXVkpETXlaS0w0b1NaQWtRVjBLNFJPUGtTSGVJY21RNUFDdmhIZUpIeVRvZzljRXNGQ3Nrc3h1NThFUDFvUG5yb0N4OExvQlNvckZWWGdNOFZISklyTGV4VkNQWllQbkF2N0ptcUdPOEFEelNtSWtTMkFkNTZEZGdlQTRsVXRXU2xaTDFrczJBZHdCRVBPTStUdkY4M2dZNUlMVENlQUpvSGlOWkRhV0dkSHpXVTZHWkwyRWo0NTVpU3d4L3lxQWVzbTU5dnIyZHNsRjNFNzBqK1Y3VlJ3dXVRVVFwMmJBMjljdGVXQ0JQM282alpTVytFbHRJTm1KRjBNQ1BYRTRsZ2VmZUwxMVRaeHNBRStVS25pb0pqQU5Rd20yMTd4MkNQcVZzdUlpUGsyUStvaW5FM2xobmUyV21tQk9FOEVYUzAzaUJUeStHMlR0QjZtclhMR2RiQUpieDZtTFRqR1U5b0UxeElCT0s4QmUrSHJwSUs0ZTZuSWt4ZEtoVUk4a3haSVVLZGlYZEN6VWc5NmxrMERuR0U3aElTbExDN0hlSkJMcGJOZ25HbUlMRW1reDBRdTJSd3M5d0o3VXRNdUgxNjIwbE5leGtZZXdQNlJsMHFWNDN3RC9GMEdmZUs5Z0c0QTlCdk5rd0hnWWNuSlV0TW12YlR4eHJDUUo2aXZ3ZnBCV0FlK1F5TjZ5MkYvWWprR2U2emtvZHNEcndHc2ljQk5aU3kyMmVZa2U3QXZQTDVIV2NmWUdVSThoeUptc0ZkdWg5REN4UTd3ZjJ0Y3BiU1EraVBnajZVbnhZcENKbi9SczI5NG0vcWlkWDg0SGRkWDkwMnloa3gzd3VwZGVnRFZlQS8zaGhOZmJETEFaNjFIYXd1bFhrc0lneGdyN0pra0Nob3hWdTY3MG9OOUJZc1F3UUNQamRFb1M5bnM0V2ZnanduTVgyLzRydTI4dlk3dmtmQ2JucDFYRUJualpNSmE0bnRzam5KL0RpWUg5aDVNa1ZOckkrTmxjc2t4dFBvRUpoSFYweHMrSmo4STZzVjZNbkYxaFA4VDBCLy9EUTh2NTIrZmtJUVA3Z0FrbnZnL0dnVHJnbDRuaTZ0cGsybWFiZUQ3UVRmdmNUQ3pRSmZKODhMWmhZZnVCekFROGowVERwTUVlUGdWNkRHV21pRXU0L2R3bWV5YlBwcHFrNlpJa3BnajA2UU0rUEJGaURkZ2hVd0k0amp0NmkzMEVpVmtBdEF1dy8rZnRGV3l0ZlYrMDdmLyt6R0ptR1ZQWkp0c09IVEhWNGtSbW5TU0dxUkZYTU51WVdtNE1waFppaEJIdkJRbUpzZTA2cVpQa01JYzVmaXh0a296RngxQ3k3NkVQMDJpRGI2Q2JSZmoyNVRMSkx6emVUWEFKcVRlU0dueEhVaTZ5eHpWVytaQ0x5S2M4U0lqdmd0SUkzc0Mxa3Z3YW9VZENmUE1pSVRXSXAxOUhjRklqSkRTUGw1S2FUSUtUMXNkVFNJMk81QUdrQnZOelMrUkFjbWVFdjFIa1RFYTRTWEo4dnlzbU9YcU1iOVgza2RiUENYMHpNQXI4SUFYSk42TzJmMWNlUGI0QytUQU9SKytRbk13bzNFOXdNajVLSTVRN2tRQldEV2NlL0QwWDFQdzRDTW90MW5EMkZPQWJ1QlpTdm1hdGdmSXRzbmJTVHVqeEhDMS80UHUyYTJUOTExb0hFanlONU0yd2tucmhGc2pqVzFkakhOTlErWmlleW9kUmNJMkM1Smh5QW1tdEovVVQ4QWhRTDRQOFBsZkQwWk81OE55UUEwMGJIM0FlcEh6SktMNGN0NlEySHNwTHlLaExjRy9vZ1c5c1dnUTNjQTNXRGpXaGxTSDErRTY1aGZDNEJISUIrcEdzRnQ4bi9VakcrNDFJQTh1NG1YQy9CUGVnUGNtYVd4NFhFendONTNnZXdNbkt1ZGt3amVBR0dhVWNjMFdmSlcxRVFvTDVlSDJFdzBHQ1hiZ2V5NC95NWVkSUkvemtFVDd4M2VNMXFCZFF2bGFsZEFWZFRkck80UDZFNy90a1ZmZHhUOEVOZWkvT3lTajNoVkVZaHh6ckZNN3lkQTdXTmw0UG5VWDBpckVwUkhlTDhkeGt6SHBST05ZUldVYytYZ2VWVDJaeElueHM1TGdrTmI0RXQ4TTRhc0N5bytySktsbWlSVTZ1QXpIWDFsbTBqRmEzV1JMdFJQcm1rWlpGdEFNcDF3Ti91TDBLMmgwSUZnMllIZDZmUk84TkpOOUkxb1ZuQVVsakxkS2VoSk1KZUI3b0EydWtpRjJDYmdYb0Y4d05SWG9UM2xzNFNXSzlVL0hFcHVJSjdvdXBRYlpyOEowM2gwRy8zUnpuZ05WaWVaT1pCd25WUlBZRGlhYkQyNnlOcWlKallXbkUvM0dVeUJEZjgrTFY0cjFneEZyZ2RDUXF3L1BCK0RqUHg1eGIrUkw3eFRaUnp0azJyQUpiTy82c0RJK09aOTFDYktLQnlCVnllanF4bTB1RXAxc1lwejA1amYreG52Q0tiK01ieUFybDJJYUExNDI0bnN5MUJQTWdZRVJ2SVNrOEZMejJZRWlmN0F6YjZxa0Q2TitqKzFmMGYwTDNaL1A5Uy9nM3hzTjNGc3NRalNycERNaFYvOGZ1TE9yUUVISmJrVUp1SzFMSmJVVWF1YTB3NDFzVmNUMHFBT2JPV0tUekJJSm1BVjZEMUFUNFhiNE5mNFRSMmtGTEN5Rkp5RzVCdEFvUzJCcXRCMmlFNU1mRFFFajllWWpUSUVpd3Ura29nTEU4RFZnbm5VamFLSG9DVDVORzZMZ0Uvb0hPNCt1bjhIQTZwQ0tMVkFKcEFhVEZrSllCZlNYQWFranJMUGpWV0tRYW50OXRrR29CcitQVFlRSXBQclhWUDRrM3RpY0tES3N0Y1RSbmVab0xGbjFPZHVwdk9WNUh1bUl4L2cwK1djNTdoOGZ2ZCtuWFFRZjdtQXI0LysxNUF6MCsxMzdTNkhUMmVPcXBBMndPeHhaNjNPUE41UHQvRUFQd04vMEl6Zk40ZHdqSFFVNExXNFMvUDlFK3NMMWR5QXhrWG1DQ21aQW5hRjVvcHhFeFU1a3NKcGQ1a2NrblZOaXZwdkJVWVBQSVV4QXNHQ3lJRmlRS3BndG1DTVZDaWZCbDRSemhRK0Z2ZUc1aHEvQ3hDSW1vdG5tWVVDYU1TV1BNWk13Y2JsUm1CVlBKckdUZWRSamtFTncrSzdrbFJUZm9xdi9MYmtrcDVJRy9TeTBZSm9nU0RCZkU0RzlMQzhkWS9XSFZhdlhZR2xsVDFyUzF3RnBvTGJLMnNyYTJ0ckVXVzB2dzkzL3hkM2NaQnlhQkdjMGtNbVB3TjIyWkZ2SzkxMnhZMVJxTHRKRkFTckFGNEM1SStDeFN6N2MxUURwaFFRcytRUUQrVGdDK1RnQytUZ0MrRHM2Y1NBQitUdERLUVNINE9LR0VoemlCcnhPcVFNTGdRNFI2bnZZaGxJMmtqUkw2OFRTQmhJNUwvYUYrRUYvZm40ZmcxK0JVMUpIQUY0SStrQkQ4bnhBc0ZIWWlFb0xQRTA2MzRMZXBJd21MT0g2RnNFT0U0UGVFaS9tMGpFQ0tUMjMxVDhjcmViemFvbTFkSnpyTGZoMnB4bUtjYlh5eUhMK1d4K3U2OU91ZzgwQlJLQUZOUWxOUUlacURGcUNsYUNYYWlIYWdPdFNBVHFFTHNMZWJVUXNscE93b0owb1BQcTBQRlVHTnBkS29IS3FJS3FXV1VKWFVHbW9UVlVzMVVoY1FUZGZUeCtsVE5NWnE2WE4wQTMwUnNFMkFuNmNiQUZ0REg2WlBncCttNlVyQVQ5STdBRnRDYjZHUDByc0FLd1c4bkQ0S1dCRzlraTZqNjVHQXJvTWVqVUI1bG95WlJ1Y0F6UnpBeHRLemdiNFlzQmpBSjlGTEFBdW4wK2tFdWd5d0FZQkgwUW1BQmRDeGRBaEVOQnBPeWdGMEVCMEMyR0o2SU8xSGh4Sk1SeHNnUHRMMGZOcUhWdE1td1BKb0NaeEMxWUNsMHlyYUNpSVRUVFhSZWRRajJncXdLM1FXZFplMlFVSTZBM2dwQkM2SzZUNHdYd2pVY0tWUzRId3B6QVo3SFU2UWRkUmg2Z1NNdFFEa3M1czZDU3NDV2lpMTBrS0kxelJkVEsya1M2a2F3RXFvOVZDL0NiQXNhZ0U5bjZvQUxJZGFCaFRnTytoRXFwQXVvdVlERmswVjAvbFVLUkpTMTRDdkhPaFZTTzJnWjhQUlJ0ak9VU20xbWxvUFl3bnBKRG9GYW5Mb0dOQlVPYlVTUFh2Ly9SZnZ2NEw1NUF3ZkRmNW5QdjhHR1EvbGNNUzk3M0p2Y0JRMWxIOFhobmNtaVBLWUNrNENGUDdtempWeTloNktjOUVGL040anVzRDF3N2lna2ZUbTMrandHSUw1ZUF6VVNqRHdTT2dSbnBsN2U4TzVkUlkrOVZ0bjRYNmlCaXVJVWFKeWJqeDRHNkZzS3ZDYmhIVVZwclFxeFc5NElnVis4eEJld2IwRUxIa0w0ZDZuOFZ1YVFIQURydzVWay83RmVDYnlUcEVCYTZSSUcwWE50U0p2eXlUZmhITWlBYnlXQnJLS0JzTC9BSmkxbUhCV1REaTdRRGlySTV3OXdweUo2b0R5YVdmd3J1OEFUM3VId0pGWmJSRy9jU1NsQlhNWXJHR0JjQXpFbTRra3FtSmU1dEQ0M1RJSm9tcWtZQ2hFMVZtQ2x3UkZnam1DVndUemNGeUZxSm9rSEE5UjlVV0lwZ0tSVUNRU1dVRkVsWWlrSWtaa2g2T3FTQW54TkVXU0trbVRtQ1dUSlJtU1RJaXNGWklWa2tySk94QmQveW5aTGRrcjJRY1Ixb3F4Wm13WU1TTmhwQkJwSnpISlRBcEUyYlhNQjh4NlppUHpJVk1EMFhZcnM1M1p3ZXhrUG1acW1UM01YbVlmVThjMDJFb2czc1k0akhTSWRZaHpHT1dRNEREYUlkRmhqTU5ZaDNFTytCczZZLzdIdlA4blhDZkJHZGZUSXZueU1BQlNFSThQaEJScVFRT25Iam9HVWdJazNCL09YZkFPaHU4aE9GZ0lhVFlQY1FKRG9QRU5RaG5mbnNIWDRiU1ViOE9wZ3E5cmcvaldZSTFGZ25NSURXY1FpREdJM2dzSnppQVFqVHI0U3JGSUozaDRoay9uTFhETGRNa2k0VEtjV2VpbVA2RzFUSGQ1K0pCUFhkdGJ1NVE3YU1aUVM2a0tTRldRMWxBYkFXNmhkbEY3cVhxcWdUcEJuWUh5ZWNndjRhaEEzWVhVQkhnVDlSQlNLOVJkd2c4dEpPMlhTSVJUMFJwYVR4c2hFZ2JDMDU4ZVJPMGlVVE9XcXFBVDZRa1FhNmRBTEp3T3NiZ0VuZ1VRSzVkQjFLNm0xOUUxN1U4SnZRMm9ha21VcmlWeHVoYWVORWhuZ2U1Q2wyaGpHV2YrZm9UNVc3R0ZpeW9Xa2VUdnhKQW5vOGVUYnpCLyt1NkMzMXFBZi94TlYzeUhodkY0TWs0ZHdmSGRUVFhKbThtOVR6UDJ0cERqNzVzaGF4d24wa2pmTXE0VmUwK0V5QWlJOUVMa3hneFo2VWwraStSQ2t0ZVRIUGU5WllXL2IvYkkrbVdDcjhXNTlTcDhCMmVOdjFFcUZtM0F1VlV1NUR1c3NKUSt0K3BIZUlnbU0zNUI4QmRKL2lia0YwaU9hTHdXUkYwaUsyMGdlQkhCQ1QvVUVrSlRUSERNOHpCOEg0YndEU0t1bVVCeVg1S1RWVmlSM3lLbDN5YzFaQlgwQ3lRUEpmbGVrbjlLV3NPSVI4ZHZjMVBJdkk2QzJZS1hoZmtpVy96T0kwbVg3R0VZeHBaSmhiZWJkY3dHNWlObUU3T1oyY2JzWXY3SjdMWTNPR0RKS2Y2eWh5V3RJNndIVHVvSVRzQUlUdW53ZG9aaklrSnc0a1p3b2tad09rWndjb1l6TUVLSHU2UkdpM1RZQXJhbGszQUNtUWtuNmZsb0VWcUN5dUUwdlJxdGgyY1RuS2wzb3dQb0tPVEh5WE1LdFozQXVGTVhmNWJpemttV0p5UkN3NTE0bm5LKzRVNHo1QVJ6b1hVK3ljK1FuUHlHTExtSFI2MkJKR2RKcmlJNXZxZHRidlVoSXllUW1ncUNXeEU4aitSblNENmY1QjVFUDRsSVFDMFRoT0MvcUtNL3dKN1ZhcHRWQXhLU3YxRjBJWCtqeUpLL1VYUzN1bWIxRy9JamYzOFlRdjcrTUZ4OFJYd1R4VW5XU3phaWNlUnZRU2RJTjBsM3dkczNqUUtSQWQ3ekVRcEY0eUh1cDZDNVVMTVFubmlRNEZ0b0ZPaG1GUm9OMmxtSHhvQit0cUN4Nko4Z3hZa2d5eTlSTXJxRWZrQXZvdXVvQ2MxQUQ5Qmo5REpGVXo3b05TcUk2bysyVUtIVVBMU2RlcDFhaXU2UnZ5VCtuZDVONzBPUDRTM2xLMHBBWDZGdlVtSzZWVUJSM1FTTW9CdWxGRG9KblNrWFlWOWhFS1VWK1l2NlU2Nmk1MFhobExkb21DaWE2aVVhS1pwRTlSV2xpdVpRUTBTdmlSWlRxYUszUkJ1cHFhTE5vZ2JxVld0YjZ4ZW85NndIVzRkU3A2ekRyY09wTTliRHJNZFJYMXFuV2FkUjE2d3pyZCtucmx1dnQ5NUE2NjFyckQraURkYmJiZXhwVC95WHVQUTg4VEZ4QXoxZi9LbjRKRjBxZVZleWppNlRDcVVCZExuMExXa1ZmVVJhSzYybFQwdDNTdy9RWjZUSHBNZm9iNlNOMGtid3NGTVJrc0U3bHV3cXdGdVFtaUU5Z1BRSUlUa055UWFTSFNRRkpEVWtGcElubnlCbXl3TjRhTU5ETGxIeUlFVExCL0lwbEVBa0g5cU8vM1dLZ1pUd04raVNJSUgyNVJuOCtIQU9rRVBjbDgvbWVZWllMaS9sMjhvNjllWDRYRXI0N3FpcjZKS3Evb08waHA4WGo3c1IwaFpJOEc0cWgzT0R2TjVpcm9iMnhKVXh2eWY0ZElaUGNIYVFYNEoyT0J2SW13RGVwYitWRFpYRnlCSmtTYklVV1lZc1IxWW9tdzE0TWVDbHNqTFpVbWl0Z05ZcTJSclpSdGtXMlM3WlhsbTlyRUYyUW5aR2RsNTJTWFpOMWlTN0szc29hNVVMNVJLNWcxd2wyeUxYQUUyVlhBLzBTWElqdEZiSi9RZ2VLTXVROTVjUGtvZkxIc3FqNUVLZ2pKVW5RbjJzZklJOFRUNUZuZ2Y0ZEpnM1NWNEVOZjNsSmZJRjhzWHlaZkpLZWJWOG5ieEd2azFlSzYrVEg1WTN5ay9LejhvdkFINUZma04rUjM1ZjNxSkFDaXNGbzVBcG5CUTZoWUhrUGdxVG9nK3BHUUExSVlvSVJiUWlYakZXTVVtUnJzaVMxeW55RlRNVmN4VHpGWXNVU3hUbGlwVkFzMXF4WGw2cDJLVFlvZGl0T0tBNENqVEhGYWNVNXhRWEZWY1Z0eFROaWdlS1IwcGFhYU8wVXlxVWFpV3I5RlQ2eWhJZ0Q0QThTRGxRR2FvY3FveVJMVlVtS0pOa2U1VXB5Z3paUm1XT3NsQ2VxSnl0TEZhV2Rzbkx1dVJMbFJYS0t1VWFaWm04N2luNVJ1VVdoUUh5WFNUZjI1N1hLOHNVazU1QzMvQW40MWkybmxDZVVaNVhYbEplVXpZcDd5b2ZBcmV0S3FGS29uSlFxVlFhbFY1bFZQbXBBbFg5WlFtUUQ0STFwcWpDWlJ0VlVhcFlWYUpxZ2lwTk5VV1ZCNXpicWFhclFGK3FFdFVDb0Z5TUpRRDB5d0N2VkZVRFhxbGFCM21OYXB2c0JPUzFrTmVwRGtQZXFEb0orVm5WQlJqeml1b0c1R2RWZHlDL3IycVJKNnJ1T3lLU1c4a1RIUmxIbWNMZzZPU29jelE0K2ppYUhQczREbkFNa1ljN1JqaEdPOFk3amxVVk9VNXlUSGZNVWp4eXpIZWNLY3RRbm5DY0E2c2I2amdmdUNJY09pNXlYT0pZN3JqU2NiWGplc2ROamp0a0d4MTNPeDV3UEtwcWREd3VPeUh2NzNqSzhaempSY2VyaWlXT3R4eWJIUjg0UG5LaW5XeWM3QnliblJST2FzQlpKMDhuWDZjQXB5Q25nVTZoVGtPZFlwd1NuSktjVXB3eW5IS2NDcDFtT3hVN2xUcVZPUzExcW5DcWNscmp0TkZwaTlNdXA3MU85VTROVGllY3pqaWRkN3JrZE0ycHllbXUwME9uVm1laFhPZ3NjWFpRR0p4VnpockE5YzVHd1AyY0F3SHY3enpJT2R3NVNsWGtIT3VjNkR4Qk1ZbkgwNXluQUo3blBGMjJVVjd0WENTdmN5NVJGY2t5bkJjNEw0YStiZmd5a05JQTUwcDV1SE8xOHpwNXBYT044emJuV3VjNjU4UE9qVER2TmhqL3BQTlp4VzduQzZDdlJPY3J6amVjN3pqZkozaUxHc25yb084MitRSzFsWnBSc21vWndaM1VPc0FOYWgrMVNkMUhQVUFkb281UVI2dmpsWjdxc2JJRTlTUjF1anBMbmE4cVVzOVV6MUhQVnk5U0x5RjR1WG9sNEt2VjYyVkxGU2IxSm5tZGVnZkcxYnZWQndBL3l1UEhBVCtsUGlmYkNIMHZLaEJZVnhIZ1Y5VzNGRWpkckNwU2hxb2ZxQjhwa0F1dEtsTGNjckZ4c1ZQSVhCUUVWN3V3Z0h1NitMb0V1QVM1REZRWVhFSmRocnJFdUNTNEpBR2U0cElCZUpCTER1Q0ZMck5kaWhWT0xxWE9qUzVsTGt0ZEtseXFYTllvZkZ3MnFvcGN0c0E0dTVSVkxudGRkc0ZvOWJKVzUxcVhCcGNUTG1kY3prUHJKWmRyTGswdWQyVmJDUDdRcGRYbEx0Z25jS2dSYWlUeU9yQll3QlVtallPOFRxUFNhRFI2alZIajUzSkdFNmpwTHcvWEROS0VPOFk3UTcxY3FJblN4TGJKM0VXdFNZUytST2JRZHdMb2tkU3JkMnZTNUhYY3ZOanpLS3MwVXpSNThqek5kQTJzVnprVTd5OU5pV2FCMHM1NWdRWTBybG1tcVlUV2FzMDZ4UzFOaldZYndXc0pYa2Q2NGZyRG1rYjVCTWQwelVuTldjMEZ6UlhZV1E2YUc4RHRIYzE5ZWFLbVJRc2ExMXBwR2ExTTY2VFZhUTJxRXEyUExFRnIwdmJSRHRDR2FDTzAwZHA0N1ZqdEpOVmliYnBzcWJ4YW00WDFxTTJYTFhWT3hMaDJwbmFPN0lSMnZuWVI1RXUwNWRxVkxnM2ExZHIxMmszYUhkcmRLZ2Z0QWUxUjdYSHRLV3l4Mm5QYWl5NitxaUx0VmUwdGJiUDJnZllSOEFaV3A2UGxkVG9ibloxV3BsUG8xRW83SGF2emxHVTRwdXQ4c1ZmUkJjZ3lkRUc2Z1VvN0hDK2NhN0ZuZG03VWhlcUd5amJxWW5RSjhqb2NvWFJKT0JZb3EyUkRkU202REYyT3JsQTNXMWVzSzVVTGRXV0tzZklhM1ZKZGhhNUt0MGEzVWJmRnVVYTNTN2ZYdVVVeFZsZXZhOUNka0NYb3p1ak95MC9xTHVtdUFROW5kRTI2dTdxSHVsWlhvYXZFMWNGVnBiTngxYmpxbmROY2pTNTNkWmRjL1Z3RFhmdTdEbklOZDQxeWpYVk5kSjNnbXVZNkJmQThiYlRyZE5jaTdTU2xKMFRQQk5jUzF3WHlPNnF6cm92Qm5zdGRsNEZ0NTdoV1FrUlk0MXF0a0xtdWM2MXgzZVphNjFybmV0ajV2bXVqYksvclNkZXpZSUcrcmhlMFYxMnZ1TjV3dmFPcGRtMTB2US96dG1pUHNuQjQxYTVrR1ZhbVhhOEpCUHE3TGpiYVpvVU1lR3RrblZnZGEyQjlkRGFzaVhWeTdjOGF0QWEyRHp1QURYRnBZQ08wNjlsb05wNGR5MDVpMHdIUGNnNEVuR0h6dGV0MVpleE1kZzdnODlsRjdCTE5GYmFjWGNtdVZrU3o2OWxOZ085Z2R3TitnRDNLSG1kUHNlZllpODRYMkt1eXZjNko3QzNGSkxhWmZlQzZUU05rSDJrZnVORzZFMjQyYm5adUNqZTF5M2szVm52VnpkUE5WM3ZVTGNBdFNIYlhiYUJicU50UXR4aTNCTUNUM0ZMY2hpcUh1bVhJTXR4eTNBb1ZCcmJaYmJick5yZGl0MUszTXVpNzFLM0NyY3B0amR0R29OOGlEM2ZiNWJiWHJkNnR3ZTJFMnhtMzgyNlgzSzY1TmJuZGRYdm8xcW9YdXRWckFnbE5xMTVDOEx0dVovUU9lcFhiTmFkV1BldzR2VjV2MVBzNTErZ0Q5ZjMxZ3hUeCtuRG5HamRXdDFjZnBZL1ZKMEw5QkZ5dlQ5TlBjVG52V3FtOXFzL1RxYlZIOWRQMVJmb1MxK242QmRvSCtzWDZaVkJmcWEvV1BsQk4xNitUWmVocjlOdVVyTTVHWDhzNjZldjBDL1NIOVkzNmszamY2YzhxYnVrdjZLL29iK2p2Nk0rNjN0Y2MxdDhIK2haM2VOM1FISFpuTUs3emRiZlNzZTR5V1lhbXhOMUphYWNKaE5QVVhYMk5PM2hYZDRQYlhYY2ZkNU43SC9jQnpqWHVJYnE5Z0VlNFJ6dW51Y2U3cWQzSHVrOXlUM2ZQY3M5WDNGTGxZUStnTmJuUDFBNXduK00rSHp4L2kxdW92TVp4a2ZzaVJiVDdFdmR5eDNMM2xlNnIxU2IzOWU2YlpFdmRkMml6bE9mZGQ3dk5kaitnREhJL0twdnRmdHo5RlBqNWZGZU5MRU9sZHo4blY3bGZkTC9xZnN1OVdYbkowYUFSdWo5UVZzRTRqeHpMNVRjTXRNSEdmWW5CenFEUWhSclVzbzBHMXVEcHFsZnBEYjZHQUVPUUFieXVJVlR2QUJGY3o1cGtkNTJ2R0lZcVpJWVlRd0xVSnhsU0ZJOE1HWVljUTZHTHIyRzJvZGpOemxDcVBRcmpsTUhPRFRVc2hkRXFERldHTlREYVJzTVd3eTU1Q3p2V01kK3cxMURQblErNWt4aWJaV2d3bkRDY01adzNYSEkrYWJobWFETGNkV01ORHcydEhrSzluNGZFdzhGRDVhSHgwTXRtZXhnOS9Ed0NQZnA3RFBJSTk0anlpUFZJOUpqZ0hpSmY0SkhtTVFYT2FRMGVlWEN5YXZDWXJxeFN6M0UxcWhkNUZIbVVlQ3p3V095eHpLUFNvOXBqblVlTnh6YVBXbzg2ajhNZWpSNG5QYzU2WFBDNDRuSEQ0NDdIZlk4V1QrUnA1Y2w0eWp5ZFBIV2VCazhmVDVQMmxHY2YvdFJIem5MY3FjWnpnSEt2WndoLzZ1Tk9XZHpaaitEY2VkVXpRbm5OTTlvekhwK3l1Qk0xZDNiMUhPczVDY2MrejNUQXMrQkV2ZGN6SDU5ZDhTbmFjeVkrcndML0taNlRQR2ZpMFpSVm5uTTg1M3N1OGx6aVdlNjUwbk8xNTNyUFRaNDdQSGQ3MUhnZThEenFVZWQ1M1BPVXgwbDJQUjdUOHh3ZVU3YkZBL3dNMEYzMHFQVE1JcWRUN3R4SVRyQ2VWNVhGMm9zOGZndndBZHc1MXJPWnJJTERIMkJjVmFQY0FpdGRyZHpyMklkZjlTT01jNnZtNlRtYzBLdDNRSlJjNmtWNzJTZ01QRzZIY1U0eVBEMkhFM292aFpmYWkvWHk5UEwxQ3ZBS1VoVjVEZVRpdmxlb1JnTjloM3JGZUNWNEpYbXBuZS9ndHdPdkZId085OHJnZEVGV01VQ1o0cFdET1FIUFgrZFZpTjhqdkdZNzMxRGFlUlhyRXJRRHZFcTl5bUNFVXErbFhna0trMWNGMEZUcEVneHJ2TmJvRXRSWkdxSFhSckQvNDI1TElTcVIrS0tMOGRvQ05MdDBDYzUzMm5LdnZlMTR2VmVEMXduMzQ3b1R5aXFvUCtOMW5xKy9wRXZ3dXViVjVBWCtDbytqckpKWGUxWEFLaDVDdnNSWjc5V3FNQmlGUm9uUkFlZUFxNHdhbzk1b05Qb1pBMTBhalAyTmc0emh4aWpGSEdPc01kRTRnYy9UakZPTWVjYnBMcTNHSXE5U1k0bmJVRHd5UkFIQ3AzR0JFV0tOY1pteDBsanRuR2hjNTNMWFdHUGNwdmN6MWhycjlIN2ExY2JEeGtialNlTmhselBHazI2bE1QNVo0d1dZOTRyeGhsR3ZpekhlNGNaUnlJelRJWjlqdkc5czhVYmVWczVuUFRkNU05NHlieWRubGJmT3VkSGI0TzNqYmZMdW80LzFIcUNMOFE2UjEzbEhlRWZMYXpqcGVjZDdqL1dlNUozdW5hVzQ1WjN2UFJQd09ib0U3L2w0Wk85RklKOHk3eVhlNVlDdjlGNU44dlhlbTd4M09MZDQ3NFo1YTcwUGVCLzFQcTVMY0xtcmJ2WStoZU83OTdtMjFRRitFZWE2Nm4zTHU5bjdnZmNqSHhwcnpjZkd4ODVINGFOMnMvTmhmVHg5ZkgwQzhHZytRUXFaejBDZlVKK2hzaWFmR0o4RXdQOC85cjRGdnFycXludWZmYzQ5NTk2YjNFZHVIc1FZMDVSaXhDU2xFU2xpcEpUU2lCQVJZd3d4WXFTSWlFaFRpaEVwSXFVVUl4TXBwWkZTaHVHamlKRmhLTU5RUktRTVpUQXlmaW5EcEVncHBaUlNwQXpEVU1DVVVwcGlqTW0zMW4vdmUzTnZja0ZRVU9rM3YvUGJqN1BPMm11dnRmZmF6N01mbGJuamNpZm1UczZkbWpzamQzYktyTnk1dWZOekYrWXV5VjJldXpKM1RlNzYzRTI1VzNPMzUrN28wWlJ4SW5kWDZ2WlBCWFAzNWg3SVBaeDdMUGRVN3BuY2MyeW41RjVUa2J3enR6M1B5dk5ldDVwSGtYbkJ6QkY1YWRjZHlzdk02NW5YRzNhZnZINTVoWG1EODRibWpjZ3J6YXZJRzVNM1BtOVMzcFM4YVhrejgrYmsxYW94Y3Q2Q3ZFVjVTN2wreTF2QjJwdTNLbXR2M3RvZXZmUUlWNDF0TWFxTkdiR3FzU3BHcVhrYjhqYkhqbFhWYURSdlc5NGIxNTdKMjVtM08yOWYzc0c4STNuSDg1cnp6dWExNW90OE96OHhQNVNmVHFGQUp6OHJ2MWZ5MnZ6Yy9JTDgvaHh2L2tDT042V080ODBmb2tmVE5IWk9YYzVqNTJ2M01pZjV3NWlUYTg5MGNrSnc0dUg2Q3FVdFBGSyt2b0xIeUdwMG5EK1NSKzRFd2ZpYTg2ajNUcTREODh1NGpPU1BWcmFxRlhtMHp0U1NOMGVvb1ErY1B6Wi9RdStkK1ZYNTFhSERlblpDelJoZ3ZpSi9lbWgrL3F6OG12eDUrWFZxTGtLTit2TVg1eS9Mcjg5Zm5iOHVmNk9hYzFEcHBtWVYxUGc5ZjB0K1EzNmp5cEg4SnBLeFJQbjFmQVdGK2xUUC9EMzUrL01QNVIvTlA1Ri9PcjhsdjYxSHI4L0t6N28vNnhlR2NiLzFJdFpuSGlIN0d6ei9idVJqRmo2ZzV1SXRQZ3NtWU4vZU9UdHY3WUtOR1h6K1Q5RHhxb2F2aDAzVXhHT3dzeFFFYzZnQnRqditCTGlhVC9VcUNPd1dQY09hZ25sNS9oT2NwZjRvdUE2Q0U0U3lmZ2ZJTGZEZlFYeU8wakZPSlFwUDZUOEhvMkhmaVJqdmhIOGc0c1dNcjdXRlF2MDdTMFIydVRCa0VZYzF6c0orV3JTU2ZTK3ZhNUd6eFRHeWw5dnB3akJ6WGEzc0owNE51WUVoMW8wODV5NDNNTVJNQStSRllLWjEvQS81MS9QL0Nia1Y4TEg4djBGdVpVeHJnUDB3L3k4Ry9CVHdzeGxmTm12SUMreG5UT002aGhoakdOKzREckZJNEpjQzBnUk8vc3dRVjRyZG4veUxBSmtHbkoySWZScENWUUpuRy80OGw0S0hkOWx2N1hLZEpNamJMSVYxaXZHdERJYklSZUJrQktSYkJGbVc0Wit6c0w4TjNwamIxYUQ4Sm1NNm4yZTQrU1lvNzJMZUNKTnM2eEcyNVd4d05aenp4YXlIanJXRFFwRjlBL2o4TWZtckZJUy9taldNS1lzWVlyUUQ1emhybmN6VU9PczVMdXNaL0RtL0hTbk1xZUZCTERrYzFzcXczc1VLNVdHSXhVSXNQd2ROd2hFbmthcDFuSnZpSkNEVEZTWkRDSk56ZnliaW5jQ2E1bXBsUFRjclFiOFFVaHhpSG1RaElFVWE4Z3dvZUNuMkJQZ3JGRTJtWUExZ1cyWXl4RmpKR21oZUMvN2JJZStUME40T1RubGp1NHZYbUkvUmtqNERhaHcyaEZCdm8xUzJJOTYzMkUrODhkZTNBQWt4bjRUUHFlY0d4QTBLQThDdEcveUVkQW9UcGpTQnM5d3BRazdWUVROZmdDWnpEZzZGYnFRaDFBYit5MlVkVVpycGZKNi84djh3TTV2RHVxWWpsNXZodndZNHc5VWFCOTVuSUlkREszckJYK1FhcGRmRmsxL25Edjdrb1hSVVlGL0NXV0JXd1M0RXZBaTVYQUdOSGN0MWdxeUFUdDdJZWVROHpqbHIzUWh0ekdaTTE4OFIrMXF1Tit5VldJay9RNlVuaDdWR0lEV0tPamhQRTZHbFUxMkx1TVlEUDh1ZGU3RlM0d1V1di93djBEWEsvaTJuS3BjdjU2c29LUWxNemR6SjZlejBnRGJ1QkgwM3VOM0FGQ2pVRGFBMkc2bjZXOVpTL3Y5bkpmQWFjL0xmaS9UazJGdFU2ZVlVbHZQc2R5RHBPNEFVQWRJRS83MnNzUnlXMHZ4ZWhQbzMrTWZCWHdjYlpST3gzOElRMTNqWXZka1dKNkU1ZGRETVRPajVjZGZ6S0ZOL1F2cDdVQ0w0VDlkcGFNVWlYbGRDWmJrL3I0bm1yK2FUbk03R1lVajZOSCtWVHlzZFl4d3JBVHN4TmtDaTN6SEVQTVNwVGZyQXNyOEYrSHB1S2VSTENQVW9jck1YSUk5eXlwdVZ6aENDdE50M2NyNkR3OVV1aC96WHQzTU5mNVpwdWdUcXRFYVVvM2FVdStOY2U1dTVUajZGZlkzL3VacDJSek0wTUpIOFkxMTNrMzl3eDEvSkgzRHVKenVkL2ZKNkYvUHdBTGM0Y3JqckxZS2ZkbFZBVi9ucldxZUVJTzl3alNlWEFsTGtPazZRYWxjZStmc2cxRkk3RmFGdUkvL1hPa2lyNVMwV3IvRjVnVStxbGFYdHYrYTZsMk8wVXFBVjIwQm5NTk9odE9LNnFCU1FVcGJYV3VqNmUvSy9xbUszQ3dqeUN4ZXYwSDZKVDdraHlwc0lJcTBVcE1ZYXBvWjgveGViMmtyNU0wWFpOa0c1SDBzQkRxZHhIcGs3OGJmN0pQSXJFeG95alRYVHVnUC96aytxR2g3dDJqVGs4azZ1ZjhRSzZNTlp0TGtya0YrN1FXRzNxZ05STjc0Si9TbEVYcmV4UktTTnZCYnBlZEMva2VuSWVRd3hKcUp0Mm8xNnZwbHRLbG5wcU5zNTdQZGRUeUQyL29CenFabkcrVXYxNGZQZ1lSUjJtUURDcGR1OFZ0RkJlU21BRmcxQVhWR2cybEF1WlZSak1MVnk4SkJvazE2WmU2R2ZpN2gwU0JQYXRaZnJCek9iYXpuWENuQllnVGIzRjJnOUo0RERIMEF6cjBVTjh5NnZtVEN2UlcxMkJIem1jVmhLYzE1Tm5ZYzZJWkc1TWhQQlNRN290SUhiSFAyVlk4OUJ2ZHFHVUZ0Umw2WWd4UjVSdlFXa2N4SHFtVWNRdGhIbC9SSFVuTmxjbjFBS1Z5UGViYURXaWxaN0JXby9saUtIYXdsS0UvNzZGdVBMSXRROGQ5aCtsRVFQNkN2ZVVsQzNjSXpOcUlYU1Zmc0lmZGpBc1JzOW5Sek9PNjd0alo3NjYwRk9LNlpQWDFtaVova3JsVGdQZWl6UUhOWENvcHllaGJ3U05lRXpMQ24xVy80SGRVNDYxeDdvYnh5Ri95aFMrMDF1UTZudE93V3R1QjFhZWdOYVJtZ3NhdWxtU05vTWZ5SGptMjNjYzVPRkNzSnRJcldWVTFGeVZXcnptZFJ2czAxMTFBMDQ4WmxQQVphNlJlYWE1RmJyRVdqSTQxeG44bGVxOTFqUDY3RkRxQU41a2NkOVRxS2o4djE1MUhMYm1HY081WHdQV3ZFVytsb0hJWVViNmZ3MjJxeG40WCtUTllRdyt3T1Q2elRVekFTdndpby85TlBRc253UGFiSUJaV29vT0hrYmJiMjcvUzdrOVVwcTNmcERjNTVoVGFZK2FqNTA0d1ZJdlEyMXlsREFiMGVxY2xsWXJmY2trVVRtTUxTRE9Rd3hYMFlMUGh6bDhXV2svSERvOEZadzZJVSsvQ2ZDRnFIODNtZ2xrUDlCaGxBTlg0YnlmZ3Y4MWRDb3gxSGIzQTU5dUFFNThpNzh2TTV4TzNUak91eXcyODVsbi9KMENpVGlsWTgvVnFXU0lkWWQ1dHZJVTN4MWxxT25NUmk5TzY0VkMxVjUxMXhkZzdZQWZUQkFtckhpOGpqYWx3MlFZaFNrY0FQemJlNU5VZG8ranRMWEUvM0oxOUJpZW9EVENzaDZjUFV3MWxldVFDeXNSUTNRcTYzUTFlT291NVpENjRZalZWL204WWdjRHNnMDV5c1lFVEROS3VUNHM2aVhYZ1MxWjhIbnZhaDEzMFplM0F1cFgwUzlPcTE5TFdSaGV6bjR2QVg4WjZxYURUUlhRNjViV0ZlcHZMTitab0xtYXFUa0xWeGpVSTZ2UlQycGFtbW1VTUFRK29xeUFDa09NVFdDUEEvOENhaTdPSllNVlorMFYzTHVJNjVyVUZyL0U1QUhXWGJTaEF4b1FpVkdMamNnbFJUOFJsN1R5dldiZkFtOXNtM1E0VU9jZDlRLzhTQjMza1haZnhncGZ3TnFBT2IvaStEMk9EajhJblRzRmtVWmZSSWJaYVEzU3NjNGhRbU5IUWV1M29LMkhPZVNRdnJXSC9ybVFSM1NIejJjazVDYVkvbTAxbmJXbVU4amxxSG9aejRPK0U3azdPUFEwanJFWG9YMjlHMmtZUlhXN0p4MEh1UWFRMzJGdHEvVUk1cmV3Q0YrakQ5eWpLVGg1RGZ2NDN3MDc5TWpNc0szUFdwa3dUMDkrd2JFTzRGdHV3eTZWd24vN2FCNUgrU2F3TlRzZE5aQXMxTHozQis2dWdzcHlYbjBoR3FkVVpzZGhVUkhvUU9GcVBIcW9aK0YwSUZyb0VXRnFnYmovS0xhYnpaNmZhcS9qVjRjOHFnQ0tiWUl2WTVkWEY3b3F3ZGZmd2ZJRFZqTHpEbnluc3BmakdLS1VWKzloekYxTVhUN1hhUi9NOGRPWDVubnR6QWVMR1lJOWQrWXpoOVJUOVlnQi8rSU10NEliZndkOUtFUm5JU3dzN01ldFZBSWtHbG80MTVVL1FlTUhQL0lxVXE5MWxiVTRTZEJHZjBOOEh3Syt0QVR2ZFBoYU9rbWNpalNjSXlha2I4ZDRHZU05ck4wRmN5emtZL1U4eUwxaG5NOWI1U0JoMEtVNjNOb1g2NEIvam5rMnB1b2Jab0I5d0plaFA3U0laYWRNSmxuRTd3MW9CWWRqM0pub2p5YWlnSzNzODY5MFB3VmFOM2U1RHdpQ0hJZnNiK0ZtdmxkVUFzQlhxOUdqbnE4bnc1dEtVTzhyMEdUdVlWNkduRTlEUXB1YUVLREdqOGl2MTVEWGh4Q2plZG1xU2xmM2tXNnRTTmZ1SzJ2Umg2OWhUcG5CWDhsS1hwanRNSjlnMGU1UmFDNjl3blVBdzlEQnc2Q1E1NERlUm0xMWlMMGRwWkJIeXFnZTd2Ukh1MW15bllUOEl2WXBuYVp4eFN0b0hZQTlVWnY1TUk4OUV0bmczNEMxMGcwQnZHZ1pXUjkyNHJSNGtLTTkvL0NOWjc5amhxcGdiYzVITXArZ2Z0ajVoTDBURTZpTDFRSERia09ORE13MTNRUzdkY3ZJUFZoOEY4RFBid1BGUG9qcmU2REZvMkN2eDRwbjhFakZOZDgxZzE3SGNZVWpaRGxDV2orV2VDUFI4b1BneFJWa011TE5uMUR4eXp1RlNNRnF0QTdIWXpXdkFaYU9nK3RUQTVXK25iQS95emtlaGFZRTVHU0c1QUNqN0tmZEo3VDZnRHEvRFRVeWEyQXZJNnY3NkptZXgwOTFSbW9uZnBEaTJhQVdydHJEK2N2K2tYdGlHc1I2SWQwcS9jaStnQW5NWlBBNmJZUDh3eDNZZi8wUHRVZjVyYVlVbU05MWtLU2Rqbm5lSVd1NXcxN0gvczVGdXIvVVBxNDI3aW42bURXeUM1amlMT2JJWFlaY0tvMGhHeDdzRTV0bnB0YUEzc1VlSHNhNlF3YzBtMkN1R3RBK1JEQ1l2YkF2aDhVdHNPK24zRmNXYUNRaGJIR01iVWJnMk4wbFhDUDJsV0NlbnN0WnBPeWVWMnZTOWgzUXplNEhEVXpoRnFva2VpOU1BOTU3S2MydEpyOTZHZnVZL3FVZDV5Ryt4QUwxaUpUYXpzWWFUS00wNEUxaDlMa1lVNEJUa04zRzVjTGFoRmVaS2xWendlemN4bm96dzhIaGVHb2s0dmdMOEk2NXROc1UzdkVPWGd0OXFDdkJPUXNlRGdPSHM3aTFJRTYxYy9oZVJKMXRvRThoMUVEY29SNmdFeHpKUHBkSTZDSEk1R2JCWURQN3VDWkhKTnRhZ1VZc3NFSmNWMmhlRU9OUFpKdHE1emJJMnFYdWVYYWlWcjBMTDdtNGV1TlhBKzRVakFUVzhBUThqL0NkUzl3TWhrdVdqbDlxRi9CZFdrQjB2TWQvbXE4by9wYW9QTTdmTTFFdmYwS05PMGtjT3JRQnBXaFhTaEREZG1zVHNpQWJoY0Q4aXdneFdwMlFwK2ZnUmtoYVBVZDBPZFNwa2F0TmtzeENDVmxnb2J3RFRvNWFnWVNQTS9qTmI5VTh6Tm1OdGZrVk40WG91d3puNmNnYVNNb3RDR3U3UWoxS0dZRnQ2Tk96dVArUExXUHpQbGhOVTdoZW85c3hsekVjSEVhZmgvbVFCcVFnMk1neTI2TTNCY2oxQitoeVh0UU0xUmhMOVJTTlhPTGVjNThQYTdoVnV3bWpPOWEwUnBXNjlTZWlsQXFiYmxINFVPTVd3SDNxWGxJN21kYUxlb3J4aU1aNFBPRXNwSENoM2xkTTQzUUo2SEc0Tm83cEdZamtUdmIwU28xNFBTTDdlQ3RBYVBkQnBVeTBMZENhTVhQVWQ4dXdkNnJvVndueTgrRHR3VHc4M2sxQzZyeUYyUGJmRFVDUlMvdU1IcnZFcWQvSEVhNTltSU1lMWlOUk5CcmFrQnQxc1kyMVNjODQzY3Yrak5yVUdPOHcveTRVbEJPaXpTYzV3UTJjZDN1R29wYzJBUWVLdlQ0K2lSS3pRck0wejdDZnJSRUdXaUxuOGZjYkFiYTkxSTE4ODhRczFUTkZhajJDMXFYaURROHErWmVNTGN6MW1xa3I5TXNyblBHcWpZTFphb09mMlJPQWllenZRRnRGbW9ZbE56QzlrMmNBdWlkenVQMnhkckYrejJNZkZEMmRmU2pyODl4T3RnUHNnNll6eUV2bm1QZHNCOEViOCtwRW1IUEpIK3VQWWI5SGQ5RmF6SVQvUmFHcDNXb21mREhpUDRPMTJmWXp6ZzBscC9KclR5UFc2bUg5bDIwSS9WY2U2Q2tuT0gyeFNoREdma2grdVNGdkV2RTZtTjlnZUQvalRIYVRoZi90Zmx2Y0J1d2FHeG9aVm5Qc1IrNnV0NmVTSHhhbUt0Wmp4VHJqM0ZCbFZYTGZqVjNnVDgrZFF3aE9POGpmaEwrY2ZDL29melF0eXBvamtmTlRFSnFVODFYZytjQ25IMXltRU9aalFnbHJJM29IUTFFblRtVGJWN2RUK253QUZFTzZEOGFCREVGei9pNUhySUQ3QWZOVy9WTTVsUHNSN3l0dk5QR2ZCNm41YlJDbHA3b053NEh0V3ZRTjI3SDdvRU9UbWM1RHZYNUdNU1lpYjhBV1loeGlmVXErZjhWNmFuNk5vbllxMThpZU5lS3hYY2syYS9Zdk9NaHd6aGdIRE9PRzI4YnA0MC9HUzNHdTVJVVJkclNrVzdwazBHWkpOUGt0Zkl6OG5xWkkyK1F2V1UvNnhablBPNmZHVVptSkpreS9IUExJSDhadVdQRkJGRWxxc25YZFg5R1hjeitETjZaVVNmQy94dUxvLzQwNGgramZGMk5JTkdYWEFSZGZoMTJNK3kzTUZ0L0xkcTBoczQybjNySGc2R2hETWxUSXhqWXc1V045cUVkL3Qzb3p4NkcvM1hZMDJBWEtoelVDcm5ZT1pXSTh3dVc4bjVPdnVtTHp6T0oyVW54bUpncytva3A0aHVpVUR3bHZpMkdZQ2ZGbldJOVBYZUpmNlZucFBnVlBYZUxFL1NVOEQ0RmNZL3ppdk9xS0hWKzR2eEVqSEorNnZ4VWxEdi81bXdUOXprTlRvTzQzMmwwR3NWb1o2ZXpVenpnTkRsTm90TDV0Yk5mUE9pY2RFNkpyempOVHJONENIODJteWcvT1NYM2kwUGlLRkUvTFZwRW0yZ3lwT0UyL0VhS2tXRmtHemw4Um9ZeGdONEdHVVZHc1dneFNveHlvOUlZWjB3MEpodFRqUm5HYkdPdU1SODczNVlUbFBlOXhlNTZPMkFjSnNpeHFHZXljWXJNWk9PTWNZNE03N01PUDE3c2UvT0dkNzdSOXgzWS9WWW9CNnVkYitGOWI4WmMzdmxtSE9hOWIveC9GaWVUdklkYS9RNk1ocnc4WXJYZTVackJlZzN3UjFBLzM4TDVaSjFDQzNJYjRLK2h4Ym1OYmRkQnhxRXg0eE9vNTN0akxJRC9FU2pwdS9BbnFCd1VYdFE0YzdpMng5ekZpNkQyRE9iMzZrMnVuYjV2Tm5EcGh2MHk0NWh2bWhPRUhqbWFEVHhQUlRnNG1ZbkhwTVoxZ0F3ekQ3RmY4Y1B0RG1HeS9iTDVNbXllM1hxSmNjd0pUTTM0QlVLOXlSU0kydHZjWjlCZjMwWnJ5UEFuVGQ2enZOUDhLa3ZLZmlvekhPTnQrUHFtK1NUR2Erdy94Ri90TXZCOHlMeVBSMUk2WHFhd0dISzlDY3B0NXEyd24wUmNUNExQSnlFdjI3Y0MvL3ZNQ2JXejVTd2pJUFVNb1ZhUGMyY3FaaFVlUlQrTmI1U1FSZ2o3c3gyNzFYN1hidk9jOEp6MG5QTCtNNVdaM2gvdDdpTXpTWFJnbDlGOTJHVjB2K3NtMXc3akFld2QrclB6Wldlb3pPRmRRektYUzZPOGpYY055WUhZTmZRTjdCcDZDcnVHbnNhdW9mM1lOZlFiN0JyNkxYWU4vUjY3aGs3eXJpRXpnM2NObWIxNTE1QjVJKzhhTWd0NDE1QjVrM0NFU0R4T3Bsa1lpV2ZKYlJYQ1IrMnpqK3BxWDZMWk4vRnNZcXN5UHFGZFc3dUpaRUsrZEYrV3I1Y3ZsL3dGdnY2SnJiNkJ2aUhrSCtZYjZTdGpQTjlvRHVjYkcwVUg0WDBUZkZXZE1IcXY5azJIbVVXbWhzdzhNblcreGI1bCtyM2V0OXEzenJjUi9pMitCbCtqcjhtM2gveTl5Q3pUWnIvdmtPOG91ZW0rRTZERnNJRyswM0REOUZ0OGJXejgwdS8yKy8wcC9neC90ai9IbncrM3IzOUFYRFBJWCtRdjlwZkVtSExmWW4rbGY1eC9vbit5ZjZwL2huKzJmMjQzSERaZGFjMzNML1F2OFMvM3IvU3Y4YS8zYndMT1Z2LzJDRi9NeXc3L0x2OWUvd0hFZTVqU2h1SEgvQ2xoRithVS80ei9uTDg5WUFXOGdXQWdEZUhDaG1YUkpwQVo2Qm5vSGVnVDZFZHVZV0J3WUdoZ1JLQTBVT0diRlJnVEdCK1l4UEVIcGdTbWNWeUJtWUU1ZUs4TkxQQXRDeXdLTEEyc0NLeWkrR2NGMWdZMkVHd1d3V3FWNjZzSmJBNXNVUGtXenI5QUxiazE2cDN6bWZNd1VLdmRiZjd0Z1RjQ1BYMjlBaFdCbmNUTDdzQyt3TUhBa2NEeFFEUGxZeTY1WjMzVmhOTktPa1g2RkJTK2dxRE4xejc2eGdaRHZxeEFhVEE5R0FwbWtla1Z6UFczQnd1Q3ZYeDdBaXVDL1gwaCtrNzRnZVpnS05BbjJEK3dEM2dGd1lHK1BlUU9DWndOREEwT0k1eXh3WkhCTWdyVGgyamF2dXF3Njk4ZUhFM3daWUdLb0FpbWc3OUM0b25jNEZoZm1XOGVmWjhRcktMdmZVaVhoNFY1QzJ3TFZnZW5NKzlFWjViL0RLVlZ6MkFOOFRPUDNEcHlGNU83bVBoY1JqTFVCMFlFVndmWEJVT1VQb1JQL0d6MDlTZTZpNE5iaU9mbVlBUFJESkg4czRLTndTYWtWMjV3ank4VTZLM2grMzFad2YyQndjRkRST2NveVg4aWVEcll3and5NytRcVdRcDhOY0hHeExPRXo3SzArUThrU1pMOU9Nc1dISmJrRHZSTThpZWxKR1VFbXBPeXljM3hGU1RsSi9WTkdrQTR0Y0gwcEVHQnRVbEZ2cktrNGtCRlVvblBUaXBuK1JKYmt5cUpYODVYa2o5d25ON0hxZmZBS3VVbVRhUzRXOGlkckw0elBHbXF3ZzhLN1JiUTl4bjB2WlMrYit1a2x6U2IzUDZYNWliTmpYcWZIMHdNN0tUMHpTWDNJTGxEa2haU3Z2VUp0Q1l0ZVQ4M2FmbkY0YkZMZE9FbXJVeGFvblRzMHR5a05lSDBTMW9mN1NadFN0cWF0TjAvT1drSDZmeTg0RURVUjFUK0VzL1M5MnBPSitXRzMyUGdzN1JibytFWGNJRTNyOU1GUE1xTi9wNjBpOHA4cmVhenRqdWRwTDNkNmZ2Uy9aTjk5U1RIQVRLSC9aUFBpMGRsMDdlRmNPWUc5aVVkU3pyRmVlamIwdWttblVrNjUydE1PaGQyZlFPVlMzWElXQzQzM0k3RWM1UGF5ZTJsWE03WDZIZmtZN1E4Y0NtOTl5ZWRRdnRGYnZmM2tPVTd5dlNWeSs4aGI2eXI0Q3c3aHp1ZlMvU1FiN0V1NHROdUtBZzYrNWd2Q2djM0tUdVVSdTNXV044RTVYYm4vOEw2b2ZLRTBuV2dpb2ROS0ROd0pOUXpXQjNxN1VzTTlRbW1oL3I1Y3YxYkE0TkRoZlJ0Y09Cc2FHaXdLalNDdmxNWkRWV1FmMHh3WUdpOEx6ZXAySmRML3JMUUdNSWRRLzVKdm9KUWI4S1o0ajhRbWhib0dacnBidy9Ob2ZkYS8vYlFndENpME5KZ1kyaUZyeXhVbXRRM05ENDRMTFNLYUsybHVtWkhZRzFvQTVueGdSRkVyekcwT2JRdDlBYjVkeExkM1JSMm4vOU02Q0RGZVNSMFBOUk1MdVZ0cU5WWGtDeVM3ZVRFNEViNlZwMGNDb3hKVHZkdlQ4NEtWQ1QzU3M1TkxranVuend3VU1GbEpubEk4ckRra2NsbHlhT1RLZDJTSnlSWFVkanE1T25KczVKcmt1Y2wxeVV2VGw2RzlwUGJZR28zayt1VFY2T3Q1UFkzM1BZem5YWFVObE83bkx3eGVVdHlRM0pqY2xQeUh2Nld2RC81VVBMUjVCUEpwM1VZSFRhNUpia3RSYWE0dVIrUTR1L2tJUnd1SlNVbEl4SUg5UkhDUEVSNE9hYktmTmhOeVU3SlNjbjN6MGpwbXpJZ1pWQktVWVJIN2FZVXA1U2tsS2RVd2gyWE1qSEN1M1pUSnFkTVRabVJNcHZmVStiNjU2Yk1UMW1Zc2lSbGVjcEs0bk5Ob0NKbGZjcW1TTnlhWnJqOTV6cm8vUTIzVDdHd2xLMkJJN0d3bE8zZGNHWlFXMytRMmlCMzRFZ3dOOUF6Wld2S0RvTDF4TGRkS1h0aER2Z1BkQTJYbE9FVDNFYmlQWjNhV2FydlU3YjYyMU8yaGhaUnZEMVREcWNjNDM1RWRKaGdic3FwbERPQkk1UU81M3p6UW91b2JkaWljS2hzalF2amtUOUQxYnZzandxL1ViMEhSblM2MUQ4Ym1XeXJkMjZUZFR4MlNqdjNYVkt0WUdOZ0ZlZ1FickF4MVpzYVRFMUx6VXp0bVJvTVRxYyt3N3pVM2lrSGZNT1NwQytSK2lGRGtzWnh2eUtZUmZnVnFYMVMrNlVXcGc1T0habzZJclhVWjZkV3BJNUpIWjg2S1hWSzZyVFVtZFJXcndrMHA4NUpyWVZab1BxdHFZdFNsNmF1U0YyVnVqWjFRK3JtMUcycGIvaUxVbmVtN3VhOFROMlhlakQxU09yeDFPYlVzNm10YVlKaDNGOUlzOU1TMDBLQmZXbnBhVmxwdmRKeUdaNVdrTlkvYldEYWtMUmhhU1BUeXRKR3A0MU5YcDAySVdscldsVmFkZHIwMUg3QW1aVld3L1RTNXFYVnBTMU9XNVpXbjdZNmJWM2F4clF0YVEwUjJvMXBUV2w3MHZhbkhVbzdtbllpN1RUVFQydEphMlBUUS9adzkvRDNTT0c0ZTJUMHlPNlIweU9meXlYN1FaZHd1UHowNkp1MnJNZUFIb042RlBVb2hzdW1wRWM1d3psOWVsVDJHSWQzL2o2eHgyUjg1ekJUZTh3QWZIYktnQjV6ZTh5UDBHRFl3aDVMZWl6dnNiTEhtaDY4ZnVFbC9FMTZsdWRNT2g3Z1ZlVHlXYXgwbThienJCMmpPcDRTUnR0aFVZTDFWcnpPOFNXc1pCbkd0bndQL3Z0Z0p3THlGdU9JMCt5M3BnSS9UOEVCZVkwaGRobmI1Z1NFdXBWdDEwbEFjdUZ2UmFobTlqdGIyVzhOd0RxRk93RC9OT2hrS0Rqc1p4RDJjNGozTC9oYXJ1SUY1TmVJdlJEK2YyVy84VWY0NTdQZmZnRmhaNEQrallvcmZEMEczZzVoUmVkZ1VQZ3plS3ZnOVN4eUxmeGpFTXVQRWVNZjRKOEsrR2VBOHp6OHY0WC9iVkQ3SDFBREhmTy80VCtEc09CVHBvSzNFNEEvQ0I3V0lkNGNRSkxoRi9BTFVEZ0Zmd3NvTEFlRnU1RmkzNE1VUDBQc3dKSEFzWDhGK0NUZ3Y0di81NW5BQitkV0J2eWdZNzZNc0U4NGo3SmM0UDg2dGcwL2VMZ2Yvbno0YjRiL0duQmV4MzZ4QS9EaDRQLzNpR3NoZVBBQnZvajlybHRBY3hHa2FJTVVoeEZqYjhDSGc5b3ZBQm1Mc092aEg0R3ZxMEFUb2VRc3dGY3czTXhXYVFYN0piVU9GMTl2Z2Y4Vmpma28vaXBBUTBEdGRZYVkxeUlGSGxGcmVKVW1nLytOQ0RVSG1MdEIrWFZBZm80MVRlTVI3NVBBN0FCOFBDaHNBUC90d0g4VTFISWg5VkNFR2dWcTB4UWQ4RFpYeS80b2x6dEZoLzIyQi9nSEVjdTFTb2Z4OWNjcUZ1QlBnMTJoU2lVb1B3cC9KaVNhcW1pQ3d6dkIxWGEyeGI4akJSSVEreDhWVGNaMG5VU09uMEtNYjRMbmExUmN3THhmYThWeTFobW5CM09JcisreDdlUWdWQU53RGdLeWxTRjJIY283U29HSlVtQ25nN2Rkb0w4TmE3UVhzazJTdWhGakhmVHpIYXdSUUxvQi8xMmt4amEyclJ0aDc0TDlHaWpuUXZaV3BOSTVWZk9vMUFhRk9lQnpPZUNiNEg4QW1EZmc2ODg1ZHZOem9EWUFkTjZDblFmZC9pTzBHcFR0TXNSVnF1b3I0R3hWdFFUQzNvR3ZlMEY1SGlCVElkY1RrUEYzc08rQS9TTGdjNVRVc0xIYTJ2VTg3Sk93aHdMekdiWXB4ZGh1UXBtdGdQMGVjTVlEcHh5UWw5Z1dleUFqMXEzYjFjQnBoZjhGK0g4TWZGVzdmaE9jdjQ0VWVBSnB2b3R0c3dacnozOE0vOHRzRzhXUWR4djc3Zjc0K25QNHE0SHpKRkxtQmxCNERWK2oxckJibjBaY1FjUlZCUzNhcEhTUDg5cmJDM2tVWW9qbkx1UXlTcmNib1N3VjZoQmlSNnNoOTROQ0ZYRDJBZ2UxbWYwS2FpMmxuek9CdVEyNThCbmdKNmxhRWRyWUE1Z0o0T0UyWUtwYVloTnk4N2Z3bDhML0k4UitEanJRcG1weXhKaUlyemEremdMOTE5anY3UVdkQjFmbUNjUU9MVFZTNERjUVZ6RWcxd09DVW1DZ3hYUk5BczFYQWY4UHdNZkQzd1MvYWlWUnBneTBpZWF0OEM5VHJRRFNVSUwrdHlFWDJpOTVNL3crOFB4OWNMVVJvUTRnVkEzOFAwQnQ4SHR1K3lnM0dlZE5wT2Z0OE4rSGV1TWZnZk5aaEFJZHFqMzR2TXlWZ0RSQTZ0bXFSQ01zMmk5cklkTDhBR0taQ0U2Z2FYSXNhcUZmZ3M0ZjRCOEdQNmk1VU9yTkJ4RHFYd0RwUUNqVXJ1WTB3SDhLdUJlMXlrN2dQd0lJNmtEclc4RC9JbUpFZjBEMmdQODAvTk5CWnozbzdJZi9LRUpOd2RjQndFUXJLYUZYY2h3d2I0SXNJY1QxSEhCK0RaeXZBdWRMd0VIclk0R3lSSjFqb0Nkamdwb0JmVEFyNFVlYmJ1NkQveVJTN0hwUVJpbVFTSG1qSi93OXdkdFBZTzhHWlpXU1NITnJKU0NxTG5vVmZ1U3NwVFFOUFFUcEFqV0pXSTRnbHNlQjh5UGdsTUUvR2Y1YndOVVhnSy9xeWNHQVF5NFQrV0tncDJkdEFmeEIrSDhQL3hUNGtlOFN0WUc1R2ZnSEVlKzlpUGRHNEtEMzRsSjlzMzhHNXorRC83L3c5UW40MFJ1MElZV3BwRmdEYXFOQStTL3dxM3ErR09td0E2RlVlVUh2eFVBdnlNb0NQSUJZYm9KL0NUUlovUTJzRUh3S24ySC9oNUFpSWViUHhsTmlodWdudmltK0pmcUxkZlRjS3Q2a3AxRDhRdXdSdDRtOTlIekIrSVl4WFF5U3grUWZ4R0ErRlUzZ25ENnhSQXdqczF5c0ZHdkVlckZKYkJYYnhRNnhpMEljRUlmSmYweWNFbWZFT2RGT21lUTFna2Fha1duME5Ib2JmZWpwWnhRYWc0Mmh4Z2p5bDlKVFlZd3h4cE4vRXBrcHhqUmpwakhIcUtWbmdiSElXR3FzTUZiaFdXdHNNRGJqNFJPVXQrRnRKOHh1d2cwYWE2bjN2Z1Vyemw3Q09yVmMxejl5allvOUJ5L2pYOWxVdlhlUVZ5QU80UDltMW90WVJYSWQ4QlB4OVJrTjRaVStUd0J6aEdzeThFdUVYcXR1bFdQOVJRUCt3azFTTzBWY0cvRm43OGU4MXdxUVovVGFkcXhEQncvMzRTL1pyYkMvano5eXVmanoxbzVWbHQvbmxhMmlBLy9CRW5sdG9QZzllUGhIY3lkQitpRlVEVll4UDJyZFRIWXpROVRKbWVhVERIZmR3aFRNVzJGUFlJZzVUUG5WdjBGQTZySHE4RFhzLzNzTkhLNEhKeFBNSlZ5blllK0MwaG4rTjg0NncrZjk5U1NkeVJHOVJhN0lGMzNFNThSTm9xLzRQR25NTFdJQWFjTlEwb1JpTVVLTUZIZUxlMFNwR0NYS3hYMmtjMVBGTkRGTHpNWWYzMThhZm1qTkNLSTFnbkJZSThlTFNXSUs0WXdSTThVY1VTc1dpRVg0YjcxS3JCVWJZSmFTdlZsc0UyK1F1NWJzTnlqTUFubzRwNDlnOWNoeTdJOUxVMnZBR0dKbXF4MnArUG9TZjVYUHd0OE0vd2JZVzlYK1V3M3ZYTFZTcEZiRnFQVlIzRTdvTlNxRkhFcnRaelRXcVZVclFvUlRpb3B2SWxMcVYvOWYvamZrRXoycnpMNTJGYldwMCsxWmRvMDlqM3JCTmZaaWU1bGRUNzdWOWpwN0k4RTIybHZzQnJ1UituVjc3UDBFMjJNZnNvOVMrM25hYnJIYkhPbTQ3UmJINzZRNEdXUm5FK3cwOWJIenlkL1hHVUJmQmpsRmRyVlQ3SlJRUEZWT09kRm5xazFFSWZJNGxYYWJlaWdVSHFZU2VWcjAwK1NNc3pjNkU0bitaS1pGL25IT1ZLZVkrS2tpcW15WWQvVnN4TlBFRDFHcmMyYllEVTVmK3hCeE1ZdDZBWHNvMUR4bkxzSGQ5bUpudnJPUTVEOE4wMEowampwTGFIdzVpL3l6bkpYT0dxTGFScGgrYmRZVC95MHdHd2wvQzhIWUVIVm5rN1BWYmlTWm01aFhNaHdiR1dlN3M4UFp4WFFqc1RERnNHRWUyT3duVTBPaDJDeW1OTmlyelFIbnNMM01TYkZybkdPVXdxY29KYzhRdlhOT08rSUhEMjRMMGtYSFRjYnRKU24yVStxVHRDUS8rOEtHNWVlUVRVcmVTekkxN21BTS96SEdIU1NlOTdyVDNKbnVudTdlRVE2alREdzR3OXg5M1AyaXVZOUlRWEIzSWVleU11N0I3cUh1RWU1U1NvOVRkcFc3Z25UM2hIdU1lN3g3a251S1UwNmFSUG5tbmtabXBudU91NWJDMXJvWFJQTkhaaEdacFpUL0V1bU9OS2U0ZGRxN1Y3aFh1ZGU2TjNBZTJQVk9CcFdFRnZkbU40MHFuQnk3anVTYTRuN0R2ZE85MjE1TnVoNDIwQWlLYXgvRmVkQjlwSnZjODZoRVNBb1BiWEVmWitOdWRwL2xYSE8zZWdSeUwreW5YSFFXZW14UG9pZmszdWxKOTJTNWozaDZlWExaamFUTEhtZVF1OUJUb1BMVDA1L2lyNGJoTk5KYVIrRUhlb1lRclNLQ0hhVjRUM2lHZVVhU1RZWWtHa0ZjelhLUDhKVFpMWjdSbnJGMnRXY0NTZGhPRlAxVWV1cFJsak04VmZZNlQ3VzkwVFBkTTh0VDQ4ejF6Q05LZlQzOW5XT2VPczlpWjRCbkdhVi9nMmVrVSt5cEp6MC81bG5OV3NqbEg3ZlZidkUwNkp0czkzc09RWGM0VGJYZU9iT3A5RTZNYUQvRjZKN2pPY3FHNkRRNUtZb0NmL09jb0pSYkY2V3BPamRKMDJhdzZTd0g1R2VqVThsejJvTWM5YlI1SmVuTENhOGJvUm1UMHNucmQ0L3dwbmo5M2d4M3FUZWIrYkZQZTNQb3lmZjI5UTV3M1BUMDlRN3k1cEQ4TGQ0aXgrOHRKbE9DbTNESGVhcjQ5bHVDVC9YTzhNNzJ6dlhPOXk3MExxRm51VFBYV3dtOGxTUmZYL2NHN3dEdkdrKzZkNzEzRTJGTDcxYVNzdG5KOEc3Mzd2RHU4alI1OTFLWUE5N0QzbVBNRmRVZ2ZRbnJsUGVNZmRwVGpTL252TzNlYzFTWGV4T0NDV2tKbVhZOXlkR1EwSk5yMjRUZUNYM0k5RXNvVEJoc3IwNFlTckp4elZKbk55YU1TQ2hOcU9CY0pwMWp5WEpRcDFKdDdKUWtqRWtZbnpBcFlVckN0SVNaVGc0dm9VcVlrMUNic01CeEp5eEtXSnF3SXFIV3lVbFk1WjNxM3BDd2xpQWJxTzNZUnM4YkNUdWR2Z203RS9ZbEhFdzRrbkRjWFpyUVROcldoRHEzald1bmhMTUpyZEJ1U3RsRVFibTJsNHlrZHVOb1FyOUUyK0UrMFVDc1RIME5MWDBwN0oyd2M5bTIxcU5WUGcxSUc5dUdoZGE2QWw4WHN1MWFEUDh5NE95RmZ6LzhDNENKZTMvTXRmQXZBdjVrNE13Q3ZFYjFHR0FmQldRRzdINDREYVFWOEFQWWg3TUhuR3pFcXRsSzBOa0d5QjVBWm1BZkMvb3J4bURZWnhGTEVIN3NRVEwvU2Ntb2RqUmhId0trY0ozbXVJek52TExUSG94NER5TGUzWm8rNytCS1F5anMvckxHWXQxcUd1dzJyQXJGbW0reFdJVlNxNHFCV2F2Mlk4TS9GWno0UVhNTjhDZnJzRXdaTzlPc0xlQzVYTzE3QkoyNStIb0FjYTBWOHpHSHlxbHhFUGl6ZUU2ZCtwbnp1VThOL3liVmg5UGNQb3pSTSs5WE9hUlNFaW5RQVBzNDlUZzUvWG4zU3dDY05DdUpRT2NPUUhhelRaU0p2aXpBTHJ0YkFWK0UyVzZjMnlJYjliMkU5VUxmNmVoS0JYeXJ2aVZReWNnNzRpeWtaQ1ZvbmdMT1NNQnZ3bjYydmpxMTY1RnJKZEJHdmdsUjdiRDZGYWpOaGowUm5KelROdE8vUzkzSmlEUVpBY3JqQWY4aEpGSjZOUUZwbXdTL2diVDlMNTBYbGJ5ZVcra2UvTWNnM1Nyd3RsVHBOdTl6b0R4bG1sVTZseG5uS1lRYXhINFBKUEprc08yY1k5dmVETzFLVWZ0VW9XL1FLTHNuK1B3RGVNQnRrdmFQb1J1YnNTdGpIZHRXTGRJcUVYSGxLSjVocHltTlVtVUsvRFFDOGlQWTZGdXIyejlKNjFqMmZwQWlIL0Qrc0crQ25hLzFDckxEbmdPdDJ3dDdHT2p6ZWo2RFJtZWNBa01VSitBWi9YVmpIK2gvQy82WnNETlZMS0M4WE9Hb01nN01KYXJmajY4RktvOWc3d0NINjVTOGJEdjQ2bHFCVlBxOHFtMmdGUzJxYmdFYzZXemh2QU5yQUhKL0tld1RpUEVNY3FjY05KOURqQlhZMzdJQnRoczAxUTY5WEVuakRQbHJhQ0JLbjhSdEtFWTY2R0N2c2hWUWUwRlZ6UU4vTmR0MkNmd1RBVityMGczMkVvN0ZYQUI3YndmV1U3TCttTm1vWjdhM2IyWk9CTi9QTUI0YzFnTXlRZFZGNEh3VzRMZUFINXlhUk9PaU5DRnAxSjlKSXlMRDgrOGV6dlgvSDhkRzFQb2tIaFJHNGhHc3JUUVNtODIraVVjU2o4TTBhOFArczJSYTFidVBNSDIyZ3ZzU3lZUTBYcXZHYmUwU1R2dDk2UnFtNFFpYnFHaEYvQ0xLbjZXTnJkMVExTGV3NmFXL2kwNWE0Tkh1TkRIeUhJbml0VGtPdlhnOGRlVW5iQkl2emtEV1hCV25yMEREKzBmeDFhcStjL3JFOE52RlFNWW9BeGxhbzlKYm13aHZXVHFjclhtd08yV093SFVlZ2dlZC9wRnZ6VjNTTXpFS1ArdzJkN294M3daR3BSbTdRN1E3TERaTWROeDQ3eFhsUnZNdXREc3lUdml6WFdSa2VtVmtSbmZoTTFxbUkrZVJwL1U4YnBjNGtRZFpGM0RET2pzNlNoZkRlWEkrK2J1bVExZjVtK1B6RXVFcFBTb2ZPTDZ4WkNhUXFZcmpWcE9aVG1ZV21Sb3k4OGpVa1ZsTVpsa1hkL3I3dkY4T3Q3NEwzZnJ6eExPNmk2blNlTkZ1WGRUN3VpN3ZZWGRqSXNyZys3cGJ5RFJFdWZNMC9QM2NydUcwRzg1TFh5T1pwcWc2ZExIR2kwN2ZhSGVQbHY5aTNVdEovOVdhN3pDZnl5N0M3Wm9QZTZMNGpIYW42Ky9uYzllZHg3eGYvRldhMy9PNWk3dTR6TS8rQzdpTWQrZ2kzZFVYY1BkRXhYY3BidGZ5MlZWL3d1bTUrRHp5SFUyTUxRL2hQR0wzUktMU1NjWTdIVVd2aFV4Ykl1b0N2OVRmT0d5Tjl0Y3AxKzhtNHllVFFpYURUTFlPUjNUOE9XVHl5ZlR0NU5FL1FOUGUwOG1QZjFCVXZWU253akIvREErNzRJSEMrSXZJRkd1K3AydmUyVkE1OFpmbytNckpWSklaUjJZaW1ja3FqSCtxaHMwZ016dXFmT2w2dVd0OURzTnRiMEdjZWpoYy8zYUJJKzY1aWw0MEQ1SHY4eFZPVEZ0N0FiZHIyM0hlOWlEYWpaTEJ2NURNa3FqMzVXUldrbGtUMVNZZWlTOGIxMEZ4VFozT0c4Njc5WWxLOTluVWF6ZWNkdzFhWDVxMHpwQWUramNwMDYyT0NKczZyUjh0L3Exd3AydFlPTzZxenJqRFlmemJFMVU1M1I5Rko0eXYrZUZ2L2gwYUZvMmphWVBHUEEwN210aFpQeTJMWXhpSDZtai9Ma1VmL0RUcE9IWXBXb0NGOGFuYyt2ZVNPYURUaTNFM3F2aWcyNGMxak5QeldHS2tEK2svUmVZTW1YTmsyanZUUFdBcEUrNnZSdnBmT2ovWkJMeUpzZjNtNlA1eHI4UklQejNpRWp3UUpKTkdKcE5NVHpLOU5id1BtWDZKM2Z2aDhmcmV1czhkS0V5TTZXZkg3VU5IOVhzaVlSSjErYkVUWS92bFIyTGpEQXhPak5zZkNnelZQSThnVXhxVlJneXIwUEtONGRHTVdwdlQ4UURXNCtCY1BQTHp5VDdsZkJhYkVHeTdmc2EyOVY5czI3ZmlqRGJZRnI1YVR3QytobTNudTJ3YnZ3UU9JRzdnT05jQjh3anNLZmc2Q3ZhZjFZbHZiSnVyRU5kRVFCREtMVUY1TU9DbkVYWTlJSFh3NzRMZmo2OHBzRWNEUGdMK2JhQ1pEWnlWc0tzQkIxZldMRUQ2d3o4VjhJUEFyd0VrQTdiaVp6SHNvWkRDRGY5OGhDMERwQkIrQy83bDREd0hkZ1hzSXREY0JKeDlzSEhDbldzNi9KdGhGd1BuUjRpeGltM3ZBMng3Z09PR0xPNnh3SGtZc1F4Q0tBZVFSbndGdm9XME1wVXNUd0d5R2pZNGQrMkEvdzJWcDJvdUR2aWxnQThBNVhHZ05nSDQ0d0YvSFhHNWdQa0kvQjc0WndNL0JKeWZBTklFZnhadzFrTDJyMElUVGdIK0c5ai9GL0NiZ0dNZzFGOEFRUXBZNEZBaURWM0FFWW1DWngzM0dudUVGRUg1VC9LZmhPQTk1QlI2ZzcxZG1QWU9lNGRJc1UvWWZ4U3A5cC9zUDRscjdiL1lmeFdadUpudVU3aVo3ak9lSTU2am9zRHpCODhmeE0zZU5kNDFvbDlDUmNMOTR2TUpEeVE4SUc1SldKZndpaGlROEdyQ3EyTFFSeExIRnluaFo1R3BJY1AzQzllUldVeG1HWmw2TXF2SnJDT3prY3dXL1Qxc0dyVGIyQVhPcG9uTUhqTDd5UnpTTUtaMVZMK2ZJSE9hVEVzWDAzYnBSa295YmhXSDlKTko2VFFzZzh6UUpsdWI4QjJ5ZmNVWEkrdEYxRnFSRVZndk1rbXZGWmxrekNGSWJaY1ZJN1ZZTHpMRzJFd3VyeGZoVlNMVDZOa0htMTNsT3dqN0NJVllSR2E4Y1J4UHMzSFdhRFZhcFpDMlRPUlZOdGozcjNiLzM2WjMvOFBHcVVZNFJUcHl6dmdwcWduUDZiTUJYaVQvS21DTzFxSFVtZUNqWUtzVHcvbThwNENHRHhYNnJIQ0M4SnFENkJQREIrZ1R6QW5TOFZjK2F6VnlQbmdMYkQ2MUpQcDhjSndNYmt6RXFRQ24rVHdMNHhkc0U3ZTRzVk9ka0k0N1NNTzNqRGJCZmdIMnQwWG5MYVB2QVBOZStFR0JUenNnZXh4czNOanBITURYYXRpL0JlUngyRDFZQ2o2RGcreWVzR2ZDQnFhekFYWVYyZzRWMTJDV3hYNmNaMGRoLzlMRjUrUW13UTZ4YmR4ci93NWxuTSs3M0dwTW92TG5sNnNsYWEzOWh2MHpySlBiSlZ5NGQ5S0xleWQ5OWpIN0R5S2RWd0dJVFB1TWZWWmNaNThqbWJJOS8rMDVMbnA2VjN0L0pISVNSaWVNRnIwVE5pWnNGRGNtYkVyWUpIS3ZHTjA4bmxZbmsvZytKa1FtUFE0ODZ3SmhlbDBFM1lzMXVZSnZMOC9EeXB6TCsvQTZIeXBUdUM4WGJVcmtidE0zeUhacENKK0hnalB1MWVuMnh0MDRpd3Bua1JnNExVdk9CaVJSOUJGZVVTbVdVNDY1ekIrWS95Q0UrVXZ6bCtUZlp4NFV0bm5NUENaODVpbnpiZUVuRE1mOGp2a2R3bGhxRWcvbVMrWnVJYzA5NWg1UllPNDE5NHFiekxmTS94SjllZFpYM0NLQ1Fsb3JoVW5Hc3RZSUY3azJsejRxZTRMZWhiVTE0cnExOFFDMlhUaUVLNndkWW9BMVA4NnpNTTZ6Sk02elBNNnpNczZ6NWlLZjlYR2VUWEdlZUR4dnBXYzc3TTVuUjV4blYrVHA5Tys5aU9jQVBZZTdQTWVzVTNGZ3g3cnhkb2FlYzNHZTl1NlB5K3IreEUzbmVFKzhQTnJWL1hGNXV6K2NYcTVnbC9UcnpNR0kzNVhteWlUVDA5V2JuajZ1M29ERzQyVVQwZHprNnVjcXBHZXdhNmhyQkQybGNaNEtpcmZDTlliVHlUV2V6Q1RYbExnNkZPZUpLd2RTUE96cXAwdWF1S2E1cHNYVm9hNzBaN3BteHNXN1NMMm5sT3IrekluejFIWjVKdEVUSjJ5OC9LV2M2UGJFS3pPdUJhNUYzWjZsY1o0VnJsVXh6MXA2TnNTQmJYWnRpM25lY0wwUmp6OXFPU2R4ZmRreEZqYldPTFJqWFVNSC91ZDMvRDNzTnpyL0tydEc2ei9xSXJ6aXdCb0FXLzJsVlArNnNjWkIvWjIyOEJkWHJhZXdjS3E4cTBUWitQYzdSUDF4eFQvUERQdzduWUQvNnFqWFhSdGhUd2NGckxDd2ZKMS9odFcvZmJVT1F2M3RWMzlpNVR6WS93SmIvY0ZlamJBSnNQSG4wNnlIcmY3OVhnODRWb1ZRcnduU2dSLzhhN1VtNmE4N3FOMDRvLzRucXorOW9IemN6T1ZSbCttRTE0bkl1ODNQa2YwYmswOXIzdzM0YnYxWHM2ZHdVMTk4S3JVaUpsb1lRUzNNYjRqU01XcGJYQVMxdXJRK3YwSHI4emExVGo1aEcwVGRHTlBOR01aNEljbVlaQ3d5THVyUk9NWVUralpOaExCYVdqMUR5YWoxMG4wdTZsSDRGV1NQMFJEVlo1NkVGZGVUMEh2dXhPWitkR2U0T2ZwOURwNWFNZ3YwbXV5dTM3bTN2UWo5YmNaY1FYM3Q4TE9Cek9hbzkyMVIvbmp2Q2wvMTAvZVJmWkNlSXhUSGNYQ2xiTzZWbjFXOWNuSXBmdForZlp2NW9LaStSQytDejhMS2svR0E5MFlaZ041MFlPV1BHSWcvMmdNQk9jTCtEcFFCVlpiRVoyR1hLR3JBRkx6K2hPREtQeFEwMFZkSEwvU3pzTlV0OTcxNXBYUEhGbjNqUGE5NkhxalhQaDlFakFmaFB3YWJOTEpqRi9kd09yQUdxUU9yakFSV2Q5QTMvSE9IdlFZMi9xcUxMTUdVVGZPQStWdVRhVW4yQ1pQQ3BNTVlmSzRSWVdhU3RtWnlqY0IzeDNkTTVILzZIYlh0OTVEOVhlNDFrWDhZaFRLdzFqdGRTenFFYk1QbDhGLzd4TFJFNmtzQ0l4TllDdVBMVWQ4SU4vaGdOeHE4TzhEd2p1NUNJeHJqZG1BOGNBR01vY0I0OEFKODNCSExSK0t6d09EYm1ESzA0UlBmNGtrVGl6TThMcmV4T01WeCtZM0Z1VE11eDFrYUQ3ZEVpUkZ4ZUpZVVhsRlNjdDBWaCtldU9DUGo4TndWNSs0NFBIZkZLWW5Ec3lRTXhiWEN1U2R1T3FjaE55U1pUR0NWeGszcGJHQ3lMcVlCNjk0dXRLNlBpMVhXQlNzbkx0YW9MbGk5NDJLVmQ4R2FDd2t6TmYrRzV2Nit1R21lcHFrWm1sWkZITzY3WTkwZmgvdnVXS1BqY044ZDY0RTQzSnRJYzhXL3lxSEtPTnliU0FGRlRXRTlHSWY3N2xoajRuRGZIZXNyY2JqdmpqVTJEdmU4azRSTHVVa21IWFdWRUEvRjFZcnVlT1BpNmtWM3ZJZmpha1ozdlBGeGRTTmRZOG9JM2lOeDg3MDczb1M0T2Q4ZDc5RzRlZDhkYjJMYzNFK1BZQm9hNzdHNE9kc2RiMUxjdk8yTzk5VzR1ZHNkcnlvT2Y1Wk9YNFdwOU9CcmNmaUxoemM1RG4veDhMNGVoNzk0ZUZPNjhSZmUyZFJQRkRKRWNqMGFrQS9LaCtVamNxTDhxcHpwMmU2dDlqN2huZXA5MGp2Tit3M3ZkTzlUb0pRakFtVHlxUWN3Z0hwL3ZPT3BtT3JPY2lwNTQ4aWVTSnpybm9meE05amJFZVBOOExlejNWSE81Kzhhci9Ic2hyejV2VitSSCt1TVZYK1Q1MFBKWGl5K3h5dFFBWDlNcVA1bWI1S3NYTlJ4ejFKK1dkNHBoTHhMM2lVODNxZTkzeFJlN3l2ZVY2aGZLWVVqeStVVDlHMjZuQzJ5NURQeWgrSUc5eTczTGpFRXN4aGZKcG1lRWtXSmYwNXNvUmFJNTEyM0NobGwrTjNvWWhodVJobUdsY2hhdVVBdWtrdmxDcmxLcnBVYjVHYTVUYjRoZDhyZGNwODhLSS9ROStPeW1iNmZsYTJrTXJhWmFJYk1kRE5Md2MxZVlkZk0xZDhMelA3bVFIT0lPY3djYVphWm84Mng1Z1N6eXF6dWhsOW1UamRubVRYbVBMUE9YR3d1aThEcnpkWG1Pbk9qWEdGdW9iY0d1Y0JzTkp2TVBlWis4NUI1MUR4aG5qWmJ6RFpMV203TGI2VllHVmEybFdOdXNmTDFlMTlyZ0RYSUtyS0tyUktyWEs2eUtydTZFZjdDN2xockhQTm5UVlJ1T1A0SXZmTzRIemJkenA5ZTF1VG85T3FhUHQzUzVTTFRJOHhIbU45d2ZHRTZZZnFSOUpwcXpaRE4xbXhyTG1hMmxtQ3N6bk5ONGZkTjFsYXp3TnFPK2FCTjF0NEkvQUJtYytaYnA2d2NucitKVGhlcnZUTmR3bnlGUzVuYWU2Zlg5ZDZCa3ZJSCtNOUdsU1pWQzd3T1AxWVNVMythYll4OTBWdldZMHFKTmJ2R1JNQ3hndC9BTGdLOUxoOGxWUHczYkl3eU8xQzZqVHNCUWE5ZGp5SU93NDlSdFhFZmJJd3lCY2E0VkdlSThJamNxSVp0QTQ1VitQeDNoeUFZWlJwWVo2elc5SXNuRVFyamxuWlFibGMwc2NOQllQeXFlbW9kLzRhd1dFOXNZQlNoMSs3L0JIN0VLOVM2YW96WDlmNkVweEgyWDBINWQ3QXh3bjd2N3M1NnpDZ0g1akhZMzBPS29ZN1NJK2s1c0djRGpoU1dvd0JCSDlQSUF3UzJnZEc1QWNvQ0s4NzF5RjdWbkxmQ1JxMW9ZQVJ2UEl5dldKMXZZQytFVURzK044REdPbSsxWXR2QXFtNjFsOE44Q0YreGMwT3RSRmZycHcwMTZ2c1ZJTy9DaGl5R21rV0E1cGhxL3dObUxLVFNIT1M3Z1RFaGFtYm9EZG9RTlE1OG5HY0NZbXBtcnBQNWoxQ2l2TnV6MHZNanp6clBxNTVObnA5NE5udisxYlBWdThHN1VkTklpZW85ODU4UVNWVHV1TWh3UGVPRU0yVHhod285N0lLaHd5M25ZRFV5a3lNdXNkWGgrRlpUbXhsOW9qYmJUZVR1SVJpZkI5MGtqcEx2a0Q0VnVvbWVCdEVtR25BMk5EMkV4K2RHNzZmdkRhVGJiR0twZGRKcUFoMUZSZE1RalpIVHBkMVVMbGNqbElxM2pXTG9LMmk4VGxqaEdZVFRVV1VIdXhjb3A5bitDMnpzWGhEWUlTQ2dWeDJvaXdUbXE0VFNWZXhnRWRqTFFWeXdqVGt0OFg5aFF6OXBMTTMyRk5qUVcvRWRVSU5taWwvQy9uNk0xcW1lMXhNNkQ5Z3VqOHJaREl3TU83OUw0WlozU3lweCtJdGwySnZzVFVLNm05eE53cVI4ZmwxWWxMY2JSRS92UnNyaHp5VCtOZkdjNkJWRE0wMlBOa291SzlWMDZ0Tms0U205ckhSN0VZVmNQZExtR1RyVzdidUVRSWxNT0crS1pXdjg2TzlzLzBOVUdwUlFHcFRINEgxd1hxTnBYNWlEMml2SVFXMDNuWXFPL3huOWxYdmcrVFNPUzd0Z21uN1lmT00rYmg5NnhrVTR1VEx4NUFxWEtNQXpYcy9aWEttWVZMa3B1U0k2bzBwUEtabUtLMFk5QytjelhIN3FHWlFEMmZTVWtSbDlCZWxuNDJhSHkwOC9VOWpVZXZKVFRxYnlDc1J3SlRTbjlvcHFUdTBWMVp6YUs2dzV0VmRZYzJxdnVPYlV4bW4vUHl6bForSzIvNWVMYXRmMi8zTFI1UlFZcld2Mkp5TTB2ZksrU0MvMU91cWx6aGM1TkJwZklncG92UDFEY1p2N1A5My9LYjZJZnV0ZzlGdS9oSDdyRVBSYnVVY2RjRGQ1Vm5uK3liUGFzOGJ6ejU0ZmUxN0dpUVQvNXRubWVSMDhSS2RVblU2cEp6K0VSQjhWeCtGY1dLaHo0V3JnbWZzamZhbEhrcVk1dmxBZjcySnBxdDdIeEVqdjQ4bkwzaWU0V0U3Qy9aTkprZjdKeDhjTGw2WHNMbVZKbGJWTEt4SGxsNkZFWEZxOFliMnV1QXg2ZmVrUzk4WmYxNjZwRm03akwwMkdNWkcyOU1uTDFNZTQyUGpEcmVIWVNHdjRVWFB3Zm1sWit6R25aZTNIbnBhMWw1U1dkWkZXL09wcG14WkdlZ2hYQTgvaGZGNkVQdVRWd2pXM2ZoT2p4dDRmZCtzM0tXcDAvdkh4a2srOTliNzBWSkdab0dkTFB6NXV1UHlXWDVieSswRmEwb3JMVWdvdkxlWndXUnA5V2NyU3BjYzlWbzhETXk1amZmM0FSWE9neG9yak1GYXNqR2pmUjh0RGxuQW9aQzhxaTcxd1VtZld4OElGYStDWXFEbUZqNmNmTkRacVZ1Q2o1aUE4YnhEV2hvK0RoeXVUQzdVZmV5N1VmZ0p5NGVKNFVIUDA0WldQMGIzaGV3VC9tUnRFcGJWYTdDWi9EM2tQVWZ2SEtIcHJpZUo2b3JuQjh3cm8vaFNVR3pSdDV2NGkvdUo1WC9XK0trYWdiM0dYNklFMTFsaG5yZDJ1eHRhdXBWMlRqSXo2SGgzTzFTWHNQZFkwYTZZMWgweXR0Y0JhWkMyMVZsaXJ5S3kxTmxpYnJXM1dHOVpPTXJ2cHl6N3JvSFhFT2s2bTJUcHJ0YnFFeTNZbGtnbTUwbDFacmw2dVhGY0JtZjZ1Z2E0aDFrSFhNTmRJTW1VYWN6UmhqdGFZWStsTElwbVFhNEtyS2phY3E5bzEzVFdMVEkxcm5xdk9XdXBhYk5XNkZydVdNUyt1ZW9wcnRXdWRhNk5yaTZ2QjFlaHFJaXBOb0xLSGFJWmpZSnI3WFlkY1I4bWNjSjJtOXhieXRia08yUkpVR3FOaTMyTzdyWm11UkRJaDIyK24yQmwydHAxREp0L3Vhdyt3QjlsRmRqR1pFbGQvdTl3MTFxNmt0MHA2NHhoaTN3U0ZHVWRtSXN0blQ3YW4yalBzcWRaTWU3WTkxNTV2TDdTWGtGbU9ieXZ0TmE1RU1pRjdQV251Vmp1YjNyTHBiYnU5NDBKdnNla1MrMmJ2Q3FlTHZkYyswT1V0Vmo3bTViQjl6RDRGWHM2QXMzUDJjcnZkc1M3MDdXSTB4UEYrS0EyNVBEb1Jxd1VYeXZlTHora1BtTGRPMEVsek1wMmVUbStXd2VuajlITUtuWDdXV21ld005UVo0WlE2RlU2cGE1a3p4aG52VEhLbU9OT2NLWGFKTTlPMXg2RjBkbXJ0aGM0Q1o1R3pORllMbkJXdWtVNHRtVlhPV21lRE5jM1o3R3dqOHdaeTVhQ3owOWxOWnA5S2VlZWdjNFRNY2VhTTBxekphU1p6VnFVWndWdmR3bTJyY3VST2RJNlFPWTUwbWV3T3VkUEpaTGw3a1h3cjNibjBMZGM1emhKUkNrNTNGNURwN3g3b0h1SWU1aDVwSFhlUGRIYTZ5OXlqWFEzdXNlNEo3ckVxMzkxVjdtcFhJcG1RZTdvcnl6M0xYZU9lNTY1UjZTSmkvdmlyRlNrbVZoT1phazBPVnFHb0ZUdDZQUUQrNXFzelBkVmFGT01hMkdvRml6cVBEMnVCNU4vQi96K3cxVW9BckNKUTY1Uk1kZjZtV2tFRUhQRm4yRmhqb000Y05ISG1vNmtvcXpWRjN3QU85dE9vTlU0R0tCallsMk5nOVk3eGFkaHFKYUZhVWJNU2ZyV1dDZXNXakJ0aHE1WGdXTU9nMWxPWm53TW1Ua3dYV0x2SXUwM0p4dW1RYWwxTkIxWkdtV3F2REZKREltekhmeUFVZHVTbzlVSnlKTUtDcHBnUFA5WWdTZXp3Tkw0QTI0T3ZMd0d1VnZ2Y0JRaFdVT2hWV05qYnBGWlR5RUxFanRVUjZ0UlhRNjBGd3Q0bXRkWkNuNnY0VGVBRDAxQ2NRQ0pUblo2cDhoMnJNdFNhTWJVblNaMzRidUFzUzlFQkNsalhZWUcraWIxSytzUlZyT2t5dmdSYnJVTlRxN2x3OHFPUnB0TnFCMUptUGxKbUc5L2NnYkNmQVUxb1VZZlN0M3lkeTR5cFZwR3BOVmYzd3NhWmxmSlhPdC9Ya0kzOVVtcTFOZWtrM3kvd0JDQy9Ca1N0MzNkMDN2Rlh0ZklOYTdRTXRjUDJKcDFXSzhKN3N3VFdkSFZBZjlUK01QT0xmT1o5aDlxUkFwMVI2MUxNcnlBc3pzazFzT0xMNUlWY2hrdnRJY09hRnJXTHk4SXFNa3VkdzR2VFAxMDRJOUo2QlBaWEVSYXJyU3kxSDB1ZHdxbDJnNmtjeHpvdXRjOU1uY3VKUWh2ZU1WWUd5Q3V3aTJFanJZUXFOWWR4RDc1YTE0Y1RLcW4wc2J6L0NCeWNpRXBsalNBRzlFbzhwM09XY1hqMWw5b1JrUkhSYXlHbVJYcCtsN1lDeXFSKzJVODlEYnBQT1ZpbzFSZENmT09TS1VtbXBPbE1BMy9ESXBRK3lGelRCNDk5dWxEci9vcy9wdmpUbzFLUmM2VzB5L2VSSHpwMTRsRXR1UXhTeDZNYkV1SGRSTitJZkNFODcvUDYrekJJVS9LaFl1MU90VmhMVTNxWjZaNVBtb1ZYUkpxRlYwaWFoU0s4MTJ0MFJKN3A0bkw5WFE3blB2L2JORVJmb2hqK3V6bjlmZjV1ZnZpUW5Qb3MxeEJkcnoxMXlTWFI4THdpMU02ZmNxeFlxWW1pNUNVT09OWHZvVEdxVDliTGVuMldSZ0E1RUVRT0pDRUhRbGhoV3BCNEp2R011Qms1ME84RGNxSjJnVlJnbm1MdXg4eUxGR1ZJM1RrZk14OHFkOUkrUWJtVC9vbklIYlVUY2xpRUQxVWZmL0EwcmtRSm1IZlo1UG93L0tpVUhvTnlNUDhUd1ZHNEZmNXdkVTI0ZGJsODFCYnEzRk1yOFlzMXZSbmlnL1h3d3FuUE0rYnB1SEZ0Zm9UaTVVajlEOHFSQzNkNVpkREROM290K0VUd1pHUDNYQ1llUGtXcTdoUEJsZG8zeitYWTBMMjdwejhRdlkvaS95M3Z5Y3hDNjcrSVRGa010N3l6WTZTODV4UElOZTl2NWI1WmcrQ1RER1ozU2VNclBYcjRhUElsS3lLajhUY3BvWVcvc3huUXVlM280L3d0NW1LbmhMd1diczdmWkQ3MnhHNHc3cm04SVhobldNM2ZaRTd5SGh2K2E3ZFQ4QjBrODg1VFUvNXQ1R2p2S0dtTnYybFpYU0tYSGw0anlEMnRKdlMyL3Baek5scFczdWsyLzI4NmIvUHB5U0xldU1lNkM3TWJDLzZHNWVWNmlYdXVmTVpKSDcwVzcra0x6dU5jYXYvMll1ckpYRkVnK0xRc1B0bGpnSjdyT2o4WEt2MnZGRGVzNFpNRS82MHlvOVlFbm8rYkQ3NEs0MHFrWTBHRWQzbFZjVzVoMVdNKzViOGhsaEw5OE5ySHF5UFZPemszbzladFhoM3AzbytlUGpoSFpobTk5eE1UOVlxN3F5UGwrV1FjM3NWVlQvNUNraUx6b21xT1QxWU9GRVpKSWE5S0dWeGlJRDE5U0h2NEQrVktpbUhLKzJqUkp6TW5vbVV3NmUxcWxNSkY3ZWdnYWdmNjQxL1JLb0lNRXRWNnAvL1ZKQWZQMWpEMUNzeldsSGJwZ1gyUU9DOTI1ZW1WaUxsV1hQeDRzWS91amZYVzZ6MmZ2aXo5bm91Vi9zcnlVSHVST1pDQmY1NExNQmRTSm1yRmg1MGJ1TkpwbGgzaFdGNEYvSVpuWHpoditZUzM4aTZqOVU5aUNuZnlhMkl0OUx4UGZCcnpMb1lzakpyNVh3L3ZacGovQ2VmNWsxUHVhcSt5Y2xkNzFaVzcycXV1M05WZWhlWHVZbE9aNTlmNEhPOGxtQXNaUTV4ZnJobW5LMTNMNVVieEx2K1g4NCtFY3pVL09VR29HUWMrSjJ2UlZjSzd4Rm9BWHRGbTRzeVk4TC9qajJKSDJmK1dzbytlODg3WmRLV3Q4aXJTMWF1N25LblZKTHpHOWNPc0p1RXd6NGhMV3hQQy9iSExzU2JrNHVNT3IreVlLejZPbFIyWGtrWlpFVTZOVHpDZjBhc3N1QWN6NXhPY29wMThmaHhySlM0bFRUdFhQTXdUSDhlS2gwdEoxZkNmL0RyeGNhNWJ1SlRVN1IzRnMzRVZjQnk3aG9EYjgvbFhRU3BIYy94eHJnUzRsSFNPL3ArL1NIeWMvL012bG12ZVdaK1BscFQ3RzM1OU52YS94SjZPN1hrTksxQXYrUTRHM3FQMkFVeUpNY3dZYVpRWm80Mnh4Z1NqeXFnMnBodXpqQnBqbmxGbkxJYWZ6VEo2cnpkV0crdU1qY1lXbzBIREc0MG1ZNCt4M3ppRTk2TmtUaGlualJhalRVcnBsbjV5VTJTR3pKWTU1T2JMdnNZc09hRFRnQjRaT2Nob1lNUGhnUmRsM3BlM0tMNUFnM2tLOHhQbUpRNGZvTUYwV1I3Q0lmeVI0S3RJRnNzU1N2ZEtPWTdjaVhLeW5DcG55Tm53ejVYejVVSTUwUmdybDRSNVlWcEM3L2ZWTzMyeHAxUHRLSlhxRG9Gdnc2OXdzQitYZElYdFI0R1AvWm9HOXFycTNhdlk4V2xndDY0NlMxN3QwRFYzd285VCthWGFPNHRiQytRdjhGWHR4VlM3SkNjRDh6YllNd0RCalFRUys0OHQ5ZlVkUUxDdnRPUDc4S3V6OEhHWG5zUjU1Q1oybEpySmdJQkRFenRvSmM0dmw5aTdMTEZUV2VLc2NmTzc4TCtIV0hCcm9QVXB3UDhQL09vc2ZPdzlOYkVMMDhRdVcxUGhnemZ6cDdDeFU5YmdXd1BENTNXRTkrVE5GSjBuekV0NXR6ZDhDbjEyQk9PYlpMdmtNRG1jY3ZKTzd5dGQ4TElpZUp4dkZ1WDM3WEtvdkN1Q3BXN2s0N09qK0M5Ui9IUDRGU2J2aSs1SGhuTjZzRGI4UGxTYkVkcVVDblZMRjYrRU1UcVE2dXJ1QVVQdGlNYitXN0VORUdpUXVtbFI2UlJ4azB1MTgxREk3VHR2ZmNHMXhmbHZjK0VjcFhwUEd6UEtIemF5eTNmRzk0dnBsRVkxMU9JcXQwNjdpN3U0L0gwWnVmWDZQZXl1am5MNU81K3J6KzRXY2h2SWJZeTRZVHd0YzhkVXBBTDJEYmRESDhRUG9UbTRIME5peDNBSGJyb3dzTmRXMy9DQW5lTHFyajBUZTVRN3NHOVlIdFBweVBjZ0RjTVlobFBxRHRJUUhqK2xrVi9wd0IxaG5aRjNlZUxkV1BBS3BUTHZPSzZDTWJSSm85Wm53a1daS2xFTlNhY2p6ZW9vL1phUnZ6NXk0MEFWcFFZYnhtMUVYMGVsQnZheXQrUDJ3SGFVOGZkUWp0cHhuODk3S0hIdnFSczZBWDhQSmJRZHU0YmV3eDc2OTNCTFJqdjIzTCtuMGhicCtSN3U3M3dQTjN1MGJ4SHhicUQ3VnFRbHZkQXRFQVpyZHRTZGROOFNGNzczd1pEVFAxQ29wNFM2djBpS0l2ekx2K0RkRXVmOXhuVUwzNGN5S2E0eHVzR21VSWpvMjVuWThQMU1VOFVNOHM4bTZGenFMUzNFZHpaTHhQTElqWkFxQjNIM1MvdXJzS0d4N2RnajFvNWFyaDFuTUxSZkN4djFhanZPRldoSExkM2VGelpPTzNnUGU5UGJjWjlEKzkyd2NkdE0remdSZlJOZmZ4M3piS1RabDk4bm5TVFZKcThKdFdNcEgvZFJqbzJFUDEvOVoxQmY2dEozV0t0NDRuTjV4MFZ5MlRYMHR4RjYySWNLUGZ4RGhTNytVS0h2L0ZDaDc3cm8wQ2xpQU1wYlorajNEMGN4ZUYrSkUvY2N4RjMwQVRsWG9XLy9VS0dIWG9MY3VWRnl6N21nUm5lR1kreVFDUGNUdUY4ZjZ0YXZqejM3cXJOM3p5dHVLOFdxU3doemNYZ2gxRVI4VW9UQXVSMjhCNWpyZTk1NXh5ZW9MQ1d6Z3N3cU1tczFqUDE4bXN4bWJUamNOcUkwZzBxZHFyTm1vTFphS2RhSTllUmJJemFKcmZSczUvTkYxSDdhanJkaHI0NnF6WENXaWNBNU5BTDNJS25UUlBTWks2akhPbkFiVXNlZllLTVByRzYvZlE4OTFYYTAwZTJiWUtQMzI0NWVhenZ1eG0zSHFSN3F0cWgyOUlmYmNlcE1PL3JWN1YrSC9UTHNQTkhaWnZGTWtUckpyVVpjanQxKzZnYWpoMFg0WnRKeXpMeFdYcUVZZUhWMmhURDFIdHNyRTRmNk8yUGhQNDNhdFhtNVkySDlWLzBIbkhjZzc1V2NLNGFIZHpzSkhxRUt2clBZRzlZa2RZNFF2WnNkeS9ndVF4b0RQS0RleGZpT1haRjNOKzR6N255VEVWd3BnaWpsV2RUQ3N1RjdpMmNsdWtERDFWcjFYcHVJdnEweFVUanZubXNiMHgzYXVsNk1qd090alFmOTY1RjQwSmJEM2FERWRYdjdGWUdRYk85T2ppUGJobmljdlRzdkh2VGMwWXVVclh2c2pKY1NOL1RTZU5DL3JJc0hQYnYyNG1KNkp6MWU2SGVXeDQwL3J2d3QzZk9XMHE5dFNweVV5b3liZnZWaWZMdm94c0dtdUttNjhTUFVnbzhYUXRLMlpjVkxnN2FWY2N2UzVyajVHQzhWZXdxK21XcldlVnJxUyt0MTBnaGRCcWtlNmpUOGJuUXhVcnNseG5IY0JZK2I0R1dpRE1sMG1TVjd5VnpqdUN5US9lVkFPWVJHaUNObG1SeXRJQm8rRnZBSnNrcFdFMWV6WkkyY0ordms0aGljWlZTdnJwYnI1RWE1UlVNYVpLTnNrbnZrZm5sSUhwVW41R25aSXR0TWFicE52NWxpWnBqWjlPU1krV1pmYzRBNXlDd3lpOGxmWXBhYmxlYTRhRnZIQzl1Y2FFNldpNVd0Nk91dzNleExsYlM3ak9aVWMwWll4aGk1b2lTNnNDd3FGczJEU2plRVVuUzBqTFBOdWVTZmJ5NDBsNWpMelpYMHJ2eHJ6UFhtSm5PcnVkM2NvU0c3ekwzbUFmTXd4WFNzdTBRcXhraTdnNU83MUVsNkVxTmlpWnNyMVEyNXhoL2h4MWxuQmtiWHhuVnNtejBCVjZmazRVNWVxYzcxNmdFSVRtOHoxQnljdXNYeXI3Q0JvODU4TTM0TFczMVY1OExodERlSmZvL3hGdXl2QWFKdXcwVGZ5L2dCTURFbkdIMXJwNzdSVXAzazludUVVbmRscWpQOWNNdWtWRE9KQ0tYT2Y1TTRQVUtpbDJaZ2pxLzdUWjF5Qld5TU9kVnNvemtBTnM0RE5IRkNobFJucHVHTVFSTjNsY3IvaEgwL0lPZ0xxalBXVEp5QUlYOERHek9lVXMxNG9oOHBINFQvRlB4cWJoVDNmcHJxOUR6TUh1cXo4akFxTnRXcGcrb2tRTnhrS3RGZk56SGZZYXE1U0hYeUc4YlBKcmhTTTVqbUMvaTZWZGMwNnB3aTlaZUE1eE12ZFFlZjZtZXZqYnFCY2pWdWpWUzNUTzdSOTAveURaUW55T2FiSTl0dzc2UmZiTkgzUnRLREd5Z1A4YzJTQk1QVGpWb25MYWJEVkNJMDlIMlRiYUlKdDFEbUczM0pEREFHR1VYa0sxWlVqSXl3M3B2cUZMeDFuU21vNTZxUkl1cmNTZk5YblRxcVRnOVU4OU5LLzlSWmpUb1BBREVuZHVxUWlUUHlMSng2YVNFblROeFRheVhCL3liOE9KdFB6UTNyRS9vd2EyVmg1dE42V3VmTjVia1g5SlA5aE1kVHhtV1YrWC92UW1YNzB1NUNEYWQrbjhoSkx6eS9VQ0Vma0pYeUsvSVJhdmVlbGJYeU9ma2RXWmY0WjhpUVRTR3ljWDk3RGoxOUkvNittR2VCakhvOFBDcEt1c2RpWWt6RFBDYXZHUW1mNG5ocGVVNzFubEVDWTVBNS8xKzhzSi8vbVBIN01xTWVlT3BmM21MQStZOWVJOEg0UGZ4SDc2aHhBdC9DZjlyd0w4MllwZjdzeVpTd0FiMWwraDhjR3c3UGVCa1VKdXhlaUxkNGZERXN6RTgwTDEzNXlEYm15Unorb3ljSHlFSDYzeDN6VlM0ckVXYzRybWg1VDh0eENJdC9lMFkxL3U3TmxlNG8zZHdoK0l6ZStkQlE5bC9EZmlNRWZ6WGdqMk9HNUgvZy93dmc2b3pWNmZBbndMOEUvaHZoWHdiOGR2YkhuTjU2RFBENXdQUUE4aElnaHdBWkRNaFIrSWZDM3dSL0gvam5BZk1rL0Izd0g4VFhMd0d5R0pBV3hQZ0grTytGblFiNzE4Qng0TjhCLzAzd253SCtwOEhoR3NCL0NacHJrUUlDa0Z1QjJhcFBuMlgvVThBcEJPUTVRR0phVjV3TitPRmJWOVVhY2gzVmlCYVQyOVU5bEZ1bnlWNU5rbTZrbXFoTnRIQjlSbS9xVVhoSHFSVjA2MW91bGxvbnJUMmdvNmhvR29aZjFXbWd2bCsxcitJRXRhd0RxTVliUkhWZGtWRnNkUFlxMFlMcCs4MXhWck02azFuMWd2UzV5dXI4WkhWYXIvcHJwVnBqekZEcWs0M1ZhY2I0ZjZ6T0ZsWW5DYXRla0hoVXg3SUNZVmVFVDZOVkorV3EwM0hWaWJqNm5Oc0RtcE1WNEdRRktLK0k1RkNCS0JTZEoxT2V2ODVqNnIxZzNyZmVrK2dERzZ1aVVtT0xUcE1WWGRzNXp5dVhvWjNyMUltajlCN1dpZFhJTlc1N0pPV2ttL015U2ljYTZGbE5NRHh4ZGVJbytsMm53MVRDTkhRYmw2OTFvaS8zdGtnbkJpbGRNTXFOU21PY01iR0xUalIxMDRtQzk5Y0pmVHAyZDUwNEVWOHoxTW5SNmlRMmRYYXpPcU5abjhWOFB2M0lpZElTNUpEV0ZaeGZyTTRzam0wZGNjcmRoMjRkdFZ4TFlmOGtTdXF3bHZBK3hXSnhNYnNzTHNRTm53cGQ4WUhOKzB1QlhGTW5vUnNOVWJsV0VWWEd3bU9NdXk5NVRjLzVhOEdHeUtqZ0tQemNwMnZvSEdGMDZpay82TlZ4TGRpaXhoeW8wV0twZGRKaU9rd2xRb042ZG4zRklTb0JEWkd4eFNEbytpRFdka1hGeUlta2lCcGxZbTdmd0xvT0UyZHlTNXc2THpIcWxmaHJJRU5SNVFIbmFrdDEyanIrSFJpZ0lESFBMN0VHUUkzMmhCcXZZMVJ0WWcyQWlWVVVwdEpqTlc2NUdYNzhiNVVZMTVyNDY2cEdIUkxqRURXK3RQQm4xc1FJNUlybTFoNXlMMWR1UmRPS2sxdmNOOWU1aGRxSkROZE5BN2gyNnBwYlpqbHN6TDNKcjNhbWxIa1BJRGQzMWl0bUtmeVlXNURvZ2N1OW5ia2xyd2VPR3EyLzI1bmZPcmN3RTJLcU1SOTY5U2I2d0taYU0vUWliS3p0TURHZllLSHRNUEh2eHdLZkZucjFac3NWejZjR2pISDI2eGFDZXhnTjBTUDNTRTdSRXpWeXoxQlBOMnFkdEU3by9JN1FRRDd0eDlncFIrZFUzL0M0bmZvVUtwK3lJL21FdWtXdnJrSzZtMWlyWmFKbGxXcDF6RTg2YXlRejJKbUNPb2NXZEdxNnlpSHpyczRjTXZIUDM4SmNrb1dXd215RGpUVTFsaGQrekE5WW1LdHkrUUZCUGxrWTFiandmOC82aXM2aDNvTC9tTldLQy8ybnZiUmM0N1VTZXkvSlhEMmxFS3RCMUUwUmFqN014TW9sRStOWHZjWlAzVkNCdVRjRDh6anlIMkNyR3h2VUdqL01SSnFZYlpFS2d0bWNEcVVmNmtZSS9KTTFGYlZuTzB1MkxwSFFHQk56ZFpaYW00ZFpRQXMxcmI2dDRuaFVLUXozSDlWNmdRdmxkV3ovc2Z1VEh4azNxMTZSNmcwVVg5YTQ4clhiTnhLWGFuMVVyNmdaa08xWE5rYVZYK1lnMkdxdFpuZytVcDNWdFZaYzdJcUFTeXMvM05xZXVpem0vTDN2RTNvTTFZSVJHZnJlVkFiYXFDUzRJMzN0UTVpQk9rRzlieTRyS2QxcXpVNWFlMENuTFlaR2RxUzI5RlB2RzcxdXFuKzV4bXdJOTcyTnlaRnloVlNXbUQrWG1QbVJhdDVlclh6MVJKV3JQTmhxamF4YXJZdTVZaE96L1NidUxwRTN3STgxVzNyRnJacXB4bnBaRTdONHFvVWl5anNRN3dyUVdRRjg3b1Bmei9lZW1LcitWdVVjWmRoRXpXMytpK1p6QmZoY0FUNVhnSDYzY2RNbHoxWmZaWE9pN1R1VVM4WnIyTlpzWVQxVS9kQTRrVEh4a1hIVm9xSHFvYW1UeGU2cEV4OTZqUFF0VTFoRHYxU2FMZnJmTmVMK2JGRjY3OGlpYkRGNVZDblpWS283T2dTM1hTN2hGNmtpUTN5S1NtZ2ZjVFAxMy9rTG41Rmowd2doVFZ4THBmWjZjYVA0SEpYQlcvVTNTbDhSRkQySS9xZXAvUExhM2MvelNsOThNNFZiSklsMGNaM29LVzRRZWVJbTBWL2Nwcjlad2tNNWRRMjFxNStoVnBCWDFOMGlCbUxkS0g4M2laOWs4UVZlQTFGNjkxM1pmTk1Pb0FsVTN3eUNYMUpPZnphQ2J3aWYrT0xERDFWTk5XYkNuZ083RnZZQzJJc2VmdmhyVTR5bHNGZkIzZ0I3Ryt5ZHNQZXhMVzNZUWRnWjQ2c2VlMVQyZ3AwUHV4L3NnYkNMWUJmRExwbncyT1NIWkRuc1N0ampZRStFUGZteHlZOU5sVk5oejRBOUcvWmMyUE1mZStMclZYSWg3Q1d3bDhOZUNYc05rWDlJcm9lOURYWVQ3QU93ajFkOS9lRXEyUUs3alcxVHduYkQ5bi90a2ZHUG1TbXdNMkJudzg2Qm5WLzljTlZVc3kvc0FiQUh3UzZDWFZ4TkVaZ2xzTXRoVjhJZUIzc2k3TWxQVU5xYVdDc3IwaTlnVzZSQmJzcHg3d2Z3cDVIK1pKRk9acE9HOVNSdDZVVTZtRVA2MUpzME1aZTBLcC8wb0EvcFpBSHBGNjhDRGE5TGkvWHgzaDIrZVVtU3ptVmN3RFVFL3NpbzlWa0NQWHVNanM5dit5NW8reTlndTBqSFUwaStIb2o1Zzc0WldHRnZDSFZyRm5vMTZ1NHB0TGVHQ0Y3UVRyK2duWHBCR3owdXFndUt4V0t4U215aUZtbWZPRVk5UWR0SW94Wm1wckhZV0dWc01ocU5mY1l4bzBYYU1rM215UDV5S05YSEUrUnNlY0swekJTemwxbHF6YkRtV1V1dE5kWVdhNmQxd0RwaHRicThyZ3hYcnF2UVZXd1B0a3Zzc1U0Zlo1QXowdG51N0hHT09HZmMwaDF5OTNUM2RROXhsN3JIdWF2ZGM5d0wzZlh1RGU3dDdqM3VJKzR6SHVrSmVYcnFOT0Q1YXFvbDNJdGkzMzNub3Q2cC9nelVDTWNJdjFNdkxyQWc2anVsWTZDZTJwSG83NnZvdTlGSkw3QXI2cDBJQlJ2cDNVTW1oVktwRitsb1A2cmRpbFRZWUlOMmp5czNLVk83cGRxZHJkMHQybTBCYlVtbElhUWdvVnp0bG5UN01sMjdLMkw1Q1RXQW44NzM3VjNlMzRoOVQ4M3Q4bDRRKzU2K0p2YjkycUJ3ektqMHViWXdObjJ1amNibjk4WXU3MGRpOGE4cmlQMSszV3k4UjBsNjNXSGxabGtJNmFXeTBKUHFnNzdVK2d3aGpTd1ZvM0czQVdNRXRidFZ1d2VWKzZsNjdlcjM3RVBLL1hTWmNudU8wTzVtNVg2bXNXdHE5eHFrM1pKWTdudVZkM2tmZzNlTFNuMmEzaVBPb1RSL3ZWWnFkNzkyVlg1ZlI3MllZZFFYcVJCanhVUXhSVXdYczJta1dDZVdVRDludFZndk5sTlBjSWZZVFQzQncrSTR0ZkRuS0VLM0VUVFNNUjVtT251VmUzMmxkbzhwTjBmcnlBMkoyaDJ2M1hibDloNmpYYTJudlp1VmU2T0czemhYdTZlVm16dE11NnUxdTArNWVaWjJseXMzWDJoM2luWjFEbjYyajNacnRIdEF1WDBtYWJkTnVaOWJwTndDalYvUUdGdUdiNnFJVGZXYnlycThqKzN5WHRQbGZWM1VPOUcvZVV6czk1dTdsUG1iTjhXK0Qxa2IrLzdsTHZFWE5YWjVQeFZiUm92TzRqMmRla21EcVA4NlVwU0xNV0tDbUN5bWlWbGlybGhBdGV4eXFtZlhVVTI3amVyYVhWVGJIcUw2VnVkTzBYYmwzcTVyazl2WEtuZW8xdEdoZTVSN2g4NlZPNnEwcTNOcjJCRHRhcTBjcHJWK3VDNDl3M1Z1REYrb1hWMDdGYWRyZDVwMk5iMDcrMnQzaVhaYmxUc2lRN3N6dGJzc050Vkh0TVNtMGwwcGVFK2hOdjdpMGtWUjBicDgxeXp0YXE1R2xtdDNuWEx2MXJwMHQ5YnBFbHU3V3RkTGRKMXdqNWJtbmszS0xmVnJkNEYyZGRtNmQ0SjJ0eW0zVEtkKzJXTGxqa3FMbFhiVWhGaHBSMjNGZTBKTXF6RkNsSWxLTVY3b0hCdWx5MGU1cG5tZmJqZnUwK1dwWXJKMmRibTVmNTV5Uit1Y0dyMUt1US8wMCs3MjJMYXhjbGhzdWFxY0Y5VTI4dnZjcUxhUTMydGoyd0s4aDJVaXhNb05zZThQOW85cUt3ai93UzJ4NFI5c2lFMlRCM2QyZWQvWDViMDE5bjNNeUM3dkcyUGovOHFBMkhMM2xTRmQzZ2QxZWUvU2xuMmxmNWYzRVYzb2wzVjViNHg5SDh2dFNwQjZjWHh1d3dLeGc4YnRVaGdlbjRmN2JwbEdUeU9YUnU2RnhoQWFyNWNhbzZrbk5jbVlZa3czWmh1MVJwMnh4RmhPdmFwMTFLL2FobDNGZTQyRHhsSGpsSEdXUWpZWU80emR4bjdqTU5ZdHRoanQxT2Z5VTY4cmkvcGRmYkJlc1VpT2tHV3lVbzZYa3lULzBaOGo1OG1GSWxPT29SN1paRGxOenNMZTNVVnltVndwMS9KcVJibGQ3cFI3NUFGNVJKNlFaMlFyVmw0R3pYUXoyK3h0RmxESU51ckZKVkkvTHBONmNybG1YN1BRSEdJV202Vm1oVG5XbkdoT01hZnoya1J6Z2JuWVhHNnVNdGVhRzgydDVodG1rOGcwbDVyMTVocHpnN2tGcXhOM20vdk53K1p4ODdUWllyWmJ0dVczMHF3c3E1ZVZiL1d6QmxwRjFnaXIxQnB0amJNbWVYb0lrOUxLNzBtSEcvQmNBemZveVlDYjVMbVdYRC81TXVINlBkZkJEWGl5NEFZOW40S2I1TWtXa3R4UDAxdUFzSHZDOVhzK0F6Zmc2UVUzNkxrZWJwSW5oN0FEbmh2b0xVall2ZUg2UFRmQ0RYaHk0UVk5ZVhDVFBQbUVIZlI4bHQ2U0NMc1BYTC9uYzNBRG5nSzRRYzlOY0pNOGZRazd5WE16K1BkNSttbjVQcS9sNjYvbHUwWExONEN3Zlo1YnRaU0ZXcnJidEhRRHRYUmYwSElOMG5KOVVjczFXTXYxSlMzWEVNajFaUzFYa1picmRpM1hVQzNYSFZxdVlaQnJ1SmFyV010MXA1WnJoSmJyTGkzWFNNaDF0NWFyUk10MWo1YXJWTXQxcjVhckRIS04wbktWNjl5N1Q4dFhvZVc3WDhzM0dybjNnSmF5VWt2NW9KWnVqSmJ1SzFxdXNWcXVoN1JjNDdSY0QydTV4a091UjdSY0U3UmNqMnE1Sm1xNUh0TnlUWUpjWDlWeVZXbTV2cWJsbXF6bCtycVdhd3JrZWx6TFZhM2xla0xMTlZYTDlhU1dheHJrK29hV2E3cVc2eW1kZXpPMGZFOXIrV1lpOTc2cHBaeWxwZnlXbG5LMmxtNHUrUDIybG02T2x1NFpMVjJObHU1WkxkM2ZhYmxxdFZ6UGFibm1hYm0rbytXYUQ3bStxK1Zhb09YNm5wYXJUc3YxdkpackllVDZ2cFpya1pickIxcXV4VnF1djlkeUxZRmMvNkRsV3FybCtqOWFybVU2OTM2bzVWdU8zSHRCeTdkQ3kvZWlscTlleVNkNGhNeTdOM3NMN3VtWVJoK3FMWDlCZGZKUTZtT1BwdFoxTXZXdzU0ajVoRlZEdGZJU1VTL1dVbytpUWV3VWU2bWZkVnljb1M5SHhDa2Ezd3JEYTZRWVdVWnZxcWNIR2tPTmtvU3ZDOHQreFg1ZC9paGhpdmF0U1hnY3Z1MEVxOWErTlFsUGtPOVY0RTNWdmpVSlQ4TEhlTk8wYjAzQ055TDBwa2ZvUFJXaE55TkM3K2tJdlprUmV0K00wSnNWb2ZkMzVQdUovUXJCYXJWdlRjSno4TDFLc0huYXR5YmhXNUY0WjBmaS9YWWszam1SZUorSnhGc1RpZmZaU0x4ekkvRitKeEx2L0VpODM0M0V1eUFjTDdWL2ZtSEp3ZkpMVnJwMURWclZkMFNyOFNrYXlYUzl6L2J6M0lhYVB6WTNjQjZhQjh6Zm1nZDF5OG85TWw2WEs4MVQ1bDdzNU1vVWF2YUh3L1huTnRiOEFXYVNwYkNVei95bCtVdmhNdmVadnhHMmVjeDhHM3V1TXFuM3hXc1hCcEdlREtQZVppbjFOc2RSZjdPYTkxcFFlL1l0SWF3SHJBZUUyM3JjcXNhWWRDaitsbzdBR2tXK3BiR005RW5pM2ovZUpleUsyZ2R0NEpUN2FRUUxud25BNXd1Um5XaGpUNVpiU0tKNkgveGU5aWY2eUs0Mmh3SGlNTVFjRHI4SFh4UDVLL0NmQXM3VCtEcnovN1YzTHVCVlZOY2Uzek43emN3NSsreEFpaEV3VW95UldzcWxsRktrTkNJZ2p4QWhIQjdHR0VJSUVBTkNpQUZDUU9RbDVSa2VJa0ZFUkF3V0ZERUNJcUpGUkVCcUxhWFdXbXF0UldzcHBWUXB0UllSS0ZmeHJ2MmZrK1FFdzBOSXZMbmZkK0hMZjAxK21jZWV2V2EvWnZaRE84d0g0cHdUZFFoN091Vm5rSlBOVlpnSHNhY3l4NXA5NUwzbWJIS3F1YUtjaFBlcjBndko3M2ltbFNpcEFjWFJsWWpWNWxHeCtrUEV5WFdtQjdUWlF5Z3Z4UHZIR0I4NVh1d2dqRHByZzdHbGNSZDVST1VvRi9QT3pxek5ZTDU0TmJ5RW95ODJwSTdLVkFQVklIMjlubzN3dHIvSThFWWZWelhVU1ZqUjRHSkNmYTV6RU5ZVDZJRGVQWTB2K1N4Vlk2RDlPWSszVkpid1YzMXBHM1huNTlvL2VoeVNwYjhkTlg2NC9NZ2ZuZnRLK3JPdnVQL25lTjlpeTNaNkwxSitIelhZSi9vVnZSdWttK3duYkt1RGVFVGVKTHZMUmx3M3ZVckdjMzIwS2RkUnI1V0o4cnR5cE15VHJlVDNaVnY1US9ranJxSGVLRHZ3dm5ObFp6bVhPQ3ZnMm1hQVF0Uk5kcUJiNkRaWkxMdlRkSnBCczJnT0ZkTjh1bzhXMHdPMGpCNm1sYlNCbnFGbjZUbDZubDZnRjJVeHZVeTc2R2YwbW14THQ5R3Y2TmYwRy9vdC9ZNStUMytnUDlLNzlDZjZNLzJGL2twL283OXpEZllJSGFWLzBXZDhadUUwZHVLZGI5SnZWWUhhcVY1UlAxTS9WNzlRdjFTL1VtK28zNnEzMVIvVm45UmYxQ0gxZDNWRS9WTjlyRDVSbjZxVDZqL3F2OVdaa05UZjAyMTBXLzBqM1ZsMzFjblFQcnFmdmxYZnBvZnJFVHBQMzZYSDZIRzZXQy9RQy9VaVhhSWYxTXYxSTdwVWZ4RWpZNXo2Q2ZXdmkvMVI3STJ4TjhWMmllMFcyeVBXak1zM01aY2hNMldXSENTejVXQ3V1UStUdytXZFhIODNNVGRLNXNzQ09acnI4bU5sb1J3bmkrUUVlYmVjTDc4Z2l4enlLRWhkcVFlbFVCcU5wcWwwTC8yWVp0SnNta3Z6YUFFdG9oSmFTZy9SQ2xwUEcya1RiYVl0SEhNL3BaZG9PKzJrM2ZSejJrTy9wTDMwT3IxQmI5SStlb3ZlcG5kb1A3MUg3OU1CT2tpSDZEQjlRQi9TUCtpZmRKck9PTUpwNUZ6bFhCMzRwUnFqZHFoZGFyZDZWYjJtOXFpOTZuWDFHL1Y3OVFmMXJ2cXorcXM2ckQ1VVI5Vy8xREYxWEoxUXA5UnA5Vm5JMXQvVnJmVVA5QTkxUjMyejdxWnYwYjEwYjkxWDk5ZHBPbGZmcVVmcVVicEFqOVZ6OVR5T3VmdjBZdjJBZmtnL3JGZnFNekYyRE5WdldqOHh0bjFzVW15SDJNNnhYV09UWTIveDgwaFpSREZ5SVBMSUZPcEZYQkpZcjRrRHNxTzhrbHRGNmJLaERNc3JPRzY3SUhhdmx0K1UxOGloTWlmMGJ1aTlLckhjV3Y2Z1NpeDNrdU5sVjNrejR0a08vUWt4clVoelhIY1B2WS80NW10Um1Qb2kzb3RvQWsya1NUU1pwdEMwS2o1WVNQZlRFbnFRbHRNajlDaVYwaXA2akg1Q3Eya05QUjc2YytoQTZDK2hnNkcvaGc2Ri9sYkZRMXN2d1VNZjBjZjBienBHbjlCeCtwUk8wRW42RC8wM2ZVNWZPQmE4MWlTd1Y0MVNkNm5SWjNudTErcE50VS85VHIzRi9udEh2YWNPVk91L3owT0hRMzhQMmFFUGRTdjlmZlppTzkxZTM2aHYwcDEwRjkxZHAraWVPbFdISTk0Y0JtL202OUc2a0wwNVArTE5wZXpORmZwUi9aaitpVjdEUHJXTVYyTThydHBlVStIWlRyRTNSM3hyc1E5dmttbnlOdmJoN1p3NkJyQVBCMGFsRVBhaHZFUG1YaUNsakk5S0t4UkpMVEhHaDVSYzRjUGUxQWMrSEVmajZXNjZCejQ4ZHpvNnk0ZjBCSzJsSjJrZFBVVmw5SFFOcExLemZYaUswOTNuVlZKZW5zcXZOdldWKy9COGFWQ0VMUGJoQjVHVWVBT254U1RkSVpJZWUzeUZGTG1LZmJpNndvZHVUQ0FxZFhhc1RKOG9GVHFhVWlGMEpQU1Bha3FGNzhrMjhnYlpua3VGTXlnVk9zcTVvYU5mS2hWNlVycWNkNUdsd2pZNWozYlFLL1FxL1VMZVFPblZsUXBxaHBxcFpxbloxWllLVGJsVUdGdHRxYkJmdmE4T3FyK3BEOVEvMUVmcTMxR2x3aGRmc1ZTNFh5L1J5NnFVQ3RkR2xRcmRZMVArdjFTNHJGS2hxZENlcGhSVFE5RS9NM1ZvMlVtL3BsL1ZQOWUvTUsxUTJZSnpkNjYxeUVMVXFsT2NCQk1pL1ZCVVc4ZGZBY3YwcXBMY3J1anRtZFZUWSswblRZOVMreWx1TDFudVpuZTNrTzRlZDQrSWM0KzQveEpYdXY5Mi95MnVkajkxVDRvbWdjekFJSEZONExlQlA0bnJnZ2VEaDBUcjRJZkJEOFVQVkprcUUyMURHYUVCNG9iUXdOQkE4Y1BReHRCem9uM28rZER6V0gyd3NoMDFnSy9vaWdacURyZVBCbkNkNll6c1ZMbE5LZFh0cTA5WDdsdTVqWDBUZWM4dUlvTmJRWVhjK3BuRWJaOFpZZzYzZXhhSkpXS1pXR0hPaEgwajlhWHlGS0xPcUMrNC9yS002M3ZSczBtVno4cWkrQ3pGZkk2bGZJYkh4RnB1cjI4VzVxdUYrUTdGY1lRK1l1WTl2NW54d3JRWHpadzM1djI5MmNkOHZURGZBM2ZJM2x5SHZGTDJZbzJUMDFrYnltVFdLd0svNFhaVGtjdjFUNXJnZnNFNjBlUGFKazNTNlZ6M3ZGRm5zTjRrKytMWVZCejdZeHpiQThlK2lXUFBtR005Z1dOdEhIczdqaDFnanZXazJkTnpvQjQwQ0NXb0N3MUFUZjMzaXRCaTZQMUc5VTdvTHFNVjd6V2FZRDQreWJYY0pIaWtBUk16STNCenYyWWZtODJaR254VHZzVlBhQ3p2Yjd3RlN5bnNZYXJ3TlZWNHJ4NW1RMG1JOUQ0ay93cnlEbUZtZWtsZ05WOHF6TnFacHI5L2g5akJGZGNaWEg0T0d1QmZ4N2Q4M2RQbCs1UnY4YlhuOGxabnJpdU5qYVNEaGxodkl4RjNKY1NONXNxUmRrN1ZWbzdmVzhGZjlhSVpabFE1Lzk2RXVaTGk4V1FrK0swWTJRUjZJKy9aU0thWWtkaG81MHM1VTg0VUlicWRNb1RtTnY4Z1VZOUcwa2p4RGJUOEd6aTI0NG80SitqVUUxYzUzM0FhaUd1Y09LZWh1RllOVlNORk0vV1Fla1I4VjIxVkw0czIydUZXZFhzOVdOOGhidFpGdWtnazY4ZjFVNktIM3FSM2lONTZqOTRqc21KVWpCS0Q2amVyMzB4a3gvYUp6UktERWFhaGtUQTNpWGpZYnpGMXFCTHF5djA4dnFNOThGWGJpTGVTL0R0RWE5RDBsN1hRcTlXMG16ckJ0NVo1WXV2Y1hZK04zRTBpMzZtNTYzYjhGTGVLM1B0TkY3eWZ5ak5jd2M5a04zRkV0QkZuK09lUTZHa1I1M045eGNkUnY1M2d2NXRlMk5IeDFDZ3FmaE1xcmxFM241QUIwRUxvT0JNVEZBb2RSYXZlZk5PMFF1OUdZaUpKSkl0c2ZpNEsrU2VEUzVXSm9yUG9MM0tqZnNzVDJaRTQ3bmhSY1hIeFY2L1BIandxZW5JK2RKcC9PdkQyTVM0UFdvakRvalZ2bSsrVy9hdkV2MytkUkdpcktPL2FzaXVwT3VnRC8vN0hROCtjRlF2Ky9iY1hRemlXVzNJSjFwSmoxOHhkMlkyM012azVIQ0xTSXJIZTZhSmo0R0t1R1NjNlcrWXRaRnNybG4yY2pMR2EvWG5yTTM3NlV5TmJTV2JFbmpEOXFjOFgrMVZUV0YzMVFkcEZ4a29Ycm9GazhmTTRpMzlTZUhzS3gzODdNWVpUUWppeTFZRnBYc1FubmI5aXZGeDhTUHphVTF6a1BWbzJkRUxrTDdHUnE5OWM4YmVLMmhaV2ZDSDdVV0hiT2RWeWFhL2l2L2puTVQzTy9ObjV6RGVQUnRYTjRYcU8zdnJQUmVZU0hSRTVVenU4dFl1dk9OZUZaanVOUGpZZXh5YWNkYXo1TzJ2RlRJTG4zMnVEOE5mME1IMkVUSCtHZE96WFZWenV2R3hmZmY3eUhJUm52WkNSZWVoTVBtZEdkR2ZVa1JCbFlIWjMwMWRxU0EyRjZOSlhMNmtNbVQrZlhpYm02MTJHSEtmdWhNMmZHVEZUbEg5ajZocDUraTUvOVhuLy9PYTVOYy9yU21GRlprYXNpZnV1eVJENjZjbXNkNXFGV1J4ckxvVGxPVk41VERSR09za1ZaZzJueHJWNEpYK3V5TmJDckgvWElyS0tjZGVvUGNPVis5c0RvOExucjZaWXlOdG1KdW9oTlI3QzZxL3JoN2FGa0Zpbm9mR1hRbnV1Y09ienRxbExaTlpPVEZZSllmbXFSbkZSMTdyOFo4L1VFVGZnL0RsSUhXWk55SnA4QXRPL2RKM1dYeUdtTDN4VStEeEhtWFMvTXBMZjFWeDVWWk94YnRLajZmMmJ6VnNaTlpvZTA3OTBwWGhSK0RVK3NWL0hkUy9rZXhQYlp0NlRKbEhQUzlvbGxGU2pSV1g1WHI1K2xzbEZtMzNwT2J6Y3N6ZU9yUGRkVzJmM1Z5SmRnaWV1NXZ4d2VlRXFyNW5VZksycEprSTJKTElHam5sSE9yekduOTNMQzUvRFQzWVR6UFJ2Y2ppVDA0Mm9ZeUVrZUhaSUhZOUI4MjY3YnNhZ0pkd3YwS1pWNXYxNVpWdlR0TGlKanlkdWF3NzI1L2JITytoNDFMU2szOG9FOVkrSVZaTXhCOFVVNkZTajV6M0c5TmFMNDJOTVc5WWM1ZHVwdm8wT0NZZSszVmxmQlNwbmFuOGhNa2Y3RytJdHNWOGNFSWZ4M3VtVU9HT1JwYXhZcTZGbGVsczN0MXBaYmEwa3E3T1ZiS1ZhL2EwTUs5dktSWi9yQ2RZVWE0WlZiQzJ5bGxvcnJNZXN0ZFo2dXl0bXdlekd5dUZsTldHMlRZdWFsVnZWck55eVp1WFdOU3Uzc0ZsN21acTZuV3IzWnUzTlhqRXRsajRtRGt5N2hmMjdtblUxZTlhMjE1a1Z0OXdYMkxOMjRQWGc0OEptL3o2QmVhZldzcTROUHNuNlpKRDNESzRMUHNYNlZMQ010U3o0Tk92VDdDODd1SjVieW1Zay9rYldqY0ZuV0o4SmJtTGRGSHlXOWRuZ1p0Yk5aajRwTTFLZWRVdndlVlp1dmJOeUM1NlZXL0dzM0pKbmZURzRqWFdibVpjcytGSndPK3YyNE11c0x3ZDNzTzdndHJzZDNHbG01QXZ1NHVmUURyN0N6NGx0M2g2d21qY0l0dHJDejZUTlQrWkpWb3pHeDVwazVkKzUvQnFIZVV0aG9jeTgzR2UrOGdrZGptOVNXcG03VzJQVVhvVzU2ZWF3Wnd1dFNlelgrZFlTOXVwcXE4emFiRzJ6ZGx0N3JYM1dmdXVnZGNRNlpwMjJiVnZaRGV4NE85RnVZYmV4ayt3dTdNditkcWFkRTkxem5tdGNxKzB5ZTNPMS9lU1ZiQ0RqWldLVlh2R1pNa2ZteVVJNVNjNlE4K1dTS24zZzk4cDljcjg4S0kvSVkvSTAyYVNvQWNWVElyV2dOcFJFWGFobmVROTRLcVJKTklQbTB4SmFRYXVwakRiVE50cE5lMmtmN2FlRGRJU08wV25IZHBUVHdJbDNFcDBXVGhzbnllbmk5SFQ2TzVsT2pwUG5GRHFUbkJuT2ZNZXNZRmV2U295YlhLSWVjb21XeUNWdWdBLzZ3Z2Y5NElQKzhNR3R5RDNTMkJPN3hXM0lQWXJnanluc2oxUGlYaUdwTmJXakRteVRxRE1scyszRzRlL0xOa3hwbE1rMmc3SXBsMjBPamFBQ3R2bDhWeFBaVHFBcE5JUHRkSnBEQzluT3A4VzBqTzFTdnRmSDJKYlM0MVRHZGgxdHBDMXNOOU5XMnNGMk84ZkFIcmF2MGV1MGorMmI5RGE5eDNZL0hhRERiQTl4dkh6TTlpTTZUcWZabnFJekRnbko4UlJ3NnJIVkhGdU4yVFowbWppSmJCT2M2NTJXYkZzNHJaMTJiTnR5SEhabTI5SHA1dlJrbStLRW5UUzIvWjBNSjV0dEZzZnNDTGJEblh5SFc0L09HR2VDdy9rV3gvUjBadzdiV1J6Zmk5a3VjcFk2SzlndWQwcWR4OW11ZHRZNUc5bXVkelk3VzltKzRHeDNkclBkNWJ6bXZNNTJyL09tOHpiYnQ1ejl6Z0cyN3p1SG5DTnNQM0ErY282elBlYWNjczZ3L2N5MTNZQ1FydXRxdHdIYldMZWgyNFJ0dkp2Z1hzKzJtZHZDNWRhdzI4cHQ2eWF4YmU5MmRMdXg3ZUttdUdHMnFXNS9ONE50dXB2bDVyQWQ0ZzUzdWM3czVybGozQWxzaTl4SjduUzIwOXhaN255MnhlNGlkeW5iSmU1eXQ1VHRTbmUxdTQ3dFduZTl1NW50Sm41YXRyUGQ1dTV5WDJQN3FydlhmWlB0Rys1YjduNjI3N2p2dTRmWUhuUS9jRDlpZTlROTVuTE80SjV3UC9Oc0lUM2h1WjdwZ2FxOFdLOGgyemd2M2t0ZzI5UnI1bkU3ekd2dXRmTGFzbTNqdGZjNnN1M2dkZkZTMkNaN3FWNS90bjI5ZEMrTGJhWTN4QnZPTnRmTDg4YXdMZkNLdkVsc0ozclR2RmxzWjNqRjNpSzJDNzBsM25LMnk3eVYzbXEyajNsclBTNmh2VEp2ay9jQzJ5M2VObThYMngzZXE5NWV0bnU4Tjd5MzJPN3ozdkhlWi91ZWQ5RDdnTzFoNzZoM2pPM0gzZ252TTdhbkF5TGdDaG1nZ0FyRXNxMFhpQXZFczIwY2FCcG94all4MER6UWltM0xRSnRBZTdidEFoMENYZGgyRGlRSFV0bjJEUFFOcExOTkMyUUdockRORHVRRzh0aU9DQlFFaXRnV0JpWUdwckdkRXBnUktHWTdKN0F3c0lUdDRzQ3l3RXEyS3dLUEJkYXlmVHhRRnRqRWRtTmdTMkFiMjYyQkhZRlgyZTRPN09HVUxEbFY3d3U4dy9idHdIdUJnMndQQkE0SGpySTlFdmc0Y0lMdDhjRHBvR0I3SmtoQkpXUXdFS3dYakdQYklOZ1lJMnVhQkJNeEt1YjZZTXRnRzdhdGcrMHdGaVVwMkJtalNMb0ZlMklFU0RpWUZ1VDBIOHdJWmdjNS9RZHpnaU9DQmFaVURhNUIyYm9LV21wS1dDYmRRTHFCZEFmcER0SWRKQmtrR1NRWnBBZElENUFlSUNrZ0tTQXBJTGVBM0FKeUMwaFBrSjRnUFVGNmdmUUM2UVdTQ3BJS2tnclNHNlEzU0crUU1FZ1lKQXpTQjZRUFNCK1FmaUQ5UVBxQnBJT2tnNlNEM0E1eU84anRJQmtnR1NBWklBTkFCb0FNQU1rRXlRVEpCQmtJTWhCa0lFZ1dTQlpJRnNnZ2tFRWdnMEN5UWJKQnNrRUdnd3dHR1F3eUJHUUl5QkNRb1NCRFFZYUM1SURrZ09TQTNBRnlCOGdkSUxrZ3VTQzVJTU5BaG9FTUF4a09NaHhrT01pZElIZUMzQWt5QW1RRXlBaVFrU0FqUVVhQzVJSGtnZVNCakFJWkJUSUtKQjhrSHlRZjVDNlF1MER1QWlrQUtRQXBBQmtOTWhwa05NZ1lrREVnWTBER2dvd0ZHUXRTQ0ZJSVVnZ3lEbVFjeURpUWlTQVRRU2FDM0FOeUQ4ZzlJSk5BSm9GTUFwa01NaGxrTXNnVWtDa2dVMENtZ2t3Rm1Rb3lEV1FheURTUWUwSHVCYmtYWkRySWRKRHBJRE5CWm9MTUJKa0ZNZ3RrRnNoc2tOa2dzMEhtZ013Qm1RTXlGMlF1eUZ5UVlwQmlrR0tRZVNEelFPYUJ6QWVaRHpJZlpBSElBcEFGSUF0QkZvSXNCTGtQNUQ2USswQVdnU3dDV1FSeVA4ajlJUGVETEFaWkRMSVlwQVNrQktRRVpBbklFcEFsSUErQVBBRHlBTWhTa0tVZ1MwRWVCSGtRNUVHUVpTRExRSmFCUEFUeUVNaERJTXRCbG9Nc0Iza1k1R0dRaDBGV2dLd0FXUUh5Q01naklJK0FyQVJaQ2JJUzVGR1FSMEVlQlZrTnNocGtOY2c2a0hVZ1JrdE55eVc0eHFpOUNscHFXakhCTlVidFZkQlNMbWtNZVFQRWFDbmFPR3VNMnF1Z3BXanZyREhLNUFtUXRTQnJRZGFDUEFueUpNaVRJQWhQRU9HQmxxSjl0TVlvazZkQXlrREtRTXBBbmdaNUd1UnBrUFVnNjBIV2cyd0EyUUN5QVdRanlFYVFqU0RQZ0R3RDhneklKcEJOSUp0QW5nVjVGdVJaa00wZ20wRTJnendIOGh6SWN5QmJRTGFBYkFGQml5YUlGZzIwRkcyM05VSEVQTFFVN2JnMVJwbjhGR1FyeUZhUXJTQXZncndJOGlMSU5wQnRJTnRBWGdKNUNlUWxrTzBnMjBHMmc3d004akxJeXlBN1FIYUE3QURaQ2JJVFpDZklMcEJkSUx0QVhnRjVCZVFWa04wZ3UwR01saXJrbVFwNUpyUlVJYzlVeURPaHBhb0lwQWlrQ0dROHlIaVE4U0FUUUNhQVRBQzVHK1J1a0x0QmtQY3E1TDNRVW9XOFZ5SHZoWllxZUZEQmc5QlNCUThxZUJCYXF1QkJCUTlDUzAyTE9MakdxTDBLV21wbWptYnlDY2duSU1kQmpvTWNCL2tVNUZPUVQwRk9nSndBT1FGeUV1UWt5RW1RVXlDblFJeWF1VGdTUkl4b0o1SXd3aTFaOU1RWXQzU1JHUm5uNXE4bzFGc0lyQ1VVQ20wSWJjQTdHZE8rTnJNZ21GNStwdCtENllObStnbVpIaExtZTcxcHhadjNONll2aEhramxIcjU3MHI4OXdoOGZadC9MTkZHTkVRb2MwV2VHRk9sSCtsaXNWUXNGeXZGWTNqenMxRnN4bHdRdG5ETkRQZmN1czNtR29objUzSWRROXZEdWM0UVk0L2tPa0I5TzU5TDUyOElzNWFwalhWbmJhdzlhMk4wbm8wUmVoWit6RGQrTTB1bjZYbkFaUWo2blBwdmk4MTd1K1dSdDR1Y2UrTGRrNFVmTTh1Q1dTVzRESE8xMlB5ekF5VmtHS1ZpR1BseFA1U0hZZmk4SDByQ01MemREMlZnR0g3dWg5SXZqQkl2akZJdWpKSXRqTklzakJJc2pMeThIOHF1TU1xck1NcW9NTXFsTU1xaU1NcWZNUEw0ZmloNXdpaHR3aWhod2loVndsek9TL3RXdHR6V3M5UFlMa2M0ek5QVlQxaFlXYW9CM3RyWTltaHpCT2JiQTBNdDRsYlVITkpRVzdnVk5ZUzBLbTlsekZjU1F0bUV1WFZPckJMbDMwdk1xTXpNaWxWMWhlZ3VhdW9MdDIzbmNMejRWMWlNMVNTYWlMNW5YZU5TMXIydnlYQXQ0VGcxMzNiOHJ5OTFLV1JMMlIvRU9ZYjVuMWJId3RaR1hNL2FNdks5bUhNWTVEY1ZPWmVvK20wdytzZ1JndHVxb2hYbmQ0M1BlK3lsM0dOMTE4dkQ2dVN0K1g5dXhmTmR1MWZNNTNoeE9JYk0vK0dSTDVDMWZVMS9EZHJFS2s5SitSN210NW1SL2ZwR1VtSEdaVDlQMVoyOWYwVmF5cXlWODZkRnBZaXNXcmxDWWlSK1dwd1ZrOUV4Ym41NytDdnVYeHpaUHlNU1EvMGozenE3MTloekVCMnEycjFLY1VXWlVlNk50RWlmc3RxNW05cStUdm45WkxFZm5jaTRoM1QwemFpdE82cjlLeFZmWEw2QUw2RitpUHpWZzNNcmNxdWE2UnZ5NVN0ZEtFUzd2cllRN1lyMEZVbGtiUjZaVVZORVppLzIrMTc0cXdibkMvOXJaM1J0YW9qL2pRdHZocnJpYlZBdm5LMFZVaHpYdXpubjk4dTNIdUpjSzNvSEl6MkNLL29ESzMvZGt2UDE2elg1ZG4wN3d4NFFXVTFrbEgyWFhXRFB0dWRFVmhSNWtHdVUvbDJadG9BWmhSS09oT0xTcitmWlEreGhYR3VmYU45akwrVDZySCtmTXlMM09hUVc3dk5DZDJoQ05qdHluNW1SKzB5NWpQczgrdzRyei8rL2Y1OERhOVNmQSt1c1A0dHIyWi9GZGVRK0I5ZW9Qd2ZYV1g4dXFHVi9McWdqOXptOGx1OXplQjI1ejhXMWZKK0w2OGg5WnRWbytzeXFzK2x6WGkzNzB6OS9IR3A3eVpHNmxibkdWeDhKWmZySjlEelAxZjB4MGsyNUhtZm1YQ0xUbjR0cmhEOFZmaitueURzeTNtcW9Ud3JMSEdIZXhyb3ZtTit3Tmx2bE9PYlZZZ3ovMzRHd210a0VhcWVIenFYRXdmbFdzNnNjeC9WLytSNDJpTXF4NXdWaU1kNzMxdTRkWENoT1RkL0xxWFVzVkJ2cVpLajh1SnBjSitOcWNwMk1xeWwxTXE2aVF6VkpGSW1DV2crVlpmdnZBUHFjTjRSZmY2aTYxY2xRSlY5RXFNcS9GSm5SdkRhSEo5M01ENFBSSmY2czVsemF4OFRoTHp1Rm1UblRyT25kSjhiTUwzbUxTSTFwQ05zbnBoSFQyMk1hR3hXbUo3cFo1OGVLTmZNZ21obFJWc2dGb25JdVVCY3piMWJPOE5sTTFOY05kU1BkV0YrbDQvWFZ1b24rcG02cXI5RUorbHFkcUsvVDVsdEU5WE1POHBFaUNTdEltVkh5R1ZIZkc2ZEU1cHM1eDd5SSt0dTZJYlFSdERIMEttZzg5R3BvRStnM29VMmgxMEFUb05kQ0U2SFhRWnRkVnBnK2w5ZEJtMEcvQmIwZSttMW9jK2gzb0MyZy93VnRhWlFhUUsrQXhobjFRbEF0TVBlZCtIMXdUL0FYSW5xV0lxNEg2Vy9wNjNWemJiNlpWczdCRWoxZkVHWm4wWm1DWkJONW94eGE1Vy94ZUtmVlVBOFNucG5EUThiTEhqSkpkcXI2KzFuekR6WENNYTEwdHJoQ0pzaENJYzBJZXpQN1VPaGRYR0ZjNVcraG83THdZdmFqRU1idlYxNGpVWmpWckpxTEZEMVExSmRuWk5mSTBhM2tHVDVuSjk0YXorYzh3MmZIMzBsVi9wM1BkWUcvOC8xVS9MMmFxN1lSV1RwTHhKM2pxbWttZnFMT2p6MnJ2ZjVGN0JrSlNScml1Tm93Y2V3NU9sdFAwSGZyaWZvZXBMdzQ1QWdqc08yUHlzRElFYitVRWJJaU56RGY2Y3JmZkpyektmUlhTMFVmdFZSUmRWU0hxVU9qbjRBd2EyL3Fjejc5NTExdjBPNmpUSStzeDZGUFFUZENuNGUrQVAwcGRDdjBSZWgybzN3R28xdVVhVW40ODFlbFlJYUlUSXdqekVkUGdmSTVmQy9VUHJEdHJzcDhpZThKN1dPVVExV0NVSlVnVkNVSVZRbENWWUpRbFNCVUpRaFZDVUpWZ2xDVklGUWxGYU1acWgyblltMjJ0bG83ckZldHZkYWIxdHZXZTlaQnJBbHczRHB0YzdQRDFuWUR1N0hkMUc1bXQ3QmJZMldBTGx4L0R0dHBkaWEzb29iYitYWWhseGJUN0ZuMmZIdXh2Y3hlYWRvejlrYXNDTERMZnMxKzNkNW52Mk8vYngreWo5Z2YyeWZzejdBdVFEMFp4K2t6UVY0dlc4bzJzcjNzS0x2Sm5yS3ZUSmRaTWtlT2tBV3lTRTdDZWdBTDVSSzVYSmJLeDJXWjNDUmZrTnV4QnNBYjhpMjVYeDZRaCtWUmVVeWU0dWVSU0ZFc05hUW1sRWpOcVJXMTljY1RZRFVBakNDZ1BCcmpqeG1nNGxvcjljcTkxdzNhSFpvTTdRRk5nZDRTNWVGZTBGUm9iMmk0MHZOMlAyZzY5SFpvQm5RQU5CTTZFSm9GSFFUTmhnNkdEb0VPaGVaQTc0RG1Rb2RCaDBQdmhJNkFqb1RtUVVkQjg2RjNRUXVnbzZGam9HT2hoZEJ4MEluUWU2Q1RvSk9oVTZCVG9kT2c5MEtuUTJkQ1owRm5RK2RBNTBLTG9mT2c4NkVMb0F1aDkwRVhRZStITG9hV1FKZEFINEF1aFQ0SVhRWjlDTG9jK2pCMEJmUVI2RXJvbzlEVjBIVkdYYVMvd092UU42SlM2aFBRdGRBbm9ldWlVbkFaOUdub2V1Z0dxSit5bjRGdWdqNExSVG9PUGdmZEFqMS82dDhHZlFtS25DRDRNblFIZENkMEYvUVY2RzZqQ3I1VDhKMHFnbzZIVG9EZURZVlBGWHdheVYwUUt1UXh0ajRHL1FSNkhQb3A5QVQwSlBRVXEvOXV4ZnhyYnVwZnVma0ZkMGEybTR6enQ4MzYySzF1THJ5cm9HVkMxM3NLODFzbTlCZzJ1cEMxY05pb2xnbXBRNHNLYmk0Y210TXk0Vng3cEF6TEtmVDNhNW1RTm1Mb1NDSCtCeWowNkhNS1pXNWtjM1J5WldGdENtVnVaRzlpYWdveE1TQXdJRzlpYWdvOFBBb3ZRbUZ6WlVadmJuUWdMME5KUkVadmJuUXJSakVLTDBSbGMyTmxibVJoYm5SR2IyNTBjeUJiSUR3OENpOUNZWE5sUm05dWRDQXZRMGxFUm05dWRDdEdNUW92UTBsRVUzbHpkR1Z0U1c1bWJ5QThQQW92VDNKa1pYSnBibWNnTkNBd0lGSUtMMUpsWjJsemRISjVJRFVnTUNCU0NpOVRkWEJ3YkdWdFpXNTBJREFLUGo0S0wwTkpSRlJ2UjBsRVRXRndJQzlKWkdWdWRHbDBlUW92Um05dWRFUmxjMk55YVhCMGIzSWdQRHdLTDBGelkyVnVkQ0E1TWpFS0wwTmhjRWhsYVdkb2RDQTNNVFVLTDBSbGMyTmxiblFnTFRJd09Rb3ZSbXhoWjNNZ05nb3ZSbTl1ZEVKQ2IzZ2dOaUF3SUZJS0wwWnZiblJHYVd4bE1pQTRJREFnVWdvdlJtOXVkRTVoYldVZ0wwTkpSRVp2Ym5RclJqRUtMMGwwWVd4cFkwRnVaMnhsSURBS0wxTjBaVzFXSURjZ01DQlNDaTlVZVhCbElDOUdiMjUwUkdWelkzSnBjSFJ2Y2dvK1Bnb3ZVM1ZpZEhsd1pTQXZRMGxFUm05dWRGUjVjR1V5Q2k5VWVYQmxJQzlHYjI1MENpOVhJRGtnTUNCU0NqNCtJRjBLTDBWdVkyOWthVzVuSUM5SlpHVnVkR2wwZVMxSUNpOVRkV0owZVhCbElDOVVlWEJsTUFvdlZHOVZibWxqYjJSbElERXdJREFnVWdvdlZIbHdaU0F2Um05dWRBbytQZ3BsYm1Sdlltb0tNVElnTUNCdlltb0tQRHdLTDBKcGRITlFaWEpEYjIxd2IyNWxiblFnT0FvdlEyOXNiM0pUY0dGalpTQXZSR1YyYVdObFVrZENDaTlHYVd4MFpYSWdMMFJEVkVSbFkyOWtaUW92U0dWcFoyaDBJREU0TXdvdlRHVnVaM1JvSURVM05Ea3hDaTlUZFdKMGVYQmxJQzlKYldGblpRb3ZWSGx3WlNBdldFOWlhbVZqZEFvdlYybGtkR2dnTWpJMU1RbytQZ3B6ZEhKbFlXMEsvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBMEpDZ3NLQ0EwTEN3c1BEZzBRRkNFVkZCSVNGQ2dkSGhnaE1Db3lNUzhxTGkwME8wdEFORGhIT1MwdVFsbENSMDVRVkZWVU16OWRZMXhTWWt0VFZGSC8yd0JEQVE0UER4UVJGQ2NWRlNkUk5pNDJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZIL3dBQVJDQUMzQ01zREFTSUFBaEVCQXhFQi84UUFId0FBQVFVQkFRRUJBUUVBQUFBQUFBQUFBQUVDQXdRRkJnY0lDUW9MLzhRQXRSQUFBZ0VEQXdJRUF3VUZCQVFBQUFGOUFRSURBQVFSQlJJaE1VRUdFMUZoQnlKeEZES0JrYUVJSTBLeHdSVlMwZkFrTTJKeWdna0tGaGNZR1JvbEppY29LU28wTlRZM09EazZRMFJGUmtkSVNVcFRWRlZXVjFoWldtTmtaV1puYUdscWMzUjFkbmQ0ZVhxRGhJV0doNGlKaXBLVGxKV1dsNWlabXFLanBLV21wNmlwcXJLenRMVzJ0N2k1dXNMRHhNWEd4OGpKeXRMVDFOWFcxOWpaMnVIaTQrVGw1dWZvNmVyeDh2UDA5ZmIzK1BuNi84UUFId0VBQXdFQkFRRUJBUUVCQVFBQUFBQUFBQUVDQXdRRkJnY0lDUW9MLzhRQXRSRUFBZ0VDQkFRREJBY0ZCQVFBQVFKM0FBRUNBeEVFQlNFeEJoSkJVUWRoY1JNaU1vRUlGRUtSb2JIQkNTTXpVdkFWWW5MUkNoWWtOT0VsOFJjWUdSb21KeWdwS2pVMk56ZzVPa05FUlVaSFNFbEtVMVJWVmxkWVdWcGpaR1ZtWjJocGFuTjBkWFozZUhsNmdvT0VoWWFIaUltS2twT1VsWmFYbUptYW9xT2twYWFucUttcXNyTzB0YmEzdUxtNndzUEV4Y2JIeU1uSzB0UFUxZGJYMk5uYTR1UGs1ZWJuNk9ucTh2UDA5ZmIzK1BuNi85b0FEQU1CQUFJUkF4RUFQd0QwWFQ1SGx0ZDhqYm04eHhuMkRrRDlCVm1xbWwvOGVYL2JTVC8wTnF0MVV0MlJEV0tDdWQxdTcxSStJckhUYkc5K3lyUEd6RnZLVitRQ2UvMHJvcTVQeERjbXo4WWFYY0xieTNCU0ovM2NLN21iSVljRDhha3NmcU0ydjZGQ3Q5TmZ4MzlzckFTeG1FUmtBbkdRUld4ZFhsNEx6VGhad0NXMW55WnBDcEpSY0FnOWVPcHJudGExYVRWMGkwdVcwbTAyRzRkZDgxMnBUZ0hPQngxNHJTMWlXVzExdlFiZUNXU09GbWRXUldJREFCY0FqdlFCMEZGY3pmVHZlK0padE51TlNtMCtDT05URUlYRWJURWprN3ZicGl0S0hTYmdXRTFwUHExM0lIWUZKVllKSWdHT04zZWdDWFI5VVRWWVo1RWlhTVF6TkNRVG5KR09mMXEvWEcrRXRLODZPNG4vQUxRdm8vSnZHSGxwTmhIeHRPV0dPU2U5WFl2dFd2YXJmcDl2dUxTMHRKUEpWYmR0ak13NmtuOEtBT2xvckEwYTl1YmU4MVBUYnlkcm43RUZkSlcrOHlrWndmZnBWWFNiVzkxNnhHcDNHclhkdVpXYnk0clo5aUlBU09SMzZVQVgvRmw5YzZkb2ozRnBMNWNvZFFHMmc4RSs5YlZjWHJ6YWdmQnNzZXByKy9pdUFnZkFIbUtEdzNIK2VLdWF2WmFsYmFYTHFqYXZjcmR4RHpERWhBaEgrenQ3L1UwQWRSUlZmVHJocnJUYlc1WUFOTkVraEE3RWdHdWZMNmpmZUxOUjArTytrZ3RVU05pVSs4bzJqaGZUSlBYMm9BNmlzWHcvZlhONWRhcWx4THZXQzZhT01iUU5xZ25BNDYxVzA5N3JUZkU1MG1TOG11N2VXMzg1RE8yNTBPU092Zm9hWHdyL0FNZjJ1ZjhBWDgvOHpRQjBWRmN6Q0x2WHRVMUJXMUM0dExXMGw4bEV0bTJNeEhVay9oV2hveWFsYjNGM2FYcnZQQkdWTUZ3K011Q09RZlhGQUd0UlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQWVRNnRkM1MvRVI0bHVaUkg5dFFiUTV4akk3VjY5WGpHdXlwRDhRcHBaRzJ4cGVJekU5Z0NDYTdTNStKT2pSU2xJWUxxZFIvR0ZDZy9USnorbEFIWjBWajZENG0wdlhneTJjckxNb3kwTW8ydUI2K2gvQTA3WFBFV21hRWkvYnBpSkdHVmlRYm5ZZXVQNm1nRFdySThWYXBOby9oNjV2cmRBMHFZQzdoa0FrZ1pQMHpYUDhBL0N6ZEozZjhlVjV0ejF3dWYvUXEySXZFZWthcjRldTc4eHlTV2NRS3pSeVJqUGJqSFE5ZldnREM4QStLdFQxalVaN0xVR1dZQ015cklFQ2xjRURCeHhqbXU4cm1QQjEvNGV1amRSNkhaTmJsZHJTRmt3V3puSE9UNkd1Z3ZMeTJzTFpyaTduU0dGZXJ1Y0NnQ2Vpc1gvaExmRC8vQUVGYmY4elIvd0FKYjRmL0FPZ3JiL21hQU5xaXNYL2hMZkQvQVAwRmJmOEFNMGY4SmI0Zi93Q2dyYi9tYUFOcWlzWC9BSVMzdy84QTlCVzMvTTBmOEpiNGYvNkN0djhBbWFBTnFpc1gvaExmRC84QTBGYmY4elIvd2x2aC93RDZDdHYrWm9BMnFLeGYrRXQ4UC84QVFWdC96TkgvQUFsdmgvOEE2Q3R2K1pvQTJxS3hmK0V0OFA4QS9RVnQvd0F6Ui93bHZoLy9BS0N0ditab0EycUt4ZjhBaExmRC93RDBGYmY4elIvd2x2aC8vb0syL3dDWm9BMnFLeGYrRXQ4UC93RFFWdC96Tk5meGg0ZFRHZFZoT2ZRRS93QWhRQnVVVmhyNHc4T3YwMVdMOFF3L21LZC93bHZoL3dENkN0ditab0EycUt4ZitFdDhQLzhBUVZ0L3pOSC9BQWx2aC84QTZDdHYrWm9BMnFLeGYrRXQ4UDhBL1FWdC93QXpSL3dsdmgvL0FLQ3R2K1pvQTJxS3hmOEFoTGZEL3dEMEZiZjh6Ui93bHZoLy9vSzIvd0Nab0EycUt4ZitFdDhQL3dEUVZ0L3pOSC9DVytIL0FQb0syLzVtZ0Rhb3JGLzRTM3cvL3dCQlczL00wZjhBQ1crSC93RG9LMi81bWdEYW9yRi80UzN3L3dEOUJXMy9BRE5IL0NXK0gvOEFvSzIvNW1nRGFvckYvd0NFdDhQL0FQUVZ0L3pOSC9DVytILytncmIvQUptZ0Rhb3JGLzRTM3cvL0FOQlczL00wZjhKYjRmOEErZ3JiL21hQU5xaXNYL2hMZkQvL0FFRmJmOHpUWDhYK0hVR1Rxc0orZ0ova0tBTnlpc0pmR1BoMXVtcVJmaUdIOHhUL0FQaExmRC8vQUVGYmY4elFCdFVWaS84QUNXK0gvd0RvSzIvNW1qL2hMZkQvQVAwRmJmOEFNMEFiVkZZdi9DVytILzhBb0syLzVtai9BSVMzdy84QTlCVzMvTTBBYlZGWXYvQ1crSC8rZ3JiL0FKbWovaExmRC84QTBGYmY4elFCdFVWaS93RENXK0gvQVBvSzIvNW1qL2hMZkQvL0FFRmJmOHpRQnRVVmkvOEFDVytIL3dEb0syLzVtai9oTGZEL0FQMEZiZjhBTTBBYlZGWXYvQ1crSC84QW9LMi81bWovQUlTM3cvOEE5QlczL00wQWJWRll2L0NXK0gvK2dyYi9BSm1qL2hMZkQvOEEwRmJmOHpRQnRVVmkvd0RDVytIL0FQb0syLzVtai9oTGZELy9BRUZiZjh6UUJ0VVZpLzhBQ1crSC93RG9LMi81bWovaExmRC9BUDBGYmY4QU0wQWJWRlpFZmlqUUpEaGRXdFIvdlNCZjUxbzIxNWEzWXpiWE1NNDlZM0RmeW9BbW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaXFXb2F2cHVtRE43ZXd3SHJ0WnZtUDBIVTBBWGFLNUc3K0l1aFFFaUg3VGNuc1Vqd1A4QXg0aXN5VDRvUUEvdTlKa1lmN1V3SDlEUUI2RFJYbmkvRkdQUHphT3dIdGNaL3dEWmF1Vy94TTBwemllenVvdmRRckQrWW9BN2Vpc1N3OFc2RHFCQ3c2akVybitHWE1aL1hHZndyYkJCQUlPUWFBQ2lpaWdBb29vb0FLS0tLQUttbC84QUhsLzIway85RGFyZFZOTC9BT1BML3RwSi93Q2h0VnVxbDhUSXAvQXZRSzVmV1o0YmJ4dHBNMDhxUlJyRkpsM09BT0dIV3VvcXZjMk5uZHNHdWJTQ2RsR0FaSXd4QS9HcExPZjhWYXZwdHpvc3RwQmNSWFU4eFZZNDRqdk9jam5pbTZqSExEcWZoYUtZNWxRTXJuMVlLbWE2R0RUckMyazh5M3NyZUYvNzBjU3FmekFxV1MzZ2xramxraGplU01rb3pLQ1V6MXdlMUFHUHFGMzRmdnJtV3gxSXdyTENjZnYvQUpPb3o4ckhGVi9DcmtYZW93VzB6ejZaRXlpQ1J5VGc0K1lBOXdQOFBXdDI0czdXNng5cHRvWnNkUE1RTmo4NmxqalNKQWthS2lMd0ZVWUFvQTVid25mMmxxdDdaM0Z3a1Z3OTgrMk5qaGpuQUdQeEZVcld5MFgrM2RXaDF0WTBtYTRNa1Jsa0tBb3hKNE9RSzdGckd6YTRGdzFwQVp3YytZWXh1L1ByUmRXVnBlQUM2dFladHZUekVEWS9PZ0RLMHUwMFR5cjFORjhvdVUyU0ZITERrSEhKT1B5cW40VjFTeHN0Q2pzN3k2anRyaTNaMWtqbFlLUWR4UFE5ZXRkSkJCRGJSaU9DSklrSDhLS0ZINUNvNXJDeXVKUE5uczRKWlA3enhoaitaRkFIS2VJTlJmVlBCODkwMFBscDlwQ3hIKytnUERmenJmOEFFLzhBeUxsLy93QmNqVithMnQ3aUh5Wm9JNVl1UGtkQVY0OWpUNVlvNW8yamxqV1NOaGhsWVpCK29vQXA2SC95QWRQL0FPdmFQLzBFVmkyVjFERDQrMVNLVndqVFJ4aE1ucVFxOGZYL0FBcnBrUkk0MWpqVlVSUUFxcU1BQWRnSzV5TFRVdS9GV3NDOHRESmJTUnhiUzZIYVNGSFErdjBvQWM1RTN4QWpNWkRlVlpZZkg4SjNIZy9tS2k4T1hWdmI2eHJGck5Na2M4bDZ4UkdPQ3dKT01ldGJ0aHB0bHBzYkpaMjZRaHV1T1NmcVR6VXJXZHE5d3R3OXRDMDY5SkNnTEQ4ZXRBSE9hTGVXMm1henJGdGZUcGJ2SmNtWkRLMjBNcHllQ2VLMWRLMWNhcGUzcXdJR3RJQ3FwT0R4SWNjL2xWNjRzN1c3QUZ6YlF6QWRQTVFOajg2a2lqamhqRWNTS2lEb3FqQUg0VUFPb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29xSzZ1b0xPMmU1dVpWaWhqR1dkamdDZ0NXaXZPTlE4UzZ4NHB2SDB6dzVFOFZ0MGVmN3JFZXBQOEk5dXAvU3V6OE9hVkpvMmtSMmMxMDF6SUNXWjJKNm5zTTloUUI1VjRpZ1c2OGZYTnU1SVNXN1ZDUjFBSkFyMFFlQS9EZ3R6RjlpWW5IK3NNcmJ2cjF4K2xjQnJIL0pTSC82L2svOUNGZXlVQWVKcWt2aGZ4c3NhU01mczF3Qm51MFo5ZnFwcC9pWnhkK09ybEwrVm80ZnRLeHUvd0RjakJBeVB3NXAzalVpNjhjM2l4bk82U09QSTlRcWcvcUs3N3hMNEpzdGR1VGVKTTFyZE1BR2RWM0srT21SeHorTkFDMjNoUHdqY3dLbHZid3pqSDNrdUdZbjN5R3FMVnRDczlDOEdheERaZVo1Y3FtUWgyemc4RGo4cTVIV2ZBT282VFl5MzBkM0RQSEFON0JjcXdBN2ovOEFYVTJpNjNlWC9nN1hMQzhtYWJ5SUEwYnVjc0FUZ2dudjJ4UUJiK0UzL0h6cWYrNUgvTnE3N1ZOTHN0WHN6YTMwSWxpSkRBWndRUjNCSFN1QitFMy9BQjg2bi91Ui93QTJydGZFdWt5NjFwRDJjTjAxdExrTXJqT0NSMk9PeG9BemYrRUI4T2Y4K2tuL0FIK2IvR2ovQUlRSHc1L3o2U2Y5L20veHJBMDd4UHEvaGU4WFRQRWtUeXdkRW4rOHdIcUQvRVAxSDZWNkRiWEVOM2JwY1c4cXl4T01xNm5JSW9BNTMvaEFmRG4vQUQ2U2Y5L20vd0FhUCtFQjhPZjgra24vQUgrYi9HdW5vb0E1ai9oQWZEbi9BRDZTZjkvbS93QWFQK0VCOE9mOCtrbi9BSCtiL0d1bnFwcXVvdzZUcHMxL2NLN1JRZ0ZoR0FXT1NCeGtqMW9Bdy84QWhBZkRuL1BwSi8zK2IvR2ovaEFmRG4vUHBKLzMrYi9HcDlROFhXRm1iYU5MZTZ1cmk0aVdaWUlJOXpxcEdSbm4rV2FzV3ZpRzJsMDI0dnJ1MnV0UGl0OGVZTHVMWWZ3SGYwb0FvZjhBQ0ErSFArZlNUL3Y4MytOSC9DQStIUDhBbjBrLzcvTi9qVEI0NnNRRm1tMDdVb2JOamdYVHdmdS9yblBTdW0rMFEvWmZ0WG1yNUd6elBNejh1M0djNTlNVUFjNS93Z1Boei9uMGsvNy9BRGY0MGY4QUNBK0hQK2ZTVC92ODMrTk1QanJUOXZuaXcxRTJPZHYydnlQM2VjNDY1NmZyN1ZvYXI0bXNkTyt6SXFUM2s5MHUrR0cyVGV6cjYvU2dDbC93Z1Boei9uMGsvd0MvemY0MGY4SUQ0Yy81OUpQKy93QTMrTlg5SThTV09xQzVYYk5hVFdvM1RRM0tiR1FldjByT0hqclQ4ZWNiSFVCWTd0djJ6eVAzV2M0NjUvOEFyKzFBRHY4QWhBZkRuL1BwSi8zK2IvR210OFAvQUE2M1MybFg2VE5WbTc4WmFQYmFoRllySkpjVFNPc2Y3bGNxcGJwa2tnZmxtdWdvQTVLVDRkYUE0K1VYTWY4QXV5LzRnMW1Ybnd3dHlDYkxVcEVQWlprRFovRVkvbFhvRkZBSGpkNzROMXJTSkRMSnA4ZC9BdlV4TXpEOGdRMVhkRmJ3VGZPc0YvWXkyRTVPTXZPeGpKLzNzOGZqK2RlcjFpNjU0WDByWEVKdVlBay9hZUw1WC9IMS9HZ0NpdmdQdzA2aGt0WFpTTWdpZGlEK3RML3dnUGh6L24way93Qy96ZjQxekovNFNId0ZQMSszYVNXOTlvLytJUDZIM3J2TkUxdXgxeXlGelpTWnh3OGJjTWg5Q0tBTW4vaEFmRG4vQUQ2U2Y5L20vd0FhUCtFQjhPZjgra24vQUgrYi9HdW5vb0E1ai9oQWZEbi9BRDZTZjkvbS93QWFQK0VCOE9mOCtrbi9BSCtiL0d1bnFLNm5TMXRacmlRRXBFak93WHJnRFBGQUhPLzhJRDRjL3dDZlNUL3Y4MytOSC9DQStIUCtmU1QvQUwvTi9qVTAvakhUWWRNczd6eXJtUnJ6Smh0MFFHUnNIQjR6ajlhczZaNGdqdmtuYWF3dnJCWUU4eDJ1NHRpN2ZVSE5BRkQvQUlRSHc1L3o2U2Y5L20veG8vNFFIdzUvejZTZjkvbS94cGg4ZFdKVnBvdE4xS1d6VTROMHNIN3Y2NXowcm83Tzh0NzZ6anZMYVZaSUpGM0s0OUtBT2Y4QStFQjhPZjhBUHBKLzMrYi9BQm8vNFFIdzUvejZTZjhBZjV2OGF0V25pdXd1N2l3aWpodVI5dWFSWVhaVkNuWjFQWG9lMVZCNDRzM2VSWWRLMWFZUnVVTFJXNFpjanJ6dW9BWC9BSVFIdzUvejZTZjkvbS94by80UUh3NS96NlNmOS9tL3hxemZlSzdHeWp0UTF2ZHlYVjBna2p0STRzeWdIMUdlUC9yR3JXamF6L2FyU29kT3ZySjR3Q1JkUmJNNXowOWVsQUdaL3dBSUQ0Yy81OUpQKy96ZjQwamZEL3c2UnhiU3I5Sm1ycUtLQU9TaytIZWdPUGxXNVQvZGwveEJyTnZQaGhhc0NiTFVwVVBZVElHeitJeFhmMFVBZU8zM2duVzlLZnpUWlI2aEN2WHltWTUvQVliOHFzYU5KNE11NUJiNm5wMDFoUG5CWXpPVXo3bk9SK1A1MTYxV1JyWGhyU3RiUS9hN1lDYkdCTkg4cmo4ZS93Q09hQU0yUHdKNFpsaldTTzNaMFlaVmxuWWdqMk9hZC93Z1Boei9BSjlKUCsvemY0MXpNdHQ0aDhCemVkYnlHOTBvdDh5ODdSOVIvQ2ZjY2Z5cnVkQTEreDE2ejgrMGZEci9BS3lKdnZJZmYyOTZBTXovQUlRSHc1L3o2U2Y5L20veG8vNFFIdzUvejZTZjkvbS94cnA2S0FPWS93Q0VCOE9mOCtrbi9mNXY4YVArRUI4T2Y4K2tuL2Y1djhhNmVvcnFkTFcxbXVKQVNrU003QmV1QU04VUFjNy9BTUlENGMvNTlKUCsvd0EzK05IL0FBZ1Boei9uMGsvNy9OL2pVOTE0dzAyM3NMSzU4cTVsZThYZERieG9Ha0k5eG5INjFZMDN4QkhleDNEejJGN3A2MjZlWTdYY1d4Y2V4enowb0FvZjhJRDRjLzU5SlA4QXY4MytOSC9DQStIUCtmU1QvdjhBTi9qVEQ0NnNTaG5qMDNVNUxOVGczUzIvN3Y2NXowcm83Vzh0cnl5anZMZVZYdDVGM3EvUVkvcFFCei8vQUFnUGh6L24way83L04valIvd2dQaHovQUo5SlArL3pmNDFic2ZGRmpmVDZmRkZEY3I5djh6eVdkVkFJVE9TZWM0T0RpcU1manF5bTNHRFNkV21WV0tsbzdjTU1qM0RVQVA4QStFQjhPZjhBUHBKLzMrYi9BQm8vNFFIdzUvejZTZjhBZjV2OGFzWDNpMnhzMHRWTnRkeTNWekdKRXRJNHN5Z0grOE04VmMwYldQN1Y4MVRwMTladEZqSXVvdG1jNTZjODlLQU12L2hBZkRuL0FENlNmOS9tL3dBYVArRUI4T2Y4K2tuL0FIK2IvR3Vub29BNVdUNGZlSG5HRmhtajkxbFA5YzFtM1B3enRRMit3MU80Z2NjanpGRGZxTVYzbEZBSG5Scy9IZmgvNXJlNC90SzNYK0hQbThmUS9OK1ZYOUkrSWRwTko5bTFlM2F4bkJ3V3dTbWZjZFYvV3UyckwxbncvcG10eGxiMjJWbnhoWlY0ZGZvZjZIaWdEUmhsam5pV1dHUlpJM0dWZERrRWV4cDllWjNHbStJUEEwelhlblNtODB6T1hRaklBLzJsN2Y3dy9IMHJ0UER2aU94OFFXdSszYlpPby9lUU1mbVQvRWU5QUd4UlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGWXV2K0o5TTBHTWk1bDMzQkdWZ2o1Yy9YMEgxcm0vR0hqc1dyU2FmbzdocGg4c2x3T1Fuc3ZxZmV2TlpaWkpwV2xsZG5rYzVabU9TVDdtZ0RwOWE4ZWF4cVJaTGQvc01CL2hoUHpINnQxL0xGY3M3czdGM1lzeDVKSnlUVnpTdEp2dFl1dnMxaEFaWk1aUE9BbzlTVDByUnZ2Q0dzMkZ4QkZjUUlvbmNScElKQnMzSG9DZTM0MGdNR2lydDNwVjdaNm9kTm1nWVhXNEtFSE9TZW1QWE9hMDR2QnV0VFgwOWxIRkUwOENxMGlpVmZsM1p4L0tnRG42SzNOVThKYTNwVm8xMWRXbjdoZnZPamh0djF4VTlwNEkxNjh0SWJxQzNqTVV5QjBKbFVaQkdSUUJ6bGFtaytJZFcwZGg5anZIV01mOHNtTzVEK0IvcFZwZkNHc3RxcjZhSUUrMHBFSml2bURHMG5IV24zdmdyWDdLMWU1bHN3MGNZM05za1ZpQjY0em1tQjJ2aC80aFdWOHl3YW1nczV6d0pNL3UyUDEvaC9IODY3UldES0dVZ2dqSUk3MTg2MTAzaGJ4amU2RTZ3U2xyaXd6ekVUeW51cDdmVHBRQjdMUlZiVHIrMTFPemp1N09VU3d1T0NPM3NmUTFab0FLS0tLQUttbC84ZVgvQUcway93RFEycTNWVFMvK1BML3RwSi82RzFXNnFYeE1pbjhDOUFvb3JOdmRZUzAxQVdTMmQxY1RHSVM0aFZTQXVTTzVIY1ZKWnBVVlFzZFdndkxoN1l4VDIxd28zZVZPbTFpdnFPb0lxL1FBVVVVVUFGRlVwOVV0cmZWTGZUNWR3bHVGTEljRGJ4Mno2MUxkM2tkbzF1c2lzVFBLSVYyam9TQ2VmYmlnQ3hSUlJRQVVWRmQzTU5uYXlYTTc3SW94dVkxbWYyNlkvTGx1OU91Ylcxa0lWWnBOcEF6MDNBSEswQWJGRlp0M3F6UlhiMnRwWlRYazBTaHBCR1FvUUhwa2s5ZmFrL3R5MU9scGZCSlR2ZnlsaEMvdkRKbkd6SHJRQnAwVm0yZXJHYTkreFhWbkxhWEJYZWl1UXdjZDhFSHI3VkUydHZJOHBzOU91YnVHSmlyeXhsUUNSMTJnbkxmaFFCcjBWbW5XSTN0WUxtMnM3cTdpbUJJTUtBN2NjWU9TT2Y4QUNrc3RhanU3eVcyTnBkVzd4SjVqbVpWQVVkczRKL3lLQU5PaXNRK0lSNVAydit6cm4rejgvd0RIengwL3ZiYzV4NzFjdnRVUzFlR0tHR1M2dUp3V2pqaXh5bzZzU2VBT2FBTDlGWjFwcXlUL0FHbEo3ZVcybnRsM1NSTU54MitveG5jT08xUzZacVVPcHhTeVF4eXhpS1V4TXNxN1RrQUhwK05BRnlpaWlnQW9xcnAxOUZxTm9MaUpYUWJtVXE0QVpTRGdnNEpwbjlxVys2L0JEaGJJQXl2Z1lQeTdzRG5xQlFCZG9yUHRkV2h2TkpHb1cwRThxbkk4cFZIbVpCeGpHY2UvWHBWWC9oSWwrMWZadjdLMUh6dG5tYlBMVE8zT00vZTlhQU5xaW9iV2MzTnVzcGdsZ0p6OGtvQVlmWEJOUWFmcWx0cUUxM0REdUVscktZcEZiR2NnNHlQWTRQNVVBWGFLcnhYa2N0OWNXaXF3a2dWR1lrY0hkbkdQeXF4UUFVVVZSMURVbzdKNG9WaWt1TG1YUGx3eEFaSUhVblBBSHZRQmVvck90TlY4MjhGbmRXa3RuY3NwWkZrSVlPQjF3d09DUjZWSE5yYVIzOXhaeFdGNWNTUWJkNWhSU28zREk2c0tBTldpcWVuYWpCcU1jaGlXU040MjJ5UlNydGREN2lvcnpWVERlZlk3V3psdTdoVTN1c1pBQ0wyeVNlcDlLQU5HaXF1blgwV29XM25SSzZFTVVkSEdHUmgxQm8rM1JIVXpZS3J0S0kvTVlnRGFvemdaUHFhQUxWRlp0M3FwaXZHczdTMGx2TGhGRFNLaENoQWVtU1NCaytsVGFkcU1lb1J5Ylk1SXBZbTJTUlNERElmODk2QUxsRloxNXFoZ3ZCWjIxcExkM08zZXlJUW9SZTJTVGdmU2kyMW0ybXRMbWVVUGJtMXlKNDVSaGs0eitPZTJPdEFHalJXT211c0doYTUwNjV0cmFaZ3FUU2JjWlBUY0Fjcm4zcWU1MVI0SjNpR2wzOHdYK09ORktuNlpZVUFhTkZaVU92V3NtbHlhZzBOeEhFcitXRmRSdWRzNHdvQk9lZUtXMzFoemR4VzE1WVRXYlQ1OHBuS3NySHJqSVBCOWpRQnFVVkJkM0J0WVBOVzNtbk9jYklRQzM2a1ZucnJ5bTh0N2FUVGIrSjUyMnB2UmNlNSs5MEhlZ0RYb3JHbDE4S0pab3JDNG1zNFdLeVhDYmNjZFNCbkpBOWExNDVFbGpXU05neU9BeWtkd2FBSFVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBUlhkekJaV3NsemN5Q09HTmR6TWV3cnpaMzFMNGc2eVk0eTl0bzhEYy93Q0o5WFA2ZnptOFRYMXo0dDhSUitIdE5mRnJDMzc2UWNna2RXUHNPZzlUK0ZkN3BlblcybFdFVmxhSnNpakdQZGozSjl6UUFtbDZaWjZUWkphV1VJampYcjZzZlVudWF1VVVFNEdUUUI1THJ1Z2EzZStNTCtleHNaeHRrTXNjcFVxcHhqRzFqd1RSTjRzOFkyaUcxdUZramsrN3VlMncvd0RMRmQ3ZmVNUEQ5aTVqbDFGSGNkVmlCZjhBVWNWVmc4ZmVIWlcydGR5UmU3eE5qOUFhQU9ROEdlRjlRdjhBV285VTFHR1NPM2lrODR0TUNHbGZPUndlb3p5VFYzWDlhOFdhVHIxNTluUzRheU1oTWUrRGVtUFk0L3JYb1ZuZVd0OUFKclM0am5qUDhVYkJoVTlBSGp0NzRpOFU2N2JOWStYSzhjbkRwQkFjdDdIQXpYVGVHL0J0MWIrR3RTanU4UlhsOUZzVkNjK1dCbkdjZXA2L2hYYlhWM2JXVUJtdXA0NEloMWFSZ28vV3VmbjhlK0hZVzJpN2VVai9BSjV4Tmo5UUtBT004SHc2M29uaWlLMWt0Sm9ZNTJFY3dhSWxTQjNCNmZpSzlackJzZkdQaCsrY0pIcUNSdWY0WmdVL1U4VnZBZ2dFSElQUWlnQ25xdWwyZXIyVFdsN0NKSTI2ZXFuMUI3R3ZQb1pkUitIdXJpQ2N0YzZSY05rRWZ6QTdNTzQ3L3dBdlRhcDZycHR0cTJueTJWMm02T1FkZTZuc1I3aWdDZTF1WWJ5Mmp1YmVSWklaRjNLeTlDS2xyemp3dGYzUGhieERKNGMxTi84QVI1WC9BSExub0NlaEhzMzZIOGE5SG9BS3dmSFAvSW42ai91TC93Q2hDdDZxT3Q2YU5YMGk0MDlwVEVKZ0J2QXpqQkI2ZmhRQnphNkxxcS8yZnJlaVhFQXVUWXh4U1EzQStWMTJqb1I5QjZkT3RaUGlQWFp0VTBackhVTFQ3SmMydDlFbDJnYktsQ0dPUWZxQjY5cTZpNTBMVmlzQ1dQaUdTMGlpaFNMWUxkWEIyakdlVDNxTzE4SFdhNmZmVzk5Y1MzazE4UTAxdzJGYkk2RmV1TUdnRFUxeU9FK0hyK09SVkVJdG5CR09BQXBySThQVzh0LzhPb3JUZGlTZTBraVV0Mnp1QS9wVUxlRU5SbnR4WlhmaVc2bXNCZ0dFUkFNVkhZdGs1L0t1bmd0bzdhelMxdHdJbzQwQ0lCL0NBTUNnRGdaYi9WYlB3YmNhTmRlSDdoRERidEcwNEk4dkdQdlovd0FNMUo0UHkzaWl6OHpuYm9zZmw1K3E5UHpOYTF4NFcxYTloK3kzM2llZWEwWS9QR3R1cU13OU4yYXRhajRYU2FhenVkTnZaTk91YlNJUVJ5SW9jR01kRklQV2dEbmZGUmRQRStyR0VjdG96YjhkeHVBT2Z3cmFaSWYrRllZSUFUK3pBZVA3M2w1LzlDcTFwZmhsTGFTOXVOUnZIMUc2dkkvS2xrZGRnMll4dEFIU3M0K0RMczJmOW1ueERjLzJYbi9qMzhwZDIzT2NiOC8weDdVQVptb29GOE1lRWlGQUxYTnVTY1l6OHRlaFZqNnJvRU9vVytuUVJ5bTNqc1pra1JRdWNoUmdMMXJZb0FLS0tLQUNpaWlnQnNzYVRSdEhLaXVqRERLd3lDUGNWNXpydWczdmhLKy90elFHYjdNUDliQ2VkZ1BZK3EveS9XdlNLUjFWMFpIVU1yREJCR1FSUUJtZUh0Y3RkZjA1YnEyTzFoeEpFVHpHM3A5UFExcVY1bnFkdGNlQlBFa2VvMmFzMmwzSjJ0SG5nRHFWK282Zy93RDE2OUh0YmlLN3Rvcm1CdzhVcWhrWWR3YUFKYXBhMS95QTcvOEE2OTVQL1FUVjJvYnkzRjNaVDJ4YmFKbzJqM1l6akl4bWdEaHRJME85dlBEdWg2cnBkekhEZjJrYnFvbEdVZFN6WkI5T3AvUHRTYS80ZzFHWFE5VzBqVTdKYmJVRWhXUU5FMlVrUXVvSkhwd2Y1MXVyNGMxRzIweXpzdE8xNlMwVzNRcVNJRmJma2s1d1R4MW8wL3duRkZOZDNPcVhrbXBYTjFFWVhkMTJBSWV3QTZkQnpRQnE2UEZBTkJzb28xVXdHM1FBWTRJS2l1RjBpOGx0L2gvTGEyeEpudkx4clMyR2Y3Mk00OXNidWEyMThJYWpEYkd4dC9FMTFIWUhLaUV4QXNGOU4rZjZWbzJ2aGkxdGJyVFdpa1lXK25vd2poSXp1ZHVyazl6K0ZBR1BxRm5IcC9pcndwWncvd0NyaGprUWUrRjYxVjhLeWVJVnM3d2FYQllTVy8yeVhtZDJEYnNqUFR0MHJxci9BRVpiM1c5TzFNemxEWmI4SnR6djNESFh0V1ZiZUZkUnN2Tld5OFJUVzhVa2pTbEJicWNFL1UwQU0wZ0svd0FSdGNhWC9XcERFc2ZzaFZjNC9TdXNybkw3d3ZMY1QyOTliNnROYmFuRkVJbnVsUUh6Ui90TFYzUnRLdnJHYVNhKzFtZS9kMTI3V1FJaSs0VVo1b0ExcUtLS0FDaWlpZ0Fvb29vQVJsVjBLT29aV0dDQ01naXZPL0VmaHU2OE9Ybi9BQWtIaDRtT09NN3BZQnp0SGZqdXZxTzM4dlJhQ0FSZ2pJTkFHUDRaOFFXM2lIVC9BRDRzSk9uRTBXZVVQK0I3R3Rpdk5kZXNKL0JmaUNMV3RNUS9ZWm0yeVJEb005VitoNmoweDdWNkhZM2tHb1dVTjViUHZobVVNcC96M29BbnFsclgvSUR2L3dEcjNrLzlCTlhhaHZMY1hkbFBiRnRvbWphUGRqT01qR2FBT0swL1E3NjcwWFF0WDBxNWlodnJXQW9GbUdVZFRuajI2bjgrMVFlSVBFRi9jYUJxMms2blpDMTFDT0pKQVltM0pJbm1LQ1I2ZGZYMTlLNkErSHRSZzArenROTzE2UzBXM2o4c2tRQjkvT2M0SjRvMC93QUp3eFNYaytwM2ttcFhOM0VZWkpIRzBCUFFBZE9nL0tnRFUwdU9BYUhhUktxK1I5blFZN2Jkb3JoZEp2Sm92aDhiSzJZK2RlM2JXbHQ5R1BKL0xkVzJ2aERVWTdVMk1QaWE2VFQ4RlJENVFMQmZUZm4rbGFWdDRhdGJXODA2U0tSaGI2Zkd5d3drWnk3ZFhKN244S0FNeTd0WTdIeGg0V3RJUmlPR0dkRitnanhXWDRNazhRcnBVNDB1Q3drdC90TDh6dXdiZHhucDI2VjJGNXBDM1d1NmZxaG1LdFppUUNQYm5kdVhIWHRXTlplRTlSMDZKNHJIeEhOQkV6bDlndDFQSitwb0Fib2dWL2lGcjd5OHlwSEVxWjZoZG96ajlLNjJ1YnZmQzBzOXhiMzl0cTAxcnFjY1Fpa3VWUUh6aC90TG5GWHRHMHErc0paWmI3V1o3OTNBQURJRVJmY0tNODBBYTFGRkZBQlJSUlFBVVVVVUFCQUlJSXlEMUJyejN4UjRXdU5JdWY3ZThPN29taU8rU0dQK0gxS2owOVZyMEtpZ0RDOEtlSklQRU5odndzZDNIZ1RSRHQ3ajJOYnRlYitLZEx1UENtdFJlSXRJWGJidStKWWg5MVNlb1A4QXN0K2gvQ3U5MHZVTGZWZE9odnJac3h5cm4zQjdnKzROQUZ1aWlpZ0Fvb29vQUtLS0tBQ3ZQZkgvQUl1TVJrMGZUWk1QOTI0bFU5UDlnSCtmNWV0YjNqZnhEL1lXazdZVy93Qk11TXBGL3MrcmZoL01pdkpyYlNOVnY0dnRGdFlYVndqRS92RWpaZ1QzNW9BbzBWYnU5TXY3Rm94ZDJVOEJreUVFa1pYZGowejE2aXBMclJkVXM3Y1hGenA5ekRDZjQzaklBK3ZwU0E2WHcrNzIzdzUxeTV0Q1Z1VEtxTXk5UW55LzBacTVZNmhxQjA4V2h1cHZzbS9jRTNIYnVyWjhIM3VzV2N0d05QMDE5UXRwVjIzRU93c3BIMTdIazFQck9yMytxUmpRTERRL3NFYXR2ZTFoakpkaU9ja1lIMTZVd09pMDdWYkc4MEZmRlY3QVpOUjB5TXdFOXBHT0FwUC9BSDErR1Q3Vm5lQ2JnWDF2NG11TlJuZFZtaERUU3I5NEFoOGtWbHd4NjVaZUZyL1NuME82RVU3aVY1bWpZYkFwQjZZLzJhaTBIVmJydzFhenlYR2ttZTExQkFvTXdLbzZqT2NjWVAzcUFPa3NFMHovQUlSblc3ZncvZnpYczd3WmtTNnlOcVlPU293T2NFL3BTNnFtalA0YjhQblZkUXVyUmhaanloQUNkM3lyblBCOXF5NWRkMUNiVFRiNlA0WmpzVnZ3WXhMQkVTWlFBY2hTQU04WjljYzFkaTFEVkRwMW5aM2ZnbDd2N0xFSWtlV0ppZUFCM1hqT0tBS1h3M0ptMVBVaExLVkJzbUJjODdSa2Mxc2FQYTJQaHZUYjNYbzlaazFTMzhzdzdFUWhkeEl4bmsrMzUxaC8yN1BZM0Z4cU1IaHhiTzNsZ2F5WUlDcUI4a2s1eDk3akdQYXFHZ2FsZldHajZrZzAyUzgwMmRka3h3UXNiZXU3QndlUitsQUhQVVZQYjJkMWRMSTF2Ynl6Q0pkOGhSU2RxK3A5QlVGSURjOExlSTdudzlmaDF6SmF5RUNhSFBVZW85eFh0Tm5kd1gxcEZkVzBna2hsWGNyRHVLOEpHaWFzYlA3V05PdWZzK04zbWVVY1k5ZnA3MTAzdzY4Ukd3dnhwZHkvK2pYTGZ1eWY0SlA4RDArdUtZSHExRkZGQUZUUy93RGp5LzdhU2Y4QW9iVmJxcHBmL0hsLzIway85RGFyZFZMNG1SVCtCZWdWejEzZTI5ajR4OHk0WjFWckFLTnNiUHo1aDdLRFhRMWtpR1gvQUlTOXAvTGZ5dnNJVGZ0TzNkNWhPTSt1S2tzcjIwdzFuWExXL3RFZjdIYlJ5TDV6S1ZFck5nWUdlU0JnMVZHcDM4K2xTYXhIcU1NWUFhUkxNb3BCUlNlQ2Z2WklIYXRDMGhsMHpXcFlJNG5heHU4eXFWVWtReWZ4QStnUFVlOVpPbXBwZGhZcFphaHBIbVgwUktrQ3ozbVhrNEliR0R4Nm1nRFVsdkx1L3dCU2dzN1M0K3lSdGFpNWFRSUhZNU9Bb3p4VW1qM1Y3TGZhaGEzc2lPYlprVldSZHVRVnpuOGVLaXVkOWhyMGQ2TFNhUzFlMEVBRUVlNG9ReEl5bzZEQnB1Z1N5emF4ck1rMEpoWnBJanNicUJzNHo3NHhRQkZyRmovYUd2TEFyYkpSWk04VC93Qnh4SXBVL25TUzN4MUMxMGVaMTJUTGZySE1uOXh3cmdpdEJvcFArRW9qbTh0dktGbTZsOGNaM3FjWjlhenRUMDY0ajhSV1Z6Ykl6VzAwNnlUaFJrSTZxUUc5Z1FlZnBRQmFXVFVkVHU3ejdOZkMwaHRwZkpVQ0pYTHNBQ1MyZTNQYkZYTkZ2WDFEU29McVJRc2pBaGd2VElKVTQvRVZuVzExL1k5NXFFVjFCY0VUM0JuaGFLSm5FZ0lIeWpBNmpIZXBOTCsxYVhvdW53dmFQSkxMTnRrVmYrV1FkbWJKNFBUSUZBRHZGMy9JdDNQKzlILzZNV2p4Zi95Szk3L3VyLzZFS244UldrMTdvZHpiMjY3cFNGWlY5ZHJCc2ZwV1pxK29Mck9sdnB0cGIzUDJtY3FySzhMS0l1UVNXSkdPMUFHNnlXMW1ibThZTEh2RytaL1VLTVpQNFZsK0g3Tlo5TVM2dVlmbW11V3ZFVS93RmlkcC9MK2RSYTljU1QzOFZqSlozajJDNGttYUdCbkVwN0prZHU1cTNkYXRLdWt6WEZucDkyMHluWWtUd01DVDY0NjRGQUVjaCsyZUxZVmo1V3doWXlNUDd6NEFYOGhtcy93M2Rha05DaVd5c1k1RWphVExTeTdQTU85amhjQSt2VTFkMEs0aXQ0MHRmc3QrWnBXTHl6eld6S0hjOGtrbnAvOEFxcURTcjlkRnNUcHQ1YjNQbnd1K3dSd3M0bUJZa0ZTQmp2M29BMHRNdTdQK3dVdkxlUHliWUkwaFQrN2drdCt1YWkwQzI4elNEUGNxR2x2OHpTKzRib1BvRndLb216dkxYd0hKYStTN1hKamI5MmczTjh6azQ0OWpXLzVUeFdYa3dFSzZ4N1VKNkFnWUZBR0xyMTM5azAyVFRZYktaSUdqRUgyZ3IrNWlVakdTUms4RDJyVDhpQ3poUzZqZ2VlV0dFUktZK1daT09Cemp0bXNpYlYzdU5Ga3NaclM1T3BTUW1Gb3ZKT0djakJiT051M3YxNlZaTTkxb3dzSTUwZVd5UzJFVXJSSVhLU0RHR09PY1l6UUEzU0p2dCt1WHQ1SkcxdkxIRWtDd1NERGhjbHR4SHVUeGpQU3BQRG4zdFcvN0NFdjhscHRneHY4QXhETHFjVWNpV3Eyd2dWcEVLbVJ0MjdJQjV3S2wwR0dXSnRVODJOMDMzMGpydVVqY3BDNEk5UlFCclVVVVVBWW1tc3RqckdyV3JuYkVTTHRNK2pENWorWXJNenU4UFFKTXdqZlY3dnpKQ1RqQ01keC84ZFVEOGF0K0tiUzhlZTNtc1ltWjUwYXpsS2duYWo0NVBvQmc4MVlmVDQ3dlhJNFpyUVBZMlZzRmpFc2VVWjJQYlBCd0ZGQUNhTkxGRHJXcDJVVWlORzVXNmoya0VmTnczNmo5YWVmK1IxWC9BTEI1L3dEUmdwbDFwOGRocStuWGRoWkxHaGRvSnhCRmo1V0hCT0IwQkhXcGpETC9BTUplcy9sdjVYMkVwdjJuYnU4d0hHZlhGQUd0WEkyNE5oTlByTVlPMk85bml1UU84WmZyL3dBQlBQMHpYWFZsYVJiRTJ0L0Rjd3NFbHU1L2xkY2JsTEg5Q0tBSUV1VnR0VjF5N3h2V0syaGt3RDFBVnpVTDNPcTJlblFhclBlck1qbU5wYmZ5Z0ZWWElIeW5ya1o3NXF2cG1sMzBhNjdZeWhpR2dXQzNsWWNPdTF3dlBmQUlCcDF4Y1BxR2kyK2t4V3R3dDJmS1NSWGlZTEh0SUpKYkdNZkx4ZzgwQWRSV01PZkd6ZTJuai8wWWEwSUxtU1crdXJkclo0NDRRbXlVNXhKa0VuSEhhczNVREpZYS9IcWJReVMyejIzMmR6RXBZeGtOdUJJSE9LQUhOZTJWMXJWbkhMYjNjZHhHMGdoYVNJb3JIYWQzSjY4VlVodm1zL0V1c2hiSzZ1ZHhoLzFDZzdmM1k2NUlxZFovN1cxeXhudFk1ZnMxbjVqUExKR1VERmwyaFJuQlBYTlJ4M1Q2ZjRoMWFTV3l2Skk1akVVZUdCblU0VEI1RkFFbmgyVDdUZmFuZXlEeVo1blJXdDJCRFJxb3d1Yyt2SjlLMXZLdDdlU2U3S3FqT29Ncms5UW9PTS9UbXMzVFZudTlidU5VZTJsdG9UQ3NDSkt1MTN3U1N4SGIwcUh4RlBMTGN3NmViVzdlemI1N2g0WVdmZUFlRUJIcjM5cUFGMFdkTFRSYnpWYmdHT0s0bWt1Z0QxMm5wK1lBL09sMHFSck43YzNjYkc5MVdScEhQYU1CU1F2NEFBZm5WbG83YlhMQnJlUzN1N2VKV1hoME1SNDVHUGFzNjkwTWpWdE5DWE9vdkdXazN5R2QyTWZ5SEhQOE9UeDcwQUxielhhZUo5YWlzN1pKWkdNSkx5UHRSQjVmZkFKSjlzVm9hUGNwY1hGNkpMVVc5OGpxdHdBY2h2bCtVZyttS3FlZC9ZK3UzMDExSE1iZTdFWmpsUkdjQXF1MGc0eWMxUG9heVRYMnBhaTBMeFJYVHA1U3lEREVLdU00N1pvQWlXNnQ5TzhTMzV2WlZnUzVqaU1UeUhhcmJRd0l5ZU04aW9OTE5ycTJzYTRHak1sdEtzQStZRWJ3RlBQMDRxNWVYN1dlcFNKcUVETllzcXRESXNSY0t3enVEWUJPZW1LcVFDL21PczZuWlJORTl3SXhiQ1ZjRnRnT1RnK3VlTTBBTzEyOE55OGVtU1cwMXZETE9pdmN5cmlNZ01EaFNNOG5HQm5GWHZFVnhKQnBiUndIRTl5NjI4WjlDeHhuOHNtczNWYjlkYTB3NmRhMjl5dDFPVkRMSkN5K1RoZ1NXSkdPTWRxdjZ0RExQcTJrS3NidEVrenlPd1VrS1FoeGs5dVRRQmNUVDdWYlMzdHZLQmp0eXJSZzlpdlEvV3NpNXZEcUd0YWZheTIwMXBIRktaZzA2NDgxbEJBVmNaSGZQV3RQVjVieUMwV2F6UXlOSElyUEdveXpwbjVnUGZGWmwzZEpyVnpwOE5sRk4rNXVVdUpYa2laQkdGenhranFjNDRvQTZHc2ZTejl0MWkvMUJ1VmliN0xEN0JlV1A0c2YwcllySjhMd3l3NkZDSjQzam1kbmQxZFNEa3NUeUQ3WW9BVFdmSTAzdzlQQmJ4aGZNVm9vb3gvRTc1NEg0a210Q3dnTnJwOXRiRTVNVVN4NStnQXJBZTllWFhYdUx2VDc4dzJwS1d5SmJPd0o3eUgrUTlxNkszbUU4Q1NoSkVERE8yUlNyRDZnOUtBSktLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUs1N3h2clIwWFFKR2liYmN6bnlvaU9vejFiOEIrdUs2R3ZPZGRIL0NTZkVhMjB2NzFyWi82d2R1UG1mOCtGb0EzUEFHaERTZEZGek11THU3QWRzOVZYK0ZmNm42KzFkVlFCZ1lGRkFFZHpjUTJsdEpjVHlDT0tOU3pNZWdBcng3eFY0dnZOY25lR0IzZ3NBY0xFRGd1UFZ2WDZkSzZiNHA2cThWdGJhVkUyUE8vZXk0N3FEOG8vUEovQVZ6UGdidzZtdmFvelhJUDJPM0FhUURqZVQwWDlEK1ZBR2JwWGg3VnRYRzZ4c3BKSStubUhDcitad0t1M1hnbnhGYXhHVnRQTWlqcjVUcTUvSUhKL0N2YUlvMGhqV09KRlJGR0ZWUmdBZXdwMUFIZ09uYWpmNk5lK2ZhVFBCTXB3dzdIMllkL3dBYTlNVDRnMkI4T0cvWlA5TkI4djdNRDFmSFgvZDkvd0FLWHgvNFpoMURUcGRUdG9ndDdBdTlpby8xcURybjNBNmZsWGt0QUY3Vk5WdjlhdlBQdkptbWtKd3Fqb3ZzbzdWcDJuZ3J4RGR4Q1ZOUGFOVDA4MTFRL2tUbXUwK0h2aG1HejArTFZycUlOZHpqZEZ1SCtyUTlDUGNqblBwK05kdFFCNFRxdmh6V05JVHpMMnhlT1A4QTU2S1F5L21NNC9HdEh3cDR2dTlDbVNHWm5uMDhuRFJFNUtlNituMDZIOWE5a2RFa1JrZFF5TU1GV0dRUlhqL2ozdzVIb21vcFBhcml6dWNsVi91TU9xL1Ruai82MUFIcnR0UEZkVzhkeEE0ZUtSUXlzT2hCcVN1QitGbXFOTlozT2x5Tm55Q0pJcy8zVDFINTgvOEFBcTc2Z0RsUGlEb1ExVFJqZVFyL0FLWFpndXBIVmsvaUg5Znc5NnQrQ3RhT3RhQkhKSzJibUUrVk43a2REK0l4K09hNkFnRVlJeURYblBoNGY4STM4UTd2U003Ylc2ejVlZW5UY245Vm9BOUdyTThSYXEya2FXMXhGRDUwN3VzVU1aT0F6c2NDdE9zYnhWcDl6cU9rZ1dZVnJtM2xTNGlWamdNVk9jZnpvQW95NmpyMmtYVmsycW15bnRMbVpZR051ckswYk4wUEo1RmEwZXU2WkpaV2w0bHptQzhtRUVEN0crZHlTQU1ZeU9RZVR4WE1YT3NQNGwxYXcwZzJVbGhKRGNKY1RDNVlLeDJaTzFCMWJQUFB0VmEwc05YajB2UnRJT2t6ZzZmcUtUU1hCSzdDdTlqa2M1UDN2MG9BNm1MeExwZHpkTloyOXlUYzdXS3E4VHFHS2c1d1NBRGpGWkMrTDN0OUdqdkxsb1huYXlXZnlGUndTeGNybmR5QXZIMXJNaXNkZnZMN1Q1NysydjJuaG5jek03b1lRQ0RqWW81eFFtaDZvMm1QRjlqa0RuUlJCZzRIN3dTbHR2MXhRQjJHbmE3cCtveWVWQk1mT0VYbXNqeHVtRnpqUHpBZDZ0V0Y3YjZqWngzZHBKNWtFbVNyYlN1Y0hIUWdIdFhGZUk1ZFFqdExMVm9yQ1cydUpJWDArU0p5TjN6ajVDTWY3V2E3VFRiTmRQMDIyczB4aUNOVXlPK0Ixb0FzMFVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFGSFd0TWcxalNwN0djZkxJdkRkMWJzUjlEWElmRHJVWnJXNHUvRGw4ZHMxdXpORUQ3SDVsSDQ4ajZtdTlyenZ4ekUyaWVLZE84UTI2a0IyQWxBN2xlRCthbkg0VUFlaVZGZFRmWnJXV2N4eVNDTkMreU1aWnNET0FPNXA4Y2lTeHJKR3daSEFaU080Tk9vQTVWL0dUMnBqazFIUTcreXRIWUtKNUYrN24rOE8xWE5XOFNyWmFndW5XZGpQcUY0VTh4bzRlaUw2azFtZUo3ZytJcnhmRFduZk9BNGU5bkhLd3FEMHovZXovaDY0bTBKUW5qM1gwYkc0UndoZjkzYVAvclVBWDlQOFVXVjNZWHR6UEhMYVBZOFhFTXEvTW5wOWM0cWdualVJc056ZDZQZTJ1bnpFQkxwd0NNSG9TT3cvT3VlOFUvOGYvaTN5ODQ4bTEzNDZaM0ovbjg2Nlh4Z1lmOEFoWDl3ZVBMOHFMWi8zMHVLQUxXcmVKRnNkUVRUclN4bjFDOEtlWVk0Y1lSZlVudC9uMnBkUDhVV1YzWTN0eFBITFp5V1AvSHhETXZ6SjZmWE9LeXZER1ArRXkxYmZuelBzdHR0ejZlV3VmMXhXSjRxM2YybjRxOHJwOW10dCtPdWQwZjlNMEFkQ25qVUtrVjFkYU5lMjJueXNBdDA0QkdEMEpIWVYwZDllMjloWXlYbHkrMkNNYm1ZQXR4OUJYUCtLL0svNFY1TmpIbCtSRnR6OVZ4Vm5UTlZ1eEhaV2tta1hoSGx4cTF4aGRuM1JrOWVsQUV1Z2VJb2RkbnZJNHJXZUQ3TnN6NXd3V0Rad2NkdW42MXRWekhoMy9rY1BFLysvYi8rZ3RYVDBBRkZGRkFCUlJSUUFVVVVVQVZkVHNJTlUwNmV4dVZ6Rk11MCtvUFlqM0I1cmlQQVY3UHBPczNuaGkrUHpLek5GOVIxQTlpUG1INCt0ZWcxNTc4UkxhVFRkVzA3eERhakRxNFIvUXN2SzUrb3lQd29BOUNxRzduK3kya3R4NVVrdmxxVzJSakxOanNCM05MYlR4M1ZyRmN4SE1jcUIxUHFDTWlwYUFPV2J4aTFzOGI2bG9sOVkya2pCUlBJdkNrLzNoMnF4ZWVJNzIydTVZVThPNmhPa2JGUktpL0s0OVI3Vm4rSkpqNGx2VThPNmNkOFNPcjN0d3ZLeEFIN3VmWC9BQSt1TC9qUytrc2RDRnBhY1hWNjYyc0lCNStiZy9weCtJb0FoaDhiV2ttaURVV3M3Z05KT2JlR0FZWjVXd0R4N2M0cXpwdmljWE9xSnB0OXAxeHA5MUtwYUlTOGlRRHJnK3RaV282ZkJwZXNlRUxGQis1aGVWYytyWVhuNms4MWE4VmY4ak40WjJZOHo3US8vZk9GelFBNmJ4aG1lNUduNlJlWDF2YXNVbG5pQTJnanJqMXBMengzcFVGakZjd3hYRncwa2ZtZVdpZmNYSkh6SG9PUVIzcHZ3MzQ4S2pkOTd6MzNaNjU0NjFnMklQOEF3cXZWQ01iRE0yekhURzlmL3IwQWVoMms0dXJPQzVWU29saldRQTlzak5UVlMwWC9BSkFkaC8xN3gvOEFvSXE3UUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFRWHRwRGYyYzFwY0p2aGxVcXc5djhhNEx3WGN6ZUgvRTEzNGF2SC9kdXhNSlBBTFl5Q1A4QWVYOVFLOUVyZ2ZpWFl5VzcyT3ZXdnl6UU9FWmg5Y3Fmd09mekZBSGZVVlcwNjhUVU5PdDd5UGhKNDFjRDB5T2xXYUFDaWlpZ0FvSkFCSk9BT3BORmM3NDgxSTZkNFd1U2pZa254QW4vQUFMcitnTkFIbC9pdldHMXZYcDdvTVRDcDh1RWVpRHArZlg4YTYvdzhKVDhQb0JGcThlbE45cWI5KzdZQjYvTDEveml2TjY2M1N0ZjBOUERFZWo2dFozYzRTWXkvdWlBTTg0NXlEM29BZ2kxMmEyOFYyczJwM3phbGIyVXpCWkFkd0lQRzVmMFA0VjB0OGRUMUczMUc1MERYNHRTdDUwWXlXY29CZU5UMlVIMjQ2RDhUWE5TNnQ0ZHNyNnp1OUkwcVVtSnlaWTdzaGxkY1k0NU9ENzFwUStKL0RlbHpYR29hUnBkMUhxRXlGUUpHQWpRbnJqazhaOXZ5b0FmNGIxV3puOEx4Nk9tcnRvMTdIS1g4N0dGbHlUMVA0Z2RldzYxcGFaRHJNZnhBc20xZDRwaTFzNGluaVVCWkZBOWNkZWYxcm1OSzFuUVgwZE5PMXZTM2J5bUxKY1dvQWM1L3ZjalA2OXZTdEtQeHBZeGE1cDhzVmxOSHAxaEM4VVNBZ3lIY0FNbko5aDNvQWg4VDN1cFdNWldQeFN0K2s3T2p3eE9Ec1gwUFA0VjBrY05ocVhoRFJ0RXZDRWx2TFl0YnlIK0dSQU1mK2hmekZjclBmOEFnbVVTT3VsYWlKR3lRVElNWlA4QXdLcVdyNjlIZWFUb2x0YXJORlBweUVNNXdQbStYQlhCL3dCbWdEZDEzN2RvZmcvUWxWbXQ3eTNubFhLOVFjc0RqNmcvclVtb2E3cXNmdzkwcStTK2xXNmx1SFY1UWVXQUw4Zm9LeVBGSGl0UEVHaldNRHd1bDNDMjZWc0RZeHhqSTVxbmVhMWIzSGc2dzBaWTVCUGJUTkl6a0RhUVMzVG5QOFFvQTFiMlI1dmhmQkxJeFozMUJtWmozSjNaTmRQcE52RnB1bTZkNGFudG5JMUMya2E0Y0tma2Rod0Nmekg0Q3VPMC93QVFhYkY0ZnNOTHZJSjNFRjRMaVRhRklaUm5qays0cVhVUEgydFM2bExMWlhSaHRDK1k0V2pRNFgzT0NlZnJRQlo4STJzdGkzaWUwbUdKSWJTUkcrb3pYR3dPc1Z4SEl5QjFWZ3hVL3dBUUI2VjI2ZUw5Ri90dS92WHM3dnlyNjJXS1dNQmM3dWhPZDNUR0t5Yisvd0RDaTJwYlM5THVrdkZaV1EzRGJvK0dCSVliamtFWkZBSFh2ZjNHdDNndnZEZmlGRm1NZVA3T3VCZ2RPY0QxL0EvWEZlWlhhVHczc3lYQytYY0pJUTZnQWJXenowNmMrbGRqSDRsOExDK2oxZjhBc2U1aTFHTUFpT0pnSXQyTVo2LzBya05TdkgxSFViaTlrVUs4OGhjZ2RCazlLQVBaL0Irc2YyMTRmZ3VIYk04ZjdxYi9BSGgzL0VZUDQxdDE1VjhMOVNOdnJjdGd6ZkpkUjVVZjdhOC95elhxdEFFZHZDdHZGNWFFa2JtYm4zSlA5YWtvb29FbGJSQlJSUlFNS0tLS0FLVjdiWDBzeXlXbW9mWndCZ28wSWtVKy9VSFA0MHVtMkFzVmxaNW1ubm1mZkxLd3h1UFRwMkFIYXJsRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFObGtXS0o1SE9GUUZqOUJYQWZET0pyelVOVzFtWVprbGZhRDdzU3pmK3kxMXZpaVl3ZUdOU2tCd2ZzN2dmaU1mMXJHK0djSWk4S0I4ZjYyZDMva3Y5S0FPdG9vb29BOGkrSnJsL0ZXMDlFZ1JSK3AvclZidzE0dm44TzJVdHREWnhUZVpKdkx1eEI2QVkvVDlhM1BpcHBjZ3VMYlZrQk1iTDVNbit5UVNSK2VUK1ZjbDRjMDIyMWZWbzdHNXV6YmVhQ0kzQzdzdDJIVWRlZnhvQTZuL0FJV2ZlLzhBUU50LysrMm8vd0NGbjN2L0FFRGJmL3Z0cXUvOEt2Zy82QzBuL2ZrZjQwZjhLdmcvNkMwbi9ma2Y0MEFVVytKdDQ2RkcweTNLc01FYjI1RmNIVzk0dDBHRHc5ZlEya1YyMXhJOGZtUGxOdTBad081OURVZmhydzFlZUlybDBnWllvWThlWk13eUZ6MEFIYzBBZEJEOFNydUdDT0pOTXR3cUtGSHpub0Jpbi84QUN6NzMvb0cyL3dEMzIxWEI4TG9jRE9ydVQzeEFQL2lxWC9oVjhIL1FXay83OGovR2dDbC93cys5L3dDZ2JiLzk5dFdSNGs4WXorSWRQUzBtc29vZ2tna0RxeEp5QVIvV3VrLzRWZkIvMEZwUCsvSS94cmgvRUduMjJsYXZMWTIxMGJrUS9LN2xkdnpkd09lMytOQUcvd0RDOWlQRkVnQjROczRQL2ZTMTYxWG5Qd3IwcHc5enE4aWtJVjhpTFBma0ZqK2dINTE2TlFBVjU3OFNZMnNkVzBqV1loODhiYlNSNnFReS93QXpYb1ZjaDhUb1JKNFhXVEhNVTZObjZnait0QUhXeHVza2F1aHlyQUVIMUZWOVQxQzMwclQ1YjY2WmxoaXh1S2pKNUlBNCtwRlYvRGN4bjhONmJJVGttMmp5ZmNLQWF6L0hwejRVdUVJeXJ5UktmcDVpL3dDRkFGdTcxM1NZTkhnMXVaZ1lHeDVUN011QzNHQjc5Yy9RMXAyOHlYTnRGUEhuWktnZGMraEdSWG5sNXBkNld2OEFSM2djYWRwMGR6ZFFPUjhyNzArUlFmVlN6R3ExL2ZRVDZWR3NIbWk3dE5PZ2RwamZHTGF4UUViRS9pUFRQU2dEMUNpdlAzU1hWSWRldkxpOHUxa3RyU0dlSllwMlJGY3dCczRCeDFGVU5hMVFYRnROZFc1bFcrdG9ZR2VkcjRwODVWZnV4ZnhlL1NnRDBpNXM3ZTdhRTNFUWs4aVFTeDVKK1Z4MFA2MVBYbTJweWk0MC9YdFN1TCthUFViZTUyVzZMY01teFBseGhRZStUU3BQcUY1ck4zT3M2eDNjT29iRmVTKzh2WWdZQUlJaU1FRWQrOUFIcEZGZWR4MjhyYWJaWDQxQytTNHVOVSt5dXkzREQ5MlpHVWdEdFZiVmJpNTAzVkw3Um9KNWpZTGQyNElrdVNodzhaWXFaRGtxQ1IrbEFIcHRRejNjRnZOQkZMSUZrbllwR3AvaUlHZjVDdURzNEx1YlVOTzA2ZTlrVzFtdWJnQkxlOU1oUkJFRzJGeHp3ZlhzYXJmWm9QN1F0b2J5OXVCQmI2cFBhbzczRExzakNBZ2JzOGNuclFCNlhSVFlncXhJRU81UUFBYzV5UHIzcDFBQlJSUlFBVVVVVUFGYzM4UUxJWG5oTzZJR1hnS3pMK0I1L1FtdWtxcnFrSXVkS3ZJQ01pU0YwL05TS0FNcndOZUc5OEpXTE1jdkVwaFAvQVRnZnBpdHE2aCswMmswSG1QRjVxTW05RGhseU1aSHVLNHo0VlRGdER1NFQvQmNiaCtLai9DdXAxNjZtc3RDdnJxQmdzc1VMT2hJemdnVUFZbG40S0ZoRzBkcHJtcFFJeDNFUnVveWZYcFZ6VWZEQ1hkOUZmMitvWFZuZXBHSW1taWJtUlIvZUhyV1RjM1hpRkcwZGsxcEF1cEZRQjlrWDkxbGQzcnorbGFtdlg5L29uaHRKR3VWbXV2TVdON294WVZBemN1VkdlQU9LQUpOUDhMMk5wcDk1YXl2TGR0ZmY4ZkUwelpkL3dBZTJNa2lxU2VDb21XRzN1dFd2cm14aFlNbHJJdzI4ZEFmVVZac2I5N0hUNTlTMUhYNE5RdEFvdzBNS3J0YjArVW5KT1J4VDI4VzZTa0RTU200alpaVmhhSjRXRWlzeWxseXZYa0E0b0FYVmZEY1Y5cUthamJYdHhZWGlwNVprZ0krWmZRaWpUdkM5aloyTjdielBMZHZmZjhBSHhOTTJXZi9BQXhtcGJieEhZWEZuZTNQNzZKYklicGtsakt1b3hrY2U0cXJGNG5zbzRwN2llNGtrUnAxamhoV0Fod1NnTzNBSjNIbk9mZWdDc3ZnbUpraHRyblZyNjRzSVdCVzFkeHR3T2dKOVA4QVBGZFVCZ1lGWWt2aWl3aFNNdkRlQ1dRTXdnK3p0NWdWZXJGZW9IdldyWjNVRjdhUlhWdElKSVpWREl3N2lnQ3JZNlREWmFwcUYra2p0SmZGQzZ0akM3UVFNZm5XaFJSUUFVVVVVQUZGRkZBQlJSUlFBVmhlTmJJWC9oUytqeGxvMDg1Zllyei9BQ0JINDF1MHllSlo0SklYKzdJcFUvUWpGQUhOL0R1OE4zNFRnVmpscmQyaFA0SEkvUWl1aHZMYzNWbk5iaVdTSHpFSytaR2NNdWU0UHJYRC9DaVZoYWFsYk53WTVVYkhvU0NQL1phNi9YcnFheTBLK3VvR0N5eFFzNkVqT0NCUUJpV2Znb1dFUmlzOWMxS0NNbkpXTjFVRSt2U3RhNzBPRzgxSFRyeWVlVjJzTWxGT01NeEErWThkZUJWRlBGbGpiMnNhM2YyaDdoSUk1WnZLZ1pnb1pBMjRrREFGVTdqeE9aZkVrY0VOMDBHblJRQ2VTVDdPV0VnNVBMSDdxN1IxOWFBTnpYTkZ0dGJ0WTRwM2tpZUp4SkZORWNPakR1RFZMVGZEQ1d1cXBxVjVxRnpxRjFHcFNKcGlNUmc4SEEvUDg2V0h4ZnBNcXlOdW5qMlFtY0NTRmxMb09wWFBXa1BpL1RBWXNSM2plZG55c1d6bnpjWXp0R09ldEFFRS9nOVBQdVdzZFd2YkdHNll0TEJFdzJrbnJqMHpWK1R3OVpIdzJkQ2lMeFd4VUx1QkJicmtuNmsxREY0dTBlV1NKVWtuS3lPSS9NTURoRWM5RllrWUJxUi9FMWhGZS9aSlk3dU55eklyUGJzRmRnQ2NLY2M5T1BXZ0RVdElGdGJTRzJRa3JFaW9DZXBBR0tscms3THhhTDJ5aWVRU1dzaHUxaTNmWjJLT0M1QVVFbnFRT2ZTdENQeFpwRXQ4dHFzc3Z6UytTc3hpUGxNL29HNlVBYmxGWVZ2NHQwbTRsaFJHbkFtazhwWkdoWUp2emdMdXhqUEZRZUtOWHVySyswK3podTR0UGp1Q3hlOG1qM0t1T2k4OFpQdlFCMGxGWWk2b05Kc1lCcVYvL2FFMXc1RUJ0b1BtbEhzcTV6ajFvYnhYcFhsVzdSTlBPOXdHS1JRd3M4Z3djSEtqa1lOQUczUldYRHI5akxIZk9CTXYyR0ZacGxkQ0Nxc204Y2V1QjBxdE40b3NQTk52RjlvYVl4cStVZ1p3Z1pjaG14MEhQTkFHN1JYSTIvaktOYjJLM2xTYTRpK3hwSzAwVnN3WXVlcHgwQzR4K05icWEzWlNmMmRzWm1Pb0F0QUF2VUJkeHo2WUZBR2pXVjRvc2hxSGh1L3RzWll4RmwvM2wrWWZxSzFhQ0FRUVJrSHFEUUJ5UHd6dlB0SGhmeUdQelcwcklCN0g1aC9NL2xYWFY1OThNTTI5OXJOaWYrV2JyZ0gyTEEvMHIwR2dBb29vb0FLODErTEYyVGMyRmlEd3FOS3c5Y25BL2thOUtyeVQ0bnZ1OFVxUDd0dWcvVmovQUZvQTQraWlpa0FVVVVVQUZGRkZBQlJSUlFBVW9CSkFBeVRVOWxaVDMxd0lZRTNOM1BaUjZtdTAwclJiYlRsRFlFay9lUmgwK25wVEE1dXo4T1g5eUF6cXNDSC9BSjZkZnlxLy93QUlpZHYvQUIvRFAvWEwvd0N2WFVVVUFjTmYrSDc2elF5QlJOR09yUjlSOVJXVFhwOWN4NGkwTmRyWHRvbU1jeVJnZnFLQU9Yb29vcEFYdEV2RFlhMVpYWU9CRk1ySDZaNS9UTmUrMTg2VjlCYWJNYmpTN1NjbkpraFJ6K0tnMHdJdFExalR0TndMeTdqaVk4N2VyWStnNXE2N3FpRjNZS3FqSkpPQUJYTStPN2VEK3hKTG55VTgvY2krWnRHN0dlbWZ4clgxelQ1TlUwdVd6am44a3lFWmJHZUFjNG9BaWg4U2FOTmNpM2p2NHpJVGdaQkFKK3BHS2wxSFhOTjB1VllyMjU4cDJYY0JzWnNqOEFhei9GZHZZd2VHWm9qRkdtMEJZVkFHZDJSakZhMWpDMzluV291a0RUTENnY3NNbmRnWi9XZ0NoRjRyME9XVklvNzdMdVFxanluNUovQ3RXNG1qdHJlU2VWaXNjYWxtT0NjQWRlQldCWlJwcTNpV2U2S0w5bDA4K1ZDQU9Hay9pYjhQOEs2R1NOWlluamNaUndWSTlRYUFHV3R6RGQyMGR4YnZ2aWtHVmJHTWo4YVk5OWJSMzBWazBtTGlWUzZwdEp5QjN6MEg0MWplREhhUFRyalQ1RCs4c3Azai9ET1IrdWFOTEgyM3hicWQ2ZVV0bFcxait2VnYxSDYwQWJzRnhCY0t6UVRSeWhXS3NVWU5nK2h4M3FTc2J3N0pwNHM3eDdJU3h4TGN1WlRNUjk3QXlSN2RLamJ4Vlk0YVJMYTlrdGxPRGNwQVRHUHhvQTNhSzVqeGRxcU40ZmRiYU80a1NkRWRMbUpmM2FqZU9yZGpXbG8rcWk3Z0NQWjNsc0lvZ1RKY1I3RmJqc2MwQWF0RllUZUtySDVwRXRyMlcyVTROeWtCTVkvR3JsN3JWblo2V3VvbG1sdDNJQ21MQnpuNmtVQWFOUndYRUZ6SDV0dk5ITkhuRzZOZ3cvTVZuMk90eGFoZUdHM3RicG9jSEZ5WThSTmowTlZORHZkTHMvRFRYZHNKb3JLTXNUNXVDMmMrM3ZRQnYwVno4bmlLNWd0eGVYR2kzRWRrY0h6Zk1Vc0FlaEs5Ulc5RklrMFNTeHNHUndHVWp1RDBvQXpyN3hEcFduWEp0cnU2OHVVQUVyNWJIZy9RVTZ3MTNTOVJrOHEwdkVray91a0ZTZm9DQm1zdTNBUHhDdk1nSC9ReDErcVV6eHRESEJaMnQ5Q2lwZHhYQ2lObEdHUFhqOUtBT29vcWxxZXEydW1JaHVHWXZJY1J4eHJ1ZHo3Q3E5anI5cGQzWXRIaXVMVzVZWldLNWoyRmg3VUFhdEZaTjNyTHBmdlkyRmpKZTNFYWhwQXJoRlRQUUZqM3FUU2RYVFVYbmhlQ1MydXJjZ1N3dnlSbm9RZTRvQTBxcjJsOWJYanpwYnk3MmdjeHlEYVJ0WWRSejFyTEhpQ1dlV1kyT2x6M2R0Q3hTU1pHQTVIWGFwNWFxdmc2WkxpYldKNHlTa2w0enFTTWNISkZBSFRWbmFqcnVtYVpPc0Y3YytWSXk3d05qTnhranNENkd0R3VhdTFWL2lEWmhsREQ3R2VDUGQ2QU5HejhSNlBlemlHM3ZrYVJ1QXJLeTVQb01nVnFWZ2VMN0cyazhQM01waFFTd2dPamdZS25JNzFiaTFXQzA4UDJkOWZTNDh5R01rOVM3RlFjQWR6UUJxVVZqMi9pU3psdVk3ZWFDN3MzbE9JemN4YkE1OWpUOVIxK3kwMitGcGNDWHpERjVxN1Z5RzVJQ2puT2NqMG9BMWFLeUI0Z3Qwc2Z0VnphM1ZzV2s4dU9HU0xFa2h3RDhxOSt0UDAvWExlK3Uvc2h0N3UybjJsaEhjUWxTUjYwQWFsRlpkL3J0clozUnRWaXVMcTRBM05GYlI3MlVlcDlLZGI2MWEzV255M2R0SFBLWWpoNEZUOTZENmJmV2dEU29yamZEK3RQSGVhbHVzTlJtRXQyekFKRHU4b0VuaHVlQ1BTdXlvQXcvd0RoTHRCLzUvOEEvd0FoUC84QUUxcDJOL2FhakI1MW5Pc3lad1NPeDl4MUZZZmdORmJ3Nk1xRCs5YnFQcFRkSWpTUHh0cXEyZ0Myd2lYekFuM1JKeC85bCt0QUc5YVg5cmVTVHgyOHU5N2R6SElOcEcxdlRrYzlPMUY5ZjJ1bnhwSmR5K1dqdUkxTzBuTEhvT0I3VmllRlArUWxyMy9YNjM4Mm84Y2Y4ZzJ5L3dDdjFQNU5RQnRYK28yZW14Q1M4dUVoVTlNOVQ5QU9UVE5PMWF3MU1NYks1V1hiMUdDQ1B3UE5RU2FUNTNpRmRTbmRKSTBoOHVPSmx6dGJPZDM4NnpybU5JL0h0aWJkUXJQYnVaOW94a1lPQ2Z4QW9BMUwvWGRMMDZYeXJ1OFNPVCs2QVdJK29BT0t0MnQxYjNzQ3oyMHF5eE4wWlRWRFNkSFd4ZThtblpKNTdtWnBDKzNrS2VpL3pxaDRXUlk5VTF5T0FCYlpiZ0JBT2dibmRqOUtBT2htbWl0NFdtbWtXT05SbG1ZNEFyT3R2RWVqM2R3TGVHK1JwQ2NBRUZjbjJKR0RWRHhlQkxKcEZzL01NMTRpeUwvZUdmOEE2OVMrTGJPMmJ3M2NONUtLWVZEUmtLQVZPUjBvQTFiNi90ZFBqU1M3bDh0SGNScWRwT1dQUWNEMnF6WEllSXBYbjhMYUxOSWR6dkxBekgxSlFrMTE5QUZEKzJkUDhxN2w4OGxMUnRrNUNNZGh6ajA1L0Nya0UwZHhCSFBDNGVPUlF5c080TmMzNGFpU2E4OFF4U0tHUjd0MVlIdUNXck9pMUc0MGJUNzdRUnVhOFNRUjJmcXl2MEkrblg2bkZBSFgyVi9hMzZ5TmF5K1lzYm1OaUZJRzRkUnoxL0NyTlU5SXNFMHpUSUxOTUh5MStZaitKdTUvT3JsQUZUVWRTczlMaFdhOW04cU5tMmc3UzNQWHNENlZuZjhBQ1hhRC93QS8vd0Q1Q2Y4QStKclZ1N08ydll4SGRRUnpJRHVDdXVRRFhEZUliQ3p0L0dXbVcwTnRISEJKNVcrTlZ3R3pJUWNqNlVBZGZwMnU2WnFjN1FXVno1c2lydkkyTXZHUU80SHFLMGFxV21tV0ZsS1piVzBoaGNqYVdSUURqMC9TcmRBQldYZGVJOUhzNXpCUGZJc2dPQ0ZCYkI5OEE0cXpxMHJ3NlBleXhuYTZRT3luMElVNHJOOEpXbHVuaHkyWVFvV21VdElTTWxqazlhQU5lTzh0cGJYN1ZIUEcwR04zbWJodEErdFEyT3FXT292TWxuY0xNWWNiOW9PQm5PT2VoNkhwV0g0YWdpR3BhL3Ard0cwV1VZaVAzUUczWkdQd0g1Vko0YWpTTHhCcjBjU0tpTEpFQXFqQUhEZHFBTk8vMTNTOU9sOHE3dkVqay91Z0ZpUHFBRGlyZHJkVzk3QXM5dEtzc1RkR1UxUTBuUjFzWHZKcDJTZWU1bWFRdnQ1Q25vdjg2eGRNWTJzZmlrMm55UXhGakZ0Nkt3VnM0L1NnRGJ1dkVlajJjNWdudmtXUUhCQ2d0ZysrQWNWb1c5eERkUUxQQktza1RjaGxPUldONFN0TGRQRGxzd2hRdE1wYVFrWkxISjYxbmFOYXU4M2lUUzdXVHlJOTRFZm9tN2NEajhoUUJzUDRsMFdPNDhodFFqMzV4d0NWL3dDK3NZL1d0VldES0dVZ2c4Z2p2V1JKcGxuWmVHSkxTV09NcEZibmUyMERMQmVXK3VlYVBDWG1Id3pZK2JuZHNPTSttNDQvVEZBRisrMUMwMDZFUzNrNndvVGdFOVQ5QjFOUmFkckduNm1XRmxkTEt5OGxjRUVmZ2VhaXVOSiswNjliNmpMSXJSUVJGRmlaYzRZay9OL24wck0xR09JK05OTCt4aFJPcXVialoyVEhHNzlmMG9BMmRSMWF3MHdLYjI1V0xkMEdDU2Z3SE5Qc05Tc3RTaU1sbmNMTXFuQnh3UjlRZWFyUmFTRjE2NTFPVjFsOHhGU05Ddk1ZQTU1OXpXYmF4eGY4SjNPMWlGRVMyMkxqWjkzZm5nZlhHUDFvQTZSM1ZFTHV3VlZHU1NjQUNzdUx4Sm8wMXlMZEwrTXlFNEdRUUNmcVJpcGRkMCtYVk5LbHM0cGhDWkNNc1JuZ0hPS29lS2JTeWg4TFhDZVRHaVJLUEx3b0cwNUFHS0FOaTd2TGF4Z005MU1rVVkvaVkvNXpWYlQ5YjB6VXBESFozYVNTQVoyNEtuOGlCbXFTYVZKcUEwVzV1blZrdG9RMGtMcm5jNVVjL2dhcitJb28wMTNRM2hSVnVHdU1FcU1FcHhuUDRHZ0RwYXpMM3hEcEZqT1lMbTlSWkJ3VkFMWSt1QWNWZHZYYUt5bmtRNFpZMllIM0FyRThGMjBIL0NPd3ptSlRMT1hNamtaTGZNUnlmd29BMjdTN3Q3MkFUV3N5U3huK0pUbXFWNzRoMGl4bk1GemVvc2c0S2dGc2ZYQU9LeHJIL1FQRWV2d1dvRWNTd2lWVUhRTnRCeUI5U2F0K0M3YUQvaEhZWnpFcGxuTG1SeU1sdm1JNVA0VUFiZHBkMjk3QUpyV1pKWXovQUJLYzFOWE02SWkydmpEV0xTQUJJTnFTYkIwQklCNEg0bXVtb0FLdy93RGhMdEIvNS84QS93QWhQLzhBRTF1VjU5NEQwNnl2L3QvMnUyam0yZVh0M2pPTTdzL3lGQUhYV0hpRFN0UnVSYjJsMTVrcEJPM3kySEErb3JUcWxhNlJwMWxONTF0WnhSU1l4dVVZT0t1MEFGUnhYRUU3U0xETkhJWTIydUVZSGFmUStocVNzWFJwZFBTWFZudFVtVXBjT1p6SmpsaG5PM0hhZ0Rhb3JELzRTbXdlQlpiYUc3dXNqY3l3UTdpZ3pqNXV3NlZhR3RXMG1ralViYU9lNWlKeHNoVGMrYzQ2VUFPajF2VFpOU0duUjNTdmRaSTJLcFBJQko1eGpzZTlhRmNoNEZ2VSt4TGEvWkxqekhkM2E0OHY5MmYrQmV0YXMzaWF6U2FTT0Mzdkx0WWppU1MzaDNvcDl6UUJ0VUVnREo0RlZMZlU3TzYwNDM4TXdhM1ZTek4wMjQ2NUZZRXpSM3VudHJXdU5JTEw3MEZtcElCSDhKYkgzbVA1VUFkRXQ5WnMreGJ1QXY4QTNSSU0xWXJqcnVXeXRMQXozM2hTT0NBajkydzJGaWV3YkF5dWZ4cTlwenk2VmNXS0JuL3MrL1ViSXBHM0czazI1MmducUQwL0NnRGJpdnJhVyttc281YzNFQUJrVGFmbEJHUnowNzFZcms0NytDdzhaYXc4MjRsa2lWSTBVczduYU9BQjFyYTB6VzdYVXBwTGRFbWd1SXhsb1owMk9CNjRvQXZSWEVFN1NMRE5ISVkyMnVFWUhhZlEraHFTc2JSSk5QRStxdGFyS2hXNWZ6ektSamRrNUk5cWpieFZZcURJTGE5YTJCeDlwRUI4cjgvL0FLMUFHN1JYS2VOOVJaZEwrenhRWFEzN0hFNm9SR0Jub1c3SDJyYnNkV1M3U2FTU3p1N05JUnVacnFMeXdSejA1N1lvQTBLS3d2OEFoS3JEaHpCZUMySndMb3dIeXZ6L0FQclZwWCtwMm1uMll1cmlVQ05zQk52SmNub0FPOUFGdXE2MzFzMm9OWUNYTnlxZVlVMm5oYzR6bnAzcWhhK0liVzR1bzdhVzN1N1NTWC9WaTVpMkIvb2F6SnIyQ3c4YzNVOXd4Qy9ZZ29DakpZbGx3QU81b0E2cWlzdlQ5ZHRiNjhhejhtNHRyZ0x1RWR4SHNMRDFGYWxBQlJXTEw0bXMxbWtTQzJ2THRZemg1TGVIZWluNjFjajFld2swdiswaGNLTFVESmM5dmJIcjdVQVhxS3cwOFUyTzVETmIzbHZDNXdrODBKV052eHJjQkJHUnlLQUNpcUZ2cWFUNnhkNmFJMkQyeXF4Y25nNUFQOWFWOVRpVFdvOUxNYithOFBuQnVOdU1rWS9TZ0NhM3ZyYTV1YmkzaGwzUzI1QWxYYVJ0SnpqcjE2SHBWaXVjMEFoZkVmaUVrZ0FTUmtrL1JxMU5LMVJOVkUwa0VMcmJvK3hKVzZTWTZrRDBvQXYxRGVYY0ZqYXZjM0w3SVV4dWJCT09jZEJ6VTFWTlZ0dnRlbFhWdmpKa2laUjljY2ZyUUJKWjN0dmZXaTNWdEtIaGJPR3dSME9EMStsVjlPMW5UdFVlUkxLNDgxb3dDdzJNdVB6QXJsZkRtbytSNEgxSG5EUWJndnR1QXgrcE5VL0JYbVdQaUdLS1RnWGR1U3Z1UHZEL0FOQk5BSGNEVmJFNm9kTkUrYnNESmoydHh4bnJqSFQzcTdYSGVHQjl0OFhhdmZubFVKUlQ5V3dQMFd1eG9BS3IyRjliYWpiQzR0SmZNaUpJRGJTT1I5YXNWeG5oWFdMZXc4UHh4ZVRjWE0yOW1NZHZHWFpWejFQcFFCMkx1a2NiU1NNcUlvSlptT0FBTzVORVVzYzBheVJTTEpHd3lyS2NnL1ExbW5VckRVL0Q5MWRLenZiZVU0bFVERGdCVGtZOWNVMnl2dFBzUERsdmRLenhXYW9OZ2s1ZjJISFUwQWExRlpGcjRodHJpN2l0bnRMMjJrbE9JL1BnS2gvcDFyRjFQV0hYeGJZc0xIVU5zSWtReGlMbVhnaktqUHpEdm1nRHNhS3puMW0yaDBzWDkwazFxakhhSTVreElUbnB0OThWRmFlSWJTNXUwdFpJTHEwbGsvMVl1WXRtL3dDbEFHdFJXZHFXdFd1blRKYnNzMDl3NHlzTUNiM0k5Y1V1bTZ4YTZsSkpGR3NzVThmTHd6SnNkUjY0b0FzV0Y5YmFqYkM0dEpmTWlKSURiU09SOWFzVnhuaFhXTGV3MENPSHliaTVuM3N4aXQ0OTdBWjZuMHJxTk0xSzIxUzErMFdyRXFDVlpXR0dVK2hGQUZ1aW9ieTdnc2JWN201a0VjU0RKWTFsUmVKN0pwSXhOYjNsdEhLY0pOUER0UnZUQm9BMjZLcGFucXRycGlJYmhtTHlIRWNjYTduYyt3cXZZNi9hWGQyTFI0cmkxdVdHVml1WTloWWUxQUdyUlJWRFJkVFRWOVBGM0hHMGFsaXUxams4VUFYSjVvN2VDU2VWdHNjYWwyT000QUdUVGJXNWh1N2FPNGdmZkZJTXEyQ01qOGF5THZVNHRRMGZYSTQ0M1UycVRRc1d4eVFwNUZSNlpxTUdsK0RyTzZuSklFUUNxT3JzZWdGQUhRVVZGYlNQTmJSeXlRbUYyR1RHeHlWOWpVdEFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFHSDQxM2Y4QUNJNmxzNitYK21SbjlLcmZEemIvQU1JYlpiZXVaTjMxM3QvVEZhUGlpRXorR05TakF5ZnM3a2ZnTS8wckcrR2N3bDhLQk0vNnFkMC9rMzlhQU90b29vb0FxNm5ZUWFwcDA5amNETVV5N1Q2ajBJOXdlYThLdjdTNTBmVlpiYVFsTGkzazRaZU9SeUdINkVWNy9YQy9FdlFmdFZrdXIyNlpsdHh0bUEvaVQxL0Evb2ZhZ0RvL0Mrc3BydWlRM2VRSmg4a3lqczQ2L24xL0d0ZXZIUEFPdS8yUnJhd3pQaTF1OFJ2bm9yZnd0K2ZIME5leDBBZVJmRTJOMDhWYm1HQThDRmZjY2orbGREOExkUXREcGsrbmJ3dDBKVEx0UFYxSUF5UFhHSzJQR25ob2VJTEJXZ0lXOWd5WXllakE5VlArTmVRT2wzcHQ4VllTMjExQzN1ckthQVBvT2l2UGZDM3hCRWpKWjYyUXJINVZ1Z01BL3dDK08zMUgvd0JldlFnUVJrSElOQUdMNHQxcGRDME9XNVVqN1EvN3VFZjdSNy9oMS9Ddkc5TXNialdOVmhzNGlXbW5mbGp6anVXUDBHVFd2NDYxMysydGNaWW4zV3R0bU9MSFJ2N3pmaWYwQXJyL0FJYTZEOWpzRzFhNFRFMXlNUlovaGo5Zngva0JRQjJHbjJVT25XRUZsYnJ0aWhVS3YrUDFQV3JGRkZBQlhNZkVYL2tUN3IvZmovOEFRaFhUMXlIeE9uRVhoY1I1NWxuUmNmUUUvd0JLQU5Yd2IveUtlbS85Y1IvTTFyVHdRM01mbHp3cEttUWRycUdHUnlEZzFSOE53bUR3M3BzWkdDTGFQSTl5b0pxSHhWWjN0L29FOXRZY3lzVnltN2FYVUhKVUh0a1VBYTdva2tiUnlLSFJnUXlzTWdqME5VbjBiU3BIUm4wMjBZeHBzWE1LbmF2b09PbGNqYjZocHVoMnQ1THB1aXlXR3BRUnE4dHZjYmp2aTNBRXFjNE9NOWEwTmE4VjNGbGQzU1dsdkZMQkFrSWFaZ3hWR2s1RE5qK0VLT3d6eUtBT2xXeHMwU1ZGdElGV1pRa2dFWXc2Z1lBUHFNY2ZTb1pOSDB1V1FTUzZiYU80UUpsb1ZQeWdZQTZkTVZ5bHhxK3RYVjlvMzJhODAyUVRTeUFHMmtrOHRpRTZPUHh6aW4vOEpyT0w3cFkvWjF1UmJORjVoODl1UUM2anB0ejI2MEFYdGI4TFNhdmV5TTBsbEZiU2JRV0ZxRE1BTWNCODk4SG5zT0syNXRKMDI0dXhkeldGdEpjREdKR2lCYmpwelhMdytLZGJlMHRMMDJWaTBGM2MvWTRsRWpxL21Fa0FuZ2pieDlhZGQrSzlUc0V1YmE3dGJSYnVDNFNGNWdYTUNxNjdneDZ0UUIxWXNiTVJwR0xTQUlrbm1xdmxqQ3ZuTzREc2M4NXBzMm5XTS9uK2Jad1A1K1BOM1JnK1pqcHU5Y2R2U285SHVwYjNUWTdpV2ExbVppZm50V0pqSXoyenpuMXE3UUJVdHRMMDYwOHY3UFkyOFJqSlpDa1FCVWtZSkI5U09LSnRMMDY0amFPYXh0cEVhVHpXVm9sSVovN3g0NVB2VnVpZ0JGVlVRSWloVlVZQUF3QUtXaWlnQW9vb29BS0tLS0FDZzR3YzlPK2FLcTZwTUxmU3J5YzlJNFhmOGxKb0E0bjRUWit5YWwxeHZUSDVHdXc4UVcwMTVvRjlhMjZiNXBZV1JGeUJra2VwcmwvaFZDVjBPN21QOGR4dEg0S1A4YTdLOXVZN0t5bnU1UXhqZ2phUmd2WENqSngrVkFHRGM2WGV1UERXMkhQMkpsTS96RDVNSmoxNTU5TTFzNm5OY3cyaGExc1B0ems3VEQ1aXBrZHpsdUtvVy9pZlRyanc3SnJpK2FMYVBJWkNCdkJCeGpHY1pPUmpudUt2NlZxTU9yYWJEZjI2dXNVd0pVU0FCaGdrYzRKOUtBT0d1ZkRPcTZqSmVYc0dtUjZVcFdNeDJjYzRIbXVyWjNFcndweGtkdWZ6cXltaGFoUE5hWFA5bDNVTXlhaGJ5eXRjM3l6c1kwM1pPYzlCa2U1ejBydTZLQU9ROFJhRnFOM3JNbjJLTUd5MUZJbzcxOTRVcHNjSFBYSitYamlvcGRGMVMyMWQ5VXRySlp2SnYzbFNEekZYekkyakM1QjZBakhRNHJ0S0tBT0kxT3cxdTgxV0hWLzdNdVl5MEJ0M3Q3ZS9FY2k0YkliY09DRG5wWFVhRmFDeDBhMnRoYm0yMkwvcW1rOHdwa2s0M2QrdFg2S0FDaWlxOTdlMjloRWtsdzVWWGtXTmNBbkxNY0FVQVdLS0tLQUNpaWlnQW9vb29BS0tLWlBLc0VFa3ovZGpVc2ZvQm1nRGcvaGh0KzI2N3MrNzVrZVBwbVN1djhRVzAxNW9GOWEyNmI1cFlXUkZ5QmtrZXBya2ZoVEd4dE5UdVc1TWtxS1Q2a0FuL3dCbXJ1TDI2U3lzYmk3bERHT0NOcFdDOVNGR1RqOHFBT2IwL1I3K0dIV0ZrdDhHNHNJSVl2blU3bldKbFlkZU9TT3RWazhPNmhOYVRXN3hpSXlhUkRhaG1ZRUNWZXFuQi9XdG1MeFBwMHZoeDlkSG1pMlRJWkNCdkJ6akdNNHllTy9ldERTOVFoMVRUb0w2M0RpS1pkeWh3QVJ6am5GQUhIYWhwV3VhMGtQbTZTdG1iS3ptaVFlZWplYzdwdEFHT2c3ODF0cHB0NE5ROE9TbUg1TE8za1NjN2g4akZGQUhYbmtIcFhRVVVBY1craGFtZEN1TFlXMzc1OVZOeXE3MTVqM0E3czU5TzNXcXAwYlg3blVyV1M4dFpwWklOU1NacHpkZ3htSU5uNVl5ZU1EOGZ6cnZxS0FPR1hTZGJOaERwejZhQWtHcEM1V1lUb1E2YnlTY1p5TVpwc0dpNjBOTXRQRHo2Y2d0N2U2RXB2dk9VZ29ITFpDOWM4NHJ1NktBT0xoMExVMThNYWRabTJ4UERxSW5kTjY4SnZZNXpuSFE5T3RiK3V6WGF4ckZEb1kxU0p3ZDZ0S2lnSHRrTjFyVnF2ZlgxdllSSkpjTVZWNUZpWEFKK1pqZ1VBY0VuaGZWN2RZTDVMUjAyM0UwbjJLMXV0anhSdUFBRmZweGc1QTYxZTAvVE5VMGZVSTlUdGRGZVR6WUdobHQzdTFhUldMN2c1YzhIUGYwcnQ2S0FPTHViTFhUYzYxSW1rQi83WXRVUS82UWdFRENNb1FUMzY5cXU2UnBOOWJOcWhtZzIrZlpXOFVmenFkekxFVllkZXhOZFBSUUJ4dWthVnEybWFwcDhyYWNKb1cwK08xbi9lb1BLSWJualB6Y2VsUmVFN0c0VHhGUGJ6NE1Ham84RUJ6blBtTVdCLzc1d01WMjlSUVcwRnUwclF4SkdaWE1qbFJqY3g3bjNvQWxvb29KQUJKT0FPcE5BSG4zZ0gva2J0Zi9BTjl2L1JocjBHdlB2aGptNHZ0WnZpUDlZNjRKNjhsaWY2VjZEUUFVVVVVQUZlUWZFdjhBNUd4Lyt1S2YxcjErdklQaVgveU5qLzhBWEZQNjBBY25SUlJTQUtLS0tBQ2lpaWdBcXpZV1UxL2RMQkNPVDFQWlI2bW9JMGVXUlkwVXM3SEFBN211OTBiVEUwMjBDY0daK1pHOS9UNkNtQk5wOWhCcDlzSVlSN3N4NnNmV3JWRloycWF4YmFhbUhPK1lqaU5UeitQcFFCZmQxalF1N0JWSEpKT0FLdzcvQU1UMjBCS1dxR2QvNzNSZi9yMXplbzZwZGFpK1pud2c2UnJ3b3FsUUJwM092YWxjRS92ekV2OEFkaitYOWV0Wjhrc2toekpJem4xWTVwbEZJQW9vb29BSzk2OFBjK0c5TC82OUl2OEEwQVY0TFh2WGgzL2tXOUwvQU92U0wvMEFVd003eDMveUxjbi9BRjBUK2RidHhjd1dxbzA4cVJCMkNLV09Nc2VnclA4QUV1bVQ2dHBEV2x1MGF5RjFiTWhJSEgwQnFYVzlMWFZyQTI1a01UcXdramtIOExEb2FBTXJYUEQxbkRiM1dxMlllQytpM1hJa0RFZ3NQbVBCNDlhMGJmVkRKNFpHcU9BSCt6bVFqdGtEL0VWUW0wL3hIZlc1c2J5OHNrdG5HMlNXSlc4eGgzR0R4eldqZjZhWlBEOG1tV2UxUDNRaVRlVGdEM3hRQlc4SHdlUjRjdDJibDV0MHJIMUpQK0dLMjZyYWJiTlo2WmEyemxTOFVTb3hYb1NCZzRxelFCekRUTHBIaTY5ZCtJYnExOC8vQUlFZzUvUUUvalZ6d2pBMFdocFBJUDN0MDdUdjdsangrZ0ZSK0t0Q24xbU8zTnJMSEhORVdCTGtqS3NPZWdQK2MxdVFSTEJCSENnd2thaFZIc0JpZ0RqTEFrZUQ5ZUlPUDlKbEg2TFhUYUxHaDhPMk1aVWJHdGt5UFhLak5WTkswTjdmUzcreHZHUmx1cHBIL2RrOEt3QTdqcnhWZUxUZkVWdFpqVDRMMnlhMlZkaVN1amVZcTlCeDA2VUFOOFJXdHZaZUI3aTJ0T1lFMjdmbTNkWkFldjFOVzlaSkhnK2NnNC8wWUQ5QlRwZEJqUGhnNkxGS1ZHd0FTRWZ4YnQyY2ZXa3NkUDFPU3hsc3RYbXRwSUdpOHBmSUJ6MHhra2pyUUJaME5FLzRSK3dUYU5yVzBlUmpnNVVacml5U2Zoc0FUbkZ4Z2Y4QWZWZEZEcDNpSzF0QllXOTlabTJWZGlUT2plYXE5dUJ4eFMzL0FJY1p2QzZhUlpTSnVWZ3hlVWtCam5KUEFOQUhRSWl4eHFpS0ZWUUFBT2dGY2o0ZGUwaThDeVNYOFlrdGxaaTZFWjNjakEvUEZkZlhQNmY0ZWtUd3RMbzk1SW02UWs3NDhrRG5JUElIY1VBVTlYdU5hdWZEbHhNOXJad1dqeFoyRjJNZ1h0MnhtdDdRL3dEa0E2Zi9BTmUwZi9vSXJJbDBmWEx2U24wNjZ2YlVRckh0UXhxd2FRZ2ZMdUo2RE9NNEZibW0yNzJtbVd0dEtWTHd4TEd4WG9TQUJ4UUJ6TnhiM2R6NDd1a3M3NDJjZ3RRVElJdytSbGVNSDhQeW8wMjJrdWZFa2xycmQxSmNYRnBpUzNVZ0xHNi8zc0R2MC95SzJZZExuajhWVDZvWGo4aVMzRVFVRTdzNVgyeGpqMXBOYzBxZThtdGIyeGtqaXZiWjhxemtnTXZkVGovUFgxb0FxWFB6ZkVDMERjaGJJc3ZzZHpETko0cEFHbzZFNDRZWHFybjJKR2F0NnJwTnhjM2x0cU5sT2tGOUFwWDV4dVIxUFkvbWFoajByVXIzVWJhNzFpZTJLMnAzUlEyd2JhVzlTVHoyb0FSN3VVNjFlVzJqV1VEWENoVGRUek1RdWNmS09PU2NacXRvUDJuL0FJUzdWdnRnaUUvbHg3dkpKSzlCakdlZW1LdFRhVHFWcnJGeGY2VmNXNFc2QTgyTzRERUFqdU1maitkUDBqUjdxeDFtN3ZiaTVTY1hDS0MzUnR3NjhkQVBUbWdDRHdKL3lMYWY5ZEgvQUowbmhNQmJ6V3dvQUF2WEFBK3BvczlIMWpUUE50ZFB2TFZiSjNMSzBxRXlSNTlCMFA0MVkwWFI1OUtpMUZQT1Z2UGN2RzVZa2pqcXh4MW9BMjY1dTYvNUtGWi85ZVIvbTlhSGhxUzVsMEMwa3U1R2ttY0ZpN2RTQ3h4K21LcDZ0cFdxeTYvRHFtbXlXcW1PRHlzVGx2VnM4QWU5QUZyeFh4NGF2djhBYy9xS3haaHVrOEhvM0srV0NRZlVJbUt0M0drYTVxcXJiNnJlMnFXbTRGMHRsT1h4MnlSV2hxK2pDOWd0VGF5aTJ1TFJnMEQ0eUI3RWVuQW9BbytPd1A4QWhIaS84U1NvVlBvYVM2UlgrSVZvV1VIYlpGaG5zZHpmNDArYlNkWDFWb1l0WHVMUmJXTnc1anRsYk1oSFRKUFQ4S3VTNlpPL2lpSFZBMGZrSmJlU1Z5ZDJjayttTWMrdEFDYTdwdHplU1dsM1l5UnBkMmpGa0VnK1ZnUnlEK1ZSMk90VE5meDZmcWRrYlM2Y0V4c0dESkpqcmcvMHF6cWxycVVza1Urblhxd3ZHQ0RGS3VZM3o2NDVGVmJmUzlRdWRUZ3Y5WG50MmEyRGVURmJxUW9KNmtrODBBWk9qM1dveGFyclRXbW1DODNYYkJuTTZ4a1lKd09Seldsb2RycUNhM3FOOWQyWXRFdVFtRUVpdnlCanFQei9BQm9sMHJWTEhVcm03MGVlMktYVGI1SWJrSEFiMUJGYVdtUjZraXlOcVU4RWpzUnRTRkNGUWZVOG1nREs4Sy84ZjJ1Zjlmei9BTXpYUlZ6ME9rYXZZNnJkUzJOMWJmWmJxYnpYRXFuY3BKeWNZK3RkRFFCd3ZoVFFvOVIwYnoydjc2RW1SbDJReTdWL0xGYWVpSzJpYTQraE1WbGlsajgrS1hiaCtweUc5ZWg1OXFqMG5TdkV1azJmMlcybDB4bzl4YkxtUW5KL0N0SFN0SHVZdFNrMVRVcmxKN3gxMktJeGhFWDBGQUdIcE9oV0dyNnJyVDNpT3pSM2poZHJFZFdOTThTZUh0TzBtMnRMaTBqZFpHdWtRbG5KNHdUL0FFRmRIb21sejZmZDZuTE04YkxkWEJsVFlTU0FTVHp4MTVvOFI2WFBxdHBieFc3eHEwZHdzcDNrZ1lBSTdBODgwQWFGNWRRMk5wSmRYRGJZb3hsaldMNGN0WnJpNHVOY3ZFMnpYZkVTSCtDTHQrZkgrVFI0bDBuVTlWbXRoYXlXd3RvanZhT1l0ODc1N2dEa1kvbWFtczQvRWkzVWYydVhUamJnL09JZys3SHRrVUFUYS9xaDAyeUN3cjVsNU9mTHQ0eHlTeDcvQUVGTzBEVFA3SzB0SUdiZE14THl0L2VjOWY4QUQ4S3liclNOZWZYNU5UaG1zR3dDa0ltTG55MStnSFgvQUJOYStscnJLeVNmMm85bXlZK1Q3UHV6bjN5S0FJL0VOaEZmV2tXYnBiV2VLVVBCS3hHQTQ2Q3NmeEJiYTFMb055MnBYVnNzVVM3dGxzcC9lSEl4dUovUEFyYzF6U3hxMWg5bjgweFNJNGtqY0RPMWgwL21hekxuVFBFR3B3ZllyKzhzNDdVa2VZOEN0dmNEbnZ3S0FNL3hBZ2s4R2FHamZkWjRBZjhBdjJhMC93RGhDOUUvNTR5LzkvRFUrdTZOSmZhYloybG1ZNDF0NWtjQnlRTnFnakhBUFBJcmFvQTVmd1pESGJYT3N3UmdpT0s2S0xrOWdTQldacUVsemVYMDNpVzNBYUN4bFdPTmNmNnhBVHVQNW45ZmF0aVBSZFN0N2ZXVnQ1YmRaYjZabmpZczN5cVNjNTQ2NFBhdGl5MCtDMDB1UFR3b2FKWTlqQS94WjY1K3ZOQUU5dlBIYzI4YzhMYm81RkRLZlkxSldWNGYwNjYwcTFsczVwVWtnV1FtQWduY0ZQWThmNXpXclFBVncvaWYva2U5SS83WS93RG8wMTNGYzVyT2czZC80bHNkU2lraFdHMzh2Y3JFN2p0Y3NjY2Vob0E2T2lpaWdDanJuL0lCMUQvcjJrLzlCTlYvQ3Y4QXlMVmovd0JjL3dDcHJUbWlTYUY0cEJ1UjFLc1BVSGcxenR2cHZpRFNvZnNlblhObk5hZ255emNCZzhZUDA2MEFMNGIvQU9SaThRLzlkVS85bXAzaC93RDVHVHhCL3dCZEkvNU5WN1E5Sk9tUlRQTk41OTFjUDVrMG1NQW4wSHR5YVRTOU1uczlYMVM3a2FNeDNib3lCU2NqR2M1NDk2QUYxL1ZEcHRrRmhYekx5YytYYnhqa2xqMytncW1tbWYyVjRPdllHYmRNMXZLOHJmM25LblArSDRWWHV0STE1OWZrMU9HYXdiQUtRaVl1ZkxYNkFkZjhUV3BZd2F0S3M4V3NOWnlReUp0QWczWjU2NXlQU2dCdmhYL2tXckgvQUs1LzFOVWZEZjhBeU1YaUgvcnFuL3MxSmI2YjRnMHFIN0hwMXpaeldvSjhzM0FZUEdEOU90WHRKMG1iVExPNllUck5xRnlUSThyakNsK2NmaGswQVUvRU0wbXAzVWVnV2JIZEpoN3FRZjhBTE9QMCtwL3c5YTZDQ0dPM2dqaGlYYkhHb1ZSNkFWeXVuYVA0bDA0ek5GUHByeVR2dmtra0xsbVAxeFhSNmNMNFdvR290QzF4azVNT2R1TzNXZ0JMc1dWLzV1bVR1cnN5Ym5pRFliYmtjOGM5Y1Z6OGxwSDRhMXl3TmdXVzJ2cFBKbGhZN3NIakJCNjk2MHRVMHE3azFLUFZOTXVJNHJ0VThwbGxCS1NMblBPT2FqdHRLMUM3MUtDLzFtYUJqYjVNTU51RHNCUGNrODBBWHJ5RFR0WlNXeG5LemVTd0x4cTVCVTg0emo4YXhyQ0lhRDRuaTB1MlpqWjNrWmtDTnlVWVo2SDB3S3QzZWxhamI2ck5xT2tUd0s5d0FKb2JnSFl4SFFnam1wTk4wbTZHcE5xbXFUeHkzZXp5NDBpQkNScjdaNUpvQTJhNW5VaWZFR3RKcGNYTmxhTUpMcCt6TjJUL0FENytsYnVwSmR5NmZOSFl5Skhjc3VFZDg0WDM0OXE1M1ROSzhTNlhhQzN0cE5MQzVMRm0zbG1KN2s0b0E2bVIwaGlhUjJDSWd5U2VBQUs1M1JrZldkWmZYWlZLMjBZTVZtcmRTTzdmei95S2sxelRkWjFUU0lMUlo3VkpEemM4c0ZiSFFEak9QL3JVVzF2NG5oOHFQZnBTd0poZHFCK0ZIWWNlbEFHeHFQOEF5RGJyL3JrLzhqV1g0TC81Rld5LzRILzZHMWJiS0hVcXd5cEdDUFd1YnR0TDEzUjFhMjB1NHRKck1zU2kzSWJkSG42VUFRRC9BSkdyeEYvMTZELzBCYTBQQmY4QXlLdGwvd0FEL3dEUTJxVFJ0R2V6YTZ1YjZZWEYzZC82MWdNS0I2RDJxbGJhWHJ1anExdHBkeGFUV1pZbEZ1UTI2UFAwb0FYVGYrUjgxai9ybEgvNkN0ZEpXVG9ta1MyTXR6ZDNrNG52YmtneU9vd29BNkFmNTlLMXFBQ3ZNUEN1Z1E2NTlxODZlU0x5ZG1OZ0hPYyt2MHIwK3VGc1BDdmlQVHZNK3g2aGF3K1pqZHRkdWNaeC9EN21nRHB0QjBTSFJJSllvWm5sRWpCaVhBNDRyVXJuOUcwL3hEYjM0azFMVVlwN2ZhUnNWaVRudC9DSzZDZ0FybHRDL3dDWmsvNitwZjYxMU5ZMm02VGNXbjlyZVk4WisyVFBKSHRKNEJ6alBIdlFCRjRKalJQQzlxeXFBWExzeEhjN3lQNUFWSDRLNHNMOERvTDZUK1MxbytIN0NYVE5GdDdLZGthU1Bka29TUnl4UGNEMXFQdzlwaytsMjExSE8wYkdXNWVaZGhKNElIWElIUEZBR1o0UUpYd2U1QndSNWhCcTM0S1VEd3RhRUFBa3VUNy9BRHRVL2h6UzVkTDBjV1YwMGJ0dVluWVNRUWZxQlZPMjByVzlLamExMHk2dEh0TnhLQzVWdDhlZWNESEJvQXhuWm90QzhVTEh3QmVGUUIwQUxnSDlLMmZFYW83NkpZSmpZOTBqWTlWVWY0R3JObm9FY09qM1ZqUE1aWkxzczgwdU1aWTl3UGFzVzRPVXM3VFZicDlPMUN4SkVGM3MzUnlEcG5QVG9Ca0dnRFM4YXVHMGFPMEJHKzVuU05SK09mNlZMck8yWFV0SDArTDc2VGk0SUg4S0lEMSt1Y1ZtWHRuWTNma1hNL2llRnJxRnc0bUpUQXgwQ3FEZ2ZybXQzUjdHMGdqTjNETTkxTGNBRnJtUnR6T08zMEh0UUJtYWRHamVQTlhrS2dzc1VZVSttVlhQOHFmUHg4UWJmSEdiRTU5L21hbGwwelZMYnhEZWF2Wm1DVlpRaStRekZTNENnSG5HQWNqanJVdW5XTjljYTQrcjZqRWx1eXhlVEZBajd5Qm5KSlA1L25RQlU4UHdMZFA0aXRuSkN5M1VxRWpxQWNpaUc1MWJ3N1pyRGUyYVhkaENOb25nT0dWZmRUVnl3MGU2dGwxWUc1RVRYazd5UnlSY3NnT2NaeU90UXkySGlPNXRuc2JpK3N2czdyc2VaWTI4MWxQQjQ2ZEtBSXZHYzBkejRUOCtGdDBjakl5bjFCcTU0eFprOExYcFVrSENEOEM2ZzA3Vk5EUzc4UERTcmVUeXhHcWlObTUrNzYvV2tUVHRSdnROdXJQV3ByZHhLb1ZEYmcvTGpuSnozemo4cUFLRHk2emM2R2JGTkFRUnlXL2xxMzJ0T0J0d0RqSDQxWG5nbXQ3bndwYTNLNGVNc0dYSU9DQXVQeXEvQmErS0xlRkxSTHJUMmlRQlZtWlczNEhUanBtcmVyYVROZndXangzUWp2clZnOGMyemd0M3lQUTRvQXQ2aFpXdDRJUHRYL0xLVlpJenV4OHc2ZjhBNnF4b28wZjRoVE15Z2xMTU1wUFk1QXorUk5TblM5WDFHNnRtMWE0dEJCYlNDVVIyeXQ4N0Rwa3QwcTFGcGs2ZUtKdFVMUitROXQ1SVhKM1p5RDZZeHg2MEFVdFQvd0NSNDBZOS9MbC85QmF0eThKV3puSU9DSTJJUDRWUXZOTW5uOFI2ZnFLTkdJYlpIVndTZHh5Q0JqajNxU0MwdlJyRjdOUE9Ic3BrVllvZHhPM2dBOFl3TTgwQVUvQlNnZUZyUWdBRWx5ZmY1MnJQOFMyVnJaNlZCRGFqOTNOcVN0SXU3SUpJT1IrZzRxM2E2VnJlbFJ0YWFaZFdiMm00bFB0Q3R2akI1d01jR24vOEl5amFFOWhKY3NaM2xOd1p3T2tucmowN1VBV2ZGS3EzaHUrREFFQ1BQNUVWWjBVbHREc0dKeVRieGtuL0FJQ0t5YmpUTmYxRzMrdzMxNVpwYXRnU1BDcmVZNEJ6MzRINFZvWE5qZGk2MHo3Rk9JclMyeUpZeXhHOWNBS09uT01IclFCUTB6L2tlTlovNjV4ZitnclJQL3lVRzIvNjhULzZFMVMzbWxhakZyVW1wNlZQYmg1MENTeDNBTzA0NEJHUG9LUzAwVzlpOFFSNnBjM1NUc1lpa25VWVBZS1BRRDNvQTUrNWgxRzcxYnhEYVdJd2prUEsvY2hRY0lQOTdQNlYxbmgyNWh1dEN0SklFVkZDQlNpOUZJNElwbWw2WlBaNnZxbDNJMFpqdTNSa0NrNUdNNXp4NzBtamFYUHBsNWZLSGpObE5KNXNTQW5jaFBVWXhqSCtGQUd0UlJSUUI1UmV5UFlTNnRwS0E0bXVGQUhzckVqK1lyZThUSi9ZbXBhTGV4cmtReGlJNDdoZi9yTWF2Nmo0WG51L0ZNZXBySkNMZmVqdWpFN2p0eG5qR09jZXRYL0ZXaXphMVlSUTI3eHBMSEp1QmtKQXhnZ2pnSDJvQW8vRCszS2FQTmN0OTZlWTgrb0F4L1BOZFRWSFJMQTZacEZ0WnNWTHhyOHhYb1NUazQvRTFlb0FLNXJ3RkdpZUhnNnFBenlzV1ByMnJwYTVmU0xEWE5Bc2ZzOFVOdmZLNUxiVmwyZVczMUk1R01mam1nQ3ZZY2FkNHNBNEFsbndQd2FyTnRwajZwNE8wNk9HVVJUUmJKbzJZWkc0WnhuMjVxellhTGN4YUpxVVU3eG05djhBekdmR2Rpc3dJQStuTlNSNlhxTU9oMlZyYlh5Mjl6YkFaSUc1SDlqa1p4UUJIQnJWNWEzVUZyclZpSUdsYlpIY1JOdWpadlQxRlI2bi93QWp4bzMvQUZ6bC93RFFXcDUwclZkUnVMYzZ2Y1dvZ3Q1QktJclpXK2RoMHlXL3BVdXQ2VmUzTi9aNmhwMDhVZHpiQmdCTUR0SUl4Mi9HZ0NsNHJrbVRXTkRFTVBudDVyc0lpd1VNdzI0NVBTbTZwSHJlcXRacTJqcmIrUmNKTjVuMmxISUE2akhIK1JWNiswaTl2N0swa2x1WW85VHRYTWlTb3AyWnoweDZZeCtWT3RZL0ViM0VmMnlld2poVTVmeVVabWNlblBUNjBBVnROK2J4enE1UEpXS01EMkcxVFd1YksxL3RVWDNTNjhyeS92ZFZ6bnA5ZTlaOTlwVjZtck5xbWxUd3BQSWdTV09jRW80SFE1SElQQXArbTZYZUxxa21xYW5QRkpjdEg1U0pDQ0VSYzU3OG5tZ0NsNENqUlBEd2RWQVo1V0xIMXh4VC9DdkY3cmc3ZmJuL0FKbXJ2aHJUSjlKMGhiUzRhTnBBN05tTWtqbjZnVXpTOUx1YkZ0VlpwSTkxM084c1JVbjVjNXhuanJ6UUJWOGE4NmZaS2VWYTlqREQxR0dyWTFLMHRyNnhrdDd3ZnVHeHUrYkdNSEk1ck5iUkxtODhPUldHb1hlNjhSaTRuVWxzTnVKQjV4bmc0cUM1MHZYZFRnRmxxVjNacmFFZ3lOQXJlWklBYzRPZUIwN1VBRTZnK1ByTlR5cVdSSzU1d2NzTS9sUjRwQUdvNkU0NFlYcXJuMkpHYXQ2cnBFMDk1YmFocDg2UVhsdXBSZDR5anI2SDh6VU1lbGFsZTZqYlhlc1QyeFcxTzZLRzJEYlMzcVNlZTFBRzlYTytCUDhBa1c0Lyt1ai9BTTYwcmEydm85YXZMaVc0RFdjaXFJWXR4T3dnRFBHTURuTlpkbG8rczZZSkxPd3ZMVmJKM0xLMGlFeVI1OUIwUDQwQVU3SC9BSkIvaTMvcnJQOEF5YXN5eWU3aWgwWFU3Nk5mN09oa0VLSWY0ZjhBcG9meC9rSzZLdzBDZXowN1Y3WHprYzNtL3dBcG1ZazhxUmxqanJ6MnpWaGRGYVR3cXVrWERJWkJGczNMa2dNT1FmenhRQnMwVlYwdUs1ZzAyM2h2R1I1NDBDc3lFa0hIQVBJSGJGV3FBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBR3l4ckxFOGJqS3VDcCtocmdQaHBLMWxxR3JhTk1mM2tUN2dQZFNWYi8yV3ZRYTg1MTRudzM4UkxYVmNiYlc4L3dCWWUzUHl2K1hEVUFlalVVQTVHUlJRQVUyU05KWTJqa1VNamdxeW5vUWVvcDFGQUhobmluUlgwTFc1YlRCTUxmUEN4N29lbjRqcCtGZW0rQTlkL3RuUTFqbWZOMWE0amt6MVlmd3QrSS9VR25lT2RCL3RyUkdhSk0zZHRtU0xBNVlkMS9IK1lGZVkrRmRhYlF0Y2l1aVQ1TGZ1NWw5VVBYOHV2NFVBZTVWazY5NGQwN1hyZlpkeFlsVVlTWk9IVDhlNDlqV3FqckpHcm93WkdBSUk2RVV0QUhoWGlMUUx2dy9xSDJhNHc2TU4wVXFqaHgvUStvclhzZkdkeGErRUxqU2l6RzU0amdrL3V4bk9lZmJvUHFQU3VxK0tjY2JlSFlKR3g1aVhJQ0g2cTJSK242VjVSUUJ0ZUU5RWJYZGJpdGlEOW5UOTVNdzdLTzMxUFN2Y0VSWTBWRVVLcWpBQUdBQlhPK0NOQi9zVFJGODFjWGR4aVNiMVgwWDhQNWsxMGRBQlJSUlFBVjU3OFNaR3Z0VzBqUllqODBqYmlCL3RFS3Y4bXIwSWtBRWs0QTZrMTV6NGNKOFNmRUc3MWdnbTJ0YytXZTM5MVAweTMxb0E5RlJGalJVUVlWUmdEMEZWOVFndWJpMWFPMHZEYVNrZ2lVSUh4K0I0cXpSUUJ6OXY0YS8waTZ1dFUxQ2JVSnByZHJmTFJoQXNaNmdLTzlVUEMyaTZoQjRiTzI3bHNyeTRtM3M4c0laL0xVYlZVcTNUZ1ovR3V2b29BNVllRFJHc1VzT3B5eFh5WERYQnVGaVhCTEFBalowQTQvblZpMzhOVDJkODB0cnEwa2R2Sk41OGtCZ1JzdDFiREhrQStncm9hS0FPZmk4THBGcHVuMlgydGlMTzlGNEcyZmVJSk8zcngxNjFMY2FIZEcrdnJ1ejFWclY3eGtManlGa0dGVGJqNXZ6cmJvb0F6dEQwbVBSckEyMGNqU2xwR2xkeUF1NWoxNEhBK2xhTkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFWem5qKzlGbjRTdWhuRHprUXI3NVBQNkExMGRlZCtPcG0xdnhQcDNoNjNiaFdCbEk3RnY4RjUvR2dEcFBBdG1iTHdsWkt3dzhxbVkvd0RBamtmcGlybmloaXZoZlZDT3YyYVFmbXBGYVVVYVJSSkZHTnFJQXFqMEFwWFZYVW82aGxJd1FSa0dnRGdMTFJiMDNsaFl4MjdmMlRkQzN2WldBK1ZXUk9VUCs4UXBySmdtc3BkQjB2VHJxM3RXblNDWi9QdTdoNGtYRXJEYU52VnVPUDhBNjllckFBQUFEQUhRQ29EWjJyYk0yMEo4czdreWcrVStvOUtBT0M4UDJjT3ZYVmpEcWUrZU1hU0R0OHhsQklsZFFUZzg4ZXRaY2wzYTN1aTJjRjFEYk5kUldCY1hOM2NQR1NBekJWUURnc1BmcjByMVZJWW8yREpFaWtEYmxWQTR6bkZSbXp0U1l5YmFFbVA3aDJENWZwNlVBZWJ4UFpYOFYzTnJzeW1hTFRJV3N2T2xLNUpqT1N2SXlkMktxa1NYck10NWRXY01zZGxiRzJsdkxsNHpHUExCM1I0QnljOG4zcnZkYTBHYlUzVlliMk8xZ0VmbG1NV3FPd0J6bmF4NVhJT09QU3RDTFM3SkxXMnQzdG9wVnRvMWpqTWlCaUFCZ2NuNlVBY0ZmV2FQcFhpRFZKSGRyKzFuVVJUcEt3MjhKa3JnZ2M1UGFtK0pvRzBUVkx5ejByekliZWF4amxuL0FIakgvbHR0TEU1SjZjRStoTmVqbUNFcTZHR01xNXl3MmpEZlgxcFdoaVp5N1JvV0s3Q1NveVY5UHBRQjVySGF4cjVjTU4zWkd6bnY3UlRiMkZ5N2hNbGdUazRJeVBROXFYV05Pc0xLODFPMzJNbG5iWFZtNnFYWWlNUG5lZXZmQXIwV0t4czRGMncya0VZM0JzSkdCeU9oK3RQa3Q0SlJJSklZM0VnQWNNb083SFRQclFCRnB3dEZzSVJZc2pXb1g5MlViY0NQWTk2czAxRVNOQWthcWlqZ0tvd0JUcUFDaWlpZ0Fvb29vQUt3L0dsNkxId3BmeVp3MGtma3I3bHVQNUVuOEszSzgrK0l0ekpxT3FhZDRldFRsM2NPNEhZbmhjL1FaUDQwQWJYdzdzemFlRTRHWVlhNGRwaVBxY0Q5RkZhSGkxZ25oWFV5ZitlREQ4eGl0SzB0NDdTMGh0b2hpT0ZGalVld0dCVWpva2lGSFVNcDZoaGtHZ0RnYlhRcjA2aGE2YUlXYlI1ekRleXVCOHU5VXd5bi9lWUE0ckp0NTdHNTBEU3JLNXRyVHpSYXl5TE5kM0R4SUFKWEdGMjlXNHpYcW9BQUFBd0IwQXFBMmRxUkdEYlFueWpsUGtIeUgyOUtBUFA5R3RZdGF1b285Ujh5ZEYwaEgybVJnQ3dZZ0U0UEp4NjFuUzNkdGY2TGJRM1VWczEzRlliaGMzZHk2RWdNNFVJQndXSHYxNmRxOVVTQ0dNNVNHTlR0MjhLQng2ZlNtR3l0Q1VKdFlTWStFUGxqNWZwNlVBZWJ5TlpYc0dvejZ6T3B1bzlMZ2V5ODJUYmxqRGtsZWVUdnFtb2t2Uy8ydTdzNEo0N1MyTnZMZDNMeHRHUExVN284RGs1NjEzMnQrSDV0VmtDeDMwZHRiZVY1UmpGcWpzRjV6dGM4cmtISEhwV2pIcGRpbHZid3RiUlNMYnhySEdaRURGUUJnY21nRHp5K3RoL1kzaUhWWGtmKzBMVzlDeFR4eXNObVdRSGJnNDV5YWw4VDIzOWlYMTdhNllaSWJhYTFpbG5IbU9lc3BVc1R5ZWdBUDFOZWpHM2dLT2hoakt1Y3NOb3d4OVQ2MHJSUk94Wm8wWml1MGtxT1I2ZlNnRHpJMnlvMXRidzNsa2JLZlU3VlRiMkYwN2lQY0hEY25CRzRlL2FrMWl5czdTLzFHekNGTEcwdnJRcXBkaUkxa1FsKy9mQXIwcUt4czRWQ3hXa0VhaGd3Q3hnREk2SDYwNlMydDVSSUpJSTNFbU40WkFkMk9tZldnQm1ucmFMWVFpeFpXdHR2N3NxMjRFZXg3MVlwRVJZMENJb1ZSd0FCZ0Nsb0FLS0tLQUNpaWlnQXJLOFVYdjhBWi9odS91YzRZUkZWUCswM3lqOVRXclhCZkV1K2VkckhRYmI1cHA1QTdLUHJoUitKSi9JVUFYdmhsWm0zOE1HZGhocm1abkI5aDhvL1VHdXZxdHB0bW1uYWJiV1VmM1lZMVRQcmdkZnhxelFBVVVVVUFGZVFmRXYvQUpHeC93RHJpbjlhOWZyeUQ0bC84alkvL1hGUDYwQWNuUlJSU0E2VHd2b0VmaUt3djdlTjFqdm9Oc2tMSG93T1FWUHR3T2F4ZFEwKzgweTVhM3ZiZDRaUjJZZGZjSHVQcFc3OFBiOFdQaXFCV09FdVZNSitwNUg2Z0Q4YTlldWJXMnZJdkt1cmVLZVArN0lnWWZyVEErZXFrZ2dtdVpsaGdpZVdSamhVUmNrL2hYdGJlRC9EclB2T2xSWjlpd0g1WnE3SGFhZm8xcEpKYTJrTnVxcmsrV2dVdDlUM29BODYwbncyMmt1czE5ajdZUmtSZzU4b0gxOS81VnNVNldScFpXa2M1WmprMWdlSWRhK3hxYlcyYi9TR0h6TVA0Qi9qUUFhN3J5MmU2MnRTR3VPN2RRbi9BTmV1UGtrZVdScEpHTE94eVNUa21rSkpKSk9TZTlKU0FLS0tLQUNpaWlnQW9vb29BSzk2OE8vOGkzcGYvWHBGL3dDZ0N2QmE5NjhPL3dESXQ2WC9BTmVrWC9vQXBnYU5GRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGQkFJd2VSUlJRQWlnS29WUUFCd0FPMUxSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCVFpJMGxRcElpdXA2aGhrR25VVUFWRjByVFVmZW1uMnF0NmlGUWY1VmJBQUFBR0FLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDdWY4YmFML2JXZ1NKRW02NWcvZXcrcEk2citJL1hGZEJSUUJ5bncrMXdhcG9vdEpuemRXWUNObnF5ZnduK240ZTlkWFhuSGlleHVmQ25pR1B4RnBpWnRwV3hOR09nSjZnK3pkUjZIOEs3elN0U3RkVzArSzl0SDNSU0RwM1U5d2ZjVUFXNktLS0FDdklQaUZvUDlsYXg5cmdURnJka3NNZEZmK0lmMUgvMXE5ZnJOOFE2UkZyZWp6Mk1tQXpEZEc1L2djZEQvQUo3RTBBZWUrRS9IWjB1MWowL1Vvbmx0bytJNUU1WkI2RWR4WFd2NCs4T0xEdkYzSTdmODgxaGJkK294K3RlUDNNRXRyY1NXODZGSlkyS01wN0VWb0h3OXF3MHorMHZzaCt4N04vbTcxeGo4L3dCS0FMM2k3eFJMNGl1a0N4bUcwaHo1Y1pQSlA5NCsvd0RLcm53ODBIKzFOWCsyenBtMXRDRzU2TS9ZZmgxL0wxcmxyYTNsdTdtSzJnUXZMS3dSRkhjbXZkZEEwbUxSTklnc1lzRW9NdXcvamM5VC9udGlnRFJvb29vQUtLS3A2dHFkdHBHbnkzdDIrMk5CMEhWajJBOXpRQnozeEQxd2Fib3hzb1cvMHE4QlFBZFZUK0kvajAvRStsWC9BQVpvdjlpYUJGRkl1TG1iOTdONmdudCtBNC9PdVg4SzZmZGVLUEVFbmlUVTEvY1J2KzVqUFFrZEFQWmYxUDQxNk5RQVZtZUl0WVRRdElrdm5qODFnUXFSNXh1WTlCL1g4SzA2NS94dHB0MXFmaDlvN05OODhVaXpLbjk3SGI4alFCVy90YnhSYmFmYzMyb2FiWlFSUlFQSUFISmJjQndDTTFGYWE1NGxrMHR0VW5zTEZiTVd6M0FaWGJkd2haZU0rb0ZSM211YWhyR2kzdGszaDNVYmVXUzJjRm5pTzNkZzhEakp6V05wTnBCQnBVOXZGNFkxU0RVWmJDYUo3bDRuMk0zbGs5Q2Nja0FEanFSUUJxUmVMTmNqZzA2N3U5UHN6YTM3aU9JeHVRd1k4RElOT1RYL0FCVSt0U2FTdW5hZDlxamk4NWh2YkczSUhYUHVLeXRQMEdmVExqdy9xVWxoZDNNWkdKNEdSMmEzZlBEN2V3NmR1MzBycExhMXVGK0k5M2RHM2xGdTFnRUVwUTdDMjVlTTlNOFVBVUxqeGZxSzJUU1FXdHUwMzlwdFlvcmJzRUFEQlBQWEpxZSsxN3hGcFZ2RExxTmpZcDUxekhBdmxzemNNR3lldnNLd2JuUnIyNDA4MjhsaGNsSk5lZDJIbE5ueWlBTjNUN3Z2V3Q0aThPUTZmbzlsYmFQWnpPcDFHT2FSVTNTRUFLd0pQWEE2VUFUUWE5NGsxRFVOUmcwMndzWGlzN2g0TjBqc3BPQ1FPL3RUVDRrOFF6WG1wcFphZFp5eGFmSnRrQlpnN0FaNmMreHJFanNvTGZYOVZ1TlI4TTZwZXUxNjhrRXNNVW0wTHVKQjRJQjlhdVcxN3FPbGFscit6UXRRdUd2WmlZV1dCdG5mcWZUbWdEc3REMVNMV2RJdDlRaVVvc281UW5PMGc0SS9NVmZyRjhJYWJQcFBodTF0TGtZbkFablhPZHBKSngrR2EycUFDaWlpZ0Fvb29vQUtLS1JtVkZMTVFxZ1pKSndBS0FLV3M2bkJvK2x6MzA1K1dOZUZ6eXpkZ1BxYTVENGQ2ZlBlWGQzNGx2dVpaMlpZaVI2bjVtSHQySDBOVU5WdXAvSFhpV1BUTEZtWFRMWTVlVWRDTzcvMFVmOEExNjlIdGJhR3p0WXJhQkFrVVNoVlVkZ0tBSmFyYWxleDZkcDF4ZXpBbElVTGtEcWNkcXMxbmVJYkNUVTlCdmJLTEhtU3hrSms0eTNVZnFLQU1uUmRWOFM2bTF0Y3k2WmFRYWZOaHR4a0pmWWVoSE5WdEMxenhQckVFRjVIWVdBdEpId3piMkRBQTRQR2ZyVHZEMnVhakRiMkdsWFBoNi9qZUlKYnROc1BsZ0FCZDJjVmcrRXJhRFRuczJ1dkMrcW5VVmtJKzFlVTRSY25BSkdjWUFQcFFCb0o0eDF6K3k1ZFhiVDdON0NHYnlwTnJzcjlRT00vVVZQYytJL0VzT28yZG91bjJCTjd1YTN5N2NxQm5ubmppdWVpOE4zaWFQSHFENmZkVFBGZkV6V1RLdzgyUGprTC9YMzlxNjNWNEo3bnhaNGR1NGJXWXdJc2hkdktJRVlLOEJ1UGwraG9BbzNmakRWTE9IVlJQYVdvbnNCQ05vM0VGbnh1Nzl1MVQzdXVlSjlOMG00MUc5c0xCWW8wVXJzZGlTUzZqa1o5Q2F4L0VHbWFoTmNlSnpGWTNNZ21hMzhvckV4OHpCR2R2SE9QYXRIV3ZDdHBwL2hHL0dsV1V6WFU2UkJrVXM3TmlSU2NEODZBTEVuaUhYYm5XbjA3VExLemtLVzhjekdWbUgzbEJQZjFORW12ZUkyMWoreWJleHNUZFIyd25sRHUyTTVBSUJ6N2lzTFVOT1QvQUlTU1NiVXZEK29haGJHMWlWUElqZmh3aTU1R1BjVmRpdTduVHZGUDlweGFCcWIycjZla0NSSkF4Wk1GY0EvUUxRQjAvaG5XenJsaEpMSkI5bnVZSkRETkZuT0dIcFd4WE4rQzdDOHRyYSt2TCtFd1QzMTAwL2xIcW9QVFA1bXVrb0FLS0tLQUNpaWlnQW9vb0pBR1NjQVVBVmRUdjROTTA2ZTl1R3hGQ3U0Ky9vQjdrOFZ4SGdLeW4xZldyenhQZkx5emxZYy8zajF4N0FZVWZYMnF0NGd2N2p4bnI4V2g2VzMrZ3d0bVNVY3FjZFcrZzZEMVAxcjBLd3NvTk9zWWJPMlhiRENvVlIvWDYwQVdLcTZuZlJhWnB0eGZUQW1PRkM1QTZuMEg0MWFyTjhSMkVtcWVINzJ5aEk4MldQNU1uR1NEa0Q5S0FNblN0VzhUWHl3M2t1bVdrTmhJdm1BbVFsOW1NZzlhaDBEWFBFdXN4VzEydGhZaXlrazJ1d2Rnd1VOaGlCbnIxcHVrYTVxUXNiYlM3bnc3cUVjcUlJR2w4cytXQUJqZG5GWW5nKzBnc0pySTNYaGpWQnFBbDIvYWpFNFJOeHhrak9NQUhuaWdDN0Q0ejEzK3hSclVtbldUV0FrMk9GZGcvWEhHVDcxYXVQRVhpYVBWN2JUMDArd0wzYXM4R1hibFFDZWVlRGdWemxwNGF1NGZEOWxxRW1uM2M3dzNXYml4ZFd5Nlo0SVQvUFd1djFDM25uOGM2RGVSVzB4dDBobDN2NVpBVEtOZ042SG5vYUFLTjU0djFPemkxVVMybHQ1OWdJQVFOeEJaOGJ1L1FIT0ttdmRjOFQ2YnBOeHFON1lXQ3hSb3BYWTdFa2wxSEl6NkUxaitJTk0xQ2E0OFRtS3h1WkJNMXY1UldKajVtQ003ZU9jZTFhV3RlRjdYVC9CMm9KcE5uTTF6Y0xGdVJkenMySFU4RDg2QUpqNGkxKzcxcTRzTk1zck9UeVlvcEdNck1wK1pGYjE5VFFkZThTeTZ4THBkdllXQnVZSUZsbERPMk1uSEFPZmNWZzNlblJqeEpkVGFuNGQxSFVJR2dnV013UnVBR0VhQThnajB4VjYzdnJ2VC9GRnhxYWVIOVVlM210STQ0NDFnWWxTQXZCUDRVQWRUNGExdiszTk9lWjREYnp3eUdHYUluTzFoL3dEcnJYcm5QQk5oZVdlblhVOTlENUUxNWN2UDVSNm9EamcvclhSMEFGRkZGQUJSUlJRQVVVVVVBUTNsMURZMmMxM2NQc2lpVXV4OWhYQWVETGVieEQ0b3UvRWwycDh1TmlJVkk0M1l3Qi93RmYxSU5OOFY2cFA0bzFtTHc3cERib0ZmOTlJUHVzUjFQKzZ2Nm44Szd6U3RPZzBuVFlMRzJHSTRseGs5V1BjbjNKb0F0MFVVVUFGRkZGQUJYa0h4TC81R3gvOEFyaW45YTlmcnlENGwvd0RJMlA4QTljVS9yUUJ5ZEZGRklCMFVqd3lwTEd4VjBZTXJEcUNPaHIzblFkVWoxalI3YStqSXpJdnpxUDRXSEJINTE0SlhZZkQzeEVOSzFFMkZ5K0xTNllZSjZJL1FINkhvZndwZ2V0MWllSmJqYkRGYmcvZU81dm9PbitmYXR1dVI4UlhLcmZ6U1NOaU9GUUNmUUFaTkFIUDYzcWE2YmFaWEJuZmlOZjYvaFhDTzdTU003c1daamtrOXpWblU3NTlRdlhuZmdkRVgrNnZhcWxBQlJSUlNBS0tLS0FDaWlpZ0Fvb29vQUs5NjhPLzhpM3BmL1hwRi93Q2dDdkJhOTY4Ty93REl0NlgvQU5la1gvb0FwZ1Y5UWU0dk5jajBxTzRrdG9WZyswU3ZFY08zemJRb1BhaUszdTlPMWEyaWludXJxenVBNGs4NWpKNVJBeUR1N1o2WU5BLzVIWnYrd2VQL0FFWWEwcHJ1R0M2dDdaeWZNdUN3VEEvdWpKL1NnQ3RQcmVtVzl3MEV0MHF1cDJzZHBLcWZRc0JnZmlhbnVyKzBzOW4ybWRZdk15VkxkRGdaUDZWamFVcXY0TXVDd0JNaTNCZlBjN242MUVpTE0zaFFTZ1ArN0xjK29peUQrWW9BMWsxM1MzU1J4ZEFlWGpjR1JsYm5wZ0VaUDRWTmE2blpYZHZMUEJPR1NMUG1aVXFWeHp5Q00xUWtpUi9Ha0xzZ0xKWXN5bjBPOEQrUlA1MUF3QTFMeEg3MjBYL29EMEFhQTE3UzJsampGMnBNaEFWdHAyNVBRYnNZQjlzMUxlYXBaV01peDNFeEVqRElSRVoyeDY0VUU0ckR2STQwK0hLaEZBSDJXTnVQVTRKUDUxZmVaLzdhdTAwMjFqa3VRa1l1SlpwU3Fyd1NvQUFKSndUK2xBRjVkVHNtc0d2bHVGTnN2VndEeHpqa2RhamoxblRwYnRiVkxrR1ZpVlg1VHRZanNHeGduOGE1eVh6UCtFWDhRK2NFV1Q3Vys0SWNxRDhtY1pyWTE2TklyZlM0NDBDb2w5QUZBN0FIRkFHckJjdzNEU3JESUdNVG1OeGpHMWgyb3RybUc2ak1rRDcwREZjZ2R3Y0g5YXdkUnV2N0YxYStuNkxkMnZtSjd5cDh1QjlRVnJZMG0wK3dhWGJXdjhVYUFNZlZ1cFA1NW9BaWgxdlRaNW80WWJuekpKRGdCVVk0NUk1NDQ2ZDZKTmIweUs1TnU5MG9jTnNKMm5hRzlDMk1BL2pWYndtaUpvTWJLb0JlU1FzUjNPOWgvSUNzclNiZlZiM3dtbHRGRlpHR2VOeHZra2Zka2s4a2JUem1nRHBMM1VyT3cyQzVtMk0vM1ZDbG1QNEFFMUg5dnRMMnp1VGJYaTRTTWxwRXlkbVJrR3FGcEcwWGloSTVTR2tqMHhGSkhydk9jZmxVTVNvdDE0bUVZQVhDbmoxTVdUK3VhQU5PTy90YkxTYlNXNHZQTVI0MEN5bFR1bE8zcnQ1T1QxcXZmYTlhTG8xemRXdHdTNnF5cGlOaVZrMmtqSXh4K1BGVjRMRzRuMG5STHl6ZU1YRnJicnRXVUhZNFpBQ0Rqa2ZXbjNHb0c3MFhXSUpyYzI5MUJidUpZOGhoeWh3UWU0SUg2VUFXOU8xaTF1ZE8rMFBNVjhxTldtZVNOa0FKSHFRQWUvU3BiTFZyRy9sYUsybjNTQWJ0ckl5bkhxQVFNaXNuVnQ1OFBhU2tZVmk4MXV1MXpoVzZjSDJ6aXJRdE5VdU5Yc2J1NlN6amp0dCtmS2tabVlNdU1jcU8rS0FMTW10NmJIT1lHdWN5aHpHVVZHWWdqSFlEcHoxNlV0M3JPbldjeGhudVFycUFXQVZtMjU5U0J4K05WZkQ2SUxqVjVBbzN0Zk9wYnVRRlhIOHpWTFN2N1NkdFRGdERaeVJQZXpCak5Jd1k4NHhnS2VNWW9BM2JtL3RMU0JKcHBsQ1NZQ0Zjc1h6NkFaSi9DczJ5MUJMM3hLNHQ3aG50eFpnN01rQU52SU9WUFE0eDcxVnRyT1d4di9EMXBjTXJ5UXhUZ2xTU09neGpQc2F1UnFpK001eW9BTFdLbHNkenZJNS9BQ2dDM2VNQnFlbmczYlJFcytJUXBJbStVOEU5c2RlYWJQcm1tMjdPc2x6OHlNVVpWUm1JSXhuZ0RPT1J6MHFEVlA4QWtZTkUvd0IrYi8wV2FiNGZqUVhPcnloUnZhK2RTM2NnQmNEOVQrZEFHdEJORmNRcE5DNnlSdU1xeTlDSzUvVHJOdFN1TlNrbXY3NWZMdlpJMVdPNVpWQ2dBZ1kvR3JuaFFBZUhyY0RnYjVmL0FFWTFVTkowMUx5NDFXUnJxOGhJdjVGMnd6c2c2THpnZCthQU5tTllOSnNtYWE1bWFJTUNYbmtNaEJKQUF5ZTJjVTJEV2RPdUxvVzBWeUdrYk8zNVNBMk91MWlNSDhEVkx4TkNzZmhhYUFzN3FERXVYYmN4L2VMMVBlcE5lVlZmU0FxZ0JiNk1EQTZEYTNGQUZxNjFqVDdPNE1FOXlFa0FCWWJTUW9QVGNRTUQ4YXFhcmVpVzEwK2V6dUNZNUw2SkMwYkVCaHV3UjdqaWwwRlZlWFZ5eWh0MTg2blBPUnRYaXNlMENqd3Zvb1Q3bzFGY2ZUem1vQTZlOTFDMXNBaHVaZGhjNFZRcFptK2dHU2FiYmFsWjNWdkxQRE1HU0xQbVpVZ3JqbmtFWkZVNzZiYnJjU1dsc3MxLzVCTzZTVGFrY1pZY25nOGtqc0tvVzV1RGVlSWpkTEVzdjJlUElpWXN2M0g3a0NnRFUvdDdTakpHZ3UxSmt4aHRyYmVlUUMyTUEvV3JGNXFOcFlsRnVKZHJQbmFxcVdZNDY4QUUxZzNzYVIvRHBWUkFBYldOc0QxTzBrL25XaU9mR1QrMWd1UCsvaC93b0FUUnJ3WG1xNnEwYzVsZ0RSZVg4eElBS0RPQjI1NjFjdk5Vc3JHUlk3aVlpUmhrSWlNN1k5Y0tDY1ZTMGhVVFh0YkVZQUhtUkhqMUtaUDY1b2VaL3dDMnJ0Tk50WTVMa0pHTGlXYVVxcThFcUFBQ1NjRS9wUUJlWFU3SnJCcjViaFRiTDFjQThjNDVIV280OVowNlc3VzFTNUJsWWxWK1U3V0k3QnNZSi9HdWNsOHovaEYvRVBuQkZrKzF2dUNIS2cvSm5HYTJOZWpTSzMwdU9OQXFKZlFCUU93QnhRQmR1OVZzYktYeXA1OXNtTnhWVVppQjZuQU9CN21xM2g2NGE1Z3ZaRE1aVisyU2hHTGJodHp3QjdVbW1mOEFJdzYyZSs2RWYrUXhUZkRDb2x0ZkpHQUVXK21DZ2RBTThVQU8wdTRlSy8xZTN1SlhkWVpSS3BkaWRxTXVjRDJHRFZMd3BmWEVrTjc5dWxkaUN0eXBkaWNJNjVBSHNNR29mRXNyV1dvVEZPRGYyWnQxOTNEQUQ5SHB2aUEvMlhQdGk0RnpZRzBRZXJBZ0Q5R05BR2pwT29KYmFEYjNXbzNEYjdobWNic3N4M0VrQlJ5ZW1PQlZsOVR0cnpUYjFyT2NsNG9teU1GR1E3VGc0SUJGVnJuWmJYdW4yZHJiQzR2WUlHOHZjK3hJMDRVazhIMEE2VlNrTjJkWTFIN1lrQ1NIVER4Q3hZRWJtNjVBNW9BMk5OdVZqOFAyZDFkVFlIMmFOM2trYi9aR1NUVDdMVnJHL2xhSzJuM1NBYnRySXluSHFBUU1pc1M5M253cG9pUmhXTHZhcnRjNFZ1QndmYk9LdmkwMVM0MWV4dTdwTE9PTzIzNThxUm1aZ3k0eHlvNzRvQXMzT3Q2YmF6dEROY2hYVEcvQ013WFBxUU1EOGF2cXdaUXlrRUhrRWQ2d3BJNzNSV3ZKNG9ZN3l4bGthNGtUTzJWTS9leG5oaHgwNHJiZ21TNHQ0NTRqbU9SUTZuMUJHUlFBK3VaMExUbTFIUjRycWZVdFJFc2hmSlM2WUFZY2djZmhYVFZ5ZWdhTkZmZUhvbWU4dll4SVpBVWpuS3FQbllmZDZVQVdyRzdtbjB5RDdUZnRHMFYrSVZtVlNmdEFWc0FjZjN1bWZhdFM5MWV3c1pmS3VKOXNtTnhWVVp5QjZuQU9COWF3Rm1adE10TFpnbitoNnRIYkJrWGFIQ3NPY0RwMXJWdUxXL3N0U3ViK3dqaXVWdUF2bXdPMjFzcU1EYTNUcDJOQUVlczY3RGF4MlQyODVJbW1qSlpZeTRhSW5uQnhqUHQxcStkV3NWc2hlTk1VaExiUVhSbEpQb0ZJeWZ5ck0xRzhodjhBVE5KdW9GS3h2ZlE0VWpCWERZSS9BakZQMXMzSDl2YVFMWllua3hNd1dWaUZ6dFhuZ0huQk5BR3BaYWhhWDZPOXRNSENIREFncVYrb09DS3J3NjdwazF3c0VkMEM3dHRVN1dDc2ZRTmpCL0ExbTNscHFDSnF1b1hRdG85OWc4ZTJCMmJKQUpCT1FQV3RDS0N6azhQMmtkMFVTQVJ4SEpiYUFSamJ6OWNVQVZWMU9LejE3VTF1N2xoR0ZoOHVQbHVTR3p0VVovSEFyV3M3dTN2cmNUMjBva2pQR1J4ZytoQjVCck1zSTBQaXZWcFNvTHJIQ29idUFRYy95SDVVL3dBUGdDVFZzZjhBUC9KLzZDdEFGcTUxYXd0WlhpbXVBSkV4bEFwWnVSa2NBWk5VdGIxQkp2QzExZVdGeWNiUGxrakpCQnlQeEJvc0VRK0s5V2tJRzlZb1FEM3dRYy95RlpWMkFQRG5pTURnZmJIL0FQWktBT3B1N3Uzc29EUGN5ckhHRGpKN24wQTdtb3JMVXJPL0xpMm0zTW1OeXNwVmgrQkFOVXRWQWJYZEZWdVY4eVU0UHFJemlyNWl0ZjdUV2JjdjJ2eVNvRzdrcGtIcDZaeHpRQkZjc0JxMWlwdTJqSldURUFVa1M4RGtub01lL3JVYzJ2YVhCTzBNbDBGWkcyc2RqRlZQb1d4Z2ZuVVdvZjhBSXphUC91VC9BTWxxc0JlNkJieWd3UjNtbXF6U0VxY1N4cVNTY2c4TmpOQUc4N3BIRzBqc0ZSUmtzVGdBZXRVYmZXOU51WjBoaXVEdms0VGRHeWgvb1NBRCtGSnJFOW1kRG5tdVEwbHEwWUpDY0ZnY1lBK3BJckwxWjlTYzZhYnExdG9JZnQwT0ZTVXM2bmQwKzZCK1JvQTJkV3ZWc05QbG5abVZ0cENFSVcrYkJ4d0FmOEtxNlZyVnZkYVVzOHNyYjRyZFpMaGpFeWdmTGxpT01IdjBxN3FmL0lMdS93RHJpLzhBNkNhelArWkUvd0M0Yi83U29BdVJhMXBzcnlLbDBwOHRON3R0TzBEL0FIc1k3OU0wdHRyT24zVTZ3UlRuekhHVkR4c203NmJnTS9oVkdjMmx2NFdzNFpvREtraXdva0tIQmR6Z2daK295YWcxUjlTYTYwcHJ1QzJpaisycHQ4dVZtY0hhM0J5b0dLQU5hNTFqVDdTNE1FOXdGa1VBc0FwSVRQVGNRTUwrTlplblhEemFCcDhzMm9TUk0xM2plY3VaZjNyQUlUNkhwVnJRVlY1TlgzQU51dm5CeU9vMnJ4V1BhQlY4TWFNRis2TlJVRDZlYzFBSFIzT3IyRnJLOFUxd0ZrVEdVQ2t0eU1qQUE1NmRxa2cxQzB1TEkza2R3aHR3Q1M1NEM0NjV6MC9Hcyt3alErS3RXa0tndXNjS2h1NEJCei9JZmxXVGRnZjJEcnd4d2RTR2Z4YVBOQUcvQnJtbVhEcWtkME43c0ZWV1ZsTEU5TUFqa2UvU3JzMHNjRVR5eXVxUm9Nc3pIQUFySThRTEg5cDBkaUI1Z3ZWQ252akJ6L0lWZTFheEdwYWJOWm1ReCtZQmhzWndRUVJ4OVJRQTJ6MWl3dnB2SnQ1OTBtTndWa1pTUjZqSUdmd3FlSzl0NXJNM2Njb2FBQmlYd2Y0U1FmNUdxRnJxRjFIcUVOanFkdEdrMHF0NVUwTFpTVEhKR0R5cHh6VlRTQ0I0TGtKNEd5NC85Q2VnQ2JVZFJqUy8wYTRXNUtXa3ZtT3h5VlZsOHZJeVB5NjFvV1dwMmQrenJiVGJtais4cktWWWZnUURXRkdpU2Y4QUNKcklBVjh2T0Q2aUlFZnFCVjZlSlpmRmhqT1FKTk9kU1IxeHZIK05BRmlQWHRMa3VGZ1M2QmQyMktkakJXUG9HeGcvblQ3ZVdOTC9BRkpudlM2b1VMUnNDRmdHelBVOGM5YXo0WnJ6UTdlQzN2b1lwckdNckV0ekVjRkJrQlN5bjhPUlZEV0NSRjRweC8weC93RFFGb0F1NmxyZHRjbXhTeXUzRHRlUWdnQmszb1d3Y1pBM0Q2Y1ZwMjdxTlZ2ODNoZmFzWk1KQkFoNFBPZW5QOUtwK0k0NDl1bG5hb0szOElYMjU3VldubXQ0TlE4UlNYWVkyL2tRaHd2VWdxd3dQYzVvQTBvdGQweVdaSWt1ZVhiYWpGR0NzZlFNUmcvblVsNXExaFl5bUs1dUJISUZEN2RwSklKSUdNRG5vZWxZZXR0cVg5Z1lrczdhM3RsTVFDK2NXa1VCMXgvRGpQNDFvZVdqZU5TNVVGbHNGMms5c3lOUUJvMjE5Ylhic2tNbTUxVlhLbFNwQVlaQndSVDRibUdlU1dPSjl6UXRzZkE2SEdjZnJXVHFraWFicjFwcU1oMnd6UlBieW5zTURldjhpS244T3hPbWtwUEtNVFhUTmNQOVhPUittQitGQUUxNXJHbjJVeGh1TGpiSUJrcXFzMjBlcHdEajhhcGVKZFVTMTBRdmJ6c3NrNFh5cEkxTGNGbHlRUU1EZzhmcFQ5QkFhZlYyUExHOWRTZllLdUJXUVA4QWtud0E2Q1VBZlFYSEZBSFJhU0xjV0ttMmxubGlKSkRUbGkzL0FJOXpXUnBsaTJwUHFNczJvWDZsTDJXTlJIY3NvVlFlQUJYU1Z5K2xhVkhmSFZHZTZ2SWdiNlpTc001UmV2cDBvQWx0cnFhWFFieExuVVhpK3pYWGtMZGhTV1pRNjRQSFhPZHRhOTdxdGpZU0xIY3pGWFliZ3Fvem5IcmhRZUs1dTVMVytnNm5wV1E2V00wS280VURjck9yRE9PNDdtdHE2dEwrMjFLWFVOUEVNM25JcXl3U2txVHR6amEzYnIzb0FoMXJYWWJmUjF1Yk80M1BLVjhwMWpMQWdPQTJlTURqUFdydzFld05rMTRaaWtDdHNMU0l5SFBvQVJrOWUxWmVyM3NkL3dDRko1WTQyaUt5b2p4dDFSeEt1UWZ4cWJYak9kVjBkTGRZbmZ6WkdWWldJVWtJZVRnSHB6aWdEU3NkUnROUTMvWlp0NVE0WlNwVmwrb0lCcUJkZDB0cmdRaTdVc1cyQnRyYkMzcHV4ajlhb3kybXBDNXU5UnV4YlJnV0x4QVFPekVuT1FUa0QzcWV5Z3M1ZkNWcEZkbEV0bXRveTVMYlFPQWM1N2MwQU11ZFFTejhUT0xtNFpJUHNha0pra0ZpN2RGSFU0SGF0T3l2cmEvaU10cktKRlU3VHdRUWZRZzhpczN5MGJ4cVhaUVdTd0cwbnRtUnFmcFlBMS9Xd09CdmgvOEFSWW9BaG1SOVcxNjZzNXBwRXRMUkVKampjcDVqT0NlU09jQURwVXR2WlQ2YnE4TWRxMDBsaE1qZVlramx4RXd4Z2dubm5rWXBOTjQ4VWEwTzVXQWovdmxxakVVOWo0Z3NJQnFGMWNSenBLWFNaZ1FOb0dPZ0hyUUJkT3Q2YjlvRnVMbmRNWkRIc1ZHSkRBNE9jRGpudWVLVzYxblRyTzRNRTl5RmtVQXNBck1Gei9lSUdCK05WZkRjYUtOVGNLQXpYODJUM09HbzBCVmVMVTk0RGJyNllObnVNNC9sUUJwdGQyNnlRUm1WZDF4bnlzYzc4REp3ZnBTL2FZUmVDMDMvQUw4eG1RSmcvZHpqT2VuVTF5MmtFbUx3c1NjLzY0ZitPTld1eEgvQ1pJTy8yQnYvQUVZdEFFaitJTktRQW04WEI3aFdJWG5ISkE0NUhmRmFRSVpRUVFRZVFSWE9hTkhHUEJseGhSODZ6bC9jNVljL2dCV3Rvbk9oYWY4QTllMGYvb0lvQWlmeEJwU0FFM2k0UGNLeEM4NDVJSEhJNzRwdW9UdU5hMGRJNVdFY3JTN2dyY09CR1NNK3RVTkdqakhneTR3bytkWnkvdWNzT2Z3QXBMZmwvQ24vQUZ4Yi93QkUwQWJWN3FkbFlPaVhNMjEzR1ZSVkxzUjY0QUp4VXRyZFFYbHVzOXRLc2tiZEdGWnRnQTNpalZtUExMSEFBZlFFTVRWK3ppdFltdWZzektTOHhhVUsyY09RTS9ROU9LQUtmaVNXVzIwMUx1S1IwK3p6UnlQdFlqY3U3QkI5Umc5S28rS3I2NXRwN1A3Tks2aUUvYVpncEkzSXJLTUhIVWZNZnlyWjFPMisyYVpkVzJNbVNKbEgxeHgrdGM5cEIvdDJHOGxQSit3eDJnUCswVkpiOVNLQU5hK21rZlhkTXRZcFdWTVNUU2hTUmxRTURQcU1uOUtsWFhOTWU2RnV0MnBjdHNCMm5hVzlBMk1aL0dzSFNMbHI2Szd2Z1NIdDlPUzN6L3RiU3pmcmludzJXclgzaFczczRvckJJWklJeWptUjl3NkVIRzNyUUIxTWtpeFJ0STV3aUFzeDlBS3ovd0MzdEtNa2FDN1VtVEdHMnR0NTVBTFl3RDlhczZuL0FNZ3U3LzY0di82Q2F3TDJOSS9oMHFvZ0FOckcyQjZuYVNmem9BMlk5YTA2UzdXMVM2VXlzU3EvS2RyRWRnMk1FL2pUcnZWckd5bThtZVkrWmpkc1JHY2dlcENnNHFscjBTUlcrbHh4b0ZSTDZBS0IyQU9LU09lYVRVcjl0S3RJbWJ6QWs4MDhwVlM2cUJnQUFuZ1k5S0FOQ1BVcktVV3hqdUZZWE9SRVJuREVkUjdINjFNMXpDdDBsc1gvQUh6cVhWY2RoMVA2MXlpUnkvMkRlWGUxZnRGbHFNbHh0UTVYNVcrWUQyd1RXdnBUcmY2emZhaWhEUklxMjBMZXdHNXYxSS9LZ0RRdTlRdExJcUxxZFlpNFpsM2R3TVovbUtycHJ1bVBFOGd1Z0FoQ3NySXdiSjZmS1JrL2xWZlU0MGZ4Tm91OVEyMVoyR2ZYYXRJSTBQalZuS0FzdGd1RGpwODVvQTBiVFVMUzh0M25nbVZvMEpEa2dydEk2NUJ3UitOUTJ1dGFkZDNBZ2d1UTBqWktncXlodjkwa1lQNFZnYXNTa1BpbmJ4L3FlbnVpNXJWOFFLcVJhWHNBQVcraEM0N0RPUDVVQVhMblY3QzFsZUthNEN5SmpLQlNXNUdSZ0FjOU8xUVgxN2JYZWd6M052cUJ0NGlQK1BoRkpNZlBwd2MrMVJXRWFIeFZxMGhVRjFqaFVOM0FJT2Y1RDhxeWJ3QWVIZkVtUCtmeC93RDJTZ0RVMVhXNDdMV0xLMk1qckdTL25nUXMyUnN5dUNCeno2ZmpWNmZWckczZ2htbG1Lck56R05qYm0vNERqUDZWVjFUL0FKR0RSUDhBZm0vOUZtZ2MrTW16enRzQmoyekljL3lGQUYyUFViT1d4ZTlqblZyZU1GbmNBL0xqazVIWFB0VGJYVmJHOHVHZ3RwL05kVjNIYXJZeDljWXp6MHpXTE1Bdi9DVnF2QytWbkE5VER6VzNwRWFSYVJab2loVkVLY0Q2Q2dDM1JSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFFVjFiUTNsckpiWE1Za2hsVXE2bnVLODNkTlMrSDJzR1NOWHVOR25ia1ovVDJZZnIvQUM5TnFLNnRvTHkya3Q3bUpaWVpCaGtZWkJvQWgwdlU3VFZySkx1eWxFa1RmbXA5Q094cTNYbkdvZUc5WjhLWHJhbDRka2VhMlBMd0ViaUI2RWZ4RDNISS9XdHp3LzQ3MHpWQXNOMndzcnJwdGtQeU1mWnY2SDlhQU9yb29CeU1paWdEemI0bmFEc2tUVzdkUGxiQ1hBQTZIK0Z2NmZsNjF4Mzl0WHAwRWFONW4raWlYemNkL3A5TTgvV3ZkTHkxaHZyT2EwdUUzeFNxVVlleHJ4Z2VGN3crSy83Q09kMi8vV1k0OHZydi9MOWVLQU9tK0dPZzVaOWJ1RTRHWTdjRWZnemYwL092UjZodExXR3l0SXJXM1FKRkVvUlI3Q3BxQUNpZ25BeWE1UHhCNDcwM1N3ME5tUmZYWFRDSDVGUHUzOUIrbEFIUWFycWxucEZrMTNlekNPTmVucXg5QU81cnoyR0hVZmlEckF1SncxdHBOdWNBQS9vUFZqM1BiK2RqVHZEV3NlS0x4ZFQ4Unl5UlcvVklQdXNSNkFmd2o5VCt0ZWcyMXZEYVc4ZHZieExGREdOcW9vd0FLQUZ0cmVHMHQ0N2UzaldPS05RcW92UUNwS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29yRzF6eFBwV2hxUmRYQWVmSEVFZnpPZnc3ZmpRQnJ5U0pGRzBranFpS01zekhBQTlUWG5QaURYNzN4VmZmMkZvQ3NiZGppV2JvSEhxVDJUK2Y4QU9KbjhRK1BadHFyOWgwa055ZWRwL3dEaXorbjBydTlEME94MEt6RnZaeDRKKy9JM0xPZlVtZ0JuaDNRcmJRTk5XMWcrWno4MHNwSEx0Ni9UMEZhdEZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVWbGExNGowdlJJeWJ5NUhtNHlJVStaMi9EdDlUZ1VBYWpNcUtXWWhWQXlTVGdBVjU1NGs4UzNYaUM3T2crSFZhUlpNckxNdkc4ZHdEMlgxUGYrZGFhODhRZU81akJhUm15MG9OaG1PZHAvd0I0L3dBUjloeC9PdTQ4UCtIN0hRTFR5YlZOMGpmNnladnZPZjZEMm9BajhNZUhyYnc5cDRoanc4NzRNMHVPV1BvUFlkcTJhS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb3JOMWpYdE4wV0hmZlhLbzJNckV2THQ5Qi9YcFFCcEVnREpPQUs4LzhVZUtwOVV1ZjdCOE9nelNUSFpKTW5mMUNuMDlXL3dEMTFVdWRVMS94eE8xbnBrTFdtbTV4STVPQVIvdE4zLzNSWFplSFBEZGo0ZnRpbHVQTW5jZnZKMkh6TjdldzlxQUl2Q2ZocUR3OVk3Y2lTN2xHWlpjZitPajJINjF2VVVVQUZGRkZBQlJSUlFBVjVCOFMvd0RrYkgvNjRwL1d2WDY4ZytKZi9JMlAvd0JjVS9yUUJ5ZEZGRklBb3A4Y01zb1l4eE80WHFWVW5GSWlQSWNJck1mUUROQUhxSGdIeFlMNkpOSjFDVC9Ta0dJWkdQOEFyUjZIL2FINjFoL0VDL0tYY3RraCthU1FzLzhBdWc4RC9QcFhIckhjd3NKVlNWR1E3Z3dCRzBqdm1wcjJlKzFPNWE3dUZlV1J3TXVFNjRHS1lGT2luYkgzN05yYnY3dU9hZjhBWjUvK2VFbi9BSHlhUUVWRk84dDhNZGpZWGc4ZEtjc0V6S0dXSnlEM0NtZ0NPaW4rVEx1MitVKzdHY2JUbkZDUlNTREtSc3c5UU0wQU1vcDdSU3BqZkc2NTRHVklwV2hsUmR6Uk9vOVNwRkFFZEZGRkFCWHZYaDMvQUpGdlMvOEFyMGkvOUFGZUMxNzE0ZC81RnZTLyt2U0wvd0JBRk1CK29hWkhleXhUcE5KYjNNV1FrMFJHY0hxQ0R3UjdWSGFhVjVWNEx5NnU1Ynk0VlNxTklBb1FIcmhRTUFuMXJTb29BeUpOQlJ2T2lpdmJpRzBtWXRKYnB0Mm5QVUE0eUFlNEZYSDArQjdpem1HNVBzZTd5MVg3dUN1M0IvQ3JkRkFGWTJVWjFJWCs1L05FSmh4bjVjRWcvbnhWZTdzWTRvOVR1a0x0TGN3YldYdDhxa0RINTFvMFVBYzlwbWhpYlI3R09XNnVQc3hpamtlMU9OcGJBSkdjWnhubkdhdjNHaytaZlBlVzE1UGFTU3FGbDh2YVE0SFE0SU9ENzFwVldGN0dkU05odGZ6UkNKczQrWEJKSDU4VUFVeG9Ob3VtM2RnSkovS3VuM3VTd0xaNHlRU1Bidm1ybDdaUjNxd2lWbkhrekxNdTA5U3B5TSsxV2FLQU9lMUpyWFdkWXNiT0hFcHRKekxPd0J4SHQvaFAxT1B5cm9hS0tBSzJuMlVlbjJhV3NMT3lLV0lMbko1WWsvenFndWh5UTdvclhVN3EzdFdZdDVLYmZseWNrS3hHUUt2dzNzYzE5YzJpcTRrdHdoY2tjSGNDUmo4cXMwQVllc25UWXIyR1M2dnA3SzVFZTFab3pqY3VmdWs0SVBJemlvdEFzNHBWMVI0aEtMUzZZTEc3azduQVhEUHo2a2s1cmN1cm1HenQzdUxoOWtTRExNUm5GUzBBWnNtazR0N1dPMnZiaTNlMmpFYU9wQnlvQUh6S1JnOVBTblcya3d4UVhTU3lTWEQzUTJ6eVNIbHhqR09NWUdEMnJRb29BeWwwS0FhZkpaU1hWMU5HMjNZWkpBVEZ0NmJUampGUzJlbjNNTTZ5M0dwM0Z6dEJDb3dWVi9FQWNtdENpZ0N0WjJVZG0xd1kyYytmTVptM0hvU0FPUGJpcWN1anVMbWFhejFDZTBXZHQwc2FCV1V0M0l5T0NhMWFyVFhzY045YldqSzVrdUE1UWdjRGFBVG44NkFLOTFwUzNFVnJ0dXA0N2kxLzFkeGtGK1JnNXlNSFBlbHN0Sml0TDE3M3o1cHJpU1BZN3lFSGR6bk9BT1BUaml0Q2lnQ3RQWlJ6M2xyZE96aDdZc1VBUEIzTGc1b3M3S096YTRNYk9mUG1NemJqMEpBSEh0eFZtaWdDdHA5bEhwOW1sckN6c2lsaUM1eWVXSlA4Nm8vMkNxenp5dzZsZlFlZklaV1NOMUM3ajEvaHJYb29BejMwbEpkTmtzWjd1NW5SM0RsNUdVdU1FRUFIR01aSHAzTlQzbGxIZU5ibVJuSGtUQ1pkcDZrQWpuMjVxelJRQnpkKzJqUmFoYyticUZ6YXlPUjUxdkdTb2xPUFRHVGtjZkthbTB2U0JONFh0Yk83V1NCbFl5cnNPMTR6dkxMajBJelc5UlFCbHphTnVrZ25pdnJtSzZpUXgrZmxXWjF6bkRBakI1OXFkYmFOQmIvYTI4NmVSN3RBa3J1d0pPQVJucDE1K25UaXRLcTg5NUZCZDIxczRiZmNsZ21CeDhveWMvaFFCRE5wY0UyakRTMmVRUUNOWXR3STNZR01kc1o0OUtTOTB6N1RkcGVRM1V0cmNxbmxsNDhIY21jNElJSTYxTlozc2Q0MXdJMWNlUk1ZVzNEcVFBZVBibXJOQUZIVHRMZzA2U2VTS1NWMm5JWnpJMlNTQjEvSHJVZHhwUG1YejNsdGVUMmtrcWhaZkwya09CME9DRGcrOWFWRkFHVU5CdEYwMjdzQkpQNVYwKzl5V0JiUEdTQ1I3ZDgxY3ZiS085V0VTczQ4bVpabDJucVZPUm4ycXpSUUJtM0drZVpleVhWdmVUMnJ6QUxNSXR2ejQ0QjVCd2NkeFUrbTZkQnBsdThGdVgyTklaTU1jNEo3Vk5QY3cyNWlFejdUSzRqVGpxeHpnZm9ham12WTRiNjJ0R1Z6SmNCeWhBNEcwQW5QNTBBTXY5TXQ3K2EwbG0zaHJXUVNwdEk1UHZ4MDRvMURUTGZVWkxWNTkyYmFVU3B0STVJN0gycTVSUUJRdjlNVzd1WXJxSzRsdHJtSUZSTEhnNVU5aUNDQ0taYmFMQkRjeTNMelR6eXpSZVZLWldCM2pQb0J4NmNjVnBVVUFaU2FGYnJwcjJEWEZ6SkNjYkM3Z21MSFRhY2NZcVd6MCs1aG5XVzQxTzR1ZG9JVkdDcXY0Z0RrMW9VVUFaTXVpdklaWXhxZDJ0cktTWGgzQTllb0RFWkEvR3JVT20yOEY4dDNIdVZsdHhicWdQeWhBY2o4YXVVVUFGWXNQaDFiZUVRd2FycU1jUUp3aXlLQU1uSi9oOTYycUtBTThhTlpyWjIxckdIamp0NWxuWEI1WmdjOGs5Y25yVGJqUzVYdVpKWU5UdXJkWmY4QVdJcFZoNmNiZ2R2NFZwVVVBWjhtaldqNlhIcDYrWkhGRVF5TWpZZFdCenVCOWMvenBrMmpyTGJ3SjlzdWZ0RURGNDdrc0M0SjY5c0VlMkswNktBS05yWVNSck1MdTltdlBOWGF3a0NoUVBaUUJqclZhUFFnb2loa3Y3bVd6aFlNbHUrM0hISUJPTWtEampQYXI1dklocUlzY041cGlNMmNjYlFRUHp5YXNVQVZvYktPRyt1YnRXY3lYQVFPQ2VCdEJBeCtkRm5aUjJiWEJqWno1OHhtYmNlaElBNDl1S3MwMlNSWW8ya2M0UkFXWStnRkFHQ3RoSmNlSmRUbWp1SnJXUlVoQ1NJQVFRUWNqQkJCNkN0Q1BSN1ZkTG1zSEx5Sk9XYVYyUHpPeDZzVDYvNFZZZTloVFRtdnd4ZUFSR2JLamtyalBINFZMQktzOEVjeVoyeUtHR2V1Q00wQVo4bWpKSlp4d3ZkM1R5d3Y1a2R3emd5SWVuWEdNZTJLa3N0Tit6M1QzYzkxTGRYTEo1ZStRQWJWem5BQUFBNXEvUlFCV25zb3A3NjJ1Mlp4SmJod29CNE80QUhQNVZSYlEyYU0yN2FuZU5adDFnWmdjajAzWTNZOXMxcjFRc05VUy9ta1dDM244bGNnVHNBRWNnNElIT2YwN0dnQ2U4c2JlOHNIc3BVL2N1dTNDOFl4MHg5T0tvZjJFSlRDMTNxRjFjbUNSWkl0eFViU3B5T2c1UGJKL1N0ZWlnQnNpTExHMGJqY2pBcVI2ZzFuVytpeFFXTTlsOXJ1cElKWWpDRmtjSHkxd1I4dkhIWDNyUmtrV0tOcEhPRVFGbVBvQlNReXh6d1J6Uk51amtVT3Jlb0l5RFFCVnV0TGd1dE9TeWRuQ3hoZGpxY01wWG93UHJWWWFJSkpvSjd1K3VibVdCdzhaWXFvR08yQU1jOSs5YTFGQUdYTG93YTZtbGh2TGlDTzRPWm9veU1PY1l6a2pLNTc0cDBlaTJzVmhhMmFOS0lyYVlUcHlNNURGc0hqcGsxYWd2SXA3dTV0a0RiN1lxSHlPUG1HUmo4S3NVQVZvYktPRyt1YnRXY3lYQVFPQ2VCdEJBeCtkVkxxd3NMYlRyOFhQbVBiM01obG1HTnhCT0J4Z1o0d0RWd1hrUjFFMk9HODBSQ2JPT05wSkg1NUZXS0FPU1ZMTzkxTFRoWTN0eHFFc013a2VTVnR3aWpBT1IwQXlUajM0cnByMjFXOHRtaGFXV0xKQkR4TnRZRUhJcWVpZ0RPdGRLTWQzSGRYVjVOZHpSQXJHWkFxaE04SEFBSFB2VUgvQUFqOGV5VzNGN2NyWlNGbU5zcEFVRTlSbkdjZTJhMktLQU11NDBPMm50N0dFeXpwOWlYRVRJd0RaQUFCUEhYZ0dud2FRaVBQTGNYTTF6UE5INVJsWWhTcWVpN1FNVm8wVUFaSTBWbk1hWFdvM1Z6YnhzR1dHVGJna0hJM0VETGZqVmlUU2JXVnI4eWIzRjhGRXFrOERDN1JqMHE5VllYc1oxSTJHMS9ORUltemo1Y0VrZm54UUJSR2dySTBEWFY5YzNKdDVGZUhjVkczYWM4NEhQVHFlZnBWaWJTYldkNzFwZDdpOFJVa1VuZ0JjNHgrZFN3YWhCT2wwNExLdHJJMGNoWWQxQUpJOXVhbmhsam5nam1pYmRISW9kVzlRUmtHZ0RKazhQaTR0eEJlYWpkM0VhWTJBbFJ0eDBQQTVQMXJRRmxHTlNOL3VmelRDSWNaK1hBSlA1ODFab29BNS94SEpiYWtGMFdNK1pjdk1tOVFEbUplcFkvaC9PdDlRRlVLb3dCd0FLV2lnRE1uMGd0Y3l6MnQ5Y1dobng1eXhiU0dPTVpHUWNIM0ZTU2FUYXZwQzZZdStPM1hiamFlZUdEZFQ3aXI5VmpleGpVaFliWDgwd21iT1Bsd0NCK2ZOQUZtc2dhQXFTenZEcVYvQUpwV2xaSTVGQTNNY25IeTFyMFVBWm45aDJmOW1TV0lNb1NWeEpKSnV5N3NDRGtrL1FVNjUweVdTNWVlMzFHNXRqSmplcWtNcDdjQmdjSDZWZW5sV0NDU1o4N1kxTEhIWEFHYWJhenBkV3NOekhrSktpdXVldUNNaWdDb2RIdERwTDZjZk1NVWgzTXhiNTJiT2R4UHJubW81TkZTUzBTRnIyNmVXT1R6WTdoM0JrUnNZNDR4ajJyVW9vQW8yZGpOQ3p0ZFg4MTJYWGJ0a0NxZ0grNkJWUWVIMDhrV3B2cmxyQUhJdGp0eGpPZHU3R2NlMmEyYUtBS3dzb3hxUnY4QWMvbW1FUTR6OHVBU2Z6NW9nc280THk2dWtaeTl5VkxnbmdiVndNVlpvb0F6cjdTbHVicGJ5QzRsdExwVjJlYkZnN2w5R0I0TkxaYVdMZTZhN3VMbVc3dWl1d1NTWUcxZlJRQmdWb1VVQVZyS3lqc2xtRVRPZk9tYVp0eDZGams0OXFxVGFOdW1uYTN2cmkxanVEdW1qajI0WTR3U01nbFNmYXRTaWdET3VOSGdrdHJXS0IzdG10RG1DU1BHVTR4MzY1NzBXZWtSMjErYjlyaWVlNmFNeHM4aEdDQ1FlZ0hIVHRXalRKcFk0SUpKcFcyeHhxWFp2UUFaSm9BNXJSTkdlZlJRcHU3bTNqbmFUem9WeGgvbllkeGtaR09sZE5GR2tNU1JScUZSQUZVRHNCMHF2ZDZoQmFhYTErNVpvRlVQbFJ5UWVuODZ0VUFjdm9talBQb29VM2R6Ynh6dEo1MEs0dy96c080eU1qSFN0bTgwbTN1b3JkRmVXM05zZjNUd050WkJqR09jOFlxL1JRQm0zR2s3N2hibTN2SjdhNEVZamFSZHJlWUIwM0FnZ24zcEUwUzJXR0ZETE16UjNJdWpJV0c2U1QxYmpwejJ4MEZhZEZBQlZQUzlNdDlMaGxpdDkrMlNReW5jUWVUK0hUaXJsRkFGTFR0S3R0T2huaWhETWs4alNPSHdlVDI2ZEtxdzZKTGJoWVlkVnUwdEZPVmhHM0lIcHV4bkZhOUZBREo0bG5na2hZa0xJcFVrZGNFWXFwTnBjRTJqRFMyZVFRQ05ZdHdJM1lHTWRzWjQ5S3ZVVUFWcjJ5anZWaEVyT1BKbVdaZHA2bFRrWjlxcVBvMkx1YWUxdnJpMVdjN3BZNDl1R1BxTWc0UDByVW9vQXhKZjdOOFBhZExibDNZWEJkNDRueXpTTVFNcU9QcDE5YXRlSDdFNmRvbHJiTU1TS3U1Lzk0OG4rZUswYUtBSzAxbEhOZlcxMnpPSkxjT0VBUEIzQUE1L0tnV1VZMUkzKzUvTk1JaHhuNWNBay9uelZtaWdDazJsMnp2Zk5JR2NYb1VTcXg0NFhieDZjVkJEbzIyYUJyaSt1THFPM082R09UYmhUakFKd0FXSTk2MUtLQUswTmxIRGZYTjJyT1pMZ0lIQlBBMmdnWS9PcTh1alcwdGxlMnJQS0V2SlRMSVFSa0U0NmNkUGxGYU5GQUZQVWROaTFEeVdhV2FHV0Z0MGNzTGJXWEl3ZW9QV29aOUpEdEJMRGVYRU4xQ25saWNFTXpyNk5rWVBQTmFWRkFHZkRwRUVkaGRXclNTeUc2RGVkTXhHOWlSalBUQTQ2Y1VsNXA1a2kwNkdKbTJXczZPU1R6dFZTT2ZYdFdqUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZjL3J2Zy9TZGEzU3ZGOW51VC95Mmg0SlB1T2gvbjcxMEZGQUhuSTBUeGo0Ykovc3E3KzIycTlJODU0LzNHNmY4Qk5TeGZFUzhzbkVPczZLOFVuY3BsRC8zeXcvclhvTk5ralNWQ2tpSzZucUdHUlFCeWNIeEYwQ1VEekRjd24vYml6L0ltcFArRXo4S2ZhUHRuMnIvQUVuWjVlN3lIM2JjNXhuSFRQTmEwM2h2UTUrWk5KdE0rcXhCVCtsVlpQQm5oeVJnemFYR0RqSHl1eS95TkFHZlA4UmRBaUI4czNNeC93QmlMSDh5S3hiL0FPSjhoQld3MDFWUFo1M3ovd0NPai9HdXBIZ3J3Mk9tbHArTWpuK3RML3dobmh6L0FLQmNmL2ZiZjQwQWViU2ExZCtJWkN1c2ErdG5iWjVqRWJrZmdxREIvRTEwdWhYZmdQUkNzc2Q2WjdrZjh0cG9KQ1I5QnR3UDUrOWRKL3dobmh6L0FLQmNmL2ZiZjQwZjhJWjRjLzZCY2Y4QTMyMytOQUVYL0NkZUdmOEFvSmYrUUpQL0FJbWovaE92RFA4QTBFdi9BQ0JKL3dERTFML3dobmh6L29GeC93RGZiZjQwZjhJWjRjLzZCY2YvQUgyMytOQUVYL0NkZUdmK2dsLzVBay8rSm8vNFRyd3ovd0JCTC95QkovOEFFMUwvQU1JWjRjLzZCY2YvQUgyMytOSC9BQWhuaHovb0Z4Lzk5dC9qUUJGL3duWGhuL29KZitRSlAvaWFQK0U2OE0vOUJML3lCSi84VFV2L0FBaG5oei9vRngvOTl0L2pSL3dobmh6L0FLQmNmL2ZiZjQwQVJmOEFDZGVHZitnbC93Q1FKUDhBNG1qL0FJVHJ3ei8wRXY4QXlCSi84VFV2L0NHZUhQOEFvRngvOTl0L2pSL3dobmh6L29GeC93RGZiZjQwQVJmOEoxNFovd0NnbC81QWsvOEFpYVArRTY4TS93RFFTLzhBSUVuL0FNVFV2L0NHZUhQK2dYSC9BTjl0L2pSL3dobmh6L29GeC84QWZiZjQwQVJmOEoxNFovNkNYL2tDVC80bWovaE92RFAvQUVFdi9JRW4vd0FUVXY4QXdobmh6L29GeC84QWZiZjQwZjhBQ0dlSFArZ1hILzMyMytOQUVYL0NkZUdmK2dsLzVBay8rSm8vNFRyd3ovMEV2L0lFbi94TlMvOEFDR2VIUCtnWEgvMzIzK05IL0NHZUhQOEFvRngvOTl0L2pRQkYvd0FKMTRaLzZDWC9BSkFrL3dEaWFQOEFoT3ZEUC9RUy93RElFbi94TlMvOElaNGMvd0NnWEgvMzIzK05OYndUNGJiR2RNVGowa2NmMW9BcXlmRUh3OGd5czAwbnNzUi9yaXNxOStKOXFvSXN0TmxrUFl6T0UvUVpyZkhnbncyUCtZWXY0eVAvQUkwNy9oRFBEbi9RTGovNzdiL0dnRHp1ODhaNjFxOG5reWFqRnAwRGRUR3JBZm1vTFZmMFdEd1JaTUo5UjFZMzl4bkpEd1NpTUg2YmVmeC9LdTEvNFF6dzUvMEM0LzhBdnR2OGFQOEFoRFBEbi9RTGovNzdiL0dnQ0ZQSEhoZEVDSnFJVlZHQUJCSUFCLzN6Uy84QUNkZUdmK2dsL3dDUUpQOEE0bXBmK0VNOE9mOEFRTGovQU8rMi93QWFQK0VNOE9mOUF1UC9BTDdiL0dnQ0wvaE92RFAvQUVFdi9JRW4vd0FUUi93blhobi9BS0NYL2tDVC93Q0pxWC9oRFBEbi9RTGovd0MrMi94by93Q0VNOE9mOUF1UC92dHY4YUFJditFNjhNLzlCTC95QkovOFRSL3duWGhuL29KZitRSlAvaWFsL3dDRU04T2Y5QXVQL3Z0djhhUCtFTThPZjlBdVAvdnR2OGFBSXY4QWhPdkRQL1FTL3dESUVuL3hOSC9DZGVHZitnbC81QWsvK0pxWC9oRFBEbi9RTGovNzdiL0dqL2hEUERuL0FFQzQvd0R2dHY4QUdnQ0wvaE92RFA4QTBFdi9BQ0JKL3dERTBmOEFDZGVHZitnbC93Q1FKUDhBNG1wZitFTThPZjhBUUxqL0FPKzIvd0FhUCtFTThPZjlBdVAvQUw3Yi9HZ0NML2hPdkRQL0FFRXYvSUVuL3dBVFIvd25YaG4vQUtDWC9rQ1Qvd0NKcVgvaERQRG4vUUxqL3dDKzIveG8vd0NFTThPZjlBdVAvdnR2OGFBSXYrRTY4TS85QkwveUJKLzhUUi93blhobi9vSmYrUUpQL2lhbC93Q0VNOE9mOUF1UC92dHY4YVArRU04T2Y5QXVQL3Z0djhhQUl2OEFoT3ZEUC9RUy93RElFbi94TkgvQ2RlR2YrZ2wvNUFrLytKcVgvaERQRG4vUUxqLzc3Yi9HbXQ0SzhOdDEweFB3a2NmMW9BclMvRUh3Nmd5dHhOSjdMQ2Y2NHJMdlBpZFpxQ0xQVHBwVDJNckJCK21hM1I0SjhOai9BSmhpL3dEZngvOEFHbmY4SVo0Yy93Q2dYSC8zMjMrTkFIbnQ3NDMxclZaUEorMnhhZEMzQk1hc01mVmdDMzVWWjBlMjhGMjBndU5WMWxyK2NuSlV3U2hNKy95NWI4ZnlydWYrRU04T2Y5QXVQL3Z0djhhUCtFTThPZjhBUUxqL0FPKzIvd0FhQUlJL0czaFdHTlk0cjlVUlJoVlcza0FBOWh0cDMvQ2RlR2YrZ2wvNUFrLytKcVgvQUlRenc1LzBDNC8rKzIveG8vNFF6dzUvMEM0LysrMi94b0FpL3dDRTY4TS85QkwvQU1nU2YvRTBmOEoxNFovNkNYL2tDVC80bXBmK0VNOE9mOUF1UC92dHY4YVArRU04T2Y4QVFMai9BTysyL3dBYUFJditFNjhNL3dEUVMvOEFJRW4vQU1UUi93QUoxNFovNkNYL0FKQWsvd0RpYWwvNFF6dzUvd0JBdVA4QTc3Yi9BQm8vNFF6dzUvMEM0LzhBdnR2OGFBSXYrRTY4TS84QVFTLzhnU2YvQUJOSC9DZGVHZjhBb0pmK1FKUC9BSW1wZitFTThPZjlBdVAvQUw3Yi9Hai9BSVF6dzUvMEM0LysrMi94b0FpLzRUcnd6LzBFdi9JRW4veE5IL0NkZUdmK2dsLzVBay8rSnFYL0FJUXp3NS8wQzQvKysyL3hvLzRRenc1LzBDNC8rKzIveG9BaS93Q0U2OE0vOUJML0FNZ1NmL0UwZjhKMTRaLzZDWC9rQ1QvNG1wZitFTThPZjlBdVAvdnR2OGFQK0VNOE9mOEFRTGovQU8rMi93QWFBSXYrRTY4TS93RFFTLzhBSUVuL0FNVFIvd0FKMTRaLzZDWC9BSkFrL3dEaWFsLzRRenc1L3dCQXVQOEE3N2IvQUJvLzRRenc1LzBDNC84QXZ0djhhQUl2K0U2OE0vOEFRUy84Z1NmL0FCTkgvQ2RlR2Y4QW9KZitRSlAvQUltcGYrRU04T2Y5QXVQL0FMN2IvR2ovQUlRenc1LzBDNC8rKzIveG9BcXkvRUR3NmdPMjVsa3gyV0Z1Znp4V1pkZkV5eUh5Mk9uWEU3bmdlWVFtZnl6WFJwNFYwQkd5Tkp0aWY5cE0vd0E2MGJheHM3UVl0YlNDQWY4QVRLTUwvS2dEZ1RxSGpueEI4bHJhL3dCblc3Zng3Zkw0L3dCNXVmOEF2bXIyay9EdTFqbCswNnhjdmZURTVLQWtKbjNQVnYwcnQ2S0FHUXd4VzhLeFFSSkZHb3dxSW9BSDRDbjBVVUFGRkZGQUJSUlJRQVVVVVVBRmVRZkV2L2tiSC82NHAvV3ZYNjhnK0pmL0FDTmovd0RYRlA2MEFjblNxcFpnbzZrNHBLS1FIb25pVFhicndsZFdlajZPa1VVTU1LdklXUUV5c1NjNS9MNjgxRjRJMUE2cjQxdjcxYmVHMmVXMGM3SS91NTNKeWZmMXFHNDFid3Y0amp0THZXNWJtMnZvRUNTQ05TUk1CN2dIMzlPdFY5QTF6UTdEeFhlM2FRdlphZkpidEZHb0JjNUpYbnZqT0Q5S1lFL2lyVnZGRmhhQ3oxRzlzNW9ydEdVaUJRZUJqT1RnWTYxdFdUZUlWOEY2Ti93ajZLNzdHODNkczZaNCs4ZnJYSzNWbjRMVzFtYTIxVFVIbkNNWTFaT0MyT0FmbDZacE5SMStNK0dkRnRMRzZsanVyVGNaUXVWeHp4ejNvQTNQRjE5ZGFmWTZMZTNua1IrSUltWm0yQUhDYzlmMDlzNXhVODNpdlZrOEIyK3JDV1A3VzkwWWkzbGpHM0RkdndGY3o0djFUVHRiK3hhaGJzVnZXaUNYVWUwZ1pIUWc5KzQvS216YXJadjREdDlLVjIrMXBkR1VydE9OdUc3L0FJaWdEVDAyNWx2ZkJIaWE2bklNczB5TzVBeGtsZ1RYUmFjTmFQZzNSdjdHdXJXQnZMUG1HNDdqUEdPRDcxeE9sYXJaMjNoRFY5T2xkaGMzTElZMUNrZzRJenoycGRiMVd6dlBDK2kyTUxzMDlxSEVvS2tBWnhqbnZRQnZlRU5VdnRWOGFYRXVvU0pKTkZadkZsRkFHQXc5UGNtcHZBbjIvd0Q0UXpVUDdNbGhpdS90UTJQTjkwY0puUEI3WnJtdkJPcTJlajZ6TGMzcmxJbXQyakJDbHVTUjZmU3J2aHpVdEVIaFc4MGpWcm1hRHo1eEptSkNUZ2JjYzRJNnJRQkY0ZzFiV3JqVm9kTDFXNGdtTnZPalpoVWJja0R2Z2RqWFFlTFBGK3A2TjRuZTBpOHFTMFZVTFJPZytZRWNqUFd1WDFHSHd4YkpCTHBWL2VUenJNcFpaa3dBbmMvZEhQU3Q3VjlROEY2bnF4MVc2dWIyYVFCY3dKSGhXeDI1SDlhQU1ieDlwdHRwMnZLMW1namh1WVZuQ0FZQ2trZ2dEdDB6K05jeld0NG0xcDllMWg3MWs4dEFvU05NNTJxT244eWZ4ckpwQUZlOWVIZitSYjB2L3IwaS93RFFCWGd0ZTllSGYrUmIwdjhBNjlJdi9RQlRBclg4K295YS9GWVdkeXNFYjJ4a2RpZ1lyaGdNalBmb1BUbW0zTnhkaS9oMHRkUUVMTEI1MHR5eUx1ZjVzQUFIZ2REMnF3MFVuL0NWcE41YitWOWlaZCtEdHp2QnhuMXFscThOdEZyOGQ3cUZuOW9zM3R2SzNlVDVvamNNVGtqQnhrSHJRQW45czNWcnAycENSNDdtNHMzUkVsQXdKTitOcElIcG5uSHBWeU9MVjdXNnQyZTgrMnd5TnRtVXhLbmxqQitZRWRzOWpuclZTNnQ3ZSs4UDNpYVRZZVNTeXNCNUhsZWJ0WU53TURQUWlyYWF1MTNkVzhObGJ6Y3RtNE0wTElJMXdlTW5Ielp4Njk2QUlZNU5UMUtXOGx0YjBXcVFUTkRISDVTc0hLOVN4UFBKOU1WQTJyWDk3RG9yV2JwQzk3dkVtNWR3R0Y1UDRZSkZQdExzNlJKZndYRnZjTkpKY3lUUStYRXppVU55QUNCalAxcU94MCs1dGY4QWhIWXBJbUpnRXZtbFJrSmxEMVAxT0tBTFZ5K29RWEZqcG92aTB0eVpHYTVNUzdsVlFEZ0wwNzFGWUpkUmVMWmt1cGhNeTJTN0pOb1VzdTg5UU9NNXowcWJXUzF2cXVtMzdSU1Bidythc3JScVdLN2dNSEE1eHhUTENTYTY4VFRYbjJXYUszTm9FamVSQ3U3RGs5K25VOGRjYzBBWGRTTjgwdHZEYVNDQ0p0eG11Tm9Zb0FCZ0FIam5QNlZXMDI3dUYxZWJUNXJ0YnhCQ3N5U2hWQkdTUVZPM2p0VU90cW8xYTFrdjRKSjlNRWJBcXFGMVdUSXdXVWRSanBUTkpoVC9BSVNLV2UyMDFyUzBhMUNxZko4c09RM1hHT0R6MzV3S0FJTGE2MW01OE9mMnViOUkyamlhUVJDRlNIQzV6dVB2anRpcjB0N2QzdDVaMmR0TjlsODIyKzB5U0JReHhrQUtNOGRUVU5qYnpwNEVhM2FHUlovc2tpK1dWTzdKRFlHT3VhYUMrblgrbjN0eERMNUgySDdPN0pHV01iWlU4Z0RQYWdDVFExdUUxL1dFdXBGa2tWWUJ2VmR1NFliQngyTlM2bGQzQjFtSFQ0N3dXS1BDWkJLVVZqSTJjYlJ1NDkveHBOR004MnRhcGRTVzBzTVVxdytWNWlrRmdBdy95TzJSbXBkV3VySVA5bDFLeGxrZ1pjcko1SmtRbjA0eVFhQUtQaVczdlY4THorZmY3MmpCMzdJZ29sR1JqUFhINFlxMWV5WDJuV2tVWDIwM0Z4ZFhDd3BMSkdvRWVjNU9GQXp3RFZIN0ZlVGVFZFF0bGltdzdzYldLVDc0anlDQWM4OWpnSDJxenFNOHQvWjJ0M0RaWFMvWkx0Slhpa2lLdXlnRUhhTy8zdjBvQW1obXZiTFY3ZXl1cnI3WEhjeHV5T1l3akt5NHlPT0NNR29kTmsxVFVMbTZkcjRRMjl2ZHlSS2l4S1RJcXQwSlBRWTQ0NXB5VGYycHIxbmMyOFVvdDdXT1RkSkpHeUFzMkJ0R1FDZWxXTkJpa2lqdnhMRzZicjJabDNBaklMY0VlMUFHZC9hRi9kMlUrcFE2bERicWhjeFd4UlNHQ2tqNWllY25IYXQreXVCZDJOdmNoZG9taldUSHBrWnJtTEZOTXNJSHROUzByekx1T1I4TjlqOHd6QXNTQ0RnNTRPT1QycnFvQWl3UmlPUHlrQ2dLbU1iUmpwanRpZ0RuTFc1MW04MFdUVVJmSkNZL01LUmlGU0pBcFAzaWVuVEhHT2xMZXozTjdmOEFoK2UyMlJTM0VFajVZWkNBcWhKeDM5cXJhWHFQbCtHWkxOclc0YVYvT1dIeTRpd2t5emR4d01IUFd0R096bmd2ZkQ2Tkd4RnZiU1J5TW95cW5ZZzVQNEdnQjhGNWQyV3BYVnBlWEgycEk3WVhLdVVDc0JrZ3J4eDJxcTk1cXNHakpyY2w0am9WV1ZyVVJBTHNZamdOMXlBZXRXcnExbW4xKzYyb3dqazA3eWhJUWR1NHMzR2ZYbXM2YWFTNThOUjZJdHJjTGZlV2tESzBUYlZ4Z0ZpM1RHQm5yUUJwWDF4cUQ2L0ZwOXBPa1ViMnhrZHlnWXJoZ01qMVBiMDVwdHJmM1ZvMnJRM2t2Mm9XTWF6TEp0Q3N3S2s0SUhIRzJwMmlrLzRTdEp2TGZ5dnNUTHZ3ZHVkNE9NK3RWcExPZWUrOFFSaU5sRnhieHh4dXd3ckhZNDRQdGtVQVYyMUMvdHJLRFU1ZFJobURsRExhaEZBVldJR0ZJK2JJejNycGE1alRuMFlRMjF2Sm8yTDBCVWRQc1hLdDBMRnNZeDN6bXR5MnZUUHFGNWErU3lmWmluems4UHVYUEgwb0FvWGQzYzNPcnpXVUY4bGxIYnhxenVWVm1kbXpnRGR4Z0FWWGZWN3RmRGVvWEhtSTF6Wnl0RjVxcU1QZ2o1c2U0Tk52WXJPMTErNXVOVHNSUGIzRWNmbHltRHpRakxrRWRDUm5JcCtveHczSGhPOVRUZFBlRVNmZGlXRFlYT1J5RkF6Mi9TZ0JiK2JXZFBXMnVUZFJ6UFBNc1J0VEdBaWx1Qmh1dkIvT3BoSnFGbHJOakJjWG91b3J2ZXBVeEJOaFZkMlJqOHVjMU5yMFVrc2RnSW8zZmJld3MyMEU0QWJrbjJvMUdLUjljMGlSSTNaSTNsM3NBU0Z6R1FNbnRRQkZJdXB6U1R5UHFJc0ZFakxESHNSZ3lqb3hKNTU5c1ZEYWF2YzNaMEtUSVFYZ2s4NVFPRHRRbjhPUlZPelcyUlprMVBTcEx2VlRJMmQ5dVhEOG5idFlqYUZ4anVNVS9TclM1amo4T0I3ZVZUQ1poSmxDTm1WWURQcG1nRFI4UC82elZ2OEFyL2svOUJXdGVzR3hubDA2NTFXT1d6dUdMVFNYS09xSFl5N1JnYnZYanBXeFpYSDJ1eHQ3bllVODZOWk5wT2NaR2NVQVlhWE9xWG1uejZyQmVyREdoa01WdjVRS3NxRWo1ajF5Y2RzVkpkNmhmWE0ranBZeUxBTDZGM2Nzb2JhTnFzRDlSay9uVlczdUgwL1JialNaYlc0YTdIbXBHcVJNVmszRWtFTmpHUG01eWVLdHgyYzhGOW9FWmpaaGJXOGtjanFDVlU3RUhKOThHZ0RYdElwb2JkVW51RGNTRE9aQ29VbjhCeFdDbDVxcytqeWEzRmVLaUJXbFcxTVFLN0ZKNExkY2tDdWtybElacExidzFKb2pXdHcxOTVid0txeE50Yk9RR0RkTVlPZXRBRSt2TFBkblNMaUs3ZUdPVzRqMm9FVTdHS3NkMlNPVDJ4MHBkU2l2WTlZMFdHTzVFbHdWbkJua1FjREM1TzBZSEE2VlBxMXZQQnAybGxJWkovc2M4VHlMRXU1dG9VZ2tEdjFwOHJTWGVzNlBkcGJUcEdFbjNlWkdWS1pDZ2J2VE9LQUV0N3U3c3RTdXJTOHVQdFNSMnd1VmtLQldBeVFWNDQ3VlJmVXIrSFNrMWg5UmhZRUxJMW1FWEd3a2NBL2V5QWF2WFZyTlByOTF0UmhISnAzbENRZzdkeFp1TSt2TloybkhTSXJPM3RiclJkMTlHcXh5SjlpM0VzT0MyN0dDRDF6bWdEUXZadFJtOFEvMmZhWFMyOFAyVVNzNWpERlR2STR6M1BIWDByU25sYXgwdVdlVnpNMEVKZG1JQUxsUm50MHppcWl4U2Y4QUNWdk41YitWOWlWZCtEdHp2SnhuMXEzcVVEM1dtWGR1bU44c0xvdWZVZ2lnRExoL3R2N0piMzR1MXVESnNkN1VSS3FoV3hrSzNYSUI3bnRVc2t0OWY2dGQydHRlZlpJclFJQ1ZqVnk3TU05K2dBeFVGdnFzeTJGcloyMXBOOXZVUnh1a3NMQlVBd0dKYmdZeG5HRDZVL3ovQU95dGMxQ2E1aW04bTY4dG81STRtY1pWZHBVNEJ3ZUtBSUpkWDFEK3lvbWo4djdZdDhMUitQbGNoc2ZnRHhUN21UV0xMVUxTMlcrUzVONXVUOTVDRkVSQXlXR092R2VDYXJyWjNSMCsza2Eza1Y1dFZXNU1lM0xJaGZQemVuSDVWcWFqRkkrdWFSSWtic2tieTcyQUpDNWpJR1Qyb0Fqc3ByMjMxMXRQdWJ2N1ZHOXY1NnUwWVJsSVlLUngxSE5VYlc0MW05MFdUVVB0NndtTVNGRldGVDVtMG43MmVuVEhIcG10Sm9wUCtFclNieTM4cjdFeTc4SGJuZURqUHJWZlNvSm8vQ1R3UERJc3BTY2JDcERjczJPUGZOQUZhNXZkV1RRMTF2N1VrWTJMTDlsRVlLRlRqZ3NlYzRPZUsxRGRURHhJbG51L2NHMGFYYmorSU9CblAwTlVMNjNuZndJdHVzTWpUL1pJMThzS2QyUUZ5TWRjMUxmeUd4OFJRWDAwY3B0bXRtaEx4b1gydHVCR1FCbnRRQTlyNjVGOXJVZm1mSmJRSThRd1BsSlZpZnIwRlVKTHZXSXZEOGV0UGVwa1JwSWJjUkx0ZFRqcTNYSnpuaXBMWVhOemM2OWNOYVRSSlBBZ2hEb1FYd3JqcDYrM1hrVSsrdDUzOENMYnJESTAvd0Jralh5d3AzWkFYSXgxelFCZk4xTVBFaVdlL3dEY0cwYVVyZ2ZlM2daejE2R3M2Mm0xaS8wdzZyYlhhcVdEUEZhZVVwVWdFNFV0MXljZGNqclY1b3BQK0VyU2J5MzhyN0V5NzhIYm5lRGpQcldicDk5THBXaXJwdjJXZHRSaERKR25rc1VjNU8xdHc0MjhqUEk3MEFhVjJkUm51VVNPYjdEYkNFTzh1MVdKY243blBBeDY0cWdaN3k2c05XczJ2dHoybi9MZEVYOTRoVE9DT250a1VsNEVYVzJrMXExZTRnTUtDRGJFMHNhdHp2RzBBOGs5TTlxTkx0WkdPdGlLd2F6am5WUkRHVTJBL0lSOU92SjlNODBBUHNCZVdYaE0zWDI1NUN0Z0hpUm8xQWpJVEk2RG50MXFacnk5dTVyR3l0N2dRU1MydjJpV2JZR09PQmdBOGNrMURieXl6K0U1N0g3RmRSencySmlJa2lJM05zSXd2cjAvV2pFbW4zdW4zODBNcGdGbDlua0tJV01iZktja0RuSEdLQUpCZjNzRnJyTnZOTXNzOWpENWtjK3dEY0NoSXlPbVFSVU05MXExdHBVT3J5WGlFSHkyZTFFUTI3V0lHTjNYUFBYcDdVZVhOZHdlSUx5T0NVUjNWdjVjS3NoRHZ0UmhuYjE1SjRxZlZZSnBQQ1NRSkRJMG9TQWJBcExjTXVlUGJGQUd4Y1J5U3dPa1V4aGM5SkFvSlg4RHhYTWFOUGNhWjRVbDFCcmxwa1FTYklHUlFBM21FWnlCbmsvenJxNjV1SFQ3bWZ3UExaQ0prdUdFbUVjYlQvckdJNit2OWFBTEVzbXA2YkxaeTNONnQwazh5UXlSK1VxaEMzUXFSendmWE5KNW1xWHV0YWphUTNvdHJlM2FQRENKV2I1a0J3TThZNm5tbVhkMmRYa3NJTGUzdUZranVZNXB2TWlaQkVGNUlKSXhuNlZjMDZLUk5jMWVSNDNWSkhpMk1RUUd4R0FjSHZRQkxyVVVzbWtYQWl1R2hLeHNTd1VIY05weU9mV3Myd0Y1WmVFemRmYm5rSzJBZUpHalVDTWhNam9PZTNXdHU5amFheHVJa0dYZU5sSDFJckV0NVpaL0NjOWo5aXVvNTRiRXhFU1JFYm0yRVlYMTZmclFCSkNkYU9tQytGd3MwOHNTbExZUnFGUXNSem5xY0RKcEpMaTgwKytzMWsxTVhpVHpDRjQyalJTcElKQkczNmQ4MHVweFhYL0NOMnFSUnlrS0l2dEVjZVE1akdOd0hmTlVaWXJLYTYwMXRLMGxrU081UnBKMXRqSGdZSXh5QVQxNVBUaWdEUW0xQzZSdkVHSlArUE9NTkQ4bytVK1Z1L0huMXF2UGRhdGJhVkRxOGw0aEI4dG50UkVOdTFpQmpkMXp6MTZlMVBudDV5M2liRU1oODZJQ0w1VDg1OG5IeSt2UEhGU2FyQk5KNFNTQklaR2xDUURZRkpiaGx6eDdZb0F0aTZtUGlSN1BmKzRGb3NvWEErOXZJem5yMEZaRnRkYXpjK0hQN1hOK2tiUnhOSUloQ3BEaGM1M0gzeDJ4V29zVW4vQ1Z2TjViK1Y5aVZkK0R0enZKeG4xcW5ZMjg2ZUJHdDJoa1dmN0pJdmxsVHV5UTJCanJtZ0NhYTl2TDI4czdPMW1GcjV0dDlwa2syaHlCd0FvQjQ2bW42UmMzemFucUZsZXlwTDltRVd4MVRidURCamtqMTRINVZWQW5zTDNUNzU3V2VXTDdGOW5jUklXWkd5cDVYcjJ4VE5QdlpWMUxYcjE3VjBLUXhTTEMzREVCWEl6NkU0L1dnRG9MaVVRVzBzeEdSR2hmSHJnWnJtcnU3MXFEdzkvYkMzMGJGNDFrOGp5UUZRTmpHMDljakk2NTcxdk9XdjhBUjJLTHNhNGd5Rko2Rmw2ZnJYTWFqZm4vQUlRMDJBdGJoYmlLQkk1ZzhaVlk5dUFUdVBCempqR2FBT2h2THFhTFc5T3RrYkVVNnlseGpydEM0L21hYTk1Y0w0Z2x0VitlSmJJU3JIZ0RMN3lPdjRDb2RaWnJmVnRNdm5qa2EzaDgxWkdSQ3hUY0Jna0RuSEZWbGU5dk5admJxM3Rwb1ExaDVkdkpJaFhjMjRrSG5weWVoN2MwQU12YnJWYkRUUDdSbjFGQk9xckk5bVkwQzRKR1Z6OTdqUFhQYXJ5Lzhqakovd0JlQy84QW94cTUrNWd0Wi9EajI5dG84MG1wK1dQTlo3WTcxWVkzRXVSeVR6akI3MXUzRFMyM2lkTGsyczhrTTFxc0llSk53VnQ1UHplZ3dldEFFTHpYZDlwbXNxYnBvL0l1SlVVcWluNUFnTzNrZS9YclNhZkRxRUhoWlpvYjU1SlBzYVBDaGpUQ0VLRGdjYytuTlRXTnJPYlhXNGpFeXROY3krWHVHTndLS0FSbnQ3MU40ZXVHZlRZTFdTMHVZSkxlRkVZelJsUVNCZzRQZnBRQXlmVkpKN1BTMnRHQ3kzMGlkczdWeHVmcjZBWXE1cWJYb2hqU3h3SGtrQ3RJUUQ1YTg1YkhmcCt0WW1nV2tpYTVkUXZnMituYmtnLzdhSGQrZ3dQeHE3NGpWMit4dEpGSk5ZTElUY3h4Z2trWStYSUhKQVBVVUFKYjNOMWE2MWIyY2wrTDJLNFJ6a3FxdEd5NFA4UFk1cU96ZlZ0U042VXYxdGtndVpZbzlzU3NXd2VNNTdEZ2V2dlVOdkZieWVJYkNmVDlMYTN0VVNVTk1MZnl3eElHTWpBT09PcDlhMGRCaWtpanZ4TEc2YnIyWmwzQWpJTGNFZTFBRktQVnJ5OTAvU0ZpWllKNzh0dmxDN3RnVUVuQVBjNDcwdHBIZHhlTUJIZFRpNHhZc1VrMmhTUnZYZ2djWitsVTdPRzRzdE0wRzZtdHB0dHFaQk1nUWwwREFqTzNyViswbGx2UEZBdTB0cGt0Ulp0R2tzaUZkeDNxZS9UMno2R2dDMXF0emNpOHNyQzBrRUwzUmNtWXFHS0tvQk9BZU1uSXFNTnFkbkhlcGNUZmFJMGdNa053VVZTR3djcVFPRDBCNlVhd0hnMVBUdFE4cVNTQ0R6RWw4dFN6S0dBd2NEa2pJNXBEZXphakRmaUNCL3NndHlzYnZHeXRJNUJ6Z0hxTVk3ZGFBSWJHVFZIMGNhbGMzd0phMU1pd3BFb0dkdVFTZXVlL3BUWk5RMUY0TkNXM2xRUzNzZVpXZFFSbnl3eE9QYms0NHE1YnhTRHdwRkNZM0Vvc2dwUWc3czdNWXg2MVRndDV3M2huTU1nOG1JaVg1VDhoOG5IemVuUEhOQUI1bXJ4YXgvWll2MWxFc1BuZWU4U2hvZ0RnZ0FZQnprZGFsdGIrNnRIMWFHOG0rMUN4aldaWk5vVm1CVW5CQTQvaHFkb3BQK0VyU2J5MzhyN0V5NzhIYm5lRGpQclZhU3pubnZ2RUVZalpSY1c4Y2Nic01LeDJPT0Q3WkZBRmR0UXY3YXlnMU9YVVlaZzVReTJvUlFGVmlCaFNQbXlNOTYyOVVtZTIwcTh1SWppU0tGM1VrWjVDa2lzTFRuMFlRMjF2Sm8yTDBCVWRQc1hLdDBMRnNZeDN6bXRuWFA4QWtBNmgvd0JlMG4vb0pvQXlwYnJWcmJUSU5YbHZFWlQ1YlNXb2lBWGF4QXdHNjU1K250VTd5Nm5kNjdlMmR2ZUxiMjhLeHR1RWFzd0pCNEdmWEhmUFNxTXQwK282QmE2WWxyY0xkdUlRd01SMnFGS2t0dTZZd1BXdGF4aWtUeERxc3JSdXNicEJzWWc0YkFiT0QzeFFCWGx1cnE1MUs0c285Uld6VzBWQXpsRkxTc3d6bm5nREdPbFY0OVh2REZZenlTcHNTOGEwdWRpamEvWld6MkdjZEQzcExtS3h0TmV2cHRVc1JORGNDTm9aVGIrYUJoZHBYZ0hCNHEzYzJrRi80YXVJckcwTnFIVXZISDVYbG5jRGtISHVRS0FHYWpxMDlyZDZoSWhEVzlsYktXUWdmTkt4NDU2NEF4K2RNTjNmV005bkpOcWNWMnM4eXd5UXFpallXNkZTT2VENjVxRkxDOHZQQ3QrWklTbDdlbHBUR3d3UnlOcTgreWo4Nm1zWnRFbG5nV0RSOWx6dUdSOWkybUUrcGJHQmoxQm9Ba0V1cFh1czZqYVEzZ3RvTGRvOE9Jd3pmTWdPQm5qR2Nubk5WcDVyeSs4TDZpSmJyWkxhbWVLUjBRWW1DZ2pvZW1mYXRIVG9wRTF6VjVIamRVa2VMWXhCQWJFWUJ3ZTlWTGEwdUcwWFc0UEpkWkpwcm55MVlZM2JzNEl6MlByUUJISTk5cHZoT1c3Vy9lV1FRUnRGdWpRZVgwNllIUFh2NlZkdlo3dWZXRTAyMXVQc29XRHo1SlFnZGo4MjBBQThEb2FvWGNrMTk0UHVMV094dTBtamhSTmtrSkJZOFoyanYwcTNldWJEeEN1b1RSeU5heVd2a2w0MEw3R0RFOGdjNElQV2dCaTZoZVJXR3NSVFNLOXpZSXhXWUtCdXltNVNSMHpVTTkxcTF0cFVPcnlYaUVIeTJlMUVRMjdXSUdOM1hQUFhwN1VMRFBjMk92M2dnbFVYa1pFTWJJUTdCWTlvTzNyeWVncWZWWUpwUENTUUpESTBvU0FiQXBMY011ZVBiRkFHbHFrejIybFhseEVjU1JRdTZralBJVWtWalMzV3JXMm1RYXZMZUl5bnkya3RSRUF1MWlCZ04xeno5UGF0WFhQK1FEcUgvWHRKL3dDZ21zT1c2ZlVkQXRkTVMxdUZ1M0VJWUdJN1ZDbFNXM2RNWUhyUUJzMmQxTkxyZW8yenRtS0JZaWd4MDNCcy93QWhXZGM2cGVSNlByVndzdUpMVzVhT0k3UjhxamJ4MDU2bnJVclhIOW1lSUw2YTRobk1WMUhGNVRSeE0rU29JSzhEcnpWQjdlOG04TjY0R3M1a21udW1kSXRwTEVIWmpHT3Y0ZWhvQTFaZjdTczlMdmJ5NHZSSkt0dTdyR3NZQ1JzQVR3ZXAvR3FjdDFxMXRwa0dyeTNpTXA4dHBMVVJBTHRZZ1lEZGM4L1QyclYxei9rQTZoLzE3U2YrZ21zT1c2ZlVkQXRkTVMxdUZ1M0VJWUdJN1ZDbFNXM2RNWUhyUUJwU1MzMS9xMTNhMjE1OWtpdEFnSldOWExzd3ozNkFERlZuMWk3WFE1SlhNYVhFVno5bGxtMjVSTU50TDQ5TVZMNS85bGE1cUUxekZONU4xNWJSeVJ4TTR5cTdTcHdEZzhVM1QzbHNOTG11TG14bmRicTVrbGFKVTNOR2pFNDNML01lOUFGcTErMVcwY2wxTnFZdnJVUkZ4KzdVSEk1NEs4RVl6V1crcFg4T2xKckQ2akN3SVdSck1JdU5oSTRCKzlrQTB0dmJSWEdvUy8yUERKYjJrdHZJays2Tm80MmNqQzRVZ2Nqbk9CVWVuSFNJck8zdGJyUmQxOUdxeHlKOWkzRXNPQzI3R0NEMXptZ0RRdTdxNW4xdDlQanZ4WUJJMVpEc1ZtbUp6bkc3akF4MjVyVnRFdUk3WkV1cFZtbUdkenF1ME56eHg5S3pOVnVkUGVSN1hVOVBtZU1mNnVRd0dSV3lQNFN1U0QrVk0wYVc5dFliUzJtdFoyam1rbDJ2Sm5kQkdPVUQrNTZjbWdEY29vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLeVBGazB0djRWMU9hQ1Y0cFVnWXE2TVZaVGpxQ09sQUd2UlhtbWpYK2tTTmJOYWVMTmF1OVYyYmt0SnBwREZKTHR6c09VeGpQSFdwOURNZXArVEpMNHkxQzMxcGlESmFTU0JFVis2Q0lnWi9DZ0QwU2lnNXh4MXJsZkM4K3N2NGoxcURXWjRYbGlTQXJIYnMzbElDSCs2RzllTTBBZFZSWEVlSmRQMUhTWVA3VXR2RU9vUzZnOXlxd1dyUCs1a0xOOXdSajJ6K1ZhWGlMVTdxNVM4MDdTWkRHOXZDMGwxZHIvd0FzY0xrSXYrMmYwSFBYRkFIUzBWeDF4YzYyM3c0dGJ2VDdtSVRpeTh5NG11R1l5YlFtU1ZJL2k5eld0RnF5NmY0VjArN3VQTW5tbGdpVkVCM1NUU01vd0I2a24rcG9BMjZLNUx3N0xxdi9BQW1Hb3dhbmROSTV0bzVmSlZqNVVKSlB5cVBZWUdlOWRiUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSWEM2WG9zOTNyK3ZXRW5pRFd4RmFtSll5THc3aHZVT1QwNjVHUG9UVWRsb005eDRtMVBUSDhTYThJYldPSjBZWHAzRXVEblBHTzNwUUIzMUZjRnB1cDNlbCtLYjU3eSttbDBzM1AyTStmSVdFTEJBeU56MHo4d09PNUZWN2JWTmVsMWZWTHVDU1ozdU5NYTd0TFJpV1dNZVp0VENkTjIxUWZjbWdEMFdpdUU4T3BhM3R4YXpXL2pPL212Z3l2UGF6emZLMk9XUVJrQWpvUnhuRmRscVZuL2FGakxhL2FiaTI4ekg3MjJmWkl1Q0R3ZTNUSDBvQXMwVndZc1pkUDhYVzF0YmE3ckZ6RmFSTmRYdjJtNk1pQk1mS3VNREpQdjJxcG9tdVdPcmFqYlhlcCtLcnFDOGtsRHgyRURHT0JSdStWSE8zRFo0ems5NkFQUjZLODgxalg3TzkxKzl0ZFI4UjNPazJscko1TVVkbVdXU1JnUG1abUFPQm5qMDRyWThRdzJhNmZiYWhkZUp0UnROTlNKRVZyU1E3cFdQUnl5Z2s1SHQ3MEFkWFJYbjhtdTMrbitETEQ3UnFpck5mWERScGZQaHpIRGtuY2NaQmJBNmUvcld0NFV1TEdlMHZqby9pQzUxYTVLZzR2NUdJamJCd1FwQUlVazg0OUtBT3Fvcm1QQnR4cWMwK3NwcTA2eTNFVjNzSWpaakdueWpoQWVncnA2QUNpaWlnQW9vb29BS0tLanVJdlB0NVlmTWVQekVLNzR6aGx5TVpCN0dnQ1Npdk9yTCsxN1B3N3I5M1o2bHFOM2N3WGIyaWVkS1p2TGpWd0M0WCs5Z210VHczRFpUWDBOenAzakc5dnl1VE5iWEU0ZmVNZGtJQlhrNS9TZ0RzYUs1engvY3kybmhTNG1odVpiWmhKR0RMQzVWbEJjQTRJNTZWbTZFMWpMQmYzV2dlSmRTMVc3anQzQ1FYdHdXVU5qNVR0WlIzQTU2YzBBZHJSWG0yaFhzOHVvYU8xajRnMUM4djU1Qjl1czdvL3UxVEJMbFFSZ1k2REJPYWd2TlF2RE5mU1M2L2Z3YTlGZEdPM3NVYi9SMytZYlZBeHRQQkdTVHgzb0E5UW9ya3ZHTnhybHNtbnZCUEJEWnRQQXM1alpoS1hMOGdIcHQvV3B2RWJYZC80aDA3UXJlK25zb1pZM3VKNWJkdHNoQzRBQWJ0eWFBT25vcno2NDFIVjlQMG5YOU5TL21tZlRab3Y5TGNocFZnY1pKeWVyQVo1Ni9wVnp3ck94OFF5UWFiclY1cW1uQzMzVG05WXM4VW1jQUFrQWc4SEl4eCtWQUhhMFVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFWNUI4Uy8rUnNmL0FLNHAvV3ZYNjhnK0pmOEF5TmovQVBYRlA2MEFjblJSUlNBS0tLS0FDdlJMUmhZZUM5SnViWHc5YjZsUE52RWhhMzNzQUdQSklHYTg3cnRwL0VVMm5lQ2RIaTB6VVVqdVFYRXlJVlpnTWtqSTdVd05LNzB1eGZVL0RkOCttUldNOTNJVm5zOWdDa0FkU3Y4QTlidlhGZUpvNDRmRW1veHhJcUl0dzRWVkdBQm5zS3U2THE5eGQrTGRQdmRVdlM0U1Faa21iQVVmeUFyWjFmdzdwT282dGRYcStLdE9qRThyU0JTeW5HVDArOVFCUTFtMnQ0L0FPaHpwQkdzMGtqaDVBZ0ROeTNVOTZMaTJ0eDhNN1c1RUVZbk42Vk11d2JpTU54bnJpcmRnZE84UWVFTFBTWnRUaHNMdXlrWmg1NXdycVNUd2Z4L1NvdkVWeHAybitHYkx3L2EzcVgwaVRtZWFXRS9LT3ZBUEk3L3BRQjBsMWJ4YWZhMnY5bCtITFhWTkhhRUdTVkZEeXNmWDFQNi9oWG1GMDBUWFVyUVJOREVYSlNObTNGQm5nWjcxMzJrMm1sMmQzYmFoby9pbGJTeEcxcHJhZVVCempxQ3VSblAwK2xjajRudkxiVVBFVjdkMll4QkpKbGVNWjRBSi9FNVA0MEFaVkZGRklBb29vb0FLOTY4Ty93REl0NlgvQU5la1gvb0Fyd1d2ZXZEdi9JdDZYLzE2UmY4QW9BcGdhTkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFGWFRMSmRPc1V0VWN1cWxqdUk1NVl0L1dyVkZGQUJSUlJRQVVVVVVBRk1TS09PU1IxVUJwQ0M1OVNCaitRb29vQWZSUlJRQVVVVVVBRkZGRkFEWkVXU05vM0dWWUVFZW9OS2lxaUtpQUJWR0FCMkZGRkFDMFVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUZPOXQ3eVowZTB2dnMyMEVNclJCMWI5UWYxcU96MHRZWTdrM01wdVpyci9YU01OdTRZd0FBT2dBb29vQXZnQlZBQXdCd0JWYlU3SmRSMDZhemR5aXlqQllEa2M1b29vQXRVVVVVQUZGRkZBQlVWMGswbHV5Vzh3aGxPTnNoVGVCejZaR2FLS0FJTk1zUllRT3BsTTBzcm1XV1VqRzlqM3gySHRWeWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNvYnkzRjNaVDJ6TVZFMGJSa2p0a1lvb29BZGJ4Q0MyaWhCSkVhQkFUM3dNVkpSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFFTjViaTdzcDdabUtpYU5veVIyeU1VNjNpRUZ0RkNDU0kwQ0FudmdZb29vQWtvb29vQWh2TGNYZGxQYk14VVRSdEdTTzJSaW5XOFFndG9vUVNSR2dRRTk4REZGRkFFbEZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQldaNG10SjcvdzNxRnBhcDVrODBMSWk1QXlUN25paWlnQ1cxaXVyZlFJWVlrUVhrZHNxcXNoK1hlRndBU08yZlN1VjFpMThSK0k3WWFkZGVIcld5SlpjMzV1VWsyQUhKS0FEY0Q2VVVVQWR2MFgxSUg1MXgrak40alh4VGQzMTM0ZCt6d1h3aVIyKzJ4dDVJUUVad09Xem4yb29vQXJ3U2VLMDFhWFVMend2OXRuVXN0dTMyNkpFaFEvM1Y1NVBjazVQVGl0RFZ2Qm1qYW5CZFgwdWw1MUtlTXYvQUs5K0pOdkErOEY2L2hSUlFCV1hTdFEwbndGSHBXbTZONTkxZFFOSGNwOXBWZkxka3d6WllrSG5zRFZ2VDlHL3R2dzliYWY0azBYeVBzbTFJMCswN3QrMUFOK1VJeDM0b29vQXJhTDRPdE5LOFl6WHR0WWVWYVJ3TDltZnppMkhPUS9CWW5vZS9IcFhZVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQnlmaHlQWEU4VDZwZDMyaS9aYmUrS052KzFJK3dvdTBEQTVPZXZiRmFPbjJGMUQ0dTFlK2tpMjIxeEZBc1Q3aDh4VUhQR2NqcjNvb29BcjJPZ2k0azE2RFZiUVBhWHQySkVVdDk5UXE0UEJ5T1I3VTI3c05VaDhVejZqcDFyQ3lMcHF3UmVZd1ZDNGt6dHdPUjh2ZkdLS0tBTSs3dE5mOEFFRjlZaTgwRzMwd1cwNlRQZWZhRWxjaFRuQ2JlUm4zcnNwbmVPQ1I0NHpLNnFTcUFnRmpqZ1pQQXpSUlFCaGVHOUdudDlMdTVOVEdOUTFKMmt1dHBCMjU0Q0E5TUFmMXJBZlJQRU54b2NYaFdiVExaYk9OMUg5cENZY0lyWnlFNmhpTy91ZnJSUlFCZXVMRFhOSnZkVmowM1NZTlJ0ZFRrTXU5NWxqTVRNTUVNRDk0ZDhDcExTTHhGNGIwMnkwNngwcUhWWVlvQUdjWElpWlpDU1Q5N3F2UEZGRkFGU0x3eHFscm90cGNSSmJ2cVZ2ZlBmQzJ6aUlidXNZUGJBeGcrdFh0THM5WGwxeTk4UTN1bHgyay8yVDdQRFpwT3J0S1FkMldjY2NrQUQyK2xGRkFEUEM2NjlCck4rMS9vWDJXM3Zwak9aZnRhUDVaMmdCY0RrNXgxNHJyYUtLQUNpaWlnQW9vb29BS2p1SGtqdDVYaGk4NlZVSlNQZHQzbkhBeWVtZldpaWdEanRDVHhUWVdlcDdkRGhpbW11M3UwRTEwckJ0NTVRYmVoSHFldFNSMk9zNno0aTArL3ZkRWcwaGJOekkwb25XV1dYakczS2pwOWFLS0FPajFpYlVyZXpFbWwya2QzT0hHWXBIMmJsNzRQWTlPdGN6L1l1czYzZTZqcUY3YlI2UkpQWU5aUlJKS0pHSkp6dWRsNHgyK2xGRkFFY2VuZUlkVGZSN08rMGkyc1k5Tm1qa2E4U2RXTGhPeUtPVno3MVhmUnZFYWFMY2VHdjdLdGJtM2xrY3BxTWt5amFHWW5jeWZlTERQVWZyUlJRQnBlSzdYVzVMR3gwN1R0TE4vSENZWld1RGNKR1N5SDd1MXZYSFgzcVRVcmZYSkxyUy9FRnJwaUcraGplSzRzR3VGNVZ1bUg2WkdNMFVVQVo4bmgzVzd1eXZkU2tqZ2kxTzR2WWJzV2hjTWhXSVlXTm02SC93Q3NLME5Mc3RYMUR4UEZyV282WkZwWWdnYUx5MW1XVjV5Mk9TVjR3TWQ2S0tBT3Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQXJndmlENFd2TlN1WTlUc0ZXUmxqRWNzWllLY0FuRERQMS9sUlJRQndaMEhWQWNmWmY4QXlJditOSDlnNm4vejdmOEFqNi80MFVVQUg5ZzZuL3o3ZitQci9qUi9ZT3AvOCszL0FJK3YrTkZGQUIvWU9wLzgrMy9qNi80MGYyRHFmL1B0L3dDUHIvalJSUUFmMkRxZi9QdC80K3YrTkg5ZzZuL3o3ZjhBajYvNDBVVUFIOWc2bi96N2YrUHIvalIvWU9wLzgrMy9BSSt2K05GRkFCL1lPcC84KzMvajYvNDBmMkRxZi9QdC93Q1ByL2pSUlFBZjJEcWYvUHQvNCt2K05IOWc2bi96N2Y4QWo2LzQwVVVBSDlnNm4vejdmK1ByL2pSL1lPcC84KzMvQUkrditORkZBR2xvM2d2VnRUdWtWNDFndDgvdkpTNm5BOWdEa212WTRJVXQ3ZU9DSVlqalVJbzlBQmdVVVVBZi85a0taVzVrYzNSeVpXRnRDbVZ1Wkc5aWFnb3hNeUF3SUc5aWFnbzhQQW92UW1sMGMxQmxja052YlhCdmJtVnVkQ0E0Q2k5RGIyeHZjbE53WVdObElDOUVaWFpwWTJWU1IwSUtMMFpwYkhSbGNpQXZSRU5VUkdWamIyUmxDaTlJWldsbmFIUWdNalU0Q2k5TVpXNW5kR2dnTVRJM016WUtMMU4xWW5SNWNHVWdMMGx0WVdkbENpOVVlWEJsSUM5WVQySnFaV04wQ2k5WGFXUjBhQ0ExT1RJS1BqNEtjM1J5WldGdEN2L1kvK0FBRUVwR1NVWUFBUUVCQUdBQVlBQUEvOXNBUXdBTkNRb0xDZ2dOQ3dzTER3NE5FQlFoRlJRU0VoUW9IUjRZSVRBcU1qRXZLaTR0TkR0TFFEUTRSemt0TGtKWlFrZE9VRlJWVkRNL1hXTmNVbUpMVTFSUi85c0FRd0VPRHc4VUVSUW5GUlVuVVRZdU5sRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSVVZGUlVWRlJVVkZSLzhBQUVRZ0JBZ0pRQXdFaUFBSVJBUU1SQWYvRUFCOEFBQUVGQVFFQkFRRUJBQUFBQUFBQUFBQUJBZ01FQlFZSENBa0tDLy9FQUxVUUFBSUJBd01DQkFNRkJRUUVBQUFCZlFFQ0F3QUVFUVVTSVRGQkJoTlJZUWNpY1JReWdaR2hDQ05Dc2NFVlV0SHdKRE5pY29JSkNoWVhHQmthSlNZbktDa3FORFUyTnpnNU9rTkVSVVpIU0VsS1UxUlZWbGRZV1ZwalpHVm1aMmhwYW5OMGRYWjNlSGw2ZzRTRmhvZUlpWXFTazVTVmxwZVltWnFpbzZTbHBxZW9xYXF5czdTMXRyZTR1YnJDdzhURnhzZkl5Y3JTMDlUVjF0ZlkyZHJoNHVQazVlYm42T25xOGZMejlQWDI5L2o1K3YvRUFCOEJBQU1CQVFFQkFRRUJBUUVBQUFBQUFBQUJBZ01FQlFZSENBa0tDLy9FQUxVUkFBSUJBZ1FFQXdRSEJRUUVBQUVDZHdBQkFnTVJCQVVoTVFZU1FWRUhZWEVUSWpLQkNCUkNrYUd4d1Frak0xTHdGV0p5MFFvV0pEVGhKZkVYR0JrYUppY29LU28xTmpjNE9UcERSRVZHUjBoSlNsTlVWVlpYV0ZsYVkyUmxabWRvYVdwemRIVjJkM2g1ZW9LRGhJV0doNGlKaXBLVGxKV1dsNWlabXFLanBLV21wNmlwcXJLenRMVzJ0N2k1dXNMRHhNWEd4OGpKeXRMVDFOWFcxOWpaMnVMajVPWG01K2pwNnZMejlQWDI5L2o1K3YvYUFBd0RBUUFDRVFNUkFEOEE5T29vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb3FucWVwUTZkQUhrK1ptNFZCMU5jNC9pZStaOG9rU3I2YmMvMXE0d2N0am1xNHFuU2ZMSjZuWDBWaGFkNGtpdUhFVjBnaGM5R0IrVS80VnU5YWx4YTNOYWRXRlZYZ3dvb29wR2dVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJRVGprMGp1c2FGM1lLcWpKSjdWeVd0NjYxMXV0N1VsWWVoYnUvL0FOYXFqRnlNSzllTkdONUd0Y2VJN0dHZnl4dmtBT0N5QVlyVHRyaUs2Z1dhRjl5TjBOZWMxMlhoZUNXSFRXYVFFQ1I5eWcrbUJ6V2s0S0t1Y2VGeGRTclU1WkxRd2ZFVncwK3JTcVQ4c2Z5QWZULzYrYXpWUm56dFV0Z1pPQjBGV3RXLzVDdDEvd0JkVy9uVjN3cmc2c1FSbjkyMzlLMStHSjU3ajdXdTAzdXpHcmYwUFhUYmxiYTZZbUhvcjkwLyt0VXV1YUZ0M1hWbXZIVjR4Mjl4WE4wdEpvYlZUQzFQNjFQU2xJWlF5a0VIa0VkNld1TzBUVzNzbUVFNUwyNS9OSzYrT1JKWTFrallNakRJSTZHdWVVWEU5cWhpSTFvM1c0NmlpaXBPZ0tLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLam5uaXRvV2xtY0lpOVNhanZieUd5Z01zellIWWR5ZlFWeGVxYW5OcU0yWE8yTWZkUWRCV2tJT1J5WW5GUm9xMjdKdFkxaVhVSDh0TXBiZzhML0FIdmMxbGdFbkFweUkwamhFQlppY0FDdXMwWFExdFFMaTZBYWJxRjdKLzhBWHJkdFFSNUVLZFRGVHY4QWlWdEUwRDd0emVyN3JHZjVuL0N1bDZVVVZ6U2s1TzdQY28wWTBZOHNUei9WditRcmRmOEFYVnY1MWU4Sy93RElXUDhBMXpiK2xVZFcvd0NRcmRmOWRXL25WN3dyL3dBaFkvOEFYTnY2VjBTK0E4U2wvdkM5VHNxNTdYTkNFdTY2czF3L1ZveDM5eFhRMFZ6eGs0dTZQY3EwbzFZOHNqelVnZ2tFWUlyVTBiV0pOUGs4dDh2YnNlVjlQY1Z0YTVvYTNZTnhiQUxQMUs5bi93RHIxeVRveU1WWUVNT0NEWFNtcG84S2RPcGhhbDE5NTZORE5IY1JMTEU0ZEc1QkZQcmhOSjFXYlRwdU12Q3grWlA2ajNydHJXNWl1NEZtaGNNamZwN0d1ZWNIRTlqRFltTlplWkxSUlJVSFVGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJWUFV0UmgwNkRmSnk1KzZnNm1yYnVzYU03SENxTWsrMWNEcU40OTllUE01NEp3bzlCMkZhMDRjek9QRjRqMk1kTjJKZlhzMTlPWlptejZMMlVlMVJRUVNYRXl4UW9XZHVnRlNXVm5OZXppS0ZjazlUMkE5YTdQVE5NaDA2SGFnM1NIN3pucWY4QTYxYnptb0t4NWRERHp4RXVaN2R5SFI5SGowOUJJK0h1RDFic3ZzSzFLS0s1RzIzZG51MDZjYWNlV0swQ2lpaWtXY0Rxdy80bWwxLzExYitkWGZDdy93Q0pzZjhBcm0zOUtwNnFQK0pwYy84QVhSdjUxZThMai9pYW4vcm1mNlYyeVh1SHoxTC9BSGxlcDE5RkZGY1I5Q0ZaT3RhTWwrcGxpd2x3QjE3TjlhMXFLYWJUdWlLbE9OU1BMSTgzbGllR1JvNUZLdXB3UWUxV3ROMUdiVHA5OFp5aCs4aDZHdXMxZlNZdFJqM0RDVHFQbGIxOWpYRjNFRWx0TTBVcWxYVTRJTmRVWkthUEJyVVo0YWQxOG1kOVpYa045YnJOQzJRZW83ZytocXhYRStINzVyVFVGUXQrNmxPMWgvSTEyMWM4NDhyUFl3dGYyMEx2ZEJSUlJVSFNGWlBpSFcxMFNDR1ZvRE41akZjQnNZNHJXcmtQaUoveUQ3VC9BSzZIK1ZBRVgvQ2Z4LzhBUVBiL0FMK2YvV28vNFQrUC9vSHQvd0IvUC9yVncxRkFIYy84Si9IL0FOQTl2Ky9uL3dCYWovaFA0LzhBb0h0LzM4Lyt0WERVVUFkei93QUovSC8wRDIvNytmOEExcUI0L2p6enA3ZjkvUDhBNjFjTlJRQjZIYmVPdE9rYkU4RTBQdnd3L3dBYTZLeXY3Uy9pOHkwblNWZSswOGo2anRYalZUMmQ1Y1dOd3M5dEswY2k5MU5BSHMxSTdLaU03SENxTWtuc0t4dkRXdkpyVnFRNENYVVkvZUtPaDl4N1ZmMWFONXRJdklvdnZ0QzRYSHJnMEFlZjY1NHJ2cjY0ZExTWjdlMkJ3b1E0WnZjbitsVWJEeERxbGpNSFM3a2tVSGxKR0xLZnpyTFBCb3BnZXc2UnFNV3E2ZEZkeERBYmhsL3VrZFJWeXVaOEF4U0pvVHUrUXNreEsvVEFIOHhYVFVnQ2lpaWdBb29vb0FLS0tLQUNpaXVmOFk2bmQ2WHA4RTFuSUVkcGRwSlVIakI5YUFPZ29yekQvaE1OYi81K2wvNzlyL2hWblRQRldzWEdwMnNNbHlwU1NWVlliRjVCSXoyb0E5R29vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQXJuTmU4VkRSdFFGcWJUemZrRDd0K091ZmIycm82ODM4ZmY4akFQK3VLL3dBelFCcGY4SitQK2dkLzVGLyt0V3A0ZThUbldyMTdiN0o1TzJNdnUzNTdnZW52WG1sZFQ4UGYrUTFOL3dCY0QvNkV0QUhvbEZGRkFCUlJSUUFVVVVVQVVkYVlwcE53UjNYSDVuRmNMWG9Hb1FtNHNKb1I5NWxPUHIycmdTQ0NRUml1dkQ3TThYTWsrZUw4anJmREVLSnB2bWdmUEl4eWZwV3pYTGVIZFRTM3phVHR0UmpsV1BRSDBycWF4cXBxVHVlaGc1eGxTU2owQ2lpcXVvWDhPbndHU1U1Sis2bzZzYXpTYmRrZE1wS0t1eDkzZHcyY0psbWJBN0R1VDdWekY3cjExY01SRTNreCtpOWZ6clB2cithL25Nc3JmN3Fqb29xTzNobHVKVmloUXU1NkFWM1U2TVlLOHR6eE1SaXAxWHl3MFg1aldKWml6RWtrNUpOT2hra2hrRHhPeU1PNm5GRThiUVRQRStOeUVxY2V0UHRMYVc3a2FPRmR6QlMyUFhGYjZXdWNLaks5bHViR24rSVpZMkNYZjd4UDc0NmovR3VsamtTV05aSTJESXd5Q0s4K1pTckVNQ0NPb05hR2xhckpZU2JUbDRTZVY5UGNWejFhQ2VzVHZ3Mk5sQjh0VFZIWjBWSEJQSGN3ckxFd1pHNzFKWERzZTBtbXJvSzVueGRDZ2EzbUFBY2dxZmZIL3dDdXVra2RJbzJlUmdxcU1rbnRYRjY1cUkxQzdCai9BTlZHTUxudjcxdFJUY3JuRmo1eFZMbGU3TXhTVllFZFJYbzhaTFJxeDZrQTE1L1pRTmMza1VLakpaZ1B3cjBJREFBSFFWVmZvWVphbmFUOUFvb29yblBWQ3VRK0luL0lQdFArdWgvbFhYMXlIeEUvNUI5cC93QmREL0tnRGdhS0tLWUhaV25nWVhGcERQOEFiOXZtSUh4NWZUSXo2MUwvQU1JQVArZ2ovd0NRdi9yMTFtbGY4Z216L3dDdUtmOEFvSXExU0E0bi9oQUIvd0JCSC95Ri93RFhxcmZlQkx1R0l2YTNLVGtmd0ViU2ZwWG9GRkFIaWtrYnhTTkhJcFIxT0NwR0NEVGE2djRnMnNjT3B3WENBQnBrTzdIY2p2OEFrUitWY3BUQTBOQXYyMDNXTGU0Qnd1N2E0OVZQV3ZYYThTSFd2WjdWdjlDaFp1dmxnbjhxUUhNYTU0TWp2TGhybXhsV0IzT1dqWWZLVDZqSFNxVmg0RG04NVd2cnFNUmc4ckZray9pUnhXNGZHR2lBNCswdi93QittL3dwUCtFeDBQOEE1K1gvQU8vVGY0VUFiY0VNVnRBa0VLQkkwRzFWSFlWSlZld3ZZTlF0RXViWmkwVFp3U01kRGlyRkFCUlZQVU5Vc2ROVGRkM0tSK2k5V1AwSFd1ZXVmSGxrakVXOXJMTDdzUW8vclFCMXRGY04vd0FKKytmK1FjdVArdXYvQU5hckVQajYySkFuc1pGSGNvNGIvQ2dEc2FLeTlPOFE2WHFSQ1FYSVdRLzhzNVBsYi82LzRWcVVBRmNuOFEvK1FUYmY5ZC8vQUdVMXQ2bnJtbjZWS2tkNUt5TTQzRENFOGZoWEplTU5kMDdWZFBoaHM1V2QxbDNFRkNPTUgxb0E1Q3IyaDg2NVlmOEFYZFAvQUVJVlJxMXBVOGR0cXRwUEtjUnh5cXpFRE9BQ0NhWUhzZEZZSC9DWTZIL3o4djhBOSttL3dvLzRUSFEvK2ZsLysvVGY0VWdOK2lxOWplUTM5cXR6YjdqRS93QjBzcFhQNTFZb0FLS3lkUzhSNlhwckZKcmdQSVArV2NmekgvNjFZVTNqNkVFK1JZT3c5WGZIOGdhQU96b3JpSS9INTNmdk5PR1A5bVgvQU90V3RZZU1kS3V5RWtkN1p6L3oxSEg1aWdEb2FLUkhXUkE2TUdVOGdnNUJwYUFDaWlpZ0Fvb3FscUdyV0dtcm03dVVqUFVMMVkvZ0tBTHRGY2pjK1BMTkdJdDdTV1gzWWhmOGFxZjhKKytmK1FjdVArdXYvd0JhZ0R1YUs1SzI4ZVdUc0JjV3NzUTlWSVlmMHJvZFAxV3gxSk4xcGNKSjZyMFlmVWRhQUxsZWIrUHYrUmdIL1hGZjVtdlNLODM4ZmY4QUl3RC9BSzRyL00wQWMxWFUvRDMvQUpEVTMvWEEvd0RvUzF5MWRUOFBmK1ExTi8xd1Avb1MwQWVpVVZUdjlVc2RPVGRkM0tSK2lubGo5QjFybnJueDVaSXhGdmF5eSs3RUtQNjBBZGJSWERqeCsrN25UbHgvMTEvK3RXaFkrTjlPdUhDWEVjbHNUL0VmbVg5T2Ywb0E2aWltUlN4enhMTEU2eVJzTWhsT1FhZlFBVnkvaURTV2prYThnWE1iY3VCL0NmWDZWMUZCQUl3UmtWY0p1RHVqR3ZSaldqeXM4NXJmMFhXekR0dDdwc3g5RmY4QXUvWDJwMnM2SjVlNjV0RnluVmtIYjZlMVlHSzdseTFZbmhmdmNKVS9yVTdYVk5WZzA2M0RraDVHSHlJRDE5L3BYRTNkNU5lVG1hWjl6SDhoN0NteXF6NE9TU0JqbXBOT3NKOVF1QkRFdlQ3ekhvbzk2bU5OVWxkblJPdkxFdXkrNExPMW12WnhEQ3U1aitROXpYYTZYcGtPblE3VithUS9lZjEvK3RUOU8wK0RUN2NSeERKUDNuUFZqVnV1ZXJWYzlGc2QrSHdxcGU5TGM0RFZqL3hOYnIvcnEzODZ2ZUZUblZqL0FOYzIvcFdkcTUvNG0xMS8xMWIrZFh2Q1p6cTUvd0N1YmYwcm9rLzNmeU9Dbkg5K241bTlxK2pwZUtab1FGbkg1TlhLU1J2Rkl5T3BWbE9DRFhvTloycmFWSGZwdlhDVGdjTjYreHJHalg1ZmRsc2RPTHdmUDc5UGY4em10TjFHWFQ1c3I4MForOGg2R3VzajFDMWtzemRDVUNNZGM5UjdWeE04TWx2SzBVcWxYWHFEVWU1dHUzSng2VjBWS1VaNm5EUXhjNkY0N21ockdyeVg3N0V5a0NuaGZYM05aZ0JKd0JrbW5Jak93VlFTeDRBRmRYb3VpcmFBWEZ5QTAzWmV5ZjhBMTZtVGpUaVRUcDFNVk83KzhUdy9wSnRGKzB6akV6RENyL2RIK05iZEZGY1VwT1R1ejNxVktOS0tqRUtLS0trMEN1UStJbi9JUHRQK3VoL2xYWDF5SHhFLzVCOXAvd0JkRC9LZ0RnYUtLS1lIc2VsZjhnbXovd0N1S2Y4QW9JcTFYbDhQaTNXSUlVaFNkQWlLRlVlV3ZRZmhULzhBaE10Yi93Q2U2ZjhBZnRmOEtRSHB0RmVaZjhKbHJmOEF6M1QvQUw5ci9oVlcrOFNhdGZSR0thN1lSbmdxZ0M1L0tnQzc0MjFPTFVOV1dPQmc4ZHV1emNPaGJ2ajlLNXlpcExlM211cGxodDRta2tib3FqSnBnUzZiYVBmYWpCYW9NbVJ3UG9PNS9LdllYVUxBeWpvRndQeXJuL0N2aHdhU2h1Ym5EWGJqR0J5SXg2Zld1aGwvMVQvN3BwQWVLdjhBZlAxcEtWL3ZuNjBsTUQxRHdaL3lMTnQ5Vy84QVFqVmZ4WjRqL3NwQmEycEJ1M0dTVHo1WTlmclZqd2FRUERGdVQwQmYvd0JDTmVjYWxkUGU2amNYTWh5MGprL2gyRklDR2VhVzRsYVdhUnBKR09TekhKTk1vcnRQQ1BocXp2TEFYOTZwbDNzUWtlY0FBY1pQclRBNHVpdllZOUswNk5kcVdGc0Ivd0JjaFZXNzhONlBkcVE5bEhHVC9GRU5oL1NrQjVRQ1FjamcxMXZoVHhIcUF2SWRQbFY3dU56dEhkazk4K24xcXZyM2hHNDA1VGNXak5jVytlUmo1MStvNzExSGhQUVJwTnA1ODYvNlhLUG0vd0JnZjNmOGFBTUg0aWY4aEMwLzY1SCtkY2hYcW10K0hiYldwbzVaNXBZekd1MEJNZXZ1SzVMeFI0YnRkRnNZcDRKcFhaNU5oRDR4akJQWWUxQUhNVVVWWTA2M1c3MUcydG5KVlpaVlFrZFFDY1V3SzlhL2h2UjMxalVsaklJdDQvbWxiMjlQcWE2ci9oQTlQLzUrcm4veDMvQ3Q3U05LdHRJcy9zOXZrZ25jenQxWSs5SUMxKzZ0YmY4QWhpaGlYNkJRSzgvOFJlTFo3MTJ0ckJtaHRod1hIRFAvQUlDclhqdldtYVVhVkErRlhEVEVkejJYK3RjWlFBRTU1TkZYdEkwcTUxZThGdmJMN3M1NktQVTEzMWg0TzBxMWpIbnh0Y3lkMmNrRDhBS1lIbWRGZXJUZUdORmxRcWJGRnozUWtHdVE4UmVFcE5OamE2czNhYTJYbGdmdkovaUtRR2JvbXYzdWp5ankzTWtCUHpRc2VEOVBRMTZicGVvMitxV2EzTnMyVlBCVTlWUG9hOGRyWjhMNncyazZtcFpqOW5sSVdVZTNyK0ZBSHFsRkFJSXlEa0d1YjhhYXkybldBdG9HeGNYQUl5T3FyM1A5UHpvQW8rSi9GeGdkN0xUR0JjY1BOMXdmUmY4QUd1R2tra21rYVNSMmQyT1N6SEpOTm9wZ0ZGZFRvbmd5NHZZbHVMMlEyMFRES3FCODVIOUs2QWVDZEhDYlQ1NVA5N2Z6L0trQjV0VDRacGJlVlpZWkdqa1U1REtjRVYxdXIrQjVZSTJsMDZWcGdPVEUvd0I3OEQzcmtSRzVrOHNJMi9PM2JqblBwaW1CMy9oanhXTDVsc3I4aGJnOEpKMEQreDlEV0g0Ky93Q1JnSC9YRmY1bXR6d3Q0Vld5Q1h0K2dhNTZwR2VrZnVmZitWWWZqNy9rWUIvMXhYK1pwQWMxVjdTdFV1TktrbWx0dG9ra2pNWVlqTzNrSEkvS3FOQUdlQlRBZlBOTGNTdExOSTBrakhKWmprbW1WMUdqK0M3dTlqV2E4ayt5eHR5RnhseitIYXRrK0F0UDJZRjNjYnZYNWNmbGlrQjU5Ulc5cjNoZTYwaFBQVmhQYlp4dkF3VitvckJwZ2IzaGJYcE5LdkZobGNtemtPSFUvd0FKL3ZDdlR3UVJrY2l2RXE5WDhMM1J1L0QxcEl4SlpWMkVuL1pPUDZVZ05haWlzSHhGcnYyRUcxdGlEY01QbWIrNFA4YXFNWEoyUk01cUN1eVRYZGRqMDlUREFROXlmeVQ2MXg2WEJaejVoeVNjNXFzenM3Rm1Zc3g1SlBldFBSZEdtMU9YSnlrQ241bi9BS0QzcnNnbFNWenlxdDhRN0VkYWVqNm8ybnlGR0c2Rno4dzdqM3JUMUxRSWpicTFrdTEwR051ZnZEL0d1YlpTckZXQkJIQkJyV01vMVluSE9uVXdzMHp2NFpZNTRsa2lZTWpjZ2luMXhlbDZuTFlTY2ZORWZ2Si9oNzExOXRjUlhVS3l3dHVVL3BYRFZwT20vSTluRFltTmRlWjU5ckIvNG05My93QmRXL25XaDRSUC9FNFAvWEp2NlZuNngveUY3djhBNjZ0L09yL2hEL2tNSC9yazM5SzZKZkFja1A0cTlUdDZyM3Q1RFpRR1dadm9vNnNhWnFHb1EyRU8rUTVjL2RRZFRYSFh0NU5lem1XVnMrZzdBVmpTb3VlcjJPakZZdFVWeXgxa08xRzlrdjdneXlZQUhDcU93cXBVMXZieTNNeXhSS1dadTFkTkQ0ZnRsc2pGSWN6Tno1ZzdIMnJzbE9GTkpIazA2RlhFTnlSelZwY1NXbHdzMFpHNWZVVjJXbTZqRHFFTzVQbGtIM2s3ai82MWNoZldVMWpPWXBWK2pkaUtqdDU1YmFaWlltS3N2Y1ZOU25Hb3JvcWhpSjRhWExMYnFqdjZLbzZWcUthaEJuaFpWKzh2OWF2VjU4b3VMc3ozNFRqT0tsSFlLS0tLUlFWeUh4RS81QjlwL3dCZEQvS3V2cmtQaUoveUQ3VC9BSzZIK1ZBSEEwVVVVd0NpdlU5TjBQU3BOTnRaSDArQm1hSlNTVUhKd0tzZjJCby8vUU50L3dEdmdVZ1BKS0s5Yi9zRFIvOEFvRzIvL2ZBcU9mdzFvMDBaUTJFU1o3cDhwSDVVQWVVVnA2UnIxOXBEWXQyUXhrNVpHVUVIOGV0V2ZFM2g1OUZuVjQzTWxySWNJeDZnK2hyRHBnZXJhRHI5cnJVSjJmdTdoUmw0aWYxSHFLMVpmOVUvKzZhOGNzTHlhd3ZZcnFCdHJ4dG42KzFldXczQ1hlbnBjeC9jbGozajhSU0E4YmY3NSt0SlN2OEFmUDFwS1lIcC9nNGJ2Qzl1dnJ2SC9qeHJ6UzVpYUc2bGlZWVpIS2tmUTE2WjRNLzVGbTIrcmY4QW9Scm52RzJneVIzTDZuYklXaWs1bEFIM0c5Zm9hUUhJVjB2aHJ4VWRJZyt5WEVKbHQ4NVVxZm1YUFg2MXpWRk1EMU8yOFZhTGNEL2o3RVo5SkZLLy9XclRndmJTNS8xRnpETC9BTGpnMTR6U2hpcEJCSUk3aWtCN1pSWGxPbmVKZFYwOWdFdVdsakgvQUN6bCtZZjRqOEs3dlFQRWxyckk4dkhrM1FHVEdUMTl3ZTlBRzNYSi9FUC9BSkJOdC8xMy93RFpUWFdWeWZ4RC93Q1FUYmY5ZC84QTJVMEFlZlZlMFA4QTVEdGgvd0JmQ2Y4QW9RcWpWN1EvK1E3WWY5ZkNmK2hDbUI2L1VkeE10dmJTenY4QWRqUXNmb0JtcEt5dkZEbVB3NWZFZDQ5djVrRCt0SUR5eTZuZTZ1cGJpUTVlUml4UHVhaW9vcGdlbitGTE8zMDNSWXN1Z21tQWtrTzRaNTZEOEJXMTU4UC9BRDFUL3ZvVjR0UlNBOXA4K0gvbnFuL2ZRcEdsZ2RTclNSbFNNRUZoelhpOUZBR2hyOWltbjZ4Y1c4WkJpRGJrd2MvS2VSV2ZSUlRBOVY4SjNodmZEOXM3SEx4ankyUDA2ZnBpdUE4VTNwdnRmdVh6bEVieTEraThmenpYVWZEK1VqU2J0VDBTVGNQeEgvMXE0T1ZpOHpzZXJFbWtBMnVsOEVhU2wvcVRYTTY3b2JmQndSd1c3ZjQxelZlaitBWWxUUVdrQTVrbFluOEFCUUIwMUZGRkFCVkZkSXNWMVJ0UkVDL2FTTWJ1MmZYSHI3MWVvb0FLODM4ZmY4akFQK3VLL3dBelhwRmViK1B2K1JnSC9YRmY1bWdEbXE2VHdMYXczT3VFelJoL0tqTHBub0d5Qm45YTV1dXArSHYvQUNHcHYrdUIvd0RRbG9BOUVvb29vQWl1b0V1cldXM2tBS1NLVklQdlhqTWk3SkdVOWppdmE2OFd1ZjhBajVsLzNqL09nQ092VFBBMy9JdHgvd0RYUnY1MTVuWHBuZ2IvQUpGeVAvcm8zODZBTnk3blcydEpaMjZScVdyek9lWjU1M21rYmM3a2ttdlFQRUdmN0V1c2YzUi9NVjUzWFRRV2padzRwNnBHdm9Hak5xY3hlUWxiZU0vTVIxSjlCWGR3d3h3UkxGRWdSRkdBQldUNFUyZjJJbTNydmJkOWMvNFlyWnJPckp1VmplaEJSaW4zQ3NyVjlJUzlVeXhBTE9QeWI2MXEwVkVaT0x1aTZsT05TUExKSG4wa2J4U05ISXBWbE9DRDJxenArb1RXRXU2TTVVL2VROURYVWFycFVkK200WVNZZEc5ZlkxeWQxWnoya215YU1xZXg3SDZWNkVLa2Fxc3p3cTFDcGhwY3kyN2xTLzNYTjlOT3FZRWpsZ005TW1yR2pYRDZkZHRjR01NZGhVRFBjNHFLbHEvWnExalA2eE5PNjNKYm00bHVwbWxtWXN4L1NsczdTYThuRVVLNUo2bnNCVTFocGx6Zk9OaUZVN3VlZ3Jyckd5aHNZQkhFT2Y0bVBWaldkU3FxYXN0emJENFdkZDgwdHZ6R2FicDBPbnc3VUc2US9lZnVmL3JWY29vcnoyM0ozWjdzSUtDNVlyUWd2TFNHOWdNVXk1SFk5d2ZhdU0xQ3lrc2Jrd3Z5T3F0Nml1NnJudkZlemJiL0FOLzV2eTRyb3c4MnBjdlE0Y2ZSaktuN1RxakowcTZOcGZ4eVorVW5hMzBOZHZYbmd6bmpyWG9NZWZMWFBYQXFzVXRVekxMWk5xVVIxRkZGY2g2b1Z5SHhFLzVCOXAvMTBQOEFLdXZya1BpSi93QWcrMC82NkgrVkFIQTBVVVV3UFk5Sy93Q1FUWi85Y1UvOUJGV3FxNlYveUNiUC9yaW4vb0lxMVNBS0tLT2xBSFBlT1ZWdkRjaGJxc2lsZnJuL0FBelhtZGRoNDQxeUc2MmFkYXVIVkczU09wNHoyRmNmUUFWNmQ0UmthVHdyRHUvaERyK3Byekd2VXZDOEJ0L0MxdXA0TEl6L0FKa2tVQWVYUDk4L1drcFgrK2ZyU1V3UFVQQm4vSXMyMzFiL0FOQ05icEFJSUl5RDFCckM4R2Y4aXpiZlZ2OEEwSTFkMXJWN2ZSN0l6emZNeE9FakI1WTBnTXZWUEJ1blhyR1NBbTFrUFB5REtuOFA4SzUyNThENnBFZjNFa002K3piVCt2OEFqWGQ2YnFWcnFscXR4YXlCbFBWZTZuMElxM1FCNU5jZUhOWXRnVEpZU2tEdWczZnlyTVpXUmlycVZZZFFSaXZiS3l2RUdrMm1wYWZNWm8xRXFJV1NYSEtrRDE5S0FQSjZrdHA1Ylc0am5oY3BKR3daU094cU9pbUI3SHBsNHQvcDF2ZHFNZWFnWWowUGNmblhPL0VQL2tFMjMvWGYvd0JsTlh2QkpKOE5RWlBSbkEvNzZOVWZpSC95Q2JiL0FLNy9BUHNwcEFlZlZlMFAva08ySC9Yd24vb1FxalYzUldDYTNZc3h3Qk9oSi80RUtZSHNGWm5pV015K0hiNVFNa1Jsdnk1L3BXblRaWTFsaWVOeGxYVXFmb2FRSGlsRldOUXRIc2IrZTFrSHpSdVYrdm9hcjB3T2hnOEc2cGNRUnp4dGJsSkZES2Q1Nkg4S2svNFFmVi9XMy83N1ArRmJIZ2pYWTVMZGRMdUhDeXAvcVNmNGg2ZlVWMkZJRHpmL0FJUWZWL1czL3dDK3ovaFIvd0FJUHEvcmIvOEFmWi93cjBpaWdEemYvaEI5WDliZi92cy80VWY4SVBxL3JiLzk5bi9DdTcxRFZySFRUR0x1ZFkya1lCUjFQMStudlYwRUVBZzVCNkVVQWM5NFQwVzYwbTF1WXJzeDVsWUViR3oyTmViM0NHSzRralBCVmlwL0ExN1RYbDNqR3dObHIwekJjUnovQUwxVDlldjY1b0F3NjlGOEFUaVRSWklmNG9wVCtSQS8rdlhuVmJuaExXRjBuVS8zeHhiekRaSWY3dm9mOCt0TUQxR2lrVmxkUXlrTXBHUVIwTkxTQUtLS3hGOFU2YTJzSFQvTXgyRTJma0xlbi8xNkFOdXZOL0gzL0l3RC9yaXY4elhwRmViK1B2OEFrWUIvMXhYK1pvQTVxdXArSHY4QXlHcHYrdUIvOUNXdVdycWZoNy95R3B2K3VCLzlDV2dEMFNpaWlnQXJ4YTUvNCtaZjk0L3pyMm12RnJuL0FJK1pmOTQvem9BanIwendOL3lMa2Y4QTEwYitkZVoxNlo0Ry93Q1Jjai82Nk4vT2dEY3VvRnViV1dCdWtpbGZ6cnpPNGhlM25lR1FZZENRUlhxTllQaUxRL3Q2L2FiWUFYQ2psZjc0L3dBYTJwVDVYWm5OaUtibXJyZEhQNkRyTGFYTVZjRnJlUS9NQjFCOVJYZHdUUjNFS3l3dUhSaGtFVjVlNk5HNVIxS3NEZ2c5cTBkRzFpYlRKdU12QXgrYVArbzk2MXFVK2JWR0ZHdHllN0xZOUNvcUcwdW9ieTNXZUJ3eU4rbnNhbXJrTzlPK3FDbXZHa2lsWkVWMVBaaGtVNmlnWjU3cWg4clZMbU9QQ29zaEFBNkRtcjNoaEV1TlVLektzaWlNa0Joa1p5S29hei95R0x2L0FLNnQvT3REd2oveUZtLzY1Ti9NVjN5YjltZU5DRWZiTFRxZG1BQU1BQUFkaFJSUlhBZXlGRkZWcjY5aHNZREpLZWY0VkhWalRTYmRrVEtTaXJ5MkhYZDFEWndHV1pzQWRCM0o5cTQzVWIyUy91aksvQTZLdm9LUyt2cHI2Y3lTbmorRlIwQXFLQ0NTNGxXS0pTenQwQXIwS1ZKVTFkN25oWW5GT3UrV08zNWsrbFdwdTcrS01ENVFkemZRVjNGVU5KMDFOUGd3Y05LMzNtL3BWK3VTdFU1NWFiSHA0T2c2TVBlM1lVVVVWaWRnVnlIeEUvNUI5cC8xMFA4QUt1dnJrUGlKL3dBZUZwLzEwUDhBS2dEZ2FLS0tZR2xIcityUnhyR2wvTXFLQUFBZWdGTC9BTUpEckIvNWlNLy9BSDFXWlJRQnAvOEFDUTZ4L3dCQkdmOEE3N3FHZlY5U3VVS1RYMDdvZXFsemcxU29vQUtLTUU5cTJOSzhOYWxxYkFyQ1lvVDFsa0dCK0hyUUJYMFRUSmRXMUtPMlFIWm5NamYzVjdtdldTaXhXcGpRWVZVMmdlZ0FxbG91ajIyajJ2a3dEYzdjdkllckdyOHYrcWYvQUhUU0E4VmY3NSt0SlN2OTgvV2twZ2VsZUdMcUt5OEhSM003WWpqM2s0SCswYTRYVzlWbjFlL2E0bE9GNlJwMlZmU3Uvd0RCeXEvaGVCSFVNcmJ3UVJrSDVqV05yM2d0dHpYR2xZSVBKZ0o2ZjdwL3BTQTVHeHZyclQ1eE5hek5FNDlPL3dCUjNycjlQOGVBS0Z2N1VrOTNoUFg4RC9qWEdUMjgxdEtZcDRuamNkVllZTlIwd1BTVDQyMGNMbjkrVDZiUC9yMWhhNzR5ZSt0bnRiS0V3eHlEYXp1Zm1JOU9PbGNuUlNBS1ZGWjNDcUNXSndBTzlQZ3Q1cm1WWW9JbWtkdWlxTW11ODhMK0ZEWXlMZmFnQVp4eWtmVUo3bjNwZ2IraVdSMC9SN2ExYjc2SjgzKzhlVCtwckk4ZXdHWFFWa0EvMVVxc2ZvUVIvVVYwdFFYdHJIZTJjdHJNTXBLcFUvNDBnUEdhQVNwQkJ3UjBOWGRXMHU1MG04YTN1RU9QNEh4dzQ5UlZLbUIyVm40OGxqdGxTNXN4TEtveHZWOGJ2Y2pGWGZEdmlxYlZOYWUzdVZTT09SUDNTTDJJNTY5OGpQNVZ3RlRXbHhKYVhjVnhFY1BHd1lmaFNBN254eG9iWFVRMUsyVE1zWXhLbzZzdnIrSDh2cFhBVjdUYlRDNHRvcGdwQWtRTmhoZ2pJcmtmRVhnNFRPOTFwWUN1ZVdnUEFKLzJmVDZVQWNJckZXREtTQ09RUjJycGRPOGFhbGFJSTUxUzZRZEMvRGZuWFBYRnZQYXltS2VKNG5IVldHRFVkTUR1RDQvVFp4cHgzZjhBWFhqK1ZaMTc0MzFLNFVyYnBIYkE5MUc1dnpQK0ZjeFJTQWZQUExjU3RMTkkwa2pjbG1PU2E3THdaNGoybE5Mdlg0UEVNaDdmN0ovcFhLV0dtM21veWlPMHQza1BjZ2NENm50WGZlSFBDa1dtTXQxZGxacnJzQjkxUHA2bjNvQTZXc1h4VG8zOXI2YVJHQjlwaSthTSt2cVB4cmFvb0E4VGRHamRrZFNyS2NFSHFEU1Y2WDRqOEx3NnJtNXR5c04zM1A4QUMvMTkvZXZQci9UcnpUcGpGZHdQRzNZa2NINkh2VEF2NlA0bTFEU1ZFU01KWUIveXprNUEraDdWdmp4K3V6NXRPTy8ybDQvbFhEMFVBYityZUxkUjFHTXdwdHRvVzRLeDlUOVRXQlJWdlR0TXZOVG1FVnBBem51MzhLL1UwQWRSNFM4VHlpU0xUYjNkSXJFTEZJQmtqMlBxS28rUHYrUmdIL1hGZjVtdXI4TytHNE5HVHpYSWx1MkdDK09GOWgvalhLZVB2K1JnSC9YRmY1bWtCelZkVDhQZitRMU4vd0JjRC82RXRjdFhVL0Q3L2tOVGY5Y0Qvd0NoTFFCNkpSUlJRQVY0dGMvOGZNdis4ZjUxN1RYaTF6L3g4eS83eC9uUUJIWHBuZ2IvQUpGeVAvcm8zODY4enIwendOL3lMa2YvQUYwYitkQUhRMFVVVUFZMnU2RkhxS0dhRUJMa0RyMmYyUDhBalhEelF5UVN0RktoUjFPQ0QycjFHc3pXZEdoMU9MUENUcVBsZitocmFuVXRvemxyVU9iM283bkY2WHFseHBseHZpT1VQM2tQUmhYZTZmZndhamJDYUJzLzNsUFZUNkd2T3J1MW1zN2hvSjBLT3Y2MUpwOS9QcDl3Sm9Hd2U0N01QUTF0T21wNm81NlZWMDNaN0hwZEZVZEsxU0RVNE44WjJ5RDc4WjZyL3dEV3E5WEkwMW96MFUxSlhSNTNyUDhBeUdMdi9ycTM4NjBmQ1A4QXlGbS82NUgrWXJPMW4va01YZjhBMTBiK2RhSGhIL2tMTi8xeVA4eFhiTCtIOGp5b2Z4bDZuYVVVVm42dHFzV25SWTRlWmg4cWYxTmNTaTVPeVBVbk5RWE5MWWsxTFVZZFBoM09kMGgrNm5jLy9XcmpydTdtdkpqTE0yU2VnN0Nvcmk0bHVwMm1tY3M3Vk5ZMlUxN01Jb2wrcDdBVjZGT21xYXV6d2NSWG5pSmNzZHV3MjF0cGJ1WVJRcnVZL3BYWTZacHNXbnc0WDVwVDk1L1gvd0N0VDdDd2hzSWRrWXl4Kzh4Nm1yVmMxV3M1NkxZOUxDNFJVdmVsOFg1QlJSUlhPZHdVVVVVQUZRM05wYlhhcXR6QkhNcW5JRHFEaXBxS0FLSDlpNlYvMERyWC92MHRIOWk2Vi8wRHJYL3YwdFg2S0FLSDlpNlYvd0JBNjEvNzlMUi9ZdWxmOUE2MS93Qy9TMWZvb0FvZjJMcFgvUU90ZisvUzBmMkxwWC9RT3RmKy9TMWZvb0FyUTZmWTI1ekRad1JuMVdNQ3JORkZBQlFSa1lQU2lpZ0NqL1l1bGY4QVFPdGYrL1FwUDdGMHIvb0hXdjhBMzZXcjlGQUVjRUVOdEVJb0lrampIUlVHQUtrb29vQWh1YlMydTAyWE1FY3kranFEV1BQNFAwV1ppUmJ2R1QvY2MvMXJlb29BNWovaEJ0SnovckxuL3ZzZjRWWWc4SGFMRVFUREpMaisrNS9waXQraWdDQzFzcld5VFphMjhjSy83QzR6VTlGRkFCUlJSUUJCZDJkdGZRbUc2aFNWRDJZZFBwNlZ6MXg0RzB5UnN3eXp3K3dJWWZxSzZpaWdEa1U4QldRUHozazVIc0FLMXRPOE02VnB6aVNPMzh5UWRIbE80aitsYkZGQUJSUlJRQkJkV2RyZVI3TG0zam1YMGRjNHJHbjhIYUxLeEt3eVJaL3VPZjY1cm9LS0FPWlh3UHBJT1M5eWZZdVA4S3VXM2hYUmJjNUZtSkQvQU5OR0xmcDByYW9vQWJGRkhDZ1NKRlJCMFZSZ0NuVVVVQUZGRkZBQlRKb1lwNHpITkdraUhxcmpJcDlGQUdIY2VFZEZuYlAyWXhIL0FLWnVSK2xWZitFRzBuT2ZNdWNlbThmNFYwMUZBR0hiZUV0RnQyM2ZaVEtmK21qRS9wMHJaaWlqZ2pFY01heG9PaXFNQVUraWdBcXJjYWRZM1VubVhGcERLK01iblFFNHExUlFCUS9zWFN2K2dkYS85K2xxYTIwK3l0SkRKYldrTUxrWUxJZ0J4Vm1pZ0Fvb29vQUtvblJ0TEpKT25XeEo3K1VLdlVVQVVQN0Ywci9vSFd2L0FINldyZHZidzJzWGxXOFNSUmc1Mm9NQ3BLS0FDaWlpZ0Fvb29vQW82cnBjR3B3YkpCdGtYN2tnSEsvL0FGcTRMVUxDZlQ3Z3d6cmc5ajJZZW9yMHVxdW9XRUdvMjVoblhQOEFkWWRWUHFLMXAxT1hSN0hQV29xZXEzUE83UzZtczdoWjRIS092cDNyMEhTTlFHcFdLejdkcloydXZvYTVLZnd6cU1keHNqakVpWjRjTUFLNnZSZFAvczJ3V0FzR2NuYzVIVE5YVmNXcm95dzhaeGswMW9jVnJQOEF5R0x2L3JxMzg2MGZDUDhBeUZtLzY1Ti9NVlQxK0l4YTFjZ2o3emJoK1BOUVdGN05Zek5MQVFIS2xja1p4bXQ3YzBMSTQrYmtxM2ZSblk2enJNZW5vWTQ4UGNFY0RzdnVhNDZXV1NlVnBaV0xPeHlTYWpkMmtjdTdGbVk1SlBldERTZExtMUdiajVZbCs4LytIdlRoQ05OWFpGV3BQRVNzdnVFMDNUNXIrYlpHTUtQdk9lZ3JzN0t6aHNvQkZDdUIzUGRqNzArMXRvclNCWVlWMnFQMSt0UzF5MWFybnAwUFJ3MkdqUlYzdUZGRkZZbldGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQVkzaURSenFDTE5CZ1RvTVlQOFE5SzVOOVB2STVOaldzb2IwMkd2UmFLMmhXY1ZZNWF1RmpVZk5leHgrbStIYm1kdzkwRERGNkg3eC9EdFhXUVF4MjhLeFJJRlJlZ0ZTVVZNNmpudWFVcUVLWHdoUlJSV1pzRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFCODdmOEFDUjY5L3dCQnZVZi9BQUtmL0dqL0FJU1BYdjhBb042ai93Q0JULzQwVVVBSC9DUjY5LzBHOVIvOENuL3hvLzRTUFh2K2czcVAvZ1UvK05GRkFCL3drZXZmOUJ2VWYvQXAvd0RHai9oSTllLzZEZW8vK0JUL0FPTkZGQUIvd2tldmY5QnZVZjhBd0tmL0FCby80U1BYditnM3FQOEE0RlAvQUkwVVVBSC9BQWtldmY4QVFiMUgvd0FDbi94by93Q0VqMTcvQUtEZW8vOEFnVS8rTkZGQUIvd2tldmY5QnZVZi9BcC84YVArRWoxNy9vTjZqLzRGUC9qUlJRQWY4SkhyMy9RYjFIL3dLZjhBeG8vNFNQWHYrZzNxUC9nVS93RGpSUlFBZjhKSHIzL1FiMUgvQU1Dbi93QWFQK0VqMTcvb042ai9BT0JUL3dDTkZGQUIvd0FKSHIzL0FFRzlSLzhBQXAvOGFQOEFoSTllL3dDZzNxUC9BSUZQL2pSUlFBZjhKSHIzL1FiMUgvd0tmL0dqL2hJOWUvNkRlby8rQlQvNDBVVUFIL0NSNjkvMEc5Ui84Q24vQU1hUCtFajE3L29ONmovNEZQOEE0MFVVQUgvQ1I2OS8wRzlSL3dEQXAvOEFHai9oSTllLzZEZW8vd0RnVS84QWpSUlFBZjhBQ1I2OS93QkJ2VWYvQUFLZi9Hai9BSVNQWHY4QW9ONmovd0NCVC80MFVVQUgvQ1I2OS8wRzlSLzhDbi94by80U1BYditnM3FQL2dVLytORkZBQi93a2V2ZjlCdlVmL0FwL3dER2ovaEk5ZS82RGVvLytCVC9BT05GRkFCL3drZXZmOUJ2VWY4QXdLZi9BQm8vNFNQWHYrZzNxUDhBNEZQL0FJMFVVQUgvQUFrZXZmOEFRYjFIL3dBQ24veG8vd0NFajE3L0FLRGVvLzhBZ1UvK05GRkFCL3drZXZmOUJ2VWYvQXAvOGFQK0VqMTcvb042ai80RlAvalJSUUFmOEpIcjMvUWIxSC93S2Y4QXhvLzRTUFh2K2czcVAvZ1Uvd0RqUlJRQWY4SkhyMy9RYjFIL0FNQ24vd0FhUCtFajE3L29ONmovQU9CVC93Q05GRkFCL3dBSkhyMy9BRUc5Ui84QUFwLzhhUDhBaEk5ZS93Q2czcVAvQUlGUC9qUlJRQWY4SkhyMy9RYjFIL3dLZi9Hai9oSTllLzZEZW8vK0JULzQwVVVBSC9DUjY5LzBHOVIvOENuL0FNYVArRWoxNy9vTjZqLzRGUDhBNDBVVUFIL0NSNjkvMEc5Ui93REFwLzhBR2ovaEk5ZS82RGVvL3dEZ1UvOEFqUlJRQWY4QUNSNjkvd0JCdlVmL0FBS2YvR2ovQUlTUFh2OEFvTjZqL3dDQlQvNDBVVUFIL0NSNjkvMEc5Ui84Q24veG8vNFNQWHYrZzNxUC9nVS8rTkZGQUIvd2tldmY5QnZVZi9BcC93REdqL2hJOWUvNkRlby8rQlQvQU9ORkZBQi93a2V2ZjlCdlVmOEF3S2YvQUJvLzRTUFh2K2czcVA4QTRGUC9BSTBVVUFIL0FBa2V2ZjhBUWIxSC93QUNuL3hvL3dDRWoxNy9BS0Rlby84QWdVLytORkZBQi93a2V2ZjlCdlVmL0FwLzhhUCtFajE3L29ONmovNEZQL2pSUlFBZjhKSHIzL1FiMUgvd0tmOEF4by80U1BYditnM3FQL2dVL3dEalJSUUFmOEpIcjMvUWIxSC9BTUNuL3dBYVArRWoxNy9vTjZqL0FPQlQvd0NORkZBQi93QUpIcjMvQUVHOVIvOEFBcC84YVA4QWhJOWUvd0NnM3FQL0FJRlAvalJSUUFmOEpIcjMvUWIxSC93S2YvR2ovaEk5ZS82RGVvLytCVC80MFVVQUgvQ1I2OS8wRzlSLzhDbi9BTWFQK0VqMTcvb042ai80RlA4QTQwVVVBSC9DUjY5LzBHOVIvd0RBcC84QUdqL2hJOWUvNkRlby93RGdVLzhBalJSUUFmOEFDUjY5L3dCQnZVZi9BQUtmL0dqL0FJU1BYdjhBb042ai93Q0JULzQwVVVBZi85a0taVzVrYzNSeVpXRnRDbVZ1Wkc5aWFnb3hOQ0F3SUc5aWFnbzhQQW92UXpBZ1d5QXdMalkxTURrNElEQXVOalV3T1RnZ01DNDJOVEE1T0NCZENpOURNU0JiSURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJRjBLTDBSdmJXRnBiaUJiSURBdU1DQXhMakFnWFFvdlJuVnVZM1JwYjI1VWVYQmxJRElLTDA0Z01TNHdDajQrQ21WdVpHOWlhZ294TlNBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlETVNCYklEQXVPRE14TXpjZ01DNDVOekkxTlNBd0xqazNNalUxSUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURJS0wwNGdNUzR3Q2o0K0NtVnVaRzlpYWdveE5pQXdJRzlpYWdvOFBBb3ZRekFnV3lBd0xqZ3pNVE0zSURBdU9UY3lOVFVnTUM0NU56STFOU0JkQ2k5RE1TQmJJREF1T0RNeE16Y2dNQzQ1TnpJMU5TQXdMamszTWpVMUlGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnb3hOeUF3SUc5aWFnbzhQQW92UW05MWJtUnpJRnNnTUM0eU5TQXdMakkxSUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSVzVqYjJSbElGc2dNQzR3SURFdU1DQXdMakFnTVM0d0lEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURNS0wwWjFibU4wYVc5dWN5QmJJREUwSURBZ1VpQXhOU0F3SUZJZ01UWWdNQ0JTSUYwS1BqNEtaVzVrYjJKcUNqRTRJREFnYjJKcUNqdzhDaTlOWVhSeWFYZ2dXeUF3TGpjMUlEQXVNQ0F3TGpBZ0xUQXVOelVnTUM0d0lEYzVNaTR3SUYwS0wxQmhkSFJsY201VWVYQmxJRElLTDFOb1lXUnBibWNnUER3S0wwTnZiRzl5VTNCaFkyVWdMMFJsZG1salpWSkhRZ292UTI5dmNtUnpJRnNnTUM0d0lETXhNeTQ1TWpBd01TQXdMakFnTXpFMUxqZzBJRjBLTDBWNGRHVnVaQ0JiSUhSeWRXVWdkSEoxWlNCZENpOUdkVzVqZEdsdmJpQXhOeUF3SUZJS0wxTm9ZV1JwYm1kVWVYQmxJRElLUGo0S0wxUjVjR1VnTDFCaGRIUmxjbTRLUGo0S1pXNWtiMkpxQ2pFNUlEQWdiMkpxQ2p3OENpOURNQ0JiSURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJRjBLTDBNeElGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqSXdJREFnYjJKcUNqdzhDaTlETUNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwTXhJRnNnTUM0NE16RXpOeUF3TGprM01qVTFJREF1T1RjeU5UVWdYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDakl4SURBZ2IySnFDanc4Q2k5RE1DQmJJREF1T0RNeE16Y2dNQzQ1TnpJMU5TQXdMamszTWpVMUlGMEtMME14SUZzZ01DNDRNekV6TnlBd0xqazNNalUxSURBdU9UY3lOVFVnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTWdvdlRpQXhMakFLUGo0S1pXNWtiMkpxQ2pJeUlEQWdiMkpxQ2p3OENpOUNiM1Z1WkhNZ1d5QXdMak13TnpZNUlEQXVNekEzTmprZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlGYm1OdlpHVWdXeUF3TGpBZ01TNHdJREF1TUNBeExqQWdNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ013b3ZSblZ1WTNScGIyNXpJRnNnTVRrZ01DQlNJREl3SURBZ1VpQXlNU0F3SUZJZ1hRbytQZ3BsYm1Sdlltb0tNak1nTUNCdlltb0tQRHdLTDAxaGRISnBlQ0JiSURBdU56VWdNQzR3SURBdU1DQXRNQzQzTlNBd0xqQWdOemt5TGpBZ1hRb3ZVR0YwZEdWeWJsUjVjR1VnTWdvdlUyaGhaR2x1WnlBOFBBb3ZRMjlzYjNKVGNHRmpaU0F2UkdWMmFXTmxVa2RDQ2k5RGIyOXlaSE1nV3lBd0xqQWdNelF5TGpBM09UazVJREF1TUNBek5EUXVNVFlnWFFvdlJYaDBaVzVrSUZzZ2RISjFaU0IwY25WbElGMEtMMFoxYm1OMGFXOXVJREl5SURBZ1Vnb3ZVMmhoWkdsdVoxUjVjR1VnTWdvK1Bnb3ZWSGx3WlNBdlVHRjBkR1Z5YmdvK1BncGxibVJ2WW1vS01qUWdNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDJOVEE1T0NBd0xqWTFNRGs0SURBdU5qVXdPVGdnWFFvdlF6RWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXlDaTlPSURFdU1BbytQZ3BsYm1Sdlltb0tNalVnTUNCdlltb0tQRHdLTDBNd0lGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZRekVnV3lBd0xqZ3pNVE0zSURBdU9UY3lOVFVnTUM0NU56STFOU0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F5Q2k5T0lERXVNQW8rUGdwbGJtUnZZbW9LTWpZZ01DQnZZbW9LUER3S0wwTXdJRnNnTUM0NE16RXpOeUF3TGprM01qVTFJREF1T1RjeU5UVWdYUW92UXpFZ1d5QXdMamd6TVRNM0lEQXVPVGN5TlRVZ01DNDVOekkxTlNCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBeUNpOU9JREV1TUFvK1BncGxibVJ2WW1vS01qY2dNQ0J2WW1vS1BEd0tMMEp2ZFc1a2N5QmJJREF1TXpNek16TWdNQzR6TXpNek15QmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBWdVkyOWtaU0JiSURBdU1DQXhMakFnTUM0d0lERXVNQ0F3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXpDaTlHZFc1amRHbHZibk1nV3lBeU5DQXdJRklnTWpVZ01DQlNJREkySURBZ1VpQmRDajQrQ21WdVpHOWlhZ295T0NBd0lHOWlhZ284UEFvdlRXRjBjbWw0SUZzZ01DNDNOU0F3TGpBZ01DNHdJQzB3TGpjMUlEQXVNQ0EzT1RJdU1DQmRDaTlRWVhSMFpYSnVWSGx3WlNBeUNpOVRhR0ZrYVc1bklEdzhDaTlEYjJ4dmNsTndZV05sSUM5RVpYWnBZMlZTUjBJS0wwTnZiM0prY3lCYklEQXVNQ0F6TnpBdU16azVPVGtnTUM0d0lETTNNaTR6TWpBd01TQmRDaTlGZUhSbGJtUWdXeUIwY25WbElIUnlkV1VnWFFvdlJuVnVZM1JwYjI0Z01qY2dNQ0JTQ2k5VGFHRmthVzVuVkhsd1pTQXlDajQrQ2k5VWVYQmxJQzlRWVhSMFpYSnVDajQrQ21WdVpHOWlhZ295T1NBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlETVNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURJS0wwNGdNUzR3Q2o0K0NtVnVaRzlpYWdvek1DQXdJRzlpYWdvOFBBb3ZRekFnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RE1TQmJJREF1T0RNeE16Y2dNQzQ1TnpJMU5TQXdMamszTWpVMUlGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnb3pNU0F3SUc5aWFnbzhQQW92UXpBZ1d5QXdMamd6TVRNM0lEQXVPVGN5TlRVZ01DNDVOekkxTlNCZENpOURNU0JiSURBdU9ETXhNemNnTUM0NU56STFOU0F3TGprM01qVTFJRjBLTDBSdmJXRnBiaUJiSURBdU1DQXhMakFnWFFvdlJuVnVZM1JwYjI1VWVYQmxJRElLTDA0Z01TNHdDajQrQ21WdVpHOWlhZ296TWlBd0lHOWlhZ284UEFvdlFtOTFibVJ6SUZzZ01DNHpNek16TXlBd0xqTXpNek16SUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSVzVqYjJSbElGc2dNQzR3SURFdU1DQXdMakFnTVM0d0lEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURNS0wwWjFibU4wYVc5dWN5QmJJREk1SURBZ1VpQXpNQ0F3SUZJZ016RWdNQ0JTSUYwS1BqNEtaVzVrYjJKcUNqTXpJREFnYjJKcUNqdzhDaTlOWVhSeWFYZ2dXeUF3TGpjMUlEQXVNQ0F3TGpBZ0xUQXVOelVnTUM0d0lEYzVNaTR3SUYwS0wxQmhkSFJsY201VWVYQmxJRElLTDFOb1lXUnBibWNnUER3S0wwTnZiRzl5VTNCaFkyVWdMMFJsZG1salpWSkhRZ292UTI5dmNtUnpJRnNnTUM0d0lETTVPQzQzTWlBd0xqQWdOREF3TGpZME1EQXhJRjBLTDBWNGRHVnVaQ0JiSUhSeWRXVWdkSEoxWlNCZENpOUdkVzVqZEdsdmJpQXpNaUF3SUZJS0wxTm9ZV1JwYm1kVWVYQmxJRElLUGo0S0wxUjVjR1VnTDFCaGRIUmxjbTRLUGo0S1pXNWtiMkpxQ2pNMElEQWdiMkpxQ2p3OENpOURNQ0JiSURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJRjBLTDBNeElGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqTTFJREFnYjJKcUNqdzhDaTlETUNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwTXhJRnNnTUM0NE16RXpOeUF3TGprM01qVTFJREF1T1RjeU5UVWdYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDak0ySURBZ2IySnFDanc4Q2k5RE1DQmJJREF1T0RNeE16Y2dNQzQ1TnpJMU5TQXdMamszTWpVMUlGMEtMME14SUZzZ01DNDRNekV6TnlBd0xqazNNalUxSURBdU9UY3lOVFVnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTWdvdlRpQXhMakFLUGo0S1pXNWtiMkpxQ2pNM0lEQWdiMkpxQ2p3OENpOUNiM1Z1WkhNZ1d5QXdMak16TXpNeklEQXVNek16TXpNZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlGYm1OdlpHVWdXeUF3TGpBZ01TNHdJREF1TUNBeExqQWdNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ013b3ZSblZ1WTNScGIyNXpJRnNnTXpRZ01DQlNJRE0xSURBZ1VpQXpOaUF3SUZJZ1hRbytQZ3BsYm1Sdlltb0tNemdnTUNCdlltb0tQRHdLTDAxaGRISnBlQ0JiSURBdU56VWdNQzR3SURBdU1DQXRNQzQzTlNBd0xqQWdOemt5TGpBZ1hRb3ZVR0YwZEdWeWJsUjVjR1VnTWdvdlUyaGhaR2x1WnlBOFBBb3ZRMjlzYjNKVGNHRmpaU0F2UkdWMmFXTmxVa2RDQ2k5RGIyOXlaSE1nV3lBd0xqQWdOVEEyTGpNNU9UazVJREF1TUNBMU1EZ3VNekl3TURFZ1hRb3ZSWGgwWlc1a0lGc2dkSEoxWlNCMGNuVmxJRjBLTDBaMWJtTjBhVzl1SURNM0lEQWdVZ292VTJoaFpHbHVaMVI1Y0dVZ01nbytQZ292Vkhsd1pTQXZVR0YwZEdWeWJnbytQZ3BsYm1Sdlltb0tNemtnTUNCdlltb0tQRHdLTDBNd0lGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZRekVnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F5Q2k5T0lERXVNQW8rUGdwbGJtUnZZbW9LTkRBZ01DQnZZbW9LUER3S0wwTXdJRnNnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJREF1TmpVd09UZ2dYUW92UXpFZ1d5QXdMamd6TVRNM0lEQXVPVGN5TlRVZ01DNDVOekkxTlNCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBeUNpOU9JREV1TUFvK1BncGxibVJ2WW1vS05ERWdNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDRNekV6TnlBd0xqazNNalUxSURBdU9UY3lOVFVnWFFvdlF6RWdXeUF3TGpnek1UTTNJREF1T1RjeU5UVWdNQzQ1TnpJMU5TQmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXlDaTlPSURFdU1BbytQZ3BsYm1Sdlltb0tORElnTUNCdlltb0tQRHdLTDBKdmRXNWtjeUJiSURBdU1qVWdNQzR5TlNCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFZ1WTI5a1pTQmJJREF1TUNBeExqQWdNQzR3SURFdU1DQXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBekNpOUdkVzVqZEdsdmJuTWdXeUF6T1NBd0lGSWdOREFnTUNCU0lEUXhJREFnVWlCZENqNCtDbVZ1Wkc5aWFnbzBNeUF3SUc5aWFnbzhQQW92VFdGMGNtbDRJRnNnTUM0M05TQXdMakFnTUM0d0lDMHdMamMxSURBdU1DQTNPVEl1TUNCZENpOVFZWFIwWlhKdVZIbHdaU0F5Q2k5VGFHRmthVzVuSUR3OENpOURiMnh2Y2xOd1lXTmxJQzlFWlhacFkyVlNSMElLTDBOdmIzSmtjeUJiSURBdU1DQTFNalF1TmpRd01ERWdNQzR3SURVeU5pNDFOaUJkQ2k5RmVIUmxibVFnV3lCMGNuVmxJSFJ5ZFdVZ1hRb3ZSblZ1WTNScGIyNGdORElnTUNCU0NpOVRhR0ZrYVc1blZIbHdaU0F5Q2o0K0NpOVVlWEJsSUM5UVlYUjBaWEp1Q2o0K0NtVnVaRzlpYWdvME5DQXdJRzlpYWdvOFBBb3ZRekFnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RE1TQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnbzBOU0F3SUc5aWFnbzhQQW92UXpBZ1d5QXdMalkxTURrNElEQXVOalV3T1RnZ01DNDJOVEE1T0NCZENpOURNU0JiSURBdU9ETXhNemNnTUM0NU56STFOU0F3TGprM01qVTFJRjBLTDBSdmJXRnBiaUJiSURBdU1DQXhMakFnWFFvdlJuVnVZM1JwYjI1VWVYQmxJRElLTDA0Z01TNHdDajQrQ21WdVpHOWlhZ28wTmlBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpnek1UTTNJREF1T1RjeU5UVWdNQzQ1TnpJMU5TQmRDaTlETVNCYklEQXVPRE14TXpjZ01DNDVOekkxTlNBd0xqazNNalUxSUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURJS0wwNGdNUzR3Q2o0K0NtVnVaRzlpYWdvME55QXdJRzlpYWdvOFBBb3ZRbTkxYm1SeklGc2dNQzR6TURjMk9TQXdMak13TnpZNUlGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Ulc1amIyUmxJRnNnTUM0d0lERXVNQ0F3TGpBZ01TNHdJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElETUtMMFoxYm1OMGFXOXVjeUJiSURRMElEQWdVaUEwTlNBd0lGSWdORFlnTUNCU0lGMEtQajRLWlc1a2IySnFDalE0SURBZ2IySnFDanc4Q2k5TllYUnlhWGdnV3lBd0xqYzFJREF1TUNBd0xqQWdMVEF1TnpVZ01DNHdJRGM1TWk0d0lGMEtMMUJoZEhSbGNtNVVlWEJsSURJS0wxTm9ZV1JwYm1jZ1BEd0tMME52Ykc5eVUzQmhZMlVnTDBSbGRtbGpaVkpIUWdvdlEyOXZjbVJ6SUZzZ01DNHdJRFUwTWk0NE9DQXdMakFnTlRRMExqazJNREF5SUYwS0wwVjRkR1Z1WkNCYklIUnlkV1VnZEhKMVpTQmRDaTlHZFc1amRHbHZiaUEwTnlBd0lGSUtMMU5vWVdScGJtZFVlWEJsSURJS1BqNEtMMVI1Y0dVZ0wxQmhkSFJsY200S1BqNEtaVzVrYjJKcUNqUTVJREFnYjJKcUNqdzhDaTlETUNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwTXhJRnNnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJREF1TmpVd09UZ2dYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDalV3SURBZ2IySnFDanc4Q2k5RE1DQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMME14SUZzZ01DNDRNekV6TnlBd0xqazNNalUxSURBdU9UY3lOVFVnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTWdvdlRpQXhMakFLUGo0S1pXNWtiMkpxQ2pVeElEQWdiMkpxQ2p3OENpOURNQ0JiSURBdU9ETXhNemNnTUM0NU56STFOU0F3TGprM01qVTFJRjBLTDBNeElGc2dNQzQ0TXpFek55QXdMamszTWpVMUlEQXVPVGN5TlRVZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqVXlJREFnYjJKcUNqdzhDaTlDYjNWdVpITWdXeUF3TGpNek16TXpJREF1TXpNek16TWdYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5RmJtTnZaR1VnV3lBd0xqQWdNUzR3SURBdU1DQXhMakFnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNd292Um5WdVkzUnBiMjV6SUZzZ05Ea2dNQ0JTSURVd0lEQWdVaUExTVNBd0lGSWdYUW8rUGdwbGJtUnZZbW9LTlRNZ01DQnZZbW9LUER3S0wwMWhkSEpwZUNCYklEQXVOelVnTUM0d0lEQXVNQ0F0TUM0M05TQXdMakFnTnpreUxqQWdYUW92VUdGMGRHVnlibFI1Y0dVZ01nb3ZVMmhoWkdsdVp5QThQQW92UTI5c2IzSlRjR0ZqWlNBdlJHVjJhV05sVWtkQ0NpOURiMjl5WkhNZ1d5QXdMakFnTlRZeExqRXlJREF1TUNBMU5qTXVNRE01T1RnZ1hRb3ZSWGgwWlc1a0lGc2dkSEoxWlNCMGNuVmxJRjBLTDBaMWJtTjBhVzl1SURVeUlEQWdVZ292VTJoaFpHbHVaMVI1Y0dVZ01nbytQZ292Vkhsd1pTQXZVR0YwZEdWeWJnbytQZ3BsYm1Sdlltb0tOVFFnTUNCdlltb0tQRHdLTDBNd0lGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZRekVnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F5Q2k5T0lERXVNQW8rUGdwbGJtUnZZbW9LTlRVZ01DQnZZbW9LUER3S0wwTXdJRnNnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJREF1TmpVd09UZ2dYUW92UXpFZ1d5QXdMamd6TVRNM0lEQXVPVGN5TlRVZ01DNDVOekkxTlNCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBeUNpOU9JREV1TUFvK1BncGxibVJ2WW1vS05UWWdNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDRNekV6TnlBd0xqazNNalUxSURBdU9UY3lOVFVnWFFvdlF6RWdXeUF3TGpnek1UTTNJREF1T1RjeU5UVWdNQzQ1TnpJMU5TQmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXlDaTlPSURFdU1BbytQZ3BsYm1Sdlltb0tOVGNnTUNCdlltb0tQRHdLTDBKdmRXNWtjeUJiSURBdU1qWTJOamNnTUM0eU5qWTJOeUJkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwVnVZMjlrWlNCYklEQXVNQ0F4TGpBZ01DNHdJREV1TUNBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F6Q2k5R2RXNWpkR2x2Ym5NZ1d5QTFOQ0F3SUZJZ05UVWdNQ0JTSURVMklEQWdVaUJkQ2o0K0NtVnVaRzlpYWdvMU9DQXdJRzlpYWdvOFBBb3ZUV0YwY21sNElGc2dNQzQzTlNBd0xqQWdNQzR3SUMwd0xqYzFJREF1TUNBM09USXVNQ0JkQ2k5UVlYUjBaWEp1Vkhsd1pTQXlDaTlUYUdGa2FXNW5JRHc4Q2k5RGIyeHZjbE53WVdObElDOUVaWFpwWTJWU1IwSUtMME52YjNKa2N5QmJJREF1TUNBNE9EY3VOVEl3TURJZ01DNHdJRGc0T1M0NU1UazVPQ0JkQ2k5RmVIUmxibVFnV3lCMGNuVmxJSFJ5ZFdVZ1hRb3ZSblZ1WTNScGIyNGdOVGNnTUNCU0NpOVRhR0ZrYVc1blZIbHdaU0F5Q2o0K0NpOVVlWEJsSUM5UVlYUjBaWEp1Q2o0K0NtVnVaRzlpYWdvMU9TQXdJRzlpYWdvOFBBb3ZRekFnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RE1TQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnbzJNQ0F3SUc5aWFnbzhQQW92UXpBZ1d5QXdMalkxTURrNElEQXVOalV3T1RnZ01DNDJOVEE1T0NCZENpOURNU0JiSURBdU9ETXhNemNnTUM0NU56STFOU0F3TGprM01qVTFJRjBLTDBSdmJXRnBiaUJiSURBdU1DQXhMakFnWFFvdlJuVnVZM1JwYjI1VWVYQmxJRElLTDA0Z01TNHdDajQrQ21WdVpHOWlhZ28yTVNBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpnek1UTTNJREF1T1RjeU5UVWdNQzQ1TnpJMU5TQmRDaTlETVNCYklEQXVPRE14TXpjZ01DNDVOekkxTlNBd0xqazNNalUxSUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURJS0wwNGdNUzR3Q2o0K0NtVnVaRzlpYWdvMk1pQXdJRzlpYWdvOFBBb3ZRbTkxYm1SeklGc2dNQzR5TmpZMk55QXdMakkyTmpZM0lGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Ulc1amIyUmxJRnNnTUM0d0lERXVNQ0F3TGpBZ01TNHdJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElETUtMMFoxYm1OMGFXOXVjeUJiSURVNUlEQWdVaUEyTUNBd0lGSWdOakVnTUNCU0lGMEtQajRLWlc1a2IySnFDall6SURBZ2IySnFDanc4Q2k5TllYUnlhWGdnV3lBd0xqYzFJREF1TUNBd0xqQWdMVEF1TnpVZ01DNHdJRGM1TWk0d0lGMEtMMUJoZEhSbGNtNVVlWEJsSURJS0wxTm9ZV1JwYm1jZ1BEd0tMME52Ykc5eVUzQmhZMlVnTDBSbGRtbGpaVkpIUWdvdlEyOXZjbVJ6SUZzZ01DNHdJRGc0Tnk0MU1qQXdNaUF3TGpBZ09EZzVMamt4T1RrNElGMEtMMFY0ZEdWdVpDQmJJSFJ5ZFdVZ2RISjFaU0JkQ2k5R2RXNWpkR2x2YmlBMk1pQXdJRklLTDFOb1lXUnBibWRVZVhCbElESUtQajRLTDFSNWNHVWdMMUJoZEhSbGNtNEtQajRLWlc1a2IySnFDalkwSURBZ2IySnFDanc4Q2k5RE1DQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMME14SUZzZ01DNDJOVEE1T0NBd0xqWTFNRGs0SURBdU5qVXdPVGdnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTWdvdlRpQXhMakFLUGo0S1pXNWtiMkpxQ2pZMUlEQWdiMkpxQ2p3OENpOURNQ0JiSURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJRjBLTDBNeElGc2dNQzQ0TXpFek55QXdMamszTWpVMUlEQXVPVGN5TlRVZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqWTJJREFnYjJKcUNqdzhDaTlETUNCYklEQXVPRE14TXpjZ01DNDVOekkxTlNBd0xqazNNalUxSUYwS0wwTXhJRnNnTUM0NE16RXpOeUF3TGprM01qVTFJREF1T1RjeU5UVWdYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDalkzSURBZ2IySnFDanc4Q2k5Q2IzVnVaSE1nV3lBd0xqSTJOalkzSURBdU1qWTJOamNnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUZibU52WkdVZ1d5QXdMakFnTVM0d0lEQXVNQ0F4TGpBZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTXdvdlJuVnVZM1JwYjI1eklGc2dOalFnTUNCU0lEWTFJREFnVWlBMk5pQXdJRklnWFFvK1BncGxibVJ2WW1vS05qZ2dNQ0J2WW1vS1BEd0tMMDFoZEhKcGVDQmJJREF1TnpVZ01DNHdJREF1TUNBdE1DNDNOU0F3TGpBZ056a3lMakFnWFFvdlVHRjBkR1Z5YmxSNWNHVWdNZ292VTJoaFpHbHVaeUE4UEFvdlEyOXNiM0pUY0dGalpTQXZSR1YyYVdObFVrZENDaTlEYjI5eVpITWdXeUF3TGpBZ09URTBMalF3TURBeUlEQXVNQ0E1TVRZdU56azVPVGtnWFFvdlJYaDBaVzVrSUZzZ2RISjFaU0IwY25WbElGMEtMMFoxYm1OMGFXOXVJRFkzSURBZ1Vnb3ZVMmhoWkdsdVoxUjVjR1VnTWdvK1Bnb3ZWSGx3WlNBdlVHRjBkR1Z5YmdvK1BncGxibVJ2WW1vS05qa2dNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDJOVEE1T0NBd0xqWTFNRGs0SURBdU5qVXdPVGdnWFFvdlF6RWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXlDaTlPSURFdU1BbytQZ3BsYm1Sdlltb0tOekFnTUNCdlltb0tQRHdLTDBNd0lGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZRekVnV3lBd0xqZ3pNVE0zSURBdU9UY3lOVFVnTUM0NU56STFOU0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F5Q2k5T0lERXVNQW8rUGdwbGJtUnZZbW9LTnpFZ01DQnZZbW9LUER3S0wwTXdJRnNnTUM0NE16RXpOeUF3TGprM01qVTFJREF1T1RjeU5UVWdYUW92UXpFZ1d5QXdMamd6TVRNM0lEQXVPVGN5TlRVZ01DNDVOekkxTlNCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBeUNpOU9JREV1TUFvK1BncGxibVJ2WW1vS056SWdNQ0J2WW1vS1BEd0tMMEp2ZFc1a2N5QmJJREF1TWpZMk5qY2dNQzR5TmpZMk55QmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBWdVkyOWtaU0JiSURBdU1DQXhMakFnTUM0d0lERXVNQ0F3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXpDaTlHZFc1amRHbHZibk1nV3lBMk9TQXdJRklnTnpBZ01DQlNJRGN4SURBZ1VpQmRDajQrQ21WdVpHOWlhZ28zTXlBd0lHOWlhZ284UEFvdlRXRjBjbWw0SUZzZ01DNDNOU0F3TGpBZ01DNHdJQzB3TGpjMUlEQXVNQ0EzT1RJdU1DQmRDaTlRWVhSMFpYSnVWSGx3WlNBeUNpOVRhR0ZrYVc1bklEdzhDaTlEYjJ4dmNsTndZV05sSUM5RVpYWnBZMlZTUjBJS0wwTnZiM0prY3lCYklEQXVNQ0E1TVRRdU5EQXdNRElnTUM0d0lEa3hOaTQzT1RrNU9TQmRDaTlGZUhSbGJtUWdXeUIwY25WbElIUnlkV1VnWFFvdlJuVnVZM1JwYjI0Z056SWdNQ0JTQ2k5VGFHRmthVzVuVkhsd1pTQXlDajQrQ2k5VWVYQmxJQzlRWVhSMFpYSnVDajQrQ21WdVpHOWlhZ28zTkNBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlETVNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURJS0wwNGdNUzR3Q2o0K0NtVnVaRzlpYWdvM05TQXdJRzlpYWdvOFBBb3ZRekFnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RE1TQmJJREF1T0RNeE16Y2dNQzQ1TnpJMU5TQXdMamszTWpVMUlGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnbzNOaUF3SUc5aWFnbzhQQW92UXpBZ1d5QXdMamd6TVRNM0lEQXVPVGN5TlRVZ01DNDVOekkxTlNCZENpOURNU0JiSURBdU9ETXhNemNnTUM0NU56STFOU0F3TGprM01qVTFJRjBLTDBSdmJXRnBiaUJiSURBdU1DQXhMakFnWFFvdlJuVnVZM1JwYjI1VWVYQmxJRElLTDA0Z01TNHdDajQrQ21WdVpHOWlhZ28zTnlBd0lHOWlhZ284UEFvdlFtOTFibVJ6SUZzZ01DNHlOalkyTnlBd0xqSTJOalkzSUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSVzVqYjJSbElGc2dNQzR3SURFdU1DQXdMakFnTVM0d0lEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURNS0wwWjFibU4wYVc5dWN5QmJJRGMwSURBZ1VpQTNOU0F3SUZJZ056WWdNQ0JTSUYwS1BqNEtaVzVrYjJKcUNqYzRJREFnYjJKcUNqdzhDaTlOWVhSeWFYZ2dXeUF3TGpjMUlEQXVNQ0F3TGpBZ0xUQXVOelVnTUM0d0lEYzVNaTR3SUYwS0wxQmhkSFJsY201VWVYQmxJRElLTDFOb1lXUnBibWNnUER3S0wwTnZiRzl5VTNCaFkyVWdMMFJsZG1salpWSkhRZ292UTI5dmNtUnpJRnNnTUM0d0lEa3hOQzQwTURBd01pQXdMakFnT1RFMkxqYzVPVGs1SUYwS0wwVjRkR1Z1WkNCYklIUnlkV1VnZEhKMVpTQmRDaTlHZFc1amRHbHZiaUEzTnlBd0lGSUtMMU5vWVdScGJtZFVlWEJsSURJS1BqNEtMMVI1Y0dVZ0wxQmhkSFJsY200S1BqNEtaVzVrYjJKcUNqYzVJREFnYjJKcUNqdzhDaTlETUNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwTXhJRnNnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJREF1TmpVd09UZ2dYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDamd3SURBZ2IySnFDanc4Q2k5RE1DQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMME14SUZzZ01DNDRNekV6TnlBd0xqazNNalUxSURBdU9UY3lOVFVnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTWdvdlRpQXhMakFLUGo0S1pXNWtiMkpxQ2pneElEQWdiMkpxQ2p3OENpOURNQ0JiSURBdU9ETXhNemNnTUM0NU56STFOU0F3TGprM01qVTFJRjBLTDBNeElGc2dNQzQ0TXpFek55QXdMamszTWpVMUlEQXVPVGN5TlRVZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqZ3lJREFnYjJKcUNqdzhDaTlDYjNWdVpITWdXeUF3TGpJMk5qWTNJREF1TWpZMk5qY2dYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5RmJtTnZaR1VnV3lBd0xqQWdNUzR3SURBdU1DQXhMakFnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNd292Um5WdVkzUnBiMjV6SUZzZ056a2dNQ0JTSURnd0lEQWdVaUE0TVNBd0lGSWdYUW8rUGdwbGJtUnZZbW9LT0RNZ01DQnZZbW9LUER3S0wwMWhkSEpwZUNCYklEQXVOelVnTUM0d0lEQXVNQ0F0TUM0M05TQXdMakFnTnpreUxqQWdYUW92VUdGMGRHVnlibFI1Y0dVZ01nb3ZVMmhoWkdsdVp5QThQQW92UTI5c2IzSlRjR0ZqWlNBdlJHVjJhV05sVWtkQ0NpOURiMjl5WkhNZ1d5QXdMakFnT1RFMExqUXdNREF5SURBdU1DQTVNVFl1TnprNU9Ua2dYUW92UlhoMFpXNWtJRnNnZEhKMVpTQjBjblZsSUYwS0wwWjFibU4wYVc5dUlEZ3lJREFnVWdvdlUyaGhaR2x1WjFSNWNHVWdNZ28rUGdvdlZIbHdaU0F2VUdGMGRHVnliZ28rUGdwbGJtUnZZbW9LT0RRZ01DQnZZbW9LUER3S0wwTXdJRnNnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJREF1TmpVd09UZ2dYUW92UXpFZ1d5QXdMalkxTURrNElEQXVOalV3T1RnZ01DNDJOVEE1T0NCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBeUNpOU9JREV1TUFvK1BncGxibVJ2WW1vS09EVWdNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDJOVEE1T0NBd0xqWTFNRGs0SURBdU5qVXdPVGdnWFFvdlF6RWdXeUF3TGpBZ01DNHdJREF1TUNCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBeUNpOU9JREV1TUFvK1BncGxibVJ2WW1vS09EWWdNQ0J2WW1vS1BEd0tMME13SUZzZ01DNHdJREF1TUNBd0xqQWdYUW92UXpFZ1d5QXdMakFnTUM0d0lEQXVNQ0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F5Q2k5T0lERXVNQW8rUGdwbGJtUnZZbW9LT0RjZ01DQnZZbW9LUER3S0wwSnZkVzVrY3lCYklEQXVPVGMzTnpnZ01DNDVOemMzT0NCZENpOUViMjFoYVc0Z1d5QXdMakFnTVM0d0lGMEtMMFZ1WTI5a1pTQmJJREF1TUNBeExqQWdNQzR3SURFdU1DQXdMakFnTVM0d0lGMEtMMFoxYm1OMGFXOXVWSGx3WlNBekNpOUdkVzVqZEdsdmJuTWdXeUE0TkNBd0lGSWdPRFVnTUNCU0lEZzJJREFnVWlCZENqNCtDbVZ1Wkc5aWFnbzRPQ0F3SUc5aWFnbzhQQW92VFdGMGNtbDRJRnNnTUM0M05TQXdMakFnTUM0d0lDMHdMamMxSURBdU1DQTNPVEl1TUNCZENpOVFZWFIwWlhKdVZIbHdaU0F5Q2k5VGFHRmthVzVuSUR3OENpOURiMnh2Y2xOd1lXTmxJQzlFWlhacFkyVlNSMElLTDBOdmIzSmtjeUJiSURBdU1DQTVORGN1TWpBd01ERWdNQzR3SURrM05pNHdJRjBLTDBWNGRHVnVaQ0JiSUhSeWRXVWdkSEoxWlNCZENpOUdkVzVqZEdsdmJpQTROeUF3SUZJS0wxTm9ZV1JwYm1kVWVYQmxJRElLUGo0S0wxUjVjR1VnTDFCaGRIUmxjbTRLUGo0S1pXNWtiMkpxQ2pnNUlEQWdiMkpxQ2p3OENpOURNQ0JiSURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0F3TGpZMU1EazRJRjBLTDBNeElGc2dNQzQyTlRBNU9DQXdMalkxTURrNElEQXVOalV3T1RnZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqa3dJREFnYjJKcUNqdzhDaTlETUNCYklEQXVOalV3T1RnZ01DNDJOVEE1T0NBd0xqWTFNRGs0SUYwS0wwTXhJRnNnTUM0d0lEQXVNQ0F3TGpBZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ01nb3ZUaUF4TGpBS1BqNEtaVzVrYjJKcUNqa3hJREFnYjJKcUNqdzhDaTlETUNCYklEQXVNQ0F3TGpBZ01DNHdJRjBLTDBNeElGc2dNQzR3SURBdU1DQXdMakFnWFFvdlJHOXRZV2x1SUZzZ01DNHdJREV1TUNCZENpOUdkVzVqZEdsdmJsUjVjR1VnTWdvdlRpQXhMakFLUGo0S1pXNWtiMkpxQ2preUlEQWdiMkpxQ2p3OENpOUNiM1Z1WkhNZ1d5QXdMamszTnpjNElEQXVPVGMzTnpnZ1hRb3ZSRzl0WVdsdUlGc2dNQzR3SURFdU1DQmRDaTlGYm1OdlpHVWdXeUF3TGpBZ01TNHdJREF1TUNBeExqQWdNQzR3SURFdU1DQmRDaTlHZFc1amRHbHZibFI1Y0dVZ013b3ZSblZ1WTNScGIyNXpJRnNnT0RrZ01DQlNJRGt3SURBZ1VpQTVNU0F3SUZJZ1hRbytQZ3BsYm1Sdlltb0tPVE1nTUNCdlltb0tQRHdLTDAxaGRISnBlQ0JiSURBdU56VWdNQzR3SURBdU1DQXRNQzQzTlNBd0xqQWdOemt5TGpBZ1hRb3ZVR0YwZEdWeWJsUjVjR1VnTWdvdlUyaGhaR2x1WnlBOFBBb3ZRMjlzYjNKVGNHRmpaU0F2UkdWMmFXTmxVa2RDQ2k5RGIyOXlaSE1nV3lBd0xqQWdPVFEzTGpJd01EQXhJREF1TUNBNU56WXVNQ0JkQ2k5RmVIUmxibVFnV3lCMGNuVmxJSFJ5ZFdVZ1hRb3ZSblZ1WTNScGIyNGdPVElnTUNCU0NpOVRhR0ZrYVc1blZIbHdaU0F5Q2o0K0NpOVVlWEJsSUM5UVlYUjBaWEp1Q2o0K0NtVnVaRzlpYWdvNU5DQXdJRzlpYWdvOFBBb3ZRekFnV3lBd0xqWTFNRGs0SURBdU5qVXdPVGdnTUM0Mk5UQTVPQ0JkQ2k5RE1TQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnbzVOU0F3SUc5aWFnbzhQQW92UXpBZ1d5QXdMalkxTURrNElEQXVOalV3T1RnZ01DNDJOVEE1T0NCZENpOURNU0JiSURBdU1DQXdMakFnTUM0d0lGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnbzVOaUF3SUc5aWFnbzhQQW92UXpBZ1d5QXdMakFnTUM0d0lEQXVNQ0JkQ2k5RE1TQmJJREF1TUNBd0xqQWdNQzR3SUYwS0wwUnZiV0ZwYmlCYklEQXVNQ0F4TGpBZ1hRb3ZSblZ1WTNScGIyNVVlWEJsSURJS0wwNGdNUzR3Q2o0K0NtVnVaRzlpYWdvNU55QXdJRzlpYWdvOFBBb3ZRbTkxYm1SeklGc2dNQzQ1TnpjM09DQXdMamszTnpjNElGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Ulc1amIyUmxJRnNnTUM0d0lERXVNQ0F3TGpBZ01TNHdJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElETUtMMFoxYm1OMGFXOXVjeUJiSURrMElEQWdVaUE1TlNBd0lGSWdPVFlnTUNCU0lGMEtQajRLWlc1a2IySnFDams0SURBZ2IySnFDanc4Q2k5TllYUnlhWGdnV3lBd0xqYzFJREF1TUNBd0xqQWdMVEF1TnpVZ01DNHdJRGM1TWk0d0lGMEtMMUJoZEhSbGNtNVVlWEJsSURJS0wxTm9ZV1JwYm1jZ1BEd0tMME52Ykc5eVUzQmhZMlVnTDBSbGRtbGpaVkpIUWdvdlEyOXZjbVJ6SUZzZ01DNHdJRGswTnk0eU1EQXdNU0F3TGpBZ09UYzJMakFnWFFvdlJYaDBaVzVrSUZzZ2RISjFaU0IwY25WbElGMEtMMFoxYm1OMGFXOXVJRGszSURBZ1Vnb3ZVMmhoWkdsdVoxUjVjR1VnTWdvK1Bnb3ZWSGx3WlNBdlVHRjBkR1Z5YmdvK1BncGxibVJ2WW1vS09Ua2dNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDJOVEE1T0NBd0xqWTFNRGs0SURBdU5qVXdPVGdnWFFvdlF6RWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXlDaTlPSURFdU1BbytQZ3BsYm1Sdlltb0tNVEF3SURBZ2IySnFDanc4Q2k5RE1DQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMME14SUZzZ01DNHdJREF1TUNBd0xqQWdYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDakV3TVNBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpBZ01DNHdJREF1TUNCZENpOURNU0JiSURBdU1DQXdMakFnTUM0d0lGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnb3hNRElnTUNCdlltb0tQRHdLTDBKdmRXNWtjeUJiSURBdU9UYzNOemdnTUM0NU56YzNPQ0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwVnVZMjlrWlNCYklEQXVNQ0F4TGpBZ01DNHdJREV1TUNBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F6Q2k5R2RXNWpkR2x2Ym5NZ1d5QTVPU0F3SUZJZ01UQXdJREFnVWlBeE1ERWdNQ0JTSUYwS1BqNEtaVzVrYjJKcUNqRXdNeUF3SUc5aWFnbzhQQW92VFdGMGNtbDRJRnNnTUM0M05TQXdMakFnTUM0d0lDMHdMamMxSURBdU1DQTNPVEl1TUNCZENpOVFZWFIwWlhKdVZIbHdaU0F5Q2k5VGFHRmthVzVuSUR3OENpOURiMnh2Y2xOd1lXTmxJQzlFWlhacFkyVlNSMElLTDBOdmIzSmtjeUJiSURBdU1DQTVORGN1TWpBd01ERWdNQzR3SURrM05pNHdJRjBLTDBWNGRHVnVaQ0JiSUhSeWRXVWdkSEoxWlNCZENpOUdkVzVqZEdsdmJpQXhNRElnTUNCU0NpOVRhR0ZrYVc1blZIbHdaU0F5Q2o0K0NpOVVlWEJsSUM5UVlYUjBaWEp1Q2o0K0NtVnVaRzlpYWdveE1EUWdNQ0J2WW1vS1BEd0tMME13SUZzZ01DNDJOVEE1T0NBd0xqWTFNRGs0SURBdU5qVXdPVGdnWFFvdlF6RWdXeUF3TGpZMU1EazRJREF1TmpVd09UZ2dNQzQyTlRBNU9DQmRDaTlFYjIxaGFXNGdXeUF3TGpBZ01TNHdJRjBLTDBaMWJtTjBhVzl1Vkhsd1pTQXlDaTlPSURFdU1BbytQZ3BsYm1Sdlltb0tNVEExSURBZ2IySnFDanc4Q2k5RE1DQmJJREF1TmpVd09UZ2dNQzQyTlRBNU9DQXdMalkxTURrNElGMEtMME14SUZzZ01DNHdJREF1TUNBd0xqQWdYUW92Ukc5dFlXbHVJRnNnTUM0d0lERXVNQ0JkQ2k5R2RXNWpkR2x2YmxSNWNHVWdNZ292VGlBeExqQUtQajRLWlc1a2IySnFDakV3TmlBd0lHOWlhZ284UEFvdlF6QWdXeUF3TGpBZ01DNHdJREF1TUNCZENpOURNU0JiSURBdU1DQXdMakFnTUM0d0lGMEtMMFJ2YldGcGJpQmJJREF1TUNBeExqQWdYUW92Um5WdVkzUnBiMjVVZVhCbElESUtMMDRnTVM0d0NqNCtDbVZ1Wkc5aWFnb3hNRGNnTUNCdlltb0tQRHdLTDBKdmRXNWtjeUJiSURBdU9UYzNOemdnTUM0NU56YzNPQ0JkQ2k5RWIyMWhhVzRnV3lBd0xqQWdNUzR3SUYwS0wwVnVZMjlrWlNCYklEQXVNQ0F4TGpBZ01DNHdJREV1TUNBd0xqQWdNUzR3SUYwS0wwWjFibU4wYVc5dVZIbHdaU0F6Q2k5R2RXNWpkR2x2Ym5NZ1d5QXhNRFFnTUNCU0lERXdOU0F3SUZJZ01UQTJJREFnVWlCZENqNCtDbVZ1Wkc5aWFnb3hNRGdnTUNCdlltb0tQRHdLTDAxaGRISnBlQ0JiSURBdU56VWdNQzR3SURBdU1DQXRNQzQzTlNBd0xqQWdOemt5TGpBZ1hRb3ZVR0YwZEdWeWJsUjVjR1VnTWdvdlUyaGhaR2x1WnlBOFBBb3ZRMjlzYjNKVGNHRmpaU0F2UkdWMmFXTmxVa2RDQ2k5RGIyOXlaSE1nV3lBd0xqQWdPVFEzTGpJd01EQXhJREF1TUNBNU56WXVNQ0JkQ2k5RmVIUmxibVFnV3lCMGNuVmxJSFJ5ZFdVZ1hRb3ZSblZ1WTNScGIyNGdNVEEzSURBZ1Vnb3ZVMmhoWkdsdVoxUjVjR1VnTWdvK1Bnb3ZWSGx3WlNBdlVHRjBkR1Z5YmdvK1BncGxibVJ2WW1vS01UQTVJREFnYjJKcUNqdzhDaTlHYVd4MFpYSWdMMFpzWVhSbFJHVmpiMlJsQ2k5TVpXNW5kR2dnTVRBM016SUtQajRLYzNSeVpXRnRDbmljN1YxTmordzZidDMzcitoMWdLNnhaUGtMZUdqZ2RzL2NJRmtsd1FPeUNMSUlCa2w2MFpvZ013SHk5Mk5YbGUxektKSzJxNnZ1blNUekZnOVZ2RjBrSlZMOEVpVlZwNjZweHYrZXExTlY4WWVYOHQrNkljNGZmNStmL3ZPcC9OSHk0WS8vL3ZUMjYxUDEvT3NmbjM3elBUeUg4Uithdmg3LzRkZC9ld3JQU0NZOGQrT1hmdndjbjJOM3F0TDRLVHovbXAvKzZaZnhVLzA2OHRIR2laRi9mdjcxYjU5KzkrdlQzeitDY3QyZkpzTGpweXZsT0x5K2hQbHZ4KzlOZkEwdGZHMWVYenI0V3RGWFpIdjhXb2ZwYTJpN29SMHVxQUJUQ0svOHkyYjlGa2NxSWNIM2xoQ0ZtaEMxeEdGSzU3OXRZcDNTaFBqN2lLb21RZ0VwdmZNL055T3lpcjd5YlBTRVBQVkUrc2p3eGQrR2ljMk9SaHdpU1FIcE5vRy9kcS80MjVFcmxGanh0M0kraU9melRBOURESDEvUVVYai9mN2FFeDM2eC9iMWlyODY5WFVjaHorTm8zb0ZZbTluMlZSVjE0ZTZVSUVRNlpmcC9MVnJybi9ibkxHTENaZmFLSFJYVEVUemlnT2ZkS29udFNFdCtuN21OSGJMMktRZU9IK2NpS3lZY0RsckhkTWRsMXVnSDNmbVQ2ZkZoM0p2YW5jSUJWYzQyWXk1SGp3dGtMTXU1aWE5bzVLVW1vczhUa3VrcDJrbDhZb0Jwb1ptdmVBcTJLb21sMXRrb2NUd0duRlJmS2ZaWWVOVTF6dzViRy9TTjJraHlCcXg5UWxKL2lzeXlRWWpEWktuRjRIS01rVTNPcEQyTkxUcDdKTThCOUxXcHlhZXdiTURhWGg2M2trTEM0TXFGUnhITEJYclRSalFoblJmR0NxeGZJdGZpUFV2L1Z4cE5XSHl4UXFRdHNNZDQyMlNjZjcxSC81Ni9OZlFWYy8vUGNrdjdwSmZqT2sweWErcVN3SGFETlpWR05vUkZYNFkraW9WcW5NYUVRN0RSdWpSOXFkNkoyRnZadllIUFNtTk16SlNqdVBmMWQycEdZYWhhN2VJai96R2V2ekwvbm5vNDZscHpoL3owNFRzUExzTndqOFJqa1ErQVEvRFA1Nys4YStlL3pBU2FydDBEc1ZpMG9MU3Bwa2pSQjNSR0pmKzVtL3l2L3o3djRibjMvN0h5UGhsM3ZvNjFGMDlvaG02MktSaC9URE8yNGluaTJlTWZUdUxKRC9GR0U0aGpEZ2JBSDhpT0ZUeDFIY1QxY3VvcmtnSS9QSDBiMzkxbWIzdUZPSlp6ZnArVnJqOEZHYlJkd0QrUkRBVFdaQUlJdWVaTzZBZDhaVGF5dElPSUZJSnhaU21nc09LSmV5aE9KSnM5K1RJd0JrVmNRbDVPU1dLN00zd3RuQ1I0RzlRamRVcEh5WFJOYWU2dldnQlNtSUYwNVJiRXJxdktJaEs5V09OUkJ4VHNYNWFYdTN6TU14emNDVWR6azVsNkZQZE5iOFVTWW1RZU9FL25EanVrUkU2K3lVRi9SaWh5N2dKZzNJWm9uZU9ueFBSbStzR3l3WGlwREFjMm8wODhWb0xyNXovTWVKWVczakZXTGRqeEVYOE4ycWVwL1gxMEoyNlVkOUNWV3JlYlVxL3V0cStPZnVKeFhOZDNlQUsvaVF3R0g3QUFkREZ2bTh3b0pHYU9HaG10OFVjckdEa1FHZnNRMlV0cTI3TjlGTXJDdDE5N1I4ZWNtQ05Zd0V6RHhpV01CTVh5ejFUTEQ5Y1pIeXQzNHpSd0trSjV4OW45dGNMblAxNG5JelgrTk4wbVlnWkRZSVZQeDRxR0dxZjVyOEY4Q2VDaWNpS2hJazh5SStIYmxhdWpXWGtUN0UrbHhjNXgzNnFtUEVjSXh6SGFjMzlQa0dEWXdyVnFESG5rVTFjMVAwY2ZRTDhrK0NobjdYL2svQWdmT2JpL240MGpFNmhyYzlzM2NtY3dUckp6cm9DT0lvSDBBQjRVZldtSFpGTWZ6Qkd3QmNoVldjcTFiTFdaK2duUVp1ejlUN3JQNklBOEJMcWg2NmZlVkJDL1c1Ulc0R25PZXZPRXVuSDQ1SCtwSGRMN0JmSEwxZTVBUHlUNEExb0NLQnBWTVZ4ZVZpWFpSMkJoNUJPTVoxSENQQlBncWNXMHFzVkRZTHZyTHhJcFJhdXVJNUZKUUFqKzg2ckQ0dXlnWWczZGxUZWdkSkc1YjNsQXJwZ1JLbFFVRFZRMUd5SzBzaWRLMDFiaHFTZDF2U2tPYU1CSGM3ckZSSXpETUZsWXVZTlVoWW10MUkwUjNEZnBkQ2pYV25kS0FmN2xFYWVhMUVTZERLRm1DaFRFTE1qUlA3R2JFU3Z0aW9xdkRMMWZhY3RGTUZVOVVZREZCSWNwN0tsRllCY2lQRlU3MTZGZDZSRHdmczRyeEVXeEpoVjQvNUs0UFVSR21Wbnd5MEt4M2VXOGlYVjhuY05pdEp3US93NTFjbGk3MHh1SmJscHFwOTczaVZQZmJBaFNISDJQN05WM3JCM29oeGNiRng1aGlKV05KOWowaGlkWkhUbkxwYXp1cFJkTEdraFFPM0ZScUhjamZqYU5sYnc5N0h3dDhVMjFzdGdHNnB4REpTVkYxc293YThON0svVWIrNWtpYzFmdVpNbC9LRHRCcWNGRy95dExON0pjbmFKdnJxVlJhdnkvZlVuTGRLbUVhRlRvUVhSOTdHNHZWVm8zNXR2U3NscjFtd2NOZ0lyUHhZS1VsVmYzQTI4dUg4SGo4dFlUZStHSnhzN29UU2cxdlBIZ2luNVd6ZElraktTNjZPMXJJVWlJR2RWQ2g0R2Q1R09obWozSHJGa282emhPOEtWaGZnZ0lwZldWVjUvOWRkZlhyR1E1YTYxaGt1eXJOWi9HTDdrWVl4bUFlOHVrR25VTGx4Y1M1MEZGd0JmdVRDNCs5RDV5M3JHYTJhd2dFUWt0dk1ndXpTTVljQnorZUZjbU5IUzZFc0pMblphZXIzQ0d5ck02R24zdnR4V242THNUdWtNcDdrQVBEZGsrVERCdzV5cjVhZDZXR3RSSy95VDRGMHpPdzZTRTRKM2F0MHRhWDRYVGxWOUpyTXJzeFJHc3BHcFk3aTkvNm9odXFsMzdZam9PNkMwYklybUtETHNQYS9uWjJreS8rUFFUM1M4YkRaOHZOaU5SeVdoRis2VjJtK1FoU1BvbkZoaklrTUJndDhFdUR1azhwYktxRzJuczQ1SFhpdTBBR0d0SUJ3WEJlSjU1R0pKMVloOCt0SXFxMFYwT2dxdC9VWVppZ3g3Um8wWGF1b3RGOTdkazc3ZmEwOHNGUjZZcU40MlZqVHJlN0I1T0t6dkw1Mm43MDU3YWFudnpsZC9ZUlZNMzZyeG5xcXBiamFiSHNkY0NJQUd3RGVFSkpJTHl4OHVjR001TWhzcWYxbDNqYWFyQXlUR29tNmJxZlhxdWZ4d3RpMzk2UnhKSk9tSGgwc1gwU0Q5OEFwbjI3TGlFV3djbldwaDRhd3BuZUUwRjRibE94eVNkTzNjVnBLZlFocm1EUldBZnhKOGlITkFSbkpDOEFORGtuNDJaWmFSbFgwT2ppRjVjTllmbW5hT0xFUGZYZG9KMC9abTMxNzNpSEpMSGFna3lBM2hLQ0RFODBqQm9YdTh0K1RHbWNOR1g2cDhORzlzcWNkLy9mcm1qR3A5c21PcnloWEdKZ3pBNjZyMUxKaEthcEsrYnFnSXpqeG9yTzAwb3pxMWJCb2tncE51NnR3ZE42T1NDOHRjTG5DY0M0TzdEMTFTMlpHclpna0JpYkhPdktuV3pmRm9wcHRLWGU0SVIzS1crZjVnWHdZVXlQY0JCWVN6UWRFTnpZZGhtcklwZm9RakpzdVUzUkRoa0RnZHZaamhKRkRBSTlnNDVuYUhlcTUzc050ZDRTUzNtSmJSb0xJUitHalBRYXo2VTVwb3RXY2VsajE5Z0g4U2ZHMlB4NTREQWorczV5Q3VKYkc1R0pIRTdwYlliT2tPNUJSS3FDK3J3Nk9LTi9kTWIxRUJTTGxCQVFCT2tnWThOMmdBZUdWU2dkUXRCenBKQlJDT3NrWThEOVFCSXZPVGxlQjRuMXdhdFNhZFR6QTh4N0JVQ0tZT3RYUjJEYUZEK0NmQlk1emJmVDRKRDhMdlBkbElwcGpzcHRoUDlyWlZxZTRndXpENFBGVGpTNkxjYnVMZGpPZzF1TGdiUGRPeE5leUFrTnU3b2tEd08xRUJjRS9FaVo2b04rSkQyZmJ6S2hPZHMxRVUzN2dxS3pCdFRLMDRyUHZkNmFHUXJUUHZBbFZaVy9VRXc3dDFqWCthVXBDUzU1VjVCbW8rQ2MwVm9mQXVVNG5RbUpsQy9DM1RGWVhvTHljU2F3aVJuUkN5akJrNHNnVHc0VVFDT2JCakw0QXpEeHByTnlRU05BOUdpRVZ3Y3BJNmQ4Y1RDY21GRlFBdWNKd0xnN3NQWFZMWmthc1cyOEd0Q01MaEgwMGtLUERFaEFFRHp4Vk81S3lBbEJNSnBFQUpBMUFBdUloczlJam53NGlSc2lsK2dCTW1LNmE2SVpFZ2NUcDZjWVd6UUZjOHR3VHhwQ1hyd1RXV3ozcHlEZUJOZTJtSDUrWmxBait1ZmhlYk9NZVZ4cGJpeG5reDJqVVFwZjRSVTBUSDM3MUd4NWYxN010RUo4bitEWlh6emsxcTdwa2JrRXlGdnE3Uk44QlJlSWpua1VMRnNQekhTdFh1aHpvb1ZONFhsaklWRWgwWDZ5NFplNU9yV3ZIczJId0FLelVsQWgvMS9NU0JiU3dKcmdRbGtvZURucC9ud2JDSkFxN0ZKY1pVdU1KUXFXWFhZZ05jaTBzRUY2cWtzaU5YelJnREVtTTU3L1Q4eElQdzhHdXBFT0JJenZJZ0g5SmpMeFNFaDZlOWh4bk9ka3UzWngvU0FtcmhxcWtXaU1teW1NYzlQNHZUMFlzWlRnSUZQSUtOWXd1NFdZN0c4dEpaNFV5c1hVN2FrYkloZUNjUDRNK1JoN28vZFNPbUxnZ2VBTjVXcHpSVk53S1hFQkU4ODJCUldicWptTWdLSHBGZEw1dVFOQmJ3Y3JveXhOQzBreU9PZlJ1N1p2eVFodWthRCtrS3A4c3NZdGdNYjlvRmZxZERmYUFoMmRRY0lmeXJWMmJUQWVBYjlGMXlZZW4xQWtjdURPNTI2M3M1aGl5V0FZNVlVMnRBd3RxdTg1YmRzY3h3SW1Bc001anFuZUg4K090RjFhRVRFT0RVSVRpcXJYWVdrY0NIOXdYV0E1WVREM0d1QWdMOGsrQmR1bHkrVXZHQ1EvRGo5Z1hXNHJSMTZrVVVENHZXbzlhT0o1T29EaGJWWmJkOXpxOUtsamxKY1JlRTA5Zm5Va3ZmN0VoWHR2RzVCMWo4ZzNleTAxSzBQQ2EzQXpMbzE4V0lvd0E0NGlEcm10RTdEM1BnVnJTaXNjdHYrM1FGSzRxZU11czhtQmM1NXd1RFYrWGRPcVcwY1JtZHAzZmw5V012OXRsZTJWN3J0L2tlcTRuZmxtYXI5aW1iNWd6aGZRT09ZRVdENE1lWnVmNXlLcjlmcmdzNDFPam9uMDB0MU1IcDFDNlAwdG1iUEw2T2xvZDNYdHpqSC9qSEc2ZDNrcWZRWW1ya1NUSC9hdGV0MWZEK0dzUkVPMjJ1WlQ5cGZjOE9hb29sUklTaUpnZ1lOQ0NlNDhFRUZvZUlDMHdGZ3A0aWRNMnM2YnpGalBBSGJqRjM5YndCT3NjVG5YdnkxRyt2RnBlUCt1ZkpnMmRLbFF2UXZuS3kwcnN3MW5lSC9xVnVjaWsyeDA0a1Z0NXBlMXdkMnhmSXZ1eHE5ZHlyeGF2MlpWTmJFWTVyQnZGb2EwblFxY2ZRdnA5aTcxVDFjM29GOEUrQzc2Tno5QzZodll1bFgrNTFuUE5kT0RLQUU2MFBaUnhpdS9ESlF3UTREMUVmK3IySENGVGtFT00zMTZqSEE2Y1RmTTlVZXROMlY5Qkc4NjdPNzFRN0c4ZmJqVjg2TWU4QXAzazM1SEhuZVVjcWN0NURaYWlXT3BSeGlFUFNWUXZnTkVSajZIY2VJbExaVnExZ2l6ejhidDlORTlONDUyb0J6ay9UOWZQVnFqUS9DS2Y1QVR3UG5CK2tJdWRIZUxYeWFzVmZ0cExJVkxZd09hdlZQZVUrL25GczNFVFFiaVJTam10akVORzZFUWRlOFlLQzFnVTZDcnFmQnl3RURYQVVxS1VBOXhVMFVTbmN5RmZMcG1zUkx0czFjQ3NrSmpRTCtJYXlxZVRDS2gwQzNLcmNBeHNxZjFrdklwcEZRVUFpUXBLRFo2bEV4WExkZXVHSzVRcm5MR1BGbzJjWkI2YWFjaDFyU21jNHpZV1JBeDN1eFppTytjeEJZaGlXeTlvQS9vbndFZWxwR0g4YStNQUlnUi9YaTFGWGFlNTNOL283aFgwdDJ5QzQzYTl6emwwZnVpRms4MlFRbGczSXpNcGsza2NzS25sbEJURzBqajEzN21VNTl3dkUrc3Y5QXJmRTVIVTdLdExrUC91N0dkTjFUV1RIbk1BaVdGd01JZ0h3NGExTzVNQzJKUUJuSGpUV2RsczZqVm8yYlFiQmdaekYzWEZMSjdtd0xOb0N4N2t3dVB2UUpaVWR1V3JHYWtWaTJUQzNWNEV0NXNKRHdJQWRtQUE0a2JNc0xQY3FJQVZMT0FBblRJRG5GbU90U3lHN1VydkNlYnBYUEpLTlEzNnJIbTNYOVZyYXpMTzN3SGxXVTV4ekdGSUZCRC9RYjlWeGJoWXdkdnpFUHBwL200QjdsNGg3L2VEb2wrcjlON0pOVnJoTjkrd2hBNWxuWjBXV1F1YUZDdUJaY1g3emQvL3lYLy8xcjMvOHcvUHYvN1I4RHM5Lyt2MGZkRExaWEhLV01obHNIVGNVQlJlV1FkRElXZHp0YzA4NnRXd2FCNEtuK2FQZ0R1RDd1TkNwWmNkMEFSekdUSGpVdVhDVlVyVkUyYlZjQ3h6MUF2RVFGNnJHWmtlL05hTUVTQXhidFZ2dGhNVzAxRXZqd3JLa0g0WVFzaU8wRlk2WUVNOE5SbG1YUW5hbE5zTnB1Z0dQWU9PWWYwcHB2U2FOWmkrdDE2UWh2S3ZXWlFSb0VQeEEvMVFFNEhJSFNkWnV2M0ZXRWtSR1kxOE1YTGEyOEptcHE1UHAydnFlYm1jVlpYWVdXaWs3WG4rcHZPdGZjenRSdWgya2JxMGtTMGNNdG01WS81SUxhNTFyNUN6dWpyc2Q1TUphOHdLK3BBZ0NqMUwwMk90Mm1BdkxJZ0VjeGt4NDFMbllhNmhJS3gyRHRNQ1RldEdqNEVMVjJPem90MlpyQUlsaGduYXJuVENFbG5wcFhGZ0c4c01RUW5hRXRzSVJFK0s1d2RicVVzaXUxR1k0VFRmZ0VXd2NjenRkMU4zT0N1ZFpIZFIzSVFqOFFMZlRMM3VXdXc3aGJONWlqbWVYRjFmU0QrR2VybVFWVDNZV0Q4aER1VWlId0o0cnFhVXJRZXJXNmhCeVZ5NThrZlNQcm1uSmhiVjJOWElXZDhkZENYSmhyV09DaDlrRUNPNEFmdHlWTUJlV2xRRjR4THRwQUUvOHdvVkNySldPa1ZuZ1ViMVFTSENoYW14MjlGdXpINERFTUN1NzFRNTQ4TlJMNDhJeWVoK0dFTElqdEJXT21CRFBEZlpUbDBKMnBUYkRCLzI2UmNuR0lWY3lqbkN1V1pHcEFUak5hcHJmdnVlRFlRUituQ3RKb1pzUE1NOFp6TVpsOGRiT2UrQ25oWjNIMjhzM2d1UUdVWmZ1Nm5xR1h0dlVNSHo0SktmMVROR0NoTUNlNjBuUzlTQjFhelVKUFVINkdsczMyQURKaGJYV05YSVdkOGRkRDNKaHJYdUNEL29lQU1LUHV4N213ckpLQzV6R0RIaU11WENWVWpVeTJUVktWempyeFlwSGNLRnFiSGIwVzdNM2dNUXdRenZWam5qdzFFdmp3aktTSDRZUXNpTzBGWTZZRU04TjlsYVhRbmFsTnNOcHVnR1BZT09ZNjRuUWxBQW54d0JPSjhwU2s3UTZEb0VmNkhxU2JFcW91ZWRMWEJ3bGR2VEZQdndiYjlqSWJnQzVZVk5jSEUvOURlVUxiK1RkeEZOYTN2VUM4cUtzdTNWSzNQRjVIVUhJbjBuWkdUSTRsMGhOZDJqUmhRNnlyVFh5TGVrdnZTY0N4Q3dmVWZ0Q24rNUdaejdMcjdpY3luNkM3Ykd0SDlQaTRaM1JyMFpKWUhteTR4ZEtVeVBkaFhKeVkxL3JCM0hnT1FXREJ3MTh3R1ZwWEZnT1FzQ3A0OHRnNDhxRjk1S0tUaTJiL2tIQXljUnIzTjNnMWlRYmx2c0MrQ29TZzcwUFhXR3lvMTZhWndJa2hzUGFHUThLdDBtaEFzenBDa2R5aUVld2NYeXExNWx3cG5TRzAxd0FIcDJMblV1d1NSeVVBbEl0VTA1TnB6VWdFUGpvUlJQTXczck9obmxBZURjZjQvb2tOQUF1TDVwZ0toUVNyVVFBalBkUEVBM28xbjNJUlJNVGpldHMzOHZTcnhxU1RjMHhoVTlvdmxDc0tiaXc5QnJndWdxbW96dGE2aGl5dmd4TXRVWWtwTzA2YjlrZHl3THYxSll2dVo2T1hUU1Jta1dQaGJ4N2VGZ2E0RjFhTDM4QU5BaCtZRm93VXJ5ZXlmNjVqeHkvaVNLV2RvM0R4dHV5VEsyaHUwckw4MkVVejcrN0J6Tmp4ODBCc3JPdE0rbVViMlJWOUhiUC9zc1I1QUJhOTk3V2pjc0VaSld4U0FadURlRGxId3VSRk1WTnFVek9nWEQzMWJPTmd6M0hIa1dUNlp3bncrS1lQa3BCZVlmV3U0V2hlR0s5c1FmWXVJZWdpcm55ZE4rZmpQS3h6QmUrU29Wd0RhKy9sUG05UEwvZ1AwRiszN2Vmd0pabk81U3lyRFNnNmVuNS84UGV0MU5iOXdvdUZyamhLNWdObGIrcyt5TFR0d0NTRzF5T3pseDJCelBEaVF2RElSNHV5dUZ4Y2l5KzRYRnloUGNEaExNckdnUWZ2ZVlwZGUzY3AwYjNud0NjN2o5SmZRKzlGeXNhQkQvcy9wUHBYdnFyQ3U3cWJoQUhSZGs2eU50eGhObjF2ZXptNFNTL0IzelBIaGFXZE1aMFl3bUltL1ZGRzRCL0VodzFBdkd3cGp6b1BvQzBubHFZRDIxdlBidC80UDZqTDcwZzJsTFplT3NPRDg5cFMwcXg4dDRsRHdHakJlN21WTHlsQ0o0OHV0S3B1UzltQ2RjcjMrY1hMeXBJblhiRU1BM1hEb2VVWjlnWGRlQ2p5NXBtVDBlWHc1Z3dqNzhiaE1ZREhEWGJXZ24zUHJvTVZLVEdmemtVV1AxS2RweGg2VWpZUnpaZktMa2lCMWppUWhZSTNxaDFPY0hEd2ROMlBBOVdJb3J3UmkvTUhiODNTS2VXM2FoZ2dUZDZyWk81VUNXVkhibHFEaCtRaURqZ2FLMlRveEY5NmhDTzVCQ1BIbzdzbnVwR3IzWEtLWjNoTkJlQTU0YWdpQ1o0Q1lGSDI0bERXMEpnZ0RkVnE3VXFFdmh4WlpHbVdrNjMvNTg1d3IzaFFUWTNRSjFjdFR6UjdXVjQrMkkxWDdFbVRibWFDZElzRWRyVEdiRXJ2T21nblFYd0VIeWZlc2NVNWhYUnhIYk5maUM0QnpnRi9VMkNPMThSRDhMdkhQWERYWWROM2N1NkgrLy9iN3p1em5HZCs0clVOKytGcFovL3l0ajlnL1hTZVB3bFdKZkJPby9wN2RXOEQwSzhMY0VLSVY0QzQvWUlXWDNidkFvSWg4c00vOEMzeitOMzU0R1U0bjAyeEJ6UzEvS0h1NWJkMWxBaE8xRldHUnZJNE92b3ZxWkdLanNoRnNHMXZWWEJ3OUZZbStiQkNLVUVYRHRSYkV5Rkt3eVZXbllEUFlDcnhWSG1RcFZVZHVTcXhYQXJFaXUwODNvNDlFQXlHK0VCdTNza1p3V2VoN3RkUlRDaUN4RGdSQTN3R0Z3Y0VMaGFiNWFDdmNKWklpc2VnNHQ5RVg5VDllc3BMNXBncUdzaVBDYXRWWmJBRDR6NGw5YTUvM1dYWDhTMnIrN1l3QTlDejg2cUJTa3JaOGNJN0RYd042S0JuNmhieTFKb2szSzJSOUxmWTdkMWF0azFHZ3NjeUZuY2ZSZ0xQRHNHQWVDOWVpTHJsb0hxNUxLNThnbE9mWG1BUisya2RqVk9wWlpkdTdUQWUvVmdtSmdNVlIyem83eWF5UUVraGlYYTZhQ0lCMDkzWmppU3MremtZUWRGWE5qNnRjS1JHdUxSdWRndDhGNDlPMVlJZG9hVFJBQ1B6c1ZPQjRVcE8wMHdwT3dJeDlRYzBJaU0vVkVPcXNqWWYvYnRGN0ViRXI3d3U1WGtIdWpJS0xQYy9SMExtMGt1RmVxMnMxeElNTWNrOTBpT2k2bnBteE1mL0hua3VLMTNjMjU1YmgzL1ZzekVqODAxd1Faa3g0aVhpNTV0ZTBzTkhtYTgwc3A0QmFsYlZ0b3lMZ1piTjhRcmtndkxoeXh3dzhReEc3cTl6NDUvQURqVlBYdUR3dUY0aFlSdE9BS0NOK3VOd0lTbjBSN25jelZPcFpaZE43WEFXN1dmUjB5R3FvN1pVVjdOQXdFU3d6SHRqVmVrZTdSMFo0WlRSZHR3bThmakZhNnJXL3Exd2hPOXBkWnZjTEZiNEszYTIxUUlkb2FUUkFDUHpzWE9lQ1dsdGErSUpqaXRmVVVJMTkrbGJJeDM5THlwdUNWZWFkcnoyOFY5OWNoclUrSVE0NUVZNUMrRmRpTDg1eDZFeUtqeGtFeGt2OWs0VmRHc3dqdzZTRWxSYXo0eFU0cDBHa1pMRXFNdzZBRDJncFJPQmlsSTNUTE53cUlnZlkydEc0SVV5WVhsT0JZNGtMTzQrekNNZkhhY0FzQUJFK0U1UGxDZFhEYXRQOEhyVXhPbnBTM1pBL2h4bnlXNXNIelRBa2VoSXg2YURGVWRzNk84bXRzQkpJWTMyaHVrSUErZTdzeHdKR2Y1eXVOQkNuSmg2OWNLUjJxSVIrZGl0OEJSSG81Z1o3anhab2ZCeGM0Z3BUVk1UV3VZR3V5NkFEU2lHZU5SUVVxWDVvT05mMFlYOHNTdXEzOVVVUE9YdXNxRFE1cU54L2MwZmRxSWd2enpOSnY3L2gwRk9mR2VRUTQ5eTJOYS9nVThraDZ0UUNjcU1RajJncHhlQmpsSTNUTHRCR2Y2R2xzM0JEbVNDOHZ4TEhBZ1ozSDNZVGlKN0RnVmdBTW13bk44b0RxNWJIb1BBZGVlTFdyRVUxQUhmWjd4RWxSanZBVEZRa2M4TkJtcU9tWkhlVFczQlVnTWI3WTN5RUVlUE4zUk9oa3RYM3M4eUVFdWJQMWE0VWdOOGVoYzdCWTR5c01SN0F3bmlRQ2U0OTJlSU9aKzRZNWFUZ0hPTGFkRHErNHpJdmlCUWM0UTVsTVZQL3VJVjhQN1RQSnQvUmMrZGt1YlVCdG5ka1RUWGZJQ215KzgwbjdmZTZIa3E5U2hsNEZmVFZIbC80ZGlWbWNGVXB1Ulg3RFArLy81bExPQzA5dFRYRmx3WUtVZFdWcFNpVW1UUmhrNHV2RG9NdGxxbGJQalZrc3pUTjRXd1VmN1Jva0QyNXV0Y01HRHh0b053UlhOZytHMUVNNk9SK2Z1dUsrVlhGZytkWWJUWEJqY2ZlaVN5bzVjTlhjSlNBd3Z1amVzWVYrdVR4M0NrUnppRVd3Y25HcWFDV2RLWnpqTkJlRFJ1ZGdaMW93L2hqSVdoUzlVSnIzQzIzSHBYdytMb3B3SS9MaXdwcTE2K2NxemZJTzRPSlJsM3h5NWNZUkZoQVJZN0pGSFdNNFovZVgvWDlxKzJJZzh5R2l6MjFGdWtvRjZ5b2hJVktkc25rSzFjZk9qODR6Mmozb2lWTGtLNTRVdnJIRW1uYlZBdVhCU1NpVEV1Nzc1QStzMU82YXVYS0RTQWhiN1Fyc2RIbkpnMnptQ2ErVjl3Y05SaDBmellOZ3pBVmNyNi9wVXVNSlFxV1hYMmdKYzNUSmhMbFJKWlVldW1pRmRrVmoyZGEvRFl5dXZUeDNBaVJ6Z2tXd2NuMnAxczBKTzZSWE9jN0hpTWJqWXAvdlRqNGZwUUtTNEhRamdnbGluTzd6dU1BK3JHeU1lMW9zV21RZUV3eTB5aUFiQTVRV01USVU4K0VvRXdDZ0VvZ0ZxL1pBTEdDY2FmRS8xVjAwc2FFZzJOY2NVUHFGWndNZHZSeXE0c1BRYTRMb0tNaHVITG1Ca0xkQ1dnVlJyZFNLNjR4TkJ2OWFsMFJuU09NU0VPdy9xTEdaMzFoZDRaeHFFTHlsRlp5aEZaeWpGUGpidUduQ3ZjejVkUTN3cHNYNXBhVHIvK2c5L1BSbVVVZmYrZTJJdzdzMElKcXMxbXEydVgvYVk1NHhnRUtkcngyQWRZdldwRHNUeEhWMmlTTHVTU21reitCZjBJYVdwMkVmZjVCSGhSQ0hxeHE0c01sbExPdUlxSTc2ZXoybnhubXBreVdaSzNIUDB1elVUZU1CcCtqQXNXbGNLVlpha3FyM1hTL3h5T1RNeDhUMzBsL0QvVGRhYys5MkpoZGpsNTRQYkloZUtpVXFvL2kzL1czZDdsdGRWT1dtWHZPMHgrblhpTWVGQmxSaU10a3NrOEw3VnNpZTRFMlBCck85TmJqVUlYdTBjTjc2WHE0VFU0STEydXN2VG15MHZxWnZQODI5VzJqdWFiZThoRFA4aW1FSjBiajI4dUUyMEZJM2FpdkNGRzMzdmZDV3Q4NmlFdjg4aWI5MTFUMG1WVDB5UWtYL3o3aFFlM0R0b3Q4U1g2SDJPNlRFUGdjeldxbTNOc0lzcGNpcmQ1cVNOTTBMK3Z4YmJiTForK2tvby9yYmF1SkYyUXlnT0ttY3o4MEFpQXVGSmZlckhuRHBlWGdZRUQ3ZkFQeG1lb09vQWFOTFJRdk9SNnVwTVpVaG5Qa0puSFRlVU8yN3lpaUJoQ01VMmNySDZIZVhZMkZWdU5pNS9GaUdSSHdSdG1QT05XbU9odDU3VlNodCsrOFcrVU9DYmZEUUlyZFRVd2hqZG1GQzlzem1JV05EZHVSWkdVb3pMYkRFVWVKVTd2dTJyRHBya0JSYkMyTGlZRG52UzFnNHNwS3B1bGJWYmUzeUh5dHJsZmZEZXJVSkM1b29kcDQyUzVGeHdMNmJkRnlnNzEvSklxVFB0RzFHdmNHcGxXNlczakE4YmtObzNJRFI1WDdZZ3ptSXRBeCtuRTNUakp2Zm8zU0RmeVkyZS9VS1hyUmV0ZUphczRVaGM3WWVkWDM4NEVoTzhpTnc5M3A2OGI4U21tNDhOZUxvV1hNc3FvbEdSdk5hVVJRb3p2Qlg1eUdULzBJMk5Od1ErTndRZDB6MDIwOGV1WFhKOTNydHNOdnFKWk0vTUhkVzRFZW45a1NpVGs0b1FYdU5QbWQwdzNPVks1VnRJMTB1VlczOTljaXZFQy9iQnhYTE55R0FvdU1HUW04TVZGVEkzS25LMjcvMTJ4ZzNuTGdqNWpsUHFwZ2lGL0pSdGE0WFl4UnUvRENXT1l2akhRUXBqTGxzVW9tTmZ4Wk16V3NtcXJCZTBOSnRPSDZFNDVUSzRmTHZYL0I2TGJ6WXJrM1lhNjViUnRocEYzVWkvR2x4UDl5NGNmM1FpWlNtaE45RlVrN1NjeFE5M0NrWFlDS2VkTUY2NEVUOTNGZVZDTitZVjk2aHNCNFBlRXV0a1FoUzhsUzYvZnhmRm11TFEyN0VraWpHVU95c2J4cDh6TENkUzJUVCtic0QwWTJ4LytaU1htVjZWTWE5N2ZuOTNCbHhtMmw1TjI4KzArNjFYdkxnUzcxZFV2L0l1MjlabXh0dU5JbnRzS0pTU2FGdmNUajlKYTRmWG04dFhHNDdWVjVteVpoRHNDNkprVzN6bDFqWkU0M3N2WW9WZkt1VWhiS0pXcE9DZXFlODhleUtHVVR6blIzUytIM0RLcmcrUmEwcmRhS3RrSUVlOGZCTkJqTGN5RGhqWXpZalFDd2gzRnovZFYvVTJkbXcyaTNtdE9XbCtGTTVhNmE0VkpZRDFmYU1Yd1JiYmp5L21yS2JaTXpzQ2RMUGMwVFU1amtDK1ppUjJKTjJ1WTNscXFMaFQwSXM3eFZtZjhtMENXMXUrMU5jdFZkUi9tOERKc3Z4WFU3WEhUVWV4QjZmQ3NPVmxON3BSdHE0Z0lDL3gzZHRvNTdkUXg2L1VCUEh1OXJETDNmRHlVUkZ3ZEVXeC9HVmZoZXFYYXVNMG9QdmN5dVpjVUh4Wk9ZRmRxWHBPK3Zmak5meXhRVTR6TTdIVWU3YmEvNy93bkl4ajBJU0V4RFNMcTdkbHUvOTNWNW1sejVZV2pYMkxOS1dDbG0xS0h5dW5kaEJQbGZ3NDBuMHRUeVZ2R0k5REx3QkxpL2RONWhsTzZyUVpSTytQNnc2ME1HMTR5UEt2dy81ZXRlM3RrSmY5KzdCbDhQN2lsQitGeVhkN1JNcVhsNFVWakk3aEs2NElwT3BUdGRsRTV3YXJkazFNcXFXYjBKYk94Z2xBdHZ0NEhJZXk5U0kyN0xPVlNucm90THhYRk9KZ1ZWUkxmZk5heHR0T0ZZRnQ3Y1lpTFB5LzUyd09iOWVTVEw3YnRSMDNLTkVUd00xeXgrNHpjOVZHYjk3UDY2QnhleSt0MWhXdTA5MmFDNGt0dnZjdGkvcWk3VE44NWMxMk80SFlQQ202MGY4VHZaNXd4ZEoyKzBQdkVOWlZmVnZBMEorNnFndXRHaSswNnowK1pjQndXNnpTVmZNeHA2NExwL05SbC9NWnRKSFFGSmwwQ1A0a2NEMXZUbjhTRWdEdlBRS2kwWnBPZ0N6UEFESVBERjk2QlJuTkF0NTdGazhqTmpFUjU4WS93UVRBY1NZUXp3MVRvVTFrTnFkOUFmZDl0OTZOdVNJaDhJZkJYSFlHczhDWndJcEhVRmdHNlI2eEI3YjdjU1dObjZhRFI5T2JnZGZubUFEK2lmQWhwTk9aYnFMUkUzam5NZi9MTDg0akdOYkRUNm1LODNrdmdIOGlmS2dDUGhNMm95SHd6RU5vKy9NUndhcGpNdlY2V0ovSUFIekN0eHg2QWp3RTMvWGV0UE92dHh3d3dqRk54MkxwQ0ZSc1g2TnA0c3VpamRnd1J5dGRQak51dHkzSTZnRWZMMm5LekZSc2l5U2JqV0w3OGlXNmdZSjhyek94eTBTLzFQSUJJL2JiMytRWnFKZGtCa3QrazV3NGEvWCtpcjZoWGwrWVlRVWRFVjR6WVZiUUZVNktDSGgrdW9MaW1Bb0Z0WjNrUG1zQnl6eWJWZ0hoSWVJYkNBc2FCQy9uazRuS2NoSXlqQUxvbXJQVFo2TUE4RjFVN3ZrMlBSSlozSTFkdVJDYm5HNzM3VWIwWGN2VnpJRTgzbisveFVpUkdCMDdLMEU1Zzd1RjdOKy9KYml1QmpKZmtwRDdNZ0JpUnZYV2RlaWl3ZGZqaEtSYkNFY2xzblR1dnNwRlZLUjJiZXdIYjF5TUY3MCthVjh1L3VrODJiOWovOURudjVMRDJhTWcwZC9zNE54SnVpaTd4Q1NyZWVKZi9UZXNpczFFWGkxZThWSnNaN3NKVjdudzdPRlZHeTNVcldjcTR0NXFnbURCM3ZmQUJVcXVKTTdSTEFYRkFCZEJjWnlmRmlsY3p3Sy9peU91K2s0NFlpOVpKVmJrS3I3TkQ2ZXFYVk1iU0Iwb0lZSFVBZUNVSXdDZUczS0hORTdzTVAwNmNOQjB2cTN5RW0xUTBBUndEaE5XUEdyMjBGVERPaXFnMDliOU9ndEFCK0JrekFIUFR3L09jRXhsOXRBNElmRm1zN3UvQThLZEQxVnhhVmtpRit2dFpKVkhiY3liRGJiYmkzbEhYYVFMUWFRTDhqWTNQRi80emJQeVlueHV0Vi9hVjA0WUpoMjdMaGZXeWJTYzJtU2RYT0drZTREbnArc2tqdWxPQ1lPK3RMTnBDaENPY1JYaTBWS0dwbzd6UFVjVTE3V2o2bHhyVlR6dEFFZDhpT2R4Y1IxUmtSNUIzRUlyL1hybmhGc2JadzM4RTFoTDA1RElNdHpOaFNMUjMzOGVYeXlvSCttUkora3ZXcmJmSTNzTXFyWEdiRlltQVR6UVJVYWFQL09lT3hndXp4MW9aUExadlZkVDVDUElFeHpwNjJ6dHZFaEpwM2JoWXFrbENpNzBHcVBPM2NLR05nK2hPaytFVGl1YmxWcUNDeDQwM25aZjVxU1J5MDRoR2VBb0VJTzkzVmU0OXQyMU1CelhseW5UK253MjIxaUVZMzBaMEtneDR0NTFnU0dpc1FEMFV2YUs1SllvVlIzdVJTWG1FaDZYalFBdVltVnRldmJkdHFZcmRYWVh3WkkwQ0M2dWVHNlJocXBQMmRHL0JjNENNZktKblhvSlVtN1daeHRDZmNuVGhoYmhud1R2R3JoaWVrV0Q0SjA4TEIxSFF3M1hXWWNwdTczY3N3SHdUNEkzRlR5VXRxSkI4TVB1M3hpU3ZOMjRiS2dWNVhPblNMWjdHL3dSZDNtTjB6dlp2MnBjVG5VU2I1aGJ0TU9Nb1B4d0srMm1ubmVTcjdTTHUrekZzMTErSjhoV29XM3JwaVQ0UjM2VTZldmk4Q0lpbkpGeFhZbDA5RnFIdXQ2T1ZwNXNjM3BJWkx1MFVxY055UXdaSjFMUnZBTnY4L3dtSjRwdnppTmc4cGFhNGdRbkg0OWh4TU9obzFvZWozSkV5NFZjTklYempWeWR6Vk9wWjFhdDlRRkxPNjZYaFpiS2RGc2VXY2UxZElNK2c4cC80RE1RVHE4dEFoN3QyZFFOTHNic3RLOHZubWhVeTZYc05sMkwzRXcrYzBENEo4SEhuMTdiVkQ0SkQ4THY3RGJxcHB0dDIxRFg4N2puUmMwZCt3Y3VkL2x5eVpJbDJFSzRoUklFT0xwM3hIUGM3V01kQWYxK2FoWlU1UGNSamc0ZThUelE4U01aMWZONzd4cDg4MW95UzkvZjN0UFgrS05xKzZYODhhTmRQOUxlZHYxOGpHWHJNaWxaWFhIdU1uRGJXSCtrNDhmNStNbU8zM0d4Ui8xK2ZUZS9IM3pIYjBjSjJxc2pnWHRtSFAwb0RydSsxSlVaUmZqTnN1SmNVUHY2Z0JVTmI4bmR5K08zYlR0YkJ2SVhsSG8yK0xoZlVEMDc0am51OGR0dXFReVF4OGM2TlhwOGhLTm5SendQOVBqdFVOL3U4YjNLN2xlTG9sQWx5R2FWQjhENG1BRWdVUjR6VUl1QlFWUkZpVHpWR1lBK3daRUJuYStkVlZHZDJzVEZLaXJtQXVCQXp1SnVOeHNhdVRGMGpmMjZzUUpzRUp5S01ZQ25LWi9rOWJuUXFlVnpXRDYxVWxhdDVBTGdNR2pDbzAyR3FoWHhyQlU2cld4VzFnaE9QT2k4SGErV0YyeFloYjhGRHVRczl0ejFVY3RpT2JNd2h0NWFvekhCQlFzYWEzdG5RaVUzc1JIVnNpL0JrUTJEdmQxc1JOVmF0VzJqMW9NSlRvbExWQktkdlN0RXA1YlpIUklYQUlkQkU1N2RLeVNkOVVLbmxjMnFMOEdKQjUyMzQ1c29nZzJyS0Exd3ROOEdleCs2YThtbUkxckJZeUNoK1NjRTMrSWVnQWZiRGF4d0pJZDRCQnM3eXl0eCtzMHcvcnJHOHNxNjU3SENlUzhFcVJFZWxZdmQzZ0htd3ZZQ0s1eTVXUEV3RjdxeHpLNXhuZUdJQ2ZFSUNxb1J5bzdSaXFyNklCNURyYmFpNTNrdG9FQnhjd3NGU3ZERVMzakJjMWlndWhIS2p0R2lXRjAxWmpvWHUrMElMblBUWGtSMXpDTERLTGk0VTRXaW5sYnlSSDdVdVhaT0lIL1k1b1J6d0p2VGZWa2JTVnVOSW9BSzczR3htaitiTkQ5dHhsWGVGYzVWM2xWMXVQa1Q0ZGN1bm51VmtwQ0tGTlNEeTFpWVQyNHJ5YkV5bG50L3dwR1d1Y01xSXU3NjZlNllmNjRMTnB1T0hNQWRuSEFFSkFEZVp3RjF0NXdkTnc1d29FWjRpQXZkMldYSE9RSWNNQkVlSHVldWx5UlZjdG4wbEFSdjFnWkF3dE9VdmNEN2t5ckpoZVhIRnpnTW12RFFaT2grT1R0K1BLcnFRM2lJZ3U3c3N1TWNBUTZZQ005eGdlcmtzdWtGQ1E2Q0l6eXFRTjBWckZMTGpvOEdlS2VlbFRaVzhjNUdLand1UEMzS2FlT25xaEgreWZDR25xaGYwS2c3VjN0dFdhZWRUK2Z4UW0vTWN1Y1MyVElFSHo2VURmeG5zeitINEFlWVVEUFQ1cHlaNm1Zd08yWnpoU010aTdXZEUwRm9ZU2JRaHVKTUVKelkwTmx6YXpmdHRZcWxtZXZzbVBjVmpxUXMxbmJPQktHRm1VQURLbmR2RnppeG9iTjN2TVVQRitoa2ZHZmJnd3VVNElLN0JZK3lRbFY1ZEVzdHJmUVkyZlV3UzQ4RUROaWFvSjN5SUxRb0QzQTNOR0tFQ3pZMDl0eVo2Qzh6b1hxMjdIakNxTm9EaTdXOU00Rm9ZU2JRTGVKTUVKellpSmE1c21kaXVOYlJOQStjSFkrOXdwR1V4ZHJPbVNDME1CUG9FOGxOSVp6WTBObTd3Wk4zNnNVaXdtT3ZjUEllQm5jM0ZCVjVNb0FjVGNaaE5pNW4yTWxYTHUrN3JYOEs0RThDOTlCZENraDZiREs1NnduMmxVamZpSVlJTGUzNis2Zi9BYUw5bXFnS1pXNWtjM1J5WldGdENtVnVaRzlpYWdveE1UQWdNQ0J2WW1vS1BEd0tMMFp2Ym5RZ1BEd0tMMFl4SURFeElEQWdVZ28rUGdvdlVHRjBkR1Z5YmlBOFBBb3ZVR0YwZEdWeWJqRWdNVGdnTUNCU0NpOVFZWFIwWlhKdU1UQWdOak1nTUNCU0NpOVFZWFIwWlhKdU1URWdOamdnTUNCU0NpOVFZWFIwWlhKdU1USWdOek1nTUNCU0NpOVFZWFIwWlhKdU1UTWdOemdnTUNCU0NpOVFZWFIwWlhKdU1UUWdPRE1nTUNCU0NpOVFZWFIwWlhKdU1UVWdPRGdnTUNCU0NpOVFZWFIwWlhKdU1UWWdPVE1nTUNCU0NpOVFZWFIwWlhKdU1UY2dPVGdnTUNCU0NpOVFZWFIwWlhKdU1UZ2dNVEF6SURBZ1Vnb3ZVR0YwZEdWeWJqRTVJREV3T0NBd0lGSUtMMUJoZEhSbGNtNHlJREl6SURBZ1Vnb3ZVR0YwZEdWeWJqTWdNamdnTUNCU0NpOVFZWFIwWlhKdU5DQXpNeUF3SUZJS0wxQmhkSFJsY200MUlETTRJREFnVWdvdlVHRjBkR1Z5YmpZZ05ETWdNQ0JTQ2k5UVlYUjBaWEp1TnlBME9DQXdJRklLTDFCaGRIUmxjbTQ0SURVeklEQWdVZ292VUdGMGRHVnliamtnTlRnZ01DQlNDajQrQ2k5WVQySnFaV04wSUR3OENpOUpiV0ZuWlRFZ01USWdNQ0JTQ2k5SmJXRm5aVElnTVRNZ01DQlNDajQrQ2o0K0NtVnVaRzlpYWdveklEQWdiMkpxQ2p3OENpOURiMjUwWlc1MGN5QmJJREV3T1NBd0lGSWdYUW92UTNKdmNFSnZlQ0JiSURBdU1DQXdMakFnTmpFeUxqQWdOemt5TGpBZ1hRb3ZUV1ZrYVdGQ2IzZ2dXeUF3TGpBZ01DNHdJRFl4TWk0d0lEYzVNaTR3SUYwS0wxQmhjbVZ1ZENBeUlEQWdVZ292VW1WemIzVnlZMlZ6SURFeE1DQXdJRklLTDFKdmRHRjBaU0F3Q2k5VWVYQmxJQzlRWVdkbENqNCtDbVZ1Wkc5aWFnb3hNQ0F3SUc5aWFnbzhQQW92VEdWdVozUm9JREV5TkRrS1BqNEtjM1J5WldGdENpOURTVVJKYm1sMElDOVFjbTlqVTJWMElHWnBibVJ5WlhOdmRYSmpaU0JpWldkcGJpQXhNaUJrYVdOMElHSmxaMmx1SUdKbFoybHVZMjFoY0NBdlEwbEVVM2x6ZEdWdFNXNW1ieUE4UENBdlVtVm5hWE4wY25rZ0tFRmtiMkpsS1NBdlQzSmtaWEpwYm1jZ0tGVkRVeWtnTDFOMWNIQnNaVzFsYm5RZ01DQStQaUJrWldZZ0wwTk5ZWEJPWVcxbElDOUJaRzlpWlMxSlpHVnVkR2wwZVMxVlExTWdaR1ZtSUM5RFRXRndWSGx3WlNBeUlHUmxaaUF4SUdKbFoybHVZMjlrWlhOd1lXTmxjbUZ1WjJVZ1BEQXdNREErSUR4R1JrWkdQaUJsYm1SamIyUmxjM0JoWTJWeVlXNW5aU0EyTmlCaVpXZHBibUptWTJoaGNpQThNREF3TXo0Z1BEQXdNakErSUR3d01EQTVQaUE4TURBeU5qNGdQREF3TUVJK0lEd3dNREk0UGlBOE1EQXdRejRnUERBd01qaytJRHd3TURCR1BpQThNREF5UXo0Z1BEQXdNVEErSUR3d01ESkVQaUE4TURBeE1UNGdQREF3TWtVK0lEd3dNREV5UGlBOE1EQXlSajRnUERBd01UTStJRHd3TURNd1BpQThNREF4TkQ0Z1BEQXdNekUrSUR3d01ERTFQaUE4TURBek1qNGdQREF3TVRZK0lEd3dNRE16UGlBOE1EQXhPRDRnUERBd016VStJRHd3TURGQ1BpQThNREF6T0Q0Z1BEQXdNVU0rSUR3d01ETTVQaUE4TURBeFJUNGdQREF3TTBJK0lEd3dNREZHUGlBOE1EQXpRejRnUERBd01qQStJRHd3TURORVBpQThNREF5TVQ0Z1BEQXdNMFUrSUR3d01ESTBQaUE4TURBME1UNGdQREF3TWpVK0lEd3dNRFF5UGlBOE1EQXlOajRnUERBd05ETStJRHd3TURJM1BpQThNREEwTkQ0Z1BEQXdNamcrSUR3d01EUTFQaUE4TURBeU9UNGdQREF3TkRZK0lEd3dNREpCUGlBOE1EQTBOejRnUERBd01rSStJRHd3TURRNFBpQThNREF5UXo0Z1BEQXdORGsrSUR3d01ESkVQaUE4TURBMFFUNGdQREF3TWtZK0lEd3dNRFJEUGlBOE1EQXpNRDRnUERBd05FUStJRHd3TURNeFBpQThNREEwUlQ0Z1BEQXdNekkrSUR3d01EUkdQaUE4TURBek16NGdQREF3TlRBK0lEd3dNRE0xUGlBOE1EQTFNajRnUERBd016WStJRHd3TURVelBpQThNREF6Tno0Z1BEQXdOVFErSUR3d01ETTVQaUE4TURBMU5qNGdQREF3TkRJK0lEd3dNRFZHUGlBOE1EQTBORDRnUERBd05qRStJRHd3TURRMVBpQThNREEyTWo0Z1BEQXdORFkrSUR3d01EWXpQaUE4TURBME56NGdQREF3TmpRK0lEd3dNRFE0UGlBOE1EQTJOVDRnUERBd05EaytJRHd3TURZMlBpQThNREEwUVQ0Z1BEQXdOamMrSUR3d01EUkNQaUE4TURBMk9ENGdQREF3TkVNK0lEd3dNRFk1UGlBOE1EQTBSVDRnUERBd05rSStJRHd3TURSR1BpQThNREEyUXo0Z1BEQXdOVEErSUR3d01EWkVQaUE4TURBMU1UNGdQREF3TmtVK0lEd3dNRFV5UGlBOE1EQTJSajRnUERBd05UTStJRHd3TURjd1BpQThNREExTkQ0Z1BEQXdOekUrSUR3d01EVTFQaUE4TURBM01qNGdQREF3TlRZK0lEd3dNRGN6UGlBOE1EQTFOejRnUERBd056UStJRHd3TURVNFBpQThNREEzTlQ0Z1BEQXdOVGsrSUR3d01EYzJQaUE4TURBMVFUNGdQREF3TnpjK0lEd3dNRFZDUGlBOE1EQTNPRDRnUERBd05VTStJRHd3TURjNVBpQThNREJDTVQ0Z1BESXdNVE0rSUR3d01FSTBQaUE4TWpBeFJENGdQREF3UWpZK0lEd3lNREU1UGlCbGJtUmlabU5vWVhJZ1pXNWtZMjFoY0NCRFRXRndUbUZ0WlNCamRYSnlaVzUwWkdsamRDQXZRMDFoY0NCa1pXWnBibVZ5WlhOdmRYSmpaU0J3YjNBZ1pXNWtJR1Z1WkNBS1pXNWtjM1J5WldGdENtVnVaRzlpYWdvNUlEQWdiMkpxQ2xzZ015QXpJREkyTlNBNUlEa2dOalkySURFeElERXhJRE16TXlBeE1pQXhNaUF6TXpNZ01UVWdNVFVnTWpjM0lERTJJREUySURNek15QXhOeUF4TnlBeU56Y2dNVGdnTVRnZ01qYzNJREU1SURFNUlEVTFOaUF5TUNBeU1DQTFOVFlnTWpFZ01qRWdOVFUySURJeUlESXlJRFUxTmlBeU5DQXlOQ0ExTlRZZ01qY2dNamNnTlRVMklESTRJREk0SURVMU5pQXpNQ0F6TUNBeU56Y2dNekVnTXpFZ05UZ3pJRE15SURNeUlEVTRNeUF6TXlBek15QTFPRE1nTXpZZ016WWdOalkySURNM0lETTNJRFkyTmlBek9DQXpPQ0EzTWpJZ016a2dNemtnTnpJeUlEUXdJRFF3SURZMk5pQTBNU0EwTVNBMk1UQWdORElnTkRJZ056YzNJRFF6SURReklEY3lNaUEwTkNBME5DQXlOemNnTkRVZ05EVWdOVEF3SURRM0lEUTNJRFUxTmlBME9DQTBPQ0E0TXpNZ05Ea2dORGtnTnpJeUlEVXdJRFV3SURjM055QTFNU0ExTVNBMk5qWWdOVE1nTlRNZ056SXlJRFUwSURVMElEWTJOaUExTlNBMU5TQTJNVEFnTlRjZ05UY2dOalkySURZMklEWTJJRFUxTVNBMk9DQTJPQ0ExTlRZZ05qa2dOamtnTlRVMklEY3dJRGN3SURVd01DQTNNU0EzTVNBMU5UWWdOeklnTnpJZ05UVTJJRGN6SURjeklESTNOeUEzTkNBM05DQTFOVFlnTnpVZ056VWdOVFUySURjMklEYzJJREl5T0NBM09DQTNPQ0ExTURBZ056a2dOemtnTWpJNElEZ3dJRGd3SURnek15QTRNU0E0TVNBMU5UWWdPRElnT0RJZ05UVTJJRGd6SURneklEVTFOaUE0TkNBNE5DQTFOVFlnT0RVZ09EVWdNek16SURnMklEZzJJRFV3TUNBNE55QTROeUF5TnpjZ09EZ2dPRGdnTlRVMklEZzVJRGc1SURVd01DQTVNQ0E1TUNBM01qSWdPVEVnT1RFZ05UQXdJRGt5SURreUlEVXdNQ0F4TnpjZ01UYzNJREk1TWlBeE9EQWdNVGd3SURNek15QXhPRElnTVRneUlESXlNaUJkQ21WdVpHOWlhZ28ySURBZ2IySnFDbHNnTFRnek15QXRNakE1SURnek15QTVNakVnWFFwbGJtUnZZbW9LTnlBd0lHOWlhZ280TXpNS1pXNWtiMkpxQ2pJZ01DQnZZbW9LUER3S0wwTnZkVzUwSURFS0wwdHBaSE1nV3lBeklEQWdVaUJkQ2k5VWVYQmxJQzlRWVdkbGN3bytQZ3BsYm1Sdlltb0tNU0F3SUc5aWFnbzhQQW92VUdGblpYTWdNaUF3SUZJS0wxUjVjR1VnTDBOaGRHRnNiMmNLUGo0S1pXNWtiMkpxQ2pFeE1TQXdJRzlpYWdvOFBBb3ZRWFYwYUc5eUlDaFNRMkZ0Y0dKbGJHd3BDaTlEY21WaGRHbHZia1JoZEdVZ0tFUTZNakF5TXpBNU1UZ3hNVEUxTVRNck1ERW5NREFuS1FvdlRXOWtSR0YwWlNBb1JEb3lNREl6TURreE9ERXhNVFV4TXlzd01TY3dNQ2NwQ2k5UWNtOWtkV05sY2lBb1RXbGpjbTl6YjJaME9pQlFjbWx1ZENCVWJ5QlFSRVlwQ2k5VWFYUnNaU0FvVFdsamNtOXpiMlowSUZkdmNtUWdMU0JDUXpBeFlTQkRiMjUwY21GamRDNWtiMk40S1FvK1BncGxibVJ2WW1vS2VISmxaZ293SURFeE1nMEtNREF3TURBd01EQXdNQ0EyTlRVek5TQm1EUW93TURBd01UWTNOemsxSURBd01EQXdJRzROQ2pBd01EQXhOamMzTXpZZ01EQXdNREFnYmcwS01EQXdNREUyTlRVek1pQXdNREF3TUNCdURRb3dNREF3TURBd01EQTVJREF3TURBd0lHNE5DakF3TURBd01EQXdNelVnTURBd01EQWdiZzBLTURBd01ERTJOelk0TUNBd01EQXdNQ0J1RFFvd01EQXdNVFkzTnpFM0lEQXdNREF3SUc0TkNqQXdNREF3TURBd05UZ2dNREF3TURBZ2JnMEtNREF3TURFMk5qazVPU0F3TURBd01DQnVEUW93TURBd01UWTFOamszSURBd01EQXdJRzROQ2pBd01EQXdOamc0TWpjZ01EQXdNREFnYmcwS01EQXdNREEyT1RJNU9TQXdNREF3TUNCdURRb3dNREF3TVRJMk9UWXhJREF3TURBd0lHNE5DakF3TURBeE16azROamNnTURBd01EQWdiZzBLTURBd01ERXpPVGs1TmlBd01EQXdNQ0J1RFFvd01EQXdNVFF3TVRJMUlEQXdNREF3SUc0TkNqQXdNREF4TkRBeU5UUWdNREF3TURBZ2JnMEtNREF3TURFME1EUXdOaUF3TURBd01DQnVEUW93TURBd01UUXdOakk0SURBd01EQXdJRzROQ2pBd01EQXhOREEzTlRjZ01EQXdNREFnYmcwS01EQXdNREUwTURnNE5pQXdNREF3TUNCdURRb3dNREF3TVRReE1ERTFJREF3TURBd0lHNE5DakF3TURBeE5ERXhOek1nTURBd01EQWdiZzBLTURBd01ERTBNVE01TlNBd01EQXdNQ0J1RFFvd01EQXdNVFF4TlRJMElEQXdNREF3SUc0TkNqQXdNREF4TkRFMk5UTWdNREF3TURBZ2JnMEtNREF3TURFME1UYzRNaUF3TURBd01DQnVEUW93TURBd01UUXhPVFF3SURBd01EQXdJRzROQ2pBd01EQXhOREl4TmpVZ01EQXdNREFnYmcwS01EQXdNREUwTWpJNU5DQXdNREF3TUNCdURRb3dNREF3TVRReU5ESXpJREF3TURBd0lHNE5DakF3TURBeE5ESTFOVElnTURBd01EQWdiZzBLTURBd01ERTBNamN4TUNBd01EQXdNQ0J1RFFvd01EQXdNVFF5T1RNeUlEQXdNREF3SUc0TkNqQXdNREF4TkRNd05qRWdNREF3TURBZ2JnMEtNREF3TURFME16RTVNQ0F3TURBd01DQnVEUW93TURBd01UUXpNekU1SURBd01EQXdJRzROQ2pBd01EQXhORE0wTnpjZ01EQXdNREFnYmcwS01EQXdNREUwTXpjd01pQXdNREF3TUNCdURRb3dNREF3TVRRek9ETXhJREF3TURBd0lHNE5DakF3TURBeE5ETTVOakFnTURBd01EQWdiZzBLTURBd01ERTBOREE0T1NBd01EQXdNQ0J1RFFvd01EQXdNVFEwTWpReElEQXdNREF3SUc0TkNqQXdNREF4TkRRME5qTWdNREF3TURBZ2JnMEtNREF3TURFME5EVTVNaUF3TURBd01DQnVEUW93TURBd01UUTBOekl4SURBd01EQXdJRzROQ2pBd01EQXhORFE0TlRBZ01EQXdNREFnYmcwS01EQXdNREUwTlRBd09DQXdNREF3TUNCdURRb3dNREF3TVRRMU1qTXdJREF3TURBd0lHNE5DakF3TURBeE5EVXpOVGtnTURBd01EQWdiZzBLTURBd01ERTBOVFE0T0NBd01EQXdNQ0J1RFFvd01EQXdNVFExTmpFM0lEQXdNREF3SUc0TkNqQXdNREF4TkRVM056VWdNREF3TURBZ2JnMEtNREF3TURFME5UazVOeUF3TURBd01DQnVEUW93TURBd01UUTJNVEkySURBd01EQXdJRzROQ2pBd01EQXhORFl5TlRVZ01EQXdNREFnYmcwS01EQXdNREUwTmpNNE5DQXdNREF3TUNCdURRb3dNREF3TVRRMk5UUXlJREF3TURBd0lHNE5DakF3TURBeE5EWTNOamNnTURBd01EQWdiZzBLTURBd01ERTBOamc1TmlBd01EQXdNQ0J1RFFvd01EQXdNVFEzTURJMUlEQXdNREF3SUc0TkNqQXdNREF4TkRjeE5UUWdNREF3TURBZ2JnMEtNREF3TURFME56TXhNaUF3TURBd01DQnVEUW93TURBd01UUTNOVE0zSURBd01EQXdJRzROQ2pBd01EQXhORGMyTmpZZ01EQXdNREFnYmcwS01EQXdNREUwTnpjNU5TQXdNREF3TUNCdURRb3dNREF3TVRRM09USTBJREF3TURBd0lHNE5DakF3TURBeE5EZ3dPRElnTURBd01EQWdiZzBLTURBd01ERTBPRE13TnlBd01EQXdNQ0J1RFFvd01EQXdNVFE0TkRNMklEQXdNREF3SUc0TkNqQXdNREF4TkRnMU5qVWdNREF3TURBZ2JnMEtNREF3TURFME9EWTVOQ0F3TURBd01DQnVEUW93TURBd01UUTRPRFV5SURBd01EQXdJRzROQ2pBd01EQXhORGt3TnpjZ01EQXdNREFnYmcwS01EQXdNREUwT1RJd05pQXdNREF3TUNCdURRb3dNREF3TVRRNU16TTFJREF3TURBd0lHNE5DakF3TURBeE5EazBOalFnTURBd01EQWdiZzBLTURBd01ERTBPVFl5TWlBd01EQXdNQ0J1RFFvd01EQXdNVFE1T0RRM0lEQXdNREF3SUc0TkNqQXdNREF4TkRrNU56WWdNREF3TURBZ2JnMEtNREF3TURFMU1ERXdOU0F3TURBd01DQnVEUW93TURBd01UVXdNak0wSURBd01EQXdJRzROQ2pBd01EQXhOVEF6T1RJZ01EQXdNREFnYmcwS01EQXdNREUxTURZeE55QXdNREF3TUNCdURRb3dNREF3TVRVd056UTJJREF3TURBd0lHNE5DakF3TURBeE5UQTROak1nTURBd01EQWdiZzBLTURBd01ERTFNRGsyT0NBd01EQXdNQ0J1RFFvd01EQXdNVFV4TVRJMklEQXdNREF3SUc0TkNqQXdNREF4TlRFek5EY2dNREF3TURBZ2JnMEtNREF3TURFMU1UUTNOaUF3TURBd01DQnVEUW93TURBd01UVXhOVGt6SURBd01EQXdJRzROQ2pBd01EQXhOVEUyT1RnZ01EQXdNREFnYmcwS01EQXdNREUxTVRnMU5pQXdNREF3TUNCdURRb3dNREF3TVRVeU1EYzNJREF3TURBd0lHNE5DakF3TURBeE5USXlNRFlnTURBd01EQWdiZzBLTURBd01ERTFNak15TXlBd01EQXdNQ0J1RFFvd01EQXdNVFV5TkRJNElEQXdNREF3SUc0TkNqQXdNREF4TlRJMU9EWWdNREF3TURBZ2JnMEtNREF3TURFMU1qZ3dOeUF3TURBd01DQnVEUW93TURBd01UVXlPVE0ySURBd01EQXdJRzROQ2pBd01EQXhOVE13TlRRZ01EQXdNREFnYmcwS01EQXdNREUxTXpFMk1DQXdNREF3TUNCdURRb3dNREF3TVRVek16SXhJREF3TURBd0lHNE5DakF3TURBeE5UTTFORFFnTURBd01EQWdiZzBLTURBd01ERTFNelkzTkNBd01EQXdNQ0J1RFFvd01EQXdNVFV6TnpreUlEQXdNREF3SUc0TkNqQXdNREF4TlRNNE9UZ2dNREF3TURBZ2JnMEtNREF3TURFMU5EQTJNQ0F3TURBd01DQnVEUW93TURBd01UVTBNamd6SURBd01EQXdJRzROQ2pBd01EQXhOalV3T1RFZ01EQXdNREFnYmcwS01EQXdNREUyTnpnME5DQXdNREF3TUNCdURRcDBjbUZwYkdWeUNqdzhDaTlKYm1adklERXhNU0F3SUZJS0wxSnZiM1FnTVNBd0lGSUtMMU5wZW1VZ01URXlDajQrQ25OMFlYSjBlSEpsWmdveE5qZ3dORFVLSlNWRlQwWUtcIjtcclxuIiwiaW1wb3J0IHsgT3JkZXJGb3JtV2l0aEJhc2U2NCB9IGZyb20gXCIuLi9Nb2RlbHMvT3JkZXJGb3JtXCI7XHJcbmltcG9ydCB7IE1vY2tCYXNlNjRPcmRlckZvcm1QREYgfSBmcm9tIFwiLi9Nb2NrQmFzZTY0T3JkZXJGb3JtUERGXCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBPcmRlciBGb3JtcyAqL1xyXG5leHBvcnQgY29uc3QgTW9ja09yZGVyRm9ybURhdGE6IHtcclxuICAgIE9yZGVyMTogT3JkZXJGb3JtV2l0aEJhc2U2NDtcclxuICAgIE9yZGVyMjogT3JkZXJGb3JtV2l0aEJhc2U2NDtcclxuICAgIE9yZGVyMzogT3JkZXJGb3JtV2l0aEJhc2U2NDtcclxuICAgIE9yZGVyNDogT3JkZXJGb3JtV2l0aEJhc2U2NDtcclxuICAgIE9yZGVyNTogT3JkZXJGb3JtV2l0aEJhc2U2NDtcclxufSA9IHtcclxuICAgIE9yZGVyMToge1xyXG4gICAgICAgIGJpc3RlY2hfb3JkZXJmb3JtaWQ6IFwiOTM2M2U3OTAtNDNiMC00N2Q3LTg1YWItMmI0NWEwYzg2NzAzXCIsXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlc2lnbmVkOiBcIjIwMjItMDUtMDdUMDc6MDg6NTYuMDEwWlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0T3JkZXJGb3JtUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsLFxyXG4gICAgfSxcclxuICAgIE9yZGVyMjoge1xyXG4gICAgICAgIGJpc3RlY2hfb3JkZXJmb3JtaWQ6IFwiYmRhNzQ2NzQtYjRhMS00ODE2LTg5MGMtNTZlYjJjNzA0OGQ2XCIsXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlc2lnbmVkOiBcIjIwMjMtMDMtMTVUMDc6MDg6MjMuMDg5WlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0T3JkZXJGb3JtUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsXHJcbiAgICB9LFxyXG4gICAgT3JkZXIzOiB7XHJcbiAgICAgICAgYmlzdGVjaF9vcmRlcmZvcm1pZDogXCJhZGE3NDY3Mi1jNGE3LTM4MTQtMzkwZC04NmViMmM3MDQ4ZGFcIixcclxuICAgICAgICBiaXN0ZWNoX2RhdGVzaWduZWQ6IFwiMjAyMy0wOS0wMVQwOTowODoxMS4xMjNaXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDE6IE1vY2tCYXNlNjRPcmRlckZvcm1QREYsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDI6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDM6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDQ6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDU6IG51bGxcclxuICAgIH0sXHJcbiAgICBPcmRlcjQ6IHtcclxuICAgICAgICBiaXN0ZWNoX29yZGVyZm9ybWlkOiBcImNkYTc0NjcxLWQ0YTItMTgxNC0zOTBkLTc2ZWIyYzcwNDhkZFwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGF0ZXNpZ25lZDogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMTogTW9ja0Jhc2U2NE9yZGVyRm9ybVBERixcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMjogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMzogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNDogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNTogbnVsbFxyXG4gICAgfSxcclxuICAgIE9yZGVyNToge1xyXG4gICAgICAgIGJpc3RlY2hfb3JkZXJmb3JtaWQ6IFwiY2RhNzQ2NzEtZDRhMi0xODE0LTM5MGQtNzZlYjJjNzA0OGRkXCIsXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlc2lnbmVkOiBcIjIwMjQtMDktMDFUMDk6MDg6MTEuMTIzWlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0T3JkZXJGb3JtUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsXHJcbiAgICB9LFxyXG59O1xyXG4iLCIvKiogRW51bSByZXByZXNlbnRpbmcgdGhlIFByb2R1Y3QgVHlwZSBDb2RlIG9mIGEgU2FsZXMgT3JkZXIgTGluZS4gKi9cclxuZXhwb3J0IGVudW0gUHJvZHVjdFR5cGVDb2RlIHtcclxuICAgIC8qKiBQcm9kdWN0IHR5cGUgY29kZS4gKi9cclxuICAgIFByb2R1Y3QgPSAxLFxyXG5cclxuICAgIC8qKiBQcm9qZWN0IEJhc2VkIFNlcnZpY2UgdHlwZSBjb2RlLiAqL1xyXG4gICAgXCJQcm9qZWN0LUJhc2VkIFNlcnZpY2VcIiA9IDUsXHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgU3RhdGUgQ29kZSBvZiBhIFByb2plY3QgKi9cclxuZXhwb3J0IGVudW0gUHJvamVjdFN0YXRlQ29kZSB7XHJcbiAgICAvKiogQWN0aXZlIFN0YXRlLiAqL1xyXG4gICAgQWN0aXZlID0gMCxcclxuXHJcbiAgICAvKiogSW5hY3RpdmUgU3RhdGUuICovXHJcbiAgICBJbmFjdGl2ZSA9IDEsXHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgU3RhdHVzIENvZGUgb2YgYSBQcm9qZWN0ICovXHJcbmV4cG9ydCBlbnVtIFByb2plY3RTdGF0dXNDb2RlIHtcclxuICAgIC8qKiBEcmFmdCAoQWN0aXZlKSAqL1xyXG4gICAgRHJhZnQgPSAxMDBfMDAwXzAwMixcclxuXHJcbiAgICAvKiogQWN0aXZlIChBY3RpdmUpICovXHJcbiAgICBBY3RpdmUgPSAxLFxyXG5cclxuICAgIC8qKiBQcm9qZWN0IGNvcHlpbmcgKEFjdGl2ZSkgKi9cclxuICAgIFwiUHJvamVjdCBjb3B5aW5nXCIgPSAxOTJfMzUwXzAwMSxcclxuXHJcbiAgICAvKiogQ2FuY2VsbGVkIChJbmFjdGl2ZSkgKi9cclxuICAgIENhbmNlbGxlZCA9IDE5Ml8zNTBfMDAzLFxyXG5cclxuICAgIC8qKiBQcm9qZWN0IGNvcHkgZmFpbGVkIChBY3RpdmUpICovXHJcbiAgICBcIlByb2plY3QgY29weSBmYWlsZWRcIiA9IDE5Ml8zNTBfMDAyLFxyXG5cclxuICAgIC8qKiBQcm9qZWN0IGltcG9ydGluZyAoQWN0aXZlKSAqL1xyXG4gICAgXCJQcm9qZWN0IGltcG9ydGluZ1wiID0gMTkyXzM1MF8wMTEsXHJcblxyXG4gICAgLyoqIFByb2plY3QgaW1wb3J0IGZhaWxlZCAoQWN0aXZlKSAqL1xyXG4gICAgXCJQcm9qZWN0IGltcG9ydCBmYWlsZWRcIiA9IDE5Ml8zNTBfMDEyLFxyXG5cclxuICAgIC8qKiBQcm9qZWN0IGNvbnZlcnRpbmcgKEFjdGl2ZSkgKi9cclxuICAgIFwiUHJvamVjdCBjb252ZXJ0aW5nXCIgPSAxOTJfMzUwXzAyMSxcclxuXHJcbiAgICAvKiogUHJvamVjdCBjb252ZXJ0IGZhaWxlZCAoQWN0aXZlKSAqL1xyXG4gICAgXCJQcm9qZWN0IGNvbnZlcnQgZmFpbGVkXCIgPSAxOTJfMzUwXzAyMixcclxuXHJcbiAgICAvKiogSW5hY3RpdmUgKFNldHMgcHJvamVjdCB0byByZWFkIG9ubHkgKEluYWN0aXZlKSAqL1xyXG4gICAgSW5hY3RpdmUgPSAyLFxyXG5cclxuICAgIC8qKiBDbG9zZWQgKFNldHMgcHJvamVjdCB0byByZWFkIG9ubHkgYW5kIGNhbmNlbHMgZnV0dXJlIGJvb2tpbmdzIChJbmFjdGl2ZSkgKi9cclxuICAgIENsb3NlZCA9IDE5Ml8zNTBfMDAwLFxyXG5cclxuICAgIC8qKiBQcm9qZWN0IGVzdGltYXRlcyBjb3B5IGZhaWxlZCAoQWN0aXZlKSAqL1xyXG4gICAgXCJQcm9qZWN0IGVzdGltYXRlcyBjb3B5IGZhaWxlZFwiID0gMTkyXzM1MF8wMjMsXHJcblxyXG4gICAgLyoqIFByb2plY3QgT25ib2FyZGluZyAoQWN0aXZlKSAqL1xyXG4gICAgXCJQcm9qZWN0IE9uYm9hcmRpbmdcIiA9IDE5Ml8zNTBfMDI0LFxyXG5cclxuICAgIC8qKiBSZWFkeSB0byBUcmlhZ2UgKEFjdGl2ZSkgKi9cclxuICAgIFwiUmVhZHkgdG8gVHJpYWdlXCIgPSAxOTJfMzUwXzAyNSxcclxuXHJcbiAgICAvKiogSW4gUHJvZ3Jlc3MgKEFjdGl2ZSkgKi9cclxuICAgIFwiSW4gUHJvZ3Jlc3NcIiA9IDE5Ml8zNTBfMDI2LFxyXG5cclxuICAgIC8qKiBCbG9ja2VkIChBY3RpdmUpICovXHJcbiAgICBCbG9ja2VkID0gMTkyXzM1MF8wMjcsXHJcblxyXG4gICAgLyoqIFBlbmRpbmcgU3RhcnQgKEFjdGl2ZSkgKi9cclxuICAgIFwiUGVuZGluZyBTdGFydFwiID0gMTAwXzAwMF8wMDEsXHJcblxyXG4gICAgLyoqIE9uIEhvbGQgKEFjdGl2ZSkgKi9cclxuICAgIFwiT24gSG9sZFwiID0gMTAwXzAwMF8wMDMsXHJcblxyXG4gICAgLyoqIFNpZ25lZCAoQWN0aXZlKSAqL1xyXG4gICAgU2lnbmVkID0gMTAwXzAwMF8wMDQsXHJcblxyXG4gICAgLyoqIFByb2Nlc3NpbmcgKEFjdGl2ZSkgKi9cclxuICAgIFByb2Nlc3NpbmcgPSAxMDBfMDAwXzAwNSxcclxuXHJcbiAgICAvKiogSW4gUXVvdGUgKEFjdGl2ZSkgKi9cclxuICAgIFwiSW4gUXVvdGVcIiA9IDEwMF8wMDBfMDA2LFxyXG59XHJcbiIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyBhIFByb2plY3QgTG9nIE1pdGlnYXRpb24gUmVzcG9uc2UuICovXHJcbmV4cG9ydCBlbnVtIFByb2plY3RMb2dNaXRpZ2F0aW9uUmVzcG9uc2Uge1xyXG4gICAgLyoqIEF2b2lkICovXHJcbiAgICBBdm9pZCA9IDEwMF8wMDBfMDAwLFxyXG5cclxuICAgIC8qKiBSZWR1Y2UgKi9cclxuICAgIFJlZHVjZSA9IDEwMF8wMDBfMDAxLFxyXG5cclxuICAgIC8qKiBUcmFuc2ZlciAqL1xyXG4gICAgVHJhbnNmZXIgPSAxMDBfMDAwXzAwMixcclxuXHJcbiAgICAvKiogU2hhcmUgKi9cclxuICAgIFNoYXJlID0gMTAwXzAwMF8wMDMsXHJcblxyXG4gICAgLyoqIEFjY2VwdCAqL1xyXG4gICAgQWNjZXB0ID0gMTAwXzAwMF8wMDQsXHJcblxyXG4gICAgLyoqIFByZXBhcmUgQ29udGlnZW5jeSBQbGFuICovXHJcbiAgICBcIlByZXBhcmUgQ29udGlnZW5jeSBQbGFuXCIgPSAxMDBfMDAwXzAwNSxcclxufVxyXG4iLCIvKiogRW51bSByZXByZXNlbnRpbmcgYSB0aGUgUHJvamVjdCBMb2cgU2V2ZXJpdHkuICovXHJcbmV4cG9ydCBlbnVtIFByb2plY3RMb2dTZXZlcml0eSB7XHJcbiAgICAvKiogTG93ICovXHJcbiAgICBMb3cgPSAxMDBfMDAwXzAwMCxcclxuXHJcbiAgICAvKiogTWVkaXVtICovXHJcbiAgICBNZWRpdW0gPSAxMDBfMDAwXzAwMSxcclxuXHJcbiAgICAvKiogSGlnaCAqL1xyXG4gICAgSGlnaCA9IDEwMF8wMDBfMDAyLFxyXG59XHJcbiIsIi8qKiBFbnVtZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIFN0YXR1cyBDb2RlIG9mIGEgUHJvamVjdCBMb2cuICovXHJcbmV4cG9ydCBlbnVtIFByb2plY3RMb2dTdGF0dXNDb2RlIHtcclxuICAgIC8qKiBBY3RpdmUgKEFjdGl2ZSkgKi9cclxuICAgIEFjdGl2ZSA9IDEsXHJcblxyXG4gICAgLyoqIEluYWN0aXZlIChJbmFjdGl2ZSkgKi9cclxuICAgIEluYWN0aXZlID0gMixcclxufSIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgdHlwZSBvZiBhIFByb2plY3QgTG9nLiAqL1xyXG5leHBvcnQgZW51bSBQcm9qZWN0TG9nVHlwZSB7XHJcbiAgICAvKiogUmlzayAqL1xyXG4gICAgUmlzayA9IDEwMF8wMDBfMDAwLFxyXG5cclxuICAgIC8qKiBBc3N1bXB0aW9uICovXHJcbiAgICBBc3N1bXB0aW9uID0gMTAwXzAwMF8wMDEsXHJcblxyXG4gICAgLyoqIElzc3VlICovXHJcbiAgICBJc3N1ZSA9IDEwMF8wMDBfMDAyLFxyXG5cclxuICAgIC8qKiBEZXBlbmRlbmN5ICovXHJcbiAgICBEZXBlbmRlbmN5ID0gMTAwXzAwMF8wMDMsXHJcblxyXG4gICAgLyoqIExlc3NvbnMgTGVhcm50ICovXHJcbiAgICBcIkxlc3NvbnMgTGVhcm50XCIgPSAxMDBfMDAwXzAwNCxcclxufVxyXG4iLCJpbXBvcnQgeyBQcm9qZWN0TG9nTWl0aWdhdGlvblJlc3BvbnNlIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RMb2dNaXRpZ2F0aW9uUmVzcG9uc2VcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZ1NldmVyaXR5IH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RMb2dTZXZlcml0eVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0TG9nU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0TG9nU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0TG9nVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0TG9nVHlwZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0TG9nIH0gZnJvbSBcIi4uL01vZGVscy9Qcm9qZWN0TG9nXCI7XHJcbmltcG9ydCB7IE1vY2tQb3J0YWxDb21tZW50RGF0YSB9IGZyb20gXCIuL01vY2tQb3J0YWxDb21tZW50RGF0YVwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgTW9jayBQcm9qZWN0IExvZ3MuICovXHJcbmV4cG9ydCBjb25zdCBNb2NrUHJvamVjdExvZ0RhdGE6IFByb2plY3RMb2dbXSA9IFtcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3Rsb2dzaWQ6IFwiNGZlZjg4MDUtZjMyNy1lZjExLTg0MGItMDAyMjQ4NDE3NWFkXCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIkV4YW1wbGUgMVwiLFxyXG4gICAgICAgIGJpc3RlY2hfdHlwZTogUHJvamVjdExvZ1R5cGUuRGVwZW5kZW5jeSxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMy0wMS0xMVQxNDo0NjoyN1pcIixcclxuICAgICAgICBiaXN0ZWNoX2Rlc2NyaXB0aW9uOiBcIkV4YW1wbGUgc2hvcnQgZGVzY3JpcHRpb25cIixcclxuICAgICAgICBiaXN0ZWNoX2ltcGFjdDogXCJIaWdoXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zZXZlcml0eTogUHJvamVjdExvZ1NldmVyaXR5Lk1lZGl1bSxcclxuICAgICAgICBiaXN0ZWNoX21pdGlnYXRpb25yZXNwb25zZW9wdGlvbnNldDogUHJvamVjdExvZ01pdGlnYXRpb25SZXNwb25zZVtcIlByZXBhcmUgQ29udGlnZW5jeSBQbGFuXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfdXBkYXRlZGV0YWlsczogXCJObyB1cGRhdGVzIHlldFwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RMb2dTdGF0dXNDb2RlLkluYWN0aXZlLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdGxvZ3NfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3Rsb2dzX2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9wcm9qZWN0bG9nc2lkOiBcIjQyNjk2OTM4LTZhMzgtZWYxMS1hMzE2LTYwNDViZGNmOWUyOFwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJFeGFtcGxlIDJcIixcclxuICAgICAgICBiaXN0ZWNoX3R5cGU6IFByb2plY3RMb2dUeXBlLlJpc2ssXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjMtMDktMTFUMTQ6NDY6MjdaXCIsXHJcbiAgICAgICAgYmlzdGVjaF9kZXNjcmlwdGlvbjogXCJFeGFtcGxlIG9mIGEgbG9uZyBkZXNjcmlwdGlvbiB0aGF0IHNob3VsZCBiZSB0cnVuY2F0ZWQgdG8gYSBjZXJ0YWluIGxlbmd0aFwiLFxyXG4gICAgICAgIGJpc3RlY2hfaW1wYWN0OiBcIkhpZ2hcIixcclxuICAgICAgICBiaXN0ZWNoX3NldmVyaXR5OiBQcm9qZWN0TG9nU2V2ZXJpdHkuTWVkaXVtLFxyXG4gICAgICAgIGJpc3RlY2hfbWl0aWdhdGlvbnJlc3BvbnNlb3B0aW9uc2V0OiBQcm9qZWN0TG9nTWl0aWdhdGlvblJlc3BvbnNlW1wiUHJlcGFyZSBDb250aWdlbmN5IFBsYW5cIl0sXHJcbiAgICAgICAgYmlzdGVjaF91cGRhdGVkZXRhaWxzOiBcIk5vIHVwZGF0ZXMgeWV0XCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdExvZ1N0YXR1c0NvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgYmlzdGVjaF9wcm9qZWN0bG9nc19hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdGxvZ3NfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3Rsb2dzaWQ6IFwiMzFiMjlhY2ItMDgyZi00YjZhLWI2YTUtMTIyODc1ZTgyYThlXCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIkV4YW1wbGUgM1wiLFxyXG4gICAgICAgIGJpc3RlY2hfdHlwZTogUHJvamVjdExvZ1R5cGVbXCJMZXNzb25zIExlYXJudFwiXSxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyNC0wMS0xMlQxNDo0NjoyN1pcIixcclxuICAgICAgICBiaXN0ZWNoX2Rlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBcImdqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzZ2poc2pnaGZkanNnaGZoZ3NnamhzamdoZmRqc2doZmhnc2dqaHNqZ2hmZGpzZ2hmaGdzXCIsXHJcbiAgICAgICAgYmlzdGVjaF9pbXBhY3Q6IFwiTWVkaXVtXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zZXZlcml0eTogUHJvamVjdExvZ1NldmVyaXR5LkxvdyxcclxuICAgICAgICBiaXN0ZWNoX21pdGlnYXRpb25yZXNwb25zZW9wdGlvbnNldDogUHJvamVjdExvZ01pdGlnYXRpb25SZXNwb25zZS5BY2NlcHQsXHJcbiAgICAgICAgYmlzdGVjaF91cGRhdGVkZXRhaWxzOlxyXG4gICAgICAgICAgICBcIk5vIHVwZGF0ZXMgeWV0IEV4ZXJjaXRhdGlvbiBldCBlbGl0IGVzdCB1bGxhbWNvIHF1aSB2b2x1cHRhdGUgY29tbW9kbyB2ZWxpdCBub24gaXBzdW0uIFZvbHVwdGF0ZSBldCBjdWxwYSBlaXVzbW9kIGxhYm9yaXMgbnVsbGEgY3VwaWRhdGF0IGlkIGFuaW0gZG8gb2NjYWVjYXQgYXV0ZS4gTGFib3JpcyBlbmltIGVsaXQgYXV0ZSBjdXBpZGF0YXQgZHVpcyBudWxsYS4gQWxpcXVpcCBhZGlwaXNpY2luZyBtYWduYSBpZCBjaWxsdW0gdmVuaWFtIHZlbmlhbSBhZCBkbyBhbGlxdWEgbmlzaSBsYWJvcnVtIGNvbnNlcXVhdC4gQ3VscGEgdmVuaWFtIGN1cGlkYXRhdCBpcHN1bSBlc3QgcHJvaWRlbnQgbm9uIGFuaW0gZXggTG9yZW0gb2ZmaWNpYSBhbmltIHF1aXMuIEV0IG5pc2kgYWxpcXVhIGVpdXNtb2QgcXVpcyBwcm9pZGVudCBhbGlxdWlwLiBMYWJvcmlzIHN1bnQgYWxpcXVpcCBpbmNpZGlkdW50IHNpbnQgcXVpcyBjaWxsdW0gZG9sb3JlIHV0IHByb2lkZW50LlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RMb2dTdGF0dXNDb2RlLkFjdGl2ZSxcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3Rsb2dzX2FkeF9wb3J0YWxjb21tZW50czogTW9ja1BvcnRhbENvbW1lbnREYXRhLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdGxvZ3NfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuXTtcclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VuaW5nIHRoZSBiaXN0ZWNoX2Fzc2lnbmVkdG8gdmFsdWUgb2YgYSBwcm9qZWN0IHRhc2suICovXHJcbmV4cG9ydCBlbnVtIFByb2plY3RUYXNrQXNzaWduZWRUbyB7XHJcbiAgICAvKiogVGhlIHByb2plY3QgdGFzayBpcyBhc3NpZ25lZCB0byBCaXN0ZWNoLiAqL1xyXG4gICAgQmlzdGVjaCA9IDEwMF8wMDBfMDAwLFxyXG5cclxuICAgIC8qKiBUaGUgcHJvamVjdCB0YXNrIGlzIGFzc2lnbmVkIHRvIHRoZSBjdXN0b21lci4gKi9cclxuICAgIEN1c3RvbWVyID0gMTAwXzAwMF8wMDEsXHJcbn0iLCIvKiogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBTdGF0dXMgQ29kZSBvZiBhIFByb2plY3QgVGFzayAqL1xyXG5leHBvcnQgZW51bSBQcm9qZWN0VGFza1N0YXR1c0NvZGUge1xyXG4gICAgLyoqIEluIFByb2dyZXNzIChBY3RpdmUpICovXHJcbiAgICBcIkluIFByb2dyZXNzXCIgPSAxLFxyXG5cclxuICAgIC8qKiBJbmFjdGl2ZSAoSW5hY3RpdmUpICovXHJcbiAgICBJbmFjdGl2ZSA9IDIsXHJcblxyXG4gICAgLyoqIEF3YWl0aW5nIEN1c3RvbWVyIChBY3RpdmUpICovXHJcbiAgICBcIkF3YWl0aW5nIEN1c3RvbWVyXCIgPSAxMDBfMDAwXzAwMSxcclxuXHJcbiAgICAvKiogQXdhaXRpbmcgM3JkIFBhcnR5IChBY3RpdmUpICovXHJcbiAgICBcIkF3YWl0aW5nIDNyZCBQYXJ0eVwiID0gMTAwXzAwMF8wMDIsXHJcblxyXG4gICAgLyoqIEJsb2NrZWQgKEFjdGl2ZSkgKi9cclxuICAgIEJsb2NrZWQgPSAxMDBfMDAwXzAwMyxcclxuXHJcbiAgICAvKiogQ29tcGxldGVkIChJbmFjdGl2ZSkgKi9cclxuICAgIENvbXBsZXRlZCA9IDEwMF8wMDBfMDA0LFxyXG5cclxuICAgIC8qKiBQZW5kaW5nIChBY3RpdmUpICovXHJcbiAgICBQZW5kaW5nID0gMTAwXzAwMF8wMDUsXHJcbn1cclxuIiwiaW1wb3J0IHsgUHJvamVjdFRhc2tBc3NpZ25lZFRvIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RUYXNrQXNzaWduZWRUb1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza1N0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFRhc2tTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrIH0gZnJvbSBcIi4uL01vZGVscy9Qcm9qZWN0VGFza1wiO1xyXG5pbXBvcnQgeyBNb2NrQ29udGFjdERhdGEgfSBmcm9tIFwiLi9Nb2NrQ29udGFjdERhdGFcIjtcclxuXHJcbi8qKiBNb2NrIGRhdGEgZm9yIFByb2plY3QgVGFza3MgKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tQcm9qZWN0VGFza0RhdGE6IFByb2plY3RUYXNrW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJlNTQ0ZDc4Zi1lYThkLWVlMTEtODE3My0wMDBkM2E3ZmJkODRcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkN1c3RvbWVyIFRyYWluaW5nL0hhbmRvdmVyXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZTNiNzY2MmMtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMjUuNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlLlBlbmRpbmcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNDNjODdkZTItYTkyMC1lZTExLThmNjktMDAwZDNhN2ZiZDg0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJFeHBsYWluIHRoZSBwcm9jZXNzIGZvciB0aGUgY3VzdG9tZXIgdG8gdGFrZSB3aGVuIGRldmljZXMgd2lsbCBub3QgZW5yb2xcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI0YTc0NDJmMi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE0MS41LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGUuUGVuZGluZyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJjNzQ3ZWY0Yi02ZjU4LWVlMTEtYmU2OS0wMDBkM2E3ZmJkODRcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkltcGxlbWVudCBTU08gZGV2aWNlIGdyb3VwIHBvbGljeVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImVmMDRkYzZlLTdiMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNjYuMDYyNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogNCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJBd2FpdGluZyAzcmQgUGFydHlcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYWFlNDA1NWItNmY1OC1lZTExLWJlNjktMDAwZDNhN2ZiZDg0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBc3Npc3Qgd2l0aCBpbXBsZW1lbnRpbmcgU1NPIGRldmljZSBncm91cCBwb2xpY3lcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJlZjA0ZGM2ZS03YjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDY2LjEyNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogNCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCIzYTU4NWNmOC02ZjU4LWVlMTEtYmU2OS0wMDBkM2E3ZmJkODRcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNvbmZpZ3VyZSBCaXN0ZWNoIGJlc3QtcHJhY3RpY2Ugc2VjdXJpdHkgZ3JvdXBzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiOGQ1MmY2NWItN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA4MS41LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAzLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjdhMGU4ZTA2LTcwNTgtZWUxMS1iZTY5LTAwMGQzYTdmYmQ4NFwiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQXNzaXN0IHdpdGggYmVzdC1wcmFjdGljZSBzZWN1cml0eSBncm91cHNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI4ZDUyZjY1Yi03YjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDgxLjc1LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAzLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjNjMDNkMTM0LTcwNTgtZWUxMS1iZTY5LTAwMGQzYTdmYmQ4NFwiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ29uZmlndXJlIENvbmRpdGlvbmFsIEFjY2VzcyBuYW1lZCBsb2NhdGlvbnNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI4ZDUyZjY1Yi03YjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDgzLjUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiMDJlOTZmNDktNzA1OC1lZTExLWJlNjktMDAwZDNhN2ZiZDg0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBc3Npc3Qgd2l0aCBDb25kaXRpb25hbCBBY2Nlc3MgbmFtZWQgbG9jYXRpb25zXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiOGQ1MmY2NWItN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA4My43NSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhYWQ0Yzk3OC03MDU4LWVlMTEtYmU2OS0wMDBkM2E3ZmJkODRcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNvbmZpZ3VyZSBCaXN0ZWNoIGJlc3QtcHJhY3RpY2UgYXBwIGNvbmZpZ3VyYXRpb24gcG9saWNpZXNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI4ZDUyZjY1Yi03YjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDg3LjUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYjBkNGM5NzgtNzA1OC1lZTExLWJlNjktMDAwZDNhN2ZiZDg0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCIgQXNzaXN0IHdpdGggYmVzdC1wcmFjdGljZSBhcHAgY29uZmlndXJhdGlvbiBwb2xpY2llc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjhkNTJmNjViLTdiMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogODcuNzUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZTU1MWNjOTUtMjc1OS1lZTExLWJlNjktMDAwZDNhN2ZiZDg0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJTZW5kIEVudGVycHJpc2UgTW9iaWxpdHkgKyBTZWN1cml0eSBwcmVyZXF1aXNpdGVzIE1TIGZvcm1cIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJhMDA5N2NkNy02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDIyLjUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiN2U4MWZlNmUtNWYxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJEaXJlY3RpbmcgYSBwcm9qZWN0IChub3Qgc3RhZ2UgZGVwZW5kZW50KVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI4MDgxZmU2ZS01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2plY3QgZHVyYXRpb24gLSBBbGxvY2F0aW9uIG9mIGEgUHJvamVjdCBNYW5hZ2VyIGZvciB1cCB0byAoVkFSSUFCTEUpIHdlZWtzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiN2U4MWZlNmUtNWYxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAzLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQ3VzdG9tZXJcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YVtcInNjb3R0TGFuZ1wiXS5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI4MjgxZmU2ZS01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2plY3QgZHVyYXRpb24gLSBBbGxvY2F0aW9uIG9mIGEgU29sdXRpb25zIENvbnN1bHRhbnQgZm9yIHVwIHRvIChWQVJJQUJMRSkgd2Vla3NcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI3ZTgxZmU2ZS01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDQsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlLkNvbXBsZXRlZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI4MmE1MzA3Ny01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OlxyXG4gICAgICAgICAgICBcIlNjaGVkdWxlZCBwcm9qZWN0IHVwZGF0ZSBtZWV0aW5ncyBldmVyeSAyIHdlZWtzIGZvciB1cCB0byAoVkFSSUFCTEUpIHdlZWtzIGVzdGltYXRlZCBwcm9qZWN0IGR1cmF0aW9uXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiN2U4MWZlNmUtNWYxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA1LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAyLTAyVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJBd2FpdGluZyAzcmQgUGFydHlcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZThkNWVhYjItNWYxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJVcCB0byAoVkFSSUFCTEUpIGhvdXJzIGNvbnRpbmdlbmN5IGJ1ZGdldFwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjdlODFmZTZlLTVmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMS0wM1QwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJlOGQ1ZWFiMi01ZjFhLWVlMTEtOGY2Ny0wMDBkM2EzZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkdldCB0aGUgQ3VzdG9tZXIgdG8gc2lnbiBvZmYgb24gdGhlIHByb2plY3RcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI3ZTgxZmU2ZS01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDcsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIzLTAxLTA0VDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZS5QZW5kaW5nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImU4ZDVlYWIyLTVmMWEtZWQxMS04ZjY3LTAwMGQzYTNmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiR2V0IHRoZSBTcGVjaWZpYyBVc2VyIGZyb20gdGhlIEN1c3RvbWVyIENvbXBhbnkgdG8gZ2V0IGluZm9ybWF0aW9uXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiN2U4MWZlNmUtNWYxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA4LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQ3VzdG9tZXJcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMS0wNVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YVtcInNjb3R0TGFuZ1wiXS5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI4ZmRhMjhmOS01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2plY3Qgc3RhcnR1cFwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkN1c3RvbWVyXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAxLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjQyYmFjZjI3LTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiRW5zdXJlIHRoYXQgYWxsIGluZm9ybWF0aW9uIHJlcXVpcmVkIGZvciB0aGUgcHJvamVjdCB0ZWFtIGlzIGF2YWlsYWJsZVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjhmZGEyOGY5LTVmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogOCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiOTU2YjhiMmUtNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDcmVhdGUgdGhlIHByb2plY3QgdGVhbSBhbmQgYXNzaWduIHJvbGVzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiOGZkYTI4ZjktNWYxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA5LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQ3VzdG9tZXJcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiOTc2YjhiMmUtNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDb250cmFjdCByZXZpZXdcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI4ZmRhMjhmOS01ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEwLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI2YWRkZTQ0ZC02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2plY3QgaW5pdGlhdGlvblwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTEsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAxLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImU5MGZlZTUzLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ2xhaW0gQ3VzdG9tZXIgUGFydG5lciBPZiBSZWNvcmQgKENQT1IpXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiNmFkZGU0NGQtNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkN1c3RvbWVyXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjU3M2QwOTViLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ3JlYXRlIFByb2plY3QgSW5pdGlhdGlvbiBEb2N1bWVudCAoUElEKVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjZhZGRlNDRkLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTMsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjU5M2QwOTViLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiVGVjaG5pY2FsIHJldmlldyBvZiBpbXBsZW1lbnRhdGlvbiBhcHByb2FjaFwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjZhZGRlNDRkLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTQsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI0ZGU5N2Y2MS02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNyZWF0ZSBvciBhcnJhbmdlIHJlcXVpcmVkIGFjY2VzcyBmb3IgdGhlIENvbnN1bHRhbnRcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI2YWRkZTQ0ZC02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE1LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI0ZmU5N2Y2MS02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIk9idGFpbiBhIGxpc3Qgb2YgYXV0aG9yaXNlZCBjb250YWN0c1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjZhZGRlNDRkLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTYsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCIyZmY1NTg2YS02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkVuYWJsZSBhY2Nlc3MgdG8gdGhlIEJpc3RlY2ggYW5kIFRlY2hEYXRhIHBvcnRhbHNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI2YWRkZTQ0ZC02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE3LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI0OTFiNDJjZC02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2plY3QgcGxhbm5pbmdcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogbnVsbCxcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDIwLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQ3VzdG9tZXJcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhMDA5N2NkNy02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkVudGVycHJpc2UgTW9iaWxpdHkgKyBTZWN1cml0eSAtIHRlY2huaWNhbCBwcmVwYXJhdGlvblwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjQ5MWI0MmNkLTYwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMjEsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYWU2YjYzZTAtNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDpcclxuICAgICAgICAgICAgXCJDb25maXJtIHRoYXQgQXp1cmUgdGVuYW50IGhhcyBiZWVuIGNyZWF0ZWQgYW5kIEF6dXJlIEFEIENvbm5lY3QgaXMgc2V0IHVwIElmIHVzaW5nIGh5YnJpZCBpZGVudGl0aWVzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiYTAwOTdjZDctNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAyMixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkN1c3RvbWVyXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZjMyYmVkZjktNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDb21wbGV0ZSBFbnRlcnByaXNlIE1vYmlsaXR5ICsgU2VjdXJpdHkgcHJlcmVxdWlzaXRlcyBNUyBmb3JtXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiYTAwOTdjZDctNjAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAyMyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI3NTBlYjExYS02MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkN1c3RvbWVyIG1lZXRpbmdcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJhMDA5N2NkNy02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDI0LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAzLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjNkYTgwMDJkLTYxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUmV2aWV3IEVudGVycHJpc2UgTW9iaWxpdHkgKyBTZWN1cml0eSBwcmVyZXF1aXNpdGVzIE1TIGZvcm0gYW5kIFRlc3QgUGxhblwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjc1MGViMTFhLTYxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMjUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDQsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiMDAyYWQ0MzYtNjExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBc3Npc3Qgd2l0aCBjcmVhdGluZyBjb3Jwb3JhdGUgQXBwbGUgYWNjb3VudCAoZm9yIGlPUyBkZXZpY2VzKVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjc1MGViMTFhLTYxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMjYsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhW1wicGV0ZXJRdWlsbFwiXS5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogNCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCIwMjJhZDQzNi02MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNyZWF0ZSBhIGNvcnBvcmF0ZSBBcHBsZSBhY2NvdW50IChmb3IgaU9TIGRldmljZXMpXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiNzUwZWIxMWEtNjExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAyNyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogNCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJmNmVhOWIzZC02MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNyZWF0ZSBhIGxpc3Qgb2YgZGV2aWNlIHR5cGVzIGFuZCBxdWFudGl0aWVzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiNzUwZWIxMWEtNjExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAzMCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogNCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJiMzQ4NjE0NC02MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIk9idGFpbiBub3RpZmljYXRpb24gZW1haWwgYWRkcmVzc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjc1MGViMTFhLTYxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMzIsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhW1wiYnJ1Y2VCYW5uZXJcIl0uY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDQsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiMTIyZTE4ODgtN2ExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBZGQgRW50ZXJwcmlzZSBNb2JpbGl0eSArIFNlY3VyaXR5IGxpY2VuY2luZyB0byBjdXN0b21lciB0ZW5hbnRcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJhMDA5N2NkNy02MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDU1LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAzLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjhiNTJmNjViLTdiMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUHJvamVjdCBkZWxpdmVyeVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNTYsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDEsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiOGQ1MmY2NWItN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJEYXkgMVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjhiNTJmNjViLTdiMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNTcsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZWYwNGRjNmUtN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDdXN0b21lciBtZWV0aW5nIC0ga2ljay1vZmYgbWVldGluZ1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjhkNTJmNjViLTdiMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNTgsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYTc1NmQ0NzQtN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDcmVhdGUgbGljZW5jaW5nIGdyb3Vwc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImVmMDRkYzZlLTdiMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogNTksXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDQsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNzJhOGYxN2UtN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBc3Npc3Qgd2l0aCBjcmVhdGluZyBsaWNlbmNpbmcgZ3JvdXBzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZWYwNGRjNmUtN2IxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA2MCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogNCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI1OGRhODJjYS03ZDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkFwcGxlIEJ1c2luZXNzIE1hbmFnZXIgRGF5XCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA5MyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI4MzM4YThlZS03ZDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkN1c3RvbWVyIG1lZXRpbmdcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI1OGRhODJjYS03ZDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDk0LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjg1MzhhOGVlLTdkMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ29uZmlndXJlIEFwcGxlIEJ1c2luZXNzIE1hbmFnZXIgZm9yIGVucm9sbWVudCBpZiBhbHJlYWR5IHVzZWQgb3IgcmVxdWlyZWQgKHZhcmlhYmxlKVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjgzMzhhOGVlLTdkMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogOTUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiOTY5MjJhMzYtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJTYW1zdW5nIEtub3ggU2VjdXJlIFBsYXRmb3JtIFNvbHV0aW9uIERheVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogOTYsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDEsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZDVkMDljNDEtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDdXN0b21lciBtZWV0aW5nXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiOTY5MjJhMzYtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA5NyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhMzIwNWE0OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNvbmZpZ3VyZSBTYW1zdW5nIEtub3ggd2l0aCBzdXBwbGllZCBkb2N1bWVudGF0aW9uXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZDVkMDljNDEtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiA5OCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhNTIwNWE0OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlN1cHBvcnQgY3VzdG9tZXIgd2l0aCBTYW1zdW5nIEtub3ggY29uZmlndXJhdGlvblwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImQ1ZDA5YzQxLTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogOTksXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhW1wic3RlcGhlbnN0cmFuZ2VcIl0uY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYzg0NTFjNTktN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJEYXkgMlwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTAwLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAxLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImNhNDUxYzU5LTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ3VzdG9tZXIgbWVldGluZyAtIGRheSAyXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiYzg0NTFjNTktN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMDEsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiN2E4NzhiNjItN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDb25maWd1cmUgTWljcm9zb2Z0IDM2NSBhcHBsaWNhdGlvbnMgYW5kIGNvbXBhbnkgcG9ydGFsIGZvciBXaW5kb3dzIGRldmljZXNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJjYTQ1MWM1OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEwMixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI1NDAyMjY2OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkFzc2lzdCB3aXRoIGNvbmZpZ3VyaW5nIE1pY3Jvc29mdCAzNjUgYXBwbGljYXRpb25zIGFuZCBjb21wYW55IHBvcnRhbCBmb3IgV2luZG93cyBkZXZpY2VzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiY2E0NTFjNTktN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMDMsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNTYwMjI2NjktN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDb25maWd1cmUgdXAgdG8gKHZhcmlhYmxlKSBhZGRpdGlvbmFsIGFwcGxpY2F0aW9uIGRlcGxveW1lbnRzIGZvciBjdXN0b21lciBhcHBsaWNhdGlvbnNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJjYTQ1MWM1OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEwNCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI1ODAyMjY2OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkFzc2lzdCB3aXRoIGFwcGxpY2F0aW9uIGRlcGxveW1lbnRzIGZvciBjdXN0b21lciBhcHBsaWNhdGlvbnNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJjYTQ1MWM1OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEwNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhODhiZWE3MC03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkVuYWJsZSBjb25maWd1cmF0aW9uIHByb2ZpbGVzIGZvciBwcmV2aWV3IGRldmljZXNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJjYTQ1MWM1OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEwNixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhYThiZWE3MC03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkRlcGxveSBXaW5kb3dzIEFwcHMgZm9yIHByZXZpZXcgZGV2aWNlc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImNhNDUxYzU5LTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTA2LjI1LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAzLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImEwNGEwNDc3LTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUHJvdmlkZSBDdXN0b21lciB3aXRoIE1vYmlsZSBEZXZpY2UgRW5yb2xtZW50IEluc3RydWN0aW9uc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImNhNDUxYzU5LTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTA5LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQ3VzdG9tZXJcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YVtcInNjb3R0TGFuZ1wiXS5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhMjRhMDQ3Ny03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkFncmVlIGJlc3QtcHJhY3RpY2UgcG9saWNpZXNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJjYTQ1MWM1OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDExMCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI0OTZkZjM5Zi03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkFkanVzdCBCaXN0ZWNoIGJlc3QtcHJhY3RpY2UgcG9saWNpZXMgaW4gbGluZSB3aXRoIGN1c3RvbWVyIHJlcXVpcmVtZW50cyAtIHN0YWdlIDFcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJjODQ1MWM1OS03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDExMSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCIyNDZlOThjYi03ZjFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkRheSAzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMTIsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDEsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiMjY2ZTk4Y2ItN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJSZXZpZXcgcHJldmlldyBkZXZpY2UgY29tcGxpYW5jZVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjI0NmU5OGNiLTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTEzLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjdlMDQ3M2Q1LTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQXNzaXN0IHdpdGggY29uZmlndXJpbmcgY3VzdG9tIGJhbm5lZCBwYXNzd29yZCBsaXN0IChhbmQgb24tcHJlbSBpbnRlZ3JhdGlvbiBpZiBoeWJyaWQpXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMjQ2ZTk4Y2ItN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMTQsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiODAwNDczZDUtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDb25maWd1cmUgY3VzdG9tIGJhbm5lZCBwYXNzd29yZCBsaXN0IChhbmQgb24tcHJlbSBpbnRlZ3JhdGlvbiBpZiBoeWJyaWQpXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMjQ2ZTk4Y2ItN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMTUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiODIwNDczZDUtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBZGp1c3QgQmlzdGVjaCBiZXN0LXByYWN0aWNlIHBvbGljaWVzIGluIGxpbmUgd2l0aCBjdXN0b21lciByZXF1aXJlbWVudHMgLSBzdGFnZSAyXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMjQ2ZTk4Y2ItN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMTYsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZThmYzVhZjMtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJEYXkgNFwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTE3LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAxLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImVhZmM1YWYzLTdmMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUmV2aWV3IENvbmRpdGlvbmFsIEFjY2VzcyByZXBvcnRzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZThmYzVhZjMtN2YxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMTgsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiZDUwZTlhMDItODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJEYXkgNVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTE5LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAxLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImQ3MGU5YTAyLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiRW5hYmxlIENvbmRpdGlvbmFsIEFjY2VzcyBwb2xpY2llcyBmb3IgUHJldmlldyBVc2Vyc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImQ1MGU5YTAyLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTIwLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImUzYjc2NjJjLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUHJvamVjdCBwcmUtY2xvc3VyZVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTI0LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJlNWI3NjYyYy04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkN1c3RvbWVyIFRyYWluaW5nL0hhbmRvdmVyXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZTNiNzY2MmMtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMjUsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJDdXN0b21lclwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhW1wicGV0ZXJRdWlsbFwiXS5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJlZjJhNmEzYi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb3ZpZGUgcHJvamVjdCBjb21wbGV0aW9uIGRvY3VtZW50YXRpb25cIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJlM2I3NjYyYy04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEyNixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJmMTJhNmEzYi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlJlbW92ZSBCaXN0ZWNoIGFjY291bnRzIGFuZCBwb2xpY2llc1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImUzYjc2NjJjLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTI3LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImYzMmE2YTNiLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiRG9lcyB0aGUgY3VzdG9tZXIgaGF2ZSBJVCBTdXBwb3J0PyBcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJlM2I3NjYyYy04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEyOCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNTIzZTliNDItODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDpcclxuICAgICAgICAgICAgXCJDcmVhdGUgYWxsIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBCaXN0ZWNoIFN1cHBvcnQgZW50cmllcyBpbiBJVCBHbHVlIHdpdGggZGV0YWlscyBlZywgc2VyaWFsIG51bWJlcnNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJlM2I3NjYyYy04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEyOSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNTQzZTliNDItODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJFbnN1cmUgdGhhdCBhY2Nlc3MvY3JlZGVudGlhbHMgdG8gc3VwcG9ydGVkIGRldmljZXMgYXJlIGRvY3VtZW50ZWRcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJlM2I3NjYyYy04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEzMCxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNTYzZTliNDItODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJOb3RpZnkgY3VzdG9tZXIgdGhhdCBzdXBwb3J0IGhhcyBjb21tZW5jZWRcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCJlM2I3NjYyYy04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEzMSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYWEwYzNkNGItODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJBZHZpc2UgU2VydmljZSBEZXNrIHRoYXQgc2VydmljZXMgbGl2ZVwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcImUzYjc2NjJjLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTMyLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJhYzBjM2Q0Yi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkVudGVycHJpc2UgTW9iaWxpdHkgKyBTZWN1cml0eSAtIHBvc3QtZGVwbG95bWVudCBzdXBwb3J0IGZvciAxNCBkYXlzXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZTNiNzY2MmMtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMzMsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjA2OWJhMDdmLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUHJvamVjdCBjbG9zdXJlXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMzQsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAxLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjNmYmIwN2U2LTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ2hlY2sgb2JqZWN0aXZlcyBoYXZlIGJlZW4gbWV0IGFnYWluc3QgdGhlIG9yZGVyIGZvcm0sIGJ1c2luZXNzIGNhc2UgYW5kIFBJRFwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjA2OWJhMDdmLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTM1LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCI0YTc0NDJmMi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIk1haW50ZW5hbmNlIGFuZCBvcGVyYXRpb25hbCBoYW5kb3ZlclwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjA2OWJhMDdmLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTM2LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJlNTNjOGEwMi04MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIk1ha2UgcmVjb21tZW5kYXRpb25zIGZvciBhbnkgZm9sbG93LXVwIGFjdGlvbnNcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI0YTc0NDJmMi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDEzNyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiMmE3NmNjMDgtODExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJTZW5kICdNYW5hZ2luZyBTZWN1cml0eSBpbiBFbmRwb2ludCBNYW5hZ2VyJyBkb2N1bWVudFwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjRhNzQ0MmYyLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTM4LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCIyYzc2Y2MwOC04MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlNlbmQgdGhlIEVudGVycHJpc2UgTWFuYWdlbWVudCArIFNlY3VyaXR5IGhhbmRvdmVyIHRlbXBsYXRlIGVtYWlsXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiNGE3NDQyZjItODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMzksXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAzLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjJlNzZjYzA4LTgxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ29tcGxldGUgYSBtYWludGVuYW5jZSBhbmQgb3BlcmF0aW9ucyBoYW5kb3ZlclwiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjRhNzQ0MmYyLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTQwLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMyxcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJmNWZjM2IwZi04MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNvbXBsZXRlIGEgbWFpbnRlbmFuY2UgYW5kIG9wZXJhdGlvbnMgaGFuZG92ZXJcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI0YTc0NDJmMi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE0MSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYjY2YTM5M2QtODExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJGaW5hbCByZXZpZXcgb2YgSVQgR2x1ZSBkb2N1bWVudGF0aW9uXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMDY5YmEwN2YtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxNDIsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImI4NmEzOTNkLTgxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiVXBkYXRlIFJNVCBhbGxvY2F0aW9uXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMDY5YmEwN2YtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxNDMsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcImJhNmEzOTNkLTgxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ29tcGxldGUgMjQgaG91ciBjaGVja3NcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCI0YTc0NDJmMi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE0MS43NSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDMsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYTg1NDM1NDctODExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJSZW1vdmUgcGFzc3dvcmRzIGZyb20gVGh5Y290aWMgaWYgY3VzdG9tZXIgZG9lcyBub3QgaGF2ZSBhbnkgQmlzdGVjaCBzdXBwb3J0XCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMDY5YmEwN2YtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxNDIuNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiYWE1NDM1NDctODExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJTZW5kIGZlZWRiYWNrIGZvcm1cIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCIwNjliYTA3Zi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE0NixcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiOTQ3Y2ViNGUtODExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJSZXZpZXcgdGhlIHByb2plY3QgYW5kIGRvY3VtZW50IGFueSBsZXNzb25zIGxlYXJuZWRcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCIwNjliYTA3Zi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE0NyxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiOTY3Y2ViNGUtODExYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDbG9zZSByaXNrIHJlZ2lzdGVyXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiMDY5YmEwN2YtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxNDgsXHJcbiAgICAgICAgYmlzdGVjaF9hc3NpZ25lZHRvOiBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bXCJCaXN0ZWNoXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsOiB0cnVlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjItMDEtMDFUMDA6MDA6MDBaXCIpLFxyXG4gICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfaW5jbHVkZWluc3RhdGVtZW50b2Z3b3JrczogZmFsc2UsXHJcbiAgICAgICAgbXNkeW5fb3V0bGluZWxldmVsOiAyLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RUYXNrU3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0dGFza2lkOiBcIjk4N2NlYjRlLTgxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiQ2xvc2UgdGVjaG5pY2FsIGxvZ1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjA2OWJhMDdmLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTQ5LFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJiOWZjYmE1Ny04MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlNlbmQgY2hhc2VyIGZvciBmZWVkYmFjayBmb3JtIGFmdGVyIDcgZGF5c1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjA2OWJhMDdmLTgwMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMTUwLFxyXG4gICAgICAgIGJpc3RlY2hfYXNzaWduZWR0bzogUHJvamVjdFRhc2tBc3NpZ25lZFRvW1wiQmlzdGVjaFwiXSxcclxuICAgICAgICBiaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbDogdHJ1ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDIyLTAxLTAxVDAwOjAwOjAwWlwiKSxcclxuICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M6IGZhbHNlLFxyXG4gICAgICAgIG1zZHluX291dGxpbmVsZXZlbDogMixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdHRhc2tpZDogXCJiYmZjYmE1Ny04MTFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIkNvbXBsZXRlIER5bmFtaWNzIFByb2plY3RcIixcclxuICAgICAgICBfbXNkeW5fcGFyZW50dGFza192YWx1ZTogXCIwNjliYTA3Zi04MDFhLWVlMTEtOGY2Ny0wMDBkM2E3ZmJkYmNcIixcclxuICAgICAgICBtc2R5bl9kaXNwbGF5c2VxdWVuY2U6IDE1MSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiNmYzYzI5ZDYtMmE4OS1lZTExLTgxNzMtNjA0NWJkMTA0MGQyXCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJJbmRlcGVuZGVudCBwZWVyIHJldmlldyBvZiBjb25maWd1cmF0aW9uXCIsXHJcbiAgICAgICAgX21zZHluX3BhcmVudHRhc2tfdmFsdWU6IFwiZTNiNzY2MmMtODAxYS1lZTExLThmNjctMDAwZDNhN2ZiZGJjXCIsXHJcbiAgICAgICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlOiAxMjQuNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IFwiMDdkMjA4YzktZDI5OC1lZTExLWJlMzEtNjA0NWJkMTA0ZjM5XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJDb25maXJtIGlmIHRoZSBjdXN0b21lciBpcyB1c2luZyBzZWN1cml0eSBkZWZhdWx0c1wiLFxyXG4gICAgICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlOiBcIjc1MGViMTFhLTYxMWEtZWUxMS04ZjY3LTAwMGQzYTdmYmRiY1wiLFxyXG4gICAgICAgIG1zZHluX2Rpc3BsYXlzZXF1ZW5jZTogMjQuNSxcclxuICAgICAgICBiaXN0ZWNoX2Fzc2lnbmVkdG86IFByb2plY3RUYXNrQXNzaWduZWRUb1tcIkJpc3RlY2hcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWw6IHRydWUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMi0wMS0wMVQwMDowMDowMFpcIiksXHJcbiAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgYmlzdGVjaF9pbmNsdWRlaW5zdGF0ZW1lbnRvZndvcmtzOiBmYWxzZSxcclxuICAgICAgICBtc2R5bl9vdXRsaW5lbGV2ZWw6IDQsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFRhc2tTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICB9LFxyXG5dO1xyXG4iLCJpbXBvcnQgeyBQcm9qZWN0U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgUHJvamVjdFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9Nb2RlbHMvUHJvamVjdFwiO1xyXG5pbXBvcnQgeyBNb2NrQ29udGFjdERhdGEgfSBmcm9tIFwiLi9Nb2NrQ29udGFjdERhdGFcIjtcclxuaW1wb3J0IHsgTW9ja1BvcnRhbENvbW1lbnREYXRhIH0gZnJvbSBcIi4vTW9ja1BvcnRhbENvbW1lbnREYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tQb3J0YWxFbWFpbERhdGEgfSBmcm9tIFwiLi9Nb2NrUG9ydGFsRW1haWxEYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tQcm9qZWN0TG9nRGF0YSB9IGZyb20gXCIuL01vY2tQcm9qZWN0TG9nRGF0YVwiO1xyXG5pbXBvcnQgeyBNb2NrUHJvamVjdFRhc2tEYXRhIH0gZnJvbSBcIi4vTW9ja1Byb2plY3RUYXNrRGF0YVwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgUHJvamVjdHMgKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tQcm9qZWN0RGF0YSA9IHtcclxuICAgIFwiTWljcm9zb2Z0IERlZmVuZGVyIGZvciBFbmRwb2ludC9CdXNpbmVzc1wiOiB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdGlkOiBcImI5YzVmZTMzLTgwOGYtNDdhMC04NDAyLWRlOWIyZWUxMGE3ZFwiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiTWljcm9zb2Z0IERlZmVuZGVyIGZvciBFbmRwb2ludC9CdXNpbmVzc1wiLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdG51bWJlcjogXCJQUk9KLTczMzY3LVoyRTYxMlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICAgICAgc3RhdGVjb2RlOiBQcm9qZWN0U3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDI0LTAxLTA0XCIpLFxyXG4gICAgICAgIGJpc3RlY2hfZXN0aW1hdGVkZmluaXNoZGF0ZTogbmV3IERhdGUoXCIyMDI0LTA4LTEyXCIpLFxyXG4gICAgICAgIF9vd25lcmlkX3ZhbHVlOiBcImZiNmNiNTVkLTcyZWUtZTgxMS1hOTdlLTAwMjI0ODAxYjRjOFwiLFxyXG4gICAgICAgIFwiX293bmVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJMb3Vpc2EgQWxsZW5cIixcclxuICAgICAgICBfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlOiBcIjJlNzNkNDVhLTcxZTctNDZiNS1iNDQ4LWVkMmU0M2U3ZDc2YlwiLFxyXG4gICAgICAgIFwiX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIk9SRC01NDMyMjMtOTI1LU5PLU9SREVSRk9STVwiLFxyXG4gICAgICAgIF9tc2R5bl9jdXN0b21lcl92YWx1ZTogXCJkMGE0ZDFmMS1iYWU5LTM3ZTMtOWIzNi1hMzFlODA3ODNlMDVcIixcclxuICAgICAgICBcIl9tc2R5bl9jdXN0b21lcl92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkV4YW1wbGUgQWNjb3VudCBOYW1lIFwiLFxyXG4gICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogTW9ja1Byb2plY3RUYXNrRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX2Jpc3RlY2hfcHJvamVjdGxvZ3NfUHJvamVjdF9tc2R5bl9wcm9qZWN0OiBNb2NrUHJvamVjdExvZ0RhdGEsXHJcbiAgICAgICAgYmlzdGVjaF9tc2R5bl9wcm9qZWN0X0NvbnRhY3RfQ29udGFjdDogT2JqZWN0LnZhbHVlcyhNb2NrQ29udGFjdERhdGEpLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYWR4X3BvcnRhbGNvbW1lbnRzOiBNb2NrUG9ydGFsQ29tbWVudERhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogTW9ja1BvcnRhbEVtYWlsRGF0YSxcclxuICAgIH0sXHJcbiAgICBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBBenVyZSBTdWJzY3JpcHRpb25cIjoge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3RpZDogXCJiYzUyMjk1MS1kY2M3LWVkMTEtYjU5Ni0wMDIyNDgzZWZkMzVcIixcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3RudW1iZXI6IFwiUFJPSi04MzMyMS1HMkUxOTJcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBBenVyZSBTdWJzY3JpcHRpb25cIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQcm9qZWN0U3RhdHVzQ29kZS5CbG9ja2VkLFxyXG4gICAgICAgIHN0YXRlY29kZTogUHJvamVjdFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMy0yMVQwOTowMDowMFpcIiksXHJcbiAgICAgICAgYmlzdGVjaF9lc3RpbWF0ZWRmaW5pc2hkYXRlOiBuZXcgRGF0ZShcIjIwMjQtMDgtMTJcIiksXHJcbiAgICAgICAgX293bmVyaWRfdmFsdWU6IFwiZmI2Y2I1NWQtNzJlZS1lODExLWE5N2UtMDAyMjQ4MDFiNGM4XCIsXHJcbiAgICAgICAgXCJfb3duZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkxvdWlzYSBBbGxlblwiLFxyXG4gICAgICAgIF9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWU6IFwiZmUxZWQxZDAtNGNiYS00YWVjLWI1ZjMtZjNlZDEyZjlhMDYwXCIsXHJcbiAgICAgICAgX21zZHluX2N1c3RvbWVyX3ZhbHVlOiBcImQwYTRkMWYxLWJhZTktMzdlMy05YjM2LWEzMWU4MDc4M2UwNVwiLFxyXG4gICAgICAgIFwiX21zZHluX2N1c3RvbWVyX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiRXhhbXBsZSBDb21wYW55IExpbWl0ZWRcIixcclxuICAgICAgICBcIl9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJPUkQtMDEyMzQ1LTEyM1wiLFxyXG4gICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogTW9ja1Byb2plY3RUYXNrRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0OiBPYmplY3QudmFsdWVzKE1vY2tDb250YWN0RGF0YSksXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX3Byb2plY3Rsb2dzX1Byb2plY3RfbXNkeW5fcHJvamVjdDogTW9ja1Byb2plY3RMb2dEYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYWR4X3BvcnRhbGNvbW1lbnRzOiBNb2NrUG9ydGFsQ29tbWVudERhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogTW9ja1BvcnRhbEVtYWlsRGF0YSxcclxuICAgIH0sXHJcbiAgICBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBUb29sZWQgTWlncmF0aW9uXCI6IHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0aWQ6IFwiNzFlOGEyNzYtYzNjOC1lZDExLWI1OTYtMDAyMjQ4M2VmZDM1XCIsXHJcbiAgICAgICAgYmlzdGVjaF9wcm9qZWN0bnVtYmVyOiBcIlBST0otNjMzNDUtQTJEMTc0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRXhjaGFuZ2UgT25saW5lIC0gVG9vbGVkIE1pZ3JhdGlvblwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RTdGF0dXNDb2RlLkNsb3NlZCxcclxuICAgICAgICBzdGF0ZWNvZGU6IFByb2plY3RTdGF0ZUNvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMy0yMlQwOTowMDowMFpcIiksXHJcbiAgICAgICAgYmlzdGVjaF9lc3RpbWF0ZWRmaW5pc2hkYXRlOiBuZXcgRGF0ZShcIjIwMjQtMDgtMTJcIiksXHJcbiAgICAgICAgX293bmVyaWRfdmFsdWU6IFwiZTRhM2M0ZjAtYmM1YS1lOTExLWE5OGQtMDAyMjQ4MDE4YjgwXCIsXHJcbiAgICAgICAgXCJfb3duZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkVsaXphIERvb2xpdHRsZVwiLFxyXG4gICAgICAgIF9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWU6IFwiZmUxZWQxZDAtNGNiYS00YWVjLWI1ZjMtZjNlZDEyZjlhMDYwXCIsXHJcbiAgICAgICAgX21zZHluX2N1c3RvbWVyX3ZhbHVlOiBcImQwYTRkMWYxLWJhZTktMzdlMy05YjM2LWEzMWU4MDc4M2UwNVwiLFxyXG4gICAgICAgIFwiX21zZHluX2N1c3RvbWVyX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiRXhhbXBsZSBQcml2YXRlIEVudGVycHJpc2VcIixcclxuICAgICAgICBcIl9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJPUkQtMDEyMzQ1LTEyM1wiLFxyXG4gICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogTW9ja1Byb2plY3RUYXNrRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0OiBPYmplY3QudmFsdWVzKE1vY2tDb250YWN0RGF0YSksXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX3Byb2plY3Rsb2dzX1Byb2plY3RfbXNkeW5fcHJvamVjdDogTW9ja1Byb2plY3RMb2dEYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYWR4X3BvcnRhbGNvbW1lbnRzOiBNb2NrUG9ydGFsQ29tbWVudERhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogTW9ja1BvcnRhbEVtYWlsRGF0YSxcclxuICAgIH0sXHJcbiAgICBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBGdWxsIE1pZ3JhdGlvblwiOiB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdGlkOiBcImYxZThhMjc2LWMzYzgtZWQxMS1jNTkxLTAwMjI0ODNlZmQzMlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdG51bWJlcjogXCJQUk9KLTEzMzQyLUIyRDE3MlwiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEV4Y2hhbmdlIE9ubGluZSAtIEZ1bGwgTWlncmF0aW9uXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFN0YXR1c0NvZGUuUHJvY2Vzc2luZyxcclxuICAgICAgICBzdGF0ZWNvZGU6IFByb2plY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjMtMDMtMjJUMDk6MDA6MDBaXCIpLFxyXG4gICAgICAgIGJpc3RlY2hfZXN0aW1hdGVkZmluaXNoZGF0ZTogbmV3IERhdGUoXCIyMDI0LTA4LTEyXCIpLFxyXG4gICAgICAgIF9vd25lcmlkX3ZhbHVlOiBcImU0YTNjNGYwLWJjNWEtZTkxMS1hOThkLTAwMjI0ODAxOGI4MFwiLFxyXG4gICAgICAgIFwiX293bmVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJFbGl6YSBEb29saXR0bGVcIixcclxuICAgICAgICBfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlOiBcImZlMWVkMWQwLTRjYmEtNGFlYy1iNWYzLWYzZWQxMmY5YTA2MFwiLFxyXG4gICAgICAgIF9tc2R5bl9jdXN0b21lcl92YWx1ZTogXCJkMGE0ZDFmMS1iYWU5LTM3ZTMtOWIzNi1hMzFlODA3ODNlMDVcIixcclxuICAgICAgICBcIl9tc2R5bl9jdXN0b21lcl92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkV4YW1wbGUgQ29tcGFueVwiLFxyXG4gICAgICAgIFwiX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIk9SRC0wMTIzNDUtMTIzXCIsXHJcbiAgICAgICAgbXNkeW5fbXNkeW5fcHJvamVjdF9tc2R5bl9wcm9qZWN0dGFza19wcm9qZWN0OiBNb2NrUHJvamVjdFRhc2tEYXRhLFxyXG4gICAgICAgIGJpc3RlY2hfbXNkeW5fcHJvamVjdF9Db250YWN0X0NvbnRhY3Q6IE9iamVjdC52YWx1ZXMoTW9ja0NvbnRhY3REYXRhKS5zbGljZSgwLCAxKSxcclxuICAgICAgICBiaXN0ZWNoX2Jpc3RlY2hfcHJvamVjdGxvZ3NfUHJvamVjdF9tc2R5bl9wcm9qZWN0OiBNb2NrUHJvamVjdExvZ0RhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9hZHhfcG9ydGFsY29tbWVudHM6IE1vY2tQb3J0YWxDb21tZW50RGF0YSxcclxuICAgICAgICBtc2R5bl9wcm9qZWN0X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBNb2NrUG9ydGFsRW1haWxEYXRhLFxyXG4gICAgfSxcclxuICAgIFwiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEV4Y2hhbmdlIC0gUGFydCBNaWdyYXRpb25cIjoge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3RpZDogXCIxMWU4YTI3Ni1jM2M4LWVkMTEtYTU5Mi0wMDIyNDgzZWZkM2FcIixcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3RudW1iZXI6IFwiUFJPSi04MzM0MS1GMkQxNzFcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSAtIFBhcnQgTWlncmF0aW9uXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFN0YXR1c0NvZGVbXCJQZW5kaW5nIFN0YXJ0XCJdLFxyXG4gICAgICAgIHN0YXRlY29kZTogUHJvamVjdFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMy0yMFQwOTowMDowMFpcIiksXHJcbiAgICAgICAgYmlzdGVjaF9lc3RpbWF0ZWRmaW5pc2hkYXRlOiBuZXcgRGF0ZShcIjIwMjQtMDgtMTJcIiksXHJcbiAgICAgICAgX293bmVyaWRfdmFsdWU6IFwiZTRhM2M0ZjAtYmM1YS1lOTExLWE5OGQtMDAyMjQ4MDE4YjgwXCIsXHJcbiAgICAgICAgXCJfb3duZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkVsaXphIERvb2xpdHRsZVwiLFxyXG4gICAgICAgIF9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWU6IFwiZmUxZWQxZDAtNGNiYS00YWVjLWI1ZjMtZjNlZDEyZjlhMDYwXCIsXHJcbiAgICAgICAgX21zZHluX2N1c3RvbWVyX3ZhbHVlOiBcImQwYTRkMWYxLWJhZTktMzdlMy05YjM2LWEzMWU4MDc4M2UwNVwiLFxyXG4gICAgICAgIFwiX21zZHluX2N1c3RvbWVyX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiRXhhbXBsZSBMZWdhbCBFbnRpdHlcIixcclxuICAgICAgICBcIl9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJPUkQtMDEyMzQ1LTEyM1wiLFxyXG4gICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogTW9ja1Byb2plY3RUYXNrRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0OiBPYmplY3QudmFsdWVzKE1vY2tDb250YWN0RGF0YSksXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX3Byb2plY3Rsb2dzX1Byb2plY3RfbXNkeW5fcHJvamVjdDogTW9ja1Byb2plY3RMb2dEYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYWR4X3BvcnRhbGNvbW1lbnRzOiBNb2NrUG9ydGFsQ29tbWVudERhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogTW9ja1BvcnRhbEVtYWlsRGF0YSxcclxuICAgIH0sXHJcbiAgICBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFbnRyYSBJRFwiOiB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdGlkOiBcIjk2NjMxMWY4LWY1YzctZWQxMS1iNTk2LTAwMjI0ODQxYzY2MFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdG51bWJlcjogXCJQUk9KLTg0MjQyLUQ4RDc3OVwiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEVudHJhIElEXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdLFxyXG4gICAgICAgIHN0YXRlY29kZTogUHJvamVjdFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMy0yMVQwOTowMDowMFpcIiksXHJcbiAgICAgICAgYmlzdGVjaF9lc3RpbWF0ZWRmaW5pc2hkYXRlOiBuZXcgRGF0ZShcIjIwMjQtMDgtMTJcIiksXHJcbiAgICAgICAgX293bmVyaWRfdmFsdWU6IFwiMDYzYWFkYmUtODFhNC1lODExLWE5NzUtMDAyMjQ4MDFhYjA0XCIsXHJcbiAgICAgICAgXCJfb3duZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIlJpdGEgT3JhXCIsXHJcbiAgICAgICAgX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZTogXCJmZTFlZDFkMC00Y2JhLTRhZWMtYjVmMy1mM2VkMTJmOWEwNjBcIixcclxuICAgICAgICBfbXNkeW5fY3VzdG9tZXJfdmFsdWU6IFwiZDBhNGQxZjEtYmFlOS0zN2UzLTliMzYtYTMxZTgwNzgzZTA1XCIsXHJcbiAgICAgICAgXCJfbXNkeW5fY3VzdG9tZXJfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJFeGFtcGxlIENvbXBhbnkgUGxjXCIsXHJcbiAgICAgICAgXCJfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiT1JELTAxMjM0NS0xMjNcIixcclxuICAgICAgICBtc2R5bl9tc2R5bl9wcm9qZWN0X21zZHluX3Byb2plY3R0YXNrX3Byb2plY3Q6IE1vY2tQcm9qZWN0VGFza0RhdGEsXHJcbiAgICAgICAgYmlzdGVjaF9tc2R5bl9wcm9qZWN0X0NvbnRhY3RfQ29udGFjdDogT2JqZWN0LnZhbHVlcyhNb2NrQ29udGFjdERhdGEpLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9wcm9qZWN0bG9nc19Qcm9qZWN0X21zZHluX3Byb2plY3Q6IE1vY2tQcm9qZWN0TG9nRGF0YSxcclxuICAgICAgICBtc2R5bl9wcm9qZWN0X2FkeF9wb3J0YWxjb21tZW50czogTW9ja1BvcnRhbENvbW1lbnREYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IE1vY2tQb3J0YWxFbWFpbERhdGEsXHJcbiAgICB9LFxyXG4gICAgXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRW50cmEgSUQgQ29ubmVjdCBTeW5jXCI6IHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0aWQ6IFwiODA3ZDMxOTEtMGJjOC1lZDExLWI1OTYtMDAyMjQ4NDFjNjYwXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wcm9qZWN0bnVtYmVyOiBcIlBST0otMTM1NDItQjZENzc0XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDogXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRW50cmEgSUQgQ29ubmVjdCBTeW5jXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgICAgICBzdGF0ZWNvZGU6IFByb2plY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjMtMDMtMjFUMDk6MDA6MDBaXCIpLFxyXG4gICAgICAgIGJpc3RlY2hfZXN0aW1hdGVkZmluaXNoZGF0ZTogbmV3IERhdGUoXCIyMDI0LTA4LTEyXCIpLFxyXG4gICAgICAgIF9vd25lcmlkX3ZhbHVlOiBcImQ1YTNjNGYwLWJjNWEtZTkxMS1hOThkLTAwMjI0ODAxOGI4MFwiLFxyXG4gICAgICAgIFwiX293bmVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJEYWh5dW4gVHdpY2VcIixcclxuICAgICAgICBfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlOiBcImZlMWVkMWQwLTRjYmEtNGFlYy1iNWYzLWYzZWQxMmY5YTA2MFwiLFxyXG4gICAgICAgIF9tc2R5bl9jdXN0b21lcl92YWx1ZTogXCJkMGE0ZDFmMS1iYWU5LTM3ZTMtOWIzNi1hMzFlODA3ODNlMDVcIixcclxuICAgICAgICBcIl9tc2R5bl9jdXN0b21lcl92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkV4YW1wbGUgYWNjb3VudCBjb21wYW55IG5hbWVcIixcclxuICAgICAgICBcIl9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJPUkQtMDEyMzQ1LTEyM1wiLFxyXG4gICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogTW9ja1Byb2plY3RUYXNrRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0OiBPYmplY3QudmFsdWVzKE1vY2tDb250YWN0RGF0YSksXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX3Byb2plY3Rsb2dzX1Byb2plY3RfbXNkeW5fcHJvamVjdDogTW9ja1Byb2plY3RMb2dEYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYWR4X3BvcnRhbGNvbW1lbnRzOiBNb2NrUG9ydGFsQ29tbWVudERhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogTW9ja1BvcnRhbEVtYWlsRGF0YSxcclxuICAgIH0sXHJcbiAgICBcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBEZWZlbmRlciBmb3IgRW5kcG9pbnQvRGVmZW5kZXIgZm9yIEJ1c2luZXNzIFNlcnZlciAoSW50dW5lIEludGVncmF0ZWQpXCI6IHtcclxuICAgICAgICBtc2R5bl9wcm9qZWN0aWQ6IFwiM2YxMGEwMWUtOWZjOC1lZDExLWI1OTYtMDAyMjQ4NDFjNjYwXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wcm9qZWN0bnVtYmVyOiBcIlBST0otMjM1NzEtQTZEOE00XCIsXHJcbiAgICAgICAgbXNkeW5fc3ViamVjdDpcclxuICAgICAgICAgICAgXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRGVmZW5kZXIgZm9yIEVuZHBvaW50L0RlZmVuZGVyIGZvciBCdXNpbmVzcyBTZXJ2ZXIgKEludHVuZSBJbnRlZ3JhdGVkKVwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFByb2plY3RTdGF0dXNDb2RlLkNhbmNlbGxlZCxcclxuICAgICAgICBzdGF0ZWNvZGU6IFByb2plY3RTdGF0ZUNvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG5ldyBEYXRlKFwiMjAyMy0wMy0yMlQwOTowMDowMFpcIiksXHJcbiAgICAgICAgYmlzdGVjaF9lc3RpbWF0ZWRmaW5pc2hkYXRlOiBuZXcgRGF0ZShcIjIwMjQtMDgtMTJcIiksXHJcbiAgICAgICAgX293bmVyaWRfdmFsdWU6IFwiZmI2Y2I1NWQtNzJlZS1lODExLWE5N2UtMDAyMjQ4MDFiNGM4XCIsXHJcbiAgICAgICAgXCJfb3duZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkVsbGllIEdvdWxkaW5nXCIsXHJcbiAgICAgICAgX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZTogXCIyZTczZDQ1YS03MWU3LTQ2YjUtYjQ0OC1lZDJlNDNlN2Q3NmJcIixcclxuICAgICAgICBfbXNkeW5fY3VzdG9tZXJfdmFsdWU6IFwiZDBhNGQxZjEtYmFlOS0zN2UzLTliMzYtYTMxZTgwNzgzZTA1XCIsXHJcbiAgICAgICAgXCJfbXNkeW5fY3VzdG9tZXJfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJFeGFtcGxlIEluc3VyYW5jZSBFbnRlcnByaXNlXCIsXHJcbiAgICAgICAgXCJfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiT1JELTU0MzIyMy05MjUtTk8tT1JERVJGT1JNXCIsXHJcbiAgICAgICAgbXNkeW5fbXNkeW5fcHJvamVjdF9tc2R5bl9wcm9qZWN0dGFza19wcm9qZWN0OiBNb2NrUHJvamVjdFRhc2tEYXRhLFxyXG4gICAgICAgIGJpc3RlY2hfbXNkeW5fcHJvamVjdF9Db250YWN0X0NvbnRhY3Q6IE9iamVjdC52YWx1ZXMoTW9ja0NvbnRhY3REYXRhKSxcclxuICAgICAgICBiaXN0ZWNoX2Jpc3RlY2hfcHJvamVjdGxvZ3NfUHJvamVjdF9tc2R5bl9wcm9qZWN0OiBNb2NrUHJvamVjdExvZ0RhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9hZHhfcG9ydGFsY29tbWVudHM6IE1vY2tQb3J0YWxDb21tZW50RGF0YSxcclxuICAgICAgICBtc2R5bl9wcm9qZWN0X2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBNb2NrUG9ydGFsRW1haWxEYXRhLFxyXG4gICAgfSxcclxuICAgIFwiUFMgZm9yIDMgTmV3IFNpdGVzIC0gUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWVyYWtpIENsb3VkIE5ldHdvcmtpbmdcIjoge1xyXG4gICAgICAgIG1zZHluX3Byb2plY3RpZDogXCIxYWUzYjI1ZS01YWY2LTQ2YWMtYTQwOC1mZjFiOTAxZWQyYjFcIixcclxuICAgICAgICBiaXN0ZWNoX3Byb2plY3RudW1iZXI6IFwiUFJPSi0xMzU3Ny1ENkQ4TTVcIixcclxuICAgICAgICBtc2R5bl9zdWJqZWN0OiBcIlBTIGZvciAzIE5ldyBTaXRlcyAtIFByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1lcmFraSBDbG91ZCBOZXR3b3JraW5nXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFN0YXR1c0NvZGVbXCJJbiBRdW90ZVwiXSxcclxuICAgICAgICBzdGF0ZWNvZGU6IFByb2plY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBuZXcgRGF0ZShcIjIwMjQtMDEtMjNUMDk6MDA6MDBaXCIpLFxyXG4gICAgICAgIGJpc3RlY2hfZXN0aW1hdGVkZmluaXNoZGF0ZTogbmV3IERhdGUoXCIyMDI0LTA4LTEyXCIpLFxyXG4gICAgICAgIF9vd25lcmlkX3ZhbHVlOiBcImQ1YTNjNGYwLWJjNWEtZTkxMS1hOThkLTAwMjI0ODAxOGI4MFwiLFxyXG4gICAgICAgIFwiX293bmVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIjogXCJEYWh5dW4gVHdpY2VcIixcclxuICAgICAgICBfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlOiBcIjJlNzNkNDVhLTcxZTctNDZiNS1iNDQ4LWVkMmU0M2U3ZDc2YlwiLFxyXG4gICAgICAgIF9tc2R5bl9jdXN0b21lcl92YWx1ZTogXCJkMGE0ZDFmMS1iYWU5LTM3ZTMtOWIzNi1hMzFlODA3ODNlMDVcIixcclxuICAgICAgICBcIl9tc2R5bl9jdXN0b21lcl92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkV4YW1wbGUgTGVnYWwgRW50ZXJwcmlzZVwiLFxyXG4gICAgICAgIFwiX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIk9SRC01NDMyMjMtOTI1LU5PLU9SREVSRk9STVwiLFxyXG4gICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogTW9ja1Byb2plY3RUYXNrRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0OiBPYmplY3QudmFsdWVzKE1vY2tDb250YWN0RGF0YSksXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX3Byb2plY3Rsb2dzX1Byb2plY3RfbXNkeW5fcHJvamVjdDogTW9ja1Byb2plY3RMb2dEYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYWR4X3BvcnRhbGNvbW1lbnRzOiBNb2NrUG9ydGFsQ29tbWVudERhdGEsXHJcbiAgICAgICAgbXNkeW5fcHJvamVjdF9iaXN0ZWNoX3BvcnRhbGVtYWlsczogTW9ja1BvcnRhbEVtYWlsRGF0YSxcclxuICAgIH0sXHJcbiAgICBcIktpdCBhbmQgUFMgLSBQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBDb25uZWN0aXZpdHkgd2l0aCBKdW5pcGVyIENQRVwiOiB7XHJcbiAgICAgICAgbXNkeW5fcHJvamVjdGlkOiBcImU0ZjE5ZDhhLTMxN2QtNDk4MC04OTM4LWZmNzA4NzQ2NThkOFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcHJvamVjdG51bWJlcjogXCJQUk9KLTE0NTk1LUw1VjVXNVwiLFxyXG4gICAgICAgIG1zZHluX3N1YmplY3Q6IFwiS2l0IGFuZCBQUyAtIFByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIENvbm5lY3Rpdml0eSB3aXRoIEp1bmlwZXIgQ1BFXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUHJvamVjdFN0YXR1c0NvZGVbXCJQcm9qZWN0IE9uYm9hcmRpbmdcIl0sXHJcbiAgICAgICAgc3RhdGVjb2RlOiBQcm9qZWN0U3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBtc2R5bl9zY2hlZHVsZWRzdGFydDogbmV3IERhdGUoXCIyMDI0LTAyLTE2VDA5OjAwOjAwWlwiKSxcclxuICAgICAgICBiaXN0ZWNoX2VzdGltYXRlZGZpbmlzaGRhdGU6IG5ldyBEYXRlKFwiMjAyNC0wOC0xMlwiKSxcclxuICAgICAgICBfb3duZXJpZF92YWx1ZTogXCJmYjZjYjU1ZC03MmVlLWU4MTEtYTk3ZS0wMDIyNDgwMWI0YzhcIixcclxuICAgICAgICBcIl9vd25lcmlkX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiRWxsaWUgR291bGRpbmdcIixcclxuICAgICAgICBfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlOiBcIjJlNzNkNDVhLTcxZTctNDZiNS1iNDQ4LWVkMmU0M2U3ZDc2YlwiLFxyXG4gICAgICAgIF9tc2R5bl9jdXN0b21lcl92YWx1ZTogXCJkMGE0ZDFmMS1iYWU5LTM3ZTMtOWIzNi1hMzFlODA3ODNlMDVcIixcclxuICAgICAgICBcIl9tc2R5bl9jdXN0b21lcl92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiOiBcIkV4YW1wbGUgQ29tcGFueSBMaW1pdGVkXCIsXHJcbiAgICAgICAgXCJfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI6IFwiT1JELTU0MzIyMy05MjUtTk8tT1JERVJGT1JNXCIsXHJcbiAgICAgICAgbXNkeW5fbXNkeW5fcHJvamVjdF9tc2R5bl9wcm9qZWN0dGFza19wcm9qZWN0OiBNb2NrUHJvamVjdFRhc2tEYXRhLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9wcm9qZWN0bG9nc19Qcm9qZWN0X21zZHluX3Byb2plY3Q6IE1vY2tQcm9qZWN0TG9nRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0OiBbXHJcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoTW9ja0NvbnRhY3REYXRhKVswXSxcclxuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhNb2NrQ29udGFjdERhdGEpWzZdLFxyXG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKE1vY2tDb250YWN0RGF0YSlbOF0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBtc2R5bl9wcm9qZWN0X2FkeF9wb3J0YWxjb21tZW50czogTW9ja1BvcnRhbENvbW1lbnREYXRhLFxyXG4gICAgICAgIG1zZHluX3Byb2plY3RfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IE1vY2tQb3J0YWxFbWFpbERhdGEsXHJcbiAgICB9LFxyXG59IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBQcm9qZWN0PjtcclxuIiwiaW1wb3J0IHsgUHJvZHVjdFR5cGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1Byb2R1Y3RUeXBlQ29kZVwiO1xyXG5pbXBvcnQgeyBPcmRlcmxpbmUgfSBmcm9tIFwiLi4vTW9kZWxzL09yZGVybGluZVwiO1xyXG5pbXBvcnQgeyBNb2NrUHJvamVjdERhdGEgfSBmcm9tIFwiLi9Nb2NrUHJvamVjdERhdGFcIjtcclxuXHJcbi8qKiBNb2NrIGRhdGEgZm9yIE9yZGVyIExpbmVzICovXHJcbmV4cG9ydCBjb25zdCBNb2NrT3JkZXJMaW5lRGF0YTogeyBPcmRlcjE6IE9yZGVybGluZVtdOyBPcmRlcjI6IE9yZGVybGluZVtdOyBPcmRlcjM6IE9yZGVybGluZVtdIH0gPSB7XHJcbiAgICBPcmRlcjE6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHNhbGVzb3JkZXJkZXRhaWxpZDogXCJjOTM0ODQ1NS00NjkzLTQ0Y2ItYWM5OS0xM2JiODRmYTZjMDRcIixcclxuICAgICAgICAgICAgcHJvZHVjdHR5cGVjb2RlOiBQcm9kdWN0VHlwZUNvZGUuUHJvZHVjdCxcclxuICAgICAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiAzOTAwLFxyXG4gICAgICAgICAgICBiYXNlYW1vdW50OiAwLFxyXG4gICAgICAgICAgICBxdWFudGl0eTogMzI1LFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3Byb2R1Y3RkZXNjcmlwdGlvbjogXCJBZGRpdGlvbmFsIExvY2FsIE51bWJlciAtIFVLXCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiYjdkOTNjZTktYmY3Yy00MmQ3LWJkZWQtNjY4ZjMwYjA5Y2M1XCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlLlByb2R1Y3QsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogMTM4NjAsXHJcbiAgICAgICAgICAgIGJhc2VhbW91bnQ6IDAsXHJcbiAgICAgICAgICAgIHF1YW50aXR5OiAxMSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wcm9kdWN0ZGVzY3JpcHRpb246IFwiWCBTZXJpZXMgLSBYNiAoQnVuZGxlZCkgTGljZW5jZVwiLFxyXG4gICAgICAgICAgICBfbXNkeW5fcHJvamVjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc2FsZXNvcmRlcmRldGFpbGlkOiBcIjkwYjc0YzMzLTcwYWUtNDc2c3NhMjJmLWYyZWExYjBjNTAxMlwiLFxyXG4gICAgICAgICAgICBwcm9kdWN0dHlwZWNvZGU6IFByb2R1Y3RUeXBlQ29kZVtcIlByb2plY3QtQmFzZWQgU2VydmljZVwiXSxcclxuICAgICAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiAyMDAsXHJcbiAgICAgICAgICAgIGJhc2VhbW91bnQ6IDEwMCxcclxuICAgICAgICAgICAgcXVhbnRpdHk6IDQsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcHJvZHVjdGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICAgICAgXCI4eDggT3B0aW9uIC0gUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gOHg4IFdvcmsgWDAtWDQgaW5jbHVkaW5nIFZDQyBYNi1YOCAtIEJpc3RlY2ggTGVkXCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBcImJjNTIyOTUxLWRjYzctZWQxMS1iNTk2LTAwMjI0ODNlZmQzNVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiOTBiNzRjMzMtNzBhZS00NzY5LTU1MmYtZjJlYTFiMGM1MDEyXCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlLlByb2R1Y3QsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogODg4LFxyXG4gICAgICAgICAgICBiYXNlYW1vdW50OiAwLFxyXG4gICAgICAgICAgICBxdWFudGl0eTogMixcclxuICAgICAgICAgICAgYmlzdGVjaF9wcm9kdWN0ZGVzY3JpcHRpb246IFwiWCBTZXJpZXMgLSBYNCBMaWNlbmNlXCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiOTBiNzRjMzMtNzBhZS00NzY5LWEyMmYtZjFlYTFiMGM1MDEyXCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlLlByb2R1Y3QsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogMjY0MCxcclxuICAgICAgICAgICAgYmFzZWFtb3VudDogMCxcclxuICAgICAgICAgICAgcXVhbnRpdHk6IDExLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3Byb2R1Y3RkZXNjcmlwdGlvbjogXCJYIFNlcmllcyAtIFgyIExpY2VuY2VcIixcclxuICAgICAgICAgICAgX21zZHluX3Byb2plY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHNhbGVzb3JkZXJkZXRhaWxpZDogXCI5MGI3NGMzMy03MGFlLTQ3NjktYTIyZi1mMmVhMmIwYzUwMTJcIixcclxuICAgICAgICAgICAgcHJvZHVjdHR5cGVjb2RlOiBQcm9kdWN0VHlwZUNvZGUuUHJvZHVjdCxcclxuICAgICAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiA2NDgwLFxyXG4gICAgICAgICAgICBiYXNlYW1vdW50OiAwLFxyXG4gICAgICAgICAgICBxdWFudGl0eTogNTQsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcHJvZHVjdGRlc2NyaXB0aW9uOiBcIlggU2VyaWVzIC0gWDEgTmF0aW9ud2lkZSBMaWNlbmNlXCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiOTBiNzRjMzMtNzBhZS00NzY5LWEyMmYtZjJlYTFiMGM1MDEzXCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlLlByb2R1Y3QsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogMTkyLFxyXG4gICAgICAgICAgICBiYXNlYW1vdW50OiAwLFxyXG4gICAgICAgICAgICBxdWFudGl0eTogNCxcclxuICAgICAgICAgICAgYmlzdGVjaF9wcm9kdWN0ZGVzY3JpcHRpb246IFwiWCBTZXJpZXMgLSBMb2JieSBMaWNlbmNlXCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiOTBiNzRjMzMtNzBhZS00NzY5LWEyMmYtZjJlYTFiMGM1MDE0XCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlLlByb2R1Y3QsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogbnVsbCxcclxuICAgICAgICAgICAgYmFzZWFtb3VudDogNDQwMCxcclxuICAgICAgICAgICAgcXVhbnRpdHk6IDEsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcHJvZHVjdGRlc2NyaXB0aW9uOiBcIlRyYWluaW5nIEJ1bmRsZSAtIEJyb256ZVwiLFxyXG4gICAgICAgICAgICBfbXNkeW5fcHJvamVjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc2FsZXNvcmRlcmRldGFpbGlkOiBcIjkwYjc0Y2QzLTcwYWUtNDc2OS1hMjJmLWYyZWExYjBjNTAxNFwiLFxyXG4gICAgICAgICAgICBwcm9kdWN0dHlwZWNvZGU6IFByb2R1Y3RUeXBlQ29kZS5Qcm9kdWN0LFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IDIyMC44LFxyXG4gICAgICAgICAgICBiYXNlYW1vdW50OiAwLFxyXG4gICAgICAgICAgICBxdWFudGl0eTogNCxcclxuICAgICAgICAgICAgYmlzdGVjaF9wcm9kdWN0ZGVzY3JpcHRpb246IFwiVUMgQ2FsbCBSZWNvZGluZ3MgQ29sZCBTdG9yYWdlIHVwIHRvIDcgWWVhcnNcIixcclxuICAgICAgICAgICAgX21zZHluX3Byb2plY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHNhbGVzb3JkZXJkZXRhaWxpZDogXCI5MGI3NGNkMy03MHRlLTQ3NjktYTIyZi1mMmVhMWIwYzUwMTRcIixcclxuICAgICAgICAgICAgcHJvZHVjdHR5cGVjb2RlOiBQcm9kdWN0VHlwZUNvZGUuUHJvZHVjdCxcclxuICAgICAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiAwLFxyXG4gICAgICAgICAgICBiYXNlYW1vdW50OiA4OC42OSxcclxuICAgICAgICAgICAgcXVhbnRpdHk6IDEsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcHJvZHVjdGRlc2NyaXB0aW9uOiBcIkNhcnJpYWdlIC0gU3BlY2lhbFwiLFxyXG4gICAgICAgICAgICBfbXNkeW5fcHJvamVjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc2FsZXNvcmRlcmRldGFpbGlkOiBcIjkwYjc0Y3MzLTcwYWUtNDc2OS1hMjJmLWYyZWExYjBjNTAxNFwiLFxyXG4gICAgICAgICAgICBwcm9kdWN0dHlwZWNvZGU6IFByb2R1Y3RUeXBlQ29kZS5Qcm9kdWN0LFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IDAsXHJcbiAgICAgICAgICAgIGJhc2VhbW91bnQ6IDIxNzAuOTIsXHJcbiAgICAgICAgICAgIHF1YW50aXR5OiA2LFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3Byb2R1Y3RkZXNjcmlwdGlvbjogXCJQb2x5IFJvdmUgQjIgREVDVCBERUNUIEJhc2UgU3RhdGlvbiArIFJvdmUgMzAgREVDVCBJUCBQaG9uZSBIYW5kc2V0XCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgT3JkZXIyOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiYTkzNDg0NTQtNzc5MS0zNGNhLWJjOTItMzNiYjg0ZmE2YzA5XCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlLlByb2R1Y3QsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogMCxcclxuICAgICAgICAgICAgYmFzZWFtb3VudDogMjE2MCxcclxuICAgICAgICAgICAgcXVhbnRpdHk6IDEyLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3Byb2R1Y3RkZXNjcmlwdGlvbjogXCJPbi1zaXRlIExhYm91ciAocGVyIGhvdXIpXCIsXHJcbiAgICAgICAgICAgIF9tc2R5bl9wcm9qZWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzYWxlc29yZGVyZGV0YWlsaWQ6IFwiYTkzNDg0NTQtNzc5MS0zNGNhLWJjOTItMzRiYjg0ZmM2YzA5XCIsXHJcbiAgICAgICAgICAgIHByb2R1Y3R0eXBlY29kZTogUHJvZHVjdFR5cGVDb2RlW1wiUHJvamVjdC1CYXNlZCBTZXJ2aWNlXCJdLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IDIwXzAwMCxcclxuICAgICAgICAgICAgYmFzZWFtb3VudDogMTAwLFxyXG4gICAgICAgICAgICBxdWFudGl0eTogMSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wcm9kdWN0ZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgICAgICBcIjh4OCBPcHRpb24gLSBQcm9mZXNzaW9uYWwgU2VydmljZXMgLSA4eDggV29yayBYMC1YNCBpbmNsdWRpbmcgVkNDIFg2LVg4IC0gQmlzdGVjaCBMZWRcIixcclxuICAgICAgICAgICAgX21zZHluX3Byb2plY3RfdmFsdWU6IE1vY2tQcm9qZWN0RGF0YVtcIk1pY3Jvc29mdCBEZWZlbmRlciBmb3IgRW5kcG9pbnQvQnVzaW5lc3NcIl0ubXNkeW5fcHJvamVjdGlkLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgT3JkZXIzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgT3JkZXJTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgT3JkZXJTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBPcmRlciB9IGZyb20gXCIuLi9Nb2RlbHMvT3JkZXJcIjtcclxuaW1wb3J0IHsgTW9ja0NvbnRhY3REYXRhIH0gZnJvbSBcIi4vTW9ja0NvbnRhY3REYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tPcmRlckZvcm1EYXRhIH0gZnJvbSBcIi4vTW9ja09yZGVyRm9ybURhdGFcIjtcclxuaW1wb3J0IHsgTW9ja09yZGVyTGluZURhdGEgfSBmcm9tIFwiLi9Nb2NrT3JkZXJMaW5lRGF0YVwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgT3JkZXJzICovXHJcbmV4cG9ydCBjb25zdCBNb2NrT3JkZXJEYXRhOiBPcmRlcltdID0gW1xyXG4gICAge1xyXG4gICAgICAgIHNhbGVzb3JkZXJpZDogXCIyZTczZDQ1YS03MWU3LTQ2YjUtYjQ0OC1lZDJlNDNlN2Q3NmJcIixcclxuICAgICAgICBuYW1lOiBcIkEgbmV3IHN3b3JkIGZvciBJcm9uIE1hblwiLFxyXG4gICAgICAgIG9yZGVybnVtYmVyOiBcIk9SRC01NDMyMjMtOTI1LU5PLU9SREVSRk9STVwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgdG90YWxsaW5laXRlbWFtb3VudDogMTIwLjAsXHJcbiAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiAwLjAsXHJcbiAgICAgICAgYmlzdGVjaF9vcmRlcmZvcm06IG51bGwsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBPcmRlclN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmcsXHJcbiAgICAgICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZTogXCJDVVNULTEyMzQ1XCIsXHJcbiAgICAgICAgb3JkZXJfZGV0YWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHNhbGVzb3JkZXJpZDogXCJmZTFlZDFkMC00Y2JhLTRhZWMtYjVmMy1mM2VkMTJmOWEwNjBcIixcclxuICAgICAgICBuYW1lOiBcIkEgTmV3IFN1aXQgZm9yIElyb24gTWFuXCIsXHJcbiAgICAgICAgb3JkZXJudW1iZXI6IFwiT1JELTAxMjM0NS0xMjNcIixcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICB0b3RhbGxpbmVpdGVtYW1vdW50OiAzNF8yNjAuMCxcclxuICAgICAgICBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IDFfMjAwLjAsXHJcbiAgICAgICAgYmlzdGVjaF9vcmRlcmZvcm06IE1vY2tPcmRlckZvcm1EYXRhLk9yZGVyMSxcclxuICAgICAgICBzdGF0ZWNvZGU6IE9yZGVyU3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBPcmRlclN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIkNVU1QtNTQzMjFcIixcclxuICAgICAgICBvcmRlcl9kZXRhaWxzOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjEsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHNhbGVzb3JkZXJpZDogXCJhZTczZDQ1Yi0xMWU0LTQ2YjUtYTQ0OC1mZDJlNDNlN2Q3NmNcIixcclxuICAgICAgICBuYW1lOiBcIkEgbmV3IHN1aXQgZm9yIGhpcyBmcmllbmQgV2FyIE1hY2hpbmVcIixcclxuICAgICAgICBvcmRlcm51bWJlcjogXCJPUkQtNTQzMjEwLTQyMVwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50b255U3RhcmsuY29udGFjdGlkLFxyXG4gICAgICAgIHRvdGFsbGluZWl0ZW1hbW91bnQ6IDJfMTUwLjAsXHJcbiAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiAxMDAuMCxcclxuICAgICAgICBiaXN0ZWNoX29yZGVyZm9ybTogTW9ja09yZGVyRm9ybURhdGEuT3JkZXIyLFxyXG4gICAgICAgIHN0YXRlY29kZTogT3JkZXJTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE9yZGVyU3RhdHVzQ29kZVtcIlByb2plY3QgT25ib2FyZGluZ1wiXSxcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIkNVU1QtMzQ1MjZcIixcclxuICAgICAgICBvcmRlcl9kZXRhaWxzOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHNhbGVzb3JkZXJpZDogXCI1ZTczZDQ1Yi0yMWUzLWE2YjUtYjQ0OC02ZDJlNDNlN2Q3NmRcIixcclxuICAgICAgICBuYW1lOiBcIkEgbmV3IGhlbG1ldCBmb3IgSXJvbiBNYW5cIixcclxuICAgICAgICBvcmRlcm51bWJlcjogXCJPUkQtOTQzMjcxLTYxOFwiLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5uaWNrRnVyeS5jb250YWN0aWQsXHJcbiAgICAgICAgdG90YWxsaW5laXRlbWFtb3VudDogMTUwLjAsXHJcbiAgICAgICAgYmlzdGVjaF90b3RhbGFubnVhbHByaWNlOiAwLjAsXHJcbiAgICAgICAgYmlzdGVjaF9vcmRlcmZvcm06IE1vY2tPcmRlckZvcm1EYXRhLk9yZGVyMyxcclxuICAgICAgICBzdGF0ZWNvZGU6IE9yZGVyU3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBPcmRlclN0YXR1c0NvZGUuUHJvY2Vzc2luZyxcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBcIkNVU1QtOTA4MjZcIixcclxuICAgICAgICBvcmRlcl9kZXRhaWxzOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjMsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHNhbGVzb3JkZXJpZDogXCI0ZTczZDQ1MS02MWU3LTQ2YjItYTQ0OC1lZDJlNDNlN2Q3NmNcIixcclxuICAgICAgICBuYW1lOiBcIkEgbmV3IHJvY2tldCBib29zdGVyIGZvciBJcm9uIE1hblwiLFxyXG4gICAgICAgIG9yZGVybnVtYmVyOiBcIk9SRC04NDMyODMtNDI5XCIsXHJcbiAgICAgICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnBldGVyUGFya2VyLmNvbnRhY3RpZCxcclxuICAgICAgICB0b3RhbGxpbmVpdGVtYW1vdW50OiAxMjAuMCxcclxuICAgICAgICBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IDAuMCxcclxuICAgICAgICBiaXN0ZWNoX29yZGVyZm9ybTogTW9ja09yZGVyRm9ybURhdGEuT3JkZXI0LFxyXG4gICAgICAgIHN0YXRlY29kZTogT3JkZXJTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE9yZGVyU3RhdHVzQ29kZS5QZW5kaW5nLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiQ1VTVC05MDI4M1wiLFxyXG4gICAgICAgIG9yZGVyX2RldGFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBzYWxlc29yZGVyaWQ6IFwiNGU3M2Q0NTEtNjFlNy00NmIyLWE0NDgtZWQyZTQzZTdkNTZjXCIsXHJcbiAgICAgICAgbmFtZTogXCJBIGJyYW5kIG5ldyBnbG92ZSBmb3IgVGhhbm9zXCIsXHJcbiAgICAgICAgb3JkZXJudW1iZXI6IFwiT1JELTg0MzI4My00MjhcIixcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEucGV0ZXJQYXJrZXIuY29udGFjdGlkLFxyXG4gICAgICAgIHRvdGFsbGluZWl0ZW1hbW91bnQ6IDEyMC4wLFxyXG4gICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogMC4wLFxyXG4gICAgICAgIGJpc3RlY2hfb3JkZXJmb3JtOiBNb2NrT3JkZXJGb3JtRGF0YS5PcmRlcjQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBPcmRlclN0YXRlQ29kZS5GdWxmaWxsZWQsXHJcbiAgICAgICAgc3RhdHVzY29kZTogT3JkZXJTdGF0dXNDb2RlLkNvbXBsZXRlLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiQ1VTVC0wOTI4M1wiLFxyXG4gICAgICAgIG9yZGVyX2RldGFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBzYWxlc29yZGVyaWQ6IFwiZjEzZjBhMzEtZmQ4Zi00ODQyLThmNjYtMmEwMzYzNjlkMWQ3XCIsXHJcbiAgICAgICAgbmFtZTogXCJBIGJyYW5kIG5ldyBnbG92ZSBmb3IgVGhhbm9zXCIsXHJcbiAgICAgICAgb3JkZXJudW1iZXI6IFwiT1JELTg0MzI4My00MjhcIixcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEucGV0ZXJQYXJrZXIuY29udGFjdGlkLFxyXG4gICAgICAgIHRvdGFsbGluZWl0ZW1hbW91bnQ6IDEyMC4wLFxyXG4gICAgICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZTogMC4wLFxyXG4gICAgICAgIGJpc3RlY2hfb3JkZXJmb3JtOiBNb2NrT3JkZXJGb3JtRGF0YS5PcmRlcjQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBPcmRlclN0YXRlQ29kZS5GdWxmaWxsZWQsXHJcbiAgICAgICAgc3RhdHVzY29kZTogT3JkZXJTdGF0dXNDb2RlLkNvbXBsZXRlLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiQ1VTVC0wOTI4NFwiLFxyXG4gICAgICAgIG9yZGVyX2RldGFpbHM6IFtdLFxyXG4gICAgfSxcclxuXTtcclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgYmlzdGVjaF9hdXRoZW50aWNhdGlvbnR5cGUgb2YgYSBQb3J0YWwgSW52aXRhdGlvbi4gKi9cclxuZXhwb3J0IGVudW0gUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZSB7XHJcbiAgICAvKiogU3RvY2sgKGxvY2FsKSBBdXRoZW50aWNhdGlvbi4gKi9cclxuICAgIExvY2FsID0gMTY0Xzk2MF8wMDAsXHJcblxyXG4gICAgLyoqIE1pY3Jvc29mdCBmZWRlcmF0ZWQgaWRlbnRpdHkuICovXHJcbiAgICBNaWNyb3NvZnQgPSAxNjRfOTYwXzAwMixcclxuXHJcbiAgICAvKiogQXp1cmUgQnVzaW5lc3MtdG8tQnVzaW5lc3MgQXV0aGVudGljYXRpb24uICovXHJcbiAgICBBenVyZUIyQiA9IDE2NF85NjBfMDAxXHJcbn0iLCIvKiogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBwb3J0YWwgaW52aXRhdGlvbiBzdGF0dXMuICovXHJcbmV4cG9ydCBlbnVtIFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlIHtcclxuICAgIC8qKiBBY3RpdmUgLSBOZXcgKi9cclxuICAgIE5ldyA9IDEsXHJcblxyXG4gICAgLyoqIEFjdGl2ZSAtIFBlbmRpbmcgU2VuZCAqL1xyXG4gICAgXCJQZW5kaW5nIFNlbmRcIiA9IDc1Nl8xNTBfMDAzLFxyXG5cclxuICAgIC8qKiBBY3RpdmUgLSBTZW50ICovXHJcbiAgICBTZW50ID0gNzU2XzE1MF8wMDAsXHJcblxyXG4gICAgLyoqIEFjdGl2ZSAtIFJlZGVlbWVkICovXHJcbiAgICBSZWRlZW1lZCA9IDc1Nl8xNTBfMDAxLFxyXG5cclxuICAgIC8qKiBJbmFjdGl2ZSAtIEV4cGlyZWQgKi9cclxuICAgIEV4cGlyZWQgPSA3NTZfMTUwXzAwMixcclxuXHJcbiAgICAvKiogSW5hY3RpdmUgLSBGYWlsZWQgKi9cclxuICAgIEZhaWxlZCA9IDc1Nl8xNTBfMDA0LFxyXG5cclxuICAgIC8qKiBJbmFjdGl2ZSAtIEluYWN0aXZlICovXHJcbiAgICBJbmFjdGl2ZSA9IDIsXHJcbn1cclxuIiwiaW1wb3J0IHsgUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9Qb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlXCI7XHJcbmltcG9ydCB7IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1BvcnRhbEludml0YXRpb25TdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFBvcnRhbEludml0YXRpb24gfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbEludml0YXRpb25cIjtcclxuaW1wb3J0IHsgTW9ja0NvbnRhY3REYXRhIH0gZnJvbSBcIi4vTW9ja0NvbnRhY3REYXRhXCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBQb3J0YWwgSW52aXRhdGlvbnMgKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tQb3J0YWxJbnZpdGF0aW9uRGF0YTogUG9ydGFsSW52aXRhdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICAgIGFkeF9pbnZpdGF0aW9uaWQ6IFwiMTE2MDY4N2FlOGQ4NGUzZWI3ODQ5ZmNhNzUzODgwYjZcIixcclxuICAgICAgICBfYWR4X2ludml0ZWNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS5uaWNrRnVyeS5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9hdXRoZW50aWNhdGlvbnR5cGU6IFBvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGVbXCJNaWNyb3NvZnRcIl0sXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDk6MDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiUGVuZGluZyBTZW5kXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjI0OTI4ZWRlLWNmZTQtNDc1NC05MTUyLTVhMWMzZDUzZTc4OVwiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnBldGVyUGFya2VyLmNvbnRhY3RpZCxcclxuICAgICAgICBiaXN0ZWNoX2F1dGhlbnRpY2F0aW9udHlwZTogUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZVtcIkxvY2FsXCJdLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA3VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlJlZGVlbWVkXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjVhNjczZTMzLTY3YWEtNGVmOS1hY2ZmLTM5ZWNhZTFiYTkyMFwiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnBldGVyUXVpbGwuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTWljcm9zb2Z0XCJdLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA3VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlJlZGVlbWVkXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjdhMjExZTI3LTkyZTQtNGY4Ni05YmZhLWI4OTllMzY2YzI2M1wiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnNjb3R0TGFuZy5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9hdXRoZW50aWNhdGlvbnR5cGU6IFBvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGVbXCJNaWNyb3NvZnRcIl0sXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDk6MDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiUmVkZWVtZWRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFkeF9pbnZpdGF0aW9uaWQ6IFwiMWZlNTk5OTAtMDFkNy00MzJkLWFmYTMtNGQ2ZThlM2MzY2RjXCIsXHJcbiAgICAgICAgX2FkeF9pbnZpdGVjb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTG9jYWxcIl0sXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDk6MDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiUmVkZWVtZWRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFkeF9pbnZpdGF0aW9uaWQ6IFwiMzQ5ZWRhMTAtZDljZC00NjBmLWFmYWUtMWI5MmYyYjE0ODNmXCIsXHJcbiAgICAgICAgX2FkeF9pbnZpdGVjb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEubmlja0Z1cnkuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTG9jYWxcIl0sXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDk6MDg6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiUmVkZWVtZWRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFkeF9pbnZpdGF0aW9uaWQ6IFwiNjU4MmI5ZDUtMzgyNy00ZTIyLWJhYWItZTlkNDJiNzMyOTMzXCIsXHJcbiAgICAgICAgX2FkeF9pbnZpdGVjb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEudG9ueVN0YXJrLmNvbnRhY3RpZCxcclxuICAgICAgICBiaXN0ZWNoX2F1dGhlbnRpY2F0aW9udHlwZTogUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZVtcIk1pY3Jvc29mdFwiXSxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wN1QwOTowODowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGVbXCJSZWRlZW1lZFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWR4X2ludml0YXRpb25pZDogXCJmZDY4ZDVjYy0xYzA1LTRlZGQtYmY5NS04YWE5ZWIzZTk2ZDZcIixcclxuICAgICAgICBfYWR4X2ludml0ZWNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50b255U3RhcmsuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTWljcm9zb2Z0XCJdLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIxLTA3LTA2VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIkV4cGlyZWRcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFkeF9pbnZpdGF0aW9uaWQ6IFwiN2QxYjc4OTYtMjMwMS00MjA3LTlkZTQtNzk5NjQzYzQ3Y2EzXCIsXHJcbiAgICAgICAgX2FkeF9pbnZpdGVjb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RldmVSb2dlcnMuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTWljcm9zb2Z0XCJdLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA3VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlJlZGVlbWVkXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcImYyYmQxOTkwLTk3NjEtNGQzNi05NzdiLWNiYTkzM2NhNmU4MFwiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnN0ZXZlUm9nZXJzLmNvbnRhY3RpZCxcclxuICAgICAgICBiaXN0ZWNoX2F1dGhlbnRpY2F0aW9udHlwZTogUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZVtcIk1pY3Jvc29mdFwiXSxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wNlQxMDowODowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGVbXCJFeHBpcmVkXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjcyZmRlODVlLThjNGEtNGRmMS05OTg2LWJhM2VlODM0YzdhZlwiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnRob3IuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTWljcm9zb2Z0XCJdLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA3VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIkZhaWxlZFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWR4X2ludml0YXRpb25pZDogXCI3NGFmODg4Ny0zNjgxLTRiMzYtYmZkOC1mYjlmNGM4YzYwM2NcIixcclxuICAgICAgICBfYWR4X2ludml0ZWNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50aG9yLmNvbnRhY3RpZCxcclxuICAgICAgICBiaXN0ZWNoX2F1dGhlbnRpY2F0aW9udHlwZTogUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZVtcIk1pY3Jvc29mdFwiXSxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wOVQwOTowODowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGVbXCJFeHBpcmVkXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjNkNDQ2ZDhhLTE1ZTMtNDkwMC1hOTc0LThiMDBmYjkwYTFhM1wiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnNjb3R0TGFuZy5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9hdXRoZW50aWNhdGlvbnR5cGU6IFBvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGVbXCJNaWNyb3NvZnRcIl0sXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDdUMDk6MDI6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiRmFpbGVkXCJdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjkzZjM3OTVkLTZiNjQtNDgzNC04OWVmLWRlYzljODkyYjI5MFwiLFxyXG4gICAgICAgIF9hZHhfaW52aXRlY29udGFjdF92YWx1ZTogTW9ja0NvbnRhY3REYXRhLnNjb3R0TGFuZy5jb250YWN0aWQsXHJcbiAgICAgICAgYmlzdGVjaF9hdXRoZW50aWNhdGlvbnR5cGU6IFBvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGVbXCJNaWNyb3NvZnRcIl0sXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMDctMDZUMDk6MDE6MDAuMDAwWlwiLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiRXhwaXJlZFwiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWR4X2ludml0YXRpb25pZDogXCJmNTRiZTFiYy00MzBjLTQ5ZTgtOTBiNS04MDIzNzZhOWVhOTBcIixcclxuICAgICAgICBfYWR4X2ludml0ZWNvbnRhY3RfdmFsdWU6IE1vY2tDb250YWN0RGF0YS50Y2hhbGxhLmNvbnRhY3RpZCxcclxuICAgICAgICBiaXN0ZWNoX2F1dGhlbnRpY2F0aW9udHlwZTogbnVsbCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0wNy0wN1QwOTowODowMC4wMDBaXCIsXHJcbiAgICAgICAgc3RhdHVzY29kZTogUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGVbXCJOZXdcIl0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFkeF9pbnZpdGF0aW9uaWQ6IFwiYzJmODNjNmEtYzQ1OC00OGVmLWE4NTktNmY4NGZmYjhjOWRkXCIsXHJcbiAgICAgICAgX2FkeF9pbnZpdGVjb250YWN0X3ZhbHVlOiBNb2NrQ29udGFjdERhdGEuc3RlcGhlbnN0cmFuZ2UuY29udGFjdGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlW1wiTWljcm9zb2Z0XCJdLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTA3LTA2VDA5OjA4OjAwLjAwMFpcIixcclxuICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICB9LFxyXG5dO1xyXG4iLCJpbXBvcnQgeyBDYXNlVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVHlwZVwiO1xyXG5pbXBvcnQgeyBQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlIH0gZnJvbSBcIi4uL01vZGVscy9Qb3J0YWxNYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7IE1vY2tJbmNpZGVudERhdGEgfSBmcm9tIFwiLi9Nb2NrSW5jaWRlbnREYXRhXCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBNYWpvciBJbmNpZGVudCBVcGRhdGVzICovXHJcbmV4cG9ydCBjb25zdCBNb2NrUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGE6IFBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVbXSA9IFtcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcImZmZDU2OTljLTQzOTUtNDg5ZS04NTNmLTllN2E2ZDVlYTBlYVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogTW9ja0luY2lkZW50RGF0YS5maWx0ZXIoKHgpID0+IHguY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZVtcIk1ham9yIEluY2lkZW50XCJdKVswXVxyXG4gICAgICAgICAgICAuaW5jaWRlbnRpZCxcclxuICAgICAgICBzdWJqZWN0OiBcIk1ham9yIEluY2lkZW50IFJlc29sdmVkXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGBNYWpvciBJbmNpZGVudCAke1xyXG4gICAgICAgICAgICBNb2NrSW5jaWRlbnREYXRhLmZpbHRlcigoeCkgPT4geC5jYXNldHlwZWNvZGUgPT09IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0pWzBdLnRpY2tldG51bWJlclxyXG4gICAgICAgIH0gaGFzIGJlZW4gbWFya2VkIGFzIHJlc29sdmVkLmAsXHJcbiAgICAgICAgY3JlYXRlZG9uOiBcIjIwMjAtMTAtMDlUMTA6MTI6MTEuMDAwWlwiLFxyXG4gICAgICAgIG1vZGlmaWVkb246IFwiMjAyMC0wNy0wN1QwOTozNTowMC4wMDBaXCIsXHJcbiAgICAgICAgYmlzdGVjaF9jYXNlc3RhdHVzc25hcHNob3Q6IFwiUmVzb2x2ZWRcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCJmZmQ1Njk5Yy00Mzk1LTQ4OWUtODUzZi05ZDdhNmQ1ZWEwZWFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IE1vY2tJbmNpZGVudERhdGEuZmlsdGVyKCh4KSA9PiB4LmNhc2V0eXBlY29kZSA9PT0gQ2FzZVR5cGVbXCJNYWpvciBJbmNpZGVudFwiXSlbMF1cclxuICAgICAgICAgICAgLmluY2lkZW50aWQsXHJcbiAgICAgICAgc3ViamVjdDogXCJNYWpvciBJbmNpZGVudCBSZS1PcGVuZWRcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogYE1ham9yIEluY2lkZW50ICR7XHJcbiAgICAgICAgICAgIE1vY2tJbmNpZGVudERhdGEuZmlsdGVyKCh4KSA9PiB4LmNhc2V0eXBlY29kZSA9PT0gQ2FzZVR5cGVbXCJNYWpvciBJbmNpZGVudFwiXSlbMF0udGlja2V0bnVtYmVyXHJcbiAgICAgICAgfSBoYXMgYmVlbiByZS1vcGVuZWQuYCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0wOVQxMDoxMjoxMS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgICAgICBiaXN0ZWNoX2Nhc2VzdGF0dXNzbmFwc2hvdDogXCJJbiBQcm9ncmVzc1wiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBhY3Rpdml0eWlkOiBcImZmZDU2OTljLTQzOTUtNDg5ZS04NTNmLTlkN2E2ZDVlYTBlYVwiLFxyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogTW9ja0luY2lkZW50RGF0YS5maWx0ZXIoKHgpID0+IHguY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZVtcIk1ham9yIEluY2lkZW50XCJdKVswXVxyXG4gICAgICAgICAgICAuaW5jaWRlbnRpZCxcclxuICAgICAgICBzdWJqZWN0OiBcIlVwZGF0ZVwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGxlYXNlIGJlIGFkdmlzZWQgdGhhdCBNYWpvciBJbmNpZGVudCAke1xyXG4gICAgICAgICAgICBNb2NrSW5jaWRlbnREYXRhLmZpbHRlcigoeCkgPT4geC5jYXNldHlwZWNvZGUgPT09IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0pWzBdLnRpY2tldG51bWJlclxyXG4gICAgICAgIH0gaGFzIG5vdyBiZWVuIHJlc29sdmVkLlxyXG5cclxuICAgICAgICAgICAgU2VydmljZSB3YXMgZnVsbHkgcmVzdG9yZWQgYXQgMDg6NTAuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBXZSBiZWxpZXZlIHRoYXQgaW5ib3VuZCBjYWxscyBzaG91bGQgbm93IGJlIHdvcmtpbmcgYXMgZXhwZWN0ZWQgLSBwbGVhc2UgcmV0ZXN0IGFuZCBjb250YWN0IHRoZSBTZXJ2aWNlRGVzayBvbiAwMTIwMiAzMzIyOTkgaWYgc3RpbGwgZXhwZXJpZW5jaW5nIGlzc3Vlcy5gLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTA5VDEwOjEyOjA5LjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMDk6MzU6MDAuMDAwWlwiLFxyXG4gICAgICAgIGJpc3RlY2hfY2FzZXN0YXR1c3NuYXBzaG90OiBcIkluIFByb2dyZXNzXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGFjdGl2aXR5aWQ6IFwiZmZkNTY5OWMtNDM5NS00ODllLTkwM2YtOWU3YTZkNWVhMGVhXCIsXHJcbiAgICAgICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlOiBNb2NrSW5jaWRlbnREYXRhLmZpbHRlcigoeCkgPT4geC5jYXNldHlwZWNvZGUgPT09IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0pWzBdXHJcbiAgICAgICAgICAgIC5pbmNpZGVudGlkLFxyXG4gICAgICAgIHN1YmplY3Q6IFwiTWFqb3IgSW5jaWRlbnQgQ3JlYXRlZFwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgTWFqb3IgSW5jaWRlbnQgJHtcclxuICAgICAgICAgICAgTW9ja0luY2lkZW50RGF0YS5maWx0ZXIoKHgpID0+IHguY2FzZXR5cGVjb2RlID09PSBDYXNlVHlwZVtcIk1ham9yIEluY2lkZW50XCJdKVswXS50aWNrZXRudW1iZXJcclxuICAgICAgICB9IGNyZWF0ZWQuYCxcclxuICAgICAgICBjcmVhdGVkb246IFwiMjAyMC0xMC0wOVQxMDoxMjoxMS4wMDBaXCIsXHJcbiAgICAgICAgbW9kaWZpZWRvbjogXCIyMDIwLTA3LTA3VDA5OjM1OjAwLjAwMFpcIixcclxuICAgICAgICBiaXN0ZWNoX2Nhc2VzdGF0dXNzbmFwc2hvdDogXCJJbiBQcm9ncmVzc1wiLFxyXG4gICAgfSxcclxuXHJcbiAgICB7XHJcbiAgICAgICAgYWN0aXZpdHlpZDogXCJmZmQ1Njk5Yy00Mzk1LTQ4OWUtOTAzZi05ZTdhNmQ1ZWEwZWFcIixcclxuICAgICAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU6IE1vY2tJbmNpZGVudERhdGEuZmlsdGVyKCh4KSA9PiB4LmNhc2V0eXBlY29kZSA9PT0gQ2FzZVR5cGVbXCJNYWpvciBJbmNpZGVudFwiXSlbMV1cclxuICAgICAgICAgICAgLmluY2lkZW50aWQsXHJcbiAgICAgICAgc3ViamVjdDogXCJNYWpvciBJbmNpZGVudCBDcmVhdGVkXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGBNYWpvciBJbmNpZGVudCAke1xyXG4gICAgICAgICAgICBNb2NrSW5jaWRlbnREYXRhLmZpbHRlcigoeCkgPT4geC5jYXNldHlwZWNvZGUgPT09IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0pWzFdLnRpY2tldG51bWJlclxyXG4gICAgICAgIH0gY3JlYXRlZC5gLFxyXG4gICAgICAgIGNyZWF0ZWRvbjogXCIyMDIwLTEwLTA5VDEwOjEyOjExLjAwMFpcIixcclxuICAgICAgICBtb2RpZmllZG9uOiBcIjIwMjAtMDctMDdUMDk6MzU6MDAuMDAwWlwiLFxyXG4gICAgICAgIGJpc3RlY2hfY2FzZXN0YXR1c3NuYXBzaG90OiBcIkluIFByb2dyZXNzXCIsXHJcbiAgICB9LFxyXG5dO1xyXG4iLCJpbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSBcIi4uL0hlbHBlcnMvRGF0ZUhlbHBlclwiO1xyXG5pbXBvcnQgeyBCbG9nUG9zdCB9IGZyb20gXCIuLi9Nb2RlbHMvQmxvZ1Bvc3RcIjtcclxuXHJcbi8qKiBNb2NrIGRhdGEgZm9yIEJsb2cgUG9zdHMuICovXHJcbmV4cG9ydCBjb25zdCBNb2NrQmxvZ1Bvc3REYXRhOiBCbG9nUG9zdFtdID0gW1xyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfYmxvZ3Bvc3RpZDogXCIxXCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIkxvcmVtIElwc3VtIHBhcnQgMVwiLFxyXG4gICAgICAgIGJpc3RlY2hfZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgIFwiRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXJcIixcclxuICAgICAgICBiaXN0ZWNoX3VybDogXCJodHRwczovL2Jpc3RlY2guY28udWsvYmxvZy1wb3N0L2EtY29uc3RhbnQtdGhyZWF0LWlzLXlvdXItYnVzaW5lc3MtcmVhZHkvXCIsXHJcbiAgICAgICAgYmlzdGVjaF9pbWFnZXVybDogXCJodHRwczovL2Jpc3RlY2guY28udWsvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDIvY2hlc3MtYmFubmVyLmpwZ1wiLFxyXG4gICAgICAgIGJpc3RlY2hfcHVibGlzaGVkYnk6IFwiVGltIEJhbWJlclwiLFxyXG4gICAgICAgIGJpc3RlY2hfcHVibGlzaGVkb246IERhdGVIZWxwZXIuZ2V0TWlkbmlnaHRUb2RheSgpLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX2Jsb2dwb3N0aWQ6IFwiMlwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJMb3JlbSBJcHN1bSBwYXJ0IDJcIixcclxuICAgICAgICBiaXN0ZWNoX2Rlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBcIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LlwiLFxyXG4gICAgICAgIGJpc3RlY2hfdXJsOiBcImh0dHBzOi8vYmlzdGVjaC5jby51ay9ibG9nLXBvc3QvY3liZXItZHVlLWRpbGlnZW5jZS10aGUtcm9sZS1vZi1zZWN1cml0eS1pbi1tYS1hY3Rpdml0eS9cIixcclxuICAgICAgICBiaXN0ZWNoX2ltYWdldXJsOiBcImh0dHBzOi8vYmlzdGVjaC5jby51ay93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8xMS9kZC5qcGdcIixcclxuICAgICAgICBiaXN0ZWNoX3B1Ymxpc2hlZGJ5OiBcIlRpbW90aHkgQmFtYmVyXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wdWJsaXNoZWRvbjogRGF0ZUhlbHBlci5nZXRNaWRuaWdodFRvZGF5KCksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfYmxvZ3Bvc3RpZDogXCIzXCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIkV4YW1wbGUgdGl0bGUgM1wiLFxyXG4gICAgICAgIGJpc3RlY2hfZGVzY3JpcHRpb246IFwiU29tZXRoaW5nLCBzb21ldGhpbmcsIHNvbWV0aGluZywgTG9yZW0gSXBzdW0gc29tZXRoaW5nLlwiLFxyXG4gICAgICAgIGJpc3RlY2hfdXJsOlxyXG4gICAgICAgICAgICBcImh0dHBzOi8vYmlzdGVjaC5jby51ay9ibG9nLXBvc3QvZ3Jvdy1vci1nby1uYXZpZ2F0aW5nLXRoZS10ZWNobm9sb2d5LXNwZWVkYnVtcHMtaW4tdGhlLW1vdG9yLWluZHVzdHJ5L1wiLFxyXG4gICAgICAgIGJpc3RlY2hfaW1hZ2V1cmw6IFwiaHR0cHM6Ly9iaXN0ZWNoLmNvLnVrL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzEwL21vdG9yLWJhbm5lci5qcGdcIixcclxuICAgICAgICBiaXN0ZWNoX3B1Ymxpc2hlZGJ5OiBcIlRTQlwiLFxyXG4gICAgICAgIGJpc3RlY2hfcHVibGlzaGVkb246IERhdGVIZWxwZXIuZ2V0TWlkbmlnaHRUb2RheSgpLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX2Jsb2dwb3N0aWQ6IFwiNFwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJMb3JlbSBJcHN1bSBwYXJ0IDRcIixcclxuICAgICAgICBiaXN0ZWNoX2Rlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICBcIkV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uXCIsXHJcbiAgICAgICAgYmlzdGVjaF91cmw6IFwiaHR0cHM6Ly9iaXN0ZWNoLmNvLnVrL2Jsb2ctcG9zdC90b3dhcmRzLXN1c3RhaW5hYmlsaXR5L1wiLFxyXG4gICAgICAgIGJpc3RlY2hfaW1hZ2V1cmw6IFwiaHR0cHM6Ly9iaXN0ZWNoLmNvLnVrL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA4L1N1c3RhaW5hYmlsaXR5LUJhbm5lci1zY2FsZWQuanBnXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wdWJsaXNoZWRieTogXCJKZWZmXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wdWJsaXNoZWRvbjogRGF0ZUhlbHBlci5nZXRNaWRuaWdodFRvZGF5KCksXHJcbiAgICB9LFxyXG5dO1xyXG4iLCIvKiogVmFsdWVzIGZvciB0aGUgYGJpc3RlY2hfbmV0d29ya29yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVydHlwZWAgb3B0aW9uIHNldC4gKi9cclxuZXhwb3J0IGVudW0gTmV0d29ya09yZGVyVHlwZSB7XHJcbiAgICBcIk5ldyBPcmRlclwiID0gMTAwXzAwMF8wMDAsXHJcbiAgICBcIkNlYXNlIE9yZGVyXCIgPSAxMDBfMDAwXzAwMSx9XHJcbiIsIi8qKiBFbnVtIHJlcHJlc2VudGluZyBhIE5ldHdvcmsgT3JkZXIgU3RhdGUgQ29kZS4gICovXHJcbmV4cG9ydCBlbnVtIE5ldHdvcmtPcmRlclN0YXRlQ29kZSB7XHJcbiAgICAvKiogQWN0aXZlLiAqL1xyXG4gICAgQWN0aXZlID0gMCxcclxuXHJcbiAgICAvKiogSW5hY3RpdmUuICovXHJcbiAgICBJbmFjdGl2ZSA9IDEsXHJcbn1cclxuIiwiLyoqIEVudW0gcmVwcmVzZW50aW5nIGEgTmV0d29yayBPcmRlciBTdGF0dXMgQ29kZSAqL1xyXG5leHBvcnQgZW51bSBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlIHtcclxuICAgIC8qKiBJbiBQcm9ncmVzcy4gKi9cclxuICAgIFwiSW4gUHJvZ3Jlc3NcIiA9IDEsXHJcblxyXG4gICAgLyoqIFBlbmRpbmcuICovXHJcbiAgICBQZW5kaW5nID0gMTAwMDAwMDAxLFxyXG5cclxuICAgIC8qKiBSZWplY3RlZC4gKi9cclxuICAgIFJlamVjdGVkID0gMTAwMDAwMDAyLFxyXG5cclxuICAgIC8qKiBEZWxheWVkLiAqL1xyXG4gICAgRGVsYXllZCA9IDEwMDAwMDAwMyxcclxuXHJcbiAgICAvKiogQ29uZmlybWVkLiAqL1xyXG4gICAgQ29uZmlybWVkID0gMTAwMDAwMDA0LFxyXG5cclxuICAgIC8qKiBSZWFkeSBUbyBPcmRlci4gKi9cclxuICAgIFwiUmVhZHkgVG8gT3JkZXJcIiA9IDEwMDAwMDAwNixcclxuXHJcbiAgICAvKiogQ29tcGxldGVkLiAqL1xyXG4gICAgQ29tcGxldGVkID0gMTAwMDAwMDAwLFxyXG5cclxuICAgIC8qKiBDYW5jZWxsZWQuICovXHJcbiAgICBDYW5jZWxsZWQgPSAxMDAwMDAwMDUsXHJcbn1cclxuIiwiLyoqIEVudW1lcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgc3RhdGVjb2RlIG9mIGEgQ3VzdG9tZXIgQXNzZXQgKi9cclxuZXhwb3J0IGVudW0gQ3VzdG9tZXJBc3NldFN0YXRlQ29kZSB7XHJcbiAgICAvKiogQWN0aXZlICovXHJcbiAgICBBY3RpdmUgPSAwLFxyXG4gICAgXHJcbiAgICAvKiogSW5hY3RpdmUgKi9cclxuICAgIEluYWN0aXZlID0gMSxcclxufVxyXG4iLCJpbXBvcnQgeyBDdXN0b21lckFzc2V0U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0N1c3RvbWVyQXNzZXRTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgQ3VzdG9tZXJBc3NldCB9IGZyb20gXCIuLi9Nb2RlbHMvQ3VzdG9tZXJBc3NldFwiO1xyXG5pbXBvcnQgeyBNb2NrQWNjb3VudERhdGEgfSBmcm9tIFwiLi9Nb2NrQWNjb3VudERhdGFcIjtcclxuaW1wb3J0IHsgTW9ja1Byb2R1Y3REYXRhIH0gZnJvbSBcIi4vTW9ja1Byb2R1Y3REYXRhXCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBPcmRlcnMgKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tDdXN0b21lckFzc2V0RGF0YTogQ3VzdG9tZXJBc3NldFtdID0gW1xyXG4gICAge1xyXG4gICAgICAgIG1zZHluX2N1c3RvbWVyYXNzZXRpZDogXCIzNzdlNDY1Mi1lMzhkLTRjMGMtOTc2OC1iMDQ3YTRhNDU5YzZcIixcclxuICAgICAgICBtc2R5bl9uYW1lOiBcIkVWQS0wMDJcIixcclxuICAgICAgICBfbXNkeW5fcHJvZHVjdF92YWx1ZTogTW9ja1Byb2R1Y3REYXRhWzBdLnByb2R1Y3RpZCxcclxuICAgICAgICBtc2R5bl9wcm9kdWN0OiBNb2NrUHJvZHVjdERhdGFbMF0sXHJcbiAgICAgICAgc3RhdGVjb2RlOiBDdXN0b21lckFzc2V0U3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBfYmlzdGVjaF9zaXRlX3ZhbHVlOiBNb2NrQWNjb3VudERhdGFbMF0uYWNjb3VudGlkLFxyXG4gICAgICAgIGJpc3RlY2hfc2VyaWFsbnVtYmVyOiBcIjEyMzQ1NlwiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBtc2R5bl9jdXN0b21lcmFzc2V0aWQ6IFwiMzc3ZTQ2NTItZTM4ZC00YzBjLTk3NjgtYjA0N2E0YTQ1OWM3XCIsXHJcbiAgICAgICAgbXNkeW5fbmFtZTogXCJFVkEtMDAzXCIsXHJcbiAgICAgICAgX21zZHluX3Byb2R1Y3RfdmFsdWU6IE1vY2tQcm9kdWN0RGF0YVswXS5wcm9kdWN0aWQsXHJcbiAgICAgICAgbXNkeW5fcHJvZHVjdDogTW9ja1Byb2R1Y3REYXRhWzBdLFxyXG4gICAgICAgIHN0YXRlY29kZTogQ3VzdG9tZXJBc3NldFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2l0ZV92YWx1ZTogTW9ja0FjY291bnREYXRhWzFdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3NlcmlhbG51bWJlcjogXCIxMjM0NTZcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbXNkeW5fY3VzdG9tZXJhc3NldGlkOiBcIjM3N2U0NjUyLWUzOGQtNGMwYy05NzY4LWIwNDdhNGE0NTljOFwiLFxyXG4gICAgICAgIG1zZHluX25hbWU6IFwiRVZBLTAwNFwiLFxyXG4gICAgICAgIF9tc2R5bl9wcm9kdWN0X3ZhbHVlOiBNb2NrUHJvZHVjdERhdGFbMF0ucHJvZHVjdGlkLFxyXG4gICAgICAgIG1zZHluX3Byb2R1Y3Q6IE1vY2tQcm9kdWN0RGF0YVswXSxcclxuICAgICAgICBzdGF0ZWNvZGU6IEN1c3RvbWVyQXNzZXRTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIF9iaXN0ZWNoX3NpdGVfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVsyXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9zZXJpYWxudW1iZXI6IFwiMTIzNDU2XCIsXHJcbiAgICB9LFxyXG5dO1xyXG4iLCIvKiogRW51bSByZXByZXNlbnRpbmcgYSBOZXR3b3JrIE9yZGVyIFN0YWdlIFN0YXRlIENvZGUuICAqL1xyXG5leHBvcnQgZW51bSBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZSB7XHJcbiAgICAvKiogQWN0aXZlLiAqL1xyXG4gICAgQWN0aXZlID0gMCxcclxuXHJcbiAgICAvKiogSW5hY3RpdmUuICovXHJcbiAgICBJbmFjdGl2ZSA9IDEsXHJcbn1cclxuIiwiLyoqIEVudW0gcmVwcmVzZW50aW5nIGEgTmV0d29yayBPcmRlciBTdGFnZSBTdGF0dXMgQ29kZSAqL1xyXG5leHBvcnQgZW51bSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUge1xyXG4gICAgLyoqIEFjdGl2ZSAtIElkZW50aWZpZWQgKi9cclxuICAgIElkZW50aWZpZWQgPSAxMDBfMDAwXzAwMSxcclxuXHJcbiAgICAvKiogQWN0aXZlIC0gRGVsYXllZCAqL1xyXG4gICAgRGVsYXllZCA9IDEwMF8wMDBfMDAyLFxyXG5cclxuICAgIC8qKiBBY3RpdmUgLSBTY2hlZHVsZWQgKi9cclxuICAgIFNjaGVkdWxlZCA9IDEwMF8wMDBfMDAzLFxyXG5cclxuICAgIC8qKiBJbmFjdGl2ZSAtIENvbXBsZXRlZCAqL1xyXG4gICAgQ29tcGxldGVkID0gMixcclxuXHJcbiAgICAvKiogSW5hY3RpdmUgLSBDYW5jZWxsZWQgKi9cclxuICAgIENhbmNlbGxlZCA9IDEwMF8wMDBfMDA0LFxyXG59XHJcbiIsIi8qKiBFbnVtZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIFN0YWdlIG9mIE5ldHdvcmsgT3JkZXIgU3RhZ2UgcmVjb3JkcyAqL1xyXG5leHBvcnQgZW51bSBOZXR3b3JrT3JkZXJTdGFnZVR5cGUge1xyXG4gICAgLyoqIE9yZGVyIFBsYWNlZCAqL1xyXG4gICAgXCJPcmRlciBQbGFjZWRcIiA9IDFfMDAwLFxyXG5cclxuICAgIC8qKiBTdXJ2ZXkgU3RhZ2UgKi9cclxuICAgIFN1cnZleSA9IDEwMF8wMDBfMDAwLFxyXG5cclxuICAgIC8qKiBXYXlsZWF2ZSBSZXF1aXJlZCBTdGFnZSAqL1xyXG4gICAgV2F5bGVhdmUgPSAxMDBfMDAwXzAxMCxcclxuXHJcbiAgICAvKiogQ2l2aWxzIFJlcXVpcmVkIFN0YWdlICovXHJcbiAgICBcIkNpdmlscyBXb3JrXCIgPSAxMDBfMDAwXzAyMCxcclxuXHJcbiAgICAvKiogSW5zdGFsbGF0aW9uIGZvciBEU0wgQ29ubmVjdGlvbnMgKi9cclxuICAgIEluc3RhbGxhdGlvbiA9IDEwMF8wMDBfMDI1LFxyXG5cclxuICAgIC8qKkluc3RhbGxhdGlvbiAtIEZpYnJlIEluc3RhbGwgU3RhZ2UgKi9cclxuICAgIFwiRmlicmUgSW5zdGFsbFwiID0gMTAwXzAwMF8wMzAsXHJcblxyXG4gICAgLyoqSW5zdGFsbGF0aW9uIC0gRmlicmUgU3BsaWNpbmcgU3RhZ2UgKi9cclxuICAgIFwiRmlicmUgU3BsaWNpbmdcIiA9IDEwMF8wMDBfMDQwLFxyXG5cclxuICAgIC8qKiBJbnN0YWxsYXRpb24gLSBGaXQgJiBUZXN0IFN0YWdlICovXHJcbiAgICBcIkZpdCAmIFRlc3RcIiA9IDEwMF8wMDBfMDUwLFxyXG5cclxuICAgIC8qKiBDb25uZWN0aW9uIEluc3RhbGxlZCAqL1xyXG4gICAgXCJDb25uZWN0aW9uIEluc3RhbGxlZFwiID0gMTAwXzAwMF8wNjAsXHJcblxyXG4gICAgLyoqIENvbW1zQ2FyZSBTaXRlIFZpc2l0ICovXHJcbiAgICBcIkNvbW1zQ2FyZSBTaXRlIFZpc2l0XCIgPSAxMDBfMDAwXzA3MCxcclxufVxyXG4iLCJpbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9OZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YWdlVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9OZXR3b3JrT3JkZXJTdGFnZVR5cGVcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhZ2UgfSBmcm9tIFwiLi4vTW9kZWxzL05ldHdvcmtPcmRlclN0YWdlXCI7XHJcblxyXG4vKiogTW9jayBkYXRhIGZvciBPcmRlcnMgKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGE6IE5ldHdvcmtPcmRlclN0YWdlW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZWlkOiBcIjA5YmQwOTZjLWJmN2YtZWUxMS04MTc5LTYwNDViZDEwZjBmOFwiLFxyXG4gICAgICAgIGJpc3RlY2hfc3RhZ2U6IE5ldHdvcmtPcmRlclN0YWdlVHlwZVtcIk9yZGVyIFBsYWNlZFwiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBcIjIwMjMtMTAtMjVUMjM6MDA6MDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuQ29tcGxldGVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiNWZiM2Y1MjctMjE4Mi1lZTExLTgxNzktNjA0NWJkMTBmM2VlXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiRml0ICYgVGVzdFwiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBcIjIwMjMtMTEtMTNUMDA6MDA6MDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuQ29tcGxldGVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiZDcwMTJmZmYtMmM2Zi1lZTExLTlhZTctNjA0NWJkMTBmNDBkXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiQ2l2aWxzIFdvcmtcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlZnJvbTogXCIyMDIzLTEwLTIwVDAwOjAwOjAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5JZGVudGlmaWVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiZDcwMTJmZmYtMmM2Zi1lZTExLTlhZTctNjA0NWJkMzBmNDBkXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiSW5zdGFsbGF0aW9uXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfZGF0ZWZyb206IFwiMjAyMy0xMC0yNVQwMDowMDowMFpcIixcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuSWRlbnRpZmllZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZWlkOiBcImQ3MDEyZmZmLTJjNmYtZWUxMS05eWU3LTYwNDV0ZDMwZjQwZFwiLFxyXG4gICAgICAgIGJpc3RlY2hfc3RhZ2U6IE5ldHdvcmtPcmRlclN0YWdlVHlwZVtcIkluc3RhbGxhdGlvblwiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBcIjIwMjMtMTAtMjFUMDA6MDA6MDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuQ29tcGxldGVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiNDYzZTQ1N2QtYjY2Ni1lZTExLTlhZTctNjA0NWJkMTBmZGFhXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiQ29ubmVjdGlvbiBJbnN0YWxsZWRcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlZnJvbTogXCIyMDIzLTEwLTI0VDAwOjAwOjAwWlwiLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5EZWxheWVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiNGQ5ZGRiYjMtMDk3Zi1lZTExLTgxNzktNjA0NWJkZDBiNDVkXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiV2F5bGVhdmVcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlZnJvbTogbnVsbCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlLkluYWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VpZDogXCJmMjY2ZTUzOC0wYTdmLWVlMTEtODE3OS02MDQ1YmRkMGI0NWRcIixcclxuICAgICAgICBiaXN0ZWNoX3N0YWdlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJTdXJ2ZXlcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlZnJvbTogbnVsbCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlLkluYWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VpZDogXCJlZGEwNDRkNy1jOTYxLWVlMTEtOGRlZi02MDQ1YmRkMGI0NWRcIixcclxuICAgICAgICBiaXN0ZWNoX3N0YWdlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJDb25uZWN0aW9uIEluc3RhbGxlZFwiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBcIjIwMjMtMTAtMDNUMDA6MDA6MDBaXCIsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuQ29tcGxldGVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiNzMyNmY4ZjUtMDg3Zi1lZTExLTgxNzktNjA0NWJkZDBiZWQwXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiQ29ubmVjdGlvbiBJbnN0YWxsZWRcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlZnJvbTogbnVsbCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlLkluYWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VpZDogXCI5NTI2ZjhmNS0wODdmLWVlMTEtODE3OS02MDQ1YmRkMGJlZDBcIixcclxuICAgICAgICBiaXN0ZWNoX3N0YWdlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJGaWJyZSBTcGxpY2luZ1wiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBudWxsLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLkNvbXBsZXRlZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZWlkOiBcIjk1MjZmOGY1LTA4N2YtZWUxMS04MTc5LTYwNDViZGQwYmVkMFwiLFxyXG4gICAgICAgIGJpc3RlY2hfc3RhZ2U6IE5ldHdvcmtPcmRlclN0YWdlVHlwZVtcIkZpYnJlIFNwbGljaW5nXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfZGF0ZWZyb206IG51bGwsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuQ29tcGxldGVkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQ6IFwiOTUyNmY4ZjUtMDg3Zi1lZTExLTgxNzktNjA0NWJkZDBiZWQwXCIsXHJcbiAgICAgICAgYmlzdGVjaF9zdGFnZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiRmlicmUgU3BsaWNpbmdcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9kYXRlZnJvbTogbnVsbCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlLkluYWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VpZDogXCI5NTI2ZjhmNS0wODdmLWVlMTEtODE3OS02MDQ1YmRkMGJlZDBcIixcclxuICAgICAgICBiaXN0ZWNoX3N0YWdlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJGaWJyZSBTcGxpY2luZ1wiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBudWxsLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLklkZW50aWZpZWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VpZDogXCI5NTI2ZjhmNS0wODdmLWVlMTEtODE3OS02MDQ1YmRkMGJlZDBcIixcclxuICAgICAgICBiaXN0ZWNoX3N0YWdlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJDb21tc0NhcmUgU2l0ZSBWaXNpdFwiXSxcclxuICAgICAgICBiaXN0ZWNoX2RhdGVmcm9tOiBudWxsLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5JZGVudGlmaWVkLFxyXG4gICAgfSxcclxuXTtcclxuIiwiaW1wb3J0IHsgTmV0d29ya09yZGVyVHlwZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9CaXN0ZWNoLlR5cGVTY3JpcHQuSGVscGVycy9Ycm1IZWxwZXIvRW51bXMvTmV0d29ya09yZGVyVHlwZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL05ldHdvcmtPcmRlckZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBNb2NrQ3VzdG9tZXJBc3NldERhdGEgfSBmcm9tIFwiLi9Nb2NrQ3VzdG9tZXJBc3NldERhdGFcIjtcclxuaW1wb3J0IHsgTW9ja05ldHdvcmtPcmRlclN0YWdlRGF0YSB9IGZyb20gXCIuL01vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGFcIjtcclxuaW1wb3J0IHsgTW9ja09yZGVyRGF0YSB9IGZyb20gXCIuL01vY2tPcmRlckRhdGFcIjtcclxuaW1wb3J0IHsgTW9ja09yZGVyTGluZURhdGEgfSBmcm9tIFwiLi9Nb2NrT3JkZXJMaW5lRGF0YVwiO1xyXG5pbXBvcnQgeyBNb2NrUHJvamVjdERhdGEgfSBmcm9tIFwiLi9Nb2NrUHJvamVjdERhdGFcIjtcclxuXHJcbi8qKiBNb2NrIGRhdGEgZm9yIE9yZGVycyAqL1xyXG5leHBvcnQgY29uc3QgTW9ja05ldHdvcmtPcmRlckRhdGE6IE5ldHdvcmtPcmRlckZvclJldHJpZXZhbFtdID0gW1xyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyaWQ6IFwiMzc3ZTQ2NTItZTM4ZC00YzBjLTk3NjgtYjA0N2E0YTQ1OWM2XCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIk5PLTEzNzU4NFwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVydHlwZTogTmV0d29ya09yZGVyVHlwZVtcIk5ldyBPcmRlclwiXSxcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIF9iaXN0ZWNoX2N1c3RvbWVyYXNzZXRfdmFsdWU6IE1vY2tDdXN0b21lckFzc2V0RGF0YVswXS5tc2R5bl9jdXN0b21lcmFzc2V0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZTpcclxuICAgICAgICAgICAgTW9ja1Byb2plY3REYXRhW1wiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEV4Y2hhbmdlIE9ubGluZSAtIEZ1bGwgTWlncmF0aW9uXCJdLm1zZHluX3Byb2plY3RpZCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogTmV0d29ya09yZGVyU3RhdHVzQ29kZS5Db21wbGV0ZWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZTogTW9ja09yZGVyRGF0YVsxXS5zYWxlc29yZGVyaWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjFbMV0uc2FsZXNvcmRlcmRldGFpbGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmk6IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGEuc2xpY2UoXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwKSxcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTQgKyAxMClcclxuICAgICAgICApLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcmlkOiBcIjM3N2U0NjUyLWUzOGQtNGMwYy05NzY4LWIwNDdhNGE0NTljN1wiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJOTy0xMzc1ODVcIixcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnR5cGU6IE5ldHdvcmtPcmRlclR5cGVbXCJOZXcgT3JkZXJcIl0sXHJcbiAgICAgICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlOiBNb2NrQ3VzdG9tZXJBc3NldERhdGFbMF0ubXNkeW5fY3VzdG9tZXJhc3NldGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWU6XHJcbiAgICAgICAgICAgIE1vY2tQcm9qZWN0RGF0YVtcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBGdWxsIE1pZ3JhdGlvblwiXS5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUuQ2FuY2VsbGVkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3NhbGVzb3JkZXJfdmFsdWU6IE1vY2tPcmRlckRhdGFbMV0uc2FsZXNvcmRlcmlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX29yZGVybGluZV92YWx1ZTogTW9ja09yZGVyTGluZURhdGEuT3JkZXIxWzFdLnNhbGVzb3JkZXJkZXRhaWxpZCxcclxuICAgICAgICBiaXN0ZWNoX2Jpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VfbmV0d29ya29yZGVyX2JpOiBNb2NrTmV0d29ya09yZGVyU3RhZ2VEYXRhLnNsaWNlKFxyXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCksXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE0ICsgMTApXHJcbiAgICAgICAgKSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZDogXCIzNzdlNDY1Mi1lMzhkLTRjMGMtOTc2OC1iMDQ3YTRhNDU5YzhcIixcclxuICAgICAgICBiaXN0ZWNoX25hbWU6IFwiTk8tMTM3NTg2XCIsXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJ0eXBlOiBOZXR3b3JrT3JkZXJUeXBlW1wiTmV3IE9yZGVyXCJdLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3VzdG9tZXJhc3NldF92YWx1ZTogTW9ja0N1c3RvbWVyQXNzZXREYXRhWzFdLm1zZHluX2N1c3RvbWVyYXNzZXRpZCxcclxuICAgICAgICBfYmlzdGVjaF9wcm9qZWN0bmV0d29ya29yZGVyX3ZhbHVlOlxyXG4gICAgICAgICAgICBNb2NrUHJvamVjdERhdGFbXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRXhjaGFuZ2UgT25saW5lIC0gRnVsbCBNaWdyYXRpb25cIl0ubXNkeW5fcHJvamVjdGlkLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmcsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZTogTW9ja09yZGVyRGF0YVsxXS5zYWxlc29yZGVyaWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjFbMV0uc2FsZXNvcmRlcmRldGFpbGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmk6IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGEuc2xpY2UoXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwKSxcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTQgKyAxMClcclxuICAgICAgICApLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcmlkOiBcIjM3N2U0NjUyLWUzOGQtNGMwYy05NzY4LWIwNDdhNGE0NTljOVwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJOTy0xMzc1ODdcIixcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnR5cGU6IE5ldHdvcmtPcmRlclR5cGVbXCJOZXcgT3JkZXJcIl0sXHJcbiAgICAgICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlOiBNb2NrQ3VzdG9tZXJBc3NldERhdGFbMl0ubXNkeW5fY3VzdG9tZXJhc3NldGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWU6XHJcbiAgICAgICAgICAgIE1vY2tQcm9qZWN0RGF0YVtcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBGdWxsIE1pZ3JhdGlvblwiXS5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUuUGVuZGluZyxcclxuICAgICAgICBfYmlzdGVjaF9zYWxlc29yZGVyX3ZhbHVlOiBNb2NrT3JkZXJEYXRhWzFdLnNhbGVzb3JkZXJpZCxcclxuICAgICAgICBfYmlzdGVjaF9vcmRlcmxpbmVfdmFsdWU6IE1vY2tPcmRlckxpbmVEYXRhLk9yZGVyMVsxXS5zYWxlc29yZGVyZGV0YWlsaWQsXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlX25ldHdvcmtvcmRlcl9iaTogTW9ja05ldHdvcmtPcmRlclN0YWdlRGF0YS5zbGljZShcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApLFxyXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNCArIDEwKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyaWQ6IFwiMzc3ZTQ2NTItZTM4ZC00YzBjLTk3NjgtYjA0OGE0YTQ1OWM2XCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIk5PLTEzNzU4NFwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVydHlwZTogTmV0d29ya09yZGVyVHlwZVtcIk5ldyBPcmRlclwiXSxcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIF9iaXN0ZWNoX2N1c3RvbWVyYXNzZXRfdmFsdWU6IE1vY2tDdXN0b21lckFzc2V0RGF0YVswXS5tc2R5bl9jdXN0b21lcmFzc2V0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZTpcclxuICAgICAgICAgICAgTW9ja1Byb2plY3REYXRhW1wiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEV4Y2hhbmdlIE9ubGluZSAtIEZ1bGwgTWlncmF0aW9uXCJdLm1zZHluX3Byb2plY3RpZCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogTmV0d29ya09yZGVyU3RhdHVzQ29kZS5DYW5jZWxsZWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZTogTW9ja09yZGVyRGF0YVsxXS5zYWxlc29yZGVyaWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjFbMV0uc2FsZXNvcmRlcmRldGFpbGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmk6IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGEuc2xpY2UoXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwKSxcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTQgKyAxMClcclxuICAgICAgICApLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcmlkOiBcIjE3N2U0NjUyLWUzOGQtNGMwYy05NzY4LWIwNDdhNGE0NTljN1wiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJOTy0xMzc1ODVcIixcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnR5cGU6IE5ldHdvcmtPcmRlclR5cGVbXCJOZXcgT3JkZXJcIl0sXHJcbiAgICAgICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlOiBNb2NrQ3VzdG9tZXJBc3NldERhdGFbMF0ubXNkeW5fY3VzdG9tZXJhc3NldGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWU6XHJcbiAgICAgICAgICAgIE1vY2tQcm9qZWN0RGF0YVtcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBGdWxsIE1pZ3JhdGlvblwiXS5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUuUGVuZGluZyxcclxuICAgICAgICBfYmlzdGVjaF9zYWxlc29yZGVyX3ZhbHVlOiBNb2NrT3JkZXJEYXRhWzFdLnNhbGVzb3JkZXJpZCxcclxuICAgICAgICBfYmlzdGVjaF9vcmRlcmxpbmVfdmFsdWU6IE1vY2tPcmRlckxpbmVEYXRhLk9yZGVyMVsxXS5zYWxlc29yZGVyZGV0YWlsaWQsXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlX25ldHdvcmtvcmRlcl9iaTogTW9ja05ldHdvcmtPcmRlclN0YWdlRGF0YS5zbGljZShcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApLFxyXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNCArIDEwKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyaWQ6IFwiMjc3ZTQ2NTItZTM4ZC00YzBjLTk3NjgtYjA0N2E0YTQ1OWM4XCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIk5PLTEzNzU4NlwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVydHlwZTogTmV0d29ya09yZGVyVHlwZVtcIk5ldyBPcmRlclwiXSxcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIF9iaXN0ZWNoX2N1c3RvbWVyYXNzZXRfdmFsdWU6IE1vY2tDdXN0b21lckFzc2V0RGF0YVsxXS5tc2R5bl9jdXN0b21lcmFzc2V0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZTpcclxuICAgICAgICAgICAgTW9ja1Byb2plY3REYXRhW1wiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEV4Y2hhbmdlIE9ubGluZSAtIEZ1bGwgTWlncmF0aW9uXCJdLm1zZHluX3Byb2plY3RpZCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogTmV0d29ya09yZGVyU3RhdHVzQ29kZS5QZW5kaW5nLFxyXG4gICAgICAgIF9iaXN0ZWNoX3NhbGVzb3JkZXJfdmFsdWU6IE1vY2tPcmRlckRhdGFbMV0uc2FsZXNvcmRlcmlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX29yZGVybGluZV92YWx1ZTogTW9ja09yZGVyTGluZURhdGEuT3JkZXIxWzFdLnNhbGVzb3JkZXJkZXRhaWxpZCxcclxuICAgICAgICBiaXN0ZWNoX2Jpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VfbmV0d29ya29yZGVyX2JpOiBNb2NrTmV0d29ya09yZGVyU3RhZ2VEYXRhLnNsaWNlKFxyXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCksXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE0ICsgMTApXHJcbiAgICAgICAgKSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZDogXCI0NzdlNDY1Mi1lMzhkLTRjMGMtOTc2OC1iMDQ3YTRhNDU5YzlcIixcclxuICAgICAgICBiaXN0ZWNoX25hbWU6IFwiTk8tMTM3NTg3XCIsXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJ0eXBlOiBOZXR3b3JrT3JkZXJUeXBlW1wiTmV3IE9yZGVyXCJdLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3VzdG9tZXJhc3NldF92YWx1ZTogTW9ja0N1c3RvbWVyQXNzZXREYXRhWzJdLm1zZHluX2N1c3RvbWVyYXNzZXRpZCxcclxuICAgICAgICBfYmlzdGVjaF9wcm9qZWN0bmV0d29ya29yZGVyX3ZhbHVlOlxyXG4gICAgICAgICAgICBNb2NrUHJvamVjdERhdGFbXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRXhjaGFuZ2UgT25saW5lIC0gRnVsbCBNaWdyYXRpb25cIl0ubXNkeW5fcHJvamVjdGlkLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmcsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZTogTW9ja09yZGVyRGF0YVsxXS5zYWxlc29yZGVyaWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjFbMV0uc2FsZXNvcmRlcmRldGFpbGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmk6IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGEuc2xpY2UoXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwKSxcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTQgKyAxMClcclxuICAgICAgICApLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcmlkOiBcIjU3N2U0NjUyLWUzOGQtNGMwYy05NzY4LWIwNDdhNGE0NTljNlwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJOTy0xMzc1ODRcIixcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnR5cGU6IE5ldHdvcmtPcmRlclR5cGVbXCJOZXcgT3JkZXJcIl0sXHJcbiAgICAgICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlOiBNb2NrQ3VzdG9tZXJBc3NldERhdGFbMF0ubXNkeW5fY3VzdG9tZXJhc3NldGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWU6XHJcbiAgICAgICAgICAgIE1vY2tQcm9qZWN0RGF0YVtcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBGdWxsIE1pZ3JhdGlvblwiXS5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUuQ29tcGxldGVkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3NhbGVzb3JkZXJfdmFsdWU6IE1vY2tPcmRlckRhdGFbMV0uc2FsZXNvcmRlcmlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX29yZGVybGluZV92YWx1ZTogTW9ja09yZGVyTGluZURhdGEuT3JkZXIxWzFdLnNhbGVzb3JkZXJkZXRhaWxpZCxcclxuICAgICAgICBiaXN0ZWNoX2Jpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VfbmV0d29ya29yZGVyX2JpOiBNb2NrTmV0d29ya09yZGVyU3RhZ2VEYXRhLnNsaWNlKFxyXG4gICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCksXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE0ICsgMTApXHJcbiAgICAgICAgKSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZDogXCI2NzdlNDY1Mi1lMzhkLTRjMGMtOTc2OC1iMDQ3YTRhNDU5YzdcIixcclxuICAgICAgICBiaXN0ZWNoX25hbWU6IFwiTk8tMTM3NTg1XCIsXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJ0eXBlOiBOZXR3b3JrT3JkZXJUeXBlW1wiTmV3IE9yZGVyXCJdLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IG51bGwsXHJcbiAgICAgICAgX2Jpc3RlY2hfY3VzdG9tZXJhc3NldF92YWx1ZTogTW9ja0N1c3RvbWVyQXNzZXREYXRhWzBdLm1zZHluX2N1c3RvbWVyYXNzZXRpZCxcclxuICAgICAgICBfYmlzdGVjaF9wcm9qZWN0bmV0d29ya29yZGVyX3ZhbHVlOlxyXG4gICAgICAgICAgICBNb2NrUHJvamVjdERhdGFbXCJQcm9mZXNzaW9uYWwgU2VydmljZXMgLSBNaWNyb3NvZnQgRXhjaGFuZ2UgT25saW5lIC0gRnVsbCBNaWdyYXRpb25cIl0ubXNkeW5fcHJvamVjdGlkLFxyXG4gICAgICAgIHN0YXRlY29kZTogTmV0d29ya09yZGVyU3RhdGVDb2RlLkFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmcsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZTogTW9ja09yZGVyRGF0YVsxXS5zYWxlc29yZGVyaWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjFbMV0uc2FsZXNvcmRlcmRldGFpbGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmk6IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGEuc2xpY2UoXHJcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwKSxcclxuICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTQgKyAxMClcclxuICAgICAgICApLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2FkeF9wb3J0YWxjb21tZW50czogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9wb3J0YWxlbWFpbHM6IFtdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcmlkOiBcImE0MDc2NWEyLTRiNmQtNDY1MS04OGIzLWQxNDMzMDVhYWI2NVwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmFtZTogXCJOTy0yMzM0OTlcIixcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnR5cGU6IE5ldHdvcmtPcmRlclR5cGVbXCJOZXcgT3JkZXJcIl0sXHJcbiAgICAgICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZTogbnVsbCxcclxuICAgICAgICBfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlOiBNb2NrQ3VzdG9tZXJBc3NldERhdGFbMF0ubXNkeW5fY3VzdG9tZXJhc3NldGlkLFxyXG4gICAgICAgIF9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWU6XHJcbiAgICAgICAgICAgIE1vY2tQcm9qZWN0RGF0YVtcIlByb2Zlc3Npb25hbCBTZXJ2aWNlcyAtIE1pY3Jvc29mdCBFeGNoYW5nZSBPbmxpbmUgLSBGdWxsIE1pZ3JhdGlvblwiXS5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgc3RhdGVjb2RlOiBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUuSW5hY3RpdmUsXHJcbiAgICAgICAgc3RhdHVzY29kZTogTmV0d29ya09yZGVyU3RhdHVzQ29kZS5DYW5jZWxsZWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZTogTW9ja09yZGVyRGF0YVsxXS5zYWxlc29yZGVyaWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlOiBNb2NrT3JkZXJMaW5lRGF0YS5PcmRlcjFbMV0uc2FsZXNvcmRlcmRldGFpbGlkLFxyXG4gICAgICAgIGJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmk6IE1vY2tOZXR3b3JrT3JkZXJTdGFnZURhdGEsXHJcbiAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzOiBbXSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyaWQ6IFwiM2IyZDgxNzktYTkwYi00OTBiLWE1Y2MtZmE4YzZkZTlhMTUwXCIsXHJcbiAgICAgICAgYmlzdGVjaF9uYW1lOiBcIk5PLTQ1MTI5MlwiLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVydHlwZTogTmV0d29ya09yZGVyVHlwZVtcIk5ldyBPcmRlclwiXSxcclxuICAgICAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIF9iaXN0ZWNoX2N1c3RvbWVyYXNzZXRfdmFsdWU6IE1vY2tDdXN0b21lckFzc2V0RGF0YVswXS5tc2R5bl9jdXN0b21lcmFzc2V0aWQsXHJcbiAgICAgICAgX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZTpcclxuICAgICAgICAgICAgTW9ja1Byb2plY3REYXRhW1wiUHJvZmVzc2lvbmFsIFNlcnZpY2VzIC0gTWljcm9zb2Z0IEV4Y2hhbmdlIE9ubGluZSAtIEZ1bGwgTWlncmF0aW9uXCJdLm1zZHluX3Byb2plY3RpZCxcclxuICAgICAgICBzdGF0ZWNvZGU6IE5ldHdvcmtPcmRlclN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLkNvbXBsZXRlZCxcclxuICAgICAgICBfYmlzdGVjaF9zYWxlc29yZGVyX3ZhbHVlOiBNb2NrT3JkZXJEYXRhWzFdLnNhbGVzb3JkZXJpZCxcclxuICAgICAgICBfYmlzdGVjaF9vcmRlcmxpbmVfdmFsdWU6IE1vY2tPcmRlckxpbmVEYXRhLk9yZGVyMVsxXS5zYWxlc29yZGVyZGV0YWlsaWQsXHJcbiAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlX25ldHdvcmtvcmRlcl9iaTogTW9ja05ldHdvcmtPcmRlclN0YWdlRGF0YSxcclxuICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9hZHhfcG9ydGFsY29tbWVudHM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM6IFtdLFxyXG4gICAgICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfcG9ydGFsZW1haWxzOiBbXSxcclxuICAgIH0sXHJcbl07XHJcbiIsImV4cG9ydCBjb25zdCBNb2NrQmFzZTY0SW52b2ljZVBERjogc3RyaW5nID1cclxuICAgIFwiSlZCRVJpMHhMamNOSmNqSXlNakl5TWdOSlNBZ0lBb3hJREFnYjJKcUNsc3ZVRVJHTDFSbGVIUXZTVzFoWjJWQ0wwbHRZV2RsUXk5SmJXRm5aVWxkRFFwbGJtUnZZbW9LTWlBd0lHOWlhZ284UEM5VWVYQmxMMUJoWjJVdlVHRnlaVzUwSURnZ01DQlNMMDFsWkdsaFFtOTRXekFnTUNBNE5ERXVPRGc1T1RrNU9UazVPVGs1T1RnMk16WWdOVGsxTGpJM05UazVPVGs1T1RrNU9UazFNell5WFM5RGIyNTBaVzUwY3lBM0lEQWdVaTlTWlhOdmRYSmpaWE04UEM5UWNtOWpVMlYwSURFZ01DQlNMMWhQWW1wbFkzUThQQzlKYlRVZ05TQXdJRkl2U1cwMklEWWdNQ0JTUGo0dlJtOXVkRHc4TDBZeklETWdNQ0JTTDBZMElEUWdNQ0JTUGo0K1BqNCtEUXBsYm1Sdlltb0tNeUF3SUc5aWFnbzhQQzlVZVhCbEwwWnZiblF2VTNWaWRIbHdaUzlVY25WbFZIbHdaUzlHYVhKemRFTm9ZWElnTUM5TVlYTjBRMmhoY2lBeU5UVXZWMmxrZEdoeld6VXdNQ0F4TURBd0lEUTVNQ0EwT1RBZ05Ea3dJRFE1TUNBME9UQWdORGt3SURRNU1DQTFNREFnTWpZd0lEUTVNQ0EwT1RBZ01qWXdJRFE1TUNBME9UQWdORGt3SURRNU1DQTBPVEFnTkRrd0lEUTVNQ0EwT1RBZ05Ea3dJRFE1TUNBME9UQWdORGt3SURRNU1DQTBPVEFnTkRrd0lEUTVNQ0EwT1RBZ05Ea3dJREkyTmlBeU56Z2dNelUxSURVMU5pQTFOVFlnT0RnNUlEWTJOeUF4T1RFZ016TXpJRE16TXlBek9Ea2dOVGcwSURJM09DQXpNek1nTWpjNElESTNPQ0ExTlRZZ05UVTJJRFUxTmlBMU5UWWdOVFUySURVMU5pQTFOVFlnTlRVMklEVTFOaUExTlRZZ01qYzRJREkzT0NBMU9EUWdOVGcwSURVNE5DQTFOVFlnTVRBeE5TQTJOamNnTmpZM0lEY3lNaUEzTWpJZ05qWTNJRFl4TVNBM056Z2dOekl5SURJM09DQTFNREFnTmpZM0lEVTFOaUE0TXpNZ056SXlJRGMzT0NBMk5qY2dOemM0SURjeU1pQTJOamNnTmpFeElEY3lNaUEyTmpjZ09UUTBJRFkyTnlBMk5qY2dOakV4SURJM09DQXlOemdnTWpjNElEUTJPU0ExTlRJZ016TXpJRFUxTmlBMU5UWWdOVEF3SURVMU5pQTFOVFlnTWpjNElEVTFOaUExTlRZZ01qSTRJREl5T0NBMU1EQWdNakk0SURnek15QTFOVFlnTlRVMklEVTFOaUExTlRZZ016TXpJRFV3TUNBeU56Z2dOVFUySURVd01DQTNNaklnTlRBd0lEVXdNQ0ExTURBZ016TTBJREkyTUNBek16UWdOVGcwSURVd01DQTFOVFlnTlRBd0lESTNPQ0ExTlRZZ016a3lJRFUyTlNBMU5UWWdOVFUySURNek15QXhNREF3SURZMk55QXpNek1nTVRBd01DQTFNREFnTmpFeElEVXdNQ0ExTURBZ01qSXlJREl5TWlBek16TWdNek16SURNMU1DQXlPVE1nTlRnMklETXpNeUEyT0RRZ05UQXdJRE16TXlBNU5EUWdOVEF3SURVd01DQTJOamNnTWpZMklESTNPQ0ExTlRZZ05UVTJJRFUxTmlBMU5UWWdNall3SURVMU5pQXpNek1nTnpNM0lETTNNQ0ExTlRZZ05UZzBJRE16TXlBM016Y2dOVEF3SURRd01DQTFPRFFnTXpNeklETXpNeUF6TXpNZ05UVTJJRFV6TnlBeU56Z2dNek16SURNek15QXpOalVnTlRVMklEZ3pOQ0E0TXpRZ09ETTBJRFUxTmlBMk5qY2dOalkzSURZMk55QTJOamNnTmpZM0lEWTJOeUF4TURBd0lEY3lNaUEyTmpjZ05qWTNJRFkyTnlBMk5qY2dNamM0SURJM09DQXlOemdnTWpjNElEY3lNaUEzTWpJZ056YzRJRGMzT0NBM056Z2dOemM0SURjM09DQTFPRFFnTnpjNElEY3lNaUEzTWpJZ056SXlJRGN5TWlBMk5qY2dOalkzSURZeE1TQTFOVFlnTlRVMklEVTFOaUExTlRZZ05UVTJJRFUxTmlBNE9Ea2dOVEF3SURVMU5pQTFOVFlnTlRVMklEVTFOaUF5TWpnZ01qSTRJREl5T0NBeU1qZ2dOVFUySURVMU5pQTFOVFlnTlRVMklEVTFOaUExTlRZZ05UVTJJRFU0TkNBMU5UWWdOVFUySURVMU5pQTFOVFlnTlRVMklEVXdNQ0ExTlRZZ05UQXdYUzlGYm1OdlpHbHVaeTlYYVc1QmJuTnBSVzVqYjJScGJtY3ZRbUZ6WlVadmJuUXZRVUpEUkVWRkswMXBZM0p2YzI5bWRDTXlNRk5oYm5Nak1qQlRaWEpwWmk5R2IyNTBSR1Z6WTNKcGNIUnZjaUF4TVNBd0lGSStQZzBLWlc1a2IySnFDalFnTUNCdlltb0tQRHd2Vkhsd1pTOUdiMjUwTDFOMVluUjVjR1V2VkhKMVpWUjVjR1V2Um1seWMzUkRhR0Z5SURBdlRHRnpkRU5vWVhJZ01qVTFMMWRwWkhSb2MxczFNREFnTVRBd01DQTFNREFnTlRBd0lEVXdNQ0ExTURBZ05UQXdJRFV3TUNBMU1EQWdOVEF3SURJMU9TQTFNREFnTlRBd0lESTFPU0ExTURBZ05UQXdJRFV3TUNBMU1EQWdOVEF3SURVd01DQTFNREFnTlRBd0lEVXdNQ0ExTURBZ05UQXdJRFV3TUNBMU1EQWdOVEF3SURVd01DQTFNREFnTlRBd0lEVXdNQ0F5TmpVZ01qYzNJRE0xTkNBMU5UWWdOVFUySURnNE9TQTJOallnTVRrd0lETXpNeUF6TXpNZ016ZzVJRFU0TXlBeU56Y2dNek16SURJM055QXlOemNnTlRVMklEVTFOaUExTlRZZ05UVTJJRFUxTmlBMU5UWWdOVFUySURVMU5pQTFOVFlnTlRVMklESTNOeUF5TnpjZ05UZ3pJRFU0TXlBMU9ETWdOVFUySURFd01UVWdOalkySURZMk5pQTNNaklnTnpJeUlEWTJOaUEyTVRBZ056YzNJRGN5TWlBeU56Y2dOVEF3SURZMk5pQTFOVFlnT0RNeklEY3lNaUEzTnpjZ05qWTJJRGMzTnlBM01qSWdOalkySURZeE1DQTNNaklnTmpZMklEazBNeUEyTmpZZ05qWTJJRFl4TUNBeU56Y2dNamMzSURJM055QTBOamtnTlRVeElETXpNeUExTlRZZ05UVTJJRFV3TUNBMU5UWWdOVFUySURJM055QTFOVFlnTlRVMklESXlPQ0F5TWpnZ05UQXdJREl5T0NBNE16TWdOVFUySURVMU5pQTFOVFlnTlRVMklETXpNeUExTURBZ01qYzNJRFUxTmlBMU1EQWdOekl5SURVd01DQTFNREFnTlRBd0lETXpNeUF5TlRrZ016TXpJRFU0TXlBMU1EQWdOVFUySURVd01DQXlOemNnTlRVMklETTVNU0ExTmpVZ05UVTJJRFUxTmlBek16TWdNVEF3TUNBMk5qWWdNek16SURFd01EQWdOVEF3SURZeE1DQTFNREFnTlRBd0lESXlNaUF5TWpJZ016TXpJRE16TXlBek5UQWdNamt5SURVNE5TQXpNek1nTmpneklEVXdNQ0F6TXpNZ09UUXpJRFV3TUNBMU1EQWdOalkySURJMk5TQXlOemNnTlRVMklEVTFOaUExTlRZZ05UVTJJREkxT1NBMU5UWWdNek16SURjek5pQXpOekFnTlRVMklEVTRNeUF6TXpNZ056TTJJRFV3TUNBek9Ua2dOVGd6SURNek15QXpNek1nTXpNeklEVTFOaUExTXpjZ01qYzNJRE16TXlBek16TWdNelkxSURVMU5pQTRNek1nT0RNeklEZ3pNeUExTlRZZ05qWTJJRFkyTmlBMk5qWWdOalkySURZMk5pQTJOallnTVRBd01DQTNNaklnTmpZMklEWTJOaUEyTmpZZ05qWTJJREkzTnlBeU56Y2dNamMzSURJM055QTNNaklnTnpJeUlEYzNOeUEzTnpjZ056YzNJRGMzTnlBM056Y2dOVGd6SURjM055QTNNaklnTnpJeUlEY3lNaUEzTWpJZ05qWTJJRFkyTmlBMk1UQWdOVFUySURVMU5pQTFOVFlnTlRVMklEVTFOaUExTlRZZ09EZzVJRFV3TUNBMU5UWWdOVFUySURVMU5pQTFOVFlnTWpJNElESXlPQ0F5TWpnZ01qSTRJRFUxTmlBMU5UWWdOVFUySURVMU5pQTFOVFlnTlRVMklEVTFOaUExT0RNZ05UVTJJRFUxTmlBMU5UWWdOVFUySURVMU5pQTFNREFnTlRVMklEVXdNRjB2Ulc1amIyUnBibWN2VjJsdVFXNXphVVZ1WTI5a2FXNW5MMEpoYzJWR2IyNTBMMEZDUTBSRlJTdE5hV055YjNOdlpuUWpNakJUWVc1ekl6SXdVMlZ5YVdZdlJtOXVkRVJsYzJOeWFYQjBiM0lnTVRJZ01DQlNQajROQ21WdVpHOWlhZ28xSURBZ2IySnFDanc4TDFSNWNHVXZXRTlpYW1WamRDOVRkV0owZVhCbEwwbHRZV2RsTDBOdmJHOXlVM0JoWTJVdlJHVjJhV05sVWtkQ0wwSnBkSE5RWlhKRGIyMXdiMjVsYm5RZ09DOUdhV3gwWlhJdlJteGhkR1ZFWldOdlpHVXZWMmxrZEdnZ016TTFNQzlJWldsbmFIUWdNVGd6TDB4bGJtZDBhQ0ExTXpBMU56NCtjM1J5WldGdERRcFlDZXk5aVh0ZFpiWEgvNGY4T0owb1VGcExCeWlweUtSUWFnc3kyaXJUMVNZZ1JXMUlCSUVibGFKQXdJR0FCWmtTZ25vUmJLcFY4ZjZhWEtsY3BSb0J0VVdNY09YY1I2RUJjc0VCWWhBTEhmWnZtV1hXYi9XZHpwN09Qa08rbitkOStwenM4KzUzM25zZm52MWh2VkVFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvcEZUNmY0eFU2eFlCQUFBQUFBQlFYZjcyenI3L2Z1V05XcmNDQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkI3NnNxZ0d4a1o2ZW01bFJKOXFHRXpBQUFBQUFCQWMvUGthMzg3Y3VEWE9SYTRhZE9tMWF0WE9WTjcrNFl0V3dZbUppWnlySzVncVAzY2x3THE0b3FveGdMcUFnQUFBQUFBQUFBQUFBQUFBQUFBQUNDcUo0TnU0OGJyZERNNk96dHExUklBQUFBQUFORGNGR25RY1dwdFhXZElkQTJraXNHZ0F3QUFBQUFBQUFBQUFBQUFBQUFBQUUxTW5SaDBRME9EZGtzR0JqYlhwREVBQUFBQUFLQzVxWjVCTjNZd3UzYnQ3T3JxNHEvb2d6NGxpeXBHeFc2YUpLZm1Wd0FHSFFBQUFBQUFBQUFBQUFBQUFBQUFBR2hpNnNTZ2EydHJ0VnV5WnMxNU5Xa01BQUFBQUFCb2JxcG4wRG0vRlltdVhDN0x3U3lxV0pGS1c4SFZ3YUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFCVk1uQnQyYU5lZkJvQU1BQUFBQUFNVlFzRUczYTlkT1d3empJSEwwVllycVlOQUJBQUFBQUFBQUFBQUFBQUFBQUFBQWtCZDFZdEFoQmgwQUFBQUFBQ2lNZ2cyNmFFb015MnZmVlJoMEFBQUFBQUFBQUFBQUFBQUFBQUFBQU9SRm5SaDB3OFBEZGt1R2hnWnIwaGdBQUFBQUFORGN3S0NyMitwZzBBRUFBQUFBQUFBQUFBQUFBQUFBQUlDQ3FST0RqaGdZMkt5YjBkTnphNjFhQWdBQUFBQUFtcHVDRGJxeHNUSCtkbkJ3bXh6MHFXSjBwTDE5QTMvYjJycE83L1FxNVRnVGZTdUZURXhNOVBmM2N6bHIxNjZoRHdFbmpWclYxZFZGMlRnemZkYnRqQTQyNkl5U3U3dTdkYjIrd1NISzVUTFhKZWRTUmZZbXRtR0RqdXFpb21oWWRMK29TZUVHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkNnZmd3NlluUjA5L0R3OE5EUUlIMm9ZVE1BQUFBQUFFQnpVN0JCSndhYWxzMXNWV3hpWXFLcnE4dHB4L1gzOTBleERicHl1Y3c2bkpHb2NFTTJDOVJJeDUzdFozdE5KNm9yTE5HSlBkamQzVzFYdEdQSDQzWm1wMEZIT1oxTnBTWlZ0UGdBQUFBQUFBQUFBQUFBQUFBQUFBQUE4RkZYQmgwQUFBQUFBQUFGVUtSQk56WTJ4ajViZDNlM1BtNnJZdjM5L2V5RFNXUTIrc0NHR3dkd0V3TGJxazVNVEhCMTdlMGIrQ3c2TWppNGpROGEyOGl5MGtaZlNTUTMrbGNLWjIxUFYwZGxVdlBZZWFPY29yUVpYVE9RYzNWRjFEVUpKYWU5UHA5QlIzMFJ0VTlHZ3hyQWhXamZEd0FBQUFBQUFBQUFBQUFBQUFBQUFJQkV3S0FEQUFBQUFBRFRqZW9aZEx0MjdkU0pqck82MXRxNnpvai9acXRpbk5PSXlSWk5PbmpHa1lCQngxOFpXcG8rUlk1TFJEdGJWeE9YenpqWDdvVTRlSUhCa1dCeHh1YXdORDUyR0RwZms3Z2lhWkpkQ01MUUFRQUFBQUFBQUFBQUFBQUFBQUFBZ0hRRURMcVJrWkcrdnQ2ZW5sc2xEUTBOam8rUHh5eDVkSFEzNWRlbmM2SXloNGVINDVjREFBQUFBQUR5NWNDQkF5Kzg4TUtQZi96anIzLzlnWnR1dXJHOWZjUEZGMTk0eGhtbm4zenlpUzB0eXhZdFdyaHc0UUpPaXhjZlJVZmUrOTZUenp6ekF4ZGZmRkZIeHhYZDNUZDk4NXZmK08vLy91OFhYM3lSeXFsMVYxSlNQWVBPbWVoYlF6eUxYS3FZT0hnVnF3c1lkRFNiZHF5NWFESmtuRkgrNE9BMnc2a1RSRXN6cXJQdHZrQkxqSDdaOGx2a0h3VGJvT05ZY3hJV3p5NGt6cmdCQUFBQUFBQUFBQUFBQUFBQUFBQUFZR01iZE9QajR6MDl0eTVmM21KL3hhbXpzMk4wZEhlZ3pLR2h3VFZyenZPZExtbmx5aFVEQTVzRExhbCs3d0VBQUFBQXBnVjc5KzdkdFd2WC9mZmYzOTYrWWVYSzB3NC9mRzdGbjJweDByeDVoNjlhOVg3NmNmakFBLzIvK2Mxdjl1M2JWK3VPeHFWZ2c0NTNMelZPc1ZVeGx0L28zNHJoMUFMZW1zOUFrNjhrRUZ4NEsxaktKcjVjeFpCM2NReTZnUHdXeDZBTDlJdmFTYTIxUFVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNG1DL0NaMC9mMTdGdDZXVVI4dHZ3dmo0ZUJ4M1RoSmxEclFrMEd5cXFLMnRsVTVIcWxWYXZYclZnZ1ZIR21uUm9vWExsN2RRT3Zua0UxZXVYSEhtbVdmVXZKMUkyZE95WlVmYmM3MWt5V0tlNjFOT2VTL045VG5ubkYzemRpTGxtT2dTbHJtbUJjQnpUUk5OcWVadFF5b2dkWFoyY05qWTRVbnkvL0VCQ3VUcHA1KysvZmJiUC96aHRVY2NjVmd1eWx3bG9lNklDeSs4NEk0Nzd2anRiMzliNjY1WG9Ib0duWEc4WEM3empxaVV1cnU3OVZlMkVpYVIzemh6SUtoYXRRMjYrTlhGTitnQ1RjcG8wQUVBQUFBQUFBQUFBQUFBQUFBQUFBQ1FoU3d2U1llR0JuVlI0K1BqSzFldVNGVENtbFFHWFlxS2tKQ1FrSkNRa0ZLbitmUG4wU043NDhickJnWTJqNHlNVlBGM0NjaUpYLy82MTUvOTdHZGJXcGJWY05rY2Q5eTdyNy8rK21lZWVhYldnK0dtTUlPTzJiSGpjY05laXp4SzJLNWRPM203VXRuNWxETFkwZFVxR25TQkJJTU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFFM0c5K25qNCtOU1ZFL1ByVWxMU0dmUWpZN3VqaE1vRHdrSkNRa0pDYWthaVo3Q2JXMnRmWDI5NFYzZFFmRzg4TUlMWC83eWwwOCsrY1NhTHhLZFRqbmxsTnR1dTIxMGRMVFd3M01RQlJ0MDBkUU9yVjFkWFhJa3ZDMXBkM2YzMnJWcnhLTXo5bld0YU5EUnVYU1dNOFhabTlVQUJoMEFBQUFBQUFBQUFBQUFBQUFBQUFCb1lnS3ZPM20zdm8wYnI2Ti9mY1phVDgrdFhNNzQrTGd6ei9MbExXMXRyYndaWEdkbkJ4VkZSK1RiZEFZZE1USXlBb2tPQ1FrSkNRbXA1b2tlNi9SVEFZSHBhc3ZldlhzZmVlU1I4OC8vMEt4Wk0ycStKSHhwOXV5WkYxOTgwZURnNFA3OSsyczlZUCtrZUlQT3psQlJDWnVZbUJnYzNNWWVYWHY3QnYxVnVsMWNEV0RRQVFBQUFBQUFBQUFBQUFBQUFBQUFBQkM1dkxYbHkxc0dCamJyNEhKTVgxK3ZuWG4rL0huODdkRFFvUDJWc2MyclFJWFRWNTJkSFcxdHJZR1dWS25Mb0VyUXRBNVBRcFBiMDNNcnU1ZGFtQXdrV2dtKzFRTHFrTkhSM1R6WGRLOFFPVGJPUk5OdEFhWk5ZMEdUeFhQTklqUk5kTXhOdENrYlBUWHNSd21vZitRQ3B4bWtTYWY3Yzh3TG5GVTZSS1VybUwxNzkzN2pHOTlZdnZ6WW1ndHk4ZE43M25QY3d3OC92Ry9mdnRvT1hmRUdYWGQzZDFLRGp0bTFheWZucEE5eXNOb0dIY3Q3Y2FMVjFZTkJSKzJrMXRwNzNRSUFBQUFBQUFBQUFBQUFBQUFBQUFBUWgwVGVtbE9pR3g0ZWpseGJ1RXA0dW1xMEJEUVFiTmF4aGhHT0hNaDZGZXlMeG9YbWp2M0ppcjdOeXBVcm5LWXVhQlJHUmtab0JqczdPeW9LZFhUaDgyTUNORG8wNlhTQjAxMjY0cVRUSFlDV1I2M2IyL3o4NHgvL3VQdnV1NVl0TzdybVJseTY5TzUzTDcvLy92dmZlZWVkV2cxZzhRWmRhK3M2STVSY2ZOV05jdzRPYnBNakFXK05ZOWIxOS9kWExKWUs1RUpzOTB5MHZZclZ4VGZvbkUyS2I5QUYrbVViaGdBQUFBQUFBQUFBQUFBQUFBQUFBQURFSjZtM1pvY1VZMVBPTnVpU0toTXc2S1lKSXlNamZYMjliVzJ0VUc2YUhwckVzR3d6Zi80OHVuWEFtV3gweHNmSDJhWUxLTEljM2JUV0xRVzV3YkZrNlFJUEJCcWxyK2dDaHloYkRkNTU1NTI3Nzc1cjhlSkZOYmZnOHZEb1doNTg4RDlxRW8rdVlJTk9YRFV0Z0JtcTJNVEVSSGQzZDdsY05zNGRHeHZqblBxcmdMZlcxZFZGeDF0YjExVnNNeFZvdTNtNmZDa2tGNFBPMlNTN0FUN2Rqb1A0MllWSUwyaWdBbTBBQUFBQUFBQUFBQUFBQUFBQUFBQUF3RWRTYjgwT1E4YzdzZG9HWGRKTk9XSFFUVGZZdWdtb2RHdlduQWVQcmprWUhkMU50NDZBU3RmWjJRR1ByamxnYmRLbjBzR2phMHBHUmtZQ0toMkxzdkRvY3VTeHh4NDc4Y1RqYTI2KzVadE9PZVY5VHozMVZNRWpXVDJEYnV4Z2R1M2FLVit0WGJ0R1Izc3pERHJKMXQvZno3SWNaYWJUN2VCMWtWTHk2Q3pLUTBuS2tmQnhYVjFkRXBhTml0cXg0L0h1N203RFRHUGRqaHBHcDNQYmVQOVdJK0JiTGdhZHJlcEpVN1VjeVAybGYrbGJIa083WDVMZk56NEFBQUFBQUFBQUFBQUFBQUFBQUFBQXhDZXB0elk4UEd4clRwSExvRnU1Y2tVaS9Ra0czYlJsZkh3OG9GZkJvMnNtMkxUeDZWWDBGVFNicG1Gb2FORG54OEtqYTFib0F2ZUZJb1JIbHdzdnZmUVNYVll6Wmh4U2MrR3RHbW5XckJrZEhlMnZ2dnBxWWVOWlBZUE9sOWF1WFdOc00yckhvR3R2MytBOGw0NGJHNjNTbnl5NTZTVGY5dmYzKzVwaHhIQUxWTnJWMVNXVjVtTFFjWU5GMWZQSmIxS2dLSUsrci9UWUlnQWRBQUFBQUFBQUFBQUFBQUFBQUFBQVNFMVNiMjE4Zk54NXl0RFFvUE45Nk1xVks5cmFXbnQ2YnFVMFBEd2NDRE1GZ3c3UUN1bnM3SEF1Sk1Rb2F6SUdCalk3blVuV2JHcmRPcEFiZE5uU2hEcVZxdVhMV3lESE5pVWNYOVFaa281V0F1VEpkT3pidCsrdXUrNDY4c2dqYXU2NVZUc3RXSERrZ3c4K1dNeW9GbW5RdGJkdjZPL3ZOeFM0eURMb0dJNFV4N0laL2R2VjFXVnZzY3FVeTJYNmxuTzJ0cTdUcGxrMDZhZHhmRG5kREtNdWdZN1R0NEZLY3pIb2FCQjRKMWJENkxQbE55cVQ1VG9Pam1mMG1ncmhid05qQ3dBQUFBQUFBQUFBQUFBQUFBQUFBSUF3T3JxN3JhMjFzN05qWUdDek0vWkxDbS9OZDRvdnJwUnRUVGh0cUVRdEdSb2EzTGp4T2tRbmEwcG9iVGc5T3JoVnpRZGR2M1FWdzYxcWVnSktGVDJoSU1jMkt6VHB6Z3Q4NWNvVkl5TWp0VzVkSS9IU1N5K2RlZVlaTlhmYmlrd1hYbmgrQWNIb2NqZm82aGE5RVdxdDBLN2dqaDJQZDNWMXRiYXVZNk1QOGhzQUFBQUFBQUFBQUFBQUFBQUFBQUNvS2tia0g2ZVJrc2hiQzUvaUMwUG5TeHMzWHBlNkpVWTUyQml1K2ZCNWRFbDNCd2IxajgramEydHJ4YVhkWkRnOU9ucE85ZlgxMXJwcG9GclFCZTZVSi9Ic2pzbldyZDg5NnFoMzFWeHBLejR0V2JKNCsvYnRWUjNiNldQUTFRUE9hSHNBQUFBQUFBQUFBQUFBQUFBQUFBQUFWSldSa1JGN2gwUm56a1RlV3NWVGhvWUdZMGFpRTBNbVhVc00zNFlxaFZYVmxIQVFSYWQ2VWV1bWdaeHhhalowYWROZHBkWk5BM2t5UGo3dTNOZVY3dW9JUnRmRU9PVkpSSnNNODlaYmIzM3lrNStvdWNsV3d6UnpadW16bi8zczIyKy9YYVVSaGtGWEpERG9BQUFBQUFBQUFBQUFBQUFBQUFBQVFNSDA5ZlhhY29Kdis4dEUzbHFjVThiSHg2a0J0ci9uUzZMSEpHcUpVOVZEUUp0bVpYaDQyRjVSMkFld0tYSGV2am83TzNCcE54bk9JSk0wOVFNRG0ydmRORkF0V0o2MG4vWFludHZKSzYrOHNuTGxhVFYzMk9vaG5Ybm1HWC82MDUrcU1jZ3c2SW9FQmgwQUFBQUFBQUFBQUFBQUFBQUFBQUFvalBIeGNUdGdWempHU3lKdkxla3BWTy9Bd09hZW5sczdPenVjdXpTV1ZCaTZwQzBaSGQxdGwxbWZWaFhOQ3cxRk9Md1M1MG5VK0RqRlJwT3pVTEZZeWxEL2dZQnM5YUkrZlp2aFNjSjVpaHh3V2lGVVY5aEFpN21XaXNFWmVMRGVMdTJZRjJ6U2l6b0xQTkYxTW9reGNRWWVyR2Roa3EvY2NQUGlYSEVGTjZtdThEMjdHMnZwVnB1Zi8vem5peGN2cXJtNlZqOXAyYktqZi9XclgrVSt6akRvaWdRR0hRQUFBQUFBQUFBQUFBQUFBQUFBQUNpR2taRVJXMFdvR0pZdHFiYzJQRHhzdi9pTzJVS25HRU50VHRjU3hvNVlWVU9yaWhzZzRYUm81RHM3Tyt6bTZSMUluWGxvbE1KNkZWVmh6RFdkWXVnSFEwT0RSaDZxeU1oRGE4WXdHV2cyZGRWNnY4VjZDQlBrM0o2WStsVjhTMFRua3lQT1BRcXB0Zm9DcER4Rysra1VLaXB3a1VxeE5GUE9EUHl0WEVjQ2xVa3JUUzh0K214UElsMUI5anJSN2FIMUlKZHRrWnFsSFdleUpwYzJYeUF5K000ZFNPMkwycjVDYWQ0RDI5SHlxbURmV0s4cm4zaXM1NEl1Q3Z1K1dwOXlxUk5lcVBhRlUwTmhVaDV6NFVHbUtkYURiT2VoV2JEdnVnSWQ1enpSd2M4Tyt5RXJTZDhFN0p0SnFhRThOT2V6dS81RjdtTFl2SG56bkRtemZNc2duQll1WE5EUmNjVnR0L1Y4NVN0ZnZ1U1N0c01PTzVTUGYvakRhK2xQU3JhWU4yUEdJYTJ0Ni9qYnVYUG5uSC8raC9telNxM25ubnZPRVVjY3BzKzY2S0lMcld6L1NtZWVlUVpsV0xEZ1NQc3J1a2JPT3VzRGh4NDZPMFhYRGo5ODdpT1BQSkx2VU1PZ0t4SVlkQUFBQUFBQUFBQUFBQUFBQUFBQUFLQUFCZ1kyR3kranc2SG5CUHNkWmNXS0F1LzBLekkrUHU2ck1XbExCR2RBbTVyb1hycHE2cWx2SzF1UmJhamw5b2FWa253Q2pMMzFvZWdINGs3WTB5U3JRdVNva1pFUlgrMGN5Y293aGVyQm9HUHNZSFNHcUZaa0czeE5zcGV4YitLYzdiY3RMT2VGMXRmWHk5L2FkbGJGNVJkb05yZUhsb0Z4WlJYc3QxQWI3RXRidDc4QURJUE9ONnBhc1F2c1llMjBQZWxLTEUyWlZFa05PdCtWVG9uV1JoRURsQlBVbmZyeHFReURMbnlyNUZNQ0UwSG5PbTFBOWdaNVNlaDdiQnlETG5BektXaU04c0JwUkRlSytWazl2dmExTzJmT0xQbm1ONXcrOWFtT2lZbS82ZEwrOUtmWExyNzRJdnJxTTUvcDRpT0RnNFBHV1ZkZi9XbithdnYyUituUGN2bDVaOFBlZlBQTnozNzJNM0xXeXkrLzdPdkM0T0EyeXJCNjlmdDlHZWcrZWMwMW4wN1J3ZG16Wno3d3dBTkpoelFBRExvaUdadGtZbUtpMWcwQkFBQUFBQUFBQUFBQUFBQUFBQUFBVFl0WU5KTGEybHBqQ2tWSjM3L2JMKzZUQ2kzMkcvTjBMVEd3WGFEaXR3TFVGb1JNaWc0b056d0YveWw2ak9RWkhkMnRaVWhiSUdIWnBxUmlOTEhxSmwyT0p0OU5jd25MbDdld1dLWHppQWduNFpLb3FUeFFValVWTHUyblF1b25CcDFnK3piVXppS0RWbW5UU2J4UUhuRDJHSGtuUnhIYlJMRGh1RlgwTFoxRjM4b2FNTndxc1dpb205eFQyNkNUaWJhL2t1b2tPS0dXVldUbHlGcVM1U2NYdUk1Tkp4OXFZalRWOXRMV0JwMk1LdjJwbzVQcHJWcGxBQ21QWEgzNm9yWmRSMjFTT1EwNm5pQURHZ0ZSY0RtNm9IR2ZhWlJZWklKVG1LeUpUMlVZZFBwV3lSUE5mcWxjN0hJbDhuMlM4OUMvTXB0YVhSYjRGTTZzYjg1U08xVm5URHBubHBzekxReSttVVJUTjV4RzFNL3NDSVExQ1N0YUo5eDQ0dzMyYjZHWTZjb3JPdzhjT0dDWCtmYmJiNTkzM3Jrelo1YWVmbm9YSC9tM2Y3dEl6bHF5Wk5IcnI3OGVUUXB5eTVjZlMwZDhCaDFCNVY5KytmcFNab09PaTJwdFhaZWltek5tSE5MVDB4TjNRQ3NCZ3c0QUFBQUFBQUFBQUFBQUFBQUFBQUNBcHNGVzJoS0ZIckxmVGdZeWk3NlYybkNvUmd3NndiYXFDZzVOcGkwSVZrR29QYjRHeUdDMnRiWDZ2ckpGQWxFeUREMkc1U2plVVhkb2FGRHJId0kzaWJmN2xJa3dCRWdwLzlsbm42WGEyZmJoRSt2S29JdGN3YjU4c1o2cWdUYWR4SGdKWEF2Y1ZPZDZFR3ZJK0lyR253czB3cURwRE03RkVFMDVQOGJXcnFMTThWU0tEK1pjU3l5QTBmSmdNOGU1b2dxamhwZTJIbnpmMVNmSUNOdVRKYmFiL1pVMnFad0duUy9PcDZoSHpiVDNwUzFNRmh4MU1MSU1PdCtjQ3FLMDJYY0EzMWQ4OWNrZTZQckNySGk1eWNiTkJTdmkxY01Pb2x1OEFGOFA2QWh2U2ROUlJ5M2swRjRIRGh6NDZsZHZQK21rRTFhc09PWDczLzhlbC96REgvNlE4cHgrK3FwOSsvYlJuMy84NHgvbnpwM0RKMjdac29YemlMekhCdDJmL3ZUYTJXZWZ5V25ObWc5dTJ2UlYxdk4rL2V0Zmw1UkJ0M3YzaXhkY2NMNlIrQ0VpQnQxM3Z2TWQrZXJmL3UwaTJjVHp5U2VmVE4zZjd1NmJjaGx6R0hRQUFBQUFBQUFBQUFBQUFBQUFBQUFBTkFlR1BwZGkyenY3dldSUHo2M09OOWVqbzd1ZHV4TksrTEsrdnQ2S1VZOXMzODlRQ0hSS0VVUEpibVNSRXAyMklDb2FkR0ViaHcwbzN0alJlVmJndUMrUHVCeVJYOUlRQlVoSHlxcFBnNDZ4TDRGaW9qQWxNdWhrVkowdWtCaVB2dE9kR3BWb2xzNTVZY2ZHcms0WHhmNlZZZGxGcnZWVGM0TXVxdDJsN1RUb2ZQWEtKZVljS0ZtcituVERwRXBrMFBFc3k3bE5BMTBSdGs5VlpBT2NCbDJnRFZwT3R1RytHS1kwMytGRmQ5Zlhjdmh5aStQck5pSjBROU9iVmhmODdLNEhQdk9acnRRNkdhWHJyOS9JNVR6ODhFTnljTWFNUS9yNzc1Y2dpcFMrL2UySE9kdk5OM2ZUbjJlY2NUcDdjWC80d3g5bXo1NVpVZ2JkeXkrL2JGVEJ5dHpZMkN2NnorZWVlODdYSkRIb0RDMTI1c3pTWC83eUZ6bytNVEdScGN2VWhlekREb01PQUFBQUFBQUFBQUFBQUFBQUFBQUFnQ2JBY0lmUzdXTHBlelhaMXRZcVc4aHhLQ3BEYVpCc1hJN2VybzRheGxzS0NnTURtNmtFNC8xNDZXQ255TmJ6NkFpVms5U2pzN2NDTE94RnZMWWd4S1hSR3o1cW5GSENCRG5kNkg0Y2c0NUx0cTBiTFdhSXRXV1BqTzRGVTg4R1hhUmlxVWtxd0MxeDd1TEsvcDQ5cEJVTk5Idk1OVTZOS3F4bytnclVhOE5uWjhuYWlOLytZcUNlYWhXa21FdmJ1WXVyN0h0cjRMczhHV2R3U0M1ZlRLcEVCbDE0MlRRMDlDeXJvVVRuMjhXVlF6TGErY010bEsxNDVZZ290Yko2OVZTR0x6ZmZvNkVKc01PS1RoK0o3cWFiYnFvb2pJWFRZNDg5eGtXOS8vMm5CYkl0WGJyNGpUZmVvR3gvKzl2ZldscVcvZXBYditLelB2clJqMGdlcDBGMzJtbW43dG16aDQ3LzRoZi9XcCtwRFRwS3I3enlTalM1YjJ6R1h0OSsrMjBaUng0R0hRQUFBQUFBQUFBQUFBQUFBQUFBQUFDTmpxSFBwWDdSblBIMXBieml0OStReGt5aUFkamg2WXdxYWpJK2lTZ3BDOEtRQVpZdmI5bTQ4VHF0T0liZEdKOUU0WXRjcDhVYlg4bTZ6SURxbzN1aG0xclBvazd4RXAweGdIcjl6NTgvcjYydFZUZkF0Nit1d04vNmRxdTBKOVFJVzBlTGpWVlZvMEI3eXJpZFlZUE9YbnQxWXRBeEJWL2F4aWpGdWFoOVFlSHNZYlJOS3FkQlJ5dUtQdWdVcVNDRVRSYUxUTENqRGhZbTBSa3paZWg4MUNvajRLcnZjbVBzbXkwZjBkM1JKVWp0VkpHZWRMNC9oQzNOUnFlR0Fud051ZXV1dTlMOWZOS0pmYlkzMzN4enhveER3amxsNFkyTmpmR0hSeDU1UkdkZ2crN3R0OTkrZW9ybm4vLzkvdjM3NmVCYmI3MTE3cmxuNnhycGlHVDd6Ly84b1M1SERMcDc3cmw3eVpKRm5KWXRPMW8yWUIwZS9ubkdYbE5udi9uTmIyWVpmQmgwQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFEwT1Rva1dkNWRhdUVublVHbmxRUFJCb3lVV3RvcFhxSXpPa1hWMlZyZ21qWG5jVFBTR1hTaXpYQ3N2NkdoUWNyUTE5Y3Jxa21nNUNZMjZLTEozaGxCcS9SR3RMbGpEeUJWWjBSWnBEKzVEUldsbC9CaXNML2xpdVNJekt4a3NDZlJibmFER25SUnNaZTJNVXBVRVkyaHNkTG9XL2Fwa2w3VXRrbmxOT2pzNUN5dCtiQ0RraFVqMGRsalN6ZGVleTdrK3ZKZGJveDkrZlAxcTI5UXVnVGZvOURZU3JoS2ZhOEhhaUxBMTRvZi9PQUhzMmJOaVArcnlaZmVmUE5OS3UzRkYxK01rL25KSjUrUUJ0RFlMbG15U0gvTEJwMlRSeDc1d1p3NXN6Z2JHM1FhT2xHWEl3YWRqM1hyUGhLbnRlRkVvN2Q5Ky9iVTR3K0REZ0FBQUFBQUFBQUFBQUFBQUFBQUFJREdKZCtYeTdxb3RyWlc1MWF0em1TWURDa01PanZpbGxNWHllS0hGUHdpdnVUeUtLakdnWUhOZXZkSkRsR1Z6cUNML01INlNsTmF4ZlEwNkNJclZCUjlUckd2Y1V4OEEwZzFHaHNXOHk3RzRjWE16UTd2QWlrVEtsWGJFU0RsRk9kU2xKemhGVmovQmwxVTRLWHRIQ1dxYTJob2tOb2c2NDBia1BTaXRrMHFwMEZIMmVpNFRycTBxcHFpTmNlVzZIeWhHblBFdCtCSFIzZHJYVmt1TWQvbHhoaHp5Z0VramYyN2RRbFNPKytITG9tRERVNEhneTZ5TG5EWkw3N0plUExKSitmT25aUDB0NU16dmY3NjYxVGdhNis5RmlmenFsVXI5KzNieDIzNC9PZXZONzZWR0hTL25HTG56cDF5Zy8zeGozL00yZUxIb0xPaHdydTdzMjVjSzJuZXZDTis4NXZmcEp3Q0dIUUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5DWWJOMTZYcnplaVN4c2QzZTJNc0dRayt0WldCZXdBWElGRU9aMHFEdFd1VFRPbnc1QVUyN1RKVWxxWXNFZWg5NmVqVG9VM2ZPenI2K1djVGdkTVd4dzBIZFJIR1RmNmxqK0h6U2h4dXVMMG9sRU11cWhBaWE2aXh5SXpTTk5SMFVBTHJ4enRaZEVxc25XNytBWWRYdzdoWFZ4bGkxaTV0OVNoUVJkWmw3YlBXOHRJV0lyVGNTYnBtcEw3c3pPek1ZeE9rOHBwMFBscUR5K2Jwc0dXNktxOWNXM0ZCUzhSTCtuZnFOSXV6SHhEbG9ubUJXUE1tcDdLY08yeVFwbzRMQnRqWE9DRjdlRmJHQys5OU5MaXhRY0ZmOHVTbm4zMldTcnp3SUVEUzVjdWpwUC81ei8vT2VYZnUzZXZIUUdQRGJxWFgzNVpINXc3ZDg1amp6M0dMVC9ubkxOS1V3YmRjODg5NTZ0Q0REcVc5aW45K3RmL2N0VnV2LzIydkRyTzZkaGpqM250dGRkU3pBSU1PZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQWFFYkdlU2xNeVdQWjM2TU5UYU5HSXc2WjFkbmJvb0hCVVhWdGJhMTlmYjZCU0tvUXliTng0SFoxb0JKVGpJejA5dDFZMG1rWkhkMU0ycnAxcTVPMFJzMURZaS9pS1FndjFSZktFUlFocGM4eXF0WGpEbjFudDBNajZvUnA5a2daOVZiSWNsUVl5NkNJbGdPVjRtZGpFaVFRbCtwUE1PMTBkZGpiWm1kZm5CV21OU3NRODZoZGZVNVJFWHVVL3FSeldlK3dwMDBYeEdyTWRUcnRyOVduUVJZVmMybUdITFZLWERJMWJXSHdWdjQ0WHBOT2tTbVRROFN3M2EzZ3VqUzNSVlhVcHhsbndjanVsdWVhMitYUm92ZWV5ckJianVhYWZIZUhhcDBuc1FjYTR3SjMzendabHo1NDlxMWV2eWxFaGUvREJCN25rRzI3NGdqNSsrZVhyVHpqaGVEdi9UMy82azJneUZwejlsZE9nbzNUdHRWZHpGWi82VkdjcGlVRW50N1gzdnZma3ZYdjMwcEUzM25oandZTDVPWGFmMG5ubm5TdUI5ZUlEZ3c0QUFBQUFBQUFBQUFBQUFBQUFBQUNBaGtNMG0xSTF2YUJtcFpnWDhkcUNjQ0xTQlRWQVJDODd2OFFaaSsvRzZJaDJVb3NoYWZBZ3NGbm5jN3EwRm1JVTNpZ0dYV1M1cHRXSVRoYkhvT05KNU5yWm9xRi83Y3RXNGdmNlpGR3RVY1haTHBueU9DTWN5cnJpWUZtaWV4bjFjbnYwdVhWcjBFWFdwWjE3ZExLS0JwME1EdXZCSlkvTFI0TXZheUR5bTFTSkREcnBlM2JOdVA2aFBoYTJSM09jQmE4SFg5eElPNy9jNS9sT3l4ZWRQYUg2V1JDdVhWWk9sWUl1MWhXMk9kazAzdUNWVjM0cVgzL3NnZ3MrekNYVG9KMTY2dnY0WUVkSCs0Rkp0bXdaTVBJbk5laG16WnF4ZmZ1alhNWEZGMTlZU21YUVVmcmU5N2J5d1Z0dXVUbmZFWmg4dEcxTU9oRXc2QUFBQUFBQUFBQUFBQUFBQUFBQUFBQm9MRVI5RVhsZ09pZ1QrVkpBQ0NOdFFZeFBvcitWVUVXbEtUOU5Rb2ZweUg3VU1Nbm10QVhzcVJjVmlyMGRzZU8wWmlsU21iZzlYSXNXVWVoRUxma0lEV2ZRUldwTXBsNnN1emRZVEkxaE9oa3lEdzI3U0RVODRKS2ZROUxaMlFJK2pOYW82TnhoQzVGNStFL0tJOTNYaHFUT0ZxbDEwdGJXYXE4VFBXTDFiTkRaamsyK1lwV3hoYTV4OWRHZnh0VXFzVGRweG1WVWRUWjIvSGlDYkVVMmtVRW44MEtGNjZtaEVhRHBhNmFBWFl5eFIzUDFOSEpqd2R1M1hMbE0rRllwbHhJMVQwK0VSSU9rZjdtcHZBeHN6MU0vT3lwZWJuSWgwd2Q5TTZFVnFJODBCOFlGWGxWenNqQzJidjN1akJtSDVPNlBQZm5rRTF6K25qMy8rT2xQZi9yTFgvN3l3SUVEZk9TS0s5cU56QlVOdW5mZWVlZDNpai8vK2M5YzFQLzkzOWhoaHgxYW1qTG85dXpaUS9udGROUlI3M0lhZEtlZWVzcisvZnZwNEt1dnZqcDM3cHg4UjJEbXpOSi8vZGQvSlpvTEdIUUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5CYkdqcWhOOEFhNWVDUUdsTHlJejkyKzBCYUVLRXhVa1dINGlNTm1DQ0c2ZVNYL2xwUzhHT2hFWTZ0YzdWV0tsOFg2alpTczgramRUcW1GdXBHR3VkZUlCbDFrUlNmTE4zaVJZVHJwa2RTVjZnRTN2akpXWThCN3FSZ0d6UTZJcDFjN0x4VlphYm9jQ1g5bnJ4TjlkZFN6UVJkVitkTFdnMjljTW5vMlpWVERGN1ZrNCtPMlNlVTA2SnlKNThKWTVFYlZlUTFDL1dEczBWeWxMYm1OQlMrelFFTnFUS2pNb0JFYzBwbU5ReFRhKzJ0SEhvUE9UbUp5R2thOS9oUG1aSjB6T2pxcXU1TmpPdnJvSmZhUHd3TUhEdHgxMTlmc3pCVU5PaWV2dnZycTZhZXY1bXhzMFBsWXNtU1IwNkNqOUovLytVTSsvcm5QZlRiM1FWaTgrS2pYWG5zdC9uVEFvQU1BQUFBQUFBQUFBQUFBQUFBQUFBQ2dnVEJlUHVhK1RlSDB3WGdSbi9zdWVOcUM4TzIyYVFSRG95YlprZ3cxTXFDck9hV2E1Y3RiakZmbldxTHo1WkVRU2JwcVc4Qm9VSVBPRGw2VVkzUW1iVG9aT3l6ckJhWUhYRWVjTTdLRkc1YkNvSXM4UzR1T2FQbkUyU1I3bmRTNVFSZFY4OUtPczRWdVoyZUhIbFhmUlUxRHpka0NKbFZTZzQ1UHNZVWNtc1NHdTJCalVzQUQwVmp3aGkwcEkyeFVQVFEwYUloem5FM2NYZFlkbmRhZmZuWlVOT2lpeVN2WGtDYzV0YlcxMXUxRm1vVml6TWxpdVBEQ0MzenptejNObVRPTDdqTzdkdTE4L2ZYWC8vU24xN1p2MzM3QkJlYzdjOTU1NXgwLytjbFBmdnpqN2ZaWER6MzAwRThzZnZqRFI3N3doZXNYTERoU3NtM2QrbDA3bTdCZ3dmd1RUamllUDdlM2I5RGxuM2JhcVh6OFc5LzZWalVHNFdNZnV6VCtkTUNnUzgyT0hZOXYyVExRMzk5UEh5WW1KdXdNWTJOam5JSCtwYzhwTWhDMG1EblA0T0EyWDU2SzBMbFNpTE9wTWZPQStPakpwU0hOc1dTYUhTcVFTeTZYeTdtVVEyczR6aW15U0h4clBzcHBJZVc3R3ZNYU1RQUFBQUFBQUFBQUFBQUFBQUNnSGpCZXBqZjBpK042UUhiZjA4WkNYc2dlbXZ5bnZlR203MFFqWjhXS2pQdysvMnA4ZkZ6eUJPSVc2cUtjc1gzbzNFQXQ5UXkxdVVwaWxVeUJIREhtT2pCY0ZRZmNnTWMvTUlOMlk0eHp3MDNTeThsWml5eWtlZzc5WkZ6YWVVWGlNZ1pmWDFQaE1RbGMxRnlJYzZpTnFkVFRGNjQzNXRwckRuVHN4R3JzYVc0dmVHTWlBaGVqem1sazQ2K2NDMFpQbkwzR2ZBVWFPWFBvZVIxam1KUDV4aFF0akNvNVkwZzZ6Wmh4eUNPUFBCSnpSbkkzNkZhdlhtV25ycTZ1WGJ0MjVsaUxUWDkvUDFXMFpjdUFyMVdVSWErNnFDOXIxNjdSSGFRL0RRZHAwNlpOeGlBWUdsWEZET1Z5dWJWMW5aRkhla0Z0Y0E0MUozSHQ3RUtvcWVXREphS0tlYWcwcXBlN25ISG91SERmdCszdEczUVZQS2ZVTnAzSEdQbHc5KzJxblRvV1Y1U2hXd2RCVlhSM2R4dE5vbDdZbDRDejhYUnVRSlcwNTUwV1VxQXhkRVhZU3l1YTlEL3ROUnk0U0oyTHhGano0WVdVNDRvVmVPS2NTWlpaMGhFREFBQUFBQUFBQUFBQUFBQUFBT29aWTNmQ1J0KzhyRTR3UXZkZ1M5em14Z2hlMUt5QnVVQjA4S1U5Zi80OFhOck5pdjFrckhXTFFCRVl1NVkzM00raDNidDN6NXQzUk0wRnMrbVFGaTVjOE9xcnI4YVpsR29ZZEd2WHJ1bFhkSFYxc2JqaTA5dHlnVjBhbnlLVm8wRlhMcGRaaUpJd1hQU0JuUjhSa0ZoYkVoVnFjSEFiWnloUGlVQVZNMURKMUJkS0VvT0xDdWVSNUk2dzFXYkFWbDU3K3dZK3hTNkVQdkFSR2FVNGVVUkp5cTZac1ZwV2RnbFJWQjJQaVJ4aG9jNHc0amcwbWNDdE1zYkJ0d1o4aXpCZmc0NmJUWFBCM2VRQWFOeE9vK08raTRVTytvSVdhaG1QU3VQOHZoaDNQTG1HZ2hoTnJsaGRUcUNGdWh4N2tZUlhyTEdROGxxeEdtcS9YU2FQQ1d0eVNVY01BQUFBQUFBQUFBQUFBQUFBQUtoejlBYUwxUk5DUmtkM0R3eHM3dXpzOEcwUFNzZDdlbTdOTWVSTHpCcXJGRlFIOXNWMHc5aW90T2tqZEUxYmpFczc5MjJhUWYwd2ZIQjBWcGl4MHdHNndIVk0wYmEyMWxxM0tCbVhYbnFKOFd2blhlK2EvKzUzdC9pU3pqbHpadW1zczg3Y3NPRVRIL3ZZcFMwdHh6cTFzZG16WjU1enp0a2JObnp5a2t2YWxpMDdXbjkxeEJHSEJ5cWFNMmNXNVZtMGFDRjlibWxaWmhmTDJhaTFrNy9RamcwVXRYVHBFaGJZK0U4NjEzYmIrS3RaczJZWVh5MVljS1J1VHlDZGVPTHg2OWQvN0pPZi9NVHExYXQ4ZVRvNnJvZ3pLZFV3Nk5yYk54Z0h4OGJHREVNc2R5UWFsZE9VeTlHZ1l3T25iSVZ4MHgybnpocmFFanRMMG9hS0diZzd0dWREWndWaXVIVjNkMnY1aWowOUkxQVlsYWxGc2poNTJCVTBBc1Nsd3lqWi9rcTZMTzVUMkwyTTN5b0pRV2E3V0RrYWREeWU5bUxqRlVLTHgyaVNmYkdJWFdrWHp1M1VrZUpZT2JNTDBVWFpxNGdIelpEME9GYWI4ekp4bHNQNXBVZHhGcEpOaWhWYkVWb3pNaUJKUnd3QUFBQUFBQUFBQUFBQUFBQUFxR2RHUmtiMDI4QzhOaVhVREF4c1hybHlSZnl3SHZQbnordnM3TWdpOGxHTlRtc3VYR1B1eWxNQll3dnFCNGhWMHdkRHJNS2wzY1FZaGpuTTJPbUFFVk8wZ2ZaeWZlS0pKMmJPTEJtL2NPNjU1KzdBS1NLU1hYNzUrcGRmZmttTzc5Ky8vMGMvK3RFeHh5elZSVzNZOE1uWFhudE41OW0yYmR2Q2hlL2liNis2NnNwQVJhdFh2NS95UFBMSUQranpnUU1IOUM3SmxONzczcE00RzdXVy9uejc3YmNEUmYzeWw3K2tQUGZmMzhkLzBybEdsMy83MjkveVY1ZGQ5akhqcXp2dStOZmVncWVmN3ZYaVRqMzFsRi85NnBlNnh0Ly8vbi9PT2Vkc08rZnMyVE9mZWVhWlFGT1pZZ3k2YU1vUXE5NytpYXpLc041bUsxSTVHblNyclgxRkdYYTlKSTloUUhHQU5kR05LbWJ3ZFlSanVEa2J4aU9zUlNOblppUFVXNXc4VEM0R25kRk5EYmRFdXN3eWxhRnAyU1F5NkNRNm5QRlZqZ1lkTHdObndEU2VVN3RKZGs1ZnVEL25aT21GcHdtb1lyNDE3RFAzZkt0T1Z4MS9JUW5wVm13WW5rb1JYQk9OR0FBQUFBQUFBQUFBQUFBQUFBQlE1MmkzTFhmbnA2Zm5WaDNMSldtaTlpUU5FTmZYMTZzdHBoUTE1aXRJMEFqQXZwZytHR0xWd01EbVdyY0lWQXREckdxNHJSNUJmR0RHVGtPMDMwVUxvQ0V1OEFNSERyei8vU3Z0SHpaeERMcExMMjJqMCsxdm4zLysrYmx6NTNBNTY5ZC96SmxuNTg2ZEhPb3R2a0ZIdlBiYWE0c1hIMVVOZys2TU0xWkx6c2NlKzNGU2cyN3g0a1YvL3ZPZjdVcjM3TmxESmR2NXp6dnYzRUJUbWNJTXVvQTZsUXRpempnVnFYd05PbWNIdGNyVjNkMXRoOHpTSjFiTTRCUERkdXg0M05jUk9zVUlUMGRWT0wwajdTUEZ5Uk51VWxKODVSaTZGeTBWN281UEpremFLbDREckZRWjRkZHlOT2g4eXlOeTJWeHgxcExHT1ZtK3pIYjR0WXIxMGlsRy9EZGZ5KzJxNHk4a2ZYcUtGUnZBZHUwU2pSZ0FBQUFBQUFBQUFBQUFBQUFBVU04TURHelc3d0Z6M0w5MWVIZzRpOG1tMDhhTjE4VjVlVTJOVHhUcExudU5jVERpa25WMmR1UlNMS2hiSUZaTkUzQnBUeDhNTTdhQklwS0IxQmg3dVRiRUJyNERBd1BPbnpSaTBOMTU1eDJmKzl4bmpNUXg2NTU0NG9sbzBzSDcwcGUrdUdyVnlvOSs5Q1BQUGZjY24wVTNOeTduZDcvN0hmMjViOSsrRzI3NEF1VzU5TkpML3ZkLy81ZnpyRi8vTVczUWJkNzhiYnNpOXVYRW9DUCs2NytHZkFiZFRUZmRlTXN0TjNONjY2MjM2UGdycjd3aVI2NjRvajFnMEQzMDBFTlNCYlYyeVpKRmlReTZMM3poODV6aDBVZC9kUGJaWjUxenp0bGJ0MzZYand3T2JuT2VNamhZNFo1UW1FRm5melV4TWJGcDB5WU90MFgvT2plK1pOZUZwVGpLVDNsOG16bUtCTVcyVC9uZ1hWWnRnNDdLNFZCVXJOd1lTbFdLRG9hMW5JcHh0SXdNU1NVZmp0VVdaNmRMM2gwMTdCTTY4K1RsSFRrM3FHWDFVV3JrMFdBVDBybXpaNHBXY2ZsY2tURVJ0a0ZISThBTGljTzF4ZDlDTkxEK2Jmc3hFSU11c0ZldmdYTmozN0N3R21pa2t6Z0duWlBBWXN0M3hUSkdBRG9mNGEyUUFRQUFBQUFBQUFBQUFBQUFBSUE2cEhvdmlMVkVsRXRhdnJ3bGJQZnBVRys1cEpVclYrVGxFeHIyUmRLb2VxQ3hhRVR2QXFRRGwvYjBRU1FpZmg3VnVqbWdDUHI2ZXZVRlh1Y2haUGZzMmRQU3NpeHMwSjEyMnFtKzN6d3Z2L3d5WmFCLzVjZ3h4eXp0N2Ixdjdkb1B5cmF3YjczMWQ4cnp1OS85VHZJY2ZmVFNlKys5NTZ5enpwd3g0NUNTTXVnKy92SDF2b3EwUVVkY2NjV0drc3VnMCtuMTExK240MDgvL2JSeDNHblFIWG5rRVcrKytTWWQvTWMvL3NIZmZ2N3oxK3V6S2hwMFgvLzZBNXhoMWFyM3k4SGJiNy90OHNzdm16ZnZjT2NwSjUxMHdyNTkrd0t6VTVoQlZ6N1lYSnFZbUdDUGhhVTRWblMwOE1PQ0RjdExiTHR4eENxZmhDWVNGUHMyaGp0a0dEaGNIUWVDbytNc0xNV1U2TklaZEx4aFpjQUNNakxvMG1qb0JnZTNVZkxGWVlzcUJXclRzSkJXRGxwR3pqeDVHWFJsVjV4QW8wWWVEWTZmeGhNYWlHT1d5S0NqRDFTMTBUdkRvT1A5VHdPTE0xeExmRG5ObVRuUmZzYytVNDc3NkF4QVo5UkxlYWlQNGRXVjJxQUxMTFo4Vnl6ajI3VldVKzFnbUFBQUFBQUFBQUFBQUFBQUFBQkFOZERXV1Y2YmxGRWhlUVdDczVOdlQwenROdVNZNXMrZmwxZXNJYjBmWEM2YkFOSlFVSmtjQW9zS3pCSTBqMDduSm8yTWpGQTUyZHNHak5DT1did0xuaDBqcFhBN2FXWnpqREJaRTZqOTFQZDYyeGczOTBzYjFDZUdHZHZYMTF2ckZvRWkwTDluNmp6T3BDMmVTWXBqMEQzMTFGUFJaQXk2ZSsrOTkraWpsenJ6Y0ZTNi9mdjMzM25uSFVjZnZjVE9rTWlnMjd0M0wvMzd4aHR2SEhQTVA2dkx5NkQ3OUtldjRvTmYvT0l0N0kxUXMvVlpGUTI2RzIrOGdUTTg4Y1F2dEVRWFRnOCsrR0JnZGdvejZGanBrVWhpZHJRb1BpSVpXTTdSZ2cwZnFXalFSUzU5U010cDdPWnBtUzNzYU1Yc1lOZ21ja2JHQzJUZzBxaGhFb1dQazlQQml5a0ZVYmJCd1cwVlErSDU4dVM0OStYYXRXdGFXOWNaaGV1d1lJYXlGUWdhbHNLZ28xR2wwdlJ3R1FZZHJ4OXRWQnFMTTF4TGFvT09Cbi9MbGdFZW5EaHFXVFFaZk5LTzVHWkxwSWFQeC9YU2hjQVJJRG5SWjE4SGZRWWRuKzQ4SmJ6WWNseXhBcHVIRllQYU9VY01BQUFBQUFBQUFBQUFBQUFBQUtobkRCOGdGeStscXZxY3I1MXIxcHhYY0kwcEdCM2RyY3ZNR0t2S2FRelNiS1l6dGZqMGFDcHlJSHRXYk9WbGFlUTBSeS9MTE42RmMwMG1YVDhjS3EyZUo1VGFWbEUvNDE3VVcweS9mQzl0THBBS0NRdXhjZkpFa3lOV1VadWtEQlhiSExPNnBrYzc1N2x2MEJ4bnNzSlFlNmlRaWsrQjdCVk5LNHc0azNVYmhtN2Z2bjNISG51TTcyZU1HSFNQUGZiajcwMXg0b25INnp3Zi8vamxVdHIrL2Z0MzdOanhpVTk4ZlBic21UcFBlL3NuSmMvZXZYdXB0TXN2WDYvemlFSDMxRk5QU1VVZit0QmFYWWdZZExJMTZyWnQvOXdhTlMrRDdva25mc0hOVzdKazBVTVBmWXN6bkhIR2FzbFEwYUJidW5TeHZycWZmLzczdDl4eTg2SkZDOE8vRlU4ODhZUURCdzc0SnFnQWcyN1hycDEyRkM4N1dwU3hWNk10MkxENUZzZWdZejlIbDY5TDVweEd4RG5ENEVyVVFTa2hZQk54UEQxZm1YWUdMbzJPVUgvTGsxb2QvY3RodTR6OVQ2TXBLY2crTHNpR3BBRnRxV0tlSEEwNnJrdW13TjdpMWdnMnlGUG1qS2lXd3FDekN6UU1PdC9pakJNWHpsZ2VOR3Y5QjJOa3RsUDhjSWpSVkNRM0k3OFJaTS8yMzZRaWFnK3JlanQyUE02YkdwZGRrcWR6L0huVjJZTWZaN0hsc21LZHAxUWNPdWVJQVFBQUFBQUFBQUFBQUFBQUFBRDFqSllCVnE1Y2tiM0FBdlM1a3FXMFZTbjZuSkZ5aVVTbmQ3Yk5FcXRLWHVoTEVLVFIwZDA4OHVtSzVkTDRzNWdWR1JzSjh2SXU5T3hrb2M2ZEdSWU93M25xMDZDTDhyaTA2ZVpKbDdOeC8xeSt2TVVJZEViWnFQdmFmS2JQOW9EUS9ZcWpVMHFpKzZTeEFqbWduODVEdFJzcUhWVm4zR0R0SmhsUUxYSktIYzVVZHZUQVp1OGd6UUlObHpGWmJXMnRjcldHL1hBcHg3a3FETUhQWGhWVWtWNFZldTZ3SDdGR3g1bXMyekIwVzdZTUJKYUtHSFNhczg0NjA4aDIxVlZYL3VVdmY5RjVYbjc1NWNzdXUxVG51ZmJhYS83MnQ0T1cxdTdkTDE1MDBRVlNnbDNSTmRkY3JVc1FnNjZsNWRoWFhubUZQMi9ZOE1sY0RMcmpqbHUrZi8vK2FOSVZwRC9QT0dNMVozajQ0WWZrcklvRzNlU0pwLy9QLy95UDdzWGYvLzczMjIrL3pWQUtqVFE0NlAydFdBMkR6cGxzZDhoMjRmVEJpaGtNREFuS0NCcW1HK0FNcU9XTHN1WHNZRktEamhzVDhJWHNETTZBZXo0VGp4c2ZpRnBHNDBCVmJOcTBpUzBwWnlDN2lubHlOT2dNZ1lxamg4bGtzU3FwUjhNT0c1aWlWYm9FM3FkVjV0RllQRW5YbnBGTkx3L1J6Q1FabVZsalkyancyZStpS1NqSDJMVFU2WlNXRDk0dU9mSWJkTWFDREVSN1k0R1FXc1duME9qeDNzZE9neTdPWXN0bHhScllnUTF0d2hZdUFBQUFBQUFBQUFBQUFBQUFBRkNIR0FIb2NubGRIbE9mbzNyYjJscjcrbnFIRlVORGd6MDl0OFl2Z1FVRExhNFVVMk05akRsTERrWThNUW1FUmJVTURHeldhb2Y4U1huNE15ZHBRR2xLeHFBamRQelpaNTlsVlduNThoYk9lYzg5ZDJzZmc4cWhQK3R0TTgwNkpKY3dkREk3QmpRRnRJYlp2SkxwNEJuVVM0dG4vS21ubnBUai9JRnp5c0t3VndXZFNFbVdFOVhDQzRCUGxGUEV3REd5R2NWeU5qNUNHZWhxa3VNY09JdXZSRGtvemRPbjE2MUJsLzNTcGdIeDNYejBsZTd6cWZUcU1uWVFscVQzNmFicWRJTjFrc1lIakdqbkZHai9LcEN0MGRIRG16ME1YZUFSSnJGQUF3OG1Mc1Nua1d1WjA3Y3F1QXNzOGptWEFZaXNPSlAxR1ladTVjclRBa3RGRExxLy92V3ZyMDNoOU1lT09PS3dxNisrNmljLytlKzMzMzZiVHpsdzRNRGxseCswSmV1Q0JVZGVlKzAxanovK1U5NkdOWm9NK0xadTNVZEt5cUNqZFNVVlhYSEZCbjI2R0hSVTE3bm5uc09GVEV4TWZPUWpGL1B4TEFiZGJiZjE4SkgxNnkvVGw5SmJiNzFGemVZamNRdzZTak5tSEhMQkJlZC85N3ZmMFpmNTFxM2ZEWnhDM2ZGTlVEVU11clZyMTJ6Wk1zQ0pOUnRibFdIUmFIQndtMDQ1R25Tc1NJbFJVME9EVHV3alg0SE9ETEtMYTV4YTRyaERnckdkYnZ3OE9ScDBSdEE1cms0V0NVOGxIZFNoMjN4am1NNmdpeWJsWHJISXFtZlFhWndtbTUyNVhDN3pyclVWTjNKMUxoSTdGSnV6WG1mRXhVRGo3UzFmNlVqRndmY3R0dHhYYkhuU0c2d1lKTkIzV1FFQUFBQUFBQUFBQUFBQUFBQUFkWXNPUUpkTHFMRTRNdHZ5NVMzczVBVEtZY2ZHWjNmb29vYUdCbVBXR0c2NUxYNDQwOHFWSzdMdjJaZkxzTE5UWVJzT3JMdlFjU09jbC96WjE5ZHJkSXBqNjVXbVpBeHVucDN0bkhQT0xxbEFmSnlobnJjRXJSTnlDVU1uczJNZk55NFRtaEgyWkxSUFZacnlZVXBUUmhOZkY0SHJpR2VXbGcyVnI2dmdGYXZYTUtlMnRsWTdtK0ZvOFJiRDNBemorQTkrOEgyalFGbkRPaHVMZHFWNjliS3lYOXE4YnpMdndrbWRwWG1SZ2RJQ1lVbkZLS04vUlhMakc0SzRmSFNjTDFpK28zSWVHVHFKcVNYR0k2MGNPWkh6eUgxQTR0ZUo2T2hjekhJWGxkVlZuek9WSFIzSkxhTkl6SkVBMmU2T0RwNHN1WTZHTFhnV3FCbVJXaFYwVUZhRnpLODhKbmh5NlY5ZUZSek1VT1pYOGh2TENRajZSMElkaHFFem5qVjJFb1B1dE5OT0RlZVV0SGp4VVE4KytCOThWcmxjZHVaWnR1eVloeDkrbVBQODcvLytNNDhZZEIvLytIcGZ5ZHFnb3ovdnZmY2Uvdk4zdi92WC82ZVF4YUI3OGNVWG9rbnI3ODQ3NzJRQis2bW5udUk4VjE5OUZlZUphZEJKbWpObjF0VlhmL3J2Zi84N2wzelNTU2Y0Y3M2WWNjZ3p6enpqbktOcTcrTEtucElkUXNvWHFpNHZneTQ2V0pHcW9VSEhVY1hLL3BCaXpneSswdXpqTE9ERkQ2dGxiM0ViTTArT0JwMVJXbXZyT2wwWGh4MXpwcGhLb1JOakhXckhzcTRNdW1ncUtGODQ4Qm92Yi9wWEh5eTdSTEw0OVlZWEJvMFlOWXhxbE8xY0t3NitjeUZWWThWVzNCWTI4b3dZQUFBQUFBQUFBQUFBQUFBQUFGRG5hSWtsK3hhbEZkL2VKclVwUmtkMzYzM1RVaVRxWUhpM1FidkdjTFNmVWg3TzJQajR1QzR3WFZ3N25qdjdYREhyZkFZZE8waUVSQnhpU1lNYkUwMVpRTnUzUDhvVHlyczZFbmZlZVlmdVBrOU5ManZiTmoxNlVhVmJQNlVwblVZU1Q3MWNWaHhRc1RUbE5aV20xSnBvNnNLa1V3eURqcFlReTFwVUZPdEEvS2RJVTNJNTBEcWh3c1htNHRoeFhDWWRwRlA0ZEZvU09odXRORDZkYStSVHFDaHB6OERBWnZyTUM2bTcreWE1Z2ZCNjQ2QllFaXVTcStCVGt0NUpDcU1hVVQyTi9acjVtalhpbmttOXZMcGtKUmdONE9uZ2hTRjNJV05CaWxMRmRoeWZZbXp3TGNHNDdMc3IzMVdNeFpsOUVPb1FIYzlOcnJVY0VWbkwrYTJzQ3BiMzJGMzNyUXAydldSVkdEZHR2Z0NwQzFRbWxhUG5EZ2FkUVoySG9WdTNibDM0MTBzY2crN29vNWQ4L3ZQWEczcllrMDgrR1UxcVkzUG56cUUvanpsbTZRMDNmT0dZWTQ3V2VaNTY2a2t1Zk42OHcxTVlkSWNmUHZjUGYvaUQ3azVxZys1REgxb2JHS1Vubm5paUZNK2dvODUrL09PWHIxdjNVWDN3bGx0dXJ0ZzFTajcvcE5vR1hUUWxSQm51VTBXRkpydEJGMDJHdXVKWVhyVXk2SHdDWWNVTThRMDZ0cTBTZVVFOEkwbno1R3ZROFh5VnkyWDJxV1FFakQ4Rlh6ZFRHM1NSVXFycXphRGpyN3E2dW55MThDalo1M0pIQW9ubHQzUUduVTJjd2JjWFVqVldMTWVwRTdYUHhqZGlBQUFBQUFBQUFBQUFBQUFBQUVBOWs3c0FvR1B5MkNuMUZxaStqZWNxSm9uR2t4UTcvSnFSc3UvbG1qMlVEWjlyQjhTcmFOQnAyQWR3R25Uc1RwUlVLQzNPTEM0TnV4a3BXajROMFhKcHVqMGY3VVVvRTZSbmdZTkhSVk1YSXdzZVBLRnMyWldVUVNjenk1dUhha3VLMXlkZGVrYW9RL2xUeXVUakxQQVkyYlp2ZjlTNHQ1UXNrUzg2ZUZkV296c2FaeS9xa0dwRXFTb3BGWTNIdHEydDFjakR4M1dFUUZwcFJoNjVzMFZxVFJxV2xEaENPalNsUGRxOHdNSWQ5SjNiTk9oSFh1NHVzYWlNem0rMURCa2RQUHNhdHVPTXVKRkdIbm5DNnZ1U2MyMkE2R0FkdXE3Vzl1am82T3paTThNL1hTb2FkQi84NEhtOG0rclRUKytTM1U1bnpacngzSFBQUlpPYnRGSVZ0S2oyNzk5UGYvN3NaenRZZnRONTl1M2JkK2loczFNWWRKVE9QdnNzT2wxNmxOcWcyN2J0LytVLzN6eVlkOTU1SjVyMEFFODQ0ZmhTSllOdXpweFovL2QvL3hkTlJtUTY0NHpUMVJqK0sxWmUrUC92b0VINDg1Ly9iRTlUQVFZZEN6T0dEcFRDb0RPMi9qUndHblFjbWNxdzFBb3o2TXFUQWNFQzBrNGdRM3lEam52bjNPT1N2bklPbHk0a1RwNXdrOUxCZmFkSjRmYVhwMEx3OForMkNzV3piMHRsV1F5NmFGTE5XcnQyRGZ0WE9tZHREYnFLVWRmb0sycTJIWkdQeHEzZmd2VXovc3luSkRYb2FIVTVMZEIwQ3luamluWENnUndEKzk3NlJnd0FBQUFBQUFBQUFBQUFBQUFBcUdka3A3WlM1azNvb2txZVc4Yk5UMU5JZEZXdE1mdU90MFlvbXhSTmxkMWFqZU1WRFRxTzdHZHZ1Q2x5aGMrZ2k2YU1FUTRPbHNzNFRCOHlYbTR5TytIak1zdXN0SEZGZkpEanVaVmNCcDBFaFpOeVJGZUxhZERwTlNQWm5DWnFJb051YUdoUWoxdXBFUXk2N0plMmdZUU80OW1VY1RDeThSU3dVcVc5S1kyMjVxUll1NFc2Q3QrSzlTbGJ2bktha3R5M1FkY0VZdEFaQWVpaXFUdXpiMVhvZTRJUlRqRHl1SlQyRWNBWU9uU3RtL1AvYzl0dHQxWDhYU1FHM1M5KzhZdEhILzJSa2Rhdi85anMyVE1sRU53cnI3eHl4eDJiYnJubDVwMDcvMlY4L2V4blA2TkNqamppc0xHeFYvakl5eSsvdEduVFY3LzBwUy8rNWpkUDg1RWRPM2FVMUM2dXp6enpHN3VpRzI3NFFzbGwwSldVMVJhbE5lZ1dMMTdFRXVEdmYvOTdJOXMxMTF3OU5WWTl1aTVxcExGRjhvOSs5S09TaXJHNVo4K2ViMzNyd1J0dnZHSHIxdSt5UFVoSGpqcnFYZUhSN3UxMUJFQXV3S0NMcHR3aDdjeUVRMnc1TTdDSmw4aWdpNllVS2R1Z00yUWJObkFDN2RFTjQ2MC83WXAwQ1ZRK1YrMlRkc0laZkVhUXJSS3gvVlYyN1JMcjB3STVORi84UEw2cU0wTGxVNW5VVTEwUm0wN08vTndBWTB3eUduUzhxRGpwbk1iYUM5dWJta0MwTkx1cFBtTnQxNjZkcTYzTldBV2U4ZkNPcFJxbnVlZGN3NzcyK0JhSjdtejhoWlJ4eFRvSkI2bExPbUlBQUFBQUFBQUFBQUFBQUFBQVFEM0FCcFM4QmM2dWVRUUMwRkg1MlRjN1N5VFJVV095OXloY1kvWXdkRHFVVGFLdFp2WHB0dGtpKzJ6NkREb1dNM2pEVGRtTE00cG4wSW1YeFhsU05IdmFvcGVUTGJGVXhPZlNHTWRsbHRtUG9sbm16VHBacktxSlFVY0xrcjZWWkcvRDZqUG9lQTlLUHAyNkl4dkMxcmxCRngwY215ajdOU0kzQ3I2bmxZSUdIWStlVDIvVHJsUWd4SmxVSVk4Sm42azd6UTA2WXovdUhQZjBGQS9URGpZWXFYMVg1VWhlcThJb0VBYWRFLzFySi92L2ZaQVhwNXh5U3NXZlJtTFFPYm5sbHBzcHo2cFY3Ly9MWC81aWZ6c3hNYkZxMVVvdTUvVFRWem56ME1IM3ZlL2trakxvbkh6dmU5OHJlUXk2T1hObVBmUE1NM3c4blVGMy9mVWIrZk1YdjNpTGtXM2h3Z1Y3OXV5aHIxNTg4WVVaTXc3UnRwNEJWVlNhZEFWLzlhdGYydDhlT0hDQUpjQndPdlBNRDlqbkZtUFFzWUFVVTVSaTJDN1RKYkFrazlTZ1l4bEoyMVBPRUZoc2Mray9mWUlmdTIzbGcvMmY4bVJFTlgyS0xRMGFoRE53ZDR5ZExta1FqSFpLT1U0Tmp3c3hxdUNteWpER3ljUGtidEJ4eTNWRmNjSU1HazNOYU5CSkNib1FlM0VhRzQ4YTFwK0daUzE3aTFMbmtQb3VGbTZTYzA5U1hzOXhYRDdCMXRLNGZHTU5jeCtkMnA1emoxVGVGMVhXZlB5RmxISEZPcUhwY0RxQlVhb1JBd0FBQUFBQUFBQUFBQUFBQUFEcUFWYWhPR1hmYWpBc20rWDFGbDYzT1p5eTYyMk0zcERSU1BrT1dncWxpdlVrd3hXVWc5R1VMeUhmaWx2RmlwMGNMMVV5NkxTbndWNFc5WjBqZytVMXp0TUI5c0ZTeXpZeU8rSGpXcHRrL1l5WEdWMDdrZCtnWTExSFR6U1hJOTVhT29OT3pCeWpzeFVOT2w2YzNISXhpQnBsRjlkSVJZMHJaZDRnVys0U1BJTlJzUWFkYjZmWFFCWE9jaEoxdWJIUXo0Z2NleXJhcEgyUEZibE95NWw1clFxalFCaDBUblIwVGFmaVdEelBQZmRjbko5R045L2MvY0lMZi9TbGYvLzNhem5iMHFXTHYvR05yNHNqOThZYmIyemQrdDJUVGpwQkYzWHNzY2Q4KzlzUC8vV3ZmK1U4cjcvKytwWXRBK0lXcmw5L1dhQ2kzdDc3U3BQYUcvOTUyR0dINnBKUE9lVjlmL2pESCtnNHRkWm8velBQUEVQSDlRMlcwNWUvL0NVdTZ2ampqNk52NlFQUjByTE1Ib0VISG5pQWM1NTU1aGszM1BCNVh3dXBJczUvNktHemI3enhodWVmZi83QWdRUFV6WGZlZWVkblAvdlp4UmRmRkdlMFo4NHM3ZDV0UHVpTE1laWlLVzlORkNiZVg3V3JxNnM4cWZGTVRFelFFVHBSdkJyT1FFZm9SRXF0cmV0WVhVdHEwRVZUdnBCVXpSNGFGY2hHRU5Yb0RKSG4yME9UaFJ3Nm5mSnpQRFQ2d0hhZktFWXNJMUV0OXBhYTNNR0tHY1FZcEw1ekxWUTRkeVMrUWtaRmNmQXVYWWdSK0M1T25vb1ZwWU9uV1BlSWovaGloWld6ZVgwK2cwNGNTemtpMFE1NUJHUkFKUHhkb0ZLWk9LcExyMjNua05wcmdDbzFRaVlhaGZPM216WnRNcGFOVTdkamJJUE9XTVBjUWw0R1RyR05SNTYrcFd4NmtlaTV5MlVoeFMvRXdIZkJwaHN4QUFBQUFBQUFBQUFBQUFBQUFLQWUwRUZVc250UU91YVNrYktiWnNMNCtIZ2cwcDBrVVUxeXFWRmJUenJsc24xYkZxVktSb1ArcFM1THVERFJIbmhTNkYvNlNyWnRsVXJwMzc2K1hyM2JvNGdXaGtISGhZZ253RjVXS2JNYU5BM1JzazNTVmNwbjBVenBKQ0hDSkpzMjZMZzZpVWtZK1EwNk9aSG1sTDVsUFpKRFUyWTA2Q1JZRnZXWEVoMm5WUmN3NkhoSlV6WTZjZXZXclhJUG9YTmxuOHI2TitpaW5HNndkQ0pQbjk2VHVsUm5CaDNkdUl3WWczWTU2YnJmRU9nOVBmTzZKY3FOd2psMFlwSnJkenF2VldFVUNJUE9pUkY3TUh2QTIreDg1U3RmaWVOMEpVMUhIZld1UllzV1ZzeFRjVC9USmtqejVoMitkT25pMmJObkpqcnIzbnZ2TVdhcU1JTXVtdHBwVVV3WURteWxFMlVvcTdoWTdCMkpaY1NGcHpEbzJCZlNTaExWd2lWTE1vS0dCWG9SVFJwV3JPVklvaisxMkNiUjFlekUzazdGRE01R09tUFdoUlV5S3MxdXF1RU94Y2xUc2FJVWNNUzUxV3BqVnQvZXRRSzNNMTJyZkZwYTVOckRsNFZQMzhvTVYwb3JYT0xhNlNFdEh4enpqWnRrSnpyWEY1bFFaRDg3K2JvV2ViWkdkYTVodTRXNjZ2Q2E5K1ZKdXBCaUZtTGd1MkRUalJnQUFBQUFBQUFBQUFBQUFBQUFVSFB5ZmVsdnZFM1dLWmY5WVRVVjkzSXRzc2Fob2NHTWhXdWxLc1Z1anlNakl5dzdTV3ByYXhYblFmUWJubVhPR1ZteDcraXJnRUduVzhnaWtCekowVlNjSnVpdGs1TmVkODRWS0JleVpOTUduVlFuZFFVTU9zcXNwUzlhT2J3QU1ocDBkREVhUzVTV1RjQ2dFK0dIcnk5WmJOUWVsdkVheGFEVEFUUFRYU2x5L2RLLzJzSGpNbjJ1Rkp1OWNWd3B1US9ZVmVzcWZQYzZxVUkvVFl4S2ZVMXRNdkxWMFdWZWZQSTVyd3JqV3o0WU51aDRUY0tneTRXTXorN2NPZjMwMWVHZlJrZzFTZmJXazdrYmRJa1lHeHZic21XZ3Y3K2YvbzBURWlwZzBLV0FhcVI2SlpSY0l1Z1VPcEdEV2FVcklTWlNpNFQvU2xjSWozT2drRGg1cGhVOHhURlhwazI1WEphMTdZdXFWMXM0OUZ6OEZ1bzFYKzJGaE5VSUFBQUFBQUFBQUFBQUFBQUFZSnFqN1k3c0wzL3RIYlVrNVJpQVRnaUhvY3RkNndxRW9jdGVsMWFxVW16a3lnd01iSll4YVd0cjFUR2dxUEhEdzhNc2RZeU83aFlkZ2o5ejFMdVJTYUpKajRJejhMY2lJdEszMnFPZ2I3R0ZhMnBTeXpiRExuaCs5ZXdZazhYZlNuaER6czkveXNKdzFtSVVhQ3dHK2xNdm9jaXpab3cvNVlodWh2Mm4wUVg5SjJjejh0Y25XV3pKeUsvUEVYejEyYmRXSFU5UzIzUWFiYzM1NHN2SkpxRjhKK0hQdHByRnphQktaUkV5Y1dTL0ppTzdMU21JOE9aN2RNclQxbkFhV1dpMGR4UmwwWXNmTHI2b2cxS212cWFjYXdNSSttZFBlQy9qQWhnYkc1czVzMVJ6V3d6SlRuUG16REwrbjQ3YUduU0pLRTl1SlluSVVRQUFBQUFBQUFBQUFBQUFBQUFBQUtDNTBScFBkaEZGK3dOR3FvWmtGYWd1bCs3WTZHZ3pPcVYyM2pSNXpjWEF3R2FXS0hLUHdtZkFJUWV4aFdzNmNwUnRRSjJUMnBiVW03ZmFKOHJHdU03cTJMd1NVODY0cGNqR3ZwRXk1UXlKV3M3bHF0bVVNeHdoaVRzYXR1UGk1R2tDTXRxU2dqeG9BdWE1bmtIN3VHOVZzRmtuMHBleHFKeGxjazRZZEFHMFdsL2JqVnovNHorK1dYTlZETW1YdnYvOTcrbkpxbHVEcmx3dUc3R25lTmZYZEFIQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUdnSThucmRMN0M0WlNmN0xYOHVHSnNHNmxRbHJTc1FaQzk3NGZsdUJrZE5yZmFPY2xSK0NmWlhXbktKT2dnYWduU2hQa1ZnbytYaDFISWtnemJUNURiQ2dlUEVqdE9GMk51RHNoMm53OXpSaWV4Y3liMVVBcGRKY0VzcWtDMitVaVV6MEc1bnM1SlJoS1lobFJrTUR4ZGJXM2FzT2VmZXI3SUNlZTdFZTlTclFwNm5ocmJIQjJIUUJkRFBiaDM2dFhqYTJ0cHE3b2toK1ZKSFI3dWVyTG8xNk5yYk42eGR1NmE3dTN2TGxnRktYVjFkcTFldjJyUnBVNjNiQlFBQUFBQUFBQUFBQUFBQUFBQUFBRUFWWVFPS1V5NGVsRzliVmZzdGYxNzQzbFJXWTlQWVNJa0hkc29lOGs3cmVkVWJzUndaR05qYzAzTnJuZStoV2MvVVQrUWlVRlcwNnh0L244ZUFpU0dGc1BsV21wVGY2S0NzS08xa2FuK1A4c2hkbWpMTHhhdHZQblN1RkZ0U200VHFiYXlwRU8xTFY3eGZjYmJwWU5CbDNCaGRORVZuMHJzWTh4R25yNVhYcW1DTXFvR05XSXZWKyswUmgvMzc5eTlZTUw4WUdRd3BSVnEyN0poYXJZMUU3TnExczd1N2UrM2FOYXRYcjZMVTJycHV5NWFCV2pjS0FBQUFBQUFBQUFBQUFBQUFBQUFBZ09vaTRZTktPYjBmOTcwM3JKNDRvVTJQWW1yMFdZTFpCMURyZVZXSzJnZnFpdnFKWEFTcWpiWWxZNTRTTURIRW9LT2JoaDM1azQ0WVFxYTk0VFhkeDR5b2NiUUNkU1A1TG1RNFlIU0tmUU9rWlZ6Ui82ejJiYmwreUNoQ3h6VG9KSnRUWU02eUt1d0hXWTYvRUpvVi9leXU0YmJtenp6elRHRXlXTU9sR1RNT21UTm5GcVhhTnVPUGYveGpyWllIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JBQ3FrampPK2xJUWNzcWtZeWxJOGExcGlMWUtDMWgvQ3VpS0FKcUpQSVJhQUFVdWpLdzM2TW04UG82Rzc1eWhjVGNueDgzSGU2cjFLZkYwZW5WNnpPV2V3MGlWY3BFNTFDaE5aVGFTTXpJdGxpRmhWblZmaEtDeThHd0dpWnYxYnIvT3RmZjZEbW9scjlwRGx6WnExWWNjb2xsN1JkZDkzbnZ2clYyL3Y2ZXUrL3Y0OVNiKzk5UFQyM2RuWDkrN3AxSDNuZiswNmVOV3RHa2EzNnpuZTIxR1J0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDakl5TXlFdTkrQnNMaHFuNU85TWFwbHdNT2gyQUtNVU9nS0N4R0IzZExkT3ROMWdFellmZU1uczZoR0tiemtDRW5vYm9nSDYxQ2loNjVaV2ZxdmtQb1pxbm1UTkxwNTIyNHFxcnJyem5ucnRabVF1bnIzM3R6c3N2WDc5MDZlSmltbmZkZForcnlkb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVFE4YS95TWpwcS92SzBoaWtYZzQ0S2tRSVRCU1hqK0hqR3BvR2pvN3Y1K01hTjEyVnZHNmdHZWsvTW1GR2U2TXJsYVRXV0hNMHlINGUwVTRmb1N6c3ZZeG5VSi9VZ1U0R0MwYnYzMWlxZzZPclZxMnIrUTZpR2FlN2NPUi8rOEZyNk5SdEhuRE5TYis5OW4vakU1VWNjY1ZpMUc3bG16UWRyc2pZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIMFcvNmhvY0ZjeXF6NUs5UWFwbHdNdXZIeGNTa3dVVkF5T1V2YlV4TDJxdm1NbmFiUkFsTnM3aWtScnJTbm9WZE9Ma3V4Zm1CanNBbTBRSm1nRkp0N2dnWkN5MVROY1pzQ0ZkRUJSV3Yxd0owMzcvQ2EveENxVlRyampOTTNiZnBxQ25kT3B6dnUySFRLS2UrdGFqdVhMbDFjazdVQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFpZ2Q1b2JIZDJkUzVrMWY0dGF3NVNYdHFTRGtzVThSZHRUV3RoWXVYSUZIMncrZzY1cE9wVmkzMTY1Y3JXSXBVTktOcGxCeDBQVUJKMnF4aTBYMUNIMUlGT0I0cUViY3RKbmQ0N29ud0hUS3JXMExMdisrbzBaM1RsSjlCUys2S0lMcXRmYUdUTU9lZjMxMTR0ZkhnQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFQcWxYalhLbkc0cEw4Tkhhell4eStRTkl0bVhXNzY4aFEreXhTRVNIUjhaR05qYzAzTXJKOWxla0Q1UUdoOGY1Mi83K25wNU8xSEtUNThsdjI2TVVZN29RSlRIV2JnYzU1eFVQcGVzdHppVVBOSUFQaEpOeG5UaXI4WW40ZjVTVC9sZ3B1R3VOU24yN2VVVndxYWxSSS9raVdhRmcyZEt4dE9ZVXg1R2UwWmtrSGxlWkV0WlBrWEtrV1dnajNNaGZHUmtaSVFuVjNMcTZlTWpzZ0E0djV4TC8wcXgwZ3NPMDBlRFl5ekNob082a1B2dEF0UW50WldwUUUzUXorN2lZMmErOE1JTE5mOFZWSENhTTJjV1BSMTZlKy9MUzUrVGROVlZWMUxoVldyMkUwODhVZkRhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFME9GS2NneVNJNzdXTkV4aUIyVkVCeVdMdWJzdVcxZzBqK3dhOGJ0NzNxVlhObktORHBhMU9MRitSaWRxMzBPV2hHNkpiby9lLzFmbk40NnpEK1lzM0c2RERxRldtaFQvYUR5NUFmcjA1Y3RidG05LzFLZzlsMkd2RlNuQ1ZmRUE4bWp6SUhNaE5EanNhTEdkcFlNWmxxWTJCZVkxb0llVVByUC81cHhUV2t2MlVxZEM2TGhkaUwzQXFCRGRETlk3YVdhTkc4WHdKRWJEZUwwNVYyeURvaStvaHU0SXFBamlEVTVEOUFWZXZDTDc5Tk5QSi8zUjB0RHAyR09QK2ZLWHY1aTdPeWZwYzUvN3pPelpNNnZSOG9jZWVxamd0UUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSkFpOGxVY2RKQ2xhWlZZVDhvRjdaTEYxR3pFb09OemVVTFpYQkpCSzVvMGw0YW5ZUCtLalNZeHN1ajQwTkFnVzB4MG91UWZHUm5obVcxcmF4WDNrbkp5a0RxdW1pdWljeWsvZldaRmlrN2t3dWwwTHB6UHBibzRVcG0wUVlLblVmbnNBWEtZTzY2VVRxU3Z1TXl0VzdkS3pEMXVYbDRqWHl0a3V2V3VyQUY0SEdpUUtUK2Z3aVBKVWQxazJkQUk4OXpSNlBGaUVGR05sNHFFZCtQOHNqWmtCY3BjMFBTeElNZFYwd2VlVmo2UksrVXAxb1Z6WnZsVDJzQnJpZjdsc0ljeWxid1lPTXdkbDBublNqbDh2S0ZsSkgzWDFic3RPK0ZyaDdKUm9nOTJNa3Fna2FFaDVYbWhFYU1QTVRjRkRyZWhZanVCazlUeEJ1bUs0RXNtbkkydkk3cjg2UXJOMXRLVWNIRFI3T1hRS21YTG1xNTlsc0NyZEkwWHNKakZWNC8vN002Um4vMXNSODEvQ0JXV3pqMzNuSHZ2dmFkNitoeW5hNis5ZXRhc0diazMva3RmK2xMQmF3TUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVDQ0ZwaFVITzJhVVR1eDFaRTh4WDFQbVZSMm5jSGk5WEZ3Q0pvWGNLT1pTTkttaVVlTFFZU3hYY0ZIMldYS2NoMVNPODUrRzlTRlY2THIwY1pZSFJGSGdCVVpMeXlqTnFJdmJ3SVdJQ3NKLzhsYWUrbHl0aDVWeWpaMVlXL1NTanBOZmNyS2xRME10VHAwZUlnMExrMkxRU1FialQ2TkpZcStKMHlMSFN3ZjdmbnB0U0dsR1kvaFBXaWVzMGtuTVJySHk5Snl5cU1sL09oZGtJNklEK2xWY3ZUSWd2anVlVVlLZExmc0ZRc3RHUWhTQ1JPaHdaSW1lRHI1TDJJQ1ZZN3AyQ2xNYzJlU1VQNm5xN042NEVYcVVVMTdSWEEzMFlyWUYxRnhJcE1qbXp1Qmc2TmRYMDZUREQ1Lzc2VTlmVlcxM1R0STExMXc5YzJiT0VsMUh4eFVGcncwQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUlEVTcvY3JZdXdkcVZNdTc1VHRuU0tOdEdiTmVURTNQMDJFdmFXcHBQbno1K1g0MGovRnRwN2FRR09yaXEwa25sa3VLcHEwa2poc2tXNTg1RGZvcUNWVXBzNXZXMUxpK1RqSEo2WkJwMFAzNk5VeURRMDYzb0UzakV3Y0cxazgxMnl6NkNHaVVmVnRsdW8wNk9oZjQrS1ZhODFvNmtNUFBlUzg3dUlZZEw3cnlERG9JalhGVFdQUVJTcmVZSHlEVG80RTNDcUo0S2ZYVHk3bUcvUzVkR2laUEpHakhzZWdNNVRqWWpCdTNlT1RaQ3lUYnpqMG5KS2lxcnJlcFBBcVBUNFNLYks1czNYcjF2QlBveVpJaXhZdC9OS1hxcmh6cXpPdFgzOVp2cjI0NktJTENsNGJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUEybVBKVjAxeFJwV1JsUDM5ZUhpajJPd2JGem9aSHg4M3hET2RjdCt2VFVxTytSWmVTeGZhM0dBdGdjMkhrWkVSMlJTVjVraWt0Y2h2ME1sdW0xUW1meFpMU21SSXc2RGpENUprRjlld1FTZGJlZXB6WlN2UHBqZm9rbDZNTW5HUkVsYlpscFFoa2sxMWFhSjVYOGhTMEtDVGpYRjVjMGJaY1ZYWEZSMXMwRkhoZXI1NHE5WlNiSU5PbnlzTmFIcURUdDlHd2prVEdYUmg3WXFERTNMaWV3SmZYTHdMTTMyZ3ExdWZ5L2w1SlhDMmFQSWV5Sm5sMGpaS2htdW5TUjJPVEU4bFh4Y3lUV3lHNjcyelpkanBLM3NpK0hTZWE1bFErZE9ZVmhIcGVYOXRvelFKUnlrSCtRT2ZvcGVCNk90MENqK09lUlhSWjhPNEUrM1ROeFI4SXZkQ242WHZPYkpXZFV2a1ptaDBuLzU5OXRsbnBWNCt6cDNWQ3A4dU1DbEpuOTA1OHZERERyRzVtZEpKSjUxdzU1MTNGS3pQVWFJVmNzNDVaK1hZa2RXclZ4VzhOZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWFRZcTl6VmxNQ0dwOWxmS3hkcHNna0JiVy81OHBiY2Q1MlR3dlZHbVFFTWY0YUhTSGFBRlFHSnRTaUpVbFdhMG5oOEJoMW5FT1dtcEF3NjJiL1AyTVhWRG9zVWZ4ZFhXNlVJRzNRQjlhS3h5R0xROGZhc01rMHlSTWFtdWpLU1BvT09KcTZrQkZTWk5mN2czTVcxWkFteE1RMDZ2ajhZZ1NJckduVFZDQ3haUFBGMzdFMWswUEYwMDRWdm16OTB2ZXQ3SmdmTTVLTGt1QWlUZkFvYnJYUUQwZUVvalJzdjViRkxqaE5CY1pxUU9oeVpjWmN6aHAxMUwzMUVWR2Q3SW1SbStRTTF3eWpOMlBtWEsrVmJnUzVOaDBYVmQyeGV3L1RaS0pZZlBjWWEwMDhOaG5kcTV0dVVyVjhhdnlKNFlSczlEZXdxYm84ZWQ5YU9kOHI5bGR0TG5CaUFBZlM0cFNzaE5WLy8rZ05HMTVvcG5YNzZxdnZ1dTdkNGZZNFRWWDNjY2N2ejZzdnh4eDlYOE5vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFTSUwzS2tJTHpSYWhaaEwxQ3k4WFkrUjJ4L1FLZDg5OEJsa3M2TzhkSi9aR1NFcFJkZG1nUVI0cmhrb2tsRWZvT085UU9PUzhZSDJVemc0eHlvaDh1aDR4S21qMFBKZFhaMnNGc1l4NkNMcG1LcHlibjBvV0lNdXRLay9GRHdWb2JWUUNzeGNjd052VEJvaEdsOHhGd1NjVTVDUWRKZzBwK2lTUGtNT2pIeGVQeDVLdWxiUGk3VEljZFpaYUZpS1FNbERvY1YwNkFUdFlaRG45RzU5Q0ZnMFBFYW83bzRXMDZqWGh1cVpORFJNaERqaUFkV0JvcW5udDFJbmpYWkg1bE9vZU15eStKUGNqWWR1bEQyaHFhVlJqY1dPa0kxOHJ4b1hVcXNYUkNsRFVkbUczUThSM3hwMHhSSUREcWU1U2VmZkVKbjQwbmhweUVmcDhubFd3VFBKcDhsb1VycFd3NDZWNXB5a25sKytTSENwL0NselF1TTd5RWl2MFZUcWh2Vnk0M2tXNFNFUE9VUXB1SnZHOWV2amxqTER4bzJnWFZuK1VuRVdtQnBTaE9WKzE3WW9PTU9jcHU1TDl1M1B5b1NPQjgzWkdNZXdOVDNHUzMrcFNzaE5iMjk5d1YrcURSME91KzhjMmlhaXBIbDdybm43czk5N3JPWFh0cDIxbGtmT1A3NDR4WXVmTmVoaDg3T3R6dUxGeTh1ZUcwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKVTFhQ0xyRGcyT21WUjNld0FNcEtxRjZMS0NOU1RWMTlpMWhnbmZ6aHNqbWd3T21ZVXRaemY5VWQrZzA3ckRYU1FveGhGQjJzUFhLQWN0Mk5TeFRUb0tLZUVTK0xFbSs2VlBBYWREa2JVNk50SGFpODBxVUhuTElxblF5dFZGWGR4MVFvV1R6VG4xOGRsdXZtNGNWMklCVmZSb0l0aXhKS0tsRUduTnlhdVhwekpZdENERm83WWxzaWdZK2lTMFpORmc4ejJyOXltV0h5U1BaZU5aU0F5S2wrSmRLNGgzeG9YV3VuZ1FGdlZ1eDgyS0hwNXh6L0xNT2lNSzZJMEZmWk44bkIrdlZFc1g2VDI2VEZ2eFJxKzFYTkZ2dnpHTW1BYlUwUlo0KzV0bTJuc1orb0hrOCs3dnZIR0cwcldscmdWRFRwbjkvVXBMT2JKMHBYUlMwZTFmMWtGdU9lZXU0M2ZKODJSemovL3c5WFc1KzY5OTU2dXJtdlhybDNUMHJKczVzeFN0WHUwWU1HUkJhOE5BQUFBQUFBQUFBQUFBQUFBQUFBQUFFQ0Fhci9udFhmOTB5bDEzRFpqQXp1ZDhtMi9VTDE0ZWdHU3pnNEg2dkdKWkJ5b2gyUDdjT2dlenNsblNRWm5mbDN5eUNTY3h4Y0NpSTh6ZG1sMlhUcW4vQ2xISk5xVnM1dkd1WTFMVW9OT0I1MHpNRUxTeVdqejhmRko5QmdhZjhxNWtsK09jem1HMmNMbE8xZFhaTTJYODA4NVlyVGM2S2F4RWhvWHJRNkdWMjhLZzQ2aHNaTDc1RU1QUFdUZnRXeURMbExpa0pidWpFMTdqVnJza3B0bVkrVmMwQU1lLzZ4MEJwMFd5SG5XV0F4TFlkQkp1RGJqcGhUWWdGdlhJdEpkVElOT29DNnd1c2t4TGUzVmRlMjExOWpyUDd0QkYwMHBvM3dMS3JuMklvOVBEUTI2dSs3NlduYTVxOTdTaFJlZVh6MXg3dTY3Nytyb3VHTEZpbFBtekpsVlpLY09PK3pRZ3RjR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUNCQUFlOTVBN1liNysrWm9relphOUpJMVl0OXBHTTZHYWw2KzRmVzhDMThITFFteDhFR2piaEFJQkZKRGJxQ2tibm1DSkE2M2hSSWlyNHJWc21nWS9nZUlydHpzdEhFU2FJNzZxTDRRaDRhR3VSVHREUVZNT2hvTVJnbEp4dU9wa1kvNytLZmxjNmcweVBQczhZVGxNS2dFNDJORmdNTG53R0R6dmIwak0yYTR4dDAwVlMwU1NwTk5welZxOHU1L25NeDZMaWJWTHV4blhFS1lORGxtTmF1WFZPbDZIUGQzVGVkZGRZSENoYm5KQjE2Nk95QzF3WUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlFQUI3M25IeDhlTmZUbDFTbWNLR1pzL1NxcVNRYWUzS3pYUy9QbnpxcmQ1YUowYmRQWmV1bzIrajJwdHFYT0R6cGhyMkpKWktNYWdvM3N2eDVUYnZ2MVJyc3N3bHUyaStGNUhOMWgyaGpuNm4waEgvTUhZS1J2WGZoaDkxY1EvSzZsQngzZGptampPd3h2MWx0THU0bXBzYWFvcjR2eXlrSFF0K2pnL28zMTdjSWZYUEo5TEZiSFBhWmhzc2tUMXdkUUduZFlhMmR5VHhaOWxTY09neXl1ZGZmYVp1ZXR6dmIzM2RYWmU4WjczSEZmYnJzR2dBd0FBQUFBQUFBQUFBQUFBQUFBQUFLQ3VLT1k5TDcrWWRxWjBCbG9ncmwzdU96eFd3d0NNU1owYmREUnhmWDI5SEJUSWtHcEFDdXJjb0dNWmhpT01RWmZLU0pVTU9yb00yOXBhZVpyazdrSDNXTHFKOFo5MEs5dTQ4VHBLSzFldWNNYWdZK21PdlR1UmkwUTY0dndjY1k0TG9Uc0ErMDVTTW04T205TTROUVA2ZVJIL3JLUUduV3luU3pscEZ2aVp4WnBaS2ExQlY1cVU2R2lLMlNqVEJoMGRvWlVtbFVaVDBRdDVHWEFlZnJqSE1laDR6VkNpUW1UYmQxcWY0cTV6R0RxT1NpZVY4a0U2aFJvakIyVjVsK0laZEtYSktMSVNTRllXZjBZYkh3WmRMbW5GaWxON2UrL0xkOFBXU3k1cFc3aHdRYzI3VnZJWWRMdDI3ZHkwYWRQYXRXdFdyMTdsbStMQndXMWRYVjJjaC83dDd1NHVsOHM2QTMxTFg0WFRqaDJQTzJzUGZDdHMyVEpBZVZwYjE4VmVsVTBJVFpOellHbFlhRWJDQTFnWTNDU2FyeFJuMllrV0d5MnRPdWxhOVFoMDM3N1c5Q20wSkNvV2ErZWg4VFF1WjdvTW5TWEV6MmxET1NrL0xVNCt0NzE5ZzI5VnBPZ0xONG5LZEdhbUVZdHpWM0V5TmpaVzhWWm1wS1JWR0JoM1Z4Nm9pWWtKTzJmRmUzV2krWXBmYjlLUzdXWlRmcU9pWERLbmJtU1c3dERxb2xuZ2hTMjMzOERwU2ZQSEorYjZUSG8zcmdZMENQcEhRcTJiODAvcVozRHloWDhzMWNrZzUwV1ZPc1YzQUw0SkJMNmxaRit3Y2tYN0hrTVZhZFlWMkpUOWFzcE9BUUFBQUFBQUFBQ29Ud3A3ejZzck1wSVJUQ1lPZHZRelNibkxHOVhZaFRZbWRXN1FnWHlwYzRNTzVFaVZERHI3WmtYM0tJNGpSM2NxWXl0cTM0YVlFdUZUWW45cDZjaTRrMU5tMGZPeTNOS2JHRDB5OGM5S2F0QkZrNDZyNkdlbFNRZU1IMCtsVkx1NDZrQ3ZiTWZwWUhlY3hJMlByQVZHTGVFdFpTc2FkQ0svT1ovanhvN3RiSFVhUGFXRFZJak95U1plUllOTzk1R3RZRG1TTWNZbURMcnNxYVZsMlQzMzNKMWozTG5MTDc5czNyekRhOTR2U1laQlZ5Nlg5U3RDNTl2SmlZa0pueDAzT0xoTnNxVTI2S0twMTVSaGY2YTlmWVBPMHlqdmlQTjk2ZVl6NkNUUkxQZ0VtTUpJMStXS2k0Y1dRTTI3VmoxU1hEdXJVeGwwZ2N2Wm1MTDRPWjEwZDNjN3oyMXRYVGMyTnBhOUwzSUhjSnBJWEhzNjRiWklnNDdxNGp1YmM2REt5cHlzZUs5T05GL3g2MDFhc28zTVZKeWJWYUxNNlJxWnNUdjkvZjIrWlVDcnptNWswdnlKaUxrK3N6eUFzcGNReGZ1bGthVndhaDdkR1dnOHV5YWh6L1RqcE93U2p6V0p1cGJMT0JSRG8vdzZTa1NWT3FWdkJjYURxVHlsWWZ0dUkvSlYrTWtWb0ZsWFlBTTFOVDVOMlNrQUFBQUFBQUFBQVBWSlllOTVKYWFOTTdIamtWZHBPY1pEazIwUW5Za05nZW9CZzI1YUFZTnUrcUJ0bjdCQlI3Y2d5cUR2a0tPanUrbUlMd3dnZjh2WTkxVTZ3bCt4VytVc1Nrb1FQWmpQTXY0MFRuUWVCSkV5NkxUR1ZoRTlOY1pVOGpoSFUydEREemdmc2ZQclA1MnphUmR1NU5RVjZWTjAvc2hhWU5JUjM1OUdzNDF6OVNsR0w1dzk1ZHE1blNPVCtGb29WUmpmMHJrY3ZpL3BieElER0hRWjAxRkh2ZXVyWDcwOUYzZXVyNiszbytPS1JZc1cxcnhUUnJJTk9sWW1KSmlHUGJuc29xeGR1MmJMbGdIS1B6WTJ0bVBINDVLL1BQV1NtajdzMnJYVG1WalY2T3JxOHEwZmZva1owRjNrWmFWNFJObGZwMjZhSkpkQVFBSHlmZWttQnQzWXdYQThKVkZOY3Frck5lbTZMSTAzRnMvZzREWlJmVkpIZXFrSmlSYVlHRFY2V3N1VFpvanYvWDZjZC9kMkhsbEMvZjM5OXVXc1d4cy9wN1B2MGlQS3lYMlJnMVNJSVE2bDZBdVZ3RTZPdmVCRmdkT0tiM3dLTStpb0N6S2VNc2owcnpoWDFFRVpxSXIzNnZqemxhamVSQ1hiU0loUktvVFA1UkJ6c2p4U1owN2QvU3pka1NHaWV4R2RaZDkralRXY05IOVNZcTdQbWh0MDhpdUM3d2EyUTVzQ1dxSTB2REp4emtUZkJtNENpYnFXWlJ3NGRHVEd1WTRQRExyNGFNSFYwTlJwNWVpMTVMdFpwWDdRUk0yN0FuTzVhZFFiVGRrcEFBQUFBQUFBQUFEMVNaSHZlWFc4RnlNbFVndVlnTmdtMFcvcXJjMUpnVUUzcllCQk4zM1FsM2JZb0FPTlRwR1BESkFSRG9nbit4ZW5CZ1pkUnJYczVwdTdjOUhuTm02ODd0M3ZicWw1ajN6ZE5PYU9oUUhmMjBtZmkwTEhXVjhKV3czUjVHWjUvT284OE5KYzNsVDY4bkFobE1UcnlQNDZ0WmpYWWZuV0l1NUgrTnZhN25tYXJzdGhuMFFzbWdaNmZabmk1Yml6KzdMNGpXL2pHRGhHSGpGUksxN084WFBheUUzRGJwdGM2Y2F3cE9oTHBHNEM1WU9EVGZHRmtHWEhaMXNEMWlxRi9XMjZXa1Rlc0M5WTU2UUg3dFdKNWl0UnZWbFdRalJsUjl1V28xelIrcDZmS0hPNjd1ZXlzSjJXc2toeHNocVQ1aytCWHBiVUkxL0tYa1hHRzIrY01MT0pvRTdKRHJ5MG50bE9sRytwdjVSQmxrMTcrd2JueWluTVh5cFlhWU5CRngrNTQ5bVRhNFQ4TlI0bzJxOUxmWDAxNndwc3VGOXJjV2pLVGdFQUFBQUFBQUFBcUUrS2ZNOGJqdWVXVkNNeE5uZXpVOFpkMkNMUDduS3BHNXlDRkxNek1qTFMyZG5CdStuUjZaUmtLMFpRNStqdEVXSFFOVGVRWTZjUE10RXc2T29mdmdsbmYyakNvTXVTT2pyYXM3dHpYL3ZhblIvNHdCazE3MHNnMlFZZDQzdS9acXRyUXB4OUVpVk9WRGhHUjhXWVVmd3FVNGNneXg1U281alhZZmxHdWdzYmRDS0hWTlFhcTBvMUREcnBXZ09Gb2N2TG9DTTR6cEp4cmFXd3p1SmZ6bGt1L0xBUXkzMHg1akdkUWVkYzhENUZLaU5hcGNpclRBNnU2RnZTL0swOXpzNTdkYUw1U2xSdnhrZUE3LzVmbnRvaFVYK1ZLTE9tbUlYdE16YU5Sc29sbnpSL0NxcXhMQTF5ZVlUbCs3VGw1eUN0bG9yWE9NMnloTC96YlI0ZHMxVlp4Z0VHWFhhcTFDbTlHYXZ4dzhuZTU5b1ptWk9XVnVyYW0zVUZOcVZzMXBTZEFnQUFBQUFBQUFCUW4rajN2Qm0zTFl1RGRvU01sRFRxeStqbzdvQ1B4Mm5seWhWWk9xVUh4MGlkblIycGk0MlA3bURNVTNnSHVpeE5wUkdqamxkN2cxcGcwOU56cTh4YWpqc1Jnem9FQnQwMFFXdllNT2pxSDNydzBYMDQrMDdFK2hHY1M4UGkwK2dHM1FjL2VGNzJiVnMvOWFtT0JRdU9ySGxmd2ltcFFTY3lUUHhUTkJ6c0tFNHdLUFpxZk9vWGY1dnZxNnRHZkIwV051aWlHUHZoRmtBMURMcG9xbXRaM2xZWFRJNEduUVJUaW4rS00wLzh5em5MaFIvTzRGekQ2UXk2U0lWVEV6MkdqK1MrVHFxaEtvVjc3YnZZbmNPYmFMNFMxWnZ4RVJBdzMrd0xKRkZtVFRFTHUrTHQxeGpZcFBsVFVJQkJsd3M1UG0xRnA0Ky9GU3pQckcvejZBSitBOENneTA3MU9pVWJBVHNkZFoyMHZTWituVFBDWkV5YWRRVTI0cS9yaWpSbHB3QUFBQUFBQUFBQTFDYzZrbHN4bXduYWlwZWtwSUZmdEhFVVNPbkNlZWt0TlkwMGYvNjg3Ry9ZNHlBMXJseTVJazcrZ1lITnBVbFBRM3VEU1p2S0hVY010T0xSNnhrN2V6WTMralpZNjdhQUtxS2ZJOFY0MTZBZWtFa3ZYcHRzYUlQdXhCT1A3KzI5TDRzK2Q5dHRQZTk3MzhrMTcwaWNsTlNnbTVpWThHMVR5S2NFVEJVSjdoRm5VMUdKS21OL0pSSHF5aG0yb3JPcDB1c3dhaVFObHgzZ3lNNUdYZTdxNm1wdFhkZmV2cUc3dXp2K0tHVnhQT0pBTGFIMlVLdW9iZFRDL3Y1K242dEF2YUNjM0FXcW1yTlZ5YURMcFdzQ0wreDhWNVJCb25GSUlWT2xzTTVvZ2dZSHR6bFhtbkVIaUo4emFZWjhEVHE1eWZCeCtUUDM2N3JPRGJwRTg1V28zaXdySVpyYUQ5ZDVQN1I5dVVTWk5jVXNiQmgwcWNucnF1UTVvc2VOWGlUMG1SNVNiRFRSVHdnYVQ3NjkwNE5KbkNnV2E1MGJZVGVmdjlRb0JoMjFrNUx6NXlYZkN2UVBEMStuS0ErWGsvcHBMb0w2YWhWbFRuYnVwaFhGc1RGWHUzUmZTclMwMHRVYk5lOEtiQlRaTE5FSzlIV0tIaWhjVG5YYkNnQUFBQUFBQUFCZ09sRjgyS3V3bVRZK1BwNm90RUNZT0oxU0JLUGpqVkNkcVJpN2pJWkNhb3o1RnA1SHd3NGZSMk5PYmRaU1ZsOWZML2VDaG9XajduQjY5dGxuT1U0Z0ZVVi9jbEhVRXM0dndYbm9YL29zNTBxTlhKR080V09VbjNSK3B4VnRiYTB5NHpEb21odDlhNnAxVzBBVjBjODdhTW5UaEJUUDdoeHBYSVB1OE1QbjNuWmJUeFo5N3FxcnJxUkNhdDZSbUNtcFFSZUFYenNHNG05STRKYzRwY25tZW1Yck5TaEhEVExrdWtDREtUKzFpbDk2MHIvMFdYc1hZalhZeVhpOVRrMHl5ckc5QzkxSCtteS9hWFcrZFBPMW9XSXdrOVFHblhZTTJFQndlbkdVemQ2NWpMdHZ2MlNVS1RDeXBYdDVXbEVteWRpMTFWTXlKMzNGNGV5TTBxakJVZ2hOcUcrN05NUFdvQTh4SnpmY3UzQUdibkF1TzUvNjRHYkh1Vm9yNWl6U29OTUYwdFJVMUhwVFV3MVZLZHpyUkFaZEFIdSswdFVicCtUNGxLZjJNTFZ2K0JrenAyNWt4WnpUMDZDejcrZThoVHFMUTN3LzVDaGViSy9wZTY4ODFyTS9hcU1wbDk3WWo1VSt5Mk9YN3BDeUI3RWRpNUliNlZOaXFGTVM1cFErMkRkLzMzTXQ4T0FRK2QrWmRFc3FQbFowZjZrS0dYRE9hVWluK2haaGxFdy8yK0xIN2d2L2xISTJQdkFJdGduOFZMQy9jdDczcUdybnR1Q0owTDlrWk83a0lJMlkvR0NRSU1seVIxb2Q3LzhROGRHc0s5RHVGNjhpeWh4L2QvVTRGZG1Ocjk0S2RHYVdvS1pabGdFQUFBQUFBQUFBQUdDZ3QxVXQ3UDErUUh0TDJvYng4ZkdBNnBhNmNBN201a3hKZDV0TmpWWXYydHBhNDV6Q0VRV3BoWVlNU1gvcVF2ajlQdnVLeGs2NE9pWmhhZkx0djUxbmVCSjdXUFJFY09IT2MvTWZxV1pCWHhkUURadVkyZ28yb0VpMG93NkRicHBRMjhDRGpXdlFmZXBUbmFuZHVidnZ2dXVzc3o1UTh5NGtTbmtaZEhIaXkvR2JyNWdCT2dMQm8xalZNelo0OWIxTzFYS1VUaUtueFJTY2RGZ1NveHo5Q2s4TU90bE4wdWlGNzBYdzJyVnI1RzBndi80THZNc1QwdTNpdW12WFRuRU1qR1JNbjV3dWIyRHBnN3hVMVIwWFU0NEQvdkFST3RFWnJTVU85aFRFNlh2OHJrbXJqUHhSY05rWXE3ZGNManVyMDZzaWQ0Tk9MZzJqTVJYTGpKbUg0Vm4yYmFPY0tHZkJCcDFJQXZRVnowNDFvc0VZYXliSE1xdHQwTm56bGE3ZU9DWEhoMit3TWIyWFJKa05jbHpZTU9nWWVlbzU3NGZhY0JPOUpIQW5qUG1vamFiR1U3ZEVCQ3JLTEpYcVZta3BuWnV0QlI3cG12SDREajlCZE8zaEIwZE1meW5PWTRYeEdZazBDTTV3YlhSUXRpaDFUcENQT0QrbG1QaVBZQnQ3U0FOZk9lOTd2SGppOUNpQS9KalJOY3F5MU10RGZsbnBpY2hTZGJPdXdIQy80dnhIUWN5S29nSlhvSDJrUENWU1pvbERDQUFBQUFBQUFBQUEyT2hYdlJzM1hsZE1wYU9qdXdOdkZaUHVPcHBJb21NbHJHS0JnYTFtaTRuVUYwMXBiNXhpcWhkNktPYlBuOWZaMmNIR21paHp1dVMydGxiS3dJV1BqSXl3RjBlRHp3ZjVYRG91ZjFJaExCYlNpYnhzYUpUb0NIM200R2xVTmYvSkpoaUhyZU4xeFVWQm53dWpiY05hdHdWVWthU0NEVjFRblBSQnVoNzVZR0gzYlpDQzFGc3owdzJUNTlmWTNKenUzbnpjampVSzZvUVV6KzRjYVZDRDdweHp6a3F0ejkxMDB3MUxsaXl1ZVJlU3Bsd01PckdxQWpIVDVLVmsvTmVML0NyUUxwUGZqaG1SSzhLdlU3V2NKam1kQXBMejNabVlEODV5dEdLaG81ZkVEQnZDYjdUdGVwM3ltNjloem0rTkhTMFpDZEZEVTJaN2NhdFZXQ2ZmYnJubHFiZUUrbldrMDJrUm44RTNzQUhzbGxmc2UveXVSVW8xMGN1RDRaZThoamZJMDZGTG9GT2tPajVPUjJoWjhrRzc1WW5HSWRCOVdkWE9NQys1R0hReTlSWGp3OFRKR2I2WmlKbVF0SjJCUE5wYXJFWUF1cWhoRFRybmZLV3JOMDdKTVpza2UzYVhLOFdVUzVRNVN5UGo1SVJCeDRnRVRrbHVtM3d6ZEQ2QVpHdzVNQlJoKzhZVkg3WDhkRE51ZzlJU1h4QTIvZERuQjVtdGtzb1RXYXZnZHJIMk9NUjhjRVRCYXpiK1kwVWV4RlNGbEU4UFpYRUk3ZXA0SzNaK2NGT3hZaVZWRkVwai9wUks5QWkyQ1R3aWZhdE9qNkdzTjJlMDJQaklEeWM5NFBKTGhnclhOaGVQaG9oaEdSODN6Ym9DWmZseENmeGZBVHI4Yi9pL0MrSlhWT1FLTkk1b2ZUZFFCUUFBQUFBQUFBQUFrQUl0c3hVWkRVbDdCVVpLRWJNbGtVUzNmSGxMZUVmWFFOdHFOVVR4WlFuZWNWV1BCcC9MUjdqakhHaU9qclBxMXRiV3FnZUU2NVgzL3F4MWlYYkliaUVyUURJYS9LZWNJaVd3V2NmR1hSNUQwdVRJbEdGbnorWkdoN2lNSTloSVpxM3ZTaUZpeGpZTmRJTnFtdEI4T3JCa29wM0VSYk0wNWxmMmVtNnlpSFpzRERhSEZwanUyWjBYaldqUUhYMzBrbnZ2dlNlRk8wZS9kaTY5OUpKWnMyYlV2QXNwVWhhRFRyK3NYNjJDanpuaE4rT0pvZ1pKRzNTeDVhbFhhY1liTjd2QjhwcmVmaDBtN3hudDd0aVpBK1hvMEM3R0VkOUxOTjlydU1DbXFNNXltTENTSWQvcXdzVS9NU1pMWHB2S3kzU1JIdVAwZ3MrMUkyL0lTKzBDRExyNFhZdlU2clZIbmpQYjRVcWNTeTVnYXdRMk1xdUlyQ0pxbmlRYVRIa1JiRGZQdUI0RHFhS2lJejVBUmQ4MVRrN2ZnREFTTGliSHZ1aElPOVVJUUJjMXJFSG5uSzkwOWNZcE9ZQVJLMGxzamV5WmMybGtuSngxYnRBNVUvYkx3UzVIVmlBOVVvMXJYTXlyaW9WRUNSKzFiREVaWThXM1Ivc3hKRDhiREI5eTljRy9TV1NVakd6eUtOUjNYYnVwTVI4Y1VmQ2FqZjlZNGJHMUhYdjcvMVpJTVVGRyszM3pZdnlVU3ZRSXRna3MwY0NxNHo5bGluTzU0WXN2eDh0RE8zWDB1YXoyYk9YZkQzS0R5bWhQTmVzSzlOMS9ZaXJOOFNzcWNnVWFSM3ovYXdNQUFBQUFBQUFBQUpBTDhqcXZTQlBEM3Q5VHAzVENsYkVEYVNCUjFUNlpJZHl3UkFwRVJzU1VTRGNnbzZPN1pVRG9NNy9UNTNCR2JOUFJ3YUdoUWVrc2ZXQWx3ekRvZkJOVWltSFEwWEFaNVdOelVoOHBOdTBGRFlvV2JPTEV0SlRNMmk3Vzk0ZHFOcllHc0taYjYxYmtndzVubXVoRXZjRzZMQkp0dkRlWlFXYzhSQnFhak0vdWpEU2lRWGY5OVJ0VDZIUDMzWGR2dyszY3FsT09CaDF2NHViTDdET3NBcFNuWGxOcXgwazJqS3ZZWUhHMzdQZFpUamZNOSs0c1VJNjhWNVhYZjlJTTMxQTRYd1JUU3ZTS1V4QWxZK3hnZHV4NFhGN3BHbzRCdnhvT1JPNlNzYVZ5dUcxeGV1RWJ2Y0J1dkdHY2piZGJxOGNuZnRjaXBhajVxcTRZeDBZQ3FoakhwY3RHQ1luR3diaTRkS0pMeWRtMndDbEdDaXM2TWQ4MXg4OHBsNXY5bGx6djZaWmpYNlJoRlYvTnAwYTNJZDh5cTJmUStlWXJYYjF4U2c1Z1NIRWMzaXFYek5rYkdUTW5ERHBHVm1COEQ5elptRVNQV2g1TVF4YnlHVVR5VzhKNExqc2ZDczY0cjNhRGZVZmlCRUFMWExQeEh5djh2SFArcGpKeVNuWDJ5TVM1ZThUL0taWG9FZXhyZGdxREx2ZndYM29yNFVoMVU5cHZiRTh2ZjJiY3ZyTlpWeUQvNmZ3L2FPTGNsK0pYVk9RSzFFZnlpbjhJQUFBQUFBQUFBQUQ0MFBIS2loU2NkQ0FtSTZVT1FEUThQQnp3MzNUeVNYUzhhYWt6cFFpT2w0VmM1b1VMNFUxVWVXRFp3VmkrdklVejBKOTlmYjBTS0ttbjUxYW5RY2ZISmNVMDZLS3BtSGhpRkdESFNSOUo0NUtCeGlWcFhESzVaVkhpV3dIdnl5eDJGaDhaR2hxVUsxUWlYOUVIL2t6LzBuRzZHTGtFdXZENWlGelJVcDArVHA5bFcyM0t3d2VsRURwQ24xblFwY1E1ZWJ0bjNRYXV6ajZYMTdrMG0vTFFWNktTNmpJYkY1bm9wSUVsK1M3S1V5eVBIdGJxK0s3T0Iybjk4SDdaeG5EeG5QTHRuVDZMZzBmNTlaMWM4dk9OV281VGZubm95SHFRUmNLZmpWbVdLWGF1SldOQkdvdUUyOG5QRkdQbE5DTDYyVjE4N1RrYWRKZGRkdW1oaDg2dWhqeW0wOXExYTFMb2M3ZmZmdHQ3M3ZQdWFyZXRxaW1MUWFkOUxYN3A1dHRacit4eTRlSmdlM2VzVXRpdjB1d0doN2VwR2h6Y1pyeE45cjA3Q3crRmNWYkZjWXV2TVNReTZId3AwVjZpOFZXY09DOXo0M3hWc1lwRUJsMmlyZ1hlZC9OaXBuL0RnYW9xZHRtT2R4Ui9ITUxUcW5jb00wNmhDNFRxOWFXS294b3BxODE1TGFmTEtmY0hhZ05yR0hTS3hHeXhWMTNHdnVqTmxNTnZ6Rk9qcHlQZk1xdG4wUG5tSzEyOWNVb09RTXVBSHgrMGtzVlg4ZmtuaVRKbmIyVE1uRERvbUlyeHJPeXZuSTFKOUtqbFcwcjU0RzIxZmJNbUJwUWRGOVEyNkFLaVR2aVJGL1BCRWU1cC9NZEtJQ2Y5dHBFN2JiaTZPSGVQK0QrbEVqMkNmUjFNWWRESlBjRldCTk9obnlDMG5PUlBVV3JGNmFVak9rSmR4Z1kwNndwTTFLOUVlWndWRmJNQzVZajhCMDZWZm13QUFBQUFBQUFBQUFEUndjNVl3ZkZTQWx1dnBuNkhQajQrSHJEZ2RKby9mNTZoWitnSVAzYm1ndU9uU2RWaXV5V0ZOUnVaVnBZeFdGU3dUYmFob2NIU2xNQ2dNL0JaUnFTcytBYWRYWDY2dmpROU9vSmluTGhrb0hIUmxtL0Z6SHdWMDYyU2IydWl3L0ZGS29Yb0dJYWMrQkptVzAvWHlDcVhMVEJ6Z0VwN0QydStabzM4WElnenM2NkwyOERYdm5Fdi9mL2FleGN2dTZvcTMvOGZzUkxlSW05RVNFRXVGK2sySFZPMlBNUXFCYVUxRlY4WFRRQ2JCcnFRUlBzT0k0cWt0ZkRYb29RQ0ViQ1QwRjZlcWJSNkZjZzFMZEtkRWpyWVkvUVJmNUpjTEZDREZCVUNBY24relYvTlcvUE9yTmRlKzczUHJ1OW5ySkZSWjUrMTEyT3V1ZFk2dXI3TXBSVmk4dnorKys4ekN1enJDNkNMQkphVVZaU1ZrL3lRZDB3ZUN4NFhPL0lxVzh3WWRCbGZyZDdVbTZDOUYvTUNianhuOXpNS3AwRTBzbkViakkxWUhOSm9HR1V6SEtuZnQ0bmllM2NSU2xUUVhYWFZYei8wMEVPTEZ3K1VWYUNkemovL3ZCenl1Yi83dXk4Y2YvemJxbXRWUGFtSWdrNHpPenZMaDNmT0k2VHdOWTRCK0dCVVI2NWd2VTFNckp1c1hmQ2RuZFdtb0p1YzNEbytQajQyajl3akZtaHpRRUZIWC9WYzhvOGNKNHhVenNURXhKZ2k1akEzNXFzQTBndGZobElVZE03TUlyZmc4M0dmN0RQK29EazF2NjhFby9zMGZVU3RhaC9XcDFvc0pvL2NxcFlxNDRuUHlabkZuM1VpdjNMS2lvcjBSUUtJaWFPV0phdXdhOCswd2tTV1daR0NMakJlK2VxTktUbWVRQnl6Z3Btek5qSStaOHNWZEU3ZHFYTlR5RkZGNHdvNm51TTZRK0RhY2JtWVVqL3N6ZWxlZE5TeVRMdVkvU1J5NHdqM05INWJpZDlRcWxQUXhUZStPZ1dkcUttSHlvdEJwNGVTeWhlRm5qUkFSTGEwcituTWtYZFkrK2lxQjJicVY3NDhxVGtyVXRDUkoramZOb2hCQndBQUFBQUFBQUNnSXZSdGNUVUh2N0pWSDVJS0hqMVR5VnFiNFV0R1hDQkRYYUFUeXc5cUk1LzBZdlBtVGF4R1dMZHVyVWdheEpLc3RXRDFBa2UrMGtHSDJGeFVnc2hkS0Q5bjRMZTRaRElSL1JHcG9OUEJyS1Q4c2szVkViUUVwZC9qYm9FQVdxWWJveFNTdWNaLzhHckFLNVhja2l3NU9kcWtMT21TaytZc3pXdFpGU2tQUjN0amVHWGd4bkNCSEZsT3FwYTdyZWtKL2MwaEpUbDJuQlF1VjBMTFIybURhSGRGM2l3TEN4Vk9hd0lWeS83L2pXL2NMRXNmdDYydjczM1d3ckNzZTZ1c29td3hzaWQ3RGhsS0w3ODhUQXlQTlF2VmVPVW5PM09jUU5uc09EODVnTmljdm1WSkh1WGZOUWZYeUFzNHY4aHZpWlpQOWtRT0pNZ2JCSDJVZDJXUG9ETHBYVXJzQS9RSE41SkQxWW1UU0F3NmZySE8yOUpMcC9IN3VFdFUwTDN2ZlJkU2dkLzV6aDFsRldpa0N5ODgvNzc3L2tkVytkelZWMTkxK09HTEsycFNuYWtzQlYweUZ3dkNkNFJrQytFaU1hNFBTejBpSCtwUEJWMnYxM1BxaTFMYmIwc3lVdThmekhyQ3FPL1pORkpYRlhUSm5LZnBFYUcvS2FjZHZ5aWNTbGZRQ2F3Tm80SFdUVXExV0V3ZUNSYVhLbmFOejhsUU5qbHJwcmZrZkw5MEJaMVd5MGhNbnBnV1ppSnlodVlvc3lJRlhXQzg4dFViVTNJbU10MERtL1hTMkNvY3UrVUt1dHlGeEZUUnVJTE96c20vRnB3YWZyYThJYS9pL0RvdVZxWmR6Sms1WnVNSTl6UitXNG5mVUxxdG9PUFptaU1NWmdBZFZrNUxwT1RIcmZ6YzVRelNqSUwxZHRVRE0vVXJYNTdVbkJVcDZHVFJaclBIYjBrQUFBQUFBQUFBQUVBbTlJRnYvYkZmQXZIaUNzcjVJb1BSaVRTdU9qbGZEdkpKTCt4NFJDeUs0Ry81SXRlQk9iVURQekVVZzN6Y0wycVpnVG50aEFobUpNVXI2SXp5K3oyeVVLV0lsV1IwUUNmUndkeGlMalhXYzAzMGJ3UHpnaWllWW5hZ05pN2Z6c0JMb3BHZnc5eFJUbDJ5bEVQUFdla2tkNG55UjdueFdVb3o2aEtabnk2VFpXQVM2OUladUZJYTMrL29sVE5yTUQweGlCaWZOV2FzVzNNdXB6ck9wNUhCYVZLcGd2K1FyZEJZd0owREtxV0o4L0JIYVJzWElwSnBjUlV1Uk5vZ0g0MU5wSDhwSXBzc2hSSVZkQ2VlZVB6Qmd3ZXB6TnR2bnlnOUV0M0l5UHVmZXVxcHJQSzUxYXMvVTJsTXZEcFRpUW82T1hPMGo1OXlIeTFKbVJ4RmlrOHFuV0ZHK2xkQk56MDlMU0d6ZXVyd042YjlUa2xHT0VCVHBoTkdOamhmdnFtRHEwUWU1cVorRlVET0pYMFpLbFhRTWVSMTVMUnl6U2k1c1cwRStwYWVPMVBrTmNFNXV0K2J2elZNaS9SU0xaYWFSNVFBcVhGVTRuT21VcTZDVGhTa2JHZlJPWlFlaGs2Zm5wZGJaaFVLdXZCNDVhczNwdVJNc05BNjhpSzhUSmtyY213bzZKaVdLT2g0N0p3L00xZ1ZhVndpeVRwa1BkQ1pkckZBNXZER0VlNXAvTFlTdjZGMFhrSEhObUdERjVrK0dvbjFxZ1ZwSWtXVFNKVkQ2aUx5NHVxcHJucGdwbjdseTVPYXN6b0ZIVXYwcGZ5Q2NRZ0JBQUFBQUFBQUFBQWZjcUpYdjNwbno1N2R4cDF1dWpIRkF4QnQzcnpKVjc1UlN5Qm1YZjAzQ2VhV1huQndJWWxHWlh6TEVqdFJ3aVFxaEpIT3h2R3BkQ1EweWNZUE9ZT1ViK1RuelB6UldUNHdhRHhzRWFnTkxldU5DY21vNVZJOGZ5VjBXSEtvYUkxS05oYXh4RksxaVpDSkppYmwxMnVqaExremxGZWloakpTcElMT3FVeGVJQXE2VE5mMUd2QVdvQy9nNW5IWHNRR1R1UVhmVURpSEZYVGJ0azBhd21aN0hIMFNhTm1QakI0TnVCUjB2bmM3cjZEVEhXOWs0eXRSUVRmbmIzdTQySi85N0dlRGcyZVVVdWJpeFFQcjEzL3gxVmRmM2JUcEgrTzFjN1RpWFhycGgwdnNXdU1wcTRKdWFtb25KVjl3SHFjQUlLQ3NpNEhQTWJsTS9qdnlkS3hmRkhRc3E3RERaT1ZXMENYemtrV252Q1QraEZIT2lHMzFVYWJEM0h5ajcvUWxUUTBLT29ZY2VISnlLeDlHNjJISzJxOU0rVk83YjJkSWZTV2NSd0k4R2pxVElqbGpLRmRCSndIb1pJMnFLQXlkbko3SHJ6Q1JaWmF1b0VzZHIzejF4cFJzUUlQQ08waE1SWmt5QjZqT3NhR2dZeHBSMFBHQ3JIK0tzQ0xPSGp2NUJhTDF4cjA1RWJLeFJXYmF4VkxYYzkvR0VlNXAvRFlSbjdQYkNqb1pjUkg4Rnd5R3ljak5yWktNUVJSOW1xUjhQM0UxWGZYQVRQMnFxS0tLRkhSa1hwYk15VHBUeXU4aUFBQUFBQUFBQUFEQVJwLzUxbitCbWxPZXdTa21SbE1xY3RlaEw4bDFkYzdVU09TMEl0S0xBRnFWQWRxRERoNVk4MzNCb0dhMHlDM211bDVETG1XOEt5bzFYc0g0VWxUN0ZsZGJRY2QvMElJZ2w3R21LdWlXTDE4bWx6THpMWnp4Q2pycXRYNVhLdTJ3Z2s0UGxuRmRlQXphbUxJK3NMeVdTK1poa3B0YnlhUXN6Z3dyNkdnZ2FIUGhJWkFMVmNNS09yNi9XMUppRGRDQVgwRkhEZGJ2eWkydVJqZVREaW5vOUkrSFJocFFyb0x1d1FjZmxKSmZldW1sVDMvNnNvSUZublhXbVk4Ly9qTXFMVk1BT2xyVG5Kck12azVaRlhUMlNiVDlyWEYrMUp1UGw1VXZEQlNmaW82T3JwVHpLV2VFaDB3S09qNVlqQXdSVnJXQ2p0VnU5cUZiRVFXZFNFSHM3c1NmTU1vVnVqRzk4QldiV3o4NWxDWW1rWnRNYzNRdG5ObUptRlFrUFZsTHlKUS90ZnQyaHRSWEFubG9tTmdQVTVWbThUazFZM000VjRBU0ZYUkdBRHBHM0xqY01IUmFPRkZ1bWVVcTZHTEdLMSs5T1R3aHNLUWs4NUlWbWRHWk12dW8xTEdob0dNYVVkQ3hNbFlMTEhuNDdCOG5kbHhCR210K1BUNU1hUHlXWjJCdkhPR2V4bThUZ1p6VUw3S0RDTW1xVTlBWlA2VXliY0daZWhUamRhTDVMNjVrMCtWTE1rTE04UzhRbllySDRleXFCMmJxVjBVVlZhU2cwei9kZVlVdmZwa3ZBQUFBQUFBQUFBRGdwUEY3eHdMeDMySkVKcW1FUlhRc0txaTBBWm1vNkY1ZHZtNnYvaHRwUVNvY1hZcFQvUkpXVUJ0OGg2a3NPekd2R0tvMmRoVlJaSW5PaXYvWXRtMlNuM01WaVY5Qnh5dWVPQnRYd2MzVERSdFF0N2phRFk1UjBIR1pkblRUVkFWZDhRQ2t6U0k2eG9GY1VuQnRUQkhqU2RCQ1dTdDRYTmhXMmxVR1hBbzZ3NWVNVzF6dHNXREZ0YTNwRmUrU2o3NWJYSFc4VTkwdit5Ty9XSXBtdmtFcTJyc3pVYTZDN3ZPZlgyZVUvL09mUC83aEQzOG9SMUdEZzJmY2V1dTM5Ky9mVDRXODl0cHJkOTMxM1hqNTNNakljSW1kYWtuS3A2QnpIakQxUEVvNXVVaXhwNjRvalVlTHdZYjgxL2JaRFJZQmhoMlFSTXFNNlZxZ0hEdTRUUTRGblgwTXgwZ0lGRjlSU1ZDU0lRSXpvOW1CbTg2NE5MR3dyeS9PYzJwZkwyVDB5MVhRaWVYMWxiN3hYVXV5SEJNYnI4aFljM1h4OFVZeTFSanV2bE1oR1g0bG5FZThKZlVDc3ZpY2RyM092anVsVVBuNllnZWdZM0pJL2xMUndvbXl5dVIyT20rcFR1WXRieStBNFRVblpyenkxWnZERTJRMWNBYUpNcHFSS2JPUFNoMWJMTzk4eFY0bnMrYlBRUlZ1NmF5aUNnVmRwcTJXMXcxN0FUUVVkTEpVU3JIMEw0KzFmZWVtYnhkek5qaCtzT3lHQlN3V3Y2MEVjZzRkcXBncXFLQ0wveW1WYVF2Mk5kczJxWE8vYzdiY3QxamxRSDdRU2pJYUpzcE13OEdLMEZVUEREUTFwaGZ4RmRYcGdmWVQzLzhJQWdBQUFBQUFBQUFBU3FGZ3RKemlzRUxEbWNvNmhuWmVKcGlhR2puUXJ5Z2kyWjQ5dXpuMFVGa0ZnbExRcXFyNnIxRUdkWkpEVmNYQjVTU3p2aUk1VVRvckZqdVIvMUFWY2xGczRsZlFzV2laOC9PN3ZOTHljNnFPNnVXRmlKK3o0bzdEMFBGMXNiUnJ4Q2pvNUE5NmhRcWtSSVZRNGFrS09tcFZVeHFrVXRDeTJCeGhQdzFqOGwzWW9pcmtZbGtVemVOQzQ4ZzFCaFIwc3RIVENGSitIbXV5T1QrbkllWUFobHdPYnhZeUZoeVNUZ29mU0ZQUXliTEc3OUsvL05NaXJLQWJtQTk1bDlWY0xhRU4wVVRMVmRENWZoRCs1My8rNXcwM2ZPblAvL3pjMUJKT09PRzRUMy82c20zYnRyM3h4aHZ5K2s5Lyt0TkkrZHl0dDM3N2dndk9LN0ZIN1VsWkZYUnlRR21mRlVyNEJlT3JzR3dnQmo0VUN4eU5PUnZjbXovTXNvUFNPTVY0dnJQTGdMREI3bHJ1R0hTR0ZFUXFEUjl0QnhSMFVvS2hFeERCa2oyQ2JHSEpMK2ZtUm1RVnFUUzFGeExXeWNoTUJZN1BFZWphVUZCREpmSkNmVklaMzdYRWYxUks3MUsybnFYMkZIdktWMWtQNndPSDQ3N012dTVMOUJ2ZHp2QXJnVHppdEtuSHZ2RTVEWHdhTnArWDV1dUw3NXk5aWpCMFdqaFJWcGt5czJ6M2s5WE10a21NUENiYzhSejE1dk9Fd0ZvcUVnVXBNRk5tSjFVN2RtQlFFcGRWcytiUGdYWkxjbnRmS2w1RkZRcTZURnN0VDJxOXBNZ2lZOFJlMDlwSWVtTHZCVWFyN0NYZGVRK3MwZFQ0alNOc3NmaHRoZmM3TzZlNFdjelBFcDhPVFljTWpmOHBsV2tMdGdPVE9vZkc5eXZDMlhKbnZMWGM2TmxrVDB5UitQcmNKbmVOM2ZOQTM3eDJma1dHWmQvSVVWR2RIdWpzVkVXM3hnTUFBQUFBQUFBQUFJd093bFovMUxYazBKdGtqVlRXcmFNaUxJbE1aSk5HNGlEcGlIeUlTTlo1OUEzQ2RzZ20wQ1ZZcThZcFVzdHFLTTBNUkdlbHcyelNBbUtvMTJ3RkhkVXUrWmN2WDhhdkpITkNKbDNPZ0xwQTFnalVLVGV4cGlybzZGMGp5bWhZUWFkbFNIMTY1YlJvMndieXltSU5ZeHB3eWNtaG1reXRoQnp3M09JcW15QzFpdjltbSt2TmtRZmFIb3VCK1RpRVVwb1ViaXZva3JtVlRmc00vVTJlNEZQUWtjWEVTUnFSOFpkQ0cvYnVjaFYwaXhhOTVZOS8vR09ndXVlZWUrNysrKys3NFlZdlhYYlpmL3ZnQno5dy92bm5YWFRSaFN0WGZ2UzY2OFp1djMxaWFtcm5uLzcwSitNVkd1dUppZHNpbzg5MVZUNDNrRjFCSjRlR282TXI2VzgrcFpxZW5wWndISUd6NzJ3K3BOQzNaZmtVRG9HQUpDTWp3L1N0eEorWm5OenFWTnFJVG8rcUlKL2hmL2tyT1pWemxxT1AyM0lvNkxUcHVIQ3Ftc3dyWjNZQnk0U3ZCYlJ2cjB2VW1TTVpSNTdUUTF1VUpZZTIxQkorU0FNdGNUeFNlMEdGcjFteldqb1NxYmd3RE1XTjFJbmU1VFBLSVV1d0Y5KzF4SCtrS3lhbEhuRis2ZzZWWm12QTVMQmVWMGVaYWZqSUpXd2RWOERCZk4ybmNxWVBoZDZTN3BlaU9oT2pVYkdHcVRuSjJYUjhUaHNaY1RuaVowT0prL2NPUGZmUDBSZXBJaEN5ck1SemJhMmRLS3RNTXFBNGlkeE1wNWNhWjRRMDMyeUtINitzOVJieEJKbU1ORUU0bTY3SUdLQk1tWE4zdjVUdWFPMktySlAyR3BVMWYxYTBXd1pTOFRCM1ZTam9raXhiclZ6WkxEOEo5TFdiV3ZGaVhNZkpUaDdvMnBBbEZYUEcwVFc2RUw5eEpFclRTMi9KdnNaZnhXOHJPcWMwekZsajFnR3lSeWZ5cDFUQkxWaUU4YklLY1hjbzJkZHorenJGM1hjcUpMTWlXNjJ6SXYyZk9aUlZZMWM5TUxEc3hLd244UlhWNllIT1RvbGhld1ZVeWdBQUFBQUFBQUFBZ0E5OWdONUk3QlFkQjg5SVpaMm42MkJmTVVtdXpLc1RiUWZjdUxvUXlLR3FBdjFJUGxXVkVYVE9nSllMQ1UxRy83S1VUdDR5TXNoem5aOUxwbjlGOENQbGNJTzFFR3ZIUEhacGRsMzgwWDZYTXhqOU1qNGE3L1lkeFdXeGhqRU5mS093YXc3T29CVmNPcjh1MmJZNWh5b2RVT0pHTGw4WHFFc3o2dEpPS0IvMUUyTms5VWZ0a1AxSVMvYnVjaFYwbEh3bm5yblp2djJ4eUFCMGwxenl3ZEoxYSsxSldSVjB5YUhuMUVaeXh0Y0txN3hpa0RPcElmODlXYzRHVTJiakRGVFMyTmlZVVpSOUo1Y083cUZWZklGeWNpam9kSUFMU2F6bDRMOEQrbzJ3YlVWallCeWVHckZUZERJRWl0cnkrbXlYcmFFRlRzNWVzUENHTStkVDBBV1NQWUtadXVZNzBnMzRqSTV1eE5nK0k4bU9seEp3c0ZLNlB6Ui9JSjVxVlozSDExbTdrZkU1bmNqWmRPclE1T3RMK082NTBzUFE2ZmFYVWlCRHM1NDdZaWQ2N3BSYyttWlRwdkhLVkc4UlQ4ZzB2ekpsenQzOWd0M3hiUTIrSG1YS241VndSeUtuYWt3VkZTbm80cmZhUkFWQWsrYzB6WGsweVdsRm8walpXQU5EVDBRWUUrZ2FsNkNsNER3MURIR2owWVdzam0xUE4vazJmbHZ4L1JnekpLL0ZGWFR4UDZXS2JNRWk1Ylg3RXY4cm9ualFZMEYrWHcxNTlMcTZ0VVhtbE5CVkR3eVlLSEk5aWF3b3FkRURmWjBLaDhzR0FBQUFBQUFBQUFDS29POVJiU29DakJIdXBnb3hXeURTblpIYVlJUkc3cEFGZFlJclhCY09mUkZzVUNSUEJNdXFXOXZVTnFNM21rYVUyRmtSbVJ6OUV1QmJYUHRhd2RnSUxkbTdTMWZRWFh2dDFTVTJiM2IyNWR0dm40aVJ6MzNvUTVjMExuS3JOT1ZRMENWekozcnIxNi9YSjAwNjRJTkJjUVdkeFBvSUJCMEtueEhUaXhKTWlacnFFMlR5VWJ0a00zckV5ckZ3T1RrVWRNbmNhZWJFeElURTArQnZwZGU1RlhTSkVnNFpUZVdvUjZKNW96L29vN01pTWdMM1dtc1N1RjdqaUZEM2dndmtROXR5RlhUY2pJQU9LckpyNFZOdkRyY1M0ek5zSCtPMDJsZHMyTUVpdTIvY08yYThrbFZCWitzZWpTUjlpYy9wZzI5bjAzM3hlVjNXdm9pZkJ5Wkx1V0hvZE1kTEtWQmdCemJPOFRrYW9UTi9PQlpUL0hqRjExdmNFMlFpeUNRTnZKSXBjNDVHbHQ2ZHJEMks3MVFxNFk3RTl5aTFpb29VZEV6TVZzdXdaTWlwcHM0QnQ4cGUwb2RjTjljN3V4Qy9jZlRtNG1KeFR0Nms5TGZ4MndxVlF6V0tPMUUyMm9XZFVzUDRBZktOVHVSUHFTSmJzRjZGNkVYcFMveXZDTkdHRlo5UStyOGdjRzVHZW94NlpjUWM2Nm9IQnVaNy9Ib1NVeEZUandmNk9pWDZRN3RoQUFBQUFBQUFBQUJBY1JxL3lIVm1ac2E0S0ZEUzRPQ1NVaTVVNWVnNk1ha3AvVUFicm9FRHRhRXZZWVJVcWR1d01JbFRhNE1OOGkyY2JWZ0orNWQrbE1YcVNKZ0RDSCthaTViczNhVXI2SllzT2VQZ3dZTmxOZTluUC91WEdQbmN4ei8rc2NZVmJsVW5uNEl1a3RuWjJlS0JQc0FDWkd4c3JNUXJOZHNBMzdMYWRDdjZBekpVS1lxWGJrTldtcHJhMmF2OU1yZzY2ODNrQ1MxM0cyb2JHWTFNRjluSXJQbUJqY1ErNVd2bFN5eVo1YjVVTFAwcjBjRHFCOXZLZ2dVZUNBQUFBQUFBQUFBQUFCdDlrYXZjNEZZeldsQmtwRkthRkttZ1c3VnF0SGhkT2REeUZXZ1lGZ0phZE5GYVZSVW9UcitvcXFpZHRBalRPa21KSExJVTNmSkNRKzh5L1NLTDNiVnJGdzg2SlNpM2M2Q2orRGE3ZDVldW9LUDA5Tk5QbDlLMkF3Y08zSG5uZDFMbGMzL3pOMWN0V3ZTV3hoVnVWYWVDQ2pvQThsRktpQmdBQUFBTG1kblpXYmtobXNOazlYbzlXMjVFVDZhbWR0SzNrQU1CQUFBQUFBQUFBQUFBZ0Q2bEpmSXRyU25TNmJqamppMGVHYytPc0ZSUlJmbG9nNGdSMUliMnhqYXJxa0J4OUEyUC9hS3FBdm5RV3hnaStDMFFkQkMvalJ0dmJiQWxWU2pvdnZ6bEcwcHAyOVRVVktwOGpwYktJNDQ0ckhGNVd3MEpDanBRUDcxZXI2eGJ6d0FBQUN4dzdFc25SMGFHUjBkWGN0TFBmWmRhQWdBQUFBQUFBQUFBQUFEUWZ2VFIvK2JObXhwcFEwRGtWbHg1RW9oeEo2a3A2WnFPVWpYUTBFVzZvRTYwWUhMZHVyVk5Od2RVaFhFL05XSjhkWmoyeENJRHRkR3F2YnNLQmQzWlp5OHRmcEhybi83MHA3dnZ2anNzbjd2eHhxOGNmZlNSald2YjZrbFEwSUg2NmZWNkNFQUhBQUNnUkthbnB5Y250NjVmdjM3Tm10VWpJOE1pcGFPUDlKQTJuYW1wblUyM0VRQUFBQUFBQUFBQUFBQ0EvR2lCMmZEd1JVMDFRNGR6TVZKQjhVbnFMYTZEZzB1YXVyaFF0NjJwYTJSQmJiUktkQUVxWmZQbVRUTFF5NWN2YTdvNW9FSm8zNVN4YmpZV0dhaU5WdTNkVlNqb0tEMysrT01GRy9iclgvODZMSitqbHA5MjJxbU5DOXRxUzFEUUFRQUFBQUFBQUFBQUFBQUFBQUFBQU5CbWpGaEpUZDFBWjRpTGRDcW82MXUrZkZuNFRMT3B5SHN0c1R5b2pWYUpMa0NsdENHMko2Z0JJNEJxVTJKc1VDZHQyN3NyVXRCOThwT2ZLTml3eWNuSmdIeHU0OFpibHkzNzg4WlZiWFVtS09nQUFBQUFBQUFBQUFBQUFBQUFBQUFBYURuNlpza0d3OUFGZ3NYbGxxQUVoSG10NmkvdS91czhiUk5kZ09yUUFlZ3d0YnVOanA1YS9NNXgwQmZvdmJzTkVTWXJVdEF0WHJ6b3Q3LzliZTVXdmZMS0srRUFkSmRlK3FIR0pXMDFKeWpvQUFBQUFBQUFBQUFBQUFBQUFBQUFBR2c1aHN5c0tXM1B6TXlNRHR5azAzSEhIWnN2dG8rK1g4K1pDbDRSbXh0RFQ0VW9WWjFIaXk0YTFHMkNHdERyR0kxNzA4MEJWVUhiaDk1TmNDL3pRcUNGZTNkRkNqcEtYL25LbDNPM2ltWkhRRDUzelRWWE42NW5xejlCUVFjQUFBQUFBQUFBQUFBQUFBQUFBQUJBKzJsSkdEb2R1OGxJeTVjdnl5cWkyN2p4MXZCcFpvTWhneENBYmtGaGlDNjJiWnRzdWtXZ0t2UWlsbHY2Qy9vQ3JkQkdBTG9GUWd2Mzd1b1VkQ2VlZVB5K2Zmdnl0ZXFCQng3d3llZHV1dW1yeHh4elZPTjZ0dm9URkhRQUFBQUFBQUFBQUFBQUFBQUFBQUFBdEorV2hLRkxnbEhqamp2dTJQaUdCZTZFbGRLYUVyZVVHOFNHU3J2eXlpdDBnVndtMmNyWmNYcXVieDdrdEh6NXNoMXorTXhGOXVTaFlZR2xiNWlrQkI0cFg1NTE2OVlhRDZsSkhiN1l0RVNGNnJadGt6Ull4dGdsbmhHaFViTjFwSU9EU3pnd1dtQ3V5ZlNoYkFGSFNuVUplcmhyMXk0anRpUTNvSlBTTWlPUVpwRUFkUFpBMHh4SlBIT3F6UU5ka21sYmgyR3VVZ0xRa2YvUTJvakZ2TFcwTUFCZFVxV0NqdEp0dDIzTTBhUjkrL2I1NUhPMFVwMTk5dExxR3R6bUJBVWRBQUFBQUFBQUFBQUFBQUFBQUFBQUFIMkJGdm13SnFjUkF1ZituSWFITHdxZnpvdmVJNXdhbEhab1V4Y1BZbVBJYkRodDNIaHJxaDdHVHZmY2MwL0FYQ1dLTG55dnQwU1FVQzRseWxPZFFSb0RJMEtqNXBPU3JsdTN0aDVobGUvMUJoZVo2dERXTHFMUkRReTBiN3hhTzlCZHZiTllMN3hsQmFERFl0NXl5dDI3eTZKU0JkMFpaNXorNnF1dlptM1MwMDgvN1ZQUWZlUWpsMWJYMnBZbktPZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQTZBdjI3Tm10ZzZ0czNIaHJVeTNSaDlTK05EaTRaTjI2dFJ5Y2g5bTJiWktlR0VHUUFxODMxYnRkdTNicGxoUzgwRk9VTm13UXNjYk16SXpvSDFpQW9iOWl6WU9FS2hJVnpkLys3YldTalovUVdQQkhjZzliZENFbGFQaEZMYnFRUWxJYlFCNVlqcFhiaEZhWUZGRVQ2ZkJIcTFhTml2T1RSeVdlRWFGUkU5dktOSkU1UWkveVE5YnQ2SGVkd2lxZkl3VmNncXZRcit2UWFoM1QyQmhMYU83ZWhRZWFuOGNNTkJkQy8yS2dTOGVRT0pZU2dBNkxlY3N4OXU0ZHJZbXpWNm1DanRMWHZ2YjNXWnYwOE1NUE8rVnoxMS8vdVVXTDNsSnBhOXVjb0tBREFBQUFBQUFBQUFBQUFBQUFBQUFBb0Y4b0s0QlNRWXlMMHFwSUJYVnJSU2hMVDZWTGN3NldvWCt3MzlLMTIrM2hKenBTbnkyNnNOdnZGRjNZNGY3czE3WCtKNnNSMmd4NW1uWThGa0VWTE1vWlB0RTNJbG9pNVhzU0dJNGsycEVpWFNLWm0rRDhoSzhsN1F6NlBzMGlHbDFSVWptRlo3NmxvNFVETGRFWHl3clIxaEtNSGFxc2NLWll6RnRPdVh0M2lWU3RvRHZtbUtPZWYvNzUrUGE4L3ZyckV4TzMyZks1VzI3NTVza25uMWhwVTF1ZW9LQURBQUFBQUFBQUFBQUFBQUFBQUFBQW9GK1ltWm5STWR3YTFMZjRiaVFzSlRWNDlyMXg0NjI2SlVYMFZBd0xPWnc5Y29ZdFltMkdvWGtRUlpNV3V2Q1RVa1FYT213UkIydXlYNWZ3UGczZXJsczZodEptM2JxMVJVcVRTZUVNZUdVSGttTHZzbVZVRXVQUmVMY1VZWlVSeWNyM3VtUXVZcEJXWVVnbGkyaUh4UGhPRFROL0ZUUFFvdWlUSnhVTk5EY2dNTkN0a2hzVng1QktsaVUxeDJMZVpveTl1NVNvZzJWUnRZS08wbFZYL1hWOGUvYnMyZU1NUUhmeHhSK291cDB0VDFEUUFRQUFBQUFBQUFBQUFBQUFBQUFBQU5CSEdEcVFCbU8xUmQ3SG1pTTFkZlp0WFBKWVVFL0ZCSW9TL1lOT3JJVmd6UU5aZU1PR20vVFZ0enJtRlQ4Sml5Nk1sSGhFRnpweGdVN05obDFqdjZPVk5zV0RPdG9TS1kwOUlteGVlWXYrb0NRWGEycmpSd3Fyd3VNWTZSSkdhNHNZcEQwWVVzbUMydVB3UU50R0RnKzBia3hGQTgzUEY0aUNycm90RW90NWF6SDI3cmIxcXdZRjNhSkZiL20zZi92WHlQYjg2NzgrWWN2bnZ2Q0Z6eTlhTkZCMU8xdWVvS0FEQUFBQUFBQUFBQUFBQUFBQUFBQUFvTDhvVi9hVEcwT29VRllxUmJlV0R5MVVLQ3R5VWFCVHFhS0xzR1g0SVVRWHVTbGRhVk5RUWFmVDh1WEx0STRVQ3JxQzFDbVZ0STBjSG1qZEdDam9DbEt1Vk5JQWkzbHJxV0x2THBFYUZIU1VsaTE3MTRFREIyTGFzM1hydzdpLzFabWdvQU1BQUFBQUFBQUFBQUFBQUFBQUFBQ2d2ekJFQWcyS0g1d24rMFZTZzRKQVE5OVM1SkpIVGN6RmY3NDdHVGxzRWNjc3NrdmdkOE9paTlRck8rMUM3S0tZamwzOFo4UXNLa1ZwRTNPTHF6Mk9PalNaQ0wwTWw0Z1VWdWtiSk8wTEhDUHZndFExZHVNVzE4MmJOK21wWGFKVU1uQ0xhK1JBRzY3UzFFQjNSa0ZuU0NYTERXZUt4YnlkVkxSM2wwZzlDanBLWC8zcWphbU5PWGp3NEhlL2U2ZWhvTHYwMGcvWDA4S1dKeWpvQUFBQUFBQUFBQUFBQUFBQUFBQUFBT2c3alBCWkd6ZmUya2d6OXV6WlhlN3haVk1kRVVVQnB4TGo0TEY2d2FubFNCVmRzT2FCYk1MWkRPVVBQd3lMTGxKVk5IWWhkbEdNcUJSYXFFL0lnUlovbHFYYmxGbnBkT05VQlYyaXhMRkd0a2hoVmRpUjRvVlYxQXgrVW00SXIwYWdxVjI2VkZJa2VjNkI1cTlTQjlyWm5wb0hXaGJ3SzYrOElvY2Qyb1lzbGM0RnN6aFl6RnVJRWYydndSaTJBV3BUMEIxMjJLS2RPM2VHRzdOdjN6NURQa2YrY01RUmg5WFR3cFluS09nQUFBQUFBQUFBQUFBQUFBQUFBQUFBNkVldXZQSUtmZkRYMUZINHVuVnJ5enE3YkNyZ2xSSFR6N2hYc1NBNi9oVU5HUTNUeG8yM2t0RzJiWnQwUnBRaXFIYXRlWkRtRFE0dTBTWHp1NldJTHJoaGRnTWs2aEhWd20yZ2Y4dXlUSU1ZVGx1VzBrWTdFcG1PaHA1S0p0T3hQTWtaU0dyUG50M0dsYUJPY1V1SndpcWpBYnQyN1RMOGtOcE1lZmdKZGFFVXl6UUZqWWowWmFBOHFhUWVhTEtxTWREaUFPR0JsZ1VjQTEwS2hncTZDdkVuRnZPMlVlbmVYU0sxS2Vnb25YMzJmOW0zYjErZ01mLzdmKzh4RkhRclZyeTd0dWExUEVGQkJ3QUFBQUFBQUFBQUFBQUFBQUFBQUVBL1lvdER5cjJ4THI0WitnaTdTR3BLQkdpWWNkZXVYZFdWTDJuVnFsRWplSTYyZ3lHWjBQYy9Tckgyazl5aUMxOEQ3TlFCcFkxeHAyZTVNWXVNd2lYUjNIU2FsSWJQRUZZNU5UWWxDcXVNUkE5OWZ0aUJLMXlya3hrYkYwZnFnWFkrdHdkYWNtbzdOekxRSGJqQzFkaUdhTzVVcEtUQ1l0NHFxdDY3eTZKT0JSMmxhNis5SnRDWVgvN3lsMW8rOTRVdmZMN090clU4UVVFSEFBQUFnTll5UFQzZDYvV2Fia1Zqek03T2J0LysyTVFjazVOYnlScE50d2dBQUFBQUFBQUFBQUFBdEE3amdzS21BckFZZCtmcHhNRjVOSU9EUzV3NW03b3YwdERZVkNFcW9FR2hXb3lSMnJEaHBualJCY0YyMHpwSnpseWI2SUtlbEg0cll2M1lVNmIwS25Sb0x4NHk4dTE0QlYyaU5EWnlTV2pOd2lweU5pcS9uZEdjNGpGRWJ2YnRsZ1dodFVLdlpqVFFOTTNqRlhTNmhiTHNZS0J6WUlqSktWV25wTUppM2g1cTJMdkxvbVlGSGFYNzd2c2Z2c2I4L09jL0Yva2NiVEZubnVuK1NiWXdrMDlCMSt2MXhzYkdSa2FHaDRaV1VGcXpadldXTFpzcjg1ZUZ6c1RFQkZtNDZWWmtnN3hpL2ZyMXpxOEtkb2ZlWmErekV6bGs3bUtkVUJlbzJITExEQkF3V3YyVjB2UFIwWlhHUTVyNFRqdFBUZTJrNTVHTFFNMVcxVGlkaDdwSlBxbXp0V1RHVldHbzRtV1NaUXh6OVMrR05Wb3k3bUZxR01FK01zdjA5TFJNYXQ4NlppZkthY2pNV3VMVk9iWUFXbldkSFp5ZG5hMm9rZlZRNHVwWDNWNEdETnE4VmdBQUFBQUFBQUFBQUNDeFlsNDFwVU56UnVZWnNBNzlBMXE3UmdMb0dlM2hTeGhCVnlFZjA5S1hwc0kyZ2hwb3ljSUlhcUNQbEZTZ0xBeDliTXYzN3ZvVmRFY2VlY1RVMUU1bll4NTU1Q2Vpb1B2c1o2K291aVg5bFp3S09qbXhYYjkrL2NURXhQajQrT2pvU3ZvNE5qWldzZU1zVUxJZUpiZEJEQkJRQWhROEdXZTl4SVNMMGsrOUY3S0NqcVl6ZldYSU1HVHVPNS83MWxpRHhoVjAybWRvK1dJbHNGNitzcmF3SXRsQU94VjB0WGxwRFdJTXd4b05lbVk4Tll4Z0g1bUZseWxhZnlZbnQyN2YvcGlkZ1ZWU2VzcnpLL1JRaStpeWVuVkZtMnpXWmxBYitEOWhvTFdYMTJUNmc4ZXIzNFZNSlhwZGRYc1pNTEJIRFpvNkFBQUFBQUFBQUFDZ2JheGJ0MWFmQURaeWxPeUx3RE9nd2lVRjduc3RQVHhVREliR3BnTjNWb0lBZHFDcXBtNE5CbFd6YmR1a01iWDdQY3dhOEdISTUxcXVwQUtsMEhkN2QvMEtPa3BMbHB5eGQrOWV1ekcwUEVvQXV0Tk9PN1Z4MFZxcmtxMmcyNzc5TVQ2Y05ZNGQrU1MzY2VGV0o4bDZsTnlJRUN1K0RhVW82SEsvbm9tRnJLRGpHVzBJQ2RnZ2xBeXhDa3NVSW10c1hFRm5QK2YyVDA1dTVZOVpXMWhSanhhNGdxNEdQK2tqcVpnQUJaMG1WYnJ2MUpLeFNrb2JJYXRYVnpRTE1oWEwwZEtjOHFUeDhYRzlvUFVqSlhwZGRYc1pNTEJIcmMyckJ3QUFBQUFBQUFBQXNHQlp0V3BVSHdJMm9pSXcyaUJKVHJlTm9ER1NCZ2VYMUs5dnNZL2dvYkhwTUxaOERvR3F1b3B4VVMvOVhkMmRucUJaRFBrY0lnMHVCUHB4NzI1RVFVZnBnZ3ZPMjc5L3Y5R1lCeDY0bnhWMFYxLzlONDByMXRxV2JBVWRIeS8yZWoxN1dFZEdoa3UvUmhQa29PVUt1b0pBUVZkUHBheVZOY0w2alk2dWxEQnU5dlBJR2x1b29Pdk4zZWlYTzRybWdsTFExVWI5Q3JxK0FHYlJwSzZaUG8wWlI1NnNydDRhaWczSTVLYW5wOXZ3TTZBSUpUcGhkWHNaU0tXUEZoTUFBQUFBQUFBQUFHRGhZQXVFNmhmUkdWZGs2clI1OHliNjFuZGtXYitXeVRpQ2g4YW0yOWl6bzVHWWg2QUdJSjliT0JqeXViNVFVb0dDOU9uZTNaU0NqdEluUHZHeE45OThVemZtKzkvL1BnZWdHeHhjMHJoaXJXM0pWdEFORGEwWUhWM3BIRmFjbExXRU5oeWRRMEdYZzFZcDZHWm5aNDJ2K01tV0xadEhSb2ExMkl5Zmo0K1BSOWJZUWdWZDRsZmF4QUFGWFJWQUt1WUVadEhrVnRBVjNFZmFvS0FMZDZFTlB3T0tVS0lUVnJlWGdWVDZhREVCQUFBQUFBQUFBQUFXRkcwUTBRV2l6UGtpMUEwUFgxUnpJL3YwQ0I3a293M3pBdFNESVoranRHM2JaTk9OQXBVQStkd0NwSC8zN2dZVmRKUysvT1ViZEdQdXZYZkxiYmR0dlA3Nnp6VXVWMnRoY2lyb2ZEb1QrNlJzeTViTm82TXIrYW9zK25aNmVscC9PekV4d1dlWE9wdkVBNW1jM0NvUGpRTk55czlQS0ROSGtxR2NSaVNXMmRsWnlzUGZjZ1lqQWttNGR1Nk9IWk9LdWtEZHQ2TytVRjFVaUs1VWl0SVA2Vi83b3R0ZXI4ZEg0ZHhUeWs5NWRHdjVkZjNLOXUyUHlTdlNOUTQ3WXlkNVM1dVV1dFk3TkpCZ2tTNU1UZTJVOXBEZDdBTnJveUxkbmRTQk1JaFVQdkF3VVV2a3NqWXEzTGpIVGZlTDh0TzNsSFN6blllL3hWMkx5V1MwUmlxbGNyUmNsaVA1VUFsVWtSNUJmcTRuaGZaUDI5bDhSK3BoLzB3OGJwOEpuL01ZSVpzaVo1d1VhQ1F4UmVyRW9YckZQeWtEVDMvNVZneWxMUk9ZR2pFTG84LzQybTJvVThiTmhocHVwN01MUEhER0xCTlNmVmdJVzVWS29CZjFzc2s3UzlqcnVBSFNWSjd2aGpYeUxVMnBDN2hCd0kzcFJYdDdOVm9sYldiOWozT1V3NE5pakdCV3N5UVJwbmFPVWFZdGxRbjhoTEE5eE9sNFEvNFlkTHBUa1Y1ZGNKTk4waWFhTE1zeVUreHRTd2h2aGVSTHVuRGZyREU2Njl4WlVuMHladVV4akZERFNxWEp2WmVsRHFpUSt3ZHRFcHhRV1dkTjRKZVA0VmUyNllyOFltZTBZNFNYOGJEWEpVR1BCUUFBQUFBQUFBQUFRQ2swTGhhaUJtU05hckpqeDQ0Nlc5aS9SL0FnQjQzUENGQWIyN1pOR3ZJNVhOVGJWU0NmVzREMDlkN2RySUtPMGgxMzNDNk4rZjczLyttMjJ6YWVlKzQ1elRhcG5TbVRnczZBVDhmbzN5MWJOdk01S1NWOUJFWmY4YkUxYTBzb0cxOFJTMy9iRC9XWkk3OUl6L25jVFk3enRIQ0ZubkFKOUpDU2xCeFRPMmVnUCt4RGVjbzI1THJFbGtzankzQ1o5SzRjV1VwTDZGMjJpVDRQcFd4eWdNZ2Q0VUlDT2k0KzVLVnMvQW9mTDlJZlZCYy8wZCtLVGZqR042bzZQQnc1dXNEdG9TZjBCMVZISlhDVGZMb3NvenVwQTJFUXFhRGpCckE5dFpQb3NlT2lxR3FwMUNqY1BzUXZ4Yld5R3EyUlNxWDdvdW5pR1NGL2lQTVlINmxrcm9XYnlqb2Y3V3hPYVVTcWYvcmMzdGx5SHo3bjRkcGxza2ZPT1A1S1ArSEV6VTZkT0pTTnU4a1p1QTFhNXNHdmhCZERUZXJDYUhkTlAyVGpTM2Q4MGhUdE1FWWZSWjZoZFlCMlRwOFBhNFA3ck1vTllOMExaZUNWaWdwUDlicGtUa1hEcWd6S0lOWU96UGVZT1JXemdCdGRDN2h4WUhTTWp5eDQxb1U0dHovbm9CaFRQcXRaWWt6dEhLTk1XMnFTOWhPQ3E5Ykd0TDB1OGZ4aTRWSFE4eWpTcTR0dnN1R0p4dCtHdHkwaFV4Zzk1NGh3Wi9VcVpDOVRrVDZadXZJWXI5ZXdVdGt2WnQzTFVnZlU3bFNPSDdUaENaVjExaGkvZk9oMXRpMlZFUGFySXIvWWpVTDQ3L0RtR1BhNnhPK3hBQUFBQUFBQUFBQUFLQkduWktoT2RZRnh6QjFPTmN1Wk5tNjhWZGZlWDBmd0lDczB1SWFlRS9LNXJtSXZPNURQZFJWRFBvZGxmQ0hRNzN0MzR3bzZTdmZjY3pjMzV2Nzc3MXUvL291TnQ2ZWRLYmVDam5VRittVE5pUEtVekorMWNkd3plY2puZXM2SDlvdnloTS9qNUFrZkx4cG5qbndtSGxNNy85M3I5V3l4aWhHeHhDaU5MR09jOGZIcFowOGRVL0lUT2ZQbDQwWDlsaTFxTW82U2pXZ3F5ZHhKcGY1b2E2THN2dmlHSTE4WERKdGtWZENsanJoZHVQTXJ6WkFWSUlWOVVvekF4OVphZ3NWdUU1Q09KQ1c1VnBMUmFJMVVhdGRMenM5em55MHBhZ2MrUnBlM2pIdnhFbXMxc0swYTQ1K3BiaCtEN1R4VXRVaVM1R0hXR2VjVWU2Uk9ISDdMVmdtS1lUbURMUVB6K1gvcXd1aHNLbGRxS05uSVVMN2J1dlc0MkVJT3F0RTVMakUrN095T3N3RjJnMU85amh1ZzI1WTYzeVBuVk9vQ2JuUTU0RXZ4Q2pyZEt1ZjJGeGdVZXdRem1TWFYxSWxuakRKdHFURS9JWkxzdDdpeUJJN05wVWN0cTFmbjJHUmpKdHJRZlBndnd3NU8wV3hXQloxZGV6SXZFdE1yakhPWk10N3krYVE4c1ZjZSsvV3FWeXBOanIwc1psZHlkaXJyRDlyd2hNbzBheEwvTDUvd3o2R0N2OWlOUExaWmpFYW1lcDJ6SXdBQUFBQUFBQUFBQUtnQ1cwUlhjNGllNGVHTFlrNHFqenZ1MkRwYkJkM0ZnbUxIamgxR1JETEk1N3FLZlhrMDVIT2RwUEd0RFRSQ0IvYnVOaWpvRmk4ZStNRVBmcERNaGV0OC8vdmYxM2g3MnBseUsraU1VQjZNSWVEaGt6V25GaVY4bjVmelJYMzBLUUZHc2haaVN3V01RMTdmV1RhL2FOKzJ4Z0UwOUJNK2w1Ump3U0VyOGdZZlpRWVVkUFlyQnZZaHIzTTRqRVBZU3J1Z3lURVFHdWZWWUhiTFdYcGt2S3RiWlFTbGtjNkdqNFBMY3ExTVJtdWtVdmxXUkliaS9NWkVNQVFBemxOdjIvSjJCOFArbWVyMk1maWN4NGhsbDNYR09kMDFkZUxZR1pKRHJaZDFhcVF1ak03WGJURkQ0bkU1YVdGZ0tIM0UrSERrdDc2cG5kWHJrclQ1WHNXY0N2dFN2Rm9wTU1xcGcxTFFMS21tVGp4amxHVFpVbU4rUXRqMTJqam51eDFKTEt0WDU5aGtZeVlhdDgzWWxYeDl0QlYwSEQxTU1QUkl2aEZ4TGxNeUtLWDRwUFAxcWxjcVRZNjlMR1pYU3UxVXpBL2ExQWtWUDJzUy8vSVkvamxVOEJlNzc2UHpTUkxoZGI0MkF3QUFBQUFBQUFBQW9BcHNwY0hnNEpMYURwMnBvcGlUeWcwYmJxcW5QV1FOUTlUWGowZndJQjQ3SWhua2M1MkVwdmFxVmFQRzFONjJiYkxwZG9IeXNVTktRajdYZWV4Zk1uMjZkN2RCUVVmcG1HT08rc2xQZnZMakgvLzRyVzg5dXZIR3REUGxWdERGbjdybWZ0RTRaZFo1cHFlbmJTVllqdHI1eExZM0g0dUdRNkRZSmZ0S1N6eG4zL3BoYWdhN2NBN2M1THRLekZsbTd1RW9xd3RaNjAxVjBFMVkySW9JVzZtU0twTkliVnRacnBYSmFJMVVLdCt5R2ZtQVc1UUFmQjljTW4rYWJ3UzNzWjB6YlBtWXhxZTZmUXkyODZ5ZnU1bk9FQVprcmRyWi9ud1RSMXN2NjlSSVhSaWRyenNMZExxYzNXeU83QlJ6bDI2TUQwZCs2NXphT2J6T2ZsakRuQXI3VWluYlgrcWdGRFJMcXFrVHYxQ3c0SlpxUHd3dlg4bThEa2ZtT3pXQWxWbzBFRDBWWlM2clYrZllaR01tV3VxMnBiRVZkTHlVU1lvWmtWUUhMc1VubmE5WHZWTFpuY3EwbCtWYmZuTThUSjFROGJNbXllSkN4WDhPeGVUSnR6bjZPZ0lBQUFBQUFBQUFBSUNLY01yR2Fndk5aQVNOc2RQZzRKSjZXbUxyTHVvVUU0S2FJYmUzZlcvanhsdWJiaGNvSDVyRjNWRFhnRlJvNXpKQ1N0THVCdmxjdDZHNWJBdzZ6ZmMrbmVBdFVkQlJPdUtJd3o3NXlVODAzb3pXcGpZcjZHSmVuSjZlbnB6Y3lzazRibzQ4MmRRbjZWa1BUNU41YzBrYk9LV3FhSXlIemxhTmpBeVBqNC8zbEFiQTk3cVVZRFFqeGlCbGRjRnVUTGplVkFXZDg2dlVCcFJ5Wk13VWRLMnNSbXVxVXJramp3ZmRGbmZ4YWI1OWNlZnM3Q3c1cXROaGZJZnNZZjlNZGZzWW5NNURUV1ZSaldnU3NzNDRuMGdneDhSSkxiYWdoQ05TNFJCQU41dE14eWJsbmhxU0dDY0JINDdwVGhLMFd5YXZzeC9Xb0tBTCsxSXAyMS9xb0pTeURBWk1IYkJBd1MwMW40TE8vc1ZDbG1jcG94Z25xMWZuMkdSakpsb21kd3BQbjhnUnFVMWJsZnBWNlN1VlFkYTlMR1pYeXRxcHdNUEFoSXFmTlVrV0Y2cGlsTXRWMElXbk5nQUFBQUFBQUFBQUFFckhWaFBSa3hxRUIxU0ZjZlp0cEhyaVJHM2NlS3RSTDhJV2RSaW5wQW9YZW5ZU1cxSkZRNzlueis2bTJ3Vkt4cW1KUlVqSnp0T3h2YnM5Q2pxa2NPcGZCZDNVMU03UjBaVkQxdlZ0V1d2WHQwM1IzNUdxTU1GdXdOQ2h3V0ZpVGhMdHdudTlIbXQrZURoNmh5b3hmSWY3emxSUEYrekdoT3R0czRLdUZOZkthclJHS2szbW85L016czd5SC9LY3d6U1I0L0h0YjFwa01qMDk3ZlMzVkFWZDJEK1ROTGVQd2VjODFINDkwN1BPT0o5SUlNZkVTUzIyY1YySzBXd3lIZm1BQkwraXYzMDZ1bFFmanVtTzNRQW1oOWZaRDJ0UTBDVkJYeXByK3dzUFNrR3pwSm82YklFaVcycFpDcnBrWGk2bDd5TFA1TlYydmFtTEdCUjBtZktYcnFETHVwZEY3a3FaT3VWOEdET2hJbWROQWdVZEFBQUFBQUFBQUFBQWltSGZhRGs0dUdUSGpoMVYxN3RodzAyK004cmg0WXVxcm4zUG50MUdDTDRCNkM0NnpjYU50eHFTS2dRYjdDVDJ6YTJVNkVuL3FtdUFEenVDNkFCQ1NuYWRUdTdkVU5EMVM4cWtvTnUrL2JGTUYyQlZwNkRqa0IxalkyUDZvcXQ4dGN1cEs1ZHB4OW9LbEpiRW5lL25VTkF4MDlQVGNzcHYzQVRuUE53UE5LUHFMZ1FxNmk4RlhWbXVsY2xvalZUS2NEQWNqcjJqcjFUakp0Rnplc2lCZlJpV290RVRJM1pUMlBLWnBCRSt0NDhoNER3eDBhSjhWY2VMQkRKbGFLY3V4ZGRzV2h0WkdPYmNJR0o4T056eVFBUHllWjM5c0o0NXhUaDlxWFMxa25OUWlwZ2x4dFQyUjAyUkxiVkVCVjF5NkRXUldiMDZ4eVlMQlYybS9LVXI2TEx1WlZtcnkvZURObkpDUmM0YSs4WEloMURRQVFBQUFBQUFBQUFBUUxCdlE2TzBidDNhcWpVbnR2aUJVOVdob213eEZTWEVJdXNxVHNVRkxubnNKTnUyVGRwVGU4T0dtNXB1RnlnWm1yeTBReGtEVFVOZmcvWWJORWhYOTI0bzZQb2xaVkxRNlpPeVpoVjAxTUtSa2VGU2FwZFRWenZXVm1xemsxd3FHcXJDZUJnK3laMmVuZzRJSkdKS0tMMEw0YmZhcktCanNVU2dHV1c1VmxhbFJQMlZNdXhkN1B5aWo1VVh4OGZIalhnNGZOQnZDOXZDbHM4aGpiRGRQb2FBODNCNHRKajIyRlZEUVNkd1FDZTVjRkNJOGVISWIrMEc1UE02KzJFcGM4cGV3QU1ZdmxTRldpbXhCcVdJV1dKTWJYL1VGTmxTUzFUUThUREpWMW05T3NjbUN3VmRwdnlsSytpeTdtWDFLT2dpSjFUa3JMRmZqSHdJQlIwQUFBQUFBQUFBQUFBME16TXp0c3BvY0hCSnBiZXA3dGl4d3o2Z1hMZHViWFUxN3RxMXk5bE54Q0xyS3M1UWg1QlVkWTg5ZTNiYm9lY2dxZW9rTkthMitocWEyRzdqM0x1WEwxL1dqYjBiQ3JwK1NiYUNqbVBtT0lkVnE0LzQxTXc0NWt1VkowVSs1STg5LzBXS3prUHozTFVQelVXcUdSMWRxZU9XeEx3bzcvcmVjbWJnMitVeW5lUWFYZk1kN2dkT1hRdDJ3YWlPdzZUMG80TE9jRytuWUtNVTE4cGt0RVlxRmVRcVF5UHVEUStFSVN4eGpvNmhLZklkc29mOTA4YXdRQXlCVzF6cHVRUWd5anJqQXV0R29CQm5CcTN1eUtkTENTeU16dGVkeG1lZGhxL1pBWWZ4NmNkaWZOalpuWmdHNVBPNjVGRFpwSjBuY2s2bEx1Qmg3SDB6cHBIaFVUWXdURkhFTERHbVR0S2NKSDVMRGYrRVNLMG84U3ZvZU9rYkh4K1BLU2VtZzZtTFdNeEVpNWMvU1lIT09KemtIcnAzZ1VKc0I4NDljZUo5c3A2VnlpYlRYcFoxVjhyM2d6WnlRaVZ4c3lZcHBxQXIvb3M5WGtFWDlqcGZtd0VBQUFBQUFBQUFBRkFuemdBdnc4TVhWUmNVempnVHA5b3JVa0U0WXhZTjFCSnFEelRDdG0yVHRzd0dhc251UWZOM3c0YWI3SVVMTjdkMkQ2ZE9jZ0EzdDNhYWhiQjNsNmlnTysyMHQxOSsrWnIxNjc5NDNYVmpmL21YN3pHKy9jQUhSaTY1NUdKbmV2ZTcvNEx6dk9NZHA5bmZqb3dNbjMzMlVsM1V1ZWVlNHl1SzB6SEhIRVhaempwcmtEL0tFcjFreWVtK1Y2aDVuT2Y4ODk5TEg5LzN2Z3VsdWdzdU9OLzMxb29WNzU3dis2bjYrY1VYZjJERml1VkhIMzFrcFFvNmpwaGhoeGd5WXVsd3pCYmptSktzbWhxNEtmNlF6amhjR3gxZEtRSVlxc2lJZDhUTnkzb2FxQjhPelFVQVNUejREb3Vka1plTVp1c01zN096ZkRZZFVORFp6VEJxc1U4bm5jTlJWaGRzaVlKemdId1ZOYVdnNDVOM2JSTitZcmROSHl1WDVWcVpqTlpJcFFJZm85dkg2N3dVR0JJT3pteElJOWl3Z2NQNkdQOE11ejM5RWRZVnlDdE81K0VteWJLV2RjWTU1UWVwRThmT3dNUHFhMGJnb2Y0cXNEQTZtK28wZnFBV1hRVzlaZlJhQWowWmI4WDRzTE03dG9MRjdtT00xN0c3Nmp3c2RRdE1vaGo3eHl6Z21yQXZjZUZrR2ZtV2hWNlp0ci9VUVNsaWxoaFRKMm5xbDVndE5lWW5SR3BGaVVkQlIvYmhwVURXcnF4ZW5XT1RqWmxvOGZLblpINmtuUHBBSGxaZGw2OFFleFhpWW8xVnFLQlBHbFMwVXFYdUFwbjJzcGhkeWRlUytJZVJFeXFKbXpWSlhnVmRXYi9ZSTNXUHFWN25iRE85cFVXaEFBQUFBQUFBQUFBQXFBSG5sWmVVcnJ6eWlpcDBkRlJtMVVJSW44Qm1jSEFKNGxOMUVocFdwdzkzU1hFQm1NMmJOOWs2U1pyc2xRYlBCUFhqazFGMUpnb1pzRms0ZTNjcENyckZpd2UrOFkyYlgzLzlkVjN5azAvKzRweHp6cFk4Z2ZBUlAvclJEem5QVlZmOXRTL1BNODg4ODRFUERITzJPKy84VHJoVDU1NTdEbVc3NFlZdjhjZnp6eitQWDF5NzlucmZLL3YyN2VNOFR6LzlOSDNjdmZ2Ly9qN3M5ZjdUOTlhamp6N0NlUzYvM0hGeSt2cnJCMmc3NE1aVW9hQWprM0ljajRtSkNUNzFveWVUazF0Wk5pRG5qNXlOSHZLVDZlbHBQa2ZUSjNRRkZYUlVQclZoZGc0K2NKVFROejRQcFd4ODdFdVY4dUdzUHNpTHIxMFVCYW5oWmV6bmZQZlcyTmlZdHRXYU5hdmxQSm96MEJOcVBDVU9NRExrVjlEeFFTYzlFY1BhdDVLSmhJUHN3T1h3Y0ZBU2JRQzlUbC9wdDNKM1FkUkg5QlU5cEVwWlZWS3BnbTdDUmZqNDFYZ29OdUVYcVlOOFhxenJaV3ZUUThyRHg5Wmx1Vlltb3pWU3FjQU9abXNoMkRHTVNrWFV3ZjVKUHNPMzQybHRnMjNWVlA5TWRYdWZrc1RBZGg0MndwRC9WdGFZR2FkN0pETWxkZUpJc0RKK1F0bDQ3aHN6eStoQ3FvSXVzREFHakU5RzRNV1oyemwwYUFBcmpVd2lsaFhSaTVSZlJvMmxFVnB2dzhUNHNJSFRxb2xyYXNkNEhjdCs2S00wd0o3dk9aYW1tQVhjNkZIQWw3ZzB5c0REUng5NWFPeFc4VnYyS01jTWltNWVWclBFbU5vNVJ2WjRoYmZVbUo4UXFSVnhCcDRSQXVXWDN6QjJPWkZlbldPVGpabG84ZkluaHAyTmg0TXI1UkVac2dSK3ZrS01WWWpLNFUxQmhpYmVKOE1yajZhaWxTcDFGOGkwbDhYOGFySTdsZlZoNUlSSzRtWk5rbGRCVjlZdmRqdVBjeGxQOVRwbm15TjNlUUFBQUFBQUFBQUFBSlNPTXhnZFBkbXc0YWJTZFhTaWkxaStmRm01SmMvTXpEZ0ZOaEJUZFJXZmRvNWNxMk9LQytDYjJsZGVlUVdtZHBmd3lham9DVUxQZFJYZm9IZDE3eTVGUVhmSEhYYzRDNStlbmo3bGxKTktVZEFSKy9mdlAvdnMvOUpIQ2pvcDJmbmJvTGlDTHBtenNGeDZKWW5QR1hXMlhxL0h4NnlTak9QVWdnbzZLbC91NUxMUDJpVFlpRlROaDZRNTFDbDh2VlQ0NUM0Z2E1SHdKcExJTEQwVmNrVDBoM3lnbkZoSGgwYmhFaXBOa25Ha1M0WExBR21saERiWGtCWE1KSGNYSko2UGZFVkdybHBCNTB4R0lMN1VjMlJ0S05hUStDS29hQ09YNGxwWmpkWklwUXdmZHR1eGZYcHpGd1hhODRKUHpDVlJCcmF6TFZIVFZrMzF6N0RiUjU2dE81Mkg3QkJlbWxKbm5PNlJuaHFwYzkrdzFWQmVqYkgrS3J3d0ppN2pHNi93Y1B0MlQyTlZNUlo1MFdEWXBQcXdyMGVHM1p5ZGl2RTZJdytaMnJnQ010L1NsTHFBYTFKOVNib2NhQ1JWWk13WHJjSktIUlNqZVZuTkVtUHFnQVdTdUMwMWlmZ0prVm9SWjdBVFZSMVE0c1Y0ZGI1Tk5uV2lPYnNUN3FPOXlHUXR4QmhRWTQxSzRud3ladVhKbWovclNwWHFWRm4zc3RRQnRWdWI0MkhNaEVxaVowMzg2QTlaUDRlSy8ySVA1REZjSzlYcjdEYkhkQjhBQUFBQUFBQUFBQUFWTVRNemMrV1ZWempQRU11TlIwY1Y4VUY1aVJxbndQbjc4UEJGaUZuVVBiWnRtM1NlajBObTB6Rm9hdE9BT3JWejBFbDJETnBsQW50UTkyUlVJRm1vZTNkeEJkMzczLysrZ3djUFVsR3Z2UExLRjc3dytXWEwzdldSajF6S09qVGl4aHUvb2hWMHZWN3ZZeDliWlNSUnVJbUM3bHZmdWtXK1hiTm05Uk5QUE1IUDc3enpPNVR0dmU5OXorV1hyK2IwNktPUDhsZFV0VHprUVF3bzZHaWdqVGFzWFBuUnNJTHU5Ny8vdmQzeUN5ODgzMURRYmR5NGtiKzY1cHEvZWZ6eG4vSERsMTU2NmZUVFQ2dENRY2VRVmJkczJjeEJYUUlYWFUxTjdhUnM5clZvUlpCRE9pcVRTcDZjM0dvY3Zla1dGcSthby9UNG9xbkVNRDA5emJhaWYzM3lFazJxS29DanI3QUVKYjUzL0JZM0k2dFpVcnZBQXgzVHV6WVRrQ2RwU25TdGVLTTFVbWsreUZ2STAzd1QwMGVxZitaeisxTElYWFhxeE9GRnJKU1JqVndZZlZEemNveGFNdWVaYkp4VXB5ckxoNTNFZUoza3FkUi9VdlZqWVYrS3RKS01zbE9DR0Q4b1NYYXo1SnZnUXFZdHRZcWZFREZrTXFBUXM4bm1ubWcrZURqNHg1alBIOExJS3VUcmJOZ25zNjQ4VGExVU9TanlxeW1lbUFsVi9JZG9ESFZPdDFTdk14aWZvK3BXQVFBQUFBQUFBQUFBSU1DdVhidDhnVHZvK2ViTm0wcXBoY3BadFdxMGxLSjI3TmpoRTEwTURpN0IzWTRkSTZDbkd1aG90S0lGQzYxRk5MV2QwaHB5Z0xMV0l0QUdmSUpZM25lZ2srd2tDM252THE2ZzI3cjEvMFNCMERhazFmS3V1KzRTNlpvbzZKNTQ0b2xBVWFLZ3UreXlUK25uSjU5OElvdjBkdTM2ZCtPVjIyLy9Qd0V4emp6VDNJc0RDcnBMTHJuWTF3YWZnazQvc1pNbzZPZ1AvZnplZTdmd2MycG5RVHNIRkhRTkVpbHpLZ3NPdDVMalZEb2Z2Ymx3S0w2YndrQ2w4RzE5VGJjQ2dEelV2REFDSjFqQVU2bDVTd1ZWazNYbHdVcVZBOHdhTzNRa0FBQUFBQUFBQUFBQUdzRjNPU1lmMGE1YnQ3WjRaSmlDU3FjOWUzWUhsRlFRMkhRUFZsMzZqcm5MRFpNSUdvU245dkxseTN6cno0WU5OMEVuMlExb0g2SGR4Q21TSElCMnJxUFFCS2Nwdk1EMzdvSUt1c01PVzdSdjN6NHFaKy9ldmZSM0lHY1JCZDNSUngvNTVwdHYwdk9ubjk1bHZOSnlCZDNKSjU5MDRNQUJldjdDQ3k4VXNmTUFGSFJ6akl3TVYzZDFWSy9YTTJKOThLVnMvUjdNcmYyUTJYdUh4bnZwelVsZkVPUUU5Q25RcGRRUEZ2QWNWTHFsZ3ZxQmdxNEdNR3RvYWEwNUVDVUFBQUFBQUFBQUFBQUNCSFIwZk5LOWJ0M2FtZ1BGN05xMWE4T0dtM3pxbW9Wei9yNUFtSm1aWWVHY1QyTXpBTzFjVjZDcEhSRE84ZFNtRE5ET2RRRGFOV2p2OEdtb0JxQ2Q2eUxZdXpVRkZYUm5uVFhJNWZ6a0p6OEo1K1RUbHYzN1gvbVBlUjU3N0ZFamp5am9hRE05OXRoak9KMTY2c25mL2U2ZC9KeitNRjdKcDZEYnZmdFphY2JWVjErbDMvSXA2RjUvL2ZWQXkzMEtPa3IvOW0vL3lsOVJSNHFZZWlFcjZNYkh4eWNtSnRhc1dWMnBISUtEbmxHUHRtelpUR2xzYkF3aXJucVluTnhLcGlhRHMrVlo5ekk2dWhKSHRLQlBnUzZsZnJDQXgxUFBsZ3JxQndxNjZzQ3NBUUFBQUFBQUFBQUFRSnZodXhURGg0ekR3eGR0MkhCVFJab0hsdGFFWlZUY2htN2YrN1pBbUptWllZRk5RR3ZCY2d2RUl1dDNhR3B2M3J5SmxwZUFtR3FnMVB1alFWUFE3a0FUTmlESjVrVE9VRHpBS1dnSjJMdDlGRlRRclZqeGJpN25uLzdwbjhJNWJUSE1jODg5WitRUkJaMlRWMTU1NWV5emx4cXY1RlBRYVNpYmZzdW5vQXUzUEtDZ2UvamhoL2lyZDc3enZ4WXhkVHNWZE51M1AxYkRIWGtqSThORFF5dm8zMHJ2alpxYTJybCsvWHF1aXhWY1c3WnNycTQ2SU5EaVFGNUVCbWZMMHhBZ3dnbm9hK3BaR0lFR0MzZzg5V3lwb0g2eXJqeFlxZUxCckFFQUFBQUFBQUFBQUVEN21abVpDVWVJa2tSNVZxMGEzYkRocG0zYkpuTm82bmJ0MnNWYWkzWHIxcWJLTFFibVErRWhDbG1mUW41Rnc3MTU4eVpXMTRTVlZKekl1eGFhM0tJYjhOU21aU1J5YXBkMVlUU29IeHBvbXFRMHFhKzg4b3JJWFFNQkJ2c2QyYnRwMExGM2h5bW9vSHZYdS82TXk5bTY5ZUZ3VHRiRHZQenl5enZtZWZEQkI0dzhBUVhkNzM3M3dzVVhmOUF1TnArQzd1bW5uNVptckY3OUdmMldUMEgzNnF1dkJsb2VVTkE5OHNnai9OVlpadzBXTVhVN0ZYUUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdEYXdaOC91OEFWOFBvSEU4UEJGa2xhdS9PaDU1LzBsRmFKVDFtTk5LdlBLSzYvWXNPRW1wRFlubGt0UmV1YzcvNnNlYmhyQlRDTk9yNjlhTmJwKy9SY2I3eEdTTDlFQThWZ1huOXFYWGZiZkd1OE9VbXBpZ1p3TTlLbW5ucEpwckk4NzdsamFDSzY5OXByR080SVVuMlJKNXhTamtOU0ovSVRjWm9IZjBsdFFRWGY4OFc4N2VQQWdsZk9yWC8wcW5KTVZkRTg4OFVRZ2p5am9IbnJvUVI3aVo1OTlscDk4NGhNZmQ3NlNUMEYzeVNVWCs5cmdVOURwSjNieUtlZ1dMeDc0d3gvK1FNOWZlKzIxd3c5ZlhNVFVVTkFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkxaczJjM1g5Qlc1SFFTQ1FrSkNRa0pxZHRwK2ZKbEd6YmNoSkNTVEVFRkhhVmYvL3JYVk03Qmd3Y05CZVBIUC82eHQ3NzFhUG1ZU1VGMzJXV2Y0aWRYWExHR256enh4TStkcjdSY1FiZG16V2Y0K1NPUFBGTFF6bERRQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUF5d1hlM3JWbzFtalhlRkJJU0VoSVNFbExIMG5ISEhUczhmTkdHdWZ2Y2NUK3ZRWEVGM2RlLy9qVXU2c2tubnp6NTVCUHB5V0dITGZyMnQ3OUZUL2J0MjNmOTlaL2piUGtVZElzWER6enp6Sy80NFFjK01HSy8wbG9GM1JGSEhQN1p6MTVKRnVEbkgvN3dod3JhR1FvNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUVCdVptWm1kdXpZc1hIanJSdm1iM1dFckE0SkNRa0pDYW1UaWNWeXJKZWpSRDhBOXV6WjNmUXZrVlpUWEVGMzhza252dmppaTF6YTdPenNJNDg4OHB2Zi9JWS9Iamh3NE0vKzdGek94Z3E2MTE1N2JiZUwwMDQ3ZGNDbG9OTVBIMzNVRWNhdE5nWGRHMis4NFd6NWtpVm5EQ2dGM2Q2OWY2Q0g1SFg3OSs4WEk5OTk5MTNGZlJzS09nQUFBQUZvbiszMWVyemJBZ0FBQUFBQUFBQUFBQUFBQUFCWjJiTm45NDQ1Tm02OGxkTU8wR2wrOUtNZnlsaFRvbzlOdHdoVXhUMzMzS1BIdXVubWdEcTQvLzc3YU55YmJnV29HOXpIV29UaUNqcEtGMTU0dm9qb2hEZmVlT09LSzlaSW52Q1ovaGxudk1Pbm9EdmlpTU4yNzM0Mm1ic285cjN2ZlU5VENqb2ZTNWVlcFJWMEJxKy8vdnJOTjQ4dlhqeXdrQlYwUTBNcjFxOWZYM09sVkNQVlczT2x0ZEdJU2Z1SWlZbUpOV3YrNzVUc08yZkErTmFBNFNTVlFoVlJkVlhYUWxXUTUzQ3F1cTZDNURCSVBUYXNIM3V5MSttWnhhbGlkZTB2QzdRY0dCTUFBQUFBQUFBQUFBQUFBQUFBQUFDQVNFcFIwRkU2N2JSVHYvbk5mL2ozZi8vM0YxNTQvcGxubnRteVpjdUtGY3QxaG9jZWV2QkhQL3FoTC9IMXI1ZGNjakYvdk9paUMvVzdILzNvWC9IekwzMXB2Vkh2dGRkZXcxK2Rjc3JKeGxlZit0UW4rYXQzdnZNY2ZySnk1VWY1eWJ2Zi9SZStqdHgrK3dSbCtNZC8vSjQ4dWZQT093TXRmL3ZiVDZFOEl5UEQrdUVQZnZDRFRaczJyVnUzZHNtUzAwc3hMeFIwV1NseXJOLytFMmNvck1JWW85OW1CWjFURjRUeHJZRTZsVDgxRE9qazVGYXFaV3hzYlB2MngranZjZ3N2ZlVuTVlaQ3VUZ3E3WDdabnRubExxbUlldFhuRmJqUE8zUVRHQkFBQUFBQUFBQUFBQUFBQUFBQUFBQ0NTc2hSMFNGVW5LT2d5VWVUVXVQMG56bDBWazVSRkh5bm9uRU9KOGEyQk9wVS9OUXdvVjEzUi9hMmwyd29LT2lGR1FkZm1GUXdLdXZiZ25DTXdKZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQ1JRRUhYTHdrS3VreEFRUWVFTmc4b0ZIUmRva0ZQcTdUcU5zK2dmaWRtc3JmWi9tMXUyMElER3djQUFBQUFBQUFBQUFBQUFBQUFBQUFBUldpVmd1Nm9vNDVZdXZRc0k1MSsrbW1MRnIxRlp6dnBwQlBPUGZjY1NzY2NjNVJQYk1ZWlRqbmxKT09ydDcvOUZQN3E4TU1YNitmSEhIUDB4UmQvY00yYTFSLy8rTWVveHNaTkFRVmRRYUNnQTBLYkJ4UUt1aTRCQlIzSUNoUjBvQ3l3Y1FBQUFBQUFBQUFBQUFBQUFBQUFBQUJRaEZZcDZDNjQ0RHhuSTE5ODhjV3ZmLzFyb25tNzRZWXY4ZlBoNGZjN3kvbUx2M2dYWjdqbGxtOGFYOTE1NTNmNHE2Vkx6NUtIbi92Y2RUTXpNMUxkbTIrK3VYbnpKcDg4cnowS3V2SHg4ZEhSbGJPenMvVEh5TWp3ME5DS2lZa0ova28vcEgvbHVUQTlQYzBIMzV5Qk1odlgvK2tNVk11V0xac2pxNTZhMnJsbXpXcCtrVXFnUE9GVDNlM2JINVA4bE1iR3hucTluczVBMzA1T2JxVnlkSHVvRnAxSGYwdjU2ZHZ3c2I2dVZQZE90MFFTMVI1akU0Sk1RUStwL1ZJT3ZjSmZVU0gwaXErUEdpcUJyRXAva0VuWnR2U2l0SUVSMjRyOWJadHdVVklwNVpmR01GUSt0Y1RJWnJ0S3FpOEZDUGM2M0FEOUxodEVFM1liYnJCOHpLSHhDSnN1TU5DYWdNUFFWN2FuU1NNanh6ZHMzaHlOekxFVTVCN0VJaTlTajR4ZUdDTWU0OXZHS3pHbUNIaGRlT25nMG5SUllRZUxXZlFFeVNOSnI3Y0ZQVG0xWDg3WFUxZDF3eUF4L2MzeGlwNUJ2Qy93MXVBMG80SDlMbmZLTUk2OUhocnQxT1U0WjVDOVAyclBETmlmM21JbjE1RDkyVEoyanhyWmFzTnp5dmRESXROMER1OFVtZll2YWlwWmlkcE0xZmwybGh3L3V2aUpVUmYxSmY0WFFuaG93cnRKZUtGei9wTEp0UDdFMkMxbTBRN1lOclg4bUU3cERGeUMwYVB3RUtTK0RnQUFBQUFBQUFBQUFBQUFBQUFBQURwQVh5am9tUHZ1dTY4S0JkM2YvdTIxenVwKytNTWZObTZRc0lKdS9mcjFJeVBEYTlhczVvUHBpWWtKUHRHYm5aMGRIVjNKWjdoYnRtem1Vejk5MUQ0OVBVM2ZTZ1o2bDg4Y0pRT1ZvRFBZSmZpcTNyNzlNYzVKZjB4T2JxVU1mR1R2RXkxUUhzNVBmMUNpdXJoZXJlTGcxNmw1VkJSbGtETjBmYjdKL2FXdnFCRHBqdTlZbnhzcHBYRUwrYnlWdnRKUE9IRmpVbTNDVGFVbmJCazJDNnNGdUVuMEZiM0l1amlqai9hd1VtWStCWmIrYWxFRWx4YTJDYmVRL3ZWVnloWHhhVFYzaW8rbjlkRi9xaThGU08xMW9BSDJReTJOU0hVYlE5U1JWVUdYYWpyZlFHdkNEa1BmOHNCcFY1UWhqaG5mVlBQR05MS3NwU0RISUJaNTBSNU5lOFJUZmR0NEpkVVVZYThMTEIySnBaS0tjYkRVUlUrd3E2WW44UldGblNTMVgvYnI4YXQ2cHY3bWVJV2JUUTBUQitBbnRnMXQ3SGR0eDNOdWJmcWhYai9aR3JZZjJvWG9pZ0wycDBMb29TSGo0U1hGOXBOR3R0clVPZVg3SVJFL25jTnJSZGI5Uy94WjFsVVd2OG1reVBlaml6L2Fvamd4UmN4aUhoaWE4RzVpR0RQeWwwejgraE5wdDhoRjI3WnRUUG1wblRJR1NFUjZVa0o0Q0ZKZkJ3QUFBQUFBQUFBQUFBQUFBQUFBQU4yZ25RcTZILy80eDJ2WFhzL3BsbHUrK2NvcnIvRHo5Ny8vb3RJVmRNODk5eHg5Zk8yMTE2NjdidXo4ODgrNy9QTFZlL2JzNFR6VW5zWnRFbGJROFlHcGNZckh4NHU5UXdPQTBCTkRWcUhQWjFsVUprZXVmSmlvTXpoTHNLdm0wMC9qU1VCQngwZWkrc25VMUU1YllHQTg0VHh5VU00SHg5STJlZUk3MWg4ZFhha1A4Ym43K3FQenREZlZKczZtRWpRUXhyRStSNHp4MllScnQxVk0rc21RRlduS3NJbHRScnRTcVVnUG9pR0hTUFVsSHpHOURqUWczS3BVdHltaW9Jc3huWE9nRFdJY0p2R0xjTUxqRzJQZW1FYVd0UlRrR01TQ0x6bzdFbE40K0pXQUtXSVdLNStuNmFISjUyQ0dBOWpZVlpmbHllRisyYTlIcnVwWis1djFGZGFNNlZCVTRYMUJ3KzlxMFRLNy9WQkdCUjNYYUlqY1dJb1RLTVMydHRQKzlpSkFzTkRJN2xFalcyM3FuUEw5a0lpZnp1WHVYOXdYN1RQY1lIbVM3MGVYVVVneXQ2ZUxZZk10NXM0RndlbVFoakh6L1pJSnJ6K1JkZ3MzekdmYm1QSlRPMlVyUzZrVytUWjFDTUt2QXdBQUFBQUFBQUFBQUFBQUFBQUFnTTdRVGdYZGhnMDM2ZWVmKzl4MS9IeDgvT3ZsS3VnT1Azd3hmL3lYZjltaFhsLzJqVy9jdkh6NXNzWU5FcU9nczIrUzRqZ2UrZ21mQnNwNXFKMGhtVHVqREdUZ0V1U0UwVmYxa0JYTWhBOWVmV294cDNqRFBqdTJKUUU2ai9Od2xpT0UrQ29OUjFIekZSaTJpYStwZkpKclJKeno2UnlrZHVOd2xxUHJHQlVaQjgzYUpzNUtEWDJqc3lLajc2bSs1Q09tMTRFR0dMY1FHcTFLZFpzaUNyb1kwemtIMmlER1lSSy9DQ2ZIK0JybXpkZklKTmRTa0dNUUM3NW90RG0rY04vSFZGUEVMRll4Q3JyY0RoWllTSjFWbCtYSnpzTEQ3WXhaMVRNdDhqbGU0VFlia3lpd0wyZ2kzL1ZOWG1Pc25ZVUhDb2xVMEhHVERLMjFUK2JVeUZhYk9xZDhQeVRLV2l1eTdsK1JGc2o2bzR2SFJmL3FZSWttbDVON01iYzl4K21Ra1RaSi9TVVQvaUdYdzNPY28reThHalcxL01oOXl0bjRKR0lJTXYyRUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAxTFh5am81Qmpyamp0dUwxZEJSK24zdi84ZGZUeHc0TUIxMTQwZGZmU1JqUnNocTRMT0h0UFVZMzFuaHFtcG5iNDdCKzJIdWFzT1ZPckw3eFM4WlQyYzFYQUlJTjhscXI1M1k3cm1iR3JXNWpuRkc3Ym9vcmhOWXZKa0hkQk1oY2RieG5pWTZqWkZGSFNSWmttOXlqYlNkTDVzeGNjM2R5T0xMd1dWam41RmVWSk5FYk5ZeFN5TXVjY3VQTzhpWlZjNW5NUlhsTy8xeUZVOTB5S2Y0NVdzQzI5cU5rUEdiRGZKZmtoMlNKV0gyWVhFSytnNDlGWnZQalFXQitaeWFwQWEyV3BUNTVUdjNiTFdpcXo3Vno0THhGUmtYQis4ZnU3RzBrd2RpVmtRbk0zSVlaT3M2MDkxUDBnaXkwL3RGQWVSMDFIc0FpMnhINFpmQndBQUFBQUFBQUFBQUFBQUFBQUFBSjJoL1FxNkk0NDQ3TUVISCtEbjExMDNWcnFDVGtvalhubmxsWWNlZW5CMDlLT0xGdzgwYm8waUNybzFhMVpQVG03VktmVzAwU2loSGdVZE16czdPelcxMDluVTNJMEpuTVp5V0x5UmtlSHg4ZkdldXBZci9HN2t1YlB2L05vWUR1TThQYlgycklmZ0pTcm93cjdrSTZiWHVYVVJUTUJ0YWxEUXBWb2djaTdFVHhtN2cySHo1bTVranBZWUdUcWpvTE1KTDFZbEt1aXlMcVM1RlhReHZjNjA0RE9aVnZVY3EydnArMEpxTnZ0aC9EQk5UMC9IejlONEJSM3ZaZUc3TWpVMWI3V3AzbFdEZ2k3VC9sWGtsMCs0SXBaZzZTdWhpeS9ta2J0SlBnVmRwdldudWg4a2tlV25aaURQWjVQeU1Ebi9DNFhBRUlSZkJ3QUFBQUFBQUFBQUFBQUFBQUFBQUoyaG5RcTZGMS9jKzh3enYrTDA0b3N2OHNPWm1aa1RUamkrZEFYZG9rVnZ1ZkhHcjd6MjJtdmFMTTg4ODh3RkY1emZ1RUZ5SytpY3FZVUt1dW5wYVM3SzE5VGNqUWxyQ1hxOUhnY1U0aU5SUTBkWGhZTE9tWnh0YTV1Q0x1eExQbUo2blZzWGtlbzJDMFJCRnpadjdrYm1hSW1Sb1pNS3VwakZDZ3E2Sk5lcW5tTjFyV0pmQ0dlekg4WTBlMnBxNStqb3lrenpOSElvR1gxL3BkWmxHVFN5MWFaNmwrL2RzdGFLclB0WFBndkVWRVMvTVlibUx4VmwzYU5jU3B0N01ZL2NUWEtzTFZuWG4xSThKNnNqNlljeERaNmRuWjJZbU9CTGg0Zm1MdGdWSVZ6TUVBUmVCd0FBQUFBQUFBQUFBQUFBQUFBQUFKMmhuUW82bS8zNzk0K09ydVJzNVNyb09KMSsrbWxmL2VxTnYvemxMdzhlUE1nWlhuMTEvOURRdXh1M1NUNEZYUTVWVEdxR3lIUGsrSVBYMmRuWmtaRmhHbFlqcGtkdFNvbnA2V2s1RXRVMzMxV2hvQXUzSkRWL2d3cTZHSUZOWkM5aThxUStqSEdiQmFLZ3k5R0FySGxLbkgxOXJhQ0xYS3lnb011M3F1ZFlYYXZiRitMZlRXMERhNlhHeHNZQys0dGRTQ1lGSFYva3lzSGxocFF1UzlQVVZwdnFYVFVvNkRMdFgrWCs4akhnSWFBLzZGZkhrTHFvUGZkaUhybWJRRUZuUUhPRS93TUtrWjVtK29WZ3Z3NEFBQUFBQUFBQUFBQUFBQUFBQUFBNlF6c1ZkTC81emYvNzZLT1BjUHJuZjk2MlljTk5aNTQ1S05sU0ZYVExsdjA1WjdqbGxsc2lGWFNTemozM0hMbHA2My8reng4MWJwTU9LK2o0NkY5TEM1ejVLMVZLSkhNNk91TXdGQXE2Y0VXNWV4R1RKL1Zoak50QVFWZWtrY1ZiMGowRlhlUmlCUVZkdmxVOXgrcWF6ek5aK3VMcTRpR1VwYUNqYldWa1pEaGNqbDFJSmdVZDN4WksveHE2TEUxVFcyMnFkeTBvQlIyUEF2M2VJSzhnUHd4M0pHdkRBdG1nb0hQQzkrcnlEY2haZjZRWnJ3TUFBQUFBQUFBQUFBQ0FUckorL1JlZFo3WC84QS8vRDMzNzBrc3Y2UXdubkhBY2ZYenFxU2ZEWlc3Zi9oaGxmdWloQi9WRCtuak5OVmRMVVovNjFDZWZmZlpaNSt1VWsrdXl2N3I0NGcrRy96OHV5aUNOQndac1dHZWlnYVpoMVVPdm9jR1NiUHdrM2pHa1dEdUpoOXg5OTExTGw1N0pEMmw4NmFOUkNEM2hrZlU1Um1JTnZiVFpTT0kvMURCZFpwZDhodnBvekdYamlkTW1aQVNlbUVacElyQ1I4Y3EwTEhDeGRxSlhKQSs5cThmTEtNcjNMVFZNUnRDM3BGQWVjUzI3YTg2VnFrOHhWbkxwYktiQmNvcXA5SXdMVDFYOU9nMk5zeFp1Z1BHUUJrNkcwaTYydzFPMURiUlRRYmRodzAyQmJLa0t1c0hCTXpqRHZmZHVNYjU2K09HSCthdVRUejZSbjV4KyttbGYvdklOeHgvL05zbXplUEhBYzg4OVIzbGVlT0dGeG0waUtaT0NUcC9QUm1ZWW1ydVh5cGRoZG5ZMjN6a3lCOFp4bm1PdVdiUGFMc1NveUZsbUVuRTR5eGZuMlpVNk1XUVZQZ1ZkMkNhK3BuSnA4UmQrY2Y1ZThHTFpTSnNZbGNaMDA2NG83RXZoWG9SN25VOFhFZU0yeFJWMFlkUEY2Q1ZpSE1aWFZMN3hqU2trdFpGSkdVdEIvUW82WTc3blU5QUZUQkc1V01VcjZISTRXSGhBZmJLcjRwN3NMTnozZXI1VlBZZXFKOSsrd0JGSFhWMDhoTWc5eFc1RGIrNnlUaTNzc1FOVnBRNUJKZ1ZkTXUrNjFEemZXdDNVVnB1NnZOU2dvTXUwZjFGK0RoTm5QSXo1NVpOYUVXc2RiZVZWN3NVOGNqZEp0VWtPVDdDL3ltRzNtRVU3c3Z6STNkYVhJZXVQdEpqeUFRQUFBQUFBQUFBQUFFQy9FMURRdmZUU1N5S1cwTWtXb21qb0xWWTdHTHFVSVV2RFE0V0xJa3Q0NnFrbldYSmpDNlh1dnZ1dUFhV0FzaEdaRFNRV1RpSVZkRFF1K3Exbm4zMVdaMHZtaGpqZU1WSVZkRTc5aHBiUUdGbzRwNExPSHZxd2dvNmxVMGE2NXBxcnl6TjJrd3dWVU5BTldBSTJHV3NlcjZ6TFFxcUN6bllBM1FEZnQ5UU11MHk5cE5BZlJxK05GdnBXcWo3RnFhRExPbGhoQlYxNHFtbzFvN3hvYUJwWlJHMG82SnlObEVIcDlsUnRBNTFVMEMxZVBQREhQLzZSTXV6ZHUvZVVVMDZTNTJlYzhZNlhYMzZabmovLy9QUDg1RE9mK2ZRYmI3eEJUeDU0NFA3RERsdkVENDgrK3NnLy9PRVA5SERQbnQyTjIwUlN2SUxPR2ZjbW5JSGpzTW1wcnAyQlpxTE9FRGhITmdRRG5OTjV6c2hDZ3Q2aFVqRU9wSlBwTUpkRHUraHl1TFcrbjRzU1kxQXcrdXM4VGsyMWlhK3BmR0x1dkZ6UGlkTmlvNk1yOVFseXFrMmNsVkw3VTBQdEdROWpmSW5zYnorUDZYVStYVVNNMnpnRkdIcEFxYzIrSzloaVRCZHpkQjdqTUlsZlpKSmpmR01LU1cxa0tVdEJEUW82YXFjOFlabHUxc0pUWFYyYkluS3g4aWt4c3M3TnJBb1daNWZMOHVUSWZqSDVWdldZL21aOWhTdlYzZWNueHFBN2w2L0lQY1dldk1icVRkWjJPbFZZMFJRcGhqUytIWnFMUk9mTTBOUldtN3E4VksyZ1M5Mi9ETGd2T2xoZmIwNFNtZHJneUlxNGZHUDV5cjJZMncrZHUwbXFUU0oveVFUV2lraTc1VmkwSTh0UDdSUjlOS1lQdXlLTE9WT0hJUHc2MlR5VG13RUFBQUFBQUFBQUFBQ0F2b0IxRjA3Skdhc2RMcjc0ZzZLQ2VPcXBKeWwvUUVFM3BDUXJoaTZGM3BKYXFCek9hZFJMRlMxZGVpYlZlTUlKeDJtaGxKWisrZjd2TmU0STY2YWdvSFBDWnZRTkgwdmQ3SEVodzlLZzhIT1dKK1Z3REFNdWphVlFyTEFTSFE0WExpbytWbmZRUnpzd25XNWh6TkRyN3JQYVIzUTRMTTZrNUl1TDJIZXd3TXc1V2Rpa3RxRm9JTWpPOUs4ZVJ6YWFWcG9WSDMyOTVnUWlINGEvWmYyYlBLZkdzRlBKc3NQKzRJdUVGbGlwK2hvOVQ1UHNnK1h6RFNZd1ZWbm5SbitMdnRHWVlscmdaeWpvK0N2S3I5c2dydHY1cWRvNGZhMmcrOFV2ZmlHWHZVcmlQTi8rOXJjNXovUFBQMy9ISGJkVGdYZmUrUjNXeFNYLy8wSHcxem5iU1NlZDhPS0xML0xEcDU5KytxdGZ2ZkhHRzc5Q2YvQ1Q3MzN2bnNadElpbGVRY2VoVHNiR3hucHpKOTJ6czdQMFpNMmExWEo4eVdlTDlEby9vV3g4d3U3TE1EVzFjM1IwNWNqSXNKd2hoZysrdDJ6WlREbnAzZkh4Y1g3UmVmREt0VkREK0dDVW1rSDVXWEtnVDRGVEQzUDVLSlplNGRaU3Nhd1NjYmFRajBycFhhNlVYbUVoZ1VURmtUeFVBajBVTTZiYXhOZFV5c0Nka2tOWWVwZXk2UnB0RzFKK3lqQTdCN2N3MHdFM1Ywb3RsRzV5c2ZxTU9FYUJrT3BMUTY0Z1M1Rzl6cWVMaUhFYm94QTlvQ3d5OGJsSHBPbGlkRWN4RHBQTXgrR2hiTlFMSFZFblpuekQ1czNSeUxLV2drb1ZkT3lUOUpCbkIzM2s4Y3BhdVBFeGJJckl4Y3E1ZENUWjUyWldCWXV6eTJWNWNtUy90Qm16cnVveC9jMzZpc3dSYWpPMW4xVXV4c1QzTFYvR251TDBzV1IrR1dGN3NubGxPbk1HbHB5SlUxRk8xa0lQS1RrY0Y4SXJBQnZXSjRhMDdhOXRQdVNYMkRXeTFTWVJ5MHZWQ3JyVS9jdnVMRysrTXFiY3U5UUdSMWJFM1RkY0x2ZGliajkwN2liaGhTNytsMHhnclVpMVcrNUZPN0w4Y0tkWTdVWlBxRjZ4TUl2dU9IOTRDRkpmRDB3QkFBQUFBQUFBQUFBQUFOQy9CQlIwUTBybUZNbFF0QzZGVCsyMWxJSWpFUTNOaDhQS3BLRGowdTYrKzY2d0FtU0JFNk9nb3hFaEM0dUFqUWFGYjEwY1VzcWNISTZoNFRHU0dGbjJtTEtVaS85bVRWZEFMUk0vOUJ6bmlwczlkS2pRS0prWFhIVkdscE5QUVRmMy96OS9VUTh1LzcvVy9KQm5kTUhSWnplVDhXV3orK1NSNFc4TnVKSDgvNjZMSE5TWE9YNmw2aThNeDg0NldJRkpGSjZxdkxZWU4vTU94Q25vOU1UVVQzZ3lkbjZxTms1ZksraWNjSjYzdmUydC8vRWZ2M1JtZVBMSlh4eHp6RkZTMmwvOTFhVUhEaHl3cy8zKzk3OC8vZlIzTkc0VFNmRUt1bVQrNEY2bjBkR1ZQWFhzemlmeU9obnhONHdNeHV1K3FtZG5aL2t3VWQ2YW5wNzJLZWpzV3VoZHFvWCt6UnFPeVNpSCtzS3FNMmVsRW9sSWtpMW1rNmcrdXVOaG0vaWFtc3lkdC9MdGdUcjU0Z1d0bjcvRlZiOWloNXBKdFFtVndDZlVrb3pvWjVHeWhMQXYyWHFBK0Y3bjFrV2t1bzB2aU5OUThGSk9JZFYwQVMyQkp0Vmh1QzZaTXZFS3VpVEN2UGthV2NwU1VLbUNMbEdqNlp2ditSb1FOa1hNWXBWNGxvNnNjelBHQVZLdGxMdWlRUG5oZmpFNVZ2V1kvdVo0UlU4dTFuMFpWZ29zWC9hZVlsdVlDdFRtWmNXVXNkK3hhRXJibjlWRUl2NlJSdEtMUFkrQ0x2SFluK0VMSlgwZGNYYW5ucTNXemo4VW9lSzJueGRaSzFKL0M5bWROWDRoeERRNHNpSWVldnYzUnI3RjNIN28zRTFTRjdySVh6S0J0U0xWYmtuZVJUdSsvSENuV0ZOblpOQkI3Y0pERUg0ZENqb0FBQUFBQUFBQUFBQ0FUcElhZ3k1U3ZxTGhFL2tZQlowdWZHaE91TVZLQ1VOQko3REl4M2pJVVltNEMxRFFCWWhVMEhFMnNTZlpYQzdFMURIb2NqZ0dZd2htdUdRcGpTK05aWTBOQjdZSzNOZ1lQL1JhdHBmTXU3MHVXZFNiM1NDM2dvNDFrMndvdGovNWcxYlFGUng5STFTZ1ZrdmFoTC9WVU5zNGZDVi90SmNYSnpFclZYOHg1SXBCRno5WTRVa1VtS3JzTmhLRExwbWZtNFp0WlpIUkQrM1ZucHZONzNaK3FqWk9xeFIwNzNuUDBPL20rTy8vL2U4QzJkYXR1LzUzZmlUYnNjY2VjL1BONDg4Ly83eDA5cmUvL2UzZi8vMkdvNDgreWlodytmSmwvL3pQMjBSSE56czdlKys5OTU1MTFtRGpCdEhKVnRDRm1aNmUzckpsTTRmZjBRZUZBbldURm5uNjFyNmd5c2pnZkQwQTVZOS9pOW81T2JtVlVzOXpxQjJKbE9PTHc2UGhLQ2dzWm9qSnIxL01aeE91a1lmRFozQkd6cEc1cm9LVzRiRUkxNWhLd0pmRzUvQzlHTi9ySEUwcTRqYjBvcjRWMTBrcHBzdnRNSkdGbDJMZTZwYUM2cUJ4TDkycGtqUlRsTFZZTWFVNFdLc3FFc28xVklrWUtwM3c4bVhzS1Q2RkR6dE1vS2NWK2FyQW9lRU1iYVJOSTF0dEVyRzhWRTNxYnlGQlJHTGN4NndOanEvSXBycTkwbGRkaVV0NnBOMXlUNFRJOGxNN1JRM2dIMzYrbjhUaElRaS9EZ0FBQUFBQUFBQUFBQUE2aGc0TnBOTlRUejNKK3BtQnVmdjFLRnZXUUVaaFhjclEwQXFXWnZGSHZybFZ3Z3JGSytnTWtSVVVkQUYwS0QrZFdDNmx4UzM4SDlnbWMySVZlVEl3cjh6SjdSaUpwV1JMMVAyYlhCZjliZWlnS0RQZjVEaHc2SFd1bVliZWpuTWxaVktsOURkbDZGSlVxOXdLdW1SdVRlQzVTWmFYSnpLamk0eStFWUJPSXNXeHJJNlR2dXM1OEszQXprTU4xbC94SzN3QnNiVFdibXJuRlhSWkI4c1FVOUZiMmppQnFack1MUzk4elN2WHhiRXJqZkp0QlIwN3FxR1ROSFRkM1o2cWpmT3RiOTNTdURhczZuVEtLU2N0WFhyV3lTZWZHTTUyNUpHSG4zbm00Qmxubkw1NDhVRGpiYmJUMjk3MjFxYWRCZFJCSUJKTEMxbXpaclVSQ3FZdkNDdG5BQUNkaE85ZTFCL2psNi9XcnN3Y204dDNNeW1JSnhCbURRU28ybTRZRndBQUFBQUFBQUFBQUFCUVB3RUZYVEluZUJEMUFxZEFRREFoVlpkaVJFYlMxeTh5a1FvNkRueWtWUnhRMEFXSVY5Q0pkRTFVam9ZeUo1OWpKSzViV2Vsdktvb1RGeVVDRzU5emt1ZGtHbnIreW1naDlZNGFJK29zS2tyZkZObnZGRkhRc1Nld1pYUWNNSm5SdVVmZnVKWFY1NUJjV3ZoYllVamR4eXFlb3g5S3NxOEQ3cnlDTHNrNFdNNXdaRHJvbkcrcUp2TmhBSGxhc2JYdDJIYytCWjNocUlhQ3J0dFR0WEUyYmZySEd0UmZTTVhUdWVlZTA3U3pnRHBvclU3RHlmajRlQ05oaFFvU2poa0ZBT2gzYUYweTVqaDlwS1ZWUzJjekxWK3RYWmxIUm9iRFY3aUNTS0RVeWdjVWRBQUFBQUFBQUFBQUFBQ2dld1J1Y2RYd1RZNHNqZkJkQXlxRWRTbDJqVHJHbEpHTWhoa0tPdFpqT0pOVGdMZkFpYnpGbFQ4YVkyMHJjNlRNZU1mZ29UY2lVMG04dTJST29zUE93Tkk0enErTFplMGxYeFlaT2ZTc3RkTUJEN2tjcmFmaWl1UVM0UTVRUkVHWHpFOUppUXhtS09pRVRLUFA3cWVieEU5b3JHVWcrT3BQU3ZRay9LMVJ1SVJINDBieTM5SkhzZ2FMdmd6eDJFSlEwQW1aQm92Umt6RUpUbFg2U1A0ajVxVzYyT0NHbStWUTBIVitxamJPVDMvNnZ4clhoaUhGcE05KzlzcW1uUVhVUVd0MUdnQUEwQzlNVG02bGhYUnNiR3pMbHMyVXhzZkg2ZVBvNk1yY2l0KzJyY3pVbzRtSmlUVnJWbE9yY0sxa0tVQ3BsUThvNkFBQUFBQUFBQUFBQUFCQTk0aFUwQWtzd0FpckZ3SzZGR2QxVU5EVlF5WUZIUStpWFBzWVVPWXdxWTdoVkxMeExaUEdLSE5keno3N3JOT1IrS2JJK0tGM3l2YU0rSFdTelk2YTFhY1VWTkN4ZVNXUFQwRW54Q3dMV3VIRzhPZ2JReU94NzhMZjJ1V3p2bzd6czN6TENNVm1HMlJCS2VpRW1NRVNKQnhvekZUVmNVUjV2aHZYczlvS3VzUVZjWlNGc2p3dW5aK3FqYk4zNzk3RERsdlV1RHdNS1p3V0xYckw0NDgvM3JTemdEcWdoWFJpWXFMcFZnQUFRQjh6T3p0TEMrbm82RXIrcno5R1JvWUxCc3hzMjhwTVBlSis5ZU05MnUyRXhoZkd6RUhWZHNPNEFBQUFBQUFBQUFBQUFJRDZ5YWVnczJOQWFYeTZGSmExeENnZkltOXg5VldOVzF5ZFpGTFFHVVFxNkFLTzRWU3lPZTlYWlQraDltaE5sT0R6RGVmUU8yVjczRk5EMjlNeHp5bW9vRE9JVk5BRlJ0OE9RSmZNQlM2ekgvTG9iOS8rV1BoYlg3L1lXN1FFaTJFQm1LSEZXc2dLdXZBYXp2QVE4RXdKVDFYamZsN0ducXJPUlliYkkySmQzY0tGTUZYYndCVlhYTjY0UWd3cG5DTGpSZ0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWhIUUVFM2QybkNGN1hRUXU3UURKZHA2MUplZXVrbEt1MkVFNDZMRkt0QVFWY0ZaU25vY2ppR1U4bVdxQ2lDTW1ROGdqTDYvSllvYzdnaVp4ZWNRKytVN1NYV0hiVmtHUTV0MTVuL3hyazZCVjIrWmNFT1FNZXdCRXNHaURXVFVsVGdXMm8vMVN1eUt5cVp4NVNyWUwwY1Zjb1o1QlpYbzllZFY5QmxIU3l5a2xqYnVQbzJQRlg1YnlwV2pNbnZHcEpGNXlMRDcwcE9LWW8vZG42cXRvR1hYMzc1M0hQUGFWd2todVJMSzFZc3B6RnEyazBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0RMQkJSMExGU3dVMEM2d1BvTm5WajVFTGh6MHhrdXlWRFFzZlRMU0RwbWtRQUZYUUNuR1dVVTRoVjBPUnlEZFR2T3d2a3JJNGxramtWVE9sSHR6dkJaOXRCVE5xZHN6MW5zZ0JWZnEzOHhwcUZUTnBaYlFaZGo5Tm5henNKNWpIeWpIL2lXZTJFa3JkZXkvVW8zd0xkUzlTODhSa1ozc2c2V25YL3Awak5sK29TbnFtMVNQVldONWcwb2xTeVZ6eks1eUJXZ1MxTzFQZXpkdS9jakgvbUliNE5BYWlvZGZ2amk2NjY3YnYvKy9VMDdDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFkSnlBZ3U2cHA1NmtiN1dtNGxPZitxUlR0eVpBUWRkbXlsTFFaWFVNdVlyUmQ3a2tqWmRJYUM2KytJTkdUTEM3Nzc1TC9JcSs5ZDArYVE4OTN5enBjd1lxbHNOa2NkdTY1RE9WS3VoeUxBczh1RDdWRnIwckEwRU5NRWJmOXkzNUVqVkQzSWJhWS9lSW5rZzdEYzNWQWxIUVpSMHNzcGhZbTQxbXpObkFWT1VSMFJYcHFScFEwQ1Z6VWtrOXlzWnRzQjJlcW0zak43LzV6ZGF0V3ljbWJydjU1dkd2Zi8xclNFMGxjdkx2ZmUrZW4vNzBmemszemY4UGpHK20xUTBLWlc1a2MzUnlaV0Z0RFFwbGJtUnZZbW9LTmlBd0lHOWlhZ284UEM5VWVYQmxMMWhQWW1wbFkzUXZVM1ZpZEhsd1pTOUpiV0ZuWlM5Q2FYUnpVR1Z5UTI5dGNHOXVaVzUwSURndlJtbHNkR1Z5TDBSRFZFUmxZMjlrWlM5RGIyeHZjbE53WVdObEwwUmxkbWxqWlZKSFFpOVhhV1IwYUNBeE56Y3lMMGhsYVdkb2RDQTFPVEV2VEdWdVozUm9JREUxT1RFeU5qNCtjM1J5WldGdERRci8yUC9nQUJCS1JrbEdBQUVDQVFCSUFFZ0FBUC90QUN4UWFHOTBiM05vYjNBZ015NHdBRGhDU1UwRDdRQUFBQUFBRUFCSUFBQUFBUUFCQUVnQUFBQUJBQUgvNFQ4dmFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x3QThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBM0xqRXRZekF3TUNBM09TNWpZamRqTldFeExDQXlNREl5THpBMEx6RTBMVEExT2pJeU9qTTFJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGtZejBpYUhSMGNEb3ZMM0IxY213dWIzSm5MMlJqTDJWc1pXMWxiblJ6THpFdU1TOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3UjBsdFp6MGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMmN2YVcxbkx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3VFUwOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXRiUzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25OMFVtVm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVlNaV1lqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHBiR3gxYzNSeVlYUnZjajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5cGJHeDFjM1J5WVhSdmNpOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd1pHWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dSbUx6RXVNeThpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25Ca1puZzlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dSbWVDOHhMak12SWo0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5cWNHVm5QQzlrWXpwbWIzSnRZWFErQ2lBZ0lDQWdJQ0FnSUR4a1l6cDBhWFJzWlQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwQmJIUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2VHMXNPbXhoYm1jOUluZ3RaR1ZtWVhWc2RDSStWMlZpUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT2tGc2RENEtJQ0FnSUNBZ0lDQWdQQzlrWXpwMGFYUnNaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQkpiR3gxYzNSeVlYUnZjaUF5Tmk0eklDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXlNaTB3TlMweU5GUXhOam94T0RveE1Dc3dNVG93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURJeUxUQTFMVEkwVkRFMU9qRTRPakV5V2p3dmVHMXdPazF2WkdsbWVVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGpJd01qSXRNRFV0TWpSVU1UWTZNVGc2TVRBck1ERTZNREE4TDNodGNEcE5aWFJoWkdGMFlVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZWR2gxYldKdVlXbHNjejRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBCYkhRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4ZUcxd1IwbHRaenAzYVdSMGFENHlOVFk4TDNodGNFZEpiV2M2ZDJsa2RHZytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHg0YlhCSFNXMW5PbWhsYVdkb2RENDNOand2ZUcxd1IwbHRaenBvWldsbmFIUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHg0YlhCSFNXMW5PbVp2Y20xaGRENUtVRVZIUEM5NGJYQkhTVzFuT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhodGNFZEpiV2M2YVcxaFoyVStMemxxTHpSQlFWRlRhMXBLVW1kQlFrRm5SVUZUUVVKSlFVRkVMemRSUVhOVlIyaDJaRWM1ZW1GSE9YZEpSRTExVFVGQk5GRnJiRTVCS3pCQlFVRkJRVUZDUVVGVFFVRkJRVUZGUVNZamVFRTdRVkZDU1VGQlFVRkJVVUZDTHlzMFFVUnJSbXRpTWtwc1FVZFVRVUZCUVVGQlppOWlRVWxSUVVKblVVVkNRVlZGUW1kVlJrSm5hMGRDVVZsS1EzZG5SMEpuWjB4RVFXOUxRM2R2U3lZamVFRTdSRUpCVFVSQmQwMUVRWGRSUkVFMFVFVkJPRTlFUWsxVVJrSlJWRVY0ZDJKSGVITmpTSGc0WmtoNE9HWkllRGhtU0hkRlNFSjNZMDVFUVRCWlJVSkJXVWRvVlZKR1VtOW1TSGc0WmlZamVFRTdTSGc0WmtoNE9HWkllRGhtU0hnNFpraDRPR1pJZURobVNIZzRaa2g0T0daSWVEaG1TSGc0WmtoNE9HWkllRGhtU0hnNFpraDRPR1pJZURobUx6aEJRVVZSWjBGVVFVVkJRWGRGVWlZamVFRTdRVUZKVWtGUlRWSkJaaTlGUVdGSlFVRkJRVWhCVVVWQ1FWRkZRVUZCUVVGQlFVRkJRVUZSUmtGM1NVZEJVVUZJUTBGclMwTjNSVUZCWjBsRVFWRkZRa0ZSUlVGQlFVRkJRVUZCUVNZamVFRTdRVkZCUTBGM1VVWkNaMk5KUTFGdlRFVkJRVU5CVVUxRVFXZFJRMEpuWTBSQ1FVbEhRVzVOUWtGblRWSkNRVUZHU1ZKSmVGRldSVWRGTWtWcFkxbEZWVTF3UjJoQ2VGZDRVV2xRUWlZamVFRTdWWFJJYUUxNFdtazRRMUo1WjNaRmJGRjZVbFJyY1V0NVdUTlFRMDVWVVc1ck5rOTZUbWhrVlZwSVZFUXdkVWxKU205TlNrTm9aMXBvU2xKR1VuRlRNRlowVGxaTFFuSjVOQzlRUlNZamVFRTdNVTlVTUZwWVYwWnNZVmN4ZUdSWWJEbFhXakpvY0dGdGRITmlWelYyV1ROU01XUnVaRFJsV0hBM1prZ3hLMll6VDBWb1dXRklhVWx0UzJrMGVVNXFieXREYXpWVFZteHdaVmx0V2lZamVFRTdjV0p1U2pKbGJqVkxhbkJMVjIxd05tbHdjWEYxYzNKaE5uWnZVa0ZCU1VOQlVVbEVRbEZWUlVKUldVVkRRVTFFWWxGRlFVRm9SVVJDUTBWVFRWVkZSbFZTVG1oSloxcDRaMXBGZVNZamVFRTdiMkpJZDBaTlNGSTBVMDVEUmxaS2FXTjJSWHBLUkZKRVoyaGhVMVY1VjJsWk4weERRak5RVTA1bFNrVm5lR1JWYTNkblNrTm9aMXBLYWxwR1IybGthMlJHVlRNNGNVOTZkM2xuY0NZamVFRTdNQ3RRZW1oS1UydDBUVlJWTlZCU2JHUlpWMVp3WWxoR01XVllNVkpzV20xa2IyRlhjSEppUnpGMVlqSlNNV1J1WkRSbFdIQTNaa2d4SzJZelQwVm9XV0ZJYVVsdFMyazBlVTVxYnlZamVFRTdLMFJzU2xkWGJEVnBXbTF3ZFdOdVdqWm1hM0ZQYTNCaFlXNXhTMjF4Y1RaNWRISnhLM1l2WVVGQmQwUkJVVUZEUlZGTlVrRkVPRUU1VlRSeE5HdEJWazkzU0ZVMGNYZExPUzlQVENZamVFRTdlVGxDY25saFlrSkZPVEZoYkhoSVRIRkZZa1JuUjBwd1ZrWndPR0ZxZFdFdlMzWm1UR3B3U2tkT09XVTFOVGRNTjFJMFdUVjFRVVJwYW5sTmRqRmtMelJ3WjI0MWRtRjBjVVkzTlNZamVFRTdkMnd3ZEhCRU9WWnphRVZzZGtORVVtVlZjMkY1Um1sUGJrbHNObFk0VFhsMFNrVkRSamszYjFCaFNGVlVibkZVYW5Zd2VIRm9OM2RFSzJ4RVpWVjJUM1YxWlZST1ZXWlVOeXRQVWlZamVFRTdOMFpZTkZoa2FFcFliRWRtTlRSeGJXZGlPRWRJTUVWSVRHaHFhMFpxYlRFNWJqbHdOV1JHYXpSS1p6aFFWMUJrTldvNFZXWjBaVGMyV0hGMWJqWnlXWGhZTVdoTmN6bHlUVXR3U1NZamVFRTdkalJuWnpkbmFuVkViWEpzUVhoT1JqYzNRbTVvYkdkS2QwNTRTMHQ1VEdNM1JsaFpjVGRHV0ZseE4wWllXWEUzUmxoWmNUZEdXRmx4TjBaWVdYRTNSbGhaY1RkR1dGbHhOMFpZV1NZamVFRTdjVGRHV0ZseE4wWllXWEUzUmxoWmNUZEdWazgwZFVsTVlVSTFOMmxTV1c5SmQxZHJiR05vVmxWRWNWTlVNSGRuUlcxbmVHNU5Va0pOYWxGRWVGQTRRVTFFT0hwaWJsaEhabE4wUnlZamVFRTdUSGhoVjFSM2EydEJTV3QxVUdGdVZsVnlNalp1ZGpSYWRFNVFjR1ZJWXpnemFFOHhLek5LV25vMFpVeGlTRGx6ZGpKbVp6bDVabVpzZWl0V1pqRldiMlJhTVRaUUwxTldTV3QwVENZamVFRTdRUzgzY2tsdlZtVllMMHN2ZVdVelptWlpWVFpxVlM5M2VHUnFNazR5Um5jeGJIcEVNV1JKT1ROdFpsQjVLMkpFWm5wUkx6aHRUSEZJSzNSaVpqbFJPRmRZTmxnck4wUndaVE5RT0NZamVFRTdaRzR2YlM5M1F6VkVNVzU2TVRWQk1DOTNRWG95ZGs1bFRuUnhjMUV2TUdVM2NITXpMMFpqZEU1NWRuWXhXSFF6UW5kalIyTjNVR3M1WmpKeU1sUkVWbEp6Wlc1SlQxSXZVV1pNTnlZamVFRTdibXRsWnl0WlprMW1hMUJYTlV4aE5HaGpVbWh4V0cxdWVVZHBUMDl1VGtSMVN5OTVkVTkyZVhwWlZIaDRlWGd2VXpoa2NFNWFiakJIVlhoSk9UaFVNUzlJVVhaa09VTXhOMVJPWXlZamVFRTdNRFpQTHpBMlZWTjNkbk41T1VoU2RUWlBkamRNUkNzd1lscHhjMjFOZUU1R055OVROblpJYm1kS2QwNXFOM1pKY0doclNFcGthWEp6Vm1ScGNuTldaR2x5YzFaa2FYSnpWbVJwY2lZamVFRTdjMVprYVhKelZtUnBjbk5XWkdseWMxWmthWEp6Vm1ScGNuTldaR2x5YzFaa2FYSnpWbVZGWldabVQyVndaV0ZPVjA5ck5tSjZZbFJWYkRsTE1tZHBjVlJqVDBSUlQzZEhOWEZtY3lZamVFRTdhblE0T0ROUGJqQTBlSGh6T0RONk0zUmlkRkJLY1RoMmFEUXZiM1ZuUWk5R05TOXhXakVyV0M5M1ExZFdkRzlwZURacWNXbHlVSEUxUmxWVVdtODNablpTWmtZdlJuWjFPRlJvTmlZamVFRTdibFpqVnpCbWNDczVOa1J6Wm5OUFQwTnpiVlJtU2psclpqSXJabmszTW1VMWFGQlNVRzQzT0hwUmNtWnRSbkZFUVdkcWJHSTNMMHREVFVoT05YQkpXR2xJTkRaMmJTOWljM1k0UVNZamVFRTdSRm92TlhZck5VUTJRbnBTZG5CRVNHWlBXR3R5VkZCTk9XbzJZelJGVmpsRmNDdHhNMmRJZUVsbGRFY3ZiVlU1ZURreVdEUmpOV2RtU2pGMllWaGFiVkJXVVc4M1ZFaEpMMnB2T0NZamVFRTdXbk55TTNwT0sxZ3piVTQwYmxocGQwa3JjMWMxVGxsaWFVZDFla3RoWmxCcE0xVmtVRVZhYzNCU2FteHBPRkJwZVRVcmVuTTFRaXRKTmxOSU5EVkljRGgzSzJkT1QzWnlabFZNUXlZamVFRTdNM1p5V1RodlRHMU9XbGxwWlhaR2VGVldPUzlJVGxKTFNtbGhURFpPYUhsNGVWRkZORGh3UXpCU2ExZDRPREZsWlZCNmN5OU5VRk4yVDBkek5tSmFXREJqWkhCYU0yTnpUVU5ITXlZamVFRTdhRmxvUlZsblEzQlZhelJ4YTJZNFFYbDJPRUV2VFM4dlFVdDFUVmd2VTA1Q0wzcFNhWEoySzFZdk9FRTFiaTg1V0VkTUwwRkxVbTlRSzJGTlZscEdOVll2TlhsVk9IY3lPVE5JUmlZamVFRTdOV3QwYjNJMmVGbG5VMVF5Tml0c1QyNHJWVUZFTm1KbVMyY3JaVXQyVmxCNlRUZzBNMVp3SzFkT01UVm9PSFJVSzNBNVdWTkZNakUzUjBzNFNUVXpWbFJKUVdWb1FXRnRMMUUwY1NZamVFRTdPRkV2UzB4Nk56VjVXSG8zY0d4dksyOHpWaTlpWVdwTlNVeDFNM1ZLV0cxVmJ6RlRlbXB0VjI5NVptRnhVREZaY1N0eGMxWmthWEp6VmxGbGRHRndSSEJQYWxncmNYcEpNR3RPYUNZamVFRTdZbmt6VldsS1ZHdDVkMjlhUTBaeVVWWkpXR0pHV0cxUGJDODRRVTlTTDJ4aVZVNVRkRXhEVEZSTU5VcE1lV0ZQUWtoaU1HVkpZVlozWjBwdkwxUm1SbGh5VjB0MWVGWXlTM1Y0VmlZamVFRTdNa3QxZUZZeVMzVjRWalZDSzJaSU5XZ3JZUzlMWkhwd1JWZG9XRk15ZVROcll6VnRURkpTZVcxeFJrRndTSEZMTVV0amFtbHhMemhuWmxCbWJYWjZXQ3R1WmpBdlptWllabkZZTVNZamVFRTdWRFowS3pab2FUUXJjall6VUNzMlUwOTBabFJZY21seU1YcEdXRmx4SzJSbVMxZHZTalZaT0RSM2VqWnVSWGRHYmtwTVFtTnhRbFpyU2xadk1razRaVXBRWW5SdVVscHpabWxaTHlZamVFRTdWREZtVFU5NmN6UXdiWEZDZVVRMlUxRm1URzhyWnpRM05ubHNjM2hsY0U5cVYySktObTkxVDFFMFkwdFdOV04xYkV0YWVqVnBVV0Z5WkRsTWFteHFTMUJIUTA5SWJtWlNORGsxTmlZamVFRTdMMDVMTlRGVE5VOXJLMWd6WlU5Nk5XVnRPWGhJVlZOWVFrOHhSWEE0VVZOMk1IUnRPREJsYUVWQ2VGUTFMMk00VmpKNE1qTlFTMlpEZHpKSk9UUTFlVGt6YkRrM1FqbFNjMHgyVkNZamVFRTdOemx5Unl0cFRVNDBiMUYyUlhoR1VqWnBRakZDY0RNMGMwMHlUVnA0YlU5SlkyNXRZekp0ZVZsd09FVm9WWFIyZEROYVpqVlpPRFUyTlRWU01VcDBUVEZTU2toemJ6STBWREpqYUNZamVFRTdjVGhZSzFaR1ZUQTVObVJFSzA5WmJXOHdhMDA0WlV0UVVIWTNMMEZJZFRRM1VEZFdlbUZJU2pSbFZVaG5TRTlLTm1VM09GVllkRWR1Tm14Wk5taGFVak4wYmsxek1YSkxUMU5UVENZamVFRTdNSEF6Y2xoalJXUjNZelUyWlU5VlJIZHJZblp2VDBSUVJFeEJWR2RpYVZocFdEVjBaVm81VFRGMlYweGxTRlIxVFRCV1oycDRkbVJ4VG5CSVkyZHJTMll5YTFocWMyWkZiblIyYlNZamVFRTdNakJ0UTFWSk56bFlaeTloU0ZnME9DdFZRMGMwYURFM0wzZENaeTlYT1dJNGF6Wm1VSEF6YkZCVE4xTTBjVXByWjFad1JrbEpTMncyZG5oSlVHUmxWazB4Ylc5clNsUktSREptV2lZamVFRTdaVWRYVUZSUmFreHVkeTltZFc1bFZYVmxLMHd2ZDBGNmRpOUthQ3RaZGl0WksyWXZRVWx0WTFabGVDOXJhRFZCT0cwMk16VkZhWFowVnpCdFF6aDFNblZLYTAwd1owcGlhWEJHUWlZamVFRTdjMUl3ZUZadWF6TTFVR1pzY2t4RE9GSXdSek5WVDBOd1drOWhUVXM1ZDNkWlJVaEdXSGx5TlRJd1EweDVMelZ6TVZSU2IxcEVURVJhVkhSSVJUVndWVzltYVZoc1ZIVkdUa1EzTkNZamVFRTdWbVV6TDBGS1R5dGFUazh3TnpodFpGSjFMMDFoYldKU1lrYzViSFJ0YVUxbWNXaHZXaTlTU0VoblpHMVZlWHB0ZFVKVmR5OU1MM3BZSzFObk9IbFJNbTVzWWxReWRHUllkaXRWVlNZamVFRTdZM0JvWm05R1RITnZXakppWjBOR04xbHhPVUU0TVN0a2RreFFiRmN4VnpReGRUbFhNamxUZG05M1owWTFXa05QZGtOT1lYTmhaSG93U0daR1dHNVZkaTlQVkc1ck1WcEhSV1Z0WVNZamVFRTdaelpFTjB4c1dWWktLMm94UkdseFppdFhVSG94T0dkaE9XTktZUzlYU2s1TmRUVkRSbXBwZG14RllYTjROME5TVjJWUU5XTnRSbU5XVjJadE5TdFpkbXh5VW1SSk1WUjVOV1pRU3lZamVFRTdUbFF4VUZOd0wzRnhjRWRYVVM5WFJXeG9hbkYzTm1aSGNIaFdPSFpsV0hJeVEzZ3hMMVJNTWpSS1JVWnlaSGRVVTJ4U1ZUaEpOVVphY1VRMVJFTnlObWR6Wm5vM09HY3pPVGRDV2lZamVFRTdWMXAyU2pkMU5XUlpiMGxWZERKTVRUZHRhV2RpSzA5Q1YxaGxXaTlPTDJ4NmVYaGFRemd4ZFRsVE1HcGxiMmxSTVdGVFVXcHhSV3BWUm0wcloySmtPRlpsWW5vdmQwUlBWR1pyZUNZamVFRTdTbGRYU0ZSMFVXeFJaRXBEYzBzeEsyb3hSR2x5U3k5S016VjJLMU5tVGxWNU1uUnNaRTVoTm1jdk1reExPRlZTVTA0dmNVVkdhMk1yZVhSWU1uaFdiWFZMY0ZvMWFEaDZZVVExWkNZamVFRTdjMFJtWVRGbGVESldjMDVzV25sVGVrZ3JWa1ZYY25WbVdsRmpWbVZoV0dZdlQxUlFhMjFMWkc4M1pYaDJOMmxPWkdoTlJXbFJUamhuTUc1TGJucEJlRlpQVUV4UU5UbGxVV1JqZFNZamVFRTdWWFJZYld3d2RUVnJVRWRPWWpWV1VrZGlkMFZ4VFRaRUwxcEZXWEYzVEM5QlNubHJUbUl2ZVRoU01EbExOUzgwYkVocGNVUXZOWGcxT0hvMlJEVmpjMUJPUmk5eVZqZElXakl6S3lZamVFRTdaMmhUT1ZONmRDOXdRalJ2YVRGYWVqZExUVlphYW1Rdk9EVk5LMU52Y0RKVE0zTk1LelJxV0ZsVE9FbHJSR1UwUkZOamNXWlBiVXR6Y3pocUwyMTROVkU0TkhsSE1qQTJZVk16TVNZamVFRTdRbFpNUjNkMWJFTlRiRkl4UzJOVGVVOUNOMDVZZUVkTGIxUTRlbEJKZFc1aGFscFVOak5FU2toYU5taGlTbnB0YTJ0SlUwdGFSa2hUVVc1WlVESldkbTlRV1dwWk5raFdiVUkwVkNZamVFRTdka1V2V1RnM01qVXlUa1JRUlRWWksyNUpVR3hNTXl0bVkyWm5aa3hxY0RGbVZsUnZNRzFzZDFocWNuQXdlbWxXTjFsSU5FZFpabW81U0ZSNE5scDJSR2RxU1RoWU9GUjRUMHhYTlNZamVFRTdZMVZVYVVwUVFtVTBaWEl2UVVwVksxRjBUSE55UXpNeEsyVlRUemwyTjJobFkwUkpaVlZqUVU5NFZXWTRWMlJ0VUdKdlVHWlRZVGRWZVVwTlQxRkVNaTlaZGxwMVNWSkhZWGhMVWlZamVFRTdOV1ZZTjJVdmRXVm1abTFzU2xRNGVXUlNTQ3RZWW1ZNVVUaFhXblZwYkNzMlFUa3ZNM1Z1TjFwM1dIRmFiak5tTjJ0UVdYWlFTR3Q2VXpsbWMwaHRiV1JNVXpsME1FeFNNM3BWUVNZamVFRTdRM0ZEVTNOd0wyc3ZWakU0WVRZelVqWjFWMHRXUkdOSWNDdHdOa1IwWm5OeVJuRlpWMkZxVDFBNFdEWXZURGR1YUhObGMyRjBXVEowTTNCMGRHVlBiRzVqUlhKalVuaDBPRVF3TWlZamVFRTdNamx0U0ZkdVZXUmpOa1JLYW1wSmFWSkhOR1pQTkdGdVRHcHFURWhIVWpSYVl6WTFTRGhtWVRsQkwwdDJlVWh3T1hwR1NEVm5kbkJKTjJ0eGVDdHlWMmxyVFVrelZTOWhiQzk1ZFNZamVFRTdORmgwTVN0WGNERXJiMDFVZDBSYU5tNHlaVGRLYUUxRVVFMXBXR05QTnpNclptczVXbnBWVUdGUGVGWTRXQzl0WkM4MVRWQjZSaTk2U0hvdlFWQkZlbWx4WXl0VVVIcHhPREFyVlNZamVFRTdaRVZZVWpsT2RHSkhZVEZUVWpWUk9YcElUVEJ1UzFFeFR6WlRlR2x1TUZseGJrNTRMM2RCTlV4bWJVSk1RVGhqWkhSd2RIVTNRMmw2VW5kNlJqRlFhVzlyYldSbWRsVTBjVGc1TUNZamVFRTdlWHAxTDAxdWJVSlpjbkV2YUdkMVlpdFZkbEJtTXpCdmFtbzFkVEZYV2pOUVkyczBWbVpSTXpWblpWWk1SSGx5SzFGMWJ6Wk1XazlhVldkR2N6QjBkMUZCV2xwSWRsbFhaSGxDTkNZamVFRTdibTlQZDI5TlEzWkhabmxYTDNkRVNtNDJSQzlCVFZwYVVDdFVSVzFMY0dZcldsZDBNeXR6WldWa1duVnllVkYxTUdReFRHSjNjbGhhU1ZsWVMxSnZkbmxCS3l0d2VGWTJOU3RZZGlZamVFRTdOVWhtYkRseVpteFRlREZQTkhaYU55czNkVFJGYTNWbVVXMVNSV2RyWkdGMFJuaFZUVkV3V2l0Rk9Hb3hSMHR2WmxkMksyTlpObUYyWVVoU09WUlpObFJNU1VKbFRHTm5aWFpFU0NZamVFRTdVM0pOYWt0QmMyeGhWVUUwYVcweldHWkdWVGN2VG00NGJtUlBkamxOWmxoSlRDdFRNV2s0ZFRaTk1FNTJXbU5RVmpWd1dreE1TMjloVW00MVprWjVORGxFYVhJMU1qQlhkMGR2TmlZamVFRTdlRmsyWlhvcmJVeDVOR2wwZWtsQ1ZYRktXRU5qY1dKV2NGaERjalpUT0hObWJFNDFZeTlNV1RNdmJUSXJkbTR4U2psUWRIQklhRFY0Y2tWSk5rdGxXbFZqYm5FM2FqUkdLMloyWnlZamVFRTdWalJFY2xkelpWbDJVRkJ0ZGpFMWRWWjZjVmR2VTNKRVlWZDVialJWUkU1VFQwdE5TRGRMY2xnclNqYzBWbVV5WVV3dmVtcElOV1ZVVkd4SGRHRnNaRk0yYVhrdmRrUmhSMDlQUmlZamVFRTdSMDg1UmtSNGVVMHhUMnhUVWxoM1IwSlliRkExYkM5c2NuRm1hMUJXYjBJMk5YVmtVSFZoZGxsWWVXZHZkMHRJWkVod09Xd3hNazh6V0hGUVFVdDJaRkI1YUM5TmMyRTFOVWgxTnlZamVFRTdkbGR3ZGpsT01FSlRUbEoxUkhWWWFGWkRObFJPTjJ4VldVaDRTMnM1T0ZabVQzWnVabnBzY1hadEwzcENVSEZzTmpkalYxbHdXakl4WVhKRVJGZzBTVEZJTm5velR5dEdXSEZRYkNZamVFRTdTQzl1UjNGbE9EQjRUSFo2U21aNVYwNTZUWFpLVEVjelZsZGxUVVZpWlhFM1ZraE1lRlZFWW5nNFFYRlRaVnBtSzJObFprNTBhSEprY0ZvMlQzY3hUM2QyVjB0eVpXdGxhMGxMWWlZamVFRTdialozUzNSNFJrOXFSSEl3TmpCSFMzRnVOVFVyV0ZnNGRUWllOVkl3WkRjeVZ5OWhNSFEzYkZSamVrZHdTa3g0YTJobVFrSXdWVVZ0WnpKNFZtbElOV1ZtYkhweVVHNW1WVFZNVnlZamVFRTdlR1JNWlRGMFVYSllNVGRLZFhOVGRWUjRRVlZpYzNwalZGRmxNMVZaY1RsR09IcG1PRFF3ZWpKSGFYb3pkV3RoY3pFM1pWY3dZbE5PWVhsM2FWQXhVVzlLU1ZKc1duRk9WRzlFTVNZamVFRTdPRkpwY25nelVYUllkVGxITVdsNk1WY3dZM0JqVjFWNVZGSnJSMnhsU25GV1VITjNNbEIwYUZZM1NEVTVPRFJoTVRWNk9IaEVVVGxLVmpWT1VGTlplRmRrY2tneGJXUmhaM2wyT1NZamVFRTdlRWx5YzNFdlZHMHlkMWx2TkRRNFVqVjJUbUY2VlZSNmVqUkpMMVJsZHpjdlRtdzViQ3RUVFdOUWJIWXdNM1V2T1hwNlpuWkVTbFZ0TTBKd0wyUlZOakF2ZVN0MmRESjVUMUIwVFNZamVFRTdlRzU1T1VSSVZTdDZhMk4xVEc1WFdIWTJaVGM1Y2tkUVRETnRVRmhtU2xkelV6SXhlRU4zYWtSQ1lqSjNhekp5TkUxd05rSnhaRWRIZUVocWJYcDZObVZIYjJoWlVIVk1lazlvTVNZamVFRTdLMlp6TDB0WmVVY3pPRlZtTUdvNVpsWkpkbEF5Y1ZkdGNtVmxUSEpWTjBsek9YSlBZbHByV214TGJqUlpTVEZaUldWTGMzQkhXU3RFUkV0RlVrVnFaREoxY3pGMVRFeE5OVWx1TUNZamVFRTdiWFoxV2xnMU5EZ3ZkMEkzTldwMVVEQmFjR2wyU0hCb1dVdHpZV2NyY0dOT2VTdEZjMEoyVTNZeVZTc3ZaV3hNVGtodmFHbElSa3cyZG5WalRIUnFkSEZsY1d3MFpVOTRhaXN5V0NZamVFRTdORFpFT0VFNU1FUTRibTgxWkVkc1psWTFWMmd4U3pSVlJ6TldUbmhpT1M5cFNGSXlVRkZxSzA4cldYVm1kRk53SzJkbGEyWmhOMHhTWlhrMFQwVnVTMkY1VXpWbU1HWm1NM05YZENZamVFRTdUSHA2U0RWQ09IZDBSRWxFZDNGUVYyaHhabE4xU1hFM1RYQXZWV1Z2VURCcVRUWlZUV1Z4ZURKUU4waFROSE4xYnpkTmVqQm1hVTlyYUN0UFdHTTVNWE55ZVVNNWN6Uk1lVE5pYkNZamVFRTdRbU5TY2t4Rk0ybHlhVzh2V0c1TmVtbFphMmM0ZHl0ck5ITnpZMnRDVDFCTFVYUlhlVXhaSzB3dmVrOHZkMFJLYUN0WmRpdFpLMll2YVZwNFZqWTVLMU51TldJclUyUm1PR3BTWVNZamVFRTdhbkVyYkVwa00ycFlSWGxIV201c1ZUaFdTVFJwYVU5dk1uaFdiazB6TlVwbWJHWk1SVEJhTUU1Rk5VTnVTa3B3TVZsbE5FbHJlRlk0TW1adFpEVlFaemh3WldOaWVsSTNZVlp3WWlZamVFRTdVbEZyTVhGNk1FeHBUMUpsVVZaeFFVTnhiVzl5TTNoV2JYVnFLMXB5TjFaUUsyTm1aazB5YlROcmFsTjBjRVV4YmtoaWRUSTFSVVYwTVVWVlUzQTJPRmRXY1dWQmIwOHlTM05YTHlZamVFRTdTbUl2ZVZvclp5ODRXbHBRSzFSRmJVdHpLeTlPZWpocVpHUjFUbU4xTDAxSWJHMUpXR3RHTmpWdWRUZEJSVXhMYTNKaWVVMW5ZV2RrVjFCNFZYSlhjRFpaY1RobmRXUkxPREJoUkNZamVFRTdTMXBNYlRCMlpFeHNXR0l4U0dwc2RIbExOMlpoU1ZoRGNrcFFURWcxZWl0bU9VSnVVV3BWY0U1U2RFWkpPVk13ZG0xTk5uTnZOMEl5Y2tsdWRIaGlRWEkyUnpGSWVsQlpLMkZRZVNZamVFRTdhREZxVnpkSlJrbGlkbE5NTkhSRmVIRXdZbkpDU1hKdllXWjVjMFE0SzNWTGRteG1lV1k0UVRod1ltOXVMMDFtWVM4NFFVbzFZMHQyY0M4NEsxaHVWRGh5WkZnNVRGbEdjbGxUYXlZamVFRTdabmxITldvdlYyRkVRWEkxVlRCb09WaFVWVmxJTUdSeWFHUlRRbEF4V25KUmRVcDNNVVJZWjFrdmFuSlRkbFJEY2tzdk1HZ3JaRmd2VEZRMWF5ODBUeTkzUkRZMFJsRlhjVmR1TlNZamVFRTdielowUld0UGNYYzJNM0ZGVldKak5EUTNjR0oxV2xaaGJFOVJSV2RaUVRCNFZtdFFhek5UTDAxbGJDdFRMMUJRTVcxNGRXSlBUMkpVTkZJckwybGxTbGR3VDBFeFF6UlhkRVZrY3lZamVFRTdWbGx5SzFoeFZ6QnViblo1T0d4NlVYZDBjVTV4UjBSa1JDczVWMmRRYzFScGNqZFhlRll5UzNadWVpOUJTbmxyTDNkQ055OU1NeTlCUW1sMVppdEtValJ4YVZBclkxWXZLMjF1THlZamVFRTdRVTlxU0M5eldYaFdOeko1YUdkV1dWWkNNa2xRVVdwR1dIZFVhRlkzUWpWTk1VNVFTbTV1ZDBoV05IbEZkRzVzZEV4d1owdHNUMWgzSzI5Q00waG1ZblF3ZW1OYWJ5dEthakpsVnlZamVFRTdNREF2UVhwbGNuQnpLMnRpVXpkMGNua3lhWFZ5VjFaYWNtVmFVVGhWY1VkeGMzQTJSVWhPVDFGUllVd3hSVnBEVVhOamEyczRNaXRUZEVzNGVWYzJhVFF2WTFocldYQkNaVWxCV0NZamVFRTdWV0l2UXpGbWRFcFZNWEE1TVUxNVpFNXhOVmxVZEhrM2JsYzVjR1JzV1hSWVIzQmlVMGhMV0ZnNWIyVkZOamx3UlcxclpXRktaa3czZVVOaFYwOVRTMDVhZDBOeGJqRnNWakZLUnlZamVFRTdOVWQ2TnpVd1IweFdhV05QUzI1bk9WUXlUbEJHYkRoUWFVSXpSeTkyWlRCbFZIWjVOVEIyZVRsS09XSnJaalkzY1ZaTFRHTk5ka1paZDJWMmNIQldjVVU1UTNoT1pteDJiV3N4VnlZamVFRTdkbXhzTWpWU1pYbzNURGREZUdGVk9GSlFTR3MzS3pjelJEbE1USE4zU0dWUVJTOTZWemg1Tm1SeVQzRlhkSFJ3TlVWNVYwRnJVamRvWldwMU5VWldWVGt4V0doelptWlBhamRPTUNZamVFRTdPSE5qVTFwbWVGQnVablJLY2pobGIzbDRhbW96UlV3ek4zbG1OMGh4TDJ4VGVHNXpVRXhYYlRKck5FbHVhWFF3UldsdWNYSkZWa3N2VWxkdFlWQlZla1Z6YTJsUFZuWmlPVzAwV2lZamVFRTdXVGxRUTBWMVdXbEZNWGxvZWxoNFppdGFNeTlCU2sxUWVrWXZla2g2THpoVVQwdHpNQzlNWWpnNFlsaDVaRFZaVkZKYVRrbGxPRnBLV2twbVdGZFpVbW81TkdFd05HeEhObVpRUmlZamVFRTdWMVJUTHpnMVV6SjJjSFEyV0d3eEwxVndPRWhMTmtoSGRuWlRURVpZYVhadGNucE9jVmh0WWxoeWNsZDBVa3N2VjNKd1oxTnBRV2hGVmxaRGIybEJhemRMYjNkeE9Vd3dibmw2WkNZamVFRTdObFl2ZW1veE5Xc3hTemRSZUZOaGVFNWFlWGRKZDBsUWIxSXpWVXQ0ZGxFdmQwRjRXbWxRWVdoM1MzaFFPR3g1UWl0YU1taEZPVUpNVEZndlFVcEZVMWx4T1VFeGFpOXVTU3N2ZENZamVFRTdkazl6YUhOeVVWUXJWM0psZEhWaVduaDNiV3RMZERoVk5GbHBjWFF5VmxSMFZISjJNRlphZUdFdk9FRlBVVWcxV1ZoV2ExcE1hVGxzZEc1YVptcDBTbkpoVm00elJ6WXhhbGRUVFNZamVFRTdMM2RFUWxseEsyTlFVR1Z5WVVweEwyMTZWV1JTTUU4d0syODJXR05QY0hRM1ptbHhWVzlwY1hwalJqSlliWGRNVlVocWFGWTNlaXRZVDJnMmFrUXJVV1Z3VnpocllrTm1WV0pNVlNZamVFRTdXbUpoU25ScWVHMXBXa2s1Y1dSSGNIbEllbmRMSzJOMFRIWnVNQzlWTjA4dlVtVlVNbXM0WXpaeFpXaE5WR2gzVUhkM2NTdHNieTk2VWpoc1ptMU9Sa3cxVG1oVE5YUTFPVnAwU2lZamVFRTdhMWRUTkZKQmMyTjVjbnBWUTJwT2VWcGxTbGxtTm5aMloxWTRPRlF5TDIxRWVXUTFialJUU3pGdWNrZHJlbWd4U2taUlNGRXhWbWhZV210WlltcHpVbWhXTnpVMVpqaEJLMk5zWmlZamVFRTdTMng0V1hBcmJUZFhOSE5pT1ZGUVZrVkxRMkZHYWpSdlpWaE5WamhEVG5aRk5FWlRabnBTTDNwck0waDVhbW80YzJGaGVFRmtWMjExVEN0cE9HdFZNVnBGYW1wYWRuUkVZbXRYTWlZamVFRTdPRTFXWlhGaFVIRXJhU3RtTDBwTWVsRldSbXh4ZEhaTVlsaE5WR1ppYVdSc1MxTkpabVJUWkdvNVQwdDJhMWg2Um05SGN5dFdaazFGTW0wemNYUkNaVEpqWjJGTFZtRm5UVUZoY0NZamVFRTdURWRtTlZkd1ZVZ3JUMFpZZFc1c1JDOXVTa3hSTlU1TmFtZzRlbmRVVVdGcVJXOVdOMmt6VVZOU1V6QkdUMVpMYUd0Wk9YaFRibll5ZDB0ck0yMVVMMEZLZVZoMlZ6RnhNV0o1T1NZamVFRTdXbU5PU1hRemNtUk1aRUptVm5WV1QzaFlOR1ZZY0VGa2FVTlVXSEkwV1hGc1dEVTVaVnBpUkhwT1dXVlZPV0Z6Um10VE1uVnZURzl4YTNGc1NGWnNaVTVYVlRscVVtaFRieko0VmlZamVFRTdVSFk0UVc1R1ppOUJTMkZtTDI5NEx6ZEhUVlpsT1RSeEswTmpTM1p5TnpoNEwza3djeTlPUlVKMlRGUnFZall4UlhSSk5XRlZWMWxCWWtwS0wwSjFNM2w2U2pBcmIwMU9hamxNY2lZamVFRTdPV0p2VW14R2FtRlVlVE41WWpVME1UTjVUSEV3YldzMmNFUkpZa0phVDA0eldYWTVkVXBxTVd0cE0zQXpjalJPSzA5YWRXSkVTRXRNU0U0eFQyMHhWVGxRVEdoc2VUWnFPVlEyUVNZamVFRTdNSEpXWWtSV1lrTkhMM05LYkc1MFNqRTFVbmxNSzBsSk4wVmtRMFF3ZWxaVGFWbHRhVGxJYW5sU2JraHBhbmxsUkdadFJpOTNRMVJpZFZBcldXbDVMelZOZHpWMVRrd3ZRVWhRZWlZamVFRTdMMU00Y0RKcUwycFNPVGhtZFVRMlEyUXdhbEp1WkdkcFNVTjZUWGh2UVVKMVUxTmpNRzlFTVhCSlFYTjJTQzlRTXpWc1UyRnRPRzFxTmtjM1EzcHlkMjExYTBvMVZEbDFRMVV6TkNZamVFRTdaamhUSzFoWVptRklVVU5JY201Nk4zVTFORmgwZG5Rd05WTmpWMGcyWlhBdmJtVlJPSFoyT1ROTk5DOU1lamgwVWxwdFRGWTVZV3B5WkdvME4yRjZXV0pTWlVSNVpqVm1aMDh6ZWlZamVFRTdObFZoTjNSRWFUbEZUMWhWZFdReVNESkNOR1JhWTNjNVdGTlFaRFZ1ZWlzM016aDFhelZ4U0hKWVdYRTRhemg0WmpnME56Wk9jbVYxTXl0eWVUWjJZM2Q1V0RnM00wUjRURWhIVmlZamVFRTdWWGxIZEVGVWFYRllaamhCVVhJeVp5OTNSRlkzZFhZclVtTmxTM1V2TmtabE1FZ3ZRVXQyWkRFdmVVeHFlRlpRZGt4dUwwRkVhakUxUlRCcE5sTTJkWFpZTVdGWFRXaHNhblV5V0NZamVFRTdNR0ZxZFZrd1ZtVlllVmxyV1hGNlVIcHNOVlowZGs1SWJHazNNRU5oV25KWFF6YzVTVWRYVFVGemIybHNVMVZWUWpJdk0xaFVSbGRFWlZWbWVVSXdhbmt4TldwemRHTm5NVmMwZFNZamVFRTdTbUpLYldSWldGSkJjbU5yV2s1NVRpOTNRbkpHVlRRNE4yWnJlRFZPT0RGNmRtVjVlRkJ3SzNCMmRUazNZVVZMV2tRMGVXOVJWV0kxTUVSbEswdDJVRnAyT0VGdVJuRm1NV1l6VUNZamVFRTdiVTVVUldZMU4xRm9hSFkzVkVWSVlrWlhVaXRXTHpoQmJraEVlVzV3Wkhsc2VuRTVNVXh5Vld0YVFsZEdNRVZHZFZORVdEUnZNVm95WWpWR05tVkplRlkyTUdsSmFVdHBTMFpTVVNZamVFRTdSbFpXUmtGQlRtZEJRbWx5ZUdwNlppOTNRVFF5Tm1KeFYyOTZXQ3RuTm1kT1RrVTNSak56V2trdlZXaFdiVTVVTm1KTGVXeEdjaXQ2VVNzeU1qSkxjbEJLYmk5QlJHcHdTbTh5ZFNZamVFRTdWMlZ5TXl0MVJqTnpXbFZ1YVdoMFNYVkNURzh6U1dOd1NFeG1SSFIxVDA4dmFtbHlNRlI2Y2l0WVNHeFllbXBCY1RaMFlrVllWV0ZzV1V3clJUaEtNRWhYYmt0b1JFd3ZRVXBNUVNZamVFRTdha1pZYkdRMUwzcHBNeXM1U25OMlRVNUphbGRwVkZkMFYwRTNaa1Z6WjBJck5GbHhibEJzTHk5dVIycDVkbHBVY2s1eVIyOVVObk5GVG1aUlZsSmlVazQzVDBaaFUxUTNia2RMZGlZamVFRTdXRXhMZVhNM1J6QnBjemRQUmt4bE1XZFZTa1JDUjI5V1JsVmtRVUZOVmxOUWVtdzFRVGh6WldJM1VtSm1WMkppYmtwR1dEWjJaSGhJYUZCR1dISjNaV2d5VUdkM1NUbHpWbVZVTXlZamVFRTdNeTlQVEdGdFdXMTRPSGRzV1ZOa2EyNTBkVlJCWmpZMmVVdEVMMEZOUTAxV1ZISjVlaTk2YWxvMVdUQTJOVk0xTVcwcmJERm9iM3A1VnpNMFF6Tm5Ta2c0Tm1od1NHSXZRVWxOWlNZamVFRTdLMHR6YXk5TlNEaHZkRWs0Tldadk1WaDFiakF5U0ZSSk0yaG5hSFJ2TURSalNEUXdRVlV3UTJobFIzZEhTM0V6TldKbWJHUlpaVkptTUdvNVZYWndZbm81U1N0cWVqbFdWbGhxTmlZamVFRTdTSEZWY0hnNFpsWjRWbTB5UzNaRkx5dG9XSFJDTHpaMlpERXZlVXhxZUZZM1dtbHlSbEJRZGpWbVlWbzFjbk54ZEZNek1WTkdWRGxXZGtGUUswVnJMMjFVT0ZJeU9UYzRSMk0wZWlZamVFRTdOVTlJY1RsSVNFMVBObGhsT0dvNGJUWm9OWFU0YkdWamIzUkViR2RqY21SNmVIaFlUbWxtYVZOU1dGbExTbGxxTUhKVVkwNDVLMkpFVEVkSFUwaEZObGhVVkhrMFRYWkNXRTA0YkNZamVFRTdNelZxZVVwR0syRXhNVXhKWlUxaFZGZGlUWGcyUWxKQ1ExTmpjekJ2ZGtRNE0wYzNVMnRDY1dsVU0zZ3JORXBvTlNzdlRXazRPSGd6VURaSU1GaHRkV3gxZDFOcFp5dHlZM1pZWWlZamVFRTdZbko0Y2pCWWRqTTRRbEJTTmsxWmVIaFRLM0kzYmtZM1dUZFhiRzVRYUZrM05GQjBiQ3RQTlcxMk5XUXZiSEpHYjNsU05teHhlVXhNY1hCdk1GVllNbXhuTWlzMGRqYzVkVE5xYlNZamVFRTdTbkprWlZvcmJWQXdMMlUzVkhOaWMwbFpZWGxhWkRodVVXWjZaakl2WjFCUlRURnFNSEp6Vm1ScGNuTldaR2x5YzFaa2FYSnpWbVJwY25OV1pHbHljMVprYVhKelZtUnBjbk5XWkNZamVFRTdhWEp6Vm1ScGNuTldaR2x5YzFaa2FYSnpWbVJwY25OV1pHbHljMVpYYmpCMlZWZDJTREZoU0doWGJrdHVaVzVtUmtkNmVFZzRPSFl3U0N0dWNtWXdUMlkyV1RsS1puSnNTMlZzTmlZamVFRTdaUzl3TVRjNEx6UlZlbU5rYm1OWVJIWTVUSGt6WWpOQ2VHbDJjbkptT0VGSVpXMUlOVXN2TkZJNVpIRTRkamhCUldaR2RVaHlNRFFyYmpNNVEyNWxiakp4TnpBMllsWjROMUk0VXlZamVFRTdkalpJTkRWelpYZG1lUzlJZGk5bVpXWmtMMUl2VkRGbGQxcHdNM0pJV1hFM1JsaFpjVGRHV0ZseE4wWllXWEUzUmxoWmNUZEdXRmx4TjBaWVdYRTNSbGhaY1RkR1dGbHhOMFpZV1NZamVFRTdjVGRHV0ZseE4wWllXWEUzUmxoWmNUZEdXQzh5VVQwOVBDOTRiWEJIU1cxbk9tbHRZV2RsUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2UVd4MFBnb2dJQ0FnSUNBZ0lDQThMM2h0Y0RwVWFIVnRZbTVoYVd4elBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlVtVnVaR2wwYVc5dVEyeGhjM00rWkdWbVlYVnNkRHd2ZUcxd1RVMDZVbVZ1WkdsMGFXOXVRMnhoYzNNK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK2RYVnBaRG8yTlVVMk16a3dOamcyUTBZeE1VUkNRVFpGTWtRNE9EZERSVUZEUWpRd056d3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlJHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09qSTNZV1ZsWkRrNUxXSXlNREV0TTJFMFppMDRZakZrTFRFNVlUWTRNR015T1daa1l6d3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3lOMkZsWldRNU9TMWlNakF4TFROaE5HWXRPR0l4WkMweE9XRTJPREJqTWpsbVpHTThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEVaWEpwZG1Wa1JuSnZiU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUR4emRGSmxaanBwYm5OMFlXNWpaVWxFUG5odGNDNXBhV1E2TUdRME5USXlOVEF0TjJZMFpTMDVaalJoTFdKaVlXTXRaRGM1TWpGbFltWXpaRGsyUEM5emRGSmxaanBwYm5OMFlXNWpaVWxFUGdvZ0lDQWdJQ0FnSUNBZ0lDQThjM1JTWldZNlpHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09qQmtORFV5TWpVd0xUZG1OR1V0T1dZMFlTMWlZbUZqTFdRM09USXhaV0ptTTJRNU5qd3ZjM1JTWldZNlpHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFVtVm1PbTl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDUxZFdsa09qWTFSVFl6T1RBMk9EWkRSakV4UkVKQk5rVXlSRGc0TjBORlFVTkNOREEzUEM5emRGSmxaanB2Y21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lEeHpkRkpsWmpweVpXNWthWFJwYjI1RGJHRnpjejVrWldaaGRXeDBQQzl6ZEZKbFpqcHlaVzVrYVhScGIyNURiR0Z6Y3o0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwRVpYSnBkbVZrUm5KdmJUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9raHBjM1J2Y25rK0NpQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNlUyVnhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pCa05EVXlNalV3TFRkbU5HVXRPV1kwWVMxaVltRmpMV1EzT1RJeFpXSm1NMlE1Tmp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF5TWkwd05TMHlORlF4TmpveE56bzFPU3N3TVRvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnU1d4c2RYTjBjbUYwYjNJZ01qWXVNeUFvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pJM1lXVmxaRGs1TFdJeU1ERXRNMkUwWmkwNFlqRmtMVEU1WVRZNE1HTXlPV1prWXp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF5TWkwd05TMHlORlF4TmpveE9Eb3hNQ3N3TVRvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnU1d4c2RYTjBjbUYwYjNJZ01qWXVNeUFvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BHbHNiSFZ6ZEhKaGRHOXlPbE4wWVhKMGRYQlFjbTltYVd4bFBsZGxZand2YVd4c2RYTjBjbUYwYjNJNlUzUmhjblIxY0ZCeWIyWnBiR1UrQ2lBZ0lDQWdJQ0FnSUR4cGJHeDFjM1J5WVhSdmNqcERjbVZoZEc5eVUzVmlWRzl2YkQ1QlpHOWlaU0JKYkd4MWMzUnlZWFJ2Y2p3dmFXeHNkWE4wY21GMGIzSTZRM0psWVhSdmNsTjFZbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeHdaR1k2VUhKdlpIVmpaWEkrUVdSdlltVWdVRVJHSUd4cFluSmhjbmtnTVRVdU1EQThMM0JrWmpwUWNtOWtkV05sY2o0S0lDQWdJQ0FnSUNBZ1BIQmtabmc2UTNKbFlYUnZjbFpsY25OcGIyNCtNakV1TUM0d1BDOXdaR1o0T2tOeVpXRjBiM0pXWlhKemFXOXVQZ29nSUNBZ0lDQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNEtJQ0FnUEM5eVpHWTZVa1JHUGdvOEwzZzZlRzF3YldWMFlUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4Ky8rSU1XRWxEUTE5UVVrOUdTVXhGQUFFQkFBQU1TRXhwYm04Q0VBQUFiVzUwY2xKSFFpQllXVm9nQjg0QUFnQUpBQVlBTVFBQVlXTnpjRTFUUmxRQUFBQUFTVVZESUhOU1IwSUFBQUFBQUFBQUFBQUFBQUFBQVBiV0FBRUFBQUFBMHkxSVVDQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSWTNCeWRBQUFBVkFBQUFBelpHVnpZd0FBQVlRQUFBQnNkM1J3ZEFBQUFmQUFBQUFVWW10d2RBQUFBZ1FBQUFBVWNsaFpXZ0FBQWhnQUFBQVVaMWhaV2dBQUFpd0FBQUFVWWxoWldnQUFBa0FBQUFBVVpHMXVaQUFBQWxRQUFBQndaRzFrWkFBQUFzUUFBQUNJZG5WbFpBQUFBMHdBQUFDR2RtbGxkd0FBQTlRQUFBQWtiSFZ0YVFBQUEvZ0FBQUFVYldWaGN3QUFCQXdBQUFBa2RHVmphQUFBQkRBQUFBQU1jbFJTUXdBQUJEd0FBQWdNWjFSU1F3QUFCRHdBQUFnTVlsUlNRd0FBQkR3QUFBZ01kR1Y0ZEFBQUFBQkRiM0I1Y21sbmFIUWdLR01wSURFNU9UZ2dTR1YzYkdWMGRDMVFZV05yWVhKa0lFTnZiWEJoYm5rQUFHUmxjMk1BQUFBQUFBQUFFbk5TUjBJZ1NVVkROakU1TmpZdE1pNHhBQUFBQUFBQUFBQUFBQUFTYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGaFpXaUFBQUFBQUFBRHpVUUFCQUFBQUFSYk1XRmxhSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZV1ZvZ0FBQUFBQUFBYjZJQUFEajFBQUFEa0ZoWldpQUFBQUFBQUFCaW1RQUF0NFVBQUJqYVdGbGFJQUFBQUFBQUFDU2dBQUFQaEFBQXRzOWtaWE5qQUFBQUFBQUFBQlpKUlVNZ2FIUjBjRG92TDNkM2R5NXBaV011WTJnQUFBQUFBQUFBQUFBQUFCWkpSVU1nYUhSMGNEb3ZMM2QzZHk1cFpXTXVZMmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWkdWell3QUFBQUFBQUFBdVNVVkRJRFl4T1RZMkxUSXVNU0JFWldaaGRXeDBJRkpIUWlCamIyeHZkWElnYzNCaFkyVWdMU0J6VWtkQ0FBQUFBQUFBQUFBQUFBQXVTVVZESURZeE9UWTJMVEl1TVNCRVpXWmhkV3gwSUZKSFFpQmpiMnh2ZFhJZ2MzQmhZMlVnTFNCelVrZENBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdSbGMyTUFBQUFBQUFBQUxGSmxabVZ5Wlc1alpTQldhV1YzYVc1bklFTnZibVJwZEdsdmJpQnBiaUJKUlVNMk1UazJOaTB5TGpFQUFBQUFBQUFBQUFBQUFDeFNaV1psY21WdVkyVWdWbWxsZDJsdVp5QkRiMjVrYVhScGIyNGdhVzRnU1VWRE5qRTVOall0TWk0eEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCMmFXVjNBQUFBQUFBVHBQNEFGRjh1QUJEUEZBQUQ3Y3dBQkJNTEFBTmNuZ0FBQUFGWVdWb2dBQUFBQUFCTUNWWUFVQUFBQUZjZjUyMWxZWE1BQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtQQUFBQUFuTnBaeUFBQUFBQVExSlVJR04xY25ZQUFBQUFBQUFFQUFBQUFBVUFDZ0FQQUJRQUdRQWVBQ01BS0FBdEFESUFOd0E3QUVBQVJRQktBRThBVkFCWkFGNEFZd0JvQUcwQWNnQjNBSHdBZ1FDR0FJc0FrQUNWQUpvQW53Q2tBS2tBcmdDeUFMY0F2QURCQU1ZQXl3RFFBTlVBMndEZ0FPVUE2d0R3QVBZQSt3RUJBUWNCRFFFVEFSa0JId0VsQVNzQk1nRTRBVDRCUlFGTUFWSUJXUUZnQVdjQmJnRjFBWHdCZ3dHTEFaSUJtZ0doQWFrQnNRRzVBY0VCeVFIUkFka0I0UUhwQWZJQitnSURBZ3dDRkFJZEFpWUNMd0k0QWtFQ1N3SlVBbDBDWndKeEFub0NoQUtPQXBnQ29nS3NBcllDd1FMTEF0VUM0QUxyQXZVREFBTUxBeFlESVFNdEF6Z0RRd05QQTFvRFpnTnlBMzREaWdPV0E2SURyZ082QThjRDB3UGdBK3dEK1FRR0JCTUVJQVF0QkRzRVNBUlZCR01FY1FSK0JJd0VtZ1NvQkxZRXhBVFRCT0VFOEFUK0JRMEZIQVVyQlRvRlNRVllCV2NGZHdXR0JaWUZwZ1cxQmNVRjFRWGxCZllHQmdZV0JpY0dOd1pJQmxrR2FnWjdCb3dHblFhdkJzQUcwUWJqQnZVSEJ3Y1pCeXNIUFFkUEIyRUhkQWVHQjVrSHJBZS9COUlINVFmNENBc0lId2d5Q0VZSVdnaHVDSUlJbGdpcUNMNEkwZ2puQ1BzSkVBa2xDVG9KVHdsa0NYa0pqd21rQ2JvSnp3bmxDZnNLRVFvbkNqMEtWQXBxQ29FS21BcXVDc1VLM0FyekN3c0xJZ3M1QzFFTGFRdUFDNWdMc0F2SUMrRUwrUXdTRENvTVF3eGNESFVNamd5bkRNQU0yUXp6RFEwTkpnMUFEVm9OZEEyT0Rha053dzNlRGZnT0V3NHVEa2tPWkE1L0Rwc090ZzdTRHU0UENROGxEMEVQWGc5NkQ1WVBzdy9QRCt3UUNSQW1FRU1RWVJCK0VKc1F1UkRYRVBVUkV4RXhFVThSYlJHTUVhb1J5UkhvRWdjU0poSkZFbVFTaEJLakVzTVM0eE1ERXlNVFF4TmpFNE1UcEJQRkUrVVVCaFFuRkVrVWFoU0xGSzBVemhUd0ZSSVZOQlZXRlhnVm14VzlGZUFXQXhZbUZra1diQmFQRnJJVzFoYjZGeDBYUVJkbEY0a1hyaGZTRi9jWUd4aEFHR1VZaWhpdkdOVVkraGtnR1VVWmF4bVJHYmNaM1JvRUdpb2FVUnAzR3A0YXhScnNHeFFiT3h0akc0b2JzaHZhSEFJY0toeFNISHNjb3h6TUhQVWRIaDFISFhBZG1SM0RIZXdlRmg1QUhtb2VsQjYrSHVrZkV4OCtIMmtmbEIrL0grb2dGU0JCSUd3Z21DREVJUEFoSENGSUlYVWhvU0hPSWZzaUp5SlZJb0lpcnlMZEl3b2pPQ05tSTVRandpUHdKQjhrVFNSOEpLc2syaVVKSlRnbGFDV1hKY2NsOXlZbkpsY21oeWEzSnVnbkdDZEpKM29ucXlmY0tBMG9QeWh4S0tJbzFDa0dLVGdwYXltZEtkQXFBaW8xS21ncW15clBLd0lyTml0cEs1MHIwU3dGTERrc2JpeWlMTmN0REMxQkxYWXRxeTNoTGhZdVRDNkNMcmN1N2k4a0wxb3ZrUy9ITC80d05UQnNNS1F3MnpFU01Vb3hnakc2TWZJeUtqSmpNcHN5MURNTk0wWXpmek80TS9FMEt6UmxOSjQwMkRVVE5VMDFoelhDTmYwMk56WnlOcTQyNlRja04yQTNuRGZYT0JRNFVEaU1PTWc1QlRsQ09YODV2RG41T2pZNmREcXlPdTg3TFR0ck82bzc2RHduUEdVOHBEempQU0k5WVQyaFBlQStJRDVnUHFBKzREOGhQMkUvb2ovaVFDTkFaRUNtUU9kQktVRnFRYXhCN2tJd1FuSkN0VUwzUXpwRGZVUEFSQU5FUjBTS1JNNUZFa1ZWUlpwRjNrWWlSbWRHcTBid1J6VkhlMGZBU0FWSVMwaVJTTmRKSFVsalNhbEo4RW8zU24xS3hFc01TMU5MbWt2aVRDcE1ja3k2VFFKTlNrMlRUZHhPSlU1dVRyZFBBRTlKVDVOUDNWQW5VSEZRdTFFR1VWQlJtMUhtVWpGU2ZGTEhVeE5UWDFPcVUvWlVRbFNQVk50VktGVjFWY0pXRDFaY1ZxbFc5MWRFVjVKWDRGZ3ZXSDFZeTFrYVdXbFp1Rm9IV2xaYXBscjFXMFZibFZ2bFhEVmNobHpXWFNkZGVGM0pYaHBlYkY2OVh3OWZZVit6WUFWZ1YyQ3FZUHhoVDJHaVlmVmlTV0tjWXZCalEyT1hZK3RrUUdTVVpPbGxQV1dTWmVkbVBXYVNadWhuUFdlVForbG9QMmlXYU94cFEybWFhZkZxU0dxZmF2ZHJUMnVuYS85c1YyeXZiUWh0WUcyNWJoSnVhMjdFYng1dmVHL1JjQ3R3aG5EZ2NUcHhsWEh3Y2t0eXBuTUJjMTF6dUhRVWRIQjB6SFVvZFlWMTRYWStkcHQyK0hkV2Q3TjRFWGh1ZU14NUtubUplZWQ2Um5xbGV3UjdZM3ZDZkNGOGdYemhmVUY5b1g0QmZtSit3bjhqZjRSLzVZQkhnS2lCQ29GcmdjMkNNSUtTZ3ZTRFY0TzZoQjJFZ0lUamhVZUZxNFlPaG5LRzE0YzdoNStJQklocGlNNkpNNG1aaWY2S1pJcktpekNMbG92OGpHT015bzB4alppTi80NW1qczZQTm8rZWtBYVFicERXa1QrUnFKSVJrbnFTNDVOTms3YVVJSlNLbFBTVlg1WEpsalNXbjVjS2wzV1g0SmhNbUxpWkpKbVFtZnlhYUpyVm0wS2JyNXdjbkltYzk1MWtuZEtlUUo2dW54MmZpNS82b0dtZzJLRkhvYmFpSnFLV293YWpkcVBtcEZha3g2VTRwYW1tR3FhTHB2Mm5icWZncUZLb3hLazNxYW1xSEtxUHF3S3JkYXZwckZ5czBLMUVyYml1TGE2aHJ4YXZpN0FBc0hXdzZyRmdzZGF5UzdMQ3N6aXpyclFsdEp5MUU3V0t0Z0cyZWJid3QyaTM0TGhadU5HNVNybkN1anU2dGJzdXU2ZThJYnlidlJXOWo3NEt2b1MrLzc5NnYvWEFjTURzd1dmQjQ4SmZ3dHZEV01QVXhGSEV6c1ZMeGNqR1JzYkR4MEhIdjhnOXlMekpPc201eWpqS3Q4czJ5N2JNTmN5MXpUWE50YzQyenJiUE44KzQwRG5RdXRFODBiN1NQOUxCMDBUVHh0UkoxTXZWVHRYUjFsWFcyTmRjMStEWVpOam8yV3paOGRwMjJ2dmJnTndGM0lyZEVOMlczaHplb3Q4cDM2L2dOdUM5NFVUaHpPSlQ0dHZqWStQcjVIUGsvT1dFNWczbWx1Y2Y1Nm5vTXVpODZVYnAwT3BiNnVYcmNPdjc3SWJ0RWUyYzdpanV0TzlBNzh6d1dQRGw4WEx4Ly9LTTh4bnpwL1EwOU1MMVVQWGU5bTMyKy9lSytCbjRxUGs0K2NmNlYvcm4rM2Y4Qi95WS9Tbjl1djVML3R6L2JmLy8vKzRBRGtGa2IySmxBR1RBQUFBQUFmL2JBSVFBQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUlDQWdJQ0FnSUNBZ0lDQXdNREF3TURBd01EQXdFQkFRRUJBUUVDQVFFQ0FnSUJBZ0lEQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNRC84QUFFUWdDVHdic0F3RVJBQUlSQVFNUkFmL0VBUUlBQVFBQ0FRUURBUUFBQUFBQUFBQUFBQUFKQ2dnRUJnY0xBUUlGQXdFQkFBRUVBd0VCQUFBQUFBQUFBQUFBQUFFQ0F3Y0lCQVlKQlFvUUFBQUdBZ0VDQWdJSERnMFFCZ1lIQ1FBQkFnTUVCUVlIQ0JFU0V3a2hGREZCSWhWM09BcndVU1BVdFJaV2xyYVh0M2c1R21GeGdhR3gwVElYTjFlSFdMaVJ3ZUZDTTlNa3RIWFYxdGNZU0lqSVVuS1RaNmNaWXJJMEpUWjI4WUtTd21VbW1LSkRVMFExUldpbzZCRUJBQUlCQWdVQ0JBSURDd1lMQlFJUEFBRUNBeEVFSVRFU0JRWkJCMUVpRXdoaE1uRkNGSUdSb2JGU0k3TjB0RFkzd1dLeU15UVY4TkZ5Z2tOemcyVjJPQW1Tb21RMWRSYmhZNU5Ub3pSRVZSZnh3bFNrSlZabS85b0FEQU1CQUFJUkF4RUFQd0Mvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1VZCtjMXVPL0hCVDFkc0hOMnBXV05Ob2RUZ2VKc0ZrV1htVGlXM0d5bHdJN3pVS2o4Wmh3bkcxV1VtRWgxSHBRYXZRUTdMMmJ4UHZmZklqSnRNWFJ0Wi82VEpQVFQxNWNKdGJqR2s5RmJhVHowWVI5enZ1RzlxdmFhMXRwNVIzR01uZkt4RS9zVzJqNis2NDZUSFZTSmltSFdKNnEvdEdURkZvNDFtVVp1WmVkaERSSWt4OWZhRWt5WWlYL0FQQTdiTXMzYWhTSG9xVkgvd0MwNDlTVU5nM0dmY1QvQU5DMGRTZy8rbU85YmIydHJwVzI4M2s5V25HdE1mS2Z3dmEzR1AwMGo5eHFEMy8vQU5RM0RYTGZGNHQ0emEyQ0xmSmwzVzdpdHByL0FKMkREaHZGYlQrRzR0RWY1empTbDg2bmFyRXBDOGkwdnI2MGhFN0hOY2VsdThqb1pTbUV1ZFpUYUprNVdTTW9kZVo5eTJzMkZFMnIzUnBXWHVSejgzdGYybTFOTnZ1TnhYSnBQRzNSYU5mVGhGYWZ1eHJ4K01jM1VPMy9BUHFFZWI0czhXN3I0LzJyTnR1cXV0Y1dYY1liYWEvTkVYdk80aUptT0ZaNkppczhacmJreW0xajV5ZWpzbGxNd2RuWURtbXNISkVxT3ltMXI1RVhZR093bzdpdTErWmFTWU1TaHlOcEVmcVN1eUxWVEZyU1I5QzdpSkt1djcvMnc3bGhyMTl1M0dMUHBXWjB0RTRyVFBwRmVONnpyOGJYcEgrVE5IaDMzK2UzWGQ4MWR0NWoydnVIWnJYeVZpTW1PMWQ3Z3BXZWQ4bHFWd1o0aXZDZE1XMnkybU5kSTFpSW1UL1dlM3RZN2xvVTVOcTdPY2N6ZW43V0RrUDBWZzFJazFya2xDbkdJdDFXTDhPMG81emlFR2ZxOHhsaDhpSStxQjBEdUhhdTQ5cXpmUTdqaHZpeVRycDFSd3Rwem10bzFyYUkrTlptUHhiamVIK2QrSGU0SGJQOTcrR2R5Mm5jZGhwWHFuRGVKdGptMFROYTVzYzZaTU41aUpub3kwcGZUOVZ5TU9BN2FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0NYekFmTXNzNkcxdmRIY2NycjFLd3JsemFYUGRvd0RQMTJCWXRyT0xPeDdCWlJLSW9zeUNwSzJwVnFramNhZDZwaUtRdHNwQXkvNGQ0Tml0anAzYnZsT3FiYVd4NFo1YWM0dGtqMTE0VEZKNGFmbmlkWnJIbXQ5MEgzZDd6dDI5M1B0ejdUN2o2ZTR4VGZEdmU0MC9QUzhUMDN3Yk8zNnRxY2E1TnpIelZ0d3dUVzFJeXpBZEtseXA4cVRPblNaRXliTWZlbFRKa3A1eVJLbFNwRGlucEVtVEllVXQxOTk5MVpxV3RSbXBTak16TXpNWmJpSWlJaU9FUTh6TTJiTnVjMTl4dUwyeWJqSmFiV3RhWnRhMXJUck5yV25XWm1abVptWm5XWjR5MDRsYUFBQnZMQTloNTFxL0k0bVhhN3l5K3d6SllSR2hpNHg2eGtWMHMyRnJRdDJISk5oYVc1dGZKTnBKUFJua3VNUEpMdFdoUmVnY2ZkYlRiYjNETzIzbU9tWEJiblcwUmFQMDZUNng2VHppZU1URXZ2OEFqWGxQa2ZoM2RzZmZmRmQ5dWUzOTN4OEs1Y0dTMk8ya3pFelczVE1SZWx0STZzZG9tbDQ0V3JNY0UvbkQzelhhRE9IYXJYbkpZNnZEc3FlOVZnVmUwSXlXcTdEYitRcm93a3N0aW1hWStIV1Q2KzFhcGJabFVyVXRacVRCYlFoSzhRZVMrM2VUYnhiZTlnNnNtSGpNNFo0M3I2L3pjODd4NlJXZm40UnBONW5TUFR2MkgrOXJ0bmtWOFBpdnU5T0hZZDV0MDB4OXhycGoydWEzNWY4QWFxOEs3Vzh6cE01YS93Q3pUTTJtMGJhdFlpMDBhVkpXbEswS1N0QzBrcEMwbVNrcVNvdXFWSlVYVWxKVVI5U012WkdMSmlZblNlYjBHcmFMUkZxekUxbU5ZbVBWN0NFZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWpVOHpUbFRONCthZGo0aGhWbTVYYlAyMTc0VTFQWVFuL0JzTVh4V0kyMGpKOGxqT3Q5ejhTeWNSTWFnd0hTTnB4RDBoeVF5NFRrVG9PKytCZVBVN3YzS2Q3dTZ4YlliYlNaaVkxaStTZnkxbU9VMWpTYldqakhDdGJScGRxSDk0UHZUdWZhN3dPbllQSHMwNHZNZStkZUxGZWx0TDdmYlZpSTNHNHJNY2FaSjZxNGNObzZiUmE5OHVPOFh3S3JBejg4V25nQUFBQUFBQUV0WEFuekhMZlNNaW8xTHVxZllYK25uM21JRkprYnB2VDduV0NYRktRZzB0cGJlbTNPR3RyV254WWlUVklndEVhNHFWa24xVnpIM2wzaFdMdk5iZHc3YkZhZDJpTlpqbFhOK0V6eXJmNFhuaE04THpFVDFWM2YrMmI3c04vN2M1Y0hnL3VEa3k3cndHMXEweFo1MXZsN2Ryd2lZaUltK1hheE14MVlvMXZockUyd1JiVDZON0xOVGJWVjlXVjkzUjJkZmMwMXREaldOVmIxTXlOWTFsblh6R2t2eEoxZlBodVBSWnNPVXd0SzIzVzFxUXRCa2FUTWpHQ2N1TExneVd3NTYycG1wTXhhdG9tSmlZNXhNVHhpWTlZbDY4YkhmYkx1ZXp4ZHg3Ym14Ymp0K2ZIWEpqeTRyMXlZOGxMeEZxM3Blc3pXOUxSTVRXMVptSmlZbUptSDBCYmNvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWQy9NUjNGSTNIeXQyVk5SSk42Z3dPd1ZyREYya3ZOU0dHYTdESkVtRGFQeG4yVzIwUHg3YktWMkUxQ3ZkR1RjbEtPOVNVcE1iS2VIOXRyMnZ4N2I0dFA1M0xYNnQrY2ZOa2lKNHhQS2EwNmFUeS9Mcm84Si91bzg4eStmZTluZDl6Vy9WMnp0dVdlMzdlTll0RVk5cGExTWsxdEVSRTF5N21jK2FzOGZseVJYcW1JaVdFQTdPMTJBQUFBQUFBQUFFbEhCWHpBc200eTJNWEFzOGNzOHAwWlBsU0hIS3BoS0pkemdrNmM1NHI5eml2anVOS2RySDVKbTVNckRjU3l0YTF5R2V4OVRwU09sZVdlSDdmeURITzYyM1RqN3RXSWlMVHdpOFJ5cmZUWGxIQ3R0Sm1JaUluV3NSRWJiL2JkOTBIZVBaN2QwOGE4a25OdmZiZkxlMHppalMyWFozdk90c3UyNnBqWEhhMnRzdTM2b3BNemJMajZjczMrcmFLeFBMTWF6dkdxWE1NUHVvR1JZeGtVQml6cGJxc2ZLUkNud3BCZFVPdExMb3BDMEtJME9OckpMalRpVklXbEswcVNXQWQxdGR4c3R4ZmFidWs0OXhqblMxWjV4UCtXSjV4TWNKalNZbVlsN0s5ajc1Mmp5WHRHMzcvQU5nM0dMZDltM2VLTW1MTGpuV2w2VHltSjV4TVRyRnF6RVdyYUpyYUl0RXhHNFJ4MzFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYkcyUnNyQjlSWWJjNS9zWElvT0w0blFzSmVzYldjYmlpSlRpeWFqeElrV08yOU1zTEdZOG9tMkl6RGJqN3poa2xDVE14ek5oMi9lZHozVmRsc2FUazNGK1VSL0RNelBDSWoxbVppSWRiOHQ4djhBSFBCZXdianlqeXZkNDluMlRiVjF2a3ZyUEdaMHJXdGF4TjczdlB5MHgwcmE5cG5Tc1RLQXJlZm5HN0l2TEtiVjZCeENvd2ZHMjFLYWk1Um1jTnJJc3luRWgxWm9uTlZLSko0dlFvZGFNa3FqT290VkVhZTRuaTd1MU9ZdTArMm5iZHZTTW5kOGx0eG45YTBtYVk0NGN0ZUdTM0hsYlduRGhOWG1ON2tmZnY1ZDNMZDVObjdZN0hCMjN0TWNLN2pkVmpQdTc2VE9sNHg5VTdiREV4cEU0N1YzTXhwckdYajB4alBXK2FaelZnelk4cVZzMm51V0dYRXJjcmJMWG1BdFFwYVVtUm0xSWNwOGRxckZMYXlMb1p0U0dsOUQ5Q2lNZmV5ZUIrS1hwTmE3WHBtWTV4bHpheCtqcXlUSDc4U3hCdFB2Tis0YmJiaW1mTjNuQnVNVloxbkhrMk94aWx2d3RPTGI0OG1rL3dDYmVzL0NZU2NjV1BOcXcvWmR4WFlQdjZqcDlZWkpadnRSS3pOcWVWSlRycWZNa091SWJpM0ROdktsMldHZFRVMGhFaDZYT2hxTTFxZWVpcFNYZDBQdi90eG4yZUtkMTJTOTgrS3Nhemp0cDlUU0lqaldheEVYbm5QVDAxdHlpdlhNdHcvWmo3NHV4ZVhiL0Y0NzdvYmJiOW43cm10RmNlOHhXdEd4dmEwekVWeXhsdGJKdFAxWWpKZkxteFRNMnRrdmhyRWF6SERGN2ZrQWJTei9BQ3lQZ1dDWnJuTXRrNUVURE1TeVRMSlVjbHBiTitQanROTnVIbVNjV2FVSU4xdUdhZXBtUkYxNm1PWDIvYXp2OS9nMk5aMHRtelVwRS9EcnRGZGY0WHd2S2UrWXZHUEdlNCtTNTY5ZUR0K3czRzV0WFhUcXJneFh5ekdzOEkxaW1tdm9vd3lwVWliS2t6WlRxMzVVdDk2VkpmY1VhbkhwRWh4VHJ6cmlqTXpVdHh4Wm1abjZUTXh0aCtqaEQ4MytYTGt6NWJaODB6YkxlMDJ0TThabVpuV1ptZmpNOFphY0ZzQUFBQUFBQUFBQUdkdkNubkhtM0U3SmpySmFaZVY2ZHlLd1pkeTdDamU3cEZhOHMyMlhjcXd4VDd6VWF2eU5pT2dpZVpVcEVXelpRbHA4MExSSGt4dXErVCtMYlR5UGI2enBqN2xqclAwOG44UFJmVGpOSm5qOGFUTTJyenRXK3lYMjlmY1o1RjdJZDQvWk0wWk43NEZ1OHNUdXRwcjgxSjRSTzUyblZNVnB1SzFpSXRXWmpIdUtSR1BMTmJWeFpzTnEzVyt5c0gyN2h0Tm4rdXNpZzVSaWQ4d3A2dXRZSnVKSTFOck5xUkVseFpEYk15dnNZYnlUYmZqUHR0dnN1RWFWcEl5R3ZXLzdmdk8yYnEyeTMxSng3aW5PSi9nbUpqaE1UNlRFekV2YXZ4THkvd0FjODY3QnQvS1BGTjNqM25aTnpYV21TbXNjWW5TMWJWdEVYcGVrL0xmSGV0YjFtTkxSRXQ4amh1eUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPRDkrOGh0WThiY0ZsWjNzeTZUQ2lsNGpOTFJRamp2NUxsVmtnbStsVmpsVzdJanFuU1M4Vkp1ck5TR0l6WitJODQyajNRK3YyWHNlLzc5dTQybXhycnArYTg2OUZJK05waUowNVRwSEdaNVJFc2MrNS91cDRkN1IrTjM4azh2M0gwOFhHTU9HblRiY2JuSkduODNneHphdlhiakUydE14VEhXZXJKYXRlS3FKeXA1YjdONVhab2Q5bUVncWZFNmw1OU9GNi9yWkRqbEZpOE4wa3RtNnRha01ydUwrWTJnamwyRHlDVzZzelMwaGlPbHRodllmc1BqMnc4ZTJuN1B0STZzMXRPdkpQNXJ6K1B3ckg2dFk0VmpuTnJUYTF2RXYzbzk4Zk1QZXp5RC9lbmY3L0FFT3k0YlRHMDJXTzB6aDIxSjRhNnpFVGx6WGlJbkxudkVXdFBDbGNlS0tZcVlyajdyREFBQUxRdmxTOGpyYmNlbExiWGVYVDNyTEx0THlxbW5qMk1wZmZLczhGdVk4czhVVkplY2RVN0ttMHp0VkxnclVTU0pNVm1LYWpVNHRTandQN2k5bHg5dTduVHVHMmlLNE4xRnBtSTlNbGRPcWVYQ0xSYUxjK051dWVUMlAreWIzWTMzbnZ0N244VDc1bHRsNzU0OWZGaXJrdHh0azJlV3R2MmJxbVoxdGZET0xMaG1kSWlNZGNHc3phMHpNcHd4NDNTWXk4ejdhVFM4VHVRMHlJaGxicnVwY3pxbEUrbHhTQ2ozdFBJbzViaVNiY2FVVDdVU3hXcG8rcHBTNFNUVVNpSTBuMkR4VERYTjVIc3FXbVlpTTliY1BqVDU0L2Mxckd2NGZEbXc5OXdXK3pkdTlrUEt0eGdpczN0MlRkWXZtMTA2YytPY041NFRIR0s1Sm12SFNMUkV6RXhyRTB4aHMyL1A4QWdBQUFKOHZMSDR1YVkzYnhhMlcvdFRCS3pKcE9UYlJzYU9QYlNtQ1l1cWF0eDNGc1prVnNuR0x4bExkcFN5MnJPOW1tNjVIZVNoOHVqYnFWb0pTRllsODg4aDd0MmZ2bTJwMi9OTk1kZHYxelhuVzAzdmVzeGV2SzBhVWpUV05hNnpOWmllTDB6K3ozMlo5dnZjWDJhN3hsODA3YmkzZWJkOTV2aHJsdEhUbXhZOEcyMjlzZHR2bWlJeVlyUmt6WmVxYVc2YjhLWksyckUxbkFYbXJ3UnpqaWplS3ZLMTJibVdtYm1mNEdPWm9iRFpUNmFSSTcxc1kzbWpFWkNXSWR3MGxKcFpsdHBSRHNVSjhSdExMcHVSV2UzZUwrVjdUeUxCMFRwaTduU1BueDY4Si96NlRQT3Mrc2ZtcFB5enJIVGEyc3YzQ2ZiWjVIN0pkeW51TzF0azMvQUlCdU11bTMzZlRIWGl0YldZMis3clhoVExFUk1WeVZpTVdlSTY2Ump2TjhHUEFjZHNhekFBQUFBRExyaVJ6RDJMeFB6Tk5wUXVQNURnVnUrbjY4dGRTNTdzZXB1MjFKYmFPenIxbWlTMVQ1TkZhYVNUTTFEU2pVbEJOT3BjYVB0SFh2SWZITmo1RHRmbzdpT2pjMS9KbGlJbTFKK0hwMVZuMXJNeEU4NG1MYVRHY3ZZNzM0OHM5a2ZJSTN2YTV0dXZHczl2OEFhdGphODF4Wm80UjlTazZXakZ1S3hFZEdhS3pPa2RGNHZTWnF0aGFXM1pycmYrQTFPeHRaM3JWelJXYUNibFJsbTB6YzQ5YkliYlhOeDdKYTFEenk2cThyemRUNGpScVUyNDJwRHpLM1k3clRybXZIZHUwYjdzdTh0c2QvVHB5eHhpWS9MZXZwYWs2UnJXZjNKaWRhMmlMUk1SN2NlM3Z1SjRwN29lTVlQTFBEOXpYY2R0elJwYXM2Um13WllpSnZnM0dPSm1jZWFtc2ExMW10cXpYSmp0ZkZlbVMzSzQrWTd1QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1UZVdITC9XbkZERC9BSDJ5aDVON210dkhkUERkZVY4eHBtNnlCOUpyYVRObHJOTDUwdU54bjBtVWljNDJzaTdUUTBoNTdvMGZaUEhQR045NUZ1T25EOG15clB6NVpqV0svaEVjT3ErbktzVDhKbVlqaXdmNzNlL0hpUHNsMkg5dDd4YU56NUZucFA3THNhV2lNdWFlTWRkNTB0OUhCVzBhWHpXclBLYTQ2NU1tbEpxamIzMzdzdmtibnRoc0hadDJxeHNaS2x0VlZQRU9ReGptSzFYY1JzVWVNVlQwaVNtdHJHRXBMcjFXNC9JYzZ2U0hIbjFyZFZzTDJydE94N05zNjdMWVU2Y1ZlY3p4dGVmVzE3YVIxV245eUlqU3RZcldJaVBFNzNKOXpmTC9BSFg4bXkrVStZYm1jMjh2TXhqeFY2cTROdGovQUZjTzN4emEzMDhkZjAydmUydVRMZkpsdGE5dUZ4OUpqOEFBQUJNWjVMcXJFdDliU1EwYm52U3JVTHlwcEVaK0Y3NG96UEZTcXpXWFhvYmhSbHpPMCtub0x1K2Y2Y2NlNTNSL3VIRE0vd0NzL2E2NmZvK25sMS9oMGI2ZituNU83LzhBM245NXJUWDlobnNOdXY0ZlVqZDdYNmV2NDlNNWRQM1ZrY1lMZXRyQ3Z6RS9pWDczL3dEbDZqKzdQR2gyN3dYKzlXMC9Uay9vc2pYbjdyZi9BQytlUy8xYkIvYTl1cUFEWTE0U0FBQUFMUXZrL3dEeFRaM3dzNWo5U01VR0NmYzMvd0NmNHY2cFQra3l2WS83RC84QUJMTi85ZDNYOUR0VW1XUzR6ajJaVUZ0aTJWMHRia1dPWHNOMnZ1S1MzaU16cTJ4aHZFUk9NU29yNlZ0dUo2a1NpUHAxU29pVWt5VVJHWFFOdnVjKzB6MTNPMXZiSHVLVHJXMVowbUovVC9IOFk0VHdiZ2Q0N1AycnlEdG1mc3ZlOXZoM2ZhZHpqbW1YRGxyRjhkNlR6aTFaMWlmakhyRXhFeHBNUktzRHp3OHZiSWVOczZYc2JXN05sbEdqN0NVcGI3eHR1eTdiV2ttWExKcUpVWkc2UnVPeThmZlcrMjFCdFZkT3JobEhrOXJ4c3VTOCsrSmVZN2Z2Mk9ObnUrbkgzZXNjdVVaWWlOWnRUOFk0emFuT0krYXV0ZXJvOGNmdVYrMXZ1dnRIdWIrVitKMXpiMzI1eTM0MjBtMlR0OXJXMHJpM0U4WnRodE0xcmgzTTZhMm1NV2JweVRqdm5qR0hlR253QUFBQUF5TzR6Y245bDhXczhiekhBWjNqMWxnY1NMbVdHejNGZThPWTA4WjgzU2h6bSsxejFPeGlrNDRjT2UwbjFpSXR4WkYzTk9QTXUvRzczMlBZOS8yZjdKdmE4WTFtbDQvTlMweHByV2ZoUERxclBDMmthOFlpWXl2N1ErOFhsL3N6NU5IZi9HTXZWdE12VFhkYlc4L3pPNnhWdHIwWGpqMDNycmI2V2FzZlV4VGEybXRMNUtYdGs4ZE9SK3R1VG1BUjg4MTFZT0dUVGlZV1JZM1ltdzFrT0tXNW9OWjExekVaZWVRbEx5RW11UEliVXBpUzE3cEN1cVZwUnJ2MzNzTys3QnZQMlhlUkUxbmpTOGE5TjQrTVRQckhLMVo0eFA0VEV6N2VlMUh1MTRqN3hlTVY4bDhVeXo4c3hUUHQ4bWtaOXRsMDE2TXRZbVkwdEhISGVzelRKWGpXZFl0V3ZQZytLeWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ1BybXh6MndqaXhUeU1Zb3ZVTXgzWFp3U2NwOFI4WnhWZmpUTTFoeFVQSXMwZWpkRk1RbXo3WEdxOURqVXljazA5cHNzcjlZVDNYeFR3N2RkL3lSdWR4MVl1MHhQRzM2MTlKNDFwcis3RTMwbXRaMTRXbUpxMWIrNGY3bXZIZlpmWTM3TjJ6NlcvOXc4dVBYRnR0WjZOdkY2ejBaOTNOZVZZNFdyZ2kxY3VhSmpTY2VPMzFZcXo3RTJObTIyTXh1OCsySmtWaGxPVzVES1ZLczdheFdqdldmVHRaaXhJektHb2RkV3dtU0pxTkZqdHRSb3pLVXR0SVFoSkpMUDIwMmUyMkcycHRObmpqSHRzY2FWckhLSS9kNHpNenhtWm1adE16TXpNek12R1B5cnl2eUh6YnYyNDhuOHEzZVhlOTgzVitySmx5VEdzL0N0YXhFVng0NlJwWEhqcFd1UEhTSXBTdGF4RVJzb2NqU1hYZ1RwSUJwSUJwSUJwSXM2ZVV4eDR0TlU2WHV0cFpWQmRnWkp1cVJVV1ZWQmxNK0hKaFlCU016RHhxU3BEckNKRVp6SkpOckttOUNXcHQ2RWNOejkxMUlzRmU0L2VjZSs3blR0bUNZbkZ0ZXFMVEhya3RwMVJ6MG5vaXNSeWlZdE42eTloZnNlOXE5NTRYN2Y3anpUdldPMkx1dmtOc1Y4VkxScGFteXd4ZjZGdU5ZdFdkeGJMa3k4Sm10OFA3UGZueWxlR09HN2pCN3pJbHFSd28zb2FGS1FaMWVJb00wbWFUTkxteE1RUXRKbVJrZmF0Q2pJeTlneVBvTzNlQ2YzcjJuL2FmME9Scmw5MjFwcjl2SGtrMW1ZbjZPMWo5L2Y3V0ovZmpncUdqWTE0VmdBQUFMUEhrNnJVcmlwa0JLVXBSTjdteTFDQ016TWtKUEY4RldhVUVaOUVwTmF6UG9YbzZtWisyTUUrNTMvei9BQmYxU245SmxleEgyRXpNK3kyN2lablNQSWR6cCtIK3piS2Y0NW1Vcll4MDNaYUt5cmE2NXJwOVJid0lWclUyc0tWVzJsWFpSV0oxZFpWMDVoeUxOZ1Q0VXB0Mk5NaFRJenFtM1duRXFRNGhScFVSa1prSzhlVEpoeVZ5NHJXcmxyYUpyYUptSmlZbldKaVk0eE1UeGlZNHhMajd2YWJUdUcweTdEZjRzZWZZNThkc2VUSGtyRjhlVEhlSnJlbDZXaWEzcGVzelcxYlJNV2laaVltSlZzK2Z2bHh6OU5MdU54NlFyNU5wcVZidnJtUjRpeWNxZGI2NDhVek42WkdVNGI4bTB3dERuc3VxVXFSWGtvaWQ3MlVtK25PbmgvbXVQdThWN2IzT1lyM1RUU3R1RVZ5LzVJdjhheEdsdWRkTmVtUEkvd0M1MzdUOTE3ZlczSG4zdDNpdm04R20zVm4yMGRWOHV3MTUyaVoxdGsya1Qrdk16ZkRFeEdUcXBFNUlpRkdSR2l3QUFBQUE1bTBSdm5ZL0hQWVZac2ZXbHY2aGF3LzhHczZ1V1R6OUJsRks2NGhjekg4a3JtbjQvdmhWVFBESStoTGJlWWRTaDVoeHA5dHQxSHp1NjlxMlhlZGxiWWIrdlZodHhpWTRXcmFPVjZUcE9sbzE0VHBNVEV6VzBUV1pyUGZ2YmIzSzhzOXFmS2NQbG5pR2Y2Vyt4L0xreDIxdGgzR0taaWI0TnhqaWEvVXhYMGpsTmIwdEZjbUs5TXRLWHJiSDRxY3ROYmNyY0hieUhFcEthckxhcU5FVG5PQXpaQk9YT0tXTC9lanFsdzIyRTI5RE5kWldxSFBhUVNIbS9jdUpaZlM2dzNydjVGNDN2dkhkMTlMUDgrMHRNL1R5UkhDMGZDWTQ5Tm8vV3JQNlltMWRKbjI3OWxQZkh4TDNzOGNqdW5aTFJnNzdncFg5czJWN2E1ZHRrbldPRTZWK3Jodk1UT0xOV0lpMWVGNjQ4c1h4MHltSFhXYUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRVNuUEh6SWFmU0NMalV1bFpsZmtPM3pRL1gzdVJwS05aVUd0WEZwa1I1RFJwOFJ5UGFaeEJkU1JwaHVJWEZoT2VtVVMxb1ZGVmt2dy93WEozUG83bjNldHFkdTRUU25HTFpZNFRFejZ4am40eE1XdEg1ZEltTE5HL3VYKzdYWWUzY2Jqd2IyN3lZdDE1M3BOTTI0K1hKaDJFejFWdEhPYTVONVNlV0swVGp3Mi8xMFd0V2NNMXJidTd1Y2x1TFRJY2h0SjkzZTNjK1hhM0Z4YXkzcDFsYVdVNTVjbVpPblRKSzNINVVxVSs0cGExclVhbEtNek14bkhIaXBpeDF4WXF4WEZXc1JXc1JFUkVSR2tSRVJ3aUlqaEVSd2lPVHlON2gzRGY5MjMrYnVuZE0yWGNkeTNHVzJUTGx5V20rVEprdk0ydmU5N1ROcld0YVptMXBtWm1aMWw4c1hOSmNNRHBrQTZaQU9tUUlqTXlJaU16TXlJaUl1cG1aK2dpSWk5Sm1aaDB6S1U2dkFyeXlITEZkTHVia3hRcWJyVWt6WjRkcUcyWVUyN1lxTW0zNE4zc0dLczByWnIyK3ZlMVN1SkpjaFhiNjZSTWt1Sy9pZnpEejJ1Q0xkcjdEZUozSEsrYXZLdnhyam4xdDhieHdySDVOYmFXcDZSZmJQOEFaN2ZlVzIvdUI3djdhYTdLTk1tMTdYbHJwT1NlRTB6YjZzOFl4eHpydExSRTVKMC9hSWpIRnNPV2ZwS1VvU2xDRXBRaENTU2hDU0pLVXBTWFJLVXBMb1NVcEl1aEVYc0RERXpNenJQTjZmVnJGWWl0WWlLeEdrUkhvOWhDV0RubVNmRW4zbi9rM0Qvd2pZZU8zK0IvM3Iydi9hLzBPUnJqOTIvL0FKZVBKUDhBcXRwL2I5cXFIall4NFdBQUFBTE8zazZmRlZ5UDRhTXQrNVRBeGdyM08vOEFuK0grcDAvcE1yMkgrd2ovQUFXM24vaUhjLzJiWkpYUmpsdTBBUFZTVXJTcEMwcFdoYVRTdENpSlNWSlVYUlNWSlBxU2txSStoa2ZzaVltWW5XT2FMVmkwVFcwUk5aalNZbjFWOFBNQzh0VnpHZmZyZUhIT2pVN2pQU1piNTlxK3RiN25zYTZHdVZMeUxCb1RTQ043R3lSM0tsVmFPcmxjWmQ4WWxSVE5tSG1udzd6bU41MDlxNzFiVGVjSXg1Wi82VDBpdDU5TW53dHl2eW5TL0hKNWEvZEI5bzF1eS90SHVON1ViYWJkbCtmTHZlM1k0NDdmbmEyZlowaU9PMzAxbkp0NCtiYi9BSnNNV3dUT1Bid2VqS0x6cEFBQUFBSEl1cXRyNTlwWE5xallPdHNobTQzazFPNmsyNU1WeFhxMCtHYnJUc21vdUlmY1VlMXBwL2dwSitNOFNtbkNJajZkeVVtWEQzMncybmN0cmJaNzJsY20zdkhHSi9qaWVjV2owdEdreDZTN1Y0WDVyNU43ZmVRNFBLUEV0M2sybmVOdmJoYXMvTGV1c1RiRmxwK1hKaXZwRVh4M2lhMmpUV05ZaVl0YjhOZWErQmNzOFVVbG4xVEZkcTBFWkM4dzE4OU1TNDc0SkdocjY1Y1djZU5EOXZpOHA1YVVyUHROK3ZmV1RNZ3VpNDc4blh6eW54VGQrTzdqcnJybDdaZWZreWFjcC9rWDA0UmVQU2VWNGpXdWt4YXRQYkQyQSs0ZnhuM3Y3Sk5hZlQyWG0yMXBFN3JaVGZXZE9FZnRHMm1kTFpkdmFaaUxjT3ZCZVl4NWVGc1dYTm11T3B0aHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkJKenk4emhNTXJuVGZHVy83cHZXVFY1ZnQrbmtlNGlFUktZbFZPdWJCaGZ1NWZYdVE1ZHRIMnRkRE9DbzFtaVUzbVB3LzIvd0JPbnVua0dQandtbUMwZnZUbGlmMy9BS2Mvb3lSem84MWZ1WCs4T01VYmp3SDJlM1g4OTgyUGRkMHhXL0w2V3g3REpXZnpjNG5kMW41ZWUybWJkT2VzQnExT09yVzQ0dFRqamlsTGNjY1VhMXJXc3pVcGExS00xS1VwUjlUTS9TWmpNT2t2TW0zVmEwMnRPdHBuV1pubk0vRjY5QTBSb2R2NklhSjZUb0dob2R2NllhUWFRMTlYVTJkNVpWOU5TMTArM3VMYWJGcmFxcXJJajg2eHNyR2E4aU5DZ1FJVVZ0MlRNbVM1RGlXMm1tMHFXdGFpU2tqTXlJVTN0angwbkprdEZjZFltWm1aaUlpSWpXWm1aNFJFUnhtWjRSRGtiUFpicnVPN3hkdjdmaXlaOS9ueVZ4NDhlT3MzeVpNbDVpdEtVcFdKdGE5clRGYTFyRXphWmlJaVpsWTQ0R2VXdFdhb09sM0Z2cXZoM1d6a0ZHdE1Vd2wxVFUyazE4OFpSNWNTMHRVK0diTnBuRUYxSmszMnFjaDF5L2R0K0xJUzA4eGcvd0F4ODh0dm92MnJzbHByc3Axcmt5OHJaSTR4TmFmREhQclBDMStYQ3VzWDlZdnRuKzBYWitGVHQvUHZjM0ZqM0htRWRPVGJiT2RMNGRsUHkycmt5eHBwazNsSi9McE5zV0NmbXIxNVlwa3hURURGcmZZQUFHRHZtU2ZFbjNuL0FKTncvd0RDTmg0N2Y0SC9BSHIybi9hLzBPUnJqOTIvL2w0OGsvNnJhZjIvYXFodzJNZUZnQUFBQ3p0NU9ueFZjaStHakxmdVV3TVlLOXp2L24ySCtwMC9wTXIySCt3ai9CYmVmK0lkei9adGtsZEdPVzdRQUFBQ0R2ekFQTFVSa252NXUvamxSSmJ5UDAyR2FhbnBZU0cyc2g2ZDY1MlE0UkRqa2xMZVFINkhKRlcyZ2t6K2kzSS9TVjlCbFpiOE44NmluUjJudnQvazVVeldubDhLNUpuMDlJeVRQeThJdDh2elY4NVB1ZyswV082L3RQdUw3VDdhSTdwK2ZkOXN3MDBqTnptK2ZaMHJ5emNyWDIxYTZadm10aS9udjV2Tlh6VzJ0cGEyM0VLYmNiVXBEamEwbWhhRm9NMHFRdEtpSlNWSlVYUXlQMGtZekQweTh1clJhdHByYUppMFRwTVR6aVhxSTBsRHdBQUFEZHVDNTFsMnM4dW9zN3dPK240emx1TlRrV05OZFZ6aVVTSXNoS1ZOdUlXMjZoeVBMaHk0N2kyWkVkNURrZVN3NHRwMUMyMXFTZGpjN2JiNzNiMzJtNnBYSnRzbGRMVm5sTWY1SmllTVRHa3hNUk1URXhFdnQrT2VSOTg4Ujc1dHZKUEd0emwyZmZObmxqSml5NDUwdFcwYXhQQ1ltdHEyck0wdmp2RnFaS1d0UzliVXRhczJsK0RmUFRFK1V0S3hpT1RlcVl2dTZsckV2WFZBU2tNVmVXc1JTVW1Wa0dIRzQ4dDF4dEtFazdMZ3EralF6V1pwTjFsSnVsZ0x5M3cvY2RoeVR1OXJyazdUYTNDZWRzZXZLdC93MTRWdHlubE9rekVUN09mYmo5elBaUGVidDlldzk1Nk5uN2k3ZkRybHc4SzQ5MUZmelo5cnJNek9rUkZzdUdmbnhhek5ldkhFM2lROGRJYlZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFEybHBXVWxiT3VMcXhnMUZSVnhKRSt6dGJTWEhyNjJ1Z3hXbFBTcHM2ZExjYWl4SWtabEJyY2NjVWxDRWtabVpFUXVZc1dYUGtyaHdWdGZOYVlpdGF4TXpNenlpSWpqTXo2UkRqYjNlN1B0dTB5OXc3am14YmZZWU1kcjVNbVMxYVk4ZEt4cmE5NzJtSzFyV0ltYld0TVJFUnJNNks0UFBIekpiTGI2THJVR2lKODZrMVk3NnhXNVBtU0V2UWJyWTBVL0RTOUFndFBNc1Q2REVIelN0TGlEN0pWa3lyc2ZKcGxUa2R6UEhoL2dlUHRFMDduM2FLMzduR2sxcnpyaW40NnhyRnJ4OGZ5MW5qWFdZaTd5Vis1Yjd1dDM1NVhjZUNlMnVUTHQvQ3JkV1BjYnJqVE52NjhOYVVpWWkrRGEyMG1MVm5USm5wUFRsaW1PMThWb2dlMHYwUmtuU1dpUFU4OXBCb2pXVG9YemhPaHJMejAvUURwTlFPbjhFTjJZTmd1WGJMeXlqd2JBNkNmaytXWkhOUlgwMUxXdHBYSWxTRkVwYTFyY2RXMUdodzRyQ0ZPeUpENjI0OFpoQzNYVm9iUXBSV04zdWR0c2R0ZmVieTljZTJ4MTF0YWVVUi9ITXpQQ0lqV1ptWWlJbVppSDIvRy9HKysrWDk4MjNqZmpXMXk3enZtN3lSVEZoeHhyYTFwNHpNek14V3RLeEUydmt2TmFZNlJhOTdWcFcxb3MvOEFCL3kvc1I0eTEwWE9NMFJXNWh1K2ZETkw5MFRYckZQZ3pFdGxLWlZQaDZKQ1M2elZvTlRVbTFVaEVoNXMxTk5FeXd0MUwydnZsL20yNDc5YWRqc2VyRjJpSjVjclpaamxOOU9WWTV4VGxycGEyc3hYcDlrL3R4KzF6c1hzOXRhZVNlUlJoMy91Tmx4OGN1blZpMmRiUjgyTGF4YjllWTFyazNNeEY3Vm1jZU9NZU8yU01ram82RTIxQUFBQVlPK1pKOFNmZWY4QWszRC9BTUl1SGp0L2dmOEFldmFmOXIvUTVHdVAzYi8rWGp5VC9xdHIvYjlxcUhqWXg0V1BBQUFBTE8zazZmRlZ5TDRhTXQrNVhBeGdyM08vK2Y0ZjZuVCtreXZZZjdDUDhGdDMvd0NJZHovWnRrbGRHT1c3UUFBQUFBaUQ1K2VYRFg3aVRjYmowYld3S2ZheEpsMmVWNG15U0lWWHNwd2tLZmZuUStuWkVyYzNmV2t6VTRaSVlzM0Y5ejZrUG1wNXpKM2h2bk51MzlIYXU4Mm0ydzRWeDVKNHppamxGYmVzNDQ5T2MwamhHdGRJcm9oOXp2Mm1iWHp5Tng1OTdiNGNXRHpYNXNtNTJzYVV4NytlZHIwNVZ4N3kwNjZ6T2xOeGFkY2sxeXpiSmV0clByNTlWT21WbHBDbDF0bFhTbjRWaFh6NHowT2RCbVJYVk15WWt5SklRMi9Ha3gza0doYmEwcFdoUkdSa1JrTTRSTVdyRjZ6RTBtSW1KampFeFBHSmlmV0pqbEx5VDNPMjNHejNHVFo3ekhmRnU4VjdVdlM5WnJlbDZ6TVdyYXRvaWEyck1URnF6RVRFeHBNYXRHR2tMSUk2UUZPa2p3QStyUjN0MWpGelY1RmpscllVVjlTVG8xblQzTlRMZmdXZFpZd25VdnhKc0diR1czSWpTbzd5Q1VoYUZFcEpsNkJSa3g0OHVPMkxMV0xZclJNVEV4RXhNVEdreE1Ud21KamhNVHdtSE43ZDNIZjlvMytIdW5hczJYYmR5MitTdVRGbHhXdFRKanlVbUxWdlM5WmkxYlZtSW1KaVltSldjK0JmbUlVZklhRlg2eDJ4THJNZDNoRVpUSGdTRzIwd0tYWjBhTkdVdHl5cVcwa1VTc3lwdHRsUzV0YW5zYWRQNlBDU1RSdVJvbUN2TC9Dc25aN1c3ajJ1TFg3VlBHMGM3WVoxNVQ2MnAvSnR4bU9WNTEwdGIyRisyZjdxdTNlNmUzeGVIZWNYdzdUM0dwV0swdEVSVEYzR3RhNnpreHhIeTQ5ekVSTTVzRWROYi82emJ4MFRmRGdsTEdQRzU0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5wNXpuV0g2MHhTNnpqUGNock1XeFBIb2FwMXZkMnovQUlNV015UnBRMjAybEpMZm1UcGo2MHN4b3pDSEpNcVF0RFRLRnVMU2crVnN0bHUrNDdxbXkyT08yVGRaSjByV1A0NTlJaUk0emFaaXRZaVptWWlKbDhQeVh5WHNIaC9ZOXg1SjVQdThPeTdIdE1mWGx6WlowcldPVVJFUnJhOTcybUtZOGRJdGt5WHRYSGpyYTlxMW1yenpjNSs1anllc3BlR1lpZGpoK2tZTXdsUThmVTRjYTR6TmNaMWg2TmJadDZ0SmZqdXRzU281UFJLOXRTbzhaWGF0WnZQSVE0allueFB3dmFlTzQ0M09mcHk5M3RIRy9PS2E4NjQ5WWlZalNkSnRQeldqK1RFelY0emZjWDkwSGY4QTNrM2Qrd2RqK3JzUGJyRmsxcGcxNmN1N21zMW11WGVkTnByUFRhdlhpd1ZtY2VPZExXbkprclc5WTZoM2JwaHFpQ2VrQlBTQW5wbEFIU09XTkw2VDJMdjdQS3ZYZXM2Snk1dmJFemRreUhEWEhwcUdyYVVrcGQ1a05tVGJqVlhVUWlVWGN0UktXNjRwTExLSFgzRzJsL1A3cjNQWTlsMlZ0LzNDOFUyOWYzWnRNOHExajlhMCtrZkRXWm1LeE14M2YyKzl2UEsvYy95YkI0cDRmdHJianVlYmphMDYxeFljY2Zuelo4bWt4anhVMTQybldiV211UEhXK1M5S1d0VmNRK0dldXVKMkxMYXFFdDVKc2k5aE5NWmxzS1pGSnFiUGJTNGlTZExSeDF1UEhSNDB6SlFsZmdJVWJrcHh0RGtoYmltMmlhMXY4cDh0MzNrdTRpTDY0KzNVdHJURkU4TmVYVmVmMXI2YXhFOHF4TXhXSTF0TnZhLzJJKzMzeFAyUDdOTmRqRWJ6eTdjNDRydXQ5YXVsN3hyRnZvNGF6TS9SMjhXaUo2SW5xeVdyVytXMXBwamltWW82bXo4QUFBQUFNSGZNaytKUHZQOEF5YmgvNFJjUEhiL0F2NzJiVC90ZjZISTF4KzdmL3dBdkhrbi9BRlcxL3QrMVZEeHNnOExBUUFhUUFqU0JaMjhuVDRxdVJmRFJsdjNLNEdNRSs1L0R2K0grcDAvcE1yMkgrd2ovQUFXM2YvaUhjLzJiWkpYQmpodTBBQUFBQUFDTWZuajVlOUJ5U2dUZGthM2FyOGIzcFh4R1NXdDFTSVZIc2VEQmE4SnFxeUp4TFpwaDVGSGpJUzNBdEQ5Qm9RaUxLNnNlQzlEeUY0ZDV0bDdKYXZidTR6YS9aNW5oUE8yR1o5YS9Ha3p4dFRuR3MzcHg2cTMwNis1ZjdXdTJlN2UyeWVYK0lWeGJUM0p4WTQxMW1LWWQvU2thUmp6enBwVGNWckVWdzdpZUV4RmNPZjhBbS9wNU52V0N5WEdjZ3cyL3Q4Vnlxbm4wR1IwRStSVjNOTmFSMXhaOWRQaXJOdCtOSlljSWxJV2hSZWcvU2xTVEpTVE1qSXp6NWh5NHR4aXJud1dyZkRlc1RXMFRyRXhQS1ltUFNYam4zZnRIZE93OXp6OW03MWd5N1h1dTF5Mng1Y1dTczF2anZXZExWdFdlTVRFL3VUSEdOWWZERmZURDV3STBrZUJUTWZGSUk2ZmdOVkJuVHF1YkRzNnlaS3JyS3VsUjUxZllRWkQwU2JCbXhIVVNJc3lITGpyYmZqU296N2FWdHVJVWxhRnBJeU1qSWpGRnFSYXMwdkVUU1kwbUo0eE1Uemlmd2xlMjI1M0d6M0dQZDdUSmZGdThWNjNwZWxwcmVsNnpGcTJyYXN4TmJWbUltdG9tSmlZaVluVlkxOHYzeklZV3p5cE5KYjd0WXRac2RETWF0dzNQN0dVMUdyOWlQSlY0RWFqdkhIU2FacjgzZFIySmpPR28ycmh6cWd1eVliYUplRnZNdkI3YlByN3QyYXN6dE9NNU1VUnh4L0c5STljZjhxdlBIempXbXYwL1Y3N1h2dTAyL21IN1A3ZGU1dWVtSHl1SzF4N1RlNUxSV20rbmxYRG1tZElwdTVqU01kcG5wM1Z0YS9MdUpwWFBNbU1YTi9RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhFdTY5M2E1NC9ZRlo3RjJiZUlwNktCL2c4T015Z3BOemtOdzYwODdDeC9IYTN4RzEyVnpQOEJYWWp1UTAwMmxiejdqVERicnFQcTluN04zRHZ1K3JzTzNVNnNzOFptZUZhVjliM24wckd2NHpNNlZyRnJURVQwWDNFOXgvRXZhenhqTjVaNWp1WXdkdHgvTFNzUjFaYytXWW1hWU1HUFdKeVpiNlRwR3NWcldMWk10OGVLbDcxcXA4dU9aT3grVitWSmszYTNNYjE1U3kzbk1QMTdCbHVPMTFjUmt0cEZ0ZFBFbGxONWt6MFpab1hKV2hLR1VLVWhoRFNGcjc5a3ZHdkZlMytOYmI2ZTMrZmVYaVBxWlpqUzF2d2lPUFRUWGxXSitFek16R3J4Tzk5UGY4QTh0OTcrOXhtN2xNN1R4YmIzbWRyc2FXbWNlUG5FWmNzOFByYmlhenBPU1lpS3hNMXhWcFcxb3RoK096OUxBd0t1bVFEcEhrVDBoMERwT0xKVGpKeFoyYnltemNzVndXRVVLbHJWUjM4d3ppeVlmUEhjUnJuL0ZOcGN4MW9pVk10N0FvN2lZTUJvL0dsT0pVWm0ydzIrKzE4THlIeUh0dmpleS9hOTlPdDdheFRIRXgxNUpqbkZZbjBqV0p0YWVGWW1PZHByVzJYZlozMlc4eDk2ZkpJN0o0MWorbjIvRDAyM1c4eVJiNkcxeDIxMG04eCtmTGZwdEdIRFg1OGxvbWZreDB5WmNkclBqcnhzMWx4a3dackM5ZFZmYTdKOENSazJWV0RjWnpKc3VzbUNlOEtiZVQyR0dmRWFpZXN1SmlSa0VtUEViV29tMGtwYmkxNjBlUWVSZHg4ajNuN1Z2cmFVcnJGTWNhOUdPSjAxaXNUNnpwSFZhZU50STlJckVlMjN0UDdRK0hlem5qY2VQZUo0ZjV5K2x0eHVieFdkeHVzbGRkTFpyeEVheFRxdEdMSEVSVEZXMDlNYTJ2YTNQdytFeWlBQUFBQUFEQjN6SS9pVDd6L0FNbTRmK0VYRHgzRHdMKzltMC83WCtoeU5jZnUzLzhBTHg1Si93QlZ0ZjdmdFZROGJIdkN3QUFBQloyOG5UNHF1UmZEUmx2M0s0R01EKzZIL3dBL3cvMU9uOUpsZXcvMkVmNExidjhBOFE3bit6YkpLNE1jTjJnQUFBQUFBQUdBdk5uZ3Bobkt2SDFYdFFxRGlXNXFLQTQzam1YZUIyUXI1bGxDbHg4YXpRbzdTNUVxcGNjTHRZbHBTdVRYS1VhMjB1dG01SGQ3cjRsNWp1dkhjMGJmUDFaZTAzdDgxUFdtdk8yUFhocjZ6WGhGdmpFL05Hc1gzRWZiWjJEM3E3WFBjKzN6aTJQdUJ0c1V4ZzNPbWxNOFJIeTdmZDlNVGEyT1o0VXl4RnNtQ1o2cXhlblZpdlZlMkJyek05VzVkZFlIc0RIYkRGOHN4NlNVVzFwckp0S0gyRkxiUTlIZlpkYVU1SG13WnNaMUQwZVF3dHhpUXd0TGphMUlVbFI3RDdUZDdYZjdhbTgyZDY1TnRrald0bzVUSEw5eVluV0ppZEpyTVRFeEV4TVBGcnlmeGp2M2h2ZmR4NDE1UnRjdXk3NXRiOU9YRmtqUzFaMGlhekV4TTF2UzlaaStQSlNiVXlVbXQ2V3RXMFRPeSswY2pSOEhSNDZDSmo0bzBtSGdVOUtBVTZUQUVaa1pHUm1Sa1pHUmtmUXlNdlNSa1pla2pJeEduckhOT3VpZmp5Ly9BRExUc1ZVbWtPU0Y4dGRtNDdFcDhFMnJhT01wYm1KOE1vOEtnejZjNHR0UlR6V2hEVWEyYzd6a3FXUlRGRTRSeUhjUWVZK0NmbjdyMk9rZXRzbUd2NzgyeHgvRE5JMGpoOGtjcXZUbjdZUHU4L2FaMjN0MTd0Ym1aM1V6WEZzKzVaSmpTMGFkTk1POXZNeDgrc1JXbTZ0ck41bi9BR2kwVzF5M25aR0lIcFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1adVQzS3ZXWEZqQ0hNbXpXWVZqa05nMUlhdzdBNjZVeWpJTXJzbTJsbTJsdEtpZVZWMFVkMUpGTXNuVzFNeFVtUkpTNit0bGgzc25qZmpIY2ZKZDU5RGF4MGJXc3g5VExNVDAwaitEcXZNZmxwRXhNK3MxckUyakR2dkw3MitIZXluams5NDhoeWZXN3RscmFOcHNzZG9qUHVja1JPbW5QNmVHczZmVjNGcXpUSEV4RVJreTJ4NHIxVHVRL0k3WnZKbk9uODIyTmErS1RCU0l1TjQzQjdtTWV4T29kZk41TlpUUXpVZnVsZTU4ZVM2YTVVcFNFbTZ0UkpRU2RsdXg5ZzdkNC9zNDJYYjZhVjRUYTA4Ylh0cHAxV24rS0kwckhwRVBFcjNWOTJmTWZlSHlXM2tmbHVmcTZlcXUzd1UrWEJ0c1UyMStuaXArOTE1TFRiSmttSW05cDByRWNDOUI5blJqUFNYbm9KME5Eb1FucFRwRHowL1FFOUp3ZVJQU000T0d2Q0hQZVYyUkhQVXFWaVdvNkthbGpLODljakpjVklrb1FsOVdOWWxIa0tRM2E1QyswdFBpdWU2alZyVGlYWCs1YTQ4ZVQwL3kzeS9ZK0w3YUl0cGw3cGtqWEhpMTlPWFhlWS9MU09PbnJlWW10ZVZyVTJPKzMvN2MvSi9lL3UvN1I4K3g4RjIyVHAzTzltdXV0b2lMZnMrMnJiU011ZTBUSFZQSEh0NldqSmwxdGJGaXpXbTlVYW13SFNlRVZPdmRiWS9GeDNHYWhLbE54MmVyc3FmTmRKQlM3YTNuT2RaTm5iVGxOa2JyN3FsTE1rcFNYYWhDRXAxcDdyM1hmZDYzdHQvM0c4MzNGdjNxeEhLdFk1VnJIcEVldXN6ck16TSswL2hIZzNpL3QxNDVnOFY4UjJ0TnAyZkJHc1ZqamE5NTA2c3VXOC9Oa3kzMGpxdmFablNJckdsYTFySEl3K2M3YUFBQUFBQUFBd2Q4eVA0ays4LzhtNGYrRVhEeDNEd0wrOW0wL3dDMS9vY2pYSDd0L3dEeThlU2Y5VnRmN2Z0VlE4Ykh2Q3dBQUFCWjI4blQ0cXVSZkRSbHYzSzRHTUVlNkgvei9EL1U2ZjBtVjdEL0FHRWY0TGJ2L3dBUTduK3piSks0TWJ0MmdBQUFBQUFBQUJoenkvNGE2KzVZWWo0RmtpTmpleXFPSXRyRE5oTVEwdlRZS1V1T3lDb3J4RGFtbmJmR0pMN3kxR3dwZmRGZGNVOHdhVktjUzcydnhieXZlZU43blNOY25iYno4K0xYaHJ5NjZlbGJ4RVJyNldpSWkzS3Mxd0Q3OC9iOTR0NzM5aStudTRwdFBNTnRqbU5wdnEwMXZTTlp0OUhORWFUbDI5clRhZWlaMXhXdGJKaTBtYjF2VkwzQnAzUDlGNTNjYTYyVFJQMGVRMUxobWd6SmJsYmNWeTNIRVE3eWhubTIyM2FVdGdUUm0wOGdpNkdsVGJpVU9vY2JSc1oyM3VPeTd0czZiN1lYaSszdjYrc1Q2MXRIcGFQV1AzZVV4TStKbm5mZ2ZsSHRyNU51UEUvTHR0YmJkMndUK000OHVPWm1LWnNOOUlqSml2cFBUZVBXSnJhSzNyYXRlTHpUODRjN2k2ZjFQUTAvb0NPQ2VFdlhvR2lOSHFLWmlFQXAwa1RWZVgzNWtybUJJbzlHOGhibFR1QnNOTTFlQ2JKbm5Ja1RNTlNudGFnNDFsY2pxNjVLdzlDU0pxRk1OSnVWSmRHblRWQjdGUWNYK1orRHgzQ2I5MjdOWFR1RXpya3h4cEVaUGpldnd5ZXRvNVpPZkRKcjlUMEorMXo3dHIrTDEyM3R4N3BiaWJlTVZyR1BaNysvVmErMDA0VTIrNW5qTnRySEN1SExwMWJYaFM4enR1bWR0WWlZZllsTU15WXp6VWlOSWFiZmp5R0hFT3NQc09vSnhwNWwxczFOdXRPdHFKU1ZKTXlVUjlTR0VMVnRTMDB2RXhhSjBtSjRURXg2UzlWc1dYSG14MXpZYlZ2aHZXTFZ0V1ltTFJNYXhNVEhDWW1PTVRIQ1lmcUlWZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURCdm1Wemh3SGluanJsYXo2cGx1MzdtQ3AzRmNGYWY2c3dVUEV0REdTWm02dzZoK3J4MWh4Sm0yMGsweTdGeFBoTWRpUEdsUnU3ZUkrRjczeWJQR2EvVmk3UlMzejVQVzJuT21QWGhOcDliVDh0STR6clBUUzJ0djNBL2NoNHg3SmRxblo0dWpmZWU3akZydHRuRS9MU0oxaU54dTVyTVRqd1JQNWFSTVpkeGFPakgwMStwbXcxWmRwN1Z6M2RHYTIrd05qNUROeVBKYmgxUnVTWlRpdlZvRU1uWFhZMVJUd3lVYkZYVFFEZVVURVpra3ROa1ptUmR5bEdleWZidTJiUHRXMHBzZGhqcmkyMUk0UkhyOFptZWRyVDYybldaOVplTFhtbm0zazN1RDVEbjhvOHQzV1RkOTQzRnVOclQ4dEs2ek5jV0t2NWNlS21zeFRIU0lyWFdkSTFtWm5qd2MvcGRVT2ducEhudFA1d25SR3NQUGFZYUhWRHoyZm9ob2pxU2Q4R2ZMeXlQa05NZ2JIMmZHdE1WMG5FZkoyTVJwZGdYdXlIbUZ0S09EUUc0bEQwUEdENm1tVmFwSSs4MHFZaUdwMG5Yb3VPL05mUE50NDlTZGgyK2E1ZTlXamx6cmhpZjFyL0FCdi9BQ2NmUFQ1cmFWNll2dVI5dGYycTk0OTE5eGk4dDh5cG0yUHR6anRyWGhOTTIvbXN4OG1EWFNhYmYweWJtT2N4T0xCcmY2bVRCWmp4WEZjY3dmSEtmRWNRcGEvSGNheCtDelcwMUxWUjBSWU1DR3lSOWpUTFNDOUtsS00xcldvelc0NHBTMW1wU2pNOWNkM3U5enZ0emZlYnk5c201eVcxdGEwNnpNLy9BSGNvaU9FUnBFUkVROWlPeWRrN1I0MzJuYjlpN0R0OFcwN1B0Y2NZOFdISFdLMHBTUFNJajR6ck5wblcxclROclROcG1aM0FPTytvQUFBQUFBQUFBTUh2TWk5UENqZWYrVE1RL0NMaUE3ajREeDh0MmtmOWIvUTVHdVAzY2Y4QWw0OGsvd0NxMm45djJxb2oySDg0eHNsOU40Vm5ZZnpqRDZZZGgvT01QcGgySDg0dyttTE9uazZsMDRyWkYxL2pueTM3bGNFR0JmZEtOUElNTWY4QXdkUDZUSzlpUHNJL3dXM2YvaUhjL3dCbTJTVnNZMmJ0QUFBQUFBQUFBQUF4cDVRY1dOYmNxY0VWaWVieDFWOTVWcG1TY0t6ZXZZYVhlWWpiU1dTYk41a2xLYUt5cFppMjIvWHE1eHhEVXREYVRKVFQ3YkQ3UFlmSFBKZC80M3ZQMmphL1B0NzZSa3h6UHkzckg3L1RhT1BUZlNack04WXRXYlZuRC92TjdLK0krOWZqWCs1UElxemk3bmhpMXRwdktWaWMyMXkyalRXTlpqNm1HOHhYNjJDMW9ybGl0WmkxTXRNZVhIVTgzOXg4MlR4dHo2WnIvWk5VaUxNUWhVdWx1NENuWkdQNVRUbTRwdG01b0o3ckxDcE1WYWs5cTIxb2JmanVFYmJyYUZsMEd5ZlorOGR2NzdzcTc3dDk5Y1U4SmllRnFXOWEzaldkTFIrbVltTkppWmlZbWZFSDNQOEFhM3k3Mmo4bnllTGVYNElwdVlqcXhaYWEyd2JqRnJwR1hCZVlyMVVubE1URmIwdHJYSld0b21IQ0Erbk5XT25nMGtZcDArQ2RaZWhwL1ZEOUtyV0plaGtJMCtCcDhIcjBGTXg4VlBKTEx3SDh4aTIwYkpxdFM3bm5XTi9wMlZKandxYklYblpOaGI2dFF0UGdObkhZN0pFcTB3dHRSSThXRTJmaXdXeVU3RlM0WkhHZHgzNWg0Umk3elczY08yUlduZFlpWm1PRVZ6ZmhhZUVSZitUZWVFenBXOHhHbHE3dS9iTDkxKys5dHMyRHdqei9BQ1pkMTREZTlhWXM4emErWHQydkNKclhTMXNtMGlkT3ZEWDVzVmRiNEl0TVRoeVdYS20zcXIrcnJyeWlzNis2cGJlRkdzcW0zcVpzYXhxN091bU1va1E1OWRZUTNIb2syRkxZY1N0dDF0YWtPSVVScE15UHFNQzVjV1hCbHRoejF0VE5TWmkxYlJNV2lZNFRFeFBHSmoxaWVMMTcyTysyUGRObGk3bDJ6TmkzSGJzK091VEZseFhya3g1TWQ0aTFiNDcwbWEzcGFzeE5iVm1ZbUppWW1ZZlFGdHlnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI4TEpjcHhuREtXYmttWVpGUllwanRhMzQxamZaTGIxOUZTd0dTOWwyYmFXa2lMQml0LytrNDRrZ0dCMlYrYkg1Y3VHVDNLMjM1Y2FwbVNHM25XRk9ZcE11TThnR3RydDcxTjJ1RDFHUlZicko5M3VYRXZHMnYwOXBuME1WZE52Z05YaGZtcStYYm5zOXV0b09XK3BJMHQ1N3dHaXl5Mm40QkhXNmZoOXFVemM4cmNiaEgzbTZSSlB4T2lsZFNMcVpHUlIweU03cU85cE1tcVlGL2pkelZaQlJXakJTcXk2bzdDSmJWTmpHVXBTVXlJRmpBZWtRNWJDbEpNaVcydFNUTWo5SWdmVkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkYvenA4dzNIK1BNU3gxcHExNnZ5ZmRzcGhURXgxWkptVWVzMnBETGJqZGpkdG1oVWUxeVIxbDd1aDFuY2FHajZQek9qWk54NWVUUENmQU0vZmJWN24zV0xZK3pST3NSeXRtMDlLK3RhYS9tdnpuOHRPTXplbW1YM0svZFoydjJxd1pmRC9DN1l0NTdqWHIwM21mbXc5dmkwUk1aTXNhZE9YY1RFNjR0dnJwWC9BRnU0K1NLWWM5WjdKOG15UE5jZ3RzcnkyNnNjaXlTOW1PMkZ4ZFc4cDJiWVdFeDNwM1BTSkRxbExWMnBTU1VwTG9sQ0VrbEpFa2lJdGlOdnQ4RzF3MTIyMnBYSHQ2UnBXdFkwaUkrRVJIQ0hqMzNudmZkZkllNlorOTk4M0diZDkzM09TYjVjMlcwM3ZlMDg1dGFlTS9DSTVSRVJFUkVSRVBoZGd2NlBtZFQyN1MrY0owbEdzdlBRVDBvZWVnbnBRQ2VrVFI4RGZMWGxacjd6Ym01RDFFaXZ3N3VqMmVHYTBuTnFqMkdXa2hiVWlMZDVoR2RSNGtIRTNrLzNDQXJza1dSZlJIZkRpZGlabUlQT2ZjU25iK3ZzL1lMeGJmOEFHdVRMSEd1UDBtdEo5Y2tldHVOYWNvMXZyMGVodjJ4ZmFEbjhrL1ovY0wzWHdYeGVQYTF5YlR0OTQ2Y202MG1MVnpicXN4clRheitwaG5USnVQejM2TUhURzRzSFE0Y091aHhhK3ZpeG9NQ0RHWWh3WU1OaHFMRGh3NHJTV0kwV0xHWVNobVBHanNvU2hDRUpKS0VrUkVSRVF3Rmt5WHkzbkxsbWJaTFRNek16ck16UEdabVo0ek16eG1aNXZWVGI3ZmI3VGIwMm0wcFRGdGNWSzBwU2xZclNsS3hFVnJXc1JFVnJXSWlLMWlJaUlpSWlOR3BGQzhBQUFBQUFBQUFBRENEeklQVHdxM2ovQUpOdy93RENMaUE3cDdleHI1aHM0LzYzK2h5TmNQdTQvd0RMdjVKLzFXMC90KzFWR3UweHMvOEFTZUZYRTdURWZUTkplTzBQcHdhU2RvZlRnMGxadDhua3VuRmpJdmhueXo3bGNFR3ZmdXZHbmtlR1AvZ3FmMG1WN0UvWVAvZ3R2UDhBeER1ZjdOc2tyQXhpM2JBQUFBQUFBQUFBQUFjSTcrNCs2NDVJNEJQMS9zZXE5WmlPOThtbHZJWk10WkJpdHdTTzFpNW9KN3JUM3FzcHY5eTRoU1ZNU1d1cmJxRm9VYVI5bnNmZmQvNC92WTN1eHR4NVdyUDViMS9rMmorS2VjVHhpV09mZEQydDhTOTNQRjh2aS9sdUhyd3pyYkRtcHBHZmJaZE9HWEJlWW5wdEhLMVppYVpLNjB2VzFaMFZQK1VYRmZaSEZmUEhjVnpPS3V3eDZ5ZWx1NFJuVUtNNDFSNWhWUjFOR3AxanVXOTczWFVGRWx0TSt2Y1dwMks2b2pTcDFoYkw3dXkzajNrSGIvSk5qRzcyVTZaYTZSa3h6UHpZN1Q2VDhhenBQUmZUUzBSUEswV3JYeEI5NWZaYnk3MlY4bXQyUHlHazVlMTViV25aN3lsWmpEdXNWZE9OZU05R1drV3JHYkJhMDJ4V21OSnZpdGp5NU1aaDl1WStMRUFLZWtlcGtSaW5STVRvOVRTSS9TcTErTDh6U0kwK0JwOEVrdkJiekFjbjR5V1VYQXM4Y3M4cDBaUGxQcmNxV1V0eTduQkowNTN4bjduRmZIVzBwMnRrU1ROeWJXRzRsbGExcmtNRWlRcDBwSFJ2THZEZHY1QmpuZGJicHg5M3JFUkZwNFZ2RWNxMzArRWNLMzBtWWlJck90WWlJMjErMjc3b084K3p1N3A0MTVKT2JlKzIrVzlwbkZHbHN1enZlZGJaZHQxVEd1TzF2bXk3ZnFpa3pOc3VQcHl6ZjZ0b25FOHN4ck84YXBjd3crNmdaRmpHUlFHTE9sdXF4OHBFS2ZDa0YxUTYwc3Vpa0xRb2pRNDJza3VOT0pVaGFVclNwSmErYnJhN2pZN2krMDNkTFk5emp0cGFzODRuL0xFODRtT0V4cE1UTVM5bHV4OTg3UjVOMmpiOS93Q3diakZ1K3pidkZHVEZseHoxVXZTM0tZbm5FeE9zV3JNUmF0b210b2kwVEViaEhIZlZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJCcjVvWG5NNER3c1haYWIwMUZwZG9jbGxNZGxwQm1PUFA0VHFWTXFJekpoeXMxWEJmalNMakk1TE1wdDJOU3hubWxwYTZ1eTNtRW15MUpyclhYalBJVXVlUVhLWGtGeW95eGVhYjkycmxleUxnbkhWMThlNG1reGoxQTI4ZlZ5TGkrS1ZyY0xHY1loS00rcW1vRVNPaGF1cWxFYWpNenVSRVJ5UTRCRWdBeWI0MDh4K1NmRVRLRVpSb0xhdVNZUXAyUXkvY1kyaVNWcGcrVG9hTWlOako4TXRFeThkdU81bnViUSs0d1V1T2xhalllYVdaTEtKaUo1aTdONVkzbTc2dzU0UUkydU0xaTFtcitUVmJYUFNwMkNva3ZIam13WWRkR2NrV1dRYXptVG5IWlQzcWtWaFVpWlR5SEhKOEZrbE9JWExqdFBTRzdWcTZmb1NtTkZJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFoWTU2K1pNMWhhcnZTM0hpM2FrNWloVW1xelhaY0pTSG91SXVJV2xxWFJZZTkwV3hOeWIwTGFsVHlKVFZiNlVNR3FYMWNoNWw4Rzl1cDNQUjNueUNtbTI0V3g0Wi9YK0Zza2VsT1UxcHp2enQ4bnkzODdmdWUrNzZuajA3bjI3OXFNOFg3L0hWaTNuY0tURTEyc3hPbHNPMG5qRjl4K2F1VFB4cnQvd0F1S2JaOWI3ZXZqSWtTSmtoK1hMZmVsU3BUenNpVEprT3Jma1NKRDYxT3ZQdnZPcVU0ODg4NG8xS1VvelVwUm1abjFHZDYwaXNSV09FUjhIbGRseTVjK1cyZlBhMTgxN1RhMXJUTTJ0YVoxbVptZU16TThabWVNenhsK1FyaXEyQ3JwSG5vSjZUaTg5Qk9pZEphaUxEa3pwTWVGQ2p5Smt5WSt6RmlSSXJMa2lUS2t5SEV0TVI0N0RTVnV2dnZ1ckpLRUpJMUtVWkVSR1poT2xhemUwNlZpTlpuMGlJNXpLN2gyK1hjWnFiZmIxdGszR1MwVnJXc1RhMXJXblNLMXJHc3pNek1SRVJHc3p3aFlPNEhlV3RFd29xamNuSW1tano4eTZzV09IYXlub1JKZ1llcEMwUFJMN0xVSmRYR3M4b1YwSlVlQW9seDYwdWkzdkVsbWxFTEFmblh1UGJkVGZzL2psNWphOHNtZU9FMzlKcGo5WXA4Ynh4dlBDdWxJMXllcVgyeC9aL2c4ZWpCN2crN08zcmw4ZzRaTnAyNjhSYW0xMG1Kcm4zVWF6WEp1SjUwd1RFMDI4Zk5rNjl4TVYyMDBRd3c5RHdBQUFBQUFBQUFBQUFCaEY1anBkZUZtOEMvL0RjUS9DSmlBN3Q3Y3hyNW5zby9ITC9RWkd1SDNjLytYZnlUL3F0cC9iOXFxUTloZk8vWkcxUDAzaFRySjJGODc5a1BwbXNuWVh6djJRK21heWRoZk8vWkQ2WnJLelA1UHBkT0xPUkYvd0I4MldmY3RnZzF5OTNJNmZKY01mOEF3VlA2VE05aWZzRzEvd0QzSzd6WC93RDJIYy8yYlpKVkJpMXU0QUFBQUFBQUFBQUFBQU9NdHZhZjE5dlRCYmJYZXk2Q05mNDVhRVRxQ1dTVzdDbnMybW5tb2Q3UXoreFQxVmQxNVNGK0UrMzZleGEyMWt0cHh4dGYwdTA5MjMvWk43WGY5dnZOTTllRS93QW0xZUd0YngrdFdkSTFqNHhFeE1XaUpqcDNubmdQaTN1VjQxbjhVOHcydE4xMm5OeGpYaGt4WklpWXBtdzMwbWNlYW5WUFRldnBOcVdpMk85NjJxbTh2K0dtd09KK1dwajJYajVMcmk5a09KdzdZRWFHdG1ITVBvNDc3eDNyYURkYXFNbWpNTm1vMlRXYmNscEp1c0tVU1hFdGJLK01lVTdIeWZhZlV3ZnplOXBIODVpbWRaci9BSjBmeXFUNlcwalNlRXhFNmErSlB2eDl2L2xQc2YzMk1POTZ0NTRudWJ6K3k3NnRKaWwrYy9SelJ4akZ1SzFpWm1tc3hrckUzeHpNUmVLWWNEczAxWUNlQlROZmlrRkUxK0E4R1JHS2RFNnZ6TlA2b2o5S3JXSjVzNk9GWE9ETnVKMlRIV3lVU3NxMDdrZGl5L21HRkc3M1NhOTlSTngzY3F3eFQ3elVlQmtqRVp0S1htbG1tTFpzTnBaZk5DMFI1TWJxWGxYaWV6OGwyMnZESDNMSFdmcDVQNGVpK25HYVRQSCtWU1ptMWVkcTMyUiszcjdpL0l2WkR2RTdYSkY5NzRGdThzVHV0cHI4MUo0Vm5jN1NabUswM0ZheEVXck14ajNGS3hqeXpXMWNXYkRhejEvc0REdHA0ZFE1OWdOOUN5WEU4bGhJbjFGdkFXbzJubWpVcHQ1aDlseExjaUZQaFNHMXN5WXp5RzM0ejdhMm5VSldsU1MxeTMyeDNmYmQzZlk3Nms0OXpqblNZbitDWW5sTVRIR0pqV0ppWW1KbUplMkhpM2xQWVBOT3diYnlmeGpjNDk1MlBlWTR2aXkwNVRIS2EyaWRMVXZTMFRUSmp2RmI0NzF0UzlhMnJNUnZFY1I5OEFBQUFBQUFBQUFBQUFBQUFBQUhYaWVhVHVUYjFCNWcvSzJub3RxN0lwYWl2Mm5QandLcXB6bko2NnRnc0ZXVmFpWmh3WWRvekZqTWtwUm4yb1NrdXArd0wxWTRJWUMvdjk3MC9qcDJ6OThiTVA4QVBJcTBnUDMrOTZmeDA3WisrTm1IK2VRMGdQMys5NmZ4MDdaKytObUgrZVEwZ1AzKzk2ZngwN1orK05tSCtlUTBnUDMrOTZmeDA3WisrTm1IK2VRMGdQMys5NmZ4MDdaKytObUgrZVEwZ1AzKzk2ZngwN1orK05tSCtlUTBnUDMrOTZmeDA3WisrTm1IK2VRMGdQMys5NmZ4MDdaKytObUgrZVEwZ1AzKzk2ZngwN1orK05tSCtlUTBnUDMrOTZmeDA3WisrTm1IK2VRMGdQMys5NmZ4MDdaKytObUgrZVEwZ1AzKzk2ZngwN1orK05tSCtlUTBnUDMrOTZmeDA3WisrTm1IK2VRMGdQMys5NmZ4MDdaKytObUgrZVEwZ1AzKzk2ZngwN1orK05tSCtlUTBnUDMrOTZmeDA3WisrTm1IK2VRMGdQMys5NmZ4MDdaKytObUgrZVEwZ2Iwb2VZbkxqRlRaUEdlVW5Jdkh2Vm1UanNGU2JzMlZWcGFqbXRLMVJrSWhaTXdsTWRTMGtadDlPd3pMMGtJMGdaU1lINXhQbVNhOFcwZFZ5bHpLOVliN2lYRXp5b3c3WVNKQ0ZLN2pRN0t6UEhMcXlUN3IyRk52b2NTWG9KUkY2QkhUVVNNNmQrVXJjbGNhZWlSZDI2UjFUdE9wYTdXMzUySFRNZzFmbEw2VmRlNlJJbHZ2NXpqYjdyZlVqSnRtc2lJV1NlMDFKTSs4b21rZWhxbW00NCtlL3dBQzk3dlFhWEtzdXZPUGVXUy9DYTk3OXl3SXRYaTdzcFI5SFNpN0NwcGx2aWNTQzExL3U5czlVbW92N1FoUk5KaEtZcWx1NlhKS3FCZlk3YjFkL1Iyc2RFeXN1YVdmRXRLcXhpT2RmRGxRTEdDNi9EbVIzT251VnRyVWsvYU1VajZnQUFBQUFBQUFDTGJ6Yk9lbit3bHhsbDN1SnlJUzkzYlVsVHNIMC9EbEpiZktybmxDUzdrZXdINFR5VnRTNGVDVjh0cHhEYTB1Tk9XY3VFMDZoVExqblNxc2F6K0E2ODY4dkxySjdxMnlQSTdheXY4QUlMK3ltM041ZVhNMlRaVzl4YjJVbHlaWTJkbll6SEhwYzZmT2x2TGRlZWRXcHh4eFJxVVptWm1MeUh5d0FBQUFHNk1KemJMZGI1ZGptZTRIa05yaWVaNGpjUWIvQUJySktTVzVDdGFhM3Jua3lJYzZGSmJNbEljYWNSNlNQcWhhVE5LaU5KbVJoMk1YbG44MnF6bmR4ZHhmYTBoRUN1MlJRU25NRzNCajBEcTNIcTg4cDRzVjUreXJvcTFHOHpSWlhXUzQ5bERMcXREQlNISXZpT09SbkZDeGFOSlNrRUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXg1NWRmRlE1Ty9pODdwL0J2a29tT1k2dmNYMEFBQUFBQUFsajhqZjhxUnhmL2xyL283N2JGTi95anNLeFpTQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWhyOHpEbk0vcnFIWWNlZFIyeTQrZDI4RkNkaTVYWHZ1TlNjTXByQmh0OWpIYWFWSGVRNHhsRjNEY0pjaDcvd0RrWUxxU2I2dnZrdUxtUDIyOElqZldyNUQzYXNUczYyL21jY3hyR1MwY0p2YUovVXJQNVkvV3RFelB5MTB2NTgvZUw5eW1YeFBCbDlxUEJNODA4bXo0NC9iOXpTWmkyMHhYaUxSdDhOcXpFeHVjMUppY2wvOEFvY05vaW11WEpGc05kcm9NL2RMeWVlZWdxMFRwTHowRlhTblNIbm9LdWxMeUppbysvaTJLNUptMlFWT0tZaFIyZVI1SmVTMFFhaWtwNGowNnhueWxwVXZ3NDhkaEtscUp0cENsclVmUkRiYVZMVVpKU1psYTNPZmI3TGIzM1c3dlRGdHNjYTJ0YVlpSWo0ek0vd0REWGcrbjJYc3ZkL0krNjRPeDloMjJiZWQzM040cGl3NHF6ZkplMDhkSzFyclBDSW1abmxXc1RhWmlJbVZsM2c1NWVtTzhlSTFmc2ZaemRibFc2NURQalJDYVAxeWcxdzI4MjgwdUZRTFdsQ0xMSUg0ejNiTHNWSTZOSDFaaWRHeWNmbGEyZWMrNGVmeUMxdTJkcW0yTHNzY0pubGZOeTQyOWEwMS9MVG5QNXI4ZEtVOWh2dHMrMUx0UHRUaXhlWCtaeGgzdnVMYXV0SWo1OEd3aVltSnBobmhHVFBOWjB5NTVqU3M2NDhHbEl2bHp5Y2pGN2NzQUFBQUFBQUFBQUFBQUFHRW5tTmwxNFhidkw1OWRpSDRSTVFIZWZiV05mTnRqSDQ1ZjZESTF3KzduL3dBdS9rbi9BRlcwL3QrMVZLUERQNXVvMjIrbThLT284TS9tNmg5TTZqd3orYnFIMHpxUERQNXVvZlRPcFpoOG9FdW5GdklpL3dDK1hLL3VXd1Vheis4VWRQbEdHUDhBNEduOUptZXhYMkRjZlpYZC93RGlIYy8yYlpKVVJpaHU0QUFBQUFBQUFBQUFBQUFEWjJ3TmY0ZnRMRDc3QWMrb1lXUzRua3NKY0MzcUo2RkcwODBha3VNdnNQTnFia1FwOEtRMmg2TkpaVzIvR2ZiUTYwdEswcFVYTTJHLzNmYk4zVGZiRzg0OTFqbld0by9oaVk1VEV4d21KMWlZbVltSmlYWC9BQ254YnNIbXZZTjE0djVSdGNlODdIdk1jMHk0cnh3bU9jV3JNYVdwZWxvaStQSlNhM3gzclc5TFZ0V0ppck56YTRMWmp4WHlGN0lLVTVtVmFXdkxKVE9OWldwQk9XTkM5STZ1c1l6bWFXR1dtWTFxMFJLUXhMUWxNYXhiUjNwSnAwM0l6V3lmaVBtT3o4bjIvd0JLK21MdTFLL1BqOUo5T3ZIcnhtaytzVHJha3owenJIVGUzaXg5eFAyMStRZXluZGJkejJIMU43N2U3bk5wdDl6cHJmRE51TmR2dTRyRVJYTEhHS1pheEdQUFdPdXNZNzllSEhnSU81VFg0TlluZ1VUQThDaVkrS1FVVFg0RDFNaU1VNmZCTVRva0c0QWN6YlBpOXNGR1BaVk9sU2RKNXhZUjI4d3IvRGNsL1d2YU9KYmlSYzZxWTdhVnlFdlFXMElic1dtU1VxWkJUL2MzWG1JeEo2WjVsNHRqOGkyUFhoaUk3dGhpZnAyNWRVYzV4Mm5scGI5V1ovTGJqckVXdnJ0TjlzSDNCYnYyYjhwanRuZWNsN2UzbmNzdFkzV1BTYmZzK1NkSzEzbUtzYTI2cVJFVnoxcEV6bHd4K1MrVEhoNmJYVU9aRHNZY1N3cjVjYWZBbnhtSmtHZERmYWxRNWtPVTBsK05MaVNXRkxaa1JwREswcmJjUW8wclNaR1JtUmpXNjlMNHJ6anlSTmNsWm1KaVkwbUpqaE1URThZbUo0VEV2YmJiN2piN3ZiMDNlMHZUTHRjdEszcGVsb3RTOUxSRTF0VzBUTVdyYUppYTJpWmlZbUppZEdwRks4QUFBQUFBQUFBQUFBQUFBQUFPdDc4MS93REtNY3VmaFpzUHFYVkMvWDhzSVI2aVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCbDF4YzUxOHBlSEY0M2E2SDJ2ZjQ1VXJrSmZ0c0RzM1R5RFhHUWwzOXp5TGpDclU1Rk1jaDlDbEk5ZGpvajJMS1ZxOEdRMG8rNFJNUlBNVzRlQS9ueTZKNUxTNlRXbklhRlZjZTl5V0J4NEVHMWsyS2owOW10bzcwYlF6VDVEYVBLbVlWWlRIdXBOUUxkeHhnek5EYlZoSWZXbG9XNXBNY2twOGtxU3RLVkpVU2txSWxKVWt5TktrbVhVbEpNdXBHUmtmb01VRHlBQUFBQUFLR0h5Z0hlVS9hWFB6SU5ldHlubDQxb0RDc1J3Q3FqRXJwRFZkMzFSRXovS3JObHMxR29wYmtyS0dLOTlaa251S3JRUkVhVWtwVjZrYVFoQ0FLZ0FBQUFBQUZoZjVPTHZLZmcvTUROOUp5SmJ2MXViMDFqWlNHWUNUK2hxempXVHFza281eWlVcm9sRE9Jek1nYlYybDNLVTYzMVBva1VYamhxUXU3aTBrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVk4OHV2aW9jbmZ4ZWQwL2czeVVUSE1kWHVMNkFBQUFBQUFTeCtSditWSTR2L3kxL3dCSGZiWXB2K1VkaFdMS1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVl0Y3hPUmtEakhwRElzLzZSNU9WejFKeGpYMVZJSmFtN0RNTFZpUXFFOUpRaHR3bFYxSEVqdldFbEt6YlM4MUZOZ25FT1BOOWUwK0hlTzM4bTczajJNNnhzNi9QbHRIcGpyTWF4SEdPTjVtS1Jwck1kWFZwTVZsaFQzLzhBZHJhK3pmdHZ1L0tQa3YzekxQN1BzY2R0WmkrNnlWdDBUYUlpZGNlR3RiNThrVDB4ZXVQNmNXcmZKUlVCdTdtM3lXNXRzaXlDeG1YTjdlMlUyNHViYXhmY2xUN08wc3BMa3lmUG15WFRVNC9LbHlubE9PTFVabXBTak14dHpod1k4R0t1REJXS1lhVml0YXhHa1ZyRWFSRVJIQ0lpSTBpSTVROEV1NDl3MzNkKzRaKzdkMHpaTngzUGM1cjVjdVhKYWJYeVpNbHB2ZTk3VHh0YTFwbTFwbmpNenErWjBGNkt1RzhpcUtvQlYwanowRlVWSEkycTlUNTl1bk5hblgrdU1mbFpGa3RzdFJ0eDJPamNXRERhVWdwVnJiVG5UVEdyS21DVGhHNis2cEtFbXBLUzZyVWxLdm45MDdwc095N0svY081Wks0OXJUbk04NW4wcldPZHJUNlJFYXk3WDRSNFI1UDdpZVI0UEZmRU5yZmQ5NHp6d3JYaFdsSTA2c3VXOC9ManhVMWpxdmFZaU5ZaU5iVFdKdEljT2VFZUJjVmNjUk9jS0hsbTNMcUcyaktzN2VpbDJ3MHI2cmN4M0RtNURmckZSanpLbEVUcm51Wk5rNGduWCsxQk1SbytyZm1mbkcvOHEzTTRxZFdIczFMZkppMTQyL3o4dW5DMTU5SS9MU09GZFo2cjI5cXZ0KyszSHhqMlI3Ukc2djhBVDMzbm00eHhHNTNzMTRVMTR6ZzJrV2pxeFlJNVd0d3liaTBSZkwwMWpIaHc1dkRvclpBQUFBQUFBQUFBQUFBQUFBQmhMNWpIeE1OM2Y1T3hEOEltSUR2bnRqR3ZuT3dqL095LzBHVnJoOTNQL2wzOGsvNnJhLzIvYXFtUFFiaC9TaDRUYW5RUHBRYW5RUHBRYW5RUjlLRFZaWjhvVDRydVJmRExsZjNLNElOWGZlaU9ueXZESC93T1Ara3pQWXY3QmY4QUJYZWYrSWR6L1p0a2xQR0kyN29BQUFBQUFBQUFBQUFBQUFENHVSNDVRWmZSVzJNWlRUMTkvanQ3QmZyYmltdFlyVTJ1c1lNbFBZOUdsUm5rcWJjYlVYNkhWSmtSa1pHUkdMKzIzTzQyZWVtNjJ0N1k5eFMydGJWblNZbVBoUDhBdytENTNkKzBkcjc5MnpQMmJ2VzN4YnJ0VzV4emp5NHN0WXZUSlMzQ2EyclBDWS9pblNZMG1JVmpPZHZsOVgvSEdmTTJOclppenliU0UrUjN5SFZrdVpiNjJseTVTR1k5VmtMcWVya3ZINUR6Nkc0Tm1vdXZlWlI1WFI3d1haZXh2aGZuRzM4aXh4c2Q5MDQrOVZqbHlybGlJMW0xUGhhSWladlQwajVxNjE2b3A0NC9jdDlyWGRQYVhkWlBMUEVxNXQ1N2NaYjZ6TTYyeTl2dGEwUlhGbm5uYkJhYlJYRHVKOVpqRm0weWZUdm5qSU1oMytZYWR6RDFGRTErQ0FVVFVlQlJNZkZMd0tKcUxHZmxKY24zODR3cXo0N1pmUFhJeVBXOWVkemdjcVU2dDEreHdCeVcxSGwwcHV1RW8xTHhDem10SVlKUyt2cUV0cHB0Qk54REdEdmN6eDZ1MTNOZS9iV3VtSE5icHl4SHBrMCtXMy9QaUo2dUg1cTZ6TTJ1OVl2c1o5NWN2a2ZqK2Iybzc5bG0vZHUwNHZyYksxcG1adnNwdEZiNGRaOWRya3ZXS1JOdGZvNWFVcFdLWUpUS2pGTDBCQUFBQUFBQUFBQUFBQUFBQUFIVzkrYS8rVVk1Yy9DellmVXVxRit2NVlRajFFZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUo4UEs5ODYzWVhGU1hqK2x1UjFoZmJNNDNmUUt1b3QzVnZYT2VhY2pwTHc0cmxDNjhwYzNKY0lpRVNXM0taMXczWVVjaVZYcVNUWHFjaWkxZGVYTVhkOEx6VEU5alluanVkNEprVlRsdUc1YlV3NzNHOGtvcGpOaFVYTlJZTXBmaVRvTXRoU20zV25XMWZvS1NvalNvaVVSa1ZwTGM0QUFBQURyWGZNN2x6cG5tRWN3WHJCUzFTRWI0enVJMmEyVU1INmpBdFZ3YXhKSVEyMmxTRVZzZGtrcjZHYmlTSlJtb3pOUjM2L2xoREJNU0FBQUFBQUFsRjhseVZPaCtaeHhYZXJsTFRJWGY3QWl1R2hsRDZ2VVoybjlod2JSSm9XMjRTVUtyWkR4S1gwSTIwbWFpTkprU2lwdCtVZGlTTEtRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFMZWQzNWcvSXpnai9BTE1mN3dGbGlkZCsrcCsvUjlkdjEwWXRGeVh4dnJIL0FIcC9lSDFIMWw5bjFMdy9ydm0rTDI5ZkU3a2RmM0pDdXNSUE1RTGZuQnZtTWZaTHFiNzF0WDlQQ3ZvcWcvT0RmTVkreVhVMzNyYXY2ZURvcUg1d2I1akgyUzZtKzliVi9Ud2RGUS9PRGZNWSt5WFUzM3JhdjZlRG9xSDV3YjVqSDJTNm0rOWJWL1R3ZEZRL09EZk1ZK3lYVTMzcmF2NmVEb3FMUVhrKzh0ZHdjeitKOWx0L2Q4MmduWmxHMjVtR0hOUDQ1UnNZL1hsUzB0SmlNNkNoVUNPNjYyY2hNaTVmN25PdlZSR1JlMExkb2lKMGhLVkFVZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWVlWFh4VU9UdjR2TzZmd2I1S0pqbU9yM0Y5QUFBQUFBQUpZL0kzL0FDcEhGLzhBbHIvbzc3YkZOL3lqc0t4WlNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNycjVvKytIdHI4aVoyQ1ZrenhjUDBzM0l4Q0cwMDhwY2VUbDc2bUg4NHNWTnFhYlV6S2pXTExWVXRQVmFmL2RmZWsvb2hrTm8vYS9zRWRwOGNydmN0ZE4zdmRNay9HTWYvUlJ6NHgwek9TT1grc21KNVBGejcxUGM2L25IdXhrOFoyV1RxN0Q0N0Z0clNJbld0dDFiUzI4eVRHa2FXcmtpdTJtT01mN1AxUlB6ekNOUVpKaXJUMTU2R0t1bEdyMkpKaXJSSFU5dTBoT2luV1hQZkhuamxzbmtyblRHRTY5ckNVaGttWldTWkxPU3RxZ3hTb2NlSnBkbGJTa3BQdWNYN29tSXpmZEprclNaTnBNa3JVajRYa1hrWGJQR2RoTy83bGJUWFdLVWpqZkpiVFhwckg4Y3pwV3ZyTWF4cmxEMm45by9NZmVQeWF2am5pbUhXdGRMYmpjWDFqQnRzVXpwOVRMYjR6eDZNZGRjbVNZbUsxMGkwMXRTOFplTDJ0dUxtREl4VENJaHpidXlSRmtacG04OWxDYjNNTGFPaGFVdnllaTNrMXRSQ041eE1HdlpVYkVWdFNqTTNaRGo4aDdWSHlueXZ1ZmxlLzhBMnJlejA3ZW1zWXNVVDhtT3MvRGwxV25TT3U4eHJhZVVWckZhMTl1dlpyMlY4UDhBWlR4cU94K040L3FkeXpSVzI3M2w0ajYyNnkxaWRMVzR6OVBGVFcwWWNGSjZNVlptWm0rVytYTGt5UUhXV1h3QUFBQUFBQUFBQUFBQUFBQUJoUjVpdnhNdDIvNVB4RDhJZUlqdi90ZEd2bmV3ai9PeS93QkJsYTMvQUhkZitYYnlUL3F0cC9iOXFxY2RCdVg5T1hoTHFkQkgwalU2QjlJMU9nZlNOVmxQeWlQaXY1RjhNZVZmY3RnbzFXOTdJNmZMY1VmL0FBR1Ara3pQWTM3QmY4Rk4zLzRoM1A4QVp0a2xMR0gyN29BQUFBQUFBQUFBQUFBQUFBQTBWbFcxOXhYejZpM2dRcldwdFlVcXRzNnl5aXNUcSt4cjV6QzQwMkJQaFNVT3hwa0taR2RVMjYwNGxTSEVLTktpTWpNaFhpeTVNR1N1YkRhMU0xTFJhdHF6TVRXWW5XSmlZNHhNVHhpWTR4TGo3dmFiVHVHMHk3RGY0c2VmWTU4ZHNlVEhrckY4ZVRIZUpyZWw2V2lhM3Blc3pXMWJSTVdpWmlZbUpWdnVmZmwxVGRPS3VkeTZVZ3liUFZDM2x6Y2x4SmxMOHV6MXdsMCs1MmJGV3BUejlsaGlYVFBxNG96ZnJrbVJPOTdKS2VSc0o0UjU3ajcxRk8xZDNtS2QyaU5LMzRSWE5wK0hDSzVOUFNPRnVNMTBuNVhraDl6L0FOcCs1OXY1M0huL0FMZDQ3NXZCNXROOXh0bzZyWk5ocnp2V1oxdGsya1QrdFB6NEltSXYxVWlja1JGbVF5ZE5XaW1rUzlUSVV6Q25TWWVvb21vQ2lhL0FjdjZDMjViNkkzRnIvYTlNYnkzc1F5R0xOc1lUQzIyMTIrUHllNkJrdEozdXR1dE5sYzBFcVJHSlpwTTJsT2t0UFJTU012bGQ0N1poN3YyelAyM053cG14ekd2OG0zT2x0SW1OZW0wUmJUMTAwbDN6Mng4NjMvdHI1OTJ2emZ0L1ZPVFlicXQ3MHJNUk9YQmJXbTR3NnpFeEgxc0ZzbVBYU2VucTZvNHhFcnF0TmIxbVExRlZmMGs2UFowMTVXd2Jlb3NvaS9FaTJGWlpSV3BzQ2RHY0xvVGtlWEZlUTRoWHRwVVJqVXpOaHk3Zk5mYjU2elhOanROYlJQT0xWblNZbjhZbU5INkhPMzcvQUdYZGRoZzdwMjNKVE4yL2M0YVpjV1NzNjF2anlWaTlMMW4xcmFzeGFKOVlsOUlXbk1BQUFBQUFBQUFBQUFBQUFBZGIzNXIvQU9VWTVjL0N6WWZVdXFGK3Y1WVFqMUVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNjdnljUE5OdE9HK3dJV2tkeVhrcVp4ZTJIZE5OdlNaejBpVis4dmxOaTZ0c3N5cG16V29tY1J0SlQ2ZmYrR2hKOXFTS2N3WGpOdnRUS2JWMTVjeGU4aXlvMDJOSG13cERFdUhMWWFsUkpjVjF1UkdsUnBEYVhXSkVkOXBTMm5tSG1sa3BDMG1hVkpNakl6SXhaUy9jQUFBSFg1K2VwcCtmcXJ6R2R0V3E0cjBlaTNCVFlYdGpHblhUN3lsUjdiSDR1TjVHNGwwdWlUNlp6aTFyMm82RXB0czBFZlgwS1ZlcFB5b1EraW9BQUFBQUFCT3o4bm0wL1k1OXo1amJKVEdjOTVkRmF6empLcFZoMFAxZHU3ek9xZTFwVDFhakpSSDYxUHJjcnNuMnlNalNiY0p3L1FaSjYwWDVDOXFMU1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVk9QbFFuKzQ3L3hML3dETCtMbVAxUktwd0xnQUFBQUFBQzlMOG5PL0ovM1g0dzJ4dnVZMTRMVi96SlQwaWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJqenk2K0toeWQvRjUzVCtEZkpSTWN4MWU0dm9BQUFBQUFCTEg1Ry81VWppL3dEeTEvMGQ5dGltL3dDVWRoV0xLUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ4OXRuTzQrcjlYN0QyTktUSGRhd2ZDOGx5bE1hUzhsaHFkSXBLaVhZUTY3eEZMYitpMlV0aEVkdEpLSlMzSEVwVDdveUgwZXo3QzNkZTY3YnR0ZFkrdm5wVFdJMW1JdGFJbTMvTmlabWZoRWF6d2RWODU4bXcrRitHZDI4dXp4V2NmYmUzYmpjOU5wMGk5c09LMTY0OWRZNDVMVmlsWWlkWnRhSWpqTUtUZGpQbjNGalB0clNXL09zclNiS3NiR2RKY1U5Sm1UcHI2NU11VklkV1pxZGZrU0hWTFdvejZxVVptWTNjeDRxWXFWeDRxeEdPc1JFUkhDSWlPRVJFZkNJZm5MM3U5M1BjTjNsMys5dmJMdk0rUzJUSmUwNjJ2ZTlwdGExcG5qTTJ0TXpNK3N5MHBKSVhOSEUxbDdkREZVUWFTODlCT2lkSE1HaU5MWlp5QTJqaStyY05iUW15eUNVbzV0bStnMVFhQ2pob09UYzM5aWZlMlhxdFpCUXBaSTdrcmtQR2hodnE2NmhKL0o3OTNuWitPOXF5OTIzMC93QXppcndpT2Q3VHdyU3Y0Mm5TTmVVUnJhZmxpWmQvOXNmYnJ2dnVwNXJzdkNmSG9pTjV1ci9Qa21Qa3dZYVIxWnMrVGpIeTQ2Uk14WFdKeVg2Y2ROYjNyRTI3ZEc2UHdIajNyeW8xeHJ5clRDcTY5SlNMS3hlU2hkeGsxNDYwMDNZWkZmekVwU3FaYVQxTXA2K3cwdzBsRERLVzJHbTIwNmQ5L3dDL2R3OGo3bGZ1ZmNiOVdXM0N0WS9ManByd3BTUFNzYS9wbWRiV21iVE16NzErMnZ0dDR0N1UrSjdmeEh4UEJHUFpZbzZzbVNkSnk3ak5NUkY4K2Ura2RlUytrZkN0S3hYSGpyVEhTbEs4dmo0cnZ3QUFBQUFBQUFBQUFBQUFBQUEvTjU1bU95N0lrT3RzTU1OcmVmZmVXbHBsbGxwSnJjZGRjV2FVTnR0b1NacVVaa1JFWFV4Vld0cjJpbEltYnpPa1JIR1ptZVVSSHJNcU1tVEhoeDJ6WnJWcmlyV1p0YVppSWlJaldabVo0UkVSeG1aNFJDTGp6QitUV2hMWGpwdEhWdEp0REY4aXpySVdNZWlWdEhqTXR6SStzaXR6TEhiV2MxTXM2Um1mVDFqa2FGQWRVcE1tUTBydVIyRVJyNkpHYlBhL3dQeS9ENU50Ty9iclliakQybkRONXRreXg5UGhiRmVsWnJTODF2YUp0YU9OYXpHazY4dUxSLzdzZmU3Mm8zM3RIM3Z3YnRuZk5qdlBLdDNYQlRIZzIxcDNIelk5M3Q4dDR2bHd4ZkRpbXRLV21ZeVpLVHJIVEVUYmdyYmRoZm9qYXY2Y3ZIZnFPd3YwUStuSjFIWVg2SWZUazZqc0w5RVBweWRTZDd5d09SK2o5YjZhdDljWjlzYWl3M0xaMnpMdTlpUThqT1hVMXoxWFpVV0tRSWtrOGhseFc4ZFk3NWRhOGswT1NrT0k3TzVTU1NhVFBYWDNlOEg4cjd6M3VuZXUwYkxOdWUzVTJsYVRPUFM5b3ZXK1MweDlPSm5KUEMxWjFpa3hPdWtUckV2VC93Q3luM245c1BEdmIzY2VHK1dkNTJuYmZJTXZlYzJlbE54MTRzYzRzbURhNDZXL2FMMWpiMTF2anZFMXRsaTBhYXpFUk1UTTAxWGJWZDVBald0TFpWOXhXVEd5ZGlXTlhNajJFQ1UwWjlDY2pUSWpqMGQ5c3pMMlVxTWhydHVOdnVOcG10dDkxUytQUFdkSnJlczF0RS9DWW1JbVAzWWVrT3gzK3g3cHRhYjd0bWZEdU5qa2pXbVRGZXVTbG8rTmIwbWEyajhZbVgwQlpjc0FBQUFBQUFBQUFBQUFBQUFBZmsrd3pLWmVqU1dXcEVlUTA0eElqdnRvZFpmWmRRYmJyTHpUaEtRNjA2aFJwVWxSR1NpUG9ZbXRyVXRGNlRNV2lkWW1PRXhNZXNLTXVMSG14Mnc1cTF2aHZXYTJyYUltSmlZMG1KaWVFeE1jSmllRXdxMWVaRHhDWTQ2YkpqWnJnMWVjZlVtekpjMlRVUTQ3QnBpWWJsRFJGS3RzU0pUYWZBWXJYMjNEbDFTVDdEOVdKMWhLVkZFVTR2Wm4yLzhBS3A4aTdiTzEzbHRlNjdhSWkvSGprcFBDdVQ0NjhPbS9QNXRMY091S3g0dGZkdjdFWS9hYnpDbmtIam1McDhGN3plOXNWYTErWGFiaVBteTdYV1BsakhNVDlYYlJQVFAwK3ZGRVQ5Q2IyallIZnBxMUZlcGtLSmhFdzlUSVVUVkhKNEZ1WStJdGtlV1hzMTdaUEVUQW1wc21STHRkZFRMaldWaSsrZmQ5Qnh4MW1aamtaay9aSmlCaHR4V3gwa2ZzZUVmdGRCclY3aWR1anQvaytXMUlpTWU0cFhORVI4YmExdk0vamJKUzlwL1M5d3ZzNzh4eWVYK3hQYk1lNXZmSnZlMDVjdmI4bHJmREJNWDI5WS96YWJUTHQ4Y2Y4bG44T2pOb2dBQUFBQUFBQUFBQUFBQUFIVzkrYS84QWxHT1hQd3MySDFMcWhmcitXRUk5UklBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMb1h5ZmJuNU0yN3JpeTRjYlJ2SEp1ZTZib2tYR3BMS3lmVzVMeUhVY1orUFh5TVc5WWU3amZtYTJteTQ3VVZCck5aMDhwbHRwQk5RSEZGYXZHbkVXVEJRa0FBRUZYbnM4RDdYbFJ4NHJOeGEwcG43YmNuSFp1NHVXYWV2YlU3WVpsckd6Ukhmek9naHhXV2xPMk4zUk8xN0ZyWHQ5M2NiYk14aGxDMzVTRWl1azZUb0tJd3VvQUFBQUFINk1zdXlIV21HR25IMzMzRU1zc3NvVTQ2ODY0b2tOdE5Ob0pTM0hIRnFJa3BJak16UG9RRHNDdkpmNEtUK0YvRnR1eno2clhXN3YzcklyTTYyUEJrZisxNHZVeG9zaHZCTUNmTHcyamFsNDlWV0w4cWMycEpyWnRMS1V6M3JiWmJNV2JUclA0SlRBQ2tBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlU0K1ZDZjdqdjhBeEwvOHY0dVkvVkVxbkF1QUFBQUFBQUwwdnljNzhuL2RmakRiRys1alhndFgvTWxQU0tBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHUFBMcjRxSEozOFhuZFA0TjhsRXh6SFY3aStnQUFBQUFBRXNma2IvbFNPTC84QUxYL1IzMjJLYi9sSFlWaXlrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVI1K2FMbHFNWjRlNXRYZGpoeU0zeUhDc1NpdXR1K0Y2dXNzaGlaVEtXdFBocjhadCt0eGQ5ZzBkVWYzWHIxOUhhckkvdFZzNTNYbVdITEV4MDdmRmx5VEduUDVKeHgralNja1RyeDVmdXRVZnZVNzdIWnZZRHVlMWlKK3IzTGRiVGExbUowNmY1K200dE04SjFpY2UzdlRUaCtiWFhocE5WL29OcmRIaUxvOXVncWlxVG9LNHFQUFFWUlVXS3ZLSDBuRnhyVkdUYndzNFNmZjdaTnZLeDdIWmJqYksxTVlUaXNzNHN0VUo0aThka3JqTG1aU0pUWm4ycjk2NDZ2YUd0bnZOM3kyNTd2aTdCaXQvcysxcEY3eHg0NWNrYXhySEtlbkhOWnJQOEErRXREMXMrd2oyNHc5bThGM251VHZNY2Y3MDd4dUxZTUZwaUptdXoyMXVtM1JQT1BxN3FNa1pLOHAvWjhVK2lYOFlYYjlnQUFBQUFBQUFBQUFBQUFBUG4ydHRWMFZiTnVidXlyNmFvcll6c3l4dGJXWkhyNjJ2aU1KTmIwcWJPbHVNeFlzWmxCZFZMY1VsS1M5Sm1MMjMyKzQzZWV1MjJ0TDVkemUwUldsS3phMXBubEZheEV6TXo2UkVhdUp2OEFmN0h0ZXp5OXg3bm14YmJ0K0NrM3laY3Q2NDhlT2xlTTJ2ZTh4V3RZampOclRFUjZ5aVk1Q2VhdGhtSnV5OGMwSlNNWi9jc3FkWWV6Ty9STWhZWEZkVDdsSjFkZXk1RXVzazZMSlJHczF3SS9vU3B0YjZWZWpZanczN2ZlNTl4clhlK1g1WjJlMW5TWXc0K20yZVkvejdUclRGK2pUSmJuRm9wTU5BZmQzNzh2Ryt3Wk1uWnZhamExN3YzS3N6V2Q1bmk5Tm5XWTRmeldPSnBtM1BIWFdabkJqNFJOTFphendoMDIxeVMzZHZDVTY3c25ZZDllUVZ1ZUl6anpMNmFuRm9uUlpxYUtOalZVaUhUazR5bm9rbmxzcmtLSkpkN2lqOUkyWDhkOEg4VjhVeHhYc2V5dzRzMFJwT1NZNjhzL0hYTGZxdnBQOG1KaXNla1JEem05d1BlZjNPOXo4OXNubW5lTjN1dHJOdFkyOFcrbHRhY2VIVHRzVVV3Nnh5NjVwT1NZaU9xOXA0dUNKSHBaV1gvVi93RFdTT3c3eU5kdGFQMGZ4d3hqWG0rYjJIODc5Z2ZCK211YXdkaC9PL1lENlpyQjJIODc5Z1BwbXNIWWZ6djJBK21hdzE4VXVqYWkvd0RUUC8xVWo3UGI0NmNFeC9uVC9GQzNibTVWMXR1YmFtbjdIMzAxbm5tUjRkSlU0VHNobXFzRmxWejFrU0NMMzBwSkJQMDFzZ2liVDdtU3c2bjNKZWowRU9EM3p4angvd0Fsd2ZzL2ZkcGczTk5OSW05Zm1yL3lMeHBlbk9lTmJSUEYzWHd2M0k4ODl1OTUrM2VFOTEzbmJzMHpyYXVMSlAwcnp3LzF1RzNWaHl4d2poa3gyamhIRGdseTBCNXNhWEhZV1BjaWNiYmpvV3REUDc0ZUdSSGxOTkVaa2tuOGd4SWxQdkdoUDdweDZ1V3BYdElobjdJMXk4dyszaWExdHZmQzg4Mm1JMS9aczh4clA0WTgzQ1AwVnlSSDQ1SG9MN1MvZjNGOG1MdEh2RHNxMHJNeFgvZUd6cE9rZjUyZmFmTk9ucmErM21aOUs3ZE1maUdaNG5zREg0R1ZZVGtOUmxHTzJhRFhDdUtXYXpPaFBkdlFuR2pjWlVyd1pMQ2o3WFdsa2wxcFpHbGFVcUl5R3RIY3UyZHg3UHZMOXY3cGh5YmZlNDUrYWw2elcwZmpwUE9KOUpqV0pqakV6RDBiOGU4azdCNWIybkYzN3huZWJmZmRuenhyVE5odkY2VDhZMWllRnF6d3RXMmxxend0RVR3Ym1IQWZiQUFBQUFBQUFBQUFBQUFBQVluODM5U3c5eThZTnI0dzVGUkl0NmpISm1iNHE0VVZNcVhIeVhER0hiMkMxWGtyM1RNbTVqUlg2MVMwKzZKaWM0WHBJekkrMStFZDB2Mm55YmE1b25URGt5Uml2eDBpYVpKaXV0dndyYWEzMCtOSVlOKzVId1hiKzRQc3gzenM5NlJmZjdmYVgzbTJucGkxNjdqYVZuTlNNZnd0bXJXKzNtMGNlak5lUFhSVHpOSkdOc0pqNHZBeUpmbVpHUXBtRlVUcTllZ3BtcVhxWkMzTUltUGdzQitTbmtjK1ZpZS84UmNrT3FxNlRJc0F5T0hGTmFqWVpzTXByY29yTEtRMjJmdUVPeVkrSFJFclVYcFVUU1NQOXlRd2Y3dTdmRlRQc056V0krdGV1V3N6NnpXazQ1ckd2d2liMjAvVEwxRi85Ty91Mjd6ZGs4cDdGZTlwMk8yM1d4ejBycndqSnVjZTV4NUxSSEtKdFhhNG9tZldLMStFSndSaHg2UEFBQUFBQUFBQUFBQUFBQUFPdDc4MS93REtNY3VmaFpzUHFYVkMvWDhzSVI2aVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjNmNaZDg1VnhoMzVxcmZXR09PKy9lczh2ck1nVkNha2VxcHZLVWxxaFpOakVsL3NkOEtEbE9OeTVkYytydE15WmtxTXZTUkNKaldOQjJkT3ZNOHhuYVdBNFZzdkM1NVdtSWJCeFRIODB4aXhKSkk5ZG9NbnFvbHpVeVZ0a3BmaE9Pd1ppRFVnek0wSzZwUDBrTENXOFFBQUFWVS9OZzhqZTF5eTh5WGtud214eUk5Yld6MGk3MlJ4K3JTalY1MkZpOHR5UmE1VnFwTHJqRUZNdWFwUnZTc2Y2dGVJNTNxcnpVNHR1Q2R5dC9TVUttZDdRWHVMWE5sanVUMHR0am1RVTB0MkJjVVY3WFRLaTVxcDhkWFkvQ3NxeXdaanpZTXRsWG9XMjZoSzBuN0pFTGcrU0FBTnlZaGgyVzdBeVNvdzdCY1p2c3h5eS9sb2dVbU5ZeFV6cnk5dHByblhzalY5VldzU1pzdDR5SXo2SVFaa2tqTS9RUm1BdUUrVXI1SlR1a2JuSHVUSEwrcHJMRGFsWXVKY2F5MDZ0eUpiMWV0ckpwU1pFUEw4emxSM1pOWmM1MUNXU1ZWOE5sVHNTbmNTVWhUajAzd3ZVYmRyK2tDekNMYVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZUajVVSi91Ty84Uy84QXkvaTVqOVVTcWNDNEFBQUFBQUF2Uy9KenZ5ZjkxK01Oc2I3bU5lQzFmOHlVOUlvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTg4dXZpb2NuZnhlZDAvZzN5VVRITWRYdUw2QUFBQUFBQVN4K1J2K1ZJNHY4QTh0ZjlIZmJZcHY4QWxIWVZpeWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUlJlY01zMDhaTUtTWFRvNXZQR0VLNiswUllIc3R6MGVuMmU1c3YxQmwzMlhqWHluUC9VTC93Qk5nYU4vK29CZWErelBib2psYnlYYlIvOEEyWGNKL3dBaXRuMEd6MFZlUGp6MEZjVlFDcUtqejBGY1ZRdUk4TnNiZzRyeFY0LzFkZVhSaVZxdkVjamM2cDdmOE96R3JaeTYwOUhjci84QXVWNDk2ZmI5bm9Yc0RTYnpqZFpONTVoM0xMbC9OWGQ1TWY3bUszMHEvd0R1MGgrZ2Y3Zk8wN2JzdnNmNHBzOXAvcXI5ajJtZWYrWHVzVmQxay84QXptYTM2V1N3NnF6RUFBQUFBQUFBQUFBQUFBRGhmZXUvTmNjZDhKbFp2c1c0VERqL0FFUmlscElodFBYK1QyYVVwVWlyb2E5YnJTcFQvdTBtNjRvMHNSbXo3M1ZvUjZSMmJ4WHhMdlhtUGRLOXI3Tmo2cjg3M25XTWVLdjhySmJTZEkrRWNiV25oV0psanIzTzkwdkVQYVh4dS9rbmwyNGpIaTQxdzRhNlRuM09TSTRZOEdPWmpxdHhqcXRNeFRIV2VySmF0ZUtzL3dBbk9aZTFlVFZ5ODFlVFY0MXIyTExVN1E2N3A1VGhWTVpLRmtjZVpleUNTeTdrbDBsS0VtYjc2U2FhWDNISGFZSlNpUGVEd1QyMzhmOEFCdHRGdHBXTS9lTFYweWJpOFIxejhhNDQ0eGpwL20xNHpHblhhMmtUSGkvNzNmY0w1MzcxZHd0ajdwa25aK0pVdnJnMkdHMC9TckVUOHQ4OXVFN2pOR2tmUGVJcldkZm80OFVXbUp4UFN2OEErait6N1F5UEZtdk5zZndmb1JrWXJXWmlZZm05L2N6L0FFMC8rdWtXTnhHdUdZL1IvSEJITnBlMGg4ejZhdlNEdElQcG1rSGFRZlROSU8waEhRYVExREhvU3Ivci93RDNVajZPMGpUSFAvSy95UXBzL2NjcEFBNTQwTHlQMm54enljc2kxM2VyWmh5bkdmZi9BQlN5TjZYaTJUUjJsRVpNMjFXVHJSRklRanFscVd3cG1Zd1NsRTI2bEtscFYxSHk3d254L3dBMTJIN0YzckZya3JFL1R5MTBqTGltZldsOUo0Zkdsb21sdUd0Wm1JbU1xZTFQdkw1MzdPZDhqdkhoKzZtdTN2TWZYMnVUVysxM05ZOU11TFdQbWlPRmN0SnBscEV6Rkx4RnJSTmxqakJ5dzF6eWZ4ZFZoamJwMG1aVkVWaGVYWUpZdnRydGFWMXcwdEttUVhTUzJtNXg5NlI3bG1ZMmxQN3BLWG0yWFZlR05HL1BQYnp2ZmdlLytqdm8rcjJ6SmFmbzdpc2ZKZU9mVGFPUFJraVB6VW1aOVpyTnF4MVBhbjJQOS9mRHZmSHNjN3ZzdHYyYnlQYjByTzcyT1MwVGx3elBDYjBuaDliYnpiaFROV0k1MWpKVEhlZWhsR09nczZBQUFBQUFBQUFBQUFBQUFBS0tsckdiaDJsbEVaZGJmWml6NWtacDlreU5wNXRpUTQwaDFveVVzamJjU2tqVDZUOUIreU40SWpxanEwMDFqay9OQnU4VmNHN3k0S1dpMUtaTFZpWTVURVRNUk1maFBPSHorZ29tdndXSG9hZm5mMUJSTUtvdDhYb0taajk5VW11OGxsU2kyRHZKSktNa3F3M0UxS1QxUHRVcE4zWkVsUmw3QnFTU3o2SDdYVS9uakVIdTdHbmJkcFByOWUzK2c5RVAvVDBtZi90WDVKR3M2VDIvYmNQMFpyNmZ2YXorK3NKakF6MVNBQUFBQUFBQUFBQUFBQUFBZGIzNXIvNVJqbHo4TE5oOVM2b1g2L2xoQ1BVU0FBQUFBQUFrSzhxRDhveHhHK0ZtditwZHFJdCtXUjJRZ3NKQUFBQUFBQUFBQUJ4Qm5uSHpRdTA0ajBEWm1sTlRiQmh5RnVPdXg4MTEzaU9UdHFlY1U0dGNnaXVxaWFhWkp1T3FWNGhkRmtwUnFJK3ZwRTZ5SWR1VlB5ZmZoN3VhQlpYT2l5dU9ObXdWc1B1d3l4MlROeWJXbGxQOE0vQks1d3ErbXlKZFd3dGFFSUk2YWRYdE1wTlN6anZMOUIxUmVmVVZGT1lQQjdrTHdlejlHRGJ6eEZVQ0xhSEtkdzNQS05iOXBnR2VRWWEwSmtTc1l5QTQ4WWx5b2hPdG5KZ1NtNDFqREoxdFR6Q0VPdEtjdVJNVHlReEVFZ0FBQUFBQUFBQXZhZko3K1FFamJQQnhXc3JpV2NtLzQ4WjVjNE94NHJodXlYTUp5VWl6UEVwRDYxTFVzbTQwdTFzNjVoUFFrdHhxMXRLZlFYUXJWNDBsS2RvVUFBQUFERkhrWHdjNG5jc1drbnYzUitHWjVhdE1KalJzclZIbVk5bkVTT2hKSmFqUnM1eFdaU1phaUV6MEkweHptSEg2a1hWQmlZbVk1Q0tmTWZrMzNCaStsU3B1TTUxeUt3VlR5aytyMWRibWVGWGRGRVQ0eTNGa2huSTlkMlYrNlp0TDhOSnJzbGRwSlNaa28rN3VxNjVOR3J3bjVPTHdReHVaRG5aUGxuSVRZWnNHU3BkVGVaeGlkTFFUdWkxbVNEYXhEQWFESVk3YWtLU1N1eXo3ak5QVWxKNjlBNjVORXMzSHpoM3hoNHExejFkeC93Qks0VHJaVXBodUxPdWF5Qy9aNWJhUm12N2xIdU0yeUNUYjVoY01ObVptbEVxYzhrbEtNeUxxWm1kTXpNOHhrcUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlU0K1ZDZjdqdjhBeEwvOHY0dVkvVkVxbkF1QUFBQUFBQUwwdnljNzhuL2RmakRiRys1alhndFgvTWxQU0tBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHUFBMcjRxSEozOFhuZFA0TjhsRXh6SFY3aStnQUFBQUFBRXNma2IvbFNPTC84QUxYL1IzMjJLYi9sSFlWaXlrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVJYZWI3Q2RsY1hzYWZiUjNJcmR6NHJOZlY3cjZHMDVpV2UxeEw5eVJsNlg1NkUrbm9YdXZuOUJsMzJXdld2bG1Xczg3YkhKRWZwK3BobitLSmFTZmZ6dGI3ajJVMm1Xc2F4ZzhoMjE1NThJbmJiekhyKy9raU9QRGo4ZEZha2JTeFY0NHZZa21mdGZxbUt0SUh1U0M5djAvc0NyUWU1RVJld1hRVDBpMmw1ZldkSXozaU5wK1l1WTFLbjQzU3k4RnNta08rSTdBWGh0bk1vNnFISkxxWnRPcXh1TEJmU2svWWFlUWZvSXlHbWZ1WDI2ZTIrYTc3SEZacmp5M2pOV2RQemZWckY3VEgvQUdrM2o5TVM5NHZ0VThtcjVSN0NlUGJtY2tYM08wMnR0bGtpSjFtazdUSmZCanJiNFQ5Q21LOFIvSnZXZlZtYU9pTmh3QUFBQUFBQUFBQUFBQmpSeWQ1UzY3NHU0U2VTNWU4ZG5rTm1UMGZEOElnU0dXN3JKckJ0SmR5azkvZjczVXNKU2tuTG5PSVUyd2t5U2xMankybVhPNmVFK0Q5Mzg0N24reGR2am8ybE5KeTVyUlBSanIvL0FEWHQrcFNKMXRQR1ppc1d0R0lmZUwzbThWOW12SGY5Nzk5dDlidW1iV3UxMmxMUkdiY1hqOU92UmlwckU1YzB4TVVpWWlJdmt0VEhhclJ2SGZleGVRMmRUTTgyTmJuTm5PRXVOVDFNVkp4NlRHYWZ4bHV4NldpZzl5a3g0YkhmN3BhalcvSVgxY2VjY2NNMUh2VDR0NHQyZnhEdGRlMWRteDlPS09ON3p4dmt2cHBON3o2Mm40UnBXc2NLeEVSRVBGVDNOOXlmTFBkZnlYSjVONWRuK3B1WjFyaXhWK1hEdDhXc3pYRGhwK3JTdXZHWjF2ZWZueVd0ZVpzNGhTNTgzemV3T3p4WmpXK04rNlYvTjgzc2l1TE9OZkY4R29TNTgzOW4yaGNpempYeC9GK3BuM0o2SDg5UC9yRjdJakpPdU9ZLzRjM0d0U2Evb2VPd3ZtTWNicGxTZGlRNkVuWWtPZ094SWRBOTBFUmR4Ri8wdi91cEhKd1JwV2YwL3dDU0ZNdmNYZ0FBRzhzQTJEbU9yc3NxTTN3TytuWTdrdEpKUkloV0VGenROUkVwS25ZY3hoWGN4UHJwYVU5ajhaNUsyWDJ6TkswbVI5Qjh6dkhadTJkLzdkazdWM2ZEVFBzY3RkTFZ0SDcwMW5uVzBjNjJyTVdyUEdKaVhZL0UvTHZJdkJ1LzdmeWZ4WGRaZG4zcmEzaTFNbEowOWVOTDEvTGt4M2poZkhlSnBldXRiUk1Tc3k4UHVhV0hjbktGTlZZZW9ZdnRxb2pMY3Y4QURpZlVURm5HWU5DVjVEaXE1Q2xQVGFwenZMeG1EVXVSQ2NQdGM3bXpiZWQwVzl5ZmEvdVhnbTgvYU1QWHVQSGNsdE1lYlRqV1ovNlBMcHdyZVBTM0N0NDR4cFBWV3Z0bDl1MzNLZU8rOTNhWTJHOCtsc2ZjRGIwbWMrMDZwNmNsYTZhN2phemFkYjRwMWpycE16a3cyK1cvVlNhWkw1dURGYlp3QUFBQUFBQUFBQUFBQWNmN1h6dUZxL1dXd05qVDFSaWpZUmgrUTVONGN0MUxMTXQrbnE1TTJIWGtwVGpScmVzcGpUY2RwQ1ZFdHgxMUtFZTZVUkQ2UForMzI3cjNYYmR0cHJybnpVcHJFYXpFV3RFV3Q2OEt4cmFaNVJFVE04SFZmT2ZKOXY0WDRaM1h5M2RUVDZYYmUzNTl4cGFkSXRiRmp0ZW1QWFdPT1M4VngxaUoxdGEwVnJ4bUZJcFpxY1VwYXo3bHJVYWxLOXMxS1Bxb3o5cjBtWTNWbXI4NHN6MVRyUE9YNW1Rb21GT21qd0xjMVE5VExxS0pqVDlDcUowVG0rU25TTnVXbklmSW5EZko2RkExcFN4aVNwQlJYR3JPUm04NmNiaVRiTnhUN0s2aVAyR1MwcEpLMTlTVVpwTk9GdmVITmF1RFliZU5PaTk4MXArT3RJeHhIN256enIraVB4MTlLZjhBMDd1MzQ4bSs4cjd0YnErcml4ZHZ3MTVkTXhsdHZMMzE0YTlVVGlwcHBNUkVUYldKMWlZbnZHREhwNEFBQUFBQUFBQUFBQUFBQUE2M3Z6WC9BTW94eTUrRm13K3BkVUw5Znl3aEhxSkFBQUFBQUFTRmVWQitVWTRqZkN6WC9VdTFFVy9MSTdJUVdFZ0FBQUFBQUFBQUFBQURoTGtQeDQxUHlsMVBrK2w5MFl4SHlqQ2NvajlIR3o3R0xXanRXRU9lOW1UWXpaK0c0OVM1SlN2T0c1R2t0a2ZUcXB0eExqTGpyUzVpWmlkWUhYVjg4K0dXZGNGdVErVWFWeTl4MjNwU1FqSXRiNXA2c3VQRXpqQWJOK1FpbnVXMG1sTGJObkVjanV3ckpoSm1tUFlSblVvVXRydzNGM29uV05VTU1oSUFBQUFBQUFBc25mSm90bXlLVGt2dnZVamo3amRic0xUTUhORXMrazJYN3ZXbVgxdGJCUjJrUjlyL0FMMDdHc0ZrbytpZTF0UkdmVTBrZEYrUkM2QUxTUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRlRqNVVKL3VPLzhTLzhBeS9pNWo5VVNxY0M0QUFBQUFBQXZTL0p6dnlmOTErTU5zYjdtTmVDMWY4eVU5SW9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZODh1dmlvY25meGVkMC9nM3lVVEhNZFh1TDZBQUFBQUFBU3grUnYrVkk0djhBOHRmOUhmYllwdjhBbEhZVml5a0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZZGMvY0lrNTd4RDNWVlFZMGFSUHFNZGlacEhYSVN6M3hXTUZ1NnpMYmwrSTQ4WFZxV3JINmVXMG5zTWx1SmNVMlhYdk1qN3Y3Y2IrbmJ2TmRobXlUTVk3NVp4VHByeG5MUzJPc1RwempydFdlUENOTmZSci93RGRMNDNsOHA5aFBKTmh0cVZ2dWNHenJ1NjY2YTFqWlpjZTZ5VFdaNVduRGl5VmpUamFMVFNQemFUVWtKSkY3QmZxamMrSWw0TFBib0s0cWg1RmNWQVZSVkNYL3dBcDNrYkR3Zk9ielFtVXowUktMWmt4dTZ3cVJLa05NUTRlZlJJYVlzdXJOVHBOb0o3TUtlSXkweWFuT3E1Y0JoaHRDbkpCRENQdlI0cGs3aDI3SDVMczZ6YmNiU3ZUbGlJMW1jTXpyRnYwWXJUTXp3NFZ2YTB6RVZlZ24ySSs3MjM4YzhrM1h0WDN2TEdQdDNlTWtadG5hMW9pdGQ3U25UZkZ4MGpYZFlxVWltczhjdURIanJFM3l3c1BEVjk2emdBQUFBQUFBQUFBQU1OT1lITXZCT0tlS2tVcndNajJkZndaRG1HWU15OTBVNTBOYkNML0FDUnh0YVhhdkdZMGxKcDd2UTlNY1FwcGd2Y3V1TTVDOEE5dmU1K2NiNzVOY1Bac1ZvK3RtbVAzZWpIcnd0a21QM0tSTVd0enJGc0QrK1B2djQ3N05kbC9uZW5kK1hibkhNN1hhUlBQbkVaczh4T3VQQlczRFg4K1cwVFRIeXZmSFZxMm50ck85MVp4Y2JDMkxleUwzSmJseFBpUExJbW9rQ0V5YXZVNm1vaElQd0s2cGdJVWFXbVd5SWk2bXBScWNVdGF0M3V4ZGs3WDQzMnpIMm50R0tNV3p4eHk1emFaNTN2UE8xN2VzeitFUnBFUkVlTjNtM21Ia251RDVEbjhvOHEzTnR6M2JQUEdaNFZwU1B5NDhWSTRZOGRJblN0SzhPY3pyYTFyVHNCTG56Zk42Ujl1TE9tV3gvRis2Vi9ON2Y4QVpGY1djZTJOKzZWL044M3NDNUZuR3ZqMWFoTG56Zk43SXJpemkzeC9GKzVPZEM5bjUzNngvb0NxMXZsL2RqK054YjQvM252NC93QTNVeEdzZkZSOUNEeC9tNm1Hc2ZFK2hCNC96ZFREV1BpZlFnOGY1dXBockh4UG9RL2RwWGNreitlcitza2hkeFRyRS9wL3lRNDJXdlRmUitvdXJZQUFBRDdtTTVOa09HMzlWbE9LWE5oaitSVWN0dWRVM0ZWSmNpVDRNcHZxUk9NUHRHU2lKYUZHaGFUNm9jYlVwS2lOS2pJK0p2dGhzKzU3UEpzTzRZcVp0bGxyMDNwZUltdG8rRXhQNzhUemlZaVkwbUgxT3lkNzd2NDMzYkIzM3NPNXpiVHZHMXlSZkZteFdtbDZXajFyYVBqRXpFeHl0V1pyYUppWmliSVhDcm5iajNJV0JFd1RQbmEvR3R5UUl5RzB4L0VialZtd0dZMGMxeUxiSG1sRTJpTmJ0b2FVNUxyVW1vMHBJM21PNXJ4RVI5SS9kSDJsM25obWEzZCswUmZQNHplM1BTWnR0NW1lRk1rOGRhY1lpbVgxbjViNlcwbS9zejl0SDNVZG85M3RwajhWOHN0aDJYdVBpcEVkT3NWeGIrSzExdGwyOGNJcm1pSW0yWGJ4cnBHdVRGcmo2NjRaRlJoWnVJQUFBQUFBQUFBQUFBaGM4M0RrbENwTU5yT04yTVdMTDEvbHoxZGtleGt4bkczVjFPSzFzbHV3eCtqbUVUYXpqVHNndW96TTN0SmFIbTRzSlBlazJwYURWbTMyaDhaeVp0MWZ5YmRWbU1HS0xVd2E4T3E5bzB2ZVBqRkt6Tk9VeE5yVHBQVlNYbmQ5OS92QnR1M2RndyswSFpzMWJkMDM5c2U0MzhWbUpuRnRzZG92Z3czNFQwM3o1YTF6YVJhdDY0OE5lcXM0ODlabXZhTS96VjVWdkF0elZMMU1oYm1FVEh3ZW9vbXFsWmY4b1BBWE1iNDIzK2F5NFJzU3RqN0R0NWtDWWFTSTUyTjR2RGc0N0M2SDJrcFNJMlJ4N2RIc21SR1o5Q0krdlhYSDNhMzBaL0lNV3hwYldtMzI4YXgvSnZrbWJUKy9UNmN2WWY3Q3ZGNzlvOW90MTVIdU1YVG43djNiTGFsLzVlMzIxS1lLZmpwWGNSdW81NmE2NmFjZFpXeGl4dkFBQUFBQUFBQUFBQUFBQUFBNjN2elgvd0FveHk1K0ZtdytwZFVMOWZ5d2hIcUpBQUFBQUFBU0ZlVkIrVVk0amZDelgvVXUxRVcvTEk3SVFXRWdBQUFBQUFBQUFBQUFBQWdiK1VFOFhxemNYRFJlNzYyQWhlZThhN3lIa2NlV3kwU3BrN1h1WFdWVmpXYjB5bEVhZXNlSElmcjdnMUtNL0NickhTUVhWMVhXdWs2VG9LS291b0FBQUFBQUFBVEZlUXprSzZYek5OSzFxRk9wVGx1TWJneDV3bTJtSEVMUkcxVmx1VmttUXQ0eWNZYUp6R0VxSmJYVnczQ1NrL2NLV0tiL0FKUjJBZ3NwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCOEN4eXZGNmlTY08yeVNncTVpVUljT0xZM0ZkQ2trMjRYVkN6WWt5R25TUXNpOUI5T2hnTkQ5ZjJDZlpyaVgyeDAvd0JPQ2RKRzRJRmpYMnNWRTJybndyS0U0YTB0eTRFcGlaRmNVMm8wT0pSSWpyY2FVYmEwbVJrUitneTZHSUd0QUFBQUFBQUFBQUFBQUFBQUFWT1BsUW4rNDcveEwvOEFMK0xtUDFSS3B3TGdBQUFBQUFDOXY4bmRySG9IbDYrdE9PTnJSZDcwMlhaeDBvN3U1cGxxQmlWTXB0N3VTUmVJYjlRdFpkdlV1eFNmVDE2a1ZxLzVrcDF4UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ0OXBrTkJScVpUZFhsUFVLa0V0VWROcFp3cTlUNld6U1RpbVNsdnNtNlRackx1TlBYcDFMcjdJRDVYMS9ZSjltdUpmYkhUL1RnblNSdVdKTWlUNHpNeURLanpZY2hCT1I1VVI5cVRHZmJNeklsc3ZzcVcwNmd6TDJVbVpDQnFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIdzdQSjhhcFgwUmJuSWFPcGxPTXBrTnhyTzJnUUgxc0xXNDJsOURNcVEwNHBsVGpTa2tvaTdUVWt5NjlTTUI4NzYvc0UrelhFdnRqcC9wd1RwSTNMRW1SSjhabVpCbFI1c09RZ25JOHFJKzFKalB0bVprUzJYMlZMYWRRWmw3S1RNaEExQUFBQUFBQUFBQUFBTWVlWFh4VU9UdjR2TzZmd2I1S0pqbU9yM0Y5QUFBQUFBQUpZL0kzL0trY1gvQU9XditqdnRzVTMvQUNqc0t4WlNBQUFBQUFBQStUYVg5RlIrQjc5M1ZUVCt0ZUw2dDc2V1VPdjlZOER3L0c4RDF0NW54dkI4WkhkMjllM3VMcjdKQVBrZlg5Z24yYTRsOXNkUDlPQ2RKRzU0OGhpV3d4S2l2c3lZc2xsdVJHa3gzRVBNU0dIa0pjWmZZZWJVcHQxbDF0UktTcEptbFNUSXlQb0lIN0FBQUFBQUFBQUFBQUFOQmExZGZlVmRsUzIwUnFmVlhFQ1pWMmNGOGpOaVpYMkVkeUpOaVBFazBxTnFSR2VVaFhReVBvWXVZYzJYYjVxYmpEYWE1cVdpMVpqbkZxenJFeCtpWTFjYmU3UGE5eDJlWHQrOXBYSnNzK0syUEpTZVY2WHJOYjFuOExWbVluOEpVdTl4YTB0OU83U3p6V0YyVGlwK0Y1TFpVcFNYR1ZSL2ZLdlplTnludVdtVis2UkZ1NmgxaVl6MTlQaFBwTWI2ZGg3cGc3NzJmYmQzMituMDl4aXJmVFhYcHRwODFkZmpTMFRXZnhpWDUwdmNYd3pmZTNublBkZkN1NDZ6dU8zYnpKaWkweHA5VEhFNjRjc1I2VnpZWnBsci9tM2h4c1BzUlYwbzZDdUtqMjZDcUtwMGxxWWNtVkFsUnAwR1RJaHpvVWhtWERtUkhuSTBxSktqT0planlZc2hsU0htSkREeUNXaGFESlNWRVJrWkdRWHhVeTBuSGtyRnNkb21KaVkxaVluaE1URThKaVk1d3ZiZlBuMmU0cHU5cmUrTGRZcjF2UzlMVFcxTDFtSnJhdG9tSnJhc3hFeE1URXhNUk1UcXNvOEVPZk5Qdk9zcTlXN1dzSWxOdWl2WWJoMXM5MGt4YTdaMFdMSFdyM3dnbVJKandjdGFaWU01MEgzQ0pDdm84UXV4VHNlTHFaN2srMmU0OGJ6WDd6Mld0c25qOXAxdEVjYmJlWm44cytzNDlaK1MvR2EvbHZ4aUxYOWtQdGYrNmZ0dnVoc3NQaFhtMlhIdC9jZkRTSzB0T2xjZmNhMXJNL1V4L3EwM01SR3ViRHdpL3dEcmNFZE0zeFlKUUJoMXVvQUFBQUFBQUFBSTl1YnZQSEV1TDFMSXhQR1ZWK1U3dHRvTGJ0UmpiaHJmck1XaXpFcThESU12VkhjYVUyMzRaZDhhQWx4RW1YMVNvL0RaVjRveW43ZGUybSs4eTNFYjdlZFdIeDJsdExaT1Zza3h6cGkxMS9SYStrMXJ4NTIrVnJaNzkvY0wyZjJtMkZ1ejlwK251L1BjMk9KeDRaMW5IdDYyNVp0enBNYVJweHBpaVl2azRUUFRqbnJWZTgxenJLOWo1WGVadm05NU95UEtjam5PV054Y1dEaExrU3BEaEpTbEtVSlNobU5Gak1wUzB3dzBsRExES0V0dHBTaEtVbHVkMjN0K3g3UnNjWGJlMjQ2NGRsaHIwMHBYbEVmeHpNenhtWjFtMHpNek16TXk4amZJdTk5NThvN3p1UElQSU54azNYZDkxa20rWExlZFp0YWYzb3JXc1JGYVVyRVZwV0lyV0lyRVJHMjByK2IydjdBK2pGblg3WTM3cFg4MzluMnhYRXVQZkg4WDdKWDgzN1lyaXpqV3gvQnFFcitiMi83SkM1RXVOZkhxMVRQZTZ0RFRhRk9PT0xTMjIyMmsxcmNjV1pKUWhDVWthbExVbytoRVJkVE1WOWNWaWJUT2tSNi84UFJZK2phOW9wV0ptOHpwRVJHc3pNOElpSTlabG5MWWNEOXZZbng1emJrRnNzbWNEcnNlcmFPZlJZWFlSMXlNdXZFM2VRVXRLaDYyaUpkWmJ4V015M2IrS2xFZzNKcWx0RzI1SFpJeWNQR1ZQZGZ4L2Y4QWx1MjhSN0xydTgyYTk2M3pWblRGVG9wZStsSjBtY3N6Tk5OYTZVaUoxaTl1VFlmZC9hNzU1MlQycjdqN3ArWWRQYk5wdE1XRytIYVpLemJkWnZyWjhPR0p5MTFpTnRXSXk5VVJmcXpUTlpyYkZqaVlzd1k4UXZubU1sOWRtdUgwWitCNGhmUE1PdXg5R2ZnZUlYenorYjlVT3V4OUdmZzhlSVg2UHpmcWg5U3g5R2Znem8wbndrMlJ2blJGcnQvV1ZqV1hGdFNaamRZekx3R2IyMWxsWXNWZFhRV1NadEhjU0pIdmJKbU9sZEdrNHNuMVVpU3oxUTh0YTB0akhmZlBkWHNuaWZsRlBITy9VeVk5dmx3VXl4dUsvTldzMnRldlRrcEVkVVZqbzE2NjlmNXVOWWlKc3o1NFQ5c1BtZnVsN2JiajNCOEp6WU54M0RhNy9MdHI3Qy84M2t5VnhZc0dUcndaclcrbmE4L1dtSnhaUHBScFRXdVMxclJSaVhjVTF2ajFwUG83K3JzS1M2cXBUc0t6cWJhSElyN0t2bU1LN0hvczJETGJha3haRFNpNktRdEtWRWZ0REtHMjNPMjN1M3B1OW5rcGwydVNzV3JlbG90VzBUeW10b21ZbUorTVMxczdqMjN1SGFOOWw3WDNiQm0yM2NzRjVwa3haYVd4NU1kNjhKcmVsNGkxYlI2eE1STVBtaSs0WUFBQURXMXRsWVU5aEJ0cW1kTHJMU3NseDU5ZFl3SkRzU2RBblJIVVB4WmtPVXd0dCtOS2pQdHBXMjRoUktRb2lNakl5RnJQZ3c3bkRmYjdpbGNtM3lWbXRxMmlKcmFzeHBOYlJQQ1ltT0V4UENZY25aYjNkOXUzZUx1SGI4dVRCdnNHU3VUSGt4Mm1sOGQ2VEZxM3Bhc3hhdHEyaUpyYUppWW1JbUoxV0VlRGZtQVFOdE4xV3B0eXo0bFZzOXBscUhqK1ZTWEk4T3MyRXBCK0cxRWtKN1dZOWRtQzBkcEUwbm8xWUw2bTBTSFRKbFdtM3V2N1BadkhiWlBJdkdhV3lkaG1adGt4UkUydHQvV1pqbk5zUFBqenh4K2JXdnpSNjcvYTk5MjIwOC9wZzhBOXlNdVBiK2NWckZOdnVyVFdtTHVHbkNLVzVWeDd1WTArV1BrenpyT1Bwdk1ZNWxWR3ZyZkVBQUFBQUFBQUFZUjh5T2ErRWNWY1pPRTBVVEt0dDMwRjV6RWNJUStTbVlhVkVwdHJKY3lWSGZhazF1TngzaVB3MjBHbVZaT29ObGcwSVMvSmpkODhKOEYzM2x1NStyZnF3OWx4Mi9uTXVuRzMrWmkxalNiejZ6T3RjY1QxVzFucHBmVzc3aFB1TzhiOWtPemZzMlA2ZSs4OTNXS1oydXoxNFVqbEc0M2ZUTVd4N2VzL2xyRXhrM0ZvbkhpNmF4bHpZYXF1YVpsayt3OHJ2czN6TzRsWkJsT1RXVWkydTdlWjRaUHpKa2hYVlJrMHlocVBHanNvSkxiTExTRU1zTW9TMjJoS0VwU1cxMnoyVzE3ZnRNZXgyVkl4N1RGV0sxckhLSWo5UEdaOVptWm1abldabVptWmVJUGtYa0hldksrK2JyeVR5SGNaTjEzdmU1clpjMlcrblZlOXVmQ0lpdGF4R2xhVXJGYVVyRVVwV3RheEViVk5QemhmbUh4b2wrWmtLSnIrOHExZUJibXFXc3JhdXd1ckt2cDZtRkpzclcyblJLeXNyNFRLNUV5ZllUNURjV0ZDaVIyaVU0L0psU1hVb2JRa2pVcFNpSXZTWXNaYlV4VXRseXpGY1ZZbVp0TTZSRVJ4bVpuMGlJNHpMazdQWjdydU83eGJEWTQ3NXQ5bnlWeDQ2VWliWHZlOW9yU2xheHh0YTFwaUt4SEdabUloZFAwUHErSnBiVGV0OVdSRGpMUEM4VHE2bXhrdzFQS2l6Nzd3Zlc4a3RZNXlFdHZFMWJaQkpreVNKU1VtUk85TzFQVG9XbWZmKzZXNzMzcmM5MHRycG15ek5ZblRXS1J3cFdkT0d0YVJXcy9vZm9oOXNmQzhIdDE3ZmRvOEp3ZEV6MjdZNDhXUzFOZW0rZlRxM0dTdlZwT21YUGJKa2lKaU5PclRTT1Rsb2ZJZDdBQUFBQUFBQUFBQUFBQUFBZGIzNXIvNVJqbHo4TE5oOVM2b1g2L2xoQ1BVU0FBQUFBQUFrSzhxRDhveHhHK0ZtdjhBcVhhaUxmbGtka0lMQ1FBQUFBQUFBQUFBQUFBQWNFOG84SWpiTDQwOGc5ZXk0eFMyYzIwcHRIRi9BTkRiaWpldThKdTYrTTR5VHEya0lsTVNYME9NcjcwRzI2bEtpVWt5SlJUSE1kWE9MNkFBQUFBQUFBRXNma2IvQUpVamkvOEF5MS8wZDl0aW0vNVIyRllzcEFHSHZNTG5Ob1RnMWplSFpYdnF3eWV2cU02dkorUFVDOFl4dVRrajdsbFhRRTJVbE1waU04eXFNeVVWWFVsbVprWitnVEVUUElZQy9uQnZsei9aTHRuNzF0cDlQQ3Jvc0g1d2I1Yy8yUzdaKzliYWZUd2RGZy9PRGZMbit5WGJQM3JiVDZlRG9zSDV3YjVjL3dCa3UyZnZXMm4wOEhSWVB6ZzN5NS9zbDJ6OTYyMCtuZzZMQitjRytYUDlrdTJmdlcybjA4SFJZU0s4UmVZdWx1Ym10cnZhMmlwMlF6OFJ4L09MTFh0aTlrdEEvanM5T1IxVkRqV1NTMm1vVWgxNWJzUXF6TElacGRJK2lscVVucDdreFRNVEhNWlRpQUFBQUFBQUczc3F5N0U4RW9iREtzM3lmSHNOeGlwWk9SYTVIbFYxVzQ5UTFqQmVnMzdDNHQ1TU92aE1sLzBuSEVwL1JBUXdjaVBQNzRLYVhkbTAydjdYTGVST1V4Vm14NEdzNnBNSERtWkpKNysyWG5lVkxxYStYRU5IVG8vVU1XNk85Uko5cGZiWEZKbm1JWU56L0tTZVYyWHVTb21sdFU2bjAxVVBHZnE4MjVLMzJsbVVVaTlDUER0ckJlTTRrcEt1cG1vbktGdyt2VG9vaUkrNnFLUjZvMVJyN0g4MXJ6RTlwT3lITWs1YWJacWtTTzBsUjllVzBUVkVkRGFIUEVTMDIxckNCaVBhaisxVVptYW5FZTVXYWlNK3RYVFVZYzVWdHJhdWRLZFhtMnpOZzVpdVFUaVgxWlZtZVI1Q3A1THhvTjFMcXJleWxtNFRwdEo3aVByM2RwZGZZSVRvT1BnQUJxSWt1WEFrc3pJTXFSQ2x4MWs0eEtpUE9ScExEaEVaRXRsOWxTSFcxa1IreWt5TUJ6SmluSmJrYmdadEhnMi85MllZYkhiNEI0cHRYTzhkTm5zVzY0andqcDc2R2JmYXQ1WmwwNmREV28vYk1ScEF6QzE3NXd2bVE2MmRZT3A1U1pya0VabjNMa0xZVmRpdXgycFRYaUxkVTAvTHpXaHU3VlBjcFpsNGpVaHQwa2tTU1dTU0lpanBxSklkTy9LV09SK05yalJOM2FNMVh0S3ZhOE50Mnd3eXh2OEFWMlNQSTZFbHlUS2VsTHp6SHBNZ2o2cUpETmZDYlYrNTl6KzZLSnBIb2Fwa09QWG40Y0N0MXZWOU5tZVI1Vng3eW1aNnZIT0x0bW1iVGlidGc3NFpPTnhNOXhlVGUwVU91YU5aL3dDRjNCVXlPaUROU1UrNUk2WnBNY2twa01YeXJGODNvYTNLc0x5U2d5L0dMbU9tWlQ1SGk5eFhYOURiUkY5U1JLcmJpcWtTNitkSFgwOUMybkZwUDU0b0gzd0FBQUFHaHM3R05VVnRoYlREV21IV1FaZGpLVTJnM0hDalFvN2tsODBJTG9hMWswMGZRdmJNQkNqK2NHK1hQOWt1MmZ2VzJuMDhLK2l3Zm5Cdmx6L1pMdG43MXRwOVBCMFdEODROOHVmN0pkcy9ldHRQcDRPaXdnVzg3dnpCK09mTzcvWmovZUFzc3NzZjNxLzM2UHJ0K3VqRnBXTmVEOWZINzAvdkQ2ajZ5Kzk2NzRuMW9UZkY3ZW5oOXFPdjdvaFZXSmptaEFzS3dBQUFBQUFGcUR5bHZOcDRmY1BlSDFOcGZkRnpuc0hONE9lNXprTDdHUFlOT3ZxMHEyK25SWDY5U2JCaVUwMnAxVGJSOTZPblZKaTNhc3pPc0NUTDg0Tjh1ZjdKZHMvZXR0UHA0UjBXU2ZuQnZsei9BR1M3Wis5YmFmVHdkRmcvT0RmTG4reVhiUDNyYlQ2ZURvc0g1d2I1Yy8yUzdaKzliYWZUd2RGZy9PRGZMbit5WGJQM3JiVDZlRG9zSDV3YjVjLzJTN1orOWJhZlR3ZEZoa3h4VDgxVGl2elAyWTVxblJINzZOOWtrU2dzY250NWRwcnlmVFkvUTBkYXBsbGM2NnVaRXRiRUpFdWZMWWl4MG1TbHZTSDBKSXVuY3BNVFdZNWlTUVVnQUFBQUFBSTRlVFhteDhGdUtyMDZuenZjOVpsdWNRUEVROXJuVTdTTmg1Y3pKWk5QaXdMUTZpUW5HY1hzVWtzbEV4Y1dWYzRwSmthU012U0tvck1pQ25lWHltWE41cjAydjQzOGNzYng2R2xiemNIS2R6WDloazFqS1lVZlJxU3ZDOE1meHVGVVMyMDlUN0R1N0pydjZkZTVKR2xWVVUrS05VVmUwZk9jOHlIYWluMnAzSkM5d3FzZGNVNHpWYXVvc1gxNm1HU2pQNkd4ZVk5VHhzdWRiU1I5Q0oreWVNdW5zOWZTS3Vtb3dleS9rWnlFMkM2dVJudTk5eTV1KzRhVk9QWmZzL044bGRjVWhTbG9VdHk1dkpxMUdoYWpNak0vUVptWW5TQncwSkFCOWFudnIzSFpaVDhmdXJhaW5KN08yYlQyTXlzbGw0YnFIbStrbUU4dzhYWTgybFplNjlDa2taZWtpQVpVNjU4d0xtN3FaMk92Qk9WZTlhcU5GV2h4aW5uYkZ5UEpjYlF0dExiYVRQRjhvbTNPT09mUTJVSVB1aW4zSVNTVDZwSWlFYVFKT2RLZktLK2J1djNJVVRhOUpxM2ZOTTBwQlQ1RnhqdjFnWmxKYlI2RFREdmNGT3Z4ZUc0NFg3cGJ0Qks2bjBNaUwwOWFacEFtNzQ0ZktET0UrNDNhK2syczNsL0c3S3BuaHRMVm1zVDY2TmZLbXZPSWJialJNN3hhTzlJak5GM0dwY20ycXFpSzJsSm1wd3ZRS1pwTUpUYVlibTJHN0V4eXN6SEFNc3h2T01TdVdUa1ZHVDRqZVZtUjQvYU1wV3B0VHNDNHFKTXl2bG9RNGswcU50eFhhb2pJL1NSaWdibkFBQUFBQUFBQUFBQUFBQUFBQUFBQWFHenM2MmxyNWx0Y1dFR3BxcTZPN01zTE96bHg0RmZCaU1KTmIwcVpObE9OUm9zZGxCR2FsclVsS1NMcVpnSWpPUnZuajhBK1B6MCttcmRoV1c5c3VnbXRwZEJwQ3VqWlRXTnZwZFV3bng4OHNKOU5nTHJCT29WNGh3ckdhKzJoUGQ0Ujl5Q1hWRkprUW43cytVczcreUp5WkIwSG9uVzJzcTF6eEdHYnJZRm5kYk15Y215VXJ3NTBOaXRWZzJPMWt0d2lTWnN5STFvMDMxVW51V2ZSWlZ4U1BWR3FNTFpmbTdlWTN0TlQ1WG5LblllUFJuVnZHMUUxcDd5YXFURWFlTHRKaGlicnFweHEyV2hsSG9RdDJTNjZYVHVOWnFNMUhQVFg0RERETHQ0N3J6OWJqdWViZzJsbXpqeE9wZWN5N1lHV1pJdDFMeUZOdkpjWGMyMDFUaE90ck5LaVByM0Vaa2ZvTVZhUU9MZ0FCcjY2MXRLZVFjdW9zcDlYS050VEp5YTZaSWd5RGFXYVZMYU42TTQwNGJhMUlJelQxNkdaRjg0QmtaaFhOWG1Ccmw1cDdCK1VmSURHME5MTmZxVmR0ek8wVlR4bjRwOUpkTTVlT1ZNNUJMZldva3ZNdUpKYXU0aTd2U0kwZ1ozNnE4OTd6SHRadXhrMm0xY1kyM1Z4ZkJKRk50WFgrT1dMVHFHazlwb2szbUhzWVhtTXJ4aUl1OVRsbXB3ekxxU2lNMUdjZEZSTEhvbjVUSmlVOTZEVjhrK09sempoTFcyM016SFRtUXg4aWhwVTUySU41ZUM1ZDd5elljUmhYVmJpbTd1YThiZjdocFNpSWwwelQ0R3FkcmpaNWdIRURscTB5MW8zZUdJNUprTGpmZTdndHE5SXhMWUxCcFNwVDVGaFdVc1ZHUVQySXBwTkxrbUl4Smg5ZWhwZFVsU1RPaVltT2FXWTRnQUFBQUFHUFBMcjRxSEozOFhuZFA0TjhsRXh6SFY3aStnQUFBQUFBRXNma2IvbFNPTC9BUExYL1IzMjJLYi9BSlIyRllzcEFBQkhkeVc4MVRnMXhYWFpWbXd0MjBlUTVwV3JkWWYxMXJFaTJGbWpjNWtuRFhXMk1XamRjcHNabkViWmwyWEUydUlqTWlNeTdpNjFSV1pFR3U4dmxORnk4dVZYOGErTmxkQmFUMTlUeTNkMlJ5TEo1NGxFb2lKL1grQ3YxclVOYlJrU3U0c2trRXZyMDdVOU9xcW9wOFVhb3J0bytkeDVrVzBISmJmNy9TdGQxRW8xR2lrMWRpR0o0azNESmZvTk1USVBlbXd6ZEpFWHNkOXFzeTlrdlQ2UlZGYXdNRWM0NVE4bGRtT3ZPN0U1QjdzemxUNjFMY1RsbTBzM3YyZlM0dzcyTng3Uzhrc010SWNpdEdsQ0VwUWp3a0VraUpDZWs2UU9EbkhISFhGdXVyVzQ2NHRUampqaWpXNDQ0c3pVdGExcU0xTFd0UjlUTS9TWmlSNkFQdFVXU1pGaTh3ckRHcis2eDJlazIxSm5VVnJPcVppVk5MOFJwUlNZRDhkNGphYzkways3M0ora2dHWHVzZk1mNTRhZmVpcndYbGR1dU5IaEpiVEVxTWt6U3h6N0c0eUcxa3RMYk9MNStySjhjYmJOUmU2U1VYdFVYb01qTDBDT21KRXJtZ3ZsSWZLTENYb1ZkdjhBMXByemVGR2p3RzVWelFwZDFibmlpL2NTSmpzcXJqM09GVEZwVDBXbU8xU3dTV3NqVDRxRXFJMFV6U1BRMVdJT0l2bTc4S3VZTXVxeGZFOWd1YTUyamFteEhqYXMyeXpGeFBJN0d3ZjdHMFFjWHR2WEptSlpmS2tTRFVURVdCWU8ySzBJNzF4V3lQb0tKck1KU2Rpa0FBQUFBQUFBQUVGbm01Y2QxSmV4cmtqak5hcFRicVllRmJNT0pITXliZFFSb3czSjV4c1JqNkpkUjNWVWlTKzZTU05GZXlndXFoc1g3SWVVUk1aZkZOM2JqeHk3ZldmL0FNYmpqV2YrMHJXSS93RHl0cDVQTXI3K1BhUzAvc2Z2RDJiRE14RVUyZmNlbXZMMDJtNXZwWDlPMnlYdmIvOEFwY2RZUWM5QnNaRlhtVm85eVNmNlFxaURXSWV4SklWUkNPcDdkQlZGVk9yVlFwa3l0bVJMR3VseVlGaEFrc1RZTTZFKzdGbVFwa1YxRDhhWEVrc0xiZmpTWXo2RXJiY1FvbElXUkdSa1pDTW1ISG14Mnc1YXhiRmFKaTFaaUppWW5oTVRFOEppWTRURTgxL2E3cmM3SGM0OTdzc2w4Tzh3M3JlbDZXbXQ2WHJNV3JlbHF6RnEyck1STmJSTVRFeEV4T3F3VndROHhDSHNSTkxwbmV0b3pYNStsdUpWNGRuczU5TGNMUG56Y0tORm83NXhTRU4xK1pPRXB0TWQ5U3ZDdGxkVUdiY3Z3MHk5WFBjejJveTlvK3A1QjQzU2I5cTFtMlhERWEyd1J6bTlQNVdMbjFSenhSeDQwMW1uclA4QWE3OTNHMjh6cnQvYnYzT3pVdytYUld1UGE3MjlvaW0vblhwcml5OElqSHU1K1dLVzE2ZHpPc2ZKbTZhNXBmaGdadjhBZ0FBQUFBQWl2NTUrWWxSOGZvMWpxN1UwdXV5TGRjaGxVZTBscVFVNm0xbXhKakVwdVpaSk1qaTJPVkxRNmxjV3ZNMXRzZWgyV25zOE5pUm1UMjI5cnR4NVBlbmVPOXhmRjQvRTYxamxiY1RFOHErdGNmRFMxK0V6K1drNjYycnFmOXdIM0g3TDI3dzVQRmZFTFk5ejV4YXVsN2FkV1BaUmFPRnIvcTN6NlRFNDhYR0svbnpScDA0OGxaeTd5RzZ5aTVzOGl5TzJzTHk5dVpqOWhiWEZyTGZuMk5qT2tyTngrVk1seVZ1UHZ2dXJQcWFsS014dDV0ZHZ0OW5ncHRkcFN1UGJZNnhXdGF4RmExaU9VUkVjTkhsbDNMZWIzdTI5eTl5N25teWJqdUdlODN5Wk1scHRlOTdUck5yV3RNek16UHJMUUpXT1RGbnpiWTVoK3lWaXVMT1BiSEV2MlN2NXZhL3NDNUZuSHRqZnVsZnplMy9aRmNXY2EyUDRQdDBkUmI1SmIxbEJRVnM2NXU3bWRHckttcHJJenN5d3NiQ1k2bGlMRGh4V0VyZWZreUhsa2xLVWtabVppamNicmI3UGIzM1c2dlhIdHNkWnRhMXBpSzFyRWF6TXpQQ0lpT2VxdlpkczN2ZHQ5aTdiMjNEa3o5eHo1SzQ4ZVBIV2JYdmUwOU5hMXJHczJ0YVowaUlqVlpINEsrWHhVNlBpMW0wdHZRb043dUNTd3pLcXFSNU1Xd3A5YTl5aWRiS0k0azM0MWhsNlNKUGl6a0diY1JYVnVNby9kUHU2Z2U1L3UxdVBKcjM3SDQvYTJMeCtKbUxYald0OXg2Y1k0VFhGOEtUeHZ6dkhLdGZWZjdjUHRjMkh0MWl3K1orZFk4VzU4N3ZXTFk4VTlOOFd3OVk2SjQxdnV1WFZtald1S2RhWVpuamt2enA1akI5T0dHN2orZFc0aWY4QTRoNGlPcSswZkQzRTdiUCtmbC9vTXJKUDNWeDFld1BrTmZqajJ2OEFiOXFxWCtOK2oreisyTjdPdVhpait6bmpmby9zaDlTVDluUEcvUi9aRDZrbjdPZU4rait5SDFKUDJkWmI4b1ZYZHhjeUEvbjdqeXY3bDhHSWFkZS9rNithNFovN3V4ZjB1WjZ6L1l6VG85bjk1WC8vQUtEY2YyWFpPYmVZWENyRHVUTkM5ZFZTSy9GOXdWY1JLS0RMMU51dFJMZG1Pay9DeC9MMHhHM1hKbFc0WHVXcFJOdVNvS3VpbSs5dnhHSGZqKzJ2dWozUHdYZHh0ZHhOOXg0M2t0L09ZZUV6U1o1NU1Pc3hGYnh6bXVzVXljcmFXMHZYdHYzRmZiUjQ1NzI5cXQzTFlSaDJQdUpneDZZTjNNVEZNc1Y1YmZkeFdKbStLZVZNc1Z0bHdUcE5PcW5YaXZXZHo3QWN1MWhsdDFnK2RVY3pIc21vWlNvbGpXekVFU2lNdmRNeVlyeURVeE5yNWpSazR4SWFVdGw5cFNWb1VhVEl4dlIyanZIYmUvZHV4ZDE3VGxybTJHYXV0YlYvaGlZNTF0RThMVm1JbXN4TVRFUzhUL0svRS9JZkIvSU56NHY1VHRjbXo3M3RNazB5WTd4Kzlhc3g4dDhkNDB0VEpTWnBlc3hhc3pFeExaNCtrNjZBQUFBOW0zRnRMUTYwdGJiamEwdU51TnFOQzIxb01sSVdoYVRKU1ZwVVhVakwwa1lpWWkwVFcwYTFsTkwycGFMMG1ZdkU2eE1jSmlZNVRFK2t3blk0TStZZWpJRHA5TzhnTHBMZCtwVFZkaHV5N04xbG1OY2tTVXRRNkxNWlN6YVF6ZEdaRTNIc1YrNW1tWklrR1VqNkxJMUw5MlBaaWRuOVR5Ync3RnJzK05zMjJyRXpOUFdjbUdPT3RQVzJPUHljNlIwZkxUMU8rMXo3d0s5Mm5iKzNQdTF1WWp1MHpHUFo5eXlURVZ6Y05LWU41YWRJak4rcmozRThNM0N1YVl6ZnptYVprYXlQU0lBQUFBQUFFYzNPTG5wamZHcXRsWUhoSzRXU2J1dEs5THNldlVTSlZSZ2NTYTJoY1M1eW9rdUo3N0tUSGM4YURXbDlFZFIydlA4QWh4MXMrc1pQOEE5dTkxNVJranVYY0l0aTdCUzJtdksyYVk1MXgvNXNUd3ZmNDYxcnJhTGRHb3YzSy9kRDJqMmQybC9GL0c1eDd6M0p6WW9tdE9Gc1d5cmVJbXVYYzhlT1MxWjY4TzMvQURXanB5NWVuRmJIOWFzbGwyVzVMbm1TM1dZNWpkVDhpeWZJcDcxbGMzTms5NDB1ZExlNkVhMW4wU2hwcHBDVXR0Tk5wUzB5MGxMYmFVb1NsSmJTN1hZN1hZYldtejJWSzQ5cmpyRmExckdrUkVmOE5abWVNenhtWmw0MGQ5Nzkzanlmdkc0OGc4ZzNHWGQ5NTNlV2NtWExrblc5N3o2ejZSRVJwRmF4RVZwV0lyV0lyRVJHMnhkbXI1THdaQzNNSW1OWG9aZlBGRXdqakQ4elQwRkV4KytyaWRVcG5sV2NjNUd6OTFmdnYzMEExNFBwcDVxd2hya3hsTGkzR3c1VExoNDVDak9LTnRDbk1aUW83WjFiYWxyanlHb1pMUjJ5Q01ZcjkxUElxOXE3Si91bkJiVGY3MkpyTVJQR3VHUDlaTTgrRi84QVZ4RTZkVVd2TVRyU1c3SDJTZTBtWHpUM0YvOEF0NTNQRnI0MTQ5YU1sWnRXWnJsMzFvbjlucFdaMGpYYi93RDZWYWF6TTQ3MDI4V3IwNVlsWm1Hc2oyT0FBQUFBQUFBQUFBQUFBQUFBSFc5K2EvOEFsR09YUHdzMkgxTHFoZnIrV0VJOVJJQUFBQUFBQ1FyeW9QeWpIRWI0V2EvNmwyb2kzNVpIWkNDd2tBQUFBQUFBQUFBQUFBQUd3OXAyVVNtMWhzZTRuck51RFU0SGw5bE1jU1hjcEVTRGoxaktrTEpQVXU0MHN0R2ZUcjZSTWN4MVZvdm9BQUFBQUFBQVRkL0o4OFVmeUx6R2NZdDJXM0Z0NEhxamFlVnlsSVNScGFZbVZNUEJrdVBHYmF6UzJjbk0yMEVaR2crOVNTNjlETkowMy9LTDZZc3BBRlpINVRaL0FYeGorRm5ML3VQYUZ5bk5FcWI0dUFBQUFBQUFMdlB5YXo0aSsxL3hzczYvQS9va1dyODB3c0tpZ0FBQUFmTXVydW14cW9zOGd5TzNyS0NncFlNbXp1YnU2bnhLcW9xYTJFMHFSTXNMT3luT3NRb0VHSXdoUzNYWFZvYmJRUm1veUl1b0N0YnpuK1VQYTgxMUl1dGRjTUtDdDIxbGNWVHNDVnVMSzJaN0dzS3FVazFzeVZZcFJOT1YxM25UOFpSR1RjdHgyRFdHNFNYR2puc0g3cTVGUGloVmU1Q2NzdVJ2S3JJanlYZjIzTXYyUE1ia09TYTZ0dFo1UmNXb25IVGU3aXh6RDZwdUJpMlBJN1gxSjZRNGJKbWsraWpNVnhFUnlHTzRrQUFBQUFBQUFBQUFBQUdTZkhQbC93QWsrSnVSRmtlZ2R1WlpyOXg2UXpKdEtLRk5LZmgyUXFZUDNDY2t3dTFST3hlOTdXelVoSzVFVmJ6U1ZxOE5hRFBxSW1Jbm1MUjNEUDVSaHJUTmxWR0U4eXNOTFZXUnZHeENMYk9CeGJLNjF2T2ZVYVd5bFpGaXkxMkdWNGVTbEdYYzVGWGNSelVacldVWnN2UlJOUGdhckkyR1pyaDJ4Y1lwODF3REtzZXpiRDhoaUluMFdVWXBjMTkvajl4RFdacFRKcmJlcmtTb014bnZTYVROdGF1aWlNajZHUmtMYVc1d0FCdExQdjhBNEV6WC93Q1VzaitvOHdUSE1kVThMNkFBQUFBQUFBQUFBQUFBQUFBQUFBSDA2U2x0OGt1YWpIY2ZySjExZlg5bkFwYVNtckl6czJ5dHJlMWxOUWEyc3I0Y2RLMzVjNmZOZlEwMDBoSnJjY1dTU0l6TUIySDNsVDhBcWpnZHh5cnFXN2h4SDk2Ykxack1yM1hlc3Jaa2VCY0V3OHVud090bE1yZGFjbzhEaVRuSXhMYld0dVhQY2xTa21TSDIyMjdOcDFuOEVwUFJTQUFBQUlxZWRIbSs4VitFWHZqaWM2Mlh1RGRrWkRyYU5SYStzb0RzcWxtSS9jdGJDeWt5bVZXQ0k2OU81aHh1WGJFbGFYRXdWdEs3eXFpc3orZ1ZDZVgvQUp2WE0vbCs1YlVkN243MnJkV1dQaXh5MVRxaDZiak5ETHIxS1VSUmNwdTBTVjVSbVhqdEVqeDJwc3M2OWJxZTlxSXoxN1N1UldJUWk5RlFBQUFBQUFBQUFBQUF5RTQ5OHJlUkhGWEp2cnIwRHRuTHRiMkxyN0Q5bEJxSjVTTVp5QTR4L1FXc254R3pibll2a3pEWmRTU2lkRWZKSFgzUGFmcEVURVR6RnAzZy93REtKTmU1NDdUNi93Q2FXT1F0VjVSSmNaZ1J0dzRYRHNabXRiRjVmaHNzT1pianFuclRJTUxmZmRNdkZseDEyRmQzcU54d29MQ1Q3YUpwOEJaVHh2Sk1kekdocU1xeEs5cDhueG5JSUVhMW9zaHgreWgzRkpjMWt4c25ZdGhWMmxlOUloVDRVbHBSS1E0MHRTRkVmb01XMHZ0QUFBQUFBQUFBQUFBQUFBQTBObloxdExYVHJpNXNJTlRVMWNTUllXZHBaeTQ4Q3Vyb0VScFQ4cWJPblNuR28wU0pHWVFwYmpqaWtvUWdqTXpJaUFWNHVidnloRFJ1bkZYR0NjVDZtSHYvQUdKRk4ySTVuczljcUhwV2pscE5TRkxoellraUhmYkVjanVJOUpWNXc2MTFDa3Jac1hmU2dWeFNaNWlxeHlnNTRjck9ZZHMvTzN0dDdKTWtwRGtJa1YrQVZrZzhkMXRTbXlzMVJUcmNHcGppMEp5NHFUSkpUWkRVaXdjSkplTEljVVhVWElpSTVJWWhpUUFBQUFBQUFBQUFBQnFJa3VYWHk0cytCS2tRcDBLUXpMaFRZanprYVhFbHhuRXZSNVVXUXlwRDBlUkhlUVMwTFFaS1FvaU1qSXlBVGFjTmZQYzVjY2F2ZXJFOXB6UDlwYlZjUHdZM3ZWbjFySVkyTlRRRWRFZHVQYk04Q2ZaeXZDUVh1V3JsbTFRU0VrMjBxT24zUlV6U0ovU0xldkRmekN1TVBPWEhWMldsTTNKT1dWME5Feko5VjVhM0hvZGxZdWd6YlM0OU5vZlc1VEZ0Vk5PUElRZGpWeUo5Y1RpMHRtK2wzcTJWcVltT2FXYm9nQUFCanp5NitLaHlkL0Y1M1QrRGZKUk1jeDFlNHZvQUFBQUFBQkxINUcvNVVqaS8vTFgvQUVkOXRpbS81UjJGWXNwUkw4NmZPTTRyOEtqdDhPYnMxYnAzbEFTYkphb3dLeWkrRlJUalNsYUc5aFprYlU2cHcxSklQcXFNaHVmYko3a0djSW1sK0tWVVZtZjBDbzV5OTgzem1qeTlkdEtXNzJDL3F2VjA4MXNvMVhxWitkaTlISmdHbysyUGxGNDFKWGxPWXFkYkpCdnR6WloxNm5VZDdVUm45eVZ5S3hDRVhncUFBQUFBQUFBQUFBZVVxVWxSS1NacFVreVVsU1RNbEpVUjlTTWpMMGtaR0FudTh1dnp6dDE4YUoxRHJIa2xQeURlV2hFbkRxNDlyWVN2ZkxhbXRLOXRYaE55TWZ1NTdpWkdZMFVKbFJKT3FzM3pjYVpiUWlISmp0dCtBN1JOSW5sekYxdlZHMnRiN3oxL2pXMDlTNWhTWjNnT1hRRVdORmtsRExUS2h5V3pNMjVFV1FneVJKcnJXdWtvV3hNaFNVTlM0VWx0Ykw3YmJxRm9LMXBwelM1RUFBQUFBQUFCdFBPc0p4clpHSFpKZ2VZVnJOdGpPVjFFeWx1SUx5VW40a1dZMGFQR2p1S1NvNHMrRzcydlJuMGRISThodERxRFN0Q1RMbTl1N2h1KzA3L0YzTFkzbW03d1hpOVpqNHg2VDhZbmxhSjRXck14UENaZkU4azhkN1A1ZDJEZWVNOS93MTNIWnQ5dDc0Y3RMZXRMeHByRS9xM3JPbHFYajVxWGl0NnpGcXhLb3J5VDQvWlR4czJyZTY0eVFuSmtObFoyT0o1SDZ1cVBHeXJGWlR6cWF1NVliTlRpR1pCazBwbVd3bGJoUnBqVHJaTFdsS1hGN3orSWVUN0x5L3N1UHV1MDByay9MbHg2NnpqeVJIelZuNHg2MW5TT3FzeE9rVHJFZUEzdlI3VDk4OW0vT3R6NGozZnF5Yk9Kbkp0TngwOU5kenRyVFAwOGtSeWk4YVRUTFNKbm95MXRXSnRYcHRiZ1RvTzF4VmlaNTZDdUtvZWVncWlxZEplZTBWeFUwZXhGMDlKZWd5OXYyeFBTcWo1WjFqbkNjZmdwNWpYWDNuMDN5SnZmWjZ3c1QyMWUySC9VS0hSNTNPbG4vd0JaRE51NjcvMEVTdjdhUU5hL2MzMmhtc1pQSWZFc1h5ODh1MXBYOSsrR0kvZm5GRWZHYWZ5WHA1OXIzM2dSbS9aL2J2M2MzV21iOG0xN3Btdnd0eTZNRzl2YjlibkZOMWEzSDVhNXVPdVdaeFJyVzlMd0FBQUVMM21CZVpURDF1bTUwcHgrdUl0anNGYmN5cXpQWUVCNUw4UEFYU1dxTEtwc2VlUjNNek15YjdWcGVmSXphcXo2RW52bGQzcTJkL2JYMnJ2M1NjZmZ2SmFUWHRrVEZzV0dlRTV2V0xYOVl4Y3RJNTVQd3ArZlREN2dmdVN4ZU9WemVGZTMrYXVUeUNZdFRjYnVzNjEyczY5TnNlS1k0VzNFY1l0Zjh1RGxHdVhYNlZkQ1ZQbVdFdVZQbnlwTTZmT2t2ekpzMlkrN0ptVEpjbDFiMG1WS2t2S1c5SWt5SGxxV3RhMUdwYWpNek16TWJTNDYweFVqRmlpSzQ2eEVSRVJFUkVSd2lJaU9FUkVjSWlPVHplM0ZzMjR6WDNHNHRiSm55V20xcldtYld0YTA2MnRhWjFtWm1aMW1aNHpQR1hvbGZ6ZjJCZGlYRXRqaVg3Slg4M3RmMkJYRXJGc2N3L1pLeFhGbkh0ajFmc2xZcmlYSHRUNHQzNFZoMlY3RHllbXd2Q0tLeHliS2NnbHBoVTlKVnNtL01tU0RTcHhacDZtbHRoaU95MnB4NTV4U0dXR2tLY2NVbENWS0xqYi9BTGxzdTFiUEozRHVXV21IWllxNjN2YWRJaVA4c3pQQ0lqV1ptWWlJbVppSE83TDQ5M2p5YnUyRHNYWU52bDNmZDl6Zm94NHNjYTJ0UFA4QVJFUkVUYTFyVEZhMWliV21LeE14YUM0UThETVY0elZFZk1jd1JYWlh1dTFobzlkdS9BUS9YWVF6SmptaVZSWWl0NUtsaytwTHEycGRsMFE5S1IxYlFUYkpyUzVwdDdqKzUrKzh5enoyL1lUZkI0N1MzQ211bHMweFBDK1hUMDRSTmNmR0t6eG5XMmt4NnpmYi93RGJqMmIybTJkZSs5N2pGdlBQczFQbXk2Uk5OcEZxNld3N2FaNDZ6ck5jbWZoYkpIeTFpbEp0RnBFQmlkczh3ajh4dytuQ3plSi9PcmNSL0NIaUl5TjdTenA3aGR1bi9PeS8wR1ZyL3dEZExIVjdEZC9qL00ydjl1MnFwQjRwZm9mTitxTjVQcVBHVDZFbmlGODh2MWcrb242RHg0aGZQTDlZUHFuMGZ3UEVMNTVmckI5VStqK0N6VDVQeDkzRmkvUC9BTDVNcys1akJocUI3OHoxZVo0Wi93Qzc4ZjhBUzUzcXQ5a1ZlajJrM3NmOS93QzQvc3V5U3BqQ2pjUmlseXE0bTRIeWd4SW9Wd2hGSG5kTEZrbGh1Y1JtQ1hNcTNuT3JwVmxxMm50TzF4eVZJOUxzZFJrdHN6VXRsVGF6VWFzaGUzL3VKM2Z3THVQMWR0cmw3VGx0SDFzRXo4dDQ1ZFZKL1V5UkhLMGNKNFJhSmpUVEF2dng3QStLZStQai93Q3pkeGlOcjVWdHNkdjJQZTFycmZGTThmcDVZNGZWMjlyY2JZNW5Xc3pOc1UwdE16YXNOdDNVT2VhUHppMDEvc1NuWFUzdGFhWFduRzFLZnJMaXRlVXNvZDFSenpiYlJZVk00bTFkamhFbFNWcFUyNGx0MURqYWQ4ZkhQSk8wZVY5cXg5NDdMbCtwdEw4SmllRnFXam5USlhqMDNyNnh5bUppMVptc3hNK0gzdUY3ZWVWZTEvbEdmeEx6RGJUdCs2NGVNVEd0c1diSE92Um13WDBpTW1LK2s5Tm9pSmlZdFM5YVpLM3BYaklmZGRKQUFBQUFFeUhCanpEWGNZOTV0Tjc4dDNaR05mNEpVNFZzU2N0SzNjYVNYUmlMU1pmTGNXbHgvSGtsMm9qejFkN2tIMEllTTQzUnlOclA3c2V6TmQvOVh5YnhERkZkOXh2bjIxZVdYMW0rR0k1Wk9jMnh4cEdUblhTL3k1UFJ2N1cvdSt2MlA5bTl1UGRqY1d2Mlg1TVd5N2hlZFoyMGZscmgzZDVuVzIzNVJqenpyYkJ3cmxtY09sOEU4RGJpSFVJZGFXaHh0eENYRzNHMUV0RGlGa1NrTFF0Sm1sU0ZKUHFSbDZESWFrVEUxbWEyalMwUFZTbDYzckY2VEUwbU5ZbU9NVEU4cGlmV0plNGhVQUFDS3JuWDVoZFpwTnEwMVRweWJCdXR2TFM1Q3ZMdzJtNTlOcmhMclJrdnVRdnVpV21ZSUp3amFpcUp5UERYN3FVbFNrK3Jyekg3ZWUyT2J2MDA3ejMydHNmWmVkS2NZdG40L3YxeGZHM0Mxby9KcEU5VFJ2N25QdXoyWHR2VFA0TjdlNU1XNTgvbUpwbXphUmZGMi9XT1BDZGFaZDNHc2RPT1l0anhUeHpSYVkrbGF1QmEyRmxkMlZoYzNGaE50YmUybXlySzB0TEtVL09zTEt3bXZya3pKMDZaSlc3SWxTNVVoeFMzSEZxVXRhMUdabVptWmpaL0hpeDRNVmNHR3RhWWFWaXRhMWlJcldzUnBFUkVjSWlJNFJFY0lqZzhnOTd2ZDUzSGVaZTRkd3k1TSsvejVMWk1tVEphYjVNbVM4emE5NzN0TTJ0ZTFwbTFyV21adE16TXpNeStZWkdYc2lacjhIR2VCYm1xWGdXNXFsNDZDMU5SdnpWMnNzdTNGbjJNNjJ3V3VWWjVMbFZpaUJCWlB2VEhqTmtsYjg2enNIa0ljT05WMU1GcHlUSmQ3VDhOaHBTdWhtUkVmemU2OXgyZlorMzVlNWIrM1J0TU5lcTArdndpSStOclRNVnJIcmFZajFkbjhMOE43LzUvNVJzdkVQR2NNNSs4NzdORktSeGl0WTBtMThtU1lpZW5IaXBGc21TMms5TksyblNkTkZ3VGozby9GdU8rcDhXMWJpcVV1c1VzWHg3bTRObExFckpNbG1raDI3eUNZa2xPS1M1UGxGMGFiVXRmcThaRFRDVkdocEkwNDhqNzl1dkpPNzVlNjdyV091ZEtWMTFpbU9QeTBqOUVjWm5TT3EwMnRwck12ZnIybzl0dXkrMDNndXk4SzdKRVd4N2VuVm15OVBUYmNiaStrNXM5NDFtZGIyNFZyTTIrbmpyVEZFeldrT2FoOEprWUFBQUFBQUFBQUFBQUFBQUFBZGIzNXIvNVJqbHo4TE5oOVM2b1g2L2xoQ1BVU0FBQUFBQUFrSzhxRDhveHhHK0ZtdjhBcVhhaUxmbGtka0lMQ1FBQUFBQUFBQUFBQUFBQVJ6K2JMdXVGb3J5K3VTdVN2VFc0bHRsdUEyR3BzWWJOdzI1VXU5MnFuNnlPbGQybVNqbTFsUGJ5N0FqSXlORGNKYS83VVZWaldSMXhJdklBQUFBQUFBQVdudmt5V3BYSk9hOG9ON1NvYW0yYVhGc0wxTFEyQzJlcVpUbVVXMHZNY3RoeDVIc3BWQVRpRkt0NUg5dDZ5MGZ0QzNrK0JDM2dMYVFCV1IrVTJmd0Y4WS9oWnkvN2oyaGNwelJLbStMZ0FBQUFBQUM3ejhtcytJdnRmOGJMT3Z3UDZKRnEvTk1MQ29vQUFBY0djaStTR24rS21xNy9BSER1M0xZZUo0ZlJ0cmJaSnhUYnR6a2wwdU5KazErTFlwVW02MC9lNU5ibEZXVWVNMlplaENuSEZOc3R1dW9tSTFuU0JRejh4VHpXdDY4OU1obVkrY21kclhqNVcyTGptTDZpcHJGNG03WnVPK1M0RjdzaWRHVTBqTE1pTHdrT050S1Q3MzE2dlJHYjhUeEpEMTJ0WWo5S0VXQXFBQUFBQUFBQUFBQUFBQUFBQUFBWmxjUCtldkpiaEJsdjF3NlB6cVJFb1o4dHFUbFd0TWg4ZTUxdm1TV3lRZ3l1OGJYSVpSSHNmQlFTRVdNRnlIWnNvNm9SSUp0UzBLaVlpZVl1OWVYdDVydkgvbnJUeHNlZ3Z0NnczMUJnSEl5SFR1UjJjZDJUUDlYYk5jeTIxNWNyUkRSbWxFMGhKcmNTaGxpd2hrUitQR1MwU0gzYlZxekg2RXBTaFNOcFo5LzhDWnIvQVBLV1IvVWVZSmptT3FlRjlBQUFBQUFBQUFBQUFBQUFBQUFBQUMxTDhuNTh1bjM2c20rZG00S0oxTlhTUzUxVngxbzdPTjBZdGJka3BGZGtXMVhHSFU5SG9sSTc0bGRUS1B1U3FjVXFSMnBYR2l1cXQzdDZRTGRJdHBBQUJ0Zk5zMnhEVytKMytkNS9rdExoMkdZcld5TGpJOG55S3dqVlZMVFZzWWlONlhQbnkzRzJHR3lNeVNucWZjdGFrcFNScVVSR0ZPVHpKZlBvenZiN2w5cHZobFB1dFo2c1djaXN2TnhwUy9VYkx6MlAwV3k4akV6TW01MnU4Wms5ZTVMNkRSZVNVRWd6Y2hKTjJPNWRyVFRqUE5DdHpJa1B5MzNwVXA1MlRKa3V1U0pFaVE0dDUrUSs4dFRqenp6emlsT091dXVLTlNsS016VVptWm4xRlkvSUFBQUFBQUFBQUFBQUFBQUFCSWh3Ujh6TGtkd0t5Vm84QXUxNWhxZXdzVVM4dTBubGMrVTVoMXlUaTBsTnNLQjBreVg4SXlwOWhQUXJHQ2d5ZFdodjF0aVcwMmxrUk5Za1hzdUZYT3pRdk96VzVaM3AyK05xNnFHNFRPZTYzdkZ4NCtiNEJhekcxcWJqWFZjMDZ0TXFxbU9NdWxDc281dVFwcE5MSktrdXR2TXRXWmlZU3pNRUFBQUFBQUFBQUFBQURFYm1KemMwRndkMXN2WWU3c21PSy9QS1d4aHVDMGlXTERPcy90b3JTWEhLM0dLVnlSR1NwdGp4RWVzelpMa2V2aGs0anhua0tjYlN1WWlabmdLTWZQbnpWK1NQUEMybTBsL2FMMXZvMWljYjlEcFhFYkNTbWxlYllray9Bc004dGlUR21aN2ZzZUUwb2x5VU5WOGQxdnhJa09PdFRpbDNZckVmcFFqR0ZRQUFBQUFBQUFBQUFBQUFBQUFOMFlYbTJZYTR5cWp6akFNbnZjTXpIR3A3RnBRWk5qVnBNcHJ1b3NJNnU1cVZBc1lMck1tTzRuMkQ3VmRGSk0wbVJrWmtZVzlmTE44K21pMlcvUTZQNXUyVk5oMmV5Vng2ekZkOUUxRG84SnkyUzR0REVldjJORllUSHJNSXZubHJMdHMya3Mwc2d1cFBKZ3FRbFVpM2FuckFzNEpVbGFVcVNvbEpVUktTcEprYVZKTXVwS1NaZFNNakkvUVl0cGVRR1BQTHI0cUhKMzhYbmRQNE44bEV4ekhWN2krZ0FBQUFBQUVuM2sxWm5pZXUvTWU0L3dDYzUxa1ZQaVdIWXBWYjJ1OGt5Vy9uTVZsUFMxTURqbHR4NlhPc0owbGJiTEREU0UreVo5VkdaRVJHWmtSMDIvS0pBUE1vOCtMUDkwU2IzVG5EZXl2TllhakpjdXJ2TnROK1BUN0wyTkg2TGp1bGppeU51YnJ6RTVSR2FrS2JORjNLYkpDbkhJU1ZQUkZSV21uR2VZcmlPT09PdUxkZFd0eDF4YW5ISEhGR3R4eHhabXBhMXJVWnFXdGFqNm1aK2t6Rlk5QUFBQUFBQUFBQUFBQUFBQVNuZVYxNWx1ZDhCTnJ4NHRySnRjbTQ1WjFheDBiVjE2MDRiNm9EanJTSVRXd3NNWWVWNFVITHFOcExadnRwN0dyaUV6NnE4YVZwaXlZbE5xNngrSTdCakNjMnhQWkdJWTFuK0NYOWJsV0daalMxK1JZeGtkUElLVFczTkxheG01Y0NmRWVJaU0yMzJIQ1B0VVNWb1YxU3BLVkVaRlpTM1FBQUFBQUFBREdUbFZ4aXcvbEhyZC9FYjN3YXZKNms1RmpnZVlwWVU5THhpNmRTMFR4S1FoeHBjeWt1RzQ2R1o4VlN1MTFDVU9KSkw3TERqZmNQQ3ZNZC93Q0dkM2pmN1hXK3p2cFhOaTEwakpUK0hTOWRabWx1Y1RyRTYxdGFKd3o3NCt5L2ozdmI0ZGZ4M3UybUh1K0diWk5sdTRycmZiWnBpSW1kSW1PdkZsaUlwbXhUT2w2NldqVEpqeDNwVlIydHFmT2RLNXhjNjkySFRPMHVSVXp2UlNmZE93Yk9DNHBmcWR6VFRleERkalVXTGFEVXk4a2k5ZzBMSkRpRm9UdS8yTHZmYlBJKzJZKzY5cHlSazJtU1ArZFcwYzZYajlXOWZXUDBURXpFeE0rRmZuM2dIbEh0cDVQdVBFdkx0dmJiOTEyOXZ4bkhseHpyMFpzTjlJakppeVJHdGJSeDUxdEZiMXRXT08rZysxRlhUZEllM1FWUlVlU0l6RmZTYXZZa2ZQRTZLZXA3RWtoVjB5anFsTDl3VDh3MlZyNHFYVE85clIrZGdTZlZLbkNzOG1MSjJaZ3JKZEdJdEhrVHlpOGFmaHpSR2xNYVNvMVBWS0M4TSsrR1RaUTlmdmREMmhwM1Q2bmtYaTJPSzl6NDN6WUk1WnA1emZISEtNczhadFdOSXl6eGpUSnI5VDBNKzF2N3ZNM2pIN043Y2U2ZTR0bDhhK1RGczk5ZWRiYk9QeTF3Ym0zTysxamhHUExNemZiUjhsdXJiOVA3UFlBaVM0cytMR25RWk1lYkNteDJaY09aRWVia3haY1dTMmw2UEpqU0dWTFpmanZzckpTRnBNMHFTWkdSbVJqVkc5TDRyemp5Uk5jbFptSmlZMG1KamhNVEU4WW1KNFRFOG5xOWh6WWR6aHB1TnZldVRiNUt4YXRxekZxMnJhTmEycmFOWW1zeE1URXhPa3h4aCs1bVNTTlNqSktVa1pxVVprUkVSRjFNek0vUVJFUXA1cnN6RVJyUEpBUjVndm1jbDF1ZEljYWIvd0JIb2c1bnQram5lZy8zWlRjZHdLWkcvd0Rxb2tXN2JuL1RiaSsxSUd4WHR2N1ZSOG5mL0tjZjQ0dHRhUDNyNW9uOSt1T1krRTMvQUpMUkwzOCs1R2RNM2hmdHhuL3pkeHY4ZHY4QTJzVzF0SDcxODhUOGE0di9BTW9nUDhRMUdhbEdacVVabVptWm4zR2ZwTXpNL1QxTXpHeHNUOE9UUXkxTloxbm0vUWwvTi9aRlVTc1d4ekQ5aVg4MzlrVnhLemJIRXYyU3Y1djJ5RmNXY2UyUFIreVYvby90ZjJCWEZsaTJOeVRxdlYyZWJuelduMTlyakhwdVNaTmN2SlN6RWlOcThDRkVKeHB1VGJXMHd5OVhxNmFCNHlWUHlubEphYVNaZFQ2bVJIODd2SGUrMjlnN2ZrN3AzWExYRnRNY2Nabm5NK2xheHp0ZTJueTFqakw3ZmkzaC9rSG0vZk1Qam5qVzJ2dXU2WjU0VnJIQ3RkWWkyVEpibGp4MDFpYjN0TVZyNnpycEMxZHczNFRZSnhSeGdwSCtCNVZ0ZTZpcWF5dlBWeFRiTkREeTJuVlk3akRUL2M5V1k5SGNaUWF6UG8vTmRUNHIzUkpOTXM2WmVmZTRmYy9OdDUwZk5oN0pqdC9ONGRmV05ZNjhreHd0ZWRaMDlLUjh0ZjFyVzlhZlpMMkk4ZTlvTzEvVmpvM2ZtR2VtbTQzYzEwMGlaaWZvNElualRERXhHdjYrVzBkZDlJaWxLWnRqSGJQQUF3Zjh5SSszaFJ2TS9uVmVJL2hFeEFaRTlwNTA5d2UzVC9uWmY2REt3Sjl6MGRYc1ozMnZ4cnRQN2R0VlE3eHYwdjFodTkxdzhldjJjOGI5RXYxZzZvL0UvWnp4djBTL1dEcWo4VDluUEcvUkw5WU9xUHhQMmRaMzhuWlhkeFV2ei83NXN0KzVqQmhxTjc3VHI1amgvd0RwK1A4QXBjNzFFK3l5blI3VTcyUCsvcy85bDJTVm9ZV2JlQURnRGtUeHcxN3lWd2h6RWMzaXJqem9SdnlzV3l1QTIxNytZdGF1dGtnNVVKeHd1a21CSzdFSmx3M0Q4R1Mya3V2WTRocDF2dUhoZm0zZWZCdTZ4M0h0Vm90aXRwR1hEYlg2ZVdrVHl0RWNyUng2THh4ck16enJOcTJ4TDd3K3pYaUh2VDR4UGovaytPYWJyRjFXMnU2eHhIMTlybG1OT3FreitiSGJTSXk0YlQwWkt4SDViMXg1S1ZldCtjZnRoOGRNNGtZVm45Y1RmaWs5S3g3SVlSTGRvc3BxVzNqYVJaMU1wUkVmVkpta240N2hKa1JscUluRWwzSk5XKzNpSG1QWmZOZTFSM1RzOTlkTkl5WTdjTW1LOHhyMDNqL1J0R3RiUkd0WjRURWVHM3V4N1NlWWV6bms5L0d2TE1PblZyYmI3aW1zNE4xaWlkSXlZcmZ2ZGVPMm1USE14RjZ4cldaNFFIYW1NUUFBQUFCS1h3ZDUvd0JocHhkWHFuY0V5VmE2b05YcWxEa0NrUFRiZlh5bkZwOEpoU1VHdCt4eEJLalB1WVNsYjhNbGR6SGMybndEd0Q3cmV6Mkh5YU1ua1BqVmE0L0llZVRId3JUY2FjNStGYzMrZHdyZmxmU1o2MjlYMnY4QTNhYnYyNXRnOEM5eE1tVGNlQTY5T0RjYVd2bTJFelBDdkRXMlRhUk91dU9JbStHSjF4YTBqNlUyRzYyeXI3aXZnMjFUT2lXZFhaeEk4K3VzWUVocVhCbndaYlNINHN5SEtZVzR4Sml5V0hFclF0Q2pTdEprWkdaR05NcytETnRzMTl0dWFXeDdqSGFhMnJhSmkxYlJPazF0RThZbUo0VEU4WWw2L2JMZTdQdU96eGR3N2ZseDU5aG54MXlZOG1PMFhwa3BlSXRXOUxWbWEycmFzeE5iUk14TVRFeExXaTA1S0dQbm41akRPSXB1ZExjZkxwcVRscWt6S25PTmtWeml6YnhCUktWR2wwT0hURUdsdC9LdmNxVElzV3pXMVdrZlpIVXFiMWNoWjk5dC9hcTI4K24zL3dBbnh6R3o0V3c3ZTMvU2VzWHl4NlkvV3VPZEp5Yzd4OVA1Y25uVjkwZjNlWSt3UnVQYm4ybjNOYjkrbUw0dDczREhNNmJYak5iWU5wZU5JdHVlY1pOeFhXdTNqNWNVenVOYjdhQUoxMTE5MXg5OXh4NTU1eGJyenpxMU9PdXV1S05iampqaXpOYmppMW1abVptWm1aOVRHeVBSRlkwckdsWTlIbFpmSmZKZWNtU1p0a3RNek16T3N6TThabVpuak16UE9YNWlpYXFYcVpFZnNpM05VdnhVZ3kvUkw1dlpGTXhxUFFXNXFsdUxFc1J5WFBNbHBjT3c2bG41RmsrUlQyYTJtcHExbnhwYzZZOTE2SVFYVktHbW1rSlU0NjY0cExUTFNGT09LU2hLbEZ3dDd1dHJzTnJmZTcyOWNXMXgxbTFyV25TSWlQai9BQlJFY1puU0kxbDlmc1BZdThlVDk0Mi9qL2orM3k3dnZPN3l4anhZc2NhM3ZlZlNQU0lpTlp0YVppdEt4TnJURlltWXRMY0hlRnRIeFd4S1JiWFRrTzkyL2wwQ096bDJRTUlTNUVwWUJPTnl5dy9HbjNHMHZwcVdaVGFISmIzdVZXRWxsdHhhU1Ewd2h2VXp6M3pqTjVadkl3YmVMWSt5NGJUT09zODcyNWZVdkhMcTAxaXNmcVZtWTUydE0rMmYyMWZicjIzMlI3RmJmOXluSHVmUDkvaXJHNnp4RVRYRFRXTGZzdTN0TWRYMG90RmJaYjhKejVLVnRhSXJqeFZwbmdNZk5uZ0FBQUFBQUFBQUFBQUFBQUFBQWRiMzVyLzVSamx6OExOaDlTNm9YNi9saENQVVNBQUFBQUFBa0s4cUQ4b3h4RytGbXY4QXFYYWlMZmxrZGtJTENRQUFBQUFBQUFBQUFBQUFVaFBQMjU4MUhJamNOSnhrMWJkc1hHcXRCWEU2Ymx0elhTQ2ZxOHQzSTdHZnFMQW9qaURVekxnYTZxMzVGWXkram9UazZiWUVYZTBsbHhWMmthUnI2b1Y3QldBQUFBQUFBQU93L3dESnA0MFNPTXZBblU5VGVWcXF6TjlyRkszYm04ZDFzMnBUTS9QbzhGekdvTXhsejZORm0xZUFWOVJIa01MN1ZNeTIzU05LVmR4Q3phZFpTbFBGSUFLeVB5bXorQXZqSDhMT1gvY2UwTGxPYUpVM3hjQUFBQUFBQVhlZmsxbnhGOXIvQUkyV2RmZ2YwU0xWK2FZV0ZSUUFEWUcwOW9ZTHBYWFdZN1gyWmtNUEZzRHdLaW01RmsxN09VZmd3cStFanIyTXRJSlQ4MmZOZlVpUEZqTXBXL0tsT3RzdEpXNHRLVGN4MTIzbU1lWUZzZm4vQUxyazV0ZkhNeDNWMkt1V0ZScC9XcHlDT0xpdU52U0NOVnBiTnNQT3hKdWJaSWhscDIwbHBOWmRVTngybGVyeDJTSy9GWWo5S0VmSWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFIMmNkeUsvd0FSdmFqS01VdTdiR3NseCt4aVc5RmtGRFl5Nmk2cHJXQzhtUkNzcXV6Z1BNVFlFNkkrZ2x0dXRMU3RDaUl5TWpBZGh6NVNISXJrbHllNGY0cnNya3ZpYmRWa2k3S2JUNHBuZmh4NnVUdC9FcTFETE1YWUV6R0kwU0xIbzM1TTRub2luR1VvaldLb3h5bUdtbVhVRWRtMFJFOEVwRDgrL3dEZ1ROZi9BSlN5UDZqekJFY3gxVHd2b0FBQUFBQUFBQUFBQUFBQUFBQUJJUDVhbkJmSk9lbkpHaTFzMlZqVjZ2eGRER1hibXpDRzMwOTRzTGl5VW9UVVFKVGhlcnQ1UG1VdFBxRmNnL0VXMzNQUy9DY1ppUGtVV25TQjJNMkk0bmplQllyam1FWWJUUWNkeExFS09yeHJHcUdzYThDdnBxS2toTTExVldRMnVxalJIaFFvNkcwZFRNK2lmU1puMU1XRXR3Z0FEakxjZTQ5YmFCMXRsZTNOdVpYVzRYZ0dGMXE3Tzl2Yk5haVEyZ2xKYWl3WU1WcExrdTB1TFNXNGlQRGh4ME9TWmNseERUU0ZMVWxKekVhOElGQlR6TC9OTjJ4ejh6TjZpaExzdGY4QUhMR2JWNTNCTlhSNWpqVDEycGh4U0llWjdNT0xLZGhYbVhQTmRUWVlTYW9WTzBzMlkzZTZxUkxsWGExaVAwb1JVaW9BQUFBQUFBQUFBQUFBQUFBQUFBQWN5NkM1QWJhNHhiUXg3Y09sTXduNFpuT09PTEtQUGlkajhLenJwQnQrK0ZEa0ZYSVM1QXZNZnRFTnBUSWlTRUxhWDJwV1JKY1FoYVV4RThKSFlDK1c3NWtXcnZNRDFkNzUxbnFPSDdzdytERVJ0WFZTNVpya1ZjaFpvanB5dkZGU0ZuS3VNRnVKUjlHWGo3bm9MeWlqU1Q3L0FBblpGbTFkUDBKU1NDa0FBQUFBQUFBQUViZm1SZVpGcTd5L05YZStkbjZqbUc3TXdneTBhcTFVaVdhSkZwSVFhNDZzcnl0VWRaU3FmQmFlVVhSNTR1MTZjOGs0MFkrL3hYWTlWYTYvb0ZBWGtSeU4zQnlvMm5mN2gzYm1FL0w4eXZuRGJiVSt0eHVveDZuYmVmZWdZeGlsUjRpNHVQNHpWSElYNEVSZ2lUM3JXNjRiajdycnE3c1Jwd2hEZzhTQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3lGNVEzbk9YR2piREd1TS9MREo1VnZvK1VxTlNhODJmY3V1UzdYVU1sMTlTWWxQazFnNTRrdXoxcTR0NG0wUE9xVzdRcEpKSk00Q2V5TlJhdXZHT1l1aVE1a1N3aVJaOENWSG5RWjBkaVpDbXczMnBNU1pFa3RKZWpTb3NsbFMyWkVlUXl0SzBMUW8wclNaR1JtUmkwbHdEeTYrS2h5ZC9GNTNUK0RmSlJNY3gxZTR2b0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFXamZrOVBQNlpqbVZ5T0MrejcwMTR0bGlyakpkQlRyT1V2c29jdlFUMXhsT3VveTNTVTNIcmNzaXBrV3NGczF0Tm90R1pEYUV1UDJDU0szZVBVWEFSYlNBQUFBQUFBQXh2NU04WU5kOG9NSFBGOHhaVlczdFdVcVRobWJWOGRwMjZ4UzFrTkpRcHh0SzFORlowazViVFpUNjl4eERjdERhVFN0bDl0aVF6Mi93QU44MDd0NFgzTDl1N2RQWHRyNlJsdzJtZWpMV0o1VC9KdkhIb3ZFVE5abWVGcXphdHNRZTh2c3Q0aDcxK016Mkx5U2s0dTRZZXEyMDNlT0luTnRjdG8wMXJycDE0cjZWK3RndE1WeXhXTkpwa3JqeVVxMWJ5ME5zVGp6blV6QXRqVmFJazlwSnlxcTJncWRrME9TMUtuRk5zWE5CUGRaanFsUW5sSU1sSldodDlod2piZWJiY1NhUzNkOFg4bzdSNWQyeXZkTzBYMXB5dlMya1h4MzlhM3JFenBQd21KbXRvNDFtWWVIWHVwN1ZlWCt6L2xHVHhmeTdERmMyblZoelUxbkJ1Y1d1a1pjTjVpTmErbHEyaXQ4ZHZsdldzdUhpU1gvd0JJN05GWlkwMWw3ZEJWRlVjWmUzUVZSVk9qejBGVVZOSWVlZ3FpcVVtbkI3bjFjYUdsd05hYlVsV0Y5cGlVNFRGZk1iYVhPdXRiU1pEeWxuT3JXMDlaTm5pcnJycHFtMTZlOTVndm84TWpjUzVHbDRUOXovYVRCNVRqdjN2c0ZhWXZJNnhyYXV2VFRjUkVjcmVsY3ZENUw4SXQrWEpPa3hlbTdmMnhmZGp2L2JETmg4Sjg5eVpkMTdkMm1LNHNrUk44M2JyV244MUkvTmsydXN6T1RESFZmSEh6N2VKbUxZY3Y1K1lWNW1FelpMbDFwRGo3YlRhclh6VGt5cHpiUDRpbllkaG55RFFxTExvNkV6UzNLcjhPVjNMUSs4ZmEvWmwwU1haRjdpazlPOXV2YTZ2YVpwM3Z5VEhGdTU4Sng0WjVZWjExaTEvU2NzZWtjc2Y0MzA2ZGgvZlQ3aXIrVVV5ZUorMytlYStPV2lhNTkzU2RKM2RaalNhWXA1MTI4eE05VnZ6Wm80UnBpMStwQ3dTL205b1p6aVdudHFQMEpmemUwS29zczJ4djFKZnplMEtvbFp0U1lmc2xmemUxL1lGY1NzV3g2djFTdjV2MmhYRXJGcWFPYjlDYUcyUnlNMkJXYTkxdFR1VDdDVzQyN2JXNzZIbTZIRjZudjZTYnpJN0J0dHhFR3Zqb0krMHVpbnBEblJwbERqcTBvUDRua1hrdmEvRisyMzduM1hKRmNkWStXc2FkZVMzcFNsZlcwL3ZSSEcweFdKbDJ6d1gyOThqOXh2SU1YajNqV0diN2k4eE9USk9zWXNHUDliTGx2RVQwMGowNTJ2T2xLVnRlWXJOc25panhKMXh4U3dkdWh4YU8zYjVqYlJZcDV4bjB1T1RkdGswOW52YzhKbEJyZTk2cUNFODhvb2tKdFJwUWpvcHhUcnhyZFZwbDVuNXQzWHpQdUU3bmVUTk5qU1oramhpZmx4MW40OHVxOHhIelhubnlpSXJwV1BXVDJsOW9mR3ZhYnNVYkR0Vll6ZDV6VnIrMWJ1MGFaTTk0MW5TT2YwOFZabWZwNDRuU0k0Mm05NXRlY3F4MDFsZ0FBR0RmbVRIMDRTNzFQNTFWaVA0Uk1RR1EvYW4rL3dEMi93RDVXYit6NVdDUHVaanE5a08rUi9tN1QrM2JWVUM4VDlIOWMvMmh1cjF5OGp2by9vUEUvUi9YUDlvT3VUNlA2RHhQMGYxei9hRHJrK2orZzhUNXVwL3RCMXlmUi9RdEJlVGdmZHhSdnovNzU4dSs1akJScWI3NVRyNWZobWYvQU5uNC93Q2x6dlRQN05hOVB0ZHZZLzc5ei8yWFpKWHhobHRxQUFEaVBkZWtkZjc5d2F4d0xZVlNtZFhTa3FkcnJPT1RUVjNqbG9TRFRIdWFDZTQwOGNLZkhQMmVxVk5QTjl6VHlIR2xLUWZZL0Z2S3U4ZUlkMnAzZnMyVG96VjRXck9zMHlVOWFaSzZ4MVZuOXlhenBhc3hhSW1NZmU1ZnRsNGw3c2VMNXZGUEw5dkdYWjVJMXg1SzZSbTIrWFQ1YzJESk1UMFpLL29tdDY2MHlWdlMxcXpXQzVPOFd0Z2NZc3lWU1pLd3UweE8xa1NWWVpuRVJuc3E4amdzbWxmaFBJU3QwNnU4aHR1SktWRGRWM0lWN3R0VHJLa09xM3k4RDgvN041NTJ6OXEyTS9UN2pqckgxc0V6OCtPMCtzY3V2SE0vbHZIQ2VWb3JhSnJIaDU3Myt4WGwzc2g1SFBiTzkwblAyRFBlMDdQZTBqVEZ1S1J4MG1OWitsbnBFeDlYRGFkWW41cVRmSE5iMnhsSGUyRWdBQUFBQklid3E1MFpGeDJzb3VEWnM1TXlMVE5uTzdwRVF2RmwyK0RTSktqOGEyeHBLbkM4U3NjZFY0a3l2Nkdsd3lOMWpzZU54TCtHUGRIMm4yWG1tQzNkdTFSWEI1UGpwd25oRk04UnlwbDRjTFJIQ21UMDRWdnJYU2FiZmZiUjkwdmVQWjdlWS9GL0pweWJ6MjN6NWRiVTQzeTdLMXVlWGJjZU9PWm5xemJmbGJqa3hkT1NieGw1NDV5K1pFbktvcy9VbkhLN2t0WTdMakpZeTdhTUlwMVpQdDB2b0pVakg4UVMrMURuMTlZaEIrSExucVNoNlVvMXRNRWxoUGpTY1plM1h0SmJ0OTY5NzhzeDFuZTF0L05iZWVtMWFhY3I1ZEptdHJldGFSTXhXTkxXMXZQVFRNZjNOZmVOWHZ1SEw0RjdQN205ZXpaS1JYZGR5cDE0NzV1cVBtd2JTTFJUSmp4Ukh5NWM4eFcrV2VxbUtLNG8rcG5oV05QenhuMlllY3VzUzlESVc1cWlZMGVvdHpVZUJibXFYZ1c3Vkc4OWVhMXpiYldYMUdDYTh4NmRrMlUzajVNd2F5Q2hKRWxCR1hqelpzcDFUY1N0clliWjk4aVMrdHRoaHNqVXRTU0xxUG05ejduc096N0svY081NWE0ZG5qalcxcmZ3UkVSeHRhZVZhMWliV25oRVRMc3ZpUGlIa25uZmY5djR4NG50TXU5NzN1YmFVeDBqMDliM3RNeFhIanBIelh5WHRXbEs2MnRhSWpWYUs0YmNKY0o0cjQyVmhMT3Z5M2J0M0ZiVGsrY0hEK2gxemJpRXFkeG5EdldrRktyOGVZZDlEcnhrMUpzM0VrNitsQ0VzUm8rby9uSG51Kzh1M1gwc1hWZzdKam4rYnhhOGJmOEE0VExwd204K2xlTmNjY0t6TTlWNysySDI5ZmJmNDU3SWRuL2E5eDlMZitmYm1rZnRPODZPR09Kamp0dHAxUjFZOEZaL05lWXJrM05vaStXSzFqRmh3NXdqb0RaVUFBQUFBQUFBQUFBQUFBQUFBQUFCMXZmbXYvbEdPWFB3czJIMUxxaGZyK1dFSTlSSUFBQUFBQUNRcnlvUHlqSEViNFdhL3dDcGRxSXQrV1IyUWdzSkFBQUFBQUFBQUFBQWJjeTNNTVR3SEhiWEw4NnlmSDhOeE9paXJtM2VUWlRjVjlCUVZFTkJrU3BWbGIyc2lMQWhNRVprWGM0NGt1cGtYc21BcWJlYU41NzBmTDZmSStQdkIrNHNZbE5aSW5VV2VjZ2lqcnI1ZHRXUHRPdzdHajFSRm1Nb3NLNkpOYmNVMjdmdklZbGR2ZDZnaHZxMU5PNVducktGVjBYQUFBQUFBQUFCS1Y1UjNCdVp6YTVWNDdXNURVdlNkS2FuZHJkZ2JpbU9OdnByN0NyaHpTVlFZQ3FTMTJFVTdQYldNY2RUWk9OdkZXTVRubTFkekJDbTA2UitJN0VOS1VvU2xLVWtsS1NKS1VwSWlTbEpGMEpLU0xvUkVSRjZDRmxMeUFBS3lQeW16K0F2akg4TE9YL2NlMExsT2FKVTN4Y0FBQUFBQUFYZWZrMW54RjlyL2paWjErQi9SSXRYNXBoWVZGQUFLYkh5aGpuZkx6dlpNRGhQcnU0Y1JoT3IzNjdJOXpTSUwvYXprdXlKVVJ1ZlJZbys0dzRwRXVxd1dvbU55SG16UHRWYnkxSWNiUzdYdHFGMmtlcUZaZ1ZnQUFBQUFBQUFBeUp3ZmlGeXUyVzB4STE3eG8zNW1rT1FiWk4yT05haXo2NHF5SjAwZUc0OWF3cUI2dWpzSDRpVDhSeDFMWkVaR1prUWpXSUhPMEh5cmZNU3NZclV5UHhEM0kyeTkzOWlKMlB0VmNvdkRjVzByeFlObk1pVG1PcWtHYWU5dFBjbm9vdXFUSXpkVmZpUGkzL2xtZVlKalNWcXNlSG0vd0NTU0dFU0RLZzExZlpZbzIzSGxNSlNoR0xScmxiajVMU1pxYVNSdUpSMFdhU1NaR2JxcjhSaXJtMnJkbmEwa2xEMlBybk84QWxtNGhrb3ViWWhrR0t5VGRjYU45RFJNWHRmQWROeGJLVFdTZW5VMGwxOWdTTmlBQUFBQUFBQWw0OG92eTJyZm5kdWM4aXpldm13dU5lcUxLRE0yWmNFdCtGOWVOd2FVemF2VnVQekdqYmVYUHQyaVM5YXZNS0pWZFZuM0c0MUlsUXZGcHRiU1B4SFlDVTFOVVk3VDFXUDBGWkFwS0dpcllOTlNVMVZFWXI2dW9xS3VLMUNyYXl0Z1JXMm8wS0JBaHNJYVpaYlNsdHR0QkpTUkVSRUxLWHhNKy8rQk0xLytVc2orbzh3VEhNZFU4TDZBQUFBQUFBQUFBQUFBQUFBQUJ1WERNTnlqWW1YWXpnZUVVYy9Kc3h6SzlxOFp4ZkhxdHJ4N0c2dnJ1YXpYMWRiRGJNMHBVL0xtU0VJU2FqU2t1dlZSa1JHWkIyTlhsdWNHc1g0R2NjS0RXVVFvRnBzbklqWXlyY2VZeEVkeDVIbTBxT2xLNEVLUzRoRDZzWnhTTXIxQ3RiTWtKTnREa2cwSmVrdm1xemFkWlN6L0ZJQVBoWlJsR080VGpkOW1PWFhWYmplSzR0VDJPUVpIa0Z6TFpnVk5MU1ZFUjJkWjJsak5mVWhtTENndzJGdU9MVVpFbEtUTUIxKzNtdWVabGxQUGZheDBlS3lMQ2g0MTY0dHByZXNNVWRTNUVrWlBPU2hjR1JzdkxveGtoeHk4dVkvZVVDSzZYU29nT215a2lmZG1PdjNxMTAvU2hFdUtnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhOSEh2ZjhBcy9qQnQzRHQyYWZ5QnpIYzR3eWVjcUUrYUNrVjlwQWt0cWkyK1Azc0JaazFaVVY1WHV1UjVUS3VobWhmY2hTSFVvY1NtTlkwa2RpOXdXNW82MjUxYUR4M2N1QktSVjI1ZGxIc2pBMzVTSlZycjdPNHNabDIxb1pUcElhT2RWdms2bVRXVGliYlROZ090clVocDRubzdOaVkwbExNZ1FBQUFBQUFBd2U1L3dET1RYUEFyUTF2dGJNQ1p1OHV0UFdxSFZPdm01Sk1UODd6VlVVM0kwUmFpTTNZT04wNUtUSnRwM1F5aXhDN1VFNUpkanNQVEVheU91eDN6dmZaL0pYYTJYN24yL2trcko4NXpPeWRuMkV0NWJxWVZkRkpScHJxQ2hoT092SXFjY280bmJHaFJHejdHR0VKVDZUNnFPL0VhY0VPSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGMVQ1TzlzWGwxaytqY2x4WForTnk3TGk5aS9peDlHN0x5ZXlmYXlGdTVqVG8wTzYxM2l0ZkpRNi9rV3VhaHNublc1cHFaWXFweUhJREM1S1ZMWnJiVjlQM1NFMm5McjRxSEozOFhuZFA0TjhsRk1jMHVyM0Y5QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURjV0g1YmtXQTVaakdjNGhheXFMSzhOeUNueW5HYnVFb2tUS2kvb0xDUGExRmxGVVpLU1Q4S2ZGYmNUMUl5NnA5SkdRRHMzZUlmSWVpNVc4YTlQYi9vRXNSMmRqWWRCc3JpdGp2RSszUlpiQlc3VFpwanhPa2ZjNG1oeXl1bVJFclVTVk9JYUpacFQzZENzVEdrNkpaSGlBQUFBQUFBQUJ3enZYUTJ2T1ErQ3pNQzJKV3Jrd25GK3QxTnhBVXpIdjhhdGtJTkROdlF6M21KQ1lzdENWR2xhVm9jWmZhTTIzVUxRWmtPeGVNZVVkMzhSN3BYdXZhTDlPV0kwdFcyczB5VjlhWHJFeHJFL2hNVEU2VFdZbU5XUFBjNzJ2OFI5Mi9Gc3ZpbmwrQ2NtenRQVmp5MDBybTIrV0kwcm13WG1MZEY0MW1KMWkxTDFtYVhyYWt6RTFjT1N2R1BZZkdMT0ZZdG1VWXA5SFpxbHljTHpXQ3d0RkxsdFRHZFNoYnpKR3Q3M3R1WUtYbXluVjdpMVBSRnVJVVNuV0hXSkQyOGZoUG0zYVBOKzJmdHZiNTZOM2ppSXpZYlQ4K0swL3ZkVkxhVDBaSWpTMFJNVEZiUmF0ZkRyM3E5ai9BQzcyUjhrLzNQMytuMXV6NTV2T3ozbEt6R0xjNDZ6K21mcDVxUk5mcllMVE5zY3pFMW0rTzJQSmZIVG9PN1JWaGw1RmNWRG9Lb29oNTZDcUtHcnoybjg0VmRNSTFodG0vd0FaUmFvVklqZHJOZ2hQb1Y3RGNna2w2RzN2UjZGRVhvU3YydllQMGRPbno5OTIrdTVyMTQrR2VQM3AvVC94dTZlSytYNXV5WkkybTc2c25hclR4am5PT1ovV3IrSDhxdnJ6ampycnhNNjI5R2VjWWtOcWFlYVVhSEcxRjBVbFJlMFplMlhUMGtmc0dYc0RyRnEyeDJtbDQwdkhPSlowd1pzRzd3VjNPMnRGOEY0MXJNY3BqL2g2YzRuaFBGNEpRUkpiSDhINmtzVlJLemFueGZzbGZ6ZTBLNHNzV3gvQmt4eGc0dTdONVZaODFobUF3MFJLMkNUVXZMc3pzMlpIMXU0alVyV2FmV1p6ektEVktzcGZZcEVLQzJmalNuQ1AwdHNvZWVhNjE1VjVkMnJ4RHQwNzd1TnVyTGJoanhWbU92SmI0UkU4cXgrdGVlRlkrTnByV2UvZTIzdGY1SjdvZCtqczNZcVJUYjAwdG4zRjRuNldESDhiVEg1cjI0eGp4eDgxNS9rMHJlOWJibkhQamJyUGpEZ0ViQk5jVmh0K01iRXZKY2xuRWgzSU11dVdtQ1pYYTNNdEtTTG9ralVURVpza1JvcUZHbHRCR3BhbGFhK1QrVTkyOHM3bFBjZTZYMTAxakhTUHlZNjY2OU5ZL2p0UHpXbm5QQ05QVnIyNzl1UEd2YkxzTmV4ZU9ZdE9yUzJiTmJqbHo1SWpUcnlXL2Y2YVJwU2tUTVZpTlptZWZoMXgzMEFBQUJneDVsWjl2Q0hmQi9PcWNSL0NMaDR5RDdWOFBQZTMvcHpmMmZLd2I5eVVkWHNyM3FQakcwL3QyMlU4ZkcvUkw5WWJuZGMvaThvdjJjOGI5RXYxZzYvMG43T2VOK2wrdCsySFgrbEgwUHdQSC9TL1cvYkRyUG94OEZvL3lhRmQvRTIvUC92b3kvN2w4RkdxbnZoT3ZsdUNmKzc4ZjlMbmVrZjJlMTZmYkxleC93QitadjdMczBzd3cyMnRBQUFBYkQyVnJQQ2R1NGRiNEpzQ2lpWkJqbHd5cEQ4V1NndkdpU0NRdE1lenJKUkY0OWJiUVZPR3BpUTBhWEcxZXdmUXpJL3I5ajc3M1R4enVlUHUvWjgxc085eFR3bU9VeDYxdEhLMUxjclZuV0pkVjgwOEs4Wjl3dkhOeDRyNWJ0Y2U3N051YTZXcmFPTkxhVEZjbUszNXNlV211dE1sWmkxWjVUcE14TlpMbHh3NXpiakJraXBCRk15YlYxeEtKdkY4NFRIU253M25rdXVveC9KRU1GNE5mZngyMlZHa3lKTEUxcFBpdGRESjFsbmV6MjU5eSsxK2ViSG8rWEIzL0ZYWExnMTlJMGo2bUxYamJITXpHdjYxSm5wdHJIVGEzaU45d2YyNStUZXgzZXB6UjlUZStDN25KcHRkNzA4cG5XWTIrNWl2REhuckVUcFBDbWFzZGVQU1l2ang0YWpKclhFQUFBUk02Y1o1RDU4aDgxZFVOK2hQc0dvdlpWK2dYNkg3SStQdTk1TjljV0w4bnJQeC93RHUvalZSV2ViUkQ1VTFTOGRCYW1xWG9hZm5DaVkrS3FMZkYrUmwrb0taaE9tcjE2QzNOVU9WdE1hVTJGdnpPNnpYdXQ2UjIydUp5aWVuVEhFdXRVMk9WQ0hXbXBtUVpIWXRzdklyS2FDYnFTVTRhVk9PdUtReXloMTkxcHBmd2UvOTk3WjQzMjYvYys2NUlwdDY4SWpoTnIyNHpGTWRkWTZyMjA0UnlpSW0xcGlzV3RIZXZicjI0OHM5MC9LTUhpZmgrMnRuN2psNDN2T3NZZHZpaVlpK2ZjWklpWXg0YWF4cmFZbTFyVFhIanJmTGVsTFdtZUtuRXJYdkZuRGsxVkEwemVaeGJSbXZyenorWEVRemFYajVLUzZjR0VoUzMxMUdPUlhrbDRFTkN6SXpTVGpxbkhlcXhwNTVsNXIzUHpEZmZWM0V6ajdkU2Y1ckRFNjFySExxdHk2cnpITzB4dzEwckVSd2UzdnNiN0MrSit5SGowYkx0ZGE3bnliUFNQMnZmV3BFWmMwOCtpa2EybkZ0NnpwMFlxMm5YU0w1SnZmNW1WZzZZem9BQUFBQUFBQUFBQUFBQUFBQUFBQUFPdDc4MS84QUtNY3VmaFpzUHFYVkMvWDhzSVI2aVFBQUFBQUFITm5ISGVXUThhZDVhMDN4aWxSVFgyUmF3eVJqSnFpbnlFcHlxV3dsc1I1RWRNZXhLdGx3Wnh4elRKTXo4SjV0WFVpOUlpWTFqUVRxL25ML0FDdi9BSWh1UFA4QTJPeVA5T1JUMFFhbjV5L3l2L2lHNDgvOWpzai9BRTVEb2cxUHpsL2xmL0VOeDUvN0haSCtuSWRFR3ArY3Y4ci9BT0lianovMk95UDlPUTZJTlQ4NWY1WC9BTVEzSG4vc2RrZjZjaDBRYW41eS93QXIvd0NJYmp6L0FOanNqL1RrT2lEVS9PWCtWLzhBRU54NS93Q3gyUi9weUhSQnFmbkwvSy8rSWJqei93Qmpzai9Ua09pRFUvT1grVi84UTNIbi9zZGtmNmNoMFFhdU1NOCtVWjg5TXBqUHc4VngvUW1zMHJKeE1leXh2Qk1odkx4anhHMmtrdGIyY1pwazlFKzR3NGhTbS84QTNjaFBSZlJhVjlDTU9pRFZFeHZ6bHh5VzVSV1RObHYzZE9kYk1PSzk2eEFxYnUyT1BpMVZKTW5FcWswMkcxRGRkaWRMSVdoMVNWT1JZVEsxSlBvWm1SRVJWUkVSeUdPZ2tBQUFBQUFBQWM0Y2MrTzIxZVZHM2NUMHBwekhIOGh6TEs1aUd5VWFYVzZqSHFkcDFwTnRsZVVXRGJUeWFqR2FHTzc0c3FRcEtqNmRyYlNYSDNHbWx4TTZjWkhZcjhGdUYrdU9DdWdjYzB2Z2ZTMXRlcWI3WStjdnhreHJQWUdlellzZG0zeUNTeVMzdlVLMWxNZEVXdGhFdFpRb0REU0ZMZWU4Wjk2ek02eWxtT0lBQUFWa2ZsTm44QmZHUDRXY3YrNDlvWEtjMFNwdmk0QUFBQUFBQXU4L0pyUGlMN1gvQUJzczYvQS9va1dyODB3c0tpZ2NMY2pkeTAvSGpRdTM5NDN5RzM2L1Z1dnNveklvVHFsb0syc0tlcmtQMDFFaGFQZElmdnJnbUlUWjlTSW5IMDlUSXVwbE1Sck9nNnYvQURQTDhpMkRtR1ZaN2w5bS9kWlhtdVIzZVdaTmJ5VEk1RnBmNUZaU2JhM3NIdWhFbnhKaytXNDRaRjBJalY2UFFMNkcyZ0FBQUFBQjlTam83cko3cXB4ekhLbXl2OGd2N0tGVFVkSFRRcE5sYjNGdlpTVzRkZFdWbGREYmVsenA4Nlc4aHBsbHBDbkhIRkVsSkdaa1FDMXh3aytUblZzdWtwcys1djViYk1XazltUFlNNk8xeGFSNGFhdGw1anZLQm4yZG9ZbFBTTEZKdTlIb2RKNEtHSEd5N2JCNGxLU20zTi9nYUxFK2tlR0hGTGpqSGlOYVQwQnJEQVprSWtwWnlHdXhlRE96TndrRVJJOWN6bTZSWjVsWW1qcDdrNUU1MHlNek12U1o5YUptWjVwWk5pQUFBR2hzcXl0dW9FcXF1SytEYlZjNWxVZWJXMlVTUFBnVEdGZE81bVZEbE51eDVES3VucFN0SmtmemdFYzI5L0tMOHZya0F6TWR5VGp2aWVFWkJKUStiZVdhZWJYcXU2alNwSFR4YkZ5RmlYcUdMWFU0ekx1N3JTdG5wTlJtbzBtWm1ZcWkxb0ZmemxiOG0vMjloVEZubEhFclpVRGNOTkdiZWxOYTMyRWRmaDJ4eWJRcm8xQnA4bWE4REJjb21LUjdwUzVmMXVvOWtrcFdyb1IxeGY0bzBWMWRrYXcyTnA3THJQQXRxNFBsV3U4MHAxa214eG5NYU93b0xpT2hTbHBaaytwV1RFZDE2REtKQnFZa05rdGg5dm90dGFrbVJuV05pZ0FES25ocHhHMmJ6WTN4aXVqdFpSdkJmdEZuYTVmbFVtTzQvVFlGaEVCK09pK3k2NThOVGZjekNSSVExR1k3MEttem5tSXlGSlU2U2lpWmlJMUhZNmNjZVBPcytMR204SzBkcVNtS293N0NxMU1WcDE0bVYyMTlhdm40OXhrK1F6R1dXRTJHUVg4OVM1RWw3dFNudVVTRzBvYVEyMm16TXpNNnlsemlJRzNjdmd5clRFOG9ySUxYanpySEhicUREWTcyMnZHbFM2MlRIanRlSTh0dGx2eEhuQ0x1V3BLUzY5VE1pOUlRT3YyLzhqZnpTUDVyL3dENDE4ZC85Yll2ZGRVSC9rYithUi9OZi84QUd2anYvcmJEcnFIL0FKRy9ta2Z6WC84QXhyNDcvd0N0c091b3hPNVE4RytVbkRINnh2OEFhVjFmKzl2KytSOWMzMWwvL25YWGVZZS9QMW4vQUZ2L0FGeC8vQU9XNVQ3M2U5MzEwd1AvQUd2d1BHOGY2RjM5am5aTVRFOGhpYUpBQUFBQUFBWjZjZlBMRzV4Y3FOY3h0dGFHMGo5ZmV2cGx0YTBjZklQM3lkUTR4NGxyU3VvWnM0dnZWbVdmWTdkbzlXZGNTWGVxTVRhK3Z1RktJUk5vamhJNXYvOEFJMzgwaithLy93Q05mSGYvQUZ0aU91b2YrUnY1cEg4MS93RDhhK08vK3RzT3VvZitSdjVwSDgxLy93QWErTy8rdHNPdW9uYzhsdnlpcys0eFpoa25JN2xuaE5iUWJlcXprNHpxRENWMzJLNWVlSFFKc1B3c2kyQkpzOFJ0OGhvU3ZibUpLVld3RXRTMU94SWh5emRTU3BEWGgwV3Ryd2prTEo0b1NBQUNuNzUvL21OeWNweU9ad1YwL2RyYnhYRlpjS1p5RXZLMlYxUmttVnhuSTlsVGF5YmRZUHRWVTRpOGhxWmJKN2wrTmJlREhVbHBVQjBucmxLK3NvVmN4Y0FBQUFBQUFlVXBVcFJKU1JxVW95U2xLU00xS1VaOUNJaUwwbVptQW1kNGNlUnR6RDVUUmF2TDh4cm8vSEhWZGsweE1pNVhzMnNtdVpkZFY4aEtWdFM4VzFreS9YMzB4cHhseERyVDFvOVRRNUxDeVd3KzZYb0ZNM2lCWWUwbDhudTRGYTBqeEpHeG9leE4rM3paSmNsdjV0bDAzRjhiOWJTUkVTcTNITmRxeGVVekNJMGtyd0oxaFpkVkdmY3RTREpCVVRlVXBGc1E0QWNIY0VqcGo0eHhINDZ3MUpKYVNuVE5SWVJlWENtM1NhSnhseTh2YWF6dVhXRmVDay9EVSthTzR1dlRxWm1kT3N5T1RYZU1uRzJSV3RVei9IelNEMVF4MmVEVk82bndOeXRaOE16VTM0VUZkQXFLMzRhbEdhZWlTNkdmb0RXUndYc0x5ME9BT3o0a21KbGZFWFJqWHJodUtrenNQd2FyMXhkdk9POS9pUEx5RFhTTVZ2VGZXYmhuNG5ySGYxNkgxNmtYUjFUQWlMNUovSnVORDVkSG4zUEdEYVdWNmd5QXlVN0Z3L1BWTDJEcjk5YVNJbTRVYTE2UTg0eDl0WjlWTGtQeWJ4Ukg2RXNrWHNWUmVmVkdpczV5Mzh2bmxYd290emk3eTFyTWg0dkptcWhVbXpzWGNYa3VzOGhjNm1US1lPVVJHR3lySnNva0tVMUJ0V2E2eVVoSnI5WEpQcEZ5SmllUXdyRWdBQUFBQUFKRy9MRTU0NUh3TDVIMDJiUFNKMDNVR2JMZzRudXpGWS9lK1ZoaVRzcnJIeWF1aGtTMHJ5ZkNKVHlwc00wcEoxOXIxaUdTMElsdUtLTFJyQTdGMmd2cVhLcUtseWZHN1NEZVk3a2RUVzMxQmRWa2h1WlczRkxjUTJiQ3J0SytXeXBUTXFEWVFaRGJyVGlETksyMWtvajZHTENYMWdBQUFBRzBzOXpyRTlZNFRsbXhjN3U0bU9ZWGcyUFcrVlpUZlRqWDZyVTBWSEJlc2JPYTZscERqenZnUlk2alMyMmxicml1aUVKVW95STNNZGNWNWgvTi9NdWVQSXZJdHNYSjJOVGdsVjR1TmFpd2FXK2hiV0g0SkVrclhFS1F6SFVxS2VTWkM4WnpyVjlKdUtYSmNKbExpbzhlT2xGK0kwalJEQk1TQUFBQUFBQUFBQ1E3ajU1VkhQUGt0RmhYT3Z1UCtVMUdKVGliZFl6WFpDNGV0Y2FrUTNlM3NzYXQzTUg2dTB5U0FvMWRDZHFvczRqTWovNkt1a1RhSTVpVkRBZmt6WElXMGpzdTdNNUhhZnd0OXh0SzNJdUc0L21PeEZzS1U2ajZDNDdiczY0WlU0M0hNelVhRFVqeFM3RXFVay9FRlBYQm81cC9OZS8vQVBPTC93RDFvLzhBK2dCSDFQd05IRG1lZkpsOS93QmF5K3ZXbkpQVVdZdXRrcFRER2FZMW1PdkRmSkxqdlJIaVV5ZGt0dE9MWVNneUl6TlBpS05KcUpLU1dxZXVEUkZ4eUE4cGZuMXh2aDJGM20yZ3NoeVBFcTFDM3BPWmF3a1F0azBUTU5vbHFlc1owZkZucDJRMGRjeWxzMUxlc1lFTkNFOURVWkVaQ3FMUklqalVsU1ZHbFJHbFNUTktrcUl5VWxSSDBNakkvU1JrWWtlQUFBQUFBQllLOHBmeVo4ZzVTeXFIa0p5VnE3YkZPT01kNkpiWWxpcmh1MW1RN3dObVIzcEp0U1Z0V0ZGcmRmZzlINTZTYmsyYmF5UkJVbENsUzJxTFcwNFJ6RjJ2SGNjeC9FS0dveGJGS09weHJHc2Zyb2xSUlkvUTEwU29wYWFxZ3NwandxMnJySURURUtCQmlNSUpEYlRTRW9Ra2lJaUloYVM0UzVkZkZRNU8vaTg3cC9CdmtvbU9ZNnZjWDBBQUFBQUFBQUFBQUFPWnRWY2M5LzcwZVV6cG5TbTA5cGVFNzRFaVJnZUI1Tms4Q0U0WGFSKytObFVWc3F2clVJTlpkeW4zVzBwNmwxTXVwQ05Zam1NK01VOGtUek5jcllhbU44Ym5xQ0U4MTRxSDhyMlZxYWhmN2pReTRsbDJvbDV6Ny9SM1ZJZS8vZVJFSlNwS2txTWxFYVJIVlViK2U4Z3Z6S200Y1NValZ1RFNINUp2azlYTTdid0ZNeUFUVGhvYlZMVy9jTVY2eWtwTHVSNEQ3NWtrL2RraFhvRHJxTWNObWVVLzVpbXBZa2lmbHZGSFpjeUZGUXAyUkp3TkZEdFp0bGhEUnZMa3VwMWZkWmc2ekhhWkkxTFd0S1V0a1I5L2FaR1JUMVFJL3JHdXNLaWRMckxhQk1yTEtBKzVGblYxakZmaFRvY2xwUnBkank0a2xEVWlPKzJvdWlrTFNTaVAyU0VqUmdBQUFBQUFBQUFDNHA4bWszMjlmYW0zMXh2dHBpM0h0ZDVaUzdQeEJwOTAxcjk0TStpTzB1U1FJS0RVZmhRYWUveGVQSldub1JlUGNLVVhVMUgwdDNqMUlXZWhiU0FBQUFBQUFBQU9PTnNhbXdUZGVFVzJ2OWlVakYzajlxanZUM0VoRStwc1cyblc0ZDNSelRRNDVXWE5mNHlqYWVRWDdsU20xa3RwYmlGZlk3RDM3dW5qWGM4ZmR1ejVaeGJ6SFA4QXpiVjRhMHZISzFMYWNheitFeHBNUk1kUjg1OEY4WTl4L0d0eDRuNWR0YWJycys0cnhpZUY4ZDRpWXJseFgwMXg1Y2VzelM5ZU1hekU2MXRhczFoZVdmRC9BRHZpNWxCRk5USXlIV3Q1T2VZdzdPMldFcFlsTEpzNUpVVit5eXBaVkdSeG82VkdTRmRyVTF0cGJzYzFFaDVETzhudDU3aTlxODcyT2xPbkQzekZXSnpZSm5sNmZVeHpQNThjeittYVRNVnZ6cmEzaVA4QWNCOXUvbEhzZDNycnl4ZmVlRWJyTE5kcHZZaU5KblRxK2h1SXJ3eGJpdFluVFdJcG1yVzE4WDVjbE1lSXBJTVpKaUlhNmEvQjdFZ2hWb2NYdVNTRTlKbzg5QlZGUjU2Q2VnYmN2OGRqM1RQZVhSaWUwa3lZa0VYb1Y3Wk12OUNNMXRHZnNIN0tUOUplMlI4SGZkdHg3eW1zZkxtamxQOEFrbjhQNFkvZ250ZmpIbFc2OGZ6OUZ0Y25iYno4OVBXUDg2bnd0OFk1V2poUEhTWTRabHhaTUNRNUZsdEtaZmFQb3BKKzJSK2tsSk11cVZvVVhwSXk5QmtPbjVjZVRCa25GbGpwdkhwL3hNL2JMZDdUdWUxcHZkamVNbTN2SENZL2hpWTV4TWNwaWVNUy9OS3hURXIxcU16dUhQRFBZdkxyTTFRS05LOGQxM1FTNHBaenNDWkhXdURWTXVtaDFWVFROR1NVM0dVeTRwbXBtTWxSSWFTYVhIMXRvVWp2NmI1bjV4MjN3N1kvVXovenZjc2tUOUxERThiVC9LdFA2dU9KNTI1enlyRXpycGxMMnA5bisvZTZmZC9vYkxYYjlod1hyKzA3cTBmTFNKNDlHT1Ara3pXcnhyVFdJaU5MWG1zVEd0dHpTMmxOZGNmOEFxZGJheG9tNlRIYXZ2ZWRXdFJTTFc2dEgwb0tiZVg5aWFFTzJkeE9OdFBlNm9pU2hDVU5OSmJaYmJiUnA5M3p2dmMvSSs0MzdwM1hKT1RjMzRmQ3RheHlwU3Y2dFk5SStPc3pNMm1abjFJOFA4TzhmOEU3Rmk4ZThid1JoN2ZqNHpQTytTODZkV1RMZmhOOGx0STFtZUVSRVZyRmFWcldPVng4ZDJnQUFBQUFZS2VaZ2ZUZzd2by9uVkdJL2hGdzhaQTlyWjA4ODJFL2ptL3MrVmhIN2pZNnZabnZNZmh0ZjdkdGxPUHhmMC82cGpjbnJlV1AwcFBGL1QvcW1IV2ZTazhYNXVwaU9zK2xKNHZ6ZFREclBwU3RPZVRFZmR4S3ZqLzc2c3crNWpCUnF4NzJ6cjVaZ24vdS9IL1M1M290OW90ZW4yMjNzZjhBZm1iK3k3TkxXTVBOcGdBQUFBQnR6THNReGpQY2N0c1F6S2pyOGp4cThpbkR0YWEwWVRJaHkyZTlMaU81SjlGdHZNUE5wY2FkUWFYV1hVSldoU1ZwSXk1dmJ1NWIvdEc5eDl5N1psdmczMksydEwwblMwVHkvZGlZMWlZbldKaVppWW1KbUh4dklmSHV4K1Y5bTNIajNrbTF3N3pzdTZwMFpjT1d2VlM4YXhNY09jVFdZaTFiVm1MVXRFV3JNV2lKaXRmelA0TjVQeHd0SDh1eEpOaGxPbkxLVW80MXliQ25iREMzcE1vbTR0SGxLbXU1S21WbThodUxZZEVOU1ZuMkxTMjcycGMzaDlzUGRmWWViYmVPMjl4Nk52NU5TdkdtdWxjOFJHczVNV3Zyd21iNCtNMWpqRTJyck1lTG4zSmZhNzN6MmEzMS9JZkg0emIvQU51YzE1NmMzVHJrMmRyVzByZzNVeHcwbld0Y1c0MHJYSlB5MmlsK21MeC9qTVRVbzY5UFNmb0lSTXhFYXp5R2hlY1V2M0tmUWoyL25xL1QvUUh5dHp1SnlmSlhoai9qVlYwajlMUzlCd1pxcmVwa0xjMU5OWHFaQ2lhcWVUMUZxYWp3WkVZdHpYUlZFNk9kK1BISERZM0pYT21NTHdLQVNJMGNtcE9UWlZQYWZUajJKMWExTElwdHJLYWJXYXBNbndsSml4VWRYNVRpVEpKRWhEampmVi9LdktlMCtKZHRudUhjN2ZOT3NZOGNhZlV5VytGWW4waldPcTA4S3h6NHpFVGxYMms5b2ZML0FIbThtcjQ1NHRpMHhVMHR1ZHplTGZRMnVPZGZueTJpSithMmt4aXh4OCtTMFRGWWl0YjJyYWI0NThidGNjWnNGYXc3QTRCTG16Q2l5c3R5eWEyZzc3TDdlT3lwb3AxazhScjhDSEc4Vndva0p0WHE4TkRpK3dqY2NlY2QweThyOHM3cjVmM0tkLzNLMm1LdXNZc1Vma3hWbWRkSy9HMDhPdTgvTmFZalhTc1ZyWDNCOW9mWjN4RDJZOFlyNDk0dmkxM09UcHR1dDFlSSt2dTh0WTA2OGs4ZW1sZGJmU3cxbjZlS0xXNlltOThsNzVBRHJES3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT3Q3ODEvOG94eTUrRm13K3BkVUw5Znl3aEhxSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFaaDhOK0MvSVRuSnNGdkNOS1lvNDlWUUg0LzE2Ykh2RVNvR3ZzQmd2cUl5azVGZk54bjBxbnZ0OXlvMWJGUklzWlpKVXBwbFRiYnJqY1RNUnpGOW5nVjVlMmtlQWV0VHhQWE1QNjRjOXlDUEZWc25iVnhEYVp5ak9KMFpienpNY20wT3lHNkhHS3h5UXBNS3Nqck50cFB1M2x2eVZPUHVXWnRNcFo1Q0FBQUFCV1IrVTJmd0Y4WS9oWnkvN2oyaGNwelJLbStMZ0FBQUFBQUM3ejhtcytJdnRmOEFHeXpyOEQraVJhdnpUQ3dxS0JCejhvUzJaTHdQeTg3VEdZYjV0TDNEdDNYT3VwWk51ZGp5cTJBZDFzNlQwN1NOdzJGdjY2WmFjNkdsSnBkN1ZHWks3VlZVL01LRzR2SUFBQUFBQUJaaStUZGNZY2N6dmJ1M3VUbVdWc2V4ZDB0WFVlSGEzYW1NTnZzdzh5enlQY08zK1N4dTQrck5wUVl0V0ZEWk15TXV5NmNVWFJiYVZGUmVlR2hDNVlMU1FBQUFBQUFBQUJqaHlYNGs4ZmVYdUR1NER2M1hGTG0xWWh1Ujd5WERqWndNdXhHYklTa2pzOFF5cUNiTjFRVENjYlFwYVdYZlY1UklKdVMwOHlhbTFURXpISVVtL01yOG5MYmZCazUyenNFbjJPMytOamt0RFo1b21DMHpsdXUxelpLSTlmVzdLcW9LU2lsRWZlZlJIWXU0YUVRWkwvUkx6TUYxMWhsMjdXMFQrbENJL0JjR3kvWnVaWXhyM0FjZnNzcnpYTXJxdngzR01jcUdQV0xHNHViU1FpTENoUm16TktFbTQ2NFhjdGFrdHRvSTFyVWxDVktLb2RpQjVaSGw4NGp3QjBORHhaZnZiZmJvemh1QmZib3pxRzJwVFZsZk5zdUhEeFNna1BvUktMRHNOYmxPUjRaclMycVk4cCtZdHRsVWp3R3JOcmF6K0NVa1lwQUFBQUFBQVZPUGxRbis0Ny94TC84QUwrTG1QMVJLcHdMZ0FBQUFBQUMrbDhueS9KejQxOExPMHZxcEJGcS81a3B2QlFBQUFBQUFBajg4elRtYkM0TzhUODQydERkaU83R3ZPM0F0UDFVb2tPb203RHlHSk05NzdPUkZVWkhLcThUcjRzbTJsTm4ycGZiaGt4M0lVOGd4VldOWkhYRFhOeGE1RmIydVFYMWpOdUx5OXNwMXhjMjFqSWRsMkZwYTJjcDJiWTJNK1c4cGIwcWJObVByZGRjV1pxV3RSbVptWmk4aDgwQUFBQUFBYncxOXIvTmRyWnRqR3VOYzQxYTVobk9aM0VTaHhuR3FXT2NteXRyU2F2c1pqc282b2JhYlFramNkZWRVaGxobEMzWFZvYlFwUkJlSjhzcnlXZFY4U2F6SHRzNzZyc2YydHlXTW1MU09xUzBpM3dUVXNycVRzYUpoc0thd2xpNHltQ2ZhcDI4ZmE3MlgwOUlLV1VvTitSYXRiWGhISktkVVVBQUFBQUFBUGhaUGkrTlp0ajF4aVdaWS9TWlhpdVF3SkZWZjQza2RYQ3U2SzZySmFEYmsxOXJVMlRFbUJZUXBDRDZMYWRiVWhSZXlRQ29GNXEva2JIcWFveVhrZHd6cXJLMDE1VnR5N3ZZZWowT1RiaTh3aXRiTHg1dVNhOWZlT1ZaWDJLUUd5VzVOcm4zSFoxYzBrM1dWdnhpV2lMZHJiWGhLRllzVmdBQUFBQUFMbUh5ZDNtN0oyUHJMSnVHMmYyL3JPVmFkZ3VaWnFTUk5mSlV1MDFiWVdLV3J6R2tyYzZ1UHJ3UEk3RnRiSGNwU2lyN1J0bHRLV1lRdDNqMUZsNFcwZ0FBQUtvZnlpem5JNUdaeDNneHJ5NTdISlNLalA5K3V3blZFNG1LZmcyZXZOZlN6SXVoSWxINGQvTmI5Q2pTaXROS3UxYnFGWEtSNm9WTFJjQUFBQUFBQUFHYlBDWGdIeUQ1NDU4NWllbmNmYmk0elNQeFR6M2FPUmsvRHdYQlljbnVXMzc0ejIyblg3UzltTm9WNm5Wd2tQVFpCa2F6UzNIUTlJYWlaaU9ZdXVjSnZKNzRqY05ZdEprVGVLeDl4N3BnSWp5Wk8yOWtWMFN5azExczBsQ2xTY0N4UjQ1VkJnelRFZ2xISGZaVEl0MElXYUhKN3FlaEZhbTB6K2hLVmtVZ0FBQUFBaTY1c2VVYnhKNXBRN205dHNUajZvM0xPUTYvRjNKcm11aDF0ektzMUVha1NNM3g1bzRsRm44ZDEwa0UrdVlsdXpVMGp3MkowZnIxRlVXbVAwQ2s1emY4QUwyNURjRE0yYXgvYmxFMVo0YmVTNUxPQzdYeGxFdVhnMll0TWt0NG96VXg5aHA2bHlSbUtudmsxY3hMY2x2dFV0czMyTzE5ZDJKaWVTR0RJa0FBQlo2OG96eVQ1ZXgxWXh5ZTVqWXkvQTE0aHlGZmF5MGJmd2ZEbGJFWlUwaVhYWlhzV0RJNk93c0dXcGJia09wZFFUdDBSZDhsS0lCcGJuMFd0cHdnWERJY09KWHhJc0NCRmp3WU1HT3hEaFFvYkRVYUpEaVJta3N4b3NXTXlsRE1lUEhaUWxDRUlTU1VKSWlJaUloYVMxQURIbmwxOFZEazcrTHp1bjhHK1NpWTVqcTl4ZlFBQUFBQUFBQUFNc09JL0Nua0h6WjJDM2dHaThPY3RTaXVSMVpWbXR3cVJXWURna0NRcFhiWTVia2FZc3BFUkswTnJVekZZYmsyRXZzVVVlTzZhVElvbVlqbUxqM0RUeUkrSXZIT3VxTWgzRlN4T1MyMm1QVnBzcTJ6cUNvOWNVMDVMU0RlaFk3clpjaCtsdElMYi9Yby9lSnNubkRTUzBJamRUYkszTjVuOUNVMTlUVVZOQldRYVdpcTY2bHA2eU8zRHJhbXBoUnEyc3I0akpkclVXREFodE14WWtkcFBvU2h0Q1VwTDJDRkEraUFBQURGSGszd2g0dTh2Nko2bjN6cVBHY3NuK3ErclZ1YVJveFVldzZBa0V2MWM2VE9LajFUSVlyRWQxZmllcUxlZGd2S0lpZVljVDFTY3hNeHlGTlh6TFBKZzJyd25qMmUydFhXTm51SGplMDk0bGhmcmhOTjV4ckZ1UkpReEVqNS9YUUVKaVdGTXRiN2JiZDVDYmFqcWQ2cGt4NFptejQxMnR0ZUhxaENTS2dBQUFBQUFBQk52OG41MlkvZ3ZtSzRuaXlaSGhROXhhMDJacitXMnRTeVpjWFYwYWRud2xHUmZRaWtGSjE0VGJhbGVuNktwQ1Q2cjZIVGY4b3ZyaXlrQUFBQUFBQUFBQUcxYzJ3akV0ajR0YzRWbk5CWFpOaTEvRVhDdGFlelpOMlBJYVVaTGJkYWNRcHVSQ25SSGtwZGpTV0Z0eVlyNkVPc3JRNGhLaTUzYk81OXc3TnZzZmMrMTViNE45aHQxVXZXZEppZjRwaVk0V3JNVFcxWm10b21KbUh4UEkvRyt4ZVhkazNIam5rMjF3NzNzZTd4elRMaHkxNnEyaWVNVDZUVzFaaUxVdlNhM3gzaXQ2V3Jlc1dpczF6TTRWNUx4ZnZHN3lwa3lzbDFGa0ZsNmxqbVN5ZlZ5czZpZSszS2xNNHhrelRCTklPemJpUkhGTlMybW00ODFEWnFTbHBaS1pSdkY3WSs2R3g4NjIzN0R2SXJnOGt4VTF2ampYcHlWalNKeVl0ZlRXZm1wTXphbnh0WDVuaXI5eVAyeWQ2OWxPNFQzdnM4NU43N2RibkwwNHM5dEp5N2U5dFpydDl6RmRPT2tUOVBORmEweTZhVEZML0l3YTZETHNWYXB2SXEwZ0JJQUFENGQ1UlJMdVAyT2tUVWxzajlYbEpTUnVOSDZUN1ZleDRqS2o5bEpuK2lYUS9TT0R2dGppM3VQcHZ3eVJ5dDZ4L3h4K0RzWGp2a205OGQzWDFNSHo3UzAvUGptZmx0K01mQzBlbHYzSjFqZ3lQNFNjQjh6NVZadE1jdTVMdUs2ancreGpzWnRsVVI2SXExbnZPdEZLWXgzRW8waEVnbkxhd2pHU2xTbm1WUllMU3U5eExqbmh4M2NGKzRmbWVQd1RCK3pXcEdUdldXc3ppcE92UnBycDlTMHhwOGtUK3JFeGEwOE9IRzFkOFBZajJ3dDcxNS85NTdmTk9IeEhiNUlydWNzVFg2c1gwaTMwTWRKMTB5ekV4cmUxWngwclBYOCt0YTN0a2EzMXRoT284TG9kZTY4eCtEak9KWTVEUkRyS3VDZ3lTUkY3cCtYTGZXYXBFK3luUEdwMlRKZVV0K1E4cFMzRktVWm1OUU81OXozM2VON2s3ajNISmJMdTh0dGJXbitDSWpsRllqaEZZMGlJNFJHajFHN0I0LzJmeGZ0R0hzWFlzRk52MnpiMDZhVXIvRGEwODdYdFBHOTdUTnJXbVp0TXpMZkE0RDdJQUFBQUFBTUVmTTBQcHdhMzZmenFmRXZ3aTRlTy9lMS93RGZyWWZwemYyZkt3dDl3OGRYczkzaVA2ci9BRzNiS2FmaS9wL04rb053ZXQ1aGZRUEYvVCtiOVFPcytnZUwrbjgzNmdkWjlBOFg5UDV2MUE2ejZDMVQ1TFo5M0VhOVAvdnF6TDdtTUZHci92Vk92bFdEK29ZLzZYTzlCL3RPcjBlM1c5ai9BTDd6ZjJYWnBjUmlCcytBQUFBQUFENXR6VFZPUTFObFJYdGJDdUtXNGhTYTYxcXJHTTFNZ1dFQ1kwcGlWRG1SWDByWmZqdnNyTktrcUl5TWpGL2JibmNiTGNVM2UwdmJGdXNWb3RTOVptTFZ0RTZ4TVRIR0ppZU1URGhkeDdkc084YkROMnJ1dUhGdU8yN2pGYkhseFpLeGZIa3gzaWEycGV0b21MVnRFekV4TWFUQ3VmenU0THVhQ2VsYlUxeXYxdlVkdGJJWWxVNzd4cnNzQ3NMRlpGRXJ6ZGZkVS9iWS9Ma21wRVYvM1Q3SHVXbis4KzE1emRUMm05MnFlWFVyMkR2bnllUlk4ZXNYaVBsM0ZhODdhUkdsTWtScE5xL2x0eHRUVGpXdmpuOTFIMnRaUGFmTGZ6dncyZnFlMzI0M0VWdGh0T3VUWTVNay9KajF0T3VYQmEydGNWK042Y01lWHFuVEplTVJ4WnI5SHNKK2QrMk15WnNsc25DUHlOS2RJZmlaRGl6VkdtajBOSkdLSnFST2o4elNaQzNNSzRuVjY5QlJOVlQxTWhibXFtWStESnppenhYenZsTm5MbU40eTR4UzQxUitveTgzekdjMnQ2SGp0WE1mY1EyaU5GUXBDN1M5bnR4M3ZVNGhMYlM2cHBSdU90TkpXNG5wUG0zbVhiUEN1MlJ2ZDdFNU4xbDZvdzRvNFRrdEVScnJQNnRLNngxMzBucGlZMHJhMHhXYzFleDNzZDVSNzQrVHoyYnNscTdicysxNkw3emQzaVpwdDhWN1RFZE5ZMG5MbnZGYi9SeFJOWXZOWm05OGRJdGV0cHpUT2x0ZWFFd1d1MTlyV2tUVVVrSS9XSmtsNVpTYmpJTGQxcHB1YmY1QlltaHRkamJ6dkJUM3E3VU5OTnBReXcyMHcyMDBqU255RHlMdXZrL2NyOTA3dms2OXhiaEVSd3BTdXN6RktWL1ZyWFg4Wm1kYldtMXBtMCs1SHR6N2IrSSsxZmpHSHhMdzNiUnQrMjR2bXZhMDlXYlBsbUlpK2ZQazBpY21XK2thenBXbGF4WEhpcGp4VXBqcnlzUGlPOWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU90NzgxLzhveHk1K0ZtdytwZFVMOWZ5d2hIcUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR1NHZytJSEp2bERaTjF1aHRKNTdzWkNwSHFraTlxYVoySmg5YStScEkyN25ON2RWZGlGS3N1NzJKVTVrejlvajZDSm1JNWl5RnczK1Rnc1JaTlBtbk5uUDQ5azIzNnZOWHBUVmRoTWFpdkdaRTZkZG1XeVZOd3B2WWtqOEtUR3BHV3o3aU0yTE15NkdkRTMrQm9zKzZ4MVhyalMyRlUydWRUNFZqbXY4SHg5andLbkdzWHJJOVhXUmlNaThhUXR0aEpMbHo1YXk3NUVsNVRraVM2WnJkV3RabW83Zk5MZjRBQUFBQUFySS9LYlA0QytNZndzNWY5eDdRdVU1b2xUZkZ3QUFBQUFBQmQ1K1RXZkVYMnYrTmxuWDRIOUVpMWZtbUZoVVVDdEI4cG9zWkRYSGZqZFVKSnYxV2R1aTlzWGpOSm02VWlyd2V3alJpUXZ1SktXemJ1SGU0dWhtWmtuMGwwUHJjcHpSS21nTGdBQUFBQUFDNDE4bVR5MnBsYVQ1TzRJMmNjcjJoMm5pR1d6RWt0SHJibFRsbUpQVTFhYW0raE9ISFptWVhLN1Q2bVJLY012UVorbTNrSVdkQmJTQUFBQUFBQUFBQURRMmRaVzNkYllVMXpYd2JlbnQ0TXVzdGFxemlSNTliWjFzK081Rm5WOWhCbE51eFpzR2JGZFcyNjA0aFRiamFqU29qSXpJQkZ2eEI4bzdqaHc3NUY3YjVDNE8zSXVyRExaYTJkU1k1ZFJHMzR1amNkdDRTRlpaVTQzUGNrUHUya3U0czNYbUkwMTF0dVZCcENSQ0picHVTMzVOVTJtWTBFcXdwQUFBQUFBQUFGVGo1VUovdU8vd0RFdi95L2k1ajlVU3FjQzRBQUFBQUFBdnBmSjh2eWMrTmZDenRMNnFRUmF2OEFtU204RkFBQUFBQUFDaHg1OVhMMS9rTHpCbjZneDJ6OVoxbnhrUk93S0ExSGRXY1N5MlZNT0k5czY1Y1FaSS93bXN0SWpORVJHU2twT29XNDJmYStycmRwR2thb1FjQ3NBQUFBQUFCZWk4ay95eFlYRlhXbGZ5SzNManJLdVIrMHFOdVZVMTlwR1F1WHAvWDl4SGJmaDBFWnA1QnVWMmE1SkRjUzlkTys0Zml0TFJYZEd6Ymwrc1dyVzE0UnlTbnNGQUFBQUFBQUFBQUFDbFA1NjNsa3dPUCtWTDViNk14NUZmcHpZbCtjYlorS1U4UHc2eldld2JoODNJMTFYeDJPcmRkaHVkVEhGcFMwbENJMWRhZEdHelMzTGlzTjNhVzE0VHpRcmtpc0FBQUFBR1J2RWprWGsvRTdrYnFmZjJLcmtMbDYreXFIT3VLeU9za25rT0l6U1hWNWpqTHBMY2FhVWkveG1iS2lwTmFpSnR4eExoR1NrSk1vbU5ZMEhadllmbG1QNTdpT0xaMWlka3hjNHJtbU9VbVdZemJ4VmQ4YTF4L0k2eUxjVTFsSFVYb1V4T3JwamJxRDl0S2lGaExjWUFBNHIzaHQ3RTlBNmYyVnVyT1pIcStLYXh3Mjl6RzRKTHJMVWlhMVRRWFpNZW9yemZVaHB5MnZKaVc0Y05vejZ2U24yMnk2bW9pRXhHczZEckZOMWJiekRmVzI5aTdtejZhYy9MOWw1ZGRaZmVPOXkxTU1TYmVZNUlhcllDVm1ac1ZWUkZOdUpEWkxvaGlLeTIya2lTa2lLL0VhUm9oeGdBQUFBQUFBQ1JYeTNmTHcySDVndTQxWXBWU0plSjZtd3oxQzEyNXNvb2FuMjZLcGt2bW1KanRCNHJTNFV6T01sU3k2bUN3NmZoc3ROUFNYU1cyd2Jia1d0cEE3QjNSZWk5WGNidFhZcnB6VG1Ld2NRd1BFSUpSS3lzaUYzeUpVaGYwU2ZjM005enJLdUwrNGxHcCtaTWZVcDZROG8xS1AyQ0t6TTY4WlM1Y0VBQUFBQUFBQURqWGIybnRaNzYxNWttcWR2NGRUNTNnR1dRL1VydkhicGxhNDc2VXFKMk5MaVNXSEdaMVhhMThoQ1hvc3lLNnpLaXZvUzQwNGhhU1VTSjA1Q2d2NW92bGdaNzVmK3drWFZNdXl6TGpoblZ3L0cxdnNGOXRDNXROWU9OU1o2ZGU1MnFNMjFIaTVYQmd4blZ4cEtVTnhyaUl3dDlsTGJqY3FOR3ZWdHIrbENLZGxsMlE2MHd3MDQrKys0aGxsbGxDbkhYblhGRWh0cHB0QktXNDQ0dFJFbEpFWm1aOUNGUXQxK1ViNUpMV05GalhKN21qaWpjakpESnUzMXB4OXlhc1M1SHhzeVUyN1haaHRLdWxtcHVWa0NpSTNJZEErMGJkZVJvZG1rcVVmcTBTM2EvcEF0UGkya0FBR1BQTHI0cUhKMzhYbmRQNE44bEV4ekhWN2krZ0FBQUFBQUFCS3o1WW5sYzdHOHdIT1hyaTBldGNDNDY0ZFBUSHozWmJVUkJ6TGF4UTIzSUxCc0FSTmFYRHNzcGtzdW9YS2tLUzVGcUl6aVhueVc0NUdqU2FiVzAvU0w3R2pkRDZrNDJhMm90UzZUd21ud0xCTWViL3dTcHFtbG05Tm11Tk10UzdxOHM1SzNySy95Q3hKaEJ5Wjh4MTZVK2FTNzFtU1VrVnFabWVNcGN1aUFBQUFBQUFHaHM2eXR1NjJ3cHJtdmcyOVBid1pkWmExVm5Fano2MnpyWjhkeUxPcjdDREtiZGl6WU0ySzZ0dDFweENtM0cxR2xSR1JtUUNnTjV5bmw3UmVEL0lLTmZhNXI1RFBIL2RudnRrZXZtQ1E0N0d3aStoeVcxNVRyUTVhMXVMY2lVcHptSlZXdDR5Y1hXeWtNbXA1MkkrOHE5V2RZL0ZDSGdWQUFBQUFBQU04UEsveWhlSWVZVncvdFczeWpxbDcwd3JGemNVNHRvbEl6ZWY5WmJqSGMzN296bE4zNXRrbjl5czE5cXZRWmlMZmxrZGs4TENRQUFBQUFBQUFBQWNFY2lPUnVydU1PdTUreHRwWFpWOEJzM0lsSFN4RXBrNUJsdDU0RGowV2d4NnU3a3FsVHBIaCs2Y1dhSTBadnE2KzQyMGxTeSszMkR4L3Vma25jSzl2N1pUcXlUeHRhZUZhVjE0MnZQcEVmRGpNendyRXp3ZFU4eTh6N0Q0TDJhL2V1L1plakRHc1VwSEhKbHZwckdQSFgxdFByTTZWckh6WHRXc1RLbjF5dTVpN1U1YWJEVG1PWlRQZVdncFhYMnNFd1dubFNmZVBENjlibmNsYlNscVNxeHlHWWxDRlRiRmFVT1NGcEpLRXNzSVpZYTIxOFQ4WDdkNGpzNHdkdjFuZHpwT1ROUEM5N1Irajh0WS9WckU2UjZ6TnBtMCtiUHVWNS8zajNPN2xiYzk4aXNkcmlMVXhiV09PTEhqdHppWW5oZTlvL3dCWmttTmJUd2lLMGl0SzdGeEROV3JZbTY2eVVobXpTbEtXblRNa3R6K25vOXlYUWt0eWZucDloWHNwL3dDaVdYKzBkNnJ1NGpiN21ZamMraytsditLMzRldnA4R21Yblh0N203SmEzZGUwVnRrN1JNek5xeHJOc1A2ZWN6aitGdWRlVnY1VThoanNMRmdBQUFBQTVvMFR2dlluSG5ONG1iYSt0VngzQ1d5MWVVRXB4OWVQNVZXTnFYM1ZkOUFhZGFUS1pKTHl6WmRJMHZ4bkZlSTB0Qy9TT3ErWCtIZGw4MDdWYnRmZU1lczhaeDVJaVBxWXJUK3RTMHh3NVIxVi9MYUkwdEU4Tk1uZTFIdTM1aDdPK1Q0L0pQRTg4eFdaaU54dDd6YjZHNnhSci9ONXFSTWE2YXo5TzhmUGl0UFZTWTR4Tm9Ialp5WjE1eWF3aHZLTU9rbEF2YTV1S3ptZUV6WkNITHZFYldRaHp0WWZVVGJCV1ZQTlV3NHFEWU5JUzFLYVNaS1MxSWJmanM2RitiZUQ5NThHN3JQYis2VjZ0dGVabkRtckh5WnFSNnh6NmJSckhYam1kYVRQNjFacmUzdU43Tis5SGlIdlg0eFh2M2pXVDZmY01VVmpkN085b25OdE10b241YjhJNjhkcHJhY09lc1JUTFdKNFV5VnlZc2VSUTZheTZBQUFBQUFEQTd6T0Q2Y0Z0L24vQVBnMkpmaEZ3OGQ5OXNaMDg1Mk0vam0vb01yRFgzQlJyN1JkMmo4ZHAvYmRzcGplSVkyOTY0ZWFmMG9QRU1PdUQ2VUhpR0hYQjlLRHhERHJnK2xDMXA1S3A5ZUlkNmYvQUgxNW45ek9DaldMM29uWHluQlAvd0FCVCtsenQrZnRXcjArMysrai92ckwvWmRtbDJHSW16QUFBQUFBQU9NZHY3ZndUUm1DVyt4TmlXNmF1aHFrazB5eTBTSHJXOHRYa09xZ1VGQkFVNnlkamRXSnNxOE52dVFoQ0VMZWVXMHcwNjZqN3ZqbmpuZHZLdTdZK3pkbXgvVTNlVGpNendwU2thZFdUSmJTZW1sZFkxblNabVppdFl0ZTFhejBqM0Q5dy9GZmE3eFhjZVllWWJpTUhhc0VhUkVhV3k1OHN4TTB3WUtUTWZVelpOSjZhNnhXdFl0a3lXcGlwa3lWcS9jck9XZWY4b2N0Vk11WFhxVEFhYWJJY3d2Qlk3eEtoVkxLMGVBbXh0SFcwdCsrK1F5bzZmb3NoenFscnZXMndsdHN6Slc5SGdYdDUyandYdDMwdHRFWmU3Wkt4OWJQTWZOZWVmVFdKL0pqaWVWWTU2Uk5wbTNGNGdlKzN2OEErVisrUGY1M0hjYlcyM2ltMnkyblo3R3MvSmlpWTZmcVpaaUkrcnVMVi9Oa3RyRmVxMU1VVXBNeE9KNDczTldCbmdXNXFsNE1oYm1xTk5Yb1pDM05VY25vYWZuZjFCYm1FeGI0dlpwZzNEOVBvU1Iray9iUDlBaGV3YldjMDZ6d3gvOEFEa3FtMmptWFRXNWMvd0JEWnJYNTNyaTVYVTIwUHRZbVJIQ1UvVTMxVXA1cDJWU1hzRHZRaWZXVERhTHVMcWwxdFpKY2FXMjZoRGllUDVINHIyWHlydEZ1eTk0eFJmYXp4ck1jTDQ3NlRFWk1kdjFieHJ6NHhNYXhhTFZtWW52SHR6N2srWGUxZmsrSHl2dy9jemc3aGorVzlaK2JGbnhUTVRiRG54NnhGOFY5STFqV0xWbUl2anRUSld0b3MvOEFGM2xYZ0hKL0R6dDhmV2lrekNwYmFSbCtDekpiVDFwU1BxN1VGTmlLSW1sV21QekhEL3dlWWhDU00vY09KYmRJMEZvZDU5N2ZkNDhDN2wremJ5Snk5dHlUUDBjOVltS1hqK1RQUG95Uit0U1puNDFtYXpFdmNQMk05K2ZFL2ZIeDMvZUhhSmpiZVJiZXNSdTlqZTBUbHcybmgxMW5oT1hiM24vVjVZckg4bThVdkUxWlFqb1RPUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHJlL05mL0FDakhMbjRXYkQ2bDFRdjEvTENFZW9rQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWNyYXMzcnVyUjlwNzlhYzJ6c2JWMW1ieVgzcFdCWmxmNHNjdFpKSkJwbnRVOCtJeFlzdU5wN0Z0dnBjYldqM0tpTlBvRFNKRTJQR0g1UkJ5MjFVL1hVdklDa3hqa2RoemEybVpWbktqUThCMmRFaXBXaHNsUk1qeHl2VGpGcjZ0SE5SbWlkVHVTcFMwcDc1alptdFowVFNKNUMwZHczOHl2aWR6aGd0UjlRWjJkWHNCRVY2VmFhZ3p4bUxqV3lxNXFNVGk1RDhhcEtiT3JjbmdNTU4rSzVLcDVsZ3d3MnBKUHFhYzZ0cHR6V1k1cFo4aUFBQUFBQVZrZmxObjhCZkdQNFdjdis0OW9YS2MwU3B2aTRBQUFBQUFBdTgvSnJQaUw3WC9HeXpyOEQraVJhdnpUQ3dxS0JYUCtVczBEMHZoN3BiSkcyVzNFVW5JK29ySkRoTXFYSmp0WCt0ZGp2SmNKNUxhaVlocmZvMEljN2xKSlRxbWk2R2ZUcFhUbWlWS0VYUUFBQUFBQUVpUGxrYzZyVGdQeVVxOW1Tb2MrODFsbGxhckNkdll6V3BZY3NMREVKa3lOTmF1S1JtVTR6R1ZrZUxXY1Z1WkZKUzJ2SGJKNktialNKSzFsVGFOWS9FZGhocURjdXJ0K1lCUmJSMDdtMUZuK0NaRXg0MVprRkJMS1F4NGlVb1ZJcjU4ZFpOemFtNGdxY0pFbUZLYlpsUm5QY090b1Y2QlptTk9hWEpvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXFjZktoUDl4My9pWC81ZnhjeCtxSlZPQmNBQUFBQUFBWDB2aytYNU9mR3ZoWjJsOVZJSXRYL01sTjRLQUFBQUFBWXpjeXVRVmZ4WDR1N3UzNU9PT2NqWGVDV2xoanNhV1NUaTJPYldadFVPQjFNaEtuR2pPTmJabmF3WTd2YVpySnQxUnBKUmtTVG1JMW5RZFl6YTJ0bGVXbGxkM002VloyOXhQbVd0clpUbmx5SnRoWldFaHlYT25TNURocWNmbFM1VHluSEZxTTFLV296UDBtTDZHZ0FBQUFBQUUyM2tZY0lZM0tubEtXek0zcTJiRFVIRzVkSG1sOUNtSjdvdVM1L09mbXVhNHhweHBTVGJsd1dMQ25mdFpxRDdtMU5WNkk3cVRSS0xyVGVkSS9FWDJCWlNBQUFBQUFBQUFBQUE0NTI3cXJDdDVhd3p6VUd4cXBGMWhHeHNZdGNVeU9BWk5FOGNDMWpMWU9YQWVlYWZUQ3RxMTQwU1lVa2tHdUxMWmJkUjBXaEpoRTZjUjFtUEtEUUdWY1d1UUcxdEE1bWZqWGVzOHRuVWFMRkxYZ3MzMUc0bHF5eGZKb3JKcVdwbUprMk5Ub2s5cENqNzIwU0NTcm9vaklyOFRyR3FIQW9rQUFBQUFGNzc1UHp5TFZ1UGc4enJLNHNQVzhxNDVaZlk0Q3R0NThucHE4R3YvRXl2Qkp6eGV5MUVZS2RZVkVWSit3elRrWHRDMWVOSlNuUUZBQUsyWHlrWGtvN2hHZ05YY1pxR2Y0TnJ1M0tuOHZ6UmxoOVBpbGdHdG5ZVWl2clowZnQ3MHg3L0FEaXhoU1dIT3BkVlVicU9oa1o5SzZSeDFSS2w4TG9BQUFBQUFEa0RWT3NNejNWc3JCdFM2N3FWM2ViN0V5ZW94TEdheEt2Q2JmdGJtWTNFWWNseURTcEVLdWllSWIwcVF2bzNIanRyZFdaSVFveWNoMlVIQ3ZpVnI3aFR4N3dyUm1BUm1IVlZNVkZ0bkdUa3dUVTdPOWhXVVdJbktNdnNsR1hqR2M2UkdRekVhV3BadzY2UEhqSlVhR1VtTEV6ck9xV1Z3Z0FBQUFBQUFBQUFCeFZ1N1N1dCtSR3JNejAxdHJISXVVWUhuVlEvVVhWYklKS1gyZS9vNUN0cW1XYUZ1MWQ3U3pVTnlvTXRybzdGbE5JY1FmY2toTVRweGdRMytYbDVIR3IrSWV6ci9jbTNNZ3A5NFp6UjVSUFhwSmw2cGRaeC9BNkdIWXZPWS9tRm5BbklTMVo3UGZoSlpYM2syY0ttZkpaeEZQdStGS2JxdGZXTkJQS0tBQUFBQmp6eTYrS2h5ZC9GNTNUK0RmSlJNY3gxZTR2b0FBQUFBQUJtRndFNHoxbk1MbDdwWGpyZVpETHhhaDJEYzM3dC9kVjhkdVRaTTBHR1laa21mM2tLc1M4ZmdNV2x4VllxOURqUHVKY2JqUHlFT3JiZFNnMjFSTTZScU95TjFicTNYK2xOZjRycXpWbUsxV0ZZRGhWVXpUWTNqZE15YlVPQkRhTlRpMXJXNHB5VE5uelpMaTM1VXA5YnNtWEpkY2VlY1c2dGF6c0piL0FBQUFBQUFBQUFFVkhuUmNlWW5JTHkvTnpwWmhOeU1xMDdBYjNsaU1rMmZGZWlQNjlha3pjc1F5U2VqeWpzTmVTTGVPbEtUNkc4NDJveVYyRVIxVm5TUjE1QXZJQUFBQUFBQmxsd0krUFJ3dS9HeTQ1L2hndzRSUEtSMmJnc0pBQUFBQUFBQUFHSzNMTGwzcTdpTHI1N0xzNm1wc01qczJaak9DNERCa0lSZjVuYngwTjlXWTVHaDczdHBZVGo3YXAxZzZnMllyYWlKSk92clpZZDdONHY0cjNMeW5mUnRkbEhUdDZ6SDFNc3g4dU9zL0g0Mm5TZW1zY1puNFJFekhRL1AvY0xzZnQ5MmllNGQwdDE3MjhUR0RCV2Y1ek5lUFNPZlRTdXNkZVNZMHJITHF0TmEycDVja09URzBlVW14Wit4Tm0yNXlIVktlajQ1alVKeDlHTlliU3JXbFRWTGp0ZTY2NFVabnRiU2I3eWpWSWx1bDRqeTFyUHFXMTNqM2ozYmZHdGhYWWR1cHBITzk1MDY4bHY1VjU5ZndqbFdPRVJFUE9uelh6UHZubmZlYjk0NzVrbWJjWXg0NDErbmhwNlV4MW1aMGpsMVQrYTgvTmFabHdEM0Yra1B2UkxwMDBlNlZxU1pLUW95VWt5VWxSR1pLU1pIMUl5TXVoa1pHUXFpMms2eHJFclY4VVdyTmJSRTFtTkpqMG1QaE1PYXNPenRNdndxcTZkSkVyMElpejNGRWxFbjJDUXpJVWZRa3lQYVNyMkhQWVAzWDdydWZaKzl4bDAydTh0L09mcTJuMS9DZngrRSt2NmVldm5udnR4Ylk5ZmVmSDZUT3o1NU1OWW1aeC9HMUk1elQxbXZPbk9Qay9KeW9PMHNNZ0FBQUFEa2ZWTzJNODBybXRYbjJ1NzJUUjM5YW9rTDdGT0tnVzljdDVsNlhTWHNGTGpiVnBTejFSMGVLdzU2TzVDWEVHaDFEYTAvQzhpOGM3UjVWMnUvYU85WW95N1MvR1A1VkxhVEVYeDI1MXZYV2RKajBtWW1Kck14UGRmYjczQzhyOXNQSnNIbGZoKzZ0dHU1NFowdEhHY2ViSE14TnNPZW1zUmt3MzZZNnF6eW1JdldhM3JXMWJPdkZEbDNnbktMRjFQVjV4c2MySlRSdkV5ekFYNXlKRTJJMGh4bGozOXBYRm9ZZXRzYmZla05wOGNteVZHZWNTeThTVkthVTdvZjdnKzNYZC9BdTRmVDNHdWJzK1NmNW5jUldZcmJuUFJmbkZNa1JFL0xNL05FZFZkWTEwOXdQWWY3Z1BGUGZMc1A3UnNKcHRQSzl2VFhkYkMxNHRreDZURWZWeFRwV2N1M3RNMWlNa1Zqb3RhTWVTSzJtdlZsdU1lTStBQUFBQURBdnpPL1J3VTVBZjVHeEg4STJIRHZmdG53ODMyUC9iZjBHVmgzMytqWDJsN3RFL0hhLzIzYktYL0FIL3Avd0JVeHRyckx6ZituVTcvQU5QK3FZYXlmVHFkL3dDbi9WTU5aUHAxTy84QVQvcW1Hc24wNnJYWGtvbjE0ZzN2dzI1bjl6R0NEV24zay92UGcvcUZQNlhPM3UrMXVOUEFkOUVmL3RuTC9aZG1sNkdKV3lnQUFBQUE0UDM3eUIxNXh6d2QvTmMvc0ZwSjFia1RIOGVnRzA3ZlpSYXBiOFFxNm9pdU9OcE1tMG1TbjMzRFN4R2JNaldvalVoS3UxK0llSGQ1ODE3ckhhK3owNWNjbVMyc1k4VlA1VjVqNDhxMWpXMXA0UkhDWmpHSHV4N3VlSCt6bmpGdkp2TE0weDFUTk52dDZhVG4zT1dJMStuaXJNeHk0VGZKYVlwanJNVGFkWnJGcXZmSXZraHNQa3RtNjh1emVXbVBYd0NrUk1UeEtBNDU3eDRwVlB1cGNWR2hOcjdUbFdNencwS21UWEM4ZVV0Q1NQc2FiWlphM3g4TThHN040UDJxTzNkcXIxWnI2VGx6V2lQcVpieEhPM3dyR3M5RkkrV3NUUE8xcld0NGNlOFh2TjVmNzFlVHo1QjVQa2ltenhkVmRydEtUUDBOcml0T3MxcEUvbXlYMHJPYk5hT3ZMTVZqNWNkTWVPbVB4a08yVFZpVGhMOHpSODRVekh4T01QeU11Z29tdndURXZBdHpWTHgwRnFhcGV5R3U0K3AraFA2NS9wZm9DNWkyODVPTnZ5ZnhxWjROVVJFUmRDOUJFUG94RVJHa2NsTHlKUzN2cnJZMlo2bnpDbnp2QUwyVmoyVDBiNXZRcDhYc1doYmF5N0pFS2RGZFN1TlBycHJKbTIvSGVTdHAxQm1TaU1mSzcxMlR0ZmtYYmN2YU84WXE1dGhsalMxWitQcGFzeHhyYXM4YTJpWW1KNVM3UDRkNWw1SjRENUZ0dkt2RTkxazJmZTlyYldtU3VreE1Ud3RTOVoxcmt4M2o1YjQ3eE5iVm5TWVdhZUlQTXZET1QyT2xYdmxHeG5hdEhCYWN5akQxdWtsbWNoSkpiZHlIRTFPdk9QejZKMTB5OFJ0Um5JZ09MSnQzdVFiVDcyaW51UjdaZHo4RDN2MXFkV2Z4L0xlWXhadE9OZldNZWJTTks1SWpsUDVja1IxVjBtTFVyN2EvYng5eUhqZnZoMmY5a3k5R3k4ODJ1S0ozVzBtZUY0amhPNDJ1c3piSmdtZnpWblhKZ3RNVXlkVlp4NWN1YVl4ZTJWQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUIxdmZtdjhBNVJqbHo4TE5oOVM2b1g2L2xoQ1BVU0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUErblMzZHpqZHZXWkJqdHZaMEY5U3pvMW5UWGRMUGxWVnZVMlVKMU1pSFlWbGxCZFltd0owUjlDVnRPdExRNDJzaU5Ka1pBTFpubGMrZSs5a0Zoam5IN25IZVJHYkdhdURSWU55SGtwandJc3lVdFRVT3ZwOXVwYVF4Q2hPdkdhVUl5SkJJYU5YUTdGS1ROMmNkdTFQV0JhdVNwSzBwVWxSS1NvaVVsU1RJMHFTWmRTVWt5NmtaR1IrZ3hiUzhnQUFBckkvS2JQNEMrTWZ3czVmOXg3UXVVNW9sVGZGd0FBQUFBQUJkNStUV2ZFWDJ2K05sblg0SDlFaTFmbW1GaFVVQ0lyenk5WXU3Szh0emRiOE5qMW16MXZZNEpzNnZhS09sNVhoWS9sdFpYWkErbFpwVXVMNm5pRjVZdkc0Z3VwcGJOQm1TRnFNcXFmbUhYekM4Z0FBQUFBQUFCa0Z4ODVWOGlPS3VTdVpYeCsyMWx1dExTVXVPcTBqVTB0cVZqMThVUlpyak41TGlWdXhZNHRrakxCbWZZbWREa0VqdVYyOU9wOVltSW5tSi9PUC95bHJhVkN6RnFPUzJoOFkyQ3kyaGxoZVk2c3RwR0RYL1kzMEoyWlk0dmVKeUtndUp6NWVreWl5cVpoSit3Z2k5QXBta2VocW1CMUo1OFBseTdRYmpOMit6c3AwL2JTU1QyMCsxOEV2SzgyMW4ya3BMMS9oNk16eEdPbEpxL2RPMkxaR1JkUlIwV1NrbDFweVI0OWJtUzJyVW04dFI3TFc2aEt5allQc1RFOG5uTjl4cExza1Y5UmJTNTBWNUtsRVNrT3RvV2xSOURJajlBalNZSE5RZ0FBQUFBQUFBQUFBQUFBQUFBRlRqNVVKL3VPL3dERXYveS9pNWo5VVNxY0M0QUFBQUFBQXZwZko4dnljK05mQ3p0TDZxUVJhdjhBbVNtOEZBQUFBQUFLMWZ5bFBlam1LOGZOSjZBckppbVptM05nMmVhWkMweXZxcDdGTlhWOFp0aXZtb0pYdUl0aGxPWVFaVFhWUFZidFdmYVpkaWlPdWtjZFVTcGlpNkFBQUFBQUE3RUh5YmVORWZqVHdMMURDbVZwUWMxMjVBVHUzTzNYR3libU9XR2Z3NGMzR29NcEt1NTZPNVNZSXpWeEhHRkdYaFNXM2pOS1ZyV1FzMm5XVXBUUlNBQUFBQUFBQUFBQUFBQ29SOHBaNDRNVkdaYUs1VlVrSkRUZVlWMC9UV2ZQTk5vYWJjdmNkUkt5ZkFwNzNZMzNTckcwb3BWdkdjY1dydVRIcVk2QzZrbjNOeWsraUpWYUJjQUFBQUFCWVkrVGc3bGN3cm1KbitvSmN0YlZUdTNVMWc1RWlKV1pJbDVsclNlM2tkTXRiZlhzWDZ0aVUvSU9oL3VrbXYwZWcxQ2k4Y0NGM1lXa2dEcjZ2UEkzaTV1bnpFTnNRWTByMW5IOU1WK1BhV29lanFscGJjeFdLN2E1Y2hUZlUyMm5XYy95RzJaUHQ5Sm9hU2F2VDFJcjFJMGhDSVlWQUFBQUFBQUxTM3liZmlhMWVaZHRMbVJsTlkyOUR3Z3BHb3RVdXlXa3I4UExMcXVpV1d3c2dobWEwdXg1VlJpbGpEclduU1NwdDVxNWxvNjl6WmtWdTgraEMzd0xhUUFBQUFBQUFBQUFBQUFBQUFBQUFHUFBMcjRxSEozOFhuZFA0TjhsRXh6SFY3aStnQUFBQUFBRXNma2IvbFNPTC84QUxYL1IzMjJLYi9sSFlWaXlrQUFBQUFBQUFBQUcyOHl4ZXV6ZkVNcnd1NGJRN1VaZmpkN2k5cTA0ZzNHM2E2L3E1VlRPYlcybHhwVGlGeHBhaU5KS1Naa2ZUcVhzZ09xZ253WlZYT20xczVyd0p0ZExrd1pqUGUyNzRNcUk4dVBJYThSbGJqVG5odXRtWGNsU2tuMDZrWmw2UnlFTklBQUFBQUFNc3VCSHg2T0YzNDJYSFA4QURCaHdpZVVqczNCWVNBQUFBQUFBQXdmNXJjNXRhOE9zTjlZdEZSY3IybGVSZS9DdGFSWjZJOCtlaHh4NWozL3YzbTBTSGFYRm9qckN5TjgyemNsUElObGhLbEU0dHJ1SGlQaHZjUEs5MzA0OWNYYmFUL09aWmpXSS93QTJ2THF2UHc1UkhHZlNKeGw3ays1M1p2Ynp0M1huNmMvZk10ZjVuYlJiUzF1Y2ZVdlBHYVlvbUorYlRXMHgwMWlaMW10UGZkTzd0azhnZGdYT3k5cDVIS3lMSmJkeFNXL0VXNGlzcEt4THpyc09neDJ1VTQ0elQwTmQ0eWlaanQranVVcHhacmRjY2NYdFYyanRIYnV4N0duYisyNDR4N2VuNzlwOWJXbm5hMCtzeitFUnBFUkVlZW5rdmtYZWZMZTdaTzlkOHpXemIzSlByK1dsZFptTWVPdktsSzZ6cFdQeG1kYlRNenhUMUgxSWwxK2FTOXlVWW5YNHFKcjhYc1NoTVQ4RlBTOXlWK3I4MzlVVHFvbXNPWDhNenp0TnFwdkhqTkJtbHFIWU9HWDBQMGRxV1phejZkVWRlaEpjUDBsL2JlajBsMjdzL2ZaalRhNzZkYThxMytINFcvNC8zL2l3VjUvN2F4ZUw5NzhjeDZYalcyWEJYOWIxbStLUGp6bWFSd245U05mbG5tUWR4NThZNU1CekUxblNlRXdBQUFBQU4xWVJuR1c2M3ltbnpiQnI2ZmpPVTBFbjF1cXVLMXhLSkVkeFRhMkhtbG9jUzVIbHc1a1oxYk1pTzhoeGlRdzR0dDFDMjFLU2Z6ZTc5bzdiMzN0K1h0WGQ4Tk0rd3pWMHRTM0tmV0ppWTQxdEU2VFcwVEZxekVURXhNT3crSytWK1JlRWQrMi9rL2l1N3k3THZtMXYxWTh1T2VNYXhNV3JhSmlhM3Blc3pXK084V3Blc3pXMVpyTXdzdmNPZWJlSThtS1p2SDd6M3V4UGI5VkZSNzdZc1Vva1E4bGJZamQ4cklNT1RKWDZ4SWdxTnBiajhJMVBTYTh2UXRicmZhK3ZSZjNLOXJlNWVDYnFkMXQrdmNlT1pMVDBadE9PUFdlR1BOcHdpM0tLMzRWeWVrUk90WTlzUHQxKzVmeDMzdDdYSGJkLzlMWWU0TzN4eDliYTlXbGM4Ulg1dHh0T3FlcTJPWmladmkxdGt3Y3J6ZW5UbHZuV01VdG9BQUFBR0JYbWVmRVQ1QWY1R3hIOEkySER2ZnRuL2ZmWS93RGJmMEdWaDczOS93QUp1Ni9wMnY4QWJkc3BlamJSNXdnQUFBTFhua29mRkJ2dmh0elA3bU1FR3RYdkovZWZCL1VLZjB1ZHZiOXJ2OXd0OS84QVdjdjlsMmFYc1lsYkpBQUFBTVp1VG5LWFgzR0hEVHZNbmQ5OXNwdFdaVGVHWVBDZlEzYTVIUFpTUmVJODRhSFNxcUdJNnRIcmM1eENrdEpQdGJRNjhwREsrOWVCK0FkNTg4N24reWJDUHA5dnh6SDFzOW8xcGpyUHBITHJ5VEd2UlNKaldlTXpXc1RhTUorOS92cDRqN0grT2Y3MDc1YjlvNzd1SzJqWjdLbG9qTHVMeEhPWjBuNldDa3pIMWMxb21LeE9sSzVNazF4MnEvYnEzWnNEZnVkMk93TmkyeFQ3V1lSUjRGZkVKNlBSNDVVTkxXdUpRNDdYT3Z5UGUrcWllSW95STF1UFBPcVc4KzQ2KzQ0NnZmVHhmeGJzL2gvYWFkbjdMajZOdlhqYTA2VGt5WG5ua3lXaUk2cnpwOElpc1JGYVJXbGExanc1OXkvYzN5MzNaOHF6ZVhlWTdqNnUvd0FueTQ4ZGRhNE52aWlabW1EYjQ1dGI2ZUttc3pwTTJ2ZTAyeVpiM3kzdmUzRXc3RTZBQ0pqVWVPZ29tbzlUU1JpM01hR253NXZ5TkJrS0pnMStMeWh2cjZWZXg3UmZQL3NDcW1MV2RiZmxUTXYzSEpRQUFBQSsvaTJVNUZoR1JVK1c0bGNUcURKS0NjelkwOXhYUEd6TGd5MlRQdGNiVjBOSzBMU1pvY2JXU20zVzFLUXRLa0tVaytIM0R0K3k3cnNzdmJ1NDRxWnRqbXBOYjB0R3NXaWYrR3NUR2t4TVJNVEV4RXZxOWk3NzNqeGp2RzM4ZzhmM0dYYWQ1Mm1XTW1ITmpucHZTOWVVeFBLWW1OWXRXWW10cXpOYlJOWm1Kc2s4S3VjK1BjaTY2TGcrYUxoWTd1ZXRoTFhJZ29KTVdvemFMRVFhbjdmR2lXNHJ3N0JwaFBpVEsvcjNOa1NuV2U5a25DWTBnOTBmYWZlK0ZacmQxN1gxWi9HTDM0VzUzd1RQS21YaHhyTThLWk9VOEsyMHRwMSt6LzIwL2RKMmYzajJkUEdQSlp4YlAzSnc0cG0xSStYRnZhMGo1c3UyMW5oa2lzZFdiYjg2eHJreDlXT0x4aWtMR0dtM29BQUFBQUFBQUFBQUFBQUFBQUFBQUE2M3Z6WC9BTW94eTUrRm13K3BkVUw5Znl3aEhxSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJhcjhrTHphcktEYTRud3E1TTVPdWJTMkhxZU84ZnRrM2tnMXk2YXc5RWVzMVJsRnBKZDZ5S2FhWGF4ajhsMHpjaVA5bGVwU21ISXFZdHUxZldCYmpGdElBQUt5UHlteitBdmpIOExPWC9jZTBMbE9hSlUzeGNBQUFBQUFBWGVmazFueEY5ci9BSTJXZGZnZjBTTFYrYVlXRlJRTmg3VDE1UTdjMW5zTFZXVXRxY3hyWk9FNVRnbDhsQ0czSFBlakxLU2RSV0MyVXVwVTM0N2NXY3BUWm1YUWxrUmhIQWRYYnRmV3VUYWIyZHNIVTJaeHZWTXIxdG1XUjRSa0RLVU9wYU8weHEybFZNdCtLYnpiVGpzR1U1RjhXTzUya1RySzByTDBLSXh5STQ4VU9Qd0FBQUFBQUFBQUFBQUdRMkI4dWVWT3IwdE42NTVKYjJ3bU15Wm1tQmpPMk02cUt4WGNUWktROVZ3N3hxdWtOcThGSFZMalNrbjJKNmw3a3VrYVJJeloxOTUzSG1WYStXdzJYSVJ6TmExa2lJNnJZT0RZRGs2SHpKYVZrcCs2Y3h1TGxhajdTTko5dGdralNvK3ZwSkpwanBxSkJkVi9LWTkrVXprZG5jL0hYVldmdzBFVFQwclgyUVpUcksxV1hvVDYwNTcrSzJiWFB2by9kS2JRekdiY1AzSkcwUjlTaWFSNkdxVVhUSHlpRGduc1J5TEEyUkYybG9peWVNa1B6TXN4VDY3Y1ViZFgvYzBzWE92cE9SWGkyelYwU3B5UlV4VUlNK3FqSkpHb3FacEtVdjJuZVJtaGVRZFVkenBEY091ZHBRbTQ3VXFZbkNzdHByeXdxbW52RDdFM2xQRWxydDZHUjFkU1NtWnJERHFEVVJLU1JtUXBtSmptT1p4QUFBQUFBQUFBQUFDcHg4cUUvd0J4My9pWC93Q1g4WE1mcWlWVGdYQUFBQUFBQUY5TDVQbCtUbnhyNFdkcGZWU0NMVi96SlRlQ2dBQUFBQUZGVDVSSnRKZWJjK0krQ015a0toYWEwOWd1S3ZRbTNDV2xpOXloVnBzYWZLZVQyOXpNdVhUWmJXb05QVXlObGhwUkVScVByZHB5UWdjRllBQUFBQU5YQWRpTVRvVDloRVhQZ015NHpzMkEzSlZDY214RzNrTGt4RVRFdFBxaUxrc2twQk9raFp0bXJ1N1Q2ZEFGb2VIOHB0ekd2aVJZRUhoeGhzU0ZDanNSSWNXUHQrMmFZalJZelNXWThkaHBHdkNRMnl5MGdrcFNSZENTUkVRbzZJTldvL09lTTcvbWdZbDkrSzQvMWVoMFFhbjV6eG5mODBERXZ2eFhIK3IwT2lEVS9PZU03L21nWWw5K0s0LzFlaDBRYW41enhuZjgwREV2dnhYSCtyME9pRFUvT2VNNy9tZ1lsOStLNC8xZWgwUWFuNXp4bmY4QU5BeEw3OFZ4L3E5RG9nMVB6bmpPL3dDYUJpWDM0cmovQUZlaDBRYW41enhuZjgwREV2dnhYSCtyME9pRFUvT2VNNy9tZ1lsOStLNC8xZWgwUWFuNXp4bmY4MERFdnZ4WEgrcjBPaURVL09lTTcvbWdZbDkrSzQvMWVoMFFhc01lZW5uV1dmTzdqMWE2R3lialRqdUQrc1pQakdYVWVZUWRsV0dRU3FDNXh5YXMxUHRWRW5ES3RxWDc0VWs2YkJWL2hEUnRwbEd2M1hiMkttSzZUcUlNeFVBQUFBQUROL3kxdG1LMUZ6MjRuNXVjczRNVnJkR0k0dmF6Q1NhaWpVT3dwYXRlNUM4NGxQVlpzSW84cGtHNTJrcFhaMTdTTStoSEZ1TURzcnhZUzBOblpRYWF0c0xpemtJaVZ0VkJsMlZoTGNKYW00c0dESGNsUzVDMHRwVzRhR0k3U2xHU1NNK2hlZ2pNQjFYVzA4OHM5cWJPMk5zKzdXNDVjN0h6ekw4OHQzSGxkN3E3UEw4Z3NNaG5yZFg2ZTl4VXV4V2FqOXN4eUVOaUFBQUFBQUFBN0tmeTFORHRjY09EZkhIV0s0YUlWMjNyeXN6RE1HL0RVbC82ODlobTVuR1RNUzF1ZFhYM3F1enZsd2txVjdETVZDVWtsQ1VwS3hhZFpTem5FQUFBQUFBQUFBQUFBQUFBQUFBQUFESG5sMThWRGs3K0x6dW44RytTaVk1anE5eGZRQUFBQUFBQ1dQeU4vd0FxUnhmL0FKYS82TysyeFRmOG83Q3NXVWdBQUFBQUFBQUFBQU9xKzNaQmkxZTVkdDFrRnJ3SU5kczdQWU1OanZjZDhHTEV5cTFqeDJ2RWVXNDg1NGJMWkYzTFVwUjlPcG1aK2tjaU9TSEdRQUFBQUFBeXk0RWZIbzRYZmpaY2Mvd3dZY0lubEk3TndXRWdBQUFBQUFqYzU3K1lmZzNFUEgzY1h4MDZ6Tk42M2NKdzZQRHlscGRoNGt6SWkrSkV5Zk9reGwrc1JZQkc2MjVHZ2R6VW14TDl3cHRvbFBwNzk0VjRMdlBLTS83Um42c1BacVQ4MTlPTjlKNDB4NjhKbm5yYmpGZlhXZEluRDN1bDd0ZHQ4QjJrN0xaOUc1OG55MStURnJ3eFJNY01tYlRqRmVNVFduQzJUMG1LNjJpb2xzWFpHYjdieks4MkRzYkpiTExNd3lPVVV1MnU3VjBuSkQ2ME5vWllZYWJiUzNIaHdZY2R0TFVlT3lodGlPeWhLRzBKUWtpTGFIWWJEYWRyMmxOanNNZGNXMXh4cFd0ZVVmSDlNelBHWm5XWm5qTTZ0Qk83OTM3bjM3dU9YdXZlTTE5eDNETmJXOTdjWm4waUk5SXJFYVJXc1JGYXhFUkVSRU5sOXgvUEhMMWZMMGg1N3YwQk9zSTZYc1NpRTZ6NkltSHQxRTYvRlJOSWxxSXpFaVpJanhJYkQwcVhLZWFqUllzWnBiOGlUSWZXbHBsaU95MGxUcnp6emlpU2xLU05TbEdSRVhVSnZGS3phMHhGSWpXWm5sRVI2ejhGTmNPVEplTWVPSnRlMHhFUkVhek16d2lJaU9Nek04b2haUzh1THl1V01NVFE3NjVMVVRFM0wzR29keGdXcTdhTjRqR0hPK0lVbUhrV2FRM2lOcVZsS1VKYmNpMTYwbTNXbWZjK2xVc2tvaWEvZWY4QXVUYmQ5ZlpQSHJ6WGE2elhMbXJQSEo2VFRIUHBUbkZyYzc4cS9MeHR1WjdOK3hkTzIvUzhyODB4UmJ1RXhGOEcxdkdzWVo1eGt6UlBDY3ZLYTQ1NFkrZDRuSnBHUG1yblQ1ZXJPZUt1Tnk2SnJHWW1jT0xsMnViNEZHU1RNUE0xZUdwK1RlWXV3MDM0Y1RNSFhVR3FURTl5emFxV2JxVGJtRXNwdllQYWYza3YyV01malhsZDdYN1BHbGNPZWVOc0hIU0taSjUyd3hINWJjYllvanAwbkhwOVBFLzNSL2FMZzh5L2FQY1QydncweGVYVE5zdTcyZGZscHZlR3RzdUNJanBwdTVtTmIwNFUzTTJtOHpYTnJPYUF0NWw2TTg5SGtOT3NTSTdyakQ3RHphbW5tWG1sbTI2eTgwc2tyYmRiV2swcVNaRVpHWFF4dURqeVV5MGpKaXRGc2RvaVltSjFpWW5qRXhNY0ppZlNZZVN1ZkJtMjJhKzIzTkxZOXhqdE5iVnRFMXRXMVowbXRxenBNVEV4cE1URVRFOEpmbUsxc0FBQUI5ZWd2N3ZGYnVxeVRHN1dkU1gxSk9qMlZSYjFzaHlMT3I1MFZ3blk4bU5JYU5LMjNHMXAvU012UWZVak1oeGQ3c3RwM0xhWk5odjhkTXV6eTBtdDZXald0cXp6aVkvNFRFOFk0dnBkbTd6M1h4M3V1Mzc1MlBjWmRyM2ZhNWE1TVdYSGFhM3gzck9zV3JNZnd4eW1OWW1KaVpoWTM0UTg4cVhmc0dEcmpaVWlEUTdvcjRaSVprR1VlQlQ3Smp4VUg0bGxTc3A4SmlEazdUS1BFblZpQ1Nod2lWSmhwOEh4WThQU1gzVDlwZDM0ZG10M25zMFh6ZU1YdCtOcjdhWjVWeVR6bkhyd3BsbjhLWlBtNmJaUFpiN1pmdXA3WDd1YlRGNGo1ZmJGdFBjbkRpL3phWWU0VnJISExnamhGYzhSSFZtMjhhUnp5NEluSEY4ZUNTVVlUYmtnQUF3Szh6MzRpZklEL0kySWZoSHc0ZDc5cy83NzdIL3R2NkRLdzk3K2Y0VGQxL1R0ZjdidDFMMGJhUE9FQUFBQmE4OGxENG9ONzhOdVovY3hnZzFwOTVQN3o0UDZoVCtsenQ3ZnRkL3VGdmYvQUt6bC9zdXpTOWpFelpJQUFHR3ZMdm1QaFhGN0dqakY2cGsyMWJ5RXA3RXNISjVaSmJaY1c0d25KY29kWStpVnVPUlhtbEVoQktSSnNYa0d5eDJwVElrUnNtZTNIdHAzVHozZmRmellQSDhWdE0yZlQxNFQ5TEZFOExaSmlZMW5qWEhFOVY5Wm1sTDY0L2NKOXhualBzYjJUNlg4M3ZmTzkxajEybXk2cDRSTXpYOW8zTTE0NDl2V1luU05ZeWJpOFRqeGFSR1hMaHJKYksyWm0yM2N4dDg4MkJleTcvSTdsNVRqOHFTc3lZaVJ5V3RVZXNySXBINEZkVlFVck5MRWRva3R0cDlndXBtWjcyOWo3RjJyeHZ0bVB0SFo4VmNPeXhSd2lPY3o2MnRQTzE3YzdXbmpMeEc4MTgyOG05d3ZJOXg1VjVidXNtNzd6dWJhMnRhZmxwWFdacmp4Vi9ManhVMTBwanJFVnJIcHJNek93eDlkMVVBQUFBRk14RWlZdmdyNWViMlZLcDl6YjlwbkkyTEljWXNzTDFyYXh1MTdLMGtrbm90L2w4UjdvdVBqSGVhVlJxOXhKTHMrbmUrU1lmYWliclA3c2U4Vk8zL1Y4WjhSeXhiZjZUWE51YVR3eGVrNDhNeHp5K2xza1RwaTVVbWN1czR2Um43V3Z0Q3lkK25iZTVIdXh0cHAyS0pyazJmYnN0ZEozWHJYUHU2VHhydHRkSng0TFIxYm44MldJMjNUWGM1ZzgxT0ErTzcxclpHZWF3aDEyTTdkcW9EVEtZYktZdFpqK2R3WUxTV285WGFrbHR0aUJlUjR6YVdvVS9xbHZzU2xpVDFhSnAyTmpuMnU5M3Q3NGxucjJqdjFyNS9HOGw1bldkYlpNRnJUck42YzV0am1lTjhmR2RkYjArYnFyZllmN2x2dFE3UDdwN0svbFhnK1BEc3ZjTEJpaU9pT25IZzMxS1JwWEZsNFJYSG5yV0lyaHo4SzZSR0xOOGtVdmhybDVCajk1aWw1YTQxa3RWT283K2puU0syM3FMS081Rm5WODZLNGJiOGFTdzRSS1F0Q2kvU011aGtaa1pHTjE5bnZOcDNIYVk5OXNjbE11enkwaTFMMW5XdHF6eGlZbUhqaDNmdEhjK3dkeno5bDcxZ3k3WHUyMXkyeDVjV1NzMXZqdldkTFZ0V2VNVEUvdjg0MWlYeHh5WHpnQUFBR3VyTE94cGJHRGIxRStaVjJ0WktZblYxbFh5WG9jNkJOaXVKZWpTNGN1T3R0K05KWWRRU2tMUW9sSlVSR1I5UmF6NE1HNnczMjI1cFhKdDhsWnJhdG9pMWJWbU5KaVluV0ppWTRURThKY25aYjNlZHQzbUx1SGJzdVRCdjhHU3Q4ZVRIYWFYcGVzNjF2UzlaaTFiVm1JbUppWW1KNHdzTzhIdWY5YnVWdXMxWnQrYkJwdHNJUzFDb2J6c1RDcWRocGFaNklTWkVaUnEzTDErR1p1Unk4TmlZcytzWktWSzhCT21QdXI3UFovR2JaUElQRzYzeStQVHJiSmovTmZiYXorL2JEeDRXNDJwSEM4ekVkYyt3SDJ3ZmRycy9jZW1Ed1QzRHlZdHQ1OUVSVEJuMDZNWGNOSTRSL0p4N3VkUG14eDAwelRPdUdJdFAwb2xJR0FtOUFBQUFBQUFBQUFBQUFBQUFBQUFBRHJlL05mL0tNY3VmaFpzUHFYVkMvWDhzSVI2aVFBQUFBQUFFZ1hsVnc0ay96RCtKa09mRmp6WWNqYTFlM0lpeTJHcE1aOXM2eTBNMFBNUEpXMDZnekwyRkVaQ0xjaDJML0FOWU9DZllWaVgydVUvMG1MT3NwUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrUHJCd1Q3Q3NTKzF5bitrdzFrZkp0dFJhbnZtMjJyeldHdkxscG54UENidHNLeHV4YmE4WktVdmVHaVpXdkpSNHFVa1N1aEYzRVJkUTFrWWQ3ajhxdnkvZDRRWk1iTE9MK3M2R2MrU2xKeURXTk1qVk9RTXlUU1pJbUxuNjlWanFMSjl2MlNUTmJsTXE2RVMwS0wwQkZwZ1Y2T2FueWRMUDhBQXErMHp2aG5tZGp0bWxob2VseWRSWjQ1VVZ1eG84VnBLM1hUeGZLb3FLakdjd2VTbjl6RGZpMVVydFQydExsdktKQjNJdjhBRkN0TmtHUDMyS1hkcmpPVVV0cmptUlVVK1RWWGREZVY4cXF1S2l6aE9xWW1WOW5Xem1tSmtHYkZlUWFYR25FSldoUmRESWhXUGtBQUFBQUFBQS9SbDUyTzYwK3c2NHcrdzRoNWw1bGFtM1dYVzFFdHQxcHhCcFcyNDJ0SkdsUkdSa1pkU0FkZ241TlhQSjdtdHhpWXI4NnQvZkRlK2tGMVdGYlBla3ZlSlk1VFhTSXI2c0wyUElMdzBrYjJWUUsrUkhtcTdsS1hhMTBwMHlRMjYwa1diUnBQNEpTN2lrQUZaSDVUWi9BWHhqK0ZuTC91UGFGeW5ORXFiNHVBQUFBQUFBTHZQeWF6NGkrMS93QWJMT3Z3UDZKRnEvTk1MQ29vQUJUcitVVmNKWmVLYkN4dm10Z2xLbzhXMkczV1lSdVk0TFBWdW96MnFpSmg0amxjNURhZm9VWExzZGlJcjNYZWlXMFRLMXJ2VWJzeEpLdTBuMFFyQ2lzQUFBQUFBQUFBQUFBQUFBQUFIMmNmeUxJTVR1SU9RNHJlM09OWDlZOFVpdHZNZnM1dE5jVjc1RVpFL0JzNjUrTk5pUEVSbVhjMnRLdjBRRXgzRi96NE9jdWdIYTZvenpKNEhKTEE0cHROU0tUYlJ2UFptM0VTcFMzenF0bzF5VVpRdXlmTXlMeDdvcjFwQ1M2SlpMcjFLbWFSSXM4OE0vT2Y0ZGN2cE5aaUs4aGxhUTIzUEpobHJYZTFaTmZXeGJ1d1dsQk9SY0t6aGw3NjJza001RGhOc1IzMVYxcktQcWFJUGFSbVZ1YXpDVXR3cEFBQUFBQUFBRlRqNVVKL3VPLzhTLzhBeS9pNWo5VVNxY0M0QUFBQUFBQXZwZko4dnljK05mQ3p0TDZxUVJhditaS2J3VUFBQUFBQTYyenpUYzBWbnZtSWN2YnhUeW56ZzdveWJDeVdvek0wcDF2NnRydERQcGJhUHRqcHhZbXk5QjlDVDdLdjNSMzYvbGhEQVFTQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSt2ajE1UHhpL284a3FuQ2F0TWV0NjI4clhWRzRTVzU5VE5abnczRE5seGwwaVJJanBQM0swcStjWkg2UUhheFVWekN5S2twc2dyVkd1dXZhcXZ1WUMxRzBwU29WbkVabXhWS1V3Nit3bzFNUHBNelF0YUQ5cFJsNlJ4MHNZZWVtWk9hLzRUY3M4dWp2cWpUcWpqeHR6M3FrSmQ4QlRGMVB3ZTZyS1IxTHBQeDFwTkZ2TlpNdXhhWEQ5aEh1elNRbU9NanJKQmZRQUFBQUFBRG16alZyZE80dVJPaU5UdU1Ma3NiSjNEcmJCNWpTRzNIU0t2eWpNS2Vtc1huVXRxUW9vOGVETWNjZFYzSkpEYVZLTlNTSXpLSjRRTzBoU2xLRXBTbEpKU2tpU2xLU0lrcFNSZENTa2k2RVJFUmVnaFlTOGdBQUFBQUFBQUFBQUFBQUFBQUFBQU1lZVhYeFVPVHY0dk82ZndiNUtKam1PcjNGOUFBQUFBQUFKWS9JMy9BQ3BIRi84QWxyL283N2JGTi95anNLeFpTQUFBQUFBQUFBQUFBNnNyZmY4QURwdW40V2RqZmRoY2prUnlRNG1BQUFBQUFHV1hBajQ5SEM3OGJMam4rR0REaEU4cEhadUN3a0FBQUFBUndlWWx6d3BPSUd2MDBtTXVRN2JlV2MxOHBPRVVqcE55SStOUUZlTEZkenpJWTYwcmJWWDE4bEpvaFJsbC93QzhKaU96b2JMVWhTTytlRGVHNWZLTjc5YmNhMTdQaHRIMUxjcHZQUDZkWitNeCthZjFhOGVjMTF4RjdzKzV1MzhCN1YremJMcHllUzdtay9ScE9reGpyeGljMlNQNU5aNFVyUDU3Y1B5eGVZcDVaUmxXUTV0a1YxbDJYWGRqa1dUWkZZeXJhOHZMZVM3TXNiU3ltT0c3Smx5NUx4cVc0NDR0WDZTUzZFUkVSRVEyazIyM3diVEJUYTdXbGNlM3gxaXRhMWpTSWlPVVJEUURlN3plZHkzZVRmNy9BQ1h6YjNOZWJYdmFkYld0UEdabVpmQjlCL09GOXhOSG45TDBDZFpVeldEcWY2WWFxWm84OXhlMzZCUEJUTlpoOVNucWJhL3RhNmpvYTJmYzNWdk5qVnRWVTFVUitmWldWaE1kUXhFZ3dZVVZ0MlJMbHlYbHBRMjJoS2xyVVpFUkdZcHk1c2VESGJObnRXbUdzVE5yV25TSWlPTXpNendpSStLdkJ0cys3ejAyMjJwYkp1Y2xvcld0WW0xcldtZElyV0kxbVptZUVSSEdWcUx5Ni9MR3FOQk0xRzV0NlY5ZGY3c2NUR3NzYXg0MXBuVTJxMHV4dTR2M0tsUXJmTjBHOFpPeWk4V1BBV2dpaUtOWkhJWHJmNTM3aVplOXpidFBacld4OW80eGUzSzJiaisvWEg4SzhKdCt0dytXTjRmYUgyVTIvaWxjZmtmazlLWmZKWjB0angvbXB0ZFkvd0Radm00OGJjYTBtUDV1ZFk2NW1TR0tHeElBako1d2NCcXZlY2V5MmRxcU5FcDl5TU1OdXo2bzNZdGZTYkdZaklOQng1enozZ3g2ekxDWkpLWTA5eHhERDVJSm1VYVVxUkpqNXk5cS9kM2MrSTVLZGo3OU5zdmpOcDRXMG0xOXZNK3RZNTJ4YThiNDRqV05adGo0NjB2cFg5enYycGR2OTFzR1h6VHdpbVBhKzQ5S1IxVW1hMHc5d3JXTk9qTE02UmozTVYwakZubVlyYUlqRm4rWHB5NGE2VnRVMmxEYVdOSGVWMDZudWFlZEtyTGFwczRyOEd4cmJHQyt1Tk5nVDRVbERjaUpNaVNHMUljYldsSzBMU1pHUkdRM1cydTYyMisyMlBlYlBKVEx0Y3RJdFM5WmkxYlZ0R3NXck1jSmlZNHhNUEhEdWZiTzQ5bDdqbjdSM2ZCbDIzZE50bHRqeTRzbFpwa3g1S1ROYlV2VzBSTmJWbU5KaVh6eHlIQkFBQUFhaUhNbDE4dUxZVjhxVEJud1pMRXlGTmh2dXhaY09YRmRTL0dsUlpMQ2tQUjVNZDVDVnR1SVVTa0tJakl5TWhieTRzV2ZGYkJuclcrRzlacmF0b2lhMnJNYVRFeFBDWW1PRXhQQ1lYOXJ1dHpzZHpqM3V5eVh3N3pEZXQ4ZVNscHJlbDZ6RnEzcGFzeGF0cTJpSnJhSmlZbUltSjFXQnVESG1DeGRucnA5UGJ0c1dJT3lYbElyOFN6SjlMRU9zenR6b2hFV210Rkk4S1BYNW0rWm1tT1pKUkhzMUVUYWUyV3B0dVRwdjdyK3p1VHg3Nm5rZmk5TFg3REh6WmNNYTJ2dC9qYXZPYllZOVoxbTJQbk90SW0xZlhYN1hmdTMyM24wN2YyKzl5Y3RNUG5FL0p0dDFNVnBpMy9McHgzMDByajNrOHF4RVJqM0V4cFRwelRYSGVXVWE5dDlRQmdWNW52eEUrUUgrUnNRL0NQaHc3MzdaLzMzMlA4QTIzOUJsWWU5L1A4QUNidXY2ZHIvQUczYnFYbzIwZWNJQUFBQzE1NUtIeFFiNzRiY3orNWpCQnJUN3lmM253ZjFDbjlMbWIyL2E3L2NMZS8vQUZuTC9aZG9sN0dKbXlRQWo5NW9jNXNaNDRWMGpEY1JWWFpSdWF3aUlVeFRMY04rc3d1Tk1qK05FdXNxSmd5TTVUclRpSFl0YjN0dlB0cVM2NGJiS20xTzVoOXNQYWpmK2I1NDdsM0hyMi9qTkxjYjZhV3pUV2RKcGkxOUluV0xaTkpyV1ltc2EyaVlycVg5eVgzUmRqOW1kbGZ4M3NFNGQ5N2o1c2NUWERNNjQ5blc5ZGE1dDEwL3JURXhiRnQ5YTN5Vm1MMm1tT2Eydld4eTdMOG56M0pMZk1NenZMSEpNbXZwUnpMYTV0WkNwTTJZL3dCaUdteVV0WFJMVWVOSGJRMHl5MlNXV0dVSWJiU2x0Q1VsdkQyM3R1dzdQc2NmYmUxNHFZTmhocjAwcFNOSWlPZjdzek9zMnRPczJ0TTJ0TXpNeThXL0lmSXUrZVdkNjNIa1hrbTZ6YjN2ZTZ5ZGVYTmx0TnIzblNJamp5aXRheEZhVXJFVXBTdGFVcld0WWlOdURuUGpBQUFBUFpDRk9LU2hDVkxXdFJJUWhCR3BTMUtNaVNsS1NJelVwUm4wSWk5Sm1JbVlpTlo0UkNhMXRlMFZyRXphWjBpSTV6UHdoT3B3YTh1NXVsVFQ3aTVCMGlYTHRSSW40anF5NGg5VzZRdXFISWQ3bTBTUWZhNWNxSWpXelZPdG1tR1hhcVQxa0diRWJVMzNYOTZKM1U1Zkd2RGN1bTEvTG0zVkxmbi9BSldQQk1jcWVsc3NUcmZqRlBrK2UvcVg5cnYyZlU3YlhiKzR2dTd0WXQzT2RNbTA3Wm1wd3c4cHBuM3RMYzgzclRhMnJwaGpTMmJYTi9OWVpuUnJFOUpRQmd0ekg0VDRseVlwSEwrbDlSeGJiMVJEV21teWNtRXR4TWlhWlo2UjhmeTQyR3pla3dUTkNVUjVaRXVSQjY5VWs0MzNNcnl6N1orNlhjZkJkMUd6M1hYdVBHOGx2bnhhOGNjelBISmgxNFJiMXRUaFhKNjZXMHRHclgzRy9iTjQvd0M5bmJKN3QyMzZXeDl3OXZqbjZPNTZkS2JpS3g4dTMzZlRHdHFjSWpIbDB0a3dmcXhlblZqdFdpem5CTXUxcGxWdmhPZFVVN0c4b29wUHExblUyQ0VwZFpVcENYR1htbldsT1I1Y09VeXRMakw3SzFzdk5LU3RDbEpNalBlYnRQZHUzZDg3Zmo3cDJuTlRQc00xZGEzcnluMG1KaWRKaTBUd3RXWWkxWmlZbUltSGlsNVQ0dDVCNFYzN2NlTStVN1hMc3UrYlcvVGt4WklqV0owMWlZbUptdDZXck1XcGVrMnBlc3hhdHByTVMya1BvdmdBQUFBUDFZZmZpdnN5WXp6c2VUSGRiZmp5R0hGc3ZzUHNySnhwNWwxczB1Tk90T0pKU1ZKTWpTWmRTOUlwdlNtU2s0OGtSYWxvbUppWTFpWW5uRXg2eFByQ3ZGbHk0TXRjK0MxcVpxV2kxYlZtWXRXMFRyRXhNY1ltSjR4TWNZbmpDeEo1Zm5ONXpjOEpqVDIxTEpzOXFVMEJibU8zMGxTV2w3QnBxOWp2a0prR295UzdsMVRHYk55UVNmZFRJeVZTT2hxYWtLR2wvdkg3Vng0eGxueVh4K2svL1ovTGYrY3h4eC9aNzJuaHA4TU41NFYxNFV0TVUxMHRTSHNKOW8vM08zOXlkdFQyNzg4elYvOEF0NXRzVXp0ODlwaUozK0hIWFcwVytPN3hWaWJaTk9PYkhFNWRKdFRMS1VvWUJiMUFBQUFBQUFBQUFBQUFBQUFBQUE2M3Z6WC9BTW94eTUrRm13K3BkVUw5Znl3aEhxSkFBQUFBQUFTRmVWQitVWTRqZkN6WC9VdTFFVy9MSTdJUVdFZ0FBQUFBQUFBQUFBQUFBaHY4MWZ5cU1ENXhZSGE3QzE3VlZPSjhwY1RxWHBHTDVSSFpqMThYWmNXdmptcHJBczlkU1RUY3YxdHRvbWF5emVNM3ExNDBKVXM0aHVOaXF0dFAwQ2dwZDB0dmpkemI0N2tGWk9wYjZnczU5TGQwMW5HZGhXVlRiMVVwMkRaVmxoRGtKUS9FblFKckMybldscEpiYmlEU1pFWkM4aDh3QUFBQUFBQUVxSGszY28zK0wzT3JWa3l3bnJqWUZ1Q1czcFRZREszbHR3MHdjNG5Rb3VMM1QvVlJ4MmZyY3pobXRsT3ZyUW8yNEpTVUpOQk9xVVZObzFnZGg4TEtRQldSK1UyZndGOFkvaFp5L3dDNDlvWEtjMFNwdmk0QUFBQUFBQXU4L0pyUGlMN1gvR3l6cjhEK2lSYXZ6VEN3cUtBQWNlYloxVmdlOE5hNXBxUFoyUHhNb3dMWUZCTnh6SnFTWVJraVRBbW9MdGZqUG82UHdMU3Vrb2JrdzViS2tTSWN0bHQ5cFNIVzBLSkhEaU91ejh4TGdEc25nRnV5Ymd1UkluWkJyTEpYcDFycUhabnFpMFYrWDQyMitYL3Urd2ViWmJodzgxeDF0OXBtMWhKNmRpMUlmYkk0ejdDMVg0dEUvcFF3QUVnQUFBQUFBQUFBQUFBQUFBQUFBQUNjdnk4L08vM3h4UmwwZXV0NHlyM2ZYSDFrMklLWUZsT1JNMmRyNkNTME5sSXdqSnJWOUM3dXRneHV2YlNXai9xeHBRaHVMSmdKN3pYUmFzVHk1aTdKb3ZmT3BlU210YURibWxNMHFjNndYSW1TT0xhVmpway9BbklhWmRtVWQ5V3ZFM1lVR1ExaFNFSmxRWmJiVWxnMUYzSUlsSk03Y3hNY0pTNWZFQUFBQUFBcWNmS2hQOXgzL2lYL0FPWDhYTWZxaVZUZ1hBQUFBQUFBRjlMNVBsK1RueHI0V2RwZlZTQ0xWL3pKVGVDZ0FBQUFBSFYxOHFicjY1T1QvSS9JdkVsdSsvOEF2cmNGMTRzOWZpVDNmZlhZV1JUdkVtcjhWL3ZscjhmcTRmZXZxc3o5MGZzaS9ISkRnVVNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU8wQjRlWDZzcjRqOFdzcFd0OXhlU2NjdEkzNjNKU0dtNUsxWEdzOFlzVkxrTnNLV3cyK281UFZhVUdhQ1YxSWpNaFlubWxqRjV3bGpKcS9MVzVZU1lwb0oxM0JhU3VVYTBFc3ZWcmZQTVNxWmhFUit3dFVPYXNrbi9BR3F1aCswSnIrYUIxell2SUFBQUFBQUJJNTVSZEpHeUR6SXVKY0NXVFp0UjlqeUx0SGlzTnlVK3M0emltUjVKQ01tM0RKS1hDbVZMZlk0WHVtbDlGcDkwa2hGdnl5T3h5RmhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBeDU1ZGZGUTVPL2k4N3AvQnZrb21PWTZ2Y1gwQUFBQUFBQWxqOGpmOHFSeGYvbHIvbzc3YkZOL3lqc0t4WlNBQUFBQUFBQUFBQUE2c3JmZjhPbTZmaFoyTjkyRnlPUkhKRGlZQUFBQUFBWlpjQ1BqMGNMdnhzdU9mNFlNT0VUeWtkbTRMQ1FBQUFIRDIvZDJZaHgzMUhtdTM4M2U3YVRENnBjdHVDMjZUVXk5dUpDMFE2UEhhNHpRNy9oOTVhdnRSMjFHbFNHdkVOeGZSdEMxRjlUc3ZhZDEzenVlSHRlemorZXkyMDE5SzFqamEwL2hXTlpuNDhvNHpENEhsSGtldzhUN0R1ZS85eW4vQUdiYjAxMDliM25oVEhYbjgxN1RGWTRhUnJyUENKbFJxM2h1Zk9PUVcwY3QyMXNLdzlleVRMTEZjdHhsbzNTcjZldWFJbWFxZ3AySFhIVnhhZWxnSVJIam9OU2xkaU81YWxPS1d0VzMvYU8xYlBzbmJzWGJOalhUQmlycCtOcDliVytOclR4bitEU05JZWJIa25rUGN2S3U5WisrOTF0MWJ2UGZYU05lbWxZNFZwU0o1VXBYU3RZNTZSck16TXpNOFRqNlQ0UUFkVEwyeEpwRDJKUiszNlExUjB0MFlYaHVVN0Z5cWh3ZkI2R3h5YkxjbnNXS21pb2FwZzVFNnhuU0RQc2FhUjFKRGJiYUVxY2RkY1VocGxwQ25IRkpRbFNpNCs3M2UyMk8ydnZONWV1UGJZNjlWclduU0lpUCtIQ0k0elBDT0xsOXY3YnZ1N2I3RjIzdHVLK2JmWnJ4V2xLeHJhMXA5UDhBTE16cEVSRXpNeEVUSzIzNWZQbHY0cHhScW9ldzlnSXJjczVBV2tGNXVUYXNuNjVSNitnem0reCtpeEUzbW0vRnNubzVtM090RFNsMTFLbHNNZGtjM0RrYXorYitlN255WEpPdzJYVmk3SlczQ3ZLMldZNVd2K0d2R3RPVWNKblcyblR2YjdVKzBHdzhHdzE3dDNXS1ovS3IxblcwY2FZSXR6cGkxajgweHd2azAxbldhMTBycjFTa2pITE5nQUFBREFUbWR3ZXhma2pWU2N2eGRNVEd0eTFkY2JkYmM5cmNlc3k5cUtoc290TGwzWXlweGEyMld2QmlUMC9Sb3BLU2xaT3NvUzJqTG50bDdxZHc4RzNNYkRlZFdmeHJKZlcrUG5iRk04OG1IV2RJbjF0VDh0OVAxYlQxTlZmdVArMlRzUHZWMjIzZSswL1QyWHVMdDhPbUhjYVJHUGN4V1Bsd2J2U0ptMWRJNmNlYVBudzZ4K2ZISDAxYTNNc055algyVVhlRjVwU1RzY3lqSFp6bGZjVTFpMmxFbUpKUWxMaVRKVGFuR0pNV1N3NGg1aVF5dHhpU3c0aDFwYTIxcFVlOG5hKzZkdjczMi9GM1R0V1dtZllacTlWTDE1VEg3dkdKaWRZdFdZaTFiUk5iUkV4TVBGWHlmeGp2M2h2ZnR6NHo1UHRjdXo3NXM4azB5NHNrY2F6emlZbUptdDZXck1XcGtwTnFaS1RXOUxXcmFKbmJJK2crRUFBQUFDSmlKalNlUkV6V2RZNFRDY2ZnejVpSlRTcHRPY2hMc2t6VWxFcWNLMmRadUsvdy93QjBVZUpTWjFPZFdaRk9McWh0aTJjNkU4UmY0WXJ4ZXNoM1UvM1g5bDUyMzFmSnZEc1V6dCtOOCsycitwNnpmQldQMU9jMnhSeHIvd0JISFQ4dFBVcjdYUHZBcjNHTnQ3Yys3ZTVpdmNQa3hiUHVPU2VHYjlXbUhlM21lR1hsV201dHBHVGxubU12ODVsbXNHc0QwbllGZVo3OFJQa0Iva2JFUHdqNGNPOSsybjk5OWovMjM5QmxZZTkvUDhKdTYvcDJ2OXQyNmw2TnRIbkNBQUFBdGVlU2Y4VUcrK0czTS91WHdNYTArOG45NThIOVFwL1M1bTkzMnUvM0Izdi9BTlp5L3dCbTJpWHNZbWJJb3dlYi9QeXAwcEdzdFlhbG1WOTd0dVZIZmlXbDAwN0huMU90VFdyd1ZybHM5ajhheXk1Q1NYNE1GejZIRVdTWFpTVnBKTWQ3Ty90VjdRYm55ckpUdnZrTmI0ZkhLMmlhMG1KcmZjK3VsWjRUWER5NnNrY2J4clhITVRyZW1rUDNQZmRqMi8yeHdadkNQQWNtSGRlNE9TbHE1TXNUVytMdDJ2RFc4YVdyazNXbXZSZ3Q4dUtkTW1lSnIwNGN0ZHEzdDdXL3RMRzh2TEtkY1hWdk5rMlZyYldrdCtkWTJWaE5lWEltVHAwMlN0MlJMbHluM0ZMY2NXcFMxcU16TXpNeHVsdHR0dDlsdDZiVGFZNll0cmlwRmFVckVWcld0WTBpdGF4cEVSRWNJaU9FUEhqdVBjZTRkMzMrYnV2ZGMrWGM5ejNHVzJUTGx5MnRmSmt5WG1iV3ZlOXBtMXJXbVptYlRNek16ckw1NHZ1R0FBQUExY0NCT3RaME9ycTRVdXlzckdWSGcxOWRBalBUSjA2YkxkUXhGaHc0a2REa2lWS2t2dUpRMjJoS2xyV1pFUkdaaTNtell0dml0bjNGcTB3VXJOcld0TVJXdFlqV1p0TTZSRVJIR1puaEVjMS9hYlRkYi9kWTlqc2NXVE52YzJTdE1lUEhXYjN2ZTB4V3RLVXJFMnRhMXBpSzFyRXpNekVSR3F3aHdjOHZ5djFRbW4yMXVlQkR0dG5HbUxaWXppcjZVUzYzWGozVHhtSnN2M1RrYXl6Rmd6U3BLeUpUTmE2bnF5YTNrcGVScHQ3cmU4ZWJ5R2N2anZqRjdZK3hjYTVjc2NMYm1PVTFqMXJobmpySFBKSEMybFptcyt1MzJ2ZmFQdFBBWTIvdUI3azRzZTQ4MzByazIyMXRFV3g5dm5uVzkrZGNtOHJ3bUxhVFRiMmpYSE5za1Z5VmxZR3ZqZlFBQUFCaVh5dDRqWUh5Z3hiMWV5VEh4M1lOUEhVbkU4OWpRbTNaME1pTngwcWE2UWcybnJiSEpEemlsR3dwWkxqdUtOMWswcU54TG1SZmIzM0c3djRGM0Ryd2RXYnMyU2Y1N2J6YlN0dVVkZE9jVXlSRVI4Mm1sb2pwdEV4cE5kZi9BSDYrM3p4VDN4N0Y5TGVSVForWGJlay9zdStyU0p2VG5QMGMwUnBPWGIybVptYVRiWEhhWnZqbUptOFhyRDdXMU5ubWxjMHM4RDJKUnlLUytyVnFXanZKUzRGdFhxZWRaaTNOSk5OQ0c3S29uR3lvMm5rZTJsU0ZrbHhLMEozdzhlOGk3UjVSMnZIM2ZzdVdNdTB2L3dDMVMya1ROTDE1MXZYV05ZbjhKaldKaVo4UVBQZkFQS3ZiVHlYUDRwNWh0YjdYdXVHZFkxMW5IbHg2ekZjMkcra1JrdzM2WjZieDhKcmFLM3Jhc2NjRDdicG9BQUFEN0dQWkJkWXBlMUdUWTVaU3FhL29MR0hiMDlyQmM4S1hYMk1COUVtSktZWDBNaWNaZWJJK2hrYVQ5Z3lNak1oeHQ1czlyM0RhWk5qdmFWeTdQTlNhWHBhTll0VzBhVEUvcGg5SHRIZCs1OWc3cHQrOTltelpOdDNiYVpxWmNPV2s2WHg1TWRvdFMxWitNVEVUeDFpZVV4TUxZSEVya1JXY2s5UDAyYkk5V2k1VlhLS2d6eW1ZTWtsVzVQQ1lhVklrUjJEV3R4dXF1V1hFeTRwbWFpUzI0YlJxVXRwZlR6ejl4ZkM4L2cva3VYdGM5VnUzMy9uTnZlZjFzVnBuU0pubDEwbldsL3hqcTBpTFE5OHZ0LzhBZURZKzlIdDN0dkpxOUdQdjJHZm9iN0RYaDlQYzByRTJ0V3VzekdMTldZeTR1ZWxiVFNabTJPMm1UWTZJemNBQUFBQUFBQUFBQUFBQUFBQU90NzgxL3dES01jdWZoWnNQcVhWQy9YOHNJUjZpUUFBQUFBQUVoWGxRZmxHT0kzd3MxLzFMdFJGdnl5T3lFRmhJQUFBQUFBQUFBQUFBQUFBQ2tCOG9nNHNWK24rVWVKNyt4V3Q5Unhua2pRMkV6SW00MGRLSVRHMHNIVlcxK1N5eU5oS1dvNjhsb2JTcm1LU3N2RWt6a3pYdTVabXNrWGFUckdpRmZBVmdBQUFBQUFQMFplZGp1dFBzT3VNUHNPSWVaZVpXcHQxbDF0UkxiZGFjUWFWdHVOclNScFVSa1pHWFVnSFo3OE9kenE1RGNWdVAyNm4za1BXZXc5VTRkZVpFcHRUYTIyOHU5Nkk4TE1vcUZ0RWxDa1E4cWlUR2lQdFFaa2owcFFmVkpXSmpTZEVza3hBckkvS2JQNEMrTWZ3czVmOEFjZTBMbE9hSlUzeGNBQUFBQUFBWGVmazFueEY5ci9qWloxK0IvUkl0WDVwaFlWRkFBQURoWGtEeDYxSHloMWRrT250MlloQnpIQ2NqYVQ0c1dRYW85bFVXTEhWVUMveDIyWU5NNmp2Nng0KzVpU3d0S2lJMUlYM3RMY2JYTVRNY1lGSER6RXZKbzMzd3NtM2VmWUZIdHQyY2NXbHlKeldlMDliNG1VNEZYZDZUYmg3UngrQWhSd2tSRXVlSDc5UTBLcXBCSUp4MG9ManFZcWJ0YlJQNlVJYWhVQUFBQUFBQUFBQUFBQUFBQUFBQUFKQ2ZMdjhBTU8ydjVmOEF0cHJLY1ljbFpOcXZLSlVHTHRqVlVpV3Bxcnl1b1lXYUUyMVNiaHFZcDgycEdIVnFyNXhKOVBVMkh5WEhjV2c0bUltQjJHK21kdzY5My9xN0NkeDZxeUNQazJBNS9SeHI3SHJaZ3V4YW1IalUxSmdXRVZSbTlYWE5ST2FkaVRvanBFOUVsc3VNdUVTMEtJckV4cHdTNU9BQUFBQVZPUGxRbis0Ny93QVMvd0R5L2k1ajlVU3FjQzRBQUFBQUFBdnBmSjh2eWMrTmZDenRMNnFRUmF2K1pLYndVQUFBQUFBNnNyZmY4T202ZmhaMk45MkZ5T1JISkRpWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjJYZmx3enBWandGNGJ5Smp2alBOOGI5UlFVTDdHMitrV3J3dW9ySUxYYTBoQ1Q4Q0RFYlIzR1hjcnQ2cU0xR1puWXQrYVV1RFBPa2l2VFBMSDVVTXNUSFlLMFVPdnBTbjJTTTFyWmdiaDE1T2t3MWRGbytoV01lT3FPNTZmN202Zm9QMkRtdjVoMTI0dklBQUFBQUFCS2I1S1UySlgrWjV4WmZteHZXbVhMYlprSkRYaHRPZHN1eTBwc211Z1NlMTB5U1hxYzZVMjkzRjdwUFozSjkwUkNtMzVSMklJc3BBQUFBQUFBQUFBQUFBQUFBQUFBQUFHUFBMcjRxSEozOFhuZFA0TjhsRXh6SFY3aStnQUFBQUFBRXNma2IvbFNPTC84QUxYL1IzMjJLYi9sSFlWaXlrQUFBQUFBQUFBQUFCMVpXKy80ZE4wL0N6c2I3c0xrY2lPU0hFd0FBQUFBQXl5NEVmSG80WGZqWmNjL3d3WWNJbmxJN053V0VnQUFBS3dYblpjbDNjdTJaamZHbkhMQTFZM3JKcUhsZWN0TUxMd3B1d0x5dld1b2hQZHFsSmNMR2NVc1VyU1pHWFI2MGVRcFBjMFJqWVgybDdCRzE3Zms3L25yL0FMUnVKbW1QOE1WWithZitmZVAzcVJNYzJtWDNHZVkyMy9lY1BoKzB2L3NlemlNdWFJNVRudlg1WW4vcThWdGYwNUxSTWExUVhETURXa0FBQUJ5SnFqVSt3TjNaNVE2MTFqamMzS2N3eU9TYkZmV3creENHMm0wK0pMc0xHWStwdUpXVlZld1J1eUpMNjBNc3RwTTFLSWNIdVhjdGwyalpYMy9jTWtZOXJqampNL3dSRWM1dFBLSWpqTXZyZGo3SDNYeVB1ZUxzL1pzTnMrL3pUcFdzZkQxdGFaNFZyV09OcldtSWlPY3JndkJMZ0hnSERuRkNzbnppWmJ1ckpLeGhqTmM3VTEzUjRMYTFKa1BZdGhhSDJtNUZialVlUWxQaXVxSk1teWRhUzg4U0VwWmp4OVh2TWZOTjc1VHVmcDExeGRweDIvbThmclBwMTVQU2JUSEtPVlluU05aMXRiZm4yejlydTErMyt4K3RicHorUlpxUkdiTnB3cjZ6anc2eHJYSEU4NS9Oa21JdGJTSXJXc2dvNlN5b0FBQUFBQUREbmx4dzZ3ZmxEalNYblBWc1oyaFJSWFVZbm5MTVpKcmNiSW5IRTQzbEtXbXpmdGNaZmtMTmFQWmtWN3lsT3h6N1hKREVuSkh0MzdrOTI4QzMvd0RONjUreVpiUjliQk04UCtzeCtsTXNSdzEvTGVQbHZIQ3RxYTkrL3YyOCtMZStYWTRydWVuWitaYldrL3NtK3JXSnRIT2ZvYmlJNDVkdGEwNjlPdlhpdE0zeFRIVmtwa3JIN00xam5Hbjh4dE1EMkZReThleVNwV2szb3Nna3JZbHhYVFdVYXlySmpScmkyVlhNSkJtMCt5cFRhdWhsMUpTVkpMZTdzSGtIYWZKKzJZKzc5bHpWemJMSjZ4d210bzUwdldlTmIxOWF6K0V4ckV4TStJUG5YZ2ZsUHR2NUpuOFU4dzJ0OXAzZkJPdWs4YVpLVE05T1hGZVBseVlyNlQwM3J3NFRXZExWdFdOaEQ3VHFBQUFBQUFsNTROK1ljL2dEVlJwN2ZGbEpuWU8wVE5kaHVmeVRkbDJPSElVdHRtTlJaSzZ0YW5wMkh4MEgwaXlTSmNpclNSTXFKeUg0WlF0YlBkYjJZcjNTMlR5WHhESEZlNVRyYk50NDBpdVgxbkppamxHV2YxcWZseVQ4MGFaTmZxZWlmMnZmZUJrOGFwdC9idjNYejJ5ZVBWMHg3UHVGNW0xOXRHc1JYQnVyVE16ZmJWamhqemNiN2VJaWwrckIwenQ4K2ZNc3NJRnZ3RTNsYTFVNkhaMWRualdEMkZiWlY4bG1iQXNJRTNZR0ZTWWM2RE1qTGRqeTRjdU82bHhwMXRTa09JVVNrbVpHUmpBUHR6aHk3Znp6YVlNOWJVejB0bnJhdG9tTFZ0R0hMRTF0RTZURXhNYVRFOFluaExmYjN5M1cyMzNzNTNIZTdMSmp6YlBOVFozeDVLV2k5TDB2dTl0YXQ2V3JNMXRXMVppMWJWbVltSmlZbVlsVEpHMkR6b0FBQUFXdlBKUCtLRGZmRGJtZjNMNEdOYWZlVCs4K0Qrb1UvcGN6ZTc3WGY3ZzczLzZ6bC9zMjBmTzV1K1l2QXhxTlphbjQ4WHNleHllUWhVVEtkbjFMN1VxdXhwb3pXaVJUWWRLU2x5Tlk1RStndWoxazJwY2V2YlVhWTVybG1ia0x2bnRYN0s1dTRYcDVENW5odFR0OGNjVzF2RXhiTFBwZk5IQ2E0NDlNYzZXeVR4dEVZK0dYWHo3bmZ2RTJuWWNPZndIMmkzVk0vZjdSTk56M0xGTVh4N1dPTVd3N1czR3VUY1RIQzJlc3pqd1JPbU9iYmpXMjNnZGZmZmxQdlNaTHpzaVRJZGNma1NIM0Z2UHZ2dkxOeDE1NTF3MU9PdXV1S05TbEtNelVaOVRHM05LVXgwakhqaUs0NnhFUkVScEVSSENJaUk0UkVSeWg1VFpzMlhjWmJaODlyWHozdE5yV3RNMnRhMXAxbTFwbldabVpuV1puak04WmZrS2xzQUFBQjluSGNkdmN1dktyR2NZcVo5N2tGM05acjZtb3JJemt1ZlBtUHE3V21JN0RSS1d0Uit5Wit3bEpHb3pJaU14eGQ3dmRwMjNhWk4vdjhsTU96eFZtMTcybUlyV3NjNW1aL3dDRXp3amkrbDJmczNkZkllNllPeWRqMitYZGQzM1dTTWVMRGlyTjc1TDI1VnJXT00vajZSR3N6TVJFeXNnOEp1Q05EeDZneGRnYkNacnNqM1RPanVlRSswcjF1bjE3Q2xzcWFlcXNmVW9pYWwzc3BoeFNKMWwyOVNTcFVhS2FXVGVkbWFTZTZmdTN1L004dHV6OW1tK0R4ZWs4WW5oZmNXaWRZdms5WXh4UEdtTFhucGZKcmJwcmo5bVB0bCsxYnRYdER0Y2ZsdmwxY084OXk4dEowdEh6NGRoUzhhVGkyK3ZDK2UxWm1NMjUwMTBtY09EVEg5VEp1SkdSaFJ1T0FBQUFBQURIYmtqeG8xN3lYd2w3R2N2aUloWGtGbVM1aUdaeEk3YTdyRmJKOG0xRzdITTFOK3UxY3B4aENaY0phaWJrTnA5QnR1cGJkYjdwNFI1ejNud2J1a2IvQUxiYnEybDVpTTJHWitUTFdOZUU4K204YXowWGlOYXo4YXphczRlOTUvWlR4RDNyOFp0MlR5SEhHUHVtS3RwMm04cFdKemJYSmJUalhsMTRyVFdzWmNOcGl1U3NjSnBrclRKU3NCdmpRZXd1TytjemNKejZzV3laTGVkb01nak5QSFE1WFZOclFUZHJTVEhFSlMrMzJ1b0o1aytqMFZ4WGh1cFNyMmQ4L0VmTCt6ZWFkcHIzWHRHU0o0UkdUSE14OVRGZitSZXZweW5wbjh0NDQxbVllSFh1cjdUK1grei9BSlJrOFo4c3dUV2RiVGczRlluNkc2eFJNYVpjRjVpSXRHa3gxMC9QaXRQUmVJbm53b08wc2FBQUFBTSt2THAzMDVwcmZ0VlFXa3p3TUsyd3VEaGQraDFmYkdpWEw4aFNjUHUxOVZJYmJWRHVKUnhYSEZtU0dvazU1Wi91U01zUWU5WGlOZkp2RDhtODI5ZGU2ZHVpMmZIcHpta1IvUFUrUHpVanFpSTR6ZWxZam0ydyt6cjNXdjdiKzdHMzdUdnNuVDQxMythYlBQRXo4dE0xclRHMHpUeWlPak5iNlZyVFBUWEZteVdubEdsbmthSFBjRUFBQUFBQUFBQUFBQUFBQUFBZGIzNXIvd0NVWTVjL0N6WWZVdXFGK3Y1WVFqMUVnQUFBQUFBSkN2S2cvS01jUnZoWnIvcVhhaUxmbGtka0lMQ1FBQUFBQUFBQUFBQUFBQUFFQVh5ampCb21SY0ZjVXk0MjJVMld2TjlZWllzeWxHb252ZXZJc2J6TEdyR0EwWHBTYUpVK2ZCZVgxSWovQU1GTG9aRjFKVmRPWktqY0xxQUFBQUFBQUFGOXI1UHpuem1aZVhMaVZFN0o5WVZxN2FPME1CU1JyYVd1TzNMdDR1eDJveXpRODY0bnNiMkNScEp3bTFFaFNTSlBaMktWWnY4QW1TbTBGSXJJL0tiUDRDK01md3M1Zjl4N1F1VTVvbFRmRndBQUFBQUFCZDUrVFdmRVgyditObG5YNEg5RWkxZm1tRmhVVUFBQUFEd3BLVnBVbFNTVWxSR2xTVkVScFVreTZHbFJIMUl5TWo5SkFJU3VabmtUOFNPVHNpMXpEV3pEbkduYWxpNDVMa1hldjZlTE0xL2R6blQ3blpHUTZ4VktxcXR0OTVYVlNucWVUVU9PT3FVNi93Q09zejYxeGVZRllEay81TWZPL2pJN1kyVHVybjl6NEpETjExdk90SXBuWnV3VU5Da240OXJpTE1LTm5sS2NkaHhLcExqdFlxRXlaTDdaTGlFRzRLNHRFb1JXeW9zbUZKa1E1a2QrSk1pUHV4WmNTVTA0eEppeVdIRk5QeDVERHFVT3N2c3VvTkswS0lsSlVSa1pkUlVQd0FBQUFBQUFBQUFBQUFBQUFBQUZqcjVQanpwbDZvM1BONGY1OWN1ZnZiN3dtTzJldEZUSE82TmkrNFkwUkJIWFIxSzdmVm9HeGFhSDZzcEpxVVh2ckRoSmJRbFVsOWFxTHhyR291cUMwa0FBQUJVNCtWQ2Y3anYvQUJML0FQTCtMbVAxUktwd0xnQUFBQUFBQytsOG55L0p6NDE4TE8wdnFwQkZxLzVrcHZCUUFBQUFBRHJDK2F0RTdqSE1ibGZqcnlDUXVsNUpid3JTN0dGUm1sdFJkbVpNMHcvSFlXbEpvaXlHRXBjYTlIUTIxSk12UVpDL0hKREdVU0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT3l2OHRUOG45dzYvRjYxbDl6TUVXYmZtbExaL215WStySmZMazViMXlXM0hUamFybFpBYVdubW1WRW5FN3FueXBiaHJlTWtLYlpSVEd0YUM5MjRoSnBSN295Q3Y1b0hYQUM4Z0FBQUFBQUdldmxjNWFuQ3ZNTjRnM0NuVk5GTTNkaU9KRXBQVHFhcy9rT1lJaHIwc3YrNWVWa1pJUDNKZWhYN3BIN29vdHlrZGt5TENRQUFBQUFBQUFBQUFBQUFBQUFBQUFCanp5NitLaHlkL0Y1M1QrRGZKUk1jeDFlNHZvQUFBQUFBQkxINUcvNVVqaS8vTFgvQUVkOXRpbS81UjJGWXNwQUFBQUFBQUFBQUFBZFdWdnYrSFRkUHdzN0crN0M1SElqa2h4TUFBQUFBQU1zdUJIeDZPRjM0MlhIUDhNR0hDSjVTT3pjRmhJQUFOdVpobE5UZytKWlRtdCs5NnRSWWZqbDNsTjFJNm9Md0tuSDZ5VmJXTDNWeFNFRjRVT0l0WHVqSXZSNlRJWDlydDh1ODNPUGFZWTF6WmNsYVZqL0FEclRGWS9obHhOL3ZjSGJkam43anVwMDIyM3czeVhuNFZwV2JXbjl5SWxRTDJabjEzdFRZbWNiS3lOeFRsN25tVjMyV1dmYzZ0NUxNcTlzcE5pdUl3dFpKTW9rSXBCTXNwSWtwUTBoS1VwU2tpSXQwKzM3TEQyN1k0ZGhnLzFPSEhXa2ZvckVScittZE5aL0Y1Yzk1N3B1ZTk5MjNQZU4zT3U1M1dlK1czSFhTYjJtMmtmaEd1a2ZDSWlJNE5rRGx2bWdBQTN4clRYR1liZXozRmRhWURVdTNtWDVsYng2YWtybWo3U2NrUEVweDZUSmVNalJGcjYrSTA1SWxQcTl3eEdhVzRveVNrekhFN2h2OXIyelpaTzRiMjBVMnVLczJ0UDRmQ1BqTXpwRVI2ek1RK2wyZnRHLzc5M1RCMmZ0ZU9jbS93QnhraWxLeDhaNXpNK2xheEUydFBLdFltWjRRdWk4SytGZXUrSFd1MmFTa1ppWHV4NzJKR2QySnNSMk1rckMrc0NTaHhkWFZyY1FVaXR4S3RrRVpSSWhHWGQwOFo3dWVVcFExUThzOHMzM2xPK25ObW1hYkNrejlMRnJ3ckh4bjBtOHgrYTM3a2FSRDBPOXUvYnZ0UGdIYVkyMjJpdVh1K1dzVG56ekh6WHQvSnI2MXhWbjh0ZitkYlcwekxORWRVWkRBQUFBQUFBQUFHTmZKbmk3cjNrN2hhOGV5cGxGUmsxZWh4M0VNOWd3V1pGNWpFNCtwOW5hcHlNcTFvSml2Uk1ybkhrTlBwNkxRcG1RaGw5cnUzZy9ubmVmQk82UnZ1M1crcHM3NlJtd1d0TVk4dGZ4NTlONC9VeVJFeldlRXhhazJwYkRmdlI3SStJZTl2alZ1eStRMGpEM2JGRXp0TjdTbFp6N1hKUHcxbXYxTU4rRVpzRnJSVEpHa3hOTXRjZVdsWHpkZWo5aDZCeml3d1BZdE9xdnNZeW5IcXkwamVJL1JaTlUrSXBFYTh4MnhXMHlVNnRsRW5yMFVsdDloZlZwOXRwNUMyMDc2ZUtlVzltOHk3VlR1M1pzblZqblNMMG5TTW1LK25HbVN2cE1lazhhMmo1cXpOWmlYaHo3bysxZmwvdEY1Umw4WDh1Mjg0ODBUTTRjMWRad2JuRnJwR2JCZVlqcXJQRHFyT2w4ZHZreVZyZUpoeEdPek1jQUFBQUFEa05PM05uc2FselRSOFBOTFZ2V2VkUm9qTnZpa3p3ck9xanV3YmlOZlI1bE14T1E2NVF5VjJrVkRqNm9TNC9yZlFpZjhUb250NnAzWHd2eDd1M2M4WGZNMjNwVHZlSHE2YzlQbHZQVlNhVEY5Tkl5UjB6cEhYck5mMVpqaXl0NGg3MGVmK0g5Z3orSDdQZlpjM2h1NW1rNU5sbG5yeFJOTXNab25ETm90YmIybkpXTFduRE5hNUovMWxiNlJwaHpZNjJ5Q0lwUnhDajJUUmVsSnN1cFllN2YvVFprbTJrbGZvSldzZkozSGpmY01VNjRlbkxYOEowbjk2ZFA0SmxrdnRmdTM0dnZheEcrK3J0TTNyRjZ6ZXV2NFd4eGFkUHh0V3JiRDJPWDhjekoybHMwa1hzcVRDa0xSN1BUKzZOdHFiOUovb2o1bCsyOXd4L213NWYvQUdabVAzNGpSM0hCNVo0eHVZaWNQY05uTXo2VG1wV2YvWnRhSi9nZWpXUDNyeDlHcWEwWDZlblVvRW9ra2ZUcjBOWnRFaFBvK2VZaXZiOS9lZEs0Y3Y4QTdOditKWG04bzhhMjhhNXU0Ykt2NGZXeDYvdVJGdFovY2h1S0JydkpaaHBONk96WHRuNmZFbVBvN3VudDlHV1BIZEpYNkNpVCttUG9ZUEhlNVpwK2VzWTYvRzAvNUkxbjkvUjFYdVh1cDRqc0t6R0RMazNXYVAxY1ZKMDEvd0NWZm9ycCtNVGI5SG96RndiYSsxTUEwNUwwWFFaemFWbXZyVzl0Y2p2cWluUXpWS3ZiQzVnUWF5Y3hhV0VaUHZ0TXFIWU5lMDJxRXQvMVJ6cDNMYVVyb1pmVDIzZ25qdVB1dVB2Mjh3VTNIZXNXT0tVeVhqV0tSVzFyUk5LVE0wcmFMV21ZdnBONDlMUkhCanp2dnZ2NS93Qng4ZnorRzlvM21idDNoKzV6V3laZHZodEZiWnJYeDB4V2pObXJXdVcrTzFLVmkySHFqRFA2MUxUeGJGSGNtRndBQUFBQnUvQXNDeTdaMlhVbUM0TFJ6TWl5bklaaVlWWFZ3a3A3M0Y5cW5IcEVoOXhUY2FEWHdvNkZ2U1pMeTIySXpDRnVPTFNoS2xGODN1L2VPMjloN2JsN3QzYkxYRHNNTmVxMXJmdlJFUkhHMXJUcEZhMWliV3RNVnJFek1RN0Y0bjRuNUQ1eDVEdGZGdkZkcmszbmZkNWs2TWVLa2NaOWJXdGFkSzB4MHJFM3laTHpXbU9rV3ZlMWF4TXhabTRlY0xNUTR4VUtMZXlWQnluYjF6QjhISk11YlE0dUJWc3ZHbHgzSGNQUktaWWtSYVpwU1VrN0pjYmJsV0MwK0k0bHB2dzR6T2l2dVY3b2R5ODgzYzdiRDE3Znh6RmZYRmg0ZFZwamhHVE5wTXhONTlLeE0weHhPbFp0UFZlM3RuOXUzMjFlTyt5SGFvN2h2SnhiNzNDM09McDNPN2lKbW1PSjR6dDlwRm9yYW1HSmlJdGt0V3VYUGFPdThVcjBZY2Vid3hXMmNBQUFBQUFBQUFIRG04ZEY2LzVCWUxPd1hZRlVpWEdjUzlJcGJkbEpJdU1adVZSM0dJMTNTeXZRcG1WSDhUM1RhdXJNaEhWdDFLMEdaRHN2aW5sbmVQRHU3VTd0MmZKTmNrYVJlay9reTAxaVpwZVBXSjA0VCthczhhekV4cXh6N29lMXZpWHU1NHRsOFc4dHdSa3dURTJ3NVk0WnR0bTZaclhOaHQ2V3JyeHJPdE1rZkprcmFzekNxbnZuU09ZY2ZObFhldHN5YVN1VlhLVExxTGhodGJkZmttUHlsdWU5bDlYZHlsbVRFdERTa3VOOXlsUjVEYmpLak5iYWg2QytJK1ZkdDh5N0hpNzUyeWRNZCtGNlRPdHNXU05PckhiOFkxMWlkSTZxelcwY0poNE5lNjN0ajVGN1JlYWJyd3p5T3NUbnd6RjhPYXNUR1BjN2UwejlMUGoxMStXOFJNV3JyTTQ4bGI0N1QxVWx3Mk96TWNnQUE5Mm5YR0hHM21YRnN2TXJRNjA2MHRUYmpUamFpV2h4dGFESlNGb1VSR1JrWkdSa0l0V3RxelcwUk5aalNZbmxNZkNWVkwzeFhqSmptYTVLekV4TVRwTVRIR0ppWTR4TVR4aVlYQU9OZXpqM0pvalYreG5ua3YyR1E0ckNLOWRTU1VwVmt0UXAyanlZMG9RU1V0dG5mMXNrMHA2RjBUMEhtMzV4MkgvN00rVzcvc2xZMHc0ZHhiNmNmL2dyNlpNWC93Q2J0WFg4WDZJUFpiemVmY2YycjdINWxrdEY5NXZOaFQ2OHhwSCswNHBuQnVkSWpsSDE4ZVRTUGhvNXdIVkdUd0FBQUFBQUFBQUFBQUFBQUhXOSthLytVWTVjL0N6WWZVdXFGK3Y1WVFqMUVnQUFBQUFBSkN2S2cvS01jUnZoWnIvcVhhaUxmbGtka0lMQ1FBQUFBQUFBQUFBQUFBQUFFTFhuOXo0MFB5MnRpeDMyRGRkdGRoYW1nUTNDUzJvb3Nsdk1vTm9wOVJyTWxJSlVPdGRhNm82cTZ1RVg3a3pGZFB6Q2dzTHFBQUFBQUFBQUYwTDVNN2VISTR2Y2djYjhTVVpWTysyYndtbG1uMUpCNURyekZJQnVSeThRMUZLYyt0Z2llNm9TWFlscm9hdlNTYlYrWkN5WUtFcXlQeW16K0F2akg4TE9YL2NlMExsT2FKVTN4Y0FBQUFBQUFYZWZrMW54RjlyL0FJMldkZmdmMFNMVithWVdGUlFBQUFBQUFBQU1aZDY4TWVLbkpocDB0NTZFMXJzT2U2MmxuNjVMUEhvMEhOWTdDVWtnbUlPZDBudlhtZGV3YVVwNm9ZbnRwVjJwNmtmYW5wTVRNY2hFRnVMNU9CdzV6UnlaUDFMbiszZEt6NUIvNE5WKytWWnNmRElDZlQ2R3F2Sm9zWE1YejZuN0x1UUs5QmV4N1lxaTgrcG9qUzJaOG1qNU4wYmtoM1UrK2RNYkZnc3JVYlRlWHdjdjFuZHkyZTR5UjRNQ0RYYkVxRVNGRVpHcERsaWhDUzY5SERNaUk2dXVFYU1GYzY4a1R6TGNHTjEwK1BDOHZyMnVwRlk0THNEWEdSRTZaTGRMbzFUb3lxTms2dXFHaVdSbkFKUFJhUzY5L1ZKVDFWR0dtZjhBRFBseHF3cERteE9NdStNUWh4VU9PUFdsenFyTlk5SjRUS0NjZWRhdlNwbDAwaGxsQjlWcmJmVWxIdG1RbldCaldwS2txTktpTktrbWFWSlVSa3BLaVBvWkdSK2tqSXhJOEFBQUFBQUFBQUFBQSs3aStUWHVGNU5qdVk0dFp5cVhKc1R2YWpKc2R1WUxoc3phbTlvYkNQYVZGbkRkVDdwcVZBc0lyYnJhaTlLVm9Jd0haNzhXOTMxdkpManBwamUxWTB6R2EyaHJ6RzhwblFHRm02MVVYMHVBMjNrMUdoMVJFYnZ2RmtiTXFHYXY3WTJPdnRpeE1hVG9sejBJQUFBVk9QbFFuKzQ3L3dBUy93RHkvaTVqOVVTcWNDNEFBQUFBQUF2cGZKOHZ5YytOZkN6dEw2cVFSYXYrWktid1VBQUFBQUE2Nkx6aXNHWHIvd0F5YmxOVkd6NFRGMW1WTG5NVmFVcVMxSlJzRENzWnpPUTgwcFNVOS9Td3UzbTNETHFSUE5yTHFmUVhxL2xRak9GUUFBQUFBUHI0OVhRN2kvbzZteHRvdEJYMmx2VzEwNjltdHVPd3FXSE5tc3hwTnRMYWFNblhJdGF3NnA1eEtUN2pRZ3lMMGdMS3lma3l1OGxwU3BQSjdVcWtxSWxKVW5FY3ZOS2ttWFVsSk1uVEl5TWo5QmlqcmcwZWZ6WlBlbjg1elUzMm9aaC9mUTY0TkQ4MlQzcC9PYzFOOXFHWWYzME91RFEvTms5NmZ6bk5UZmFobUg5OURyZzBQelpQZW44NXpVMzJvWmgvZlE2NE5EODJUM3AvT2MxTjlxR1lmMzBPdURRL05rOTZmem5OVGZhaG1IOTlEcmcwUHpaUGVuODV6VTMyb1poL2ZRNjRORDgyVDNwL09jMU45cUdZZjMwT3VEUS9Oazk2ZnpuTlRmYWhtSDk5RHJnMFB6WlBlbjg1elUzMm9aaC9mUTY0TkQ4MlQzcC9PYzFOOXFHWWYzME91RFEvTms5NmZ6bk5UZmFobUg5OURyZzBQelpQZW44NXpVMzJvWmgvZlE2NE5EODJUM3AvT2MxTjlxR1lmMzBPdURRL05rOTZmem5OVGZhaG1IOTlEcmcwUHpaUGVuODV6VTMyb1poL2ZRNjRORDgyVDNwL09jMU45cUdZZjMwT3VEUS9Oazk2ZnpuTlRmYWhtSDk5RHJnMFdvK0srbnJMajd4djBobys0dVlPUTJ1cWRhWW5ndGhlVmpFaUxYMjB2SGFxUFh2VDRjZVVaeVdZOGhiSnFTbGZ1aUkvU0xjenJPcVdxNVFZSzV0RGpWeUUxc3l3Y2wvUDlJN1Z3Mk15bEtGT0xsNUxnMTdUeFBCNzF0cEo5TW1ZazJ6TlNlMVpFZlV1blVrY3gxY2d2b0FBQUFBQUJ1M0FNd3NkZVo1aE9mMUNTWGJZTmwyTjVoVm9VdncwcXNjWnVZVjFDU3B3a09HZ2xTWVNTTSsxWFQyZWhnTzFFeGJKS2pNc1p4M0w4ZmtsTm9jcW9xakpLU1lucDJ5Nmk4cjQ5cFd5VTlxbEYwZmh5a0xMb1psNmZaSEhTKzZBQUFBQUFBQUFBQUFBQUFBQUFBQUF4NTVkZkZRNU8vaTg3cC9CdmtvbU9ZNnZjWDBBQUFBQUFBbGo4amY4cVJ4Zi9sci9BS08rMnhUZjhvN0NzV1VnQUFBQUFBQUFBQUFPckszMy9EcHVuNFdkamZkaGNqa1J5UTRtQUFBQUFBR1dYQWo0OUhDNzhiTGpuK0dERGhFOHBIWnVDd2tBQUVmSG1sNTI3Z1hCemRUOFI1VE5obFVMSHNFaDlwOUNjYXl6SnFtdXUyVnFKYUZFbHpHRlRpOUhkMVBvUmwybVpsM2YyNjJjYjN5L2FWdEd0TWMyeVQvektXbXYvdjhBU3hWNzFkenQydjIyN2phazZaYzljZUdQMFpjbGEzai9BUEY5Zi84QUJTNEcxenp4QUFBQVdUUEpBNDF3NEdMNW55aXlPQVM3ZS9uVGRlNjNWSllVUndxQ3JOaHpNTCtFdGFUYmNPNXVEUlhJY1IwY1pLdWxObVpwZU1oZ1gzZDcvZSs0eGVPNEovbXFSR1hMcDYyblhvclAvSnJyYlRsUFZXZlJ0OTl0L2grUEZzdHg1cHU2NjU4dHB3YmZXT1ZLNmZWdkgvTHZwamlZNHg5TzhjckxBUXdvMmxBQUFBQUFBQUFBQUFjSmI2MEJydmtUZzhyQ3MvckV1OXFIM3NmeUdLaHBGOWlscTYybEtMU2xtS1NhbTFHcHRIanNLNnNTa0lKRHFWRVJkT3orSitYZDU4TTdyWHV2WjhrMXR3akpqblg2ZVdtdkdtU3ZySHduODFaNDFtSlkzOTB2YXJ4RDNlOFh5ZU1lWFlJdmptSm5EbXJFUm4yMldZMGpMZ3ZNVDAyamgxVm5XbVNzZEdTdHE4Rlgva2h4cjJEeG56bDdFOHlpcm0wMDVjbVJoMmF3NGp6TkZsOVV3dHZ1ZmlLV3A1TUszZ3BmYlRQcjF1TGVodUxTZmM0dzZ3Kzl2cDRQNTEyYnpydFViL3Qxb3B2S1JFWnNFekU1TVZwK1BMcXBiU2VqSkVSRm9pWTByYUxWcjRkZTlQc2o1ZDdKZVRXN0o1QlNjM2FNczJuYWIybEpyZzNXT1Bock5veDVxUk1SbXdUYWJZNW1KaWI0cjQ4dDhlUjNWaHNBQUFBQUFBQUFBQUFBQUFBQWNtYWsxRG4yOE0zcmRmNjVwSExxL3NFdVNIVktWNnZXMUZaSFUyVXk2dTdCYVRacmFtRjRxU1c0cnFwYmkwTk5KY2VjYmJYOEh5UHlUcy9pbmFyOTQ3M2xqRnRLY0k5Ylh0UDVhVXJ6dGUyazZSSEtJbTFwaXRiVEhkdmIzMjc4czkwUEo4UGlYaDIybmM5MXl4TnBtWjZjZUhGWFRyelpzazhNZUttc2EybmphMDF4MGkrUzlLV3M5Y1ZlSm1COFhzVVhDcHVsOW5ONUdqZlhqbTh0aHRFeXhkYlEydFZYVU45cHFxc2JqeWttdHFPU2xPT0s2TGVXNHBLT3pRNzNBOXhPNytlOXhqTHV2NW50V0swL1J3UlB5MWlmMXJ6K3ZsbU9FMjBpSWpoV0lqWFgzQzlpUFlIeFQyTjdCTzE3Wi90WGsrNnBYOXIzdDZ4RjhreEVUOVBGSC9SYmV0dFpwajFtWm5TMlMxN1JFMXl0R1BtZVFBQUFBQUFBQUFBQUViL21aNkppYk4wVE0ySFdRa0t6SFVQaVpDekphYVI2ek53NTViVFdWMXJydnVUT05BamR0bW51TSt6MU54S0M2dXE2NXU5aXZMY25ZdkxhOW16Mm4vZG5jdE1jeE04SzVvMW5GYUkrTnAxeGZqMXhNL2xocG45N1B0WnQvTnZhdko1ZnNzVVQ1SDQ5cnVJdEVSMVgyY3pFYnJITS93QW5IWFRjeHJyMC9SdkZZMXlUcldzRzhUeGFBQUFBV0lQS1V6Snk1MFBtT0h5SGlkZHdyWVVwMkczNGhHcVBUNVBVMTg2TzE0WDdwQ0ZYRU9lNFN1dlJSck1pTHFrelBURDdpdTJWMjNsMjI3bFNOSzdyWlJFL2pmRmUxWm5YL2tXeHhwNmFmaTlnZi9UKzhqdjNMMnE3ajQ3bXQxWk8yZDR0TkkxL0xoM09MSGVzYWVrVG1wbnRyeW1iVEhwT3NxWTErYjRBQUFBQUFBQUFBQUFBQUFBT3Q3ODEvd0RLTWN1Zmhac1BxWFZDL1g4c0lSNmlRQUFBQUFBRWhYbFFmbEdPSTN3czEvMUx0UkZ2eXlPeUVGaElBQUFBQUFBQUFBQUFBQUFDdVg4cFQyUkdvZUptbXRZdHZvYnRkaWJ5WXlEd1RjTW5KR1BhOXc3SVUycEpaSlB1ME5YZVlWS2xMTlJFZytoZHA5M1ZOZE9hSlVwUmRBQUFBQUFBQUZ5WDVNckhmVG9Ua3hLVXk4bU05dDdGNDdNaFRheVlkZmpZWWh5UXkyOGFmRFc5SGJsdEtXa2pNMEU0Z3pJaVVYVzNmbVFzMGkybFdSK1UyZndGOFkvaFp5LzdqMmhjcHpSS20rTGdBQUFBQUFDN3o4bXMrSXZ0ZjhiTE92d1A2SkZxL05NTENvb0FBQUFBQUFBQUFBQUFBQWNLYlE0MmNlOTJ0dXQ3ZjBmcWZaaTNteWFPVm0yQVl2a2RpMGxQN2c0dHBhVmtpeGh1Ti8ycTJuVUxUN1JrSjFtQkZudXp5QWZMODJtM0xsWVpqZWQ2SXZYL0FCSGtUZGE1bE9uMHlwYWlWMktsWXpueU13cm00SktNdTZQWHFyaU1rOUVxUVptWjFSZVJCcHlYK1RzY3M5Vk16TDNRMlU0bnlReDJQNGpudlBGUzFyblpEYktlNXcxSnh6SWJXYmpObWhsb3VuK0RYYXBieS9RM0Y5SkVLb3ZFODBJSE0xd2JOTmJaUGJZVnNMRXNrd2JNS0tRY1M2eGZMYVN4eDYvcXBKRVN2Qm4xRnRHaVRvcTFKTWxKNzBGM0pNakxxUmtZcjVqYXdBQUFBQUFBQUM4MThuUjJ4SnpmZ3RkNjdudjk3K2x0eVpmanRUSDhRbCtCaTJZUTZuWU1OZmFaOXpQajVUa1YxN25wMm4yZHhHWm1vazJyeHhUQ2ZRVUFBQUtuSHlvVC9jZC80bC8rWDhYTWZxaVZUZ1hBQUFBQUFBRjlMNVBsK1RueHI0V2RwZlZTQ0xWL3pKVGVDZ0FBQUFBRktUNVNmcVI3RnVWdW9Od1I0L2cxTzJ0UGU4THozWjA5Ynl6VitRekdMaDN4UzZKVjRlTTVoUnQ5dnBVbnM2bWZSUkVWMms4TkVTcm1Dc0FBQUFBQUIyUkhsYThqby9LSGd6b2ZZVDA1RXpLcVBGbytzOWdwTjFiMHRuTmRjdHQ0ellTckJTelYwbDVKWFE0bHowSlNpSnF5UjdCOVNLemFOSlNrR0ZJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9zQjVoNmxYb25sVHlGMUY2bjZqRHdQYjJkMGRJd1NWSlNlTUl5Q2JKeFNTMmxYdWlabTQxSWlQSUkvN1J3aGZqakNHTjRrQUFBQUFBQjJEZmtpY2k0Ky8vTC8xWlhUTEVwbVg2TFZLMGZsTERqcEhJWWk0ZTNIZHdONG1sS04vMUp6WGRoVnNJZE11eHlSR2ZRa3pOdFJKczNqU1VwY3hTQUFBQUFBQUFBQUFBQUFBQUFBQUFNZWVYWHhVT1R2NHZPNmZ3YjVLSmptT3IzRjlBQUFBQUFBSlkvSTMvS2tjWC81YS93Q2p2dHNVMy9LT3dyRmxJQUFBQUFBQUFBQUFEcXl0OS93NmJwK0ZuWTMzWVhJNUVja09KZ0FBQUFBQmxsd0krUFJ3dS9HeTQ1L2hndzRSUEtSMmJnc0pBQUJEZDU0YytSRDRpWWRIWk5KTjJ1L2NQZ1MrNGpNemp0NExzMnpTU09paUlsZXRWcmZzOVM2ZGZSMTZHV1UvYUdsYmVUNWJUenJzcnpINmZxWW8vaW1XdjMzSTViWS9BOXZTdksvZE1WWi9SOUhjVy9qckNxRU5rbWpvQUFBQzlGd1l3dUxnUEQzamhqc1ZqMWJ1MUxpT1J6R0RRU0ZOMithMXJlYVhpVnBJekx4UGZuSUh6VWZ0cTZuN1kwKzh3M2R0NzVSdjg5cDEvd0JwdldKL3pjYy9Uci83dFllbGZ0cjI2bmEvQU8wYlNrYWY3Qml5VEgrZG1yOWEvd0Q3OTdhc3JCMXQzZ0FBQUFBQUFBQUFBQUFjYWJiMUZnTzhNSXM5ZjdHbzJydWdzVklrTW1TdkFzcWExam9kUkN2S0t3U2szcXk0Z2s4c2tPbzZrdHB4eGwxTGpEcnJTL3QrUGVROTM4WDdwajd4MlhMT0xlNCtIeHJhcy9tcGV2SzFMYVJyRStzUmFOTFJFeDA3enp3THhYM0s4YXorSitZYldtNjdQbjBuU2VGOGVTTmVqTmh2SHpZOHROWjZiMTlKdFMwV3BhOWJWaCtWWEVuUHVMMlZKaTI2WE1nd0s2a3ZKeEhPNGtWeHVEUFNSdXVKcUxodm90dW95VmlNMmExeHpXcERxQ054bGJpVXI3TjcvYjMzSDdUNTdzT3JEcGg3emlySDFzRXp4amw4K1AxdmltZUd2T3MvTGFJMXJOdkVMMzgrM3J5cjJONzVGZDExYnp3L2MzbjlsM3RhekZiYzVqRG5pT0dMY1ZyR3MxMTZjbFltK0taaUwxcGllTWpOZkFBQUFBQUFBQUFBQUFBQWMzNkU0L2JFNUY1dXhoZXY2enhmQjlYazVGa0V6cTFSNHJVUFBreXUwdDVYL3dCcndZemZmSmtxUW9ta0s3VkducW5tSG1YWmZDdTFUM1B2RjlKbldNZU92SEpsdkVhOU5JL2U2clRwV3VzZFU4WWljb2UwM3RGNWg3eWVUVjhjOFR3NjFwMDIzRzR2d3diWEZOdFBxWmJmSG4wWTY2NU1reE1Vck1WdE5iUVhIVGpicnZqVGhEZUpZUkVWS3NwcW01ZVZaaFlzc2ZYQmxWbWxKa2w2YTgwa2lpMWtJbG1pRkJhUHdJclptZnUzM0gzM3RDdk5QTis5ZWM5MW51UGRiZE9HdkRGaHJNL1R4VitGWW5uYTNPOTUrYTAvQ3NWclgzSDludlpudy8yVzhZcjQvd0NMNDV2dThreGJkYnZKRmYyamRaUDVWN1JIeTQ2YXpHSERYNU1kZForYkpmSmt5WkJEcDdMUUFBQUFBQUFBQUFBQUErVGYwa0RKYUs2eHkxWlRJcTcrcHNxU3lqcUlsSmZnV3NONkRNWlVSOVNOTHNkOVNUSS9SNlJ5ZG51czJ4M2VMZTdlZW5jWWNsYjFuNFdwYUxWbjl5WWg4L3UzYk5wM3J0VzU3TnY2eGZZN3ZiNU1PU3M4clk4dEpwZUovVFcwd3BZV2NCK3FzckNya2wwazFzNlhBa0YyclIwZmh2dVIzUzdYRW9jVDBjYlAwS0lqTDJ5NmoxQ3dacWJqQlRjWS93QWw2UmFQMFdqV1A0MzVwOTd0TXV3M3ViWTUvd0RYWWN0OGR1Y2ZOUzAxbmhPa3h4ajFpSitMUWk2NHdBQUpyUEowbnZwc3QvVmZYckdlZzYzbjlEVXMvRGZpdjVySDZ0cDd2RFQ0emN2M1o5T3ArR24wOUNHcm4zTFlhVGc3UHVQMTR2dWEvcGlZd1R4L1Jwdy9UTDB1L3dEVG4zZVd1OThzMlBQRGJGMjdKNjhMVnR2YThJNWZORitQRFdlbXZ3VGpqVko2aGdBQUFBQUFBQUFBQUFBQUFPdDc4MS84b3h5NStGbXcrcGRVTDlmeXdoSHFKQUFBQUFBQVNGZVZCK1VZNGpmQ3pYL1V1MUVXL0xJN0lRV0VnQUFBQUFBQUFBQUFBQUFBS0cvbjY4cG9PL3VhTHV0Y1hzaXNNSjQwVVVqV3lIR0hrdlFwT3g1ODRyVFprMk1aRVJ0dVFKck1Ha2tJUDJKRklzeU0wcUlYYVJwQ0VISXJBQUFBQUFBQUY0TDVOMWliMUx3YzJEa3NwcFNGNXB5TXpDWEJjN25leDZucE1GMXhTTXE3RnRvUVRpYm1MUFNha0d0SnBKSkdaS0kwbGF2elRDd1lLQldSK1UyZndGOFkvaFp5L3dDNDlvWEtjMFNwdmk0QUFBQUFBQXU4L0pyUGlMN1gvR3l6cjhEK2lSYXZ6VEN3cUtBQUFBQUFBQUFBQUFBQUFBQUFBR0VYTnJnRHgrNTJhK2xZcHRmRzRzRE1vTUNVMWdlMnFTREVienZCTEJ3amNZWENzRkpiY3Q4ZmNsRWxVeXBrck9IS1IxTXZDZkpwOXFZbVlIWGljbCtQR3d1S2U4TmdhRjJoRVlqNWJnRndVQitYQlU0NVZYdFZNak1XVkJrdEs4NmhwMTZueUdsbU1TMk85S0hVSmQ4TjFDSFVMUW05RTZ4cWh3U0pBQUFBQUFBV3d2a3dlU1BFOXpKeEIwM0ZNS2EwYmtrSWlTMzRMRHlGYlVxN1ExcjZrNmJrcEM0ZmFYUTBrVEt2WU0vVGJ5ZWhDMllMYVFBQVZPUGxRbis0Ny94TC93REwrTG1QMVJLcHdMZ0FBQUFBQUMrbDhueS9KejQxOExPMHZxcEJGcS81a3B2QlFBQUFBQUNCdjVRem9aM2FQQjZMdEdxZ2V0WHZIellkSGxzbDl0Q1hKVGVFWmQvK1NNb1laUjJtOHBrcmUwcDVyNXBQb2hpQXBhaTdVR2FhNlR4RkZVWFVBQUFBQUFBc0kvSitlYmNQUk8vN2pqUG50cTNCMTN5T20xVFdKeTVyemlZdER1ZXZRcUJqMGRzdjdreTNzT3ZmS3JjVVpHcHlmSHJVRWFVOTVuUmVOWTFGMzBXa2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDanQ4b3QwQTlyam1Ualc3SUVNMjhmNURhOXJwa3VXVFNtMm5NODFtekF3M0lZcVRJMU5MTnZFeng1OVNpN1ZLWElWMVQ2TzlkMms4TkVLL1FyQUFBQUFBQVRtK1F2ekxZNDM4c1ZhaHpHMVpyOVg4bVdhckRKY21hOGhtRlI3TnFuWmptdGJoeDUwekpsbTJsV2N1a2NTa2trdDYwanVPS0pFZjBVM2pXUHhGOEVXVWdBQUFBQUFBQUFBQUFBQUFBQUFBTWVlWFh4VU9UdjR2TzZmd2I1S0pqbU9yM0Y5QUFBQUFBQUpZL0kzL0trY1gvNWEvd0NqdnRzVTMvS093ckZsSUFBQUFBQUFBQUFBRHF5dDkvdzZicCtGblkzM1lYSTVFY2tPSmdBQUFBQUJsbHdJK1BSd3UvR3k0NS9oZ3c0UlBLUjJiZ3NKQUFCREo1NVVGVWppYmdNeHVQNGk2L2YrTExkZkpKR3FORGs2L3dCblIzRE5Yc2syN0xVd2svbnE3UmxiMmd2MCtTNXFUUEMyeXZ3K014a3hUL0ZxMTYrNVBGMStEYlhKRWF6VHVtUFdmaEU0TnhIOE05UDhDcVlOajJrSUFBQUM5encxeW1MbWZFN2pqa0VWeExwU05NYTdnekZJUVNHMDIxSmpGZFIzYlRhQ2NkN1cyTGl0ZlFucW96N1VsMTZINkJwejVWdHJiVHlYZjRMY05OM2xtUDhBazJ2TnEvOEF1ekQwejl2dDdUdUhnM2FOMVNkZGUzWUluL2xVeDFwZVBYbGVzd3lWSHdIY0FBQUFBQUFBQUFBQUFBQWJWemJDTVMyUGkxemhXYzBGZGsyTFg4UlVPMXA3TmszWThoc3pKYlR6VGlGTnlJVTZHK2hMMGFTd3R1VEZmUWgxbGFIRUpXWFA3WjNUdUhadC9qN24yck5mQnY4QURicXBlazZURS94VEV4ckZxekUxdFdacmFKaVpoOFR5UHh2c1BsL1pOeDQ1NU50TU85N0h1OGMweTRjdGVxdG81eFB4cmVzeEZxWkt6VytPOFZ2UzFiMWkwVjV1V1BseVo5cGwyeHpUVkROcnNmVnphSDUwdU93d1VyTk1ManRyN25VM0ZmRWJTcStwNDdDaWM5OEliWFZwdERpcExERGJaUHU3ayszbnZiMm55U3RPMStTVGoyWGZlRll0TTZZTTAvNXRwLzFkNW5oMFduU1owNkxUTnVpdmtUNysvWm41VDdmWk0zazN0MVhQM2p3cU9xOThVUjE3eloxaWRaaTlLeHJ1TU5ZNC9XeDE2NlZpMzFzZGEwbkxlTThaNGFQZ0FBQUFBQUFBQUFBTTR1TFhCUGFuSTZWQXY1a2VSZ2VxVFdic25PTGVFNFQxMncwNFRia1hDcXQzd25MMTl4d2xJT1dab3IyRGJjN25Wdk5sSGN4UDUvN3QrUDhBaFdPK3p3elhlZVE2YVJncGJoam1mWFBlTmVpSTU5RWE1TGF4OHRhejF4dEg3RmZhcjUzN3g1OFhkOTVTL2FmQXBuVzI4eTBtTFo2eE9rMTJlS2RKelRNNng5YWRNRk5ML1BmSlQ2VnJIdW5OTDY4MFBoVURCTmIwYmRSVVJlMTZiTGRVbVRjNUJhS2JRaVRkNURabWhEbGpheXpRWFZYUkRUS0NTMHcyMHdodHBHazNrdmsvZWZMZTZYN3YzdkxPWGMyNFJIS21PdnBUSFhsV2tmRGpNenJhMDJ0TTJuMlU5dS9iZnhEMnM4YXhlSytHYld1MjdkajQzdFB6WnMrV1lpTFpzK1RTSnlaYjZjWjRWckdtUEhXbUt0S1Y1VUh3SGVnQUFBQUFBQUFBQUFBQUFmakprTVJJNzh1UzZobU5GWmRrU0huRDZJYVlaUXB4MTFaKzBodHRKbWY2QkNxbEw1THhqeHhNM3RNUkVmR1o0UkMzbXpZdHZodm56V2l1R2xadGFaNVJXSTFtWi9DSWpWU3N5VzJPL3dBanY3MDBtZzdxN3RiWTBHa2tHZzdLYy9NN1RRVGpwSU5QamRPaEtVUmZQUDJSNmliSGIvc2V5dzdUbjlMRlNuL3MxaXY0ZkQ0US9OSjNydUU5Mjd6dSs2ekdrN25jNWN1bW1tbjFMMnZ5MW5UbnkxbjlNdmlqbFBtZ0FBbWo4blZoMVY3dnVTVGFqWWFxZGRzT08vMnFIWkV6TVhHV3pQOEE2VGlJemhsLzFUR3Ivd0J5MTZ4dE8wVW1mbm5KdVppUHdpdUhYOTdXUDMzcFIvNmRHTEpQZGZLODBSUDBxN2Z0OVpuMGliWDNjMWo5MksyL2VsT2dOVDNxU0FBQUFBQUFBQUFBQUFBQUE2M3Z6WC95akhMbjRXYkQ2bDFRdjEvTENFZW9rQUFBQUFBQklWNVVINVJqaU44TE5mOEFVdTFFVy9MSTdJUVdFZ0FBQUFBQUFBQUFBQUFBaHI4Mjd6UThUNFFheXN0Y2E4dVlkdHlsMkJST3RZYlN4dkFuSjF2VDJQZEZYc2ZMV2xLVTFFVkhhSjA2YUk2bFM1MDFDVnFiVkZhZk1WVnJyK2dVRHBzMmJaelpkall5NVZoWVdFcVJObno1c2gyVk5telpUcTM1VXVYS2ZXNC9KbFNYM0ZMY2NXcFMxclVabVptWXZJYVlBQUFBQUFBQUIyTWZsQWFuZTA5NWMzR09nbXhUald1VDRaTDJoWm12dUo1OVcwNysyenlvVytoWFFtM0dNYXZZTEhhUko2SlpMdTZxN2pPemFkWlNrckZJckkvS2JQNEMrTWZ3czVmOXg3UXVVNW9sVGZGd0FBQUFBQUJkNStUV2ZFWDJ2K05sblg0SDlFaTFmbW1GaFVVQUFBTVV1WnZMM1YvQ1hST1Q3dDJkSzhadUFoVlhodUpSWDBOWFdmWnRNalNIS1BFNmNsSWROdGN0Y2RUa3FTYUZ0d29UVHNoWktKdnRWTVJyT2dwemNWZlBFNUQ2cjVaNTN1dmVObGQ3TDFOdXE2YWMyTnE2dG1MS0ZoTmJGOE9IajlscCtyc3B6VmJTMldIVkRTSXFZempyVFYxRlFhWnIzclJ0em1MazExalNFTHV1bWQwYXc1QjY0eHJiT244d3FjM3dQTElMVTJxdXFsOGxraGFtMEtrVmxwRVdTSmxQZVZqaS9DbVFaU0dwVVI0amJkUWxSR1F0ekduQ1V1VVJBQUFBQUFBQUFBQUFBcDQvS2J0YjAxUHRuaXh0aUpIWWF2TTl3UFpPRFhEclNleDJWRTFqZVluYzFEc2trb1NseHhINzZFaHRMaHFVczBJU2sraVVJRjJuSkVxdjRyQUFBQUFBQVdoUGt4clZpZTErVno3VHZTb2IxNXJacWN6M2tYaVdMMlNaSXVyZDhQcDNLOEtNeE1MdTY5RTkvVDJ5RkYrUkM0VUxTUUFBVk9QbFFuKzQ3L3hML3dETCtMbVAxUktwd0xnQUFBQUFBQzl0OG5jdkdMYnk5bFFHU2FKekdONjdMbzVYaHlVUHJOK1JYWWhrcVRrTkpRbFVKMzFiSVcralNqVVp0OXJuWG80UkZhditaS2RnVUFBQUFBQTJGdFRYR05iaDFuc0RWR1pSZlhNVTJSaHVTWVJrTWNpUWJpcWpKNmlYVHpWeDFMU29tcGJERXMxc3VGN3B0MUtWcDZHUkdISWRZQnU3VW1WYUYyL3NyUytiTUd4bE9zY3p2OE50ejhKVExNeDZrc0hvYk5wQ1N0U3pYVzNFVkRjdUs0U2xKZGpQSVdrelNvalBrUk92RkRpMEFBQUFBQWZ2RmxTWVVtUE1oeUg0a3lJKzFLaVM0cnJqRW1MSlljUzZ4SWp2dEtRNnkreTZnbElXa3lVbFJFWkgxQVgyL0o1OHp5azVwNnRoYXEyamZSSXZLSFdsTXl4a01hWTZ4RmUycGpFQktJMGJZbEV6M0lLWGFObzdHNzJPMG42QkxNcENVcFlrb1EzYXRYVGo2SlRXQ2dBQUFBQUFBQUFBQUFBSEZ1NTkxYXY0OWEzeVhiVzRzeHFNR3dMRklTNWRyZDNFZ215Y2M3VmVxVmRYRVQzVExtOXRYa2t6RGd4VU95cGI2a3R0SVVzeUlURWE4SUhBZkNQblhvL25ucktmc2JUMDJ4Z1NzZnVaRkhtR0I1UjczUmMyeENYNHI2cW1SYzF0ZFBzWS92WGtWZTE2eEJsc3V1eDNpSjFydjhlUElhYVRHazZETTRRQUFBQUFBQWhsODlYakE3eUc0TVpWbGRCWEhPenJqdlpJM0RTRXcwcHlYSnhXdWlQVit5cTFDa3E5eEZieEtTNWJPRjJxVTQ1VHRJTHAzZFJWU2RKRkFzWGtBQUFBQUFBL1JsNTJPNjArdzY0dyt3NGg1bDVsYW0zV1hXMUV0dDFweEJwVzI0MnRKR2xSR1JrWmRTQVg5L0oyOHlLczV0NlVqWURzRzRhVHlXMUJUUW9HZVJwS3lia2JBeHVPcHV2cU5vVmlGTFVjbDZjUnRSN3RLRC93ZTFNM2V4cG1YR1FMTnE2VCtDVXlZcEFBQUFBQUFBQUFBUjgrWXg1Z091ZUFHa3BXYjNwd2NpMmpsS0oxUHAvV3FwUkpsNVRramNZMUt0YlpobDlxZEV3ZkcxdU51Mmt4QnA2RXR1TTJvcEVsa2pxclhXZndGWkh5Ny9QVzNGcUxhdHZRY3dNcHY5c2FiMmZsODI3dGNwbW03UHlmVHR6a05oSWx6cmZGNE1kbGE1dXZFU1pSZXNZOHdsS2ErT2duS3hDVklYRGwxelNKNUlYVGNMelRFOWpZbmp1ZDRKa1ZUbHVHNWJVdzczRzhrb3BqTmhVWE5SWU1wZmlUb010aFNtM1duVzFmb0tTb2pTb2lVUmtWcExjNEFBQU1lZVhYeFVPVHY0dk82ZndiNUtKam1PcjNGOUFBQUFBQUFKWS9JMy9La2NYL0FPV3YranZ0c1UzL0FDanNLeFpTQUFBQUFBQUFBQUFBNnNyZmY4T202ZmhaMk45MkZ5T1JISkRpWUFBQUFBQVpaY0NQajBjTHZ4c3VPZjRZTU9FVHlrZG00TENRQUFSdCtiUGhEdVo4SE5wUHhXVGZtNFhZWWJtOFpwTFpMVjRWWGs5YlgyenhHYVZLYUtMUVc4dDVTaTZIMnRtUm4wTXgzMzIwM2NiVHkvYlJhZEtaYTN4eis3U1pyKy9hdFlZaDk5TzIyN2g3YmIyMUkxeWJlK0xOSDZLNUsxdFA3bExXbjl4VFZHMUR6NkFBQUFXay9KSzVCUk14MHJrM0g2M25vK3VYVXR2THY4YWlPdkY0OHZBTXVudVRwQnhXVko4UjFGRmw4bVVVaFpLTkxhYktNbm9YVXV1dTN1MzJTMjE3dGo3M2lyL3MrNXJGYno4TWxJMGpYL2xVaU5QajAyYnFmYmw1Vmo3aDQ3bThWejJqOXMyR1NiNDRtZU00TXR0WjBqMTZNczI2cDlQcVVoTjJNUnRqd0FBQUFBQUFBQUFBQUFBQUFCZ255SDh2clJ1K25wdVF4SVRtczgvbG04ODlsZUlRNHFJVnRNZmRjZWNsWlJpNmpqMXQwKzQ4KzQ0N0laWENudnJVWGl5VnBTU1JsYnd6M2c4czhRclhaemVONzJpdWtSaHpUTXpTSTRhWXNuRzFJMGlJaXM5V09QU21zNnRZUGQvN1RmYTMzWXlaTzYvUm5zL2xkOVpuZDdTdGF4bHRNNnpiYzRKaU1lZVptWm0xNCtubnRPbXVhWWlJUTViZzh0N2tycTkyYk1vOGJhMnRqVENscll0OEFVdWZjR3diNm00eUplR3ZrMWtucjdqWkV0eHVDellNTmRlbmpxNmRSc3Y0Mzc0K0VkOXJYRnZjdHUzYjZlZGMvQ212cnBtaitiNmZoT1Q2Y3ovSmVjdnVKOWxudlA0VGZKdWV6YlduZit5MTFtTW15blhQMDY4T3ZhWDB6ZGN4eG11RDlvckg4dVdDZG5WMmRMUGwxVnpYVHFtMGdQTGpUcTJ6aVNJRStISWJQdGNZbHc1VGJVaU84Mm91aWtyU1NpUDJTR1hOdHVkdHZNTmR6dE1sTXUzdEd0YlV0RnF6SHhpMVptSmo5RXRVKzRkdDdqMmplWDdmM1hiNXRydjhjNlh4WmFXeDVLVDhMVXZGYlZuOEppR2hGOXd3QUFBSDZOTk92dXRzc3R1UFBPclMyMDAwaFRqcnJpekpLRzIyMEVhbHJXbytoRVJHWm1LYjNwanJON3pGYVJHc3pNNlJFZmpLdkZpeTU4dGNPQ3RyNXJURVZyV0ptMHpQS0lpT016UHBFTXg5UjhCK1RlM1hHSG9tQXlzR29YVFQzWkpzb3BXSXdTYld5VWhsNk5WU1lqMlVXY2VTMlplRzlGcjNvNW1aZHppU1BxTVkrUis4SGduamxacGZkMTNtN2ovbzl0cGxubnBNVGVKakZXWW5uRnNrVytGWmJKZTMzMmwrOTN1QmVtWEgycS9hZTAyNTdqdVBWdGE2VEdzVFhEYXR0MWtpMGZsdFRCYWt6TWEzaU9LWUhRbmxrYVMxVzdFdmRoT09ia3kyTzRsOW4zK2dJcjhLZ09vVVMyemo0Z2lUT1JhdUlJelFzN0tSTWp1RVJMVEhhVVExdDh2OTlmS3ZJYTIybmFOTzJkdHRHay9UdDFaclIrT2JTczErTWZUclNZNVRhMFBRL3dCcC9zbTlzZkFjbVB1dmxjejVINURTWXRFN2lrVTJlT1k0eDBiU0xYakpNY3BuY1pNMVo0V3JqcEtTUnBwdGh0dGxsdERMTEtFTk5OTklTMjIwMjJra0liYlFnaVNoQ0VrUkVSRVJFUkRDVnJUYVp0YVptMHpyTXo2dHk2VXBqcEdQSEVWeDFpSWlJalNJaU9FUkVSd2lJamxEM0VLZ0FBQUFBQUFBQUFBQUFBQUdHM1BMY3NQVGZHL09KS1pSTlpKblVDVHIzRTJFTDdaSzdESlljbUxaVDJqUW9uV1NwYUVwVWxMcEVhVXZvYVFaa2JpUmt6Mmo4WnkrVGViN1NrMTEyTzB2RzR6VDZkT0swVFdzK2s5ZVRvcnB6Nlp0UHBMWEg3cS9jamJlM0hzejNUTlhKMDk2N3JpdDIvYTFpZExUazNOTFZ5WkkwNHg5SEI5WEpGdVVYcmpyT2szaFZWSG9JOEhBQUFBRS9mbEI0cXVEcXphK1pyWjhNc2t6cXJ4NXAxU0NTdDluRXFKTTd1U28wa3R4aHQ3TGxwU2ZVMEVzbGtYUXlVTlB2dVI3aEdYdi9idTF4T3YwTnBmSk1mQ2MyVHAvY25UREUvSFRUMDBlcy84QTZlWFliYlh3VHY4QTVKYXVuN2IzWEZ0NG5UU2JSdE1FWCtHczFpMjd0RVRyTWE5VVJ4aXlYZ2E0UFFvQUFBQUFBQUFBQUFBQUFBQjF2Zm12L2xHT1hQd3MySDFMcWhmcitXRUk5UklBQUFBQUFDUXJ5b1B5akhFYjRXYS82bDJvaTM1WkhaQ0N3a0FBQUFBQUFBQUFBQndqdVBrcngrNDkxYnR4dTNjdXVOWXhXMkRrTk1aZmxsUlZXMDlCSlVzbTZhaGRsZS9sNUtXaEJtbG1IR2ZlV1JIMnBQb1ltSW1lUXJlYzVmbEZkT3pYM2V2ZURHUHk1dHM5NDhCemZtZlV5WXRaQWJORGpaenRmYSt0V1ZTN0dXZmVsYkV5L2FqdE1yUXBLNng5S2tyVFhGUGloVkd6RE1jcjJEbE45bStjNUZjNWRtR1UyY3E2eVBKY2hzSk5yZFhWck5jTjJWUHNiQ1k0N0psU0hsbjZWS1VmUXVoRjBJaUlYQnRzQUFBQUFBQUFCelh4djB4YzhpZCthZzBkUmVPaWZ0SFlPTVlldVhIU2xUbFZXV3RtdzFlWHFrclN0UGdVRklVaWE3N2xYUnFPcjNLdllOTTZScU8wTHg2aHFjVm9LUEY2Q0czWFVXTjA5WlEwdGV6M2VEQnFhZUV4WDEwTnJ1TlN2RGl3NDZFSjZtWjlFampwZllBVmtmbE5uOEJmR1A0V2N2OEF1UGFGeW5ORXFiNHVBQUFBQUFBTHZQeWF6NGkrMS94c3M2L0Evb2tXcjgwd3NLaWdBR3hkbmJMd2ZUZXZzdTJsc3JJWU9LWUpndEhOeUhKNyt4VW9vMWZXd1VkeXpTMjJseCtYTGt1cVN6SGpzcFcvSmtPSWFhUXR4YVVtNWpydWZNbDUvd0NjOC90N1RjMm5uWlVHcGNRY3NLUFRHdkpUemZiamVNdXZOK1BkM0RFVnh5RzdtZVhLaXRTYk4xSzN2QzdXb2picmpFVmxSMzYxaUkvRkNQRVNNNCtEL21DOGd1Qm1lS3liVXQ0aXl3NjZseG5NKzFSa2JzbVJnK2J4V1NTMGJzaUkwNGwya3lTUEdMdGlXMFRzbE1HUkljSitNYmtkeUppSjVpODV3WTh6VGpSend4MktuWDJSTjRodGlMQVRKeW5TV1h6WWNYTnFsMXBwU3A4dkh6NnN4czV4bU90dFNrMkZlU2piWlUyY3hpRzY0VEpXcHJNSlNIaWtBQUFBQUFBQUFBQlNpK1VqN3RwODM1VGFvMHhUVDBUMTZQMXBMbTVLMjA0YWtWT1c3U253Ymw2b2RiNjlxSmFjUngrbGxyTWk5TGN4c2pQcWt5SzdTT0dxSlZ6aFdBQUFBQUFBdHZmSmg4TGRab2VYMnhIMkROaXl0OVBZWFZTdTVSSlM3U1F0ZzNsK3dTVXY5amhyUmtGYW96VTBSbzdTN1ZIM0xJcmVUNEVMV0F0cEFBQlU0K1ZDZjdqdi9Fdi9BTXY0dVkvVkVxbkF1QUFBQUFBQUxYbnlaL2tMWHhaSElMaTFjVG1vODIwZHFkM1lMRWNkUzJjOTZOR2g0WnNOcG9uRkpKNlcxRVl4OTF0dHNsTFV5MitzeTdXak1yZDQ5U0Z0SVcwZ0FBQUFBQXFCL0tPZUdzbWt6UENPYStHVlNQZVBNWTlYckhjbnFiQkVxSmw5VEdrZldIbDgvc0piamlNZ3h1TXFuZmVWMk5NTHFZVGZwY2tsMXVVbjBSS3JhTGdBQUFBQUFEZVd2ZGhadnFmTjhZMlJyZko3YkRjNncyMmpYbU01TlJ5VGkyVlRaUlRQdzNtWE9pbTNXblcxS2FlWmRTdGlRd3RiVHFGdHJXZ3d2TitXVDV6V3FlWXRaUTZuM1BNcGRWY25HbUkwQnVza3ZKcjhMMjNJYlo3RjJlQXo1Uy9Dcjhna09JTlQ5QkljOVlJMWtxRXVXMlR4UnJWcXpITGtsT0NLQUFBQUFBQUFBQUFFVy9PVHpiK0t2Q1NKYzQ1YVpFenRYZDBKcDFxSnByQXJDSkx0b0ZuNFJLanRaOWZJS1ZWWURFSTNHMU9va2s3WitDc25HWVQ2UlZGWm45QXBLODJmTUE1RDg3ODZUays0TWpLSmlsUEtmWGd1cXNjWEpoWURnOFoxS212RWdWcmp6anR0a0VobFJsS3RacW5wci9jYmFWTlJrdFIycnNSRWNrTnJjTGVZbTFPRUc4OGQzVHJDV2NoTVV5cXMyd3VYTGt4OGYyRGhrcDFDclhHYnhFZFhRalVTQ2ZoU1RRNHFEUGFhZlNsZllhRnBqV05CMkxIRjdrMXF2bDNwYkV0NDZndVBmTEY4bWorRk5ycFNtRVh1STVKRmFZVmQ0ZGxNSmg1OU5ka05HOCtsTHFDV3R0MXBiYjdDM1k3ekxxN014cE9pV1FZZ0FBQUFBR2xuUW9kbENsMTFoR1ltd0xDTEloVG9jcHBEMGFYRGxOTFlreHBETGhLYmRZZlpjVWhhVkVaS1Naa1lEclpmTWY0alQrRlhMYlplbTBSNVNjSWVtRm11cHJHU2JqbnZuckxLWDVVbkhVK3N1bWJreVZqenpNaW5sdkdSZUxOclhsa1hhcFBXL1dkWTFRd1ZFZ0FBQUFBQU9UTk83aTJUb0xaT0tiYzFIbGRsaGVmNFhaTjJkRmUxamlTVzJza3Fha3daMFoxTGtTMHA3U0k0dVBNaHlFT1JwY1p4YlRxRklVcEp4TWE4SkY5L3kxL05jMDV6eXhTdHhpM2xWV3VlU2xSV3ArdTdWMDJXaVBGeVZ5SEhTcWRsV3JuNWtsMSsreHlRUktkZGhLVXF5cWpKYUgwdXNKYW15TFZxekg2RXBZeFNBQUFBQUFBQUkyUE1LOHpmUlhBVEM1Q2NobnhNNDNmZFZic2pBdEwwMWl5VjNPVzZoMXVGZjVnKzBUNnNQd3BNcEJrcVcrZzM1blk0aUd6SVcyNzRWVmF6UDZCUVY1TThtZHZjdDl2Wkp1bmRPU09YK1dYN2hNeFlySk94NkRGYUNPNjh1cXhMRXFwYno2S2ZIS2RENmlaWkpTM0hYRnVQdnVQU1hubm5Mc1Jwd2hEZ0lTSmNmTEM4MXZabkFqTEdNUXlRclRZUEdmSnJadC9NTmZHK3FSYTRnL0pXb3BlWTZ3Vk1seDRWYmVFYXljbVFIRklnMjZFZGpoc3YrRkxacHRYWDlJdm42YjNMclRrQnJiRnR0Nmh5MnN6WEFjeHJtN0dsdkt0MHpTWkg3aVRYMkVWd2tTNnE1ckpKS1ltUXBLR3BNU1FoVFRxRXJTWkZhbU5PRXBjbkNBQVk4OHV2aW9jbmZ4ZWQwL2czeVVUSE1kWHVMNkFBQUFBQUFTeCtSdjhBbFNPTC93RExYL1IzMjJLYi9sSFlWaXlrQUFBQUFBQUFBQUFCMVpXKy93Q0hUZFB3czdHKzdDNUhJamtoeE1BQUFBQUFNc3VCSHg2T0YzNDJYSFA4TUdIQ0o1U096Y0ZoSUFBTmpiUHdXdDJmcmZQOWIzSFFxdlBzTXliRHA2elNTalpqWkpUVEtoMlFnakkranNaTXZ4RUtMMHBXa2pMMGtRNW5iOTVrN2R2OE8veGY2ekRscGVQMDF0RnRQM2ROSHplODlzdzk2N1J1dTBiai9VYnJiNU1WdndqSlNhelA2WTExajhWQWJLTWJ1Y055YklzUXlLR3V1eURGTDIzeHU5cjNmN3BCdWFPd2tWZG5EYzlCZTdqVFlxMEgraWticDdmUGkzVzN4N3JCUFZneVVyYXMvR3RvaVluOTJKZVcrOTJlNDdmdk11dzNkZWpkWU10c2Q2L0M5TFRXMGZ1VEV3K0dMempBQUE1cTQ5YjN6YmpadHZFdHZZRStncm5HWmgrdDFrbGJpYXpJNktXbndMckc3ZERSa3BkZmJRbEtRYWk5Mnk0U0htK2pyYUZGOG52blp0cDMvdG1YdGU5aitheVJ3bU9kYlJ4cmF2NDFuOStOWW5oTXV4ZUtlVGR4OFE3N2c3OTJ1WS9hTU51TlovTGtwUEMrTzMrYmFPSHhpZExSODBSSzdYeHg1R2EyNVFhd3BObjYydFc1TU9leTB6ZTBMNzdCMzJIWDVOSlZQeHpJb2pTMUtpejRiaG4yTDZlRktaTkw3S2x0TFFvOVNlKzlpMy9qM2NMOXYzOWRMMW41YmZxM3I2V3JQckUvdnhQQ2RKaVhvMTRqNWIyZnpQczJQdlBaN3hPTzBSRjZUTWRlSy82MlBKRWNyUjZUeXRHbHF6TlppWFBJK003T0FBQUFBQUFBQUFBQUFBQUFBQURDSHpFc2R4K3o0aDd2dTdLaXByQzZ4dkNKay9IYmVkV1FwZHBRenZYWUNmWEtXZklZY2wxY3Z0UHA0akMyMTlQYkhldmJqdUcrMmZsK3l4N1RQbXhZOG1lSXZGTDJyRm8wbmhhS3pFV2o4SjFZYzk5K3c5ajd6N1pkMnk5MzJXMDNXWEJ0TFd4em13NDhzNDdUYXZHazNyYWFUK05kSlU2STJZNUd4MElySnh4UHpuMm1IK3ZvNmZ1M1dsT2YvdERkZkYzanVOT0VaSm1QeGlKL2pqVjVJYnZ3UHhUY1RNMjJsYTIrTkxYcC9CVzBWL2dmWWJ6MjlJdWl2VWw5VDlsVWRSR1g2SHVIVWwwL1VITHIzN2ZldlJQN24vM3ZoWmZiUHh2WFd2N1JXTlBTOGY1YXkvY3M2dTFGN0VKUFgyeVlYMUwvQU8wOFpmckM1L3Z6ZXpINm43My9BTjdqVDdiK1BVblhYY1RId204ZjVLdy9KekxMMTh1aHpmREkvYVpaWWIrZjdDeWJOd3Y2b290M1hmWDUzMGo4SWlQOG1xL2o4SjhiMi9HTnYxMmoxdGU5djRPcnAvZ1doL0tKb0tGZkZtQmw2cVNuUExMRE5NMHI1MlQrOWtMNjRaa0NOTmlsR2d5cm53UGZHUkRqRjZHMmxPR2hCZXdSRFVQM3A3ajNEUDViYlo1cythKzByZ3hURkp2YWFSTXhPc3hXWjZZbWZqRVBVajdTZkhld2R2OEFiR25jOWpzZHBoN2xrM2U0cGJOVERqcmx0V0xWMHJiSldzWHRXUFNKdE1KVkJoNXRTQUFBQUFBQUFBQUFBQUFBQUFBRDQrUVpCUjRuUjJ1UzVMYXdhT2dvNE1peXQ3ZXlrSWl3YStERlFiajhtUys0WkpRaENTL1RNK2hFUm1aRU9UczludXU0YnJIc2RqanZsM21XOFZwU3NhMnRhZUVSRVErZDNmdS9hK3dkcno5NjcxbnhiWHRPMXhXeVpjdVMwVnBqcFdOYld0YWVFUkVmdXpQQ05abFZwNXA4cEozSjNaM3ZsWEZMZzY1eEZFdW93S25rOVVPcmpQdklWWTVMWU1kVEptMnlGVVpwUzIrcGt4SFpaYTlLa0xXdmZ6MnY4QXhlQjloK2htNmI5NzNNeGZjWGpsckVmTGlyUHJUSHJPay9yV3RhM0NKaUk4S3Z1Vjk5ZDE3MytiL3RteitwaThON2ZGOFd3dzI0VE5iVEgxTnprcjZaZHhOYXpOZjFNZE1lUGphdHJXdzZHUzJ1Z0FBQUMyUHdsMW83cXJqSHF2SEpyQzJMZXlvenpDOGJkU2FIMjdMTVpEdVErcXlXekl1eVJXUVp6RVJSZTBjZjA5VDZtUFBEM1Q3N1h5SHp2dUc5eFRFN2FtWDZPUFRsTmNNUmoxajhMV3JhOGY4QUtlKy8yeWVGWlBBL1pEc1BaOXpXYTl3emJYOXJ6Uk1hV2pKdkxUdU9tMGVsc2RMMHhUSC9BT0QrTEt3WStaNkFBQUFBQUFBQUFBQUFBQUFkYjM1ci93Q1VZNWMvQ3pZZlV1cUYrdjVZUWoxRWdBQUFBQUFOdzRubDJXWUZrZFJtT0RaUGtPRjVkajh0TStoeW5FN3F5eDNJNlNlaEswSW0xRjVUeVlkbld5MG9jVVJPTXVvV1JLTXV2cEFaSS83ZS9Paitlanl5L3dEMUdiZy8weEVhUjhBLzI5K2RIODlIbGwvK296Y0grbUlhUjhBLzI5K2RIODlIbGwvK296Y0grbUlhUjhCOEd5NW5jd3JtUVV1MzVYY2xMV1dUYVdTazJXOWRvVHBCTW9OU2tORTlLeWwxd20wS1daa25yMEl6UDU0YVFOQi90Y2NydjV6bklYNzlHeVA5SlJPa0IvdGNjcnY1em5JWDc5R3lQOUpRMGdQOXJqbGQvT2M1Qy9mbzJSL3BLR2tCL3RjY3J2NXpuSVg3OUd5UDlKUTBnUDhBYTQ1WGZ6bk9RdjM2TmtmNlNocEEyaTl2bmVVaExxSkc1OXJ2b2ZKYVgwdmJGeTkxTHlYU01uRXVwWGNLSnduQ1VmY1I5ZXZYMGhwQTR2a3laTTJROUxtU0g1Y3FRNHQ2UkprdXVQeUgzbkROUzNYbm5WTGNkY1dvK3BxVVptWmdQd0FBQUFBQUFBQUFBQlo5K1RnY1JwR1NiSjJEekp5bXNQM2gxeERuNngxVy9JYk1reXM3eVd1WlBOcnlBb3lKWGRqbUdUazF4cTZtMjU3K3VwTDNiSjl0RjU0YUVMaUl0SkFGWkg1VFovQVh4aitGbkwvdVBhRnluTkVxYjR1QUFBQUFBQUx2UHlhejRpKzEvd0FiTE92d1A2SkZxL05NTENvb0g1dlBNeDJYWkVoMXRoaGh0Yno3N3kwdE1zc3RKTmJqcnJpelNodHR0Q1ROU2pNaUlpNm1Bb24rZEI1b2ozTURZTDJoOUwzanllTkdzN3h6eExTQy93QnJPNDgzckhIb3JtWFBMWldhSkdGVTZ6VzNSc21ha3lPcXA3blZUc2R1TGRyWFRqUE5DQ1VWZ0FBUHIwR1EzK0ozVlhrdUxYbHZqV1IwazFpeHBiK2dzcHROZFZGaEdXVGthZlYydGM5R25RSnNkWmR5SFduRUxRZnBJeUFXTmVFL3lpSGJtcjJLakErWCtNeTk0WWRGOENHenRER2ZlNnEyNVVRVzBOc3BWYzF6Nm9HTTdEOEJwb2lKYnJsVllPS1V0MlJMbExNaUZFMCtBdE1jYStiZkZybHpVb3NkQjdqeExOYkJFUkV5eXc4NWFxWFA2TnMwSU54VjFnMTJpdnlhSEhaZFViZnJSUmx3blZvVjRUemhGMUZ1WW1PYVdWUWdBQUFBQUFCRUw1anZtN2FMNFJZNWZZWmlsdFRiVDVMU0lrbUZSYTJwNXFKOWJoZGs2eTRsaTcybll3WFRib29OYzRhWFBla25FMjA4elFoS0dHVnJsczFSV1ovUUtEZXdjL3pEYXVjNWJzbllGOU55Zk44NXlDMHlqS2Ird052MXExdTdpVzdOblNsb1pRMUhqdHFlZE1tMldrTnNzTmtsdHRDVUpTa3J5R3p3QUFBQUFBQVg4UElVMG85cUx5ODhJdnJDTDZyYzd3ekxNTndURzNDNnlFVjA5NkZobUw5eXpJK2thYmpHRlJKektFbWFVcG1tcm9TMUxJV2J6eFNtZUZJQUFDcm44cDB4WnlYckxpWG14UnlVMWorZDdSeFpjcm85M011WmhqK0kyelVjalQvZzVGSlRneTFIM2U3K2hGMitqdkZ6SDZvbFQ5RndBQUFBQUFCelR4MjMxbi9HSGRXdk43YXhuSWhabHJxL1p1WURjZzMvQUh2dG9UalRzRzd4eTViak9zUHYwZVMwa3VSQW1Ob1doYTQwaFpKVWxYUlJSTWF4b094RzRVZVlCeDU1MFlEQnlmVk9Vd1lPYXhhNk0vbkdvN3F3aU5aN2c5aXB0QlMycFZhWnN2WE5BbVNha3hiZUsycUhLU1hwTnQ0bkdHN00xbUVzM3hBQUlhT2ZmblNjYk9JRlpjNGZyeTRwZDhiK1N3L0hoWVRpbHEzUHhIRWJEM1RUY2pZK1hWaTNvRUU0anFWRzVVdzNYclpab0pEcUlpSFVTQ3Fpc3orZ2NyK1Vqelp1T2NYRSt2enZQTENzbDdpd25MY2h3ZmFiZFpEWXFvNzFrM0s5L01hdW9sT3gwUkNycmJFN2VJZ2xJTHdGVEkwcERmVHcxSVF0R2svZ0pRQlNPSE9RV2pjRjVLYVgyTm96WkVFcDJIN0l4cWJqOWlaTnRPU3F1VTUyU2FiSWF2eGtxYWF1c1p1bzhld2hPS0l5Ymx4bTFHUmtSa2N4T2s2anJTK1RQSGpZUEZUZU93dERiTWhlclpSZ040OVgrdk5OclJYWkhTUHBUTXg3TEtWVGhtcHlteWFsZlptUis0L0ViUTc0YnBJZFE0aE42SjFqVkRnZ1NBQUFBQUFBOTIzSEduRU90TFcyNjJ0TGpiamFqUTQyNGd5VWhhRnBNbElXaFJkU012U1JnSjFlRmZuMThvK05zT3J3ZmM4Yi9hWjFoQjhLTEVWbGwzSXJOcTQ5QVNTR2tzMVd3bHhiVmVRUklpTzV3bzkxRm15RjlFc3R6SXpSRVNhSnBFaXk1eDU4Nlh5L09RVVNBeVc1WWVtOHFsRTJtUmlHODJXdGZQeEhsOXlVb1RsMG1UTDExTlM2NDJaTmt6Y0xlTWpUM3RvVXRLVG9tc3dsS0ZSWkRRWlRXUnJ2R2J5bnlPbW1FYW9sdlJXY0szckpTU1BvYW8wK3Zma1JIeUkvYlNzeFNQc0FBQUF4dTIxekQ0cTZKYm1IdDNrTnFEQTVrSHI0OUpkNTNqNmNuTlNTTlNtNDJLUnBzbkpacnhKTHFhR1lqaS8wQk1STWlJSGZ2eWpMaDVyMXFiWDZQeFBZbklHOWJZZU9EWXRWcm1zc0Nka0o3a05OeWJuTDRuMTVOa2F5SlJtM2p6aVRSN0Mrdm9LcUtUNm1xdnh5czg3VG5IeWVac01lZzV0RjBQcnlhcDFwV0lhWDk4TWNzcDhNM0ZHeTFmNSsvTWw1clBjT09vMjVEY1NYWFY4cEpuM3hPblFpcmlzUWhFVTQ0NDY0dDExYTNIWEZxY2NjY1VhM0hIRm1hbHJXdFJtcGExcVBxWm42VE1WRDBBQUVsWGxsK1lwblhsLzdvYXVrblB5VFNPZFNvRmJ1TFhqVHhFYyt1Wk4xbUZsK09FOFNtWW1ZNHI2MHQxbjl5aWZIOFNJNnBCT052c1UyaldCMkZtdGRrNFB1SEFjUzJoclhKSzdMc0R6bWpoWkZpK1JWYmlseExLcm50a3RwWnR1b2JrdzVjZFpLWmt4bjBOeVlzaHRiTHlFT3RyUW16eVMzd0FBQUFBQUlWUE82NEZPY3UrTmJteHRmVXBUdDY4Zll0dmxlTU1RbzNmYVpyZ2kyVVNzNHdOdndVbkpuVC9WSVNiT29aSkx6aXA4UlVWbEtWVDNGaXFzNlQrQW9PQzhnQUFBQUFBQUI5YWh2NzNGcnFyeVRHTHEyeHpJcU9kSHM2VytvYkdaVVhWUFpRM0V2UkxDcnRLOTZQT3I1MFY1SkxiZGFjUTRoUkVhVEl3RmszaFA4b20yWHJ5TlRZRnpJeFNYdDdHSTNoUTJ0dDRlaXZydG4xOFFqSkNIY2t4OTVkZmpXY2VBam9Sdk5PMVUwMEpOYnFwYnArbWlhZkFXWk9QZm1CY09PVVVPdlhwdmYyQTN0M1lrMmxHRVhGc2pFTmhNeUZJSTNJcThHeXNxZkpaSnNPZFVHOUdqdnhWcVQxYmRXazBxTzNOWmptbG1PSUFBQVlxYjk1dzhTdU1NU1k5dkRmZXU4S3NZYmEzRllvcTdhdmM4ZkpIVWo5U3dERzAyK1pURTkvUkpyYmdxYlFveUpTazlSTVJNOGhXdjVxL0tNc2x5YUZiWUp3bncyYmcwS1UzSWd2N28yUEFycFdYazJvL0RPVGhPRXRTTE9pcEhGRWt6YW1Xams5MDIzUC9ZNDd4RXROY1UrS05WWkRNTXh5ellPVVhtYloxa2w1bUdZWk5ZdjIyUTVQa2xuTXViMjZzNUt1NStkWjJjOTUrWk1rT2RDTHVXc3pJaUlpOUJFUXVEYllBQUFKRS9MeDh4N2NubCs3SE8zeFYxN0xkUlpSWXczTm9haXNKaHMxT1NSMlUrckhkVU1sYmNqNjJzMWdSRDZSNXpTRFE4U0VOU20zMlVwU21KckVpL3Z4ajVRNmE1ZWFub3R4YVN5cUxrV05XemJiTm5YTGNqczVMaHQrbGhwNmZpV1owelQ4aDZpeU9zOFpQZTBzMU52TktSSWp1UFJuV1huTE14TWMwc2hCQXg1NWRmRlE1Ty9pODdwL0J2a29tT1k2dmNYMEFBQUFBQUFsajhqZjhxUnhmOEE1YS82TysyeFRmOEFLT3dyRmxJQUFBQUFBQUFBQUFEcXl0OS93NmJwK0ZuWTMzWVhJNUVja09KZ0FBQUFBQmxsd0krUFJ3dS9HeTQ1L2hndzRSUEtSMmJnc0pBQUFBVk4vT1Y0M3ZhdDVDeDl5MGNBMjhMM25GVlpUSEdVSDZ2WGJFbzJJc1BKb2puYVJwWk84aG5HczBLV3J1ZmtQUyswdWpSOU5sUGF2djBkeDdIUGFzMXY5cjJjNlI4WnhXbVpwUDhBeloxcCtFUlg0dEd2dUM4UnQyVHl1UElkdFhUdDNjNjlVNmNxNTZSRVpJL0RyanB5UnIrYTAzMDRWUThqS0xBSUFBQURJbmpMeWcycnhTMkxGMkRyQzM4SHh2Vm9tVTR2Tzduc2N6U2laa3BrT1UxNUQ2Lzlid0pUWFpMaUxXcFRLMDl5eVY4UHlEeDd0dmtteG5ZOXdycnByTkx4K2JIYlRUcXJQOGNUd3Q2eHlkdDhOODA3MzRQM2F2ZGV6Wk5OZEl5WTdjY2Vha1RyMFhqOS9wdEdscXpNeldZMW5XNC94UDVkYXE1ZWE5YXpMWDA5TUc4cjBzUjgxd0N5bHhsNVBoZG02U3lRMVBZYU5DcGxQT1UwdFVHeGJRVWVXaEtpNk52TnZzTmFzK1MrTWR5OFkzMDdYZTE2c051T1BKRVQwWkkvRDRXajlhczhhL2pFeE0rZ0hnM25uWlBQTzFSM0R0VnVuYzAwak5ndE1mVXcybjB0RWM2VzBub3ZFZE5vMTVXaTFhNVREcmp1d0FBQUFBQUFBQUFBQUFBQUFBdzQ4d2I0bDNJbjRQWm4rUDE0N2Y0RC9mSHQvd0RXSS9pbGpQM2wvd0FMKzkvMUszK2xWU29TZjdZM09yTHlzeVI2dFVrLzJ5RjJIRXZIQnFVSCsyTGtPSGVHcVFmN1l1dzRkNFd3L0tHK0p0Uy9DQm5mK1BSUnFSN3ljZk5iL3dCV3hmeFM5TXZ0Vi93bHcvMTdjLzZVSlBoaXRzZ0FBQUFBQUFBQUFBQUFBQUFBTnE1dG5HSjY0eGUzelBPTDZ2eHJHYUtNcVZaVzFtK1RMREtDTWt0TXRKOTA3TG15M2xKYVlqdEpXL0llVWx0dENscVNrL29kcTdWM0h2ZS94OXI3Vmh2bjMrVzJsYVZqV1orTXo2UldJNDJ0TXhXc1JNMm1JaVpmQjhtOG43QjRiMlBjZVMrVWJ2RHN1eWJXblZreTVMYVZpT1VSRWM3WHZPbGFZNlJhK1M4eFNsYldtSW10QnpJNXM1WHlZdTEwRkdWaGl1b2FlVW82ZkdEa21tWGtiN0R4bXhrT1dsSFVUTDh4UklTdVBENnVNUU92UktuSE81NVc4L3RuN1dkdjhGMnY3WnUramNlU1pLL1BsMDRZNG1PT1BEcnhpdnBhL0MyVDFpdGRLeDRvL2NkOXpQZi9BSHM3blBhZTEvVjJIdDV0OGsvUjIzVjgrNHRXZmwzRzc2ZUZyOEluSGgxdFRCNlRlL1ZrdGdxTXN0V2dBQUFHVGZFRFNUMi9OOTRUaEw4VmIrTlJKaFpQbTdoTjk3VE9KVURyTW14WWZNejZOcHVwQ21hNUN1aXUxMllrK2hrUmpvbnVUNVRYeER4RGRkMXBhSTMxcS9Td1I2em15Uk1WbVBqMFIxWkpqMWlreHF6Yjl2SHRsazkyUGRmdG5qT1drMzdManlmdE85blRXSTJtQ1l0a3JiNGZXdDBiZUo0Nld6Vm5TWWlWdFpLVW9TbENFcFFoQ1NTaENTSktVcFNYUktVcExvU1VwSXVoRVhzRHpybVptZFo0ekw5QWRhMXJXSzFpSXJFYVJFY29oN0NFZ0FBQUFBQUFBQUFBQUFBQU90NzgxLzhBS01jdWZoWnNQcVhWQy9YOHNJUjZpUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWN3NkIwWnNIa3B1TEFOSDZ2cS9mWE5kaDM4YWtxME9kNllOZEhOSzVOdGZXNzdhSFZ4YVBIYW1PL09tdWtsU200ekN6U2xTdWlUaVowalVkbGh4ZDQ3NFB4UzBMclhRZXZXZW1QNjl4NlBXdTJUakxiTTdKTDZRcGMvSnNydENiOXg3NTVOZlNwRTE0ays0YlU5NGJaSmJRaEpXWm5XZFV1ZlJBQUt5UHlteitBdmpIOExPWC9BSEh0QzVUbWlWTjhYQUFBQUFBQUYzbjVOWjhSZmEvNDJXZGZnZjBTTFYrYVlXRlJRS3BmbnUrYVQ3M3M1SHdaNC81Q2c1c3BsMnM1R1p4VFRlcW9NWnd1eC9UdFROaU8raVhLUjFMSlRJL29iUmxYSzZxWE5hUmNwWDFsQ3BLTGdBQUFBQUFENkZUYjIxQlp3YnFpdExHbHVLeVEzTXJiYXBteWE2enI1Yko5elVxRFBodXN5b2tocFhwU3R0YVZKUDJEQVN3Y2YvTzg4d2ZRalVDcmQyckQzUmk5ZTIweTFqdThhYzgwZDhKdEpOKzZ6T0hNbzlqUHVlRWtpVDQ5dzgya3lJK3crcXU2bWFSSWxrMXA4cHlyVnNzUmR4Y1VaMGVRandTbFhldE5rc1MyWCtwZEpDbU1XeWpHNFM0bmhtWFZDVlhEM2YzZEROUGIzS3ArbjhEVmxkUi9LU09DOWlUYUxiWFhKckhuL1ZTZGZjazRUcml3Z0ZKSlRhVlJJMGlzMnpKblBtZmVha3JYRlpTYVVIMTdWR2xKeDBTblZwN3Y1U2J3ZWdIS2FwOVljbmI1OW9tdlZYaXc3V1ZaVnkxTFMwdHd2V1plM0RzbzVNa3RTVE5VSStxMGRDSTBtU3c2Sk5XTE95L2xPVmFobCtMcDNpak9rU0YrTVVXNzJYc2xpSXl4MExwSFUvaTJMNDNOWEw4UXo2clNtNFo3TzNvUnE3dTVNL1QrS05VUmZJL3pxZWZuSTZMWVVjbmFjZlQrRzJUTGthVmlXajY1L0IycEVkMUsybldaV1d2VDdqWWI3TW1PczIzMmZmaE1WNUptU21laDlCVkZZZ1JST09PT3VMZGRXdHgxeGFuSEhIRkd0eHh4Wm1wYTFyVVpxV3RhajZtWitrekZROUFBQUFBQUFBYy9jV3VQdVdjcU9RV3F0QllXaHdyalpHVndxZVJZSWFONXVneDVnbkxMSzhvbE5sMU5VTEdNWmhTNTdxUzkwdEVjMHBJMUdSSEV6cEdvN09mQjhOeC9YV0ZZZnI3RTRSVnVLNEppMlA0YmpOY2srNU1ESDhZcVlsSlRRa3FJa2tvb3RkQmJiSStoZGUwV09hVzZRQUFBUWtmS0JkV1A3RDh1L0pNa2lSZldaT205bmE3Mldyd3lXY2h1QklsV090N0Z4dExaa3B4bGlOc0kzbmtuMVFscGszREw2R1NrMTAvTUtGQXVvQUFBQUFBQUFmVnBMMjd4bTJnMzJOM0Zyajk3VnZsS3JMcWtzSmRWYlYwbEpLU21SQnNZRDBlWkVmU2xSa1MyMXBVUkdmcEFablVIbVllWURqVlk1VVZmTC9mYTRUa2RNVXZmZllOMWtjdGxoQlBKUW1MWlpDL2FXVU5hRXZtUkxhZFFzaUpCZGZjSTdZNlkrQTRzMkx6RjVaYmRyMzZmWjNKWGV1ZFVjcGxURWpIOGwybm10bmpyN1Mwa2h4RHVQeUxsVk12eGtFUkxNMk9xeUl1N3IwQ0lpT1F4dkVpZHo1UDV5bkxSL01oV25NZ3NWUk1HNU5VcmVHZGpyaWtRNHV5OGQ5ZHVOZFRuUzd6THhMSW43R2xhU2xCcVhKdG1lcHBRa3pLaThheHFMMlF0SkFFSWZuUytXeWZNM1VUTzNOVlVxWkhKRFRWTE5WUndvVENUbmJQd05weCswc3Rlck5DZkdsWGNDUTQ5Tm9TTTFGNjI4L0dJaTlkOFJ1dXR0SjA5QlF4ZVpkanV1c1B0T01Qc09MWmVaZVFwdDFsMXRSb2NhZGJXU1Z0dU5yU1pLU1pFWkdYUXhkUS9NQUFBQUFBQUFBQWJ2dy9ZT2U2OW5MczhCemZMOEhzblBENzdERDhsdWNhbkw4SnhMclhmTHBac0o5WGh1b0pTZXF2UW9pTXZTUURKK2o4eGpudGpyVFRGYnpGNUhxWllmYmtOTjJtM3MydmtvVTBsbERiSmUvdHZaZFlhVXNKTDFjL29Icys0OTByckhUSHdHNXJUelJmTU11UEE5YjVmN3ZaOVg4WHcvZXZNSlZIM2VONGZmNC92SWl2OWE2ZUVYYjR2ZjJkVDdlbmNycTZhL0FZOVpyeWE1STdLWmVqYkc1QmJ2eitQSVFUYjdHYTdYenpLbVhtMCtFU1VQTlh0L1BRNGdpanQ5Q01qTDNDZm5FR2tEaEFTQUFBQUFBQUFKdnZKMTgwdXg0V1orMXB6YjFuTG44WDlqWGlGMlR6aHV5bjlRWlhQU21Nak9hWmhQYzQ3amRnNGxsdTloSTkwVEtDbXgwbSt5NHhNcHRYWDlJdmhWbG5XM2RiWDNOTllRYmVudDRNU3pxcldzbHg1OWJaMXMrTzNLZzJGZk9pdU94WnNHYkZkUTQwNjJ0VGJqYWlVa3pJeU1XVXRjQUFBQUFBS1Fmbm5lV25JNDU3S244cWRPMEhab25iVit0N05LYXBpSWJnNnAyWmJ1cWRrdElpeDBKUkF3M09KYWx5SUtrbDRFT3dVOUQrZ3RyZ3RydTB0cndubWhYdEZZQUFBQUFBQUFBQURJbkF1WHZLM1ZrZG1GcmZrcnZuQjY2T2FEYnFjWDIxbmROVEg0WkdUYVhhYUZldFZiN2FDUDBKY1pVa3ZuQ05Ja2MxLythTDVobnZWN3ovN1grNy9BRlQvQVBqZlhoSzk5ZjhBMm4xci93RHJ2Wjc5L3dCMTlIL3RIOXoraC8zUDNJZE5mZ09ITTU1a2N0OW1NUFJOZzhuZC9aalh2cGRTNVZaQnQ3UGJLbUpFaHB0bVEyMVN5TDVWVXczSWJhU1RpVU1wUzUwOTBSbUdrUU1iMUtVcFJxVVpxVW96VXBTak0xS1VaOVRNelAwbVptSkhnQUFBQUFBQUdZWEN2bTd1M2d2dG1Gc3pVZHl0MnNtT3c0MmY2N3M1VWtzUDJQajhaYi8vQUxxdjRiS3VqVTZHaVc4cXZzRzArdFY3NnpVZzFOcmVhZGlZaVkwa2RnSndtNXg2UzUyYW5qYkoxSmJlcjI5WWlCQzJKcnEwZFFXV2E1eU9YR040NnE0WkpESlQ2dVdiVHAxOXBIU2NPd2FiWDJtaDVxUXd4Wm1OSjBTNUM1ZGZGUTVPL2k4N3AvQnZrb1J6SFY3aStnQUFBQUFBRXNma2IvbFNPTC84dGY4QVIzMjJLYi9sSFlWaXlrQUFBQUFBQUFBQUFCMVpXKy80ZE4wL0N6c2I3c0xrY2lPU0hFd0FBQUFBQXl5NEVmSG80WGZqWmNjL3d3WWNJbmxJN053V0VnQUFBTVpPWDNHekh1Vm1pTXYxTmNuR2gyMHRsTjFnMSsrMTRoNHpuTlUwOHVodGlNa0xjVEVkVTY1RG1rZ3ZFY2dTbjBKTWxLSlJkZzhYNzluOGI3emk3bGkxbkZFOU9Tc2ZyNDUvTkg2ZVZxL0MwUkxwdm52aUcwODM4WjNIWXR4cFhQYU92RGVZL3dCWG1ycjBXL1JPczB2cHhtbHJSSEdkVkhYT01KeWpXK1laTGdXYTA4cWd5ekVibWRRMzlSTVNrbm9WbFh2cVlmUVMwR3BtUXdzMDk3THphbHRQdEtTNDJwU0ZKVWUzdXozZTMzKzF4NzNhWGkrMnkwaTFiUjZ4UDhVL0dKNHhQQ2VMemM3bDI3ZTlvMytidGZjY2RzVyt3WkxVdldlY1dyT2svaE1lc1RHc1RHa3hNeE1TMnNPUTRJQUFBRGxuU2U3OWxjZTlnMCt5OVZaSEt4M0phbGFVT2RpbHVWbDNWcWZZZm1ZL2tOY1MwTTIxRlpISFFUekMrbnBTbGFGSWRRaHhQemU3ZG8ySGZObGJ0L2NzY1pOdmI5K3MrbHF6K3JhTmVFL3VUckV6RDd2am5rbmVQRk82NCs4ZGt6V3hiekhQL052WFdKbW1TdksxTGFScldmd21KaTBSTVhEdUV2T3ZXdk1qRHZFclZSc1YydlFRa081eHJXVEw4YVhDUVRpSS93QmNHT3lIVzJWWGVMUzMzRWtUcVUrTERkY1N6SVNrMU5MZTFjOHQ4TzdoNHJ1dE1tdVR0dDUvbThzUnduMTZiUityZVBoeXRFYTE5WWpmejI1OXpPeis0SGI5Y09tRHZtS3V1YmJ6T3N4NmRlT1owNjhjejZ4eHBNeFc4UnJXYlp6anA3SlFBQUFBQUFBQUFBQUFBQUFERGp6QnZpWGNpdmc5bWY0L1hqdC9nUDhBZkh0LzlZaitLV00vZVQvQy92WDlTdC9wVlVwa0dOelllV0Y0MWhxRUgrc2Y2eGk1RGgyaHFrSCtzZlQrcUxzT0hlR3FRZnAvV0Z5SER5UnhXeGZLRytKdFNmOEF6L25mK1BSUnFWN3gvd0I5Yi8xZkYvRkwweCsxZi9DYkYvWDl6L3BWU2ZqRmJZNEFBQUFBQUFBQUFBQUFBQUJ4N3RMYWVFYWF3bTMyQnNHNlpwTWRwMnk3M0ZGNHN5d211a3IxT3BxSVpHVHRoYlQxcE5MVEtQU2ZRMUtOTGFWclQ5bnNIWU82K1Q5MHg5bjdOaW5MdmNzOHVWYTFqbmU5dVZhVjV6TS9valdaaUo2aDUxNTM0eDdiK003ankzeTdjMTIzWjl2SEdlZDhsNTE2TVdLblBKbHlUR2xLUitOcG10SzJ0RllybG55OHpubEJsU2psTGswR3RhU2M4N2h1RHR1bzhPTVhhcU9tN3YzR2ZjMmVSeW81bjFVbzFOUkVMVTB4MEpUcTNkNy9BRzc5dCswK0Jkdi9BSnVLNXUrWmFSR2JQcHhuMTZNY1QrWEhFK25DYnpFV3Z5ckZmRUwzL3dEdUY4bzk4ZS9UT2ViN1R3cmJaWm5aN0tKalN2RHBqTm5tT0dYY1dycnJNek5NVVduSGkwaWIyeVloakpEWG9BQUFCNUlqVVpFUkdabVpFUkVYVXpNL1FSRVJla3pNdzVjWjVFUk16cEhOWnQ4dkhqSTlvWFV4NUxsVmVxSnNyWnlJTnpleDVUUGh6Y2R4OXB0Ym1QWXc0bFptNUhsb2JrcmxUVWRHMWxJZkpseEpuR1NZMFM5NS9PNitYZVJmc1BiNzlYWTloTnFZNWlmbHlaSm4rY3kvQ1kxaUtVbmpIVFhxclB6eTl1UHRBOWtzbnRUNEIvdnJ2MkdjZm12ZklwbXoxdEdsOXZnaUpuYjdhZGVOYlJGcHk1bytXWXlYakhlSm5EV1Vnb3c0MjVBQUFBQUFBQUFBQUFBQUFBQUhXOSthL3dEbEdPWFB3czJIMUxxaGZyK1dFSTlSSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMU1LRk5zNXNTdXJva3F3c0xDVkhoUUlFS083S216WnNwMURFV0pFaXNJY2ZreXBMN2lVTnRvU3BhMXFJaUl6TUJmRDhtYnl3a2NMZGNQYmgzQlVSMWNtZHAwekRObERlS1BKVnFiQ0pDbVp6T0NRcERSdW9QSXJSOXBxUmV2dHJVMzR6TE1ScnFpTXQ2VGF0YlhoSEpLY0lVQUFBS3lQeW16K0F2akg4TE9YL2NlMExsT2FKVTN4Y0FBQUFBQUFYZWZrMW54RjlyL2paWjErQi9SSXRYNXBoUE5zSEhydkxzRHpURmNhekN6MTdrV1NZcmYwVkRubExEZzJGdmhseGExVXFEVzVSV1FMTkRsZk5uVVV4OUVscHA0dXh4YlJKTXk2OVNvSFd6ODIrR08vK0ZtNExQQnQ2MTBpd2R2WmRqYjR0czZJdXhzY1cyaENVODFJblh0TmVXRFRjbVZadFB6MGUrVVdUMnpZa2gwdkZTYVhHblhiOFRFOGtNT0JJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxxL2tEZVh4TDBqck9YeTcyclNMaGJNM1RRTXdkWlU5bEZTaWJpT281YnJGZzNlcmJmYUo2SmJiSWVZWmtvNkgxUlRzeGpKUmV0UHRsYXZPdkNCWTNGQ1FBQUFIRUhJRFVWUHYzUjIyOUtYcTBNVm0wOWVaWmc3MHhiWnUrOWoyUTAwdXZnM0RTQ01qVklwcDd6VXByNXpqS1JNVHBPbzZ2SExzVnZzRXl6SjhJeXF2ZXFjbnczSWJyRmNqcXBCZEg2eSt4NnlrMUZ4WHZrWG9KNkZZUTNHMWYra2t4ZlEyOEFBQUFBQUFBQUFBQUErN2krVFh1RjVOanVZNHRaeXFYSnNUdmFqSnNkdVlMaHN6YW05b2JDUGFWRm5EZFQ3cHFWQXNJcmJyYWk5S1ZvSXdIWno4U3VRVkZ5bzQzYWQzOWovZ05SdGtZWlhXMW5BanVrODNTNVZFVTdUNW5qeE9FcFhlZVBaYlhUWVJxUG9hdkE2bVJkZWdzVEdrNkpaRkNBQVZZZk9yOG9HYm1NcktlWlBGakdmV2NtVTFLdnQ2NmxvWWppNWVUdW9VOUt0Tm9ZWEFZN3prWklwb3pYZFZyS0NWWUVnNWpDVlN6a0psWEsyOUpRcUhpNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDOWg1QTBMbDFBNGx1Tjc4Wk5uU3o4cXZsOFowWk03WW5zSkdJdnRTVld4K0JLTlNHTlh2dStydVk0bDNzZjdUa0xhU2RldUVvV3I2YThPYVU3d29BQUFBQUJzN1lPdjhOMnJoR1U2NDJIajFibG1FWnJTenNleWJIYmRoTWlCYVZWaXlwbVF3NmcraTIzRTlTVzA2ZzB1c09wUzQycEswcFVUa092dTgwTHl6ODc0QWJUVS9WTjNPV2NkYzRzSGxhdTJQS1lRNjdEZlcyNUxkMS9tcjhSQ0kwTE1LZGhDelpkTkRMTnhEYk9Td2hLa1NvOFc5VzJzZmloRm1LZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFIM2NZeGpJODJ5T2p4REVLTzF5YktjbXRZTkhqMlBVY0dSWjNGMWNXY2h1SlgxbFpYeEczWk15Yk1rdXBRMjJoSnFVbytoQUw4dmxGK1dIVzhETmJ6TTR6OTFpNDVKYlZvcTVuTzVNWjVEOVZnR1BlSXhhczYyb1gyVnVNejNJMWcyMjdiVGtxTnFaTlliU3oxWWp0dU8yYlcxL1FsSU55NitLaHlkL0Y1M1QrRGZKUkVjeDFlNHZvQUFBQUFBQkxINUcvd0NWSTR2L0FNdGY5SGZiWXB2K1VkaFdMS1FBQUFBQUFBQUFBQUhWbGI3L0FJZE4wL0N6c2I3c0xrY2lPU0hFd0FBQUFBQXl5NEVmSG80WGZqWmNjL3d3WWNJbmxJN053V0VnQUFBQUNISHpTUEwyZDVFMGE5NGFmcUVMM2RpZFVtUGUwRU5DRzNkbzR2WG8rZ1JVSjZvUTltZVB4eU1vS3oraVRZcGVxS05hbTRhVzhwKzNmbThkaXpmN283cGIvd0R4R1cydGJULzBONTlmK1JhZnplbForYmhyYlhYL0FONmZhcWZMTnQvOXBPd1k0LzhBdEhncHBla2Yvck9PdktQeHkwajhrODcxL201MTB4eEZVV1RHa1E1RWlITWp2UlpjVjUyTktpeVdsc1NJMGhoYW1uNDhoaDFLWFdYbVhVbWxhRkVTa3FJeU11bzJScmF0Nnhhc3hOWmpXSmpsTWZHR2oxNlh4M25Ia2lhNUt6TVRFeHBNVEhDWW1KNVRIckQ4UktrQUFBQnZQWHV4TTIxVG1ORm4rdThrczhUeS9HNXJjK291Nmw4MlpNZDFCOUhHWGtHU21Kc0NXMFp0U0l6NkhJOGxsYW0zVUxiVXBKOFhmYkhhZHkydDlsdnNkY3UxeVJwYXRvNFQvd0FVeHppWTBtSjR4TVMrajJydTNjZXg5d3hkMDdUbXZnMytHM1ZXOVowbUorRStrMW1PRnF6RTF0RXpGb21KbUZ1emdINWl1RmN1NlJuRDhxOTdjTjMzVHdYbjdqRTJsdU0xT1d3WWFTTi9JOEpjbE91dVBOSmFNbHk2OWJpNVVQb3BSZUt3bnhpMWo4MThGM2ZqR2FkMXR1ckwyVzgvTGYxcE0vcTVOUDRMYWFXL0MzQnZqN1hlN1BidlBOdEd3M3ZSdC9LTWRabStMbFhMRWM4bUhYWFdOT05xVE0ycHhuNXF4MUpMeDBCbUVBQUFBQUFBQUFBQUFBQUdHL21EL0V0NUZmQjdNL3grdkhiL0FBSCsrUGIvQU9zUi9GTEdmdkovaGgzcitwVy8wcXFVaUQvWElibVE4c3JOU2cvMXlGeUhFdkdqVXBQOWN2MXlGMkhFeVJ4YXRKLzFqK2IrcUxsWEN5UXRqZVVMOFRXbCtFRE8vd0RIb28xTDk0Lzc2WC9xMkwrS1hwZjlySCtFMkgrdmJuL1NoS0FNVnRqUUFBQUFBQUFBQUFBQUFBY1A3dTNscjNqL0FJUE56cllkdW1EQ2FKeGlwcW81b2R1c2x0aVpXNnhTMFVGUzBIS212OW51bEdhV1dFZFhIVm9iU2FpN0o0cjRwM256SHV0TzA5bXg5ZVdkSnZlZUZNVk5kSnZrdDZWajRjYlduaFdKbVloanYzTzkwZkVQYVR4akw1VDVmdUl4YmF1dGNXS3VrNXR6bDBtYTRjRk5ZNnIyMDR6TXhTa2EzeVdyU0p0Rlgza3Z5ZDJCeWN6VThreXQzM3JvSzN4WStKWVZCa3V1MDJOd1hEVDRpa210TGZyOXhPN0NWS21yUWx4NHlKS1NiWlEyMGpmWHdid1BzL2duYS8ySHQ4ZlUzbDlKelo3UkVYeTIvaDZhVi9VcEU2UnhtWm0wMnRQaHg3MSs5L2x2dmQ1TC92cnY5dm9kcHc2MTJtenBhWnc3YWs4OU5kUHFacjZST1hOYUl0ZWRLeEZNZGFVcmpjTzdzTWdBQUFBQ1gzeTVlRmNuTUxXcDVBYlRxVk5ZZFR5V3ArdWNlbnNwL3dEelpjUlhsZUZrMDZPNzZTeDZta01rcUtoU2Y4T2trUy83ZzEwa2EzZTlmdWpUdHUzeWVIZGd5YTl6eTFtdTV5Vm4vVlVtT09Lc3gvMGw0bjU1aWZrcncvUGI1UFEzN04vdHB6ZVJiL2IrN2ZuZTNtdmptMnZHVHQyM3lSLytsWnF6T201dldmOEE5WHcyalhGRXgvUDVOTGY2ckhwbG4yR29EMWtBQUFBQUFBQUFBQUFBQUFBQUFCMXZmbXYvQUpSamx6OExOaDlTNm9YNi9saENQVVNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBM0JpbUtaTm5XU1VtSFlaUVhHVlpYa3RsRnA4Znh5Z3I1VnJkWE5wTmRKbUpBcmE2RTI5S2x5bjNGRVNVSVNaL3FBTHFubEplVEhWY1lEeC9rYnlicjYzSXVReW1FejhOd1ZTb2xyamVsamZTUnRUM24yemZoMzJ5bTJUNmV0TnFWRHFWS1VtTWJyeVV5eXRXdHJ3amtMRFFvU0FBQUFySS9LYlA0QytNZndzNWY5eDdRdVU1b2xUZkZ3QUFBQUFBQmQ1K1RXZkVYMnYrTmxuWDRIOUVpMWZtbUZoVVVEZzNrUnh3MDN5cDFqZGFqM2hobGRtV0gzQ0ZPTW9rSkptM3grMlN3OHhEeVBGcmh0UHJ0RGtOYVQ2alprc0tJKzFTbTNDVzB0eHRjeE14T3NDaS81a0hsQzd0NExXVm5uZU5wc2RzOGJKTTQvZXZaTmRCN3J2Q21aY2dtNEZOdFdxaHRFM1R5MHVPSllidG1FKzlNNXcyL1RGZmVURFJkcmFKL1NoRUdLZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFGaXp5YlBLRnR1UU9RWTd5ZzVNNG5LcjlBVWI4SzkxemhON0hTeTV1dTVpeVc1RUd4czZ1VTB0eDdWVUkyZTkzeFVvYnZGbWhwdnhZbnJIZFJhMm5DT1l1d3BTbENVcFNra3BTUkpTbEpFU1VwSXVoSlNSZENJaUl2UVF0SmVRQUFBQUFCU1krVUljSnAyb3QrUWVXV0cxUi92YTcrZlpnNXF1S2hYZzQxdU9ycnUyVjZ5bnRKREVYUHFHQVU5aFJHbzNMQ0pZR3ZzNnRFdTdTZFkwUXJzQ3NBQUFBQUFBQUFBQUFBRnRuNU5meW1PVFc3aTRmWkxhRWJsYTRXNXRXeDVVaFBlcUZMWENvTmowa0VualNaTnhabnZYWU14MmpWMVZKblBkcEVUaWp0M2oxSVd0UmJTQUFDc0o1c2ZrZ05iTWw1UnlXNGFVVVdEc0tZNVB5SFpPam9KUjROYm5NdHp3MzUyU2EyYVAxZUhWWmMrb25uNXRXcFNXTFYxUnJqZUhMTTJwbHl0L1NVS2ZsdlVXMUJhMlZGZlZsaFNYZFBPbFZsdlQyOEtUVzJ0VlpRWDF4cHRmWlY4eHBtWEJuUTVMYW0zV25VSmNiV2swcUlqSXlGd2ZQQUFBQUFBQUFBQUFBQUFBQUFBQUFBZnZGaXlac21QRGh4MzVjeVcrMUZpUklyVGo4bVZKZmNTMHhIanNOSlc2OCs4NnNrb1FralVwUmtSRjFBV3F2S3Y4aWlkTms0N3lGNXk0eXFGV3NuRHU4RDQ2V3lGSm5XRHlIRXlvRjF1S0wxSW9WZTJTRU9ONDJydWRrR29rMlpOSVE3QmV0MnY2UUxiTExMTWRscVBIYWJZWVliUXl3d3loTFRMTExTU1EyMDAyZ2tvYmJiUWtpU2tpSWlJdWhDMmwrZ0FBQUFBQUFPTzlyNmwxdnZQWCtTNnMyMWg5Sm5lQTVkQVhYWHVOMzBSTXFISmJNeWNqeW82eU5FbXV0YTZTaEQ4T2JHVzFMaFNXMFBNT051b1FzbXVuSVVUZk01OG9MYXZCMjN0Tms2OGF1ZG44WUowN3VnNW0xR09Ya210ZlhIV1c0bEp0R05Cak5zUlk2cFQ1Um9sMjBoTUNZdnNRNlVXUzgxSFhlcmFKL1NoRE9LZ0FBQUFBQUFBQUFBQUFBQUFBQUFCeU5xWFVXeXQ2N0F4elZ1bzhOdTg4ejNLNWhRcVRIS0dLY2lXK29pTmNpWEpkVWJjV3RxcStPbFQwdVpKY2FpeEdFS2RlY1EybFNpVE9uTVhydkt6OG8vQU9DMUJIMlRzY3FMWXZKNitnSUtmbFNJU0pOSnEySE5oZUZQeFhYTGt4QnYrdFBFKzZ6WVhmWXhKbk1uNExhR0k1dUllczJ0cnc5RXBtaFNNZWVYWHhVT1R2NHZPNmZ3YjVLSmptT3IzRjlBQUFBQUFBSlkvSTMvQUNwSEYvOEFsci9vNzdiRk4veWpzS3haU0FBQUFBQUFBQUFBQTZzcmZmOEFEcHVuNFdkamZkaGNqa1J5UTRtQUFBQUFBR1dYQWo0OUhDNzhiTGpuK0dERGhFOHBIWnVDd2tBQUFBQUFFTDNtT2VXRFhiNks1M2JvYUJEcDkxRWdwZVRZa2hjV3VvOW9FMFIrUE5iY2ROaU5VNXlwcm9mckMxcGpXQm9KTC9ZOG81QjVYOEU5d3NuWnVqdEhlYlRmdFBLbCtNMncvaDhiWS93NTE5TlkrVnJ6N3Qrek9IeWVNbmtmakZhNC9JdE5jbUxoV201MDV6NlJYTnArdE05TjlOTGFXbnJWWXJhcHRLRzBzYU84cnAxUGMwODZWV1cxVFp4WDROaldXTUY5Y2FiQW53cEtHcEVTWkVrTktiY2JjU2xhRnBNaklqSWJGNHN1UE5qcm13MmkySzBSTVRFNnhNVHhpWW1PRXhNY3BhVDU4R2JhNXI3YmMwdGozR08wMXRXMFRXMWJWblNhMmllTVRFOEppZU1TK2VLMW9BQUFCOWZIOGd2TVV2S25KY1p0N0dneUdpbnhyU211cWlZL0FzNnV4aHVwZWl6WU0yTXR0K05KWWRRU2txU29qSXlGclBndzduRGJiN2l0YjRMMW1MVnRHc1RFODRtSjRURGtiWGRiblk3bW04MmVTK0xkWXJSYWw2ek5iVnRFNnhNVEhHSmlmVmEwOHUzek9hSGtiR3F0UTdxbVZ1TmIzWWFPTlUycElqMW1QYlNaanBiSnQydFIzb2oxdWFyUVpuSXJrRWxxVjJLZWlFUkdxTXhyaDV6N2ZadXhXdDNUdE1XeWRtbWRiUnp0aDErUHJPUDRXNXh5dDZXbmQvMm45NWRyNWJTbllmSXJVdytUUkdsYmNLNDl6RWV0ZlN1YitWampoYlNiWStHdEt6QmpGelBnQUFBQUFBQUFBQUFBQXczOHdmNGx2SXI0UFpuK1AxNDdkNEYvZkh0LzlZaitLV05QZVA4QXd3NzEvVTUvMHFxVVNQYS9RUG9OekllV2Q0YWxQdGZwaTVWeGNrY1dwVDdYNmZUK3FMbFhEeVExU1BhRjJyaDVJNExaSGxCL0UxcGZoQXp2L0hvbzFMOTQvd0MrdC82dmkvaWw2Vy9hei9oUGgvcjI1LzBvU2dqRmpZd0FBQUFBQUFBQUFBQUFZL2NpK1NPdmVOV0VPWmJtc3BVdXhtS2NpNHZpTmU4eVY3bEZrbEpHYkVOdHd6S05YeENVUzVVeHd2QmpvTWk5MjZ0cHB6dVBoWGhIZWZPZTZ4Mjd0ZGVuRFhqbHpXaWZwNHEvRzB4enRQS2xJNDJuNFZpMXE0ajk0L2VmeEQyVjhZbnlEeVc4NU41a21hN2JhWTVqNis1eVIrclNKL0xqcHJFNWN0bzZNY2FSODE3VXBlcjF2cmYrdytSV2NTYzF6K3pOM3NOK1BqMlB4Rkxib3NWcVhYdkZSVjA4UXpNa2wwSlBqU0Y5MGlTdEpLZFdveVNTZDlmRVBEK3krRmRxcjJ2cytQVFhTY21TZjlabHZFYWRkNS9mNmF4OHRZblNzUngxOE4vZGYzYTh3OTR2SjcrUytXNStyVHFydDl2VFdNRzF4VE9zWXNOUDN1dkpiWEprbUl0ZTA2UnB3a08xTVpBQUFBQUNXWGd2NWZzclp5cWpiKzdLeDJIclkwb240cmgwazM0dGhuUjlTVkd0TFJDUENmZzRnZjd0b2lVbDJ4SWlVWGJHTWxQNjcrN0h2Rmo3RkdUeHZ4YkpGdStmbHk1bzBtdUQ0MHB6aTJiMG5uR1BseHZ3cHY1OXJmMmtaL043YmYzRDl6TUZzZmhla1pOcnM3ZFZjbSsvazVjc1JwYW0wOWF4ckY5eHdtTk1NeGJMWUZodzRsZEVpMTlmRmpRWUVHTXhEaFFvYkRVYUpEaVJta3N4b3NXTXlsRE1lTkhaUWxDRUlTU1VKSWlJaUlocDFseTVNMlMyYk5hMTgxN1RhMXJUTXpNek9zek16eG1abmpNenhtWHJmdHR0dDludDhlMDJtT21MYTRxVnBTbEt4V2xLVmlLMXJXdFlpSzFyRVJGYXhFUkVSRVJHalVpaGVBQUFBQUFBQUFBQUFBQUFBQUFCMXZmbXYvbEdPWFB3czJIMUxxaGZyK1dFSTlSSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSk1PRmZsUWN0K2JFbXN1c1N3OXpYV281VGpEa3JjZXlJbGhTWXJKcjFPRVQ3Mkd3bFIvZmZQcFJOSldUZnZlMnFENHlQRGZseHV2Y1ZNMmlQMGk2QndROHIzalZ3THBtNTJEVTY4NDIvTmd1UThqM1ptTVNLN2xzeG1TbFBybFhqTVJ2eFlPRVkyOG91aHhJUm0rK2drbE1reTFOb1dtM05wbjlDVWp3cEFBQUFBQldSK1UyZndGOFkvaFp5LzdqMmhjcHpSS20rTGdBQUFBQUFDN3o4bXMrSXZ0ZjhiTE92d1A2SkZxL05NTENvb0FCcEo4Q0Jhd0p0WGFRb2xsV1dVU1RBc2E2ZkdabVFKOENZeXVQTGhUWWtoRGtlVkVsUjNGTnVOdUpVaGFGR2xSR1JtUUN0UHozK1QyNERzaDI1Mlp3cnNhblZXWnlGdlQ3RFRPUXZ5R3RYM3I3ampraVFlSDJ6YlUyZmdFNTAxbVRVSlRjaW5OWFkyMlZlMGxTanJpL3dBVUttZTdkQWJvNDM1dEwxMXZQVytVYTB6Q0lTbkNxOGtnR3l6WXhVck5yM3lvYmFNdVRTNUpUcmNTYVVUYStSSmlMVVJrbHd6SXhkaVlua09JQUFBQUFBQUFBQUFBQUFBQUFBQnVIRThTeW5QTWtwc093akhMekxzc3lLYzFXVU9OWTNWemJxOXViQi9yNFVPc3FxNW1STm15RmtrejdHMEtQb1JuN0JHWUMyRDVhdmtFSW9wbVBidjUyUUlOaFl4SG85eGkzSEtOS1lzYXFOSWFORDBHYnQ2MWhPdXdiaFRUeGVKOWI4Snh5R3J0YktkSWZRdVJYbGJ0ZjBnV3BJY09KWHhJc0NCRmp3WU1HT3hEaFFvYkRVYUpEaVJta3N4b3NXTXlsRE1lUEhaUWxDRUlTU1VKSWlJaUloYlMxQUFBQUFBQUFPR3VRV2hkYmNtOVBaem8vYk5NVjFoT2VVN2xaWUliTnB1eHFwaUZKazFHUlVVdDFwOU1ESU1kdEdXcGtKODBMUzNJWlQzcFdnMUlWTVRweGdkYzN6ZjRVYmE0TGJzdDlTN01oT3pxcDljbXkxMXNLTEJkaTQ3c2ZFVXZraU5lVkpxZGtvaVdFWW5FTldWZXAxeDZ2bEgyS1V0cGJMejE2SmlZMWhERG9TQUFBQUFBQUFBQUFBTW8rRmZJNjE0bDhvOU03OXJWU0ZSY0Z5K0k1bE1HTVhlN2I0TGROdlVHZFZEYlJxUzI3Sm40cFp5MFIrL3FUY3J3M0NMdVFSbEV4ckdnN05tbXVLcklxZXF5Q2pueGJXa3ZhMkRjVTlwQmRTL0NzcXF6aXRUYStmRWZRWm9laXpJajZIRzFsNkZJVVJrTENYMGdBQUFSVGVZTjVTWEhqbmREbTVhNndqVkcvbVlKTVZlM2NZcldIRlhpb3pIZ3dZR3lNZVE1RGpablhNb1NodEVrM0dMV00wMmh0cVVUQ1BBVlZXMHgrZ1VudVlQbCs4bnVFR1NxcWQyNERLYXhlWE05VXhyYWVNbEl2Tlo1V3BTWFZzdFZ1U3R4bVUxOXE0M0hjVWRiWXRRck5LRUc1NEhoR2x4VjJMUktHRllrQUFBQUFBQUFBQUFBQUFBQUFHY2ZEN3k2K1ZYTnk3anh0TmE4bHRZV2lYNnRkYmJ6Qk12SGRYMEpOdm9ZbGs1a2pzUjlWOVl3bExJM0srb1pzTEZLVDdqWUpIVlpSTXhITVhOZkw4OG5iam53Z2JyTTN0bW1OMDcvQUdtME91YlF5bW9ZWnJzVGxINlZ0YTB4VjU2Zkd4aFRaZEVIWXV1eWJWem92dGZZWmRWSEsxTnBuOUNVdXdwQUFBQUFBQUFBQUFhS3hycSs0cjU5UmJ3SVZyVTJzS1ZYV2RaWXhXSjFmWTE4NWhjYWJBbndwS0hZMHlGTWpPcWJkYWNTcERpRkdsUkdSbVFDc0g1aDN5ZlhIc3hjdk50OEdGVnVIWk0rNUt0THJqL2N6VVFjTXVIM2U1OTg5WlgwdGZoWWJNZGY3dXlwbkxPb00zU1N3L1hzdElZWGNpL3hRcWJiTDFmc1hUZVpYR3ZOcllUa3V2czNvSHpZdHNaeXlvbVUxckZQdVVUVWhNZVkwMzZ6QWxvVDN4NUxSdVI1TFJrNDB0YUZKVWR6bU5oZ0FBQUFBQUFBQUFBQUFBQUFKSytDM2xYY24rZFZwQ3RjU29WNjgwMm1XVFZ6dXpONitaR3hkTExiamlKYkdIVi8rRFQ4L3VXVFpXandJS2t4R1h5U2lYTGlrdEtoVE5vajlJdkRjSmZMKzQ4Y0Q4RlZqR244ZFZNeXk0aXNJenJhdVNJalRjK3plUzBhWGZEbldMYkxiVlRqOFo1SkhGcW9TV1lUSGFUaWt1eVZPeUhiVXpNODBzM1JBQU1lZVhYeFVPVHY0dk82ZndiNUtKam1PcjNGOUFBQUFBQUFKWS9JMy9La2NYLzVhLzZPKzJ4VGY4bzdDc1dVZ0FBQUFBQUFBQUFBT3JLMzMvRHB1bjRXZGpmZGhjamtSeVE0bUFBQUFBQUdXWEFqNDlIQzc4YkxqbitHRERoRThwSFp1Q3drQUFBQUFBQUJGbDVnM2x1WW55dHE1ZXhOZUlyY1EzL1Z3VUlqMmJuYkNvZGh3NGllak5MbUJzc09LYXRXV0M4T0RhRWszR3lKTEVqeEdDYk9Qa1h3anozYytONUkyTys2c3ZaYlR4am5iRk0vclUvRDF0VGxQT3VrNjlXRlBkVDJoMlBuR0MzZHUxZEdEeW1sZUZ1Vk04UnlwbDBqaGFJNFV5YzQ0VnRyWFRvcVM1cGhXV2E2eXE4d2pPYUN5eGZMTWFzSDZ1OG9yYU9xTk9nVFk2dTFhRnBQcWgxcHd1aTJuVzFMWmVhVWx4dFNrS1NvOW1OcHU5dHZ0dFRkN085Y20yeVZpYTJyT3NURS93RERqRThZbmhQRm9wM0h0Mis3VHZzdmJlNVlyNGQ5aHZOYjB0R2sxbVA0NDlZbU5ZbU5KaVppWWx0Z2Nod2dBQUFIN1JwTWlISWp6SWNoNkxMaXZOU1lzcU02dGlSR2tNTFM2eElqdnRLUzZ5OHk2a2xJV2t5VWxSRVpIMUVXclc5WnJhSW1zeHBNVHltUGhLcWw3NDd4a3h6TmNsWmlZbUowbUpqakV4TWNwajBsWmw4dVB6VVkyd1BlTFJQSnEralFzOFB0cmNKMnRiUHhZRmRtWmw0VFZmanVYeUZFeEdoWmU1MU51Tk9WMnRXaGtsdDB5bXFKVXZBSG5mdHpiWmRmZWZINlRPejU1TU1hek5QamFrYzVwNnpYblRuSHljSzdqZTBudlpUdXYwdkdmTXNzVjduK1hEdWJURmE1ZVVWeDVaNFJHWDByZmxrNFJiK2NtSnlUeGpEVFpzQUFBQUFBQUFBQUFCaHY1aEh4TGVSWHdleS9xaFhqdDNnWDk4TzMvd0JZaitLV05QZUwvREh2WDlTdC9wVlVvRSt5ZjZoamN1SGx0ZU9MVkpGeXJpWkdwVDdmNmhpN1Z3N3h3YXBIOWZxTGxYRHZIQmJJOG9QNG1sTDhJR2QvNDlGR3BudkYvZlMvOVh4ZnhTOUsvdFovd253LzE3Yy82VlVvUXhZMk1BQUFBQUFBQUFBQUFZcWNxT1dPQmNZTVJWT3VYV3JyUExpSElYaG1DeDNqVE50MzBLOEFyQ3pjYlM1NzA0OUZmVjlGa09FUnU5aW0yQ2NjSTBsa0gyLzl2TzcrZTl4K2x0WW5GMmpGYVByNTVqNWFSejZheCt2a21PVlk1YXhOcGl2RmdiMzM5L2ZGUFk3eCtkMTNLMWR6NVZ1Y2RwMmV4ck9sOHRvbnArcGttSW42VzNyYjgyUzNHMmxxWW92ZUppS3dtM3R2NTN2SE9iWFlPdzdkVnBlMmFpYmFaYUpiTlhTMXJTMXFoMGxGQlc2OFZmVVFTY1Y0YmZjcGExS1U0NnR4NWJqaXQ4ZkcvRyswZUtkcHg5bTdOaitudE1mR1puamU5cC9OZkpiU09xOXRPTTZSRVJwV3NSV0lpUEQzM0Q5dy9LdmREeWpQNWQ1ZnVKejkwenpwRVJyR0xEamlaNk1PQ2t6UDA4Vk5aNmE2ek16TnIzdGZKYTk3Y1pEN3pwSUFBQUFBbWw0TGVYazVZcXB0emIvcFhHSzl0eVBaNFhyTzFqa2xkbVNVazlFdnMwaHZGM3RWeExOSzQ5YTRrbFNEU1NwSkV6OUNlMWY5MlBlYXVDTXZqSGgrV0p6VEUxemJxay9sOUp4NExSenQ2V3l4d3J5cFBWODFmU3I3V3Z0QXZ2WjIzdVI3dGJhMU5wRnE1ZG4yM0xYamw5YVo5NVNlTVk5ZEp4N2EwUk9UVHF6UkdQOEFtOGs1aVVwUWxLRUpTaENFa2xDRWtTVXBTa3VpVXBTWFFrcFNSZENJdllHcUV6TXpyUEdaZW8xYTFyV0sxaUlyRWFSRWNvaDdDRWdBQUFBQUFBQUFBQUFBQUFBQUFBT3Q3ODEvOG94eTUrRm13K3BkVUw5Znl3aEhxSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUcvOFcxUHRQT1hHV3NKMXBzRE1YWktFdVIyOFd3M0lzZ2NrTnJVYVVMWlJVMXN0VHFGcVNaRWFTTWpNZzFHWkd0ZkttOHhEYXpzUkdOY1R0clZUTXYzU0p1dzZxTHFxRzJ4NGhJVkpjZTJYTnhRL0JJajcwOXBLVzZqM1RhVmtaZFk2cWlVblJmeWEza1JsTGtPdzMvdWZYZXBhbFpvZGtVbUZRN0xaMlhrMm50VXVISVc2ckU4VnJuM2ZTa25tWjFraHY4QWRkaS8zSjB6ZVBRMFR4Y1hmSmg0SmNZSHEyK2lhMVh1UFBxN3dubXM0M2E3Q3pWNkxOUWFYU2xVK0lsWHdNRHFIb3NrdStMSVJXTHNJM2FucEpVcFBlZEUybVVwVzBwU2hLVXBTU1VwSWtwU2tpSktVa1hRa3BJdWhFUkVYb0lVanlBQUFBQUFBQ3NqOHBzL2dMNHgvQ3psL3dCeDdRdVU1b2xUZkZ3QUFBQUFBQmQ1K1RXZkVYMnYrTmxuWDRIOUVpMWZtbUZoVVVBQUFBRGluY1dpOU84Z3NSZndUZG10c1EyYmliNnplVFVaZFRSTFJFS1VhZXdwOVJLZFFVNmtzMEk5Q0pVTjFpUWd2M0t5RXhNeHlGYzNsVjhtMXdISW5MREpPSCsxcEd2TEI1Yjc3V3N0dHVXT1I0WVMzRkxXMUVwczhySTB6TWFLREdTUklTbWZEdm4zT3ZWVDVkT2gxeGY0bzBWNnVRL2xsYzRlTURrK1RzL2o5bXIyTVFFUHlIYzl3V0grK0hncVlEQ2pJN0dma1dIbmJNWTdIY0l1cVVXeVlFanQ5bHNoWEZva1lIQ1FBQUFBQUFBQUFBQUJ5ZnF2U200TjQ1QWpGZE42d3p6YUdRcU52eEtyQmNXdWNta3hXM0RWMGsySHZWRGt0MXNKSklVcGI4aFRUTGFFbXBTaVNSbVRrSjZ1S3Z5YzNrVHNSK3R5SGxMbVZIb1hFMXJhZWs0YmprbXV6emFjMWdsOVhJcnIxZElmd1BGL1dtREkyNUp6clo1cFhVbllSR1hRNkp2SG9hTFIvRkRnVHhaNFcwcDEraU5ZMWxMZnlvS1lGN3NXOE1zaDJUa2pQYzA0ODNiWmRQYk9ZeEJrdnNvZFZBZ3BoMXFYVWtwRVpCa1F0ek16elN6R0VBQUFBQUFBQUFBQU1hK1ZQRXpTSE1uVmxqcVhlV0tOWDFJK3RVMml1b2h0UThyd3ErSnMybytSNGZlS1lmZXA3WmhKOXEvY3JqeW1UVXpJYWVZV3R0VXhNeHlGR25uNzVRZkpQaERQdHNyaVZremNPZ20zSk1tRHRyRUttVTZ2SEs1RGgrRzFzN0hvL3JrckM1VFRacEpVdzF2VkR5bEpKRW9uVkd3aTdGb245S0VUWXFBQUFBQUFBQUFCNVNsU2xFbEpHcFNqSktVcEl6VXBSbjBJaUl2U1ptWUNiUGdoNUgzSm5sWE1xTXkyelhXM0hmUjdxNDB0Nit5Nm9laTdDeTZ1V2FYVGF3YkNMRkVlWXcxTmptWGgybG9tTkNKRGlYbUVUU1NiUjB6ZUkvU0x5V25kV1l4bzdWV3ZOTzRVNWN1NGpyTEVLSENNYVhrTnEvZDNKMHVPMTdGYlhKbjJVZ2tLZmVSR2pwU1JJUTB3MGtpYlpiYmFTaHRObWVNNnBja0FBQUFBUGg1TGpHTjVuUTJ1SzVoajFIbGVNWHNSeUJkNDVrdFRBdmFHNGdPOURkaFd0UGFSNVZmWVJITzB1NXQ1dGFENmVrZ0ZmZm1COG5oNDc3ZGVzOHY0eFpMSTQ3Wm5KOGVVdkRwVEV6S2RSV2t4ZlZ6c2pWN3NyNjVjSTlaZVVmY3FISW13R0VkcVdLOUJGME91THpITVZxZVMvbFQ4NXVLN2s2WG51azczS3NQaEdwUjdGMVMzSTJMaFp4VWVKMW56cEZKRlZlWXpDNnRHWGRjd0swK3BwOUh1MDlia1dpVUk2eElBQUFBQUFBQUFBRDZWUFRXK1EyY0trb0txeXZMbXlmVEZycWluZ3lyT3pueVY5VFJIaFFJVFQ4cVUrc2lQb2h0Q2xIMDlnQks5eHg4a2puN3lFZHJaODNWcGFPdzJhYmJqdVdid2xPNGRKYWpkeEc2Y2ZCRVJyRFlqMHBUSFZUQk8xY2FNNm8wa2NodEptc3FadldCWTE0bGZKK3VKV2lucXZLZDN6TEhrNW5jSmJVcE1US29DTWUxVENsb01scDhIWGtPYllPWkNoczFLUXROMVBzSVVoSkVvNGJaK2dxSnZNOGtwMktpb3FhQ3JyNlNocTY2a3BhbUl4WDFkUlVRbzFiVjFzQ0sybG1OQ3I2K0cwekVoeEk3U1NTMjIyaEtFSklpSWlJVUQ2SUFBQUFBQUFBQUFBQUFBQU1kT1JuRXZqdHl5eFU4UTMvcXJHTmd3R1dYbTZtMG54Vndzcnh0Yi9wWEl4Zkw2dHlGa21QT3FYMFVzb3NsdHQ3b1JPcFducWs1aVpqa0t3ZkxQNU4xc0dnZHM4cDRjN01nNTlUOThpU3pxcmFzbUhqZVp4V1NUM013S0hQSXJMT0paSkpkZFVhVWxaTVVLR1cwbDNTSFZkVE91TC9GR2l2UnUzalR2L2pmZUhqdTlkUTU1ckN4VSt1UEZjeXFnbVE2aTFjUVMxS1ZRNUNoRDJQNUN4MGJVWk93WlVobyswK2l2UVl1Uk1UeUhCNEFBQUFBQUFBQUFBSkdlTWZsUjg1T1ZiOENYZzJtTHJEOEttdU45K3lkc3R5dGU0WTNFY0pKbFlRRjNFVDY0Y3BoZTY2ZDlMWDJYUlhVajZkcXVrVGFJRm5yaG44bjg0eTZIZHFNMDVEV0I4bHRqd25HSnpWTmJRRlUybmFTYTBwTHlFTllZY2lUTHpRMkY5emExM1VoNnZsSTZLT3VhVUxjM21lU1U5OWRYVjlQQWhWVlRBaDFkWFd4V0lOZFcxMFZpRkFnUW96YVdZMFNGRGpJYWp4WXNkbEJKUTJoS1VJU1JFUkVSQ2dhd0FBQUdQUExyNHFISjM4WG5kUDROOGxFeHpIVjdpK2dBQUFBQUFFc2ZrYi9sU09ML0FQTFgvUjMyMktiL0FKUjJGWXNwQUFBQUFBQUFBQUFBZFdWdnYrSFRkUHdzN0crN0M1SElqa2h4TUFBQUFBQU1zdUJIeDZPRjM0MlhIUDhBREJod2llVWpzM0JZU0FBQUFBQUFBQUkvdWRQQVRYdk1mRkRudCtwWWp1bkhxNWNiQzlna3k1NE1obERpcERlTVppekZRcDYweHFROHRmaHVFbGNxdGRjVTZ4M0pVOUhrZDE4UDgwMzNpMjU2SjF5OXB2YlhKaStIcDEwMTVXajFqbGFJMG4wdFhGbnVYN1hkcTl3Tmo5V09uQjVGaXBwaHo2Y0pqbjlQTEVjYlk1blhTZEp0am1adFhXSnRXMVB6Ym1vZGg2THoyODFydERHNTJMNVpRU0ZOeVljdHMvVjVzVTNIRVJiZW5ta1hxMXRTV0tXalhHbE1LVzA4bjJENmtaRnREMnp1bXg3eHNxYi9BTGRrakp0cnh3bU9jVDYxdEhPdG85WW5qRFFmdjNZZTdlTmQweTluNzFodGgzMktlTVR5bVBTOUo1V3BiblcwYXhNT05SejN4d0FBQUFCWUg4dVB6Vm5LSDNqMFB5anlCYjlFUk4xdUM3a3VwaW5INk5LRUlhZzQxbjhwMUNuSlZRcnQ3STF3NnMzWWlqUzNLN21EOGVOaFB6djI0ak4xOTU4ZHBwbTU1TUZZNFcrTjhjZWx2alNPRTg2NlR3dHRSN1NlOTA3WDZYakhtbVdaMjM1Y083dlBHbnd4NTVublgwcmxtZGE4SXZyWDVxV1JHblczbTIzbVhFT3N1b1E2MDYwdExqYnJiaVNVaHh0YVROSzBMU1pHUmtaa1pHTUR6RXhPazhKaHQxRXhhSXRXWW1zeHdsN2lFZ0FBQUFBQUFBRERiekNmaVdjaS9nOW1mVkN2SGJ2QXY3NDl2L3JFZnhTeHI3eGY0WTk2L3FkdjlLcWxDbjJmMUJ1VlY1YlpHb1Q3WDZRdVZjVEp5L2RhcEgvM2YyaGRoeEw4bXBSN0g2aEM3SFBWdzdyWlhsQi9FMHBmaEF6di9Ib28xTTk0djc2WC9xK0wrS1hwVDlyWCtFK0grdmJuL1NxbENHTEd4Z0FBQUFBQUFBQUFNSmVZWE5IRGVMK1BGWFJFdzhwMnZlUlhGWTNoNlpQMEt0YVdoU1dzanlzMkZlUENwV1hlbmhNa2FKRTlaR2hvMElTNit6bEQyMzlzKzVlZDd6NjJUcXdlUDRyZnptYlRqYWZYSGkxNFd2TWM1NDF4eHh0ck0xcmJXejdoZnVOOGU5a3V6L3N1M2pIdnZPdHpqbjluMm5Wd3h4TVRwdU4xMHoxVXd4UDVhY0w1NWlhMG10WXZreDFscysySG1lMU10dDg1ejYvblpKazkyLzQwMnhuT2RUU2hKbWxpSERZUVNZOEN1aE45RzJJN0tVTXN0a1NVSklpNkRldnN2WnUyZGc3ZGo3VjJqRFRCc2NVYVZyWCtHWm5uYTFwNDJ0TXpOcDR6THhKOHk4dThqODY4aDNIay9sZTd5N3p2VzV0cmZKZWZUOVdsS3hwV21Pa2ZMVEhTSXBTc1JGWWlHeng5VjFjQUFBQjd0Tk9QdU5zc3RyZWVlV2hwcHBwQ25ISFhIRkVoRGJhRUVhbHJXb3lJaUlqTXpNUmExYTFtMXBpS3hHc3pQS0krTXFxVXZsdkdQSEUyeVdtSWlJaldabWVFUkVSeG1abmhFUW5qNExlWG8xaXBWRzQ5OTA3RXJKVm9pMm1GNjdzV2ZFYXhoZmNtUkZ2TXNpdXA4TjdJa2tsSzQ4RlJLUkE2OXp4SEo2SWphais3UHZMYnVIMVBHZkVNczEyTVROYys1clBITDZUand6SEdNZk9MWGpqazVWMHg4YitxMzJ0ZmFGajdGRzM5eC9kZmJWeWQ3bUs1ZG4yL0pHc2JhZGVxdWZkVm5oYmNjcHg0WjFyZy9Oa2ljK2xjTXhvMW9laklBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTnR5OE13K2ZKZW1UOFV4dWJNa0w4U1JLbDBWWEprdnVHUkVhM24zb3EzWFZtUmV5b3pNTlJwdnJCd1Q3Q3NTKzF5bitreE9zaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzaDlZT0NmWVZpWDJ1VS8wbUdzajZOWmpHTlVyNjVWTmoxSFV5bkdWUjNKTlpVd0lENjJGcmJjVXd0NkxIYWNVeXB4cEtqU1o5cHFTUjlPcEVJSDNBQUFBQUFBQUFBQUFBQUI4dTBwS1c3YmFhdXFpcnQybUZtNHkzYVFJazl0bHhTZTFTMmtTMm5VdHJVbjBHWkVSbVFENDMxZzRKOWhXSmZhNVQvU1luV1Erc0hCUHNLeEw3WEtmNlREV1Erc0hCUHNLeEw3WEtmNlREV1Erc0hCUHNLeEw3WEtmNlREV1Erc0hCUHNLeEw3WEtmNlREV1Erc0hCUHNLeEw3WEtmNlREV1I5eXNxS21sWVhGcHF1dXFZcmp5cERrYXNoUm9EQzMxb2JiVSt0bUswMDJwNVRiU1Vtb3k3alNraTY5Q0lRUG9nQUFBQUFBQUFNUjkyY0MrR3ZJcHlaSzNGeHcxWmwxeFllSjY3bExlT01ZMW0wbnhWS1d2eGM1eEpkRG1DdmRyVW92OE85eXRScUxvWm1ZbUxUSElSWmJTK1RqOEk4d1UvTDF6bCs2dFF6VnI2c1FLL0phak5jWFliTXZkSlZYNWRTUzhtZVdTaUx0VWR5UkVYVWpKWFVqVFYxeWFNRWMyK1RGWnpGTjl6WEhMYkZMd2pTdGNXSG0ycTdqRlRiVjJ5VGJqdjJWRm1PWmVNa2xKWlNwNU1WSFVsclVUUmRpVXVUOVJHakd1OStUZGM2NjE3cFVaL3hweU9NdDU1TFRrVE9OZzE4cHRsQnA4SjJaR3RkVnhHR1Z2RXI5d3k5STdUSStwOU9oblBYQm80d2UrVDYrWTIweTY0akZOVlNGdHRyV2lPenRTbVM4K3BDVFVsbHBVaU13d1RqcGwycE5hMEk2bjZWRVhVeFBYVWZEci9JTDh5cVpLUkhrYXR3YXBhVVN6Vk5zTnQ0QzVGYk5LVFVsSzBWZHhaVFROd3k3UzdXVkYxUDBtUmRURHJxTjZWbnllTHpEcDdqcUpVWFNkSWx0QktRN1o3TmRkYmZNejZHMjBWTmpkdTZTMGw2VDcwb1QwOWd6UDBCMTFIT21LL0puK1ZjeDVLYzMzM3g4eDZQNHBwVTdpcTlqNWk4VEgwRG80bGkzd3JCVUtkUHVjOXg0aEY3aFB1L2RuMlIxd2FNd3RkZkpqOVdRRnNPN2E1VVovbFRhdkFYS2c2NndESGNBVzE2R3preG1MVEpiblpTWCtpdTVMYjZvYmZVdWlqYUwwcEVmVU5Fa21uUEpJOHVYVHprV2FXai9BTjlLN2lmdWJuY2VTWEdjTnZwN2txN1pXSnFlcmRmU1BkSUwwcXArN3AxTHIybVpIVE43U2xKOWlPRjRkcitpaDR0Z2VKNHpoT00xNUdtQmp1STBOWGpkRkJTWkpTYVlkUlRSWVZmR0kwb0l1aUcwK2dpK2NLUnVZQUFBQUFBQUFBQUFBQUFBSG80MjI2MnRwMUNIR25FS2JjYmNTUzIzRzFrYVZvV2hSR2xhRnBQb1pINkRJQkQ3eXI4ai9nN3lZa1dtU1UrSXp0QTdFc1Z5SlR1VmFjOVFwYVN3c1hVSzdYNzdYa3VMSncrVXl1UW8zcENxOWlxbXluRE5Ua3J1TXpGVVhtQkE5dW41TjF5MHc2Uk1sYVgyZHFuZE5JMTNIRWkyajFucTdOSmZSSGVsUHZOYW95REVtdXFpTkhWV1FGNmVoOUNJejdhK3VFYUk2TTQ4cG56RzllcmVSZThTdHBXUGdtc2xMd2VOVGJMUXNrSWVjN21UMTFjWlQ0eEtTd3JwMjlUTlJwVCs2V2tqbnFyOFJqL1A0YTh2cXFVdUZhY1ZPU05iTmJKQ25Jay9SdXo0Y3B0TGlTVzJwY2VSaTdicVNjUW9qSXpMMGtmVWhPc0RSLzdJL0s3K2JIeUYrOHZzai9Sb1RyQTNkUmNDdWNHVEZIWFNjUDhBazFOanl5ZU9QUFBSdXlvdFc2VWRUaUh1MjFtWTNIcmVxSEdWSTZHNlJtdEpwTDNYb0Vhd01rOEU4bC96S3MrZVpLSHhtdmNiaHVIOUdzYzd5dkFjTFppSk5zbkNXOUF2c3BpWHJ4R1prbm94RWVXU2o5SkVSS01vNnFpUjdSL3lhWGV0L0loeitRZTl0ZDY0cUZPTlBTS1BXOWZjN0Z5aHlNa3o4YUhJblc4ZkM4ZXA1am5iMFM4eTViTklKUktOS2o2b0VUZVBRMFdCK0pubFA4S3VIcnRiZTREckp2TTlqMXFtM21kcmJWZGk1cG1zYVczKzRtVWFYWU1MR2NSbE5tYWlTOVVWMEdRYUZHbGJpeUZFMm1VcEl4U0FBQUFBQUFBQUFBdzgzcDVmM0REa211WEszSnh5MXBsRjFQVzQ1TXl5QlRLdy9PSlRqaGREWEp6bkNuOGR5NlQybWZjU1hKcTBrb3pQcDFNK3N4YVk1Q0tQYW55Ym5oNWxia21icTdaZTZOVFRIaU1tYTUreHgvWUdLeERMcjJLWnI3cW9yY29jUHFmdXZFdWxrWkVYUWtuMU02b3ZQcWpSZ0xuSHlaSGRkZXB3dGE4b3RXNVlnaStoS3pqQ2N0MTZwYXZCZFYwY1JRenRuRTBYamtoUFVqWDdoU2xkT3FTUXFmcVFhTWJML3dDVHFlWUpUcVdtdW42Qnlza3ZvYUpkQnNpOWpKY2JXMHB4VXBCWlRndU5MSmhwWkUyb2xFbHp2TWpKQnA2cUtldW80OXMvSUk4eWlBK2htTHJQQXJwdFRLWERsVm0yc0dhWWJXYTNFbkhXbTVzNm1VYnlFb0pSbWx0VGZhc3VpalB1SXA2NmpjOEg1UFQ1aVV1VTFIa1ZXbTZ0cHp2NzUwN1o3TGtWanNiV3RQaW9yYVN4bW40cWtraFBZeXYzU2k2OUU5VkU2NmptVEZmazFYTVd4OEp6THR4OGRNWFljOEUxTlZkeHNYSjdKaEt2RjhkTDhkV3ZhR3Y4WnJ0UjJrM0xjUXNsSDFVbnRMdWpyZzBaWFlMOG1KcUdsc1NObWN1cktjMlpsNnpVNExxU0xWclNra0w3aVl5Ry93QTV1RXFOVGhwTWpWVmwwSkpsME0xRWFZK3A4RFJJQnFuNVA3NWQydWppdjVQaTJ5ZDBUby9hNGIyeXRoMk1TR3FTbFpPZUo3MWEyaTYvZ3ZSMExMb2xpUW1RZzIvY3VlSWZWUngxeWxLZnFUanJvWFFsZVZicGJUbXRkWHhqWTlXZlhoT0hVV1B6cHpYY2xaKytscEFoTTJkczR0YVNOUzVMenExR1JkVFBvUXBtWm5tT1poQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVBqWkJqbVBaYlR6c2V5cWlwc21vTE5rNDlsUjVCVndibW5zR0RNak5pZFdXTEVtRkxaTXkvY3VJVW45QUJHRnVueVYvTHAzVXVkT2s2SmlheXZweTNYRHZkTTNWbnIzMVZUeG1wWnhNVWd1eWRlTis3UHFrbFV5aVQwNkYwVDFJNm90YUJHSnNyNU1mcm1hNjgvcDdsUm0yTXNFNGFvOVpzclgxRm5McTJqVjBTMDllNHZkYThRMDRoQjlUY1RYTEpSbDA3RTllcWF2cWZGR2pDekxmazFmTWFzVTY1aDI0ZU91VnhXeTZwYnM3blllTFdyNW1iS1NTekVMWDE5V0VaR3BacThTY2dpU2d1aG1hdTBwNjROSENrLzVQZjVpOE5VdE1mSHRSMnBSdkc4RmNEYVZlMm1mNFJLTkhxaFdsZFdyUjZ3WmRFZU9USFF6THY3ZlQwbnJxUGhWbmtEK1pQUGVjYmxhMXdHa1FodnZUSXM5dFlRNnk2cnVTbndXMDAxbGJ2azUwUHU2clFsSFFqOTExNkVicnFOL1VQeWRYekJiZFNDc0p1Z3NXSlVnMlZLdnRrWGNoTGJaTm9XVXRmMXNZUGthampxVW8wRVNTVTczSlBxZ2s5RE9PdW95UndmNU1sdkdlcGo5OG5rOXFuRTBxUVJ5VHdmRGN2MkVwcGZoeHpOTENiNlRyRXBDQ2RVNlJLVWJSbWxDRDZFYXpTM0gxSU5HZU9xL2syZkVqRjFNeTlxN1ozUHRXWXl0cFJ3YXVSamV1Y1psSVNSRzhpWEFnMWVSWko5RVduM0pzM0RCb1Faa2ZjZlJSUjF5YUpZZERlWHJ3czQwUFJKK20rT211c2J2NFBhY1RMN09zZXpQT0l5eTdEVXVKbXViU3NpeWlENGkyMHFVbGlVMDJhaUkrMHVoZEtadE04MHN5eEFBQUFBQUFEODNtV1pETHNlUTAyK3crMnRsOWg1Q1hXWG1YVW1oeHAxdFpLUTQyNGhSa3BKa1pHUjlEQWJXK3NIQlBzS3hMN1hLZjZURTZ5SDFnNEo5aFdKZmE1VC9TWWF5SDFnNEo5aFdKZmE1VC9TWWF5SDFnNEo5aFdKZmE1VC9TWWF5SDFnNEo5aFdKZmE1VC9TWWF5SDFnNEo5aFdKZmE1VC9TWWF5TlhCeERFNnVVMU9yTVh4MnVuTWQvZ1RJTkxXeEpUUGl0clpjOEtSSGpOdk4rSXk0cEN1aGwxU295UDBHWWpVYmlBQUFBQUFBQUFBQUFBYlZjd1hDSG5GdXU0ZGlycnJxMU9PT09ZOVVMY2NjV28xTFd0YW9acVd0YWpNek16Nm1ZYXlQVDZ3Y0Urd3JFdnRjcC9wTVRySWZXRGduMkZZbDlybFA5SmhySWZXRGduMkZZbDlybFA5SmhySWZXRGduMkZZbDlybFA5SmhySWZXRGduMkZZbDlybFA5SmhySS9hUGhPR1JIMkpVWEVjWWpTb3p6Y2lOSmowRlV5L0hmWldseGw5aDV1SWx4cDVweEpLU3BKa3BLaUl5UHFJMWtibkFBQUFBQUFBQUFBQmlGekE0WjZ0NWg0RXZHOHlqb3BNeXFHSkNzRTJSQWhOeUw3RVp6eG9jVTJ0bzNvdnZ6anMxeHRKVEs1MTFEYnlmZE5yWmZTMjhqcy9pL2xmY2ZGdDcrMGJXZXZhMm1QcVlwblN0NC9oNmJSK3JhSTRjcGlZMWllaGVmZTN2WmZQKzEvc2ZjSStuM0RIRS9SM0ZZMXZpdFA0YXgxNDUwK2ZITXhFODRtdG9pMFU1ZVJQSEhhWEYvWXRqcmZhZEd1dXNHRGRrMGQxR0p4N0hzdW95ZmNZalpCamRpcHR0TTJ2azludWtxSkVpTzUxYWZiYmRTcEJiVGRqNzkyN3lIWTEzL2JyOVZKNFdyUDVxVzA0MXZIcE1mdlRIR0ptT0xRRHl6eEh2WGhuZHI5bzczaW1tV05acGVPT1BMVFhTTDQ3ZXRaK0hDMVorVzBSTVREZ2dmWWRZQUFBQUFFMHZsMGVhTGE2TVhUNlc1QVdkamY2YVVwdURqT1l5RlRMVysxZWdtMHRSYTl4dEpTSmx4Z3JSb1NsTVpCS2tWcUQ2c0V0bEtZNmNVZWRlM2VQdkVXN3QyU3RhZDE1M3B3aXViNHo2UlhKK1BLL3JwUHpOaVBhWDNveitOVGo4ZDhwdmZMNC93QXNlV2RiWDIzcEZaNXpmRDZSV1BteHgrWFdzUlNMVE5UYlZkL1YxdDVSMlVHNHBiaURGczZtMnJKVEU2dHM2MmN3aVRDbndKc1pic2VYRGx4M1V1TnVOcVVoYUZFWkdaR05kTXVMSmh5V3c1cXpUTFNaaTFaalNZbU9FeE1UeGlZbm5EZGJCbndickJUYzdhOWNtM3lWaTFiVm1MVnRXMGF4YXN4d21KampFeHdtSDBCUXVnQUFBQUFBQU1Odk1KK0paeUwrRDJaOVVLOGR1OEMvdmoyLytzUi9GTEd2dkYvaGozcitwMi8wcXFVQ2Y3WDlMK3NOeXF2TGZJMUNQWUw5VVhJY1RKeWxxa2UxK3IvWEYySEV2eWxxbS82MzljWEljTzYyVjVRWHhOS1Q0UU03L3dBZWlqVTMzaS92cmsvcStMK0tYcFI5clgrRStMK3Zibi9TcWxDR0xHeGdBQUFBQUFBQUFqczV0ODc4YzQ0VnN2QnNKY2c1SHV1eGhOcmoxNnlLVlU0UkVtTjk3TnpreE5yU1RsZzR3b25JZGQxSmJoS1M4OTJzbWduc3crMlh0WHZQTTg5ZTZkemkrSHhtbHVOdVY4MHhQR21QL04xNFh5Y280MXJyYlhwMU8rNDc3bXUwKzBXeXllTitPVGkzZnVMbXh4TmFUODJMWjF2R3NaZHhwUEc4eDgyTEJycmJXdVRKcGptc1pLMXVUNVhrZWNaRmNaZGwxek95REpjZ25QV1Z4Y1dUeHZ6SjB4NHk3bkhGZENTaENFa1NHMjBFbHRwdEtVSVNsQ1VwTGRydDJ3MmZhOWxpN2QyL0hURHNzTklyU2xZMGlzUkgvQ1ptZU16TXpNek16THhxOGg3NTNmeVh1MjQ3OTM3Y1pkMTNqZDVaeVpjdVNkYjN2UHJQcEVSR2tWckVSV3RZaXRZaXNSRWZOUi9XUDlrZlRxNnpsNXYwRlMwQUFEVzF0YllYRmhCcWFtRExzN1N6bHg0RmRYUUk3c3VkUG5TM1VNUlljT0t3aHgrVEtrdnVKUTIyaEpxV295SWlNekZyUG53N2JEZmNiaTljZTN4MW0xcldtSXJXc1JyTnJUUENJaU9NelBDSWNuWmJMZDl4M2VMdC9iOFdUUHZzK1N1UEhqeDFtOThsN3pGYTBwV3NUYTFyV21JcldJbVptWWlJMVdHT0RmQUdEcDVGVHRqY01HUFpiWE5CeXFMRzNISXM2bzE4bDBrK0RJV3RueG85amw2RWRlcjZIRng0WnI2TTl6aVNmR21mdXY3dzVmSlp5ZVBlTlhtbmoydW1UTHhyZmNhYzQ0NlRYRC9tekVXdnByYlNzOUQxNysxMzdTOXI3ZFYyL24zdUxpcG04KzA2c0cybWEzeGJEWFRTMHpHdGNtN2lOZm5pMDQ4T3VtUFc4ZlZTbkRBRGUwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZOWNsZU1tcStWT3VaMnZObjB5SkNPeDkvR3NvaE5SMFpQaGR5Nmhza1hPTjJMelRxb3JwcVpRVWhoWGRIbU5KOE41QzBkQ0w3bllQSU80K09iK3UrN2ZmU2VIWFNkZWpKWCtUYVBYOEo1MW5qRXhMcW5tSGh2WlBOdTBXN1QzbkhFeHBNNDhrUkgxTU4vd0NYanRNY0o0UjFSK1c4Y0xSTUtjZkxiaUJ0UGlEc0p6RU04aEhZWTNhdXpIOER6K3ZZVW1nelNuak9KSTNtUG9qNTFkM0NRNjJtZFhQTDhlS3RSS1NickRqRDd1MHZqUGxIYnZLTmorMWJLZW5QV0lqSmpuODJPMC94MW45VzBjSi9DWW1JOC84QXp2d0x2ZmdYZFoySGM2OWUwdk16aHoxajVNMUk5WTU5TjQxanJ4ek90WjVkVlpyYTJLUTdJNk9BQUFBQUpUUEw1OHlQTE9LTnJFMTVzSmRsbCtnTFdjdHlUV045MHkrMTdNbHE2dlhXSGsrKzJsMnJlZlB4SjFXYWliY00xUE1lRytiaFNNZGViK0I3YnlUSE8rMlBUaTcxV09FOHE1WWo5Vy80K2xiODQ1VzFqVHB6WDdWZTcyKzhIejE3VDNYcnorTFh0eHJ6dmdtZWQ4V3M4YXpQRytQbFBHMWRMYTlkdHJDODF4UFkySzBXYjROZjF1VVlua3RleGFVZDdVeUV5WU0rRklUM0lXaFJkRnRPdG4xUTYwNGxEekxxVk51SlN0S2tsclB1OXB1ZGp1YjdUZVV0ajNPTzB4YXRvMG1Kai9od21PRXh4amczcjdkM0hZOTIyV0x1WGJjdE0yeHpVaTFMMW5XTFJQOEFGUHBNVHBNVHJFeEV4TU4wRGp1YUFBQUFBQUREYnpDZmlXY2kvZzltZlZDdkhidkF2NzQ5di9yRWZ4U3hyN3hmNFk5Ni9xZHY5S3FrK24rMStiMmh1VFgvQUN2TGpKeWFsSHNFTHNmNVhFeWNwYXB2MnYxZjY0dVE0ZDJwYjlyOUkvMlJkY082Mlg1UVh4TktUNFFNNy94NktOVGZlTCsrdVQrcjR2NHBlbEgydGY0VDR2Njl1ZjhBU3FsQ0dMR3hnQUFBQUFBQUNLN25aNWc5VnBKaXgxVnFDZFgzdTNKVEVpSmRYakxqRTZyMW9TKzVsWHJEWkU5SG41aWsrcHRRMS9RNFprVGtsS3Zjc09aeTlydmFiUDVOa3AzenlDdDhYWUt6RTBwTVRXMjU5ZUhLYTRmamVPTitWSmpqYXVsLzNKZmRGcy9idkRsOEw4RXlZdHo1emV0cTVjMFRGOGV3MTRmTkhHdDkxejZjVS9MaW5TK2FKNFk3MXpMSzJ0TDZ6c0xxN3NwMXhjV3N1UlBzN1d6bHZ6ckd3bXlYRGRrUzVzeVN0MlJLa3Z1cU5TMXJVcFNqUHFaamNqYmJmQnRjRk50dHFWeDdmSFdLMXJXSXJXdFk0UkZZalNJaUk1UkR5UTdsdnQ3M1BlWmU0ZHh6WmR4djgxN1h5Wk1sclh5WHZhWm0xcjN0TTJ0YVo0ek16TXpQTjZ0K3dPYlY4UEx5YTlIOVkvMlJmcStkbDV2MEZTMEFQdDQ1amQvbUY3VjR4aTFQWVgrUTNjdHVEVTA5VkZkbVQ1OHQzcjJzeDQ3S1ZMV1pKSTFLUDl5aENUVW95U1JtWEYzMisyZmJkcGszL2NNdE1PenhWbTE3M21LMXJFZXN6UDcwZkdlRWNYMHV6ZG03dDVGM1RCMlRzVzN6YnZ1KzV5UlRGaHhWbStUSmVlVVZyR3N6NnpNOG9pSm1aaUltVmtQaFJ3VG9PUFVDTm5lZk0xdVM3anNJeUZJa2VFMUxyZGZzU0k1Rklxc2VkWDRpSHJsWk9MYmwyU09ocVIxWlk3V1RjWEkwaTkwdmRyZWVaNXJkcDdQTjhIak5MY3RaaTI0bUo0WHlSNlU0Uk5NVThwK2ErdHVtS2V6ZjJ6L2F4Mm4yaDJsUEt2TEs0ZDc3alpxUk1XMGkrUFlWdFg1c1czbWRZdG1uV2E1ZHhHbXRkY2VMVEhON1paRlJoWnVJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0cDNUcFRYSElIWHQ1ckhhV1BSc2d4aThaTXVpaVEzWlUxaWhDeWhYdVAySnR1UFZONVdyV2FtWDBmUE5DMHJhVzQycjZYYWU3Yi9zbStwM0R0MTVwdUtUKzVhUFd0by9XclByRS9walNZaVkrSDVGNDcyanlydFdUczNlc1VaZGxrai9BSjFMZWw2VzUxdlhuRm8vUk90Wm1KcDZjMytDT3grSEdaS09XbVZsT284aHNKRGVDYkVZai9RM2trUnZ0NDlsVGJDQ1pwOHFpeCt2Vko5ckU1RGFubzVtU1hXbU5vdkVQTWRoNVR0ZmwweDl6cFdQcVl0Zi9lcC9LcE0vdTExMHQ2VE9ndnVSN1pkMzl2OEF1SDg1MVordzViejlIUEVjL1g2ZVRUaFRMRWZ1WGlKdFRsYXRjRWgzRmpJQUFBQUFaLzhBQmJuM3NMaHhsWlFGK3U1ZHBmSWJGdVJtbXZqZWI4Vmg1YmFZN21UNGM5S1dsbXF5V095aEhpTm1wRWF5YWJTeS93QnFrc3lJL1N2TVBDOWo1VHR1dU5NWGRxVjB4NWY0ZWkrbk9rL3V6V1oxcjYxdGxMMjA5MGU2KzMrKytsUFZuOGR5MzF6WU5lTVR5K3BpbWVGY2tScHJIQ3VTSWl0dEppdHEzQmRSN2UxNXZUQXFQWldyOGtnNVJpZDh3bHlQTWlPRVVpRktKdHRjcW91SVJuNnpVM2RjcDBrU1lyNlV1dEs5a3Voa1o2dmR6N1h2dXo3Mit3N2pqbkh1YVR4aWVVeDZXclBLMVo5SmpoTGZuc1BmdTArUzlyeGQ0N0xtcm0yT1dPRXh6aWZXdDQ1MXZYbGFzNlRFdVNod0gyQUFBQUFCaHQ1aFB4TE9SZndlelBxaFhqdDNnWDk4ZTMvMWlQNHBZMTk0djhNZTlmMU8zK2xWU2dUN1h6ZTBOeWEvNVhseGs1TlFqMkNGMlA4QUs0bVRsTFZOKzErci9YRnlIRHUxTGZ0ZnBIK3lMcmgzV3kvS0MrSnBTZkNCbmY4QWowVWFtKzhYOTljbjlYeGZ4UzlLUHRhL3dueGYxN2MvNlZVb1F4WTJNQUFBQUFBQkRUejM4eHBuQWxYV2xkQTI2WDg4YVc3VzVwc09FY2VSQ3c4eTZ0VEtIR1h6TjF1VmxpVmRXNU1va20zV0gxUTJhcGZjY1RZWDJ0OW81N3I5UHlMeW5IcDJ1ZExZY0U2eE9YNFh5UncweGV0YTg4bk9kTWVuMU5FUHVUKzZhdmpYN1I0RDdhNStyeU9Kbkh1dDdUcHRUYmVsc08zbmpGdHorcmt5YWRPRGpXa3puMW5EWDVja1B5bjNwVXA1MlRKa3V1eUpFaVE0dDUrUSs4NGJqenp6emlsT091dXVLTlNsS016VVptWm4xRzJXS2xhVmlsSWlLUkVSRVJ3aUlqbEVSNlJEeTUzT1hKbXkyelpyV3ZtdmFiV3RhWm1abWVNek16eG1abmpNenhtV29iOXY5WCtzT1RYMGZMeXRjMzdBdjFmTnk4bXZSL1dQOWtYNnZuWmViOUJVdE4zNEZnV1c3T3kya3diQnFTWGtHVDVCTFREcmEyR2t1NVN1aHJla1NIbG1saUhBaHNKVTdJa09xUXl3eWhTMXFTbEptUG05Mzd2MjdzUGJzdmR1N1phNGRoaHIxV3RiK0NJam5hMXA0VnJHczJtWWlJbVpkaDhVOFU4ZzgzOGcyM2kvaSsyeWJ2dm03eVJUSGpwSFAxbTFwblN0S1VyRTJ5WkxURktVaWJXbUlpWldZZUhIQ3pFdU10QTFlV3BSTWsyL2RWNldjaXlna201RHBtWCtqcjJPNG1sNXREa2F0YlVTVXZ5VFNsK2N0SGNva045akxlaS91WDdvZHg4NzNrN1RiOVdEeHZGZlhIaTVXdk1jSXladE9FMjlhMTQxeHhPa2F6cmFmYS83Y3Z0cThmOEFaTHROZTZiL0FPbnZmY1BjNFlqY2JuVFdtR0xjWjIrMTFpSnJqaWRJdmttSXlaNWpxdDAwNmNkTTR4aWx0Q0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEWjJ3TmY0YnRQRGNnMS9zREg2L0tjUHltdmRyTHlqczJqY2pTNHpocFdoYUZvVWgrTE1pdm9ROUhrTXJiZmpQdG9kYVdoeENWRnl0bHZkMTI3ZFUzdXl2Ykh1c2R0YTJqbkUvNVlubE1Ud21OWW1KaVh6KzY5cTdmM3Z0K1h0WGRjVk0rd3owbXQ2V2poTWZ4eE1UcE5iUk1UV1lpWW1KaUpWSFBNQjh1Yk0rSmQ1THpqREc3SE1OQlhOaXROWGtCTk95cmJBM3BUcVNpWTluQnN0RTIyMnB4MG1ZVm1YYXhNTWlRNFRMNmt0cjJhOEs4NzJua3VHTm51K25GM3FsZU5lVmNtbk8yUDhBanRUblhuR3RlTWFJKzZmdEozRHdYYzI3bDI2TDdqeGZKZjViNmEyd3pNOE1lYlNPWEhTbVRsYmxQVGFZaVl4UmtGaG9BQUFBQVplOFArWnUwK0hlZUp5UERaQ3J2RExpVEZMUE5iMkV4Y2VqeTZESEp4dERpSGlabEtwY2doTlBLT0pZTk5yVzByb2wxRHpCclpYMWp5anhUdDNsT3oraHU0Nk4zV0orbmxpTmJVbWYzdXFzL3JWbWVQcE1UcE1kOThCOXd1OStBZHovQUd2dDgvVTdma21QcmJlMDZVeXhIRG5wUFJlSW41YnhFekhLWXRYV3MzR2VPM0kvVnZLRFhOZHNqVmw0aXhyM2lhalhsTEpOdG5JY1J2RFliZWs0L2tsY2x4eFVLd2pkL3VWcE5jZVMzMGRZY2NhVWxaNnRkOTdEM0h4N2YyMkhjYWRONDQxdEg1YjExNFdyUHJFL3Z4UENZaWVEZi94UHk3c3ZtZmFhZDM3Sms2OFU2UmVrOE1tSyttczB5VjlMUjhlTmJSODFabXN4TG5nZkdkbkFBQUFZYmVZVDhTemtYOEhzejZvVjQ3ZDRGL2ZIdC84QVdJL2lsalgzaS93eDcxL1U3ZjZWVko5UDlyK2wvV0c1VlhsdmthbEh0QzVEaTVPVXRVajJ2MWY2NHV3NGQvVnFtLzYzOWNYSWNPNjJWNVFYeE5LVDRRTTcvd0FlaWpVMzNpL3Zyay9xK0wrS1hwUjlyWCtFK0wrdmJuL1NxbENHTEd4Z0FBQUR3WmtralVveUpKRVptWm4wSWlMMG1abWZvSWlJT2ZDT2FKbUlqV2VTQnpuMzVrYVpKWFdrZU90NjI1RWRhZXE4NTJuVXlGR2IzZVp0VGNld1djd3BLU1o4TWxOU3JWQnE3KzVTSXBrUkUrclpuMnU5byttY2ZrZmxtTDU0bUxZZHRhT1h3dm1pZlgxcmpubHdtLzhBSmp6dSs1SDdvL3FWM0hnUHRqdUluRGFzNDkzM0RIYm5yd3RoMmw0OU5OYTVOeEd1dXMxd3pFUjlTWU5VbWFqNnFNek5SbVpxTStwbWFsZFRNelAwbVptTm1xOE9YSjUwNXBtWjFubTFyZnpmMVJmcStkbDV0YzM3ZjZQVVhxdm5aR3ViOWd2bTlzWDZ2blplVFhJL3JIK3lMOVh6c3ZOeVhxblUyZWJxelNzd1BYZEhJdTc2eVdsYSt3bElnVk5lbDVwbVZjM2Mwa0xicmFpQ2J5VGRlWDdha29RU25GSVFyNDNrUGtYYVBGKzE1Tzc5Nnl4aTJsUC9BR3IyMG1ZcFN2TzE3YVRwRWZqTTZSRXpIYmZBdkFQS3ZjdnlYQjRwNGZ0YjdydXVhZFowMWpIaXg2eEZzMmEra3hqdzA2bzZyejhZcldMWHRXczJlT0tYRWZCT0wyS0hHclNZeUxZRnl3Z3N0enVURFF6Tm0rbERudlBUTnFOMTJweHlNNmdqU3dTelcrNGtuWGxLVVNFdDZIZTRYdU4zZnozdUhYbjF3OW54VC9NN2VMYTFyL24zNVJmSk1mcmFhVmo1YXhFYXpiM0E5aGZ0OThWOWpldy9SMlhUdlBMZHpXUDJ2ZldwRVh2eW42T0dKMW5GdDZ6RVRGSW1aeVdpTDVKbVlyRk10Qmp0bjhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZkl2NkNreXFrdHNheVdwcjc3SDc2dmwxTjFTMjBSbWRXV2xaT1pYSG1RWjBPUWh4aVRGa3NPR2xhRkVaR1JpN2h6WnR0bXJ1TnZhMU05TFJhdHF6cE1USEdKaVk1VEN4dXRydHQ3dHNtejNtT21YYTVhVFc5TFJGcTJyYU5KcmFKNFRFeHdtSlZWZk1WOHNPNzQ5eWJqY2VqNEZqa2VqcE1tUk51OGZaVEtzcnpVeUZrbDFmcmp5MXlKbHRoS1ZtdndaNis1MkNna3R5MUs2Smt1N0hlRGU0V0h2bGE5cTd2YXVQdThSRVZ0d2l1YjlIS0s1UGpYbGJuWCtUR2tmdXo3TTdueFcrVHlEeHV0ODNqY3pNM3BHdHI3YjE0enhtMkhucGVlTkkwakpNL250RGtNcE5md0FBQUFCa0p4cTVOYlU0cjdHZ2JEMWhjcmpyOFNPeGt1TVRIWkM4WXpTbWJXczNLYkpLNWwxcE1wb2t2TE9PK1hiSWh1cThSbGFGK2svaWQvd0RIKzNlUjdHZGozQ21zY1pwZU5PdkhiK1ZXZlQ4WTVXamhNUzdWNGY1bDN2d2p1MWU3ZGx5YVR3akpqbVorbm1wSDZtU3NUR3NjWjZaL05TZU5aaVZ4M2lUeSsxWnkrMTgzbDJCelNyOGtxbW9iR2VZQlBmU3Evd0FNdDVMYWpKbDc2R3dWcFNUVnRMVkJzV1VlQkpRazBxSnA5dDVoclZueWJ4ZnVQaSsrL1pkNUhWdDdUUDA4a2ZseVZqK0swZnJWbmpINDFtTFQ2QWVCK2ZkazgrN1ZHLzdaYm8zbElpTStDMC9QaHZQcFBMcXBPazlHU0kwdEhDZW0wV3JYSzBkYmQ1QUFCaHQ1aFB4TE9SZndlelBxaFhqdDNnWDk4ZTMvQU5ZaitLV05mZUwvQUF4NzEvVTdmNlZWS0JQcy9xRGNxcnkyeU5TbjJ2MGhjcTRtVGwrNjFTUDZ3dXc0bCtVdFNqMlAxQ0YyT2VqaDNXeXZLRCtKcFNmQ0JuZitQUlJxWjd4ZjMwdi9BRmZGL0ZMMHArMXIvQ2ZEL1h0ei9wVlNoREZqWXdBQUg0U1pNYUZHa1RKa2hpSkVpTU95WlVxUzYyeEdqUm1HMU92eUpEN3FrTk1zTXRJTlMxcU1rcFNSbVo5QlZTbDhsNHg0NG0xN1RFUkVSck16UENJaUk1elBwQzNseTRzR0syYk5hdE1OS3phMXJURVZyV0kxbVptZUVSRWNabWVFUXJyYysvTWdsYkhYYjZYMEJieXEvWDdhNWxYbW1mUVhEank4OFFhWElzcW14MTVCazlGdzFhVktTOUlJMHUyWmU1VDJSZXZyVzFYdGo3VDA3VjlQeUR5ZkhXL2MvbHRpd3p4akQ2eGU4Y3B5L0N2TEh6blcvd0NUelQrNHo3bTgza3YxdkIvYnZOZkg0N0UyeDduZDBuUzI3ampXMkxETWNhN2FlTVd2d3RuNVJwaTErckRxMlhzZk43QkRZR3JSYkxMV3QrMS85VVg2dm41ZWJXdCt5WHplMkwwUG5aSjR5MXJYdGZON1l2MWZPeThwYTl2MnZtOXNYcXZuWlo5SE9XaU5FYkI1QzUxRHdQWDFhaCtZdEJTcmU1bmVNelJZMVVwY0pEMXZlVFdtWDFSNHFGS0pLRUlRdDU5MHliYVFwWmtRK0I1WDViMmJ3enROdTc5NXZNWW80VXBYU2NtVy9wU2xabU5aOVptWml0WTFtMHhEdTN0bDdWK1hlNy9sZVB4WHhIREY5eE1kV2JOZldNRzJ4Uk9sc3VlOFJicHJHdWxZaUp2ZTB4U2xiV25SYUg0MjhadGVjWnNLUmpXSHhTbTN0aTNGZXpETTVqUkp1Y3BzMkVLSW5YZmR1bFgxTVZUaXlpUVdsZUZIUW96TTNIbHV2T2FHZWNlZGQ1ODY3cE8rN2xicDJsSm1NT0dzL0ppclBwSExxdk9rZGQ1alcwOEkwckZhMTl3L1pmMlQ4UTlrL0dvN0w0N2orcjNUTkZaM2U4dkg4OXVzbFk1enhuNmVLc3pNWXNOWjZNY1RNek44bHNtUytSWTZVekdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBL0NUR2p6WThpSE1qc1M0a3RoMk5LaXlXbTM0OG1PKzJwcCtQSVlkU3BwNWg1cFJwV2hSR2xTVE1qTG9KcmExTFJhc3pGb25XSmpuRS9HRk42VXlVbkhraUxVdEV4TVRHc1RFOEppWW5uRStzSzBubU9lVmJKd24zL0FOODhaS0p5WmhSZXQzR2VhbnEyU1ZKd3RodG81RTNJc0pqSlg0czdGa21sYTVOYTJsVDFZUjk3Q1Z4TzVFUFAzZ251TlhkOUhadklMNmJ2aFhIbW5sazlJcmtuMHY4QUM4OEw4cDB0eHRwNzd0K3lWKzNmVjhuOE54VGJ0M0crYmJWampoam5PVERITzJQbk5zY2NjZk91dVBXTWNDWXpNMWdBQUFBZVUreUpoRThuTFdsdDFiSDQvd0N3NkxadXJzaGs0L2s5RzhSOVVtdHl0dUs5YTBITm9zZ3J5Y1F6YlVka2hCSmVZYytjUzBLUTZodHhQeis2OW8ySGU5amZ0L2NjY1gyOTQvZHJQcGFzL3EyajBtUDBUckV6RS9YOGY4azd4NHAzWEYzcnNtYWNXOXhUL3dBMjlmV2w2OHJVdHltcy9walMwUk1YQ09FSE92WFhNZkRmOERPTmkrMjhjcm96MmVhOGVmTTFzR2FreG5NaXhaMTVSdTIrS1M1UmtSSzZxZmd1T0laa2VsVExyK3JmbUhodS93REZkMzgydVR0ZVMwL1R5L3c5Ti81TjRqOXkwUk0xOVlqZjcyMDl6KzBlNGZiL0FPYjB3ZC93MGljKzNtZVhwOVRGTThiNHBuMS9OU1ppdCtkYld6ckhUV1R3Qmh0NWhIeExPUlh3ZXkvcWhYanQzZ1g5OE8zL0FOWWorS1dOZmVML0FBeDcxL1VyZjZWVktGUHQvcUVOeTRlV3QrYlVwRnlyaVpHcVQ3ZjZoQzdEaVhuZzFTQy9hRnlyaFhuZ3RrZVVIOFRTbCtFRE8vOEFIb28xTTk0djc2WC9BS3ZpL2lsNlYvYXovaFBoL3IyNS93QktxVUlZc2JHQUQ1ZDVlVStOVTlwa09RMmtDa29xU0JLdExlM3RKVE1LdXJhNkV5dVJMbXpaY2hhR1k4YU95ZzFMV295SWlJWHR2dDgrN3owMnUxcGJKdU1sb3JXdFltYld0TTZSRVJIR1ptWEYzMisyZmJObmw3ajNITGp3YkRCanRmSmt2YUswcFNzYTJ0YTA2UkVSRWF6TXF6UFBmekViZmYwdTAxVHFLWk1wdEpSNURiTmphazFKcjdyWmI4UnhTL1dKelR4TXlxN0VTZUpLNDhCeENIbnpRbDZTUktORERHMjN0cDdYWVBHcVU3MTN1dGNua0V4TTFyd3RUQkV4eWpUV0xaZE9GcnhNeEdzMXB3MXRieSsrNFQ3anQ1N2daTXZpWGg5NzRQQjYyaUw1TkxVeWIyYXp6dEU2V3B0OWRKcGltSXRmU0w1ZEoweDBpelI3WHplMk0yVmFmNVphMUh0ZnFuL1dGNnI1K1dmUnJXeTlQemUwUXZWZlB5enhhMXY5cjlZaGZoOC9KUE5yV3k5SDlUOXNYb2ZPeXp3Wk5jYU9NdXcrVFdiTTR6aDBSVUtpcjNZcnVZWm5NWVV1bHhXc2ZVc3llZjZMYU9mYXkwTXJLSkNiVVRzaGFUTXpiWlE2ODMxUHpUem5zL2czYTUzL0FISzNWdXJ4TVljTVQ4K1cwZWtjK21rYXgxM21OS3g4YlRXdHNuZTBIc3Q1ZDcwK1MxN0o0OWorbjJ6RmFzN3ZlWGladzdYSGFaNDI0eDE1YlJGb3hZYXoxWkxSTXpOTWRiNUtXa2RFNkcxOXg0d1NGZ212NjAySTZEVEp1cnVZVExsN2s5dDJFaDYzdkpyVFRSUHlGRjdsdHRLVXN4MnVqYlNVcExvTkVmTFBMZThlWmQydDNidkY5YjhxVWpXTWVLbnBTbFptZEkrTThiV25qYVpsN2JlMXZ0WDRqN1JlTDQvRi9Fc1BUaGo1czJhK2s1OXpsMDBuTG12RVIxVzlLMWlJcGpycFNsYTFqUnpPT3NNa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUEvTWQ4cXhuS1R2ZDljWUtGRWZLRkhMdU0vMUpWc3NzUXNoU2hsY2lYa09BUUdHa0ZIeU54YUZMbFZhUG9kZ3BmZkdKRWtqYWxacThEOXhwMjNSMmJ5Ryt1MzRWeDVwNTE5SXJrbjFyOEwvQUt2SzJ0ZU5kWFBkejJTcnZmcStUK0dZb2plOGI1OXJXSWlNbkRXY21Dc1J3eWV0c2NjTDY2MDB2ckY2MkRqYmpMampMemEybldscWJkYWNTcERqYmlGR2xiYmlGRVNrTFFvakl5TWlNaklaN2lZbU5ZNHhMVUNZbXN6VzBURm9uakQwQkFBOTArMlltRk5udW4yVFA5UVZ4eVdMenhiMzE3bitZNnN6TEh0ZzRCZlQ4WnkvRnJGbTBwTG11ZE51UkdrTmRVcmJXa3lOcVZDbHNMV3pJanVwV3pJWWNXMDRsU0ZxU2ZHM3V4MnZjdHBmWTcybGNtMXkxMHRXZVV4UDhVeHdtSmpqRXhFeHhoeSsxOTI3aDJQdVdIdTNhc3Q4UGNNRjR0UzlaMG1KL2ltSmpXTFZuV0xWbWEyaVltWVhkdUlISTJwNVQ2RHd2YmNGbU5BdUo3RDFMbXRKR1dwVFZEbTFLYUk5N1h0RXRicmlZVWxTMjVzTWxyVTU2akxaTlo5NXFJdFFmS3V3WmZHdTk1dTEzbWJZcXoxWTdUK3RqdHhyUDZZNDF0NmRWWjA0UFN2Mjk4eDIvblhpdTI3L0FJb2l1NHRFMHpVamxUTlRoZXNjK0U4TDAxbVo2TDExNDZzbXgxMTNaaHY1Zy94TGVSWHdlelA4ZnJ4Mjd3TCsrUGIvQU9zUi9GTEdudkgvQUlZZDYvcWMvd0NsVlNpUi9YRzVrUExTODhXcFQ3WDZZdVZjVEpQSDl4cVVGN0g2Zlgrb0xsWER5UzFTQzlCQzdWdzhrOEZzanlnL2lhMHZ3Z1ozL2owVWFsKzhmOTliL3dCWHhmeFM5TGZ0Wi93bncvMTdjLzZVSlFSaXhzWTJ6bVdaNHJyM0dMbk04M3Y2ekdNV3grRTVQdUx1M2tvaXdvVVp2b2tqVXRYVlRyNzdpa3Rzc3RrdDU5MWFXMjBxV3BLVDVleDJPODdudThleDJHTytYZVpiYVZwV05abWYrS09jelBDSTFtWmlJbVh6TzhkNTdWNC8yek4zbnZlZkZ0dTE3ZWszeVpNazlOYXhIOGN6T2tWckd0cldtSzFpYlRFVFZuNXo4L3NxNVJYRDJHWVd1MHhMUjlWTFAxU2tWSVhIc3M2a3g1Qk9Sci9MMjJGRTM2dTJwcERrT3ROVGpNWlpFNnRUanhJVTF1QjdkKzIyejhSd3h2OEFmOUdmeUM5ZU45TmE0WW1PTk1ldnJ6aTJUaE5vNFJwWFhYeXg5K1BmL3V2dWZ1cmRsN0xPWGFlRVlyL0xpMTB2dXByT3RjdTRpT0drYVJPUERyTmFUODFwdGZTYXgySTlyOVg5b1pYcTFpeXkxcVBhL1VGNkhBeXkxalpmTittWXYxZlB5enhhMXN2Ni93QzBMMVh6OGt0YzM4MzdBdlZmT3lUd1poOFN1SW1lY3BjdFZDcXZFeDdBYU45azh3enFWRlc3RWdOcjZLS3BwMmxHMjNhNUhMYTZtMndTeVF5ajZJOHBLVFFUblJmUGZjTHRYZ25iL3E1OU0zZHNzVDlIQkU2VGIvUHZQNm1PSjUyMDFtZUZZbWRkTXoreUhzTDVQNzI5K25iYkxYYWVMN2ExWjNXOXRXWnJTSjQvU3hSd2pMdUxSeHJUV0swajU4azFqcGkxcERVdW9zQjBqaFZaZ091YUppam9LMUpMY011anRoYjJLMm1tcFYxZHpqU2wyeXQ1M2dwTjExZlFpSktVSVNodENFSjBaOGc4aDd0NVIzTy9kdTg1Wnk3dS93QzVXbGRabUtVcnlyU3V2Q0kvR1ptYlRNejdUZUNlQmVMZTIzam1IeGJ4SGExMjNhOE1hejY1TXVTWWlMWnMxK2VUTGZTT3EwK2tSV3NWcFd0WTVLSHhIY1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUXkrWXg1WUZWdjF1NTNUb2lEWDBPN1VJZHNNbHhyeEc2K2kybWxoaFNuSEVtYVNpMU9kdWsya201U2pialQxKzVsS1F0WHJLY3ErQys0V1RzczA3VDNtMXI5bzVVdnp0aC95emorTWNacityckh5dGUvZHIyWndlVVJrOGk4WnJURjVIRWRXVEgrV201MGo5NnVhZlMzQ3Q1NFgwbWV1S3J0elRXK08ydGpSWDlYWVVsM1VUSDYrMXFMYUhJcjdPdG54WEZOU1ljNkRMYmFreEpVZDFKcFcydEtWSk11aGtOamNXWEZueDF6WWJWdmh0RVRGb21KaVlubE1USENZbHBOdU52bjJtZSsyM1ZMNDl6anROYlZ0RTF0VzBjSmkwVHBNVEhyRXZtaXRaZm9Yb0lWTGN6NnZkSmVnVi9nc1R6ZnVSZXdRcWptdFduMVdVdklodnJDUnIva05qRGh2ZTlWUm1PQzMwSktrL3dDRGxZWkhTMzFmWm0wcnhENnZLall0RThRdTB1aVNSNlQ2OUU2Lys5T0NsZDlzTnpHbjFiNHNsWitPbExWbVA0YjIwL2RiamZheHVzMSswOTQyTnRmb1k5eGd2SHc2c2xNbGJhZmpwaXBydytIUDBudUdFMjFyRHZ6QW1YbitGL0l0RExUankwNjRzbmpRMGhUaWlhanlvY2g5MDBvSXpKdGhocFMxcTloS0VtWjlDSXgyN3dPWXI1ajIrYlRFUiswUi9ERXhINzg4R05mZUt0cmUySGVvcEV6UDdGYWVISGhFMW1aL1JFUk16OEk0cVVDQy9XSWJtUThzTFMxS0MvV0lYWWNTODZ5MUtDL1dMOWN4Y2h4TWs4V3FTWDdIVDV2Nmd1MWNQSksyUDVRdnhOYVg0UU03L3dBZWlqVXYzai92cGY4QXErTCtLWHBkOXJIK0UySCt2Ym4vQUVvU0FiUjJqZ3Vtc0h2ZGk3R3Y0bU9ZcGowYng1MCtTYWx1UE9yUHNpMTFkRWJKVW14dGJCOHliangyVXFkZGNVUkVYczlNZTlwN1QzRHZuY01mYk8xNDV5N3pKT2tSSHA4YldubFdzUnhtMDhJaG0veWJ5YnNuaC9aTS9rUGtPZW0zN1h0NjYydFBPWi9WcFNzY2IzdFBDdEt4TTJuaEVLb25OVG5IblhMVEtWUUdmVzhZMC9RV1R6K0hZUVRxVXZTbHBRY2RuSk10WEhjV3pZNUEreWF6YmJKUzQ5ZTI2cHBrMUdwMTk3Y1h3THdEdC9odTArcGJUTDN2SlRUTGw5STllakhyeHJTUFdlZDVpSnRwcFd0ZktyM3I5N3UrZTZ2Yy93Qm5yMTdYeEhiNVpuYjdiWGpiU05Jelo1aWRMNVpqWFNPTk1VV21sTlptOTc0UG9MMC9ON1F5TlZnRExMV0lMK3QrdjZSZXE0T1dlTFdvTDBpOVZ3TWs4V3RiTDAvcS9zRUwxWHo4azhXc2JMK3QrMll2MWZQeXp3bG52d3Y0UjVqeWh2MnJ1MUtkakduYVdlVE9TWmFsRGJjeTNmWTdYWHNjeEZFaHR4dVZhdUpVa25wS2tMalFFSzduQ1c0YmJEdU5QY1gzTTdkNFB0SjIyRHB6K1JaS2E0OFhwU0o0Umt5NmNZckhwWFdMWG1OSTBqVzFkZy9ZTDdkZS9lODNkSTdodmZxYlB3SGI1ZE54dWRJaStXYTZUT0RheGFKaTJTZUVYeVRFNDhNVDFXNnI5T085b0hBTUF4RFYySVVlQ1lKUnc4ZXhiSG9hWWRaV1EwbjJvVDFOYjBtUzhzMVB6WjgxOVNuWkVoMVMzbjNscVd0U2xLTXhwTDNidTNjZStkd3k5MTdybHRtMzJhMnRyVC9CRVJ5cldzYVJXc2FSV0lpSWlJaDdHZUwrTDloOEw3RHR2R2ZHZHRqMm5aZHBqNk1lT25wNnphMHp4dmU4NjJ2ZTB6YTlwbTFwbVptVzhSODUyQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSZCtZRjViMkhjc2FxWHNEQkUxdUc3L3JJS1V4YjFhRnNVMndJa0NNdHVGajJZcFpQdFptSVNsTFVTMlMydVF3MmxMVHhPc0phU3prVHduenpkZU5aSTJXODZzdlpiVHhyK3RqbVo0MnArSHJhbXVrODQwblhYQy91bjdSZHY4NXdXN3Ayem8yL2xOSzhMOHFaNHJIREhsMDVUeWl1WFNiVmpTdHVxc1JGYWtXYjRKbU90TXR1OEZ6N0hMWEU4dXh1WWNHNm9MbU1xTFBneUNRaDF2dlFmVkRyRWxoeERyTHphbHN2c3JTNDJwU0ZKVWV6T3ozbTE3aHRxYnpaWks1ZHJrald0cXpyRXgveHh5bUo0eFBDWTFhSTkwN2IzRHMyK3k5czdwaHZnMytLM1RlbDQwdFdlZjdzVEdreE1heE1URXhNeE1TMnY3SmtRNWNQbVduU0g2cExxWXFoWW5rL1loWEhKWnZQRFJiWThuWFJ0bnFyaTg5bkdRd0hxKyszWGtpc3dpeDVMSng1TGVGVnNSRlJpQ25tbkcwdTl0a2FadGl3dnVORGtTZXlwSkYxTTFhdys2L2VjZmN2STQyVzN0RnNHengvVG1ZNHg5U1o2ci92ZkxXZmhhc3czNSszWHhmUDJMd2VlNmJ5azAzWGM4MzFvaVkwbjZOWTZNV3NhYS9OOCtTczhwcGVzeHo0eXpER0RQckhEbUhVUFh2RkhraFdSalY2dzdwSFpqN0NFTitLdDU2QmlGdFBhaXBTYTJ5SlV0Y1VtaVYxOXlhK3ZRK25RK3hlSTVhNGZLZTNaTGZsamU0WW44SW5KV05mM05kWFNQY3ZiVzNmdDUzekJUODg5cTNVeDY2elhEZTBSNmM5TlB3MTFVYmtGK3VOMlllVGQ1MGFoQmZybitzTHNPSmFXcVFYNjUvckVMc09IZVdxUVF1UTRlU2VLZFh5N2VjK21PTkhGalBxUFpsck1jeWVwMlpaM09LWWRTUTNKbC9sTUhJTWR4NXRwcUVUaHQxME5tSloxRW81RW1VK3d3MmhhQ0x1Y05LSE1GZTQvZ1BmUEtmTE52bjdWU3NiVysxclhKa3ZPbE1jMHZmWFgxbld0cTZWckV6TXhQS05aamNQMkg5NnZFUGJyMjEzMno4ankzbnVPTHVOOG1EQmpyTnN1YXVYRmlpSXJycFNzVnZTL1ZlOXExaUppT05waUxSNDhyK1lPeitXdVpJdXN1ZUtqeENtZGVUaHV2cXlXKzdSNDlIZFVzdlc1SzFreVZ6a2NobFJKa1QzRzBLV1JkamFHbWlTMldUL0FBM3dydFhoMnkraHNvK3B2YnhIMU0xb2pydlB3aitUU1BTa1RPbk9abWVMWFQzVzkyL0pmZFB1OGJ6dTAvUjdUaG1mMmZhMHRNNDhVVCt0UEw2bVdZNFh5ekVUUEtzVXJwV01XRUY2Zm05cit5TzdWWWZ5VHhheHN2NjM2NHZWY0RKUEZyR3krYjlZWGF1RGtuaTFqWmZOK3lMMVh6OGsrcld0bDZQbTlzeGZxNEdTZUNTL2cxd0d5SGtkWVJzKzJBM1k0eHBhc21JVjZ4NFRzVzEySElqdkVVaW54eDFadExqVXpab05FeXpUM0VsWFZtUDNQRTR1TmlUM0w5MDlwNGZobnRmYXBwbThqdlhsckUxd1JNY0w1STliK3RNYzgvelgwcjB4ZmFEN2VmdHA3cDdyN3Vua25rMFpkbjdmNGNrY2RKcmszMXF6ODJMQlBDYTRvNVpkeEd1azY0OFd1VHJ0aXN6NHpqR080WFFWV0s0blMxdU80NVJ4RVFhaWxxSWpNR3VnUlVHcFJOUjR6Q1VObzczRnFXdFhwVXRhbEtVWnFVWm5wbnZkN3ZPNWJ2SnZ0L2t2bTNtVzNWZTk1bTFyVDhabWYzbytFYVJIQ0hyaDJmcy9hdkgrMlllemRrMitIYWRwMjlJcGl4WXF4U2xLeDZWckdrUnJNek16em1abVptWm1aZmRIRmZTQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlGODNlQk90ZVkyTGxJaytxNGR0MmlocWF4SFpFV0NoNTlURFpQdXRZMWxiTFJ0dlhXTHZTSGxLU1hkNnhCZFVic2RYUlR6TC9BSFB4RHpUdUhpdTU2YTY1ZTEzbjU4VXovd0MvVCtUZlQ5eTBjTGVreGkvM0k5cit6KzRPeTZyOU8zNzlpcnBpM0VWMW5Uai9BRGVXSTBtK09abjQ5VkorYXZPMWJWWjkyOEVlVkdnYlNiRXpiVW1UV1ZOR2VXM0h6WENhNmRtT0ZUMkNjVWhtVzNkMDhWNDZ4TXNrR3B0aXhhZ3pPMzkweWsvUU5qdXorWmVOOTZ4UmJhYnJIWE5NY2NlU1lwa2lmaDAybmpwNnpXYlYvRnBENVA3WStjZUxaN1krNWJEUGZiVm5obXcxdGx3MmowbnJwRTlPdnBHU0tYK05ZY0Y0enFQYXVZV0RkVGlXczlnWlBhUEtRaHV1eDdEc2l1WnkxTDd1d2lpMTlkSWU5MTJIMDlIc0VmempIM00vYysyN1RIOVRkYmpCanh4NjJ5VnJINzh6RHFXMDdEMzN1T2FOdjIvWmJ2UG5uOVhIaHlYdCs5V3N5bWs0VCtUL0FKcmVaQlM3RjVXMXJlTDRiV3ZNV1VMVXZyak1uSmNyY2IraXhtY3NrVnNsMlBqZENwWFlwNktsMWRnK251WmNURi9kSGlmeS93QjFObmd3WDJIak52cWJ1MGFUbjAwcFQ0OUVUR3Q3ZkNkT21PY2RYSnNUN2JmYjEzUGQ3ekgzbnp5a1lPMjBtTFYydXNUa3k2Y1lqTE5aMHgwNWExMW5KYmpXWXg4MWxXTEZpd1lzYUZDak1RNFVOaG1MRWlSV1c0OFdMRmp0cFpqeG8wZGxLR21HR0drRWxDRWtTVXBJaUlpSWhyNWExcjJtOTVtYnpPc3pQR1ptZWN6UHJNdHo4ZU9tS2xjV0tzVngxaUlpSWpTSWlPRVJFUndpSWpoRVJ5ZnVLVmI0K1EwY0hKNkM4eHUwUWJ0WmtOUFowZGkyUjlEY2cyMEorQkxRUmw2U05jZVFvaGUyK2UrMnowM09MaGt4M2kwZnByTVRIOE1PTnZkcGgzK3p5N0hjUnJnellyWTdSOGEzck5aL2dtVkJmSjhjc2NReWZJOFN0MmpadHNYdnJmSExSa3lOSnRXTkpZU0syYTBhVDZtazI1TVpSZEQ5am9OOE5wbng3dmJZOTFpblhGa3gxdlg5Rm9pWS9nbDQ2OTAyZWZ0dS93QS9iZHpHbTUyK2ErTzhmQzJPMDF0SDc4UytVa3VuNmhkQnk0aDhpODhHcVFYVDlnWFlqVnhMeTFTQy9hRjJIQ3ZMVklMOWNYWWNLOHRXMlg3WXV3NFY1YXRzdm0vVDlrWFljRzgrcldObCszL1dGNkhCdkxWdGwrMSsyTDFYQXlUd2Exc3ZSODN0L3dCZ1hxdUJrbmdsdDRGZVhoWTdvY3F0dDducjVkVHFGUFNYaitPcmNmZ1creGxvVjBaZk5UUnRTcXpEeVdSbXFRU2tQVGlJa3NkRzFHK1dFdmM3M1l4ZU9WdjJMeDY5Y25mK1Y4bkMxTnY4WTQ4TFpmOEFONHhUbmJqSFMzQSszVDdZdDE1OWZENXI1NWp2aDhJajVzT0NabW1YZlQ2VHcwdGoyMnZHYnhNV3k2YVk5S3o5U0xJVlpXVjFMWFFLZW5nUTZ1cHE0Y2F2ckt5dmpNdzRGZkFoc29qeElVS0pIUTJ4R2l4bUcwb2JiUWtrb1NSRVJFUkRVWE5temJuTmJjYmkxcjU3Mm0xcldtWnRhMHpyTXpNOFptWjR6TThabDZuYlRhYlhZYlhIc2Rqang0ZGxoeDFwangwckZhVXBXSXJXbEsxaUlyV3NSRVJFUkVSRWFRMXd0T1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNvdjVydWpYOVNjc01qeWVIRWNheFhjOFZHeHFpU1NGR3g3L1NWK3A1dFhtOTJJUXVhM2tES3B5MEYxTkROaXoxTXpNYmErMVBlNjkyOFZ4N2E4NjdyWno5SzBldlRISEhPbnc2UGxqNHpTenpWKzQ3eE8vamZ1TG4zK09zeDIvdXRmMm1rK24xSitYUFhYK1Y5U0p5VEhwWExYNG8xVWw3SDlVWk9pR3ZlU1dxU1hzZjFURnlyaDVKYXBCQzdEaDVKNE5VZ3YydjZvdlZjTEpQQnEwRjgzNlF1eERoWko0TldndlI4M3QvMkJkcTRPU2VEV0lMMlAxUDFoZXE0T1dlRFdJTDJCZXE0R1dVMnZBTHkzMzh1OTVOMmNnNlYrSGlyYjBXMHduV3RwR05wL0xHMG84ZUpmWmRFZkpMc2ZHbExORGthQ3RKTHNTTHZlSW9wcFRLMTk5enZkcXV3ako0NzR0a2kyK21Kcm0zRloxakY2VFRGTWNKeWM0dGVPR1BsWDU5WnB2SDl1ZjJ2WDc1TzM4OTl5c0ZxZG5pMWNtMTJPU3VrN2lPZGMyNXJQR01IS2FZcGpYTithOFJobUl5MkRHV1dZekxVZU8wMUhqeDJtMldHR1cwTk1zc3RJSkRUVFRTQ1NodHB0Q1NKS1NJaUlpNkVOV3JXdGUwM3ZNemVaMW1aNHpNenptWmVrdVBIVEZTdUxGV0s0cXhFUkVScEVSSENJaUk0UkVSd2lJNVAxRUt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR0RYbUFjVVcrVjJpNStQMHpNZE95OExmZnl2V3N0OWJUQ1pGczFHTnF4eGVSS2ROQ0dJT1ZRVUV4M0xXaHB1WTNHZWNQc2FNajd4NEI1WFBpbmZhN2pQTS83c3pSRk0wUngwcnJ3dkVlczBuajZ6Tlp0RWNaWWk5NlBibVBjZncrK3kya1Yvd0IvN1NaemJXMDZScmVJMHRpbVo1VnpWK1hqTVJGNHgybmhWVGtzYXF5cGJPd3BybXZtVlZ2VXo1ZFphMWRqR2VoV0ZiWTE4aHlKT3I1OE9RaHVSRW1RNVRTbTNXMXBTdHRhVFNvaU11ZzNKdzVjV2ZGWE5odFcrRzlZdFcwVEV4YUpqV0ppWTRURXhwTVRIT0hsZnU4R2ZhYmpKdGQxUytQZFlyMnBlbG9tdHFYck14YXRxenBNV3JNVEV4TWF4TWFTL05CRGtSRDUyU2VMVklMMlA2b3V4RGhaSjR0VWd2bS9STVhhdUhrbmkxU0M5cjlUOXNYWWh3c2xtc1FYemZzQzlXSEJ5ejZQb3hJMGlYSVlpUldIcE1xUzYxSGpSbzdhM241RWg1YVcybVdHVzBxY2RlZGNVU1VwU1Jtb3o2RjZSY20xYVZtOTVpS1JHc3pQQ0lpUFdaOUljUG95WnN0Y09HczN5Mm1JcldJbVptWm5TSWlJNHpNendpSTR6S3dCd0g4dElxVlZSdWZraFF0TzJ4Rkhzc0sxVmFNazRpb2NTNGwrSmZaekVVWnRQMlhSS1Z4NnB3bElqa3J1bEpONzZDenJUN2wrN2s1NHllUCtKNVpqRHhybDNOWi9ONlRURFBPSytsc2tjYmZxVDAvTmIwRyszcjdXNDJWOFBuUHVmdDR0dStGOXIyL0pHc1k1MTFybTNWZVUzNVRUYnpyRk5kYzBUZjhBbTZUa2pYTnZ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFpVjh3RHkxNnZrV3FidG5UeWFyR2QxTXhqWGRWY2p3NEZEczV1TTJsTEtKOHN1MW1ueTVwaEhoc1QxcE5tVVJJWmxLUWtreVdjdWUzdnVYbDhiNmUwOTU2OHZaSm41YlJ4dmcxK0VjN1k5ZU0xampYak5OWjFyYldUM3U5Z2R2NTMxK1MrSy9UMi9sc1YrZWs2Vng3dlNPSFZibFRORWNLNUorVy9DdVNZalRKU3Mxbk92TTQxZGs5aGhtdzhWdThPeWlyWDJ6YVcrZ1BRSmlFR3BhV3BMQk9wSnVaQWs5aHFZa3NxY2p2bzZLYldwSmtZMmk3ZDNIWTkxMnRkNzI3TGp6YlczSzFKaVkvUlB3bVBXSjBtSjRURVM4N08rOWs3eDQzM0hKMm52MjJ6YlR1V0tmbXg1S3pXMzRUR3ZDMVovVnZXWnJhT05abU9MYkNDL2JIMG9oMTI4dFVndjJ4ZGlIRHZMVm9MNXYyZjZndXhEZzN0NnNsZEI4VXQ2Y2o3SkVYV0dFVHAxUW1TbVBZNWxiRXVvd3FuTWxFVHZyMlFTbS9WMzMyRW4zS2l4RXlacHA5S1dWRHJua1htZmp2aW1Icjd4dUsxejZhMXhWK2JMYjRhVWpqRVQvQUNyZE5QamFIZXZCUGFmenozTDNVWWZGdGpreWJTTGFYM09UK2IyMlA0OVdhMGFUTWM1cGppK1RUbFNWam5pRjVkT3JlTkhxT1g1QzVHMlR0NXRIaUl5dXdnSmFwc1dkY0wzYldHVTc2bi9VNUtFbjJIWXZLVk5jVDNlSDZ1aHhiSjZ0ZWNlNmZlZkxlclliV0oyblk1LzZPcy9Oa2o0NWJScHJIcjlPUGtqMTY1aUxQUi8yYysyM3hUMndtbmV1NVRYdW5tVVJyRzR2VFRIZ21lY2JiSE92VGFPWDFyYTVaalhwK2xXMXFKRXhpMXNpQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURqUFoybXRWYm5wMDBPMU1BeGZPcTFydk9LaS9xNDh1VlhMZElpY2VxYklrb3M2aVF0SmREY2l2TXVHWG82OUI5VHRYZSs3OWt6L3RIYWR4bDIrV2VmUmFZaWYrVlg4dG8vQzBURHJ2a2ZpUGpQbDIwL1lmSnRqdHQ3dDQxNll5MGkwMDE1elMvNTZUK05MVm44VWRHWStUaHhVeUNXNU14dTEybGdLVnJNMFZsSms5YmNVN1NGTE5YWWxHV1VON2RLTkNUN1VHcWNmUXYzWGNmcEdUTmo3MmVYYldrVTNOTnB1T0g1clV0VzMvNXU5Sy8rNSs4MTk3eDlvL3RoM0hMT1h0K1h1ZXdpWi9KanpVeVk0LzhBeCtMTGsvQ1A1ejlPcmorcDhsRFNqRC9kZGJmMmxZUnU1cy9DcTR1SjA3L1lSbjRxZldKZFJlTjl5MDlDU2ZoZEVuNlRKWFhvWDFjdnZ4MzZhLzdQc3RwVzMrZE9TMGZod2kxUDQvM25XdHY5bUhoa1gvMjN1L2RNbUxod3BYQmpuOGVOc2VXT1BwOHZEOFdWZXNmTE80ZjZ4ZWpUa2EzVm50dEZVbFRkbHN1MGtaVTJzMG1Tdm8rUEdtRGgwanFvaTlLNjFSKzBYb015UHFQZHZkZnpmdXRaeC90WDdOaG45WEJXTWMvdVg0NVkvY3V5ZDR6OXRIdEI0MWtybi8zYiszN3V2Sys5dk9lUDNjUHk3ZWYzY01zN0srdmdWTUdKV1ZjR0hXMXNDTzFFZzE5ZkdaaHdZVVZoQk5zUm9rU09odGlOSFpiU1NVb1Fra3BJdWhGMEdPOHVYSm15V3k1cld2bHRPczJ0TXpNelBPWm1lTXpQeGxuWGI3ZmI3VEJUYTdXbE1XMngxaXRhVXJGYTFySENLMXJFUkVSRWNJaUlpSWF3VUx3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzlrTkNtVnVaSE4wY21WaGJRMEtaVzVrYjJKcUNqY2dNQ0J2WW1vS1BEd3ZUR1Z1WjNSb0lESXpOVFV2Um1sc2RHVnlMMFpzWVhSbFJHVmpiMlJsUGo1emRISmxZVzBOQ2xnSjNadGJieHMzRnNmZkMrUTc4S1ZBdW5CbzNpOTlpMjlaQTcwNHNaSSt0SDNReXBORXV4NU5WcExUNXR2M2NHN2tVQnFabEFjcFVDUnduTEgwLy85NGVIZ09aMFEvKytiL2lBcE1OVWRhWUdZb01wUmpLVGppMG1CRkdWb1g2QmUwZWdhdll3UXJMWkFnQ240Z2tiU1lJQ3JobW4vUjJReWRYbkZrc0xVV3pkNGpVdjlaZjRBM1VVeUVRTE1mYWhuSmthQVVNd3RYN2hCRHN6VWltRW1OL21qZjh1WVZldjVUaGI5RHMvK2kyYi9RNVF5dXpkYlB2bm50UUF3ZmdEQnVNR1gwR0JhbmxNUnlVV3dXNitXbjdiSmE3V2ZpVEdKdFpROUZ1Y1dVSDhOVUt4bWJBSFZickpmemV6UWFKNkhBaUhrbVNRQ0pIY1BVS3ozS2RGTnR0dWk4dWl2MkkwbkdNWUczZEVnQ3hpcVBDcE5rR3ZPa01MMWNiSmVmNTl2aWJnUkpNd3g1M3dkSllNR09DcExVRWpPVlFuUURFMWZkb2F0MVZlNW5VaHdrWUtxQ21YTVpmd1NVNGhxK1RacTVCbXBXalNBWmlTMVJQWkxtTUhOSHhhbFc0aW1yN2szeHZsZ1hxOFZJTW1ubGxxOVBKaW14Wk9ZWUpHMmdoQkNha2t4bDliRGE3dWRwQ3lUWENsUHdVb0FsSmZCd2JJZ1o4b2lrR3NtMWhaZ3poK01XKytmbG9vQzF0ZHF1NTR2dDkrajIzVG1oWEJFUEUzRW9pcVZsbm9OaEZYT2sxV3F1Qk5iMFFGUitYRzZMZS9SMnRYeS9MTzRBc1N3ZlZzdkYzSlhMRFpyRFg5VGgvL2I4N2ZsOGZ2dmJkNGREQ0hVQk1Ob2VBLzNKMHFQaUp5em1iZnpPcm05ZkVNSWdRZlJPd05xRzBybjJEU1hmdUcwb29YRTkzaDNMcnFMMkkyMXJjNzZsVi9LZU56Kzc1VENiN2RoMjliZXo3ZXB2dnExVDRyV1N0eVgybEtoVFJoamZOVzZxYkQvY3Rzb2U0YXMxbG9RT2ZLazRKZHI1aWgzZnJwSUdjYTRyYWI2eDRnSVRGaG56VTByMkczZkZxVGR1aTFPK3NZWXFRT01SOHhOcUZDekswY1hQTEdaUFgwQ2NnM1c0Z0xoaVZvNHVvTVowZ3ZVVCtOYnJCNzFBN0UvMDl2d2NYVUw1KzRMZWJvcjFlSEkzR0JQa2RvREJ5U21SKzZlNnkrMDI1RTlQN2NqV1BKTGFyZS9UTXp2d1RjbnMxdmY0eExiUW1Pd3d6TEQ1VmJ0SjNVV1lNTXlZUlM3MWphZzdtbzA5SDkya2daSWJLM0hZNmtCUG0xVmIyRnkvT3J0QmwzOHU3akY2OTNKMmVCdlMwWFVCeVlkeks1MkF3dU53c1A0WkdIQjJjRS9MWUZzanVQSHhvbkNQa3B1VFRieVlwYkNtVlROSDVOdGhOS0pBZExaZElQSmR0WUdNaEszMHdQVkVDWWFGR2tzT0JqZXdTdWlEZzAxTURnWUxrZXREMjBDZkhOZXJwT1RvNkE3RUpERTVIb2VqOHNSQUZkSm1IeEtCRVdvVWZvVzNPQTJRK1BWM2VOMGRSTENwNWhCOFFqUXFrWElyM1ZXYTlzbzl1czBTZ2hzanR5RU9oTm9ycVVJeEFDaEJwM0MzSTdsSU1VR2dsTXNVRVpRdzE3UXBCTGxNRVVHZ2xNa1VFNVFJMGhsVEk3T1pZb0pBS1pPcFN3SkY2cnNSRUtLREM3azZRdFQ3S2EvVFhralZpZXhMNkdPOGZuU1RDeFQ1QjBLWlJERkFDWHQ2MWV6cE01Rmlna0Fwa3lrbUtHRlRSSnZkVlNaVFRCQW9aVExGQktDa1NiMHZ5RVNLQWJ4UUx0SFFQeWh3dVVSRC8wQW9reWdHQ09wYkpsSk1FQ2psTWtVRVFYM0xaWW9JQXFWTXBwZ2dxRytaVERGQm9KVEpORldGNjNTWWNmdHpMOVA4LzZ1WHQ2RjlvSlBITTExdGl3QUNvVHlpNlNwYkJCQUk1UkZOVjlpRy9sNG5rMmVxc2phMEQzVHllQ2FzYVVPQVFDaVRhTEtLRmdFRVFubEUwOVd6Q0NBUUdoQzVoelRoMTFwbnQ1d0o5M1NIYTEvUHVndmpNcEREdXpKRTFoOFdlSm4yUWlKTlpPN0xXU1pPNUI3bzVQSEU5cjZhWlFMRi9vRlFIbEhzNzZ0WkpsSHNId2psRWNYK2ZUbkxCSXJ0dlU0bXo5RGRsN05jbnFGN29KUEhFOXY3YXBZSkZQc0hRcGxFa2IrdlpybEVrWDhnbEVjVSsvdHFsa2tVK3dkQ1E2TFVmZDZqMDUrOFlYenlBNS9rK1UvdnIwOS80cE9hQWVrZDlzbFBmS2JMZ2VtZStFejJzRzduZ2MreE44VVRQcXViN3E1NHNtZDEwOTBWVC9lc0x2bXVPTEV6Y2Fvd0d3eXR1WkNwUW1qOXdVb2cwMTdKTExrOVRqK3FMSnpZUGRESjQ1bHFYSzBPTTdyK3ZNWHJkRmUrOXNCaWZ5K1VTZlNFa2UzYmFUSE5zYkZoeGU2dWZJV0I3ZDFHZUtKZWFFajBlSmxWR0hZZVFlR1B1bml1VGw4OG9rYVFxOU9YanFnUDVPcjB0NS9SWTdHL1M2ZTdpUjArWGN0VThRMC8ycno5dzJmOTBYdjhOano5NWpxNjZVKzl4NThxeXMyUjZFQm5LSnlwNDNObmtFdXBzV2xoZkd5R3dVcU5UY3FZNnMrczIxY1NlSGQzR3J3OUhPNFBnM2VIeHJHRUxZd2hHaFBLa0lRWGE5bStxci9xUHBhR05VZWd4clh2QW1jTGxXNVJvdFByVXFLTENyMGVXZ3ZPb0JhSzNwNHFocm54WnpxVFJ1c0dKN2s3SktYYzR4VzR3cXpwcjZRSHY5TXhvcDdDNWdLVWZHeFZjai9yMzJVeHNUekE2YTZrUHFScEErUjVlQit5TENET05lYWNoZ0ZxcjNnaXFlQTd3ZmRjOFVIYzFJZmZCV3hsblJobG1IS0pETXd2L0VQcHZoTXc5dURoOTFvSkRHQlVVZzBPT1JpMWM5Qjh1ZnFBTHViYmtlUEJIWld3RUh3K0FaU3dFSFRKRGtCZHJ6NVg3cFRyNkpIOG5rbHJySVNkQXNyQU90WHFVS1RtWDhwaXRVVS9GdHVQMWNnaGVNRUpwbExVUTZSZ1FOMFJQcTMzZ29uRFlMV1VPNWh2RFphbVBycGpDS0dDc3QyRHQrNjFScWsrSE5UbGxUdXpkNXl0Z1dvWXhPUDV4WEpkTExib292alBjanZxM1NVdGhmd1hhdjljSkhvSFdWdWZTVlduZTQ3UFVRc3JGK1pOZ3AyMHNIOWtXQk4yaksxVFV1NmNvMU5zWEsvbTYrTGp2RHhCLzU2WG56WWZZZnlvUGd1c1gxNk1nc0FXV1loSlFOenhxVGIwdDlXOXk3bXpoODF5Vld3MjZHYSsvdDhKb295USt0cy81bDlHZVlBRFpDZkFNUUs2Y3BPQlY4QlJyZER1dWVUT3RLa1JFNWo2R3RGVmcxM1B0b1lMQ1JVYjFwcDJDd1hNSVE5dDdBa05zRE9GVnNzR1h5T0FWbFd5UHYvUGxwdHRzZmlJUHQwdnhnWU83UnM2RTUxZzVKSVliRWlUaHVmM3hYeTFjZVc1Ty9mL2FsMDlmRUkvTE12bDRCZHh1cU9zd3YxdUFrTkNjY3lnaWZVaGNTZGNkMk1pVTJPaW9CZ1k2Rnp1akx6VHJUUHo4czI3Ni9OTGRQM1R1NS9oMzlIWmNTVUpXaHdUQkhNOUZoaDlNREN0RWtCbzNxVEVWYlV1WFhkQWIxNUlTK2tKdXQ1c0h1cCs4VDMwWjRaQ21pUUxUdXZmZ2dvOWJ1WWZDb1QybkF5bnpZeERua0V4YnM1SnVtRnhtTFNjenVOMG9EVklCc1h1UU5zNWY5aHNxekk4cGgwMkhDVmdoaGxzR1prN0t3NVZGMnFIVXE3eEJ3Y2pZYVlsNklwYXMvMUovTVptRTZuYVRXVFFZZXNiN1VrNnJJTE5xejNVOWk5Z0NzZjNJWDF2YlltZTJHanEzdXFSdWw5K2lCdk5ZQ2ZmYjZTbGhZQkNkZWhNWC84RjBXRUhQUTBLWlc1a2MzUnlaV0Z0RFFwbGJtUnZZbW9LT0NBd0lHOWlhZ284UEM5VWVYQmxMMUJoWjJWekwwdHBaSE5iTWlBd0lGSmRMME52ZFc1MElERXZSR1ZtWVhWc2RGWmhiSFZsS0VkNWEzRk9VMnN2WkVGdlpVaEliemhPVTJnMlpFSlJaa1J1Y0c5aFdGSnFaRWR2UFNrK1BnMEtaVzVrYjJKcUNqa2dNQ0J2WW1vS1BEd3ZSbWxzZEdWeUwwWnNZWFJsUkdWamIyUmxMMHhsYm1kMGFDQTJPREF3Tnk5TVpXNW5kR2d4SURNeE1UTTJORDQrYzNSeVpXRnREUXBZQ2V5OUNYeFUxZlVIZnU1OXk3eGxsamVUV1ROWlpwaUVRQWFTa0VBZ2lHWUVBeEZVRUJFQ0pSQ1VKYUpDV0JSUStVV0thVmkwZ2d1b3VORFdGdXJQNG9BTGkxQVJxVHZXclM1VnEzVURyUlJxWGZnQm1mbWYrMmF5b0hUNS96OWcvazN2OTgwNzc5Nzc3bnQzTytmY2M4OTdNd01FQUx4SVJLZzc1Nkp6aDExMHdmTTNBWDF2SjBEMkk4UE9xUnFhOGE2ekh1aXhCZ0RodzJHalJsNjBSQjEvQWREa0dDRG5melBzb29zSHozeGt5VGdReno4UFlPNE41NDI1cURxMDVMYTNBYzRjQkdCTUhYbFJjZW5iWjQxOUY0QWN3RkxxeHA1emZzM3NPVmNmQlRoL1BZRDB3YVZYVG1rWTk4ZzVXTjdJKy9IOGprdXZuaDlhOE5wMVB3RTZHY3VqcTZZM3pMaFNtSjg3RmVpb09nREw4aGxUNWpWQUFGU3MzNE9ZMzVoeHhhTHA0NjBqOXdPOUJLTm43cW1mZXVYQzBKb2pOb0NMcmdkeVBLOSsycFNwWDd4UmgyV1JLekJEZVQwbTJKYzVmNGR4Vmw1ZS9aWHpGdzQ4bnZrcWxsVU5NUENySzJaZk91V2xNM2ZQQTNyZlhvRFFuaXVuTEd6d1BLWU14UHpQWXY3UWxkUG1UeG5XL2JMWFFIemlaWXpQblRYbHlta0g3Mzl1RmREZHk3Qy9TTVBzZWZPVEJUQWQ2M2NqeTk4d2QxcUR5M0xvR2FEanZzRDYveGhZWDFzQTd2Mzk1VCthN0JqME5RUVZZSGpvNjBFUHNlTWJ6VzhkUFRheDVVdjlPUVZ6WVRzSnBJQkhTMTFpTklEK3AyTVRqMTZqUDlkMkpnMWJKa3N4NnVCNk1Nd0Vpc2RpdUJpSDlRUExjak5GRUpySUtwQkFrZTZTeXZDV3dkUlJlQVdtVTVjaVVWMFdLWVA0Q1JRbGQwUGRqL0NhbnV6Qzh5OEtoU0FHb1dPeTlGcmlRbUt6MUpGTklVS1NvUjU0OTN4cEIyc3BlR2dObEpvRlYrQWVTdFdLdmdsaldtdG95WVlscldINkFGeUwrL0MyZUFVOGh2SEI1aEd2RitmQlJOdy93cjBTOXdtNDUrSStOcDErU1RvOGx1V0hmd0JwYkRJaGpZWDdwV2VnRHZmN1dWajhDTzZYSzFKeHZIWm5hMTY4MS8zeUEyYmUxSG5NYTk0amRkMUV2SzUzT216OVIrVjlGM2pQQzNCZktRSlU0OUhjc1V3akhWNUpYb09WWmo1SWhiSDhsV2IrOVBsMFA3SHJLL0c2Q0tZMVl6aUk5ZER3YUdmaGY3Y3VIS2NYT0JZRzIwLzFmVnQ1aElPRGc0T0RnNE9EZzRPRGc0T0RnNE9EZzRPRGc0T0RnNE9EZzRPRGc0T0RnNFBqaDRINEpFenY3RHB3Y1B3bmd0elYyVFhnNE9EZzRPRGc0T0RvTElnandKRDlxVjI4Q0k4MnFPenNPbkZ3Y0hCd2NLUmcxT1VRUWlCZ2ZsWFdhZ1VJaEFOK2Q5aWRSaUNWSyt3dkt2Sm5CWW93anp0Y2xPc0hqQldGMisrU0craUoxd1hJQVhBZjZFRjZCc0RqRHBDZVJUM0RKeS8wVk1Mak9WbnFnZE5mTUFjSEJ3Y0hCd2RINTRIODZ5ei9TZWhpemVINHp3TXVpVWlQenE0RUIwZlhBREVGaW9BVmppaEpVTUNTVElBS0dsSU5kS1M2U2ExZ1EycEQyZ0oyc0NOMWdBT3BBVWJ5T0RoTjZnSVgwZ3pJU0I0RE43aVJla3pxQlE5U0gvaVNSOEZ2MGdENE1TVVRBa2lEa0lrMEMrbFJ5SVlnMGh6SVR2NGY1Q0k5Q2lHa1J5QU11WmpTRFVKSUl5Yk5nekRTZklnZzdRNTVtS2ZBcEQwZ1Ava3Q5SVR1U0F1aEFHa1VlaWEvZ1Y1UWlMUzNTWXNnaXJRWWVpRXRRZm8xOUlFaXBLVlFqTFFNU3BEMk5Xay82SlA4Q3NxaERHbC9rdzZBdmtncm9CL1NnVkNlL0R1Y1lkSkJNQURwbVZDQjlDd1lpTFFTNlpjUWd6T1FuZzJEa0E2R001RU9nYk9RbmdPVnliOUJGY1NRRGpYcE1CaU10QnFHSUQwWDZXRVlEbFZJUjVqMFBCaUs5SHdZaHZRQ3FFNGVncEZ3THRKUk1CenBoVEFDNldnNEQrbEZjSDd5cnpER3BCZkRCVWpId2tpazQyQVUwaG9ZblR3STQwMDZBUzVDK2lPVFRvU0xrZFlpL1FJbXdUaWtrNkVHYVoxSnA4QjRwSmZBaE9SZjRGS1lpSFNxU2FkQkxkTHBNQW5wREppYy9CenFvUTdwWlRBRjZVeTRCT25sSnIwQ0xrMStCbGZDTktTelREb2JaaUJ0TU9rY3FFOGVnTGttblFjemtjNkhLNUJlWmRLcjRjcmtmbGhnMG9Vd0Mra2ltSTMwR3BpRDlGcVltL3dFcmpQcFlwaUg5SDlNMmdoWEliMGVGaVEvaGlVbS9URXNSTHJVcERmQUlxUk5jRzN5SS9nSlhJZTBHUllqWFdiUzVmQS9TRmVZZENVc1NYNElONXIwSnZneDBwL0NVcVEzbTNRVjNKRDhNNnlHbnlDOUJacVIzbXJTMjJBWjB0dGhlZklEV0FNcmtLNkZHNUhlWWRJNzRTYWtkeUY5SDliQlQ1SGVEYXVSM21QU2UrRVdwUGNoL1JPc2gxdVIvc3lrUDRjMVNIOEJhNUhlai9ROStDWGNnZlJYSnQwQWR5SGRDT3VRL2hydVRyNExEOEE5U1AvWHBBL0N2VWgvQS9jaDNRUS9TNzRERDVrMERqOUh1aGwrZ1hTTFNSK0dYeWIvQ0kvQXI1QStDaHVRUGdZYmtXNDE2VFo0SVBrMmJEZnBEbmdRNmVNbTNRbS9RYm9MTmlYZmd0L0NRMGlmZ0RqUzNiQVo2Wk93QmVrZXBHL0NVL0F3MHIzd0tOTGZtZlJwMklyMEdhUnZ3TE93RGVsenNCM3A4N0FENlF1d0UrbUxTUDhBKzJCWDhuVjR5YVMvaHllUXZtelNWK0RKNUd2d0t1eEIrcHBKWDRlbmtQNEI5aUo5QTM2WGZCV3dIS1J2d1ROSTM0Wm5rZjRSbmtQNkRqeWZmQVhlTmVsNzhDTFNQNW4wZmRpSDlBUDRmZkpsK0xOSlA0U1hrWDRFcnlEOUdGNUYrZ204bHZ3OWZBcXZJOTBQZjBCNndLU2Z3WnRJUDBmNkV2d0Yza2I2QmZ3UjZVR1QvaFhlUVhvSTNrM3VnOFB3SHRLL3daK1FmZ252SS8wN2ZJRDBLNlF2d3Rmd0lkSnZUUG90Zkl6MGlFbi9EejVKdmdCSDRWT2t4MkEvMHVQd0dkSVdreWJnOCtUemtEUXBvQjRGWTZxcUNpQlFFQUFWUEFnQzJ3VkJhb09RbWdvc3NzVWk0NDVSU2NVZ0prZ1dTL3RVa2NvclNSUWtxbUFRQkl6SkdEcjlzOVRKeTZDbnYyQU9EZzRPRGc0T2pzN0REMkJsL1pEZ3RodEhKd01YTjVMbFgyZmo0T0Q0bDlDWWowRmcwNVRhN21PUTI5RHFZN0JZRkl1c01CK0RyR0lRbUF4MkVFSlpsakN2TEpzK0JyeU0rUmhrN21QZzRPRGc0T0RnNERoTmtEdTdBcWNXM0hiajZHUklpaUlwblYwSkRvNHVBYjNOeDlEK0hvUDBqM3dNaXVsalVCUUxLQ3loL1M2cHZNekhJSE1mQXdjSEJ3Y0hCd2ZIYVVjWGUrTEtiVGVPVGdZdWRXVHVZK0RnT0JXdzZpSnpMWWdBT29DSUIwRVVCRXNiV24wTWlxSXFGdmE5Q3JEb3Fxb0FpM1dZMml6c3l4UUN5eTRMT2w0R29peFlKRlgrQVh3TThrbTkrTUxwTDVpRGc0T0RnNE9Eby9QQWZRd2NIS2NTc3FyS2FtZFhnb09qUzhCbUZVRTAzMk93dHZrWXhPLzVHRlJWMVZSRjAwd2ZnNmFwb0xHRTlyc29pa1ZSQlBaZENvdWdZeEJFNW5GUTVSOWc5dU0rQmc0T0RnNE9EbzcvUW5TeEo2N2NkdVBvWkZnMHphSjFkaVU0T0xvRTdNekhJS1o5RE94N0I2SWtpa29ieEZTdWxJOUJaejRHcFBySmZRd2kreTZGUmREeE1wQXNvdkxEK0Jnc0p5MkR6MU1jSEJ3Y0hCd2NYUnJjeDhEQmNTcWg2THFpZDNZbE9EaTZCQnkyVmgrRDdaLzVHRFJkMTFTcnpud01OdDJxQWNiMEUzd01TdHJIb0FnMlJWVkF3cGhGUC9uNi85U0MreGc0T0RnNE9EZzQvZ3ZSeGQ3cTVyWWJSeWVEK3hnNE9FNFZETHZFZkF3eWdMM2R4NkMySWUxajBIWGRxbXMySy92N0NkUEhZTlZWYXdjaFZGVkZWU1gyZXcyS1lNUExRRklrOVlmeE1hZ25uV0g1UE1YQndjSEJ3Y0hScGRIRjN1cm10aHRISjBPMVdsVnJaMWVDZzZOTHdPbVFtR3RCQm5Da2Z0dEFsRVdwM2NlUS90RkczV3ExNlpyTkp1S0Vac2NnV0hYdFJCK0Rhdm9ZUkZCRU8vTXh5QmhUck1vUDhCYmZ5WDBNNHVrdm1JT0RnNE9EZzRPajg4QjlEQndjcHhLcXphYmFPcnNTSEJ4ZEFpNmoxY2RncEh3TWtpeEpXaHZTUGdhcjFXYXo2dmFVajhGbXQ0SU5Vem80K2pSTnhieWFKb0lxMnZFeTVtUFFWTnZKMS8rbkZ0ekh3TUhCd2NIQndmRmZpQzcyVmplMzNUZzZHWnJkcnRrN3V4SWNIRjBDR1liTWZBeVd0dmNZVHVwanNGbHROcHZWYm1jK0JzUHVTUGtZT2pqNk5GM1RkUkUvb0lxR3J1c2dxNkt1MmpYdVkrRGc0T0RnNE9EZ09CM2dQZ1lPamxNSjdtUGc0RGhWY0x0a2tFMGZneXYxKzRtU1JaTDFOcVQvR05KdWM5aHRWb2Rkd2duTmFUZHNZTFBiN0IyRVVHYytCb241R0xTMGowR1RkTTJ1L1FCdjhYRWZBd2NIQndjSEI4ZC9JYnJZTjhlNTdjYlJ5ZEFkRHQzUjJaWGc0T2dTOEdUSTdQVUZDMEJHeXNjZ1cyVFoyb1pXSDRQZDRiRGJEQWY3aTB1WHc3Q0RnM2tkMnU5aXRlcVkxMnFWUUplY2VCbFlkTm1xTy9RZndNTis4aktrMDE4d0J3Y0hCd2NIQjBmbmdmc1lPRGhPSlhURDBJM09yZ1FIUjVlQTEyMzZHQlFBOXoveE1UZ2NodUd3T1EyWitSZ01wd01NaDlYbzRPanI2R1BJYVBNeEdOekh3TUhCd2NIQndjRnhXdERGZnAyTyt4ZzRPaGxXcDlQcTdPeEtjSEIwQ2ZpOGxyU1B3UXZBL2dkQ1ZtU0xyUTJ0UGdiRDZUUWNMaWRHYlc1WGhnRk9nM2thMm1DelcrMTIyWTdacmJLYmZZdENzY28yM2ZWRCtCaXNKL1hpeTZlL1lBNE9EZzRPRGc2T3prTVgrK1k0Zno3RTBjbXd1bHpjeDhEQmNVcmc5MXJBd24wTUhCd2NIQndjSEJ6L1VlQStCZzZPVXdtYnkyVnpkWFlsT0RpNkJJSitCUlFMKzR0bGYrcjNFeFZWVVJ4dFVGSzVYQzYzMitYMHVESHE4TG85THNDWXU0TVFPaHgyek90d3lHQ1h2WGdacUhiRllYZmJmb0RaejM3U01yaVBnWU9EZzRPRGc2TkxvNHQ5YzV6N0dEZzZHWGFQeCtIdTdFcHdjSFFKWkdlcTdQVUZEU0FUZ1AwUGhLSXBpdEdHdEk4aEk4UGp5WEQ1UEJnMS9CNWZCbURNazlGK0Y4TndZRjdEc0lEREVzRExRSE1vaHNQaitBRittL1hrWlZoT2Y4RWNIQndjSEJ3Y0hKMkhMdlpXTjM4K3hOSEpNTHhldzl2WmxlRGc2QklJWmFuczlRVWRJQ3YxKzRtcXBxb3V3NVZHK284aHZSNmZ6K01PK0JRQVY2WS80TUVFdDYrREVMcndDcWZxY2xuQXNBVHhNdEFOMWVYdy9SQStCdU9rWG56dVkrRGc0T0RnNE9EbzBzajQxMW4razhCOURCeWRES2ZmNy9SM2RpVTRPTG9Fd3RrYTh6RllBYkxUUGdaZFZWMnU3L29Zdkg2LzE1M3BaejZHb0QvVEN4anpuK0JqY0dKZTVtTndwbjBNVHRYbDlEdC9BQS83eWN2Z1BnWU9EZzRPRGc2T0xvMHU5bFkzdDkwNE9obXVRTUFWNk94S2NIQjBDZVNIZGZZVkNSdEFPUFg3aVpwVjB6eHQwRks1QW9GZ01PRExEcW9BbnR4Z2RnQXdGdXdnaEI1UEJ1YjFlQlRJVUhMd01yQm1hSjZNWU1ZUDRHRS9lUm5LNlMrWWc0T0RnNE9EZzZQejBNWGU2dVkrQm81T2hqc3J5NTNWMlpYZzRPZ1NLTXkzZ2xVSEIwQis2dmNUclhhcjFkZUc5SjgyWkdYbDVHUmxobk13Nm92a2hMTUFZemtkaE5EbjgyQmVuMDhEanhiQnk4RHVzZm84T1I3UDZXL0F5Y3ZRVG4vQkhCd2NIQndjSEJ5ZGh5NzJ4SlUvSCtMb1pQaENJVitvc3l2QndkRWxVTlRUQmpZcisybmlucW5mVDdRNWJMYk1OdGhTdVhKencrSGNyTHd3UmpPN2gvTnlBV1BoM1BhN1pHYjZNRzltcGdZK3JUdGVCZzZmTGRNWDl2bE9md05PWGdiM01YQndjSEJ3Y0hCMGFRUTd1d0tuRm1wblY0RGp2eDJCU0NRUTZleEtjSEIwQ1pUMmNvRGRCaTZBWHFuZk5yQTc3ZmFzTnFUL0dESWN6c3NMNXhia1lUU3JNSzhnREJqTEM3ZmZKU3NyZ0htenNuUUk2SVY0R1RnRDlxeEFYdUFIOExDZnZBejk5QmZNd2NIQndjSEJ3ZEY1eU9uc0NweGE4T2RESEoyTVlQZnV3ZTZkWFFrT2ppNkI4aElESEhiMjA4UWw3S2NiQVJ3dWh5T25EZWsvaHNqTEt5aklDeGNXWURTbmQwRmhIbUNzSUsvOUxqazVRY3liazJPRG9LMDNYZ2F1b0NNbldCRDhBVHpzSnkvRGR2b0w1dURnNE9EZzRPRG9QSVE2dXdLbkZ2ejVFRWNuSTd0bnoreWVuVjBKRG80dWdZRjluV0E0d0FQUU4vWDdpVWFHWVlUYWtQNWp5SUtDd3NLQ1NPOUNqSVpLQ25zWEFNWUtDOXJ2RWdwbFk5NVF5QWJadGhLOERES3lqVkIyWVhiMjZXL0F5Y3ZnUGdZT0RnNE9EZzZPTG8xdW5WMkJVd3RyWjFlQTQ3OGR1YjE2NWZicTdFcHdjSFFKREJua2hnd1grQUVHc2Irb0JNandabVRrdHlIOXB3MjllNWVVOU83WnR3U2orUU5LK3ZZR2pKWDBicjlMZm40M3pKdWZiNGR1OWdGNEdYaTdaZVIzSytuMkE4eCtKeS9EZnZvTDV1RGc0T0RnNE9Eb1BQVG83QXFjV3ZEblF4eWRqTHl5c3J5eXpxNEVCMGVYd0lnaFh2QzQyYzhHRFVuOXRvRW40UEVVdGlIOXB3MmxwZVhscFVVRHl6RmFlRmI1d0ZMQVdIbHArMTBLQzd0ajNzSkNKM1Izbm9XWFFhQzdwN0I3ZWZjZjREdE5KeS9EZWZvTDV1RGc0T0RnNE9Eb1BQVCsxMW4raytEbzdBcHcvTGVqUjBWRno0ck9yZ1FIUjVmQVJjUDk0UE5DTnNCdzl0T05BTDRzbjYrb0Rlay9iZWpmZjlDZy9tVm5EOEpvVWRXZ3Mvc0R4Z2IxYjc5TFVWRWg1aTBxY2tPaHV3b3ZnNnhDWDFIaG9NTEMwOStBazVmaFB2MEZjM0J3Y0hCd2NIQjBIdnAwZGdWT0xmanpJWTVPUnUvS3l0NlZuVjBKRG80dWdZbWpnNURwaHpEQWFQWVhsUUNadVptWlpXM0lUT1U2ODh6Qmc4OGNVRDBZbzJYbkQ2NCtFekEyK016MnU1U1ZGV0hlc2pJM0ZMblB4OHNndHlpenJHaHdVZEhwYjhESnkrQStCZzRPRGc0T0RvNHVqZjcvT3N0L0VseWRYUUdPLzNiMEdUcTBkR2huVjRLRG8wdGc2dmhzeUFwQ0hzQjQ5aGVWQUZuaHJLd0JiY2hLNVJveXBMcDZ5SmtYVkdOMHdFWFZGd3dCakZVUGFiL0xnQUdsbUhmQUFCK1UraTdDeXlCY21qV2d0THEwOU9TRm5rcWN2QXpmNlMrWWc0T0RnNE9EZzZQemNFWm5WK0RVZ2o4ZjR1aGtsSjkzWHZsNW5WMEpEbzZ1QWdJQzd1ejNmRVhZaE1jOENHRklSTm9OOHFFbkRJUnpZUlNNaGN1Z0FSYkJldmdONlJOUzgxODhKaWVUQU9sY1BhQVhuQTNud1dpWUFwZkQzQTY1SUpsTWZuVFM3VkxjN3Y5ODJVZmZtSFg0VnhBQmJHNTRBbmJiUERhdnpXZnpBOFRPSGpQNi9QUE9yVDZqWWtELzhuNTl5MHI3bEJRWDllNFZMZXpabzZCN2ZsNmtXemlVbTVPZEZjd00rSDFlanp2RDVUUWNkcHRWMTFURklrdWlRQW4wSW5IL2tKcXFtZkhBa0xyNDBNZzVFU01VSDNyQjRmT0w0K0FLaGlQT3N2RzlVMW5pVWpRT0dTUGk3bEUxbXlFMllIeGNqcDV3L29LNGtHOThHY2JMemcrR3F1SmlQbjRpdzZkTWpmY1lYUk9PR0s4RzI4NlB4MHZpbVVOcXd1RmduT2JqNTF3OGhaL2hVMEpUNDhZb1RBOEhVeW5ueG1GVURkdTNKVDhjZ0luR2dQRDRZQnhHMThSek1Mb3RlUmpqNDhlZnBJYmJBWks3VDZqakJXU0ZzWGxvWU1nNWNYQnZocUVmeHNIRE1oMGVBSEVZRk84UnhXb1lHTUpiK2VOUUhDZnVMK01rSTA0ODUyT0ZUN2cvdStxREFkOXRmZFhVbVpHcXFaZGhMMDZ0YSsvSHc2bGVESWRXaEZhTXJuR1dZZENzN1daZEd4SVpNazNyM1FzMmF6b0dkUXpoVlEyYnlkQ3ppQm1nUTZzR2JxYWcyTEN2WEt4MlZXeWZHWSt0ck1OQTVCenNKRHlUMFg1bVczTDNqUjFQQVY3V0dzcEloVWhjSGhLM21PV0dMb3ZIcHNSaFpXaHpyOTByYnR4bXdDVjFVZXZVeU5RcEUydml3aFNzNDJZUThxdnF4OFN6Um95YWdFbFlDTzUxOVNFMnF1ZVloSTFScUtvK3RBTGpMRzhkMHNnNWJHeFBTSjlhUDYyT2NRT3BpNXlENTlRaE5jM2gzY0c0QzQ5VmNXYzBQZ3l6RGJ2bTQ2Q3dvc3AvV1loRlY2eG9Ec1hYWDFqVDhXeVlVUnhxUDFaOVJWVUVTOE9iVmMwY3pNYXJ1SFY4VEo0N2R5b2JpQ21oK1BXWHpFeXgxNVFiVzVrN3ZNS0lELzBtak1PQUE5RjZWYm9EcDliTlpOV2RPWVUxc1dwbWFNWEthV1l6YnpTYmhTd1pxcHA1RHR2WmhjamdjREZlUGFHbXFqNVNoWDI1TWxVZ05ob0RRdjUzcncySDQ0RW91M0RGaWlwV3Z5bFRzZWFwK3VLSjlzb3p0ZzlHQ2RablNEdzJ4anpBR0xQL3NjVFlsSFBHcDVQU0dTYXd5OWladW5QR2p3K254bmpFNkpvaHJEMlJLZWNFVTYxc1M2bExwMkJDVmV0SlZ0dkl1WGlIZU9qU0VCT3RDR1lkd01pMEFiRGkwZ0ZtWDRYSEU3eHFWUHRWY1NuZmlJUldmQTFzV0E5K2NXTEtsSFNLbkc5OERTdzROREswYnNXS29aSFEwQlYxSzZac1MxNS9TU1JrUkZac0hqRmlSVU5WWGNnVWNvTHBPMVlHNDBOdkhCODM2dXJKUUJ4b3huTkRSN01SR2hxcW41SlNDWldSTU5iSk9iNzE5S2gvZEJxUTA1SGZVYkpXR0ZpSHVCVVZUakEwbERXUktRNm1USmdzWXVrWDF5RC9YMnJ5cWtsUUxpN0N1d2FaaEFqajg2c3V1eWpkY09UQ05MTXd0WFpoT2hWdkVnNHoyVm01TFFhWFlDUisvWVUxcVhnSUxnbHVnVmh4Rk1ldGpwM1ozWHJHY3pFN2MzM3JtYmJMNnlJNGhpTXUrbWU4M0pHUFZ6Z2pybEJGc1ZtRmNGb2xES2tSZ25SOEtrU0RBZ3RwVVZSSGcrSytLSVpwUG1zK2Fyd1ZPRjR2UitKR05DNE5xZGtkSERRK1pEaFJYYkdSdmlneTRzSUpOUU5hQnh0VjQ4dVI1d2hUaU9BMjRtUlFuSGhaT3FDQ05MVzA0QnVBSjlzdURGV3RhR1cxT0IweXBxYmovVnBsNzhReVJveHBEWmtYeEt1anJmbFM4WFBOZUlwMUZ3ZXZZZnFKd3VETkViTHN3czB4c3V5aUNUWGIyVDgrTFJ0VHM0VVNPcVJ1OFBqTmVYaXVabnNJSjBremxiYWxzbGlJeFdBRUU0MHRWREZQQmJmSEFLNDN6NHBtZ2htL2RCc0JNMDFwVFNOdzZUYWFTalBNTkRZQjRmUzhlVXhzRytuM2NGYTNpdUt6cmFRZlZPSStFdmViY2I4UGR3bGlwT2pock55S2tyTmRwQWZlSm9iMGV0eFg0YjRlOXpqdUVod2kzYzF6K1E4SGN5dGlaMnNrRDZQRlJFSTZrb2ptS1NIMmdHcXJLSjVXUEwxNFJuRjk4V1hGTTR2bkYxOVZmRzN4ZGNXdkZMOXFEUjB2T1I0Ny92Sng4VzlmQmhxL0pEZC8rZENYSDN3cHZQS3ExNWQxN1hYZTRMWFhCVXF1aTEwMzZycTY2eHF1azY1ZWdNbFhOaUM1WWphU3kyZDVnNDdMR3krL2VkWjlzeDZhSlYwK3EzRnU1dnlyM0o2c0dUT1IvSHJtOXBtZnpmeS9tZUwweXpEMjlHVmtXcjA3NkppV080MCtWUDlFL2FGcHlXbml0UHFtT1ptQmVkNXJoZ1RDaTNBdlBuc1lHWXgxSGd5TnVBc3dpcHhodG1jZ3RtWWd6TWE5RWZjbmNKY3cxQmZQTlpJeTdKWXk3Sll5ekQrYmxHSktLZlppS2NZYVNOaThPb3k5RzhZN2hHRXk3aUoyWHc1Mlh3N3N4bDJBRU9rTkpialg0ZDZBKy9XNHI4SmR4bm80SHRGeks5VGlzM09KSGErMTQ4alk0U0hjbjhCZHdseXAwTzl4ZngvM1EyWnFDT2xzM09PNHY0ejdCOFMrUlhyRmNYWUV3NVVkcmhEQmtiNHJ5NzMrTy9leW1IbEg0dDZZTHBQZFBZbjNrdTlyTk8vMVVPcmVMQTN2bFp1KyswTW4xSVdWd000VXArOXpNKzY3MjNOc1VhNjg3K3hndXRSRGJmZHlwR1BVREJXbjd6enlPOWRhQmpic1NrY3BkcFg5NFdoWnhXVHpiZzNwa3U3cjBCNjVyUzdzWHRlblczdklQTU11Vm9NVkRZK1RjaHl2RUZFZXRqa3JVRHpvRnQxZHNUMjVtMWdlRGpJNThSTXIxc0tLeFJVakpWaUdibzZ2QlZNdFdEY0w5cmNGNjg5aWpQTWhObFUzS21JSjNWbnh3VGNFUCs2djhyNmk4Nzhpc2ZmcjNxZWh0MHJlaXIwbFRIL3k2aWZwbmI4bG9TMGxXMkpiaExwNFE1eXV1eFdpZDkwQzBUdFhRL1EyRE4rQysrcGI1ZWl0dHd2Uk81ckU2Tm8xWW5RTmh1KzgvZGUzMDlsbk8wZ2Y3TjArV0o4K0lKQVM0b1ZTYkdrQWp4NDhlcmMwQ2RIdHlROUk4Y1BZbklhemJjUm4xdHFIUGVIRHV2cVFCM3dna2d6aTNsS1l1MzRuY1NQcnVMRTU3cGhYYURoMitCZ3RQamI3V09NeElYWjAxTkc2bzRlUGltaTd4WkpIblo2S1VWODBmRUZORXZ1Q1BQRVgwdkE1S2ZtY05IeEdKbi9XOE5uaHo0VDFHRHJRY0lBZU9rQWFEenh4NE5BQjRmQitncC9pL2Rmdlg3Ly84SDV4MUtlSFA2V2pQcTM3dE9IVDNaK0tvejRoRForUTZ6Lys0T1BESHd1eGQ5ZS9TMHRXalZwRlErdEhycCs4L3I3MUQ2MC90RjcrNEd1Q243ODM1ZVFXZjBoaTc1SDcvdkRRSDU3NGcrQjRMZllhL2VCbDR0amJzSmNXNzYzY08zTHY1TDMzN1gxbzc2Rzl5YjNLbmJ2dWZJTCs4VzB4K2tZVGpiNjRUNDd1dytOeno4clJaL0Y0MDBveGV1UEtRTzdLcGMvbUxsODhOWGRKb3hKZGpIdGpreVg2RUhiMnNpWVNiVzZDNkEwWVhvckg0cGFSTGJReDlyK0hTTy9EWnh3ZWVmaXl3NDJIcFdCL2o3L2M0K25uY2ZYMU9NbzgxbEtQMnNjamwzaUVZZzhVZWJvWE9Ib1VPTHBEWWE2anNMaXdzbEFvem5zaWp4WkdIYjJpam00UmUxN0VrWk5yRCtVNlFoSnhHRTZyMVdhM3FwcHVsUzJLVlJBbFpEVnFCY0dmTzhyUjRLQ05qdXNkVHpnRWg1QXJGQXNqaFViaENlR1FZQkZKcjl3Z3liYjVMWmsyaitHenVVUzNyU0ZJUmdVYmdvZURBaHN3UFpqaHIyZ0lYaCtrbzhwSTNEVUNSb3daSE04Z2VMeG9jTHdzT21LYkVCb2RMNDJPaUt1amZsU3ptWkNmanNmVU9GMkdNOHFZdUxnTUo1RXhhQVZQK0ZITk5oSmdwNXVDMjVGcElENmlydW1tOGRIcytGUm1CbHlmUFQ1ZXlnS3Jzc2ZEdk9qOCtWR0dlZk5TUnd5bEQvT2ltM3QwcjRvWFZrMko5NnFxT3lmYUFmUGloNnJpaDZ1bTFDT3BpeCtLbkROdkhvbCtEM2pMZVF6UithblFmTGFaNGZrc2lEVEtndEZVeWZOZ1hzZExUY3hucDFMM2lFYk5qRmRObWpmL3hEMXEzdGNFMWlIdWovZkJ6b3F5dlBQTXBzeHJiUk5MbWNmdVpyWVZXNmV5bmh3MWV2Q0krS0RSSStLT1VUK0taMFl3OGl4R3lqRmlqUXlPQWtnN0lOQktUN0tBemsrbEovZTNVNFpFZmZMekUzUFNyNU4vbGZiaDhiM2tYK25oZjkrUkFLQ2s5MytKVjRtZDlDS3BmNVI0bHFqdzdIZk9MNGRxQ0NZWEpMY2xQNEg3WVRKb3lZbkpueVcvU1ovVjJrSU00NU1iNERrOFBvWDdIbGhxSG5lWit5SU1YNEhIMWZDUTJhN1pzQWwrQlhkaGNCM2NCaXZoUlROK20zbVhKQUQ1NkovV2VSOXU5ZVN2VUFjM2Z1L2NSblBiamprMndtZ3lFODZGeGJndGhSVjRiZzZXdGhvVzR2MlB3NXpremJRUXJzUXkxOU83QkEyMllRMVdrcFZrTlhsRldJMzNuVWZyNldJME5kK2pXVUlaL1FXOW5NNGpvK2w1RUlienBQM2lsM0JIc2g0ZWhOOUJFMjRUWVF6VzVSR3lJNW1icU1keWxzSk92Tzl0eWFia0poZ05QV1UzM25zb0RFM1VTSFZ3czZXT2ZnbjVjQllNZzFGUUEvTmdJNm5EcTIvL1hocjdlYWRSZUdZSjNBbzdpSko4TGJrcHVWb2VqU2tUVVk5SFNWVGNRYzRpVFpZNjhJSUdJOFRGOHQwV2RxYzZPQTllSU8rS0QwdDc0TWN3SGZkWk9MR1ZZcTkzbHdITkVndEFtVFBzekE4N3c2WGtxOFJDa3BYNFdJYWpjSVhVNDBUdlR4KzhCTVlJVytnUzVHUUpkT2diQzJ0S0RBMWJVWkFlMmkyU1lwR0kra081V3JGR3RjTTJrbXNydHRIYTJ1TGFnNi9YMWg2RXluMjFGUlY5U29nUUVmcVZTU2FsUzNyUDdyTXZzWjVSOFlYRWZoSTRkTWlrS0N5d0pMbGZ2bHQ2RGN2SkFCOUVJQXE3WWs2ZngrMTV4T3R6ZTcyK0hLK3FsL3UzSlQrUHFSaVFXUXd3OWpBZWZVd1BSblY3dFRlR3hQcU0vSmJ4RElnK29jY3ovcmZ5bnNuSjhQbzhYdDJOOHg2ZWRZdGU0bVg1ZTdMOFhuZFFMWHdqL0diM042SkJFdXh0ZjBONDAvV0dHdXE5dmpmOXFqYzUxSnZRWkc5U083bDJUbTN4d2E4T0dtL1VJblc2S2lxS283WDR3UUFVVjJKU0pTTXBMZFNucEZrcWlqWXYza3RLdlI2M0hPbld2Vi9mOG94U3B4SHA1alFJaVpDTWs2WHZ1L1h4eDIrOWRmdjJXemR0ZWxDc092N0JMVUo0VVljazZiV1hIMzMwWmJhM3pDRWEwUkxmSkw2aFZ4OGRLdTFvR2ZES0k0Kys4dkpqZUthQjZPYVpyNWtYNzlyRWFGcUh2YW5DV2JIdXNnaFprdUpSOGhWQmtDUElYNVNDMGlURTJGeERWVUVUcHRHUVRtcWpaUEtrMmt5L2NmN0J2Wk5yU3lmWFFtVWxqbDhFc0g1bFNHamRrc1RkWk9xU3hCOFNvOGxMNUV2eWQvSlNJcHpJU2VSaWVjT3h2T0owZWZtcUtHVnBsa3hMb1VWUUJUVkx1a0tpMUNFUlRaSXNUVFNtbzJpbGlqUExlaDBMblZ5N0c2bFpYZ1lyeml6ekJUSTFjZmNTRWszOFFYb3RVWnF3SmV5SlV2SSsrVFA1a0x5UEpUNldlSjhzUlRsWFlWVE1Ua3RVVzduNHNMQUZsTGpGbkJielZLTmMzaXlvRHlreGgxS3BqRlFtSzZJdWFMcnlVRWxKVEw5ZWordUhkYkc5eVMxbEI2TlEzRkwyemNFK0pkRXdqaysvMG42UmZtVmthZjIwYWRQMkxiMjM3c2w5V09aZ3NnMHJmeVZLVVo5WTZHWkNTREVkU1NkVGdUSkJwUTBZSndRazBpQVJuUEZyNXhRYlQ5Zlcxa0p4N2I1YTdNaHd2ekN0Yi9rajdVNjJQY3JxajhQRTZpOUFmc3hMNHdRdDdKZ29FVlk5NlhvcExoMld4Tll1Z21Lc1ZkaXN6cjU5KzFKU1NpdFFLZ1VZSGVzckVDQ1BVTUZOcVpBUFJBQ0JpU2dkamlvUE5SeFdaem9sVmJTSjBpSktCUG9YaVJSTGhFNUdPY1c5MXRqTjZqZTV0bkp5YlR2aklwUFNpa1ROYXJKUjJzRjRqT21CaWNuOW9nL0gxNExTT1NubXNxOWo2eWREZDFTRHFLenJpNG9BVi9Nb1VvNXFNVU5mVHZNb3NkRnNTcDNMNVZoVUpsUjJ5ZFF1ZXVoMTFDMWZTOWQ3Y1BETm5rOXhHMVlEMVVXMDlpRGJzYU5DVGlPTU95bDFJZE5GdWxHbjRhSVY1RStKYm9rSWVXL2xxbFVyVjZ4YUpiM1dvclJZNlZmMHlOR054RXJHa0l1SkkvRzN4UDhtSGt4OHhmai9JNmJxc0w0S25CT0xVb3U0VG9wWmpYSUo3YWtic0xJeHUxRXVXc2pLdm5BT3pNZU1vS2tOR3FIck5aVDFPU2pmcU1OSzkwYXhaeXJmaUI1MFZyRE9keUpMaERMS0JOZzU5eEFaWDdaYVhITGViVVREa2lweFJ0ZXdKRC9NaXhVN3ZNVGh5ZlZVZWtaNlJGMFA2bEZkc0drVzRyQ3A2MlNER0lib3U1T3M4aEdITDlkSFhRTHFyV2RqQWQwbzl4Ry92RHlEV0pmYllwa1oxOUdBRFRzcDAreWtsRGdhQjU5MlZVUlpoeUVyVkU2cVBiaXZUOG1rV296V2hzTjl5Nkc4WDkvdWtXNnlKVkplWG1acUY3Q0VSZTE0djErUngrKy9zWEhXM2RwVFJzdEw3L3cxM3ZLMVJQZis1Q3N5N1EvTmkxYmV1T3pKL1gvWnZQN3J4SG5NbVRBQnh6ZUlyZWdPdjR6TkRPVVNXMVoyRm5YNWlNMlo3YVIyaDRJOFJnd1IzT3M4c2JEc1dlY3ZpZVdRbk9DNnNEaFNKYUFTbXlyWlBEWnF0NjJUTXlEUDQxOWVuRWRzZWRsNVorWUpocENYdlR6SGs1TW5xTVp5UVZ1dXhub0kxOUVDRlp2WW83Mkp4a0dYcjZMNFlERnI0OEZpVndWVUhweFV1dzhqbFFmMzFrYkJ6SVBqd0U2elp0Y1NMN1pUakhUTEt5aHplOHRLelI1QUFRbVpQZEhlRVlMNGs5V0p6MS82ZmVLNDl0UXR5MjY0NXhkM1YwZUphK0dWSDJUdThYeTVlZStCYVVKKzVQbGxMeVErM0hIRjNRODByN2o5MXVPenIvNXN4MU4vMkRocEErUDZYQnhiTjFwZ0d0aGdabXl3MVdhN1ViYTRaZGxpdFJCWkZXeDNqWlFtUzFTUzBFNFhiQ21yZm1VRFhBOTBKR0VyTVlJS256aUtaU0xIYkVhMXZONUIyS3lCc3dncWhOcUR2Z29ubXo1TWJtUGhsQUNLaTQyOUpPS01PTVA5U0ptekxPd2tvdnZwWFMwL3BldHVlenF4T0hFV21aVDRPWm4wSytHNTQvM3ArcFk2eHV0amNlekNLS1paY0h0TTdlMGoyUm05TTZoelcvTGwyQ2dVU0pldG00MmVxWkVzZ0p2OEFiY2ZpRC9nQTcvbkxtQnFRc202TXlDTTFBbm94Q2Jvam5WS1JtWUFmSUVzMFovcDExM0xKZXR5UFpZalhVZXpkUnl2bkJQR0MyZEJYMWx4TVk3VXZzbm1RSmt0MmNjbS9XYWxLQ3BoUTZDMk5vcGpoWVBCZm12Y0hDMXY2MmpoS0dXRVBXRXkvTXBmYkNWRzR0QkhPeEpIUEU4WmQxNis3TmNQTHIvbnl0dk9FbHd0Tnd0WDFTUmEzdm93OGVaTEx6WXRlZW1PdTdZc0V1Uk5yZm9vRy9uVkF5Rll1aDE4eVFkall6U2ozTE1ReVFUWFRCZWQ3eUNUcmJPdGRMUjJpZlpqVGVoSHFnak5YWWVYaGloT2VkaHdJMk9kVFF4Z2c1M0xEVWRXYmhhMVMxbkxKZkN1MUdQZHNNRmgxdUJ1N1EwdU5RNWlLMTlIUlhVUVdSS2JpckVLMUZhTUdWa21iS1BMNDBaMWhWTlh1TlRyaTJBTHFlQjF0YmFXQkZmdjNOWnk3T1cvSm81UStaY2ZCL1lFWG1uZTRCUi90ZkthVzI1ZnZFN3czWmY0K3FWWEV1K1EyYVJHeU4vMjZOdUpqeEtYSGs5OHVmZVcyMzdMeHZnUzVFUWZqckdNV3FZSDAvZzNwVFIrTnhpTU5xYUFXdi9PbUN6WWFRNnErVWwwRnBXb1FDemJraC9Id3Jxam5GQW5EZE1wVk5SRm1tZWNpN08vcE1CMTFDSmhFeFd6aWFqei9NVk13VVNaU1ZOYm1ZblM5cDBwQWFjdjBkZnlsOWRvcE1VUUhwWDZIWDFCc201QzNUazJQUklaa0EwOVlYdk1jS0RZVU5BTWpZYjlPQnB1TmpQTVFDVVhqQkJiaEFSUnQrUVNJNXVJMmNUd0VORkQ1QUp2QWJWM0R4QTFRQnhlQjVFY3hFQ0xQSHlYTytad2s0RHNrTngzK1VzQzZ4eGl3VG9wdzd2Y2xiWGNDcHJWSlNvNU9OTXNWMUMvWDBjTEZXeEw5UHY2SkRWZVVXaTFiQ29xMGlyRTFDTHB3Y001QjdsVVRDbVVmbjN6bVdsbTZnOHByVms5YnRLM2U0R01SOGE5OUF2U0ovSDEyMjhsdmlaOWp2emxpZDJmSjhZZXVQYktLNjZseW9xMWExYmMrK01mM3lmUW13NXYvK1NUN1lkdnV2bk4rMTU4OGI0M3o2NlBUNXM3ZDFxOFpkL2s1VU9HTEo5ODNVOS95cmg0YkhwV1pWemMvS2pQNU9CdHlXV3hDekZRNVNIOVhGVXUraU1IS2JIR3JDakM1MnRYYWtJbUtUUVpXWEZRb2lNZjI1Q0ZSY2JMR1l4MWtaY2h5MGp6Y3F5Ympud3NuY2pISmhNYkIwdXhYL2FhSW9zSnJqWkdadG5RTnFYOStpTGpNazd1MWgxRkZsazdvenMxK3dIRFFzM3FYVnNaSnhPbDVmL3UvOFMveC85cTg2OWNyWnhNNzE5UDlKZGVJZm1KV3hJYmpyK0RuRXl5eVQwdHhJYWN2SXUxMmJSN2NBM01WaUs5WW40cExxUHhJNG5NL0ZGVVp2NE1VNzlWS1V4dU5YNFlReDVzTllDY3JVYlF2bjEwNVQ2Z3lRUXVIV3BRTHBEaG9DVld0RkhkcHRKeGFPaUFKSXBvZDFnc2hJaFp1R0paSW1odVFkQ0lKWXVBWlltaXVoVkZWZGhpWXI0YUtCZThTTzdRTm1xVVhxTVJvYjgyVEJ1bnpkQkVZdEY4V29FbTBEdlliWVVGS2htb0RsY25xRE5WMGEvMlVKZWhIdEZVb2dueXJURUw5VkdxQTFxM3Vud0d5cVdpQ2pnYkxLQzZjalh0YjUxaC9kWXExRmdYV3FsaTNXWmxqWnVEUFExK3B2MHJUTGxEZ1VNdU5FM2hXdHhidDJpMHVTaXFwSjgyR0h0UkhQMGRvaGJKR0RUSWdqdkJxd2dSU0VRSUN4RlNKdHlWU0h3alBQYk9BeTEzL1h3ZkxYdUYxdENOTFRVdEc4bHZFNE5OcS9GKzFDWmZZTWlHYThjYzJCTWJNc0JXYmFPS1Rpd0tjVkk5WjdVOUpvbjIxZjRTNzJwSjhLMFdDNEFvbWY1TWFxTzY2R3EwcWxrcWRRaXEzMmFUejFDdHJNV3FpZ2JnMFVkWUFnYU9iMlZwWXVaaVhLQjlaU2F5bGRwakxCSHNhUFFjandWWW9xOVJqSVZnTnMwVkw2Y2JRbVJaNkVDSWRVMGJxMFpMaldqMG9Dc2F4UzVpZllUYzJtb0NIVHpSSktnbGJqSE1GclFvd3hhdmw0UlRTaGRUVElNZ0xINlJPSkQ0dXVVZHFuMU9ySy85OUtiajE1Q2hQN3ZqdHEySkY4a1VNdkZucnllMmtRZGVlbGZhOGV5bTE2Zm5QVW1LWnl5ODRzcGpQeisrZEJGcTNycmtmbWtTeW1nQW5vejF6ZlFYK2dmNkJjbEpOQWZ4S0VRWXBoTGtXdFYyaXl4YWZNMCtaQUZmeGkyUVlURjhCdmFXcG5vWCsxcjd3TWNVWVlCMWdrL3llWHpVNFl1aFZqUVdDMVoyRmhjdGI4VE12aFJpRmdFMUlDWjhHTXZHMVczUU41dG1DbGZRYlVFeUxrZ0tndjJENDRJTGdodUNVcHFOV3RjdzBTaDIyYVJhMW1lbWxrdFB6RWhyVVpNenZxcVZRaWpURUM0Rm5KNjZtMU1Wb0Q3clh5YURvQ1dlUzl4RTVwSCtoOGdvejdQV3QzLzVmdUk0b2U4OStMcjlXVTlpUjREY1NXcHh1ek9SZUczbC9ZbDlPRHQ5bkhoeDQ5MmZzemRQS09NbnFjNmNuUnl3TU9aSHlaRW9VUjJyUWJDc2xoWGRyelBPV1l3dE92NUl1cTJmbXl3aVdCcmxiY2x2ekVRTUhJbGxzVlE1NWhSbVUwTytuSTV6a2cxTzRuZFdPNWM1QmNZYWMxSzh3WnJLMnNsYXliaUJXY08xR1d6UkVBNzNENGZZdWlFY3ZwKzhRdi9TNGtrVTc4R0ZjZVdCL1luZGlhOXh3Unh0Q1c0aVBZbWRXRWlJemF4TUZqN0R1dXR3U1N4WFhTM2o2a2xHenBkV1UwRmJqUUxoVTZnR2lnaXkxa2hhZVJ3RGlaaUwxWlhFYk1qQlZuSTVQV0FqVEdtMTFhL1UyTHUzdFg1cGJrVWRoaXpwU2UvaVo4Y2VGeVBIN3hONkhuOVRXQ3J0MkpTSWJVb1k2Um94bjRzS0kyTk9yQWUxa05VS21wZ2lVTG5Sd29yT1lwV3d4Q0NtZTh0MUxGK3pZUGs2S2RESDZXa0pTbFVEYTRFYW52a284TUFVVEtwb05DN0ZKY2Mvb1p0YlJ1NFIzcE9zaVlHYld1clpPaS9GN1k4aHQyZkRwN0hSV1FaclltSDJ3T3hyc2dWaGhwdlFmQ2NwZEJCaG1VSm9QK1QrT3dpaHZ0VitQL1JJeXdEai9VeHRzV3F5dEdwZXJpcithajlWd1ovbGJjeGtUQjVrcVpuOU1sSFJacUl5Tm5DcGVJSVFPRkpDVUNBUVNTRDJsQno0VVE1eU0yZlRISlNEaGJta0lIZEQ3dGJjYjNQRjFzYW0xNUtzMzAwZE9obkZBSmR3YkxKRE5tRWR3TVFnMVFtdHVqV2xZTk1pRVJJN2lFU29meiswZHB5UkFsbklUK3hOTENBM2tET0lTaVo3bnJNZStPMUhpYjhRLzRma3pMc1NpMm5sOHJMYkErUmVVa1BHazN1U2IvejBaNG5uRTU4bTlpZWVlK1g5aDFyY2R6MmM1aThwWXZMWDdGaEFXSzNFWkVsQi90SmtiSjlLR3NHZTFvOUhZNnFwSUJXeFVVSlJNUG1NQldJK2xpd2huODJpVmdsbHdrYXFiY3RzNWlUU2tkdXduYVZRWEZaWjFzNXNPTTQ0MXN6YlZ5WkZubXFSOSt5aFI1K2lXMW91UURINEZaM0FhcmNUU2FNNUoxeUtOb2JBbm51S2FRNC9Ick9sT0Z5VVNHTzRSR0plbGNKSWozS0w1SlA2U3pPa0JWS3pKQStUeG1Hd1dWb3JiWkMyU3M5STMwcnFIUkpaS0JGVE9YV29JSTZCV2FNeTB2alVVeWxlWTN4ZWJQb1d6NGc1cUNDdUpoQnorTXZCSWphYXhUdFR4Y3NvWEJzc1pKbUZtS09kWm16ajZTZ1RMVk9rc0lWaThmR3I5dERucEIxSHYwcmRXWmJ4emxhU3Z4MkU1RmN4amJWSnIxYU5jblZiY2x0c0RRWnUxTy9XNlZMMVZwWFNlcEdRYXJGR1hDZ0tkSVpBeURCaG5MQkFFS2hmSTBUU1BGbyttZ0RMTkdZZzRQSmZlMWVqd3JONEprY3FRaXQ3UWJyaGIwb1NhWkp1bHlnd0V4elQ2UWE2bFQ1RDM2U1lUbStuYUpGcmdyaElKSXJvRjN1SUEwUlJCVjBSaUdqUmFTTm9hU2I0SnMwRXFzUUUvWGdzeEdLV21CM0gzb1l5dnNCT3h0blgycWxpOTlzSDJBL1l4WTQ2c1FNVElCY3dpVUFUR08wNlpQTTVrOXVwZVNUdEpnYVRIeHdYdFBDWlhpQWtMTXZiRXBNMkpTWnR3NlNieU0wa0lyNS9MTXgyYWNleGdlTFRIWGxhaFRreHZ3WFhrVXRTeTJKSlFKdnAreXd0MDBheGxhWEZOalV2eG5Sc2xvYVQvd0tkTE5SSnRYNUFQNklMNlZudHU0eU5JOTFzcmtYQ1prWExDT1BwWjFwZzI5TUNiQmViamwyTHRidFdiR0t6RWROaDc1aWVaQi9zMml5ek56ZGltdXNXRUsyM3lCa08xQ2QvYloyRlBvaVpLa29RQW41UFdtZWhCdHFhc21nQ2Z1WUppa2IzcFEvbVNxSlBTVEEyM0hXTEJwbFFpRUtEdDVSa2o1d3ZDeXJlZXJIZ1dhekc2Z1UwQ1RPRmdjSndRWnlob3BCNzFINXFsU3BxUWdDbk5iOTZCVDBRSU9NQ3BDQkFXdHRxMmpDMTZZVUxNQWRQSmZPRWpTZHA1Y1FvWWZZNHBEU1VrRXY2a21XSmhZa1hFeThrcmlZclNObTdKSkE0OFBaN2lVOUlwdlJhb2k3eEFHNTE1R2ZrWWpLV3JEKzZnd3dnZnR3R0pKNUZRK2l6eERPcE9WczhidW9sRHl5TzJheXJWVlgzNEl5dEc0dWwxaTdDd0I5VEpndEtQS0dTNUpHb1RaQmlLRDVXclZGdkhWT2RzYXFwcHZTWVQ1cE52VHBPUno2eXdMZkIxOEdnTTBjemFxcG5JNjJVVXdvNUE5Zkx6SnVEa2h6SlNKbHVhTFBkVHlPUC9QMm5xRTYvVHR5OFp3K1o5L2g5TmMyTmlkWFNqaUh2ci9qVHB5MlAwU00zM2xDekxDOXRmY3pFbHJnaEMvNFc4dzJ6amtPRFc2RG5DUk1GS2xDU1JaYUEydzJNNzBwTmRnVDNDamZwNVI3a3BvcmI3NllxbGV3ZWU3NjluMTBVQW9zdGRwKzl3TjdmTHRwTlBXaEg2eTJXeVM2ekUycDN1dHd5S09DSGhTRFl3R05wVkZxN2dBVml4U3lmRXN2QkdUbGJ1WncyT3dsMU9WWFA2clV5a1dVbDZ4WlZBS1U2aHl6SUlSdHl0dWFrbGdGTVphYzhKN2dVbUZ4YjBxR3ZzS3VjdmpKa3ZkcURLS2lNUlZBQ292WTI4NzhQTVBrTlJ3VFdYVXg0elc2VUxSNnZMMlVCaDhQU3pGZFg1RC9Za0xoekQxMyt3RnZMNG5mZU9lcjR6V1R6bzc5SVBKM29RNXJyYjJpNVNkb3grUFdtTzE3TUZmdThSVzZaZStOUkp0L011L0lGU2xDRXhMWkROdHF2ckdGWnJDdXVacUVKM1loUW4wdm91RnljdjNNSjZaZFRsVU9GaGRtRVptUkhzaTlDVzJGQVpuVW1wVDE4QTN6VlBnRVdvdVZ3c1p0Y2JPQmw5b1YydXRCR2lHSWoyZ1FycWRIUnFFRDVvSUpQS2tBbUUyQUdxcFBodUlMVEhNR3dDUFVlNHZHdmRqRUc4N0IrZG9rV2dhbm5HVUt6SU9sb1h6S2pPbVNhUTZzaHc5dm9NVTFvVDdEUllRWWNIb2VnTllaUjBzMG1oTTNSWkxuRFlxTVF5dy9QcG5uTXNzNC9rRTgzNUpPT2l3OXo2Y0VXWndmeGc2SWZaY1pFWmZUZzNwUlc3YUEvSjZWc2lRNnJ0bzdyTjdRdjJwMWVlZDM3OWMwckswVmJnNGJOMWJSb01qN2RoM2JEUHVWeHg5OGYvTVV6THlYVWQwajJGMGRJaWJvck83SDU1MXR1SnMyZjNwOTRMVUM4Zjd6L25wL01XelRyOHQvZXUrWGpUMThsMmpYVEprNGNPMmJ6N2J1TzRwajFSbmwrREtYQUF1ZkcraEJwdFN3SXNKNUs2Mm1qWUhLeWdNdHJvYkdrNURPVlZLdHNRWHRFRlMycVQxMmd2cW1hODBqYjFQcXA4U2tUemxMVFhtU095TEQ0V0NMNFZDSlhYQzVaajM3RjNENXNEa0F0eSthQURCZ2ZDeTF3RWNHaUVWMEJZcVYyQ1MxbnlMQTNPc3lKd0NFemcrYWIxUGhKTVk5akZuV2pIYlBCUTZvOUhicmNOT2xOZHcyYnV5YVpTeGFwVzNmYUQ2ZDNnL1dma3dWa2tYNlViQm15WjgvamorOTVxakVKZ2FlSmRiTXc2dmpEaWZjZmU0eUVoZk9QeHhQZkhGK005Yk9pVnFnMjF5UzdtUTN3ZWF3V0YvbkFWdm9MeVIza1dTSlE1aE84bUV3am9tQWhQbEpBWmhCeEFWMkxjN1pBQnlJTFRxQXpxU2dvMUU5NzBIb3E0cXd2VUFVYXFFVzRrdlpYWmlqZktrS05zbENoaXJKTjZiaWtiMTNIdDFxWTBkUVVGSXhsU25LV0pNcExnTGl4QXlVeFM1TEZKUUoxNDMyYmk4Ny94OHY4OGN6OVZvYW1TSFhMMDgrMlBQMTdnbHZxeWN3eG4vZ1ptL0V1U080WDlvdG40bndjSXQxaXBibUZObWU1SmR1WFhaRGRQMXVrYXpNM1pHN05mQ2J6elV5SlhPTW13bGI3TS9ZMzdmdnQzOW9seGVhM1ViVGQyVlNvNDBWQ2ljMG9KMnRkek5hTG1mSVdjMW5kL25MRjVYZFJHd1N0cnJYK0VpWGdEL1FJMUFjV0JwNE55QUh2bXFCaFdXUDFoa0podklHL0tYVlcwQ0RBaE0zMEVRUk1XUXdFSEM0U2FzbzE1OW5jYmNrRGo3TFVYTk1nc0ptbXdWS0gyMlFZNXJmMG0rSWI2NVpiVDhPTzZYUmNON0toRzZudVJyNnpDb3lhNWtHcHE5VkZFRTNaK3V5WkFmTm1wdmlxVDRsNU1pMlRKRXI2UlVJcFY1N1BmQkJyaE12WWxOUE5FbkdoRHZVNEkwSjBTV0w2d3VtMW0wcFhmWFR2aTNUSlJQK3NoY2VWblI3eTZJc2Y3eVMrdjd4LzRiZ3hsL3prZjV2Si9Ma3p6bm1FRFB2NXdaYlJiQnhXb3Q2TUlzL1pJUUM3WXNNMkJyWUZLSzNHZVg2RFo2dUgwdndNSXRRNGlLWmxhb1hhUUcyQ05sTzdSclBRQlhLenZCYVhBeHZFclNMZFNMYmhtbW9OTld6Z1hLTjRyZTZsVXFzREFRT3Z4anptYkt4SWZxa0hzcmRvb3c3UW02eXRXVER3Zk16THNsaGpRZWt5bW1tZFJxdURCNEpIZ3NLSmkxTTJ1YlRPd3BXVnB2dHZja2NsbHZKbnM4ZHZCUjYyaEdqMzJwUHEvOW44OHNmSlBROWV2V3ZYb251dVdiWHNtbnVXQ0w5YW0zajdXT0pZNHBYTFJ5TlhEbDd5eXUvM3ZzQWNmVkNOblBrSmNtWUExc2JDUGZ3RC9MUkE2YTlRcXRyV0RNZFowZkJscktsaUR5MjltdXBkNm1ONk91MHFlVDIxVHZRTjg4MUFJMEl5c0M0MndWZ3F1TkttMjd1eDdGWm5TWDl6UmhDZE5PaWJTVE9GNmZSSUVObGt6Z21Pa1Rhem82SUNLaWZYSHR4WGFUNUV3eFpMYVRlSU43VUFUUHQ0KzVmSk1xMzRNUEUzNHZodzAyZWVQV0x6NU9hTkc1R0llenlmQlZBZUZWd1Fkb3YvYXZMVWZTODh2Mi9xcEYvRjJmaXoxdTdIOFVmbWh3ZTNneHVsNmd3VXFJMk9iUTZxV1AxV3VrSGJxdEdObG0wV25Cd2xRc2JoK25rWUVDS3N5VEI4b0s2eEJXeGVEd1NhL0dZci9TZ2pNVHRycFY5ZWFoZ3N5V0NDV3NDU2pCanpNUlVZdzR3RlJyT3gxckRZYU5CZlR6T042U2NPZUhzWHBDUUZLb3VOMUlpM1RXQk04enZibXQ3ZjlQOGFyckpTSDQ0N2lzSTE5eXhhdlh6UnZVdk1ZWC95d1FVN2Q1SSs1SWc1eE9JZHBNY3hJcExpbVdULzBhSHBIaENqT043c24yWGZpcW1aVHFLRU1uemxWbGJ2S3QxZXJtUVFZd1paUUtpK0poalRnc1JKWlFpdThaY005MC93VS8rYUZUS1pKaE5CTml3dW40dXE0TEt2eVFmMm1OV0JMT0pjNnZJc1ZWdHRVd3o4S2VVclVJUDZVc0ZJODhXZll0Mi94eGZaNm1VMEMvbGlYUGFDYkZxZGZTRDdTTGFRWGo2M2Q0KzUwR0RQZDh4SGtLYm5EUHZtWUczN3N3TVVra21zUzl0WUJweWVzTGVWV3pKTTdySFFDejVQZkV3eS92UVJjUnovcy9YaHBaZmVKejdsYmFuenJaOC81K2ZlQU1rbk12WlhRZUpQaVc5N2I5c3lyZmIrTGZTV08rOVlleGVURlFNNzhCSzB1dHl3ZWpzb3lUZGlGNnEyOGdJRDdjN2JWZUlDWVkzc29CdmNXOTIwdno1TTM2QnYxZmZyMytxeUxyaGRNalF0RkloRjhBa0Z3bGJoR2VGTlFSWjdDQVEvNHdTeVZ0aUFkbkNyZitXM0tiK1ZzTkJMaG5rM2VMZDZ2L1dhc3o4ek0zSEJ2cSsydHFXaVlwK3hsL2xaSzFGYVRFNlpFMlZycmtpL01sU1ZwVDZQeVN1ZU1nK3AzM24zM2FUbmowb0hES3dhOHB5dyt2aHNZZlZ0azhnbzYvM2ErWk1uM21ieVEySzBPVFA1MFpiTWVTelQxT3E0WERoZ21tUFcxa0NBc2NjWkxMUWhzalZDZStTZ1dLRFczQmphRnFMMFlzODBEeFUyR3RzTXVzRzIxVWJwTUkxQWVsbGVSY2hBRkI4UHJ0b2VSa0VUbWYvSTcvS1daNjF4RzM1SHR6VjJMNjViUUtxMEdhYjYzQjNMMEp6bGtyS0daZ1c4MWlZdzBndlZBeW1kQ2ZKU0tZYTNrWEtYT3MxVHpqWnhjOFlzVHArendEbk11Y0RaN0Z6clJISExoM3FhNTBSeFErdnhTUDczeE8zMWFKdkVIZHlMODA5dFd0R3k0SGVVYlMyd040ZnkyZE9XZm1WdXBtbjd0UXRodnpLaFhUaUYvWW5TWi9jLzlma05xOXFsTVMyZm94T3c2ZFpOcTEvdjF5YVRvMXVzYVRsbDNMVVNRR0ErZndObXhYcmZxdnhDUVJ2Yktjd1JWZ3MvRXlSVklCbW8xQVJOMEc0SE96VWNJTnZsSmtsTVR6dWZwaGJ5RXRpYTdHeUdNWldTUGVhUzZxblRQbzJlNklCZ0s1cEs4NUdTYWNleHFTVGtSUFl4Wnc5ejZWNTlVNXpNMkZVN2M5V3FYYnVFZSs5TExHb1pUamY5ZU80RExZcjVKQWRyU3FwTm41UUZ5clpJZDhoczRNeUZ1Z3pVUWRSNlNZUW1zaTM1c3ZsRWdVeFRqRytpeUxUTWFFVURQZVZsTWwvZXFkNkZFUE9mZTdHMS9VZk05ZTduajZvaGI3QmNZWU43bmp0WVhxQU1Rd05PMTRHdEZnVU5WNHhVSU0yZ281V21LMnFXMnF3SmJrMFRQRHF4NEdyRkloQUhFS3JnQWtVR1NaY3l0STgwcW1uRUtXaFl6NGZ4ZnV6NHFHNlVheHF3Rnp6U2JqMmhxZU5FL216TTNlcld1NHBhcFdtMDJiYkI5T2wxbUtOZHJROCthbDNzUllGS1grcHBCL0tMK2FMQVAzd3FwQmlEbEVIbUE3Um9PRUxNTG5laS9TZ2MrWE5pQTA3YTVNNi9KbWJSNEZXSkNkS080MCtTQnhKWHBYb24zZWM5dGxJMFR1dk5IajdlNnUxdTdXb1J1enJhOG1tN013KzdHSzh5cjVmelVjNno0YmZiSWF2dHRielBZMFVZR0p2MWt5d0tGL3FXK0tndlFId2VRb09TN1hhLzIrazFYRGllVHRJRXF4Uy80amFhbkd5aFp5cDE1eXFsU1JWYlhUS3gvcWFpWjA4SWRjakpWWnRLU3NibUVpVzNPbmRqN2x1NUIzS2xBZVpCbUpIN1RDNHR5QjJYdXpaM0t3WlRqMGptek9rb2wxK2hURHJMaks4T21uNHk5Z0R1WUVWRjZ2a0k2LzF3TzZPMk1hd0hqU0ZmT1dOak9YL1hlZU9YMzdEenZBbkxsKzdhOVpOZmZCYWJlZHN3TXBSdXVxRUJ1VGQ5RVBPYjc5dTllRWhpVWF2VVliOFljTlcvSVhXTzcwaWRvMDNxYU5vWjhZOWs3MVFJbjVqZmNRWm4zck4xTWMyMWh2bTZoaU5qTURYWnkxU1loblVOODNwVnlZSk5rRTBMWC9ZcWdsL29JUWhzUlZtZ0NtN3FXSXFUemVGV1I5dkxxV29MT0g4YjZUSDlJR1hncWJHQWNCbjFxMmkxQlVnMXJpb09CSTRFeEJPZDIrbEhQYlZRYWRyNDZkZkVPdmpETWtyYkh0UjdhY1ZIN0ZXd2oxSzJHelBhY0JmUFpETnU0a2ppdlZiVDdmaForNTUvWVI4ejNwakdTZFNiYldaMis5T3g4d0ttc3ZrWDFydDRvdDFPSmVMQjJWMFFUTnZkWWRydXdkTnR2RmRXZnNlVWF3MUF0SU1CNy94L1pjQW52Tkt1NDIrMlcvREl3WFFMOW8wTmhzZjhiTnFsVmtwdjF3MkxRMWFsSmxsTVA3dDdPYVhRNUpnREZacGRua1lMSEZzZDMxRm9USW1sT0pPY0lGcDBTNDhScTJiczJyWGduaDVGd2lMcjJoYVhtSC9iZ3dvcnZSSXQ2amlXbmtzSVc4Vi9HcnVLbFRJbDlSeVVDaWFGQlpuTVhoZ1htQkZZRUJDRnRoQzArL1hxcmFRWmRYY1BmWUJPWWFHRzZ0dm16eGJCNVZsakdPelIvUXk2Z0RhYjN2cjk5RnUwTzZtMEJyeHNCVTFWbXRIazhyT2xyTW00L2lhYnkwYk5JRVVKTlYzRlZHbktidVgxYkxZeU1WMmgyVUlUallXekw2TWhPcDBXaERlRTJ6c2o3VjJLUmlzcWlnOUdpdyttSHRidVpTYkMzZzdlcFJNOFNiaHNsVUpDbVRmYzVraEN5YzZJcEpsZVpJNC9LaWZPZCsraVJMN3Eyb1dKNWI5NTh4SHlNM1duOXVia3hYVmt5ZVA3QTJUc25pbm5WcDh4YWY0dE4vd204ZWFhNnFxeit0ZGVkOGZxSjdDWEk4a3ZhWUhVRzd6UUdLc1NDbFdqL0FHUkNEMzBoVHJWRFp0bGplWndyNkVMdk1TeHdVdThOczFvV21naEZvdlBVbUFSbEI0V2dwOE5scTJXWnl4dldrU0xhV2hhdGlYM3BBeE55MEkvR2ViZjROL3EvOWJmWm1pMjJwbHYxRDZkZWtDS0pxZnA4SWxLYkVIZXZSK3pOWkZweTNEdGFhNUphTUZaNTg2L0luUHAwcDBQUHRpL3BFOXZhcjNveHcxMHdtMUVTUnk1cmVYdUs4OVFzQlhOcGhja0gzWHQvOFJ5L1RqY2R5c1BLdFF1NUFqL0k5d3JiRUo5YXlWWnBCZlR0OHp5VExrWWdOb2toNkhkVHIwR3F0bFduKzhCYzJDWk10NldmREdsdTZTWXk0NHFWK3BnN3FRZVRWUWVMSzRzYytHb1JWTXFkM0p0dmh3Sk1XK1ZXZlhVSXVxbWVPTE9YUk5uM3J0MDU4N205V1FaZmF4bE5PcGNldVRZTzR6TGd6aExmSUkxbCtIMTlQTUtweVJRMlNFNEtLRVN5SklnWWtVK01Dc2xTWXJGZkNMeDNqNERQL3YyTWFseXN2S0RxRFZNRDFOelJ3OVRjOHJEWkQ1R0hjSmNZRGxJSmxHaTBVdzZuQW9YRXNJMFZ4VVJkQUdMVTJBbVdqZ29Ec3EzaXVubFdxQTBLeHVVL1JpMUtEaEgwN1QvcGQzUlpiNDA5Ry81cjRSUEVyTTNKbWEvU0FJa0lPWWZlMGZNUDc1SE9JdTFYd09RZG1MN3JlU2hWUHNmbzZiTHlNS2VJZW1tYnBRWjFWamNhVTRnY3Z2TEp5S1RUbFBtRkd5RExGa2RxZ09YU3BLdUNNQ1VhMm9hdFFxeUpYVlQ1ajFJdlg0ZzJHMW1WNzRlM1dld25YVW05aVoySjVQQzFxOG5CUjliSUdBdkVvM2RTMFhMVWJVaU1VdDkwQmNzcDFZa3k2eDNXTit5Q3Mwb0FyUkpJNWRxOHpUYVh5TXJWQ0xVcXd0VlNnYW81RWFjKyt2cFFrcGhLVXJYREhHQlNHR1lPRTZrdWpWTDE2enBVVk1zV1lwcWFaWWx0OHpHUFVPTWlJS1ZadEZlVkJEWWpFTVh3aktnZEpsRUJQWThKaDhacFJuN1ZpUHN6VEJCUmE2UjdLaUNiZko4OHpIaEFmc1J1empPdnNDZWZoSnpvb2N5cldacS8rbjRrZG9UNXBmMGUySjRxOG0xYkdnRjlzcFJSZ1orcEoySkp4LzU5Sk5IRXJ0ZmVlclFnNGVmWW9Nc1dJOS9oUVA5cHZtV1EwOGNhenZ5K3BjNDFqcVpsK2IxVERaVW9peXlVU09paGsyd29BbHErbDVibjhaUmFyT2FJN1U3eGZYbXh4eXIxRkFGWTdlK3BhQnRydmlRWVUyZjdVSzA0WjhIOHJ4R2ZpZVMzOGxNbTVGcXZRWlYyaDI2U05rN0tkdDBnUlJJaEQzQlhpQ3RsVVRLSG14dmxRUVZCVWRpU3dHWktLcWlhem91UTFBTWRVRG0waVFaeFU4UlJkV0NwNXZCZ2lObVlkK2dhQlpWTjZiS0RoRnkwZUxWR01GWjhjL01Ea1pPK1hQTXhWSmxUUWJSdFBqRitkVEdsZ3MyWnprN3hoeklRMGRzWkladGdZMFdtRytTb05VYVRiMlpXZUV2TGpiNzIzd0lLdUZRTlMvZTI0eER4QTZHc2x2Wi9YMmFHbUR6aWU4Y2M4akFITDN4dUNCQVlUVEhpd2hmZm80VzBaSFB5YkxFMnM4Lysrenp4RnB5YitJU1drQVM3RTJnaEdocUpseS9NODFra0Y3cDBmSlJSUklFSzFOT0RyamRtbVdYTEduOTlHNWFQN21jSGZUVFhxaHNlYnA5bU01bFNxU0hJdER1MklHU1Yrb3VDVEJNSDZmUDBBVzZsbTZnVkdEVGNRSEZVV0FMKzdRK3N5aHVpMFg1dmo3TFJsVm1ZZnBNY0NqblV0UWpkQ0JsNWduY0hyTm1PY3h2K2VCY2hsck5JVmdFbDJVbWRhSnFtK0ZhNEtJRnJ2NHVGbWgyYlhEdGQzM3JVdElXSjZ1bnZ6Z0s3QTNZWXJNUHl5cE5UY0NXWFA5WVFzem5jNmJobGVybWpOSU1wdkhLaUowWllQMjh6OXc0UHEzNFhrek1IbmpoMHNuRHlub2xzWHRUS3ZEWU8zZjhjbzU5a3gyTmJBT2w0MXJUQitTSExQaGx5ZzgwSyswSDh0N2hnNkFqOC8rTE8wZ1ZGWUhnUjJlcHp3Z0NYdS8xWkRZRllqa0JWRWs1cENCbldNNk1IUFpZVW1wN3k0SzllMWxzem1sejJKdjQzL1VMcFkyNWYrUWJNdC9XeFBYR0NUNGlNcHd0eWIvbktTSzFMeDRkaWx4R1Qyai91bFRyNjlPdDk0SDNWTFc4eVJQTDlHQzdNMGxCNXJETUdlYnprWTd0L3FldC9tZHRQbGw3djlmYTQ3TlQ3NytZYTI3elRkaWNyZFRSdXVidXVOVCt6a3JidEcybXd3VHhSK0lGcUpRY3VFTExoUUlvaHY1UUNjTmdKSXlEeVRBRFpzTUNhSVJuWTVmV1h6RnF6SmlKTlF1dkd6Q29ZWDZQWG5WVDg4NnJ0aXJueEVSUWNNc0s1UTNxbFpmWGE1QlFrOVczeEcwWS9xd0xobDg5ZCs0bDA0Y08vcDlyeWt0bnpYUjVSNCtsOHNDenh1TFdiZEtFbk13SjE4eWNNR0htTmNMMGJwcTlzS2lvZTdmcFVQeW5mUlhGKzE3ZXh3U251TGpZZUJsblVTZnlUYkd4andVNzdtWStVcHc2R2krbDhuOG44L2Z5by9DNUk5M1lqMG9WcEk4WjZhTXZmV3c5Yi9sTy9Mdkg3NTYzZUUrTTUzL24vcTNsQ2ErWDlPMWJjaHNqMzViMUtldVR4MEtKL3FXSTM1VDE2Vk5HUnpQYWtza1M2TksydkMyYlN2cVdsdWFSUG4zNzlpSFBzSk9KaVl4K3kzTGZ4a0xDR2lRbEdFdThXVmJXNTMyTWtMVVlHTXZ1ZGkwU3NxdTB1RjlMTlladUx5bnBTMFBwVEFrTEJnNnd5OTd1VzlLM0NBUGYrOTZtNlVzVzU2TWM1VU00WmxoUVpDS2ExNUhydWozVHhneEs5cHJZd2RMS01pUllBZlBGbisvemMvaEU1aGF1MlpsNElNM2IvYzZzR2tMR3RvYlNudDhUdWJ5REc5alVhdEpOWm0xNlFtK0l4cndGZC9RRVZxdGU3ZFdLU2pUMTVwSlpNVmF6eW9QL2J0MWFsYzAvcVdOSHpmT1BhdHFxaGxKNnFLM0czV01acWRxMlY3YmdoTXF5dXY3N1ZmMlgxZnpubFd6VkhrYnlTL0ZzckdFQjlJaTVzN09kWWQyeUpzZWU2ZkRlN2lUNWF5Z3VZb3ZMMk5JcVZUK2NrRXY2dEM2dVRsYkxqcXN0OFd4enRaWFkyRUdWa1pvVGwxNG5WdStFZFJpdTJhVmowbXFZQkJmRWVpQi9uMVYrMW9pSjFkVmpSb3daV3I1bVluNFBoNmJCUkdQRW1xRytOVmxaUTczaGpEVkduZ05TZlZsODBHQTFMaTdiVjJvY2RGWXdRd0ozZGlqREh1NWVnTlh2ZXhabFQrdTh2dllLZTlwWGpmMWFIK0poQmd2TEgrbG13YWlQeFhHUmJNR2xtYm1LUG92MjYxdlFuVzM5K3ZabjMvYWd2Nk9Va3RMeDF3NnZtRmxZRWswMU5yM3F0QStLL0dpNlE5VnQ5eGloWU8yd3laVm5sWlQrOXNuYVNmUG43MG1jbDhHVzNBTW5uSms3Nk16SEh4ODM5dklySGpubktsRzMyZlVzMjhpcnp1L3V0dHFkaWRkU25YTnpldG42cnFCZE9qVTZzWHZ2YUVGQktOZzdMNi9xckt5c29xS3p6cnh6ZGQxa1hLZG45cTdNcTg3T0xTbzY0NHpWTjR3ZEYwd0p0dHZjc25DNzBOeU9zSTJVa012TTdSZmtPYktmaHREdy9ZMWdDT3VFdjRyMTRnZFNiK2tGdVVxK291Tm1zVmp1VVlxVm01UTNWTGU2UzdOcXc4MXRnVjZnWDIxVnJiT3NzMncrMjkvc1BlMkw3SWRPdGprZU5nWVpEenY3T2w5MURjb2dHV016bG1Rc2NSdnVFdmRPajhkenN6Y2J0NGsraDIrdTcvZitrWUdxekt6TTE3dkNGaHdUZlA3ZjNqN2hHOS80eGplKzhZMXZmT01iMy9qR043N3hqVzk4NDl0LzVwWjFtRy8vUDk2TzhJMXZmT1BiZi9PV1habDlSL1puT2VVNWYrWWIzL2pHTjc3eHJmTTM4eDJHSWxyVStyWVNVYUgxL3dZSnVER1dDbE93a09ucHNBQlo1TUowV095UVJ3SXJ1VElkbHNGRkZxWERGcWh1eTJPelVMS1MvYU9pS09BOXJjcE5abGhpNy9Zbzk1aGgyVXovalJtMm1PbmJ6YkJpaHA4encxaEg2bFhlVG9jSjlOQU9wY01VN1BxdjAyRUJCdWlONmJEWUlZOEVmbjFyT2l4RG52NzdkTmdDcTlyeUtGQ283RStIZFJpai96MGR0dG5kMW1IcHNMMHRYZXZRRnAzVk0vTkhadGphSVozOWI0NDE4M0l6YkxCNlpsNXJoak13N01wY2JvYmRIZko3elBhbXd0NE82UUh6Mm5WbU9HaVdsYnBuZG9jOHVSM0NlV2IrVko4VW11RlUyM3ViNGQreHNOS2gva3FIc3F3ZDBxM3B0dnc2VkZyU1owRG8vTXN1blR0NzN1enA4ME5EWnM5dG1EMTN5dnpMWnM4cUNwMTl4UldodVpmTnFKOC9MelIzMnJ4cGM2K2VOclhJWnF1ZWRzbmNhUXRDSXh1bXpScXpxR0ZhNkx3cGkyWmZOVDkweGV3WmwxMGF1blIyd3lMemtoQzdkVWxacURzNzlPOFZHajNsaW9iNi80ZThid0dMc3VnQ252ZmRYV0IzWHk3dURWaDJsMlZaWUlFVkYwUkZNeE1FQkVVa1FFVEZDMWRCRVFqd1JtU0lSR2hrNW1kSVpJU21aa2FLMS9nTVVaR015TXpVek14TXpid1FHcW1aRWVGL1p0NFhXTkQ2K3I3bitmN3ZmNTQvbWpsbnpweVpPWFBPbVRPWFhVUWJscGlWbkowOEg2Z1RzdE96dEdFTFUvTHdRTEhwR1huYVRQTiswckp6dFVFWlNaa1p5WW1aV201RTRNbUdRYlY1MlF0emsxTzFXTjdGaWJtcDJvVlpLYW01MnZ6MFZPMms4Rmh0UkVaeWFsWmU2aFBhdk5SVWJlcUNwTlNVbE5RVWJTWkwxYWFrNWlYblp1VGcrWkV4VWxMekV6TXk4M3o2TkJDVG1KV25qVW5OelVqREF5WnE4M01UVTFJWEpPYk8xMmFuc1lQMHNzN056VjZZZzhuSjJRdHlFck15VXYra24ralV1UXN6RTNQalVuUHo4TGdqZkV5bVhqN01Scmo2V3VZdHpNbkp6QUNoMDdLejhuMjAwN0lYYWhja0x0VXVCUEh6c2FJd1dadWZyVTNPVFUzTVR6VnFVekx5Y2tCNVJtMWlWb28ySnpjRGFwT0JKUlZnWXA0Mkp6VjNRVVorUG5TWHRKVEkzNk9LZktnQWplYjJJR2w0Qk9PanM4ekp6VTVabUp4djFHSVBnTFpHM0tabmdJd3M3ZUwwak9SME04a1d3NkFaV2NtWkMwSHZmZEpuWjJVdTFSb3lQRm1UbUxGREQzOGxMV3ZCakt5NTJBWHpjek9Tc2VuNkJzRE5lL3Q2Z21qQWtBR2o1S2N1d0g2Y213R2pwbVF2enNyTVRrenByNzFFVmxYZ09UQ2RiQmdLOG9YNU9lQ0JLYWw0bXBnblBUVXpwNzlHWVZGa0xlWFlzVUdnUTlCUGVrWlNSajVaSExFZ2NscDJabWIyWWl3eXAycWpOaWt4RDJUTnp1cjEwaDRqR05MejgzTkdEUm1TbXVXek9HTitSazVxU2thaVQzYnUzQ0c0TkFRNFozUCs3QW5tSlc2Umh3WEQzVHgrQVQ1dTRaemlPQ0l3eDJtczVublpNQ2VzbXRSRnFabXdxSWk2K3k5UnJNcCtpOVRhT2dvYko0LzRNTXdiVkpBS3JlYm1Kb0ptVW96YXRGeFljSGd4cENmbXpvVTVZeDJEcnNDaTBGeWJuUVFMTFFzckpaRUVpUjQvKy91endBSWw1dVZsSjJja1l2OUl5VTVldUFBc2tzaXU1WXhNMEl3Qjk5aHZ0dG9ZTGtxYzlpUVNwYVJDaHhtc0hSN0xwMTJja1orT3lXYnVadVRjRFV2ZlU1MlpBWDdLam8zNzRzSWtqRUFXRVo2aFVic2dPeVVqRGNOVW9wQ2NoVENodkhTeVlLSHJwSVY0OGVaaEl1Y2xNTU1oTVBHOFZJaTcwQU8yTmFlbHg0cktMbmdZa2wwMG5LYUpFSXZUc3hmOHhSenhNbGlZbXdYQ3BKSU9VcklobWhKWjVxVW01L2M0V0o4ZmcvT25aSkNGTjRwMThjU2s3RVdwWnNFK0t6c2ZMeGtpRDE1a09YMmV3bFhscFNmQ3JKSlMrNjNjUkxPSjV1TGg4L0xCbVRMQVJMQjQyWVgrVndyQTZ5MHNSQnN6T1RSMmFtQjBpRFk4UmhzVlBUa3VQRGdrV09zUkdBTmxENk4yYW5oczJPUXBzVnJnaUE2TWpKMm1uUnlxRFl5Y3BwMFlIaGxzMUliRVIwV0h4TVJvSjBkcnd5ZEZSWVNIQUMwOGNsekVsT0R3eVBIYUlHZ1hPUm4ybEhCWWlkQnA3R1F0SHBEcktqd2tCbmMyS1NSNlhCZ1VBNFBDSThKanB4bTFvZUd4a2JqUFVPZzBVQnNWR0IwYlBtNUtSR0MwTm1wS2ROVGttQkFZUGhpNmpReVBESTJHVVVJbWhVVEcrc0NvUU5PR3hFRkJHeE1XR0JGQmhncWNBdEpIRS9uR1RZNmFGaDArUGl4V0d6WTVJamdFaUVFaElGbGdVRVFJT3hSTWFseEVZUGdrb3pZNGNGTGcrQkRTYWpMMEVrM1lPT21taG9VUUVvd1hDUCtQaXcyZkhJbW5NVzV5Wkd3MEZJMHd5K2pZM3FaVHcyTkNqTnJBNlBBWXJKRFE2TW5RUFZZbnRKaE1Pb0Yya1NGc0wxalYybjRXQVJaY25oSVQwaWRMY0VoZ0JQUVZneHViTS91Z1NKU05jdEVDbElneVVSWmFDcVVrdEpTeVJxbG9IcFJ2UXVxcmowSDVBTE5RQ3VTNUtJVlh4ZHZGTzhnN0JPbWZ2QU84V3ZRdTBpSS9aRUsrS0FDd1NTZ0RKUU5mTnNxRGxBWnR0V2djNlMySDVJbEF5UUFzQy9sQVRTRDBud2t3RjJoelVUclU1WkZTS3NCVWdJc2dUd0ZPYS9KSEswUW9ETXBKcEg0eDhFMkdQbE9ocDFpWUFjYTBLQUw2eDdOWlNNYk5CR3d1a1VjTEtadjhvZkcra2JTOWtwdlFVTURjZTBzamtCSHdhREw3SE9EVndyaFlBN2lQWkRTZjQ1MEFwWFNnNHRxRklHVmU3NnhpZ1o1QlpwTDVwL0trRVcxb1VSQ1VrNkFHVXhPSkx2clBrZTBubTV1cGxveXlFR3FUeVh4N2RMeVkyQVpURmhKTHBaSys4MEdPVkdLVGNKQUpheWVEdE1zaTJuMkN0RThsSEtsZzZ5U2k2eFNTYXptSmVuaTFoSjVITEl2L1lIdVBEZnZtZ2V1eG4yUkF5enpRd3VQOElJWm9NWTlncWFTbnRONFpKaEo1c1gra0VHbndmT2FUbWFmMW04bWp2YzRsNVlVZ1ZRODN0dE1DS09QUk1vamMvNDQ4MFlEUGhmNHlpUXh4cENhdmQ3NGpvQy9zSTQvMjE5TmJYMS9ZeS9KQmpsRm9DUHdzSmo4K0lObkFsajZjeEVNQVgwcld5VnlpQ2V4N1M0R2FSc2JHYTJQSVkrZVJSMmFmUTJ6R1dxK25CZmJHYVVRN1dxTFRwY1JEV0l2bTkzcHBEemVtWlJQOVlWL0NLeldWcklRVXdwZkRlYk9SV0N1TGpKTkRac3EyVGVaNlNlWEtpYVR2SEtJTlBPZDhVb2RiSlJFNWVtdzYwTlB5dVJhczMrYytRa25ybllQeGIvbEhEaW1uUUp0a0tCczVyOGV4aFIzWDJEdk93QmxrRUlzdkpucEtKbkhnY1RwYnpNMDBnMFNJVEJJTDJLajFxTzV4bTB5Q0dZRGZzOS9LZTN6dnJBei9xVzdOMXpYdWFXNXZkTTBubGt2dVhjbVBtMEhQNkkvSzlZU1pEK0Nac0hQSkorUDF4UGxjRWd1V0V2L0J2OFNYUmVKZjRwL09sUFc5eEg1ZXhjYXhiQzVuWjhYaUM4bktZdU1xbHJiSG1qMzlZTTVNRWhQKzNFZlpIU2lMczB4Zjd6MHJKSVBUY2k2SjlEaE9aM0I2N3R1UllqbE40M2xra2hrdTd0VjBmODgyRXVza0VqeUY4NFZIWS9UQTFXQVlFRVZTeVI2RHg1aFBJbkVxc1d3aTBMQ1c1cEk0dzlZTjRmcWNQU0R1ZTNJcnVDOWk1UFZxclVlYWYyZG4vWnM3bVZZMW9JK0luajYwNmw2UG5nYzAxbFk5bnBOS3pnQ1ozQTdZNStGL3RUdjNlT2FmNzlBOTFvdnFYVUY1WmpHZXRUdnJEYW5jZUd4RXp1THNieVR6enVWMno1NWRKNTE0L1Z6TzFqMyt6UHBYRHJlUHNDUGc4eGE3VzJiMWVrc2k2anVsREl4ci93Vjc5R29wa2N3ZDZ5NkRpL2twM0pwTmh0NFhjR3VsNzl5R1I4QXJtL1ViUTQrTWYyNWZoUGZYZnVjVXJacnpRbFpIS1dTM3lld1hieDZkNDEvMFI2SndCbW5Ydy8zNEtHY2NFT1Y2ZEQrd05kWWFHMWZONTkwalYvL1RLanVIdmgycHg0WkdFdmV6eVNocHZlVlVNdy9COFl1MVVCNzAxcmZUc2xJbkVWbFN1UjFyWWE4dHplTUphOE1obk1YenlFcko3SldoWjIzMzk2Vy9yMVh6blo2ZHBmbU8wOStuK3pTeG1PaHh3WDlveDU1ZEFaOXhzempOcEpwSmtFSnlQR2FmWHVZQlI3TFpIcEwvRnpHWjNRRlN5QXg2ZHI1UmowVHpST2cxbTBTZXg5OGNzc2grMGJQajlPbW9aMWZyMDVONVhPbmZLby9FQzlaZVNkemNINy8vSnY2SlZYTjdOWkRIM2RIeXlSck9KQkxnZXZQZC9ULzFBdk85TGd5RkVJN0pLQlJLVTJIM2pDYVVjS0JwSVpwR1EwMGNsSUtCR2d3VUQrQ0k0ZW85aU1XbWtqMHBEUGlta1AyTzdTTWE4a2dvVHlPeExoUnBTUm1YSmdKL0pQU0YyNGFnZURKR0NQUVdRemlqU2QrVGdCb0JNSVRqd3kzR0FXVUtsREUrbmtSRGRyeElhTVhlaGNLNS9aR1ZOQmJvMnQ0WjlwY3FuSXpZSTlra0tFVkQvMkZjYlNEMEhVNzZ3L0xqOFVNSkh0a3JaeWduYVNEUkVlNFo5emtPSklvZ0pVeWRBakFLK0dMSStJRmt6cXkwa1dRT29WRFB6aVdFU0lCSDl1SG15dkpoL2NSeE5kaEdXTDRJK09tYlZTRFJRUmlScGs5LzR3QkdnZVM0Ly9GUUcwdDJpc25RTXBqTU5JWm9MNFRUR1o1dEJDbjF6WXExMURneUc2eFZySU5nd0NkQkd0K3J1MmlTczdKRW0vWFdYM2RUU1gwZkZ6dS9RQzRmUnpRM21aUllhNHdqcFZoaUsxeHI1R3daVGVZeGNOU3B4Qk5EQ0ZjZ21YRk1yNGVFRXU5bHBlL3hUbmFNeVdhU3NPTmgyNXJMMHVQVjJyOVlJMnd2UGZWVE9Fcy9xaGVzOVVDaUV5eFhUTy9JZjlheitXdE9JdGtqZXNxWHlldE9hci9YbnRSKzd6bmtSWWV2NGZ2eUovTEg4NStFZkNSd0owTGt3K2QwTmw2bFUzWFVSaDRpOFRNUStIUEpHd1B1ZzN5bXlmNlpjejJFak1mL3gwUDRFMGdKb2g0K0pOd1UrU0dmbGFxcnllK0JrLy9VRmFaaTlWb0xvVmRwV09tdjFwUWxYVk9zWGdHazUybUs4aFdiaEJZQ2J4c2VyUlFnVTZLRnlCdi9zOFBGSTJpS1h4TmpldHBrTktPb05tbUtWR2cwK1psTUltTTJtVFhlU2NmZ0g1T0xXV2Q4bVZEai80a3A3Nk85WTM3L2Z2djZaSzhSYTFwWG5hZ3Bkb2cxRmZPYlRNVzg3VFU4L0lkRnBVTkJ4RU92WnY1ZXFOUmYwaEdCRDVtc2U2V2xCQ0RYWWlJbWJ3cmZRa3BQaWZHVm1nYmhncFZVTkRVeEx6MGphMjUrZHBhdm5ja0dFeTJsbHRHcEtRdXlzMUo4TlNZVnBvaWs4c2QrTk9qclluTEc5VHlwUTE5OWJNYUMxTUV4K1lrTGNyUlI0d0pOR250cjMrR21rYVlSdmlPR0JmaVBuQTdGQUxPaWFmbnUvNHBrRFA2clQxUDRZaWt2Y1BJNFh3K1RHMXZTWkkzTHlNRWYyZ1RIaEdoRFlpSkhEUnN4TG1Dd1g3RHZzTUcrNHdLQ2ZOMU1ydXlFVkkrZFVBejcwWmVwbU5LWks1Z1NJRjR4Wll1QUxxS0xLUXE5Zit2NTBzUDNOeTJjS3A4a3U5OWFOcVhyNE13dFErbUQzVHhOVk9YSlZQZVNpS09YVjk0L3Y3T3RlbXVNYWtTaEx2cXBnR2RiWDVoemNHMVRpZjJsT2Z4blk4ZmVxN2w5b2pHMThNRDlMWjFYR3JmZWV2NnpKT05GNytmRzdmSVExL2xlMzM3cyt1R0tsK2ZPMmY5aFpXTE9lNVlIUDZjeXZJZDA1MjdadWJONlJmcjZiNFpNZjJuRzhxLzBMeGZjYk43MzFZVVMwUzh4bTUzYTZmSHY1MG56M3kzY2V1ckdvUjNuNVpPOFE2U21zZitvVUR0djYrWXI3M2NQL2FON1JNakxyMnhvVHJldnU3dC8yWnVyenR2ZE0wakxQbzcyKzhaTG5vekduaDc4dy83Q2pTOG5WZ2tsek1VWGpnUjgrVWtndiszYlZ2ZHo5dWVsbHVVL3pOdTc4R1RGOVh4SDlkYytKMjE4OTM2SS83b1Y5WFl4SlFTTkNFeHFVS25haHEvZ3k2NW1La2NxUC81SC9ON1E0YW1XemVpRHBmWWJCaEVYVXJ2eUhVeUtJcG1yLzRPdm8wTnpSTGZHL3I3bzl6M2VkVWVIN2JFMXhXSUdaLzRrMDBSVGVNMzRtcERTY2R5blpjbTVtVDRMZXV6a2s1eTlZRWpPL0F4TUhjSjlXSmszcE5lTTJJckVpT0NVUHNCaWlyZXdnblVwRU9BL1d4bGhtbUFLNnltYjZOTFIzQUNMRnk5KzNBQ3B1WC9SYzc1Sml1VjE0Mk1YNUxya1dRMVlqenpzSmFzdjduLzUyTEt2aSthOXNYZkNxdStHdC92SDNydXlhWlBQaTNiQk1WODg1elRrU3ZMVFQzeHdPOUt6N0ZmUmhiZnVQZlBiNE9uZmYvOSt5WTVQM0E4Tis2ZDdSWWRMNEN6NTFoZDJyZHF3K0ptcVZQc3ZXdTh0Zi9EQllkNmMwYkd1Yit6NzZPQjczNVNXTkNjTm5mYkt2dnJuRjJYN3QyWmEzVDU4NGJTdmRkNVhRUnZtdi9EVjZOV1c4b290c3gzRXo5VTN2VHF6eGZDTloweHN5K0NadkJPVEJ1ZlhtRDYrYTFqNmo0V3FxZFF2NlhlelhwMHJmTHI3aVNHZmZYSWxzdFUxK01yVmgyM0dGeitmdlY3MHp2ME5xNzdzR3ZaVlhZV295ZVBMZFQrZThpaWRQL1ZsSnVtNjE4VXBhK28zRG5wdXlVN2psQi95YTljSDdhMWZldlZHOEwzcWd3NjFlWUhMazY0bG5IaGR2ZVRpN0hSVHNRVUZVZXltV1JScnZybnlRY0h5cUpzUFNSUnJOdGVhR0tMWXN2OUtyRENZM05sRjcyeGVuNUtxamNtWVN6NnFCTVBpTDBqNGttQTJ3aFRnNit0bmdoOS9OcGoxRlUzNS94WDV1SHJlbjlUL3kyaFV0cXBlZjlUeWxhcWlwZkl1OXpsZHVXWEd6bnR2cnkrckNQM2c3VTlucnh3eWFxaVA1dFVsbllYdk9oZFQrd28rVlRid1drTi8vT2oxWDMvbnErKzhJSHFveTlwNForNlRIM2s0L0dCdy9vVy9MakM1L2ZzRDh2SmIwcXBoRndOeVlyT2ZhSDgvUkdnS1A5TDRpdWwxNXRORm4veWE5NXBpOFJjdmZianVZNnNYdExjMDI0YjkvRXpUcFh3MGNkV3BDNi8rZUhaSjk4dWQ3ODhwZS9MZ1A1MTNKSzAvOUZISnJqVTd6dTcwUGgzNys3RHpuejJ6OXBybVlmc3o4ejk5M21wUi9pVzdwOFBPL0l4YXdpTGV0aHoyd3pUclB3bzN0RnliL3YwTHY1eXRzblZldmZWcWlmMlJzNjF2cWFtUC93aDdSN3AyNkhxWE1MOEhUZnBOYUhkalRPdUtMTThaeTM4S3lDcTYrMkc3VlB4alR6UXFBbzBVc3VIR0RZZWIzbzA1d29ycVhhazhzM0QxNmRta2tzL25qR3g3T0xjcDRWVExoKzk5Y0ZSYWFZckcxWVA0RUlzMmp6ZUYrRnFieE96V3dwODBPU3JhMTkva2g0c0NxYmZmVUpQSjE4ODdPY0RrbnpRc05YR3cvOGdrLzhIK2ZrTURCZ2NNSGU0M09DVmdtRzlhb3AvZk1QKzA1SDRoTUN3cjVZY293ZW5pN2ZZalJ1ajJMZGpXdXBCKzdjOUQ0R01qVkhaT0hvbUM0QzdneCtERjRNRFlmMmZqYkxCcHhHQlRBQW1CaVdZaGNJb0pEaXRtSVREa1h3N1FFd1gvWW9oOEU0TUZsMUxVUXo1dFFnT1dNNitZcHBDRnd2bWJxVTFSTGE2VE56Mjk1S3RiRC83NDdPQ1hoMy8relNudVZreEx4bmpCbDgyZnRsL3BlbjNHYTdNSEJSZ09DMEtrbDZxV2xqV2t2ZmZOaHovU1Uxdy9lTkoxU2VDQ0hROStSdFBYdmI1S2RWejQyc2txVmJEcDNTMktqdytNbi9HTHQvOUxiNzBTUCtKb3BHcW5ydFh1czNQRmR1OE82OWloYTNsRnYzWDVTOTk1cUs2bXFWZU84WGs0bFRmcFNOYUtHcjhmOSs0WkVoVTMwMktYdkx4Rm5meEJIdlA5MlFKM1c2K0trSGY4Vm95cEdETTFmTEhyeXU1ZGRoK3Yrc0ZLL3ZSSDN0TjlaNHljVjdGdGM5bjhDa1AyejgwNzJnNkcyQjlQaWx5K0wxWTVmblhsbGdXSHN6eU9QZkJ3YnJtbGZWZTg2K2NUNHFwMVYrYTltYkZpNC9DdkZtaTdYL2p5NGRINjljT0YzVS9LamxUSzNqMWNldnluNGlQdlRkR1BjOWdYOXNLUzBwTy9uWHJ6S2NldlpTdXZ2L3hXdXI0cy9ZbDNQeTZLZEw5dTVSS1IvTWVHZjhnbkRkMFhOMmZ5VnhQK0diRDZvYyszdTJadkhqZi9reVdmNy9wdy9pc3JNbC9NM2Q2MjVmZTN2bFdlSGRtVjhzbUNNVlkvRks3WTlYN0Qyd2VlL2J3aWJuTkIvS2VTOFVtblhIN3FHdDNzSy81MXlKaVVMU095NTBROTlVSHdtc2sxNHBjYWw4WGYvM2p1aTRuZlZGYzJ0NVIvbWozKzhtR2ZkYmQyM2E4ekxXaWZGNzd0WnNXaWxvTld6ZDFQL0xJamI0VEY3cmpQSGM5OCtNdTYxaGRWZDRybVVaUDNPeTNQMjNONmh1NnBVZkVPMzVYZG50c2MvczZRQzI0dlBUbnJaTHQvOEt2cWhsZVpSY1ZqZm1vK04zZ2puMTRkOXR0UDM5S2Y4emJCSm1BSm04QlA3Q1lnU2xTays1UFlyeHA0Z3AxTndxbEl1Tlo5NVQvdUdGTW9Sd1VQdk5IWDBXVGZqeWpzZFZad1EyODJidXI3NG1aMGRqWUVUM0RkakxTTTVNVDhWRzNnd3Z6MDdOeU0vS1U0dUp0R21QeE5RMzM5aGcwMTRaT3FueThwRGpYaDR2L3VDUDJ2NHZ0Ykd6TjNmZmROMkZxdnd2aytqcGNQWHZuK285ZWZkbzE2LzhTM0RwRjYyOXRmdlBORnhQdjVKdTJnSHkyL2pIMU5IcjdPS1dqdGpzb0VrL3Q1TlAvR3N3ZmJWMXJhL21yRHIreFllZHo1MDZINkY5KzhjMit1eXRqMTdQVXlkZHYxeUxjM0huR05hWDI1TStSejRjbFpPMC9XQmZFMy9iWTE4eDl6dnpKY0NJMnBLejM1Z3lIVXg2TzJkUEtVYU9ZcXovajd2RFZyVEZrdjNwMW1lck56MmRuMWUyNjRyRi8yNEpUMHJ0VUhNUXVpOTRhc2VTc01UUmlmTnNqRE0yM2IrcXVuTFpaUDJQUmJ5VHVEeHN1RXhXK1YzSnF5cEp1cVVrZFp2WURzVEtHM1Byam9HdnBoOCtEWXQzWnFsZ1Q2TGo3K3huZFByUGpIeGtSNm45cDZWOWV2Yit5bVR1Z214ajc4VFhDMFNTdnVpZS92Z1ViZU1kbjJSaHlCaVFmQUxKNC85blNKdzdmYWxzOEgveXMxMlZrSXVUMUJUbUVLTWkydlpHUHo4aldtNVM4WHlXeHFpK2VNamZOWS80T2J0TXZyc2lqbXRXbFhOMjlNM3B6NFgzZlBZcnVsN3lzMlRxalo4bjVFWHZ3OVM2bFBxaW1LM1JUQ1RiQVAxWXlyQ1N4OTZ1K2ZpM3VyYzJGRUhNckpoaEJydGlHRW1VSk53V1liUXNDL2N5Ykc4eGpIOXZvM3o4T2dhN3YxcTQ0bThJS0hmM3R6Ny91THZ6bXg5T2xKMUM2Zi9HZG1MR0NrNzUxb2ZQYVZlcDh6a2szbEM1THFwOUtmUm1xbFVhOS9XekQyeXRRUGQ4WlhxUzZycWRMYUQ1ZmNlZWxrK3hQVTdTdU5yNGdFTFMrSFhlbUlrWDg3K2IyMVY2Ky9QTy9Mb2lQWDF0MnhHUElDNythclhucGR6dS8zdTY0dWVkM0grbGZMS3prTkRwRnZycDR2eW4ydGZ1UElEWE1IZi9TMFRWdFN3bE9LeXBlMFQxMnhWUHI5ZHR4M3dpTGZKNzF6eFMxdE9VOCtmRUVrL2E1SmxMaTY0NnQ2K3g4algzcitvMkhlczk0KzlHUERjK0tnWjgvRTVMcmNOclYrdUNRMVlRWmxMNUxabkRvdnEveGw5RC9UNHZjTUhuTDl0eGRLano4ZGQrUE5uSFdadFNNanp0eGZlbWk3UTBHUzUwK2IzdkQwdDFpc1RQcmtTYzBDNStJTzhjZkdEejhmdCtlSDM5cWYyL2Y5NW0zNXcrb2pQM3JHVmVLK1NEdzZ1dnlaNmFIalpBMTc5dFJObXR2eVZ0RERvcVV1UmRWeVU5cU5JTWtzWlV1MXp1WGt1SnZlTnorOEYzYmNlT2FjWDFHRXUxZVlmdmIwdHJpZnRsNTgvYzNXVWRrSGwzdmtXd3k2dmNqbDBCdkZSenhpOSsrYTkrVEtqWXNTOTJadGxHNDl0SDE4aHlUN2oxVittYnU3djN1NnBkejFrN1NEYjZwZmxLVFFUdzdlT2UyVitxc3VQK3lyYTAzZXV5UldjQ2JRSjZwMlhkMldKZS90cWFsWXFQeDY3WXZTaGJvaGZ0dXNzbXBtbExzZHF2bXBwTlhsN0krYXlaOVUzUTYvOUN1Vm1yMVMvRnhMUnN1MXJMWjMxcC93OVh4bzg5R01oSE9UbkRhZTZ4eFMvWlRQRk1YOFQ2UnYvMkVxdGl3d0ZRdVNlcllDbXpXbjJFZWFnZGVBNVdYL2xWRHNaekt4QzlMejd5ekl2aHVCTDJ3YkFYNm1ZU1BaVFdNNEtmcWFjUEYvZm1NcHBoL2RPMmk4ZDlDd2Q4Q2FlNitqTTlkTzVmUCt1YXp0eFhhVC9BL2MyUi92OGxhUWs5ZjhtOU9qdHRkYkJDajU0UWVlUDhwb3ZoMHgvNWprbkxnam9PbDFpN3FXa1Y5U010K2cweXV0bDZhOHVHemRISDNtenVyd0RUZlRaNTM2N28yWTNTTGowWjFmdit1OW8wQzQ4NnVLYWExemxJS2JhWXR1K0VXN1M0WmNmODhxNnZNOXdSL01QTmZzdzF2NFh2cmRUeGZjSFpXd1VYRXY5TUNsZ0pUYXJKUmhTN2JXSk5zT1BqMzJIdysrdjJocC9XWEMwaTNobnRldEcydWtpeHZYUGZuVDc5OTdUN2R6bmhSbjJGU1FlMGt5Nm9Qd1dlZHUzUnIzNm9xdm45MzliS25UMTJOMmxjKzhzWEp5aWZMT3hpSFRycTU1WXZDT29mRWZmVENtMisvMEh0NlR1M2J2WEJ1dzdOU2JSY1pmSXVOZWRSbm1kblJrVnNyek1RYzIyTDd2NkZyeTZiMER2TktYZjUzZGNUTDZVUG02RnhzT3UrUzd6WFl3N0QvdVlRaHdxeHc1WWZqbmhidlc3bEM1dnZOdVdudWk4N3pMaHZBM1o1ZGRjWnQ1Mm1YaW1Pam1mVk9mMHZNNnZpaVlNZVJMMSs5elp0bytIYnA0endOMHVhR1dMcDc5eldINW5vTk9aNlpNdkQ1eW8rMU4xL0FHaC9yZ3dwQ3JSNDdtRmx6S3ZhNy83bERvNngvOTFLU2ErczJLbDlzbmhadmVlVy8xZCswejN0clo5VzFkMnBVajY1Yy9lK3ZzclluWHd6M2ZrUnEydnZQYzNLSnJxNUtXek40OXBPU3JxUnNTRGkwMkdINit0ZUNvNFJYaksyTkhURDV5K1lYZ2xjM0NpSS9PYkJrM0pQKzFYN01lTE5IR0c2VXo1N3hXTldieTBKTHpkV1gyRjZzajcxWFVOWVRXWkZhZXVuUzJyTHgzNzd3RmUrZk54MngvZlp2blkrOGxqcjBOWkRTZjBZaFFEUG5FWnh3SzdMK3ZQcklwbTk5NGNnZVBvbjNYalB1blRCQjV1ZTJkajMyL2NGM3BiNXJPYm03NEJYVnl6YVNhaWFYaC85YWpENnhiV0xXd1dIc3ZKYk5OUTJmNytaRnRicGJaTmhkdGlqSkZtbTF6UVg5dm0vdUwvdk5OeTkvQ3dtdjV5OWVibHE4ekxYKzFWMGsrUE5QeUZhYW5lb2FqS2NYUWYzWE5Tc2xPem9PWlpTeEl6RjJhbkpQbms1Ni93RFMydHdQYTVLL3gwNnBSQlBsYUdINUNuMDArWEdNL2pGMEtwVHp1WStMVTNnL0xmYlRxeDEzRTV0NHAzVko1S1hhcDB1ZjB1Znk1dWpmRUZZTXVKNjk5UGFqaXVWTkxtVFZIVW1mN0dNYzhPSnI3eFlJVjNZMVAzUkMxUG5Gby9MdHYzODM0SnZtUWJ0aVc5VE5UUzlZODkxSm8xSlJ6ek5yQ1U4cUpxcnVqZzE2S1BsbjN4L3p2eDFqNmVMNXg3VW1uTFdmMnFSZXZHM25sWnNvbndVOHVLWEM5SzMxdTY1cjhGUy9mKzlTZER2VnFXbVgzNGVaM0Jjd2J0OUk3MDMxZXEvRjZ5bXQrZkhpeXN6QWphM3BseGRVVjl3Ni9jamZVKzJMWEV5Y1BEdnNweTIzSER6czlicDM4OXE3Tnp0Y042eXNuMlR3cHZtTzE4cXp6VVQrSEt4MGZEVDR4bzNwditFalJNVkhUc2ZkMy9MRDc2Mi9rWlUrSHhBZjRQZU9oZkg3WFBZOEhGNDJqdEJtVnU2ZXRUTS9LZnVlRC9LTmpCUlpiS1MvRG1PS25wSlBTeElmM1RQcmw4aXZQcTdMbHo0VzhzK2lIc1Y2cGJ4K2RHWjFVZWxTZFBIeDk2WGZuN3o2NG85aFk1WEg1c3kzclQ5NmVtUno0L1F6TERTK09zVmhzOFlYRnJvWE9zc2JFeEgwZEY0NDU4UnUvQy96WXhuRDdZdXFROXZYM055WlVuRU5uTjRZZW5IWjMvUmJoeERDNzE0dWNUeUxQajNhOXNlV3BrTVdhWWNkT2JkcjBWa0dCcmpQc05lZjNmaC92V3ZSTDlZTkQ4eitZdVA3S2p3dVhLTnZiUnJ5KzFHSGl3N043WE5NWFh0dloyZlhTaitLaXRvd25kbmFaYnZFalZuLzMzY0lGeWE4KytjV2JjWkdURHhWTjFXMWNNc2pQcGVDblFOR3VwMzdmZG56enpDTWJ5OTZZK2t4Y1pGakk0YUJQM2xnMFExUVVOditQcFc4ZE9iaGd3YnhQb3ZPazFnVlJuL2tXOCt0TXhmeGFtcUpNeTEvN1gyOWNqMzhPN1B0c3BHWjVNdzQrbkJNTGViNk0rUWN2SUVWZlNleHJZekt2bFp0Yyt4cnlmWEZvVzNOSzBlaCt2VkE5OWgrL3Q0YjhJYS9LWDdmZGxHTFdoUEdOTThYV2VCVVpIdnNkdnRoSHZ4ZTUwYjFJLzZjck8zWnBUdmJjM01TYzlLWGFBWHN6djVoQ1U1bzhWcUM1aDQrc2RYL21zL1pYSE9PcXFqNGVOTy9FaGZlK0doTVdkc2ovdnVidzhGSHZmUkEvWXNGUi9vM252QXZHV1BtV1ZnbmJVL1ljdWVKb3JKNHBHbmJtbGRjMTZ6SStOWDE2eEN2MG5WbFR2L3FpYmUzaC9jTm52bm10MDVTWk1NN0Qvam5CK05aTnozOVdKVDY5eWVtQTVyTWhiZmM4djg5dy9tRHV6RFBuSnp4bzNQL3U1WlV4SDZzT3ZiOGc1QmV2ZmJ0UXQ3M3RaNUliNlU5WEhKcWV2L2hpVnNJeVM1ZW9wLzd4eFBXUm9lK2lXMW1OVmlINXMzZVdISEc2bXZwaXpDOVc1MTY0WW0xWG9HMEp0S243S0hwVlcrdkNtNXJWMlcrRitLOWVORTNnZko5MitlV0U1OXlIY3g0T2NoMjA4T2VYY3dJUHhKdCtQSnk1WTRuZDlkaUlnTlczRFdsU3QxZEdmb0kyRnRNR09KN28rMnhrNFZ0TXk0RTBpTGptNnYvWlJmenhIN1NaK2VSTWs0TzVTNHI3UGpDa1lQRGVHb0d2TFhrNHhnZE9YOStSUTBkTWY4UWpxNVczMXplZktzbUx2bnozNjBtWDIxcTN1UTRlTitES2hIMUZFN012TlRGM1MzTEJ6L2RGT2FmYnd6WitkV3dsSGVTMGR0Y21ud25IeiszemZSaHpMM2RxL1dMTmtaU25NOUdrTTBQdHpxWmVXQkRvYmRuUlhsNXZ6THk4N01Qbm5wZzRySHpTN05jempCdVBsc1g3THV0KzRGRVNNTGI4andzdkZSZVZmdjc2U2MrN2hvOFduLzl0ejBiWHBoYytHeHJ5UmRpOGcvdktSclE4dDJ5WHYwdVNmMGJ5Q0ZtT2VKd2pVejBtNHZyS1o0NE9GaXpnbjR6WmRYam9qTWEwaFBMeFJnOFlJdlVucDlVTEh2NTh0L0t0YlpjcWFqUnJhNDduVm04NFdvdTJ1SmJ1ZXVuTHZkTytvbXUrbXBseGExdjZ4VVVQbDI3UmZaUXFYUnBTcDV1VEtadS80V3FWNDRhdkhyYWM5dnJlY3ZqUGs0MFRydzliNlJheDFHbFU0OWRIVWdKUGo2bThwT2QrcTVWQmlPN200ZDh4ZlE1S1o0SDJGZnp3MERrNkNGSDBPSG95NHRGUmRCVGdUOU5QQXg1TlJ3TWVROGNDUG9YZUNQZ21laFBnYjlOYkFYK0gvaWZnQjNqNGp5V0g4c1lqbWhmR200QjR2SW04U1lCSDhpWURQWW9YQmZqVHZNV0FMK0U5RDdWRnZPVkFLZVlWQTJVRnJ4UW9ML0plQXJ5Yzl6cmdWYndxd04vZ3dTaTh0M21uQUQvTk93MzRHZDZYZ0ovbGZRdjRSZDRQZ0YvajNRTDhOcThUOE45NWZ3RGV6UTlFRkQrSUg0UjQvSEg4T01Dbjh1TUJuOGFmaG1qK2RQNTBvTXpnendUS0xINDY0Qm44TE1DeitkbUE1L0J6QWM4VHdDRlBRQXNzRUU5Z0tiQUNYQ2lRQUM0VlNBR1hDUlNBMjF2c1FwVEZib3N1eExQNHcxS0VhRXV4MVRSRVdVMjNtbzE0Vm5Pc1BnWDh1TlZ4d0Qrek9nSDQ1MVluRVczMWhSVkliblZSS0VDd1RJWFF2OUJTcUFEY1hyZ0owY0szaFVlQTBpUnNBc3BSNFRIQVB4WmVCdnlLc0Izd1c2STVpQklsaWpJUUQvOTFic0NmRlQwSCtETFJDNENYaWw1RXRLaE1WQUg0ZXRFYlFOOGdBdXVJM2hHOUIzaXRDS1FWN1JidEJYeWY2QVBBNjBVSEFXOFVUMFdVT0Y0OEEvSEVDZUxWZ0w4aVhvTm84YXZpV3NEZkYrOEgrZ2NNSDFHTWdMRkdQTWFHc1FYY2pyRkRORE9JbVFKNEhETUw4TmxNTXRTbU1IbEF5V2Z5QVYvSUxBUjhFYk1VYWd1WXR3SGZ6RFFDL1JCekdDaEhtSStCMHNLMEFPVVRCdWJJWEdGK0JMeWQrUW53RHVZTzRIZVorNEQveWp3QS9EZm1OOEE3bVU1bys3dTFFRkhXSW1zUjRsbUxiVjBSWmF1MzFTT2VyWnZ0dTRCdnQ0WDUydGJhUlNMS2JySmRBdUxaemJTYkNmZ3N1OW5nNzN4dUJkQklEMzc3RHZqdE5ub2JFdER2MHR2QmMxNEQzNk9KcDlIZ1kxOURmcDUzZ2ZNeEdtemRCTFp1dHZnWUNTeGFMRUJ5aTFhTEU0Qi9ZWEVhOHJNV2x5Qy9abkVUOGphTG42QzJ3NklEOEo4dGZnYjhqc1U5d0greCtCWHdCeGEvSVFINENYZ2c2dy9FMW55dzhsWEFmeERlUUFMaFRlRk5zTTQyMGJ0SUlOb3VBdG5BUnRNZ255NmVqZ1RpR2NSZU84UjdJTjhyM2d1VWZlSjlnTzhIZXdtNEdZcFFDMzBXQ1JKekU1T1FObmxwYmlaYWtwNmFsSXRLTXhQenM5RGEvUFRFREZTSFZJZ2ZHaGl0UllaSkVkTzB5RDhtTWxpTHhrNkpEc1pmNkVIY2R6d0V5SmJES1dTQi8vb0V3V2xraVFaeE9QNVdpSVREK1VpSXBFVFB1RXlESExMZUVvWEVVS2FpSjAvUzRtK0trSG9HeVRuTUdpbk0ydGtnZStRd1B6VVhaQ1g1ZHBJM2tmdzh5ZS9nM3k2bVJDUjNJTGs3eWYxSkhrVHlLSkxIa2J5UzVMVWtQN3hnL29MNTFER1NueUQ1V1pKZkpQazFrdDhtK1gyU2QrT2N0aUI2bFlIRUNpd2Rja1JLNUFRNlZQOWZvTE4ycFltRy8vTVNCWlpDeUJscElHbVJDOUloVjZSSGJzZ2QvNjBPNUltOGtEY3lvc0hJQncwaHZ3VG1oNFlpZnpRTURVY2pVQUFhaVVhaEo5Qm82TUVLckc4RmxoYUJSUm13bk0yZjBDanNJekM2QUZuOExXaUwvZXN4VUFJKzlRTEYvbzNFNmRROHFvQmFSVlZSMjZrRFZDdDFubXFqT21uOE53Tzk2RkgwQkhvNlBZK3VwYS95Vkx4WTJFMmFlWGY0V240a3Y1QmZ6dC9BcitXZjVGOFMyRmp3TFdkWlpsa3VzK3l5MGxxdHMyb1NLOFR1NHVIaVVIR2NPRTI4U0Z3cTNpNCtJTDdJYUpsSVpoYVR4V3hnYXBrRzVqaHpBZUpUbHpWanJiSTJXbysyanJCT3NNNjBMclF1dDk1Z1hXdmRZSDNjK29KMXUzV1hEV09qc2pIYWpMYUpzRW13eWJRcHRDbTMyV0JUYTlOZ2M5em1nazI3VFpjdFk2dXlOZHFPdG8yd1RiRE50QzIwTGJmZFlGdHIyMkI3M1BhQ2JidHRGd1JYbFozUmJyUmRoRjJDWGFaZG9WMjUzUWE3V3JzR3UrTjJGK3phN2JvR01ZTlVTRWkrZDRYL29nbFkxYzZoZjFuYlFNcDhzSUFDTE8zT1dsMGZ5c0ZaSEN6Z1lLVlphL0FXZllkWkdlcU5Fck15V01ubzNyL3Nld01KT2M4aW93OWQwcitjM05pL25ES0FQeDMxTHhlZDdWOHU3dXhmTHBFaElkK3MvQ3BvZzRmNjVObFlqbUI3N1N0dm1kTy8vVHZUa1pBMnEzOS9OeEpTWnVVNkhlRzNBSjlUd3Zyd2dqVXdpdFZFWFFJSEYzRndEUWUzYzdDWmd4ZEpEd0x3WFFlRXYxUnY0dWczV0xpTHowRXRCMGR6TVA3eDdYYWxjTENJZ3hzNFdNL0JNMy9TN2hJSHUxbTRXOFZCYmo2Ny8yUzgzV2tjTE9IZ0pnNGU1dUNmekc5M093djNpRGhvNENEbmVYdFNTTHNCZnJrbm40UHJPTGlYZzJjZXkzMk5oWHN0T01qUjk0WStqbnR2UEFlWGNMQ1NnL1dQNVc3bFlCc0w5M0h6Mk9mVmYzM3RDeHBRdnRSL3hYeVlRc284aUlMNGIrS3dORzUySDNJKzhtRm4vejRhREk5YnN3YzVEenU0bFlOM1dOZzRsbkE3UUZ3ZWcwSlJKSXBEcytCeW5ZVVdvV1dvRksxR0ZhZ2FiVVU3MEg3VWlJNmhFM0RHdjRpdW9kdGM2K2tjTE9aZ0RRZnZzZkNRaElPY0h4d3E1T0I1Rmg3bS9PY3c1NGVITzFoNGhMUHpFWTUraE91dktZS0QzQ3lhT2xsNE5JcURIUDBvNTZmTmNSeXM0MkFYQ3orYVFHYXRReE5RTkpwT2ZsVWdGeFdnWXJRS3JVVlZhQlBham5hakE2Z0p0YUpUNkR5Nmd0clFIZFJKMFpTSWtsQktTa2Q1VVg3VUtDcUlta0JGY3oxeUVuekVXZVZZRmdzL1ZuS1EwOERIM01wdHllUWdKL0VuQ2c2V2NaRHpvTllnRGpad2tKdlpwMXprK0pUVDJQRXFGbjdHYWU0elRtTW5PTDRUbktZKzUxYis1MXk3azBrY1BNdkNMN2g1ZkhHY2hhY21jTENKaGFlNUNIT2FpeGhudUJWN2hvdGNYN3IzOThZdi9mdDc5TVVTVW1hSVovbzh4dXRZTHM1ZUZ6a3B2K08wOTkxRkR0NW40YVZnRG5KcjRsSXRCN25aWHVha3Y4ek44bkxkbyt2cE1xZXBLNUVjTENJOFlxalh3d25HSDA0cHdYQ0dqVVVKS0FWeFZydFN3VUZPYTk5ejBlSDdDeXk4eXNYM3E1eThQM0RqLzdDTmhkYzRyVjA3d01McjZIRnI5bm9BQnptYjNlQ2l5STBLd3YwRUtrUWxxQnl0UXh2UVpsU0w5cUlHMUl5T296UG9BcnFLMnRFOTFFWHg0YVFqZzdPT0hrNDcvdFJvS3BpS29HS3BCQ3FGeXFUeXFVS3FoQ3FuMWxFYnFNMVVMYldYYXFDYXFlUFVHZW9DZFpWcXArNVJYVFNmWm1nWnJhTDF0SkgycDBmVHdUUzNBbTl3TTduSmxXOXlHbTg3dzhJZmQ3Q3dmUlVMYjNFV3ZNMVo3Q2N1b25jd0hPVGkwYy9uV0hpSDJ5SHVjdjUybC9PL2UxeU0vNFhUMFM5Y0pMbS9tb1cvY3YwLzRFNm9EN2gxOHh0M1J1bmtkTnI1Z0lXL3orTWdaN2t1enBKZDNEeis0Q0pXdDU2REoxajRjQW5uMDNvT3N1dUZvbGo1S0ZyRHdSWVc4amc2MzUyRDdEd3BBYXNmeW1JTUIzZXowSkxkcWZHL0g4VkNOaDVRd21VY1pPTUlKVXJnSUJ2WktERWJNU21HNjQ5aGQyN0ttdDJCS1JzZkRuTGoyM0owTzFPL2RVdlpuZTIzYmlucGcvNWxtV2hBV1dkMk5vSWRWUmJRNzJ4SHlmYjNMOHR2UDdJU0tYdXV2VDBubzMxQy96YjJ4WSsyY1NqallDTUxIVFdFNTlFekYrVVl4RUhPY280N09IaVZoVW9sQjZNZXN4WXBKZGRLeWJWU2NxMmNsUDMxNEJUVVgyYW56TWYxcHVLc3FkWnhzSkNENS9wYlFlTmpWb1lmVGZTL1dZNGFVSTQwc3hJdXh3MG9UeDlRbmpPZ25EYWduRG1nbkR1Z3ZHUkF1V0JBdVhCQWVkbUFjdEdBY3ZHQWN1bUFjdm1BOHRvQjVjb0I1ZW9CNVpvQjVhMER5clVEeXJzSGxPc0hsQThNS0I4ZVVENDJvSHg4UVBuVWdQTFpBZVVMQThwWEJwUnZEQ2pmSGxEdUdGQytNNkI4YjBENS9vRHlnd0hsemdIbHJnSGw3djVsWnpTZ1RBOG84d2VVTFFhVW1RRmx5WUJ5Ly9zczVhenBYM1pkMHIvc3hoOVF2dEcvN0JFM29GemZ2K3hWMnI5c0hEQytzYWgvMlVjL29EeWcvWkRSL2N1bTgvM0xmcm45eS83bThrUDBHWGF1ZjNtNC80QnlSZi8yd3gvMEw0L0VrSUVUTVUyRjBsMklSdmJrUlI1eEwrOHJlQ3VRbUx5Sk0rUWQzSWFmd2M5QWcvalA4SE9SaEx4Nnl3UkNnUTF5RkF3U1NKQXplZTkySWUvT2V2S3lQSmk4SGZ1UkYrRUE4dkliU041OFE1bk56THRvUEZQSE5LSko1RzAzZ2J6U3ppVHZzN1BJYXl4K2cxWHhwRHdkU0RPWU53elo4VWJ3eGlGSFhnZ3ZCTG56SW5tUnlJTVh3MXVNREx3WGVhdlFKRjQzM3hvOXpkZndOU2lSUDQ0ZmhaTDRzZnc0bEVOZTYvUElPMzIrd0Y2Z29YZ0NyVUJMaWEwK3NXcWxHTkU4MFRPVWphaFk5QUtsRURXS2VaUlMvSTI0blpyRERHYW1VTG40bFpwNmczbVJlWnQ2aitsbUhsSXQxcFMxa0dxMTFkaTZVcWZ0QXV3bVVGL2pOMk9xSFMwQVI4ODBTN2tFVXNJbEFKZEJnbDFZdUlxcld3T3B3b3gzQTZSTmtMWkIyZ0VKYnJYQ0F3QVBRenJHd2VPUVRuRVFwM09RNE93cHZBcXdqZU9CRTVXd2c5UlJ3dnNjVHhmaEkwbEV3eW5DaXFVRHprSWJTREt6cElTa2hlUU95UWo4ZmdBRElJMHhrM2R2WHhJRnMvS0s0Qnd1aW9KeUhKY1NDS1M0MUVOL1BKN0U0ZWxtZFZuOStNemI5YVY4czM0S3VHVGVmeEdIbHc1bzE4dEgzYkk2YTNYSjZwcFZoOVY5SVJKYUNPMkVDcUZLcUFQY0FNbEg2QzhjSlJ3TE1KVEFDSURSQU9PRnM0UXBrT1lKYzRDTzB5eWdMUUpZQ1BXNGJoSEFRbUd4Vllld0ROSnFEbFlLcTRXYm9kOGR3cjFrakFOQU93eGpsZ0VkajN0TWVGeDRDdkJqd25Oay9HUENpNFQzcXZDMjhKN1ZKZHluMVZsaHQ0Z3YzSXZsRm9sZ25GTWlPNUZDcEJMcElCbUVZM0hDTW9wOG9CL2NGNVlKRXZCeVNlUlBFc2hNVWpDUnVWQTBRWWlBcnNKbFVSU01HUys4S0lvVEpRQXRpY2lKKzBnWDdoV2xpN0pBVmlLN3lBY1N0TUZ6QXBndlZJZ0tlbVh3Z2ZuZ3NTdWhMenh2Z0tJaVlUWHVRM2hNdElyTWR6WFFzVzd3V0NBL21UUFFpQXd3cmloS3RBYm1jUTdxN1FpT1U0Vm9nMmlUYUp0b0I4QzlBTEhNV0w1VG5Jek5vQmVjVG9CTUFJV2JSUVZZWjhUT1oxa2RrdmtTT2ZyR0pickU4aXNBNmtUbmV1bTk5YUtMdUo3WUgrdjNxakJVMUFZUXB3N0FlK2N0dW0rR2R6MmVSMHlMZk1SV2tHeUVxeUdCblZnYzY0TkxuTjBHSmxZM2dNZUxaUnhVRXBpQ29RajdhMDR2QlB1S3RjSkNMczBTZXdrWEVYMWhteDBRbTJCTUU4RlhpMDNDTWc0L0FMcjJnVFJRcjloUGRvQ3Y0elRBcGhpS2g4TWNvc0NtbGVBdkhGMDhscVVETFV0VUpKNEFkQ1FxRWlXSndiL0UwNEVPZGhmUEFadGpPSStEcEN6T3gzWVRpY1FGc0U1VXhCZEU0aUppRit5UFpuYUFOYW5xMVE5blczRXBaMk1EQjJGOWlNdkZhL0c2QWZrdmdqM3hXc0UrQUdzTXhrbUgvakJrOVNqcjBWOVBmOEpvVVFMUUsvRjZFRmVEN0pESTJqSmJYOWlQUVovYldDaTB3L1BBY3lKd0I1bExQZlo1a1E3OEM0OHZFamV5L2daUWh5SG9tY3dWKzZHNG1mZ2hYZys5OHhTM2toaEU0cEg0cEhBMTZNUkhmTFpuYlpONDFDc3ZHNE1HMnY1eHZ0RFBEempiaXkvQUhLK0IvWERDOCswQTJJSHRLTzVrN1N0S1loQmpnV09US0E1RHhxTFhWanF3NzFnaFloamdrYkEySlFuSFBaek00aEdSZVlCdi81WGY5NWF4WDdJeGs0M1RDdUlEbkc0WWMxekhyaEUyenVIRXdQckRTUlFzYm1WOHJDNlpwNTZZd1BqRFBQcmo1NFRIWUo3WUxnYldyM0FjWWtaQi9PR2crZmk5WTNLUWdYWEFoSkxZQi8wQURlUmxJbGhhajA1N2ZCT1BCN2JwSFp1SkJyNTRUZzdPTjh4ODM1K1poY2NScVpnVVdNT253STdCekR4aE1idWVlM1RQNUZqVmtMUklsTUFVZ2oyOUlJYkh3MTREZnNnVUE0NzNIWjNaT29MRWxBRnZHWTcvbkwrQ3IvV3VpNTcxUDRwWnpheGpxbnAwMjJjanBrWVl6MndWUlRHMXdrcG1OMVBQOXNIVXd4NWh3R3RCUlBiWVhwczBpcktZWmxZZWM1OGtmWEY3S0ZuMzBJWnB0Y0l2MEIwQy9QcHltZVFYSGg0Z3VJalFEWVNDMzBncUJMYVlZcEVMdVlCOHlvUDQrQzBvaGVBdGJDM0pyeEYreE1jdkx5SkNRUnovVm9JVENwL3dQRnhMS0JrRUo3VVA1eEdLaHVSK2hJTGxhUlBZa2R3UjRXOFVPWkllYnBJY3YrOEtTWTRlNGxmMWc2VDJjOExmQVlLQ1BFaEc4cDJZaC8yTS91RVZ5Q2R5bjllL1FYSXlJdjhRd1VuL0tJVnc3a004bURXY2VmRDNYRkRId3dBb2QxckMyWk9IWCtBNlNmbWFwUXJLYldUdXBKN3c0ekU2LzhEdmJkZkkvSzkxanlGNENzazdZQ1pOL0RySVk3czNZUnp6VUxtWW44cUZYakJGUm5MTU9ZdlVOaEg2TE53RDBDV1EzMk1wTEQ4WkM0OE5PZkQweUFIblFjcEllakd5MGhKcUxKVFhrRjdYNE5iUUFyL1lkUEp1WUFxMkRqV3JteUYwL0tiY1NXUmNBemtQL1VobWk5K1RmaVQ5L1VhMGdYWGNRYVJmZzF2UTdtVE9uUStMQ0o2Q2N6d080R1RtN0dpWWgzZUQ5RktCcGFMUGtqcWlJVjRKbmgrUmNDeHZQNlpqL1ZGR2Jvd1VJazhPa1JPL1BWNERPbzh5V3BUU2xYUU5xVHVEMnhPNTc1RlozY010ZVRmb0JweVRYdTd4SXpBT09iWXBuT1hwTEd4dFBCODZrOWdWWS9PSTdWYmpzVW1mVFlKUWJDTXlqMXc4RHlxWGpPSkE1TmpPU2trb1JvTGJZQnkxWU4xUlRXU1dXbUpGVnE5anNOU1dtYlNFVnZaNEV1MUEydWFRbWxXMEhTazNnWHk0dmhycTdRZ1dDWmdOWHAvRTdpMGszMDdtaFVjQlRXTXIwdTVFa2xsNEhHZ0RjNlNJWDRKdGVlZ1hMQTFGV2hQWk8xbE5ZcnRUc2NTbllnbHV4TnlnMjgzNHpadkZvTjBCVm5MQTZyRyt5Y2hqK1VxaSt6SEUwcUU5M2taVms3NndObUwvT0VaMDJJSkhzbFNSdFdEQVZtQnRKQ2pINDBIL09NL0ZrbHNZaWY5aW42aGdmUnRtZ2IwZGYxYUdlOGVqMWhHZmFDRjZoWnhlUlB6bUVwR3BEZU8wTzJ2eFA3WVJXYmZoT1pNWlNyRVBnYXpiTVoyTXRRYkx3R01FcnlJeC9GQnc3Y0dRUHRrZjl0Q3B3K2pmNC90WC9IL0M5MmZqL1V2NE4vckRieGJyRUkycTZIVElGZi9YM2l3YTBYanlXcEZFWGl1U3lXdEZDbm10U01XdktzSW1sQWZDblRGTDV3a0V5d0s4QnFrZDhEdGNIZjRJbzd1UGwrWkRFcEhWZ21nRkpQQTFXZ2ZRQU1tSGcvNlFSbkVRcDdHUVlIWFRFUUNqT1I3d1RqcWUxRkgwTEk0bmhmQ3hDZUlEbmNQUjUzRndFYVJDczFRTXFRelNha2pyZ0w4S1lBMmtyV2J5cXN4U0xTZnZia2oxZ0RkeXFabEFpa3M5OUVmeDF0NUVnV1AxSkpibkxNZHp3YXpOeVg3dHpmdnJTMWZNK3IvQkpmTnhiM1A0dlFIdCt2aGdIVk4rLzkrZU45RERjNzBualg1bmo4ZWVPc0RuOE41Q3ozaTRrM3ovRC9ZQS9FMC93dk1rWGgzOEdaRFQvRTcrNzQvVWorbXQ1ek5qbUtlWVFDYm9FWjZuZW5rRXpId21rOGxtbm1GeUNSZU9xMGtjRi9nOGN1Y0Y4c2J4SW5ueHZFVzh4WHdoWDhSL2pyK00vNEQvR3g2YjM4MS9LRUFDcW1jY0pwZ0pZVktZVk5KbkZ0c3I4enBUeFd4ZzNyUWJheGZZT3lwNUpVVTM2T3IveDE1SktlU0d2MHZObThpTDRFM2lSZUZ2Uy9PbldmeGgwVzN4MEJKWlVwYTBKYytTYnltd3RMQzB0TFN5RkZxSzhQZC84WGQzR1RzbWpwbkt4RFBUOERkdG1VN3l2ZGNGTUt2TlptazdnUlN2RHVCK1NQZ3Mwc1RWdFVBNlljWUxNWUVIOFk0SHNZNEhzWTRIc1E3T25JZ0hjWTdYelVJK3hEaStpSU00UWF6akswRERFRVA0T283M0FaUU5wSTdpKzNBOC9vU1BUYU9BUHBhamorSWd4RFU0RmZVbGlJVmdEOFNIK01jSEQ0V1ZpUGdROC9pTHpPUnQ3MHY4UWxaZVBxd1FQc1E5L21vdXJTT1E0bElQL2ZGNEZZZlhtTlZ0N2NkbjNxNHYxWnIxczV0TDV2M1hjM2pqZ0haOWZHNG9Bc1doT1dnZXlrZkxVQmxhaXphZzdXZ3Zha1F0NkJTNkFHdTdBM1ZTZk1xR2NxQjBFTk9HVTJIVWRDcUZ5cUlLcVZKcURWVkZiYVoyVVBWVUszVUIwWFFUZlp3K1JXT3NuajVIdDlBWEFkc0IrSG02QmJETmRETjlFdUkwVFZjQmZwTGVDOWdhdW80K1J1OEhyQlR3Q3ZvWVlJWDBCcnFjYmtJOHVoRmF0QUxuV2RKbkNwMEZQTXNBbTA0WEFIOFJZRkdBejZIWEFCWktwOUZ4ZERsZ293R1BvT01BODZPajZTRFkwV2c0S2Z2UkFYUVFZS3ZwTWJRUEhVd3dEYTJIL1pHbVMyZ3ZXa21iQU11aFJYQUtWUUtXUml0b0M5aVphS3FkenFHNmFBdkFydENaMUIzYUN2SHBkSkFsSDZRb29vZkRlRUZBWVV1bElQbGFHQTNXT3B3Z0c2bG02Z1QwVlFiNk9VQ2RoQmtCTDVTNmFUN3MxelJkUkcyZ1M2bGF3SXFwYlVEZkFWZ21WVWFYVUpXQVpWSHJnQU5pQngxUDVkT0ZWQWxna1ZRUm5VdVZJajUxRGVUS2dsYjUxRjY2QUk0Mi9GNkpTcWxOMURib2kwOG4wRWxBeWFLandGSVYxSWIvYi9lanYzMy81WldRTTN3a3hKOFM3Z1laQytWUXhONTMyUnNjUlUzZzdzSndaNEpkSG5QQlNZREMzOXk1UnM3ZUUzQXV1SUR2UFlJTGJEdU04MXBKYSs1R2gvdmdsZUErVURmQklDS2hMand5ZTN2RHVXVW1QdlZiWnVKMmdoWUwyS01FRld4L2NCdWhyQ3J4VGNLeUduTmFsT0libmtDR2J4NzhLN2dWVDB0dUlleDlHdC9TZUx3YmVIYW9oclF2d2lPUk8wVTZ6SkVpZFJTMTNJTGNsa20rQStkRUEzZ3VMV1FXTFVUKzBUQnFFWkdzaUVoMmdValdTQ1Ryd3BJSkdvSHpjV2Z3Z1hlQXg5MGg4TTZzTk51LzhVNUs4NVl4Mk1JOC9qVFliMmFUWFJYTHNvekdkOHNFMkZYRGVSTmdWMTNLZTVaWHlGdkdlNTYzQXUrcnNLc204R2ZDcnZvTTdLWThBVjhnRUZqQWppb1NpQVdNd0FidnFnSTU3S2RKb21SUmlpaFZORmVVTHNxQW5iVlM5THFvU3ZRRzdLNy9GQjBRTllnT3dnNXJ3Vmd5Vm95UUVURmkyR25uTUlsTUV1eXlXNWgzbUczTWR1WTlwaFoyMjEzTUhtWXZzNC81Z0tsblBtUWFtSU5NSTlOaUxZTDlOc3J1YWJ0b3V4aTdLWFp4ZGxQdDR1Mm0yVTIzbTJHSHY2RXo3WDhzKzM4aWRRS2NjZDNOa3BHRGZwQUNPSHdNcEdBekhqajEwRkdRNGlEaDluRHVnanNZZm9kZ1lUNmtBZzdpQkk1QTR4ZUVjcTQrbmFQaHRKYXJ3Nm1Tby9WQS9HcXcyU3pCT1lTR013anNNWWh1Z0FSbkVOaU4rdVJLTWtzbk9IaUdTK2ZOY1BOMHlTemhNcHhaNlBZLzRUVlBkemo0Z0VzRDY3c0hsUHQ0cGxGcnFVcEkxWkEyVTlzQjFsSDdxUWFxaVdxaFRsQm5vSHdlOGt0NFY2RHVRR29IdkoxNkFLa2JhSmZ3RDgwbjlaZklEcWVnVmJTT05zQk82QTgvbytpeDFINnlhMFpUbFhROFBRdjIybm13Rnk2Q3ZiZ1lmc3BncjF3SHUzWU52Wld1N2YwcHBuY0RWejNacGV2SlBsMFBQeW1RemdMZmhRRzdqZmsrOC9kM21MKzF0N0M3aXRsTzhuZjJrRWQzajBkdk1IOTZkOEczRnBBZmY5TVZ2NkZoUEpiMDAwaHcvSFpUUS9JTzh1N1RnYU10NVBqN1pzZ1M3eE1wcEcwNVc0dWpKMEtrQjBSYUlmSmloaXgwSkc4ak9aL2tUU1RIYmRzczhQZk51aXlmSS9nV25GdHV4Rzl3bHZnYnBVTEJ1emkzeUlaOHJ3WFcwdWNXSTRrTWtXVEVMd2orRE1sZndUcy95UkdONTRLb1MyU21MUVF2SkRpUmgxcERlSW9Jam1XZWlOL0RFSDVCeEpSWkpEZVNuTXpDZ3Z3dFV2cHRRaUd6b0o4aWVUREpHMGorS2FrTklSRWQzK2Jta1hIdGVRVzg1L2k1QW10ODV4R2xpVDVrR01hYVNZYmJ6VmJtWGVaOVpnZXprOW5ON0dmK3lSeXcxZHRoemNuK3NvVTVyejNNQjA3cUNFN0FDRTdwY0R2RGV5SkNjT0pHY0tKR2NEcEdjSEtHTXpCQ3pRTlNxMWxxTm9NOTZTU2NRSmJBU2JvRXJVSnJVQVdjcGplaGJmQ3pBODdVQjlCaGRBenk0K1RuRk9vNWdiR25MdTRzeFo2VHpFOUloSWM5OFR6bWZNT2Vac2dKNWtKM0NjblBrSno4RFZueURvKzYvVW11SmJtQzVQaWR0cVBiaS9RY1J5aVZCTGNnZUE3Sno1QzhoT1J1eEQ3eGlFZXQ0d1hoMzZpajM4R1IxV0szUlF2aWs5OVJkQ0svbzZnbHY2UG9hbkhONGpma1EzNy9NSWo4L21HbzhJcndKb29SYlJOdFJ6UEk3NExPRXU4UTc0ZmJONDM4a1I3dStRZ0ZvNW13N3llaDVVQlpDVCt4b01GWDBSU3d6VVkwRmF5ekZVMEQrOVNoNmVpZm9NWFpvTXN2VVNLNmhINUF6NkRycUIwdFJ2ZlJRL1FjUlZOZTZFVXFnQnFGNnFoZ2FnWGFRNzFFclVWM3lXOFMvMDRmb0EraWgzQkwrWXJpMFZmb201U1E3dVpSMUNBZXd4dEV5ZmtPZkVmS2lUK0NIMENwQmI2Q1VaU3o0RWxCS09VcG1DaUlwSVlLbmhiTW9VWUlrZ1hMcVBHQ0Z3V3JxV1RCcTRMdDFIekJUa0VMOVlLbHRlVlQxRnVXNHl5RHFWT1dvWmFoMUJuTGlaWXpxQzh0VXl4VHFHdVdHWlp2VTljdHQxbStTK3NzYXkzZnAvV1dlNnhzYVhmOG03ajBDdUhId2hhNlJQaXA4Q1JkS25wVHRKVXVGL1BGZm5TRitGVnhOZjJSdUY1Y1Q1OFdIeEFmcHMrSVB4Wi9USDhqYmhXM1FvU2RqNUFFN2xpU3F3RGJJSFZBdWcrcEN5RXBEY2tLa2cwa0dTUWxKQzBrZHk3Qm5pMzE0NkFWQjlsRVNRTVFMUjNEcFdBQ2tYUkNMLzdYS1FwUzNOL2dTNEFFMXBlbWMvM0RPVUFLKzc2MGdKTVo5bkpwS1ZkWDNxOHRLK2RhSW5jZnJYSkFxdjRQMG1adVhOenZka2gxa09CdUtvVnpnN1RKYkt5VzNzU1dzYndudUhTR1MzQjJrRjZDZWpnYlNOc0IzcUcvbFV5UVJFbmlKQW1TSkVtNkpFdVNMeWtBdkFqd1VrbTVaQzNVVmtKdHRXU3paTHVrVHJKZjBpQnBrclJJVGtqT1NNNUxMa211U2RvbGR5UVBKTjFTdmxRa3RaTXFKSFZTRmZCVVMzWEFueUExUUcyMTFJZmcvcEowNlNqcFdHbW81SUUwUXNvSHptaHBQTkNqcGJPa0tkSjUwaHpBRjhHNENkSkNvSXlTRmt2THBLdWw2NlJWMGhycFZtbXRkTGUwWHRvb2JaYTJTazlLejBvdkFINUZla042VzNwUDJpbERNZ3NaSTVQSUhHUWFtWjdrWGpLVGJEaWhqQVpLa0N4TUZpbUxsVTJYelpHbHlUS2xqYkpjMlJMWk1sbUpiSlZzamF4Q3RnRjROc20yU2F0a08yUjdaUWRraDJYSGdPZTQ3SlRzbk95aTdLcXNUZFlodXkvcmt0TnlLN21OWENaWHlyVnlkN2xSRWdlNUgrUUI4akh5WVBrRWVaUmtyVHhPbmlCcGtDZkoweVhiNVZueWZHbTh2RUJlSkM4ZGtKY1B5TmZLSytYVjhzM3ljbW5qWS9MdDhqcVpIdkw5Skcvb3padms1Ykk1aitGditaTit6R3RQeU0vSXo4c3Z5YS9KMitWMzVBOUEybTRGWHlGUzJDa1VDcFZDcHpBb2ZCVCtpbEdTT01qSHdoeVRGS0dTN1lvSVJiUWlYakZMa2FLWXA4Z0J5VzBVaXhSZ0wwV3hvZ3c0VjJNTkFQODZ3S3NVTllCWEtiWkNYcXZZTFRrQmVUM2tqWXBteUZzVkp5RS9xN2dBZlY1UjNJRDhyT0kyNVBjVW5kSjR4VDE3UkhJTGFidzlZeStSNmUwZDdEWDJlbnN2ZTVQOWNQdlI5a0hTVVBzdyswajdXUHZwaWtMN09mWnA5cG15THZ0Yyt5V1NkUGtKKzJVd3V3bjJKU0FWa2RCK2xmMGErd3I3RGZhYjdMZlo3N0RmSzlsdWY4RCtzUDB4UmF2OWNja0o2U2o3VS9ibjdDL2FYNVd0c1crejc3Qy9iOS9sUUR0WU9kallkempJSEpTQWF4M2NIWXdPZmc0QkRtTWNnaDBtT0VRNXhEa2tPQ1E1cER0a09lUTdGRGdVT1pRNmxEdXNkYWgwcUhiWTdMRGRvYzVodjBPRFE1TkRpOE1KaHpNTzV4MHVPVnh6YUhlNDQvREFvZHVSTCtVN2loenRaSHBIaGFNS2NKMmpBWEFmUjMvQVJ6bU9kUXgxakZBVU9rWTd4anZPa3MzaDhCVEhlWURuT0M2U2JKZldPQlpLR3gyTEZZV1NkTWN5eDlYUXRnZGZCMW9hN1ZnbERYV3NjZHdxclhLc2RkenRXTy9ZNk5qczJBcmo3b2IrVHpxZWxSMXd2QUQyaW5lODRuakQ4YmJqUFlKM0twRzBFZHJ1bHBZcExaU01YS3VVRU54QnFRRmNyL1JTbXBURGxhT1ZRY293WmFReVZ1NnVuQzZKVTg1UnBpa3psYm1LUXVVUzVUSmxpWEtWY2czQks1UWJBTitrM0NaWkt6TXBkMGdibFhzeHJqeWdQQXo0TVE0L0R2Z3A1VG5KZG1oN1VZYkF1d29CdjZwc2t5RmxoNkpRSHF5OHIreVNJU2RhVVNocmM3SnlzcEZKbkdRRVZ6cHBBWGQzTWpyNU9RVTRqWkhwbllLZEpqaEZPY1U1SlFDZTVKUU9lSUJURnVENVRnVk9SVElIcDFMSFZxZHlwN1ZPbFU3VlRwdGxYazdiRllWT2RkRFBmbm0xVTRQVGZ1aXRTZEx0V08vVTRuVEM2WXpUZWFpOTVIVE5xZDNwanFTTzRBK2N1cDN1Z0grQ2hDcStTaVJ0Qkk4RlhHWlMyVWtiVlFxVlNxVlRHVlErVG1kVS9xcFIwbERWV0ZXb2Zhd2owS1Y4VllRcXVrZm5Ua3BWUExRbE9vZTJzOENPaEs0OG9FcVJOckxqNHNnanIxYk5VK1ZJYzFTTFZEQmYrUVM4dmxURnFqSzVqV09aQ2l5dVdxZXFndG9hMVZaWm02cFd0WnZnOVFSdkpLMHd2Vm5WS3AxbG42WTZxVHFydXFDNkFpdkxUblVEcEwydHVpZU5WM1dxd2VKcUN6V2pscWdkMUJxMVhsR3M5cExFcVUzcTRlclI2aUIxbURwU0hhdWVycDZqV0sxT2s2eVYxcWd6c1IzVnVaSzFqdkVZVnk5Ukw1T2NVSmVvVjBHK1JsMmgzdURVb3Q2azNxYmVvZDZyUHFDd1V4OVdIMU1mVjUvQ0hxcytwNzdvWkZRVXFxK3EyOVFkNnZ2cUxwQU52RTVEU3hzMVZob2J0VVFqMHlqbE5ocXR4bDJTYnArbU1lS29vdkdUcEdzQ05HUGtObmkvY0t6SGtkbXhWUk9zbVNEWnJvblN4RWtiOFE2bFNjQjdnYnhhTWtHVHBFblhaR255TlFXYUlrMnBsSzhwbDAyWDFtcldhaW8xMVpyTm11MmFPc2Rhelg1TmcyT25iTHFtU2RPaU9TR0owNXpSbkplZTFGelNYQU1aem1qYU5YYzBEelRkem54bmtiT2RzMEpqNWF4eTFqbW1PQnVjN21ndU9mczQrenVQY2g3ckhPb2M0Unp0SE84OHl6bkZlUjdnT2VwSTUwWE9oZW81Y25mWVBlT2NpNTNMcExjVlo1MVhnejlYT0s4RDM4NXlyb0lkWWJOempVeml2Tlc1MW5tM2M3MXpvM096NHozblZrbUQ4MG5ucytDQlJ1Y0w2cXZPVjV4dk9OOVcxVGkzT3QrRGNUdlZ4N1J3ZUZWdjBESmFpWHFieWgvNDd6aFpxVHRrRXBDdFZldWcxV2oxV2krTmxkYWtkWEFlcGRXcjlkcmgydEhhSUtjV2JaaDZtelpTRzZ1ZHJwMmpUUU04MDlFZmNFYWJxOTZtS2RjdTBTNER2RVM3U3J0R2RVVmJvZDJnM1NTTDFHN1Q3Z0I4ci9ZQTRJZTF4N1RIdGFlMDU3UVhIUzlvcjBvYUhPTzFiYkk1Mmc3dGZlZmRLcjYyUzMzZmhkYWNjTEZ5c1hHUnVTaWR6cnRvMVZkZDNGMk02bU11Zmk0Qmtqc3VZMXlDWFNhNFJMbkVBWjdna3VReVFUN0JKVjJTN3BMbGtpL1RhenRjQ3B4M3V4UzVsTHFVUTl1MUxwVXUxUzZiWGJZRGY1MDAxR1cvUzROTGswdUx5d21YTXk3blhTNjVYSE5wZDduajhzQ2xXOGQzYVZMNUU1NXVuWWpnZDF6TzZPeDBDcGRyRHQwNldIRTZuYzZnODNHczFmbnJSdW5HeW1KMW9ZNjFMbHBOZ3k1Q0Y2MkxCL29zVE5lbDZPWTVuWGV1VWwvVjVXaVU2bU82UmJwQ1hiSHpJbDJaK3I1dXRXNGQwS3QwTmVyN2lrVzZyWkowWGExdXQxeXJzZExWYXgxMGpib3lYYk91VlhjU3J6dmRXVm1iN29MdWl1Nkc3cmJ1clBNOVZiUHVIdkIzdXNKMVE5WHN5bUJjWTNTMTBHaGRKWkowVmJHcmc5eEc1UStucVR1NldsZUlycTU2bHp1dVhxNG0xK0d1b3gxclhZTTBEWUNIdVVZNnByakd1aWhkcDd2T2NVMXp6WFRObGJVcGNuQUVVSnRjbDZoSHV5NXpMWUhJMytrU0xLMjFYK1c2U2hicHVzYTF3cjdDZFlQckpxWEpkWnZyRHNsYTE3M3FUUGw1MXdNdUJhNkg1UUd1eHlRRnJzZGRUMEdjejNWV1NkSVZPdGR6VW9YclJkZXJybTJ1SGZKTDlub1YzL1crdkJyNjZiS3ZrTjdRMDNvcjF6VjZHNzFNRTZ4WFNyYnJ0WHAzWjUxQ3B6ZnEvZlFCZW9pNittQ2RIZXpnT3ExSmNzZnhpbjZDVEtLUDBzY0JQVUdmSk92U3ArdXo5UGxPUm4yQnZzakZSbCtxUGdiOWxNUEtEZGF2aGQ0cTlkWDZ6ZERiZG4yZGZyKzBVenZkUGxmZm9HOWl6NGZzU1V5YnFXL1JuOUNmMFovWFgzSThxYittYjlmZmNkSHFIK2k3M2ZnNkh6ZVJtNTJid2szbHBwTVV1Qm5jZk56ODNVYTVqWFVMZFl0d2kzYUxkNXZsR2lRdGMwdHhtd2ZudEJhM0hEaFp0Ymd0a2xjcmx6a2JsS3ZjQ3QySzNjcmNWcnV0YzZ0eXEzSGI2bGJydHR1dDNxM1JyZG10MWUyazIxbTNDMjVYM0c2NDNYYTc1OWJwanR3dDNCbDNpYnVEdThaZDcrN2xibEtmY2gvT25mcklXWTQ5MWJpUGxqZTRCM0duUHZhVXhaNzlDTTZlVjkzRDVOZmNJOTFqOFNtTFBWR3paMWYzNmU1ejhON25uZ1o0SnB5b0c5eHo4ZGtWbjZMZGwrRHpLc2lmNUQ3SGZRbnVUVjd0dnN5OXhIMlYreHIzQ3ZjTjdwdmN0N252Y04vcmZzQ3QxdjJ3K3pHM1J2Zmo3cWZjVG1xMzRUN2R6K0UrSlhWdUVHZUE3NkpibFhzbU9aMnk1MFp5Z25XL0tpOVNYK1R3TnNCSHMrZFk5dzR5Q3hhL2ozRkZyYndPWnJwSjNtQS9uSnQxRjhiWldYUDhMRTc0bFh0aGwxenJRWHRZeWZRY2JvTnhWak1jUDRzVGZnK1poOUpENitIdVlmVHc4d2hRRkhxTVlmZDlqMkNWQ3RwTzhJanlpUE5JOEZBNjNzYTNBNDhrZkE3M1NHZHRRV1l4V3A3a2tZVWxnY2pmNkpHUDd4RWVCWTQzNURZZVJabzQ5V2lQVW85eTZLSFVZNjFIbk16a1VRazgxWm80L1dhUHpabzRaYWFLNzdFZC9QKzR5MXJZbGNqK29vbnlxQU9lL1pvNHg5czl1VWRETDk3azBlSnh3dlc0NW9TOEd1aG5QTTV6OUV1YU9JOXJIdTBlRUs5d1AvSnFhWTFISmN6aUFlUnJISFVlM1RLOWdXOFFHZXh3RHJqQ29ETG9EQWFEajhIZnFjVXd5akRXRUdxSWtDMHpSQnZpRGJPNFBNVXd6NUJqV09UVWJTajBLRFVVdTB6QVBjTXVRT1EwbEJsZ3J6R3NNMVFaYWh6akRWdWQ3aGhxRGJ0MVBvWjZRNlBPUjczSjBHeG9OWncwTkR1ZE1aeDBLWVgrenhvdXdMaFhERGNNT2syVTRUYmJqMHhpV0FUNU1zTTlRNmNuOHJSd1BPdSt3NVB4bEhnNk9DbzhOWTZ0bm5wUEwwK1Q1M0JkdE9kb1RaUm5rTFRSTTh3elVsckxhczh6MW5PNjV4elBOTTlNV1p0bnJ1Y1N3SmRwNGp4TGNNK2VxMEEvNVo1clBDc0EzK0M1aWVUYlBIZDQ3blhzOUR3QTQ5WjdIdlk4NW5sY0UrZDBSOW5oZVFydjc1N25lbVlIK0VVWTY2cG5tMmVINTMzUExpOGFXODNMeXN2R1MrYWxkTEh4MG5xNWV4bTkvSEJ2WGdFeWlkY1lyMkN2Q1pKMnJ5aXZPTUFUdkpLODByMnl2UEs5Q3J5S1pNdThTcjNLdmRaNlZYcFZlMjMyMnU1VjU3WGZxOEdyeWF2Ri9yaXl6ZXVFdk1uWnp1dU0xM212UzE3WHZOcTk3bmc5d0xuTXl6RmUydXJWN2MzM0ZxbTM0VnVrdDUwcXdsdWh2dWl0OHRaNUcwanU0KzN2UGNwN3JIZW9kNFIzdEhlODl5enZGTzk1M2puZWk3d0x2WXU5eTlnN3N2ZHE3M1hlVlRpK2VkZGc3L1hlcWpualhXdXY1MjY0N04yVzNHcjczVmpadXlxNXBYcnY5cTd2ZjFkbGI2UGVqZDdOVG5lOFc3MVBlcC8xdnVCOXhmdUc5MjN2ZTk2ZFJtUzBNREpHaWRFQldwRitqQnFqWGxwcjlES2FqTVB4dU1iUmVGelpHanl1TVlpN1RjUGRXVjZONzg1T1o3QWt4akFzaWRPZFBrbUFEaks0eGJQZWdtL0tidkg0anN6ZWpvMlIrT1lPRkhLL3hqWXl0T0lZYUl6RmE4UTRuYzNacUlodjY3ZzNhWDF2YitRTWJKeGpURE8wR2pPTnVaSkwzT3NFKzJKQTNpdU1TeVRseG1YR0V1TXE0eHIyTFlLOTlSc3JqQnVNbTR6YmpEdU1lOWszQjFadjdLc0NlMzgzSGpBZU5oNWpMV0k4RG5PTVluSHV2UUphT2V1TXA0em5qQmVOVjQxdHhnN2pmV09Ydlg0d1BkaHFzQTJpcUduOGplVDdtVmNnWDR6ZjN5a2plWVczWmQvaStmamZnckcxQ09sN25lZWZJUG1WbnM4Skh1N2o2SFVraDk1UUJzazFMSVc4b2RyaS9PSFBoTTYrcDRwWUNzbnZjeStzTXZJdWp6OEoxckNmS0FndUVFbElLLzYzaERLQzRPTkJ6aW5jaVBuUXcxTHVrNFBwSko5SVJweEk4TkZrWFBMaXl6OEFyWTdpR1VFZWh5ZzZHTGVsN3BIOFdkUUplUXorWGd0ZGhLNUJYbTNoZ0NpZWw2QVQ0eUFwUmUvR0ZMNG5mbk9uZDJNS1QwRW9Hd21uNHVGMXdPdnc1eE4wQTZIUHdaODMwQTJZa3g5Z2tZdy9MeWIwZHNLdnhmejBiWTd5RnNZeEo2WEdGR29XNXFmVVpCU2E4RWNUeW5FaXlWMU1FY2dzaGdPK2psQVdFWjVXTXZvaTBpcUI4RFNTVDU2amlReS9ZNXgvUXZBalVHN2hXZkRiTVQ5ZmlTbjBPaUpKQkpuZE9qS1hEZVF6WjJTeG5NaUdwZDFHZXY0Y2Mxb093M1RlNTZUbkUxZzI0SVNjbjRwenVvaElGWTd0d3R0RWZLeWI5QkJzNFVIazNBbDRKa3ZCdGJ3U3pFa0hZd3JWVFhodVlLK2pWUnhQSFI2THY0SjhjaDVDTkl5MUlTU2p1T08yZkNYL2QvSU41VEF5Q3ArTThobnBFM2pRajBTcmE3QTEwWStFc29UbHhCVGd4Tll2Sk9PbVlVOFRkR0kvNXlXUS9rZVJXVnpFTXRDakNDV1lvNndnUFloZ2RESEI0OWsrY1EvOEFKelRLa3loTm1NUDVEa1IrYnZKZkJjUzczMklOVTgxQ1dySTkrN1ptYTRndmVHMkV0THFGbG1WM1dUYzd6QU9zdUhhLzhQZXQ0QlhWVno3ejU3WlorOXpUczRyVDJMRU5DS05HQ21OU0JHUlVrb2pBa1dNTWNRSWlJaUlpQ25GaUJTUlVvcElJNlUwSXFXVVN5a2lsMHU1bENJaXBaU0xrZXROS1UwUmtWSktLVkpLS1VWRUxxVVVNU2IvdFg0ejUrVGs1SUJCd0VmLzk5dmZQUGJhYTlhc05iUG11ZWZ4QmlCcHpDZmhjK3A1QWZHQ1FqZHc2d1UvYVNhRkNWTXE0Q3h5aTVCVDFkRE1IMEdUT1FmN1FEZXlFR29OLytXeUQyak5kRC9IWC9sL21NcmpzSjZKeU9WajhGOEduSDU2alFQdk01RDlvQlh0NFMveURETHI0c2x2Y3FjMCtqOVBsbU5md2tsZ1ZzRHVEbmdSY3JrY0dqdWM2d1JaRHAyOGh2UElmWmh6MXI0RzJwakhtSjdmSVBhVlhHODRTN0VTZjVKT1R3NXJEMEJxRkRWeW5nYWdwZU05YzduR0F6K0wzRHV3VXVOSFhINzVYNkJua1BNSFRsVXVYKzVES0NrcFRFMXQ1WFIyMjBBYnQ0SytGOXl1WVFvVTZtcFFtNHBVL1FOcktmLy9zMU40alRuNTcwQjZjdXluZE9ubUZKWXpuWGNnNlR1QUZBRlNCLzhkckxFY2x0TDhEb1Q2TC9oSHdGOE5HMlVUc2QvQUVNOUkyQjNZRm05Q2M2cWhtVzJoNTRjOVQ2Tk0vUy9TMzRjU3dYKzZqa01yNXZLNkVpckxYWGxOTkg5VmozSTZXL3NoNmVQOFZUNnVkWXh4N0JUc3hGZ0RpZjdJRUxXUFU1djBnV1YvQS9EVjNGTEk1eERxQWVSbWUwQWU0SlJYUTkzZUJHbHd2c3o1RGc2WGUxenlmN3FCYS9pVFROTWpVS2ZWb2h3MW9Od2Q1dHBiRmJnZEtleEwvTTlWT1kzSG9JRUI4Zy8zM0ViK1hvMy9KSC9Zdll2c2JQYkxUM3VZaHlIYzRzaCtuamNJZnR4VERsM2xyeXZkWW9LOHd6V2VYQUJJa2Vjd1FTbzkxNUsvRTBJdGNESVI2aWJ5ZjZXUnRGcmVZUE1hbngveFNiV3lwT0YzWFBkeWpIWUd0R0lUNlBSaU9wUldYQmVWQUZMQzh0cHpQTjhuLzRzNmRxZVFJSzk1ZUlYMmMzektEVkZlUnhCcFp5QTFWakExNVB0UEhHb3I1UzgxWlVlQmNoZVdBaHhPNER4U1cvRzMrMDNrVjF0b3lBVFdUUHNXL0R0L1U5ZndhTmNtSUplM2N2MGpGa01mVHFMTlhZejgyZzRLMjNVZGlMcnhWZWhQZCtSMVBVdEUyc2hya1o0Ry9XdVlqcHpKRUdzMDJxYnRxT2VQc1UwbEt4dDFPNGQ5eHZNSVl1OEtPSmVhQ1p5L1ZCOCtEUjRHWVpjSklGeTYxZVdhRHNwTEliU29HK3FLUXQyR2NpbWpHb09wbFlHSGdFTjZwWFpDUCtkeTZaQUsycldUNndlVng3V2NaekU0TEVlYit4cGF6MUhnOEh2UXpNdFJ3N3pMYXliVTVhak5Eb0RQYXprc3BUbXZwcjRXZFVLQXVWSUJjSklQT3ZYZ050OTg1ZGp6VWEvV0k5UkcxS1VaU0xIN2RXOEI2VnlFZXVaK2hLMUZlYjhmTldjZTF5ZVV3cFdJZHhPb25VR3J2UmkxSDB1Uno3VUVwUWwvZllQeFpSRnFubHVjRUVxaUQvUTFieG1vV3pqR1k2aUZzblg3Q0gxWXc3RmI3ZHg4emp1dTdhMTI1dXRlMU5XYjhKVWxlcEsvVW9uem9jY0N6ZEV0TE1ycFNjZ3JVUk0rd1pKU3YrV3ZxSE95dWZaQWYrTWcvQWVSMnE5eUcwcHQzMUZveGMzUTBxdlJNa0pqVVVzZmc2VEg0Ty9PK0txZWUyNnl1NFp3bTBodDVYaVVYSjNhZkNiMVcyeFRIWFUxVG56bVU0Q2xhWkc1SnJuUnZoOGE4akRYbWZ5VjZqM1c4eVhZSWRTSXZMaVcrNXhFUitmNzA2amxOakhQSE1yOUxyVGlEZlMxOWtJS0w5TDVMYlJaVDhML0ttc0lZWFlGSnRkcHFKa0pYb0ZWZnVpbm9XWDVMdEprRGNwVUgzRHlGdHA2YjhPdHlPdWwxTHAxaGVZOHdacE1mZFNPMEkwZlFlcE5xRlg2QUg0elVwWEx3bkt6SjRra1VuM1JEdVl6UkQyUEZyd2Z5dVB6U1BsKzBPR040TkFQZmZnMXdoYWgvRjVqcDVEL2JvWlFEVitLOG40RC9KWFFxSWRSMjl3TWZiZ2FPZkl1L0tYWVE4YTZjUVYyMkczbXNrOTVPZzRTOGNySG4rcFN5UkQ3RnZVVzhoUmYzVVhvYWZSQzc0NXJ4ZTY2dkJ1dUxrTmJnRDRZSU1ldzR2SXcycGMxa0dJUXBQQUM4eTN1VFZIYVBvelMxdzc5eVpmUVl2cUFjd2FRMWVEcVBxeXZYSXhZV0l0cW9GY2JvYXVIVVhjdGd0YjFRNm8reitNUjJRK1FDZTQ5R0JFd3pRcmsrSk9vbDU0RnRTZkI1eDJvZGQ5Q1h0d0JxWjlGdlRxaFlTVmtZWHNSK0x3Qi9MZlZOUnRvTG9kY043Q3VVbmxuL1d3TG1zdVJramR3alVFNXZoTDFwSzZsbVVJaFErZ3J5Z0trMk1mVUNQSTA4RWVoN3VKWWNuUjkwakNVY3g5eFhZYlMrbXRBN21iWlNSTnlvQWxETVhLNUdxbWs0ZGZ3bWxhdTMrUno2SlZ0Z2c3djQ3eWovb2tQdWZNdXl2NTlTUG1yVVFNdy8xOEF0NGZCNFJlZ1l6ZG95dWlUT0NnakhWQTZSbWhNYU93SWNQVUd0T1V3bHhUU3Q2N1FOeC9xa0s3bzRid0pxVG1XSzQyMnM4NWNpVmo2b0ovNU1PQmJrYk1QUTB1ckVYc0YydE8za0lZVldMUHpwbnMzMXhqNks3UjlxUm5SZEFBTzhXTzl6VEdTaHBOZjNjbjVxTzQwSXpMQ2QzeDZaTUU5UGVkcXhEdUtiYWNVdWpjVS9wdEI4MDdJTllxcE9kbXNnV3FvNGJrcmRIVWJVcEx6NkJIZE9xTTJPd2lKRGtJSHVxUEdXd0w5N0E0ZHVBeGExRjNYWUp4ZlZQdE5SYTlQOTdmUmkwTWVsU1BGNXFMWHNZM0xDMzMxNGVzZkFia2FhNWs1Ujk3VCtZdFJUSC9VVis5aFROMGZ1djB1MHY4WXgwNWZtZWMzTUI3c3p4RHF2ekdkdDFGUFRrY092bzB5WGd0dC9DUDBvUmFjcEdGbjV4TFVRbW1BVEVBYjk2enVQMkRrK0Rhbkt2VmF6NkFPZnhPVTBkOEF6MGVoRCszUU8rMkhsbTQwaHlJTng2Z1orZHNJZm9ZWlAwdFh6anhiSFpGNmZxUmVQNjduclZMdzBCM2wralRhbDh1QWZ4cTU5aXBxbTJPQSt3RXZRbjlwSDh0T21NeXpBbTgxcUVWSG90d3BsRWVsS1hBNzY5NEJ6VitNMXUxVnppT0NJUGNSK3h1b21kOEZ0VFRBbCtpUm94bnZaME5iU2hIdlM5QmticUVlUjF5UGc0SVhtbENqeDQvSXI1ZVFGL3RRNDNsWmFzcVhkNUZ1RGNnWGJ1c3JrVWR2b001WnpGOUppZzRZclhEZjRBRnVFYWp1ZlFUMXdIM1FnYjNna09kQW5rZXROUmU5bllYUWgzTG8zbmEwUjl1WnNsTUgvQ0sycVYzbU1jVVpVTnVEZXFNRGNtRW0rcVZUUVQrRmF5UWFnL2pRTXJLK2JjUm9jUTdHKy8vZ0dzOTVSNC9Vd05zMER1WDhpUHRqYWo1NkptK2lMMVFORGJrQ05ITXcxL1FtMnEvWElQVis4RDhkZW5nbktIUkZXdDBKTFJvRS94S2tmQTZQVUR5eldEZWNWUmhUMUVLV1I2RDVKNEUvRWluZkYxSlVRQzQvMnZRMWpWTXdqOFFwVUlIZWFTKzA1dE9ocFRQUnl1UmpwVzhqL0U5Q3JpZUJPUm9wdVFZcDhBRDdTZWM1cmZhZ3pzOUNuWHdHa0pmeDlWM1ViQytqcHpvSnRWTlhhTkVrVUd2dzdPRDhSYitvQVhITkJmMDAwK285aXo3QW01aEo0SFRiaFhtR1c3Ri9lcGZ1RDNOYlRLbXhHbXNoU2J2YzA3eEMxL2VLczR2OUhBdjFmeWg5dlBYY1UzVXhhK1NVTXNUZHpoQ25GRGdWQmtLMjA4dWtOczlOcllBOUNMdzlqblFHRHVrMlFielRRWGtmd21MMndMa0xGRGJEdm90eFBMbWdrSXV4eGlHOUc0Tmo5QlJ6ajlwVGpIcDdKV2FUOG5oZHIwYzR0MEUzdUJ3ZFl3aTFVQVBSZTJFZXJtVS90YUdWN0VjL2N4ZlRwN3pqTk55RldMQVdtVnJiWGtpVHZwd09yRG1VSnZkeENuQWFldXU1WEZDTDhDeExyWHMrbUozTFFYKytIeWowUTUxY0JIOFIxakVmWjV2YW82NFl2NnlBdngxNjVyM1F0aklQSjNIcVFMWHU1L0E4aVQ3YlFKN0dxQUU1UWoxQXBqa1EvYTRCME1PQnlNMUN3S2MyOGt5T1lwdGFBWWFzY2RPNHJ0QzhvY1lleUxaZHh1MFJ0Y3ZjY20xRkxYb1NYNi9GMTJ1NEh2QmtZQ2Eya0NIa3Z4KzdhUmluTGNQRkdVNGY2bGR3WFZxSTlIeUh2MXJ2Nkw0VzZQd1JYOXVpM240Qm12WW1jS3JSQnBXaVhTaEZEWGxNbjVBQjNlNFB5Sk9BOU5lekUrYjhETXdJUWF0dmdUNlhNRFZxdFZtS25pZ3Bvd3prV2M1SFBRTUpubWZ5bWwrcStjZGpqUGsweXZzY2xIM204eWdrclFXRmVzUzFHYUVld0t6Z1p0VEoxM0ovbnRwSDVueS9IcWR3dlVjMlk4NWx1RGdPZnhCeklEWEl3V0dRWlR0Rzd2TVE2bTFvOGc3VURCWFlDN1ZBejl4aW5yT2pHZGR3SzNZZHhuZG4wQnBXbXRRZWoxQTZiYmxIRVVTTUd3RVA2bmxJN21mYXAvUlhqRWR5d09jUmJTT0Y5L082WmhxaGowR044UWhhYmN4R0luYzJvMVdxd2VrWG04RmJEVWE3TlRwbG9HL2RvUlcvUVgwN0gzdXYrbkNkTEQ4SDNsTEF6K2YwTEtqT1g0eHRPK29SS0hweCs5Rjdsemo5WXovS3RSOWoyUDE2SklKZVV3MXFzM3EycVQ3aEdiODcwSjlaZ1JyakhlYkhrNEZ5V21UZ1BDZXdqdXQyVHgva3dqcndVRzdHMTIraTFDekdQTzM5N0VkTGxJTzIrR25NemVhZ2ZTL1JNLzhNVVNWNnJrQzNYOUM2QU5Md3BKNTd3ZHpPY0x1V3ZrNnd1YzRacnRzc2xLbHEvSkY1RXpodEcyclFacUdHUWNudDNyQ09Vd0M5MDVuY3Z0amJlTCtIMVJHVWc0MWQ2T3RUbkE3TzNhd0Q2aW5reFZPc0c4N2Q0TzBwWFNLY3llUXZjSWF4di9FN2FFMG1vOS9DOEt4R1BSUCtJTkhmNHJtSy9ZeERZL25KK0krd2xQME1vWFprQ1hvNFhGSk9jUHRpbGFLTS9CQjk4dTY4UzhUdVpIK2U0SC9CR0cycmgvL2EvQVhjaG0wYUc5cTU5bFBzaDY2dWRrWVRuemJtYWxZanhicGlYRkJoVjdGZnoxM2dqMDgxUXdqTys0Z2ZoWDhFL0s5b1AvU3RBcHJqMHpPVGtGcnArV3J3WElpelQvWnpLRldMVU1KZWk5NVJEOVNaazlIcmNKQU9RNGh5MlB6UklJZ1NQT1BudWRjSnN4ODBielF6bVkreEgvR2U0WjAyNm1tY2xuTUdzclJEdjdFZnFGMkd2bkVEZGc4MGNqckxFYWpQaHlIR3R2Z0xrSXNZNTlzdmt2L25TRS9kdHdsZ3IzNng0RjByTnQrUjVMemc4STZISEd1UGRjZzZiTDFsSGJmKzF6cGx2U3RKVWFRalhlbVZRUm1ScVRKTFhpNnZrcCtXK2ZKcTJVRjJzVzl3UitMK21iNWtCcElweFQrM0hQS1hranRjakJJVm9wSjhpZnN6cXB2dHorQ2RHZFVpK3IreGY5eWZSdnhqbEMvckVTVDZrbk9oeXkvRFBnYjdEY3pXWDQ0MnJhYXB6YWZlY1M5b0tFT3UxU01ZMlAyMGpmYWhBZjd0Nk0vdWgvOWwyQk5nZDljNHFCVUtzSE1xZ1BNTEZ2QitUcjdwaTg4emFiYVQ0a0V4Vm5RUjQ4VFhSSGZ4bVBpbTZJMmRGRjhXcSttNVZmeWNub0hpdC9UY0pvN1FVOHo3Rk1UdDdndnVpNkxFL1puN016SEkvWVg3QzFIbS9wZTdTZHpwMXJnMTRpNjMxcTBWZzkydDdsWXh4SzF6NjhSUTkzZnVibkczKzZaN1ZOempIbk9QaVh2eFo3T084cE5UY3JmWUp3NFM5ZVBpbEtnWGRaYTB2RmJJeXJCeXJEd3JuOC9Jc0xyUlcwK3J5T292VGxuRlZwazExQnBoamJiR1d1T3RTZFpVYTRZMUN6dmZGaEdVOTcwMTMvVzJ4OXBQa0VOeHoxanJLSm14MWduck5CbmVaeDE5L05qMzVvL3VmS1B2VzdEN3JidnNwWGUrUmZlOVdUTjQ1NXUxbi9lKzhmOVpuRXp5SG1yMVd6QWE4dk9JMVg2WGF3YjdKY0R2Ui8xOEErZVRmUlF0eUUyQXY0UVc1eWEyUFhzWmg4YU1qNkNlNzRDeEFQNUhvS1J2dzUrZ01sQjQxdUJNNDlvZWN4ZlBndG9UbU45Ym9yaDJla2JWY09tRy9UempxRmZWS0dGR2pxcUc1NmtJQnljejhaalV1Z0tRdm1vZit6VS8zTzRRSnR2UHErZGg4K3pXYzR5alJqRTE2eldFZXBVcEVMVzN1TTlndnI2RjFwRGhqeXJlczd4VlBjU1NzcC9LRE1kNEU3NitxaDdGZUkzOSsvaXJVd3FlOTZrN2VTUmw0bVVLOHlEWHE2QmNyMjZFL1NqaWVoUjhQZ3A1MmI0UitNOHdKOVRPbHJHTWdDeGhDTFY2bkR2ak1hdndBUHBwZktPRXROS3dQOXQxempqdk92VytJNzQzZlVmOS8wbGxwc09IdS90SXBZcEc3REs2RTd1TTd2SmM1OWxpRGNIZW9iKzdYM0w3eUh6ZU5TUUx1RFRLbTNqWGtPeUJYVU5mdzY2aHg3QnI2SEhzR3RxTlhVTy94NjZoUDJEWDBKK3dhK2hOM2pXa2NualhrT3JBdTRiVU5ieHJTQlh5cmlGMW5YQ0ZDQndtYzB4WWdaUGtuaEVpU08xemtPcnFZRUIxRHB3TW5ORW1LSXpyR0RkQUppMllIY3dOdGc4V2tMOHcyRFZ3SnRnajJKdjhmWU1EZzZXTUZ4ek00WUxENCtnZ2ZIQlVzS0lKUnUrVndZa3dVOGhNSnpPVFRIVndYbkNoZVY4U1hCNWNGVndMLzRaZ1RiQTJXQmZjUWY3MlpCWWFzenU0TDNpUTNPemdFZEJpV0kvZ2NiaFIrcWVDOVd4Q011UU5oVUlab1p4UVhpZy8xQkZ1NTFDM3BLWm5xQ2pVUDFUY3pKUUY1NFdHaGthRVJvZkdoc2FISm9XbWhtYTB3R0dUU0d0V2FFNW9mbWhSYUdsb1JXaDFhQjF3Tm9ZMngvaGlYcmFFdG9WMmh2WWczdjJVTmd3L0ZNcUl1akJIUXlkQ3AwTU5ZVHZzRDBmQ1dRZ1hOU3lMTWVHMjRYYmhEdUZPNFM3a2RnLzNDdmNKRHdpWGhNdURVOExEd2lQRFl6ais4TGp3Qkk0clBEazhEZTlWNGRuQmhlRzU0UVhoeGVGbEZQK1U4TXJ3R29KTklWaVZkb1BUdyt2RGEzUytSZk12WEVYdWRQM08rY3g1R0s0eTdxYlE1dkFyNFhiQjl1SHk4RmJpWlh0NFYzaHYrRUQ0Y1BnWTVXTUJ1U2VEbFlSemhuU0s5Q2tpZ29VUmg2OTlEQTZQcEFWend5V1I3RWhhSkpkTSswaEJxQ0ZTR0drZjNCRmVIT2thVEtQdmhCOCtGa2tMZDRwMERlOENYbUdrUjNBSHViM0RKOE45SW4wSlozaGtZS1NVd25RaW1rNndNdXFHTmtjR0UzeGh1RHdpSXRuZ3J6dnhSRzVrZUxBME9KTytqNHBVMFBkT3BNdDlvN3lGTjBVcUl4T1pkNkl6SlhTQzBxcGRaRHJ4TTVQY2FuTG5rVHVQK0Z4SU1pd0pENGdzajZ5S3BGSDZFRDd4c3piWWxlak9pMndnbm85RmFvaG1Hc2svSlZJYnFVTjZGVVIyQk5QQ0hReDhkekEzc2p2Y0s3S1A2QndrK1k5RWprZE9NWS9NTzdsYWxzTGc5RWh0NENUaHN5ejFvVDJwa21RL3pMSkYrcVo2dysxU1E2a1pxVG5oWTZsNTVPWUhDMU03cG5aTzdVWTRWWkhzMUo3aGxhbEZ3ZExVL3VIeTFPS2drMXJHOGdYT3BBNGxmamxmU2Y3d1lYb2ZvZC9EeTdTYk9wcmlQa1h1V1AyZDRhbmpOWDVFR0xlUXZrK2k3eVgwZlZNVHZkU3A1SFk5UHpkMVJ0ejdyRWdndkpYU3Q0RGN2ZVQyVHAxRCtkWXBmQ1oxL3Z1NXFZdGFoOGN1MFlXYnVqUjF2dGF4ODNOVFYwVFRMM1Yxdkp1NkxuVmo2dWJRMk5RdHBQTXpJejFRSDFINUM1eWs3NVdjVHRxTnZqZURUekh1ZEFNL2h3dThtVTB1NEhGdS9QZlViVlRtcXd5ZlZTM3BwTzVzU1QrWUhSb2JYRUp5N0NHelB6VDJySGhVTm9NYkNHZEdlRmZxb2RTam5JZkJEVTF1Nm9uVTA4SGExTk5STjloRHUxU0hET2R5dysxSU1qZTFnZHoyMnVWOGpYOUhQc2JMQTVmU2UzZnFVYlJmNUxaOFQ3T0RCNW0rZHZrOXpkL2MxWENXbmNPZHpTVjZ5TGZtTHVJemJsb0VkSFl4WHhRT2JtcGVXaGExVzhPRG83VGJrdjl6NjRmT0UwclhIam9lTm1sdHd3ZlMya1VxMHpvRUEybWRJdGxwWFlJRm9ZM2hYbW5kNlZ1djhNbTBQcEdLdEFIMG5jcG9Xam41aDBWNnBJME1GcVQyRHhhUXZ6UnRHT0VPSS8rWVlHRmFCOElaRjlxVE5pSGNMbTF5cUNGdEdyMVhoVGFuelU2Ym03WWdVcHUyT0ZpYVZwTGFPVzFrcEcvYU1xSzFrdXFhTGVHVmFXdklqQXdQSUhxMWFldlROcVc5UXY2dFJIYzdoZDBWT3BHMmwrSThrSFk0N1JpNWxMZHBaNEtGNlNMZFNROUUxdEszeXZTMDhMRDA3TkRtOU54d2VYcjc5SUwwd3ZTdTZUM0M1VnhtMG51bjkwMGZtRjZhUGppZDBpMTlWSG9GaGExTW41ZytKWDE2K3N6MDZ2UjU2UXZSZm5JYlRPMW0rcEwwNVdncnVmMk50djFNWnhXMXpkUXVwNjlOMzVCZWsxNmJYcGUrZzcrbDcwN2ZsMzR3L1VqNmNSUEdoRTAvbFY2ZklUTzgzQS9JQ0RYeEVBMlhrWkdSRTR1RCtnaFJIbUs4SE5KbFB1cG01R1hrWjNRTVRjcm9uTkV0bzJkR1VZeEg0MmIwenlqT0tNc1lDbmRFeHVnWTc4Yk5HSnN4UG1OU3hsUit6NWdSbXBFeEsyTk94dnlNUlJsTGljOFY0ZktNMVJuclluRWJtdEgybit1Zzl6ZmNQaldIWld3TUgyZ095OWpjQW1jU3RmVjdxUTN5aGc5RUNzTHRNalptYkNGWU8zemJsckVUWms5b1QySzQxSnlnNERZUzc5blV6bEo5bjdFeDFKQ3hNVzB1eGRzdVkzL0dJZTVIeEllSkZHUWN6VGdSUGtEcGNEbzRNMjB1dFEwYk5BNlZyUkZSUFBMbjZIcVgvWEhoMStyMzhJQW1sL3BuQTlNZC9jNXRzb25IeVdqZ3ZrdW1IYWtOTHdNZHdvM1Vadm96STVsWm1XMHoyMlZHSWhPcHp6QXpzMFBHbm1EZlZCa01VRCtrZCtvSTdsZEVjZ20vUExOVFpwZk03cG05TXZ0a0RzZ3NDVHFaNVpuRE1rZG1qc2tjbHpraGN6SzExU3ZDeHpLblpWYkJ6TmI5MXN5NW1Rc3lGMmN1eTF5WnVTWnpmZWFtekZkQ1JabGJNN2R6WG1idXl0eWJlU0R6Y09heHpKT1paN0lFdzdpL2tPVmtCYkxTd3J1eXNyTnlzOXBuRlRBOHF6Q3JhMWFQck41WmZiTUdacFZtRGM0YW5yNDhhMVRxeHF5S3JNcXNpWmxkZ0RNbGF6clR5NXFaVlowMUwydGgxcEtzNVZtcnN0Wm1iY2lxaWRHdXphckwycEcxTzJ0ZjFzR3NJMW5IbVg3V3FheDZObTFrRzIrYlVKc01qcnROVHB1OE52bHRPbks1WkQvb0VnNlhuemFkc3hhMjZkYW1aNXVpTnYzaHNpbHVVOFp3VHA4MlE5dU13RHQvSDkxbUxMNXptUEZ0SmdFK05hTmJteGx0WnNWb01HeE9tL2x0RnJWWjJtWkZHMTYvOEJ6K0pqM0pjeWFOUTNnVnVYd1NLOTBtOER4cjQ2REd4NFJWdjE4VVk3MFZyM044RGl0WitySXQzNFAvVHRnQlFONWdISEdjL2ZaNDRGK3I0WUM4eEJDbmxHMDFDcUZ1Wk52ekppQUY4SjlCcUdQc2R6ZXkzKzZHZFFxM0FINGw2T1JvT093bkVQYXppUGNmK0ZxbTR3WGtkNGk5Ty93L1o3LzFOdnl6Mk8vOENHRW5nZjQxbWl0OFBRVGU5bUZGWnk5UStEdDRLK2YxTEhJbC9NTVF5MDhSNDkvZ0h3LzRWY0I1R3Y0L3dQOFdxUDBWMUVCSC9RWCtFd2dMUG1VbWVEc0MrTjNnWVJYaXpRY2tIWDRCdndDRm8vQ2ZBb1ZGb0hBYlV1eTdrT0tYaUIwNEVqak9id0VmQS94MzhmKzhMZkRCdVowRFAraW81eEgyRWZjQmxndjhYOEcyRlFJUGQ4SGZFZjdyNGI4TW5GZXpYMndCdkIvNC94UGltZ01lZ29EUFpiL25CdENjQ3lucUljVit4TmdCOEg2Zzlob2d3eEYyTmZ3RDhIVVphQ0tVbkFMNFlvYXJQSjFXc0ovVDYzRHg5UWI0WHpDWUQrQ3ZBalFFMUY1bWlMb2NLWEMvWHNPck5SbjhyMFdvYWNEY0Rzb3ZBL0lickdrYWlYZ2ZCV1lqNENOQllRMzRid0QrQTZCV0FLbjdJTlFnVUp1ZzZZQzNHVWIyQjdqY2FUcnNkM3pBMzR0WUx0YzZqSzgvMWJFQWZ3THNjbDBxUWZrQitOdENvdkdhSmpqOE1yamF6TGI0YjZSQUNtSi9XOU5rVE0rYnlQR2ppUEZWOEh5WmpndVlkeG10V01RNjQ3WmhEdkgxUGJiZGZJU3FBYzVlUURZeXhLbEdlVWNwVUNnRlRqWjQyd2I2bTdCR2V3N2JKS2tYTVZaRFA5L0JHZ0drRy9EZlJXcHNZdHUrQnZZMjJDK0JjZ0ZrUDROVU9xMXJIcDNhb0RBTmZDNENmQjM4UTRCNU5iNytobU5YbndXMWJxRHpCdXhyb2R0dlE2dEIyU2xGWENXNnZnTE9SbDFMSU93dCtMb1RsR2NDTWg1eVBRSVovd2o3RnRqUEFqNU5TdzBicTYwOVQ4TitFM1lmWUQ3Qk5xVVkyM1VvcytXdzN3UE9TT0NVQWZJYzIySUhaTVM2ZGFjU09HZmcveEg4UHdXK3JsMi9EczVmUmdvOGdqVGZ4cmFhanJYblA0WC9lYmF0L3BCM0UvdWRydmo2Ry9ncmdmTW9VdVpxVUhnSlgrUFdzTnRYSXE0STRxcUFGcTNUdXNkNTdXK1BQRXBqaU85VzVESkt0eGVoYkIxcUgySkhxeUYzZzBJRmNIWUNCN1daOHdKcUxhMmZrNEc1Q2Jsd0ZmQlRkYTBJYld3RHpCVHdjQk13ZFMyeERybjVCL2hMNFA4eFlqOE5IYWpYTlRsaURPQ3JnNjlUUVA4bDl2dmJRK2ZCbFRxQzJLR2xWZ2I4RnVMcUQ4aW5BVUVwc05CaWVzYUE1b3VBL3dyd2tmRFh3YTliU1pRcDY1aHVNZUZmcUZzQnBLRUUvVzlDTHJSZjhucjRnK0Q1R1hDMUZxSDJJTlIwK0wrSDJ1QlAzUFpSYmpMT3EwalBtK0cvRS9YR3Z3UG5Nd2dGT2xSNzhIbVpTd0dwZ2RSVGRZbEdXTFJmOWh5aytSN0VNaHFjUU5Qa2NOUkNyNFBPMytEdkN6K29lVkRxMVJDRStna2dqUWlGMmxWTkFQd1hnUHRScTJ3Ri92MjZYVWE4M3dEK0Z4QWorZ095RGZ6SDRaOElPcXRCWnpmOEJ4RnFITDUyQXlaYVNRbTlraU9BZVIxa1NVTmNUd0huZDhCNUNEaGZCQTVhSHh1VUplb2NDejBaQldvVzlFRU5oUjl0dXRvRi81dElzVStETWtxQlJNcGI3ZUJ2Qjk1K0JuczdLT3VVUkpyYlN3SFJkZEdMOENObmJhMXA2Q0ZJRDZoSnhISUFzVHdNbkI4RHB4VCtzZkRmQUs0K0QzeGRUL1lDSEhJcDVJdUZucDY5QWZDNzRmOFQvT1BnUjc1TDFBWnFQZkQzSXQ0N0VPODF3RUh2eGFQN1p2OEp6bjhKLzUveDlSSDQwUnQwSUlYU1Vxd0F0VUdnL0EvNGRUM2ZIK213QmFGMGVVSHZ4VUl2eU00RlBJeFlyb04vUGpSWi93MHNGM3dLbitYOFNraVIwdXpQeG1OaWt1Z2l2aTYrSWJxS1ZmVGNLRjZscDd0NFRld1FONG1kOUh6ZStwbzFVZlNVaCtUZlJDOCtGVTNnbkQ0eFgvUWxzMGdzRlN2RWFyRk9iQlNieFJheGpVTHNFZnZKZjBnY0ZTZkVhZEZBbWVTM0lsYVcxZFpxWjNXd090SFR4ZXB1OWJMNldBUElYMEpQdVRYTUdrbitNV1RHV1JPc3lkWTBxNHFlMmRaY2E0RzEyRnFHWjZXMXhscVBoMDlRM29TM3JURGJDVGRpcmFUZSt3YXNPSHNPNjlRS1BQL09OU3IySER5UGYyWGp6ZDVCWG9IWWpmK2IyYzlpRmNrVndBL2c2eE1Hd2l0OUhnSG1BTTlZNEJjTHMxYmRMc1A2aXhyOGhSdWpkNHA0MXVMUDNrOTVyeFVnVDVpMTdWaUhEaDd1eEYreUcyRS9nejl5QmZqejFvQlZscy93eWxiUmlQOWdBVjRiS1A0RUh2NWRiU1ZJRjRTYWpsWE1EOWpYODNpQklmcmtUUFVvd3owM01BVjFJK3hSREZGOXRWLy9Hd1JrQ1ZZZHZvVDlmeStCdzlYZ1pKU2FqLytObTJJNncvL0dXV2Y0dkw5MnBEUDVvb01vRUIxRkovRlpjWjNvTEQ1SEduT0Q2RWJhMEljMG9iOFlJQWFLMjhUdG9rUU1FbVhpVHRLNThXS0NtQ0ttNG8vdjYxWUlXak9BYUEwZ0hOYklrV0tNR0VjNHc4UmtNVTFVaWRsaUx2NWJMeE1yeFJxWUJXU3ZGNXZFSytTdUpQc1ZDak9iSHM3cEExZzlzZ2o3NDdMMEdqQ0dxRHk5SXhWZm4rT3Y4a240ajhHL0J2Wkd2Zi9Vd0p0V3JSVHBWVEY2ZlJTM0UyYU5TbmNPcGZjeldxdjBxaFhzRVVaS1VmRU5JS1YrKy8vbGYwTSswYk5DZFhZcXFFMmQ2RXh4cGpzenFSYzgzWm5uTEhTV2tHKzVzOHBaUzdDMXpnYW54cW1sZnQwT1p6ZkJkamo3bklQVWZoNTNUam4xcm5TOXppazM1R2E0T1dUbkVldzQ5YkU3a3IrejI0Mis5SFNMbkVxM3YxdE04VlM0WlVTZnFkWVJoZGpqRG5YcTlVT2g4RENWMkhQS1BIWHVDR2V0TzVyb2oyVmE1Qi9oam5mN0V6OFZSSlVOODY2ZnRYanErQ0ZxMWU0a3A4YnQ3T3dqTHFaUUwyQUhoWnJwemlDNDE1bm56bkxua1B6SFlVNFJuWVB1ZkJwZlRpSC9GSGVwdTRLbzFoTm15SmpWeFA4cG1MV0V2NEZnYklpNnU4N2Q2TlNTekhYTUt4bU9qWXk3MmQzaWJtTzZzVmlZWXRRd0QyeDJrNWxPb2RqTW96VFlhY3dlZDcrejBNMXdwcnVIS0lXUFVrcWVJSHFuM1FiRUR4NjhOcVNMajV1TTEwOVM3S2JVSjJsSmZ2WkZEY3ZQSWV1MHZPZGxwbnNqemZodlpyd1I0bm1uTjh2YjF0dk8yeUhHWVp4SkJtZVl0NU8zU3p6M01Ta0k3dTNPdWF5TnQ1ZTNqM2VBdDRUUzQ2aFQ0UzBuM1QzaUhlWWQ2UjNqSGVlV2tTWlJ2bmtua0puc25lYXRvckJWM3RueC9KR1pTMllCNWI5RXVpUE5LVzZUOXQ3RjNtWGVsZDQxbkFmT0VqZUhTc0lwNzNvdmpTcmNmS2VhNUJybmZjVzcxYnZkV1U2NkhqWFFDSXByRjhXNTEzdWdoZHd6cVVSSUNnOXQ4UjVtNHozbVBjbTU1ajNqRThpOXFKOXkwWjNqYzN3Qlg1cDNxeS9ibCtzOTRHdnZLMkEzbGk0NzNKN2U3cjVDblorK3JoUi9KUXlua2RFNkN0L0QxNXRvRlJIc0lNVjd4TmZYTjVCc01pVFJBT0pxaW5lQXI5UTU1UnZzRys1VStrYVJoQTFFTVVTbFp3bktjbzZ2d2xubHEzVFcraWI2cHZpbXV6TjhNNGxTWjE5WDk1Q3YyamZQN2VaYlNPbGY0eHZvOXZjdElUMC81RnZPV3NqbEg3ZlZidkRWbUp0c2QvdjJRWGM0VFkzZXVWT3A5STZPYVQvRjZKM21POGlHNk5TNUdab0NmL01kb1pSYkZhZXBKamRKMHlheGFTb0g1R2RqVXNsMzNJY2M5ZFg3SmVuTEViOFhvUm1UMHNrZjhnN3daL2hEL2h4dmlUK1ArWEdPKy9QcDZlanY3Ty9tZXVucDdPL3B6eWY1VC9tTDNKQy9QNWxpM0lRN3dsZkJ0OThTZkx4L2tuK3FmNFovbG4rT2Z6NDlpOXdaL3FIQVcwcnlkZmF1OFhmenIvQmwrMWY3MXhHMjlHOGtLWSs1T2Y3Ti9pMytiYjQ2LzA0S3M4ZS8zMytJdWFJYXBETmhIZldmY0k3N0t2SGx0TC9CZjVycWNuOUtKQ1VycGEyemhPU29TV25IdFcxS2g1Uk9aTHFrZEUvcDVTeFA2VU95Y2MxUzdkU21ERWdwU1NublhDYWRZOG55VWFkU2Jld1dwd3hMR1preUptVmN5b1NVeVc0K0w2RkttWlpTbFRMYjlhYk1UVm1Rc2ppbHlzMVBXZVlmNzEyVHNwSWdhNmp0MkVUUEt5bGIzYzRwMjFOMnBleE5PWkJ5MkZ1U2NveTByUTUxYmozWFRpa25VODVBdXlsbEE0SnliU2NaU2UzR3daUXVBY2ZsUGxFUHJFeDlDUzE5Q2V5dHNBdll0bGVqVlQ0T1NEM2JsbzNXdWh4ZjU3RHRtUWYvUXVEc2hIODMvTE9CaVh0LzFFcjQ1d0ovTEhDbUFENWQ5eGhnSHdSa0V1d3VPQTNrRE9CN3NBOW5CemhaaTFXelEwRm5FeUE3QUptRWZTem9yMWk5WUo5RUxCSDRzUWRKL1llV1VlOW93ajRFU09FNXpuRlo2M2xscDlNTDhlNUZ2TnNOZmQ3QmxZVlEyUDFsRDhlNjFTelk5VmdWaWpYZllwNE9wVmNWQTdOSzc4ZUdmenc0Q1lIbUN1Q1BOV0hIQ2JNenpkNEFuc3YwdmtmUW1ZR3ZleERYU2pFTGM2aWNHbnVCUDRYbjFLbWZPWXY3MVBDdjAzMDR3KzE5R0QzemZwVjlPaVdSQWpXd0QxT1BrOU9mZDcrRXdja3hMUkhvM0FMSWRyYUpNdEdYaGRobGR5UGdjekhialhOYlpLMjVsM0NKTUhjNmVqSUIzMmh1Q2RReThvNDRHeWs1RkRTUEFtY2c0TmRoUDF0bms5cExrR3ZGMEVhK0NWSHZzUG90cUUyRlBScWNuRFkyMDc5VjM4bUlOQmtBeWlNQi95RWswbm8xQ21tYkNyK0Z0UDJ6eVl1aHZKNWI2eDc4aHlEZE12QzJRT3MyNzNPZ1BHV2FGU2FYR2VjeGhPckpmaDhrOHVXdzdaNW0yMWtQN2NyUSsxU2hiOUFvcHgzNC9CdDR3RzJTemsraEcrdXhLMk1WMjNZVjBpcUF1UEkxejdDenRFYnBNZ1YrYWdINU1XejByZlh0bjZSMUxIc1hTTkVSOEs2d3I0UGQwZWdWWkljOURWcTNFM1pmME9mMWZCYU56amdGZW10T3dEUDY2OVl1MFA4Ry9KTmh0OVd4Z1BJaWphUExPRERuNjM0L3ZoYnFQSUs5QlJ5dTB2S3k3ZUtyWnpGUzZYTzZ0b0ZXbk5KMUMrQklaeHZuSGRqZGtQc0xZQjlCakNlUU8yV2crUlJpTE1mK2xqV3d2YUNwZCtnVlNCcG55TjlCQTFINkpHNURzYkpCQjN1VjdiRGVDNnBySHZncjJYYUs0UjhOK0VxZGJyRG5jeXhxTnV5ZGpWaFB5ZnFqOGxEUGJHNVl6NXdJdnA5aEpEaGNBc2dvWFJlQjh5bUEzd0Ird21aY2xDVWtqZnJiMG9qSTh2MjNqM1A5LzhleEViVStnYjNDQ2h6QTJrb3JjRXgxRGh3SUhJWTVaZ3o3VDVJNW85K0RoQmwwTkR3WUlKTm04TTRZM0RNSjRZdy9tRzFnQm82d0FVMHI1aGR4L2x4akhPT214WDJMbXZibXUyaWlCUjZkSnROTW5nTnh2QjVMUWk4WlQ0bjhSTTNad2lZWXlGcWc0d3dXR25qWE9MN082TytjUHMzNFRUQ1FNYzVBaGpOeDZXMU1qTGRjRTg0eFBEaE5Nc2ZnSmcvQmcwbi8yTGRqQ2VrWmlNT1B1c2VhM0diZmVzU2xHYnU5amR1M2VaajR1UEhlUHM2TjUxMFlkMkNTOENjVFpHUjZwV1FHSi9BWkwxT2lIQW5wME1KTmlCTjVrSHNPTjZxemcrTjBNWm9uWjVNL01SMFM1VThNbDhoVGRsdytjSHpEeVl3aVU1SEVyU1F6a2N3VU10UEp6Q1JUVFdZZW1ZVUo3c1QzZWI4WTdwSUV1b252VVhkNWdxa3dlUEZ1ZGR6N3FvVDNxTHMyZ0RMNHZ1NEdNalZ4N2t3RGZ6ODNNWnh4bzNrWnJDVlRGMWVIempONDhla2I3KzR3OHJmV1BaLzBYMjc0anZLNXNCVnVZajdzaU9NejNwMW92cC9OWFhVVzgzN3hWeGgreitiT1MzQ1puOTNuY0Jsdlh5dmQ1ZWR3ZDhURmR6NXVZdmxNMUo5b2VpYktGWFVQQnBxWGgyZ2VzWHNrb0hXUzhZN0gwVHRGcGo2QXVpQWt6VGNPTzkzNHE3VWI4cElKa2NrZ2swTW16NFFqT3FGOE1oM0pkRzdpTWRUTjBON1J4RStvWjF5OVZLM0RNSDhNajdyZ2djS0Vpc2owTjN4UE5MeXpvWElTS2pieGxaRVpTbVlFbWRGa3h1b3dvZkVHTm9uTTFManlaZXJseFBvY2h0dmV3aVQxY0xUK1RZQWo3aG1hWGp3UHNlK3pORTZ6dHZZY2JtTGJjZGIySU42Tmt5RTBoOHo4dVBkRlpKYVNXUkhYSmlhMmI5RzhxRHVMcVRaNXczbTMydWcrbXlYR2plWmRqZEdYT3FNenBJZWhkZHEwcUNPaXB0cm94Nm5RUnJnVERTd2FkMFZUM05Fd29jMEJYVTUzeDlHSjRodCsrRnRvaTRIRjR4amFvREhUd0E0R211cW5oVWtNNDFBZEhkcW02WU9mT2hQSE5rMExzQ2crbGR2UVRqSjdUSG94N2xvZEgzUjd2NEZ4ZWg0S3hQcVFvYU5rVHBBNVRhYWhLZDNEdGpiUi9tcXMvMlh5azAzWUg2ZkRyRHZ4L2VQMmdWZy9QZVlTUEJ3aGswV21MWmwyWkRvWWVDY3lYUkxvUmZ2QmlYMXYwK2NPZHc4MDYyY243VVBIOVh0aVlRS20vRGhOOHNYNnVIRnhobnNGbXV1LzBkbHdIOFB6QURJbGNXbkVzSElqM3pBZXplaTFPWTFEc0I0SDUrS1JuMC8yS2VPejJJUmcyL05MdHUwL3MrM2NpRFBhWU52NGFqOEMrQXEyM2Urd2JiME9IRUM4d0hHdkFPWUIyT1B3ZFJEc3Yrc1QzOWhXeXhEWGFFQVF5aXRCdVJmZ3h4RjJOU0RWOEcrRFA0U3ZHYkFIQXo0QS9rMmdtUWVjcGJBckFRZFg5aFJBdXNJL0h2Qzl3SjhPU0E1c3pjODgySDBnaFJmK1dRaGJDa2gzK0czNEY0SHpmTmpsc0l0QWN4MXdkc0hHQ1hlZWlmQ3ZoOTBmT0Q5R2pCVnMrNGV3N1FPT0Y3SjRod1BuUHNUU0U2RmNRR3J4RmZnMjBrcHBXUjREWkRsc2NPN1pBdjhyT2svMVhCendTd0R2QnNvalFHMFU4RWNDL2pMaThnRHpmdmg5OEU4RmZocHdmZ1pJSGZ5NXdGa0oyUitDSmh3Ri9QZXcvd2Z3NjRCaklkUS9BRUVLMk9CUUlnMDl3QkVCd2JPT082MGRRb3FJL0EvNUgwTHdIbklLdmNiWkxKU3p4ZGtpTXB3anp0c2kwL2xmNTMvRjVjNC9uSCtLdHJpWjdsTzRtZTRxM3dIZlFWSG8rNXZ2YitKNi93ci9DdEVscFR6bEx2RzVsQ0VwUThRTkthdFNYaERkVWw1TWVWSDAvRkRpK0FJbC9CUXkwOG53L2NMVlpPYVJXVWhtQ1pubFpGYVJXVXRtZy9rZU5UWEdyVTJBczZranM0UE1iakw3REl4cEhUVHZSOGdjSjNNcXdkU2Z2NUdTakZmSElVTmtNcG9NeXlCempNa3pKbnFIYkdmeGhkaDZFYjFXWkFEV2k0d3hhMFhHV05NSVVwV3dZcVFLNjBXR1dldko1ZlVpdkVwa0FqMjdZTE9yZlh0aEg2QVFjOG1NdEE3ak9XYWR0TTVZWjZTUWpnendLaHZzKzllNy8yOHl1LzloNDFRam5DSWRPMmY4S05XRXA4M1pBTStTZnhrd0I1dFEra3p3UWJBdmc4M25QWVVOdkk4d1o0VVRoTmNjeEo4WTNzMmNZRTZReG4veVdhdXg4OEZQd2VaVFMrTFBCOGZKNE5ab25BcHduTSt6c0Y1am03aXRobzBUMG5FSGFmU1cwVHJZUDRMOVRkRjB5K2c3d0x3RGZsRGcwdzdJSGdFYk4zYTZlL0MxRXZZZkFIa1lkaHVXZ3MvZ0lMc2Q3TW13Z2VtdWdWMkJ0a1BIMVl0bGNSN0cybkMyWC9md09ibXBzTlBZdHU1dy9vZ3l6dWRkYnJUR1VQa0x5ZVdTdE5aNXhma2wxc2x0RXg3Y08rbkh2Wk5CNTVEek41SE5xd0JFVytlRWMxSmM0WndtbWZKOGYvRWRGdTM4eS8wL0Z2a3BnMU1HaXc0cGExUFdpbXRTMXFXc0V3V1hqTzYxUEsxT0p2QStKbzFNZGhKNDdqbkN0RzhGM2RhYUFzRzNsMStMbFRrWDkrRjFQbFNtY0Y4dTJwVFkzYWF2a08weEVENFBCV2ZjNjlQdHJkdHdGaFhPSXJGd1dwYWNDa2hBZEJKK01WUXNvaHp6cU8rcEh3aWhYbGV2azMrWDJpc2NkVWdkRWtGMVZMMGxRb1RocW0rcmJ4UEdBa1U4cU9mVWRpSFZEclZERktxZGFxZTRUcjJoL2l3Njg2eXZ1RUZFaExTWENrWEd0bGNJRDdrT2x6NHFlNExlaGIweDVucU44UUcyV2JpRUsrd3RvcHM5Szhreko4a3pQOG16S01tek5NbXpvcFhQNmlUUHVpUlBNcDQzMHJNWmR0T3pKY216TGZZMCtYZTI0dGxEei82RTU1QjlOQW5zVUF2ZVR0QnpPc25UMFBMeDJDMmZwT21jN0VtV1I5dGFQaDUveTRmVHl4TkpTTCttSEl6NVBWbWV0bVRhZVRyUTA4blRBZEJrdkt3am11czhYVHpkNmVubDZlTVpRRTlKa3FlYzRpMzNET04wOG93a004WXpMcWtPSlhtU3lvRVVqN3JtU1VnVHp3VFBoS1E2bEVoL3NtZHlVcnhXNmoybFZNdG5XcEtuS3VFWlEwK1NzTW55bDNLaXhaT3N6SGhtZSthMmVCWWtlUlo3bGpWN1Z0S3pKZ2xzdldkVHMrY1Z6eXZKK0tPV2N3elhsNDNEWVdPTlF3UFdOVFRpZjM3ajkyRy8wdlJYMlRQWS9GRVgwUlVIZGpmWStpL2wwYVkxRHZydnRKM1Z0SjdDeHFueW5tSnQ0OTl2Yi8zSEZmODhjL0R2ZEJUK3E2TmU5NnlGUGJGcGhZVWRiUG96clAvdDYzVVErbSsvL2hNclo4TCtDV3o5QjNzNXdxYkF4cDlQdFFTMi92ZjdhY0N4S29SNlRaQU8vT0JmcXozR2ZOMUM3Y1lKL1Q5Wi8ra0Y1Y09xZ0VkZHlvMnVFNUczcWMrUy9YdkZwN1Z2QjN5NythdlpUbmlwTHo2ZVdoR0ZGa1pRQy9ON29uU0kyaFlQUWUyRTF1ZjNhSDNlb3RZcEtCeUxxRnZEV2hqTEdpa2tHVVhHSnVPaEhvMXJqYU52RTBRYVZrdnJwdzhadlY2NlU2c2VqVjlPOWpBRDBYM21NVmh4UFFhOTV5WnM3a2MzaFp0bTNxZmhxU0l6MjZ6SlR2ek92ZTI1Nkc4ejVtTHFhMGVmTldUV3g3MXZpdk1uZTlmNHVwKytpK3k5OUJ5Z09BNkRLMjF6ci95azdwV1RTL0d6OXB2YnpIdkc5U1hhRTN3S1ZwNk1CTHdEeWdEMHBoRXJmMFFQL05IdUFjZ0I5amVpRE9peUpENER1MWhUQTZiZzlTY0UxLzQrb0ltK09ucWhuNEd0YjdudndDdWRHemVZRys5NTFYTVBzL1o1TDJMY0MvOGgyS1NSamR1NGg5T0lOVWlOV0dVa3NMcUR2dUdmTyt3VnNQRlhYZVFLcHF6VUh2VUh4YlFrKzRTaU1Oa3dGcDlyUkpodFNWdmJjbzNBZDhjM2p1Wi8rbzFWRGJlVC9SM3VOWkcvTDRXeXNOWTcyMGphbTljeGUxeitheC9JQ2xCZkVoaHRnYVV4dmhUM2pYQWpkN2Vnd2JzRExQL2dCQnJ4R0RjRFk4ZzVNUG9BNCs1ejhIRkxjejRDVHdLRGIyUEtNWVpQZkVzbVRYT2Nma201Ylk3VFB5bS96WEcrbkpUalhJT0hXNkxFZ0NROFN3cXZLV201YmszQ2N5TE93Q1E4SitMY2xvVG5SSnppSkR4THd0QmNhNXpiazZaekZuSkRrbWtMckpLa0taMEhUTmJGTEdEZGtVRHIwMG14U2hPdzhwTmlEVXJBNnBBVXF5d0Jhd1lrYkd2NHR3ejNkeVpOOHl4RHpUSzB5cE53M3hMcnJpVGN0OFFhbklUN2xsaERrbkN2a09hYWY1MURRNU53cjVBQ21wckd1anNKOXkyeGhpWGh2aVhXUFVtNGI0azFQQW4zdkpPRVM3a2lrNDI2U29oN2sycEZTN3dSU2ZXaUpkNTlTVFdqSmQ3SXBMcVJiVEJsRE8vK3BQbmVFbTlVMHB4dmlmZEEwcnh2aVRjNmFlNW54ekF0Zy9kZzBweHRpVGNtYWQ2MnhIc29hZTYyeEt0SXdwOXQwbGRqYWozNFNoTCtrdUdOVGNKZk1yeXZKdUV2R2Q2NEZ2eEZkeloxRWQwWklya2VEY3U3NVgzeWZqbGFQaVFuK3piN0svMlArTWY3SC9WUDhIL05QOUgvR0NqbGl6Q1pqdFFENkVhOVA5N3gxSi9xempJcWVTUElIazJjbTU2SDlVdllteEhqOWZBM29GMHY0L04zclpkNGRrTmUvOTV2eVk5MXhycS95Zk9oWk04VDMrVVZxSUEvS0hSL3N3TkpWaWFxdVdjcHZ5Uy9MSVM4VmQ0cWZQN0gvVjhYZnY4TC9oZW9YeW1GSzh2a0kvUnRvcHdxY3VVVDhvZmlhdTgyN3piUkc3TVlYeUtaSGhORmdiOEhUbEVMeFBPdUc0V01NL3h1SlJpR3F6akRzR0paSldmTHVYS0JYQ3lYeVpWeWpWd3ZOOGxYNUZhNVhlNlNlK1VCK241WUhxUHZKK1VaVWhsSEJWU2F5bGE1R3E3YVIxMVZZTDRYcXE2cWgrcXQrcXFCcWxRTlZzUFZLRldoS2x2Z2w2cUphb3Fhcm1hcWFqVlBMWXpCbDZqbGFwVmFLeGVyRGZSV0kyZXJXbFduZHFqZGFwODZxSTZvNCtxVXFyZWw3YlZEZG9hZFkrZlorV3FEM2RHOGQ3YTcyVDN0SXJ1L1hXeVh5V1gyMEVRM3hsL1VIVzZQWVA3czBkcU54aCtqZHhiM1F0UHQ3T2xsajQxUHI4VDBhWkV1clV5UEtCOVJmcVB4UmVsRTZjZlNhN3c5U1I2enA5b3pNTE0xSDJOMW5tdUt2cSt6TjZwQ2V6UG1nOWJaTzJQd1Baak5tV1VmdGZONS9pWStYZXlHcG5TSjhoVXRaWHJ2blZuWGV3dEt5dC9nUHhsWG1uUXQ4REw4V0VsTS9XbTJNZlpGYjltTUtTWFc3RnFqQWNjS2ZndTdDTXk2ZkpSUThSZllHR1Uyb25SYlh3WUV2WFl6aXRnUFAwYlYxcDBpTnNvVU5iQ0xnSU1SdVZVSjJ3RWNxL0Q1N3c1Qk1NcTBzTTVZcitrWGo0cll1S1VCbEJzMFRleHdFQmkvNnA1YTQzOGhMTllUV3hoRm1MWDdQNE1mOFFxOXJocmpkYk0vNFhHRS9Ua28veEUyUnRqdjNkWlVqMWxsd0R3RSs3dElNZFJSWmlROURmWlV3SkhDY2hBZzZHTmExd0lDMjhMbzNBSmxnUlhuWm1TdmE4NGJZYU5XdERDQ3QrN0RWNnpPdDdBWFF1Z2RuMnRnWTUyM1hyRnRZVlczM3N1aDdzVlg3TnpRSzlIMSttbExqL3ArQzhpN3NDR0xwV2NSb0RsSzczL0FqSVhVbW9OOHR6QW1STTBNdlVFYm9zZUJEL05NUUxPYW1ldGsvaU1Va0xmNWx2cCs3RnZsZTlHM3p2Y3ozM3JmejMwYi9XdjhhdzJOakxqZU0vOEprVVRsbGxhR2E1Y2tuQ1g3WDFEb3Z1Y01IVzA1ZSttUm1SeHducTBPeDdlYzJzejRFN1hacmlOM0I4SDRQT2c2Y1pCOCs4eXAwSFgwMUloNlVZT3pvZWtoUEQ0M2VqZDlyeUhkWnRPY1doT3RPdERSVkF3TlVSczdYZHBMNVhJNVF1bDQ2eW1Hem9MRzY0UVZuVUU0SGxkMnNIdUJjcHJ0ZjhERzdnV0JIUUlDZXRXSXVraGd2a3BvWGNVT0ZvRzlITVFGMjVqVEV2OERHL3BKWTJtMng4R0czb3B2Z3hvMFU3d08rNWxtV3FkN1hvK1lQR0M3TEM1bmN6QXliUG91aFZmZUpxbkU0UytXNWF4ejFnbnByZlBXQ1VYNS9MS3dLVy9YaUhiK3RaVERWd1grR1RndDJqZWptV1ZHRzhVWGxXbzI5V2x5OFpSY1ZMcnRpVUtCR1duekRCM3I5cTFDb0VTbW5EWEY4Z3grL0hlMmZ4Q1hCc1dVQm1YTjhENDRyL0cwejgxQjFTWGtvS3FGVHNYSC80VDV5ajN3ampTT3l6cG5tbDVvdm5FZnR4TTlJMktjWEpwNENvUkhGT0laYWVac0xsVk11dHdVWHhLZDBhV25oRXo1SmFPZWkvTVpMajcxSE1xQlBIcEt5UXkraFBUemNMUER4YWZmVmpqVWV2SlRSbWJvSllqaFVtaE8xU1hWbktwTHFqbFZsMWh6RXVsZmJNMnB1dVNhVTVXay9iOVF5azhrYmY4dkZ0WEU5djlpMGVVVUdHeHE5a2RqTlAzeXpsZ3Y5UXJxcGM0UytUUWFueThLYWJ6OVEzR1Q5OWZlWDRzdm9OL2FDLzNXTDZMZjJodjlWdTVSaDcxMXZtVysvL0F0OTYzdy9hZnZwNzduY1NMQmYvazIrVjRHRC9FcFZXMVM2dEVMa09qRDRqaWFDM05NTG53U2VPYitTR2Zxa1dRWmpzL1Z4MnN0VGQzN0dCM3JmWnlONm9XVTB0WnhFdTJmakluMVR6NDZYcmdzNVNXVUpWM1d6cTlFbEYyRUVuRis4VWIxdXZ3aTZQWDVTOXdCZjEwVFV5M2F4cCtmRE1OaWJlbUZ5bkMrOFVkYncrR3gxdkRENXVEOTByTHFJMDdMMXNkL3FkS3k5Unh3V2xiSFd2RlBRajJ2ODJ4T3JJZndTZUE1bXM5ejBZZjhwSEROcmQvb3VMSDNSOTM2allrYm5YOTB2SFNrM25wbmVpcklqREt6cFI4ZE4xeCt5eTVLK2YwZ0xXbjVSU21GNXhkenRDd052aWhsNmZ6akhtN0dnWWxqaVF1cHI0ZTBtZ005Vmh5QnNlTFFtUFo5dUR6a0NwZEN0cWV5MkI0bmRlWitKRnl3Qmc2TG0xUDRhUHBCVVczNEtEaUl6aHRFdGVHajRPSFM1TUw1OXFBdWZpNjBub05MbHd1dDQwSFAwVWRYUHNiM2htOFgvR2V1SjVYV1NyR2QvRzNrN1VUdDMrUG9yU1NLcTRubUd0OExvUHNMVUs0eHRKbjdWdnpGODcvb2YxRU1RTi9pVnRFR2E2eXh6dHE0aWNZeHJtMWNSVWJHZlk4UDUwa0llN3M5d1o1c1R5TlRaYysyNTlvTDdNWDJNaklyN1RYMmVudVQvWXE5bGN4MityTEwzbXNmc0ErVE9XYWZ0TTk0aE1meEJNaWtlYkk5dVo3Mm5nSlBJWm11bmg2ZTN2WmVUMS9QUURLbEJuTXdZUTQybU1QcFM0Qk1tbWVVcDZKNU9FK2xaNkpuQ3BucG5wbWVhbnVCWjU1ZDVabm5XY2k4ZUpaUVhNczlxenhyUFJzOE5aNWFUeDFScVFPVkhVUXpHZ1BUM08zWjV6bEk1b2puT0wyZklsKzlaNThqUWFVMkx2WWRqdGVlN0FtUVNYTkNUb2FUNCtRNStXUTZPcDJkYms1UHA4anBUNmJZMDlVcDh3eDNodExiVUhyakdKcS9DUW96Z3N4b2xzOFo2NHgzSmpuajdjbk9WR2VHTTh1WjQ4d25zd2pmbGpvclBBRXlhYzVxMHR5TlRoNjk1ZEhiWm1mTHVkNmFwMHZ6TjJkYk5GMmNuYzZlaExmbThqRXYrNTFEemxId2NnS2NuWFlXT1EydWZhNXZyZEVRMTM5QkduSnhkS0s1RnB3cjMxdWYweDh3YjkySW0rVzJkZHU1SFZnR3Q1UGJ4ZTN1ZHJGWHVyM2NQdTRBdDhRdGQwczhDOTFoN2toM2pEdk9uZUNPYzRyZHlaNGRMcVd6VytYTWNXZTdjOTBGemJYQVhld1o2RmFSV2VhdWROZllFOXoxN2lZeXJ5Qlg5cnBiM2Uxa2R1bVVkL2U2QjhnY1pzNG96ZXJjWTJSTzZqUWorQm12OERxNkhIa0Q3Z0V5aDVFdVk3MXAzbXd5dWQ3MkpOOVNid0Y5SzNBUHMwU1VnaE85aFdTNmVudDRlM3Y3ZWdmYWg3MEQzYTNlVXU5Z1Q0MTN1SGVVZDdqT2QyK0Z0OUlUSUpQbW5lako5VTd4VHZmTzlFN1g2U0thL2ZIWEsxSVVWaE1wdlNZSHExRDBpaDJ6SGdCLzgvV1pubm90aW5VWmJMMkNSWi9IdHg5ZnZ3WC9YMkhybFFCWVJhRFhLU2w5L3FaZVFRUWM4WGNSVzJPZ3p4eFVPUE5SYWNwNlRkSFhnSVA5TkhxTmt3VUtGdmJsV0ZpOVkxMEpXNjhrMUN0cWxzS3YxekpoM1lKMURXeTlFaHhyR1BSNkt2VlpZT0xFZElHMWk3emJsRTk3QkJ6ckZocDdBVlB2bFVGcVNJUnQvQlZDWVVlT1hpOGtCeUlzYUlwWjhHTU5rc1FPVCt2enNIMzQraHpnZXJYUHJZQmdCWVZaaFRVY0VLU2g3STdZc1RwQ24vcHE2YlZBMk51azExcVljeFcvRG54Z1dwb1RTS1QwNlprNjM3RXFRNjhaMDN1UzlJbnZGczZ5RkkyZ2dIVWROdWdyN0ZVeUo2NWlUWmYxUmRoNkhacGV6WVdUSDYwc2sxWmJrREt6a0RLYitPWU9oTDBLTktGRmpWcmZPcHBjWmt5OWlreXZ1Ym9ETnM2c2xMODErYjZDYk95WDBxdXRTU2NYRTRWSEFQa2RJSHI5dm12eWpyL3FsVzlZbzJYcEhiYlhtYlJhSE4yYkpiQ21xeEg2by9lSHFTL3dtZmVOZWtjS2RFYXZTMUgzSUN6T3liV3c0a3Z4UWk3TG8vZVFZVTJMM3NWbFl4V1pyYy9oeGVtZkhwd1JhZDhQK3lHRXhXb3JXKy9IMHFkdzZ0MWdPc2V4amt2dk05UG5jcUxRUm5lTWxRTHlBdXorc0pGV1FwZWEvU3lkV2RlSEV5cXA5TEc4L3c0Y25JaEtaWTBnRnZSS1BHVnlsbkY0OVpmZUVaRVQwMnNoSnNSNmZ1ZTNBa3BSdit3WHZoclRwK3dsOU9vTEliNTIzcFFrVXpKMEpvQy92akZLSDJTdTZZUEhQdEdzKysvL0VjV2ZIWmVLbkNzbENkOEhYbkRxSktOYWZCR2tUa1kzVFVSM0UzMHQ5b1h3L0UrYjczMGhUZkVGeGRxU2FuOGpUY2xGcG5zMmFlWmNFbW5tWENKcDVvam9YcS9CTVhrbXhtcUFDNTJsamVZKy85dTBSR2VpR1AyN09mRjkvbTVlZUVoT2ZaYXJ0Nm5YSGp2dmttajVYaEI2NTA4WlZxeE1qNlBrSnc0NDFXK25NV3BRTHBGTHpGa2FZZVJBQkRtUWloeEl3d3JUd3NDSndBbHhQWEtneXdma1JPOENLY2M4eFl5UG1CY3BTcEc2MHo1aVBuVHVaSDJNY2lmN1k1RTdlaWRrM3hnZnVqNys0R2s4RkNWZzVrV1Q2MEw0MFNrOURPVmcxc2VDbzJncmZHRjFUYlIxdVhqVTVwamMweXZ4K3h0Nmt6NWdEeSthK2p4am5vMGIxMmJGS0Y2TTFQK2dISGx3bDFjT1BjTUpOdnRqd1pPRDNYTnQ4ZkFwVXRVZkM2NzB2bmt1eDVicDNUMytnZWg5R1A5dmVVOW1MbHIvdVdSS20zSExPenNHeXRzL2hsenovbGJ1bTlVSVBzbGdha0lhWCtyUnc0ZVRMN2t4R2ExL1NRbHQvSjNOZ2M1dFJoL25YMDlHRlNjaHI0WDdWNVRSeGw4dHZiUGtGY0U3dzZiL0MwcXBzTWVHLzlwdEZYd0h5Y3l6MUpUL0NyTGFKRitUdE5hL3RLd2VVVUFQcnhIa25sWWRlbHYvdXRMYXpXVGxuVzcveXRKNlJFZDZjb2szN3JGdXcrekc3SDloZWJsZTRwNHJuM0hTeWF6RmUveWM4empuMjc5dFRUMVpJQW9GbjViRkozdDBNM05kWitkQ3AvK2w0b1kxZkl6Z3YxVXFiazNnMmJqNTRLc3dMa1U2RnNaNGw1OG96bTJzZXV4SStXK0pCVVEvdXZieGs4QzdpdU5jeGEzYi9DVHdibFBaNzBMbG5zK1JXVWp2WGNSb3MrTHVrOEM5d3NrNHZJdHJDZm03a3hUblR2a0xxYmt2WFE1MGo1TkNmaUpsOElnZTlIUWk3ZUUvbEVzcGhuSHZvMFVmUnluc1pqSW9ldnNrU3VHaGRyUW50UU5kOGE5b0dVRjZpa3JxbDMvUzVPRFpHcVplanRtYWtvUWUyQWVKczdVclR5OUZ6SzFiYmFuSGk1MU1iNnlEV2UrWjJPKzh0TkpmV2g1YWx3NzhqNFQvZWM3R1hFaXBxTHJndVlGTG5XWjVNWTdsSjREZjZPd0w1eTJmOEZhV01Gci8rSEdzNHZoVldBdjljZWZZeGk2R1hJeWErVjhQNzJhWTlUSG4rZU5UN2xwYlgzNWN5bDNyK1AwNGxidldwdkRIcDl5MU5vMC9UdVd1dGFuTTgydDhqdmQ4eklVTUk4NHYxb3pUcGE3bEN1SjRsLy9IK1lmQ3VaNmZIQ1gwakFPZmt6WDNFOEs3eEZvQVh0R21jR1pNOU4veGg3R2o3UDlLMllmUGVkTnN1dFpXK1FuUzFVOTJPZE9yU1hpTjY0V3NKdUV3cmR2QjNMUW1oUHRqRjJOTlNPdmpqcTdzbUNFK2lwVWQ1NU5HdVRGT1AvejFHYTNuTTM2VkJmZGdQdXdWQ09lVG9rMThmaFJySmM0blRadFdQTXdVSDhXS2gvTkoxZWlmL0dyeFVhNWJPSi9VN1JESDgwZTMrcUQxSERkZlE4RHQrVWYxVi8xOFVqbWU0NDl5SmNENXBIUDgvL3k1NHFQOG45OWFybmxuZlVlMHBOemZDSm16c1gvUy9IUnMzMHRZZ1hyZWR6RHdIclVQWUlxdHZ0WkFxOVFhYkEyM1Jsa1ZWcVUxMFpwaVRiZG1XdFhXUFBqWkxLVDNKZFp5YTVXMTF0cGcxUmg0clZWbjdiQjJXL3Z3ZnBETUVldTRkY3FxbDFKNlpZamNESmtqODJRK3VSMWxaMnVLN05aa1FJK003R25Wc09Id3dJc3o3OHRiSEYrZ3dUeEYrWW55a29RUDBHQzZMQS9oRVA1QThGVWsrOHRpU3ZlaGNnUzVvK1ZZT1Y1T2tsUGhueUZueVRseXREVmN6by95d3JTRTJlOXJkdnBpVDZmZVVTcjFIUUxmaEYvallEOHU2UXJiRHdBZit6VXQ3RlUxdTFleDQ5UENibDE5bHJ6ZW9hdTJ3bzlUK2FYZU80dGJDK1JyK0tyM1l1cGRrbU9CZVJQc1NZRGdSZ0tKL2NlMi92b09JTmhYMnZnTS9Qb3NmTnlsSjNFZXVjS09VcFVPQ0RoVTJFRXJjWDY1eE41bGlaM0s4bDU4L1E3ODd5RVczQnBvZndyd2Y0TmZuNFdQdmFjS3V6QVZkdGtxalEvZTFDOWdZNmVzeGJjR1JzL3JpTzdKbXl5YVRwaVg4cmJZS2ZSNU1ZeXZrKzJSZldVL3lza3YrMTlJd011TjRYRysyWlRmTjhzKzh0WVlGcGRRUGlHdUFIK0prcC9EcnpGNVgzUVhNcHpUdll6aDl6N0dERENtUk9oYnVuZ2xqTldJVk5kM0QxaDZSelQyMzRwTmdFQ0Q5RTJMV3FlSW13S3FuZnRBN3VCWjZ3dXVMYzUrbXd2bktOVjd4cWc0ZjlUSWhPK01IeElUS1kybVU0dXIzV3Jqemt0dytmdENjcGVZOTZpN1BNN2w3M3l1UHJzYnlLMGh0emJtUnZHTXpJM2prUXJZTjl3QWZSQS9oT2JnZmd5SkhjT051T25Dd2w1YmM4TURkb3JydS9ZVTlpZzNZdCt3UEdUU2tlOUI2b3N4REtmVUxhUWhQSDdLSXIvV2dWdWlPaU52VFhwandRdVV5cnpqdUFMR01pYUxXcDlSclRJVm9oS1NUa1NhVlZQNkxTVC9rdGlOQXhXVUdtd1l0eFo5SFowYTJNdmVnTnNERzFERzMwTTVhc0I5UHUraHhMMm5iK2dFL0QyVTBBYnNHbm9QZStqZnd5MFpEZGh6LzU1T1c2VG5lN2kvOHozYzdOR3dRU1M3Z2U0YnNaYjBYTGRBV0t6WmNYZlNmZU9jK0V4eDRnY0s5Ump5c1FQbFl4SCs1Wi96Ym9temZ1TzZoZTlER1pQVVdDMWc0eWhFL08xTWJQaCtwdkZpRXZtbkVuUUc5WmJtNER1YitXSlI3RVpJbllPNCs2WGhSZGpRMkFic0VXdEFMZGVBTXhnYUxvZU5lclVCNXdvMG9KWnU2QXdicHgyOGg3M3BEYmpQb1FGM25qVGd0cG1HRVNMK0pyNnVKdWFwU0xNdnZVODZTYXBOWGpJN2xqcmlQc3Joc2ZCbnEvOHM2a3VkL3c1ckhVOXlMczk5UzhuWlEzOFRvZnRlVU9oK0Z4VDYzRGVrdkYvb0wxOVE2RnRiSFRwRGRFTjVhd3I5L3VFb0J2OExTZUtlaHJpTFBpRG5PdlRORnhTNnozbklYUkFuOTdSemFuUlRPR0g2Q0xxZndQMzZ0QmI5K3Vablh6WDE3bm5GN1ZDeDdEekN0QTR2RFRVUm54UWhjRzRIN3dIbStwNTMzdkVKS2d2SUxDYXpqTXhLQTJNL255YXozaGdPdDRrb1RhSlNwK3VzU2FpdGxvb1ZZalg1Vm9oMVlpTTltL2w4RWIyZnR2RXQyTXZqYWpPY1pTSndEbzNBUFVqNk5CRno1Z3Jxc1ViY2h0VDR2N0RSQjlhMzM3NkhubW9EMnVpR2RiRFIrMjFBcjdVQmQrTTI0RlFQZlZ0VUEvckREVGgxcGdIOTZvYXZ3bjRlOXJWeGJSYlBGT21UM0thTGk3SGJUOTlnZEorSTNreGFocG5Yb1pjb0JsNmRYUzZVMldON2FlTFFmMmRzL0tmUnV6WXZkaXlzLzdyL2dQTU81QjJTYzhYeThXNG53U05Vd1hjVys2T2FwTThSb25mVnVKRHZNcVF4d0JEOUxrWTJib3U5ZTNHZmNkT2JqT0ZLRVVFcHo2VVdsZzNmV3p3bDRBRU56NW1LOStwRi9HMk5BZUcrZTdwK1dFdm9tZFZpWkJKb1ZUTG9QdzhrZzU3YTN3SktYRGMwWEJJSXlmYnUyQ1N5clVuRzJic3prMEZQSDJ5bGJDMWpaN3lNcEtFWEpJUCtZMVV5Nk1tVnJZdnBuZXhrb2Q5WmxEVCtwUEtmYXBtM2xINzE0NUtrVk51azZiZEVqR3dRTFRoWWx6UlYxMzZJV3ZEUlFramErdHhrYVZDL05HbFpXcDgwSDVPbFlqdkJOMU5OT1V0TGZYNjlUaHFoeXdqVlEwMkczNjBFSTQxYmJCM0dYZkM0Q1Y0R1pKck1scm15dlN5d0RzdEMyVlgya0wxcGhEaFFsc3JCR21MZ3d3RWZKU3RrSlhFMVJVNlhNMlcxbk5jTVp5SFZxOHZsS3JsV2JqQ1FHbGtyNitRT3VWdnVrd2ZsRVhsY25wTDFTaXF2Q3FrTWxhUHk2TWxYSFZWbjFVMzFWRVdxUC9tTFZaa2Fxa2JFMnlaZTJHcTBHaXZuYVZ2VE4yRmIyT2NyYVVzWjFYZzFLU3BqTTduaUpEcTNMRG9XdzROT040VFNkSXlNVTlVTThzOVNjOVI4dFVndHBYZnRYNkZXcTNWcW85cXN0aGpJTnJWVDdWSDdLYVpETFNYU01jYmFIWnpjcFUvU2t4Z1ZTOXhjcVcvSXRkNkdIMmVkV1JoZFcxZXdyZG9CcmsvSnc1MjhVcC9yMVFZUW5ONW02VGs0Zll2bFAyRURSNS81WnYwQnR2NnF6NFhEYVc4Uy9SN3JEZGhmQVVUZmhvbStsL1U5WUdKT01QN1dUbk9qcFQ3SjdVOElwZS9LMUdmNjRaWkpxV2NTRVVxZi95Wnhlb1JFTDgzQ0hGL0xtenJsWXRnWWMrclpSdFVOTnM0RFZEZ2hRK296MDNER29NSmRwZkxYc084Q0JIMUJmY2Fhd2drWTh2ZXdNZU1wOVl3bitwSHlidmlQd3EvblJxY2lsRDQ5RDdPSDVxdzhqSXFWUG5WUW53U0ltMHdsK3VzSzh4MUt6MFcrREh5TW54VzQwak9ZNmtmNHV0SFVOUHFjSXYyWGdPY1R6M2NIbis1bnI0eTdnWEs1NEZzajlTMlRPOHo5azN3RDVSR3krZWJJZXR3N0dSSWJ6TDJSOU9BR3luMThzeVRCOExTZzFrU0w2VENWR0EyaDc1dXNGM1VXMzBMWjBlcE1wcHZWMHlvaVgzOU54Y3FKNnIzU3ArQ3Rha3BCTTFlTkZOSG5UcXJmTnVtb1BqMVF6MDlyL2RObk5abzhBRVNOYnRJaGhUUHliSng2YVNNblZBMzhxZkMvQ2ovTzV0Tnp3K2FFUHN4YTJaajV0QjgzZVhOeDdnWDllRC9SOFpSMVVXWCt2N3RRMlQ2L3UxQ2pxZDhwZHRJTHp5K1V5eUZ5cUx4SDNrL3QzcE95U2o0bHZ5MnJBMytIREhrVUlnLzN0K2ZUMHpubTc0eDVGc2hveHNPRDRxUjdzRm1NV1pqSDVEVWowVk1jenkvUHFkNnppbUVzTW1mL2l4ZjE4eDh6Zmw5b0xRR2UvcGMzRDNEK28xZExNSDZQL3RFN2FCM0J0K2lmTnZ4THM2Ym9QM3N5STJwQWI2SDVCOGVHd3pOZURvV0p1dWZpTFJsZkRJdnlFODlMSWg5NTFreVp6My8wWkRmWjAveTdZNzdLNUZERUdZMHJYdDdqY2dUQzR0K2VWWW0vZXpPa04wNDN0K0NNM2xuUTBDMDRpM2NXVHVIZGdsTjdaeUUvZVlia3IvRC9BM0I5eHVwRStGUGdudy8vTmZBdkJINEQrNXVkM25vSThGbkE5QUh5SENEN0FPa0Z5RUg0KzhCZkIzOG4rR2NDODAzNEcrSGZpNjlmQkdRZUlLY1E0OS9ndndOMkZ1emZBY2VGZnd2ODE4Ri9BdmhYZ3NNVmdMOE9taXVSQWdLUUc0RjV4cHcreS83SGdOTWRrS2NBYWRhNjRtekFDMjlkZFd2SWRWUXRXa3h1VjNkUWJoMG5lemxKdXBacW9ucHhpdXN6ZXRPUHhqdElyYURYMUhMTnFUWFIyZ0U2bW9xaFlZVjBuUWJxdTNYN0tvNVF5OXFOYXJ5ZVZOY1ZXZjJ0cGw0bFdqQnp2L2wrMkNlYmVrSG1YR1Y5ZnJJK3JWZi90ZEt0TVdZb3pjbkcralJqL0QvV1p3dnJrNFIxTDBnOFlHSlpqTENMbzZmUjZwTnk5ZW00K2tSY2M4N3RIc1BKWW5DeUdKUVh4M0tvVUhTUDVkQzU2anltM2g3bWZlczlpVDZ3dFN3dU5UYVlORm1jMk03NVhyZ0k3VnlUVGh5azk2aE9MRWV1Y2RzaktTZTluSmR4T2xGRHozS0M0VW1xRXdmUjd6b2VwUktsWWRxNGprWW5Pbk52aTNTaXA5WUZxOHdhYW8yd1JpZm9SRjBMblNoOGY1MHdwMk8zMUlranlUVkRueHl0VDJMVFp6ZnJNNXJOV2N4bjA0LzhPQzFCRGhsZHdmbkYrc3ppNXEwalRybTc0TmJSeUxVQTlzL2lwSTVxQ2U5VDdDOWFzOHZpWE56d3FkRGxIOWk4dnhUSU5YMFN1bFVUbDJ2bGNXVXNPc2E0N2J6WDlKeTlGcXlKalFvT3dzOTl1cHFtRVVhVG52S0RYaDNYZ3FjSWhxY0Z0U1phVEllcHhHaFF6NjZ6MkVjbG9DWTJ0dWdKWGUvSjJxNnBXUG14Rk5HalRNenRXMWpYb1hBbXQ4U3A4eEtqWG9tL0JqSXRyanpnWEcySjBZakF2d01MRkNUbStTWFdBT2pSbnREamRZeXFGZFlBS0t5aVVGcVA5YmpsZXZqeHYxVmlYS3Z3MTFXUE9pVEdJWHA4YWVQUHJNSUk1SkxtMWc1eUwxWnV4ZE5La2x2Y056ZTVoZHFKRE5kTjNiaDJTc3d0VlFZYmMyL3lvYWFVVXJjRGNuMVR2YUpLNE1mY2drUVBYTzVzeWkzNWFlRG8wZnE3VGZsdGNnc3pJVXFQK2RDclYrZ0RLNzFtNkZuWVdOdWhNSjlnbysxUStQZGpnMDhidlhwMTZwTG5VdzNHT0x0TkM4RTlqSnI0a1hzc3AraUpHN25uNktjRnRTWmFSMHgreDJnZ24zWmo3SlJ2Y3FwemROeE9mUXFkVDNteGZFTGRZbFpYSWQwVjFtb3B0S3hTcjQ3NVdWT05wQ0pOS1doeWFIYVRwdXNjVXJjMjVaQWFqbFRHWEpLTmxrTFZ3OGFhR3RzUFArWUhiTXhWZVVLQUlKOXNqR284K0w5bjMyTnlxSVBnUDJaVjRsei9hYzh2MTNpdHhNN3pNcCtjVW9qVklQcW1DRDBmcHJCeVNXSDhhdGI0NlJzcU1QZG1ZUjVIL2dDMnZyRkJyL0hEVEtUQ2JJdlVFTXptTkdyOTBEZEM0SitzMHRTZWJDclpwa1JDWXhUbTZteTlOZyt6Z0RacVduTmJ4ZUc0VWhqdFArcjFBdWZLNitiOXg1WlB4OWk0V2ZlS2RHK2cvMFdOcTZOeE84ZmkwcTJQN2hVZEEyVHpwWTFSNTVmcUNWdXYxWXpPUitxenVsYUsxcTRJT0wveXc2M3QwWXRpenQ3N1BtTEdVS2N3SWtQZm04cEFQWlVFYjZ5dnZROHpVRWVvOTgxbEphTkZyZGxFYXdmbzFEZWprUmVyTFVQVSswYXZtK3BmcmpGcm9uMXZhMnlzWENHVkplYlBKV1orcEo2MzF5dGZmWEhsNmxyWWVvMnNYcTJMdVdLRjJYNTFKU0JYdzQ4MVcyYkY3VlRZV0Mrck1JdW5XeWlpdkFYeExnYWR4Y0FuVzkzRjk1NG9YWC9yY280eXJGQnpxNThZUGhlRHo4WGdjekhvTDA0Y041MzNiUFVuYkU2MFlZdDJ5Zmd0eDU0cTdIc3I3eDBoY2tiZlA2SlMxRlRjTzM2czJENSs5TDBQa3I2MUZYYWZMNWJraWE2M0RyZ3JUNVRjTWJBb1Q0d2RWRUkybGVyR1JzRnRsMGVFUktiSUVaK2lFdHBKWEUvOWQvN0NaK1E0TkVMSUVwZFRxZjIwdUVaOGxzcmdqZVlicGErSWlEWkUvMG9xdjd4MjkzTzgwaGZmbFBDS1ZKRXRyaER0eE5YaVduR2Q2Q3B1TXQ5czRhT2N1b3phMWF1b0ZlUVZkVGVJSGxnM3l0OFY4Wk11UHM5cklFcHV1eldQYjlvQk5JWHFtNTd3UzhycHo4VHdMUkVVWDdqdjNvcngxbVRZMDJCWHdaNE5lKzU5OTMxbG5MVUE5akxZYTJCdmdyMFY5aTYycFFNN0FqdG5aTVdERDhqMnNEdkM3Z0s3Qit3aTJQMWhGNDk2Y095OXNnejJVTmdqWUkrR1BmYkJzUStPbCtOaFQ0STlGZllNMkxNZWZPU3JGWElPN1Btd0Y4RmVDbnNGa2I5WHJvYTlDWFlkN0Qyd0QxZDg5YjRLZVFwMlBkdEt3dmJDRG4zbC9wRVBxZ3pZT2JEellPZkQ3bGg1WDhWNDFSbDJOOWc5WVJmQjdsOUpFYWhpMkdXd2g4SWVBWHMwN0xHUFVOb3FySlVWMmVld2JkSWdMK1c0L3dQNHMwaC9ja2tuODBqRDJwRzJ0Q2NkekNkOTZrQ2FXRUJhMVpIMG9CUHBaQ0hwRjY4Q2phNUxhKzdqdlR0ODg1SWtuY3M1aDJzSi9KSFI2N01FZXZZWUhaL2REcDdURHAzRDlwQ09aNUI4YlJEekIzMnpzTUxlRXZyV0xQUnE5TjFUYUc4dEVUbW5mYTVjczBUbU9XMzB1S2d1NkMvbWlXVmlIYlZJdThRaDZnazZWaGExTUpPdGVkWXlhNTFWYSsyeURsbW5wQ096Wkw3c0t2dFFmVHhLVHBWSGxLMHlWSHRWWWsreVo5b0w3QlgyQm51cnZjYytZcC94K0QwNW5nSlBkMDkvcDVkVDdBeDNPN2s5M1lIdVpuZUhlOEE5NFpYZU5HODdiMmR2YjIrSmQ0UzMwanZOTzhlN3hMdkd1OW03dzN2QWU4SW5mV20rZGlZTmVMNmFhZ252M09idndkTng3MVIvaHFjTDE0cStVeTh1UER2dU82VmplQW0xSS9IZmw5RjNxNGxlZUZ2Y094R0sxTks3ajB3R3BWSjcwdEV1VkxzVjZiQ1JHdU1lMW01cVcrT1dHSGVxY1RjWTl4Um9TeW9OYVJxU1ZtRGM0aFpmSmhwM2NYTiswbXJBVDlQNzVvVDNWNXEvWnhZa3ZCYzJmODllMGZ6OThvaHdWVno2WE42OWVmcGNIby9QNzdVSjd3ZWE0MTlSMlB6N0ZWUHhIaWZwRmZ1MW0yc2pwSi9LUWp1cUR6cFQ2OU9iTkxKRURNYmRCb3dSTWU1RzQrN1Y3cWVXR05lODUrM1Q3cFdsMm0wM3dManJ0WHRWYldKcXQrOXAzT0xtM0xjdlMzZ2ZobmViU24yVzJTUE9vUXgvN1pjYWQ3ZHhkWDVmUWIyWXZ0UVhLUmZEeFdneFRrd1VVMm1rV0MzbVV6OW51Vmd0MWxOUGNJdllUajNCL2VJd3RmQ25LVUt2RmJHeXJUeERaNmQyUHozVXVJZTBtMjkwNU9xQWNVY2F0MEc3SFlZWjEraHBoMlBhdmNiQXI1bGgzT1BhTGVocjNPWEczYVhkYTIzakx0SnVSMkhjY2NZMU9maVpUc2FkYnR3OTJ1MDB4cmoxMnYzc1hPMFdHdnpDMnVabCtMcnk1cWwrWFduQysvQ0U5K2tKNzZ2aTNvbis5Y09hZjc4K29jeGZ2Njc1ZSsrVnpkKy9sQkIvVVczQys5SG1aYlRvSk42enFaZlVrL3F2QTBXWkdDWkdpYkZpZ3BnaVpvalpWTXN1b25wMkZkVzBtNml1M1VhMTdUNnFiMDN1RkczVzdzMm1Ocmw1cFhiN0dCM3RzME83dDVoY3VhWEN1Q2EzK3ZZMnJ0SEt2a2JyKzVuUzA4L2tScjg1eGpXMVUvOXM0MDR3cnFIMzVhN0duVy9jTTlvZGtHUGN5Y1pkMkR6VkI1eHFua3EzWnVBOWc5cjQxcVdMcG1KMCtkWXB4alZjRFN3ejdpcnQzbVowNlRhajA4V09jWTJ1RjVzNjRYWWp6ZTNydEZzU011NXM0NXF5ZGNjbzQyN1NicWxKL2RKNTJoMlUxVnphUWFPYVN6dG9JOTVUbXJVYUEwU3BHQ3BHQ3BOamcwejVLRE0wN3pUdHhwMm1QSldQTmE0cE4zZk4xTzVnazFPRGwybDNTQmZqYm03ZU5nN3QyN3hjRFowWjF6YnkrNHk0dHBEZnE1cTNCWGlQeWtTSVE5YzBmNys3YTF4YlFmaDNiMmdlL3U2YTVtbHk5OWFFOTEwSjcyZWF2dzhibVBDK3Rubjg5M1JyWHU3dTZaM3czalBoUGFFdHU2ZHJ3dnVBQlBxbENlKzF6ZCtIYzdzU29WNGNuOXN3VzJ5aGNic1VsaS9vNDc1Ylc2dWRWVUFqOSs1V2J4cXZsMWlEcVNjMXhocG5UYlNtV2xWV3RUWGZXa1M5cWxYVXI5cUVYY1U3cmIzV1FldW9kWkpDMWxoYnJPM1dibXMvMWkyZXNocW96eFdpWGxjdTliczZZYjFpa1J3Z1MrVlFPVktPa2Z4SGY1cWNLZWVJdG5JWTljakd5Z2x5Q3ZidXpwVUw1Vks1a2xjcnlzMXlxOXdoOThnRDhvZzhJYzlnNVdWRVphczgxVUVWVXNoNjZzVUZxQi9YbG5weUJhcXo2cTU2cS82cVJKV3I0V3EwR3FjbTh0cEVOVnZOVTR2VU1yVlNyVlViMVN1cVRyUlZDOVFTdFVLdFVSdXdPbkc3MnEzMnE4UHF1RHFsR216SER0bFpkcTdkM3U1b2Q3RjcyRVgyQUx2RUhteVBzTWY0MmdoRmFSWHlaY01OK3k2REcvSGx3RTMxWFU1dWlIeHQ0WVo4VjhBTiszTGhSbnlmZ3B2cXl4T1MzQ3ZwTFV6WTdlQ0dmRmZCRGZ2YXc0MzRQZzAzMVpkUDJHSGYxZlFXSWV3T2NFTythK0NHZlFWd0k3NXI0YWI2T2hKMnhQY1pla3NsN0U1d1E3N1B3ZzM3Q3VGR2ZOZkJUZlYxSnV4VTMvWGdQK2pyWXVUN25KR3ZxNUh2QmlOZk44SU8rbTQwVW5ZMzB0MWtwT3RocFB1OGthdW5rZXNMUnE1ZVJxNHZHcmw2UTY0dkdibUtqRnczRzduNkdMbHVNWEwxaFZ6OWpGejlqVnhmTm5JTk1ITGRhdVFhQ0xsdU0zSVZHN2x1TjNLVkdMbnVNSEtWUXE1QlJxNHlrM3QzR3ZuS2pYeDNHZmtHSS9lR0dDbUhHaW52TnRJTk05TGRZK1FhYnVTNjE4ZzF3c2gxbjVGckpPUzYzOGcxeXNqMWdKRnJ0SkhyUVNQWEdNajFrSkdyd3NqMUZTUFhXQ1BYVjQxYzR5RFh3MGF1U2lQWEkwYXU4VWF1UjQxY0V5RFgxNHhjRTQxY2o1bmNtMlRrZTl6SU54bTU5M1VqNVJRajVUZU1sRk9OZERQQTd6ZU5kTk9NZEU4WTZhWWI2WjQwMG4zTHlGVmw1SHJLeURYVHlQVnRJOWNzeVBVZEk5ZHNJOWQzalZ6VlJxNm5qVnh6SU5jelJxNjVScTd2R2JubUdibStiK1NhRDdsK1lPUmFZT1Q2TnlQWFFwTjdQelR5TFVMdS9jakl0OWpJOTZ5UmI0bVdUL0FJbVhkdmRoRGMwMUZXSjZvdFg2TTZ1US8xc1FkVDZ6cVdldGpUeEN6Q21rNjE4bnl4Ukt5a0hrV04yQ3AyVWovcnNEaEJYdzZJb3pTK0ZaYmZ5ckJ5clE1VVQvZXcrbGpGS1Y4VnR2T0M4N0w4Y2NvNDQxdVI4akI4bXdsV2FYd3JVaDRoMzR2QUcyOThLMUllaFkveEpoamZpcFN2eGVoTmpORjdMRVp2VW96ZTR6RjZrMlAwdmg2ak55Vkc3MXZrKzVuekFzR3FqRzlGeWxQd3ZVaXdtY2EzSXVVYnNYaW54dUw5Wml6ZWFiRjRuNGpGT3owVzc1T3hlR2ZFNHYxMkxONVpzWGkvRTR0M2RqUmVhdjlDd3BhOTVCZnRiUHN5dEtydmlEUFdwMmdrazNpZjdlZTREVlUvVldzNEQ5VWU5UWUxMTdTczNDUGpkYmxTSFZVN3NaT3JyZEN6UHh5dUs3ZXg2bnVZU1piQzFqNzF1bnBkZU5RdTlYdmhxRVBxTGV5NWFrdTlMMTY3MEpQMHBDLzFOa3VvdHptQytwdVZ2TmVDMnJOdkNHRVBzWWNJci8yd1hZa3hhUi84TFIyQU5ZcDhTMk1wNlpQRXZYKzhTOWdUdHcvYXdpbjNFd2dXUFJPQXp4Y2lPK0JnVDVaWFNLSjZKL3grOWdlQ1pGZXF2b0M0REZIOTRQZmhhNEMvQXY4eDREeU9yNU1ESG9JUEFjMkpnUlJnZXFJVTFPTWNDOEY5d1BSeldNWlIzMkJxNnVzY281cUUrVlhscHFoclhCNGxLanZOenJBemthb2Q0bEwxQnFUSlZid0NtakdFMzAwaC9DRG5rY2VOM0kxZFo1Mnh0elNqbFNHYWRya28zTWJRQlgrOHNqNUE2Tlp5NnZFUDlnL3gzeDNJRHp3SmZydTFrdC80Y00yNTdvNGJEVnJEOWRsbzJMaFBvQWRXOTJSL1lDck5VNkRiV2NOYi9xRkMzL3JTSlU3eXMrSEg3ME95QWxmSDdSK09ocnp4N0RFRjZzOFQvejNNdDBqVk5iQVZKZjgyL3owYUVuZzVzQm1RSW5XN2tGWVA4Vy9xOCtwbTFZYjZwcGVwSE9xUDVsSWY5VXJWVG4xR1BhakdxRTdxT3RWRjNhQnVwQjdxVGFvSDRYNUw5Vkxmc3FrcW9ONm0xMDZ4aTFRUHU1ODlTRldwbSsycDlqUjd1ajNEcnJKbjJ0K3hxKzFuN0huMkQreUY5ay9zbjlyUDJ5L1lMOXJyN0orckt2dS83QnI3disxYTFjVWVaUC9hL28zOXF2MmEvYnI5Vy90Mzl1L3RQOWgvdE4rdy8yVC8yZjZML1ZmcXdSNnhqOXB2Mi9WRVdYaXlQVG1lSyt6WC9HUDlML2xmOXYrMy8zLzh2L1QveXY5ci96Yi9hLzVkL3QvNy8rai9rLytnLzYvK0kvNjMvTWY5Zi9mL3cvOVAvenYrZC8wTktTcncyVURuUUpmQWpZRmVnUzhGK3NDK0xYQjc0STdBb01Db3dPakFtTUJYQXVNQ2p3U3FBdDhPekFyTURqd2QrRjVnZnVEZkFvc0NqVUVWOUlUendsZEZib3pjRlBsOHBIZWtLSEpMaFBmbGM4cVZxOEZxcUxwYkRWUDNVTS85ZmpWS1BVRDlkMDY1aDFTRkdxdStTbjM1aDFXbGVrU05WeFBVMTlSTTFXaGJ0c2QyYlovOUpmc1d1NjlkYW4vVi9ycjlEZnViOWhQMmsvYTM3S2ZzYjl1ejdhZnR1ZmIzN1FYMlNudVZ2ZHBlWTYrbGxQdVovUXQ3by8yU3ZkbitIM3VML1N0N3ExMW5iN08zMnp2c25mWXVlN2U5eDk1cjc3UDMyd2ZzZy9ZaCs3RDlOL3ROK3kzN2pOM2dFWjQybnNzOGwzdC81Ui9uMytTdjhXLzJ2K0t2OVcveGIvWFgrVi8xLzliL08vOGYvRy80Lyt3LzVQK2IvNmovYmY4Si8wbi9LZjlwL3hsL2ZZb01mQ1pRR0xnK2NFT2daK0NMZ2FKQXY4Q1hBN2NHaWdNbGdkTEF5TUFEZ1FjRER3WEdCaDRPZkN2d0ZLWGNkd0xWZ1djQzN3LzhJTEF3MEJDVVFUdWNHMjRYNlJicEh1bngvOW83RitpcXF2U083N1AzUHM5N2dBeG1BaE16R0NQRFVFb3BaWkN5SWdMeUNDR0V5OE5NQ0NHRUVBSkNDQUZDUUFnUEtTL0RRMGdpSWlJRUppQ1A4QkFETW9nUWtGcUh4YkxXVXV0eU1ZNmxsS0VPWlZsRkJFb1YrKzMvT1VsdU1Md1RtNjVWV1BmLzNmenVlZXl6djdOZjUreEhXTSt3M21GeFlmMjlQRkxreXlaaUJQTEllRGxBVWttZ3ZjZk9pTzdpcDlRcVNoWVJJaWdlb3JqdGhkaDlXUHhjUENKR2k4ekE3d09mMW9ybGp1Slh0V0s1aDVndWVvdW5FTTg4OEFmRXRDTmRpdXUrZ2M4UTMzUXVHWlNERWUvNWNvYWNLUXZrYkRsSHpxdmxneFZ5bFN5Ukw4bTE4bFc1UVpiS2pYS1QvSTBzazV2bGxzQy9CTTRFL2pWd052QnZnWE9CUDlieTBNSDc4TkFYOGt2NWxid2t2NWFYNVRmeWlyd3EvMHYrdC94T2ZxOXI4RnFVZGRLWjZFeHlKdC9rdWI5M1BuUk9PZi9rZkVUKys4VDUxRGxUcC8rK0M1d1AvSHVBQi83a2RuRC9pcnpZeGUzcVB1RSs2Zlp3ZTdsOTNYZzN3VTEwZzc0M3g4S2JPZTVrTjQrOHVjejM1bXJ5NWpwM2c3dkovWTI3bVh5cUthODJNYWxxKzBpMVozdUVQZVg3VmlNZlBpbVN4Sy9KaDhNb2RRd25INDRJU1NIa1F6RkdaTjBocFV3UFNTdlNUeTFObEE5bFhMVVBCOHBCOE9FME9WMCtLMmZCaDdkT1J6ZjVVTDRtdDhwdGNydmNJY3Zsem5wSVpUZjc4QnFsdSs5cXBieHNKNmZPMUZmbHc5dWxRUmJReUllZit5bnhjVXFMc1c0M1B6MzJ1NGNVdVpGOFdGYnRRNk9KRlpJNnU5ZWtUNVFLM1ZXcEVMZ1ErSTg2U29XL0ZKM0U0NklybFFvM1VDcDBGODhITHY2Z1ZFaVF5V0xwWFpZS2g4UlNXU25ma2UvSzM0bkhaWEpkcFlLendGbm9MSElXMTFrcXRLSlNZV3FkcGNKcDV6UG5yUE5INTNQblA1d3ZuSzlDU29Ydjc3RlVXT1dXdUd0cWxRcVBocFFLZmNQaS83OVVlS0JTb1JWelRWZkdxeHFLKzdlcURpMTZ1Tys1NzdwLzUvNU90VUpGTzhyZHFkWWk4bENyanRlalZZamNsMFBhT3Q0S1dLcFhsYUIyeFVCVHJaNGF4cmVwSHFWOEI3V1hOS1BDT002RWNjSTR3Y0tOQzhaL3NwOGFYeGxmc1llTmI0eXJMTXBLdFVheVI2eC90UDdBSHJQUDJ1ZFlSL3RQOXAvWXI1eHlwNXgxRHFRRWhyUEhBeU1DSTloZkIvWUU5ckd1Z1RjRGIyTDF3WnAyMUhBNm84R2FPMHVvZlRTYzZrdzNSSSthN3pLK3JtM2Q2elhiMW56SHRqRzBaUytXUXEyZ1BHcjlGRkRiWndGYlF1MmVsYXlFcldIcjFKR3dyVjlmcWtvaHpnM25lNnEvcktINlh1aHNVbFd6c2poMGxFSTZ4bW82d2lhMmxkcnJGVXk5dFZEdm9TaU8wRWRNUGVkWE0xNm85cUthODBZOXYxZmJxTGNYNm4xZ3BSaElkY2lmaWdHazRXSSthWVNJSTMzSStnZHFOK1ViVlArVU00enZTV2VhVk51VUJXNHkxVDJmY0ZOSW54U0RzVzhpOXYwYjdOc1ArMzZJZlcrb2ZVMkdmVG4ySFlaOWg2dDlUYUcyTkhXb0NiV2hFbXBBTGFpcS96NFVLSUt1VXVvZWhSNVRXdjFjSXdyejhRbXE1Y2JDSTgySnFCbUIyM28xKzdCMHl0VGdtNnB2ZEllRzBmYktXN0F5bmp3c3EzMHRxNzNYRkxPaFJQdTlENlYzQmpHR3FabGVva25WbXdxMWRxYnE3OTh0YkZUMWVVWlZIVU1POTg3aldUcnY5YXB0cXI3UnVaK25iejJwcmpUVlR3Y1JXRzhqQmxmRjJCUHF6SDQ3cDNZcngrdXQ0SzE2MFJvenF0eCthNG01a2lKeFowUjdyUmdSQlgyQ3Rtd2g0dFZJYkxUemhWZ29GcktBSENaVG1FdHQvcEdzcVp3Z0o3Q2ZvT1hmWE9lNndjSjFXMi9LZnFiL1JHL09IdEhEOVFqMnFEUGFtY0JhT3k4N3I3Sy9jQTQ2UjFnblY2ZFdkVmQzbER1R1BlWG11L2tzenQzaTdtRDkzTDF1SlJ2b25uQlBzTFFtVGhPSGpXeld1bGxybGg0MktDeU5qVUtZUnZ0aGp2STk3TFdZdXRVS2RjMTJKbDNSQ2ZpcXMrK3RXTzhLMFJwVS9XVTE5R3BWN2FZZThLMm03dGhHZDlWVC9hdUpvU3RWVjkyRjd1SU8vclUvZWNmcnFUbkNRM1JQOW1FWFdDZDJnejduV0lJbUtaOGJ6TDRNK2VzSy9hNTZZWWZHVTR1UStJMnVQa2ZqdkVPR1EvT2cwMVJNeUVEZ0lscjE2cDJtRnZpOUh4T3hMSTZsMDMyUlI1OFVLbFZtc3A1c0tNc0srU3VicGZ0eDNQMnU0dUx1ejk2TVBIaVJKVkErZEowKzNlajdKU29QMnJIenJDTjlWKzh0aDlhS2YrODhNZEFPSWQ3bG9yZDBHcUVQdk91ZkRyMXhVeXg0MTkrVlpWQXN0NmNTckQzRnJwcTdzZzk5UzZYN01JTWwrYkhlNDY1ajRHN09HYzU2YXVvcFpHY3RqSHdjaDdHYVErbmJ0M1QzSi9yZll0V0lQYWI2VTk4dTltdW5zTWJxZzZTN2pKVmVWQU5Kby90eEVYM2k2ZnNjaXY4dWJBcWxoS0QvclJ2UmJOOG5QZTh4WHU0K0pGN3RLZHgvanBZT25lSC9FdWFmL2FucTM2cHJXMWp4UmZJTmpQUE1Pcm5nRytrWDd6aXF4NWszTzU5NjU5R2lyamxjYjlGYmY1OC9sK2g0LzBoZDhOUXVzdnBZZDVydE5IVGZTT3diZmRPKzZuZlM2cGtFYjcvVmJuOU5EOVZIYUJueWE3VmRiL2FnODdMZCsvemxtUWpQTG4vRmo1Wll5VUtONkU1cEpDRkt3ZXp1cXE5VVJqMkY2UDVYTDZrSm1UZWZYaXJtNjEyREhLZnhoTTJiR1RHVlZiMWo2dTNmZlErKytyeDNmSFhmcXZ0MVBkUDhtUkhyNDdyck00UmVlbExybmFaaEZzZjZDMkZWemxRVkV5MlJUcktZV3NPcFpRT2V5WnNyc2lOVDY5KzE4MWN4N2gyeVpiQm1lejRpSkh6ZWFvcDU5RjNOUkYxL0tlajI1L1ZDMnc3cjQ3U3VqcGVicnF1T2NPYlFkMVdYU0cyWW1Ld1Z3cXBWamNKRHp2WGc5NTZxSSs3RzhUT1JPdFNha1BWNUJ5Yi80RHdkN3lHbTc3eFhYZjZzMmt1bCsvVitmbGQvNVZWOXhycEtqNnIzYnpwOVM2blg5SGh6dktzN051OUh2R04valBQZXlmY3F0dFc4SjFFaDkwdlNmWlJVazBQSzk2cjFzMVF1MnZvSDkrR0RIcjJsdjk1M1F4M2RXNG0wQkhkYy9mbmh3Y0pWVlRPcC8xcFRmWVFzdzE4RFJ6MGpIVmZ2OSs2RGhVK25PenNLTS8yckhFN2xkT01iV1FnbFBKdlJ5R05RUGR0dW5ER29NZU43dEdrZDlmeThwcTJwV3R5UzlwZlUxaHpsemUyUFo5Q1JxR2tKcjVVSjZ1MFI1c3pHSEJSem9IT1YzbllmMVZzdm5QWlJiVm0xbDJmbmVqWTBKQlQ2TGplOUZhaVpxZjJBUDBmN0Ird2pkcHFkWWVmeDNPa2F1NkZKemRIQ3RBaE45Ylp1cTNYUU9tdXhXazh0VGt2VWhtb3BXcnFXaFQ3WE03UTUyZ0t0VUZ1cHJkYldhWnUwcmRvdTNodXpZUFlocGZDU3FqQnoxYUltcFZZMUtiV3NTYWwxVFVvdGJOSUJxcWJPRS9sQTBvSGtGZFZpR2FUaVFMVmJ5TDlscEdYa1djNjNxeFczakFQa1dXNjliMjloblB6N0d1YWQya3E2MWQ1R3VzMm1MZTN0OWc3U0hYWTVhYm05azNRbitZdmJ1NmlsckViaTd5SGRZNzlPK3JxOWwzU3YvUWJwRzNZRmFZV2FUMHFObENmZGI3OUpTcTEzVW1yQmsxSXJucFJhOHFSdjJZZElENmw1eWV5MzdjT2toKzBqcEVmc1N0SkthcnR6KzZpYWtjOCtSdmNodDkraCs0U3Jwd2VrNmdrQ2QvYlRQY25wenJ4S2l0SDRXSk9zNmoyWFYrTlFUeWswbEprUGVzL1gzS0hqOEU3S2RkVFZiVmJLTjJKdXVpWGsyVHl0Z1B5NlRDc2hyNVpwNVZxRmRrZzdycDNVVG1tbnRiUGFCZTJTZHAxejd2RG1QSkxIOEhhOEU0L2x2Y2lYUTNrcXp3enRPVTgxcmpKZXppdnE3Q2Z2aU9ZaVVzVFU2aFdmS2pKRnRzZ1RCV0tCV0NaS2F2V0JQeWxPaWRQaXJMZ2dMb25ya2t0SE5wZVJNa2EyazUxa3JPd2xFNnA2d01zOFdTQVh5R1d5Uks2VFpiSmNWc2hEOHJnOEtVL0owL0tzdkNBdnllczYxeDI5dVI2cHgranQ5RTU2ck41TFQ5Q0g2cWw2cHA2dDUra0YrZ0o5bWE1V3NHdGFLOFpWTHRFVXVVUjc1QktQd3dlRDRZTWg4TUZRK09CcDVCNUo1SW5qN05mSVBmTGhqem5rajJ2c09TWmtSOWxGZGlNYkszdktPTEo5S1B5RHlRWmxra3dsbXlMVFpSYlpURGxlNXBMTm9hdWFTWGFHbkNNWGtKMHZsOGdWWkpmSklybUc3R3E2MWsxa1MrVVdXVTUydTl3ajk1T3RrQWRsSmRuREZBTW55TDRuMzVlbnlING9QNWFma2owdHo4anpaTTlSdkh4SjlndDVXVjRuZTAzZTBDVVRGRStXM3BTc1M3SFZrbXlFSHFYSGtJM1cyK2p0eWJiVE8rcGR5SGFtT094SnRydmVSMDhnRzY4SDlTU3lRL1VVUFoxc0dzWHNlTExqOUJ5ZFdvLzZGSDJHVHZrV3hmUjhmUW5aUlJUZlJXUlg2cXYxZFdUWDZxWDZGckpsK25aOUQ5bGRlb1Yra093Qi9iQituT3d4L1QzOWZiSW45US8xajhsK3BKL1d6NUQ5VEQrblh5RDd1ZjZGZnBuc0pmMmFmb1BzdHdZM0xDWU13M0NONW1URGpBZ2ppbXlrRVcyMElkdmFhR2RRYTlqb1lIUTJZc2wyTmJvYmZjajJNdUtOSU5sRVk2aVJRamJaU0RNeXlXWVk0d3lxTXh2WnhoUmpCdGw4bzhDWVQzYWVzY2hZUnJiUVdHbXNKbHRpckRWS3lhNDN5b3p0WkxjYXU0d0tzbnZwYmpsTTlwQnh6SGlQN0x2R1NlTkRzaDhZSHhtbnlYNWlmR2FjSTN2VytOejRndXhGNDVKQk9ZTnh4ZmpXNUV5WXpEUk0xUVBWTWNQTUNMTGhacVFaVGJhVjJkcWtkcGpaMXV4Z2RpYmJ5ZXhxZGlmYnpleGx4cE9OTXhQTm9XUUhtOGxtR3RsVU04TWNSemJMekRhbmtNMDE4ODBDc2pQTmVlWWlzZ3ZNUW5NbDJSVm1pYm1XN0JwenZWbEdkcE81MWFRUzJpdzM5NW9IeU80M0Q1bkh5RmFhNzVvbnlaNHdQekEvSW52Sy9NVDhqT3luNWxuemM3TG56WXZtSmJKZm1sZk1iOGxldDVobE1HRkp5N0hDeURhMXdxMUlzaTJ0VmxacnNqRldXNnNEMmZaV0o2c3IyUzVXTjZzWDJaNVduSlZJTnNFYWJDV1RUYkpTclF5eTZWYVdsVTEydkpWcjVaUE5zMlphODhqT3NSWlloV1NYV0N1c0VySkYxaHByUGRsMTFpWnJLOWt0VnJtMWwrd2VhNzkxaU94QnE5SjZsK3h4NndTbFpFR3ArcFQxQ2RtUHJVK3RzMlRQV09ldGkyUXZXRjlhVjhoZXRxN2JqT3dOVzlvT0U3WmxON1hEeVRhM1cySmtUWlFkZzFFeGJlejJkaWV5SGUwdUdJc1NhL2ZFS0pJK2RnSkdnQVR0Skp2U3Y1MWlwOXVVL3UxTWU3eWRxMHBWZXpQSzFvM1FVbFhDRXVrRDBnZWtMMGhma0w0Z2NTQnhJSEVnL1VENmdmUURpUWVKQjRrSDZRL1NINlEvU0FKSUFrZ0N5QUNRQVNBRFFCSkJFa0VTUVFhQ0RBUVpDQklFQ1lJRVFRYUJEQUlaQkRJRVpBaklFSkJra0dTUVpKQmhJTU5BaG9Ha2dLU0FwSUFNQnhrT01od2tGU1FWSkJWa0JNZ0lrQkVnYVNCcElHa2dJMEZHZ293RVNRZEpCMGtIR1FVeUNtUVVTQVpJQmtnR3lHaVEwU0NqUVRKQk1rRXlRY2FBakFFWkE1SUZrZ1dTQlRJV1pDeklXSkJ4SU9OQXhvRThBL0lNeURNZzQwSEdnNHdIbVFBeUFXUUNTRFpJTmtnMnlFU1FpU0FUUVhKQWNrQnlRQ2FCVEFLWkJKSUxrZ3VTQ3pJWlpETElaSkFwSUZOQXBvQk1CWmtLTWhVa0R5UVBKQTlrR3NnMGtHa2dNMEZtZ3N3RW1RVXlDMlFXU0FGSUFVZ0J5R3lRMlNDelFlYUF6QUdaQXpJWFpDN0lYSkI1SVBOQTVvRThCL0ljeUhNZzgwSG1nOHdIV1FpeUVHUWh5Q0tRUlNDTFFCYURMQVpaRExJRVpBbklFcERuUVo0SGVSNmtFS1FRcEJCa0tjaFNrS1VneTBDV2dTd0RXUTZ5SEdRNXlBcVFGU0FyUUY0QWVRSGtCWkNWSUN0QlZvS3NBbGtGc2dxa0NLUUlwQWlrR0tRWXBCaWtCS1FFcEFUa1JaQVhRVjRFV1EyeUdtUTF5RXNnTDRHOEJMSUdaQTNJR3BDWFFWNEdlUmxrTGNoYWtMVWdyNEM4QXZJS3lEcVFkU0RyUUY0RmVSWGtWWkQxSU90QjFvTnNBTmtBc2dHa0RLUU1wQXhrTzhoMkVLV2xxdVZpYjFiS04wSkxWU3ZHM3F5VWI0U1dVa21qeUFjZ1NrdlJ4dG1zbEcrRWxxSzlzMWtwa2RkQXRvSnNCZGtLc2cxa0c4ZzJFSVRIUm5pZ3BXZ2ZiVlpLWkFkSU9VZzVTRG5JVHBDZElEdEJkb0hzQXRrRnNodGtOOGh1a0QwZ2UwRDJnTHdPOGpySTZ5QjdRZmFDN0FWNUErUU5rRGRBS2tBcVFDcEE5b0hzQTlrSHNoOWtQOGgrRUxSb2JMUm9vS1ZvdTIyMkVmUFFVclRqTmlzbDhsdVFneUFIUVE2Q3ZBWHlGc2hiSUlkQURvRWNBbmtiNUcyUXQwRU9neHdHT1F4eUJPUUl5QkdRU3BCS2tFcVFveUJIUVk2Q0hBTTVCbklNNUIyUWQwRGVBVGtPY2h4RWFhbURQTk5CbmdrdGRaQm5Pc2d6b2FWT1BrZytTRDdJZEpEcElOTkJab0RNQUprQjhpeklzeURQZ2lEdmRaRDNRa3NkNUwwTzhsNW9xUU1QT3ZBZ3ROU0JCeDE0RUZycXdJTU9QQWd0VlMxaWU3TlN2aEZhcW1hT0p2STF5TmNnbDBFdWcxd0crUWJrRzVCdlFLNkFYQUc1QW5JVjVDcklWWkJySU5kQWxLcTVPS0paRTlhRnhXS0VXeHhMd0JpM1pKYnFqM1B6VmhRYXlCaldFZ29FZGdkMjQ1bU1hbCtyV1JCVUx6L1Y3MEgxUVZQOWhGUVBDZlcrWHJYaTFmTWIxUmRDUFJGS2ZQQm5KZDV6QkRvL3A0L0dPckVJaERLTFpiTXB0ZnFSRnJIVmJDMWJ6emJoeWM4ZVZvRzVJRGd6MUF6MzFMcE5weHFJeWJPb2p1SHljVlJuYU1JblVCMmdHYytoMHZrblRLMWx5ckh1TE1mYXN4eWo4emhHNkduNHFIZjhhcFpPMWZPQXloRDBPZldlRnF2bmRtdjlwNHVVZStMWms0YVBtbVZCclJKY2pybGFPSDBxVVVJR1VTb0drUjhQUVhrWWhNK0hvQ1FNd3R0RFVBWUc0ZWNoS1AyQ0tQR0NLT1dDS05tQ0tNMkNLTUdDeU11SG9Pd0tvcndLb293S29sd0tvaXdLb3Z3SklvOGZncEluaU5JbWlCSW1pRklsU09XODRFK1RwYlllVHlLN0Z1RlFkOWNRcG1GbHFlWjRhc1A1WkxVSDV0c0RReTNpYWRRY2tsQmJlQm8xaEtSYVQyWFVXeEtKc2dsejYxelpXUDIraEdIRVpOV3F1b3oxWmZYMWhwdnpUSW9YN3d4RldFMGlpZzIrNlJ6M3MrNTlmWWFyaE9KVXZkdngzcjQwcHBDdEpuOUl5akhVLzZSR0ZyWk9yQTFwZS85OU1lVXd5RytxY3k1Vys5MWc2SjdqR2JWVldRZks3MXJlZHQvN3VjYTZ6cGVOMWNrNzB2K3M2dnU3WWMrWVEvR2lVd3lwLytQOE41QU5mVTV2RGRxWVduZEoxUmJxcjRYK2RvUDlWSmp5d1BkVFhVY2ZXcDJXVWh2aytFa2hLU0t0UWM0UTQ4ZFB1NXRpTWpURzFWK3YzT1AyaGY3MktYNE1EZlhmZFQ1WStHOFZxb1k5UzJGMW1WSGxqU1MvVDFuRFhFMURuNmZxZXRMSWo3by83aUVaZlRNYTZvb2Eva3lGZDVjdjRFMm9GeUp2OWVDcXNOUlgzNUFmbnVsT0lUcjJvNFhvbU45WEpJYTByVCtqSnZObkwvYjZYbmlyQnVjdzcyMW5hRzBxdzN2SGhTZER2ZkUwYUFDTzFnRXBqdXJkbFBONzVWcy9kcXNWdlcyL1IzQjFmMkRIVzdma2R2MTZWYjdkaktmdzRmNXFJaFA1Sko3TEYvTWwvb29pTDFHTjByc3ExUlpRbzFDQ2ZpanUvM3dteitCanFkWStrOC9pSzZnKzYxM25Bdjg2TXhyZ091OTBoU3BraS8zclRQV3ZNLzRCcnZQbUs2dzUvdi8rZFk2b1YzK09hTFQrTEd4Z2Z4WTJrdXNjVmEvK0hOVm8vYm04Z2YyNXZKRmM1N2dHdnM1eGplUTZpeHI0T29zYXlYV20xV3Y2VEd1MDZYTnBBL3ZUTzM0NGFudHhmdDFLbmVQZVIwS3BmaklKdHptN04wYTZGZFhqMUp4TFV2WG5vaHJoYjVuWHo2bDU5WE96Q1BjcTA5UWU2bW1zY1VEOWhiWFphc1l4bDdFcDlMOFNZZTNmWUQxMDdpY09icmVhWGMwNHJ2L0wxN0NiMVl3OXoyVkZlTjdic0Zkd3B6aFZmUy9uTnJKUTdXNlVvZkxpYW5ZakM5WHVSaGtxTDY3bU5MSlE3ZjVCcUFwWVBzdHQ4RkJwM0hzR01PaTJJZnp4UTlXblVZWXE3aTVDVmZXbVNJM201UlNlWkRVL0RFYVhlTE9hVTJuZkpCeS9IR1ZxNXN4anBJT2FxUGtsKzdQRUpoR3dnNXEwSURxc1NVdWxUUFZFVit2OGFHRnFIa1ExSThvNnNaelZ6QVZxWU9iTm1oaytXN05tYm9UYndtM3Avc3lOZEI5Mm85eWZ1NjNjUjl4bzkxRTN4bjNNVmU4aTZwNXprUFprc1ZoQlNvMlNUd2w1M3pqSG4yL21Gdk1pdXI5MEk2QXRvQzJoUDROR1FoK0dSa0YvRG0wRmZRUWFEWDBVR2dOOUROcjZnY0wwblhnTTJocjZDMmdiNkMraGJhRi9CbTBIL1hOb2U2V3lPZlFoYUxoU013QjE4ZVpQc0grMlQ5aS9ZNkd6RkZFOXlQMkYyOFp0NjZwM3BqVnpzSVRPRjRUWldkeFVKa1dVZUVLTXJ2VmJKSjVwUmJnam1hbm04QkNSb3ArSUZUMXEvMzNUL0VNdHNFOEhONTA5SktKRkhoTnFoTDJhZlNqd2U1eGhXczFmZ1lzaTcyNjJrd0dNMzY4NVJ3eFRxMW0xWmZIdUNOWk0zQkM5L2IwN2lCdDB6QjcwYlRvZDh3WWRIYjlMcCtaM090WWRmcWZycWY2OWpyTjJZbWx1R2d1L3hWbVRWUHlFSEI5YjFubit1OWpTRDBrUzRyak9NRkhzNlc2Nk84TjkxcDNwemtMS0MwZU9NQjdmdlZFWkdEbmlsVElZUGVubEJ1bzlYZFdUVDNVOEIvM1ZFdEZITFpIVkh0V2g2dERvSjhEVTJwdnVMZS8rMjY0M3lBYzVxa2ZXRnVnTzZCN29tOUFEME45Q0QwTGZnaDVXU2tkUXV0OVJMUWx2L3FwNHpCQ1JpbkdFT2VncFVEV0g3NTNhQjV6M2R0U2IrQVRvSUtVVXFtS0VxaGloS2thb2loR3FZb1NxR0tFcVJxaUtFYXBpaEtvWW9TcXVIczFRNXpnVnJVSTdxRlZxNzJvbnRRKzFqN1ZQdGJOWUUrQ3lkcDFUczRPN3ZEbHZ5VnZ4MXJ3ZDc0aVZBWHBSL1RuSWszZ3F0YUxHOFJ5ZVI2WEZQTDZJTCtORmZBMWZyOW96ZkE5V0JEakczK1B2ODFQOEUvNFpQOGN2OEMvNUZmNHQxZ1ZvS3NJcGZVYUxOcUs5NkNTNml1NmlqMGdRZzBXeVNCT1pZcnpJRmZtaUFPc0JyQkFsWXEwb0ZWdEV1ZGdyRG9qRFdBUGdBL0dST0MzT2lQUGlvcmdrcnRIOUtLVWp3MlNFakpJeHNxM3NJRHQ3NHdtd0dnQkdFTWhzT2NVYk15QUxHNnpVcS9KZUgyaGZhQnkwSHpRZTJqL0V3d09naWRDQjBHQ041L2tRYURKMEdEUUZPaHlhQ2gwQlRZT09oS1pEUjBFem9LT2htZEF4MEN6b1dPZzQ2RFBROGRBSjBHem9SR2dPZEJJMEZ6b1pPZ1U2RlpvSG5RYWRDWjBGTFlET2hzNkJ6b1hPZ3o0SG5ROWRDRjBFWFF4ZEFuMGVXZ2hkQ2wwR1hRNWRBWDBCdWhLNkNsb0VMWWFXUUYrRXJvYStCRjBEZlJtNkZ2b0tkQjMwVmVoNjZBWm9HWFM3VWdQcHozb2Yra0ZJU24wTnVoVzZEYm85SkFXWFEzZENkMEYzaDZUczE2RjdvVzlBa1k3dGZkRDlkNUg2RDBIZnJza0o3Q1BRU3VoUjZESG9POURqeUNmZ093ZStjL0toMDZFem9NOUM0Vk5uVmtqdXNxODZqK0h1SmVqWDBNdlFiNkJYb0ZlaDEwaTlaeXZxWDF0Vi84ckt5WDNHL3g0MXpmdXUxc2Z1OEZUZXBOejIwYjFuNWVXMGorNDNkbkllYWQ3WWllMmpFMGZuNXo2Vk56cXpmZlN0dG9nZm01bm5iZGMrT2ttdGFjbitCMlMvdU5rTkNtVnVaSE4wY21WaGJRMEtaVzVrYjJKcUNqRXdJREFnYjJKcUNqdzhMMFpwYkhSbGNpOUdiR0YwWlVSbFkyOWtaUzlNWlc1bmRHZ2dNakk1TDB4bGJtZDBhREVnTXpZeFBqNXpkSEpsWVcwTkNsZ0pYWkJOYXNRd0RJWDNnZHhCeStsaXNDZWx1eEFvVXdwWjlJZW1QWUJqSzhIUXlFWnhGcmw5RmFjTlE3V1FrUFUrOFN4MWJaOWE4Z25VT3dmYllZTEJrMk9jdzhJV29jZlJVMWxjS25EZXByODJGenVaV0JaSytHNmRFMDR0RFFIcUd0U0hUT2ZFSzV3ZVhlanhEdFFiTzJSUEk1eStycDMwM1JMak4wNUlDVFEwRFRnY3RrMHZKcjZhQ1VGbDd0dzZFZmkwbmdXNmtYeXVFYUhhSHk2N0l4c2N6dEZZWkVNamxrV3RKUnFvbnlXYXNrQnkveFcvWUQvY0VQZENhUDFnYzZuMERoNktiVW4rOFdIVExzemlNQjhtTzlzOGVjTGplREhFek9YMEEzeWtjcVFOQ21WdVpITjBjbVZoYlEwS1pXNWtiMkpxQ2pFeElEQWdiMkpxQ2p3OEwxUjVjR1V2Um05dWRFUmxjMk55YVhCMGIzSXZRWE5qWlc1MElEY3lPQzlEWVhCSVpXbG5hSFFnTUM5RVpYTmpaVzUwSUMweU1UQXZSbXhoWjNNZ016SXZSbTl1ZEVKQ2IzaGJMVFU0TUNBdE1qVTNJREUwTnpNZ01UQXdNMTB2Um05dWRFNWhiV1V2UVVKRFJFVkZLMDFwWTNKdmMyOW1kQ015TUZOaGJuTWpNakJUWlhKcFppOUpkR0ZzYVdOQmJtZHNaU0F3TDFOMFpXMVdJREF2Um05dWRFWnBiR1V5SURrZ01DQlNQajROQ21WdVpHOWlhZ294TWlBd0lHOWlhZ284UEM5VWVYQmxMMFp2Ym5SRVpYTmpjbWx3ZEc5eUwwRnpZMlZ1ZENBM01qZ3ZRMkZ3U0dWcFoyaDBJREF2UkdWelkyVnVkQ0F0TWpFd0wwWnNZV2R6SURNeUwwWnZiblJDUW05NFd5MDFPREFnTFRJMU55QXhORGN6SURFd01ETmRMMFp2Ym5ST1lXMWxMMEZDUTBSRlJTdE5hV055YjNOdlpuUWpNakJUWVc1ekl6SXdVMlZ5YVdZdlNYUmhiR2xqUVc1bmJHVWdNQzlUZEdWdFZpQXdMMFp2Ym5SR2FXeGxNaUE1SURBZ1VqNCtEUXBsYm1Sdlltb0tNVE1nTUNCdlltb0tQRHd2Vkhsd1pTOURZWFJoYkc5bkwxQmhaMlZ6SURnZ01DQlNMMVpsY25OcGIyNHZNUzQzTDAxbGRHRmtZWFJoSURFMUlEQWdVajQrRFFwbGJtUnZZbW9LTVRRZ01DQnZZbW9LUER3dlZHbDBiR1U4UGk5QmRYUm9iM0k4UGk5VGRXSnFaV04wUEQ0dlEzSmxZWFJ2Y2loQmMzQnZjMlVnVUhSNUlFeDBaQzRwTDFCeWIyUjFZMlZ5S0VGemNHOXpaUzVRUkVZZ1ptOXlJQzVPUlZRZ01qTXVPUzR3S1M5RGNtVmhkR2x2YmtSaGRHVW9SRG95TURJME1EWXhOREEzTlRReE1Wb3dNQ2N3TUNjcEwwMXZaRVJoZEdVb1JEb3lNREkwTURZeE5EQTNOVFF4TVNzd01DY3dNQ2NwUGo0TkNtVnVaRzlpYWdveE5TQXdJRzlpYWdvOFBDOU1aVzVuZEdnZ01qTTNMMVI1Y0dVdlRXVjBZV1JoZEdFdlUzVmlkSGx3WlM5WVRVdytQbk4wY21WaGJRMEtQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SStDaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlJQzgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrRFFwbGJtUnpkSEpsWVcwTkNtVnVaRzlpYWdwNGNtVm1DakFnTVRZTkNqQXdNREF3TURBd01EQWdOalUxTXpVZ1pnMEtNREF3TURBd01EQXlNeUF3TURBd01DQnVEUW93TURBd01EQXdNRGN5SURBd01EQXdJRzROQ2pBd01EQXdNREF5TnpZZ01EQXdNREFnYmcwS01EQXdNREF3TVRRM05DQXdNREF3TUNCdURRb3dNREF3TURBeU5qY3lJREF3TURBd0lHNE5DakF3TURBd05UVTRPVEFnTURBd01EQWdiZzBLTURBd01ESXhOVEUzTmlBd01EQXdNQ0J1RFFvd01EQXdNakUzTmpBeUlEQXdNREF3SUc0TkNqQXdNREF5TVRjM01EVWdNREF3TURBZ2JnMEtNREF3TURJNE5UYzVPU0F3TURBd01DQnVEUW93TURBd01qZzJNVEV4SURBd01EQXdJRzROQ2pBd01EQXlPRFl6TURjZ01EQXdNREFnYmcwS01EQXdNREk0TmpVd015QXdNREF3TUNCdURRb3dNREF3TWpnMk5UYzRJREF3TURBd0lHNE5DakF3TURBeU9EWTNOakFnTURBd01EQWdiZzBLZEhKaGFXeGxjZ284UEM5U2IyOTBJREV6SURBZ1VpOUpibVp2SURFMElEQWdVaTlKUkZzOE16TXpOVEpFTXpRME5qSkVNelkwTVRKRU5ESTBNVEpFTkRJek5ESkVNekErUERNek16VXlSRE0wTkRZeVJETTJOREV5UkRReU5ERXlSRFF5TXpReVJETXdQbDB2VTJsNlpTQXhOajQrQ25OMFlYSjBlSEpsWmdveU9EY3dOelVLSlNWRlQwWUtcIjtcclxuIiwiaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gXCIuLi9Nb2RlbHMvSW52b2ljZVwiO1xyXG5pbXBvcnQgeyBNb2NrQWNjb3VudERhdGEgfSBmcm9tIFwiLi9Nb2NrQWNjb3VudERhdGFcIjtcclxuaW1wb3J0IHsgTW9ja0Jhc2U2NEludm9pY2VQREYgfSBmcm9tIFwiLi9Nb2NrQmFzZTY0SW52b2ljZVBERlwiO1xyXG5cclxuLyoqIE1vY2sgZGF0YSBmb3IgSW52b2ljZXMgKi9cclxuZXhwb3J0IGNvbnN0IE1vY2tJbnZvaWNlRGF0YTogSW52b2ljZVtdID0gW1xyXG4gICAge1xyXG4gICAgICAgIGludm9pY2VpZDogXCIxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTFcIixcclxuICAgICAgICBpbnZvaWNlbnVtYmVyOiBcIjYwMDQ2NzU0XCIsXHJcbiAgICAgICAgZHVlZGF0ZTogXCIyMDI0LTAzLTE1XCIsXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9wYXltZW50bWV0aG9kY29kZTogXCJERFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0SW52b2ljZVBERixcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMjogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMzogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNDogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNTogbnVsbCxcclxuICAgICAgICBtc2R5bl9pbnZvaWNlZGF0ZTogXCIyMDI0LTAzLTEzXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGludm9pY2VpZDogXCIyMjIyMjIyMi0yMjIyLTIyMjItMjIyMi0yMjIyMjIyMjIyMjJcIixcclxuICAgICAgICBpbnZvaWNlbnVtYmVyOiBcIjYwMDQ2NzU1XCIsXHJcbiAgICAgICAgZHVlZGF0ZTogXCIyMDI0LTAzLTIwXCIsXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9wYXltZW50bWV0aG9kY29kZTogXCJERFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0SW52b2ljZVBERixcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMjogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMzogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNDogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNTogbnVsbCxcclxuICAgICAgICBtc2R5bl9pbnZvaWNlZGF0ZTogXCIyMDI0LTAzLTE0XCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGludm9pY2VpZDogXCIzMzMzMzMzMy0zMzMzLTMzMzMtMzMzMy0zMzMzMzMzMzMzMzNcIixcclxuICAgICAgICBpbnZvaWNlbnVtYmVyOiBcIjYwMDQ2NzU2XCIsXHJcbiAgICAgICAgZHVlZGF0ZTogXCIyMDI0LTAzLTI1XCIsXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9wYXltZW50bWV0aG9kY29kZTogXCJERFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0SW52b2ljZVBERixcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMjogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMzogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNDogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNTogbnVsbCxcclxuICAgICAgICBtc2R5bl9pbnZvaWNlZGF0ZTogXCIyMDI0LTAzLTE0XCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGludm9pY2VpZDogXCI0NDQ0NDQ0NC00NDQ0LTQ0NDQtNDQ0NC00NDQ0NDQ0NDQ0NDRcIixcclxuICAgICAgICBpbnZvaWNlbnVtYmVyOiBcIjYwMDQ2NzU3XCIsXHJcbiAgICAgICAgZHVlZGF0ZTogXCIyMDI0LTAzLTMwXCIsXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9wYXltZW50bWV0aG9kY29kZTogXCJERFwiLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxOiBNb2NrQmFzZTY0SW52b2ljZVBERixcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMjogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMzogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNDogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNTogbnVsbCxcclxuICAgICAgICBtc2R5bl9pbnZvaWNlZGF0ZTogXCIyMDI0LTAzLTE4XCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGludm9pY2VpZDogXCI1NTU1NTU1NS01NTU1LTU1NTUtNTU1NS01NTU1NTU1NTU1NTVcIixcclxuICAgICAgICBpbnZvaWNlbnVtYmVyOiBcIjYwMDQ2NzU4XCIsXHJcbiAgICAgICAgZHVlZGF0ZTogXCIyMDI0LTA0LTA1XCIsXHJcbiAgICAgICAgX2N1c3RvbWVyaWRfdmFsdWU6IE1vY2tBY2NvdW50RGF0YVswXS5hY2NvdW50aWQsXHJcbiAgICAgICAgYmlzdGVjaF9wYXltZW50bWV0aG9kY29kZTogXCJCQUNTXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDE6IE1vY2tCYXNlNjRJbnZvaWNlUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsLFxyXG4gICAgICAgIG1zZHluX2ludm9pY2VkYXRlOiBcIjIwMjQtMDMtMjhcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW52b2ljZWlkOiBcIjY2NjY2NjY2LTY2NjYtNjY2Ni02NjY2LTY2NjY2NjY2NjY2NlwiLFxyXG4gICAgICAgIGludm9pY2VudW1iZXI6IFwiNjAwNDY3NTlcIixcclxuICAgICAgICBkdWVkYXRlOiBcIjIwMjQtMDQtMTBcIixcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3BheW1lbnRtZXRob2Rjb2RlOiBcIkREXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDE6IE1vY2tCYXNlNjRJbnZvaWNlUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsLFxyXG4gICAgICAgIG1zZHluX2ludm9pY2VkYXRlOiBcIjIwMjQtMDQtMDNcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW52b2ljZWlkOiBcIjc3Nzc3Nzc3LTc3NzctNzc3Ny03Nzc3LTc3Nzc3Nzc3Nzc3N1wiLFxyXG4gICAgICAgIGludm9pY2VudW1iZXI6IFwiNjAwNDY3NjBcIixcclxuICAgICAgICBkdWVkYXRlOiBcIjIwMjQtMDQtMTVcIixcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzBdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3BheW1lbnRtZXRob2Rjb2RlOiBcIkNDXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDE6IE1vY2tCYXNlNjRJbnZvaWNlUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsLFxyXG4gICAgICAgIG1zZHluX2ludm9pY2VkYXRlOiBcIjIwMjQtMDQtMDNcIixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgaW52b2ljZWlkOiBcIjg4ODg4ODg4LTg4ODgtODg4OC04ODg4LTg4ODg4ODg4ODg4OFwiLFxyXG4gICAgICAgIGludm9pY2VudW1iZXI6IFwiNjAwNDY3NjFcIixcclxuICAgICAgICBkdWVkYXRlOiBcIjIwMjQtMDQtMjBcIixcclxuICAgICAgICBfY3VzdG9tZXJpZF92YWx1ZTogTW9ja0FjY291bnREYXRhWzFdLmFjY291bnRpZCxcclxuICAgICAgICBiaXN0ZWNoX3BheW1lbnRtZXRob2Rjb2RlOiBcIkREXCIsXHJcbiAgICAgICAgYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDE6IE1vY2tCYXNlNjRJbnZvaWNlUERGLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0OiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1OiBudWxsLFxyXG4gICAgICAgIG1zZHluX2ludm9pY2VkYXRlOiBcIjIwMjQtMDQtMTJcIixcclxuICAgIH0sXHJcbl07XHJcbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IENhc2VUeXBlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VUeXBlXCI7XHJcbmltcG9ydCB7IEluY2lkZW50U3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9JbmNpZGVudFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgQ29udGFjdEZvclJldHJpZXZhbCB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQge1xyXG4gICAgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlLFxyXG4gICAgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEEsXHJcbn0gZnJvbSBcIi4uL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVcIjtcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gXCIuLi9Nb2RlbHMvUHJvZHVjdFwiO1xyXG5pbXBvcnQgeyBidWlsZFVwc2VydEJvZHksIENydWRTZXJ2aWNlLCBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb25kaXRpb25FeHByZXNzaW9uIH0gZnJvbSBcIi4uL1R5cGVzL0NvbmRpdGlvbkV4cHJlc3Npb25cIjtcclxuaW1wb3J0IHsgUG9ydGFsRW1haWwgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbEVtYWlsXCI7XHJcbmltcG9ydCB7IE1vY2tBY2NvdW50RGF0YSB9IGZyb20gXCIuLi9Nb2NrRGF0YS9Nb2NrQWNjb3VudERhdGFcIjtcclxuaW1wb3J0IHsgTW9ja1BvcnRhbENvbW1lbnREYXRhIH0gZnJvbSBcIi4uL01vY2tEYXRhL01vY2tQb3J0YWxDb21tZW50RGF0YVwiO1xyXG5pbXBvcnQgeyBNb2NrTWFqb3JJbmNpZGVudFVwZGF0ZURhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja01ham9ySW5jaWRlbnRVcGRhdGVEYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tQb3J0YWxFbWFpbERhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja1BvcnRhbEVtYWlsRGF0YVwiO1xyXG5pbXBvcnQgeyBNb2NrQ29udGFjdERhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja0NvbnRhY3REYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tJbmNpZGVudERhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja0luY2lkZW50RGF0YVwiO1xyXG5pbXBvcnQgeyBNb2NrUHJvZHVjdERhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja1Byb2R1Y3REYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tPcmRlckRhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja09yZGVyRGF0YVwiO1xyXG5pbXBvcnQgeyBNb2NrUG9ydGFsSW52aXRhdGlvbkRhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja1BvcnRhbEludml0YXRpb25EYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlRGF0YSB9IGZyb20gXCIuLi9Nb2NrRGF0YS9Nb2NrUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGFcIjtcclxuaW1wb3J0IHsgUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbCB9IGZyb20gXCIuLi9Nb2RlbHMvUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBNYWpvckluY2lkZW50VXBkYXRlIH0gZnJvbSBcIi4uL01vZGVscy9NYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tIFwiLi4vTW9kZWxzL0FjY291bnRcIjtcclxuaW1wb3J0IHsgQ29udGFjdFN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Db250YWN0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IEZlZWRiYWNrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vVHlwZXMvRmVlZGJhY2tDYXRlZ29yeVwiO1xyXG5pbXBvcnQgeyBDdXN0b21lckFzc2V0IH0gZnJvbSBcIi4uL01vZGVscy9DdXN0b21lckFzc2V0XCI7XHJcbmltcG9ydCB7IFBvcnRhbEludml0YXRpb24gfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbEludml0YXRpb25cIjtcclxuaW1wb3J0IHsgUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZSB9IGZyb20gXCIuLi9Nb2RlbHMvUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZVwiO1xyXG5pbXBvcnQgeyBCbG9nUG9zdCB9IGZyb20gXCIuLi9Nb2RlbHMvQmxvZ1Bvc3RcIjtcclxuaW1wb3J0IHsgTW9ja0Jsb2dQb3N0RGF0YSB9IGZyb20gXCIuLi9Nb2NrRGF0YS9Nb2NrQmxvZ1Bvc3REYXRhXCI7XHJcbmltcG9ydCB7IE9yZGVyIH0gZnJvbSBcIi4uL01vZGVscy9PcmRlclwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlIH0gZnJvbSBcIi4uL01vZGVscy9OZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlXCI7XHJcbmltcG9ydCB7IE1vY2tOZXR3b3JrT3JkZXJEYXRhIH0gZnJvbSBcIi4uL01vY2tEYXRhL01vY2tOZXR3b3JrT3JkZXJEYXRhXCI7XHJcbmltcG9ydCB7IE1vY2tDdXN0b21lckFzc2V0RGF0YSB9IGZyb20gXCIuLi9Nb2NrRGF0YS9Nb2NrQ3VzdG9tZXJBc3NldERhdGFcIjtcclxuaW1wb3J0IHsgT3JkZXJGb3JtIH0gZnJvbSBcIi4uL01vZGVscy9PcmRlckZvcm1cIjtcclxuaW1wb3J0IHsgTW9ja09yZGVyRm9ybURhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja09yZGVyRm9ybURhdGFcIjtcclxuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9Nb2RlbHMvUHJvamVjdFwiO1xyXG5pbXBvcnQgeyBNb2NrUHJvamVjdERhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja1Byb2plY3REYXRhXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlckZvclJldHJpZXZhbCB9IGZyb20gXCIuLi9Nb2RlbHMvTmV0d29ya09yZGVyRm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IE1vY2tJbnZvaWNlRGF0YSB9IGZyb20gXCIuLi9Nb2NrRGF0YS9Nb2NrSW52b2ljZURhdGFcIjtcclxuaW1wb3J0IHsgUHJvamVjdFRhc2sgfSBmcm9tIFwiLi4vTW9kZWxzL1Byb2plY3RUYXNrXCI7XHJcbmltcG9ydCB7IE1vY2tQcm9qZWN0VGFza0RhdGEgfSBmcm9tIFwiLi4vTW9ja0RhdGEvTW9ja1Byb2plY3RUYXNrRGF0YVwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlIH0gZnJvbSBcIi4uL01vZGVscy9JbnZvaWNlXCI7XHJcbmltcG9ydCB7IFByb2plY3RMb2cgfSBmcm9tIFwiLi4vTW9kZWxzL1Byb2plY3RMb2dcIjtcclxuaW1wb3J0IHsgTW9ja1Byb2plY3RMb2dEYXRhIH0gZnJvbSBcIi4uL01vY2tEYXRhL01vY2tQcm9qZWN0TG9nRGF0YVwiO1xyXG5cclxuLyoqXHJcbiAqIFBlcmZvcm0gTW9jayBBUEkgcmVxdWVzdHMgZm9yIGxvY2FsIGRldmVsb3BtZW50LCBzaW11bGF0aW5nIHRoZSByZWFsIGRhdGEgcmVzcG9uc2VzIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC5cclxuICogQHJldHVybnMgVGhlIENSVUQgb3BlcmF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjb25zdCB1c2VNb2NrQ3J1ZFNlcnZpY2U6ICgpID0+IENydWRTZXJ2aWNlID0gKCkgPT4ge1xyXG4gICAgY29uc3QgW3Byb2plY3RUYXNrRGF0YSwgc2V0UHJvamVjdFRhc2tEYXRhXSA9IHVzZVN0YXRlPFByb2plY3RUYXNrW10+KE1vY2tQcm9qZWN0VGFza0RhdGEpO1xyXG4gICAgY29uc3QgW2N1c3RvbWVyQXNzZXREYXRhLCBzZXRDdXN0b21lckFzc2V0RGF0YV0gPSB1c2VTdGF0ZTxDdXN0b21lckFzc2V0W10+KE1vY2tDdXN0b21lckFzc2V0RGF0YSk7XHJcbiAgICBjb25zdCBbY29udGFjdERhdGEsIHNldENvbnRhY3REYXRhXSA9IHVzZVN0YXRlPENvbnRhY3RGb3JSZXRyaWV2YWxbXT4oT2JqZWN0LnZhbHVlcyhNb2NrQ29udGFjdERhdGEpKTtcclxuICAgIGNvbnN0IFtpbmNpZGVudERhdGEsIHNldEluY2lkZW50RGF0YV0gPSB1c2VTdGF0ZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVbXT4oTW9ja0luY2lkZW50RGF0YSk7XHJcbiAgICBjb25zdCBbcHJvZHVjdERhdGEsIHNldFByb2R1Y3REYXRhXSA9IHVzZVN0YXRlPFByb2R1Y3RbXT4oTW9ja1Byb2R1Y3REYXRhKTtcclxuICAgIGNvbnN0IFtpbnZvaWNlRGF0YSwgc2V0SW52b2ljZURhdGFdID0gdXNlU3RhdGU8SW52b2ljZVtdPihNb2NrSW52b2ljZURhdGEpO1xyXG4gICAgY29uc3QgW29yZGVyRGF0YSwgc2V0T3JkZXJEYXRhXSA9IHVzZVN0YXRlPE9yZGVyW10+KE1vY2tPcmRlckRhdGEpO1xyXG4gICAgY29uc3QgW25ldHdvcmtPcmRlckRhdGEsIHNldE5ldHdvcmtPcmRlckRhdGFdID0gdXNlU3RhdGU8TmV0d29ya09yZGVyRm9yUmV0cmlldmVNdWx0aXBsZVtdPihNb2NrTmV0d29ya09yZGVyRGF0YSk7XHJcbiAgICBjb25zdCBbcHJvamVjdERhdGEsIHNldFByb2plY3REYXRhXSA9IHVzZVN0YXRlPFByb2plY3RbXT4oT2JqZWN0LnZhbHVlcyhNb2NrUHJvamVjdERhdGEpKTtcclxuICAgIGNvbnN0IFtwcm9qZWN0TG9nc0RhdGEsIHNldFByb2plY3RMb2dzRGF0YV0gPSB1c2VTdGF0ZTxQcm9qZWN0TG9nW10+KE1vY2tQcm9qZWN0TG9nRGF0YSk7XHJcbiAgICBjb25zdCBbb3JkZXJGb3JtRGF0YSwgc2V0T3JkZXJGb3JtRGF0YV0gPSB1c2VTdGF0ZTxPcmRlckZvcm1bXT4oT2JqZWN0LnZhbHVlcyhNb2NrT3JkZXJGb3JtRGF0YSkpO1xyXG4gICAgY29uc3QgW3BvcnRhbEVtYWlsRGF0YSwgc2V0UG9ydGFsRW1haWxEYXRhXSA9IHVzZVN0YXRlPFBvcnRhbEVtYWlsW10+KE1vY2tQb3J0YWxFbWFpbERhdGEpO1xyXG4gICAgY29uc3QgW3BvcnRhbENvbW1lbnREYXRhLCBzZXRQb3J0YWxDb21tZW50RGF0YV0gPSB1c2VTdGF0ZTxQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW10+KE1vY2tQb3J0YWxDb21tZW50RGF0YSk7XHJcbiAgICBjb25zdCBbcG9ydGFsSW52aXRhdGlvbkRhdGEsIHNldFBvcnRhbEludml0YXRpb25EYXRhXSA9IHVzZVN0YXRlPFBvcnRhbEludml0YXRpb25bXT4oTW9ja1BvcnRhbEludml0YXRpb25EYXRhKTtcclxuICAgIGNvbnN0IFthY2NvdW50RGF0YSwgc2V0QWNjb3VudERhdGFdID0gdXNlU3RhdGU8QWNjb3VudFtdPihNb2NrQWNjb3VudERhdGEpO1xyXG4gICAgY29uc3QgW2Jsb2dQb3N0RGF0YSwgc2V0QmxvZ1Bvc3REYXRhXSA9IHVzZVN0YXRlPEJsb2dQb3N0W10+KE1vY2tCbG9nUG9zdERhdGEpO1xyXG4gICAgY29uc3QgW21ham9ySW5jaWRlbnRVcGRhdGVEYXRhLCBzZXRNYWpvckluY2lkZW50VXBkYXRlRGF0YV0gPVxyXG4gICAgICAgIHVzZVN0YXRlPE1ham9ySW5jaWRlbnRVcGRhdGVbXT4oTW9ja01ham9ySW5jaWRlbnRVcGRhdGVEYXRhKTtcclxuICAgIGNvbnN0IFtwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlRGF0YSwgc2V0UG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGFdID0gdXNlU3RhdGU8UG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZVtdPihcclxuICAgICAgICBNb2NrUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGFcclxuICAgICk7XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGU8VEZvckNyZWF0ZSBleHRlbmRzIG9iamVjdCwgVFJldHVybiBleHRlbmRzIG9iamVjdD4oXHJcbiAgICAgICAgcGx1cmFsTG9naWNhbE5hbWU6IHN0cmluZyxcclxuICAgICAgICBib2R5OiBURm9yQ3JlYXRlLFxyXG4gICAgICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUUmV0dXJuPlxyXG4gICAgKTogUHJvbWlzZTx7IGlkOiBzdHJpbmcgfT4ge1xyXG4gICAgICAgIGNvbnN0IHsgZGF0YSwgaWRDb2x1bW5OYW1lLCBzZXR0ZXIsIG1vY2tDcmVhdGlvbkJlaGF2aW91ciB9ID0gZ2V0RGF0YVNldEluZm88VFJldHVybj4ocGx1cmFsTG9naWNhbE5hbWUpO1xyXG5cclxuICAgICAgICAvLyBCdWlsZCB0aGUgYm9keSAodW51c2VkOyBidXQgYWRkZWQgdG8gc2hvdyBlcnJvcnMgaW4gbG9jYWwgbW9kZSlcclxuICAgICAgICBidWlsZFVwc2VydEJvZHkoYm9keSwgbWV0YWRhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBpZCA9IG5ld0d1aWQoKTtcclxuICAgICAgICBjb25zdCBjcmVhdGVkUmVjb3JkID0gbW9ja0NyZWF0aW9uQmVoYXZpb3VyKHsgLi4uYm9keSwgW2lkQ29sdW1uTmFtZV06IGlkIH0gYXMgYW55IGFzIFRSZXR1cm4pO1xyXG5cclxuICAgICAgICBzZXR0ZXIoZGF0YS5jb25jYXQoW2NyZWF0ZWRSZWNvcmRdIGFzIFRSZXR1cm5bXSkpO1xyXG4gICAgICAgIGF3YWl0IGRlbGF5VGltZSgxMDAwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgaWQgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGluaGVyaXRkb2MgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlTXVsdGlwbGU8VCBleHRlbmRzIG9iamVjdD4oXHJcbiAgICAgICAgcGx1cmFsTG9naWNhbE5hbWU6IHN0cmluZyxcclxuICAgICAgICBtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VD4sXHJcbiAgICAgICAgZmlsdGVycz86IENvbmRpdGlvbkV4cHJlc3Npb248VD5bXVxyXG4gICAgKTogUHJvbWlzZTxUW10+IHtcclxuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGdldERhdGFTZXRJbmZvPFQ+KHBsdXJhbExvZ2ljYWxOYW1lLCBmaWx0ZXJzKTtcclxuXHJcbiAgICAgICAgYXdhaXQgZGVsYXlUaW1lKDEwMCAqIGRhdGEubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZTxUIGV4dGVuZHMgb2JqZWN0PihcclxuICAgICAgICBwbHVyYWxMb2dpY2FsTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHJlY29yZElkOiBzdHJpbmcsXHJcbiAgICAgICAgbWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhPFQ+XHJcbiAgICApOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICBjb25zdCB7IGRhdGEsIGlkQ29sdW1uTmFtZSB9ID0gZ2V0RGF0YVNldEluZm88VD4ocGx1cmFsTG9naWNhbE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCByZWNvcmQgPSBkYXRhLmZpbmQoKHJlY29yZCkgPT4gKHJlY29yZFtpZENvbHVtbk5hbWVdIGFzIGFueSBhcyBzdHJpbmcpID09PSByZWNvcmRJZCk7XHJcbiAgICAgICAgYXdhaXQgZGVsYXlUaW1lKDUwMCk7XHJcblxyXG4gICAgICAgIGlmICghcmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIGAke3BsdXJhbExvZ2ljYWxOYW1lfSByZWNvcmQgd2l0aCAke2lkQ29sdW1uTmFtZS50b1N0cmluZygpfSBvZiAnJHtyZWNvcmRJZH0nIHdhcyBub3QgZm91bmRgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAgICAgIHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcmVjb3JkSWQ6IHN0cmluZyxcclxuICAgICAgICBib2R5OiBQYXJ0aWFsPFQ+LFxyXG4gICAgICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUPlxyXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgeyBkYXRhLCBpZENvbHVtbk5hbWUsIHNldHRlciB9ID0gZ2V0RGF0YVNldEluZm88VD4ocGx1cmFsTG9naWNhbE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCBleGlzdGluZ1JlY29yZDogVCA9IGF3YWl0IHJldHJpZXZlPFQ+KHBsdXJhbExvZ2ljYWxOYW1lLCByZWNvcmRJZCwgbWV0YWRhdGEpO1xyXG5cclxuICAgICAgICBhd2FpdCBkZWxheVRpbWUoMTAwMCk7XHJcblxyXG4gICAgICAgIC8vIEJ1aWxkIHRoZSBib2R5ICh1bnN1ZWQ7IGJ1dCBhZGRlZCB0byBzaG93IGVycm9ycyBpbiBsb2NhbCBtb2RlKVxyXG4gICAgICAgIGJ1aWxkVXBzZXJ0Qm9keShib2R5LCBtZXRhZGF0YSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSZWNvcmQgPSB7IC4uLmV4aXN0aW5nUmVjb3JkLCAuLi5ib2R5IH07XHJcblxyXG4gICAgICAgIHNldHRlcihcclxuICAgICAgICAgICAgZGF0YS5maWx0ZXIoKHJlY29yZCkgPT4gcmVjb3JkW2lkQ29sdW1uTmFtZV0gIT09IHVwZGF0ZWRSZWNvcmRbaWRDb2x1bW5OYW1lXSkuY29uY2F0KFt1cGRhdGVkUmVjb3JkXSBhcyBUW10pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgYXdhaXQgZGVsYXlUaW1lKDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZGlzYXNzb2NpYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAgICAgIHBsdXJhbExvZ2ljYWxOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcmVjb3JkSWQ6IHN0cmluZyxcclxuICAgICAgICBmaWxlZE5hbWU6IHN0cmluZyxcclxuICAgICAgICBtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VD5cclxuICAgICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHsgZGF0YSwgaWRDb2x1bW5OYW1lLCBzZXR0ZXIgfSA9IGdldERhdGFTZXRJbmZvPFQ+KHBsdXJhbExvZ2ljYWxOYW1lKTtcclxuXHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdSZWNvcmQ6IFQgPSBhd2FpdCByZXRyaWV2ZTxUPihwbHVyYWxMb2dpY2FsTmFtZSwgcmVjb3JkSWQsIG1ldGFkYXRhKTtcclxuXHJcbiAgICAgICAgYXdhaXQgZGVsYXlUaW1lKDEwMDApO1xyXG5cclxuICAgICAgICBjb25zdCB1cGRhdGVkUmVjb3JkID0geyAuLi5leGlzdGluZ1JlY29yZCwgW2ZpbGVkTmFtZV06IG51bGwgfTtcclxuXHJcbiAgICAgICAgc2V0dGVyKFxyXG4gICAgICAgICAgICBkYXRhLmZpbHRlcigocmVjb3JkKSA9PiByZWNvcmRbaWRDb2x1bW5OYW1lXSAhPT0gdXBkYXRlZFJlY29yZFtpZENvbHVtbk5hbWVdKS5jb25jYXQoW3VwZGF0ZWRSZWNvcmRdIGFzIFRbXSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBhd2FpdCBkZWxheVRpbWUoMTAwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlRmVlZGJhY2tQb3J0YWxBY3Rpb24oXHJcbiAgICAgICAgZmVlZGJhY2tEZXNjcmlwdGlvbjogc3RyaW5nLFxyXG4gICAgICAgIGZlZWRiYWNrQ2F0ZWdvcnk6IEZlZWRiYWNrQ2F0ZWdvcnlcclxuICAgICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGF3YWl0IGRlbGF5VGltZSgyMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGluaGVyaXRkb2MgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVSZXF1ZXN0Q2xvc3VyZVBvcnRhbEFjdGlvbihpbmNpZGVudElkOiBzdHJpbmcpOiBQcm9taXNlPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT4ge1xyXG4gICAgICAgIGNvbnN0IGluY2lkZW50ID0gYXdhaXQgcmV0cmlldmUoXCJpbmNpZGVudHNcIiwgaW5jaWRlbnRJZCwgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEEpO1xyXG5cclxuICAgICAgICBhd2FpdCB1cGRhdGUoXHJcbiAgICAgICAgICAgIFwiaW5jaWRlbnRzXCIsXHJcbiAgICAgICAgICAgIGluY2lkZW50SWQsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHN0YXR1c2NvZGU6XHJcbiAgICAgICAgICAgICAgICAgICAgaW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiUmVzb2x2ZWRcIl1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zZWRcIl1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zdXJlIFJlcXVlc3RlZFwiXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgcmV0cmlldmUoXCJpbmNpZGVudHNcIiwgaW5jaWRlbnRJZCwgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVJlcXVlc3RSZW9wZW5Qb3J0YWxBY3Rpb24oaW5jaWRlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+IHtcclxuICAgICAgICBhd2FpdCB1cGRhdGUoXHJcbiAgICAgICAgICAgIFwiaW5jaWRlbnRzXCIsXHJcbiAgICAgICAgICAgIGluY2lkZW50SWQsXHJcbiAgICAgICAgICAgIHsgc3RhdHVzY29kZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0gfSxcclxuICAgICAgICAgICAgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgcmV0cmlldmUoXCJpbmNpZGVudHNcIiwgaW5jaWRlbnRJZCwgUkVUUklFVkVfTVVMVElQTEVfSU5DSURFTlRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVNlbmRJbnZpdGF0aW9uUG9ydGFsQWN0aW9uKGNvbnRhY3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgZGVsYXlUaW1lKDIwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUNsb3NlUHJvamVjdFRhc2socHJvamVjdFRhc2tJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCBkZWxheVRpbWUoMjAwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBtb2NrZWQgZGF0YSBzZXQgZm9yIGEgc3BlY2lmaWMgZW50aXR5LlxyXG4gICAgICogQHBhcmFtIHBsdXJhbExvZ2ljYWxOYW1lIFBsdXJhbCBsb2dpY2FsIG5hbWUgb2YgdGhlIGVudGl0eSB0byByZXRyaWV2ZS5cclxuICAgICAqIEByZXR1cm5zIE1vY2tlZCBkYXRhIHNldCBvZiB0aGUgc3BlY2lmaWMgZW50aXR5LlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXREYXRhU2V0SW5mbzxUPihcclxuICAgICAgICBwbHVyYWxMb2dpY2FsTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIGZpbHRlcnM/OiBDb25kaXRpb25FeHByZXNzaW9uPFQ+W11cclxuICAgICk6IHtcclxuICAgICAgICBkYXRhOiBUW107XHJcbiAgICAgICAgaWRDb2x1bW5OYW1lOiBrZXlvZiBUO1xyXG4gICAgICAgIHNldHRlcjogKGZpZWxkczogVFtdKSA9PiB2b2lkO1xyXG4gICAgICAgIG1vY2tDcmVhdGlvbkJlaGF2aW91cjogKHJlY29yZDogVCkgPT4gVDtcclxuICAgIH0ge1xyXG4gICAgICAgIHN3aXRjaCAocGx1cmFsTG9naWNhbE5hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSBcImNvbnRhY3RzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIENvbnRhY3RGb3JSZXRyaWV2YWwgPSBcImNvbnRhY3RpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShjb250YWN0RGF0YSBhcyBhbnlbXSBhcyBUW10sIGZpbHRlcnMpIGFzIGFueSBhcyBUW10sXHJcbiAgICAgICAgICAgICAgICAgICAgaWRDb2x1bW5OYW1lOiBjb2x1bW5OYW1lIGFzIGtleW9mIFQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGVyOiBzZXRDb250YWN0RGF0YSBhcyBhbnkgYXMgKGZpZWxkczogVFtdKSA9PiB2b2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vY2tDcmVhdGlvbkJlaGF2aW91cjogKChyZWNvcmQ6IENvbnRhY3RGb3JSZXRyaWV2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN0YXRlY29kZSA9IENvbnRhY3RTdGF0ZUNvZGVbXCJBY3RpdmVcIl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiaW5jaWRlbnRzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSA9IFwiaW5jaWRlbnRpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShpbmNpZGVudERhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0SW5jaWRlbnREYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jcmVhdGVkb24gPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdGF0dXNjb2RlID0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiT3BlblwiXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhc2V0eXBlY29kZSA9IENhc2VUeXBlW1wiU3VwcG9ydCBSZXF1ZXN0XCJdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhdGUgdGhlIHRpY2tldCBudW1iZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnRpY2tldG51bWJlciA9IGBDQVMtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCA4KX0tJHtNYXRoLnJhbmRvbSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoMzYpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMiwgOCl9YC50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnkgYXMgKHJlY29yZDogVCkgPT4gVCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJwcm9kdWN0c1wiOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lOiBrZXlvZiBQcm9kdWN0ID0gXCJwcm9kdWN0aWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEocHJvZHVjdERhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0UHJvZHVjdERhdGEgYXMgYW55IGFzIChmaWVsZHM6IFRbXSkgPT4gdm9pZCxcclxuICAgICAgICAgICAgICAgICAgICBtb2NrQ3JlYXRpb25CZWhhdmlvdXI6ICgocmVjb3JkOiBQcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiaW52b2ljZXNcIjoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZToga2V5b2YgSW52b2ljZSA9IFwiaW52b2ljZWlkXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBmaWx0ZXJEYXRhKGludm9pY2VEYXRhIGFzIGFueVtdIGFzIFRbXSwgZmlsdGVycykgYXMgYW55IGFzIFRbXSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbHVtbk5hbWU6IGNvbHVtbk5hbWUgYXMga2V5b2YgVCxcclxuICAgICAgICAgICAgICAgICAgICBzZXR0ZXI6IHNldEludm9pY2VEYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogSW52b2ljZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIGFueSBhcyAocmVjb3JkOiBUKSA9PiBULFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FzZSBcInNhbGVzb3JkZXJzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIE9yZGVyID0gXCJzYWxlc29yZGVyaWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEob3JkZXJEYXRhIGFzIGFueVtdIGFzIFRbXSwgZmlsdGVycykgYXMgYW55IGFzIFRbXSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbHVtbk5hbWU6IGNvbHVtbk5hbWUgYXMga2V5b2YgVCxcclxuICAgICAgICAgICAgICAgICAgICBzZXR0ZXI6IHNldE9yZGVyRGF0YSBhcyBhbnkgYXMgKGZpZWxkczogVFtdKSA9PiB2b2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vY2tDcmVhdGlvbkJlaGF2aW91cjogKChyZWNvcmQ6IE9yZGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiYmlzdGVjaF9uZXR3b3Jrb3JkZXJzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIE5ldHdvcmtPcmRlckZvclJldHJpZXZhbCA9IFwiYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShuZXR3b3JrT3JkZXJEYXRhIGFzIGFueVtdIGFzIFRbXSwgZmlsdGVycykgYXMgYW55IGFzIFRbXSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbHVtbk5hbWU6IGNvbHVtbk5hbWUgYXMga2V5b2YgVCxcclxuICAgICAgICAgICAgICAgICAgICBzZXR0ZXI6IHNldE5ldHdvcmtPcmRlckRhdGEgYXMgYW55IGFzIChmaWVsZHM6IFRbXSkgPT4gdm9pZCxcclxuICAgICAgICAgICAgICAgICAgICBtb2NrQ3JlYXRpb25CZWhhdmlvdXI6ICgocmVjb3JkOiBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnkgYXMgKHJlY29yZDogVCkgPT4gVCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJtc2R5bl9wcm9qZWN0c1wiOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lOiBrZXlvZiBQcm9qZWN0ID0gXCJtc2R5bl9wcm9qZWN0aWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEocHJvamVjdERhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0UHJvamVjdERhdGEgYXMgYW55IGFzIChmaWVsZHM6IFRbXSkgPT4gdm9pZCxcclxuICAgICAgICAgICAgICAgICAgICBtb2NrQ3JlYXRpb25CZWhhdmlvdXI6ICgocmVjb3JkOiBQcm9qZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiYmlzdGVjaF9wcm9qZWN0bG9nc2VzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIFByb2plY3RMb2cgPSBcImJpc3RlY2hfcHJvamVjdGxvZ3NpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShwcm9qZWN0TG9nc0RhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0UHJvamVjdExvZ3NEYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogUHJvamVjdExvZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIGFueSBhcyAocmVjb3JkOiBUKSA9PiBULFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FzZSBcIm1zZHluX3Byb2plY3R0YXNrc1wiOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lOiBrZXlvZiBQcm9qZWN0VGFzayA9IFwibXNkeW5fcHJvamVjdHRhc2tpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShwcm9qZWN0VGFza0RhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0UHJvamVjdFRhc2tEYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogUHJvamVjdFRhc2spID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnkgYXMgKHJlY29yZDogVCkgPT4gVCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJtc2R5bl9jdXN0b21lcmFzc2V0c1wiOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lOiBrZXlvZiBDdXN0b21lckFzc2V0ID0gXCJtc2R5bl9jdXN0b21lcmFzc2V0aWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEoY3VzdG9tZXJBc3NldERhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0Q3VzdG9tZXJBc3NldERhdGEgYXMgYW55IGFzIChmaWVsZHM6IFRbXSkgPT4gdm9pZCxcclxuICAgICAgICAgICAgICAgICAgICBtb2NrQ3JlYXRpb25CZWhhdmlvdXI6ICgocmVjb3JkOiBQcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiYmlzdGVjaF9wb3J0YWxlbWFpbHNcIjoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZToga2V5b2YgUG9ydGFsRW1haWwgPSBcImFjdGl2aXR5aWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEocG9ydGFsRW1haWxEYXRhIGFzIGFueVtdIGFzIFRbXSwgZmlsdGVycykgYXMgYW55IGFzIFRbXSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbHVtbk5hbWU6IGNvbHVtbk5hbWUgYXMga2V5b2YgVCxcclxuICAgICAgICAgICAgICAgICAgICBzZXR0ZXI6IHNldFBvcnRhbEVtYWlsRGF0YSBhcyBhbnkgYXMgKGZpZWxkczogVFtdKSA9PiB2b2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vY2tDcmVhdGlvbkJlaGF2aW91cjogKChyZWNvcmQ6IFBvcnRhbEVtYWlsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiYWR4X3BvcnRhbGNvbW1lbnRzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgPSBcImFjdGl2aXR5aWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEocG9ydGFsQ29tbWVudERhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0UG9ydGFsQ29tbWVudERhdGEgYXMgYW55IGFzIChmaWVsZHM6IFRbXSkgPT4gdm9pZCxcclxuICAgICAgICAgICAgICAgICAgICBtb2NrQ3JlYXRpb25CZWhhdmlvdXI6ICgocmVjb3JkOiBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jcmVhdGVkb24gPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIGFueSBhcyAocmVjb3JkOiBUKSA9PiBULFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FzZSBcImJpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXNcIjoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZToga2V5b2YgTWFqb3JJbmNpZGVudFVwZGF0ZSA9IFwiYWN0aXZpdHlpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShtYWpvckluY2lkZW50VXBkYXRlRGF0YSBhcyBhbnlbXSBhcyBUW10sIGZpbHRlcnMpIGFzIGFueSBhcyBUW10sXHJcbiAgICAgICAgICAgICAgICAgICAgaWRDb2x1bW5OYW1lOiBjb2x1bW5OYW1lIGFzIGtleW9mIFQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGVyOiBzZXRNYWpvckluY2lkZW50VXBkYXRlRGF0YSBhcyBhbnkgYXMgKGZpZWxkczogVFtdKSA9PiB2b2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vY2tDcmVhdGlvbkJlaGF2aW91cjogKChyZWNvcmQ6IE1ham9ySW5jaWRlbnRVcGRhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnkgYXMgKHJlY29yZDogVCkgPT4gVCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJhZHhfaW52aXRhdGlvbnNcIjoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZToga2V5b2YgUG9ydGFsSW52aXRhdGlvbiA9IFwiYWR4X2ludml0YXRpb25pZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShwb3J0YWxJbnZpdGF0aW9uRGF0YSBhcyBhbnlbXSBhcyBUW10sIGZpbHRlcnMpIGFzIGFueSBhcyBUW10sXHJcbiAgICAgICAgICAgICAgICAgICAgaWRDb2x1bW5OYW1lOiBjb2x1bW5OYW1lIGFzIGtleW9mIFQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGVyOiBzZXRQb3J0YWxJbnZpdGF0aW9uRGF0YSBhcyBhbnkgYXMgKGZpZWxkczogVFtdKSA9PiB2b2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vY2tDcmVhdGlvbkJlaGF2aW91cjogKChyZWNvcmQ6IFBvcnRhbEludml0YXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnkgYXMgKHJlY29yZDogVCkgPT4gVCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJiaXN0ZWNoX3BvcnRhbG1ham9yaW5jaWRlbnR1cGRhdGVzXCI6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWU6IGtleW9mIFBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGUgPSBcImFjdGl2aXR5aWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEocG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0UG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGEgYXMgYW55IGFzIChmaWVsZHM6IFRbXSkgPT4gdm9pZCxcclxuICAgICAgICAgICAgICAgICAgICBtb2NrQ3JlYXRpb25CZWhhdmlvdXI6ICgocmVjb3JkOiBQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiYWNjb3VudHNcIjoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZToga2V5b2YgQWNjb3VudCA9IFwiYWNjb3VudGlkXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBmaWx0ZXJEYXRhKGFjY291bnREYXRhIGFzIGFueVtdIGFzIFRbXSwgZmlsdGVycykgYXMgYW55IGFzIFRbXSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbHVtbk5hbWU6IGNvbHVtbk5hbWUgYXMga2V5b2YgVCxcclxuICAgICAgICAgICAgICAgICAgICBzZXR0ZXI6IHNldEFjY291bnREYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogQWNjb3VudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIGFueSBhcyAocmVjb3JkOiBUKSA9PiBULFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FzZSBcImJpc3RlY2hfb3JkZXJmb3Jtc1wiOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lOiBrZXlvZiBPcmRlckZvcm0gPSBcImJpc3RlY2hfb3JkZXJmb3JtaWRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGZpbHRlckRhdGEob3JkZXJGb3JtRGF0YSBhcyBhbnlbXSBhcyBUW10sIGZpbHRlcnMpIGFzIGFueSBhcyBUW10sXHJcbiAgICAgICAgICAgICAgICAgICAgaWRDb2x1bW5OYW1lOiBjb2x1bW5OYW1lIGFzIGtleW9mIFQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGVyOiBzZXRPcmRlckZvcm1EYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogT3JkZXJGb3JtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55IGFzIChyZWNvcmQ6IFQpID0+IFQsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiYmlzdGVjaF9ibG9ncG9zdHNcIjoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZToga2V5b2YgQmxvZ1Bvc3QgPSBcImJpc3RlY2hfYmxvZ3Bvc3RpZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyRGF0YShibG9nUG9zdERhdGEgYXMgYW55W10gYXMgVFtdLCBmaWx0ZXJzKSBhcyBhbnkgYXMgVFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkQ29sdW1uTmFtZTogY29sdW1uTmFtZSBhcyBrZXlvZiBULFxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRlcjogc2V0QmxvZ1Bvc3REYXRhIGFzIGFueSBhcyAoZmllbGRzOiBUW10pID0+IHZvaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9ja0NyZWF0aW9uQmVoYXZpb3VyOiAoKHJlY29yZDogQmxvZ1Bvc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnkgYXMgKHJlY29yZDogVCkgPT4gVCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUmV0cmlldmluZyBkYXRhIGZvciAke3BsdXJhbExvZ2ljYWxOYW1lfSBpcyBub3QgaW1wbGVtZW50ZWQuYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWx0ZXJzIHRoZSBkYXRhIGlmIGFueSBmaWx0ZXJzIGFyZSBwcm92aWRlZC5cclxuICAgICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGZpbHRlci5cclxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBmaWx0ZXJzIHRvIGFwcGx5LCBpZiBhbnkuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgZGF0YS5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZmlsdGVyRGF0YTxUPihkYXRhOiBUW10sIGZpbHRlcnM/OiBDb25kaXRpb25FeHByZXNzaW9uPFQ+W10pIHtcclxuICAgICAgICBpZiAoIWZpbHRlcnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGF0YS5maWx0ZXIoKHJlY29yZCkgPT4gZmlsdGVycy5ldmVyeSgoZmlsdGVyKSA9PiBmaWx0ZXJSZWNvcmQocmVjb3JkLCBmaWx0ZXIpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWNvcmQgcGFzc2VzIHRoZSBmaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkIFJlY29yZC5cclxuICAgICAqIEBwYXJhbSBmaWx0ZXIgRmlsdGVyIHRvIGFwcGx5LlxyXG4gICAgICogQHJldHVybnMgV2hldGhlciB0aGUgcmVjb3JkIHBhc3NlcyB0aGUgZmlsdGVyLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBmaWx0ZXJSZWNvcmQ8VD4ocmVjb3JkOiBULCBmaWx0ZXI6IENvbmRpdGlvbkV4cHJlc3Npb248VD4pIHtcclxuICAgICAgICBzd2l0Y2ggKGZpbHRlci5vcGVyYXRvcikge1xyXG4gICAgICAgICAgICBjYXNlIFwiZXFcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmRbZmlsdGVyLmF0dHJpYnV0ZSBhcyBrZXlvZiBUXSA9PT0gZmlsdGVyLnZhbHVlO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcIm5lXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkW2ZpbHRlci5hdHRyaWJ1dGUgYXMga2V5b2YgVF0gIT09IGZpbHRlci52YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJnZVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZFtmaWx0ZXIuYXR0cmlidXRlIGFzIGtleW9mIFRdID49IGZpbHRlci52YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJndFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZFtmaWx0ZXIuYXR0cmlidXRlIGFzIGtleW9mIFRdID4gZmlsdGVyLnZhbHVlO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcImxlXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkW2ZpbHRlci5hdHRyaWJ1dGUgYXMga2V5b2YgVF0gPD0gZmlsdGVyLnZhbHVlO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcImx0XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkW2ZpbHRlci5hdHRyaWJ1dGUgYXMga2V5b2YgVF0gPCBmaWx0ZXIudmFsdWU7XHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWx0ZXIgb3BlcmF0b3IgJyR7ZmlsdGVyLm9wZXJhdG9yfScgZG9lcyBub3QgaGF2ZSBhIG1vY2sgaW1wbGVtZW50YXRpb24gZGVmaW5lZGApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGF5IHRoZSBhcHBsaWNhdGlvbiB0byBzaW11bGF0ZSBhbiBBUEkgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBtcyBUaGUgdGltZSBkZWxheSBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIGRlbGF5VGltZShtczogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlcykgPT4gc2V0VGltZW91dChyZXMsIG1zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcgR1VJRC5cclxuICAgICAqIEByZXR1cm5zIE5ldyByYW5kb20gR1VJRC5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gbmV3R3VpZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGVtcHR5ID0gXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIjtcclxuXHJcbiAgICAgICAgcmV0dXJuIGVtcHR5LnJlcGxhY2UoL1swXS9nLCAobGV0dGVyKSA9PiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxNikudG9TdHJpbmcoMTYpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNyZWF0ZSxcclxuICAgICAgICByZXRyaWV2ZU11bHRpcGxlLFxyXG4gICAgICAgIHJldHJpZXZlLFxyXG4gICAgICAgIHVwZGF0ZSxcclxuICAgICAgICBkaXNhc3NvY2lhdGUsXHJcbiAgICAgICAgZXhlY3V0ZUZlZWRiYWNrUG9ydGFsQWN0aW9uLFxyXG4gICAgICAgIGV4ZWN1dGVSZXF1ZXN0UmVvcGVuUG9ydGFsQWN0aW9uLFxyXG4gICAgICAgIGV4ZWN1dGVSZXF1ZXN0Q2xvc3VyZVBvcnRhbEFjdGlvbixcclxuICAgICAgICBleGVjdXRlU2VuZEludml0YXRpb25Qb3J0YWxBY3Rpb24sXHJcbiAgICAgICAgZXhlY3V0ZUNsb3NlUHJvamVjdFRhc2ssXHJcbiAgICB9O1xyXG59O1xyXG4iLCJpbXBvcnQgeyBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcgfSBmcm9tIFwiLi4vRW51bXMvUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgUHJvZHVjdCB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgbWF0Y2ggZXhhY3RseSB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBwcm9kdWN0aWQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3RpbGV0YXJnZXR1cmw/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BvcnRhbHRpbGVtYXBwaW5nPzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIFByb2R1Y3QgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBQUk9EVUNUX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQcm9kdWN0PiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJiaXN0ZWNoX3BvcnRhbHRpbGVtYXBwaW5nXCIsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIFByb2R1Y3QpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW10sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgQ3VzdG9tZXJBc3NldFN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9DdXN0b21lckFzc2V0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9kdWN0LCBQUk9EVUNUX01FVEFEQVRBIH0gZnJvbSBcIi4vUHJvZHVjdFwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgQ3VzdG9tZXIgQXNzZXQgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgbXNkeW5fY3VzdG9tZXJhc3NldGlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX21zZHluX3Byb2R1Y3RfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBtc2R5bl9uYW1lPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdGVjb2RlPzogQ3VzdG9tZXJBc3NldFN0YXRlQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIG1zZHluX3Byb2R1Y3Q/OiBQcm9kdWN0ID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfc2l0ZV92YWx1ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfc2VyaWFsbnVtYmVyPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIEN1c3RvbWVyQXNzZXQgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIGZvciBhIHJlbGF0ZWQgQ3VzdG9tZXIgQXNzZXRcclxuZXhwb3J0IHR5cGUgUmVsYXRlZEN1c3RvbWVyQXNzZXQgPSBQaWNrPEN1c3RvbWVyQXNzZXQsIFwibXNkeW5fY3VzdG9tZXJhc3NldGlkXCIgfCBcIm1zZHluX25hbWVcIiB8IFwiX2Jpc3RlY2hfc2l0ZV92YWx1ZVwiPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBDVVNUT01FUl9BU1NFVF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8Q3VzdG9tZXJBc3NldD4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwibXNkeW5fbmFtZVwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBDdXN0b21lckFzc2V0KVtdLFxyXG4gICAgZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3M6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX21zZHluX3Byb2R1Y3RfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJtc2R5bl9wcm9kdWN0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwicHJvZHVjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9zaXRlX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9zaXRlXCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiYWNjb3VudHNcIixcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwibXNkeW5fcHJvZHVjdFwiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogUFJPRFVDVF9NRVRBREFUQSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufTtcclxuIiwiaW1wb3J0IHsgQ29udGFjdFN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Db250YWN0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IEJhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQmFzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb250YWN0VHlwZSB9IGZyb20gXCIuLi9FbnVtcy9Qb3J0YWxDb250YWN0VHlwZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuaW1wb3J0IHsgT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBDb250YWN0IHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGNvbnRhY3RpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGU/OiBQb3J0YWxDb250YWN0VHlwZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBmdWxsbmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGZpcnN0bmFtZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBsYXN0bmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHRlbGVwaG9uZTE/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX3BhcmVudGN1c3RvbWVyaWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbD86IEJhc2VQZXJtaXNzaW9uTGV2ZWwgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsPzogQ2FzZVBlcm1pc3Npb25MZXZlbCB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw/OiBDb250YWN0UGVybWlzc2lvbkxldmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWw/OiBPcmRlclBlcm1pc3Npb25MZXZlbCB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BvcnRhbHByb2plY3RwZXJtaXNzaW9ubGV2ZWw/OiBQcm9qZWN0UGVybWlzc2lvbkxldmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbD86IEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgZW1haWxhZGRyZXNzMT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBqb2J0aXRsZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIG1vYmlsZXBob25lPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZWFsZXJ0bm90aWZpY2F0aW9ucz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlcz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZXNlY3VyaXR5dXBkYXRlcz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdGVjb2RlPzogQ29udGFjdFN0YXRlQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIGFkeF9pZGVudGl0eV9sb2dvbmVuYWJsZWQ/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9pc3Nob3duaW5wb3J0YWw/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIENvbnRhY3RGb3JSZXRyaWV2YWwgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBSRVRSSUVWQUxfQ09OVEFDVF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8Q29udGFjdEZvclJldHJpZXZhbD4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwiZmlyc3RuYW1lXCIsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIENvbnRhY3RGb3JSZXRyaWV2YWwpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfcGFyZW50Y3VzdG9tZXJpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcInBhcmVudGN1c3RvbWVyaWRfYWNjb3VudFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImFjY291bnRzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJiaXN0ZWNoX3ByaW1hcnlzaXRlXCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiYWNjb3VudHNcIixcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBBY3Rpdml0eVN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9BY3Rpdml0eVN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb21tZW50U3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Qb3J0YWxDb21tZW50U3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIFBvcnRhbCBDb21tZW50IHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBtYXRjaCBleGFjdGx5IHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIHN0YXRlY29kZT86IEFjdGl2aXR5U3RhdGVDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdHVzY29kZT86IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSB0eXBlIG9mIGFsbCBmaWVsZHMgcmVxdWlyZWQgZm9yIHVwZGF0ZVxyXG5leHBvcnQgdHlwZSBQb3J0YWxDb21tZW50Rm9yVXBkYXRlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgZm9yIHVzZSB3aGVuIHBhcmVudGVkIHRvIGVpdGhlciBhIE5ldHdvcmsgT3JkZXIgb3IgYSBDYXNlXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfUE9SVEFMX0NPTU1FTlRfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPFBvcnRhbENvbW1lbnRGb3JVcGRhdGU+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBudWxsLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBQb3J0YWxDb21tZW50Rm9yVXBkYXRlKVtdLFxyXG4gICAgZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3M6IFtdLFxyXG4gICAgZXhwYW5kUHJvcGVydGllczogW10sXHJcbn07XHJcbiIsImltcG9ydCB7IEFjY291bnRTaXRlVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9BY2NvdW50U2l0ZVR5cGVcIjtcclxuaW1wb3J0IHsgQWNjb3VudFN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9BY2NvdW50U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGFuIEFjY291bnQgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgYWNjb3VudGlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgbmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGFkZHJlc3MxX2NvbXBvc2l0ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfc2l0ZXR5cGU/OiBBY2NvdW50U2l0ZVR5cGUgPSB1bmRlZmluZWQ7XHJcbiAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBhZGRyZXNzMV9wb3N0YWxjb2RlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXRlY29kZT86IEFjY291bnRTdGF0ZUNvZGUgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgQWNjb3VudCA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IGEgdHlwZSBvZiBhbGwgZmllbGRzIHJlcXVpcmVkIGZvciB1cGRhdGVcclxuLy8gTk9URTogVGhlc2Ugc2hvdWxkIG1hdGNoIHRoZSAnQ29sdW1uIFBlcm1pc3Npb25zJyBmb3IgdGhlIFVwZGF0ZSBvcGVyYXRpb24gb2YgdGhlIEFjY291bnQgZW50aXR5OyBzZWUgUkVBRE1FICdDb2x1bW4gUGVybWlzc2lvbnMnIHNlY3Rpb24uXHJcbmV4cG9ydCB0eXBlIEFjY291bnRGb3JVcGRhdGUgPSBQaWNrPEFjY291bnQsIFwiYWNjb3VudGlkXCIgfCBcIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlXCI+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPEFjY291bnQ+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcIm5hbWVcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgQWNjb3VudClbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwicHJpbWFyeWNvbnRhY3RpZFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImNvbnRhY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBQb3J0YWwgTWFqb3IgSW5jaWRlbnQgVXBkYXRlIHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBtYXRjaCBleGFjdGx5IHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGFjdGl2aXR5aWQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBzdWJqZWN0Pzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBjcmVhdGVkb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBtb2RpZmllZG9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9jYXNlc3RhdHVzc25hcHNob3Q/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFBPUlRBTF9NQUpPUl9JTkNJREVOVF9VUERBVEVfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPFBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGU+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcInN1YmplY3RcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlIH0gZnJvbSBcIi4uL0VudW1zL1BvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGVcIjtcclxuaW1wb3J0IHsgUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBQb3J0YWwgSW52aXRhdGlvbiB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgbWF0Y2ggZXhhY3RseSB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBhZHhfaW52aXRhdGlvbmlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX2FkeF9pbnZpdGVjb250YWN0X3ZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9hdXRoZW50aWNhdGlvbnR5cGU/OiBQb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXR1c2NvZGU/OiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIGNyZWF0ZWRvbj86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgc2ltcGxlIHR5cGUgb2YgYWxsIGZpZWxkc1xyXG5leHBvcnQgdHlwZSBQb3J0YWxJbnZpdGF0aW9uID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgUE9SVEFMX0lOVklURV9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8UG9ydGFsSW52aXRhdGlvbj4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IG51bGwsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIFBvcnRhbEludml0YXRpb24pW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYWR4X2ludml0ZWNvbnRhY3RfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJhZHhfaW52aXRlY29udGFjdF9jb250YWN0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY29udGFjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIEJsb2cgUG9zdCB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGQgbmFtZXMgbXVzdCBtYXRjaCBleGFjdGx5IHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGJpc3RlY2hfYmxvZ3Bvc3RpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfbmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfZGVzY3JpcHRpb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3VybD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfaW1hZ2V1cmw/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3B1Ymxpc2hlZGJ5Pzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9wdWJsaXNoZWRvbj86IERhdGUgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgQmxvZ1Bvc3QgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBCTE9HX1BPU1RfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPEJsb2dQb3N0PiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJiaXN0ZWNoX25hbWVcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgQmxvZ1Bvc3QpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW10sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYW4gT3JkZXIgRm9ybSB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBiaXN0ZWNoX29yZGVyZm9ybWlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9kYXRlc2lnbmVkPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0Pzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1Pzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgc2ltcGxlIHR5cGUgb2YgYWxsIGZpZWxkcyBleGNsdWRpbmcgdGhlIGxhcmdlIGJhc2UgNjQgZmllbGQgc3doaWNoIHRoZXJlIGFyZSA1IG9mIHdpdGggdGhlIGFwcGVuZGl4IG9mIGZpZWxkIGFuZCB0aGVuIHRoZSBudW1iZXIuXHJcbmV4cG9ydCB0eXBlIE9yZGVyRm9ybSA9IE9taXQ8XHJcbiAgICBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPixcclxuICAgIHwgXCJiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMVwiXHJcbiAgICB8IFwiYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDJcIlxyXG4gICAgfCBcImJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzXCJcclxuICAgIHwgXCJiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNFwiXHJcbiAgICB8IFwiYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDVcIlxyXG4+O1xyXG5cclxuLy8gRXhwb3J0IGEgc2ltcGxlIHR5cGUgb2YgYWxsIGZpZWxkc1xyXG5leHBvcnQgdHlwZSBPcmRlckZvcm1XaXRoQmFzZTY0ID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgbWV0YWRhdGEgZm9yIGRpZmZlcmVudCBvcmRlciBmb3JtIG1vZGVscy5cclxuICogQHJldHVybnMgR2V0cyB0aGUgbWV0YWRhdGEgZm9yIGRpZmZlcmVudCBvcmRlciBmb3JtIG1vZGVscy5cclxuICovXHJcbmZ1bmN0aW9uIGdldE9yZGVyRm9ybU1ldGFkYXRhPFQ+KCk6IEVudGl0eU1ldGFkYXRhPFQ+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGVDb2x1bW5OYW1lOiBudWxsLFxyXG4gICAgICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgVClbXSxcclxuICAgICAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW10sXHJcbiAgICAgICAgZXhwYW5kUHJvcGVydGllczogW10sXHJcbiAgICB9O1xyXG59XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgT1JERVJGT1JNX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxPcmRlckZvcm0+ID0gZ2V0T3JkZXJGb3JtTWV0YWRhdGE8T3JkZXJGb3JtPigpO1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIHdpdGggQjY0IGludG8gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgT1JERVJGT1JNQjY0X01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxPcmRlckZvcm1XaXRoQmFzZTY0PiA9IGdldE9yZGVyRm9ybU1ldGFkYXRhPE9yZGVyRm9ybVdpdGhCYXNlNjQ+KCk7XHJcbiIsImltcG9ydCB7IFByb2R1Y3RUeXBlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Qcm9kdWN0VHlwZUNvZGVcIjtcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBPcmRlciBMaW5lIHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIHNhbGVzb3JkZXJkZXRhaWxpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHByb2R1Y3R0eXBlY29kZT86IFByb2R1Y3RUeXBlQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfdG90YWxhbm51YWxwcmljZT86IG51bWJlciB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiYXNlYW1vdW50PzogbnVtYmVyIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcHJvZHVjdGRlc2NyaXB0aW9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX21zZHluX3Byb2plY3RfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIE9yZGVybGluZSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IE9SREVSTElORV9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8T3JkZXJsaW5lPiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJiaXN0ZWNoX3Byb2R1Y3RkZXNjcmlwdGlvblwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBPcmRlcmxpbmUpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW10sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgT3JkZXJTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgT3JkZXJTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuaW1wb3J0IHsgT1JERVJGT1JNX01FVEFEQVRBLCBPcmRlckZvcm0gfSBmcm9tIFwiLi9PcmRlckZvcm1cIjtcclxuaW1wb3J0IHsgT1JERVJMSU5FX01FVEFEQVRBLCBPcmRlcmxpbmUgfSBmcm9tIFwiLi9PcmRlcmxpbmVcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIE9yZGVyIHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIHNhbGVzb3JkZXJpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIG5hbWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBvcmRlcm51bWJlcj86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXRlY29kZT86IE9yZGVyU3RhdGVDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdHVzY29kZT86IE9yZGVyU3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgdG90YWxsaW5laXRlbWFtb3VudD86IG51bWJlciB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U/OiBudW1iZXIgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9vcmRlcmZvcm0/OiBPcmRlckZvcm0gfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBvcmRlcl9kZXRhaWxzPzogT3JkZXJsaW5lW10gPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgT3JkZXIgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBhIHR5cGUgb2YgYWxsIGZpZWxkcyByZXF1aXJlZCBmb3IgdXBkYXRlXHJcbmV4cG9ydCB0eXBlIE9yZGVyRm9yVXBkYXRlID0gUGljazxPcmRlciwgXCJiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlXCI+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IE9SREVSX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxPcmRlcj4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwibmFtZVwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBPcmRlcilbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9iaXN0ZWNoX2NvbnRhY3RfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJiaXN0ZWNoX2NvbnRhY3RcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJjb250YWN0c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgZXhwYW5kUHJvcGVydGllczogW1xyXG4gICAgICAgIHsgY29sdW1uTmFtZTogXCJvcmRlcl9kZXRhaWxzXCIsIGVudGl0eU1ldGFkYXRhOiBPUkRFUkxJTkVfTUVUQURBVEEgfSxcclxuICAgICAgICB7IGNvbHVtbk5hbWU6IFwiYmlzdGVjaF9vcmRlcmZvcm1cIiwgZW50aXR5TWV0YWRhdGE6IE9SREVSRk9STV9NRVRBREFUQSB9LFxyXG4gICAgXSxcclxufTtcclxuIiwiaW1wb3J0IHsgQWN0aXZpdHlTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQWN0aXZpdHlTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9EaXJlY3Rpb25Db2RlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1BvcnRhbENvbW1lbnRTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgUG9ydGFsIENvbW1lbnQgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgYWN0aXZpdHlpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZT86IERpcmVjdGlvbkNvZGUgPSB1bmRlZmluZWQ7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXRlY29kZT86IEFjdGl2aXR5U3RhdGVDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdHVzY29kZT86IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgY3JlYXRlZG9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgbW9kaWZpZWRvbj86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgc2ltcGxlIHR5cGUgb2YgYWxsIGZpZWxkc1xyXG5leHBvcnQgdHlwZSBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgUG9ydGFsIG1ldGFkYXRhIGZvciBhIGdpdmVuIGVudGl0eS5cclxuICogQHBhcmFtIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWUgVGhlIG5hdiBwcm9wZXJ0eSBuYW1lLlxyXG4gKiBAcGFyYW0gcGx1cmFsRW50aXR5U2V0TmFtZSBUaGUgZW50aXR5IHNldCBuYW1lLlxyXG4gKiBAcmV0dXJucyBUaGUgUG9ydGFsIE1ldGFkYXRhIGZvciBhIGdpdmVuIGVudGl0eS5cclxuICovXHJcbmNvbnN0IGdldFBvcnRhbENvbW1lbnRNZXRhZGF0YSA9IChcclxuICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IHN0cmluZyxcclxuICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IHN0cmluZ1xyXG4pOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsPiA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHRpdGxlQ29sdW1uTmFtZTogXCJkZXNjcmlwdGlvblwiLFxyXG4gICAgICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbClbXSxcclxuICAgICAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogbmF2aWdhdGlvblByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IHBsdXJhbEVudGl0eVNldE5hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxuICAgIH0gc2F0aXNmaWVzIEVudGl0eU1ldGFkYXRhPFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+O1xyXG59O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGZvciB1c2Ugd2hlbiBwYXJlbnRlZCB0byBhIENhc2VcclxuZXhwb3J0IGNvbnN0IFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9JTkNJREVOVF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8UG9ydGFsQ29tbWVudEZvclJldHJpZXZhbD4gPVxyXG4gICAgZ2V0UG9ydGFsQ29tbWVudE1ldGFkYXRhKFwicmVnYXJkaW5nb2JqZWN0aWRfaW5jaWRlbnRcIiwgXCJpbmNpZGVudHNcIik7XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgZm9yIHVzZSB3aGVuIHBhcmVudGVkIHRvIGEgTmV0d29yayBPcmRlclxyXG5leHBvcnQgY29uc3QgUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX05FVFdPUktfT1JERVJfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+ID1cclxuICAgIGdldFBvcnRhbENvbW1lbnRNZXRhZGF0YShcInJlZ2FyZGluZ29iamVjdGlkX2Jpc3RlY2hfbmV0d29ya29yZGVyXCIsIFwiYmlzdGVjaF9uZXR3b3Jrb3JkZXJzXCIpO1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGZvciB1c2Ugd2hlbiBwYXJlbnRlZCB0byBhIFByb2plY3RcclxuZXhwb3J0IGNvbnN0IFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsPiA9XHJcbiAgICBnZXRQb3J0YWxDb21tZW50TWV0YWRhdGEoXCJyZWdhcmRpbmdvYmplY3RpZF9tc2R5bl9wcm9qZWN0XCIsIFwibXNkeW5fcHJvamVjdHNcIik7XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgZm9yIHVzZSB3aGVuIHBhcmVudGVkIHRvIGEgUHJvamVjdCBMb2dcclxuZXhwb3J0IGNvbnN0IFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX0xPR19NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8UG9ydGFsQ29tbWVudEZvclJldHJpZXZhbD4gPVxyXG4gICAgZ2V0UG9ydGFsQ29tbWVudE1ldGFkYXRhKFwicmVnYXJkaW5nb2JqZWN0aWRfYmlzdGVjaF9wcm9qZWN0bG9nc19hZHhfcG9ydGFsY29tbWVudFwiLCBcImJpc3RlY2hfcHJvamVjdGxvZ3Nlc1wiKTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBQb3J0YWwgRW1haWwgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgYWN0aXZpdHlpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIC8vIFRydWUgaXMgT3V0Z29pbmcgLSBGYWxzZSBpcyBJbmNvbWluZy5cclxuICAgIGJpc3RlY2hfZGlyZWN0aW9uPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICAgIF9jcmVhdGVkYnlfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBzdWJqZWN0Pzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBjcmVhdGVkb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBtb2RpZmllZG9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIFBvcnRhbEVtYWlsID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgcG9ydGFsIG1ldGFkYXRhIGZvciBhIGdpdmVuIGVudGl0eS5cclxuICogQHBhcmFtIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWUgVGhlIG5hdiBwcm9wZXJ0eSBuYW1lLlxyXG4gKiBAcGFyYW0gcGx1cmFsRW50aXR5U2V0TmFtZSBUaGUgZW50aXR5IHNldCBuYW1lLlxyXG4gKiBAcmV0dXJucyBUaGUgUG9ydGFsIE1ldGFkYXRhIGZvciBhIGdpdmVuIGVudGl0eS5cclxuICovXHJcbmNvbnN0IGdldFBvcnRhbEVtYWlsTWV0YWRhdGEgPSAoXHJcbiAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBzdHJpbmcsXHJcbiAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBzdHJpbmdcclxuKTogRW50aXR5TWV0YWRhdGE8UG9ydGFsRW1haWw+ID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGVDb2x1bW5OYW1lOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBQb3J0YWxFbWFpbClbXSxcclxuICAgICAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogbmF2aWdhdGlvblByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IHBsdXJhbEVudGl0eVNldE5hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxuICAgIH07XHJcbn07XHJcblxyXG4vLyBFeHBvcnQgUHJvamVjdHMgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgUFJPSkVDVFNfUE9SVEFMX0VNQUlMX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxFbWFpbD4gPSBnZXRQb3J0YWxFbWFpbE1ldGFkYXRhKFxyXG4gICAgXCJyZWdhcmRpbmdvYmplY3RpZF9tc2R5bl9wcm9qZWN0X2Jpc3RlY2hfcG9ydGFsZW1haWxcIixcclxuICAgIFwibXNkeW5fcHJvamVjdHNcIlxyXG4pO1xyXG5cclxuLy8gRXhwb3J0IEluY2lkZW50cyBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBJTkNJREVOVFNfUE9SVEFMX0VNQUlMX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxFbWFpbD4gPSBnZXRQb3J0YWxFbWFpbE1ldGFkYXRhKFxyXG4gICAgXCJyZWdhcmRpbmdvYmplY3RpZF9pbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsXCIsXHJcbiAgICBcImluY2lkZW50c1wiXHJcbik7XHJcblxyXG4vLyBFeHBvcnQgTmV0d29yayBPcmRlcnMgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgTkVUV09SS19PUkRFUlNfUE9SVEFMX0VNQUlMX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxFbWFpbD4gPSBnZXRQb3J0YWxFbWFpbE1ldGFkYXRhKFxyXG4gICAgXCJyZWdhcmRpbmdvYmplY3RpZF9iaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX3BvcnRhbGVtYWlsXCIsXHJcbiAgICBcImJpc3RlY2hfbmV0d29ya29yZGVyc1wiXHJcbik7XHJcblxyXG4vLyBFeHBvcnQgUHJvamVjdCBMb2dzIG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFBST0pFQ1RfTE9HX1BPUlRBTF9FTUFJTF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8UG9ydGFsRW1haWw+ID0gZ2V0UG9ydGFsRW1haWxNZXRhZGF0YShcclxuICAgIFwicmVnYXJkaW5nb2JqZWN0aWRfYmlzdGVjaF9wcm9qZWN0bG9nc19iaXN0ZWNoX3BvcnRhbGVtYWlsXCIsXHJcbiAgICBcImJpc3RlY2hfcHJvamVjdGxvZ3Nlc1wiXHJcbik7XHJcbiIsImltcG9ydCB7IFByb2plY3RMb2dNaXRpZ2F0aW9uUmVzcG9uc2UgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdExvZ01pdGlnYXRpb25SZXNwb25zZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0TG9nU2V2ZXJpdHkgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdExvZ1NldmVyaXR5XCI7XHJcbmltcG9ydCB7IFByb2plY3RMb2dTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RMb2dTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFByb2plY3RMb2dUeXBlIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RMb2dUeXBlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsLCBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9MT0dfTUVUQURBVEEgfSBmcm9tIFwiLi9Qb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IFBvcnRhbEVtYWlsLCBQUk9KRUNUX0xPR19QT1JUQUxfRU1BSUxfTUVUQURBVEEgfSBmcm9tIFwiLi9Qb3J0YWxFbWFpbFwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIGZvciBQcm9qZWN0IExvZyB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSVxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGJpc3RlY2hfcHJvamVjdGxvZ3NpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfbmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfdHlwZT86IFByb2plY3RMb2dUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgY3JlYXRlZG9uPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfZGVzY3JpcHRpb24/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9pbXBhY3Q/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9zZXZlcml0eT86IFByb2plY3RMb2dTZXZlcml0eSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX21pdGlnYXRpb25yZXNwb25zZW9wdGlvbnNldD86IFByb2plY3RMb2dNaXRpZ2F0aW9uUmVzcG9uc2UgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF91cGRhdGVkZXRhaWxzPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXR1c2NvZGU/OiBQcm9qZWN0TG9nU3RhdHVzQ29kZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBcImJpc3RlY2hfcHJvamVjdGxvZ3NfYmlzdGVjaF9wb3J0YWxlbWFpbHNcIj86IFBvcnRhbEVtYWlsW10gfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgXCJiaXN0ZWNoX3Byb2plY3Rsb2dzX2FkeF9wb3J0YWxjb21tZW50c1wiPzogUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFtdIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgc2luZ2xlIHR5cGUgZm9yIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgUHJvamVjdExvZyA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFBST0pFQ1RfTE9HX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQcm9qZWN0TG9nPiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJiaXN0ZWNoX25hbWVcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgUHJvamVjdExvZylbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiYmlzdGVjaF9wcm9qZWN0bG9nc19iaXN0ZWNoX3BvcnRhbGVtYWlsc1wiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogUFJPSkVDVF9MT0dfUE9SVEFMX0VNQUlMX01FVEFEQVRBLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcImJpc3RlY2hfcHJvamVjdGxvZ3NfYWR4X3BvcnRhbGNvbW1lbnRzXCIsXHJcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9MT0dfTUVUQURBVEEsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn07XHJcbiIsImltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza1N0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFRhc2tTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrQXNzaWduZWRUbyB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0VGFza0Fzc2lnbmVkVG9cIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIFByb2plY3QgVGFzayB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBtc2R5bl9wcm9qZWN0dGFza2lkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgbXNkeW5fc3ViamVjdD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0PzogRGF0ZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBzdGF0dXNjb2RlPzogUHJvamVjdFRhc2tTdGF0dXNDb2RlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIF9tc2R5bl9wYXJlbnR0YXNrX3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfYXNzaWduZWR0bz86IFByb2plY3RUYXNrQXNzaWduZWRUbyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3M/OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG4gICAgbXNkeW5fZGlzcGxheXNlcXVlbmNlPzogbnVtYmVyIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsPzogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuICAgIG1zZHluX291dGxpbmVsZXZlbD86IG51bWJlciA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgc2ltcGxlIHR5cGUgb2YgYWxsIGZpZWxkc1xyXG5leHBvcnQgdHlwZSBQcm9qZWN0VGFzayA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFBST0pFQ1RfVEFTS19NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8UHJvamVjdFRhc2s+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcIm1zZHluX3N1YmplY3RcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgUHJvamVjdFRhc2spW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfbXNkeW5fcGFyZW50dGFza192YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcIm1zZHluX3BhcmVudHRhc2tcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJtc2R5bl9wcm9qZWN0dGFza3NcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcImJpc3RlY2hfQXNzaWduZWRDdXN0b21lckNvbnRhY3RcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJjb250YWN0c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgZXhwYW5kUHJvcGVydGllczogW10sXHJcbn07XHJcbiIsImltcG9ydCB7IFByb2plY3RTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0U3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0U3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29udGFjdEZvclJldHJpZXZhbCwgUkVUUklFVkFMX0NPTlRBQ1RfTUVUQURBVEEgfSBmcm9tIFwiLi9Db250YWN0Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwsIFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX01FVEFEQVRBIH0gZnJvbSBcIi4vUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBQUk9KRUNUU19QT1JUQUxfRU1BSUxfTUVUQURBVEEsIFBvcnRhbEVtYWlsIH0gZnJvbSBcIi4vUG9ydGFsRW1haWxcIjtcclxuaW1wb3J0IHsgUFJPSkVDVF9MT0dfTUVUQURBVEEsIFByb2plY3RMb2cgfSBmcm9tIFwiLi9Qcm9qZWN0TG9nXCI7XHJcbmltcG9ydCB7IFBST0pFQ1RfVEFTS19NRVRBREFUQSwgUHJvamVjdFRhc2sgfSBmcm9tIFwiLi9Qcm9qZWN0VGFza1wiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgUHJvamVjdCB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBtc2R5bl9wcm9qZWN0aWQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3Byb2plY3RudW1iZXI/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBtc2R5bl9zdWJqZWN0Pzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdHVzY29kZT86IFByb2plY3RTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdGVjb2RlPzogUHJvamVjdFN0YXRlQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIG1zZHluX3NjaGVkdWxlZHN0YXJ0PzogRGF0ZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX2VzdGltYXRlZGZpbmlzaGRhdGU/OiBEYXRlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIFwiX293bmVyaWRfdmFsdWVcIj86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBcIl9vd25lcmlkX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCI/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBfbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIFwiX21zZHluX2N1c3RvbWVyX3ZhbHVlXCI/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgXCJfbXNkeW5fY3VzdG9tZXJfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIj86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBcIl9tc2R5bl9zYWxlc29yZGVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIj86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIFwibXNkeW5fbXNkeW5fcHJvamVjdF9tc2R5bl9wcm9qZWN0dGFza19wcm9qZWN0XCI/OiBQcm9qZWN0VGFza1tdIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIFwiYmlzdGVjaF9tc2R5bl9wcm9qZWN0X0NvbnRhY3RfQ29udGFjdFwiPzogQ29udGFjdEZvclJldHJpZXZhbFtdIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIFwibXNkeW5fcHJvamVjdF9hZHhfcG9ydGFsY29tbWVudHNcIj86IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxbXSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBcIm1zZHluX3Byb2plY3RfYmlzdGVjaF9wb3J0YWxlbWFpbHNcIj86IFBvcnRhbEVtYWlsW10gfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgXCJiaXN0ZWNoX2Jpc3RlY2hfcHJvamVjdGxvZ3NfUHJvamVjdF9tc2R5bl9wcm9qZWN0XCI/OiBQcm9qZWN0TG9nW10gfCBudWxsID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIFByb2plY3QgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBQUk9KRUNUX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQcm9qZWN0PiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJtc2R5bl9zdWJqZWN0XCIsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIFByb2plY3QpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW10sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIm1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdFwiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogUFJPSkVDVF9UQVNLX01FVEFEQVRBLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcImJpc3RlY2hfbXNkeW5fcHJvamVjdF9Db250YWN0X0NvbnRhY3RcIixcclxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IFJFVFJJRVZBTF9DT05UQUNUX01FVEFEQVRBLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIm1zZHluX3Byb2plY3RfYmlzdGVjaF9wb3J0YWxlbWFpbHNcIixcclxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IFBST0pFQ1RTX1BPUlRBTF9FTUFJTF9NRVRBREFUQSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJtc2R5bl9wcm9qZWN0X2FkeF9wb3J0YWxjb21tZW50c1wiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX1BST0pFQ1RfTUVUQURBVEEsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiYmlzdGVjaF9iaXN0ZWNoX3Byb2plY3Rsb2dzX1Byb2plY3RfbXNkeW5fcHJvamVjdFwiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogUFJPSkVDVF9MT0dfTUVUQURBVEEsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn07XHJcbiIsImltcG9ydCB7IENhc2VPcmlnaW5Db2RlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VPcmlnaW5Db2RlXCI7XHJcbmltcG9ydCB7IENhc2VTZXZlcml0eUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVNldmVyaXR5Q29kZVwiO1xyXG5pbXBvcnQgeyBDYXNlVXJnZW5jeSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVXJnZW5jeVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhbiBJbmNpZGVudCB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgbWF0Y2ggZXhhY3RseSB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICB0aXRsZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIF9jdXN0b21lcmlkX3ZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBjYXNlb3JpZ2luY29kZT86IENhc2VPcmlnaW5Db2RlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHNldmVyaXR5Y29kZT86IENhc2VTZXZlcml0eUNvZGUgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF91cmdlbmN5PzogQ2FzZVVyZ2VuY3kgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfY3JlYXRlZGJ5Y29udGFjdF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuLy8gTk9URTogVGhlc2Ugc2hvdWxkIG1hdGNoIHRoZSAnQ29sdW1uIFBlcm1pc3Npb25zJyBmb3IgdGhlIENyZWF0ZSBvcGVyYXRpb24gb2YgdGhlIENhc2UgZW50aXR5OyBzZWUgUkVBRE1FICdDb2x1bW4gUGVybWlzc2lvbnMnIHNlY3Rpb24uXHJcbmV4cG9ydCB0eXBlIEluY2lkZW50Rm9yQ3JlYXRlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0lOQ0lERU5UX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxJbmNpZGVudEZvckNyZWF0ZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwidGl0bGVcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgSW5jaWRlbnRGb3JDcmVhdGUpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfY3VzdG9tZXJpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcImN1c3RvbWVyaWRfYWNjb3VudFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImFjY291bnRzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX3ByaW1hcnljb250YWN0aWRfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJwcmltYXJ5Y29udGFjdGlkXCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY29udGFjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9jcmVhdGVkYnljb250YWN0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY29udGFjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIE1ham9yIEluY2lkZW50IFVwZGF0ZSB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgbWF0Y2ggZXhhY3RseSB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBhY3Rpdml0eWlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX2NyZWF0ZWRieV92YWx1ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXRlY29kZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXR1c2NvZGU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBwcmlvcml0eWNvZGU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBzdWJqZWN0Pzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBjcmVhdGVkb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBtb2RpZmllZG9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYWN0dWFsZW5kPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIE1ham9ySW5jaWRlbnRVcGRhdGUgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBNQUpPUl9JTkNJREVOVF9VUERBVEVfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPE1ham9ySW5jaWRlbnRVcGRhdGU+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcInN1YmplY3RcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgTWFqb3JJbmNpZGVudFVwZGF0ZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBDYXNlT3JpZ2luQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlT3JpZ2luQ29kZVwiO1xyXG5pbXBvcnQgeyBDYXNlUHJpb3JpdHlDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VQcmlvcml0eUNvZGVcIjtcclxuaW1wb3J0IHsgQ2FzZVNldmVyaXR5Q29kZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlU2V2ZXJpdHlDb2RlXCI7XHJcbmltcG9ydCB7IENhc2VUeXBlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VUeXBlXCI7XHJcbmltcG9ydCB7IENhc2VVcmdlbmN5IH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VVcmdlbmN5XCI7XHJcbmltcG9ydCB7IEluY2lkZW50U3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9JbmNpZGVudFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE1BSk9SX0lOQ0lERU5UX1VQREFURV9NRVRBREFUQSwgTWFqb3JJbmNpZGVudFVwZGF0ZSB9IGZyb20gXCIuL01ham9ySW5jaWRlbnRVcGRhdGVcIjtcclxuaW1wb3J0IHsgUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbCwgUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX0lOQ0lERU5UX01FVEFEQVRBIH0gZnJvbSBcIi4vUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBJTkNJREVOVFNfUE9SVEFMX0VNQUlMX01FVEFEQVRBLCBQb3J0YWxFbWFpbCB9IGZyb20gXCIuL1BvcnRhbEVtYWlsXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYW4gSW5jaWRlbnQgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgaW5jaWRlbnRpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHRpdGxlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX2N1c3RvbWVyaWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICB0aWNrZXRudW1iZXI/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGNhc2V0eXBlY29kZT86IENhc2VUeXBlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGNhc2VvcmlnaW5jb2RlPzogQ2FzZU9yaWdpbkNvZGUgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgc2V2ZXJpdHljb2RlPzogQ2FzZVNldmVyaXR5Q29kZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3VyZ2VuY3k/OiBDYXNlVXJnZW5jeSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBwcmlvcml0eWNvZGU/OiBDYXNlUHJpb3JpdHlDb2RlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXR1c2NvZGU/OiBJbmNpZGVudFN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7XHJcbiAgICBjcmVhdGVkb24/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBfYmlzdGVjaF9jcmVhdGVkYnljb250YWN0X3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVzb2x1dGlvbmRhdGU/OiBEYXRlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50cz86IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxbXSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlscz86IFBvcnRhbEVtYWlsW10gfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgaW5jaWRlbnRfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlcz86IE1ham9ySW5jaWRlbnRVcGRhdGVbXSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgSW5jaWRlbnRGb3JSZXRyaWV2YWwgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBSRVRSSUVWQUxfSU5DSURFTlRfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPEluY2lkZW50Rm9yUmV0cmlldmFsPiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJ0aXRsZVwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBJbmNpZGVudEZvclJldHJpZXZhbClbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9jdXN0b21lcmlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiY3VzdG9tZXJpZF9hY2NvdW50XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiYWNjb3VudHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcInByaW1hcnljb250YWN0aWRcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJjb250YWN0c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9iaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJiaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJjb250YWN0c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgZXhwYW5kUHJvcGVydGllczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJpbmNpZGVudF9hZHhfcG9ydGFsY29tbWVudHNcIixcclxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9JTkNJREVOVF9NRVRBREFUQSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJpbmNpZGVudF9iaXN0ZWNoX3BvcnRhbGVtYWlsc1wiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogSU5DSURFTlRTX1BPUlRBTF9FTUFJTF9NRVRBREFUQSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJpbmNpZGVudF9iaXN0ZWNoX21ham9yaW5jaWRlbnR1cGRhdGVzXCIsXHJcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBNQUpPUl9JTkNJREVOVF9VUERBVEVfTUVUQURBVEEsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn07XHJcbiIsImltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGFuIEluY2lkZW50IHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBtYXRjaCBleGFjdGx5IHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbi8vIE5PVEU6IFRoZXNlIHNob3VsZCBtYXRjaCB0aGUgJ0NvbHVtbiBQZXJtaXNzaW9ucycgZm9yIHRoZSBVcGRhdGUgb3BlcmF0aW9uIG9mIHRoZSBDYXNlIGVudGl0eTsgc2VlIFJFQURNRSAnQ29sdW1uIFBlcm1pc3Npb25zJyBzZWN0aW9uLlxyXG5leHBvcnQgdHlwZSBJbmNpZGVudEZvclVwZGF0ZSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFVQREFURV9JTkNJREVOVF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8SW5jaWRlbnRGb3JVcGRhdGU+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBudWxsLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBJbmNpZGVudEZvclVwZGF0ZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwicHJpbWFyeWNvbnRhY3RpZFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImNvbnRhY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbnRhY3RUeXBlIH0gZnJvbSBcIi4uL0VudW1zL1BvcnRhbENvbnRhY3RUeXBlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5pbXBvcnQgeyBPcmRlclBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBDYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgQ29udGFjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Db250YWN0UGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvSW52b2ljZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0UGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RQZXJtaXNzaW9uTGV2ZWxcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIENvbnRhY3Qgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZT86IFBvcnRhbENvbnRhY3RUeXBlIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGZpcnN0bmFtZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBsYXN0bmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHRlbGVwaG9uZTE/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX3BhcmVudGN1c3RvbWVyaWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbD86IEJhc2VQZXJtaXNzaW9uTGV2ZWwgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsPzogQ2FzZVBlcm1pc3Npb25MZXZlbCB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWw/OiBDb250YWN0UGVybWlzc2lvbkxldmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWw/OiBPcmRlclBlcm1pc3Npb25MZXZlbCB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BvcnRhbHByb2plY3RwZXJtaXNzaW9ubGV2ZWw/OiBQcm9qZWN0UGVybWlzc2lvbkxldmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbD86IEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgZW1haWxhZGRyZXNzMT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBqb2J0aXRsZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIG1vYmlsZXBob25lPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZWFsZXJ0bm90aWZpY2F0aW9ucz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlcz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZXNlY3VyaXR5dXBkYXRlcz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9pc3Nob3duaW5wb3J0YWw/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbi8vIE5PVEU6IFRoZXNlIHNob3VsZCBtYXRjaCB0aGUgJ0NvbHVtbiBQZXJtaXNzaW9ucycgZm9yIHRoZSBDcmVhdGUgb3BlcmF0aW9uIG9mIHRoZSBDb250YWN0IGVudGl0eTsgc2VlIFJFQURNRSAnQ29sdW1uIFBlcm1pc3Npb25zJyBzZWN0aW9uLlxyXG5leHBvcnQgdHlwZSBDb250YWN0Rm9yQ3JlYXRlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0NPTlRBQ1RfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPENvbnRhY3RGb3JDcmVhdGU+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcImZpcnN0bmFtZVwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBDb250YWN0Rm9yQ3JlYXRlKVtdLFxyXG4gICAgZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3M6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX3BhcmVudGN1c3RvbWVyaWRfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJwYXJlbnRjdXN0b21lcmlkX2FjY291bnRcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJhY2NvdW50c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9wcmltYXJ5c2l0ZVwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImFjY291bnRzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgQ29udGFjdFN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9Db250YWN0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IEJhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQmFzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb250YWN0VHlwZSB9IGZyb20gXCIuLi9FbnVtcy9Qb3J0YWxDb250YWN0VHlwZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuaW1wb3J0IHsgT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBDb250YWN0IHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGU/OiBQb3J0YWxDb250YWN0VHlwZSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBmaXJzdG5hbWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgbGFzdG5hbWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICB0ZWxlcGhvbmUxPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsPzogQmFzZVBlcm1pc3Npb25MZXZlbCB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw/OiBDYXNlUGVybWlzc2lvbkxldmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbD86IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbD86IE9yZGVyUGVybWlzc2lvbkxldmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbD86IFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsPzogSW52b2ljZVBlcm1pc3Npb25MZXZlbCB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBlbWFpbGFkZHJlc3MxPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGpvYnRpdGxlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgbW9iaWxlcGhvbmU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZXBld25vdGlmaWNhdGlvbnM/OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcj86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3JlY2VpdmVwcm9kdWN0dXBkYXRlcz86IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcbiAgICBzdGF0ZWNvZGU/OiBDb250YWN0U3RhdGVDb2RlID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSB0eXBlIG9mIGFsbCBmaWVsZHMgcmVxdWlyZWQgZm9yIHVwZGF0ZVxyXG4vLyBOT1RFOiBUaGVzZSBzaG91bGQgbWF0Y2ggdGhlICdDb2x1bW4gUGVybWlzc2lvbnMnIGZvciB0aGUgVXBkYXRlIG9wZXJhdGlvbiBvZiB0aGUgQ29udGFjdCBlbnRpdHk7IHNlZSBSRUFETUUgJ0NvbHVtbiBQZXJtaXNzaW9ucycgc2VjdGlvbi5cclxuZXhwb3J0IHR5cGUgQ29udGFjdEZvclVwZGF0ZSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFVQREFURV9DT05UQUNUX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxDb250YWN0Rm9yVXBkYXRlPiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogXCJmaXJzdG5hbWVcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgQ29udGFjdEZvclVwZGF0ZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9wcmltYXJ5c2l0ZVwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImFjY291bnRzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9OZXR3b3JrT3JkZXJTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG4vKipcclxuICogTW9kZWwgb2YgYSBOZXR3b3JrIE9yZGVyIHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIHN0YXR1c2NvZGU/OiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgTmV0d29ya09yZGVyRm9yVXBkYXRlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgVVBEQVRFX05FVFdPUktfT1JERVJfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPE5ldHdvcmtPcmRlckZvclVwZGF0ZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IG51bGwsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIE5ldHdvcmtPcmRlckZvclVwZGF0ZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9iaXN0ZWNoX2NvbnRhY3RfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJiaXN0ZWNoX0NvbnRhY3RcIixcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogXCJjb250YWN0c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgZXhwYW5kUHJvcGVydGllczogW10sXHJcbn07XHJcbiIsImltcG9ydCB7IE5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL05ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9OZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhZ2VUeXBlIH0gZnJvbSBcIi4uL0VudW1zL05ldHdvcmtPcmRlclN0YWdlVHlwZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIE5ldHdvcmsgT3JkZXIgU3RhZ2Ugd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZWlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9zdGFnZT86IE5ldHdvcmtPcmRlclN0YWdlVHlwZSA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfZGF0ZWZyb20/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdGVjb2RlPzogTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUgPSB1bmRlZmluZWQ7XHJcbiAgICBzdGF0dXNjb2RlPzogTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIE5ldHdvcmtPcmRlclN0YWdlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgTkVUV09SS19PUkRFUl9TVEFHRV9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8TmV0d29ya09yZGVyU3RhZ2U+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBudWxsLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBOZXR3b3JrT3JkZXJTdGFnZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTkVUV09SS19PUkRFUl9TVEFHRV9NRVRBREFUQSwgTmV0d29ya09yZGVyU3RhZ2UgfSBmcm9tIFwiLi9OZXR3b3JrT3JkZXJTdGFnZVwiO1xyXG5pbXBvcnQgeyBNQUpPUl9JTkNJREVOVF9VUERBVEVfTUVUQURBVEEsIE1ham9ySW5jaWRlbnRVcGRhdGUgfSBmcm9tIFwiLi9NYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsLFxyXG4gICAgUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX05FVFdPUktfT1JERVJfTUVUQURBVEEsXHJcbn0gZnJvbSBcIi4vUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBORVRXT1JLX09SREVSU19QT1JUQUxfRU1BSUxfTUVUQURBVEEsIFBvcnRhbEVtYWlsIH0gZnJvbSBcIi4vUG9ydGFsRW1haWxcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyVHlwZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9CaXN0ZWNoLlR5cGVTY3JpcHQuSGVscGVycy9Ycm1IZWxwZXIvRW51bXMvTmV0d29ya09yZGVyVHlwZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgTmV0d29yayBPcmRlciB3aGVuIHJldHJpZXZlZCB2aWEgdGhlIEFQSS5cclxuICogTk9URTogRmllbGRzIG5hbWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgQVBJLlxyXG4gKi9cclxuY2xhc3MgSW50ZXJuYWxNb2RlbCB7XHJcbiAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcmlkPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9uYW1lPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdGVjb2RlPzogTmV0d29ya09yZGVyU3RhdGVDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgc3RhdHVzY29kZT86IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcnR5cGU/OiBOZXR3b3JrT3JkZXJUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBfYmlzdGVjaF9vcmRlcmxpbmVfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfc2FsZXNvcmRlcl92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBfYmlzdGVjaF9jb250YWN0X3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIF9iaXN0ZWNoX2N1c3RvbWVyYXNzZXRfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlX25ldHdvcmtvcmRlcl9iaT86IE5ldHdvcmtPcmRlclN0YWdlW10gPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9hZHhfcG9ydGFsY29tbWVudHM/OiBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW10gfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9wb3J0YWxlbWFpbHM/OiBQb3J0YWxFbWFpbFtdIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXM/OiBNYWpvckluY2lkZW50VXBkYXRlW10gfCBudWxsID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgYSBzaW1wbGUgdHlwZSBvZiBhbGwgZmllbGRzXHJcbmV4cG9ydCB0eXBlIE5ldHdvcmtPcmRlckZvclJldHJpZXZhbCA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IFJFVFJJRVZBTF9ORVRXT1JLX09SREVSX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWw+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcImJpc3RlY2hfbmFtZVwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWwpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9jb250YWN0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9jb250YWN0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY29udGFjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9jdXN0b21lcmFzc2V0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY3VzdG9tZXJhc3NldHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9zYWxlc29yZGVyX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9zYWxlc29yZGVyXCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwic2FsZXNvcmRlcnNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9vcmRlcmxpbmVfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJiaXN0ZWNoX09yZGVyTGluZVwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcInNhbGVzb3JkZXJkZXRhaWxzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcImJpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlclwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcIm1zZHluX3Byb2plY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcImJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmlcIixcclxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IE5FVFdPUktfT1JERVJfU1RBR0VfTUVUQURBVEEsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYWR4X3BvcnRhbGNvbW1lbnRzXCIsXHJcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfTkVUV09SS19PUkRFUl9NRVRBREFUQSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX3BvcnRhbGVtYWlsc1wiLFxyXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogTkVUV09SS19PUkRFUlNfUE9SVEFMX0VNQUlMX01FVEFEQVRBLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcImJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXNcIixcclxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IE1BSk9SX0lOQ0lERU5UX1VQREFURV9NRVRBREFUQSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufTtcclxuIiwiaW1wb3J0IHsgTmV0d29ya09yZGVyVHlwZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9CaXN0ZWNoLlR5cGVTY3JpcHQuSGVscGVycy9Ycm1IZWxwZXIvRW51bXMvTmV0d29ya09yZGVyVHlwZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNb2RlbCBvZiBhIE5ldHdvcmsgT3JkZXIgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGJpc3RlY2hfbmFtZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXRlY29kZT86IE5ldHdvcmtPcmRlclN0YXRlQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIHN0YXR1c2NvZGU/OiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJ0eXBlPzogTmV0d29ya09yZGVyVHlwZSA9IHVuZGVmaW5lZDtcclxuICAgIF9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfb3JkZXJsaW5lX3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICAgIF9iaXN0ZWNoX3NhbGVzb3JkZXJfdmFsdWU/OiBzdHJpbmcgfCBudWxsID0gdW5kZWZpbmVkO1xyXG4gICAgX2Jpc3RlY2hfY29udGFjdF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgc2ltcGxlIHR5cGUgb2YgYWxsIGZpZWxkc1xyXG5leHBvcnQgdHlwZSBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlID0gUmVxdWlyZWQ8SW50ZXJuYWxNb2RlbD47XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgaW4gYSBydW50aW1lIG9iamVjdFxyXG5leHBvcnQgY29uc3QgUkVUUklFVkVfTVVMVElQTEVfTkVUV09SS19PUkRFUl9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8TmV0d29ya09yZGVyRm9yUmV0cmlldmVNdWx0aXBsZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwiYmlzdGVjaF9uYW1lXCIsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIE5ldHdvcmtPcmRlckZvclJldHJpZXZlTXVsdGlwbGUpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9jb250YWN0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9jb250YWN0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY29udGFjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9jdXN0b21lcmFzc2V0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY3VzdG9tZXJhc3NldHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9zYWxlc29yZGVyX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9zYWxlc29yZGVyXCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwic2FsZXNvcmRlcnNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfYmlzdGVjaF9vcmRlcmxpbmVfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogXCJiaXN0ZWNoX09yZGVyTGluZVwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcInNhbGVzb3JkZXJkZXRhaWxzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IFwiX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZVwiLFxyXG4gICAgICAgICAgICBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lOiBcImJpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlclwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcIm1zZHluX3Byb2plY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBDb250YWN0IHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIG1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZT86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLy8gRXhwb3J0IGEgdHlwZSBvZiBhbGwgZmllbGRzIHJlcXVpcmVkIGZvciB1cGRhdGVcclxuLy8gTk9URTogVGhlc2Ugc2hvdWxkIG1hdGNoIHRoZSAnQ29sdW1uIFBlcm1pc3Npb25zJyBmb3IgdGhlIFVwZGF0ZSBvcGVyYXRpb24gb2YgdGhlIENvbnRhY3QgZW50aXR5OyBzZWUgUkVBRE1FICdDb2x1bW4gUGVybWlzc2lvbnMnIHNlY3Rpb24uXHJcbmV4cG9ydCB0eXBlIENvbnRhY3RGb3JUZXJtc0FuZENvbmRpdGlvbnNVcGRhdGUgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVEVSTVNfQU5EX0NPTkRJVElPTlNfQ09OVEFDVF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8Q29udGFjdEZvclRlcm1zQW5kQ29uZGl0aW9uc1VwZGF0ZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IG51bGwsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIENvbnRhY3RGb3JUZXJtc0FuZENvbmRpdGlvbnNVcGRhdGUpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW10sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBJbnZvaWNlIHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGludm9pY2VpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGludm9pY2VudW1iZXI/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBkdWVkYXRlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX2N1c3RvbWVyaWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BheW1lbnRtZXRob2Rjb2RlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgbXNkeW5faW52b2ljZWRhdGU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgSW52b2ljZUZvclJldHJpZXZlTXVsdGlwbGUgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBSRVRSSUVWRV9NVUxUSVBMRV9JTlZPSUNFX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxJbnZvaWNlRm9yUmV0cmlldmVNdWx0aXBsZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IFwiaW52b2ljZW51bWJlclwiLFxyXG4gICAgY29sdW1uTmFtZXM6IE9iamVjdC5rZXlzKG5ldyBJbnRlcm5hbE1vZGVsKCkpIGFzIChrZXlvZiBJbnZvaWNlRm9yUmV0cmlldmVNdWx0aXBsZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9jdXN0b21lcmlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiY3VzdG9tZXJpZFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImFjY291bnRzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBQcm9qZWN0IFRhc2sgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgbXNkeW5fcHJvamVjdHRhc2tpZD86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgUHJvamVjdFRhc2tGb3JVcGRhdGUgPSBSZXF1aXJlZDxJbnRlcm5hbE1vZGVsPjtcclxuXHJcbi8vIEV4cG9ydCBtZXRhZGF0YSBpbiBhIHJ1bnRpbWUgb2JqZWN0XHJcbmV4cG9ydCBjb25zdCBVUERBVEVfUFJPSkVDVF9UQVNLX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQcm9qZWN0VGFza0ZvclVwZGF0ZT4gPSB7XHJcbiAgICB0aXRsZUNvbHVtbk5hbWU6IG51bGwsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIFByb2plY3RUYXNrRm9yVXBkYXRlKVtdLFxyXG4gICAgZW50aXR5UmVmZXJlbmNlQ29sdW1uTWFwcGluZ3M6IFtcclxuXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiYmlzdGVjaF9Bc3NpZ25lZEN1c3RvbWVyQ29udGFjdFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImNvbnRhY3RzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTW9kZWwgb2YgYSBJbnZvaWNlIHdoZW4gcmV0cmlldmVkIHZpYSB0aGUgQVBJLlxyXG4gKiBOT1RFOiBGaWVsZHMgbmFtZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSBBUEkuXHJcbiAqL1xyXG5jbGFzcyBJbnRlcm5hbE1vZGVsIHtcclxuICAgIGludm9pY2VpZD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuICAgIGludm9pY2VudW1iZXI/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBkdWVkYXRlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgX2N1c3RvbWVyaWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BheW1lbnRtZXRob2Rjb2RlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgbXNkeW5faW52b2ljZWRhdGU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMj86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMz86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkND86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbiAgICBiaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgSW52b2ljZSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IElOVk9JQ0VfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPEludm9pY2U+ID0ge1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcImludm9pY2VudW1iZXJcIixcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgSW52b2ljZSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9jdXN0b21lcmlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwiY3VzdG9tZXJpZFwiLFxyXG4gICAgICAgICAgICBwbHVyYWxFbnRpdHlTZXROYW1lOiBcImFjY291bnRzXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBleHBhbmRQcm9wZXJ0aWVzOiBbXSxcclxufTtcclxuIiwiaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgdXNlTW9ja0NydWRTZXJ2aWNlIH0gZnJvbSBcIi4vdXNlTW9ja0NydWRTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhLCB1c2VMaXZlQ3J1ZFNlcnZpY2UgfSBmcm9tIFwiLi91c2VMaXZlQ3J1ZFNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gXCIuLi9Nb2RlbHMvUHJvZHVjdFwiO1xyXG5pbXBvcnQgeyBDdXN0b21lckFzc2V0LCBDVVNUT01FUl9BU1NFVF9NRVRBREFUQSB9IGZyb20gXCIuLi9Nb2RlbHMvQ3VzdG9tZXJBc3NldFwiO1xyXG5pbXBvcnQgeyBDb25kaXRpb25FeHByZXNzaW9uIH0gZnJvbSBcIi4uL1R5cGVzL0NvbmRpdGlvbkV4cHJlc3Npb25cIjtcclxuaW1wb3J0IHsgQ29udGFjdEZvclJldHJpZXZhbCwgUkVUUklFVkFMX0NPTlRBQ1RfTUVUQURBVEEgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHtcclxuICAgIEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSxcclxuICAgIFJFVFJJRVZFX01VTFRJUExFX0lOQ0lERU5UX01FVEFEQVRBLFxyXG59IGZyb20gXCIuLi9Nb2RlbHMvSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRGb3JDcmVhdGUgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JDcmVhdGVcIjtcclxuaW1wb3J0IHsgVVBEQVRFX1BPUlRBTF9DT01NRU5UX01FVEFEQVRBIH0gZnJvbSBcIi4uL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yVXBkYXRlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgQWNjb3VudCwgQWNjb3VudEZvclVwZGF0ZSwgQUNDT1VOVF9NRVRBREFUQSB9IGZyb20gXCIuLi9Nb2RlbHMvQWNjb3VudFwiO1xyXG5pbXBvcnQgeyBQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLCBQT1JUQUxfTUFKT1JfSU5DSURFTlRfVVBEQVRFX01FVEFEQVRBIH0gZnJvbSBcIi4uL01vZGVscy9Qb3J0YWxNYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7IFBvcnRhbEludml0YXRpb24sIFBPUlRBTF9JTlZJVEVfTUVUQURBVEEgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbEludml0YXRpb25cIjtcclxuaW1wb3J0IHsgQ2FzZVR5cGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVR5cGVcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0luY2lkZW50U3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBGZWVkYmFja0NhdGVnb3J5IH0gZnJvbSBcIi4uL1R5cGVzL0ZlZWRiYWNrQ2F0ZWdvcnlcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi9IZWxwZXJzL0RhdGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgQWN0aXZpdHlTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQWN0aXZpdHlTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgUG9ydGFsQ29tbWVudFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUG9ydGFsQ29tbWVudFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgQ3VzdG9tZXJBc3NldFN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9DdXN0b21lckFzc2V0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IEJMT0dfUE9TVF9NRVRBREFUQSwgQmxvZ1Bvc3QgfSBmcm9tIFwiLi4vTW9kZWxzL0Jsb2dQb3N0XCI7XHJcbmltcG9ydCB7IE9SREVSX01FVEFEQVRBLCBPcmRlciwgT3JkZXJGb3JVcGRhdGUgfSBmcm9tIFwiLi4vTW9kZWxzL09yZGVyXCI7XHJcbmltcG9ydCB7IE9yZGVyU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgT1JERVJGT1JNQjY0X01FVEFEQVRBIH0gZnJvbSBcIi4uL01vZGVscy9PcmRlckZvcm1cIjtcclxuaW1wb3J0IHsgUFJPSkVDVF9NRVRBREFUQSwgUHJvamVjdCB9IGZyb20gXCIuLi9Nb2RlbHMvUHJvamVjdFwiO1xyXG5pbXBvcnQgeyBDUkVBVEVfSU5DSURFTlRfTUVUQURBVEEsIEluY2lkZW50Rm9yQ3JlYXRlIH0gZnJvbSBcIi4uL01vZGVscy9JbmNpZGVudEZvckNyZWF0ZVwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudEZvclJldHJpZXZhbCwgUkVUUklFVkFMX0lOQ0lERU5UX01FVEFEQVRBIH0gZnJvbSBcIi4uL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudEZvclVwZGF0ZSwgVVBEQVRFX0lOQ0lERU5UX01FVEFEQVRBIH0gZnJvbSBcIi4uL01vZGVscy9JbmNpZGVudEZvclVwZGF0ZVwiO1xyXG5pbXBvcnQgeyBDUkVBVEVfQ09OVEFDVF9NRVRBREFUQSwgQ29udGFjdEZvckNyZWF0ZSB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvckNyZWF0ZVwiO1xyXG5pbXBvcnQgeyBDb250YWN0Rm9yVXBkYXRlLCBVUERBVEVfQ09OVEFDVF9NRVRBREFUQSB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclVwZGF0ZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJGb3JVcGRhdGUsIFVQREFURV9ORVRXT1JLX09SREVSX01FVEFEQVRBIH0gZnJvbSBcIi4uL01vZGVscy9OZXR3b3JrT3JkZXJGb3JVcGRhdGVcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyRm9yUmV0cmlldmFsLCBSRVRSSUVWQUxfTkVUV09SS19PUkRFUl9NRVRBREFUQSB9IGZyb20gXCIuLi9Nb2RlbHMvTmV0d29ya09yZGVyRm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7XHJcbiAgICBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlLFxyXG4gICAgUkVUUklFVkVfTVVMVElQTEVfTkVUV09SS19PUkRFUl9NRVRBREFUQSxcclxufSBmcm9tIFwiLi4vTW9kZWxzL05ldHdvcmtPcmRlckZvclJldHJpZXZlTXVsdGlwbGVcIjtcclxuaW1wb3J0IHsgVVBEQVRFX1RFUk1TX0FORF9DT05ESVRJT05TX0NPTlRBQ1RfTUVUQURBVEEgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JUZXJtc0FuZENvbmRpdGlvbnNVcGRhdGVcIjtcclxuaW1wb3J0IHsgSW52b2ljZUZvclJldHJpZXZlTXVsdGlwbGUsIFJFVFJJRVZFX01VTFRJUExFX0lOVk9JQ0VfTUVUQURBVEEgfSBmcm9tIFwiLi4vTW9kZWxzL0ludm9pY2VGb3JSZXRyaWV2ZU11bHRpcGxlXCI7XHJcbmltcG9ydCB7IFBST0pFQ1RfVEFTS19NRVRBREFUQSwgUHJvamVjdFRhc2sgfSBmcm9tIFwiLi4vTW9kZWxzL1Byb2plY3RUYXNrXCI7XHJcbmltcG9ydCB7IFVQREFURV9QUk9KRUNUX1RBU0tfTUVUQURBVEEgfSBmcm9tIFwiLi4vTW9kZWxzL1Byb2plY3RUYXNrRm9yVXBkYXRlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQmlzdGVjaC5UeXBlU2NyaXB0LkhlbHBlcnMvWHJtSGVscGVyL0VudW1zL05ldHdvcmtPcmRlclR5cGVcIjtcclxuaW1wb3J0IHsgSU5WT0lDRV9NRVRBREFUQSwgSW52b2ljZSB9IGZyb20gXCIuLi9Nb2RlbHMvSW52b2ljZVwiO1xyXG5pbXBvcnQgeyBQUk9KRUNUX0xPR19NRVRBREFUQSwgUHJvamVjdExvZyB9IGZyb20gXCIuLi9Nb2RlbHMvUHJvamVjdExvZ1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza1N0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFRhc2tTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrQXNzaWduZWRUbyB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0VGFza0Fzc2lnbmVkVG9cIjtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBnbG9iYWwgaW50ZXJmYWNlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VycyBjb250YWN0IElkXHJcbiAqIGFuZCB0byByZXRyaWV2ZSBhdXRoZW50aWNhdGlvbiB0b2tlbnMgZm9yIHRoZSBEeW5hbWljczM2NSBXZWIgQVBJLlxyXG4gKi9cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XHJcbiAgICAgICAgc2hlbGw6IHsgZ2V0VG9rZW5EZWZlcnJlZDogKCkgPT4gUHJvbWlzZUxpa2U8c3RyaW5nPiB9O1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciBvciBub3QgdG8gdXNlIHRoZSBEeW5hbWljcyBBUEkgZW5kcG9pbnQgb3IgdGhlIE1vY2sgQ3J1ZCBTZXJ2aWNlLlxyXG4gKiBAcmV0dXJucyBUaGUgQ1JVRCBmdW5jdGlvbnMgd2hpY2ggYXJlIGF2YWlsYWJsZSBpbiB0aGUgRGF0YSBTZXJ2aWNlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHVzZURhdGFTZXJ2aWNlID0gKCkgPT4ge1xyXG4gICAgY29uc3QgaXNMb2NhbE1vZGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmlzTG9jYWxNb2RlKTtcclxuICAgIGNvbnN0IHVzZXJJZCA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUudXNlcklkKTtcclxuXHJcbiAgICBjb25zdCBsaXZlQ3J1ZFNlcnZpY2UgPSB1c2VMaXZlQ3J1ZFNlcnZpY2UoKTtcclxuICAgIGNvbnN0IG1vY2tDcnVkU2VydmljZSA9IHVzZU1vY2tDcnVkU2VydmljZSgpO1xyXG5cclxuICAgIGNvbnN0IGNydWRTZXJ2aWNlID0gaXNMb2NhbE1vZGUgPyBtb2NrQ3J1ZFNlcnZpY2UgOiBsaXZlQ3J1ZFNlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgQ2FzZS5cclxuICAgICAqIEBwYXJhbSBpbmNpZGVudCBDYXNlIHRvIGNyZWF0ZS5cclxuICAgICAqIEByZXR1cm5zIENyZWF0ZWQgQ2FzZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlSW5jaWRlbnQoaW5jaWRlbnQ6IEluY2lkZW50Rm9yQ3JlYXRlKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZhbD4ge1xyXG4gICAgICAgIGlmICghdXNlcklkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGB1c2VySWRgIHRvIG5vdCBiZSBudWxsXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgeyBpZDogY3JlYXRlZEluY2lkZW50SWQgfSA9IGF3YWl0IGNydWRTZXJ2aWNlLmNyZWF0ZShcImluY2lkZW50c1wiLCBpbmNpZGVudCwgQ1JFQVRFX0lOQ0lERU5UX01FVEFEQVRBKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwiaW5jaWRlbnRzXCIsIGNyZWF0ZWRJbmNpZGVudElkLCBSRVRSSUVWQUxfSU5DSURFTlRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIENvbnRhY3QuXHJcbiAgICAgKiBAcGFyYW0gY29udGFjdCBDb250YWN0IHRvIGNyZWF0ZS5cclxuICAgICAqIEByZXR1cm5zIENyZWF0ZWQgQ29udGFjdC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29udGFjdChjb250YWN0OiBDb250YWN0Rm9yQ3JlYXRlKTogUHJvbWlzZTxDb250YWN0Rm9yUmV0cmlldmFsPiB7XHJcbiAgICAgICAgaWYgKCF1c2VySWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYHVzZXJJZGAgdG8gbm90IGJlIG51bGxcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB7IGlkOiBjcmVhdGVkQ29udGFjdElkIH0gPSBhd2FpdCBjcnVkU2VydmljZS5jcmVhdGUoXCJjb250YWN0c1wiLCBjb250YWN0LCBDUkVBVEVfQ09OVEFDVF9NRVRBREFUQSk7XHJcblxyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcImNvbnRhY3RzXCIsIGNyZWF0ZWRDb250YWN0SWQsIFJFVFJJRVZBTF9DT05UQUNUX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgYSBDYXNlLlxyXG4gICAgICogQHBhcmFtIGluY2lkZW50SWQgSWRlbnRpZmllciBvZiB0aGUgQ2FzZSB0byB1cGRhdGUuXHJcbiAgICAgKiBAcGFyYW0gcGFydGlhbFVwZGF0ZSBVcGRhdGUgdG8gcGVyZm9ybS5cclxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgY2FzZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlSW5jaWRlbnQoXHJcbiAgICAgICAgaW5jaWRlbnRJZDogc3RyaW5nLFxyXG4gICAgICAgIHBhcnRpYWxVcGRhdGU6IFBhcnRpYWw8SW5jaWRlbnRGb3JVcGRhdGU+XHJcbiAgICApOiBQcm9taXNlPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT4ge1xyXG4gICAgICAgIGlmICghaW5jaWRlbnRJZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBgaW5jaWRlbnRpZGAgdG8gbm90IGJlIG51bGwvZW1wdHlcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhd2FpdCBjcnVkU2VydmljZS51cGRhdGUoXCJpbmNpZGVudHNcIiwgaW5jaWRlbnRJZCwgcGFydGlhbFVwZGF0ZSwgVVBEQVRFX0lOQ0lERU5UX01FVEFEQVRBKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwiaW5jaWRlbnRzXCIsIGluY2lkZW50SWQsIFJFVFJJRVZBTF9JTkNJREVOVF9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIGEgQ29udGFjdC5cclxuICAgICAqIEBwYXJhbSBjb250YWN0SWQgSWRlbnRpZmllciBvZiB0aGUgQ29udGFjdCB0byB1cGRhdGUuXHJcbiAgICAgKiBAcGFyYW0gcGFydGlhbFVwZGF0ZSBVcGRhdGUgdG8gcGVyZm9ybS5cclxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgQ29udGFjdC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29udGFjdChcclxuICAgICAgICBjb250YWN0SWQ6IHN0cmluZyxcclxuICAgICAgICBwYXJ0aWFsVXBkYXRlOiBQYXJ0aWFsPENvbnRhY3RGb3JVcGRhdGU+XHJcbiAgICApOiBQcm9taXNlPENvbnRhY3RGb3JSZXRyaWV2YWw+IHtcclxuICAgICAgICBpZiAoIWNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBgY29udGFjdGlkYCB0byBub3QgYmUgbnVsbC9lbXB0eVwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IGNydWRTZXJ2aWNlLnVwZGF0ZShcImNvbnRhY3RzXCIsIGNvbnRhY3RJZCwgcGFydGlhbFVwZGF0ZSwgVVBEQVRFX0NPTlRBQ1RfTUVUQURBVEEpO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmUoXCJjb250YWN0c1wiLCBjb250YWN0SWQsIFJFVFJJRVZBTF9DT05UQUNUX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgYW4gQWNjb3VudC5cclxuICAgICAqIEBwYXJhbSBhY2NvdW50SWQgSWRlbnRpZmllciBvZiB0aGUgQWNjb3VudCB0byB1cGRhdGUuXHJcbiAgICAgKiBAcGFyYW0gcGFydGlhbFVwZGF0ZSBVcGRhdGUgdG8gcGVyZm9ybS5cclxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgQWNjb3VudC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQWNjb3VudChhY2NvdW50SWQ6IHN0cmluZywgYWNjb3VudDogUGFydGlhbDxBY2NvdW50Rm9yVXBkYXRlPik6IFByb21pc2U8QWNjb3VudD4ge1xyXG4gICAgICAgIGlmICghYWNjb3VudElkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGBhY2NvdW50aWRgIHRvIG5vdCBiZSBudWxsL2VtcHR5XCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgY3J1ZFNlcnZpY2UudXBkYXRlKFwiYWNjb3VudHNcIiwgYWNjb3VudElkLCBhY2NvdW50LCBBQ0NPVU5UX01FVEFEQVRBKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwiYWNjb3VudHNcIiwgYWNjb3VudElkLCBBQ0NPVU5UX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgYW4gT3JkZXIuXHJcbiAgICAgKiBAcGFyYW0gb3JkZXJJZCBJZGVudGlmaWVyIG9mIHRoZSBPcmRlciB0byB1cGRhdGUuXHJcbiAgICAgKiBAcGFyYW0gb3JkZXIgVXBkYXRlIHRvIHBlcmZvcm0uXHJcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIE9yZGVyLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiB1cGRhdGVPcmRlcihvcmRlcmlkOiBzdHJpbmcsIG9yZGVyOiBQYXJ0aWFsPE9yZGVyRm9yVXBkYXRlPik6IFByb21pc2U8T3JkZXI+IHtcclxuICAgICAgICBpZiAoIW9yZGVyaWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYG9yZGVyaWRgIHRvIG5vdCBiZSBudWxsL2VtcHR5XCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgY3J1ZFNlcnZpY2UudXBkYXRlKFwic2FsZXNvcmRlcnNcIiwgb3JkZXJpZCwgb3JkZXIsIE9SREVSX01FVEFEQVRBKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwic2FsZXNvcmRlcnNcIiwgb3JkZXJpZCwgT1JERVJfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBhIE5ldHdvcmsgT3JkZXIuXHJcbiAgICAgKiBAcGFyYW0gbmV0d29ya09yZGVySWQgSWRlbnRpZmllciBvZiB0aGUgTmV0d29yayBPcmRlciB0byB1cGRhdGUuXHJcbiAgICAgKiBAcGFyYW0gbmV0d29ya09yZGVyIFVwZGF0ZSB0byBwZXJmb3JtLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiB1cGRhdGVOZXR3b3JrT3JkZXIoXHJcbiAgICAgICAgbmV0d29ya09yZGVySWQ6IHN0cmluZyxcclxuICAgICAgICBuZXR3b3JrT3JkZXI6IFBhcnRpYWw8TmV0d29ya09yZGVyRm9yVXBkYXRlPlxyXG4gICAgKTogUHJvbWlzZTxOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWw+IHtcclxuICAgICAgICBpZiAoIW5ldHdvcmtPcmRlcklkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkICduZXR3b3JrT3JkZXJJZCcgdG8gbm90IGJlIG51bGwvZW1wdHlcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhd2FpdCBjcnVkU2VydmljZS51cGRhdGUoXCJiaXN0ZWNoX25ldHdvcmtvcmRlcnNcIiwgbmV0d29ya09yZGVySWQsIG5ldHdvcmtPcmRlciwgVVBEQVRFX05FVFdPUktfT1JERVJfTUVUQURBVEEpO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmUoXCJiaXN0ZWNoX25ldHdvcmtvcmRlcnNcIiwgbmV0d29ya09yZGVySWQsIFJFVFJJRVZBTF9ORVRXT1JLX09SREVSX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc2Fzc29jaWF0ZXMgYSBDb250YWN0IGZyb20gYSBOZXR3b3JrIE9yZGVyLlxyXG4gICAgICogQHBhcmFtIG5ldHdvcmtPcmRlcklkIFRoZSBJRCBvZiB0aGUgTmV0d29yayBPcmRlci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZGlzYXNzb2NpYXRlQ29udGFjdEZyb21OZXR3b3JrT3JkZXIobmV0d29ya09yZGVySWQ6IHN0cmluZyk6IFByb21pc2U8TmV0d29ya09yZGVyRm9yUmV0cmlldmFsPiB7XHJcbiAgICAgICAgaWYgKCFuZXR3b3JrT3JkZXJJZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCAnbmV0d29ya09yZGVySWQnIHRvIG5vdCBiZSBudWxsL2VtcHR5XCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgY3J1ZFNlcnZpY2UuZGlzYXNzb2NpYXRlKFxyXG4gICAgICAgICAgICBcImJpc3RlY2hfbmV0d29ya29yZGVyc1wiLFxyXG4gICAgICAgICAgICBuZXR3b3JrT3JkZXJJZCxcclxuICAgICAgICAgICAgXCJiaXN0ZWNoX0NvbnRhY3RcIixcclxuICAgICAgICAgICAgUkVUUklFVkFMX05FVFdPUktfT1JERVJfTUVUQURBVEFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmUoXCJiaXN0ZWNoX25ldHdvcmtvcmRlcnNcIiwgbmV0d29ya09yZGVySWQsIFJFVFJJRVZBTF9ORVRXT1JLX09SREVSX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW5kIHNlbmRzIGEgUG9ydGFsIENvbW1lbnQuXHJcbiAgICAgKiBAcGFyYW0gcG9ydGFsQ29tbWVudCBQb3J0YWwgQ29tbWVudCB0byBzZW5kLlxyXG4gICAgICogQHBhcmFtIGVudGl0eVR5cGUgTG9naWNhbCBuYW1lIG9mIHRoZSBlbnRpdHkgdG8gd2hpY2ggdGhlIFBvcnRhbCBDb21tZW50IGlzIHJlbGF0ZWQuXHJcbiAgICAgKiBAcmV0dXJucyBTZW50IFBvcnRhbCBDb21tZW50LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBzZW5kUG9ydGFsQ29tbWVudDxcclxuICAgICAgICBUUG9ydGFsQ29tbWVudEZvckNyZWF0ZSBleHRlbmRzIFBvcnRhbENvbW1lbnRGb3JDcmVhdGUsXHJcbiAgICAgICAgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsXHJcbiAgICA+KFxyXG4gICAgICAgIHBvcnRhbENvbW1lbnQ6IFRQb3J0YWxDb21tZW50Rm9yQ3JlYXRlLFxyXG4gICAgICAgIGNyZWF0ZUVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUUG9ydGFsQ29tbWVudEZvckNyZWF0ZT4sXHJcbiAgICAgICAgcmV0cmlldmVFbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+XHJcbiAgICApOiBQcm9taXNlPFRQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsPiB7XHJcbiAgICAgICAgaWYgKCF1c2VySWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYHVzZXJJZGAgdG8gbm90IGJlIG51bGxcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIFBvcnRhbCBDb21tZW50XHJcbiAgICAgICAgY29uc3QgeyBpZDogY3JlYXRlZFBvcnRhbENvbW1lbnRJZCB9ID0gYXdhaXQgY3J1ZFNlcnZpY2UuY3JlYXRlKFxyXG4gICAgICAgICAgICBcImFkeF9wb3J0YWxjb21tZW50c1wiLFxyXG4gICAgICAgICAgICBwb3J0YWxDb21tZW50LFxyXG4gICAgICAgICAgICBjcmVhdGVFbnRpdHlNZXRhZGF0YVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIFNlbmQgdGhlIFBvcnRhbCBDb21tZW50XHJcbiAgICAgICAgYXdhaXQgY3J1ZFNlcnZpY2UudXBkYXRlKFxyXG4gICAgICAgICAgICBcImFkeF9wb3J0YWxjb21tZW50c1wiLFxyXG4gICAgICAgICAgICBjcmVhdGVkUG9ydGFsQ29tbWVudElkLFxyXG4gICAgICAgICAgICB7IHN0YXRlY29kZTogQWN0aXZpdHlTdGF0ZUNvZGVbXCJDb21wbGV0ZWRcIl0sIHN0YXR1c2NvZGU6IFBvcnRhbENvbW1lbnRTdGF0dXNDb2RlW1wiU2VudFwiXSB9LFxyXG4gICAgICAgICAgICBVUERBVEVfUE9SVEFMX0NPTU1FTlRfTUVUQURBVEFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgdXBkYXRlZCBQb3J0YWwgQ29tbWVudFxyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcImFkeF9wb3J0YWxjb21tZW50c1wiLCBjcmVhdGVkUG9ydGFsQ29tbWVudElkLCByZXRyaWV2ZUVudGl0eU1ldGFkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRvIGFsbG93IHVzZXJzIHRvIGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMsIHBvcHVsYXRlIHRoZWlyIHJlY29yZCBhbmQgcmVkaXJlY3QgdGhlbS5cclxuICAgICAqIEByZXR1cm5zIEFjY2VwdGVkIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHNldFBvcnRhbFRlcm1zT2ZBZ3JlZW1lbnREYXRlKCk6IFByb21pc2U8eyBhY2NlcHRlZERhdGU6IERhdGUgfT4ge1xyXG4gICAgICAgIGlmICghdXNlcklkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGB1c2VySWRgIHRvIG5vdCBiZSBudWxsXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgICAgYXdhaXQgY3J1ZFNlcnZpY2UudXBkYXRlKFxyXG4gICAgICAgICAgICBcImNvbnRhY3RzXCIsXHJcbiAgICAgICAgICAgIHVzZXJJZCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbXNkeW5fcG9ydGFsdGVybXNhZ3JlZW1lbnRkYXRlOiBub3cudG9JU09TdHJpbmcoKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgVVBEQVRFX1RFUk1TX0FORF9DT05ESVRJT05TX0NPTlRBQ1RfTUVUQURBVEFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4geyBhY2NlcHRlZERhdGU6IG5vdyB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIFNhbGVzIE9yZGVyIE9yZGVyIEZvcm0gZnJvbSBEeW5hbWljcyAzNjUuXHJcbiAgICAgKiBAcGFyYW0gb3JkZXJmb3JtaWQgVGhlIElEIG9mIHRoZSBPcmRlciBGb3JtLlxyXG4gICAgICogQHJldHVybnMgVGhlIFNhbGVzIE9yZGVyIE9yZGVyIEZvcm0uXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3JkZXJGb3JtSW5mbyhvcmRlcmZvcm1pZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCFvcmRlcmZvcm1pZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBgb3JkZXJmb3JtaWRgIHRvIG5vdCBiZSBudWxsL2VtcHR5XCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwiYmlzdGVjaF9vcmRlcmZvcm1zXCIsIG9yZGVyZm9ybWlkLCBPUkRFUkZPUk1CNjRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIE9wZW4sIEluIFByb2dyZXNzLCBPbi1Ib2xkLCBQZW5kaW5nIEN1c3RvbWVyIEZlZWRiYWNrLCBDbG9zdXJlIFJlcXVlc3RlZCBhbmQgUmVzb2x2ZWQgQ2FzZXMuXHJcbiAgICAgKiBAcmV0dXJucyBBY3RpdmUgQ2FzZXMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlQWN0aXZlSW5jaWRlbnRzKCk6IFByb21pc2U8SW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlW10+IHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJzOiBDb25kaXRpb25FeHByZXNzaW9uPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZT5bXSA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcIm5lXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlLkNsb3NlZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcIm5lXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlLkNhbmNlbGxlZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcIm5lXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlLk1lcmdlZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmVNdWx0aXBsZShcImluY2lkZW50c1wiLCBSRVRSSUVWRV9NVUxUSVBMRV9JTkNJREVOVF9NRVRBREFUQSwgZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBzcGVjaWZpYyBDYXNlLlxyXG4gICAgICogQHBhcmFtIGluY2lkZW50SWQgSWRlbnRpZmllciBvZiB0aGUgQ2FzZSB0byByZXRyaWV2ZS5cclxuICAgICAqIEByZXR1cm5zIENhc2UuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlSW5jaWRlbnQoaW5jaWRlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZhbD4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcImluY2lkZW50c1wiLCBpbmNpZGVudElkLCBSRVRSSUVWQUxfSU5DSURFTlRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgc3BlY2lmaWMgQ29udGFjdC5cclxuICAgICAqIEBwYXJhbSBjb250YWN0SWQgSWRlbnRpZmllciBvZiB0aGUgQ29udGFjdCB0byByZXRyaWV2ZS5cclxuICAgICAqIEByZXR1cm5zIENvbnRhY3QuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlQ29udGFjdChjb250YWN0SWQ6IHN0cmluZyk6IFByb21pc2U8Q29udGFjdEZvclJldHJpZXZhbD4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcImNvbnRhY3RzXCIsIGNvbnRhY3RJZCwgUkVUUklFVkFMX0NPTlRBQ1RfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgc3BlY2lmaWMgT3JkZXIuXHJcbiAgICAgKiBAcGFyYW0gc2FsZXNPcmRlcklkIElkZW50aWZpZXIgb2YgdGhlIE9yZGVyIHRvIHJldHJpZXZlLlxyXG4gICAgICogQHJldHVybnMgT3JkZXIuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3JkZXIoc2FsZXNPcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPE9yZGVyPiB7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwic2FsZXNvcmRlcnNcIiwgc2FsZXNPcmRlcklkLCBPUkRFUl9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIGEgUHJvamVjdCBUYXNrLlxyXG4gICAgICogQHBhcmFtIHByb2plY3RUYXNrIFRoZSBQcm9qZWN0IFRhc2sgdG8gdXBkYXRlLlxyXG4gICAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgUHJvamVjdCBUYXNrLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiB1cGRhdGVQcm9qZWN0VGFzayhwcm9qZWN0VGFzazogUGFydGlhbDxQcm9qZWN0VGFzaz4pOiBQcm9taXNlPFByb2plY3RUYXNrPiB7XHJcbiAgICAgICAgaWYgKCFwcm9qZWN0VGFzay5tc2R5bl9wcm9qZWN0dGFza2lkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkICdwcm9qZWN0VGFza0lkJyB0byBub3QgYmUgbnVsbC9lbXB0eVwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IGNydWRTZXJ2aWNlLnVwZGF0ZShcclxuICAgICAgICAgICAgXCJtc2R5bl9wcm9qZWN0dGFza3NcIixcclxuICAgICAgICAgICAgcHJvamVjdFRhc2subXNkeW5fcHJvamVjdHRhc2tpZCxcclxuICAgICAgICAgICAgcHJvamVjdFRhc2ssXHJcbiAgICAgICAgICAgIFVQREFURV9QUk9KRUNUX1RBU0tfTUVUQURBVEFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmUoXCJtc2R5bl9wcm9qZWN0dGFza3NcIiwgcHJvamVjdFRhc2subXNkeW5fcHJvamVjdHRhc2tpZCwgUFJPSkVDVF9UQVNLX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIHNwZWNpZmljIFByb2plY3QuXHJcbiAgICAgKiBAcGFyYW0gcHJvamVjdElkIElkZW50aWZpZXIgb2YgdGhlIFByb2plY3QgdG8gcmV0cmlldmUuXHJcbiAgICAgKiBAcmV0dXJucyBPcmRlci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVQcm9qZWN0KHByb2plY3RJZDogc3RyaW5nKTogUHJvbWlzZTxQcm9qZWN0PiB7XHJcbiAgICAgICAgY29uc3QgcHJvamVjdCA9IGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwibXNkeW5fcHJvamVjdHNcIiwgcHJvamVjdElkLCBQUk9KRUNUX01FVEFEQVRBKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ucHJvamVjdCxcclxuXHJcbiAgICAgICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogKFxyXG4gICAgICAgICAgICAgICAgcHJvamVjdC5tc2R5bl9tc2R5bl9wcm9qZWN0X21zZHluX3Byb2plY3R0YXNrX3Byb2plY3QgfHwgW11cclxuICAgICAgICAgICAgKS5tYXAoKHByb2plY3RUYXNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIFByb2plY3QgVGFzayBTdGFydCBEYXRlIHNob3VsZCBub3QgeWV0IGJlIHNob3duIGluIHRoZSBwb3J0YWwsIG51bGxpZnkgdGhlIHN0YXJ0IGRhdGUuIFRoZSBsb2dpYyBmb3IgdGhpcyBpcyBhIGxpdHRsZSBjb21wbGV4OlxyXG4gICAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAgIC8vIC0gJ1BlbmRpbmcnIFByb2plY3QgVGFza3Mgc2hvdWxkIE5FVkVSIHNob3cgdGhlaXIgU3RhcnQgRGF0ZSAoYXMgdGhpcyB3aWxsIGJlIGRlZmF1bHRlZCB0byB0aGUgUHJvamVjdCBgY3JlYXRlZG9uYCwgYW5kIHRoZXJlZm9yZSBuZXZlciBjb3JyZWN0KS5cclxuICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICAvLyAtIEZvciBDdXN0b21lciB0YXNrcywgaG9ub3IgYGJpc3RlY2hfc2hvd3N0YXJ0ZGF0ZWlucG9ydGFsYC4gVGhpcyBmbGFnIGlzIHNldCBieSBgQmlzdGVjaC5Ycm0uUGx1Z2lucy5Qcm9qZWN0VGFzay5TZXRTaG93U3RhcnREYXRlSW5Qb3J0YWxgIG9uIHRyYW5zaXRpb25cclxuICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBQcm9qZWN0IFRhc2sgZnJvbSAnUGVuZGluZycgdG8gJ0luIFByb2dyZXNzJyBieSBhIFByb2plY3QgTWFuYWdlciAoaS5lLiB0aGV5IGhhdmUgc2V0L3Jldmlld2VkIHRoZSBTdGFydCBEYXRlIG1hbnVhbGx5LCBzbyBpcyBvayB0byBzaG93KS5cclxuICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICAvLyAtIEZvciBCaXN0ZWNoIHRhc2tzLCBBTFdBWVMgc2hvdyB0aGUgU3RhcnQgRGF0ZSAoYXMgdGhlIFByb2plY3QgVGFzayB3aWxsIG9ubHkgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSBQZW5kaW5nIGF1dG9tYXRpY2FsbHkgYXMgYSByZXN1bHQgb2YgYVxyXG4gICAgICAgICAgICAgICAgLy8gQm9va2FibGUgUmVzb3VyY2UgQm9va2luZyBjcmVhdGlvbiwgd2hpY2ggd291bGQgaGF2ZSBhdXRvbWF0aWNhbGx5IHNldCB0aGUgU3RhcnQgRGF0ZSkuXHJcbiAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3RUYXNrLnN0YXR1c2NvZGUgPT09IFByb2plY3RUYXNrU3RhdHVzQ29kZS5QZW5kaW5nIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHByb2plY3RUYXNrLmJpc3RlY2hfYXNzaWduZWR0byAhPT0gUHJvamVjdFRhc2tBc3NpZ25lZFRvLkJpc3RlY2ggJiYgLy8gJ05vdCBlcXVhbCBCaXN0ZWNoJyB1c2VkIGluc3RlYWQgb2YgJ0VxdWFscyBDdXN0b21lcicgc28gdGhhdCBpZiB0aGUgbG9naWMgdG8gZGV0ZXJtaW5lIEN1c3RvbWVyIHZzLiBCaXN0ZWNoIGhhcyBmYWlsZWQsIGFzc3VtZSBDdXN0b21lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdFRhc2suYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWwpXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5wcm9qZWN0VGFzaywgbXNkeW5fc2NoZWR1bGVkc3RhcnQ6IG51bGwgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvamVjdFRhc2s7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBzcGVjaWZpYyBJbnZvaWNlLlxyXG4gICAgICogQHBhcmFtIGludm9pY2VJZCBJZGVudGlmaWVyIG9mIHRoZSBJbnZvaWNlIHRvIHJldHJpZXZlLlxyXG4gICAgICogQHJldHVybnMgSW52b2ljZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVJbnZvaWNlKGludm9pY2VJZDogc3RyaW5nKTogUHJvbWlzZTxJbnZvaWNlPiB7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlKFwiaW52b2ljZXNcIiwgaW52b2ljZUlkLCBJTlZPSUNFX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIHNwZWNpZmljIE5ldHdvcmsgT3JkZXIuXHJcbiAgICAgKiBAcGFyYW0gbmV0d29ya09yZGVySWQgSWRlbnRpZmllciBvZiB0aGUgTmV0d29yayBPcmRlciB0byByZXRyaWV2ZS5cclxuICAgICAqIEByZXR1cm5zIE5ldHdvcmsgT3JkZXIuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlTmV0d29ya09yZGVyKG5ldHdvcmtPcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPE5ldHdvcmtPcmRlckZvclJldHJpZXZhbD4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcImJpc3RlY2hfbmV0d29ya29yZGVyc1wiLCBuZXR3b3JrT3JkZXJJZCwgUkVUUklFVkFMX05FVFdPUktfT1JERVJfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgc3BlY2lmaWMgQ3VzdG9tZXIgQXNzZXQuXHJcbiAgICAgKiBAcGFyYW0gY3VzdG9tZXJBc3NldElkIElkZW50aWZpZXIgb2YgdGhlIEN1c3RvbWVyIEFzc2V0IHRvIHJldHJpZXZlLlxyXG4gICAgICogQHJldHVybnMgQ3VzdG9tZXIgQXNzZXQuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlQ3VzdG9tZXJBc3NldChjdXN0b21lckFzc2V0SWQ6IHN0cmluZyk6IFByb21pc2U8Q3VzdG9tZXJBc3NldD4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcIm1zZHluX2N1c3RvbWVyYXNzZXRzXCIsIGN1c3RvbWVyQXNzZXRJZCwgQ1VTVE9NRVJfQVNTRVRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIE1ham9yIEluY2lkZW50cyB0aGF0IGhhdmUgYmVlbiByZXNvbHZlZCB0b2RheS5cclxuICAgICAqIEByZXR1cm5zIE1ham9yIEluY2lkZW50cyByZXNvbHZlZCB0b2RheS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVSZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMoKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVbXT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IENvbmRpdGlvbkV4cHJlc3Npb248SW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlPltdID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IFwic3RhdHVzY29kZVwiLFxyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IFwiZXFcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBJbmNpZGVudFN0YXR1c0NvZGUuUmVzb2x2ZWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJjYXNldHlwZWNvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcImVxXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogQ2FzZVR5cGVbXCJNYWpvciBJbmNpZGVudFwiXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcImJpc3RlY2hfcmVzb2x1dGlvbmRhdGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcImd0XCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogRGF0ZUhlbHBlci5nZXRNaWRuaWdodFRvZGF5KCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcImJpc3RlY2hfcmVzb2x1dGlvbmRhdGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcImx0XCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogRGF0ZUhlbHBlci5nZXRNaWRuaWdodFRvbW9ycm93KCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmVNdWx0aXBsZShcImluY2lkZW50c1wiLCBSRVRSSUVWRV9NVUxUSVBMRV9JTkNJREVOVF9NRVRBREFUQSwgZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgQ2xvc2VkIGFuZCBNZXJnZWQgQ2FzZXMuXHJcbiAgICAgKiBAcmV0dXJucyBDbG9zZWQgYW5kIE1lcmdlZCBDYXNlcy5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVDbG9zZWRJbmNpZGVudHMoKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVbXT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IENvbmRpdGlvbkV4cHJlc3Npb248SW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlPltdID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IFwic3RhdHVzY29kZVwiLFxyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IFwibmVcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBJbmNpZGVudFN0YXR1c0NvZGUuT3BlbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcImNhc2V0eXBlY29kZVwiLFxyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IFwibmVcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBDYXNlVHlwZVtcIk1ham9yIEluY2lkZW50XCJdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IFwic3RhdHVzY29kZVwiLFxyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IFwibmVcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcIm5lXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiUGVuZGluZyBGZWVkYmFja1wiXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcIm5lXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiT24gSG9sZFwiXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcIm5lXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiQ2xvc3VyZSBSZXF1ZXN0ZWRcIl0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJzdGF0dXNjb2RlXCIsXHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogXCJuZVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IEluY2lkZW50U3RhdHVzQ29kZS5SZXNvbHZlZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmVNdWx0aXBsZShcImluY2lkZW50c1wiLCBSRVRSSUVWRV9NVUxUSVBMRV9JTkNJREVOVF9NRVRBREFUQSwgZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgQWNjb3VudHMuXHJcbiAgICAgKiBAcmV0dXJucyBSZXRyaWV2ZWQgQWNjb3VudHMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlQWNjb3VudHMoKTogUHJvbWlzZTxBY2NvdW50W10+IHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmVNdWx0aXBsZShcImFjY291bnRzXCIsIEFDQ09VTlRfTUVUQURBVEEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIENvbnRhY3RzLlxyXG4gICAgICogQHJldHVybnMgUmV0cmlldmVkIENvbnRhY3RzLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZUNvbnRhY3RzKCk6IFByb21pc2U8Q29udGFjdEZvclJldHJpZXZhbFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlTXVsdGlwbGUoXCJjb250YWN0c1wiLCBSRVRSSUVWQUxfQ09OVEFDVF9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgUHJvZHVjdHMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LCB2aWEgdGhlIGFjdGl2ZSBDdXN0b21lciBBc3NldHMuXHJcbiAgICAgKiBAcmV0dXJucyBSZXRyaWV2ZXMgUHJvZHVjdHMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LCB2aWEgdGhlIGFjdGl2ZSBDdXN0b21lciBBc3NldHMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUHJvZHVjdHMoKTogUHJvbWlzZTxQcm9kdWN0W10+IHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJzOiBDb25kaXRpb25FeHByZXNzaW9uPEN1c3RvbWVyQXNzZXQ+W10gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJzdGF0ZWNvZGVcIixcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcImVxXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogQ3VzdG9tZXJBc3NldFN0YXRlQ29kZS5BY3RpdmUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3QgY3VzdG9tZXJBc3NldHMgPSBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlKFxyXG4gICAgICAgICAgICBcIm1zZHluX2N1c3RvbWVyYXNzZXRzXCIsXHJcbiAgICAgICAgICAgIENVU1RPTUVSX0FTU0VUX01FVEFEQVRBLFxyXG4gICAgICAgICAgICBmaWx0ZXJzXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGN1c3RvbWVyQXNzZXRzLmZsYXRNYXAoKGN1c3RvbWVyQXNzZXQpID0+IGN1c3RvbWVyQXNzZXQubXNkeW5fcHJvZHVjdCkuZmlsdGVyKChwcm9kdWN0KSA9PiBwcm9kdWN0KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBPcmRlcnMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LCB2aWEgdGhlIGFjdGl2ZSBPcmRlcnMuXHJcbiAgICAgKiBAcmV0dXJucyBPcmRlcnMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LCB2aWEgdGhlIGFjdGl2ZSBPcmRlcnMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3JkZXJzKCk6IFByb21pc2U8T3JkZXJbXT4ge1xyXG4gICAgICAgIGNvbnN0IG9yZGVycyA9IChhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlPE9yZGVyPihcInNhbGVzb3JkZXJzXCIsIE9SREVSX01FVEFEQVRBKSkubWFwKChvcmRlcikgPT4ge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgT3JkZXIgaXMgbm90IHlldCBTaWduZWQsIE9yZGVyIExpbmVzIHdpbGwgbm90IGhhdmUgc3luY2VkLFxyXG4gICAgICAgICAgICAvLyBzbyBudWxsaWZ5IGFsbCBmaW5hbmNpYWwgYW1vdW50cyBhcyB0aGVzZSB3aWxsIGxpa2VseSBiZSBpbmNvcnJlY3RcclxuICAgICAgICAgICAgaWYgKG9yZGVyLnN0YXR1c2NvZGUgPT09IE9yZGVyU3RhdHVzQ29kZS5OZXcgfHwgb3JkZXIuc3RhdHVzY29kZSA9PT0gT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm9yZGVyLCB0b3RhbGxpbmVpdGVtYW1vdW50OiBudWxsLCBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHplcm8gT3JkZXIgTGluZXMsIG51bGxpZnkgYWxsIGZpbmFuY2lhbCBhbW91bnRzIGFzIHRoZXNlXHJcbiAgICAgICAgICAgIC8vIHdpbGwgbGlrZWx5IGJlIGluY29ycmVjdFxyXG4gICAgICAgICAgICBpZiAob3JkZXIub3JkZXJfZGV0YWlscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm9yZGVyLCB0b3RhbGxpbmVpdGVtYW1vdW50OiBudWxsLCBiaXN0ZWNoX3RvdGFsYW5udWFscHJpY2U6IG51bGwgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG9yZGVyO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gb3JkZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIEludm9pY2VzIGZvciB0aGUgY3VycmVudCB1c2VyJ3MgQWNjb3VudCwgdmlhIHRoZSBhY3RpdmUgSW52b2ljZXMuXHJcbiAgICAgKiBAcmV0dXJucyBJbnZvaWNlcyBmb3IgdGhlIGN1cnJlbnQgdXNlcidzIEFjY291bnQsIHZpYSB0aGUgYWN0aXZlIEludm9pY2VzLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZUludm9pY2VzKCk6IFByb21pc2U8SW52b2ljZUZvclJldHJpZXZlTXVsdGlwbGVbXT4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlKFwiaW52b2ljZXNcIiwgUkVUUklFVkVfTVVMVElQTEVfSU5WT0lDRV9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgTmV0d29yayBPcmRlcnMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LCB2aWEgdGhlIGFjdGl2ZSBOZXR3b3JrIE9yZGVycy5cclxuICAgICAqIEByZXR1cm5zIE5ldHdvcmsgT3JkZXJzIGZvciB0aGUgY3VycmVudCB1c2VyJ3MgQWNjb3VudCwgdmlhIHRoZSBhY3RpdmUgTmV0d29yayBPcmRlcnMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlTmV0d29ya09yZGVycygpOiBQcm9taXNlPE5ldHdvcmtPcmRlckZvclJldHJpZXZlTXVsdGlwbGVbXT4ge1xyXG4gICAgICAgIGNvbnN0IG5ldHdvcmtPcmRlcnMgPSBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlKFxyXG4gICAgICAgICAgICBcImJpc3RlY2hfbmV0d29ya29yZGVyc1wiLFxyXG4gICAgICAgICAgICBSRVRSSUVWRV9NVUxUSVBMRV9ORVRXT1JLX09SREVSX01FVEFEQVRBLFxyXG4gICAgICAgICAgICBbeyBhdHRyaWJ1dGU6IFwiYmlzdGVjaF9uZXR3b3Jrb3JkZXJ0eXBlXCIsIG9wZXJhdG9yOiBcImVxXCIsIHZhbHVlOiBOZXR3b3JrT3JkZXJUeXBlW1wiTmV3IE9yZGVyXCJdIH1dXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldHdvcmtPcmRlcnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgUHJvamVjdHMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LlxyXG4gICAgICogQHJldHVybnMgUHJvamVjdHMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZVByb2plY3RzKCk6IFByb21pc2U8UHJvamVjdFtdPiB7XHJcbiAgICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlKFwibXNkeW5fcHJvamVjdHNcIiwgUFJPSkVDVF9NRVRBREFUQSk7XHJcblxyXG4gICAgICAgIC8vIEVuc3VyZSBQcm9qZWN0IFRhc2tzIG9ubHkgc2hvdyB0aGVpciBzdGFydCBkYXRlIGlmIHRoZXkgc2hvdWxkIGJlIHNob3duIGluIHRoZSBwb3J0YWxcclxuICAgICAgICByZXR1cm4gcHJvamVjdHMubWFwKChwcm9qZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAuLi5wcm9qZWN0LFxyXG5cclxuICAgICAgICAgICAgICAgIG1zZHluX21zZHluX3Byb2plY3RfbXNkeW5fcHJvamVjdHRhc2tfcHJvamVjdDogKFxyXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3QubXNkeW5fbXNkeW5fcHJvamVjdF9tc2R5bl9wcm9qZWN0dGFza19wcm9qZWN0IHx8IFtdXHJcbiAgICAgICAgICAgICAgICApLm1hcCgocHJvamVjdFRhc2spID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBQcm9qZWN0IFRhc2sgU3RhcnQgRGF0ZSBzaG91bGQgbm90IHlldCBiZSBzaG93biBpbiB0aGUgcG9ydGFsLCBudWxsaWZ5IHRoZSBzdGFydCBkYXRlLiBUaGUgbG9naWMgZm9yIHRoaXMgaXMgYSBsaXR0bGUgY29tcGxleDpcclxuICAgICAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIC0gJ1BlbmRpbmcnIFByb2plY3QgVGFza3Mgc2hvdWxkIE5FVkVSIHNob3cgdGhlaXIgU3RhcnQgRGF0ZSAoYXMgdGhpcyB3aWxsIGJlIGRlZmF1bHRlZCB0byB0aGUgUHJvamVjdCBgY3JlYXRlZG9uYCwgYW5kIHRoZXJlZm9yZSBuZXZlciBjb3JyZWN0KS5cclxuICAgICAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIC0gRm9yIEN1c3RvbWVyIHRhc2tzLCBob25vciBgYmlzdGVjaF9zaG93c3RhcnRkYXRlaW5wb3J0YWxgLiBUaGlzIGZsYWcgaXMgc2V0IGJ5IGBCaXN0ZWNoLlhybS5QbHVnaW5zLlByb2plY3RUYXNrLlNldFNob3dTdGFydERhdGVJblBvcnRhbGAgb24gdHJhbnNpdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBQcm9qZWN0IFRhc2sgZnJvbSAnUGVuZGluZycgdG8gJ0luIFByb2dyZXNzJyBieSBhIFByb2plY3QgTWFuYWdlciAoaS5lLiB0aGV5IGhhdmUgc2V0L3Jldmlld2VkIHRoZSBTdGFydCBEYXRlIG1hbnVhbGx5LCBzbyBpcyBvayB0byBzaG93KS5cclxuICAgICAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIC0gRm9yIEJpc3RlY2ggdGFza3MsIEFMV0FZUyBzaG93IHRoZSBTdGFydCBEYXRlIChhcyB0aGUgUHJvamVjdCBUYXNrIHdpbGwgb25seSBoYXZlIGJlZW4gY2hhbmdlZCBmcm9tIFBlbmRpbmcgYXV0b21hdGljYWxseSBhcyBhIHJlc3VsdCBvZiBhXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQm9va2FibGUgUmVzb3VyY2UgQm9va2luZyBjcmVhdGlvbiwgd2hpY2ggd291bGQgaGF2ZSBhdXRvbWF0aWNhbGx5IHNldCB0aGUgU3RhcnQgRGF0ZSkuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RUYXNrLnN0YXR1c2NvZGUgPT09IFByb2plY3RUYXNrU3RhdHVzQ29kZS5QZW5kaW5nIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0VGFzay5iaXN0ZWNoX2Fzc2lnbmVkdG8gIT09IFByb2plY3RUYXNrQXNzaWduZWRUby5CaXN0ZWNoICYmIC8vICdOb3QgZXF1YWwgQmlzdGVjaCcgdXNlZCBpbnN0ZWFkIG9mICdFcXVhbHMgQ3VzdG9tZXInIHNvIHRoYXQgaWYgdGhlIGxvZ2ljIHRvIGRldGVybWluZSBDdXN0b21lciB2cy4gQmlzdGVjaCBoYXMgZmFpbGVkLCBhc3N1bWUgQ3VzdG9tZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0VGFzay5iaXN0ZWNoX3Nob3dzdGFydGRhdGVpbnBvcnRhbClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4ucHJvamVjdFRhc2ssIG1zZHluX3NjaGVkdWxlZHN0YXJ0OiBudWxsIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvamVjdFRhc2s7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBDdXN0b21lciBBc3NldHMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LCB2aWEgdGhlIGFjdGl2ZSBDdXN0b21lciBBc3NldHMuXHJcbiAgICAgKiBAcmV0dXJucyBDdXN0b21lciBBc3NldHMgZm9yIHRoZSBjdXJyZW50IHVzZXIncyBBY2NvdW50LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZUN1c3RvbWVyQXNzZXRzKCk6IFByb21pc2U8Q3VzdG9tZXJBc3NldFtdPiB7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tZXJBc3NldHMgPSBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlKFwibXNkeW5fY3VzdG9tZXJhc3NldHNcIiwgQ1VTVE9NRVJfQVNTRVRfTUVUQURBVEEpO1xyXG5cclxuICAgICAgICByZXR1cm4gY3VzdG9tZXJBc3NldHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIFBvcnRhbCBNYWpvciBJbmNpZGVudCBVcGRhdGVzLlxyXG4gICAgICogQFJldHVybnMgUG9ydGFsIE1ham9yIEluY2lkZW50IFVwZGF0ZXMuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXNSZWdhcmRpbmdBY3RpdmVBbmRSZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMoKTogUHJvbWlzZTxcclxuICAgICAgICBQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlW11cclxuICAgID4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZU11bHRpcGxlKFxyXG4gICAgICAgICAgICBcImJpc3RlY2hfcG9ydGFsbWFqb3JpbmNpZGVudHVwZGF0ZXNcIixcclxuICAgICAgICAgICAgUE9SVEFMX01BSk9SX0lOQ0lERU5UX1VQREFURV9NRVRBREFUQVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIFBvcnRhbCBJbnZpdGF0aW9ucyByZWxhdGVkIHRvIGEgQ29udGFjdC5cclxuICAgICAqIEBwYXJhbSBjb250YWN0SWQgVGhlIElkIG9mIHRoZSBDb250YWN0LlxyXG4gICAgICogQHJldHVybnMgVGhlIHJlbGF0ZWQgUG9ydGFsIEludml0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBvcnRhbEludml0YXRpb25zKGNvbnRhY3RJZDogc3RyaW5nKTogUHJvbWlzZTxQb3J0YWxJbnZpdGF0aW9uW10+IHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJzOiBDb25kaXRpb25FeHByZXNzaW9uPFBvcnRhbEludml0YXRpb24+W10gPSBbXHJcbiAgICAgICAgICAgIHsgYXR0cmlidXRlOiBcIl9hZHhfaW52aXRlY29udGFjdF92YWx1ZVwiLCBvcGVyYXRvcjogXCJlcVwiLCB2YWx1ZTogY29udGFjdElkIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNydWRTZXJ2aWNlLnJldHJpZXZlTXVsdGlwbGUoXCJhZHhfaW52aXRhdGlvbnNcIiwgUE9SVEFMX0lOVklURV9NRVRBREFUQSwgZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIEJsb2cgUG9zdCByZWNvcmRzIGZyb20gRHluYW1pY3MgMzY1LlxyXG4gICAgICogQHBhcmFtIHVybCBUaGUgVXJsIG9mIHRoZSBCbG9nIFBvc3QuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBCbG9nIFBvc3RzLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZUJsb2dQb3N0UmVjb3JkcygpOiBQcm9taXNlPEJsb2dQb3N0W10+IHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UucmV0cmlldmVNdWx0aXBsZShcImJpc3RlY2hfYmxvZ3Bvc3RzXCIsIEJMT0dfUE9TVF9NRVRBREFUQSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyB1c2VyIGZlZWRiYWNrIGZyb20gdGhlIGZlZWRiYWNrIHBhbmUgdG8gdGhlIHBvcnRhbGFjdGlvbnMgZW5kcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0gZmVlZGJhY2tEZXNjcmlwdGlvbiBDb250ZW50IG9mIHRoZSBmZWVkYmFjay5cclxuICAgICAqIEBwYXJhbSBmZWVkYmFja0NhdGVnb3J5IFR5cGUgb2YgZmVlZGJhY2suXHJcbiAgICAgKiBAcmV0dXJucyBSZXN1bHQgb2YgdGhlIG9wZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUZlZWRiYWNrUG9ydGFsQWN0aW9uKFxyXG4gICAgICAgIGZlZWRiYWNrRGVzY3JpcHRpb246IHN0cmluZyxcclxuICAgICAgICBmZWVkYmFja0NhdGVnb3J5OiBGZWVkYmFja0NhdGVnb3J5XHJcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCBjcnVkU2VydmljZS5leGVjdXRlRmVlZGJhY2tQb3J0YWxBY3Rpb24oZmVlZGJhY2tEZXNjcmlwdGlvbiwgZmVlZGJhY2tDYXRlZ29yeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXF1ZXN0cyBjbG9zdXJlIGZvciB0aGUgc3BlY2lmaWVkIENhc2UuXHJcbiAgICAgKiBAcGFyYW0gaW5jaWRlbnRJZCBJRCBvZiB0aGUgQ2FzZSBmb3Igd2hpY2ggdG8gcmVxdWVzdCBjbG9zdXJlLlxyXG4gICAgICogQHJldHVybnMgVXBkYXRlZCBDYXNlLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlUmVxdWVzdENsb3N1cmVQb3J0YWxBY3Rpb24oaW5jaWRlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+IHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UuZXhlY3V0ZVJlcXVlc3RDbG9zdXJlUG9ydGFsQWN0aW9uKGluY2lkZW50SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVxdWVzdHMgcmUtb3BlbiBmb3IgdGhlIHNwZWNpZmllZCBDYXNlLlxyXG4gICAgICogQHBhcmFtIGluY2lkZW50SWQgSUQgb2YgdGhlIENhc2UgZm9yIHdoaWNoIHRvIHJlcXVlc3QgcmUtb3BlbmluZy5cclxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgQ2FzZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVJlcXVlc3RSZW9wZW5Qb3J0YWxBY3Rpb24oaW5jaWRlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+IHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UuZXhlY3V0ZVJlcXVlc3RSZW9wZW5Qb3J0YWxBY3Rpb24oaW5jaWRlbnRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyBhIFBvcnRhbCBJbnZpdGF0aW9uIHRvIHRoZSBDb250YWN0LlxyXG4gICAgICogQHBhcmFtIGNvbnRhY3RJZCBDb250YWN0IHRvIGludml0ZS5cclxuICAgICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlU2VuZEludml0YXRpb25Qb3J0YWxBY3Rpb24oY29udGFjdElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgY3J1ZFNlcnZpY2UuZXhlY3V0ZVNlbmRJbnZpdGF0aW9uUG9ydGFsQWN0aW9uKGNvbnRhY3RJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZXMgdGhlIHNwZWNpZmllZCBQcm9qZWN0IFRhc2suXHJcbiAgICAgKiBAcGFyYW0gcHJvamVjdFRhc2tJZCBUaGUgUHJvamVjdCBUYXNrIHRvIGNsb3NlXHJcbiAgICAgKiBAcGFyYW0gY29tbWVudCBUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIFByb2plY3QgVGFza1xyXG4gICAgICogQHJldHVybnMgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb25cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUNsb3NlUHJvamVjdFRhc2socHJvamVjdFRhc2tJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCBjcnVkU2VydmljZS5leGVjdXRlQ2xvc2VQcm9qZWN0VGFzayhwcm9qZWN0VGFza0lkLCBjb21tZW50KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNyZWF0ZUluY2lkZW50LFxyXG4gICAgICAgIHVwZGF0ZUluY2lkZW50LFxyXG4gICAgICAgIGNyZWF0ZUNvbnRhY3QsXHJcbiAgICAgICAgdXBkYXRlQ29udGFjdCxcclxuICAgICAgICB1cGRhdGVBY2NvdW50LFxyXG4gICAgICAgIHVwZGF0ZU9yZGVyLFxyXG4gICAgICAgIHNlbmRQb3J0YWxDb21tZW50LFxyXG4gICAgICAgIHNldFBvcnRhbFRlcm1zT2ZBZ3JlZW1lbnREYXRlLFxyXG4gICAgICAgIGRpc2Fzc29jaWF0ZUNvbnRhY3RGcm9tTmV0d29ya09yZGVyLFxyXG4gICAgICAgIGV4ZWN1dGVGZWVkYmFja1BvcnRhbEFjdGlvbixcclxuICAgICAgICBleGVjdXRlUmVxdWVzdENsb3N1cmVQb3J0YWxBY3Rpb24sXHJcbiAgICAgICAgZXhlY3V0ZVJlcXVlc3RSZW9wZW5Qb3J0YWxBY3Rpb24sXHJcbiAgICAgICAgZXhlY3V0ZVNlbmRJbnZpdGF0aW9uUG9ydGFsQWN0aW9uLFxyXG4gICAgICAgIGV4ZWN1dGVDbG9zZVByb2plY3RUYXNrLFxyXG4gICAgICAgIHJldHJpZXZlT3JkZXJGb3JtSW5mbyxcclxuICAgICAgICByZXRyaWV2ZUFjdGl2ZUluY2lkZW50cyxcclxuICAgICAgICByZXRyaWV2ZUNsb3NlZEluY2lkZW50cyxcclxuICAgICAgICB1cGRhdGVOZXR3b3JrT3JkZXIsXHJcbiAgICAgICAgdXBkYXRlUHJvamVjdFRhc2ssXHJcbiAgICAgICAgcmV0cmlldmVJbmNpZGVudCxcclxuICAgICAgICByZXRyaWV2ZUNvbnRhY3QsXHJcbiAgICAgICAgcmV0cmlldmVPcmRlcixcclxuICAgICAgICByZXRyaWV2ZVByb2plY3QsXHJcbiAgICAgICAgcmV0cmlldmVJbnZvaWNlLFxyXG4gICAgICAgIHJldHJpZXZlTmV0d29ya09yZGVyLFxyXG4gICAgICAgIHJldHJpZXZlQ3VzdG9tZXJBc3NldCxcclxuICAgICAgICByZXRyaWV2ZUFjY291bnRzLFxyXG4gICAgICAgIHJldHJpZXZlQ29udGFjdHMsXHJcbiAgICAgICAgcmV0cmlldmVQcm9kdWN0cyxcclxuICAgICAgICByZXRyaWV2ZU9yZGVycyxcclxuICAgICAgICByZXRyaWV2ZUludm9pY2VzLFxyXG4gICAgICAgIHJldHJpZXZlTmV0d29ya09yZGVycyxcclxuICAgICAgICByZXRyaWV2ZVByb2plY3RzLFxyXG4gICAgICAgIHJldHJpZXZlQ3VzdG9tZXJBc3NldHMsXHJcbiAgICAgICAgcmV0cmlldmVQb3J0YWxJbnZpdGF0aW9ucyxcclxuICAgICAgICByZXRyaWV2ZVJlY2VudGx5UmVzb2x2ZWRNYWpvckluY2lkZW50cyxcclxuICAgICAgICByZXRyaWV2ZVBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVzUmVnYXJkaW5nQWN0aXZlQW5kUmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzLFxyXG4gICAgICAgIHJldHJpZXZlQmxvZ1Bvc3RSZWNvcmRzLFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIHNlcnZpY2Ugd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgdGhlIER5bmFtaWNzIEFQSSBlbmRwb2ludCBvciB0aGUgTW9jayBDcnVkIFNlcnZpY2UuXHJcbiAqIEByZXR1cm5zIFRoZSBDUlVEIGZ1bmN0aW9ucyB3aGljaCBhcmUgYXZhaWxhYmxlIGluIHRoZSBEYXRhIFNlcnZpY2UuXHJcbiAqIEByZW1hcmtzIFRoaXMgc2VydmljZSBzaG91bGQgYmUgdXNlZCBmb3IgYW55IGFkZGl0aW9uYWwgZnVuY3Rpb25zIGFkZGVkIHRvIHRoZSBQb3J0YWwgdW50aWwgd2UgaGF2ZSBhIGZpeCBmb3IgdGhlIHBvcnRhbFxyXG4gKiBlcnJvcmluZyB3aGVuIHRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGFkZGVkOiAjMzkyMjFcclxuICovXHJcbmV4cG9ydCBjb25zdCBzdXBwbGVtZW50YWxEYXRhU2VydmljZSA9ICgpID0+IHtcclxuICAgIGNvbnN0IGlzTG9jYWxNb2RlID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5pc0xvY2FsTW9kZSk7XHJcblxyXG4gICAgY29uc3QgbGl2ZUNydWRTZXJ2aWNlID0gdXNlTGl2ZUNydWRTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBtb2NrQ3J1ZFNlcnZpY2UgPSB1c2VNb2NrQ3J1ZFNlcnZpY2UoKTtcclxuXHJcbiAgICBjb25zdCBjcnVkU2VydmljZSA9IGlzTG9jYWxNb2RlID8gbW9ja0NydWRTZXJ2aWNlIDogbGl2ZUNydWRTZXJ2aWNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgUHJvamVjdCBMb2cgYnkgSUQuXHJcbiAgICAgKiBAcGFyYW0gcHJvamVjdExvZ0lkIFRoZSBJZCBvZiB0aGUgUHJvamVjdCBMb2cuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgUHJvamVjdCBMb2cuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUHJvamVjdExvZyhwcm9qZWN0TG9nSWQ6IHN0cmluZyk6IFByb21pc2U8UHJvamVjdExvZz4ge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBjcnVkU2VydmljZS5yZXRyaWV2ZShcImJpc3RlY2hfcHJvamVjdGxvZ3Nlc1wiLCBwcm9qZWN0TG9nSWQsIFBST0pFQ1RfTE9HX01FVEFEQVRBKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHJldHJpZXZlUHJvamVjdExvZyxcclxuICAgIH07XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgdXNlQXBwSW5zaWdodHMgfSBmcm9tIFwiLi91c2VBcHBJbnNpZ2h0c1wiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuL3VzZURhdGFTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5cclxuLyoqIFJlYWN0IGhvb2sgd2hpY2ggd2lsbCByZXRyaWV2ZSBjbG9zZWQgY2FzZXMgYXMgd2Ugb25seSB3YW50IHRvIHJldHJpZXZlIHRoZXNlIGluIGNlcnRhaW4gc2NlbmFyaW9zLiAqL1xyXG5leHBvcnQgY29uc3QgdXNlQ2xvc2VkQ2FzZXMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IGluY2lkZW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW5jaWRlbnRzKTtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHsgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBjbG9zZWQgQ2FzZXNcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgLy8gSWYgdW5hdXRoZW50aWNhdGVkXHJcbiAgICAgICAgICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBpbmNpZGVudHMuY2xvc2VkSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgfHxcclxuICAgICAgICAgICAgICAgIGluY2lkZW50cy5jbG9zZWRJbmNpZGVudHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXRDbG9zZWRJbmNpZGVudHNcIiwgY2xvc2VkSW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH0gfSk7XHJcblxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGRhdGFTZXJ2aWNlLnJldHJpZXZlQ2xvc2VkSW5jaWRlbnRzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0Q2xvc2VkSW5jaWRlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VkSW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGEgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yOiBlcnJvciBhcyBFcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pKCk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBpbmNpZGVudHMsIHVzZXJNZXRhZGF0YS5jb250YWN0SWRdKTtcclxufTtcclxuIiwiaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTGluayB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IENhc2VUeXBlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VUeXBlXCI7XHJcbmltcG9ydCB7IEluY2lkZW50U3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9JbmNpZGVudFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgQ2FzZVByaW9yaXR5Q29kZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUHJpb3JpdHlDb2RlXCI7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi9IZWxwZXJzL0RhdGVIZWxwZXJcIjtcclxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IE1hbmFnZW1lbnRQYW5lbCB9IGZyb20gXCIuLi9Db21wb25lbnRzL01hbmFnZW1lbnRQYW5lbFwiO1xyXG5pbXBvcnQgeyBUYWJsZUhlYWRlckNlbGwgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9UYWJsZUhlYWRlckNlbGxcIjtcclxuaW1wb3J0IHsgZ2V0Q2FzZVRhYmxlSGVhZGVyQ2VsbHMgfSBmcm9tIFwiLi4vRGF0YS9nZXRDYXNlVGFibGVIZWFkZXJDZWxsc1wiO1xyXG5pbXBvcnQgeyBJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGUgfSBmcm9tIFwiLi4vTW9kZWxzL0luY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2luY2UgfSBmcm9tIFwiLi4vRW51bXMvRGF0ZVNpbmNlXCI7XHJcbmltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuaW1wb3J0IHsgdG9Mb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9IZWxwZXJzL3RvTG9hZGluZ0RhdGFcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBDb250YWN0U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgdXNlQ2xvc2VkQ2FzZXMgfSBmcm9tIFwiLi4vSG9va3MvdXNlQ2xvc2VkQ2FzZXNcIjtcclxuaW1wb3J0IHsgQWR2YW5jZWRGaWx0ZXIgfSBmcm9tIFwiLi9DYXNlc1wiO1xyXG5pbXBvcnQgeyBQQUdFUyB9IGZyb20gXCIuLi9Ib29rcy91c2VQYWdlTmF2aWdhdGlvblwiO1xyXG5cclxuLyogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIENhc2VzIENsb3NlZCBQYWdlICovXHJcbmV4cG9ydCBjb25zdCBDYXNlc0Nsb3NlZDogUmVhY3QuRkMgPSAoKSA9PiB7XHJcbiAgICB1c2VDbG9zZWRDYXNlcygpO1xyXG4gICAgY29uc3QgaW5jaWRlbnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5pbmNpZGVudHMpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuXHJcbiAgICAvLyBMb2NhbCBzdGF0ZSB1c2VkIGZvciB0aGUgdGFibGUgc29ydGluZy5cclxuICAgIGNvbnN0IFtzb3J0ZWRDb2x1bW4sIHNldFNvcnRlZENvbHVtbl0gPSB1c2VTdGF0ZTxrZXlvZiBJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU+KFwiY3JlYXRlZG9uXCIpO1xyXG4gICAgY29uc3QgW2lzU29ydGVkQXNjZW5kaW5nLCBzZXRJc1NvcnRlZEFzY2VuZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgLy8gTG9jYWwgc3RhdGUgdXNlZCBmb3IgdGhlIFNlYXJjaCBCYXJcclxuICAgIGNvbnN0IFtzZWFyY2hCYXJDb250ZW50LCBzZXRTZWFyY2hCYXJDb250ZW50XSA9IHVzZVN0YXRlPHN0cmluZz4oXCJcIik7XHJcblxyXG4gICAgLy8gTG9jYWwgc3RhdGUgdXNlZCBmb3IgYWR2YW5jZWQgZmlsdGVycy5cclxuICAgIGNvbnN0IFthZHZhbmNlZFNlYXJjaEZpbHRlcnMsIHNldEFkdmFuY2VkU2VhcmNoRmlsdGVyc10gPSB1c2VTdGF0ZTxBZHZhbmNlZEZpbHRlcj4oe1xyXG4gICAgICAgIHNlbGVjdGVkQ2FzZVR5cGVzOiBbXSxcclxuICAgICAgICBzZWxlY3RlZEluY2lkZW50U3RhdHVzZXM6IFtdLFxyXG4gICAgICAgIGNyZWF0ZWRCeTogXCJcIixcclxuICAgICAgICBkYXRlUmFuZ2U6IHsgdmFsdWU6IG51bGwsIGZyb206IG51bGwsIHRvOiBudWxsIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHF1ZXJpZWQgQ3JlYXRlZEJ5IHZhbHVlIGluIHRoZSBBZHZhbmNlZCBGaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGNyZWF0ZWRCeUlkIFRoZSBDb250YWN0IHRoYXQgY3JlYXRlZCB0aGUgSW5jaWRlbnQuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHVwZGF0ZUNyZWF0ZWRCeUNvbnRhY3QgPSAoY3JlYXRlZEJ5SWQ6IHN0cmluZyB8IG51bGwpID0+IHtcclxuICAgICAgICAvLyBJZiB0aGUgY3JlYXRlZEJ5SWQgaXMgYWxyZWFkeSBudWxsLCByZW1vdmUgaXQuXHJcbiAgICAgICAgaWYgKCFjcmVhdGVkQnlJZCkge1xyXG4gICAgICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAuLi5wcmV2aW91c1N0YXRlLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEJ5OiBcIlwiLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEVsc2U7IFVwZGF0ZSB0aGUgQ3JlYXRlZEJ5IGZpbHRlci5cclxuICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXHJcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogY3JlYXRlZEJ5SWQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHF1ZXJpZWQgQ2FzZVR5cGUgdmFsdWVzIGluIHRoZSBBZHZhbmNlZCBGaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIENhc2VUeXBlIGVudW0uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHVwZGF0ZVNlbGVjdGVkQ2FzZVR5cGVzID0gKGtleTogc3RyaW5nIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmIChrZXkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2FzZVR5cGVzOiBbXSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjYXNlRW51bVZhbHVlID0gQ2FzZVR5cGVba2V5IGFzIGtleW9mIHR5cGVvZiBDYXNlVHlwZV07XHJcblxyXG4gICAgICAgIGlmICghY2FzZUVudW1WYWx1ZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke2tleX0nIGZpbHRlciB2YWx1ZSBmb3IgdGhlIENhc2UgVHlwZSBmaWx0ZXIgaXMgbm90IGltcGxlbWVudGVkYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGFscmVhZHkgaW4gdGhlIENhc2VUeXBlIGxpc3QsIHJlbW92ZSBpdC5cclxuICAgICAgICBpZiAoYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkQ2FzZVR5cGVzLmluY2x1ZGVzKGNhc2VFbnVtVmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHNldEFkdmFuY2VkU2VhcmNoRmlsdGVycygocHJldmlvdXNTdGF0ZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZENhc2VUeXBlczogWy4uLmFkdmFuY2VkU2VhcmNoRmlsdGVycy5zZWxlY3RlZENhc2VUeXBlc10uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtICE9PSBjYXNlRW51bVZhbHVlXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEVsc2U7IEFkZCBDYXNlVHlwZSB0byB0aGUgbGlzdC5cclxuICAgICAgICBzZXRBZHZhbmNlZFNlYXJjaEZpbHRlcnMoKHByZXZpb3VzU3RhdGUpID0+ICh7XHJcbiAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkQ2FzZVR5cGVzOiBbLi4uYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkQ2FzZVR5cGVzLCBjYXNlRW51bVZhbHVlXSxcclxuICAgICAgICB9KSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgcXVlcmllZCBEYXRlU2luY2UgdmFsdWUgaW4gdGhlIEFkdmFuY2VkIEZpbHRlci5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlU2luY2UgVGhlIERhdGUgU2luY2UgY3JlYXRpb24gb2YgdGhlIEluY2lkZW50LlxyXG4gICAgICovXHJcbiAgICBjb25zdCB1cGRhdGVDcmVhdGVkT25EYXRlID0gKGRhdGVTaW5jZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmICghZGF0ZVNpbmNlKSB7XHJcbiAgICAgICAgICAgIHNldEFkdmFuY2VkU2VhcmNoRmlsdGVycygocHJldmlvdXNTdGF0ZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXHJcbiAgICAgICAgICAgICAgICBkYXRlUmFuZ2U6IHsgdmFsdWU6IG51bGwsIGZyb206IG51bGwsIHRvOiBudWxsIH0sXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZnJvbURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGxldCB0b0RhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIHRpbWUgb2YgZnJvbSBhbmQgdG8gdG8gdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIGRheSAocmVzcGVjdGl2ZWx5KS5cclxuICAgICAgICBmcm9tRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgICAgICB0b0RhdGUuc2V0SG91cnMoMjMsIDU5LCA1OSwgOTk5KTtcclxuXHJcbiAgICAgICAgLy8gU2V0cyB0aGUgZnJvbURhdGUgYW5kIHRvRGF0ZSBiYXNlZCBvbiB0aGUgZW51bSBUeXBlLlxyXG4gICAgICAgIHN3aXRjaCAoRGF0ZVNpbmNlW2RhdGVTaW5jZSBhcyBrZXlvZiB0eXBlb2YgRGF0ZVNpbmNlXSkge1xyXG4gICAgICAgICAgICBjYXNlIERhdGVTaW5jZS5Ub2RheTpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBEYXRlU2luY2UuWWVzdGVyZGF5OlxyXG4gICAgICAgICAgICAgICAgZnJvbURhdGUuc2V0RGF0ZShmcm9tRGF0ZS5nZXREYXRlKCkgLSAxKTtcclxuICAgICAgICAgICAgICAgIHRvRGF0ZS5zZXREYXRlKHRvRGF0ZS5nZXREYXRlKCkgLSAxKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBEYXRlU2luY2VbXCJUaGlzIFdlZWtcIl06XHJcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZS5zZXREYXRlKGZyb21EYXRlLmdldERhdGUoKSAtIGZyb21EYXRlLmdldERheSgpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBEYXRlU2luY2VbXCJUaGlzIE1vbnRoXCJdOlxyXG4gICAgICAgICAgICAgICAgZnJvbURhdGUgPSBuZXcgRGF0ZShmcm9tRGF0ZS5nZXRGdWxsWWVhcigpLCBmcm9tRGF0ZS5nZXRNb250aCgpLCAxKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBEYXRlU2luY2VbXCJUaGlzIFllYXJcIl06XHJcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZSA9IG5ldyBEYXRlKGZyb21EYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtkYXRlU2luY2V9JyBmaWx0ZXIgdmFsdWUgZm9yIHRoZSBDcmVhdGVkIE9uIGZpbHRlciBpcyBub3QgaW1wbGVtZW50ZWRgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgZGF0ZSByYW5nZSBvYmplY3QuXHJcbiAgICAgICAgc2V0QWR2YW5jZWRTZWFyY2hGaWx0ZXJzKChwcmV2aW91c1N0YXRlKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi5wcmV2aW91c1N0YXRlLFxyXG4gICAgICAgICAgICBkYXRlUmFuZ2U6IHsgdmFsdWU6IERhdGVTaW5jZVtkYXRlU2luY2UgYXMga2V5b2YgdHlwZW9mIERhdGVTaW5jZV0sIGZyb206IGZyb21EYXRlLCB0bzogdG9EYXRlIH0sXHJcbiAgICAgICAgfSkpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzb3J0ZWRJbmNpZGVudHM6IExvYWRpbmdEYXRhPEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZVtdPiA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpbmNpZGVudHMuY2xvc2VkSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogaW5jaWRlbnRzLmNsb3NlZEluY2lkZW50cy5sb2FkaW5nU3RhdHVzIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gaW5jaWRlbnRzLmNsb3NlZEluY2lkZW50cy5kYXRhXHJcbiAgICAgICAgICAgIC5zbGljZSgpXHJcbiAgICAgICAgICAgIC5zb3J0KChpbmNpZGVudEE6IEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSwgaW5jaWRlbnRCOiBJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGUpID0+XHJcbiAgICAgICAgICAgICAgICAoaW5jaWRlbnRBW3NvcnRlZENvbHVtbl0/LnRvU3RyaW5nKCkgPz8gXCJcIikubG9jYWxlQ29tcGFyZShpbmNpZGVudEJbc29ydGVkQ29sdW1uXT8udG9TdHJpbmcoKSA/PyBcIlwiKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoaXNTb3J0ZWRBc2NlbmRpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogc29ydGVkRGF0YSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogc29ydGVkRGF0YS5yZXZlcnNlKCkgfTtcclxuICAgIH0sIFtpbmNpZGVudHMsIHNvcnRlZENvbHVtbiwgaXNTb3J0ZWRBc2NlbmRpbmddKTtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJDZWxscyA9IGdldENhc2VUYWJsZUhlYWRlckNlbGxzKCk7XHJcblxyXG4gICAgY29uc3QgZ2V0Q29sdW1uSGVhZGVyID0gKGZpZWxkTmFtZToga2V5b2YgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlKSA9PlxyXG4gICAgICAgIGhlYWRlckNlbGxzLmZpbmQoKGhlYWRlckNlbGwpID0+IGhlYWRlckNlbGwuZmllbGROYW1lID09PSBmaWVsZE5hbWUpPy5jb2x1bW5IZWFkZXI7XHJcblxyXG4gICAgLy8gRmluZCB0aGUgcmVzdWx0cyB0byBkaXNwbGF5XHJcbiAgICBjb25zdCBtYXRjaGluZ0luY2lkZW50cyA9IHRvTG9hZGluZ0RhdGEoc29ydGVkSW5jaWRlbnRzLCAoaW5jaWRlbnRzKSA9PlxyXG4gICAgICAgIGluY2lkZW50c1xyXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgU2VhcmNoIEJhciBmaWx0ZXIuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKGluY2lkZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhpbmNpZGVudCkuc29tZSgodGV4dFZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRWYWx1ZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaEJhckNvbnRlbnQudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIC8vIEFwcGx5IGFueSBhZHZhbmNlZCBmaWx0ZXJzLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChpbmNpZGVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3JlYXRlZE9uRGF0ZSA9IG5ldyBEYXRlKGluY2lkZW50LmNyZWF0ZWRvbik7XHJcbiAgICAgICAgICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhZHZhbmNlZCBzZWFyY2ggZmlsdGVycyBhcmUgbm90IHBvcHVsYXRlZCwgZG8gbm90IGZpbHRlciBieSB0aGlzIHZhbHVlLlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgaW5jaWRlbnQgc3RhdHVzIGxpc3QgY29udGFpbnMgdGhlIGluY2lkZW50IHN0YXR1cyBjb2RlLCBhZGQgdGhpcyBpbmNpZGVudC5cclxuICAgICAgICAgICAgICAgICAgICAoYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkSW5jaWRlbnRTdGF0dXNlcy5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRJbmNpZGVudFN0YXR1c2VzPy5pbmNsdWRlcyhpbmNpZGVudC5zdGF0dXNjb2RlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRydWUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNhc2UgdHlwZSBjb2RlIGxpc3QgY29udGFpbnMgdGhlIGluY2lkZW50IGNhc2UgY29kZSwgYWRkIHRoaXMgaW5jaWRlbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgKGluY2lkZW50LmNhc2V0eXBlY29kZSAmJiBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRDYXNlVHlwZXMubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLnNlbGVjdGVkQ2FzZVR5cGVzPy5pbmNsdWRlcyhpbmNpZGVudC5jYXNldHlwZWNvZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYWR2YW5jZWQgZmlsdGVycyBjb250YWN0IGlkIG1hdGNoZXMgdGhlIGluY2lkZW50IGNvbnRhY3QgaWQsIGFkZCB0aGlzIGluY2lkZW50LlxyXG4gICAgICAgICAgICAgICAgICAgIChhZHZhbmNlZFNlYXJjaEZpbHRlcnMuY3JlYXRlZEJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmNyZWF0ZWRCeSA9PT0gaW5jaWRlbnQuX3ByaW1hcnljb250YWN0aWRfdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBpbmNpZGVudCBjcmVhdGVkIG9uIGRhdGUgaXMgd2l0aGluIGEgZ2l2ZW4gcmFuZ2UsIGFkZCB0aGlzIGluY2lkZW50LlxyXG4gICAgICAgICAgICAgICAgICAgIChhZHZhbmNlZFNlYXJjaEZpbHRlcnMuZGF0ZVJhbmdlLmZyb20gJiYgYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmRhdGVSYW5nZS50b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGNyZWF0ZWRPbkRhdGUgPj0gYWR2YW5jZWRTZWFyY2hGaWx0ZXJzLmRhdGVSYW5nZS5mcm9tICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZE9uRGF0ZSA8PSBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuZGF0ZVJhbmdlLnRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJhc2VQYWdlIHRpdGxlPVwiQ2xvc2VkIENhc2VzXCI+XHJcbiAgICAgICAgICAgIDxNYW5hZ2VtZW50UGFuZWxcclxuICAgICAgICAgICAgICAgIHNldFNlYXJjaEJhckNvbnRlbnQ9e3NldFNlYXJjaEJhckNvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJHcm91cHM9e1tdfVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PVwiU2VhcmNoIGJ5IENhc2UgVGl0bGUgb3IgUmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgIGdldFN1bW1hcnlTZWN0aW9ucz17KCkgPT4gW119XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzVG9EaXNwbGF5PXtbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm9wdGlvblNldFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiU3VwcG9ydCBSZXF1ZXN0XCIsIHZhbHVlOiBDYXNlVHlwZVtcIlN1cHBvcnQgUmVxdWVzdFwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIkluY2lkZW50XCIsIHZhbHVlOiBDYXNlVHlwZVtcIkluY2lkZW50XCJdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiQ2hhbmdlXCIsIHZhbHVlOiBDYXNlVHlwZVtcIkNoYW5nZVwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIlByb2JsZW1cIiwgdmFsdWU6IENhc2VUeXBlW1wiUHJvYmxlbVwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogdXBkYXRlU2VsZWN0ZWRDYXNlVHlwZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWRMaXN0OiBhZHZhbmNlZFNlYXJjaEZpbHRlcnMuc2VsZWN0ZWRDYXNlVHlwZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY2FzZS10eXBlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6IFwiY2hlY2tib3hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzc05hbWU6IFwiY2hlY2tib3gtc2VjdGlvbiBjYXNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkNhc2UgVHlwZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm9wdGlvblNldFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiVG9kYXlcIiwgdmFsdWU6IERhdGVTaW5jZVtcIlRvZGF5XCJdIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiWWVzdGVyZGF5XCIsIHZhbHVlOiBEYXRlU2luY2VbXCJZZXN0ZXJkYXlcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJUaGlzIFdlZWtcIiwgdmFsdWU6IERhdGVTaW5jZVtcIlRoaXMgV2Vla1wiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIlRoaXMgTW9udGhcIiwgdmFsdWU6IERhdGVTaW5jZVtcIlRoaXMgTW9udGhcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJUaGlzIFllYXJcIiwgdmFsdWU6IERhdGVTaW5jZVtcIlRoaXMgWWVhclwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogdXBkYXRlQ3JlYXRlZE9uRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZExpc3Q6IFthZHZhbmNlZFNlYXJjaEZpbHRlcnMuZGF0ZVJhbmdlLnZhbHVlXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJkYXRlLXNpbmNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZTogXCJyYWRpb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzTmFtZTogXCJjaGVja2JveC1zZWN0aW9uIGNhc2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQ3JlYXRlZCBPblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImxvb2t1cFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogXCJGaWx0ZXIgYnkgY29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWxPcHRpb25zTmFtZTogXCJDb250YWN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJDcmVhdGVkIEJ5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb250YWN0cy5kYXRhLm1hcCgoY29udGFjdCkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRhY3QuY29udGFjdGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogW2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiBDb250YWN0U3RhdGVDb2RlW2NvbnRhY3Quc3RhdGVjb2RlXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQaWNrYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogdXBkYXRlQ3JlYXRlZEJ5Q29udGFjdCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXX1cclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgIHttYXRjaGluZ0luY2lkZW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiID8gKFxyXG4gICAgICAgICAgICAgICAgPExvYWRpbmdTcGlubmVyIC8+XHJcbiAgICAgICAgICAgICkgOiBtYXRjaGluZ0luY2lkZW50cy5kYXRhLmxlbmd0aCA9PT0gMCA/IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tcmVzdWx0cy1tZXNzYWdlXCI+VGhlcmUgYXJlIG5vIHJlY29yZHMgdG8gZGlzcGxheS48L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJjYXNlcy10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlckNlbGxzLm1hcCgoY2VsbCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZUhlYWRlckNlbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjZWxsLmlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXI9e2NlbGwuY29sdW1uSGVhZGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU9e2NlbGwuZmllbGROYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJXaWR0aD17Y2VsbC5jZWxsV2lkdGh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRpbmdQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGluZ0VuYWJsZWQ6IGNlbGwuaXNTb3J0YWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZENvbHVtbjogc29ydGVkQ29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U29ydGVkQ29sdW1uOiAoKSA9PiBzZXRTb3J0ZWRDb2x1bW4oY2VsbC5maWVsZE5hbWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTb3J0ZWRBc2NlbmRpbmc6IGlzU29ydGVkQXNjZW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNTb3J0ZWRBc2NlbmRpbmc6IHNldElzU29ydGVkQXNjZW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge21hdGNoaW5nSW5jaWRlbnRzLmRhdGEubWFwKChpbmNpZGVudCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmNpZGVudC5pbmNpZGVudGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaWQ9e2luY2lkZW50LmluY2lkZW50aWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1lbnRpdHk9XCJpbmNpZGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1uYW1lPXtpbmNpZGVudC50aXRsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e2luY2lkZW50LnRpY2tldG51bWJlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJ0aWNrZXRudW1iZXJcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmNpZGVudC5pbmNpZGVudGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e2Ake1BBR0VTLkVkaXRDYXNlLnBhdGh9P2Nhc2VJZD0ke2luY2lkZW50LmluY2lkZW50aWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPntgJHtpbmNpZGVudC50aWNrZXRudW1iZXJ9YH08L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17aW5jaWRlbnQudGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwidGl0bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmNpZGVudC5pbmNpZGVudGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e2Ake1BBR0VTLkVkaXRDYXNlLnBhdGh9P2Nhc2VJZD0ke2luY2lkZW50LmluY2lkZW50aWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPntgJHtpbmNpZGVudC50aXRsZX1gfTwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJ0eXBlXCIgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJjYXNldHlwZWNvZGVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5jaWRlbnQuY2FzZXR5cGVjb2RlICYmIENhc2VUeXBlW2luY2lkZW50LmNhc2V0eXBlY29kZV19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY3JlYXRlZC1vblwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiY3JlYXRlZG9uXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge0RhdGVIZWxwZXIudG9EYXRlU3RyaW5nKGluY2lkZW50LmNyZWF0ZWRvbil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiY29udGFjdFwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiX3ByaW1hcnljb250YWN0aWRfdmFsdWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5jaWRlbnQuX3ByaW1hcnljb250YWN0aWRfdmFsdWUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFjdCA9IGNvbnRhY3RzLmRhdGEuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhY3QpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0LmNvbnRhY3RpZCA9PT0gaW5jaWRlbnQuX3ByaW1hcnljb250YWN0aWRfdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRhY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJwcmlvcml0eVwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwicHJpb3JpdHljb2RlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luY2lkZW50LnByaW9yaXR5Y29kZSAmJiBDYXNlUHJpb3JpdHlDb2RlW2luY2lkZW50LnByaW9yaXR5Y29kZV19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwic3RhdHVzXCIgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJzdGF0dXNjb2RlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge0luY2lkZW50U3RhdHVzQ29kZVtpbmNpZGVudC5zdGF0dXNjb2RlXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCc0FzdGVyaXNrLCBCc0NoZWNrTGcgfSBmcm9tIFwicmVhY3QtaWNvbnMvYnNcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuLi9FcnJvckJvdW5kYXJ5XCI7XHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiLi4vVG9vbHRpcFwiO1xyXG5cclxuLyoqIERyb3Bkb3duIGZpZWxkICovXHJcbmV4cG9ydCBjb25zdCBEcm9wZG93bkZpZWxkOiBSZWFjdC5GQzx7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdG9vbHRpcD86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICAgIG9wdGlvbnM6IHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W107XHJcbiAgICBzZWxlY3RlZE9wdGlvbklkOiBudW1iZXIgfCBudWxsO1xyXG4gICAgb25DaGFuZ2U6IChuZXdTZWxlY3RlZE9wdGlvbklkOiBudW1iZXIgfCBudWxsKSA9PiB2b2lkO1xyXG4gICAgYWRkaXRpb25hbFNlbGVjdFByb3BzPzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8UmVhY3QuU2VsZWN0SFRNTEF0dHJpYnV0ZXM8SFRNTFNlbGVjdEVsZW1lbnQ+LCBIVE1MU2VsZWN0RWxlbWVudD47XHJcbiAgICBhZGRpdGlvbmFsTGFiZWxQcm9wcz86IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFJlYWN0LkxhYmVsSFRNTEF0dHJpYnV0ZXM8SFRNTExhYmVsRWxlbWVudD4sIEhUTUxMYWJlbEVsZW1lbnQ+ICYge1xyXG4gICAgICAgIFtkYXRhQXR0cmlidXRlOiBzdHJpbmddOiBhbnk7XHJcbiAgICB9O1xyXG4gICAgY3VzdG9tVmFsaWRpdHk/OiAodmFsaWRpdHk6IFZhbGlkaXR5U3RhdGUpID0+IHN0cmluZztcclxuICAgIHJlYWRvbmx5RHJvcGRvd24/OiBib29sZWFuO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3Qgc2VsZWN0RWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MU2VsZWN0RWxlbWVudD4obnVsbCk7XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBjdXN0b20gdmFsaWRpdHkgcnVsZXMuXHJcbiAgICBpZiAocHJvcHMuY3VzdG9tVmFsaWRpdHkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHNlbGVjdEVsZW1lbnRSZWYuY3VycmVudD8uc2V0Q3VzdG9tVmFsaWRpdHkocHJvcHMuY3VzdG9tVmFsaWRpdHkoc2VsZWN0RWxlbWVudFJlZi5jdXJyZW50LnZhbGlkaXR5KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IHRoZSBkZWZhdWx0cyBmb3IgdGhlIGNvbnRyb2xcclxuICAgIGNvbnN0IGFkZGl0aW9uYWxTZWxlY3RQcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XHJcbiAgICAgICAgUmVhY3QuU2VsZWN0SFRNTEF0dHJpYnV0ZXM8SFRNTFNlbGVjdEVsZW1lbnQ+LFxyXG4gICAgICAgIEhUTUxTZWxlY3RFbGVtZW50XHJcbiAgICA+ID0ge1xyXG4gICAgICAgIC4uLnByb3BzLmFkZGl0aW9uYWxTZWxlY3RQcm9wcyxcclxuICAgICAgICByZXF1aXJlZDogcHJvcHMuYWRkaXRpb25hbFNlbGVjdFByb3BzPy5yZXF1aXJlZCA/PyB0cnVlLFxyXG4gICAgICAgIGF1dG9Db21wbGV0ZTogcHJvcHMuYWRkaXRpb25hbFNlbGVjdFByb3BzPy5hdXRvQ29tcGxldGUgPz8gXCJvZmZcIixcclxuICAgIH07XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBzZWxlY3RFbGVtZW50UmVmLmN1cnJlbnQ/LmNoZWNrVmFsaWRpdHkoKTtcclxuICAgIH0sIFtzZWxlY3RFbGVtZW50UmVmXSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8bGFiZWwgZGF0YS1uYW1lPXtwcm9wcy5uYW1lfSBjbGFzc05hbWU9XCJmaWVsZFwiIHsuLi5wcm9wcy5hZGRpdGlvbmFsTGFiZWxQcm9wc30+XHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZC1sYWJlbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgeyFhZGRpdGlvbmFsU2VsZWN0UHJvcHMuZGlzYWJsZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFNlbGVjdFByb3BzLnJlcXVpcmVkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RFbGVtZW50UmVmLmN1cnJlbnQ/LnZhbGlkaXR5LnZhbGlkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJzQ2hlY2tMZyBjbGFzc05hbWU9XCJjb21wbGV0ZWQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnNBc3RlcmlzayBjbGFzc05hbWU9XCJyZXF1aXJlZC1pY29uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRvb2x0aXAgJiYgPFRvb2x0aXAgb3ZlcmxheUNvbnRlbnQ9e3Byb3BzLnRvb2x0aXB9PjwvVG9vbHRpcD59XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHtzZWxlY3RFbGVtZW50UmVmLmN1cnJlbnQ/LnZhbGlkYXRpb25NZXNzYWdlICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2YWxpZGl0eS1tZXNzYWdlXCI+e3NlbGVjdEVsZW1lbnRSZWYuY3VycmVudD8udmFsaWRhdGlvbk1lc3NhZ2V9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWVsZC1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtwcm9wcy5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwcm9wcy5zZWxlY3RlZE9wdGlvbklkIHx8IHVuZGVmaW5lZH1cclxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiBwcm9wcy5vbkNoYW5nZShldmVudC50YXJnZXQudmFsdWUgPT09IFwiXCIgPyBudWxsIDogTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSkpfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj17c2VsZWN0RWxlbWVudFJlZn1cclxuICAgICAgICAgICAgICAgICAgICB7Li4uYWRkaXRpb25hbFNlbGVjdFByb3BzfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gZGlzYWJsZWQ9e3Byb3BzLnJlYWRvbmx5RHJvcGRvd259Pjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtvcHRpb24uaWR9IHZhbHVlPXtvcHRpb24uaWR9IGRpc2FibGVkPXtwcm9wcy5yZWFkb25seURyb3Bkb3dufT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb24ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBCc0FzdGVyaXNrLCBCc0NoZWNrTGcgfSBmcm9tIFwicmVhY3QtaWNvbnMvYnNcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuLi9FcnJvckJvdW5kYXJ5XCI7XHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiLi4vVG9vbHRpcFwiO1xyXG5cclxuLyoqIE11bHRpLWxpbmUgdGV4dCBmaWVsZCAqL1xyXG5leHBvcnQgY29uc3QgTXVsdGlMaW5lU3RyaW5nRmllbGQ6IFJlYWN0LkZDPHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICB0b29sdGlwPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxuICAgIG9uQ2hhbmdlPzogKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgICBhZGRpdGlvbmFsVGV4dEFyZWFQcm9wcz86IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxyXG4gICAgICAgIFJlYWN0LlRleHRhcmVhSFRNTEF0dHJpYnV0ZXM8SFRNTFRleHRBcmVhRWxlbWVudD4sXHJcbiAgICAgICAgSFRNTFRleHRBcmVhRWxlbWVudFxyXG4gICAgPjtcclxuICAgIGFkZGl0aW9uYWxMYWJlbFByb3BzPzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8UmVhY3QuTGFiZWxIVE1MQXR0cmlidXRlczxIVE1MTGFiZWxFbGVtZW50PiwgSFRNTExhYmVsRWxlbWVudD4gJiB7XHJcbiAgICAgICAgW2RhdGFBdHRyaWJ1dGU6IHN0cmluZ106IGFueTtcclxuICAgIH07XHJcbiAgICBjdXN0b21WYWxpZGl0eT86ICh2YWxpZGl0eTogVmFsaWRpdHlTdGF0ZSkgPT4gc3RyaW5nO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBjdXN0b20gdmFsaWRpdHkgcnVsZXMuXHJcbiAgICBpZiAocHJvcHMuY3VzdG9tVmFsaWRpdHkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LnNldEN1c3RvbVZhbGlkaXR5KHByb3BzLmN1c3RvbVZhbGlkaXR5KHRleHRBcmVhUmVmLmN1cnJlbnQudmFsaWRpdHkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHRzIGZvciB0aGUgY29udHJvbFxyXG4gICAgY29uc3QgYWRkaXRpb25hbFRleHRBcmVhUHJvcHM6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxyXG4gICAgICAgIFJlYWN0LlRleHRhcmVhSFRNTEF0dHJpYnV0ZXM8SFRNTFRleHRBcmVhRWxlbWVudD4sXHJcbiAgICAgICAgSFRNTFRleHRBcmVhRWxlbWVudFxyXG4gICAgPiA9IHtcclxuICAgICAgICAuLi5wcm9wcy5hZGRpdGlvbmFsVGV4dEFyZWFQcm9wcyxcclxuICAgICAgICByZXF1aXJlZDogcHJvcHMuYWRkaXRpb25hbFRleHRBcmVhUHJvcHM/LnJlcXVpcmVkID8/IHRydWUsXHJcbiAgICAgICAgYXV0b0NvbXBsZXRlOiBwcm9wcy5hZGRpdGlvbmFsVGV4dEFyZWFQcm9wcz8uYXV0b0NvbXBsZXRlID8/IFwib2ZmXCIsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGxhYmVsIGRhdGEtbmFtZT17cHJvcHMubmFtZX0gY2xhc3NOYW1lPVwiZmllbGRcIiB7Li4ucHJvcHMuYWRkaXRpb25hbExhYmVsUHJvcHN9PlxyXG4gICAgICAgICAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQtbGFiZWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgIHshYWRkaXRpb25hbFRleHRBcmVhUHJvcHMuZGlzYWJsZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFRleHRBcmVhUHJvcHMucmVxdWlyZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHRleHRBcmVhUmVmLmN1cnJlbnQ/LnZhbGlkaXR5LnZhbGlkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJzQ2hlY2tMZyBjbGFzc05hbWU9XCJjb21wbGV0ZWQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnNBc3RlcmlzayBjbGFzc05hbWU9XCJyZXF1aXJlZC1pY29uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRvb2x0aXAgJiYgPFRvb2x0aXAgb3ZlcmxheUNvbnRlbnQ9e3Byb3BzLnRvb2x0aXB9IC8+fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7dGV4dEFyZWFSZWYuY3VycmVudD8udmFsaWRhdGlvbk1lc3NhZ2UgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZhbGlkaXR5LW1lc3NhZ2VcIj57dGV4dEFyZWFSZWYuY3VycmVudD8udmFsaWRhdGlvbk1lc3NhZ2V9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpZWxkLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e3Byb3BzLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BzLnZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IChwcm9wcy5vbkNoYW5nZSA/IHByb3BzLm9uQ2hhbmdlKGV2ZW50LnRhcmdldC52YWx1ZSkgOiB7fSl9XHJcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cclxuICAgICAgICAgICAgICAgICAgICB7Li4uYWRkaXRpb25hbFRleHRBcmVhUHJvcHN9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQnNBc3RlcmlzaywgQnNDaGVja0xnIH0gZnJvbSBcInJlYWN0LWljb25zL2JzXCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSBcIi4uL1Rvb2x0aXBcIjtcclxuXHJcbi8qKiBTdHJpbmcgZmllbGQgKi9cclxuZXhwb3J0IGNvbnN0IFN0cmluZ0ZpZWxkOiBSZWFjdC5GQzx7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgICB0b29sdGlwPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxuICAgIG9uQ2hhbmdlPzogKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz86IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFJlYWN0LklucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4sIEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gICAgYWRkaXRpb25hbExhYmVsUHJvcHM/OiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5MYWJlbEhUTUxBdHRyaWJ1dGVzPEhUTUxMYWJlbEVsZW1lbnQ+LCBIVE1MTGFiZWxFbGVtZW50PiAmIHtcclxuICAgICAgICBbZGF0YUF0dHJpYnV0ZTogc3RyaW5nXTogYW55O1xyXG4gICAgfTtcclxuICAgIHJlcXVpcmVkR3JvdXA/OiBib29sZWFuO1xyXG4gICAgY3VzdG9tVmFsaWRpdHk/OiAodmFsaWRpdHk6IFZhbGlkaXR5U3RhdGUpID0+IHN0cmluZztcclxufT4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcclxuXHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgYW55IGN1c3RvbSB2YWxpZGl0eSBydWxlcy5cclxuICAgIGlmIChwcm9wcy5jdXN0b21WYWxpZGl0eSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50UmVmLmN1cnJlbnQ/LnNldEN1c3RvbVZhbGlkaXR5KHByb3BzLmN1c3RvbVZhbGlkaXR5KGlucHV0RWxlbWVudFJlZi5jdXJyZW50LnZhbGlkaXR5KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IHRoZSBkZWZhdWx0cyBmb3IgdGhlIGNvbnRyb2xcclxuICAgIGNvbnN0IGFkZGl0aW9uYWxJbnB1dFByb3BzOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcclxuICAgICAgICBSZWFjdC5JbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxyXG4gICAgICAgIEhUTUxJbnB1dEVsZW1lbnRcclxuICAgID4gPSB7XHJcbiAgICAgICAgLi4ucHJvcHMuYWRkaXRpb25hbElucHV0UHJvcHMsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHByb3BzLmFkZGl0aW9uYWxJbnB1dFByb3BzPy5yZXF1aXJlZCA/PyB0cnVlLFxyXG4gICAgICAgIGF1dG9Db21wbGV0ZTogcHJvcHMuYWRkaXRpb25hbElucHV0UHJvcHM/LmF1dG9Db21wbGV0ZSA/PyBcIm9mZlwiLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxsYWJlbCBkYXRhLW5hbWU9e3Byb3BzLm5hbWV9IGNsYXNzTmFtZT1cImZpZWxkXCIgdGl0bGU9e3Byb3BzLnRpdGxlIHx8IFwiXCJ9IHsuLi5wcm9wcy5hZGRpdGlvbmFsTGFiZWxQcm9wc30+XHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZC1sYWJlbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgeyFhZGRpdGlvbmFsSW5wdXRQcm9wcy5kaXNhYmxlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcy5yZXF1aXJlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRFbGVtZW50UmVmLmN1cnJlbnQ/LnZhbGlkaXR5LnZhbGlkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJzQ2hlY2tMZyBjbGFzc05hbWU9XCJjb21wbGV0ZWQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnNBc3RlcmlzayBjbGFzc05hbWU9XCJyZXF1aXJlZC1pY29uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLnJlcXVpcmVkR3JvdXAgJiYgPEJzQXN0ZXJpc2sgY2xhc3NOYW1lPVwicmVxdWlyZWQtZ3JvdXAtaWNvblwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy50b29sdGlwICYmIDxUb29sdGlwIG92ZXJsYXlDb250ZW50PXtwcm9wcy50b29sdGlwfT48L1Rvb2x0aXA+fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7aW5wdXRFbGVtZW50UmVmLmN1cnJlbnQ/LnZhbGlkYXRpb25NZXNzYWdlICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2YWxpZGl0eS1tZXNzYWdlXCI+e2lucHV0RWxlbWVudFJlZi5jdXJyZW50Py52YWxpZGF0aW9uTWVzc2FnZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpZWxkLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e3Byb3BzLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BzLnZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IChwcm9wcy5vbkNoYW5nZSA/IHByb3BzLm9uQ2hhbmdlKGV2ZW50LnRhcmdldC52YWx1ZSkgOiB7fSl9XHJcbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dEVsZW1lbnRSZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgey4uLmFkZGl0aW9uYWxJbnB1dFByb3BzfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBGYVVzZXIgfSBmcm9tIFwicmVhY3QtaWNvbnMvZmFcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExpbmssIHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgRHJvcGRvd25GaWVsZCB9IGZyb20gXCIuLi9Db21wb25lbnRzL0ZpZWxkcy9Ecm9wZG93bkZpZWxkXCI7XHJcbmltcG9ydCB7IExvb2t1cEZpZWxkIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvRmllbGRzL0xvb2t1cEZpZWxkXCI7XHJcbmltcG9ydCB7IE11bHRpTGluZVN0cmluZ0ZpZWxkIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvRmllbGRzL011bHRpTGluZVN0cmluZ0ZpZWxkXCI7XHJcbmltcG9ydCB7IFN0cmluZ0ZpZWxkIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvRmllbGRzL1N0cmluZ0ZpZWxkXCI7XHJcbmltcG9ydCB7IEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZSB9IGZyb20gXCIuLi9Nb2RlbHMvSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlXCI7XHJcbmltcG9ydCB7IENhc2VQcmlvcml0eUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVByaW9yaXR5Q29kZVwiO1xyXG5pbXBvcnQgeyBDYXNlU2V2ZXJpdHlDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VTZXZlcml0eUNvZGVcIjtcclxuaW1wb3J0IHsgQ2FzZVVyZ2VuY3kgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVVyZ2VuY3lcIjtcclxuaW1wb3J0IHsgQ2FzZU9yaWdpbkNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZU9yaWdpbkNvZGVcIjtcclxuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFBBR0VTIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVBhZ2VOYXZpZ2F0aW9uXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgQmFzZVBhZ2UgfSBmcm9tIFwiLi9CYXNlUGFnZVwiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuLi9Ib29rcy91c2VEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbVNwaW5uZXIyIH0gZnJvbSBcInJlYWN0LWljb25zL2ltXCI7XHJcbmltcG9ydCB7IENvbnRhY3RTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uU3RhdGUgfSBmcm9tIFwiLi4vVHlwZXMvU3VibWlzc2lvblN0YXRlXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IENhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudEZvckNyZWF0ZSB9IGZyb20gXCIuLi9Nb2RlbHMvSW5jaWRlbnRGb3JDcmVhdGVcIjtcclxuXHJcbi8qIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBDYXNlIENyZWF0aW9uIFBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IENhc2VzQ3JlYXRlOiBSZWFjdC5GQyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgeyB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEsIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuICAgIGNvbnN0IGluY2lkZW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW5jaWRlbnRzKTtcclxuXHJcbiAgICBpZiAoIXVzZXJNZXRhZGF0YS5hY2NvdW50SWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFxcYHVzZXJNZXRhZGF0YS5hY2NvdW50SWRcXGAgdG8gYmUgcG9wdWxhdGVkYCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2luY2lkZW50LCBzZXRJbmNpZGVudF0gPSB1c2VTdGF0ZTxJbmNpZGVudEZvckNyZWF0ZT4oe1xyXG4gICAgICAgIHRpdGxlOiBcIlwiLFxyXG4gICAgICAgIF9jdXN0b21lcmlkX3ZhbHVlOiB1c2VyTWV0YWRhdGEuYWNjb3VudElkLFxyXG4gICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiB1c2VyTWV0YWRhdGEuY29udGFjdElkLFxyXG4gICAgICAgIF9iaXN0ZWNoX2NyZWF0ZWRieWNvbnRhY3RfdmFsdWU6IHVzZXJNZXRhZGF0YS5jb250YWN0SWQsXHJcbiAgICAgICAgY2FzZW9yaWdpbmNvZGU6IENhc2VPcmlnaW5Db2RlW1wiUG9ydGFsXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2U6IFwiXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgc2V2ZXJpdHljb2RlOiBudWxsLFxyXG4gICAgICAgIGJpc3RlY2hfdXJnZW5jeTogbnVsbCxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHByaW9yaXR5ID0gY2FsY3VsYXRlUHJpb3JpdHkoaW5jaWRlbnQuYmlzdGVjaF91cmdlbmN5LCBpbmNpZGVudC5zZXZlcml0eWNvZGUpO1xyXG5cclxuICAgIC8vIEZsYWcgaG9sZGluZyB3aGV0aGVyIHRoZSBmb3JtIGhhcyBhdHRlbXB0ZWQgdG8gYmUgc3VibWl0dGVkXHJcbiAgICBjb25zdCBbZm9ybVN1Ym1pdEF0dGVtcHRlZCwgc2V0Rm9ybVN1Ym1pdEF0dGVtcHRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgLy8gRmxhZyBob2xkaW5nIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBoYXMgbG9hZGVkXHJcbiAgICBjb25zdCBbaXNMb2FkZWQsIHNldElzTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICAvLyBQcm9ncmVzcyBvZiB0aGUgQ2FzZSBjcmVhdGlvblxyXG4gICAgY29uc3QgW3N1Ym1pc3Npb25TdGF0ZSwgc2V0U3VibWlzc2lvblN0YXRlXSA9IHVzZVN0YXRlPFN1Ym1pc3Npb25TdGF0ZT4oe1xyXG4gICAgICAgIHN0YXRlOiBcImlkbGVcIixcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBhcyBsb2FkZWRcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0SXNMb2FkZWQodHJ1ZSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCBoYW5kbGVyIGZvciBzdWJtaXNzaW9uIG9mIHRoZSBmb3JtLlxyXG4gICAgICogQHBhcmFtIGV2ZW50IEZvcm0gc3VibWlzc2lvbiBldmVudC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQoZXZlbnQ6IFJlYWN0LkZvcm1FdmVudDxIVE1MRm9ybUVsZW1lbnQ+KSB7XHJcbiAgICAgICAgLy8gUHJldmVudCB0aGUgZGVmYXVsdCBwYWdlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm1cclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICBpZiAoaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgXFxgaW5jaWRlbnRzXFxgIHRvIGhhdmUgbG9hZGVkIGJlZm9yZSBzdWJtaXNzaW9uYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJzdWJtaXR0aW5nXCIgfSk7XHJcbiAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7IHR5cGU6IFwiQ3JlYXRlIENhc2UgLSBDYXNlIGNyZWF0aW9uIHN1Ym1pdHRlZFwiIH0pO1xyXG5cclxuICAgICAgICBsZXQgY3JlYXRlZEluY2lkZW50OiBJbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGU7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgQ2FzZVxyXG4gICAgICAgICAgICBjcmVhdGVkSW5jaWRlbnQgPSBhd2FpdCBkYXRhU2VydmljZS5jcmVhdGVJbmNpZGVudChpbmNpZGVudCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiZXJyb3JlZFwiLCBlcnJvcjogZXJyb3IgYXMgRXJyb3IgfSk7XHJcbiAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkNyZWF0ZSBDYXNlIC0gQ2FzZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICBpbmNpZGVudElkOiBjcmVhdGVkSW5jaWRlbnQuaW5jaWRlbnRpZCxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQWRkIHRoZSBuZXdseSBjcmVhdGVkIEluY2lkZW50IHRvIHN0YXRlLCBzbyBpdCBjYW4gYmUgdmlld2VkXHJcbiAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICB0eXBlOiBcIlNldEFjdGl2ZUluY2lkZW50c1wiLFxyXG4gICAgICAgICAgICBhY3RpdmVJbmNpZGVudHM6IHtcclxuICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmRhdGEuY29uY2F0KFtjcmVhdGVkSW5jaWRlbnRdKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiY29tcGxldGVkXCIgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGVkaXRDYXNlVXJsID0gYCR7UEFHRVMuRWRpdENhc2UucGF0aH0/Y2FzZUlkPSR7Y3JlYXRlZEluY2lkZW50LmluY2lkZW50aWR9YDtcclxuXHJcbiAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkFkZE5vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQ2FzZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheWVkT25SZWxhdGl2ZVVybDogZWRpdENhc2VVcmwsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIE5hdmlnYXRlIHRvIHRoZSBuZXdseSBjcmVhdGVkIENhc2VcclxuICAgICAgICBuYXZpZ2F0ZShlZGl0Q2FzZVVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGVmaW5lIHRoZSByZWFzb25zIHdoeSB0aGUgQ2FzZSBjYW5ub3QgYmUgY3JlYXRlZFxyXG4gICAgY29uc3Qgc3VibWl0RGlzYWJsZWRSZWFzb25zID0gW1xyXG4gICAgICAgIC4uLih1c2VyTWV0YWRhdGEucG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCAhPT0gQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSAmJlxyXG4gICAgICAgIHByaW9yaXR5ID09PSBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMVwiXVxyXG4gICAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICAgICAgXCJBIFByaW9yaXR5IE9uZSBDYXNlIHBvc2VzIGEgc2lnbmlmaWNhbnQgaW1wYWN0IG9uIGEgY3JpdGljYWwgZWxlbWVudCBvZiB5b3VyIGJ1c2luZXNzLCBhbmQgYXMgc3VjaCBjYW5ub3QgYmUgbG9nZ2VkIGluIHRoZSBQb3J0YWxcIixcclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIDogW10pLFxyXG4gICAgXTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCYXNlUGFnZSB0aXRsZT1cIkNyZWF0ZSBhIENhc2VcIj5cclxuICAgICAgICAgICAgPGZvcm1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNyZWF0ZS1jYXNlXCJcclxuICAgICAgICAgICAgICAgIGRhdGEtc3VibWl0LWF0dGVtcHRlZD17Zm9ybVN1Ym1pdEF0dGVtcHRlZH1cclxuICAgICAgICAgICAgICAgIG9uU3VibWl0PXtvblN1Ym1pdH1cclxuICAgICAgICAgICAgICAgIG9uSW52YWxpZD17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgaWYgdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQgKGkuZS4gaWdub3JlIHRoZSB2YWxpZGl0eSBjaGVja3Mgd2hlbiB0aGUgZm9ybSBpcyBpbml0aWFsbHkgbG9hZGVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYSBmbGFnIGRldGFpbGluZyB0aGF0IGEgZm9ybSBzdWJtaXNzaW9uIGhhcyBiZWVuIGF0dGVtcHRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRGb3JtU3VibWl0QXR0ZW1wdGVkKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW5lcmFsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJUaXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXs8PlBsZWFzZSBwcm92aWRlIGEgcXVpY2sgdGl0bGUgZm9yIHRoZSBDYXNlLjwvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aW5jaWRlbnQudGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh0aXRsZSkgPT4gc2V0SW5jaWRlbnQoeyAuLi5pbmNpZGVudCwgdGl0bGUgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgYXV0b0ZvY3VzOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJZb3VyIFJlZmVyZW5jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17PD5Zb3VyIENhc2UgUmVmZXJlbmNlIChpZiBuZWVkZWQpIGZvciBvdXIgcmVjb3Jkcy48Lz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtpbmNpZGVudC5iaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEluY2lkZW50KHsgLi4uaW5jaWRlbnQsIGJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2UgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyByZXF1aXJlZDogZmFsc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9va3VwRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQcmltYXJ5IENvbnRhY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtpbmNpZGVudC5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17PD5UaGUgbm9taW5hdGVkIENvbnRhY3QgdG8gcmVjZWl2ZSBDYXNlIHJlbGF0ZWQgY29ycmVzcG9uZGVuY2UuPC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWxPcHRpb25zTmFtZT1cIkFjdGl2ZSBDb250YWN0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGFjdHMuZGF0YS5tYXAoKGNvbnRhY3QpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBjb250YWN0LmNvbnRhY3RpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IFtjb250YWN0LmZpcnN0bmFtZSwgY29udGFjdC5sYXN0bmFtZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+IHMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIiBcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IGNvbnRhY3QuZW1haWxhZGRyZXNzMSA/PyBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BpY2thYmxlOiBjb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25JZD17KF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5jaWRlbnQoeyAuLi5pbmNpZGVudCwgX3ByaW1hcnljb250YWN0aWRfdmFsdWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbkNhcmRJbmZvPXsoc2VsZWN0ZWRPcHRpb24pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiA8RmFVc2VyIC8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IHNlbGVjdGVkT3B0aW9uLnByaW1hcnlUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dDogc2VsZWN0ZWRPcHRpb24uc2Vjb25kYXJ5VGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxGaWVsZHM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiSm9iIFRpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RlZE9wdGlvbi5jb250YWN0LmpvYnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlRlbGVwaG9uZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0ZWRPcHRpb24uY29udGFjdC50ZWxlcGhvbmUxIHx8IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTW9iaWxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RlZE9wdGlvbi5jb250YWN0Lm1vYmlsZXBob25lIHx8IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUGVybWlzc2lvbiBMZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQmFzZVBlcm1pc3Npb25MZXZlbFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLmNvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWwhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBwbGFjZWhvbGRlcjogXCJTZWxlY3QgYSBDb250YWN0XCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiVXJnZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYmlzdGVjaF91cmdlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5IaWdoPC9zdHJvbmc+IC0gUmVzb2x1dGlvbiBvZiB0aGUgSW5jaWRlbnQgaXMgdGltZS1jcml0aWNhbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+TWVkaXVtPC9zdHJvbmc+IC0gVGhlIGVmZmVjdCBvZiB0aGUgSW5jaWRlbnQgaW5jcmVhc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zaWRlcmFibHkgb3ZlciB0aW1lLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Mb3c8L3N0cm9uZz4gLSBUaGUgZWZmZWN0IG9mIHRoZSBJbmNpZGVudCBpbmNyZWFzZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbmFsbHkgb3ZlciB0aW1lLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogQ2FzZVVyZ2VuY3kuTG93LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogQ2FzZVVyZ2VuY3lbQ2FzZVVyZ2VuY3kuTG93XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IENhc2VVcmdlbmN5Lk1lZGl1bSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IENhc2VVcmdlbmN5W0Nhc2VVcmdlbmN5Lk1lZGl1bV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBDYXNlVXJnZW5jeS5IaWdoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogQ2FzZVVyZ2VuY3lbQ2FzZVVyZ2VuY3kuSGlnaF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtpbmNpZGVudC5iaXN0ZWNoX3VyZ2VuY3l9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGJpc3RlY2hfdXJnZW5jeSkgPT4gc2V0SW5jaWRlbnQoeyAuLi5pbmNpZGVudCwgYmlzdGVjaF91cmdlbmN5IH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiU2V2ZXJpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNldmVyaXR5Y29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+SGlnaDwvc3Ryb25nPiAtIEEgbGFyZ2UgbnVtYmVyIG9mIHVzZXJzIGFyZSBhZmZlY3RlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+TWVkaXVtPC9zdHJvbmc+IC0gQSBtb2RlcmF0ZSBudW1iZXIgb2YgdXNlcnMgYXJlIGFmZmVjdGVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Mb3c8L3N0cm9uZz4gLSBBIG1pbmltYWwgbnVtYmVyIG9mIHVzZXJzIGFyZSBhZmZlY3RlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IENhc2VTZXZlcml0eUNvZGUuTG93LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogQ2FzZVNldmVyaXR5Q29kZVtDYXNlU2V2ZXJpdHlDb2RlLkxvd10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBDYXNlU2V2ZXJpdHlDb2RlLk1lZGl1bSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IENhc2VTZXZlcml0eUNvZGVbQ2FzZVNldmVyaXR5Q29kZS5NZWRpdW1dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogQ2FzZVNldmVyaXR5Q29kZS5IaWdoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogQ2FzZVNldmVyaXR5Q29kZVtDYXNlU2V2ZXJpdHlDb2RlLkhpZ2hdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25JZD17aW5jaWRlbnQuc2V2ZXJpdHljb2RlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhzZXZlcml0eWNvZGUpID0+IHNldEluY2lkZW50KHsgLi4uaW5jaWRlbnQsIHNldmVyaXR5Y29kZSB9KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByaW9yaXR5LWRlc2NyaWJlci1wYXJlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ByaW9yaXR5ICE9PSBudWxsICYmIDxQcmlvcml0eURlc2NyaXB0b3IgcHJpb3JpdHlDb2RlPXtwcmlvcml0eX0gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNdWx0aUxpbmVTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17PD5QbGVhc2UgcHJvdmlkZSBhIGNsZWFyIGV4cGxhbmF0aW9uIG9mIHRoZSBpc3N1ZSAvIHJlcXVpcmVtZW50LjwvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aW5jaWRlbnQuZGVzY3JpcHRpb24gfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGRlc2NyaXB0aW9uKSA9PiBzZXRJbmNpZGVudCh7IC4uLmluY2lkZW50LCBkZXNjcmlwdGlvbiB9KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGV4dEFyZWFQcm9wcz17eyBtYXhMZW5ndGg6IDIwMDAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3ByaW9yaXR5ID09PSBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgMVwiXSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHJpb3JpdHktb25lLWNhc2Utd2FybmluZ1wiIGlkPVwicHJpb3JpdHktb25lLWNhc2Utd2FybmluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByaW9yaXR5LW9uZS1jYXNlLXdhcm5pbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YiBjbGFzc05hbWU9XCJwcmlvcml0eS1vbmUtY2FzZS13YXJuaW5nLWhlYWRsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBQcmlvcml0eSBPbmUgQ2FzZSBwb3NlcyBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBhIGNyaXRpY2FsIGVsZW1lbnQgb2YgeW91clxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3VzZXJNZXRhZGF0YS5wb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsID09PSBDYXNlUGVybWlzc2lvbkxldmVsW1wiQWxsIENhc2VzXCJdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiLCBhbmQgYXMgc3VjaCBjYW5ub3QgYmUgbG9nZ2VkIGluIHRoZSBQb3J0YWxcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJwcmlvcml0eS1vbmUtY2FzZS13YXJuaW5nLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZSByZWNvbW1lbmQgeW91IGNhbGwgdXMgaW1tZWRpYXRlbHkgdG8gaGVscCByZXNvbHZlIHRoZSBpc3N1ZSBhcyBxdWlja2x5IGFzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zc2libGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwicHJpb3JpdHktb25lLWNhc2Utd2FybmluZy1ob3Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJwcmlvcml0eS1vbmUtY2FzZS13YXJuaW5nLWhvdXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+T2ZmaWNlIGhvdXJzICgwOS4wMC0xNy4wMCk6PC9iPntcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInRlbDowMTIwMjMzMjI5OVwiPjAxMjAyIDMzIDIyIDk5PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cInByaW9yaXR5LW9uZS1jYXNlLXdhcm5pbmctaG91clwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5PdXQgb2YgaG91cnMgKDE3LjAwLTA5LjAwKTo8L2I+e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwidGVsOjAzMzAxMjQ0NDQ4XCI+MDMzMCAxMjQgNDQ0ODwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiZXJyb3JlZFwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RmFpbGVkIHRvIGNyZWF0ZSBDYXNlPC9zdHJvbmc+OiB7c3VibWlzc2lvblN0YXRlLmVycm9yLm1lc3NhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3NOYW1lPVwiYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c3VibWl0RGlzYWJsZWRSZWFzb25zLmxlbmd0aCA+IDAgfHwgc3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtzdWJtaXREaXNhYmxlZFJlYXNvbnMubGVuZ3RoID4gMCA/IHN1Ym1pdERpc2FibGVkUmVhc29ucy5qb2luKFwiXFxyXFxuXCIpIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1Ym1pc3Npb25TdGF0ZS5zdGF0ZSA9PT0gXCJzdWJtaXR0aW5nXCIgJiYgPEltU3Bpbm5lcjIgY2xhc3NOYW1lPVwic3BpblwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGluayBjbGFzc05hbWU9XCJidXR0b24gZGVmYXVsdFwiIHRvPXtQQUdFUy5DYXNlcy5wYXRofT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcblxyXG4vKiogUmVuZGVycyBhIGRlc2NyaXB0b3Igb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwcmlvcml0eS4gKi9cclxuY29uc3QgUHJpb3JpdHlEZXNjcmlwdG9yOiBSZWFjdC5GQzx7IHByaW9yaXR5Q29kZTogQ2FzZVByaW9yaXR5Q29kZSB9PiA9IChwcm9wcykgPT4ge1xyXG4gICAgLyoqIFByaW9yaXR5IGRlc2NyaXB0aW9ucyBmb3IgaW5jaWRlbnRzICovXHJcbiAgICBjb25zdCBQUklPUklUWV9ERVNDUklQVElPTlM6IHsgcHJpb3JpdHk6IENhc2VQcmlvcml0eUNvZGU7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfVtdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAxXCJdLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgICAgIFwiT25lIG9yIG1vcmUgc2VydmljZXMgYXJlIGluYWNjZXNzaWJsZSBvciB1bnVzYWJsZS4gVGhlcmUgaXMgYSBzaWduaWZpY2FudCBpbXBhY3Qgb24gYSBjcml0aWNhbCBlbGVtZW50IFwiICtcclxuICAgICAgICAgICAgICAgIFwib2YgeW91ciBidXNpbmVzcy4gTXVsdGlwbGUgdXNlcnMgb3IgYSBzZXJ2aWNlIGlzIGFmZmVjdGVkLlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcmlvcml0eTogQ2FzZVByaW9yaXR5Q29kZVtcIlByaW9yaXR5IDJcIl0sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICAgICAgXCJBIHNlcnZpY2UgaXMgdXNhYmxlIGJ1dCBpbXBhaXJlZC4gVGhlIHNpdHVhdGlvbiBoYXMgbW9kZXJhdGUgYnVzaW5lc3MgaW1wYWN0IGFuZCBjYW4gYmUgZGVhbHQgd2l0aCBkdXJpbmcgXCIgK1xyXG4gICAgICAgICAgICAgICAgXCJidXNpbmVzcyBob3Vycy4gTXVsdGlwbGUgdXNlcnMgb3IgYSBzZXJ2aWNlIGlzIHBhcnRpYWxseSBhZmZlY3RlZC5cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAzXCJdLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgICAgIFwiVGhlIGlzc3VlIGlzIGltcG9ydGFudCBidXQgaXMgbm90IGN1cnJlbnRseSBjYXVzaW5nIHlvdSBhIHNpZ25pZmljYW50IGltcGFjdC4gVXNlcnMgbWF5IGJlIGV4cGVyaWVuY2luZyBcIiArXHJcbiAgICAgICAgICAgICAgICBcInBhcnRpYWwgZGlzcnVwdGlvbiwgYnV0IGFuIGFjY2VwdGFibGUgd29ya2Fyb3VuZCBleGlzdHMuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiBDYXNlUHJpb3JpdHlDb2RlW1wiUHJpb3JpdHkgNFwiXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgICAgICBcIlRoZSBpc3N1ZSBpcyBsb3cgaW1wYWN0IGFuZCBpcyBub3QgY2F1c2luZyB5b3UgYSBkaXNydXB0aW9uLiBVc2VycyBhcmUgdW5hZmZlY3RlZC4gVGhpcyBtYXkgaW5jbHVkZSBjb3NtZXRpYyBkZWZlY3RzLlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHsgcHJpb3JpdHlDb2RlIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gUFJJT1JJVFlfREVTQ1JJUFRJT05TLmZpbmQoKHsgcHJpb3JpdHkgfSkgPT4gcHJpb3JpdHkgPT09IHByaW9yaXR5Q29kZSk/LmRlc2NyaXB0aW9uO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHJpb3JpdHktZGVzY3JpYmVyXCIgZGF0YS1zZWxlY3RlZC1sZXZlbD17Q2FzZVByaW9yaXR5Q29kZVtwcmlvcml0eUNvZGVdfT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmlvcml0eS1kZXNjcmliZXItbGV2ZWxzLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIHtQUklPUklUWV9ERVNDUklQVElPTlMubWFwKCh7IHByaW9yaXR5IH0pID0+IChcclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3ByaW9yaXR5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwcmlvcml0eS1kZXNjcmliZXItbGV2ZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWxldmVsPXtDYXNlUHJpb3JpdHlDb2RlW3ByaW9yaXR5XX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zZWxlY3RlZD17cHJpb3JpdHlDb2RlID09PSBwcmlvcml0eX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByaW9yaXR5LWRlc2NyaWJlci1kZXRhaWxzLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJpb3JpdHktZGVzY3JpYmVyLWRldGFpbHNcIiBkYXRhLWxldmVsPXtDYXNlUHJpb3JpdHlDb2RlW3ByaW9yaXR5Q29kZV19PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJwcmlvcml0eS1kZXNjcmliZXItdGl0bGVcIj57Q2FzZVByaW9yaXR5Q29kZVtwcmlvcml0eUNvZGVdfTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwicHJpb3JpdHktZGVzY3JpYmVyLWRlc2NyaXB0aW9uXCI+e2Rlc2NyaXB0aW9ufTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICApO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENhbHVsYXRlcyB0aGUgcHJpb3JpdHkgZmllbGQgYmFzZWQgb24gdXJnZW5jeSBhbmQgaW1wYWN0IGZpZWxkc1xyXG4gKiBAcGFyYW0gdXJnZW5jeSAtIFRoZSB1cmdlbmN5IG9mIHRoZSBjYXNlXHJcbiAqIEBwYXJhbSBzZXZlcml0eSAtIFRoZSBzZXZlcml0eSBvZiB0aGUgY2FzZVxyXG4gKi9cclxuZnVuY3Rpb24gY2FsY3VsYXRlUHJpb3JpdHkodXJnZW5jeTogQ2FzZVVyZ2VuY3kgfCBudWxsLCBzZXZlcml0eTogQ2FzZVNldmVyaXR5Q29kZSB8IG51bGwpOiBDYXNlUHJpb3JpdHlDb2RlIHwgbnVsbCB7XHJcbiAgICBpZiAodXJnZW5jeSA9PT0gbnVsbCB8fCBzZXZlcml0eSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAoc2V2ZXJpdHkgKyB1cmdlbmN5KSB7XHJcbiAgICAgICAgLy8gTG93ICgxKSBhbmQgTG93ICgxKVxyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgcmV0dXJuIENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSA0XCJdO1xyXG5cclxuICAgICAgICAvLyBMb3cgKDEpIGFuZCBIaWdoICgzKVxyXG4gICAgICAgIC8vIExvdyAoMSkgYW5kIE1lZGl1bSAoMilcclxuICAgICAgICAvLyBNZWRpdW0gKDIpIGFuZCBMb3cgKDEpXHJcbiAgICAgICAgLy8gTWVkaXVtICgyKSBhbmQgTWVkaXVtICgyKVxyXG4gICAgICAgIC8vIEhpZ2ggKDMpIGFuZCBMb3cgKDEpXHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgIGNhc2UgNDpcclxuICAgICAgICAgICAgcmV0dXJuIENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAzXCJdO1xyXG5cclxuICAgICAgICAvLyBNZWRpdW0gKDIpIGFuZCBIaWdoICgzKVxyXG4gICAgICAgIC8vIEhpZ2ggKDMpIGFuZCBNZWRpdW0gKDIpXHJcbiAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgICAgICByZXR1cm4gQ2FzZVByaW9yaXR5Q29kZVtcIlByaW9yaXR5IDJcIl07XHJcblxyXG4gICAgICAgIC8vIEhpZ2ggKDMpIGFuZCBIaWdoICgzKVxyXG4gICAgICAgIGNhc2UgNjpcclxuICAgICAgICAgICAgcmV0dXJuIENhc2VQcmlvcml0eUNvZGVbXCJQcmlvcml0eSAxXCJdO1xyXG4gICAgfVxyXG5cclxuICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB1cmdlbmN5IGFuZCBzZXZlcml0eWApO1xyXG59XHJcbiIsImltcG9ydCB7IENvbnRhY3RTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyB0b0xvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0hlbHBlcnMvdG9Mb2FkaW5nRGF0YVwiO1xyXG5pbXBvcnQgeyBDb250YWN0Rm9yUmV0cmlldmFsIH0gZnJvbSBcIi4uL01vZGVscy9Db250YWN0Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IEZpbHRlckdyb3VwIH0gZnJvbSBcIi4uL1R5cGVzL0ZpbHRlckdyb3VwXCI7XHJcbmltcG9ydCB7IEZpbHRlcmVkQ29udGFjdHMgfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyTW9kZWxzL0ZpbHRlcmVkQ29udGFjdHNcIjtcclxuXHJcbi8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgQ29udGFjdHMgZmlsdGVyIGdyb3VwcyB0byBkaXNwbGF5IG9uIHRoZSBNYW5hZ2VtZW50IFBhbmVsLiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29udGFjdHNGaWx0ZXJHcm91cHMgPSAoXHJcbiAgICBmaWx0ZXJlZENvbnRhY3RzOiBGaWx0ZXJlZENvbnRhY3RzLFxyXG4gICAgc2VsZWN0ZWRTdGF0dXNUaWxlSWRzOiBzdHJpbmdbXSxcclxuICAgIHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkczogKHRpbGVJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXHJcbik6IEZpbHRlckdyb3VwPENvbnRhY3RGb3JSZXRyaWV2YWw+W10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxhYmVsRWxlbWVudDogPD5TdGF0dXM8Lz4sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJTdGF0dXNcIixcclxuICAgICAgICAgICAgdGlsZXM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJhY3RpdmUtY29udGFjdHNcIixcclxuICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZFRpbGVJZHM6IHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFRpbGVJZHM6IHNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChjb250YWN0KSA9PiBbQ29udGFjdFN0YXRlQ29kZS5BY3RpdmVdLmluY2x1ZGVzKGNvbnRhY3Quc3RhdGVjb2RlKSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogPD5BY3RpdmU8Lz4sXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTG9hZGluZ0RhdGEoZmlsdGVyZWRDb250YWN0cy5hY3RpdmVDb250YWN0cywgKGNvbnRhY3RzKSA9PiBjb250YWN0cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvY29udGFjdC1tYW5hZ2VtZW50LXN0YXR1cy1hY3RpdmUuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBcImluYWN0aXZlLWNvbnRhY3RzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUaWxlSWRzOiBzZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAoY29udGFjdCkgPT4gW0NvbnRhY3RTdGF0ZUNvZGUuSW5hY3RpdmVdLmluY2x1ZGVzKGNvbnRhY3Quc3RhdGVjb2RlKSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogPD5JbmFjdGl2ZTwvPixcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Mb2FkaW5nRGF0YShmaWx0ZXJlZENvbnRhY3RzLmluYWN0aXZlQ29udGFjdHMsIChjb250YWN0cykgPT4gY29udGFjdHMubGVuZ3RoKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg6IFwiL2NvbnRhY3QtbWFuYWdlbWVudC1zdGF0dXMtaW5hY3RpdmUuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBMb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9EZWZhdWx0Um9vdFN0YXRlXCI7XHJcbmltcG9ydCB7IFBBR0VTIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVBhZ2VOYXZpZ2F0aW9uXCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgU3VtbWFyeVNlY3Rpb24gfSBmcm9tIFwiLi4vVHlwZXMvU3VtbWFyeVNlY3Rpb25cIjtcclxuXHJcbi8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgQ29udGFjdHMgc3VtbWFyeSBzZWN0aW9ucyB0byBkaXNwbGF5IG9uIHRoZSBNYW5hZ2VtZW50IFBhbmVsLiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29udGFjdHNTdW1tYXJ5U2VjdGlvbnMgPSAoXHJcbiAgICBjb250YWN0czogTG9hZGluZ0RhdGE8Q29udGFjdEZvclJldHJpZXZhbFtdPixcclxuICAgIHByaW1hcnlDb250YWN0OiBDb250YWN0Rm9yUmV0cmlldmFsIHwgdW5kZWZpbmVkXHJcbik6IFN1bW1hcnlTZWN0aW9uW10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uLWxpbmtcIixcclxuICAgICAgICAgICAgbGFiZWw6IFwiTmV3IENvbnRhY3RcIixcclxuICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFwiQ3JlYXRlXCIsXHJcbiAgICAgICAgICAgIHRvOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IFBBR0VTLkNyZWF0ZUNvbnRhY3QucGF0aCB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29udGFjdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIlxyXG4gICAgICAgICAgICA/IHByaW1hcnlDb250YWN0XHJcbiAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibGlua1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiS2V5IFNlcnZpY2UgQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFtwcmltYXJ5Q29udGFjdC5maXJzdG5hbWUsIHByaW1hcnlDb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdG86IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogYCR7UEFHRVMuRWRpdENvbnRhY3QucGF0aH0/aWQ9JHtwcmltYXJ5Q29udGFjdC5jb250YWN0aWR9YCB9LFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJLZXkgU2VydmljZSBDb250YWN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBcIk5vbmUgU2V0XCIgfSxcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiS2V5IFNlcnZpY2UgQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICBdO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBDb250YWN0VGFibGVIZWFkZXJDZWxsIH0gZnJvbSBcIi4uL1R5cGVzL1RhYmxlSGVhZGVyQ2VsbHMvQ29udGFjdFRhYmxlSGVhZGVyQ2VsbFwiO1xyXG5cclxuLyoqIERlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBoZWFkZXIgY2VsbHMgdG8gZGlzcGxheSBpbiB0aGUgQ2FzZXMgVGFibGUuICovXHJcbmV4cG9ydCBjb25zdCBnZXRDb250YWN0VGFibGVIZWFkZXJDZWxscyA9ICgpOiBDb250YWN0VGFibGVIZWFkZXJDZWxsW10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiRnVsbCBOYW1lXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJmaXJzdG5hbWVcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJKb2IgVGl0bGVcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcImpvYnRpdGxlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAyLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiRW1haWxcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcImVtYWlsYWRkcmVzczFcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJERElcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcInRlbGVwaG9uZTFcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDQsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJNb2JpbGUgUGhvbmVcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcIm1vYmlsZXBob25lXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTGluayB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IE1hbmFnZW1lbnRQYW5lbCB9IGZyb20gXCIuLi9Db21wb25lbnRzL01hbmFnZW1lbnRQYW5lbFwiO1xyXG5pbXBvcnQgeyBnZXRDb250YWN0c0ZpbHRlckdyb3VwcyB9IGZyb20gXCIuLi9EYXRhL2dldENvbnRhY3RzRmlsdGVyR3JvdXBzXCI7XHJcbmltcG9ydCB7IGdldENvbnRhY3RzU3VtbWFyeVNlY3Rpb25zIH0gZnJvbSBcIi4uL0RhdGEvZ2V0Q29udGFjdHNTdW1tYXJ5U2VjdGlvbnNcIjtcclxuaW1wb3J0IHsgZ2V0Q29udGFjdFRhYmxlSGVhZGVyQ2VsbHMgfSBmcm9tIFwiLi4vRGF0YS9nZXRDb250YWN0VGFibGVIZWFkZXJDZWxsc1wiO1xyXG5pbXBvcnQgeyBMb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9EZWZhdWx0Um9vdFN0YXRlXCI7XHJcbmltcG9ydCB7IENvbnRhY3RTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBQQUdFUyB9IGZyb20gXCIuLi9Ib29rcy91c2VQYWdlTmF2aWdhdGlvblwiO1xyXG5pbXBvcnQgeyB1c2VVc2VyTWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlVXNlck1ldGFkYXRhXCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgRmlsdGVyZWRDb250YWN0cyB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJNb2RlbHMvRmlsdGVyZWRDb250YWN0c1wiO1xyXG5pbXBvcnQgeyBGaWx0ZXJHcm91cCB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJHcm91cFwiO1xyXG5pbXBvcnQgeyBTdW1tYXJ5U2VjdGlvbiB9IGZyb20gXCIuLi9UeXBlcy9TdW1tYXJ5U2VjdGlvblwiO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gXCIuL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IHRvTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vSGVscGVycy90b0xvYWRpbmdEYXRhXCI7XHJcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvTG9hZGluZ1NwaW5uZXJcIjtcclxuaW1wb3J0IHsgVGFibGVIZWFkZXJDZWxsIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvVGFibGVIZWFkZXJDZWxsXCI7XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgQ29udGFjdHMgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgQ29udGFjdHM6IFJlYWN0LkZDID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdXNlck1ldGFkYXRhID0gdXNlVXNlck1ldGFkYXRhKCk7XHJcbiAgICBjb25zdCBjb250YWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuY29udGFjdHMpO1xyXG5cclxuICAgIC8vIExvY2FsIHN0YXRlIHVzZWQgZm9yIHRoZSBTZWFyY2ggQmFyXHJcbiAgICBjb25zdCBbc2VhcmNoQmFyQ29udGVudCwgc2V0U2VhcmNoQmFyQ29udGVudF0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpO1xyXG5cclxuICAgIC8vIExvY2FsIHN0YXRlIHVzZWQgZm9yIHRoZSBUaWxlIHNlbGVjdGlvbi5cclxuICAgIGNvbnN0IFtzZWxlY3RlZFN0YXR1c1RpbGVJZHMsIHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oW1wiYWN0aXZlLWNvbnRhY3RzXCJdKTtcclxuXHJcbiAgICAvLyBMb2NhbCBzdGF0ZSB1c2VkIGZvciB0aGUgdGFibGUgc29ydGluZy5cclxuICAgIGNvbnN0IFtzb3J0ZWRDb2x1bW4sIHNldFNvcnRlZENvbHVtbl0gPSB1c2VTdGF0ZTxrZXlvZiBDb250YWN0Rm9yUmV0cmlldmFsPihcImZpcnN0bmFtZVwiKTtcclxuICAgIGNvbnN0IFtpc1NvcnRlZEFzY2VuZGluZywgc2V0SXNTb3J0ZWRBc2NlbmRpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gICAgaWYgKCF1c2VyTWV0YWRhdGEuYWNjb3VudElkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBcXGB1c2VyTWV0YWRhdGEuYWNjb3VudElkXFxgIHRvIGJlIHBvcHVsYXRlZGApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGFjY291bnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5hY2NvdW50cyk7XHJcblxyXG4gICAgLy8gU29ydHMgdGhlIHdheSB0aGUgYXJyYXkgb2YgQ29udGFjdHMgZGlzcGxheXMgaW4gdGhlIHRhYmxlLlxyXG4gICAgY29uc3Qgc29ydGVkQ29udGFjdHM6IExvYWRpbmdEYXRhPENvbnRhY3RGb3JSZXRyaWV2YWxbXT4gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoY29udGFjdHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBjb250YWN0cy5sb2FkaW5nU3RhdHVzIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gY29udGFjdHMuZGF0YS5zbGljZSgpLnNvcnQoKGNvbnRhY3RBLCBjb250YWN0QikgPT4ge1xyXG4gICAgICAgICAgICAvLyBJZiBzb3J0aW5nIGJ5ICdmaXJzdG5hbWUnLCBzb3J0IGJ5IHRoZSBmdWxsIG5hbWUgb2YgdGhlIENvbnRhY3RcclxuICAgICAgICAgICAgaWYgKHNvcnRlZENvbHVtbiA9PT0gXCJmaXJzdG5hbWVcIikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbnRhY3RBLmZpcnN0bmFtZT8udG9TdHJpbmcoKSA/PyBcIlwifSR7Y29udGFjdEEubGFzdG5hbWU/LnRvU3RyaW5nKCkgPz8gXCJcIn1gLmxvY2FsZUNvbXBhcmUoXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7Y29udGFjdEIuZmlyc3RuYW1lPy50b1N0cmluZygpID8/IFwiXCJ9JHtjb250YWN0Qi5sYXN0bmFtZT8udG9TdHJpbmcoKSA/PyBcIlwifWBcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBjb250YWN0QVtzb3J0ZWRDb2x1bW5dPy50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoY29udGFjdEJbc29ydGVkQ29sdW1uXT8udG9TdHJpbmcoKSA/PyBcIlwiKSA/PyAwO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoaXNTb3J0ZWRBc2NlbmRpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogc29ydGVkRGF0YSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogc29ydGVkRGF0YS5yZXZlcnNlKCkgfTtcclxuICAgIH0sIFtjb250YWN0cywgc29ydGVkQ29sdW1uLCBpc1NvcnRlZEFzY2VuZGluZ10pO1xyXG5cclxuICAgIC8qKiBPYmplY3QgZGVmaW5pbmcgQ29udGFjdHMgZmlsdGVyZWQgYnkgZGlmZmVyZW50IHBhcmFtZXRlcnMgKi9cclxuICAgIGNvbnN0IGZpbHRlcmVkQ29udGFjdHM6IEZpbHRlcmVkQ29udGFjdHMgPSB7XHJcbiAgICAgICAgYWN0aXZlQ29udGFjdHM6IHRvTG9hZGluZ0RhdGEoc29ydGVkQ29udGFjdHMsIChjb250YWN0cykgPT5cclxuICAgICAgICAgICAgY29udGFjdHMuZmlsdGVyKChjb250YWN0KSA9PiBjb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZS5BY3RpdmUpXHJcbiAgICAgICAgKSxcclxuICAgICAgICBpbmFjdGl2ZUNvbnRhY3RzOiB0b0xvYWRpbmdEYXRhKHNvcnRlZENvbnRhY3RzLCAoY29udGFjdHMpID0+XHJcbiAgICAgICAgICAgIGNvbnRhY3RzLmZpbHRlcigoY29udGFjdCkgPT4gY29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGUuSW5hY3RpdmUpXHJcbiAgICAgICAgKSxcclxuICAgIH07XHJcblxyXG4gICAgLy8gRGVzY3JpcHRpb24gb2YgdGhlIGdyb3VwcyBvZiBwcm9kdWN0IHRpbGVzIHRvIGRpc3BsYXkgaW4gdGhlIE5hdmlnYXRpb24gcGFuZWwuXHJcbiAgICBjb25zdCBjb250YWN0c0ZpbHRlckdyb3VwczogRmlsdGVyR3JvdXA8Q29udGFjdEZvclJldHJpZXZhbD5bXSA9IGdldENvbnRhY3RzRmlsdGVyR3JvdXBzKFxyXG4gICAgICAgIGZpbHRlcmVkQ29udGFjdHMsXHJcbiAgICAgICAgc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgIHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkc1xyXG4gICAgKTtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGFwcGxpY2FibGUgU3RhdHVzIGZpbHRlcnMuXHJcbiAgICBjb25zdCBhcHBsaWNhYmxlU3RhdHVzRmlsdGVycyA9IGNvbnRhY3RzRmlsdGVyR3JvdXBzLmZsYXRNYXAoKGZpbHRlckdyb3VwKSA9PlxyXG4gICAgICAgIGZpbHRlckdyb3VwLnRpbGVzXHJcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBzZWxlY3RlZCB0aWxlcyBpbiB0aGUgZ3JvdXAgdGhlbiBubyBmaWx0ZXJzIGFyZSBhcHBsaWVkLlxyXG4gICAgICAgICAgICAuZmlsdGVyKCh0aWxlKSA9PiAoc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLmxlbmd0aCA+IDAgPyBzZWxlY3RlZFN0YXR1c1RpbGVJZHMuaW5jbHVkZXModGlsZS5pZCkgOiB0cnVlKSlcclxuICAgICAgICAgICAgLmZsYXRNYXAoKHRpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aWxlLmZpbHRlcjtcclxuICAgICAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgdXNlclBhcmVudEFjY291bnRJZCA9XHJcbiAgICAgICAgYWNjb3VudHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIlxyXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA6IGFjY291bnRzLmRhdGEuZmluZCgoY29ubmVjdGVkQWNjb3VudCkgPT4gY29ubmVjdGVkQWNjb3VudC5hY2NvdW50aWQgPT09IHVzZXJNZXRhZGF0YS5hY2NvdW50SWQpO1xyXG5cclxuICAgIGNvbnN0IGtleVNlcnZpY2VDb250YWN0ID1cclxuICAgICAgICBjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiXHJcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIDogY29udGFjdHMuZGF0YS5maW5kKChjb250YWN0KSA9PiBjb250YWN0LmNvbnRhY3RpZCA9PT0gdXNlclBhcmVudEFjY291bnRJZD8uX3ByaW1hcnljb250YWN0aWRfdmFsdWUpO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBzdW1tYXJ5IHNlY3Rpb25zIHRvIGRpc3BsYXkuXHJcbiAgICBjb25zdCBzdW1tYXJ5U2VjdGlvbnM6IFN1bW1hcnlTZWN0aW9uW10gPSBnZXRDb250YWN0c1N1bW1hcnlTZWN0aW9ucyhjb250YWN0cywga2V5U2VydmljZUNvbnRhY3QpO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlckNlbGxzID0gZ2V0Q29udGFjdFRhYmxlSGVhZGVyQ2VsbHMoKTtcclxuXHJcbiAgICBjb25zdCBnZXRDb2x1bW5IZWFkZXIgPSAoZmllbGROYW1lOiBrZXlvZiBDb250YWN0Rm9yUmV0cmlldmFsKSA9PlxyXG4gICAgICAgIGhlYWRlckNlbGxzLmZpbmQoKGhlYWRlckNlbGwpID0+IGhlYWRlckNlbGwuZmllbGROYW1lID09PSBmaWVsZE5hbWUpPy5jb2x1bW5IZWFkZXI7XHJcblxyXG4gICAgLy8gRmluZCB0aGUgcmVzdWx0cyB0byBkaXNwbGF5XHJcbiAgICBjb25zdCBtYXRjaGluZ0NvbnRhY3RzID0gdG9Mb2FkaW5nRGF0YShzb3J0ZWRDb250YWN0cywgKGNvbnRhY3RzKSA9PlxyXG4gICAgICAgIGNvbnRhY3RzXHJcbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBTZWFyY2ggQmFyIGZpbHRlci5cclxuICAgICAgICAgICAgLmZpbHRlcigoY29udGFjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbnRhY3QpLnNvbWUoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0VmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSB2YWx1ZT8udG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNvbnRlbnRzIGluIHRoZSB0YWJsZSBpcyBmb3JtYXR0ZWQgZm9yIHRoZSB1c2VyIHRoZXJlZm9yZSB0aGUgc2VhcmNoIHZhbHVlcyBoYXZlIHRvIGFsc28gYmUgZm9ybWF0dGVkLlxyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERldGVybWluZSB0aGUgZnVsbG5hbWUgZm9yIHN0cmluZyBjb21wYXJpc29uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY29udGFjdGlkXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRWYWx1ZSA9ICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250YWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtjb250YWN0LmZpcnN0bmFtZSwgY29udGFjdC5sYXN0bmFtZV0uZmlsdGVyKChzKSA9PiBzKS5qb2luKFwiIFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0VmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hCYXJDb250ZW50LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgU3RhdHVzIFRpbGUgZmlsdGVycy5cclxuICAgICAgICAgICAgLmZpbHRlcigoY29udGFjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcGxpY2FibGVTdGF0dXNGaWx0ZXJzLnNvbWUoKGZpbHRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIoY29udGFjdCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8QmFzZVBhZ2UgdGl0bGU9XCJDb250YWN0c1wiPlxyXG4gICAgICAgICAgICA8TWFuYWdlbWVudFBhbmVsXHJcbiAgICAgICAgICAgICAgICBzZXRTZWFyY2hCYXJDb250ZW50PXtzZXRTZWFyY2hCYXJDb250ZW50fVxyXG4gICAgICAgICAgICAgICAgZmlsdGVyR3JvdXBzPXtjb250YWN0c0ZpbHRlckdyb3Vwc31cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dD1cIlNlYXJjaCBmb3IgQ29udGFjdFwiXHJcbiAgICAgICAgICAgICAgICBnZXRTdW1tYXJ5U2VjdGlvbnM9eygpID0+IHN1bW1hcnlTZWN0aW9uc31cclxuICAgICAgICAgICAgICAgIGZpbHRlcnNUb0Rpc3BsYXk9e1tdfVxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAge21hdGNoaW5nQ29udGFjdHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIiA/IChcclxuICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxyXG4gICAgICAgICAgICApIDogbWF0Y2hpbmdDb250YWN0cy5kYXRhLmxlbmd0aCA9PT0gMCA/IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tcmVzdWx0cy1tZXNzYWdlXCI+VGhlcmUgYXJlIG5vIHJlY29yZHMgdG8gZGlzcGxheS48L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJlbnRpdHlsaXN0IGNvbnRhY3RzLXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyQ2VsbHMubWFwKChjZWxsKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlSGVhZGVyQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NlbGwuaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlcj17Y2VsbC5jb2x1bW5IZWFkZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZT17Y2VsbC5maWVsZE5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcldpZHRoPXtjZWxsLmNlbGxXaWR0aH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGluZ1Byb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0aW5nRW5hYmxlZDogY2VsbC5pc1NvcnRhYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGVkQ29sdW1uOiBzb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTb3J0ZWRDb2x1bW46ICgpID0+IHNldFNvcnRlZENvbHVtbihjZWxsLmZpZWxkTmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NvcnRlZEFzY2VuZGluZzogaXNTb3J0ZWRBc2NlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1NvcnRlZEFzY2VuZGluZzogc2V0SXNTb3J0ZWRBc2NlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWF0Y2hpbmdDb250YWN0cy5kYXRhLm1hcCgoY29udGFjdCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb250YWN0LmNvbnRhY3RpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWlkPXtjb250YWN0LmNvbnRhY3RpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWVudGl0eT1cImNvbnRhY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbmFtZT17W2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHgpID0+IHgpLmpvaW4oXCIgXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmdWxsLW5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17W2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlYWRpbmctdGl0bGU9e2dldENvbHVtbkhlYWRlcihcImZpcnN0bmFtZVwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbnRhY3QuZmlyc3RuYW1lICsgY29udGFjdC5sYXN0bmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvPXtgJHtQQUdFUy5FZGl0Q29udGFjdC5wYXRofT9pZD0ke2NvbnRhY3QuY29udGFjdGlkfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtbY29udGFjdC5maXJzdG5hbWUsIGNvbnRhY3QubGFzdG5hbWVdLmZpbHRlcigocykgPT4gcykuam9pbihcIiBcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJqb2ItdGl0bGVcIiBkYXRhLWhlYWRpbmctdGl0bGU9e2dldENvbHVtbkhlYWRlcihcImpvYnRpdGxlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRhY3Quam9idGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiZW1haWwtYWRkcmVzc1wiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiZW1haWxhZGRyZXNzMVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250YWN0LmVtYWlsYWRkcmVzczF9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwidGVsZXBob25lLW51bWJlclwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwidGVsZXBob25lMVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250YWN0LnRlbGVwaG9uZTF9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwibW9iaWxlLW51bWJlclwiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwibW9iaWxlcGhvbmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGFjdC5tb2JpbGVwaG9uZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSBcIi4uL0hlbHBlcnMvRGF0ZUhlbHBlclwiO1xyXG5pbXBvcnQgeyBQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlIH0gZnJvbSBcIi4uL01vZGVscy9Qb3J0YWxNYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuXHJcbi8qIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBNYWpvciBJbmNpZGVudHMgKi9cclxuZXhwb3J0IGNvbnN0IENhc2VzTWFqb3JJbmNpZGVudHM6IFJlYWN0LkZDID0gKCkgPT4ge1xyXG4gICAgY29uc3QgcG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLnBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVzKTtcclxuICAgIGNvbnN0IGluY2lkZW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW5jaWRlbnRzKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgICAgcG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIiB8fFxyXG4gICAgICAgIGluY2lkZW50cy5yZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIiB8fFxyXG4gICAgICAgIGluY2lkZW50cy5hY3RpdmVNYWpvckluY2lkZW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiXHJcbiAgICApIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8QmFzZVBhZ2UgdGl0bGU9XCJNYWpvciBJbmNpZGVudHNcIj5cclxuICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxyXG4gICAgICAgICAgICA8L0Jhc2VQYWdlPlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVsZXZhbnRNYWpvckluY2lkZW50cyA9IGluY2lkZW50cy5hY3RpdmVNYWpvckluY2lkZW50cy5kYXRhLmNvbmNhdChcclxuICAgICAgICBpbmNpZGVudHMucmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzLmRhdGFcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgcG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXNCeVBhcmVudENhc2UgPSBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlcy5kYXRhXHJcbiAgICAgICAgLnJlZHVjZTx7IGluY2lkZW50SWQ6IHN0cmluZzsgY2hpbGRyZW5VcGRhdGVzOiBQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlW10gfVtdPihcclxuICAgICAgICAgICAgKGNhc2VzLCBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ0VudHJ5ID0gY2FzZXMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAoYykgPT4gYy5pbmNpZGVudElkID09PSBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLl9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYXRjaGluZ0VudHJ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZXMgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNhc2VzLmZpbHRlcigoeCkgPT4geC5pbmNpZGVudElkICE9PSBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLl9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2lkZW50SWQ6IHBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGUuX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5VcGRhdGVzOiBbLi4ubWF0Y2hpbmdFbnRyeS5jaGlsZHJlblVwZGF0ZXMsIHBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2VzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNpZGVudElkOiBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLl9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5VcGRhdGVzOiBbcG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FzZXM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgICAvLyBNYXAgdG8gdGhlIE1ham9yIEluY2lkZW50XHJcbiAgICAgICAgLm1hcCgoeyBpbmNpZGVudElkLCBjaGlsZHJlblVwZGF0ZXMgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtYWpvckluY2lkZW50ID0gcmVsZXZhbnRNYWpvckluY2lkZW50cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgKG1ham9ySW5jaWRlbnQpID0+IG1ham9ySW5jaWRlbnQuaW5jaWRlbnRpZCA9PT0gaW5jaWRlbnRJZFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHsgbWFqb3JJbmNpZGVudCwgY2hpbGRyZW5VcGRhdGVzIH07XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLy8gRmlsdGVyIG91dCBQb3J0YWwgTWFqb3IgSW5jaWRlbnQgVXBkYXRlcyBmb3IgaXJyZWxldmFudCBNYWpvciBJbmNpZGVudHNcclxuICAgICAgICAuZmlsdGVyKCh7IG1ham9ySW5jaWRlbnQgfSkgPT4gbWFqb3JJbmNpZGVudClcclxuXHJcbiAgICAgICAgLy8gQXNzZXJ0IHRoYXQgTWFqb3IgSW5jaWRlbnQgaXMgbm8gbG9uZ2VyIHBvc3NpYmx5IHVuZGVmaW5lZFxyXG4gICAgICAgIC5tYXAoKHsgbWFqb3JJbmNpZGVudCwgY2hpbGRyZW5VcGRhdGVzIH0pID0+ICh7IG1ham9ySW5jaWRlbnQ6IG1ham9ySW5jaWRlbnQhLCBjaGlsZHJlblVwZGF0ZXMgfSkpXHJcblxyXG4gICAgICAgIC8vIFNvcnQgdGhlIE1ham9yIEluY2lkZW50cyBieSBkYXRlXHJcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIubWFqb3JJbmNpZGVudCEuY3JlYXRlZG9uLmxvY2FsZUNvbXBhcmUoYS5tYWpvckluY2lkZW50IS5jcmVhdGVkb24pKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCYXNlUGFnZSB0aXRsZT1cIk1ham9yIEluY2lkZW50c1wiPlxyXG4gICAgICAgICAgICB7cG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXNCeVBhcmVudENhc2UubWFwKCh7IG1ham9ySW5jaWRlbnQsIGNoaWxkcmVuVXBkYXRlcyB9KSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1ham9yLWluY2lkZW50XCIgZGF0YS1pbmNpZGVudC1pZD17bWFqb3JJbmNpZGVudC5pbmNpZGVudGlkfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1ham9yLWluY2lkZW50LXVwZGF0ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cIm1ham9yLWluY2lkZW50LXRpdGxlXCI+TWFqb3IgSW5jaWRlbnQge21ham9ySW5jaWRlbnQudGlja2V0bnVtYmVyfTwvaDI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW5VcGRhdGVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5jcmVhdGVkb24ubG9jYWxlQ29tcGFyZShhLmNyZWF0ZWRvbikpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGUuYWN0aXZpdHlpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFqb3ItaW5jaWRlbnQtdXBkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10eXBlPXtnZXRNYWpvckluY2lkZW50VXBkYXRlVHlwZShwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLnN1YmplY3QpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtYWpvci1pbmNpZGVudC11cGRhdGUtaGVhZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17cG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZS5zdWJqZWN0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yZWNvcmQtaWQ9e3BvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGUuYWN0aXZpdHlpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWFqb3ItaW5jaWRlbnQtdXBkYXRlLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGUuc3ViamVjdH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1ham9yLWluY2lkZW50LXVwZGF0ZS1zdGF0dXMtc25hcHNob3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM6IHtwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlLmJpc3RlY2hfY2FzZXN0YXR1c3NuYXBzaG90fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWFqb3ItaW5jaWRlbnQtdXBkYXRlLWNyZWF0ZWQtb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtYWpvci1pbmNpZGVudC11cGRhdGUtY3JlYXRlZC1vbi1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtEYXRlSGVscGVyLnRvRGF0ZU9ubHlTdHJpbmcocG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZS5jcmVhdGVkb24pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtYWpvci1pbmNpZGVudC11cGRhdGUtY3JlYXRlZC1vbi10aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtEYXRlSGVscGVyLnRvVGltZU9ubHlTdHJpbmcocG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZS5jcmVhdGVkb24pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibWFqb3ItaW5jaWRlbnQtdXBkYXRlLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZS5kZXNjcmlwdGlvbn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIE1ham9yIEluY2lkZW50IFVwZGF0ZTsgdXNlZCBmb3Igc3R5bGluZyBwdXJwb3Nlcy5cclxuICAgICAqIEBwYXJhbSBzdWJqZWN0IFRoZSBzdWJqZWN0IG9mIHRoZSBNYWpvciBJbmNpZGVudCBVcGRhdGVcclxuICAgICAqIEByZXR1cm5zIFRoZSB0eXBlIG9mIE1ham9yIEluY2lkZW50IFR5cGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZ2V0TWFqb3JJbmNpZGVudFVwZGF0ZVR5cGUoc3ViamVjdDogc3RyaW5nKSB7XHJcbiAgICAgICAgc3dpdGNoIChzdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJNYWpvciBJbmNpZGVudCBDcmVhdGVkXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJjcmVhdGVkXCI7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiVXBkYXRlXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ1cGRhdGVkXCI7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiTWFqb3IgSW5jaWRlbnQgUmUtT3BlbmVkXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJyZS1vcGVuZWRcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJNYWpvciBJbmNpZGVudCBSZXNvbHZlZFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwicmVzb2x2ZWRcIjtcclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ1cGRhdGVkXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IEJzQXN0ZXJpc2ssIEJzQ2hlY2tMZyB9IGZyb20gXCJyZWFjdC1pY29ucy9ic1wiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4uL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCIuLi9Ub29sdGlwXCI7XHJcblxyXG4vKiogUmFkaW8gQnV0dG9uIEJvb2xlYW4gZmllbGQgKi9cclxuZXhwb3J0IGNvbnN0IFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkOiBSZWFjdC5GQzx7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdG9vbHRpcDogUmVhY3QuUmVhY3ROb2RlO1xyXG4gICAgdmFsdWU6IGJvb2xlYW47XHJcbiAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xyXG4gICAgYWRkaXRpb25hbElucHV0UHJvcHM/OiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5JbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LCBIVE1MSW5wdXRFbGVtZW50PjtcclxuICAgIGFkZGl0aW9uYWxMYWJlbFByb3BzPzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8UmVhY3QuTGFiZWxIVE1MQXR0cmlidXRlczxIVE1MTGFiZWxFbGVtZW50PiwgSFRNTExhYmVsRWxlbWVudD4gJiB7XHJcbiAgICAgICAgW2RhdGFBdHRyaWJ1dGU6IHN0cmluZ106IGFueTtcclxuICAgIH07XHJcbiAgICBjdXN0b21WYWxpZGl0eT86ICh2YWxpZGl0eTogVmFsaWRpdHlTdGF0ZSkgPT4gc3RyaW5nO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgaW5wdXRFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xyXG5cclxuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgY3VzdG9tIHZhbGlkaXR5IHJ1bGVzLlxyXG4gICAgaWYgKHByb3BzLmN1c3RvbVZhbGlkaXR5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpbnB1dEVsZW1lbnRSZWYuY3VycmVudD8uc2V0Q3VzdG9tVmFsaWRpdHkocHJvcHMuY3VzdG9tVmFsaWRpdHkoaW5wdXRFbGVtZW50UmVmLmN1cnJlbnQudmFsaWRpdHkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHRzIGZvciB0aGUgY29udHJvbFxyXG4gICAgY29uc3QgYWRkaXRpb25hbElucHV0UHJvcHM6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxyXG4gICAgICAgIFJlYWN0LklucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4sXHJcbiAgICAgICAgSFRNTElucHV0RWxlbWVudFxyXG4gICAgPiA9IHtcclxuICAgICAgICAuLi5wcm9wcy5hZGRpdGlvbmFsSW5wdXRQcm9wcyxcclxuICAgICAgICByZXF1aXJlZDogcHJvcHMuYWRkaXRpb25hbElucHV0UHJvcHM/LnJlcXVpcmVkID8/IHRydWUsXHJcbiAgICAgICAgYXV0b0NvbXBsZXRlOiBwcm9wcy5hZGRpdGlvbmFsSW5wdXRQcm9wcz8uYXV0b0NvbXBsZXRlID8/IFwib2ZmXCIsXHJcbiAgICAgICAgc3R5bGU6IHsgY3Vyc29yOiBcInBvaW50ZXJcIiB9LFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxsYWJlbCBkYXRhLW5hbWU9e3Byb3BzLm5hbWV9IGNsYXNzTmFtZT1cImZpZWxkIHJhZGlvLWJ1dHRvbi1ib29sZWFuLWZpZWxkXCIgey4uLnByb3BzLmFkZGl0aW9uYWxMYWJlbFByb3BzfT5cclxuICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkLWxhYmVsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICB7YWRkaXRpb25hbElucHV0UHJvcHMucmVxdWlyZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0RWxlbWVudFJlZi5jdXJyZW50Py52YWxpZGl0eS52YWxpZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCc0NoZWNrTGcgY2xhc3NOYW1lPVwiY29tcGxldGVkLWljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJzQXN0ZXJpc2sgY2xhc3NOYW1lPVwicmVxdWlyZWQtaWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy50b29sdGlwICYmIDxUb29sdGlwIG92ZXJsYXlDb250ZW50PXtwcm9wcy50b29sdGlwfT48L1Rvb2x0aXA+fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7aW5wdXRFbGVtZW50UmVmLmN1cnJlbnQ/LnZhbGlkYXRpb25NZXNzYWdlICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2YWxpZGl0eS1tZXNzYWdlXCI+e2lucHV0RWxlbWVudFJlZi5jdXJyZW50Py52YWxpZGF0aW9uTWVzc2FnZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZC1jb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJub1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpZWxkLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17cHJvcHMubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBwcm9wcy5vbkNoYW5nZShmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXshcHJvcHMudmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0RWxlbWVudFJlZn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5hZGRpdGlvbmFsSW5wdXRQcm9wc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTm9cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ5ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ5ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmllbGQtY29udHJvbCByYWRpby1idXR0b24tc3BhY2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtwcm9wcy5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHByb3BzLm9uQ2hhbmdlKHRydWUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dEVsZW1lbnRSZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtwcm9wcy52YWx1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5hZGRpdGlvbmFsSW5wdXRQcm9wc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgWWVzXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgU3RyaW5nRmllbGQgfSBmcm9tIFwiLi9TdHJpbmdGaWVsZFwiO1xyXG5cclxuLyoqIFRlbGVwaG9uZSBmaWVsZCAqL1xyXG5leHBvcnQgY29uc3QgVGVsZXBob25lRmllbGQ6IFJlYWN0LkZDPHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICB0aXRsZT86IHN0cmluZztcclxuICAgIHRvb2x0aXA/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG4gICAgb25DaGFuZ2U6IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gICAgYWRkaXRpb25hbElucHV0UHJvcHM/OiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5JbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LCBIVE1MSW5wdXRFbGVtZW50PjtcclxuICAgIGFkZGl0aW9uYWxMYWJlbFByb3BzPzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8UmVhY3QuTGFiZWxIVE1MQXR0cmlidXRlczxIVE1MTGFiZWxFbGVtZW50PiwgSFRNTExhYmVsRWxlbWVudD4gJiB7XHJcbiAgICAgICAgW2RhdGFBdHRyaWJ1dGU6IHN0cmluZ106IGFueTtcclxuICAgIH07XHJcbiAgICByZXF1aXJlZEdyb3VwPzogYm9vbGVhbjtcclxuICAgIGN1c3RvbVZhbGlkaXR5PzogKHZhbGlkaXR5OiBWYWxpZGl0eVN0YXRlKSA9PiBzdHJpbmc7XHJcbn0+ID0gKHByb3BzKSA9PiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAuLi5wcm9wcy5hZGRpdGlvbmFsSW5wdXRQcm9wcyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwidGVsXCIsXHJcbiAgICAgICAgICAgICAgICBtaW5MZW5ndGg6IDEwLFxyXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAxNixcclxuICAgICAgICAgICAgICAgIHBhdHRlcm46IFwiXlxcXFwrXFxcXGR7OSwxNX18XFxcXGR7MTAsMTZ9JFwiLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHByb3BzLmFkZGl0aW9uYWxJbnB1dFByb3BzPy5wbGFjZWhvbGRlciB8fCBcIlByb3ZpZGUgYSB0ZWxlcGhvbmUgbnVtYmVyXCIsXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkaXR5PXsodmFsaWRpdHkpID0+XHJcbiAgICAgICAgICAgICAgICB2YWxpZGl0eS5wYXR0ZXJuTWlzbWF0Y2hcclxuICAgICAgICAgICAgICAgICAgICA/IFwiUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCB0ZWxlcGhvbmUgbnVtYmVyIChiZXR3ZWVuIDEwIGFuZCAxNiBkaWdpdHMsIHdpdGggYW4gb3B0aW9uYWwgJysnIGF0IHRoZSBzdGFydCkuXCJcclxuICAgICAgICAgICAgICAgICAgICA6IHByb3BzLmN1c3RvbVZhbGlkaXR5Py4odmFsaWRpdHkpIHx8IFwiXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIC8+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IEJzQXN0ZXJpc2sgfSBmcm9tIFwicmVhY3QtaWNvbnMvYnNcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuLi9FcnJvckJvdW5kYXJ5XCI7XHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiLi4vVG9vbHRpcFwiO1xyXG5cclxuLyoqIFBvcHVwIGxpbmsgZmllbGQgKi9cclxuZXhwb3J0IGNvbnN0IFBvcHVwTGlua0ZpZWxkOiBSZWFjdC5GQzx7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgICB0b29sdGlwPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxuICAgIHN1YlRleHQ/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIGFkZGl0aW9uYWxCdXR0b25Qcm9wcz86IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFJlYWN0LkJ1dHRvbkhUTUxBdHRyaWJ1dGVzPEhUTUxCdXR0b25FbGVtZW50PiwgSFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gICAgYWRkaXRpb25hbExhYmVsUHJvcHM/OiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5MYWJlbEhUTUxBdHRyaWJ1dGVzPEhUTUxMYWJlbEVsZW1lbnQ+LCBIVE1MTGFiZWxFbGVtZW50PiAmIHtcclxuICAgICAgICBbZGF0YUF0dHJpYnV0ZTogc3RyaW5nXTogYW55O1xyXG4gICAgfTtcclxuICAgIHJlcXVpcmVkR3JvdXA/OiBib29sZWFuO1xyXG4gICAgY3VzdG9tVmFsaWRpdHk/OiAodmFsaWRpdHk6IFZhbGlkaXR5U3RhdGUpID0+IHN0cmluZztcclxufT4gPSAocHJvcHMpID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgIGRhdGEtbmFtZT17cHJvcHMubmFtZX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmllbGQgcG9wdXAtZmllbGRcIlxyXG4gICAgICAgICAgICB0aXRsZT17cHJvcHMudGl0bGUgfHwgXCJcIn1cclxuICAgICAgICAgICAgey4uLnByb3BzLmFkZGl0aW9uYWxMYWJlbFByb3BzfVxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkLWxhYmVsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMucmVxdWlyZWRHcm91cCAmJiA8QnNBc3RlcmlzayBjbGFzc05hbWU9XCJyZXF1aXJlZC1ncm91cC1pY29uXCIgLz59XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRvb2x0aXAgJiYgPFRvb2x0aXAgb3ZlcmxheUNvbnRlbnQ9e3Byb3BzLnRvb2x0aXB9PjwvVG9vbHRpcD59XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHtwcm9wcy5hZGRpdGlvbmFsQnV0dG9uUHJvcHM/LmRpc2FibGVkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPntwcm9wcy52YWx1ZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpZWxkLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtwcm9wcy5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBwcm9wcy5vbkNsaWNrKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wcy5hZGRpdGlvbmFsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMudmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAge3Byb3BzLnN1YlRleHQgJiYgPHNwYW4gY2xhc3NOYW1lPVwic3VidGV4dFwiPntwcm9wcy5zdWJUZXh0fTwvc3Bhbj59XHJcbiAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgKTtcclxufTtcclxuIiwiZXhwb3J0IGNvbnN0IERpc21pc3NDaXJjbGVSZWd1bGFyID0gKFxyXG4gICAgPHN2Z1xyXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcImRhcmtyZWRcIiB9fVxyXG4gICAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgIGhlaWdodD1cIjE2XCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgID5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTTI0IDRhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDAgMSAwLTQwWm0wIDIuNWExNy41IDE3LjUgMCAxIDAgMCAzNSAxNy41IDE3LjUgMCAwIDAgMC0zNVptLTYuMjIgOS41Mi4xLjFMMjQgMjIuMjNsNi4xMi02LjExYTEuMjUgMS4yNSAwIDAgMSAxLjY2LS4xbC4xLjFjLjQ2LjQ1LjQ5IDEuMTcuMSAxLjY2bC0uMS4xTDI1Ljc3IDI0bDYuMTEgNi4xMmMuNDYuNDUuNDkgMS4xNy4xIDEuNjZsLS4xLjFjLS40NS40Ni0xLjE3LjQ5LTEuNjYuMWwtLjEtLjFMMjQgMjUuNzdsLTYuMTIgNi4xMWMtLjQ1LjQ2LTEuMTcuNDktMS42Ni4xbC0uMS0uMWExLjI1IDEuMjUgMCAwIDEtLjEtMS42NmwuMS0uMUwyMi4yMyAyNGwtNi4xMS02LjEyYTEuMjUgMS4yNSAwIDAgMS0uMS0xLjY2bC4xLS4xYTEuMjUgMS4yNSAwIDAgMSAxLjY2LS4xWlwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgID48L3BhdGg+XHJcbiAgICA8L3N2Zz5cclxuKTtcclxuIiwiZXhwb3J0IGNvbnN0IFBlb3BsZUNvbW11bml0eVJlZ3VsYXIgPSAoXHJcbiAgICA8c3ZnIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMTEuNSAxMWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMCAxLTcgMFpNMTUgNWE2IDYgMCAxIDAgMCAxMiA2IDYgMCAwIDAgMC0xMlptMTQuNSA2YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAwIDEtNyAwWk0zMyA1YTYgNiAwIDEgMCAwIDEyIDYgNiAwIDAgMCAwLTEyWk00IDIyLjQ1QzQgMjAuNTUgNS41NCAxOSA3LjQ1IDE5aDkuNjJjLS40NC43Ni0uNzYgMS42LS45MyAyLjVoLTguN2EuOTUuOTUgMCAwIDAtLjk0Ljk1di40M2MwIC4yNyAwIDEuOTMgMS4wMiAzLjUuOSAxLjM5IDIuNzIgMi45MiA2LjY4IDMuMWE1LjQ3IDUuNDcgMCAwIDAtMi40NiAyLjIyYy0zLjIyLS42My01LjE4LTIuMi02LjMyLTMuOTZBOS4xOCA5LjE4IDAgMCAxIDQgMjIuODh2LS40M1ptMjkuOCA3LjAzYTUuNDcgNS40NyAwIDAgMSAyLjQ2IDIuMjJjMy4yMi0uNjMgNS4xOC0yLjIgNi4zMi0zLjk2QzQ0IDI1LjU0IDQ0IDIzLjI3IDQ0IDIyLjg4di0uNDNjMC0xLjktMS41NC0zLjQ1LTMuNDUtMy40NWgtOS42MmMuNDQuNzYuNzYgMS42LjkzIDIuNWg4LjdjLjUyIDAgLjk0LjQyLjk0Ljk1di40M2MwIC4yNyAwIDEuOTMtMS4wMiAzLjUtLjkgMS4zOS0yLjcyIDIuOTItNi42OCAzLjFaTTI0IDE5LjVhMy41IDMuNSAwIDEgMCAwIDcgMy41IDMuNSAwIDAgMCAwLTdaTTE4IDIzYTYgNiAwIDEgMSAxMiAwIDYgNiAwIDAgMS0xMiAwWm0tNSAxMS40NWMwLTEuOSAxLjU0LTMuNDUgMy40NS0zLjQ1aDE1LjFjMS45IDAgMy40NSAxLjU0IDMuNDUgMy40NXYuNDNjMCAuNCAwIDIuNjYtMS40MiA0Ljg2QzMyLjEgNDIuMDQgMjkuMjMgNDQgMjQgNDRzLTguMS0xLjk3LTkuNTgtNC4yNkMxMyAzNy41NCAxMyAzNS4yNyAxMyAzNC44OHYtLjQzWm0zLjQ1LS45NWEuOTUuOTUgMCAwIDAtLjk1Ljk1di40MmMwIC4yOCAwIDEuOTQgMS4wMiAzLjUxLjk1IDEuNDggMi45NiAzLjEyIDcuNDggMy4xMiA0LjUyIDAgNi41My0xLjY0IDcuNDgtMy4xMmE2LjY4IDYuNjggMCAwIDAgMS4wMi0zLjV2LS40M2EuOTUuOTUgMCAwIDAtLjk1LS45NWgtMTUuMVpcIlxyXG4gICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICA+PC9wYXRoPlxyXG4gICAgPC9zdmc+XHJcbik7XHJcbiIsImV4cG9ydCBjb25zdCBQZXJzb25SZWd1bGFyID0gKFxyXG4gICAgPHN2ZyBmaWxsPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCA0OCA0OFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTTI0IDRhMTAgMTAgMCAxIDAgMCAyMCAxMCAxMCAwIDAgMCAwLTIwWm0tNy41IDEwYTcuNSA3LjUgMCAxIDEgMTUgMCA3LjUgNy41IDAgMCAxLTE1IDBabS00LjI1IDE0QTQuMjUgNC4yNSAwIDAgMCA4IDMyLjI1VjMzYzAgMy43NiAxLjk0IDYuNTcgNC45MiA4LjM4QzE1Ljg1IDQzLjE2IDE5Ljc5IDQ0IDI0IDQ0czguMTUtLjg0IDExLjA4LTIuNjJDMzguMDYgMzkuNTcgNDAgMzYuNzYgNDAgMzN2LS43NUM0MCAyOS45IDM4LjEgMjggMzUuNzUgMjhoLTIzLjVabS0xLjc1IDQuMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVoMjMuNWMuOTcgMCAxLjc1Ljc4IDEuNzUgMS43NVYzM2MwIDIuNzQtMS4zNiA0LjgtMy43MiA2LjI0LTIuNDEgMS40Ny01Ljg1IDIuMjYtOS43OCAyLjI2LTMuOTMgMC03LjM3LS43OS05Ljc4LTIuMjYtMi4zNi0xLjQzLTMuNzItMy41LTMuNzItNi4yNHYtLjc1WlwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgID48L3BhdGg+XHJcbiAgICA8L3N2Zz5cclxuKTtcclxuIiwiaW1wb3J0IHsgVG9wTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnlJbmZvIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvVG9wTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnlcIjtcclxuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBDb250YWN0UGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgRGlzbWlzc0NpcmNsZVJlZ3VsYXIgfSBmcm9tIFwiLi4vLi9JY29ucy9EaXNtaXNzQ2lyY2xlUmVndWxhclwiO1xyXG5pbXBvcnQgeyBQZW9wbGVDb21tdW5pdHlSZWd1bGFyIH0gZnJvbSBcIi4uLy4vSWNvbnMvUGVvcGxlQ29tbXVuaXR5UmVndWxhclwiO1xyXG5pbXBvcnQgeyBQZXJzb25SZWd1bGFyIH0gZnJvbSBcIi4uLy4vSWNvbnMvUGVyc29uUmVndWxhclwiO1xyXG5pbXBvcnQgeyBpc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9FbnZpcm9ubWVudEJhbm5lclwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vLyBQZXJtaXNzaW9ucyB0byByZW5kZXJcclxuZXhwb3J0IGNvbnN0IFBFUk1JU1NJT05TOiBUb3BMZXZlbFBlcm1pc3Npb25DYXRlZ29yeUluZm9bXSA9IFtcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogXCJObyBBY2Nlc3NcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJObyBhY2Nlc3MgdG8gYW55IGZlYXR1cmVzIG9mIHRoZSBQb3J0YWxcIixcclxuICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWxcIixcclxuICAgICAgICB2YWx1ZTogQmFzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICBhZGRpdGlvbmFsRmllbGRzOiB7XHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbDogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsOiBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsOiBPcmRlclBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgbGFiZWw6IFwiQWRtaW5pc3RyYXRvclwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkFjY2VzcyB0byBhbGwgZmVhdHVyZXMgb2YgdGhlIFBvcnRhbFwiLFxyXG4gICAgICAgIGZpZWxkTmFtZTogXCJiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgIHZhbHVlOiBCYXNlUGVybWlzc2lvbkxldmVsLkFkbWluaXN0cmF0b3IsXHJcbiAgICAgICAgYWRkaXRpb25hbEZpZWxkczoge1xyXG4gICAgICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ2FzZXNcIl0sXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDogQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBDb250YWN0c1wiXSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgT3JkZXJzXCJdLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3BvcnRhbHByb2plY3RwZXJtaXNzaW9ubGV2ZWw6IFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgUHJvamVjdHNcIl0sXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbDogSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBJbnZvaWNlc1wiXSxcclxuICAgICAgICB9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBsYWJlbDogXCJDdXN0b21cIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWxcIixcclxuICAgICAgICB2YWx1ZTogQmFzZVBlcm1pc3Npb25MZXZlbC5DdXN0b20sXHJcbiAgICAgICAgYWRkaXRpb25hbEZpZWxkczoge1xyXG4gICAgICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDogQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsOiBJbnZvaWNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3ViQ2F0ZWdvcmllczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDYXNlc1wiLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJObyBBY2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTm8gYWNjZXNzIHRvIGFueSBDYXNlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBEaXNtaXNzQ2lyY2xlUmVndWxhcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBcImJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQ2FzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiT3duZWQgQ2FzZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWNjZXNzIHRvIENhc2VzIHdoZXJlIEkgYW0gdGhlIFByaW1hcnkgQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBQZXJzb25SZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBDYXNlUGVybWlzc2lvbkxldmVsW1wiT3duZWQgQ2FzZXNcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsbCBDYXNlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBY2Nlc3MgdG8gYWxsIENhc2VzIGZvciBteSBjb21wYW55XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IFBlb3BsZUNvbW11bml0eVJlZ3VsYXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWxcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ2FzZXNcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbnRhY3RzXCIsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICAgICAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5vIEFjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJObyBhY2Nlc3MgdG8gYW55IENvbnRhY3RzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IERpc21pc3NDaXJjbGVSZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJBbGwgQ29udGFjdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWNjZXNzIHRvIGFsbCBDb250YWN0cyBmb3IgbXkgY29tcGFueVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBQZW9wbGVDb21tdW5pdHlSZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIENvbnRhY3RzXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJPcmRlcnNcIixcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG5cclxuICAgICAgICAgICAgICAgIC8vIFRPRE8gIzM0Nzk3OiBFbmFibGUgT3JkZXItcmVsYXRlZCBwZXJtaXNzaW9ucyBvbiBhbGwgZW52aXJvbm1lbnRzIG9uY2UgT3JkZXJzIGNhbiBiZSBzaG93biBvbiB0aGUgUG9ydGFsXHJcbiAgICAgICAgICAgICAgICBpc1Zpc2libGU6ICFpc1Byb2R1Y3Rpb24sXHJcblxyXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTm8gQWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk5vIGFjY2VzcyB0byBhbnkgT3JkZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IERpc21pc3NDaXJjbGVSZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk93bmVkIE9yZGVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBY2Nlc3MgdG8gT3JkZXJzIHdoZXJlIEkgYW0gdGhlIFByaW1hcnkgQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBQZXJzb25SZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJPd25lZCBPcmRlcnNcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsbCBPcmRlcnNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWNjZXNzIHRvIGFsbCBPcmRlcnMgZm9yIG15IGNvbXBhbnlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogUGVvcGxlQ29tbXVuaXR5UmVndWxhcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBcImJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWxcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiQWxsIE9yZGVyc1wiXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiUHJvamVjdHNcIixcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG5cclxuICAgICAgICAgICAgICAgIC8vIFRPRE8gIzM2MDc0OiBFbmFibGUgUHJvamVjdC1yZWxhdGVkIHBlcm1pc3Npb25zIG9uIGFsbCBlbnZpcm9ubWVudHMgb25jZSBQcm9qZWN0cyBjYW4gYmUgc2hvd24gb24gdGhlIFBvcnRhbFxyXG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlOiAhaXNQcm9kdWN0aW9uLFxyXG5cclxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5vIEFjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJObyBhY2Nlc3MgdG8gYW55IFByb2plY3RzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IERpc21pc3NDaXJjbGVSZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJBbGwgUHJvamVjdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWNjZXNzIHRvIGFsbCBQcm9qZWN0cyBmb3IgbXkgY29tcGFueVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBQZW9wbGVDb21tdW5pdHlSZWd1bGFyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIFByb2plY3RzXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJJbnZvaWNlc1wiLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJObyBBY2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTm8gYWNjZXNzIHRvIGFueSBJbnZvaWNlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBEaXNtaXNzQ2lyY2xlUmVndWxhcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBcImJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQWxsIEludm9pY2VzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFjY2VzcyB0byBhbGwgSW52b2ljZXMgZm9yIG15IGNvbXBhbnlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogUGVvcGxlQ29tbXVuaXR5UmVndWxhcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBcImJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBJbnZvaWNlc1wiXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgfSxcclxuXTtcclxuIiwiaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFRvcExldmVsUGVybWlzc2lvbkNhdGVnb3J5SW5mbyB9IGZyb20gXCIuL1RvcExldmVsUGVybWlzc2lvbkNhdGVnb3J5XCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZSB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlXCI7XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIFBlcm1pc3Npb24gTGV2ZWwgc3BlY2lmaWMgdG8gYW4gRW50aXR5IChpLmUuIENhc2VzLCBPcmRlcnMsIENvbnRhY3RzIGV0Yy4gKi9cclxuZXhwb3J0IHR5cGUgU3ViTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnlJbmZvID0ge1xyXG4gICAgLyoqIFVzZXItZmFjaW5nIG5hbWUgKi9cclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFVzZXItZmFjaW5nIGRlc2NyaXB0aW9uICovXHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSBjYXRlZ29yeSBzaG91bGQgYmUgdmlzaWJsZSAqL1xyXG4gICAgaXNWaXNpYmxlOiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBTZWxlY3RhYmxlIG9wdGlvbnMgZm9yIHRoaXMgUGVybWlzc2lvbiBMZXZlbCAoZS5nLiAnTm8gQWNjZXNzJywgJ093bmVkJywgJ0FsbCcgZXRjLikgKi9cclxuICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAvKiogVXNlci1mYWNpbmcgbmFtZSAqL1xyXG4gICAgICAgIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gICAgICAgIC8qKiBVc2VyLWZhY2luZyBkZXNjcmlwdGlvbiAqL1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgICAgIC8qKiBJY29uIGZvciB0aGUgb3B0aW9uICovXHJcbiAgICAgICAgaWNvbjogSlNYLkVsZW1lbnQ7XHJcblxyXG4gICAgICAgIC8qKiBOYW1lIG9mIHRoZSBmaWVsZCB0aGlzIG9wdGlvbiBzaG91bGQgdXBkYXRlICovXHJcbiAgICAgICAgZmllbGROYW1lOiBrZXlvZiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU7XHJcblxyXG4gICAgICAgIC8qKiBWYWx1ZSBvZiB0aGUgZmllbGQgdGhpcyBvcHRpb24gcmVwcmVzZW50cywgZm9yIHVzZSBpbiBrbm93aW5nIHdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCAqL1xyXG4gICAgICAgIHZhbHVlOiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGVba2V5b2YgQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlXTtcclxuICAgIH1bXTtcclxufTtcclxuXHJcbi8qKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIGEgUGVybWlzc2lvbiBMZXZlbCBzcGVjaWZpYyB0byBhbiBFbnRpdHkgKGkuZS4gQ2FzZXMsIE9yZGVycywgQ29udGFjdHMgZXRjLiAqL1xyXG5leHBvcnQgY29uc3QgU3ViTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnk6IFJlYWN0LkZDPHtcclxuICAgIHN1YkNhdGVnb3J5OiBTdWJMZXZlbFBlcm1pc3Npb25DYXRlZ29yeUluZm87XHJcbiAgICBwZXJtaXNzaW9uOiBUb3BMZXZlbFBlcm1pc3Npb25DYXRlZ29yeUluZm87XHJcbiAgICBjb250YWN0OiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU7XHJcbiAgICBvblVwZGF0ZUNvbnRhY3Q6ICh1cGRhdGVkQ29udGFjdDogUGFydGlhbDxDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU+KSA9PiB2b2lkO1xyXG4gICAgaW5kZXg6IG51bWJlcjtcclxufT4gPSAocHJvcHMpID0+IHtcclxuICAgIC8vIERldGVybWluZSBpZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkIChpLmUuIHRoZSB1c2VyIGhhcyBzZWxlY3RlZCB0aGUgcGFyZW50ICd0b3AtbGV2ZWwnIG9wdGlvbilcclxuICAgIGNvbnN0IGlzRW5hYmxlZCA9XHJcbiAgICAgICAgcHJvcHMuY29udGFjdFtwcm9wcy5wZXJtaXNzaW9uLmZpZWxkTmFtZSBhcyBrZXlvZiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGVdID09PSBwcm9wcy5wZXJtaXNzaW9uLnZhbHVlO1xyXG5cclxuICAgIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWItY2F0ZWdvcnlcIiByZWY9e3JlZn0+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGl0bGVcIj57cHJvcHMuc3ViQ2F0ZWdvcnkubGFiZWx9PC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+e3Byb3BzLnN1YkNhdGVnb3J5LmRlc2NyaXB0aW9ufTwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5zdWJDYXRlZ29yeS5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9eyFpc0VuYWJsZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb250YWN0W29wdGlvbi5maWVsZE5hbWUgYXMga2V5b2YgQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlXSA9PT0gb3B0aW9uLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJhZGlvLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29udGFjdFtvcHRpb24uZmllbGROYW1lIGFzIGtleW9mIENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZV0gPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gcHJvcHMub25VcGRhdGVDb250YWN0KHsgW29wdGlvbi5maWVsZE5hbWVdOiBvcHRpb24udmFsdWUgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17cHJvcHMuc3ViQ2F0ZWdvcnkubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc0VuYWJsZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uXCI+e29wdGlvbi5pY29ufTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzTmFtZT1cInRpdGxlXCI+e29wdGlvbi5sYWJlbH08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+e29wdGlvbi5kZXNjcmlwdGlvbn08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IFN1YkxldmVsUGVybWlzc2lvbkNhdGVnb3J5LCBTdWJMZXZlbFBlcm1pc3Npb25DYXRlZ29yeUluZm8gfSBmcm9tIFwiLi9TdWJMZXZlbFBlcm1pc3Npb25DYXRlZ29yeVwiO1xyXG5pbXBvcnQgeyBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGUgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZVwiO1xyXG5cclxuLyoqIFJlcHJlc2VudHMgYSAndG9wLWxldmVsJyBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbCAoaS5lLiAnTm8gQWNjZXNzJywgJ0FkbWluaXN0cmF0b3InIG9yICdDdXN0b20nICovXHJcbmV4cG9ydCB0eXBlIFRvcExldmVsUGVybWlzc2lvbkNhdGVnb3J5SW5mbyA9IHtcclxuICAgIC8qKiBVc2VyLWZhY2luZyBuYW1lICovXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBVc2VyLWZhY2luZyBkZXNjcmlwdGlvbiAqL1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuXHJcbiAgICAvKiogTmFtZSBvZiB0aGUgZmllbGQgdGhpcyBvcHRpb24gc2hvdWxkIHVwZGF0ZSAqL1xyXG4gICAgZmllbGROYW1lOiBrZXlvZiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU7XHJcblxyXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBmaWVsZCB0aGlzIG9wdGlvbiByZXByZXNlbnRzLCBmb3IgdXNlIGluIGtub3dpbmcgd2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkICovXHJcbiAgICB2YWx1ZTogQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlW2tleW9mIENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZV07XHJcblxyXG4gICAgLyoqIEFkZGl0aW9uYWwgZmllbGRzIG9uIHRoZSBDb250YWN0IHdoaWNoIHNob3VsZCBiZSB1cGRhdGVkIGFsb25nc2lkZSB0aGlzIGZpZWxkICovXHJcbiAgICBhZGRpdGlvbmFsRmllbGRzOiBQYXJ0aWFsPENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZT47XHJcblxyXG4gICAgLyoqIEN1c3RvbWlzYWJsZSBzdWIgb3B0aW9ucyBmb3IgdGhpcyBwZXJtaXNzaW9uIGxldmVsLCBpZiBhcHBsaWNhYmxlICovXHJcbiAgICBzdWJDYXRlZ29yaWVzPzogU3ViTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnlJbmZvW107XHJcbn07XHJcblxyXG4vKiogQ29tcG9uZW50IHJlcHJlc2VudGluZyBhICd0b3AtbGV2ZWwnIGJpc3RlY2hfcGVybWlzc2lvbmxldmVsIChpLmUuICdObyBBY2Nlc3MnLCAnQWRtaW5pc3RyYXRvcicgb3IgJ0N1c3RvbScgKi9cclxuZXhwb3J0IGNvbnN0IFRvcExldmVsUGVybWlzc2lvbkNhdGVnb3J5OiBSZWFjdC5GQzx7XHJcbiAgICBwZXJtaXNzaW9uOiBUb3BMZXZlbFBlcm1pc3Npb25DYXRlZ29yeUluZm87XHJcbiAgICBjb250YWN0OiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU7XHJcbiAgICBvblVwZGF0ZUNvbnRhY3Q6ICh1cGRhdGVkQ29udGFjdDogUGFydGlhbDxDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU+KSA9PiB2b2lkO1xyXG4gICAgaW5kZXg6IG51bWJlcjtcclxufT4gPSAocHJvcHMpID0+IHtcclxuICAgIC8vIEhhbmRsZXIgZm9yIGNoYW5nZSBvZiB0aGlzIHBlcm1pc3Npb24gbGV2ZWxcclxuICAgIGNvbnN0IG9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgIHByb3BzLm9uVXBkYXRlQ29udGFjdCh7XHJcbiAgICAgICAgICAgIFtwcm9wcy5wZXJtaXNzaW9uLmZpZWxkTmFtZV06IHByb3BzLnBlcm1pc3Npb24udmFsdWUsXHJcbiAgICAgICAgICAgIC4uLnByb3BzLnBlcm1pc3Npb24uYWRkaXRpb25hbEZpZWxkcyxcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvcC1sZXZlbC1wZXJtaXNzaW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbnRhY3RbcHJvcHMucGVybWlzc2lvbi5maWVsZE5hbWUgYXMga2V5b2YgQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlXSA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucGVybWlzc2lvbi52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmFkaW8tYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb250YWN0W3Byb3BzLnBlcm1pc3Npb24uZmllbGROYW1lIGFzIGtleW9mIENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZV0gPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5wZXJtaXNzaW9uLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9wLWxldmVsLXBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0aXRsZVwiPntwcm9wcy5wZXJtaXNzaW9uLmxhYmVsfTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+e3Byb3BzLnBlcm1pc3Npb24uZGVzY3JpcHRpb259PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIHsocHJvcHMucGVybWlzc2lvbi5zdWJDYXRlZ29yaWVzPy5sZW5ndGggPz8gMCkgPiAwICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1Yi1jYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5wZXJtaXNzaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3ViQ2F0ZWdvcmllcyEuZmlsdGVyKChzdWJDYXRlZ29yeSkgPT4gc3ViQ2F0ZWdvcnkuaXNWaXNpYmxlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoc3ViQ2F0ZWdvcnksIGkpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3ViTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViQ2F0ZWdvcnk9e3N1YkNhdGVnb3J5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uPXtwcm9wcy5wZXJtaXNzaW9ufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdD17cHJvcHMuY29udGFjdH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25VcGRhdGVDb250YWN0PXtwcm9wcy5vblVwZGF0ZUNvbnRhY3R9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC8+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBJbVNwaW5uZXIyIH0gZnJvbSBcInJlYWN0LWljb25zL2ltXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uL1R5cGVzL0J1dHRvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IFN1Ym1pc3Npb25TdGF0ZSB9IGZyb20gXCIuLi9UeXBlcy9TdWJtaXNzaW9uU3RhdGVcIjtcclxuXHJcbi8qKiBBIGNvbXBvbmVudCB0aGF0IHJlbmRlcnMgYSBNb2RhbCBEaWFsb2cuICovXHJcbmV4cG9ydCBjb25zdCBNb2RhbDogUmVhY3QuRkM8e1xyXG4gICAgYnV0dG9uSW5mbzogQnV0dG9uSW5mb3JtYXRpb247XHJcbiAgICBpc01vZGFsU2hvd246IGJvb2xlYW47XHJcbiAgICBzZXRJc01vZGFsU2hvd246IChpc1Nob3duOiBib29sZWFuKSA9PiB2b2lkO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgeyB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcbiAgICBjb25zdCBbc2hvdWxkU2hvd1NwaW5uZXIsIHNldFNob3VsZFNob3dTcGlubmVyXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgICAvLyBQcm9ncmVzcyBvZiB0aGUgdXBkYXRlLlxyXG4gICAgY29uc3QgW21vZGFsU3VibWlzc2lvblN0YXRlLCBzZXRNb2RhbFN1Ym1pc3Npb25TdGF0ZV0gPSB1c2VTdGF0ZTxTdWJtaXNzaW9uU3RhdGU+KHtcclxuICAgICAgICBzdGF0ZTogXCJpZGxlXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoIXByb3BzLmJ1dHRvbkluZm8uaGFzTW9kYWwpIHtcclxuICAgICAgICByZXR1cm4gPD48Lz47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEEgZnVuY3Rpb24gdGhhdCByZXNldHMgdGhlIG1vZGFsIHN0YXRlIGFuZCBjbG9zZXMgdGhlIG1vZGFsLiAqL1xyXG4gICAgZnVuY3Rpb24gb25DbG9zZU1vZGFsKCkge1xyXG4gICAgICAgIC8vIFJlc2V0IHRoZSBNb2RhbCBTdWJtaXNzaW9uIFN0YXRlLlxyXG4gICAgICAgIHNldE1vZGFsU3VibWlzc2lvblN0YXRlKHtcclxuICAgICAgICAgICAgc3RhdGU6IFwiaWRsZVwiLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBwcm9wcy5zZXRJc01vZGFsU2hvd24oZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IHJ1bnMgb24gY2xpY2sgb2YgdGhlIHNhdmUgYnV0dG9uIG9uIHRoZSBtb2RhbCwgYXMgZGVmaW5lZCBpbiB0aGUgcGFyZW50IGNvbXBvbmVudCAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25DbGljaygpIHtcclxuICAgICAgICBzZXRTaG91bGRTaG93U3Bpbm5lcih0cnVlKTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKCFwcm9wcy5idXR0b25JbmZvLmhhc01vZGFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCB0aGUgYGhhc01vZGFsYCB0byBiZSAndHJ1ZScuXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocHJvcHMuYnV0dG9uSW5mby5tb2RhbEluZm8uaXNFcnJvck1vZGFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCB0aGUgYGlzRXJyb3JNb2RhbGAgdG8gYmUgJ2ZhbHNlJy5cIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGF3YWl0IHByb3BzLmJ1dHRvbkluZm8ubW9kYWxJbmZvLm9uQ2xpY2soKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBzZXRNb2RhbFN1Ym1pc3Npb25TdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzdGF0ZTogXCJlcnJvcmVkXCIsXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgYXMgRXJyb3IsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgc2V0U2hvdWxkU2hvd1NwaW5uZXIoZmFsc2UpO1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRTaG91bGRTaG93U3Bpbm5lcihmYWxzZSk7XHJcbiAgICAgICAgcHJvcHMuc2V0SXNNb2RhbFNob3duKCFwcm9wcy5pc01vZGFsU2hvd24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgICAge3Byb3BzLmlzTW9kYWxTaG93biAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1kaWFsb2dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPntwcm9wcy5idXR0b25JbmZvLm1vZGFsSW5mby5tb2RhbFRpdGxlfTwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnV0dG9uIGRlZmF1bHQgbW9kYWwtY2xvc2VcIiBvbkNsaWNrPXtvbkNsb3NlTW9kYWx9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+eDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuYnV0dG9uSW5mby5tb2RhbEluZm8ubW9kYWxDb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bW9kYWxTdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiZXJyb3JlZFwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UaGUge3Byb3BzLmJ1dHRvbkluZm8ubGFiZWx9IGFjdGlvbiBoYXMgZmFpbGVkPC9zdHJvbmc+OntcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bW9kYWxTdWJtaXNzaW9uU3RhdGUuZXJyb3IubWVzc2FnZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IXByb3BzLmJ1dHRvbkluZm8ubW9kYWxJbmZvLmlzRXJyb3JNb2RhbCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0dG9uIG1vZGFsLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmJ1dHRvbkluZm8uZGlzYWJsZWQgfHwgbW9kYWxTdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiZXJyb3JlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93U3Bpbm5lciA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbVNwaW5uZXIyIGNsYXNzTmFtZT1cInNwaW5cIiAvPiBTdWJtaXR0aW5nLi4uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiBtb2RhbFN1Ym1pc3Npb25TdGF0ZS5zdGF0ZSA9PT0gXCJlcnJvcmVkXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VW5zdWNjZXNzZnVsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuYnV0dG9uSW5mby5tb2RhbEluZm8ubW9kYWxCdXR0b25MYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidXR0b24gZGVmYXVsdFwiIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkNsb3NlTW9kYWx9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZSB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlXCI7XHJcbmltcG9ydCB7IFBFUk1JU1NJT05TIH0gZnJvbSBcIi4uL0RhdGEvUGVybWlzc2lvbnNcIjtcclxuaW1wb3J0IHsgVG9wTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnkgfSBmcm9tIFwiLi9Ub3BMZXZlbFBlcm1pc3Npb25DYXRlZ29yeVwiO1xyXG5pbXBvcnQgeyBCYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0Jhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBPcmRlclBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcbmltcG9ydCB7IEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvSW52b2ljZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0UGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RQZXJtaXNzaW9uTGV2ZWxcIjtcclxuXHJcbi8qKiBQZXJtaXNzaW9uIFBhbmVsIGZvciBzZWxlY3RpbmcgcGVybWlzc2lvbnMgZm9yIGEgQ29udGFjdC4gKi9cclxuZXhwb3J0IGNvbnN0IFBlcm1pc3Npb25zUGFuZWw6IFJlYWN0LkZDPHtcclxuICAgIGNsb3NlUG9wdXA6ICgpID0+IHZvaWQ7XHJcbiAgICBzdWJtaXRMYWJlbDogc3RyaW5nO1xyXG4gICAgY29udGFjdDogQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlO1xyXG4gICAgb25TYXZlOiAoY29udGFjdDogQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlKSA9PiB2b2lkO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgLy8gTG9jYWwgc3RhdGUgdG8gdXNlIGZvciB0aGUgVUkgQ29tcG9uZW50IG9mIHRoZSBNb2RhbCBmb3IgcGVybWlzc2lvbnMgc2VsZWN0aW5nIGJlZm9yZSBwdXNoaW5nIGJhY2sgdG8gdGhlIHBhcmVudCBjb21wb25lbnQuXHJcbiAgICBjb25zdCBbY29udGFjdCwgc2V0Q29udGFjdF0gPSB1c2VTdGF0ZTxDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGU+KHtcclxuICAgICAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbDogcHJvcHMuY29udGFjdC5iaXN0ZWNoX3Blcm1pc3Npb25sZXZlbCA/PyBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG5cclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6XHJcbiAgICAgICAgICAgIHByb3BzLmNvbnRhY3QuYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsID8/IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcblxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDpcclxuICAgICAgICAgICAgcHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWwgPz8gQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDpcclxuICAgICAgICAgICAgcHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsID8/IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG5cclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbHByb2plY3RwZXJtaXNzaW9ubGV2ZWw6XHJcbiAgICAgICAgICAgIHByb3BzLmNvbnRhY3QuYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsID8/IFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcblxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsaW52b2ljZXBlcm1pc3Npb25sZXZlbDpcclxuICAgICAgICAgICAgcHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWwgPz8gSW52b2ljZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBcIk9rXCIgYnV0dG9uIG9uIHRoZSBtb2RhbCwgd2Ugd2FudCB0byBwdXNoIHRoZSB1cGRhdGVkIGNvbnRhY3QgYmFjayB0byB0aGUgcGFyZW50IGNvbXBvbmVudCBhbmQgY2xvc2UgdGhlIE1vZGFsLlxyXG4gICAgY29uc3Qgb25DbGljayA9IChjb250YWN0OiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGUpID0+IHtcclxuICAgICAgICBwcm9wcy5vblNhdmUoY29udGFjdCk7XHJcbiAgICAgICAgcHJvcHMuY2xvc2VQb3B1cCgpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxNb2RhbFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uSW5mbz17e1xyXG4gICAgICAgICAgICAgICAgICAgIGhhc01vZGFsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlBlcm1pc3Npb24gTGV2ZWxcIiwgXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRXJyb3JNb2RhbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IHByb3BzLnN1Ym1pdExhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RhbENvbnRlbnQ6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicG9wdXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1BFUk1JU1NJT05TLm1hcCgocGVybWlzc2lvbiwgaSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9wTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb249e3Blcm1pc3Npb259XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3Q9e2NvbnRhY3R9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUNvbnRhY3Q9eyhjb250YWN0VG9VcGRhdGUpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIC4uLmNvbnRhY3RUb1VwZGF0ZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsVGl0bGU6IFwiRWRpdCBQZXJtaXNzaW9uIExldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGFzeW5jICgpID0+IG9uQ2xpY2soY29udGFjdCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBpc01vZGFsU2hvd249e3RydWV9XHJcbiAgICAgICAgICAgICAgICBzZXRJc01vZGFsU2hvd249eyhpc1Nob3duKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Nob3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNsb3NlUG9wdXAoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JQZXJtaXNzaW9uc1VwZGF0ZSB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclBlcm1pc3Npb25zVXBkYXRlXCI7XHJcbmltcG9ydCB7IGlzUHJvZHVjdGlvbiB9IGZyb20gXCIuL0Vudmlyb25tZW50QmFubmVyXCI7XHJcblxyXG4vKiogU3VtbWFyaWVzIHRoZSBQZXJtaXNzaW9uIExldmVscyBvZiB0aGUgQ29udGFjdCAqL1xyXG5leHBvcnQgY29uc3QgUGVybWlzc2lvbkxldmVsU3VtbWFyeTogUmVhY3QuRkM8eyBjb250YWN0OiBDb250YWN0Rm9yUGVybWlzc2lvbnNVcGRhdGUgfT4gPSAocHJvcHMpID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPHVsIGNsYXNzTmFtZT1cInBlcm1pc3Npb24tbGV2ZWwtbGlzdFwiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiY2FzZS1wZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9XCJwZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbS1uYW1lXCI+Q2FzZXM8L3N0cm9uZz46e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGVybWlzc2lvbi1sZXZlbC1saXN0LWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBDYXNlUGVybWlzc2lvbkxldmVsW3Byb3BzLmNvbnRhY3QuYmlzdGVjaF9wb3J0YWxjYXNlcGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiTm9uZVwifVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiY29udGFjdC1wZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9XCJwZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbS1uYW1lXCI+Q29udGFjdHM8L3N0cm9uZz46e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGVybWlzc2lvbi1sZXZlbC1saXN0LWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbGNvbnRhY3RwZXJtaXNzaW9ubGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBDb250YWN0UGVybWlzc2lvbkxldmVsW3Byb3BzLmNvbnRhY3QuYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiTm9uZVwifVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICB7LyogVE9ETyAjMzQ3OTc6IFJlbW92ZSBiZWxvdyBmbGFnIG9uY2UgT3JkZXJzIGNhbiBiZSBzaG93biBvbiB0aGUgUG9ydGFsICovfVxyXG4gICAgICAgICAgICB7IWlzUHJvZHVjdGlvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwib3JkZXItcGVybWlzc2lvbi1sZXZlbC1saXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT1cInBlcm1pc3Npb24tbGV2ZWwtbGlzdC1pdGVtLW5hbWVcIj5PcmRlcnM8L3N0cm9uZz46e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBlcm1pc3Npb24tbGV2ZWwtbGlzdC1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jb250YWN0LmJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gT3JkZXJQZXJtaXNzaW9uTGV2ZWxbcHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk5vbmVcIn1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICB7LyogVE9ETyAjMzYwNzQ6IFJlbW92ZSBiZWxvdyBmbGFnIG9uY2UgUHJvamVjdHMgY2FuIGJlIHNob3duIG9uIHRoZSBQb3J0YWwgKi99XHJcbiAgICAgICAgICAgIHshaXNQcm9kdWN0aW9uICYmIChcclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJwcm9qZWN0LXBlcm1pc3Npb24tbGV2ZWwtbGlzdC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9XCJwZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbS1uYW1lXCI+UHJvamVjdHM8L3N0cm9uZz46e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBlcm1pc3Npb24tbGV2ZWwtbGlzdC1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jb250YWN0LmJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBQcm9qZWN0UGVybWlzc2lvbkxldmVsW3Byb3BzLmNvbnRhY3QuYmlzdGVjaF9wb3J0YWxwcm9qZWN0cGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk5vbmVcIn1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiaW52b2ljZS1wZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9XCJwZXJtaXNzaW9uLWxldmVsLWxpc3QtaXRlbS1uYW1lXCI+SW52b2ljZXM8L3N0cm9uZz46e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGVybWlzc2lvbi1sZXZlbC1saXN0LWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29udGFjdC5iaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBJbnZvaWNlUGVybWlzc2lvbkxldmVsW3Byb3BzLmNvbnRhY3QuYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiTm9uZVwifVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICApO1xyXG59OyIsImltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBMaW5rLCB1c2VOYXZpZ2F0ZSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IERyb3Bkb3duRmllbGQgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9GaWVsZHMvRHJvcGRvd25GaWVsZFwiO1xyXG5pbXBvcnQgeyBCYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0Jhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb250YWN0VHlwZSB9IGZyb20gXCIuLi9FbnVtcy9Qb3J0YWxDb250YWN0VHlwZVwiO1xyXG5pbXBvcnQgeyBTdHJpbmdGaWVsZCB9IGZyb20gXCIuLi9Db21wb25lbnRzL0ZpZWxkcy9TdHJpbmdGaWVsZFwiO1xyXG5pbXBvcnQgeyBMb29rdXBGaWVsZCB9IGZyb20gXCIuLi9Db21wb25lbnRzL0ZpZWxkcy9Mb29rdXBGaWVsZFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgQWNjb3VudFNpdGVUeXBlIH0gZnJvbSBcIi4uL0VudW1zL0FjY291bnRTaXRlVHlwZVwiO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbkJvb2xlYW5GaWVsZCB9IGZyb20gXCIuLi9Db21wb25lbnRzL0ZpZWxkcy9SYWRpb0J1dHRvbkJvb2xlYW5GaWVsZFwiO1xyXG5pbXBvcnQgeyBQQUdFUyB9IGZyb20gXCIuLi9Ib29rcy91c2VQYWdlTmF2aWdhdGlvblwiO1xyXG5pbXBvcnQgeyBJbVNwaW5uZXIyIH0gZnJvbSBcInJlYWN0LWljb25zL2ltXCI7XHJcbmltcG9ydCB7IHVzZURhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uL0hvb2tzL3VzZURhdGFTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEZhSG9tZSB9IGZyb20gXCJyZWFjdC1pY29ucy9mYVwiO1xyXG5pbXBvcnQgeyBBY2NvdW50U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0FjY291bnRTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgU3VibWlzc2lvblN0YXRlIH0gZnJvbSBcIi4uL1R5cGVzL1N1Ym1pc3Npb25TdGF0ZVwiO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSBcIi4uL0hlbHBlcnMvRGF0ZUhlbHBlclwiO1xyXG5pbXBvcnQgeyBUZWxlcGhvbmVGaWVsZCB9IGZyb20gXCIuLi9Db21wb25lbnRzL0ZpZWxkcy9UZWxlcGhvbmVGaWVsZFwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuLi9Ib29rcy91c2VBcHBJbnNpZ2h0c1wiO1xyXG5pbXBvcnQgeyBQb3B1cExpbmtGaWVsZCB9IGZyb20gXCIuLi9Db21wb25lbnRzL0ZpZWxkcy9Qb3B1cExpbmtGaWVsZFwiO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1BhbmVsIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvUGVybWlzc2lvbnNQYW5lbFwiO1xyXG5pbXBvcnQgeyBDb250YWN0UGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvT3JkZXJQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25MZXZlbFN1bW1hcnkgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9QZXJtaXNzaW9uTGV2ZWxTdW1tYXJ5XCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JDcmVhdGUgfSBmcm9tIFwiLi4vTW9kZWxzL0NvbnRhY3RGb3JDcmVhdGVcIjtcclxuaW1wb3J0IHsgQ29udGFjdEZvclJldHJpZXZhbCB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgQ3JlYXRlIENvbnRhY3QgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgQ29udGFjdHNDcmVhdGU6IFJlYWN0LkZDID0gKCkgPT4ge1xyXG4gICAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgdXNlck1ldGFkYXRhID0gdXNlVXNlck1ldGFkYXRhKCk7XHJcbiAgICBjb25zdCBkYXRhU2VydmljZSA9IHVzZURhdGFTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YSwgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcbiAgICBjb25zdCBhY2NvdW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuYWNjb3VudHMpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuICAgIGNvbnN0IFtpc1BvcHVwT3Blbiwgc2V0SXNQb3B1cE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICAgIC8vIEZsYWcgaG9sZGluZyB3aGV0aGVyIHRoZSBmb3JtIGhhcyBhdHRlbXB0ZWQgdG8gYmUgc3VibWl0dGVkXHJcbiAgICBjb25zdCBbZm9ybVN1Ym1pdEF0dGVtcHRlZCwgc2V0Rm9ybVN1Ym1pdEF0dGVtcHRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgLy8gRmxhZyBob2xkaW5nIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBoYXMgbG9hZGVkXHJcbiAgICBjb25zdCBbaXNMb2FkZWQsIHNldElzTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICAvLyBQcm9ncmVzcyBvZiB0aGUgQ29udGFjdCBjcmVhdGlvblxyXG4gICAgY29uc3QgW3N1Ym1pc3Npb25TdGF0ZSwgc2V0U3VibWlzc2lvblN0YXRlXSA9IHVzZVN0YXRlPFN1Ym1pc3Npb25TdGF0ZT4oe1xyXG4gICAgICAgIHN0YXRlOiBcImlkbGVcIixcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIENyZWF0ZXMgYSBkZWZhdWx0IG1vZGVsIGZvciBhIGNvbnRhY3QgdG8gY3JlYXRlIHdoaWNoIGNhbiBiZSB1cGRhdGVkL2NyZWF0ZWQgb24gdGhlIGNvbnRhY3QgZW50aXR5IGluIER5bmFtaWNzLlxyXG4gICAgY29uc3QgW2NvbnRhY3QsIHNldENvbnRhY3RdID0gdXNlU3RhdGU8Q29udGFjdEZvckNyZWF0ZT4oe1xyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGU6IFBvcnRhbENvbnRhY3RUeXBlLkluZGl2aWR1YWxDb250YWN0LFxyXG4gICAgICAgIGZpcnN0bmFtZTogXCJcIixcclxuICAgICAgICBsYXN0bmFtZTogXCJcIixcclxuICAgICAgICBqb2J0aXRsZTogXCJcIixcclxuICAgICAgICB0ZWxlcGhvbmUxOiBudWxsLFxyXG4gICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIF9wYXJlbnRjdXN0b21lcmlkX3ZhbHVlOiB1c2VyTWV0YWRhdGEuYWNjb3VudElkISxcclxuICAgICAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbDogQmFzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsOiBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWw6IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdLFxyXG4gICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSxcclxuICAgICAgICBiaXN0ZWNoX3BvcnRhbGludm9pY2VwZXJtaXNzaW9ubGV2ZWw6IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0sXHJcbiAgICAgICAgZW1haWxhZGRyZXNzMTogXCJcIixcclxuICAgICAgICBtb2JpbGVwaG9uZTogbnVsbCxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVhbGVydG5vdGlmaWNhdGlvbnM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBmYWxzZSxcclxuICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcjogZmFsc2UsXHJcbiAgICAgICAgYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGJpc3RlY2hfaXNzaG93bmlucG9ydGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCBoYW5kbGVyIGZvciBzdWJtaXNzaW9uIG9mIHRoZSBmb3JtLlxyXG4gICAgICogQHBhcmFtIGV2ZW50IEZvcm0gc3VibWlzc2lvbiBldmVudC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQoZXZlbnQ6IFJlYWN0LkZvcm1FdmVudDxIVE1MRm9ybUVsZW1lbnQ+KSB7XHJcbiAgICAgICAgLy8gUHJldmVudCB0aGUgZGVmYXVsdCBwYWdlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm1cclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICBpZiAoY29udGFjdHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFxcYGluY2lkZW50c1xcYCB0byBoYXZlIGxvYWRlZCBiZWZvcmUgc3VibWlzc2lvbmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwic3VibWl0dGluZ1wiIH0pO1xyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oeyB0eXBlOiBcIkNyZWF0ZSBDb250YWN0IC0gQ29udGFjdCBjcmVhdGlvbiBzdWJtaXR0ZWRcIiB9KTtcclxuXHJcbiAgICAgICAgbGV0IGNyZWF0ZWRDb250YWN0OiBDb250YWN0Rm9yUmV0cmlldmFsO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIENvbnRhY3RcclxuICAgICAgICAgICAgY3JlYXRlZENvbnRhY3QgPSBhd2FpdCBkYXRhU2VydmljZS5jcmVhdGVDb250YWN0KGNvbnRhY3QpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZSh7IHN0YXRlOiBcImVycm9yZWRcIiwgZXJyb3I6IGVycm9yIGFzIEVycm9yIH0pO1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgdHlwZTogXCJDcmVhdGUgQ29udGFjdCAtIENvbnRhY3QgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgY29udGFjdElkOiBjcmVhdGVkQ29udGFjdC5jb250YWN0aWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgY3JlYXRlZCBDb250YWN0IHRvIHN0YXRlLCBzbyBpdCBjYW4gYmUgdmlld2VkLlxyXG4gICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgdHlwZTogXCJTZXRDb250YWN0c1wiLFxyXG4gICAgICAgICAgICBjb250YWN0czoge1xyXG4gICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgIGRhdGE6IGNvbnRhY3RzLmRhdGEuY29uY2F0KFtjcmVhdGVkQ29udGFjdF0pLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJjb21wbGV0ZWRcIiB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgZWRpdENvbnRhY3RVcmwgPSBgJHtQQUdFUy5FZGl0Q29udGFjdC5wYXRofT9pZD0ke2NyZWF0ZWRDb250YWN0LmNvbnRhY3RpZH1gO1xyXG5cclxuICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiQWRkTm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogXCJDb250YWN0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5ZWRPblJlbGF0aXZlVXJsOiBlZGl0Q29udGFjdFVybCxcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlVbnRpbDogRGF0ZUhlbHBlci5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIDEwKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gTmF2aWdhdGUgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgQ29udGFjdFxyXG4gICAgICAgIG5hdmlnYXRlKGVkaXRDb250YWN0VXJsKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBNYXJrIHRoZSBjb21wb25lbnQgYXMgbG9hZGVkXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldElzTG9hZGVkKHRydWUpO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25MZXZlbEZpZWxkUmVmID0gdXNlUmVmPEhUTUxMYWJlbEVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCYXNlUGFnZSB0aXRsZT1cIkNyZWF0ZSBDb250YWN0XCI+XHJcbiAgICAgICAgICAgIDxmb3JtXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjcmVhdGUtY29udGFjdFwiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXN1Ym1pdC1hdHRlbXB0ZWQ9e2Zvcm1TdWJtaXRBdHRlbXB0ZWR9XHJcbiAgICAgICAgICAgICAgICBvblN1Ym1pdD17b25TdWJtaXR9XHJcbiAgICAgICAgICAgICAgICBvbkludmFsaWQ9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGlmIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkIChpLmUuIGlnbm9yZSB0aGUgdmFsaWRpdHkgY2hlY2tzIHdoZW4gdGhlIGZvcm0gaXMgaW5pdGlhbGx5IGxvYWRlZClcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmxhZyBkZXRhaWxpbmcgdGhhdCBhIGZvcm0gc3VibWlzc2lvbiBoYXMgYmVlbiBhdHRlbXB0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9ybVN1Ym1pdEF0dGVtcHRlZCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb3JtYXRpb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPkluZm9ybWF0aW9uPC9oMj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29udGFjdCBUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJfY29udGFjdF90eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBQb3J0YWxDb250YWN0VHlwZS5JbmRpdmlkdWFsQ29udGFjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJJbmRpdmlkdWFsIENvbnRhY3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFBvcnRhbENvbnRhY3RUeXBlLlRlYW1Db250YWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlRlYW0gQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25JZD17Y29udGFjdC5iaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGUpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0KHsgLi4uY29udGFjdCwgYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRhY3QuYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZSA9PT0gUG9ydGFsQ29udGFjdFR5cGUuSW5kaXZpZHVhbENvbnRhY3QgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJGaXJzdCBOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaXJzdG5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3QuZmlyc3RuYW1lIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGZpcnN0bmFtZSkgPT4gc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIGZpcnN0bmFtZSB9KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IHJlcXVpcmVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IGNvbnRhY3QuZmlyc3RuYW1lICE9PSBcIlwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0KHsgLi4uY29udGFjdCwgZmlyc3RuYW1lOiBcIlwiIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0LmJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGUgPT09IFBvcnRhbENvbnRhY3RUeXBlLkluZGl2aWR1YWxDb250YWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkxhc3QgTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlRlYW0gTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImxhc3RuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3QubGFzdG5hbWUgfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhsYXN0bmFtZSkgPT4gc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIGxhc3RuYW1lIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyByZXF1aXJlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250YWN0LmJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGUgPT09IFBvcnRhbENvbnRhY3RUeXBlLkluZGl2aWR1YWxDb250YWN0ID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiSm9iIFRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJqb2J0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdC5qb2J0aXRsZSB8fCBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhqb2J0aXRsZSkgPT4gc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIGpvYnRpdGxlIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgcmVxdWlyZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogY29udGFjdC5qb2J0aXRsZSAhPT0gXCJcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIGpvYnRpdGxlOiBcIlwiIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9va3VwRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUHJpbWFyeSBTaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtjb250YWN0Ll9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdXJhbE9wdGlvbnNOYW1lPVwiQWN0aXZlIFNpdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhY2NvdW50cy5kYXRhLm1hcCgoYWNjb3VudCkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYWNjb3VudC5hY2NvdW50aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IGAke2FjY291bnQubmFtZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IEFjY291bnRTaXRlVHlwZVthY2NvdW50LmJpc3RlY2hfc2l0ZXR5cGVdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlja2FibGU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQuc3RhdGVjb2RlID09PSBBY2NvdW50U3RhdGVDb2RlW1wiQWN0aXZlXCJdICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQuYmlzdGVjaF9zaXRldHlwZSAhPT0gQWNjb3VudFNpdGVUeXBlW1wiTGVnYWwgRW50aXR5XCJdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25JZD17KF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0KHsgLi4uY29udGFjdCwgX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25DYXJkSW5mbz17KHNlbGVjdGVkT3B0aW9uKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiA8RmFIb21lIC8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogc2VsZWN0ZWRPcHRpb24ucHJpbWFyeVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IHNlbGVjdGVkT3B0aW9uLnNlY29uZGFyeVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxGaWVsZHM6IFtdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IHBsYWNlaG9sZGVyOiBcIlNlbGVjdCBhIFNpdGVcIiwgcmVxdWlyZWQ6IGZhbHNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRW1haWwgQWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsYWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdSBtdXN0IHN1cHBseSBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZyBmaWVsZHM6IEVtYWlsLCBEaXJlY3QgRGlhbCwgTW9iaWxlIFBob25lLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0LmVtYWlsYWRkcmVzczEgfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGVtYWlsYWRkcmVzczEpID0+IHNldENvbnRhY3QoeyAuLi5jb250YWN0LCBlbWFpbGFkZHJlc3MxIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IHJlcXVpcmVkOiBmYWxzZSwgdHlwZTogXCJlbWFpbFwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRHcm91cD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21WYWxpZGl0eT17KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhY3QuZW1haWxhZGRyZXNzMSAmJiAhY29udGFjdC50ZWxlcGhvbmUxICYmICFjb250YWN0Lm1vYmlsZXBob25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiWW91IG11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczogRW1haWwsIERpcmVjdCBEaWFsLCBNb2JpbGUgUGhvbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRlbGVwaG9uZUZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJEaXJlY3QgRGlhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRpcmVjdGRpYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJZb3UgbXVzdCBzdXBwbHkgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgZmllbGRzOiBFbWFpbCwgRGlyZWN0IERpYWwsIE1vYmlsZSBQaG9uZS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdC50ZWxlcGhvbmUxIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh0ZWxlcGhvbmUxKSA9PiBzZXRDb250YWN0KHsgLi4uY29udGFjdCwgdGVsZXBob25lMSB9KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyByZXF1aXJlZDogZmFsc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVZhbGlkaXR5PXsoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY29udGFjdC5lbWFpbGFkZHJlc3MxICYmICFjb250YWN0LnRlbGVwaG9uZTEgJiYgIWNvbnRhY3QubW9iaWxlcGhvbmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJZb3UgbXVzdCBzdXBwbHkgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgZmllbGRzOiBFbWFpbCwgRGlyZWN0IERpYWwsIE1vYmlsZSBQaG9uZS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGVsZXBob25lRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIk1vYmlsZSBQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1vYmlsZXBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91IG11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczogRW1haWwsIERpcmVjdCBEaWFsLCBNb2JpbGUgUGhvbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3QubW9iaWxlcGhvbmUgfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG1vYmlsZXBob25lKSA9PiBzZXRDb250YWN0KHsgLi4uY29udGFjdCwgbW9iaWxlcGhvbmUgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgcmVxdWlyZWQ6IGZhbHNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRHcm91cD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21WYWxpZGl0eT17KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhY3QuZW1haWxhZGRyZXNzMSAmJiAhY29udGFjdC50ZWxlcGhvbmUxICYmICFjb250YWN0Lm1vYmlsZXBob25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiWW91IG11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczogRW1haWwsIERpcmVjdCBEaWFsLCBNb2JpbGUgUGhvbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmVmZXJlbmNlcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+UHJlZmVyZW5jZXM8L2gyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3B1cExpbmtGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPk5vIEFjY2Vzczwvc3Ryb25nPiAtIFRoZSB1c2VyIG9yIHRlYW0gd2lsbCBoYXZlIG5vIGFjY2VzcyB0byB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0YWwuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkFkbWluaXN0cmF0b3I8L3N0cm9uZz4gLSBUaGUgdXNlciBvciB0ZWFtIHdpbGwgaGF2ZSBhY2Nlc3MgdG8gYWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgb2YgdGhlIHBvcnRhbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Q3VzdG9tPC9zdHJvbmc+IC0gVGhlIHVzZXIgb3IgdGVhbSB3aWxsIGhhdmUgY3VzdG9taXNlZCBhY2Nlc3MgdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0YWluIGZlYXR1cmVzIG9mIHRoZSBwb3J0YWwuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17YCR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQmFzZVBlcm1pc3Npb25MZXZlbFtjb250YWN0LmJpc3RlY2hfcGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gKGVkaXQpYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJUZXh0PXs8UGVybWlzc2lvbkxldmVsU3VtbWFyeSBjb250YWN0PXtjb250YWN0fSAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc1BvcHVwT3BlbighaXNQb3B1cE9wZW4pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxCdXR0b25Qcm9wcz17eyBzdHlsZTogeyBjdXJzb3I6IFwicG9pbnRlclwiIH0gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsTGFiZWxQcm9wcz17eyByZWY6IHBlcm1pc3Npb25MZXZlbEZpZWxkUmVmIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17XCJyZWNlaXZlYWxlcnRub3RpZmljYXRpb25zXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e1wiUmVjZWl2ZSBBbGVydCBOb3RpZmljYXRpb25zP1wifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlJlY2VpdmUgTmV0d29yayBBbGVydCBOb3RpZmljYXRpb25zIGlmIG91ciBwcm9hY3RpdmUgbW9uaXRvcmluZyB0b29sIGlkZW50aWZpZXMgaXNzdWVzIHdpdGggeW91ciBDb21wYW55J3Mgc2l0ZXMuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3QuYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0KHsgLi4uY29udGFjdCwgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkJvb2xlYW5GaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e1wicmVjZWl2ZXBsYW5uZWRtYWludGVuYW5jZW5vdGlmaWNhdGlvbnNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIFBsYW5uZWQgTWFpbnRlbmFuY2UgTm90aWZpY2F0aW9ucz9cIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWNlaXZlIFBsYW5uZWQgTWFpbnRlbmFuY2UgTm90aWZpY2F0aW9ucyBpZiB5b3VyIENvbXBhbnkncyBzZXJ2aWNlcyBhcmUgaWRlbnRpZmllZCBhcyBhZmZlY3RlZC5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdC5iaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9ucykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIGJpc3RlY2hfcmVjZWl2ZXBld25vdGlmaWNhdGlvbnMgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17XCJyZWNlaXZlbWFqb3JpbmNpZGVudHVwZGF0ZXNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIE1ham9yIEluY2lkZW50IFVwZGF0ZXM/XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVjZWl2ZSByZWd1bGFyIHVwZGF0ZXMgaWYgeW91ciBDb21wYW55IGhhcyBhIENhc2UgYXNzb2NpYXRlZCB0byBhIE1ham9yIEluY2lkZW50LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0LmJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9yZWNlaXZlbWFqb3JpbmNpZGVudHVwZGF0ZXMpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3QoeyAuLi5jb250YWN0LCBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlcyB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Cb29sZWFuRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtcInJlY2VpdmVzZWN1cml0eXVwZGF0ZXNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIFNlY3VyaXR5IFVwZGF0ZXM/XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVjZWl2ZSBTZWN1cml0eSBVcGRhdGVzIHdoZW4ga25vd24gdGhyZWF0cyBvciB2dWxuZXJhYmlsaXRpZXMgYXJlIHJlcG9ydGVkIGluIHRoZSBtYXJrZXRwbGFjZS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdC5iaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXMpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3QoeyAuLi5jb250YWN0LCBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXMgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17XCJyZWNlaXZlY3VzdG9tZXJuZXdzbGV0dGVyXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e1wiUmVjZWl2ZSBDdXN0b21lciBOZXdzbGV0dGVyP1wifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlJlY2VpdmUgdGhlIEJpc3RlY2ggQ3VzdG9tZXIgTmV3c2xldHRlciBjb3ZlcmluZyBuZXdzLCB2aWV3cyBhbmQgdGhlIGxhdGVzdCBJVCBpbmR1c3RyeSBkZXZlbG9wbWVudC5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdC5iaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXIpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3QoeyAuLi5jb250YWN0LCBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXIgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17XCJyZWNlaXZlcHJvZHVjdHVwZGF0ZXNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIFByb2R1Y3QgVXBkYXRlcz9cIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcIlJlY2VpdmUgUHJvZHVjdCBVcGRhdGVzLCByb2FkbWFwIGluZm9ybWF0aW9uIGFuZCBlbmQgb2YgbGlmZSBhbm5vdW5jZW1lbnRzLlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0LmJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXMpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3QoeyAuLi5jb250YWN0LCBiaXN0ZWNoX3JlY2VpdmVwcm9kdWN0dXBkYXRlcyB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB7c3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcImVycm9yZWRcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkZhaWxlZCB0byBjcmVhdGUgQ29udGFjdDwvc3Ryb25nPjoge3N1Ym1pc3Npb25TdGF0ZS5lcnJvci5tZXNzYWdlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzTmFtZT1cImJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidXR0b25cIiB0eXBlPVwic3VibWl0XCIgZGlzYWJsZWQ9e3N1Ym1pc3Npb25TdGF0ZS5zdGF0ZSA9PT0gXCJzdWJtaXR0aW5nXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1Ym1pc3Npb25TdGF0ZS5zdGF0ZSA9PT0gXCJzdWJtaXR0aW5nXCIgJiYgPEltU3Bpbm5lcjIgY2xhc3NOYW1lPVwic3BpblwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGluayBjbGFzc05hbWU9XCJidXR0b24gZGVmYXVsdFwiIHRvPXtQQUdFUy5Db250YWN0cy5wYXRofT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIHtpc1BvcHVwT3BlbiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8UGVybWlzc2lvbnNQYW5lbFxyXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlUG9wdXA9eygpID0+IHNldElzUG9wdXBPcGVuKGZhbHNlKX1cclxuICAgICAgICAgICAgICAgICAgICBjb250YWN0PXtjb250YWN0fVxyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdExhYmVsPVwiT2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uU2F2ZT17KGNvbnRhY3RQZXJtaXNzaW9ucykgPT4gc2V0Q29udGFjdCh7IC4uLmNvbnRhY3QsIC4uLmNvbnRhY3RQZXJtaXNzaW9ucyB9KX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuXHJcbi8qKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIHRoZSBOb3QgRm91bmQvNDA0IHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IE5vdEZvdW5kOiBSZWFjdC5GQzxcclxuICAgIHsgdHlwZTogXCJwYWdlLW5vdC1mb3VuZFwiIH0gfCB7IHR5cGU6IFwicmVjb3JkLW5vdC1mb3VuZFwiOyBzaW5ndWxhckVudGl0eU5hbWU6IHN0cmluZyB9XHJcbj4gPSAocHJvcHMpID0+IHtcclxuICAgIHN3aXRjaCAocHJvcHMudHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJwYWdlLW5vdC1mb3VuZFwiOlxyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPEJhc2VQYWdlIHRpdGxlPVwiUGFnZSBOb3QgRm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5Tb3JyeSwgYnV0IHRoZSBwYWdlIHlvdSB3ZXJlIHRyeWluZyB0byB2aWV3IGRvZXMgbm90IGV4aXN0LjwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5JdCBsb29rcyBsaWtlIHRoaXMgd2FzIHRoZSByZXN1bHQgb2YgZWl0aGVyOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BIG1pc3R5cGVkIGFkZHJlc3M8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+QW4gb3V0LW9mLWRhdGUgbGluazwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIGNhc2UgXCJyZWNvcmQtbm90LWZvdW5kXCI6XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8QmFzZVBhZ2UgdGl0bGU9e2Ake3Byb3BzLnNpbmd1bGFyRW50aXR5TmFtZX0gTm90IEZvdW5kYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+U29ycnksIGJ1dCB0aGUgcmVjb3JkIHlvdSB3ZXJlIHRyeWluZyB0byB2aWV3IGRvZXMgbm90IGV4aXN0LjwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5JdCBsb29rcyBsaWtlIHRoaXMgd2FzIHRoZSByZXN1bHQgb2YgZWl0aGVyOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BIG1pc3R5cGVkIGFkZHJlc3M8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+QW4gb3V0LW9mLWRhdGUgbGluazwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IEltU3Bpbm5lcjIgfSBmcm9tIFwicmVhY3QtaWNvbnMvaW1cIjtcclxuaW1wb3J0IHsgdXNlQXBwSW5zaWdodHMgfSBmcm9tIFwiLi4vSG9va3MvdXNlQXBwSW5zaWdodHNcIjtcclxuaW1wb3J0IHsgQnV0dG9uSW5mb3JtYXRpb24gfSBmcm9tIFwiLi4vVHlwZXMvQnV0dG9uSW5mb3JtYXRpb25cIjtcclxuaW1wb3J0IHsgU3VibWlzc2lvblN0YXRlIH0gZnJvbSBcIi4uL1R5cGVzL1N1Ym1pc3Npb25TdGF0ZVwiO1xyXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIGJ1dHRvbiBhbmQgaGFuZGxlcyBzdWJtaXNzaW9uIHN0YXRlIHdoaWNoIGRpc3BsYXlzIGEgc3Bpbm5lciBpY29uIHdoZW4gbG9hZGluZy5cclxuICogVGhpcyBjb21wb25lbnQgaGFzIHRoZSBhYmlsaXR5IHRvIHNob3cgYSBDb25maXJtYXRpb24gb3IgRXJyb3IgTW9kYWwgb24gY2xpY2sgb2YgYSBidXR0b24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQnV0dG9uOiBSZWFjdC5GQzx7XHJcbiAgICBidXR0b25JbmZvOiBCdXR0b25JbmZvcm1hdGlvbjtcclxuICAgIHNldFN1Ym1pc3Npb25TdGF0ZTogKHN1Ym1pc3Npb25TdGF0ZTogU3VibWlzc2lvblN0YXRlKSA9PiB2b2lkO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgW3Nob3VsZFNob3dTcGlubmVyLCBzZXRTaG91bGRTaG93U3Bpbm5lcl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcbiAgICBjb25zdCBbaXNNb2RhbFNob3duLCBzZXRJc01vZGFsU2hvd25dID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgY29uc3QgeyB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YSB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzaG91bGRTaG93U3Bpbm5lcn1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYnV0dG9uIGhhcyBhIG1vZGFsIHRoZW4gZGlzcGxheSB0aGUgbW9kYWwuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BzLmJ1dHRvbkluZm8uaGFzTW9kYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBtb2RhbCB0byBzaG93bi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNNb2RhbFNob3duKCFpc01vZGFsU2hvd24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBzZXRTaG91bGRTaG93U3Bpbm5lcih0cnVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BzLmJ1dHRvbkluZm8uYXBwSW5zaWdodHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBwcm9wcy5idXR0b25JbmZvLmFwcEluc2lnaHRzLnN1Ym1pc3Npb25FdmVudFR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25OYW1lOiBwcm9wcy5idXR0b25JbmZvLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb3BzLmJ1dHRvbkluZm8ub25DbGljaygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BzLmJ1dHRvbkluZm8uYXBwSW5zaWdodHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHByb3BzLmJ1dHRvbkluZm8uYXBwSW5zaWdodHMuY29tcGxldGVkU3VjY2Vzc2Z1bGx5RXZlbnRUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbk5hbWU6IHByb3BzLmJ1dHRvbkluZm8ubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHJhd0Vycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYEVycm9yIG9jY3VycmVkIHBlcmZvcm1pbmcgJyR7cHJvcHMuYnV0dG9uSW5mby5sYWJlbH0nIGJ1dHRvbiBiZWhhdmlvdXI6ICR7cmF3RXJyb3J9YFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiZXJyb3JlZFwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNob3VsZFNob3dTcGlubmVyKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtzaG91bGRTaG93U3Bpbm5lciA/IChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8SW1TcGlubmVyMiBjbGFzc05hbWU9XCJzcGluXCIgLz4gU3VibWl0dGluZy4uLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5idXR0b25JbmZvLmxhYmVsXHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAge3Byb3BzLmJ1dHRvbkluZm8uaGFzTW9kYWwgJiYgKFxyXG4gICAgICAgICAgICAgICAgPE1vZGFsIGJ1dHRvbkluZm89e3Byb3BzLmJ1dHRvbkluZm99IGlzTW9kYWxTaG93bj17aXNNb2RhbFNob3dufSBzZXRJc01vZGFsU2hvd249e3NldElzTW9kYWxTaG93bn0gLz5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9CcmVhZGNydW1iXCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9FcnJvckJvdW5kYXJ5XCI7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvSW1hZ2VcIjtcclxuaW1wb3J0IHsgQ2FsbFRvQWN0aW9uSW5mb3JtYXRpb24gfSBmcm9tIFwiLi4vVHlwZXMvQ2FsbFRvQWN0aW9uSW5mb3JtYXRpb25cIjtcclxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvQnV0dG9uXCI7XHJcbmltcG9ydCB7IEhlYWRlclRhZyB9IGZyb20gXCIuLi9UeXBlcy9IZWFkZXJUYWdcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uU3RhdGUgfSBmcm9tIFwiLi4vVHlwZXMvU3VibWlzc2lvblN0YXRlXCI7XHJcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvTG9hZGluZ1NwaW5uZXJcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9ucyB9IGZyb20gXCIuLi9Db21wb25lbnRzL05vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgdXNlV2luZG93V2lkdGggfSBmcm9tIFwiLi4vSG9va3MvdXNlV2luZG93V2lkdGhcIjtcclxuXHJcbi8qKiBBIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIGNvbnRlbnQgd2l0aGluIGZvciBwYWdlcyB3aGljaCByZXF1aXJlIGEgY2FsbCB0byBhY3Rpb24uICovXHJcbmV4cG9ydCBjb25zdCBDYWxsVG9BY3Rpb25CYXNlUGFnZTogUmVhY3QuRkM8e1xyXG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbjogTG9hZGluZ0RhdGE8Q2FsbFRvQWN0aW9uSW5mb3JtYXRpb24+O1xyXG4gICAgdGFncz86IEhlYWRlclRhZ1tdO1xyXG4gICAgcGFyZW50UGFnZVJlZmVyZW5jZT86IHsgZWRpdElkTmFtZTogc3RyaW5nOyBmdWxsUGF0aDogc3RyaW5nOyBwYWdlSWQ6IHN0cmluZyB9O1xyXG4gICAgc2V0U3VibWlzc2lvblN0YXRlOiAoc3VibWlzc2lvblN0YXRlOiBTdWJtaXNzaW9uU3RhdGUpID0+IHZvaWQ7XHJcbn0+ID0gKHsgY2hpbGRyZW4sIHRpdGxlLCBjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiwgdGFncywgcGFyZW50UGFnZVJlZmVyZW5jZSwgc2V0U3VibWlzc2lvblN0YXRlIH0pID0+IHtcclxuICAgIGNvbnN0IENBTExfVE9fQUNUSU9OX0lDT05fV0lEVEggPSA0MDtcclxuICAgIGNvbnN0IENBTExfVE9fQUNUSU9OX0lDT05fSEVJR0hUID0gNDA7XHJcbiAgICBjb25zdCBUQUJMRVRfV0lEVEggPSA5OTE7XHJcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHVzZVdpbmRvd1dpZHRoKCk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9ucyAvPlxyXG4gICAgICAgICAgICB7LyogVGhpcyBzdHlsZSBjaGVjayBvdmVycmlkZXMgdGhlIHBhZGRpbmcgZm9yIHRoZSBjb250ZW50IG9mIGFuIEVkaXQgUGFnZSBiYXNlZCBpZiBpdCBpcyB0YWJsZXQgd2lkdGggb3IgYmVsb3cuICovfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtY29udGVudFwiIHN0eWxlPXt3aW5kb3dXaWR0aCA8IFRBQkxFVF9XSURUSCA/IHsgcGFkZGluZ1RvcDogXCIxZW1cIiB9IDoge319PlxyXG4gICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJyZWFkY3J1bWIgaXNMb2FkaW5nPXtmYWxzZX0gcGFyZW50UGFnZT17cGFyZW50UGFnZVJlZmVyZW5jZX0gLz5cclxuICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbGwtdG8tYWN0aW9uLWJhc2UtcGFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFzZS1wYWdlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwiY2FsbC10by1hY3Rpb24tYmFzZS1wYWdlLXRpdGxlXCI+e3RpdGxlfTwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWwtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0YWdzICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YWcpID0+IHRhZy52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgodGFnKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e3RhZy5uYW1lfSBjbGFzc05hbWU9XCJsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0YWcudmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbGwtdG8tYWN0aW9uLXBhbmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FsbC10by1hY3Rpb24taWNvbi1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NhbGxUb0FjdGlvbkluZm9ybWF0aW9uLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjYWxsLXRvLWFjdGlvbi1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e0NBTExfVE9fQUNUSU9OX0lDT05fV0lEVEh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17Q0FMTF9UT19BQ1RJT05fSUNPTl9IRUlHSFR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17Y2FsbFRvQWN0aW9uSW5mb3JtYXRpb24uZGF0YS5pY29ufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbGxUb0FjdGlvbkluZm9ybWF0aW9uLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbGwtdG8tYWN0aW9uLWluZm9ybWF0aW9uLXBhbmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWluZm8tcGFuZWwtaGFzLWJ1dHRvbnM9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFRvQWN0aW9uSW5mb3JtYXRpb24uZGF0YS5idXR0b25zPy5sZW5ndGggPz8gMCA9PT0gMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbGwtdG8tYWN0aW9uLWluZm9ybWF0aW9uLXBhbmVsLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FsbFRvQWN0aW9uSW5mb3JtYXRpb24uZGF0YS50aXRsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhbGwtdG8tYWN0aW9uLWluZm9ybWF0aW9uLXBhbmVsLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FsbFRvQWN0aW9uSW5mb3JtYXRpb24uZGF0YS5kZXNjcmlwdGlvbn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbi5kYXRhLmJ1dHRvbnM/Lmxlbmd0aCA/PyAwKSAhPT0gMCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYWxsLXRvLWFjdGlvbi1idXR0b24tcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FsbC10by1hY3Rpb24tYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbi5kYXRhLmJ1dHRvbnM/Lm1hcCgoYnV0dG9uSW5mbykgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2J1dHRvbkluZm8ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25JbmZvPXtidXR0b25JbmZvfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlPXtzZXRTdWJtaXNzaW9uU3RhdGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD48Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9hZGluZ1NwaW5uZXIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PntjaGlsZHJlbn08L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvPlxyXG4gICAgKTtcclxufTtcclxuIiwiLyoqXHJcbiAqIEdldHMgYWxsIGZpZWxkcyBvZiB0aGUgdXBkYXRlZCBvYmplY3QgdGhhdCBkaWZmZXIgdG8gdGhlIGluaXRpYWwgb2JqZWN0LlxyXG4gKiBAcGFyYW0gaW5pdGlhbCBJbml0aWFsIG9iamVjdCBhZ2FpbnN0IHdoaWNoIHRvIGNvbXBhcmUuXHJcbiAqIEBwYXJhbSB1cGRhdGVkIFVwZGF0ZSBvYmplY3QuXHJcbiAqIEByZXR1cm5zIEFsbCBmaWVsZHMgb2YgdGhlIHVwZGF0ZWQgb2JqZWN0IHRoYXQgZGlmZmVyIHRvIHRoZSBpbml0aWFsIG9iamVjdC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1BhcnRpYWxEaWZmPFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9Pihpbml0aWFsOiBULCB1cGRhdGVkOiBUKTogUGFydGlhbDxUPiB7XHJcbiAgICAvLyBGb3IgZWFjaCBlbGVtZW50IG9mIHRoZSB1cGRhdGVkIG9iamVjdFxyXG4gICAgY29uc3QgcGFydGlhbCA9IE9iamVjdC5lbnRyaWVzKHVwZGF0ZWQpLnJlZHVjZTxQYXJ0aWFsPFQ+PigocGFydGlhbCwgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoaXMga2V5XHJcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gSlNPTi5zdHJpbmdpZnkoaW5pdGlhbFtrZXldKTtcclxuXHJcbiAgICAgICAgLy8gR2V0IHRoZSB1cGRhdGVkIHZhbHVlIG9mIHRoaXMga2V5XHJcbiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xyXG5cclxuICAgICAgICAvLyBPbmx5IGlmIHRoZSB1cGRhdGVkIHZhbHVlIGRpZmZlcnMgZnJvbSB0aGUgaW5pdGlhbCB2YWx1ZVxyXG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgIT09IHVwZGF0ZWRWYWx1ZSkge1xyXG4gICAgICAgICAgICAocGFydGlhbCBhcyBhbnkpW2tleV0gPSB1cGRhdGVkW2tleV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFydGlhbDtcclxuICAgIH0sIHt9KTtcclxuXHJcbiAgICByZXR1cm4gcGFydGlhbDtcclxufVxyXG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRmFIb21lIH0gZnJvbSBcInJlYWN0LWljb25zL2ZhXCI7XHJcbmltcG9ydCB7IEltU3Bpbm5lcjIgfSBmcm9tIFwicmVhY3QtaWNvbnMvaW1cIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBEcm9wZG93bkZpZWxkIH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvRmllbGRzL0Ryb3Bkb3duRmllbGRcIjtcclxuaW1wb3J0IHsgTG9va3VwRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvTG9va3VwRmllbGRcIjtcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Cb29sZWFuRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvUmFkaW9CdXR0b25Cb29sZWFuRmllbGRcIjtcclxuaW1wb3J0IHsgU3RyaW5nRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvU3RyaW5nRmllbGRcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5pbXBvcnQgeyBBY2NvdW50U2l0ZVR5cGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvQWNjb3VudFNpdGVUeXBlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvQWNjb3VudFN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBCYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uLy4uL0VudW1zL0Jhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgQ29udGFjdFN0YXRlQ29kZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9Db250YWN0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL1BvcnRhbEludml0YXRpb25TdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFBvcnRhbEludml0YXRpb24gfSBmcm9tIFwiLi4vLi4vTW9kZWxzL1BvcnRhbEludml0YXRpb25cIjtcclxuaW1wb3J0IHsgUG9ydGFsQ29udGFjdFR5cGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvUG9ydGFsQ29udGFjdFR5cGVcIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUEFHRVMgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiB9IGZyb20gXCIuLi8uLi9UeXBlcy9DYWxsVG9BY3Rpb25JbmZvcm1hdGlvblwiO1xyXG5pbXBvcnQgeyBDYWxsVG9BY3Rpb25CYXNlUGFnZSB9IGZyb20gXCIuLi9DYWxsVG9BY3Rpb25CYXNlUGFnZVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBCdXR0b25JbmZvcm1hdGlvbiB9IGZyb20gXCIuLi8uLi9UeXBlcy9CdXR0b25JbmZvcm1hdGlvblwiO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uU3RhdGUgfSBmcm9tIFwiLi4vLi4vVHlwZXMvU3VibWlzc2lvblN0YXRlXCI7XHJcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL0FjY291bnRcIjtcclxuaW1wb3J0IHsgUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9Qb3J0YWxJbnZpdGF0aW9uQXV0aGVudGljYXRpb25UeXBlXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IFRlbGVwaG9uZUZpZWxkIH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvRmllbGRzL1RlbGVwaG9uZUZpZWxkXCI7XHJcbmltcG9ydCB7IHRvUGFydGlhbERpZmYgfSBmcm9tIFwiLi4vLi4vSGVscGVycy90b1BhcnRpYWxEaWZmXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25zUGFuZWwgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9QZXJtaXNzaW9uc1BhbmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBQb3B1cExpbmtGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9Qb3B1cExpbmtGaWVsZFwiO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uTGV2ZWxTdW1tYXJ5IH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvUGVybWlzc2lvbkxldmVsU3VtbWFyeVwiO1xyXG5pbXBvcnQgeyBCYW5uZXJTYXZlUHJlcmVxdWlzaXRlcyB9IGZyb20gXCIuLi8uLi9UeXBlcy9CYW5uZXJTYXZlUHJlcmVxdWlzaXRlc1wiO1xyXG5pbXBvcnQgeyBDb250YWN0Rm9yVXBkYXRlIH0gZnJvbSBcIi4uLy4uL01vZGVscy9Db250YWN0Rm9yVXBkYXRlXCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL0NvbnRhY3RGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi8uLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IE9yZGVyUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uLy4uL0VudW1zL09yZGVyUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuLi8uLi9SZWR1Y2Vyc1wiO1xyXG5cclxuLyogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIEVkaXQgQ29udGFjdCBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBDb250YWN0c0VkaXRDb250ZW50OiBSZWFjdC5GQzx7IGluaXRpYWxDb250YWN0OiBDb250YWN0Rm9yUmV0cmlldmFsOyBvblNhdmU6ICgpID0+IHZvaWQgfT4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IGNvbnRhY3RzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5jb250YWN0cyk7XHJcbiAgICBjb25zdCBhY2NvdW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuYWNjb3VudHMpO1xyXG4gICAgY29uc3QgaW5jaWRlbnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5pbmNpZGVudHMpO1xyXG4gICAgY29uc3QgZGlzcGF0Y2g6IChhY3Rpb246IEFjdGlvbikgPT4gdm9pZCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBkYXRhU2VydmljZSA9IHVzZURhdGFTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IHsgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhLCB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YSB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuXHJcbiAgICBjb25zdCBtYXBDb250YWN0VG9VcGRhdGVUeXBlID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGZpcnN0bmFtZTogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LmZpcnN0bmFtZSxcclxuICAgICAgICAgICAgbGFzdG5hbWU6IHByb3BzLmluaXRpYWxDb250YWN0Py5sYXN0bmFtZSxcclxuICAgICAgICAgICAgam9idGl0bGU6IHByb3BzLmluaXRpYWxDb250YWN0Py5qb2J0aXRsZSxcclxuICAgICAgICAgICAgdGVsZXBob25lMTogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LnRlbGVwaG9uZTEsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGU6IHByb3BzLmluaXRpYWxDb250YWN0Py5iaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlLFxyXG4gICAgICAgICAgICBfYmlzdGVjaF9wcmltYXJ5c2l0ZV92YWx1ZTogcHJvcHMuaW5pdGlhbENvbnRhY3Q/Ll9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbDogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LmJpc3RlY2hfcGVybWlzc2lvbmxldmVsLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWw6IHByb3BzLmluaXRpYWxDb250YWN0Py5iaXN0ZWNoX3BvcnRhbGNhc2VwZXJtaXNzaW9ubGV2ZWwsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbDogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LmJpc3RlY2hfcG9ydGFsY29udGFjdHBlcm1pc3Npb25sZXZlbCxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxvcmRlcnBlcm1pc3Npb25sZXZlbDogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LmJpc3RlY2hfcG9ydGFsb3JkZXJwZXJtaXNzaW9ubGV2ZWwsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbDogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LmJpc3RlY2hfcG9ydGFscHJvamVjdHBlcm1pc3Npb25sZXZlbCxcclxuICAgICAgICAgICAgYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsOiBwcm9wcy5pbml0aWFsQ29udGFjdD8uYmlzdGVjaF9wb3J0YWxpbnZvaWNlcGVybWlzc2lvbmxldmVsLFxyXG4gICAgICAgICAgICBlbWFpbGFkZHJlc3MxOiBwcm9wcy5pbml0aWFsQ29udGFjdD8uZW1haWxhZGRyZXNzMSxcclxuICAgICAgICAgICAgbW9iaWxlcGhvbmU6IHByb3BzLmluaXRpYWxDb250YWN0Py5tb2JpbGVwaG9uZSxcclxuICAgICAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zOiBwcm9wcy5pbml0aWFsQ29udGFjdD8uYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlczogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LmJpc3RlY2hfcmVjZWl2ZW1ham9yaW5jaWRlbnR1cGRhdGVzLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zOiBwcm9wcy5pbml0aWFsQ29udGFjdD8uYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9ucyxcclxuICAgICAgICAgICAgYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzOiBwcm9wcy5pbml0aWFsQ29udGFjdD8uYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzLFxyXG4gICAgICAgICAgICBiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXI6IHByb3BzLmluaXRpYWxDb250YWN0Py5iaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXIsXHJcbiAgICAgICAgICAgIGJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzOiBwcm9wcy5pbml0aWFsQ29udGFjdD8uYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXMsXHJcbiAgICAgICAgICAgIHN0YXRlY29kZTogcHJvcHMuaW5pdGlhbENvbnRhY3Q/LnN0YXRlY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBbY29udGFjdFRvVXBkYXRlLCBzZXRDb250YWN0VG9VcGRhdGVdID0gdXNlU3RhdGU8Q29udGFjdEZvclVwZGF0ZT4obWFwQ29udGFjdFRvVXBkYXRlVHlwZSgpKTtcclxuXHJcbiAgICBjb25zdCBzYXZlUHJlcmVxdWlzaXRlczogQmFubmVyU2F2ZVByZXJlcXVpc2l0ZXNbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZpcnN0IE5hbWUgaXMgUG9wdWxhdGVkLlwiLFxyXG4gICAgICAgICAgICBpc1ZhbGlkOiAoKSA9PlxyXG4gICAgICAgICAgICAgICAgY29udGFjdFRvVXBkYXRlLmJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGUgIT09IFBvcnRhbENvbnRhY3RUeXBlLkluZGl2aWR1YWxDb250YWN0IHx8XHJcbiAgICAgICAgICAgICAgICBCb29sZWFuKGNvbnRhY3RUb1VwZGF0ZS5maXJzdG5hbWUpLFxyXG4gICAgICAgICAgICBjdXN0b21lck1lc3NhZ2U6IFwiUGxlYXNlIHBvcHVsYXRlIGEgJ0ZpcnN0IE5hbWUnLlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMYXN0IE5hbWUgaXMgUG9wdWxhdGVkLlwiLFxyXG4gICAgICAgICAgICBpc1ZhbGlkOiAoKSA9PiBCb29sZWFuKGNvbnRhY3RUb1VwZGF0ZS5sYXN0bmFtZSksXHJcbiAgICAgICAgICAgIGN1c3RvbWVyTWVzc2FnZTogXCJQbGVhc2UgcG9wdWxhdGUgYSAnTGFzdCBOYW1lJy5cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiSm9iIFRpdGxlIGlzIFBvcHVsYXRlZC5cIixcclxuICAgICAgICAgICAgaXNWYWxpZDogKCkgPT5cclxuICAgICAgICAgICAgICAgIGNvbnRhY3RUb1VwZGF0ZS5iaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlICE9PSBQb3J0YWxDb250YWN0VHlwZS5JbmRpdmlkdWFsQ29udGFjdCB8fFxyXG4gICAgICAgICAgICAgICAgQm9vbGVhbihjb250YWN0VG9VcGRhdGUuam9idGl0bGUpLFxyXG4gICAgICAgICAgICBjdXN0b21lck1lc3NhZ2U6IFwiUGxlYXNlIHBvcHVsYXRlIGEgJ0pvYiBUaXRsZScuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbnRhY3QgVHlwZSBpcyBub3QgUG9wdWxhdGVkLlwiLFxyXG4gICAgICAgICAgICBpc1ZhbGlkOiAoKSA9PiBCb29sZWFuKHByb3BzLmluaXRpYWxDb250YWN0LmJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGUpLFxyXG4gICAgICAgICAgICBjdXN0b21lck1lc3NhZ2U6IFwiJ0NvbnRhY3QgVHlwZScgY2Fubm90IGJlIHVwZGF0ZWQgYWZ0ZXIgY3JlYXRpb24uXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVtYWlsIEFkZHJlc3MgaXMgbWFsZm9ybWVkLlwiLFxyXG4gICAgICAgICAgICBpc1ZhbGlkOiAoKSA9PiBwcm9wcy5pbml0aWFsQ29udGFjdC5lbWFpbGFkZHJlc3MxPy5pbmNsdWRlcyhcIkBcIikgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgIGN1c3RvbWVyTWVzc2FnZTogXCJQbGVhc2UgaW5jbHVkZSBhbiAnQCcgaW4gdGhlIGVtYWlsIGFkZHJlc3MuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVuc3VyZSBhIGNvbnRhY3QgdHlwZSBpcyBwb3B1bGF0ZWRcIixcclxuICAgICAgICAgICAgaXNWYWxpZDogKCkgPT5cclxuICAgICAgICAgICAgICAgIEJvb2xlYW4oY29udGFjdFRvVXBkYXRlLmVtYWlsYWRkcmVzczEgfHwgY29udGFjdFRvVXBkYXRlLnRlbGVwaG9uZTEgfHwgY29udGFjdFRvVXBkYXRlLm1vYmlsZXBob25lKSxcclxuICAgICAgICAgICAgY3VzdG9tZXJNZXNzYWdlOiBcIllvdSBtdXN0IHN1cHBseSBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZyBmaWVsZHM6IEVtYWlsLCBEaXJlY3QgRGlhbCwgTW9iaWxlIFBob25lLlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IFtjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiwgc2V0Q2FsbFRvQWN0aW9uSW5mb3JtYXRpb25dID0gdXNlU3RhdGU8TG9hZGluZ0RhdGE8Q2FsbFRvQWN0aW9uSW5mb3JtYXRpb24+Pih7XHJcbiAgICAgICAgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgW21vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLCBzZXRNb3N0UmVjZW50UG9ydGFsSW52aXRhdGlvbl0gPSB1c2VTdGF0ZTxMb2FkaW5nRGF0YTxQb3J0YWxJbnZpdGF0aW9uIHwgbnVsbD4+KHtcclxuICAgICAgICBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBbY2FsbFRvQWN0aW9uVGl0bGUsIHNldENhbGxUb0FjdGlvblRpdGxlXSA9IHVzZVN0YXRlPHN0cmluZz4oXCJcIik7XHJcbiAgICBjb25zdCBbY2FsbFRvQWN0aW9uRGVzY3JpcHRpb24sIHNldENhbGxUb0FjdGlvbkRlc2NyaXB0aW9uXSA9IHVzZVN0YXRlPHN0cmluZz4oXCJcIik7XHJcbiAgICBjb25zdCBbY2FsbFRvQWN0aW9uSWNvbiwgc2V0Q2FsbFRvQWN0aW9uSWNvbl0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpO1xyXG4gICAgY29uc3QgW2lzUG9wdXBPcGVuLCBzZXRJc1BvcHVwT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgZGlydHlCYW5uZXJTZXR0aW5ncyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuZGlydHlCYW5uZXJTZXR0aW5ncyk7XHJcblxyXG4gICAgLy8gRmxhZyBob2xkaW5nIHdoZXRoZXIgdGhlIGZvcm0gaGFzIGF0dGVtcHRlZCB0byBiZSBzdWJtaXR0ZWRcclxuICAgIGNvbnN0IFtmb3JtU3VibWl0QXR0ZW1wdGVkLCBzZXRGb3JtU3VibWl0QXR0ZW1wdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICAvLyBGbGFnIGhvbGRpbmcgd2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBsb2FkZWRcclxuICAgIGNvbnN0IFtpc0xvYWRlZCwgc2V0SXNMb2FkZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICAgIC8vIFByb2dyZXNzIG9mIHRoZSBDb250YWN0IHVwZGF0ZVxyXG4gICAgY29uc3QgW3N1Ym1pc3Npb25TdGF0ZSwgc2V0U3VibWlzc2lvblN0YXRlXSA9IHVzZVN0YXRlPFN1Ym1pc3Npb25TdGF0ZT4oe1xyXG4gICAgICAgIHN0YXRlOiBcImlkbGVcIixcclxuICAgIH0pO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlKG1hcENvbnRhY3RUb1VwZGF0ZVR5cGUoKSk7XHJcblxyXG4gICAgICAgIHNldElzRGlydHkoZmFsc2UpO1xyXG4gICAgfSwgW3Byb3BzLmluaXRpYWxDb250YWN0XSk7XHJcblxyXG4gICAgY29uc3QgaXNEaWZmQmV0d2VlbkluaXRpYWxBbmRVcGRhdGVkQ29udGFjdCA9ICh1cGRhdGVkQ29udGFjdDogQ29udGFjdEZvclVwZGF0ZSkgPT4ge1xyXG4gICAgICAgIC8vIE9taXQgdGhlIHN0YXRlY29kZSBmcm9tIHRoZSB2YWxpZGF0aW9uIGFzIHRoaXMgaXMgYSBzaWRlIGVmZmVjdCBvZiB0aGUgQ2FsbC10by1BY3Rpb25cclxuICAgICAgICBjb25zdCB7IHN0YXRlY29kZSwgLi4uY29udGFjdFRvVmFsaWRhdGUgfSA9IHVwZGF0ZWRDb250YWN0O1xyXG5cclxuICAgICAgICAvLyBDb252ZXJ0IGVtcHR5IHN0cmluZ3MgdG8gbnVsbCBkaXJlY3RseVxyXG4gICAgICAgIC8vIGJ1ZyAjMzUwMDRcclxuICAgICAgICBjb25zdCBzYW5pdGl6ZUNvbnRhY3QgPSAoY29udGFjdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNhbml0aXplZENvbnRhY3Q6IGFueSA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBjb250YWN0KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGFjdC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2FuaXRpemVkQ29udGFjdFtrZXldID0gY29udGFjdFtrZXldID09PSBcIlwiID8gbnVsbCA6IGNvbnRhY3Rba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc2FuaXRpemVkQ29udGFjdDtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyBDb252ZXJ0IGVtcHR5IHN0cmluZ3MgdG8gbnVsbCBmb3IgY29tcGFyaXNvblxyXG4gICAgICAgIGNvbnN0IGluaXRpYWxDb250YWN0U2FuaXRpemVkID0gc2FuaXRpemVDb250YWN0KHByb3BzLmluaXRpYWxDb250YWN0KTtcclxuICAgICAgICBjb25zdCBjb250YWN0VG9WYWxpZGF0ZVNhbml0aXplZCA9IHNhbml0aXplQ29udGFjdChjb250YWN0VG9WYWxpZGF0ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0b1BhcnRpYWxEaWZmKGluaXRpYWxDb250YWN0U2FuaXRpemVkLCBjb250YWN0VG9WYWxpZGF0ZVNhbml0aXplZCkpLmxlbmd0aCA+IDA7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgQ29udGFjdCB0byBVcGRhdGUgd2l0aCBhbiBpcyBkaXJ0eSB2YWx1ZSBiYXNlZCBvbiB0aGUgZGlmZiBiZXR3ZWVuIHRoZSBpbml0aWFsIGNvbnRhY3QgYW5kIGN1cnJlbnRcclxuICAgICAqIEBwYXJhbSBjb250YWN0IFRoZSBjb250YWN0IGZvciB1cGRhdGUuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5ID0gKGNvbnRhY3Q6IENvbnRhY3RGb3JVcGRhdGUpID0+IHtcclxuICAgICAgICBzZXRDb250YWN0VG9VcGRhdGUoY29udGFjdCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSBpc0RpZmZCZXR3ZWVuSW5pdGlhbEFuZFVwZGF0ZWRDb250YWN0KGNvbnRhY3QpO1xyXG5cclxuICAgICAgICBzZXRJc0RpcnR5KGhhc0NoYW5nZWQsIGNvbnRhY3QpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgd2hldGhlciB0aGVyZSBhcmUgYW55IHVuc2F2ZWQgY2hhbmdlcyBvbiB0aGUgcGFnZS5cclxuICAgICAqIEBwYXJhbSBoYXNVbnNhdmVkQ2hhbmdlcyBXaGV0aGVyIHRoZXJlIGFyZSBhbnkgdW5zYXZlZCBjaGFuZ2VzLlxyXG4gICAgICogQHBhcmFtIGNvbnRhY3QgVGhlIGNvbnRhY3QgZm9yIHVwZGF0ZS5cclxuICAgICAqL1xyXG4gICAgY29uc3Qgc2V0SXNEaXJ0eSA9IChoYXNVbnNhdmVkQ2hhbmdlczogYm9vbGVhbiwgY29udGFjdD86IENvbnRhY3RGb3JVcGRhdGUpID0+IHtcclxuICAgICAgICBpZiAoIWhhc1Vuc2F2ZWRDaGFuZ2VzIHx8ICFjb250YWN0KSB7XHJcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0RGlydHlCYW5uZXJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgZGlydHlCYW5uZXJTZXR0aW5nczogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgdHlwZTogXCJTZXREaXJ0eUJhbm5lclNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgIGRpcnR5QmFubmVyU2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic2hvd1NhdmVCdXR0b25cIixcclxuICAgICAgICAgICAgICAgIHNhdmVGdW5jdGlvbjogKCkgPT4gb25TdWJtaXQoY29udGFjdCksXHJcbiAgICAgICAgICAgICAgICBzdWJtaXNzaW9uUHJlcmVxdWlzaXRlczogc2F2ZVByZXJlcXVpc2l0ZXMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFdoZW4gdGhlICdtb3N0UmVjZW50UG9ydGFsSW52aXRhdGlvbicgaGFzIGxvYWRlZCAtIHNldCB0aGUgJ2NhbGxUb0FjdGlvbkluZm9ybWF0aW9uJ1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoIXByb3BzLmluaXRpYWxDb250YWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtb3N0UmVjZW50UG9ydGFsSW52aXRhdGlvbi5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChhY2NvdW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgQ2FsbCBUbyBBY3Rpb24gSW5mb3JtYXRpb24uXHJcbiAgICAgICAgc2V0Q2FsbFRvQWN0aW9uSW5mbyhwcm9wcy5pbml0aWFsQ29udGFjdCwgbW9zdFJlY2VudFBvcnRhbEludml0YXRpb24uZGF0YSk7XHJcblxyXG4gICAgICAgIHNldENhbGxUb0FjdGlvbkluZm9ybWF0aW9uKCgpID0+IHtcclxuICAgICAgICAgICAgLy8gQW4gT2JqZWN0IGNvbnRhaW5pbmcgdGhlICdEZWFjdGl2YXRlJyBDYWxsIFRvIEFjdGlvbiBCdXR0b24gSW5mb3JtYXRpb24uXHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2YXRlQ29udGFjdDogQnV0dG9uSW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJBY3RpdmF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgaGFzTW9kYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhcHBJbnNpZ2h0czoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pc3Npb25FdmVudFR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ2FsbC10by1BY3Rpb24gc3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkU3VjY2Vzc2Z1bGx5RXZlbnRUeXBlOiBcIkVkaXQgQ29udGFjdCAtIENhbGwtdG8tQWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBtb2RhbEluZm86IHtcclxuICAgICAgICAgICAgICAgICAgICBpc0Vycm9yTW9kYWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsVGl0bGU6IFwiQWN0aXZhdGVcIixcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbEJ1dHRvbkxhYmVsOiBcIkFjdGl2YXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxDb250ZW50OiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhY3RpdmF0ZSB0aGlzIHJlY29yZD9cIixcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFxcYGNvbnRhY3RzXFxgIHRvIGhhdmUgbG9hZGVkIGJlZm9yZSBzdWJtaXNzaW9uYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgQ29udGFjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ29udGFjdCA9IGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZUNvbnRhY3QocHJvcHMuaW5pdGlhbENvbnRhY3QuY29udGFjdGlkLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZWNvZGU6IENvbnRhY3RTdGF0ZUNvZGUuQWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgdXBkYXRlZCBDb250YWN0IHRvIHN0YXRlLCBzbyBpdCBjYW4gYmUgdmlld2VkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0Q29udGFjdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBjb250YWN0cy5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNvbnRhY3QpID0+IGNvbnRhY3QuY29udGFjdGlkICE9PSB1cGRhdGVkQ29udGFjdC5jb250YWN0aWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoW3VwZGF0ZWRDb250YWN0XSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQWRkTm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkNvbnRhY3QgYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZE9uUmVsYXRpdmVVcmw6IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBBbiBPYmplY3QgY29udGFpbmluZyB0aGUgJ0RlYWN0aXZhdGUnIENhbGwgVG8gQWN0aW9uIEJ1dHRvbiBJbmZvcm1hdGlvbi5cclxuICAgICAgICAgICAgY29uc3QgZGVhY3RpdmF0ZUNvbnRhY3Q6IEJ1dHRvbkluZm9ybWF0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiRGVhY3RpdmF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgaGFzTW9kYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhcHBJbnNpZ2h0czoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pc3Npb25FdmVudFR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ2FsbC10by1BY3Rpb24gc3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkU3VjY2Vzc2Z1bGx5RXZlbnRUeXBlOiBcIkVkaXQgQ29udGFjdCAtIENhbGwtdG8tQWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBtb2RhbEluZm86IHtcclxuICAgICAgICAgICAgICAgICAgICBpc0Vycm9yTW9kYWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsVGl0bGU6IFwiQXJlIHlvdSBzdXJlP1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiRGVhY3RpdmF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQ29udGVudDogKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVnYWxFbnRpdHkgPSBhY2NvdW50cy5kYXRhLmZpbmQoKHgpID0+IHguYWNjb3VudGlkID09PSB1c2VyTWV0YWRhdGEuYWNjb3VudElkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERldGVybWluZSB3aGV0aGVyIHRoaXMgQ29udGFjdCBiZWluZyBkZWFjdGl2YXRlZCBpcyB0aGUgS2V5IFNlcnZpY2UgQ29udGFjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0tleVNlcnZpY2VDb250YWN0ID0gQm9vbGVhbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsRW50aXR5Py5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSA9PT0gcHJvcHMuaW5pdGlhbENvbnRhY3QuY29udGFjdGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNLZXlTZXJ2aWNlQ29udGFjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2hvdyBhIHNwZWNpZmljIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBZb3UgYXJlIGFib3V0IHRvIGRlYWN0aXZhdGUgdGhlIEtleSBTZXJ2aWNlIENvbnRhY3Qgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBvcmdhbmlzYXRpb24uIEFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBjb250aW51ZT9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERldGVybWluZSB3aGV0aGVyIHRoaXMgQ29udGFjdCBpcyB0aGUgUHJpbWFyeSBDb250YWN0IG9mIGFueSBhY3RpdmUgQ2FzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ByaW1hcnlDb250YWN0T2ZBbnlDYXNlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2lkZW50cy5hY3RpdmVJbmNpZGVudHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5kYXRhLnNvbWUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluY2lkZW50KSA9PiBpbmNpZGVudC5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSA9PT0gcHJvcHMuaW5pdGlhbENvbnRhY3QuY29udGFjdGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJpbWFyeUNvbnRhY3RPZkFueUNhc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgYSBzcGVjaWZpYyBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gWW91IGFyZSBhYm91dCB0byBkZWFjdGl2YXRlIHRoZSBQcmltYXJ5IENvbnRhY3Qgb2YgYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhc3Qgb25lIGNhc2UuIEFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBjb250aW51ZT9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVsc2U7IHNob3cgYSBnZW5lcmljIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDw+WW91IGFyZSBhYm91dCB0byBkZWFjdGl2YXRlIHRoaXMgY29udGFjdC4gQXJlIHlvdSBzdXJlIHlvdSB3aXNoIHRvIGNvbnRpbnVlPzwvPjtcclxuICAgICAgICAgICAgICAgICAgICB9KSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgXFxgY29udGFjdHNcXGAgdG8gaGF2ZSBsb2FkZWQgYmVmb3JlIHN1Ym1pc3Npb25gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBDb250YWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDb250YWN0ID0gYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlQ29udGFjdChwcm9wcy5pbml0aWFsQ29udGFjdC5jb250YWN0aWQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlY29kZTogQ29udGFjdFN0YXRlQ29kZS5JbmFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIG5ld2x5IHVwZGF0ZWQgQ29udGFjdCB0byBzdGF0ZSwgc28gaXQgY2FuIGJlIHZpZXdlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIlNldENvbnRhY3RzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0czoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogY29udGFjdHMuZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChjb250YWN0KSA9PiBjb250YWN0LmNvbnRhY3RpZCAhPT0gdXBkYXRlZENvbnRhY3QuY29udGFjdGlkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0KFt1cGRhdGVkQ29udGFjdF0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkFkZE5vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCJDb250YWN0IGRlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZE9uUmVsYXRpdmVVcmw6IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBBbiBPYmplY3QgY29udGFpbmluZyB0aGUgJ1NlbmQgSW52aXRlJyBDYWxsIFRvIEFjdGlvbiBCdXR0b24gSW5mb3JtYXRpb24uXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbmRJbnZpdGU6IEJ1dHRvbkluZm9ybWF0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiU2VuZCBJbnZpdGVcIixcclxuICAgICAgICAgICAgICAgIGhhc01vZGFsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgYXBwSW5zaWdodHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBzdWJtaXNzaW9uRXZlbnRUeXBlOiBcIkVkaXQgQ29udGFjdCAtIENhbGwtdG8tQWN0aW9uIHN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZFN1Y2Nlc3NmdWxseUV2ZW50VHlwZTogXCJFZGl0IENvbnRhY3QgLSBDYWxsLXRvLUFjdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgbW9kYWxJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXNFcnJvck1vZGFsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbFRpdGxlOiBcIlNlbmQgSW52aXRlP1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiUHJvY2VlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQ29udGVudDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIHNlbmQgYW4gaW52aXRhdGlvbiB3aXRoe1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5pbml0aWFsQ29udGFjdC5iaXN0ZWNoX3Blcm1pc3Npb25sZXZlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBCYXNlUGVybWlzc2lvbkxldmVsW3Byb3BzLmluaXRpYWxDb250YWN0LmJpc3RlY2hfcGVybWlzc2lvbmxldmVsXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIm5vXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gY2hhbmdlIHRoZSBjb250YWN0J3MgcGVybWlzc2lvbnMsIHBsZWFzZSBzYXZlIHRoZSBmb3JtIGZpcnN0LjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbmQgdGhlIFBvcnRhbCBJbnZpdGF0aW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBkYXRhU2VydmljZS5leGVjdXRlU2VuZEludml0YXRpb25Qb3J0YWxBY3Rpb24ocHJvcHMuaW5pdGlhbENvbnRhY3QuY29udGFjdGlkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCBhIGludml0YXRpb24gdG8gaGlkZSB0aGUgJ1NlbmQgSW52aXRlJyBidXR0b24gYWZ0ZXIgaXQgaGFzIGJlZW4gY2xpY2tlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9zdFJlY2VudFBvcnRhbEludml0YXRpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWR4X2ludml0ZWNvbnRhY3RfdmFsdWU6IHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHhfaW52aXRhdGlvbmlkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRvbjogbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNjb2RlOiBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlNlbnRcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQWRkTm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkNvbnRhY3QgSW52aXRhdGlvbiBzZW50IHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZE9uUmVsYXRpdmVVcmw6IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBBbiBPYmplY3QgY29udGFpbmluZyB0aGUgJ1NldCBhcyBLZXkgQ29udGFjdCcgQ2FsbCBUbyBBY3Rpb24gQnV0dG9uIEluZm9ybWF0aW9uLlxyXG4gICAgICAgICAgICBjb25zdCBzZXRBc0tleUNvbnRhY3RCdXR0b246IEJ1dHRvbkluZm9ybWF0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiU2V0IGFzIEtleSBDb250YWN0XCIsXHJcbiAgICAgICAgICAgICAgICBoYXNNb2RhbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGFwcEluc2lnaHRzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VibWlzc2lvbkV2ZW50VHlwZTogXCJFZGl0IENvbnRhY3QgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWRTdWNjZXNzZnVsbHlFdmVudFR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ2FsbC10by1BY3Rpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG1vZGFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgIGlzRXJyb3JNb2RhbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxUaXRsZTogXCJBcmUgeW91IHN1cmU/XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxCdXR0b25MYWJlbDogXCJQcm9jZWVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxDb250ZW50OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkFyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBzZXQgdGhpcyB1c2VyIGFzIHlvdXIgb3JnYW5pc2F0aW9uJ3MgS2V5IFNlcnZpY2UgQ29udGFjdD9cIixcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2NvdW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFxcYGFjY291bnRzXFxgIHRvIGhhdmUgbG9hZGVkIGJlZm9yZSBzdWJtaXNzaW9uYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgQWNjb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQWNjb3VudDogQWNjb3VudCA9IGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZUFjY291bnQodXNlck1ldGFkYXRhLmFjY291bnRJZCEsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlOiBwcm9wcy5pbml0aWFsQ29udGFjdC5jb250YWN0aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBuZXdseSB1cGRhdGVkIENvbnRhY3QgdG8gc3RhdGUsIHNvIGl0IGNhbiBiZSB2aWV3ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRBY2NvdW50c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGFjY291bnRzLmRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoYWNjb3VudDogQWNjb3VudCkgPT4gYWNjb3VudC5hY2NvdW50aWQgIT09IHVwZGF0ZWRBY2NvdW50LmFjY291bnRpZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdChbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPdmVyd3JpdGUgdGhlIFByaW1hcnkgQ29udGFjdCB0byB0aGUgZXhwZWN0ZWQgQ29udGFjdCB0byBjYXRlciBmb3IgUG9ydGFsIGNhY2hlIGRlbGF5c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAuLi51cGRhdGVkQWNjb3VudCwgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJBZGROb3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiS2V5IENvbnRhY3QgdXBkYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWRPblJlbGF0aXZlVXJsOiBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVVudGlsOiBEYXRlSGVscGVyLmFkZFNlY29uZHMobmV3IERhdGUoKSwgMTApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgLy8gQW4gT2JqZWN0IGNvbnRhaW5pbmcgdGhlICdTZW5kIEludml0ZScgRXJyb3IgTW9kYWwgQnV0dG9uIHdoZW4gdGhlIENvbnRhY3QgaGFzIG5vIEVtYWlsIEFkZHJlc3MuXHJcbiAgICAgICAgICAgIGNvbnN0IG5vRW1haWxBZGRyZXNzU2VuZEludml0ZUVycm9yOiBCdXR0b25JbmZvcm1hdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlNlbmQgSW52aXRlXCIsXHJcbiAgICAgICAgICAgICAgICBoYXNNb2RhbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGFwcEluc2lnaHRzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VibWlzc2lvbkV2ZW50VHlwZTogXCJFZGl0IENvbnRhY3QgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWRTdWNjZXNzZnVsbHlFdmVudFR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ2FsbC10by1BY3Rpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG1vZGFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgIGlzRXJyb3JNb2RhbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbFRpdGxlOiBcIk1pc3NpbmcgRW1haWwgQWRkcmVzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxDb250ZW50OiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRhY3QgY2Fubm90IGJlIGludml0ZWQgdG8gdGhlIEJpc3RlY2ggcG9ydGFsIGFzIHRoZXkgaGF2ZSBubyBlbWFpbCBhZGRyZXNzLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSB1cGRhdGUgdGhpcyBpbmZvcm1hdGlvbiBhbmQgc2F2ZSB0aGUgY29udGFjdCBiZWZvcmUgaW52aXRpbmcgdGhlbSB0byB0aGUgQmlzdGVjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBBbiBPYmplY3QgY29udGFpbmluZyB0aGUgJ1NlbmQgSW52aXRlJyBFcnJvciBNb2RhbCBCdXR0b24gd2hlbiB0aGUgQ29udGFjdCBoYXMgYSBQZXJtaXNzaW9uIExldmVsIG9mICdObyBBY2Nlc3MnLlxyXG4gICAgICAgICAgICBjb25zdCBub0FjY2Vzc1NlbmRJbnZpdGVFcnJvcjogQnV0dG9uSW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJTZW5kIEludml0ZVwiLFxyXG4gICAgICAgICAgICAgICAgaGFzTW9kYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhcHBJbnNpZ2h0czoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pc3Npb25FdmVudFR5cGU6IFwiRWRpdCBDb250YWN0IC0gQ2FsbC10by1BY3Rpb24gc3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkU3VjY2Vzc2Z1bGx5RXZlbnRUeXBlOiBcIkVkaXQgQ29udGFjdCAtIENhbGwtdG8tQWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBtb2RhbEluZm86IHtcclxuICAgICAgICAgICAgICAgICAgICBpc0Vycm9yTW9kYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxUaXRsZTogXCJNaXNzaW5nIFBlcm1pc3Npb24gTGV2ZWxcIixcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbEJ1dHRvbkxhYmVsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQ29udGVudDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb250YWN0IGNhbm5vdCBiZSBpbnZpdGVkIHRvIHRoZSBCaXN0ZWNoIHBvcnRhbCBhcyB0aGV5IGhhdmV7XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5ObyBBY2Nlc3M8L3N0cm9uZz4gYXMgdGhlaXIgUGVybWlzc2lvbiBMZXZlbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSB1cGRhdGUgdGhpcyBpbmZvcm1hdGlvbiBhbmQgc2F2ZSB0aGUgY29udGFjdCBiZWZvcmUgaW52aXRpbmcgdGhlbSB0byB0aGUgQmlzdGVjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBBIHZhbHVlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlICdEZWFjdGl2YXRlJyBidXR0b24gaXMgc2hvd24uXHJcbiAgICAgICAgICAgIGNvbnN0IGlzRGVhY3RpdmF0ZUJ1dHRvbkRpc3BsYXllZCA9ICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZS5BY3RpdmU7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50VXNlciA9IHVzZXJNZXRhZGF0YS5jb250YWN0SWQgPT09IHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNBY3RpdmUgJiYgIWlzQ3VycmVudFVzZXI7XHJcbiAgICAgICAgICAgIH0pKCk7XHJcblxyXG4gICAgICAgICAgICAvLyBBIHZhbHVlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlICdBY3RpdmF0ZScgYnV0dG9uIGlzIHNob3duLlxyXG4gICAgICAgICAgICBjb25zdCBpc0FjdGl2YXRlQnV0dG9uRGlzcGxheWVkID0gKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzSW5hY3RpdmUgPSBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGUuSW5hY3RpdmU7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50VXNlciA9IHVzZXJNZXRhZGF0YS5jb250YWN0SWQgPT09IHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNJbmFjdGl2ZSAmJiAhaXNDdXJyZW50VXNlcjtcclxuICAgICAgICAgICAgfSkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFuIElJRkUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgJ1NlbmQgSW52aXRlJyBidXR0b24gaXMgc2hvd24uXHJcbiAgICAgICAgICAgIGNvbnN0IGlzU2VuZEludml0ZUJ1dHRvbkRpc3BsYXllZCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gcG9ydGFsIGludml0YXRpb25zLlxyXG4gICAgICAgICAgICAgICAgaWYgKCFtb3N0UmVjZW50UG9ydGFsSW52aXRhdGlvbi5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRGVhY3RpdmF0ZUJ1dHRvbkRpc3BsYXllZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNQZW5kaW5nSW52aXRlID1cclxuICAgICAgICAgICAgICAgICAgICBtb3N0UmVjZW50UG9ydGFsSW52aXRhdGlvbi5kYXRhLnN0YXR1c2NvZGUgPT09IFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiUGVuZGluZyBTZW5kXCJdIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgbW9zdFJlY2VudFBvcnRhbEludml0YXRpb24uZGF0YS5zdGF0dXNjb2RlID09PSBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlNlbnRcIl07XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50VXNlciA9IHVzZXJNZXRhZGF0YS5jb250YWN0SWQgPT09IHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZWFjdGl2YXRlQnV0dG9uRGlzcGxheWVkICYmICFoYXNQZW5kaW5nSW52aXRlICYmICFpc0N1cnJlbnRVc2VyO1xyXG4gICAgICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gQW4gSUlGRSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSAnU2V0IGFzIEtleSBDb250YWN0JyBidXR0b24gaXMgc2hvd24uXHJcbiAgICAgICAgICAgIGNvbnN0IGlzU2V0QXNLZXlDb250YWN0QnV0dG9uRGlzcGxheWVkID0gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIC8vIElzIHRoZSBDb250YWN0IEFjdGl2ZS5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gcHJvcHMuaW5pdGlhbENvbnRhY3Quc3RhdGVjb2RlID09PSBDb250YWN0U3RhdGVDb2RlLkFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJcyB0aGUgY3VycmVudGx5IGxvZ2dlZC1pbiB1c2VyIGFuIEFkbWluaXN0cmF0b3IuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FkbWluaXN0cmF0b3IgPVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJNZXRhZGF0YS5wb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsID09PSBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIENvbnRhY3RzXCJdO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElzIHRoZSBDb250YWN0IHRoZSBLZXkgQ29udGFjdC5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzS2V5Q29udGFjdCA9IGFjY291bnRzLmRhdGEuc29tZShcclxuICAgICAgICAgICAgICAgICAgICAoYWNjb3VudDogQWNjb3VudCkgPT4gYWNjb3VudC5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSA9PT0gcHJvcHMuaW5pdGlhbENvbnRhY3QuY29udGFjdGlkXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBpc0FjdGl2ZSAmJiBpc0FkbWluaXN0cmF0b3IgJiYgIWlzS2V5Q29udGFjdDtcclxuICAgICAgICAgICAgfSkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFuIElJRkUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgJ0NoYW5nZSBQYXNzd29yZCcgYnV0dG9uIGlzIHNob3duLlxyXG4gICAgICAgICAgICBjb25zdCBpc0NoYW5nZVBhc3N3b3JkQnV0dG9uRGlzcGxheWVkID0gKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudFVzZXIgPSB1c2VyTWV0YWRhdGEuY29udGFjdElkID09PSBwcm9wcy5pbml0aWFsQ29udGFjdC5jb250YWN0aWQ7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNMb2NhbEF1dGggPVxyXG4gICAgICAgICAgICAgICAgICAgIG1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLmRhdGE/LmJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlID09PVxyXG4gICAgICAgICAgICAgICAgICAgIFBvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGUuTG9jYWw7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGUuQWN0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBpc0N1cnJlbnRVc2VyICYmIGlzTG9jYWxBdXRoICYmIGlzQWN0aXZlO1xyXG4gICAgICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gQW4gSUlGRSB1c2VkIHRvIGRldGVybWluZSB0aGUgJ1NlbmQgSW52aXRlJyBidXR0b24gdG8gZGlzcGxheS5cclxuICAgICAgICAgICAgY29uc3Qgc2VuZEludml0ZUJ1dHRvbjogQnV0dG9uSW5mb3JtYXRpb24gPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIENvbnRhY3QgZG9lcyBub3QgaGF2ZSBhbiBFbWFpbCBBZGRyZXNzLlxyXG4gICAgICAgICAgICAgICAgaWYgKCFwcm9wcy5pbml0aWFsQ29udGFjdC5lbWFpbGFkZHJlc3MxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vRW1haWxBZGRyZXNzU2VuZEludml0ZUVycm9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBDb250YWN0IGJlaW5nIGludml0ZWQgZWl0aGVyOlxyXG4gICAgICAgICAgICAgICAgLy8gLSBIYXMgYSBudWxsIGBiaXN0ZWNoX3Blcm1pc3Npb25sZXZlbGBcclxuICAgICAgICAgICAgICAgIC8vIC0gSGFzIGEgYGJpc3RlY2hfcGVybWlzc2lvbmxldmVsYCBvZiAnTm8gQWNjZXNzJ1xyXG4gICAgICAgICAgICAgICAgLy8gLSBIYXMgYWxsIGNoaWxkIFBlcm1pc3Npb24gTGV2ZWxzIG9mICdObyBBY2Nlc3MnXHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgIXByb3BzLmluaXRpYWxDb250YWN0LmJpc3RlY2hfcGVybWlzc2lvbmxldmVsIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuaW5pdGlhbENvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWwgPT09IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gfHxcclxuICAgICAgICAgICAgICAgICAgICAocHJvcHMuaW5pdGlhbENvbnRhY3QuYmlzdGVjaF9wb3J0YWxjb250YWN0cGVybWlzc2lvbmxldmVsID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250YWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxDb250YWN0LmJpc3RlY2hfcG9ydGFsY2FzZXBlcm1pc3Npb25sZXZlbCA9PT0gQ2FzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pbml0aWFsQ29udGFjdC5iaXN0ZWNoX3BvcnRhbG9yZGVycGVybWlzc2lvbmxldmVsID09PSBPcmRlclBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSlcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub0FjY2Vzc1NlbmRJbnZpdGVFcnJvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VuZEludml0ZTtcclxuICAgICAgICAgICAgfSkoKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZVBhc3N3b3JkQnV0dG9uOiBCdXR0b25JbmZvcm1hdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNoYW5nZSBQYXNzd29yZFwiLFxyXG4gICAgICAgICAgICAgICAgaGFzTW9kYWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIvQWNjb3VudC9NYW5hZ2UvQ2hhbmdlUGFzc3dvcmRcIjtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogY2FsbFRvQWN0aW9uVGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNhbGxUb0FjdGlvbkRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246IGNhbGxUb0FjdGlvbkljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4oaXNEZWFjdGl2YXRlQnV0dG9uRGlzcGxheWVkID8gW2RlYWN0aXZhdGVDb250YWN0XSA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGlzQWN0aXZhdGVCdXR0b25EaXNwbGF5ZWQgPyBbYWN0aXZhdGVDb250YWN0XSA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGlzU2VuZEludml0ZUJ1dHRvbkRpc3BsYXllZCA/IFtzZW5kSW52aXRlQnV0dG9uXSA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGlzU2V0QXNLZXlDb250YWN0QnV0dG9uRGlzcGxheWVkID8gW3NldEFzS2V5Q29udGFjdEJ1dHRvbl0gOiBbXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihpc0NoYW5nZVBhc3N3b3JkQnV0dG9uRGlzcGxheWVkID8gW2NoYW5nZVBhc3N3b3JkQnV0dG9uXSA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBjb3JyZWN0IENhc2UgZGVzY3JpcHRpb25cclxuICAgICAgICAgKiBAcGFyYW0gY29udGFjdCB0aGUgQ29udGFjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBmdW5jdGlvbiBzZXRDYWxsVG9BY3Rpb25JbmZvKGNvbnRhY3Q6IENvbnRhY3RGb3JSZXRyaWV2YWwsIHBvcnRhbEludml0YXRpb246IFBvcnRhbEludml0YXRpb24gfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBDb250YWN0IGlzIEluYWN0aXZlLlxyXG4gICAgICAgICAgICBpZiAoY29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGUuSW5hY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvblRpdGxlKFwiSW5hY3RpdmVcIik7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25EZXNjcmlwdGlvbihcIkFjdGl2YXRlIHRoaXMgY29udGFjdCB0byBnaXZlIGFjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkljb24oXCJjb250YWN0LXN0YXR1cy1pbmFjdGl2ZS5zdmdcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoY29udGFjdC5hZHhfaWRlbnRpdHlfbG9nb25lbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25UaXRsZShcIkFjdGl2ZVwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgQ29udGFjdCBpcyB0aGUgY3VycmVudCB1c2VyXHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGFjdC5jb250YWN0aWQgPT09IHVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25EZXNjcmlwdGlvbihcIlVwZGF0ZSB5b3VyIHByb2ZpbGUgaW5mb3JtYXRpb24gYmVsb3dcIik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkRlc2NyaXB0aW9uKFwiRGVhY3RpdmF0ZSB0byByZXZva2UgYWNjZXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkljb24oXCJjb250YWN0LXN0YXR1cy1hY3RpdmUuc3ZnXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIFBvcnRhbCBJbnZpdGF0aW9ucyB0aGVuICdObyBBY2Nlc3MnLlxyXG4gICAgICAgICAgICBpZiAoIXBvcnRhbEludml0YXRpb24pIHtcclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvblRpdGxlKFwiTm8gQWNjZXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGVzY3JpcHRpb24oXCJTZW5kIGFuIGludml0YXRpb24gdG8gZ2l2ZSBhY2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25JY29uKFwiY29udGFjdC1zdGF0dXMtbm8tYWNjZXNzLnN2Z1wiKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIERldGVybWluZSB0aGUgVGl0bGUsIERlc2NyaXB0aW9uIGFuZCBJY29uIGZyb20gdGhlIFBvcnRhbCBJbnZpdGF0aW9uIFN0YXR1cy5cclxuICAgICAgICAgICAgc3dpdGNoIChwb3J0YWxJbnZpdGF0aW9uLnN0YXR1c2NvZGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgUG9ydGFsSW52aXRhdGlvblN0YXR1c0NvZGVbXCJOZXdcIl06XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uVGl0bGUoXCJObyBBY2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGVzY3JpcHRpb24oXCJTZW5kIGFuIGludml0YXRpb24gdG8gZ2l2ZSBhY2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uSWNvbihcImNvbnRhY3Qtc3RhdHVzLW5vLWFjY2Vzcy5zdmdcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiUGVuZGluZyBTZW5kXCJdOlxyXG4gICAgICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvblRpdGxlKFwiQXdhaXRpbmcgUmVkZW1wdGlvblwiKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25EZXNjcmlwdGlvbihcIkF3YWl0aW5nIEludml0YXRpb24gcmVkZW1wdGlvblwiKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25JY29uKFwiY29udGFjdC1zdGF0dXMtYXdhaXRpbmctcmVkZW1wdGlvbi5zdmdcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiU2VudFwiXTpcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25UaXRsZShcIkF3YWl0aW5nIFJlZGVtcHRpb25cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGVzY3JpcHRpb24oXCJBd2FpdGluZyBJbnZpdGF0aW9uIHJlZGVtcHRpb25cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uSWNvbihcImNvbnRhY3Qtc3RhdHVzLWF3YWl0aW5nLXJlZGVtcHRpb24uc3ZnXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSBQb3J0YWxJbnZpdGF0aW9uU3RhdHVzQ29kZVtcIlJlZGVlbWVkXCJdOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250YWN0LmFkeF9pZGVudGl0eV9sb2dvbmVuYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uVGl0bGUoXCJBY3RpdmVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkRlc2NyaXB0aW9uKFwiRGVhY3RpdmF0ZSB0byByZXZva2UgYWNjZXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25JY29uKFwiY29udGFjdC1zdGF0dXMtYWN0aXZlLnN2Z1wiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25UaXRsZShcIk5vIEFjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGVzY3JpcHRpb24oXCJTZW5kIGFuIGludml0YXRpb24gdG8gZ2l2ZSBhY2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkljb24oXCJjb250YWN0LXN0YXR1cy1uby1hY2Nlc3Muc3ZnXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIFBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlW1wiRXhwaXJlZFwiXTpcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25UaXRsZShcIk5vIEFjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25EZXNjcmlwdGlvbihcIlNlbmQgYW4gaW52aXRhdGlvbiB0byBnaXZlIGFjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25JY29uKFwiY29udGFjdC1zdGF0dXMtbm8tYWNjZXNzLnN2Z1wiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uVGl0bGUoXCJObyBBY2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGVzY3JpcHRpb24oXCJTZW5kIGFuIGludml0YXRpb24gdG8gZ2l2ZSBhY2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uSWNvbihcImNvbnRhY3Qtc3RhdHVzLW5vLWFjY2Vzcy5zdmdcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sIFtcclxuICAgICAgICBwcm9wcy5pbml0aWFsQ29udGFjdCxcclxuICAgICAgICBtb3N0UmVjZW50UG9ydGFsSW52aXRhdGlvbixcclxuICAgICAgICBjYWxsVG9BY3Rpb25UaXRsZSxcclxuICAgICAgICBjYWxsVG9BY3Rpb25EZXNjcmlwdGlvbixcclxuICAgICAgICBjYWxsVG9BY3Rpb25JY29uLFxyXG4gICAgICAgIGFjY291bnRzLFxyXG4gICAgICAgIGRhdGFTZXJ2aWNlLFxyXG4gICAgICAgIGRpc3BhdGNoLFxyXG4gICAgICAgIHVzZXJNZXRhZGF0YSxcclxuICAgICAgICBjb250YWN0cyxcclxuICAgIF0pO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBNb3N0IFJlY2VudCBQb3J0YWwgSW52aXRhdGlvbiByZWdhcmRpbmcgdGhlIENvbnRhY3QuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmICghcHJvcHMuaW5pdGlhbENvbnRhY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLmxvYWRpbmdTdGF0dXMgIT09IFwibm90LXN0YXJ0ZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbih7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH0pO1xyXG4gICAgICAgIHNldE1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uKHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfSk7XHJcblxyXG4gICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXRyaWV2ZVBvcnRhbEludml0YXRpb25zKHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIFNvcnQgdGhlIFBvcnRhbCBJbnZpdGF0aW9ucy5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRlZFBvcnRhbEludml0YXRpb25zID0gZGF0YS5zb3J0KFxyXG4gICAgICAgICAgICAgICAgICAgIChpbnZpdGF0aW9uQSwgaW52aXRhdGlvbkIpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGludml0YXRpb25CLmNyZWF0ZWRvbikuZ2V0VGltZSgpIC0gbmV3IERhdGUoaW52aXRhdGlvbkEuY3JlYXRlZG9uKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgc2V0TW9zdFJlY2VudFBvcnRhbEludml0YXRpb24oeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBzb3J0ZWRQb3J0YWxJbnZpdGF0aW9uc1swXSB8fCBudWxsIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiBkaXNwYXRjaCh7IHR5cGU6IFwiQWRkTGF0ZXN0RXJyb3JcIiwgZXJyb3IgfSkpO1xyXG4gICAgfSwgW1xyXG4gICAgICAgIHByb3BzLmluaXRpYWxDb250YWN0LFxyXG4gICAgICAgIGRhdGFTZXJ2aWNlLFxyXG4gICAgICAgIGRpc3BhdGNoLFxyXG4gICAgICAgIG1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLFxyXG4gICAgICAgIHNldENhbGxUb0FjdGlvbkluZm9ybWF0aW9uLFxyXG4gICAgICAgIHNldE1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLFxyXG4gICAgXSk7XHJcblxyXG4gICAgaWYgKCF1c2VyTWV0YWRhdGEuY29udGFjdElkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0aGUgdXNlciBjb250YWN0SUQgdG8gYmUgcG9wdWxhdGVkIGJ1dCB3YXMgJyR7dXNlck1ldGFkYXRhLmNvbnRhY3RJZH0nIGApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBhcyBsb2FkZWRcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0SXNMb2FkZWQodHJ1ZSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgaWYgKCFwcm9wcy5pbml0aWFsQ29udGFjdCB8fCAhY29udGFjdFRvVXBkYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIDxOb3RGb3VuZCB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIHNpbmd1bGFyRW50aXR5TmFtZT1cIkNvbnRhY3RcIiAvPjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IGhhbmRsZXIgZm9yIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm0uXHJcbiAgICAgKiBAcGFyYW0gY29udGFjdCBDb250YWN0IHRvIHVwZGF0ZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQoY29udGFjdDogQ29udGFjdEZvclVwZGF0ZSkge1xyXG4gICAgICAgIGlmIChjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgXFxgY29udGFjdHNcXGAgdG8gaGF2ZSBsb2FkZWQgYmVmb3JlIHN1Ym1pc3Npb25gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZSh7IHN0YXRlOiBcInN1Ym1pdHRpbmdcIiB9KTtcclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgdHlwZTogXCJFZGl0IENvbnRhY3QgLSBDb250YWN0IHVwZGF0ZSBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgY29udGFjdElkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5jb250YWN0aWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCB1cGRhdGVkQ29udGFjdDogQ29udGFjdEZvclJldHJpZXZhbDtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBDb250YWN0XHJcbiAgICAgICAgICAgIHVwZGF0ZWRDb250YWN0ID0gYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlQ29udGFjdChcclxuICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxDb250YWN0LmNvbnRhY3RpZCxcclxuICAgICAgICAgICAgICAgIHRvUGFydGlhbERpZmYocHJvcHMuaW5pdGlhbENvbnRhY3QsIGNvbnRhY3QpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiZXJyb3JlZFwiLCBlcnJvcjogZXJyb3IgYXMgRXJyb3IgfSk7XHJcbiAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkVkaXQgQ29udGFjdCAtIENvbnRhY3QgdXBkYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgY29udGFjdElkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5jb250YWN0aWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgdXBkYXRlZCBDb250YWN0IHRvIHN0YXRlLCBzbyBpdCBjYW4gYmUgdmlld2VkLlxyXG4gICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgdHlwZTogXCJTZXRDb250YWN0c1wiLFxyXG4gICAgICAgICAgICBjb250YWN0czoge1xyXG4gICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgIGRhdGE6IGNvbnRhY3RzLmRhdGEubWFwKChjKSA9PiAoYy5jb250YWN0aWQgPT09IHVwZGF0ZWRDb250YWN0LmNvbnRhY3RpZCA/IHVwZGF0ZWRDb250YWN0IDogYykpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJjb21wbGV0ZWRcIiB9KTtcclxuICAgICAgICBwcm9wcy5vblNhdmUoKTtcclxuXHJcbiAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkFkZE5vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQ29udGFjdCB1cGRhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheWVkT25SZWxhdGl2ZVVybDogYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSR7d2luZG93LmxvY2F0aW9uLnNlYXJjaH1gLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheVVudGlsOiBEYXRlSGVscGVyLmFkZFNlY29uZHMobmV3IERhdGUoKSwgMTApLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25MZXZlbEZpZWxkUmVmID0gdXNlUmVmPEhUTUxMYWJlbEVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxDYWxsVG9BY3Rpb25CYXNlUGFnZVxyXG4gICAgICAgICAgICB0aXRsZT17W3Byb3BzLmluaXRpYWxDb250YWN0LmZpcnN0bmFtZSwgcHJvcHMuaW5pdGlhbENvbnRhY3QubGFzdG5hbWVdLmZpbHRlcigocykgPT4gcykuam9pbihcIiBcIil9XHJcbiAgICAgICAgICAgIHRhZ3M9e1tdfVxyXG4gICAgICAgICAgICBjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbj17Y2FsbFRvQWN0aW9uSW5mb3JtYXRpb259XHJcbiAgICAgICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZT17c2V0U3VibWlzc2lvblN0YXRlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGZvcm1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXQtY29udGFjdFwiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXN1Ym1pdC1hdHRlbXB0ZWQ9e2Zvcm1TdWJtaXRBdHRlbXB0ZWR9XHJcbiAgICAgICAgICAgICAgICBvblN1Ym1pdD17YXN5bmMgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgZGVmYXVsdCBwYWdlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm1cclxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBvblN1Ym1pdChjb250YWN0VG9VcGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIG9uSW52YWxpZD17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgaWYgdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQgKGkuZS4gaWdub3JlIHRoZSB2YWxpZGl0eSBjaGVja3Mgd2hlbiB0aGUgZm9ybSBpcyBpbml0aWFsbHkgbG9hZGVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYSBmbGFnIGRldGFpbGluZyB0aGF0IGEgZm9ybSBzdWJtaXNzaW9uIGhhcyBiZWVuIGF0dGVtcHRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRGb3JtU3VibWl0QXR0ZW1wdGVkKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvcm1hdGlvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+SW5mb3JtYXRpb248L2gyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJDb250YWN0IFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlcl9jb250YWN0X3R5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFBvcnRhbENvbnRhY3RUeXBlLkluZGl2aWR1YWxDb250YWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkluZGl2aWR1YWwgQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogUG9ydGFsQ29udGFjdFR5cGUuVGVhbUNvbnRhY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiVGVhbSBDb250YWN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtwcm9wcy5pbml0aWFsQ29udGFjdC5iaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxTZWxlY3RQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIidDb250YWN0IFR5cGUnIGNhbm5vdCBiZSB1cGRhdGVkIGFmdGVyIGNyZWF0aW9uLlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5pbml0aWFsQ29udGFjdC5iaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRhbENvbnRhY3RUeXBlLkluZGl2aWR1YWxDb250YWN0ID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRmlyc3QgTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlyc3RuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0VG9VcGRhdGUuZmlyc3RuYW1lIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGZpcnN0bmFtZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0VG9VcGRhdGVXaXRoSXNEaXJ0eSh7IC4uLmNvbnRhY3RUb1VwZGF0ZSwgZmlyc3RuYW1lIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IGNvbnRhY3RUb1VwZGF0ZS5maXJzdG5hbWUgIT09IFwiXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHsgLi4uY29udGFjdFRvVXBkYXRlLCBmaXJzdG5hbWU6IFwiXCIgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxDb250YWN0LmJpc3RlY2hfcG9ydGFsY29udGFjdHR5cGUgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0YWxDb250YWN0VHlwZS5JbmRpdmlkdWFsQ29udGFjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJMYXN0IE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJUZWFtIE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsYXN0bmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0VG9VcGRhdGUubGFzdG5hbWUgfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhsYXN0bmFtZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHsgLi4uY29udGFjdFRvVXBkYXRlLCBsYXN0bmFtZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuaW5pdGlhbENvbnRhY3QuYmlzdGVjaF9wb3J0YWxjb250YWN0dHlwZSA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0YWxDb250YWN0VHlwZS5JbmRpdmlkdWFsQ29udGFjdCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkpvYiBUaXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiam9idGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3RUb1VwZGF0ZS5qb2J0aXRsZSB8fCBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhqb2J0aXRsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHsgLi4uY29udGFjdFRvVXBkYXRlLCBqb2J0aXRsZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyByZXF1aXJlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiBjb250YWN0VG9VcGRhdGUuam9idGl0bGUgIT09IFwiXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHsgLi4uY29udGFjdFRvVXBkYXRlLCBqb2J0aXRsZTogXCJcIiB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExvb2t1cEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIl9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlByaW1hcnkgU2l0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25JZD17Y29udGFjdFRvVXBkYXRlLl9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlID8/IG51bGx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsT3B0aW9uc05hbWU9XCJBY3RpdmUgU2l0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFjY291bnRzLmRhdGEubWFwKChhY2NvdW50OiBBY2NvdW50KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBhY2NvdW50LmFjY291bnRpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogYCR7YWNjb3VudC5uYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dDogQWNjb3VudFNpdGVUeXBlW2FjY291bnQuYmlzdGVjaF9zaXRldHlwZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQaWNrYWJsZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudC5zdGF0ZWNvZGUgPT09IEFjY291bnRTdGF0ZUNvZGVbXCJBY3RpdmVcIl0gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudC5iaXN0ZWNoX3NpdGV0eXBlICE9PSBBY2NvdW50U2l0ZVR5cGVbXCJMZWdhbCBFbnRpdHlcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbklkPXsoX2Jpc3RlY2hfcHJpbWFyeXNpdGVfdmFsdWUpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNvbnRhY3RUb1VwZGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJTZWxlY3QgYSBTaXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkluYWN0aXZlXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25DYXJkSW5mbz17KHNlbGVjdGVkT3B0aW9uKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiA8RmFIb21lIC8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogc2VsZWN0ZWRPcHRpb24ucHJpbWFyeVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IHNlbGVjdGVkT3B0aW9uLnNlY29uZGFyeVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxGaWVsZHM6IFtdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkVtYWlsIEFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbGFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJZb3UgbXVzdCBzdXBwbHkgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgZmllbGRzOiBFbWFpbCwgRGlyZWN0IERpYWwsIE1vYmlsZSBQaG9uZS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdFRvVXBkYXRlLmVtYWlsYWRkcmVzczEgfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGVtYWlsYWRkcmVzczEpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHsgLi4uY29udGFjdFRvVXBkYXRlLCBlbWFpbGFkZHJlc3MxIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImVtYWlsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIidFbWFpbCBBZGRyZXNzJyBjYW5ub3QgYmUgdXBkYXRlZC4gQ29udGFjdCBTZXJ2aWNlIERlc2sgaWYgYW4gdXBkYXRlIGlzIHJlcXVpcmVkLlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uLmRhdGE/LmJpc3RlY2hfYXV0aGVudGljYXRpb250eXBlID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRhbEludml0YXRpb25BdXRoZW50aWNhdGlvblR5cGVbXCJMb2NhbFwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tVmFsaWRpdHk9eygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFjb250YWN0VG9VcGRhdGUuZW1haWxhZGRyZXNzMSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY29udGFjdFRvVXBkYXRlLnRlbGVwaG9uZTEgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhY3RUb1VwZGF0ZS5tb2JpbGVwaG9uZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIllvdSBtdXN0IHN1cHBseSBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZyBmaWVsZHM6IEVtYWlsLCBEaXJlY3QgRGlhbCwgTW9iaWxlIFBob25lLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZWxlcGhvbmVGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGlyZWN0IERpYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkaXJlY3RkaWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91IG11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczogRW1haWwsIERpcmVjdCBEaWFsLCBNb2JpbGUgUGhvbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3RUb1VwZGF0ZS50ZWxlcGhvbmUxIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh0ZWxlcGhvbmUxKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0VG9VcGRhdGVXaXRoSXNEaXJ0eSh7IC4uLmNvbnRhY3RUb1VwZGF0ZSwgdGVsZXBob25lMSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tVmFsaWRpdHk9eygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFjb250YWN0VG9VcGRhdGUuZW1haWxhZGRyZXNzMSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY29udGFjdFRvVXBkYXRlLnRlbGVwaG9uZTEgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhY3RUb1VwZGF0ZS5tb2JpbGVwaG9uZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIllvdSBtdXN0IHN1cHBseSBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZyBmaWVsZHM6IEVtYWlsLCBEaXJlY3QgRGlhbCwgTW9iaWxlIFBob25lLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZWxlcGhvbmVGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiTW9iaWxlIFBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibW9iaWxlcGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJZb3UgbXVzdCBzdXBwbHkgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgZmllbGRzOiBFbWFpbCwgRGlyZWN0IERpYWwsIE1vYmlsZSBQaG9uZS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdFRvVXBkYXRlLm1vYmlsZXBob25lIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhtb2JpbGVwaG9uZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlV2l0aElzRGlydHkoeyAuLi5jb250YWN0VG9VcGRhdGUsIG1vYmlsZXBob25lIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkluYWN0aXZlXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRHcm91cD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21WYWxpZGl0eT17KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRhY3RUb1VwZGF0ZS5lbWFpbGFkZHJlc3MxICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFjb250YWN0VG9VcGRhdGUudGVsZXBob25lMSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY29udGFjdFRvVXBkYXRlLm1vYmlsZXBob25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiWW91IG11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczogRW1haWwsIERpcmVjdCBEaWFsLCBNb2JpbGUgUGhvbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmVmZXJlbmNlcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+UHJlZmVyZW5jZXM8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcHVwTGlua0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImJpc3RlY2hfcGVybWlzc2lvbmxldmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Tm8gQWNjZXNzPC9zdHJvbmc+IC0gVGhlIHVzZXIgb3IgdGVhbSB3aWxsIGhhdmUgbm8gYWNjZXNzIHRvIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QWRtaW5pc3RyYXRvcjwvc3Ryb25nPiAtIFRoZSB1c2VyIG9yIHRlYW0gd2lsbCBoYXZlIGFjY2VzcyB0byBhbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWF0dXJlcyBvZiB0aGUgcG9ydGFsLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5DdXN0b208L3N0cm9uZz4gLSBUaGUgdXNlciBvciB0ZWFtIHdpbGwgaGF2ZSBjdXN0b21pc2VkIGFjY2VzcyB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRhaW4gZmVhdHVyZXMgb2YgdGhlIHBvcnRhbC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtgJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaW5pdGlhbENvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQmFzZVBlcm1pc3Npb25MZXZlbFtwcm9wcy5pbml0aWFsQ29udGFjdC5iaXN0ZWNoX3Blcm1pc3Npb25sZXZlbF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJOb25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IChlZGl0KWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViVGV4dD17PFBlcm1pc3Npb25MZXZlbFN1bW1hcnkgY29udGFjdD17Y29udGFjdFRvVXBkYXRlfSAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc1BvcHVwT3BlbighaXNQb3B1cE9wZW4pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxMYWJlbFByb3BzPXt7IHJlZjogcGVybWlzc2lvbkxldmVsRmllbGRSZWYgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQnV0dG9uUHJvcHM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyTWV0YWRhdGEucG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCAhPT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGBPbmx5IGEgdXNlciB3aXRoIHRoZSAnQWxsIENvbnRhY3RzJyBDb250YWN0IHBlcm1pc3Npb24gbGV2ZWwgY2FuIHVwZGF0ZSB0aGlzIGZpZWxkLmBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZS5JbmFjdGl2ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYEEgZGVhY3RpdmF0ZWQgQ29udGFjdCBjYW5ub3QgYmUgdXBkYXRlZC5gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlck1ldGFkYXRhLnBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgIT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBDb250YWN0c1wiXSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaW5pdGlhbENvbnRhY3Quc3RhdGVjb2RlID09PSBDb250YWN0U3RhdGVDb2RlLkluYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBjdXJzb3I6IFwicG9pbnRlclwiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Cb29sZWFuRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtcInJlY2VpdmVhbGVydG5vdGlmaWNhdGlvbnNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIEFsZXJ0IE5vdGlmaWNhdGlvbnM/XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVjZWl2ZSBOZXR3b3JrIEFsZXJ0IE5vdGlmaWNhdGlvbnMgaWYgb3VyIHByb2FjdGl2ZSBtb25pdG9yaW5nIHRvb2wgaWRlbnRpZmllcyBpc3N1ZXMgd2l0aCB5b3VyIENvbXBhbnkncyBzaXRlcy5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29udGFjdFRvVXBkYXRlLmJpc3RlY2hfcmVjZWl2ZWFsZXJ0bm90aWZpY2F0aW9ucyA/PyBmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGJpc3RlY2hfcmVjZWl2ZWFsZXJ0bm90aWZpY2F0aW9ucykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlV2l0aElzRGlydHkoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29udGFjdFRvVXBkYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlzdGVjaF9yZWNlaXZlYWxlcnRub3RpZmljYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogcHJvcHMuaW5pdGlhbENvbnRhY3Quc3RhdGVjb2RlID09PSBDb250YWN0U3RhdGVDb2RlW1wiSW5hY3RpdmVcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Cb29sZWFuRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtcInJlY2VpdmVwbGFubmVkbWFpbnRlbmFuY2Vub3RpZmljYXRpb25zXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e1wiUmVjZWl2ZSBQbGFubmVkIE1haW50ZW5hbmNlIE5vdGlmaWNhdGlvbnM/XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVjZWl2ZSBQbGFubmVkIE1haW50ZW5hbmNlIE5vdGlmaWNhdGlvbnMgaWYgeW91ciBDb21wYW55J3Mgc2VydmljZXMgYXJlIGlkZW50aWZpZWQgYXMgYWZmZWN0ZWQuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3RUb1VwZGF0ZS5iaXN0ZWNoX3JlY2VpdmVwZXdub3RpZmljYXRpb25zID8/IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9ucykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlV2l0aElzRGlydHkoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29udGFjdFRvVXBkYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlzdGVjaF9yZWNlaXZlcGV3bm90aWZpY2F0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkluYWN0aXZlXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17XCJyZWNlaXZlbWFqb3JpbmNpZGVudHVwZGF0ZXNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIE1ham9yIEluY2lkZW50IFVwZGF0ZXM/XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVjZWl2ZSByZWd1bGFyIHVwZGF0ZXMgaWYgeW91ciBDb21wYW55IGhhcyBhIENhc2UgYXNzb2NpYXRlZCB0byBhIE1ham9yIEluY2lkZW50LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0VG9VcGRhdGUuYmlzdGVjaF9yZWNlaXZlbWFqb3JpbmNpZGVudHVwZGF0ZXMgPz8gZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlcykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlV2l0aElzRGlydHkoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29udGFjdFRvVXBkYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlzdGVjaF9yZWNlaXZlbWFqb3JpbmNpZGVudHVwZGF0ZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkJvb2xlYW5GaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e1wicmVjZWl2ZXNlY3VyaXR5dXBkYXRlc1wifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtcIlJlY2VpdmUgU2VjdXJpdHkgVXBkYXRlcz9cIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWNlaXZlIFNlY3VyaXR5IFVwZGF0ZXMgd2hlbiBrbm93biB0aHJlYXRzIG9yIHZ1bG5lcmFiaWxpdGllcyBhcmUgcmVwb3J0ZWQgaW4gdGhlIG1hcmtldHBsYWNlLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0VG9VcGRhdGUuYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzID8/IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9yZWNlaXZlc2VjdXJpdHl1cGRhdGVzKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250YWN0VG9VcGRhdGVXaXRoSXNEaXJ0eSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5jb250YWN0VG9VcGRhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXN0ZWNoX3JlY2VpdmVzZWN1cml0eXVwZGF0ZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkJvb2xlYW5GaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e1wicmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlclwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtcIlJlY2VpdmUgQ3VzdG9tZXIgTmV3c2xldHRlcj9cIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWNlaXZlIHRoZSBCaXN0ZWNoIEN1c3RvbWVyIE5ld3NsZXR0ZXIgY292ZXJpbmcgbmV3cywgdmlld3MgYW5kIHRoZSBsYXRlc3QgSVQgaW5kdXN0cnkgZGV2ZWxvcG1lbnQuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbnRhY3RUb1VwZGF0ZS5iaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXIgPz8gZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhiaXN0ZWNoX3JlY2VpdmVjdXN0b21lcm5ld3NsZXR0ZXIpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRhY3RUb1VwZGF0ZVdpdGhJc0RpcnR5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNvbnRhY3RUb1VwZGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkluYWN0aXZlXCJdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uQm9vbGVhbkZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17XCJyZWNlaXZlcHJvZHVjdHVwZGF0ZXNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XCJSZWNlaXZlIFByb2R1Y3QgVXBkYXRlcz9cIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtcIlJlY2VpdmUgUHJvZHVjdCBVcGRhdGVzLCByb2FkbWFwIGluZm9ybWF0aW9uIGFuZCBlbmQgb2YgbGlmZSBhbm5vdW5jZW1lbnRzLlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb250YWN0VG9VcGRhdGUuYmlzdGVjaF9yZWNlaXZlcHJvZHVjdHVwZGF0ZXMgPz8gZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhiaXN0ZWNoX3JlY2VpdmVwcm9kdWN0dXBkYXRlcykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlV2l0aElzRGlydHkoeyAuLi5jb250YWN0VG9VcGRhdGUsIGJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiZXJyb3JlZFwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RmFpbGVkIHRvIHVwZGF0ZSBDb250YWN0PC9zdHJvbmc+OiB7c3VibWlzc2lvblN0YXRlLmVycm9yLm1lc3NhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3NOYW1lPVwiYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIiB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkluYWN0aXZlXCJdIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWRpcnR5QmFubmVyU2V0dGluZ3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXsoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZGlydHlCYW5uZXJTZXR0aW5ncykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJObyBjaGFuZ2VzIHRvIHNhdmVcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5pbml0aWFsQ29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJJbmFjdGl2ZVwiXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYENvbnRhY3QgaXMgcmVhZC1vbmx5IGFzIGl0IGlzICR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250YWN0U3RhdGVDb2RlW3Byb3BzLmluaXRpYWxDb250YWN0LnN0YXRlY29kZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfS4gQWN0aXZhdGUgdGhlIENvbnRhY3QgdG8gbWFrZSBjaGFuZ2VzLmA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1Ym1pc3Npb25TdGF0ZS5zdGF0ZSA9PT0gXCJzdWJtaXR0aW5nXCIgJiYgPEltU3Bpbm5lcjIgY2xhc3NOYW1lPVwic3BpblwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYnV0dG9uIGRlZmF1bHRcIiB0bz17UEFHRVMuQ29udGFjdHMucGF0aH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICB7aXNQb3B1cE9wZW4gJiYgKFxyXG4gICAgICAgICAgICAgICAgPFBlcm1pc3Npb25zUGFuZWxcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZVBvcHVwPXsoKSA9PiBzZXRJc1BvcHVwT3BlbihmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFjdD17Y29udGFjdFRvVXBkYXRlfVxyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdExhYmVsPVwiU2F2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb25TYXZlPXthc3luYyAoY29udGFjdFBlcm1pc3Npb25zKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJ1aWxkIHRoZSB1cGRhdGVkIENvbnRhY3QgbW9kZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZENvbnRhY3QgPSB7IC4uLmNvbnRhY3RUb1VwZGF0ZSwgLi4uY29udGFjdFBlcm1pc3Npb25zIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udGFjdFRvVXBkYXRlKHVwZGF0ZWRDb250YWN0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0RGlydHlCYW5uZXJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlydHlCYW5uZXJTZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2hvd0FscmVhZHlTYXZpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3VibWlzc2lvblN0YXR1czogeyBzdGF0ZTogXCJzdWJtaXR0aW5nXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXNzaW9uUHJlcmVxdWlzaXRlczogc2F2ZVByZXJlcXVpc2l0ZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhdmUgdG8gRHluYW1pY3MgMzY1XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG9uU3VibWl0KHVwZGF0ZWRDb250YWN0KTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8L0NhbGxUb0FjdGlvbkJhc2VQYWdlPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250YWN0Rm9yUmV0cmlldmFsIH0gZnJvbSBcIi4uLy4uL01vZGVscy9Db250YWN0Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IExvYWRpbmdCYXNlUGFnZSB9IGZyb20gXCIuLi9CYXNlUGFnZVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBDb250YWN0c0VkaXRDb250ZW50IH0gZnJvbSBcIi4vQ29udGFjdHNFZGl0Q29udGVudFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IENvbnRhY3QgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgQ29udGFjdHNFZGl0RnJvbUlkID0gKHByb3BzOiB7IGNvbnRhY3RpZDogc3RyaW5nIH0pID0+IHtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGNvbnRhY3RzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5jb250YWN0cyk7XHJcbiAgICBjb25zdCBbc2F2ZUtleSwgc2V0U2F2ZUtleV0gPSB1c2VTdGF0ZSgxKTtcclxuICAgIGNvbnN0IFtyZXRyaWV2ZWRDb250YWN0LCBzZXRSZXRyaWV2ZWRDb250YWN0XSA9IHVzZVN0YXRlPFxyXG4gICAgICAgIExvYWRpbmdEYXRhPENvbnRhY3RGb3JSZXRyaWV2YWw+IHwgeyBsb2FkaW5nU3RhdHVzOiBcImVycm9yZWRcIjsgZXJyb3I6IEVycm9yIH1cclxuICAgID4oe1xyXG4gICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIixcclxuICAgIH0pO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0UmV0cmlldmVkQ29udGFjdCh7IGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIiB9KTtcclxuICAgIH0sIFtjb250YWN0cywgc2F2ZUtleV0pO1xyXG5cclxuICAgIGNvbnN0IGluaXRpYWxDb250YWN0OiBMb2FkaW5nRGF0YTxDb250YWN0Rm9yUmV0cmlldmFsPiA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHRoZSByZXRyaWV2YWwgaGFzIG5vdCB5ZXQgYmVlbiBzdGFydGVkXHJcbiAgICAgICAgaWYgKHJldHJpZXZlZENvbnRhY3QubG9hZGluZ1N0YXR1cyA9PT0gXCJub3Qtc3RhcnRlZFwiKSB7XHJcbiAgICAgICAgICAgIHNldFJldHJpZXZlZENvbnRhY3QoeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBDb250YWN0IHNwZWNpZmljYWxseSAoZS5nLiB0aGUgQ29udGFjdCBtYXkgaGF2ZSBiZWVuIHJlY2VudGx5IHVwZGF0ZWQpXHJcbiAgICAgICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAucmV0cmlldmVDb250YWN0KHByb3BzLmNvbnRhY3RpZClcclxuICAgICAgICAgICAgICAgIC50aGVuKChjb250YWN0KSA9PiBzZXRSZXRyaWV2ZWRDb250YWN0KHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogY29udGFjdCB9KSlcclxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiQWRkTGF0ZXN0RXJyb3JcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0UmV0cmlldmVkQ29udGFjdCh7IGxvYWRpbmdTdGF0dXM6IFwiZXJyb3JlZFwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJldHJpZXZlZENvbnRhY3QubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiByZXRyaWV2ZWRDb250YWN0LmRhdGEgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtYXRjaGluZ0NvbnRhY3QgPSBjb250YWN0cy5kYXRhLmZpbmQoKGNvbnRhY3QpID0+IGNvbnRhY3QuY29udGFjdGlkID09PSBwcm9wcy5jb250YWN0aWQpO1xyXG5cclxuICAgICAgICAvLyBJZiBhIG1hdGNoaW5nIGFjdGl2ZSBDb250YWN0IHdhcyBmb3VuZFxyXG4gICAgICAgIGlmIChtYXRjaGluZ0NvbnRhY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBtYXRjaGluZ0NvbnRhY3QsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9O1xyXG4gICAgfSwgW2NvbnRhY3RzLCByZXRyaWV2ZWRDb250YWN0LCBkYXRhU2VydmljZSwgcHJvcHMuY29udGFjdGlkLCBkaXNwYXRjaF0pO1xyXG5cclxuICAgIGlmIChyZXRyaWV2ZWRDb250YWN0LmxvYWRpbmdTdGF0dXMgPT09IFwiZXJyb3JlZFwiKSB7XHJcbiAgICAgICAgcmV0dXJuIDxOb3RGb3VuZCB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIHNpbmd1bGFyRW50aXR5TmFtZT1cIkNvbnRhY3RcIiAvPjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5pdGlhbENvbnRhY3QubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgIHJldHVybiA8TG9hZGluZ0Jhc2VQYWdlIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8Q29udGFjdHNFZGl0Q29udGVudCBpbml0aWFsQ29udGFjdD17aW5pdGlhbENvbnRhY3QuZGF0YX0gb25TYXZlPXsoKSA9PiBzZXRTYXZlS2V5KHNhdmVLZXkgKyAxKX0gLz47XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSBcIi4uL05vdEZvdW5kXCI7XHJcbmltcG9ydCB7IENvbnRhY3RzRWRpdEZyb21JZCB9IGZyb20gXCIuL0NvbnRhY3RzRWRpdEZyb21JZFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IENvbnRhY3QgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgQ29udGFjdHNFZGl0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgW3NlYXJjaFBhcmFtc10gPSB1c2VTZWFyY2hQYXJhbXMoKTtcclxuXHJcbiAgICBjb25zdCBJRF9RVUVSWV9TVFJJTkdfUEFSQU1FVEVSX05BTUUgPSBcImlkXCI7XHJcbiAgICBjb25zdCBjb250YWN0SWQgPSBzZWFyY2hQYXJhbXMuZ2V0KElEX1FVRVJZX1NUUklOR19QQVJBTUVURVJfTkFNRSk7XHJcblxyXG4gICAgaWYgKCFjb250YWN0SWQpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHNpbmd1bGFyRW50aXR5TmFtZT1cIkNvbnRhY3RcIiB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8Q29udGFjdHNFZGl0RnJvbUlkIGNvbnRhY3RpZD17Y29udGFjdElkfSAvPjtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tIFwiLi9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uL1R5cGVzL0J1dHRvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZyB9IGZyb20gXCIuLi9FbnVtcy9Qcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmdcIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBQQUdFUyB9IGZyb20gXCIuLi9Ib29rcy91c2VQYWdlTmF2aWdhdGlvblwiO1xyXG5cclxuLyoqIENvbXBvbmVudCByZXByZXNlbnRpbmcgYSBob21lcGFnZSBUaWxlLiAgKi9cclxuZXhwb3J0IGNvbnN0IEhvbWVQYWdlVGlsZTogUmVhY3QuRkM8e1xyXG4gICAgaW1hZ2VQYXRoOiBzdHJpbmc7XHJcbiAgICB0aWxlOlxyXG4gICAgICAgIHwgeyB0eXBlOiBcInBhZ2VcIjsgbGFiZWw6IHN0cmluZzsgbGluazogc3RyaW5nIH1cclxuICAgICAgICB8IHsgdHlwZTogXCJjdXN0b21lci1hc3NldFwiOyBsYWJlbDogc3RyaW5nOyB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nIH07XHJcbiAgICBtb2RhbE1lc3NhZ2U/OiBzdHJpbmc7XHJcbn0+ID0gKHsgaW1hZ2VQYXRoLCB0aWxlLCBtb2RhbE1lc3NhZ2UgfSkgPT4ge1xyXG4gICAgY29uc3QgeyB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YSB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuICAgIGNvbnN0IHByb2R1Y3RzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5wcm9kdWN0cyk7XHJcbiAgICBjb25zdCBbdXNlckxpbmssIHNldFVzZXJMaW5rXSA9IHVzZVN0YXRlKFwiXCIpO1xyXG4gICAgY29uc3QgW21vZGFsSXNPcGVuLCBzZXRNb2RhbElzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IHN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZSk7XHJcblxyXG4gICAgLyoqIFNldHMgd2hldGhlciB0aGUgdGlsZSBzaG91bGQgYmUgYSBzdGF0aWMgZGl2IGVsZW1lbnQgb3IgYW4gYW5jaG9yIHRhZyB3aXRoIGEgbGluayAqL1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAodGlsZS50eXBlID09IFwicGFnZVwiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VMaW5rID0gT2JqZWN0LnZhbHVlcyhQQUdFUykuZmluZCgodGlsZUxpbmspID0+IHRpbGVMaW5rLnBhdGggPT09IHRpbGUubGluayk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpc3BhZ2VUaWxlQWNjZXNzaWJsZSA9IHBhZ2VMaW5rPy5pc1Blcm1pdHRlZCh1c2VyTWV0YWRhdGEsIHN0YXRlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpc3BhZ2VUaWxlQWNjZXNzaWJsZSkge1xyXG4gICAgICAgICAgICAgICAgc2V0VXNlckxpbmsodGlsZS5saW5rKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHByb2R1Y3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRpbGUudHlwZSAhPT0gXCJjdXN0b21lci1hc3NldFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElzIHRoaXMgdGlsZSBwcm9kdWN0IGluIHRoZSBjdXN0b21lcnMgYXNzZXRzLlxyXG4gICAgICAgIGNvbnN0IHVzZXJMaW5rID0gcHJvZHVjdHMuZGF0YS5maWx0ZXIoKHByb2R1Y3QpID0+IHByb2R1Y3QuYmlzdGVjaF9wb3J0YWx0aWxlbWFwcGluZyA9PT0gdGlsZS50aWxlTWFwcGluZyk7XHJcblxyXG4gICAgICAgIGlmICh1c2VyTGluay5sZW5ndGggPj0gMSkge1xyXG4gICAgICAgICAgICBzZXRVc2VyTGluayh1c2VyTGlua1swXS5iaXN0ZWNoX3RpbGV0YXJnZXR1cmwpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtwcm9kdWN0cywgdGlsZV0pO1xyXG5cclxuICAgIC8qKiBPcGVucyBhIG1vZGFsIGZvciB0aGUgdXNlciB0byBuYXZpZ2F0ZSB0byBhbiBleHRlcm5hbCB3ZWJzaXRlLiAgKi9cclxuICAgIGNvbnN0IG9wZW5JbmZvcm1hdGlvbk1vZGFsID0gKCkgPT4ge1xyXG4gICAgICAgIHNldE1vZGFsSXNPcGVuKHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7XHJcbiAgICAgICAgICAgIHRvcDogMCxcclxuICAgICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIERldGFpbHMgZm9yIHRoZSBtb2RhbC5cclxuICAgIGNvbnN0IG1vZGFsSW5mbzogQnV0dG9uSW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgbGFiZWw6IG1vZGFsTWVzc2FnZSA/IG1vZGFsTWVzc2FnZSA6IFwiXCIsXHJcbiAgICAgICAgaGFzTW9kYWw6IHRydWUsXHJcbiAgICAgICAgbW9kYWxJbmZvOiB7XHJcbiAgICAgICAgICAgIGlzRXJyb3JNb2RhbDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiQ29uZmlybVwiLFxyXG4gICAgICAgICAgICBtb2RhbENvbnRlbnQ6IDw+e21vZGFsTWVzc2FnZX08Lz4sXHJcbiAgICAgICAgICAgIG1vZGFsVGl0bGU6IHRpbGUubGFiZWwsXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKCkhO1xyXG4gICAgICAgICAgICAgICAgbmV3V2luZG93Lm9wZW5lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBuZXdXaW5kb3cubG9jYXRpb24gPSB1c2VyTGluaztcclxuXHJcbiAgICAgICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkhvbWUgLSBDdXN0b21lciBBc3NldCB0aWxlIGNsaWNrZWRcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTmFtZTogdGlsZS5sYWJlbCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh1c2VyTGluaykge1xyXG4gICAgICAgIGlmIChtb2RhbE1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oYXMtbGluaz17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb3BlbkluZm9ybWF0aW9uTW9kYWwoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbGUtaW1hZ2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlIGNsYXNzTmFtZT17XCJ0aWxlLWltYWdlXCJ9IHNyYz17aW1hZ2VQYXRofSB3aWR0aD17NDB9IGhlaWdodD17NDB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpbGUtdGl0bGVcIj57dGlsZS5sYWJlbH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsIGJ1dHRvbkluZm89e21vZGFsSW5mb30gaXNNb2RhbFNob3duPXttb2RhbElzT3Blbn0gc2V0SXNNb2RhbFNob3duPXtzZXRNb2RhbElzT3Blbn0gLz5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodXNlckxpbmsuc3RhcnRzV2l0aChcImh0dHA6Ly9cIikgfHwgdXNlckxpbmsuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtaGFzLWxpbms9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17dXNlckxpbmt9XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aWxlXCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiSG9tZSAtIEN1c3RvbWVyIEFzc2V0IHRpbGUgY2xpY2tlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZU5hbWU6IHRpbGUubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbGUtaW1hZ2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2UgY2xhc3NOYW1lPXtcInRpbGUtaW1hZ2VcIn0gc3JjPXtpbWFnZVBhdGh9IHdpZHRoPXs0MH0gaGVpZ2h0PXs0MH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpbGUtdGl0bGVcIj57dGlsZS5sYWJlbH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtaGFzLWxpbms9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgdG89e3VzZXJMaW5rfVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJIb21lIC0gQ3VzdG9tZXIgQXNzZXQgdGlsZSBjbGlja2VkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTmFtZTogdGlsZS5sYWJlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGlsZS1pbWFnZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZSBjbGFzc05hbWU9e1widGlsZS1pbWFnZVwifSBzcmM9e2ltYWdlUGF0aH0gd2lkdGg9ezQwfSBoZWlnaHQ9ezQwfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGlsZS10aXRsZVwiPnt0aWxlLmxhYmVsfTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBkYXRhLWhhcy1saW5rPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRpbGVcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9e3Byb2R1Y3RzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGluZ1wiID8gXCJMb2FkaW5nLi4uXCIgOiB1bmRlZmluZWR9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGlsZS1pbWFnZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlIGNsYXNzTmFtZT17XCJ0aWxlLWltYWdlXCJ9IHNyYz17aW1hZ2VQYXRofSB3aWR0aD17NDB9IGhlaWdodD17NDB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGlsZS10aXRsZVwiPnt0aWxlLmxhYmVsfTwvcD5cclxuICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufTtcclxuIiwiaW1wb3J0IHsgSW1hZ2UgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9JbWFnZVwiO1xyXG5pbXBvcnQgeyBIb21lUGFnZVRpbGUgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Ib21lUGFnZVRpbGVcIjtcclxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlV2luZG93V2lkdGggfSBmcm9tIFwiLi4vSG9va3MvdXNlV2luZG93V2lkdGhcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9ucyB9IGZyb20gXCIuLi9Db21wb25lbnRzL05vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgUEFHRVMgfSBmcm9tIFwiLi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nIH0gZnJvbSBcIi4uL0VudW1zL1Byb2R1Y3RQb3J0YWxUaWxlTWFwcGluZ1wiO1xyXG5pbXBvcnQgeyBpc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9FbnZpcm9ubWVudEJhbm5lclwiO1xyXG5cclxuLyoqIFJlcHJlc2VudHMgdGhlIGRpZmZlcmVudCBwb3NzaWJsZSB0aWxlIGdyb3VwIGxheW91dHMgb24gdGhlIHBhZ2UuICovXHJcbnR5cGUgVGlsZUdyaWRMYXlvdXQgPSBcIjU6MFwiIHwgXCI0OjFcIiB8IFwiMzoyXCIgfCBcIjI6MlwiIHwgXCIxXCI7XHJcblxyXG4vKipcclxuICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCB0aWxlIGxheW91dCBiYXNlZCBvbiBwYWdlIHNpemUuXHJcbiAqIEBwYXJhbSBob21lUGFnZVdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgaG9tZXBhZ2UuXHJcbiAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHRpbGUgbGF5b3V0LlxyXG4gKi9cclxuY29uc3QgZ2V0Q3VycmVudFRpbGVMYXlvdXQgPSAoaG9tZVBhZ2VXaWR0aDogbnVtYmVyKTogVGlsZUdyaWRMYXlvdXQgPT4ge1xyXG4gICAgY29uc3QgdGlsZVNpemUgPSAzMDA7XHJcbiAgICBpZiAoaG9tZVBhZ2VXaWR0aCA+IHRpbGVTaXplICogNSkge1xyXG4gICAgICAgIHJldHVybiBcIjU6MFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKGhvbWVQYWdlV2lkdGggPiB0aWxlU2l6ZSAqIDQpIHtcclxuICAgICAgICByZXR1cm4gXCI0OjFcIjtcclxuICAgIH1cclxuICAgIGlmIChob21lUGFnZVdpZHRoID4gdGlsZVNpemUgKiAzKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiMzoyXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoaG9tZVBhZ2VXaWR0aCA+IHRpbGVTaXplICogMikge1xyXG4gICAgICAgIHJldHVybiBcIjI6MlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiMVwiO1xyXG59O1xyXG5cclxuLyogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIEhvbWUgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgSG9tZTogUmVhY3QuRkMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBbdGlsZUdyaWRMYXlvdXQsIHNldFRpbGVHcmlkTGF5b3V0XSA9IHVzZVN0YXRlKFwiXCIpO1xyXG5cclxuICAgIC8vIFRoZSBwaXhlbCB2YWx1ZXMgb2YgdGhlIGRpZmZlcmVudCBlbGVtZW50cyB3aGljaCBzZXQgdGhlIGhvbWVwYWdlIHdpZHRoLlxyXG4gICAgY29uc3Qgc2Nyb2xsYmFyU2l6ZSA9IDE2O1xyXG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB1c2VXaW5kb3dXaWR0aCgpO1xyXG5cclxuICAgIC8vIElmIHRoZSB3aW5kb3cgd2lkdGggaXMgb3ZlciAxMDI1cHgsIHRoZSBuYXZpZ2F0aW9uIHBhbmUgdGFrZXMgdXAgMjg4cHggb2YgdGhlIHZpZXdwb3J0LCBlbHNlIGl0IGlzIG92ZXJsYWlkIGFzIGEgZml4ZWQgY29tcG9uZW50IGFuZFxyXG4gICAgLy8gdGh1cyB0YWtlcyB1cCBubyBzcGFjZSBvbiB0aGUgdmlld3BvcnQuXHJcbiAgICBjb25zdCBuYXZpZ2F0aW9uUGFuZVdpZHRoID0gd2luZG93V2lkdGggPj0gMTAyNSA/IDI4OCA6IDA7XHJcbiAgICBjb25zdCBob21lUGFnZVdpZHRoID0gd2luZG93V2lkdGggLSBzY3JvbGxiYXJTaXplIC0gbmF2aWdhdGlvblBhbmVXaWR0aDtcclxuXHJcbiAgICAvLyBTZXRzIHRoZSBjdXJyZW50IHRpbGUgZ3JpZCBsYXlvdXQgb24gY2hhbmdlIGVsZW1lbnQgc2l6ZSBjaGFuZ2UuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldFRpbGVHcmlkTGF5b3V0KGdldEN1cnJlbnRUaWxlTGF5b3V0KGhvbWVQYWdlV2lkdGgpKTtcclxuICAgIH0sIFtob21lUGFnZVdpZHRoXSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9ucyAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hc3RoZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hc3RoZWFkLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJyYW5kaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCIvYmlzdGVjaC1sb2dvLnBuZ1wiIHdpZHRoPXsyMjR9IGhlaWdodD17NzJ9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRpdGxlXCI+Q3VzdG9tZXIgUG9ydGFsPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aWxlc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGlsZS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpbGUtZ3JvdXAtdGl0bGVcIj5NYW5hZ2VtZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxIb21lUGFnZVRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi1jYXNlLW1hbmFnZW1lbnQuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGlsZT17eyB0eXBlOiBcInBhZ2VcIiwgbGFiZWw6IFwiQ2FzZXNcIiwgbGluazogUEFHRVMuQ2FzZXMucGF0aCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPEhvbWVQYWdlVGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg9XCIvaG9tZS1pY29uLWNvbnRhY3RzLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3sgdHlwZTogXCJwYWdlXCIsIGxhYmVsOiBcIkNvbnRhY3RzXCIsIGxpbms6IFBBR0VTLkNvbnRhY3RzLnBhdGggfX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHsvKiBUT0RPICMzNDc5NzogUmVtb3ZlIGJlbG93IGZsYWcgb25jZSBPcmRlcnMgY2FuIGJlIHNob3duIG9uIHRoZSBQb3J0YWwgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgeyFpc1Byb2R1Y3Rpb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg9XCIvaG9tZS1pY29uLW9yZGVyLW1hbmFnZW1lbnQuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3sgdHlwZTogXCJwYWdlXCIsIGxhYmVsOiBcIk9yZGVyc1wiLCBsaW5rOiBQQUdFUy5PcmRlcnMucGF0aCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgey8qIFRPRE8gIzM2MDc0OiBSZW1vdmUgYmVsb3cgZmxhZyBvbmNlIFByb2plY3RzIGNhbiBiZSBzaG93biBvbiB0aGUgUG9ydGFsICovfVxyXG4gICAgICAgICAgICAgICAgICAgIHshaXNQcm9kdWN0aW9uICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEhvbWVQYWdlVGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi1wcm9qZWN0LW1hbmFnZW1lbnQuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3sgdHlwZTogXCJwYWdlXCIsIGxhYmVsOiBcIlByb2plY3RzXCIsIGxpbms6IFBBR0VTLlByb2plY3RzLnBhdGggfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDxIb21lUGFnZVRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi1pbnZvaWNlcy5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aWxlPXt7IHR5cGU6IFwicGFnZVwiLCBsYWJlbDogXCJJbnZvaWNlc1wiLCBsaW5rOiBQQUdFUy5JbnZvaWNlcy5wYXRoIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIHt0aWxlR3JpZExheW91dCAhPT0gXCIxXCIgJiYgPGRpdiBjbGFzc05hbWU9XCJ0aWxlLWdyb3VwLXNlcGVyYXRvclwiPjwvZGl2Pn1cclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRpbGUtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aWxlLWdyb3VwLXRpdGxlXCI+SW5mcmFzdHJ1Y3R1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPEhvbWVQYWdlVGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg9XCIvaG9tZS1pY29uLW1lcmFraS5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aWxlPXt7IHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIiwgbGFiZWw6IFwiTWVyYWtpXCIsIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuTWVyYWtpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aD1cIi9ob21lLWljb24tbmluamEtcm1tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5pbmphIFJNTVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5OaW5qYVJNTSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxIb21lUGFnZVRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi1zb2xhcndpbmRzLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlNvbGFyd2luZHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuU29sYXJ3aW5kcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxIb21lUGFnZVRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi12LWNsb3VkLWRpcmVjdG9yLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3sgdHlwZTogXCJjdXN0b21lci1hc3NldFwiLCBsYWJlbDogXCJWTVdhcmVcIiwgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5WTVdhcmUgfX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAge3RpbGVHcmlkTGF5b3V0ICE9PSBcIjI6MlwiICYmIHRpbGVHcmlkTGF5b3V0ICE9PSBcIjFcIiAmJiA8ZGl2IGNsYXNzTmFtZT1cInRpbGUtZ3JvdXAtc2VwZXJhdG9yXCI+PC9kaXY+fVxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGlsZS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpbGUtZ3JvdXAtdGl0bGVcIj5TZWN1cml0eTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aD1cIi9ob21lLWljb24tZm9ydGlhbmFseXplci5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImN1c3RvbWVyLWFzc2V0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJGb3J0aUFuYWx5emVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLkZvcnRpQW5hbHl6ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsTWVzc2FnZT1cIkluIG9yZGVyIHRvIGFjY2VzcyB0aGUgRm9ydGlBbmFseXplciwgeW91IG11c3QgYmUgY29ubmVjdGVkIHRvIHlvdXIgY29tcGFueSBWUE4uXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxIb21lUGFnZVRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi1mb3J0aWdhdGUuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJjdXN0b21lci1hc3NldFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiRm9ydGlHYXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLkZvcnRpR2F0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxNZXNzYWdlPVwiSW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBGb3J0aUdhdGUsIHlvdSBtdXN0IGJlIGNvbm5lY3RlZCB0byB5b3VyIGNvbXBhbnkgVlBOLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aD1cIi9ob21lLWljb24tZm9ydGltYWlsLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkZvcnRpTWFpbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5Gb3J0aU1haWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aD1cIi9ob21lLWljb24tbWltZWNhc3Quc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJjdXN0b21lci1hc3NldFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTWltZWNhc3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuTWltZWNhc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIHt0aWxlR3JpZExheW91dCAhPT0gXCIzOjJcIiAmJiB0aWxlR3JpZExheW91dCAhPT0gXCIxXCIgJiYgPGRpdiBjbGFzc05hbWU9XCJ0aWxlLWdyb3VwLXNlcGVyYXRvclwiPjwvZGl2Pn1cclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRpbGUtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aWxlLWdyb3VwLXRpdGxlXCI+Q2xvdWQgQWRtaW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPEhvbWVQYWdlVGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg9XCIvaG9tZS1pY29uLTh4OC5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aWxlPXt7IHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIiwgbGFiZWw6IFwiOHg4XCIsIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuXzh4OCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPEhvbWVQYWdlVGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg9XCIvaG9tZS1pY29uLWF6dXJlLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3sgdHlwZTogXCJjdXN0b21lci1hc3NldFwiLCBsYWJlbDogXCJBenVyZVwiLCB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLkF6dXJlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aD1cIi9ob21lLWljb24tbWljcm9zb2Z0LnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk0zNjUgQWRtaW4gQ2VudHJlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLk0zNjVBZG1pbkNlbnRyZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxIb21lUGFnZVRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoPVwiL2hvbWUtaWNvbi1ubXMuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGlsZT17eyB0eXBlOiBcImN1c3RvbWVyLWFzc2V0XCIsIGxhYmVsOiBcIk5NU1wiLCB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLk5NUyB9fVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICB7KHRpbGVHcmlkTGF5b3V0ID09PSBcIjU6MFwiIHx8IHRpbGVHcmlkTGF5b3V0ID09PSBcIjM6MlwiKSAmJiA8ZGl2IGNsYXNzTmFtZT1cInRpbGUtZ3JvdXAtc2VwZXJhdG9yXCI+PC9kaXY+fVxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGlsZS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpbGUtZ3JvdXAtdGl0bGVcIj5MaWNlbnNpbmcgYW5kIEJpbGxpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPEhvbWVQYWdlVGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg9XCIvaG9tZS1pY29uLWFiaWxsaXR5LnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcImFCSUxMaXR5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLldlYkFiaWxpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8SG9tZVBhZ2VUaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aD1cIi9ob21lLWljb24tbWljcm9zb2Z0LnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXItYXNzZXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk1pY3Jvc29mdCBMaWNlbnNpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuTWljcm9zb2Z0TGljZW5zaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvPlxyXG4gICAgKTtcclxufTsiLCJpbXBvcnQgeyB1c2VVc2VyTWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlVXNlck1ldGFkYXRhXCI7XHJcbmltcG9ydCB7IENvbnRhY3RzRWRpdEZyb21JZCB9IGZyb20gXCIuL0NvbnRhY3RzRWRpdC9Db250YWN0c0VkaXRGcm9tSWRcIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi9Ob3RGb3VuZFwiO1xyXG5cclxuLyogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIFByb2ZpbGUgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgUHJvZmlsZTogUmVhY3QuRkMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuXHJcbiAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHNpbmd1bGFyRW50aXR5TmFtZT1cIkNvbnRhY3RcIiB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8Q29udGFjdHNFZGl0RnJvbUlkIGNvbnRhY3RpZD17dXNlck1ldGFkYXRhLmNvbnRhY3RJZH0gLz47XHJcbn07XHJcbiIsImltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9FcnJvckJvdW5kYXJ5XCI7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSBcIi4vSW1hZ2VcIjtcclxuXHJcbi8qKiBGdWxsIHBhZ2UgZGlhbG9nIGJveCAqL1xyXG5leHBvcnQgY29uc3QgRGlhbG9nOiBSZWFjdC5GQzx7IHNob3dJY29uOiBib29sZWFuOyB0aXRsZTogc3RyaW5nOyBjb250ZW50OiBKU1guRWxlbWVudCB9PiA9IChwcm9wcykgPT4ge1xyXG4gICAgY29uc3QgaXNMb2NhbE1vZGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmlzTG9jYWxNb2RlKTtcclxuICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZVVybCA9IGlzTG9jYWxNb2RlXHJcbiAgICAgICAgPyBgJHtwcm9jZXNzLmVudi5QVUJMSUNfVVJMfS9pbWFnZXMvYmFzaWMtYmFja2dyb3VuZC5qcGdgXHJcbiAgICAgICAgOiBgL2Jhc2ljLWJhY2tncm91bmQuanBnYDtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGlhbG9nLWJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgdXJsKFwiJHtiYWNrZ3JvdW5kSW1hZ2VVcmx9XCIpLCBsaW5lYXItZ3JhZGllbnQoMzBkZWcsICMyOWFhY2QsICMyOWFhY2QsICNhNmNlMzkpYCxcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWJveC1jb250YWluZXJcIiByb2xlPVwiZGlhbG9nXCIgZGF0YS1kaWFsb2ctdGl0bGU9e3Byb3BzLnRpdGxlfT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5zaG93SWNvbiAmJiA8SW1hZ2Ugc3JjPVwiYmlzdGVjaC1sb2dvLnBuZ1wiIGhlaWdodD17NzV9IHdpZHRoPXsyMzJ9IGNsYXNzTmFtZT1cImRpYWxvZy1sb2dvXCIgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImRpYWxvZy1oZWFkaW5nXCI+e3Byb3BzLnRpdGxlfTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+e3Byb3BzLmNvbnRlbnR9PC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUEFHRVMgfSBmcm9tIFwiLi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgSW1TcGlubmVyMiB9IGZyb20gXCJyZWFjdC1pY29ucy9pbVwiO1xyXG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9EaWFsb2dcIjtcclxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uU3RhdGUgfSBmcm9tIFwiLi4vVHlwZXMvU3VibWlzc2lvblN0YXRlXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMgKi9cclxuZXhwb3J0IGNvbnN0IFRlcm1zQW5kQ29uZGl0aW9uczogUmVhY3QuRkMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBkYXRhU2VydmljZSA9IHVzZURhdGFTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YSwgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcbiAgICBjb25zdCBbc3VibWlzc2lvblN0YXRlLCBzZXRTdWJtaXNzaW9uU3RhdGVdID0gdXNlU3RhdGU8U3VibWlzc2lvblN0YXRlPih7IHN0YXRlOiBcImlkbGVcIiB9KTtcclxuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50UGFnZSk7XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHsgdHlwZTogXCJUZXJtcyBhbmQgQ29uZGl0aW9ucyAtIFByb21wdGVkXCIgfSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGFsbG93IHVzZXJzIHRvIGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMsIHBvcHVsYXRlIHRoZWlyIHJlY29yZCBhbmQgcmVkaXJlY3QgdGhlbS4gKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIGFjY2VwdFRlcm1zQW5kQ29uZGl0aW9ucygpIHtcclxuICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJzdWJtaXR0aW5nXCIgfSk7XHJcbiAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7IHR5cGU6IFwiVGVybXMgYW5kIENvbmRpdGlvbnMgLSBBY2NlcHRlZFwiIH0pO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBTZXQgdGhlIGBtc2R5bl9wb3J0YWx0ZXJtc2FncmVlbWVudGRhdGVgIHVzaW5nIHRoZSBEeW5hbWljcyBBUEkuXHJcbiAgICAgICAgICAgIGNvbnN0IHsgYWNjZXB0ZWREYXRlIH0gPSBhd2FpdCBkYXRhU2VydmljZS5zZXRQb3J0YWxUZXJtc09mQWdyZWVtZW50RGF0ZSgpO1xyXG5cclxuICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJTZXRUZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgdGVybXNBbmRDb25kaXRpb25zQWNjZXB0YW5jZURhdGU6IGFjY2VwdGVkRGF0ZSxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJjb21wbGV0ZWRcIiB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyJ3MgY3VycmVudCBVcmwgaXMgdGhlIFQmQydzIHBhZ2UgLSByZWRpcmVjdCB0aGVtIHRvICdIb21lJy5cclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRQYWdlLnBhdGggPT09IFBBR0VTLlRlcm1zQW5kQ29uZGl0aW9ucy5wYXRoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmF2aWdhdGUoUEFHRVMuSG9tZS5wYXRoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZSh7IHN0YXRlOiBcImVycm9yZWRcIiwgZXJyb3I6IGVycm9yIGFzIEVycm9yIH0pO1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPERpYWxvZ1xyXG4gICAgICAgICAgICBzaG93SWNvblxyXG4gICAgICAgICAgICB0aXRsZT1cIlRlcm1zIGFuZCBDb25kaXRpb25zXCJcclxuICAgICAgICAgICAgY29udGVudD17XHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRlcm1zLWFuZC1jb25kaXRpb25zLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlIG9mIHRoZSBCaXN0ZWNoIFNlbGYtU2VydmljZSBQb3J0YWwgaXMgZ292ZXJuZWQgYnkgdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIGZvdW5ke1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmJpc3RlY2guY28udWsvc2l0ZS1zZXJ2aWNlcy9nbG9iYWwtcGFnZXMvQ3VzdG9tZXItUG9ydGFsLVRlcm1zLWFuZC1Db25kaXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiZXJyb3JlZFwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RmFpbGVkIHRvIGFjY2VwdCBUZXJtcyBhbmQgQ29uZGl0aW9uczwvc3Ryb25nPjoge3N1Ym1pc3Npb25TdGF0ZS5lcnJvci5tZXNzYWdlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXJtcy1hbmQtY29uZGl0aW9ucy1hY2NlcHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0dG9uIGFjY2VwdC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYWNjZXB0VGVybXNBbmRDb25kaXRpb25zKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIiB8fCBzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiY29tcGxldGVkXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwic3VibWl0dGluZ1wiICYmIDxJbVNwaW5uZXIyIGNsYXNzTmFtZT1cInNwaW5cIiAvPn0gQWNjZXB0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGVybXMtYW5kLWNvbmRpdGlvbnMtY2FuY2VsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImNhbmNlbC1idXR0b25cIiBocmVmPXtQQUdFUy5TaWduT3V0LnBhdGh9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgLz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZUxvY2F0aW9uIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvRGlhbG9nXCI7XHJcblxyXG4vKiogQ29tcG9uZW50IHJlbmRlcmluZyBhIG1lc3NhZ2UgZGV0YWlsaW5nIHRoYXQgdGhlIHBhZ2UgaXMgbm90IGV4cGVjdGVkIHRvIHdvcmsgaW4gRGV2IE1vZGUgKi9cclxuZXhwb3J0IGNvbnN0IERldk1vZGVMaW1pdGF0aW9uOiBSZWFjdC5GQyA9ICgpID0+IHtcclxuICAgIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEaWFsb2dcclxuICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICB0aXRsZT1cIkRldiBNb2RlIGxpbWl0YXRpb25cIlxyXG4gICAgICAgICAgICBjb250ZW50PXtcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBwYWdlIDxzdHJvbmc+e2xvY2F0aW9uLnBhdGhuYW1lfTwvc3Ryb25nPiBpcyBub3QgZXhwZWN0ZWQgdG8gd29yayBpbiBEZXYgTW9kZS5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSB3aXNoIHRvIHRlc3QgdGhpcyBmdW5jdGlvbmFsaXR5LCB5b3Ugd2lsbCBuZWVkIHRvIGRlcGxveSB0byBhIGZ1bGwgRHluYW1pY3MgMzY1IFBvcnRhbC5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4gd2luZG93Lmhpc3RvcnkuYmFjaygpfT5CYWNrPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAvPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IGdldFVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgQ2FzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9DYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IE9yZGVyUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL09yZGVyUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vKiogQ29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgRm9yYmlkZGVuLzQwMyBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBGb3JiaWRkZW46IFJlYWN0LkZDPHsgcGVybWlzc2lvbkxldmVsTWVzc2FnZT86IEpTWC5FbGVtZW50IHwgdW5kZWZpbmVkIH0+ID0gKHByb3BzKSA9PiB7XHJcbiAgICBjb25zdCBiYXNlUGVybWlzc2lvbkxldmVsID0gZ2V0VXNlck1ldGFkYXRhKCkuYmFzZVBlcm1pc3Npb25MZXZlbDtcclxuICAgIGNvbnN0IGNhc2VQZXJtaXNzaW9uTGV2ZWwgPSBnZXRVc2VyTWV0YWRhdGEoKS5wb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsO1xyXG4gICAgY29uc3Qgb3JkZXJQZXJtaXNzaW9uTGV2ZWwgPSBnZXRVc2VyTWV0YWRhdGEoKS5wb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbDtcclxuICAgIGNvbnN0IGNvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgPSBnZXRVc2VyTWV0YWRhdGEoKS5wb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsO1xyXG4gICAgY29uc3QgaW52b2ljZVBlcm1pc3Npb25MZXZlbCA9IGdldFVzZXJNZXRhZGF0YSgpLnBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWw7XHJcbiAgICBjb25zdCBwcm9qZWN0UGVybWlzc2lvbkxldmVsID0gZ2V0VXNlck1ldGFkYXRhKCkucG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbDtcclxuICAgIGNvbnN0IHsgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHsgdHlwZTogXCJBY2Nlc3MgRGVuaWVkXCIgfSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8QmFzZVBhZ2UgdGl0bGU9XCJGb3JiaWRkZW5cIj5cclxuICAgICAgICAgICAgPHA+U29ycnksIGJ1dCB5b3UgZG8gbm90IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IHRoaXMgcGFnZS48L3A+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgSWYgeW91IGJlbGlldmUgeW91IHNob3VsZCBoYXZlIGFjY2VzcyB0byB0aGlzIHBhZ2UsIGNvbnRhY3QgeW91ciBJVCBBZG1pbmlzdHJhdG9yIHRvIHJldmlldyB5b3Vye1wiIFwifVxyXG4gICAgICAgICAgICAgICAgJ1Blcm1pc3Npb24gTGV2ZWwnLlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIHtiYXNlUGVybWlzc2lvbkxldmVsICYmIChcclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5wZXJtaXNzaW9uTGV2ZWxNZXNzYWdlICYmIHByb3BzLnBlcm1pc3Npb25MZXZlbE1lc3NhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgY3VycmVudCAnQmFzZSBQZXJtaXNzaW9uIExldmVsJyBpc3tcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57QmFzZVBlcm1pc3Npb25MZXZlbFtiYXNlUGVybWlzc2lvbkxldmVsXX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgY3VycmVudCAnQ2FzZSBQZXJtaXNzaW9uIExldmVsJyBpc3tcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57Y2FzZVBlcm1pc3Npb25MZXZlbCA/IENhc2VQZXJtaXNzaW9uTGV2ZWxbY2FzZVBlcm1pc3Npb25MZXZlbF0gOiBcIlVua25vd25cIn08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgY3VycmVudCAnQ29udGFjdCBQZXJtaXNzaW9uIExldmVsJyBpc3tcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250YWN0UGVybWlzc2lvbkxldmVsID8gQ29udGFjdFBlcm1pc3Npb25MZXZlbFtjb250YWN0UGVybWlzc2lvbkxldmVsXSA6IFwiVW5rbm93blwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBjdXJyZW50ICdPcmRlciBQZXJtaXNzaW9uIExldmVsJyBpc3tcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57b3JkZXJQZXJtaXNzaW9uTGV2ZWwgPyBPcmRlclBlcm1pc3Npb25MZXZlbFtvcmRlclBlcm1pc3Npb25MZXZlbF0gOiBcIlVua25vd25cIn08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgY3VycmVudCAnUHJvamVjdCBQZXJtaXNzaW9uIExldmVsJyBpc3tcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9qZWN0UGVybWlzc2lvbkxldmVsID8gUHJvamVjdFBlcm1pc3Npb25MZXZlbFtwcm9qZWN0UGVybWlzc2lvbkxldmVsXSA6IFwiVW5rbm93blwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBjdXJyZW50ICdJbnZvaWNlIFBlcm1pc3Npb24gTGV2ZWwnIGlze1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ludm9pY2VQZXJtaXNzaW9uTGV2ZWwgPyBJbnZvaWNlUGVybWlzc2lvbkxldmVsW2ludm9pY2VQZXJtaXNzaW9uTGV2ZWxdIDogXCJVbmtub3duXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICApO1xyXG59O1xyXG4iLCIvKiogQSBjb21wb25lbnQgcmVwcmVzZW50aW5nIHRoZSB0aW1lbGluZSBjYXJkIGRhdGUgd2l0aGluIGEgdGltZWxpbmUuICovXHJcbmV4cG9ydCBjb25zdCBUaW1lbGluZUNhcmREYXRlID0gKHByb3BzOiB7IGRhdGU6IERhdGUgfSkgPT4ge1xyXG4gICAgLy8gR2V0IHRoZSBtb250aCBhbmQgeWVhciBlLmcuIFwiRGVjIDIwMjFcIi5cclxuICAgIGNvbnN0IG1vbnRoQW5kWWVhciA9IHByb3BzLmRhdGUudG9Mb2NhbGVTdHJpbmcoXCJlbi1HQlwiLCB7IG1vbnRoOiBcInNob3J0XCIsIHllYXI6IFwibnVtZXJpY1wiIH0pO1xyXG5cclxuICAgIC8vIEdldCB0aGUgSG91cnMgYW5kIE1pbnV0ZXMgZS5nLiBcIjEzOjA2XCIuXHJcbiAgICBjb25zdCBob3Vyc0FuZE1pbnV0ZXMgPSBwcm9wcy5kYXRlLnRvTG9jYWxlVGltZVN0cmluZyhcImVuLUdCXCIsIHsgaG91cjogXCJudW1lcmljXCIsIG1pbnV0ZTogXCJudW1lcmljXCIgfSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVsaW5lLWNhcmQtZGF0ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVzdGFtcFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVwiPntwcm9wcy5kYXRlLmdldERhdGUoKX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtb250aC15ZWFyXCI+e21vbnRoQW5kWWVhcn08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lXCI+e2hvdXJzQW5kTWludXRlc308L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgRmFBcnJvd1JpZ2h0LCBGYUV4Y2xhbWF0aW9uVHJpYW5nbGUsIEZhVXNlciB9IGZyb20gXCJyZWFjdC1pY29ucy9mYVwiO1xyXG5pbXBvcnQgeyBCaUVudmVsb3BlIH0gZnJvbSBcInJlYWN0LWljb25zL2JpXCI7XHJcbmltcG9ydCB7IFRpbWVsaW5lUmVjb3JkIH0gZnJvbSBcIi4uL1R5cGVzL1RpbWVMaW5lUmVjb3JkXCI7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvSW1hZ2VcIjtcclxuaW1wb3J0IHsgVGltZWxpbmVDYXJkRGF0ZSB9IGZyb20gXCIuL1RpbWVsaW5lQ2FyZERhdGVcIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5cclxuLyoqIEEgY29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgdGltZWxpbmUgY2FyZCB3aXRoaW4gYSB0aW1lbGluZS4gKi9cclxuZXhwb3J0IGNvbnN0IFRpbWVsaW5lQ2FyZCA9IChwcm9wczogeyB0aW1lbGluZVJlY29yZDogVGltZWxpbmVSZWNvcmQgfSkgPT4ge1xyXG4gICAgY29uc3QgeyBhY2NvdW50TmFtZSB9ID0gdXNlVXNlck1ldGFkYXRhKCk7XHJcblxyXG4gICAgY29uc3QgYmlzdGVjaFBhcnR5ID0gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxJbWFnZSBjbGFzc05hbWU9XCJiaXN0ZWNoLWljb25cIiB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IHNyYz1cImZhdmljb24ucG5nXCIgLz5cclxuICAgICAgICAgICAgQmlzdGVjaFxyXG4gICAgICAgIDwvPlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjdXN0b21lclBhcnR5ID0gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxGYVVzZXIgY2xhc3NOYW1lPVwiYWN0aXZpdHktaWNvblwiIC8+XHJcbiAgICAgICAgICAgIHthY2NvdW50TmFtZX1cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRpbWVsaW5lLWNhcmRcIlxyXG4gICAgICAgICAgICBkYXRhLWFjdGl2aXR5LXR5cGU9e3Byb3BzLnRpbWVsaW5lUmVjb3JkLnR5cGV9XHJcbiAgICAgICAgICAgIGRhdGEtZGlyZWN0aW9uPXtwcm9wcy50aW1lbGluZVJlY29yZC5kaXJlY3Rpb259XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8VGltZWxpbmVDYXJkRGF0ZSBkYXRlPXtuZXcgRGF0ZShwcm9wcy50aW1lbGluZVJlY29yZC5kYXRlKX0gLz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1jYXJkLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtdHJhbnNhY3Rpb24taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy50aW1lbGluZVJlY29yZC50eXBlID09PSBcIk1ham9ySW5jaWRlbnRVcGRhdGVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVsaW5lLXNlbmRlclwiIHRpdGxlPVwiRnJvbTogQmlzdGVjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtiaXN0ZWNoUGFydHl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtYWN0aXZpdHktdHlwZVwiIHRpdGxlPVwiTWFqb3IgSW5jaWRlbnQgVXBkYXRlIGZvciB5b3VyIGNhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmFFeGNsYW1hdGlvblRyaWFuZ2xlIGNsYXNzTmFtZT1cImFjdGl2aXR5LWljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ham9yIEluY2lkZW50IFVwZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRpbWVsaW5lUmVjb3JkLnR5cGUgPT09IFwiRW1haWxcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BzLnRpbWVsaW5lUmVjb3JkLmRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnJvbS1iaXN0ZWNoXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRpbWVsaW5lLXNlbmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17YEZyb206IEJpc3RlY2gsIFRvOiAke2FjY291bnROYW1lfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtiaXN0ZWNoUGFydHl9IDxGYUFycm93UmlnaHQgY2xhc3NOYW1lPVwiZGlyZWN0aW9uLWljb25cIiAvPntcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjdXN0b21lclBhcnR5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnJvbS1jdXN0b21lclwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRpbWVsaW5lLXNlbmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtgRnJvbTogJHthY2NvdW50TmFtZX0sIFRvOiBCaXN0ZWNoYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjdXN0b21lclBhcnR5fSA8RmFBcnJvd1JpZ2h0IGNsYXNzTmFtZT1cImRpcmVjdGlvbi1pY29uXCIgLz57XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtiaXN0ZWNoUGFydHl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1hY3Rpdml0eS10eXBlXCIgdGl0bGU9XCJTZW50IHZpYSBFbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCaUVudmVsb3BlIGNsYXNzTmFtZT1cImFjdGl2aXR5LWljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMudGltZWxpbmVSZWNvcmQudHlwZSA9PT0gXCJDb21tZW50XCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wcy50aW1lbGluZVJlY29yZC5kaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZyb20tYmlzdGVjaFwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aW1lbGluZS1zZW5kZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e2BGcm9tOiBCaXN0ZWNoLCBUbzogJHthY2NvdW50TmFtZX1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmlzdGVjaFBhcnR5fSA8RmFBcnJvd1JpZ2h0IGNsYXNzTmFtZT1cImRpcmVjdGlvbi1pY29uXCIgLz57XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3VzdG9tZXJQYXJ0eX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZyb20tY3VzdG9tZXJcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aW1lbGluZS1zZW5kZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17YEZyb206ICR7YWNjb3VudE5hbWV9LCBUbzogQmlzdGVjaGB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3VzdG9tZXJQYXJ0eX0gPEZhQXJyb3dSaWdodCBjbGFzc05hbWU9XCJkaXJlY3Rpb24taWNvblwiIC8+e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmlzdGVjaFBhcnR5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPD48Lz47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtYWN0aXZpdHktdHlwZVwiIHRpdGxlPVwiU2VudCB2aWEgUG9ydGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZhVXNlciBjbGFzc05hbWU9XCJhY3Rpdml0eS1pY29uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0YWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7KHByb3BzLnRpbWVsaW5lUmVjb3JkLnR5cGUgPT09IFwiTWFqb3JJbmNpZGVudFVwZGF0ZVwiIHx8IHByb3BzLnRpbWVsaW5lUmVjb3JkLnR5cGUgPT09IFwiRW1haWxcIikgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1zdWJqZWN0XCIgdGl0bGU9e3Byb3BzLnRpbWVsaW5lUmVjb3JkLnN1YmplY3R9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRpbWVsaW5lUmVjb3JkLnN1YmplY3R9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3Byb3BzLnRpbWVsaW5lUmVjb3JkLmJvZHl9PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4uL0Vycm9yQm91bmRhcnlcIjtcclxuXHJcbi8qKiBNdWx0aS1saW5lIHRleHQgZmllbGQgZm9yIHRoZSBjb21tZW50IHNlY3Rpb24gb24gdGhlIHRpbWVsaW5lLiAqL1xyXG5leHBvcnQgY29uc3QgQ29tbWVudEZpZWxkOiBSZWFjdC5GQzx7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG4gICAgb25DaGFuZ2U6IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gICAgY3VzdG9tVmFsaWRpdHk/OiAodmFsaWRpdHk6IFZhbGlkaXR5U3RhdGUpID0+IHN0cmluZztcclxuICAgIHJlYWRPbmx5PzogYm9vbGVhbjtcclxufT4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xyXG5cclxuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgY3VzdG9tIHZhbGlkaXR5IHJ1bGVzLlxyXG4gICAgaWYgKHByb3BzLmN1c3RvbVZhbGlkaXR5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5zZXRDdXN0b21WYWxpZGl0eShwcm9wcy5jdXN0b21WYWxpZGl0eSh0ZXh0QXJlYVJlZi5jdXJyZW50LnZhbGlkaXR5KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8bGFiZWwgZGF0YS1uYW1lPXtwcm9wcy5uYW1lfSBjbGFzc05hbWU9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbW1lbnQtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e3Byb3BzLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BzLnZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtcIkFkZCBhIGNvbW1lbnQuXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgcm93cz17M31cclxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiBwcm9wcy5vbkNoYW5nZShldmVudC50YXJnZXQudmFsdWUpfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXHJcbiAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e3Byb3BzLnJlYWRPbmx5fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICApO1xyXG59O1xyXG4iLCIvKiogRW51bSByZXByZXNlbnRpbmcgdGhlIGBwYXJ0aWNpcGF0aW9udHlwZW1hc2tgIG9mIGFuIGBhY3Rpdml0eXBhcnR5YCAqL1xyXG5leHBvcnQgZW51bSBQYXJ0aWNpcGF0aW9uVHlwZU1hc2sge1xyXG4gICAgLyoqIFNlbmRlciBBY3Rpdml0eSBQYXJ0eS4gKi9cclxuICAgIFNlbmRlciA9IDEsXHJcblxyXG4gICAgLyoqIFRvIFJlY2lwaWVudCBBY3Rpdml0eSBQYXJ0eS4gKi9cclxuICAgIFRvUmVjaXBpZW50ID0gMixcclxuXHJcbiAgICAvKiogQ0MgUmVjaXBpZW50IEFjdGl2aXR5IFBhcnR5LiAqL1xyXG4gICAgQ0NSZWNpcGllbnQgPSAzLFxyXG5cclxuICAgIC8qKiBCQ0MgUmVjaXBpZW50IEFjdGl2aXR5IFBhcnR5LiAqL1xyXG4gICAgQkNDUmVjaXBpZW50ID0gNCxcclxuXHJcbiAgICAvKiogUmVxdWlyZWQgQXR0ZW5kZWUgQWN0aXZpdHkgUGFydHkuICovXHJcbiAgICBSZXF1aXJlZEF0dGVuZGVlID0gNSxcclxuXHJcbiAgICAvKiogT3B0aW9uYWwgQXR0ZW5kZWUgQWN0aXZpdHkgUGFydHkuICovXHJcbiAgICBPcHRpb25hbEF0dGVuZGVlID0gNixcclxuXHJcbiAgICAvKiogT3JnYW5pc2VyIEFjdGl2aXR5IFBhcnR5LiAqL1xyXG4gICAgT3JnYW5pemVyID0gNyxcclxuXHJcbiAgICAvKiogUmVnYXJkaW5nIEFjdGl2aXR5IFBhcnR5LiAqL1xyXG4gICAgUmVnYXJkaW5nID0gOCxcclxuXHJcbiAgICAvKiogT3duZXIgQWN0aXZpdHkgUGFydHkuICovXHJcbiAgICBPd25lciA9IDksXHJcblxyXG4gICAgLyoqIFJlc291cmNlIEFjdGl2aXR5IFBhcnR5LiAqL1xyXG4gICAgUmVzb3VyY2UgPSAxMCxcclxuXHJcbiAgICAvKiogQ3VzdG9tZXIgQWN0aXZpdHkgUGFydHkuICovXHJcbiAgICBDdXN0b21lciA9IDExLFxyXG59XHJcbiIsImltcG9ydCB7IFRpbWVsaW5lQ2FyZERhdGUgfSBmcm9tIFwiLi9UaW1lbGluZUNhcmREYXRlXCI7XHJcbmltcG9ydCB7IENvbW1lbnRGaWVsZCB9IGZyb20gXCIuL0ZpZWxkcy9Db21tZW50RmllbGRcIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb21tZW50Rm9yQ3JlYXRlIH0gZnJvbSBcIi4uL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yQ3JlYXRlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW1TcGlubmVyMiB9IGZyb20gXCJyZWFjdC1pY29ucy9pbVwiO1xyXG5pbXBvcnQgeyBCaUNoZXZyb25Eb3duLCBCaVBlbmNpbCB9IGZyb20gXCJyZWFjdC1pY29ucy9iaVwiO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25Db2RlIH0gZnJvbSBcIi4uL0VudW1zL0RpcmVjdGlvbkNvZGVcIjtcclxuaW1wb3J0IHsgUGFydGljaXBhdGlvblR5cGVNYXNrIH0gZnJvbSBcIi4uL0VudW1zL1BhcnRpY2lwYXRpb25UeXBlTWFza1wiO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uU3RhdGUgfSBmcm9tIFwiLi4vVHlwZXMvU3VibWlzc2lvblN0YXRlXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IFRpbWVsaW5lUHJvcHMgfSBmcm9tIFwiLi9UaW1lbGluZVwiO1xyXG5cclxuLyoqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBwcm9wcyBmb3IgYSB0aW1lbGluZSBjb21tZW50LiAqL1xyXG50eXBlIFRpbWVsaW5lQ29tbWVudFByb3BzPFxyXG4gICAgVFBvcnRhbENvbW1lbnRGb3JDcmVhdGUgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yQ3JlYXRlLFxyXG4gICAgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsXHJcbj4gPSB7XHJcbiAgICBlbnRpdHlJbmZvcm1hdGlvbjogVGltZWxpbmVQcm9wczxUUG9ydGFsQ29tbWVudEZvckNyZWF0ZSwgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+O1xyXG4gICAgc2V0UG9ydGFsQ29tbWVudHM6ICh1cGRhdGVkQ29tbWVudHM6IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxbXSkgPT4gdm9pZDtcclxuICAgIHBvcnRhbENvbW1lbnRzOiBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW107XHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIGVudGl0eUlkOiBzdHJpbmc7XHJcbiAgICB0cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9uPzogKHBvcnRhbENvbW1lbnQ6IFBvcnRhbENvbW1lbnRGb3JDcmVhdGUpID0+IHZvaWQ7XHJcbiAgICB0cmFja1BvcnRhbENvbW1lbnRDcmVhdGVkU3VjY2Vzc2Z1bGx5PzogKHBvcnRhbENvbW1lbnQ6IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwpID0+IHZvaWQ7XHJcbn07XHJcblxyXG4vKiogQSBjb21wb25lbnQgcmVwcmVzZW50aW5nIHRoZSB0aW1lbGluZSBjb21tZW50IGNhcmQgYXQgdGhlIHRvcCBvZiB0aGUgdGltZWxpbmUuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBUaW1lbGluZUNvbW1lbnRDYXJkPFxyXG4gICAgVFBvcnRhbENvbW1lbnRGb3JDcmVhdGUgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yQ3JlYXRlLFxyXG4gICAgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsXHJcbj4oe1xyXG4gICAgZW50aXR5SW5mb3JtYXRpb24sXHJcbiAgICBzZXRQb3J0YWxDb21tZW50cyxcclxuICAgIHBvcnRhbENvbW1lbnRzLFxyXG4gICAgZGlzYWJsZWQsXHJcbiAgICBlbnRpdHlJZCxcclxuICAgIHRyYWNrUG9ydGFsQ29tbWVudFN1Ym1pc3Npb24sXHJcbiAgICB0cmFja1BvcnRhbENvbW1lbnRDcmVhdGVkU3VjY2Vzc2Z1bGx5LFxyXG59OiBUaW1lbGluZUNvbW1lbnRQcm9wczxUUG9ydGFsQ29tbWVudEZvckNyZWF0ZSwgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+KSB7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHsgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgXFxgdXNlck1ldGFkYXRhLmNvbnRhY3RJZFxcYCB0byBiZSBwb3B1bGF0ZWRgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0SXNFeHBhbmRlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgW3BvcnRhbENvbW1lbnQsIHNldFBvcnRhbENvbW1lbnRdID0gdXNlU3RhdGU8UG9ydGFsQ29tbWVudEZvckNyZWF0ZT4oe1xyXG4gICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogZW50aXR5SWQhLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50ZGlyZWN0aW9uY29kZTogRGlyZWN0aW9uQ29kZVtcIkluY29taW5nXCJdLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFkeF9wb3J0YWxjb21tZW50X2FjdGl2aXR5X3BhcnRpZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGFydGljaXBhdGlvbnR5cGVtYXNrOiBQYXJ0aWNpcGF0aW9uVHlwZU1hc2tbXCJTZW5kZXJcIl0sXHJcbiAgICAgICAgICAgICAgICBfcGFydHlpZF92YWx1ZTogdXNlck1ldGFkYXRhLmNvbnRhY3RJZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgfSBzYXRpc2ZpZXMgUG9ydGFsQ29tbWVudEZvckNyZWF0ZSk7XHJcblxyXG4gICAgLy8gUHJvZ3Jlc3Mgb2YgdGhlIENvbW1lbnQgY3JlYXRpb25cclxuICAgIGNvbnN0IFtzdWJtaXNzaW9uU3RhdGUsIHNldFN1Ym1pc3Npb25TdGF0ZV0gPSB1c2VTdGF0ZTxTdWJtaXNzaW9uU3RhdGU+KHtcclxuICAgICAgICBzdGF0ZTogXCJpZGxlXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICAvKiogSGFuZGxlciBmb3IgdGhlIGNyZWF0aW9uIG9mIHRoZSBjb21tZW50LiAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQoKSB7XHJcbiAgICAgICAgLy8gUHJldmVudCBhbiBlbXB0eSBjb21tZW50IGZyb20gYmVpbmcgc3VibWl0dGVkLlxyXG4gICAgICAgIGlmIChwb3J0YWxDb21tZW50LmRlc2NyaXB0aW9uID09PSBcIlwiKSB7XHJcbiAgICAgICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZSh7IHN0YXRlOiBcImVycm9yZWRcIiwgZXJyb3I6IG5ldyBFcnJvcihcIlRoZSBjb21tZW50IGNhbiBub3QgYmUgZW1wdHkuXCIpIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwic3VibWl0dGluZ1wiIH0pO1xyXG5cclxuICAgICAgICB0cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9uPy4ocG9ydGFsQ29tbWVudCk7XHJcblxyXG4gICAgICAgIGxldCBjcmVhdGVkUG9ydGFsQ29tbWVudDogVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgQ29tbWVudC5cclxuICAgICAgICAgICAgY3JlYXRlZFBvcnRhbENvbW1lbnQgPSBhd2FpdCBkYXRhU2VydmljZS5zZW5kUG9ydGFsQ29tbWVudChcclxuICAgICAgICAgICAgICAgIHBvcnRhbENvbW1lbnQgYXMgVFBvcnRhbENvbW1lbnRGb3JDcmVhdGUsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlJbmZvcm1hdGlvbi5jcmVhdGVNZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgIGVudGl0eUluZm9ybWF0aW9uLnJldHJpZXZlTWV0YWRhdGFcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJlcnJvcmVkXCIsIGVycm9yOiBlcnJvciBhcyBFcnJvciB9KTtcclxuICAgICAgICAgICAgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhPy4oZXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiY29tcGxldGVkXCIgfSk7XHJcbiAgICAgICAgdHJhY2tQb3J0YWxDb21tZW50Q3JlYXRlZFN1Y2Nlc3NmdWxseT8uKGNyZWF0ZWRQb3J0YWxDb21tZW50KTtcclxuXHJcbiAgICAgICAgc2V0UG9ydGFsQ29tbWVudHMoWy4uLnBvcnRhbENvbW1lbnRzLCBjcmVhdGVkUG9ydGFsQ29tbWVudF0pO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIHBvcnRhbCBjb21tZW50IHRvIGVtcHR5LlxyXG4gICAgICAgIHNldFBvcnRhbENvbW1lbnQoeyAuLi5wb3J0YWxDb21tZW50LCBkZXNjcmlwdGlvbjogXCJcIiB9KTtcclxuXHJcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGNvbW1lbnQgZGlhbG9nXHJcbiAgICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVsaW5lLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxUaW1lbGluZUNhcmREYXRlIGRhdGU9e25ldyBEYXRlKCl9IC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVsaW5lLWNhcmQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1zdWJqZWN0XCI+QWRkIGEgQ29tbWVudC4uLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb21tZW50RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e1wiQ29tbWVudFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BvcnRhbENvbW1lbnQuZGVzY3JpcHRpb24gfHwgXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZGVzY3JpcHRpb24pID0+IHNldFBvcnRhbENvbW1lbnQoeyAuLi5wb3J0YWxDb21tZW50LCBkZXNjcmlwdGlvbiB9KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1zdWJtaXNzaW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcImVycm9yZWRcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5GYWlsZWQgdG8gY3JlYXRlIENvbW1lbnQ8L3N0cm9uZz46IHtzdWJtaXNzaW9uU3RhdGUuZXJyb3IubWVzc2FnZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ1dHRvbiBjYW5jZWwtY29tbWVudCBkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc0V4cGFuZGVkKCFpc0V4cGFuZGVkKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ1dHRvbiBzdWJtaXQtY29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TdWJtaXQoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIiAmJiA8SW1TcGlubmVyMiBjbGFzc05hbWU9XCJzcGluXCIgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1jb21tZW50LXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXR0b24gdGltZWxpbmUtY29tbWVudC1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc0V4cGFuZGVkKCFpc0V4cGFuZGVkKX1cclxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9e2Rpc2FibGVkID8gXCJBIFBvcnRhbCBDb21tZW50IGNhbm5vdCBiZSBjcmVhdGVkIGFzIHRoZSByZWNvcmQgaXMgcmVhZC1vbmx5XCIgOiB1bmRlZmluZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50LWltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29tbWVudC1wZW5jaWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCaVBlbmNpbCBzaXplPXtcIjEuM2VtXCJ9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29tbWVudC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1lbnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+QWRkIGEgQ29tbWVudC4uLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2hldnJvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpQ2hldnJvbkRvd24gc2l6ZT17XCIxLjNlbVwifSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiIsImltcG9ydCB7IERpcmVjdGlvbkNvZGUgfSBmcm9tIFwiLi4vRW51bXMvRGlyZWN0aW9uQ29kZVwiO1xyXG5pbXBvcnQgeyBNYWpvckluY2lkZW50VXBkYXRlIH0gZnJvbSBcIi4uL01vZGVscy9NYWpvckluY2lkZW50VXBkYXRlXCI7XHJcbmltcG9ydCB7IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgUG9ydGFsRW1haWwgfSBmcm9tIFwiLi4vTW9kZWxzL1BvcnRhbEVtYWlsXCI7XHJcbmltcG9ydCB7IFRpbWVsaW5lUmVjb3JkIH0gZnJvbSBcIi4uL1R5cGVzL1RpbWVMaW5lUmVjb3JkXCI7XHJcbmltcG9ydCB7IFRpbWVsaW5lQ2FyZCB9IGZyb20gXCIuL1RpbWVsaW5lQ2FyZFwiO1xyXG5pbXBvcnQgeyBUaW1lbGluZUNvbW1lbnRDYXJkIH0gZnJvbSBcIi4vVGltZWxpbmVDb21tZW50Q2FyZFwiO1xyXG5pbXBvcnQgeyBQb3J0YWxDb21tZW50Rm9yQ3JlYXRlIH0gZnJvbSBcIi4uL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yQ3JlYXRlXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5pbXBvcnQgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbi8qKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgcHJvcGVydGllcyBmb3IgdGhlIHRpbWVsaW5lLiAqL1xyXG5leHBvcnQgdHlwZSBUaW1lbGluZVByb3BzPFxyXG4gICAgVFBvcnRhbENvbW1lbnRGb3JDcmVhdGUgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yQ3JlYXRlLFxyXG4gICAgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwgZXh0ZW5kcyBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsXHJcbj4gPSB7XHJcbiAgICAvKiogVGhlIE1ldGFkYXRhIHVzZWQgZm9yIGNyZWF0aW5nIGEgUG9ydGFsIENvbW1lbnQuICovXHJcbiAgICBjcmVhdGVNZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VFBvcnRhbENvbW1lbnRGb3JDcmVhdGU+O1xyXG5cclxuICAgIC8qKiBUaGUgTWV0YWRhdGEgdXNlZCBmb3IgcmV0cmlldmluZyBhIFBvcnRhbCBDb21tZW50LiAqL1xyXG4gICAgcmV0cmlldmVNZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+O1xyXG59O1xyXG5cclxuLyoqIEEgY29tcG9uZW50IHJlcHJlc2VudGluZyBhIHRpbWVsaW5lLiAqL1xyXG5leHBvcnQgY29uc3QgVGltZWxpbmUgPSA8XHJcbiAgICBUUG9ydGFsQ29tbWVudEZvckNyZWF0ZSBleHRlbmRzIFBvcnRhbENvbW1lbnRGb3JDcmVhdGUsXHJcbiAgICBUUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbCBleHRlbmRzIFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxcclxuPihwcm9wczoge1xyXG4gICAgY3VycmVudEVudGl0eTogVGltZWxpbmVQcm9wczxUUG9ydGFsQ29tbWVudEZvckNyZWF0ZSwgVFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWw+O1xyXG4gICAgcG9ydGFsRW1haWxzOiBQb3J0YWxFbWFpbFtdO1xyXG4gICAgbWFqb3JJbmNpZGVudFVwZGF0ZXM6IE1ham9ySW5jaWRlbnRVcGRhdGVbXTtcclxuICAgIHBvcnRhbENvbW1lbnRzOiBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW107XHJcbiAgICB0aWNrZXROdW1iZXI6IHN0cmluZztcclxuICAgIHNldFBvcnRhbENvbW1lbnRzOiAodXBkYXRlZENvbW1lbnRzOiBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW10pID0+IHZvaWQ7XHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIGVudGl0eUlkOiBzdHJpbmc7XHJcbiAgICB0cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9uPzogKHBvcnRhbENvbW1lbnQ6IFBvcnRhbENvbW1lbnRGb3JDcmVhdGUpID0+IHZvaWQ7XHJcbiAgICB0cmFja1BvcnRhbENvbW1lbnRDcmVhdGVkU3VjY2Vzc2Z1bGx5PzogKHBvcnRhbENvbW1lbnQ6IFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwpID0+IHZvaWQ7XHJcbiAgICBkaXZSZWZlcmVuY2U/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+IHwgbnVsbDtcclxufSkgPT4ge1xyXG4gICAgY29uc3QgZW1haWxUaW1lbGluZVJlY29yZHM6IFRpbWVsaW5lUmVjb3JkW10gPSBwcm9wcy5wb3J0YWxFbWFpbHMubWFwKChlbWFpbCkgPT4gKHtcclxuICAgICAgICBpZDogZW1haWwuYWN0aXZpdHlpZCxcclxuICAgICAgICB0eXBlOiBcIkVtYWlsXCIsXHJcbiAgICAgICAgc3ViamVjdDogZW1haWwuc3ViamVjdCxcclxuICAgICAgICBib2R5OiBlbWFpbC5kZXNjcmlwdGlvbixcclxuICAgICAgICBkYXRlOiBlbWFpbC5jcmVhdGVkb24sXHJcbiAgICAgICAgZGlyZWN0aW9uOiBlbWFpbC5iaXN0ZWNoX2RpcmVjdGlvbiA/IFwiZnJvbS1iaXN0ZWNoXCIgOiBcImZyb20tY3VzdG9tZXJcIixcclxuICAgIH0pKTtcclxuXHJcbiAgICBjb25zdCBjb21tZW50VGltZWxpbmVSZWNvcmRzOiBUaW1lbGluZVJlY29yZFtdID0gcHJvcHMucG9ydGFsQ29tbWVudHMubWFwKChjb21tZW50KSA9PiAoe1xyXG4gICAgICAgIGlkOiBjb21tZW50LmFjdGl2aXR5aWQsXHJcbiAgICAgICAgdHlwZTogXCJDb21tZW50XCIsXHJcbiAgICAgICAgYm9keTogY29tbWVudC5kZXNjcmlwdGlvbixcclxuICAgICAgICBkYXRlOiBjb21tZW50LmNyZWF0ZWRvbixcclxuICAgICAgICBkaXJlY3Rpb246IGNvbW1lbnQuYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlID09PSBEaXJlY3Rpb25Db2RlLk91dGdvaW5nID8gXCJmcm9tLWJpc3RlY2hcIiA6IFwiZnJvbS1jdXN0b21lclwiLFxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0IG1ham9ySW5jaWRlbnRUaW1lbGluZVJlY29yZHM6IFRpbWVsaW5lUmVjb3JkW10gPSBwcm9wcy5tYWpvckluY2lkZW50VXBkYXRlcy5tYXAoKG1ham9ySW5jaWRlbnRVcGRhdGUpID0+ICh7XHJcbiAgICAgICAgaWQ6IG1ham9ySW5jaWRlbnRVcGRhdGUuYWN0aXZpdHlpZCxcclxuICAgICAgICB0eXBlOiBcIk1ham9ySW5jaWRlbnRVcGRhdGVcIixcclxuICAgICAgICBzdWJqZWN0OiBgSW4gcmVmZXJlbmNlIHRvOiAke3Byb3BzLnRpY2tldE51bWJlcn1gLFxyXG4gICAgICAgIGJvZHk6IG1ham9ySW5jaWRlbnRVcGRhdGUuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgZGF0ZTogbWFqb3JJbmNpZGVudFVwZGF0ZS5jcmVhdGVkb24sXHJcbiAgICAgICAgZGlyZWN0aW9uOiBcImZyb20tYmlzdGVjaFwiLFxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0IHRpbWVsaW5lUmVjb3JkcyA9IGVtYWlsVGltZWxpbmVSZWNvcmRzLmNvbmNhdChjb21tZW50VGltZWxpbmVSZWNvcmRzKS5jb25jYXQobWFqb3JJbmNpZGVudFRpbWVsaW5lUmVjb3Jkcyk7XHJcblxyXG4gICAgLy8gU29ydCB0aGUgdGltZWxpbmUgcmVjb3JkcyBieSAnY3JlYXRlZG9uJyBkYXRlLlxyXG4gICAgY29uc3Qgc29ydGVkVGltZWxpbmVSZWNvcmRzID0gdGltZWxpbmVSZWNvcmRzXHJcbiAgICAgICAgLnNsaWNlKClcclxuICAgICAgICAuc29ydCgocmVjb3JkQSwgcmVjb3JkQikgPT4gbmV3IERhdGUocmVjb3JkQi5kYXRlKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShyZWNvcmRBLmRhdGUpLmdldFRpbWUoKSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVsaW5lLWNvbnRhaW5lclwiIHJlZj17cHJvcHMuZGl2UmVmZXJlbmNlfT5cclxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cImhlYWRpbmdcIj5UaW1lbGluZTwvaDI+XHJcbiAgICAgICAgICAgIDxUaW1lbGluZUNvbW1lbnRDYXJkXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlJbmZvcm1hdGlvbj17e1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZU1ldGFkYXRhOiBwcm9wcy5jdXJyZW50RW50aXR5LmNyZWF0ZU1ldGFkYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHJpZXZlTWV0YWRhdGE6IHByb3BzLmN1cnJlbnRFbnRpdHkucmV0cmlldmVNZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBzZXRQb3J0YWxDb21tZW50cz17cHJvcHMuc2V0UG9ydGFsQ29tbWVudHN9XHJcbiAgICAgICAgICAgICAgICBwb3J0YWxDb21tZW50cz17cHJvcHMucG9ydGFsQ29tbWVudHN9XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17cHJvcHMuZGlzYWJsZWR9XHJcbiAgICAgICAgICAgICAgICBlbnRpdHlJZD17cHJvcHMuZW50aXR5SWR9XHJcbiAgICAgICAgICAgICAgICB0cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9uPXtwcm9wcy50cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9ufVxyXG4gICAgICAgICAgICAgICAgdHJhY2tQb3J0YWxDb21tZW50Q3JlYXRlZFN1Y2Nlc3NmdWxseT17cHJvcHMudHJhY2tQb3J0YWxDb21tZW50Q3JlYXRlZFN1Y2Nlc3NmdWxseX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAge3NvcnRlZFRpbWVsaW5lUmVjb3Jkcy5tYXAoKHRpbWVsaW5lUmVjb3JkKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8VGltZWxpbmVDYXJkIGtleT17dGltZWxpbmVSZWNvcmQuaWR9IHRpbWVsaW5lUmVjb3JkPXt0aW1lbGluZVJlY29yZH0gLz5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBQYXJ0aWNpcGF0aW9uVHlwZU1hc2sgfSBmcm9tIFwiLi4vRW51bXMvUGFydGljaXBhdGlvblR5cGVNYXNrXCI7XHJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUxpdmVDcnVkU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgQWN0aXZpdHkgUGFydHkgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgcGFydGljaXBhdGlvbnR5cGVtYXNrPzogUGFydGljaXBhdGlvblR5cGVNYXNrID0gdW5kZWZpbmVkO1xyXG4gICAgX3BhcnR5aWRfdmFsdWU/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgQWN0aXZpdHlQYXJ0eSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGluIGEgcnVudGltZSBvYmplY3RcclxuZXhwb3J0IGNvbnN0IEFDVElWSVRZX1BBUlRZX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxBY3Rpdml0eVBhcnR5PiA9IHtcclxuICAgIHRpdGxlQ29sdW1uTmFtZTogbnVsbCxcclxuICAgIGNvbHVtbk5hbWVzOiBPYmplY3Qua2V5cyhuZXcgSW50ZXJuYWxNb2RlbCgpKSBhcyAoa2V5b2YgQWN0aXZpdHlQYXJ0eSlbXSxcclxuICAgIGVudGl0eVJlZmVyZW5jZUNvbHVtbk1hcHBpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBcIl9wYXJ0eWlkX3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IFwicGFydHlpZF9jb250YWN0XCIsXHJcbiAgICAgICAgICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IFwiY29udGFjdHNcIixcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFtdLFxyXG59O1xyXG4iLCJpbXBvcnQgeyBEaXJlY3Rpb25Db2RlIH0gZnJvbSBcIi4uL0VudW1zL0RpcmVjdGlvbkNvZGVcIjtcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlTGl2ZUNydWRTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjdGl2aXR5UGFydHksIEFDVElWSVRZX1BBUlRZX01FVEFEQVRBIH0gZnJvbSBcIi4vQWN0aXZpdHlQYXJ0eVwiO1xyXG5cclxuLyoqXHJcbiAqIE1vZGVsIG9mIGEgUG9ydGFsIENvbW1lbnQgd2hlbiByZXRyaWV2ZWQgdmlhIHRoZSBBUEkuXHJcbiAqIE5PVEU6IEZpZWxkcyBuYW1lcyBtdXN0IG1hdGNoIGV4YWN0bHkgdGhlIEFQSS5cclxuICovXHJcbmNsYXNzIEludGVybmFsTW9kZWwge1xyXG4gICAgX3JlZ2FyZGluZ29iamVjdGlkX3ZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYWR4X3BvcnRhbGNvbW1lbnRkaXJlY3Rpb25jb2RlPzogRGlyZWN0aW9uQ29kZSA9IHVuZGVmaW5lZDtcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgYWR4X3BvcnRhbGNvbW1lbnRfYWN0aXZpdHlfcGFydGllcz86IEFjdGl2aXR5UGFydHlbXSB8IG51bGwgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8vIEV4cG9ydCBhIHNpbXBsZSB0eXBlIG9mIGFsbCBmaWVsZHNcclxuZXhwb3J0IHR5cGUgUG9ydGFsQ29tbWVudEZvckNyZWF0ZSA9IFJlcXVpcmVkPEludGVybmFsTW9kZWw+O1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIFBvcnRhbCBDb21tZW50IG1ldGFkYXRhIGZvciBjcmVhdGUuXHJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uUHJvcGVydHlOYW1lIFRoZSBuYXZpZ2F0aW9uIHByb3BlcnR5IG5hbWUuXHJcbiAqIEBwYXJhbSBwbHVyYWxFbnRpdHlTZXROYW1lIFRoZSBQbHVyYWwgRW50aXR5IFNldCBOYW1lLlxyXG4gKiBAcmV0dXJucyBUaGUgUG9ydGFsIENvbW1lbnQgbWV0YWRhdGEgZm9yIGNyZWF0ZS5cclxuICovXHJcbmNvbnN0IGdldFBvcnRhbENvbW1lbnRNZXRhZGF0YSA9IChcclxuICAgIG5hdmlnYXRpb25Qcm9wZXJ0eU5hbWU6IHN0cmluZyxcclxuICAgIHBsdXJhbEVudGl0eVNldE5hbWU6IHN0cmluZ1xyXG4pOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxDb21tZW50Rm9yQ3JlYXRlPiA9PiAoe1xyXG4gICAgdGl0bGVDb2x1bW5OYW1lOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICBjb2x1bW5OYW1lczogT2JqZWN0LmtleXMobmV3IEludGVybmFsTW9kZWwoKSkgYXMgKGtleW9mIFBvcnRhbENvbW1lbnRGb3JDcmVhdGUpW10sXHJcbiAgICBlbnRpdHlSZWZlcmVuY2VDb2x1bW5NYXBwaW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogXCJfcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWVcIixcclxuICAgICAgICAgICAgbmF2aWdhdGlvblByb3BlcnR5TmFtZTogbmF2aWdhdGlvblByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgcGx1cmFsRW50aXR5U2V0TmFtZTogcGx1cmFsRW50aXR5U2V0TmFtZSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGV4cGFuZFByb3BlcnRpZXM6IFt7IGNvbHVtbk5hbWU6IFwiYWR4X3BvcnRhbGNvbW1lbnRfYWN0aXZpdHlfcGFydGllc1wiLCBlbnRpdHlNZXRhZGF0YTogQUNUSVZJVFlfUEFSVFlfTUVUQURBVEEgfV0sXHJcbn0pO1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGZvciB1c2Ugd2hlbiBwYXJlbnRlZCB0byBhIENhc2VcclxuZXhwb3J0IGNvbnN0IENSRUFURV9QT1JUQUxfQ09NTUVOVF9JTkNJREVOVF9NRVRBREFUQTogRW50aXR5TWV0YWRhdGE8UG9ydGFsQ29tbWVudEZvckNyZWF0ZT4gPSBnZXRQb3J0YWxDb21tZW50TWV0YWRhdGEoXHJcbiAgICBcInJlZ2FyZGluZ29iamVjdGlkX2luY2lkZW50XCIsXHJcbiAgICBcImluY2lkZW50c1wiXHJcbik7XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgZm9yIHVzZSB3aGVuIHBhcmVudGVkIHRvIGEgTmV0d29yayBPcmRlclxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1BPUlRBTF9DT01NRU5UX05FVFdPUktfT1JERVJfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPFBvcnRhbENvbW1lbnRGb3JDcmVhdGU+ID1cclxuICAgIGdldFBvcnRhbENvbW1lbnRNZXRhZGF0YShcInJlZ2FyZGluZ29iamVjdGlkX2Jpc3RlY2hfbmV0d29ya29yZGVyXCIsIFwiYmlzdGVjaF9uZXR3b3Jrb3JkZXJzXCIpO1xyXG5cclxuLy8gRXhwb3J0IG1ldGFkYXRhIGZvciB1c2Ugd2hlbiBwYXJlbnRlZCB0byBhIFByb2plY3RcclxuZXhwb3J0IGNvbnN0IENSRUFURV9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX01FVEFEQVRBOiBFbnRpdHlNZXRhZGF0YTxQb3J0YWxDb21tZW50Rm9yQ3JlYXRlPiA9IGdldFBvcnRhbENvbW1lbnRNZXRhZGF0YShcclxuICAgIFwicmVnYXJkaW5nb2JqZWN0aWRfbXNkeW5fcHJvamVjdFwiLFxyXG4gICAgXCJtc2R5bl9wcm9qZWN0c1wiXHJcbik7XHJcblxyXG4vLyBFeHBvcnQgbWV0YWRhdGEgZm9yIHVzZSB3aGVuIHBhcmVudGVkIHRvIGEgUHJvamVjdCBMb2cuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9MT0dfTUVUQURBVEE6IEVudGl0eU1ldGFkYXRhPFBvcnRhbENvbW1lbnRGb3JDcmVhdGU+ID1cclxuICAgIGdldFBvcnRhbENvbW1lbnRNZXRhZGF0YShcInJlZ2FyZGluZ29iamVjdGlkX2Jpc3RlY2hfcHJvamVjdGxvZ3NfYWR4X3BvcnRhbGNvbW1lbnRcIiwgXCJiaXN0ZWNoX3Byb2plY3Rsb2dzZXNcIik7XHJcbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRmFVc2VyIH0gZnJvbSBcInJlYWN0LWljb25zL2ZhXCI7XHJcbmltcG9ydCB7IEltU3Bpbm5lcjIgfSBmcm9tIFwicmVhY3QtaWNvbnMvaW1cIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBMb29rdXBGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9Mb29rdXBGaWVsZFwiO1xyXG5pbXBvcnQgeyBNdWx0aUxpbmVTdHJpbmdGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9NdWx0aUxpbmVTdHJpbmdGaWVsZFwiO1xyXG5pbXBvcnQgeyBTdHJpbmdGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9TdHJpbmdGaWVsZFwiO1xyXG5pbXBvcnQgeyBUaW1lbGluZSB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL1RpbWVsaW5lXCI7XHJcbmltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uLy4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuaW1wb3J0IHsgQ2FzZVByaW9yaXR5Q29kZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9DYXNlUHJpb3JpdHlDb2RlXCI7XHJcbmltcG9ydCB7IENhc2VUeXBlIH0gZnJvbSBcIi4uLy4uL0VudW1zL0Nhc2VUeXBlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbkNvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvRGlyZWN0aW9uQ29kZVwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvSW5jaWRlbnRTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFBhcnRpY2lwYXRpb25UeXBlTWFzayB9IGZyb20gXCIuLi8uLi9FbnVtcy9QYXJ0aWNpcGF0aW9uVHlwZU1hc2tcIjtcclxuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi8uLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IHVzZURhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZURhdGFTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBBR0VTIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZVBhZ2VOYXZpZ2F0aW9uXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRGb3JSZXRyaWV2ZU11bHRpcGxlIH0gZnJvbSBcIi4uLy4uL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZlTXVsdGlwbGVcIjtcclxuaW1wb3J0IHtcclxuICAgIFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWwsXHJcbiAgICBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfSU5DSURFTlRfTUVUQURBVEEsXHJcbn0gZnJvbSBcIi4uLy4uL01vZGVscy9Qb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uLy4uL1R5cGVzL0J1dHRvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IENhbGxUb0FjdGlvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uLy4uL1R5cGVzL0NhbGxUb0FjdGlvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IFN1Ym1pc3Npb25TdGF0ZSB9IGZyb20gXCIuLi8uLi9UeXBlcy9TdWJtaXNzaW9uU3RhdGVcIjtcclxuaW1wb3J0IHsgQ2FsbFRvQWN0aW9uQmFzZVBhZ2UgfSBmcm9tIFwiLi4vQ2FsbFRvQWN0aW9uQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgQ29udGFjdFN0YXRlQ29kZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9Db250YWN0U3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSBcIi4uL05vdEZvdW5kXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IHRvUGFydGlhbERpZmYgfSBmcm9tIFwiLi4vLi4vSGVscGVycy90b1BhcnRpYWxEaWZmXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IEJhbm5lclNhdmVQcmVyZXF1aXNpdGVzIH0gZnJvbSBcIi4uLy4uL1R5cGVzL0Jhbm5lclNhdmVQcmVyZXF1aXNpdGVzXCI7XHJcbmltcG9ydCB7IEluY2lkZW50Rm9yVXBkYXRlIH0gZnJvbSBcIi4uLy4uL01vZGVscy9JbmNpZGVudEZvclVwZGF0ZVwiO1xyXG5pbXBvcnQgeyBDUkVBVEVfUE9SVEFMX0NPTU1FTlRfSU5DSURFTlRfTUVUQURBVEEsIFBvcnRhbENvbW1lbnRGb3JDcmVhdGUgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JDcmVhdGVcIjtcclxuaW1wb3J0IHsgSW5jaWRlbnRGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL0luY2lkZW50Rm9yUmV0cmlldmFsXCI7XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgRWRpdCBDYXNlIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IENhc2VzRWRpdENvbnRlbnQ6IFJlYWN0LkZDPHsgaW5pdGlhbEluY2lkZW50OiBJbmNpZGVudEZvclJldHJpZXZhbDsgb25TYXZlOiAoKSA9PiB2b2lkIH0+ID0gKHByb3BzKSA9PiB7XHJcbiAgICBjb25zdCBpbmNpZGVudHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmluY2lkZW50cyk7XHJcbiAgICBjb25zdCBjb250YWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuY29udGFjdHMpO1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSB1c2VEYXRhU2VydmljZSgpO1xyXG4gICAgY29uc3QgdXNlck1ldGFkYXRhID0gdXNlVXNlck1ldGFkYXRhKCk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YSwgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcblxyXG4gICAgY29uc3QgZGlydHlCYW5uZXJTZXR0aW5ncyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuZGlydHlCYW5uZXJTZXR0aW5ncyk7XHJcblxyXG4gICAgY29uc3QgW2luY2lkZW50VG9VcGRhdGUsIHNldEluY2lkZW50XSA9IHVzZVN0YXRlPEluY2lkZW50Rm9yVXBkYXRlPih7XHJcbiAgICAgICAgX3ByaW1hcnljb250YWN0aWRfdmFsdWU6IHByb3BzLmluaXRpYWxJbmNpZGVudC5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSxcclxuICAgICAgICBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlOiBwcm9wcy5pbml0aWFsSW5jaWRlbnQuYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHNhdmVQcmVyZXF1aXNpdGVzOiBCYW5uZXJTYXZlUHJlcmVxdWlzaXRlc1tdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUHJpbWFyeSBDb250YWN0IGZpZWxkIGlzIG5vdCBQb3B1bGF0ZWQuXCIsXHJcbiAgICAgICAgICAgIGlzVmFsaWQ6ICgpID0+IEJvb2xlYW4oaW5jaWRlbnRUb1VwZGF0ZS5fcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSksXHJcbiAgICAgICAgICAgIGN1c3RvbWVyTWVzc2FnZTogXCJQbGVhc2UgcG9wdWxhdGUgYSAnUHJpbWFyeSBDb250YWN0J1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIEZsYWcgaG9sZGluZyB3aGV0aGVyIHRoZSBmb3JtIGhhcyBhdHRlbXB0ZWQgdG8gYmUgc3VibWl0dGVkXHJcbiAgICBjb25zdCBbZm9ybVN1Ym1pdEF0dGVtcHRlZCwgc2V0Rm9ybVN1Ym1pdEF0dGVtcHRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgW3N1Ym1pc3Npb25SZWFzb24sIHNldFN1Ym1pc3Npb25SZWFzb25dID0gdXNlU3RhdGUoXCJcIik7XHJcblxyXG4gICAgLy8gRmxhZyBob2xkaW5nIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBoYXMgbG9hZGVkXHJcbiAgICBjb25zdCBbaXNMb2FkZWQsIHNldElzTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICAvLyBQcm9ncmVzcyBvZiB0aGUgQ2FzZSB1cGRhdGVcclxuICAgIGNvbnN0IFtzdWJtaXNzaW9uU3RhdGUsIHNldFN1Ym1pc3Npb25TdGF0ZV0gPSB1c2VTdGF0ZTxTdWJtaXNzaW9uU3RhdGU+KHtcclxuICAgICAgICBzdGF0ZTogXCJpZGxlXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBbcG9ydGFsQ29tbWVudHMsIHNldFBvcnRhbENvbW1lbnRzXSA9IHVzZVN0YXRlPFBvcnRhbENvbW1lbnRGb3JSZXRyaWV2YWxbXT4oXHJcbiAgICAgICAgcHJvcHMuaW5pdGlhbEluY2lkZW50LmluY2lkZW50X2FkeF9wb3J0YWxjb21tZW50cyA/PyBbXVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIHRoZSB1c2VyIGNvbnRhY3RJRCB0byBiZSBwb3B1bGF0ZWQgYnV0IHdhcyAke3VzZXJNZXRhZGF0YS5jb250YWN0SWR9IGApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdoZW4gdGhlIENhc2UgaGFzIGJlZW4gdXBkYXRlZCAoYnV0IG5vdCB5ZXQgc2F2ZWQpLCB1cGRhdGUgdGhlIGlzRGlydHkgZmxhZ1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBoYXNVbnNhdmVkQ2hhbmdlcyA9IE9iamVjdC5rZXlzKHRvUGFydGlhbERpZmYocHJvcHMuaW5pdGlhbEluY2lkZW50LCBpbmNpZGVudFRvVXBkYXRlKSkubGVuZ3RoID4gMDtcclxuXHJcbiAgICAgICAgaWYgKCFoYXNVbnNhdmVkQ2hhbmdlcykge1xyXG4gICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIlNldERpcnR5QmFubmVyU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgIGRpcnR5QmFubmVyU2V0dGluZ3M6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiU2V0RGlydHlCYW5uZXJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICBkaXJ0eUJhbm5lclNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInNob3dTYXZlQnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICBzYXZlRnVuY3Rpb246IG9uU3VibWl0LFxyXG4gICAgICAgICAgICAgICAgc3VibWlzc2lvblByZXJlcXVpc2l0ZXM6IHNhdmVQcmVyZXF1aXNpdGVzLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgW2luY2lkZW50VG9VcGRhdGUsIHByb3BzLmluaXRpYWxJbmNpZGVudF0pO1xyXG5cclxuICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBhcyBsb2FkZWRcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0SXNMb2FkZWQodHJ1ZSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgaWYgKCFwcm9wcy5pbml0aWFsSW5jaWRlbnQgfHwgIWluY2lkZW50VG9VcGRhdGUpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHR5cGU9XCJyZWNvcmQtbm90LWZvdW5kXCIgc2luZ3VsYXJFbnRpdHlOYW1lPVwiQ2FzZVwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgaGFuZGxlciBmb3Igc3VibWlzc2lvbiBvZiB0aGUgZm9ybS5cclxuICAgICAqIEBwYXJhbSBldmVudCBGb3JtIHN1Ym1pc3Npb24gZXZlbnQuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGZ1bmN0aW9uIG9uU3VibWl0KCkge1xyXG4gICAgICAgIGlmIChpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBcXGBpbmNpZGVudHNcXGAgdG8gaGF2ZSBsb2FkZWQgYmVmb3JlIHN1Ym1pc3Npb25gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZSh7IHN0YXRlOiBcInN1Ym1pdHRpbmdcIiB9KTtcclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgdHlwZTogXCJFZGl0IENhc2UgLSBDYXNlIHVwZGF0ZSBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgaW5jaWRlbnRJZDogcHJvcHMuaW5pdGlhbEluY2lkZW50LmluY2lkZW50aWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCB1cGRhdGVkSW5jaWRlbnQ6IEluY2lkZW50Rm9yUmV0cmlldmVNdWx0aXBsZTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBDYXNlXHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbmNpZGVudCA9IGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZUluY2lkZW50KFxyXG4gICAgICAgICAgICAgICAgcHJvcHMuaW5pdGlhbEluY2lkZW50LmluY2lkZW50aWQsXHJcbiAgICAgICAgICAgICAgICB0b1BhcnRpYWxEaWZmKHByb3BzLmluaXRpYWxJbmNpZGVudCwgaW5jaWRlbnRUb1VwZGF0ZSEpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiZXJyb3JlZFwiLCBlcnJvcjogZXJyb3IgYXMgRXJyb3IgfSk7XHJcbiAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkVkaXQgQ2FzZSAtIENhc2UgdXBkYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgaW5jaWRlbnRJZDogcHJvcHMuaW5pdGlhbEluY2lkZW50LmluY2lkZW50aWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEFkZCB0aGUgbmV3bHkgdXBkYXRlZCBJbmNpZGVudCB0byBzdGF0ZSwgc28gaXQgY2FuIGJlIHZpZXdlZFxyXG4gICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgdHlwZTogXCJTZXRBY3RpdmVJbmNpZGVudHNcIixcclxuICAgICAgICAgICAgYWN0aXZlSW5jaWRlbnRzOiB7XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5kYXRhLmNvbmNhdChbdXBkYXRlZEluY2lkZW50XSksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZSh7IHN0YXRlOiBcImNvbXBsZXRlZFwiIH0pO1xyXG4gICAgICAgIHByb3BzLm9uU2F2ZSgpO1xyXG5cclxuICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiQWRkTm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogXCJDYXNlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5ZWRPblJlbGF0aXZlVXJsOiBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofWAsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB3aGljaCBjb250cm9scyB0aGUgaGFuZGxpbmcgb2YgZGF0YSBnZW5lcmF0aW9uIGZvciB0aGUgY2FsbCB0byBhY3Rpb24gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IG9mIENhbGxUb0FjdGlvbkluZm9ybWF0aW9uIHdoaWNoIHJlcHJlc2VudHMgdGhlIGRhdGEgdGhlIGNhbGwgdG8gYWN0aW9uIGZpZWxkIGNvbXBvbmVudCBjYW4gd29yayB3aXRoLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbigpOiBMb2FkaW5nRGF0YTxDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbj4ge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENyZWF0ZXMgYSBQb3J0YWwgQ29tbWVudCBvbiBjbGljayBvZiB0aGUgY2FsbC10by1hY3Rpb24gYnV0dG9ucy5cclxuICAgICAgICAgKiBAcGFyYW0gY29tbWVudERlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiB3aGljaCB3aWxsIGdvIGludG8gdGhlIGNvbW1lbnQgdGhhdCBpcyBnZW5lcmF0ZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2VuZFBvcnRhbENvbW1lbnQoY29tbWVudERlc2NyaXB0aW9uOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgY29uc3QgcG9ydGFsQ29tbWVudDogUG9ydGFsQ29tbWVudEZvckNyZWF0ZSA9IHtcclxuICAgICAgICAgICAgICAgIF9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZTogcHJvcHMuaW5pdGlhbEluY2lkZW50LmluY2lkZW50aWQsXHJcbiAgICAgICAgICAgICAgICBhZHhfcG9ydGFsY29tbWVudGRpcmVjdGlvbmNvZGU6IERpcmVjdGlvbkNvZGVbXCJJbmNvbWluZ1wiXSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb21tZW50RGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICBhZHhfcG9ydGFsY29tbWVudF9hY3Rpdml0eV9wYXJ0aWVzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW9udHlwZW1hc2s6IFBhcnRpY2lwYXRpb25UeXBlTWFza1tcIlNlbmRlclwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3BhcnR5aWRfdmFsdWU6IHVzZXJNZXRhZGF0YSEuY29udGFjdElkISxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJFZGl0IENhc2UgLSBQb3J0YWwgQ29tbWVudCBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgIGluY2lkZW50SWQ6IHByb3BzLmluaXRpYWxJbmNpZGVudC5pbmNpZGVudGlkLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWRDb21tZW50ID0gYXdhaXQgZGF0YVNlcnZpY2Uuc2VuZFBvcnRhbENvbW1lbnQoXHJcbiAgICAgICAgICAgICAgICBwb3J0YWxDb21tZW50LFxyXG4gICAgICAgICAgICAgICAgQ1JFQVRFX1BPUlRBTF9DT01NRU5UX0lOQ0lERU5UX01FVEFEQVRBLFxyXG4gICAgICAgICAgICAgICAgUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX0lOQ0lERU5UX01FVEFEQVRBXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBDYXNlIC0gUG9ydGFsIENvbW1lbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgIGluY2lkZW50SWQ6IHByb3BzLmluaXRpYWxJbmNpZGVudC5pbmNpZGVudGlkLFxyXG4gICAgICAgICAgICAgICAgYWN0aXZpdHlJZDogY3JlYXRlZENvbW1lbnQuYWN0aXZpdHlpZCxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBzZXRQb3J0YWxDb21tZW50cyhbLi4ucG9ydGFsQ29tbWVudHMsIGNyZWF0ZWRDb21tZW50XSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBBbiBPYmplY3QgY29udGFpbmluZyB0aGUgJ1JlcXVlc3QgQ2xvc3VyZScgQ2FsbCBUbyBBY3Rpb24gQnV0dG9uIEluZm9ybWF0aW9uLlxyXG4gICAgICAgIGNvbnN0IHJlcXVlc3RDbG9zdXJlQnV0dG9uOiBCdXR0b25JbmZvcm1hdGlvbiA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IFwiUmVxdWVzdCBDbG9zdXJlXCIsXHJcbiAgICAgICAgICAgIGhhc01vZGFsOiB0cnVlLFxyXG4gICAgICAgICAgICBhcHBJbnNpZ2h0czoge1xyXG4gICAgICAgICAgICAgICAgc3VibWlzc2lvbkV2ZW50VHlwZTogXCJFZGl0IENhc2UgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZFN1Y2Nlc3NmdWxseUV2ZW50VHlwZTogXCJFZGl0IENhc2UgLSBDYWxsLXRvLUFjdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG1vZGFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgaXNFcnJvck1vZGFsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiU3VibWl0XCIsXHJcbiAgICAgICAgICAgICAgICBtb2RhbENvbnRlbnQ6IChcclxuICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TXVsdGlMaW5lU3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJSZWFzb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJSZWFzb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3NldFN1Ym1pc3Npb25SZWFzb259XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c3VibWlzc2lvblJlYXNvbn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBtb2RhbFRpdGxlOiBcIlJlcXVlc3QgQ2xvc3VyZVwiLFxyXG4gICAgICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcXVlc3QgY2xvc3VyZVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDYXNlID0gYXdhaXQgZGF0YVNlcnZpY2UuZXhlY3V0ZVJlcXVlc3RDbG9zdXJlUG9ydGFsQWN0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pbml0aWFsSW5jaWRlbnQuaW5jaWRlbnRpZFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBFeHBlY3RlZCBhY3RpdmUgSW5jaWRlbnRzIHRvIGJlIGxvYWRlZCBidXQgd2FzICR7aW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5sb2FkaW5nU3RhdHVzfWBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNlbmQgdGhlIFBvcnRhbCBDb21tZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSU1QT1JUQU5UOiBUaGlzIHByZWZpeCBpcyByZWxpZWQgdXBvbiBieSBEYXNoYm9hcmRzLCBwbGVhc2UgY2hlY2sgaW4gRGF0YVNlcnZpY2UuY3MgYmVmb3JlIG1vZGlmeWluZyB0aGUgYmVsb3cgbGluZVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRQb3J0YWxDb21tZW50KGBDYXNlIGNsb3N1cmUgcmVxdWVzdGVkOiAke3N1Ym1pc3Npb25SZWFzb259YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRBY3RpdmVJbmNpZGVudHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlSW5jaWRlbnRzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmluY2lkZW50cy5hY3RpdmVJbmNpZGVudHMuZGF0YS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNpZGVudCkgPT4gaW5jaWRlbnQuaW5jaWRlbnRpZCAhPT0gdXBkYXRlZENhc2UuaW5jaWRlbnRpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3ZlcndyaXRlIHRoZSBzdGF0dXNjb2RlIHRvIHRoZSBleHBlY3RlZCBzdGF0dXMgdG8gY2F0ZXIgZm9yIFBvcnRhbCBjYWNoZSBkZWxheXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IC4uLnVwZGF0ZWRDYXNlLCBzdGF0dXNjb2RlOiBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zdXJlIFJlcXVlc3RlZFwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkFkZE5vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQ2FzZSBjbG9zdXJlIHJlcXVlc3RlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZE9uUmVsYXRpdmVVcmw6IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlVbnRpbDogRGF0ZUhlbHBlci5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIDEwKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gJ1JlcXVlc3QgQ2xvc3VyZScgQ2FsbC10by1BY3Rpb24gYnV0dG9uXHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFJlb3BlbkJ1dHRvbjogQnV0dG9uSW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBcIlJlcXVlc3QgUmVvcGVuXCIsXHJcbiAgICAgICAgICAgIGhhc01vZGFsOiB0cnVlLFxyXG4gICAgICAgICAgICBhcHBJbnNpZ2h0czoge1xyXG4gICAgICAgICAgICAgICAgc3VibWlzc2lvbkV2ZW50VHlwZTogXCJFZGl0IENhc2UgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZFN1Y2Nlc3NmdWxseUV2ZW50VHlwZTogXCJFZGl0IENhc2UgLSBDYWxsLXRvLUFjdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG1vZGFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgaXNFcnJvck1vZGFsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiU3VibWl0XCIsXHJcbiAgICAgICAgICAgICAgICBtb2RhbENvbnRlbnQ6IChcclxuICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TXVsdGlMaW5lU3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJSZWFzb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJSZWFzb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3NldFN1Ym1pc3Npb25SZWFzb259XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c3VibWlzc2lvblJlYXNvbn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBtb2RhbFRpdGxlOiBcIlJlcXVlc3QgQ2xvc3VyZVwiLFxyXG4gICAgICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcXVlc3QgcmUtb3BlblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDYXNlID0gYXdhaXQgZGF0YVNlcnZpY2UuZXhlY3V0ZVJlcXVlc3RSZW9wZW5Qb3J0YWxBY3Rpb24oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxJbmNpZGVudC5pbmNpZGVudGlkXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYEV4cGVjdGVkIGFjdGl2ZSBJbmNpZGVudHMgdG8gYmUgbG9hZGVkIGJ1dCB3YXMgJHtpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXN9YFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VuZFBvcnRhbENvbW1lbnQoYENhc2UgcmVvcGVuIHJlcXVlc3RlZDogJHtzdWJtaXNzaW9uUmVhc29ufWApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0QWN0aXZlSW5jaWRlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUluY2lkZW50czoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5pbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmRhdGEuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5jaWRlbnQpID0+IGluY2lkZW50LmluY2lkZW50aWQgIT09IHVwZGF0ZWRDYXNlLmluY2lkZW50aWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgc3RhdHVzY29kZSB0byB0aGUgZXhwZWN0ZWQgc3RhdHVzIHRvIGNhdGVyIGZvciBQb3J0YWwgY2FjaGUgZGVsYXlzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAuLi51cGRhdGVkQ2FzZSwgc3RhdHVzY29kZTogSW5jaWRlbnRTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJBZGROb3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkNhc2UgcmVvcGVuZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWRPblJlbGF0aXZlVXJsOiBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vICdDb25maXJtIENsb3N1cmUnIENhbGwtdG8tQWN0aW9uIGJ1dHRvblxyXG4gICAgICAgIGNvbnN0IGNvbmZpcm1DbG9zdXJlQnV0dG9uOiBCdXR0b25JbmZvcm1hdGlvbiA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IFwiQ29uZmlybSBDbG9zdXJlXCIsXHJcbiAgICAgICAgICAgIGhhc01vZGFsOiBmYWxzZSxcclxuICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVxdWVzdCBjbG9zdXJlXHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ2FzZSA9IGF3YWl0IGRhdGFTZXJ2aWNlLmV4ZWN1dGVSZXF1ZXN0Q2xvc3VyZVBvcnRhbEFjdGlvbihcclxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5pbml0aWFsSW5jaWRlbnQuaW5jaWRlbnRpZFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgRXhwZWN0ZWQgYWN0aXZlIEluY2lkZW50cyB0byBiZSBsb2FkZWQgYnV0IHdhcyAke2luY2lkZW50cy5hY3RpdmVJbmNpZGVudHMubG9hZGluZ1N0YXR1c31gXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBhd2FpdCBzZW5kUG9ydGFsQ29tbWVudChcIkNhc2UgY2xvc2VkIGJ5IGN1c3RvbWVyXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhdGVcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIlNldENsb3NlZEluY2lkZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlZEluY2lkZW50czoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4oaW5jaWRlbnRzLmNsb3NlZEluY2lkZW50cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpbmNpZGVudHMuY2xvc2VkSW5jaWRlbnRzLmRhdGEuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNpZGVudCkgPT4gaW5jaWRlbnQuaW5jaWRlbnRpZCAhPT0gdXBkYXRlZENhc2UuaW5jaWRlbnRpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW10pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3ZlcndyaXRlIHRoZSBzdGF0dXNjb2RlIHRvIHRoZSBleHBlY3RlZCBzdGF0dXMgdG8gY2F0ZXIgZm9yIFBvcnRhbCBjYWNoZSBkZWxheXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgLi4udXBkYXRlZENhc2UsIHN0YXR1c2NvZGU6IEluY2lkZW50U3RhdHVzQ29kZVtcIkNsb3NlZFwiXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRBY3RpdmVJbmNpZGVudHNcIixcclxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVJbmNpZGVudHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5kYXRhLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNpZGVudCkgPT4gaW5jaWRlbnQuaW5jaWRlbnRpZCAhPT0gdXBkYXRlZENhc2UuaW5jaWRlbnRpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJBZGROb3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCJDYXNlIGNsb3NlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheWVkT25SZWxhdGl2ZVVybDogYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSR7d2luZG93LmxvY2F0aW9uLnNlYXJjaH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2hvdWxkU2hvd1JlcXVlc3RDbG9zdXJlQnV0dG9uID1cclxuICAgICAgICAgICAgcHJvcHMuaW5pdGlhbEluY2lkZW50LnN0YXR1c2NvZGUgPT09IEluY2lkZW50U3RhdHVzQ29kZS5PcGVuIHx8XHJcbiAgICAgICAgICAgIHByb3BzLmluaXRpYWxJbmNpZGVudC5zdGF0dXNjb2RlID09PSBJbmNpZGVudFN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSB8fFxyXG4gICAgICAgICAgICBwcm9wcy5pbml0aWFsSW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiT24gSG9sZFwiXSB8fFxyXG4gICAgICAgICAgICBwcm9wcy5pbml0aWFsSW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiUGVuZGluZyBGZWVkYmFja1wiXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2hvdWxkU2hvd1JlcXVlc3RSZW9wZW5CdXR0b24gPSBwcm9wcy5pbml0aWFsSW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlLlJlc29sdmVkO1xyXG5cclxuICAgICAgICBjb25zdCBzaG91bGRTaG93Q29uZmlybUNsb3N1cmVCdXR0b24gPSBwcm9wcy5pbml0aWFsSW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlLlJlc29sdmVkO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogSW5jaWRlbnRTdGF0dXNDb2RlW3Byb3BzLmluaXRpYWxJbmNpZGVudC5zdGF0dXNjb2RlXSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXRDb3JyZWN0Q2FzZURlc2NyaXB0aW9uKHByb3BzLmluaXRpYWxJbmNpZGVudC5zdGF0dXNjb2RlKSxcclxuICAgICAgICAgICAgICAgIGljb246IGdldENvcnJlY3RDYXNlU3RhdHVzSWNvbihwcm9wcy5pbml0aWFsSW5jaWRlbnQhLnN0YXR1c2NvZGUpLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLihzaG91bGRTaG93UmVxdWVzdENsb3N1cmVCdXR0b24gPyBbcmVxdWVzdENsb3N1cmVCdXR0b25dIDogW10pLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLihzaG91bGRTaG93UmVxdWVzdFJlb3BlbkJ1dHRvbiA/IFtyZXF1ZXN0UmVvcGVuQnV0dG9uXSA6IFtdKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oc2hvdWxkU2hvd0NvbmZpcm1DbG9zdXJlQnV0dG9uID8gW2NvbmZpcm1DbG9zdXJlQnV0dG9uXSA6IFtdKSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogZnVuY3Rpb24gdG8gY29ycmVjdGx5IHJldHVybiB0aGUgcmlnaHQgdHlwZSBvZiBjYXNlIHN0YXR1cyBJY29uXHJcbiAgICAgKiBAcGFyYW0gY2FzZVN0YXR1cyB0aGUgU3RhdHVzIENvZGUgb2YgdGhlIENhc2UuXHJcbiAgICAgKiBAcmV0dXJucyBhIHN0cmluZyB3aGljaCByZXByZXNlbnRzIHRoZSBDYXNlIHN0YXR1cyBpY29uLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRDb3JyZWN0Q2FzZVN0YXR1c0ljb24oY2FzZVN0YXR1czogSW5jaWRlbnRTdGF0dXNDb2RlKTogc3RyaW5nIHtcclxuICAgICAgICBzd2l0Y2ggKGNhc2VTdGF0dXMpIHtcclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGUuQ2FuY2VsbGVkOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY2FzZS1zdGF0dXMtY2FuY2VsbGVkLnN2Z1wiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGUuQ2xvc2VkOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY2FzZS1zdGF0dXMtY2xvc2VkLnN2Z1wiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zdXJlIFJlcXVlc3RlZFwiXTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImNhc2Utc3RhdHVzLWNsb3N1cmUtcmVxdWVzdGVkLnN2Z1wiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImNhc2Utc3RhdHVzLWluLXByb2dyZXNzLnN2Z1wiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGUuTWVyZ2VkOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY2FzZS1zdGF0dXMtbWVyZ2VkLnN2Z1wiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY2FzZS1zdGF0dXMtb24taG9sZC5zdmdcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgSW5jaWRlbnRTdGF0dXNDb2RlLk9wZW46XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJjYXNlLXN0YXR1cy1vcGVuLnN2Z1wiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGVbXCJQZW5kaW5nIEZlZWRiYWNrXCJdOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY2FzZS1zdGF0dXMtcGVuZGluZy1jdXN0b21lci1mZWVkYmFjay5zdmdcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgSW5jaWRlbnRTdGF0dXNDb2RlLlJlc29sdmVkOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY2FzZS1zdGF0dXMtcmVzb2x2ZWQuc3ZnXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBmdW5jdGlvbiB0byBnZXQgdGhlIGNvcnJlY3QgQ2FzZSBkZXNjcmlwdGlvblxyXG4gICAgICogQHBhcmFtIGNhc2VTdGF0dXMgdGhlIFN0YXR1cyBDb2RlIG9mIHRoZSBDYXNlLlxyXG4gICAgICogQHJldHVybnMgYSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyB0aGUgQ2FzZSBkZXNjcmlwdGlvbi5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZ2V0Q29ycmVjdENhc2VEZXNjcmlwdGlvbihjYXNlU3RhdHVzOiBJbmNpZGVudFN0YXR1c0NvZGUpOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaCAoY2FzZVN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIEluY2lkZW50U3RhdHVzQ29kZS5DYW5jZWxsZWQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJDYXNlIGNhbmNlbGxlZFwiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGUuQ2xvc2VkOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiU29sdXRpb24gaW1wbGVtZW50ZWRcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgSW5jaWRlbnRTdGF0dXNDb2RlW1wiQ2xvc3VyZSBSZXF1ZXN0ZWRcIl06XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJWYWxpZGF0aW5nIGNsb3N1cmVcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgSW5jaWRlbnRTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl06XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJJbXBsZW1lbnRpbmcgdGhlIHNvbHV0aW9uXCI7XHJcblxyXG4gICAgICAgICAgICBjYXNlIEluY2lkZW50U3RhdHVzQ29kZS5NZXJnZWQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJNZXJnZWQgaW50byBhbm90aGVyIGNhc2VcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgSW5jaWRlbnRTdGF0dXNDb2RlW1wiT24gSG9sZFwiXTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIkNhc2UgT24gSG9sZCB1bnRpbCBsYXRlciBkYXRlXCI7XHJcblxyXG4gICAgICAgICAgICBjYXNlIEluY2lkZW50U3RhdHVzQ29kZS5PcGVuOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiVHJpYWdpbmcgdGhlIENhc2VcIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgSW5jaWRlbnRTdGF0dXNDb2RlW1wiUGVuZGluZyBGZWVkYmFja1wiXTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlByb3ZpZGUgZnVydGhlciBpbmZvcm1hdGlvblwiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBJbmNpZGVudFN0YXR1c0NvZGUuUmVzb2x2ZWQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJDb25maXJtIGNsb3N1cmUgdG8gY2xvc2UgdGhlIENhc2VcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNSZWFkT25seSA9XHJcbiAgICAgICAgcHJvcHMuaW5pdGlhbEluY2lkZW50LnN0YXR1c2NvZGUgPT09IEluY2lkZW50U3RhdHVzQ29kZVtcIkNhbmNlbGxlZFwiXSB8fFxyXG4gICAgICAgIHByb3BzLmluaXRpYWxJbmNpZGVudC5zdGF0dXNjb2RlID09PSBJbmNpZGVudFN0YXR1c0NvZGVbXCJDbG9zZWRcIl0gfHxcclxuICAgICAgICBwcm9wcy5pbml0aWFsSW5jaWRlbnQuc3RhdHVzY29kZSA9PT0gSW5jaWRlbnRTdGF0dXNDb2RlW1wiTWVyZ2VkXCJdO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPENhbGxUb0FjdGlvbkJhc2VQYWdlXHJcbiAgICAgICAgICAgIHRpdGxlPXtwcm9wcy5pbml0aWFsSW5jaWRlbnQudGl0bGV9XHJcbiAgICAgICAgICAgIHRhZ3M9e1tcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNhc2UtcmVmZXJlbmNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHByb3BzLmluaXRpYWxJbmNpZGVudC50aWNrZXRudW1iZXIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY2FzZS10eXBlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHByb3BzLmluaXRpYWxJbmNpZGVudC5jYXNldHlwZWNvZGUgPyBDYXNlVHlwZVtwcm9wcy5pbml0aWFsSW5jaWRlbnQuY2FzZXR5cGVjb2RlXSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICBjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbj17Z2V0Q2FsbFRvQWN0aW9uSW5mb3JtYXRpb24oKX1cclxuICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlPXtzZXRTdWJtaXNzaW9uU3RhdGV9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8Zm9ybVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZWRpdC1jYXNlXCJcclxuICAgICAgICAgICAgICAgIGRhdGEtc3VibWl0LWF0dGVtcHRlZD17Zm9ybVN1Ym1pdEF0dGVtcHRlZH1cclxuICAgICAgICAgICAgICAgIG9uU3VibWl0PXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIG9uSW52YWxpZD17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgaWYgdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQgKGkuZS4gaWdub3JlIHRoZSB2YWxpZGl0eSBjaGVja3Mgd2hlbiB0aGUgZm9ybSBpcyBpbml0aWFsbHkgbG9hZGVkKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYSBmbGFnIGRldGFpbGluZyB0aGF0IGEgZm9ybSBzdWJtaXNzaW9uIGhhcyBiZWVuIGF0dGVtcHRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRGb3JtU3VibWl0QXR0ZW1wdGVkKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW5lcmFsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cImhlYWRpbmdcIj5JbmZvcm1hdGlvbjwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9va3VwRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiX3ByaW1hcnljb250YWN0aWRfdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUHJpbWFyeSBDb250YWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtpbmNpZGVudFRvVXBkYXRlLl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9ezw+VGhlIG5vbWluYXRlZCBDb250YWN0IHRvIHJlY2VpdmUgQ2FzZSByZWxhdGVkIGNvcnJlc3BvbmRlbmNlLjwvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWxPcHRpb25zTmFtZT1cIkFjdGl2ZSBDb250YWN0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGFjdHMuZGF0YS5tYXAoKGNvbnRhY3QpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRhY3QuY29udGFjdGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBbY29udGFjdC5maXJzdG5hbWUsIGNvbnRhY3QubGFzdG5hbWVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+IHMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiBjb250YWN0LmVtYWlsYWRkcmVzczEgPz8gXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BpY2thYmxlOiBjb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uSWQ9eyhfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5jaWRlbnQoeyAuLi5pbmNpZGVudFRvVXBkYXRlLCBfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbkNhcmRJbmZvPXsoc2VsZWN0ZWRPcHRpb24pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IDxGYVVzZXIgLz4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBzZWxlY3RlZE9wdGlvbi5wcmltYXJ5VGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dDogc2VsZWN0ZWRPcHRpb24uc2Vjb25kYXJ5VGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbEZpZWxkczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiSm9iIFRpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uLmNvbnRhY3Quam9idGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVGVsZXBob25lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uLmNvbnRhY3QudGVsZXBob25lMSB8fCBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1vYmlsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RlZE9wdGlvbi5jb250YWN0Lm1vYmlsZXBob25lIHx8IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUGVybWlzc2lvbiBMZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBCYXNlUGVybWlzc2lvbkxldmVsW3NlbGVjdGVkT3B0aW9uLmNvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWwhXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGEgQ29udGFjdFwiLCBkaXNhYmxlZDogaXNSZWFkT25seSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIllvdXIgUmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17PD5Zb3VyIENhc2UgUmVmZXJlbmNlIChpZiBuZWVkZWQpIGZvciBvdXIgcmVjb3Jkcy48Lz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2luY2lkZW50VG9VcGRhdGUuYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZSB8fCBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5jaWRlbnQoeyAuLi5pbmNpZGVudFRvVXBkYXRlLCBiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IHJlcXVpcmVkOiBmYWxzZSwgZGlzYWJsZWQ6IGlzUmVhZE9ubHkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQcmlvcml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInByaW9yaXR5Y29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pbml0aWFsSW5jaWRlbnQucHJpb3JpdHljb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IENhc2VQcmlvcml0eUNvZGVbcHJvcHMuaW5pdGlhbEluY2lkZW50LnByaW9yaXR5Y29kZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgcmVxdWlyZWQ6IGZhbHNlLCBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TXVsdGlMaW5lU3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9ezw+UGxlYXNlIHByb3ZpZGUgYSBjbGVhciBleHBsYW5hdGlvbiBvZiB0aGUgaXNzdWUgLyByZXF1aXJlbWVudC48Lz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3BzLmluaXRpYWxJbmNpZGVudC5kZXNjcmlwdGlvbiB8fCBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGV4dEFyZWFQcm9wcz17eyBtYXhMZW5ndGg6IDIwMDAsIGRpc2FibGVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRpbWVsaW5lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RW50aXR5PXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTWV0YWRhdGE6IENSRUFURV9QT1JUQUxfQ09NTUVOVF9JTkNJREVOVF9NRVRBREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZU1ldGFkYXRhOiBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfSU5DSURFTlRfTUVUQURBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlja2V0TnVtYmVyPXtwcm9wcy5pbml0aWFsSW5jaWRlbnQudGlja2V0bnVtYmVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsQ29tbWVudHM9e3BvcnRhbENvbW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsRW1haWxzPXtwcm9wcy5pbml0aWFsSW5jaWRlbnQuaW5jaWRlbnRfYmlzdGVjaF9wb3J0YWxlbWFpbHMgPz8gW119XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWpvckluY2lkZW50VXBkYXRlcz17cHJvcHMuaW5pdGlhbEluY2lkZW50LmluY2lkZW50X2Jpc3RlY2hfbWFqb3JpbmNpZGVudHVwZGF0ZXMgPz8gW119XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQb3J0YWxDb21tZW50cz17c2V0UG9ydGFsQ29tbWVudHN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNSZWFkT25seX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eUlkPXtwcm9wcy5pbml0aWFsSW5jaWRlbnQuaW5jaWRlbnRpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrUG9ydGFsQ29tbWVudFN1Ym1pc3Npb249eygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBDYXNlIC0gUG9ydGFsIENvbW1lbnQgc3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2lkZW50SWQ6IHByb3BzLmluaXRpYWxJbmNpZGVudC5pbmNpZGVudGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja1BvcnRhbENvbW1lbnRDcmVhdGVkU3VjY2Vzc2Z1bGx5PXsocG9ydGFsQ29tbWVudCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJFZGl0IENhc2UgLSBQb3J0YWwgQ29tbWVudCBjcmVhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNpZGVudElkOiBwcm9wcy5pbml0aWFsSW5jaWRlbnQuaW5jaWRlbnRpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlJZDogcG9ydGFsQ29tbWVudC5hY3Rpdml0eWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwiZXJyb3JlZFwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RmFpbGVkIHRvIHVwZGF0ZSBDYXNlPC9zdHJvbmc+OiB7c3VibWlzc2lvblN0YXRlLmVycm9yLm1lc3NhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3NOYW1lPVwiYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWRpcnR5QmFubmVyU2V0dGluZ3MgfHwgc3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIiB8fCBpc1JlYWRPbmx5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9eygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkaXJ0eUJhbm5lclNldHRpbmdzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIk5vIENoYW5nZXMgdG8gU2F2ZS5cIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1JlYWRPbmx5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgQ2FzZSBpcyByZWFkLW9ubHkgYXMgaXQgaXMgJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY2lkZW50U3RhdHVzQ29kZVtwcm9wcy5pbml0aWFsSW5jaWRlbnQuc3RhdHVzY29kZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1Ym1pc3Npb25TdGF0ZS5zdGF0ZSA9PT0gXCJzdWJtaXR0aW5nXCIgJiYgPEltU3Bpbm5lcjIgY2xhc3NOYW1lPVwic3BpblwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYnV0dG9uIGRlZmF1bHRcIiB0bz17UEFHRVMuQ2FzZXMucGF0aH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvQ2FsbFRvQWN0aW9uQmFzZVBhZ2U+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBMb2FkaW5nRGF0YSB9IGZyb20gXCIuLi8uLi9EZWZhdWx0Um9vdFN0YXRlXCI7XHJcbmltcG9ydCB7IHVzZURhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZURhdGFTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0Jhc2VQYWdlIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSBcIi4uL05vdEZvdW5kXCI7XHJcbmltcG9ydCB7IENhc2VzRWRpdENvbnRlbnQgfSBmcm9tIFwiLi9DYXNlc0VkaXRDb250ZW50XCI7XHJcbmltcG9ydCB7IEluY2lkZW50Rm9yUmV0cmlldmFsIH0gZnJvbSBcIi4uLy4uL01vZGVscy9JbmNpZGVudEZvclJldHJpZXZhbFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IENhc2UgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgQ2FzZXNFZGl0RnJvbUlkID0gKHByb3BzOiB7IGluY2lkZW50aWQ6IHN0cmluZyB9KSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICBjb25zdCB1c2VyTWV0YWRhdGEgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGFjdGl2ZUluY2lkZW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cyk7XHJcbiAgICBjb25zdCBjbG9zZWRJbmNpZGVudHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmluY2lkZW50cy5jbG9zZWRJbmNpZGVudHMpO1xyXG4gICAgY29uc3QgW3NhdmVLZXksIHNldFNhdmVLZXldID0gdXNlU3RhdGUoMSk7XHJcbiAgICBjb25zdCBbcmV0cmlldmVkSW5jaWRlbnQsIHNldFJldHJpZXZlZEluY2lkZW50XSA9IHVzZVN0YXRlPFxyXG4gICAgICAgIExvYWRpbmdEYXRhPEluY2lkZW50Rm9yUmV0cmlldmFsPiB8IHsgbG9hZGluZ1N0YXR1czogXCJlcnJvcmVkXCI7IGVycm9yOiBFcnJvciB9XHJcbiAgICA+KHtcclxuICAgICAgICBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldFJldHJpZXZlZEluY2lkZW50KHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0pO1xyXG4gICAgfSwgW2FjdGl2ZUluY2lkZW50cywgY2xvc2VkSW5jaWRlbnRzLCBzYXZlS2V5XSk7XHJcblxyXG4gICAgY29uc3QgaW5pdGlhbEluY2lkZW50OiBMb2FkaW5nRGF0YTxJbmNpZGVudEZvclJldHJpZXZhbD4gPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICAvLyBJZiB0aGUgcmV0cmlldmFsIGhhcyBub3QgeWV0IGJlZW4gc3RhcnRlZCwgYW5kIHRoZSBDb250YWN0IGlzIGF1dGhlbnRpY2F0ZWRcclxuICAgICAgICBpZiAocmV0cmlldmVkSW5jaWRlbnQubG9hZGluZ1N0YXR1cyA9PT0gXCJub3Qtc3RhcnRlZFwiICYmIHVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgc2V0UmV0cmlldmVkSW5jaWRlbnQoeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBDYXNlIHNwZWNpZmljYWxseSAoZS5nLiB0aGUgQ2FzZSBoYXZlIGJlZW4gcmVjZW50bHkgdXBkYXRlZClcclxuICAgICAgICAgICAgZGF0YVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5yZXRyaWV2ZUluY2lkZW50KHByb3BzLmluY2lkZW50aWQpXHJcbiAgICAgICAgICAgICAgICAudGhlbigoaW5jaWRlbnQpID0+IHNldFJldHJpZXZlZEluY2lkZW50KHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogaW5jaWRlbnQgfSkpXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFJldHJpZXZlZEluY2lkZW50KHsgbG9hZGluZ1N0YXR1czogXCJlcnJvcmVkXCIsIGVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmV0cmlldmVkSW5jaWRlbnQubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiByZXRyaWV2ZWRJbmNpZGVudC5kYXRhIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWN0aXZlSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH07XHJcbiAgICB9LCBbXHJcbiAgICAgICAgYWN0aXZlSW5jaWRlbnRzLFxyXG4gICAgICAgIGNsb3NlZEluY2lkZW50cyxcclxuICAgICAgICByZXRyaWV2ZWRJbmNpZGVudCxcclxuICAgICAgICBkYXRhU2VydmljZSxcclxuICAgICAgICBwcm9wcy5pbmNpZGVudGlkLFxyXG4gICAgICAgIHVzZXJNZXRhZGF0YS5jb250YWN0SWQsXHJcbiAgICAgICAgZGlzcGF0Y2gsXHJcbiAgICBdKTtcclxuXHJcbiAgICBpZiAocmV0cmlldmVkSW5jaWRlbnQubG9hZGluZ1N0YXR1cyA9PT0gXCJlcnJvcmVkXCIpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHR5cGU9XCJyZWNvcmQtbm90LWZvdW5kXCIgc2luZ3VsYXJFbnRpdHlOYW1lPVwiQ2FzZVwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbml0aWFsSW5jaWRlbnQubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgIHJldHVybiA8TG9hZGluZ0Jhc2VQYWdlIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8Q2FzZXNFZGl0Q29udGVudCBpbml0aWFsSW5jaWRlbnQ9e2luaXRpYWxJbmNpZGVudC5kYXRhfSBvblNhdmU9eygpID0+IHNldFNhdmVLZXkoc2F2ZUtleSArIDEpfSAvPjtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi4vTm90Rm91bmRcIjtcclxuaW1wb3J0IHsgQ2FzZXNFZGl0RnJvbUlkIH0gZnJvbSBcIi4vQ2FzZXNFZGl0RnJvbUlkXCI7XHJcblxyXG4vKiogV3JhcHBlciBmb3IgdGhlIEVkaXQgQ2FzZSBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBDYXNlc0VkaXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBbc2VhcmNoUGFyYW1zXSA9IHVzZVNlYXJjaFBhcmFtcygpO1xyXG5cclxuICAgIGNvbnN0IElEX1FVRVJZX1NUUklOR19QQVJBTUVURVJfTkFNRSA9IFwiY2FzZUlkXCI7XHJcbiAgICBjb25zdCBjYXNlSWQgPSBzZWFyY2hQYXJhbXMuZ2V0KElEX1FVRVJZX1NUUklOR19QQVJBTUVURVJfTkFNRSk7XHJcblxyXG4gICAgaWYgKCFjYXNlSWQpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHNpbmd1bGFyRW50aXR5TmFtZT1cIkNhc2VcIiB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8Q2FzZXNFZGl0RnJvbUlkIGluY2lkZW50aWQ9e2Nhc2VJZH0gLz47XHJcbn07IiwiaW1wb3J0IHsgT3JkZXJUYWJsZUhlYWRlckNlbGwgfSBmcm9tIFwiLi4vVHlwZXMvVGFibGVIZWFkZXJDZWxscy9PcmRlclRhYmxlSGVhZGVyQ2VsbFwiO1xyXG5cclxuLyoqIERlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBoZWFkZXIgY2VsbHMgdG8gZGlzcGxheSBpbiB0aGUgT3JkZXJzIFRhYmxlLiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0T3JkZXJUYWJsZUhlYWRlckNlbGxzID0gKCk6IE9yZGVyVGFibGVIZWFkZXJDZWxsW10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiT3JkZXIgSURcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcIm9yZGVybnVtYmVyXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAxLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiRGF0ZSBTaWduZWRcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcImJpc3RlY2hfb3JkZXJmb3JtXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAyLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiWW91ciBSZWZlcmVuY2VcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcImJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2VcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJDb250YWN0XCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJfYmlzdGVjaF9jb250YWN0X3ZhbHVlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiA0LFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiU3RhdHVzXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJzdGF0dXNjb2RlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcbn07XHJcbiIsImltcG9ydCB7IE9yZGVyU3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL09yZGVyU3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE9yZGVyU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgdG9Mb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9IZWxwZXJzL3RvTG9hZGluZ0RhdGFcIjtcclxuaW1wb3J0IHsgT3JkZXIgfSBmcm9tIFwiLi4vTW9kZWxzL09yZGVyXCI7XHJcbmltcG9ydCB7IEZpbHRlcmVkT3JkZXJzIH0gZnJvbSBcIi4uL1R5cGVzL0ZpbHRlck1vZGVscy9GaWx0ZXJlZE9yZGVyc1wiO1xyXG5pbXBvcnQgeyBGaWx0ZXJHcm91cCB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJHcm91cFwiO1xyXG5cclxuY29uc3QgaW5Qcm9ncmVzc1N0YXR1c0NvZGVzID0gW1xyXG4gICAgT3JkZXJTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl0sXHJcbiAgICBPcmRlclN0YXR1c0NvZGUuU2lnbmVkLFxyXG4gICAgT3JkZXJTdGF0dXNDb2RlW1wiT24gSG9sZFwiXSxcclxuICAgIE9yZGVyU3RhdHVzQ29kZS5Qcm9jZXNzaW5nLFxyXG4gICAgT3JkZXJTdGF0dXNDb2RlW1wiUHJvY2Vzc2luZyBDb21wbGV0ZVwiXSxcclxuICAgIE9yZGVyU3RhdHVzQ29kZVtcIlByb2plY3QgT25ib2FyZGluZ1wiXSxcclxuXTtcclxuXHJcbmNvbnN0IFBFTkRJTkdfU0lHTkFUVVJFX1RPT0xUSVAgPSBcIkF3YWl0aW5nIGF1dGhvcmlzZWQgc2lnbmF0b3J5IHRvIHByb2dyZXNzXCI7XHJcbmNvbnN0IElOX1BST0dSRVNTX1RPT0xUSVAgPSBcIk91ciB0ZWFtIGFyZSB3b3JraW5nIG9uIHlvdXIgb3JkZXJcIjtcclxuY29uc3QgQ09NUExFVEVEX1RPT0xUSVAgPSBcIllvdXIgb3JkZXIgaXMgY29tcGxldGVcIjtcclxuXHJcbi8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgT3JkZXJzIGZpbHRlciBncm91cHMgdG8gZGlzcGxheSBvbiB0aGUgT3JkZXIgTWFuYWdlbWVudCBQYW5lbC4gKi9cclxuZXhwb3J0IGNvbnN0IGdldE9yZGVyc0ZpbHRlckdyb3VwID0gKFxyXG4gICAgZmlsdGVyZWRPcmRlcnM6IEZpbHRlcmVkT3JkZXJzLFxyXG4gICAgc2VsZWN0ZWRTdGF0dXNUaWxlSWRzOiBzdHJpbmdbXSxcclxuICAgIHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkczogKHRpbGVJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXHJcbik6IEZpbHRlckdyb3VwPE9yZGVyPltdID0+IHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsYWJlbEVsZW1lbnQ6IDw+U3RhdHVzPC8+LFxyXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IFwiU3RhdHVzXCIsXHJcbiAgICAgICAgICAgIHRvb2x0aXBFbGVtZW50OiAoXHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlBlbmRpbmcgU2lnbmF0dXJlPC9zdHJvbmc+IC0ge1BFTkRJTkdfU0lHTkFUVVJFX1RPT0xUSVB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkluIFByb2dyZXNzPC9zdHJvbmc+IC0ge0lOX1BST0dSRVNTX1RPT0xUSVB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkNvbXBsZXRlZDwvc3Ryb25nPiAtIHtDT01QTEVURURfVE9PTFRJUH1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGlsZXM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJwZW5kaW5nLXNpZ25hdHVyZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKG9yZGVyKSA9PiBPcmRlclN0YXR1c0NvZGUuUGVuZGluZyA9PT0gb3JkZXIuc3RhdHVzY29kZSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogPD5QZW5kaW5nIFNpZ25hdHVyZTwvPixcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Mb2FkaW5nRGF0YShmaWx0ZXJlZE9yZGVycy5wZW5kaW5nU2lnbmF0dXJlLCAob3JkZXJzKSA9PiBvcmRlcnMubGVuZ3RoKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZVBhdGg6IFwiL29yZGVyLW1hbmFnZW1lbnQtc3RhdHVzLXBlbmRpbmctc2lnbmF0dXJlLnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uSG92ZXJNZXNzYWdlOiBQRU5ESU5HX1NJR05BVFVSRV9UT09MVElQLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJpbi1wcm9ncmVzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKG9yZGVyKSA9PiBpblByb2dyZXNzU3RhdHVzQ29kZXMuaW5jbHVkZXMob3JkZXIuc3RhdHVzY29kZSksXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IDw+SW4gUHJvZ3Jlc3M8Lz4sXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTG9hZGluZ0RhdGEoZmlsdGVyZWRPcmRlcnMuaW5Qcm9ncmVzcywgKG9yZGVycykgPT4gb3JkZXJzLmxlbmd0aCksXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoOiBcIi9vcmRlci1tYW5hZ2VtZW50LXN0YXR1cy1pbi1wcm9ncmVzcy5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogSU5fUFJPR1JFU1NfVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiY29tcGxldGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRUaWxlSWRzOiBzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUaWxlSWRzOiBzZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAob3JkZXIpID0+IE9yZGVyU3RhdGVDb2RlLkZ1bGZpbGxlZCA9PT0gb3JkZXIuc3RhdGVjb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiA8PkNvbXBsZXRlZDwvPixcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Mb2FkaW5nRGF0YShmaWx0ZXJlZE9yZGVycy5jb21wbGV0ZWQsIChvcmRlcnMpID0+IG9yZGVycy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvb3JkZXItbWFuYWdlbWVudC1zdGF0dXMtY29tcGxldGVkLnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uSG92ZXJNZXNzYWdlOiBDT01QTEVURURfVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcbn07XHJcbiIsImltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSB2YWx1ZXMgb2YgTG9hZGluZyBEYXRhIGdpdmVuIGl0IGhhcyBsb2FkZWQuXHJcbiAqIEBwYXJhbSBkYXR1bSBUaGUgZGF0YSB3aXRoIHRoZSBMb2FkaW5nIFN0YXR1cy5cclxuICogQHBhcmFtIG1hbmlwdWxhdGVkRGF0YSBUaGUgbWV0aG9kIHRvIG1hbmlwdWxhdGUgdGhlIGRhdGEgaW50byB0aGUgbmV3IGxvYWRlZCB0eXBlLlxyXG4gKiBAcGFyYW0gZGVmYXVsdFJldHVybiBUaGUgcmV0dXJuIGlmIHRoZSBkYXRhIGlzIGxvYWRpbmcuXHJcbiAqIEByZXR1cm5zIFRoZSBtYW5pcHVsYXRlZCB2YWx1ZXMgb2YgTG9hZGluZyBEYXRhIGdpdmVuIGl0IGhhcyBsb2FkZWQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZnJvbUxvYWRpbmdEYXRhPFRJbiwgVE91dD4oXHJcbiAgICBkYXR1bTogTG9hZGluZ0RhdGE8VEluPixcclxuICAgIG1hbmlwdWxhdGVkRGF0YTogKGRhdHVtOiBUSW4pID0+IFRPdXQsXHJcbiAgICBkZWZhdWx0UmV0dXJuPzogYW55XHJcbikge1xyXG4gICAgaWYgKGRhdHVtLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICByZXR1cm4gZGVmYXVsdFJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWFuaXB1bGF0ZWREYXRhKGRhdHVtLmRhdGEpO1xyXG59XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTGluayB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgQ29udGFjdEZvclJldHJpZXZhbCB9IGZyb20gXCIuLi9Nb2RlbHMvQ29udGFjdEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gXCIuL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvTG9hZGluZ1NwaW5uZXJcIjtcclxuaW1wb3J0IHsgZ2V0T3JkZXJUYWJsZUhlYWRlckNlbGxzIH0gZnJvbSBcIi4uL0RhdGEvZ2V0T3JkZXJUYWJsZUhlYWRlckNlbGxzXCI7XHJcbmltcG9ydCB7IFRhYmxlSGVhZGVyQ2VsbCB9IGZyb20gXCIuLi9Db21wb25lbnRzL1RhYmxlSGVhZGVyQ2VsbFwiO1xyXG5pbXBvcnQgeyBPcmRlciB9IGZyb20gXCIuLi9Nb2RlbHMvT3JkZXJcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi9IZWxwZXJzL0RhdGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgTWFuYWdlbWVudFBhbmVsIH0gZnJvbSBcIi4uL0NvbXBvbmVudHMvTWFuYWdlbWVudFBhbmVsXCI7XHJcbmltcG9ydCB7IEZpbHRlckdyb3VwIH0gZnJvbSBcIi4uL1R5cGVzL0ZpbHRlckdyb3VwXCI7XHJcbmltcG9ydCB7IHRvTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vSGVscGVycy90b0xvYWRpbmdEYXRhXCI7XHJcbmltcG9ydCB7IGdldE9yZGVyc0ZpbHRlckdyb3VwIH0gZnJvbSBcIi4uL0RhdGEvZ2V0T3JkZXJzRmlsdGVyR3JvdXBcIjtcclxuaW1wb3J0IHsgRmlsdGVyZWRPcmRlcnMgfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyTW9kZWxzL0ZpbHRlcmVkT3JkZXJzXCI7XHJcbmltcG9ydCB7IE9yZGVyU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5pbXBvcnQgeyBPcmRlclN0YXRlQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyBmcm9tTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vSGVscGVycy9mcm9tTG9hZGluZ0RhdGFcIjtcclxuXHJcbi8qIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBPcmRlcnMgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgT3JkZXJzOiBSZWFjdC5GQyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3Qgb3JkZXJzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5vcmRlcnMpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuICAgIGNvbnN0IFtzb3J0ZWRDb2x1bW4sIHNldFNvcnRlZENvbHVtbl0gPSB1c2VTdGF0ZTxrZXlvZiBPcmRlcj4oXCJiaXN0ZWNoX29yZGVyZm9ybVwiKTtcclxuICAgIGNvbnN0IFtpc1NvcnRlZEFzY2VuZGluZywgc2V0SXNTb3J0ZWRBc2NlbmRpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgY29uc3QgW3NlYXJjaEJhckNvbnRlbnQsIHNldFNlYXJjaEJhckNvbnRlbnRdID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcclxuICAgIGNvbnN0IFtzZWxlY3RlZFN0YXR1c1RpbGVJZHMsIHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oW10pO1xyXG5cclxuICAgIC8vIEVuc3VyZSB0aGUgVXNlciBNZXRhZGF0YSBpcyBwb3B1bGF0ZWQuXHJcbiAgICBpZiAoIXVzZXJNZXRhZGF0YS5hY2NvdW50SWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFxcYHVzZXJNZXRhZGF0YS5hY2NvdW50SWRcXGAgdG8gYmUgcG9wdWxhdGVkYCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR2V0IHRoZSBPcmRlciBUYWJsZSBIZWFkZXIgQ2VsbHMuXHJcbiAgICBjb25zdCBoZWFkZXJDZWxscyA9IGdldE9yZGVyVGFibGVIZWFkZXJDZWxscygpO1xyXG5cclxuICAgIC8vIEdldCB0aGUgYXBwbGljYWJsZSBjb2x1bW4gaGVhZGVyIGZvciB0aGUgZ2l2ZW4gZmllbGQgbmFtZS5cclxuICAgIGNvbnN0IGdldENvbHVtbkhlYWRlciA9IChmaWVsZE5hbWU6IGtleW9mIE9yZGVyKSA9PlxyXG4gICAgICAgIGhlYWRlckNlbGxzLmZpbmQoKGhlYWRlckNlbGwpID0+IGhlYWRlckNlbGwuZmllbGROYW1lID09PSBmaWVsZE5hbWUpPy5jb2x1bW5IZWFkZXI7XHJcblxyXG4gICAgLy8gQ29udmVydHMgdGhlIHNvcnRlZCBPcmRlcnMgaW50byBhIExvYWRpbmdEYXRhPE9yZGVyW10+IG9iamVjdC5cclxuICAgIGNvbnN0IGFzU29ydGVkTG9hZGluZ0RhdGEgPSAoc29ydGVkRGF0YTogT3JkZXJbXSk6IExvYWRpbmdEYXRhPE9yZGVyW10+ID0+IHtcclxuICAgICAgICBpZiAoaXNTb3J0ZWRBc2NlbmRpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogc29ydGVkRGF0YSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogc29ydGVkRGF0YS5yZXZlcnNlKCkgfTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gU29ydCB0aGUgT3JkZXJzIGJ5IHRoZSBhcHBsaWNhYmxlIGNvbHVtbiB3aGVuIHRoZSBkYXRhIGNoYW5nZXMsIGl0IGlzIHNlbGVjdGVkIG9yIHRoZSBzb3J0IG9yZGVyIGNoYW5nZXMuXHJcbiAgICBjb25zdCBzb3J0ZWRPcmRlcnM6IExvYWRpbmdEYXRhPE9yZGVyW10+ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgaWYgKG9yZGVycy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IG9yZGVycy5sb2FkaW5nU3RhdHVzIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzbGljZWRPcmRlckRhdGEgPSBvcmRlcnMuZGF0YVxyXG4gICAgICAgICAgICAuc2xpY2UoKVxyXG4gICAgICAgICAgICAvLyBSZW1vdmUgYW55IE9yZGVycyB3aXRoIG5vIGxpbmVzIG9yIE9yZGVyIEZvcm1zLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChvcmRlcikgPT4gb3JkZXIub3JkZXJfZGV0YWlscy5sZW5ndGggfHwgb3JkZXIuYmlzdGVjaF9vcmRlcmZvcm0pO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHNvcnRlZENvbHVtbikge1xyXG4gICAgICAgICAgICBjYXNlIFwiX2Jpc3RlY2hfY29udGFjdF92YWx1ZVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFzU29ydGVkTG9hZGluZ0RhdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgc2xpY2VkT3JkZXJEYXRhLnNvcnQoKG9yZGVyQSwgb3JkZXJCKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFjdEEgPSBjb250YWN0cy5kYXRhLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udGFjdCkgPT4gY29udGFjdC5jb250YWN0aWQgPT09IG9yZGVyQS5fYmlzdGVjaF9jb250YWN0X3ZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RCID0gY29udGFjdHMuZGF0YS5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhY3QpID0+IGNvbnRhY3QuY29udGFjdGlkID09PSBvcmRlckIuX2Jpc3RlY2hfY29udGFjdF92YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2NvbnRhY3RBPy5maXJzdG5hbWV9ICR7Y29udGFjdEE/Lmxhc3RuYW1lfWAubG9jYWxlQ29tcGFyZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtjb250YWN0Qj8uZmlyc3RuYW1lfSAke2NvbnRhY3RCPy5sYXN0bmFtZX1gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApID8/IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJiaXN0ZWNoX29yZGVyZm9ybVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFzU29ydGVkTG9hZGluZ0RhdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgc2xpY2VkT3JkZXJEYXRhLnNvcnQoKG9yZGVyQSwgb3JkZXJCKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAob3JkZXJBLmJpc3RlY2hfb3JkZXJmb3JtPy5iaXN0ZWNoX2RhdGVzaWduZWQgfHwgXCJaXCIpLmxvY2FsZUNvbXBhcmUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlckIuYmlzdGVjaF9vcmRlcmZvcm0/LmJpc3RlY2hfZGF0ZXNpZ25lZCB8fCBcIlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBhc1NvcnRlZExvYWRpbmdEYXRhKFxyXG4gICAgICAgICAgICAgICAgICAgIHNsaWNlZE9yZGVyRGF0YS5zb3J0KChvcmRlckEsIG9yZGVyQikgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyQVtzb3J0ZWRDb2x1bW5dPy50b1N0cmluZygpID8/IFwiXCIpLmxvY2FsZUNvbXBhcmUob3JkZXJCW3NvcnRlZENvbHVtbl0/LnRvU3RyaW5nKCkgPz8gXCJcIilcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtvcmRlcnMsIHNvcnRlZENvbHVtbiwgaXNTb3J0ZWRBc2NlbmRpbmddKTtcclxuXHJcbiAgICAvLyBGaWx0ZXIgdGhlIE9yZGVycyBpbnRvIHRoZSBhcHBsaWNhYmxlIFN0YXR1cyBncm91cHMuXHJcbiAgICAvLyAjMzgxMzIgRklYOiBEbyBub3QgaW5jbHVkZSBzdGF0dXMgb2YgJ1NpZ25lZCcuXHJcbiAgICBjb25zdCBmaWx0ZXJlZE9yZGVyczogRmlsdGVyZWRPcmRlcnMgPSB7XHJcbiAgICAgICAgcGVuZGluZ1NpZ25hdHVyZTogdG9Mb2FkaW5nRGF0YShzb3J0ZWRPcmRlcnMsIChvcmRlcnMpID0+XHJcbiAgICAgICAgICAgIG9yZGVycy5maWx0ZXIoKG9yZGVyKSA9PiBvcmRlci5zdGF0dXNjb2RlID09PSBPcmRlclN0YXR1c0NvZGUuUGVuZGluZylcclxuICAgICAgICApLFxyXG4gICAgICAgIGluUHJvZ3Jlc3M6IHRvTG9hZGluZ0RhdGEoc29ydGVkT3JkZXJzLCAob3JkZXJzKSA9PlxyXG4gICAgICAgICAgICBvcmRlcnMuZmlsdGVyKChvcmRlcikgPT5cclxuICAgICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICAgICBPcmRlclN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXSxcclxuICAgICAgICAgICAgICAgICAgICBPcmRlclN0YXR1c0NvZGUuU2lnbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIE9yZGVyU3RhdHVzQ29kZVtcIk9uIEhvbGRcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgT3JkZXJTdGF0dXNDb2RlLlByb2Nlc3NpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgT3JkZXJTdGF0dXNDb2RlW1wiUHJvY2Vzc2luZyBDb21wbGV0ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICBPcmRlclN0YXR1c0NvZGVbXCJQcm9qZWN0IE9uYm9hcmRpbmdcIl0sXHJcbiAgICAgICAgICAgICAgICBdLmluY2x1ZGVzKG9yZGVyLnN0YXR1c2NvZGUpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApLFxyXG4gICAgICAgIGNvbXBsZXRlZDogdG9Mb2FkaW5nRGF0YShzb3J0ZWRPcmRlcnMsIChvcmRlcnMpID0+XHJcbiAgICAgICAgICAgIG9yZGVycy5maWx0ZXIoKG9yZGVyKSA9PiBbT3JkZXJTdGF0ZUNvZGUuRnVsZmlsbGVkXS5pbmNsdWRlcyhvcmRlci5zdGF0ZWNvZGUpKVxyXG4gICAgICAgICksXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIE1hcCB0aGUgZmlsdGVyZWQgT3JkZXJzIGludG8gZmlsdGVyIGdyb3VwIHRpbGVzLlxyXG4gICAgY29uc3Qgb3JkZXJzRmlsdGVyR3JvdXBzOiBGaWx0ZXJHcm91cDxPcmRlcj5bXSA9IGdldE9yZGVyc0ZpbHRlckdyb3VwKFxyXG4gICAgICAgIGZpbHRlcmVkT3JkZXJzLFxyXG4gICAgICAgIHNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICBzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHNcclxuICAgICk7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBhcHBsaWNhYmxlIFN0YXR1cyBmaWx0ZXJzLlxyXG4gICAgY29uc3QgYXBwbGljYWJsZVN0YXR1c0ZpbHRlcnMgPSBvcmRlcnNGaWx0ZXJHcm91cHMuZmxhdE1hcCgoZmlsdGVyR3JvdXApID0+XHJcbiAgICAgICAgZmlsdGVyR3JvdXAudGlsZXNcclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHNlbGVjdGVkIHRpbGVzIGluIHRoZSBncm91cCB0aGVuIG5vIGZpbHRlcnMgYXJlIGFwcGxpZWQuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHRpbGUpID0+IChzZWxlY3RlZFN0YXR1c1RpbGVJZHMubGVuZ3RoID4gMCA/IHNlbGVjdGVkU3RhdHVzVGlsZUlkcy5pbmNsdWRlcyh0aWxlLmlkKSA6IHRydWUpKVxyXG4gICAgICAgICAgICAuZmxhdE1hcCgodGlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRpbGUuZmlsdGVyO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBGaWx0ZXIgdGhlIE9yZGVycyBieSB0aGUgU2VhcmNoIEJhciBjb250ZW50IGFuZCB0aGUgYXBwbGljYWJsZSBTdGF0dXMgZmlsdGVycy5cclxuICAgIGNvbnN0IG9yZGVyc1RvRGlzcGxheSA9IHRvTG9hZGluZ0RhdGEoc29ydGVkT3JkZXJzLCAob3JkZXJzKSA9PlxyXG4gICAgICAgIG9yZGVyc1xyXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgU2VhcmNoIEJhciBmaWx0ZXIuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKG9yZGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob3JkZXIpLnNvbWUoKFtfLCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gdmFsdWU/LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0VmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hCYXJDb250ZW50LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgU3RhdHVzIFRpbGUgZmlsdGVycy5cclxuICAgICAgICAgICAgLmZpbHRlcigob3JkZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhcHBsaWNhYmxlU3RhdHVzRmlsdGVycy5zb21lKChmaWx0ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyKG9yZGVyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBzdGF0dXNUaWxlcyA9IG9yZGVyc0ZpbHRlckdyb3Vwcy5maW5kKChmaWx0ZXJHcm91cCkgPT4gZmlsdGVyR3JvdXAuYXR0cmlidXRlID09PSBcIlN0YXR1c1wiKT8udGlsZXM7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8QmFzZVBhZ2UgdGl0bGU9XCJPcmRlcnNcIj5cclxuICAgICAgICAgICAgPE1hbmFnZW1lbnRQYW5lbFxyXG4gICAgICAgICAgICAgICAgc2V0U2VhcmNoQmFyQ29udGVudD17c2V0U2VhcmNoQmFyQ29udGVudH1cclxuICAgICAgICAgICAgICAgIGZpbHRlckdyb3Vwcz17b3JkZXJzRmlsdGVyR3JvdXBzfVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PVwiU2VhcmNoIGZvciBPcmRlclwiXHJcbiAgICAgICAgICAgICAgICBnZXRTdW1tYXJ5U2VjdGlvbnM9eygpID0+IFtdfVxyXG4gICAgICAgICAgICAgICAgZmlsdGVyc1RvRGlzcGxheT17W119XHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICB7b3JkZXJzVG9EaXNwbGF5LmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8TG9hZGluZ1NwaW5uZXIgLz5cclxuICAgICAgICAgICAgKSA6IG9yZGVyc1RvRGlzcGxheS5kYXRhLmxlbmd0aCA9PT0gMCA/IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tcmVzdWx0cy1tZXNzYWdlXCI+VGhlcmUgYXJlIG5vIHJlY29yZHMgdG8gZGlzcGxheS48L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJlbnRpdHlsaXN0IG9yZGVycy10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlYWRlckNlbGxzLm1hcCgoY2VsbCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZUhlYWRlckNlbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjZWxsLmlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXI9e2NlbGwuY29sdW1uSGVhZGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU9e2NlbGwuZmllbGROYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJXaWR0aD17Y2VsbC5jZWxsV2lkdGh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRpbmdQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGluZ0VuYWJsZWQ6IGNlbGwuaXNTb3J0YWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZENvbHVtbjogc29ydGVkQ29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U29ydGVkQ29sdW1uOiAoKSA9PiBzZXRTb3J0ZWRDb2x1bW4oY2VsbC5maWVsZE5hbWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTb3J0ZWRBc2NlbmRpbmc6IGlzU29ydGVkQXNjZW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNTb3J0ZWRBc2NlbmRpbmc6IHNldElzU29ydGVkQXNjZW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge29yZGVyc1RvRGlzcGxheS5kYXRhLm1hcCgob3JkZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHByZWZlciB0byBzaG93IGEgY3VzdG9tIGxhYmVsIGZvciB0aGUgU3RhdHVzIGNvbHVtblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgQmlzdGVjaCdzIGludGVybmFsIHN0YXR1c2VzIGFyZSBub3QgdG9vIGFwcGxpY2FibGUsIHNvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIGxhYmVsIG9mIHRoZSAnU3RhdHVzJyBGaWx0ZXIgR3JvdXAgaW5zdGVhZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0xhYmVsID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUaWxlcz8uZmluZCgodGlsZSkgPT4gdGlsZS5maWx0ZXIob3JkZXIpKT8ubGFiZWwgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmRlclN0YXR1c0NvZGVbb3JkZXIuc3RhdHVzY29kZV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc29tZSBzdGF0dXNlcyBuZWVkIHRvIGJlIG92ZXJ3cml0ZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c1ZhbHVlTWFwcGluZzogUGFydGlhbDxSZWNvcmQ8T3JkZXJTdGF0dXNDb2RlLCBzdHJpbmc+PiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmddOiBcIlBlbmRpbmcgU2lnbmF0dXJlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09yZGVyU3RhdHVzQ29kZS5TaWduZWRdOiBcIlNpZ25lZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcmRlclN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdXTogXCJPbiBIb2xkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09yZGVyU3RhdHVzQ29kZS5Qcm9jZXNzaW5nXTogXCJQcm9jZXNzaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09yZGVyU3RhdHVzQ29kZVtcIlByb2Nlc3NpbmcgQ29tcGxldGVcIl1dOiBcIlByb2Nlc3NpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3JkZXJTdGF0dXNDb2RlW1wiUHJvamVjdCBPbmJvYXJkaW5nXCJdXTogXCJQcm9qZWN0IE9uYm9hcmRpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIga2V5PXtvcmRlci5zYWxlc29yZGVyaWR9IGRhdGEtaWQ9e29yZGVyLnNhbGVzb3JkZXJpZH0gZGF0YS1lbnRpdHk9XCJzYWxlc29yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib3JkZXItaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e29yZGVyLm9yZGVybnVtYmVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJzYWxlc29yZGVyaWRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGtleT17b3JkZXIuc2FsZXNvcmRlcmlkfSB0bz17YGVkaXQ/b3JkZXJJZD0ke29yZGVyLnNhbGVzb3JkZXJpZH1gfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3JkZXIub3JkZXJudW1iZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib3JkZXItc2lnbmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiYmlzdGVjaF9vcmRlcmZvcm1cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcmRlci5iaXN0ZWNoX29yZGVyZm9ybT8uYmlzdGVjaF9kYXRlc2lnbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBEYXRlSGVscGVyLnRvRGF0ZU9ubHlTdHJpbmcob3JkZXIuYmlzdGVjaF9vcmRlcmZvcm0uYmlzdGVjaF9kYXRlc2lnbmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvcmRlci1jdXN0b21lci1yZWZlcmVuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3JkZXIuYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvcmRlci1jb250YWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiX2Jpc3RlY2hfY29udGFjdF92YWx1ZVwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFjdCA9IGZyb21Mb2FkaW5nRGF0YShjb250YWN0cywgKGMpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250YWN0OiBDb250YWN0Rm9yUmV0cmlldmFsKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QuY29udGFjdGlkID09PSBvcmRlci5fYmlzdGVjaF9jb250YWN0X3ZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRhY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cIm9yZGVyLXN0YXR1c1wiIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwic3RhdHVzY29kZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3JkZXIuc3RhdHVzY29kZSBpbiBzdGF0dXNWYWx1ZU1hcHBpbmcgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57c3RhdHVzVmFsdWVNYXBwaW5nW29yZGVyLnN0YXR1c2NvZGVdfTwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNMYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcbiIsIi8qKiBBIGNsYXNzIG9mIGhlbHBlciBtZXRob2RzIGZvciBmb3JtYXR0aW5nIGRhdGEgKi9cclxuZXhwb3J0IGNsYXNzIEZvcm1hdHRpbmdIZWxwZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRzIGEgbnVtYmVyIGFzIGEgR0JQIG1vbmV5IHN0cmluZy5cclxuICAgICAqIEBwYXJhbSBtb25leSBUaGUgbnVtZXJpYyBtb25ldGFyeSB2YWx1ZSBpbiBHQlAuXHJcbiAgICAgKiBAcmV0dXJucyBGb3JtYXR0ZWQgR0JQIG1vbmV5IHN0cmluZy5cclxuICAgICAqIEBleGFtcGxlIFwiNDUuNlwiIC0+IFwiwqM0NS42MFwiXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9Nb25leVN0cmluZyhtb25leTogbnVtYmVyIHwgbnVsbCkge1xyXG4gICAgICAgIGlmIChtb25leSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoXCJlbi1HQlwiLCB7XHJcbiAgICAgICAgICAgIHN0eWxlOiBcImN1cnJlbmN5XCIsXHJcbiAgICAgICAgICAgIGN1cnJlbmN5OiBcIkdCUFwiLFxyXG4gICAgICAgIH0pLmZvcm1hdChtb25leSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBmdWxsIG5hbWUgb2YgdGhlIHBheW1lbnQgbWV0aG9kIGNvZGUuXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudE1ldGhvZENvZGUgVGhlIHBheW1lbnQgbWV0aG9kIGNvZGUgdG8gYmUgZm9ybWF0dGVkLlxyXG4gICAgICogQHJldHVybnMgVGhlIGZ1bGwgbmFtZSBvZiB0aGUgcGF5bWVudCBtZXRob2QgY29kZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXRQYXltZW50TWV0aG9kQ29kZVN0cmluZyhwYXltZW50TWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGx7XHJcbiAgICAgICAgc3dpdGNoIChwYXltZW50TWV0aG9kQ29kZSkge1xyXG4gICAgICAgICAgICBjYXNlIFwiQ0hFUVVFXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJDaGVxdWVcIjtcclxuICAgICAgICAgICAgY2FzZSBcIkNDXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJDcmVkaXQgQ2FyZFwiO1xyXG4gICAgICAgICAgICBjYXNlIFwiQkFDU1wiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiQkFDU1wiO1xyXG4gICAgICAgICAgICBjYXNlIFwiUEFZUEFMXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJQYXlQYWxcIjtcclxuICAgICAgICAgICAgY2FzZSBcIk1BTlVBTFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiTWFudWFsIFBheW1lbnRcIjtcclxuICAgICAgICAgICAgY2FzZSBcIldPUkxEUEFZXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJXb3JsZFBheVwiO1xyXG4gICAgICAgICAgICBjYXNlIFwiRERcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIkRpcmVjdCBEZWJpdFwiO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsImltcG9ydCB7IEJ1dHRvbiwgQ29tYm9ib3gsIE1lbnVQb3BvdmVyLCBPcHRpb24sIFRhYmxlQ29sdW1uRGVmaW5pdGlvbiwgVGV4dCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBEaXNtaXNzMjBSZWd1bGFyLCBDaGV2cm9uRG93bjIwUmVndWxhciB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtaWNvbnNcIjtcclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXIsIE9wZXJhdG9yU2V0IH0gZnJvbSBcIi4vT3BlcmF0b3JTZXRcIjtcclxuaW1wb3J0IHsgdXNlQXBwSW5zaWdodHMgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlQXBwSW5zaWdodHNcIjtcclxuXHJcbi8qKiBUaGUgZmlsdGVyIG1lbnUgY29tcG9uZW50ICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGaWx0ZXJNZW51PFRUYWJsZUNvbHVtbklkLCBUUm93Pih7XHJcbiAgICBzZXRPcGVuRmlsdGVyTWVudUlkLFxyXG4gICAgc2V0Q29sdW1uRmlsdGVycyxcclxuICAgIGNvbHVtbkZpbHRlcnMsXHJcbiAgICBjb2x1bW4sXHJcbiAgICBmbGF0dGVuZWRJdGVtcyxcclxuICAgIHRhYmxlTmFtZSxcclxufToge1xyXG4gICAgc2V0T3BlbkZpbHRlck1lbnVJZDogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248VFRhYmxlQ29sdW1uSWQgfCB1bmRlZmluZWQ+PjtcclxuICAgIHNldENvbHVtbkZpbHRlcnM6IFJlYWN0LkRpc3BhdGNoPFJlYWN0LlNldFN0YXRlQWN0aW9uPENvbHVtbkZpbHRlcjxUVGFibGVDb2x1bW5JZD5bXT4+O1xyXG4gICAgY29sdW1uRmlsdGVyczogQ29sdW1uRmlsdGVyPFRUYWJsZUNvbHVtbklkPltdO1xyXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbkRlZmluaXRpb248VFJvdz47XHJcbiAgICBmbGF0dGVuZWRJdGVtczogVFJvd1tdO1xyXG4gICAgdGFibGVOYW1lOiBzdHJpbmc7XHJcbn0pIHtcclxuICAgIGNvbnN0IHsgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcbiAgICBjb25zdCBhcHBsaWVkRmlsdGVyID0gY29sdW1uRmlsdGVycy5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5OYW1lID09PSBjb2x1bW4uY29sdW1uSWQpO1xyXG5cclxuICAgIGNvbnN0IFtvcGVyYXRvciwgc2V0T3BlcmF0b3JdID0gdXNlU3RhdGU8a2V5b2YgT3BlcmF0b3JTZXQ+KGFwcGxpZWRGaWx0ZXIgPyBhcHBsaWVkRmlsdGVyLm9wZXJhdG9yIDogXCJFcXVhbHNcIik7XHJcblxyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShhcHBsaWVkRmlsdGVyID8gYXBwbGllZEZpbHRlci52YWx1ZSA6IFwiXCIpO1xyXG4gICAgY29uc3QgW3ZhbHVlRHJvcGRvd25PcGVuLCBzZXRWYWx1ZURyb3Bkb3duT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgLy8gV2UgbXVzdCB1c2UgYW4gZXZlbnQgbGlzdGVuZXIgdG8gY2xvc2UgdGhlIGRyb3Bkb3duIHdoZW4gY2xpY2tpbmcgb3V0c2lkZSBvZiBpdFxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBEdWUgdG8gdGhlIGR5bmFtaWMgbmF0dXJlIG9mIHRoZSBsaXN0Ym94LCB3ZSBtdXN0IHVzZSB0aGUgcm9sZSBhdHRyaWJ1dGUgdG8gZmluZCBpdFxyXG4gICAgICAgICAgICBjb25zdCBsaXN0Ym94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltyb2xlPSdsaXN0Ym94J11cIik7XHJcblxyXG4gICAgICAgICAgICBpZiAobGlzdGJveCAmJiAhbGlzdGJveC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAgICAgICAgICAgICAgIHNldFZhbHVlRHJvcGRvd25PcGVuKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XHJcblxyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XHJcbiAgICAgICAgfTtcclxuICAgIH0sIFtdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgYXBwbGljYWJsZSBvcGVyYXRvcnMgZm9yIHRoZSBjb2x1bW5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gZ2V0IHRoZSBvcGVyYXRvcnMgZm9yXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgYXBwbGljYWJsZSBvcGVyYXRvcnMgZm9yIHRoZSBjb2x1bW5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZ2V0QXBwbGljYWJsZU9wZXJhdG9ycyA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgXCJFcXVhbHNcIixcclxuICAgICAgICAgICAgICAgIFwiTm90IEVxdWFsc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJDb250YWluc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJEb2VzIE5vdCBDb250YWluXCIsXHJcbiAgICAgICAgICAgICAgICBcIlN0YXJ0cyBXaXRoXCIsXHJcbiAgICAgICAgICAgICAgICBcIkVuZHMgV2l0aFwiLFxyXG4gICAgICAgICAgICBdIGFzIHVua25vd24gYXMgKGtleW9mIE9wZXJhdG9yU2V0KVtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgXCJFcXVhbHNcIixcclxuICAgICAgICAgICAgICAgIFwiTm90IEVxdWFsc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJHcmVhdGVyIFRoYW5cIixcclxuICAgICAgICAgICAgICAgIFwiTGVzcyBUaGFuXCIsXHJcbiAgICAgICAgICAgICAgICBcIkdyZWF0ZXIgVGhhbiBPciBFcXVhbCBUb1wiLFxyXG4gICAgICAgICAgICAgICAgXCJMZXNzIFRoYW4gT3IgRXF1YWwgVG9cIixcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXCJFcXVhbHNcIiwgXCJOb3QgRXF1YWxzXCJdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gW1wiRXF1YWxzXCIsIFwiTm90IEVxdWFsc1wiLCBcIkFmdGVyXCIsIFwiQmVmb3JlXCIsIFwiT24gT3IgQWZ0ZXJcIiwgXCJPbiBPciBCZWZvcmVcIl07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBmaWx0ZXIgb3B0aW9ucyBmb3IgdGhlIGNvbHVtblxyXG4gICAgICogQHJldHVybnMgVGhlIGZpbHRlciBvcHRpb25zIGZvciB0aGUgY29sdW1uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGdldEZpbHRlck9wdGlvbnMgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sdW1uSWQgPSBjb2x1bW4uY29sdW1uSWQgYXMgVFRhYmxlQ29sdW1uSWQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlckZsYXR0ZW5uZWRJdGVtcyA9IChjb2x1bW5JZDogVFRhYmxlQ29sdW1uSWQpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZsYXR0ZW5lZEl0ZW1zXHJcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGEgJ2NvbXBhcmUnIGZ1bmN0aW9uIGlzIGRlZmluZWQgb24gdGhlIHRhYmxlIGNvbHVtbiBkZWZpbml0aW9uLCB1c2UgaXRcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uLmNvbXBhcmUubmFtZSAhPT0gXCJkZWZhdWx0Q29tcGFyZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW4uY29tcGFyZShhLCBiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIEVsc2U7IGZhbGwgYmFjayB0byBzdHJpbmcgYWxwaGFiZXRpYyBzb3J0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYVN0cmluZyA9IChhIGFzIGFueSk/Lltjb2x1bW5JZF0/LnRvU3RyaW5nKCkgPz8gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiU3RyaW5nID0gKGIgYXMgYW55KT8uW2NvbHVtbklkXT8udG9TdHJpbmcoKSA/PyBcIlwiO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYVN0cmluZy5sb2NhbGVDb21wYXJlKGJTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IChpdGVtIGFzIGFueSlbY29sdW1uSWRdKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBzdHJpbmcgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gXCJcIilcclxuICAgICAgICAgICAgICAgIC5kaXN0aW5jdCgpXHJcbiAgICAgICAgICAgICAgICAubWFwKCh2YWx1ZSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXt2YWx1ZX0gdmFsdWU9e3ZhbHVlfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvT3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlckZsYXR0ZW5uZWRJdGVtcyhjb2x1bW5JZCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbHkgdGhlIGZpbHRlciB0byB0aGUgY29sdW1uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IG9uQXBwbHlGaWx0ZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbkZpbHRlcnMgPSBjb2x1bW5GaWx0ZXJzLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuY29sdW1uTmFtZSAhPT0gY29sdW1uLmNvbHVtbklkKTtcclxuXHJcbiAgICAgICAgbmV3Q29sdW1uRmlsdGVycy5wdXNoKHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogY29sdW1uLmNvbHVtbklkIGFzIFRUYWJsZUNvbHVtbklkLFxyXG4gICAgICAgICAgICBvcGVyYXRvcixcclxuICAgICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldENvbHVtbkZpbHRlcnMobmV3Q29sdW1uRmlsdGVycyk7XHJcbiAgICAgICAgc2V0T3BlbkZpbHRlck1lbnVJZCh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgdHlwZTogXCJGaWx0ZXIgTWVudSAtIEFwcGxpZWRcIixcclxuICAgICAgICAgICAgdGFibGVOYW1lLFxyXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBgJHtjb2x1bW4uY29sdW1uSWR9YCxcclxuICAgICAgICAgICAgb3BlcmF0b3IsXHJcbiAgICAgICAgICAgIHZhbHVlOiBgJHt2YWx1ZX1gLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlciB0aGUgb3BlcmF0b3IgY29tYm9ib3hcclxuICAgICAqIEByZXR1cm5zIFRoZSBvcGVyYXRvciBjb21ib2JveFxyXG4gICAgICovXHJcbiAgICBjb25zdCByZW5kZXJPcGVyYXRvckNvbWJvQm94ID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxDb21ib2JveFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0T3B0aW9ufVxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkT3B0aW9ucz17W2RlZmF1bHRPcHRpb25dfVxyXG4gICAgICAgICAgICAgICAgb25PcHRpb25TZWxlY3Q9eyhfLCBkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBvcGVyYXRvclxyXG4gICAgICAgICAgICAgICAgICAgIHNldE9wZXJhdG9yKGQub3B0aW9uVmFsdWUgYXMga2V5b2YgT3BlcmF0b3JTZXQpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge29wZXJhdG9yT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXtvcHRpb259IHZhbHVlPXtvcHRpb259PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAgICAgICAgICAgIDwvT3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvQ29tYm9ib3g+XHJcbiAgICAgICAgKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW5kZXIgdGhlIHZhbHVlIGNvbWJvYm94XHJcbiAgICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tYm9ib3hcclxuICAgICAqL1xyXG4gICAgY29uc3QgcmVuZGVyVmFsdWVDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2hvdWxkU2hvd0Ryb3Bkb3duT3B0aW9ucyA9IFtcIkVxdWFsc1wiLCBcIk5vdCBFcXVhbHNcIl0uaW5jbHVkZXMob3BlcmF0b3IpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBIYW5kbGUgdGhlIGRyb3Bkb3duIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IG9uRHJvcGRvd25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghc2hvdWxkU2hvd0Ryb3Bkb3duT3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZXRWYWx1ZURyb3Bkb3duT3BlbighdmFsdWVEcm9wZG93bk9wZW4pO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxDb21ib2JveFxyXG4gICAgICAgICAgICAgICAgLy8gU3R5bGUgdGhlIGxpc3QgYm94IHRvIGFsbG93IHNjcm9sbGluZ1xyXG4gICAgICAgICAgICAgICAgbGlzdGJveD17e1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogXCIzMDBweFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1k6IFwiYXV0b1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxyXG4gICAgICAgICAgICAgICAgb25PcHRpb25TZWxlY3Q9eyhfLCBkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZC5vcHRpb25WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWVEcm9wZG93bk9wZW4oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGUudGFyZ2V0LnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBleHBhbmRJY29uPXtzaG91bGRTaG93RHJvcGRvd25PcHRpb25zID8gPENoZXZyb25Eb3duMjBSZWd1bGFyIG9uQ2xpY2s9e29uRHJvcGRvd25DbGlja30gLz4gOiA8PjwvPn1cclxuICAgICAgICAgICAgICAgIGZyZWVmb3JtXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3ZhbHVlfVxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkT3B0aW9ucz17W3ZhbHVlXX1cclxuICAgICAgICAgICAgICAgIG9wZW49e3ZhbHVlRHJvcGRvd25PcGVuICYmIHNob3VsZFNob3dEcm9wZG93bk9wdGlvbnN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFNob3dEcm9wZG93bk9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWVEcm9wZG93bk9wZW4oIXZhbHVlRHJvcGRvd25PcGVuKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtmaWx0ZXJPcHRpb25zfVxyXG4gICAgICAgICAgICA8L0NvbWJvYm94PlxyXG4gICAgICAgICk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIERldGVybWluZSB0aGUgYXBwbGljYWJsZSBvcGVyYXRvcnMgZm9yIHRoZSBjb2x1bW5cclxuICAgIGNvbnN0IG9wZXJhdG9yT3B0aW9ucyA9IGdldEFwcGxpY2FibGVPcGVyYXRvcnMoZmxhdHRlbmVkSXRlbXNbMF1bY29sdW1uLmNvbHVtbklkXSk7XHJcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uID0gb3BlcmF0b3JPcHRpb25zLmluY2x1ZGVzKG9wZXJhdG9yKSA/IG9wZXJhdG9yIDogb3BlcmF0b3JPcHRpb25zWzBdO1xyXG5cclxuICAgIC8vIEdldCBhbGwgdGhlIHVuaXF1ZSB2YWx1ZXMgZm9yIHRoZSBjb2x1bW5cclxuICAgIGNvbnN0IGZpbHRlck9wdGlvbnMgPSBnZXRGaWx0ZXJPcHRpb25zKCk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8TWVudVBvcG92ZXIgc3R5bGU9e3sgaGVpZ2h0OiBcImZpdC1jb250ZW50XCIgfX0+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGlkPVwiZmlsdGVyLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMWVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiBcIjFlbVwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwgZmxleERpcmVjdGlvbjogXCJyb3dcIiwgYWxpZ25JdGVtczogXCJjZW50ZXJcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgICA8VGV4dCB3ZWlnaHQ9XCJzZW1pYm9sZFwiPkZpbHRlciBCeTwvVGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZsZXhHcm93OiAxIH19IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic3VidGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PERpc21pc3MyMFJlZ3VsYXIgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE9wZW5GaWx0ZXJNZW51SWQodW5kZWZpbmVkKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7cmVuZGVyT3BlcmF0b3JDb21ib0JveCgpfVxyXG4gICAgICAgICAgICAgICAge3JlbmRlclZhbHVlQ29tcG9uZW50KCl9XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBqdXN0aWZ5Q29udGVudDogXCJmbGV4LWVuZFwiLCBnYXA6IFwiMWVtXCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQXBwbHlGaWx0ZXIoKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNVbnBvcHVsYXRlZEZpZWxkcyA9ICFvcGVyYXRvciB8fCAhdmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZmlsdGVyIG1hdGNoZXMgdGhlIGFwcGxpZWQgZmlsdGVyLCBkaXNhYmxlIHRoZSBhcHBseSBidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSBjb2x1bW5GaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmNvbHVtbk5hbWUgPT09IGNvbHVtbi5jb2x1bW5JZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQXBwbGllZEZpbHRlciA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbHRlciAmJiBjdXJyZW50RmlsdGVyLm9wZXJhdG9yID09PSBvcGVyYXRvciAmJiBjdXJyZW50RmlsdGVyLnZhbHVlID09PSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFzVW5wb3B1bGF0ZWRGaWVsZHMgfHwgaGFzQXBwbGllZEZpbHRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFwcGx5XHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb2x1bW5GaWx0ZXJzKGNvbHVtbkZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5OYW1lICE9PSBjb2x1bW4uY29sdW1uSWQpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW5GaWx0ZXJNZW51SWQodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFhcHBsaWVkRmlsdGVyfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXJcclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L01lbnVQb3BvdmVyPlxyXG4gICAgKTtcclxufVxyXG4iLCJpbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuY29uc3QgdmlydHVhbGl6ZXJDbGFzc05hbWUgPSAnZnVpLVZpcnR1YWxpemVyJztcbmV4cG9ydCBjb25zdCB2aXJ0dWFsaXplckNsYXNzTmFtZXMgPSB7XG4gIGJlZm9yZTogYCR7dmlydHVhbGl6ZXJDbGFzc05hbWV9X19iZWZvcmVgLFxuICBiZWZvcmVDb250YWluZXI6IGAke3ZpcnR1YWxpemVyQ2xhc3NOYW1lfV9fYmVmb3JlQ29udGFpbmVyYCxcbiAgYWZ0ZXI6IGAke3ZpcnR1YWxpemVyQ2xhc3NOYW1lfV9fYWZ0ZXJgLFxuICBhZnRlckNvbnRhaW5lcjogYCR7dmlydHVhbGl6ZXJDbGFzc05hbWV9X19hZnRlckNvbnRhaW5lcmBcbn07XG5jb25zdCB1c2VTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgbWM5bDV4OiBcImZ0Z20zMDRcIixcbiAgICBCa2VjcmtqOiBcImYxYWVoamo1XCJcbiAgfSxcbiAgcmVsYXRpdmU6IHtcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIlxuICB9LFxuICBob3Jpem9udGFsOiB7XG4gICAgc3NoaTV3OiBcImZhbjRldmtcIlxuICB9LFxuICB2ZXJ0aWNhbDoge1xuICAgIEJmNGplZGs6IFwiZjExcXJhNGJcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mdGdtMzA0e2Rpc3BsYXk6YmxvY2s7fVwiLCBcIi5mMWFlaGpqNXtwb2ludGVyLWV2ZW50czpub25lO31cIiwgXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBcIi5mYW40ZXZre21pbi1oZWlnaHQ6MTAwJTt9XCIsIFwiLmYxMXFyYTRie21pbi13aWR0aDoxMDAlO31cIl1cbn0pO1xuLyoqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBWaXJ0dWFsaXplciBzdGF0ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVZpcnR1YWxpemVyU3R5bGVzX3Vuc3RhYmxlID0gc3RhdGUgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xuICBjb25zdCB7XG4gICAgcmV2ZXJzZWQsXG4gICAgYXhpcyxcbiAgICBiZWZvcmVCdWZmZXJIZWlnaHQsXG4gICAgYWZ0ZXJCdWZmZXJIZWlnaHQsXG4gICAgYnVmZmVyU2l6ZVxuICB9ID0gc3RhdGU7XG4gIGNvbnN0IGhvcml6b250YWwgPSBheGlzID09PSAnaG9yaXpvbnRhbCc7XG4gIHN0YXRlLmJlZm9yZS5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModmlydHVhbGl6ZXJDbGFzc05hbWVzLmJlZm9yZSwgc3R5bGVzLmJhc2UsIHN0eWxlcy5yZWxhdGl2ZSwgaG9yaXpvbnRhbCA/IHN0eWxlcy5ob3Jpem9udGFsIDogc3R5bGVzLnZlcnRpY2FsLCBzdGF0ZS5iZWZvcmUuY2xhc3NOYW1lKTtcbiAgc3RhdGUuYWZ0ZXIuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHZpcnR1YWxpemVyQ2xhc3NOYW1lcy5hZnRlciwgc3R5bGVzLmJhc2UsIHN0eWxlcy5yZWxhdGl2ZSwgaG9yaXpvbnRhbCA/IHN0eWxlcy5ob3Jpem9udGFsIDogc3R5bGVzLnZlcnRpY2FsLCBzdGF0ZS5hZnRlci5jbGFzc05hbWUpO1xuICBzdGF0ZS5iZWZvcmVDb250YWluZXIuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKHZpcnR1YWxpemVyQ2xhc3NOYW1lcy5iZWZvcmVDb250YWluZXIsIHN0eWxlcy5iYXNlLCBob3Jpem9udGFsID8gc3R5bGVzLmhvcml6b250YWwgOiBzdHlsZXMudmVydGljYWwsIHN0YXRlLmJlZm9yZUNvbnRhaW5lci5jbGFzc05hbWUpO1xuICBzdGF0ZS5hZnRlckNvbnRhaW5lci5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXModmlydHVhbGl6ZXJDbGFzc05hbWVzLmFmdGVyQ29udGFpbmVyLCBzdHlsZXMuYmFzZSwgaG9yaXpvbnRhbCA/IHN0eWxlcy5ob3Jpem9udGFsIDogc3R5bGVzLnZlcnRpY2FsLCBzdGF0ZS5hZnRlckNvbnRhaW5lci5jbGFzc05hbWUpO1xuICBjb25zdCBiZWZvcmVIZWlnaHRQeCA9IGJlZm9yZUJ1ZmZlckhlaWdodCArICdweCc7XG4gIGNvbnN0IGFmdGVySGVpZ2h0UHggPSBhZnRlckJ1ZmZlckhlaWdodCArICdweCc7XG4gIGNvbnN0IGJlZm9yZUJ1ZmZlckhlaWdodFB4ID0gYmVmb3JlQnVmZmVySGVpZ2h0ICsgYnVmZmVyU2l6ZSArICdweCc7XG4gIGNvbnN0IGFmdGVyQnVmZmVySGVpZ2h0UHggPSBhZnRlckJ1ZmZlckhlaWdodCArIGJ1ZmZlclNpemUgKyAncHgnO1xuICBjb25zdCBidWZmZXJQeCA9IGJ1ZmZlclNpemUgKyAncHgnO1xuICBjb25zdCBiZWZvcmVCdWZmZXIgPSB7XG4gICAgLy8gQ29sdW1uXG4gICAgLi4uKCFyZXZlcnNlZCAmJiAhaG9yaXpvbnRhbCAmJiB7XG4gICAgICBtYXJnaW5Cb3R0b206IGAtJHtidWZmZXJQeH1gXG4gICAgfSksXG4gICAgLy8gQ29sdW1uLVJldmVyc2VcbiAgICAuLi4ocmV2ZXJzZWQgJiYgIWhvcml6b250YWwgJiYge1xuICAgICAgbWFyZ2luVG9wOiBgLSR7YnVmZmVyUHh9YFxuICAgIH0pLFxuICAgIC8vIFJvd1xuICAgIC4uLighcmV2ZXJzZWQgJiYgaG9yaXpvbnRhbCAmJiB7XG4gICAgICBtYXJnaW5SaWdodDogYC0ke2J1ZmZlclB4fWBcbiAgICB9KSxcbiAgICAvLyBSb3ctUmV2ZXJzZVxuICAgIC4uLihyZXZlcnNlZCAmJiBob3Jpem9udGFsICYmIHtcbiAgICAgIG1hcmdpbkxlZnQ6IGAtJHtidWZmZXJQeH1gXG4gICAgfSlcbiAgfTtcbiAgY29uc3QgYWZ0ZXJCdWZmZXIgPSB7XG4gICAgLy8gQ29sdW1uXG4gICAgLi4uKCFyZXZlcnNlZCAmJiAhaG9yaXpvbnRhbCAmJiB7XG4gICAgICBtYXJnaW5Ub3A6IGAtJHtidWZmZXJQeH1gXG4gICAgfSksXG4gICAgLy8gQ29sdW1uLVJldmVyc2VcbiAgICAuLi4ocmV2ZXJzZWQgJiYgIWhvcml6b250YWwgJiYge1xuICAgICAgbWFyZ2luQm90dG9tOiBgLSR7YnVmZmVyUHh9YFxuICAgIH0pLFxuICAgIC8vIFJvd1xuICAgIC4uLighcmV2ZXJzZWQgJiYgaG9yaXpvbnRhbCAmJiB7XG4gICAgICBtYXJnaW5MZWZ0OiBgLSR7YnVmZmVyUHh9YFxuICAgIH0pLFxuICAgIC8vIFJvdy1SZXZlcnNlXG4gICAgLi4uKHJldmVyc2VkICYmIGhvcml6b250YWwgJiYge1xuICAgICAgbWFyZ2luUmlnaHQ6IGAtJHtidWZmZXJQeH1gXG4gICAgfSlcbiAgfTtcbiAgc3RhdGUuYmVmb3JlLnN0eWxlID0ge1xuICAgIGhlaWdodDogaG9yaXpvbnRhbCA/ICcxMDAlJyA6IGJlZm9yZUJ1ZmZlckhlaWdodFB4LFxuICAgIHdpZHRoOiBob3Jpem9udGFsID8gYmVmb3JlQnVmZmVySGVpZ2h0UHggOiAnMTAwJScsXG4gICAgLi4uYmVmb3JlQnVmZmVyLFxuICAgIC4uLnN0YXRlLmJlZm9yZS5zdHlsZVxuICB9O1xuICBzdGF0ZS5iZWZvcmVDb250YWluZXIuc3R5bGUgPSB7XG4gICAgaGVpZ2h0OiBob3Jpem9udGFsID8gJ2F1dG8nIDogYmVmb3JlSGVpZ2h0UHgsXG4gICAgd2lkdGg6IGhvcml6b250YWwgPyBiZWZvcmVIZWlnaHRQeCA6ICdhdXRvJyxcbiAgICAuLi5zdGF0ZS5iZWZvcmVDb250YWluZXIuc3R5bGVcbiAgfTtcbiAgc3RhdGUuYWZ0ZXIuc3R5bGUgPSB7XG4gICAgaGVpZ2h0OiBob3Jpem9udGFsID8gJzEwMCUnIDogYWZ0ZXJCdWZmZXJIZWlnaHRQeCxcbiAgICB3aWR0aDogaG9yaXpvbnRhbCA/IGFmdGVyQnVmZmVySGVpZ2h0UHggOiAnMTAwJScsXG4gICAgLi4uYWZ0ZXJCdWZmZXIsXG4gICAgLi4uc3RhdGUuYWZ0ZXIuc3R5bGVcbiAgfTtcbiAgc3RhdGUuYWZ0ZXJDb250YWluZXIuc3R5bGUgPSB7XG4gICAgaGVpZ2h0OiBob3Jpem9udGFsID8gJ2F1dG8nIDogYWZ0ZXJIZWlnaHRQeCxcbiAgICB3aWR0aDogaG9yaXpvbnRhbCA/IGFmdGVySGVpZ2h0UHggOiAnYXV0bycsXG4gICAgLi4uc3RhdGUuYWZ0ZXJDb250YWluZXIuc3R5bGVcbiAgfTtcbiAgcmV0dXJuIHN0YXRlO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZVZpcnR1YWxpemVyU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5jb25zdCB7IHVzZVJlZiwgdXNlRWZmZWN0IH0gPSBSZWFjdDtcbmV4cG9ydCBjb25zdCB1c2VNdXRhdGlvbk9ic2VydmVyID0gKHRhcmdldCwgY2FsbGJhY2ssIG9wdGlvbnMpPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICAvLyBUT0RPOiBleGNsdWRlIHR5cGVzIGZyb20gdGhpcyBsaW50IHJ1bGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmx1ZW50dWkvaXNzdWVzLzMxMjg2XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFsc1xuICAgIGNvbnN0IG9ic2VydmVyID0gdXNlUmVmKCk7XG4gICAgY29uc3QgeyB0YXJnZXREb2N1bWVudCB9ID0gdXNlRmx1ZW50KCk7XG4gICAgY29uc3Qgd2luID0gdGFyZ2V0RG9jdW1lbnQgPT09IG51bGwgfHwgdGFyZ2V0RG9jdW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIXdpbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENyZWF0ZSBhbiBvYnNlcnZlciBpbnN0YW5jZSBsaW5rZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAgICAgIG9ic2VydmVyLmN1cnJlbnQgPSBuZXcgd2luLk11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgIH0sIFtcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIHdpblxuICAgIF0pO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICB2YXIgLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSB0YXJnZXQgbm9kZSBmb3IgY29uZmlndXJlZCBtdXRhdGlvbnNcbiAgICAgICAgICAgIF9vYnNlcnZlcl9jdXJyZW50O1xuICAgICAgICAgICAgKF9vYnNlcnZlcl9jdXJyZW50ID0gb2JzZXJ2ZXIuY3VycmVudCkgPT09IG51bGwgfHwgX29ic2VydmVyX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9vYnNlcnZlcl9jdXJyZW50Lm9ic2VydmUodGFyZ2V0LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIHZhciBfb2JzZXJ2ZXJfY3VycmVudDtcbiAgICAgICAgICAgIChfb2JzZXJ2ZXJfY3VycmVudCA9IG9ic2VydmVyLmN1cnJlbnQpID09PSBudWxsIHx8IF9vYnNlcnZlcl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfb2JzZXJ2ZXJfY3VycmVudC5kaXNjb25uZWN0KCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICB0YXJnZXQsXG4gICAgICAgIG9wdGlvbnNcbiAgICBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvYnNlcnZlclxuICAgIH07XG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuY29uc3QgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIHVzZVJlZiB9ID0gUmVhY3Q7XG5pbXBvcnQgeyB1c2VNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi91c2VNdXRhdGlvbk9ic2VydmVyJztcbi8qKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIHRha2UgdGhlIHJvb3RNYXJnaW4gYW5kIGZsaXAgdGhlIHNpZGVzIGlmIHdlIGFyZSBpbiBSVEwgYmFzZWQgb24gdGhlIGNvbXB1dGVkIHJlYWRpbmcgZGlyZWN0aW9uIG9mIHRoZSB0YXJnZXQgZWxlbWVudC5cbiAqIEBwYXJhbSBsdHJSb290TWFyZ2luIHRoZSBtYXJnaW4gdG8gYmUgcHJvY2Vzc2VkIGFuZCBmbGlwcGVkIGlmIHJlcXVpcmVkXG4gKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCBlbGVtZW50IHRoYXQgd2lsbCBoYXZlIGl0cyBjdXJyZW50IHJlYWRpbmcgZGlyZWN0aW9uIGRldGVybWluZWRcbiAqIEByZXR1cm5zIHRoZSBjb3JyZWN0ZWQgcm9vdE1hcmdpbiAoaWYgaXQgd2FzIG5lY2Vzc2FyeSB0byBjb3JyZWN0KVxuICovIGV4cG9ydCBjb25zdCBnZXRSVExSb290TWFyZ2luID0gKGx0clJvb3RNYXJnaW4sIHRhcmdldCwgd2luKT0+e1xuICAgIGlmICh0YXJnZXQgJiYgd2luKSB7XG4gICAgICAgIC8vIGdldCB0aGUgY29tcHV0ZWQgZGlyIGZvciB0aGUgdGFyZ2V0IGVsZW1lbnRcbiAgICAgICAgY29uc3QgbmV3RGlyID0gd2luLmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5kaXJlY3Rpb247XG4gICAgICAgIC8vIElmIHdlJ3JlIGluIHJ0bCByZWFkaW5nIGRpcmVjdGlvbiwgd2UgbWlnaHQgbmVlZCB0byBmbGlwIHRoZSBtYXJnaW5zIG9uIHRoZSBsZWZ0L3JpZ2h0IHNpZGVzXG4gICAgICAgIGlmIChuZXdEaXIgPT09ICdydGwnKSB7XG4gICAgICAgICAgICBsZXQgbmV3TWFyZ2luID0gbHRyUm9vdE1hcmdpbjtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0TWFyZ2lucyA9IGx0clJvb3RNYXJnaW4uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIHdlIGdldCBmb3VyIHZhbHVlcywgb3RoZXJ3aXNlIHRoZSBzaWRlcyBhcmUgZXF1YWwgYW5kIGRvbid0IHJlcXVpcmUgZmxpcHBpbmcuXG4gICAgICAgICAgICBpZiAoc3BsaXRNYXJnaW5zLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgICAgICAgIG5ld01hcmdpbiA9IGAke3NwbGl0TWFyZ2luc1swXX0gJHtzcGxpdE1hcmdpbnNbM119ICR7c3BsaXRNYXJnaW5zWzJdfSAke3NwbGl0TWFyZ2luc1sxXX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld01hcmdpbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsdHJSb290TWFyZ2luO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsdHJSb290TWFyZ2luO1xufTtcbi8qKlxuICogUmVhY3QgaG9vayB0aGF0IGFsbG93cyBlYXN5IHVzYWdlIG9mIHRoZSBicm93c2VyIEFQSSBJbnRlcnNlY3Rpb25PYnNlcnZlciB3aXRoaW4gUmVhY3RcbiAqIEBwYXJhbSBjYWxsYmFjayAtIEEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIHRhcmdldCBlbGVtZW50IGlzIHZpc2libGUgY3Jvc3NlcyBhIHRocmVzaG9sZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb3B0aW9uYWwgb2JqZWN0IHdoaWNoIGN1c3RvbWl6ZXMgdGhlIG9ic2VydmVyLiBJZiBvcHRpb25zIGlzbid0IHNwZWNpZmllZCwgdGhlIG9ic2VydmVyIHVzZXMgdGhlXG4gKiBkb2N1bWVudCdzIHZpZXdwb3J0IGFzIHRoZSByb290LCB3aXRoIG5vIG1hcmdpbiwgYW5kIGEgMCUgdGhyZXNob2xkIChtZWFuaW5nIHRoYXQgZXZlbiBhIG9uZS1waXhlbCBjaGFuZ2UgaXNcbiAqIGVub3VnaCB0byB0cmlnZ2VyIGEgY2FsbGJhY2spLlxuICogQHJldHVybnMgQW4gYXJyYXkgY29udGFpbmluZyBhIGNhbGxiYWNrIHRvIHVwZGF0ZSB0aGUgbGlzdCBvZiBFbGVtZW50cyB0aGUgb2JzZXJ2ZXIgc2hvdWxkIGxpc3RlbiB0bywgYSBjYWxsYmFjayB0b1xuICogdXBkYXRlIHRoZSBpbml0IG9wdGlvbnMgb2YgdGhlIEludGVyc2VjdGlvbk9ic2VydmVyIGFuZCBhIHJlZiB0byB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaW5zdGFuY2UgaXRzZWxmLlxuICovIGV4cG9ydCBjb25zdCB1c2VJbnRlcnNlY3Rpb25PYnNlcnZlciA9IChjYWxsYmFjaywgb3B0aW9ucyk9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIC8vIFRPRE86IGV4Y2x1ZGUgdHlwZXMgZnJvbSB0aGlzIGxpbnQgcnVsZTogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMzEyODZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSB1c2VSZWYoKTtcbiAgICBjb25zdCBbb2JzZXJ2ZXJMaXN0LCBzZXRPYnNlcnZlckxpc3RdID0gdXNlU3RhdGUoKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCB3aW4gPSB0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgdmFyIF9vcHRpb25zX3Jvb3RNYXJnaW47XG4gICAgLy8gc2V0IHRoZSBpbml0aWFsIGluaXQgd2l0aCBjb3JyZWN0ZWQgbWFyZ2lucyBiYXNlZCBvbiB0aGUgb2JzZXJ2ZWQgcm9vdCdzIGNhbGN1bGF0ZWQgcmVhZGluZyBkaXJlY3Rpb24uXG4gICAgY29uc3QgW29ic2VydmVySW5pdCwgc2V0T2JzZXJ2ZXJJbml0XSA9IHVzZVN0YXRlKG9wdGlvbnMgJiYge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICByb290TWFyZ2luOiBnZXRSVExSb290TWFyZ2luKChfb3B0aW9uc19yb290TWFyZ2luID0gb3B0aW9ucy5yb290TWFyZ2luKSAhPT0gbnVsbCAmJiBfb3B0aW9uc19yb290TWFyZ2luICE9PSB2b2lkIDAgPyBfb3B0aW9uc19yb290TWFyZ2luIDogJzBweCcsIG9wdGlvbnMucm9vdCwgd2luKVxuICAgIH0pO1xuICAgIHZhciBfb3B0aW9uc19yb290TWFyZ2luMTtcbiAgICAvLyBXZSBoYXZlIHRvIGFzc3VtZSB0aGF0IGFueSB2YWx1ZXMgcGFzc2VkIGluIGZvciByb290TWFyZ2luIGJ5IHRoZSBjb25zdW1pbmcgYXBwIGFyZSBsdHIgdmFsdWVzLiBBcyBzdWNoIHdlIHdpbGwgc3RvcmUgdGhlIGx0ciB2YWx1ZS5cbiAgICBjb25zdCBsdHJSb290TWFyZ2luID0gdXNlUmVmKChfb3B0aW9uc19yb290TWFyZ2luMSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yb290TWFyZ2luKSAhPT0gbnVsbCAmJiBfb3B0aW9uc19yb290TWFyZ2luMSAhPT0gdm9pZCAwID8gX29wdGlvbnNfcm9vdE1hcmdpbjEgOiAnMHB4Jyk7XG4gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIG11dGF0aW9ucyBhcmUgb2JzZXJ2ZWRcbiAgICBjb25zdCBtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSB1c2VDYWxsYmFjaygobXV0YXRpb25MaXN0KT0+e1xuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uTGlzdCl7XG4gICAgICAgICAgICAvLyBFbnN1cmluZyB0aGF0IHRoZSByaWdodCBhdHRyaWJ1dGUgaXMgYmVpbmcgb2JzZXJ2ZWQgYW5kIHRoYXQgdGhlIHJvb3QgaXMgd2l0aGluIHRoZSB0cmVlIG9mIHRoZSBlbGVtZW50IGJlaW5nIG11dGF0ZWQuXG4gICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkaXInICYmIChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucm9vdCkgJiYgbXV0YXRpb24udGFyZ2V0LmNvbnRhaW5zKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yb290KSkge1xuICAgICAgICAgICAgICAgIHNldE9ic2VydmVySW5pdCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9ic2VydmVySW5pdCxcbiAgICAgICAgICAgICAgICAgICAgcm9vdE1hcmdpbjogZ2V0UlRMUm9vdE1hcmdpbihsdHJSb290TWFyZ2luLmN1cnJlbnQsIG9ic2VydmVySW5pdCA9PT0gbnVsbCB8fCBvYnNlcnZlckluaXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9ic2VydmVySW5pdC5yb290LCB3aW4pXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGx0clJvb3RNYXJnaW4sXG4gICAgICAgIG9ic2VydmVySW5pdCxcbiAgICAgICAgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnJvb3QsXG4gICAgICAgIHdpblxuICAgIF0pO1xuICAgIC8vIE11dGF0aW9uIG9ic2VydmVyIGZvciBkaXIgYXR0cmlidXRlIGNoYW5nZXMgaW4gdGhlIGRvY3VtZW50XG4gICAgdXNlTXV0YXRpb25PYnNlcnZlcih0YXJnZXREb2N1bWVudCwgbXV0YXRpb25PYnNlcnZlckNhbGxiYWNrLCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAgICAgJ2RpcidcbiAgICAgICAgXVxuICAgIH0pO1xuICAgIC8vIE9ic2VydmVyIGVsZW1lbnRzIGluIHBhc3NlZCBpbiBsaXN0IGFuZCBjbGVhbiB1cCBwcmV2aW91cyBsaXN0XG4gICAgLy8gVGhpcyBlZmZlY3QgaXMgb25seSB0cmlnZ2VyZWQgd2hlbiBvYnNlcnZlckxpc3QgaXMgdXBkYXRlZFxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCF3aW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlci5jdXJyZW50ID0gbmV3IHdpbi5JbnRlcnNlY3Rpb25PYnNlcnZlcihjYWxsYmFjaywge1xuICAgICAgICAgICAgLi4ub2JzZXJ2ZXJJbml0LFxuICAgICAgICAgICAgcm9vdE1hcmdpbjogZ2V0UlRMUm9vdE1hcmdpbihsdHJSb290TWFyZ2luLmN1cnJlbnQsIG9ic2VydmVySW5pdCA9PT0gbnVsbCB8fCBvYnNlcnZlckluaXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9ic2VydmVySW5pdC5yb290LCB3aW4pXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGluc3RhbmNlIG9mIElPIGFuZCBhIGxpc3Qgd2l0aCBlbGVtZW50cywgb2JzZXJ2ZXIgdGhlIGVsZW1lbnRzXG4gICAgICAgIGlmIChvYnNlcnZlci5jdXJyZW50ICYmIG9ic2VydmVyTGlzdCAmJiBvYnNlcnZlckxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgb2JzZXJ2ZXJMaXN0LmZvckVhY2goKGVsZW1lbnQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9vYnNlcnZlcl9jdXJyZW50O1xuICAgICAgICAgICAgICAgIChfb2JzZXJ2ZXJfY3VycmVudCA9IG9ic2VydmVyLmN1cnJlbnQpID09PSBudWxsIHx8IF9vYnNlcnZlcl9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfb2JzZXJ2ZXJfY3VycmVudC5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xlYW4gdXAgcHJldmlvdXMgZWxlbWVudHMgYmVpbmcgbGlzdGVuZWQgdG9cbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmN1cnJlbnQuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgb2JzZXJ2ZXJMaXN0LFxuICAgICAgICBvYnNlcnZlckluaXQsXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICB3aW5cbiAgICBdKTtcbiAgICAvLyBEbyBub3QgdXNlIGludGVybmFsbHksIHdlIG5lZWQgdG8gdHJhY2sgZXh0ZXJuYWwgc2V0dGluZ3Mgb25seSBoZXJlXG4gICAgY29uc3Qgc2V0T2JzZXJ2ZXJJbml0RXh0ZXJuYWwgPSB1c2VDYWxsYmFjaygobmV3SW5pdCk9PntcbiAgICAgICAgdmFyIF9uZXdJbml0X3Jvb3RNYXJnaW47XG4gICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhpcyBpcyBjb21pbmcgZnJvbSBjb25zdW1lcnMsIHdlIGNhbiBzdG9yZSB0aGlzIHZhbHVlIGFzIExUUiBzb21ld2hhdCBzYWZlbHkuXG4gICAgICAgIGx0clJvb3RNYXJnaW4uY3VycmVudCA9IChfbmV3SW5pdF9yb290TWFyZ2luID0gbmV3SW5pdCA9PT0gbnVsbCB8fCBuZXdJbml0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdJbml0LnJvb3RNYXJnaW4pICE9PSBudWxsICYmIF9uZXdJbml0X3Jvb3RNYXJnaW4gIT09IHZvaWQgMCA/IF9uZXdJbml0X3Jvb3RNYXJnaW4gOiAnMHB4JztcbiAgICAgICAgLy8gQ2FsbCB0aGUgaW50ZXJuYWwgc2V0dGVyIHRvIHVwZGF0ZSB0aGUgdmFsdWUgYW5kIGVuc3VyZSBpZiBvdXIgY2FsY3VsYXRlZCBkaXJlY3Rpb24gaXMgcnRsLCB3ZSBmbGlwIHRoZSBtYXJnaW5cbiAgICAgICAgc2V0T2JzZXJ2ZXJJbml0KHtcbiAgICAgICAgICAgIC4uLm5ld0luaXQsXG4gICAgICAgICAgICByb290TWFyZ2luOiBnZXRSVExSb290TWFyZ2luKGx0clJvb3RNYXJnaW4uY3VycmVudCwgbmV3SW5pdCA9PT0gbnVsbCB8fCBuZXdJbml0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdJbml0LnJvb3QsIHdpbilcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBsdHJSb290TWFyZ2luLFxuICAgICAgICBzZXRPYnNlcnZlckluaXQsXG4gICAgICAgIHdpblxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldE9ic2VydmVyTGlzdCxcbiAgICAgICAgc2V0T2JzZXJ2ZXJJbml0OiBzZXRPYnNlcnZlckluaXRFeHRlcm5hbCxcbiAgICAgICAgb2JzZXJ2ZXJcbiAgICB9O1xufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuY29uc3QgVmlydHVhbGl6ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IFZpcnR1YWxpemVyQ29udGV4dFByb3ZpZGVyID0gVmlydHVhbGl6ZXJDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0IGNvbnN0IHVzZVZpcnR1YWxpemVyQ29udGV4dF91bnN0YWJsZSA9ICgpPT57XG4gICAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoVmlydHVhbGl6ZXJDb250ZXh0KTtcbn07XG5leHBvcnQgY29uc3QgdXNlVmlydHVhbGl6ZXJDb250ZXh0U3RhdGVfdW5zdGFibGUgPSAocGFzc2VkQ29udGV4dCk9PntcbiAgICBjb25zdCB2aXJ0dWFsaXplckNvbnRleHQgPSB1c2VWaXJ0dWFsaXplckNvbnRleHRfdW5zdGFibGUoKTtcbiAgICBjb25zdCBbX2NvbnRleHRJbmRleCwgX3NldENvbnRleHRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgLyogV2UgcmVzcGVjdCBhbnkgd3JhcHBlZCBwcm92aWRlcnMgd2hpbGUgYWxzbyBlbnN1cmluZyBkZWZhdWx0cyBvciBwYXNzZWQgdGhyb3VnaFxuICAgKiBPcmRlciBvZiB1c2FnZSAtPiBQYXNzZWQgUHJvcCAtPiBQcm92aWRlciBDb250ZXh0IC0+IEludGVybmFsIFN0YXRlIGRlZmF1bHRcbiAgICovIGNvbnN0IF9jb250ZXh0ID0gdXNlTWVtbygoKT0+e1xuICAgICAgICB2YXIgX3JlZjtcbiAgICAgICAgcmV0dXJuIChfcmVmID0gcGFzc2VkQ29udGV4dCAhPT0gbnVsbCAmJiBwYXNzZWRDb250ZXh0ICE9PSB2b2lkIDAgPyBwYXNzZWRDb250ZXh0IDogdmlydHVhbGl6ZXJDb250ZXh0KSAhPT0gbnVsbCAmJiBfcmVmICE9PSB2b2lkIDAgPyBfcmVmIDoge1xuICAgICAgICAgICAgY29udGV4dEluZGV4OiBfY29udGV4dEluZGV4LFxuICAgICAgICAgICAgc2V0Q29udGV4dEluZGV4OiBfc2V0Q29udGV4dEluZGV4XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBfY29udGV4dEluZGV4LFxuICAgICAgICBwYXNzZWRDb250ZXh0LFxuICAgICAgICB2aXJ0dWFsaXplckNvbnRleHRcbiAgICBdKTtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGV4dEluZGV4OiBfY29udGV4dC5jb250ZXh0SW5kZXgsXG4gICAgICAgICAgICBzZXRDb250ZXh0SW5kZXg6IF9jb250ZXh0LnNldENvbnRleHRJbmRleFxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgX2NvbnRleHRcbiAgICBdKTtcbiAgICByZXR1cm4gY29udGV4dDtcbn07XG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZVJlZHVjZXIsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfSBmcm9tICcuLi8uLi9ob29rcy91c2VJbnRlcnNlY3Rpb25PYnNlcnZlcic7XG5pbXBvcnQgeyBmbHVzaFN5bmMgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgdXNlVmlydHVhbGl6ZXJDb250ZXh0U3RhdGVfdW5zdGFibGUgfSBmcm9tICcuLi8uLi9VdGlsaXRpZXMnO1xuaW1wb3J0IHsgc2xvdCwgdXNlVGltZW91dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVZpcnR1YWxpemVyX3Vuc3RhYmxlKHByb3BzKSB7XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCB7IGl0ZW1TaXplLCBudW1JdGVtcywgdmlydHVhbGl6ZXJMZW5ndGgsIGNoaWxkcmVuOiByZW5kZXJDaGlsZCwgZ2V0SXRlbVNpemUsIGJ1ZmZlckl0ZW1zID0gTWF0aC5yb3VuZCh2aXJ0dWFsaXplckxlbmd0aCAvIDQuMCksIGJ1ZmZlclNpemUgPSBNYXRoLmZsb29yKGJ1ZmZlckl0ZW1zIC8gMi4wKSAqIGl0ZW1TaXplLCBzY3JvbGxWaWV3UmVmLCBheGlzID0gJ3ZlcnRpY2FsJywgcmV2ZXJzZWQgPSBmYWxzZSwgdmlydHVhbGl6ZXJDb250ZXh0LCBvblJlbmRlcmVkRmxhZ2dlZEluZGV4LCBpbXBlcmF0aXZlVmlydHVhbGl6ZXJSZWYgfSA9IHByb3BzO1xuICAgIC8qIFRoZSBjb250ZXh0IGlzIG9wdGlvbmFsLCBpdCdzIHVzZWZ1bCBmb3IgaW5qZWN0aW5nIGFkZGl0aW9uYWwgaW5kZXggbG9naWMsIG9yIHBlcmZvcm1pbmcgdW5pZm9ybSBzdGF0ZSB1cGRhdGVzKi8gY29uc3QgX3ZpcnR1YWxpemVyQ29udGV4dCA9IHVzZVZpcnR1YWxpemVyQ29udGV4dFN0YXRlX3Vuc3RhYmxlKHZpcnR1YWxpemVyQ29udGV4dCk7XG4gICAgLy8gV2UgdXNlIHRoaXMgcmVmIGFzIGEgY29uc3RhbnQgc291cmNlIHRvIGFjY2VzcyB0aGUgdmlydHVhbGl6ZXIncyBzdGF0ZSBpbXBlcmF0aXZlbHlcbiAgICBjb25zdCBhY3R1YWxJbmRleFJlZiA9IHVzZVJlZihfdmlydHVhbGl6ZXJDb250ZXh0LmNvbnRleHRJbmRleCk7XG4gICAgaWYgKGFjdHVhbEluZGV4UmVmLmN1cnJlbnQgIT09IF92aXJ0dWFsaXplckNvbnRleHQuY29udGV4dEluZGV4KSB7XG4gICAgICAgIGFjdHVhbEluZGV4UmVmLmN1cnJlbnQgPSBfdmlydHVhbGl6ZXJDb250ZXh0LmNvbnRleHRJbmRleDtcbiAgICB9XG4gICAgY29uc3QgZmxhZ2dlZEluZGV4ID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGFjdHVhbEluZGV4ID0gX3ZpcnR1YWxpemVyQ29udGV4dC5jb250ZXh0SW5kZXg7XG4gICAgY29uc3Qgc2V0QWN0dWFsSW5kZXggPSBfdmlydHVhbGl6ZXJDb250ZXh0LnNldENvbnRleHRJbmRleDtcbiAgICAvLyBTdG9yZSByZWYgdG8gYmVmb3JlIHBhZGRpbmcgZWxlbWVudFxuICAgIGNvbnN0IGJlZm9yZUVsZW1lbnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgLy8gU3RvcmUgcmVmIHRvIGJlZm9yZSBwYWRkaW5nIGVsZW1lbnRcbiAgICBjb25zdCBhZnRlckVsZW1lbnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgLy8gV2UgbmVlZCB0byBzdG9yZSBhbiBhcnJheSB0byB0cmFjayBkeW5hbWljIHNpemVzLCB3ZSBjYW4gdXNlIHRoaXMgdG8gaW5jcmVtZW50YWxseSB1cGRhdGUgY2hhbmdlc1xuICAgIGNvbnN0IGNoaWxkU2l6ZXMgPSB1c2VSZWYobmV3IEFycmF5KGdldEl0ZW1TaXplID8gbnVtSXRlbXMgOiAwKSk7XG4gICAgLyogV2Uga2VlcCB0cmFjayBvZiB0aGUgcHJvZ3Jlc3NpdmUgc2l6aW5nL3BsYWNlbWVudCBkb3duIHRoZSBsaXN0LFxuICB0aGlzIGhlbHBzIHVzIHNraXAgcmUtY2FsY3VsYXRpb25zIHVubGVzcyBjaGlsZHJlbi9zaXplIGNoYW5nZXMgKi8gY29uc3QgY2hpbGRQcm9ncmVzc2l2ZVNpemVzID0gdXNlUmVmKG5ldyBBcnJheShnZXRJdGVtU2l6ZSA/IG51bUl0ZW1zIDogMCkpO1xuICAgIC8vIFRoZSBpbnRlcm5hbCB0cmFja2luZyBSRUYgZm9yIGNoaWxkIGFycmF5ICh1cGRhdGVzIG9mdGVuKS5cbiAgICBjb25zdCBjaGlsZEFycmF5ID0gdXNlUmVmKG5ldyBBcnJheSh2aXJ0dWFsaXplckxlbmd0aCkpO1xuICAgIC8vIFdlIHdhbnQgdG8gYmUgbWV0aG9kaWNhbCBhYm91dCB1cGRhdGluZyB0aGUgcmVuZGVyIHdpdGggY2hpbGQgcmVmZXJlbmNlIGFycmF5XG4gICAgY29uc3QgZm9yY2VVcGRhdGUgPSB1c2VSZWR1Y2VyKCgpPT4oe30pLCB7fSlbMV07XG4gICAgY29uc3QgaG9yaXpvbnRhbCA9IGF4aXMgPT09ICdob3Jpem9udGFsJztcbiAgICBjb25zdCBwb3B1bGF0ZVNpemVBcnJheXMgPSAoKT0+e1xuICAgICAgICBpZiAoIWdldEl0ZW1TaXplKSB7XG4gICAgICAgICAgICAvLyBTdGF0aWMgc2l6ZXMsIG5ldmVyIG1pbmQhXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG51bUl0ZW1zICE9PSBjaGlsZFNpemVzLmN1cnJlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjaGlsZFNpemVzLmN1cnJlbnQgPSBuZXcgQXJyYXkobnVtSXRlbXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChudW1JdGVtcyAhPT0gY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjaGlsZFByb2dyZXNzaXZlU2l6ZXMuY3VycmVudCA9IG5ldyBBcnJheShudW1JdGVtcyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtSXRlbXM7IGluZGV4Kyspe1xuICAgICAgICAgICAgY2hpbGRTaXplcy5jdXJyZW50W2luZGV4XSA9IGdldEl0ZW1TaXplKGluZGV4KTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W2luZGV4XSA9IGNoaWxkU2l6ZXMuY3VycmVudFtpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W2luZGV4XSA9IGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W2luZGV4IC0gMV0gKyBjaGlsZFNpemVzLmN1cnJlbnRbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBbaXNTY3JvbGxpbmcsIHNldElzU2Nyb2xsaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2V0U2Nyb2xsVGltZXIsIGNsZWFyU2Nyb2xsVGltZXJdID0gdXNlVGltZW91dCgpO1xuICAgIGNvbnN0IHNjcm9sbENvdW50ZXIgPSB1c2VSZWYoMCk7XG4gICAgY29uc3QgaW5pdGlhbGl6ZVNjcm9sbGluZ1RpbWVyID0gdXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgLypcbiAgICAgKiBUaGlzIGNhbiBiZSBjb25zaWRlcmVkIHRoZSAndmVsb2NpdHknIHJlcXVpcmVkIHRvIHN0YXJ0ICdpc1Njcm9sbGluZydcbiAgICAgKiBJTklUX1NDUk9MTF9GTEFHX1JFUTogTnVtYmVyIG9mIHJlbmRlcnMgcmVxdWlyZWQgdG8gYWN0aXZhdGUgaXNTY3JvbGxpbmdcbiAgICAgKiBJTklUX1NDUk9MTF9GTEFHX0RFTEFZOiBBbW91bnQgb2YgdGltZSAobXMpIGJlZm9yZSBjdXJyZW50IG51bWJlciBvZiByZW5kZXJzIGlzIHJlc2V0XG4gICAgICogIC0gTWF5YmUgd2Ugc2hvdWxkIGxldCB1c2VycyBjdXN0b21pemUgdGhlc2UgaW4gdGhlIGZ1dHVyZS5cbiAgICAgKi8gY29uc3QgSU5JVF9TQ1JPTExfRkxBR19SRVEgPSAxMDtcbiAgICAgICAgY29uc3QgSU5JVF9TQ1JPTExfRkxBR19ERUxBWSA9IDEwMDtcbiAgICAgICAgc2Nyb2xsQ291bnRlci5jdXJyZW50Kys7XG4gICAgICAgIGlmIChzY3JvbGxDb3VudGVyLmN1cnJlbnQgPj0gSU5JVF9TQ1JPTExfRkxBR19SRVEpIHtcbiAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFyU2Nyb2xsVGltZXIoKTtcbiAgICAgICAgc2V0U2Nyb2xsVGltZXIoKCk9PntcbiAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHNjcm9sbENvdW50ZXIuY3VycmVudCA9IDA7XG4gICAgICAgIH0sIElOSVRfU0NST0xMX0ZMQUdfREVMQVkpO1xuICAgIH0sIFtcbiAgICAgICAgY2xlYXJTY3JvbGxUaW1lcixcbiAgICAgICAgc2V0U2Nyb2xsVGltZXJcbiAgICBdKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaW5pdGlhbGl6ZVNjcm9sbGluZ1RpbWVyKCk7XG4gICAgfSwgW1xuICAgICAgICBhY3R1YWxJbmRleCxcbiAgICAgICAgaW5pdGlhbGl6ZVNjcm9sbGluZ1RpbWVyXG4gICAgXSk7XG4gICAgY29uc3QgYmF0Y2hVcGRhdGVOZXdJbmRleCA9IChpbmRleCk9PntcbiAgICAgICAgLy8gTG9jYWwgdXBkYXRlc1xuICAgICAgICB1cGRhdGVDaGlsZFJvd3MoaW5kZXgpO1xuICAgICAgICB1cGRhdGVDdXJyZW50SXRlbVNpemVzKGluZGV4KTtcbiAgICAgICAgLy8gU2V0IGJlZm9yZSAnc2V0QWN0dWFsSW5kZXgnIGNhbGxcbiAgICAgICAgLy8gSWYgaXQgY2hhbmdlcyBiZWZvcmUgcmVuZGVyLCBvciBpbmplY3RlZCB2aWEgY29udGV4dCwgcmUtcmVuZGVyIHdpbGwgdXBkYXRlIHJlZi5cbiAgICAgICAgYWN0dWFsSW5kZXhSZWYuY3VycmVudCA9IGluZGV4O1xuICAgICAgICAvLyBTdGF0ZSBzZXR0ZXJzXG4gICAgICAgIHNldEFjdHVhbEluZGV4KGluZGV4KTtcbiAgICB9O1xuICAgIC8vIE9ic2VydmUgaW50ZXJzZWN0aW9ucyBvZiB2aXJ0dWFsaXplZCBjb21wb25lbnRzXG4gICAgY29uc3QgeyBzZXRPYnNlcnZlckxpc3QgfSA9IHVzZUludGVyc2VjdGlvbk9ic2VydmVyKC8vIFRPRE86IGV4Y2x1ZGUgdHlwZXMgZnJvbSB0aGlzIGxpbnQgcnVsZTogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMzEyODZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgKGVudHJpZXMsIG9ic2VydmVyKT0+e1xuICAgICAgICAvKiBTYW5pdHkgY2hlY2sgLSBkbyB3ZSBldmVuIG5lZWQgdmlydHVhbGl6YXRpb24/ICovIGlmICh2aXJ0dWFsaXplckxlbmd0aCA+IG51bUl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoYWN0dWFsSW5kZXggIT09IDApIHtcbiAgICAgICAgICAgICAgICBiYXRjaFVwZGF0ZU5ld0luZGV4KDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm8tb3BcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvKiBJTyBpbml0aWF0ZXMgdGhpcyBmdW5jdGlvbiB3aGVuIG5lZWRlZCAoYm9va2VuZCBlbnRlcmluZyB2aWV3KSAqLyBsZXQgbWVhc3VyZW1lbnRQb3MgPSAwO1xuICAgICAgICBsZXQgYnVmZmVyQ291bnQgPSBidWZmZXJJdGVtcztcbiAgICAgICAgLy8gR3JhYiBsYXRlc3QgZW50cnkgdGhhdCBpcyBpbnRlcnNlY3RpbmdcbiAgICAgICAgY29uc3QgbGF0ZXN0RW50cnkgPSBlbnRyaWVzLmxlbmd0aCA9PT0gMSA/IGVudHJpZXNbMF0gOiBlbnRyaWVzLnNvcnQoKGVudHJ5MSwgZW50cnkyKT0+ZW50cnkyLnRpbWUgLSBlbnRyeTEudGltZSkuZmluZCgoZW50cnkpPT57XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPiAwO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFsYXRlc3RFbnRyeSkge1xuICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgZmluZCBhbiBpbnRlcnNlY3RpbmcgYXJlYSwgaWdub3JlIGZvciBub3cuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhdGVzdEVudHJ5LnRhcmdldCA9PT0gYWZ0ZXJFbGVtZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gaW52ZXJzZSB0aGUgYnVmZmVyIGNvdW50XG4gICAgICAgICAgICBidWZmZXJDb3VudCA9IHZpcnR1YWxpemVyTGVuZ3RoIC0gYnVmZmVySXRlbXM7XG4gICAgICAgICAgICBtZWFzdXJlbWVudFBvcyA9IHJldmVyc2VkID8gY2FsY3VsYXRlQWZ0ZXIoKSA6IGNhbGN1bGF0ZVRvdGFsU2l6ZSgpIC0gY2FsY3VsYXRlQWZ0ZXIoKTtcbiAgICAgICAgICAgIGlmICghaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXZlcnNlZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTY3JvbGxpbmcgJ3VwJyBhbmQgaGl0IHRoZSBhZnRlciBlbGVtZW50IGJlbG93XG4gICAgICAgICAgICAgICAgICAgIG1lYXN1cmVtZW50UG9zIC09IE1hdGguYWJzKGxhdGVzdEVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5ib3R0b20pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGF0ZXN0RW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2Nyb2xsaW5nICdkb3duJyBhbmQgaGl0IHRoZSBhZnRlciBlbGVtZW50IGFib3ZlIHRvcDogMFxuICAgICAgICAgICAgICAgICAgICBtZWFzdXJlbWVudFBvcyAtPSBsYXRlc3RFbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHJldmVyc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNjcm9sbGluZyAnbGVmdCcgYW5kIGhpdCB0aGUgYWZ0ZXIgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICBtZWFzdXJlbWVudFBvcyAtPSBNYXRoLmFicyhsYXRlc3RFbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGF0ZXN0RW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNjcm9sbGluZyAncmlnaHQnIGFuZCBoaXQgdGhlIGFmdGVyIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRQb3MgLT0gbGF0ZXN0RW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGxhdGVzdEVudHJ5LnRhcmdldCA9PT0gYmVmb3JlRWxlbWVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBtZWFzdXJlbWVudFBvcyA9IHJldmVyc2VkID8gY2FsY3VsYXRlVG90YWxTaXplKCkgLSBjYWxjdWxhdGVCZWZvcmUoKSA6IGNhbGN1bGF0ZUJlZm9yZSgpO1xuICAgICAgICAgICAgaWYgKCFob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXZlcnNlZCkge1xuICAgICAgICAgICAgICAgICAgICBtZWFzdXJlbWVudFBvcyAtPSBNYXRoLmFicyhsYXRlc3RFbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxhdGVzdEVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNjcm9sbGluZyAnZG93bicgaW4gcmV2ZXJzZSBvcmRlciBhbmQgaGl0IHRoZSBiZWZvcmUgZWxlbWVudCBhYm92ZSB0b3A6IDBcbiAgICAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRQb3MgLT0gbGF0ZXN0RW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghcmV2ZXJzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRQb3MgLT0gTWF0aC5hYnMobGF0ZXN0RW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxhdGVzdEVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTY3JvbGxpbmcgJ2xlZnQnIGFuZCBoaXQgYmVmb3JlIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRQb3MgLT0gbGF0ZXN0RW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXZlcnNlZCkge1xuICAgICAgICAgICAgLy8gV2UncmUgcmV2ZXJzZWQsIHVwIGlzIGRvd24sIGxlZnQgaXMgcmlnaHQsIGludmVydCB0aGUgc2Nyb2xsIG1lYXN1cmUuXG4gICAgICAgICAgICBtZWFzdXJlbWVudFBvcyA9IE1hdGgubWF4KGNhbGN1bGF0ZVRvdGFsU2l6ZSgpIC0gTWF0aC5hYnMobWVhc3VyZW1lbnRQb3MpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3Igbm93IGxldHMgdXNlIGhhcmRjb2RlZCBzaXplIHRvIGFzc2VzcyBjdXJyZW50IGVsZW1lbnQgdG8gcGFnaW5hdGUgb25cbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGdldEluZGV4RnJvbVNjcm9sbFBvc2l0aW9uKG1lYXN1cmVtZW50UG9zKTtcbiAgICAgICAgY29uc3QgYnVmZmVyZWRJbmRleCA9IE1hdGgubWF4KHN0YXJ0SW5kZXggLSBidWZmZXJDb3VudCwgMCk7XG4gICAgICAgIC8vIFNhZmV0eSBsaW1pdHNcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBNYXRoLm1heChudW1JdGVtcyAtIHZpcnR1YWxpemVyTGVuZ3RoLCAwKTtcbiAgICAgICAgY29uc3QgbmV3U3RhcnRJbmRleCA9IE1hdGgubWluKE1hdGgubWF4KGJ1ZmZlcmVkSW5kZXgsIDApLCBtYXhJbmRleCk7XG4gICAgICAgIGlmIChhY3R1YWxJbmRleCAhPT0gbmV3U3RhcnRJbmRleCkge1xuICAgICAgICAgICAgLy8gV2UgZmx1c2ggc3luYyB0aGlzIGFuZCBwZXJmb3JtIGFuIGltbWVkaWF0ZSBzdGF0ZSB1cGRhdGVcbiAgICAgICAgICAgIGZsdXNoU3luYygoKT0+e1xuICAgICAgICAgICAgICAgIGJhdGNoVXBkYXRlTmV3SW5kZXgobmV3U3RhcnRJbmRleCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgcm9vdDogc2Nyb2xsVmlld1JlZiA/IHNjcm9sbFZpZXdSZWYgPT09IG51bGwgfHwgc2Nyb2xsVmlld1JlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Nyb2xsVmlld1JlZi5jdXJyZW50IDogbnVsbCxcbiAgICAgICAgcm9vdE1hcmdpbjogJzBweCcsXG4gICAgICAgIHRocmVzaG9sZDogMFxuICAgIH0pO1xuICAgIGNvbnN0IGZpbmRJbmRleFJlY3Vyc2l2ZSA9IChzY3JvbGxQb3MsIGxvd0luZGV4LCBoaWdoSW5kZXgpPT57XG4gICAgICAgIGlmIChsb3dJbmRleCA+IGhpZ2hJbmRleCkge1xuICAgICAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGdldCBoZXJlIC0gYnV0IG5vLW9wIHRoZSBpbmRleCBpZiB3ZSBkby5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWxJbmRleDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaWRwb2ludCA9IE1hdGguZmxvb3IoKGxvd0luZGV4ICsgaGlnaEluZGV4KSAvIDIpO1xuICAgICAgICBjb25zdCBpQmVmb3JlID0gTWF0aC5tYXgobWlkcG9pbnQgLSAxLCAwKTtcbiAgICAgICAgY29uc3QgaUFmdGVyID0gTWF0aC5taW4obWlkcG9pbnQgKyAxLCBjaGlsZFByb2dyZXNzaXZlU2l6ZXMuY3VycmVudC5sZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W21pZHBvaW50XTtcbiAgICAgICAgY29uc3QgYWZ0ZXJJbmRleFZhbHVlID0gY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnRbaUFmdGVyXTtcbiAgICAgICAgY29uc3QgYmVmb3JlSW5kZXhWYWx1ZSA9IGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W2lCZWZvcmVdO1xuICAgICAgICBpZiAoc2Nyb2xsUG9zIDw9IGFmdGVySW5kZXhWYWx1ZSAmJiBzY3JvbGxQb3MgPj0gYmVmb3JlSW5kZXhWYWx1ZSkge1xuICAgICAgICAgICAgLyogV2UndmUgZm91bmQgb3VyIGluZGV4IC0gaWYgd2UgYXJlIGV4YWN0bHkgbWF0Y2hpbmcgYmVmb3JlL2FmdGVyIGluZGV4IHRoYXQncyBvayxcbiAgICAgIGJldHRlciB0byByZWR1Y2UgY2hlY2tzIGlmIGl0J3MgcmlnaHQgb24gdGhlIGJvdW5kYXJ5LiAqLyByZXR1cm4gbWlkcG9pbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4VmFsdWUgPiBzY3JvbGxQb3MpIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kSW5kZXhSZWN1cnNpdmUoc2Nyb2xsUG9zLCBsb3dJbmRleCwgbWlkcG9pbnQgLSAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kSW5kZXhSZWN1cnNpdmUoc2Nyb2xsUG9zLCBtaWRwb2ludCArIDEsIGhpZ2hJbmRleCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGdldEluZGV4RnJvbVNpemVBcnJheSA9IChzY3JvbGxQb3MpPT57XG4gICAgICAgIC8qIFF1aWNrIHNlYXJjaGVzIG91ciBwcm9ncmVzc2l2ZSBoZWlnaHQgYXJyYXkgKi8gaWYgKHNjcm9sbFBvcyA9PT0gMCB8fCBjaGlsZFByb2dyZXNzaXZlU2l6ZXMuY3VycmVudC5sZW5ndGggPT09IDAgfHwgc2Nyb2xsUG9zIDw9IGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50WzBdKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBzdGFydFxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNjcm9sbFBvcyA+PSBjaGlsZFByb2dyZXNzaXZlU2l6ZXMuY3VycmVudFtjaGlsZFByb2dyZXNzaXZlU2l6ZXMuY3VycmVudC5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgLy8gQ2hlY2sgZW5kXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnQubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmluZEluZGV4UmVjdXJzaXZlKHNjcm9sbFBvcywgMCwgY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnQubGVuZ3RoIC0gMSk7XG4gICAgfTtcbiAgICBjb25zdCBnZXRJbmRleEZyb21TY3JvbGxQb3NpdGlvbiA9IChzY3JvbGxQb3MpPT57XG4gICAgICAgIGlmICghZ2V0SXRlbVNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHNjcm9sbFBvcyAvIGl0ZW1TaXplKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0SW5kZXhGcm9tU2l6ZUFycmF5KHNjcm9sbFBvcyk7XG4gICAgfTtcbiAgICBjb25zdCBjYWxjdWxhdGVUb3RhbFNpemUgPSB1c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBpZiAoIWdldEl0ZW1TaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbVNpemUgKiBudW1JdGVtcztcbiAgICAgICAgfVxuICAgICAgICAvLyBUaW1lIGZvciBjdXN0b20gc2l6ZSBjYWxjc1xuICAgICAgICByZXR1cm4gY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnRbbnVtSXRlbXMgLSAxXTtcbiAgICB9LCBbXG4gICAgICAgIGdldEl0ZW1TaXplLFxuICAgICAgICBpdGVtU2l6ZSxcbiAgICAgICAgbnVtSXRlbXNcbiAgICBdKTtcbiAgICBjb25zdCBjYWxjdWxhdGVCZWZvcmUgPSB1c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBNYXRoLm1pbihhY3R1YWxJbmRleCwgbnVtSXRlbXMgLSAxKTtcbiAgICAgICAgaWYgKCFnZXRJdGVtU2l6ZSkge1xuICAgICAgICAgICAgLy8gVGhlIG1pc3NpbmcgaXRlbXMgZnJvbSBiZWZvcmUgdmlydHVhbGl6YXRpb24gc3RhcnRzIGhlaWdodFxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleCAqIGl0ZW1TaXplO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGltZSBmb3IgY3VzdG9tIHNpemUgY2FsY3NcbiAgICAgICAgcmV0dXJuIGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W2N1cnJlbnRJbmRleCAtIDFdO1xuICAgIH0sIFtcbiAgICAgICAgYWN0dWFsSW5kZXgsXG4gICAgICAgIGdldEl0ZW1TaXplLFxuICAgICAgICBpdGVtU2l6ZSxcbiAgICAgICAgbnVtSXRlbXNcbiAgICBdKTtcbiAgICBjb25zdCBjYWxjdWxhdGVBZnRlciA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGlmIChudW1JdGVtcyA9PT0gMCB8fCBhY3R1YWxJbmRleCArIHZpcnR1YWxpemVyTGVuZ3RoID49IG51bUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0SXRlbUluZGV4ID0gTWF0aC5taW4oYWN0dWFsSW5kZXggKyB2aXJ0dWFsaXplckxlbmd0aCwgbnVtSXRlbXMpO1xuICAgICAgICBpZiAoIWdldEl0ZW1TaXplKSB7XG4gICAgICAgICAgICAvLyBUaGUgbWlzc2luZyBpdGVtcyBmcm9tIGFmdGVyIHZpcnR1YWxpemF0aW9uIGVuZHMgaGVpZ2h0XG4gICAgICAgICAgICBjb25zdCByZW1haW5pbmdJdGVtcyA9IG51bUl0ZW1zIC0gbGFzdEl0ZW1JbmRleDtcbiAgICAgICAgICAgIHJldHVybiByZW1haW5pbmdJdGVtcyAqIGl0ZW1TaXplO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRpbWUgZm9yIGN1c3RvbSBzaXplIGNhbGNzXG4gICAgICAgIHJldHVybiBjaGlsZFByb2dyZXNzaXZlU2l6ZXMuY3VycmVudFtudW1JdGVtcyAtIDFdIC0gY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnRbbGFzdEl0ZW1JbmRleCAtIDFdO1xuICAgIH0sIFtcbiAgICAgICAgYWN0dWFsSW5kZXgsXG4gICAgICAgIGdldEl0ZW1TaXplLFxuICAgICAgICBpdGVtU2l6ZSxcbiAgICAgICAgbnVtSXRlbXMsXG4gICAgICAgIHZpcnR1YWxpemVyTGVuZ3RoXG4gICAgXSk7XG4gICAgY29uc3QgdXBkYXRlQ2hpbGRSb3dzID0gdXNlQ2FsbGJhY2soKG5ld0luZGV4KT0+e1xuICAgICAgICBpZiAobnVtSXRlbXMgPT09IDApIHtcbiAgICAgICAgICAgIC8qIE5vdGhpbmcgdG8gdmlydHVhbGl6ZSAqLyByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLypcbiAgICAgICAgV2UgcmVzZXQgdGhlIGFycmF5IGV2ZXJ5IHRpbWUgdG8gZW5zdXJlIGNoaWxkcmVuIGFyZSByZS1yZW5kZXJlZFxuICAgICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHVwZGF0ZSBpcyBuZXNzZWNhcnlcbiAgICAgICAqLyBjaGlsZEFycmF5LmN1cnJlbnQgPSBuZXcgQXJyYXkodmlydHVhbGl6ZXJMZW5ndGgpO1xuICAgICAgICBjb25zdCBfYWN0dWFsSW5kZXggPSBNYXRoLm1heChuZXdJbmRleCwgMCk7XG4gICAgICAgIGNvbnN0IGVuZCA9IE1hdGgubWluKF9hY3R1YWxJbmRleCArIHZpcnR1YWxpemVyTGVuZ3RoLCBudW1JdGVtcyk7XG4gICAgICAgIGZvcihsZXQgaSA9IF9hY3R1YWxJbmRleDsgaSA8IGVuZDsgaSsrKXtcbiAgICAgICAgICAgIGNoaWxkQXJyYXkuY3VycmVudFtpIC0gX2FjdHVhbEluZGV4XSA9IHJlbmRlckNoaWxkKGksIGlzU2Nyb2xsaW5nKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNTY3JvbGxpbmcsXG4gICAgICAgIG51bUl0ZW1zLFxuICAgICAgICByZW5kZXJDaGlsZCxcbiAgICAgICAgdmlydHVhbGl6ZXJMZW5ndGhcbiAgICBdKTtcbiAgICBjb25zdCBzZXRCZWZvcmVSZWYgPSB1c2VDYWxsYmFjaygoZWxlbWVudCk9PntcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IGJlZm9yZUVsZW1lbnRSZWYuY3VycmVudCA9PT0gZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJlZm9yZUVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbXTtcbiAgICAgICAgbmV3TGlzdC5wdXNoKGJlZm9yZUVsZW1lbnRSZWYuY3VycmVudCk7XG4gICAgICAgIGlmIChhZnRlckVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbmV3TGlzdC5wdXNoKGFmdGVyRWxlbWVudFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFbnN1cmUgd2UgdXBkYXRlIGFycmF5IGlmIGJlZm9yZSBlbGVtZW50IGNoYW5nZWRcbiAgICAgICAgc2V0T2JzZXJ2ZXJMaXN0KG5ld0xpc3QpO1xuICAgIH0sIFtcbiAgICAgICAgc2V0T2JzZXJ2ZXJMaXN0XG4gICAgXSk7XG4gICAgY29uc3Qgc2V0QWZ0ZXJSZWYgPSB1c2VDYWxsYmFjaygoZWxlbWVudCk9PntcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IGFmdGVyRWxlbWVudFJlZi5jdXJyZW50ID09PSBlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYWZ0ZXJFbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gW107XG4gICAgICAgIGlmIChiZWZvcmVFbGVtZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG5ld0xpc3QucHVzaChiZWZvcmVFbGVtZW50UmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIG5ld0xpc3QucHVzaChhZnRlckVsZW1lbnRSZWYuY3VycmVudCk7XG4gICAgICAgIC8vIEVuc3VyZSB3ZSB1cGRhdGUgYXJyYXkgaWYgYWZ0ZXIgZWxlbWVudCBjaGFuZ2VkXG4gICAgICAgIHNldE9ic2VydmVyTGlzdChuZXdMaXN0KTtcbiAgICB9LCBbXG4gICAgICAgIHNldE9ic2VydmVyTGlzdFxuICAgIF0pO1xuICAgIGNvbnN0IHVwZGF0ZUN1cnJlbnRJdGVtU2l6ZXMgPSAobmV3SW5kZXgpPT57XG4gICAgICAgIGlmICghZ2V0SXRlbVNpemUpIHtcbiAgICAgICAgICAgIC8vIFN0YXRpYyBzaXplcywgbm90IHJlcXVpcmVkLlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHNob3VsZCBhbHdheXMgY2FsbCBvdXIgc2l6ZSBmdW5jdGlvbiBvbiBpbmRleCBjaGFuZ2UgKG9ubHkgZm9yIHRoZSBpdGVtcyB0aGF0IHdpbGwgYmUgcmVuZGVyZWQpXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB3ZSByZXF1ZXN0IHRoZSBsYXRlc3QgZGF0YSBmb3IgaW5jb21pbmcgaXRlbXMgaW4gY2FzZSBzaXppbmcgaGFzIGNoYW5nZWQuXG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4obmV3SW5kZXggKyB2aXJ0dWFsaXplckxlbmd0aCwgbnVtSXRlbXMpO1xuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gTWF0aC5tYXgobmV3SW5kZXgsIDApO1xuICAgICAgICBsZXQgZGlkVXBkYXRlID0gZmFsc2U7XG4gICAgICAgIGZvcihsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPCBlbmRJbmRleDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NpemUgPSBnZXRJdGVtU2l6ZShpKTtcbiAgICAgICAgICAgIGlmIChuZXdTaXplICE9PSBjaGlsZFNpemVzLmN1cnJlbnRbaV0pIHtcbiAgICAgICAgICAgICAgICBjaGlsZFNpemVzLmN1cnJlbnRbaV0gPSBuZXdTaXplO1xuICAgICAgICAgICAgICAgIGRpZFVwZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRpZFVwZGF0ZSkge1xuICAgICAgICAgICAgLy8gVXBkYXRlIG91ciBwcm9ncmVzc2l2ZSBzaXplIGFycmF5XG4gICAgICAgICAgICBmb3IobGV0IGkgPSBzdGFydEluZGV4OyBpIDwgbnVtSXRlbXM7IGkrKyl7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlNpemUgPSBpID4gMCA/IGNoaWxkUHJvZ3Jlc3NpdmVTaXplcy5jdXJyZW50W2kgLSAxXSA6IDA7XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnRbaV0gPSBwcmV2U2l6ZSArIGNoaWxkU2l6ZXMuY3VycmVudFtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgc2l6ZSBhcnJheSBiZWZvcmUgZmlyc3QgcmVuZGVyLlxuICAgIGNvbnN0IGhhc0luaXRpYWxpemVkID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpbml0aWFsaXplU2l6ZUFycmF5ID0gKCk9PntcbiAgICAgICAgaWYgKGhhc0luaXRpYWxpemVkLmN1cnJlbnQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBoYXNJbml0aWFsaXplZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHBvcHVsYXRlU2l6ZUFycmF5cygpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGltcGVyYXRpdmVWaXJ0dWFsaXplclJlZiwgKCk9PntcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByb2dyZXNzaXZlU2l6ZXM6IGNoaWxkUHJvZ3Jlc3NpdmVTaXplcyxcbiAgICAgICAgICAgIG5vZGVTaXplczogY2hpbGRTaXplcyxcbiAgICAgICAgICAgIHNldEZsYWdnZWRJbmRleDogKGluZGV4KT0+ZmxhZ2dlZEluZGV4LmN1cnJlbnQgPSBpbmRleCxcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleDogYWN0dWFsSW5kZXhSZWZcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGNoaWxkUHJvZ3Jlc3NpdmVTaXplcyxcbiAgICAgICAgY2hpbGRTaXplc1xuICAgIF0pO1xuICAgIC8vIEluaXRpYWxpemF0aW9uIG9uIG1vdW50IC0gdXBkYXRlIGFycmF5IGluZGV4IHRvIDAgKHJlYWR5IHN0YXRlKS5cbiAgICAvLyBPbmx5IGZpcmUgb24gbW91bnQgKG5vIGRlcHMpLlxuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoYWN0dWFsSW5kZXggPCAwKSB7XG4gICAgICAgICAgICBiYXRjaFVwZGF0ZU5ld0luZGV4KDApO1xuICAgICAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtdKTtcbiAgICAvLyBJZiB0aGUgdXNlciBwYXNzZXMgaW4gYW4gdXBkYXRlZCByZW5kZXJDaGlsZCBmdW5jdGlvbiAtIHVwZGF0ZSBjdXJyZW50IGNoaWxkcmVuXG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChhY3R1YWxJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB1cGRhdGVDaGlsZFJvd3MoYWN0dWFsSW5kZXgpO1xuICAgICAgICAgICAgZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbXG4gICAgICAgIHJlbmRlckNoaWxkLFxuICAgICAgICB1cGRhdGVDaGlsZFJvd3NcbiAgICBdKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgLy8gRW5zdXJlIHdlIHJlcG9wdWxhdGUgaWYgZ2V0SXRlbVNpemUgY2FsbGJhY2sgY2hhbmdlc1xuICAgICAgICBwb3B1bGF0ZVNpemVBcnJheXMoKTtcbiAgICAvLyBXZSBvbmx5IHJ1biB0aGlzIGVmZmVjdCBvbiBnZXRJdGVtU2l6ZSBjaGFuZ2UgKHJlY2FsYyBkeW5hbWljIHNpemVzKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbXG4gICAgICAgIGdldEl0ZW1TaXplXG4gICAgXSk7XG4gICAgLy8gRWZmZWN0IHRvIGNoZWNrIGZsYWcgaW5kZXggb24gdXBkYXRlc1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIW9uUmVuZGVyZWRGbGFnZ2VkSW5kZXggfHwgZmxhZ2dlZEluZGV4LmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0dWFsSW5kZXggPD0gZmxhZ2dlZEluZGV4LmN1cnJlbnQgJiYgYWN0dWFsSW5kZXggKyB2aXJ0dWFsaXplckxlbmd0aCA+PSBmbGFnZ2VkSW5kZXguY3VycmVudCkge1xuICAgICAgICAgICAgb25SZW5kZXJlZEZsYWdnZWRJbmRleChmbGFnZ2VkSW5kZXguY3VycmVudCk7XG4gICAgICAgICAgICBmbGFnZ2VkSW5kZXguY3VycmVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGFjdHVhbEluZGV4LFxuICAgICAgICBvblJlbmRlcmVkRmxhZ2dlZEluZGV4LFxuICAgICAgICB2aXJ0dWFsaXplckxlbmd0aFxuICAgIF0pO1xuICAgIC8vIEVuc3VyZSB3ZSBoYXZlIHJ1biB0aHJvdWdoIGFuZCB1cGRhdGVkIHRoZSB3aG9sZSBzaXplIGxpc3QgYXJyYXkgYXQgbGVhc3Qgb25jZS5cbiAgICBpbml0aWFsaXplU2l6ZUFycmF5KCk7XG4gICAgaWYgKGdldEl0ZW1TaXplICYmIChudW1JdGVtcyAhPT0gY2hpbGRTaXplcy5jdXJyZW50Lmxlbmd0aCB8fCBudW1JdGVtcyAhPT0gY2hpbGRQcm9ncmVzc2l2ZVNpemVzLmN1cnJlbnQubGVuZ3RoKSkge1xuICAgICAgICAvLyBDaGlsZCBsZW5ndGggbWlzbWF0Y2gsIHJlcG9wdWxhdGUgc2l6ZSBhcnJheXMuXG4gICAgICAgIHBvcHVsYXRlU2l6ZUFycmF5cygpO1xuICAgIH1cbiAgICAvLyBFbnN1cmUgd2UgcmVjYWxjIGlmIHZpcnR1YWxpemVyIGxlbmd0aCBjaGFuZ2VzXG4gICAgY29uc3QgbWF4Q29tcGFyZSA9IE1hdGgubWluKHZpcnR1YWxpemVyTGVuZ3RoLCBudW1JdGVtcyk7XG4gICAgaWYgKGNoaWxkQXJyYXkuY3VycmVudC5sZW5ndGggIT09IG1heENvbXBhcmUgJiYgYWN0dWFsSW5kZXggKyBjaGlsZEFycmF5LmN1cnJlbnQubGVuZ3RoIDwgbnVtSXRlbXMpIHtcbiAgICAgICAgdXBkYXRlQ2hpbGRSb3dzKGFjdHVhbEluZGV4KTtcbiAgICB9XG4gICAgY29uc3QgaXNGdWxseUluaXRpYWxpemVkID0gaGFzSW5pdGlhbGl6ZWQuY3VycmVudCAmJiBhY3R1YWxJbmRleCA+PSAwO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIGJlZm9yZTogJ2RpdicsXG4gICAgICAgICAgICBhZnRlcjogJ2RpdicsXG4gICAgICAgICAgICBiZWZvcmVDb250YWluZXI6ICdkaXYnLFxuICAgICAgICAgICAgYWZ0ZXJDb250YWluZXI6ICdkaXYnXG4gICAgICAgIH0sXG4gICAgICAgIHZpcnR1YWxpemVkQ2hpbGRyZW46IGNoaWxkQXJyYXkuY3VycmVudCxcbiAgICAgICAgYmVmb3JlOiBzbG90LmFsd2F5cyhwcm9wcy5iZWZvcmUsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIHJlZjogc2V0QmVmb3JlUmVmLFxuICAgICAgICAgICAgICAgIHJvbGU6ICdub25lJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgYWZ0ZXI6IHNsb3QuYWx3YXlzKHByb3BzLmFmdGVyLCB7XG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICByZWY6IHNldEFmdGVyUmVmLFxuICAgICAgICAgICAgICAgIHJvbGU6ICdub25lJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgYmVmb3JlQ29udGFpbmVyOiBzbG90LmFsd2F5cyhwcm9wcy5iZWZvcmVDb250YWluZXIsIHtcbiAgICAgICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgICAgIHJvbGU6ICdub25lJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsZW1lbnRUeXBlOiAnZGl2J1xuICAgICAgICB9KSxcbiAgICAgICAgYWZ0ZXJDb250YWluZXI6IHNsb3QuYWx3YXlzKHByb3BzLmFmdGVyQ29udGFpbmVyLCB7XG4gICAgICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICAgICByb2xlOiAnbm9uZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICAgICAgfSksXG4gICAgICAgIGJlZm9yZUJ1ZmZlckhlaWdodDogaXNGdWxseUluaXRpYWxpemVkID8gY2FsY3VsYXRlQmVmb3JlKCkgOiAwLFxuICAgICAgICBhZnRlckJ1ZmZlckhlaWdodDogaXNGdWxseUluaXRpYWxpemVkID8gY2FsY3VsYXRlQWZ0ZXIoKSA6IDAsXG4gICAgICAgIHRvdGFsVmlydHVhbGl6ZXJIZWlnaHQ6IGlzRnVsbHlJbml0aWFsaXplZCA/IGNhbGN1bGF0ZVRvdGFsU2l6ZSgpIDogdmlydHVhbGl6ZXJMZW5ndGggKiBpdGVtU2l6ZSxcbiAgICAgICAgdmlydHVhbGl6ZXJTdGFydEluZGV4OiBhY3R1YWxJbmRleCxcbiAgICAgICAgYXhpcyxcbiAgICAgICAgYnVmZmVyU2l6ZSxcbiAgICAgICAgcmV2ZXJzZWQsXG4gICAgICAgIGNoaWxkU2l6ZXMsXG4gICAgICAgIGNoaWxkUHJvZ3Jlc3NpdmVTaXplc1xuICAgIH07XG59XG4iLCIgIGltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYXNzZXJ0U2xvdHMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmV4cG9ydCBjb25zdCByZW5kZXJWaXJ0dWFsaXplcl91bnN0YWJsZSA9IChzdGF0ZSk9PntcbiAgICBhc3NlcnRTbG90cyhzdGF0ZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX2pzeHMoUmVhY3QuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5iZWZvcmVDb250YWluZXIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmJlZm9yZSwge30pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0YXRlLnZpcnR1YWxpemVkQ2hpbGRyZW4sXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUuYWZ0ZXJDb250YWluZXIsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmFmdGVyLCB7fSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG5leHBvcnQgY29uc3QgcmVuZGVyVmlydHVhbGl6ZXJDaGlsZFBsYWNlaG9sZGVyID0gKGNoaWxkLCBpbmRleCk9PntcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfanN4KFJlYWN0LlN1c3BlbnNlLCB7XG4gICAgICAgIGZhbGxiYWNrOiBudWxsLFxuICAgICAgICBjaGlsZHJlbjogY2hpbGRcbiAgICB9LCBgZnVpLXZpcnR1YWxpemVyLXBsYWNlaG9sZGVyLSR7aW5kZXh9YCk7XG59O1xuIiwiaW1wb3J0IHsgdXNlVmlydHVhbGl6ZXJTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZVZpcnR1YWxpemVyU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyB1c2VWaXJ0dWFsaXplcl91bnN0YWJsZSB9IGZyb20gJy4vdXNlVmlydHVhbGl6ZXInO1xuaW1wb3J0IHsgcmVuZGVyVmlydHVhbGl6ZXJfdW5zdGFibGUgfSBmcm9tICcuL3JlbmRlclZpcnR1YWxpemVyJztcbi8qKlxuICogVmlydHVhbGl6ZXIgcHNldWRvLWNvbXBvbmVudCwgdGhpcyBmdW5jdGlvbmFsIHdyYXBwZXJcbiAqIHByb3ZpZGVzIGEgc2ltcGxlIGludGVyZmFjZSBmb3IgcmVkdWNpbmcgdGhlIHRvdGFsIG51bWJlclxuICogb2YgZWxlbWVudHMgcmVuZGVyZWQgYXQgb25lIHRpbWUgaW4gbGFyZ2UgbGlzdHMuXG4gKi8gZXhwb3J0IGNvbnN0IFZpcnR1YWxpemVyID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IHN0YXRlID0gdXNlVmlydHVhbGl6ZXJfdW5zdGFibGUocHJvcHMpO1xuICAgIHVzZVZpcnR1YWxpemVyU3R5bGVzX3Vuc3RhYmxlKHN0YXRlKTtcbiAgICByZXR1cm4gcmVuZGVyVmlydHVhbGl6ZXJfdW5zdGFibGUoc3RhdGUpO1xufTtcblZpcnR1YWxpemVyLmRpc3BsYXlOYW1lID0gJ1ZpcnR1YWxpemVyJztcbiIsIi8qKlxuICogTWljcm90YXNrIGRlYm91bmNlclxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxfRE9NX0FQSS9NaWNyb3Rhc2tfZ3VpZGVcbiAqIEBwYXJhbSBmbiAtIEZ1bmN0aW9uIHRvIGRlYm91bmNlXG4gKiBAcmV0dXJucyBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqLyBleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgICBsZXQgcGVuZGluZztcbiAgICByZXR1cm4gKCk9PntcbiAgICAgICAgaWYgKCFwZW5kaW5nKSB7XG4gICAgICAgICAgICBwZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpPT57XG4gICAgICAgICAgICAgICAgLy8gTmVlZCB0byBzZXQgcGVuZGluZyB0byBgZmFsc2VgIGJlZm9yZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIGlzIHJ1bi5cbiAgICAgICAgICAgICAgICAvLyBSZWFjdCBjYW4gYWN0dWFsbHkgaW50ZXJydXB0IHRoZSBmdW5jdGlvbiB3aGlsZSBpdCdzIHJ1bm5pbmchXG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCIvKipcbiAqIEZJWE1FIC0gVFMgMy44LzMuOSBkb24ndCBoYXZlIFJlc2l6ZU9ic2VydmVyIHR5cGVzIGJ5IGRlZmF1bHQsIG1vdmUgdGhpcyB0byBhIHNoYXJlZCB1dGlsaXR5IG9uY2Ugd2UgYnVtcCB0aGUgbWluYmFyXG4gKiBBIHV0aWxpdHkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIFJlc2l6ZU9ic2VydmVyIGZyb20gYSB0YXJnZXQgZG9jdW1lbnRcbiAqIEBwYXJhbSB0YXJnZXREb2N1bWVudCAtIGRvY3VtZW50IHRvIHVzZSB0byBjcmVhdGUgdGhlIFJlc2l6ZU9ic2VydmVyXG4gKiBAcGFyYW0gY2FsbGJhY2sgIC0gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1Jlc2l6ZU9ic2VydmVyL1Jlc2l6ZU9ic2VydmVyI2NhbGxiYWNrXG4gKiBAcmV0dXJucyBhIFJlc2l6ZU9ic2VydmVyIGluc3RhbmNlIG9yIG51bGwgaWYgdGhlIGdsb2JhbCBkb2VzIG5vdCBleGlzdCBvbiB0aGUgZG9jdW1lbnRcbiAqLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzaXplT2JzZXJ2ZXJGcm9tRG9jdW1lbnQodGFyZ2V0RG9jdW1lbnQsIGNhbGxiYWNrKSB7XG4gICAgdmFyIF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldztcbiAgICBpZiAoISh0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldyA9IHRhcmdldERvY3VtZW50LmRlZmF1bHRWaWV3KSA9PT0gbnVsbCB8fCBfdGFyZ2V0RG9jdW1lbnRfZGVmYXVsdFZpZXcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90YXJnZXREb2N1bWVudF9kZWZhdWx0Vmlldy5SZXNpemVPYnNlcnZlcikpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBuZXcgdGFyZ2V0RG9jdW1lbnQuZGVmYXVsdFZpZXcuUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spO1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRmx1ZW50X3Vuc3RhYmxlIGFzIHVzZUZsdWVudCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1zaGFyZWQtY29udGV4dHMnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICcuLi91dGlsaXRpZXMvZGVib3VuY2UnO1xuaW1wb3J0IHsgY3JlYXRlUmVzaXplT2JzZXJ2ZXJGcm9tRG9jdW1lbnQgfSBmcm9tICcuLi91dGlsaXRpZXMvY3JlYXRlUmVzaXplT2JzZXJ2ZXJGcm9tRG9jdW1lbnQnO1xuLyoqXG4gKiB1c2VSZXNpemVPYnNlcnZlclJlZl91bnN0YWJsZSBzaW1wbGlmaWVzIHJlc2l6ZSBvYnNlcnZlciBjb25uZWN0aW9uIGFuZCBlbnN1cmVzIGRlYm91bmNlL2NsZWFudXBcbiAqLyBleHBvcnQgY29uc3QgdXNlUmVzaXplT2JzZXJ2ZXJSZWZfdW5zdGFibGUgPSAocmVzaXplQ2FsbGJhY2spPT57XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCBjb250YWluZXIgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgLy8gdGhlIGhhbmRsZXIgZm9yIHJlc2l6ZSBvYnNlcnZlclxuICAgIC8vIFRPRE86IGV4Y2x1ZGUgdHlwZXMgZnJvbSB0aGlzIGxpbnQgcnVsZTogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9mbHVlbnR1aS9pc3N1ZXMvMzEyODZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgY29uc3QgaGFuZGxlUmVzaXplID0gZGVib3VuY2UoKGVudHJpZXMsIG9ic2VydmVyKT0+e1xuICAgICAgICByZXNpemVDYWxsYmFjayhlbnRyaWVzLCBvYnNlcnZlciwgY29udGFpbmVyKTtcbiAgICB9KTtcbiAgICAvLyBLZWVwIHRoZSByZWZlcmVuY2Ugb2YgUmVzaXplT2JzZXJ2ZXIgaW4gdGhlIHN0YXRlLCBhcyBpdCBzaG91bGQgbGl2ZSB0aHJvdWdoIHJlbmRlcnNcbiAgICBjb25zdCBbcmVzaXplT2JzZXJ2ZXIsIHNldFJlc2l6ZU9ic2VydmVyXSA9IFJlYWN0LnVzZVN0YXRlKCgpPT5jcmVhdGVSZXNpemVPYnNlcnZlckZyb21Eb2N1bWVudCh0YXJnZXREb2N1bWVudCwgaGFuZGxlUmVzaXplKSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIC8vIFVwZGF0ZSBvdXIgc3RhdGUgd2hlbiByZXNpemVDYWxsYmFjayBjaGFuZ2VzXG4gICAgICAgIGNvbnRhaW5lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIgPT09IG51bGwgfHwgcmVzaXplT2JzZXJ2ZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgc2V0UmVzaXplT2JzZXJ2ZXIoKCk9PmNyZWF0ZVJlc2l6ZU9ic2VydmVyRnJvbURvY3VtZW50KHRhcmdldERvY3VtZW50LCBoYW5kbGVSZXNpemUpKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW1xuICAgICAgICByZXNpemVDYWxsYmFjayxcbiAgICAgICAgdGFyZ2V0RG9jdW1lbnRcbiAgICBdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBjb250YWluZXIuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICByZXNpemVPYnNlcnZlciA9PT0gbnVsbCB8fCByZXNpemVPYnNlcnZlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbXSk7XG4gICAgY29uc3Qgc2Nyb2xsUmVmID0gUmVhY3QudXNlQ2FsbGJhY2soKGluc3RhbmNlKT0+e1xuICAgICAgICBpZiAoY29udGFpbmVyLmN1cnJlbnQgIT09IGluc3RhbmNlKSB7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXNpemVPYnNlcnZlciA9PT0gbnVsbCB8fCByZXNpemVPYnNlcnZlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGNvbnRhaW5lci5jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5jdXJyZW50ID0gaW5zdGFuY2U7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXNpemVPYnNlcnZlciA9PT0gbnVsbCB8fCByZXNpemVPYnNlcnZlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIuY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHJlc2l6ZU9ic2VydmVyXG4gICAgXSk7XG4gICAgcmV0dXJuIHNjcm9sbFJlZjtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVPYnNlcnZlclJlZl91bnN0YWJsZSB9IGZyb20gJy4vdXNlUmVzaXplT2JzZXJ2ZXJSZWYnO1xuLyoqXG4gKiBSZWFjdCBob29rIHRoYXQgbWVhc3VyZXMgdmlydHVhbGl6ZWQgc3BhY2UgYmFzZWQgb24gYSBzdGF0aWMgc2l6ZSB0byBlbnN1cmUgb3B0aW1pemVkIHZpcnR1YWxpemF0aW9uIGxlbmd0aC5cbiAqLyBleHBvcnQgY29uc3QgdXNlU3RhdGljVmlydHVhbGl6ZXJNZWFzdXJlID0gKHZpcnR1YWxpemVyUHJvcHMpPT57XG4gICAgY29uc3QgeyBkZWZhdWx0SXRlbVNpemUsIGRpcmVjdGlvbiA9ICd2ZXJ0aWNhbCcgfSA9IHZpcnR1YWxpemVyUHJvcHM7XG4gICAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgICAgIHZpcnR1YWxpemVyTGVuZ3RoOiAwLFxuICAgICAgICBidWZmZXJTaXplOiAwLFxuICAgICAgICBidWZmZXJJdGVtczogMFxuICAgIH0pO1xuICAgIGNvbnN0IHsgdmlydHVhbGl6ZXJMZW5ndGgsIGJ1ZmZlckl0ZW1zLCBidWZmZXJTaXplIH0gPSBzdGF0ZTtcbiAgICBjb25zdCByZXNpemVDYWxsYmFjayA9IFJlYWN0LnVzZUNhbGxiYWNrKChfZW50cmllcywgLy8gVE9ETzogZXhjbHVkZSB0eXBlcyBmcm9tIHRoaXMgbGludCBydWxlOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2ZsdWVudHVpL2lzc3Vlcy8zMTI4NlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICBfb2JzZXJ2ZXIsIHNjcm9sbFJlZik9PntcbiAgICAgICAgaWYgKCEoc2Nyb2xsUmVmID09PSBudWxsIHx8IHNjcm9sbFJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Nyb2xsUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyU2l6ZSA9IGRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IHNjcm9sbFJlZiA9PT0gbnVsbCB8fCBzY3JvbGxSZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCA6IHNjcm9sbFJlZiA9PT0gbnVsbCB8fCBzY3JvbGxSZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICAvKlxuICAgICAgICogTnVtYmVyIG9mIGl0ZW1zIHJlcXVpcmVkIHRvIGNvdmVyIHZpZXdwb3J0LlxuICAgICAgICovIGNvbnN0IGxlbmd0aCA9IE1hdGguY2VpbChjb250YWluZXJTaXplIC8gZGVmYXVsdEl0ZW1TaXplICsgMSk7XG4gICAgICAgIC8qXG4gICAgICAgKiBOdW1iZXIgb2YgaXRlbXMgdG8gYXBwZW5kIGF0IGVhY2ggZW5kLCBpLmUuICdwcmVsb2FkJyBlYWNoIHNpZGUgYmVmb3JlIGVudGVyaW5nIHZpZXcuXG4gICAgICAgKi8gY29uc3QgbmV3QnVmZmVySXRlbXMgPSBNYXRoLm1heChNYXRoLmZsb29yKGxlbmd0aCAvIDQpLCAyKTtcbiAgICAgICAgLypcbiAgICAgICAqIFRoaXMgaXMgaG93IGZhciB3ZSBkZXZpYXRlIGludG8gdGhlIGJ1ZmZlckl0ZW1zIHRvIGRldGVjdCBhIHJlZHJhdy5cbiAgICAgICAqLyBjb25zdCBuZXdCdWZmZXJTaXplID0gTWF0aC5tYXgoTWF0aC5mbG9vcihsZW5ndGggLyA4ICogZGVmYXVsdEl0ZW1TaXplKSwgMSk7XG4gICAgICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gbGVuZ3RoICsgbmV3QnVmZmVySXRlbXMgKiAyICsgMTtcbiAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgdmlydHVhbGl6ZXJMZW5ndGg6IHRvdGFsTGVuZ3RoLFxuICAgICAgICAgICAgYnVmZmVySXRlbXM6IG5ld0J1ZmZlckl0ZW1zLFxuICAgICAgICAgICAgYnVmZmVyU2l6ZTogbmV3QnVmZmVyU2l6ZVxuICAgICAgICB9KTtcbiAgICB9LCBbXG4gICAgICAgIGRlZmF1bHRJdGVtU2l6ZSxcbiAgICAgICAgZGlyZWN0aW9uXG4gICAgXSk7XG4gICAgY29uc3Qgc2Nyb2xsUmVmID0gdXNlUmVzaXplT2JzZXJ2ZXJSZWZfdW5zdGFibGUocmVzaXplQ2FsbGJhY2spO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZpcnR1YWxpemVyTGVuZ3RoLFxuICAgICAgICBidWZmZXJJdGVtcyxcbiAgICAgICAgYnVmZmVyU2l6ZSxcbiAgICAgICAgc2Nyb2xsUmVmXG4gICAgfTtcbn07XG4iLCJpbXBvcnQge1xyXG4gICAgTWVudSxcclxuICAgIE1lbnVUcmlnZ2VyLFxyXG4gICAgVGFibGUsXHJcbiAgICBUYWJsZUJvZHksXHJcbiAgICBUYWJsZUNlbGwsXHJcbiAgICBUYWJsZUNvbHVtbkRlZmluaXRpb24sXHJcbiAgICBUYWJsZUNvbHVtblNpemluZ09wdGlvbnMsXHJcbiAgICBUYWJsZUhlYWRlcixcclxuICAgIFRhYmxlSGVhZGVyQ2VsbCxcclxuICAgIFRhYmxlUm93LFxyXG4gICAgVGFibGVSb3dJZCxcclxuICAgIFRhYmxlU2VsZWN0aW9uQ2VsbCxcclxuICAgIFRyZWUsXHJcbiAgICBUcmVlSXRlbSxcclxuICAgIG1ha2VTdHlsZXMsXHJcbiAgICB1c2VUYWJsZUNvbHVtblNpemluZ191bnN0YWJsZSxcclxuICAgIHVzZVRhYmxlRmVhdHVyZXMsXHJcbiAgICB1c2VUYWJsZVNlbGVjdGlvbixcclxufSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgQ2hldnJvbkRvd24yMFJlZ3VsYXIsIEZpbHRlcjIwUmVndWxhciB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtaWNvbnNcIjtcclxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IEZpbHRlck1lbnUgfSBmcm9tIFwiLi9GaWx0ZXJNZW51XCI7XHJcbmltcG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gXCIuL09wZXJhdG9yU2V0XCI7XHJcbmltcG9ydCB7IHVzZVdpbmRvd1dpZHRoIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZVdpbmRvd1dpZHRoXCI7XHJcblxyXG5pbXBvcnQgeyBWaXJ0dWFsaXplciwgdXNlU3RhdGljVmlydHVhbGl6ZXJNZWFzdXJlIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzL3Vuc3RhYmxlXCI7XHJcblxyXG4vKipcclxuICogV2UgbXVzdCBzZXQgc29tZSBzdHlsZXMgYXMgaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZsdWVudCB1aSBzdHlsZXMuXHJcbiAqL1xyXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHtcclxuICAgIHByb2plY3RzR3JpZDoge1xyXG4gICAgICAgIGhlaWdodDogXCIxMDAlXCIsXHJcbiAgICB9LFxyXG4gICAgZ3JpZEJvZHk6IHtcclxuICAgICAgICBoZWlnaHQ6IFwiOTUlXCIsXHJcbiAgICAgICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcclxuICAgICAgICAvLyBNb2JpbGVcclxuICAgICAgICBcIkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweClcIjoge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgdGFibGVSb3c6IHtcclxuICAgICAgICAvLyBTaG93IGEgbm9ybWFsIGN1cnNvciBvbiBob3ZlclxyXG4gICAgICAgIFwiJjpob3ZlclwiOiB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgLy8gTW9iaWxlIC0gaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHBhZGRpbmdcclxuICAgICAgICBcIkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweClcIjoge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcclxuICAgICAgICAgICAgd2lkdGg6IFwiMjNlbSAhaW1wb3J0YW50XCIsXHJcbiAgICAgICAgICAgIG1hcmdpblRvcDogXCIwICFpbXBvcnRhbnRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIFRhYmxldFxyXG4gICAgICAgIFwiQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweClcIjoge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcclxuICAgICAgICAgICAgd2lkdGg6IFwiMTAwJSAhaW1wb3J0YW50XCIsXHJcbiAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICAgIGhlaWdodDogXCJmaXQtY29udGVudFwiLFxyXG4gICAgICAgICAgICBnYXA6IFwiMWVtXCIsXHJcbiAgICAgICAgICAgIHBhZGRpbmdUb3A6IFwiMWVtXCIsXHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB0YWJsZUNlbGw6IHtcclxuICAgICAgICAvLyBNb2JpbGVcclxuICAgICAgICBcIkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpXCI6IHtcclxuICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4ICFpbXBvcnRhbnRcIixcclxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcclxuICAgICAgICAgICAgd2lkdGg6IFwiMTAwJSAhaW1wb3J0YW50XCIsXHJcbiAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCUgIWltcG9ydGFudFwiLFxyXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcclxuICAgICAgICAgICAgaGVpZ2h0OiBcImZpdC1jb250ZW50XCIsXHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBmaWx0ZXJJY29uQ29udGFpbmVyOiB7XHJcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXHJcbiAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcclxuICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcclxuICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxyXG4gICAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXHJcbiAgICAgICAgbWFyZ2luUmlnaHQ6IFwiMC44ZW1cIixcclxuICAgIH0sXHJcbn0pO1xyXG5cclxuLy8gSGVpZ2h0IG9mIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIDxWaXJ0dWFsaXplcj4gY29tcG9uZW50XHJcbmNvbnN0IElURU1fSEVJR0hUX1BYID0gNDQ7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgd2hpY2ggcmVuZGVycyBhIE5lc3RlZCBGbHVlbnQgVUkgVGFibGUuXHJcbiAqIFRoaXMgY29tcG9uZW50IGNhbiBiZSB1c2VkIGFzIGEgdGFibGUgdG8gZGlzcGxheSBkYXRhIGFzIHdlbGwgYXMgYSBsaXN0IG9mIHNlbGVjdGFibGUgaXRlbXMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gRmlsdGVyQ29udGVudFRhYmxlPFRSb3cgZXh0ZW5kcyB7IGtleTogc3RyaW5nIH0+KHtcclxuICAgIHRhYmxlTmFtZSxcclxuICAgIGl0ZW1zLFxyXG4gICAgY29sdW1ucyxcclxuICAgIHNlbGVjdGlvbk1vZGUsXHJcbiAgICBvblNlbGVjdGlvbkNoYW5nZWQsXHJcbiAgICBpbml0aWFsUm93U2VsZWN0aW9uLFxyXG4gICAgY29sdW1uU2l6aW5nT3B0aW9ucyxcclxufToge1xyXG4gICAgdGFibGVOYW1lOiBzdHJpbmc7XHJcbiAgICBpdGVtczogVFJvd1tdO1xyXG4gICAgY29sdW1uczogVGFibGVDb2x1bW5EZWZpbml0aW9uPFRSb3c+W107XHJcbiAgICBzZWxlY3Rpb25Nb2RlPzogXCJtdWx0aXNlbGVjdFwiIHwgXCJzaW5nbGVcIiB8IHVuZGVmaW5lZDtcclxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlZD86IChzZWxlY3Rpb246IFNldDxUYWJsZVJvd0lkPikgPT4gdm9pZDtcclxuICAgIGluaXRpYWxSb3dTZWxlY3Rpb24/OiBzdHJpbmdbXTtcclxuICAgIGNvbHVtblNpemluZ09wdGlvbnM/OiBUYWJsZUNvbHVtblNpemluZ09wdGlvbnM7XHJcbiAgICBzZXRJc1Byb2plY3ROZXR3b3JrT3JkZXJzR3JpZE1vZGFsT3Blbj86IChpc09wZW46IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgICBpc1Byb2plY3ROZXR3b3JrT3JkZXJzR3JpZE1vZGFsT3Blbj86IGJvb2xlYW47XHJcbn0pIHtcclxuICAgIC8qKiBUaGUgY29sdW1ucyBmb3IgdGhlIHRhYmxlLiAqL1xyXG4gICAgdHlwZSBUYWJsZUNvbHVtbklkID0gKHR5cGVvZiBjb2x1bW5zKVtudW1iZXJdW1wiY29sdW1uSWRcIl07XHJcblxyXG4gICAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XHJcblxyXG4gICAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPFNldDxUYWJsZVJvd0lkPj4obmV3IFNldChpbml0aWFsUm93U2VsZWN0aW9uID8/IFtdKSk7XHJcblxyXG4gICAgY29uc3QgW2NvbHVtbkZpbHRlcnMsIHNldENvbHVtbkZpbHRlcnNdID0gdXNlU3RhdGU8Q29sdW1uRmlsdGVyPFRhYmxlQ29sdW1uSWQ+W10+KFtdKTtcclxuICAgIGNvbnN0IFtvcGVuRmlsdGVyTWVudUlkLCBzZXRPcGVuRmlsdGVyTWVudUlkXSA9IHVzZVN0YXRlPFRhYmxlQ29sdW1uSWQgfCB1bmRlZmluZWQ+KCk7XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0aW9uTW9kZUVuYWJsZWQgPSBzZWxlY3Rpb25Nb2RlICE9PSB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB1c2VXaW5kb3dXaWR0aCgpO1xyXG5cclxuICAgIC8vIEFueSBkZXZpY2Ugc21hbGxlciB0aGFuIGEgcmVndWxhciBzY3JlZW4gMTAyNHB4XHJcbiAgICBjb25zdCBpc01vYmlsZSA9IHdpbmRvd1dpZHRoIDwgNzY4O1xyXG4gICAgY29uc3Qgbm90TmF0aXZlU2NyZWVuU2l6ZSA9IHdpbmRvd1dpZHRoIDwgMTAyNDtcclxuXHJcbiAgICBjb25zdCB7IHZpcnR1YWxpemVyTGVuZ3RoLCBidWZmZXJJdGVtcywgYnVmZmVyU2l6ZSwgc2Nyb2xsUmVmIH0gPSB1c2VTdGF0aWNWaXJ0dWFsaXplck1lYXN1cmUoe1xyXG4gICAgICAgIGRlZmF1bHRJdGVtU2l6ZTogSVRFTV9IRUlHSFRfUFgsXHJcbiAgICB9KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY3Vyc2l2ZWx5IGdldHMgYWxsIHRoZSBpdGVtcyBpbiB0aGUgdHJlZS5cclxuICAgICAqIEBwYXJhbSByb3dzIFRoZSByb3dzIHRvIGdldCB0aGUgaXRlbXMgZnJvbS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBpdGVtcyBpbiB0aGUgdHJlZS5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZ2V0QWxsSXRlbXMocm93czogVFJvd1tdKTogVFJvd1tdIHtcclxuICAgICAgICByZXR1cm4gcm93cy5mbGF0TWFwKChyb3cpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFtyb3ddO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyBhIGN1c3RvbSBob29rIHdoaWNoIHByb3ZpZGVzIHRoZSB0YWJsZSBmZWF0dXJlcy5cclxuICAgICAqIFlvdSBhcmUgYWJsZSB0byBzZXQgdGhlIHNlbGVjdGlvbiBtb2RlIGFuZCBwcm92aWRlIHRoZSByZXF1aXJlZCBwcm9wcyBmb3IgdGhlIHNlbGVjdGlvbi5cclxuICAgICAqIFRoaXMgYWxsb3dzIGZvciB1c2Ugb2Ygc2VsZWN0aW9uIHdpdGhpbiB0aGUgdHJlZSBzdHJ1Y3R1cmUsIGFzIHRoZSByb3cgaWQgaXMgdGhlIGl0ZW0gaWQgYW5kIG5vdCB0aGUgZ3JvdXAgaWQuXHJcbiAgICAgKiBUaGlzIGVuYWJsZXMgc2VsZWN0aW9uIG9mIGluZGl2aWR1YWwgaXRlbXMgd2l0aGluIGEgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHtcclxuICAgICAgICBnZXRSb3dzLFxyXG4gICAgICAgIHNlbGVjdGlvbjogeyBhbGxSb3dzU2VsZWN0ZWQsIHNvbWVSb3dzU2VsZWN0ZWQsIHRvZ2dsZUFsbFJvd3MsIHRvZ2dsZVJvdywgaXNSb3dTZWxlY3RlZCB9LFxyXG4gICAgICAgIGNvbHVtblNpemluZ191bnN0YWJsZSxcclxuICAgICAgICB0YWJsZVJlZixcclxuICAgIH0gPSB1c2VUYWJsZUZlYXR1cmVzKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1ucyxcclxuICAgICAgICAgICAgaXRlbXM6IGdldEFsbEl0ZW1zKGl0ZW1zKSxcclxuICAgICAgICAgICAgZ2V0Um93SWQ6IChpdGVtKSA9PiBpdGVtPy5rZXkgPz8gXCJcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFtcclxuICAgICAgICAgICAgLi4uKHNlbGVjdGlvbk1vZGVFbmFibGVkXHJcbiAgICAgICAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZVRhYmxlU2VsZWN0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlOiBzZWxlY3Rpb25Nb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IHNlbGVjdGVkUm93cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5nZTogKF8sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRSb3dzKGRhdGEuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlZD8uKGRhdGEuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICA6IChbXSBhcyBhbnkpKSxcclxuICAgICAgICAgICAgdXNlVGFibGVDb2x1bW5TaXppbmdfdW5zdGFibGUoe1xyXG4gICAgICAgICAgICAgICAgY29sdW1uU2l6aW5nT3B0aW9ucyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBNYXAgdGhlIHJvd3MgdG8gaW5jbHVkZSB0aGUgc2VsZWN0aW9uIHByb3BzLlxyXG4gICAgY29uc3Qgcm93cyA9IGdldFJvd3MoKHJvdykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNSb3dTZWxlY3RlZChyb3cucm93SWQpO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5yb3csXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB0b2dnbGVSb3coZSwgcm93LnJvd0lkKSxcclxuICAgICAgICAgICAgb25LZXlEb3duOiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIiBcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0b2dnbGVSb3coZSwgcm93LnJvd0lkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGlvbk1vZGVFbmFibGVkID8gc2VsZWN0ZWQgOiBmYWxzZSxcclxuICAgICAgICAgICAgYXBwZWFyYW5jZTogc2VsZWN0ZWQgPyAoXCJicmFuZFwiIGFzIGNvbnN0KSA6IChcIm5vbmVcIiBhcyBjb25zdCksXHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIHRoZSB0YWJsZSBub3QgYmVpbmcgYWJsZSB0byBiZSBzZWxlY3RlZCB3aXRoIHRoZSBzcGFjZWJhci5cclxuICAgICAqIFRoaXMgd2lsbCBhbGxvdyB0aGUgdGFibGUgdG8gYmUgc2VsZWN0ZWQgd2l0aCB0aGUgc3BhY2ViYXIuXHJcbiAgICAgKiBAcGFyYW0gZSBUaGUga2V5ZG93biBldmVudC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgdG9nZ2xlQWxsS2V5ZG93biA9IFJlYWN0LnVzZUNhbGxiYWNrKFxyXG4gICAgICAgIChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09IFwiIFwiKSB7XHJcbiAgICAgICAgICAgICAgICB0b2dnbGVBbGxSb3dzKGUpO1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBbdG9nZ2xlQWxsUm93c11cclxuICAgICk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIHRoZSBmaWx0ZXIgdG8gYSByb3cuXHJcbiAgICAgKiBAcGFyYW0gcm93IFRoZSByb3cgdG8gYXBwbHkgdGhlIGZpbHRlciB0by5cclxuICAgICAqIEBwYXJhbSBjb2x1bW5GaWx0ZXJzIFRoZSBjb2x1bW4gZmlsdGVycyB0byBhcHBseS5cclxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJvdyBtYXRjaGVzIHRoZSBmaWx0ZXIuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGFwcGx5RmlsdGVyVG9Sb3cgPSAocm93OiBUUm93LCBjb2x1bW5GaWx0ZXJzOiBDb2x1bW5GaWx0ZXI8VGFibGVDb2x1bW5JZD5bXSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBjb2x1bW5GaWx0ZXJzLmV2ZXJ5KChmaWx0ZXIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByb3dbZmlsdGVyLmNvbHVtbk5hbWVdO1xyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIENvbXBhcmVzIHR3byBzdHJpbmdzIGFzIGxvd2VyY2FzZS5cclxuICAgICAgICAgICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gZmlsdGVyVmFsdWUgVGhlIGZpbHRlciB2YWx1ZSB0byBjb21wYXJlLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gY29tcGFyZUZ1bmN0aW9uIFRoZSBjb21wYXJlIGZ1bmN0aW9uIHRvIHVzZS5cclxuICAgICAgICAgICAgICogQHJldHVybnMgV2hldGhlciB0aGUgc3RyaW5ncyBtYXRjaC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVTdHJpbmdzID0gKFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJWYWx1ZTogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgY29tcGFyZUZ1bmN0aW9uOiAodmFsdWU6IHN0cmluZywgZmlsdGVyVmFsdWU6IHN0cmluZykgPT4gYm9vbGVhblxyXG4gICAgICAgICAgICApID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAmJiBjb21wYXJlRnVuY3Rpb24odmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLCBmaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLm9wZXJhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiRXF1YWxzXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBmaWx0ZXIudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiTm90IEVxdWFsc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gZmlsdGVyLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNvbnRhaW5zXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVTdHJpbmdzKHZhbHVlLCBmaWx0ZXIudmFsdWUsICh2YWx1ZSwgZmlsdGVyVmFsdWUpID0+IHZhbHVlLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiRG9lcyBOb3QgQ29udGFpblwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29tcGFyZVN0cmluZ3ModmFsdWUsIGZpbHRlci52YWx1ZSwgKHZhbHVlLCBmaWx0ZXJWYWx1ZSkgPT4gdmFsdWUuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJTdGFydHMgV2l0aFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlU3RyaW5ncyh2YWx1ZSwgZmlsdGVyLnZhbHVlLCAodmFsdWUsIGZpbHRlcikgPT4gdmFsdWUuc3RhcnRzV2l0aChmaWx0ZXIpKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJFbmRzIFdpdGhcIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZVN0cmluZ3ModmFsdWUsIGZpbHRlci52YWx1ZSwgKHZhbHVlLCBmaWx0ZXIpID0+IHZhbHVlLmVuZHNXaXRoKGZpbHRlcikpO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkdyZWF0ZXIgVGhhblwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgdW5rbm93biBhcyBudW1iZXIpID4gZmlsdGVyLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkxlc3MgVGhhblwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgdW5rbm93biBhcyBudW1iZXIpIDwgZmlsdGVyLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkdyZWF0ZXIgVGhhbiBPciBFcXVhbCBUb1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgdW5rbm93biBhcyBudW1iZXIpID49IGZpbHRlci52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJMZXNzIFRoYW4gT3IgRXF1YWwgVG9cIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHZhbHVlIGFzIHVua25vd24gYXMgbnVtYmVyKSA8PSBmaWx0ZXIudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiQWZ0ZXJcIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPyBEYXRlSGVscGVyLm5ld0RhdGVGcm9tRGF0ZU9ubHkodmFsdWUpID4gZmlsdGVyLnZhbHVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiQmVmb3JlXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gRGF0ZUhlbHBlci5uZXdEYXRlRnJvbURhdGVPbmx5KHZhbHVlKSA8IGZpbHRlci52YWx1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIk9uIE9yIEFmdGVyXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gRGF0ZUhlbHBlci5uZXdEYXRlRnJvbURhdGVPbmx5KHZhbHVlKSA+PSBmaWx0ZXIudmFsdWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJPbiBPciBCZWZvcmVcIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPyBEYXRlSGVscGVyLm5ld0RhdGVGcm9tRGF0ZU9ubHkodmFsdWUpIDw9IGZpbHRlci52YWx1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlcnMgdGhlIGZpbHRlciBtZW51IGZvciBhIGNvbHVtbi5cclxuICAgICAqIEBwYXJhbSBjb2x1bW4gVGhlIGNvbHVtbiB0byByZW5kZXIgdGhlIGZpbHRlciBtZW51IGZvci5cclxuICAgICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBmaWx0ZXIgbWVudS5cclxuICAgICAqL1xyXG4gICAgY29uc3QgcmVuZGVyRmlsdGVyTWVudSA9IChjb2x1bW46IFRhYmxlQ29sdW1uRGVmaW5pdGlvbjxUUm93PikgPT4ge1xyXG4gICAgICAgIGlmIChjb2x1bW4uY29sdW1uSWQgPT09IFwiYWN0aW9uc1wiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxGaWx0ZXJNZW51XHJcbiAgICAgICAgICAgICAgICB0YWJsZU5hbWU9e3RhYmxlTmFtZX1cclxuICAgICAgICAgICAgICAgIHNldE9wZW5GaWx0ZXJNZW51SWQ9e3NldE9wZW5GaWx0ZXJNZW51SWR9XHJcbiAgICAgICAgICAgICAgICBzZXRDb2x1bW5GaWx0ZXJzPXtzZXRDb2x1bW5GaWx0ZXJzfVxyXG4gICAgICAgICAgICAgICAgY29sdW1uRmlsdGVycz17Y29sdW1uRmlsdGVyc31cclxuICAgICAgICAgICAgICAgIGNvbHVtbj17Y29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZmxhdHRlbmVkSXRlbXM9e2dldEFsbEl0ZW1zKGl0ZW1zKX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlcnMgYSBsZWFmIGluIHRoZSB0cmVlLlxyXG4gICAgICogQHBhcmFtIHJvdyBUaGUgcm93IHRvIHJlbmRlci5cclxuICAgICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBsZWFmLlxyXG4gICAgICovXHJcbiAgICBjb25zdCByZW5kZXJMZWFmID0gKHJvdzogVFJvdykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgaXRlbSwgc2VsZWN0ZWQsIG9uQ2xpY2ssIG9uS2V5RG93biwgYXBwZWFyYW5jZSB9ID0gcm93cy5maW5kKChyKSA9PiByLnJvd0lkID09PSByb3cua2V5KSE7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxUcmVlSXRlbSBpdGVtVHlwZT1cImxlYWZcIiBrZXk9e3Jvdy5rZXl9PlxyXG4gICAgICAgICAgICAgICAgPFRhYmxlUm93XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtyb3cua2V5fVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT17YXBwZWFyYW5jZX1cclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy50YWJsZVJvd31cclxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3QtaWQ9e1widGFibGUtcm93XCJ9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3NlbGVjdGlvbk1vZGVFbmFibGVkICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VsZWN0aW9uQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17c2VsZWN0aW9uTW9kZSA9PT0gXCJtdWx0aXNlbGVjdFwiID8gXCJjaGVja2JveFwiIDogXCJyYWRpb1wifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17c2VsZWN0ZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveEluZGljYXRvcj17eyBcImFyaWEtbGFiZWxcIjogXCJTZWxlY3Qgcm93XCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbj17c2VsZWN0aW9uTW9kZSA9PT0gdW5kZWZpbmVkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY29sdW1uIGlzIHRoZSBhY3Rpb25zIGNvbHVtbiBhbmQgdGhlIGNlbGwgaXMgdW5kZWZpbmVkLCB0aGVuIGRvIG5vdCByZW5kZXIgdGhlIGNlbGwgLSBmb3IgbW9iaWxlIGRldmljZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3ROYXRpdmVTY3JlZW5TaXplICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLmNvbHVtbklkID09PSBcImFjdGlvbnNcIiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5yZW5kZXJDZWxsKGl0ZW0pID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVDZWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb2x1bW4uY29sdW1uSWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmNvbHVtblNpemluZ191bnN0YWJsZS5nZXRUYWJsZUNlbGxQcm9wcyhjb2x1bW4uY29sdW1uSWQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRhYmxlQ2VsbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bm90TmF0aXZlU2NyZWVuU2l6ZSA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IFwiNHB4XCIsIHdpZHRoOiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb2x1bW4ucmVuZGVySGVhZGVyQ2VsbCgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbi5yZW5kZXJDZWxsKGl0ZW0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4ucmVuZGVyQ2VsbChpdGVtKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICA8L1RhYmxlUm93PlxyXG4gICAgICAgICAgICA8L1RyZWVJdGVtPlxyXG4gICAgICAgICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgIHJlZj17dGFibGVSZWZ9XHJcbiAgICAgICAgICAgIHsuLi5jb2x1bW5TaXppbmdfdW5zdGFibGUuZ2V0VGFibGVQcm9wcygpfVxyXG4gICAgICAgICAgICAvLyBUaGlzIG11c3QgYmUgYWZ0ZXIgdGhlIHRhYmxlIHByb3BzIC0gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgb3ZlcnJpZGRlblxyXG4gICAgICAgICAgICBub05hdGl2ZUVsZW1lbnRzPXshaXNNb2JpbGV9XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnByb2plY3RzR3JpZH1cclxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXt1bmRlZmluZWR9XHJcbiAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgdHJpY2sgdG8gYWRkIHRoZSBjbGljayBhbmQgaG92ZXIgc3R5bGVzIHdpdGhvdXQgYWN0dWFsbHkgdXNpbmcgdGhlIHNvcnRpbmcgZnVuY3Rpb25hbGl0eVxyXG4gICAgICAgICAgICBzb3J0YWJsZVxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPFRhYmxlSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPFRhYmxlUm93PlxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWxlY3Rpb25Nb2RlRW5hYmxlZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZVNlbGVjdGlvbkNlbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FsbFJvd3NTZWxlY3RlZCA/IHRydWUgOiBzb21lUm93c1NlbGVjdGVkID8gXCJtaXhlZFwiIDogZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0b2dnbGVBbGxSb3dzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXt0b2dnbGVBbGxLZXlkb3dufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJbmRpY2F0b3I9e3sgXCJhcmlhLWxhYmVsXCI6IFwiU2VsZWN0IGFsbCByb3dzIFwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRkZW49e3NlbGVjdGlvbk1vZGUgIT09IFwibXVsdGlzZWxlY3RcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbHVtbi5jb2x1bW5JZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW49e29wZW5GaWx0ZXJNZW51SWQgPT09IGNvbHVtbi5jb2x1bW5JZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uaW5nPVwiYmVsb3ctZW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uT3BlbkNoYW5nZT17KF8sIGRhdGEpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3BlbkZpbHRlck1lbnVJZChkYXRhLm9wZW4gPyAoY29sdW1uLmNvbHVtbklkIGFzIFRhYmxlQ29sdW1uSWQpIDogdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudVRyaWdnZXIgZGlzYWJsZUJ1dHRvbkVuaGFuY2VtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZUhlYWRlckNlbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb2x1bW4uY29sdW1uSWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5jb2x1bW5TaXppbmdfdW5zdGFibGUuZ2V0VGFibGVIZWFkZXJDZWxsUHJvcHMoY29sdW1uLmNvbHVtbklkKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb2x1bW4ucmVuZGVySGVhZGVyQ2VsbCgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1uRmlsdGVycy5zb21lKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5OYW1lID09PSBjb2x1bW4uY29sdW1uSWQpICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWx0ZXIyMFJlZ3VsYXIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwgZmxleEdyb3c6IDEgfX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbi5jb2x1bW5JZCAhPT0gXCJhY3Rpb25zXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmZpbHRlckljb25Db250YWluZXJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bjIwUmVndWxhciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PjwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGFibGVIZWFkZXJDZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51VHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJGaWx0ZXJNZW51KGNvbHVtbil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudT5cclxuICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4R3JvdzogMSB9fSAvPlxyXG4gICAgICAgICAgICAgICAgPC9UYWJsZVJvdz5cclxuICAgICAgICAgICAgPC9UYWJsZUhlYWRlcj5cclxuICAgICAgICAgICAgPFRhYmxlQm9keSBjbGFzc05hbWU9e3N0eWxlcy5ncmlkQm9keX0gcmVmPXtzY3JvbGxSZWZ9PlxyXG4gICAgICAgICAgICAgICAgPFRyZWU+XHJcbiAgICAgICAgICAgICAgICAgICAgPFZpcnR1YWxpemVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bUl0ZW1zPXtpdGVtcy5sZW5ndGh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxpemVyTGVuZ3RoPXt2aXJ0dWFsaXplckxlbmd0aH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVySXRlbXM9e2J1ZmZlckl0ZW1zfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJTaXplPXtidWZmZXJTaXplfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtU2l6ZT17SVRFTV9IRUlHSFRfUFh9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7KGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXBwbHlGaWx0ZXJUb1JvdyhpdGVtLCBjb2x1bW5GaWx0ZXJzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFbHNlOyByZW5kZXIgdGhlIHJvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlckxlYWYoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9WaXJ0dWFsaXplcj5cclxuICAgICAgICAgICAgICAgIDwvVHJlZT5cclxuICAgICAgICAgICAgPC9UYWJsZUJvZHk+XHJcbiAgICAgICAgPC9UYWJsZT5cclxuICAgICk7XHJcbn1cclxuIiwiaW1wb3J0IHsgQ2FyZCwgQ2FyZFByb3BzLCBUYWJsZUNvbHVtbkRlZmluaXRpb24sIFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucyB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRmlsdGVyQ29udGVudFRhYmxlIH0gZnJvbSBcIi4vRmlsdGVyQ29udGVudFRhYmxlXCI7XHJcblxyXG4vKiogQSBncmlkIG9mIGNhcmRzIHRoYXQgZGlzcGxheSB0YWJsZSBpdGVtcyAqL1xyXG5leHBvcnQgZnVuY3Rpb24gR3JpZDxUUm93IGV4dGVuZHMgeyBrZXk6IHN0cmluZyB9Pih7XHJcbiAgICB0YWJsZU5hbWUsXHJcbiAgICB0eXBlLFxyXG4gICAgaXRlbXMsXHJcbiAgICBjb2x1bW5zLFxyXG4gICAgYWRkaXRpb25hbENhcmRQcm9wcyxcclxuICAgIGdldENvbHVtblNpemluZ09wdGlvbnMsXHJcbn06IHtcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nO1xyXG4gICAgdHlwZTogXCJpbmxpbmVcIiB8IFwibW9kYWxcIjtcclxuICAgIGNvbHVtbnM6IFRhYmxlQ29sdW1uRGVmaW5pdGlvbjxUUm93PltdO1xyXG4gICAgaXRlbXM6IFRSb3dbXTtcclxuICAgIGFkZGl0aW9uYWxDYXJkUHJvcHM/OiBDYXJkUHJvcHM7XHJcbiAgICBnZXRDb2x1bW5TaXppbmdPcHRpb25zOiAoY2FyZFdpZHRoOiBudW1iZXIpID0+IFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucztcclxufSkge1xyXG4gICAgY29uc3QgY2FyZFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgICBjb25zdCBbY29sdW1uU2l6aW5nT3B0aW9ucywgc2V0Q29sdW1uU2l6aW5nT3B0aW9uc10gPSB1c2VTdGF0ZTxUYWJsZUNvbHVtblNpemluZ09wdGlvbnMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblxyXG4gICAgLy8gVGhpcyBlZmZlY3Qgd2lsbCBjYWxjdWxhdGUgdGhlIGlkZWFsIHdpZHRoIG9mIHRoZSBjb2x1bW5zXHJcbiAgICAvLyBUaGUgdXNlTGF5b3V0RWZmZWN0IGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSBiZWZvcmUgdGhlIGNvbXBvbmVudCBpcyByZW5kZXJlZFxyXG4gICAgLy8gYW5kIHRvIGVuc3VyZSB0aGF0IHRoZSBjYXJkIHJlZiBpcyBub3QgdW5kZWZpbmVkXHJcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIFVzZSB0aGUgY2FyZCByZWYgdG8gY2FsY3VsYXRlIHRoZSBpZGVhbCB3aWR0aCBvZiB0aGUgY29sdW1uc1xyXG4gICAgICAgIGNvbnN0IGNhcmRXaWR0aCA9IGNhcmRSZWYuY3VycmVudD8uY2xpZW50V2lkdGg7XHJcblxyXG4gICAgICAgIGlmICghY2FyZFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldENvbHVtblNpemluZ09wdGlvbnMoZ2V0Q29sdW1uU2l6aW5nT3B0aW9ucyhjYXJkV2lkdGgpKTtcclxuICAgIH0sIFtjYXJkUmVmLmN1cnJlbnRdKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxDYXJkIHJlZj17Y2FyZFJlZn0gYXBwZWFyYW5jZT17dHlwZSA9PT0gXCJpbmxpbmVcIiA/IFwiZmlsbGVkXCIgOiBcInN1YnRsZVwifSB7Li4uYWRkaXRpb25hbENhcmRQcm9wc30+XHJcbiAgICAgICAgICAgIDxGaWx0ZXJDb250ZW50VGFibGVcclxuICAgICAgICAgICAgICAgIHRhYmxlTmFtZT17dGFibGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cclxuICAgICAgICAgICAgICAgIGNvbHVtblNpemluZ09wdGlvbnM9e2NvbHVtblNpemluZ09wdGlvbnN9XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9DYXJkPlxyXG4gICAgKTtcclxufVxyXG4iLCJpbXBvcnQgeyBDYWxsVG9BY3Rpb25CYXNlUGFnZSB9IGZyb20gXCIuLi9DYWxsVG9BY3Rpb25CYXNlUGFnZVwiO1xyXG5pbXBvcnQgeyBPcmRlciB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvT3JkZXJcIjtcclxuaW1wb3J0IHsgT3JkZXJTdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBPcmRlclN0YXRlQ29kZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9PcmRlclN0YXRlQ29kZVwiO1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCBEZWZhdWx0Um9vdFN0YXRlIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IENvbnRhY3RGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL0NvbnRhY3RGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgU3RyaW5nRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvU3RyaW5nRmllbGRcIjtcclxuaW1wb3J0IHsgSW1TcGlubmVyMiB9IGZyb20gXCJyZWFjdC1pY29ucy9pbVwiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgTG9va3VwRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvTG9va3VwRmllbGRcIjtcclxuaW1wb3J0IHsgRm9ybWF0dGluZ0hlbHBlciB9IGZyb20gXCIuLi8uLi9IZWxwZXJzL0Zvcm1hdHRpbmdIZWxwZXJcIjtcclxuaW1wb3J0IHsgUHJvZHVjdFR5cGVDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL1Byb2R1Y3RUeXBlQ29kZVwiO1xyXG5pbXBvcnQgeyBmcm9tTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9mcm9tTG9hZGluZ0RhdGFcIjtcclxuaW1wb3J0IHtcclxuICAgIEJ1dHRvbixcclxuICAgIERpYWxvZyxcclxuICAgIERpYWxvZ0JvZHksXHJcbiAgICBEaWFsb2dDb250ZW50LFxyXG4gICAgRGlhbG9nU3VyZmFjZSxcclxuICAgIERpYWxvZ1RpdGxlLFxyXG4gICAgRGlhbG9nVHJpZ2dlcixcclxuICAgIG1ha2VTdHlsZXMsXHJcbiAgICBjcmVhdGVUYWJsZUNvbHVtbixcclxuICAgIFRhYmxlQ2VsbExheW91dCxcclxuICAgIFRhYmxlQ29sdW1uRGVmaW5pdGlvbixcclxuICAgIFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucyxcclxuICAgIFRleHQsXHJcbn0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IERpc21pc3MyNFJlZ3VsYXIgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWljb25zXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IEZhVXNlciB9IGZyb20gXCJyZWFjdC1pY29ucy9mYVwiO1xyXG5pbXBvcnQgeyBCYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uLy4uL0VudW1zL0Jhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgdXNlV2luZG93V2lkdGggfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlV2luZG93V2lkdGhcIjtcclxuaW1wb3J0IHsgR3JpZCB9IGZyb20gXCIuLi9GaWx0ZXJDb250ZW50VGFibGUvR3JpZFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlckZvclJldHJpZXZlTXVsdGlwbGUgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL05ldHdvcmtPcmRlckZvclJldHJpZXZlTXVsdGlwbGVcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1uSWQgPSBcIkRlc2NyaXB0aW9uXCIgfCBcIlF1YW50aXR5XCIgfCBcIlRvdGFsIE5vbi1SZWN1cnJpbmdcIiB8IFwiVG90YWwgQW5udWFsIFJlbnRhbFwiIHwgXCJEZXRhaWxzXCI7XHJcblxyXG50eXBlIFJvdyA9IHtcclxuICAgIGtleTogc3RyaW5nO1xyXG4gICAgX2FkZGl0aW9uYWxJbmZvOiB7IHJlbGF0ZWRQcm9qZWN0OiBQcm9qZWN0IHwgbnVsbDsgcmVsYXRlZE5ldHdvcmtPcmRlcjogTmV0d29ya09yZGVyRm9yUmV0cmlldmVNdWx0aXBsZSB8IG51bGwgfTtcclxuXHJcbiAgICAvLyBJTVBPUlRBTlQ6IEFsbCBmaWVsZHMgaW4gVGFibGVDb2x1bW5JZCBtdXN0IGJlIHByZXNlbnQgaW4gUm93IGZvciB0aGUgZmlsdGVycyB0byB3b3JrIChiZWxvdylcclxuICAgIERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBRdWFudGl0eTogbnVtYmVyIHwgbnVsbDtcclxuICAgIFwiVG90YWwgTm9uLVJlY3VycmluZ1wiOiBudW1iZXIgfCBudWxsO1xyXG4gICAgXCJUb3RhbCBBbm51YWwgUmVudGFsXCI6IG51bWJlciB8IG51bGw7XHJcbiAgICBEZXRhaWxzOiBzdHJpbmc7XHJcbn07XHJcblxyXG4vKipcclxuICogU3R5bGVzIGZvciB0aGUgRGlhbG9nIGNvbXBvbmVudC5cclxuICovXHJcbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoe1xyXG4gICAgZGlhbG9nU3VyZmFjZToge1xyXG4gICAgICAgIHdpZHRoOiBcImF1dG9cIixcclxuICAgICAgICBtYXhXaWR0aDogXCI5MDBweFwiLFxyXG4gICAgICAgIGhlaWdodDogXCI1MGVtXCIsXHJcbiAgICB9LFxyXG4gICAgZGlhbG9nQm9keToge1xyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXHJcbiAgICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcclxuICAgIH0sXHJcbiAgICBkaWFsb2dUaXRsZToge1xyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXHJcbiAgICB9LFxyXG4gICAgZGlhbG9nQ29udGVudDogeyBkaXNwbGF5OiBcImZsZXhcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9LFxyXG59KTtcclxuXHJcbi8qIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBFZGl0IE9yZGVyIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IE9yZGVyc0VkaXRDb250ZW50ID0gKHByb3BzOiB7IGluaXRpYWxPcmRlcjogT3JkZXI7IG9uU2F2ZTogKCkgPT4gdm9pZCB9KSA9PiB7XHJcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHVzZVdpbmRvd1dpZHRoKCk7XHJcblxyXG4gICAgY29uc3Qgbm90TmF0aXZlU2NyZWVuU2l6ZSA9IHdpbmRvd1dpZHRoIDwgMTAyNDtcclxuXHJcbiAgICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcclxuICAgIGNvbnN0IGN1cnJlbnRseVNlbGVjdGVkT3JkZXIgPSBwcm9wcy5pbml0aWFsT3JkZXI7XHJcblxyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuICAgIGNvbnN0IG5ldHdvcmtPcmRlcnMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLm5ldHdvcmtPcmRlcnMpO1xyXG4gICAgY29uc3QgcHJvamVjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLnByb2plY3RzKTtcclxuXHJcbiAgICBjb25zdCBbb3JkZXJDb250YWN0LCBzZXRPcmRlckNvbnRhY3RdID0gdXNlU3RhdGU8Q29udGFjdEZvclJldHJpZXZhbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAgIGNvbnN0IFtvcmRlckZvcm1QZGYsIHNldE9yZGVyRm9ybVBkZl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgICBjb25zdCBbY2FsbFRvQWN0aW9uRGV0YWlscywgc2V0Q2FsbFRvQWN0aW9uRGV0YWlsc10gPSB1c2VTdGF0ZTxcclxuICAgICAgICB8IHtcclxuICAgICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgaWNvbjogc3RyaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIHwgdW5kZWZpbmVkXHJcbiAgICA+KCk7XHJcbiAgICBjb25zdCBbaXNMb2FkZWQsIHNldElzTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtmb3JtU3VibWl0QXR0ZW1wdGVkLCBzZXRGb3JtU3VibWl0QXR0ZW1wdGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtvcmRlckZvcm1Jc1Nob3duLCBzZXRPcmRlckZvcm1Jc1Nob3duXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuXHJcbiAgICBjb25zdCBpdGVtQmFzZWRPcmRlckxpbmVzID0gY3VycmVudGx5U2VsZWN0ZWRPcmRlci5vcmRlcl9kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAobGluZSkgPT4gbGluZS5wcm9kdWN0dHlwZWNvZGUgPT09IFByb2R1Y3RUeXBlQ29kZS5Qcm9kdWN0XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHByb2plY3RCYXNlZE9yZGVyTGluZXMgPSBjdXJyZW50bHlTZWxlY3RlZE9yZGVyLm9yZGVyX2RldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgIChsaW5lKSA9PiBsaW5lLnByb2R1Y3R0eXBlY29kZSA9PT0gUHJvZHVjdFR5cGVDb2RlW1wiUHJvamVjdC1CYXNlZCBTZXJ2aWNlXCJdXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IG9yZGVyTGluZXNUb1Nob3cgPSBbLi4uaXRlbUJhc2VkT3JkZXJMaW5lcywgLi4ucHJvamVjdEJhc2VkT3JkZXJMaW5lc107XHJcblxyXG4gICAgLy8gTWFyayB0aGUgY29tcG9uZW50IGFzIGxvYWRlZFxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBzZXRJc0xvYWRlZCh0cnVlKTtcclxuICAgIH0sIFtdKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIENvbnRhY3QgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBPcmRlciBJbmZvcm1hdGlvbiBwYW5lbC5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29udGFjdCA9IGNvbnRhY3RzLmRhdGEuZmluZCgoYykgPT4gYy5jb250YWN0aWQgPT09IGN1cnJlbnRseVNlbGVjdGVkT3JkZXIuX2Jpc3RlY2hfY29udGFjdF92YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICghY29udGFjdCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRPcmRlckNvbnRhY3QoY29udGFjdCk7XHJcbiAgICB9LCBbY29udGFjdHMubG9hZGluZ1N0YXR1c10pO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50bHlTZWxlY3RlZE9yZGVyLmJpc3RlY2hfb3JkZXJmb3JtPy5iaXN0ZWNoX29yZGVyZm9ybWlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXRyaWV2ZU9yZGVyRm9ybUluZm8oY3VycmVudGx5U2VsZWN0ZWRPcmRlci5iaXN0ZWNoX29yZGVyZm9ybT8uYmlzdGVjaF9vcmRlcmZvcm1pZClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghZGF0YS5iaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBwZGZCYXNlNjQgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5iaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuYmlzdGVjaF9wZGZiYXNlNjRmaWVsZDMsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5iaXN0ZWNoX3BkZmJhc2U2NGZpZWxkNCxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1LFxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgICAgICAgICAgICAgICAuam9pbihcIlwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICBzZXRPcmRlckZvcm1QZGYocGRmQmFzZTY0KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbaXNMb2FkZWRdKTtcclxuXHJcbiAgICAvLyBTZXQgdGhlIGNhbGwgdG8gYWN0aW9uIGRldGFpbHMgYmFzZWQgb24gdGhlIE9yZGVyIHN0YXR1cy5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRseVNlbGVjdGVkT3JkZXI/LnN0YXRlY29kZSA9PT0gT3JkZXJTdGF0ZUNvZGUuRnVsZmlsbGVkKSB7XHJcbiAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkRldGFpbHMoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiQ29tcGxldGVkXCIsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJZb3VyIG9yZGVyIGlzIGNvbXBsZXRlXCIsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcIi9vcmRlci1jYWxsLXRvLWFjdGlvbi1jb21wbGV0ZWQuc3ZnXCIsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoIChjdXJyZW50bHlTZWxlY3RlZE9yZGVyLnN0YXR1c2NvZGUpIHtcclxuICAgICAgICAgICAgY2FzZSBPcmRlclN0YXR1c0NvZGUuUGVuZGluZzoge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGV0YWlscyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiUGVuZGluZyBTaWduYXR1cmVcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBd2FpdGluZyBhdXRob3Jpc2VkIHNpZ25hdG9yeSB0byBwcm9ncmVzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246IFwiL29yZGVyLWNhbGwtdG8tYWN0aW9uLXBlbmRpbmctc2lnbmF0dXJlLnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhc2UgT3JkZXJTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl06IHtcclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkRldGFpbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkluIFByb2dyZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiT3VyIHRlYW0gaXMgd29ya2luZyBvbiB5b3VyIG9yZGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCIvb3JkZXItY2FsbC10by1hY3Rpb24taW4tcHJvZ3Jlc3Muc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FzZSBPcmRlclN0YXR1c0NvZGUuU2lnbmVkOiB7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxsVG9BY3Rpb25EZXRhaWxzKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJTaWduZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBbGwgc2lnbmF0dXJlcyBhcmUgY29tcGxldGUgLSB5b3VyIG9yZGVyIGlzIHJlYWR5IHRvIGJlIHByb2Nlc3NlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246IFwiL29yZGVyLWNhbGwtdG8tYWN0aW9uLXNpZ25lZC5zdmdcIixcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIE9yZGVyU3RhdHVzQ29kZVtcIk9uIEhvbGRcIl06IHtcclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkRldGFpbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIk9uIEhvbGRcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJZb3VyIG9yZGVyIGlzIG9uIGhvbGQgLSBhbiB1cGRhdGUgd2lsbCBiZSBwcm92aWRlZCBieSB0aGUgQmlzdGVjaCB0ZWFtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCIvb3JkZXItY2FsbC10by1hY3Rpb24tb24taG9sZC5zdmdcIixcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIE9yZGVyU3RhdHVzQ29kZS5Qcm9jZXNzaW5nOlxyXG4gICAgICAgICAgICBjYXNlIE9yZGVyU3RhdHVzQ29kZVtcIlByb2Nlc3NpbmcgQ29tcGxldGVcIl06IHtcclxuICAgICAgICAgICAgICAgIHNldENhbGxUb0FjdGlvbkRldGFpbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIlByb2Nlc3NpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJZb3VyIG9yZGVyIGlzIGJlaW5nIHByb2Nlc3NlZCBieSB0aGUgQmlzdGVjaCB0ZWFtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCIvb3JkZXItY2FsbC10by1hY3Rpb24tcHJvY2Vzc2luZy5zdmdcIixcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjYXNlIE9yZGVyU3RhdHVzQ29kZVtcIlByb2plY3QgT25ib2FyZGluZ1wiXToge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGV0YWlscyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiUHJvamVjdCBPbmJvYXJkaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBQcm9qZWN0IE1hbmFnZXIgaXMgcmV2aWV3aW5nIHRoaXMgb3JkZXIgYW5kIHdpbGwgYmUgaW4gdG91Y2ggc2hvcnRseSB0byBkaXNjdXNzIG5leHQgc3RlcHNcIixcclxuICAgICAgICAgICAgICAgICAgICBpY29uOiBcIi9vcmRlci1jYWxsLXRvLWFjdGlvbi1wcm9qZWN0LW9uYm9hcmRpbmcuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2FsbFRvQWN0aW9uRGV0YWlscyh7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCIvb3JkZXItY2FsbC10by1hY3Rpb24taW4tcHJvZ3Jlc3Muc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sIFtjdXJyZW50bHlTZWxlY3RlZE9yZGVyXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBPcmRlciBGb3JtIElGcmFtZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBPcmRlciBGb3JtIElGcmFtZS5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZ2V0T3JkZXJGb3JtSUZyYW1lID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICghb3JkZXJGb3JtUGRmKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8aWZyYW1lXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBtaW5IZWlnaHQ6IFwiMTAwJVwiLCB3aWR0aDogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgIHNyYz17YGRhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwke29yZGVyRm9ybVBkZn1gfVxyXG4gICAgICAgICAgICAgICAgYWxsb3dGdWxsU2NyZWVuPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJQREYgVmlld2VyXCJcclxuICAgICAgICAgICAgPjwvaWZyYW1lPlxyXG4gICAgICAgICk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKiBBbGwgb2YgdGhlIE9yZGVyIExpbmUgQ29sdW1uIGRlZmluaXRpb25zICovXHJcbiAgICBjb25zdCBvcmRlckxpbmVUYWJsZUNvbHVtbnM6IFRhYmxlQ29sdW1uRGVmaW5pdGlvbjxSb3c+W10gPSBbXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcIkRlc2NyaXB0aW9uXCIgc2F0aXNmaWVzIFRhYmxlQ29sdW1uSWQsXHJcbiAgICAgICAgICAgIHJlbmRlckhlYWRlckNlbGw6ICgpID0+IDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+RGVzY3JpcHRpb248L1RleHQ+LFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiA8VGFibGVDZWxsTGF5b3V0IHRpdGxlPXtyb3cuRGVzY3JpcHRpb259Pntyb3cuRGVzY3JpcHRpb259PC9UYWJsZUNlbGxMYXlvdXQ+LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNyZWF0ZVRhYmxlQ29sdW1uPFJvdz4oe1xyXG4gICAgICAgICAgICBjb2x1bW5JZDogXCJRdWFudGl0eVwiIHNhdGlzZmllcyBUYWJsZUNvbHVtbklkLFxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXJDZWxsOiAoKSA9PiA8VGV4dCB3ZWlnaHQ9XCJzZW1pYm9sZFwiPlF0eTwvVGV4dD4sXHJcbiAgICAgICAgICAgIGNvbXBhcmU6IChhLCBiKSA9PiAoYS5RdWFudGl0eSA/PyAwKSAtIChiLlF1YW50aXR5ID8/IDApLFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiA8VGFibGVDZWxsTGF5b3V0IHRpdGxlPXtyb3cuUXVhbnRpdHk/LnRvU3RyaW5nKCl9Pntyb3cuUXVhbnRpdHl9PC9UYWJsZUNlbGxMYXlvdXQ+LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNyZWF0ZVRhYmxlQ29sdW1uPFJvdz4oe1xyXG4gICAgICAgICAgICBjb2x1bW5JZDogXCJUb3RhbCBOb24tUmVjdXJyaW5nXCIgc2F0aXNmaWVzIFRhYmxlQ29sdW1uSWQsXHJcbiAgICAgICAgICAgIHJlbmRlckhlYWRlckNlbGw6ICgpID0+IDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+VG90YWwgTm9uLVJlY3VycmluZzwvVGV4dD4sXHJcbiAgICAgICAgICAgIGNvbXBhcmU6IChhLCBiKSA9PiAoYVtcIlRvdGFsIE5vbi1SZWN1cnJpbmdcIl0gPz8gMCkgLSAoYltcIlRvdGFsIE5vbi1SZWN1cnJpbmdcIl0gPz8gMCksXHJcbiAgICAgICAgICAgIHJlbmRlckNlbGw6IChyb3cpID0+IChcclxuICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxMYXlvdXQgdGl0bGU9e3Jvd1tcIlRvdGFsIE5vbi1SZWN1cnJpbmdcIl0/LnRvU3RyaW5nKCl9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtGb3JtYXR0aW5nSGVscGVyLnRvTW9uZXlTdHJpbmcocm93W1wiVG90YWwgTm9uLVJlY3VycmluZ1wiXSl9XHJcbiAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbExheW91dD5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICB9KSxcclxuICAgICAgICBjcmVhdGVUYWJsZUNvbHVtbjxSb3c+KHtcclxuICAgICAgICAgICAgY29sdW1uSWQ6IFwiVG90YWwgQW5udWFsIFJlbnRhbFwiIHNhdGlzZmllcyBUYWJsZUNvbHVtbklkLFxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXJDZWxsOiAoKSA9PiA8VGV4dCB3ZWlnaHQ9XCJzZW1pYm9sZFwiPlRvdGFsIEFubnVhbCBSZW50YWw8L1RleHQ+LFxyXG4gICAgICAgICAgICBjb21wYXJlOiAoYSwgYikgPT4gKGFbXCJUb3RhbCBBbm51YWwgUmVudGFsXCJdID8/IDApIC0gKGJbXCJUb3RhbCBBbm51YWwgUmVudGFsXCJdID8/IDApLFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8VGFibGVDZWxsTGF5b3V0IHRpdGxlPXtyb3dbXCJUb3RhbCBBbm51YWwgUmVudGFsXCJdPy50b1N0cmluZygpfT5cclxuICAgICAgICAgICAgICAgICAgICB7Rm9ybWF0dGluZ0hlbHBlci50b01vbmV5U3RyaW5nKHJvd1tcIlRvdGFsIEFubnVhbCBSZW50YWxcIl0pfVxyXG4gICAgICAgICAgICAgICAgPC9UYWJsZUNlbGxMYXlvdXQ+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcIkRldGFpbHNcIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4gPFRleHQgd2VpZ2h0PVwic2VtaWJvbGRcIj5EZXRhaWxzPC9UZXh0PixcclxuICAgICAgICAgICAgcmVuZGVyQ2VsbDogKHJvdykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGlua0RldGFpbHMgPSAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVsYXRlZFByb2plY3QsIHJlbGF0ZWROZXR3b3JrT3JkZXIgfSA9IHJvdy5fYWRkaXRpb25hbEluZm87XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWxhdGVkUHJvamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluazogYC9wcm9qZWN0cy9lZGl0P3Byb2plY3RJZD0ke3JlbGF0ZWRQcm9qZWN0Lm1zZHluX3Byb2plY3RpZH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiByZWxhdGVkUHJvamVjdC5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJSZWxhdGVkIFByb2plY3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlbGF0ZWRQcm9qZWN0LmJpc3RlY2hfcHJvamVjdG51bWJlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWxhdGVkTmV0d29ya09yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBgL25ldHdvcmtvcmRlcnMvZWRpdD9uZXR3b3Jrb3JkZXJJZD0ke3JlbGF0ZWROZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiByZWxhdGVkTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJSZWxhdGVkIE5ldHdvcmsgT3JkZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlbGF0ZWROZXR3b3JrT3JkZXIuYmlzdGVjaF9uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghbGlua0RldGFpbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFRhYmxlQ2VsbExheW91dCAvPjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxMYXlvdXQgdGl0bGU9e2xpbmtEZXRhaWxzLnRpdGxlfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsga2V5PXtsaW5rRGV0YWlscy5rZXl9IHRvPXtsaW5rRGV0YWlscy5saW5rfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsaW5rRGV0YWlscy5jb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9UYWJsZUNlbGxMYXlvdXQ+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHRhYmxlIGNvbHVtbiBzaXplIGRlZmluaXRpb25zLlxyXG4gICAgICogQHBhcmFtIGNhcmRXaWR0aCBXaWR0aCBvZiB0aGUgcGFyZW50IGNhcmQuXHJcbiAgICAgKiBAcmV0dXJucyBUYWJsZSBjb2x1bW4gc2l6ZSBkZWZpbml0aW9ucy5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZ2V0SW5saW5lQ29sdW1uU2l6aW5nT3B0aW9ucyhjYXJkV2lkdGg6IG51bWJlcik6IFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucyB7XHJcbiAgICAgICAgLy8gVGhlIG1hcHBpbmdzIG9mIGNvbHVtbiB0byBzaXppbmcgbXVsdGlwbGllcnNcclxuICAgICAgICBjb25zdCBUQUJMRV9DT0xVTU5fUkVMQVRJVkVfV0lEVEhTID0ge1xyXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogMC4zLFxyXG4gICAgICAgICAgICBRdWFudGl0eTogMC4xLFxyXG4gICAgICAgICAgICBcIlRvdGFsIE5vbi1SZWN1cnJpbmdcIjogMC4yLFxyXG4gICAgICAgICAgICBcIlRvdGFsIEFubnVhbCBSZW50YWxcIjogMC4yLFxyXG4gICAgICAgICAgICBEZXRhaWxzOiAwLjI1LFxyXG4gICAgICAgIH0gc2F0aXNmaWVzIFJlY29yZDxUYWJsZUNvbHVtbklkLCBudW1iZXI+O1xyXG5cclxuICAgICAgICAvLyBNYXAgdGhlIG11bHRpcGxpZXJzIHRvIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgZGVmaW5pbmcgdGhlIGlkZWFsV2lkdGhcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhUQUJMRV9DT0xVTU5fUkVMQVRJVkVfV0lEVEhTKS5tYXAoKFtjb2x1bW5JZCwgbXVsdGlwbGllcl0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JZDogY29sdW1uSWQgYXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWRlYWxXaWR0aDogY2FyZFdpZHRoICogbXVsdGlwbGllcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZpdENvbHVtbnM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXRlbXM6IFJvd1tdID0gb3JkZXJMaW5lc1RvU2hvdy5tYXAoKG9sKSA9PiB7XHJcbiAgICAgICAgLy8gRmluZCB0aGUgcmVsYXRlZCwgbG9hZGVkIFByb2plY3QgKGlmIGFueSlcclxuICAgICAgICBjb25zdCByZWxhdGVkUHJvamVjdDogUHJvamVjdCB8IG51bGwgPVxyXG4gICAgICAgICAgICAob2wuX21zZHluX3Byb2plY3RfdmFsdWUgJiZcclxuICAgICAgICAgICAgICAgIHByb2plY3RzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgJiZcclxuICAgICAgICAgICAgICAgIHByb2plY3RzLmRhdGEuZmluZCgocCkgPT4gcC5tc2R5bl9wcm9qZWN0aWQgPT09IG9sLl9tc2R5bl9wcm9qZWN0X3ZhbHVlKSkgfHxcclxuICAgICAgICAgICAgbnVsbDtcclxuXHJcbiAgICAgICAgLy8gRmluZCB0aGUgcmVsYXRlZCwgbG9hZGVkIE5ldHdvcmsgT3JkZXIgKGlmIGFueSlcclxuICAgICAgICBjb25zdCByZWxhdGVkTmV0d29ya09yZGVyOiBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlIHwgbnVsbCA9XHJcbiAgICAgICAgICAgIChuZXR3b3JrT3JkZXJzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgJiZcclxuICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlcnMuZGF0YS5maW5kKChwKSA9PiBwLl9iaXN0ZWNoX29yZGVybGluZV92YWx1ZSA9PT0gb2wuc2FsZXNvcmRlcmRldGFpbGlkKSkgfHxcclxuICAgICAgICAgICAgbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAga2V5OiBvbC5zYWxlc29yZGVyZGV0YWlsaWQsXHJcbiAgICAgICAgICAgIF9hZGRpdGlvbmFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgcmVsYXRlZFByb2plY3QsXHJcbiAgICAgICAgICAgICAgICByZWxhdGVkTmV0d29ya09yZGVyLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogb2wuYmlzdGVjaF9wcm9kdWN0ZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIFF1YW50aXR5OiBvbC5xdWFudGl0eSxcclxuICAgICAgICAgICAgXCJUb3RhbCBOb24tUmVjdXJyaW5nXCI6IG9sLmJhc2VhbW91bnQsXHJcbiAgICAgICAgICAgIFwiVG90YWwgQW5udWFsIFJlbnRhbFwiOiBvbC5iaXN0ZWNoX3RvdGFsYW5udWFscHJpY2UsXHJcbiAgICAgICAgICAgIERldGFpbHM6IHJlbGF0ZWRQcm9qZWN0Py5iaXN0ZWNoX3Byb2plY3RudW1iZXIgPz8gcmVsYXRlZE5ldHdvcmtPcmRlcj8uYmlzdGVjaF9uYW1lID8/IFwiXCIsXHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPENhbGxUb0FjdGlvbkJhc2VQYWdlXHJcbiAgICAgICAgICAgIHRpdGxlPXtwcm9wcy5pbml0aWFsT3JkZXI/Lm9yZGVybnVtYmVyID8/IFwiXCJ9XHJcbiAgICAgICAgICAgIHRhZ3M9e1tdfVxyXG4gICAgICAgICAgICBjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbj17XHJcbiAgICAgICAgICAgICAgICBjYWxsVG9BY3Rpb25EZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBjYWxsVG9BY3Rpb25EZXRhaWxzLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY2FsbFRvQWN0aW9uRGV0YWlscy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogY2FsbFRvQWN0aW9uRGV0YWlscy5pY29uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGU9eygpID0+IHt9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGZvcm1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXQtb3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS1zdWJtaXQtYXR0ZW1wdGVkPXtmb3JtU3VibWl0QXR0ZW1wdGVkfVxyXG4gICAgICAgICAgICAgICAgb25JbnZhbGlkPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBpZiB0aGUgY29tcG9uZW50IGlzIGxvYWRlZCAoaS5lLiBpZ25vcmUgdGhlIHZhbGlkaXR5IGNoZWNrcyB3aGVuIHRoZSBmb3JtIGlzIGluaXRpYWxseSBsb2FkZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTG9hZGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhIGZsYWcgZGV0YWlsaW5nIHRoYXQgYSBmb3JtIHN1Ym1pc3Npb24gaGFzIGJlZW4gYXR0ZW1wdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvcm1TdWJtaXRBdHRlbXB0ZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlbmVyYWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+SW5mb3JtYXRpb248L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TG9va3VwRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29udGFjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiX2Jpc3RlY2hfY29udGFjdF92YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbklkPXtmcm9tTG9hZGluZ0RhdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGMpID0+IGMuZmluZCgoYykgPT4gYy5jb250YWN0aWQgPT09IG9yZGVyQ29udGFjdD8uY29udGFjdGlkKT8uY29udGFjdGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbnRhY3RzLmRhdGEubWFwKChjb250YWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBjb250YWN0LmNvbnRhY3RpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BpY2thYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogYCR7Y29udGFjdD8uZmlyc3RuYW1lIHx8IFwiXCJ9ICR7Y29udGFjdD8ubGFzdG5hbWUgfHwgXCJcIn1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uQ2FyZEluZm89eyhzZWxlY3RlZE9wdGlvbikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiA8RmFVc2VyIC8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBzZWxlY3RlZE9wdGlvbi5wcmltYXJ5VGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiBzZWxlY3RlZE9wdGlvbi5zZWNvbmRhcnlUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxGaWVsZHM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJKb2IgVGl0bGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RlZE9wdGlvbi5jb250YWN0LmpvYnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlRlbGVwaG9uZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uLmNvbnRhY3QudGVsZXBob25lMSB8fCBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1vYmlsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uLmNvbnRhY3QubW9iaWxlcGhvbmUgfHwgXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQZXJtaXNzaW9uIExldmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlUGVybWlzc2lvbkxldmVsW3NlbGVjdGVkT3B0aW9uLmNvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWwhXSA/P1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTm8gUGVybWlzc2lvbnMgU3BlY2lmaWVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgcmVxdWlyZWQ6IGZhbHNlLCBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsT3B0aW9uc05hbWU9e1wiQ29udGFjdHNcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uSWQ9eygpID0+IHt9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGF0ZSBzaWduZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImJpc3RlY2hfZGF0ZXNpZ25lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5U2VsZWN0ZWRPcmRlci5iaXN0ZWNoX29yZGVyZm9ybT8uYmlzdGVjaF9kYXRlc2lnbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gRGF0ZUhlbHBlci50b0RhdGVPbmx5U3RyaW5nKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50bHlTZWxlY3RlZE9yZGVyLmJpc3RlY2hfb3JkZXJmb3JtPy5iaXN0ZWNoX2RhdGVzaWduZWQhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIllvdXIgUmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJiaXN0ZWNoX2N1c3RvbWVycmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjdXJyZW50bHlTZWxlY3RlZE9yZGVyLmJpc3RlY2hfY3VzdG9tZXJyZWZlcmVuY2UgPz8gXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIEhpZGUgdGhlIG1vbmV0YXJ5IHZhbHVlIGZpZWxkcyBpZiB0aGVyZSBhcmUgemVybyBPcmRlciBMaW5lcyAoZS5nLiBpZiBhIEJDMDEvQkMwMiksIGFzIHRoZXNlIHdvdWxkIGluY29ycmVjdGx5IHNob3cgwqMwLjAwIChzZWUgIzM5NzkzKSAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAge29yZGVyTGluZXNUb1Nob3cubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlRvdGFsIE5vbi1SZWN1cnJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG90YWxsaW5laXRlbWFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e0Zvcm1hdHRpbmdIZWxwZXIudG9Nb25leVN0cmluZyhjdXJyZW50bHlTZWxlY3RlZE9yZGVyLnRvdGFsbGluZWl0ZW1hbW91bnQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlRvdGFsIEFubnVhbCBSZW50YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYmlzdGVjaF90b3RhbGFubnVhbHByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHt9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Rm9ybWF0dGluZ0hlbHBlci50b01vbmV5U3RyaW5nKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5U2VsZWN0ZWRPcmRlci5iaXN0ZWNoX3RvdGFsYW5udWFscHJpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRHcm91cD17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IGRpc2FibGVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm9yZGVyLWZvcm0tbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge29yZGVyRm9ybVBkZiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2BkYXRhOmFwcGxpY2F0aW9uL3BkZjtiYXNlNjQsJHtvcmRlckZvcm1QZGZ9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkPXtgJHtjdXJyZW50bHlTZWxlY3RlZE9yZGVyLm9yZGVybnVtYmVyfS5wZGZgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZG93bmxvYWQtb3JkZXItZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIE9yZGVyIEZvcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3JkZXJMaW5lc1RvU2hvdy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE9yZGVyRm9ybUlzU2hvd24odHJ1ZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidmlldy1vcmRlci1mb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IE9yZGVyIEZvcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHtvcmRlckxpbmVzVG9TaG93Lmxlbmd0aCA+IDAgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZU5hbWU9XCJPcmRlciBMaW5lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPXtpdGVtc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e29yZGVyTGluZVRhYmxlQ29sdW1uc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxDYXJkUHJvcHM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogXCIxMDAlXCIsIG1heEhlaWdodDogbm90TmF0aXZlU2NyZWVuU2l6ZSA/IHVuZGVmaW5lZCA6IFwiNDBlbVwiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29sdW1uU2l6aW5nT3B0aW9ucz17Z2V0SW5saW5lQ29sdW1uU2l6aW5nT3B0aW9uc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlmcmFtZS1jb250YWluZXJcIiBzdHlsZT17eyBwYWRkaW5nOiAwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2dldE9yZGVyRm9ybUlGcmFtZSgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogTW9kYWwgZm9yIHZpZXdpbmcgdGhlIE9yZGVyIEZvcm0uICovfVxyXG4gICAgICAgICAgICAgICAgPERpYWxvZyBvcGVuPXtvcmRlckZvcm1Jc1Nob3dufSBvbk9wZW5DaGFuZ2U9eyhfLCBlKSA9PiBzZXRPcmRlckZvcm1Jc1Nob3duKGUub3Blbil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxEaWFsb2dTdXJmYWNlIGFyaWEtZGVzY3JpYmVkYnk9e3VuZGVmaW5lZH0gY2xhc3NOYW1lPXtzdHlsZXMuZGlhbG9nU3VyZmFjZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2dCb2R5IGNsYXNzTmFtZT17c3R5bGVzLmRpYWxvZ0JvZHl9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBcInJvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nVGl0bGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuZGlhbG9nVGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nVHJpZ2dlciBhY3Rpb249XCJjbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInN1YnRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjbG9zZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxEaXNtaXNzMjRSZWd1bGFyIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZ1RyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyIEZvcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZ1RpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9e3N0eWxlcy5kaWFsb2dDb250ZW50fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2V0T3JkZXJGb3JtSUZyYW1lKCkgfHwgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjkwJVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltU3Bpbm5lcjIgc3R5bGU9e3sgaGVpZ2h0OiAzMCwgd2lkdGg6IDMwIH19IGNsYXNzTmFtZT1cInNwaW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2dDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZ0JvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2dTdXJmYWNlPlxyXG4gICAgICAgICAgICAgICAgPC9EaWFsb2c+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L0NhbGxUb0FjdGlvbkJhc2VQYWdlPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uLy4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuaW1wb3J0IHsgT3JkZXJzRWRpdENvbnRlbnQgfSBmcm9tIFwiLi9PcmRlcnNFZGl0Q29udGVudFwiO1xyXG5pbXBvcnQgeyBPcmRlciB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvT3JkZXJcIjtcclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBMb2FkaW5nQmFzZVBhZ2UgfSBmcm9tIFwiLi4vQmFzZVBhZ2VcIjtcclxuXHJcbi8qKiBXcmFwcGVyIGZvciB0aGUgRWRpdCBPcmRlcnMgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgT3JkZXJzRWRpdEZyb21JZCA9IChwcm9wczogeyBzYWxlc29yZGVyaWQ6IHN0cmluZyB9KSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBkYXRhU2VydmljZSA9IHVzZURhdGFTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBvcmRlcnMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLm9yZGVycyk7XHJcbiAgICBjb25zdCBbc2F2ZUtleSwgc2V0U2F2ZUtleV0gPSB1c2VTdGF0ZSgxKTtcclxuICAgIGNvbnN0IFtyZXRyaWV2ZWRPcmRlciwgc2V0UmV0cmlldmVkT3JkZXJdID0gdXNlU3RhdGU8XHJcbiAgICAgICAgTG9hZGluZ0RhdGE8T3JkZXI+IHwgeyBsb2FkaW5nU3RhdHVzOiBcImVycm9yZWRcIjsgZXJyb3I6IEVycm9yIH1cclxuICAgID4oe1xyXG4gICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIixcclxuICAgIH0pO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0UmV0cmlldmVkT3JkZXIoeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSk7XHJcbiAgICB9LCBbb3JkZXJzLCBzYXZlS2V5XSk7XHJcblxyXG4gICAgY29uc3QgaW5pdGlhbE9yZGVyOiBMb2FkaW5nRGF0YTxPcmRlcj4gPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICAvLyBJZiB0aGUgcmV0cmlldmFsIGhhcyBub3QgeWV0IGJlZW4gc3RhcnRlZFxyXG4gICAgICAgIGlmIChyZXRyaWV2ZWRPcmRlci5sb2FkaW5nU3RhdHVzID09PSBcIm5vdC1zdGFydGVkXCIpIHtcclxuICAgICAgICAgICAgc2V0UmV0cmlldmVkT3JkZXIoeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBPcmRlciBzcGVjaWZpY2FsbHkgKGUuZy4gdGhlIE9yZGVyIG1heSBoYXZlIGJlZW4gcmVjZW50bHkgdXBkYXRlZClcclxuICAgICAgICAgICAgZGF0YVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5yZXRyaWV2ZU9yZGVyKHByb3BzLnNhbGVzb3JkZXJpZClcclxuICAgICAgICAgICAgICAgIC50aGVuKChvcmRlcikgPT4gc2V0UmV0cmlldmVkT3JkZXIoeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBvcmRlciB9KSlcclxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiQWRkTGF0ZXN0RXJyb3JcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0UmV0cmlldmVkT3JkZXIoeyBsb2FkaW5nU3RhdHVzOiBcImVycm9yZWRcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXRyaWV2ZWRPcmRlci5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHJldHJpZXZlZE9yZGVyLmRhdGEgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcmRlcnMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdPcmRlciA9IG9yZGVycy5kYXRhLmZpbmQoKG9yZGVyKSA9PiBvcmRlci5zYWxlc29yZGVyaWQgPT09IHByb3BzLnNhbGVzb3JkZXJpZCk7XHJcblxyXG4gICAgICAgIC8vIElmIGEgbWF0Y2hpbmcgYWN0aXZlIE9yZGVyIHdhcyBmb3VuZFxyXG4gICAgICAgIGlmIChtYXRjaGluZ09yZGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbWF0Y2hpbmdPcmRlcixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH07XHJcbiAgICB9LCBbb3JkZXJzLCByZXRyaWV2ZWRPcmRlciwgZGF0YVNlcnZpY2UsIHByb3BzLnNhbGVzb3JkZXJpZCwgZGlzcGF0Y2hdKTtcclxuXHJcbiAgICBpZiAocmV0cmlldmVkT3JkZXIubG9hZGluZ1N0YXR1cyA9PT0gXCJlcnJvcmVkXCIpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHR5cGU9XCJyZWNvcmQtbm90LWZvdW5kXCIgc2luZ3VsYXJFbnRpdHlOYW1lPVwiT3JkZXJcIiAvPjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5pdGlhbE9yZGVyLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICByZXR1cm4gPExvYWRpbmdCYXNlUGFnZSAvPjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gPE9yZGVyc0VkaXRDb250ZW50IGluaXRpYWxPcmRlcj17aW5pdGlhbE9yZGVyLmRhdGF9IG9uU2F2ZT17KCkgPT4gc2V0U2F2ZUtleShzYXZlS2V5ICsgMSl9IC8+O1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBPcmRlcnNFZGl0RnJvbUlkIH0gZnJvbSBcIi4vT3JkZXJzRWRpdEZyb21JZFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IE9yZGVyIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IE9yZGVyc0VkaXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBbc2VhcmNoUGFyYW1zXSA9IHVzZVNlYXJjaFBhcmFtcygpO1xyXG5cclxuICAgIGNvbnN0IElEX1FVRVJZX1NUUklOR19QQVJBTUVURVJfTkFNRSA9IFwib3JkZXJJZFwiO1xyXG4gICAgY29uc3Qgb3JkZXJJZCA9IHNlYXJjaFBhcmFtcy5nZXQoSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FKTtcclxuXHJcbiAgICBpZiAoIW9yZGVySWQpIHtcclxuICAgICAgICByZXR1cm4gPE5vdEZvdW5kIHNpbmd1bGFyRW50aXR5TmFtZT1cIk9yZGVyXCIgdHlwZT1cInJlY29yZC1ub3QtZm91bmRcIiAvPjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gPE9yZGVyc0VkaXRGcm9tSWQgc2FsZXNvcmRlcmlkPXtvcmRlcklkfSAvPjtcclxufTtcclxuIiwiaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9CYXNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBDb250YWN0UGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgSW52b2ljZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9JbnZvaWNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IE9yZGVyUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL09yZGVyUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBVc2VyTWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlVXNlck1ldGFkYXRhXCI7XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIHRoZSBVc2VyIGhhcyBhY2Nlc3MgdG8gdGhlIHBvcnRhbCBpbiBhIFNjZW5hcmlvIHdoZXJlIHRoZXkgbWF5IGhhdmUgQ3VzdG9tIEJhc2UgUGVybWlzc2lvbiBMZXZlbC5cclxuICogQHJldHVybnMgSWYgdGhlIHVzZXIgc2hvdWxkIGhhdmUgQWNjZXNzIHRvIHRoZSBQb3J0YWwuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdXNlckhhc1BvcnRhbEFjY2Vzcyh1c2VyTWV0YWRhdGE6IFVzZXJNZXRhZGF0YSk6IGJvb2xlYW4ge1xyXG4gICAgLy8gSWYgbm8gdXNlciBtZXRhZGF0YSBleGlzdHMgcmV0dXJuIGZhbHNlLlxyXG4gICAgaWYgKCF1c2VyTWV0YWRhdGEpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBJZiBCYXNlIFBlcm1pc3Npb24gbGV2ZWwgaXMgbm8gQWNjZXNzIHJldHVybiBmYWxzZS5cclxuICAgIGlmICh1c2VyTWV0YWRhdGEuYmFzZVBlcm1pc3Npb25MZXZlbCA9PT0gQmFzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgYW55IEN1c3RvbWVyIHBlcm1pc3Npb24gdGhhdCBpcyBub3QgXCJObyBBY2Nlc3NcIiBSZXR1cm4gdHJ1ZS5cclxuICAgIGNvbnN0IGhhc1BvcnRhbENhc2VBY2Nlc3MgPSB1c2VyTWV0YWRhdGEucG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgID8gdXNlck1ldGFkYXRhLnBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgIT09IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICA6IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhhc1BvcnRhbENvbnRhY3RBY2Nlc3MgPSB1c2VyTWV0YWRhdGEucG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbFxyXG4gICAgICAgID8gdXNlck1ldGFkYXRhLnBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgIT09IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICA6IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhhc1BvcnRhbG9yZGVyQWNjZXNzID0gdXNlck1ldGFkYXRhLnBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsXHJcbiAgICAgICAgPyB1c2VyTWV0YWRhdGEucG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgIT09IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdXHJcbiAgICAgICAgOiBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoYXNQb3J0YWxQcm9qZWN0QWNjZXNzID0gdXNlck1ldGFkYXRhLnBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWxcclxuICAgICAgICA/IHVzZXJNZXRhZGF0YS5wb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsICE9PSBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdXHJcbiAgICAgICAgOiBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoYXNQb3J0YWxJbnZvaWNlQWNjZXNzID0gdXNlck1ldGFkYXRhLnBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWxcclxuICAgICAgICA/IHVzZXJNZXRhZGF0YS5wb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsICE9PSBJbnZvaWNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdXHJcbiAgICAgICAgOiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIGhhc1BvcnRhbENhc2VBY2Nlc3MgfHxcclxuICAgICAgICBoYXNQb3J0YWxDb250YWN0QWNjZXNzIHx8XHJcbiAgICAgICAgaGFzUG9ydGFsb3JkZXJBY2Nlc3MgfHxcclxuICAgICAgICBoYXNQb3J0YWxQcm9qZWN0QWNjZXNzIHx8XHJcbiAgICAgICAgaGFzUG9ydGFsSW52b2ljZUFjY2Vzc1xyXG4gICAgKTtcclxufVxyXG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgUG9wb3ZlciwgUG9wb3ZlclN1cmZhY2UsIFBvcG92ZXJUcmlnZ2VyIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcblxyXG4vKiogUmVuZGVycyBhIHBvcHVwIG9uIGEgZ2l2ZW4gY29tcG9uZW50LiAqL1xyXG5leHBvcnQgY29uc3QgUG9wdXA6IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PHtcclxuICAgIGlzVmlzaWJsZTogYm9vbGVhbjtcclxuICAgIG9uRGlzbWlzczogKCkgPT4gdm9pZDtcclxuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XHJcbiAgICByZW5kZXJQb3BvdmVyQ29udGVudDogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xyXG59PiA9IChwcm9wcykgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8UG9wb3ZlciB3aXRoQXJyb3cgcG9zaXRpb25pbmc9e1wiYmVsb3dcIn0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyVHJpZ2dlciBkaXNhYmxlQnV0dG9uRW5oYW5jZW1lbnQ+e3Byb3BzLmNoaWxkcmVufTwvUG9wb3ZlclRyaWdnZXI+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyU3VyZmFjZSB0YWJJbmRleD17LTF9PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBtYXhXaWR0aDogXCIxOGVtXCIsIHBhZGRpbmc6IFwiMC41ZW1cIiB9fT57cHJvcHMucmVuZGVyUG9wb3ZlckNvbnRlbnQoKX08L2Rpdj5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyU3VyZmFjZT5cclxuICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZSB9IGZyb20gXCIuLi9FbnVtcy9OZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhZ2VUeXBlIH0gZnJvbSBcIi4uL0VudW1zL05ldHdvcmtPcmRlclN0YWdlVHlwZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGFnZSB9IGZyb20gXCIuLi9Nb2RlbHMvTmV0d29ya09yZGVyU3RhZ2VcIjtcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tIFwiLi9Qb3B1cFwiO1xyXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IEltQ2hlY2ttYXJrIH0gZnJvbSBcInJlYWN0LWljb25zL2ltXCI7XHJcblxyXG4vKiogUmVhY3QgRnVuY3Rpb25hbCBDb21wb25lbnQgcmVwcmVzZW50aW5nIGEgU2luZ2xlIFwiTmV0d29yayBPcmRlciBTdGFnZVwiLiAqL1xyXG5leHBvcnQgY29uc3QgTmV0d29ya09yZGVyU3RhZ2VDb21wb25lbnQ6IFJlYWN0LkZDPHsgbmV0d29ya09yZGVyU3RhZ2U6IE5ldHdvcmtPcmRlclN0YWdlOyBuZXR3b3JrT3JkZXJJZDogc3RyaW5nIH0+ID0gKHtcclxuICAgIG5ldHdvcmtPcmRlclN0YWdlLFxyXG4gICAgbmV0d29ya09yZGVySWQsXHJcbn0pID0+IHtcclxuICAgIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xyXG4gICAgY29uc3QgW3Nob3VsZFNob3dQb3B1cCwgc2V0U2hvdWxkU2hvd1BvcHVwXSA9IHVzZVN0YXRlPHsgc2hvd2luZzogYm9vbGVhbjsgd2FzRGlzbWlzc2VkOiBib29sZWFuIH0+KHtcclxuICAgICAgICBzaG93aW5nOiBmYWxzZSxcclxuICAgICAgICB3YXNEaXNtaXNzZWQ6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgIGNvbnN0IGluc3RhbGxNZXNzYWdlID0gKGluc3RhbGxUeXBlOiBzdHJpbmcpID0+XHJcbiAgICAgICAgbmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9kYXRlZnJvbVxyXG4gICAgICAgICAgICA/IGBUaGUgJHtpbnN0YWxsVHlwZX0gaGFzIGJlZW4gc2NoZWR1bGVkIGZvciAke25ldyBEYXRlKFxyXG4gICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1HQlwiKX0uIFxyXG4gICAgICAgICAgICAgIFBsZWFzZSBlbnN1cmUgYWNjZXNzIGlzIGF2YWlsYWJsZSBhbmQgdGhhdCBzb21lb25lIGlzIGFibGUgdG8gcmVjZWl2ZSB0aGUgZW5naW5lZXIuIFxyXG4gICAgICAgICAgICAgIElmIHRoaXMgZGF0ZSBpcyBub3Qgc3VpdGFibGUsIHBsZWFzZSBjb21tZW50IG9uIHRoZSBOZXR3b3JrIE9yZGVyIGJlbG93IGFuZCB3ZSBzaGFsbCBjb250YWN0IHRoZSBDYXJyaWVyIHRvIGZpbmQgYW4gYWx0ZXJuYXRpdmUgc3VpdGFibGUgZGF0ZS5gXHJcbiAgICAgICAgICAgIDogYFRoZSBJbnN0YWxsYXRpb24gRGF0ZSBpcyBhcyB5ZXQgdW5kZWNpZGVkLCBtb3JlIGluZm9ybWF0aW9uIHdpbGwgYmUgcHJvdmlkZWQgYXMgc29vbiBhcyB0aGUgZGF0ZSBpcyBjb25maXJtZWQuYDtcclxuXHJcbiAgICBjb25zdCBzdGFnZU1hcHBpbmdzOiB7IHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlOyB0aXRsZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nIH1bXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiT3JkZXIgUGxhY2VkXCJdLFxyXG4gICAgICAgICAgICB0aXRsZTogXCJZb3VyIG5ldHdvcmsgb3JkZXIgaGFzIGJlZW4gcGxhY2VkXCIsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgWW91ciBuZXR3b3JrIG9yZGVyIGhhcyBiZWVuIHBsYWNlZCBhbmQgaXMgaW4gcHJvZ3Jlc3MsIGZ1cnRoZXIgdXBkYXRlcyB3aWxsIGJlIHByb3ZpZGVkIHdoZW4gdGhleSBhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgY2FycmllcmAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiU3VydmV5XCJdLFxyXG4gICAgICAgICAgICAuLi4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChuZXR3b3JrT3JkZXJTdGFnZS5zdGF0dXNjb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuSWRlbnRpZmllZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIlNpdGUgU3VydmV5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBIHNpdGUgc3VydmV5IGlzIHJlcXVpcmVkIGJ5IHRoZSBjYXJyaWVyIHRvIHByb2dyZXNzIHlvdXIgbmV0d29yayBvcmRlci5cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5TY2hlZHVsZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJTaXRlIFN1cnZleVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBBIHNpdGUgc3VydmV5IGlzIHJlcXVpcmVkIGJ5IHRoZSBjYXJyaWVyJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCwgdGhpcyBoYXMgYmVlbiBzY2hlZHVsZWQgZm9yICR7bmV3IERhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfZGF0ZWZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLUdCXCIpfS5gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCIuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLkNvbXBsZXRlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIlNpdGUgU3VydmV5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQSBTaXRlIFN1cnZleSBpcyByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBUaGUgVmVuZG9yIGhhcyBjb25maXJtZWQgdGhhdCBhIFNpdGUgU3VydmV5IGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGZ1bGZpbCB0aGUgT3JkZXIuJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCBUaGUgU3VydmV5IGhhcyBiZWVuIHNjaGVkdWxlZCBmb3IgJHtuZXcgRGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9kYXRlZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tR0JcIil9LmBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkoKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3RhZ2VUeXBlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJDaXZpbHMgV29ya1wiXSxcclxuICAgICAgICAgICAgLi4uKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAobmV0d29ya09yZGVyU3RhZ2Uuc3RhdHVzY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLklkZW50aWZpZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJDaXZpbCBXb3JrcyByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaXZpbCB3b3JrcyBhcmUgcmVxdWlyZWQgdG8gcHJvZ3Jlc3MgeW91ciBuZXR3b3JrIG9yZGVyIC0gdGhpcyBpcyBiZWluZyBhcnJhbmdlZCBieSB0aGUgY2FycmllciBhbmQgbWF5IHRha2Ugc29tZSB0aW1lIHRvIGNvbXBsZXRlLlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLlNjaGVkdWxlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkNpdmlsIFdvcmtzIHJlcXVpcmVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYENpdmlsIHdvcmtzIGFyZSByZXF1aXJlZCB0byBwcm9ncmVzcyB5b3VyIG5ldHdvcmsgb3JkZXIke1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfZGF0ZWZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgIC0gdGhpcyBoYXMgYmVlbiBzY2hlZHVsZWQgZm9yICR7bmV3IERhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfZGF0ZWZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLUdCXCIpfX0uYFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGAuYFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuQ29tcGxldGVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQ2l2aWwgV29ya3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJDaXZpbHMgV29yayBpcyByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBDaXZpbCBXb3JrcyB0eXBpY2FsbHkgaW52b2x2ZSB0aGUgcHJlcGFyYXRpb24gb2YgcGh5c2ljYWwgaW5mcmFzdHJ1Y3R1cmUgc3VjaCBhcyB0cmVuY2hpbmcsIGNvbmR1aXQgaW5zdGFsbGF0aW9uLCBhbmQgXHJcbiAgICAgICAgICAgIGNhYmxlIHJvdXRpbmcgaW4gb3JkZXIgdG8gaW5zdGFsbCB0aGUgY29ubmVjdGlvbi4gQXMgYSByZXN1bHQsIENpdmlsIFdvcmtzIGNhbiB0YWtlIHRpbWUgdG8gY29tcGxldGUuYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkoKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3RhZ2VUeXBlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJXYXlsZWF2ZVwiXSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiV2F5bGVhdmUgcmVxdWlyZWRcIixcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBBIHdheWxlYXZlIGlzIHJlcXVpcmVkIHRvIHByb2dyZXNzIHlvdXIgbmV0d29yayBvcmRlciAtIHlvdXIgUHJvamVjdCBNYW5hZ2VyIHdpbGwgYmUgaW4gdG91Y2ggdG8gZGlzY3VzcyB0aGlzLmAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiSW5zdGFsbGF0aW9uXCJdLFxyXG4gICAgICAgICAgICAuLi4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChuZXR3b3JrT3JkZXJTdGFnZS5zdGF0dXNjb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuSWRlbnRpZmllZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkluc3RhbGxhdGlvbiByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiSW5zdGFsbGF0aW9uIGlzIHJlcXVpcmVkLCB3ZSB3aWxsIHByb3ZpZGUgYW4gdXBkYXRlIHdoZW4gdGhpcyBpcyBzY2hlZHVsZWQuXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLlNjaGVkdWxlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkluc3RhbGxhdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBJbnN0YWxsYXRpb24gaGFzIGJlZW4gc2NoZWR1bGVkJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCBmb3IgJHtuZXcgRGF0ZShuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1HQlwiKX1gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfS4gUGxlYXNlIGVuc3VyZSBzaXRlIGFjY2VzcyBpcyBhdmFpbGFibGUgb3IgY29udGFjdCB5b3VyIFByb2plY3QgTWFuYWdlciBpZiB0aGlzIGRhdGUgaXMgdW5zdWl0YWJsZS5gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLkNvbXBsZXRlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkluc3RhbGxhdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkluc3RhbGxhdGlvbiBpcyByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGluc3RhbGxNZXNzYWdlKFwiSW5zdGFsbGF0aW9uXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSgpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzdGFnZVR5cGU6IE5ldHdvcmtPcmRlclN0YWdlVHlwZVtcIkZpYnJlIEluc3RhbGxcIl0sXHJcbiAgICAgICAgICAgIC4uLigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5ldHdvcmtPcmRlclN0YWdlLnN0YXR1c2NvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5JZGVudGlmaWVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmlicmUgaW5zdGFsbGF0aW9uIHJlcXVpcmVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkZpYnJlIGluc3RhbGxhdGlvbiBpcyByZXF1aXJlZCwgd2Ugd2lsbCBwcm92aWRlIGFuIHVwZGF0ZSB3aGVuIHRoaXMgaXMgc2NoZWR1bGVkLlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYXNlIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5TY2hlZHVsZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGaWJyZSBJbnN0YWxsYXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRmlicmUgaW5zdGFsbGF0aW9uIGhhcyBiZWVuIHNjaGVkdWxlZCR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9kYXRlZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAgZm9yICR7bmV3IERhdGUobmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9kYXRlZnJvbSkudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tR0JcIil9YFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0uIFBsZWFzZSBlbnN1cmUgc2l0ZSBhY2Nlc3MgaXMgYXZhaWxhYmxlIG9yIGNvbnRhY3QgeW91ciBQcm9qZWN0IE1hbmFnZXIgaWYgdGhpcyBkYXRlIGlzIHVuc3VpdGFibGUuYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGaWJyZSBJbnN0YWxsYXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJBIEZpYnJlIEluc3RhbGwgaXMgcmVxdWlyZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpbnN0YWxsTWVzc2FnZShcIkZpYnJlIEluc3RhbGxcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKCksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiRmlicmUgU3BsaWNpbmdcIl0sXHJcbiAgICAgICAgICAgIC4uLigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5ldHdvcmtPcmRlclN0YWdlLnN0YXR1c2NvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5JZGVudGlmaWVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmlicmUgc3BsaWNpbmcgcmVxdWlyZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRmlicmUgc3BsaWNpbmcgaXMgcmVxdWlyZWQsIHdlIHdpbGwgcHJvdmlkZSBhbiB1cGRhdGUgd2hlbiB0aGlzIGlzIHNjaGVkdWxlZC5cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuU2NoZWR1bGVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmlicmUgU3BsaWNpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRmlicmUgc3BsaWNpbmcgaGFzIGJlZW4gc2NoZWR1bGVkJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCBmb3IgJHtuZXcgRGF0ZShuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1HQlwiKX1gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfS4gUGxlYXNlIGVuc3VyZSBzaXRlIGFjY2VzcyBpcyBhdmFpbGFibGUgb3IgY29udGFjdCB5b3VyIFByb2plY3QgTWFuYWdlciBpZiB0aGlzIGRhdGUgaXMgdW5zdWl0YWJsZS5gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLkNvbXBsZXRlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkZpYnJlIFNwbGljaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQSBGaWJyZSBzcGxpY2luZyBpcyByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGluc3RhbGxNZXNzYWdlKFwiRmlicmUgU3BsaWNpbmdcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKCksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiRml0ICYgVGVzdFwiXSxcclxuICAgICAgICAgICAgLi4uKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAobmV0d29ya09yZGVyU3RhZ2Uuc3RhdHVzY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLklkZW50aWZpZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGaXQgYW5kIHRlc3QgcmVxdWlyZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQSBmaXQgYW5kIHRlc3QgaXMgcmVxdWlyZWQsIHdlIHdpbGwgcHJvdmlkZSBhbiB1cGRhdGUgd2hlbiB0aGlzIGlzIHNjaGVkdWxlZC5cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuU2NoZWR1bGVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRml0IGFuZCBUZXN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYEEgZml0IGFuZCB0ZXN0IGhhcyBiZWVuIHNjaGVkdWxlZCR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9kYXRlZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAgZm9yICR7bmV3IERhdGUobmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9kYXRlZnJvbSkudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tR0JcIil9YFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0uIFBsZWFzZSBlbnN1cmUgc2l0ZSBhY2Nlc3MgaXMgYXZhaWxhYmxlIG9yIGNvbnRhY3QgeW91ciBQcm9qZWN0IE1hbmFnZXIgaWYgdGhpcyBkYXRlIGlzIHVuc3VpdGFibGUuYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGaXQgYW5kIFRlc3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGaXQgYW5kIFRlc3QgaXMgcmVxdWlyZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpbnN0YWxsTWVzc2FnZShcIkZpdCAmIFRlc3RcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKCksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiQ29ubmVjdGlvbiBJbnN0YWxsZWRcIl0sXHJcbiAgICAgICAgICAgIHRpdGxlOiBcIllvdXIgY29ubmVjdGlvbiBpbnN0YWxsIGlzIGNvbXBsZXRlXCIsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgWW91ciBjb25uZWN0aW9uIGhhcyBiZWVuIGluc3RhbGxlZC4gUGxlYXNlIGNvbnRhY3QgeW91ciBQcm9qZWN0IE1hbmFnZXIgaWYgdGhlcmUgYXJlIGFueSBmdXJ0aGVyIHF1ZXJpZXMuYCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3RhZ2VUeXBlOiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJDb21tc0NhcmUgU2l0ZSBWaXNpdFwiXSxcclxuICAgICAgICAgICAgLi4uKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAobmV0d29ya09yZGVyU3RhZ2Uuc3RhdHVzY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLklkZW50aWZpZWQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJTaXRlIFZpc2l0IHJlcXVpcmVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBIHNpdGUgdmlzaXQgaXMgcmVxdWlyZWQsIHdlIHdpbGwgcHJvdmlkZSBhbiB1cGRhdGUgd2hlbiB0aGlzIGlzIHNjaGVkdWxlZC5cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGUuU2NoZWR1bGVkOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiU2l0ZSBWaXNpdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBBIHNpdGUgdmlzaXQgaGFzIGJlZW4gc2NoZWR1bGVkJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCBmb3IgJHtuZXcgRGF0ZShuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1HQlwiKX1gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfS4gUGxlYXNlIGVuc3VyZSBzaXRlIGFjY2VzcyBpcyBhdmFpbGFibGUgb3IgY29udGFjdCB5b3VyIFByb2plY3QgTWFuYWdlciBpZiB0aGlzIGRhdGUgaXMgdW5zdWl0YWJsZS5gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLkNvbXBsZXRlZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIlNpdGUgVmlzaXRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJTaXRlIHZpc2l0IGlzIHJlcXVpcmVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogaW5zdGFsbE1lc3NhZ2UoXCJDb21tc0NhcmUgU2l0ZSBWaXNpdFwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkoKSxcclxuICAgICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyBGaW5kIHRoZSBzdGFnZSBtYXBwaW5nIGZvciB0aGUgY3VycmVudCBzdGFnZVxyXG4gICAgY29uc3Qgc3RhZ2UgPSBzdGFnZU1hcHBpbmdzLmZpbmQoKHN0YWdlKSA9PiBzdGFnZS5zdGFnZVR5cGUgPT09IG5ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfc3RhZ2UpO1xyXG5cclxuICAgIGNvbnN0IHN0YWdlVGl0bGUgPSBzdGFnZT8udGl0bGUgfHwgTmV0d29ya09yZGVyU3RhZ2VUeXBlW25ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfc3RhZ2VdO1xyXG4gICAgY29uc3Qgc3RhZ2VEZXNjcmlwdGlvbiA9IHN0YWdlPy5kZXNjcmlwdGlvbiB8fCBcIlwiO1xyXG4gICAgY29uc3Qgc3RhZ2VTdGF0dXMgPSBOZXR3b3JrT3JkZXJTdGFnZVN0YXR1c0NvZGVbbmV0d29ya09yZGVyU3RhZ2Uuc3RhdHVzY29kZV07XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8UG9wdXBcclxuICAgICAgICAgICAgaXNWaXNpYmxlPXtzaG91bGRTaG93UG9wdXAuc2hvd2luZ31cclxuICAgICAgICAgICAgb25EaXNtaXNzPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZXRTaG91bGRTaG93UG9wdXAoeyBzaG93aW5nOiBmYWxzZSwgd2FzRGlzbWlzc2VkOiB0cnVlIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFN0b3BzIHRoZSBvbmNsaWNrIG9mIHRoZSBjYXJkIGZyb20gcmUtb3BlbmluZyB0aGUgcG9wdXAgd2hlbiBjbGlja2VkIHRvIGRpc21pc3MuXHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRTaG91bGRTaG93UG9wdXAoeyBzaG93aW5nOiBmYWxzZSwgd2FzRGlzbWlzc2VkOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHJlbmRlclBvcG92ZXJDb250ZW50PXsoKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250V2VpZ2h0OiBcIjUwMFwiLCBtYXJnaW46IDAsIG1hcmdpbkJvdHRvbTogXCIwLjhlbVwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7c3RhZ2VUaXRsZX0gLSB7c3RhZ2VTdGF0dXN9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17eyBmb250U2l6ZTogXCIxNHB4XCIgfX0+e3N0YWdlRGVzY3JpcHRpb259PC9UZXh0PlxyXG4gICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjYXJkXCJcclxuICAgICAgICAgICAgICAgIHJlZj17cmVmfVxyXG4gICAgICAgICAgICAgICAgZGF0YS1jYXJkLXN0YXR1cz17bmV0d29ya09yZGVyU3RhZ2Uuc3RhdHVzY29kZX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFNob3dQb3B1cC53YXNEaXNtaXNzZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvdWxkU2hvd1BvcHVwKHsgc2hvd2luZzogIXNob3VsZFNob3dQb3B1cC5zaG93aW5nLCB3YXNEaXNtaXNzZWQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBOZXR3b3JrIE9yZGVyIC0gTmV0d29yayBPcmRlciBTdGFnZSBjbGlja2VkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlcklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZUlkOiBuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlclN0YWdlVHlwZTogTmV0d29ya09yZGVyU3RhZ2VUeXBlW25ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfc3RhZ2VdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJTdGFnZVN0YXR1czogTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlW25ldHdvcmtPcmRlclN0YWdlLnN0YXR1c2NvZGVdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1zdGFnZS10eXBlPXtOZXR3b3JrT3JkZXJTdGFnZVR5cGVbbmV0d29ya09yZGVyU3RhZ2UuYmlzdGVjaF9zdGFnZV19XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1jYXJkLXN0YXR1cz17TmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlW25ldHdvcmtPcmRlclN0YWdlLnN0YXR1c2NvZGVdfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVjdFwiIGRhdGEtY2FyZC1zdGF0dXM9e05ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZVtuZXR3b3JrT3JkZXJTdGFnZS5zdGF0dXNjb2RlXX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInN0YWdlLXRpdGxlXCI+e05ldHdvcmtPcmRlclN0YWdlVHlwZVtuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX3N0YWdlXX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJzdGFnZS1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtuZXR3b3JrT3JkZXJTdGFnZS5zdGF0dXNjb2RlID09IE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZS5Db21wbGV0ZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltQ2hlY2ttYXJrIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiBcIjAuM2VtXCIgfX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtuZXR3b3JrT3JkZXJTdGFnZS5iaXN0ZWNoX2RhdGVmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKG5ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfZGF0ZWZyb20pLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLUdCXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5ldHdvcmtPcmRlclN0YWdlLnN0YXR1c2NvZGUgPT0gTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlLkNvbXBsZXRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkNvbXBsZXRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L1BvcHVwPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFN3aXBlRGlyZWN0aW9uID0gXCJob3Jpem9udGFsLWxlZnRcIiB8IFwiaG9yaXpvbnRhbC1yaWdodFwiO1xyXG5cclxuLyoqIENsYXNzIHRoYXQgYWRkcyB0b3VjaCBoYW5kbGluZyB0byB0b3VjaCBzY3JlZW4gZ2VzdHVyZXMgKi9cclxuZXhwb3J0IGNvbnN0IHVzZVN3aXBlTGlzdGVuZXIgPSAocHJvcHM6IHtcclxuICAgIHJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+O1xyXG4gICAgb25Td2lwZTogKGRpcmVjdGlvbjogU3dpcGVEaXJlY3Rpb24pID0+IHZvaWQ7XHJcbn0pID0+IHtcclxuICAgIC8qKiAgTWluaW11bSBkaXN0YW5jZSBpbiBwaXhlbHMgdG8gY29uc3RpdHV0ZSBhIHN3aXBlICovXHJcbiAgICBjb25zdCBUT1VDSF9USFJFU0hPTEQgPSAxNTtcclxuXHJcbiAgICBjb25zdCB7IHJlZiwgb25Td2lwZSB9ID0gcHJvcHM7XHJcblxyXG4gICAgLyoqIEluZm9ybWF0aW9uIGZvciB0aGUgc3RhcnQgb2YgYW4gb25nb2luZyB0b3VjaCBldmVudCwgaWYgYW55ICovXHJcbiAgICBjb25zdCBbc3RhcnRUb3VjaCwgc2V0U3RhcnRUb3VjaF0gPSB1c2VTdGF0ZTxUb3VjaCB8IG51bGw+KG51bGwpO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBvblRvdWNoU3RhcnQgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHNldFN0YXJ0VG91Y2goZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xyXG5cclxuICAgICAgICBjb25zdCBvblRvdWNoRW5kID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzdGFydFRvdWNoID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCB0aGUgc3RhcnRUb3VjaCB0byBiZSBub24tbnVsbCBhcyBhICd0b3VjaGVuZCcgZXZlbnQgaGFkIG9jY3VycmVkXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBlbmRUb3VjaCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gICAgICAgICAgICBjb25zdCB4RGlzdGFuY2UgPSBlbmRUb3VjaC5wYWdlWCAtIHN0YXJ0VG91Y2gucGFnZVg7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgc3dpcGUgd2FzIG9ubHkgdmVydGljYWwgKHkgZGlyZWN0aW9uKVxyXG4gICAgICAgICAgICBpZiAoeERpc3RhbmNlID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgdGhlIHN3aXBlXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHN3aXBlSXNCaWdFbm91Z2ggPSBNYXRoLmFicyh4RGlzdGFuY2UpID4gVE9VQ0hfVEhSRVNIT0xEO1xyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlIHN3aXBlIGRpc3RhbmNlIHdhcyBiZWxvdyB0aGUgdGhyZXNob2xkXHJcbiAgICAgICAgICAgIGlmICghc3dpcGVJc0JpZ0Vub3VnaCkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHRoZSBzd2lwZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCB5RGlzdGFuY2UgPSBlbmRUb3VjaC5wYWdlWSAtIHN0YXJ0VG91Y2gucGFnZVk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN3aXBlSXNIb3Jpem9udGFsRW5vdWdoID0gTWF0aC5hYnMoeURpc3RhbmNlIC8geERpc3RhbmNlKSA8IDAuNTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBhbmdsZSBvZiB0aGUgc3dpcGUgd2FzIG1vcmUgdmVydGljYWwgKHkgZGlyZWN0aW9uKSB0aGFuIGhvcml6b250YWwgKHggZGlyZWN0aW9uKVxyXG4gICAgICAgICAgICBpZiAoIXN3aXBlSXNIb3Jpem9udGFsRW5vdWdoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgdGhlIHN3aXBlXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIERldGVybWluZSB0aGUgc3dpcGUgZGlyZWN0aW9uXHJcbiAgICAgICAgICAgIGNvbnN0IGRldGVjdGVkU3dpcGVEaXJlY3Rpb246IFN3aXBlRGlyZWN0aW9uID0geERpc3RhbmNlIDwgMCA/IFwiaG9yaXpvbnRhbC1sZWZ0XCIgOiBcImhvcml6b250YWwtcmlnaHRcIjtcclxuICAgICAgICAgICAgb25Td2lwZShkZXRlY3RlZFN3aXBlRGlyZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc2V0IHRoZSAnc3RhcnRUb3VjaCdcclxuICAgICAgICAgICAgc2V0U3RhcnRUb3VjaChudWxsKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZWYuY3VycmVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBvblRvdWNoU3RhcnQpO1xyXG4gICAgICAgIHJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBvblRvdWNoRW5kKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVmQ3VycmVudCA9IHJlZi5jdXJyZW50O1xyXG5cclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICByZWZDdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIG9uVG91Y2hTdGFydCk7XHJcbiAgICAgICAgICAgIHJlZkN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIG9uVG91Y2hFbmQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9LCBbcmVmLCBvblN3aXBlLCBzdGFydFRvdWNoXSk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbi8qKiBBbmltYXRlcyBhIFJlYWN0IEZ1bmN0aW9uYWwgQ29tcG9uZW50IGluIGEgZ2l2ZW4gZGlyZWN0aW9uLiAqL1xyXG5leHBvcnQgY29uc3QgQW5pbWF0ZTogUmVhY3QuRkM8eyBjaGlsZHJlbjogSlNYLkVsZW1lbnQ7IG9uOiBzdHJpbmc7IHN3aXBlRGlyZWN0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiZG93blwiIHwgbnVsbCB9PiA9ICh7XHJcbiAgICBjaGlsZHJlbixcclxuICAgIG9uLFxyXG4gICAgc3dpcGVEaXJlY3Rpb24sXHJcbn0pID0+IHtcclxuICAgIHJldHVybiBvbiA9PT0gdW5kZWZpbmVkID8gKFxyXG4gICAgICAgIDxkaXYgc3R5bGU9e3sgaGVpZ2h0OiBcIjEwMCVcIiB9fT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgICApIDogKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmFkZS1pblwiIHN0eWxlPXt7IGhlaWdodDogXCIxMDAlXCIgfX0ga2V5PXtvbn0gZGF0YS1zd2lwZS1kaXJlY3Rpb249e3N3aXBlRGlyZWN0aW9ufT5cclxuICAgICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgRmFDaXJjbGUgfSBmcm9tIFwicmVhY3QtaWNvbnMvZmFcIjtcclxuaW1wb3J0IHsgU3dpcGVEaXJlY3Rpb24sIHVzZVN3aXBlTGlzdGVuZXIgfSBmcm9tIFwiLi4vSG9va3MvdXNlU3dpcGVMaXN0ZW5lclwiO1xyXG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IEFuaW1hdGUgfSBmcm9tIFwiLi9BbmltYXRlXCI7XHJcblxyXG4vKiogUmVhY3QgRnVuY3Rpb25hbCBDb21wb25lbnQgUmVwcmVzZW50aW5nIGEgTW9iaWxlIFBob25lIENhcm91c2VsLiAqL1xyXG5leHBvcnQgY29uc3QgTW9iaWxlQ2Fyb3VzZWw6IFJlYWN0LkZDPHtcclxuICAgIGl0ZW1zOiBKU1guRWxlbWVudFtdO1xyXG4gICAgY3VycmVudEluZGV4OiBudW1iZXI7XHJcbiAgICB1cGRhdGVJbmRleDogKG5ld1ZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XHJcbn0+ID0gKHsgaXRlbXMsIGN1cnJlbnRJbmRleCwgdXBkYXRlSW5kZXggfSkgPT4ge1xyXG4gICAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgICBjb25zdCBbc3dpcGVEaXJlY3Rpb24sIHNldFN3aXBlRGlyZWN0aW9uXSA9IHVzZVN0YXRlPFwicmlnaHRcIiB8IFwibGVmdFwiIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gICAgLyoqIEhhbmRsZXMgc3dpcGluZyBvZiB0aGUgTW9iaWxlIENhcm91c2VsLiAqL1xyXG4gICAgdXNlU3dpcGVMaXN0ZW5lcih7XHJcbiAgICAgICAgcmVmLFxyXG4gICAgICAgIG9uU3dpcGU6IChkaXJlY3Rpb246IFN3aXBlRGlyZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1yaWdodFwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHNldFN3aXBlRGlyZWN0aW9uKFwicmlnaHRcIik7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVJbmRleChjdXJyZW50SW5kZXggLSAxKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLWxlZnRcIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCArIDEgPT09IGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBzZXRTd2lwZURpcmVjdGlvbihcImxlZnRcIik7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVJbmRleChjdXJyZW50SW5kZXggKyAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvKiogSGFuZGxlcyB0aGUgdXBkYXRlIG9mIHRoZSBpbmRleCBhbmQgc2V0cyB0aGUgZGlyZWN0aW9uIGFjY29yZGluZ2x5LiAqL1xyXG4gICAgY29uc3QgaGFuZGxlQ2xpY2tVcGRhdGUgPSAobmV3SW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChuZXdJbmRleCA8IGN1cnJlbnRJbmRleCkge1xyXG4gICAgICAgICAgICBzZXRTd2lwZURpcmVjdGlvbihcInJpZ2h0XCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNldFN3aXBlRGlyZWN0aW9uKFwibGVmdFwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdXBkYXRlSW5kZXgobmV3SW5kZXgpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2Fyb3VzZWxcIiByZWY9e3JlZn0+XHJcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZSBvbj17Y3VycmVudEluZGV4LnRvU3RyaW5nKCl9IHN3aXBlRGlyZWN0aW9uPXtzd2lwZURpcmVjdGlvbn0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW1zW2N1cnJlbnRJbmRleF19XHJcbiAgICAgICAgICAgICAgICA8L0FuaW1hdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvbi16b25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW1zLm1hcCgoXywgaW5kZXgpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEZhQ2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2VsZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2luZGV4ID09PSBjdXJyZW50SW5kZXggPyBcImJsYWNrXCIgOiBcImdyYXlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrVXBkYXRlKGluZGV4KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQnNBc3RlcmlzayB9IGZyb20gXCJyZWFjdC1pY29ucy9ic1wiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4uL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCIuLi9Ub29sdGlwXCI7XHJcbmltcG9ydCB7IExpbmssIExpbmtQcm9wcyB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcblxyXG4vKiogSHlwZXJsaW5rIGZpZWxkICovXHJcbmV4cG9ydCBjb25zdCBIeXBlcmxpbmtGaWVsZDogUmVhY3QuRkM8e1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHRpdGxlPzogc3RyaW5nO1xyXG4gICAgdG9vbHRpcD86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICAgIGxpbmtEZXRhaWxzOiB7XHJcbiAgICAgICAgaHJlZjogc3RyaW5nO1xyXG4gICAgICAgIGljb25QYXRoPzogc3RyaW5nO1xyXG4gICAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgICBhZGRpdGlvbmFsUHJvcHM/OiBQYXJ0aWFsPExpbmtQcm9wcz47XHJcbiAgICB9O1xyXG4gICAgYWRkaXRpb25hbExhYmVsUHJvcHM/OiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5MYWJlbEhUTUxBdHRyaWJ1dGVzPEhUTUxMYWJlbEVsZW1lbnQ+LCBIVE1MTGFiZWxFbGVtZW50PiAmIHtcclxuICAgICAgICBbZGF0YUF0dHJpYnV0ZTogc3RyaW5nXTogYW55O1xyXG4gICAgfTtcclxuICAgIHJlcXVpcmVkR3JvdXA/OiBib29sZWFuO1xyXG59PiA9ICh7IG5hbWUsIGxhYmVsLCB0aXRsZSwgdG9vbHRpcCwgbGlua0RldGFpbHMsIGFkZGl0aW9uYWxMYWJlbFByb3BzLCByZXF1aXJlZEdyb3VwIH0pID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGxhYmVsIGRhdGEtbmFtZT17bmFtZX0gY2xhc3NOYW1lPVwiZmllbGQgaHlwZXJsaW5rLWZpZWxkXCIgdGl0bGU9e3RpdGxlIHx8IFwiXCJ9IHsuLi5hZGRpdGlvbmFsTGFiZWxQcm9wc30+XHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZC1sYWJlbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAge3JlcXVpcmVkR3JvdXAgJiYgPEJzQXN0ZXJpc2sgY2xhc3NOYW1lPVwicmVxdWlyZWQtZ3JvdXAtaWNvblwiIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIHt0b29sdGlwICYmIDxUb29sdGlwIG92ZXJsYXlDb250ZW50PXt0b29sdGlwfSAvPn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPExpbmsgY2xhc3NOYW1lPVwiZmllbGQtY29udHJvbFwiIHRvPXtsaW5rRGV0YWlscy5ocmVmfSB7Li4ubGlua0RldGFpbHMuYWRkaXRpb25hbFByb3BzfT5cclxuICAgICAgICAgICAgICAgICAgICB7bGlua0RldGFpbHMuaWNvblBhdGggJiYgPGltZyBjbGFzc05hbWU9XCJpY29uXCIgc3JjPXtsaW5rRGV0YWlscy5pY29uUGF0aH0gaGVpZ2h0PVwiMTZcIiAvPn17XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsIHRleHRPdmVyZmxvdzogXCJlbGxpcHNpc1wiLCB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bGlua0RldGFpbHMubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIFJlZk9iamVjdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7XHJcbiAgICBQb3NpdGlvbmluZ0ltcGVyYXRpdmVSZWYsXHJcbiAgICBUZWFjaGluZ1BvcG92ZXIsXHJcbiAgICBUZWFjaGluZ1BvcG92ZXJCb2R5LFxyXG4gICAgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWwsXHJcbiAgICBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQsXHJcbiAgICBUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlcixcclxuICAgIFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2LFxyXG4gICAgVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXZCdXR0b24sXHJcbiAgICBUZWFjaGluZ1BvcG92ZXJTdXJmYWNlLFxyXG4gICAgVGVhY2hpbmdQb3BvdmVyVGl0bGUsXHJcbn0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcblxyXG4vKiogVHlwZSByZXByZXNlbnRpbmcgYSB0ZWFjaGluZyBidWJibGUuICovXHJcbmV4cG9ydCB0eXBlIFRlYWNoaW5nQnViYmxlID0ge1xyXG4gICAgcmVmRWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw7XHJcbiAgICBoZWFkbGluZTogc3RyaW5nO1xyXG4gICAgY29udGVudDogc3RyaW5nO1xyXG59O1xyXG5cclxuLyoqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBmaW5pc2ggdHlwZSBvZiBhIHRlYWNoaW5nIGJ1YmJsZS4gKi9cclxuZXhwb3J0IHR5cGUgRmluaXNoVHlwZSA9IFwiZGlzbWlzc2VkXCIgfCBcImNvbXBsZXRlZFwiO1xyXG5cclxuLyoqIFJlYWN0IEZDIHJlcHJlc2VudGluZyBhIExpc3Qgb2YgdGVhY2hpbmcgYnViYmxlcyB3aGljaCBjYW4gYmUgcG9zaXRpb25lZCBhcm91bmQgYSBnaXZlbiBwYWdlLiAqL1xyXG5leHBvcnQgY29uc3QgTXVsdGlTdGVwVGVhY2hpbmdCdWJibGU6IFJlYWN0LkZDPHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHBvc2l0aW9uaW5nUmVmOiBSZWZPYmplY3Q8UG9zaXRpb25pbmdJbXBlcmF0aXZlUmVmPjtcclxuICAgIHRlYWNoaW5nQnViYmxlczogVGVhY2hpbmdCdWJibGVbXTtcclxuICAgIGNsb3NlVGVhY2hpbmdCdWJibGU6ICh0eXBlOiBGaW5pc2hUeXBlKSA9PiB2b2lkO1xyXG59PiA9ICh7IG5hbWUsIHBvc2l0aW9uaW5nUmVmLCB0ZWFjaGluZ0J1YmJsZXMsIGNsb3NlVGVhY2hpbmdCdWJibGUgfSkgPT4ge1xyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHRlYWNoaW5nQnViYmxlc1swXT8uaGVhZGxpbmUpO1xyXG5cclxuICAgIGNvbnN0IHsgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcblxyXG4gICAgLy8gVXBkYXRlcyB0aGUgY3VycmVudGx5IHNob3duIHRlYWNoaW5nIGJ1YmJsZS5cclxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3U3RhZ2UgPSB2YWx1ZSA/IHRlYWNoaW5nQnViYmxlcy5maW5kKChidWJibGUpID0+IGJ1YmJsZS5oZWFkbGluZSA9PT0gdmFsdWUpIDogdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICBpZiAoIW5ld1N0YWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBvc2l0aW9uaW5nUmVmPy5jdXJyZW50Py5zZXRUYXJnZXQobmV3U3RhZ2UucmVmRWxlbWVudCk7XHJcbiAgICB9LCBbcG9zaXRpb25pbmdSZWYsIHRlYWNoaW5nQnViYmxlcywgdmFsdWVdKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxUZWFjaGluZ1BvcG92ZXIgcG9zaXRpb25pbmc9e3sgcG9zaXRpb25pbmdSZWY6IHBvc2l0aW9uaW5nUmVmIH19IG9wZW49e3RydWV9IGFwcGVhcmFuY2U9XCJicmFuZFwiPlxyXG4gICAgICAgICAgICA8VGVhY2hpbmdQb3BvdmVyU3VyZmFjZT5cclxuICAgICAgICAgICAgICAgIDxUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgICAgICAgICAgICBvblZhbHVlQ2hhbmdlPXsoXywgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGEudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBvbkZpbmlzaD17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaW5pc2hUeXBlOiBGaW5pc2hUeXBlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICE9PSB0ZWFjaGluZ0J1YmJsZXNbdGVhY2hpbmdCdWJibGVzLmxlbmd0aCAtIDFdPy5oZWFkbGluZSA/IFwiZGlzbWlzc2VkXCIgOiBcImNvbXBsZXRlZFwiO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHN0YWdlIGlzIG5vdCB0aGUgbGFzdCBvbmUgdGhlbiB0aGUgc3RhZ2Ugd2FzIGRpc21pc3NlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmluaXNoVHlwZSA9PT0gXCJkaXNtaXNzZWRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJUZWFjaGluZyBCdWJibGUgLSBEaXNtaXNzZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWFjaGluZ0J1YmJsZU5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiVGVhY2hpbmcgQnViYmxlIC0gQ29tcGxldGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVhY2hpbmdCdWJibGVOYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlVGVhY2hpbmdCdWJibGUoZmluaXNoVHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7dGVhY2hpbmdCdWJibGVzLm1hcCgoYnViYmxlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQga2V5PXtidWJibGUuaGVhZGxpbmV9IHZhbHVlPXtidWJibGUuaGVhZGxpbmV9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRlYWNoaW5nUG9wb3ZlckJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRlYWNoaW5nUG9wb3ZlclRpdGxlPntidWJibGUuaGVhZGxpbmV9PC9UZWFjaGluZ1BvcG92ZXJUaXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PntidWJibGUuY29udGVudH08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGVhY2hpbmdQb3BvdmVyQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgKSl9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0PVwiTmV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzPVwiUHJldmlvdXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RlcFRleHQ9XCJDbG9zZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsU3RlcFRleHQ9XCJGaW5pc2hcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IDxUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdj5cclxuICAgICAgICAgICAgICAgICAgICA8L1RlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgPC9UZWFjaGluZ1BvcG92ZXJDYXJvdXNlbD5cclxuICAgICAgICAgICAgPC9UZWFjaGluZ1BvcG92ZXJTdXJmYWNlPlxyXG4gICAgICAgIDwvVGVhY2hpbmdQb3BvdmVyPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBTdHJpbmdGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9TdHJpbmdGaWVsZFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyRm9yUmV0cmlldmFsIH0gZnJvbSBcIi4uLy4uL01vZGVscy9OZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWxcIjtcclxuaW1wb3J0IHsgVGltZWxpbmUgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9UaW1lbGluZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbCxcclxuICAgIFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9ORVRXT1JLX09SREVSX01FVEFEQVRBLFxyXG59IGZyb20gXCIuLi8uLi9Nb2RlbHMvUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL05ldHdvcmtPcmRlclN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5pbXBvcnQgeyBCdXR0b25JbmZvcm1hdGlvbiB9IGZyb20gXCIuLi8uLi9UeXBlcy9CdXR0b25JbmZvcm1hdGlvblwiO1xyXG5pbXBvcnQgeyBDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiB9IGZyb20gXCIuLi8uLi9UeXBlcy9DYWxsVG9BY3Rpb25JbmZvcm1hdGlvblwiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VBcHBJbnNpZ2h0c1wiO1xyXG5pbXBvcnQgeyBDYWxsVG9BY3Rpb25CYXNlUGFnZSB9IGZyb20gXCIuLi9DYWxsVG9BY3Rpb25CYXNlUGFnZVwiO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uU3RhdGUgfSBmcm9tIFwiLi4vLi4vVHlwZXMvU3VibWlzc2lvblN0YXRlXCI7XHJcbmltcG9ydCB7IHRvUGFydGlhbERpZmYgfSBmcm9tIFwiLi4vLi4vSGVscGVycy90b1BhcnRpYWxEaWZmXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YWdlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvTmV0d29ya09yZGVyU3RhZ2VDb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL05ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBNb2JpbGVDYXJvdXNlbCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL01vYmlsZUNhcm91c2VsXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlckZvclVwZGF0ZSB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvTmV0d29ya09yZGVyRm9yVXBkYXRlXCI7XHJcbmltcG9ydCB7IEltU3Bpbm5lcjIgfSBmcm9tIFwicmVhY3QtaWNvbnMvaW1cIjtcclxuaW1wb3J0IHsgaXNQcm9kdWN0aW9uIH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvRW52aXJvbm1lbnRCYW5uZXJcIjtcclxuaW1wb3J0IHsgUEFHRVMgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgSHlwZXJsaW5rRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvSHlwZXJsaW5rRmllbGRcIjtcclxuaW1wb3J0IHsgQ1JFQVRFX1BPUlRBTF9DT01NRU5UX05FVFdPUktfT1JERVJfTUVUQURBVEEgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JDcmVhdGVcIjtcclxuaW1wb3J0IHsgZnJvbUxvYWRpbmdEYXRhIH0gZnJvbSBcIi4uLy4uL0hlbHBlcnMvZnJvbUxvYWRpbmdEYXRhXCI7XHJcbmltcG9ydCB7IFBvc2l0aW9uaW5nSW1wZXJhdGl2ZVJlZiB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBGaW5pc2hUeXBlLCBNdWx0aVN0ZXBUZWFjaGluZ0J1YmJsZSB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL011bHRpU3RlcFRlYWNoaW5nQnViYmxlXCI7XHJcblxyXG4vKiogVGhlIG5hbWUgb2YgdGhlIE5ldHdvcmsgT3JkZXIgdGVhY2hpbmcgYnViYmxlIHN0YXR1cyBpbiBsb2NhbCBzdG9yYWdlLiAqL1xyXG5leHBvcnQgY29uc3QgTkVUV09SS19PUkRFUl9URUFDSElOR19CVUJCTEVfU0hPV05fSUQgPSBcIkJpc3RlY2g6VGVhY2hpbmdCdWJibGU6TmV0d29ya09yZGVyLTIwMjQtMDhcIjtcclxuXHJcbi8qIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBFZGl0IE5ldHdvcmsgT3JkZXJzIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IE5ldHdvcmtPcmRlcnNFZGl0Q29udGVudCA9IChwcm9wczoge1xyXG4gICAgaW5pdGlhbE5ldHdvcmtPcmRlcjogTmV0d29ya09yZGVyRm9yUmV0cmlldmFsO1xyXG4gICAgb25TYXZlOiAoKSA9PiB2b2lkO1xyXG59KSA9PiB7XHJcbiAgICBjb25zdCBkYXRhU2VydmljZSA9IHVzZURhdGFTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcblxyXG4gICAgY29uc3QgbmV0d29ya09yZGVycyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUubmV0d29ya09yZGVycyk7XHJcbiAgICBjb25zdCBwcm9qZWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUucHJvamVjdHMpO1xyXG4gICAgY29uc3Qgb3JkZXJzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5vcmRlcnMpO1xyXG4gICAgY29uc3QgY3VzdG9tZXJBc3NldHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmN1c3RvbWVyQXNzZXRzKTtcclxuICAgIGNvbnN0IGFjY291bnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5hY2NvdW50cyk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YSwgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcbiAgICBjb25zdCBkaXJ0eUJhbm5lclNldHRpbmdzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5kaXJ0eUJhbm5lclNldHRpbmdzKTtcclxuXHJcbiAgICBjb25zdCBbdGVhY2hpbmdCdWJibGVJc0VuYWJsZWQsIHNldFRlYWNoaW5nQnViYmxlSXNFbmFibGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKE5FVFdPUktfT1JERVJfVEVBQ0hJTkdfQlVCQkxFX1NIT1dOX0lEKSAhPT0gXCJmYWxzZVwiXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IFtjdXJyZW50bHlTZWxlY3RlZE5ldHdvcmtPcmRlciwgc2V0Q3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXJdID0gdXNlU3RhdGU8TmV0d29ya09yZGVyRm9yUmV0cmlldmFsPihcclxuICAgICAgICBwcm9wcy5pbml0aWFsTmV0d29ya09yZGVyXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IG5ldHdvcmtPcmRlclN0YWdlcyA9IHByb3BzLmluaXRpYWxOZXR3b3JrT3JkZXIuYmlzdGVjaF9iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlX25ldHdvcmtvcmRlcl9iaTtcclxuXHJcbiAgICBjb25zdCBbcmVsYXRlZFNpdGUsIHNldFJlbGF0ZWRTaXRlXSA9IHVzZVN0YXRlKHsgYWNjb3VudGlkOiBcIlwiLCBuYW1lOiBcIlwiIH0pO1xyXG4gICAgY29uc3QgW3NlbGVjdGVkU3RhZ2UsIHNldFNlbGVjdGVkU3RhZ2VdID0gdXNlU3RhdGU8bnVtYmVyPihuZXR3b3JrT3JkZXJTdGFnZXMubGVuZ3RoIC0gMSk7XHJcblxyXG4gICAgY29uc3QgcmVsYXRlZE9yZGVyID0gZnJvbUxvYWRpbmdEYXRhKG9yZGVycywgKG8pID0+XHJcbiAgICAgICAgby5maW5kKChvcmRlcikgPT4gb3JkZXIuc2FsZXNvcmRlcmlkID09PSBjdXJyZW50bHlTZWxlY3RlZE5ldHdvcmtPcmRlci5fYmlzdGVjaF9zYWxlc29yZGVyX3ZhbHVlKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCByZWxhdGVkUHJvamVjdCA9IGZyb21Mb2FkaW5nRGF0YShwcm9qZWN0cywgKHApID0+XHJcbiAgICAgICAgcC5maW5kKFxyXG4gICAgICAgICAgICAocHJvamVjdCkgPT4gcHJvamVjdC5tc2R5bl9wcm9qZWN0aWQgPT09IGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLl9iaXN0ZWNoX3Byb2plY3RuZXR3b3Jrb3JkZXJfdmFsdWVcclxuICAgICAgICApXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHJlbGF0ZWRDdXN0b21lckFzc2V0ID0gZnJvbUxvYWRpbmdEYXRhKGN1c3RvbWVyQXNzZXRzLCAoY2EpID0+XHJcbiAgICAgICAgY2EuZmluZChcclxuICAgICAgICAgICAgKGN1c3RvbWVyQXNzZXQpID0+XHJcbiAgICAgICAgICAgICAgICBjdXN0b21lckFzc2V0Lm1zZHluX2N1c3RvbWVyYXNzZXRpZCA9PT0gY3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXIuX2Jpc3RlY2hfY3VzdG9tZXJhc3NldF92YWx1ZVxyXG4gICAgICAgIClcclxuICAgICk7XHJcblxyXG4gICAgLy8gVGVhY2hpbmcgYnViYmxlIHJlZmVyZW5jZXNcclxuICAgIGNvbnN0IG5ldHdvcmtPcmRlclN0YWdlc1JlZmVyZW5jZSA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgICBjb25zdCBzcGVjaWZpY1N0YWdlUmVmZXJlbmNlID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuICAgIGNvbnN0IHRpbWVsaW5lUmVmZXJlbmNlID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuICAgIGNvbnN0IHRlYWNoaW5nQnViYmxlUmVmID0gdXNlUmVmPFBvc2l0aW9uaW5nSW1wZXJhdGl2ZVJlZj4obnVsbCk7XHJcblxyXG4gICAgY29uc3QgdGVhY2hpbmdCdWJibGVzOiB7IHJlZkVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDsgaGVhZGxpbmU6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH1bXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJlZkVsZW1lbnQ6IG5ldHdvcmtPcmRlclN0YWdlc1JlZmVyZW5jZS5jdXJyZW50LFxyXG4gICAgICAgICAgICBoZWFkbGluZTogXCJLZWVwIHRyYWNrIG9mIHByb2dyZXNzXCIsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiVGhpcyB0aW1lbGluZSBzaG93cyBob3cgdGhlIGluc3RhbGxhdGlvbiBvZiB5b3VyIG5ldHdvcmsgb3JkZXIgaXMgcHJvZ3Jlc3NpbmdcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVmRWxlbWVudDogc3BlY2lmaWNTdGFnZVJlZmVyZW5jZS5jdXJyZW50LFxyXG4gICAgICAgICAgICBoZWFkbGluZTogXCJGaW5kIG91dCBtb3JlXCIsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiU2VsZWN0IGEgc3RhZ2UgdG8gdmlldyBtb3JlIGRldGFpbHNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVmRWxlbWVudDogdGltZWxpbmVSZWZlcmVuY2UuY3VycmVudCxcclxuICAgICAgICAgICAgaGVhZGxpbmU6IFwiVmlldyBhbmQgbGVhdmUgY29tbWVudHNcIixcclxuICAgICAgICAgICAgY29udGVudDogXCJWaWV3IGNvcnJlc3BvbmRlbmNlIGFuZCBzZW5kIGEgbWVzc2FnZSBvciBhIHF1ZXJ5IHRvIHlvdXIgUHJvamVjdCBNYW5hZ2VyIGhlcmVcIixcclxuICAgICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyBFbnN1cmUgdGhlIGxhdGVzdCBzdGFnZSBpcyBzZWxlY3RlZCB3aGVuIHRoZSBuZXR3b3JrT3JkZXJTdGFnZXMgY2hhbmdlLlxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAobmV0d29ya09yZGVyU3RhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRTdGFnZShuZXR3b3JrT3JkZXJTdGFnZXMubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW25ldHdvcmtPcmRlclN0YWdlc10pO1xyXG5cclxuICAgIGNvbnN0IFtuZXR3b3JrT3JkZXJUb1VwZGF0ZSwgc2V0TmV0d29ya09yZGVyXSA9IHVzZVN0YXRlPE5ldHdvcmtPcmRlckZvclVwZGF0ZT4oe1xyXG4gICAgICAgIF9iaXN0ZWNoX2NvbnRhY3RfdmFsdWU6IGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLl9iaXN0ZWNoX2NvbnRhY3RfdmFsdWUgPz8gbnVsbCxcclxuICAgICAgICBzdGF0dXNjb2RlOiBjdXJyZW50bHlTZWxlY3RlZE5ldHdvcmtPcmRlci5zdGF0dXNjb2RlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgW3BvcnRhbENvbW1lbnRzLCBzZXRQb3J0YWxDb21tZW50c10gPSB1c2VTdGF0ZTxQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsW10+KFxyXG4gICAgICAgIHByb3BzLmluaXRpYWxOZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYWR4X3BvcnRhbGNvbW1lbnRzID8/IFtdXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IFtzdWJtaXNzaW9uU3RhdGUsIHNldFN1Ym1pc3Npb25TdGF0ZV0gPSB1c2VTdGF0ZTxTdWJtaXNzaW9uU3RhdGU+KHtcclxuICAgICAgICBzdGF0ZTogXCJpZGxlXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHdoaWNoIGNvbnRyb2xzIHRoZSBoYW5kbGluZyBvZiBkYXRhIGdlbmVyYXRpb24gZm9yIHRoZSBDYWxsVG9BY3Rpb25CYXNlUGFnZS5cclxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCBvZiBDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiB3aGljaCByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIENhbGxUb0FjdGlvbkJhc2VQYWdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbigpOiBMb2FkaW5nRGF0YTxDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbj4ge1xyXG4gICAgICAgIC8vIFRoaXMgaXMgZmVhdHVyZSBmbGFnZ2VkIHRvIG9ubHkgc2hvdyB3aGVuIHRoZSBlbnZpcm9uZW1lbnQgaXMgbm90ICdQcm9kdWN0aW9uJyAoc2VlICMzODEwNykuXHJcbiAgICAgICAgY29uc3Qgc2hvd1JlcXVlc3RPcmRlckJ1dHRvbiA9XHJcbiAgICAgICAgICAgIGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLnN0YXR1c2NvZGUgPT09IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUuUGVuZGluZyAmJiAhaXNQcm9kdWN0aW9uO1xyXG5cclxuICAgICAgICBjb25zdCByZXF1ZXN0T3JkZXJCdXR0b246IEJ1dHRvbkluZm9ybWF0aW9uID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogXCJSZXF1ZXN0IE9yZGVyXCIsXHJcbiAgICAgICAgICAgIGhhc01vZGFsOiBmYWxzZSxcclxuICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ldHdvcmtPcmRlcnMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoeyBzdGF0ZTogXCJzdWJtaXR0aW5nXCIgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJFZGl0IE5ldHdvcmsgT3JkZXIgLSBDYWxsLXRvLUFjdGlvbiBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBidXR0b25OYW1lOiBcIlJlcXVlc3QgT3JkZXJcIixcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHNldE5ldHdvcmtPcmRlcih7IC4uLm5ldHdvcmtPcmRlclRvVXBkYXRlLCBzdGF0dXNjb2RlOiBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlW1wiUmVhZHkgVG8gT3JkZXJcIl0gfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXR3b3JrT3JkZXJUb1VwZGF0ZVBhcnRpYWw6IE5ldHdvcmtPcmRlckZvclVwZGF0ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV0d29ya09yZGVyVG9VcGRhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c2NvZGU6IE5ldHdvcmtPcmRlclN0YXR1c0NvZGVbXCJSZWFkeSBUbyBPcmRlclwiXSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTmV0d29ya09yZGVyOiBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWwgPSBhd2FpdCBkYXRhU2VydmljZS51cGRhdGVOZXR3b3JrT3JkZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvUGFydGlhbERpZmYoY3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXIsIG5ldHdvcmtPcmRlclRvVXBkYXRlUGFydGlhbClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQWRkTm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoYW5rIHlvdSBmb3IgY29uZmlybWF0aW9uIHRvIHByb2NlZWQsIG91ciB0ZWFtIHdpbGwgcGxhY2UgeW91ciBuZXR3b3JrIG9yZGVyIHdpdGggdGhlIGNhcnJpZXIgYW5kIHlvdSB3aWxsIHJlY2VpdmUgdXBkYXRlcyBhcyB0aGlzIHByb2dyZXNzZXNcIixcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWRPblJlbGF0aXZlVXJsOiBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXROZXR3b3JrT3JkZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBuZXR3b3JrT3JkZXJzLmRhdGEubWFwKChvKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8uYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZCA9PT0gY3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHVwZGF0ZWROZXR3b3JrT3JkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiU2V0RGlydHlCYW5uZXJTZXR0aW5nc1wiLCBkaXJ0eUJhbm5lclNldHRpbmdzOiB1bmRlZmluZWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhPy4oZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yOiBlIGFzIGFueSB9KTtcclxuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiaWRsZVwiIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IGNhbGxUb0FjdGlvbkRldGFpbHMgPSBnZXRDYWxsVG9BY3Rpb25EZXRhaWxzKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBjYWxsVG9BY3Rpb25EZXRhaWxzPy50aXRsZSA/PyBcIlwiLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNhbGxUb0FjdGlvbkRldGFpbHM/LmRlc2NyaXB0aW9uID8/IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBjYWxsVG9BY3Rpb25EZXRhaWxzPy5pY29uID8/IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBidXR0b25zOiBzaG93UmVxdWVzdE9yZGVyQnV0dG9uID8gW3JlcXVlc3RPcmRlckJ1dHRvbl0gOiBbXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGFzVW5zYXZlZENoYW5nZXMgPVxyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyh0b1BhcnRpYWxEaWZmKGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLCBuZXR3b3JrT3JkZXJUb1VwZGF0ZSkpLmxlbmd0aCA+IDA7XHJcblxyXG4gICAgICAgIGlmIChoYXNVbnNhdmVkQ2hhbmdlcykge1xyXG4gICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIlNldERpcnR5QmFubmVyU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgIGRpcnR5QmFubmVyU2V0dGluZ3M6IHsgdHlwZTogXCJzaG93U2F2ZUJ1dHRvblwiLCBzYXZlRnVuY3Rpb246IG9uU3VibWl0LCBzdWJtaXNzaW9uUHJlcmVxdWlzaXRlczogW10gfSxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiU2V0RGlydHlCYW5uZXJTZXR0aW5nc1wiLCBkaXJ0eUJhbm5lclNldHRpbmdzOiB1bmRlZmluZWQgfSk7XHJcbiAgICB9LCBbbmV0d29ya09yZGVyVG9VcGRhdGVdKTtcclxuXHJcbiAgICAvLyBTZXQgdGhlIGNhbGwgdG8gYWN0aW9uIGRldGFpbHMgYmFzZWQgb24gdGhlIE9yZGVyIHN0YXR1cy5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBvcmRlcnMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIiB8fFxyXG4gICAgICAgICAgICBjdXN0b21lckFzc2V0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiIHx8XHJcbiAgICAgICAgICAgIGFjY291bnRzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVsYXRlZFNpdGUgPSBhY2NvdW50cy5kYXRhLmZpbmQoXHJcbiAgICAgICAgICAgIChhY2NvdW50KSA9PiBhY2NvdW50LmFjY291bnRpZCA9PT0gcmVsYXRlZEN1c3RvbWVyQXNzZXQ/Ll9iaXN0ZWNoX3NpdGVfdmFsdWVcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAocmVsYXRlZFNpdGUpIHtcclxuICAgICAgICAgICAgc2V0UmVsYXRlZFNpdGUocmVsYXRlZFNpdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtjdXJyZW50bHlTZWxlY3RlZE5ldHdvcmtPcmRlciwgb3JkZXJzLCByZWxhdGVkQ3VzdG9tZXJBc3NldF0pO1xyXG5cclxuICAgIC8vIHJldHVybiB0aGUgY2FsbCB0byBhY3Rpb24gZGV0YWlscyBiYXNlZCBvbiB0aGUgT3JkZXIgc3RhdHVzLlxyXG4gICAgZnVuY3Rpb24gZ2V0Q2FsbFRvQWN0aW9uRGV0YWlscygpIHtcclxuICAgICAgICBzd2l0Y2ggKGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLnN0YXR1c2NvZGUpIHtcclxuICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLlBlbmRpbmc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIlBlbmRpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJZb3VyIG5ldHdvcmsgb3JkZXIgaGFzIG5vdCB5ZXQgYmVlbiBwbGFjZWQgLSBwbGVhc2UgbGV0IHVzIGtub3cgd2hlbiB5b3UgYXJlIHJlYWR5IHRvIHByb2NlZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBpY29uOiBcIi9uZXR3b3JrLW9yZGVyLWNhbGwtdG8tYWN0aW9uLXBlbmRpbmcuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlW1wiUmVhZHkgVG8gT3JkZXJcIl06XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIlByb2Nlc3NpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJZb3VyIG5ldHdvcmsgb3JkZXIgaXMgYmVpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBCaXN0ZWNoIHRlYW1cIixcclxuICAgICAgICAgICAgICAgICAgICBpY29uOiBcIi9uZXR3b3JrLW9yZGVyLWNhbGwtdG8tYWN0aW9uLXByb2Nlc3Npbmcuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlW1wiSW4gUHJvZ3Jlc3NcIl06XHJcbiAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhdHVzQ29kZS5SZWplY3RlZDpcclxuICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLkRlbGF5ZWQ6XHJcbiAgICAgICAgICAgIGNhc2UgTmV0d29ya09yZGVyU3RhdHVzQ29kZS5Db25maXJtZWQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkluIFByb2dyZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBuZXR3b3JrIG9yZGVyIGlzIGluIHByb2dyZXNzIHdpdGggdGhlIGNhcnJpZXIgLSB1cGRhdGVzIHdpbGwgYmUgcHJvdmlkZWQgd2hlbiByZWNlaXZlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246IFwiL25ldHdvcmstb3JkZXItY2FsbC10by1hY3Rpb24taW4tcHJvZ3Jlc3Muc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY2FzZSBOZXR3b3JrT3JkZXJTdGF0dXNDb2RlLkNvbXBsZXRlZDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRnVsZmlsbGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiWW91ciBuZXR3b3JrIG9yZGVyIGhhcyBiZWVuIGNvbXBsZXRlZCBieSB0aGUgY2FycmllclwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246IFwiL25ldHdvcmstb3JkZXItY2FsbC10by1hY3Rpb24tZnVsZmlsbGVkLnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQoZT86IFJlYWN0LkZvcm1FdmVudDxIVE1MRm9ybUVsZW1lbnQ+KSB7XHJcbiAgICAgICAgZT8ucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwic3VibWl0dGluZ1wiIH0pO1xyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkVkaXQgTmV0d29yayBPcmRlciAtIE5ldHdvcmsgT3JkZXIgdXBkYXRlIHN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgICBuZXR3b3JrT3JkZXJJZDogcHJvcHMuaW5pdGlhbE5ldHdvcmtPcmRlci5iaXN0ZWNoX25ldHdvcmtvcmRlcmlkLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoIW5ldHdvcmtPcmRlclRvVXBkYXRlLl9iaXN0ZWNoX2NvbnRhY3RfdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGRhdGFTZXJ2aWNlLmRpc2Fzc29jaWF0ZUNvbnRhY3RGcm9tTmV0d29ya09yZGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyaWRcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZU5ldHdvcmtPcmRlcihcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyaWQsXHJcbiAgICAgICAgICAgICAgICB0b1BhcnRpYWxEaWZmKGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLCBuZXR3b3JrT3JkZXJUb1VwZGF0ZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHNldEN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyKHJlc3VsdCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiZXJyb3JlZFwiLCBlcnJvcjogZXJyb3IgYXMgRXJyb3IgfSk7XHJcbiAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkVkaXQgTmV0d29yayBPcmRlciAtIE5ldHdvcmsgT3JkZXIgdXBkYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgbmV0d29ya09yZGVySWQ6IHByb3BzLmluaXRpYWxOZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZCxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKHsgc3RhdGU6IFwiY29tcGxldGVkXCIgfSk7XHJcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldERpcnR5QmFubmVyU2V0dGluZ3NcIiwgZGlydHlCYW5uZXJTZXR0aW5nczogdW5kZWZpbmVkIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xvc2VzIHRoZSB0ZWFjaGluZyBidWJibGUuXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiBmaW5pc2guXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGNsb3NlVGVhY2hpbmdCdWJibGUgPSAodHlwZTogRmluaXNoVHlwZSkgPT4ge1xyXG4gICAgICAgIHNldFRlYWNoaW5nQnViYmxlSXNFbmFibGVkKGZhbHNlKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGUgPT09IFwiY29tcGxldGVkXCIpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTkVUV09SS19PUkRFUl9URUFDSElOR19CVUJCTEVfU0hPV05fSUQsIFwiZmFsc2VcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxDYWxsVG9BY3Rpb25CYXNlUGFnZVxyXG4gICAgICAgICAgICB0aXRsZT17KHJlbGF0ZWRPcmRlcj8ub3JkZXJudW1iZXIgPz8gXCJcIikgKyBgIC0gYCArIGN1cnJlbnRseVNlbGVjdGVkTmV0d29ya09yZGVyLmJpc3RlY2hfbmFtZX1cclxuICAgICAgICAgICAgdGFncz17W119XHJcbiAgICAgICAgICAgIGNhbGxUb0FjdGlvbkluZm9ybWF0aW9uPXtnZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbigpfVxyXG4gICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGU9e3NldFN1Ym1pc3Npb25TdGF0ZX1cclxuICAgICAgICAgICAgcGFyZW50UGFnZVJlZmVyZW5jZT17e1xyXG4gICAgICAgICAgICAgICAgZWRpdElkTmFtZTogXCJvcmRlcklkXCIsXHJcbiAgICAgICAgICAgICAgICBmdWxsUGF0aDogYC9vcmRlcnMvZWRpdGAsXHJcbiAgICAgICAgICAgICAgICBwYWdlSWQ6IHJlbGF0ZWRPcmRlcj8uc2FsZXNvcmRlcmlkID8/IFwiXCIsXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8Zm9ybSBjbGFzc05hbWU9XCJlZGl0LW5ldHdvcmtvcmRlclwiIG9uU3VibWl0PXtvblN1Ym1pdH0+XHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgIHtuZXR3b3JrT3JkZXJTdGFnZXMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bmV0d29ya09yZGVyU3RhZ2VzUmVmZXJlbmNlfSBjbGFzc05hbWU9XCJuZXR3b3JrLW9yZGVyLXN0YWdlLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGVhY2hpbmdCdWJibGVJc0VuYWJsZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TXVsdGlTdGVwVGVhY2hpbmdCdWJibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJOZXR3b3JrIE9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlVGVhY2hpbmdCdWJibGU9e2Nsb3NlVGVhY2hpbmdCdWJibGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmluZ1JlZj17dGVhY2hpbmdCdWJibGVSZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWFjaGluZ0J1YmJsZXM9e3RlYWNoaW5nQnViYmxlc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmV0d29yay1vcmRlci1zdGFnZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuZXR3b3JrLW9yZGVyLXN0YWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1suLi5uZXR3b3JrT3JkZXJTdGFnZXNdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5zb3J0KChhLCBiKSA9PiBhLmJpc3RlY2hfc3RhZ2UgLSBiLmJpc3RlY2hfc3RhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5tYXAoKG5vcywgaW5kZXgpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luZGV4ICE9PSAwICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxiLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY2FyZC1zdGF0dXM9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHdvcmtPcmRlclN0YWdlU3RhdHVzQ29kZVtub3Muc3RhdHVzY29kZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17aW5kZXggPT09IDAgPyBzcGVjaWZpY1N0YWdlUmVmZXJlbmNlIDogdW5kZWZpbmVkfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmV0d29ya09yZGVyU3RhZ2VDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya09yZGVyU3RhZ2U9e25vc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya09yZGVySWQ9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXRlc3QtbmV0d29yay1vcmRlci1zdGFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZFN0YWdlICsgMSAhPT0gbmV0d29ya09yZGVyU3RhZ2VzLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgQ3VycmVudCBTdGFnZSAoJHtzZWxlY3RlZFN0YWdlICsgMX0vXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke25ldHdvcmtPcmRlclN0YWdlcy5sZW5ndGh9KWBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYExhdGVzdCBTdGFnZWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TW9iaWxlQ2Fyb3VzZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPXtbLi4ubmV0d29ya09yZGVyU3RhZ2VzXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uc29ydCgoYSwgYikgPT4gYS5iaXN0ZWNoX3N0YWdlIC0gYi5iaXN0ZWNoX3N0YWdlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKG5vcykgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmV0d29ya09yZGVyU3RhZ2VDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17bm9zLmJpc3RlY2hfbmV0d29ya29yZGVyc3RhZ2VpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlclN0YWdlPXtub3N9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrT3JkZXJJZD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4PXtzZWxlY3RlZFN0YWdlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW5kZXg9e3NldFNlbGVjdGVkU3RhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlbmVyYWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPkluZm9ybWF0aW9uPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29ubmVjdGlvbiBUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibXNkeW5fY3VzdG9tZXJhc3NldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD1cIkNvbm5lY3Rpdml0eSB0eXBlIGFuZCBzcGVlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3JlbGF0ZWRDdXN0b21lckFzc2V0Py5tc2R5bl9uYW1lID8/IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHt9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IHJlcXVpcmVkOiBmYWxzZSwgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkluc3RhbGxhdGlvbiBTaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibXNkeW5fY3VzdG9tZXJhc3NldHNpdGVuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPVwiU2l0ZSBuYW1lICYgcG9zdGNvZGUgd2hlcmUgY29ubmVjdGl2aXR5IGlzIHRvIGJlIHByb3ZpZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cmVsYXRlZFNpdGU/Lm5hbWUgPz8gXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgcmVxdWlyZWQ6IGZhbHNlLCBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWxhdGVkQ3VzdG9tZXJBc3NldD8uYmlzdGVjaF9zZXJpYWxudW1iZXIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlNlcmlhbCBOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYmlzdGVjaF9zZXJpYWxudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPVwiVGhlIHNlcmlhbCBudW1iZXIgb2YgdGhlIGFzc2V0LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtyZWxhdGVkQ3VzdG9tZXJBc3NldC5iaXN0ZWNoX3NlcmlhbG51bWJlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHt9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyByZXF1aXJlZDogZmFsc2UsIGRpc2FibGVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxMb29rdXBGaWVsZCAvLyBUT0RvOiAjMzk0ODkgLSBoaWRlIHByaW1hcnkgY29udGFjdCBmaWVsZCB0ZW1wb3JhcmlseSB0byBsYXRlciByZS1tYWtlIGl0IGFzIG11bHRpLXNlbGVjdCBvZiBkeW5hbWljcyBjb250YWN0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJfcHJpbWFyeWNvbnRhY3RpZF92YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJQcmltYXJ5IENvbnRhY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uSWQ9e25ldHdvcmtPcmRlclRvVXBkYXRlLl9iaXN0ZWNoX2NvbnRhY3RfdmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgbm9taW5hdGVkIGNvbnRhY3QgZm9yIGFsbCByZWxhdGVkIGNvcnJlc3BvbmRlbmNlIC0gdG8gdXBkYXRlIHRoaXMgcGxlYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0IHlvdXIgUHJvamVjdCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWxPcHRpb25zTmFtZT1cIkFjdGl2ZSBDb250YWN0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29udGFjdHMuZGF0YS5tYXAoKGNvbnRhY3QpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRhY3QuY29udGFjdGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBbY29udGFjdC5maXJzdG5hbWUsIGNvbnRhY3QubGFzdG5hbWVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+IHMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiBjb250YWN0LmVtYWlsYWRkcmVzczEgPz8gXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BpY2thYmxlOiBjb250YWN0LnN0YXRlY29kZSA9PT0gQ29udGFjdFN0YXRlQ29kZVtcIkFjdGl2ZVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkT3B0aW9uSWQ9eyhfYmlzdGVjaF9jb250YWN0X3ZhbHVlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXROZXR3b3JrT3JkZXIoeyAuLi5uZXR3b3JrT3JkZXJUb1VwZGF0ZSwgX2Jpc3RlY2hfY29udGFjdF92YWx1ZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbkNhcmRJbmZvPXsoc2VsZWN0ZWRPcHRpb24pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IDxGYVVzZXIgLz4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBzZWxlY3RlZE9wdGlvbi5wcmltYXJ5VGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dDogc2VsZWN0ZWRPcHRpb24uc2Vjb25kYXJ5VGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbEZpZWxkczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiSm9iIFRpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uLmNvbnRhY3Quam9idGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVGVsZXBob25lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uLmNvbnRhY3QudGVsZXBob25lMSB8fCBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1vYmlsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RlZE9wdGlvbi5jb250YWN0Lm1vYmlsZXBob25lIHx8IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUGVybWlzc2lvbiBMZXZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBCYXNlUGVybWlzc2lvbkxldmVsW3NlbGVjdGVkT3B0aW9uLmNvbnRhY3QuYmlzdGVjaF9wZXJtaXNzaW9ubGV2ZWwhXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGEgQ29udGFjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVsYXRlZFByb2plY3QgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIeXBlcmxpbmtGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlByb2plY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicHJvamVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtEZXRhaWxzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmOiBgJHtQQUdFUy5FZGl0UHJvamVjdC5wYXRofT9wcm9qZWN0SWQ9JHtyZWxhdGVkUHJvamVjdC5tc2R5bl9wcm9qZWN0aWR9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25QYXRoOiBQQUdFUy5Qcm9qZWN0cy5uYXZpZ2F0aW9uUGFuZWxDb25maWcuaWNvblBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGVkUHJvamVjdC5tc2R5bl9zdWJqZWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlbGF0ZWRQcm9qZWN0Lm1zZHluX3N1YmplY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRpbWVsaW5lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RW50aXR5PXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTWV0YWRhdGE6IENSRUFURV9QT1JUQUxfQ09NTUVOVF9ORVRXT1JLX09SREVSX01FVEFEQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJpZXZlTWV0YWRhdGE6IFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9ORVRXT1JLX09SREVSX01FVEFEQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tldE51bWJlcj17cHJvcHMuaW5pdGlhbE5ldHdvcmtPcmRlci5iaXN0ZWNoX25ldHdvcmtvcmRlcmlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsQ29tbWVudHM9e3BvcnRhbENvbW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsRW1haWxzPXtwcm9wcy5pbml0aWFsTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyX2Jpc3RlY2hfcG9ydGFsZW1haWxzID8/IFtdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFqb3JJbmNpZGVudFVwZGF0ZXM9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxOZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlcyA/PyBbXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UG9ydGFsQ29tbWVudHM9e3NldFBvcnRhbENvbW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5SWQ9e3Byb3BzLmluaXRpYWxOZXR3b3JrT3JkZXIuYmlzdGVjaF9uZXR3b3Jrb3JkZXJpZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrUG9ydGFsQ29tbWVudFN1Ym1pc3Npb249eygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBOZXR3b3JrIE9yZGVyIC0gUG9ydGFsIENvbW1lbnQgc3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlcklkOiBwcm9wcy5pbml0aWFsTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrUG9ydGFsQ29tbWVudENyZWF0ZWRTdWNjZXNzZnVsbHk9eyhwb3J0YWxDb21tZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkVkaXQgTmV0d29yayBPcmRlciAtIFBvcnRhbCBDb21tZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtPcmRlcklkOiBwcm9wcy5pbml0aWFsTmV0d29ya09yZGVyLmJpc3RlY2hfbmV0d29ya29yZGVyaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5SWQ6IHBvcnRhbENvbW1lbnQuYWN0aXZpdHlpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl2UmVmZXJlbmNlPXt0aW1lbGluZVJlZmVyZW5jZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3NOYW1lPVwiYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWRpcnR5QmFubmVyU2V0dGluZ3MgfHwgc3VibWlzc2lvblN0YXRlLnN0YXRlID09PSBcInN1Ym1pdHRpbmdcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXshZGlydHlCYW5uZXJTZXR0aW5ncyA/IFwiTm8gY2hhbmdlcyB0byBzYXZlXCIgOiB1bmRlZmluZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUuc3RhdGUgPT09IFwic3VibWl0dGluZ1wiICYmIDxJbVNwaW5uZXIyIGNsYXNzTmFtZT1cInNwaW5cIiAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9DYWxsVG9BY3Rpb25CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBMb2FkaW5nRGF0YSB9IGZyb20gXCIuLi8uLi9EZWZhdWx0Um9vdFN0YXRlXCI7XHJcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi4vTm90Rm91bmRcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0Jhc2VQYWdlIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlcnNFZGl0Q29udGVudCB9IGZyb20gXCIuL05ldHdvcmtPcmRlcnNFZGl0Q29udGVudFwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL05ldHdvcmtPcmRlckZvclJldHJpZXZhbFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IE5ldHdvcmsgT3JkZXJzIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IE5ldHdvcmtPcmRlcnNFZGl0RnJvbUlkID0gKHByb3BzOiB7IG5ldHdvcmtvcmRlcmlkOiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSB1c2VEYXRhU2VydmljZSgpO1xyXG4gICAgY29uc3QgbmV0d29ya09yZGVycyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUubmV0d29ya09yZGVycyk7XHJcbiAgICBjb25zdCBvcmRlcnMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLm9yZGVycyk7XHJcbiAgICBjb25zdCBbc2F2ZUtleSwgc2V0U2F2ZUtleV0gPSB1c2VTdGF0ZSgxKTtcclxuICAgIGNvbnN0IFtyZXRyaWV2ZWROZXR3b3JrT3JkZXIsIHNldFJldHJpZXZlZE5ldHdvcmtPcmRlcl0gPSB1c2VTdGF0ZTxcclxuICAgICAgICBMb2FkaW5nRGF0YTxOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWw+IHwgeyBsb2FkaW5nU3RhdHVzOiBcImVycm9yZWRcIjsgZXJyb3I6IEVycm9yIH1cclxuICAgID4oe1xyXG4gICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIixcclxuICAgIH0pO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgc2V0UmV0cmlldmVkTmV0d29ya09yZGVyKHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0pO1xyXG4gICAgfSwgW25ldHdvcmtPcmRlcnMsIHNhdmVLZXldKTtcclxuXHJcbiAgICBjb25zdCBpbml0aWFsTmV0d29ya09yZGVyOiBMb2FkaW5nRGF0YTxOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWw+ID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgdGhlIHJldHJpZXZhbCBoYXMgbm90IHlldCBiZWVuIHN0YXJ0ZWRcclxuICAgICAgICBpZiAocmV0cmlldmVkTmV0d29ya09yZGVyLmxvYWRpbmdTdGF0dXMgPT09IFwibm90LXN0YXJ0ZWRcIikge1xyXG4gICAgICAgICAgICBzZXRSZXRyaWV2ZWROZXR3b3JrT3JkZXIoeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBOZXR3b3JrIE9yZGVyIHNwZWNpZmljYWxseSAoZS5nLiB0aGUgTmV0d29yayBPcmRlciBtYXkgaGF2ZSBiZWVuIHJlY2VudGx5IHVwZGF0ZWQpXHJcbiAgICAgICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAucmV0cmlldmVOZXR3b3JrT3JkZXIocHJvcHMubmV0d29ya29yZGVyaWQpXHJcbiAgICAgICAgICAgICAgICAudGhlbigobmV0d29ya09yZGVyKSA9PiBzZXRSZXRyaWV2ZWROZXR3b3JrT3JkZXIoeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhOiBuZXR3b3JrT3JkZXIgfSkpXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFJldHJpZXZlZE5ldHdvcmtPcmRlcih7IGxvYWRpbmdTdGF0dXM6IFwiZXJyb3JlZFwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJldHJpZXZlZE5ldHdvcmtPcmRlci5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHJldHJpZXZlZE5ldHdvcmtPcmRlci5kYXRhIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobmV0d29ya09yZGVycy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtYXRjaGluZ09yZGVyID0gbmV0d29ya09yZGVycy5kYXRhLmZpbmQoXHJcbiAgICAgICAgICAgIChuZXR3b3JrT3JkZXIpID0+IG5ldHdvcmtPcmRlci5iaXN0ZWNoX25ldHdvcmtvcmRlcmlkID09PSBwcm9wcy5uZXR3b3Jrb3JkZXJpZFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIElmIGEgbWF0Y2hpbmcgYWN0aXZlIE9yZGVyIHdhcyBmb3VuZFxyXG4gICAgICAgIGlmIChtYXRjaGluZ09yZGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLm1hdGNoaW5nT3JkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgYmlzdGVjaF9iaXN0ZWNoX25ldHdvcmtvcmRlcnN0YWdlX25ldHdvcmtvcmRlcl9iaTogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYWR4X3BvcnRhbGNvbW1lbnRzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICBiaXN0ZWNoX25ldHdvcmtvcmRlcl9iaXN0ZWNoX3BvcnRhbGVtYWlsczogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgYmlzdGVjaF9uZXR3b3Jrb3JkZXJfYmlzdGVjaF9tYWpvcmluY2lkZW50dXBkYXRlczogW10sXHJcbiAgICAgICAgICAgICAgICB9IGFzIE5ldHdvcmtPcmRlckZvclJldHJpZXZhbCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH07XHJcbiAgICB9LCBbbmV0d29ya09yZGVycywgcmV0cmlldmVkTmV0d29ya09yZGVyLCBkYXRhU2VydmljZSwgcHJvcHMubmV0d29ya29yZGVyaWQsIGRpc3BhdGNoXSk7XHJcblxyXG4gICAgaWYgKHJldHJpZXZlZE5ldHdvcmtPcmRlci5sb2FkaW5nU3RhdHVzID09PSBcImVycm9yZWRcIikge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgdHlwZT1cInJlY29yZC1ub3QtZm91bmRcIiBzaW5ndWxhckVudGl0eU5hbWU9XCJPcmRlclwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbml0aWFsTmV0d29ya09yZGVyLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgfHwgb3JkZXJzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8TG9hZGluZ0Jhc2VQYWdlIC8+XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxOZXR3b3JrT3JkZXJzRWRpdENvbnRlbnRcclxuICAgICAgICAgICAgaW5pdGlhbE5ldHdvcmtPcmRlcj17aW5pdGlhbE5ldHdvcmtPcmRlci5kYXRhfVxyXG4gICAgICAgICAgICBvblNhdmU9eygpID0+IHNldFNhdmVLZXkoc2F2ZUtleSArIDEpfVxyXG4gICAgICAgIC8+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJzRWRpdEZyb21JZCB9IGZyb20gXCIuL05ldHdvcmtPcmRlcnNFZGl0RnJvbUlkXCI7XHJcblxyXG4vKiogV3JhcHBlciBmb3IgdGhlIEVkaXQgTmV0d29yayBPcmRlciBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBOZXR3b3JrT3JkZXJzRWRpdCA9ICgpID0+IHtcclxuICAgIGNvbnN0IFtzZWFyY2hQYXJhbXNdID0gdXNlU2VhcmNoUGFyYW1zKCk7XHJcblxyXG4gICAgY29uc3QgSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FID0gXCJuZXR3b3Jrb3JkZXJJZFwiO1xyXG4gICAgY29uc3QgbmV0d29ya09yZGVySWQgPSBzZWFyY2hQYXJhbXMuZ2V0KElEX1FVRVJZX1NUUklOR19QQVJBTUVURVJfTkFNRSk7XHJcblxyXG4gICAgaWYgKCFuZXR3b3JrT3JkZXJJZCkge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgc2luZ3VsYXJFbnRpdHlOYW1lPVwiTmV0d29yayBPcmRlclwiIHR5cGU9XCJyZWNvcmQtbm90LWZvdW5kXCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDxOZXR3b3JrT3JkZXJzRWRpdEZyb21JZCBuZXR3b3Jrb3JkZXJpZD17bmV0d29ya09yZGVySWR9IC8+O1xyXG59O1xyXG4iLCJpbXBvcnQgeyBJbnZvaWNlVGFibGVIZWFkZXJDZWxsIH0gZnJvbSBcIi4uL1R5cGVzL1RhYmxlSGVhZGVyQ2VsbHMvSW52b2ljZVRhYmxlSGVhZGVyQ2VsbFwiO1xyXG5cclxuLyoqIERlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBoZWFkZXIgY2VsbHMgdG8gZGlzcGxheSBpbiB0aGUgSW52b2ljZXMgVGFibGUuICovXHJcbmV4cG9ydCBjb25zdCBnZXRJbnZvaWNlVGFibGVIZWFkZXJDZWxscyA9ICgpOiBJbnZvaWNlVGFibGVIZWFkZXJDZWxsW10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiSW52b2ljZSBJRFwiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwiaW52b2ljZW51bWJlclwiLFxyXG4gICAgICAgICAgICBpc1NvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogMSxcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIlBheW1lbnQgTWV0aG9kXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJiaXN0ZWNoX3BheW1lbnRtZXRob2Rjb2RlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAyLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiRHVlIERhdGVcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcImR1ZWRhdGVcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJJbnZvaWNlIERhdGVcIixcclxuICAgICAgICAgICAgZmllbGROYW1lOiBcIm1zZHluX2ludm9pY2VkYXRlXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxufTtcclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyB1c2VVc2VyTWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlVXNlck1ldGFkYXRhXCI7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBUYWJsZUhlYWRlckNlbGwgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9UYWJsZUhlYWRlckNlbGxcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi9IZWxwZXJzL0RhdGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgdG9Mb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9IZWxwZXJzL3RvTG9hZGluZ0RhdGFcIjtcclxuaW1wb3J0IHsgZ2V0SW52b2ljZVRhYmxlSGVhZGVyQ2VsbHMgfSBmcm9tIFwiLi4vRGF0YS9nZXRJbnZvaWNlVGFibGVIZWFkZXJDZWxsc1wiO1xyXG5pbXBvcnQgeyBMb2FkaW5nRGF0YSB9IGZyb20gXCIuLi9EZWZhdWx0Um9vdFN0YXRlXCI7XHJcbmltcG9ydCB7IE1hbmFnZW1lbnRQYW5lbCB9IGZyb20gXCIuLi9Db21wb25lbnRzL01hbmFnZW1lbnRQYW5lbFwiO1xyXG5pbXBvcnQgeyBGb3JtYXR0aW5nSGVscGVyIH0gZnJvbSBcIi4uL0hlbHBlcnMvRm9ybWF0dGluZ0hlbHBlclwiO1xyXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuLi9Db21wb25lbnRzL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgTWVzc2FnZUJhciwgTWVzc2FnZUJhckJvZHkgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gXCIuLi9Nb2RlbHMvSW52b2ljZVwiO1xyXG5cclxuLyogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIEludm9pY2VzIFBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IEludm9pY2VzOiBSZWFjdC5GQyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgaW52b2ljZXMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmludm9pY2VzKTtcclxuICAgIGNvbnN0IFtzb3J0ZWRDb2x1bW4sIHNldFNvcnRlZENvbHVtbl0gPSB1c2VTdGF0ZTxrZXlvZiBJbnZvaWNlPihcImR1ZWRhdGVcIik7XHJcbiAgICBjb25zdCBbaXNTb3J0ZWRBc2NlbmRpbmcsIHNldElzU29ydGVkQXNjZW5kaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIGNvbnN0IFtzZWFyY2hCYXJDb250ZW50LCBzZXRTZWFyY2hCYXJDb250ZW50XSA9IHVzZVN0YXRlPHN0cmluZz4oXCJcIik7XHJcblxyXG4gICAgLy8gRW5zdXJlIHRoZSBVc2VyIE1ldGFkYXRhIGlzIHBvcHVsYXRlZC5cclxuICAgIGlmICghdXNlck1ldGFkYXRhLmFjY291bnRJZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgXFxgdXNlck1ldGFkYXRhLmFjY291bnRJZFxcYCB0byBiZSBwb3B1bGF0ZWRgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHZXQgdGhlIEludm9pY2UgVGFibGUgSGVhZGVyIENlbGxzLlxyXG4gICAgY29uc3QgaGVhZGVyQ2VsbHMgPSBnZXRJbnZvaWNlVGFibGVIZWFkZXJDZWxscygpO1xyXG5cclxuICAgIC8vIEdldCB0aGUgYXBwbGljYWJsZSBjb2x1bW4gaGVhZGVyIGZvciB0aGUgZ2l2ZW4gZmllbGQgbmFtZS5cclxuICAgIGNvbnN0IGdldENvbHVtbkhlYWRlciA9IChmaWVsZE5hbWU6IGtleW9mIEludm9pY2UpID0+XHJcbiAgICAgICAgaGVhZGVyQ2VsbHMuZmluZCgoaGVhZGVyQ2VsbCkgPT4gaGVhZGVyQ2VsbC5maWVsZE5hbWUgPT09IGZpZWxkTmFtZSk/LmNvbHVtbkhlYWRlcjtcclxuXHJcbiAgICAvLyBDb252ZXJ0cyB0aGUgc29ydGVkIEludm9pY2VzIGludG8gYSBMb2FkaW5nRGF0YTxJbnZvaWNlW10+IG9iamVjdC5cclxuICAgIGNvbnN0IGFzU29ydGVkTG9hZGluZ0RhdGEgPSAoc29ydGVkRGF0YTogSW52b2ljZVtdKTogTG9hZGluZ0RhdGE8SW52b2ljZVtdPiA9PiB7XHJcbiAgICAgICAgaWYgKGlzU29ydGVkQXNjZW5kaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHNvcnRlZERhdGEgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHNvcnRlZERhdGEucmV2ZXJzZSgpIH07XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFNvcnQgdGhlIEludm9pY2VzIGJ5IHRoZSBhcHBsaWNhYmxlIGNvbHVtbiB3aGVuIHRoZSBkYXRhIGNoYW5nZXMsIGl0IGlzIHNlbGVjdGVkIG9yIHRoZSBzb3J0IG9yZGVyIGNoYW5nZXMuXHJcbiAgICBjb25zdCBzb3J0ZWRJbnZvaWNlczogTG9hZGluZ0RhdGE8SW52b2ljZVtdPiA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpbnZvaWNlcy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IGludm9pY2VzLmxvYWRpbmdTdGF0dXMgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNsaWNlZEludm9pY2VEYXRhID0gaW52b2ljZXMuZGF0YS5zbGljZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gYXNTb3J0ZWRMb2FkaW5nRGF0YShcclxuICAgICAgICAgICAgc2xpY2VkSW52b2ljZURhdGEuc29ydCgoaW52b2ljZUEsIGludm9pY2VCKSA9PlxyXG4gICAgICAgICAgICAgICAgKGludm9pY2VBW3NvcnRlZENvbHVtbl0/LnRvU3RyaW5nKCkgPz8gXCJcIikubG9jYWxlQ29tcGFyZShpbnZvaWNlQltzb3J0ZWRDb2x1bW5dPy50b1N0cmluZygpID8/IFwiXCIpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfSwgW2ludm9pY2VzLCBzb3J0ZWRDb2x1bW4sIGlzU29ydGVkQXNjZW5kaW5nXSk7XHJcblxyXG4gICAgLy8gRmlsdGVyIHRoZSBJbnZvaWNlcyBieSB0aGUgU2VhcmNoIEJhciBjb250ZW50IGFuZCB0aGUgYXBwbGljYWJsZSBTdGF0dXMgZmlsdGVycy5cclxuICAgIGNvbnN0IGludm9pY2VzVG9EaXNwbGF5ID0gdG9Mb2FkaW5nRGF0YShzb3J0ZWRJbnZvaWNlcywgKGludm9pY2VzKSA9PlxyXG4gICAgICAgIGludm9pY2VzXHJcbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBTZWFyY2ggQmFyIGZpbHRlci5cclxuICAgICAgICAgICAgLmZpbHRlcigoaW52b2ljZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhpbnZvaWNlcykuc29tZSgoW18sIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9IHZhbHVlPy50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dFZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoQmFyQ29udGVudC50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCYXNlUGFnZSB0aXRsZT1cIkludm9pY2VzXCI+XHJcbiAgICAgICAgICAgIDxNZXNzYWdlQmFyIGludGVudD1cImluZm9cIiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IFwiMC40ZW1cIiwgYmFja2dyb3VuZENvbG9yOiBcInJnYigyNTUsIDI0NCwgMjA2KVwiIH19PlxyXG4gICAgICAgICAgICAgICAgPE1lc3NhZ2VCYXJCb2R5IHN0eWxlPXt7IG92ZXJmbG93OiBcImhpZGRlblwiLCB0ZXh0T3ZlcmZsb3c6IFwiZWxsaXBzaXNcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT17eyBmb250U2l6ZTogXCIxM3B4XCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gSW52b2ljZSBJRHMgdGhhdCBiZWdpbiB3aXRoIHRoZSBudW1iZXIgJzcnIGFyZSBvbmx5IGFjY2Vzc2libGUgdGhyb3VnaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGUgYUJJTExpdHkgcGxhdGZvcm0uIFBsZWFzZSBjaGVjayB5b3VyIElEIGFuZCBwcm9jZWVkIHRve1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oYXMtbGluaz17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e1wiaHR0cHM6Ly93ZWJhYmlsbGl0eS5jby51ay8yLjcuMzIwX2VuLUdCL0JJUzAxLmFzcHhcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYmlsbGl0eS1saW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYUJJTExpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPntcIiBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlhIHRoZSBwb3J0YWwgaWYgdGhpcyBhcHBsaWVzLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvTWVzc2FnZUJhckJvZHk+XHJcbiAgICAgICAgICAgIDwvTWVzc2FnZUJhcj5cclxuICAgICAgICAgICAgPE1hbmFnZW1lbnRQYW5lbFxyXG4gICAgICAgICAgICAgICAgc2V0U2VhcmNoQmFyQ29udGVudD17c2V0U2VhcmNoQmFyQ29udGVudH1cclxuICAgICAgICAgICAgICAgIGZpbHRlckdyb3Vwcz17bnVsbH1cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dD1cIlNlYXJjaCBieSBJbnZvaWNlIElEXCJcclxuICAgICAgICAgICAgICAgIGdldFN1bW1hcnlTZWN0aW9ucz17KCkgPT4gW119XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzVG9EaXNwbGF5PXtbXX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAge2ludm9pY2VzVG9EaXNwbGF5LmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8TG9hZGluZ1NwaW5uZXIgLz5cclxuICAgICAgICAgICAgKSA6IGludm9pY2VzVG9EaXNwbGF5LmRhdGEubGVuZ3RoID09PSAwID8gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuby1yZXN1bHRzLW1lc3NhZ2VcIj5UaGVyZSBhcmUgbm8gSW52b2ljZXMgdG8gZGlzcGxheS48L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJlbnRpdHlsaXN0IGludm9pY2VzLXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyQ2VsbHMubWFwKChjZWxsKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlSGVhZGVyQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NlbGwuaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlcj17Y2VsbC5jb2x1bW5IZWFkZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZT17Y2VsbC5maWVsZE5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcldpZHRoPXtjZWxsLmNlbGxXaWR0aH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGluZ1Byb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0aW5nRW5hYmxlZDogY2VsbC5pc1NvcnRhYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGVkQ29sdW1uOiBzb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTb3J0ZWRDb2x1bW46ICgpID0+IHNldFNvcnRlZENvbHVtbihjZWxsLmZpZWxkTmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NvcnRlZEFzY2VuZGluZzogaXNTb3J0ZWRBc2NlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1NvcnRlZEFzY2VuZGluZzogc2V0SXNTb3J0ZWRBc2NlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7aW52b2ljZXNUb0Rpc3BsYXkuZGF0YS5tYXAoKGludm9pY2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnkga2V5PXtpbnZvaWNlLmludm9pY2VpZH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e2ludm9pY2UuaW52b2ljZWlkfSBkYXRhLWlkPXtpbnZvaWNlLmludm9pY2VpZH0gZGF0YS1lbnRpdHk9XCJpbnZvaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnZvaWNlLWlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17aW52b2ljZS5pbnZvaWNlbnVtYmVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiaW52b2ljZW51bWJlclwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2ludm9pY2UuaW52b2ljZW51bWJlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e2B2aWV3P2ludm9pY2VpZD0ke2ludm9pY2UuaW52b2ljZWlkfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW52b2ljZS5pbnZvaWNlbnVtYmVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnZvaWNlLXBheW1lbnQtbWV0aG9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlYWRpbmctdGl0bGU9e2dldENvbHVtbkhlYWRlcihcImJpc3RlY2hfcGF5bWVudG1ldGhvZGNvZGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge0Zvcm1hdHRpbmdIZWxwZXIuZ2V0UGF5bWVudE1ldGhvZENvZGVTdHJpbmcoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludm9pY2UuYmlzdGVjaF9wYXltZW50bWV0aG9kY29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW52b2ljZS1kdWUtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJkdWVkYXRlXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbnZvaWNlLmR1ZWRhdGUgPyBEYXRlSGVscGVyLnRvRGF0ZU9ubHlTdHJpbmcoaW52b2ljZS5kdWVkYXRlKSA6IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW52b2ljZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlYWRpbmctdGl0bGU9e2dldENvbHVtbkhlYWRlcihcIm1zZHluX2ludm9pY2VkYXRlXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbnZvaWNlLm1zZHluX2ludm9pY2VkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gRGF0ZUhlbHBlci50b0RhdGVPbmx5U3RyaW5nKGludm9pY2UubXNkeW5faW52b2ljZWRhdGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC9CYXNlUGFnZT5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IFN0cmluZ0ZpZWxkIH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvRmllbGRzL1N0cmluZ0ZpZWxkXCI7XHJcbmltcG9ydCB7IEZvcm1hdHRpbmdIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9Gb3JtYXR0aW5nSGVscGVyXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IEludm9pY2UgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL0ludm9pY2VcIjtcclxuXHJcbi8qIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBWaWV3IEludm9pY2UgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgSW52b2ljZXNWaWV3Q29udGVudCA9ICh7IGluaXRpYWxJbnZvaWNlIH06IHsgaW5pdGlhbEludm9pY2U6IEludm9pY2UgfSkgPT4ge1xyXG4gICAgY29uc3QgcGRmQmFzZTY0ID0gW1xyXG4gICAgICAgIGluaXRpYWxJbnZvaWNlLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQxLFxyXG4gICAgICAgIGluaXRpYWxJbnZvaWNlLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQyLFxyXG4gICAgICAgIGluaXRpYWxJbnZvaWNlLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQzLFxyXG4gICAgICAgIGluaXRpYWxJbnZvaWNlLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ0LFxyXG4gICAgICAgIGluaXRpYWxJbnZvaWNlLmJpc3RlY2hfcGRmYmFzZTY0ZmllbGQ1LFxyXG4gICAgXVxyXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgICAuam9pbihcIlwiKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCYXNlUGFnZSB0aXRsZT17aW5pdGlhbEludm9pY2U/Lmludm9pY2VudW1iZXIgPz8gXCJcIn0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlldy1pbnZvaWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2VuZXJhbC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPkluZm9ybWF0aW9uPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiSW52b2ljZSBJRFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImludm9pY2UtaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aW5pdGlhbEludm9pY2UuaW52b2ljZW51bWJlciA/PyBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IGRpc2FibGVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJEdWUgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImR1ZS1kYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsSW52b2ljZS5kdWVkYXRlID8gRGF0ZUhlbHBlci50b0RhdGVPbmx5U3RyaW5nKGluaXRpYWxJbnZvaWNlLmR1ZWRhdGUpIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUGF5bWVudCBNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwYXltZW50LW1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHt9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGluZ0hlbHBlci5nZXRQYXltZW50TWV0aG9kQ29kZVN0cmluZyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxJbnZvaWNlLmJpc3RlY2hfcGF5bWVudG1ldGhvZGNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA/PyBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IGRpc2FibGVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJJbnZvaWNlIERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpbnZvaWNlLWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxJbnZvaWNlLm1zZHluX2ludm9pY2VkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERhdGVIZWxwZXIudG9EYXRlT25seVN0cmluZyhpbml0aWFsSW52b2ljZS5tc2R5bl9pbnZvaWNlZGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YGRhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwke3BkZkJhc2U2NH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkPXtgJHtpbml0aWFsSW52b2ljZS5pbnZvaWNlbnVtYmVyfS5wZGZgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRvd25sb2FkLWludm9pY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIEludm9pY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHtpbml0aWFsSW52b2ljZS5iaXN0ZWNoX3BkZmJhc2U2NGZpZWxkMSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaWZyYW1lLWNvbnRhaW5lciB2aWV3LWludm9pY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtaW5IZWlnaHQ6IFwiMTAwJVwiLCB3aWR0aDogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2BkYXRhOmFwcGxpY2F0aW9uL3BkZjtiYXNlNjQsJHtwZGZCYXNlNjR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW49e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBkYXRhPXtgZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LCR7cGRmQmFzZTY0fWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0Jhc2VQYWdlPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uLy4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VEYXRhU2VydmljZSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VEYXRhU2VydmljZVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBMb2FkaW5nQmFzZVBhZ2UgfSBmcm9tIFwiLi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvSW52b2ljZVwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlc1ZpZXdDb250ZW50IH0gZnJvbSBcIi4vSW52b2ljZXNWaWV3Q29udGVudFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBWaWV3IEludm9pY2UgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgSW52b2ljZXNWaWV3RnJvbUlkID0gKHByb3BzOiB7IGludm9pY2VpZDogc3RyaW5nIH0pID0+IHtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGludm9pY2VzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5pbnZvaWNlcyk7XHJcbiAgICBjb25zdCBbcmV0cmlldmVkSW52b2ljZSwgc2V0UmV0cmlldmVkSW52b2ljZV0gPSB1c2VTdGF0ZTxcclxuICAgICAgICBMb2FkaW5nRGF0YTxJbnZvaWNlPiB8IHsgbG9hZGluZ1N0YXR1czogXCJlcnJvcmVkXCI7IGVycm9yOiBFcnJvciB9XHJcbiAgICA+KHtcclxuICAgICAgICBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldFJldHJpZXZlZEludm9pY2UoeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSk7XHJcbiAgICB9LCBbaW52b2ljZXNdKTtcclxuXHJcbiAgICBjb25zdCBpbml0aWFsSW52b2ljZTogTG9hZGluZ0RhdGE8SW52b2ljZT4gPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICAvLyBJZiB0aGUgcmV0cmlldmFsIGhhcyBub3QgeWV0IGJlZW4gc3RhcnRlZFxyXG4gICAgICAgIGlmIChyZXRyaWV2ZWRJbnZvaWNlLmxvYWRpbmdTdGF0dXMgPT09IFwibm90LXN0YXJ0ZWRcIikge1xyXG4gICAgICAgICAgICBzZXRSZXRyaWV2ZWRJbnZvaWNlKHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgSW52b2ljZSBzcGVjaWZpY2FsbHkgKGUuZy4gdGhlIEludm9pY2UgbWF5IGhhdmUgYmVlbiByZWNlbnRseSB1cGRhdGVkKVxyXG4gICAgICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAgICAgLnJldHJpZXZlSW52b2ljZShwcm9wcy5pbnZvaWNlaWQpXHJcbiAgICAgICAgICAgICAgICAudGhlbigoaW52b2ljZSkgPT4gc2V0UmV0cmlldmVkSW52b2ljZSh7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IGludm9pY2UgfSkpXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFJldHJpZXZlZEludm9pY2UoeyBsb2FkaW5nU3RhdHVzOiBcImVycm9yZWRcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXRyaWV2ZWRJbnZvaWNlLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogcmV0cmlldmVkSW52b2ljZS5kYXRhIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW52b2ljZXMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdJbnZvaWNlID0gaW52b2ljZXMuZGF0YS5maW5kKChpbnZvaWNlKSA9PiBpbnZvaWNlLmludm9pY2VpZCA9PT0gcHJvcHMuaW52b2ljZWlkKTtcclxuXHJcbiAgICAgICAgLy8gSWYgYSBtYXRjaGluZyBhY3RpdmUgSW52b2ljZSB3YXMgZm91bmRcclxuICAgICAgICBpZiAobWF0Y2hpbmdJbnZvaWNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbWF0Y2hpbmdJbnZvaWNlLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfTtcclxuICAgIH0sIFtpbnZvaWNlcywgcmV0cmlldmVkSW52b2ljZSwgZGF0YVNlcnZpY2UsIHByb3BzLmludm9pY2VpZCwgZGlzcGF0Y2hdKTtcclxuXHJcbiAgICBpZiAocmV0cmlldmVkSW52b2ljZS5sb2FkaW5nU3RhdHVzID09PSBcImVycm9yZWRcIikge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgdHlwZT1cInJlY29yZC1ub3QtZm91bmRcIiBzaW5ndWxhckVudGl0eU5hbWU9XCJJbnZvaWNlXCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluaXRpYWxJbnZvaWNlLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICByZXR1cm4gPExvYWRpbmdCYXNlUGFnZSAvPjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gPEludm9pY2VzVmlld0NvbnRlbnQgaW5pdGlhbEludm9pY2U9e2luaXRpYWxJbnZvaWNlLmRhdGF9IC8+O1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBJbnZvaWNlc1ZpZXdGcm9tSWQgfSBmcm9tIFwiLi9JbnZvaWNlc1ZpZXdGcm9tSWRcIjtcclxuXHJcbi8qKiBXcmFwcGVyIGZvciB0aGUgVmlldyBJbnZvaWNlIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IEludm9pY2VzVmlldyA9ICgpID0+IHtcclxuICAgIGNvbnN0IFtzZWFyY2hQYXJhbXNdID0gdXNlU2VhcmNoUGFyYW1zKCk7XHJcblxyXG4gICAgY29uc3QgSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FID0gXCJpbnZvaWNlaWRcIjtcclxuICAgIGNvbnN0IGludm9pY2VpZCA9IHNlYXJjaFBhcmFtcy5nZXQoSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FKTtcclxuXHJcbiAgICBpZiAoIWludm9pY2VpZCkge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgc2luZ3VsYXJFbnRpdHlOYW1lPVwiSW52b2ljZVwiIHR5cGU9XCJyZWNvcmQtbm90LWZvdW5kXCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDxJbnZvaWNlc1ZpZXdGcm9tSWQgaW52b2ljZWlkPXtpbnZvaWNlaWR9IC8+O1xyXG59O1xyXG4iLCJpbXBvcnQgeyBQcm9qZWN0VGFibGVIZWFkZXJDZWxsIH0gZnJvbSBcIi4uL1R5cGVzL1RhYmxlSGVhZGVyQ2VsbHMvUHJvamVjdFRhYmxlSGVhZGVyQ2VsbFwiO1xyXG5cclxuLyoqIERlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZSBoZWFkZXIgY2VsbHMgdG8gZGlzcGxheSBpbiB0aGUgUHJvamVjdHMgVGFibGUuICovXHJcbmV4cG9ydCBjb25zdCBnZXRQcm9qZWN0VGFibGVIZWFkZXJDZWxscyA9ICgpOiBQcm9qZWN0VGFibGVIZWFkZXJDZWxsW10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICBjb2x1bW5IZWFkZXI6IFwiUHJvamVjdCBJRFwiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwiYmlzdGVjaF9wcm9qZWN0bnVtYmVyXCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNlbGxXaWR0aDogXCIxMyVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJOYW1lXCIsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogXCJtc2R5bl9zdWJqZWN0XCIsXHJcbiAgICAgICAgICAgIGlzU29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNlbGxXaWR0aDogXCIzNSVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcjogXCJFc3RpbWF0ZWQgU3RhcnQgRGF0ZVwiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwibXNkeW5fc2NoZWR1bGVkc3RhcnRcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2VsbFdpZHRoOiBcIjEzJVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogMyxcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIlByb2plY3QgTWFuYWdlclwiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwiX293bmVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIixcclxuICAgICAgICAgICAgaXNTb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2VsbFdpZHRoOiBcIjI2JVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogNCxcclxuICAgICAgICAgICAgY29sdW1uSGVhZGVyOiBcIlN0YXR1c1wiLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IFwic3RhdHVzY29kZVwiLFxyXG4gICAgICAgICAgICBpc1NvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjZWxsV2lkdGg6IFwiMTMlXCIsXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcbn07XHJcbiIsImltcG9ydCB7IFByb2plY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4uL0VudW1zL1Byb2plY3RTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IHRvTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vSGVscGVycy90b0xvYWRpbmdEYXRhXCI7XHJcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vTW9kZWxzL1Byb2plY3RcIjtcclxuaW1wb3J0IHsgRmlsdGVyR3JvdXAgfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyR3JvdXBcIjtcclxuaW1wb3J0IHsgRmlsdGVyZWRQcm9qZWN0cyB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJNb2RlbHMvRmlsdGVyZWRQcm9qZWN0c1wiO1xyXG5cclxuY29uc3QgUFJPSkVDVF9PTkJPQVJESU5HX1RPT0xUSVAgPVxyXG4gICAgXCJZb3VyIFByb2plY3QgTWFuYWdlciBpcyByZXZpZXdpbmcgeW91ciBwcm9qZWN0IGFuZCB3aWxsIGJlIGluIHRvdWNoIHNob3J0bHkgdG8gZGlzY3VzcyBuZXh0IHN0ZXBzXCI7XHJcbmNvbnN0IElOX1BST0dSRVNTX1RPT0xUSVAgPSBcIk91ciB0ZWFtIGFyZSB3b3JraW5nIG9uIHlvdXIgcHJvamVjdFwiO1xyXG5jb25zdCBCTE9DS0VEX1RPT0xUSVAgPSBcIlNvbWV0aGluZyBpcyBwcmV2ZW50aW5nIHlvdXIgcHJvamVjdCBmcm9tIHByb2dyZXNzaW5nXCI7XHJcbmNvbnN0IE9OX0hPTERfVE9PTFRJUCA9IFwiWW91ciBwcm9qZWN0IGhhcyBiZWVuIHBsYWNlZCBvbiBob2xkXCI7XHJcbmNvbnN0IENMT1NFRF9UT09MVElQID0gXCJZb3VyIHByb2plY3QgaXMgY29tcGxldGVcIjtcclxuXHJcbi8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgUHJvamVjdHMgZmlsdGVyIGdyb3VwcyB0byBkaXNwbGF5IG9uIHRoZSBNYW5hZ2VtZW50IFBhbmVsLiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0UHJvamVjdHNGaWx0ZXJHcm91cHMgPSAoXHJcbiAgICBmaWx0ZXJlZFByb2plY3RzOiBGaWx0ZXJlZFByb2plY3RzLFxyXG4gICAgc2VsZWN0ZWRTdGF0dXNUaWxlSWRzOiBzdHJpbmdbXSxcclxuICAgIHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkczogKHRpbGVJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXHJcbik6IEZpbHRlckdyb3VwPFByb2plY3Q+W10gPT4ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxhYmVsRWxlbWVudDogPD5TdGF0dXM8Lz4sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogXCJTdGF0dXNcIixcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnQ6IChcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UHJvamVjdCBPbmJvYXJkaW5nPC9zdHJvbmc+IC0ge1BST0pFQ1RfT05CT0FSRElOR19UT09MVElQfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5JbiBQcm9ncmVzczwvc3Ryb25nPiAtIHtJTl9QUk9HUkVTU19UT09MVElQfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5CbG9ja2VkPC9zdHJvbmc+IC0ge0JMT0NLRURfVE9PTFRJUH1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+T24gSG9sZDwvc3Ryb25nPiAtIHtPTl9IT0xEX1RPT0xUSVB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkNsb3NlZDwvc3Ryb25nPiAtIHtDTE9TRURfVE9PTFRJUH1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGlsZXM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJwcm9qZWN0LW9uYm9hcmRpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZFRpbGVJZHM6IHNldFNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFRpbGVJZHM6IHNlbGVjdGVkU3RhdHVzVGlsZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IChwcm9qZWN0KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0U3RhdHVzQ29kZVtcIlByb2plY3QgT25ib2FyZGluZ1wiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXNDb2RlW1wiUGVuZGluZyBTdGFydFwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXNDb2RlLlByb2Nlc3NpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0uaW5jbHVkZXMocHJvamVjdC5zdGF0dXNjb2RlKSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogPD5Qcm9qZWN0IE9uYm9hcmRpbmc8Lz4sXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTG9hZGluZ0RhdGEoZmlsdGVyZWRQcm9qZWN0cy5wcm9qZWN0T25ib2FyZGluZywgKHByb2plY3RzKSA9PiBwcm9qZWN0cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvcHJvamVjdC1tYW5hZ2VtZW50LXN0YXR1cy1wcm9qZWN0LW9uYm9hcmRpbmcuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgb25Ib3Zlck1lc3NhZ2U6IFBST0pFQ1RfT05CT0FSRElOR19UT09MVElQLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogXCJpbi1wcm9ncmVzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdXS5pbmNsdWRlcyhwcm9qZWN0LnN0YXR1c2NvZGUpLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiA8PkluIFByb2dyZXNzPC8+LFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b0xvYWRpbmdEYXRhKGZpbHRlcmVkUHJvamVjdHMuaW5Qcm9ncmVzcywgKHByb2plY3RzKSA9PiBwcm9qZWN0cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvcHJvamVjdC1tYW5hZ2VtZW50LXN0YXR1cy1pbi1wcm9ncmVzcy5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogSU5fUFJPR1JFU1NfVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiYmxvY2tlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZS5CbG9ja2VkXS5pbmNsdWRlcyhwcm9qZWN0LnN0YXR1c2NvZGUpLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiA8PkJsb2NrZWQ8Lz4sXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTG9hZGluZ0RhdGEoZmlsdGVyZWRQcm9qZWN0cy5ibG9ja2VkLCAocHJvamVjdHMpID0+IHByb2plY3RzLmxlbmd0aCksXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoOiBcIi9wcm9qZWN0LW1hbmFnZW1lbnQtc3RhdHVzLWJsb2NrZWQuc3ZnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgb25Ib3Zlck1lc3NhZ2U6IEJMT0NLRURfVE9PTFRJUCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwib24taG9sZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZVtcIk9uIEhvbGRcIl1dLmluY2x1ZGVzKHByb2plY3Quc3RhdHVzY29kZSksXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IDw+T24gSG9sZDwvPixcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Mb2FkaW5nRGF0YShmaWx0ZXJlZFByb2plY3RzLm9uSG9sZCwgKHByb2plY3RzKSA9PiBwcm9qZWN0cy5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlUGF0aDogXCIvcHJvamVjdC1tYW5hZ2VtZW50LXN0YXR1cy1vbi1ob2xkLnN2Z1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uSG92ZXJNZXNzYWdlOiBPTl9IT0xEX1RPT0xUSVAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBcImNsb3NlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkVGlsZUlkczogc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGlsZUlkczogc2VsZWN0ZWRTdGF0dXNUaWxlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZS5DbG9zZWRdLmluY2x1ZGVzKHByb2plY3Quc3RhdHVzY29kZSksXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IDw+Q2xvc2VkPC8+LFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b0xvYWRpbmdEYXRhKGZpbHRlcmVkUHJvamVjdHMuY2xvc2VkLCAocHJvamVjdHMpID0+IHByb2plY3RzLmxlbmd0aCksXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VQYXRoOiBcIi9wcm9qZWN0LW1hbmFnZW1lbnQtc3RhdHVzLWNsb3NlZC5zdmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkhvdmVyTWVzc2FnZTogQ0xPU0VEX1RPT0xUSVAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyB1c2VVc2VyTWV0YWRhdGEgfSBmcm9tIFwiLi4vSG9va3MvdXNlVXNlck1ldGFkYXRhXCI7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSBcIi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBnZXRQcm9qZWN0VGFibGVIZWFkZXJDZWxscyB9IGZyb20gXCIuLi9EYXRhL2dldFByb2plY3RUYWJsZUhlYWRlckNlbGxzXCI7XHJcbmltcG9ydCB7IFRhYmxlSGVhZGVyQ2VsbCB9IGZyb20gXCIuLi9Db21wb25lbnRzL1RhYmxlSGVhZGVyQ2VsbFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IE1hbmFnZW1lbnRQYW5lbCB9IGZyb20gXCIuLi9Db21wb25lbnRzL01hbmFnZW1lbnRQYW5lbFwiO1xyXG5pbXBvcnQgeyBGaWx0ZXJHcm91cCB9IGZyb20gXCIuLi9UeXBlcy9GaWx0ZXJHcm91cFwiO1xyXG5pbXBvcnQgeyB0b0xvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0hlbHBlcnMvdG9Mb2FkaW5nRGF0YVwiO1xyXG5pbXBvcnQgeyBnZXRQcm9qZWN0c0ZpbHRlckdyb3VwcyB9IGZyb20gXCIuLi9EYXRhL2dldFByb2plY3RzRmlsdGVyR3JvdXBzXCI7XHJcbmltcG9ydCB7IEZpbHRlcmVkUHJvamVjdHMgfSBmcm9tIFwiLi4vVHlwZXMvRmlsdGVyTW9kZWxzL0ZpbHRlcmVkUHJvamVjdHNcIjtcclxuaW1wb3J0IHsgUHJvamVjdFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFN0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5cclxuLyogQ29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIFByb2plY3RzIFBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RzOiBSZWFjdC5GQyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgcHJvamVjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLnByb2plY3RzKTtcclxuICAgIGNvbnN0IFtzb3J0ZWRDb2x1bW4sIHNldFNvcnRlZENvbHVtbl0gPSB1c2VTdGF0ZTxrZXlvZiBQcm9qZWN0PihcIm1zZHluX3NjaGVkdWxlZHN0YXJ0XCIpO1xyXG4gICAgY29uc3QgW2lzU29ydGVkQXNjZW5kaW5nLCBzZXRJc1NvcnRlZEFzY2VuZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcbiAgICBjb25zdCBbc2VhcmNoQmFyQ29udGVudCwgc2V0U2VhcmNoQmFyQ29udGVudF0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpO1xyXG4gICAgY29uc3QgW3NlbGVjdGVkU3RhdHVzVGlsZUlkcywgc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XHJcblxyXG4gICAgLy8gRW5zdXJlIHRoZSBVc2VyIE1ldGFkYXRhIGlzIHBvcHVsYXRlZC5cclxuICAgIGlmICghdXNlck1ldGFkYXRhLmFjY291bnRJZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgXFxgdXNlck1ldGFkYXRhLmFjY291bnRJZFxcYCB0byBiZSBwb3B1bGF0ZWRgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHZXQgdGhlIFByb2plY3QgVGFibGUgSGVhZGVyIENlbGxzLlxyXG4gICAgY29uc3QgaGVhZGVyQ2VsbHMgPSBnZXRQcm9qZWN0VGFibGVIZWFkZXJDZWxscygpO1xyXG5cclxuICAgIC8vIEdldCB0aGUgYXBwbGljYWJsZSBjb2x1bW4gaGVhZGVyIGZvciB0aGUgZ2l2ZW4gZmllbGQgbmFtZS5cclxuICAgIGNvbnN0IGdldENvbHVtbkhlYWRlciA9IChmaWVsZE5hbWU6IGtleW9mIFByb2plY3QpID0+XHJcbiAgICAgICAgaGVhZGVyQ2VsbHMuZmluZCgoaGVhZGVyQ2VsbCkgPT4gaGVhZGVyQ2VsbC5maWVsZE5hbWUgPT09IGZpZWxkTmFtZSk/LmNvbHVtbkhlYWRlcjtcclxuXHJcbiAgICAvLyBDb252ZXJ0cyB0aGUgc29ydGVkIFByb2plY3RzIGludG8gYSBMb2FkaW5nRGF0YTxQcm9qZWN0W10+IG9iamVjdC5cclxuICAgIGNvbnN0IGFzU29ydGVkTG9hZGluZ0RhdGEgPSAoc29ydGVkRGF0YTogUHJvamVjdFtdKTogTG9hZGluZ0RhdGE8UHJvamVjdFtdPiA9PiB7XHJcbiAgICAgICAgaWYgKGlzU29ydGVkQXNjZW5kaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHNvcnRlZERhdGEgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHNvcnRlZERhdGEucmV2ZXJzZSgpIH07XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFNvcnQgdGhlIFByb2plY3RzIGJ5IHRoZSBhcHBsaWNhYmxlIGNvbHVtbiB3aGVuIHRoZSBkYXRhIGNoYW5nZXMsIGl0IGlzIHNlbGVjdGVkIG9yIHRoZSBzb3J0IHByb2plY3QgY2hhbmdlcy5cclxuICAgIGNvbnN0IHNvcnRlZFByb2plY3RzOiBMb2FkaW5nRGF0YTxQcm9qZWN0W10+ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2plY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogcHJvamVjdHMubG9hZGluZ1N0YXR1cyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc2xpY2VkUHJvamVjdERhdGEgPSBwcm9qZWN0cy5kYXRhLnNsaWNlKCk7XHJcbiAgICAgICAgc3dpdGNoIChzb3J0ZWRDb2x1bW4pIHtcclxuICAgICAgICAgICAgY2FzZSBcInN0YXR1c2NvZGVcIjpcclxuICAgICAgICAgICAgICAgIHNsaWNlZFByb2plY3REYXRhLnNvcnQoKHByb2plY3RBLCBwcm9qZWN0QikgPT5cclxuICAgICAgICAgICAgICAgICAgICAoUHJvamVjdFN0YXR1c0NvZGVbcHJvamVjdEFbc29ydGVkQ29sdW1uXV0/LnRvU3RyaW5nKCkgPz8gXCJcIikubG9jYWxlQ29tcGFyZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1c0NvZGVbcHJvamVjdEJbc29ydGVkQ29sdW1uXV0/LnRvU3RyaW5nKCkgPz8gXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHNsaWNlZFByb2plY3REYXRhLnNvcnQoKHByb2plY3RBLCBwcm9qZWN0QikgPT5cclxuICAgICAgICAgICAgICAgICAgICAocHJvamVjdEFbc29ydGVkQ29sdW1uXT8udG9TdHJpbmcoKSA/PyBcIlwiKS5sb2NhbGVDb21wYXJlKHByb2plY3RCW3NvcnRlZENvbHVtbl0/LnRvU3RyaW5nKCkgPz8gXCJcIilcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhc1NvcnRlZExvYWRpbmdEYXRhKHNsaWNlZFByb2plY3REYXRhKTtcclxuICAgIH0sIFtwcm9qZWN0cywgc29ydGVkQ29sdW1uLCBpc1NvcnRlZEFzY2VuZGluZ10pO1xyXG5cclxuICAgIC8vIEZpbHRlciB0aGUgUHJvamVjdHMgaW50byB0aGUgYXBwbGljYWJsZSBTdGF0dXMgZ3JvdXBzLlxyXG4gICAgY29uc3QgZmlsdGVyZWRQcm9qZWN0czogRmlsdGVyZWRQcm9qZWN0cyA9IHtcclxuICAgICAgICBwcm9qZWN0T25ib2FyZGluZzogdG9Mb2FkaW5nRGF0YShzb3J0ZWRQcm9qZWN0cywgKHByb2plY3RzKSA9PlxyXG4gICAgICAgICAgICBwcm9qZWN0cy5maWx0ZXIoKHByb2plY3QpID0+XHJcbiAgICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1c0NvZGVbXCJQcm9qZWN0IE9uYm9hcmRpbmdcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1c0NvZGVbXCJQZW5kaW5nIFN0YXJ0XCJdLFxyXG4gICAgICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXNDb2RlLlByb2Nlc3NpbmcsXHJcbiAgICAgICAgICAgICAgICBdLmluY2x1ZGVzKHByb2plY3Quc3RhdHVzY29kZSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgaW5Qcm9ncmVzczogdG9Mb2FkaW5nRGF0YShzb3J0ZWRQcm9qZWN0cywgKHByb2plY3RzKSA9PlxyXG4gICAgICAgICAgICBwcm9qZWN0cy5maWx0ZXIoKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdXS5pbmNsdWRlcyhwcm9qZWN0LnN0YXR1c2NvZGUpKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgYmxvY2tlZDogdG9Mb2FkaW5nRGF0YShzb3J0ZWRQcm9qZWN0cywgKHByb2plY3RzKSA9PlxyXG4gICAgICAgICAgICBwcm9qZWN0cy5maWx0ZXIoKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZS5CbG9ja2VkXS5pbmNsdWRlcyhwcm9qZWN0LnN0YXR1c2NvZGUpKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgb25Ib2xkOiB0b0xvYWRpbmdEYXRhKHNvcnRlZFByb2plY3RzLCAocHJvamVjdHMpID0+XHJcbiAgICAgICAgICAgIHByb2plY3RzLmZpbHRlcigocHJvamVjdCkgPT4gW1Byb2plY3RTdGF0dXNDb2RlW1wiT24gSG9sZFwiXV0uaW5jbHVkZXMocHJvamVjdC5zdGF0dXNjb2RlKSlcclxuICAgICAgICApLFxyXG4gICAgICAgIGNsb3NlZDogdG9Mb2FkaW5nRGF0YShzb3J0ZWRQcm9qZWN0cywgKHByb2plY3RzKSA9PlxyXG4gICAgICAgICAgICBwcm9qZWN0cy5maWx0ZXIoKHByb2plY3QpID0+IFtQcm9qZWN0U3RhdHVzQ29kZS5DbG9zZWRdLmluY2x1ZGVzKHByb2plY3Quc3RhdHVzY29kZSkpXHJcbiAgICAgICAgKSxcclxuICAgIH07XHJcblxyXG4gICAgLy8gTWFwIHRoZSBmaWx0ZXJlZCBQcm9qZWN0cyBpbnRvIGZpbHRlciBncm91cCB0aWxlcy5cclxuICAgIGNvbnN0IHByb2plY3RzRmlsdGVyR3JvdXBzOiBGaWx0ZXJHcm91cDxQcm9qZWN0PltdID0gZ2V0UHJvamVjdHNGaWx0ZXJHcm91cHMoXHJcbiAgICAgICAgZmlsdGVyZWRQcm9qZWN0cyxcclxuICAgICAgICBzZWxlY3RlZFN0YXR1c1RpbGVJZHMsXHJcbiAgICAgICAgc2V0U2VsZWN0ZWRTdGF0dXNUaWxlSWRzXHJcbiAgICApO1xyXG5cclxuICAgIC8vIERldGVybWluZSB0aGUgYXBwbGljYWJsZSBTdGF0dXMgZmlsdGVycy5cclxuICAgIGNvbnN0IGFwcGxpY2FibGVTdGF0dXNGaWx0ZXJzID0gcHJvamVjdHNGaWx0ZXJHcm91cHMuZmxhdE1hcCgoZmlsdGVyR3JvdXApID0+XHJcbiAgICAgICAgZmlsdGVyR3JvdXAudGlsZXNcclxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHNlbGVjdGVkIHRpbGVzIGluIHRoZSBncm91cCB0aGVuIG5vIGZpbHRlcnMgYXJlIGFwcGxpZWQuXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHRpbGUpID0+IChzZWxlY3RlZFN0YXR1c1RpbGVJZHMubGVuZ3RoID4gMCA/IHNlbGVjdGVkU3RhdHVzVGlsZUlkcy5pbmNsdWRlcyh0aWxlLmlkKSA6IHRydWUpKVxyXG4gICAgICAgICAgICAuZmxhdE1hcCgodGlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRpbGUuZmlsdGVyO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBGaWx0ZXIgdGhlIFByb2plY3RzIGJ5IHRoZSBTZWFyY2ggQmFyIGNvbnRlbnQgYW5kIHRoZSBhcHBsaWNhYmxlIFN0YXR1cyBmaWx0ZXJzLlxyXG4gICAgY29uc3QgcHJvamVjdHNUb0Rpc3BsYXkgPSB0b0xvYWRpbmdEYXRhKHNvcnRlZFByb2plY3RzLCAocHJvamVjdHMpID0+XHJcbiAgICAgICAgcHJvamVjdHNcclxuICAgICAgICAgICAgLy8gQXBwbHkgdGhlIFNlYXJjaCBCYXIgZmlsdGVyLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChwcm9qZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuc29tZSgoW18sIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0VmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSB2YWx1ZT8udG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRWYWx1ZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaEJhckNvbnRlbnQudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBTdGF0dXMgVGlsZSBmaWx0ZXJzLlxyXG4gICAgICAgICAgICAuZmlsdGVyKChwcm9qZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwbGljYWJsZVN0YXR1c0ZpbHRlcnMuc29tZSgoZmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcihwcm9qZWN0KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCYXNlUGFnZSB0aXRsZT1cIlByb2plY3RzXCI+XHJcbiAgICAgICAgICAgIDxNYW5hZ2VtZW50UGFuZWxcclxuICAgICAgICAgICAgICAgIHNldFNlYXJjaEJhckNvbnRlbnQ9e3NldFNlYXJjaEJhckNvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJHcm91cHM9e3Byb2plY3RzRmlsdGVyR3JvdXBzfVxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PVwiU2VhcmNoIGZvciBQcm9qZWN0XCJcclxuICAgICAgICAgICAgICAgIGdldFN1bW1hcnlTZWN0aW9ucz17KCkgPT4gW119XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJzVG9EaXNwbGF5PXtbXX1cclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgIHtwcm9qZWN0c1RvRGlzcGxheS5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiID8gKFxyXG4gICAgICAgICAgICAgICAgPExvYWRpbmdTcGlubmVyIC8+XHJcbiAgICAgICAgICAgICkgOiBwcm9qZWN0c1RvRGlzcGxheS5kYXRhLmxlbmd0aCA9PT0gMCA/IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tcmVzdWx0cy1tZXNzYWdlXCI+VGhlcmUgYXJlIG5vIHJlY29yZHMgdG8gZGlzcGxheS48L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJlbnRpdHlsaXN0IHByb2plY3RzLXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyQ2VsbHMubWFwKChjZWxsKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlSGVhZGVyQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NlbGwuaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlcj17Y2VsbC5jb2x1bW5IZWFkZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZT17Y2VsbC5maWVsZE5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcldpZHRoPXtjZWxsLmNlbGxXaWR0aH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGluZ1Byb3BzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0aW5nRW5hYmxlZDogY2VsbC5pc1NvcnRhYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGVkQ29sdW1uOiBzb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTb3J0ZWRDb2x1bW46ICgpID0+IHNldFNvcnRlZENvbHVtbihjZWxsLmZpZWxkTmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NvcnRlZEFzY2VuZGluZzogaXNTb3J0ZWRBc2NlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1NvcnRlZEFzY2VuZGluZzogc2V0SXNTb3J0ZWRBc2NlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvamVjdHNUb0Rpc3BsYXkuZGF0YS5tYXAoKHByb2plY3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cHJvamVjdC5tc2R5bl9wcm9qZWN0aWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaWQ9e3Byb2plY3QubXNkeW5fcHJvamVjdGlkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWVudGl0eT1cIm1zZHluX3Byb2plY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwcm9qZWN0LWlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtwcm9qZWN0LmJpc3RlY2hfcHJvamVjdG51bWJlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFwiYmlzdGVjaF9wcm9qZWN0bnVtYmVyXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cHJvamVjdC5tc2R5bl9wcm9qZWN0aWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG89e2BlZGl0P3Byb2plY3RJZD0ke3Byb2plY3QubXNkeW5fcHJvamVjdGlkfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb2plY3QuYmlzdGVjaF9wcm9qZWN0bnVtYmVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInByb2plY3QtbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17cHJvamVjdC5tc2R5bl9zdWJqZWN0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJtc2R5bl9zdWJqZWN0XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvamVjdC5tc2R5bl9zdWJqZWN0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInByb2plY3Qtc3RhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJtc2R5bl9zY2hlZHVsZWRzdGFydFwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb2plY3QubXNkeW5fc2NoZWR1bGVkc3RhcnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERhdGVIZWxwZXIudG9EYXRlT25seVN0cmluZyhwcm9qZWN0Lm1zZHluX3NjaGVkdWxlZHN0YXJ0KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwcm9qZWN0LW93bmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVhZGluZy10aXRsZT17Z2V0Q29sdW1uSGVhZGVyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiX293bmVyaWRfdmFsdWVAT0RhdGEuQ29tbXVuaXR5LkRpc3BsYXkuVjEuRm9ybWF0dGVkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb2plY3RbXCJfb3duZXJpZF92YWx1ZUBPRGF0YS5Db21tdW5pdHkuRGlzcGxheS5WMS5Gb3JtYXR0ZWRWYWx1ZVwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInByb2plY3Qtc3RhdHVzXCIgZGF0YS1oZWFkaW5nLXRpdGxlPXtnZXRDb2x1bW5IZWFkZXIoXCJzdGF0dXNjb2RlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtQcm9qZWN0U3RhdHVzQ29kZVtwcm9qZWN0LnN0YXR1c2NvZGVdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICA8L0Jhc2VQYWdlPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHtcclxuICAgIG1ha2VTdHlsZXMsXHJcbiAgICBtZXJnZUNsYXNzZXMsXHJcbiAgICBQb3NpdGlvbmluZ0ltcGVyYXRpdmVSZWYsXHJcbiAgICBTZWxlY3RUYWJEYXRhLFxyXG4gICAgU2VsZWN0VGFiRXZlbnQsXHJcbiAgICBzaG9ydGhhbmRzLFxyXG4gICAgVGFiLFxyXG4gICAgVGFiTGlzdCBhcyBUYWJMaXN0Q29udGFpbmVyLFxyXG59IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByb2plY3RzRWRpdENvbnRlbnRQcm9wcyB9IGZyb20gXCIuLi9QYWdlcy9Qcm9qZWN0c0VkaXQvUHJvamVjdHNFZGl0Q29udGVudFwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyBGaW5pc2hUeXBlLCBNdWx0aVN0ZXBUZWFjaGluZ0J1YmJsZSwgVGVhY2hpbmdCdWJibGUgfSBmcm9tIFwiLi9NdWx0aVN0ZXBUZWFjaGluZ0J1YmJsZVwiO1xyXG5cclxuLyoqIFRoZSBsaXN0IG9mIG5hbWVzIG9mIHRoZSB0YWJzICovXHJcbmV4cG9ydCBjb25zdCBUQUJfTElTVF9OQU1FUyA9IFtcIlN1bW1hcnlcIiwgXCJQcm9qZWN0IFRhc2tzXCIsIFwiQ29udGFjdHNcIiwgXCJQcm9qZWN0IExvZ3NcIiwgXCJOZXR3b3JrIE9yZGVyc1wiXSBhcyBjb25zdDtcclxuXHJcbi8vIFRoaXMgaXMgYSBsaXN0IHN0b3JlZCBpbiBsb2NhbCBzdG9yYWdlIHRvIGtlZXAgdHJhY2sgb2Ygd2hpY2ggdGVhY2hpbmcgYnViYmxlcyBoYXZlIGJlZW4gc2hvd24uXHJcbmV4cG9ydCBjb25zdCBQUk9KRUNUX1RBQlNfVEVBQ0hJTkdfQlVCQkxFX1NIT1dOX0FSUkFZID0gXCJCaXN0ZWNoOlRlYWNoaW5nQnViYmxlOlByb2plY3QtVGFicy1Db21wbGV0ZWQtU3RhZ2VzXCI7XHJcblxyXG4vKiogVHlwZSByZXByZXNlbnRpbmcgdGhlIE5hbWUncyBvZiB0aGUgVGFiICovXHJcbmV4cG9ydCB0eXBlIFRhYkxpc3ROYW1lID0gKHR5cGVvZiBUQUJfTElTVF9OQU1FUylbbnVtYmVyXTtcclxuXHJcbi8qKiBUeXBlIHJlcHJlc2VudGluZyBhIFRhYiAqL1xyXG5leHBvcnQgdHlwZSBUYWIgPSB7XHJcbiAgICBuYW1lOiBUYWJMaXN0TmFtZTtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBzaG93V2hlbjogYm9vbGVhbjtcclxuICAgIGNvbXBvbmVudFRvUmVuZGVyOiAocHJvcHM6IFByb2plY3RzRWRpdENvbnRlbnRQcm9wcykgPT4gSlNYLkVsZW1lbnQ7XHJcbn07XHJcblxyXG4vKiogVHlwZSByZXByZXNlbnRpbmcgdGhlIHByb3BzIG9mIHRoZSBUYWJMaXN0ICovXHJcbnR5cGUgVGFiTGlzdFByb3BzID0ge1xyXG4gICAgdGFiczogVGFiW107XHJcbiAgICBhY3RpdmVUYWI6IFRhYkxpc3ROYW1lO1xyXG4gICAgb25UYWJDbGljazogKGV2ZW50OiBTZWxlY3RUYWJFdmVudDxIVE1MRWxlbWVudD4sIHRhYk5hbWU6IFRhYkxpc3ROYW1lIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuLyoqIFRoZSBzdHlsZXMgdXNlZCBmb3IgdGhlIFF1b3RlIFZpZXdlciBzZWN0aW9uLiAqL1xyXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHtcclxuICAgIHRhYkxpc3Q6IHtcclxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICBtYXJnaW5Cb3R0b206IFwiMnB4XCIsXHJcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcclxuICAgICAgICBmbGV4QmFzaXM6IFwiY2FsYygzMyUgLSAxLjVlbSlcIixcclxuICAgIH0sXHJcbiAgICBjb250YWluZXI6IHtcclxuICAgICAgICAuLi5zaG9ydGhhbmRzLm92ZXJmbG93KFwiaGlkZGVuXCIpLFxyXG4gICAgICAgIC4uLnNob3J0aGFuZHMucGFkZGluZyhcIjVweFwiLCBcIjBweFwiKSxcclxuICAgICAgICBvdmVyZmxvdzogXCJhdXRvXCIsXHJcbiAgICAgICAgaGVpZ2h0OiBcImZpdC1jb250ZW50XCIsXHJcbiAgICAgICAgbWluV2lkdGg6IFwiMTUwcHhcIixcclxuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXHJcbiAgICAgICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcclxuICAgIH0sXHJcbiAgICBob3Jpem9udGFsOiB7XHJcbiAgICAgICAgaGVpZ2h0OiBcImZpdC1jb250ZW50XCIsXHJcbiAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZlwiLFxyXG4gICAgfSxcclxuICAgIHRhYkl0ZW06IHtcclxuICAgICAgICBwYWRkaW5nUmlnaHQ6IFwiMS41ZW1cIixcclxuICAgICAgICBwYWRkaW5nTGVmdDogXCIxLjVlbVwiLFxyXG4gICAgICAgIHBhZGRpbmdCb3R0b206IFwiMWVtXCIsXHJcbiAgICAgICAgZm9udDogXCJpbmhlcml0XCIsXHJcbiAgICB9LFxyXG4gICAgdGFiQ29udGVudDoge1xyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXHJcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcclxuICAgIH0sXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB0byByZW5kZXIgYSBsaXN0IG9mIHRhYnNcclxuICogQHBhcmFtIHByb3BzIE9iamVjdCBjb250YWluaW5nIHRoZSB0YWJzLCBhY3RpdmUgdGFiIGFuZCB0aGUgb25UYWJDbGljayBldmVudC5cclxuICogQHJldHVybnMgVGhlIHRhYiBsaXN0IGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRhYkxpc3Q6IFJlYWN0LkZDPFRhYkxpc3RQcm9wcz4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlcygpO1xyXG4gICAgY29uc3QgdmlzaWJsZVRhYnMgPSBwcm9wcy50YWJzLmZpbHRlcigodGFiKSA9PiB0YWIuc2hvd1doZW4pO1xyXG5cclxuICAgIGNvbnN0IHRlYWNoaW5nQnViYmxlU2hvd25BcnJheTogVGFiTGlzdE5hbWVbXSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oUFJPSkVDVF9UQUJTX1RFQUNISU5HX0JVQkJMRV9TSE9XTl9BUlJBWSkgfHwgXCJbXVwiXHJcbiAgICApO1xyXG5cclxuICAgIC8vIFRlYWNoaW5nIGJ1YmJsZSByZWZlcmVuY2VzXHJcbiAgICBjb25zdCBzdW1tYXJ5UmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcclxuICAgIGNvbnN0IHByb2plY3RUYXNrc1JlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbCk7XHJcbiAgICBjb25zdCBjb250YWN0c1JlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbCk7XHJcbiAgICBjb25zdCBuZXR3b3JrT3JkZXJzUmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcclxuICAgIGNvbnN0IHByb2plY3RMb2dzUmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcclxuICAgIGNvbnN0IHRlYWNoaW5nQnViYmxlUmVmID0gdXNlUmVmPFBvc2l0aW9uaW5nSW1wZXJhdGl2ZVJlZj4obnVsbCk7XHJcblxyXG4gICAgY29uc3QgdGVhY2hpbmdCdWJibGVzOiBUZWFjaGluZ0J1YmJsZVtdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVmRWxlbWVudDogc3VtbWFyeVJlZi5jdXJyZW50LFxyXG4gICAgICAgICAgICBoZWFkbGluZTogXCJTdW1tYXJ5XCIsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiVmlldyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHByb2plY3RcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVmRWxlbWVudDogcHJvamVjdFRhc2tzUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgIGhlYWRsaW5lOiBcIlByb2plY3QgVGFza3NcIixcclxuICAgICAgICAgICAgY29udGVudDogXCJWaWV3IGFuZCBtYW5hZ2UgdGhlIHRhc2tzIGFzc29jaWF0ZWQgd2l0aCB5b3VyIHByb2plY3RcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVmRWxlbWVudDogY29udGFjdHNSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgaGVhZGxpbmU6IFwiQ29udGFjdHNcIixcclxuICAgICAgICAgICAgY29udGVudDogXCJWaWV3IHRoZSBjb250YWN0cyBhc3NvY2lhdGVkIHdpdGggeW91ciBwcm9qZWN0XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJlZkVsZW1lbnQ6IG5ldHdvcmtPcmRlcnNSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgaGVhZGxpbmU6IFwiTmV0d29yayBPcmRlcnNcIixcclxuICAgICAgICAgICAgY29udGVudDogXCJWaWV3IHRoZSBuZXR3b3JrIG9yZGVycyBhc3NvY2lhdGVkIHdpdGggeW91ciBwcm9qZWN0XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJlZkVsZW1lbnQ6IHByb2plY3RMb2dzUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgIGhlYWRsaW5lOiBcIlByb2plY3QgTG9nc1wiLFxyXG4gICAgICAgICAgICBjb250ZW50OiBcIlZpZXcgdGhlIGxvZ3MgYXNzb2NpYXRlZCB3aXRoIHlvdXIgcHJvamVjdFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIElmIHRoZXJlIGFyZSAwIG9yIDEgdGFicywgZG8gbm90IHJlbmRlciB0aGUgdGFiIGxpc3RcclxuICAgIGlmICh2aXNpYmxlVGFicy5sZW5ndGggPD0gMSkge1xyXG4gICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGUgdGFiIG5hbWUgaXMgcHJlc2VudCBpbiB0aGUgc3RvcmFnZSwgZG8gbm90IHNob3cgdGhlIHRlYWNoaW5nIGJ1YmJsZVxyXG4gICAgY29uc3QgYnViYmxlc1RvU2hvdyA9IHRlYWNoaW5nQnViYmxlc1xyXG4gICAgICAgIC5maWx0ZXIoKGJ1YmJsZSkgPT4gIXRlYWNoaW5nQnViYmxlU2hvd25BcnJheS5pbmNsdWRlcyhidWJibGUuaGVhZGxpbmUgYXMgVGFiTGlzdE5hbWUpKVxyXG4gICAgICAgIC8vIEFsc28gb25seSBzaG93IGZvciB2aXNpYmxlIHRhYnNcclxuICAgICAgICAuZmlsdGVyKChidWJibGUpID0+IHZpc2libGVUYWJzLm1hcCgodGFiKSA9PiB0YWIubmFtZSkuaW5jbHVkZXMoYnViYmxlLmhlYWRsaW5lIGFzIFRhYkxpc3ROYW1lKSk7XHJcblxyXG4gICAgY29uc3QgW3RlYWNoaW5nQnViYmxlSXNFbmFibGVkLCBzZXRUZWFjaGluZ0J1YmJsZUlzRW5hYmxlZF0gPSB1c2VTdGF0ZShidWJibGVzVG9TaG93Lmxlbmd0aCA+IDApO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xvc2VzIHRoZSB0ZWFjaGluZyBidWJibGUuXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiBmaW5pc2guXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGNsb3NlVGVhY2hpbmdCdWJibGUgPSAodHlwZTogRmluaXNoVHlwZSkgPT4ge1xyXG4gICAgICAgIHNldFRlYWNoaW5nQnViYmxlSXNFbmFibGVkKGZhbHNlKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGUgPT09IFwiY29tcGxldGVkXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q29tcGxldGVkVGVhY2hpbmdCdWJibGVBcnJheSA9IFtcclxuICAgICAgICAgICAgICAgIC4uLnRlYWNoaW5nQnViYmxlU2hvd25BcnJheSxcclxuICAgICAgICAgICAgICAgIC4uLmJ1YmJsZXNUb1Nob3cubWFwKChidWJibGUpID0+IGJ1YmJsZS5oZWFkbGluZSBhcyBUYWJMaXN0TmFtZSksXHJcbiAgICAgICAgICAgIF07XHJcblxyXG4gICAgICAgICAgICAvLyBTZXQgdGhlIGxvY2Fsc3RvcmFnZSB0byB0aGUgY3VycmVudGx5IHNob3duIHRhYnNcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICBQUk9KRUNUX1RBQlNfVEVBQ0hJTkdfQlVCQkxFX1NIT1dOX0FSUkFZLFxyXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkobmV3Q29tcGxldGVkVGVhY2hpbmdCdWJibGVBcnJheSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudGFiTGlzdH0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17bWVyZ2VDbGFzc2VzKHN0eWxlcy5jb250YWluZXIsIHN0eWxlcy5ob3Jpem9udGFsKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRhYkxpc3RDb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZT17cHJvcHMuYWN0aXZlVGFifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblRhYlNlbGVjdD17KGUsIGRhdGE6IFNlbGVjdFRhYkRhdGEpID0+IHByb3BzLm9uVGFiQ2xpY2soZSwgZGF0YS52YWx1ZSBhcyBUYWJMaXN0TmFtZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmlzaWJsZVRhYnMubWFwKCh0YWIpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9eygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgbm90IGlkZWFsLCBob3dldmVyIHlvdSBjYW5ub3QgY29uZGl0aW9uYWxseSBhc3NpZ24gcmVmcyBpbiBSZWFjdCBpbiBhIGxvb3AuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGFiLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTdW1tYXJ5XCI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1bW1hcnlSZWY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiUHJvamVjdCBUYXNrc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9qZWN0VGFza3NSZWY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ29udGFjdHNcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGFjdHNSZWY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTmV0d29yayBPcmRlcnNcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV0d29ya09yZGVyc1JlZjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJQcm9qZWN0IExvZ3NcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvamVjdExvZ3NSZWY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17dGFiLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RhYi5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRhYkl0ZW19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50YWJDb250ZW50fT57dGFiLmxhYmVsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UYWI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvVGFiTGlzdENvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAge3RlYWNoaW5nQnViYmxlSXNFbmFibGVkICYmIChcclxuICAgICAgICAgICAgICAgIDxNdWx0aVN0ZXBUZWFjaGluZ0J1YmJsZVxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJQcm9qZWN0IFRhYnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlVGVhY2hpbmdCdWJibGU9e2Nsb3NlVGVhY2hpbmdCdWJibGV9XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25pbmdSZWY9e3RlYWNoaW5nQnViYmxlUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgIHRlYWNoaW5nQnViYmxlcz17YnViYmxlc1RvU2hvd31cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgUHJvamVjdFRhc2sgfSBmcm9tIFwiLi4vTW9kZWxzL1Byb2plY3RUYXNrXCI7XHJcbmltcG9ydCB7IENvbW1lbnRGaWVsZCB9IGZyb20gXCIuL0ZpZWxkcy9Db21tZW50RmllbGRcIjtcclxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi9Nb2RhbFwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuLi9Ib29rcy91c2VBcHBJbnNpZ2h0c1wiO1xyXG5cclxuLyoqIEEgY29tcG9uZW50IHdoaWNoIGRpc3BsYXlzIHRoZSBmaWVsZHMgcmVxdWlyZWQgdG8gY2xvc2UgYSBwcm9qZWN0IHRhc2sgKi9cclxuZXhwb3J0IGNvbnN0IENvbXBsZXRlUHJvamVjdFRhc2tNb2RhbDogUmVhY3QuRkM8e1xyXG4gICAgcHJvamVjdFRhc2s6IFByb2plY3RUYXNrO1xyXG4gICAgcHJvamVjdElkOiBzdHJpbmc7XHJcbiAgICBjb21wbGV0ZVByb2plY3RUYXNrSXNTaG93bjogYm9vbGVhbjtcclxuICAgIHNldENvbXBsZXRlUHJvamVjdFRhc2tJc1Nob3duOiAoaXNTaG93bjogYm9vbGVhbikgPT4gdm9pZDtcclxuICAgIG9uU3VibWl0OiAocHJvamVjdFRhc2s6IFByb2plY3RUYXNrLCBjb21tZW50OiBzdHJpbmcpID0+IHZvaWQ7XHJcbn0+ID0gKHsgcHJvamVjdFRhc2ssIHByb2plY3RJZCwgY29tcGxldGVQcm9qZWN0VGFza0lzU2hvd24sIHNldENvbXBsZXRlUHJvamVjdFRhc2tJc1Nob3duLCBvblN1Ym1pdCB9KSA9PiB7XHJcbiAgICBjb25zdCBbaXNEaXJ0eSwgc2V0SXNEaXJ0eV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcbiAgICBjb25zdCBbaXNTdWJtaXR0aW5nLCBzZXRJc1N1Ym1pdHRpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgY29uc3QgW3BvcnRhbENvbW1lbnQsIHNldFBvcnRhbENvbW1lbnRdID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcclxuICAgIGNvbnN0IHsgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEsIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YSB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuXHJcbiAgICAvKiogRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjaGFuZ2Ugb2YgdGhlIGNvbW1lbnQgZmllbGQgKi9cclxuICAgIGZ1bmN0aW9uIG9uQ2hhbmdlQ29tbWVudEZpZWxkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBzZXRJc0RpcnR5KHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNldElzRGlydHkoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0UG9ydGFsQ29tbWVudCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ29tcGxldGUoKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgc2V0SXNTdWJtaXR0aW5nKHRydWUpO1xyXG4gICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBQcm9qZWN0IC0gUHJvamVjdCBUYXNrIGNvbXBsZXRpb24gc3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICBwcm9qZWN0SWQsXHJcbiAgICAgICAgICAgICAgICBwcm9qZWN0VGFza0lkOiBwcm9qZWN0VGFzay5tc2R5bl9wcm9qZWN0dGFza2lkLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGF3YWl0IG9uU3VibWl0KHByb2plY3RUYXNrLCBwb3J0YWxDb21tZW50KTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBzZXRJc1N1Ym1pdHRpbmcoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBQcm9qZWN0IC0gUHJvamVjdCBUYXNrIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgcHJvamVjdElkLFxyXG4gICAgICAgICAgICBwcm9qZWN0VGFza0lkOiBwcm9qZWN0VGFzay5tc2R5bl9wcm9qZWN0dGFza2lkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICAgIGJ1dHRvbkluZm89e3tcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhaXNEaXJ0eSB8fCBpc1N1Ym1pdHRpbmcsXHJcbiAgICAgICAgICAgICAgICBoYXNNb2RhbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbXBsZXRlIFRhc2tcIixcclxuICAgICAgICAgICAgICAgIG1vZGFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgIGlzRXJyb3JNb2RhbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxCdXR0b25MYWJlbDogXCJDb21wbGV0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsQ29udGVudDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb21tZW50RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtcImNvbW1lbnRcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cG9ydGFsQ29tbWVudH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBvbkNoYW5nZUNvbW1lbnRGaWVsZCh2YWx1ZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e2lzU3VibWl0dGluZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsVGl0bGU6IFwiQ29tcGxldGUgUHJvamVjdCBUYXNrXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4gaGFuZGxlQ29tcGxldGUoKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGlzTW9kYWxTaG93bj17Y29tcGxldGVQcm9qZWN0VGFza0lzU2hvd259XHJcbiAgICAgICAgICAgIHNldElzTW9kYWxTaG93bj17c2V0Q29tcGxldGVQcm9qZWN0VGFza0lzU2hvd259XHJcbiAgICAgICAgLz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IFByb2plY3RUYXNrIH0gZnJvbSBcIi4uL01vZGVscy9Qcm9qZWN0VGFza1wiO1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi9Nb2RhbFwiO1xyXG5pbXBvcnQgeyBMb29rdXBGaWVsZCwgTG9va3VwT3B0aW9uIH0gZnJvbSBcIi4vRmllbGRzL0xvb2t1cEZpZWxkXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrRm9yVXBkYXRlIH0gZnJvbSBcIi4uL01vZGVscy9Qcm9qZWN0VGFza0ZvclVwZGF0ZVwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBTdHJpbmdGaWVsZCB9IGZyb20gXCIuL0ZpZWxkcy9TdHJpbmdGaWVsZFwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuLi9Ib29rcy91c2VBcHBJbnNpZ2h0c1wiO1xyXG5pbXBvcnQgeyBDb250YWN0U3RhdGVDb2RlIH0gZnJvbSBcIi4uL0VudW1zL0NvbnRhY3RTdGF0ZUNvZGVcIjtcclxuXHJcbi8qKiBBIGNvbXBvbmVudCB3aGljaCBkaXNwbGF5cyBQcm9qZWN0IGluZm9ybWF0aW9uIGluIGEgbW9kYWwuICovXHJcbmV4cG9ydCBjb25zdCBQcm9qZWN0VGFza0RldGFpbHNNb2RhbDogUmVhY3QuRkM8e1xyXG4gICAgcHJvamVjdFRhc2s6IFByb2plY3RUYXNrO1xyXG4gICAgcHJvamVjdFRhc2tEZXRhaWxzSXNTaG93bjogYm9vbGVhbjtcclxuICAgIHByb2plY3RJZDogc3RyaW5nO1xyXG4gICAgc2V0UHJvamVjdFRhc2tEZXRhaWxzSXNTaG93bjogKGlzU2hvd246IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgICBvblN1Ym1pdDogKHByb2plY3RUYXNrOiBQcm9qZWN0VGFza0ZvclVwZGF0ZSkgPT4gdm9pZDtcclxufT4gPSAoeyBwcm9qZWN0VGFzaywgcHJvamVjdFRhc2tEZXRhaWxzSXNTaG93biwgcHJvamVjdElkLCBzZXRQcm9qZWN0VGFza0RldGFpbHNJc1Nob3duLCBvblN1Ym1pdCB9KSA9PiB7XHJcbiAgICBjb25zdCBjb250YWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuY29udGFjdHMpO1xyXG4gICAgY29uc3QgW2NvbnRhY3RJZCwgc2V0Q29udGFjdElkXSA9IHVzZVN0YXRlPHN0cmluZz4ocHJvamVjdFRhc2suX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWUgPz8gXCJcIik7XHJcbiAgICBjb25zdCBbaXNEaXJ0eSwgc2V0SXNEaXJ0eV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcbiAgICBjb25zdCB7IHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhLCB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcbiAgICBjb25zdCBbY29tYm9ib3hXaWR0aCwgc2V0Q29tYm9ib3hXaWR0aF0gPSB1c2VTdGF0ZTxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblxyXG4gICAgY29uc3QgbG9hZGVkQ29udGFjdHMgPSBjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiID8gW10gOiBjb250YWN0cy5kYXRhO1xyXG5cclxuICAgIGNvbnN0IGxvb2t1cE9wdGlvbnM6IExvb2t1cE9wdGlvbltdID0gWy4uLmxvYWRlZENvbnRhY3RzXVxyXG4gICAgICAgIC5maWx0ZXIoKGNvbnRhY3QpID0+IGNvbnRhY3QuYmlzdGVjaF9pc3Nob3duaW5wb3J0YWwpXHJcbiAgICAgICAgLm1hcCgoY29udGFjdCkgPT4gKHtcclxuICAgICAgICAgICAgaWQ6IGNvbnRhY3QuY29udGFjdGlkLFxyXG4gICAgICAgICAgICBwcmltYXJ5VGV4dDogW2NvbnRhY3QuZmlyc3RuYW1lLCBjb250YWN0Lmxhc3RuYW1lXS5maWx0ZXIoKHMpID0+IHMpLmpvaW4oXCIgXCIpLFxyXG4gICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiBjb250YWN0LmVtYWlsYWRkcmVzczEgPz8gXCJcIixcclxuICAgICAgICAgICAgaXNQaWNrYWJsZTogY29udGFjdC5zdGF0ZWNvZGUgPT09IENvbnRhY3RTdGF0ZUNvZGVbXCJBY3RpdmVcIl0sXHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgLnNvcnQoKGNvbnRhY3RBLCBjb250YWN0QikgPT4gYCR7Y29udGFjdEEucHJpbWFyeVRleHR9YC5sb2NhbGVDb21wYXJlKGAke2NvbnRhY3RCLnByaW1hcnlUZXh0fWApKTtcclxuXHJcbiAgICAvLyBTZXQgdGhlIGNvbnRhY3RJZCB0byB0aGUgcHJvamVjdFRhc2sncyBhc3NpZ25lZCBjb250YWN0IHdoZW4gdGhlIG1vZGFsIGlzIHNob3duXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9qZWN0VGFza0RldGFpbHNJc1Nob3duKSB7XHJcbiAgICAgICAgICAgIHNldENvbnRhY3RJZChwcm9qZWN0VGFzay5fYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZSA/PyBcIlwiKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvamVjdFRhc2tEZXRhaWxzSXNTaG93biwgcHJvamVjdFRhc2suX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWVdKTtcclxuXHJcbiAgICAvLyBEaXNhYmxlIHRoZSBzYXZlIGJ1dHRvbiBpZiB0aGUgY29udGFjdElkIGlzIHRoZSBzYW1lIGFzIHRoZSBwcm9qZWN0VGFzaydzIGFzc2lnbmVkIGNvbnRhY3RcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbnRhY3RJZCAhPT0gcHJvamVjdFRhc2suX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWUpIHtcclxuICAgICAgICAgICAgc2V0SXNEaXJ0eSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZXRJc0RpcnR5KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbY29udGFjdElkXSk7XHJcblxyXG4gICAgLy8gU2V0IHRoZSB3aWR0aCBvZiB0aGUgY29tYm9ib3ggdG8gdGhlIHdpZHRoIG9mIHRoZSBtb2RhbFxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAobW9kYWxSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBzZXRDb21ib2JveFdpZHRoKG1vZGFsUmVmLmN1cnJlbnQuY2xpZW50V2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFttb2RhbFJlZi5jdXJyZW50LCBwcm9qZWN0VGFza0RldGFpbHNJc1Nob3duXSk7XHJcblxyXG4gICAgLy8gRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBzYXZlIGJ1dHRvblxyXG4gICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlU2F2ZSgpIHtcclxuICAgICAgICBjb25zdCB1cGRhdGVkUHJvamVjdFRhc2s6IFByb2plY3RUYXNrRm9yVXBkYXRlID0ge1xyXG4gICAgICAgICAgICAuLi5wcm9qZWN0VGFzayxcclxuICAgICAgICAgICAgX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWU6IGNvbnRhY3RJZCxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBQcm9qZWN0IC0gUHJvamVjdCBUYXNrIHVwZGF0ZSBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgIHByb2plY3RJZCxcclxuICAgICAgICAgICAgICAgIHByb2plY3RUYXNrSWQ6IHByb2plY3RUYXNrLm1zZHluX3Byb2plY3R0YXNraWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgb25TdWJtaXQodXBkYXRlZFByb2plY3RUYXNrKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkVkaXQgUHJvamVjdCAtIFByb2plY3QgVGFzayB1cGRhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICBwcm9qZWN0SWQsXHJcbiAgICAgICAgICAgIHByb2plY3RUYXNrSWQ6IHByb2plY3RUYXNrLm1zZHluX3Byb2plY3R0YXNraWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFByb2plY3RUYXNrRGV0YWlsc0lzU2hvd24oZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICAgIGJ1dHRvbkluZm89e3tcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhaXNEaXJ0eSxcclxuICAgICAgICAgICAgICAgIGhhc01vZGFsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiRWRpdFwiLFxyXG4gICAgICAgICAgICAgICAgbW9kYWxJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXNFcnJvck1vZGFsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbEJ1dHRvbkxhYmVsOiBcIlNhdmVcIixcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbENvbnRlbnQ6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bW9kYWxSZWZ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicHJvamVjdC1uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb2plY3RUYXNrLm1zZHluX3N1YmplY3R9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb21ib2JveFdpZHRoICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9va3VwRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e1wiYXNzaWduZWQgdG9cIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQXNzaWduZWQgVG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25JZD17Y29udGFjdElkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGxvb2t1cE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsT3B0aW9uc05hbWU9e1wiQWN0aXZlIENvbnRhY3RzXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbklkPXsob3B0aW9uKSA9PiBzZXRDb250YWN0SWQob3B0aW9uID8/IFwiXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRXaWR0aD17Y29tYm9ib3hXaWR0aH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsVGl0bGU6IFwiRWRpdCBQcm9qZWN0IFRhc2tcIixcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiBoYW5kbGVTYXZlKCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpc01vZGFsU2hvd249e3Byb2plY3RUYXNrRGV0YWlsc0lzU2hvd259XHJcbiAgICAgICAgICAgIHNldElzTW9kYWxTaG93bj17c2V0UHJvamVjdFRhc2tEZXRhaWxzSXNTaG93bn1cclxuICAgICAgICAvPlxyXG4gICAgKTtcclxufTtcclxuIiwiLyoqXG4gKiBUaGUgZGF5cyBvZiB0aGUgd2Vla1xuICovIGV4cG9ydCB2YXIgRGF5T2ZXZWVrO1xuKGZ1bmN0aW9uKERheU9mV2Vlaykge1xuICAgIERheU9mV2Vla1tEYXlPZldlZWtbXCJTdW5kYXlcIl0gPSAwXSA9IFwiU3VuZGF5XCI7XG4gICAgRGF5T2ZXZWVrW0RheU9mV2Vla1tcIk1vbmRheVwiXSA9IDFdID0gXCJNb25kYXlcIjtcbiAgICBEYXlPZldlZWtbRGF5T2ZXZWVrW1wiVHVlc2RheVwiXSA9IDJdID0gXCJUdWVzZGF5XCI7XG4gICAgRGF5T2ZXZWVrW0RheU9mV2Vla1tcIldlZG5lc2RheVwiXSA9IDNdID0gXCJXZWRuZXNkYXlcIjtcbiAgICBEYXlPZldlZWtbRGF5T2ZXZWVrW1wiVGh1cnNkYXlcIl0gPSA0XSA9IFwiVGh1cnNkYXlcIjtcbiAgICBEYXlPZldlZWtbRGF5T2ZXZWVrW1wiRnJpZGF5XCJdID0gNV0gPSBcIkZyaWRheVwiO1xuICAgIERheU9mV2Vla1tEYXlPZldlZWtbXCJTYXR1cmRheVwiXSA9IDZdID0gXCJTYXR1cmRheVwiO1xufSkoRGF5T2ZXZWVrIHx8IChEYXlPZldlZWsgPSB7fSkpO1xuZXhwb3J0IHZhciBNb250aE9mWWVhcjtcbihmdW5jdGlvbihNb250aE9mWWVhcikge1xuICAgIE1vbnRoT2ZZZWFyW01vbnRoT2ZZZWFyW1wiSmFudWFyeVwiXSA9IDBdID0gXCJKYW51YXJ5XCI7XG4gICAgTW9udGhPZlllYXJbTW9udGhPZlllYXJbXCJGZWJydWFyeVwiXSA9IDFdID0gXCJGZWJydWFyeVwiO1xuICAgIE1vbnRoT2ZZZWFyW01vbnRoT2ZZZWFyW1wiTWFyY2hcIl0gPSAyXSA9IFwiTWFyY2hcIjtcbiAgICBNb250aE9mWWVhcltNb250aE9mWWVhcltcIkFwcmlsXCJdID0gM10gPSBcIkFwcmlsXCI7XG4gICAgTW9udGhPZlllYXJbTW9udGhPZlllYXJbXCJNYXlcIl0gPSA0XSA9IFwiTWF5XCI7XG4gICAgTW9udGhPZlllYXJbTW9udGhPZlllYXJbXCJKdW5lXCJdID0gNV0gPSBcIkp1bmVcIjtcbiAgICBNb250aE9mWWVhcltNb250aE9mWWVhcltcIkp1bHlcIl0gPSA2XSA9IFwiSnVseVwiO1xuICAgIE1vbnRoT2ZZZWFyW01vbnRoT2ZZZWFyW1wiQXVndXN0XCJdID0gN10gPSBcIkF1Z3VzdFwiO1xuICAgIE1vbnRoT2ZZZWFyW01vbnRoT2ZZZWFyW1wiU2VwdGVtYmVyXCJdID0gOF0gPSBcIlNlcHRlbWJlclwiO1xuICAgIE1vbnRoT2ZZZWFyW01vbnRoT2ZZZWFyW1wiT2N0b2JlclwiXSA9IDldID0gXCJPY3RvYmVyXCI7XG4gICAgTW9udGhPZlllYXJbTW9udGhPZlllYXJbXCJOb3ZlbWJlclwiXSA9IDEwXSA9IFwiTm92ZW1iZXJcIjtcbiAgICBNb250aE9mWWVhcltNb250aE9mWWVhcltcIkRlY2VtYmVyXCJdID0gMTFdID0gXCJEZWNlbWJlclwiO1xufSkoTW9udGhPZlllYXIgfHwgKE1vbnRoT2ZZZWFyID0ge30pKTtcbmV4cG9ydCB2YXIgRmlyc3RXZWVrT2ZZZWFyO1xuKGZ1bmN0aW9uKEZpcnN0V2Vla09mWWVhcikge1xuICAgIEZpcnN0V2Vla09mWWVhcltGaXJzdFdlZWtPZlllYXJbXCJGaXJzdERheVwiXSA9IDBdID0gXCJGaXJzdERheVwiO1xuICAgIEZpcnN0V2Vla09mWWVhcltGaXJzdFdlZWtPZlllYXJbXCJGaXJzdEZ1bGxXZWVrXCJdID0gMV0gPSBcIkZpcnN0RnVsbFdlZWtcIjtcbiAgICBGaXJzdFdlZWtPZlllYXJbRmlyc3RXZWVrT2ZZZWFyW1wiRmlyc3RGb3VyRGF5V2Vla1wiXSA9IDJdID0gXCJGaXJzdEZvdXJEYXlXZWVrXCI7XG59KShGaXJzdFdlZWtPZlllYXIgfHwgKEZpcnN0V2Vla09mWWVhciA9IHt9KSk7XG5leHBvcnQgdmFyIERhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24oRGF0ZVJhbmdlVHlwZSkge1xuICAgIERhdGVSYW5nZVR5cGVbRGF0ZVJhbmdlVHlwZVtcIkRheVwiXSA9IDBdID0gXCJEYXlcIjtcbiAgICBEYXRlUmFuZ2VUeXBlW0RhdGVSYW5nZVR5cGVbXCJXZWVrXCJdID0gMV0gPSBcIldlZWtcIjtcbiAgICBEYXRlUmFuZ2VUeXBlW0RhdGVSYW5nZVR5cGVbXCJNb250aFwiXSA9IDJdID0gXCJNb250aFwiO1xuICAgIERhdGVSYW5nZVR5cGVbRGF0ZVJhbmdlVHlwZVtcIldvcmtXZWVrXCJdID0gM10gPSBcIldvcmtXZWVrXCI7XG59KShEYXRlUmFuZ2VUeXBlIHx8IChEYXRlUmFuZ2VUeXBlID0ge30pKTtcbmV4cG9ydCBjb25zdCBEQVlTX0lOX1dFRUsgPSA3O1xuZXhwb3J0IGNvbnN0IFRpbWVDb25zdGFudHMgPSB7XG4gICAgTWlsbGlzZWNvbmRzSW5PbmVEYXk6IDg2NDAwMDAwLFxuICAgIE1pbGxpc2Vjb25kc0luMVNlYzogMTAwMCxcbiAgICBNaWxsaXNlY29uZHNJbjFNaW46IDYwMDAwLFxuICAgIE1pbGxpc2Vjb25kc0luMzBNaW5zOiAxODAwMDAwLFxuICAgIE1pbGxpc2Vjb25kc0luMUhvdXI6IDM2MDAwMDAsXG4gICAgTWludXRlc0luT25lRGF5OiAxNDQwLFxuICAgIE1pbnV0ZXNJbk9uZUhvdXI6IDYwLFxuICAgIERheXNJbk9uZVdlZWs6IDcsXG4gICAgTW9udGhJbk9uZVllYXI6IDEyLFxuICAgIEhvdXJzSW5PbmVEYXk6IDI0LFxuICAgIFNlY29uZHNJbk9uZU1pbnV0ZTogNjAsXG4gICAgT2Zmc2V0VG8yNEhvdXJGb3JtYXQ6IDEyLFxuICAgIC8qKlxuICAgKiBNYXRjaGVzIGEgdGltZSBzdHJpbmcuIEdyb3VwczpcbiAgICogMS4gaG91cnMgKHdpdGggb3Igd2l0aG91dCBsZWFkaW5nIDApXG4gICAqIDIuIG1pbnV0ZXNcbiAgICogMy4gc2Vjb25kcyAob3B0aW9uYWwpXG4gICAqIDQuIG1lcmlkaWVtIChhbS9wbSwgY2FzZS1pbnNlbnNpdGl2ZSwgb3B0aW9uYWwpXG4gICAqLyBUaW1lRm9ybWF0UmVnZXg6IC9eKFxcZFxcZD8pOihcXGRcXGQpOj8oXFxkXFxkKT8gPyhbYXBdbSk/L2lcbn07XG4iLCIvKipcbiAqIEZvcm1hdCBkYXRlIHRvIGEgZGF5IHN0cmluZyByZXByZXNlbnRhdGlvblxuICogQHBhcmFtIGRhdGUgLSBpbnB1dCBkYXRlIHRvIGZvcm1hdFxuICovIGV4cG9ydCBjb25zdCBmb3JtYXREYXkgPSAoZGF0ZSk9PmRhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCk7XG4vKipcbiAqIEZvcm1hdCBkYXRlIHRvIGEgbW9udGgtZGF5LXllYXIgc3RyaW5nXG4gKiBAcGFyYW0gZGF0ZSAtIGlucHV0IGRhdGUgdG8gZm9ybWF0XG4gKiBAcGFyYW0gc3RyaW5ncyAtIGxvY2FsaXplZCBzdHJpbmdzXG4gKi8gZXhwb3J0IGNvbnN0IGZvcm1hdE1vbnRoRGF5WWVhciA9IChkYXRlLCBzdHJpbmdzKT0+c3RyaW5ncy5tb250aHNbZGF0ZS5nZXRNb250aCgpXSArICcgJyArIGRhdGUuZ2V0RGF0ZSgpICsgJywgJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbi8qKlxuICogRm9ybWF0IGRhdGUgdG8gYSBtb250aC15ZWFyIHN0cmluZ1xuICogQHBhcmFtIGRhdGUgLSBpbnB1dCBkYXRlIHRvIGZvcm1hdFxuICogQHBhcmFtIHN0cmluZ3MgLSBsb2NhbGl6ZWQgc3RyaW5nc1xuICovIGV4cG9ydCBjb25zdCBmb3JtYXRNb250aFllYXIgPSAoZGF0ZSwgc3RyaW5ncyk9PnN0cmluZ3MubW9udGhzW2RhdGUuZ2V0TW9udGgoKV0gKyAnICcgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4vKipcbiAqIEZvcm1hdCBkYXRlIHRvIGEgbW9udGggc3RyaW5nXG4gKiBAcGFyYW0gZGF0ZSAtIGlucHV0IGRhdGUgdG8gZm9ybWF0XG4gKiBAcGFyYW0gc3RyaW5ncyAtIGxvY2FsaXplZCBzdHJpbmdzXG4gKi8gZXhwb3J0IGNvbnN0IGZvcm1hdE1vbnRoID0gKGRhdGUsIHN0cmluZ3MpPT5zdHJpbmdzLm1vbnRoc1tkYXRlLmdldE1vbnRoKCldO1xuLyoqXG4gKiBGb3JtYXQgZGF0ZSB0byBhIHllYXIgc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gKiBAcGFyYW0gZGF0ZSAtIGlucHV0IGRhdGUgdG8gZm9ybWF0XG4gKi8gZXhwb3J0IGNvbnN0IGZvcm1hdFllYXIgPSAoZGF0ZSk9PmRhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFURV9HUklEX1NUUklOR1MgPSB7XG4gICAgbW9udGhzOiBbXG4gICAgICAgICdKYW51YXJ5JyxcbiAgICAgICAgJ0ZlYnJ1YXJ5JyxcbiAgICAgICAgJ01hcmNoJyxcbiAgICAgICAgJ0FwcmlsJyxcbiAgICAgICAgJ01heScsXG4gICAgICAgICdKdW5lJyxcbiAgICAgICAgJ0p1bHknLFxuICAgICAgICAnQXVndXN0JyxcbiAgICAgICAgJ1NlcHRlbWJlcicsXG4gICAgICAgICdPY3RvYmVyJyxcbiAgICAgICAgJ05vdmVtYmVyJyxcbiAgICAgICAgJ0RlY2VtYmVyJ1xuICAgIF0sXG4gICAgc2hvcnRNb250aHM6IFtcbiAgICAgICAgJ0phbicsXG4gICAgICAgICdGZWInLFxuICAgICAgICAnTWFyJyxcbiAgICAgICAgJ0FwcicsXG4gICAgICAgICdNYXknLFxuICAgICAgICAnSnVuJyxcbiAgICAgICAgJ0p1bCcsXG4gICAgICAgICdBdWcnLFxuICAgICAgICAnU2VwJyxcbiAgICAgICAgJ09jdCcsXG4gICAgICAgICdOb3YnLFxuICAgICAgICAnRGVjJ1xuICAgIF0sXG4gICAgZGF5czogW1xuICAgICAgICAnU3VuZGF5JyxcbiAgICAgICAgJ01vbmRheScsXG4gICAgICAgICdUdWVzZGF5JyxcbiAgICAgICAgJ1dlZG5lc2RheScsXG4gICAgICAgICdUaHVyc2RheScsXG4gICAgICAgICdGcmlkYXknLFxuICAgICAgICAnU2F0dXJkYXknXG4gICAgXSxcbiAgICBzaG9ydERheXM6IFtcbiAgICAgICAgJ1MnLFxuICAgICAgICAnTScsXG4gICAgICAgICdUJyxcbiAgICAgICAgJ1cnLFxuICAgICAgICAnVCcsXG4gICAgICAgICdGJyxcbiAgICAgICAgJ1MnXG4gICAgXVxufTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RBVEVfRk9STUFUVElORyA9IHtcbiAgICBmb3JtYXREYXksXG4gICAgZm9ybWF0TW9udGgsXG4gICAgZm9ybWF0WWVhcixcbiAgICBmb3JtYXRNb250aERheVllYXIsXG4gICAgZm9ybWF0TW9udGhZZWFyXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FMRU5EQVJfU1RSSU5HUyA9IHtcbiAgICAuLi5ERUZBVUxUX0RBVEVfR1JJRF9TVFJJTkdTLFxuICAgIGdvVG9Ub2RheTogJ0dvIHRvIHRvZGF5JyxcbiAgICB3ZWVrTnVtYmVyRm9ybWF0U3RyaW5nOiAnV2VlayBudW1iZXIgezB9JyxcbiAgICBwcmV2TW9udGhBcmlhTGFiZWw6ICdQcmV2aW91cyBtb250aCcsXG4gICAgbmV4dE1vbnRoQXJpYUxhYmVsOiAnTmV4dCBtb250aCcsXG4gICAgcHJldlllYXJBcmlhTGFiZWw6ICdQcmV2aW91cyB5ZWFyJyxcbiAgICBuZXh0WWVhckFyaWFMYWJlbDogJ05leHQgeWVhcicsXG4gICAgcHJldlllYXJSYW5nZUFyaWFMYWJlbDogJ1ByZXZpb3VzIHllYXIgcmFuZ2UnLFxuICAgIG5leHRZZWFyUmFuZ2VBcmlhTGFiZWw6ICdOZXh0IHllYXIgcmFuZ2UnLFxuICAgIGNsb3NlQnV0dG9uQXJpYUxhYmVsOiAnQ2xvc2UnLFxuICAgIHNlbGVjdGVkRGF0ZUZvcm1hdFN0cmluZzogJ1NlbGVjdGVkIGRhdGUgezB9JyxcbiAgICB0b2RheURhdGVGb3JtYXRTdHJpbmc6IFwiVG9kYXkncyBkYXRlIHswfVwiLFxuICAgIG1vbnRoUGlja2VySGVhZGVyQXJpYUxhYmVsOiAnezB9LCBjaGFuZ2UgeWVhcicsXG4gICAgeWVhclBpY2tlckhlYWRlckFyaWFMYWJlbDogJ3swfSwgY2hhbmdlIG1vbnRoJyxcbiAgICBkYXlNYXJrZWRBcmlhTGFiZWw6ICdtYXJrZWQnXG59O1xuIiwiaW1wb3J0IHsgRGF0ZVJhbmdlVHlwZSwgRGF5T2ZXZWVrLCBGaXJzdFdlZWtPZlllYXIsIE1vbnRoT2ZZZWFyLCBUaW1lQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbi8qKlxuICogUmV0dXJucyBhIGRhdGUgb2Zmc2V0IGZyb20gdGhlIGdpdmVuIGRhdGUgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cy5cbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbiBkYXRlXG4gKiBAcGFyYW0gZGF5cyAtIFRoZSBudW1iZXIgb2YgZGF5cyB0byBvZmZzZXQuICdkYXlzJyBjYW4gYmUgbmVnYXRpdmUuXG4gKiBAcmV0dXJucyBBIG5ldyBEYXRlIG9iamVjdCBvZmZzZXQgZnJvbSB0aGUgb3JpZ2luIGRhdGUgYnkgdGhlIGdpdmVuIG51bWJlciBvZiBkYXlzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGFkZERheXMoZGF0ZSwgZGF5cykge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgZGF5cyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8qKlxuICogUmV0dXJucyBhIGRhdGUgb2Zmc2V0IGZyb20gdGhlIGdpdmVuIGRhdGUgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygd2Vla3MuXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW4gZGF0ZVxuICogQHBhcmFtIHdlZWtzIC0gVGhlIG51bWJlciBvZiB3ZWVrcyB0byBvZmZzZXQuICd3ZWVrcycgY2FuIGJlIG5lZ2F0aXZlLlxuICogQHJldHVybnMgQSBuZXcgRGF0ZSBvYmplY3Qgb2Zmc2V0IGZyb20gdGhlIG9yaWdpbiBkYXRlIGJ5IHRoZSBnaXZlbiBudW1iZXIgb2Ygd2Vla3NcbiAqLyBleHBvcnQgZnVuY3Rpb24gYWRkV2Vla3MoZGF0ZSwgd2Vla3MpIHtcbiAgICByZXR1cm4gYWRkRGF5cyhkYXRlLCB3ZWVrcyAqIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2Vlayk7XG59XG4vKipcbiAqIFJldHVybnMgYSBkYXRlIG9mZnNldCBmcm9tIHRoZSBnaXZlbiBkYXRlIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1vbnRocy5cbiAqIFRoZSBtZXRob2QgdHJpZXMgdG8gcHJlc2VydmUgdGhlIGRheS1vZi1tb250aDsgaG93ZXZlciwgaWYgdGhlIG5ldyBtb250aCBkb2VzIG5vdCBoYXZlIGVub3VnaCBkYXlzXG4gKiB0byBjb250YWluIHRoZSBvcmlnaW5hbCBkYXktb2YtbW9udGgsIHdlJ2xsIHVzZSB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aC5cbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbiBkYXRlXG4gKiBAcGFyYW0gbW9udGhzIC0gVGhlIG51bWJlciBvZiBtb250aHMgdG8gb2Zmc2V0LiAnbW9udGhzJyBjYW4gYmUgbmVnYXRpdmUuXG4gKiBAcmV0dXJucyBBIG5ldyBEYXRlIG9iamVjdCBvZmZzZXQgZnJvbSB0aGUgb3JpZ2luIGRhdGUgYnkgdGhlIGdpdmVuIG51bWJlciBvZiBtb250aHNcbiAqLyBleHBvcnQgZnVuY3Rpb24gYWRkTW9udGhzKGRhdGUsIG1vbnRocykge1xuICAgIGxldCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gICAgY29uc3QgbmV3TW9udGggPSByZXN1bHQuZ2V0TW9udGgoKSArIG1vbnRocztcbiAgICByZXN1bHQuc2V0TW9udGgobmV3TW9udGgpO1xuICAgIC8vIFdlIHdhbnQgdG8gbWFpbnRhaW4gdGhlIHNhbWUgZGF5LW9mLW1vbnRoLCBidXQgdGhhdCBtYXkgbm90IGJlIHBvc3NpYmxlIGlmIHRoZSBuZXcgbW9udGggZG9lc24ndCBoYXZlIGVub3VnaCBkYXlzLlxuICAgIC8vIExvb3AgdW50aWwgd2UgYmFjayB1cCB0byBhIGRheSB0aGUgbmV3IG1vbnRoIGhhcy5cbiAgICAvLyAoV2VpcmQgbW9kdWxvIG1hdGggaXMgZHVlIHRvIEphdmFzY3JpcHQncyB0cmVhdG1lbnQgb2YgbmVnYXRpdmUgbnVtYmVycyBpbiBtb2R1bG8pXG4gICAgaWYgKHJlc3VsdC5nZXRNb250aCgpICE9PSAobmV3TW9udGggJSBUaW1lQ29uc3RhbnRzLk1vbnRoSW5PbmVZZWFyICsgVGltZUNvbnN0YW50cy5Nb250aEluT25lWWVhcikgJSBUaW1lQ29uc3RhbnRzLk1vbnRoSW5PbmVZZWFyKSB7XG4gICAgICAgIHJlc3VsdCA9IGFkZERheXMocmVzdWx0LCAtcmVzdWx0LmdldERhdGUoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIFJldHVybnMgYSBkYXRlIG9mZnNldCBmcm9tIHRoZSBnaXZlbiBkYXRlIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXJzLlxuICogVGhlIG1ldGhvZCB0cmllcyB0byBwcmVzZXJ2ZSB0aGUgZGF5LW9mLW1vbnRoOyBob3dldmVyLCBpZiB0aGUgbmV3IG1vbnRoIGRvZXMgbm90IGhhdmUgZW5vdWdoIGRheXNcbiAqIHRvIGNvbnRhaW4gdGhlIG9yaWdpbmFsIGRheS1vZi1tb250aCwgd2UnbGwgdXNlIHRoZSBsYXN0IGRheSBvZiB0aGUgbmV3IG1vbnRoLlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luIGRhdGVcbiAqIEBwYXJhbSB5ZWFycyAtIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gb2Zmc2V0LiAneWVhcnMnIGNhbiBiZSBuZWdhdGl2ZS5cbiAqIEByZXR1cm5zIEEgbmV3IERhdGUgb2JqZWN0IG9mZnNldCBmcm9tIHRoZSBvcmlnaW4gZGF0ZSBieSB0aGUgZ2l2ZW4gbnVtYmVyIG9mIHllYXJzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGFkZFllYXJzKGRhdGUsIHllYXJzKSB7XG4gICAgbGV0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgICByZXN1bHQuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpICsgeWVhcnMpO1xuICAgIC8vIFdlIHdhbnQgdG8gbWFpbnRhaW4gdGhlIHNhbWUgZGF5LW9mLW1vbnRoLCBidXQgdGhhdCBtYXkgbm90IGJlIHBvc3NpYmxlIGlmIHRoZSBuZXcgbW9udGggZG9lc24ndCBoYXZlIGVub3VnaCBkYXlzLlxuICAgIC8vIExvb3AgdW50aWwgd2UgYmFjayB1cCB0byBhIGRheSB0aGUgbmV3IG1vbnRoIGhhcy5cbiAgICAvLyAoV2VpcmQgbW9kdWxvIG1hdGggaXMgZHVlIHRvIEphdmFzY3JpcHQncyB0cmVhdG1lbnQgb2YgbmVnYXRpdmUgbnVtYmVycyBpbiBtb2R1bG8pXG4gICAgaWYgKHJlc3VsdC5nZXRNb250aCgpICE9PSAoZGF0ZS5nZXRNb250aCgpICUgVGltZUNvbnN0YW50cy5Nb250aEluT25lWWVhciArIFRpbWVDb25zdGFudHMuTW9udGhJbk9uZVllYXIpICUgVGltZUNvbnN0YW50cy5Nb250aEluT25lWWVhcikge1xuICAgICAgICByZXN1bHQgPSBhZGREYXlzKHJlc3VsdCwgLXJlc3VsdC5nZXREYXRlKCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBSZXR1cm5zIGEgZGF0ZSB0aGF0IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIG9mIHRoZSBwcm92aWRlZCBkYXRlLlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luIGRhdGVcbiAqIEByZXR1cm5zIEEgbmV3IERhdGUgb2JqZWN0IHdpdGggdGhlIGRheSBzZXQgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGguXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldE1vbnRoU3RhcnQoZGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSwgMCwgMCwgMCwgMCk7XG59XG4vKipcbiAqIFJldHVybnMgYSBkYXRlIHRoYXQgaXMgdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aCBvZiB0aGUgcHJvdmlkZWQgZGF0ZS5cbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbiBkYXRlXG4gKiBAcmV0dXJucyBBIG5ldyBEYXRlIG9iamVjdCB3aXRoIHRoZSBkYXkgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldE1vbnRoRW5kKGRhdGUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwLCAwLCAwLCAwLCAwKTtcbn1cbi8qKlxuICogUmV0dXJucyBhIGRhdGUgdGhhdCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB5ZWFyIG9mIHRoZSBwcm92aWRlZCBkYXRlLlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luIGRhdGVcbiAqIEByZXR1cm5zIEEgbmV3IERhdGUgb2JqZWN0IHdpdGggdGhlIGRheSBzZXQgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgeWVhci5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0WWVhclN0YXJ0KGRhdGUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxLCAwLCAwLCAwLCAwKTtcbn1cbi8qKlxuICogUmV0dXJucyBhIGRhdGUgdGhhdCBpcyB0aGUgbGFzdCBkYXkgb2YgdGhlIHllYXIgb2YgdGhlIHByb3ZpZGVkIGRhdGUuXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW4gZGF0ZVxuICogQHJldHVybnMgQSBuZXcgRGF0ZSBvYmplY3Qgd2l0aCB0aGUgZGF5IHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIHllYXIuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldFllYXJFbmQoZGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCkgKyAxLCAwLCAwLCAwLCAwLCAwLCAwKTtcbn1cbi8qKlxuICogUmV0dXJucyBhIGRhdGUgdGhhdCBpcyBhIGNvcHkgb2YgdGhlIGdpdmVuIGRhdGUsIGFzaWRlIGZyb20gdGhlIG1vbnRoIGNoYW5naW5nIHRvIHRoZSBnaXZlbiBtb250aC5cbiAqICBUaGUgbWV0aG9kIHRyaWVzIHRvIHByZXNlcnZlIHRoZSBkYXktb2YtbW9udGg7IGhvd2V2ZXIsIGlmIHRoZSBuZXcgbW9udGggZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF5c1xuICogdG8gY29udGFpbiB0aGUgb3JpZ2luYWwgZGF5LW9mLW1vbnRoLCB3ZSdsbCB1c2UgdGhlIGxhc3QgZGF5IG9mIHRoZSBuZXcgbW9udGguXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW4gZGF0ZVxuICogQHBhcmFtIG1vbnRoIC0gVGhlIDAtYmFzZWQgaW5kZXggb2YgdGhlIG1vbnRoIHRvIHNldCBvbiB0aGUgZGF0ZS5cbiAqIEByZXR1cm5zIEEgbmV3IERhdGUgb2JqZWN0IHdpdGggdGhlIGdpdmVuIG1vbnRoIHNldC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gc2V0TW9udGgoZGF0ZSwgbW9udGgpIHtcbiAgICByZXR1cm4gYWRkTW9udGhzKGRhdGUsIG1vbnRoIC0gZGF0ZS5nZXRNb250aCgpKTtcbn1cbi8qKlxuICogQ29tcGFyZXMgdHdvIGRhdGVzLCBhbmQgcmV0dXJucyB0cnVlIGlmIHRoZSB0d28gZGF0ZXMgKG5vdCBhY2NvdW50aW5nIGZvciB0aW1lLW9mLWRheSkgYXJlIGVxdWFsLlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgdHdvIGRhdGVzIHJlcHJlc2VudCB0aGUgc2FtZSBkYXRlIChyZWdhcmRsZXNzIG9mIHRpbWUtb2YtZGF5KSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBjb21wYXJlRGF0ZXMoZGF0ZTEsIGRhdGUyKSB7XG4gICAgaWYgKCFkYXRlMSAmJiAhZGF0ZTIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0ZTEuZ2V0RnVsbFllYXIoKSA9PT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSAmJiBkYXRlMS5nZXRNb250aCgpID09PSBkYXRlMi5nZXRNb250aCgpICYmIGRhdGUxLmdldERhdGUoKSA9PT0gZGF0ZTIuZ2V0RGF0ZSgpO1xuICAgIH1cbn1cbi8qKlxuICogQ29tcGFyZSB0aGUgZGF0ZSBwYXJ0cyBvZiB0d28gZGF0ZXNcbiAqIEBwYXJhbSBkYXRlMSAtIFRoZSBmaXJzdCBkYXRlIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSBkYXRlMiAtIFRoZSBzZWNvbmQgZGF0ZSB0byBjb21wYXJlXG4gKiBAcmV0dXJucyBBIG5lZ2F0aXZlIHZhbHVlIGlmIGRhdGUxIGlzIGVhcmxpZXIgdGhhbiBkYXRlMiwgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBvciBhIHBvc2l0aXZlIHZhbHVlXG4gKiBpZiBkYXRlMSBpcyBsYXRlciB0aGFuIGRhdGUyLlxuICovIGV4cG9ydCBmdW5jdGlvbiBjb21wYXJlRGF0ZVBhcnQoZGF0ZTEsIGRhdGUyKSB7XG4gICAgcmV0dXJuIGdldERhdGVQYXJ0SGFzaFZhbHVlKGRhdGUxKSAtIGdldERhdGVQYXJ0SGFzaFZhbHVlKGRhdGUyKTtcbn1cbi8qKlxuICogR2V0cyB0aGUgZGF0ZSByYW5nZSBhcnJheSBpbmNsdWRpbmcgdGhlIHNwZWNpZmllZCBkYXRlLiBUaGUgZGF0ZSByYW5nZSBhcnJheSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBsaXN0XG4gKiBvZiBkYXRlcyBhY2NvdW50aW5nIGZvciB0aGUgc3BlY2lmaWVkIGZpcnN0IGRheSBvZiB0aGUgd2VlayBhbmQgZGF0ZSByYW5nZSB0eXBlLlxuICogQHBhcmFtIGRhdGUgLSBUaGUgaW5wdXQgZGF0ZVxuICogQHBhcmFtIGRhdGVSYW5nZVR5cGUgLSBUaGUgZGVzaXJlZCBkYXRlIHJhbmdlIHR5cGUsIGkuZS4sIGRheSwgd2VlaywgbW9udGgsIGV0Yy5cbiAqIEBwYXJhbSBmaXJzdERheU9mV2VlayAtIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gKiBAcGFyYW0gd29ya1dlZWtEYXlzIC0gVGhlIGFsbG93ZWQgZGF5cyBpbiB3b3JrIHdlZWsuIElmIG5vdCBwcm92aWRlZCwgYXNzdW1lcyBhbGwgZGF5cyBhcmUgYWxsb3dlZC5cbiAqIEBwYXJhbSBkYXlzVG9TZWxlY3RJbkRheVZpZXcgLSBUaGUgbnVtYmVyIG9mIGRheXMgdG8gaW5jbHVkZSB3aGVuIHVzaW5nIGRhdGVSYW5nZVR5cGUgPT09IERhdGVSYW5nZVR5cGUuRGF5XG4gKiBmb3IgbXVsdGlkYXkgdmlldy4gRGVmYXVsdHMgdG8gMVxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGF0ZXMgcmVwcmVzZW50aW5nIHRoZSBkYXRlIHJhbmdlIGNvbnRhaW5pbmcgdGhlIHNwZWNpZmllZCBkYXRlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXREYXRlUmFuZ2VBcnJheShkYXRlLCBkYXRlUmFuZ2VUeXBlLCBmaXJzdERheU9mV2Vlaywgd29ya1dlZWtEYXlzLCBkYXlzVG9TZWxlY3RJbkRheVZpZXcgPSAxKSB7XG4gICAgY29uc3QgZGF0ZXNBcnJheSA9IFtdO1xuICAgIGxldCBzdGFydERhdGU7XG4gICAgbGV0IGVuZERhdGUgPSBudWxsO1xuICAgIGlmICghd29ya1dlZWtEYXlzKSB7XG4gICAgICAgIHdvcmtXZWVrRGF5cyA9IFtcbiAgICAgICAgICAgIERheU9mV2Vlay5Nb25kYXksXG4gICAgICAgICAgICBEYXlPZldlZWsuVHVlc2RheSxcbiAgICAgICAgICAgIERheU9mV2Vlay5XZWRuZXNkYXksXG4gICAgICAgICAgICBEYXlPZldlZWsuVGh1cnNkYXksXG4gICAgICAgICAgICBEYXlPZldlZWsuRnJpZGF5XG4gICAgICAgIF07XG4gICAgfVxuICAgIGRheXNUb1NlbGVjdEluRGF5VmlldyA9IE1hdGgubWF4KGRheXNUb1NlbGVjdEluRGF5VmlldywgMSk7XG4gICAgc3dpdGNoKGRhdGVSYW5nZVR5cGUpe1xuICAgICAgICBjYXNlIERhdGVSYW5nZVR5cGUuRGF5OlxuICAgICAgICAgICAgc3RhcnREYXRlID0gZ2V0RGF0ZVBhcnQoZGF0ZSk7XG4gICAgICAgICAgICBlbmREYXRlID0gYWRkRGF5cyhzdGFydERhdGUsIGRheXNUb1NlbGVjdEluRGF5Vmlldyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBEYXRlUmFuZ2VUeXBlLldlZWs6XG4gICAgICAgIGNhc2UgRGF0ZVJhbmdlVHlwZS5Xb3JrV2VlazpcbiAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IGdldFN0YXJ0RGF0ZU9mV2VlayhnZXREYXRlUGFydChkYXRlKSwgZmlyc3REYXlPZldlZWspO1xuICAgICAgICAgICAgZW5kRGF0ZSA9IGFkZERheXMoc3RhcnREYXRlLCBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWspO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRGF0ZVJhbmdlVHlwZS5Nb250aDpcbiAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcbiAgICAgICAgICAgIGVuZERhdGUgPSBhZGRNb250aHMoc3RhcnREYXRlLCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIG9iamVjdDogJyArIGRhdGVSYW5nZVR5cGUpO1xuICAgIH1cbiAgICAvLyBQb3B1bGF0ZSB0aGUgZGF0ZXMgYXJyYXkgd2l0aCB0aGUgZGF0ZXMgaW4gcmFuZ2VcbiAgICBsZXQgbmV4dERhdGUgPSBzdGFydERhdGU7XG4gICAgZG8ge1xuICAgICAgICBpZiAoZGF0ZVJhbmdlVHlwZSAhPT0gRGF0ZVJhbmdlVHlwZS5Xb3JrV2Vlaykge1xuICAgICAgICAgICAgLy8gcHVzaCBhbGwgZGF5cyBub3QgaW4gd29yayB3ZWVrIHZpZXdcbiAgICAgICAgICAgIGRhdGVzQXJyYXkucHVzaChuZXh0RGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAod29ya1dlZWtEYXlzLmluZGV4T2YobmV4dERhdGUuZ2V0RGF5KCkpICE9PSAtMSkge1xuICAgICAgICAgICAgZGF0ZXNBcnJheS5wdXNoKG5leHREYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBuZXh0RGF0ZSA9IGFkZERheXMobmV4dERhdGUsIDEpO1xuICAgIH13aGlsZSAoIWNvbXBhcmVEYXRlcyhuZXh0RGF0ZSwgZW5kRGF0ZSkpXG4gICAgcmV0dXJuIGRhdGVzQXJyYXk7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBpbiB0aGUgZ2l2ZW4gZGF0ZSByYW5nZS5cbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbiBkYXRlXG4gKiBAcGFyYW0gZGF0ZVJhbmdlIC0gQW4gYXJyYXkgb2YgZGF0ZXMgdG8gZG8gdGhlIGxvb2t1cCBvblxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgZGF0ZSBtYXRjaGVzIG9uZSBvZiB0aGUgZGF0ZXMgaW4gdGhlIHNwZWNpZmllZCBhcnJheSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBpc0luRGF0ZVJhbmdlQXJyYXkoZGF0ZSwgZGF0ZVJhbmdlKSB7XG4gICAgZm9yIChjb25zdCBkYXRlSW5SYW5nZSBvZiBkYXRlUmFuZ2Upe1xuICAgICAgICBpZiAoY29tcGFyZURhdGVzKGRhdGUsIGRhdGVJblJhbmdlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSB3ZWVrIG51bWJlciBmb3IgYSBkYXRlLlxuICogV2VlayBudW1iZXJzIGFyZSAxIC0gNTIgKDUzKSBpbiBhIHllYXJcbiAqIEBwYXJhbSBuYXZpZ2F0ZWREYXRlIC0gQSBkYXRlIHRvIGZpbmQgdGhlIHdlZWsgbnVtYmVyIGZvci5cbiAqIEBwYXJhbSBmaXJzdERheU9mV2VlayAtIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAtNiwgU3VuZGF5ID0gMClcbiAqIEBwYXJhbSBmaXJzdFdlZWtPZlllYXIgLSBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciAoMS0yKVxuICogQHJldHVybnMgVGhlIHdlZWtzIG51bWJlciBhcnJheSBmb3IgdGhlIGN1cnJlbnQgbW9udGguXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtOdW1iZXJzSW5Nb250aCh3ZWVrc0luTW9udGgsIGZpcnN0RGF5T2ZXZWVrLCBmaXJzdFdlZWtPZlllYXIsIG5hdmlnYXRlZERhdGUpIHtcbiAgICBjb25zdCBzZWxlY3RlZFllYXIgPSBuYXZpZ2F0ZWREYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IG5hdmlnYXRlZERhdGUuZ2V0TW9udGgoKTtcbiAgICBsZXQgZGF5T2ZNb250aCA9IDE7XG4gICAgY29uc3QgZmlzdERheU9mTW9udGggPSBuZXcgRGF0ZShzZWxlY3RlZFllYXIsIHNlbGVjdGVkTW9udGgsIGRheU9mTW9udGgpO1xuICAgIGNvbnN0IGVuZE9mRmlyc3RXZWVrID0gZGF5T2ZNb250aCArIChmaXJzdERheU9mV2VlayArIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlayAtIDEpIC0gYWRqdXN0V2Vla0RheShmaXJzdERheU9mV2VlaywgZmlzdERheU9mTW9udGguZ2V0RGF5KCkpO1xuICAgIGxldCBlbmRPZldlZWtSYW5nZSA9IG5ldyBEYXRlKHNlbGVjdGVkWWVhciwgc2VsZWN0ZWRNb250aCwgZW5kT2ZGaXJzdFdlZWspO1xuICAgIGRheU9mTW9udGggPSBlbmRPZldlZWtSYW5nZS5nZXREYXRlKCk7XG4gICAgY29uc3Qgd2Vla3NBcnJheSA9IFtdO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCB3ZWVrc0luTW9udGg7IGkrKyl7XG4gICAgICAgIC8vIEdldCB3ZWVrIG51bWJlciBmb3IgZW5kIG9mIHdlZWtcbiAgICAgICAgd2Vla3NBcnJheS5wdXNoKGdldFdlZWtOdW1iZXIoZW5kT2ZXZWVrUmFuZ2UsIGZpcnN0RGF5T2ZXZWVrLCBmaXJzdFdlZWtPZlllYXIpKTtcbiAgICAgICAgZGF5T2ZNb250aCArPSBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWs7XG4gICAgICAgIGVuZE9mV2Vla1JhbmdlID0gbmV3IERhdGUoc2VsZWN0ZWRZZWFyLCBzZWxlY3RlZE1vbnRoLCBkYXlPZk1vbnRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHdlZWtzQXJyYXk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIHdlZWsgbnVtYmVyIGZvciBhIGRhdGUuXG4gKiBXZWVrIG51bWJlcnMgYXJlIDEgLSA1MiAoNTMpIGluIGEgeWVhclxuICogQHBhcmFtIGRhdGUgLSBBIGRhdGUgdG8gZmluZCB0aGUgd2VlayBudW1iZXIgZm9yLlxuICogQHBhcmFtIGZpcnN0RGF5T2ZXZWVrIC0gVGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMC02LCBTdW5kYXkgPSAwKVxuICogQHBhcmFtIGZpcnN0V2Vla09mWWVhciAtIFRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyICgxLTIpXG4gKiBAcmV0dXJucyBUaGUgd2VlaydzIG51bWJlciBpbiB0aGUgeWVhci5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0V2Vla051bWJlcihkYXRlLCBmaXJzdERheU9mV2VlaywgZmlyc3RXZWVrT2ZZZWFyKSB7XG4gICAgLy8gRmlyc3QgZm91ci1kYXkgd2VlayBvZiB0aGUgeWVhciAtIG1pbnVtdW0gZGF5cyBjb3VudFxuICAgIGNvbnN0IGZvdXJEYXlXZWVrID0gNDtcbiAgICBzd2l0Y2goZmlyc3RXZWVrT2ZZZWFyKXtcbiAgICAgICAgY2FzZSBGaXJzdFdlZWtPZlllYXIuRmlyc3RGdWxsV2VlazpcbiAgICAgICAgICAgIHJldHVybiBnZXRXZWVrT2ZZZWFyRnVsbERheXMoZGF0ZSwgZmlyc3REYXlPZldlZWssIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2Vlayk7XG4gICAgICAgIGNhc2UgRmlyc3RXZWVrT2ZZZWFyLkZpcnN0Rm91ckRheVdlZWs6XG4gICAgICAgICAgICByZXR1cm4gZ2V0V2Vla09mWWVhckZ1bGxEYXlzKGRhdGUsIGZpcnN0RGF5T2ZXZWVrLCBmb3VyRGF5V2Vlayk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZ2V0Rmlyc3REYXlXZWVrT2ZZZWFyKGRhdGUsIGZpcnN0RGF5T2ZXZWVrKTtcbiAgICB9XG59XG4vKipcbiAqIEdldHMgdGhlIGRhdGUgZm9yIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgYmFzZWQgb24gdGhlIGdpdmVuIGRhdGUgYXNzdW1pbmdcbiAqIHRoZSBzcGVjaWZpZWQgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBmaW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHdlZWsgZGF0ZSBmb3IuXG4gKiBAcmV0dXJucyBBIG5ldyBkYXRlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBjb250YWluaW5nIHRoZSBpbnB1dCBkYXRlLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRTdGFydERhdGVPZldlZWsoZGF0ZSwgZmlyc3REYXlPZldlZWspIHtcbiAgICBsZXQgZGF5c09mZnNldCA9IGZpcnN0RGF5T2ZXZWVrIC0gZGF0ZS5nZXREYXkoKTtcbiAgICBpZiAoZGF5c09mZnNldCA+IDApIHtcbiAgICAgICAgLy8gSWYgZmlyc3QgZGF5IG9mIHdlZWsgaXMgPiBkYXRlLCBnbyAxIHdlZWsgYmFjaywgdG8gZW5zdXJlIHJlc3VsdGluZyBkYXRlIGlzIGluIHRoZSBwYXN0LlxuICAgICAgICBkYXlzT2Zmc2V0IC09IFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlaztcbiAgICB9XG4gICAgcmV0dXJuIGFkZERheXMoZGF0ZSwgZGF5c09mZnNldCk7XG59XG4vKipcbiAqIEdldHMgdGhlIGRhdGUgZm9yIHRoZSBsYXN0IGRheSBvZiB0aGUgd2VlayBiYXNlZCBvbiB0aGUgZ2l2ZW4gZGF0ZSBhc3N1bWluZ1xuICogdGhlIHNwZWNpZmllZCBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGZpbmQgdGhlIGJlZ2lubmluZyBvZiB0aGUgd2VlayBkYXRlIGZvci5cbiAqIEByZXR1cm5zIEEgbmV3IGRhdGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGNvbnRhaW5pbmcgdGhlIGlucHV0IGRhdGUuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldEVuZERhdGVPZldlZWsoZGF0ZSwgZmlyc3REYXlPZldlZWspIHtcbiAgICBjb25zdCBsYXN0RGF5T2ZXZWVrID0gZmlyc3REYXlPZldlZWsgLSAxID49IDAgPyBmaXJzdERheU9mV2VlayAtIDEgOiBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWsgLSAxO1xuICAgIGxldCBkYXlzT2Zmc2V0ID0gbGFzdERheU9mV2VlayAtIGRhdGUuZ2V0RGF5KCk7XG4gICAgaWYgKGRheXNPZmZzZXQgPCAwKSB7XG4gICAgICAgIC8vIElmIGxhc3QgZGF5IG9mIHdlZWsgaXMgPCBkYXRlLCBnbyAxIHdlZWsgZm9yd2FyZCwgdG8gZW5zdXJlIHJlc3VsdGluZyBkYXRlIGlzIGluIHRoZSBmdXR1cmUuXG4gICAgICAgIGRheXNPZmZzZXQgKz0gVGltZUNvbnN0YW50cy5EYXlzSW5PbmVXZWVrO1xuICAgIH1cbiAgICByZXR1cm4gYWRkRGF5cyhkYXRlLCBkYXlzT2Zmc2V0KTtcbn1cbi8qKlxuICogR2V0cyBhIG5ldyBkYXRlIHdpdGggdGhlIHRpbWUgcG9ydGlvbiB6ZXJvZWQgb3V0LCBpLmUuLCBzZXQgdG8gbWlkbmlnaHRcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbiBkYXRlXG4gKiBAcmV0dXJucyBBIG5ldyBkYXRlIHdpdGggdGhlIHRpbWUgc2V0IHRvIG1pZG5pZ2h0XG4gKi8gZnVuY3Rpb24gZ2V0RGF0ZVBhcnQoZGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xufVxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gYXNzaXN0IGluIGRhdGUgY29tcGFyaXNvbnNcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBhcnRIYXNoVmFsdWUoZGF0ZSkge1xuICAgIC8vIEdlbmVyYXRlIGRhdGUgaGFzaCB2YWx1ZSBjcmVhdGVkIGFzIHN1bSBvZiBEYXRlICh1cCB0byAzMSA9IDUgYml0cyksIE1vbnRoICh1cCB0byAxMSA9IDQgYml0cykgYW5kIFllYXIuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCkgKyAoZGF0ZS5nZXRNb250aCgpIDw8IDUpICsgKGRhdGUuZ2V0RnVsbFllYXIoKSA8PCA5KTtcbn1cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBgZ2V0V2Vla051bWJlcmAuXG4gKiBSZXR1cm5zIHdlZWsgbnVtYmVyIGZvciBhIGRhdGUuXG4gKiBAcGFyYW0gZGF0ZSAtIGN1cnJlbnQgc2VsZWN0ZWQgZGF0ZS5cbiAqIEBwYXJhbSBmaXJzdERheU9mV2VlayAtIFRoZSBmaXJzdCBkYXkgb2Ygd2VlayAoMC02LCBTdW5kYXkgPSAwKVxuICogQHBhcmFtIG51bWJlck9mRnVsbERheXMgLSB3ZWVrIHNldHRpbmdzLlxuICogQHJldHVybnMgVGhlIHdlZWsncyBudW1iZXIgaW4gdGhlIHllYXIuXG4gKi8gZnVuY3Rpb24gZ2V0V2Vla09mWWVhckZ1bGxEYXlzKGRhdGUsIGZpcnN0RGF5T2ZXZWVrLCBudW1iZXJPZkZ1bGxEYXlzKSB7XG4gICAgY29uc3QgZGF5T2ZZZWFyID0gZ2V0RGF5T2ZZZWFyKGRhdGUpIC0gMTtcbiAgICBsZXQgbnVtID0gZGF0ZS5nZXREYXkoKSAtIGRheU9mWWVhciAlIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlaztcbiAgICBjb25zdCBsYXN0RGF5T2ZQcmV2WWVhciA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSAtIDEsIE1vbnRoT2ZZZWFyLkRlY2VtYmVyLCAzMSk7XG4gICAgY29uc3QgZGF5c0luWWVhciA9IGdldERheU9mWWVhcihsYXN0RGF5T2ZQcmV2WWVhcikgLSAxO1xuICAgIGxldCBudW0yID0gKGZpcnN0RGF5T2ZXZWVrIC0gbnVtICsgMiAqIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlaykgJSBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWs7XG4gICAgaWYgKG51bTIgIT09IDAgJiYgbnVtMiA+PSBudW1iZXJPZkZ1bGxEYXlzKSB7XG4gICAgICAgIG51bTIgLT0gVGltZUNvbnN0YW50cy5EYXlzSW5PbmVXZWVrO1xuICAgIH1cbiAgICBsZXQgbnVtMyA9IGRheU9mWWVhciAtIG51bTI7XG4gICAgaWYgKG51bTMgPCAwKSB7XG4gICAgICAgIG51bSAtPSBkYXlzSW5ZZWFyICUgVGltZUNvbnN0YW50cy5EYXlzSW5PbmVXZWVrO1xuICAgICAgICBudW0yID0gKGZpcnN0RGF5T2ZXZWVrIC0gbnVtICsgMiAqIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlaykgJSBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWs7XG4gICAgICAgIGlmIChudW0yICE9PSAwICYmIG51bTIgKyAxID49IG51bWJlck9mRnVsbERheXMpIHtcbiAgICAgICAgICAgIG51bTIgLT0gVGltZUNvbnN0YW50cy5EYXlzSW5PbmVXZWVrO1xuICAgICAgICB9XG4gICAgICAgIG51bTMgPSBkYXlzSW5ZZWFyIC0gbnVtMjtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguZmxvb3IobnVtMyAvIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlayArIDEpO1xufVxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGBnZXRXZWVrTnVtYmVyYC5cbiAqIFJldHVybnMgd2VlayBudW1iZXIgZm9yIGEgZGF0ZS5cbiAqIEBwYXJhbSBkYXRlIC0gY3VycmVudCBzZWxlY3RlZCBkYXRlLlxuICogQHBhcmFtIGZpcnN0RGF5T2ZXZWVrIC0gVGhlIGZpcnN0IGRheSBvZiB3ZWVrICgwLTYsIFN1bmRheSA9IDApXG4gKiBAcmV0dXJucyBUaGUgd2VlaydzIG51bWJlciBpbiB0aGUgeWVhci5cbiAqLyBmdW5jdGlvbiBnZXRGaXJzdERheVdlZWtPZlllYXIoZGF0ZSwgZmlyc3REYXlPZldlZWspIHtcbiAgICBjb25zdCBudW0gPSBnZXREYXlPZlllYXIoZGF0ZSkgLSAxO1xuICAgIGNvbnN0IG51bTIgPSBkYXRlLmdldERheSgpIC0gbnVtICUgVGltZUNvbnN0YW50cy5EYXlzSW5PbmVXZWVrO1xuICAgIGNvbnN0IG51bTMgPSAobnVtMiAtIGZpcnN0RGF5T2ZXZWVrICsgMiAqIFRpbWVDb25zdGFudHMuRGF5c0luT25lV2VlaykgJSBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWs7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKG51bSArIG51bTMpIC8gVGltZUNvbnN0YW50cy5EYXlzSW5PbmVXZWVrICsgMSk7XG59XG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgYGdldFdlZWtOdW1iZXJgLlxuICogUmV0dXJucyBhZGp1c3RlZCB3ZWVrIGRheSBudW1iZXIgd2hlbiBgZmlyc3REYXlPZldlZWtgIGlzIG90aGVyIHRoYW4gU3VuZGF5LlxuICogRm9yIFdlZWsgRGF5IE51bWJlciBjb21wYXJpc29uIGNoZWNrc1xuICogQHBhcmFtIGZpcnN0RGF5T2ZXZWVrIC0gVGhlIGZpcnN0IGRheSBvZiB3ZWVrICgwLTYsIFN1bmRheSA9IDApXG4gKiBAcGFyYW0gZGF0ZVdlZWtEYXkgLSBzaGlmdHMgbnVtYmVyIGZvcndhcmQgdG8gMSB3ZWVrIGluIGNhc2UgcGFzc2VkIGFzIHRydWVcbiAqIEByZXR1cm5zIFRoZSBkYXkgb2Ygd2VlayBhZGp1c3RlZCB0byBgZmlyc3REYXlPZldlZWtgOyBlLmcuIHdoZW4gYGZpcnN0RGF5T2ZXZWVrYCBpcyBNb25kYXkgKDEpLFxuICogU3VuZGF5IGJlY29tZXMgNy5cbiAqLyBmdW5jdGlvbiBhZGp1c3RXZWVrRGF5KGZpcnN0RGF5T2ZXZWVrLCBkYXRlV2Vla0RheSkge1xuICAgIHJldHVybiBmaXJzdERheU9mV2VlayAhPT0gRGF5T2ZXZWVrLlN1bmRheSAmJiBkYXRlV2Vla0RheSA8IGZpcnN0RGF5T2ZXZWVrID8gZGF0ZVdlZWtEYXkgKyBUaW1lQ29uc3RhbnRzLkRheXNJbk9uZVdlZWsgOiBkYXRlV2Vla0RheTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZGF5IG51bWJlciBmb3IgYSBkYXRlIGluIGEgeWVhcjpcbiAqIHRoZSBudW1iZXIgb2YgZGF5cyBzaW5jZSBKYW51YXJ5IDFzdCBpbiB0aGUgcGFydGljdWxhciB5ZWFyLlxuICogQHBhcmFtIGRhdGUgLSBBIGRhdGUgdG8gZmluZCB0aGUgZGF5IG51bWJlciBmb3IuXG4gKiBAcmV0dXJucyBUaGUgZGF5J3MgbnVtYmVyIGluIHRoZSB5ZWFyLlxuICovIGZ1bmN0aW9uIGdldERheU9mWWVhcihkYXRlKSB7XG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBsZXQgZGF5c1VudGlsRGF0ZSA9IDA7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IG1vbnRoOyBpKyspe1xuICAgICAgICBkYXlzVW50aWxEYXRlICs9IGRheXNJbk1vbnRoKGkgKyAxLCB5ZWFyKTtcbiAgICB9XG4gICAgZGF5c1VudGlsRGF0ZSArPSBkYXRlLmdldERhdGUoKTtcbiAgICByZXR1cm4gZGF5c1VudGlsRGF0ZTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoXG4gKiBAcGFyYW0gbW9udGggLSBUaGUgbW9udGggbnVtYmVyIHRvIHRhcmdldCAobW9udGhzIDEtMTIpLlxuICogQHBhcmFtIHllYXIgLSBUaGUgeWVhciB0byB0YXJnZXQuXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoLlxuICovIGZ1bmN0aW9uIGRheXNJbk1vbnRoKG1vbnRoLCB5ZWFyKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCAwKS5nZXREYXRlKCk7XG59XG4iLCJpbXBvcnQgeyBjb21wYXJlRGF0ZVBhcnQgfSBmcm9tICcuLi9kYXRlTWF0aC9kYXRlTWF0aCc7XG4vKipcbiAqIENoZWNrcyBpZiBgZGF0ZWAgaGFwcGVucyBlYXJsaWVyIHRoYW4gbWluIGRhdGVcbiAqIEBwYXJhbSBkYXRlIC0gZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBvYmplY3Qgd2l0aCBtaW4gZGF0ZSB0byBjaGVjayBhZ2FpbnN0XG4gKi8gZXhwb3J0IGNvbnN0IGlzQmVmb3JlTWluRGF0ZSA9IChkYXRlLCBvcHRpb25zKT0+e1xuICAgIGNvbnN0IHsgbWluRGF0ZSB9ID0gb3B0aW9ucztcbiAgICByZXR1cm4gbWluRGF0ZSA/IGNvbXBhcmVEYXRlUGFydChtaW5EYXRlLCBkYXRlKSA+PSAxIDogZmFsc2U7XG59O1xuIiwiaW1wb3J0IHsgY29tcGFyZURhdGVQYXJ0IH0gZnJvbSAnLi4vZGF0ZU1hdGgvZGF0ZU1hdGgnO1xuLyoqXG4gKiBDaGVja3MgaWYgYGRhdGVgIGhhcHBlbnMgbGF0ZXIgdGhhbiBtYXggZGF0ZVxuICogQHBhcmFtIGRhdGUgLSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIG9iamVjdCB3aXRoIG1heCBkYXRlIHRvIGNoZWNrIGFnYWluc3RcbiAqLyBleHBvcnQgY29uc3QgaXNBZnRlck1heERhdGUgPSAoZGF0ZSwgb3B0aW9ucyk9PntcbiAgICBjb25zdCB7IG1heERhdGUgfSA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIG1heERhdGUgPyBjb21wYXJlRGF0ZVBhcnQoZGF0ZSwgbWF4RGF0ZSkgPj0gMSA6IGZhbHNlO1xufTtcbiIsImltcG9ydCB7IGNvbXBhcmVEYXRlcyB9IGZyb20gJy4uL2RhdGVNYXRoL2RhdGVNYXRoJztcbmltcG9ydCB7IGlzQmVmb3JlTWluRGF0ZSB9IGZyb20gJy4vaXNCZWZvcmVNaW5EYXRlJztcbmltcG9ydCB7IGlzQWZ0ZXJNYXhEYXRlIH0gZnJvbSAnLi9pc0FmdGVyTWF4RGF0ZSc7XG4vKipcbiAqIENoZWNrcyBpZiBgZGF0ZWAgZmFsbHMgaW50byB0aGUgcmVzdHJpY3RlZCBgb3B0aW9uc2BcbiAqIEBwYXJhbSBkYXRlIC0gZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSByZXN0cmljdGlvbiBvcHRpb25zIChtaW4gZGF0ZSwgbWF4IGRhdGUgYW5kIGxpc3Qgb2YgcmVzdHJpY3RlZCBkYXRlcylcbiAqLyBleHBvcnQgY29uc3QgaXNSZXN0cmljdGVkRGF0ZSA9IChkYXRlLCBvcHRpb25zKT0+e1xuICAgIGNvbnN0IHsgcmVzdHJpY3RlZERhdGVzLCBtaW5EYXRlLCBtYXhEYXRlIH0gPSBvcHRpb25zO1xuICAgIGlmICghcmVzdHJpY3RlZERhdGVzICYmICFtaW5EYXRlICYmICFtYXhEYXRlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaW5SZXN0cmljdGVkRGF0ZXMgPSByZXN0cmljdGVkRGF0ZXMgJiYgcmVzdHJpY3RlZERhdGVzLnNvbWUoKHJkKT0+Y29tcGFyZURhdGVzKHJkLCBkYXRlKSk7XG4gICAgcmV0dXJuIGluUmVzdHJpY3RlZERhdGVzIHx8IGlzQmVmb3JlTWluRGF0ZShkYXRlLCBvcHRpb25zKSB8fCBpc0FmdGVyTWF4RGF0ZShkYXRlLCBvcHRpb25zKTtcbn07XG4iLCJpbXBvcnQgeyBpc1Jlc3RyaWN0ZWREYXRlIH0gZnJvbSAnLi9pc1Jlc3RyaWN0ZWREYXRlJztcbmltcG9ydCB7IGlzQWZ0ZXJNYXhEYXRlIH0gZnJvbSAnLi9pc0FmdGVyTWF4RGF0ZSc7XG5pbXBvcnQgeyBpc0JlZm9yZU1pbkRhdGUgfSBmcm9tICcuL2lzQmVmb3JlTWluRGF0ZSc7XG5pbXBvcnQgeyBjb21wYXJlRGF0ZVBhcnQsIGFkZERheXMgfSBmcm9tICcuLi9kYXRlTWF0aC9kYXRlTWF0aCc7XG4vKipcbiAqIFJldHVybnMgY2xvc2VzdCBhdmFpbGFibGUgZGF0ZSBnaXZlbiB0aGUgcmVzdHJpY3Rpb24gYG9wdGlvbnNgLCBvciB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIGxpc3Qgb2Ygc2VhcmNoIG9wdGlvbnNcbiAqLyBleHBvcnQgY29uc3QgZmluZEF2YWlsYWJsZURhdGUgPSAob3B0aW9ucyk9PntcbiAgICBjb25zdCB7IHRhcmdldERhdGUsIGluaXRpYWxEYXRlLCBkaXJlY3Rpb24sIC4uLnJlc3RyaWN0ZWREYXRlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgICBsZXQgYXZhaWxhYmxlRGF0ZSA9IHRhcmdldERhdGU7XG4gICAgLy8gaWYgdGhlIHRhcmdldCBkYXRlIGlzIGF2YWlsYWJsZSwgcmV0dXJuIGl0IGltbWVkaWF0ZWx5XG4gICAgaWYgKCFpc1Jlc3RyaWN0ZWREYXRlKHRhcmdldERhdGUsIHJlc3RyaWN0ZWREYXRlT3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldERhdGU7XG4gICAgfVxuICAgIHdoaWxlKGNvbXBhcmVEYXRlUGFydChpbml0aWFsRGF0ZSwgYXZhaWxhYmxlRGF0ZSkgIT09IDAgJiYgaXNSZXN0cmljdGVkRGF0ZShhdmFpbGFibGVEYXRlLCByZXN0cmljdGVkRGF0ZU9wdGlvbnMpICYmICFpc0FmdGVyTWF4RGF0ZShhdmFpbGFibGVEYXRlLCByZXN0cmljdGVkRGF0ZU9wdGlvbnMpICYmICFpc0JlZm9yZU1pbkRhdGUoYXZhaWxhYmxlRGF0ZSwgcmVzdHJpY3RlZERhdGVPcHRpb25zKSl7XG4gICAgICAgIGF2YWlsYWJsZURhdGUgPSBhZGREYXlzKGF2YWlsYWJsZURhdGUsIGRpcmVjdGlvbik7XG4gICAgfVxuICAgIGlmIChjb21wYXJlRGF0ZVBhcnQoaW5pdGlhbERhdGUsIGF2YWlsYWJsZURhdGUpICE9PSAwICYmICFpc1Jlc3RyaWN0ZWREYXRlKGF2YWlsYWJsZURhdGUsIHJlc3RyaWN0ZWREYXRlT3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGF2YWlsYWJsZURhdGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIiwiaW1wb3J0IHsgY29tcGFyZURhdGVQYXJ0IH0gZnJvbSAnLi4vZGF0ZU1hdGgvZGF0ZU1hdGgnO1xuLyoqXG4gKiBHZW5lcmF0ZXMgYSBsaXN0IG9mIGRhdGVzLCBib3VuZGVkIGJ5IG1pbiBhbmQgbWF4IGRhdGVzXG4gKiBAcGFyYW0gZGF0ZVJhbmdlIC0gaW5wdXQgZGF0ZSByYW5nZVxuICogQHBhcmFtIG1pbkRhdGUgLSBtaW4gZGF0ZSB0byBsaW1pdCB0aGUgcmFuZ2VcbiAqIEBwYXJhbSBtYXhEYXRlIC0gbWF4IGRhdGUgdG8gbGltaXQgdGhlIHJhbmdlXG4gKi8gZXhwb3J0IGNvbnN0IGdldEJvdW5kZWREYXRlUmFuZ2UgPSAoZGF0ZVJhbmdlLCBtaW5EYXRlLCBtYXhEYXRlKT0+e1xuICAgIGxldCBib3VuZGVkRGF0ZVJhbmdlID0gW1xuICAgICAgICAuLi5kYXRlUmFuZ2VcbiAgICBdO1xuICAgIGlmIChtaW5EYXRlKSB7XG4gICAgICAgIGJvdW5kZWREYXRlUmFuZ2UgPSBib3VuZGVkRGF0ZVJhbmdlLmZpbHRlcigoZGF0ZSk9PmNvbXBhcmVEYXRlUGFydChkYXRlLCBtaW5EYXRlKSA+PSAwKTtcbiAgICB9XG4gICAgaWYgKG1heERhdGUpIHtcbiAgICAgICAgYm91bmRlZERhdGVSYW5nZSA9IGJvdW5kZWREYXRlUmFuZ2UuZmlsdGVyKChkYXRlKT0+Y29tcGFyZURhdGVQYXJ0KGRhdGUsIG1heERhdGUpIDw9IDApO1xuICAgIH1cbiAgICByZXR1cm4gYm91bmRlZERhdGVSYW5nZTtcbn07XG4iLCIvKipcbiAqIFJldHVybnMgd2hldGhlciBwcm92aWRlZCB3ZWVrIGRheXMgYXJlIGNvbnRpZ3VvdXMuXG4gKiBAcGFyYW0gZGF5cyAtIGxpc3Qgb2YgZGF5cyBpbiBhIHdlZWtcbiAqIEBwYXJhbSBpc1NpbmdsZVdlZWsgLSBkZWNpZGVzIHdoZXRoZXIgdGhlIGNvbnRpZ3VvdXMgbG9naWMgYXBwbGllcyBhY3Jvc3Mgd2VlayBib3VuZGFyaWVzIG9yIG5vdFxuICogQHBhcmFtIGZpcnN0RGF5T2ZXZWVrIC0gZGVjaWRlcyB3aGljaCBkYXkgb2Ygd2VlayBpcyB0aGUgZmlyc3Qgb25lIGluIHRoZSBvcmRlci5cbiAqLyBleHBvcnQgY29uc3QgaXNDb250aWd1b3VzID0gKGRheXMsIGlzU2luZ2xlV2VlaywgZmlyc3REYXlPZldlZWspPT57XG4gICAgY29uc3QgZGF5U2V0ID0gbmV3IFNldChkYXlzKTtcbiAgICBsZXQgYW1vdW50T2ZOb05laWdoYm9ycyA9IDA7XG4gICAgZm9yIChjb25zdCBkYXkgb2YgZGF5cyl7XG4gICAgICAgIGNvbnN0IG5leHREYXkgPSAoZGF5ICsgMSkgJSA3O1xuICAgICAgICBpZiAoIShkYXlTZXQuaGFzKG5leHREYXkpICYmICghaXNTaW5nbGVXZWVrIHx8IGZpcnN0RGF5T2ZXZWVrICE9PSBuZXh0RGF5KSkpIHtcbiAgICAgICAgICAgIGFtb3VudE9mTm9OZWlnaGJvcnMrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBJbiBjYXNlIHRoZSBmdWxsIHdlZWsgaXMgcHJvdmlkZWQsIHRoZW4gZWFjaCBkYXkgaGFzIGEgbmVpZ2hib3JcbiAgICAvLywgb3RoZXJ3aXNlIHRoZSBsYXN0IGRheSBkb2VzIG5vdCBoYXZlIGEgbmVpZ2hib3IuXG4gICAgcmV0dXJuIGFtb3VudE9mTm9OZWlnaGJvcnMgPCAyO1xufTtcbiIsImltcG9ydCB7IERhdGVSYW5nZVR5cGUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaXNDb250aWd1b3VzIH0gZnJvbSAnLi9pc0NvbnRpZ3VvdXMnO1xuLyoqXG4gKiBSZXR1cm4gY29ycmVjdGVkIGRhdGUgcmFuZ2UgdHlwZSwgZ2l2ZW4gYGRhdGVSYW5nZVR5cGVgIGFuZCBsaXN0IG9mIHdvcmtpbmcgZGF5cy5cbiAqIEZvciBub24tY29udGlndW91cyB3b3JraW5nIGRheXMgYW5kIHdvcmtpbmcgd2VlayByYW5nZSB0eXBlLCByZXR1cm5zIGdlbmVyYWwgd2VlayByYW5nZSB0eXBlLlxuICogRm9yIG90aGVyIGNhc2VzIHJldHVybnMgaW5wdXQgZGF0ZSByYW5nZSB0eXBlLlxuICogQHBhcmFtIGRhdGVSYW5nZVR5cGUgLSBpbnB1dCB0eXBlIG9mIHJhbmdlXG4gKiBAcGFyYW0gd29ya1dlZWtEYXlzIC0gbGlzdCBvZiB3b3JraW5nIGRheXMgaW4gYSB3ZWVrXG4gKi8gZXhwb3J0IGNvbnN0IGdldERhdGVSYW5nZVR5cGVUb1VzZSA9IChkYXRlUmFuZ2VUeXBlLCB3b3JrV2Vla0RheXMsIGZpcnN0RGF5T2ZXZWVrKT0+e1xuICAgIGlmICh3b3JrV2Vla0RheXMgJiYgZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5Xb3JrV2Vlaykge1xuICAgICAgICBpZiAoIWlzQ29udGlndW91cyh3b3JrV2Vla0RheXMsIHRydWUsIGZpcnN0RGF5T2ZXZWVrKSB8fCB3b3JrV2Vla0RheXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gRGF0ZVJhbmdlVHlwZS5XZWVrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRlUmFuZ2VUeXBlO1xufTtcbiIsImltcG9ydCB7IGFkZERheXMsIGNvbXBhcmVEYXRlcywgZ2V0RGF0ZVJhbmdlQXJyYXksIGlzSW5EYXRlUmFuZ2VBcnJheSB9IGZyb20gJy4uL2RhdGVNYXRoL2RhdGVNYXRoJztcbmltcG9ydCB7IERBWVNfSU5fV0VFSyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXREYXRlUmFuZ2VUeXBlVG9Vc2UgfSBmcm9tICcuL2dldERhdGVSYW5nZVR5cGVUb1VzZSc7XG5pbXBvcnQgeyBnZXRCb3VuZGVkRGF0ZVJhbmdlIH0gZnJvbSAnLi9nZXRCb3VuZGVkRGF0ZVJhbmdlJztcbmltcG9ydCB7IGlzUmVzdHJpY3RlZERhdGUgfSBmcm9tICcuL2lzUmVzdHJpY3RlZERhdGUnO1xuLyoqXG4gKiBHZW5lcmF0ZXMgYSBncmlkIG9mIGRheXMsIGdpdmVuIHRoZSBgb3B0aW9uc2AuXG4gKiBSZXR1cm5zIG9uZSBhZGRpdGlvbmFsIHdlZWsgYXQgdGhlIGJlZ2luaW5nIGZyb20gdGhlIHByZXZpb3VzIHJhbmdlXG4gKiBhbmQgb25lIGF0IHRoZSBlbmQgZnJvbSB0aGUgZnV0dXJlIHJhbmdlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIHBhcmFtZXRlcnMgdG8gc3BlY2lmeSBkYXRlIHJlbGF0ZWQgcmVzdHJpY3Rpb25zIGZvciB0aGUgcmVzdWx0aW5nIGdyaWRcbiAqLyBleHBvcnQgY29uc3QgZ2V0RGF5R3JpZCA9IChvcHRpb25zKT0+e1xuICAgIGNvbnN0IHsgc2VsZWN0ZWREYXRlLCBkYXRlUmFuZ2VUeXBlLCBmaXJzdERheU9mV2VlaywgdG9kYXksIG1pbkRhdGUsIG1heERhdGUsIHdlZWtzVG9TaG93LCB3b3JrV2Vla0RheXMsIGRheXNUb1NlbGVjdEluRGF5VmlldywgcmVzdHJpY3RlZERhdGVzLCBtYXJrZWREYXlzIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHJlc3RyaWN0ZWREYXRlT3B0aW9ucyA9IHtcbiAgICAgICAgbWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZSxcbiAgICAgICAgcmVzdHJpY3RlZERhdGVzXG4gICAgfTtcbiAgICBjb25zdCB0b2RheXNEYXRlID0gdG9kYXkgfHwgbmV3IERhdGUoKTtcbiAgICBjb25zdCBuYXZpZ2F0ZWREYXRlID0gb3B0aW9ucy5uYXZpZ2F0ZWREYXRlID8gb3B0aW9ucy5uYXZpZ2F0ZWREYXRlIDogdG9kYXlzRGF0ZTtcbiAgICBsZXQgZGF0ZTtcbiAgICBpZiAod2Vla3NUb1Nob3cgJiYgd2Vla3NUb1Nob3cgPD0gNCkge1xuICAgICAgICAvLyBpZiBzaG93aW5nIGxlc3MgdGhhbiBhIGZ1bGwgbW9udGgsIGp1c3QgdXNlIGRhdGUgPT0gbmF2aWdhdGVkRGF0ZVxuICAgICAgICBkYXRlID0gbmV3IERhdGUobmF2aWdhdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBuYXZpZ2F0ZWREYXRlLmdldE1vbnRoKCksIG5hdmlnYXRlZERhdGUuZ2V0RGF0ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlID0gbmV3IERhdGUobmF2aWdhdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCBuYXZpZ2F0ZWREYXRlLmdldE1vbnRoKCksIDEpO1xuICAgIH1cbiAgICBjb25zdCB3ZWVrcyA9IFtdO1xuICAgIC8vIEN5Y2xlIHRoZSBkYXRlIGJhY2t3YXJkcyB0byBnZXQgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICB3aGlsZShkYXRlLmdldERheSgpICE9PSBmaXJzdERheU9mV2Vlayl7XG4gICAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIDEpO1xuICAgIH1cbiAgICAvLyBhZGQgdGhlIHRyYW5zaXRpb24gd2VlayBhcyBsYXN0IHdlZWsgb2YgcHJldmlvdXMgcmFuZ2VcbiAgICBkYXRlID0gYWRkRGF5cyhkYXRlLCAtREFZU19JTl9XRUVLKTtcbiAgICAvLyBhIGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBhbGwgZGF5cyBvZiB0aGUgd2VlayBhcmUgb3V0c2lkZSB0aGUgbW9udGhcbiAgICBsZXQgaXNBbGxEYXlzT2ZXZWVrT3V0T2ZNb250aCA9IGZhbHNlO1xuICAgIC8vIGluIHdvcmsgd2VlayB2aWV3IGlmIHRoZSBkYXlzIGFyZW4ndCBjb250aWd1b3VzIHdlIHVzZSB3ZWVrIHZpZXcgaW5zdGVhZFxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZVJhbmdlVHlwZSA9IGdldERhdGVSYW5nZVR5cGVUb1VzZShkYXRlUmFuZ2VUeXBlLCB3b3JrV2Vla0RheXMsIGZpcnN0RGF5T2ZXZWVrKTtcbiAgICBsZXQgc2VsZWN0ZWREYXRlcyA9IFtdO1xuICAgIGlmIChzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgc2VsZWN0ZWREYXRlcyA9IGdldERhdGVSYW5nZUFycmF5KHNlbGVjdGVkRGF0ZSwgc2VsZWN0ZWREYXRlUmFuZ2VUeXBlLCBmaXJzdERheU9mV2Vlaywgd29ya1dlZWtEYXlzLCBkYXlzVG9TZWxlY3RJbkRheVZpZXcpO1xuICAgICAgICBzZWxlY3RlZERhdGVzID0gZ2V0Qm91bmRlZERhdGVSYW5nZShzZWxlY3RlZERhdGVzLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICB9XG4gICAgbGV0IHNob3VsZEdldFdlZWtzID0gdHJ1ZTtcbiAgICBmb3IobGV0IHdlZWtJbmRleCA9IDA7IHNob3VsZEdldFdlZWtzOyB3ZWVrSW5kZXgrKyl7XG4gICAgICAgIGNvbnN0IHdlZWsgPSBbXTtcbiAgICAgICAgaXNBbGxEYXlzT2ZXZWVrT3V0T2ZNb250aCA9IHRydWU7XG4gICAgICAgIGZvcihsZXQgZGF5SW5kZXggPSAwOyBkYXlJbmRleCA8IERBWVNfSU5fV0VFSzsgZGF5SW5kZXgrKyl7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbERhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gICAgICAgICAgICBjb25zdCBkYXlJbmZvID0ge1xuICAgICAgICAgICAgICAgIGtleTogZGF0ZS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIGRhdGU6IGRhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxEYXRlLFxuICAgICAgICAgICAgICAgIGlzSW5Nb250aDogZGF0ZS5nZXRNb250aCgpID09PSBuYXZpZ2F0ZWREYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgICAgICAgaXNUb2RheTogY29tcGFyZURhdGVzKHRvZGF5c0RhdGUsIGRhdGUpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGlzSW5EYXRlUmFuZ2VBcnJheShkYXRlLCBzZWxlY3RlZERhdGVzKSxcbiAgICAgICAgICAgICAgICBpc1NpbmdsZVNlbGVjdGVkOiBzZWxlY3RlZERhdGVzLmxlbmd0aCA9PT0gMSAmJiBjb21wYXJlRGF0ZXMoZGF0ZSwgc2VsZWN0ZWREYXRlKSxcbiAgICAgICAgICAgICAgICBpc0luQm91bmRzOiAhaXNSZXN0cmljdGVkRGF0ZShkYXRlLCByZXN0cmljdGVkRGF0ZU9wdGlvbnMpLFxuICAgICAgICAgICAgICAgIGlzTWFya2VkOiAobWFya2VkRGF5cyA9PT0gbnVsbCB8fCBtYXJrZWREYXlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtYXJrZWREYXlzLnNvbWUoKG1hcmtlZERheSk9PmNvbXBhcmVEYXRlcyhvcmlnaW5hbERhdGUsIG1hcmtlZERheSkpKSB8fCBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdlZWsucHVzaChkYXlJbmZvKTtcbiAgICAgICAgICAgIGlmIChkYXlJbmZvLmlzSW5Nb250aCkge1xuICAgICAgICAgICAgICAgIGlzQWxsRGF5c09mV2Vla091dE9mTW9udGggPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIGFwcGVuZCB0aGUgY29uZGl0aW9uIG9mIHRoZSBsb29wIGRlcGVuZGluZyB1cG9uIHRoZSBzaG93U2l4V2Vla3NCeURlZmF1bHQgcHJvcC5cbiAgICAgICAgc2hvdWxkR2V0V2Vla3MgPSB3ZWVrc1RvU2hvdyA/IHdlZWtJbmRleCA8IHdlZWtzVG9TaG93ICsgMSA6ICFpc0FsbERheXNPZldlZWtPdXRPZk1vbnRoIHx8IHdlZWtJbmRleCA9PT0gMDtcbiAgICAgICAgLy8gd2UgZG9uJ3QgY2hlY2sgc2hvdWxkR2V0V2Vla3MgYmVmb3JlIHB1c2hpbmcgYmVjYXVzZSB3ZSB3YW50IHRvIGFkZCBvbmUgZXh0cmEgd2VlayBmb3IgdHJhbnNpdGlvbiBzdGF0ZVxuICAgICAgICB3ZWVrcy5wdXNoKHdlZWspO1xuICAgIH1cbiAgICByZXR1cm4gd2Vla3M7XG59O1xuIiwibGV0IHRhcmdldFRvRm9jdXNPbk5leHRSZXBhaW50ID0gdW5kZWZpbmVkO1xuLyoqXG4gKiBTZXRzIGZvY3VzIHRvIGFuIGVsZW1lbnQgYXN5bmNocm9ub3VzbHkuIFRoZSBmb2N1cyB3aWxsIGJlIHNldCBhdCB0aGUgbmV4dCBicm93c2VyIHJlcGFpbnQsXG4gKiBtZWFuaW5nIGl0IHdvbid0IGNhdXNlIGFueSBleHRyYSByZWNhbGN1bGF0aW9ucy4gSWYgbW9yZSB0aGFuIG9uZSBmb2N1c0FzeW5jIGlzIGNhbGxlZCBkdXJpbmcgb25lIGZyYW1lLFxuICogb25seSB0aGUgbGF0ZXN0IGNhbGxlZCBmb2N1c0FzeW5jIGVsZW1lbnQgd2lsbCBhY3R1YWxseSBiZSBmb2N1c2VkXG4gKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIGZvY3VzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGZvY3VzQXN5bmMoZWxlbWVudCwgd2luKSB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgLy8gQW4gZWxlbWVudCB3YXMgYWxyZWFkeSBxdWV1ZWQgdG8gYmUgZm9jdXNlZCwgc28gcmVwbGFjZSB0aGF0IG9uZSB3aXRoIHRoZSBuZXcgZWxlbWVudFxuICAgICAgICBpZiAodGFyZ2V0VG9Gb2N1c09uTmV4dFJlcGFpbnQpIHtcbiAgICAgICAgICAgIHRhcmdldFRvRm9jdXNPbk5leHRSZXBhaW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRUb0ZvY3VzT25OZXh0UmVwYWludCA9IGVsZW1lbnQ7XG4gICAgICAgIGlmICh3aW4pIHtcbiAgICAgICAgICAgIC8vIGVsZW1lbnQuZm9jdXMoKSBpcyBhIG5vLW9wIGlmIHRoZSBlbGVtZW50IGlzIG5vIGxvbmdlciBpbiB0aGUgRE9NLCBtZWFuaW5nIHRoaXMgaXMgYWx3YXlzIHNhZmVcbiAgICAgICAgICAgIHdpbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntcbiAgICAgICAgICAgICAgICB0YXJnZXRUb0ZvY3VzT25OZXh0UmVwYWludCAmJiB0YXJnZXRUb0ZvY3VzT25OZXh0UmVwYWludC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBkb25lIGZvY3VzaW5nIGZvciB0aGlzIGZyYW1lLCBzbyByZXNldCB0aGUgcXVldWVkIGZvY3VzIGVsZW1lbnRcbiAgICAgICAgICAgICAgICB0YXJnZXRUb0ZvY3VzT25OZXh0UmVwYWludCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IHZhciBBbmltYXRpb25EaXJlY3Rpb247XG4oZnVuY3Rpb24oQW5pbWF0aW9uRGlyZWN0aW9uKSB7XG4gICAgLyoqXG4gICAqIEdyaWQgd2lsbCB0cmFuc2l0aW9uIG91dCBhbmQgaW4gaG9yaXpvbnRhbGx5XG4gICAqLyBBbmltYXRpb25EaXJlY3Rpb25bQW5pbWF0aW9uRGlyZWN0aW9uW1wiSG9yaXpvbnRhbFwiXSA9IDBdID0gXCJIb3Jpem9udGFsXCI7XG4gICAgLyoqXG4gICAqIEdyaWQgd2lsbCB0cmFuc2l0aW9uIG91dCBhbmQgaW4gdmVydGljYWxseVxuICAgKi8gQW5pbWF0aW9uRGlyZWN0aW9uW0FuaW1hdGlvbkRpcmVjdGlvbltcIlZlcnRpY2FsXCJdID0gMV0gPSBcIlZlcnRpY2FsXCI7XG59KShBbmltYXRpb25EaXJlY3Rpb24gfHwgKEFuaW1hdGlvbkRpcmVjdGlvbiA9IHt9KSk7XG4iLCJpbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IERhdGVSYW5nZVR5cGUgfSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RGF0ZVJhbmdlQXJyYXkgfSBmcm9tICcuLi8uLi91dGlscy9pbmRleCc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3Qgd2Vla0Nvcm5lcnNDbGFzc05hbWVzID0ge1xuICB0b3BSaWdodENvcm5lckRhdGU6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX190b3BSaWdodENvcm5lckRhdGUnLFxuICB0b3BMZWZ0Q29ybmVyRGF0ZTogJ2Z1aS1DYWxlbmRhckRheUdyaWRfX3RvcExlZnRDb3JuZXJEYXRlJyxcbiAgYm90dG9tUmlnaHRDb3JuZXJEYXRlOiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fYm90dG9tUmlnaHRDb3JuZXJEYXRlJyxcbiAgYm90dG9tTGVmdENvcm5lckRhdGU6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX19ib3R0b21MZWZ0Q29ybmVyRGF0ZSdcbn07XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlV2Vla0Nvcm5lclN0eWxlcyhwcm9wcykge1xuICBjb25zdCB7XG4gICAgZGlyXG4gIH0gPSB1c2VGbHVlbnRfdW5zdGFibGUoKTtcbiAgLyoqXG4gICpcbiAgKiBTZWN0aW9uIGZvciBzZXR0aW5nIHRoZSByb3VuZGVkIGNvcm5lciBzdHlsZXMgb24gaW5kaXZpZHVhbCBkYXkgY2VsbHMuIEluZGl2aWR1YWwgZGF5IGNlbGxzIG5lZWQgZGlmZmVyZW50XG4gICogY29ybmVycyB0byBiZSByb3VuZGVkIGRlcGVuZGluZyBvbiB3aGljaCBkYXRlIHJhbmdlIHR5cGUgYW5kIHdoZXJlIHRoZSBjZWxsIGlzIGxvY2F0ZWQgaW4gdGhlIGN1cnJlbnQgZ3JpZC5cbiAgKiBJZiB3ZSBqdXN0IHJvdW5kIGFsbCBvZiB0aGUgY29ybmVycywgdGhlcmUgaXNuJ3QgYSBnb29kIG92ZXJsYXAgYW5kIHdlIGdldCBnYXBzIGJldHdlZW4gY29udGlndW91cyBkYXkgYm94ZXNcbiAgKiBpbiBFZGdlIGJyb3dzZXIuXG4gICpcbiAgKi9cbiAgY29uc3QgZ2V0V2Vla0Nvcm5lclN0eWxlcyA9IGluaXRpYWxXZWVrcyA9PiB7XG4gICAgY29uc3Qgd2Vla0Nvcm5lcnNTdHlsZWQgPSB7fTtcbiAgICAvKiBuZWVkIHRvIGhhbmRsZSBzZXR0aW5nIGFsbCBvZiB0aGUgY29ybmVycyBvbiBhcmJpdHJhcmlseSBzaGFwZWQgYmxvYnNcbiAgICAgIF9fXG4gICAgX198QSB8XG4gICAgfEIgfEMgfF9fXG4gICAgfEQgfEUgfEYgfFxuICAgIGluIHRoaXMgY2FzZSwgQSBuZWVkcyB0b3AgbGVmdCByb3VuZGVkLCB0b3AgcmlnaHQgcm91bmRlZFxuICAgIEIgbmVlZHMgdG9wIGxlZnQgcm91bmRlZFxuICAgIEMgZG9lc24ndCBuZWVkIGFueSByb3VuZGluZ1xuICAgIEQgbmVlZHMgYm90dG9tIGxlZnQgcm91bmRlZFxuICAgIEUgZG9lc24ndCBuZWVkIGFueSByb3VuZGluZ1xuICAgIEYgbmVlZHMgdG9wIHJpZ2h0IHJvdW5kaW5nXG4gICAgKi8gLy8gY3V0IG9mZiB0aGUgYW5pbWF0aW9uIHRyYW5zaXRpb24gd2Vla3NcbiAgICBjb25zdCB3ZWVrcyA9IGluaXRpYWxXZWVrcy5zbGljZSgxLCBpbml0aWFsV2Vla3MubGVuZ3RoIC0gMSk7XG4gICAgLy8gaWYgdGhlcmUncyBhbiBpdGVtIGFib3ZlLCBsb3NlIGJvdGggdG9wIGNvcm5lcnMuIEl0ZW0gYmVsb3csIGxvc2UgYm90aCBib3R0b20gY29ybmVycywgZXRjLlxuICAgIHdlZWtzLmZvckVhY2goKHdlZWssIHdlZWtJbmRleCkgPT4ge1xuICAgICAgd2Vlay5mb3JFYWNoKChkYXksIGRheUluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGFib3ZlID0gd2Vla3Nbd2Vla0luZGV4IC0gMV0gJiYgd2Vla3Nbd2Vla0luZGV4IC0gMV1bZGF5SW5kZXhdICYmIGlzSW5TYW1lSG92ZXJSYW5nZSh3ZWVrc1t3ZWVrSW5kZXggLSAxXVtkYXlJbmRleF0ub3JpZ2luYWxEYXRlLCBkYXkub3JpZ2luYWxEYXRlLCB3ZWVrc1t3ZWVrSW5kZXggLSAxXVtkYXlJbmRleF0uaXNTZWxlY3RlZCwgZGF5LmlzU2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCBiZWxvdyA9IHdlZWtzW3dlZWtJbmRleCArIDFdICYmIHdlZWtzW3dlZWtJbmRleCArIDFdW2RheUluZGV4XSAmJiBpc0luU2FtZUhvdmVyUmFuZ2Uod2Vla3Nbd2Vla0luZGV4ICsgMV1bZGF5SW5kZXhdLm9yaWdpbmFsRGF0ZSwgZGF5Lm9yaWdpbmFsRGF0ZSwgd2Vla3Nbd2Vla0luZGV4ICsgMV1bZGF5SW5kZXhdLmlzU2VsZWN0ZWQsIGRheS5pc1NlbGVjdGVkKTtcbiAgICAgICAgY29uc3QgbGVmdCA9IHdlZWtzW3dlZWtJbmRleF1bZGF5SW5kZXggLSAxXSAmJiBpc0luU2FtZUhvdmVyUmFuZ2Uod2Vla3Nbd2Vla0luZGV4XVtkYXlJbmRleCAtIDFdLm9yaWdpbmFsRGF0ZSwgZGF5Lm9yaWdpbmFsRGF0ZSwgd2Vla3Nbd2Vla0luZGV4XVtkYXlJbmRleCAtIDFdLmlzU2VsZWN0ZWQsIGRheS5pc1NlbGVjdGVkKTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSB3ZWVrc1t3ZWVrSW5kZXhdW2RheUluZGV4ICsgMV0gJiYgaXNJblNhbWVIb3ZlclJhbmdlKHdlZWtzW3dlZWtJbmRleF1bZGF5SW5kZXggKyAxXS5vcmlnaW5hbERhdGUsIGRheS5vcmlnaW5hbERhdGUsIHdlZWtzW3dlZWtJbmRleF1bZGF5SW5kZXggKyAxXS5pc1NlbGVjdGVkLCBkYXkuaXNTZWxlY3RlZCk7XG4gICAgICAgIHdlZWtDb3JuZXJzU3R5bGVkW3dlZWtJbmRleCArICdfJyArIGRheUluZGV4XSA9IGNhbGN1bGF0ZVJvdW5kZWRTdHlsZXMoYWJvdmUsIGJlbG93LCBsZWZ0LCByaWdodCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gd2Vla0Nvcm5lcnNTdHlsZWQ7XG4gIH07XG4gIGNvbnN0IGNhbGN1bGF0ZVJvdW5kZWRTdHlsZXMgPSAoYWJvdmUsIGJlbG93LCBsZWZ0LCByaWdodCkgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gW107XG4gICAgY29uc3Qgcm91bmRlZFRvcExlZnQgPSAhYWJvdmUgJiYgIWxlZnQ7XG4gICAgY29uc3Qgcm91bmRlZFRvcFJpZ2h0ID0gIWFib3ZlICYmICFyaWdodDtcbiAgICBjb25zdCByb3VuZGVkQm90dG9tTGVmdCA9ICFiZWxvdyAmJiAhbGVmdDtcbiAgICBjb25zdCByb3VuZGVkQm90dG9tUmlnaHQgPSAhYmVsb3cgJiYgIXJpZ2h0O1xuICAgIGlmIChyb3VuZGVkVG9wTGVmdCkge1xuICAgICAgc3R5bGUucHVzaChkaXIgPT09ICdydGwnID8gd2Vla0Nvcm5lcnNDbGFzc05hbWVzLnRvcFJpZ2h0Q29ybmVyRGF0ZSA6IHdlZWtDb3JuZXJzQ2xhc3NOYW1lcy50b3BMZWZ0Q29ybmVyRGF0ZSk7XG4gICAgfVxuICAgIGlmIChyb3VuZGVkVG9wUmlnaHQpIHtcbiAgICAgIHN0eWxlLnB1c2goZGlyID09PSAncnRsJyA/IHdlZWtDb3JuZXJzQ2xhc3NOYW1lcy50b3BMZWZ0Q29ybmVyRGF0ZSA6IHdlZWtDb3JuZXJzQ2xhc3NOYW1lcy50b3BSaWdodENvcm5lckRhdGUpO1xuICAgIH1cbiAgICBpZiAocm91bmRlZEJvdHRvbUxlZnQpIHtcbiAgICAgIHN0eWxlLnB1c2goZGlyID09PSAncnRsJyA/IHdlZWtDb3JuZXJzQ2xhc3NOYW1lcy5ib3R0b21SaWdodENvcm5lckRhdGUgOiB3ZWVrQ29ybmVyc0NsYXNzTmFtZXMuYm90dG9tTGVmdENvcm5lckRhdGUpO1xuICAgIH1cbiAgICBpZiAocm91bmRlZEJvdHRvbVJpZ2h0KSB7XG4gICAgICBzdHlsZS5wdXNoKGRpciA9PT0gJ3J0bCcgPyB3ZWVrQ29ybmVyc0NsYXNzTmFtZXMuYm90dG9tTGVmdENvcm5lckRhdGUgOiB3ZWVrQ29ybmVyc0NsYXNzTmFtZXMuYm90dG9tUmlnaHRDb3JuZXJEYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlQ2xhc3NlcyguLi5zdHlsZSk7XG4gIH07XG4gIGNvbnN0IGlzSW5TYW1lSG92ZXJSYW5nZSA9IChkYXRlMSwgZGF0ZTIsIGRhdGUxU2VsZWN0ZWQsIGRhdGUyU2VsZWN0ZWQpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBkYXRlUmFuZ2VUeXBlLFxuICAgICAgZmlyc3REYXlPZldlZWssXG4gICAgICB3b3JrV2Vla0RheXNcbiAgICB9ID0gcHJvcHM7XG4gICAgLy8gVGhlIGhvdmVyIHN0YXRlIGxvb2tzIHdlaXJkIHdpdGggbm9uLWNvbnRpZ3VvdXMgZGF5cyBpbiB3b3JrIHdlZWsgdmlldy4gSW4gd29yayB3ZWVrLCBzaG93IHdlZWsgaG92ZXIgc3RhdGVcbiAgICBjb25zdCBkYXRlUmFuZ2VIb3ZlclR5cGUgPSBkYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLldvcmtXZWVrID8gRGF0ZVJhbmdlVHlwZS5XZWVrIDogZGF0ZVJhbmdlVHlwZTtcbiAgICAvLyB3ZSBkbyBub3QgcGFzcyBkYXlzVG9TZWxlY3RJbkRheVZpZXcgYmVjYXVzZSB3ZSBoYW5kbGUgc2V0dGluZyB0aG9zZSBzdHlsZXMgZHlhbmFtaWNhbGx5IGluIG9uTW91c2VPdmVyXG4gICAgY29uc3QgZGF0ZVJhbmdlID0gZ2V0RGF0ZVJhbmdlQXJyYXkoZGF0ZTEsIGRhdGVSYW5nZUhvdmVyVHlwZSwgZmlyc3REYXlPZldlZWssIHdvcmtXZWVrRGF5cyk7XG4gICAgaWYgKGRhdGUxU2VsZWN0ZWQgIT09IGRhdGUyU2VsZWN0ZWQpIHtcbiAgICAgIC8vIGlmIG9uZSBpcyBzZWxlY3RlZCBhbmQgdGhlIG90aGVyIGlzIG5vdCwgdGhleSBjYW4ndCBiZSBpbiB0aGUgc2FtZSByYW5nZVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZGF0ZTFTZWxlY3RlZCAmJiBkYXRlMlNlbGVjdGVkKSB7XG4gICAgICAvLyBpZiB0aGV5J3JlIGJvdGggc2VsZWN0ZWQgYXQgdGhlIHNhbWUgdGltZSB0aGV5IG11c3QgYmUgaW4gdGhlIHNhbWUgcmFuZ2VcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBvdGhlcndpc2UsIGJvdGggbXVzdCBiZSB1bnNlbGVjdGVkLCBzbyBjaGVjayB0aGUgZGF0ZVJhbmdlXG4gICAgcmV0dXJuIGRhdGVSYW5nZS5maWx0ZXIoZGF0ZSA9PiBkYXRlLmdldFRpbWUoKSA9PT0gZGF0ZTIuZ2V0VGltZSgpKS5sZW5ndGggPiAwO1xuICB9O1xuICByZXR1cm4gW2dldFdlZWtDb3JuZXJTdHlsZXMsIGNhbGN1bGF0ZVJvdW5kZWRTdHlsZXNdO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlV2Vla0Nvcm5lclN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRoZW1lJztcbmltcG9ydCB7IF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMsIHNob3J0aGFuZHMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyBEVVJBVElPTl8yLCBEVVJBVElPTl8zLCBFQVNJTkdfRlVOQ1RJT05fMSwgRUFTSU5HX0ZVTkNUSU9OXzIsIEZBREVfSU4sIEZBREVfT1VULCBTTElERV9ET1dOX0lOMjAsIFNMSURFX0RPV05fT1VUMjAsIFNMSURFX0xFRlRfSU4yMCwgU0xJREVfUklHSFRfSU4yMCwgU0xJREVfVVBfSU4yMCwgU0xJREVfVVBfT1VUMjAsIFRSQU5TSVRJT05fUk9XX0RJU0FQUEVBUkFOQ0UgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3Rpb24gfSBmcm9tICcuLi9DYWxlbmRhci9DYWxlbmRhci50eXBlcyc7XG5pbXBvcnQgeyB3ZWVrQ29ybmVyc0NsYXNzTmFtZXMgfSBmcm9tICcuL3VzZVdlZWtDb3JuZXJTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IGNyZWF0ZUZvY3VzT3V0bGluZVN0eWxlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMgPSB7XG4gIHdyYXBwZXI6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX193cmFwcGVyJyxcbiAgdGFibGU6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX190YWJsZScsXG4gIGRheUNlbGw6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlDZWxsJyxcbiAgZGF5U2VsZWN0ZWQ6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlTZWxlY3RlZCcsXG4gIGRheVNpbmdsZVNlbGVjdGVkOiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5U2luZ2xlU2VsZWN0ZWQnLFxuICB3ZWVrUm93OiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fd2Vla1JvdycsXG4gIHdlZWtEYXlMYWJlbENlbGw6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX193ZWVrRGF5TGFiZWxDZWxsJyxcbiAgd2Vla051bWJlckNlbGw6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX193ZWVrTnVtYmVyQ2VsbCcsXG4gIGRheU91dHNpZGVCb3VuZHM6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlPdXRzaWRlQm91bmRzJyxcbiAgZGF5T3V0c2lkZU5hdmlnYXRlZE1vbnRoOiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5T3V0c2lkZU5hdmlnYXRlZE1vbnRoJyxcbiAgZGF5QnV0dG9uOiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9uJyxcbiAgZGF5SXNUb2RheTogJ2Z1aS1DYWxlbmRhckRheUdyaWRfX2RheUlzVG9kYXknLFxuICBmaXJzdFRyYW5zaXRpb25XZWVrOiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fZmlyc3RUcmFuc2l0aW9uV2VlaycsXG4gIGxhc3RUcmFuc2l0aW9uV2VlazogJ2Z1aS1DYWxlbmRhckRheUdyaWRfX2xhc3RUcmFuc2l0aW9uV2VlaycsXG4gIGRheU1hcmtlcjogJ2Z1aS1DYWxlbmRhckRheUdyaWRfX2RheU1hcmtlcicsXG4gIGRheVRvZGF5TWFya2VyOiAnZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5VG9kYXlNYXJrZXInXG59O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGV4dHJhQ2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcyA9IHtcbiAgaG92ZXJTdHlsZTogJ2Z1aS1DYWxlbmRhckRheUdyaWRfX2hvdmVyU3R5bGUnLFxuICBwcmVzc2VkU3R5bGU6ICdmdWktQ2FsZW5kYXJEYXlHcmlkX19wcmVzc2VkU3R5bGUnXG59O1xuY29uc3QgdXNlV3JhcHBlclN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCeW9qOHR2OiBcImYxZm93NW94XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFmb3c1b3h7cGFkZGluZy1ib3R0b206MTBweDt9XCJdXG59KTtcbmNvbnN0IHVzZVRhYmxlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIHBvNTNwODogXCJmZ2tiNDdqXCIsXG4gICAgQnhqZzN6cjogXCJmMTZ2a3RuNlwiLFxuICAgIEJlMnR3ZDc6IFwiZmpveTU2OFwiLFxuICAgIEI2b2YzamE6IFwiZnZqaDB0bFwiLFxuICAgIEJ5b2o4dHY6IFwiZjFmb3c1b3hcIixcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBCNzNtZmEzOiBcImYxNG0zbmlwXCIsXG4gICAgZnNvdzZmOiBcImYxN21jY2xhXCIsXG4gICAgYTliNjc3OiBcImY0bTJhaGNcIlxuICB9LFxuICBzaG93V2Vla051bWJlcnM6IHtcbiAgICBhOWI2Nzc6IFwiZmw1MjRxa1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZna2I0N2p7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO31cIiwgXCIuZjE2dmt0bjZ7Ym9yZGVyLXNwYWNpbmc6MDt9XCIsIFwiLmZqb3k1Njh7Zm9udC1zaXplOmluaGVyaXQ7fVwiLCBcIi5mdmpoMHRse21hcmdpbi10b3A6NHB4O31cIiwgXCIuZjFmb3c1b3h7cGFkZGluZy1ib3R0b206MTBweDt9XCIsIFwiLmYxMHBpMTNue3Bvc2l0aW9uOnJlbGF0aXZlO31cIiwgXCIuZjE0bTNuaXB7dGFibGUtbGF5b3V0OmZpeGVkO31cIiwgXCIuZjE3bWNjbGF7dGV4dC1hbGlnbjpjZW50ZXI7fVwiLCBcIi5mNG0yYWhje3dpZHRoOjE5NnB4O31cIiwgXCIuZmw1MjRxa3t3aWR0aDoyMjZweDt9XCJdXG59KTtcbmNvbnN0IHVzZURheUNlbGxTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgc2o1NXpkOiBcImYxOW4wZTVcIixcbiAgICBCY2VlaTljOiBcImYxazZmZHVoXCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQmhyZDd6cDogXCJmaWdzb2s2XCIsXG4gICAganJhcGt5OiAwLFxuICAgIEZyZzZmMzogMCxcbiAgICB0MjFjcTA6IDAsXG4gICAgQjZvZjNqYTogMCxcbiAgICBCNzRzemxrOiBcImYxczE4NGFvXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImZxdGtuejVcIixcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBCc3c2ZnZnOiBcImY4cHVzYzBcIixcbiAgICBCYnVzdXpwOiBcImZxZ2F1ZWlcIixcbiAgICBjdmx4bng6IFwiZnA2ZHNiZFwiLFxuICAgIEJ3ZXVkZXo6IFwiZjR4Z29kcVwiLFxuICAgIEJzbmV2aTU6IDAsXG4gICAgejFwOXZpOiAwLFxuICAgIGR1YTNkbTogMCxcbiAgICBCZjdlbDhtOiBcImYxa284bzJnXCIsXG4gICAgeG5iNTlvOiBcImZ0czVxcW9cIixcbiAgICBCMG1jZmVkOiBcImZxMndkcDVcIixcbiAgICBCajY3ZmkxOiBcImYxbGhnc3E5XCIsXG4gICAgQjJnZmdjajogXCJmZGJ1cTZuXCIsXG4gICAgQjZjcXFlcjogXCJmMTZqMnViM1wiLFxuICAgIGZwdXJmeTogXCJmNWhrNmpwXCIsXG4gICAgRmlvajR3OiBbXCJmMWQyNThlc1wiLCBcImYxbGxrNGFqXCJdLFxuICAgIEJxOXlpdTQ6IFwiZnRlemd3YVwiLFxuICAgIGNwYm8yeDogW1wiZjFsbGs0YWpcIiwgXCJmMWQyNThlc1wiXSxcbiAgICBCcTI2OHo2OiBcImYxaW9oZnBtXCJcbiAgfSxcbiAgZm9jdXNJbmRpY2F0b3I6IHtcbiAgICBCcm92bHB1OiBcImZ0cWE0b2tcIixcbiAgICBCNDg2ZXF2OiBcImYyaGt3MXdcIixcbiAgICBCOHE1czF3OiBcImY4aGtpM3hcIixcbiAgICBCY2k1bzVnOiBbXCJmMWQyNDQ4bVwiLCBcImZmaDY3d2lcIl0sXG4gICAgbjhxdzEwOiBcImYxYmppYTJvXCIsXG4gICAgQmRyZ3dtcDogW1wiZmZoNjd3aVwiLCBcImYxZDI0NDhtXCJdLFxuICAgIEJiN2Qxdms6IFwiZjIyNmk2MVwiLFxuICAgIHpod2hnYjogW1wiZjEza3p1Zm1cIiwgXCJmc3g3NWc4XCJdLFxuICAgIGRoeTJvMTogXCJmbHVqd2EyXCIsXG4gICAgR2Z5c286IFtcImZzeDc1ZzhcIiwgXCJmMTNrenVmbVwiXSxcbiAgICBCbTRoN2FlOiBcImYxNWJzZ3c5XCIsXG4gICAgQjd5czVpOTogXCJmMTRlNDhmcVwiLFxuICAgIEJ1c2pmdjk6IFwiZjE4eWIya3ZcIixcbiAgICBCaGszMnV6OiBcImZkNm8zNzBcIixcbiAgICBmNmc1b3Q6IDAsXG4gICAgQm94Y3RoNzogMCxcbiAgICBCaGRnd3EzOiAwLFxuICAgIGhnd2p1eTogMCxcbiAgICBCc2hwZHA4OiAwLFxuICAgIEJzb202ZmQ6IDAsXG4gICAgQmxraGhzNDogMCxcbiAgICBCb25nZ2M5OiAwLFxuICAgIERkZnV4azogMCxcbiAgICBpMDNyYW86IDAsXG4gICAga2Nsb25zOiAwLFxuICAgIGNsZzRwajogMCxcbiAgICBCcHFqOW5qOiAwLFxuICAgIEI2ZGhwMzc6IDAsXG4gICAgQmY0cHRqdDogMCxcbiAgICBCcXRwbDB3OiAwLFxuICAgIGk0cndnYzogXCJmcHFpenh6XCIsXG4gICAgRGFoNXppOiAwLFxuICAgIEIxdHNycjk6IDAsXG4gICAgcXFkcXk4OiAwLFxuICAgIEJraDY0cms6IDAsXG4gICAgZTNmd25lOiBcImYzem52eWZcIixcbiAgICBKMHI4ODI6IFwiZnFrcWdia1wiLFxuICAgIEJ1bGU4aHY6IFtcImYxYXMwNGtkXCIsIFwiZnQzMG96dlwiXSxcbiAgICBCand1aG5lOiBcImY4cHh2YjJcIixcbiAgICBHaHN1cGQ6IFtcImZ0MzBvenZcIiwgXCJmMWFzMDRrZFwiXVxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmYxazZmZHVoe2N1cnNvcjpwb2ludGVyO31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZpZ3NvazZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO31cIiwgW1wiLmYxczE4NGFve21hcmdpbjowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZnF0a256NXtwYWRkaW5nOjJweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBcIi5mcDZkc2JkLmZ1aS1DYWxlbmRhckRheUdyaWRfX2hvdmVyU3R5bGV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFTdGF0aWMpO31cIiwgXCIuZjR4Z29kcS5mdWktQ2FsZW5kYXJEYXlHcmlkX19ob3ZlclN0eWxle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZEhvdmVyKTt9XCIsIFwiLmYxbGhnc3E5LmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVN0YXRpYyk7fVwiLCBcIi5mZGJ1cTZuLmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKTt9XCIsIFwiLmY4aGtpM3hbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmYxZDI0NDhtW2RhdGEtZnVpLWZvY3VzLXZpc2libGVde2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDt9XCIsIFwiLmZmaDY3d2lbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV17Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiLCBcIi5mMWJqaWEyb1tkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXXtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O31cIiwgXCIuZjE1YnNndzlbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2NvbnRlbnQ6XFxcIlxcXCI7fVwiLCBcIi5mMTRlNDhmcVtkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7fVwiLCBcIi5mMTh5YjJrdltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt9XCIsIFwiLmZkNm8zNzBbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye3otaW5kZXg6MTt9XCIsIFtcIi5mcHFpenh6W2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXI6dmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgc29saWQgdmFyKC0tY29sb3JTdHJva2VGb2N1czIpO31cIiwge1xuICAgIHA6IC0yXG4gIH1dLCBbXCIuZjN6bnZ5ZltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mcWtxZ2JrW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcnt0b3A6Y2FsYyh2YXIoLS1zdHJva2VXaWR0aFRoaWNrKSAqIC0xKTt9XCIsIFwiLmYxYXMwNGtkW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntyaWdodDpjYWxjKHZhcigtLXN0cm9rZVdpZHRoVGhpY2spICogLTEpO31cIiwgXCIuZnQzMG96dltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7bGVmdDpjYWxjKHZhcigtLXN0cm9rZVdpZHRoVGhpY2spICogLTEpO31cIiwgXCIuZjhweHZiMltkYXRhLWZ1aS1mb2N1cy12aXNpYmxlXTo6YWZ0ZXJ7Ym90dG9tOmNhbGModmFyKC0tc3Ryb2tlV2lkdGhUaGljaykgKiAtMSk7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjhwdXNjMHtiYWNrZ3JvdW5kLWNvbG9yOldpbmRvdzt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZxZ2F1ZWl7Y29sb3I6V2luZG93VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxa284bzJnLmZ1aS1DYWxlbmRhckRheUdyaWRfX2hvdmVyU3R5bGV7b3V0bGluZToxcHggc29saWQgSGlnaGxpZ2h0O319XCIsIHtcbiAgICBwOiAtMSxcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZnRzNXFxby5mdWktQ2FsZW5kYXJEYXlHcmlkX19ob3ZlclN0eWxle3otaW5kZXg6Mzt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZxMndkcDUuZnVpLUNhbGVuZGFyRGF5R3JpZF9faG92ZXJTdHlsZSAuZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5VG9kYXlNYXJrZXJ7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMTZqMnViMy5mdWktQ2FsZW5kYXJEYXlHcmlkX19wcmVzc2VkU3R5bGV7YmFja2dyb3VuZC1jb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mNWhrNmpwLmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtib3JkZXItdG9wLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxZDI1OGVzLmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0O30uZjFsbGs0YWouZnVpLUNhbGVuZGFyRGF5R3JpZF9fcHJlc3NlZFN0eWxle2JvcmRlci1sZWZ0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ0ZXpnd2EuZnVpLUNhbGVuZGFyRGF5R3JpZF9fcHJlc3NlZFN0eWxle2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFpb2hmcG0uZnVpLUNhbGVuZGFyRGF5R3JpZF9fcHJlc3NlZFN0eWxle2NvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYyMjZpNjFbZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2JvcmRlci10b3AtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjEza3p1Zm1bZGF0YS1mdWktZm9jdXMtdmlzaWJsZV06OmFmdGVye2JvcmRlci1yaWdodC1jb2xvcjpIaWdobGlnaHQ7fS5mc3g3NWc4W2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mbHVqd2EyW2RhdGEtZnVpLWZvY3VzLXZpc2libGVdOjphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXSxcbiAgZjogW1wiLmZ0cWE0b2s6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO31cIl0sXG4gIGk6IFtcIi5mMmhrdzF3OmZvY3VzLXZpc2libGV7b3V0bGluZS1zdHlsZTpub25lO31cIl1cbn0pO1xuY29uc3QgdXNlRGF5U2VsZWN0ZWRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgRGUzcHpxOiBcImYxdmV2ZDU5XCIsXG4gICAgc2o1NXpkOiBcImZmNXZib3BcIixcbiAgICBCc3c2ZnZnOiBcImYxcmlybnJ0XCIsXG4gICAgQmp3YXMyZjogXCJmMTMyZmJnMVwiLFxuICAgIEJuMWQ2NXE6IFtcImYxZW5lNXgwXCIsIFwiZnpiYzk5OVwiXSxcbiAgICBCeGV1YXRuOiBcImY2amdjb2xcIixcbiAgICBuNTFncDg6IFtcImZ6YmM5OTlcIiwgXCJmMWVuZTV4MFwiXSxcbiAgICBCYnVzdXpwOiBcImYxbGtnOGozXCIsXG4gICAgeWNiZnNtOiBcImZrYzQyYXlcIixcbiAgICBhM25xNGY6IFwiZjFjaGRmcTlcIixcbiAgICBCbmYzYWxwOiBcImZxMGRidWVcIixcbiAgICBIMmMzc2Q6IFwiZjNwZTB2N1wiLFxuICAgIHF1OGxkOiBcImYzdDB1dTJcIixcbiAgICBFOXp2M286IFwiZnQ0Z29vOFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxdmV2ZDU5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZFNlbGVjdGVkKTt9XCIsIFwiLmZmNXZib3B7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFTdGF0aWMpO31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxcmlybnJ0e2JhY2tncm91bmQtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjEzMmZiZzF7Ym9yZGVyLXRvcC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWVuZTV4MHtib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0O30uZnpiYzk5OXtib3JkZXItbGVmdC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mNmpnY29se2JvcmRlci1ib3R0b20tY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFsa2c4ajN7Y29sb3I6SGlnaGxpZ2h0VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZrYzQyYXl7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjNwZTB2Nzpob3ZlciwuZjNwZTB2Ny5mdWktQ2FsZW5kYXJEYXlHcmlkX19ob3ZlclN0eWxlLC5mM3BlMHY3LmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtiYWNrZ3JvdW5kLWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYzdDB1dTI6aG92ZXIsLmYzdDB1dTIuZnVpLUNhbGVuZGFyRGF5R3JpZF9faG92ZXJTdHlsZSwuZjN0MHV1Mi5mdWktQ2FsZW5kYXJEYXlHcmlkX19wcmVzc2VkU3R5bGV7Y29sb3I6SGlnaGxpZ2h0VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ0NGdvbzg+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheU1hcmtlcntiYWNrZ3JvdW5kLWNvbG9yOldpbmRvdzt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXSxcbiAgaDogW1wiLmYxY2hkZnE5OmhvdmVyLC5mMWNoZGZxOS5mdWktQ2FsZW5kYXJEYXlHcmlkX19ob3ZlclN0eWxlLC5mMWNoZGZxOS5mdWktQ2FsZW5kYXJEYXlHcmlkX19wcmVzc2VkU3R5bGV7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFTdGF0aWMpO31cIiwgXCIuZnEwZGJ1ZTpob3ZlciwuZnEwZGJ1ZS5mdWktQ2FsZW5kYXJEYXlHcmlkX19ob3ZlclN0eWxlLC5mcTBkYnVlLmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRTZWxlY3RlZCk7fVwiXVxufSk7XG5jb25zdCB1c2VEYXlTaW5nbGVTZWxlY3RlZFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBzajU1emQ6IFwiZmY1dmJvcFwiLFxuICAgIEU5enYzbzogXCJmdDRnb284XCIsXG4gICAgQjJuczNqdjogXCJmeTM1ZnJiXCIsXG4gICAgQnd4ZjR6djogMCxcbiAgICBCcDhjYXU4OiAwLFxuICAgIEJ1eTE2MWs6IDAsXG4gICAgQnB6cWg1ZTogMCxcbiAgICBGaDZ5cTU6IFwiZjhrbmEyMlwiLFxuICAgIEI3NXBwaGs6IFwiZjNlZjVwcFwiLFxuICAgIENtZWV4azogW1wiZjFsbW5tMGNcIiwgXCJmMW5yZWo0MVwiXSxcbiAgICB5ZW4ycHY6IFwiZjFwdDNiMXFcIixcbiAgICB5ZGM1d2U6IFtcImYxbnJlajQxXCIsIFwiZjFsbW5tMGNcIl0sXG4gICAgQnowNnBzeDogXCJmY3lkaWh2XCIsXG4gICAgQnZxbDdyNTogW1wiZmdiMnkxYlwiLCBcImZ6Ym9kZTZcIl0sXG4gICAgazI0amw0OiBcImZvZnE4ZzFcIixcbiAgICBCa3NtYzBnOiBbXCJmemJvZGU2XCIsIFwiZmdiMnkxYlwiXSxcbiAgICBCdXh1d3pjOiBcImYzNnViNG1cIixcbiAgICB4bjg0MGc6IFtcImYxOWFjemhqXCIsIFwiZmZoYzVlYVwiXSxcbiAgICBKaDltMHU6IFwiZmxmcTlndlwiLFxuICAgIEZta2c0bjogW1wiZmZoYzVlYVwiLCBcImYxOWFjemhqXCJdLFxuICAgIGttdGd3dTogXCJmdjM4YTRrXCIsXG4gICAgZzZtMTBhOiBcImYxd2lsNTk2XCIsXG4gICAgQmlyZGp6czogW1wiZjE5NDFwM2lcIiwgXCJmc2ZvcG9uXCJdLFxuICAgIHlvam85djogXCJmMTR0YjRlM1wiLFxuICAgIHFkZXV0dTogW1wiZnNmb3BvblwiLCBcImYxOTQxcDNpXCJdLFxuICAgIHlmcDg3YzogXCJmMTYxaHkwblwiLFxuICAgIHp1c2tsZDogXCJmYnAyYnh6XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZmY1dmJvcHtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMVN0YXRpYyk7fVwiLCBcIi5meTM1ZnJiPi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlCdXR0b257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkU2VsZWN0ZWQpO31cIiwgW1wiLmY4a25hMjI+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYzZWY1cHA+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItdG9wLXdpZHRoOjFweDt9XCIsIFwiLmYxbG1ubTBjPi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlCdXR0b257Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDt9XCIsIFwiLmYxbnJlajQxPi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlCdXR0b257Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O31cIiwgXCIuZjFwdDNiMXE+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItYm90dG9tLXdpZHRoOjFweDt9XCIsIFwiLmZjeWRpaHY+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItdG9wLXN0eWxlOnNvbGlkO31cIiwgXCIuZmdiMnkxYj4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9ue2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDt9XCIsIFwiLmZ6Ym9kZTY+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItbGVmdC1zdHlsZTpzb2xpZDt9XCIsIFwiLmZvZnE4ZzE+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO31cIiwgXCIuZjM2dWI0bT4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9ue2JvcmRlci10b3AtY29sb3I6dmFyKC0tY29sb3JCcmFuZFN0cm9rZTEpO31cIiwgXCIuZjE5YWN6aGo+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3JCcmFuZFN0cm9rZTEpO31cIiwgXCIuZmZoYzVlYT4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9ue2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yQnJhbmRTdHJva2UxKTt9XCIsIFwiLmZsZnE5Z3Y+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRTdHJva2UxKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mdDRnb284Pi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlNYXJrZXJ7YmFja2dyb3VuZC1jb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mdjM4YTRrPi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlCdXR0b257YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMXdpbDU5Nj4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9ue2JvcmRlci10b3AtY29sb3I6SGlnaGxpZ2h0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjE5NDFwM2k+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheUJ1dHRvbntib3JkZXItcmlnaHQtY29sb3I6SGlnaGxpZ2h0O30uZnNmb3Bvbj4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9ue2JvcmRlci1sZWZ0LWNvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxNHRiNGUzPi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlCdXR0b257Ym9yZGVyLWJvdHRvbS1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMTYxaHkwbj4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fZGF5QnV0dG9ue2NvbG9yOkhpZ2hsaWdodFRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mYnAyYnh6Pi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlCdXR0b257Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dXG59KTtcbmNvbnN0IHVzZVdlZWtSb3dTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgcWhmOHhxOiBcImYxMHBpMTNuXCIsXG4gICAgbWx5ZjljOiBcImYxZ2F6d3l0XCJcbiAgfSxcbiAgYW5pbWF0aW9uOiB7XG4gICAgdmluMTdkOiBcImY1ZjJqYnVcIixcbiAgICBCZjVmY3M6IFwiZnl3eXB0ZVwiLFxuICAgIEV6a24zYjogXCJmMWVlMnVlXCJcbiAgfSxcbiAgaG9yaXpvbnRhbEJhY2t3YXJkOiB7XG4gICAgQnYxMnliMzogW1wiZjFvOXczbDhcIiwgXCJmMWt3amFqY1wiXVxuICB9LFxuICBob3Jpem9udGFsRm9yd2FyZDoge1xuICAgIEJ2MTJ5YjM6IFtcImYxa3dqYWpjXCIsIFwiZjFvOXczbDhcIl1cbiAgfSxcbiAgdmVydGljYWxCYWNrd2FyZDoge1xuICAgIEJ2MTJ5YjM6IFwiZmdsM3luN1wiXG4gIH0sXG4gIHZlcnRpY2FsRm9yd2FyZDoge1xuICAgIEJ2MTJ5YjM6IFwiZmFpdTV5ZVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxMHBpMTNue3Bvc2l0aW9uOnJlbGF0aXZlO31cIiwgXCIuZjVmMmpidXthbmltYXRpb24tZHVyYXRpb246MC4zNjdzO31cIiwgXCIuZnl3eXB0ZXthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fVwiLCBcIi5mMWVlMnVle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xLC45LC4yLDEpO31cIiwgXCIuZjFvOXczbDh7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaSxmMmxnbWMzO31cIiwgXCIuZjFrd2phamN7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaSxmcGt0Y3Y3O31cIiwgXCIuZmdsM3luN3thbmltYXRpb24tbmFtZTpmNWo4YmlpLGYzYnY5a207fVwiLCBcIi5mYWl1NXlle2FuaW1hdGlvbi1uYW1lOmY1ajhiaWksZnVudHgweTt9XCJdLFxuICB3OiBbXCIuZjFnYXp3eXQ6Zm9jdXMtd2l0aGlue3otaW5kZXg6MTt9XCJdLFxuICBrOiBbXCJAa2V5ZnJhbWVzIGY1ajhiaWl7ZnJvbXtvcGFjaXR5OjA7fXRve29wYWNpdHk6MTt9fVwiLCBcIkBrZXlmcmFtZXMgZjJsZ21jM3tmcm9te3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTt9dG97cG9pbnRlci1ldmVudHM6YXV0bzt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7fX1cIiwgXCJAa2V5ZnJhbWVzIGZwa3Rjdjd7ZnJvbXtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTt9dG97cG9pbnRlci1ldmVudHM6YXV0bzt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7fX1cIiwgXCJAa2V5ZnJhbWVzIGYzYnY5a217ZnJvbXtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7fXRve3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO319XCIsIFwiQGtleWZyYW1lcyBmdW50eDB5e2Zyb217cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7fXRve3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO319XCJdXG59KTtcbmNvbnN0IHVzZVdlZWtEYXlMYWJlbENlbGxTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgZmFtYWFxOiBcImYxeHF5MXN1XCIsXG4gICAgdmluMTdkOiBcImZoc3Fuc25cIixcbiAgICBCZjVmY3M6IFwiZnl3eXB0ZVwiLFxuICAgIEJ2MTJ5YjM6IFwiZjFoN3U1MnBcIixcbiAgICBFemtuM2I6IFwiZmpxNGM5NFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxeHF5MXN1ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt9XCIsIFwiLmZoc3Fuc257YW5pbWF0aW9uLWR1cmF0aW9uOjAuMjY3czt9XCIsIFwiLmZ5d3lwdGV7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO31cIiwgXCIuZjFoN3U1MnB7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaTt9XCIsIFwiLmZqcTRjOTR7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjEsLjI1LC43NSwuOSk7fVwiXSxcbiAgazogW1wiQGtleWZyYW1lcyBmNWo4Ymlpe2Zyb217b3BhY2l0eTowO310b3tvcGFjaXR5OjE7fX1cIl1cbn0pO1xuY29uc3QgdXNlV2Vla051bWJlckNlbGxTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIHUxbXRqdTogW1wiZmUybm41Z1wiLCBcImYxcmNiYXk3XCJdLFxuICAgIEI3Y2s4NGQ6IFwiZjFld3RxY2xcIixcbiAgICBzajU1emQ6IFwiZnhjNGo5MlwiLFxuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiLFxuICAgIEJocmQ3enA6IFwiZmlnc29rNlwiLFxuICAgIEJxZW52aWo6IFwiZnhsZGFvOVwiLFxuICAgIGpyYXBreTogMCxcbiAgICBGcmc2ZjM6IDAsXG4gICAgdDIxY3EwOiAwLFxuICAgIEI2b2YzamE6IDAsXG4gICAgQjc0c3psazogXCJmMXMxODRhb1wiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmMW1rOGxhaVwiLFxuICAgIGE5YjY3NzogXCJmMXc5ZGNoa1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgW1wiLmZlMm5uNWd7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UyKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxcmNiYXk3e2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1jb2xvck5ldXRyYWxTdHJva2UyKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjFld3RxY2x7Ym94LXNpemluZzpib3JkZXItYm94O31cIiwgXCIuZnhjNGo5Mntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kNCk7fVwiLCBcIi5meTlya25je2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UyMDApO31cIiwgXCIuZmlnc29rNntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7fVwiLCBcIi5meGxkYW85e2hlaWdodDoyOHB4O31cIiwgW1wiLmYxczE4NGFve21hcmdpbjowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFtazhsYWl7cGFkZGluZzowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMXc5ZGNoa3t3aWR0aDoyOHB4O31cIl1cbn0pO1xuY29uc3QgdXNlRGF5T3V0c2lkZUJvdW5kc1N0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICB4NzM0ZW06IFwiZjF2NHo2eGdcIixcbiAgICBCMHNzZjEzOiBcImYxdTlxN29oXCIsXG4gICAgQjhoOGg1ejogXCJmMWEyMmxjY1wiLFxuICAgIEJidXN1enA6IFwiZjFkY3M4eXpcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXY0ejZ4ZywuZjF2NHo2eGc6ZGlzYWJsZWQsLmYxdjR6NnhnIGJ1dHRvbiwuZjF2NHo2eGcuZnVpLUNhbGVuZGFyRGF5R3JpZF9faG92ZXJTdHlsZSwuZjF2NHo2eGcuZnVpLUNhbGVuZGFyRGF5R3JpZF9fcHJlc3NlZFN0eWxle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgXCIuZjF1OXE3b2gsLmYxdTlxN29oOmRpc2FibGVkLC5mMXU5cTdvaCBidXR0b24sLmYxdTlxN29oLmZ1aS1DYWxlbmRhckRheUdyaWRfX2hvdmVyU3R5bGUsLmYxdTlxN29oLmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZjFhMjJsY2MsLmYxYTIybGNjOmRpc2FibGVkLC5mMWEyMmxjYyBidXR0b24sLmYxYTIybGNjLmZ1aS1DYWxlbmRhckRheUdyaWRfX2hvdmVyU3R5bGUsLmYxYTIybGNjLmZ1aS1DYWxlbmRhckRheUdyaWRfX3ByZXNzZWRTdHlsZXtwb2ludGVyLWV2ZW50czpub25lO31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxZGNzOHl6e2NvbG9yOkdyYXlUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV1dXG59KTtcbmNvbnN0IHVzZURheU91dHNpZGVOYXZpZ2F0ZWRNb250aFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGxpZ2h0ZW5EYXlzT3V0c2lkZU5hdmlnYXRlZE1vbnRoOiB7XG4gICAgc2o1NXpkOiBcImZ4YzRqOTJcIixcbiAgICBCaHJkN3pwOiBcImZpZ3NvazZcIixcbiAgICBCYnVzdXpwOiBcImYxZGNzOHl6XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZnhjNGo5Mntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kNCk7fVwiLCBcIi5maWdzb2s2e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRSZWd1bGFyKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWRjczh5entjb2xvcjpHcmF5VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXVxufSk7XG5jb25zdCB1c2VEYXlCdXR0b25TdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgQmdmZzVkYTogMCxcbiAgICBCOXhhdjBnOiAwLFxuICAgIG9pdmp3ZTogMCxcbiAgICBCbjBxZ3ptOiAwLFxuICAgIEI0ZzluZWI6IDAsXG4gICAgemhqd3kzOiAwLFxuICAgIHd2cHFlNTogMCxcbiAgICBpYnY2aGg6IDAsXG4gICAgdTFtdGp1OiAwLFxuICAgIGgzYzVybTogMCxcbiAgICB2cmFmang6IDAsXG4gICAgQmVrcmM0aTogMCxcbiAgICBpOHZ2cWM6IDAsXG4gICAgZzJ1M3dlOiAwLFxuICAgIGljdnlvdDogMCxcbiAgICBCNGo1MmZvOiAwLFxuICAgIGlyc3dwczogXCJmM2JoZ3FoXCIsXG4gICAgc2o1NXpkOiBcImYxeW0zYng0XCIsXG4gICAgQmNlZWk5YzogXCJmMWs2ZmR1aFwiLFxuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiLFxuICAgIEJocmQ3enA6IFwiZmY1aWtsc1wiLFxuICAgIEJxZW52aWo6IFwiZnJ2Z2g1NVwiLFxuICAgIEJnOTZnd3A6IFwiZjh4bHo2Z1wiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxZ2w4MXRnXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbWs4bGFpXCIsXG4gICAgYTliNjc3OiBcImZxNG1jdW5cIixcbiAgICBCeDB5anU3OiBcImYxMHk0NTFnXCIsXG4gICAgbDk4ZjR3OiBcImYxZHdwZ3gzXCIsXG4gICAgSndlZjh5OiBcImYxOGEwZndmXCIsXG4gICAgQnRtYjVoZTogMCxcbiAgICBndTcxZHE6IDAsXG4gICAgQjJ6b213OTogMCxcbiAgICBGZ2s2OXM6IDAsXG4gICAgQnc2ZXlyeTogXCJmMW1ocTNhaVwiLFxuICAgIGVjcjJzMjogXCJmN2xhMmU4XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBbXCIuZjNiaGdxaHtib3JkZXI6bm9uZTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgXCIuZjF5bTNieDR7Y29sb3I6aW5oZXJpdDt9XCIsIFwiLmYxazZmZHVoe2N1cnNvcjpwb2ludGVyO31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZmNWlrbHN7Zm9udC13ZWlnaHQ6aW5oZXJpdDt9XCIsIFwiLmZydmdoNTV7aGVpZ2h0OjI0cHg7fVwiLCBcIi5mOHhsejZne2xpbmUtaGVpZ2h0OjI0cHg7fVwiLCBbXCIuZjFnbDgxdGd7b3ZlcmZsb3c6dmlzaWJsZTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxbWs4bGFpe3BhZGRpbmc6MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZnE0bWN1bnt3aWR0aDoyNHB4O31cIiwgXCIuZjEweTQ1MWdzcGFue2hlaWdodDppbmhlcml0O31cIiwgXCIuZjFkd3BneDNzcGFue2xpbmUtaGVpZ2h0OmluaGVyaXQ7fVwiXSxcbiAgaDogW1wiLmYxOGEwZndmOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZEhvdmVyKTt9XCIsIFtcIi5mMW1ocTNhaTpob3Zlcntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV1dLFxuICBhOiBbXCIuZjdsYTJlODphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkUHJlc3NlZCk7fVwiXVxufSk7XG5jb25zdCB1c2VEYXlJc1RvZGF5U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgQnJmMXA4MDogXCJmNGQ5ajIzXCIsXG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgc2o1NXpkOiBcImYxcGhyYWdrXCIsXG4gICAgQmhyZDd6cDogXCJmbDQzdWVmXCIsXG4gICAga29mMnVuOiBcImYxYjVzOHduXCIsXG4gICAgRTl6djNvOiBcImZ0NGdvbzhcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMjJpYWd3e2Rpc3BsYXk6ZmxleDt9XCIsIFwiLmY0ZDlqMjN7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9XCIsIFwiLmYxMjJuNTl7YWxpZ24taXRlbXM6Y2VudGVyO31cIiwgXCIuZjFwaHJhZ2t7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZE9uQnJhbmQpO31cIiwgXCIuZmw0M3VlZntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO31cIiwgXCIuZjFiNXM4d24+LmZ1aS1DYWxlbmRhckRheUdyaWRfX2RheU1hcmtlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mdDRnb284Pi5mdWktQ2FsZW5kYXJEYXlHcmlkX19kYXlNYXJrZXJ7YmFja2dyb3VuZC1jb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuY29uc3QgdXNlRGF5VG9kYXlNYXJrZXJTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIixcbiAgICBCcmYxcDgwOiBcImY0ZDlqMjNcIixcbiAgICBCdDk4NGdqOiBcImYxMjJuNTlcIixcbiAgICBEZTNwenE6IFwiZmZwN2Vzb1wiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImYxcXRsejJzXCIsXG4gICAgYTliNjc3OiBcImY2NGZ1cTNcIixcbiAgICBCcWVudmlqOiBcImZqYW1xNmJcIixcbiAgICBCZzk2Z3dwOiBcImYxbjk1aXNsXCIsXG4gICAgQnN3NmZ2ZzogXCJmZzM3NHlxXCIsXG4gICAgQmp3YXMyZjogXCJmeDR0MGFuXCIsXG4gICAgQm4xZDY1cTogW1wiZjFiZDdxazBcIiwgXCJmazV2cGljXCJdLFxuICAgIEJ4ZXVhdG46IFwiZmd4bnBmcFwiLFxuICAgIG41MWdwODogW1wiZms1dnBpY1wiLCBcImYxYmQ3cWswXCJdLFxuICAgIEJidXN1enA6IFwiZjF5aWcwN2VcIixcbiAgICB5Y2Jmc206IFwiZmtjNDJheVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZjRkOWoyM3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO31cIiwgXCIuZjEyMm41OXthbGlnbi1pdGVtczpjZW50ZXI7fVwiLCBcIi5mZnA3ZXNve2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQpO31cIiwgW1wiLmYxcXRsejJze2JvcmRlci1yYWRpdXM6MTAwJTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjY0ZnVxM3t3aWR0aDoyMHB4O31cIiwgXCIuZmphbXE2YntoZWlnaHQ6MjBweDt9XCIsIFwiLmYxbjk1aXNse2xpbmUtaGVpZ2h0OjIwcHg7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmczNzR5cXtiYWNrZ3JvdW5kLWNvbG9yOldpbmRvd1RleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5meDR0MGFue2JvcmRlci10b3AtY29sb3I6V2luZG93VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxYmQ3cWswe2JvcmRlci1yaWdodC1jb2xvcjpXaW5kb3dUZXh0O30uZms1dnBpY3tib3JkZXItbGVmdC1jb2xvcjpXaW5kb3dUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmd4bnBmcHtib3JkZXItYm90dG9tLWNvbG9yOldpbmRvd1RleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMXlpZzA3ZXtjb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5ma2M0MmF5e2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXVxufSk7XG5jb25zdCB1c2VGaXJzdFRyYW5zaXRpb25XZWVrU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIEJxZW52aWo6IFwiZm5paW5hOFwiLFxuICAgIGFiczY0bjogXCJmazczdngxXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBxaGY4eHE6IFwiZjFldXY0M2ZcIixcbiAgICBhOWI2Nzc6IFwiZjN0c3E1clwiXG4gIH0sXG4gIHZlcnRpY2FsRm9yd2FyZDoge1xuICAgIHZpbjE3ZDogXCJmNWYyamJ1XCIsXG4gICAgQmY1ZmNzOiBcImZ5d3lwdGVcIixcbiAgICBCdjEyeWIzOiBcImZ1cGoyZjVcIixcbiAgICBFemtuM2I6IFwiZjFlZTJ1ZVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZuaWluYTh7aGVpZ2h0OjA7fVwiLCBcIi5mazczdngxe29wYWNpdHk6MDt9XCIsIFtcIi5mMWEzcDF2cHtvdmVyZmxvdzpoaWRkZW47fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxZXV2NDNme3Bvc2l0aW9uOmFic29sdXRlO31cIiwgXCIuZjN0c3E1cnt3aWR0aDowO31cIiwgXCIuZjVmMmpidXthbmltYXRpb24tZHVyYXRpb246MC4zNjdzO31cIiwgXCIuZnl3eXB0ZXthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fVwiLCBcIi5mdXBqMmY1e2FuaW1hdGlvbi1uYW1lOmYxOTllMzR2LGY3NnN2cmQsZjEzYWdrcmM7fVwiLCBcIi5mMWVlMnVle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xLC45LC4yLDEpO31cIl0sXG4gIGs6IFtcIkBrZXlmcmFtZXMgZjE5OWUzNHZ7ZnJvbXtvcGFjaXR5OjE7fXRve29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt9fVwiLCBcIkBrZXlmcmFtZXMgZjc2c3ZyZHtmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTt9fVwiLCBcIkBrZXlmcmFtZXMgZjEzYWdrcmN7MTAwJXtoZWlnaHQ6MHB4O292ZXJmbG93OmhpZGRlbjt3aWR0aDowcHg7fTk5Ljkle2hlaWdodDoyOHB4O292ZXJmbG93OnZpc2libGU7d2lkdGg6MTAwJTt9MCV7aGVpZ2h0OjI4cHg7b3ZlcmZsb3c6dmlzaWJsZTt3aWR0aDoxMDAlO319XCJdXG59KTtcbmNvbnN0IHVzZUxhc3RUcmFuc2l0aW9uV2Vla1N0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCcWVudmlqOiBcImZuaWluYThcIixcbiAgICBCNm9mM2phOiBcImZseWtqdGpcIixcbiAgICBhYnM2NG46IFwiZms3M3Z4MVwiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxYTNwMXZwXCIsXG4gICAgcWhmOHhxOiBcImYxZXV2NDNmXCIsXG4gICAgYTliNjc3OiBcImYzdHNxNXJcIlxuICB9LFxuICB2ZXJ0aWNhbEJhY2t3YXJkOiB7XG4gICAgdmluMTdkOiBcImY1ZjJqYnVcIixcbiAgICBCZjVmY3M6IFwiZnl3eXB0ZVwiLFxuICAgIEJ2MTJ5YjM6IFwiZmlmb2t0a1wiLFxuICAgIEV6a24zYjogXCJmMWVlMnVlXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZm5paW5hOHtoZWlnaHQ6MDt9XCIsIFwiLmZseWtqdGp7bWFyZ2luLXRvcDotMjhweDt9XCIsIFwiLmZrNzN2eDF7b3BhY2l0eTowO31cIiwgW1wiLmYxYTNwMXZwe292ZXJmbG93OmhpZGRlbjt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjFldXY0M2Z7cG9zaXRpb246YWJzb2x1dGU7fVwiLCBcIi5mM3RzcTVye3dpZHRoOjA7fVwiLCBcIi5mNWYyamJ1e2FuaW1hdGlvbi1kdXJhdGlvbjowLjM2N3M7fVwiLCBcIi5meXd5cHRle2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDt9XCIsIFwiLmZpZm9rdGt7YW5pbWF0aW9uLW5hbWU6ZjE5OWUzNHYsZjE4ODk1aXEsZjEzYWdrcmM7fVwiLCBcIi5mMWVlMnVle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xLC45LC4yLDEpO31cIl0sXG4gIGs6IFtcIkBrZXlmcmFtZXMgZjE5OWUzNHZ7ZnJvbXtvcGFjaXR5OjE7fXRve29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt9fVwiLCBcIkBrZXlmcmFtZXMgZjE4ODk1aXF7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7fXRve3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTt9fVwiLCBcIkBrZXlmcmFtZXMgZjEzYWdrcmN7MTAwJXtoZWlnaHQ6MHB4O292ZXJmbG93OmhpZGRlbjt3aWR0aDowcHg7fTk5Ljkle2hlaWdodDoyOHB4O292ZXJmbG93OnZpc2libGU7d2lkdGg6MTAwJTt9MCV7aGVpZ2h0OjI4cHg7b3ZlcmZsb3c6dmlzaWJsZTt3aWR0aDoxMDAlO319XCJdXG59KTtcbmNvbnN0IHVzZURheU1hcmtlclN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBEZTNwenE6IFwiZm5nZ2Vkd1wiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImYxcXRsejJzXCIsXG4gICAgQjVrenZvaTogXCJmMW9xMHVkYlwiLFxuICAgIEJxZW52aWo6IFwiZjZ5d3I3alwiLFxuICAgIG95aDdtejogW1wiZjF2Z2MyczNcIiwgXCJmMWUzMWI0ZFwiXSxcbiAgICBqcmFwa3k6IDAsXG4gICAgRnJnNmYzOiAwLFxuICAgIHQyMWNxMDogMCxcbiAgICBCNm9mM2phOiAwLFxuICAgIEI3NHN6bGs6IFwiZmNwZGkxM1wiLFxuICAgIHFoZjh4cTogXCJmMWV1djQzZlwiLFxuICAgIGozNWpicTogW1wiZjFlMzFiNGRcIiwgXCJmMXZnYzJzM1wiXSxcbiAgICBhOWI2Nzc6IFwiZmFybzB1aVwiLFxuICAgIEJzdzZmdmc6IFwiZmczNzR5cVwiLFxuICAgIHljYmZzbTogXCJma2M0MmF5XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZm5nZ2Vkd3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMik7fVwiLCBbXCIuZjFxdGx6MnN7Ym9yZGVyLXJhZGl1czoxMDAlO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMW9xMHVkYntib3R0b206MXB4O31cIiwgXCIuZjZ5d3I3antoZWlnaHQ6NHB4O31cIiwgXCIuZjF2Z2MyczN7bGVmdDowO31cIiwgXCIuZjFlMzFiNGR7cmlnaHQ6MDt9XCIsIFtcIi5mY3BkaTEze21hcmdpbjphdXRvO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWV1djQzZntwb3NpdGlvbjphYnNvbHV0ZTt9XCIsIFwiLmZhcm8wdWl7d2lkdGg6NHB4O31cIl0sXG4gIG06IFtbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZnMzc0eXF7YmFja2dyb3VuZC1jb2xvcjpXaW5kb3dUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmtjNDJheXtmb3JjZWQtY29sb3ItYWRqdXN0Om5vbmU7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuY29uc3QgdXNlQ29ybmVyQm9yZGVyQW5kUmFkaXVzU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgY29ybmVyczoge1xuICAgIEN5NjRtMjogW1wiZjF5eGpld2FcIiwgXCJmNXhmeXllXCJdLFxuICAgIEJubjQzYnc6IFtcImYxa3BkbmQ3XCIsIFwiZm9rcXJuaVwiXSxcbiAgICBmZWFuYmM6IFtcImYxMjdlbXBzXCIsIFwiZjFzNnMxZWxcIl0sXG4gICAgQjQyNjhpcDogW1wiZjM5dnIyYVwiLCBcImZycHF5cm5cIl1cbiAgfVxufSwge1xuICBkOiBbXCIuZjF5eGpld2EuZnVpLUNhbGVuZGFyRGF5R3JpZF9fdG9wUmlnaHRDb3JuZXJEYXRle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCBcIi5mNXhmeXllLmZ1aS1DYWxlbmRhckRheUdyaWRfX3RvcFJpZ2h0Q29ybmVyRGF0ZXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCBcIi5mMWtwZG5kNy5mdWktQ2FsZW5kYXJEYXlHcmlkX190b3BMZWZ0Q29ybmVyRGF0ZXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCBcIi5mb2txcm5pLmZ1aS1DYWxlbmRhckRheUdyaWRfX3RvcExlZnRDb3JuZXJEYXRle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCBcIi5mMTI3ZW1wcy5mdWktQ2FsZW5kYXJEYXlHcmlkX19ib3R0b21SaWdodENvcm5lckRhdGV7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIFwiLmYxczZzMWVsLmZ1aS1DYWxlbmRhckRheUdyaWRfX2JvdHRvbVJpZ2h0Q29ybmVyRGF0ZXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCBcIi5mMzl2cjJhLmZ1aS1DYWxlbmRhckRheUdyaWRfX2JvdHRvbUxlZnRDb3JuZXJEYXRle2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCIsIFwiLmZycHF5cm4uZnVpLUNhbGVuZGFyRGF5R3JpZF9fYm90dG9tTGVmdENvcm5lckRhdGV7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzTWVkaXVtKTt9XCJdXG59KTtcbi8qKlxuICogQGludGVybmFsXG4gKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgQ2FsZW5kYXJEYXlHcmlkIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlQ2FsZW5kYXJEYXlHcmlkU3R5bGVzX3Vuc3RhYmxlID0gcHJvcHMgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHdyYXBwZXJTdHlsZXMgPSB1c2VXcmFwcGVyU3R5bGVzKCk7XG4gIGNvbnN0IHRhYmxlU3R5bGVzID0gdXNlVGFibGVTdHlsZXMoKTtcbiAgY29uc3QgZGF5Q2VsbFN0eWxlcyA9IHVzZURheUNlbGxTdHlsZXMoKTtcbiAgY29uc3QgZGF5U2VsZWN0ZWRTdHlsZXMgPSB1c2VEYXlTZWxlY3RlZFN0eWxlcygpO1xuICBjb25zdCBkYXlTaW5nbGVTZWxlY3RlZFN0eWxlcyA9IHVzZURheVNpbmdsZVNlbGVjdGVkU3R5bGVzKCk7XG4gIGNvbnN0IHdlZWtSb3dTdHlsZXMgPSB1c2VXZWVrUm93U3R5bGVzKCk7XG4gIGNvbnN0IHdlZWtEYXlMYWJlbENlbGxTdHlsZXMgPSB1c2VXZWVrRGF5TGFiZWxDZWxsU3R5bGVzKCk7XG4gIGNvbnN0IHdlZWtOdW1iZXJDZWxsU3R5bGVzID0gdXNlV2Vla051bWJlckNlbGxTdHlsZXMoKTtcbiAgY29uc3QgZGF5T3V0c2lkZUJvdW5kc1N0eWxlcyA9IHVzZURheU91dHNpZGVCb3VuZHNTdHlsZXMoKTtcbiAgY29uc3QgZGF5T3V0c2lkZU5hdmlnYXRlZE1vbnRoU3R5bGVzID0gdXNlRGF5T3V0c2lkZU5hdmlnYXRlZE1vbnRoU3R5bGVzKCk7XG4gIGNvbnN0IGRheUJ1dHRvblN0eWxlcyA9IHVzZURheUJ1dHRvblN0eWxlcygpO1xuICBjb25zdCBkYXlJc1RvZGF5U3R5bGVzID0gdXNlRGF5SXNUb2RheVN0eWxlcygpO1xuICBjb25zdCBmaXJzdFRyYW5zaXRpb25XZWVrU3R5bGVzID0gdXNlRmlyc3RUcmFuc2l0aW9uV2Vla1N0eWxlcygpO1xuICBjb25zdCBsYXN0VHJhbnNpdGlvbldlZWtTdHlsZXMgPSB1c2VMYXN0VHJhbnNpdGlvbldlZWtTdHlsZXMoKTtcbiAgY29uc3QgZGF5TWFya2VyU3R5bGVzID0gdXNlRGF5TWFya2VyU3R5bGVzKCk7XG4gIGNvbnN0IGNvcm5lckJvcmRlckFuZFJhZGl1c1N0eWxlcyA9IHVzZUNvcm5lckJvcmRlckFuZFJhZGl1c1N0eWxlcygpO1xuICBjb25zdCBkYXlUb2RheU1hcmtlclN0eWxlcyA9IHVzZURheVRvZGF5TWFya2VyU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBhbmltYXRlQmFja3dhcmRzLFxuICAgIGFuaW1hdGlvbkRpcmVjdGlvbixcbiAgICBsaWdodGVuRGF5c091dHNpZGVOYXZpZ2F0ZWRNb250aCxcbiAgICBzaG93V2Vla051bWJlcnNcbiAgfSA9IHByb3BzO1xuICByZXR1cm4ge1xuICAgIHdyYXBwZXI6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLndyYXBwZXIsIHdyYXBwZXJTdHlsZXMuYmFzZSksXG4gICAgdGFibGU6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLnRhYmxlLCB0YWJsZVN0eWxlcy5iYXNlLCBzaG93V2Vla051bWJlcnMgJiYgdGFibGVTdHlsZXMuc2hvd1dlZWtOdW1iZXJzKSxcbiAgICBkYXlDZWxsOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy5kYXlDZWxsLCBkYXlDZWxsU3R5bGVzLmJhc2UsIGRheUNlbGxTdHlsZXMuZm9jdXNJbmRpY2F0b3IsIGNvcm5lckJvcmRlckFuZFJhZGl1c1N0eWxlcy5jb3JuZXJzKSxcbiAgICBkYXlTZWxlY3RlZDogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMuZGF5U2VsZWN0ZWQsIGRheVNlbGVjdGVkU3R5bGVzLmJhc2UpLFxuICAgIGRheVNpbmdsZVNlbGVjdGVkOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy5kYXlTaW5nbGVTZWxlY3RlZCwgZGF5U2luZ2xlU2VsZWN0ZWRTdHlsZXMuYmFzZSksXG4gICAgd2Vla1JvdzogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMud2Vla1Jvdywgd2Vla1Jvd1N0eWxlcy5iYXNlLCBhbmltYXRlQmFja3dhcmRzICE9PSB1bmRlZmluZWQgJiYgd2Vla1Jvd1N0eWxlcy5hbmltYXRpb24sIGFuaW1hdGVCYWNrd2FyZHMgIT09IHVuZGVmaW5lZCAmJiAoYW5pbWF0aW9uRGlyZWN0aW9uID09PSBBbmltYXRpb25EaXJlY3Rpb24uSG9yaXpvbnRhbCA/IGFuaW1hdGVCYWNrd2FyZHMgPyB3ZWVrUm93U3R5bGVzLmhvcml6b250YWxCYWNrd2FyZCA6IHdlZWtSb3dTdHlsZXMuaG9yaXpvbnRhbEZvcndhcmQgOiBhbmltYXRlQmFja3dhcmRzID8gd2Vla1Jvd1N0eWxlcy52ZXJ0aWNhbEJhY2t3YXJkIDogd2Vla1Jvd1N0eWxlcy52ZXJ0aWNhbEZvcndhcmQpKSxcbiAgICB3ZWVrRGF5TGFiZWxDZWxsOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy53ZWVrRGF5TGFiZWxDZWxsLCB3ZWVrRGF5TGFiZWxDZWxsU3R5bGVzLmJhc2UpLFxuICAgIHdlZWtOdW1iZXJDZWxsOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy53ZWVrTnVtYmVyQ2VsbCwgd2Vla051bWJlckNlbGxTdHlsZXMuYmFzZSksXG4gICAgZGF5T3V0c2lkZUJvdW5kczogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMuZGF5T3V0c2lkZUJvdW5kcywgZGF5T3V0c2lkZUJvdW5kc1N0eWxlcy5iYXNlKSxcbiAgICBkYXlPdXRzaWRlTmF2aWdhdGVkTW9udGg6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLmRheU91dHNpZGVOYXZpZ2F0ZWRNb250aCwgbGlnaHRlbkRheXNPdXRzaWRlTmF2aWdhdGVkTW9udGggJiYgZGF5T3V0c2lkZU5hdmlnYXRlZE1vbnRoU3R5bGVzLmxpZ2h0ZW5EYXlzT3V0c2lkZU5hdmlnYXRlZE1vbnRoKSxcbiAgICBkYXlCdXR0b246IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLmRheUJ1dHRvbiwgZGF5QnV0dG9uU3R5bGVzLmJhc2UpLFxuICAgIGRheUlzVG9kYXk6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLmRheUlzVG9kYXksIGRheUlzVG9kYXlTdHlsZXMuYmFzZSksXG4gICAgZmlyc3RUcmFuc2l0aW9uV2VlazogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMuZmlyc3RUcmFuc2l0aW9uV2VlaywgZmlyc3RUcmFuc2l0aW9uV2Vla1N0eWxlcy5iYXNlLCBhbmltYXRlQmFja3dhcmRzICE9PSB1bmRlZmluZWQgJiYgYW5pbWF0aW9uRGlyZWN0aW9uICE9PSBBbmltYXRpb25EaXJlY3Rpb24uSG9yaXpvbnRhbCAmJiAhYW5pbWF0ZUJhY2t3YXJkcyAmJiBmaXJzdFRyYW5zaXRpb25XZWVrU3R5bGVzLnZlcnRpY2FsRm9yd2FyZCksXG4gICAgbGFzdFRyYW5zaXRpb25XZWVrOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy5sYXN0VHJhbnNpdGlvbldlZWssIGxhc3RUcmFuc2l0aW9uV2Vla1N0eWxlcy5iYXNlLCBhbmltYXRlQmFja3dhcmRzICE9PSB1bmRlZmluZWQgJiYgYW5pbWF0aW9uRGlyZWN0aW9uICE9PSBBbmltYXRpb25EaXJlY3Rpb24uSG9yaXpvbnRhbCAmJiBhbmltYXRlQmFja3dhcmRzICYmIGxhc3RUcmFuc2l0aW9uV2Vla1N0eWxlcy52ZXJ0aWNhbEJhY2t3YXJkKSxcbiAgICBkYXlNYXJrZXI6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLmRheU1hcmtlciwgZGF5TWFya2VyU3R5bGVzLmJhc2UpLFxuICAgIGRheVRvZGF5TWFya2VyOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy5kYXlUb2RheU1hcmtlciwgZGF5VG9kYXlNYXJrZXJTdHlsZXMuYmFzZSlcbiAgfTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDYWxlbmRhckRheUdyaWRTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IERBWVNfSU5fV0VFSyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IENhbGVuZGFyTW9udGhIZWFkZXJSb3cgPSAocHJvcHMpPT57XG4gICAgY29uc3QgeyBzaG93V2Vla051bWJlcnMsIHN0cmluZ3MsIGZpcnN0RGF5T2ZXZWVrLCBhbGxGb2N1c2FibGUsIHdlZWtzVG9TaG93LCB3ZWVrcywgY2xhc3NOYW1lcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGF5TGFiZWxzID0gc3RyaW5ncy5zaG9ydERheXMuc2xpY2UoKTtcbiAgICBsZXQgZmlyc3RPZk1vbnRoSW5kZXggPSAtMTtcbiAgICBjb25zdCBmaXJzdFdlZWtPZk1vbnRoID0gd2Vla3NbMV07XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHdlZWtzWzFdLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKGZpcnN0V2Vla09mTW9udGhbaV0ub3JpZ2luYWxEYXRlLmdldERhdGUoKSA9PT0gMSkge1xuICAgICAgICAgICAgZmlyc3RPZk1vbnRoSW5kZXggPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdlZWtzVG9TaG93ID09PSAxICYmIGZpcnN0T2ZNb250aEluZGV4ID49IDApIHtcbiAgICAgICAgLy8gaWYgd2Ugb25seSBzaG93IG9uZSB3ZWVrLCByZXBsYWNlIHRoZSBoZWFkZXIgd2l0aCBzaG9ydCBtb250aCBuYW1lXG4gICAgICAgIGNvbnN0IGZpcnN0T2ZNb250aEluZGV4T2Zmc2V0ID0gKGZpcnN0T2ZNb250aEluZGV4ICsgZmlyc3REYXlPZldlZWspICUgREFZU19JTl9XRUVLO1xuICAgICAgICBkYXlMYWJlbHNbZmlyc3RPZk1vbnRoSW5kZXhPZmZzZXRdID0gc3RyaW5ncy5zaG9ydE1vbnRoc1t3ZWVrc1sxXVtmaXJzdE9mTW9udGhJbmRleF0ub3JpZ2luYWxEYXRlLmdldE1vbnRoKCldO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwidHJcIiwgbnVsbCwgc2hvd1dlZWtOdW1iZXJzICYmIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcInRoXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmRheUNlbGxcbiAgICB9KSwgZGF5TGFiZWxzLm1hcCgodmFsLCBpbmRleCk9PntcbiAgICAgICAgY29uc3QgaSA9IChpbmRleCArIGZpcnN0RGF5T2ZXZWVrKSAlIERBWVNfSU5fV0VFSztcbiAgICAgICAgY29uc3QgbGFiZWwgPSBzdHJpbmdzLmRheXNbaV07XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aFwiLCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhjbGFzc05hbWVzLmRheUNlbGwsIGNsYXNzTmFtZXMud2Vla0RheUxhYmVsQ2VsbCksXG4gICAgICAgICAgICBzY29wZTogXCJjb2xcIixcbiAgICAgICAgICAgIGtleTogZGF5TGFiZWxzW2ldICsgJyAnICsgaW5kZXgsXG4gICAgICAgICAgICB0aXRsZTogbGFiZWwsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogbGFiZWwsXG4gICAgICAgICAgICB0YWJJbmRleDogYWxsRm9jdXNhYmxlID8gMCA6IHVuZGVmaW5lZFxuICAgICAgICB9LCBkYXlMYWJlbHNbaV0pO1xuICAgIH0pKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBcnJvd0Rvd24sIEFycm93TGVmdCwgQXJyb3dSaWdodCwgQXJyb3dVcCwgRW50ZXIgfSBmcm9tICdAZmx1ZW50dWkva2V5Ym9hcmQta2V5cyc7XG5pbXBvcnQgeyBnZXRSVExTYWZlS2V5IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IGFkZERheXMsIGFkZFdlZWtzLCBjb21wYXJlRGF0ZXMsIGZpbmRBdmFpbGFibGVEYXRlLCBEYXRlUmFuZ2VUeXBlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgd2Vla0Nvcm5lcnNDbGFzc05hbWVzIH0gZnJvbSAnLi91c2VXZWVrQ29ybmVyU3R5bGVzLnN0eWxlcyc7XG5pbXBvcnQgeyBleHRyYUNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMgfSBmcm9tICcuL3VzZUNhbGVuZGFyRGF5R3JpZFN0eWxlcy5zdHlsZXMnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgQ2FsZW5kYXJHcmlkRGF5Q2VsbCA9IChwcm9wcyk9PntcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IHsgbmF2aWdhdGVkRGF0ZSwgZGF0ZVRpbWVGb3JtYXR0ZXIsIGFsbEZvY3VzYWJsZSwgc3RyaW5ncywgYWN0aXZlRGVzY2VuZGFudElkLCBuYXZpZ2F0ZWREYXlSZWYsIGNhbGN1bGF0ZVJvdW5kZWRTdHlsZXMsIHdlZWtzLCBjbGFzc05hbWVzLCBkYXksIGRheUluZGV4LCB3ZWVrSW5kZXgsIHdlZWtDb3JuZXJzLCBhcmlhSGlkZGVuLCBjdXN0b21EYXlDZWxsUmVmLCBkYXRlUmFuZ2VUeXBlLCBkYXlzVG9TZWxlY3RJbkRheVZpZXcsIG9uU2VsZWN0RGF0ZSwgcmVzdHJpY3RlZERhdGVzLCBtaW5EYXRlLCBtYXhEYXRlLCBvbk5hdmlnYXRlRGF0ZSwgZ2V0RGF5SW5mb3NJblJhbmdlT2ZEYXksIGdldFJlZnNGcm9tRGF5SW5mb3MgfSA9IHByb3BzO1xuICAgIHZhciBfd2Vla0Nvcm5lcnNfO1xuICAgIGNvbnN0IGNvcm5lclN0eWxlID0gKF93ZWVrQ29ybmVyc18gPSB3ZWVrQ29ybmVycyA9PT0gbnVsbCB8fCB3ZWVrQ29ybmVycyA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2Vla0Nvcm5lcnNbd2Vla0luZGV4ICsgJ18nICsgZGF5SW5kZXhdKSAhPT0gbnVsbCAmJiBfd2Vla0Nvcm5lcnNfICE9PSB2b2lkIDAgPyBfd2Vla0Nvcm5lcnNfIDogJyc7XG4gICAgY29uc3QgaXNOYXZpZ2F0ZWREYXRlID0gY29tcGFyZURhdGVzKG5hdmlnYXRlZERhdGUsIGRheS5vcmlnaW5hbERhdGUpO1xuICAgIGNvbnN0IHsgZGlyIH0gPSB1c2VGbHVlbnRfdW5zdGFibGUoKTtcbiAgICBjb25zdCBuYXZpZ2F0ZU1vbnRoRWRnZSA9IChldiwgZGF0ZSk9PntcbiAgICAgICAgbGV0IHRhcmdldERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSAxOyAvLyBieSBkZWZhdWx0IHNlYXJjaCBmb3J3YXJkXG4gICAgICAgIGlmIChldi5rZXkgPT09IEFycm93VXApIHtcbiAgICAgICAgICAgIHRhcmdldERhdGUgPSBhZGRXZWVrcyhkYXRlLCAtMSk7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChldi5rZXkgPT09IEFycm93RG93bikge1xuICAgICAgICAgICAgdGFyZ2V0RGF0ZSA9IGFkZFdlZWtzKGRhdGUsIDEpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2LmtleSA9PT0gZ2V0UlRMU2FmZUtleShBcnJvd0xlZnQsIGRpcikpIHtcbiAgICAgICAgICAgIHRhcmdldERhdGUgPSBhZGREYXlzKGRhdGUsIC0xKTtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IC0xO1xuICAgICAgICB9IGVsc2UgaWYgKGV2LmtleSA9PT0gZ2V0UlRMU2FmZUtleShBcnJvd1JpZ2h0LCBkaXIpKSB7XG4gICAgICAgICAgICB0YXJnZXREYXRlID0gYWRkRGF5cyhkYXRlLCAxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhcmdldERhdGUpIHtcbiAgICAgICAgICAgIC8vIGlmIHdlIGNvdWxkbid0IGZpbmQgYSB0YXJnZXQgZGF0ZSBhdCBhbGwsIGRvIG5vdGhpbmdcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaW5kQXZhaWxhYmxlRGF0ZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpbml0aWFsRGF0ZTogZGF0ZSxcbiAgICAgICAgICAgIHRhcmdldERhdGUsXG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICByZXN0cmljdGVkRGF0ZXMsXG4gICAgICAgICAgICBtaW5EYXRlLFxuICAgICAgICAgICAgbWF4RGF0ZVxuICAgICAgICB9O1xuICAgICAgICAvLyB0YXJnZXQgZGF0ZSBpcyByZXN0cmljdGVkLCBzZWFyY2ggaW4gd2hhdGV2ZXIgZGlyZWN0aW9uIHVudGlsIGZpbmRpbmcgdGhlIG5leHQgcG9zc2libGUgZGF0ZSxcbiAgICAgICAgLy8gc3RvcHBpbmcgYXQgYm91bmRhcmllc1xuICAgICAgICBsZXQgbmV4dERhdGUgPSBmaW5kQXZhaWxhYmxlRGF0ZShmaW5kQXZhaWxhYmxlRGF0ZU9wdGlvbnMpO1xuICAgICAgICBpZiAoIW5leHREYXRlKSB7XG4gICAgICAgICAgICAvLyBpZiBubyBkYXRlcyBhdmFpbGFibGUgaW4gaW5pdGlhbCBkaXJlY3Rpb24sIHRyeSBnb2luZyBiYWNrd2FyZHNcbiAgICAgICAgICAgIGZpbmRBdmFpbGFibGVEYXRlT3B0aW9ucy5kaXJlY3Rpb24gPSAtZGlyZWN0aW9uO1xuICAgICAgICAgICAgbmV4dERhdGUgPSBmaW5kQXZhaWxhYmxlRGF0ZShmaW5kQXZhaWxhYmxlRGF0ZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSBuZXh0RGF0ZSBpcyBzdGlsbCBpbnNpZGUgdGhlIHNhbWUgZm9jdXNab25lIGFyZWEsIGxldCB0aGUgZm9jdXNab25lIGhhbmRsZSBzZXR0aW5nIHRoZSBmb2N1cyBzbyB3ZVxuICAgICAgICAvLyBkb24ndCBqdW1wIHRoZSB2aWV3IHVubmVjZXNzYXJpbHlcbiAgICAgICAgY29uc3QgaXNJbkN1cnJlbnRWaWV3ID0gd2Vla3MgJiYgbmV4dERhdGUgJiYgd2Vla3Muc2xpY2UoMSwgd2Vla3MubGVuZ3RoIC0gMSkuc29tZSgod2Vlayk9PntcbiAgICAgICAgICAgIHJldHVybiB3ZWVrLnNvbWUoKGRheVRvQ29tcGFyZSk9PntcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZURhdGVzKGRheVRvQ29tcGFyZS5vcmlnaW5hbERhdGUsIG5leHREYXRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzSW5DdXJyZW50Vmlldykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsc2UsIGZpcmUgbmF2aWdhdGlvbiBvbiB0aGUgZGF0ZSB0byBjaGFuZ2UgdGhlIHZpZXcgdG8gc2hvdyBpdFxuICAgICAgICBpZiAobmV4dERhdGUpIHtcbiAgICAgICAgICAgIG9uTmF2aWdhdGVEYXRlKG5leHREYXRlLCB0cnVlKTtcbiAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uTW91c2VPdmVyRGF5ID0gKGV2KT0+e1xuICAgICAgICBjb25zdCBkYXlJbmZvcyA9IGdldERheUluZm9zSW5SYW5nZU9mRGF5KGRheSk7XG4gICAgICAgIGNvbnN0IGRheVJlZnMgPSBnZXRSZWZzRnJvbURheUluZm9zKGRheUluZm9zKTtcbiAgICAgICAgZGF5UmVmcy5mb3JFYWNoKChkYXlSZWYsIGluZGV4KT0+e1xuICAgICAgICAgICAgaWYgKGRheVJlZikge1xuICAgICAgICAgICAgICAgIGRheVJlZi5jbGFzc0xpc3QuYWRkKGV4dHJhQ2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcy5ob3ZlclN0eWxlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRheUluZm9zW2luZGV4XS5pc1NlbGVjdGVkICYmIGRhdGVSYW5nZVR5cGUgPT09IERhdGVSYW5nZVR5cGUuRGF5ICYmIGRheXNUb1NlbGVjdEluRGF5VmlldyAmJiBkYXlzVG9TZWxlY3RJbkRheVZpZXcgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgc3RhdGljIGNsYXNzZXMgZmlyc3QgdG8gb3ZlcndyaXRlIHRoZW1cbiAgICAgICAgICAgICAgICAgICAgZGF5UmVmLmNsYXNzTGlzdC5yZW1vdmUod2Vla0Nvcm5lcnNDbGFzc05hbWVzLmJvdHRvbUxlZnRDb3JuZXJEYXRlLCB3ZWVrQ29ybmVyc0NsYXNzTmFtZXMuYm90dG9tUmlnaHRDb3JuZXJEYXRlLCB3ZWVrQ29ybmVyc0NsYXNzTmFtZXMudG9wTGVmdENvcm5lckRhdGUsIHdlZWtDb3JuZXJzQ2xhc3NOYW1lcy50b3BSaWdodENvcm5lckRhdGUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGFzc05hbWVzVG9BZGQgPSBjYWxjdWxhdGVSb3VuZGVkU3R5bGVzKGZhbHNlLCBmYWxzZSwgaW5kZXggPiAwLCBpbmRleCA8IGRheVJlZnMubGVuZ3RoIC0gMSkudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2xhc3NOYW1lc1RvQWRkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXlSZWYuY2xhc3NMaXN0LmFkZCguLi5jbGFzc05hbWVzVG9BZGQudHJpbSgpLnNwbGl0KCcgJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IG9uTW91c2VEb3duRGF5ID0gKGV2KT0+e1xuICAgICAgICBjb25zdCBkYXlJbmZvcyA9IGdldERheUluZm9zSW5SYW5nZU9mRGF5KGRheSk7XG4gICAgICAgIGNvbnN0IGRheVJlZnMgPSBnZXRSZWZzRnJvbURheUluZm9zKGRheUluZm9zKTtcbiAgICAgICAgZGF5UmVmcy5mb3JFYWNoKChkYXlSZWYpPT57XG4gICAgICAgICAgICBpZiAoZGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgZGF5UmVmLmNsYXNzTGlzdC5hZGQoZXh0cmFDYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLnByZXNzZWRTdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3Qgb25Nb3VzZVVwRGF5ID0gKGV2KT0+e1xuICAgICAgICBjb25zdCBkYXlJbmZvcyA9IGdldERheUluZm9zSW5SYW5nZU9mRGF5KGRheSk7XG4gICAgICAgIGNvbnN0IGRheVJlZnMgPSBnZXRSZWZzRnJvbURheUluZm9zKGRheUluZm9zKTtcbiAgICAgICAgZGF5UmVmcy5mb3JFYWNoKChkYXlSZWYpPT57XG4gICAgICAgICAgICBpZiAoZGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgZGF5UmVmLmNsYXNzTGlzdC5yZW1vdmUoZXh0cmFDYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLnByZXNzZWRTdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3Qgb25Nb3VzZU91dERheSA9IChldik9PntcbiAgICAgICAgY29uc3QgZGF5SW5mb3MgPSBnZXREYXlJbmZvc0luUmFuZ2VPZkRheShkYXkpO1xuICAgICAgICBjb25zdCBkYXlSZWZzID0gZ2V0UmVmc0Zyb21EYXlJbmZvcyhkYXlJbmZvcyk7XG4gICAgICAgIGRheVJlZnMuZm9yRWFjaCgoZGF5UmVmLCBpbmRleCk9PntcbiAgICAgICAgICAgIGlmIChkYXlSZWYpIHtcbiAgICAgICAgICAgICAgICBkYXlSZWYuY2xhc3NMaXN0LnJlbW92ZShleHRyYUNhbGVuZGFyRGF5R3JpZENsYXNzTmFtZXMuaG92ZXJTdHlsZSk7XG4gICAgICAgICAgICAgICAgZGF5UmVmLmNsYXNzTGlzdC5yZW1vdmUoZXh0cmFDYWxlbmRhckRheUdyaWRDbGFzc05hbWVzLnByZXNzZWRTdHlsZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXlJbmZvc1tpbmRleF0uaXNTZWxlY3RlZCAmJiBkYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkRheSAmJiBkYXlzVG9TZWxlY3RJbkRheVZpZXcgJiYgZGF5c1RvU2VsZWN0SW5EYXlWaWV3ID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGFzc05hbWVzVG9BZGQgPSBjYWxjdWxhdGVSb3VuZGVkU3R5bGVzKGZhbHNlLCBmYWxzZSwgaW5kZXggPiAwLCBpbmRleCA8IGRheVJlZnMubGVuZ3RoIC0gMSkudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2xhc3NOYW1lc1RvQWRkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXlSZWYuY2xhc3NMaXN0LnJlbW92ZSguLi5jbGFzc05hbWVzVG9BZGQudHJpbSgpLnNwbGl0KCcgJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IG9uRGF5S2V5RG93biA9IChldik9PntcbiAgICAgICAgaWYgKGV2LmtleSA9PT0gRW50ZXIpIHtcbiAgICAgICAgICAgIG9uU2VsZWN0RGF0ZSA9PT0gbnVsbCB8fCBvblNlbGVjdERhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VsZWN0RGF0ZShkYXkub3JpZ2luYWxEYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5hdmlnYXRlTW9udGhFZGdlKGV2LCBkYXkub3JpZ2luYWxEYXRlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgbGV0IGFyaWFMYWJlbCA9IGRheS5vcmlnaW5hbERhdGUuZ2V0RGF0ZSgpICsgJywgJyArIHN0cmluZ3MubW9udGhzW2RheS5vcmlnaW5hbERhdGUuZ2V0TW9udGgoKV0gKyAnLCAnICsgZGF5Lm9yaWdpbmFsRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGlmIChkYXkuaXNNYXJrZWQpIHtcbiAgICAgICAgYXJpYUxhYmVsID0gYXJpYUxhYmVsICsgJywgJyArIHN0cmluZ3MuZGF5TWFya2VkQXJpYUxhYmVsO1xuICAgIH1cbiAgICBjb25zdCBpc0ZvY3VzYWJsZSA9ICFhcmlhSGlkZGVuICYmIChhbGxGb2N1c2FibGUgfHwgKGRheS5pc0luQm91bmRzID8gdHJ1ZSA6IHVuZGVmaW5lZCkpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGNsYXNzTmFtZXMuZGF5Q2VsbCwgd2Vla0Nvcm5lcnMgJiYgY29ybmVyU3R5bGUsIGRheS5pc1NlbGVjdGVkICYmICFkYXkuaXNTaW5nbGVTZWxlY3RlZCAmJiBjbGFzc05hbWVzLmRheVNlbGVjdGVkLCBkYXkuaXNTaW5nbGVTZWxlY3RlZCAmJiBjbGFzc05hbWVzLmRheVNpbmdsZVNlbGVjdGVkLCAhZGF5LmlzSW5Cb3VuZHMgJiYgY2xhc3NOYW1lcy5kYXlPdXRzaWRlQm91bmRzLCAhZGF5LmlzSW5Nb250aCAmJiBjbGFzc05hbWVzLmRheU91dHNpZGVOYXZpZ2F0ZWRNb250aCksXG4gICAgICAgIHJlZjogKGVsZW1lbnQpPT57XG4gICAgICAgICAgICBjdXN0b21EYXlDZWxsUmVmID09PSBudWxsIHx8IGN1c3RvbURheUNlbGxSZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1c3RvbURheUNlbGxSZWYoZWxlbWVudCwgZGF5Lm9yaWdpbmFsRGF0ZSwgY2xhc3NOYW1lcyk7XG4gICAgICAgICAgICBkYXkuc2V0UmVmKGVsZW1lbnQpO1xuICAgICAgICAgICAgaXNOYXZpZ2F0ZWREYXRlICYmIChuYXZpZ2F0ZWREYXlSZWYuY3VycmVudCA9IGVsZW1lbnQpO1xuICAgICAgICB9LFxuICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogIWFyaWFIaWRkZW4gJiYgIWRheS5pc0luQm91bmRzLFxuICAgICAgICBvbkNsaWNrOiBkYXkuaXNJbkJvdW5kcyAmJiAhYXJpYUhpZGRlbiA/IGRheS5vblNlbGVjdGVkIDogdW5kZWZpbmVkLFxuICAgICAgICBvbk1vdXNlT3ZlcjogIWFyaWFIaWRkZW4gPyBvbk1vdXNlT3ZlckRheSA6IHVuZGVmaW5lZCxcbiAgICAgICAgb25Nb3VzZURvd246ICFhcmlhSGlkZGVuID8gb25Nb3VzZURvd25EYXkgOiB1bmRlZmluZWQsXG4gICAgICAgIG9uTW91c2VVcDogIWFyaWFIaWRkZW4gPyBvbk1vdXNlVXBEYXkgOiB1bmRlZmluZWQsXG4gICAgICAgIG9uTW91c2VPdXQ6ICFhcmlhSGlkZGVuID8gb25Nb3VzZU91dERheSA6IHVuZGVmaW5lZCxcbiAgICAgICAgb25LZXlEb3duOiAhYXJpYUhpZGRlbiA/IG9uRGF5S2V5RG93biA6IHVuZGVmaW5lZCxcbiAgICAgICAgcm9sZTogXCJncmlkY2VsbFwiLFxuICAgICAgICB0YWJJbmRleDogaXNOYXZpZ2F0ZWREYXRlIHx8IGlzRm9jdXNhYmxlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgXCJhcmlhLWN1cnJlbnRcIjogZGF5LmlzVG9kYXkgPyAnZGF0ZScgOiB1bmRlZmluZWQsXG4gICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBkYXkuaXNJbkJvdW5kcyA/IGRheS5pc1NlbGVjdGVkIDogdW5kZWZpbmVkXG4gICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgICAga2V5OiBkYXkua2V5ICsgJ2J1dHRvbicsXG4gICAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGNsYXNzTmFtZXMuZGF5QnV0dG9uLCBkYXkuaXNUb2RheSAmJiBjbGFzc05hbWVzLmRheUlzVG9kYXkpLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICAgICAgICBpZDogaXNOYXZpZ2F0ZWREYXRlID8gYWN0aXZlRGVzY2VuZGFudElkIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogIWFyaWFIaWRkZW4gJiYgIWRheS5pc0luQm91bmRzLFxuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICB0YWJJbmRleDogLTFcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBkYXkuaXNUb2RheSA/IG1lcmdlQ2xhc3NlcyhjbGFzc05hbWVzLmRheVRvZGF5TWFya2VyKSA6IHVuZGVmaW5lZFxuICAgIH0sIGRhdGVUaW1lRm9ybWF0dGVyLmZvcm1hdERheShkYXkub3JpZ2luYWxEYXRlKSksIGRheS5pc01hcmtlZCAmJiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMuZGF5TWFya2VyXG4gICAgfSkpKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRXZWVrTnVtYmVyc0luTW9udGggfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhckdyaWREYXlDZWxsIH0gZnJvbSAnLi9DYWxlbmRhckdyaWREYXlDZWxsJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IENhbGVuZGFyR3JpZFJvdyA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGFyaWFIaWRkZW4sIGNsYXNzTmFtZXMsIHdlZWssIHdlZWtzLCB3ZWVrSW5kZXgsIHJvd0NsYXNzTmFtZSwgYXJpYVJvbGUsIHNob3dXZWVrTnVtYmVycywgZmlyc3REYXlPZldlZWssIGZpcnN0V2Vla09mWWVhciwgbmF2aWdhdGVkRGF0ZSwgc3RyaW5ncyB9ID0gcHJvcHM7XG4gICAgY29uc3Qgd2Vla051bWJlcnMgPSBzaG93V2Vla051bWJlcnMgPyBnZXRXZWVrTnVtYmVyc0luTW9udGgod2Vla3MubGVuZ3RoLCBmaXJzdERheU9mV2VlaywgZmlyc3RXZWVrT2ZZZWFyLCBuYXZpZ2F0ZWREYXRlKSA6IG51bGw7XG4gICAgY29uc3QgdGl0bGVTdHJpbmcgPSB3ZWVrTnVtYmVycyA/IHN0cmluZ3Mud2Vla051bWJlckZvcm1hdFN0cmluZyAmJiBzdHJpbmdzLndlZWtOdW1iZXJGb3JtYXRTdHJpbmcucmVwbGFjZSgnezB9JywgYCR7d2Vla051bWJlcnNbd2Vla0luZGV4XX1gKSA6ICcnO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0clwiLCB7XG4gICAgICAgIHJvbGU6IGFyaWFSb2xlLFxuICAgICAgICBcImFyaWEtaGlkZGVuXCI6IGFyaWFIaWRkZW4sXG4gICAgICAgIGNsYXNzTmFtZTogcm93Q2xhc3NOYW1lLFxuICAgICAgICBrZXk6IHdlZWtJbmRleCArICdfJyArIHdlZWtbMF0ua2V5XG4gICAgfSwgc2hvd1dlZWtOdW1iZXJzICYmIHdlZWtOdW1iZXJzICYmIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcInRoXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLndlZWtOdW1iZXJDZWxsLFxuICAgICAgICBrZXk6IHdlZWtJbmRleCxcbiAgICAgICAgdGl0bGU6IHRpdGxlU3RyaW5nLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogdGl0bGVTdHJpbmcsXG4gICAgICAgIHNjb3BlOiBcInJvd1wiXG4gICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCB3ZWVrTnVtYmVyc1t3ZWVrSW5kZXhdKSksIHdlZWsubWFwKChkYXksIGRheUluZGV4KT0+LyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyR3JpZERheUNlbGwsIHtcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAga2V5OiBkYXkua2V5LFxuICAgICAgICAgICAgZGF5OiBkYXksXG4gICAgICAgICAgICBkYXlJbmRleDogZGF5SW5kZXhcbiAgICAgICAgfSkpKTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wYXJlRGF0ZXMsIERBWVNfSU5fV0VFSywgZ2V0RGF5R3JpZCB9IGZyb20gJy4uLy4uL3V0aWxzL2luZGV4Jztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVdlZWtzKHByb3BzLCBvblNlbGVjdERhdGUsIGdldFNldFJlZkNhbGxiYWNrKSB7XG4gICAgJ3VzZSBubyBtZW1vJztcbiAgICAvKipcbiAgICogSW5pdGlhbCBwYXJzaW5nIG9mIHRoZSBnaXZlbiBwcm9wcyB0byBnZW5lcmF0ZSBJRGF5SW5mbyB0d28gZGltZW5zaW9uYWwgYXJyYXksIHdoaWNoIGNvbnRhaW5zIGEgcmVwcmVzZW50YXRpb25cbiAgICogb2YgZXZlcnkgZGF5IGluIHRoZSBncmlkLiBDb252ZW5pZW50IGZvciBoZWxwaW5nIHdpdGggY29udmVyc2lvbnMgYmV0d2VlbiBkYXkgcmVmcyBhbmQgRGF0ZSBvYmplY3RzIGluIGNhbGxiYWNrcy5cbiAgICovIGNvbnN0IHdlZWtzID0gUmVhY3QudXNlTWVtbygoKT0+e1xuICAgICAgICB2YXIgX3Byb3BzX2dldE1hcmtlZERheXM7XG4gICAgICAgIGNvbnN0IHdlZWtzR3JpZCA9IGdldERheUdyaWQocHJvcHMpO1xuICAgICAgICBjb25zdCBmaXJzdFZpc2libGVEYXkgPSB3ZWVrc0dyaWRbMV1bMF0ub3JpZ2luYWxEYXRlO1xuICAgICAgICBjb25zdCBsYXN0VmlzaWJsZURheSA9IHdlZWtzR3JpZFt3ZWVrc0dyaWQubGVuZ3RoIC0gMV1bNl0ub3JpZ2luYWxEYXRlO1xuICAgICAgICBjb25zdCBtYXJrZWREYXlzID0gKChfcHJvcHNfZ2V0TWFya2VkRGF5cyA9IHByb3BzLmdldE1hcmtlZERheXMpID09PSBudWxsIHx8IF9wcm9wc19nZXRNYXJrZWREYXlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfZ2V0TWFya2VkRGF5cy5jYWxsKHByb3BzLCBmaXJzdFZpc2libGVEYXksIGxhc3RWaXNpYmxlRGF5KSkgfHwgW107XG4gICAgICAgIC8qKlxuICAgICAqIFdlZWtzIGlzIGEgMkQgYXJyYXkuIFdlZWtzWzBdIGNvbnRhaW5zIHRoZSBsYXN0IHdlZWsgb2YgdGhlIHByaW9yIHJhbmdlLFxuICAgICAqIFdlZWtzW3dlZWtzLmxlbmd0aCAtIDFdIGNvbnRhaW5zIGZpcnN0IHdlZWsgb2YgbmV4dCByYW5nZS4gVGhlc2UgYXJlIGZvciB0cmFuc2l0aW9uIHN0YXRlcy5cbiAgICAgKlxuICAgICAqIFdlZWtzWzEuLi4gd2Vla3MubGVuZ3RoIC0gMl0gY29udGFpbnMgdGhlIGFjdHVhbCB2aXNpYmxlIGRhdGFcbiAgICAgKi8gY29uc3QgcmV0dXJuVmFsdWUgPSBbXTtcbiAgICAgICAgZm9yKGxldCB3ZWVrSW5kZXggPSAwOyB3ZWVrSW5kZXggPCB3ZWVrc0dyaWQubGVuZ3RoOyB3ZWVrSW5kZXgrKyl7XG4gICAgICAgICAgICBjb25zdCB3ZWVrID0gW107XG4gICAgICAgICAgICBmb3IobGV0IGRheUluZGV4ID0gMDsgZGF5SW5kZXggPCBEQVlTX0lOX1dFRUs7IGRheUluZGV4Kyspe1xuICAgICAgICAgICAgICAgIGNvbnN0IGRheSA9IHdlZWtzR3JpZFt3ZWVrSW5kZXhdW2RheUluZGV4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXlJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBvblNlbGVjdGVkOiAoKT0+b25TZWxlY3REYXRlKGRheS5vcmlnaW5hbERhdGUpLFxuICAgICAgICAgICAgICAgICAgICBzZXRSZWY6IGdldFNldFJlZkNhbGxiYWNrKGRheS5rZXkpLFxuICAgICAgICAgICAgICAgICAgICAuLi5kYXksXG4gICAgICAgICAgICAgICAgICAgIGlzTWFya2VkOiBkYXkuaXNNYXJrZWQgfHwgKG1hcmtlZERheXMgPT09IG51bGwgfHwgbWFya2VkRGF5cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWFya2VkRGF5cy5zb21lKChtYXJrZWREYXkpPT5jb21wYXJlRGF0ZXMoZGF5Lm9yaWdpbmFsRGF0ZSwgbWFya2VkRGF5KSkpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB3ZWVrLnB1c2goZGF5SW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5wdXNoKHdlZWspO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICAvLyBUT0RPOiB0aGlzIGlzIG1pc3NpbmcgZGVwcyBvbiBnZXRTZXRSZWZDYWxsYmFjayBhbmQgb25TZWxlY3REYXRlIChhbmQgZGVwZW5kaW5nIG9uIHRoZSBlbnRpcmVcbiAgICAvLyBwcm9wcyBvYmplY3QgbWF5IG5vdCBiZSBhIGdvb2QgaWRlYSBkdWUgdG8gbGlrZWx5IGZyZXF1ZW50IG11dGF0aW9uKS4gSXQgd291bGQgYmUgZWFzeSB0b1xuICAgIC8vIGZpeCBnZXRTZXRSZWZDYWxsYmFjayB0byBub3QgbXV0YXRlIGV2ZXJ5IHJlbmRlciwgYnV0IG9uU2VsZWN0RGF0ZSBpcyBwYXNzZWQgZG93biBmcm9tXG4gICAgLy8gQ2FsZW5kYXIgYW5kIHRyeWluZyB0byBmaXggaXQgcmVxdWlyZXMgYSBodWdlIGNhc2NhZGUgb2YgY2hhbmdlcy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW1xuICAgICAgICBwcm9wc1xuICAgIF0pO1xuICAgIHJldHVybiB3ZWVrcztcbn1cbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUFycm93TmF2aWdhdGlvbkdyb3VwIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdXRpbGl0aWVzJztcbmltcG9ydCB7IGdldEJvdW5kZWREYXRlUmFuZ2UsIGdldERhdGVSYW5nZUFycmF5LCBpc1Jlc3RyaWN0ZWREYXRlLCBEYXRlUmFuZ2VUeXBlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgdXNlQ2FsZW5kYXJEYXlHcmlkU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VDYWxlbmRhckRheUdyaWRTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IENhbGVuZGFyTW9udGhIZWFkZXJSb3cgfSBmcm9tICcuL0NhbGVuZGFyTW9udGhIZWFkZXJSb3cnO1xuaW1wb3J0IHsgQ2FsZW5kYXJHcmlkUm93IH0gZnJvbSAnLi9DYWxlbmRhckdyaWRSb3cnO1xuaW1wb3J0IHsgdXNlV2Vla3MgfSBmcm9tICcuL3VzZVdlZWtzJztcbmltcG9ydCB7IHVzZVdlZWtDb3JuZXJTdHlsZXMgfSBmcm9tICcuL3VzZVdlZWtDb3JuZXJTdHlsZXMuc3R5bGVzJztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmZ1bmN0aW9uIHVzZURheVJlZnMoKSB7XG4gICAgY29uc3QgZGF5c1JlZiA9IFJlYWN0LnVzZVJlZih7fSk7XG4gICAgY29uc3QgZ2V0U2V0UmVmQ2FsbGJhY2sgPSAoZGF5S2V5KT0+KGVsZW1lbnQpPT57XG4gICAgICAgICAgICBpZiAoZWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBkYXlzUmVmLmN1cnJlbnRbZGF5S2V5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF5c1JlZi5jdXJyZW50W2RheUtleV0gPSBlbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIHJldHVybiBbXG4gICAgICAgIGRheXNSZWYsXG4gICAgICAgIGdldFNldFJlZkNhbGxiYWNrXG4gICAgXTtcbn1cbmZ1bmN0aW9uIHVzZUFuaW1hdGVCYWNrd2FyZHMod2Vla3MpIHtcbiAgICBjb25zdCBwcmV2aW91c05hdmlnYXRlZERhdGVSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgcHJldmlvdXNOYXZpZ2F0ZWREYXRlUmVmLmN1cnJlbnQgPSB3ZWVrc1swXVswXS5vcmlnaW5hbERhdGU7XG4gICAgfSk7XG4gICAgY29uc3QgcHJldmlvdXNOYXZpZ2F0ZWREYXRlID0gcHJldmlvdXNOYXZpZ2F0ZWREYXRlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFwcmV2aW91c05hdmlnYXRlZERhdGUgfHwgcHJldmlvdXNOYXZpZ2F0ZWREYXRlLmdldFRpbWUoKSA9PT0gd2Vla3NbMF1bMF0ub3JpZ2luYWxEYXRlLmdldFRpbWUoKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAocHJldmlvdXNOYXZpZ2F0ZWREYXRlIDw9IHdlZWtzWzBdWzBdLm9yaWdpbmFsRGF0ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IENhbGVuZGFyRGF5R3JpZCA9IChwcm9wcyk9PntcbiAgICBjb25zdCBuYXZpZ2F0ZWREYXlSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgYWN0aXZlRGVzY2VuZGFudElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvblNlbGVjdERhdGUgPSAoc2VsZWN0ZWREYXRlKT0+e1xuICAgICAgICB2YXIgX3Byb3BzX29uU2VsZWN0RGF0ZSwgX3Byb3BzX29uTmF2aWdhdGVEYXRlO1xuICAgICAgICBjb25zdCB7IGZpcnN0RGF5T2ZXZWVrLCBtaW5EYXRlLCBtYXhEYXRlLCB3b3JrV2Vla0RheXMsIGRheXNUb1NlbGVjdEluRGF5VmlldywgcmVzdHJpY3RlZERhdGVzIH0gPSBwcm9wcztcbiAgICAgICAgY29uc3QgcmVzdHJpY3RlZERhdGVzT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1pbkRhdGUsXG4gICAgICAgICAgICBtYXhEYXRlLFxuICAgICAgICAgICAgcmVzdHJpY3RlZERhdGVzXG4gICAgICAgIH07XG4gICAgICAgIGxldCBkYXRlUmFuZ2UgPSBnZXREYXRlUmFuZ2VBcnJheShzZWxlY3RlZERhdGUsIGRhdGVSYW5nZVR5cGUsIGZpcnN0RGF5T2ZXZWVrLCB3b3JrV2Vla0RheXMsIGRheXNUb1NlbGVjdEluRGF5Vmlldyk7XG4gICAgICAgIGRhdGVSYW5nZSA9IGdldEJvdW5kZWREYXRlUmFuZ2UoZGF0ZVJhbmdlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICAgICAgZGF0ZVJhbmdlID0gZGF0ZVJhbmdlLmZpbHRlcigoZCk9PntcbiAgICAgICAgICAgIHJldHVybiAhaXNSZXN0cmljdGVkRGF0ZShkLCByZXN0cmljdGVkRGF0ZXNPcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgICAgIChfcHJvcHNfb25TZWxlY3REYXRlID0gcHJvcHMub25TZWxlY3REYXRlKSA9PT0gbnVsbCB8fCBfcHJvcHNfb25TZWxlY3REYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfb25TZWxlY3REYXRlLmNhbGwocHJvcHMsIHNlbGVjdGVkRGF0ZSwgZGF0ZVJhbmdlKTtcbiAgICAgICAgKF9wcm9wc19vbk5hdmlnYXRlRGF0ZSA9IHByb3BzLm9uTmF2aWdhdGVEYXRlKSA9PT0gbnVsbCB8fCBfcHJvcHNfb25OYXZpZ2F0ZURhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbk5hdmlnYXRlRGF0ZS5jYWxsKHByb3BzLCBzZWxlY3RlZERhdGUsIHRydWUpO1xuICAgIH07XG4gICAgY29uc3QgW2RheXNSZWYsIGdldFNldFJlZkNhbGxiYWNrXSA9IHVzZURheVJlZnMoKTtcbiAgICBjb25zdCB3ZWVrcyA9IHVzZVdlZWtzKHByb3BzLCBvblNlbGVjdERhdGUsIGdldFNldFJlZkNhbGxiYWNrKTtcbiAgICBjb25zdCBhbmltYXRlQmFja3dhcmRzID0gdXNlQW5pbWF0ZUJhY2t3YXJkcyh3ZWVrcyk7XG4gICAgY29uc3QgW2dldFdlZWtDb3JuZXJTdHlsZXMsIGNhbGN1bGF0ZVJvdW5kZWRTdHlsZXNdID0gdXNlV2Vla0Nvcm5lclN0eWxlcyhwcm9wcyk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShwcm9wcy5jb21wb25lbnRSZWYsICgpPT4oe1xuICAgICAgICAgICAgZm9jdXMgKCkge1xuICAgICAgICAgICAgICAgIHZhciBfbmF2aWdhdGVkRGF5UmVmX2N1cnJlbnRfZm9jdXMsIF9uYXZpZ2F0ZWREYXlSZWZfY3VycmVudDtcbiAgICAgICAgICAgICAgICAoX25hdmlnYXRlZERheVJlZl9jdXJyZW50ID0gbmF2aWdhdGVkRGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9uYXZpZ2F0ZWREYXlSZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF9uYXZpZ2F0ZWREYXlSZWZfY3VycmVudF9mb2N1cyA9IF9uYXZpZ2F0ZWREYXlSZWZfY3VycmVudC5mb2N1cykgPT09IG51bGwgfHwgX25hdmlnYXRlZERheVJlZl9jdXJyZW50X2ZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbmF2aWdhdGVkRGF5UmVmX2N1cnJlbnRfZm9jdXMuY2FsbChfbmF2aWdhdGVkRGF5UmVmX2N1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgW10pO1xuICAgIC8qKlxuICAgKlxuICAgKiBTZWN0aW9uIGZvciBzZXR0aW5nIGhvdmVyL3ByZXNzZWQgc3R5bGVzLiBCZWNhdXNlIHdlIHdhbnQgYXJiaXRyYXJ5IGJsb2JzIG9mIGRheXMgdG8gYmUgc2VsZWN0YWJsZSwgdG8gc3VwcG9ydFxuICAgKiBoaWdobGlnaHRpbmcgZXZlcnkgZGF5IGluIHRoZSBtb250aCBmb3IgbW9udGggdmlldywgY3NzIDpob3ZlciBzdHlsZSBpc24ndCBlbm91Z2gsIHNvIHdlIG5lZWQgbW91c2UgY2FsbGJhY2tzXG4gICAqIHRvIHNldCBjbGFzc25hbWVzIG9uIGFsbCByZWxldmFudCBjaGlsZCByZWZzIHRvIGFwcGx5IHRoZSBzdHlsaW5nXG4gICAqXG4gICAqLyBjb25zdCBnZXREYXlJbmZvc0luUmFuZ2VPZkRheSA9IChkYXlUb0NvbXBhcmUpPT57XG4gICAgICAgIC8vIFRoZSBob3ZlciBzdGF0ZSBsb29rcyB3ZWlyZCB3aXRoIG5vbi1jb250aWd1b3VzIGRheXMgaW4gd29yayB3ZWVrIHZpZXcuIEluIHdvcmsgd2Vlaywgc2hvdyB3ZWVrIGhvdmVyIHN0YXRlXG4gICAgICAgIGNvbnN0IGRhdGVSYW5nZUhvdmVyVHlwZSA9IGdldERhdGVSYW5nZVR5cGVUb1VzZShwcm9wcy5kYXRlUmFuZ2VUeXBlLCBwcm9wcy53b3JrV2Vla0RheXMpO1xuICAgICAgICAvLyBnZXRzIGFsbCB0aGUgZGF0ZXMgZm9yIHRoZSBnaXZlbiBkYXRlIHJhbmdlIHR5cGUgdGhhdCBhcmUgaW4gdGhlIHNhbWUgZGF0ZSByYW5nZSBhcyB0aGUgZ2l2ZW4gZGF5XG4gICAgICAgIGNvbnN0IGRhdGVSYW5nZSA9IGdldERhdGVSYW5nZUFycmF5KGRheVRvQ29tcGFyZS5vcmlnaW5hbERhdGUsIGRhdGVSYW5nZUhvdmVyVHlwZSwgcHJvcHMuZmlyc3REYXlPZldlZWssIHByb3BzLndvcmtXZWVrRGF5cywgcHJvcHMuZGF5c1RvU2VsZWN0SW5EYXlWaWV3KS5tYXAoKGRhdGUpPT5kYXRlLmdldFRpbWUoKSk7XG4gICAgICAgIC8vIGdldHMgYWxsIHRoZSBkYXkgcmVmcyBmb3IgdGhlIGdpdmVuIGRhdGVzXG4gICAgICAgIGNvbnN0IGRheUluZm9zSW5SYW5nZSA9IHdlZWtzLnJlZHVjZSgoYWNjdW11bGF0ZWRWYWx1ZSwgY3VycmVudFdlZWspPT57XG4gICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0ZWRWYWx1ZS5jb25jYXQoY3VycmVudFdlZWsuZmlsdGVyKCh3ZWVrRGF5KT0+ZGF0ZVJhbmdlLmluZGV4T2Yod2Vla0RheS5vcmlnaW5hbERhdGUuZ2V0VGltZSgpKSAhPT0gLTEpKTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgICByZXR1cm4gZGF5SW5mb3NJblJhbmdlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0UmVmc0Zyb21EYXlJbmZvcyA9IChkYXlJbmZvc0luUmFuZ2UpPT57XG4gICAgICAgIGxldCBkYXlSZWZzID0gW107XG4gICAgICAgIGRheVJlZnMgPSBkYXlJbmZvc0luUmFuZ2UubWFwKChkYXlJbmZvKT0+ZGF5c1JlZi5jdXJyZW50W2RheUluZm8ua2V5XSk7XG4gICAgICAgIHJldHVybiBkYXlSZWZzO1xuICAgIH07XG4gICAgY29uc3QgeyBncmlkTGFiZWwsIGRhdGVSYW5nZVR5cGUsIHNob3dXZWVrTnVtYmVycywgbGFiZWxsZWRCeSwgbGlnaHRlbkRheXNPdXRzaWRlTmF2aWdhdGVkTW9udGgsIGFuaW1hdGlvbkRpcmVjdGlvbiB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IHVzZUNhbGVuZGFyRGF5R3JpZFN0eWxlc191bnN0YWJsZSh7XG4gICAgICAgIGFuaW1hdGVCYWNrd2FyZHMsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvbixcbiAgICAgICAgZGF0ZVJhbmdlVHlwZSxcbiAgICAgICAgbGlnaHRlbkRheXNPdXRzaWRlTmF2aWdhdGVkTW9udGg6IGxpZ2h0ZW5EYXlzT3V0c2lkZU5hdmlnYXRlZE1vbnRoID09PSB1bmRlZmluZWQgPyB0cnVlIDogbGlnaHRlbkRheXNPdXRzaWRlTmF2aWdhdGVkTW9udGgsXG4gICAgICAgIHNob3dXZWVrTnVtYmVyc1xuICAgIH0pO1xuICAgIC8vIFdoZW4gdGhlIG1vbnRoIGlzIGhpZ2hsaWdodGVkIGdldCB0aGUgY29ybmVyIGRhdGVzIHNvIHRoYXQgc3R5bGVzIGNhbiBiZSBhZGRlZCB0byB0aGVtXG4gICAgY29uc3Qgd2Vla0Nvcm5lcnMgPSBnZXRXZWVrQ29ybmVyU3R5bGVzKHdlZWtzKTtcbiAgICBjb25zdCBwYXJ0aWFsV2Vla1Byb3BzID0ge1xuICAgICAgICB3ZWVrcyxcbiAgICAgICAgbmF2aWdhdGVkRGF5UmVmLFxuICAgICAgICBjYWxjdWxhdGVSb3VuZGVkU3R5bGVzLFxuICAgICAgICBhY3RpdmVEZXNjZW5kYW50SWQsXG4gICAgICAgIGNsYXNzTmFtZXMsXG4gICAgICAgIHdlZWtDb3JuZXJzLFxuICAgICAgICBnZXREYXlJbmZvc0luUmFuZ2VPZkRheSxcbiAgICAgICAgZ2V0UmVmc0Zyb21EYXlJbmZvc1xuICAgIH07XG4gICAgY29uc3QgYXJyb3dOYXZpZ2F0aW9uQXR0cmlidXRlcyA9IHVzZUFycm93TmF2aWdhdGlvbkdyb3VwKHtcbiAgICAgICAgYXhpczogJ2dyaWQnXG4gICAgfSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcInRhYmxlXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoY2xhc3NOYW1lcy50YWJsZSwgcHJvcHMuY2xhc3NOYW1lKSxcbiAgICAgICAgXCJhcmlhLW11bHRpc2VsZWN0YWJsZVwiOiBcImZhbHNlXCIsXG4gICAgICAgIFwiYXJpYS1sYWJlbFwiOiBncmlkTGFiZWwsXG4gICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGxhYmVsbGVkQnksXG4gICAgICAgIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6IGFjdGl2ZURlc2NlbmRhbnRJZCxcbiAgICAgICAgcm9sZTogXCJncmlkXCIsXG4gICAgICAgIC4uLmFycm93TmF2aWdhdGlvbkF0dHJpYnV0ZXNcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0Ym9keVwiLCBudWxsLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJNb250aEhlYWRlclJvdywge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgY2xhc3NOYW1lczogY2xhc3NOYW1lcyxcbiAgICAgICAgd2Vla3M6IHdlZWtzXG4gICAgfSksIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDYWxlbmRhckdyaWRSb3csIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLnBhcnRpYWxXZWVrUHJvcHMsXG4gICAgICAgIHdlZWs6IHdlZWtzWzBdLFxuICAgICAgICB3ZWVrSW5kZXg6IC0xLFxuICAgICAgICByb3dDbGFzc05hbWU6IGNsYXNzTmFtZXMuZmlyc3RUcmFuc2l0aW9uV2VlayxcbiAgICAgICAgXCJhcmlhLXJvbGVcIjogXCJwcmVzZW50YXRpb25cIixcbiAgICAgICAgYXJpYUhpZGRlbjogdHJ1ZVxuICAgIH0pLCB3ZWVrcy5zbGljZSgxLCB3ZWVrcy5sZW5ndGggLSAxKS5tYXAoKHdlZWssIHdlZWtJbmRleCk9Pi8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDYWxlbmRhckdyaWRSb3csIHtcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAgLi4ucGFydGlhbFdlZWtQcm9wcyxcbiAgICAgICAgICAgIGtleTogd2Vla0luZGV4LFxuICAgICAgICAgICAgd2Vlazogd2VlayxcbiAgICAgICAgICAgIHdlZWtJbmRleDogd2Vla0luZGV4LFxuICAgICAgICAgICAgcm93Q2xhc3NOYW1lOiBjbGFzc05hbWVzLndlZWtSb3dcbiAgICAgICAgfSkpLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJHcmlkUm93LCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICAuLi5wYXJ0aWFsV2Vla1Byb3BzLFxuICAgICAgICB3ZWVrOiB3ZWVrc1t3ZWVrcy5sZW5ndGggLSAxXSxcbiAgICAgICAgd2Vla0luZGV4OiAtMixcbiAgICAgICAgcm93Q2xhc3NOYW1lOiBjbGFzc05hbWVzLmxhc3RUcmFuc2l0aW9uV2VlayxcbiAgICAgICAgXCJhcmlhLXJvbGVcIjogXCJwcmVzZW50YXRpb25cIixcbiAgICAgICAgYXJpYUhpZGRlbjogdHJ1ZVxuICAgIH0pKSk7XG59O1xuQ2FsZW5kYXJEYXlHcmlkLmRpc3BsYXlOYW1lID0gJ0NhbGVuZGFyRGF5R3JpZCc7XG4vKipcbiAqIFdoZW4gZ2l2ZW4gd29yayB3ZWVrLCBpZiB0aGUgZGF5cyBhcmUgbm9uLWNvbnRpZ3VvdXMsIHRoZSBob3ZlciBzdGF0ZXMgbG9vayByZWFsbHkgd2VpcmQuIFNvIGZvciBub24tY29udGlndW91c1xuICogd29yayB3ZWVrcywgd2UnbGwganVzdCBzaG93IHdlZWsgdmlldyBpbnN0ZWFkLlxuICovIGZ1bmN0aW9uIGdldERhdGVSYW5nZVR5cGVUb1VzZShkYXRlUmFuZ2VUeXBlLCB3b3JrV2Vla0RheXMpIHtcbiAgICBpZiAod29ya1dlZWtEYXlzICYmIGRhdGVSYW5nZVR5cGUgPT09IERhdGVSYW5nZVR5cGUuV29ya1dlZWspIHtcbiAgICAgICAgY29uc3Qgc29ydGVkV1dEYXlzID0gd29ya1dlZWtEYXlzLnNsaWNlKCkuc29ydCgpO1xuICAgICAgICBsZXQgaXNDb250aWd1b3VzID0gdHJ1ZTtcbiAgICAgICAgZm9yKGxldCBpID0gMTsgaSA8IHNvcnRlZFdXRGF5cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBpZiAoc29ydGVkV1dEYXlzW2ldICE9PSBzb3J0ZWRXV0RheXNbaSAtIDFdICsgMSkge1xuICAgICAgICAgICAgICAgIGlzQ29udGlndW91cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaXNDb250aWd1b3VzIHx8IHdvcmtXZWVrRGF5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlUmFuZ2VUeXBlLldlZWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGVSYW5nZVR5cGU7XG59XG4iLCJpbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0JztcbmltcG9ydCB7IERVUkFUSU9OXzIsIEVBU0lOR19GVU5DVElPTl8yLCBGQURFX0lOIH0gZnJvbSAnLi4vLi4vdXRpbHMvYW5pbWF0aW9ucyc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgY2FsZW5kYXJEYXlDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLUNhbGVuZGFyRGF5JyxcbiAgaGVhZGVyOiAnZnVpLUNhbGVuZGFyRGF5X19oZWFkZXInLFxuICBtb250aEFuZFllYXI6ICdmdWktQ2FsZW5kYXJEYXlfX21vbnRoQW5kWWVhcicsXG4gIG1vbnRoQ29tcG9uZW50czogJ2Z1aS1DYWxlbmRhckRheV9fbW9udGhDb21wb25lbnRzJyxcbiAgaGVhZGVySWNvbkJ1dHRvbjogJ2Z1aS1DYWxlbmRhckRheV9faGVhZGVySWNvbkJ1dHRvbicsXG4gIGRpc2FibGVkU3R5bGU6ICdmdWktQ2FsZW5kYXJEYXlfX2Rpc2FibGVkU3R5bGUnXG59O1xuY29uc3QgdXNlUm9vdFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCN2NrODRkOiBcImYxZTRscWx6XCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxc3k0a3I0XCIsXG4gICAgYTliNjc3OiBcImY0bTJhaGNcIlxuICB9LFxuICBub3JtYWxpemU6IHtcbiAgICBFNXBpem86IFwiZjFjb3VobDNcIixcbiAgICBCN2NrODRkOiBcImYxZXd0cWNsXCIsXG4gICAganJhcGt5OiAwLFxuICAgIEZyZzZmMzogMCxcbiAgICB0MjFjcTA6IDAsXG4gICAgQjZvZjNqYTogMCxcbiAgICBCNzRzemxrOiBcImYxczE4NGFvXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbWs4bGFpXCJcbiAgfSxcbiAgc2hvd1dlZWtOdW1iZXJzOiB7XG4gICAgYTliNjc3OiBcImZsNTI0cWtcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMWU0bHFsentib3gtc2l6aW5nOmNvbnRlbnQtYm94O31cIiwgW1wiLmYxc3k0a3I0e3BhZGRpbmc6MTJweDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjRtMmFoY3t3aWR0aDoxOTZweDt9XCIsIFwiLmYxY291aGwze2JveC1zaGFkb3c6bm9uZTt9XCIsIFwiLmYxZXd0cWNse2JveC1zaXppbmc6Ym9yZGVyLWJveDt9XCIsIFtcIi5mMXMxODRhb3ttYXJnaW46MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxbWs4bGFpe3BhZGRpbmc6MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZmw1MjRxa3t3aWR0aDoyMjZweDt9XCJdXG59KTtcbmNvbnN0IHVzZUhlYWRlclN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBtYzlsNXg6IFwiZnR1d3h1NlwiLFxuICAgIEJxZW52aWo6IFwiZnhsZGFvOVwiLFxuICAgIEJnOTZnd3A6IFwiZjF2enltZ29cIixcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBhOWI2Nzc6IFwiZmx5NXgzZlwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZ0dXd4dTZ7ZGlzcGxheTppbmxpbmUtZmxleDt9XCIsIFwiLmZ4bGRhbzl7aGVpZ2h0OjI4cHg7fVwiLCBcIi5mMXZ6eW1nb3tsaW5lLWhlaWdodDo0NHB4O31cIiwgXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBcIi5mbHk1eDNme3dpZHRoOjEwMCU7fVwiXVxufSk7XG5jb25zdCB1c2VNb250aEFuZFllYXJTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgaWN2eW90OiBcImYxZXJuNDVlXCIsXG4gICAgdnJhZmp4OiBbXCJmMW43MW90blwiLCBcImYxZGVlZml3XCJdLFxuICAgIG9pdmp3ZTogXCJmMWg4aGI3N1wiLFxuICAgIHd2cHFlNTogW1wiZjFkZWVmaXdcIiwgXCJmMW43MW90blwiXSxcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmdDg1bnA1XCIsXG4gICAgc2o1NXpkOiBcImYxOW4wZTVcIixcbiAgICBtYzlsNXg6IFwiZjE0dDNuczBcIixcbiAgICBCaDY3OTVyOiBcImZxZXJvcnhcIixcbiAgICBCYWhxdHJmOiBcImYxbW8waWJwXCIsXG4gICAgQmUydHdkNzogXCJma2hqNTA4XCIsXG4gICAgQmhyZDd6cDogXCJmbDQzdWVmXCIsXG4gICAgQmc5Nmd3cDogXCJmMzM2dGp3XCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFtcImYxdGQ4bWN2XCIsIFwiZjF1ZGtkeG9cIl0sXG4gICAgZnNvdzZmOiBbXCJmMW83MDBhdlwiLCBcImZlczN0Y3pcIl0sXG4gICAgeWduNDR5OiBcImYxY21idXdqXCIsXG4gICAgSHVjZTcxOiBcImZ6NXN0aXhcIlxuICB9LFxuICBhbmltYXRpb246IHtcbiAgICB2aW4xN2Q6IFwiZmhzcW5zblwiLFxuICAgIEJmNWZjczogXCJmeXd5cHRlXCIsXG4gICAgQnYxMnliMzogXCJmMWg3dTUycFwiLFxuICAgIEV6a24zYjogXCJmanE0Yzk0XCJcbiAgfSxcbiAgaGVhZGVySXNDbGlja2FibGU6IHtcbiAgICBKd2VmOHk6IFwiZjE4YTBmd2ZcIixcbiAgICBCaTkxazljOiBcImYzc2RhZWdcIixcbiAgICBlb2F2cWQ6IFwiZjg0OTFkeFwiLFxuICAgIHB1Z2ZtNDogMCxcbiAgICB1a2diMmk6IDAsXG4gICAgRHd0eWhtOiAwLFxuICAgIEJpaXNxMHM6IFwiZjE1cnBvazRcIixcbiAgICBpcm8zem06IFwiZjF3dmtndm9cIixcbiAgICBCMmQ1M2ZxOiBcImYxd2RvYXFkXCIsXG4gICAgYzNpejcyOiBcImYxM2MwdDdoXCIsXG4gICAgbWdocm8wOiAwLFxuICAgIEJ4Njh5YjogMCxcbiAgICBzeW9qZDk6IDAsXG4gICAgRTVoeWx4OiBcImZ5MnNjYWtcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTIybjU5e2FsaWduLWl0ZW1zOmNlbnRlcjt9XCIsIFwiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgXCIuZjFlcm40NWV7Ym9yZGVyLXRvcC1zdHlsZTpub25lO31cIiwgXCIuZjFuNzFvdG57Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmU7fVwiLCBcIi5mMWRlZWZpd3tib3JkZXItbGVmdC1zdHlsZTpub25lO31cIiwgXCIuZjFoOGhiNzd7Ym9yZGVyLWJvdHRvbS1zdHlsZTpub25lO31cIiwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmYxNHQzbnMwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO31cIiwgXCIuZnFlcm9yeHtmbGV4LWdyb3c6MTt9XCIsIFwiLmYxbW8waWJwe2ZvbnQtZmFtaWx5OmluaGVyaXQ7fVwiLCBcIi5ma2hqNTA4e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UzMDApO31cIiwgXCIuZmw0M3VlZntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0U2VtaWJvbGQpO31cIiwgXCIuZjMzNnRqd3tsaW5lLWhlaWdodDoyOHB4O31cIiwgW1wiLmYxYTNwMXZwe292ZXJmbG93OmhpZGRlbjt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxdGQ4bWN2e3BhZGRpbmc6MCA0cHggMCAxMHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjF1ZGtkeG97cGFkZGluZzowIDEwcHggMCA0cHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxbzcwMGF2e3RleHQtYWxpZ246bGVmdDt9XCIsIFwiLmZlczN0Y3p7dGV4dC1hbGlnbjpyaWdodDt9XCIsIFwiLmYxY21idXdqe3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7fVwiLCBcIi5mejVzdGl4e3doaXRlLXNwYWNlOm5vd3JhcDt9XCIsIFwiLmZoc3Fuc257YW5pbWF0aW9uLWR1cmF0aW9uOjAuMjY3czt9XCIsIFwiLmZ5d3lwdGV7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO31cIiwgXCIuZjFoN3U1MnB7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaTt9XCIsIFwiLmZqcTRjOTR7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjEsLjI1LC43NSwuOSk7fVwiXSxcbiAgazogW1wiQGtleWZyYW1lcyBmNWo4Ymlpe2Zyb217b3BhY2l0eTowO310b3tvcGFjaXR5OjE7fX1cIl0sXG4gIGg6IFtcIi5mMThhMGZ3Zjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRIb3Zlcik7fVwiLCBcIi5mM3NkYWVnOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodEhvdmVyKTt9XCIsIFwiLmY4NDkxZHg6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7fVwiLCBbXCIuZjE1cnBvazQ6aG92ZXJ7b3V0bGluZToxcHggc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxd3ZrZ3ZvOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKTt9XCIsIFwiLmYxd2RvYXFkOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHRQcmVzc2VkKTt9XCIsIFwiLmYxM2MwdDdoOmhvdmVyOmFjdGl2ZXtjdXJzb3I6cG9pbnRlcjt9XCIsIFtcIi5meTJzY2FrOmhvdmVyOmFjdGl2ZXtvdXRsaW5lOjFweCBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XV1cbn0pO1xuY29uc3QgdXNlTW9udGhDb21wb25lbnRzU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIHFiMmRtYTogXCJmcHlkZmRjXCIsXG4gICAgbWM5bDV4OiBcImZ0dXd4dTZcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mcHlkZmRje2FsaWduLXNlbGY6ZmxleC1lbmQ7fVwiLCBcIi5mdHV3eHU2e2Rpc3BsYXk6aW5saW5lLWZsZXg7fVwiXVxufSk7XG5jb25zdCB1c2VIZWFkZXJJY29uQnV0dG9uU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIERlM3B6cTogXCJmMWMyMWR3aFwiLFxuICAgIGljdnlvdDogXCJmMWVybjQ1ZVwiLFxuICAgIHZyYWZqeDogW1wiZjFuNzFvdG5cIiwgXCJmMWRlZWZpd1wiXSxcbiAgICBvaXZqd2U6IFwiZjFoOGhiNzdcIixcbiAgICB3dnBxZTU6IFtcImYxZGVlZml3XCIsIFwiZjFuNzFvdG5cIl0sXG4gICAgQmV5ZmE2eTogMCxcbiAgICBCYm1iN2VwOiAwLFxuICAgIEJ0bDQzbmk6IDAsXG4gICAgQjdvajZqYTogMCxcbiAgICBEaW1hcmE6IFwiZnQ4NW5wNVwiLFxuICAgIHNqNTV6ZDogXCJmMTFkNGtwblwiLFxuICAgIG1jOWw1eDogXCJmdGdtMzA0XCIsXG4gICAgQmFocXRyZjogXCJmMW1vMGlicFwiLFxuICAgIEJlMnR3ZDc6IFwiZnk5cmtuY1wiLFxuICAgIEJxZW52aWo6IFwiZnhsZGFvOVwiLFxuICAgIEJnOTZnd3A6IFwiZjMzNnRqd1wiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxZ2w4MXRnXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbWs4bGFpXCIsXG4gICAgcWhmOHhxOiBcImYxMHBpMTNuXCIsXG4gICAgZnNvdzZmOiBcImYxN21jY2xhXCIsXG4gICAgYTliNjc3OiBcImYxdzlkY2hrXCIsXG4gICAgSndlZjh5OiBcImYxOGEwZndmXCIsXG4gICAgQmk5MWs5YzogXCJmM3NkYWVnXCIsXG4gICAgZW9hdnFkOiBcImY4NDkxZHhcIixcbiAgICBwdWdmbTQ6IDAsXG4gICAgdWtnYjJpOiAwLFxuICAgIER3dHlobTogMCxcbiAgICBCaWlzcTBzOiBcImYxNXJwb2s0XCIsXG4gICAgaXJvM3ptOiBcImYxd3ZrZ3ZvXCIsXG4gICAgQjJkNTNmcTogXCJmMXdkb2FxZFwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgXCIuZjFlcm40NWV7Ym9yZGVyLXRvcC1zdHlsZTpub25lO31cIiwgXCIuZjFuNzFvdG57Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmU7fVwiLCBcIi5mMWRlZWZpd3tib3JkZXItbGVmdC1zdHlsZTpub25lO31cIiwgXCIuZjFoOGhiNzd7Ym9yZGVyLWJvdHRvbS1zdHlsZTpub25lO31cIiwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTFkNGtwbntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMyk7fVwiLCBcIi5mdGdtMzA0e2Rpc3BsYXk6YmxvY2s7fVwiLCBcIi5mMW1vMGlicHtmb250LWZhbWlseTppbmhlcml0O31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZ4bGRhbzl7aGVpZ2h0OjI4cHg7fVwiLCBcIi5mMzM2dGp3e2xpbmUtaGVpZ2h0OjI4cHg7fVwiLCBbXCIuZjFnbDgxdGd7b3ZlcmZsb3c6dmlzaWJsZTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxbWs4bGFpe3BhZGRpbmc6MDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjEwcGkxM257cG9zaXRpb246cmVsYXRpdmU7fVwiLCBcIi5mMTdtY2NsYXt0ZXh0LWFsaWduOmNlbnRlcjt9XCIsIFwiLmYxdzlkY2hre3dpZHRoOjI4cHg7fVwiXSxcbiAgaDogW1wiLmYxOGEwZndmOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZEhvdmVyKTt9XCIsIFwiLmYzc2RhZWc6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmRPbkxpZ2h0SG92ZXIpO31cIiwgXCIuZjg0OTFkeDpob3ZlcntjdXJzb3I6cG9pbnRlcjt9XCIsIFtcIi5mMTVycG9rNDpob3ZlcntvdXRsaW5lOjFweCBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgXCIuZjF3dmtndm86aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZFByZXNzZWQpO31cIiwgXCIuZjF3ZG9hcWQ6aG92ZXI6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodFByZXNzZWQpO31cIl1cbn0pO1xuY29uc3QgdXNlRGlzYWJsZWRTdHlsZVN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCZzMzaXZtOiBcImYxb2VsZ216XCIsXG4gICAgdDY5d2cwOiBcImZoaDFla2pcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMW9lbGdteiwuZjFvZWxnbXo6ZGlzYWJsZWQsLmYxb2VsZ216IGJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kRGlzYWJsZWQpO31cIiwgXCIuZmhoMWVraiwuZmhoMWVrajpkaXNhYmxlZCwuZmhoMWVraiBidXR0b257cG9pbnRlci1ldmVudHM6bm9uZTt9XCJdXG59KTtcbi8qKlxuICogQGludGVybmFsXG4gKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgQ2FsZW5kYXJEYXkgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VDYWxlbmRhckRheVN0eWxlc191bnN0YWJsZSA9IHByb3BzID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICBjb25zdCByb290U3R5bGVzID0gdXNlUm9vdFN0eWxlcygpO1xuICBjb25zdCBoZWFkZXJTdHlsZXMgPSB1c2VIZWFkZXJTdHlsZXMoKTtcbiAgY29uc3QgbW9udGhBbmRZZWFyU3R5bGVzID0gdXNlTW9udGhBbmRZZWFyU3R5bGVzKCk7XG4gIGNvbnN0IG1vbnRoQ29tcG9uZW50c1N0eWxlcyA9IHVzZU1vbnRoQ29tcG9uZW50c1N0eWxlcygpO1xuICBjb25zdCBoZWFkZXJJY29uQnV0dG9uU3R5bGVzID0gdXNlSGVhZGVySWNvbkJ1dHRvblN0eWxlcygpO1xuICBjb25zdCBkaXNhYmxlZFN0eWxlU3R5bGVzID0gdXNlRGlzYWJsZWRTdHlsZVN0eWxlcygpO1xuICBjb25zdCB7XG4gICAgY2xhc3NOYW1lLFxuICAgIGhlYWRlcklzQ2xpY2thYmxlLFxuICAgIHNob3dXZWVrTnVtYmVyc1xuICB9ID0gcHJvcHM7XG4gIHJldHVybiB7XG4gICAgcm9vdDogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5Q2xhc3NOYW1lcy5yb290LCByb290U3R5bGVzLm5vcm1hbGl6ZSwgcm9vdFN0eWxlcy5iYXNlLCBzaG93V2Vla051bWJlcnMgJiYgcm9vdFN0eWxlcy5zaG93V2Vla051bWJlcnMsIGNsYXNzTmFtZSksXG4gICAgaGVhZGVyOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlDbGFzc05hbWVzLmhlYWRlciwgaGVhZGVyU3R5bGVzLmJhc2UpLFxuICAgIG1vbnRoQW5kWWVhcjogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5Q2xhc3NOYW1lcy5tb250aEFuZFllYXIsIG1vbnRoQW5kWWVhclN0eWxlcy5iYXNlLCBtb250aEFuZFllYXJTdHlsZXMuYW5pbWF0aW9uLCBoZWFkZXJJc0NsaWNrYWJsZSAmJiBtb250aEFuZFllYXJTdHlsZXMuaGVhZGVySXNDbGlja2FibGUpLFxuICAgIG1vbnRoQ29tcG9uZW50czogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5Q2xhc3NOYW1lcy5tb250aENvbXBvbmVudHMsIG1vbnRoQ29tcG9uZW50c1N0eWxlcy5iYXNlKSxcbiAgICBoZWFkZXJJY29uQnV0dG9uOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJEYXlDbGFzc05hbWVzLmhlYWRlckljb25CdXR0b24sIGhlYWRlckljb25CdXR0b25TdHlsZXMuYmFzZSksXG4gICAgZGlzYWJsZWRTdHlsZTogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyRGF5Q2xhc3NOYW1lcy5kaXNhYmxlZFN0eWxlLCBkaXNhYmxlZFN0eWxlU3R5bGVzLmJhc2UpXG4gIH07XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlQ2FsZW5kYXJEYXlTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEVudGVyIH0gZnJvbSAnQGZsdWVudHVpL2tleWJvYXJkLWtleXMnO1xuaW1wb3J0IHsgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgYWRkTW9udGhzLCBjb21wYXJlRGF0ZVBhcnQsIGdldE1vbnRoRW5kLCBnZXRNb250aFN0YXJ0IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlHcmlkIH0gZnJvbSAnLi4vQ2FsZW5kYXJEYXlHcmlkL0NhbGVuZGFyRGF5R3JpZCc7XG5pbXBvcnQgeyB1c2VDYWxlbmRhckRheVN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlQ2FsZW5kYXJEYXlTdHlsZXMuc3R5bGVzJztcbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IENhbGVuZGFyRGF5ID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IGRheUdyaWQgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShwcm9wcy5jb21wb25lbnRSZWYsICgpPT4oe1xuICAgICAgICAgICAgZm9jdXMgKCkge1xuICAgICAgICAgICAgICAgIHZhciBfZGF5R3JpZF9jdXJyZW50X2ZvY3VzLCBfZGF5R3JpZF9jdXJyZW50O1xuICAgICAgICAgICAgICAgIChfZGF5R3JpZF9jdXJyZW50ID0gZGF5R3JpZC5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZGF5R3JpZF9jdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX2RheUdyaWRfY3VycmVudF9mb2N1cyA9IF9kYXlHcmlkX2N1cnJlbnQuZm9jdXMpID09PSBudWxsIHx8IF9kYXlHcmlkX2N1cnJlbnRfZm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kYXlHcmlkX2N1cnJlbnRfZm9jdXMuY2FsbChfZGF5R3JpZF9jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIFtdKTtcbiAgICBjb25zdCB7IHN0cmluZ3MsIGdyaWRMYWJlbCwgbmF2aWdhdGVkRGF0ZSwgZGF0ZVRpbWVGb3JtYXR0ZXIsIGNsYXNzTmFtZSwgb25IZWFkZXJTZWxlY3QsIHNob3dTaXhXZWVrc0J5RGVmYXVsdCwgbWluRGF0ZSwgbWF4RGF0ZSwgcmVzdHJpY3RlZERhdGVzLCBvbk5hdmlnYXRlRGF0ZSwgc2hvd1dlZWtOdW1iZXJzLCBkYXRlUmFuZ2VUeXBlLCBhbmltYXRpb25EaXJlY3Rpb24gfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhckRheVN0eWxlc191bnN0YWJsZSh7XG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgaGVhZGVySXNDbGlja2FibGU6ICEhb25IZWFkZXJTZWxlY3QsXG4gICAgICAgIHNob3dXZWVrTnVtYmVycyxcbiAgICAgICAgYW5pbWF0aW9uRGlyZWN0aW9uXG4gICAgfSk7XG4gICAgY29uc3QgbW9udGhBbmRZZWFyID0gZGF0ZVRpbWVGb3JtYXR0ZXIuZm9ybWF0TW9udGhZZWFyKG5hdmlnYXRlZERhdGUsIHN0cmluZ3MpO1xuICAgIGNvbnN0IEhlYWRlckJ1dHRvbkNvbXBvbmVudFR5cGUgPSBvbkhlYWRlclNlbGVjdCA/ICdidXR0b24nIDogJ2Rpdic7XG4gICAgY29uc3QgaGVhZGVyQXJpYUxhYmVsID0gc3RyaW5ncy55ZWFyUGlja2VySGVhZGVyQXJpYUxhYmVsID8gc3RyaW5ncy55ZWFyUGlja2VySGVhZGVyQXJpYUxhYmVsLnJlcGxhY2UoJ3swfScsIG1vbnRoQW5kWWVhcikgOiBtb250aEFuZFllYXI7XG4gICAgY29uc3QgeyAuLi5wcm9wc1dpdGhvdXRTdHlsZXMgfSA9IHByb3BzO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMucm9vdFxuICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5oZWFkZXJcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSGVhZGVyQnV0dG9uQ29tcG9uZW50VHlwZSwge1xuICAgICAgICBcImFyaWEtbGFiZWxcIjogb25IZWFkZXJTZWxlY3QgPyBoZWFkZXJBcmlhTGFiZWwgOiB1bmRlZmluZWQsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5tb250aEFuZFllYXIsXG4gICAgICAgIG9uQ2xpY2s6IG9uSGVhZGVyU2VsZWN0LFxuICAgICAgICB0YWJJbmRleDogb25IZWFkZXJTZWxlY3QgPyAwIDogLTEsXG4gICAgICAgIG9uS2V5RG93bjogb25CdXR0b25LZXlEb3duKG9uSGVhZGVyU2VsZWN0KSxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBcImFyaWEtbGl2ZVwiOiBcInBvbGl0ZVwiLFxuICAgICAgICBcImFyaWEtYXRvbWljXCI6IFwidHJ1ZVwiXG4gICAgfSwgbW9udGhBbmRZZWFyKSksIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDYWxlbmRhckRheU5hdmlnYXRpb25CdXR0b25zLCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBjbGFzc05hbWVzOiBjbGFzc05hbWVzXG4gICAgfSkpLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJEYXlHcmlkLCB7XG4gICAgICAgIC4uLnByb3BzV2l0aG91dFN0eWxlcyxcbiAgICAgICAgZ3JpZExhYmVsOiBgJHttb250aEFuZFllYXJ9LCAke2dyaWRMYWJlbH1gLFxuICAgICAgICBjb21wb25lbnRSZWY6IGRheUdyaWQsXG4gICAgICAgIHN0cmluZ3M6IHN0cmluZ3MsXG4gICAgICAgIG5hdmlnYXRlZERhdGU6IG5hdmlnYXRlZERhdGUsXG4gICAgICAgIHdlZWtzVG9TaG93OiBzaG93U2l4V2Vla3NCeURlZmF1bHQgPyA2IDogdW5kZWZpbmVkLFxuICAgICAgICBkYXRlVGltZUZvcm1hdHRlcjogZGF0ZVRpbWVGb3JtYXR0ZXIsXG4gICAgICAgIG1pbkRhdGU6IG1pbkRhdGUsXG4gICAgICAgIG1heERhdGU6IG1heERhdGUsXG4gICAgICAgIHJlc3RyaWN0ZWREYXRlczogcmVzdHJpY3RlZERhdGVzLFxuICAgICAgICBvbk5hdmlnYXRlRGF0ZTogb25OYXZpZ2F0ZURhdGUsXG4gICAgICAgIGRhdGVSYW5nZVR5cGU6IGRhdGVSYW5nZVR5cGVcbiAgICB9KSk7XG59O1xuQ2FsZW5kYXJEYXkuZGlzcGxheU5hbWUgPSAnQ2FsZW5kYXJEYXknO1xuY29uc3QgQ2FsZW5kYXJEYXlOYXZpZ2F0aW9uQnV0dG9ucyA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IG1pbkRhdGUsIG1heERhdGUsIG5hdmlnYXRlZERhdGUsIG5hdmlnYXRpb25JY29ucywgYWxsRm9jdXNhYmxlLCBzdHJpbmdzLCBzaG93Q2xvc2VCdXR0b24sIGNsYXNzTmFtZXMsIG9uTmF2aWdhdGVEYXRlLCBvbkRpc21pc3MgfSA9IHByb3BzO1xuICAgIGNvbnN0IG9uU2VsZWN0TmV4dE1vbnRoID0gKCk9PntcbiAgICAgICAgb25OYXZpZ2F0ZURhdGUoYWRkTW9udGhzKG5hdmlnYXRlZERhdGUsIDEpLCBmYWxzZSk7XG4gICAgfTtcbiAgICBjb25zdCBvblNlbGVjdFByZXZNb250aCA9ICgpPT57XG4gICAgICAgIG9uTmF2aWdhdGVEYXRlKGFkZE1vbnRocyhuYXZpZ2F0ZWREYXRlLCAtMSksIGZhbHNlKTtcbiAgICB9O1xuICAgIC8vIGRldGVybWluZSBpZiBwcmV2aW91cy9uZXh0IG1vbnRocyBhcmUgaW4gYm91bmRzXG4gICAgY29uc3QgcHJldk1vbnRoSW5Cb3VuZHMgPSBtaW5EYXRlID8gY29tcGFyZURhdGVQYXJ0KG1pbkRhdGUsIGdldE1vbnRoU3RhcnQobmF2aWdhdGVkRGF0ZSkpIDwgMCA6IHRydWU7XG4gICAgY29uc3QgbmV4dE1vbnRoSW5Cb3VuZHMgPSBtYXhEYXRlID8gY29tcGFyZURhdGVQYXJ0KGdldE1vbnRoRW5kKG5hdmlnYXRlZERhdGUpLCBtYXhEYXRlKSA8IDAgOiB0cnVlO1xuICAgIC8vIHVzZSBhcmlhLWRpc2FibGVkIGluc3RlYWQgb2YgZGlzYWJsZWQgc28gZm9jdXMgaXMgbm90IGxvc3RcbiAgICAvLyB3aGVuIGEgcHJldi9uZXh0IGJ1dHRvbiBiZWNvbWVzIGRpc2FibGVkIGFmdGVyIGJlaW5nIGNsaWNrZWRcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm1vbnRoQ29tcG9uZW50c1xuICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGNsYXNzTmFtZXMuaGVhZGVySWNvbkJ1dHRvbiwgIXByZXZNb250aEluQm91bmRzICYmIGNsYXNzTmFtZXMuZGlzYWJsZWRTdHlsZSksXG4gICAgICAgIHRhYkluZGV4OiBwcmV2TW9udGhJbkJvdW5kcyA/IHVuZGVmaW5lZCA6IGFsbEZvY3VzYWJsZSA/IDAgOiAtMSxcbiAgICAgICAgXCJhcmlhLWRpc2FibGVkXCI6ICFwcmV2TW9udGhJbkJvdW5kcyxcbiAgICAgICAgb25DbGljazogcHJldk1vbnRoSW5Cb3VuZHMgPyBvblNlbGVjdFByZXZNb250aCA6IHVuZGVmaW5lZCxcbiAgICAgICAgb25LZXlEb3duOiBwcmV2TW9udGhJbkJvdW5kcyA/IG9uQnV0dG9uS2V5RG93bihvblNlbGVjdFByZXZNb250aCkgOiB1bmRlZmluZWQsXG4gICAgICAgIHRpdGxlOiBzdHJpbmdzLnByZXZNb250aEFyaWFMYWJlbCA/IHN0cmluZ3MucHJldk1vbnRoQXJpYUxhYmVsICsgJyAnICsgc3RyaW5ncy5tb250aHNbYWRkTW9udGhzKG5hdmlnYXRlZERhdGUsIC0xKS5nZXRNb250aCgpXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgIH0sIG5hdmlnYXRpb25JY29ucy51cE5hdmlnYXRpb24pLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhjbGFzc05hbWVzLmhlYWRlckljb25CdXR0b24sICFuZXh0TW9udGhJbkJvdW5kcyAmJiBjbGFzc05hbWVzLmRpc2FibGVkU3R5bGUpLFxuICAgICAgICB0YWJJbmRleDogbmV4dE1vbnRoSW5Cb3VuZHMgPyB1bmRlZmluZWQgOiBhbGxGb2N1c2FibGUgPyAwIDogLTEsXG4gICAgICAgIFwiYXJpYS1kaXNhYmxlZFwiOiAhbmV4dE1vbnRoSW5Cb3VuZHMsXG4gICAgICAgIG9uQ2xpY2s6IG5leHRNb250aEluQm91bmRzID8gb25TZWxlY3ROZXh0TW9udGggOiB1bmRlZmluZWQsXG4gICAgICAgIG9uS2V5RG93bjogbmV4dE1vbnRoSW5Cb3VuZHMgPyBvbkJ1dHRvbktleURvd24ob25TZWxlY3ROZXh0TW9udGgpIDogdW5kZWZpbmVkLFxuICAgICAgICB0aXRsZTogc3RyaW5ncy5uZXh0TW9udGhBcmlhTGFiZWwgPyBzdHJpbmdzLm5leHRNb250aEFyaWFMYWJlbCArICcgJyArIHN0cmluZ3MubW9udGhzW2FkZE1vbnRocyhuYXZpZ2F0ZWREYXRlLCAxKS5nZXRNb250aCgpXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgIH0sIG5hdmlnYXRpb25JY29ucy5kb3duTmF2aWdhdGlvbiksIHNob3dDbG9zZUJ1dHRvbiAmJiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMuaGVhZGVySWNvbkJ1dHRvbixcbiAgICAgICAgb25DbGljazogb25EaXNtaXNzLFxuICAgICAgICBvbktleURvd246IG9uQnV0dG9uS2V5RG93bihvbkRpc21pc3MpLFxuICAgICAgICB0aXRsZTogc3RyaW5ncy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgIH0sIG5hdmlnYXRpb25JY29ucy5kaXNtaXNzKSk7XG59O1xuQ2FsZW5kYXJEYXlOYXZpZ2F0aW9uQnV0dG9ucy5kaXNwbGF5TmFtZSA9ICdDYWxlbmRhckRheU5hdmlnYXRpb25CdXR0b25zJztcbmNvbnN0IG9uQnV0dG9uS2V5RG93biA9IChjYWxsYmFjayk9Pihldik9PntcbiAgICAgICAgc3dpdGNoKGV2LmtleSl7XG4gICAgICAgICAgICBjYXNlIEVudGVyOlxuICAgICAgICAgICAgICAgIGNhbGxiYWNrID09PSBudWxsIHx8IGNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcbiIsImltcG9ydCB7IHRva2VucyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10aGVtZSc7XG5pbXBvcnQgeyBfX3N0eWxlcywgbWVyZ2VDbGFzc2VzLCBzaG9ydGhhbmRzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgRFVSQVRJT05fMiwgRFVSQVRJT05fMywgRUFTSU5HX0ZVTkNUSU9OXzEsIEVBU0lOR19GVU5DVElPTl8yLCBGQURFX0lOLCBTTElERV9ET1dOX0lOMjAsIFNMSURFX0xFRlRfSU4yMCwgU0xJREVfUklHSFRfSU4yMCwgU0xJREVfVVBfSU4yMCB9IGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aW9uIH0gZnJvbSAnLi4vQ2FsZW5kYXIvQ2FsZW5kYXIudHlwZXMnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGNhbGVuZGFyUGlja2VyQ2xhc3NOYW1lcyA9IHtcbiAgcm9vdDogJ2Z1aS1DYWxlbmRhclBpY2tlcicsXG4gIGhlYWRlckNvbnRhaW5lcjogJ2Z1aS1DYWxlbmRhclBpY2tlcl9faGVhZGVyQ29udGFpbmVyJyxcbiAgY3VycmVudEl0ZW1CdXR0b246ICdmdWktQ2FsZW5kYXJQaWNrZXJfX2N1cnJlbnRJdGVtQnV0dG9uJyxcbiAgbmF2aWdhdGlvbkJ1dHRvbnNDb250YWluZXI6ICdmdWktQ2FsZW5kYXJQaWNrZXJfX25hdmlnYXRpb25CdXR0b25zQ29udGFpbmVyJyxcbiAgbmF2aWdhdGlvbkJ1dHRvbjogJ2Z1aS1DYWxlbmRhclBpY2tlcl9fbmF2aWdhdGlvbkJ1dHRvbicsXG4gIGdyaWRDb250YWluZXI6ICdmdWktQ2FsZW5kYXJQaWNrZXJfX2dyaWRDb250YWluZXInLFxuICBidXR0b25Sb3c6ICdmdWktQ2FsZW5kYXJQaWNrZXJfX2J1dHRvblJvdycsXG4gIGl0ZW1CdXR0b246ICdmdWktQ2FsZW5kYXJQaWNrZXJfX2l0ZW1CdXR0b24nLFxuICBjdXJyZW50OiAnZnVpLUNhbGVuZGFyUGlja2VyX19jdXJyZW50JyxcbiAgc2VsZWN0ZWQ6ICdmdWktQ2FsZW5kYXJQaWNrZXJfX3NlbGVjdGVkJyxcbiAgZGlzYWJsZWQ6ICdmdWktQ2FsZW5kYXJQaWNrZXJfX2Rpc2FibGVkJ1xufTtcbmNvbnN0IHVzZVJvb3RTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgQjdjazg0ZDogXCJmMWU0bHFselwiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxYTNwMXZwXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxc3k0a3I0XCIsXG4gICAgYTliNjc3OiBcImY0bTJhaGNcIlxuICB9LFxuICBub3JtYWxpemU6IHtcbiAgICBFNXBpem86IFwiZjFjb3VobDNcIixcbiAgICBCN2NrODRkOiBcImYxZXd0cWNsXCIsXG4gICAganJhcGt5OiAwLFxuICAgIEZyZzZmMzogMCxcbiAgICB0MjFjcTA6IDAsXG4gICAgQjZvZjNqYTogMCxcbiAgICBCNzRzemxrOiBcImYxczE4NGFvXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbWs4bGFpXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFlNGxxbHp7Ym94LXNpemluZzpjb250ZW50LWJveDt9XCIsIFtcIi5mMWEzcDF2cHtvdmVyZmxvdzpoaWRkZW47fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMXN5NGtyNHtwYWRkaW5nOjEycHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmY0bTJhaGN7d2lkdGg6MTk2cHg7fVwiLCBcIi5mMWNvdWhsM3tib3gtc2hhZG93Om5vbmU7fVwiLCBcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBbXCIuZjFzMTg0YW97bWFyZ2luOjA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMW1rOGxhaXtwYWRkaW5nOjA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV1dXG59KTtcbmNvbnN0IHVzZUhlYWRlckNvbnRhaW5lclN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIl1cbn0pO1xuY29uc3QgdXNlQ3VycmVudEl0ZW1CdXR0b25TdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgRGUzcHpxOiBcImYxYzIxZHdoXCIsXG4gICAgaWN2eW90OiBcImYxZXJuNDVlXCIsXG4gICAgdnJhZmp4OiBbXCJmMW43MW90blwiLCBcImYxZGVlZml3XCJdLFxuICAgIG9pdmp3ZTogXCJmMWg4aGI3N1wiLFxuICAgIHd2cHFlNTogW1wiZjFkZWVmaXdcIiwgXCJmMW43MW90blwiXSxcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmdDg1bnA1XCIsXG4gICAgc2o1NXpkOiBcImYxeW0zYng0XCIsXG4gICAgQmg2Nzk1cjogXCJmcWVyb3J4XCIsXG4gICAgQmFocXRyZjogXCJmMW1vMGlicFwiLFxuICAgIEJlMnR3ZDc6IFwiZmtoajUwOFwiLFxuICAgIEJocmQ3enA6IFwiZmw0M3VlZlwiLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxZ2w4MXRnXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBbXCJmMXRkOG1jdlwiLCBcImYxdWRrZHhvXCJdLFxuICAgIGZzb3c2ZjogW1wiZjFvNzAwYXZcIiwgXCJmZXMzdGN6XCJdXG4gIH0sXG4gIGFuaW1hdGlvbjoge1xuICAgIHZpbjE3ZDogXCJmaHNxbnNuXCIsXG4gICAgQmY1ZmNzOiBcImZ5d3lwdGVcIixcbiAgICBCdjEyeWIzOiBcImYxaDd1NTJwXCIsXG4gICAgRXprbjNiOiBcImZqcTRjOTRcIlxuICB9LFxuICBoYXNIZWFkZXJDbGlja0NhbGxiYWNrOiB7XG4gICAgSndlZjh5OiBcImYxOGEwZndmXCIsXG4gICAgQmk5MWs5YzogXCJmM3NkYWVnXCIsXG4gICAgZW9hdnFkOiBcImY4NDkxZHhcIixcbiAgICBwdWdmbTQ6IDAsXG4gICAgdWtnYjJpOiAwLFxuICAgIER3dHlobTogMCxcbiAgICBCaWlzcTBzOiBcImYxNXJwb2s0XCIsXG4gICAgaXJvM3ptOiBcImYxd3ZrZ3ZvXCIsXG4gICAgQjJkNTNmcTogXCJmMXdkb2FxZFwiLFxuICAgIGMzaXo3MjogXCJmMTNjMHQ3aFwiLFxuICAgIG1naHJvMDogMCxcbiAgICBCeDY4eWI6IDAsXG4gICAgc3lvamQ5OiAwLFxuICAgIEU1aHlseDogXCJmeTJzY2FrXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBcIi5mMWVybjQ1ZXtib3JkZXItdG9wLXN0eWxlOm5vbmU7fVwiLCBcIi5mMW43MW90bntib3JkZXItcmlnaHQtc3R5bGU6bm9uZTt9XCIsIFwiLmYxZGVlZml3e2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7fVwiLCBcIi5mMWg4aGI3N3tib3JkZXItYm90dG9tLXN0eWxlOm5vbmU7fVwiLCBbXCIuZnQ4NW5wNXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1c01lZGl1bSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxeW0zYng0e2NvbG9yOmluaGVyaXQ7fVwiLCBcIi5mcWVyb3J4e2ZsZXgtZ3JvdzoxO31cIiwgXCIuZjFtbzBpYnB7Zm9udC1mYW1pbHk6aW5oZXJpdDt9XCIsIFwiLmZraGo1MDh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7fVwiLCBcIi5mbDQzdWVme2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7fVwiLCBbXCIuZjFnbDgxdGd7b3ZlcmZsb3c6dmlzaWJsZTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxdGQ4bWN2e3BhZGRpbmc6MCA0cHggMCAxMHB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjF1ZGtkeG97cGFkZGluZzowIDEwcHggMCA0cHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxbzcwMGF2e3RleHQtYWxpZ246bGVmdDt9XCIsIFwiLmZlczN0Y3p7dGV4dC1hbGlnbjpyaWdodDt9XCIsIFwiLmZoc3Fuc257YW5pbWF0aW9uLWR1cmF0aW9uOjAuMjY3czt9XCIsIFwiLmZ5d3lwdGV7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO31cIiwgXCIuZjFoN3U1MnB7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaTt9XCIsIFwiLmZqcTRjOTR7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjEsLjI1LC43NSwuOSk7fVwiXSxcbiAgazogW1wiQGtleWZyYW1lcyBmNWo4Ymlpe2Zyb217b3BhY2l0eTowO310b3tvcGFjaXR5OjE7fX1cIl0sXG4gIGg6IFtcIi5mMThhMGZ3Zjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRIb3Zlcik7fVwiLCBcIi5mM3NkYWVnOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodEhvdmVyKTt9XCIsIFwiLmY4NDkxZHg6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7fVwiLCBbXCIuZjE1cnBvazQ6aG92ZXJ7b3V0bGluZToxcHggc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxd3ZrZ3ZvOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKTt9XCIsIFwiLmYxd2RvYXFkOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHRQcmVzc2VkKTt9XCIsIFwiLmYxM2MwdDdoOmhvdmVyOmFjdGl2ZXtjdXJzb3I6cG9pbnRlcjt9XCIsIFtcIi5meTJzY2FrOmhvdmVyOmFjdGl2ZXtvdXRsaW5lOjFweCBzb2xpZCB2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XV1cbn0pO1xuY29uc3QgdXNlTmF2aWdhdGlvbkJ1dHRvbnNDb250YWluZXJTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgQnQ5ODRnajogXCJmMTIybjU5XCIsXG4gICAgbWM5bDV4OiBcImYyMmlhZ3dcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMTIybjU5e2FsaWduLWl0ZW1zOmNlbnRlcjt9XCIsIFwiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIl1cbn0pO1xuY29uc3QgdXNlTmF2aWdhdGlvbkJ1dHRvblN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBCZ2ZnNWRhOiAwLFxuICAgIEI5eGF2MGc6IDAsXG4gICAgb2l2andlOiAwLFxuICAgIEJuMHFnem06IDAsXG4gICAgQjRnOW5lYjogMCxcbiAgICB6aGp3eTM6IDAsXG4gICAgd3ZwcWU1OiAwLFxuICAgIGlidjZoaDogMCxcbiAgICB1MW10anU6IDAsXG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIGk4dnZxYzogMCxcbiAgICBnMnUzd2U6IDAsXG4gICAgaWN2eW90OiAwLFxuICAgIEI0ajUyZm86IDAsXG4gICAgaXJzd3BzOiBcImYzYmhncWhcIixcbiAgICBCZXlmYTZ5OiAwLFxuICAgIEJibWI3ZXA6IDAsXG4gICAgQnRsNDNuaTogMCxcbiAgICBCN29qNmphOiAwLFxuICAgIERpbWFyYTogXCJmdDg1bnA1XCIsXG4gICAgc2o1NXpkOiBcImYxOW4wZTVcIixcbiAgICBtYzlsNXg6IFwiZnRnbTMwNFwiLFxuICAgIEJhaHF0cmY6IFwiZjFtbzBpYnBcIixcbiAgICBCZTJ0d2Q3OiBcImZ5OXJrbmNcIixcbiAgICBCcWVudmlqOiBcImZ4bGRhbzlcIixcbiAgICBCZzk2Z3dwOiBcImYzMzZ0andcIixcbiAgICBzc2hpNXc6IFwiZjF5c2Z5c3pcIixcbiAgICBCZjRqZWRrOiBcImYxMDd2NnhqXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFnbDgxdGdcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFtazhsYWlcIixcbiAgICBxaGY4eHE6IFwiZjEwcGkxM25cIixcbiAgICBmc293NmY6IFwiZjE3bWNjbGFcIixcbiAgICBhOWI2Nzc6IFwiZjF3OWRjaGtcIixcbiAgICBKd2VmOHk6IFwiZjE4YTBmd2ZcIixcbiAgICBCaTkxazljOiBcImYzc2RhZWdcIixcbiAgICBlb2F2cWQ6IFwiZjg0OTFkeFwiLFxuICAgIHB1Z2ZtNDogMCxcbiAgICB1a2diMmk6IDAsXG4gICAgRHd0eWhtOiAwLFxuICAgIEJpaXNxMHM6IFwiZjE1cnBvazRcIixcbiAgICBpcm8zem06IFwiZjF3dmtndm9cIixcbiAgICBCMmQ1M2ZxOiBcImYxd2RvYXFkXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBbXCIuZjNiaGdxaHtib3JkZXI6bm9uZTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTluMGU1e2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTt9XCIsIFwiLmZ0Z20zMDR7ZGlzcGxheTpibG9jazt9XCIsIFwiLmYxbW8waWJwe2ZvbnQtZmFtaWx5OmluaGVyaXQ7fVwiLCBcIi5meTlya25je2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UyMDApO31cIiwgXCIuZnhsZGFvOXtoZWlnaHQ6MjhweDt9XCIsIFwiLmYzMzZ0and7bGluZS1oZWlnaHQ6MjhweDt9XCIsIFwiLmYxeXNmeXN6e21pbi1oZWlnaHQ6MjhweDt9XCIsIFwiLmYxMDd2Nnhqe21pbi13aWR0aDoyOHB4O31cIiwgW1wiLmYxZ2w4MXRne292ZXJmbG93OnZpc2libGU7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMW1rOGxhaXtwYWRkaW5nOjA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxMHBpMTNue3Bvc2l0aW9uOnJlbGF0aXZlO31cIiwgXCIuZjE3bWNjbGF7dGV4dC1hbGlnbjpjZW50ZXI7fVwiLCBcIi5mMXc5ZGNoa3t3aWR0aDoyOHB4O31cIl0sXG4gIGg6IFtcIi5mMThhMGZ3Zjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRIb3Zlcik7fVwiLCBcIi5mM3NkYWVnOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kT25MaWdodEhvdmVyKTt9XCIsIFwiLmY4NDkxZHg6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7fVwiLCBbXCIuZjE1cnBvazQ6aG92ZXJ7b3V0bGluZToxcHggc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxd3ZrZ3ZvOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKTt9XCIsIFwiLmYxd2RvYXFkOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvckJyYW5kRm9yZWdyb3VuZE9uTGlnaHRQcmVzc2VkKTt9XCJdXG59KTtcbmNvbnN0IHVzZUdyaWRDb250YWluZXJTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgQjZvZjNqYTogXCJmdmpoMHRsXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZnZqaDB0bHttYXJnaW4tdG9wOjRweDt9XCJdXG59KTtcbmNvbnN0IHVzZUJ1dHRvblJvd1N0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBqcmFwa3k6IFwiZjE1dHBpM2lcIixcbiAgICBzdzlnZG86IFwiZjFnZGJkYmFcIlxuICB9LFxuICBhbmltYXRpb246IHtcbiAgICB2aW4xN2Q6IFwiZjVmMmpidVwiLFxuICAgIEJmNWZjczogXCJmeXd5cHRlXCIsXG4gICAgRXprbjNiOiBcImYxZWUydWVcIlxuICB9LFxuICBob3Jpem9udGFsQmFja3dhcmQ6IHtcbiAgICBCdjEyeWIzOiBbXCJmMW85dzNsOFwiLCBcImYxa3dqYWpjXCJdXG4gIH0sXG4gIGhvcml6b250YWxGb3J3YXJkOiB7XG4gICAgQnYxMnliMzogW1wiZjFrd2phamNcIiwgXCJmMW85dzNsOFwiXVxuICB9LFxuICB2ZXJ0aWNhbEJhY2t3YXJkOiB7XG4gICAgQnYxMnliMzogXCJmZ2wzeW43XCJcbiAgfSxcbiAgdmVydGljYWxGb3J3YXJkOiB7XG4gICAgQnYxMnliMzogXCJmYWl1NXllXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjE1dHBpM2l7bWFyZ2luLWJvdHRvbToxNnB4O31cIiwgXCIuZjFnZGJkYmE6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MDt9XCIsIFwiLmY1ZjJqYnV7YW5pbWF0aW9uLWR1cmF0aW9uOjAuMzY3czt9XCIsIFwiLmZ5d3lwdGV7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO31cIiwgXCIuZjFlZTJ1ZXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMSwuOSwuMiwxKTt9XCIsIFwiLmYxbzl3M2w4e2FuaW1hdGlvbi1uYW1lOmY1ajhiaWksZjJsZ21jMzt9XCIsIFwiLmYxa3dqYWpje2FuaW1hdGlvbi1uYW1lOmY1ajhiaWksZnBrdGN2Nzt9XCIsIFwiLmZnbDN5bjd7YW5pbWF0aW9uLW5hbWU6ZjVqOGJpaSxmM2J2OWttO31cIiwgXCIuZmFpdTV5ZXthbmltYXRpb24tbmFtZTpmNWo4YmlpLGZ1bnR4MHk7fVwiXSxcbiAgazogW1wiQGtleWZyYW1lcyBmNWo4Ymlpe2Zyb217b3BhY2l0eTowO310b3tvcGFjaXR5OjE7fX1cIiwgXCJAa2V5ZnJhbWVzIGYybGdtYzN7ZnJvbXtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7fXRve3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO319XCIsIFwiQGtleWZyYW1lcyBmcGt0Y3Y3e2Zyb217cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7fXRve3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO319XCIsIFwiQGtleWZyYW1lcyBmM2J2OWtte2Zyb217cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO310b3twb2ludGVyLWV2ZW50czphdXRvO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt9fVwiLCBcIkBrZXlmcmFtZXMgZnVudHgweXtmcm9te3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO310b3twb2ludGVyLWV2ZW50czphdXRvO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt9fVwiXVxufSk7XG5jb25zdCB1c2VJdGVtQnV0dG9uU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIERlM3B6cTogXCJmMWMyMWR3aFwiLFxuICAgIEJnZmc1ZGE6IDAsXG4gICAgQjl4YXYwZzogMCxcbiAgICBvaXZqd2U6IDAsXG4gICAgQm4wcWd6bTogMCxcbiAgICBCNGc5bmViOiAwLFxuICAgIHpoand5MzogMCxcbiAgICB3dnBxZTU6IDAsXG4gICAgaWJ2NmhoOiAwLFxuICAgIHUxbXRqdTogMCxcbiAgICBoM2M1cm06IDAsXG4gICAgdnJhZmp4OiAwLFxuICAgIEJla3JjNGk6IDAsXG4gICAgaTh2dnFjOiAwLFxuICAgIGcydTN3ZTogMCxcbiAgICBpY3Z5b3Q6IDAsXG4gICAgQjRqNTJmbzogMCxcbiAgICBpcnN3cHM6IFwiZjNiaGdxaFwiLFxuICAgIEJleWZhNnk6IDAsXG4gICAgQmJtYjdlcDogMCxcbiAgICBCdGw0M25pOiAwLFxuICAgIEI3b2o2amE6IDAsXG4gICAgRGltYXJhOiBcImZ0ODVucDVcIixcbiAgICBzajU1emQ6IFwiZjExZDRrcG5cIixcbiAgICBCYWhxdHJmOiBcImYxbW8waWJwXCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQnFlbnZpajogXCJmYmhub2FjXCIsXG4gICAgQmc5Nmd3cDogXCJmYzc2Y2RxXCIsXG4gICAgc3NoaTV3OiBcImYxdzVqcGhyXCIsXG4gICAgQmY0amVkazogXCJmMTJjbHpjMlwiLFxuICAgIGpyYXBreTogMCxcbiAgICBGcmc2ZjM6IDAsXG4gICAgdDIxY3EwOiAwLFxuICAgIEI2b2YzamE6IDAsXG4gICAgQjc0c3psazogW1wiZjF5dGl4b3NcIiwgXCJmcWs2cDh0XCJdLFxuICAgIEI2OHRjODI6IDAsXG4gICAgQm14YnlnNTogMCxcbiAgICBCcGc1NGNlOiBcImYxZ2w4MXRnXCIsXG4gICAgQnlvajh0djogMCxcbiAgICB1d21xbTM6IDAsXG4gICAgejE4OXNqOiAwLFxuICAgIHo4dG51dDogMCxcbiAgICBCMG9jbXV6OiBcImYxbWs4bGFpXCIsXG4gICAgYTliNjc3OiBcImZlcW1jMnVcIixcbiAgICBCdGdmd2hvOiBbXCJmNjV6c3RsXCIsIFwiZjF5dDN0cXdcIl0sXG4gICAgeHJvdGU5OiBcImZsZmJ4aXRcIixcbiAgICBCamE1dWxtOiBcImZmNXZieHRcIixcbiAgICBKd2VmOHk6IFwiZjE4YTBmd2ZcIixcbiAgICBCaTkxazljOiBcImYxdTY5eW01XCIsXG4gICAgZW9hdnFkOiBcImY4NDkxZHhcIixcbiAgICBwdWdmbTQ6IDAsXG4gICAgdWtnYjJpOiAwLFxuICAgIER3dHlobTogMCxcbiAgICBCaWlzcTBzOiBcImYxNXJwb2s0XCIsXG4gICAgQnFyeDFubTogXCJmOWVwNXh3XCIsXG4gICAgemU1eHl5OiBcImYxcXZqZXhcIixcbiAgICBpeXIycjI6IFwiZmQycWJ2MFwiLFxuICAgIEJ4N3BsNXY6IDAsXG4gICAgQm5vc3FleTogMCxcbiAgICBCdjU3emd2OiAwLFxuICAgIEJieGpzM206IFwiZm0zYm85d1wiLFxuICAgIGlybzN6bTogXCJmMXd2a2d2b1wiLFxuICAgIGcya2oyNzogXCJmMWI5cWZxM1wiLFxuICAgIHBjNmV2dzogXCJmOWRkanYzXCIsXG4gICAgQjc2dzdnYTogXCJmcjRjZ2kwXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFjMjFkd2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50QmFja2dyb3VuZCk7fVwiLCBbXCIuZjNiaGdxaHtib3JkZXI6bm9uZTt9XCIsIHtcbiAgICBwOiAtMlxuICB9XSwgW1wiLmZ0ODVucDV7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTFkNGtwbntjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMyk7fVwiLCBcIi5mMW1vMGlicHtmb250LWZhbWlseTppbmhlcml0O31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmZiaG5vYWN7aGVpZ2h0OjQwcHg7fVwiLCBcIi5mYzc2Y2Rxe2xpbmUtaGVpZ2h0OjQwcHg7fVwiLCBcIi5mMXc1anBocnttaW4taGVpZ2h0OjQwcHg7fVwiLCBcIi5mMTJjbHpjMnttaW4td2lkdGg6NDBweDt9XCIsIFtcIi5mMXl0aXhvc3ttYXJnaW46MCAxMnB4IDAgMDt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmZxazZwOHR7bWFyZ2luOjAgMCAwIDEycHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMWdsODF0Z3tvdmVyZmxvdzp2aXNpYmxlO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFtazhsYWl7cGFkZGluZzowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mZXFtYzJ1e3dpZHRoOjQwcHg7fVwiLCBcIi5mNjV6c3RsOm50aC1jaGlsZCg0biArIDQpe21hcmdpbi1yaWdodDowO31cIiwgXCIuZjF5dDN0cXc6bnRoLWNoaWxkKDRuICsgNCl7bWFyZ2luLWxlZnQ6MDt9XCIsIFwiLmZsZmJ4aXQ6bnRoLWNoaWxkKG4gKyA5KXttYXJnaW4tYm90dG9tOjA7fVwiLCBcIi5mZjV2Ynh0IGRpdntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0UmVndWxhcik7fVwiXSxcbiAgaDogW1wiLmYxOGEwZndmOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZEhvdmVyKTt9XCIsIFwiLmYxdTY5eW01OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxU3RhdGljKTt9XCIsIFwiLmY4NDkxZHg6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7fVwiLCBbXCIuZjE1cnBvazQ6aG92ZXJ7b3V0bGluZToxcHggc29saWQgdmFyKC0tY29sb3JUcmFuc3BhcmVudFN0cm9rZSk7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxd3ZrZ3ZvOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRQcmVzc2VkKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mOWVwNXh3OmhvdmVye2JhY2tncm91bmQtY29sb3I6V2luZG93O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFxdmpleDpob3Zlcntjb2xvcjpXaW5kb3dUZXh0O319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZmQycWJ2MDpob3Zlcntmb3JjZWQtY29sb3ItYWRqdXN0Om5vbmU7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mbTNibzl3OmhvdmVye291dGxpbmU6MXB4IHNvbGlkIEhpZ2hsaWdodDt9fVwiLCB7XG4gICAgcDogLTEsXG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxYjlxZnEzOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOldpbmRvdzt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmY5ZGRqdjM6aG92ZXI6YWN0aXZle2NvbG9yOkhpZ2hsaWdodDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZyNGNnaTA6aG92ZXI6YWN0aXZle2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXVxufSk7XG5jb25zdCB1c2VDdXJyZW50U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgaGlnaGxpZ2h0Q3VycmVudDoge1xuICAgIERlM3B6cTogXCJmZnA3ZXNvXCIsXG4gICAgc2o1NXpkOiBcImYxcGhyYWdrXCIsXG4gICAgQmhyZDd6cDogXCJmbDQzdWVmXCIsXG4gICAgQnN3NmZ2ZzogXCJmZzM3NHlxXCIsXG4gICAgQmJ1c3V6cDogXCJmMXlpZzA3ZVwiLFxuICAgIHljYmZzbTogXCJma2M0MmF5XCIsXG4gICAgbWs0MjhvOiBcImZmaWM0bTBcIixcbiAgICBCMWxyc3FzOiBcImYxM2x5YzRsXCIsXG4gICAgejB2c3RlOiBcImYxM2c3bzJpXCIsXG4gICAgQmdqZDduazogXCJmYmJmNmg4XCIsXG4gICAga3VyMDB6OiBcImYxZnNnMm1lXCJcbiAgfVxufSwge1xuICBkOiBbXCIuZmZwN2Vzb3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxcGhyYWdre2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmRPbkJyYW5kKTt9XCIsIFwiLmZsNDN1ZWZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFNlbWlib2xkKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mZzM3NHlxe2JhY2tncm91bmQtY29sb3I6V2luZG93VGV4dDt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmYxeWlnMDdle2NvbG9yOldpbmRvdzt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZrYzQyYXl7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO319XCIsIHtcbiAgICBtOiBcIihmb3JjZWQtY29sb3JzOiBhY3RpdmUpXCJcbiAgfV0sIFtcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjEzZzdvMmk6aG92ZXIsLmYxM2c3bzJpOmhvdmVyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOldpbmRvd1RleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mYmJmNmg4OmhvdmVyLC5mYmJmNmg4OmhvdmVyOmFjdGl2ZXtjb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMWZzZzJtZTpob3ZlciwuZjFmc2cybWU6aG92ZXI6YWN0aXZle2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXSxcbiAgaDogW1wiLmZmaWM0bTA6aG92ZXIsLmZmaWM0bTA6aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmQpO31cIiwgXCIuZjEzbHljNGw6aG92ZXIsLmYxM2x5YzRsOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kT25CcmFuZCk7fVwiXVxufSk7XG5jb25zdCB1c2VTZWxlY3RlZFN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGhpZ2hsaWdodFNlbGVjdGVkOiB7XG4gICAgRGUzcHpxOiBcImYxdmV2ZDU5XCIsXG4gICAgc2o1NXpkOiBcImZmNXZib3BcIixcbiAgICBCaHJkN3pwOiBcImZsNDN1ZWZcIixcbiAgICBCc3c2ZnZnOiBcImYxcmlybnJ0XCIsXG4gICAgQmJ1c3V6cDogXCJmMXlpZzA3ZVwiLFxuICAgIHljYmZzbTogXCJma2M0MmF5XCIsXG4gICAgQmphNXVsbTogXCJmb3NwYXdmXCIsXG4gICAgSndlZjh5OiBcImZibzA1N3BcIixcbiAgICBCaTkxazljOiBcImYxdTY5eW01XCIsXG4gICAgQnFyeDFubTogXCJmaXU4Z3N0XCIsXG4gICAgemU1eHl5OiBcImYxdjRxNnBsXCIsXG4gICAgaXlyMnIyOiBcImZkMnFidjBcIixcbiAgICBpcm8zem06IFwiZjF3dmtndm9cIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMXZldmQ1OXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yQnJhbmRCYWNrZ3JvdW5kSW52ZXJ0ZWRTZWxlY3RlZCk7fVwiLCBcIi5mZjV2Ym9we2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxU3RhdGljKTt9XCIsIFwiLmZsNDN1ZWZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFNlbWlib2xkKTt9XCIsIFwiLmZvc3Bhd2YgZGl2e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHRTZW1pYm9sZCk7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFyaXJucnR7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMXlpZzA3ZXtjb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5ma2M0MmF5e2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZpdThnc3Q6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpIaWdobGlnaHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mMXY0cTZwbDpob3Zlcntjb2xvcjpXaW5kb3c7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mZDJxYnYwOmhvdmVye2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXSxcbiAgaDogW1wiLmZibzA1N3A6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvckJyYW5kQmFja2dyb3VuZEludmVydGVkU2VsZWN0ZWQpO31cIiwgXCIuZjF1Njl5bTU6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZDFTdGF0aWMpO31cIiwgXCIuZjF3dmtndm86aG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JCcmFuZEJhY2tncm91bmRJbnZlcnRlZFByZXNzZWQpO31cIl1cbn0pO1xuY29uc3QgdXNlRGlzYWJsZWRTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgQmczM2l2bTogXCJmMW9lbGdtelwiLFxuICAgIHQ2OXdnMDogXCJmaGgxZWtqXCIsXG4gICAgQmJ1c3V6cDogXCJmMWRjczh5elwiLFxuICAgIHljYmZzbTogXCJma2M0MmF5XCJcbiAgfVxufSwge1xuICBkOiBbXCIuZjFvZWxnbXosLmYxb2VsZ216OmRpc2FibGVkLC5mMW9lbGdteiBidXR0b257Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZoaDFla2osLmZoaDFla2o6ZGlzYWJsZWQsLmZoaDFla2ogYnV0dG9ue3BvaW50ZXItZXZlbnRzOm5vbmU7fVwiXSxcbiAgbTogW1tcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKXsuZjFkY3M4eXp7Y29sb3I6R3JheVRleHQ7fX1cIiwge1xuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XSwgW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5ma2M0MmF5e2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTt9fVwiLCB7XG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dXVxufSk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICpcbiAqIEFwcGx5IHN0eWxpbmcgdG8gdGhlIENhbGVuZGFyUGlja2VyIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlQ2FsZW5kYXJQaWNrZXJTdHlsZXNfdW5zdGFibGUgPSBwcm9wcyA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgcm9vdFN0eWxlcyA9IHVzZVJvb3RTdHlsZXMoKTtcbiAgY29uc3QgaGVhZGVyQ29udGFpbmVyU3R5bGVzID0gdXNlSGVhZGVyQ29udGFpbmVyU3R5bGVzKCk7XG4gIGNvbnN0IGN1cnJlbnRJdGVtQnV0dG9uU3R5bGVzID0gdXNlQ3VycmVudEl0ZW1CdXR0b25TdHlsZXMoKTtcbiAgY29uc3QgbmF2aWdhdGlvbkJ1dHRvbnNDb250YWluZXJTdHlsZXMgPSB1c2VOYXZpZ2F0aW9uQnV0dG9uc0NvbnRhaW5lclN0eWxlcygpO1xuICBjb25zdCBuYXZpZ2F0aW9uQnV0dG9uU3R5bGVzID0gdXNlTmF2aWdhdGlvbkJ1dHRvblN0eWxlcygpO1xuICBjb25zdCBncmlkQ29udGFpbmVyU3R5bGVzID0gdXNlR3JpZENvbnRhaW5lclN0eWxlcygpO1xuICBjb25zdCBidXR0b25Sb3dTdHlsZXMgPSB1c2VCdXR0b25Sb3dTdHlsZXMoKTtcbiAgY29uc3QgaXRlbUJ1dHRvblN0eWxlcyA9IHVzZUl0ZW1CdXR0b25TdHlsZXMoKTtcbiAgY29uc3QgY3VycmVudFN0eWxlcyA9IHVzZUN1cnJlbnRTdHlsZXMoKTtcbiAgY29uc3Qgc2VsZWN0ZWRTdHlsZXMgPSB1c2VTZWxlY3RlZFN0eWxlcygpO1xuICBjb25zdCBkaXNhYmxlZFN0eWxlcyA9IHVzZURpc2FibGVkU3R5bGVzKCk7XG4gIGNvbnN0IHtcbiAgICBhbmltYXRlQmFja3dhcmRzLFxuICAgIGFuaW1hdGlvbkRpcmVjdGlvbixcbiAgICBjbGFzc05hbWUsXG4gICAgaGFzSGVhZGVyQ2xpY2tDYWxsYmFjayxcbiAgICBoaWdobGlnaHRDdXJyZW50LFxuICAgIGhpZ2hsaWdodFNlbGVjdGVkXG4gIH0gPSBwcm9wcztcbiAgcmV0dXJuIHtcbiAgICByb290OiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLnJvb3QsIHJvb3RTdHlsZXMubm9ybWFsaXplLCByb290U3R5bGVzLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgaGVhZGVyQ29udGFpbmVyOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLmhlYWRlckNvbnRhaW5lciwgaGVhZGVyQ29udGFpbmVyU3R5bGVzLmJhc2UpLFxuICAgIGN1cnJlbnRJdGVtQnV0dG9uOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLmN1cnJlbnRJdGVtQnV0dG9uLCBjdXJyZW50SXRlbUJ1dHRvblN0eWxlcy5iYXNlLCBhbmltYXRlQmFja3dhcmRzICE9PSB1bmRlZmluZWQgJiYgY3VycmVudEl0ZW1CdXR0b25TdHlsZXMuYW5pbWF0aW9uLCBoYXNIZWFkZXJDbGlja0NhbGxiYWNrICYmIGN1cnJlbnRJdGVtQnV0dG9uU3R5bGVzLmhhc0hlYWRlckNsaWNrQ2FsbGJhY2spLFxuICAgIG5hdmlnYXRpb25CdXR0b25zQ29udGFpbmVyOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLm5hdmlnYXRpb25CdXR0b25zQ29udGFpbmVyLCBuYXZpZ2F0aW9uQnV0dG9uc0NvbnRhaW5lclN0eWxlcy5iYXNlKSxcbiAgICBuYXZpZ2F0aW9uQnV0dG9uOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLm5hdmlnYXRpb25CdXR0b24sIG5hdmlnYXRpb25CdXR0b25TdHlsZXMuYmFzZSksXG4gICAgZ3JpZENvbnRhaW5lcjogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyUGlja2VyQ2xhc3NOYW1lcy5ncmlkQ29udGFpbmVyLCBncmlkQ29udGFpbmVyU3R5bGVzLmJhc2UpLFxuICAgIGJ1dHRvblJvdzogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyUGlja2VyQ2xhc3NOYW1lcy5idXR0b25Sb3csIGJ1dHRvblJvd1N0eWxlcy5iYXNlLCBidXR0b25Sb3dTdHlsZXMuYW5pbWF0aW9uLCBhbmltYXRlQmFja3dhcmRzICE9PSB1bmRlZmluZWQgJiYgKGFuaW1hdGlvbkRpcmVjdGlvbiA9PT0gQW5pbWF0aW9uRGlyZWN0aW9uLkhvcml6b250YWwgPyBhbmltYXRlQmFja3dhcmRzID8gYnV0dG9uUm93U3R5bGVzLmhvcml6b250YWxCYWNrd2FyZCA6IGJ1dHRvblJvd1N0eWxlcy5ob3Jpem9udGFsRm9yd2FyZCA6IGFuaW1hdGVCYWNrd2FyZHMgPyBidXR0b25Sb3dTdHlsZXMudmVydGljYWxCYWNrd2FyZCA6IGJ1dHRvblJvd1N0eWxlcy52ZXJ0aWNhbEZvcndhcmQpKSxcbiAgICBpdGVtQnV0dG9uOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLml0ZW1CdXR0b24sIGl0ZW1CdXR0b25TdHlsZXMuYmFzZSksXG4gICAgc2VsZWN0ZWQ6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhclBpY2tlckNsYXNzTmFtZXMuc2VsZWN0ZWQsIGhpZ2hsaWdodFNlbGVjdGVkICYmIHNlbGVjdGVkU3R5bGVzLmhpZ2hsaWdodFNlbGVjdGVkKSxcbiAgICBjdXJyZW50OiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzLmN1cnJlbnQsIGhpZ2hsaWdodEN1cnJlbnQgJiYgY3VycmVudFN0eWxlcy5oaWdobGlnaHRDdXJyZW50KSxcbiAgICBkaXNhYmxlZDogbWVyZ2VDbGFzc2VzKGNhbGVuZGFyUGlja2VyQ2xhc3NOYW1lcy5kaXNhYmxlZCwgZGlzYWJsZWRTdHlsZXMuYmFzZSlcbiAgfTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDYWxlbmRhclBpY2tlclN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0IHsgdXNlQ2FsZW5kYXJQaWNrZXJTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuLi9DYWxlbmRhclBpY2tlci91c2VDYWxlbmRhclBpY2tlclN0eWxlcy5zdHlsZXMnO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBDYWxlbmRhclllYXIgc2xvdHMgYmFzZWQgb24gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUgPSBwcm9wcyA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgcmV0dXJuIHVzZUNhbGVuZGFyUGlja2VyU3R5bGVzX3Vuc3RhYmxlKHByb3BzKTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDYWxlbmRhclllYXJTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEVudGVyLCBTcGFjZSB9IGZyb20gJ0BmbHVlbnR1aS9rZXlib2FyZC1rZXlzJztcbmltcG9ydCB7IHVzZUFycm93TmF2aWdhdGlvbkdyb3VwIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXRhYnN0ZXInO1xuaW1wb3J0IHsgbWVyZ2VDbGFzc2VzIH0gZnJvbSAnQGdyaWZmZWwvcmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2FsZW5kYXJZZWFyU3R5bGVzX3Vuc3RhYmxlIH0gZnJvbSAnLi91c2VDYWxlbmRhclllYXJTdHlsZXMuc3R5bGVzJztcbmNvbnN0IENFTExfQ09VTlQgPSAxMjtcbmNvbnN0IENFTExTX1BFUl9ST1cgPSA0O1xuY29uc3QgRGVmYXVsdENhbGVuZGFyWWVhclN0cmluZ3MgPSB7XG4gICAgcHJldlJhbmdlQXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgbmV4dFJhbmdlQXJpYUxhYmVsOiB1bmRlZmluZWRcbn07XG5jb25zdCBDYWxlbmRhclllYXJHcmlkQ2VsbCA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgaGlnaGxpZ2h0Q3VycmVudFllYXIsIGhpZ2hsaWdodFNlbGVjdGVkWWVhciwgeWVhciwgc2VsZWN0ZWQsIGRpc2FibGVkLCBjb21wb25lbnRSZWYsIG9uU2VsZWN0WWVhciwgb25SZW5kZXJZZWFyIH0gPSBwcm9wcztcbiAgICBjb25zdCBidXR0b25SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShjb21wb25lbnRSZWYsICgpPT4oe1xuICAgICAgICAgICAgZm9jdXMgKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYnV0dG9uUmVmX2N1cnJlbnRfZm9jdXMsIF9idXR0b25SZWZfY3VycmVudDtcbiAgICAgICAgICAgICAgICAoX2J1dHRvblJlZl9jdXJyZW50ID0gYnV0dG9uUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9idXR0b25SZWZfY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF9idXR0b25SZWZfY3VycmVudF9mb2N1cyA9IF9idXR0b25SZWZfY3VycmVudC5mb2N1cykgPT09IG51bGwgfHwgX2J1dHRvblJlZl9jdXJyZW50X2ZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYnV0dG9uUmVmX2N1cnJlbnRfZm9jdXMuY2FsbChfYnV0dG9uUmVmX2N1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgW10pO1xuICAgIGNvbnN0IG9uQ2xpY2sgPSAoKT0+e1xuICAgICAgICBvblNlbGVjdFllYXIgPT09IG51bGwgfHwgb25TZWxlY3RZZWFyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlbGVjdFllYXIoeWVhcik7XG4gICAgfTtcbiAgICBjb25zdCBvbktleURvd24gPSAoZXYpPT57XG4gICAgICAgIGlmIChldi5rZXkgPT09IEVudGVyKSB7XG4gICAgICAgICAgICBvblNlbGVjdFllYXIgPT09IG51bGwgfHwgb25TZWxlY3RZZWFyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlbGVjdFllYXIoeWVhcik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUoe1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGhpZ2hsaWdodEN1cnJlbnQ6IGhpZ2hsaWdodEN1cnJlbnRZZWFyLFxuICAgICAgICBoaWdobGlnaHRTZWxlY3RlZDogaGlnaGxpZ2h0U2VsZWN0ZWRZZWFyXG4gICAgfSk7XG4gICAgdmFyIF9vblJlbmRlclllYXI7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGNsYXNzTmFtZXMuaXRlbUJ1dHRvbiwgc2VsZWN0ZWQgJiYgY2xhc3NOYW1lcy5zZWxlY3RlZCwgZGlzYWJsZWQgJiYgY2xhc3NOYW1lcy5kaXNhYmxlZCksXG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIHJvbGU6IFwiZ3JpZGNlbGxcIixcbiAgICAgICAgb25DbGljazogIWRpc2FibGVkID8gb25DbGljayA6IHVuZGVmaW5lZCxcbiAgICAgICAgb25LZXlEb3duOiAhZGlzYWJsZWQgPyBvbktleURvd24gOiB1bmRlZmluZWQsXG4gICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkLFxuICAgICAgICByZWY6IGJ1dHRvblJlZlxuICAgIH0sIChfb25SZW5kZXJZZWFyID0gb25SZW5kZXJZZWFyID09PSBudWxsIHx8IG9uUmVuZGVyWWVhciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZW5kZXJZZWFyKHllYXIpKSAhPT0gbnVsbCAmJiBfb25SZW5kZXJZZWFyICE9PSB2b2lkIDAgPyBfb25SZW5kZXJZZWFyIDogeWVhcik7XG59O1xuQ2FsZW5kYXJZZWFyR3JpZENlbGwuZGlzcGxheU5hbWUgPSAnQ2FsZW5kYXJZZWFyR3JpZENlbGwnO1xuY29uc3QgQ2FsZW5kYXJZZWFyR3JpZCA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgZnJvbVllYXIsIHRvWWVhciwgYW5pbWF0aW9uRGlyZWN0aW9uLCBhbmltYXRlQmFja3dhcmRzLCBtaW5ZZWFyLCBtYXhZZWFyLCBvblNlbGVjdFllYXIsIHNlbGVjdGVkWWVhciwgY29tcG9uZW50UmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBzZWxlY3RlZENlbGxSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY3VycmVudENlbGxSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShjb21wb25lbnRSZWYsICgpPT4oe1xuICAgICAgICAgICAgZm9jdXMgKCkge1xuICAgICAgICAgICAgICAgIHZhciBfZm9jdXMsIF90aGlzO1xuICAgICAgICAgICAgICAgIChfdGhpcyA9IHNlbGVjdGVkQ2VsbFJlZi5jdXJyZW50IHx8IGN1cnJlbnRDZWxsUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF90aGlzID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX2ZvY3VzID0gX3RoaXMuZm9jdXMpID09PSBudWxsIHx8IF9mb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2ZvY3VzLmNhbGwoX3RoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgW10pO1xuICAgIGNvbnN0IHJlbmRlckNlbGwgPSAoeWVhclRvUmVuZGVyKT0+e1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHllYXJUb1JlbmRlciA9PT0gc2VsZWN0ZWRZZWFyO1xuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IG1pblllYXIgIT09IHVuZGVmaW5lZCAmJiB5ZWFyVG9SZW5kZXIgPCBtaW5ZZWFyIHx8IG1heFllYXIgIT09IHVuZGVmaW5lZCAmJiB5ZWFyVG9SZW5kZXIgPiBtYXhZZWFyO1xuICAgICAgICBjb25zdCBjdXJyZW50ID0geWVhclRvUmVuZGVyID09PSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJZZWFyR3JpZENlbGwsIHtcbiAgICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgICAga2V5OiB5ZWFyVG9SZW5kZXIsXG4gICAgICAgICAgICB5ZWFyOiB5ZWFyVG9SZW5kZXIsXG4gICAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWQsXG4gICAgICAgICAgICBjdXJyZW50OiBjdXJyZW50LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgICAgICAgb25TZWxlY3RZZWFyOiBvblNlbGVjdFllYXIsXG4gICAgICAgICAgICBjb21wb25lbnRSZWY6IHNlbGVjdGVkID8gc2VsZWN0ZWRDZWxsUmVmIDogY3VycmVudCA/IGN1cnJlbnRDZWxsUmVmIDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IHVzZUNhbGVuZGFyWWVhclN0eWxlc191bnN0YWJsZSh7XG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgYW5pbWF0ZUJhY2t3YXJkcyxcbiAgICAgICAgYW5pbWF0aW9uRGlyZWN0aW9uXG4gICAgfSk7XG4gICAgY29uc3Qgb25SZW5kZXJZZWFyID0gKHZhbHVlKT0+e1xuICAgICAgICB2YXIgX3Byb3BzX29uUmVuZGVyWWVhcjtcbiAgICAgICAgdmFyIF9wcm9wc19vblJlbmRlclllYXIxO1xuICAgICAgICByZXR1cm4gKF9wcm9wc19vblJlbmRlclllYXIxID0gKF9wcm9wc19vblJlbmRlclllYXIgPSBwcm9wcy5vblJlbmRlclllYXIpID09PSBudWxsIHx8IF9wcm9wc19vblJlbmRlclllYXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vblJlbmRlclllYXIuY2FsbChwcm9wcywgdmFsdWUpKSAhPT0gbnVsbCAmJiBfcHJvcHNfb25SZW5kZXJZZWFyMSAhPT0gdm9pZCAwID8gX3Byb3BzX29uUmVuZGVyWWVhcjEgOiB2YWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdyaWRBcmlhTGFiZWwgPSBgJHtvblJlbmRlclllYXIoZnJvbVllYXIpfSAtICR7b25SZW5kZXJZZWFyKHRvWWVhcil9YDtcbiAgICBsZXQgeWVhciA9IGZyb21ZZWFyO1xuICAgIGNvbnN0IGNlbGxzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8ICh0b1llYXIgLSBmcm9tWWVhciArIDEpIC8gQ0VMTFNfUEVSX1JPVzsgaSsrKXtcbiAgICAgICAgY2VsbHMucHVzaChbXSk7XG4gICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCBDRUxMU19QRVJfUk9XOyBqKyspe1xuICAgICAgICAgICAgY2VsbHNbaV0ucHVzaChyZW5kZXJDZWxsKHllYXIpKTtcbiAgICAgICAgICAgIHllYXIrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhcnJvd05hdmlnYXRpb25BdHRyaWJ1dGVzID0gdXNlQXJyb3dOYXZpZ2F0aW9uR3JvdXAoe1xuICAgICAgICBheGlzOiAnZ3JpZCdcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgLi4uYXJyb3dOYXZpZ2F0aW9uQXR0cmlidXRlcyxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmdyaWRDb250YWluZXIsXG4gICAgICAgIHJvbGU6IFwiZ3JpZFwiLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogZ3JpZEFyaWFMYWJlbFxuICAgIH0sIGNlbGxzLm1hcCgoY2VsbFJvdywgaW5kZXgpPT57XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAga2V5OiAneWVhclBpY2tlclJvd18nICsgaW5kZXggKyAnXycgKyBmcm9tWWVhcixcbiAgICAgICAgICAgIHJvbGU6IFwicm93XCIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMuYnV0dG9uUm93XG4gICAgICAgIH0sIGNlbGxSb3cpO1xuICAgIH0pKTtcbn07XG5DYWxlbmRhclllYXJHcmlkLmRpc3BsYXlOYW1lID0gJ0NhbGVuZGFyWWVhckdyaWQnO1xuY29uc3QgQ2FsZW5kYXJZZWFyTmF2RGlyZWN0aW9uID0ge1xuICAgIFByZXZpb3VzOiAwLFxuICAgIE5leHQ6IDFcbn07XG5jb25zdCBDYWxlbmRhclllYXJOYXZBcnJvdyA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgc3RyaW5ncyA9IERlZmF1bHRDYWxlbmRhclllYXJTdHJpbmdzLCBkaXJlY3Rpb24sIG9uU2VsZWN0UHJldiwgb25TZWxlY3ROZXh0LCBmcm9tWWVhciwgdG9ZZWFyLCBtYXhZZWFyLCBtaW5ZZWFyLCBuYXZpZ2F0aW9uSWNvbnMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUoe1xuICAgICAgICBjbGFzc05hbWVcbiAgICB9KTtcbiAgICBjb25zdCBhcmlhTGFiZWwgPSBkaXJlY3Rpb24gPT09IENhbGVuZGFyWWVhck5hdkRpcmVjdGlvbi5QcmV2aW91cyA/IHN0cmluZ3MucHJldlJhbmdlQXJpYUxhYmVsIDogc3RyaW5ncy5uZXh0UmFuZ2VBcmlhTGFiZWw7XG4gICAgY29uc3QgbmV3UmFuZ2VPZmZzZXQgPSBkaXJlY3Rpb24gPT09IENhbGVuZGFyWWVhck5hdkRpcmVjdGlvbi5QcmV2aW91cyA/IC1DRUxMX0NPVU5UIDogQ0VMTF9DT1VOVDtcbiAgICBjb25zdCBuZXdSYW5nZSA9IHtcbiAgICAgICAgZnJvbVllYXI6IGZyb21ZZWFyICsgbmV3UmFuZ2VPZmZzZXQsXG4gICAgICAgIHRvWWVhcjogdG9ZZWFyICsgbmV3UmFuZ2VPZmZzZXRcbiAgICB9O1xuICAgIGNvbnN0IGFyaWFMYWJlbFN0cmluZyA9IGFyaWFMYWJlbCA/IHR5cGVvZiBhcmlhTGFiZWwgPT09ICdzdHJpbmcnID8gYXJpYUxhYmVsIDogYXJpYUxhYmVsKG5ld1JhbmdlKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpcmVjdGlvbiA9PT0gQ2FsZW5kYXJZZWFyTmF2RGlyZWN0aW9uLlByZXZpb3VzID8gbWluWWVhciAhPT0gdW5kZWZpbmVkICYmIGZyb21ZZWFyIDwgbWluWWVhciA6IG1heFllYXIgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5mcm9tWWVhciArIENFTExfQ09VTlQgPiBtYXhZZWFyO1xuICAgIGNvbnN0IG9uTmF2aWdhdGUgPSAoKT0+e1xuICAgICAgICBkaXJlY3Rpb24gPT09IENhbGVuZGFyWWVhck5hdkRpcmVjdGlvbi5QcmV2aW91cyA/IG9uU2VsZWN0UHJldiA9PT0gbnVsbCB8fCBvblNlbGVjdFByZXYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VsZWN0UHJldigpIDogb25TZWxlY3ROZXh0ID09PSBudWxsIHx8IG9uU2VsZWN0TmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWxlY3ROZXh0KCk7XG4gICAgfTtcbiAgICBjb25zdCBvbktleURvd24gPSAoZXYpPT57XG4gICAgICAgIGlmIChldi5rZXkgPT09IEVudGVyKSB7XG4gICAgICAgICAgICBvbk5hdmlnYXRlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhjbGFzc05hbWVzLm5hdmlnYXRpb25CdXR0b24sIGRpc2FibGVkICYmIGNsYXNzTmFtZXMuZGlzYWJsZWQpLFxuICAgICAgICBvbkNsaWNrOiAhZGlzYWJsZWQgPyBvbk5hdmlnYXRlIDogdW5kZWZpbmVkLFxuICAgICAgICBvbktleURvd246ICFkaXNhYmxlZCA/IG9uS2V5RG93biA6IHVuZGVmaW5lZCxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgdGl0bGU6IGFyaWFMYWJlbFN0cmluZyxcbiAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gICAgfSwgZGlyZWN0aW9uID09PSBDYWxlbmRhclllYXJOYXZEaXJlY3Rpb24uUHJldmlvdXMgPyBuYXZpZ2F0aW9uSWNvbnMudXBOYXZpZ2F0aW9uIDogbmF2aWdhdGlvbkljb25zLmRvd25OYXZpZ2F0aW9uKTtcbn07XG5DYWxlbmRhclllYXJOYXZBcnJvdy5kaXNwbGF5TmFtZSA9ICdDYWxlbmRhclllYXJOYXZBcnJvdyc7XG5jb25zdCBDYWxlbmRhclllYXJOYXYgPSAocHJvcHMpPT57XG4gICAgY29uc3QgeyBjbGFzc05hbWUgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUoe1xuICAgICAgICBjbGFzc05hbWVcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm5hdmlnYXRpb25CdXR0b25zQ29udGFpbmVyXG4gICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyWWVhck5hdkFycm93LCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBkaXJlY3Rpb246IENhbGVuZGFyWWVhck5hdkRpcmVjdGlvbi5QcmV2aW91c1xuICAgIH0pLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJZZWFyTmF2QXJyb3csIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGRpcmVjdGlvbjogQ2FsZW5kYXJZZWFyTmF2RGlyZWN0aW9uLk5leHRcbiAgICB9KSk7XG59O1xuQ2FsZW5kYXJZZWFyTmF2LmRpc3BsYXlOYW1lID0gJ0NhbGVuZGFyWWVhck5hdic7XG5jb25zdCBDYWxlbmRhclllYXJUaXRsZSA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgZnJvbVllYXIsIHRvWWVhciwgc3RyaW5ncyA9IERlZmF1bHRDYWxlbmRhclllYXJTdHJpbmdzLCBhbmltYXRlQmFja3dhcmRzLCBhbmltYXRpb25EaXJlY3Rpb24gfSA9IHByb3BzO1xuICAgIGNvbnN0IG9uSGVhZGVyU2VsZWN0ID0gKCk9PntcbiAgICAgICAgdmFyIF9wcm9wc19vbkhlYWRlclNlbGVjdDtcbiAgICAgICAgKF9wcm9wc19vbkhlYWRlclNlbGVjdCA9IHByb3BzLm9uSGVhZGVyU2VsZWN0KSA9PT0gbnVsbCB8fCBfcHJvcHNfb25IZWFkZXJTZWxlY3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wc19vbkhlYWRlclNlbGVjdC5jYWxsKHByb3BzLCB0cnVlKTtcbiAgICB9O1xuICAgIGNvbnN0IG9uSGVhZGVyS2V5RG93biA9IChldik9PntcbiAgICAgICAgaWYgKGV2LmtleSA9PT0gRW50ZXIgfHwgZXYua2V5ID09PSBTcGFjZSkge1xuICAgICAgICAgICAgb25IZWFkZXJTZWxlY3QoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25SZW5kZXJZZWFyID0gKHllYXIpPT57XG4gICAgICAgIHZhciBfcHJvcHNfb25SZW5kZXJZZWFyO1xuICAgICAgICB2YXIgX3Byb3BzX29uUmVuZGVyWWVhcjE7XG4gICAgICAgIHJldHVybiAoX3Byb3BzX29uUmVuZGVyWWVhcjEgPSAoX3Byb3BzX29uUmVuZGVyWWVhciA9IHByb3BzLm9uUmVuZGVyWWVhcikgPT09IG51bGwgfHwgX3Byb3BzX29uUmVuZGVyWWVhciA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3BzX29uUmVuZGVyWWVhci5jYWxsKHByb3BzLCB5ZWFyKSkgIT09IG51bGwgJiYgX3Byb3BzX29uUmVuZGVyWWVhcjEgIT09IHZvaWQgMCA/IF9wcm9wc19vblJlbmRlclllYXIxIDogeWVhcjtcbiAgICB9O1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUoe1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGhhc0hlYWRlckNsaWNrQ2FsbGJhY2s6ICEhcHJvcHMub25IZWFkZXJTZWxlY3QsXG4gICAgICAgIGFuaW1hdGVCYWNrd2FyZHMsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvblxuICAgIH0pO1xuICAgIGlmIChwcm9wcy5vbkhlYWRlclNlbGVjdCkge1xuICAgICAgICBjb25zdCByYW5nZUFyaWFMYWJlbCA9IHN0cmluZ3MucmFuZ2VBcmlhTGFiZWw7XG4gICAgICAgIGNvbnN0IGhlYWRlckFyaWFMYWJlbEZvcm1hdFN0cmluZyA9IHN0cmluZ3MuaGVhZGVyQXJpYUxhYmVsRm9ybWF0U3RyaW5nO1xuICAgICAgICBjb25zdCBjdXJyZW50RGF0ZVJhbmdlID0gcmFuZ2VBcmlhTGFiZWwgPyB0eXBlb2YgcmFuZ2VBcmlhTGFiZWwgPT09ICdzdHJpbmcnID8gcmFuZ2VBcmlhTGFiZWwgOiByYW5nZUFyaWFMYWJlbChwcm9wcykgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGFyaWFMYWJlbCA9IGhlYWRlckFyaWFMYWJlbEZvcm1hdFN0cmluZyA/IGhlYWRlckFyaWFMYWJlbEZvcm1hdFN0cmluZy5yZXBsYWNlKCd7MH0nLCBjdXJyZW50RGF0ZVJhbmdlICE9PSBudWxsICYmIGN1cnJlbnREYXRlUmFuZ2UgIT09IHZvaWQgMCA/IGN1cnJlbnREYXRlUmFuZ2UgOiAnJykgOiBjdXJyZW50RGF0ZVJhbmdlO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5jdXJyZW50SXRlbUJ1dHRvbixcbiAgICAgICAgICAgIG9uQ2xpY2s6IG9uSGVhZGVyU2VsZWN0LFxuICAgICAgICAgICAgb25LZXlEb3duOiBvbkhlYWRlcktleURvd24sXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICAgICAgICAgICAgcm9sZTogXCJidXR0b25cIixcbiAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCJcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgICAgICBcImFyaWEtbGl2ZVwiOiBcImFzc2VydGl2ZVwiLFxuICAgICAgICAgICAgXCJhcmlhLWF0b21pY1wiOiBcInRydWVcIlxuICAgICAgICB9LCBvblJlbmRlclllYXIoZnJvbVllYXIpLCBcIiAtIFwiLCBvblJlbmRlclllYXIodG9ZZWFyKSkpO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmN1cnJlbnRcbiAgICB9LCBvblJlbmRlclllYXIoZnJvbVllYXIpLCBcIiAtIFwiLCBvblJlbmRlclllYXIodG9ZZWFyKSk7XG59O1xuQ2FsZW5kYXJZZWFyVGl0bGUuZGlzcGxheU5hbWUgPSAnQ2FsZW5kYXJZZWFyVGl0bGUnO1xuY29uc3QgQ2FsZW5kYXJZZWFySGVhZGVyID0gKHByb3BzKT0+e1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBhbmltYXRlQmFja3dhcmRzLCBhbmltYXRpb25EaXJlY3Rpb24sIG9uUmVuZGVyVGl0bGUgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUoe1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGhhc0hlYWRlckNsaWNrQ2FsbGJhY2s6ICEhcHJvcHMub25IZWFkZXJTZWxlY3QsXG4gICAgICAgIGFuaW1hdGVCYWNrd2FyZHMsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvblxuICAgIH0pO1xuICAgIHZhciBfb25SZW5kZXJUaXRsZTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmhlYWRlckNvbnRhaW5lclxuICAgIH0sIChfb25SZW5kZXJUaXRsZSA9IG9uUmVuZGVyVGl0bGUgPT09IG51bGwgfHwgb25SZW5kZXJUaXRsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZW5kZXJUaXRsZShwcm9wcykpICE9PSBudWxsICYmIF9vblJlbmRlclRpdGxlICE9PSB2b2lkIDAgPyBfb25SZW5kZXJUaXRsZSA6IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDYWxlbmRhclllYXJUaXRsZSwgcHJvcHMpLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJZZWFyTmF2LCBwcm9wcykpO1xufTtcbkNhbGVuZGFyWWVhckhlYWRlci5kaXNwbGF5TmFtZSA9ICdDYWxlbmRhclllYXJIZWFkZXInO1xuZnVuY3Rpb24gdXNlQW5pbWF0ZUJhY2t3YXJkcyh7IHNlbGVjdGVkWWVhciwgbmF2aWdhdGVkWWVhciB9KSB7XG4gICAgY29uc3QgcmFuZ2VZZWFyID0gc2VsZWN0ZWRZZWFyIHx8IG5hdmlnYXRlZFllYXIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IGZyb21ZZWFyID0gTWF0aC5mbG9vcihyYW5nZVllYXIgLyAxMCkgKiAxMDtcbiAgICBjb25zdCBwcmV2aW91c0Zyb21ZZWFyUmVmID0gUmVhY3QudXNlUmVmKGZyb21ZZWFyKTtcbiAgICBSZWFjdC51c2VSZWYoKCk9PntcbiAgICAgICAgcHJldmlvdXNGcm9tWWVhclJlZi5jdXJyZW50ID0gZnJvbVllYXI7XG4gICAgfSk7XG4gICAgY29uc3QgcHJldmlvdXNGcm9tWWVhciA9IHByZXZpb3VzRnJvbVllYXJSZWYuY3VycmVudDtcbiAgICBpZiAoIXByZXZpb3VzRnJvbVllYXIgfHwgcHJldmlvdXNGcm9tWWVhciA9PT0gZnJvbVllYXIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKHByZXZpb3VzRnJvbVllYXIgPiBmcm9tWWVhcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gdXNlWWVhclJhbmdlU3RhdGUoeyBzZWxlY3RlZFllYXIsIG5hdmlnYXRlZFllYXIgfSkge1xuICAgIGNvbnN0IHJhbmdlWWVhciA9IFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkWWVhciB8fCBuYXZpZ2F0ZWRZZWFyIHx8IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC8gMTApICogMTA7XG4gICAgfSwgW1xuICAgICAgICBuYXZpZ2F0ZWRZZWFyLFxuICAgICAgICBzZWxlY3RlZFllYXJcbiAgICBdKTtcbiAgICBjb25zdCBbZnJvbVllYXIsIHNldEZyb21ZZWFyXSA9IFJlYWN0LnVzZVN0YXRlKHJhbmdlWWVhcik7XG4gICAgY29uc3Qgb25OYXZOZXh0ID0gKCk9PntcbiAgICAgICAgc2V0RnJvbVllYXIoKHllYXIpPT55ZWFyICsgQ0VMTF9DT1VOVCk7XG4gICAgfTtcbiAgICBjb25zdCBvbk5hdlByZXZpb3VzID0gKCk9PntcbiAgICAgICAgc2V0RnJvbVllYXIoKHllYXIpPT55ZWFyIC0gQ0VMTF9DT1VOVCk7XG4gICAgfTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgc2V0RnJvbVllYXIocmFuZ2VZZWFyKTtcbiAgICB9LCBbXG4gICAgICAgIHJhbmdlWWVhclxuICAgIF0pO1xuICAgIGNvbnN0IHRvWWVhciA9IGZyb21ZZWFyICsgQ0VMTF9DT1VOVCAtIDE7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZnJvbVllYXIsXG4gICAgICAgIHRvWWVhcixcbiAgICAgICAgb25OYXZOZXh0LFxuICAgICAgICBvbk5hdlByZXZpb3VzXG4gICAgXTtcbn1cbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IENhbGVuZGFyWWVhciA9IChwcm9wcyk9PntcbiAgICBjb25zdCBhbmltYXRlQmFja3dhcmRzID0gdXNlQW5pbWF0ZUJhY2t3YXJkcyhwcm9wcyk7XG4gICAgY29uc3QgW2Zyb21ZZWFyLCB0b1llYXIsIG9uTmF2TmV4dCwgb25OYXZQcmV2aW91c10gPSB1c2VZZWFyUmFuZ2VTdGF0ZShwcm9wcyk7XG4gICAgY29uc3QgZ3JpZFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHByb3BzLmNvbXBvbmVudFJlZiwgKCk9Pih7XG4gICAgICAgICAgICBmb2N1cyAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9ncmlkUmVmX2N1cnJlbnRfZm9jdXMsIF9ncmlkUmVmX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgKF9ncmlkUmVmX2N1cnJlbnQgPSBncmlkUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9ncmlkUmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfZ3JpZFJlZl9jdXJyZW50X2ZvY3VzID0gX2dyaWRSZWZfY3VycmVudC5mb2N1cykgPT09IG51bGwgfHwgX2dyaWRSZWZfY3VycmVudF9mb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2dyaWRSZWZfY3VycmVudF9mb2N1cy5jYWxsKF9ncmlkUmVmX2N1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSB1c2VDYWxlbmRhclllYXJTdHlsZXNfdW5zdGFibGUoe1xuICAgICAgICBjbGFzc05hbWVcbiAgICB9KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnJvb3RcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJZZWFySGVhZGVyLCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBmcm9tWWVhcjogZnJvbVllYXIsXG4gICAgICAgIHRvWWVhcjogdG9ZZWFyLFxuICAgICAgICBvblNlbGVjdFByZXY6IG9uTmF2UHJldmlvdXMsXG4gICAgICAgIG9uU2VsZWN0TmV4dDogb25OYXZOZXh0LFxuICAgICAgICBhbmltYXRlQmFja3dhcmRzOiBhbmltYXRlQmFja3dhcmRzXG4gICAgfSksIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDYWxlbmRhclllYXJHcmlkLCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBmcm9tWWVhcjogZnJvbVllYXIsXG4gICAgICAgIHRvWWVhcjogdG9ZZWFyLFxuICAgICAgICBhbmltYXRlQmFja3dhcmRzOiBhbmltYXRlQmFja3dhcmRzLFxuICAgICAgICBjb21wb25lbnRSZWY6IGdyaWRSZWZcbiAgICB9KSk7XG59O1xuQ2FsZW5kYXJZZWFyLmRpc3BsYXlOYW1lID0gJ0NhbGVuZGFyWWVhcic7XG4iLCJpbXBvcnQgeyB1c2VDYWxlbmRhclBpY2tlclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4uL0NhbGVuZGFyUGlja2VyL3VzZUNhbGVuZGFyUGlja2VyU3R5bGVzLnN0eWxlcyc7XG4vKipcbiAqICBAaW50ZXJuYWxcbiAqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBDYWxlbmRhck1vbnRoIHNsb3RzIGJhc2VkIG9uIHRoZSBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXNlQ2FsZW5kYXJNb250aFN0eWxlc191bnN0YWJsZSA9IHByb3BzID0+IHtcbiAgJ3VzZSBubyBtZW1vJztcblxuICByZXR1cm4gdXNlQ2FsZW5kYXJQaWNrZXJTdHlsZXNfdW5zdGFibGUocHJvcHMpO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZUNhbGVuZGFyTW9udGhTdHlsZXMuc3R5bGVzLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEVudGVyIH0gZnJvbSAnQGZsdWVudHVpL2tleWJvYXJkLWtleXMnO1xuaW1wb3J0IHsgdXNlQXJyb3dOYXZpZ2F0aW9uR3JvdXAgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGFic3Rlcic7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyBhZGRZZWFycywgY29tcGFyZURhdGVQYXJ0LCBnZXRNb250aEVuZCwgZ2V0TW9udGhTdGFydCwgZ2V0WWVhckVuZCwgZ2V0WWVhclN0YXJ0LCBzZXRNb250aCwgREVGQVVMVF9EQVRFX0ZPUk1BVFRJTkcgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXIgfSBmcm9tICcuLi9DYWxlbmRhclllYXIvQ2FsZW5kYXJZZWFyJztcbmltcG9ydCB7IHVzZUNhbGVuZGFyTW9udGhTdHlsZXNfdW5zdGFibGUgfSBmcm9tICcuL3VzZUNhbGVuZGFyTW9udGhTdHlsZXMuc3R5bGVzJztcbmNvbnN0IE1PTlRIU19QRVJfUk9XID0gNDtcbmZ1bmN0aW9uIHVzZUFuaW1hdGVCYWNrd2FyZHMoeyBuYXZpZ2F0ZWREYXRlIH0pIHtcbiAgICBjb25zdCBjdXJyZW50WWVhciA9IG5hdmlnYXRlZERhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBwcmV2aW91c1llYXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgcHJldmlvdXNZZWFyUmVmLmN1cnJlbnQgPSBjdXJyZW50WWVhcjtcbiAgICB9KTtcbiAgICBjb25zdCBwcmV2aW91c1llYXIgPSBwcmV2aW91c1llYXJSZWYuY3VycmVudDtcbiAgICBpZiAocHJldmlvdXNZZWFyID09PSB1bmRlZmluZWQgfHwgcHJldmlvdXNZZWFyID09PSBjdXJyZW50WWVhcikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwcmV2aW91c1llYXIgPiBjdXJyZW50WWVhcjtcbiAgICB9XG59XG5mdW5jdGlvbiB1c2VGb2N1c0xvZ2ljKHsgY29tcG9uZW50UmVmIH0pIHtcbiAgICBjb25zdCBuYXZpZ2F0ZWRNb250aFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjYWxlbmRhclllYXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZm9jdXNPblVwZGF0ZSA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZm9jdXMgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBpZiAoY2FsZW5kYXJZZWFyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNhbGVuZGFyWWVhclJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAobmF2aWdhdGVkTW9udGhSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbmF2aWdhdGVkTW9udGhSZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUoY29tcG9uZW50UmVmLCAoKT0+KHtcbiAgICAgICAgICAgIGZvY3VzXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGZvY3VzXG4gICAgXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChmb2N1c09uVXBkYXRlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGZvY3VzKCk7XG4gICAgICAgICAgICBmb2N1c09uVXBkYXRlLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGZvY3VzT25OZXh0VXBkYXRlID0gKCk9PntcbiAgICAgICAgZm9jdXNPblVwZGF0ZS5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9O1xuICAgIHJldHVybiBbXG4gICAgICAgIG5hdmlnYXRlZE1vbnRoUmVmLFxuICAgICAgICBjYWxlbmRhclllYXJSZWYsXG4gICAgICAgIGZvY3VzT25OZXh0VXBkYXRlXG4gICAgXTtcbn1cbi8qKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGNvbnN0IENhbGVuZGFyTW9udGggPSAocHJvcHMpPT57XG4gICAgY29uc3QgeyBhbGxGb2N1c2FibGUsIGFuaW1hdGlvbkRpcmVjdGlvbiwgY2xhc3NOYW1lLCBjb21wb25lbnRSZWYsIGRhdGVUaW1lRm9ybWF0dGVyID0gREVGQVVMVF9EQVRFX0ZPUk1BVFRJTkcsIGhpZ2hsaWdodEN1cnJlbnRNb250aCwgaGlnaGxpZ2h0U2VsZWN0ZWRNb250aCwgbWF4RGF0ZSwgbWluRGF0ZSwgbmF2aWdhdGVkRGF0ZSwgbmF2aWdhdGlvbkljb25zLCBvbkhlYWRlclNlbGVjdDogb25Vc2VySGVhZGVyU2VsZWN0LCBvbk5hdmlnYXRlRGF0ZSwgc2VsZWN0ZWREYXRlLCBzdHJpbmdzLCB0b2RheSA9IG5ldyBEYXRlKCksIHllYXJQaWNrZXJIaWRkZW4gPSBmYWxzZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgW25hdmlnYXRlZE1vbnRoUmVmLCBjYWxlbmRhclllYXJSZWYsIGZvY3VzT25OZXh0VXBkYXRlXSA9IHVzZUZvY3VzTG9naWMoe1xuICAgICAgICBjb21wb25lbnRSZWZcbiAgICB9KTtcbiAgICBjb25zdCBbaXNZZWFyUGlja2VyVmlzaWJsZSwgc2V0SXNZZWFyUGlja2VyVmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgYW5pbWF0ZUJhY2t3YXJkcyA9IHVzZUFuaW1hdGVCYWNrd2FyZHMoe1xuICAgICAgICBuYXZpZ2F0ZWREYXRlXG4gICAgfSk7XG4gICAgY29uc3Qgc2VsZWN0TW9udGhDYWxsYmFjayA9IChuZXdNb250aCk9PntcbiAgICAgICAgcmV0dXJuICgpPT5vblNlbGVjdE1vbnRoKG5ld01vbnRoKTtcbiAgICB9O1xuICAgIGNvbnN0IG9uU2VsZWN0TmV4dFllYXIgPSAoKT0+e1xuICAgICAgICBvbk5hdmlnYXRlRGF0ZShhZGRZZWFycyhuYXZpZ2F0ZWREYXRlLCAxKSwgZmFsc2UpO1xuICAgIH07XG4gICAgY29uc3Qgb25TZWxlY3RQcmV2WWVhciA9ICgpPT57XG4gICAgICAgIG9uTmF2aWdhdGVEYXRlKGFkZFllYXJzKG5hdmlnYXRlZERhdGUsIC0xKSwgZmFsc2UpO1xuICAgIH07XG4gICAgY29uc3Qgb25TZWxlY3RNb250aCA9IChuZXdNb250aCk9PntcbiAgICAgICAgLy8gSWYgaGVhZGVyIGlzIGNsaWNrYWJsZSB0aGUgY2FsZW5kYXJzIGFyZSBvdmVybGF5ZWQsIHN3aXRjaCBiYWNrIHRvIGRheSBwaWNrZXIgd2hlbiBtb250aCBpcyBjbGlja2VkXG4gICAgICAgIG9uVXNlckhlYWRlclNlbGVjdCA9PT0gbnVsbCB8fCBvblVzZXJIZWFkZXJTZWxlY3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVXNlckhlYWRlclNlbGVjdCgpO1xuICAgICAgICBvbk5hdmlnYXRlRGF0ZShzZXRNb250aChuYXZpZ2F0ZWREYXRlLCBuZXdNb250aCksIHRydWUpO1xuICAgIH07XG4gICAgY29uc3Qgb25IZWFkZXJTZWxlY3QgPSAoKT0+e1xuICAgICAgICBpZiAoIXllYXJQaWNrZXJIaWRkZW4pIHtcbiAgICAgICAgICAgIGZvY3VzT25OZXh0VXBkYXRlKCk7XG4gICAgICAgICAgICBzZXRJc1llYXJQaWNrZXJWaXNpYmxlKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb25Vc2VySGVhZGVyU2VsZWN0ID09PSBudWxsIHx8IG9uVXNlckhlYWRlclNlbGVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Vc2VySGVhZGVyU2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uU2VsZWN0WWVhciA9IChzZWxlY3RlZFllYXIpPT57XG4gICAgICAgIGZvY3VzT25OZXh0VXBkYXRlKCk7XG4gICAgICAgIGNvbnN0IG5hdlllYXIgPSBuYXZpZ2F0ZWREYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGlmIChuYXZZZWFyICE9PSBzZWxlY3RlZFllYXIpIHtcbiAgICAgICAgICAgIGxldCBuZXdOYXZpZ2F0aW9uRGF0ZSA9IG5ldyBEYXRlKG5hdmlnYXRlZERhdGUuZ2V0VGltZSgpKTtcbiAgICAgICAgICAgIG5ld05hdmlnYXRpb25EYXRlLnNldEZ1bGxZZWFyKHNlbGVjdGVkWWVhcik7XG4gICAgICAgICAgICAvLyBmb3IgbWluIGFuZCBtYXggZGF0ZXMsIGFkanVzdCB0aGUgbmV3IG5hdmlnYXRpb24gZGF0ZSAtIHBlcmhhcHMgdGhpcyBzaG91bGQgYmVcbiAgICAgICAgICAgIC8vIGNoZWNrZWQgb24gdGhlIG1hc3RlciBuYXZpZ2F0aW9uIGRhdGUgaGFuZGxlciAoaS5lLiBpbiBDYWxlbmRhcilcbiAgICAgICAgICAgIGlmIChtYXhEYXRlICYmIG5ld05hdmlnYXRpb25EYXRlID4gbWF4RGF0ZSkge1xuICAgICAgICAgICAgICAgIG5ld05hdmlnYXRpb25EYXRlID0gc2V0TW9udGgobmV3TmF2aWdhdGlvbkRhdGUsIG1heERhdGUuZ2V0TW9udGgoKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1pbkRhdGUgJiYgbmV3TmF2aWdhdGlvbkRhdGUgPCBtaW5EYXRlKSB7XG4gICAgICAgICAgICAgICAgbmV3TmF2aWdhdGlvbkRhdGUgPSBzZXRNb250aChuZXdOYXZpZ2F0aW9uRGF0ZSwgbWluRGF0ZS5nZXRNb250aCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uTmF2aWdhdGVEYXRlKG5ld05hdmlnYXRpb25EYXRlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRJc1llYXJQaWNrZXJWaXNpYmxlKGZhbHNlKTtcbiAgICB9O1xuICAgIGNvbnN0IG9uWWVhclBpY2tlckhlYWRlclNlbGVjdCA9IChmb2N1cyk9PntcbiAgICAgICAgZm9jdXNPbk5leHRVcGRhdGUoKTtcbiAgICAgICAgc2V0SXNZZWFyUGlja2VyVmlzaWJsZShmYWxzZSk7XG4gICAgfTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gZGF0ZVRpbWVGb3JtYXR0ZXI7XG4gICAgLy8gZGV0ZXJtaW5lIGlmIHByZXZpb3VzL25leHQgeWVhcnMgYXJlIGluIGJvdW5kc1xuICAgIGNvbnN0IGlzUHJldlllYXJJbkJvdW5kcyA9IG1pbkRhdGUgPyBjb21wYXJlRGF0ZVBhcnQobWluRGF0ZSwgZ2V0WWVhclN0YXJ0KG5hdmlnYXRlZERhdGUpKSA8IDAgOiB0cnVlO1xuICAgIGNvbnN0IGlzTmV4dFllYXJJbkJvdW5kcyA9IG1heERhdGUgPyBjb21wYXJlRGF0ZVBhcnQoZ2V0WWVhckVuZChuYXZpZ2F0ZWREYXRlKSwgbWF4RGF0ZSkgPCAwIDogdHJ1ZTtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gdXNlQ2FsZW5kYXJNb250aFN0eWxlc191bnN0YWJsZSh7XG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgaGFzSGVhZGVyQ2xpY2tDYWxsYmFjazogISFvblVzZXJIZWFkZXJTZWxlY3QgfHwgIXllYXJQaWNrZXJIaWRkZW4sXG4gICAgICAgIGhpZ2hsaWdodEN1cnJlbnQ6IGhpZ2hsaWdodEN1cnJlbnRNb250aCxcbiAgICAgICAgaGlnaGxpZ2h0U2VsZWN0ZWQ6IGhpZ2hsaWdodFNlbGVjdGVkTW9udGgsXG4gICAgICAgIGFuaW1hdGVCYWNrd2FyZHMsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvblxuICAgIH0pO1xuICAgIGNvbnN0IGFycm93TmF2aWdhdGlvbkF0dHJpYnV0ZXMgPSB1c2VBcnJvd05hdmlnYXRpb25Hcm91cCh7XG4gICAgICAgIGF4aXM6ICdncmlkJ1xuICAgIH0pO1xuICAgIGlmIChpc1llYXJQaWNrZXJWaXNpYmxlKSB7XG4gICAgICAgIGNvbnN0IFtvblJlbmRlclllYXIsIHllYXJTdHJpbmdzXSA9IGdldFllYXJTdHJpbmdzKHtcbiAgICAgICAgICAgIGRhdGVUaW1lRm9ybWF0dGVyLFxuICAgICAgICAgICAgbmF2aWdhdGVkRGF0ZSxcbiAgICAgICAgICAgIHN0cmluZ3NcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHVzZSBuYXZpZ2F0ZWQgZGF0ZSBmb3IgdGhlIHllYXIgcGlja2VyXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJZZWFyLCB7XG4gICAgICAgICAgICBrZXk6ICdjYWxlbmRhclllYXInLFxuICAgICAgICAgICAgbWluWWVhcjogbWluRGF0ZSA/IG1pbkRhdGUuZ2V0RnVsbFllYXIoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG1heFllYXI6IG1heERhdGUgPyBtYXhEYXRlLmdldEZ1bGxZZWFyKCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LW5vLWJpbmRcbiAgICAgICAgICAgIG9uU2VsZWN0WWVhcjogb25TZWxlY3RZZWFyLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2pzeC1uby1iaW5kXG4gICAgICAgICAgICBvbkhlYWRlclNlbGVjdDogb25ZZWFyUGlja2VySGVhZGVyU2VsZWN0LFxuICAgICAgICAgICAgc2VsZWN0ZWRZZWFyOiBzZWxlY3RlZERhdGUgPyBzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSA6IG5hdmlnYXRlZERhdGUgPyBuYXZpZ2F0ZWREYXRlLmdldEZ1bGxZZWFyKCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYXZpZ2F0ZWRZZWFyOiBuYXZpZ2F0ZWREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICBuYXZpZ2F0aW9uSWNvbnM6IG5hdmlnYXRpb25JY29ucyxcbiAgICAgICAgICAgIG9uUmVuZGVyWWVhcjogb25SZW5kZXJZZWFyLFxuICAgICAgICAgICAgc3RyaW5nczogeWVhclN0cmluZ3MsXG4gICAgICAgICAgICBjb21wb25lbnRSZWY6IGNhbGVuZGFyWWVhclJlZixcbiAgICAgICAgICAgIGhpZ2hsaWdodEN1cnJlbnRZZWFyOiBoaWdobGlnaHRDdXJyZW50TW9udGgsXG4gICAgICAgICAgICBoaWdobGlnaHRTZWxlY3RlZFllYXI6IGhpZ2hsaWdodFNlbGVjdGVkTW9udGgsXG4gICAgICAgICAgICBhbmltYXRpb25EaXJlY3Rpb246IGFuaW1hdGlvbkRpcmVjdGlvblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgcm93SW5kZXhlcyA9IFtdO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBzdHJpbmdzLnNob3J0TW9udGhzLmxlbmd0aCAvIE1PTlRIU19QRVJfUk9XOyBpKyspe1xuICAgICAgICByb3dJbmRleGVzLnB1c2goaSk7XG4gICAgfVxuICAgIGNvbnN0IHllYXJTdHJpbmcgPSBkYXRlRm9ybWF0dGVyLmZvcm1hdFllYXIobmF2aWdhdGVkRGF0ZSk7XG4gICAgY29uc3QgaGVhZGVyQXJpYUxhYmVsID0gc3RyaW5ncy5tb250aFBpY2tlckhlYWRlckFyaWFMYWJlbCA/IHN0cmluZ3MubW9udGhQaWNrZXJIZWFkZXJBcmlhTGFiZWwucmVwbGFjZSgnezB9JywgeWVhclN0cmluZykgOiB5ZWFyU3RyaW5nO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMucm9vdFxuICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5oZWFkZXJDb250YWluZXJcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMuY3VycmVudEl0ZW1CdXR0b24sXG4gICAgICAgIG9uQ2xpY2s6IG9uSGVhZGVyU2VsZWN0LFxuICAgICAgICBvbktleURvd246IG9uQnV0dG9uS2V5RG93bihvbkhlYWRlclNlbGVjdCksXG4gICAgICAgIFwiYXJpYS1sYWJlbFwiOiBoZWFkZXJBcmlhTGFiZWwsXG4gICAgICAgIHRhYkluZGV4OiAhIW9uVXNlckhlYWRlclNlbGVjdCB8fCAheWVhclBpY2tlckhpZGRlbiA/IDAgOiAtMSxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBcImFyaWEtbGl2ZVwiOiBcInBvbGl0ZVwiLFxuICAgICAgICBcImFyaWEtYXRvbWljXCI6IFwidHJ1ZVwiXG4gICAgfSwgeWVhclN0cmluZykpLCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMubmF2aWdhdGlvbkJ1dHRvbnNDb250YWluZXJcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcyhjbGFzc05hbWVzLm5hdmlnYXRpb25CdXR0b24sICFpc1ByZXZZZWFySW5Cb3VuZHMgJiYgY2xhc3NOYW1lcy5kaXNhYmxlZCksXG4gICAgICAgIFwiYXJpYS1kaXNhYmxlZFwiOiAhaXNQcmV2WWVhckluQm91bmRzLFxuICAgICAgICB0YWJJbmRleDogaXNQcmV2WWVhckluQm91bmRzID8gdW5kZWZpbmVkIDogYWxsRm9jdXNhYmxlID8gMCA6IC0xLFxuICAgICAgICBvbkNsaWNrOiBpc1ByZXZZZWFySW5Cb3VuZHMgPyBvblNlbGVjdFByZXZZZWFyIDogdW5kZWZpbmVkLFxuICAgICAgICBvbktleURvd246IGlzUHJldlllYXJJbkJvdW5kcyA/IG9uQnV0dG9uS2V5RG93bihvblNlbGVjdFByZXZZZWFyKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdGl0bGU6IHN0cmluZ3MucHJldlllYXJBcmlhTGFiZWwgPyBzdHJpbmdzLnByZXZZZWFyQXJpYUxhYmVsICsgJyAnICsgZGF0ZUZvcm1hdHRlci5mb3JtYXRZZWFyKGFkZFllYXJzKG5hdmlnYXRlZERhdGUsIC0xKSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCJcbiAgICB9LCBuYXZpZ2F0aW9uSWNvbnMudXBOYXZpZ2F0aW9uKSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoY2xhc3NOYW1lcy5uYXZpZ2F0aW9uQnV0dG9uLCAhaXNOZXh0WWVhckluQm91bmRzICYmIGNsYXNzTmFtZXMuZGlzYWJsZWQpLFxuICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogIWlzTmV4dFllYXJJbkJvdW5kcyxcbiAgICAgICAgdGFiSW5kZXg6IGlzTmV4dFllYXJJbkJvdW5kcyA/IHVuZGVmaW5lZCA6IGFsbEZvY3VzYWJsZSA/IDAgOiAtMSxcbiAgICAgICAgb25DbGljazogaXNOZXh0WWVhckluQm91bmRzID8gb25TZWxlY3ROZXh0WWVhciA6IHVuZGVmaW5lZCxcbiAgICAgICAgb25LZXlEb3duOiBpc05leHRZZWFySW5Cb3VuZHMgPyBvbkJ1dHRvbktleURvd24ob25TZWxlY3ROZXh0WWVhcikgOiB1bmRlZmluZWQsXG4gICAgICAgIHRpdGxlOiBzdHJpbmdzLm5leHRZZWFyQXJpYUxhYmVsID8gc3RyaW5ncy5uZXh0WWVhckFyaWFMYWJlbCArICcgJyArIGRhdGVGb3JtYXR0ZXIuZm9ybWF0WWVhcihhZGRZZWFycyhuYXZpZ2F0ZWREYXRlLCAxKSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHR5cGU6IFwiYnV0dG9uXCJcbiAgICB9LCBuYXZpZ2F0aW9uSWNvbnMuZG93bk5hdmlnYXRpb24pKSksIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIC4uLmFycm93TmF2aWdhdGlvbkF0dHJpYnV0ZXMsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5ncmlkQ29udGFpbmVyLFxuICAgICAgICByb2xlOiBcImdyaWRcIixcbiAgICAgICAgXCJhcmlhLWxhYmVsXCI6IHllYXJTdHJpbmdcbiAgICB9LCByb3dJbmRleGVzLm1hcCgocm93TnVtKT0+e1xuICAgICAgICBjb25zdCBtb250aHNGb3JSb3cgPSBzdHJpbmdzLnNob3J0TW9udGhzLnNsaWNlKHJvd051bSAqIE1PTlRIU19QRVJfUk9XLCAocm93TnVtICsgMSkgKiBNT05USFNfUEVSX1JPVyk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAga2V5OiAnbW9udGhSb3dfJyArIHJvd051bSArIG5hdmlnYXRlZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICAgIHJvbGU6IFwicm93XCIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMuYnV0dG9uUm93XG4gICAgICAgIH0sIG1vbnRoc0ZvclJvdy5tYXAoKG1vbnRoLCBpbmRleCk9PntcbiAgICAgICAgICAgIGNvbnN0IG1vbnRoSW5kZXggPSByb3dOdW0gKiBNT05USFNfUEVSX1JPVyArIGluZGV4O1xuICAgICAgICAgICAgY29uc3QgaW5kZXhlZE1vbnRoID0gc2V0TW9udGgobmF2aWdhdGVkRGF0ZSwgbW9udGhJbmRleCk7XG4gICAgICAgICAgICBjb25zdCBpc05hdmlnYXRlZE1vbnRoID0gbmF2aWdhdGVkRGF0ZS5nZXRNb250aCgpID09PSBtb250aEluZGV4O1xuICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZE1vbnRoID0gc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgPT09IG1vbnRoSW5kZXg7XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkWWVhciA9IHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpID09PSBuYXZpZ2F0ZWREYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgICAgICBjb25zdCBpc0luQm91bmRzID0gKG1pbkRhdGUgPyBjb21wYXJlRGF0ZVBhcnQobWluRGF0ZSwgZ2V0TW9udGhFbmQoaW5kZXhlZE1vbnRoKSkgPCAxIDogdHJ1ZSkgJiYgKG1heERhdGUgPyBjb21wYXJlRGF0ZVBhcnQoZ2V0TW9udGhTdGFydChpbmRleGVkTW9udGgpLCBtYXhEYXRlKSA8IDEgOiB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAgICAgICAgICAgIHJlZjogaXNOYXZpZ2F0ZWRNb250aCA/IG5hdmlnYXRlZE1vbnRoUmVmIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJvbGU6ICdncmlkY2VsbCcsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoY2xhc3NOYW1lcy5pdGVtQnV0dG9uLCBoaWdobGlnaHRDdXJyZW50TW9udGggJiYgaXNDdXJyZW50TW9udGgobW9udGhJbmRleCwgbmF2aWdhdGVkRGF0ZS5nZXRGdWxsWWVhcigpLCB0b2RheSkgJiYgY2xhc3NOYW1lcy5jdXJyZW50LCBoaWdobGlnaHRTZWxlY3RlZE1vbnRoICYmIGlzU2VsZWN0ZWRNb250aCAmJiBpc1NlbGVjdGVkWWVhciAmJiBjbGFzc05hbWVzLnNlbGVjdGVkLCAhaXNJbkJvdW5kcyAmJiBjbGFzc05hbWVzLmRpc2FibGVkKSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogIWFsbEZvY3VzYWJsZSAmJiAhaXNJbkJvdW5kcyxcbiAgICAgICAgICAgICAgICBrZXk6IG1vbnRoSW5kZXgsXG4gICAgICAgICAgICAgICAgb25DbGljazogaXNJbkJvdW5kcyA/IHNlbGVjdE1vbnRoQ2FsbGJhY2sobW9udGhJbmRleCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBpc0luQm91bmRzID8gb25CdXR0b25LZXlEb3duKHNlbGVjdE1vbnRoQ2FsbGJhY2sobW9udGhJbmRleCkpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBkYXRlRm9ybWF0dGVyLmZvcm1hdE1vbnRoKGluZGV4ZWRNb250aCwgc3RyaW5ncyksXG4gICAgICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IGlzTmF2aWdhdGVkTW9udGgsXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IGlzSW5Cb3VuZHMgPyAwIDogLTEsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgICAgICAgICAgfSwgbW9udGgpO1xuICAgICAgICB9KSk7XG4gICAgfSkpKTtcbn07XG5DYWxlbmRhck1vbnRoLmRpc3BsYXlOYW1lID0gJ0NhbGVuZGFyTW9udGgnO1xuZnVuY3Rpb24gZ2V0WWVhclN0cmluZ3MoeyBkYXRlVGltZUZvcm1hdHRlciwgbmF2aWdhdGVkRGF0ZSwgc3RyaW5ncyB9KSB7XG4gICAgY29uc3QgeWVhclRvU3RyaW5nID0gKHllYXIpPT57XG4gICAgICAgIGlmIChkYXRlVGltZUZvcm1hdHRlcikge1xuICAgICAgICAgICAgLy8gY3JlYXRlIGEgZGF0ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBuYXYgZGF0ZVxuICAgICAgICAgICAgY29uc3QgeWVhckZvcm1hdHRpbmdEYXRlID0gbmV3IERhdGUobmF2aWdhdGVkRGF0ZS5nZXRUaW1lKCkpO1xuICAgICAgICAgICAgeWVhckZvcm1hdHRpbmdEYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGVUaW1lRm9ybWF0dGVyLmZvcm1hdFllYXIoeWVhckZvcm1hdHRpbmdEYXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RyaW5nKHllYXIpO1xuICAgIH07XG4gICAgY29uc3QgeWVhclJhbmdlVG9TdHJpbmcgPSAoeWVhclJhbmdlKT0+e1xuICAgICAgICByZXR1cm4gYCR7eWVhclRvU3RyaW5nKHllYXJSYW5nZS5mcm9tWWVhcil9IC0gJHt5ZWFyVG9TdHJpbmcoeWVhclJhbmdlLnRvWWVhcil9YDtcbiAgICB9O1xuICAgIGNvbnN0IHllYXJSYW5nZVRvTmV4dERlY2FkZUxhYmVsID0gKHllYXJSYW5nZSk9PntcbiAgICAgICAgcmV0dXJuIHN0cmluZ3MubmV4dFllYXJSYW5nZUFyaWFMYWJlbCA/IGAke3N0cmluZ3MubmV4dFllYXJSYW5nZUFyaWFMYWJlbH0gJHt5ZWFyUmFuZ2VUb1N0cmluZyh5ZWFyUmFuZ2UpfWAgOiAnJztcbiAgICB9O1xuICAgIGNvbnN0IHllYXJSYW5nZVRvUHJldkRlY2FkZUxhYmVsID0gKHllYXJSYW5nZSk9PntcbiAgICAgICAgcmV0dXJuIHN0cmluZ3MucHJldlllYXJSYW5nZUFyaWFMYWJlbCA/IGAke3N0cmluZ3MucHJldlllYXJSYW5nZUFyaWFMYWJlbH0gJHt5ZWFyUmFuZ2VUb1N0cmluZyh5ZWFyUmFuZ2UpfWAgOiAnJztcbiAgICB9O1xuICAgIHJldHVybiBbXG4gICAgICAgIHllYXJUb1N0cmluZyxcbiAgICAgICAge1xuICAgICAgICAgICAgcmFuZ2VBcmlhTGFiZWw6IHllYXJSYW5nZVRvU3RyaW5nLFxuICAgICAgICAgICAgcHJldlJhbmdlQXJpYUxhYmVsOiB5ZWFyUmFuZ2VUb1ByZXZEZWNhZGVMYWJlbCxcbiAgICAgICAgICAgIG5leHRSYW5nZUFyaWFMYWJlbDogeWVhclJhbmdlVG9OZXh0RGVjYWRlTGFiZWwsXG4gICAgICAgICAgICBoZWFkZXJBcmlhTGFiZWxGb3JtYXRTdHJpbmc6IHN0cmluZ3MueWVhclBpY2tlckhlYWRlckFyaWFMYWJlbFxuICAgICAgICB9XG4gICAgXTtcbn1cbmZ1bmN0aW9uIGlzQ3VycmVudE1vbnRoKG1vbnRoLCB5ZWFyLCB0b2RheSkge1xuICAgIHJldHVybiB0b2RheS5nZXRGdWxsWWVhcigpID09PSB5ZWFyICYmIHRvZGF5LmdldE1vbnRoKCkgPT09IG1vbnRoO1xufVxuZnVuY3Rpb24gb25CdXR0b25LZXlEb3duKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIChldik9PntcbiAgICAgICAgc3dpdGNoKGV2LmtleSl7XG4gICAgICAgICAgICBjYXNlIEVudGVyOlxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQXJyb3dEb3duUmVndWxhciwgQXJyb3dVcFJlZ3VsYXIsIERpc21pc3NSZWd1bGFyIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWljb25zJztcbmV4cG9ydCBjb25zdCBkZWZhdWx0TmF2aWdhdGlvbkljb25zID0ge1xuICAgIGRpc21pc3M6IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChEaXNtaXNzUmVndWxhciwgbnVsbCksXG4gICAgZG93bk5hdmlnYXRpb246IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChBcnJvd0Rvd25SZWd1bGFyLCBudWxsKSxcbiAgICB1cE5hdmlnYXRpb246IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChBcnJvd1VwUmVndWxhciwgbnVsbClcbn07XG4iLCJpbXBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHsgX19zdHlsZXMsIG1lcmdlQ2xhc3Nlcywgc2hvcnRoYW5kcyB9IGZyb20gJ0BncmlmZmVsL3JlYWN0Jztcbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBjYWxlbmRhckNsYXNzTmFtZXMgPSB7XG4gIHJvb3Q6ICdmdWktQ2FsZW5kYXInLFxuICBkaXZpZGVyOiAnZnVpLUNhbGVuZGFyX19kaXZpZGVyJyxcbiAgZ29Ub2RheUJ1dHRvbjogJ2Z1aS1DYWxlbmRhcl9fZ29Ub2RheUJ1dHRvbicsXG4gIG1vbnRoUGlja2VyV3JhcHBlcjogJ2Z1aS1DYWxlbmRhcl9fbW9udGhQaWNrZXJXcmFwcGVyJyxcbiAgbGl2ZVJlZ2lvbjogJ2Z1aS1DYWxlbmRhcl9fbGl2ZVJlZ2lvbidcbn07XG5jb25zdCB1c2VSb290U3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIG1jOWw1eDogXCJmMjJpYWd3XCIsXG4gICAgYTliNjc3OiBcImYxM2R3eTJ0XCJcbiAgfSxcbiAgbm9ybWFsaXplOiB7XG4gICAgRTVwaXpvOiBcImYxY291aGwzXCIsXG4gICAgQjdjazg0ZDogXCJmMWV3dHFjbFwiLFxuICAgIGpyYXBreTogMCxcbiAgICBGcmc2ZjM6IDAsXG4gICAgdDIxY3EwOiAwLFxuICAgIEI2b2YzamE6IDAsXG4gICAgQjc0c3psazogXCJmMXMxODRhb1wiLFxuICAgIEJ5b2o4dHY6IDAsXG4gICAgdXdtcW0zOiAwLFxuICAgIHoxODlzajogMCxcbiAgICB6OHRudXQ6IDAsXG4gICAgQjBvY211ejogXCJmMW1rOGxhaVwiXG4gIH0sXG4gIG1vbnRoUGlja2VyTm90VmlzaWJsZToge1xuICAgIEJlaXkzZTQ6IFwiZjF2eDlsNjJcIlxuICB9LFxuICBkYXlBbmRNb250aFBpY2tlcnNWaXNpYmxlOiB7XG4gICAgYTliNjc3OiBcImZjeTViMTVcIlxuICB9LFxuICBkYXlQaWNrZXJWaXNpYmxlQW5kV2Vla051bWJlcnNTaG93bjoge1xuICAgIGE5YjY3NzogXCJmaHNnMGluXCJcbiAgfSxcbiAgZGF5QW5kTW9udGhQaWNrZXJzVmlzaWJsZUFuZFdlZWtOdW1iZXJzU2hvd246IHtcbiAgICBhOWI2Nzc6IFwiZmNhcnE3ZlwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYyMmlhZ3d7ZGlzcGxheTpmbGV4O31cIiwgXCIuZjEzZHd5MnR7d2lkdGg6MjIwcHg7fVwiLCBcIi5mMWNvdWhsM3tib3gtc2hhZG93Om5vbmU7fVwiLCBcIi5mMWV3dHFjbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fVwiLCBbXCIuZjFzMTg0YW97bWFyZ2luOjA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFtcIi5mMW1rOGxhaXtwYWRkaW5nOjA7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmYxdng5bDYye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9XCIsIFwiLmZjeTViMTV7d2lkdGg6NDQwcHg7fVwiLCBcIi5maHNnMGlue3dpZHRoOjI1MHB4O31cIiwgXCIuZmNhcnE3Znt3aWR0aDo0NzBweDt9XCJdXG59KTtcbmNvbnN0IHVzZURpdmlkZXJTdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIHUxbXRqdTogW1wiZmUybm41Z1wiLCBcImYxcmNiYXk3XCJdLFxuICAgIEJoemV3eHo6IFwiZjE1dHd0dWtcIlxuICB9XG59LCB7XG4gIGQ6IFtbXCIuZmUybm41Z3tib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFyY2JheTd7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWNvbG9yTmV1dHJhbFN0cm9rZTIpO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMTV0d3R1a3t0b3A6MDt9XCJdXG59KTtcbmNvbnN0IHVzZU1vbnRoUGlja2VyV3JhcHBlclN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBtYzlsNXg6IFwiZjIyaWFnd1wiLFxuICAgIEJlaXkzZTQ6IFwiZjF2eDlsNjJcIlxuICB9XG59LCB7XG4gIGQ6IFtcIi5mMjJpYWd3e2Rpc3BsYXk6ZmxleDt9XCIsIFwiLmYxdng5bDYye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9XCJdXG59KTtcbmNvbnN0IHVzZUdvVG9kYXlCdXR0b25TdHlsZXMgPSAvKiNfX1BVUkVfXyovX19zdHlsZXMoe1xuICBiYXNlOiB7XG4gICAgcWIyZG1hOiBcImZweWRmZGNcIixcbiAgICBEZTNwenE6IFwiZjFjMjFkd2hcIixcbiAgICBpY3Z5b3Q6IFwiZjFlcm40NWVcIixcbiAgICB2cmFmang6IFtcImYxbjcxb3RuXCIsIFwiZjFkZWVmaXdcIl0sXG4gICAgb2l2andlOiBcImYxaDhoYjc3XCIsXG4gICAgd3ZwcWU1OiBbXCJmMWRlZWZpd1wiLCBcImYxbjcxb3RuXCJdLFxuICAgIEI1a3p2b2k6IFwiZjF5YWIzcjFcIixcbiAgICBCN2NrODRkOiBcImYxZTRscWx6XCIsXG4gICAgc2o1NXpkOiBcImYxOW4wZTVcIixcbiAgICBCYWhxdHJmOiBcImYxbW8waWJwXCIsXG4gICAgQmUydHdkNzogXCJmeTlya25jXCIsXG4gICAgQnFlbnZpajogXCJmMXR2ZG50aFwiLFxuICAgIEJnOTZnd3A6IFwiZnBmbmcxaVwiLFxuICAgIHQyMWNxMDogW1wiZjE3dnl5bTFcIiwgXCJmYjVzY3BcIl0sXG4gICAgQjZvZjNqYTogXCJmNGdnMGRzXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFnbDgxdGdcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFwMng3ejJcIixcbiAgICBzZXV3dTc6IFwiZnZ5NnZrNlwiLFxuICAgIEp3ZWY4eTogXCJmOXFsNnJmXCIsXG4gICAgQmk5MWs5YzogXCJmMWYxcGI2MVwiLFxuICAgIGVvYXZxZDogXCJmODQ5MWR4XCIsXG4gICAgQng3cGw1djogMCxcbiAgICBCbm9zcWV5OiAwLFxuICAgIEJ2NTd6Z3Y6IDAsXG4gICAgQmJ4anMzbTogXCJmems1MnY2XCIsXG4gICAga252Z2JmOiAwLFxuICAgIEIyM3M3ZTA6IDAsXG4gICAgQmU4dXVxODogMCxcbiAgICBCM29uczZpOiAwLFxuICAgIEJuajhtbWU6IFwiZnhoMW14eFwiLFxuICAgIEIyZDUzZnE6IFwiZmM5ZDNvY1wiLFxuICAgIER5cmpycDogXCJmMWNxd2NnNFwiLFxuICAgIEJlOTBlbDE6IFwiZm1qYWE1dVwiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmZweWRmZGN7YWxpZ24tc2VsZjpmbGV4LWVuZDt9XCIsIFwiLmYxYzIxZHdoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3JUcmFuc3BhcmVudEJhY2tncm91bmQpO31cIiwgXCIuZjFlcm40NWV7Ym9yZGVyLXRvcC1zdHlsZTpub25lO31cIiwgXCIuZjFuNzFvdG57Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmU7fVwiLCBcIi5mMWRlZWZpd3tib3JkZXItbGVmdC1zdHlsZTpub25lO31cIiwgXCIuZjFoOGhiNzd7Ym9yZGVyLWJvdHRvbS1zdHlsZTpub25lO31cIiwgXCIuZjF5YWIzcjF7Ym90dG9tOjA7fVwiLCBcIi5mMWU0bHFsentib3gtc2l6aW5nOmNvbnRlbnQtYm94O31cIiwgXCIuZjE5bjBlNXtjb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxGb3JlZ3JvdW5kMSk7fVwiLCBcIi5mMW1vMGlicHtmb250LWZhbWlseTppbmhlcml0O31cIiwgXCIuZnk5cmtuY3tmb250LXNpemU6dmFyKC0tZm9udFNpemVCYXNlMjAwKTt9XCIsIFwiLmYxdHZkbnRoe2hlaWdodDozMHB4O31cIiwgXCIuZnBmbmcxaXtsaW5lLWhlaWdodDozMHB4O31cIiwgXCIuZjE3dnl5bTF7bWFyZ2luLXJpZ2h0OjE2cHg7fVwiLCBcIi5mYjVzY3B7bWFyZ2luLWxlZnQ6MTZweDt9XCIsIFwiLmY0Z2cwZHN7bWFyZ2luLXRvcDozcHg7fVwiLCBbXCIuZjFnbDgxdGd7b3ZlcmZsb3c6dmlzaWJsZTt9XCIsIHtcbiAgICBwOiAtMVxuICB9XSwgW1wiLmYxcDJ4N3oye3BhZGRpbmc6MCA0cHg7fVwiLCB7XG4gICAgcDogLTFcbiAgfV0sIFwiLmZ2eTZ2azYgZGl2e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZUJhc2UyMDApO31cIiwgXCIuZjFjcXdjZzQ6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY29sb3JOZXV0cmFsRm9yZWdyb3VuZERpc2FibGVkKTt9XCIsIFwiLmZtamFhNXU6ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZTt9XCJdLFxuICBoOiBbXCIuZjlxbDZyZjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTt9XCIsIFwiLmYxZjFwYjYxOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yQnJhbmRGb3JlZ3JvdW5kMSk7fVwiLCBcIi5mODQ5MWR4OmhvdmVye2N1cnNvcjpwb2ludGVyO31cIiwgXCIuZmM5ZDNvYzpob3ZlcjphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3JCcmFuZEZvcmVncm91bmQyKTt9XCJdLFxuICBtOiBbW1wiQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpey5mems1MnY2OmhvdmVye291dGxpbmU6dmFyKC0tc3Ryb2tlV2lkdGhUaGluKTt9fVwiLCB7XG4gICAgcDogLTEsXG4gICAgbTogXCIoZm9yY2VkLWNvbG9yczogYWN0aXZlKVwiXG4gIH1dLCBbXCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSl7LmZ4aDFteHg6aG92ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNTbWFsbCk7fX1cIiwge1xuICAgIHA6IC0xLFxuICAgIG06IFwiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSlcIlxuICB9XV1cbn0pO1xuY29uc3QgdXNlTGl2ZVJlZ2lvblN0eWxlcyA9IC8qI19fUFVSRV9fKi9fX3N0eWxlcyh7XG4gIGJhc2U6IHtcbiAgICBCZ2ZnNWRhOiAwLFxuICAgIEI5eGF2MGc6IDAsXG4gICAgb2l2andlOiAwLFxuICAgIEJuMHFnem06IDAsXG4gICAgQjRnOW5lYjogMCxcbiAgICB6aGp3eTM6IDAsXG4gICAgd3ZwcWU1OiAwLFxuICAgIGlidjZoaDogMCxcbiAgICB1MW10anU6IDAsXG4gICAgaDNjNXJtOiAwLFxuICAgIHZyYWZqeDogMCxcbiAgICBCZWtyYzRpOiAwLFxuICAgIGk4dnZxYzogMCxcbiAgICBnMnUzd2U6IDAsXG4gICAgaWN2eW90OiAwLFxuICAgIEI0ajUyZm86IDAsXG4gICAgaXJzd3BzOiBcImYzYmhncWhcIixcbiAgICBCcWVudmlqOiBcImYxbXBlNGwzXCIsXG4gICAganJhcGt5OiAwLFxuICAgIEZyZzZmMzogMCxcbiAgICB0MjFjcTA6IDAsXG4gICAgQjZvZjNqYTogMCxcbiAgICBCNzRzemxrOiBcImYxamxwYjJyXCIsXG4gICAgQjY4dGM4MjogMCxcbiAgICBCbXhieWc1OiAwLFxuICAgIEJwZzU0Y2U6IFwiZjFhM3AxdnBcIixcbiAgICBCeW9qOHR2OiAwLFxuICAgIHV3bXFtMzogMCxcbiAgICB6MTg5c2o6IDAsXG4gICAgejh0bnV0OiAwLFxuICAgIEIwb2NtdXo6IFwiZjFtazhsYWlcIixcbiAgICBxaGY4eHE6IFwiZjFldXY0M2ZcIixcbiAgICBhOWI2Nzc6IFwiZnJrcm9nOFwiXG4gIH1cbn0sIHtcbiAgZDogW1tcIi5mM2JoZ3Foe2JvcmRlcjpub25lO31cIiwge1xuICAgIHA6IC0yXG4gIH1dLCBcIi5mMW1wZTRsM3toZWlnaHQ6MXB4O31cIiwgW1wiLmYxamxwYjJye21hcmdpbjotMXB4O31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFhM3AxdnB7b3ZlcmZsb3c6aGlkZGVuO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBbXCIuZjFtazhsYWl7cGFkZGluZzowO31cIiwge1xuICAgIHA6IC0xXG4gIH1dLCBcIi5mMWV1djQzZntwb3NpdGlvbjphYnNvbHV0ZTt9XCIsIFwiLmZya3JvZzh7d2lkdGg6MXB4O31cIl1cbn0pO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBBcHBseSBzdHlsaW5nIHRvIHRoZSBDYWxlbmRhciBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUNhbGVuZGFyU3R5bGVzX3Vuc3RhYmxlID0gcHJvcHMgPT4ge1xuICAndXNlIG5vIG1lbW8nO1xuXG4gIGNvbnN0IHJvb3RTdHlsZXMgPSB1c2VSb290U3R5bGVzKCk7XG4gIGNvbnN0IGRpdmlkZXJTdHlsZXMgPSB1c2VEaXZpZGVyU3R5bGVzKCk7XG4gIGNvbnN0IG1vbnRoUGlja2VyV3JhcHBlclN0eWxlcyA9IHVzZU1vbnRoUGlja2VyV3JhcHBlclN0eWxlcygpO1xuICBjb25zdCBnb1RvZGF5QnV0dG9uU3R5bGVzID0gdXNlR29Ub2RheUJ1dHRvblN0eWxlcygpO1xuICBjb25zdCBsaXZlUmVnaW9uU3R5bGVzID0gdXNlTGl2ZVJlZ2lvblN0eWxlcygpO1xuICBjb25zdCB7XG4gICAgY2xhc3NOYW1lLFxuICAgIGlzRGF5UGlja2VyVmlzaWJsZSxcbiAgICBpc01vbnRoUGlja2VyVmlzaWJsZSxcbiAgICBzaG93V2Vla051bWJlcnNcbiAgfSA9IHByb3BzO1xuICByZXR1cm4ge1xuICAgIHJvb3Q6IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckNsYXNzTmFtZXMucm9vdCwgcm9vdFN0eWxlcy5iYXNlLCByb290U3R5bGVzLm5vcm1hbGl6ZSwgIWlzTW9udGhQaWNrZXJWaXNpYmxlICYmIHJvb3RTdHlsZXMubW9udGhQaWNrZXJOb3RWaXNpYmxlLCBpc0RheVBpY2tlclZpc2libGUgJiYgaXNNb250aFBpY2tlclZpc2libGUgJiYgIXNob3dXZWVrTnVtYmVycyAmJiByb290U3R5bGVzLmRheUFuZE1vbnRoUGlja2Vyc1Zpc2libGUsIGlzRGF5UGlja2VyVmlzaWJsZSAmJiAhaXNNb250aFBpY2tlclZpc2libGUgJiYgc2hvd1dlZWtOdW1iZXJzICYmIHJvb3RTdHlsZXMuZGF5UGlja2VyVmlzaWJsZUFuZFdlZWtOdW1iZXJzU2hvd24sIGlzRGF5UGlja2VyVmlzaWJsZSAmJiBpc01vbnRoUGlja2VyVmlzaWJsZSAmJiBzaG93V2Vla051bWJlcnMgJiYgcm9vdFN0eWxlcy5kYXlBbmRNb250aFBpY2tlcnNWaXNpYmxlQW5kV2Vla051bWJlcnNTaG93biwgY2xhc3NOYW1lKSxcbiAgICBkaXZpZGVyOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJDbGFzc05hbWVzLmRpdmlkZXIsIGRpdmlkZXJTdHlsZXMuYmFzZSksXG4gICAgbW9udGhQaWNrZXJXcmFwcGVyOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJDbGFzc05hbWVzLm1vbnRoUGlja2VyV3JhcHBlciwgbW9udGhQaWNrZXJXcmFwcGVyU3R5bGVzLmJhc2UpLFxuICAgIGdvVG9kYXlCdXR0b246IG1lcmdlQ2xhc3NlcyhjYWxlbmRhckNsYXNzTmFtZXMuZ29Ub2RheUJ1dHRvbiwgZ29Ub2RheUJ1dHRvblN0eWxlcy5iYXNlKSxcbiAgICBsaXZlUmVnaW9uOiBtZXJnZUNsYXNzZXMoY2FsZW5kYXJDbGFzc05hbWVzLmxpdmVSZWdpb24sIGxpdmVSZWdpb25TdHlsZXMuYmFzZSlcbiAgfTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDYWxlbmRhclN0eWxlcy5zdHlsZXMuanMubWFwIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQmFja3NwYWNlLCBFbnRlciwgRXNjYXBlLCBQYWdlRG93biwgUGFnZVVwLCBTcGFjZSB9IGZyb20gJ0BmbHVlbnR1aS9rZXlib2FyZC1rZXlzJztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VGbHVlbnRfdW5zdGFibGUgYXMgdXNlRmx1ZW50IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXNoYXJlZC1jb250ZXh0cyc7XG5pbXBvcnQgeyBhZGRNb250aHMsIGFkZFllYXJzLCBEYXRlUmFuZ2VUeXBlLCBEYXlPZldlZWssIERFRkFVTFRfQ0FMRU5EQVJfU1RSSU5HUywgREVGQVVMVF9EQVRFX0ZPUk1BVFRJTkcsIEZpcnN0V2Vla09mWWVhciwgZm9jdXNBc3luYyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IENhbGVuZGFyRGF5IH0gZnJvbSAnLi4vQ2FsZW5kYXJEYXkvQ2FsZW5kYXJEYXknO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aCB9IGZyb20gJy4uL0NhbGVuZGFyTW9udGgvQ2FsZW5kYXJNb250aCc7XG5pbXBvcnQgeyBkZWZhdWx0TmF2aWdhdGlvbkljb25zIH0gZnJvbSAnLi9jYWxlbmRhck5hdmlnYXRpb25JY29ucyc7XG5pbXBvcnQgeyB1c2VDYWxlbmRhclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlQ2FsZW5kYXJTdHlsZXMuc3R5bGVzJztcbmNvbnN0IE1JTl9TSVpFX0ZPUkNFX09WRVJMQVkgPSA0NDA7XG5jb25zdCBkZWZhdWx0V29ya1dlZWtEYXlzID0gW1xuICAgIERheU9mV2Vlay5Nb25kYXksXG4gICAgRGF5T2ZXZWVrLlR1ZXNkYXksXG4gICAgRGF5T2ZXZWVrLldlZG5lc2RheSxcbiAgICBEYXlPZldlZWsuVGh1cnNkYXksXG4gICAgRGF5T2ZXZWVrLkZyaWRheVxuXTtcbmZ1bmN0aW9uIHVzZURhdGVTdGF0ZShwcm9wcykge1xuICAgIGNvbnN0IHsgdmFsdWUsIHRvZGF5OiB0b2RheVByb3AsIG9uU2VsZWN0RGF0ZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgdG9kYXkgPSBSZWFjdC51c2VNZW1vKCgpPT50b2RheVByb3AgIT09IG51bGwgJiYgdG9kYXlQcm9wICE9PSB2b2lkIDAgPyB0b2RheVByb3AgOiBuZXcgRGF0ZSgpLCBbXG4gICAgICAgIHRvZGF5UHJvcFxuICAgIF0pO1xuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgaW4gdGhlIGNhbGVuZGFyICovIGNvbnN0IFtzZWxlY3RlZERhdGUsIHNldFNlbGVjdGVkRGF0ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICAgIHN0YXRlOiB2YWx1ZSxcbiAgICAgICAgZGVmYXVsdFN0YXRlOiB2YWx1ZSA/IHVuZGVmaW5lZCA6IHRvZGF5LFxuICAgICAgICBpbml0aWFsU3RhdGU6IHRvZGF5XG4gICAgfSk7XG4gICAgLyoqIFRoZSBjdXJyZW50bHkgZm9jdXNlZCBkYXRlIGluIHRoZSBkYXkgcGlja2VyLCBidXQgbm90IG5lY2Vzc2FyaWx5IHNlbGVjdGVkICovIGNvbnN0IFtuYXZpZ2F0ZWREYXkgPSB0b2RheSwgc2V0TmF2aWdhdGVkRGF5XSA9IFJlYWN0LnVzZVN0YXRlKHZhbHVlKTtcbiAgICAvKiogVGhlIGN1cnJlbnRseSBmb2N1c2VkIGRhdGUgaW4gdGhlIG1vbnRoIHBpY2tlciwgYnV0IG5vdCBuZWNlc3NhcmlseSBzZWxlY3RlZCAqLyBjb25zdCBbbmF2aWdhdGVkTW9udGggPSB0b2RheSwgc2V0TmF2aWdhdGVkTW9udGhdID0gUmVhY3QudXNlU3RhdGUodmFsdWUpO1xuICAgIC8qKiBJZiB1c2luZyBhIGNvbnRyb2xsZWQgdmFsdWUsIHdoZW4gdGhhdCB2YWx1ZSBjaGFuZ2VzLCBuYXZpZ2F0ZSB0byB0aGF0IGRhdGUgKi8gY29uc3QgW2xhc3RTZWxlY3RlZERhdGUgPSB0b2RheSwgc2V0TGFzdFNlbGVjdGVkRGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlICYmIGxhc3RTZWxlY3RlZERhdGUudmFsdWVPZigpICE9PSB2YWx1ZS52YWx1ZU9mKCkpIHtcbiAgICAgICAgc2V0TmF2aWdhdGVkRGF5KHZhbHVlKTtcbiAgICAgICAgc2V0TmF2aWdhdGVkTW9udGgodmFsdWUpO1xuICAgICAgICBzZXRMYXN0U2VsZWN0ZWREYXRlKHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgbmF2aWdhdGVNb250aCA9IChkYXRlKT0+e1xuICAgICAgICBzZXROYXZpZ2F0ZWRNb250aChkYXRlKTtcbiAgICB9O1xuICAgIGNvbnN0IG5hdmlnYXRlRGF5ID0gKGRhdGUpPT57XG4gICAgICAgIHNldE5hdmlnYXRlZE1vbnRoKGRhdGUpO1xuICAgICAgICBzZXROYXZpZ2F0ZWREYXkoZGF0ZSk7XG4gICAgfTtcbiAgICBjb25zdCBvbkRhdGVTZWxlY3RlZCA9IChkYXRlLCBzZWxlY3RlZERhdGVSYW5nZUFycmF5KT0+e1xuICAgICAgICBzZXROYXZpZ2F0ZWRNb250aChkYXRlKTtcbiAgICAgICAgc2V0TmF2aWdhdGVkRGF5KGRhdGUpO1xuICAgICAgICBzZXRTZWxlY3RlZERhdGUoZGF0ZSk7XG4gICAgICAgIG9uU2VsZWN0RGF0ZSA9PT0gbnVsbCB8fCBvblNlbGVjdERhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VsZWN0RGF0ZShkYXRlLCBzZWxlY3RlZERhdGVSYW5nZUFycmF5KTtcbiAgICB9O1xuICAgIHJldHVybiBbXG4gICAgICAgIHNlbGVjdGVkRGF0ZSxcbiAgICAgICAgbmF2aWdhdGVkRGF5LFxuICAgICAgICBuYXZpZ2F0ZWRNb250aCxcbiAgICAgICAgb25EYXRlU2VsZWN0ZWQsXG4gICAgICAgIG5hdmlnYXRlRGF5LFxuICAgICAgICBuYXZpZ2F0ZU1vbnRoXG4gICAgXTtcbn1cbmZ1bmN0aW9uIHVzZVZpc2liaWxpdHlTdGF0ZSh7IGlzRGF5UGlja2VyVmlzaWJsZTogaXNEYXlQaWNrZXJWaXNpYmxlUHJvcCwgaXNNb250aFBpY2tlclZpc2libGU6IGlzTW9udGhQaWNrZXJWaXNpYmxlUHJvcCwgc2hvd01vbnRoUGlja2VyQXNPdmVybGF5IH0pIHtcbiAgICAvKiogU3RhdGUgdXNlZCB0byBzaG93L2hpZGUgbW9udGggcGlja2VyICovIGNvbnN0IHNob3dNb250aFBpY2tlckFzT3ZlcmxheVN0YXRlID0gdXNlU2hvd01vbnRoUGlja2VyQXNPdmVybGF5KHtcbiAgICAgICAgaXNEYXlQaWNrZXJWaXNpYmxlOiBpc0RheVBpY2tlclZpc2libGVQcm9wLFxuICAgICAgICBzaG93TW9udGhQaWNrZXJBc092ZXJsYXlcbiAgICB9KTtcbiAgICBjb25zdCBbaXNNb250aFBpY2tlclZpc2libGUsIHNldElzTW9udGhQaWNrZXJWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKCgpPT5zaG93TW9udGhQaWNrZXJBc092ZXJsYXlTdGF0ZSA/IGZhbHNlIDogaXNNb250aFBpY2tlclZpc2libGVQcm9wICE9PSBudWxsICYmIGlzTW9udGhQaWNrZXJWaXNpYmxlUHJvcCAhPT0gdm9pZCAwID8gaXNNb250aFBpY2tlclZpc2libGVQcm9wIDogZmFsc2UpO1xuICAgIC8qKiBTdGF0ZSB1c2VkIHRvIHNob3cvaGlkZSBkYXkgcGlja2VyICovIGNvbnN0IFtpc0RheVBpY2tlclZpc2libGUsIHNldElzRGF5UGlja2VyVmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZSgoKT0+c2hvd01vbnRoUGlja2VyQXNPdmVybGF5U3RhdGUgPyB0cnVlIDogaXNEYXlQaWNrZXJWaXNpYmxlUHJvcCAhPT0gbnVsbCAmJiBpc0RheVBpY2tlclZpc2libGVQcm9wICE9PSB2b2lkIDAgPyBpc0RheVBpY2tlclZpc2libGVQcm9wIDogdHJ1ZSk7XG4gICAgY29uc3QgdG9nZ2xlRGF5TW9udGhQaWNrZXJWaXNpYmlsaXR5ID0gKCk9PntcbiAgICAgICAgc2V0SXNNb250aFBpY2tlclZpc2libGUoIWlzTW9udGhQaWNrZXJWaXNpYmxlKTtcbiAgICAgICAgc2V0SXNEYXlQaWNrZXJWaXNpYmxlKCFpc0RheVBpY2tlclZpc2libGUpO1xuICAgIH07XG4gICAgcmV0dXJuIFtcbiAgICAgICAgaXNNb250aFBpY2tlclZpc2libGUsXG4gICAgICAgIGlzRGF5UGlja2VyVmlzaWJsZSxcbiAgICAgICAgdG9nZ2xlRGF5TW9udGhQaWNrZXJWaXNpYmlsaXR5XG4gICAgXTtcbn1cbmZ1bmN0aW9uIHVzZUZvY3VzTG9naWMoeyBjb21wb25lbnRSZWYgfSwgaXNEYXlQaWNrZXJWaXNpYmxlLCBpc01vbnRoUGlja2VyVmlzaWJsZSkge1xuICAgIGNvbnN0IGRheVBpY2tlciA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBtb250aFBpY2tlciA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmb2N1c09uVXBkYXRlID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICBjb25zdCB3aW4gPSB0YXJnZXREb2N1bWVudCA9PT0gbnVsbCB8fCB0YXJnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0RG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgY29uc3QgZm9jdXMgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBpZiAoaXNEYXlQaWNrZXJWaXNpYmxlICYmIGRheVBpY2tlci5jdXJyZW50KSB7XG4gICAgICAgICAgICBmb2N1c0FzeW5jKGRheVBpY2tlci5jdXJyZW50LCB3aW4pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzTW9udGhQaWNrZXJWaXNpYmxlICYmIG1vbnRoUGlja2VyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGZvY3VzQXN5bmMobW9udGhQaWNrZXIuY3VycmVudCwgd2luKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEYXlQaWNrZXJWaXNpYmxlLFxuICAgICAgICBpc01vbnRoUGlja2VyVmlzaWJsZSxcbiAgICAgICAgd2luXG4gICAgXSk7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShjb21wb25lbnRSZWYsICgpPT4oe1xuICAgICAgICAgICAgZm9jdXNcbiAgICAgICAgfSksIFtcbiAgICAgICAgZm9jdXNcbiAgICBdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKGZvY3VzT25VcGRhdGUuY3VycmVudCkge1xuICAgICAgICAgICAgZm9jdXMoKTtcbiAgICAgICAgICAgIGZvY3VzT25VcGRhdGUuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgZm9jdXNPbk5leHRVcGRhdGUgPSAoKT0+e1xuICAgICAgICBmb2N1c09uVXBkYXRlLmN1cnJlbnQgPSB0cnVlO1xuICAgIH07XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZGF5UGlja2VyLFxuICAgICAgICBtb250aFBpY2tlcixcbiAgICAgICAgZm9jdXNPbk5leHRVcGRhdGVcbiAgICBdO1xufVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqLyBleHBvcnQgY29uc3QgQ2FsZW5kYXIgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpPT57XG4gICAgY29uc3QgeyBhbGxGb2N1c2FibGUgPSBmYWxzZSwgY2FsZW5kYXJEYXlQcm9wcywgY2FsZW5kYXJNb250aFByb3BzLCBjbGFzc05hbWUsIGNvbXBvbmVudFJlZiwgZGF0ZVJhbmdlVHlwZSA9IERhdGVSYW5nZVR5cGUuRGF5LCBkYXRlVGltZUZvcm1hdHRlciA9IERFRkFVTFRfREFURV9GT1JNQVRUSU5HLCBmaXJzdERheU9mV2VlayA9IERheU9mV2Vlay5TdW5kYXksIGZpcnN0V2Vla09mWWVhciA9IEZpcnN0V2Vla09mWWVhci5GaXJzdERheSwgaGlnaGxpZ2h0Q3VycmVudE1vbnRoID0gZmFsc2UsIGhpZ2hsaWdodFNlbGVjdGVkTW9udGggPSBmYWxzZSwgaWQsIGlzRGF5UGlja2VyVmlzaWJsZTogaXNEYXlQaWNrZXJWaXNpYmxlUHJvcCA9IHRydWUsIGlzTW9udGhQaWNrZXJWaXNpYmxlOiBpc01vbnRoUGlja2VyVmlzaWJsZVByb3AgPSB0cnVlLCBtYXhEYXRlLCBtaW5EYXRlLCBvbkRpc21pc3MsIG9uU2VsZWN0RGF0ZSwgcmVzdHJpY3RlZERhdGVzLCBzaG93Q2xvc2VCdXR0b24gPSBmYWxzZSwgc2hvd0dvVG9Ub2RheSA9IHRydWUsIHNob3dNb250aFBpY2tlckFzT3ZlcmxheTogc2hvd01vbnRoUGlja2VyQXNPdmVybGF5UHJvcCA9IGZhbHNlLCBzaG93U2l4V2Vla3NCeURlZmF1bHQgPSBmYWxzZSwgc2hvd1dlZWtOdW1iZXJzID0gZmFsc2UsIHN0cmluZ3MgPSBERUZBVUxUX0NBTEVOREFSX1NUUklOR1MsIHRvZGF5OiB0b2RheVByb3AsIHZhbHVlLCB3b3JrV2Vla0RheXMgPSBkZWZhdWx0V29ya1dlZWtEYXlzIH0gPSBwcm9wcztcbiAgICBjb25zdCB0b2RheSA9IFJlYWN0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgcmV0dXJuIHRvZGF5UHJvcCAhPT0gbnVsbCAmJiB0b2RheVByb3AgIT09IHZvaWQgMCA/IHRvZGF5UHJvcCA6IG5ldyBEYXRlKCk7XG4gICAgfSwgW1xuICAgICAgICB0b2RheVByb3BcbiAgICBdKTtcbiAgICBjb25zdCBbc2VsZWN0ZWREYXRlLCBuYXZpZ2F0ZWREYXksIG5hdmlnYXRlZE1vbnRoLCBvbkRhdGVTZWxlY3RlZCwgbmF2aWdhdGVEYXksIG5hdmlnYXRlTW9udGhdID0gdXNlRGF0ZVN0YXRlKHtcbiAgICAgICAgb25TZWxlY3REYXRlLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdG9kYXlcbiAgICB9KTtcbiAgICBjb25zdCBbaXNNb250aFBpY2tlclZpc2libGUsIGlzRGF5UGlja2VyVmlzaWJsZSwgdG9nZ2xlRGF5TW9udGhQaWNrZXJWaXNpYmlsaXR5XSA9IHVzZVZpc2liaWxpdHlTdGF0ZSh7XG4gICAgICAgIGlzRGF5UGlja2VyVmlzaWJsZTogaXNEYXlQaWNrZXJWaXNpYmxlUHJvcCxcbiAgICAgICAgaXNNb250aFBpY2tlclZpc2libGU6IGlzTW9udGhQaWNrZXJWaXNpYmxlUHJvcCxcbiAgICAgICAgc2hvd01vbnRoUGlja2VyQXNPdmVybGF5OiBzaG93TW9udGhQaWNrZXJBc092ZXJsYXlQcm9wXG4gICAgfSk7XG4gICAgY29uc3QgW2RheVBpY2tlciwgbW9udGhQaWNrZXIsIGZvY3VzT25OZXh0VXBkYXRlXSA9IHVzZUZvY3VzTG9naWMoe1xuICAgICAgICBjb21wb25lbnRSZWZcbiAgICB9LCBpc0RheVBpY2tlclZpc2libGUsIGlzTW9udGhQaWNrZXJWaXNpYmxlKTtcbiAgICBjb25zdCByZW5kZXJHb1RvVG9kYXlCdXR0b24gPSAoKT0+e1xuICAgICAgICBsZXQgZ29Ub2RheUVuYWJsZWQgPSBzaG93R29Ub1RvZGF5O1xuICAgICAgICBpZiAoZ29Ub2RheUVuYWJsZWQgJiYgdG9kYXkpIHtcbiAgICAgICAgICAgIGdvVG9kYXlFbmFibGVkID0gbmF2aWdhdGVkRGF5LmdldEZ1bGxZZWFyKCkgIT09IHRvZGF5LmdldEZ1bGxZZWFyKCkgfHwgbmF2aWdhdGVkRGF5LmdldE1vbnRoKCkgIT09IHRvZGF5LmdldE1vbnRoKCkgfHwgbmF2aWdhdGVkTW9udGguZ2V0RnVsbFllYXIoKSAhPT0gdG9kYXkuZ2V0RnVsbFllYXIoKSB8fCBuYXZpZ2F0ZWRNb250aC5nZXRNb250aCgpICE9PSB0b2RheS5nZXRNb250aCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzaG93R29Ub1RvZGF5ICYmIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMuZ29Ub2RheUJ1dHRvbixcbiAgICAgICAgICAgIG9uQ2xpY2s6IG9uR290b1RvZGF5LFxuICAgICAgICAgICAgb25LZXlEb3duOiBvbkJ1dHRvbktleURvd24ob25Hb3RvVG9kYXkpLFxuICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgIGRpc2FibGVkOiAhZ29Ub2RheUVuYWJsZWRcbiAgICAgICAgfSwgc3RyaW5ncy5nb1RvVG9kYXkpO1xuICAgIH07XG4gICAgY29uc3Qgb25OYXZpZ2F0ZURheURhdGUgPSAoZGF0ZSwgZm9jdXNPbk5hdmlnYXRlZERheSk9PntcbiAgICAgICAgbmF2aWdhdGVEYXkoZGF0ZSk7XG4gICAgICAgIGlmIChmb2N1c09uTmF2aWdhdGVkRGF5KSB7XG4gICAgICAgICAgICBmb2N1c09uTmV4dFVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbk5hdmlnYXRlTW9udGhEYXRlID0gKGRhdGUsIGZvY3VzT25OYXZpZ2F0ZWREYXkpPT57XG4gICAgICAgIGlmIChmb2N1c09uTmF2aWdhdGVkRGF5KSB7XG4gICAgICAgICAgICBmb2N1c09uTmV4dFVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZm9jdXNPbk5hdmlnYXRlZERheSkge1xuICAgICAgICAgICAgbmF2aWdhdGVNb250aChkYXRlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9udGhQaWNrZXJPbmx5KSB7XG4gICAgICAgICAgICBvbkRhdGVTZWxlY3RlZChkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBuYXZpZ2F0ZURheShkYXRlKTtcbiAgICB9O1xuICAgIGNvbnN0IHNob3dNb250aFBpY2tlckFzT3ZlcmxheSA9IHVzZVNob3dNb250aFBpY2tlckFzT3ZlcmxheSh7XG4gICAgICAgIGlzRGF5UGlja2VyVmlzaWJsZTogaXNEYXlQaWNrZXJWaXNpYmxlUHJvcCxcbiAgICAgICAgc2hvd01vbnRoUGlja2VyQXNPdmVybGF5OiBzaG93TW9udGhQaWNrZXJBc092ZXJsYXlQcm9wXG4gICAgfSk7XG4gICAgY29uc3Qgb25IZWFkZXJTZWxlY3QgPSBzaG93TW9udGhQaWNrZXJBc092ZXJsYXkgPyAoKT0+e1xuICAgICAgICB0b2dnbGVEYXlNb250aFBpY2tlclZpc2liaWxpdHkoKTtcbiAgICAgICAgZm9jdXNPbk5leHRVcGRhdGUoKTtcbiAgICB9IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG9uR290b1RvZGF5ID0gKCk9PntcbiAgICAgICAgbmF2aWdhdGVEYXkodG9kYXkpO1xuICAgICAgICBpZiAoc2hvd01vbnRoUGlja2VyQXNPdmVybGF5ICYmIGlzTW9udGhQaWNrZXJWaXNpYmxlKSB7XG4gICAgICAgICAgICB0b2dnbGVEYXlNb250aFBpY2tlclZpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICBmb2N1c09uTmV4dFVwZGF0ZSgpO1xuICAgIH07XG4gICAgY29uc3Qgb25CdXR0b25LZXlEb3duID0gKGNhbGxiYWNrKT0+e1xuICAgICAgICByZXR1cm4gKGV2KT0+e1xuICAgICAgICAgICAgc3dpdGNoKGV2LmtleSl7XG4gICAgICAgICAgICAgICAgY2FzZSBFbnRlcjpcbiAgICAgICAgICAgICAgICBjYXNlIFNwYWNlOlxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IG9uRGF0ZVBpY2tlclBvcHVwS2V5RG93biA9IChldik9PntcbiAgICAgICAgc3dpdGNoKGV2LmtleSl7XG4gICAgICAgICAgICBjYXNlIEVudGVyOlxuICAgICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEJhY2tzcGFjZTpcbiAgICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFc2NhcGU6XG4gICAgICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25EaXNtaXNzID09PSBudWxsIHx8IG9uRGlzbWlzcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25EaXNtaXNzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBhZ2VVcDpcbiAgICAgICAgICAgICAgICBpZiAoZXYuY3RybEtleSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBnbyB0byBuZXh0IHllYXJcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVEYXkoYWRkWWVhcnMobmF2aWdhdGVkRGF5LCAxKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZ28gdG8gbmV4dCBtb250aFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZURheShhZGRNb250aHMobmF2aWdhdGVkRGF5LCAxKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBhZ2VEb3duOlxuICAgICAgICAgICAgICAgIGlmIChldi5jdHJsS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGdvIHRvIHByZXZpb3VzIHllYXJcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVEYXkoYWRkWWVhcnMobmF2aWdhdGVkRGF5LCAtMSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGdvIHRvIHByZXZpb3VzIG1vbnRoXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlRGF5KGFkZE1vbnRocyhuYXZpZ2F0ZWREYXksIC0xKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBtb250aFBpY2tlck9ubHkgPSAhc2hvd01vbnRoUGlja2VyQXNPdmVybGF5ICYmICFpc0RheVBpY2tlclZpc2libGU7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZUNhbGVuZGFyU3R5bGVzX3Vuc3RhYmxlKHtcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBpc0RheVBpY2tlclZpc2libGUsXG4gICAgICAgIGlzTW9udGhQaWNrZXJWaXNpYmxlLFxuICAgICAgICBzaG93V2Vla051bWJlcnNcbiAgICB9KTtcbiAgICBsZXQgdG9kYXlEYXRlU3RyaW5nID0gJyc7XG4gICAgbGV0IHNlbGVjdGVkRGF0ZVN0cmluZyA9ICcnO1xuICAgIGlmIChkYXRlVGltZUZvcm1hdHRlciAmJiBzdHJpbmdzLnRvZGF5RGF0ZUZvcm1hdFN0cmluZykge1xuICAgICAgICB0b2RheURhdGVTdHJpbmcgPSBzdHJpbmdzLnRvZGF5RGF0ZUZvcm1hdFN0cmluZy5yZXBsYWNlKCd7MH0nLCBkYXRlVGltZUZvcm1hdHRlci5mb3JtYXRNb250aERheVllYXIodG9kYXksIHN0cmluZ3MpKTtcbiAgICB9XG4gICAgaWYgKGRhdGVUaW1lRm9ybWF0dGVyICYmIHN0cmluZ3Muc2VsZWN0ZWREYXRlRm9ybWF0U3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRhdGVTdHJpbmdGb3JtYXR0ZXIgPSBtb250aFBpY2tlck9ubHkgPyBkYXRlVGltZUZvcm1hdHRlci5mb3JtYXRNb250aFllYXIgOiBkYXRlVGltZUZvcm1hdHRlci5mb3JtYXRNb250aERheVllYXI7XG4gICAgICAgIHNlbGVjdGVkRGF0ZVN0cmluZyA9IHN0cmluZ3Muc2VsZWN0ZWREYXRlRm9ybWF0U3RyaW5nLnJlcGxhY2UoJ3swfScsIGRhdGVTdHJpbmdGb3JtYXR0ZXIoc2VsZWN0ZWREYXRlLCBzdHJpbmdzKSk7XG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdGlvbkFuZFRvZGF5U3RyaW5nID0gc2VsZWN0ZWREYXRlU3RyaW5nICsgJywgJyArIHRvZGF5RGF0ZVN0cmluZztcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLnJvb3QsXG4gICAgICAgIG9uS2V5RG93bjogb25EYXRlUGlja2VyUG9wdXBLZXlEb3duXG4gICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLmxpdmVSZWdpb24sXG4gICAgICAgIFwiYXJpYS1saXZlXCI6IFwicG9saXRlXCIsXG4gICAgICAgIFwiYXJpYS1hdG9taWNcIjogXCJ0cnVlXCJcbiAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIHNlbGVjdGVkRGF0ZVN0cmluZykpLCBpc0RheVBpY2tlclZpc2libGUgJiYgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyRGF5LCB7XG4gICAgICAgIGdyaWRMYWJlbDogc2VsZWN0aW9uQW5kVG9kYXlTdHJpbmcsXG4gICAgICAgIHNlbGVjdGVkRGF0ZTogc2VsZWN0ZWREYXRlLFxuICAgICAgICBuYXZpZ2F0ZWREYXRlOiBuYXZpZ2F0ZWREYXksXG4gICAgICAgIHRvZGF5OiB0b2RheSxcbiAgICAgICAgb25TZWxlY3REYXRlOiBvbkRhdGVTZWxlY3RlZCxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2pzeC1uby1iaW5kXG4gICAgICAgIG9uTmF2aWdhdGVEYXRlOiBvbk5hdmlnYXRlRGF5RGF0ZSxcbiAgICAgICAgb25EaXNtaXNzOiBvbkRpc21pc3MsXG4gICAgICAgIGZpcnN0RGF5T2ZXZWVrOiBmaXJzdERheU9mV2VlayxcbiAgICAgICAgZGF0ZVJhbmdlVHlwZTogZGF0ZVJhbmdlVHlwZSxcbiAgICAgICAgc3RyaW5nczogc3RyaW5ncyxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2pzeC1uby1iaW5kXG4gICAgICAgIG9uSGVhZGVyU2VsZWN0OiBvbkhlYWRlclNlbGVjdCxcbiAgICAgICAgc2hvd1dlZWtOdW1iZXJzOiBzaG93V2Vla051bWJlcnMsXG4gICAgICAgIGZpcnN0V2Vla09mWWVhcjogZmlyc3RXZWVrT2ZZZWFyLFxuICAgICAgICBkYXRlVGltZUZvcm1hdHRlcjogZGF0ZVRpbWVGb3JtYXR0ZXIsXG4gICAgICAgIHNob3dTaXhXZWVrc0J5RGVmYXVsdDogc2hvd1NpeFdlZWtzQnlEZWZhdWx0LFxuICAgICAgICBtaW5EYXRlOiBtaW5EYXRlLFxuICAgICAgICBtYXhEYXRlOiBtYXhEYXRlLFxuICAgICAgICBuYXZpZ2F0aW9uSWNvbnM6IGRlZmF1bHROYXZpZ2F0aW9uSWNvbnMsXG4gICAgICAgIHJlc3RyaWN0ZWREYXRlczogcmVzdHJpY3RlZERhdGVzLFxuICAgICAgICB3b3JrV2Vla0RheXM6IHdvcmtXZWVrRGF5cyxcbiAgICAgICAgY29tcG9uZW50UmVmOiBkYXlQaWNrZXIsXG4gICAgICAgIHNob3dDbG9zZUJ1dHRvbjogc2hvd0Nsb3NlQnV0dG9uLFxuICAgICAgICBhbGxGb2N1c2FibGU6IGFsbEZvY3VzYWJsZSxcbiAgICAgICAgLi4uY2FsZW5kYXJEYXlQcm9wc1xuICAgIH0pLCBpc0RheVBpY2tlclZpc2libGUgJiYgaXNNb250aFBpY2tlclZpc2libGUgJiYgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLmRpdmlkZXJcbiAgICB9KSwgaXNNb250aFBpY2tlclZpc2libGUgPyAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMubW9udGhQaWNrZXJXcmFwcGVyXG4gICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyTW9udGgsIHtcbiAgICAgICAgbmF2aWdhdGVkRGF0ZTogbmF2aWdhdGVkTW9udGgsXG4gICAgICAgIHNlbGVjdGVkRGF0ZTogbmF2aWdhdGVkRGF5LFxuICAgICAgICBzdHJpbmdzOiBzdHJpbmdzLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LW5vLWJpbmRcbiAgICAgICAgb25OYXZpZ2F0ZURhdGU6IG9uTmF2aWdhdGVNb250aERhdGUsXG4gICAgICAgIHRvZGF5OiB0b2RheSxcbiAgICAgICAgaGlnaGxpZ2h0Q3VycmVudE1vbnRoOiBoaWdobGlnaHRDdXJyZW50TW9udGgsXG4gICAgICAgIGhpZ2hsaWdodFNlbGVjdGVkTW9udGg6IGhpZ2hsaWdodFNlbGVjdGVkTW9udGgsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9qc3gtbm8tYmluZFxuICAgICAgICBvbkhlYWRlclNlbGVjdDogb25IZWFkZXJTZWxlY3QsXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0dGVyOiBkYXRlVGltZUZvcm1hdHRlcixcbiAgICAgICAgbWluRGF0ZTogbWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogbWF4RGF0ZSxcbiAgICAgICAgY29tcG9uZW50UmVmOiBtb250aFBpY2tlcixcbiAgICAgICAgbmF2aWdhdGlvbkljb25zOiBkZWZhdWx0TmF2aWdhdGlvbkljb25zLFxuICAgICAgICAuLi5jYWxlbmRhck1vbnRoUHJvcHNcbiAgICB9KSwgcmVuZGVyR29Ub1RvZGF5QnV0dG9uKCkpIDogcmVuZGVyR29Ub1RvZGF5QnV0dG9uKCkpO1xufSk7XG5DYWxlbmRhci5kaXNwbGF5TmFtZSA9ICdDYWxlbmRhcic7XG5jb25zdCB1c2VTaG93TW9udGhQaWNrZXJBc092ZXJsYXkgPSAoeyBpc0RheVBpY2tlclZpc2libGUsIHNob3dNb250aFBpY2tlckFzT3ZlcmxheSB9KT0+e1xuICAgIGNvbnN0IHsgdGFyZ2V0RG9jdW1lbnQgfSA9IHVzZUZsdWVudCgpO1xuICAgIGNvbnN0IHdpbiA9IHRhcmdldERvY3VtZW50ID09PSBudWxsIHx8IHRhcmdldERvY3VtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0YXJnZXREb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICByZXR1cm4gc2hvd01vbnRoUGlja2VyQXNPdmVybGF5IHx8IGlzRGF5UGlja2VyVmlzaWJsZSAmJiB3aW4gJiYgd2luLmlubmVyV2lkdGggPD0gTUlOX1NJWkVfRk9SQ0VfT1ZFUkxBWTtcbn07XG4iLCJpbXBvcnQgeyBERUZBVUxUX0NBTEVOREFSX1NUUklOR1MgfSBmcm9tICcuLi8uLi91dGlscyc7XG5leHBvcnQgY29uc3QgZGVmYXVsdENhbGVuZGFyU3RyaW5ncyA9IERFRkFVTFRfQ0FMRU5EQVJfU1RSSU5HUztcbiIsImltcG9ydCB7IGRlZmF1bHRDYWxlbmRhclN0cmluZ3MgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtY2FsZW5kYXItY29tcGF0JztcbmV4cG9ydCBjb25zdCBkZWZhdWx0RGF0ZVBpY2tlclN0cmluZ3MgPSB7XG4gICAgLi4uZGVmYXVsdENhbGVuZGFyU3RyaW5ncyxcbiAgICBwcmV2TW9udGhBcmlhTGFiZWw6ICdHbyB0byBwcmV2aW91cyBtb250aCcsXG4gICAgbmV4dE1vbnRoQXJpYUxhYmVsOiAnR28gdG8gbmV4dCBtb250aCcsXG4gICAgcHJldlllYXJBcmlhTGFiZWw6ICdHbyB0byBwcmV2aW91cyB5ZWFyJyxcbiAgICBuZXh0WWVhckFyaWFMYWJlbDogJ0dvIHRvIG5leHQgeWVhcicsXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdDbG9zZSBkYXRlIHBpY2tlcidcbn07XG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVQaWNrZXJFcnJvclN0cmluZ3MgPSB7XG4gICAgJ2ludmFsaWQtaW5wdXQnOiAnSW52YWxpZCBkYXRlIGZvcm1hdCcsXG4gICAgJ291dC1vZi1ib3VuZHMnOiAnRGF0ZSBpcyBvdXQgb2YgYm91bmRzJyxcbiAgICAncmVxdWlyZWQtaW5wdXQnOiAnRmllbGQgaXMgcmVxdWlyZWQnXG59O1xuIiwiICBpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1qc3gtcnVudGltZS9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXBvcnRhbCc7XG5pbXBvcnQgeyBhc3NlcnRTbG90cyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC11dGlsaXRpZXMnO1xuLyoqXG4gKiBSZW5kZXIgdGhlIGZpbmFsIEpTWCBvZiBEYXRlUGlja2VyXG4gKi8gZXhwb3J0IGNvbnN0IHJlbmRlckRhdGVQaWNrZXJfdW5zdGFibGUgPSAoc3RhdGUpPT57XG4gICAgYXNzZXJ0U2xvdHMoc3RhdGUpO1xuICAgIGNvbnN0IHsgaW5saW5lUG9wdXAgfSA9IHN0YXRlO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9qc3hzKF9GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnJvb3QsIHt9KSxcbiAgICAgICAgICAgIHN0YXRlLnBvcHVwU3VyZmFjZSAmJiAoaW5saW5lUG9wdXAgPyAvKiNfX1BVUkVfXyovIF9qc3goc3RhdGUucG9wdXBTdXJmYWNlLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gX2pzeChzdGF0ZS5jYWxlbmRhciwge30pXG4gICAgICAgICAgICB9KSA6IC8qI19fUFVSRV9fKi8gX2pzeChQb3J0YWwsIHtcbiAgICAgICAgICAgICAgICBtb3VudE5vZGU6IHN0YXRlLm1vdW50Tm9kZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLnBvcHVwU3VyZmFjZSwge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyBfanN4KHN0YXRlLmNhbGVuZGFyLCB7fSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIF1cbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZXNvbHZlUG9zaXRpb25pbmdTaG9ydGhhbmQsIHVzZVBvc2l0aW9uaW5nIH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXBvc2l0aW9uaW5nJztcbi8qKlxuICogSG9vayB1c2VkIHRvIGhhbmRsZSBwb3NpdGlvbmluZyBvZiB0aGUgcG9wdXAuXG4gKlxuICogQHBhcmFtIHByb3BzIC0gRGF0ZVBpY2tlciBwcm9wc1xuICogQHJldHVybnMgdHVwbGUgb2YgdHJpZ2dlciBhbmQgcG9wdXAgcmVmc1xuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVBvcHVwUG9zaXRpb25pbmcocHJvcHMpIHtcbiAgICBjb25zdCB7IHBvc2l0aW9uaW5nIH0gPSBwcm9wcztcbiAgICBjb25zdCBwb3B1cE9wdGlvbnMgPSB7XG4gICAgICAgIHBvc2l0aW9uOiAnYmVsb3cnLFxuICAgICAgICBhbGlnbjogJ3N0YXJ0JyxcbiAgICAgICAgLi4ucmVzb2x2ZVBvc2l0aW9uaW5nU2hvcnRoYW5kKHBvc2l0aW9uaW5nKVxuICAgIH07XG4gICAgY29uc3QgeyB0YXJnZXRSZWYsIGNvbnRhaW5lclJlZiB9ID0gdXNlUG9zaXRpb25pbmcocG9wdXBPcHRpb25zKTtcbiAgICByZXR1cm4gW1xuICAgICAgICB0YXJnZXRSZWYsXG4gICAgICAgIGNvbnRhaW5lclJlZlxuICAgIF07XG59XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBcnJvd0Rvd24sIEVudGVyLCBFc2NhcGUgfSBmcm9tICdAZmx1ZW50dWkva2V5Ym9hcmQta2V5cyc7XG5pbXBvcnQgeyBDYWxlbmRhciwgY29tcGFyZURhdGVQYXJ0LCBEYXlPZldlZWssIEZpcnN0V2Vla09mWWVhciB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1jYWxlbmRhci1jb21wYXQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aFJlZ3VsYXIgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgZGVmYXVsdERhdGVQaWNrZXJTdHJpbmdzIH0gZnJvbSAnLi9kZWZhdWx0cyc7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC1pbnB1dCc7XG5pbXBvcnQgeyBtZXJnZUNhbGxiYWNrcywgdXNlQ29udHJvbGxhYmxlU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUlkLCB1c2VNZXJnZWRSZWZzLCB1c2VPbkNsaWNrT3V0c2lkZSwgdXNlT25TY3JvbGxPdXRzaWRlLCBzbG90IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyB1c2VGaWVsZENvbnRleHRfdW5zdGFibGUgYXMgdXNlRmllbGRDb250ZXh0IH0gZnJvbSAnQGZsdWVudHVpL3JlYWN0LWZpZWxkJztcbmltcG9ydCB7IHVzZUZsdWVudF91bnN0YWJsZSBhcyB1c2VGbHVlbnQgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3Qtc2hhcmVkLWNvbnRleHRzJztcbmltcG9ydCB7IHVzZU1vZGFsQXR0cmlidXRlcyB9IGZyb20gJ0BmbHVlbnR1aS9yZWFjdC10YWJzdGVyJztcbmltcG9ydCB7IHVzZVBvcHVwUG9zaXRpb25pbmcgfSBmcm9tICcuLi8uLi91dGlscy91c2VQb3B1cFBvc2l0aW9uaW5nJztcbmZ1bmN0aW9uIGlzRGF0ZU91dE9mQm91bmRzKGRhdGUsIG1pbkRhdGUsIG1heERhdGUpIHtcbiAgICByZXR1cm4gISFtaW5EYXRlICYmIGNvbXBhcmVEYXRlUGFydChtaW5EYXRlLCBkYXRlKSA+IDAgfHwgISFtYXhEYXRlICYmIGNvbXBhcmVEYXRlUGFydChtYXhEYXRlLCBkYXRlKSA8IDA7XG59XG5mdW5jdGlvbiB1c2VGb2N1c0xvZ2ljKCkge1xuICAgIGNvbnN0IGlucHV0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZXZlbnRGb2N1c09wZW5pbmdQaWNrZXIgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGZvY3VzID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgdmFyIF9pbnB1dFJlZl9jdXJyZW50X2ZvY3VzLCBfaW5wdXRSZWZfY3VycmVudDtcbiAgICAgICAgKF9pbnB1dFJlZl9jdXJyZW50ID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2lucHV0UmVmX2N1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfaW5wdXRSZWZfY3VycmVudF9mb2N1cyA9IF9pbnB1dFJlZl9jdXJyZW50LmZvY3VzKSA9PT0gbnVsbCB8fCBfaW5wdXRSZWZfY3VycmVudF9mb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2lucHV0UmVmX2N1cnJlbnRfZm9jdXMuY2FsbChfaW5wdXRSZWZfY3VycmVudCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IHByZXZlbnROZXh0Rm9jdXNPcGVuaW5nUGlja2VyID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgcHJldmVudEZvY3VzT3BlbmluZ1BpY2tlci5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGlucHV0UmVmLFxuICAgICAgICBwcmV2ZW50Rm9jdXNPcGVuaW5nUGlja2VyLFxuICAgICAgICBwcmV2ZW50TmV4dEZvY3VzT3BlbmluZ1BpY2tlclxuICAgIF07XG59XG5mdW5jdGlvbiB1c2VQb3B1cFZpc2liaWxpdHkocHJvcHMpIHtcbiAgICAndXNlIG5vIG1lbW8nO1xuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgICAgaW5pdGlhbFN0YXRlOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFN0YXRlOiBwcm9wcy5kZWZhdWx0T3BlbixcbiAgICAgICAgc3RhdGU6IHByb3BzLm9wZW5cbiAgICB9KTtcbiAgICBjb25zdCBpc01vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoaXNNb3VudGVkLmN1cnJlbnQgJiYgIW9wZW4pIHtcbiAgICAgICAgICAgIHZhciAvLyBJZiBEYXRlUGlja2VyJ3MgbWVudSAoQ2FsZW5kYXIpIGlzIGNsb3NlZCwgcnVuIG9uQWZ0ZXJNZW51RGlzbWlzc1xuICAgICAgICAgICAgX3Byb3BzX29uT3BlbkNoYW5nZTtcbiAgICAgICAgICAgIChfcHJvcHNfb25PcGVuQ2hhbmdlID0gcHJvcHMub25PcGVuQ2hhbmdlKSA9PT0gbnVsbCB8fCBfcHJvcHNfb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvcHNfb25PcGVuQ2hhbmdlLmNhbGwocHJvcHMsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBpc01vdW50ZWQuY3VycmVudCA9IHRydWU7XG4gICAgfSwgLy8gU2hvdWxkIG9ubHkgcnVuIG9uIGFsbG93VGV4dElucHV0IG9yIG9wZW4gY2hhbmdlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFtcbiAgICAgICAgcHJvcHMuYWxsb3dUZXh0SW5wdXQsXG4gICAgICAgIG9wZW5cbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBvcGVuLFxuICAgICAgICBzZXRPcGVuXG4gICAgXTtcbn1cbmZ1bmN0aW9uIHVzZVNlbGVjdGVkRGF0ZSh7IGZvcm1hdERhdGUsIG9uU2VsZWN0RGF0ZSwgdmFsdWUgfSkge1xuICAgIGNvbnN0IFtzZWxlY3RlZERhdGUsIHNldFNlbGVjdGVkRGF0ZVN0YXRlXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICAgICAgaW5pdGlhbFN0YXRlOiBudWxsLFxuICAgICAgICBzdGF0ZTogdmFsdWVcbiAgICB9KTtcbiAgICBjb25zdCBbZm9ybWF0dGVkRGF0ZSwgc2V0Rm9ybWF0dGVkRGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSgoKT0+dmFsdWUgJiYgZm9ybWF0RGF0ZSA/IGZvcm1hdERhdGUodmFsdWUpIDogJycpO1xuICAgIGNvbnN0IHNldFNlbGVjdGVkRGF0ZSA9IChuZXdEYXRlKT0+e1xuICAgICAgICBvblNlbGVjdERhdGUgPT09IG51bGwgfHwgb25TZWxlY3REYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlbGVjdERhdGUobmV3RGF0ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkRGF0ZVN0YXRlKG5ld0RhdGUpO1xuICAgICAgICBzZXRGb3JtYXR0ZWREYXRlKG5ld0RhdGUgJiYgZm9ybWF0RGF0ZSA/IGZvcm1hdERhdGUobmV3RGF0ZSkgOiAnJyk7XG4gICAgfTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgc2V0Rm9ybWF0dGVkRGF0ZSh2YWx1ZSAmJiBmb3JtYXREYXRlID8gZm9ybWF0RGF0ZSh2YWx1ZSkgOiAnJyk7XG4gICAgfSwgW1xuICAgICAgICBmb3JtYXREYXRlLFxuICAgICAgICB2YWx1ZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNlbGVjdGVkRGF0ZSxcbiAgICAgICAgZm9ybWF0dGVkRGF0ZSxcbiAgICAgICAgc2V0U2VsZWN0ZWREYXRlLFxuICAgICAgICBzZXRGb3JtYXR0ZWREYXRlXG4gICAgXTtcbn1cbmNvbnN0IGRlZmF1bHRGb3JtYXREYXRlID0gKGRhdGUpPT5kYXRlID8gZGF0ZS50b0RhdGVTdHJpbmcoKSA6ICcnO1xuY29uc3QgZGVmYXVsdFBhcnNlRGF0ZUZyb21TdHJpbmcgPSAoZGF0ZVN0cik9PntcbiAgICBjb25zdCBkYXRlID0gRGF0ZS5wYXJzZShkYXRlU3RyKTtcbiAgICByZXR1cm4gZGF0ZSA/IG5ldyBEYXRlKGRhdGUpIDogbnVsbDtcbn07XG4vKipcbiAqIENyZWF0ZSB0aGUgc3RhdGUgcmVxdWlyZWQgdG8gcmVuZGVyIERhdGVQaWNrZXIuXG4gKlxuICogVGhlIHJldHVybmVkIHN0YXRlIGNhbiBiZSBtb2RpZmllZCB3aXRoIGhvb2tzIHN1Y2ggYXMgdXNlRGF0ZVBpY2tlclN0eWxlc191bnN0YWJsZSxcbiAqIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gcmVuZGVyRGF0ZVBpY2tlcl91bnN0YWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgLSBwcm9wcyBmcm9tIHRoaXMgaW5zdGFuY2Ugb2YgRGF0ZVBpY2tlclxuICogQHBhcmFtIHJlZiAtIHJlZmVyZW5jZSB0byByb290IElucHV0IHNsb3RcbiAqLyBleHBvcnQgY29uc3QgdXNlRGF0ZVBpY2tlcl91bnN0YWJsZSA9IChwcm9wcywgcmVmKT0+e1xuICAgICd1c2Ugbm8gbWVtbyc7XG4gICAgY29uc3QgeyBhbGxvd1RleHRJbnB1dCA9IGZhbHNlLCBhbGxGb2N1c2FibGUgPSBmYWxzZSwgYm9yZGVybGVzcyA9IGZhbHNlLCBkYXRlVGltZUZvcm1hdHRlciwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgZGlzYWJsZUF1dG9Gb2N1cyA9IHRydWUsIGZpcnN0RGF5T2ZXZWVrID0gRGF5T2ZXZWVrLlN1bmRheSwgZmlyc3RXZWVrT2ZZZWFyID0gRmlyc3RXZWVrT2ZZZWFyLkZpcnN0RGF5LCBmb3JtYXREYXRlID0gZGVmYXVsdEZvcm1hdERhdGUsIGhpZ2hsaWdodEN1cnJlbnRNb250aCA9IGZhbHNlLCBoaWdobGlnaHRTZWxlY3RlZE1vbnRoID0gZmFsc2UsIGluaXRpYWxQaWNrZXJEYXRlOiBpbml0aWFsUGlja2VyRGF0ZVByb3AsIGlubGluZVBvcHVwID0gZmFsc2UsIGlzTW9udGhQaWNrZXJWaXNpYmxlID0gdHJ1ZSwgbWF4RGF0ZSwgbWluRGF0ZSwgbW91bnROb2RlLCBvbk9wZW5DaGFuZ2UsIG9uU2VsZWN0RGF0ZTogb25Vc2VyU2VsZWN0RGF0ZSwgb3Blbk9uQ2xpY2sgPSB0cnVlLCBvblZhbGlkYXRpb25SZXN1bHQsIHBhcnNlRGF0ZUZyb21TdHJpbmcgPSBkZWZhdWx0UGFyc2VEYXRlRnJvbVN0cmluZywgc2hvd0Nsb3NlQnV0dG9uID0gZmFsc2UsIHNob3dHb1RvVG9kYXkgPSB0cnVlLCBzaG93TW9udGhQaWNrZXJBc092ZXJsYXkgPSBmYWxzZSwgc2hvd1dlZWtOdW1iZXJzID0gZmFsc2UsIHN0cmluZ3MgPSBkZWZhdWx0RGF0ZVBpY2tlclN0cmluZ3MsIHRvZGF5LCB1bmRlcmxpbmVkID0gZmFsc2UsIHZhbHVlLCAuLi5yZXN0T2ZQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgaW5pdGlhbFBpY2tlckRhdGUgPSBSZWFjdC51c2VNZW1vKCgpPT5pbml0aWFsUGlja2VyRGF0ZVByb3AgIT09IG51bGwgJiYgaW5pdGlhbFBpY2tlckRhdGVQcm9wICE9PSB2b2lkIDAgPyBpbml0aWFsUGlja2VyRGF0ZVByb3AgOiBuZXcgRGF0ZSgpLCBbXG4gICAgICAgIGluaXRpYWxQaWNrZXJEYXRlUHJvcFxuICAgIF0pO1xuICAgIGNvbnN0IGNhbGVuZGFyID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtmb2N1cywgcm9vdFJlZiwgcHJldmVudEZvY3VzT3BlbmluZ1BpY2tlciwgcHJldmVudE5leHRGb2N1c09wZW5pbmdQaWNrZXJdID0gdXNlRm9jdXNMb2dpYygpO1xuICAgIGNvbnN0IFtzZWxlY3RlZERhdGUsIGZvcm1hdHRlZERhdGUsIHNldFNlbGVjdGVkRGF0ZSwgc2V0Rm9ybWF0dGVkRGF0ZV0gPSB1c2VTZWxlY3RlZERhdGUoe1xuICAgICAgICBmb3JtYXREYXRlLFxuICAgICAgICBvblNlbGVjdERhdGU6IG9uVXNlclNlbGVjdERhdGUsXG4gICAgICAgIHZhbHVlXG4gICAgfSk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5TdGF0ZV0gPSB1c2VQb3B1cFZpc2liaWxpdHkocHJvcHMpO1xuICAgIGNvbnN0IGZpZWxkQ29udGV4dCA9IHVzZUZpZWxkQ29udGV4dCgpO1xuICAgIHZhciBfZmllbGRDb250ZXh0X3JlcXVpcmVkO1xuICAgIGNvbnN0IHJlcXVpcmVkID0gKF9maWVsZENvbnRleHRfcmVxdWlyZWQgPSBmaWVsZENvbnRleHQgPT09IG51bGwgfHwgZmllbGRDb250ZXh0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZENvbnRleHQucmVxdWlyZWQpICE9PSBudWxsICYmIF9maWVsZENvbnRleHRfcmVxdWlyZWQgIT09IHZvaWQgMCA/IF9maWVsZENvbnRleHRfcmVxdWlyZWQgOiBwcm9wcy5yZXF1aXJlZDtcbiAgICBjb25zdCBkZWZhdWx0SWQgPSB1c2VJZCgnZGF0ZVBpY2tlci1pbnB1dCcpO1xuICAgIGNvbnN0IHBvcHVwU3VyZmFjZUlkID0gdXNlSWQoJ2RhdGVQaWNrZXItcG9wdXBTdXJmYWNlJyk7XG4gICAgY29uc3QgdmFsaWRhdGVUZXh0SW5wdXQgPSBSZWFjdC51c2VDYWxsYmFjaygoZGF0ZSA9IG51bGwpPT57XG4gICAgICAgIGxldCBlcnJvcjtcbiAgICAgICAgaWYgKGFsbG93VGV4dElucHV0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0dGVkRGF0ZSB8fCBkYXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gRG9uJ3QgcGFyc2UgaWYgdGhlIHNlbGVjdGVkIGRhdGUgaGFzIHRoZSBzYW1lIGZvcm1hdHRlZCBzdHJpbmcgYXMgd2hhdCB3ZSdyZSBhYm91dCB0byBwYXJzZS5cbiAgICAgICAgICAgICAgICAvLyBUaGUgZm9ybWF0dGVkIHN0cmluZyBtaWdodCBiZSBhbWJpZ3VvdXMgKGV4OiBcIjEvMi8zXCIgb3IgXCJOZXcgWWVhciBFdmVcIikgYW5kIHRoZSBwYXJzZXIgbWlnaHRcbiAgICAgICAgICAgICAgICAvLyBub3QgYmUgYWJsZSB0byBjb21lIHVwIHdpdGggdGhlIGV4YWN0IHNhbWUgZGF0ZS5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlICYmIGZvcm1hdERhdGUgJiYgZm9ybWF0RGF0ZShkYXRlICE9PSBudWxsICYmIGRhdGUgIT09IHZvaWQgMCA/IGRhdGUgOiBzZWxlY3RlZERhdGUpID09PSBmb3JtYXR0ZWREYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0ZSA9IGRhdGUgfHwgcGFyc2VEYXRlRnJvbVN0cmluZyhmb3JtYXR0ZWREYXRlKTtcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBkYXRlIGlzIG51bGwgb3IgZGF0ZSBpcyBhbiBpbnZhbGlkIGRhdGVcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGUgfHwgaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IGlucHV0IGlmIGZvcm1hdHRpbmcgaXMgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkRGF0ZShzZWxlY3RlZERhdGUpO1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9ICdpbnZhbGlkLWlucHV0JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNEYXRlT3V0T2ZCb3VuZHMoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gJ291dC1vZi1ib3VuZHMnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWREYXRlKGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAncmVxdWlyZWQtaW5wdXQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvblVzZXJTZWxlY3REYXRlID09PSBudWxsIHx8IG9uVXNlclNlbGVjdERhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVXNlclNlbGVjdERhdGUoZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAocmVxdWlyZWQgJiYgIWZvcm1hdHRlZERhdGUpIHtcbiAgICAgICAgICAgIGVycm9yID0gJ3JlcXVpcmVkLWlucHV0JztcbiAgICAgICAgfVxuICAgICAgICBvblZhbGlkYXRpb25SZXN1bHQgPT09IG51bGwgfHwgb25WYWxpZGF0aW9uUmVzdWx0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblZhbGlkYXRpb25SZXN1bHQoe1xuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgfSk7XG4gICAgfSwgW1xuICAgICAgICBhbGxvd1RleHRJbnB1dCxcbiAgICAgICAgZm9ybWF0RGF0ZSxcbiAgICAgICAgZm9ybWF0dGVkRGF0ZSxcbiAgICAgICAgbWF4RGF0ZSxcbiAgICAgICAgbWluRGF0ZSxcbiAgICAgICAgb25Vc2VyU2VsZWN0RGF0ZSxcbiAgICAgICAgb25WYWxpZGF0aW9uUmVzdWx0LFxuICAgICAgICBwYXJzZURhdGVGcm9tU3RyaW5nLFxuICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgc2VsZWN0ZWREYXRlLFxuICAgICAgICBzZXRTZWxlY3RlZERhdGVcbiAgICBdKTtcbiAgICBjb25zdCBzZXRPcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soKG5ld1N0YXRlKT0+e1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV3U3RhdGUpO1xuICAgICAgICBzZXRPcGVuU3RhdGUobmV3U3RhdGUpO1xuICAgICAgICBpZiAoIW9wZW4gJiYgIXByb3BzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBmb2N1cygpO1xuICAgICAgICB9XG4gICAgfSwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgIHNldE9wZW5TdGF0ZVxuICAgIF0pO1xuICAgIGNvbnN0IGRpc21pc3NEYXRlUGlja2VyUG9wdXAgPSBSZWFjdC51c2VDYWxsYmFjaygobmV3bHlTZWxlY3RlZERhdGUpPT57XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgIHZhbGlkYXRlVGV4dElucHV0KG5ld2x5U2VsZWN0ZWREYXRlKTtcbiAgICAgICAgICAgIGlmICghYWxsb3dUZXh0SW5wdXQgJiYgbmV3bHlTZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZERhdGUobmV3bHlTZWxlY3RlZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhbGxvd1RleHRJbnB1dCxcbiAgICAgICAgb3BlbixcbiAgICAgICAgc2V0T3BlbixcbiAgICAgICAgc2V0U2VsZWN0ZWREYXRlLFxuICAgICAgICB2YWxpZGF0ZVRleHRJbnB1dFxuICAgIF0pO1xuICAgIGNvbnN0IHNob3dEYXRlUGlja2VyUG9wdXAgPSBSZWFjdC51c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgICAgIHByZXZlbnROZXh0Rm9jdXNPcGVuaW5nUGlja2VyKCk7XG4gICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBvcGVuLFxuICAgICAgICBwcmV2ZW50TmV4dEZvY3VzT3BlbmluZ1BpY2tlcixcbiAgICAgICAgc2V0T3BlblxuICAgIF0pO1xuICAgIC8qKlxuICAgKiBDYWxsYmFjayBmb3IgY2xvc2luZyB0aGUgY2FsZW5kYXIgY2FsbG91dFxuICAgKi8gY29uc3QgY2FsZW5kYXJEaXNtaXNzZWQgPSBSZWFjdC51c2VDYWxsYmFjaygobmV3bHlTZWxlY3RlZERhdGUpPT57XG4gICAgICAgIHByZXZlbnROZXh0Rm9jdXNPcGVuaW5nUGlja2VyKCk7XG4gICAgICAgIGRpc21pc3NEYXRlUGlja2VyUG9wdXAobmV3bHlTZWxlY3RlZERhdGUpO1xuICAgIH0sIFtcbiAgICAgICAgZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCxcbiAgICAgICAgcHJldmVudE5leHRGb2N1c09wZW5pbmdQaWNrZXJcbiAgICBdKTtcbiAgICBjb25zdCBvbklucHV0Q2hhbmdlID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2LCBkYXRhKT0+e1xuICAgICAgICBjb25zdCB7IHZhbHVlOiBuZXdWYWx1ZSB9ID0gZGF0YTtcbiAgICAgICAgaWYgKGFsbG93VGV4dElucHV0KSB7XG4gICAgICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgICAgIGRpc21pc3NEYXRlUGlja2VyUG9wdXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEZvcm1hdHRlZERhdGUobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhbGxvd1RleHRJbnB1dCxcbiAgICAgICAgZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCxcbiAgICAgICAgb3BlbixcbiAgICAgICAgc2V0Rm9ybWF0dGVkRGF0ZVxuICAgIF0pO1xuICAgIGNvbnN0IG9uSW5wdXRCbHVyID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgdmFsaWRhdGVUZXh0SW5wdXQoKTtcbiAgICB9LCBbXG4gICAgICAgIHZhbGlkYXRlVGV4dElucHV0XG4gICAgXSk7XG4gICAgY29uc3Qgb25JbnB1dEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXYpPT57XG4gICAgICAgIHN3aXRjaChldi5rZXkpe1xuICAgICAgICAgICAgY2FzZSBFbnRlcjpcbiAgICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmICghb3Blbikge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZVRleHRJbnB1dCgpO1xuICAgICAgICAgICAgICAgICAgICBzaG93RGF0ZVBpY2tlclBvcHVwKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiBEYXRlUGlja2VyIGFsbG93cyBpbnB1dCBkYXRlIHN0cmluZyBkaXJlY3RseSxcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQgaXMgZXhwZWN0ZWQgdG8gaGl0IGFub3RoZXIgZW50ZXIgdG8gY2xvc2UgdGhlIHBvcHVwXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5hbGxvd1RleHRJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFc2NhcGU6XG4gICAgICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgICAgICAgICBjYWxlbmRhckRpc21pc3NlZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQXJyb3dEb3duOlxuICAgICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFvcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dEYXRlUGlja2VyUG9wdXAoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjYWxlbmRhckRpc21pc3NlZCxcbiAgICAgICAgZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCxcbiAgICAgICAgb3BlbixcbiAgICAgICAgcHJvcHMuYWxsb3dUZXh0SW5wdXQsXG4gICAgICAgIHNob3dEYXRlUGlja2VyUG9wdXAsXG4gICAgICAgIHZhbGlkYXRlVGV4dElucHV0XG4gICAgXSk7XG4gICAgY29uc3Qgb25JbnB1dEZvY3VzID0gUmVhY3QudXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgaWYgKGRpc2FibGVBdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFsbG93VGV4dElucHV0KSB7XG4gICAgICAgICAgICBpZiAoIXByZXZlbnRGb2N1c09wZW5pbmdQaWNrZXIuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHNob3dEYXRlUGlja2VyUG9wdXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXZlbnRGb2N1c09wZW5pbmdQaWNrZXIuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhbGxvd1RleHRJbnB1dCxcbiAgICAgICAgZGlzYWJsZUF1dG9Gb2N1cyxcbiAgICAgICAgcHJldmVudEZvY3VzT3BlbmluZ1BpY2tlcixcbiAgICAgICAgc2hvd0RhdGVQaWNrZXJQb3B1cFxuICAgIF0pO1xuICAgIGNvbnN0IG9uSW5wdXRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIC8vIGRlZmF1bHQgb3Blbk9uQ2xpY2sgdG8gIXByb3BzLmRpc2FibGVBdXRvRm9jdXMgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIGRpc2FibGVBdXRvRm9jdXMgYmVoYXZpb3JcbiAgICAgICAgaWYgKChwcm9wcy5vcGVuT25DbGljayB8fCAhcHJvcHMuZGlzYWJsZUF1dG9Gb2N1cykgJiYgIW9wZW4gJiYgIXByb3BzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBzaG93RGF0ZVBpY2tlclBvcHVwKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFsbG93VGV4dElucHV0KSB7XG4gICAgICAgICAgICBkaXNtaXNzRGF0ZVBpY2tlclBvcHVwKCk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGFsbG93VGV4dElucHV0LFxuICAgICAgICBkaXNtaXNzRGF0ZVBpY2tlclBvcHVwLFxuICAgICAgICBvcGVuLFxuICAgICAgICBwcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgcHJvcHMuZGlzYWJsZUF1dG9Gb2N1cyxcbiAgICAgICAgcHJvcHMub3Blbk9uQ2xpY2ssXG4gICAgICAgIHNob3dEYXRlUGlja2VyUG9wdXBcbiAgICBdKTtcbiAgICBjb25zdCBvbkljb25DbGljayA9IChldik9PntcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICghb3BlbiAmJiAhcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHNob3dEYXRlUGlja2VyUG9wdXAoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5hbGxvd1RleHRJbnB1dCkge1xuICAgICAgICAgICAgZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBpbnB1dEFwcGVhcmFuY2UgPSB1bmRlcmxpbmVkID8gJ3VuZGVybGluZScgOiBib3JkZXJsZXNzID8gJ2ZpbGxlZC1saWdodGVyJyA6ICdvdXRsaW5lJztcbiAgICBjb25zdCBbdHJpZ2dlcldyYXBwZXJSZWYsIHBvcHVwUmVmXSA9IHVzZVBvcHVwUG9zaXRpb25pbmcocHJvcHMpO1xuICAgIGNvbnN0IGlucHV0Um9vdCA9IHNsb3QuYWx3YXlzKHByb3BzLnJvb3QsIHtcbiAgICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgICAgICByZWY6IHRyaWdnZXJXcmFwcGVyUmVmXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICBpbnB1dFJvb3QucmVmID0gdXNlTWVyZ2VkUmVmcyhpbnB1dFJvb3QucmVmLCB0cmlnZ2VyV3JhcHBlclJlZik7XG4gICAgY29uc3QgaW5wdXQgPSBzbG90LmFsd2F5cyhwcm9wcy5pbnB1dCwge1xuICAgICAgICBlbGVtZW50VHlwZTogJ2lucHV0J1xuICAgIH0pO1xuICAgIGlucHV0LnJlZiA9IHVzZU1lcmdlZFJlZnMoaW5wdXQucmVmLCByZWYsIHJvb3RSZWYpO1xuICAgIC8vIFByb3BzIHRvIGNyZWF0ZSBhIHNlbWFudGljIGJ1dCBub24tZm9jdXNhYmxlIGJ1dHRvbiBvbiB0aGUgZWxlbWVudCB3aXRoIHRoZSBjbGljay10by1vcGVuIGhhbmRsZXJcbiAgICAvLyBVc2VkIGZvciB2b2ljZSBjb250cm9sIGFuZCB0b3VjaCBzY3JlZW4gcmVhZGVyIGFjY2Vzc2liaWxpdHlcbiAgICBjb25zdCBpbnB1dExhYmVsbGVkQnkgPSBwcm9wc1snYXJpYS1sYWJlbGxlZGJ5J107XG4gICAgdmFyIF9wcm9wc19pZDtcbiAgICBjb25zdCBpbnB1dElkID0gKF9wcm9wc19pZCA9IHByb3BzLmlkKSAhPT0gbnVsbCAmJiBfcHJvcHNfaWQgIT09IHZvaWQgMCA/IF9wcm9wc19pZCA6IGRlZmF1bHRJZDtcbiAgICBjb25zdCBpY29uQTExeVByb3BzID0gUmVhY3QudXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIHJvbGU6ICdidXR0b24nLFxuICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBvcGVuLFxuICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGlucHV0TGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBpbnB1dExhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGlucHV0TGFiZWxsZWRCeSA6IGlucHV0SWRcbiAgICAgICAgfSksIFtcbiAgICAgICAgb3BlbixcbiAgICAgICAgaW5wdXRMYWJlbGxlZEJ5LFxuICAgICAgICBpbnB1dElkXG4gICAgXSk7XG4gICAgY29uc3QgY29udGVudEFmdGVyID0gc2xvdC5hbHdheXMocHJvcHMuY29udGVudEFmdGVyIHx8IHt9LCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChDYWxlbmRhck1vbnRoUmVndWxhciwgbnVsbCksXG4gICAgICAgICAgICAuLi5pY29uQTExeVByb3BzXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUeXBlOiAnc3BhbidcbiAgICB9KTtcbiAgICBjb250ZW50QWZ0ZXIub25DbGljayA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3MoY29udGVudEFmdGVyLm9uQ2xpY2ssIG9uSWNvbkNsaWNrKSk7XG4gICAgY29uc3Qgcm9vdCA9IHNsb3QuYWx3YXlzKHJlc3RPZlByb3BzLCB7XG4gICAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogaW5wdXRBcHBlYXJhbmNlLFxuICAgICAgICAgICAgJ2FyaWEtY29udHJvbHMnOiBvcGVuID8gcG9wdXBTdXJmYWNlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnYXJpYS1leHBhbmRlZCc6IG9wZW4sXG4gICAgICAgICAgICAnYXJpYS1oYXNwb3B1cCc6ICdkaWFsb2cnLFxuICAgICAgICAgICAgcmVhZE9ubHk6ICFhbGxvd1RleHRJbnB1dCxcbiAgICAgICAgICAgIHJvbGU6ICdjb21ib2JveCcsXG4gICAgICAgICAgICBpZDogaW5wdXRJZFxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogSW5wdXRcbiAgICB9KTtcbiAgICByb290LnJvb3QgPSBpbnB1dFJvb3Q7XG4gICAgcm9vdC5pbnB1dCA9IGlucHV0O1xuICAgIHJvb3QuY29udGVudEFmdGVyID0gY29udGVudEFmdGVyO1xuICAgIHJvb3Qub25DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKHJvb3Qub25DaGFuZ2UsIG9uSW5wdXRDaGFuZ2UpKTtcbiAgICByb290Lm9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3Mocm9vdC5vbkJsdXIsIG9uSW5wdXRCbHVyKSk7XG4gICAgcm9vdC5vbktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKHJvb3Qub25LZXlEb3duLCBvbklucHV0S2V5RG93bikpO1xuICAgIHJvb3Qub25Gb2N1cyA9IHVzZUV2ZW50Q2FsbGJhY2sobWVyZ2VDYWxsYmFja3Mocm9vdC5vbkZvY3VzLCBvbklucHV0Rm9jdXMpKTtcbiAgICByb290Lm9uQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKHJvb3Qub25DbGljaywgb25JbnB1dENsaWNrKSk7XG4gICAgY29uc3QgeyBtb2RhbEF0dHJpYnV0ZXMgfSA9IHVzZU1vZGFsQXR0cmlidXRlcyh7XG4gICAgICAgIHRyYXBGb2N1czogdHJ1ZSxcbiAgICAgICAgYWx3YXlzRm9jdXNhYmxlOiB0cnVlLFxuICAgICAgICBsZWdhY3lUcmFwRm9jdXM6IHRydWVcbiAgICB9KTtcbiAgICBjb25zdCBwb3B1cFN1cmZhY2UgPSBvcGVuID8gc2xvdC5vcHRpb25hbChwcm9wcy5wb3B1cFN1cmZhY2UsIHtcbiAgICAgICAgcmVuZGVyQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgICdhcmlhLWxhYmVsJzogJ0NhbGVuZGFyJyxcbiAgICAgICAgICAgICdhcmlhLW1vZGFsJzogdHJ1ZSxcbiAgICAgICAgICAgIGlkOiBwb3B1cFN1cmZhY2VJZCxcbiAgICAgICAgICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICAgICAgICAgcmVmOiBwb3B1cFJlZixcbiAgICAgICAgICAgIC4uLm1vZGFsQXR0cmlidXRlc1xuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogJ2RpdidcbiAgICB9KSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB7IHRhcmdldERvY3VtZW50IH0gPSB1c2VGbHVlbnQoKTtcbiAgICB1c2VPbkNsaWNrT3V0c2lkZSh7XG4gICAgICAgIGVsZW1lbnQ6IHRhcmdldERvY3VtZW50LFxuICAgICAgICBjYWxsYmFjazogKGV2KT0+ZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCgpLFxuICAgICAgICByZWZzOiBbXG4gICAgICAgICAgICB0cmlnZ2VyV3JhcHBlclJlZixcbiAgICAgICAgICAgIHBvcHVwUmVmXG4gICAgICAgIF0sXG4gICAgICAgIGRpc2FibGVkOiAhb3BlblxuICAgIH0pO1xuICAgIHVzZU9uU2Nyb2xsT3V0c2lkZSh7XG4gICAgICAgIGVsZW1lbnQ6IHRhcmdldERvY3VtZW50LFxuICAgICAgICBjYWxsYmFjazogKGV2KT0+ZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCgpLFxuICAgICAgICByZWZzOiBbXG4gICAgICAgICAgICB0cmlnZ2VyV3JhcHBlclJlZixcbiAgICAgICAgICAgIHBvcHVwUmVmXG4gICAgICAgIF0sXG4gICAgICAgIGRpc2FibGVkOiAhb3BlblxuICAgIH0pOyAvLyBXaGVuIHRoZSBwb3B1cCBpcyBvcGVuZWQsIGZvY3VzIHNob3VsZCBnbyB0byB0aGUgY2FsZW5kYXIuXG4gICAgLy8gSW4gdjggdGhpcyB3YXMgZG9uZSBieSBmb2N1c2luZyBhZnRlciB0aGUgY2FsbG91dCB3YXMgcG9zaXRpb25lZCwgYnV0IGluIHY5IHRoaXMgY2FuIGJlIHNpbXVsYXRlZCBieSB1c2luZyBhXG4gICAgLy8gdXNlRWZmZWN0IGhvb2suXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGlmIChvcGVuICYmICFwcm9wcy5kaXNhYmxlZCAmJiBjYWxlbmRhci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjYWxlbmRhci5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGRpc2FibGVBdXRvRm9jdXMsXG4gICAgICAgIG9wZW4sXG4gICAgICAgIHByb3BzLmRpc2FibGVkXG4gICAgXSk7XG4gICAgY29uc3QgY2FsZW5kYXJTaG9ydGhhbmQgPSBzbG90LmFsd2F5cyhwcm9wcy5jYWxlbmRhciwge1xuICAgICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgICAgIGFsbEZvY3VzYWJsZSxcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZjogY2FsZW5kYXIsXG4gICAgICAgICAgICBkYXRlVGltZUZvcm1hdHRlcixcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrLFxuICAgICAgICAgICAgZmlyc3RXZWVrT2ZZZWFyLFxuICAgICAgICAgICAgaGlnaGxpZ2h0Q3VycmVudE1vbnRoLFxuICAgICAgICAgICAgaGlnaGxpZ2h0U2VsZWN0ZWRNb250aCxcbiAgICAgICAgICAgIGlzTW9udGhQaWNrZXJWaXNpYmxlLFxuICAgICAgICAgICAgbWF4RGF0ZSxcbiAgICAgICAgICAgIG1pbkRhdGUsXG4gICAgICAgICAgICBzaG93Q2xvc2VCdXR0b24sXG4gICAgICAgICAgICBzaG93R29Ub1RvZGF5LFxuICAgICAgICAgICAgc2hvd01vbnRoUGlja2VyQXNPdmVybGF5LFxuICAgICAgICAgICAgc2hvd1dlZWtOdW1iZXJzLFxuICAgICAgICAgICAgc3RyaW5ncyxcbiAgICAgICAgICAgIHRvZGF5LFxuICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkRGF0ZSB8fCBpbml0aWFsUGlja2VyRGF0ZVxuICAgICAgICB9LFxuICAgICAgICBlbGVtZW50VHlwZTogQ2FsZW5kYXJcbiAgICB9KTtcbiAgICBjYWxlbmRhclNob3J0aGFuZC5vbkRpc21pc3MgPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKGNhbGVuZGFyU2hvcnRoYW5kLm9uRGlzbWlzcywgY2FsZW5kYXJEaXNtaXNzZWQpKTtcbiAgICBjYWxlbmRhclNob3J0aGFuZC5vblNlbGVjdERhdGUgPSB1c2VFdmVudENhbGxiYWNrKG1lcmdlQ2FsbGJhY2tzKGNhbGVuZGFyU2hvcnRoYW5kLm9uU2VsZWN0RGF0ZSwgY2FsZW5kYXJEaXNtaXNzZWQpKTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgZGlzYWJsZWQ6ICEhcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgIGlubGluZVBvcHVwLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICByb290OiBJbnB1dCxcbiAgICAgICAgICAgIGNhbGVuZGFyOiBDYWxlbmRhcixcbiAgICAgICAgICAgIHBvcHVwU3VyZmFjZTogJ2RpdidcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IGNhbGVuZGFyU2hvcnRoYW5kLFxuICAgICAgICBtb3VudE5vZGUsXG4gICAgICAgIHJvb3QsXG4gICAgICAgIHBvcHVwU3VyZmFjZVxuICAgIH07XG4gICAgc3RhdGUucm9vdC52YWx1ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsImltcG9ydCB7IF9fcmVzZXRTdHlsZXMsIF9fc3R5bGVzLCBtZXJnZUNsYXNzZXMgfSBmcm9tICdAZ3JpZmZlbC9yZWFjdCc7XG5pbXBvcnQgeyB0b2tlbnMsIHR5cG9ncmFwaHlTdHlsZXMgfSBmcm9tICdAZmx1ZW50dWkvcmVhY3QtdGhlbWUnO1xuZXhwb3J0IGNvbnN0IGRhdGVQaWNrZXJDbGFzc05hbWVzID0ge1xuICByb290OiAnZnVpLURhdGVQaWNrZXInLFxuICBjYWxlbmRhcjogJ2Z1aS1EYXRlUGlja2VyX19jYWxlbmRhcicsXG4gIHBvcHVwU3VyZmFjZTogJ2Z1aS1EYXRlUGlja2VyX19wb3B1cFN1cmZhY2UnXG59O1xuY29uc3QgdXNlU3R5bGVzID0gLyojX19QVVJFX18qL19fc3R5bGVzKHtcbiAgYmFzZToge1xuICAgIHFoZjh4cTogXCJmMTBwaTEzblwiLFxuICAgIEJjZWVpOWM6IFwiZjFrNmZkdWhcIixcbiAgICB4ZmFhdmg6IFwiZmF4ZWM5N1wiXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgQmNlZWk5YzogXCJmMTU4a3d6cFwiLFxuICAgIHhmYWF2aDogXCJmMTlxd2xtZ1wiXG4gIH0sXG4gIGlubGluZToge1xuICAgIEJqM3JoMWg6IFwiZjE5ZzBhY1wiXG4gIH1cbn0sIHtcbiAgZDogW1wiLmYxMHBpMTNue3Bvc2l0aW9uOnJlbGF0aXZlO31cIiwgXCIuZjFrNmZkdWh7Y3Vyc29yOnBvaW50ZXI7fVwiLCBcIi5mYXhlYzk3IGlucHV0e2N1cnNvcjpwb2ludGVyO31cIiwgXCIuZjE1OGt3enB7Y3Vyc29yOmRlZmF1bHQ7fVwiLCBcIi5mMTlxd2xtZyBpbnB1dHtjdXJzb3I6ZGVmYXVsdDt9XCIsIFwiLmYxOWcwYWN7ei1pbmRleDoxO31cIl1cbn0pO1xuY29uc3QgdXNlUG9wdXBTdXJmYWNlQ2xhc3NOYW1lID0gLyojX19QVVJFX18qL19fcmVzZXRTdHlsZXMoXCJyMXl0djF6OFwiLCBudWxsLCBbXCIucjF5dHYxejh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvck5ldXRyYWxCYWNrZ3JvdW5kMSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cxNik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXNNZWRpdW0pO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvclRyYW5zcGFyZW50U3Ryb2tlKTtkaXNwbGF5OmlubGluZS1mbGV4O2NvbG9yOnZhcigtLWNvbG9yTmV1dHJhbEZvcmVncm91bmQxKTtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5QmFzZSk7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplQmFzZTMwMCk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodFJlZ3VsYXIpO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHRCYXNlMzAwKTt9XCJdKTtcbi8qKlxuICogQXBwbHkgc3R5bGluZyB0byB0aGUgRGF0ZVBpY2tlciBzbG90cyBiYXNlZCBvbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZURhdGVQaWNrZXJTdHlsZXNfdW5zdGFibGUgPSBzdGF0ZSA9PiB7XG4gICd1c2Ugbm8gbWVtbyc7XG5cbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHBvcHVwU3VyZmFjZUNsYXNzTmFtZSA9IHVzZVBvcHVwU3VyZmFjZUNsYXNzTmFtZSgpO1xuICBjb25zdCB7XG4gICAgZGlzYWJsZWQsXG4gICAgaW5saW5lUG9wdXBcbiAgfSA9IHN0YXRlO1xuICBzdGF0ZS5yb290LmNsYXNzTmFtZSA9IG1lcmdlQ2xhc3NlcyhkYXRlUGlja2VyQ2xhc3NOYW1lcy5yb290LCBzdHlsZXMuYmFzZSwgZGlzYWJsZWQgJiYgc3R5bGVzLmRpc2FibGVkLCBzdGF0ZS5yb290LmNsYXNzTmFtZSk7XG4gIGlmIChzdGF0ZS5wb3B1cFN1cmZhY2UpIHtcbiAgICBzdGF0ZS5wb3B1cFN1cmZhY2UuY2xhc3NOYW1lID0gbWVyZ2VDbGFzc2VzKGRhdGVQaWNrZXJDbGFzc05hbWVzLnBvcHVwU3VyZmFjZSwgcG9wdXBTdXJmYWNlQ2xhc3NOYW1lLCBzdGF0ZS5wb3B1cFN1cmZhY2UuY2xhc3NOYW1lLCBpbmxpbmVQb3B1cCAmJiBzdHlsZXMuaW5saW5lKTtcbiAgfVxuICBzdGF0ZS5jYWxlbmRhci5jbGFzc05hbWUgPSBtZXJnZUNsYXNzZXMoZGF0ZVBpY2tlckNsYXNzTmFtZXMuY2FsZW5kYXIsIHN0YXRlLmNhbGVuZGFyLmNsYXNzTmFtZSk7XG4gIHJldHVybiBzdGF0ZTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VEYXRlUGlja2VyU3R5bGVzLnN0eWxlcy5qcy5tYXAiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXJEYXRlUGlja2VyX3Vuc3RhYmxlIH0gZnJvbSAnLi9yZW5kZXJEYXRlUGlja2VyJztcbmltcG9ydCB7IHVzZURhdGVQaWNrZXJfdW5zdGFibGUgfSBmcm9tICcuL3VzZURhdGVQaWNrZXInO1xuaW1wb3J0IHsgdXNlRGF0ZVBpY2tlclN0eWxlc191bnN0YWJsZSB9IGZyb20gJy4vdXNlRGF0ZVBpY2tlclN0eWxlcy5zdHlsZXMnO1xuZXhwb3J0IGNvbnN0IERhdGVQaWNrZXIgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpPT57XG4gICAgY29uc3Qgc3RhdGUgPSB1c2VEYXRlUGlja2VyX3Vuc3RhYmxlKHByb3BzLCByZWYpO1xuICAgIHVzZURhdGVQaWNrZXJTdHlsZXNfdW5zdGFibGUoc3RhdGUpO1xuICAgIHJldHVybiByZW5kZXJEYXRlUGlja2VyX3Vuc3RhYmxlKHN0YXRlKTtcbn0pO1xuRGF0ZVBpY2tlci5kaXNwbGF5TmFtZSA9ICdEYXRlUGlja2VyJztcbiIsImltcG9ydCB7XHJcbiAgICBCdXR0b24sXHJcbiAgICBDb21ib2JveCxcclxuICAgIE1lbnVQb3BvdmVyLFxyXG4gICAgT3B0aW9uLFxyXG4gICAgT3B0aW9uR3JvdXAsXHJcbiAgICBUYWJsZUNvbHVtbkRlZmluaXRpb24sXHJcbiAgICBUZXh0LFxyXG59IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1kYXRlcGlja2VyLWNvbXBhdFwiO1xyXG5pbXBvcnQgeyBEaXNtaXNzMjBSZWd1bGFyLCBDaGV2cm9uRG93bjIwUmVndWxhciB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtaWNvbnNcIjtcclxuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgQ29sdW1uRmlsdGVyLCBPcGVyYXRvclNldCB9IGZyb20gXCIuL09wZXJhdG9yU2V0XCI7XHJcbmltcG9ydCB7IFJvdyB9IGZyb20gXCIuL1Byb2plY3RzRWRpdFRhc2tzXCI7XHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uSWQgfSBmcm9tIFwiLi9Qcm9qZWN0VGFza1RhYmxlXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uLy4uLy4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcblxyXG4vKiogVGhlIGZpbHRlciBtZW51IGNvbXBvbmVudCAqL1xyXG5leHBvcnQgY29uc3QgRmlsdGVyTWVudTogUmVhY3QuRkM8e1xyXG4gICAgc2V0T3BlbkZpbHRlck1lbnVJZDogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248VGFibGVDb2x1bW5JZCB8IHVuZGVmaW5lZD4+O1xyXG4gICAgc2V0Q29sdW1uRmlsdGVyczogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248Q29sdW1uRmlsdGVyW10+PjtcclxuICAgIGNvbHVtbkZpbHRlcnM6IENvbHVtbkZpbHRlcltdO1xyXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbkRlZmluaXRpb248Um93PjtcclxuICAgIGZsYXR0ZW5lZEl0ZW1zOiBSb3dbXTtcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nO1xyXG59PiA9ICh7IHNldE9wZW5GaWx0ZXJNZW51SWQsIHNldENvbHVtbkZpbHRlcnMsIGNvbHVtbkZpbHRlcnMsIGNvbHVtbiwgZmxhdHRlbmVkSXRlbXMsIHRhYmxlTmFtZSB9KSA9PiB7XHJcbiAgICBjb25zdCB7IHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuXHJcbiAgICBjb25zdCBhcHBsaWVkRmlsdGVyID0gY29sdW1uRmlsdGVycy5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5OYW1lID09PSBjb2x1bW4uY29sdW1uSWQpO1xyXG5cclxuICAgIGNvbnN0IFtvcGVyYXRvciwgc2V0T3BlcmF0b3JdID0gdXNlU3RhdGU8a2V5b2YgT3BlcmF0b3JTZXQ+KGFwcGxpZWRGaWx0ZXIgPyBhcHBsaWVkRmlsdGVyLm9wZXJhdG9yIDogXCJFcXVhbHNcIik7XHJcblxyXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShhcHBsaWVkRmlsdGVyID8gYXBwbGllZEZpbHRlci52YWx1ZSA6IFwiXCIpO1xyXG4gICAgY29uc3QgW3ZhbHVlRHJvcGRvd25PcGVuLCBzZXRWYWx1ZURyb3Bkb3duT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgLy8gV2UgbXVzdCB1c2UgYW4gZXZlbnQgbGlzdGVuZXIgdG8gY2xvc2UgdGhlIGRyb3Bkb3duIHdoZW4gY2xpY2tpbmcgb3V0c2lkZSBvZiBpdFxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBEdWUgdG8gdGhlIGR5bmFtaWMgbmF0dXJlIG9mIHRoZSBsaXN0Ym94LCB3ZSBtdXN0IHVzZSB0aGUgcm9sZSBhdHRyaWJ1dGUgdG8gZmluZCBpdFxyXG4gICAgICAgICAgICBjb25zdCBsaXN0Ym94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltyb2xlPSdsaXN0Ym94J11cIik7XHJcblxyXG4gICAgICAgICAgICBpZiAobGlzdGJveCAmJiAhbGlzdGJveC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAgICAgICAgICAgICAgIHNldFZhbHVlRHJvcGRvd25PcGVuKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XHJcblxyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XHJcbiAgICAgICAgfTtcclxuICAgIH0sIFtdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgYXBwbGljYWJsZSBvcGVyYXRvcnMgZm9yIHRoZSBjb2x1bW5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gZ2V0IHRoZSBvcGVyYXRvcnMgZm9yXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgYXBwbGljYWJsZSBvcGVyYXRvcnMgZm9yIHRoZSBjb2x1bW5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZ2V0QXBwbGljYWJsZU9wZXJhdG9ycyA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgXCJFcXVhbHNcIixcclxuICAgICAgICAgICAgICAgIFwiTm90IEVxdWFsc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJDb250YWluc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJEb2VzIE5vdCBDb250YWluXCIsXHJcbiAgICAgICAgICAgICAgICBcIlN0YXJ0cyBXaXRoXCIsXHJcbiAgICAgICAgICAgICAgICBcIkVuZHMgV2l0aFwiLFxyXG4gICAgICAgICAgICBdIGFzIHVua25vd24gYXMgKGtleW9mIE9wZXJhdG9yU2V0KVtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgXCJFcXVhbHNcIixcclxuICAgICAgICAgICAgICAgIFwiTm90IEVxdWFsc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJHcmVhdGVyIFRoYW5cIixcclxuICAgICAgICAgICAgICAgIFwiTGVzcyBUaGFuXCIsXHJcbiAgICAgICAgICAgICAgICBcIkdyZWF0ZXIgVGhhbiBPciBFcXVhbCBUb1wiLFxyXG4gICAgICAgICAgICAgICAgXCJMZXNzIFRoYW4gT3IgRXF1YWwgVG9cIixcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXCJFcXVhbHNcIiwgXCJOb3QgRXF1YWxzXCJdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gW1wiRXF1YWxzXCIsIFwiTm90IEVxdWFsc1wiLCBcIkFmdGVyXCIsIFwiQmVmb3JlXCIsIFwiT24gT3IgQWZ0ZXJcIiwgXCJPbiBPciBCZWZvcmVcIl07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBmaWx0ZXIgb3B0aW9ucyBmb3IgdGhlIGNvbHVtblxyXG4gICAgICogQHJldHVybnMgVGhlIGZpbHRlciBvcHRpb25zIGZvciB0aGUgY29sdW1uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGdldEZpbHRlck9wdGlvbnMgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29sdW1uSWQgPSBjb2x1bW4uY29sdW1uSWQgYXMgVGFibGVDb2x1bW5JZDtcclxuXHJcbiAgICAgICAgc3dpdGNoIChjb2x1bW5JZCkge1xyXG4gICAgICAgICAgICBjYXNlIFwiYWN0aW9uc1wiOlxyXG4gICAgICAgICAgICBjYXNlIFwic3RhcnREYXRlXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwibmFtZVwiOlxyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9uU3VtbWFyeVRhc2tzID0gZmxhdHRlbmVkSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoaWxkcmVuPy5sZW5ndGggPT09IDApO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBub25TdW1tYXJ5VGFza3NcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLm5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgLmRpc3RpbmN0KClcclxuICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKG5hbWUpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e25hbWV9IHZhbHVlPXtuYW1lfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtuYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L09wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICApKTtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJhc3NpZ25lZFRvXCI6XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbnVtT3B0aW9ucyA9IGZsYXR0ZW5lZEl0ZW1zXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5hc3NpZ25lZFRvKVxyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGFzc2lnbmVkVG8pOiBhc3NpZ25lZFRvIGlzIHN0cmluZyA9PiBhc3NpZ25lZFRvICE9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kaXN0aW5jdCgpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXtpdGVtfSB2YWx1ZT17aXRlbX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9PcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdE9wdGlvbnMgPSBmbGF0dGVuZWRJdGVtc1xyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0uYXNzaWduZWRUb0N1c3RvbWVyQ29udGFjdElkKVxyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNvbnRhY3QpOiBjb250YWN0IGlzIHN0cmluZyA9PiBjb250YWN0ICE9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kaXN0aW5jdCgpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gY29udGFjdHMuZGF0YS5maW5kKChjb250YWN0KSA9PiBjb250YWN0LmNvbnRhY3RpZCA9PT0gaXRlbSkhLmZ1bGxuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoZnVsbG5hbWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXtmdWxsbmFtZX0gdmFsdWU9e2Z1bGxuYW1lfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZnVsbG5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L09wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gWzxPcHRpb25Hcm91cD57ZW51bU9wdGlvbnN9PC9PcHRpb25Hcm91cD4sIC4uLmNvbnRhY3RPcHRpb25zXTtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJzdGF0dXNcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBmbGF0dGVuZWRJdGVtc1xyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0uc3RhdHVzKVxyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHN0YXR1cyk6IHN0YXR1cyBpcyBzdHJpbmcgPT4gc3RhdHVzICE9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIC5kaXN0aW5jdCgpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChzdGF0dXMpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e3N0YXR1c30gdmFsdWU9e3N0YXR1c30+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3RhdHVzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L09wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbHkgdGhlIGZpbHRlciB0byB0aGUgY29sdW1uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IG9uQXBwbHlGaWx0ZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbkZpbHRlcnMgPSBjb2x1bW5GaWx0ZXJzLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuY29sdW1uTmFtZSAhPT0gY29sdW1uLmNvbHVtbklkKTtcclxuXHJcbiAgICAgICAgbmV3Q29sdW1uRmlsdGVycy5wdXNoKHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogY29sdW1uLmNvbHVtbklkIGFzIFRhYmxlQ29sdW1uSWQsXHJcbiAgICAgICAgICAgIG9wZXJhdG9yLFxyXG4gICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc2V0Q29sdW1uRmlsdGVycyhuZXdDb2x1bW5GaWx0ZXJzKTtcclxuICAgICAgICBzZXRPcGVuRmlsdGVyTWVudUlkKHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICB0eXBlOiBcIkZpbHRlciBNZW51IC0gQXBwbGllZFwiLFxyXG4gICAgICAgICAgICB0YWJsZU5hbWUsXHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IGAke2NvbHVtbi5jb2x1bW5JZH1gLFxyXG4gICAgICAgICAgICBvcGVyYXRvcixcclxuICAgICAgICAgICAgdmFsdWU6IGAke3ZhbHVlfWAsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVuZGVyIHRoZSBvcGVyYXRvciBjb21ib2JveFxyXG4gICAgICogQHJldHVybnMgVGhlIG9wZXJhdG9yIGNvbWJvYm94XHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHJlbmRlck9wZXJhdG9yQ29tYm9Cb3ggPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPENvbWJvYm94XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRPcHRpb259XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWRPcHRpb25zPXtbZGVmYXVsdE9wdGlvbl19XHJcbiAgICAgICAgICAgICAgICBvbk9wdGlvblNlbGVjdD17KF8sIGQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIG9wZXJhdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0T3BlcmF0b3IoZC5vcHRpb25WYWx1ZSBhcyBrZXlvZiBPcGVyYXRvclNldCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7b3BlcmF0b3JPcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e29wdGlvbn0gdmFsdWU9e29wdGlvbn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb259XHJcbiAgICAgICAgICAgICAgICAgICAgPC9PcHRpb24+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9Db21ib2JveD5cclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnNlIHRoZSBkYXRlIGZyb20gYSBzdHJpbmcuXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgdG8gZW5zdXJlIHRoZSBkYXRlIGlzIGluIHRoZSBjb3JyZWN0IGZvcm1hdC5cclxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBUaGUgbmV3IHZhbHVlIHRvIHBhcnNlXHJcbiAgICAgKiBAZXhhbXBsZSBcIjAxLzAxLzIxXCIgPT4gbmV3IERhdGUoMjAyMSwgMCwgMSlcclxuICAgICAqL1xyXG4gICAgY29uc3Qgb25QYXJzZURhdGVGcm9tU3RyaW5nID0gdXNlQ2FsbGJhY2soXHJcbiAgICAgICAgKG5ld1ZhbHVlOiBzdHJpbmcpOiBEYXRlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHZhbHVlIHx8IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlUGFydHMgPSAobmV3VmFsdWUgfHwgXCJcIikudHJpbSgpLnNwbGl0KFwiL1wiKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGRheSA9XHJcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZVBhcnRzLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWF4KDEsIE1hdGgubWluKDMxLCBwYXJzZUludChuZXdWYWx1ZVBhcnRzWzBdLCAxMCkpKVxyXG4gICAgICAgICAgICAgICAgICAgIDogcHJldmlvdXNWYWx1ZS5nZXREYXRlKCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtb250aCA9XHJcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZVBhcnRzLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWF4KDEsIE1hdGgubWluKDEyLCBwYXJzZUludChuZXdWYWx1ZVBhcnRzWzFdLCAxMCkpKSAtIDFcclxuICAgICAgICAgICAgICAgICAgICA6IHByZXZpb3VzVmFsdWUuZ2V0TW9udGgoKTtcclxuXHJcbiAgICAgICAgICAgIGxldCB5ZWFyID0gbmV3VmFsdWVQYXJ0cy5sZW5ndGggPiAyID8gcGFyc2VJbnQobmV3VmFsdWVQYXJ0c1syXSwgMTApIDogcHJldmlvdXNWYWx1ZS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHllYXIgPCAxMDApIHtcclxuICAgICAgICAgICAgICAgIHllYXIgKz0gcHJldmlvdXNWYWx1ZS5nZXRGdWxsWWVhcigpIC0gKHByZXZpb3VzVmFsdWUuZ2V0RnVsbFllYXIoKSAlIDEwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgW3ZhbHVlXVxyXG4gICAgKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm1hdCB0aGUgZGF0ZSB0byBhIHN0cmluZy5cclxuICAgICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdFxyXG4gICAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkYXRlXHJcbiAgICAgKiBAZXhhbXBsZXMgbmV3IERhdGUoMjAyMSwgMCwgMSkgPT4gXCIwMS8wMS8yMVwiXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IG9uRm9ybWF0RGF0ZSA9IChkYXRlPzogRGF0ZSk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgcmV0dXJuICFkYXRlID8gXCJcIiA6IGRhdGUuZ2V0RGF0ZSgpICsgXCIvXCIgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyBcIi9cIiArIChkYXRlLmdldEZ1bGxZZWFyKCkgJSAxMDApO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlciB0aGUgdmFsdWUgY29tYm9ib3hcclxuICAgICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBjb21ib2JveFxyXG4gICAgICovXHJcbiAgICBjb25zdCByZW5kZXJWYWx1ZUNvbXBvbmVudCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBzaG91bGRTaG93RHJvcGRvd25PcHRpb25zID0gW1wiRXF1YWxzXCIsIFwiTm90IEVxdWFsc1wiXS5pbmNsdWRlcyhvcGVyYXRvcik7XHJcblxyXG4gICAgICAgIGlmIChjb2x1bW4uY29sdW1uSWQgPT09IFwic3RhcnREYXRlXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxEYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dUZXh0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBwYXJzZURhdGVGcm9tU3RyaW5nPXtvblBhcnNlRGF0ZUZyb21TdHJpbmd9XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0ZT17b25Gb3JtYXREYXRlfVxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgZGF0ZS4uLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBkYXRlIGlzIGluIHRoZSBjb3JyZWN0IGZvcm1hdCBNTS9ERC9ZWVlZIC0gVGhlIGRhdGUgcGlja2VyIG11c3QgaGF2ZSBhIHZhbHVlIGluIHRoaXMgZm9ybWF0XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlID8gdmFsdWUgOiBudWxsfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0RGF0ZT17KGRhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSGFuZGxlIHRoZSBkcm9wZG93biBjbGljayBldmVudFxyXG4gICAgICAgICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnRcclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdCBvbkRyb3Bkb3duQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXNob3VsZFNob3dEcm9wZG93bk9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc2V0VmFsdWVEcm9wZG93bk9wZW4oIXZhbHVlRHJvcGRvd25PcGVuKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8Q29tYm9ib3hcclxuICAgICAgICAgICAgICAgIC8vIFN0eWxlIHRoZSBsaXN0IGJveCB0byBhbGxvdyBzY3JvbGxpbmdcclxuICAgICAgICAgICAgICAgIGxpc3Rib3g9e3tcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IFwiMzAwcHhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0PXsoXywgZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGQub3B0aW9uVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlRHJvcGRvd25PcGVuKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZUF1dG9Gb2N1c1xyXG4gICAgICAgICAgICAgICAgZXhwYW5kSWNvbj17c2hvdWxkU2hvd0Ryb3Bkb3duT3B0aW9ucyA/IDxDaGV2cm9uRG93bjIwUmVndWxhciBvbkNsaWNrPXtvbkRyb3Bkb3duQ2xpY2t9IC8+IDogPD48Lz59XHJcbiAgICAgICAgICAgICAgICBmcmVlZm9ybVxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZE9wdGlvbnM9e1t2YWx1ZV19XHJcbiAgICAgICAgICAgICAgICBvcGVuPXt2YWx1ZURyb3Bkb3duT3BlbiAmJiBzaG91bGRTaG93RHJvcGRvd25PcHRpb25zfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25Ecm9wZG93bkNsaWNrfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7ZmlsdGVyT3B0aW9uc31cclxuICAgICAgICAgICAgPC9Db21ib2JveD5cclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGFwcGxpY2FibGUgb3BlcmF0b3JzIGZvciB0aGUgY29sdW1uXHJcbiAgICBjb25zdCBvcGVyYXRvck9wdGlvbnMgPSBnZXRBcHBsaWNhYmxlT3BlcmF0b3JzKGZsYXR0ZW5lZEl0ZW1zWzBdW2NvbHVtbi5jb2x1bW5JZF0pO1xyXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbiA9IG9wZXJhdG9yT3B0aW9ucy5pbmNsdWRlcyhvcGVyYXRvcikgPyBvcGVyYXRvciA6IG9wZXJhdG9yT3B0aW9uc1swXTtcclxuXHJcbiAgICAvLyBHZXQgYWxsIHRoZSB1bmlxdWUgdmFsdWVzIGZvciB0aGUgY29sdW1uXHJcbiAgICBjb25zdCBmaWx0ZXJPcHRpb25zID0gZ2V0RmlsdGVyT3B0aW9ucygpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1lbnVQb3BvdmVyIHN0eWxlPXt7IGhlaWdodDogXCJmaXQtY29udGVudFwiIH19PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBpZD1cImZpbHRlci1tZW51XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjFlbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGdhcDogXCIxZW1cIixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGZsZXhEaXJlY3Rpb246IFwicm93XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRleHQgd2VpZ2h0PVwic2VtaWJvbGRcIj5GaWx0ZXIgQnk8L1RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmbGV4R3JvdzogMSB9fSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInN1YnRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxEaXNtaXNzMjBSZWd1bGFyIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuRmlsdGVyTWVudUlkKHVuZGVmaW5lZCl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAge3JlbmRlck9wZXJhdG9yQ29tYm9Cb3goKX1cclxuICAgICAgICAgICAgICAgIHtyZW5kZXJWYWx1ZUNvbXBvbmVudCgpfVxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwgZmxleERpcmVjdGlvbjogXCJyb3dcIiwganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1lbmRcIiwgZ2FwOiBcIjFlbVwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkFwcGx5RmlsdGVyKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXsoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzVW5wb3B1bGF0ZWRGaWVsZHMgPSAhb3BlcmF0b3IgfHwgIXZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGZpbHRlciBtYXRjaGVzIHRoZSBhcHBsaWVkIGZpbHRlciwgZGlzYWJsZSB0aGUgYXBwbHkgYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gY29sdW1uRmlsdGVycy5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5OYW1lID09PSBjb2x1bW4uY29sdW1uSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0FwcGxpZWRGaWx0ZXIgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWx0ZXIgJiYgY3VycmVudEZpbHRlci5vcGVyYXRvciA9PT0gb3BlcmF0b3IgJiYgY3VycmVudEZpbHRlci52YWx1ZSA9PT0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc1VucG9wdWxhdGVkRmllbGRzIHx8IGhhc0FwcGxpZWRGaWx0ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBcHBseVxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29sdW1uRmlsdGVycyhjb2x1bW5GaWx0ZXJzLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuY29sdW1uTmFtZSAhPT0gY29sdW1uLmNvbHVtbklkKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuRmlsdGVyTWVudUlkKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshYXBwbGllZEZpbHRlcn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsZWFyXHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9NZW51UG9wb3Zlcj5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7XHJcbiAgICBCdXR0b24sXHJcbiAgICBNZW51LFxyXG4gICAgTWVudVRyaWdnZXIsXHJcbiAgICBUYWJsZSxcclxuICAgIFRhYmxlQm9keSxcclxuICAgIFRhYmxlQ2VsbCxcclxuICAgIFRhYmxlQ29sdW1uRGVmaW5pdGlvbixcclxuICAgIFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucyxcclxuICAgIFRhYmxlSGVhZGVyLFxyXG4gICAgVGFibGVIZWFkZXJDZWxsLFxyXG4gICAgVGFibGVSb3csXHJcbiAgICBUYWJsZVJvd0lkLFxyXG4gICAgVGFibGVTZWxlY3Rpb25DZWxsLFxyXG4gICAgVGV4dCxcclxuICAgIFRyZWUsXHJcbiAgICBUcmVlSXRlbSxcclxuICAgIFRyZWVJdGVtTGF5b3V0LFxyXG4gICAgbWFrZVN0eWxlcyxcclxuICAgIHVzZVRhYmxlQ29sdW1uU2l6aW5nX3Vuc3RhYmxlLFxyXG4gICAgdXNlVGFibGVGZWF0dXJlcyxcclxuICAgIHVzZVRhYmxlU2VsZWN0aW9uLFxyXG59IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hldnJvbkRvd24yMFJlZ3VsYXIsXHJcbiAgICBDaGV2cm9uUmlnaHQyMFJlZ3VsYXIsXHJcbiAgICBEaXNtaXNzMjRSZWd1bGFyLFxyXG4gICAgRXhwYW5kVXBSaWdodDI0UmVndWxhcixcclxuICAgIEZpbHRlcjIwUmVndWxhcixcclxufSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWljb25zXCI7XHJcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4uLy4uLy4uL0NvbXBvbmVudHMvRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza0Fzc2lnbmVkVG8gfSBmcm9tIFwiLi4vLi4vLi4vRW51bXMvUHJvamVjdFRhc2tBc3NpZ25lZFRvXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IEZpbHRlck1lbnUgfSBmcm9tIFwiLi9GaWx0ZXJNZW51XCI7XHJcbmltcG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gXCIuL09wZXJhdG9yU2V0XCI7XHJcbmltcG9ydCB7IFJvdyB9IGZyb20gXCIuL1Byb2plY3RzRWRpdFRhc2tzXCI7XHJcbmltcG9ydCB7IHVzZVdpbmRvd1dpZHRoIH0gZnJvbSBcIi4uLy4uLy4uL0hvb2tzL3VzZVdpbmRvd1dpZHRoXCI7XHJcblxyXG4vKipcclxuICogVGhlIHN0eWxlcyB1c2VkIGZvciB0aGUgUHJvamVjdCBUYXNrIFRhYmxlLlxyXG4gKiBXZSBtdXN0IHNldCBzb21lIHN0eWxlcyBhcyBpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZmx1ZW50IHVpIHN0eWxlcy5cclxuICovXHJcbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoe1xyXG4gICAgcHJvamVjdHNHcmlkOiB7XHJcbiAgICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcclxuICAgIH0sXHJcbiAgICBncmlkQm9keToge1xyXG4gICAgICAgIGhlaWdodDogXCI5NSVcIixcclxuICAgICAgICBvdmVyZmxvd1k6IFwiYXV0b1wiLFxyXG4gICAgICAgIC8vIE1vYmlsZVxyXG4gICAgICAgIFwiQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KVwiOiB7XHJcbiAgICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBzdW1tYXJ5VGFzazoge1xyXG4gICAgICAgIGJvcmRlckJvdHRvbTogXCIxcHggc29saWQgI2NjY1wiLFxyXG4gICAgICAgIHBhZGRpbmc6IFwiMC44ZW1cIixcclxuICAgICAgICAvLyBNb2JpbGVcclxuICAgICAgICBcIkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweClcIjoge1xyXG4gICAgICAgICAgICBwYWRkaW5nTGVmdDogMCxcclxuICAgICAgICB9LFxyXG4gICAgfSxcclxuICAgIHRhYmxlUm93OiB7XHJcbiAgICAgICAgLy8gU2hvdyBhIG5vcm1hbCBjdXJzb3Igb24gaG92ZXJcclxuICAgICAgICBcIiY6aG92ZXJcIjoge1xyXG4gICAgICAgICAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIC8vIE1vYmlsZSAtIGltcG9ydGFudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwYWRkaW5nXHJcbiAgICAgICAgXCJAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpXCI6IHtcclxuICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXHJcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXHJcbiAgICAgICAgICAgIHdpZHRoOiBcIjIzZW0gIWltcG9ydGFudFwiLFxyXG4gICAgICAgICAgICBtYXJnaW5Ub3A6IFwiMCAhaW1wb3J0YW50XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBUYWJsZXRcclxuICAgICAgICBcIkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpXCI6IHtcclxuICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXHJcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXHJcbiAgICAgICAgICAgIHdpZHRoOiBcIjEwMCUgIWltcG9ydGFudFwiLFxyXG4gICAgICAgICAgICBtYXhXaWR0aDogXCIxMDAlXCIsXHJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcclxuICAgICAgICAgICAgZ2FwOiBcIjFlbVwiLFxyXG4gICAgICAgICAgICBwYWRkaW5nVG9wOiBcIjFlbVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgdGFibGVDZWxsOiB7XHJcbiAgICAgICAgLy8gTW9iaWxlXHJcbiAgICAgICAgXCJAbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KVwiOiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleCAhaW1wb3J0YW50XCIsXHJcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXHJcbiAgICAgICAgICAgIHdpZHRoOiBcIjEwMCUgIWltcG9ydGFudFwiLFxyXG4gICAgICAgICAgICBtYXhXaWR0aDogXCIxMDAlICFpbXBvcnRhbnRcIixcclxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICAgIGhlaWdodDogXCJmaXQtY29udGVudFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgZmlsdGVySWNvbkNvbnRhaW5lcjoge1xyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXHJcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcclxuICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxyXG4gICAgICAgIG1hcmdpblJpZ2h0OiBcIjAuOGVtXCIsXHJcbiAgICB9LFxyXG59KTtcclxuXHJcbi8qKiBUaGUgYW1vdW50IG9mIGluZGVudGF0aW9uIGZvciBlYWNoIGxldmVsIGluIHRoZSB0cmVlLiAqL1xyXG5leHBvcnQgY29uc3QgSU5ERU5UQVRJT05fU0laRSA9IDI1O1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIGFtb3VudCBvZiBpbmRlbnRhdGlvbiBmb3IgYSBnaXZlbiBsZXZlbC5cclxuICogQHBhcmFtIGxldmVsIFRoZSBsZXZlbCB0byBnZXQgdGhlIGluZGVudGF0aW9uIGZvci5cclxuICogQHJldHVybnMgVGhlIGFtb3VudCBvZiBpbmRlbnRhdGlvbi5cclxuICogQGV4YW1wbGUgZ2V0SW5kZW50YXRpb25BbW91bnQoMSkgLy8gMFxyXG4gKiBAZXhhbXBsZSBnZXRJbmRlbnRhdGlvbkFtb3VudCgzKSAvLyA3NVxyXG4gKiBAcmVtYXJrcyBUaGlzIGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBpbmRlbnRhdGlvbiBmb3IgdGhlIHRyZWUgc3RydWN0dXJlIC0gd2UgZG8gbm90IHdhbnQgdG8gaW5kZW50IHRoZSBmaXJzdCBsZXZlbC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmRlbnRhdGlvbkFtb3VudChsZXZlbDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKGxldmVsIC0gMSkgKiBJTkRFTlRBVElPTl9TSVpFO1xyXG59XHJcblxyXG4vKiogVGhlIGNvbHVtbnMgZm9yIHRoZSB0YWJsZS4gKi9cclxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5JZCA9IFwibmFtZVwiIHwgXCJhc3NpZ25lZFRvXCIgfCBcInN0YXJ0RGF0ZVwiIHwgXCJzdGF0dXNcIiB8IFwiYWN0aW9uc1wiO1xyXG5cclxuLyoqXHJcbiAqIEEgY29tcG9uZW50IHdoaWNoIHJlbmRlcnMgYSBOZXN0ZWQgRmx1ZW50IFVJIFRhYmxlLlxyXG4gKiBUaGlzIGNvbXBvbmVudCBjYW4gYmUgdXNlZCBhcyBhIHRhYmxlIHRvIGRpc3BsYXkgZGF0YSBhcyB3ZWxsIGFzIGEgbGlzdCBvZiBzZWxlY3RhYmxlIGl0ZW1zLlxyXG4gKlxyXG4gKiBUaGlzIHRhYmxlIHJlcXVpcmVzIHRoYXQgYG5vTmF0aXZlRWxlbWVudHNgIGlzIHNldCB0byB0cnVlLiBUaGlzIHdpbGwgYWxsb3cgdGhlIHRhYmxlIHRvIGJlIHJlbmRlcmVkIGluIGEgdHJlZSBzdHJ1Y3R1cmUuXHJcbiAqIEBTZWUgaHR0cHM6Ly9yZWFjdC5mbHVlbnR1aS5kZXYvP3BhdGg9L2RvY3MvY29tcG9uZW50cy10YWJsZS0tZGVmYXVsdCNub24tbmF0aXZlLWVsZW1lbnRzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgUHJvamVjdFRhc2tUYWJsZSA9ICh7XHJcbiAgICBpdGVtcyxcclxuICAgIGNvbHVtbnMsXHJcbiAgICBzZWxlY3Rpb25Nb2RlLFxyXG4gICAgb25TZWxlY3Rpb25DaGFuZ2VkLFxyXG4gICAgaW5pdGlhbFJvd1NlbGVjdGlvbixcclxuICAgIGNvbHVtblNpemluZ09wdGlvbnMsXHJcbiAgICBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3BlbixcclxuICAgIGlzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVuLFxyXG59OiB7XHJcbiAgICBpdGVtczogUm93W107XHJcbiAgICBjb2x1bW5zOiBUYWJsZUNvbHVtbkRlZmluaXRpb248Um93PltdO1xyXG4gICAgc2VsZWN0aW9uTW9kZT86IFwibXVsdGlzZWxlY3RcIiB8IFwic2luZ2xlXCIgfCB1bmRlZmluZWQ7XHJcbiAgICBvblNlbGVjdGlvbkNoYW5nZWQ/OiAoc2VsZWN0aW9uOiBTZXQ8VGFibGVSb3dJZD4pID0+IHZvaWQ7XHJcbiAgICBpbml0aWFsUm93U2VsZWN0aW9uPzogc3RyaW5nW107XHJcbiAgICBjb2x1bW5TaXppbmdPcHRpb25zPzogVGFibGVDb2x1bW5TaXppbmdPcHRpb25zO1xyXG4gICAgc2V0SXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW4/OiAoaXNPcGVuOiBib29sZWFuKSA9PiB2b2lkO1xyXG4gICAgaXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW4/OiBib29sZWFuO1xyXG59KSA9PiB7XHJcbiAgICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcclxuXHJcbiAgICBjb25zdCBjb250YWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuY29udGFjdHMpO1xyXG5cclxuICAgIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxTZXQ8VGFibGVSb3dJZD4+KG5ldyBTZXQoaW5pdGlhbFJvd1NlbGVjdGlvbiA/PyBbXSkpO1xyXG4gICAgY29uc3QgW29wZW5CcmFuY2hlcywgc2V0T3BlbkJyYW5jaGVzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihnZXRBbGxJdGVtcyhpdGVtcykubWFwKChyb3cpID0+IHJvdy5rZXkpKTtcclxuXHJcbiAgICBjb25zdCBbY29sdW1uRmlsdGVycywgc2V0Q29sdW1uRmlsdGVyc10gPSB1c2VTdGF0ZTxDb2x1bW5GaWx0ZXJbXT4oW10pO1xyXG4gICAgY29uc3QgW29wZW5GaWx0ZXJNZW51SWQsIHNldE9wZW5GaWx0ZXJNZW51SWRdID0gdXNlU3RhdGU8VGFibGVDb2x1bW5JZCB8IHVuZGVmaW5lZD4oKTtcclxuXHJcbiAgICBjb25zdCBhbGxCcmFuY2hlc0V4cGFuZGVkID0gb3BlbkJyYW5jaGVzLmxlbmd0aCA9PT0gZ2V0QWxsSXRlbXMoaXRlbXMpLmxlbmd0aDtcclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb25Nb2RlRW5hYmxlZCA9IHNlbGVjdGlvbk1vZGUgIT09IHVuZGVmaW5lZDtcclxuXHJcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHVzZVdpbmRvd1dpZHRoKCk7XHJcblxyXG4gICAgLy8gQW55IGRldmljZSBzbWFsbGVyIHRoYW4gYSByZWd1bGFyIHNjcmVlbiAxMDI0cHhcclxuICAgIGNvbnN0IGlzTW9iaWxlID0gd2luZG93V2lkdGggPCA3Njg7XHJcbiAgICBjb25zdCBub3ROYXRpdmVTY3JlZW5TaXplID0gd2luZG93V2lkdGggPCAxMDI0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXJzaXZlbHkgZ2V0cyBhbGwgdGhlIGl0ZW1zIGluIHRoZSB0cmVlLlxyXG4gICAgICogQHBhcmFtIHJvd3MgVGhlIHJvd3MgdG8gZ2V0IHRoZSBpdGVtcyBmcm9tLlxyXG4gICAgICogQHJldHVybnMgVGhlIGl0ZW1zIGluIHRoZSB0cmVlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRBbGxJdGVtcyhyb3dzOiBSb3dbXSk6IFJvd1tdIHtcclxuICAgICAgICByZXR1cm4gcm93cy5mbGF0TWFwKChyb3cpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJvdy5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtyb3csIC4uLmdldEFsbEl0ZW1zKHJvdy5jaGlsZHJlbildO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gW3Jvd107XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIGEgY3VzdG9tIGhvb2sgd2hpY2ggcHJvdmlkZXMgdGhlIHRhYmxlIGZlYXR1cmVzLlxyXG4gICAgICogWW91IGFyZSBhYmxlIHRvIHNldCB0aGUgc2VsZWN0aW9uIG1vZGUgYW5kIHByb3ZpZGUgdGhlIHJlcXVpcmVkIHByb3BzIGZvciB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogVGhpcyBhbGxvd3MgZm9yIHVzZSBvZiBzZWxlY3Rpb24gd2l0aGluIHRoZSB0cmVlIHN0cnVjdHVyZSwgYXMgdGhlIHJvdyBpZCBpcyB0aGUgaXRlbSBpZCBhbmQgbm90IHRoZSBncm91cCBpZC5cclxuICAgICAqIFRoaXMgZW5hYmxlcyBzZWxlY3Rpb24gb2YgaW5kaXZpZHVhbCBpdGVtcyB3aXRoaW4gYSBncm91cC5cclxuICAgICAqL1xyXG4gICAgY29uc3Qge1xyXG4gICAgICAgIGdldFJvd3MsXHJcbiAgICAgICAgc2VsZWN0aW9uOiB7IGFsbFJvd3NTZWxlY3RlZCwgc29tZVJvd3NTZWxlY3RlZCwgdG9nZ2xlQWxsUm93cywgdG9nZ2xlUm93LCBpc1Jvd1NlbGVjdGVkIH0sXHJcbiAgICAgICAgY29sdW1uU2l6aW5nX3Vuc3RhYmxlLFxyXG4gICAgICAgIHRhYmxlUmVmLFxyXG4gICAgfSA9IHVzZVRhYmxlRmVhdHVyZXMoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5zLFxyXG4gICAgICAgICAgICBpdGVtczogZ2V0QWxsSXRlbXMoaXRlbXMpLFxyXG4gICAgICAgICAgICBnZXRSb3dJZDogKGl0ZW0pID0+IGl0ZW0/LmtleSA/PyBcIlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgICAuLi4oc2VsZWN0aW9uTW9kZUVuYWJsZWRcclxuICAgICAgICAgICAgICAgID8gW1xyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlVGFibGVTZWxlY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU6IHNlbGVjdGlvbk1vZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtczogc2VsZWN0ZWRSb3dzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlOiAoXywgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZFJvd3MoZGF0YS5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2VkPy4oZGF0YS5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgIDogKFtdIGFzIGFueSkpLFxyXG4gICAgICAgICAgICB1c2VUYWJsZUNvbHVtblNpemluZ191bnN0YWJsZSh7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5TaXppbmdPcHRpb25zLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdXHJcbiAgICApO1xyXG5cclxuICAgIC8vIE1hcCB0aGUgcm93cyB0byBpbmNsdWRlIHRoZSBzZWxlY3Rpb24gcHJvcHMuXHJcbiAgICBjb25zdCByb3dzID0gZ2V0Um93cygocm93KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc1Jvd1NlbGVjdGVkKHJvdy5yb3dJZCk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnJvdyxcclxuICAgICAgICAgICAgb25DbGljazogKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHRvZ2dsZVJvdyhlLCByb3cucm93SWQpLFxyXG4gICAgICAgICAgICBvbktleURvd246IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09IFwiIFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZVJvdyhlLCByb3cucm93SWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0aW9uTW9kZUVuYWJsZWQgPyBzZWxlY3RlZCA6IGZhbHNlLFxyXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBzZWxlY3RlZCA/IChcImJyYW5kXCIgYXMgY29uc3QpIDogKFwibm9uZVwiIGFzIGNvbnN0KSxcclxuICAgICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdGhlIHRhYmxlIG5vdCBiZWluZyBhYmxlIHRvIGJlIHNlbGVjdGVkIHdpdGggdGhlIHNwYWNlYmFyLlxyXG4gICAgICogVGhpcyB3aWxsIGFsbG93IHRoZSB0YWJsZSB0byBiZSBzZWxlY3RlZCB3aXRoIHRoZSBzcGFjZWJhci5cclxuICAgICAqIEBwYXJhbSBlIFRoZSBrZXlkb3duIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBjb25zdCB0b2dnbGVBbGxLZXlkb3duID0gUmVhY3QudXNlQ2FsbGJhY2soXHJcbiAgICAgICAgKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCIgXCIpIHtcclxuICAgICAgICAgICAgICAgIHRvZ2dsZUFsbFJvd3MoZSk7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIFt0b2dnbGVBbGxSb3dzXVxyXG4gICAgKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGNvbXBhcmlzb24gdmFsdWUgZm9yIGEgY29sdW1uLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbkZpbHRlciBUaGUgY29sdW1uIGZpbHRlciB0byBnZXQgdGhlIGNvbXBhcmlzb24gdmFsdWUgZm9yLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxyXG4gICAgICogQHJldHVybnMgVGhlIGNvbXBhcmlzb24gdmFsdWUgZm9yIHRoZSBjb2x1bW4uXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGdldENvbXBhcmlzb25WYWx1ZUZvckNvbHVtbiA9IChjb2x1bW5GaWx0ZXI6IENvbHVtbkZpbHRlciwgdmFsdWU6IFJvdykgPT4ge1xyXG4gICAgICAgIGlmIChjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbnRhY3RzIGFyZSBub3QgbG9hZGVkXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoIChjb2x1bW5GaWx0ZXIuY29sdW1uTmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlIFwiYXNzaWduZWRUb1wiOlxyXG4gICAgICAgICAgICAgICAgY29uc3QgYXNzaWduZWRUbyA9IHZhbHVlLmFzc2lnbmVkVG87XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGFzc2lnbmVkIHRvIGZpbHRlciBpcyBzZXQgdG8gdGhlIEVudW0gdmFsdWUsIHRoZW4gcmV0dXJuIHRoZSBFbnVtIHZhbHVlXHJcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoUHJvamVjdFRhc2tBc3NpZ25lZFRvKS5pbmNsdWRlcyhjb2x1bW5GaWx0ZXIudmFsdWUpICYmIGFzc2lnbmVkVG8pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXNzaWduZWRUbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBFbHNlOyByZXR1cm4gdGhlIGNvbnRhY3QgbmFtZVxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdCA9IGNvbnRhY3RzLmRhdGEuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAoY29udGFjdCkgPT4gY29udGFjdC5jb250YWN0aWQgPT09IHZhbHVlLmFzc2lnbmVkVG9DdXN0b21lckNvbnRhY3RJZFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGFjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250YWN0LmZ1bGxuYW1lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJzdGFydERhdGVcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBEYXRlSGVscGVyLnRvRGF0ZU9ubHlTdHJpbmcodmFsdWUuc3RhcnREYXRlISk7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwibmFtZVwiOlxyXG4gICAgICAgICAgICBjYXNlIFwic3RhdHVzXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVbY29sdW1uRmlsdGVyLmNvbHVtbk5hbWVdO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcImFjdGlvbnNcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIHRoZSBmaWx0ZXIgdG8gYSByb3cuXHJcbiAgICAgKiBAcGFyYW0gcm93IFRoZSByb3cgdG8gYXBwbHkgdGhlIGZpbHRlciB0by5cclxuICAgICAqIEBwYXJhbSBjb2x1bW5GaWx0ZXJzIFRoZSBjb2x1bW4gZmlsdGVycyB0byBhcHBseS5cclxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJvdyBtYXRjaGVzIHRoZSBmaWx0ZXIuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGFwcGx5RmlsdGVyVG9Sb3cgPSAocm93OiBSb3csIGNvbHVtbkZpbHRlcnM6IENvbHVtbkZpbHRlcltdKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbkZpbHRlcnMuZXZlcnkoKGZpbHRlcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldENvbXBhcmlzb25WYWx1ZUZvckNvbHVtbihmaWx0ZXIsIHJvdyk7XHJcblxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQ29tcGFyZXMgdHdvIHN0cmluZ3MgYXMgbG93ZXJjYXNlLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBmaWx0ZXJWYWx1ZSBUaGUgZmlsdGVyIHZhbHVlIHRvIGNvbXBhcmUuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBjb21wYXJlRnVuY3Rpb24gVGhlIGNvbXBhcmUgZnVuY3Rpb24gdG8gdXNlLlxyXG4gICAgICAgICAgICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBzdHJpbmdzIG1hdGNoLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgY29uc3QgY29tcGFyZVN0cmluZ3MgPSAoXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIGZpbHRlclZhbHVlOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBjb21wYXJlRnVuY3Rpb246ICh2YWx1ZTogc3RyaW5nLCBmaWx0ZXJWYWx1ZTogc3RyaW5nKSA9PiBib29sZWFuXHJcbiAgICAgICAgICAgICkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIGNvbXBhcmVGdW5jdGlvbih2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksIGZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXIub3BlcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJFcXVhbHNcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLmNvbHVtbk5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGRhdGVzIHdpdGggdGltZSBzZXQgdG8gbWlkbmlnaHQgKDAwOjAwOjAwLjAwMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZVZhbHVlID0gRGF0ZUhlbHBlci5uZXdEYXRlRnJvbURhdGVPbmx5KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0ZSA9IG5ldyBEYXRlKGZpbHRlci52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGltZSBjb21wb25lbnRzIHRvIDAwOjAwOjAwLjAwMCBmb3IgYm90aCBkYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb21wYXJlIHRoZSBkYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVZhbHVlLmdldFRpbWUoKSA9PT0gZmlsdGVyRGF0ZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IGZpbHRlci52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJOb3QgRXF1YWxzXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9PSBmaWx0ZXIudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiQ29udGFpbnNcIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZVN0cmluZ3ModmFsdWUsIGZpbHRlci52YWx1ZSwgKHZhbHVlLCBmaWx0ZXJWYWx1ZSkgPT4gdmFsdWUuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJEb2VzIE5vdCBDb250YWluXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjb21wYXJlU3RyaW5ncyh2YWx1ZSwgZmlsdGVyLnZhbHVlLCAodmFsdWUsIGZpbHRlclZhbHVlKSA9PiB2YWx1ZS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlN0YXJ0cyBXaXRoXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVTdHJpbmdzKHZhbHVlLCBmaWx0ZXIudmFsdWUsICh2YWx1ZSwgZmlsdGVyKSA9PiB2YWx1ZS5zdGFydHNXaXRoKGZpbHRlcikpO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkVuZHMgV2l0aFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlU3RyaW5ncyh2YWx1ZSwgZmlsdGVyLnZhbHVlLCAodmFsdWUsIGZpbHRlcikgPT4gdmFsdWUuZW5kc1dpdGgoZmlsdGVyKSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiR3JlYXRlciBUaGFuXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyB1bmtub3duIGFzIG51bWJlcikgPiBmaWx0ZXIudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiTGVzcyBUaGFuXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyB1bmtub3duIGFzIG51bWJlcikgPCBmaWx0ZXIudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiR3JlYXRlciBUaGFuIE9yIEVxdWFsIFRvXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyB1bmtub3duIGFzIG51bWJlcikgPj0gZmlsdGVyLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkxlc3MgVGhhbiBPciBFcXVhbCBUb1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgdW5rbm93biBhcyBudW1iZXIpIDw9IGZpbHRlci52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJBZnRlclwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IERhdGVIZWxwZXIubmV3RGF0ZUZyb21EYXRlT25seSh2YWx1ZSkgPiBmaWx0ZXIudmFsdWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJCZWZvcmVcIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPyBEYXRlSGVscGVyLm5ld0RhdGVGcm9tRGF0ZU9ubHkodmFsdWUpIDwgZmlsdGVyLnZhbHVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiT24gT3IgQWZ0ZXJcIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPyBEYXRlSGVscGVyLm5ld0RhdGVGcm9tRGF0ZU9ubHkodmFsdWUpID49IGZpbHRlci52YWx1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIk9uIE9yIEJlZm9yZVwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IERhdGVIZWxwZXIubmV3RGF0ZUZyb21EYXRlT25seSh2YWx1ZSkgPD0gZmlsdGVyLnZhbHVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0ZXJtaW5lcyBpZiBhbnkgb2YgdGhlIGRlc2NlbmRlbnRzIG1hdGNoIHRoZSBmaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0gcm93IFRoZSByb3cgdG8gY2hlY2suXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uRmlsdGVycyBUaGUgY29sdW1uIGZpbHRlcnMgdG8gYXBwbHkuXHJcbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIGFueSBvZiB0aGUgZGVzY2VuZGVudHMgbWF0Y2ggdGhlIGZpbHRlci5cclxuICAgICAqL1xyXG4gICAgY29uc3QgZGV0ZXJtaW5lQW55RGVzY2VuZGVudHNNYXRjaEZpbHRlciA9IChyb3c6IFJvdywgY29sdW1uRmlsdGVyczogQ29sdW1uRmlsdGVyW10pID0+IHtcclxuICAgICAgICBpZiAocm93LmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByb3cuY2hpbGRyZW4uc29tZSgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwbHlGaWx0ZXJUb1JvdyhjaGlsZCwgY29sdW1uRmlsdGVycykgfHwgZGV0ZXJtaW5lQW55RGVzY2VuZGVudHNNYXRjaEZpbHRlcihjaGlsZCwgY29sdW1uRmlsdGVycylcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlcnMgdGhlIHRhYmxlLlxyXG4gICAgICogQHBhcmFtIHJvd3MgVGhlIHJvd3MgdG8gcmVuZGVyLlxyXG4gICAgICogQHJldHVybnMgVGhlIHJlbmRlcmVkIHRhYmxlLlxyXG4gICAgICovXHJcbiAgICBjb25zdCByZW5kZXJUYWJsZSA9IChyb3dzOiBSb3dbXSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSByb3cgaGFzIGNoaWxkcmVuIHRoZW4gY2hlY2sgaWYgYW55IGRlc2NlbmRlbnRzIG1hdGNoIHRoZSBmaWx0ZXJcclxuICAgICAgICAgICAgY29uc3Qgcm93SGFzQ2hpbGRyZW4gPSByb3cuY2hpbGRyZW4gJiYgcm93LmNoaWxkcmVuLmxlbmd0aCA+IDA7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgcm93IGhhcyBjaGlsZHJlbiwgY2hlY2sgaWYgYW55IG9mIHRoZSBkZXNjZW5kZW50cyBtYXRjaCB0aGUgZmlsdGVyXHJcbiAgICAgICAgICAgIGNvbnN0IGRlc2NlbmRlbnRzTWF0Y2hGaWx0ZXIgPSByb3dIYXNDaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgPyBkZXRlcm1pbmVBbnlEZXNjZW5kZW50c01hdGNoRmlsdGVyKHJvdywgY29sdW1uRmlsdGVycylcclxuICAgICAgICAgICAgICAgIDogZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgcm93IGlzIGEgc3VtbWFyeSB0YXNrIGJ1dCBhIGRlc2NlbmRlbnQgbWF0Y2hlcyB0aGUgZmlsdGVyLCB0aGVuIHNob3cgdGhlIHJvd1xyXG4gICAgICAgICAgICBpZiAocm93SGFzQ2hpbGRyZW4gJiYgZGVzY2VuZGVudHNNYXRjaEZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17cm93LmtleX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJCcmFuY2gocm93KX1cclxuICAgICAgICAgICAgICAgICAgICAgICAge29wZW5CcmFuY2hlcy5pbmNsdWRlcyhyb3cua2V5KSAmJiByZW5kZXJUYWJsZShyb3cuY2hpbGRyZW4hKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gSWYgdGhlIHJvdyBpcyBhIHN1bW1hcnkgdGFzayBhbmQgbm8gZGVzY2VuZGVudHMgbWF0Y2ggdGhlIGZpbHRlciwgdGhlbiBoaWRlIHRoZSByb3dcclxuICAgICAgICAgICAgZWxzZSBpZiAocm93SGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFhcHBseUZpbHRlclRvUm93KHJvdywgY29sdW1uRmlsdGVycykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gRWxzZTsgcmVuZGVyIHRoZSByb3dcclxuICAgICAgICAgICAgcmV0dXJuIHJlbmRlckxlYWYocm93KTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW5kZXJzIHRoZSBmaWx0ZXIgbWVudSBmb3IgYSBjb2x1bW4uXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uIFRoZSBjb2x1bW4gdG8gcmVuZGVyIHRoZSBmaWx0ZXIgbWVudSBmb3IuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgZmlsdGVyIG1lbnUuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHJlbmRlckZpbHRlck1lbnUgPSAoY29sdW1uOiBUYWJsZUNvbHVtbkRlZmluaXRpb248Um93PikgPT4ge1xyXG4gICAgICAgIGlmIChjb2x1bW4uY29sdW1uSWQgPT09IFwiYWN0aW9uc1wiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PjwvPjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxGaWx0ZXJNZW51XHJcbiAgICAgICAgICAgICAgICB0YWJsZU5hbWU9XCJQcm9qZWN0IFRhc2tzXCJcclxuICAgICAgICAgICAgICAgIHNldE9wZW5GaWx0ZXJNZW51SWQ9e3NldE9wZW5GaWx0ZXJNZW51SWR9XHJcbiAgICAgICAgICAgICAgICBzZXRDb2x1bW5GaWx0ZXJzPXtzZXRDb2x1bW5GaWx0ZXJzfVxyXG4gICAgICAgICAgICAgICAgY29sdW1uRmlsdGVycz17Y29sdW1uRmlsdGVyc31cclxuICAgICAgICAgICAgICAgIGNvbHVtbj17Y29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZmxhdHRlbmVkSXRlbXM9e2dldEFsbEl0ZW1zKGl0ZW1zKX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlcnMgYSBicmFuY2ggaW4gdGhlIHRyZWUuXHJcbiAgICAgKiBAcGFyYW0gcm93IFRoZSByb3cgdG8gcmVuZGVyLlxyXG4gICAgICogQHJldHVybnMgVGhlIHJlbmRlcmVkIGJyYW5jaC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgcmVuZGVyQnJhbmNoID0gKHJvdzogUm93KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBzZWxlY3RlZCB9ID0gcm93cy5maW5kKChyKSA9PiByLnJvd0lkID09PSByb3cua2V5KSE7XHJcblxyXG4gICAgICAgIC8vIElmIGFueSBvZiB0aGUgY2hpbGRyZW4gYXJlIHNlbGVjdGVkLCB0aGVuIHRoZSBicmFuY2ggc2hvdWxkIGJlIHNlbGVjdGVkIGFzIFwibWl4ZWRcIlxyXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gZ2V0QWxsSXRlbXMocm93LmNoaWxkcmVuISk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNoZWNrZWQgPVxyXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlRW5hYmxlZCAmJiBjaGlsZHJlbi5ldmVyeSgoY2hpbGQpID0+IHNlbGVjdGVkUm93cy5oYXMoY2hpbGQua2V5KSlcclxuICAgICAgICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgOiBjaGlsZHJlbi5zb21lKChjaGlsZCkgPT4gc2VsZWN0ZWRSb3dzLmhhcyhjaGlsZC5rZXkpKVxyXG4gICAgICAgICAgICAgICAgPyBcIm1peGVkXCJcclxuICAgICAgICAgICAgICAgIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPFRyZWVJdGVtXHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtyb3cua2V5fVxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1UeXBlPXtcImJyYW5jaFwifVxyXG4gICAgICAgICAgICAgICAgICAgIG9wZW49e29wZW5CcmFuY2hlcy5pbmNsdWRlcyhyb3cua2V5KX1cclxuICAgICAgICAgICAgICAgICAgICBvbk9wZW5DaGFuZ2U9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wZW5CcmFuY2hlcy5pbmNsdWRlcyhyb3cua2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3BlbkJyYW5jaGVzKG9wZW5CcmFuY2hlcy5maWx0ZXIoKGJyYW5jaCkgPT4gYnJhbmNoICE9PSByb3cua2V5KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuQnJhbmNoZXMoWy4uLm9wZW5CcmFuY2hlcywgcm93LmtleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8VHJlZUl0ZW1MYXlvdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuc3VtbWFyeVRhc2t9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgaW5kZW50IGlmIG9uIG1vYmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogbm90TmF0aXZlU2NyZWVuU2l6ZSA/IDAgOiBnZXRJbmRlbnRhdGlvbkFtb3VudChyb3cubGV2ZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uQWZ0ZXI9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uTW9kZUVuYWJsZWQgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VsZWN0aW9uQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtzZWxlY3Rpb25Nb2RlID09PSBcIm11bHRpc2VsZWN0XCIgPyBcImNoZWNrYm94XCIgOiBcInJhZGlvXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SW5kaWNhdG9yPXt7IFwiYXJpYS1sYWJlbFwiOiBcIlNlbGVjdCByb3dcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRkZW49e3NlbGVjdGlvbk1vZGUgPT09IHVuZGVmaW5lZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbiBjbGljayBzZWxlY3QgYWxsIHRoZSBjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBnZXRBbGxJdGVtcyhyb3cuY2hpbGRyZW4hKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0JlaW5nU2VsZWN0ZWQgPSAhc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGJyYW5jaCBpcyBzZWxlY3RlZCwgZGVzZWxlY3QgYWxsIHRoZSBjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRSb3dzKChwcmV2KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gbmV3IFNldChwcmV2KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGJyYW5jaCBpcyBiZWluZyBzZWxlY3RlZCwgc2VsZWN0IGFsbCB0aGUgY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWluZ1NlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBuZXdTZWxlY3Rpb24uYWRkKGNoaWxkLmtleSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uYWRkKHJvdy5rZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYnJhbmNoIGlzIGJlaW5nIGRlc2VsZWN0ZWQsIGRlc2VsZWN0IGFsbCB0aGUgY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IG5ld1NlbGVjdGlvbi5kZWxldGUoY2hpbGQua2V5KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5kZWxldGUocm93LmtleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U2VsZWN0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHN0YXRlIGlzIHVwZGF0ZWQgd2hlbiBhIGJyYW5jaCBpcyBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2VkPy4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFNldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNCZWluZ1NlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtyb3cua2V5LCAuLi5zZWxlY3RlZFJvd3MsIC4uLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGNoaWxkLmtleSldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEFycmF5LmZyb20oc2VsZWN0ZWRSb3dzLnZhbHVlcygpKS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWQpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LmtleSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gY2hpbGQua2V5KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLmluY2x1ZGVzKGlkIGFzIHN0cmluZylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgd2VpZ2h0PVwic2VtaWJvbGRcIiBzaXplPXs0MDB9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Jvdy5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9UcmVlSXRlbUxheW91dD5cclxuICAgICAgICAgICAgICAgIDwvVHJlZUl0ZW0+XHJcbiAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbmRlcnMgYSBsZWFmIGluIHRoZSB0cmVlLlxyXG4gICAgICogQHBhcmFtIHJvdyBUaGUgcm93IHRvIHJlbmRlci5cclxuICAgICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBsZWFmLlxyXG4gICAgICovXHJcbiAgICBjb25zdCByZW5kZXJMZWFmID0gKHJvdzogUm93KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBpdGVtLCBzZWxlY3RlZCwgb25DbGljaywgb25LZXlEb3duLCBhcHBlYXJhbmNlIH0gPSByb3dzLmZpbmQoKHIpID0+IHIucm93SWQgPT09IHJvdy5rZXkpITtcclxuXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFRyZWVJdGVtIGl0ZW1UeXBlPVwibGVhZlwiIGtleT17cm93LmtleX0+XHJcbiAgICAgICAgICAgICAgICA8VGFibGVSb3dcclxuICAgICAgICAgICAgICAgICAgICBrZXk9e3Jvdy5rZXl9XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cclxuICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtzZWxlY3RlZH1cclxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPXthcHBlYXJhbmNlfVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRhYmxlUm93fVxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdC1pZD17XCJ0YWJsZS1yb3dcIn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7c2VsZWN0aW9uTW9kZUVuYWJsZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVTZWxlY3Rpb25DZWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtzZWxlY3Rpb25Nb2RlID09PSBcIm11bHRpc2VsZWN0XCIgPyBcImNoZWNrYm94XCIgOiBcInJhZGlvXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtzZWxlY3RlZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SW5kaWNhdG9yPXt7IFwiYXJpYS1sYWJlbFwiOiBcIlNlbGVjdCByb3dcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZGVuPXtzZWxlY3Rpb25Nb2RlID09PSB1bmRlZmluZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjb2x1bW4gaXMgdGhlIGFjdGlvbnMgY29sdW1uIGFuZCB0aGUgY2VsbCBpcyB1bmRlZmluZWQsIHRoZW4gZG8gbm90IHJlbmRlciB0aGUgY2VsbCAtIGZvciBtb2JpbGUgZGV2aWNlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdE5hdGl2ZVNjcmVlblNpemUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uY29sdW1uSWQgPT09IFwiYWN0aW9uc1wiICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnJlbmRlckNlbGwoaXRlbSkgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChjb2x1bW4pID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbHVtbi5jb2x1bW5JZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uY29sdW1uU2l6aW5nX3Vuc3RhYmxlLmdldFRhYmxlQ2VsbFByb3BzKGNvbHVtbi5jb2x1bW5JZCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudGFibGVDZWxsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtub3ROYXRpdmVTY3JlZW5TaXplID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogXCI0cHhcIiwgd2lkdGg6IFwiMTAwJVwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbi5yZW5kZXJIZWFkZXJDZWxsKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1uLnJlbmRlckNlbGwoaXRlbSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5yZW5kZXJDZWxsKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgIDwvVGFibGVSb3c+XHJcbiAgICAgICAgICAgIDwvVHJlZUl0ZW0+XHJcbiAgICAgICAgKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgcmVmPXt0YWJsZVJlZn1cclxuICAgICAgICAgICAgey4uLmNvbHVtblNpemluZ191bnN0YWJsZS5nZXRUYWJsZVByb3BzKCl9XHJcbiAgICAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBhZnRlciB0aGUgdGFibGUgcHJvcHMgLSBvdGhlcndpc2UgaXQgd2lsbCBiZSBvdmVycmlkZGVuXHJcbiAgICAgICAgICAgIG5vTmF0aXZlRWxlbWVudHM9eyFpc01vYmlsZX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMucHJvamVjdHNHcmlkfVxyXG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3VuZGVmaW5lZH1cclxuICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSB0cmljayB0byBhZGQgdGhlIGNsaWNrIGFuZCBob3ZlciBzdHlsZXMgd2l0aG91dCBhY3R1YWxseSB1c2luZyB0aGUgc29ydGluZyBmdW5jdGlvbmFsaXR5XHJcbiAgICAgICAgICAgIHNvcnRhYmxlXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8VGFibGVIZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8VGFibGVSb3c+XHJcbiAgICAgICAgICAgICAgICAgICAge2FsbEJyYW5jaGVzRXhwYW5kZWQgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bjIwUmVndWxhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW5CcmFuY2hlcyhbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQyMFJlZ3VsYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuQnJhbmNoZXMoZ2V0QWxsSXRlbXMoaXRlbXMpLm1hcCgocm93KSA9PiByb3cua2V5KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3NlbGVjdGlvbk1vZGVFbmFibGVkICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VsZWN0aW9uQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17YWxsUm93c1NlbGVjdGVkID8gdHJ1ZSA6IHNvbWVSb3dzU2VsZWN0ZWQgPyBcIm1peGVkXCIgOiBmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZUFsbFJvd3N9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e3RvZ2dsZUFsbEtleWRvd259XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveEluZGljYXRvcj17eyBcImFyaWEtbGFiZWxcIjogXCJTZWxlY3QgYWxsIHJvd3MgXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbj17c2VsZWN0aW9uTW9kZSAhPT0gXCJtdWx0aXNlbGVjdFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbnMubWFwKChjb2x1bW4pID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29sdW1uLmNvbHVtbklkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbj17b3BlbkZpbHRlck1lbnVJZCA9PT0gY29sdW1uLmNvbHVtbklkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25pbmc9XCJiZWxvdy1lbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuQ2hhbmdlPXsoXywgZGF0YSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuRmlsdGVyTWVudUlkKGRhdGEub3BlbiA/IChjb2x1bW4uY29sdW1uSWQgYXMgVGFibGVDb2x1bW5JZCkgOiB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51VHJpZ2dlciBkaXNhYmxlQnV0dG9uRW5oYW5jZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlSGVhZGVyQ2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbHVtbi5jb2x1bW5JZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmNvbHVtblNpemluZ191bnN0YWJsZS5nZXRUYWJsZUhlYWRlckNlbGxQcm9wcyhjb2x1bW4uY29sdW1uSWQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbHVtbi5yZW5kZXJIZWFkZXJDZWxsKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb2x1bW5GaWx0ZXJzLnNvbWUoKGZpbHRlcikgPT4gZmlsdGVyLmNvbHVtbk5hbWUgPT09IGNvbHVtbi5jb2x1bW5JZCkgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbHRlcjIwUmVndWxhciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4R3JvdzogMSB9fSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1uLmNvbHVtbklkICE9PSBcImFjdGlvbnNcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuZmlsdGVySWNvbkNvbnRhaW5lcn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3duMjBSZWd1bGFyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UYWJsZUhlYWRlckNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lbnVUcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlckZpbHRlck1lbnUoY29sdW1uKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGZsZXhHcm93OiAxIH19IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3Blbj8uKCFpc1Byb2plY3RUYXNrR3JpZE1vZGFsT3Blbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzdWJ0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtpc1Byb2plY3RUYXNrR3JpZE1vZGFsT3BlbiA/IDxEaXNtaXNzMjRSZWd1bGFyIC8+IDogPEV4cGFuZFVwUmlnaHQyNFJlZ3VsYXIgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvVGFibGVSb3c+XHJcbiAgICAgICAgICAgIDwvVGFibGVIZWFkZXI+XHJcbiAgICAgICAgICAgIDxUYWJsZUJvZHkgY2xhc3NOYW1lPXtzdHlsZXMuZ3JpZEJvZHl9PlxyXG4gICAgICAgICAgICAgICAgPFRyZWU+e3JlbmRlclRhYmxlKGl0ZW1zKX08L1RyZWU+XHJcbiAgICAgICAgICAgIDwvVGFibGVCb2R5PlxyXG4gICAgICAgIDwvVGFibGU+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBDYXJkLCBDYXJkUHJvcHMsIFRhYmxlQ29sdW1uRGVmaW5pdGlvbiwgVGFibGVDb2x1bW5TaXppbmdPcHRpb25zIH0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza1RhYmxlLCBUYWJsZUNvbHVtbklkIH0gZnJvbSBcIi4vUHJvamVjdFRhc2tUYWJsZVwiO1xyXG5pbXBvcnQgeyBSb3cgfSBmcm9tIFwiLi9Qcm9qZWN0c0VkaXRUYXNrc1wiO1xyXG5cclxuLy8gVGhlIG1hcHBpbmdzIG9mIGNvbHVtbiB0byBzaXppbmcgbXVsdGlwbGllcnNcclxuZXhwb3J0IGNvbnN0IFRhYmxlQ29sdW1uTXVsdGlwbGllcnM6IHtcclxuICAgIFtrZXkgaW4gVGFibGVDb2x1bW5JZF06IG51bWJlcjtcclxufSA9IHtcclxuICAgIG5hbWU6IDAuNDUsXHJcbiAgICBhc3NpZ25lZFRvOiAwLjE1LFxyXG4gICAgc3RhcnREYXRlOiAwLjEyNSxcclxuICAgIHN0YXR1czogMC4xMjUsXHJcbiAgICBhY3Rpb25zOiAwLjEsXHJcbn07XHJcblxyXG4vKiogQSBncmlkIG9mIGNhcmRzIHRoYXQgZGlzcGxheXMgdGhlIHByb2plY3QgdGFza3MgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RUYXNrR3JpZDogUmVhY3QuRkM8e1xyXG4gICAgdHlwZTogXCJpbmxpbmVcIiB8IFwibW9kYWxcIjtcclxuICAgIGl0ZW1zOiBSb3dbXTtcclxuICAgIGNvbHVtbnM6IFRhYmxlQ29sdW1uRGVmaW5pdGlvbjxSb3c+W107XHJcbiAgICBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3BlbjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcclxuICAgIGlzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVuOiBib29sZWFuO1xyXG4gICAgZ2V0Q29sdW1uU2l6aW5nT3B0aW9uczogKGNhcmRXaWR0aDogbnVtYmVyKSA9PiBUYWJsZUNvbHVtblNpemluZ09wdGlvbnM7XHJcbiAgICBhZGRpdGlvbmFsQ2FyZFByb3BzPzogQ2FyZFByb3BzO1xyXG4gICAgc2V0SGFzQ29tcG9uZW50UmVuZGVyZWQ/OiAoaGFzQ29tcG9uZW50UmVuZGVyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbn0+ID0gKHtcclxuICAgIHR5cGUsXHJcbiAgICBpdGVtcyxcclxuICAgIGNvbHVtbnMsXHJcbiAgICBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3BlbixcclxuICAgIGlzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVuLFxyXG4gICAgZ2V0Q29sdW1uU2l6aW5nT3B0aW9ucyxcclxuICAgIGFkZGl0aW9uYWxDYXJkUHJvcHMsXHJcbiAgICBzZXRIYXNDb21wb25lbnRSZW5kZXJlZCxcclxufSkgPT4ge1xyXG4gICAgY29uc3QgY2FyZFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcblxyXG4gICAgY29uc3QgW2tleSwgc2V0S2V5XSA9IHVzZVN0YXRlPG51bWJlcj4oMCk7XHJcbiAgICBjb25zdCBbY29sdW1uU2l6aW5nT3B0aW9ucywgc2V0Q29sdW1uU2l6aW5nT3B0aW9uc10gPSB1c2VTdGF0ZTxUYWJsZUNvbHVtblNpemluZ09wdGlvbnMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblxyXG4gICAgLy8gVGhpcyBlZmZlY3Qgd2lsbCBjYWxjdWxhdGUgdGhlIGlkZWFsIHdpZHRoIG9mIHRoZSBjb2x1bW5zXHJcbiAgICAvLyBUaGUgdXNlTGF5b3V0RWZmZWN0IGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSBiZWZvcmUgdGhlIGNvbXBvbmVudCBpcyByZW5kZXJlZFxyXG4gICAgLy8gYW5kIHRvIGVuc3VyZSB0aGF0IHRoZSBjYXJkIHJlZiBpcyBub3QgdW5kZWZpbmVkXHJcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIFVzZSB0aGUgY2FyZCByZWYgdG8gY2FsY3VsYXRlIHRoZSBpZGVhbCB3aWR0aCBvZiB0aGUgY29sdW1uc1xyXG4gICAgICAgIGNvbnN0IGNhcmRXaWR0aCA9IGNhcmRSZWYuY3VycmVudD8uY2xpZW50V2lkdGg7XHJcblxyXG4gICAgICAgIGlmICghY2FyZFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldENvbHVtblNpemluZ09wdGlvbnMoZ2V0Q29sdW1uU2l6aW5nT3B0aW9ucyhjYXJkV2lkdGgpKTtcclxuXHJcbiAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBrZXkgdG8gZm9yY2UgdGhlIFByb2plY3RUYXNrVGFibGUgdG8gcmVyZW5kZXJcclxuICAgICAgICBzZXRIYXNDb21wb25lbnRSZW5kZXJlZD8uKHRydWUpO1xyXG4gICAgICAgIHNldEtleSgocHJldktleSkgPT4gcHJldktleSArIDEpO1xyXG4gICAgfSwgW2NhcmRSZWYuY3VycmVudF0pO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPENhcmQgcmVmPXtjYXJkUmVmfSBhcHBlYXJhbmNlPXt0eXBlID09PSBcImlubGluZVwiID8gXCJmaWxsZWRcIiA6IFwic3VidGxlXCJ9IHsuLi5hZGRpdGlvbmFsQ2FyZFByb3BzfT5cclxuICAgICAgICAgICAgPFByb2plY3RUYXNrVGFibGVcclxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHRoZSBtb2RhbCBuZWVkcyB0byByZXJlbmRlciB0aGUgZ3JpZCB3aGVuIHRoZSBjb2x1bW5TaXppbmdPcHRpb25zIGNoYW5nZVxyXG4gICAgICAgICAgICAgICAgLy8gaW4gb3JkZXIgdG8gcmVuZGVyIHRoZSBjb3JyZWN0IGNvbHVtbiB3aWR0aHNcclxuICAgICAgICAgICAgICAgIGtleT17dHlwZSA9PT0gXCJtb2RhbFwiID8ga2V5IDogdW5kZWZpbmVkfVxyXG4gICAgICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cclxuICAgICAgICAgICAgICAgIGNvbHVtblNpemluZ09wdGlvbnM9e2NvbHVtblNpemluZ09wdGlvbnN9XHJcbiAgICAgICAgICAgICAgICBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3Blbj17c2V0SXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW59XHJcbiAgICAgICAgICAgICAgICBpc1Byb2plY3RUYXNrR3JpZE1vZGFsT3Blbj17aXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW59XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9DYXJkPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHtcclxuICAgIEJ1dHRvbixcclxuICAgIGNyZWF0ZVRhYmxlQ29sdW1uLFxyXG4gICAgRGlhbG9nLFxyXG4gICAgRGlhbG9nQm9keSxcclxuICAgIERpYWxvZ1N1cmZhY2UsXHJcbiAgICBtYWtlU3R5bGVzLFxyXG4gICAgUGVyc29uYSxcclxuICAgIFBvc2l0aW9uaW5nSW1wZXJhdGl2ZVJlZixcclxuICAgIFNwaW5uZXIsXHJcbiAgICBUYWJsZUNlbGxMYXlvdXQsXHJcbiAgICBUYWJsZUNvbHVtbkRlZmluaXRpb24sXHJcbiAgICBUYWJsZUNvbHVtblNpemluZ09wdGlvbnMsXHJcbiAgICBUZXh0LFxyXG59IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBBcnJvd0ZvcndhcmREb3duUGVyc29uMjRSZWd1bGFyLCBDaGVja21hcmtDaXJjbGUyNFJlZ3VsYXIgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWljb25zXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVJlZiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgQ29tcGxldGVQcm9qZWN0VGFza01vZGFsIH0gZnJvbSBcIi4uLy4uLy4uL0NvbXBvbmVudHMvQ29tcGxldGVQcm9qZWN0VGFza01vZGFsXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrRGV0YWlsc01vZGFsIH0gZnJvbSBcIi4uLy4uLy4uL0NvbXBvbmVudHMvUHJvamVjdFRhc2tEZXRhaWxzTW9kYWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFRhc2tBc3NpZ25lZFRvIH0gZnJvbSBcIi4uLy4uLy4uL0VudW1zL1Byb2plY3RUYXNrQXNzaWduZWRUb1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza1N0YXR1c0NvZGUgfSBmcm9tIFwiLi4vLi4vLi4vRW51bXMvUHJvamVjdFRhc2tTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vLi4vLi4vTW9kZWxzL1Byb2plY3RcIjtcclxuaW1wb3J0IHsgUHJvamVjdFRhc2sgfSBmcm9tIFwiLi4vLi4vLi4vTW9kZWxzL1Byb2plY3RUYXNrXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrRm9yVXBkYXRlIH0gZnJvbSBcIi4uLy4uLy4uL01vZGVscy9Qcm9qZWN0VGFza0ZvclVwZGF0ZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza0dyaWQsIFRhYmxlQ29sdW1uTXVsdGlwbGllcnMgfSBmcm9tIFwiLi9Qcm9qZWN0VGFza0dyaWRcIjtcclxuaW1wb3J0IHsgZ2V0SW5kZW50YXRpb25BbW91bnQsIFRhYmxlQ29sdW1uSWQgfSBmcm9tIFwiLi9Qcm9qZWN0VGFza1RhYmxlXCI7XHJcbmltcG9ydCB7IEZpbmlzaFR5cGUsIE11bHRpU3RlcFRlYWNoaW5nQnViYmxlLCBUZWFjaGluZ0J1YmJsZSB9IGZyb20gXCIuLi8uLi8uLi9Db21wb25lbnRzL011bHRpU3RlcFRlYWNoaW5nQnViYmxlXCI7XHJcbmltcG9ydCB7IHVzZVdpbmRvd1dpZHRoIH0gZnJvbSBcIi4uLy4uLy4uL0hvb2tzL3VzZVdpbmRvd1dpZHRoXCI7XHJcblxyXG4vKiogUmVjdXJzaXZlIFJvdyB0eXBlICovXHJcbmV4cG9ydCB0eXBlIFJvdyA9IHtcclxuICAgIGtleTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgYXNzaWduZWRUbzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGFzc2lnbmVkVG9DdXN0b21lckNvbnRhY3RJZDogc3RyaW5nIHwgbnVsbDtcclxuICAgIHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7XHJcbiAgICBzdGF0dXM6IHN0cmluZyB8IG51bGw7XHJcbiAgICBjb3VudDogbnVtYmVyO1xyXG4gICAgY2hpbGRyZW4/OiBSb3dbXTtcclxuICAgIGxldmVsOiBudW1iZXI7XHJcbiAgICBuYW1lUmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICAgIGFzc2lnbmVkVG9SZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgYXNzaWduZWRCdXR0b25SZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gICAgY29tcGxldGVUYXNrQnV0dG9uUmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcclxufTtcclxuXHJcbi8vIFRoZSBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSBkaWFsb2dcclxuY29uc3QgZGlhbG9nV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIDEwMDtcclxuY29uc3QgZGlhbG9nSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gMTAwO1xyXG5cclxuLy8gVGhlIGtleSBmb3IgdGhlIHRlYWNoaW5nIGJ1YmJsZSBzdGFnZXNcclxuZXhwb3J0IGNvbnN0IFBST0pFQ1RfVEFTS1NfVEVBQ0hJTkdfQlVCQkxFX1NUQUdFUyA9IFwiQmlzdGVjaDpUZWFjaGluZ0J1YmJsZTpQcm9qZWN0LVRhc2stR3JpZC1Db21wbGV0ZWQtU3RhZ2VzXCI7XHJcblxyXG4vLyBUaGUgbmFtZXMgb2YgdGhlIHRlYWNoaW5nIHN0YWdlc1xyXG5jb25zdCBURUFDSElOR19TVEFHRV9OQU1FUyA9IFtcIlJldmlldyBhIFByb2plY3QgVGFza1wiLCBcIlRhc2sgQXNzaWduZWVcIiwgXCJBc3NpZ24gYSBUYXNrXCIsIFwiQ29tcGxldGUgYSBUYXNrXCJdIGFzIGNvbnN0O1xyXG5cclxuLyoqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBOYW1lJ3Mgb2YgdGhlIFRlYWNoaW5nIFN0YWdlICovXHJcbnR5cGUgVGVhY2hpbmdTdGFnZU5hbWUgPSAodHlwZW9mIFRFQUNISU5HX1NUQUdFX05BTUVTKVtudW1iZXJdO1xyXG5cclxuLyoqIFRoZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnQgKi9cclxuY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcyh7XHJcbiAgICB0YWJsZUNlbGxMYXlvdXQ6IHtcclxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcclxuXHJcbiAgICAgICAgLy8gTW9iaWxlXHJcbiAgICAgICAgXCJAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpXCI6IHtcclxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ0NvbnRhaW5lcjoge1xyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXHJcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICAgIGhlaWdodDogXCIzMGVtXCIsXHJcbiAgICB9LFxyXG4gICAgZGlhbG9nU3VyZmFjZToge1xyXG4gICAgICAgIC8vIFNldCB0aGUgd2lkdGggdG8gdGhlIGZ1bGwgc2NyZWVuIHdpZHRoXHJcbiAgICAgICAgd2lkdGg6IGAke2RpYWxvZ1dpZHRofXB4ICFpbXBvcnRhbnRgLFxyXG4gICAgICAgIG1heFdpZHRoOiBgJHtkaWFsb2dXaWR0aH1weCAhaW1wb3J0YW50YCxcclxuICAgICAgICBtaW5IZWlnaHQ6IFwiMTVlbVwiLFxyXG4gICAgICAgIG1heEhlaWdodDogYCR7ZGlhbG9nSGVpZ2h0fXB4ICFpbXBvcnRhbnRgLFxyXG4gICAgfSxcclxuICAgIGRpYWxvZ0JvZHk6IHtcclxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxyXG4gICAgICAgIGhlaWdodDogYCR7ZGlhbG9nSGVpZ2h0IC0gMTAwfXB4ICFpbXBvcnRhbnRgLFxyXG4gICAgICAgIHdpZHRoOiBcIjEwMCVcIixcclxuICAgIH0sXHJcbn0pO1xyXG5cclxuLyoqIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBFZGl0IFByb2plY3QgVGFza3MgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgUHJvamVjdHNFZGl0VGFza3MgPSAocHJvcHM6IHtcclxuICAgIHByb2plY3Q6IFByb2plY3Q7XHJcbiAgICBwcm9qZWN0VGFza3M6IFByb2plY3RUYXNrW107XHJcbiAgICBvblN1Ym1pdDogKHByb2plY3RUYXNrOiBQcm9qZWN0VGFza0ZvclVwZGF0ZSkgPT4gdm9pZDtcclxuICAgIG9uQ29tcGxldGU6IChwcm9qZWN0VGFzazogUHJvamVjdFRhc2ssIGNvbW1lbnQ6IHN0cmluZykgPT4gdm9pZDtcclxufSkgPT4ge1xyXG4gICAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XHJcblxyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuICAgIGNvbnN0IFtwcm9qZWN0VGFza0RldGFpbHNJc1Nob3duLCBzZXRQcm9qZWN0VGFza0RldGFpbHNJc1Nob3duXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtjb21wbGV0ZVByb2plY3RUYXNrSXNTaG93biwgc2V0Q29tcGxldGVQcm9qZWN0VGFza0lzU2hvd25dID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgW3Byb2plY3RUYXNrVG9TaG93LCBzZXRQcm9qZWN0VGFza1RvU2hvd10gPSB1c2VTdGF0ZTxQcm9qZWN0VGFzayB8IG51bGw+KG51bGwpO1xyXG4gICAgY29uc3QgW2lzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVuLCBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbZ3JpZENvbXBvbmVudEhhc1JlbmRlcmVkLCBzZXRHcmlkQ29tcG9uZW50SGFzUmVuZGVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgW3RlYWNoaW5nQnViYmxlSXNFbmFibGVkLCBzZXRUZWFjaGluZ0J1YmJsZUlzRW5hYmxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgbG9hZGVkQ29udGFjdHMgPSBjb250YWN0cy5sb2FkaW5nU3RhdHVzICE9PSBcImxvYWRlZFwiID8gW10gOiBjb250YWN0cy5kYXRhO1xyXG5cclxuICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gdXNlV2luZG93V2lkdGgoKTtcclxuXHJcbiAgICBjb25zdCBub3ROYXRpdmVTY3JlZW5TaXplID0gd2luZG93V2lkdGggPCAxMDI0O1xyXG5cclxuICAgIGNvbnN0IGNvbXBsZXRlZFRlYWNoaW5nQnViYmxlU3RhZ2VzOiBUZWFjaGluZ1N0YWdlTmFtZVtdID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUk9KRUNUX1RBU0tTX1RFQUNISU5HX0JVQkJMRV9TVEFHRVMpIHx8IFwiW11cIlxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBEaXNhYmxlIHRoZSBQcm9qZWN0IFRhc2sgVGVhY2hpbmcgQnViYmxlcyB3aGVuIHRoZSBQcm9qZWN0IFRhc2sgRGV0YWlscyBkaWFsb2cgKGUuZy4gJ0Fzc2lnbicpIGlzIHNob3duLlxyXG4gICAgLy8gRW5hYmxpbmcgdGhlIFRlYWNoaW5nIEJ1YmJsZXMgYXQgdGhlIHNhbWUgdGltZSBhcyBzaG93aW5nIHRoZSBkaWFsb2cgY2F1c2VzIGEgZ2xpdGNoaW5nIGVycm9yIGZvciB0aGUgJ0Fzc2lnbiBUbydcclxuICAgIC8vIGxvb2t1cCBmaWVsZCAoc2VlICMzOTc2MykuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldFRlYWNoaW5nQnViYmxlSXNFbmFibGVkKCFwcm9qZWN0VGFza0RldGFpbHNJc1Nob3duKTtcclxuICAgIH0sIFtwcm9qZWN0VGFza0RldGFpbHNJc1Nob3duXSk7XHJcblxyXG4gICAgLy8gVGVhY2hpbmcgYnViYmxlIHJlZmVyZW5jZXNcclxuICAgIGNvbnN0IHRlYWNoaW5nQnViYmxlUmVmID0gdXNlUmVmPFBvc2l0aW9uaW5nSW1wZXJhdGl2ZVJlZj4obnVsbCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBjcmVhdGUgcmVmcyBmb3IgZWFjaCB0YXNrXHJcbiAgICAgKiBAcGFyYW0gdGFza3MgVGhlIHRhc2tzIHRvIGNyZWF0ZSByZWZzIGZvclxyXG4gICAgICogQHJldHVybnMgVGhlIHJlZnMgZm9yIGVhY2ggdGFza1xyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBjcmVhdGVSZWZzKHRhc2tzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRhc2tzLm1hcCgodGFzaykgPT4gKHsgcmVmOiBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCksIGtleTogdGFzay5tc2R5bl9wcm9qZWN0dGFza2lkIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDcmVhdGUgcmVmcyBmb3IgZWFjaCByb3cgLSBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgeW91IGNhbm5vdCBjb25kaXRpb25hbGx5IHNldCB0aGUgcmVmIG9uIGEgY29tcG9uZW50XHJcbiAgICAvLyBUaGUgcmVmIG11c3QgYmUgc2V0IG9uIHRoZSBjb21wb25lbnQgd2hlbiBpdCBpcyBjcmVhdGVkLCB3ZSBjYW4gdXNlIHRoZSBJRCBvZiB0aGUgdGFzayB0byBlbnN1cmUgd2UgdXNlIHRoZSBjb3JyZWN0IHJlZlxyXG4gICAgY29uc3QgbGluZVJlZnMgPSB1c2VNZW1vKCgpID0+IGNyZWF0ZVJlZnMocHJvcHMucHJvamVjdFRhc2tzKSwgW3Byb3BzLnByb2plY3RUYXNrcy5sZW5ndGhdKTtcclxuICAgIGNvbnN0IGFzc2lnbmVkVG9SZWZzID0gdXNlTWVtbygoKSA9PiBjcmVhdGVSZWZzKHByb3BzLnByb2plY3RUYXNrcyksIFtwcm9wcy5wcm9qZWN0VGFza3MubGVuZ3RoXSk7XHJcblxyXG4gICAgY29uc3QgYXNzaWduZWRCdXR0b25SZWZzID0gdXNlTWVtbyhcclxuICAgICAgICAoKSA9PlxyXG4gICAgICAgICAgICBjcmVhdGVSZWZzKHByb3BzLnByb2plY3RUYXNrcy5maWx0ZXIoKHRhc2spID0+IHRhc2suYmlzdGVjaF9hc3NpZ25lZHRvID09PSBQcm9qZWN0VGFza0Fzc2lnbmVkVG8uQ3VzdG9tZXIpKSxcclxuICAgICAgICBbcHJvcHMucHJvamVjdFRhc2tzLmxlbmd0aF1cclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY29tcGxldGVUYXNrQnV0dG9uUmVmcyA9IHVzZU1lbW8oXHJcbiAgICAgICAgKCkgPT5cclxuICAgICAgICAgICAgY3JlYXRlUmVmcyhwcm9wcy5wcm9qZWN0VGFza3MuZmlsdGVyKCh0YXNrKSA9PiB0YXNrLmJpc3RlY2hfYXNzaWduZWR0byA9PT0gUHJvamVjdFRhc2tBc3NpZ25lZFRvLkN1c3RvbWVyKSksXHJcbiAgICAgICAgW3Byb3BzLnByb2plY3RUYXNrcy5sZW5ndGhdXHJcbiAgICApO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIHRoZSBjdXN0b21lciBhY3Rpb25zIHNob3VsZCBiZSBzaG93blxyXG4gICAgICogQHBhcmFtIHJvdyBUaGUgcm93IHRvIGNoZWNrXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjdXN0b21lciBhY3Rpb25zIHNob3VsZCBiZSBzaG93blxyXG4gICAgICovXHJcbiAgICBjb25zdCBpc0N1c3RvbWVyQWN0aW9uc1Nob3duID0gKHJvdzogUm93KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNUYXNrSW5hY3RpdmVPckNvbXBsZXRlZCA9XHJcbiAgICAgICAgICAgIHJvdy5zdGF0dXMgJiZcclxuICAgICAgICAgICAgKFByb2plY3RUYXNrU3RhdHVzQ29kZVtyb3cuc3RhdHVzXSA9PT0gUHJvamVjdFRhc2tTdGF0dXNDb2RlLkluYWN0aXZlIHx8XHJcbiAgICAgICAgICAgICAgICBQcm9qZWN0VGFza1N0YXR1c0NvZGVbcm93LnN0YXR1c10gPT09IFByb2plY3RUYXNrU3RhdHVzQ29kZS5Db21wbGV0ZWQpO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdGFzayBpcyBhc3NpZ25lZCB0byB0aGUgY3VzdG9tZXIgYW5kIGlzIG5vdCBpbmFjdGl2ZSBvciBjb21wbGV0ZWRcclxuICAgICAgICAvLyBXZSB3aWxsIHNob3cgdGhlIGJ1dHRvbiB0byBlZGl0IHRoZSB0YXNrXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgcm93LmFzc2lnbmVkVG8gJiZcclxuICAgICAgICAgICAgUHJvamVjdFRhc2tBc3NpZ25lZFRvW3Jvdy5hc3NpZ25lZFRvXSA9PT0gUHJvamVjdFRhc2tBc3NpZ25lZFRvLkN1c3RvbWVyICYmXHJcbiAgICAgICAgICAgICFpc1Rhc2tJbmFjdGl2ZU9yQ29tcGxldGVkXHJcbiAgICAgICAgKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY29sdW1ucyBmb3IgdGhlIFRhYmxlLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBjb2x1bW5zOiBUYWJsZUNvbHVtbkRlZmluaXRpb248Um93PltdID0gW1xyXG4gICAgICAgIGNyZWF0ZVRhYmxlQ29sdW1uPFJvdz4oe1xyXG4gICAgICAgICAgICBjb2x1bW5JZDogXCJuYW1lXCIgc2F0aXNmaWVzIFRhYmxlQ29sdW1uSWQsXHJcbiAgICAgICAgICAgIHJlbmRlckhlYWRlckNlbGw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dCB3ZWlnaHQ9XCJzZW1pYm9sZFwiPk5hbWU8L1RleHQ+O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxMYXlvdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtyb3cubmFtZVJlZn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e3Jvdy5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMTFwdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogbm90TmF0aXZlU2NyZWVuU2l6ZSA/IDAgOiBnZXRJbmRlbnRhdGlvbkFtb3VudChyb3cubGV2ZWwgKyAxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogXCIyZW1cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1bmNhdGVcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtyb3cubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbExheW91dD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcImFzc2lnbmVkVG9cIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+QXNzaWduZWQgVG88L1RleHQ+O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJvdy5hc3NpZ25lZFRvKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDw+PC8+O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGFzc2lnbmVkQ3VzdG9tZXJDb250YWN0ID0gbG9hZGVkQ29udGFjdHMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAoY29udGFjdCkgPT4gY29udGFjdC5jb250YWN0aWQgPT09IHJvdy5hc3NpZ25lZFRvQ3VzdG9tZXJDb250YWN0SWRcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdEZ1bGxOYW1lID0gYXNzaWduZWRDdXN0b21lckNvbnRhY3RcclxuICAgICAgICAgICAgICAgICAgICA/IGFzc2lnbmVkQ3VzdG9tZXJDb250YWN0LmZ1bGxuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgOiBwcm9wcy5wcm9qZWN0W1wiX21zZHluX2N1c3RvbWVyX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCJdID8/IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvamVjdFRhc2tBc3NpZ25lZFRvW3Jvdy5hc3NpZ25lZFRvXSA9PT0gUHJvamVjdFRhc2tBc3NpZ25lZFRvLkJpc3RlY2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyByb3cuYXNzaWduZWRUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRhY3RGdWxsTmFtZTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxMYXlvdXQgdHJ1bmNhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZXJzb25hXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3Jvdy5hc3NpZ25lZFRvUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWdubWVudD1cImNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bcm93LmFzc2lnbmVkVG9dID09PSBQcm9qZWN0VGFza0Fzc2lnbmVkVG8uQmlzdGVjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogXCIvYmlzdGVjaC1sb2dvLXByb2plY3QtdGFzay5wbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBjb2xvcjogXCJjb2xvcmZ1bFwiIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbExheW91dD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcInN0YXJ0RGF0ZVwiIHNhdGlzZmllcyBUYWJsZUNvbHVtbklkLFxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXJDZWxsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHQgd2VpZ2h0PVwic2VtaWJvbGRcIj5TdGFydCBEYXRlPC9UZXh0PjtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVuZGVyQ2VsbDogKHJvdykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyb3cuc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDw+PC8+O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbExheW91dCB0cnVuY2F0ZSBjbGFzc05hbWU9e3N0eWxlcy50YWJsZUNlbGxMYXlvdXR9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7RGF0ZUhlbHBlci50b0RhdGVPbmx5U3RyaW5nKHJvdy5zdGFydERhdGUpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsTGF5b3V0PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICBjcmVhdGVUYWJsZUNvbHVtbjxSb3c+KHtcclxuICAgICAgICAgICAgY29sdW1uSWQ6IFwic3RhdHVzXCIgc2F0aXNmaWVzIFRhYmxlQ29sdW1uSWQsXHJcbiAgICAgICAgICAgIHJlbmRlckhlYWRlckNlbGw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dCB3ZWlnaHQ9XCJzZW1pYm9sZFwiPlN0YXR1czwvVGV4dD47XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlbmRlckNlbGw6IChyb3cpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbExheW91dCB0cnVuY2F0ZSBjbGFzc05hbWU9e3N0eWxlcy50YWJsZUNlbGxMYXlvdXR9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cm93LnN0YXR1cyB8fCBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsTGF5b3V0PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICBjcmVhdGVUYWJsZUNvbHVtbjxSb3c+KHtcclxuICAgICAgICAgICAgY29sdW1uSWQ6IFwiYWN0aW9uc1wiIHNhdGlzZmllcyBUYWJsZUNvbHVtbklkLFxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXJDZWxsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHQgd2VpZ2h0PVwic2VtaWJvbGRcIj5BY3Rpb25zPC9UZXh0PjtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVuZGVyQ2VsbDogKHJvdykgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHRhc2sgaXMgYXNzaWduZWQgdG8gdGhlIGN1c3RvbWVyIGFuZCBpcyBub3QgaW5hY3RpdmUgb3IgY29tcGxldGVkXHJcbiAgICAgICAgICAgICAgICAvLyBXZSB3aWxsIHNob3cgdGhlIGJ1dHRvbiB0byBlZGl0IHRoZSB0YXNrXHJcbiAgICAgICAgICAgICAgICBpZiAoaXNDdXN0b21lckFjdGlvbnNTaG93bihyb3cpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbExheW91dCBjbGFzc05hbWU9e3N0eWxlcy50YWJsZUNlbGxMYXlvdXR9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwgZmxleERpcmVjdGlvbjogXCJyb3dcIiwgZ2FwOiBcIjhweFwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtyb3cuYXNzaWduZWRCdXR0b25SZWZ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBc3NpZ25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkFzc2lnblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxBcnJvd0ZvcndhcmREb3duUGVyc29uMjRSZWd1bGFyIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0VGFza0RldGFpbHNJc1Nob3duKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UHJvamVjdFRhc2tUb1Nob3coXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucHJvamVjdFRhc2tzLmZpbmQoKHRhc2spID0+IHRhc2subXNkeW5fcHJvamVjdHRhc2tpZCA9PT0gcm93LmtleSkgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtyb3cuY29tcGxldGVUYXNrQnV0dG9uUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ29tcGxldGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkNvbXBsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PENoZWNrbWFya0NpcmNsZTI0UmVndWxhciAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29tcGxldGVQcm9qZWN0VGFza0lzU2hvd24odHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0VGFza1RvU2hvdyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5wcm9qZWN0VGFza3MuZmluZCgodGFzaykgPT4gdGFzay5tc2R5bl9wcm9qZWN0dGFza2lkID09PSByb3cua2V5KSA/P1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9UYWJsZUNlbGxMYXlvdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBFbHNlOyB0aGVyZSBhcmUgbm8gYWN0aW9ucyB0byBzaG93XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRvIHJlY3Vyc2l2ZWx5IG1hcCB0YXNrcyBpbnRvIFJvdyBzdHJ1Y3R1cmUgd2l0aCBjaGlsZHJlblxyXG4gICAgICogQHBhcmFtIHRhc2sgVGhlIHRhc2sgdG8gbWFwXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IG1hcFRhc2tUb1JvdyA9ICh0YXNrOiBQcm9qZWN0VGFzayk6IFJvdyA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hpbGRyZW5UYXNrcyA9IHByb3BzLnByb2plY3RUYXNrcy5maWx0ZXIoKHQpID0+IHQuX21zZHluX3BhcmVudHRhc2tfdmFsdWUgPT09IHRhc2subXNkeW5fcHJvamVjdHRhc2tpZCk7XHJcblxyXG4gICAgICAgIC8vIEZpbmQgdGhlIGluZGV4IG9mIHRoZSB0YXNrIGluIHRoZSBwcm9qZWN0IHRhc2tzIGFycmF5XHJcbiAgICAgICAgY29uc3QgbmFtZVJlZiA9IGxpbmVSZWZzLmZpbmQoKHJlZikgPT4gcmVmLmtleSA9PT0gdGFzay5tc2R5bl9wcm9qZWN0dGFza2lkKTtcclxuICAgICAgICBjb25zdCBhc3NpZ25lZFRvUmVmID0gYXNzaWduZWRUb1JlZnMuZmluZCgocmVmKSA9PiByZWYua2V5ID09PSB0YXNrLm1zZHluX3Byb2plY3R0YXNraWQpO1xyXG4gICAgICAgIGNvbnN0IGFzc2lnbmVkQnV0dG9uUmVmID0gYXNzaWduZWRCdXR0b25SZWZzLmZpbmQoKHJlZikgPT4gcmVmLmtleSA9PT0gdGFzay5tc2R5bl9wcm9qZWN0dGFza2lkKTtcclxuICAgICAgICBjb25zdCBjb21wbGV0ZVRhc2tCdXR0b25SZWYgPSBjb21wbGV0ZVRhc2tCdXR0b25SZWZzLmZpbmQoKHJlZikgPT4gcmVmLmtleSA9PT0gdGFzay5tc2R5bl9wcm9qZWN0dGFza2lkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAga2V5OiB0YXNrLm1zZHluX3Byb2plY3R0YXNraWQsXHJcbiAgICAgICAgICAgIG5hbWU6IHRhc2subXNkeW5fc3ViamVjdCxcclxuICAgICAgICAgICAgYXNzaWduZWRUbzogdGFzay5iaXN0ZWNoX2Fzc2lnbmVkdG8gPyBQcm9qZWN0VGFza0Fzc2lnbmVkVG9bdGFzay5iaXN0ZWNoX2Fzc2lnbmVkdG9dIDogbnVsbCxcclxuICAgICAgICAgICAgYXNzaWduZWRUb0N1c3RvbWVyQ29udGFjdElkOiB0YXNrLl9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlLFxyXG4gICAgICAgICAgICBzdGFydERhdGU6IHRhc2subXNkeW5fc2NoZWR1bGVkc3RhcnQsXHJcbiAgICAgICAgICAgIHN0YXR1czogdGFzay5zdGF0dXNjb2RlID8gUHJvamVjdFRhc2tTdGF0dXNDb2RlW3Rhc2suc3RhdHVzY29kZV0gOiBudWxsLFxyXG4gICAgICAgICAgICBjb3VudDogY2hpbGRyZW5UYXNrcy5sZW5ndGgsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblRhc2tzLm1hcCgoY2hpbGRUYXNrKSA9PiBtYXBUYXNrVG9Sb3coY2hpbGRUYXNrKSksXHJcbiAgICAgICAgICAgIGxldmVsOiB0YXNrLm1zZHluX291dGxpbmVsZXZlbCxcclxuICAgICAgICAgICAgbmFtZVJlZjogbmFtZVJlZj8ucmVmLFxyXG4gICAgICAgICAgICBhc3NpZ25lZFRvUmVmOiBhc3NpZ25lZFRvUmVmPy5yZWYsXHJcbiAgICAgICAgICAgIGFzc2lnbmVkQnV0dG9uUmVmOiBhc3NpZ25lZEJ1dHRvblJlZj8ucmVmLFxyXG4gICAgICAgICAgICBjb21wbGV0ZVRhc2tCdXR0b25SZWY6IGNvbXBsZXRlVGFza0J1dHRvblJlZj8ucmVmLFxyXG4gICAgICAgIH07XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gZmxhdHRlbiB0aGUgaXRlbXMgaW50byBhIHNpbmdsZSBhcnJheSAtIHRoaXMgY2F0ZXJzIGZvciBhIHJlY3Vyc2l2ZSBzdHJ1Y3R1cmUgb2YgY2hpbGRyZW5cclxuICAgICAqIEBwYXJhbSBpdGVtcyBUaGUgaXRlbXMgdG8gZmxhdHRlblxyXG4gICAgICogQHJldHVybnMgVGhlIGZsYXR0ZW5lZCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBjb25zdCBmbGF0dGVuSXRlbXMgPSAoaXRlbXM6IFJvd1tdKTogUm93W10gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtcy5mbGF0TWFwKChpdGVtKSA9PiBbaXRlbSwgLi4uZmxhdHRlbkl0ZW1zKGl0ZW0uY2hpbGRyZW4gPz8gW10pXSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIE1hcCB0YXNrcyB0byBSb3dzXHJcbiAgICAvLyBXZSBtdXN0IHJldHJpZXZlIGFueSB3aGljaCBhcmUgYmVsb3cgbGV2ZWwgMSBhcyB0aGlzIHdpbGwgYWNjb3VudCBmb3IgUHJvamVjdCBUYXNrcyBhcyB3ZWxsIGFzIHRoZSBSZXNvdXJjZSBSZXF1aXJlbWVudHNcclxuICAgIGNvbnN0IGl0ZW1zID0gcHJvcHMucHJvamVjdFRhc2tzLm1hcCgodGFzaykgPT4gbWFwVGFza1RvUm93KHRhc2spKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubGV2ZWwgPD0gMSk7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSB0ZWFjaGluZyBidWJibGVzIHRvIHNob3cgYW5kIHRoZWlyIHBvc2l0aW9uc1xyXG4gICAgY29uc3QgdGVhY2hpbmdCdWJibGVzOiBUZWFjaGluZ0J1YmJsZVtdID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgYWxsIHRlYWNoaW5nIGJ1YmJsZXMgaGF2ZSBiZWVuIGNvbXBsZXRlZCwgcmV0dXJuIGFuIGVtcHR5IGFycmF5XHJcbiAgICAgICAgaWYgKGNvbXBsZXRlZFRlYWNoaW5nQnViYmxlU3RhZ2VzLmxlbmd0aCA9PT0gVEVBQ0hJTkdfU1RBR0VfTkFNRVMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZsYXR0ZW5lZEl0ZW1zID0gZmxhdHRlbkl0ZW1zKGl0ZW1zKTtcclxuXHJcbiAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgdGFzayB3aXRoIGEgbGV2ZWwgZ3JlYXRlciB0aGFuIDFcclxuICAgICAgICBjb25zdCBmaXJzdENoaWxkVGFzayA9IGZsYXR0ZW5lZEl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubGV2ZWwgPiAxKTtcclxuXHJcbiAgICAgICAgaWYgKCFmaXJzdENoaWxkVGFzaykge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBGaW5kIHJlZnMgZm9yIHRoZSBmaXJzdCB0YXNrJ3MgbmFtZSBhbmQgYXNzaWduZWUgZmllbGRzXHJcbiAgICAgICAgY29uc3QgbmFtZVJlZiA9IGxpbmVSZWZzLmZpbmQoKHJlZikgPT4gcmVmLmtleSA9PT0gZmlyc3RDaGlsZFRhc2sua2V5KTtcclxuICAgICAgICBjb25zdCBhc3NpZ25lZFRvUmVmID0gYXNzaWduZWRUb1JlZnMuZmluZCgocmVmKSA9PiByZWYua2V5ID09PSBmaXJzdENoaWxkVGFzay5rZXkpO1xyXG5cclxuICAgICAgICBjb25zdCBkZWZhdWx0VGVhY2hpbmdCdWJibGVzID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZWZFbGVtZW50OiBuYW1lUmVmPy5yZWYuY3VycmVudCA/PyBudWxsLFxyXG4gICAgICAgICAgICAgICAgaGVhZGxpbmU6IFwiUmV2aWV3IGEgUHJvamVjdCBUYXNrXCIgc2F0aXNmaWVzIFRlYWNoaW5nU3RhZ2VOYW1lLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJFYWNoIHJvdyBpbiB0aGlzIGdyaWQgZGlzcGxheXMgYSB0YXNrIHRoYXQgd2lsbCBiZSBjYXJyaWVkIG91dCBhcyBwYXJ0IG9mIHlvdXIgcHJvamVjdFwiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZWZFbGVtZW50OiBhc3NpZ25lZFRvUmVmPy5yZWYuY3VycmVudCA/PyBudWxsLFxyXG4gICAgICAgICAgICAgICAgaGVhZGxpbmU6IFwiVGFzayBBc3NpZ25lZVwiIHNhdGlzZmllcyBUZWFjaGluZ1N0YWdlTmFtZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiVmlldyB3aG8gaXMgY3VycmVudGx5IGFzc2lnbmVkIHRvIGNvbXBsZXRlIGVhY2ggdGFza1wiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRCdWJibGVzSGF2ZUJlZW5TaG93biA9IGRlZmF1bHRUZWFjaGluZ0J1YmJsZXMuZXZlcnkoKGJ1YmJsZSkgPT5cclxuICAgICAgICAgICAgY29tcGxldGVkVGVhY2hpbmdCdWJibGVTdGFnZXMuaW5jbHVkZXMoYnViYmxlLmhlYWRsaW5lIGFzICh0eXBlb2YgVEVBQ0hJTkdfU1RBR0VfTkFNRVMpW251bWJlcl0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIGRlZmF1bHQgYnViYmxlcyBoYXZlIGJlZW4gc2hvd24gYW5kIHRoZXJlJ3Mgbm8gY3VzdG9tZXIgdGFzaywgcmV0dXJuIGFuIGVtcHR5IGFycmF5XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBkZWZhdWx0QnViYmxlc0hhdmVCZWVuU2hvd24gJiZcclxuICAgICAgICAgICAgIWZsYXR0ZW5lZEl0ZW1zLnNvbWUoKGl0ZW0pID0+IGlzQ3VzdG9tZXJBY3Rpb25zU2hvd24oaXRlbSkgJiYgaXRlbS5sZXZlbCA+IDEpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGN1c3RvbWVyIHRhc2sgdGhhdCBzaG93cyBhY3Rpb25zXHJcbiAgICAgICAgY29uc3QgZmlyc3RDdXN0b21lclRhc2sgPSBmbGF0dGVuZWRJdGVtcy5maW5kKChpdGVtKSA9PiBpc0N1c3RvbWVyQWN0aW9uc1Nob3duKGl0ZW0pICYmIGl0ZW0ubGV2ZWwgPiAxKTtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gY3VzdG9tZXIgdGFzaywgcmV0dXJuIHRoZSBkZWZhdWx0IHRlYWNoaW5nIGJ1YmJsZXNcclxuICAgICAgICBpZiAoIWZpcnN0Q3VzdG9tZXJUYXNrKSB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBkZWZhdWx0IHRlYWNoaW5nIGJ1YmJsZXMgaGF2ZSBhbHJlYWR5IGJlZW4gc2hvd24sIGRvIG5vdCBzaG93IHRoZW1cclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRCdWJibGVzSGF2ZUJlZW5TaG93biA/IFtdIDogZGVmYXVsdFRlYWNoaW5nQnViYmxlcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEZpbmQgcmVmcyBmb3IgdGhlIGFzc2lnbiBhbmQgY29tcGxldGUgYnV0dG9uc1xyXG4gICAgICAgIGNvbnN0IGFzc2lnbkJ1dHRvblJlZiA9IGFzc2lnbmVkQnV0dG9uUmVmcy5maW5kKChyZWYpID0+IHJlZi5rZXkgPT09IGZpcnN0Q3VzdG9tZXJUYXNrLmtleSk7XHJcbiAgICAgICAgY29uc3QgY29tcGxldGVUYXNrUmVmID0gY29tcGxldGVUYXNrQnV0dG9uUmVmcy5maW5kKChyZWYpID0+IHJlZi5rZXkgPT09IGZpcnN0Q3VzdG9tZXJUYXNrLmtleSk7XHJcblxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIC4uLihkZWZhdWx0QnViYmxlc0hhdmVCZWVuU2hvd24gPyBbXSA6IGRlZmF1bHRUZWFjaGluZ0J1YmJsZXMpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZWZFbGVtZW50OiBhc3NpZ25CdXR0b25SZWY/LnJlZi5jdXJyZW50ID8/IG51bGwsXHJcbiAgICAgICAgICAgICAgICBoZWFkbGluZTogXCJBc3NpZ24gYSBUYXNrXCIgc2F0aXNmaWVzIFRlYWNoaW5nU3RhZ2VOYW1lLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDpcclxuICAgICAgICAgICAgICAgICAgICBcIkFzc2lnbiBhIHRhc2sgdG8gb25lIG9mIHlvdXIgcG9ydGFsIGNvbnRhY3RzIOKAkyB0byBhZGQgYSBjb250YWN0IHBsZWFzZSBzcGVhayB0byB5b3VyIFByb2plY3QgTWFuYWdlclwiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZWZFbGVtZW50OiBjb21wbGV0ZVRhc2tSZWY/LnJlZi5jdXJyZW50ID8/IG51bGwsXHJcbiAgICAgICAgICAgICAgICBoZWFkbGluZTogXCJDb21wbGV0ZSBhIFRhc2tcIiBzYXRpc2ZpZXMgVGVhY2hpbmdTdGFnZU5hbWUsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIk1hcmsgYSB0YXNrIGFzc2lnbmVkIHRvIHlvdSBvciB5b3VyIHRlYW0gYXMgY29tcGxldGVkXCIsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH0sIFtpdGVtcywgbGluZVJlZnMsIGFzc2lnbmVkVG9SZWZzLCBhc3NpZ25lZEJ1dHRvblJlZnMsIGNvbXBsZXRlVGFza0J1dHRvblJlZnMsIGNvbXBsZXRlZFRlYWNoaW5nQnViYmxlU3RhZ2VzXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBnZXQgdGhlIGNvbHVtbiBzaXppbmcgb3B0aW9ucyBmb3IgdGhlIGlubGluZSBncmlkXHJcbiAgICAgKiBAcGFyYW0gY2FyZFdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgY2FyZFxyXG4gICAgICogQHJldHVybnMgVGhlIGNvbHVtbiBzaXppbmcgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBjb25zdCBnZXRJbmxpbmVDb2x1bW5TaXppbmdPcHRpb25zID0gKGNhcmRXaWR0aDogbnVtYmVyKTogVGFibGVDb2x1bW5TaXppbmdPcHRpb25zID0+ICh7XHJcbiAgICAgICAgLy8gVGhpcyBjb2x1bW4gc2hvdWxkIHRha2UgYWxsIHJlbWFpbmluZyBzcGFjZVxyXG4gICAgICAgIG5hbWU6IHtcclxuICAgICAgICAgICAgaWRlYWxXaWR0aDogY2FyZFdpZHRoICogVGFibGVDb2x1bW5NdWx0aXBsaWVycy5uYW1lLFxyXG4gICAgICAgICAgICBhdXRvRml0Q29sdW1uczogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIFRoZSByZW1haW5pbmcgY29sdW1ucyBzaG91bGQgYmUgZml4ZWQgc2l6ZVxyXG4gICAgICAgIGFzc2lnbmVkVG86IHtcclxuICAgICAgICAgICAgaWRlYWxXaWR0aDogY2FyZFdpZHRoICogVGFibGVDb2x1bW5NdWx0aXBsaWVycy5hc3NpZ25lZFRvLFxyXG4gICAgICAgICAgICBhdXRvRml0Q29sdW1uczogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdGFydERhdGU6IHtcclxuICAgICAgICAgICAgaWRlYWxXaWR0aDogY2FyZFdpZHRoICogVGFibGVDb2x1bW5NdWx0aXBsaWVycy5zdGFydERhdGUsXHJcbiAgICAgICAgICAgIGF1dG9GaXRDb2x1bW5zOiBmYWxzZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN0YXR1czoge1xyXG4gICAgICAgICAgICBpZGVhbFdpZHRoOiBjYXJkV2lkdGggKiBUYWJsZUNvbHVtbk11bHRpcGxpZXJzLnN0YXR1cyxcclxuICAgICAgICAgICAgYXV0b0ZpdENvbHVtbnM6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYWN0aW9uczoge1xyXG4gICAgICAgICAgICBpZGVhbFdpZHRoOiBjYXJkV2lkdGggKiBUYWJsZUNvbHVtbk11bHRpcGxpZXJzLmFjdGlvbnMsXHJcbiAgICAgICAgICAgIGF1dG9GaXRDb2x1bW5zOiBmYWxzZSxcclxuICAgICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBnZXQgdGhlIGNvbHVtbiBzaXppbmcgb3B0aW9ucyBmb3IgdGhlIG1vZGFsXHJcbiAgICAgKiBAcGFyYW0gY2FyZFdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgY2FyZFxyXG4gICAgICogQHJldHVybnMgVGhlIGNvbHVtbiBzaXppbmcgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBjb25zdCBnZXRNb2RhbENvbHVtblNpemluZ09wdGlvbnMgPSAoY2FyZFdpZHRoOiBudW1iZXIpOiBUYWJsZUNvbHVtblNpemluZ09wdGlvbnMgPT4gKHtcclxuICAgICAgICAvLyBUaGlzIGNvbHVtbiBzaG91bGQgdGFrZSBhbGwgcmVtYWluaW5nIHNwYWNlXHJcbiAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICBtaW5XaWR0aDogY2FyZFdpZHRoICogVGFibGVDb2x1bW5NdWx0aXBsaWVycy5uYW1lLFxyXG4gICAgICAgICAgICBhdXRvRml0Q29sdW1uczogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIFRoZSByZW1haW5pbmcgY29sdW1ucyBzaG91bGQgYmUgZml4ZWQgc2l6ZVxyXG4gICAgICAgIGFzc2lnbmVkVG86IHtcclxuICAgICAgICAgICAgbWluV2lkdGg6IGNhcmRXaWR0aCAqIFRhYmxlQ29sdW1uTXVsdGlwbGllcnMuYXNzaWduZWRUbyxcclxuICAgICAgICAgICAgYXV0b0ZpdENvbHVtbnM6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3RhcnREYXRlOiB7XHJcbiAgICAgICAgICAgIG1pbldpZHRoOiBjYXJkV2lkdGggKiBUYWJsZUNvbHVtbk11bHRpcGxpZXJzLnN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgYXV0b0ZpdENvbHVtbnM6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3RhdHVzOiB7XHJcbiAgICAgICAgICAgIGlkZWFsV2lkdGg6IGNhcmRXaWR0aCAqIFRhYmxlQ29sdW1uTXVsdGlwbGllcnMuc3RhdHVzLFxyXG4gICAgICAgICAgICBhdXRvRml0Q29sdW1uczogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBhY3Rpb25zOiB7XHJcbiAgICAgICAgICAgIGlkZWFsV2lkdGg6IGNhcmRXaWR0aCAqIFRhYmxlQ29sdW1uTXVsdGlwbGllcnMuYWN0aW9ucyxcclxuICAgICAgICAgICAgYXV0b0ZpdENvbHVtbnM6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBPbmx5IHNldCB0aGUgdGVhY2hpbmcgYnViYmxlIHRvIHNob3cgd2hlbiB0aGUgZ3JpZCBjb21wb25lbnQgaGFzIGxvYWRlZFxyXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoIWdyaWRDb21wb25lbnRIYXNSZW5kZXJlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUZWFjaGluZ0J1YmJsZUlzRW5hYmxlZCh0cnVlKTtcclxuICAgIH0sIFtncmlkQ29tcG9uZW50SGFzUmVuZGVyZWRdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlcyB0aGUgdGVhY2hpbmcgYnViYmxlLlxyXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIHRlYWNoaW5nIGJ1YmJsZSBjbG9zZSBldmVudC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgY2xvc2VUZWFjaGluZ0J1YmJsZSA9ICh0eXBlOiBGaW5pc2hUeXBlKSA9PiB7XHJcbiAgICAgICAgc2V0VGVhY2hpbmdCdWJibGVJc0VuYWJsZWQoZmFsc2UpO1xyXG5cclxuICAgICAgICAvLyBPbmx5IHN0b3JlIHRoZSBjb21wbGV0ZWQgdGVhY2hpbmcgYnViYmxlcyBpZiB0aGUgdXNlciBjb21wbGV0ZWQgdGhlIHRlYWNoaW5nIGJ1YmJsZVxyXG4gICAgICAgIGlmICh0eXBlID09PSBcImNvbXBsZXRlZFwiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbXBsZXRlZFRlYWNoaW5nQnViYmxlQXJyYXkgPSBbXHJcbiAgICAgICAgICAgICAgICAuLi5jb21wbGV0ZWRUZWFjaGluZ0J1YmJsZVN0YWdlcyxcclxuICAgICAgICAgICAgICAgIC4uLnRlYWNoaW5nQnViYmxlcy5tYXAoKGJ1YmJsZSkgPT4gYnViYmxlLmhlYWRsaW5lIGFzICh0eXBlb2YgVEVBQ0hJTkdfU1RBR0VfTkFNRVMpW251bWJlcl0pLFxyXG4gICAgICAgICAgICBdLmRpc3RpbmN0KCk7XHJcblxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShQUk9KRUNUX1RBU0tTX1RFQUNISU5HX0JVQkJMRV9TVEFHRVMsIEpTT04uc3RyaW5naWZ5KG5ld0NvbXBsZXRlZFRlYWNoaW5nQnViYmxlQXJyYXkpKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgICAge2NvbnRhY3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmxvYWRpbmdDb250YWluZXJ9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxTcGlubmVyIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxQcm9qZWN0VGFza0dyaWRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICAgICAgICBpdGVtcz17aXRlbXN9XHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cclxuICAgICAgICAgICAgICAgICAgICBzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3Blbj17c2V0SXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW59XHJcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW49e2lzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVufVxyXG4gICAgICAgICAgICAgICAgICAgIGdldENvbHVtblNpemluZ09wdGlvbnM9e2dldElubGluZUNvbHVtblNpemluZ09wdGlvbnN9XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbENhcmRQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogXCIxMDAlXCIsIG1heEhlaWdodDogbm90TmF0aXZlU2NyZWVuU2l6ZSA/IHVuZGVmaW5lZCA6IFwiNDBlbVwiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBzZXRIYXNDb21wb25lbnRSZW5kZXJlZD17c2V0R3JpZENvbXBvbmVudEhhc1JlbmRlcmVkfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAge3Byb2plY3RUYXNrRGV0YWlsc0lzU2hvd24gJiYgcHJvamVjdFRhc2tUb1Nob3cgJiYgKFxyXG4gICAgICAgICAgICAgICAgPFByb2plY3RUYXNrRGV0YWlsc01vZGFsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdElkPXtwcm9wcy5wcm9qZWN0Lm1zZHluX3Byb2plY3RpZH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0VGFza0RldGFpbHNJc1Nob3duPXtzZXRQcm9qZWN0VGFza0RldGFpbHNJc1Nob3dufVxyXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3RUYXNrRGV0YWlsc0lzU2hvd249e3Byb2plY3RUYXNrRGV0YWlsc0lzU2hvd259XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdFRhc2s9e3Byb2plY3RUYXNrVG9TaG93fVxyXG4gICAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtwcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIHtjb21wbGV0ZVByb2plY3RUYXNrSXNTaG93biAmJiBwcm9qZWN0VGFza1RvU2hvdyAmJiAoXHJcbiAgICAgICAgICAgICAgICA8Q29tcGxldGVQcm9qZWN0VGFza01vZGFsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdElkPXtwcm9wcy5wcm9qZWN0Lm1zZHluX3Byb2plY3RpZH1cclxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0VGFzaz17cHJvamVjdFRhc2tUb1Nob3d9XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVQcm9qZWN0VGFza0lzU2hvd249e2NvbXBsZXRlUHJvamVjdFRhc2tJc1Nob3dufVxyXG4gICAgICAgICAgICAgICAgICAgIHNldENvbXBsZXRlUHJvamVjdFRhc2tJc1Nob3duPXtzZXRDb21wbGV0ZVByb2plY3RUYXNrSXNTaG93bn1cclxuICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17cHJvcHMub25Db21wbGV0ZX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICA8RGlhbG9nIG9wZW49e2lzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVufSBtb2RhbFR5cGU9XCJtb2RhbFwiPlxyXG4gICAgICAgICAgICAgICAgPERpYWxvZ1N1cmZhY2UgY2xhc3NOYW1lPXtzdHlsZXMuZGlhbG9nU3VyZmFjZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPERpYWxvZ0JvZHkgY2xhc3NOYW1lPXtzdHlsZXMuZGlhbG9nQm9keX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0VGFza0dyaWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJtb2RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcz17aXRlbXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW49e3NldElzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQcm9qZWN0VGFza0dyaWRNb2RhbE9wZW49e2lzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29sdW1uU2l6aW5nT3B0aW9ucz17Z2V0TW9kYWxDb2x1bW5TaXppbmdPcHRpb25zfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbENhcmRQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiwgcGFkZGluZzogXCIwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2dCb2R5PlxyXG4gICAgICAgICAgICAgICAgPC9EaWFsb2dTdXJmYWNlPlxyXG4gICAgICAgICAgICA8L0RpYWxvZz5cclxuICAgICAgICAgICAge3RlYWNoaW5nQnViYmxlSXNFbmFibGVkICYmIHRlYWNoaW5nQnViYmxlcy5sZW5ndGggPiAwICYmIGdyaWRDb21wb25lbnRIYXNSZW5kZXJlZCAmJiAoXHJcbiAgICAgICAgICAgICAgICA8TXVsdGlTdGVwVGVhY2hpbmdCdWJibGVcclxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiUHJvamVjdC1UYXNrLUdyaWQtVGVhY2hpbmctQnViYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZVRlYWNoaW5nQnViYmxlPXtjbG9zZVRlYWNoaW5nQnViYmxlfVxyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uaW5nUmVmPXt0ZWFjaGluZ0J1YmJsZVJlZn1cclxuICAgICAgICAgICAgICAgICAgICB0ZWFjaGluZ0J1YmJsZXM9e3RlYWNoaW5nQnViYmxlc31cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgPC8+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBEZXRhaWxlZEhUTUxQcm9wcywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBBbmltYXRlIH0gZnJvbSBcIi4vQW5pbWF0ZVwiO1xyXG5pbXBvcnQgeyBTa2VsZXRvbkl0ZW0gfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgdXNlV2luZG93V2lkdGggfSBmcm9tIFwiLi4vSG9va3MvdXNlV2luZG93V2lkdGhcIjtcclxuXHJcbi8qKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgU2V0dGluZ3Mgb2YgYSBUYWIgVGFibGUuICovXHJcbmV4cG9ydCB0eXBlIFRhYlRhYmxlU2V0dGluZ3M8VD4gPSB7XHJcbiAgICBjb2x1bW5zOiBUYWJUYWJsZUNvbHVtbjxUPltdO1xyXG4gICAgcm93czogVFtdO1xyXG4gICAgb25DbGlja1Jvdz86IChpdGVtOiBUKSA9PiB2b2lkO1xyXG4gICAgZ2V0Um93SWQ6IChpdGVtOiBUKSA9PiBzdHJpbmc7XHJcbiAgICBhZGRpdGlvbmFsVGFibGVDZWxsUHJvcHM/OiBQYXJ0aWFsPFxyXG4gICAgICAgIERldGFpbGVkSFRNTFByb3BzPFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxUYWJsZUNlbGxFbGVtZW50PiwgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ+XHJcbiAgICA+O1xyXG4gICAgc29ydFJvd3M6IChhOiBULCBiOiBUKSA9PiBudW1iZXI7XHJcbiAgICBpc0xvYWRpbmc/OiBib29sZWFuO1xyXG4gICAgbG9hZGluZ1Jvd0NvdW50PzogbnVtYmVyO1xyXG4gICAgZW50aXR5TmFtZT86IHN0cmluZztcclxufTtcclxuXHJcbi8qKiBUeXBlIHJlcHJlc2VudGluZyBhIFRhYiBUYWJsZSBDb2x1bW4uICovXHJcbmV4cG9ydCB0eXBlIFRhYlRhYmxlQ29sdW1uPFQ+ID0ge1xyXG4gICAgY29ycmVzcG9uZGluZ0l0ZW1Qcm9wZXJ0eToga2V5b2YgVDtcclxuICAgIGNvbHVtbkhlYWRpbmc6IHN0cmluZztcclxuICAgIGdldENvbnRlbnQ6IChpdGVtOiBUKSA9PiBzdHJpbmcgfCBKU1guRWxlbWVudCB8IHVuZGVmaW5lZDtcclxuICAgIGdldFRpdGxlPzogKGl0ZW06IFQpID0+IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG59O1xyXG5cclxuLyoqIEEgdGFibGUgZm9yIGEgdGFiIG9uIGEgZm9ybSBpbiB0aGUgcG9ydGFsLiAqL1xyXG5leHBvcnQgY29uc3QgVGFiVGFibGUgPSA8VCBleHRlbmRzIG9iamVjdD4odGFiVGFibGVQcm9wczogVGFiVGFibGVTZXR0aW5nczxUPikgPT4ge1xyXG4gICAgY29uc3QgTU9CSUxFX1dJRFRIID0gNzY3O1xyXG4gICAgY29uc3QgW2lzQW5pbWF0ZWQsIHNldElzQW5pbWF0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3Qgd2lkb3dXaWR0aCA9IHVzZVdpbmRvd1dpZHRoKCk7XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBzZXRJc0FuaW1hdGVkKHRydWUpO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgY29sdW1uIHdpZHRocyBzaG91bGQgYmUgc3RhdGljYWxseSBzZXQgb3IgYXV0b21hdGljYWxseSBhc3NpZ25lZC5cclxuICAgICAqIEBwYXJhbSBwYXJlbnRDb2x1bW4gVGhlIENvbHVtbiB0byBDaGVjay5cclxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbHVtbiB3aWR0aHMgc2hvdWxkIGJlIHN0YXRpY2FsbHkgc2V0IG9yIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IHNob3VsZFNldENvbHVtbldpZHRoID0gKHBhcmVudENvbHVtbjogVGFiVGFibGVDb2x1bW48VD4pID0+IHtcclxuICAgICAgICByZXR1cm4gcGFyZW50Q29sdW1uLndpZHRoICYmIHdpZG93V2lkdGggPiBNT0JJTEVfV0lEVEg7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPHRhYmxlIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0YWJUYWJsZVByb3BzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGtleT17Y29sdW1uLmNvbHVtbkhlYWRpbmd9Pntjb2x1bW4uY29sdW1uSGVhZGluZ308L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgeyF0YWJUYWJsZVByb3BzLmlzTG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgID8gWy4uLnRhYlRhYmxlUHJvcHMucm93c10uc29ydCh0YWJUYWJsZVByb3BzLnNvcnRSb3dzKS5tYXAoKHJvdywgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnZXRDb3JyZXNwb25kaW5nQ29sdW1uID0gKHI6IHN0cmluZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiVGFibGVQcm9wcy5jb2x1bW5zLmZpbmRJbmRleCgoYykgPT4gYy5jb3JyZXNwb25kaW5nSXRlbVByb3BlcnR5ID09PSAociBhcyBrZXlvZiBUKSkgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e0pTT04uc3RyaW5naWZ5KHJvdyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiAodGFiVGFibGVQcm9wcy5vbkNsaWNrUm93ID8gdGFiVGFibGVQcm9wcy5vbkNsaWNrUm93KHJvdykgOiB7fSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWlkPXt0YWJUYWJsZVByb3BzLmdldFJvd0lkKHJvdyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWVudGl0eT17dGFiVGFibGVQcm9wcy5lbnRpdHlOYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7T2JqZWN0LmtleXMocm93IGFzIG9iamVjdClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGdldENvcnJlc3BvbmRpbmdDb2x1bW4oYSkgPCBnZXRDb3JyZXNwb25kaW5nQ29sdW1uKGIpID8gLTEgOiAxKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChyLCBjb2x1bW5JbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRDb2x1bW4gPSB0YWJUYWJsZVByb3BzLmNvbHVtbnMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjKSA9PiBjLmNvcnJlc3BvbmRpbmdJdGVtUHJvcGVydHkgPT09IChyIGFzIGtleW9mIFQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmVudENvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDw+PC8+O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5Db250ZW50ID0gcGFyZW50Q29sdW1uPy5nZXRDb250ZW50KHJvdyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRTZXRDb2x1bW5XaWR0aChwYXJlbnRDb2x1bW4pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgd2lkdGg6IHBhcmVudENvbHVtbi53aWR0aCB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3RhYlRhYmxlUHJvcHMuY29sdW1ucy5sZW5ndGggKiByb3dJbmRleCArIGNvbHVtbkluZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtwYXJlbnRDb2x1bW4uZ2V0VGl0bGUgPyBwYXJlbnRDb2x1bW4uZ2V0VGl0bGUocm93KSA6IHVuZGVmaW5lZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlYWRpbmctdGl0bGU9e3BhcmVudENvbHVtbi5jb2x1bW5IZWFkaW5nfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi50YWJUYWJsZVByb3BzLmFkZGl0aW9uYWxUYWJsZUNlbGxQcm9wc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5pbWF0ZSBvbj17aXNBbmltYXRlZC50b1N0cmluZygpfSBzd2lwZURpcmVjdGlvbj1cImRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57Y29sdW1uQ29udGVudH08Lz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FuaW1hdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIDogQXJyYXkuZnJvbShBcnJheSh0YWJUYWJsZVByb3BzLmxvYWRpbmdSb3dDb3VudCkua2V5cygpKS5tYXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0YWJUYWJsZVByb3BzLmNvbHVtbnMubWFwKChjKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2MuY29sdW1uSGVhZGluZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNob3VsZFNldENvbHVtbldpZHRoKGMpID8gYy53aWR0aCA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbkl0ZW0gc3R5bGU9e3sgaGVpZ2h0OiBcIjIuNWVtXCIgfX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvUHJvamVjdFwiO1xyXG5pbXBvcnQgeyBDb250YWN0Rm9yUmV0cmlldmFsIH0gZnJvbSBcIi4uLy4uL01vZGVscy9Db250YWN0Rm9yUmV0cmlldmFsXCI7XHJcbmltcG9ydCB7IFRhYlRhYmxlLCBUYWJUYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL1RhYlRhYmxlXCI7XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgRWRpdCBDb250YWN0cyBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBQcm9qZWN0c0VkaXRDb250YWN0czogUmVhY3QuRkM8eyBwcm9qZWN0OiBQcm9qZWN0IH0+ID0gKHByb3BzKSA9PiB7XHJcbiAgICBjb25zdCB0YWJsZUNvbHVtbnM6IFRhYlRhYmxlQ29sdW1uPENvbnRhY3RGb3JSZXRyaWV2YWw+W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5IZWFkaW5nOiBcIk5hbWVcIixcclxuICAgICAgICAgICAgY29ycmVzcG9uZGluZ0l0ZW1Qcm9wZXJ0eTogXCJmaXJzdG5hbWVcIixcclxuICAgICAgICAgICAgZ2V0Q29udGVudDogKGl0ZW0pID0+IChcclxuICAgICAgICAgICAgICAgIDxMaW5rIGtleT17aXRlbS5jb250YWN0aWR9IHRvPXtgL2NvbnRhY3RzL2VkaXQ/aWQ9JHtpdGVtLmNvbnRhY3RpZH1gfT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5maXJzdG5hbWV9IHtpdGVtLmxhc3RuYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5IZWFkaW5nOiBcIkpvYiBUaXRsZVwiLFxyXG4gICAgICAgICAgICBjb3JyZXNwb25kaW5nSXRlbVByb3BlcnR5OiBcImpvYnRpdGxlXCIsXHJcbiAgICAgICAgICAgIGdldENvbnRlbnQ6IChpdGVtKSA9PiBpdGVtLmpvYnRpdGxlID8/IHVuZGVmaW5lZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sdW1uSGVhZGluZzogXCJOdW1iZXJcIixcclxuICAgICAgICAgICAgY29ycmVzcG9uZGluZ0l0ZW1Qcm9wZXJ0eTogXCJ0ZWxlcGhvbmUxXCIsXHJcbiAgICAgICAgICAgIGdldENvbnRlbnQ6IChpdGVtKSA9PiBpdGVtLnRlbGVwaG9uZTEgPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5IZWFkaW5nOiBcIkVtYWlsXCIsXHJcbiAgICAgICAgICAgIGNvcnJlc3BvbmRpbmdJdGVtUHJvcGVydHk6IFwiZW1haWxhZGRyZXNzMVwiLFxyXG4gICAgICAgICAgICBnZXRDb250ZW50OiAoaXRlbSkgPT4gaXRlbS5lbWFpbGFkZHJlc3MxID8/IHVuZGVmaW5lZCxcclxuICAgICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxUYWJUYWJsZVxyXG4gICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbnN9XHJcbiAgICAgICAgICAgIHJvd3M9e3Byb3BzLnByb2plY3QuYmlzdGVjaF9tc2R5bl9wcm9qZWN0X0NvbnRhY3RfQ29udGFjdCA/PyBbXX1cclxuICAgICAgICAgICAgc29ydFJvd3M9eyhjb250YWN0QSwgY29udGFjdEIpID0+XHJcbiAgICAgICAgICAgICAgICBgJHtjb250YWN0QS5maXJzdG5hbWU/LnRvU3RyaW5nKCkgPz8gXCJcIn0ke2NvbnRhY3RBLmxhc3RuYW1lPy50b1N0cmluZygpID8/IFwiXCJ9YC5sb2NhbGVDb21wYXJlKFxyXG4gICAgICAgICAgICAgICAgICAgIGAke2NvbnRhY3RCLmZpcnN0bmFtZT8udG9TdHJpbmcoKSA/PyBcIlwifSR7Y29udGFjdEIubGFzdG5hbWU/LnRvU3RyaW5nKCkgPz8gXCJcIn1gXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZW50aXR5TmFtZT1cImNvbnRhY3RcIlxyXG4gICAgICAgICAgICBnZXRSb3dJZD17KHJvdykgPT4gcm93LmNvbnRhY3RpZH1cclxuICAgICAgICAvPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHtcclxuICAgIGNyZWF0ZVRhYmxlQ29sdW1uLFxyXG4gICAgbWFrZVN0eWxlcyxcclxuICAgIFRhYmxlQ2VsbExheW91dCxcclxuICAgIFRhYmxlQ29sdW1uRGVmaW5pdGlvbixcclxuICAgIFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucyxcclxuICAgIFRleHQsXHJcbn0gZnJvbSBcIkBmbHVlbnR1aS9yZWFjdC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBHcmlkIH0gZnJvbSBcIi4uL0ZpbHRlckNvbnRlbnRUYWJsZS9HcmlkXCI7XHJcbmltcG9ydCB7IHVzZVdpbmRvd1dpZHRoIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZVdpbmRvd1dpZHRoXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdHVzQ29kZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWwgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL05ldHdvcmtPcmRlckZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlIH0gZnJvbSBcIi4uLy4uL01vZGVscy9OZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlXCI7XHJcbmltcG9ydCB7IHVzZURhdGFTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZURhdGFTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi4vTm90Rm91bmRcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvTmV0d29ya09yZGVyU3RhZ2VTdGF0ZUNvZGVcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyU3RhZ2VUeXBlIH0gZnJvbSBcIi4uLy4uL0VudW1zL05ldHdvcmtPcmRlclN0YWdlVHlwZVwiO1xyXG5pbXBvcnQgeyBOZXR3b3JrT3JkZXJTdGF0ZUNvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvTmV0d29ya09yZGVyU3RhdGVDb2RlXCI7XHJcbmltcG9ydCB7IE5ldHdvcmtPcmRlclN0YWdlIH0gZnJvbSBcIi4uLy4uL01vZGVscy9OZXR3b3JrT3JkZXJTdGFnZVwiO1xyXG5cclxuLyoqIFRoZSBtYXBwaW5nIG9mIG5ldHdvcmsgb3JkZXIgc3RhZ2UgdmFsdWUgYW5kIGljb24gaXQgc2hvdWxkIHVzZSAqL1xyXG5jb25zdCBOZXR3b3JrT3JkZXJTdGFnZUljb246IHsgW2tleSBpbiBOZXR3b3JrT3JkZXJTdGFnZVR5cGVdOiBzdHJpbmcgfSA9IHtcclxuICAgIFtOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJPcmRlciBQbGFjZWRcIl1dOiBcIm9yZGVyLXBsYWNlZC5zdmdcIixcclxuICAgIFtOZXR3b3JrT3JkZXJTdGFnZVR5cGUuU3VydmV5XTogXCJzdXJ2ZXkuc3ZnXCIsXHJcbiAgICBbTmV0d29ya09yZGVyU3RhZ2VUeXBlLldheWxlYXZlXTogXCJ3YXktbGVhdmUuc3ZnXCIsXHJcbiAgICBbTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiQ2l2aWxzIFdvcmtcIl1dOiBcImNpdmlscy13b3JrLnN2Z1wiLFxyXG4gICAgW05ldHdvcmtPcmRlclN0YWdlVHlwZS5JbnN0YWxsYXRpb25dOiBcImZpYnJlLWluc3RhbGwuc3ZnXCIsXHJcbiAgICBbTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiRmlicmUgSW5zdGFsbFwiXV06IFwiZmlicmUtaW5zdGFsbC5zdmdcIixcclxuICAgIFtOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJGaWJyZSBTcGxpY2luZ1wiXV06IFwiZmlicmUtc3BsaWNlLnN2Z1wiLFxyXG4gICAgW05ldHdvcmtPcmRlclN0YWdlVHlwZVtcIkZpdCAmIFRlc3RcIl1dOiBcImZpdC1hbmQtdGVzdC5zdmdcIixcclxuICAgIFtOZXR3b3JrT3JkZXJTdGFnZVR5cGVbXCJDb25uZWN0aW9uIEluc3RhbGxlZFwiXV06IFwiY29ubmVjdGlvbi1pbnN0YWxsZWQuc3ZnXCIsXHJcbiAgICBbTmV0d29ya09yZGVyU3RhZ2VUeXBlW1wiQ29tbXNDYXJlIFNpdGUgVmlzaXRcIl1dOiBcImNvbW1zQ2FyZS1zaXRlLXZpc2l0LnN2Z1wiLFxyXG59O1xyXG5cclxuLyoqIFJlY3Vyc2l2ZSBSb3cgdHlwZSAqL1xyXG5leHBvcnQgdHlwZSBSb3cgPSB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIG5ldHdvcmtPcmRlck51bWJlcjogc3RyaW5nO1xyXG4gICAgc2l0ZTogc3RyaW5nIHwgbnVsbDtcclxuICAgIHBvc3RDb2RlOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY29ubmVjdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICAgIHN0YWdlOiBzdHJpbmc7XHJcbiAgICBzdGF0dXM6IHN0cmluZyB8IG51bGw7XHJcbiAgICBuZXR3b3JrT3JkZXJOdW1iZXJSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgc2l0ZVJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgICBwb3N0Q29kZVJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgICBjb25uZWN0aW9uUmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICAgIHN0YWdlUmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICAgIHN0YXR1c1JlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbn07XHJcblxyXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHtcclxuICAgIHN0YWdlV3JhcHBlcjoge1xyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXHJcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXHJcbiAgICB9LFxyXG4gICAgc3RhZ2VJY29uV3JhcHBlcjoge1xyXG4gICAgICAgIHdpZHRoOiBcIjEuMjVlbVwiLFxyXG4gICAgICAgIGhlaWdodDogXCIxLjI1ZW1cIixcclxuICAgICAgICBib3JkZXI6IFwiMnB4IHNvbGlkICMyOWFhY2RcIixcclxuICAgICAgICBib3hTaGFkb3c6IFwiIzAwMDAwMDNjIDAgMXB4IDJweCwgIzAwMDAwMDNmIDAgMnB4IDNweFwiLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMjlhYWNkXCIsXHJcbiAgICAgICAgYmFja2dyb3VuZFNpemU6IFwiNTAlXCIsXHJcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiBcImNlbnRlciwgY2VudGVyXCIsXHJcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcclxuICAgICAgICBib3JkZXJSYWRpdXM6IFwiMjJweFwiLFxyXG4gICAgICAgIG1hcmdpblJpZ2h0OiBcIjZweFwiLFxyXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxyXG4gICAgICAgIGZvbnRTaXplOiBcIjIycHhcIixcclxuICAgICAgICBwYWRkaW5nOiBcIjNweFwiLFxyXG4gICAgICAgIGZvbnRXZWlnaHQ6IFwiYm9sZFwiLFxyXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXHJcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcclxuICAgIH0sXHJcbiAgICBjaXJjbGVTdGF0dXM6IHtcclxuICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxyXG4gICAgICAgIHdpZHRoOiBcIjEwcHhcIixcclxuICAgICAgICBoZWlnaHQ6IFwiMTBweFwiLFxyXG4gICAgICAgIGJvcmRlclJhZGl1czogXCI1MCVcIixcclxuICAgICAgICBtYXJnaW5SaWdodDogXCI4cHhcIixcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzI5YWFjZFwiLFxyXG4gICAgICAgIGJveFNoYWRvdzogXCIjMDAwMDAwM2MgMCAxcHggMnB4LCAjMDAwMDAwM2YgMCAycHggM3B4XCIsXHJcbiAgICAgICAgXCImW2RhdGEtc3RhdHVzPSdDYW5jZWxsZWQnXSwgJltkYXRhLXN0YXR1cz0nQ29tcGxldGVkJ11cIjoge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2U2ZTZlNlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICB9LFxyXG59KTtcclxuXHJcbi8qKiBUaGUgY29sdW1ucyBmb3IgdGhlIHRhYmxlLiAqL1xyXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtbklkID0gXCJuZXR3b3JrT3JkZXJOdW1iZXJcIiB8IFwic2l0ZVwiIHwgXCJwb3N0Q29kZVwiIHwgXCJjb25uZWN0aW9uXCIgfCBcInN0YWdlXCIgfCBcInN0YXR1c1wiO1xyXG5cclxuLyoqIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBFZGl0IFByb2plY3QgVGFza3MgUGFnZSAqL1xyXG5leHBvcnQgY29uc3QgUHJvamVjdHNFZGl0TmV0d29ya09yZGVycyA9IChwcm9wczogeyBuZXR3b3JrT3JkZXJzOiBOZXR3b3JrT3JkZXJGb3JSZXRyaWV2ZU11bHRpcGxlW10gfSkgPT4ge1xyXG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB1c2VXaW5kb3dXaWR0aCgpO1xyXG5cclxuICAgIGNvbnN0IG5vdE5hdGl2ZVNjcmVlblNpemUgPSB3aW5kb3dXaWR0aCA8IDEwMjQ7XHJcbiAgICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjb2x1bW5zIGZvciB0aGUgVGFibGUuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGNvbHVtbnM6IFRhYmxlQ29sdW1uRGVmaW5pdGlvbjxSb3c+W10gPSBbXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcIm5ldHdvcmtPcmRlck51bWJlclwiIHNhdGlzZmllcyBUYWJsZUNvbHVtbklkLFxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXJDZWxsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHQgd2VpZ2h0PVwic2VtaWJvbGRcIj5OZXR3b3JrIE9yZGVyIE51bWJlcjwvVGV4dD47XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlbmRlckNlbGw6IChyb3cpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbExheW91dCByZWY9e3Jvdy5uZXR3b3JrT3JkZXJOdW1iZXJSZWZ9IHRpdGxlPXtyb3cubmV0d29ya09yZGVyTnVtYmVyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsga2V5PXtyb3cubmV0d29ya09yZGVyTnVtYmVyfSB0bz17YC9uZXR3b3Jrb3JkZXJzL2VkaXQ/bmV0d29ya29yZGVySWQ9JHtyb3cua2V5fWB9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Jvdy5uZXR3b3JrT3JkZXJOdW1iZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbExheW91dD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcInNpdGVcIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+U2l0ZTwvVGV4dD47XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlbmRlckNlbGw6IChyb3cpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbExheW91dCByZWY9e3Jvdy5zaXRlUmVmfSB0aXRsZT17cm93LnNpdGUhfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3Jvdy5zaXRlfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsTGF5b3V0PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICBjcmVhdGVUYWJsZUNvbHVtbjxSb3c+KHtcclxuICAgICAgICAgICAgY29sdW1uSWQ6IFwicG9zdENvZGVcIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+UG9zdGNvZGU8L1RleHQ+O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxMYXlvdXQgcmVmPXtyb3cucG9zdENvZGVSZWZ9IHRpdGxlPXtyb3cucG9zdENvZGUhfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3Jvdy5wb3N0Q29kZX1cclxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbExheW91dD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY3JlYXRlVGFibGVDb2x1bW48Um93Pih7XHJcbiAgICAgICAgICAgIGNvbHVtbklkOiBcImNvbm5lY3Rpb25cIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+Q29ubmVjdGlvbjwvVGV4dD47XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlbmRlckNlbGw6IChyb3cpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbExheW91dCByZWY9e3Jvdy5jb25uZWN0aW9uUmVmfSB0aXRsZT17cm93LmNvbm5lY3Rpb24hfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3Jvdy5jb25uZWN0aW9ufVxyXG4gICAgICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsTGF5b3V0PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICBjcmVhdGVUYWJsZUNvbHVtbjxSb3c+KHtcclxuICAgICAgICAgICAgY29sdW1uSWQ6IFwic3RhZ2VcIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+U3RhZ2U8L1RleHQ+O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZW5kZXJDZWxsOiAocm93KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxUYWJsZUNlbGxMYXlvdXQgcmVmPXtyb3cuc3RhZ2VSZWZ9IHRpdGxlPXtyb3cuc3RhZ2V9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cm93LnN0YWdlID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuc3RhZ2VXcmFwcGVyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5zdGFnZUljb25XcmFwcGVyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2AvJHtOZXR3b3JrT3JkZXJTdGFnZUljb25bTmV0d29ya09yZGVyU3RhZ2VUeXBlW3Jvdy5zdGFnZV1dfWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyb3cuc3RhZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9UYWJsZUNlbGxMYXlvdXQ+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNyZWF0ZVRhYmxlQ29sdW1uPFJvdz4oe1xyXG4gICAgICAgICAgICBjb2x1bW5JZDogXCJzdGF0dXNcIiBzYXRpc2ZpZXMgVGFibGVDb2x1bW5JZCxcclxuICAgICAgICAgICAgcmVuZGVySGVhZGVyQ2VsbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0IHdlaWdodD1cInNlbWlib2xkXCI+U3RhdHVzPC9UZXh0PjtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVuZGVyQ2VsbDogKHJvdykgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8VGFibGVDZWxsTGF5b3V0IHJlZj17cm93LnN0YXR1c1JlZn0gdGl0bGU9e3Jvdy5zdGF0dXMhfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jaXJjbGVTdGF0dXN9IGRhdGEtc3RhdHVzPXtyb3cuc3RhdHVzfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Jvdy5zdGF0dXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbExheW91dD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICBdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2x1bW4gc2l6aW5nIG9wdGlvbnMgZm9yIHRoZSBpbmxpbmUgZ3JpZFxyXG4gICAgICogQHBhcmFtIGNhcmRXaWR0aCBUaGUgd2lkdGggb2YgdGhlIGNhcmRcclxuICAgICAqIEByZXR1cm5zIFRoZSBjb2x1bW4gc2l6aW5nIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZ2V0SW5saW5lQ29sdW1uU2l6aW5nT3B0aW9ucyhjYXJkV2lkdGg6IG51bWJlcik6IFRhYmxlQ29sdW1uU2l6aW5nT3B0aW9ucyB7XHJcbiAgICAgICAgLy8gVGhlIG1hcHBpbmdzIG9mIGNvbHVtbiB0byBzaXppbmcgbXVsdGlwbGllcnNcclxuICAgICAgICBjb25zdCBUQUJMRV9DT0xVTU5fUkVMQVRJVkVfV0lEVEhTID0ge1xyXG4gICAgICAgICAgICBuZXR3b3JrT3JkZXJOdW1iZXI6IDAuMixcclxuICAgICAgICAgICAgc2l0ZTogMC4xNSxcclxuICAgICAgICAgICAgcG9zdENvZGU6IDAuMSxcclxuICAgICAgICAgICAgY29ubmVjdGlvbjogMC4xNSxcclxuICAgICAgICAgICAgc3RhZ2U6IDAuMjUsXHJcbiAgICAgICAgICAgIHN0YXR1czogMC4xNSxcclxuICAgICAgICB9IHNhdGlzZmllcyBSZWNvcmQ8VGFibGVDb2x1bW5JZCwgbnVtYmVyPjtcclxuXHJcbiAgICAgICAgLy8gTWFwIHRoZSBtdWx0aXBsaWVycyB0byB0aGUgY29sdW1uIGRlZmluaXRpb25zIGRlZmluaW5nIHRoZSBpZGVhbFdpZHRoXHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoVEFCTEVfQ09MVU1OX1JFTEFUSVZFX1dJRFRIUykubWFwKChbY29sdW1uSWQsIG11bHRpcGxpZXJdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbklkLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSWQ6IGNvbHVtbklkIGFzIFRhYmxlQ29sdW1uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZWFsV2lkdGg6IGNhcmRXaWR0aCAqIG11bHRpcGxpZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9GaXRDb2x1bW5zOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGN1c3RvbWVyQXNzZXRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5jdXN0b21lckFzc2V0cyk7XHJcbiAgICBjb25zdCBhY2NvdW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuYWNjb3VudHMpO1xyXG4gICAgY29uc3QgW25ldHdvcmtPcmRlcnNXaXRoU3RhZ2VzLCBzZXROZXR3b3JrT3JkZXJzV2l0aFN0YWdlc10gPSB1c2VTdGF0ZTxOZXR3b3JrT3JkZXJGb3JSZXRyaWV2YWxbXT4oW10pO1xyXG5cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV0d29ya09yZGVyUHJvbWlzZXMgPSBwcm9wcy5uZXR3b3JrT3JkZXJzLm1hcChhc3luYyAobm8pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGRhdGFTZXJ2aWNlLnJldHJpZXZlTmV0d29ya09yZGVyKG5vLmJpc3RlY2hfbmV0d29ya29yZGVyaWQpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBQcm9taXNlLmFsbChuZXR3b3JrT3JkZXJQcm9taXNlcykudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHNldE5ldHdvcmtPcmRlcnNXaXRoU3RhZ2VzKHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgaWYgKGN1c3RvbWVyQXNzZXRzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIgfHwgYWNjb3VudHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgdHlwZT1cInJlY29yZC1ub3QtZm91bmRcIiBzaW5ndWxhckVudGl0eU5hbWU9XCJOZXR3b3JrIE9yZGVyXCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWFwIHRhc2tzIHRvIFJvd3NcclxuICAgIGNvbnN0IGl0ZW1zID0gbmV0d29ya09yZGVyc1dpdGhTdGFnZXMubWFwKChubyk6IFJvdyA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVsYXRlZEN1c3RvbWVyQXNzZXQgPSBjdXN0b21lckFzc2V0cy5kYXRhLmZpbmQoXHJcbiAgICAgICAgICAgIChjYSkgPT4gY2EubXNkeW5fY3VzdG9tZXJhc3NldGlkID09PSBuby5fYmlzdGVjaF9jdXN0b21lcmFzc2V0X3ZhbHVlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVsYXRlZFNpdGUgPSBhY2NvdW50cy5kYXRhLmZpbmQoKGFjYykgPT4gYWNjLmFjY291bnRpZCA9PT0gcmVsYXRlZEN1c3RvbWVyQXNzZXQ/Ll9iaXN0ZWNoX3NpdGVfdmFsdWUpO1xyXG5cclxuICAgICAgICBjb25zdCBnZXROdW1lcmljRGF0ZVZhbHVlID0gKGRhdGU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBudW1iZXIgPT4gKGRhdGUgPyBEYXRlLnBhcnNlKGRhdGUpIDogLTEpO1xyXG5cclxuICAgICAgICAvLyBTb3J0IGJ5IHRoZSBTdGFnZSBlbnVtIHZhbHVlcywgdGhlbiBmaW5kIHRoZSBvbGRlc3Qgc3RhZ2UgYnkgZGF0ZSBmcm9tLlxyXG4gICAgICAgIGNvbnN0IG9sZGVzdE5ldHdvcmtPcmRlclN0YWdlOiBOZXR3b3JrT3JkZXJTdGFnZSB8IG51bGwgPVxyXG4gICAgICAgICAgICBuby5zdGF0ZWNvZGUgPT09IE5ldHdvcmtPcmRlclN0YXRlQ29kZS5BY3RpdmVcclxuICAgICAgICAgICAgICAgID8gWy4uLm5vLmJpc3RlY2hfYmlzdGVjaF9uZXR3b3Jrb3JkZXJzdGFnZV9uZXR3b3Jrb3JkZXJfYmldXHJcbiAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChzdGFnZSkgPT4gc3RhZ2Uuc3RhdGVjb2RlID09PSBOZXR3b3JrT3JkZXJTdGFnZVN0YXRlQ29kZS5BY3RpdmUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYS5iaXN0ZWNoX2RhdGVmcm9tICYmICFiLmJpc3RlY2hfZGF0ZWZyb20pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuYmlzdGVjaF9zdGFnZSAtIGEuYmlzdGVjaF9zdGFnZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhLmJpc3RlY2hfZGF0ZWZyb20gJiYgYi5iaXN0ZWNoX2RhdGVmcm9tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXROdW1lcmljRGF0ZVZhbHVlKGEuYmlzdGVjaF9kYXRlZnJvbSkgLSBnZXROdW1lcmljRGF0ZVZhbHVlKGIuYmlzdGVjaF9kYXRlZnJvbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYS5iaXN0ZWNoX2RhdGVmcm9tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSlbMF0gPz8gbnVsbFxyXG4gICAgICAgICAgICAgICAgOiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBrZXk6IG5vLmJpc3RlY2hfbmV0d29ya29yZGVyaWQsXHJcbiAgICAgICAgICAgIG5ldHdvcmtPcmRlck51bWJlcjogbm8uYmlzdGVjaF9uYW1lLFxyXG4gICAgICAgICAgICBzaXRlOiByZWxhdGVkU2l0ZT8ubmFtZSA/PyBcIlwiLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogcmVsYXRlZFNpdGU/LmFkZHJlc3MxX3Bvc3RhbGNvZGUgPz8gXCJcIixcclxuICAgICAgICAgICAgY29ubmVjdGlvbjogcmVsYXRlZEN1c3RvbWVyQXNzZXQ/Lm1zZHluX25hbWUgPz8gXCJcIixcclxuICAgICAgICAgICAgc3RhZ2U6IG9sZGVzdE5ldHdvcmtPcmRlclN0YWdlID8gTmV0d29ya09yZGVyU3RhZ2VUeXBlW29sZGVzdE5ldHdvcmtPcmRlclN0YWdlLmJpc3RlY2hfc3RhZ2VdIDogXCJcIixcclxuICAgICAgICAgICAgc3RhdHVzOiBuby5zdGF0dXNjb2RlID8gTmV0d29ya09yZGVyU3RhdHVzQ29kZVtuby5zdGF0dXNjb2RlXSA6IG51bGwsXHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgICAgPEdyaWRcclxuICAgICAgICAgICAgICAgIHRhYmxlTmFtZT1cIk5ldHdvcmsgT3JkZXJzXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJpbmxpbmVcIlxyXG4gICAgICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cclxuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxDYXJkUHJvcHM9e3tcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogXCIxMDAlXCIsIG1heEhlaWdodDogbm90TmF0aXZlU2NyZWVuU2l6ZSA/IHVuZGVmaW5lZCA6IFwiNDBlbVwiIH0sXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgZ2V0Q29sdW1uU2l6aW5nT3B0aW9ucz17Z2V0SW5saW5lQ29sdW1uU2l6aW5nT3B0aW9uc31cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZ1N0YXR1c0NvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvUHJvamVjdExvZ1N0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZ1R5cGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvUHJvamVjdExvZ1R5cGVcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi8uLi9IZWxwZXJzL0RhdGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZyB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvUHJvamVjdExvZ1wiO1xyXG5pbXBvcnQgeyBUYWJUYWJsZSwgVGFiVGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9UYWJUYWJsZVwiO1xyXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgRWRpdCBQcm9qZWN0IExvZ3MgUGFnZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RzRWRpdFByb2plY3RMb2dzOiBSZWFjdC5GQzx7IHByb2plY3RMb2dzOiBQcm9qZWN0TG9nW10gfT4gPSAoeyBwcm9qZWN0TG9ncyB9KSA9PiB7XHJcbiAgICBmdW5jdGlvbiBnZXRMaW5rRWxlbWVudChsaW5rTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCwgaXRlbTogUHJvamVjdExvZykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxMaW5rIGtleT17aXRlbS5iaXN0ZWNoX3Byb2plY3Rsb2dzaWR9IHRvPXtgcHJvamVjdGxvZ3Mvdmlldz9wcm9qZWN0TG9nSWQ9JHtpdGVtLmJpc3RlY2hfcHJvamVjdGxvZ3NpZH1gfT5cclxuICAgICAgICAgICAgICAgIHtsaW5rTGFiZWx9XHJcbiAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbHVtbnM6IFRhYlRhYmxlQ29sdW1uPFByb2plY3RMb2c+W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5IZWFkaW5nOiBcIk5hbWVcIixcclxuICAgICAgICAgICAgY29ycmVzcG9uZGluZ0l0ZW1Qcm9wZXJ0eTogXCJiaXN0ZWNoX25hbWVcIixcclxuICAgICAgICAgICAgZ2V0Q29udGVudDogKGl0ZW0pID0+IGdldExpbmtFbGVtZW50KGl0ZW0uYmlzdGVjaF9uYW1lLCBpdGVtKSxcclxuICAgICAgICAgICAgd2lkdGg6IFwiMTAlXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRpbmc6IFwiRGF0ZSBSYWlzZWRcIixcclxuICAgICAgICAgICAgY29ycmVzcG9uZGluZ0l0ZW1Qcm9wZXJ0eTogXCJjcmVhdGVkb25cIixcclxuICAgICAgICAgICAgZ2V0Q29udGVudDogKGl0ZW0pID0+IDxzcGFuPntEYXRlSGVscGVyLnRvRGF0ZU9ubHlTdHJpbmcoaXRlbS5jcmVhdGVkb24hKSA/PyBcIlwifTwvc3Bhbj4sXHJcbiAgICAgICAgICAgIHdpZHRoOiBcIjglXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbHVtbkhlYWRpbmc6IFwiVHlwZVwiLFxyXG4gICAgICAgICAgICBjb3JyZXNwb25kaW5nSXRlbVByb3BlcnR5OiBcImJpc3RlY2hfdHlwZVwiLFxyXG4gICAgICAgICAgICBnZXRDb250ZW50OiAoaXRlbSkgPT4gaXRlbS5iaXN0ZWNoX3R5cGUgJiYgUHJvamVjdExvZ1R5cGVbaXRlbS5iaXN0ZWNoX3R5cGVdLFxyXG4gICAgICAgICAgICB3aWR0aDogXCI5JVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5IZWFkaW5nOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICAgIGNvcnJlc3BvbmRpbmdJdGVtUHJvcGVydHk6IFwiYmlzdGVjaF9kZXNjcmlwdGlvblwiLFxyXG4gICAgICAgICAgICBnZXRDb250ZW50OiAoaXRlbSkgPT4gaXRlbS5iaXN0ZWNoX2Rlc2NyaXB0aW9uID8/IFwiXCIsXHJcbiAgICAgICAgICAgIHdpZHRoOiBcIjMwJVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2x1bW5IZWFkaW5nOiBcIlN0YXR1c1wiLFxyXG4gICAgICAgICAgICBjb3JyZXNwb25kaW5nSXRlbVByb3BlcnR5OiBcInN0YXR1c2NvZGVcIixcclxuICAgICAgICAgICAgZ2V0Q29udGVudDogKGl0ZW0pID0+IChpdGVtLnN0YXR1c2NvZGUgPyBQcm9qZWN0TG9nU3RhdHVzQ29kZVtpdGVtLnN0YXR1c2NvZGVdIDogdW5kZWZpbmVkKSxcclxuICAgICAgICAgICAgd2lkdGg6IFwiNiVcIixcclxuICAgICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxUYWJUYWJsZVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cclxuICAgICAgICAgICAgICAgIHJvd3M9e3Byb2plY3RMb2dzfVxyXG4gICAgICAgICAgICAgICAgc29ydFJvd3M9eyhhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhLmNyZWF0ZWRvbiAmJiAhYi5jcmVhdGVkb24pIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYS5jcmVhdGVkb24gfHwgIWIuY3JlYXRlZG9uKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5jcmVhdGVkb24gPCBiLmNyZWF0ZWRvbiA/IDEgOiAtMTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lPVwiYmlzdGVjaF9wcm9qZWN0bG9nc1wiXHJcbiAgICAgICAgICAgICAgICBnZXRSb3dJZD17KHJvdykgPT4gcm93LmJpc3RlY2hfcHJvamVjdGxvZ3NpZH1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7IFByb2plY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL1Byb2plY3RTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi4vTm90Rm91bmRcIjtcclxuaW1wb3J0IHsgU3RyaW5nRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvU3RyaW5nRmllbGRcIjtcclxuaW1wb3J0IHsgVGltZWxpbmUgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9UaW1lbGluZVwiO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSBcIi4uLy4uL0hlbHBlcnMvRGF0ZUhlbHBlclwiO1xyXG5pbXBvcnQgeyBMb29rdXBGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9Mb29rdXBGaWVsZFwiO1xyXG5pbXBvcnQge1xyXG4gICAgUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbCxcclxuICAgIFJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX01FVEFEQVRBLFxyXG59IGZyb20gXCIuLi8uLi9Nb2RlbHMvUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFzayB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvUHJvamVjdFRhc2tcIjtcclxuaW1wb3J0IHsgSHlwZXJsaW5rRmllbGQgfSBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9GaWVsZHMvSHlwZXJsaW5rRmllbGRcIjtcclxuaW1wb3J0IHsgUEFHRVMgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgdXNlQXBwSW5zaWdodHMgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlQXBwSW5zaWdodHNcIjtcclxuaW1wb3J0IHsgQ1JFQVRFX1BPUlRBTF9DT01NRU5UX1BST0pFQ1RfTUVUQURBVEEgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JDcmVhdGVcIjtcclxuXHJcbi8qKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgUHJvamVjdHMgRWRpdHMgQ29udGVudCBQcm9wcyAqL1xyXG50eXBlIFByb2plY3RzRWRpdENvbnRlbnRQcm9wcyA9IHtcclxuICAgIGluaXRpYWxQcm9qZWN0OiBQcm9qZWN0O1xyXG4gICAgcHJvamVjdFRhc2tzOiBQcm9qZWN0VGFza1tdO1xyXG4gICAgaXNSZWFkT25seTogYm9vbGVhbjtcclxuICAgIG9uU2F2ZTogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbi8qKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgRWRpdCBQcm9qZWN0cyBTdW1tYXJ5IFBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RzRWRpdFN1bW1hcnk6IFJlYWN0LkZDPFByb2plY3RzRWRpdENvbnRlbnRQcm9wcz4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3Qgb3JkZXJzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5vcmRlcnMpO1xyXG4gICAgY29uc3QgeyB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YSB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuXHJcbiAgICBjb25zdCBpc1JlYWRPbmx5ID1cclxuICAgICAgICBwcm9wcy5pc1JlYWRPbmx5IHx8XHJcbiAgICAgICAgcHJvcHMuaW5pdGlhbFByb2plY3Quc3RhdHVzY29kZSA9PT0gUHJvamVjdFN0YXR1c0NvZGVbXCJDYW5jZWxsZWRcIl0gfHxcclxuICAgICAgICBwcm9wcy5pbml0aWFsUHJvamVjdC5zdGF0dXNjb2RlID09PSBQcm9qZWN0U3RhdHVzQ29kZVtcIkNsb3NlZFwiXSB8fFxyXG4gICAgICAgIHByb3BzLmluaXRpYWxQcm9qZWN0LnN0YXR1c2NvZGUgPT09IFByb2plY3RTdGF0dXNDb2RlLkluYWN0aXZlO1xyXG5cclxuICAgIGNvbnN0IFtwb3J0YWxDb21tZW50cywgc2V0UG9ydGFsQ29tbWVudHNdID0gdXNlU3RhdGU8UG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFtdPihcclxuICAgICAgICBwcm9wcy5pbml0aWFsUHJvamVjdC5tc2R5bl9wcm9qZWN0X2FkeF9wb3J0YWxjb21tZW50cz8uZmlsdGVyKFxyXG4gICAgICAgICAgICAoeCkgPT4geC5fcmVnYXJkaW5nb2JqZWN0aWRfdmFsdWUgPT09IHByb3BzLmluaXRpYWxQcm9qZWN0Lm1zZHluX3Byb2plY3RpZFxyXG4gICAgICAgICkgPz8gW11cclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgcG9ydGFsRW1haWxzID1cclxuICAgICAgICBwcm9wcy5pbml0aWFsUHJvamVjdC5tc2R5bl9wcm9qZWN0X2Jpc3RlY2hfcG9ydGFsZW1haWxzPy5maWx0ZXIoXHJcbiAgICAgICAgICAgICh4KSA9PiB4Ll9yZWdhcmRpbmdvYmplY3RpZF92YWx1ZSA9PT0gcHJvcHMuaW5pdGlhbFByb2plY3QubXNkeW5fcHJvamVjdGlkXHJcbiAgICAgICAgKSA/PyBbXTtcclxuXHJcbiAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIHRoZSB1c2VyIGNvbnRhY3RJZCB0byBiZSBwb3B1bGF0ZWQgYnV0IHdhcyAnJHt1c2VyTWV0YWRhdGEuY29udGFjdElkfScgYCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwcm9wcy5pbml0aWFsUHJvamVjdCkge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgdHlwZT1cInJlY29yZC1ub3QtZm91bmRcIiBzaW5ndWxhckVudGl0eU5hbWU9XCJQcm9qZWN0XCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2hvdyB0aGUgT3JkZXIgZmllbGRcclxuICAgIC8vIFRoZSBjaGVjayBhZ2FpbnN0IHRoZSByZXRyaWV2ZWQgT3JkZXJzIGNvbGxlY3Rpb24gaXMgaW1wb3J0YW50IGFzIHRoZSBPcmRlciBtYXkgbm90IHlldCBiZSB2aXNpYmxlIGluIHRoZSBQb3J0YWxcclxuICAgIC8vIGUuZy4gbm90IGluIHRoZSBjb3JyZWN0IHN0YXR1cyB5ZXQuXHJcbiAgICBjb25zdCBzaG93T3JkZXJGaWVsZCA9XHJcbiAgICAgICAgcHJvcHMuaW5pdGlhbFByb2plY3QuX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZSAmJlxyXG4gICAgICAgIG9yZGVycy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiICYmXHJcbiAgICAgICAgb3JkZXJzLmRhdGEuc29tZSgob3JkZXIpID0+IG9yZGVyLnNhbGVzb3JkZXJpZCA9PT0gcHJvcHMuaW5pdGlhbFByb2plY3QuX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlbmVyYWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPkluZm9ybWF0aW9uPC9oMj5cclxuICAgICAgICAgICAgICAgIHtwcm9wcy5pbml0aWFsUHJvamVjdC5fb3duZXJpZF92YWx1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPExvb2t1cEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUHJvamVjdCBNYW5hZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInByb2plY3QtbWFuYWdlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uSWQ9e3Byb3BzLmluaXRpYWxQcm9qZWN0Ll9vd25lcmlkX3ZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwPVwiVGhlIFByb2plY3QgTWFuYWdlciByZXNwb25zaWJsZSBmb3IgdGhpcyBQcm9qZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGx1cmFsT3B0aW9uc05hbWU9XCJQcm9qZWN0IE1hbmFnZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcHJvcHMuaW5pdGlhbFByb2plY3QuX293bmVyaWRfdmFsdWUgfHwgXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pbml0aWFsUHJvamVjdFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIl9vd25lcmlkX3ZhbHVlQE9EYXRhLkNvbW11bml0eS5EaXNwbGF5LlYxLkZvcm1hdHRlZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IFwiUHJvamVjdCBNYW5hZ2VyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlja2FibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyOiBwcm9wcy5pbml0aWFsUHJvamVjdC5fb3duZXJpZF92YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25JZD17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxJbnB1dFByb3BzPXt7IGRpc2FibGVkOiB0cnVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICB7c2hvd09yZGVyRmllbGQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxIeXBlcmxpbmtGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIk9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua0RldGFpbHM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY6IGAke1BBR0VTLkVkaXRPcmRlci5wYXRofT9vcmRlcklkPSR7cHJvcHMuaW5pdGlhbFByb2plY3QuX21zZHluX3NhbGVzb3JkZXJpZF92YWx1ZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBhdGg6IFBBR0VTLk9yZGVycy5uYXZpZ2F0aW9uUGFuZWxDb25maWcuaWNvblBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVycy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gb3JkZXJzLmRhdGEuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIuc2FsZXNvcmRlcmlkID09PSBwcm9wcy5pbml0aWFsUHJvamVjdC5fbXNkeW5fc2FsZXNvcmRlcmlkX3ZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8ub3JkZXJudW1iZXIgPz8gXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlNjaGVkdWxlZCBTdGFydCBEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2NoZWR1bGVkLXN0YXJ0LWRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmluaXRpYWxQcm9qZWN0Lm1zZHluX3NjaGVkdWxlZHN0YXJ0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IERhdGVIZWxwZXIudG9EYXRlT25seVN0cmluZyhwcm9wcy5pbml0aWFsUHJvamVjdC5tc2R5bl9zY2hlZHVsZWRzdGFydClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRXN0aW1hdGVkIEZpbmlzaCBEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXN0aW1hdGVkLWZpbmlzaC1kYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge319XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pbml0aWFsUHJvamVjdC5iaXN0ZWNoX2VzdGltYXRlZGZpbmlzaGRhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gRGF0ZUhlbHBlci50b0RhdGVPbmx5U3RyaW5nKHByb3BzLmluaXRpYWxQcm9qZWN0LmJpc3RlY2hfZXN0aW1hdGVkZmluaXNoZGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxUaW1lbGluZVxyXG4gICAgICAgICAgICAgICAgY3VycmVudEVudGl0eT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZU1ldGFkYXRhOiBDUkVBVEVfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9NRVRBREFUQSxcclxuICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZU1ldGFkYXRhOiBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9NRVRBREFUQSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB0aWNrZXROdW1iZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgbWFqb3JJbmNpZGVudFVwZGF0ZXM9e1tdfVxyXG4gICAgICAgICAgICAgICAgc2V0UG9ydGFsQ29tbWVudHM9e3NldFBvcnRhbENvbW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgcG9ydGFsQ29tbWVudHM9e3BvcnRhbENvbW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgcG9ydGFsRW1haWxzPXtwb3J0YWxFbWFpbHN9XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNSZWFkT25seX1cclxuICAgICAgICAgICAgICAgIGVudGl0eUlkPXtwcm9wcy5pbml0aWFsUHJvamVjdC5tc2R5bl9wcm9qZWN0aWR9XHJcbiAgICAgICAgICAgICAgICB0cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9uPXsoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhPy4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkVkaXQgUHJvamVjdCAtIFBvcnRhbCBDb21tZW50IHN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0SWQ6IHByb3BzLmluaXRpYWxQcm9qZWN0Lm1zZHluX3Byb2plY3RpZCxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdHJhY2tQb3J0YWxDb21tZW50Q3JlYXRlZFN1Y2Nlc3NmdWxseT17KHBvcnRhbENvbW1lbnQpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBQcm9qZWN0IC0gUG9ydGFsIENvbW1lbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdElkOiBwcm9wcy5pbml0aWFsUHJvamVjdC5tc2R5bl9wcm9qZWN0aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5SWQ6IHBvcnRhbENvbW1lbnQuYWN0aXZpdHlpZCxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvPlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgU2VsZWN0VGFiRXZlbnQgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgRGlzcGF0Y2gsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBUYWIsIFRBQl9MSVNUX05BTUVTLCBUYWJMaXN0LCBUYWJMaXN0TmFtZSB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL1RhYkxpc3RcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi8uLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IFByb2plY3RTdGF0dXNDb2RlIH0gZnJvbSBcIi4uLy4uL0VudW1zL1Byb2plY3RTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrU3RhdHVzQ29kZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9Qcm9qZWN0VGFza1N0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi8uLi9IZWxwZXJzL0RhdGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgdXNlQXBwSW5zaWdodHMgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlQXBwSW5zaWdodHNcIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrIH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0VGFza1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0VGFza0ZvclVwZGF0ZSB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvUHJvamVjdFRhc2tGb3JVcGRhdGVcIjtcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcIi4uLy4uL1JlZHVjZXJzXCI7XHJcbmltcG9ydCB7IENhbGxUb0FjdGlvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uLy4uL1R5cGVzL0NhbGxUb0FjdGlvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IENhbGxUb0FjdGlvbkJhc2VQYWdlIH0gZnJvbSBcIi4uL0NhbGxUb0FjdGlvbkJhc2VQYWdlXCI7XHJcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSBcIi4uL05vdEZvdW5kXCI7XHJcbmltcG9ydCB7IFByb2plY3RzRWRpdFRhc2tzIH0gZnJvbSBcIi4vUHJvamVjdFRhc2tUYWJsZS9Qcm9qZWN0c0VkaXRUYXNrc1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0c0VkaXRDb250YWN0cyB9IGZyb20gXCIuL1Byb2plY3RzRWRpdENvbnRhY3RzXCI7XHJcbmltcG9ydCB7IFByb2plY3RzRWRpdE5ldHdvcmtPcmRlcnMgfSBmcm9tIFwiLi9Qcm9qZWN0c0VkaXROZXR3b3JrT3JkZXJzXCI7XHJcbmltcG9ydCB7IFByb2plY3RzRWRpdFByb2plY3RMb2dzIH0gZnJvbSBcIi4vUHJvamVjdHNFZGl0UHJvamVjdExvZ3NcIjtcclxuaW1wb3J0IHsgUHJvamVjdHNFZGl0U3VtbWFyeSB9IGZyb20gXCIuL1Byb2plY3RzRWRpdFN1bW1hcnlcIjtcclxuaW1wb3J0IHsgZnJvbUxvYWRpbmdEYXRhIH0gZnJvbSBcIi4uLy4uL0hlbHBlcnMvZnJvbUxvYWRpbmdEYXRhXCI7XHJcblxyXG4vKiogVHlwZSByZXByZXNlbnRpbmcgb2YgdGhlIFByb2plY3RzIEVkaXRzIENvbnRlbnQgUHJvcHMgKi9cclxuZXhwb3J0IHR5cGUgUHJvamVjdHNFZGl0Q29udGVudFByb3BzID0ge1xyXG4gICAgaW5pdGlhbFByb2plY3Q6IFByb2plY3Q7XHJcbiAgICBwcm9qZWN0VGFza3M6IFByb2plY3RUYXNrW107XHJcbiAgICBvblNhdmU6ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG4vKiBDb21wb25lbnQgY29udGFpbmluZyB0aGUgRWRpdCBQcm9qZWN0IHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RzRWRpdENvbnRlbnQ6IFJlYWN0LkZDPFByb2plY3RzRWRpdENvbnRlbnRQcm9wcz4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IGRpc3BhdGNoOiBEaXNwYXRjaDxBY3Rpb24+ID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIGNvbnN0IHVzZXIgPSB1c2VVc2VyTWV0YWRhdGEoKTtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHsgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhLCB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YSB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuXHJcbiAgICBjb25zdCBuZXR3b3JrT3JkZXJzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5uZXR3b3JrT3JkZXJzKTtcclxuXHJcbiAgICBjb25zdCBbcHJvamVjdFRhc2tzLCBzZXRQcm9qZWN0VGFza3NdID0gdXNlU3RhdGU8UHJvamVjdFRhc2tbXT4ocHJvcHMucHJvamVjdFRhc2tzKTtcclxuXHJcbiAgICAvLyBEZWNvZGUgdGhlIGhhc2ggZnJvbSB0aGUgdXJsXHJcbiAgICBjb25zdCBkZWNvZGVkSGFzaCA9IGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKSk7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBpbml0aWFsIHRhYiB0byBzZWxlY3RcclxuICAgIGNvbnN0IGludGlhbFRhYiA9IChUQUJfTElTVF9OQU1FUy5pbmNsdWRlcyhkZWNvZGVkSGFzaCBhcyBUYWJMaXN0TmFtZSkgPyBkZWNvZGVkSGFzaCA6IFwiU3VtbWFyeVwiKSBhcyBUYWJMaXN0TmFtZTtcclxuXHJcbiAgICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8VGFiTGlzdE5hbWU+KGludGlhbFRhYik7XHJcblxyXG4gICAgY29uc3QgY29udGFjdHMgPSBwcm9wcy5pbml0aWFsUHJvamVjdC5iaXN0ZWNoX21zZHluX3Byb2plY3RfQ29udGFjdF9Db250YWN0ID8/IFtdO1xyXG4gICAgY29uc3QgcHJvamVjdExvZ3MgPSBwcm9wcy5pbml0aWFsUHJvamVjdC5iaXN0ZWNoX2Jpc3RlY2hfcHJvamVjdGxvZ3NfUHJvamVjdF9tc2R5bl9wcm9qZWN0ID8/IFtdO1xyXG4gICAgY29uc3QgY2FuRWRpdFByb2plY3RzID0gdXNlci5wb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsID09PSBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiQWxsIFByb2plY3RzXCJdO1xyXG4gICAgY29uc3QgcmVnYXJkaW5nTmV0d29ya09yZGVycyA9IGZyb21Mb2FkaW5nRGF0YShcclxuICAgICAgICBuZXR3b3JrT3JkZXJzLFxyXG4gICAgICAgIChubykgPT4gbm8uZmlsdGVyKChubykgPT4gbm8uX2Jpc3RlY2hfcHJvamVjdG5ldHdvcmtvcmRlcl92YWx1ZSA9PT0gcHJvcHMuaW5pdGlhbFByb2plY3QubXNkeW5fcHJvamVjdGlkKSxcclxuICAgICAgICBbXVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBub24tc3VtbWFyeSBwcm9qZWN0IHRhc2tzXHJcbiAgICBjb25zdCBub25TdW1tYXJ5UHJvamVjdFRhc2tzQ291bnQgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICAvLyBDcmVhdGUgYSBzZXQgb2YgYWxsIHRhc2sgSURzIHRoYXQgYXJlIHBhcmVudHMuXHJcbiAgICAgICAgY29uc3QgcGFyZW50VGFza0lkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICAgICAgICBwcm9qZWN0VGFza3MuZm9yRWFjaCgodGFzaykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFzay5fbXNkeW5fcGFyZW50dGFza192YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcGFyZW50VGFza0lkcy5hZGQodGFzay5fbXNkeW5fcGFyZW50dGFza192YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQ291bnQgdGhlIHRhc2tzIHRoYXQgYXJlIG5vdCBpbiB0aGUgc2V0IG9mIHBhcmVudCB0YXNrIElEcy5cclxuICAgICAgICByZXR1cm4gcHJvamVjdFRhc2tzLmZpbHRlcigodGFzaykgPT4gIXBhcmVudFRhc2tJZHMuaGFzKHRhc2subXNkeW5fcHJvamVjdHRhc2tpZCkpLmxlbmd0aDtcclxuICAgIH0sIFtwcm9qZWN0VGFza3NdKTtcclxuXHJcbiAgICBjb25zdCB0YWJzOiBUYWJbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiU3VtbWFyeVwiLFxyXG4gICAgICAgICAgICBsYWJlbDogXCJTdW1tYXJ5XCIsXHJcbiAgICAgICAgICAgIHNob3dXaGVuOiB0cnVlLFxyXG4gICAgICAgICAgICBjb21wb25lbnRUb1JlbmRlcjogKHByb3BzOiBQcm9qZWN0c0VkaXRDb250ZW50UHJvcHMpID0+IChcclxuICAgICAgICAgICAgICAgIDxQcm9qZWN0c0VkaXRTdW1tYXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFByb2plY3Q9e3Byb3BzLmluaXRpYWxQcm9qZWN0fVxyXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3RUYXNrcz17cHJvcHMucHJvamVjdFRhc2tzfVxyXG4gICAgICAgICAgICAgICAgICAgIGlzUmVhZE9ubHk9eyFjYW5FZGl0UHJvamVjdHN9XHJcbiAgICAgICAgICAgICAgICAgICAgb25TYXZlPXtwcm9wcy5vblNhdmV9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiBcIlByb2plY3QgVGFza3NcIixcclxuICAgICAgICAgICAgbGFiZWw6IGBQcm9qZWN0IFRhc2tzICgke25vblN1bW1hcnlQcm9qZWN0VGFza3NDb3VudH0pYCxcclxuICAgICAgICAgICAgc2hvd1doZW46IGNhbkVkaXRQcm9qZWN0cyAmJiBwcm9wcy5wcm9qZWN0VGFza3MubGVuZ3RoID4gMCxcclxuICAgICAgICAgICAgY29tcG9uZW50VG9SZW5kZXI6IChwcm9wczogUHJvamVjdHNFZGl0Q29udGVudFByb3BzKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8UHJvamVjdHNFZGl0VGFza3NcclxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9wcy5pbml0aWFsUHJvamVjdH1cclxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0VGFza3M9e3Byb2plY3RUYXNrcy5zb3J0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYSwgYikgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICghIWEubXNkeW5fZGlzcGxheXNlcXVlbmNlID8gYS5tc2R5bl9kaXNwbGF5c2VxdWVuY2UgOiAwKSAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoISFiLm1zZHluX2Rpc3BsYXlzZXF1ZW5jZSA/IGIubXNkeW5fZGlzcGxheXNlcXVlbmNlIDogMClcclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtvblN1Ym1pdH1cclxuICAgICAgICAgICAgICAgICAgICBvbkNvbXBsZXRlPXtvbkNvbXBsZXRlfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogXCJDb250YWN0c1wiLFxyXG4gICAgICAgICAgICBsYWJlbDogYENvbnRhY3RzICgke2NvbnRhY3RzLmxlbmd0aH0pYCxcclxuICAgICAgICAgICAgc2hvd1doZW46IGNhbkVkaXRQcm9qZWN0cyAmJiBjb250YWN0cy5sZW5ndGggPiAwLFxyXG4gICAgICAgICAgICBjb21wb25lbnRUb1JlbmRlcjogKHByb3BzOiBQcm9qZWN0c0VkaXRDb250ZW50UHJvcHMpID0+IChcclxuICAgICAgICAgICAgICAgIDxQcm9qZWN0c0VkaXRDb250YWN0cyBwcm9qZWN0PXtwcm9wcy5pbml0aWFsUHJvamVjdH0gLz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogXCJOZXR3b3JrIE9yZGVyc1wiLFxyXG4gICAgICAgICAgICBsYWJlbDogYE5ldHdvcmsgT3JkZXJzICgke3JlZ2FyZGluZ05ldHdvcmtPcmRlcnMubGVuZ3RofSlgLFxyXG4gICAgICAgICAgICBzaG93V2hlbjogY2FuRWRpdFByb2plY3RzICYmIHJlZ2FyZGluZ05ldHdvcmtPcmRlcnMubGVuZ3RoID4gMCxcclxuICAgICAgICAgICAgY29tcG9uZW50VG9SZW5kZXI6IChfOiBQcm9qZWN0c0VkaXRDb250ZW50UHJvcHMpID0+IChcclxuICAgICAgICAgICAgICAgIDxQcm9qZWN0c0VkaXROZXR3b3JrT3JkZXJzIG5ldHdvcmtPcmRlcnM9e3JlZ2FyZGluZ05ldHdvcmtPcmRlcnN9IC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiUHJvamVjdCBMb2dzXCIsXHJcbiAgICAgICAgICAgIGxhYmVsOiBgUHJvamVjdCBMb2dzICgke3Byb2plY3RMb2dzLmxlbmd0aH0pYCxcclxuICAgICAgICAgICAgc2hvd1doZW46IGNhbkVkaXRQcm9qZWN0cyAmJiBwcm9qZWN0TG9ncy5sZW5ndGggPiAwLFxyXG4gICAgICAgICAgICBjb21wb25lbnRUb1JlbmRlcjogKF86IFByb2plY3RzRWRpdENvbnRlbnRQcm9wcykgPT4gPFByb2plY3RzRWRpdFByb2plY3RMb2dzIHByb2plY3RMb2dzPXtwcm9qZWN0TG9nc30gLz4sXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgcnVucyBvbiBzdWJtaXQgb2YgdGhlIFByb2plY3QgRWRpdCBNb2RhbCAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQocHJvamVjdFRhc2s6IFByb2plY3RUYXNrRm9yVXBkYXRlKSB7XHJcbiAgICAgICAgaWYgKCFwcm9qZWN0VGFzay5tc2R5bl9wcm9qZWN0dGFza2lkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInByb2plY3RUYXNrLm1zZHluX3Byb2plY3R0YXNraWQgaXMgbnVsbFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZVByb2plY3RUYXNrKHtcclxuICAgICAgICAgICAgICAgIG1zZHluX3Byb2plY3R0YXNraWQ6IHByb2plY3RUYXNrLm1zZHluX3Byb2plY3R0YXNraWQsXHJcbiAgICAgICAgICAgICAgICBfYmlzdGVjaF9hc3NpZ25lZGN1c3RvbWVyY29udGFjdF92YWx1ZTogcHJvamVjdFRhc2suX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgc2V0UHJvamVjdFRhc2tzKChwcmV2Um93cykgPT5cclxuICAgICAgICAgICAgICAgIHByZXZSb3dzLm1hcCgocm93KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJvdy5tc2R5bl9wcm9qZWN0dGFza2lkID09PSBwcm9qZWN0VGFzay5tc2R5bl9wcm9qZWN0dGFza2lkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yb3csXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9iaXN0ZWNoX2Fzc2lnbmVkY3VzdG9tZXJjb250YWN0X3ZhbHVlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdFRhc2suX2Jpc3RlY2hfYXNzaWduZWRjdXN0b21lcmNvbnRhY3RfdmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHJvd1xyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJBZGROb3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQ29udGFjdCBTdWNjZXNzZnVsbHkgQXNzaWduZWQgdG8gVGFzay5cIixcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWRPblJlbGF0aXZlVXJsOiBgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHt3aW5kb3cubG9jYXRpb24uc2VhcmNofWAsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVVudGlsOiBEYXRlSGVscGVyLmFkZFNlY29uZHMobmV3IERhdGUoKSwgMTApLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhPy4oZXJyb3IpO1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciB1cGRhdGluZyBQcm9qZWN0IFRhc2tcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IHJ1bnMgb24gY29tcGxldGUgb2YgdGhlIENvbXBsZXRlIFByb2plY3QgVGFzayBNb2RhbCAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gb25Db21wbGV0ZShwcm9qZWN0VGFzazogUHJvamVjdFRhc2ssIGNvbW1lbnQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVc2VyIG1ldGFkYXRhIGNvbnRhY3RJZCBpcyBudWxsXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZXhlY3V0ZUNsb3NlUHJvamVjdFRhc2socHJvamVjdFRhc2subXNkeW5fcHJvamVjdHRhc2tpZCwgY29tbWVudCk7XHJcbiAgICAgICAgICAgIHNldFByb2plY3RUYXNrcygocHJldlJvd3MpID0+XHJcbiAgICAgICAgICAgICAgICBwcmV2Um93cy5tYXAoKHJvdykgPT5cclxuICAgICAgICAgICAgICAgICAgICByb3cubXNkeW5fcHJvamVjdHRhc2tpZCA9PT0gcHJvamVjdFRhc2subXNkeW5fcHJvamVjdHRhc2tpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHsgLi4ucm93LCBzdGF0dXNjb2RlOiBQcm9qZWN0VGFza1N0YXR1c0NvZGUuQ29tcGxldGVkIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiByb3dcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiQWRkTm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICBub3RpZmljYXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRhc2sgU3VjY2Vzc2Z1bGx5IENvbXBsZXRlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZE9uUmVsYXRpdmVVcmw6IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIGNvbXBsZXRpbmcgUHJvamVjdCBUYXNrXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogRnVuY3Rpb24gdGhhdCBydW5zIG9uIGNoYW5nZSBvZiB0aGUgdGFiICovXHJcbiAgICBjb25zdCBjaGFuZ2VUYWIgPSAoZXZlbnQ6IFNlbGVjdFRhYkV2ZW50PEhUTUxFbGVtZW50PiwgdGFiTmFtZTogVGFiW1wibmFtZVwiXSB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIGlmICghdGFiTmFtZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBBZGQgdGhlIHRhYiBsaXN0IG5hbWUgdG8gdGhlIGhhc2ggaW4gdGhlIHVybFxyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gdGFiTmFtZTtcclxuXHJcbiAgICAgICAgc2V0QWN0aXZlVGFiKHRhYk5hbWUpO1xyXG5cclxuICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgdHlwZTogXCJFZGl0IFByb2plY3QgLSBUYWIgY2hhbmdlXCIsXHJcbiAgICAgICAgICAgIHRhYk5hbWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXNlck1ldGFkYXRhID0gdXNlVXNlck1ldGFkYXRhKCk7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBDYWxsLXRvLUFjdGlvbiBpbmZvXHJcbiAgICBjb25zdCBjYWxsVG9BY3Rpb25JbmZvcm1hdGlvbjogQ2FsbFRvQWN0aW9uSW5mb3JtYXRpb24gfCBudWxsID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzTWFwcGluZ3MgPSB7XHJcbiAgICAgICAgICAgIFtQcm9qZWN0U3RhdHVzQ29kZVtcIlByb2plY3QgT25ib2FyZGluZ1wiXV06IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBQcm9qZWN0IE1hbmFnZXIgaXMgcmV2aWV3aW5nIHlvdXIgcHJvamVjdCBhbmQgd2lsbCBiZSBpbiB0b3VjaCBzaG9ydGx5IHRvIGRpc2N1c3MgbmV4dCBzdGVwc1wiLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogXCIvcHJvamVjdC1zdGF0dXMtcHJvamVjdC1vbmJvYXJkaW5nLnN2Z1wiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBbUHJvamVjdFN0YXR1c0NvZGVbXCJQZW5kaW5nIFN0YXJ0XCJdXToge1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiV29yayBvbiB5b3VyIHByb2plY3QgaGFzIG5vdCB5ZXQgc3RhcnRlZFwiLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogXCIvcHJvamVjdC1zdGF0dXMtcGVuZGluZy1zdGFydC5zdmdcIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlLlByb2Nlc3NpbmddOiB7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJZb3VyIHByb2plY3QgaXMgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBieSB0aGUgQmlzdGVjaCB0ZWFtXCIsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcIi9wcm9qZWN0LXN0YXR1cy1wcm9jZXNzaW5nLnN2Z1wiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBbUHJvamVjdFN0YXR1c0NvZGVbXCJJbiBQcm9ncmVzc1wiXV06IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmsgb24geW91ciBwcm9qZWN0IGlzIGluIHByb2dyZXNzIC0gdXBkYXRlcyB3aWxsIGJlIHByb3ZpZGVkIHRocm91Z2hvdXRcIixcclxuICAgICAgICAgICAgICAgIGljb246IFwiL3Byb2plY3Qtc3RhdHVzLWluLXByb2dyZXNzLnN2Z1wiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBbUHJvamVjdFN0YXR1c0NvZGUuQmxvY2tlZF06IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIllvdXIgcHJvamVjdCBpcyBibG9ja2VkIC0geW91ciBQcm9qZWN0IE1hbmFnZXIgd2lsbCBwcm92aWRlIGFuIHVwZGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogXCIvcHJvamVjdC1zdGF0dXMtYmxvY2tlZC5zdmdcIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiT24gSG9sZFwiXV06IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIllvdXIgcHJvamVjdCBpcyBvbiBob2xkIC0geW91ciBQcm9qZWN0IE1hbmFnZXIgd2lsbCBwcm92aWRlIGFuIHVwZGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogXCIvcHJvamVjdC1zdGF0dXMtb24taG9sZC5zdmdcIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlLkNsb3NlZF06IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIllvdXIgUHJvamVjdCBoYXMgYmVlbiBjb21wbGV0ZWRcIixcclxuICAgICAgICAgICAgICAgIGljb246IFwiL3Byb2plY3Qtc3RhdHVzLWNsb3NlZC5zdmdcIixcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIFtQcm9qZWN0U3RhdHVzQ29kZVtcIkRyYWZ0XCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiQWN0aXZlXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiUHJvamVjdCBjb3B5aW5nXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiQ2FuY2VsbGVkXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiUHJvamVjdCBjb3B5IGZhaWxlZFwiXV06IG51bGwsXHJcbiAgICAgICAgICAgIFtQcm9qZWN0U3RhdHVzQ29kZVtcIlByb2plY3QgaW1wb3J0aW5nXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiUHJvamVjdCBpbXBvcnQgZmFpbGVkXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiUHJvamVjdCBjb252ZXJ0aW5nXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiUHJvamVjdCBjb252ZXJ0IGZhaWxlZFwiXV06IG51bGwsXHJcbiAgICAgICAgICAgIFtQcm9qZWN0U3RhdHVzQ29kZVtcIkluYWN0aXZlXCJdXTogbnVsbCxcclxuICAgICAgICAgICAgW1Byb2plY3RTdGF0dXNDb2RlW1wiUHJvamVjdCBlc3RpbWF0ZXMgY29weSBmYWlsZWRcIl1dOiBudWxsLFxyXG4gICAgICAgICAgICBbUHJvamVjdFN0YXR1c0NvZGVbXCJSZWFkeSB0byBUcmlhZ2VcIl1dOiBudWxsLFxyXG4gICAgICAgICAgICBbUHJvamVjdFN0YXR1c0NvZGVbXCJTaWduZWRcIl1dOiBudWxsLFxyXG4gICAgICAgICAgICBbUHJvamVjdFN0YXR1c0NvZGVbXCJJbiBRdW90ZVwiXV06IG51bGwsXHJcbiAgICAgICAgfSBzYXRpc2ZpZXMgUGFydGlhbDxSZWNvcmQ8UHJvamVjdFN0YXR1c0NvZGUsIHsgZGVzY3JpcHRpb246IHN0cmluZzsgaWNvbjogc3RyaW5nIH0gfCBudWxsPj47XHJcblxyXG4gICAgICAgIGNvbnN0IG1hcHBpbmcgPSBzdGF0dXNNYXBwaW5nc1twcm9wcy5pbml0aWFsUHJvamVjdC5zdGF0dXNjb2RlXTtcclxuXHJcbiAgICAgICAgaWYgKG1hcHBpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBQcm9qZWN0U3RhdHVzQ29kZVtwcm9wcy5pbml0aWFsUHJvamVjdC5zdGF0dXNjb2RlXSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBtYXBwaW5nLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogbWFwcGluZy5pY29uLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW10sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0sIFtwcm9wcy5pbml0aWFsUHJvamVjdF0pO1xyXG5cclxuICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdGhlIHVzZXIgY29udGFjdElkIHRvIGJlIHBvcHVsYXRlZCBidXQgd2FzICcke3VzZXJNZXRhZGF0YS5jb250YWN0SWR9J2ApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcHJvcHMuaW5pdGlhbFByb2plY3QgfHwgIWNhbGxUb0FjdGlvbkluZm9ybWF0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIDxOb3RGb3VuZCB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIHNpbmd1bGFyRW50aXR5TmFtZT1cIlByb2plY3RcIiAvPjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXJyZW50VGFiID0gdGFicy5maW5kKCh0YWIpID0+IHRhYi5uYW1lID09PSBhY3RpdmVUYWIpO1xyXG5cclxuICAgIC8vIFVJIFRlc3QgZnJpZW5kbHkgc2VsZWN0b3JcclxuICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWUgPSBgJHtjdXJyZW50VGFiPy5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkucmVwbGFjZShcIiBcIiwgXCItXCIpfS10YWJsZWA7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8Q2FsbFRvQWN0aW9uQmFzZVBhZ2VcclxuICAgICAgICAgICAgdGl0bGU9e3Byb3BzLmluaXRpYWxQcm9qZWN0Lm1zZHluX3N1YmplY3R9XHJcbiAgICAgICAgICAgIHRhZ3M9e1tcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInByb2plY3QtbnVtYmVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHByb3BzLmluaXRpYWxQcm9qZWN0LmJpc3RlY2hfcHJvamVjdG51bWJlcixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgIGNhbGxUb0FjdGlvbkluZm9ybWF0aW9uPXt7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IGNhbGxUb0FjdGlvbkluZm9ybWF0aW9uIH19XHJcbiAgICAgICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZT17KF9zdWJtaXNzaW9uU3RhdGUpID0+IHt9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwiZWRpdC1wcm9qZWN0XCI+XHJcbiAgICAgICAgICAgICAgICA8VGFiTGlzdCB0YWJzPXt0YWJzfSBhY3RpdmVUYWI9e2FjdGl2ZVRhYn0gb25UYWJDbGljaz17Y2hhbmdlVGFifSAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIiBkYXRhLW5hbWU9e2F0dHJpYnV0ZU5hbWV9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VGFiPy5jb21wb25lbnRUb1JlbmRlcihwcm9wcyl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvQ2FsbFRvQWN0aW9uQmFzZVBhZ2U+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0RhdGEgfSBmcm9tIFwiLi4vLi4vRGVmYXVsdFJvb3RTdGF0ZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0c0VkaXRDb250ZW50IH0gZnJvbSBcIi4vUHJvamVjdHNFZGl0Q29udGVudFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi4vTm90Rm91bmRcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0Jhc2VQYWdlIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCB7IFByb2plY3RUYXNrIH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0VGFza1wiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IFByb2plY3RzIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RzRWRpdEZyb21JZCA9IChwcm9wczogeyBwcm9qZWN0aWQ6IHN0cmluZyB9KSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBkYXRhU2VydmljZSA9IHVzZURhdGFTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBwcm9qZWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUucHJvamVjdHMpO1xyXG4gICAgY29uc3QgW3NhdmVLZXksIHNldFNhdmVLZXldID0gdXNlU3RhdGUoMSk7XHJcbiAgICBjb25zdCBbcmV0cmlldmVkUHJvamVjdCwgc2V0UmV0cmlldmVkUHJvamVjdF0gPSB1c2VTdGF0ZTxcclxuICAgICAgICBMb2FkaW5nRGF0YTxQcm9qZWN0PiB8IHsgbG9hZGluZ1N0YXR1czogXCJlcnJvcmVkXCI7IGVycm9yOiBFcnJvciB9XHJcbiAgICA+KHtcclxuICAgICAgICBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldFJldHJpZXZlZFByb2plY3QoeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSk7XHJcbiAgICB9LCBbcHJvamVjdHMsIHNhdmVLZXldKTtcclxuXHJcbiAgICBjb25zdCBpbml0aWFsUHJvamVjdDogTG9hZGluZ0RhdGE8UHJvamVjdD4gPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICAvLyBJZiB0aGUgcmV0cmlldmFsIGhhcyBub3QgeWV0IGJlZW4gc3RhcnRlZFxyXG4gICAgICAgIGlmIChyZXRyaWV2ZWRQcm9qZWN0LmxvYWRpbmdTdGF0dXMgPT09IFwibm90LXN0YXJ0ZWRcIikge1xyXG4gICAgICAgICAgICBzZXRSZXRyaWV2ZWRQcm9qZWN0KHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgUHJvamVjdCBzcGVjaWZpY2FsbHkgKGUuZy4gdGhlIFByb2plY3QgbWF5IGhhdmUgYmVlbiByZWNlbnRseSB1cGRhdGVkKVxyXG4gICAgICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAgICAgLnJldHJpZXZlUHJvamVjdChwcm9wcy5wcm9qZWN0aWQpXHJcbiAgICAgICAgICAgICAgICAudGhlbigocHJvamVjdCkgPT4gc2V0UmV0cmlldmVkUHJvamVjdCh7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHByb2plY3QgfSkpXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFJldHJpZXZlZFByb2plY3QoeyBsb2FkaW5nU3RhdHVzOiBcImVycm9yZWRcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXRyaWV2ZWRQcm9qZWN0LmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogcmV0cmlldmVkUHJvamVjdC5kYXRhIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJvamVjdHMubG9hZGluZ1N0YXR1cyAhPT0gXCJsb2FkZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdQcm9qZWN0ID0gcHJvamVjdHMuZGF0YS5maW5kKChwcm9qZWN0KSA9PiBwcm9qZWN0Lm1zZHluX3Byb2plY3RpZCA9PT0gcHJvcHMucHJvamVjdGlkKTtcclxuXHJcbiAgICAgICAgLy8gSWYgYSBtYXRjaGluZyBhY3RpdmUgUHJvamVjdCB3YXMgZm91bmRcclxuICAgICAgICBpZiAobWF0Y2hpbmdQcm9qZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbWF0Y2hpbmdQcm9qZWN0LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfTtcclxuICAgIH0sIFtwcm9qZWN0cywgcmV0cmlldmVkUHJvamVjdCwgZGF0YVNlcnZpY2UsIHByb3BzLnByb2plY3RpZCwgZGlzcGF0Y2hdKTtcclxuXHJcbiAgICBpZiAocmV0cmlldmVkUHJvamVjdC5sb2FkaW5nU3RhdHVzID09PSBcImVycm9yZWRcIikge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgdHlwZT1cInJlY29yZC1ub3QtZm91bmRcIiBzaW5ndWxhckVudGl0eU5hbWU9XCJQcm9qZWN0XCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluaXRpYWxQcm9qZWN0LmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8TG9hZGluZ0Jhc2VQYWdlIC8+XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgdGFzayBoYXMgYW55IHZhbGlkIGNoaWxkIHRhc2tzXHJcbiAgICAgKiBAcGFyYW0gdGFza0lkIFRoZSB0YXNrIElEIHRvIGNoZWNrIGZvciBjaGlsZHJlblxyXG4gICAgICogQHBhcmFtIHByb2plY3REYXRhIFRoZSBwcm9qZWN0IGRhdGEgdG8gc2VhcmNoIGZvciBjaGlsZHJlblxyXG4gICAgICogQHJldHVybnMgV2hldGhlciB0aGUgdGFzayBoYXMgYW55IHZhbGlkIGNoaWxkIHRhc2tzXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIGhhc1ZhbGlkQ2hpbGRUYXNrcyh0YXNrSWQ6IHN0cmluZywgcHJvamVjdERhdGE6IFByb2plY3RUYXNrW10pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gcHJvamVjdERhdGEuc29tZSgodGFzaykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFzay5fbXNkeW5fcGFyZW50dGFza192YWx1ZSA9PT0gdGFza0lkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbmNsdWRlSW5TdGF0ZW1lbnRPZldvcmtzID0gdGFzay5iaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3MgPT09IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhc3NpZ25lZFRvID0gdGFzay5iaXN0ZWNoX2Fzc2lnbmVkdG8gIT09IG51bGw7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgdGFzayBpdHNlbGYgaXMgdmFsaWQgb3IgaWYgaXQgaGFzIHZhbGlkIGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKGluY2x1ZGVJblN0YXRlbWVudE9mV29ya3MgJiYgYXNzaWduZWRUbykgfHwgaGFzVmFsaWRDaGlsZFRhc2tzKHRhc2subXNkeW5fcHJvamVjdHRhc2tpZCwgcHJvamVjdERhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGaWx0ZXIgdGhlIHByb2plY3QgdGFza3MgdG8gb25seSBpbmNsdWRlIHRob3NlIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBTdGF0ZW1lbnQgb2YgV29ya3MgYW5kIGhhdmUgYW4gYXNzaWduZWQgdXNlclxyXG4gICAgLy8gQWxzbyBpbmNsdWRlIHRoZSBwYXJlbnRzIG9mIGFueSBzdWNoIHRhc2tzXHJcbiAgICBjb25zdCBwcm9qZWN0VGFza3MgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGNvbnN0IHByb2plY3REYXRhID0gaW5pdGlhbFByb2plY3QuZGF0YS5tc2R5bl9tc2R5bl9wcm9qZWN0X21zZHluX3Byb2plY3R0YXNrX3Byb2plY3Q7XHJcblxyXG4gICAgICAgIGlmICghcHJvamVjdERhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHByb2plY3REYXRhLmZpbHRlcigodGFzaykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmNsdWRlSW5TdGF0ZW1lbnRPZldvcmtzID0gdGFzay5iaXN0ZWNoX2luY2x1ZGVpbnN0YXRlbWVudG9md29ya3MgPT09IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGFzc2lnbmVkVG8gPSB0YXNrLmJpc3RlY2hfYXNzaWduZWR0byAhPT0gbnVsbDtcclxuICAgIFxyXG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgdGFzayBoYXMgYW55IHZhbGlkIGNoaWxkIHRhc2tzIHVzaW5nIHRoZSByZWN1cnNpdmUgZnVuY3Rpb25cclxuICAgICAgICAgICAgY29uc3QgaGFzVmFsaWRDaGlsZHJlbiA9IGhhc1ZhbGlkQ2hpbGRUYXNrcyh0YXNrLm1zZHluX3Byb2plY3R0YXNraWQsIHByb2plY3REYXRhKTtcclxuICAgIFxyXG4gICAgICAgICAgICAvLyBJbmNsdWRlIHRoZSB0YXNrIGlmIGl0J3MgYXNzaWduZWQgYW5kIGluY2x1ZGVkLCBvciBpZiBpdCBoYXMgdmFsaWQgY2hpbGQgdGFza3NcclxuICAgICAgICAgICAgcmV0dXJuIChpbmNsdWRlSW5TdGF0ZW1lbnRPZldvcmtzICYmIGFzc2lnbmVkVG8pIHx8IGhhc1ZhbGlkQ2hpbGRyZW47XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KSgpO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPFByb2plY3RzRWRpdENvbnRlbnRcclxuICAgICAgICAgICAgaW5pdGlhbFByb2plY3Q9e2luaXRpYWxQcm9qZWN0LmRhdGF9XHJcbiAgICAgICAgICAgIHByb2plY3RUYXNrcz17cHJvamVjdFRhc2tzfVxyXG4gICAgICAgICAgICBvblNhdmU9eygpID0+IHNldFNhdmVLZXkoc2F2ZUtleSArIDEpfVxyXG4gICAgICAgIC8+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9Ob3RGb3VuZFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0c0VkaXRGcm9tSWQgfSBmcm9tIFwiLi9Qcm9qZWN0c0VkaXRGcm9tSWRcIjtcclxuXHJcbi8qKiBXcmFwcGVyIGZvciB0aGUgRWRpdCBQcm9qZWN0IHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RzRWRpdCA9ICgpID0+IHtcclxuICAgIGNvbnN0IFtzZWFyY2hQYXJhbXNdID0gdXNlU2VhcmNoUGFyYW1zKCk7XHJcblxyXG4gICAgY29uc3QgSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FID0gXCJwcm9qZWN0SWRcIjtcclxuICAgIGNvbnN0IHByb2plY3RJZCA9IHNlYXJjaFBhcmFtcy5nZXQoSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FKTtcclxuXHJcbiAgICBpZiAoIXByb2plY3RJZCkge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgc2luZ3VsYXJFbnRpdHlOYW1lPVwiUHJvamVjdFwiIHR5cGU9XCJyZWNvcmQtbm90LWZvdW5kXCIgLz47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDxQcm9qZWN0c0VkaXRGcm9tSWQgcHJvamVjdGlkPXtwcm9qZWN0SWR9IC8+O1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZ01pdGlnYXRpb25SZXNwb25zZSB9IGZyb20gXCIuLi8uLi9FbnVtcy9Qcm9qZWN0TG9nTWl0aWdhdGlvblJlc3BvbnNlXCI7XHJcbmltcG9ydCB7IFByb2plY3RMb2dTZXZlcml0eSB9IGZyb20gXCIuLi8uLi9FbnVtcy9Qcm9qZWN0TG9nU2V2ZXJpdHlcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZ1N0YXR1c0NvZGUgfSBmcm9tIFwiLi4vLi4vRW51bXMvUHJvamVjdExvZ1N0YXR1c0NvZGVcIjtcclxuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCJAZmx1ZW50dWkvcmVhY3QtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBTdHJpbmdGaWVsZCB9IGZyb20gXCIuLi8uLi9Db21wb25lbnRzL0ZpZWxkcy9TdHJpbmdGaWVsZFwiO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSBcIi4uLy4uL0hlbHBlcnMvRGF0ZUhlbHBlclwiO1xyXG5pbXBvcnQgeyBDYWxsVG9BY3Rpb25CYXNlUGFnZSB9IGZyb20gXCIuLi9DYWxsVG9BY3Rpb25CYXNlUGFnZVwiO1xyXG5pbXBvcnQgeyBMb2FkaW5nRGF0YSB9IGZyb20gXCIuLi8uLi9EZWZhdWx0Um9vdFN0YXRlXCI7XHJcbmltcG9ydCB7IENhbGxUb0FjdGlvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uLy4uL1R5cGVzL0NhbGxUb0FjdGlvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IE11bHRpTGluZVN0cmluZ0ZpZWxkIH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvRmllbGRzL011bHRpTGluZVN0cmluZ0ZpZWxkXCI7XHJcbmltcG9ydCB7IFRpbWVsaW5lIH0gZnJvbSBcIi4uLy4uL0NvbXBvbmVudHMvVGltZWxpbmVcIjtcclxuaW1wb3J0IHsgUHJvamVjdExvZyB9IGZyb20gXCIuLi8uLi9Nb2RlbHMvUHJvamVjdExvZ1wiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuLi8uLi9Ib29rcy91c2VBcHBJbnNpZ2h0c1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7XHJcbiAgICBQb3J0YWxDb21tZW50Rm9yUmV0cmlldmFsLFxyXG4gICAgUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX1BST0pFQ1RfTE9HX01FVEFEQVRBLFxyXG59IGZyb20gXCIuLi8uLi9Nb2RlbHMvUG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFwiO1xyXG5pbXBvcnQgeyBDUkVBVEVfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9MT0dfTUVUQURBVEEgfSBmcm9tIFwiLi4vLi4vTW9kZWxzL1BvcnRhbENvbW1lbnRGb3JDcmVhdGVcIjtcclxuXHJcbi8qKlxyXG4gKiBQYWdlIGRpc3BsYXlpbmcgcHJvamVjdCBsb2cgZGV0YWlsc1xyXG4gKiBAcGFyYW0gcHJvamVjdExvZyAtIFByb2plY3QgTG9nIElEIChiaXN0ZWNoX3Byb2plY3Rsb2dzaWQpXHJcbiAqIEBwYXJhbSBwcm9qZWN0aWQgLSBQcm9qZWN0IElEIChtc2R5bl9wcm9qZWN0aWQpXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgUHJvamVjdExvZ1ZpZXdDb250ZW50OiBSZWFjdC5GQzx7IHByb2plY3RMb2c6IFByb2plY3RMb2c7IHByb2plY3Q/OiBQcm9qZWN0IH0+ID0gKHtcclxuICAgIHByb2plY3RMb2csXHJcbiAgICBwcm9qZWN0LFxyXG59KSA9PiB7XHJcbiAgICBjb25zdCB7IHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgIGNvbnN0IFtwb3J0YWxDb21tZW50cywgc2V0UG9ydGFsQ29tbWVudHNdID0gdXNlU3RhdGU8UG9ydGFsQ29tbWVudEZvclJldHJpZXZhbFtdPihcclxuICAgICAgICBwcm9qZWN0TG9nLmJpc3RlY2hfcHJvamVjdGxvZ3NfYWR4X3BvcnRhbGNvbW1lbnRzID8/IFtdXHJcbiAgICApO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY2FsbCB0byBhY3Rpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBQcm9qZWN0IExvZy5cclxuICAgICAqIEByZXR1cm5zIFRoZSBjYWxsIHRvIGFjdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIFByb2plY3QgTG9nLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbigpOiBMb2FkaW5nRGF0YTxDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbj4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXR1c01hcHBpbmdzID0ge1xyXG4gICAgICAgICAgICBbUHJvamVjdExvZ1N0YXR1c0NvZGUuQWN0aXZlXToge1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhpcyBQcm9qZWN0IExvZyBpcyBpbiBwcm9ncmVzcy5cIixcclxuICAgICAgICAgICAgICAgIGljb246IFwiL3Byb2plY3Qtc3RhdHVzLXByb2plY3Qtb25ib2FyZGluZy5zdmdcIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgW1Byb2plY3RMb2dTdGF0dXNDb2RlLkluYWN0aXZlXToge1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhpcyBQcm9qZWN0IExvZyBoYXMgYmVlbiBDb21wbGV0ZWQuXCIsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcIi9wcm9qZWN0LXN0YXR1cy1ibG9ja2VkLnN2Z1wiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IG1hcHBpbmcgPSBzdGF0dXNNYXBwaW5nc1twcm9qZWN0TG9nIS5zdGF0dXNjb2RlIV07XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBwcm9qZWN0TG9nLnN0YXR1c2NvZGUgPT09IFByb2plY3RMb2dTdGF0dXNDb2RlLkFjdGl2ZSA/IFwiSW4gUHJvZ3Jlc3NcIiA6IFwiQ29tcGxldGVkXCIsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogbWFwcGluZy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgIGljb246IG1hcHBpbmcuaWNvbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgICAgPENhbGxUb0FjdGlvbkJhc2VQYWdlXHJcbiAgICAgICAgICAgICAgICB0aXRsZT17cHJvamVjdExvZy5iaXN0ZWNoX25hbWUgPz8gXCJcIn1cclxuICAgICAgICAgICAgICAgIHRhZ3M9e1tdfVxyXG4gICAgICAgICAgICAgICAgY2FsbFRvQWN0aW9uSW5mb3JtYXRpb249e2dldENhbGxUb0FjdGlvbkluZm9ybWF0aW9uKCl9XHJcbiAgICAgICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGU9eygpID0+IHt9fVxyXG4gICAgICAgICAgICAgICAgcGFyZW50UGFnZVJlZmVyZW5jZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGVkaXRJZE5hbWU6IFwicHJvamVjdElkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnVsbFBhdGg6IGAvcHJvamVjdHMvZWRpdGAsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFnZUlkOiBwcm9qZWN0Py5tc2R5bl9wcm9qZWN0aWQgPz8gXCJcIixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtwcm9qZWN0TG9nICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlbmVyYWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiaGVhZGluZ1wiPkluZm9ybWF0aW9uPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RyaW5nRmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNyZWF0ZWRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtEYXRlSGVscGVyLnRvRGF0ZVN0cmluZyhwcm9qZWN0TG9nLmNyZWF0ZWRvbiEpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlNldmVyaXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImJpc3RlY2hfc2V2ZXJpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17UHJvamVjdExvZ1NldmVyaXR5W3Byb2plY3RMb2cuYmlzdGVjaF9zZXZlcml0eSFdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZEdyb3VwPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbElucHV0UHJvcHM9e3sgZGlzYWJsZWQ6IHRydWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIk1pdGlnYXRpb24gUmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYmlzdGVjaF9taXRpZ2F0aW9ucmVzcG9uc2VvcHRpb25zZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0TG9nTWl0aWdhdGlvblJlc3BvbnNlW3Byb2plY3RMb2cuYmlzdGVjaF9taXRpZ2F0aW9ucmVzcG9uc2VvcHRpb25zZXQhXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkR3JvdXA9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsSW5wdXRQcm9wcz17eyBkaXNhYmxlZDogdHJ1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE11bHRpTGluZVN0cmluZ0ZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJJbXBhY3QgRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiSW1wYWN0IERldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cHJvamVjdExvZy5iaXN0ZWNoX3VwZGF0ZWRldGFpbHMhfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGV4dEFyZWFQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBtaW5IZWlnaHQ6IFwiOHZoXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNdWx0aUxpbmVTdHJpbmdGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiVXBkYXRlIERldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlVwZGF0ZSBEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb2plY3RMb2cuYmlzdGVjaF9pbXBhY3QhfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGV4dEFyZWFQcm9wcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBtaW5IZWlnaHQ6IFwiOHZoXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvbi1hbmQtdGltZWxpbmUgbWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uIGdlbmVyYWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJoZWFkaW5nXCI+RGVzY3JpcHRpb248L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17eyB3b3JkQnJlYWs6IFwiYnJlYWstd29yZFwiIH19Pntwcm9qZWN0TG9nLmJpc3RlY2hfZGVzY3JpcHRpb259PC9UZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRpbWVsaW5lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEVudGl0eT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNZXRhZGF0YTogQ1JFQVRFX1BPUlRBTF9DT01NRU5UX1BST0pFQ1RfTE9HX01FVEFEQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZU1ldGFkYXRhOiBSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9MT0dfTUVUQURBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWNrZXROdW1iZXI9e3Byb2plY3RMb2cuYmlzdGVjaF9wcm9qZWN0bG9nc2lkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbENvbW1lbnRzPXtwb3J0YWxDb21tZW50c31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0YWxFbWFpbHM9e3Byb2plY3RMb2cuYmlzdGVjaF9wcm9qZWN0bG9nc19iaXN0ZWNoX3BvcnRhbGVtYWlscyA/PyBbXX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWpvckluY2lkZW50VXBkYXRlcz17W119XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UG9ydGFsQ29tbWVudHM9e3NldFBvcnRhbENvbW1lbnRzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlJZD17cHJvamVjdExvZy5iaXN0ZWNoX3Byb2plY3Rsb2dzaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tQb3J0YWxDb21tZW50U3VibWlzc2lvbj17KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkVkaXQgUHJvamVjdCBMb2cgLSBQb3J0YWwgQ29tbWVudCBzdWJtaXR0ZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RMb2dJZDogcHJvamVjdExvZy5iaXN0ZWNoX3Byb2plY3Rsb2dzaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrUG9ydGFsQ29tbWVudENyZWF0ZWRTdWNjZXNzZnVsbHk9eyhwb3J0YWxDb21tZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiRWRpdCBQcm9qZWN0IExvZyAtIFBvcnRhbCBDb21tZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0TG9nSWQ6IHByb2plY3RMb2cuYmlzdGVjaF9wcm9qZWN0bG9nc2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlJZDogcG9ydGFsQ29tbWVudC5hY3Rpdml0eWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9DYWxsVG9BY3Rpb25CYXNlUGFnZT5cclxuICAgICAgICA8Lz5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0XCI7XHJcbmltcG9ydCB7IGZyb21Mb2FkaW5nRGF0YSB9IGZyb20gXCIuLi8uLi9IZWxwZXJzL2Zyb21Mb2FkaW5nRGF0YVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0TG9nIH0gZnJvbSBcIi4uLy4uL01vZGVscy9Qcm9qZWN0TG9nXCI7XHJcbmltcG9ydCB7IFByb2plY3RMb2dWaWV3Q29udGVudCB9IGZyb20gXCIuL1Byb2plY3RMb2dWaWV3Q29udGVudFwiO1xyXG5pbXBvcnQgeyBMb2FkaW5nQmFzZVBhZ2UgfSBmcm9tIFwiLi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IHsgc3VwcGxlbWVudGFsRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuLyoqIFdyYXBwZXIgZm9yIHRoZSBFZGl0IFByb2plY3QgTG9nIHBhZ2UgKi9cclxuZXhwb3J0IGNvbnN0IFByb2plY3RMb2dWaWV3RnJvbUlkOiBSZWFjdC5GQzx7IHByb2plY3RMb2dJZDogc3RyaW5nIHwgdW5kZWZpbmVkIH0+ID0gKHsgcHJvamVjdExvZ0lkIH0pID0+IHtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gc3VwcGxlbWVudGFsRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIGNvbnN0IHByb2plY3RzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5wcm9qZWN0cyk7XHJcbiAgICBjb25zdCBbcHJvamVjdExvZywgc2V0UHJvamVjdExvZ10gPSB1c2VTdGF0ZTxQcm9qZWN0TG9nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cclxuICAgIGNvbnN0IHByb2plY3Q6IFByb2plY3QgfCB1bmRlZmluZWQgPSBmcm9tTG9hZGluZ0RhdGEocHJvamVjdHMsIChwKSA9PlxyXG4gICAgICAgIHAuZmluZCgocHJvamVjdCkgPT5cclxuICAgICAgICAgICAgcHJvamVjdFtcImJpc3RlY2hfYmlzdGVjaF9wcm9qZWN0bG9nc19Qcm9qZWN0X21zZHluX3Byb2plY3RcIl0/LnNvbWUoXHJcbiAgICAgICAgICAgICAgICAocHJvamVjdExvZykgPT4gcHJvamVjdExvZy5iaXN0ZWNoX3Byb2plY3Rsb2dzaWQgPT09IHByb2plY3RMb2dJZFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBVc2VkIHRvIGdldCB0aGUgbmVzdGVkIHRpbWVsaW5lIGRldGFpbHMuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmICghcHJvamVjdExvZ0lkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXRyaWV2ZVByb2plY3RMb2cocHJvamVjdExvZ0lkKVxyXG4gICAgICAgICAgICAudGhlbigocmV0cmlldmVkTG9nOiBQcm9qZWN0TG9nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZXRQcm9qZWN0TG9nKHJldHJpZXZlZExvZyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbcHJvamVjdExvZ0lkXSk7XHJcblxyXG4gICAgaWYgKCFwcm9qZWN0TG9nKSB7XHJcbiAgICAgICAgcmV0dXJuIDxMb2FkaW5nQmFzZVBhZ2UgLz47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDxQcm9qZWN0TG9nVmlld0NvbnRlbnQgcHJvamVjdExvZz17cHJvamVjdExvZ30gcHJvamVjdD17cHJvamVjdH0gLz47XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSBcIi4uL05vdEZvdW5kXCI7XHJcbmltcG9ydCB7IFByb2plY3RMb2dWaWV3RnJvbUlkIH0gZnJvbSBcIi4vUHJvamVjdExvZ1ZpZXdGcm9tSWRcIjtcclxuXHJcbi8qKiBXcmFwcGVyIGZvciB0aGUgRWRpdCBQcm9qZWN0IExvZyBwYWdlICovXHJcbmV4cG9ydCBjb25zdCBQcm9qZWN0TG9nVmlldyA9ICgpID0+IHtcclxuICAgIGNvbnN0IFtzZWFyY2hQYXJhbXNdID0gdXNlU2VhcmNoUGFyYW1zKCk7XHJcblxyXG4gICAgY29uc3QgSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FID0gXCJwcm9qZWN0TG9nSWRcIjtcclxuICAgIGNvbnN0IHByb2plY3RMb2dJZCA9IHNlYXJjaFBhcmFtcy5nZXQoSURfUVVFUllfU1RSSU5HX1BBUkFNRVRFUl9OQU1FKTtcclxuXHJcbiAgICBpZiAoIXByb2plY3RMb2dJZCkge1xyXG4gICAgICAgIHJldHVybiA8Tm90Rm91bmQgc2luZ3VsYXJFbnRpdHlOYW1lPVwiUHJvamVjdCBMb2dcIiB0eXBlPVwicmVjb3JkLW5vdC1mb3VuZFwiIC8+O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8UHJvamVjdExvZ1ZpZXdGcm9tSWQgcHJvamVjdExvZ0lkPXtwcm9qZWN0TG9nSWR9IC8+O1xyXG59O1xyXG4iLCJpbXBvcnQgeyBSb3V0ZXMsIFJvdXRlLCB1c2VMb2NhdGlvbiB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IENhc2VzIH0gZnJvbSBcIi4uL1BhZ2VzL0Nhc2VzXCI7XHJcbmltcG9ydCB7IENhc2VzQ2xvc2VkIH0gZnJvbSBcIi4uL1BhZ2VzL0Nhc2VzQ2xvc2VkXCI7XHJcbmltcG9ydCB7IENhc2VzQ3JlYXRlIH0gZnJvbSBcIi4uL1BhZ2VzL0Nhc2VzQ3JlYXRlXCI7XHJcbmltcG9ydCB7IENvbnRhY3RzIH0gZnJvbSBcIi4uL1BhZ2VzL0NvbnRhY3RzXCI7XHJcbmltcG9ydCB7IENhc2VzTWFqb3JJbmNpZGVudHMgfSBmcm9tIFwiLi4vUGFnZXMvQ2FzZXNNYWpvckluY2lkZW50c1wiO1xyXG5pbXBvcnQgeyBDb250YWN0c0NyZWF0ZSB9IGZyb20gXCIuLi9QYWdlcy9Db250YWN0c0NyZWF0ZVwiO1xyXG5pbXBvcnQgeyBDb250YWN0c0VkaXQgfSBmcm9tIFwiLi4vUGFnZXMvQ29udGFjdHNFZGl0L0NvbnRhY3RzRWRpdFwiO1xyXG5pbXBvcnQgeyBIb21lIH0gZnJvbSBcIi4uL1BhZ2VzL0hvbWVcIjtcclxuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gXCIuLi9QYWdlcy9Qcm9maWxlXCI7XHJcbmltcG9ydCB7IFRlcm1zQW5kQ29uZGl0aW9ucyB9IGZyb20gXCIuLi9QYWdlcy9UZXJtc0FuZENvbmRpdGlvbnNcIjtcclxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi4vUGFnZXMvTm90Rm91bmRcIjtcclxuaW1wb3J0IHsgRGV2TW9kZUxpbWl0YXRpb24gfSBmcm9tIFwiLi4vUGFnZXMvRGV2TW9kZUxpbWl0YXRpb25cIjtcclxuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBCYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0Jhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgRm9yYmlkZGVuIH0gZnJvbSBcIi4uL1BhZ2VzL0ZvcmJpZGRlblwiO1xyXG5pbXBvcnQgeyBVc2VyTWV0YWRhdGEsIHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9EaWFsb2dcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuLi9Db21wb25lbnRzL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgQ2FzZXNFZGl0IH0gZnJvbSBcIi4uL1BhZ2VzL0Nhc2VzRWRpdC9DYXNlc0VkaXRcIjtcclxuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXIgfSBmcm9tIFwiLi4vQ29tcG9uZW50cy9Mb2FkaW5nU3Bpbm5lclwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzQ3VzdG9tUHJvcGVydGllcyB9IGZyb20gXCIuL3VzZUFwcEluc2lnaHRzQ3VzdG9tUHJvcGVydGllc1wiO1xyXG5pbXBvcnQgeyBPcmRlcnMgfSBmcm9tIFwiLi4vUGFnZXMvT3JkZXJzXCI7XHJcbmltcG9ydCB7IE9yZGVyc0VkaXQgfSBmcm9tIFwiLi4vUGFnZXMvT3JkZXJzRWRpdC9PcmRlcnNFZGl0XCI7XHJcbmltcG9ydCB7IE9yZGVyUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL09yZGVyUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ29udGFjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBDYXNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0Nhc2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgdXNlckhhc1BvcnRhbEFjY2VzcyB9IGZyb20gXCIuLi9IZWxwZXJzL3VzZXJIYXNQb3J0YWxBY2Nlc3NcIjtcclxuaW1wb3J0IHsgTmV0d29ya09yZGVyc0VkaXQgfSBmcm9tIFwiLi4vUGFnZXMvTmV0d29ya09yZGVyc0VkaXQvTmV0d29ya09yZGVyc0VkaXRcIjtcclxuaW1wb3J0IHsgSW52b2ljZVBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9JbnZvaWNlUGVybWlzc2lvbkxldmVsXCI7XHJcbmltcG9ydCB7IEludm9pY2VzIH0gZnJvbSBcIi4uL1BhZ2VzL0ludm9pY2VzXCI7XHJcbmltcG9ydCB7IEludm9pY2VzVmlldyB9IGZyb20gXCIuLi9QYWdlcy9JbnZvaWNlc1ZpZXcvSW52b2ljZXNWaWV3XCI7XHJcbmltcG9ydCB7IFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvUHJvamVjdFBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0cyB9IGZyb20gXCIuLi9QYWdlcy9Qcm9qZWN0c1wiO1xyXG5pbXBvcnQgeyBQcm9qZWN0c0VkaXQgfSBmcm9tIFwiLi4vUGFnZXMvUHJvamVjdHNFZGl0L1Byb2plY3RzRWRpdFwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0TG9nVmlldyB9IGZyb20gXCIuLi9QYWdlcy9Qcm9qZWN0TG9nVmlldy9Qcm9qZWN0TG9nVmlld1wiO1xyXG5cclxuLyoqIERlc2NyaWJlcyBhIHBhZ2Ugb24gdGhlIFBvcnRhbCAqL1xyXG5leHBvcnQgdHlwZSBQYWdlSW5mbyA9IHtcclxuICAgIC8qKiBSZWxhdGl2ZSBwYXRoIG5hbWUgb2YgdGhlIHBhZ2UgZS5nLiBcIi9jb250YWN0c1wiICovXHJcbiAgICBwYXRoOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFVzZXItZmFjaW5nIG5hbWUgb2YgdGhlIHBhZ2UgKi9cclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY3VycmVudCBVc2VyIFJvbGUgZm9yIHRoZSByZWdhcmRpbmcgcGFnZS5cclxuICAgICAqIEZvciBleGFtcGxlOiBPbiB0aGUgQ2FzZXMgcGFnZSwgdGhlIHVzZXIgc2hvdWxkIGJlIGluZm9ybWVkIG9mIHRoZWlyIENhc2UgJ1Blcm1pc3Npb24gTGV2ZWwnLCBidXQgZm9yXHJcbiAgICAgKiBDYXNlIENyZWF0aW9uLCBpdCByZWdhcmRzIHRoZWlyIEJhc2UgJ1Blcm1pc3Npb24gTGV2ZWwnLlxyXG4gICAgICogTk9URTogVGhpcyBjYW4gYmUgdXNlZCBpbiB0aGUgPGM+Rm9yYmlkZGVuPC9jPiBDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U/OiAodXNlck1ldGFEYXRhOiBVc2VyTWV0YWRhdGEpID0+IEpTWC5FbGVtZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgdXNlciBpcyBwZXJtaXR0ZWQgdG8gbmF2aWdhdGUgdG8gdGhlIHBhZ2UuXHJcbiAgICAgKiBOT1RFOiBUaGlzIG1heSBkZXRlcm1pbmUgd2hldGhlciBhIGxpbmsgdG8gdGhlIHBhZ2UgaXMgc2hvd24sIGFuZCB3aGV0aGVyIGFuXHJcbiAgICAgKiBlcnJvciBwYWdlIGlzIHNob3duIHdoZW4gbmF2aWdhdGVkIHRvLlxyXG4gICAgICovXHJcbiAgICBpc1Blcm1pdHRlZDogKHVzZXJNZXRhZGF0YTogVXNlck1ldGFkYXRhLCBzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgICAvKiogRGVzY3JpcHRpb24gb2YgdGhlIHR5cGUgb2YgdGhlIHBhZ2UsIGFuZCB0aGUgY29udGVudCBvZiB0aGUgcGFnZSAoaWYgaW50ZXJuYWwpICovXHJcbiAgICBwYWdlQ29uZmlnOiB7IHR5cGU6IFwiZXh0ZXJuYWxcIiB9IHwgeyB0eXBlOiBcImludGVybmFsXCI7IGVsZW1lbnQ6IEpTWC5FbGVtZW50IH07XHJcblxyXG4gICAgLyoqIENvbmZpZ3VyYXRpb24gb2YgdGhlIHBhZ2UgaW4gdGhlIG5hdmlnYXRpb24gcGFuZWwgKi9cclxuICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzpcclxuICAgICAgICB8IHtcclxuICAgICAgICAgICAgICBpc1Zpc2libGU6IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIHwge1xyXG4gICAgICAgICAgICAgIGlzVmlzaWJsZTogdHJ1ZTtcclxuICAgICAgICAgICAgICBpY29uUGF0aDogc3RyaW5nO1xyXG4gICAgICAgICAgfTtcclxufTtcclxuXHJcbi8qKiBMaXN0IG9mIGFsbCB0aGUgcGFnZXMgb2YgdGhlIHBvcnRhbCAqL1xyXG5leHBvcnQgY29uc3QgUEFHRVMgPSB7XHJcbiAgICBIb21lOiB7XHJcbiAgICAgICAgcGF0aDogXCIvXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiSG9tZVwiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8SG9tZSAvPiB9LFxyXG4gICAgICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U6ICh7IGJhc2VQZXJtaXNzaW9uTGV2ZWwgfSkgPT5cclxuICAgICAgICAgICAgYmFzZVBlcm1pc3Npb25MZXZlbCA/IChcclxuICAgICAgICAgICAgICAgIGdldEZvcmJpZGRlbkVycm9yTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICBcIllvdXIgY3VycmVudCAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIEJhc2VQZXJtaXNzaW9uTGV2ZWxbYmFzZVBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh1c2VyTWV0YWRhdGEsIF9zdGF0ZSkgPT4gdXNlckhhc1BvcnRhbEFjY2Vzcyh1c2VyTWV0YWRhdGEpLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IHRydWUsIGljb25QYXRoOiBcIi9uYXZpZ2F0aW9uLWljb24taG9tZS5zdmdcIiB9LFxyXG4gICAgfSxcclxuICAgIENhc2VzOiB7XHJcbiAgICAgICAgcGF0aDogXCIvY2FzZXNcIixcclxuICAgICAgICB0aXRsZTogXCJDYXNlc1wiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8Q2FzZXMgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgQ2FzZSAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIENhc2VQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgfSwgX3N0YXRlKSA9PlxyXG4gICAgICAgICAgICBCb29sZWFuKHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgJiYgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCAhPT0gQ2FzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSksXHJcbiAgICAgICAgbmF2aWdhdGlvblBhbmVsQ29uZmlnOiB7IGlzVmlzaWJsZTogdHJ1ZSwgaWNvblBhdGg6IFwiL25hdmlnYXRpb24taWNvbi1jYXNlLW1hbmFnZW1lbnQuc3ZnXCIgfSxcclxuICAgIH0sXHJcbiAgICBDcmVhdGVDYXNlOiB7XHJcbiAgICAgICAgcGF0aDogXCIvY2FzZXMvY3JlYXRlXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiQ3JlYXRlIGEgQ2FzZVwiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8Q2FzZXNDcmVhdGUgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgQ2FzZSAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIENhc2VQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgfSwgX3N0YXRlKSA9PlxyXG4gICAgICAgICAgICBCb29sZWFuKFxyXG4gICAgICAgICAgICAgICAgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIChwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsID09PSBDYXNlUGVybWlzc2lvbkxldmVsW1wiT3duZWQgQ2FzZXNcIl0gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCA9PT0gQ2FzZVBlcm1pc3Npb25MZXZlbFtcIkFsbCBDYXNlc1wiXSlcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiBmYWxzZSB9LFxyXG4gICAgfSxcclxuICAgIEVkaXRDYXNlOiB7XHJcbiAgICAgICAgcGF0aDogXCIvY2FzZXMvZWRpdFwiLFxyXG4gICAgICAgIHRpdGxlOiBcIkVkaXQgYSBDYXNlXCIsXHJcbiAgICAgICAgcGFnZUNvbmZpZzogeyB0eXBlOiBcImludGVybmFsXCIsIGVsZW1lbnQ6IDxDYXNlc0VkaXQgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgQ2FzZSAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIENhc2VQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgfSwgX3N0YXRlKSA9PlxyXG4gICAgICAgICAgICBCb29sZWFuKFxyXG4gICAgICAgICAgICAgICAgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIChwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsID09PSBDYXNlUGVybWlzc2lvbkxldmVsW1wiQWxsIENhc2VzXCJdIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJPd25lZCBDYXNlc1wiXSlcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiBmYWxzZSB9LFxyXG4gICAgfSxcclxuICAgIENsb3NlZENhc2VzOiB7XHJcbiAgICAgICAgcGF0aDogXCIvY2FzZXMvY2xvc2VkLWNhc2VzXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiQ2xvc2VkIENhc2VzXCIsXHJcbiAgICAgICAgcGFnZUNvbmZpZzogeyB0eXBlOiBcImludGVybmFsXCIsIGVsZW1lbnQ6IDxDYXNlc0Nsb3NlZCAvPiB9LFxyXG4gICAgICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U6ICh7IHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgfSkgPT5cclxuICAgICAgICAgICAgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCA/IChcclxuICAgICAgICAgICAgICAgIGdldEZvcmJpZGRlbkVycm9yTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICBcIllvdXIgY3VycmVudCBDYXNlICdQZXJtaXNzaW9uIExldmVsJyBpczogXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgQ2FzZVBlcm1pc3Npb25MZXZlbFtwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsXVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPD48Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBpc1Blcm1pdHRlZDogKHsgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCB9LCBfc3RhdGUpID0+XHJcbiAgICAgICAgICAgIEJvb2xlYW4ocG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCAmJiBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsICE9PSBDYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiBmYWxzZSB9LFxyXG4gICAgfSxcclxuICAgIE1ham9ySW5jaWRlbnRzOiB7XHJcbiAgICAgICAgcGF0aDogXCIvY2FzZXMvbWFqb3ItaW5jaWRlbnRzXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiTWFqb3IgSW5jaWRlbnRzXCIsXHJcbiAgICAgICAgcGFnZUNvbmZpZzogeyB0eXBlOiBcImludGVybmFsXCIsIGVsZW1lbnQ6IDxDYXNlc01ham9ySW5jaWRlbnRzIC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogKHsgcG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCB9KSA9PlxyXG4gICAgICAgICAgICBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsID8gKFxyXG4gICAgICAgICAgICAgICAgZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBjdXJyZW50IENhc2UgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIixcclxuICAgICAgICAgICAgICAgICAgICBDYXNlUGVybWlzc2lvbkxldmVsW3BvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8PjwvPlxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoeyBwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsIH0sIF9zdGF0ZSkgPT5cclxuICAgICAgICAgICAgQm9vbGVhbihwb3J0YWxDYXNlUGVybWlzc2lvbkxldmVsICYmIHBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgIT09IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0pLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IGZhbHNlIH0sXHJcbiAgICB9LFxyXG4gICAgQ29udGFjdHM6IHtcclxuICAgICAgICBwYXRoOiBcIi9jb250YWN0c1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIkNvbnRhY3RzXCIsXHJcbiAgICAgICAgcGFnZUNvbmZpZzogeyB0eXBlOiBcImludGVybmFsXCIsIGVsZW1lbnQ6IDxDb250YWN0cyAvPiB9LFxyXG4gICAgICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U6ICh7IHBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSkgPT5cclxuICAgICAgICAgICAgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCA/IChcclxuICAgICAgICAgICAgICAgIGdldEZvcmJpZGRlbkVycm9yTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICBcIllvdXIgY3VycmVudCBDb250YWN0ICdQZXJtaXNzaW9uIExldmVsJyBpczogXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgQ29udGFjdFBlcm1pc3Npb25MZXZlbFtwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsXVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPD48Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBpc1Blcm1pdHRlZDogKHsgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCB9LCBfc3RhdGUpID0+XHJcbiAgICAgICAgICAgIEJvb2xlYW4oXHJcbiAgICAgICAgICAgICAgICBwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsICYmIHBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgIT09IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiB0cnVlLCBpY29uUGF0aDogXCIvbmF2aWdhdGlvbi1pY29uLWNvbnRhY3RzLnN2Z1wiIH0sXHJcbiAgICB9LFxyXG4gICAgQ3JlYXRlQ29udGFjdDoge1xyXG4gICAgICAgIHBhdGg6IFwiL2NvbnRhY3RzL2NyZWF0ZVwiLFxyXG4gICAgICAgIHRpdGxlOiBcIkNyZWF0ZSBhIENvbnRhY3RcIixcclxuICAgICAgICBwYWdlQ29uZmlnOiB7IHR5cGU6IFwiaW50ZXJuYWxcIiwgZWxlbWVudDogPENvbnRhY3RzQ3JlYXRlIC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogKHsgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCB9KSA9PlxyXG4gICAgICAgICAgICBwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsID8gKFxyXG4gICAgICAgICAgICAgICAgZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBjdXJyZW50IENvbnRhY3QgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIixcclxuICAgICAgICAgICAgICAgICAgICBDb250YWN0UGVybWlzc2lvbkxldmVsW3BvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8PjwvPlxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoeyBwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsIH0sIF9zdGF0ZSkgPT5cclxuICAgICAgICAgICAgQm9vbGVhbihcclxuICAgICAgICAgICAgICAgIHBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgJiYgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCA9PT0gQ29udGFjdFBlcm1pc3Npb25MZXZlbFtcIkFsbCBDb250YWN0c1wiXVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IGZhbHNlIH0sXHJcbiAgICB9LFxyXG4gICAgRWRpdENvbnRhY3Q6IHtcclxuICAgICAgICBwYXRoOiBcIi9jb250YWN0cy9lZGl0XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiRWRpdCBhIENvbnRhY3RcIixcclxuICAgICAgICBwYWdlQ29uZmlnOiB7IHR5cGU6IFwiaW50ZXJuYWxcIiwgZWxlbWVudDogPENvbnRhY3RzRWRpdCAvPiB9LFxyXG4gICAgICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U6ICh7IHBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgfSkgPT5cclxuICAgICAgICAgICAgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCA/IChcclxuICAgICAgICAgICAgICAgIGdldEZvcmJpZGRlbkVycm9yTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICBcIllvdXIgY3VycmVudCBDb250YWN0ICdQZXJtaXNzaW9uIExldmVsJyBpczogXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgQ29udGFjdFBlcm1pc3Npb25MZXZlbFtwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsXVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPD48Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBpc1Blcm1pdHRlZDogKHsgcG9ydGFsQ29udGFjdFBlcm1pc3Npb25MZXZlbCB9LCBfc3RhdGUpID0+XHJcbiAgICAgICAgICAgIEJvb2xlYW4oXHJcbiAgICAgICAgICAgICAgICBwb3J0YWxDb250YWN0UGVybWlzc2lvbkxldmVsICYmIHBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwgPT09IENvbnRhY3RQZXJtaXNzaW9uTGV2ZWxbXCJBbGwgQ29udGFjdHNcIl1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiBmYWxzZSB9LFxyXG4gICAgfSxcclxuICAgIE9yZGVyczoge1xyXG4gICAgICAgIHBhdGg6IFwiL29yZGVyc1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIk9yZGVyc1wiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8T3JkZXJzIC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogKHsgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSkgPT5cclxuICAgICAgICAgICAgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgT3JkZXIgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIixcclxuICAgICAgICAgICAgICAgICAgICBPcmRlclBlcm1pc3Npb25MZXZlbFtwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsIH0sIF9zdGF0ZSkgPT5cclxuICAgICAgICAgICAgQm9vbGVhbihwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCAmJiBwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCAhPT0gT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0pLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IHRydWUsIGljb25QYXRoOiBcIi9uYXZpZ2F0aW9uLWljb24tb3JkZXItbWFuYWdlbWVudC5zdmdcIiB9LFxyXG4gICAgfSxcclxuICAgIEVkaXRPcmRlcjoge1xyXG4gICAgICAgIHBhdGg6IFwiL29yZGVycy9lZGl0XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiRWRpdCBhbiBPcmRlclwiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8T3JkZXJzRWRpdCAvPiB9LFxyXG4gICAgICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U6ICh7IHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsID8gKFxyXG4gICAgICAgICAgICAgICAgZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBjdXJyZW50IE9yZGVyICdQZXJtaXNzaW9uIExldmVsJyBpczogXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgT3JkZXJQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8PjwvPlxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoeyBwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCB9LCBfc3RhdGUpID0+XHJcbiAgICAgICAgICAgIEJvb2xlYW4ocG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgJiYgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgIT09IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiBmYWxzZSB9LFxyXG4gICAgfSxcclxuICAgIFByb2plY3RzOiB7XHJcbiAgICAgICAgcGF0aDogXCIvcHJvamVjdHNcIixcclxuICAgICAgICB0aXRsZTogXCJQcm9qZWN0c1wiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8UHJvamVjdHMgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgUHJvamVjdCAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgfSwgX3N0YXRlKSA9PlxyXG4gICAgICAgICAgICBCb29sZWFuKFxyXG4gICAgICAgICAgICAgICAgcG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbCAmJiBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsICE9PSBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgbmF2aWdhdGlvblBhbmVsQ29uZmlnOiB7IGlzVmlzaWJsZTogdHJ1ZSwgaWNvblBhdGg6IFwiL25hdmlnYXRpb24taWNvbi1wcm9qZWN0LW1hbmFnZW1lbnQuc3ZnXCIgfSxcclxuICAgIH0sXHJcbiAgICBFZGl0UHJvamVjdDoge1xyXG4gICAgICAgIHBhdGg6IFwiL3Byb2plY3RzL2VkaXRcIixcclxuICAgICAgICB0aXRsZTogXCJFZGl0IGEgUHJvamVjdFwiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8UHJvamVjdHNFZGl0IC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogKHsgcG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9KSA9PlxyXG4gICAgICAgICAgICBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsID8gKFxyXG4gICAgICAgICAgICAgICAgZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBjdXJyZW50IFByb2plY3QgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIixcclxuICAgICAgICAgICAgICAgICAgICBQcm9qZWN0UGVybWlzc2lvbkxldmVsW3BvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWxdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8PjwvPlxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoeyBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsLCBwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCB9LCBfc3RhdGUpID0+XHJcbiAgICAgICAgICAgIC8vIEFsbG93IGFjY2VzcyBpZiB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIGVpdGhlciBQcm9qZWN0cyBvciBPcmRlcnMsIGFzIFByb2plY3RzIGFyZSBsaW5rZWQgdG8gT3JkZXJzIGFuZCB2aWNlLXZlcnNhXHJcbiAgICAgICAgICAgIEJvb2xlYW4oXHJcbiAgICAgICAgICAgICAgICBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsICYmIHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgIT09IFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICAgICAgKSB8fFxyXG4gICAgICAgICAgICBCb29sZWFuKHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsICYmIHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsICE9PSBPcmRlclBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXSksXHJcbiAgICAgICAgbmF2aWdhdGlvblBhbmVsQ29uZmlnOiB7IGlzVmlzaWJsZTogZmFsc2UgfSxcclxuICAgIH0sXHJcbiAgICBWaWV3UHJvamVjdExvZzoge1xyXG4gICAgICAgIHBhdGg6IFwiL3Byb2plY3RzL2VkaXQvcHJvamVjdGxvZ3Mvdmlld1wiLFxyXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgUHJvamVjdCBMb2cgRGV0YWlsc1wiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8UHJvamVjdExvZ1ZpZXcgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgUHJvamVjdCAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIFByb2plY3RQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwsIHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsIH0sIF9zdGF0ZSkgPT5cclxuICAgICAgICAgICAgLy8gQWxsb3cgYWNjZXNzIGlmIHRoZSB1c2VyIGhhcyBhY2Nlc3MgdG8gZWl0aGVyIFByb2plY3RzIG9yIE9yZGVycywgYXMgUHJvamVjdHMgYXJlIGxpbmtlZCB0byBPcmRlcnMgYW5kIHZpY2UtdmVyc2FcclxuICAgICAgICAgICAgQm9vbGVhbihcclxuICAgICAgICAgICAgICAgIHBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwgJiYgcG9ydGFsUHJvamVjdFBlcm1pc3Npb25MZXZlbCAhPT0gUHJvamVjdFBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXVxyXG4gICAgICAgICAgICApIHx8XHJcbiAgICAgICAgICAgIEJvb2xlYW4ocG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgJiYgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgIT09IE9yZGVyUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiBmYWxzZSB9LFxyXG4gICAgfSxcclxuICAgIEludm9pY2VzOiB7XHJcbiAgICAgICAgcGF0aDogXCIvaW52b2ljZXNcIixcclxuICAgICAgICB0aXRsZTogXCJJbnZvaWNlc1wiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8SW52b2ljZXMgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgSW52b2ljZSAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsSW52b2ljZVBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcblxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoeyBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIEJvb2xlYW4oXHJcbiAgICAgICAgICAgICAgICBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsICYmIHBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgIT09IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiB0cnVlLCBpY29uUGF0aDogXCIvbmF2aWdhdGlvbi1pY29uLWludm9pY2VzLnN2Z1wiIH0sXHJcbiAgICB9LFxyXG4gICAgVmlld0ludm9pY2U6IHtcclxuICAgICAgICBwYXRoOiBcIi9pbnZvaWNlcy92aWV3XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiVmlldyBhbiBJbnZvaWNlXCIsXHJcbiAgICAgICAgcGFnZUNvbmZpZzogeyB0eXBlOiBcImludGVybmFsXCIsIGVsZW1lbnQ6IDxJbnZvaWNlc1ZpZXcgLz4gfSxcclxuICAgICAgICBmb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlOiAoeyBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0pID0+XHJcbiAgICAgICAgICAgIHBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgSW52b2ljZSAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbcG9ydGFsSW52b2ljZVBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgfSwgX3N0YXRlKSA9PlxyXG4gICAgICAgICAgICBCb29sZWFuKFxyXG4gICAgICAgICAgICAgICAgcG9ydGFsSW52b2ljZVBlcm1pc3Npb25MZXZlbCAmJiBwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsICE9PSBJbnZvaWNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgbmF2aWdhdGlvblBhbmVsQ29uZmlnOiB7IGlzVmlzaWJsZTogZmFsc2UgfSxcclxuICAgIH0sXHJcbiAgICBFZGl0TmV0d29ya09yZGVyOiB7XHJcbiAgICAgICAgcGF0aDogXCIvbmV0d29ya29yZGVycy9lZGl0XCIsXHJcbiAgICAgICAgdGl0bGU6IFwiRWRpdCBhIE5ldHdvcmsgT3JkZXJcIixcclxuICAgICAgICBwYWdlQ29uZmlnOiB7IHR5cGU6IFwiaW50ZXJuYWxcIiwgZWxlbWVudDogPE5ldHdvcmtPcmRlcnNFZGl0IC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogKHsgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgfSkgPT5cclxuICAgICAgICAgICAgcG9ydGFsT3JkZXJQZXJtaXNzaW9uTGV2ZWwgPyAoXHJcbiAgICAgICAgICAgICAgICBnZXRGb3JiaWRkZW5FcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJZb3VyIGN1cnJlbnQgT3JkZXIgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIixcclxuICAgICAgICAgICAgICAgICAgICBPcmRlclBlcm1pc3Npb25MZXZlbFtwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgaXNQZXJtaXR0ZWQ6ICh7IHBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsIH0sIF9zdGF0ZSkgPT5cclxuICAgICAgICAgICAgQm9vbGVhbihwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCAmJiBwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCAhPT0gT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0pLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IGZhbHNlIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvZmlsZToge1xyXG4gICAgICAgIHBhdGg6IFwiL1Byb2ZpbGVcIixcclxuICAgICAgICB0aXRsZTogXCJQcm9maWxlXCIsXHJcbiAgICAgICAgcGFnZUNvbmZpZzogeyB0eXBlOiBcImludGVybmFsXCIsIGVsZW1lbnQ6IDxQcm9maWxlIC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogKHsgYmFzZVBlcm1pc3Npb25MZXZlbCB9KSA9PlxyXG4gICAgICAgICAgICBiYXNlUGVybWlzc2lvbkxldmVsID8gKFxyXG4gICAgICAgICAgICAgICAgZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBjdXJyZW50ICdQZXJtaXNzaW9uIExldmVsJyBpczogXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgQmFzZVBlcm1pc3Npb25MZXZlbFtiYXNlUGVybWlzc2lvbkxldmVsXVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPD48Lz5cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICBpc1Blcm1pdHRlZDogKHVzZXJNZXRhZGF0YSwgX3N0YXRlKSA9PiBCb29sZWFuKHVzZXJIYXNQb3J0YWxBY2Nlc3ModXNlck1ldGFkYXRhKSksXHJcbiAgICAgICAgbmF2aWdhdGlvblBhbmVsQ29uZmlnOiB7IGlzVmlzaWJsZTogdHJ1ZSwgaWNvblBhdGg6IFwiL25hdmlnYXRpb24taWNvbi1teS1wcm9maWxlLnN2Z1wiIH0sXHJcbiAgICB9LFxyXG4gICAgU2lnbk91dDoge1xyXG4gICAgICAgIHBhdGg6IFwiL0FjY291bnQvTG9naW4vTG9nT2ZmXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiU2lnbiBvdXRcIixcclxuICAgICAgICBwYWdlQ29uZmlnOiB7IHR5cGU6IFwiZXh0ZXJuYWxcIiB9LFxyXG4gICAgICAgIGZvcmJpZGRlblBhZ2VFcnJvck1lc3NhZ2U6IHVuZGVmaW5lZCxcclxuICAgICAgICBpc1Blcm1pdHRlZDogKF91c2VyTWV0YWRhdGEsIF9zdGF0ZSkgPT4gdHJ1ZSxcclxuICAgICAgICBuYXZpZ2F0aW9uUGFuZWxDb25maWc6IHsgaXNWaXNpYmxlOiB0cnVlLCBpY29uUGF0aDogXCIvbmF2aWdhdGlvbi1pY29uLXNpZ24tb3V0LnN2Z1wiIH0sXHJcbiAgICB9LFxyXG4gICAgU2lnbkluOiB7XHJcbiAgICAgICAgcGF0aDogXCIvU2lnbkluXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiU2lnbiBpblwiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJleHRlcm5hbFwiIH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoX3VzZXJNZXRhZGF0YSwgX3N0YXRlKSA9PiB0cnVlLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IGZhbHNlIH0sXHJcbiAgICB9LFxyXG4gICAgVGVybXNBbmRDb25kaXRpb25zOiB7XHJcbiAgICAgICAgcGF0aDogXCIvdGVybXMtYW5kLWNvbmRpdGlvbnNcIixcclxuICAgICAgICB0aXRsZTogXCJUZXJtcyBhbmQgQ29uZGl0aW9uc1wiLFxyXG4gICAgICAgIHBhZ2VDb25maWc6IHsgdHlwZTogXCJpbnRlcm5hbFwiLCBlbGVtZW50OiA8VGVybXNBbmRDb25kaXRpb25zIC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoX3VzZXJNZXRhZGF0YSwgX3N0YXRlKSA9PiB0cnVlLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IGZhbHNlIH0sXHJcbiAgICB9LFxyXG4gICAgTm90Rm91bmQ6IHtcclxuICAgICAgICBwYXRoOiBcIipcIixcclxuICAgICAgICB0aXRsZTogXCJOb3QgRm91bmRcIixcclxuICAgICAgICBwYWdlQ29uZmlnOiB7IHR5cGU6IFwiaW50ZXJuYWxcIiwgZWxlbWVudDogPE5vdEZvdW5kIHR5cGU9XCJwYWdlLW5vdC1mb3VuZFwiIC8+IH0sXHJcbiAgICAgICAgZm9yYmlkZGVuUGFnZUVycm9yTWVzc2FnZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIGlzUGVybWl0dGVkOiAoX3VzZXJNZXRhZGF0YSwgX3N0YXRlKSA9PiB0cnVlLFxyXG4gICAgICAgIG5hdmlnYXRpb25QYW5lbENvbmZpZzogeyBpc1Zpc2libGU6IGZhbHNlIH0sXHJcbiAgICB9LFxyXG59IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBQYWdlSW5mbz47XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgZm9yYmlkZGVuIGVycm9yIG1lc3NhZ2UgZm9yIGEgcGFnZS5cclxuICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZGlzcGxheSBiZWZvcmUgdGhlIGN1cnJlbnQgc3RhdHVzLlxyXG4gKiBAcGFyYW0gcGVybWlzc2lvbkxldmVsIFRoZSBVc2VycyBjdXJyZW50ICdQZXJtaXNzaW9uIExldmVsJy5cclxuICogQHJldHVybnMgVGhlIGZvcmJpZGRlbiBlcnJvciBtZXNzYWdlLlxyXG4gKi9cclxuY29uc3QgZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlID0gKFxyXG4gICAgbWVzc2FnZTpcclxuICAgICAgICB8IFwiWW91ciBjdXJyZW50ICdQZXJtaXNzaW9uIExldmVsJyBpczogXCJcclxuICAgICAgICB8IFwiWW91ciBjdXJyZW50IENvbnRhY3QgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIlxyXG4gICAgICAgIHwgXCJZb3VyIGN1cnJlbnQgQ2FzZSAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiXHJcbiAgICAgICAgfCBcIllvdXIgY3VycmVudCBPcmRlciAnUGVybWlzc2lvbiBMZXZlbCcgaXM6IFwiXHJcbiAgICAgICAgfCBcIllvdXIgY3VycmVudCBQcm9qZWN0ICdQZXJtaXNzaW9uIExldmVsJyBpczogXCJcclxuICAgICAgICB8IFwiWW91ciBjdXJyZW50IEludm9pY2UgJ1Blcm1pc3Npb24gTGV2ZWwnIGlzOiBcIixcclxuICAgIHBlcm1pc3Npb25MZXZlbDogc3RyaW5nXHJcbikgPT4gKFxyXG4gICAgPHA+XHJcbiAgICAgICAge21lc3NhZ2V9XHJcbiAgICAgICAgPHN0cm9uZz57cGVybWlzc2lvbkxldmVsfTwvc3Ryb25nPlxyXG4gICAgPC9wPlxyXG4pO1xyXG5cclxuLyoqIEhvb2sgY29udGFpbmluZyB0aGUgcm91dGluZyBsb2dpYyBmb3IgcGFnZSBuYXZpZ2F0aW9uICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VQYWdlTmF2aWdhdGlvbigpIHtcclxuICAgIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIGNvbnN0IHN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZSk7XHJcbiAgICBjb25zdCB1c2VySWQgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLnVzZXJJZCk7XHJcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuY3VycmVudFBhZ2UpO1xyXG4gICAgY29uc3QgaXNMb2NhbE1vZGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmlzTG9jYWxNb2RlKTtcclxuICAgIGNvbnN0IHRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlID0gdXNlU2VsZWN0b3IoXHJcbiAgICAgICAgKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS50ZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgeyBhcHBJbnNpZ2h0cyB9ID0gdXNlQXBwSW5zaWdodHMoKTtcclxuICAgIGNvbnN0IGFwcEluc2lnaHRzQ3VzdG9tUHJvcGVydGllcyA9IHVzZUFwcEluc2lnaHRzQ3VzdG9tUHJvcGVydGllcygpO1xyXG5cclxuICAgIGNvbnN0IHJvdXRlcyA9ICgoKSA9PiB7XHJcbiAgICAgICAgLy8gU2hvd2luZyBsb2FkaW5nIGRpYWxvZyBpZiB0aGUgcmVkaXJlY3QgdG8gdGhlIC9TaWduSW4gcGFnZSBpcyB0YWtpbmcgcGxhY2VcclxuICAgICAgICBpZiAoIXVzZXJJZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gPERpYWxvZyBzaG93SWNvbj17ZmFsc2V9IHRpdGxlPVwiTG9hZGluZ1wiIGNvbnRlbnQ9ezxMb2FkaW5nU3Bpbm5lciAvPn0gLz47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY3VycmVudFBhZ2UucGFnZUNvbmZpZy50eXBlID09PSBcImV4dGVybmFsXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxEZXZNb2RlTGltaXRhdGlvbiAvPjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGhhcyB0aGUgJ1Blcm1pc3Npb24gTGV2ZWwnICdObyBBY2Nlc3MnIChjb3NtZXRpYyBvbmx5OyBDUlVEIG9wZXJhdGlvbnMgZm9yYmlkZGVuIGJ5IEVudGl0eSBQZXJtaXNzaW9ucylcclxuICAgICAgICBpZiAoIXVzZXJIYXNQb3J0YWxBY2Nlc3ModXNlck1ldGFkYXRhKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gPEZvcmJpZGRlbiAvPjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERldGVybWluZSB3aGV0aGVyIHRvIG5hdmlnYXRlIHRvIHRoZSBUZXJtcyBhbmQgQ29uZGl0aW9ucyBwYWdlXHJcbiAgICAgICAgY29uc3QgbmF2aWdhdGVUb1Rlcm1zQW5kQ29uZGl0aW9ucyA9XHJcbiAgICAgICAgICAgICF0ZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZSAmJiBjdXJyZW50UGFnZS5wYXRoICE9PSBQQUdFUy5UZXJtc0FuZENvbmRpdGlvbnMucGF0aDtcclxuXHJcbiAgICAgICAgaWYgKG5hdmlnYXRlVG9UZXJtc0FuZENvbmRpdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxUZXJtc0FuZENvbmRpdGlvbnMgLz47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8Um91dGVzPlxyXG4gICAgICAgICAgICAgICAge09iamVjdC52YWx1ZXMoUEFHRVMpLm1hcCgocGFnZUluZm8pID0+IChcclxuICAgICAgICAgICAgICAgICAgICA8Um91dGVcclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtwYWdlSW5mby5wYXRofVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtwYWdlSW5mby5wYXRofVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50PXsoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlSW5mby5pc1Blcm1pdHRlZCh1c2VyTWV0YWRhdGEsIHN0YXRlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlSW5mby5mb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9yYmlkZGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uTGV2ZWxNZXNzYWdlPXtwYWdlSW5mby5mb3JiaWRkZW5QYWdlRXJyb3JNZXNzYWdlKHVzZXJNZXRhZGF0YSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcmJpZGRlbiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhZ2UgaXMgaW50ZXJuYWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlSW5mby5wYWdlQ29uZmlnLnR5cGUgPT09IFwiaW50ZXJuYWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJldHVybiB0aGUgcGFnZSB0byByZW5kZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtcGFnZS10aXRsZT17cGFnZUluZm8udGl0bGV9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+e3BhZ2VJbmZvLnBhZ2VDb25maWcuZWxlbWVudH08L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRWxzZTsgdGhlIHBhZ2UgaXMgZXh0ZXJuYWwsIHNob3cgYSB3YXJuaW5nIGlmIGluIGRldiBtb2RlIChhcyB0aGVzZSB3b24ndCB3b3JrKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTG9jYWxNb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxEZXZNb2RlTGltaXRhdGlvbiAvPjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFbHNlOyByZXR1cm4gdW5kZWZpbmVkLCBzaWduaWxsaW5nIHRoaXMgc2hvdWxkIGJlIGFuIGV4dGVybmFsIGxpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L1JvdXRlcz5cclxuICAgICAgICApO1xyXG4gICAgfSkoKTtcclxuXHJcbiAgICAvLyBBZGQgYW4gZWZmZWN0IHRvIHVwZGF0ZSB0aGUgJ2N1cnJlbnRQYWdlJyBpbiB0aGUgcmVkdXggc3RvcmUgb24gY2hhbmdlIG9mIHRoZSBsb2NhdGlvblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCByZW1vdmVUcmFpbGluZ1NsYXNoZXMgPSAoc3RyOiBzdHJpbmcpID0+IHN0ci5yZXBsYWNlKC9cXC8kL2csIFwiXCIpO1xyXG5cclxuICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiU2V0Q3VycmVudFBhZ2VcIixcclxuICAgICAgICAgICAgY3VycmVudFBhZ2U6XHJcbiAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKFBBR0VTKS5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIChwYWdlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVUcmFpbGluZ1NsYXNoZXMocGFnZS5wYXRoLnRvTG93ZXJDYXNlKCkpID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVUcmFpbGluZ1NsYXNoZXMobG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgICAgICkgfHwgUEFHRVMuTm90Rm91bmQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9LCBbbG9jYXRpb24sIGRpc3BhdGNoXSk7XHJcblxyXG4gICAgLy8gQWRkIGFuIGVmZmVjdCB0byB1cGRhdGUgdGhlIEhUTUwgZG9jdW1lbnQgdGl0bGUgb24gY2hhbmdlIG9mIHRoZSAnY3VycmVudFBhZ2UnIGFuZFxyXG4gICAgLy8gcmV0dXJuIG1vYmlsZS8gdGFibGV0IHVzZXJzIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2Ugb24gY2hhbmdlLlxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICB3aW5kb3cuZG9jdW1lbnQudGl0bGUgPSBgJHtjdXJyZW50UGFnZS50aXRsZX0gfCBCaXN0ZWNoIEN1c3RvbWVyIFBvcnRhbGA7XHJcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKHtcclxuICAgICAgICAgICAgdG9wOiAwLFxyXG4gICAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIixcclxuICAgICAgICB9KTtcclxuICAgIH0sIFtjdXJyZW50UGFnZV0pO1xyXG5cclxuICAgIC8vIENsZWFyIGFsbCBlcnJvcnMgb24gcGFnZSBuYXZpZ2F0aW9uXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJDbGVhckxhdGVzdEVycm9yc1wiIH0pO1xyXG4gICAgfSwgW2N1cnJlbnRQYWdlLCBkaXNwYXRjaF0pO1xyXG5cclxuICAgIC8vIFRyYWNrIGVhY2ggcGFnZSBuYXZpZ2F0YXRpb25cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgYXBwSW5zaWdodHM/LnRyYWNrUGFnZVZpZXcoe1xyXG4gICAgICAgICAgICBuYW1lOiBjdXJyZW50UGFnZS50aXRsZSwgLy8gR2VuZXJpY2lzZSB0aGUgdGl0bGUgdG8gdGhlIHBhZ2UgbmFtZSB0byBhdm9pZCBDYXNlL0NvbnRhY3QgaW5mbyBiZWluZyB0aGUgbG9nZ2VkIHBhZ2UgbmFtZVxyXG4gICAgICAgICAgICB1cmk6IGN1cnJlbnRQYWdlLnBhdGgsIC8vIEdlbmVyaWNpc2UgdGhlIFVSTCB0byB0aGUgcGF0aCwgdG8gYXZvaWQgZGlmZmVyZW50IENhc2UvQ29udGFjdCBVUkxzIGZyb20gYmVpbmcgZGlzdGluY3RseSBsb2dnZWRcclxuICAgICAgICAgICAgcHJvcGVydGllczogYXBwSW5zaWdodHNDdXN0b21Qcm9wZXJ0aWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgW2N1cnJlbnRQYWdlXSk7XHJcblxyXG4gICAgLy8gUmV0dXJuIGEgZGVzY3JpcHRpb24gb2YgdGhlIHJvdXRlc1xyXG4gICAgcmV0dXJuIHsgcm91dGVzIH07XHJcbn1cclxuIiwiaW1wb3J0IHsgTGluaywgdXNlTG9jYXRpb24gfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuLi9Ib29rcy91c2VBcHBJbnNpZ2h0c1wiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gXCIuL0ltYWdlXCI7XHJcblxyXG4vKiogQ29tcG9uZW50cyByZW5kZXJpbmcgYSBsaW5rIHRvIGEgcGFnZSAqL1xyXG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbkxpbms6IFJlYWN0LkZDPHtcclxuICAgIGljb25QYXRoOiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gICAgdXJsOiBzdHJpbmc7XHJcbiAgICBpc1NpbmdsZVBhZ2VBcHBMaW5rOiBib29sZWFuO1xyXG59PiA9ICh7IGljb25QYXRoLCBkaXNwbGF5TmFtZSwgdXJsLCBpc1NpbmdsZVBhZ2VBcHBMaW5rIH0pID0+IHtcclxuICAgIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcclxuICAgIGNvbnN0IHsgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcblxyXG4gICAgLy8gR2V0IHRoZSBmaXJzdCBzZWdtZW50IG9mIHRoZSBVUkwgcGF0aFxyXG4gICAgLy8gZS5nLiBmb3IgdGhlIHBhdGggXCIvY2FzZXMvZWRpdFwiLCB0aGlzIHdvdWxkIGJlIFwiY2FzZXNcIlxyXG4gICAgY29uc3QgZmlyc3RQYXRoU2VnbWVudCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL15cXC8vLCBcIlwiKS5zcGxpdChcIi9cIilbMF07XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBsaW5rIGlzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGFnZS9zZWdtZW50XHJcbiAgICBjb25zdCBpc0N1cnJlbnRQYWdlID0gZmlyc3RQYXRoU2VnbWVudC50b0xvd2VyQ2FzZSgpID09PSB1cmwucmVwbGFjZSgvXFwvL2csIFwiXCIpLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgaWYgKGlzU2luZ2xlUGFnZUFwcExpbmspIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgdG89e3VybH1cclxuICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD17aXNDdXJyZW50UGFnZX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiTmF2aWdhdGlvbiBQYW5lbCAtIEN1c3RvbWVyIEFzc2V0IHRpbGUgY2xpY2tlZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aWxlTmFtZTogZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgPEltYWdlIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gc3JjPXtpY29uUGF0aH0gLz5cclxuICAgICAgICAgICAgICAgICAgICB7ZGlzcGxheU5hbWV9XHJcbiAgICAgICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgaHJlZj17dXJsfVxyXG4gICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PXtpc0N1cnJlbnRQYWdlfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJOYXZpZ2F0aW9uIFBhbmVsIC0gQ3VzdG9tZXIgQXNzZXQgdGlsZSBjbGlja2VkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVOYW1lOiBkaXNwbGF5TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSBzcmM9e2ljb25QYXRofSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHtkaXNwbGF5TmFtZX1cclxuICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn07XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gXCIuL0ltYWdlXCI7XHJcbmltcG9ydCB7IEJzQ2hldnJvbkRvd24sIEJzQ2hldnJvblVwIH0gZnJvbSBcInJlYWN0LWljb25zL2JzXCI7XHJcbmltcG9ydCB7IEJpTGlua0V4dGVybmFsIH0gZnJvbSBcInJlYWN0LWljb25zL2JpXCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9FcnJvckJvdW5kYXJ5XCI7XHJcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyIH0gZnJvbSBcIi4vTG9hZGluZ1NwaW5uZXJcIjtcclxuaW1wb3J0IHsgUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nIH0gZnJvbSBcIi4uL0VudW1zL1Byb2R1Y3RQb3J0YWxUaWxlTWFwcGluZ1wiO1xyXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkluZm9ybWF0aW9uIH0gZnJvbSBcIi4uL1R5cGVzL0J1dHRvbkluZm9ybWF0aW9uXCI7XHJcbmltcG9ydCB7IExvYWRpbmdEYXRhIH0gZnJvbSBcIi4uL0RlZmF1bHRSb290U3RhdGVcIjtcclxuXHJcbi8qKiBEZXNjcmliZXMgYSBuYXZpZ2F0aW9uIG1lbnUgZ3JvdXAgaW4gdGhlIG5hdmlnYXRpb24gcGFuZWwgKi9cclxuZXhwb3J0IHR5cGUgTmF2aWdhdGlvbk1lbnVHcm91cEluZm8gPSB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaWNvblBhdGg6IHN0cmluZztcclxuICAgIHByb2R1Y3RMaW5rczogeyBsYWJlbDogc3RyaW5nOyB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nOyBtb2RhbE1lc3NhZ2U/OiBzdHJpbmcgfVtdO1xyXG59O1xyXG5cclxuLyoqIENvbXBvbmVudCByZW5kZXJpbmcgYSBuYXZpZ2F0aW9uIG1lbnUgZ3JvdXAgaW4gdGhlIG5hdmlnYXRpb24gcGFuZWwgKi9cclxuZXhwb3J0IGNvbnN0IE5hdmlnYXRpb25NZW51R3JvdXA6IFJlYWN0LkZDPHsgbmF2aWdhdGlvbk1lbnVHcm91cDogTmF2aWdhdGlvbk1lbnVHcm91cEluZm8gfT4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHsgbmF2aWdhdGlvbk1lbnVHcm91cCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0SXNFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbbW9kYWxJc09wZW4sIHNldE1vZGFsSXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFttb2RhbEluZm8sIHNldE1vZGFsSW5mb10gPSB1c2VTdGF0ZTxCdXR0b25JbmZvcm1hdGlvbiB8IG51bGw+KG51bGwpO1xyXG4gICAgY29uc3QgcHJvZHVjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLnByb2R1Y3RzKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIFVSTHMgZnJvbSB0aGUgcmVsYXRlZCBQcm9kdWN0cyBvZiB0aGUgbmF2aWdhdGlvbiBsaW5rc1xyXG4gICAgY29uc3QgcHJvZHVjdExpbmtzOiBMb2FkaW5nRGF0YTxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHVybDogc3RyaW5nO1xyXG4gICAgICAgICAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nO1xyXG4gICAgICAgICAgICBtb2RhbE1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgICAgICAgfVtdXHJcbiAgICA+ID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2R1Y3RzLmxvYWRpbmdTdGF0dXMgIT09IFwibG9hZGVkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogcHJvZHVjdHMubG9hZGluZ1N0YXR1cyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbGlua3MgPSBuYXZpZ2F0aW9uTWVudUdyb3VwLnByb2R1Y3RMaW5rc1xyXG4gICAgICAgICAgICAubWFwKChuYXZpZ2F0aW9uTWVudUdyb3VwSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gcHJvZHVjdHMuZGF0YS5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIChwcm9kdWN0KSA9PiBwcm9kdWN0LmJpc3RlY2hfcG9ydGFsdGlsZW1hcHBpbmcgPT09IG5hdmlnYXRpb25NZW51R3JvdXBJdGVtLnRpbGVNYXBwaW5nXHJcbiAgICAgICAgICAgICAgICApPy5iaXN0ZWNoX3RpbGV0YXJnZXR1cmwhO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm5hdmlnYXRpb25NZW51R3JvdXBJdGVtLCB1cmwgfTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZpbHRlcigoeyB1cmwgfSkgPT4gdXJsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YTogbGlua3MgfTtcclxuICAgIH0sIFtwcm9kdWN0cywgbmF2aWdhdGlvbk1lbnVHcm91cF0pO1xyXG5cclxuICAgIC8qKiBPcGVucyBhIG1vZGFsIGZvciB0aGUgdXNlciB0byBuYXZpZ2F0ZSB0byBhbiBleHRlcm5hbCB3ZWJzaXRlLiAqL1xyXG4gICAgY29uc3Qgb3BlbkluZm9ybWF0aW9uTW9kYWwgPSAobW9kYWxJbmZvOiBCdXR0b25JbmZvcm1hdGlvbikgPT4ge1xyXG4gICAgICAgIHNldE1vZGFsSXNPcGVuKHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7XHJcbiAgICAgICAgICAgIHRvcDogMCxcclxuICAgICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc2V0TW9kYWxJbmZvKG1vZGFsSW5mbyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGxpIGtleT17bmF2aWdhdGlvbk1lbnVHcm91cC50aXRsZX0gY2xhc3NOYW1lPVwibmF2aWdhdGlvbi1tZW51LWdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidXR0b24gbmF2aWdhdGlvbi1tZW51LWdyb3VwLWhlYWRlclwiIG9uQ2xpY2s9eygpID0+IHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpfT5cclxuICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPXtuYXZpZ2F0aW9uTWVudUdyb3VwLmljb25QYXRofSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2aWdhdGlvbi1tZW51LWdyb3VwLWhlYWRlci1sYWJlbFwiPntuYXZpZ2F0aW9uTWVudUdyb3VwLnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7aXNFeHBhbmRlZCA/IDxCc0NoZXZyb25VcCAvPiA6IDxCc0NoZXZyb25Eb3duIC8+fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuYXZpZ2F0aW9uLW1lbnUtZ3JvdXAtaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb2R1Y3RMaW5rcy5sb2FkaW5nU3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJub3Qtc3RhcnRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwibG9hZGluZ1wiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nU3Bpbm5lciAvPjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJsb2FkZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9kdWN0TGlua3MuZGF0YS5sZW5ndGggPT09IDAgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Tm8gcHJvZHVjdHMgZm91bmQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RMaW5rcy5kYXRhPy5tYXAoKHsgbGFiZWwsIHVybCwgbW9kYWxNZXNzYWdlIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgbmF2aWdhdGlvbiBsaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdmlnYXRpb24tbWVudS1ncm91cC1pdGVtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpTGlua0V4dGVybmFsIHN0eWxlPXt7IGNvbG9yOiBcIiM3NzdcIiB9fSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBhIG1vZGFsIHNob3VsZCBiZSBkaXNwbGF5ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGFsTWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQnVpbGQgZGV0YWlscyBmb3IgdGhlIG1vZGFsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RhbEluZm86IEJ1dHRvbkluZm9ybWF0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBtb2RhbE1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTW9kYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRXJyb3JNb2RhbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiQ29uZmlybVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbENvbnRlbnQ6IDw+e21vZGFsTWVzc2FnZX08Lz4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsVGl0bGU6IGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdXaW5kb3cgPSB3aW5kb3cub3BlbigpITtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdy5vcGVuZXIgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3V2luZG93LmxvY2F0aW9uID0gdXJsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtsYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb3BlbkluZm9ybWF0aW9uTW9kYWwobW9kYWxJbmZvKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdmlnYXRpb24tbWVudS1ncm91cC1pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17bGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3VybH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdmlnYXRpb24tbWVudS1ncm91cC1pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgIHttb2RhbEluZm8gJiYgPE1vZGFsIGJ1dHRvbkluZm89e21vZGFsSW5mb30gaXNNb2RhbFNob3duPXttb2RhbElzT3Blbn0gc2V0SXNNb2RhbFNob3duPXtzZXRNb2RhbElzT3Blbn0gLz59XHJcbiAgICAgICAgPC9saT5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcgfSBmcm9tIFwiLi4vRW51bXMvUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nXCI7XHJcbmltcG9ydCB7IFBhZ2VJbmZvLCBQQUdFUyB9IGZyb20gXCIuLi9Ib29rcy91c2VQYWdlTmF2aWdhdGlvblwiO1xyXG5pbXBvcnQgeyBTd2lwZURpcmVjdGlvbiwgdXNlU3dpcGVMaXN0ZW5lciB9IGZyb20gXCIuLi9Ib29rcy91c2VTd2lwZUxpc3RlbmVyXCI7XHJcbmltcG9ydCB7IHVzZVVzZXJNZXRhZGF0YSB9IGZyb20gXCIuLi9Ib29rcy91c2VVc2VyTWV0YWRhdGFcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuL0Vycm9yQm91bmRhcnlcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkxpbmsgfSBmcm9tIFwiLi9OYXZpZ2F0aW9uTGlua1wiO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uTWVudUdyb3VwLCBOYXZpZ2F0aW9uTWVudUdyb3VwSW5mbyB9IGZyb20gXCIuL05hdmlnYXRpb25NZW51R3JvdXBcIjtcclxuXHJcbi8qKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIHRoZSBOYXZpZ2F0aW9uIFBhbmVsICovXHJcbmV4cG9ydCBjb25zdCBOYXZpZ2F0aW9uUGFuZWw6IFJlYWN0LkZDPHtcclxuICAgIGlzTmF2aWdhdGlvblBhbmVsRXhwYW5kZWQ6IGJvb2xlYW47XHJcbiAgICBzZXRJc05hdmlnYXRpb25QYW5lbEV4cGFuZGVkOiAoaXNFeHBhbmRlZDogYm9vbGVhbikgPT4gdm9pZDtcclxufT4gPSAocHJvcHMpID0+IHtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlKTtcclxuICAgIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbCk7XHJcblxyXG4gICAgdXNlU3dpcGVMaXN0ZW5lcih7XHJcbiAgICAgICAgcmVmLFxyXG4gICAgICAgIG9uU3dpcGU6IChkaXJlY3Rpb246IFN3aXBlRGlyZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1sZWZ0XCIpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNldElzTmF2aWdhdGlvblBhbmVsRXhwYW5kZWQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIERlc2NyaXB0aW9uIG9mIHRoZSBncm91cHMgb2YgcHJvZHVjdCB0aWxlcyB0byBkaXNwbGF5IGluIHRoZSBOYXZpZ2F0aW9uIHBhbmVsXHJcbiAgICBjb25zdCBuYXZpZ2F0aW9uTWVudUdyb3VwczogTmF2aWdhdGlvbk1lbnVHcm91cEluZm9bXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkluZnJhc3RydWN0dXJlXCIsXHJcbiAgICAgICAgICAgIGljb25QYXRoOiBcIi9uYXZpZ2F0aW9uLW1lbnUtaWNvbi1kcm9wZG93bi1pbmZyYXN0cnVjdHVyZS5zdmdcIixcclxuICAgICAgICAgICAgcHJvZHVjdExpbmtzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTWVyYWtpXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5NZXJha2ksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5pbmphIFJNTVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuTmluamFSTU0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlNvbGFyd2luZHNcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLlNvbGFyd2luZHMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlZNV2FyZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpbGVNYXBwaW5nOiBQcm9kdWN0UG9ydGFsVGlsZU1hcHBpbmcuVk1XYXJlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6IFwiU2VjdXJpdHlcIixcclxuICAgICAgICAgICAgaWNvblBhdGg6IFwiL25hdmlnYXRpb24tbWVudS1pY29uLWRyb3Bkb3duLXNlY3VyaXR5LnN2Z1wiLFxyXG4gICAgICAgICAgICBwcm9kdWN0TGlua3M6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJGb3J0aUFuYWx5emVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5Gb3J0aUFuYWx5emVyLFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsTWVzc2FnZTogXCJJbiBvcmRlciB0byBhY2Nlc3MgdGhlIEZvcnRpQW5hbHl6ZXIsIHlvdSBtdXN0IGJlIGNvbm5lY3RlZCB0byB5b3VyIGNvbXBhbnkgVlBOLlwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJGb3J0aUdhdGVcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLkZvcnRpR2F0ZSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbE1lc3NhZ2U6IFwiSW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBGb3J0aUdhdGUsIHlvdSBtdXN0IGJlIGNvbm5lY3RlZCB0byB5b3VyIGNvbXBhbnkgVlBOLlwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJGb3J0aU1haWxcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLkZvcnRpTWFpbCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTWltZWNhc3RcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLk1pbWVjYXN0LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6IFwiQ2xvdWQgQWRtaW5cIixcclxuICAgICAgICAgICAgaWNvblBhdGg6IFwiL25hdmlnYXRpb24tbWVudS1pY29uLWRyb3Bkb3duLWNsb3VkLnN2Z1wiLFxyXG4gICAgICAgICAgICBwcm9kdWN0TGlua3M6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCI4eDhcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLl84eDgsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkF6dXJlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5BenVyZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTTM2NSBBZG1pbiBDZW50cmVcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLk0zNjVBZG1pbkNlbnRyZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTk1TXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdGlsZU1hcHBpbmc6IFByb2R1Y3RQb3J0YWxUaWxlTWFwcGluZy5OTVMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogXCJMaWNlbnNpbmcgJiBCaWxsaW5nXCIsXHJcbiAgICAgICAgICAgIGljb25QYXRoOiBcIi9uYXZpZ2F0aW9uLW1lbnUtaWNvbi1kcm9wZG93bi1saWNlbnNpbmctYmlsbGluZy5zdmdcIixcclxuICAgICAgICAgICAgcHJvZHVjdExpbmtzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiYUJJTExpdHlcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLldlYkFiaWxpdHksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk1pY3Jvc29mdCBMaWNlbnNpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICB0aWxlTWFwcGluZzogUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nLk1pY3Jvc29mdExpY2Vuc2luZyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgLy8gTmFtZSBvZiB0aGUgcGFnZSBhZnRlciB3aGljaCB0byBhZGQgdGhlIG5hdmlnYXRpb24gbWVudSBncm91cHNcclxuICAgIGNvbnN0IEFERF9OQVZJR0FUSU9OX01FTlVfR1JPVVBTX0FGVEVSX1BBR0VfVElUTEU6IFBhZ2VJbmZvW1widGl0bGVcIl0gPSBQQUdFUy5Qcm9maWxlLnRpdGxlO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJuYXZpZ2F0aW9uLXBhbmVsXCIgZGF0YS1pcy1zaG93bj17cHJvcHMuaXNOYXZpZ2F0aW9uUGFuZWxFeHBhbmRlZH0gcmVmPXtyZWZ9PlxyXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibmF2aWdhdGlvbi1wYW5lbC1pdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAge09iamVjdC52YWx1ZXMoUEFHRVMpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VJbmZvKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUluZm8ubmF2aWdhdGlvblBhbmVsQ29uZmlnLmlzVmlzaWJsZSAmJiBwYWdlSW5mby5pc1Blcm1pdHRlZCh1c2VyTWV0YWRhdGEsIHN0YXRlKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAubWFwKChwYWdlSW5mbykgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17cGFnZUluZm8udGl0bGV9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhZ2VJbmZvLnRpdGxlID09PSBBRERfTkFWSUdBVElPTl9NRU5VX0dST1VQU19BRlRFUl9QQUdFX1RJVExFICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25NZW51R3JvdXBzLm1hcCgobmF2aWdhdGlvbk1lbnVHcm91cCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5hdmlnYXRpb25NZW51R3JvdXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e25hdmlnYXRpb25NZW51R3JvdXAudGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk1lbnVHcm91cD17bmF2aWdhdGlvbk1lbnVHcm91cH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e3BhZ2VJbmZvLnBhdGh9IGNsYXNzTmFtZT1cIm5hdmlnYXRpb24tcGFuZWwtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2aWdhdGlvbkxpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25QYXRoPXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZUluZm8ubmF2aWdhdGlvblBhbmVsQ29uZmlnLmlzVmlzaWJsZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlSW5mby5uYXZpZ2F0aW9uUGFuZWxDb25maWcuaWNvblBhdGgpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU9e3BhZ2VJbmZvLnRpdGxlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsPXtwYWdlSW5mby5wYXRofVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTaW5nbGVQYWdlQXBwTGluaz17cGFnZUluZm8ucGFnZUNvbmZpZy50eXBlID09PSBcImludGVybmFsXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9uYXY+XHJcbiAgICApO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBGYUluZm9DaXJjbGUgfSBmcm9tIFwicmVhY3QtaWNvbnMvZmFcIjtcclxuaW1wb3J0IHsgSW1DaGVja21hcmssIEltU3Bpbm5lcjIgfSBmcm9tIFwicmVhY3QtaWNvbnMvaW1cIjtcclxuaW1wb3J0IHsgdXNlRGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vSG9va3MvdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tIFwiLi9JbWFnZVwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vRXJyb3JCb3VuZGFyeVwiO1xyXG5pbXBvcnQgeyBTd2lwZURpcmVjdGlvbiwgdXNlU3dpcGVMaXN0ZW5lciB9IGZyb20gXCIuLi9Ib29rcy91c2VTd2lwZUxpc3RlbmVyXCI7XHJcbmltcG9ydCB7IHVzZUFwcEluc2lnaHRzIH0gZnJvbSBcIi4uL0hvb2tzL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vSGVscGVycy9EYXRlSGVscGVyXCI7XHJcblxyXG4vKiogVGhlIHR5cGUgb2YgZmVlZGJhY2suICovXHJcbnR5cGUgRmVlZGJhY2tDYXRlZ29yeSA9IFwic3VnZ2VzdGlvblwiIHwgXCJub3Qtd29ya2luZ1wiIHwgbnVsbDtcclxuXHJcbi8qKiBUaGUgY3VycmVudCBzdWJtaXNzaW9uIHN0YXRlIG9mIHRoZSBGZWVkYmFjayBhY3Rpb24uICovXHJcbnR5cGUgU3VibWlzc2lvblN0YXRlID0gXCJub3Qtc2hvd25cIiB8IFwic2hvd25cIiB8IFwic3VibWl0dGluZ1wiIHwgXCJjb21wbGV0ZVwiIHwgXCJlcnJvclwiO1xyXG5cclxuLyoqIENvbXBvbmVudCB1c2VkIGZvciByZW5kZXJpbmcgdGhlIGZlZWRiYWNrIHBhbmUgZm9yIHRoZSBTUEEuICovXHJcbmV4cG9ydCBjb25zdCBGZWVkYmFja1BhbmU6IFJlYWN0LkZDID0gKCkgPT4ge1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSB1c2VEYXRhU2VydmljZSgpO1xyXG4gICAgY29uc3QgeyB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEsIHRyYWNrRXZlbnRXaXRoQmlzdGVjaE1ldGFkYXRhIH0gPSB1c2VBcHBJbnNpZ2h0cygpO1xyXG4gICAgY29uc3QgZmVlZGJhY2tQYW5lSXNTaG93biA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuZmVlZGJhY2tQYW5lSXNTaG93bik7XHJcblxyXG4gICAgLy8gTG9jYWwgYXR0cmlidXRlc1xyXG4gICAgY29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IHVzZVN0YXRlKFwiXCIpO1xyXG4gICAgY29uc3QgW3N1Ym1pc3Npb25TdGF0ZSwgc2V0U3VibWlzc2lvblN0YXRlXSA9IHVzZVN0YXRlPFN1Ym1pc3Npb25TdGF0ZT4oXCJub3Qtc2hvd25cIik7XHJcbiAgICBjb25zdCBbZmVlZGJhY2tDYXRlZ29yeSwgc2V0RmVlZGJhY2tDYXRlZ29yeV0gPSB1c2VTdGF0ZTxGZWVkYmFja0NhdGVnb3J5PihudWxsKTtcclxuICAgIGNvbnN0IFtmZWVkYmFja0Rlc2NyaXB0aW9uLCBzZXRGZWVkYmFja01lc3NhZ2VdID0gdXNlU3RhdGUoXCJcIik7XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAoZmVlZGJhY2tQYW5lSXNTaG93bikge1xyXG4gICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHsgdHlwZTogXCJGZWVkYmFjayBQYW5lIC0gT3BlbmVkXCIgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2ZlZWRiYWNrUGFuZUlzU2hvd25dKTtcclxuXHJcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG5cclxuICAgIHVzZVN3aXBlTGlzdGVuZXIoe1xyXG4gICAgICAgIHJlZixcclxuICAgICAgICBvblN3aXBlOiAoZGlyZWN0aW9uOiBTd2lwZURpcmVjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWwtcmlnaHRcIikge1xyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldEZlZWRiYWNrUGFuZUlzU2hvd25cIiwgZmVlZGJhY2tQYW5lSXNTaG93bjogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzdWJtaXNzaW9uIGFyZWEgKGJ1dHRvbiBhbmQgdGV4dCBhcmVhKSB2aXNpYmlsaXR5IHRvIHRydWUsIGFsc28gdXBkYXRlcyB0aGUgdHlwZSBvZiBzdWJtaXNzaW9uIHRvIHRoZVxyXG4gICAgICogc2VsZWN0ZWQgcmFkaW8gYnV0dG9uLlxyXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIGZlZWRiYWNrIHR5cGUgYmVpbmcgcG9zdGVkLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBzZXRTdWJtaXNzaW9uQXJlYVNob3duQW5kVHlwZSA9ICh0eXBlOiBGZWVkYmFja0NhdGVnb3J5KSA9PiB7XHJcbiAgICAgICAgc2V0RmVlZGJhY2tDYXRlZ29yeSh0eXBlKTtcclxuICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoXCJzaG93blwiKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldCB0aGUgZmVlZGJhY2sgcGFuZSB3aGVuIGl0IGlzIGhpZGRlbiBhbmQgaW4gYSBzdGF0ZSBvZiAnY29tcGxldGUnLlxyXG4gICAgICovXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChzdWJtaXNzaW9uU3RhdGUgPT09IFwiY29tcGxldGVcIikge1xyXG4gICAgICAgICAgICBzZXRGZWVkYmFja01lc3NhZ2UoXCJcIik7XHJcbiAgICAgICAgICAgIHNldEZlZWRiYWNrQ2F0ZWdvcnkobnVsbCk7XHJcbiAgICAgICAgICAgIHNldFN1Ym1pc3Npb25TdGF0ZShcIm5vdC1zaG93blwiKTtcclxuICAgICAgICAgICAgc2V0RXJyb3JNZXNzYWdlKFwiXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtmZWVkYmFja1BhbmVJc1Nob3duLCBzdWJtaXNzaW9uU3RhdGVdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZWQgdGhlIHZhbHVlIHRoZSBmZWVkYmFja01lc3NhZ2UgdmFyaWFibGUuXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIHRyaWdnZXJpbmcgZXZlbnQuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGhhbmRsZU1lc3NhZ2VDaGFuZ2UgPSAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XHJcbiAgICAgICAgc2V0RmVlZGJhY2tNZXNzYWdlKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3VibWl0cyBhIGZlZWRiYWNrIHBvcnRhbCBhY3Rpb24gYW5kIHByb2Nlc3NlcyB0aGUgc3VibWlzc2lvbi5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgZnVuY3Rpb24gc2VuZFBvcnRhbEZlZWRiYWNrKCkge1xyXG4gICAgICAgIC8vIElmIHRoZSBzdWJtaXNzaW9uIGJveCBpcyBlbXB0eS5cclxuICAgICAgICBpZiAoZmVlZGJhY2tEZXNjcmlwdGlvbiA9PT0gXCJcIikge1xyXG4gICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2UoXCJEZXNjcmlwdGlvbiBSZXF1aXJlZFwiKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgbm90IHdvcmtpbmcgbWVzc2FnZS5cclxuICAgICAgICBpZiAoc2V0RXJyb3JNZXNzYWdlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2UoXCJcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBVcGRhdGVzIHRoZSBHVUkgdG8gdmlzdWFsbHkgcmVwcmVzZW50IGFuIHVwZGF0ZS5cclxuICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoXCJzdWJtaXR0aW5nXCIpO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0cmFja0V2ZW50V2l0aEJpc3RlY2hNZXRhZGF0YT8uKHsgdHlwZTogXCJGZWVkYmFjayBQYW5lIC0gRmVlZGJhY2sgY3JlYXRpb24gc3VibWl0dGVkXCIsIGZlZWRiYWNrQ2F0ZWdvcnkgfSk7XHJcblxyXG4gICAgICAgICAgICBhd2FpdCBkYXRhU2VydmljZS5leGVjdXRlRmVlZGJhY2tQb3J0YWxBY3Rpb24oZmVlZGJhY2tEZXNjcmlwdGlvbiwgZmVlZGJhY2tDYXRlZ29yeSk7XHJcblxyXG4gICAgICAgICAgICBzZXRTdWJtaXNzaW9uU3RhdGUoXCJjb21wbGV0ZVwiKTtcclxuICAgICAgICAgICAgc2V0RmVlZGJhY2tNZXNzYWdlKFwiXCIpO1xyXG5cclxuICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJBZGROb3RpZmljYXRpb25cIixcclxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiRmVlZGJhY2sgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZE9uUmVsYXRpdmVVcmw6IGAke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VW50aWw6IERhdGVIZWxwZXIuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCAxMCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXRGZWVkYmFja1BhbmVJc1Nob3duXCIsIGZlZWRiYWNrUGFuZUlzU2hvd246IGZhbHNlIH0pO1xyXG5cclxuICAgICAgICAgICAgdHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGE/Lih7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIkZlZWRiYWNrIFBhbmUgLSBGZWVkYmFjayBjcmVhdGVkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAgICAgICAgICAgZmVlZGJhY2tDYXRlZ29yeSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgc2V0U3VibWlzc2lvblN0YXRlKFwiZXJyb3JcIik7XHJcbiAgICAgICAgICAgIHNldEVycm9yTWVzc2FnZShcclxuICAgICAgICAgICAgICAgIFwiVW5hYmxlIHRvIHN1Ym1pdCB5b3VyIGZlZWRiYWNrLiBQbGVhc2UgdmVyaWZ5IHlvdXIgY29ubmVjdGlvbiwgcmVmcmVzaCB0aGUgcGFnZSwgYW5kIHRyeSBhZ2Fpbi5cIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmZWVkYmFjay1wYW5lXCIgZGF0YS1pcy1zaG93bj17YCR7ZmVlZGJhY2tQYW5lSXNTaG93bn1gfSByZWY9e3JlZn0+XHJcbiAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZlZWRiYWNrLXRpdGxlXCI+UGxlYXNlIHByb3ZpZGUgYW55IGZlZWRiYWNrIGFib3V0IHRoZSBwb3J0YWw8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImZlZWRiYWNrLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmVlZGJhY2stYnV0dG9uLXNlbGVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZlZWRiYWNrLXR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm5vdC13b3JraW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmZWVkYmFjay10eXBlLW5vdC13b3JraW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U3VibWlzc2lvbkFyZWFTaG93bkFuZFR5cGUoXCJub3Qtd29ya2luZ1wiKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BmZWVkYmFjay1idXR0b24tbGFiZWwgJHtmZWVkYmFja0NhdGVnb3J5ID09PSBcIm5vdC13b3JraW5nXCIgJiYgXCJzZWxlY3RlZFwifWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxGb3I9XCJmZWVkYmFjay10eXBlLW5vdC13b3JraW5nXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZSBzcmM9XCIvZmVlZGJhY2stbm90LXdvcmtpbmctaWNvbi5zdmdcIiB3aWR0aD17MjR9IGhlaWdodD17MjR9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZlZWRiYWNrLWJ1dHRvbi10ZXh0XCI+U29tZXRoaW5nIGlzbid0IHdvcmtpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmVlZGJhY2stYnV0dG9uLXNlbGVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZlZWRiYWNrLXR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInN1Z2dlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZlZWRiYWNrLXR5cGUtc3VnZ2VzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFN1Ym1pc3Npb25BcmVhU2hvd25BbmRUeXBlKFwic3VnZ2VzdGlvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BmZWVkYmFjay1idXR0b24tbGFiZWwgJHtmZWVkYmFja0NhdGVnb3J5ID09PSBcInN1Z2dlc3Rpb25cIiAmJiBcInNlbGVjdGVkXCJ9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbEZvcj1cImZlZWRiYWNrLXR5cGUtc3VnZ2VzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2Ugc3JjPVwiL2ZlZWRiYWNrLXN1Z2dlc3Rpb24taWNvbi5zdmdcIiB3aWR0aD17MjR9IGhlaWdodD17MjR9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZlZWRiYWNrLWJ1dHRvbi10ZXh0XCI+SSBoYXZlIGEgc3VnZ2VzdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIHtlcnJvck1lc3NhZ2UubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb24tcmVxdWlyZWRcIiByb2xlPVwiYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInZhbGlkYXRpb24taGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZhSW5mb0NpcmNsZSBjbGFzc05hbWU9XCJpbmZvLWNpcmNsZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Vycm9yTWVzc2FnZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICB7c3VibWlzc2lvblN0YXRlICE9PSBcIm5vdC1zaG93blwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZlZWRiYWNrLWRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoPXs1MDB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29scz17MzB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17MTB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZlZWRiYWNrRGVzY3JpcHRpb259XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQbGVhc2UgcHJvdmlkZSBhbnkgZmVlZGJhY2sgaGVyZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZU1lc3NhZ2VDaGFuZ2V9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmVlZGJhY2stc3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZW5kUG9ydGFsRmVlZGJhY2soKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c3VibWlzc2lvblN0YXRlID09PSBcInN1Ym1pdHRpbmdcIiB8fCBzdWJtaXNzaW9uU3RhdGUgPT09IFwiY29tcGxldGVcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWlzLXN1Ym1pdHRlZD17YCR7c3VibWlzc2lvblN0YXRlfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJtaXNzaW9uU3RhdGUgPT09IFwic3VibWl0dGluZ1wiICYmIDxJbVNwaW5uZXIyIGNsYXNzTmFtZT1cInNwaW5cIiAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N1Ym1pc3Npb25TdGF0ZSA9PT0gXCJjb21wbGV0ZVwiICYmIDxJbUNoZWNrbWFyayAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3N1Ym1pc3Npb25TdGF0ZSA9PT0gXCJjb21wbGV0ZVwiID8gXCJTdWJtaXR0ZWRcIiA6IFwiU3VibWl0XCJ9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRSb290U3RhdGUsIHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBDYXNlVHlwZSB9IGZyb20gXCIuLi9FbnVtcy9DYXNlVHlwZVwiO1xyXG5pbXBvcnQgeyBJbmNpZGVudFN0YXR1c0NvZGUgfSBmcm9tIFwiLi4vRW51bXMvSW5jaWRlbnRTdGF0dXNDb2RlXCI7XHJcbmltcG9ydCB7IEJhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQmFzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyB1c2VBcHBJbnNpZ2h0cyB9IGZyb20gXCIuL3VzZUFwcEluc2lnaHRzXCI7XHJcbmltcG9ydCB7IHVzZURhdGFTZXJ2aWNlIH0gZnJvbSBcIi4vdXNlRGF0YVNlcnZpY2VcIjtcclxuaW1wb3J0IHsgdXNlVXNlck1ldGFkYXRhIH0gZnJvbSBcIi4vdXNlVXNlck1ldGFkYXRhXCI7XHJcbmltcG9ydCB7IENhc2VQZXJtaXNzaW9uTGV2ZWwgfSBmcm9tIFwiLi4vRW51bXMvQ2FzZVBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyBPcmRlclBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9PcmRlclBlcm1pc3Npb25MZXZlbFwiO1xyXG5pbXBvcnQgeyB1c2VySGFzUG9ydGFsQWNjZXNzIH0gZnJvbSBcIi4uL0hlbHBlcnMvdXNlckhhc1BvcnRhbEFjY2Vzc1wiO1xyXG5pbXBvcnQgeyBJbnZvaWNlUGVybWlzc2lvbkxldmVsIH0gZnJvbSBcIi4uL0VudW1zL0ludm9pY2VQZXJtaXNzaW9uTGV2ZWxcIjtcclxuaW1wb3J0IHsgUHJvamVjdFBlcm1pc3Npb25MZXZlbCB9IGZyb20gXCIuLi9FbnVtcy9Qcm9qZWN0UGVybWlzc2lvbkxldmVsXCI7XHJcblxyXG4vKiogSG9vayBmb3IgYWxsIGRhdGEgcmV0cmlldmFscyB0byBwZXJmb3JtICovXHJcbmV4cG9ydCBjb25zdCB1c2VEYXRhUmV0cmlldmFscyA9ICgpID0+IHtcclxuICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gdXNlRGF0YVNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHVzZXJNZXRhZGF0YSA9IHVzZVVzZXJNZXRhZGF0YSgpO1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgaW5jaWRlbnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5pbmNpZGVudHMpO1xyXG4gICAgY29uc3QgY29udGFjdHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmNvbnRhY3RzKTtcclxuICAgIGNvbnN0IHByb2R1Y3RzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5wcm9kdWN0cyk7XHJcbiAgICBjb25zdCBvcmRlcnMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLm9yZGVycyk7XHJcbiAgICBjb25zdCBpbnZvaWNlcyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW52b2ljZXMpO1xyXG4gICAgY29uc3QgbmV0d29ya09yZGVycyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUubmV0d29ya09yZGVycyk7XHJcbiAgICBjb25zdCBwcm9qZWN0cyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUucHJvamVjdHMpO1xyXG4gICAgY29uc3QgY3VzdG9tZXJBc3NldHMgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmN1c3RvbWVyQXNzZXRzKTtcclxuICAgIGNvbnN0IGFjY291bnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5hY2NvdW50cyk7XHJcbiAgICBjb25zdCBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlcyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSkgPT4gc3RhdGUucG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXMpO1xyXG4gICAgY29uc3QgYmxvZ1Bvc3RzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBEZWZhdWx0Um9vdFN0YXRlKSA9PiBzdGF0ZS5ibG9nUG9zdHMpO1xyXG4gICAgY29uc3QgeyB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEgfSA9IHVzZUFwcEluc2lnaHRzKCk7XHJcblxyXG4gICAgLy8gUmV0cmlldmUgdGhlIEFjY291bnRzXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHVuYXV0aGVudGljYXRlZFxyXG4gICAgICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWNjb3VudHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiB8fCBhY2NvdW50cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm8gYWNjZXNzIHRvIHRoZSBQb3J0YWxcclxuICAgICAgICBpZiAoIXVzZXJIYXNQb3J0YWxBY2Nlc3ModXNlck1ldGFkYXRhKSkge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0aGUgcmV0cmlldmFsIChjb3NtZXRpYyBvbmx5OyBFbnRpdHkgUGVybWlzc2lvbnMgd291bGQgYmxvY2sgdGhpcylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldEFjY291bnRzXCIsIGFjY291bnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH0gfSk7XHJcblxyXG4gICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXRyaWV2ZUFjY291bnRzKClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJTZXRBY2NvdW50c1wiLCBhY2NvdW50czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhIH0gfSkpXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBhY2NvdW50cywgdXNlck1ldGFkYXRhLmNvbnRhY3RJZF0pO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBDb250YWN0c1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICAvLyBJZiB1bmF1dGhlbnRpY2F0ZWRcclxuICAgICAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbnRhY3RzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgfHwgY29udGFjdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vIGFjY2VzcyB0byB0aGUgUG9ydGFsXHJcbiAgICAgICAgLy8gTk9URTogU29tZW9uZSB3aXRob3V0IENvbnRhY3Qtc3BlY2lmaWMgcGVybWlzc2lvbnMgbXVzdCBiZSBwZXJtaXR0ZWQgdG8gcGVyZm9ybSB0aGVcclxuICAgICAgICAvLyBDb250YWN0cyByZXRyaWV2YWwsIGFzIHRoZWlyIG93biBDb250YWN0IHJlY29yZCB3aWxsIGJlIHJldHVybmVkLCB3aGljaCBpcyByZXF1aXJlZFxyXG4gICAgICAgIC8vIGZvciB0aGUgJ1Byb2ZpbGUnIHBhZ2UgKCMzNDc4NikuXHJcbiAgICAgICAgaWYgKCF1c2VySGFzUG9ydGFsQWNjZXNzKHVzZXJNZXRhZGF0YSkpIHtcclxuICAgICAgICAgICAgLy8gRG8gbm90IGF0dGVtcHQgdGhlIHJldHJpZXZhbCAoY29zbWV0aWMgb25seTsgRW50aXR5IFBlcm1pc3Npb25zIHdvdWxkIGJsb2NrIHRoaXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXRDb250YWN0c1wiLCBjb250YWN0czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucmV0cmlldmVDb250YWN0cygpXHJcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkaXNwYXRjaCh7IHR5cGU6IFwiU2V0Q29udGFjdHNcIiwgY29udGFjdHM6IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YSB9IH0pKVxyXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiQWRkTGF0ZXN0RXJyb3JcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSwgW2RhdGFTZXJ2aWNlLCBkaXNwYXRjaCwgY29udGFjdHMsIHVzZXJNZXRhZGF0YS5jb250YWN0SWRdKTtcclxuXHJcbiAgICAvLyBSZXRyaWV2ZSB0aGUgYWN0aXZlIENhc2VzXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIElmIHVuYXV0aGVudGljYXRlZFxyXG4gICAgICAgICAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgaW5jaWRlbnRzLmFjdGl2ZUluY2lkZW50cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiIHx8XHJcbiAgICAgICAgICAgICAgICBpbmNpZGVudHMuYWN0aXZlSW5jaWRlbnRzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm8gYWNjZXNzIGFzIGEgYmFzZSBwZXJtaXNzaW9uIG9yIGhhcyBubyBhY2Nlc3MgdG8gQ2FzZXMuXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHVzZXJNZXRhZGF0YS5iYXNlUGVybWlzc2lvbkxldmVsID09PSBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdIHx8XHJcbiAgICAgICAgICAgICAgICB1c2VyTWV0YWRhdGEucG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCA9PT0gQ2FzZVBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRoZSByZXRyaWV2YWwgKGNvc21ldGljIG9ubHk7IEVudGl0eSBQZXJtaXNzaW9ucyB3b3VsZCBibG9jayB0aGlzKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIlNldE1ham9ySW5jaWRlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVNYWpvckluY2lkZW50czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9LFxyXG4gICAgICAgICAgICAgICAgcmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiU2V0QWN0aXZlSW5jaWRlbnRzXCIsIGFjdGl2ZUluY2lkZW50czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBkYXRhU2VydmljZS5yZXRyaWV2ZUFjdGl2ZUluY2lkZW50cygpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZU1ham9ySW5jaWRlbnRzID0gZGF0YS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKGluY2lkZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNpZGVudC5jYXNldHlwZWNvZGUgPT09IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl0gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGluY2lkZW50LnN0YXR1c2NvZGUgPT09IEluY2lkZW50U3RhdHVzQ29kZVtcIkluIFByb2dyZXNzXCJdIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNpZGVudC5zdGF0dXNjb2RlID09PSBJbmNpZGVudFN0YXR1c0NvZGVbXCJPbiBIb2xkXCJdIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNpZGVudC5zdGF0dXNjb2RlID09PSBJbmNpZGVudFN0YXR1c0NvZGVbXCJQZW5kaW5nIEZlZWRiYWNrXCJdKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vbk1ham9ySW5jaWRlbnRzID0gZGF0YS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKGluY2lkZW50KSA9PiBpbmNpZGVudC5jYXNldHlwZWNvZGUgIT09IENhc2VUeXBlW1wiTWFqb3IgSW5jaWRlbnRcIl1cclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzID0gYXdhaXQgZGF0YVNlcnZpY2UucmV0cmlldmVSZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRNYWpvckluY2lkZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1ham9ySW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IGFjdGl2ZU1ham9ySW5jaWRlbnRzIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IHJlY2VudGx5UmVzb2x2ZWRNYWpvckluY2lkZW50cyB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0QWN0aXZlSW5jaWRlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlSW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGE6IG5vbk1ham9ySW5jaWRlbnRzIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvcjogZXJyb3IgYXMgRXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSgpO1xyXG4gICAgfSwgW2RhdGFTZXJ2aWNlLCBkaXNwYXRjaCwgaW5jaWRlbnRzLCB1c2VyTWV0YWRhdGEuY29udGFjdElkXSk7XHJcblxyXG4gICAgLy8gUmV0cmlldmUgdGhlIEN1c3RvbWVyIFByb2R1Y3RzXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHVuYXV0aGVudGljYXRlZFxyXG4gICAgICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJvZHVjdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiB8fCBwcm9kdWN0cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm8gYWNjZXNzIHRvIHRoZSBQb3J0YWxcclxuICAgICAgICBpZiAoIXVzZXJIYXNQb3J0YWxBY2Nlc3ModXNlck1ldGFkYXRhKSkge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0aGUgcmV0cmlldmFsIChjb3NtZXRpYyBvbmx5OyBFbnRpdHkgUGVybWlzc2lvbnMgd291bGQgYmxvY2sgdGhpcylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldFByb2R1Y3RzXCIsIHByb2R1Y3RzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH0gfSk7XHJcblxyXG4gICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXRyaWV2ZVByb2R1Y3RzKClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJTZXRQcm9kdWN0c1wiLCBwcm9kdWN0czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhIH0gfSkpXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBwcm9kdWN0cywgdXNlck1ldGFkYXRhLmNvbnRhY3RJZF0pO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBNYWpvciBJbmNpZGVudCBVcGRhdGVzXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHVuYXV0aGVudGljYXRlZFxyXG4gICAgICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgfHxcclxuICAgICAgICAgICAgcG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vIGFjY2VzcyBhcyBhIGJhc2UgcGVybWlzc2lvbiBvciBoYXMgbm8gYWNjZXNzIHRvIENhc2VzLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLmJhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gfHxcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLnBvcnRhbENhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IENhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gRG8gbm90IGF0dGVtcHQgdGhlIHJldHJpZXZhbCAoY29zbWV0aWMgb25seTsgRW50aXR5IFBlcm1pc3Npb25zIHdvdWxkIGJsb2NrIHRoaXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXRQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlc1wiLCBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlczogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucmV0cmlldmVQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlc1JlZ2FyZGluZ0FjdGl2ZUFuZFJlY2VudGx5UmVzb2x2ZWRNYWpvckluY2lkZW50cygpXHJcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PlxyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0UG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXNcIixcclxuICAgICAgICAgICAgICAgICAgICBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlczogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhIH0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlcywgdXNlck1ldGFkYXRhLmNvbnRhY3RJZF0pO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBCbG9nIFBvc3RzXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHRoZSBCbG9nIFBvc3QncyBsb2FkaW5nIHN0YXR1cyBpcyBhbHJlYWR5IGxvYWRlZCBvciBsb2FkaW5nLCBkbyBub3QgYXR0ZW1wdCB0aGUgcmV0cmlldmFsLlxyXG4gICAgICAgIGlmIChibG9nUG9zdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiB8fCBibG9nUG9zdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gUmV0dXJuIGVhcmx5IGlmIHRoZSBVc2VyIGhhcyBubyBhY2Nlc3MgdG8gdGhlIFBvcnRhbC5cclxuICAgICAgICBpZiAoIXVzZXJIYXNQb3J0YWxBY2Nlc3ModXNlck1ldGFkYXRhKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiU2V0QmxvZ1Bvc3RzXCIsIGJsb2dQb3N0czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucmV0cmlldmVCbG9nUG9zdFJlY29yZHMoKVxyXG4gICAgICAgICAgICAudGhlbigoZGF0YSkgPT5cclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIlNldEJsb2dQb3N0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGJsb2dQb3N0czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhIH0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBibG9nUG9zdHNdKTtcclxuXHJcbiAgICAvLyBSZXRyaWV2ZSB0aGUgTmV0d29yayBPcmRlcnNcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgdW5hdXRoZW50aWNhdGVkXHJcbiAgICAgICAgaWYgKCF1c2VyTWV0YWRhdGEuY29udGFjdElkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChuZXR3b3JrT3JkZXJzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgfHwgbmV0d29ya09yZGVycy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm8gYWNjZXNzIGFzIGEgYmFzZSBwZXJtaXNzaW9uIG9yIGhhcyBubyBhY2Nlc3MgdG8gT3JkZXJzLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLmJhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gfHxcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLnBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsID09PSBPcmRlclBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0aGUgcmV0cmlldmFsIChjb3NtZXRpYyBvbmx5OyBFbnRpdHkgUGVybWlzc2lvbnMgd291bGQgYmxvY2sgdGhpcylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldE5ldHdvcmtPcmRlcnNcIiwgbmV0d29ya09yZGVyczogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucmV0cmlldmVOZXR3b3JrT3JkZXJzKClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXROZXR3b3JrT3JkZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbmV0d29ya09yZGVyczogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhIH0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBuZXR3b3JrT3JkZXJzLCB1c2VyTWV0YWRhdGEuY29udGFjdElkXSk7XHJcblxyXG4gICAgLy8gUmV0cmlldmUgdGhlIFByb2plY3RzXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIC8vIElmIHVuYXV0aGVudGljYXRlZFxyXG4gICAgICAgIGlmICghdXNlck1ldGFkYXRhLmNvbnRhY3RJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJvamVjdHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkZWRcIiB8fCBwcm9qZWN0cy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm8gYWNjZXNzIGFzIGEgYmFzZSBwZXJtaXNzaW9uIG9yIGhhcyBubyBhY2Nlc3MgdG8gT3JkZXJzLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLmJhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gfHxcclxuICAgICAgICAgICAgKHVzZXJNZXRhZGF0YS5wb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCA9PT0gT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gJiZcclxuICAgICAgICAgICAgICAgIHVzZXJNZXRhZGF0YS5wb3J0YWxQcm9qZWN0UGVybWlzc2lvbkxldmVsID09PSBQcm9qZWN0UGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0aGUgcmV0cmlldmFsIChjb3NtZXRpYyBvbmx5OyBFbnRpdHkgUGVybWlzc2lvbnMgd291bGQgYmxvY2sgdGhpcylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldFByb2plY3RzXCIsIHByb2plY3RzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGluZ1wiIH0gfSk7XHJcblxyXG4gICAgICAgIGRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXRyaWV2ZVByb2plY3RzKClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRQcm9qZWN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3RzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGEgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCIsIGVycm9yIH0pO1xyXG4gICAgICAgICAgICAgICAgdHJhY2tFeGNlcHRpb25XaXRoQmlzdGVjaE1ldGFkYXRhPy4oZXJyb3IpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0sIFtkYXRhU2VydmljZSwgZGlzcGF0Y2gsIHByb2plY3RzLCB1c2VyTWV0YWRhdGEuY29udGFjdElkXSk7XHJcblxyXG4gICAgLy8gUmV0cmlldmUgdGhlIE9yZGVyc1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICAvLyBJZiB1bmF1dGhlbnRpY2F0ZWRcclxuICAgICAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9yZGVycy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRlZFwiIHx8IG9yZGVycy5sb2FkaW5nU3RhdHVzID09PSBcImxvYWRpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm8gYWNjZXNzIGFzIGEgYmFzZSBwZXJtaXNzaW9uIG9yIGhhcyBubyBhY2Nlc3MgdG8gT3JkZXJzLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLmJhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gfHxcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLnBvcnRhbE9yZGVyUGVybWlzc2lvbkxldmVsID09PSBPcmRlclBlcm1pc3Npb25MZXZlbFtcIk5vIEFjY2Vzc1wiXVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgYXR0ZW1wdCB0aGUgcmV0cmlldmFsIChjb3NtZXRpYyBvbmx5OyBFbnRpdHkgUGVybWlzc2lvbnMgd291bGQgYmxvY2sgdGhpcylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBcIlNldE9yZGVyc1wiLCBvcmRlcnM6IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkaW5nXCIgfSB9KTtcclxuXHJcbiAgICAgICAgZGF0YVNlcnZpY2VcclxuICAgICAgICAgICAgLnJldHJpZXZlT3JkZXJzKClcclxuICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRPcmRlcnNcIixcclxuICAgICAgICAgICAgICAgICAgICBvcmRlcnM6IHsgbG9hZGluZ1N0YXR1czogXCJsb2FkZWRcIiwgZGF0YSB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IFwiQWRkTGF0ZXN0RXJyb3JcIiwgZXJyb3IgfSk7XHJcbiAgICAgICAgICAgICAgICB0cmFja0V4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGE/LihlcnJvcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfSwgW2RhdGFTZXJ2aWNlLCBkaXNwYXRjaCwgb3JkZXJzLCB1c2VyTWV0YWRhdGEuY29udGFjdElkXSk7XHJcblxyXG4gICAgLy8gUmV0cmlldmUgdGhlIEN1c3RvbWVyIEFzc2V0c1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICAvLyBJZiB1bmF1dGhlbnRpY2F0ZWRcclxuICAgICAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGN1c3RvbWVyQXNzZXRzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgfHwgY3VzdG9tZXJBc3NldHMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vIGFjY2VzcyBhcyBhIGJhc2UgcGVybWlzc2lvbiBvciBoYXMgbm8gYWNjZXNzIHRvIE9yZGVycy5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHVzZXJNZXRhZGF0YS5iYXNlUGVybWlzc2lvbkxldmVsID09PSBCYXNlUGVybWlzc2lvbkxldmVsW1wiTm8gQWNjZXNzXCJdIHx8XHJcbiAgICAgICAgICAgIHVzZXJNZXRhZGF0YS5wb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCA9PT0gT3JkZXJQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gRG8gbm90IGF0dGVtcHQgdGhlIHJldHJpZXZhbCAoY29zbWV0aWMgb25seTsgRW50aXR5IFBlcm1pc3Npb25zIHdvdWxkIGJsb2NrIHRoaXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXRDdXN0b21lckFzc2V0c1wiLCBjdXN0b21lckFzc2V0czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucmV0cmlldmVDdXN0b21lckFzc2V0cygpXHJcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PlxyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU2V0Q3VzdG9tZXJBc3NldHNcIixcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21lckFzc2V0czogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRlZFwiLCBkYXRhIH0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBjdXN0b21lckFzc2V0cywgdXNlck1ldGFkYXRhLmNvbnRhY3RJZF0pO1xyXG5cclxuICAgIC8vIFJldHJpZXZlIHRoZSBJbnZvaWNlc1xyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICAvLyBJZiB1bmF1dGhlbnRpY2F0ZWRcclxuICAgICAgICBpZiAoIXVzZXJNZXRhZGF0YS5jb250YWN0SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGludm9pY2VzLmxvYWRpbmdTdGF0dXMgPT09IFwibG9hZGVkXCIgfHwgaW52b2ljZXMubG9hZGluZ1N0YXR1cyA9PT0gXCJsb2FkaW5nXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vIGFjY2VzcyBhcyBhIGJhc2UgcGVybWlzc2lvbiBvciBoYXMgbm8gYWNjZXNzIHRvIEludm9pY2VzLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLmJhc2VQZXJtaXNzaW9uTGV2ZWwgPT09IEJhc2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl0gfHxcclxuICAgICAgICAgICAgdXNlck1ldGFkYXRhLnBvcnRhbEludm9pY2VQZXJtaXNzaW9uTGV2ZWwgPT09IEludm9pY2VQZXJtaXNzaW9uTGV2ZWxbXCJObyBBY2Nlc3NcIl1cclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gRG8gbm90IGF0dGVtcHQgdGhlIHJldHJpZXZhbCAoY29zbWV0aWMgb25seTsgRW50aXR5IFBlcm1pc3Npb25zIHdvdWxkIGJsb2NrIHRoaXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXRJbnZvaWNlc1wiLCBpbnZvaWNlczogeyBsb2FkaW5nU3RhdHVzOiBcImxvYWRpbmdcIiB9IH0pO1xyXG5cclxuICAgICAgICBkYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucmV0cmlldmVJbnZvaWNlcygpXHJcbiAgICAgICAgICAgIC50aGVuKChkYXRhOiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJTZXRJbnZvaWNlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGludm9pY2VzOiB7IGxvYWRpbmdTdGF0dXM6IFwibG9hZGVkXCIsIGRhdGEgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJBZGRMYXRlc3RFcnJvclwiLCBlcnJvciB9KTtcclxuICAgICAgICAgICAgICAgIHRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YT8uKGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9LCBbZGF0YVNlcnZpY2UsIGRpc3BhdGNoLCBpbnZvaWNlcywgdXNlck1ldGFkYXRhLmNvbnRhY3RJZF0pO1xyXG59O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgUmVhY3RSb3V0ZXJQcm9tcHQgZnJvbSBcInJlYWN0LXJvdXRlci1wcm9tcHRcIjtcclxuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdGF0ZSwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gXCIuL0NvbXBvbmVudHMvSGVhZGVyXCI7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25QYW5lbCB9IGZyb20gXCIuL0NvbXBvbmVudHMvTmF2aWdhdGlvblBhbmVsXCI7XHJcbmltcG9ydCB7IEZlZWRiYWNrUGFuZSB9IGZyb20gXCIuL0NvbXBvbmVudHMvRmVlZGJhY2tQYW5lXCI7XHJcbmltcG9ydCB7IHVzZVBhZ2VOYXZpZ2F0aW9uIH0gZnJvbSBcIi4vSG9va3MvdXNlUGFnZU5hdmlnYXRpb25cIjtcclxuaW1wb3J0IHsgdXNlRGF0YVJldHJpZXZhbHMgfSBmcm9tIFwiLi9Ib29rcy91c2VEYXRhUmV0cmlldmFsc1wiO1xyXG5pbXBvcnQgeyB1c2VMb2NhdGlvbiB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IEVudmlyb25tZW50QmFubmVyIH0gZnJvbSBcIi4vQ29tcG9uZW50cy9FbnZpcm9ubWVudEJhbm5lclwiO1xyXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuL0NvbXBvbmVudHMvTW9kYWxcIjtcclxuXHJcbi8qKiBBcHBsaWNhdGlvbiBlbnRyeSBwb2ludCAqL1xyXG5leHBvcnQgY29uc3QgQXBwOiBSZWFjdC5GQyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHsgcm91dGVzIH0gPSB1c2VQYWdlTmF2aWdhdGlvbigpO1xyXG4gICAgY29uc3QgbG9jYXRpb24gPSB1c2VMb2NhdGlvbigpO1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgY29uc3QgW2lzTmF2aWdhdGlvblBhbmVsRXhwYW5kZWQsIHNldE5hdmlnYXRpb25QYW5lbEV4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IGRpcnR5QmFubmVyU2V0dGluZ3MgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IERlZmF1bHRSb290U3RhdGUpID0+IHN0YXRlLmRpcnR5QmFubmVyU2V0dGluZ3MpO1xyXG4gICAgY29uc3QgW3Byb21wdEtleSwgc2V0UHJvbXB0S2V5XSA9IHVzZVN0YXRlKDEpO1xyXG4gICAgdXNlRGF0YVJldHJpZXZhbHMoKTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHNldE5hdmlnYXRpb25QYW5lbEV4cGFuZGVkKGZhbHNlKTtcclxuICAgIH0sIFtsb2NhdGlvbl0pO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJBcHBcIj5cclxuICAgICAgICAgICAgPEhlYWRlclxyXG4gICAgICAgICAgICAgICAgc2V0TmF2aWdhdGlvblBhbmVsRXhwYW5kZWQ9e3NldE5hdmlnYXRpb25QYW5lbEV4cGFuZGVkfVxyXG4gICAgICAgICAgICAgICAgaXNOYXZpZ2F0aW9uUGFuZWxFeHBhbmRlZD17aXNOYXZpZ2F0aW9uUGFuZWxFeHBhbmRlZH1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPEVudmlyb25tZW50QmFubmVyIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2luZ2xlLXBhZ2UtYXBwbGljYXRpb24tYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPE5hdmlnYXRpb25QYW5lbFxyXG4gICAgICAgICAgICAgICAgICAgIGlzTmF2aWdhdGlvblBhbmVsRXhwYW5kZWQ9e2lzTmF2aWdhdGlvblBhbmVsRXhwYW5kZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNOYXZpZ2F0aW9uUGFuZWxFeHBhbmRlZD17c2V0TmF2aWdhdGlvblBhbmVsRXhwYW5kZWR9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAge3JvdXRlc31cclxuICAgICAgICAgICAgICAgIDxSZWFjdFJvdXRlclByb21wdCB3aGVuPXshIWRpcnR5QmFubmVyU2V0dGluZ3N9IGtleT17cHJvbXB0S2V5fT5cclxuICAgICAgICAgICAgICAgICAgICB7KHsgaXNBY3RpdmUsIG9uQ29uZmlybSwgb25DYW5jZWwgfSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8TW9kYWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTW9kYWxTaG93bj17aXNBY3RpdmV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc01vZGFsU2hvd249eygpID0+IG9uQ2FuY2VsKG51bGwpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uSW5mbz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc01vZGFsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlVuc2F2ZWQgY2hhbmdlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Vycm9yTW9kYWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbENvbnRlbnQ6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+WW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbGVhdmUgd2l0aG91dCBzYXZpbmc/PC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsQnV0dG9uTGFiZWw6IFwiTGVhdmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxUaXRsZTogXCJVbnNhdmVkIGNoYW5nZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGRpcnR5IGZsYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJTZXREaXJ0eUJhbm5lclNldHRpbmdzXCIsIGRpcnR5QmFubmVyU2V0dGluZ3M6IHVuZGVmaW5lZCB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbG9zZSB0aGUgcHJvbXB0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNvbmZpcm0obnVsbCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHByb21wdCAodG8gYWxsb3cgaXQgdG8gcG9wdXAgYWdhaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9tcHRLZXkocHJvbXB0S2V5ICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L01vZGFsPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L1JlYWN0Um91dGVyUHJvbXB0PlxyXG4gICAgICAgICAgICAgICAgPEZlZWRiYWNrUGFuZSAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICk7XHJcbn07XHJcbiIsImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDInO1xuXG4vKipcbiAqIEFkYXB0ZWQgZnJvbSBSZWFjdDogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3NoYXJlZC9mb3JtYXRQcm9kRXJyb3JNZXNzYWdlLmpzXG4gKlxuICogRG8gbm90IHJlcXVpcmUgdGhpcyBtb2R1bGUgZGlyZWN0bHkhIFVzZSBub3JtYWwgdGhyb3cgZXJyb3IgY2FsbHMuIFRoZXNlIG1lc3NhZ2VzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBlcnJvciBjb2Rlc1xuICogZHVyaW5nIGJ1aWxkLlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqL1xuZnVuY3Rpb24gZm9ybWF0UHJvZEVycm9yTWVzc2FnZShjb2RlKSB7XG4gIHJldHVybiBcIk1pbmlmaWVkIFJlZHV4IGVycm9yICNcIiArIGNvZGUgKyBcIjsgdmlzaXQgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvRXJyb3JzP2NvZGU9XCIgKyBjb2RlICsgXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgXCIgKyAndXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycy4gJztcbn1cblxuLy8gSW5saW5lZCB2ZXJzaW9uIG9mIHRoZSBgc3ltYm9sLW9ic2VydmFibGVgIHBvbHlmaWxsXG52YXIgJCRvYnNlcnZhYmxlID0gKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLm9ic2VydmFibGUgfHwgJ0BAb2JzZXJ2YWJsZSc7XG59KSgpO1xuXG4vKipcbiAqIFRoZXNlIGFyZSBwcml2YXRlIGFjdGlvbiB0eXBlcyByZXNlcnZlZCBieSBSZWR1eC5cbiAqIEZvciBhbnkgdW5rbm93biBhY3Rpb25zLCB5b3UgbXVzdCByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBJZiB0aGUgY3VycmVudCBzdGF0ZSBpcyB1bmRlZmluZWQsIHlvdSBtdXN0IHJldHVybiB0aGUgaW5pdGlhbCBzdGF0ZS5cbiAqIERvIG5vdCByZWZlcmVuY2UgdGhlc2UgYWN0aW9uIHR5cGVzIGRpcmVjdGx5IGluIHlvdXIgY29kZS5cbiAqL1xudmFyIHJhbmRvbVN0cmluZyA9IGZ1bmN0aW9uIHJhbmRvbVN0cmluZygpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgnJykuam9pbignLicpO1xufTtcblxudmFyIEFjdGlvblR5cGVzID0ge1xuICBJTklUOiBcIkBAcmVkdXgvSU5JVFwiICsgcmFuZG9tU3RyaW5nKCksXG4gIFJFUExBQ0U6IFwiQEByZWR1eC9SRVBMQUNFXCIgKyByYW5kb21TdHJpbmcoKSxcbiAgUFJPQkVfVU5LTk9XTl9BQ1RJT046IGZ1bmN0aW9uIFBST0JFX1VOS05PV05fQUNUSU9OKCkge1xuICAgIHJldHVybiBcIkBAcmVkdXgvUFJPQkVfVU5LTk9XTl9BQ1RJT05cIiArIHJhbmRvbVN0cmluZygpO1xuICB9XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBvYmogVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGFyZ3VtZW50IGFwcGVhcnMgdG8gYmUgYSBwbGFpbiBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgdmFyIHByb3RvID0gb2JqO1xuXG4gIHdoaWxlIChPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pICE9PSBudWxsKSB7XG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopID09PSBwcm90bztcbn1cblxuLy8gSW5saW5lZCAvIHNob3J0ZW5lZCB2ZXJzaW9uIG9mIGBraW5kT2ZgIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQva2luZC1vZlxuZnVuY3Rpb24gbWluaUtpbmRPZih2YWwpIHtcbiAgaWYgKHZhbCA9PT0gdm9pZCAwKSByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIGlmICh2YWwgPT09IG51bGwpIHJldHVybiAnbnVsbCc7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbDtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgY2FzZSAnc3ltYm9sJzpcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB7XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuICdhcnJheSc7XG4gIGlmIChpc0RhdGUodmFsKSkgcmV0dXJuICdkYXRlJztcbiAgaWYgKGlzRXJyb3IodmFsKSkgcmV0dXJuICdlcnJvcic7XG4gIHZhciBjb25zdHJ1Y3Rvck5hbWUgPSBjdG9yTmFtZSh2YWwpO1xuXG4gIHN3aXRjaCAoY29uc3RydWN0b3JOYW1lKSB7XG4gICAgY2FzZSAnU3ltYm9sJzpcbiAgICBjYXNlICdQcm9taXNlJzpcbiAgICBjYXNlICdXZWFrTWFwJzpcbiAgICBjYXNlICdXZWFrU2V0JzpcbiAgICBjYXNlICdNYXAnOlxuICAgIGNhc2UgJ1NldCc6XG4gICAgICByZXR1cm4gY29uc3RydWN0b3JOYW1lO1xuICB9IC8vIG90aGVyXG5cblxuICByZXR1cm4gdHlwZS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJycpO1xufVxuXG5mdW5jdGlvbiBjdG9yTmFtZSh2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwuY29uc3RydWN0b3IgPT09ICdmdW5jdGlvbicgPyB2YWwuY29uc3RydWN0b3IubmFtZSA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzRXJyb3IodmFsKSB7XG4gIHJldHVybiB2YWwgaW5zdGFuY2VvZiBFcnJvciB8fCB0eXBlb2YgdmFsLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIHZhbC5jb25zdHJ1Y3RvciAmJiB0eXBlb2YgdmFsLmNvbnN0cnVjdG9yLnN0YWNrVHJhY2VMaW1pdCA9PT0gJ251bWJlcic7XG59XG5cbmZ1bmN0aW9uIGlzRGF0ZSh2YWwpIHtcbiAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHJldHVybiB0cnVlO1xuICByZXR1cm4gdHlwZW9mIHZhbC50b0RhdGVTdHJpbmcgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbC5nZXREYXRlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWwuc2V0RGF0ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZnVuY3Rpb24ga2luZE9mKHZhbCkge1xuICB2YXIgdHlwZU9mVmFsID0gdHlwZW9mIHZhbDtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHR5cGVPZlZhbCA9IG1pbmlLaW5kT2YodmFsKTtcbiAgfVxuXG4gIHJldHVybiB0eXBlT2ZWYWw7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqXG4gKiAqKldlIHJlY29tbWVuZCB1c2luZyB0aGUgYGNvbmZpZ3VyZVN0b3JlYCBtZXRob2RcbiAqIG9mIHRoZSBgQHJlZHV4anMvdG9vbGtpdGAgcGFja2FnZSoqLCB3aGljaCByZXBsYWNlcyBgY3JlYXRlU3RvcmVgLlxuICpcbiAqIFJlZHV4IFRvb2xraXQgaXMgb3VyIHJlY29tbWVuZGVkIGFwcHJvYWNoIGZvciB3cml0aW5nIFJlZHV4IGxvZ2ljIHRvZGF5LFxuICogaW5jbHVkaW5nIHN0b3JlIHNldHVwLCByZWR1Y2VycywgZGF0YSBmZXRjaGluZywgYW5kIG1vcmUuXG4gKlxuICogKipGb3IgbW9yZSBkZXRhaWxzLCBwbGVhc2UgcmVhZCB0aGlzIFJlZHV4IGRvY3MgcGFnZToqKlxuICogKipodHRwczovL3JlZHV4LmpzLm9yZy9pbnRyb2R1Y3Rpb24vd2h5LXJ0ay1pcy1yZWR1eC10b2RheSoqXG4gKlxuICogYGNvbmZpZ3VyZVN0b3JlYCBmcm9tIFJlZHV4IFRvb2xraXQgaXMgYW4gaW1wcm92ZWQgdmVyc2lvbiBvZiBgY3JlYXRlU3RvcmVgIHRoYXRcbiAqIHNpbXBsaWZpZXMgc2V0dXAgYW5kIGhlbHBzIGF2b2lkIGNvbW1vbiBidWdzLlxuICpcbiAqIFlvdSBzaG91bGQgbm90IGJlIHVzaW5nIHRoZSBgcmVkdXhgIGNvcmUgcGFja2FnZSBieSBpdHNlbGYgdG9kYXksIGV4Y2VwdCBmb3IgbGVhcm5pbmcgcHVycG9zZXMuXG4gKiBUaGUgYGNyZWF0ZVN0b3JlYCBtZXRob2QgZnJvbSB0aGUgY29yZSBgcmVkdXhgIHBhY2thZ2Ugd2lsbCBub3QgYmUgcmVtb3ZlZCwgYnV0IHdlIGVuY291cmFnZVxuICogYWxsIHVzZXJzIHRvIG1pZ3JhdGUgdG8gdXNpbmcgUmVkdXggVG9vbGtpdCBmb3IgYWxsIFJlZHV4IGNvZGUuXG4gKlxuICogSWYgeW91IHdhbnQgdG8gdXNlIGBjcmVhdGVTdG9yZWAgd2l0aG91dCB0aGlzIHZpc3VhbCBkZXByZWNhdGlvbiB3YXJuaW5nLCB1c2VcbiAqIHRoZSBgbGVnYWN5X2NyZWF0ZVN0b3JlYCBpbXBvcnQgaW5zdGVhZDpcbiAqXG4gKiBgaW1wb3J0IHsgbGVnYWN5X2NyZWF0ZVN0b3JlIGFzIGNyZWF0ZVN0b3JlfSBmcm9tICdyZWR1eCdgXG4gKlxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlLCBlbmhhbmNlcikge1xuICB2YXIgX3JlZjI7XG5cbiAgaWYgKHR5cGVvZiBwcmVsb2FkZWRTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZW5oYW5jZXIgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGVuaGFuY2VyID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBhcmd1bWVudHNbM10gPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgwKSA6ICdJdCBsb29rcyBsaWtlIHlvdSBhcmUgcGFzc2luZyBzZXZlcmFsIHN0b3JlIGVuaGFuY2VycyB0byAnICsgJ2NyZWF0ZVN0b3JlKCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gSW5zdGVhZCwgY29tcG9zZSB0aGVtICcgKyAndG9nZXRoZXIgdG8gYSBzaW5nbGUgZnVuY3Rpb24uIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy90dXRvcmlhbHMvZnVuZGFtZW50YWxzL3BhcnQtNC1zdG9yZSNjcmVhdGluZy1hLXN0b3JlLXdpdGgtZW5oYW5jZXJzIGZvciBhbiBleGFtcGxlLicpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBwcmVsb2FkZWRTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZW5oYW5jZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgZW5oYW5jZXIgPSBwcmVsb2FkZWRTdGF0ZTtcbiAgICBwcmVsb2FkZWRTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZW5oYW5jZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBlbmhhbmNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMSkgOiBcIkV4cGVjdGVkIHRoZSBlbmhhbmNlciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJ1wiICsga2luZE9mKGVuaGFuY2VyKSArIFwiJ1wiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW5oYW5jZXIoY3JlYXRlU3RvcmUpKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDIpIDogXCJFeHBlY3RlZCB0aGUgcm9vdCByZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnXCIgKyBraW5kT2YocmVkdWNlcikgKyBcIidcIik7XG4gIH1cblxuICB2YXIgY3VycmVudFJlZHVjZXIgPSByZWR1Y2VyO1xuICB2YXIgY3VycmVudFN0YXRlID0gcHJlbG9hZGVkU3RhdGU7XG4gIHZhciBjdXJyZW50TGlzdGVuZXJzID0gW107XG4gIHZhciBuZXh0TGlzdGVuZXJzID0gY3VycmVudExpc3RlbmVycztcbiAgdmFyIGlzRGlzcGF0Y2hpbmcgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoaXMgbWFrZXMgYSBzaGFsbG93IGNvcHkgb2YgY3VycmVudExpc3RlbmVycyBzbyB3ZSBjYW4gdXNlXG4gICAqIG5leHRMaXN0ZW5lcnMgYXMgYSB0ZW1wb3JhcnkgbGlzdCB3aGlsZSBkaXNwYXRjaGluZy5cbiAgICpcbiAgICogVGhpcyBwcmV2ZW50cyBhbnkgYnVncyBhcm91bmQgY29uc3VtZXJzIGNhbGxpbmdcbiAgICogc3Vic2NyaWJlL3Vuc3Vic2NyaWJlIGluIHRoZSBtaWRkbGUgb2YgYSBkaXNwYXRjaC5cbiAgICovXG5cbiAgZnVuY3Rpb24gZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpIHtcbiAgICBpZiAobmV4dExpc3RlbmVycyA9PT0gY3VycmVudExpc3RlbmVycykge1xuICAgICAgbmV4dExpc3RlbmVycyA9IGN1cnJlbnRMaXN0ZW5lcnMuc2xpY2UoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSBzdGF0ZSB0cmVlIG1hbmFnZWQgYnkgdGhlIHN0b3JlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7YW55fSBUaGUgY3VycmVudCBzdGF0ZSB0cmVlIG9mIHlvdXIgYXBwbGljYXRpb24uXG4gICAqL1xuXG5cbiAgZnVuY3Rpb24gZ2V0U3RhdGUoKSB7XG4gICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDMpIDogJ1lvdSBtYXkgbm90IGNhbGwgc3RvcmUuZ2V0U3RhdGUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuICcgKyAnVGhlIHJlZHVjZXIgaGFzIGFscmVhZHkgcmVjZWl2ZWQgdGhlIHN0YXRlIGFzIGFuIGFyZ3VtZW50LiAnICsgJ1Bhc3MgaXQgZG93biBmcm9tIHRoZSB0b3AgcmVkdWNlciBpbnN0ZWFkIG9mIHJlYWRpbmcgaXQgZnJvbSB0aGUgc3RvcmUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfVxuICAvKipcbiAgICogQWRkcyBhIGNoYW5nZSBsaXN0ZW5lci4gSXQgd2lsbCBiZSBjYWxsZWQgYW55IHRpbWUgYW4gYWN0aW9uIGlzIGRpc3BhdGNoZWQsXG4gICAqIGFuZCBzb21lIHBhcnQgb2YgdGhlIHN0YXRlIHRyZWUgbWF5IHBvdGVudGlhbGx5IGhhdmUgY2hhbmdlZC4gWW91IG1heSB0aGVuXG4gICAqIGNhbGwgYGdldFN0YXRlKClgIHRvIHJlYWQgdGhlIGN1cnJlbnQgc3RhdGUgdHJlZSBpbnNpZGUgdGhlIGNhbGxiYWNrLlxuICAgKlxuICAgKiBZb3UgbWF5IGNhbGwgYGRpc3BhdGNoKClgIGZyb20gYSBjaGFuZ2UgbGlzdGVuZXIsIHdpdGggdGhlIGZvbGxvd2luZ1xuICAgKiBjYXZlYXRzOlxuICAgKlxuICAgKiAxLiBUaGUgc3Vic2NyaXB0aW9ucyBhcmUgc25hcHNob3R0ZWQganVzdCBiZWZvcmUgZXZlcnkgYGRpc3BhdGNoKClgIGNhbGwuXG4gICAqIElmIHlvdSBzdWJzY3JpYmUgb3IgdW5zdWJzY3JpYmUgd2hpbGUgdGhlIGxpc3RlbmVycyBhcmUgYmVpbmcgaW52b2tlZCwgdGhpc1xuICAgKiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gdGhlIGBkaXNwYXRjaCgpYCB0aGF0IGlzIGN1cnJlbnRseSBpbiBwcm9ncmVzcy5cbiAgICogSG93ZXZlciwgdGhlIG5leHQgYGRpc3BhdGNoKClgIGNhbGwsIHdoZXRoZXIgbmVzdGVkIG9yIG5vdCwgd2lsbCB1c2UgYSBtb3JlXG4gICAqIHJlY2VudCBzbmFwc2hvdCBvZiB0aGUgc3Vic2NyaXB0aW9uIGxpc3QuXG4gICAqXG4gICAqIDIuIFRoZSBsaXN0ZW5lciBzaG91bGQgbm90IGV4cGVjdCB0byBzZWUgYWxsIHN0YXRlIGNoYW5nZXMsIGFzIHRoZSBzdGF0ZVxuICAgKiBtaWdodCBoYXZlIGJlZW4gdXBkYXRlZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgYSBuZXN0ZWQgYGRpc3BhdGNoKClgIGJlZm9yZVxuICAgKiB0aGUgbGlzdGVuZXIgaXMgY2FsbGVkLiBJdCBpcywgaG93ZXZlciwgZ3VhcmFudGVlZCB0aGF0IGFsbCBzdWJzY3JpYmVyc1xuICAgKiByZWdpc3RlcmVkIGJlZm9yZSB0aGUgYGRpc3BhdGNoKClgIHN0YXJ0ZWQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgbGF0ZXN0XG4gICAqIHN0YXRlIGJ5IHRoZSB0aW1lIGl0IGV4aXRzLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lciBBIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgb24gZXZlcnkgZGlzcGF0Y2guXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSBmdW5jdGlvbiB0byByZW1vdmUgdGhpcyBjaGFuZ2UgbGlzdGVuZXIuXG4gICAqL1xuXG5cbiAgZnVuY3Rpb24gc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNCkgOiBcIkV4cGVjdGVkIHRoZSBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJ1wiICsga2luZE9mKGxpc3RlbmVyKSArIFwiJ1wiKTtcbiAgICB9XG5cbiAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNSkgOiAnWW91IG1heSBub3QgY2FsbCBzdG9yZS5zdWJzY3JpYmUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuICcgKyAnSWYgeW91IHdvdWxkIGxpa2UgdG8gYmUgbm90aWZpZWQgYWZ0ZXIgdGhlIHN0b3JlIGhhcyBiZWVuIHVwZGF0ZWQsIHN1YnNjcmliZSBmcm9tIGEgJyArICdjb21wb25lbnQgYW5kIGludm9rZSBzdG9yZS5nZXRTdGF0ZSgpIGluIHRoZSBjYWxsYmFjayB0byBhY2Nlc3MgdGhlIGxhdGVzdCBzdGF0ZS4gJyArICdTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvYXBpL3N0b3JlI3N1YnNjcmliZWxpc3RlbmVyIGZvciBtb3JlIGRldGFpbHMuJyk7XG4gICAgfVxuXG4gICAgdmFyIGlzU3Vic2NyaWJlZCA9IHRydWU7XG4gICAgZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpO1xuICAgIG5leHRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVuc3Vic2NyaWJlKCkge1xuICAgICAgaWYgKCFpc1N1YnNjcmliZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg2KSA6ICdZb3UgbWF5IG5vdCB1bnN1YnNjcmliZSBmcm9tIGEgc3RvcmUgbGlzdGVuZXIgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiAnICsgJ1NlZSBodHRwczovL3JlZHV4LmpzLm9yZy9hcGkvc3RvcmUjc3Vic2NyaWJlbGlzdGVuZXIgZm9yIG1vcmUgZGV0YWlscy4nKTtcbiAgICAgIH1cblxuICAgICAgaXNTdWJzY3JpYmVkID0gZmFsc2U7XG4gICAgICBlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzKCk7XG4gICAgICB2YXIgaW5kZXggPSBuZXh0TGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICAgICAgbmV4dExpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgY3VycmVudExpc3RlbmVycyA9IG51bGw7XG4gICAgfTtcbiAgfVxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbiBhY3Rpb24uIEl0IGlzIHRoZSBvbmx5IHdheSB0byB0cmlnZ2VyIGEgc3RhdGUgY2hhbmdlLlxuICAgKlxuICAgKiBUaGUgYHJlZHVjZXJgIGZ1bmN0aW9uLCB1c2VkIHRvIGNyZWF0ZSB0aGUgc3RvcmUsIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlXG4gICAqIGN1cnJlbnQgc3RhdGUgdHJlZSBhbmQgdGhlIGdpdmVuIGBhY3Rpb25gLiBJdHMgcmV0dXJuIHZhbHVlIHdpbGxcbiAgICogYmUgY29uc2lkZXJlZCB0aGUgKipuZXh0Kiogc3RhdGUgb2YgdGhlIHRyZWUsIGFuZCB0aGUgY2hhbmdlIGxpc3RlbmVyc1xuICAgKiB3aWxsIGJlIG5vdGlmaWVkLlxuICAgKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRzIHBsYWluIG9iamVjdCBhY3Rpb25zLiBJZiB5b3Ugd2FudCB0b1xuICAgKiBkaXNwYXRjaCBhIFByb21pc2UsIGFuIE9ic2VydmFibGUsIGEgdGh1bmssIG9yIHNvbWV0aGluZyBlbHNlLCB5b3UgbmVlZCB0b1xuICAgKiB3cmFwIHlvdXIgc3RvcmUgY3JlYXRpbmcgZnVuY3Rpb24gaW50byB0aGUgY29ycmVzcG9uZGluZyBtaWRkbGV3YXJlLiBGb3JcbiAgICogZXhhbXBsZSwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYHJlZHV4LXRodW5rYCBwYWNrYWdlLiBFdmVuIHRoZVxuICAgKiBtaWRkbGV3YXJlIHdpbGwgZXZlbnR1YWxseSBkaXNwYXRjaCBwbGFpbiBvYmplY3QgYWN0aW9ucyB1c2luZyB0aGlzIG1ldGhvZC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGFjdGlvbiBBIHBsYWluIG9iamVjdCByZXByZXNlbnRpbmcg4oCcd2hhdCBjaGFuZ2Vk4oCdLiBJdCBpc1xuICAgKiBhIGdvb2QgaWRlYSB0byBrZWVwIGFjdGlvbnMgc2VyaWFsaXphYmxlIHNvIHlvdSBjYW4gcmVjb3JkIGFuZCByZXBsYXkgdXNlclxuICAgKiBzZXNzaW9ucywgb3IgdXNlIHRoZSB0aW1lIHRyYXZlbGxpbmcgYHJlZHV4LWRldnRvb2xzYC4gQW4gYWN0aW9uIG11c3QgaGF2ZVxuICAgKiBhIGB0eXBlYCBwcm9wZXJ0eSB3aGljaCBtYXkgbm90IGJlIGB1bmRlZmluZWRgLiBJdCBpcyBhIGdvb2QgaWRlYSB0byB1c2VcbiAgICogc3RyaW5nIGNvbnN0YW50cyBmb3IgYWN0aW9uIHR5cGVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBGb3IgY29udmVuaWVuY2UsIHRoZSBzYW1lIGFjdGlvbiBvYmplY3QgeW91IGRpc3BhdGNoZWQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCwgaWYgeW91IHVzZSBhIGN1c3RvbSBtaWRkbGV3YXJlLCBpdCBtYXkgd3JhcCBgZGlzcGF0Y2goKWAgdG9cbiAgICogcmV0dXJuIHNvbWV0aGluZyBlbHNlIChmb3IgZXhhbXBsZSwgYSBQcm9taXNlIHlvdSBjYW4gYXdhaXQpLlxuICAgKi9cblxuXG4gIGZ1bmN0aW9uIGRpc3BhdGNoKGFjdGlvbikge1xuICAgIGlmICghaXNQbGFpbk9iamVjdChhY3Rpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg3KSA6IFwiQWN0aW9ucyBtdXN0IGJlIHBsYWluIG9iamVjdHMuIEluc3RlYWQsIHRoZSBhY3R1YWwgdHlwZSB3YXM6ICdcIiArIGtpbmRPZihhY3Rpb24pICsgXCInLiBZb3UgbWF5IG5lZWQgdG8gYWRkIG1pZGRsZXdhcmUgdG8geW91ciBzdG9yZSBzZXR1cCB0byBoYW5kbGUgZGlzcGF0Y2hpbmcgb3RoZXIgdmFsdWVzLCBzdWNoIGFzICdyZWR1eC10aHVuaycgdG8gaGFuZGxlIGRpc3BhdGNoaW5nIGZ1bmN0aW9ucy4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9mdW5kYW1lbnRhbHMvcGFydC00LXN0b3JlI21pZGRsZXdhcmUgYW5kIGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9mdW5kYW1lbnRhbHMvcGFydC02LWFzeW5jLWxvZ2ljI3VzaW5nLXRoZS1yZWR1eC10aHVuay1taWRkbGV3YXJlIGZvciBleGFtcGxlcy5cIik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpb24udHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDgpIDogJ0FjdGlvbnMgbWF5IG5vdCBoYXZlIGFuIHVuZGVmaW5lZCBcInR5cGVcIiBwcm9wZXJ0eS4gWW91IG1heSBoYXZlIG1pc3NwZWxsZWQgYW4gYWN0aW9uIHR5cGUgc3RyaW5nIGNvbnN0YW50LicpO1xuICAgIH1cblxuICAgIGlmIChpc0Rpc3BhdGNoaW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg5KSA6ICdSZWR1Y2VycyBtYXkgbm90IGRpc3BhdGNoIGFjdGlvbnMuJyk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlzRGlzcGF0Y2hpbmcgPSB0cnVlO1xuICAgICAgY3VycmVudFN0YXRlID0gY3VycmVudFJlZHVjZXIoY3VycmVudFN0YXRlLCBhY3Rpb24pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpc0Rpc3BhdGNoaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdmFyIGxpc3RlbmVycyA9IGN1cnJlbnRMaXN0ZW5lcnMgPSBuZXh0TGlzdGVuZXJzO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgIGxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbjtcbiAgfVxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIHJlZHVjZXIgY3VycmVudGx5IHVzZWQgYnkgdGhlIHN0b3JlIHRvIGNhbGN1bGF0ZSB0aGUgc3RhdGUuXG4gICAqXG4gICAqIFlvdSBtaWdodCBuZWVkIHRoaXMgaWYgeW91ciBhcHAgaW1wbGVtZW50cyBjb2RlIHNwbGl0dGluZyBhbmQgeW91IHdhbnQgdG9cbiAgICogbG9hZCBzb21lIG9mIHRoZSByZWR1Y2VycyBkeW5hbWljYWxseS4gWW91IG1pZ2h0IGFsc28gbmVlZCB0aGlzIGlmIHlvdVxuICAgKiBpbXBsZW1lbnQgYSBob3QgcmVsb2FkaW5nIG1lY2hhbmlzbSBmb3IgUmVkdXguXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG5leHRSZWR1Y2VyIFRoZSByZWR1Y2VyIGZvciB0aGUgc3RvcmUgdG8gdXNlIGluc3RlYWQuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cblxuXG4gIGZ1bmN0aW9uIHJlcGxhY2VSZWR1Y2VyKG5leHRSZWR1Y2VyKSB7XG4gICAgaWYgKHR5cGVvZiBuZXh0UmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTApIDogXCJFeHBlY3RlZCB0aGUgbmV4dFJlZHVjZXIgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICdcIiArIGtpbmRPZihuZXh0UmVkdWNlcikpO1xuICAgIH1cblxuICAgIGN1cnJlbnRSZWR1Y2VyID0gbmV4dFJlZHVjZXI7IC8vIFRoaXMgYWN0aW9uIGhhcyBhIHNpbWlsaWFyIGVmZmVjdCB0byBBY3Rpb25UeXBlcy5JTklULlxuICAgIC8vIEFueSByZWR1Y2VycyB0aGF0IGV4aXN0ZWQgaW4gYm90aCB0aGUgbmV3IGFuZCBvbGQgcm9vdFJlZHVjZXJcbiAgICAvLyB3aWxsIHJlY2VpdmUgdGhlIHByZXZpb3VzIHN0YXRlLiBUaGlzIGVmZmVjdGl2ZWx5IHBvcHVsYXRlc1xuICAgIC8vIHRoZSBuZXcgc3RhdGUgdHJlZSB3aXRoIGFueSByZWxldmFudCBkYXRhIGZyb20gdGhlIG9sZCBvbmUuXG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRVBMQUNFXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEludGVyb3BlcmFiaWxpdHkgcG9pbnQgZm9yIG9ic2VydmFibGUvcmVhY3RpdmUgbGlicmFyaWVzLlxuICAgKiBAcmV0dXJucyB7b2JzZXJ2YWJsZX0gQSBtaW5pbWFsIG9ic2VydmFibGUgb2Ygc3RhdGUgY2hhbmdlcy5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgb2JzZXJ2YWJsZSBwcm9wb3NhbDpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtb2JzZXJ2YWJsZVxuICAgKi9cblxuXG4gIGZ1bmN0aW9uIG9ic2VydmFibGUoKSB7XG4gICAgdmFyIF9yZWY7XG5cbiAgICB2YXIgb3V0ZXJTdWJzY3JpYmUgPSBzdWJzY3JpYmU7XG4gICAgcmV0dXJuIF9yZWYgPSB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBtaW5pbWFsIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIG1ldGhvZC5cbiAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYnNlcnZlciBBbnkgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgYXMgYW4gb2JzZXJ2ZXIuXG4gICAgICAgKiBUaGUgb2JzZXJ2ZXIgb2JqZWN0IHNob3VsZCBoYXZlIGEgYG5leHRgIG1ldGhvZC5cbiAgICAgICAqIEByZXR1cm5zIHtzdWJzY3JpcHRpb259IEFuIG9iamVjdCB3aXRoIGFuIGB1bnN1YnNjcmliZWAgbWV0aG9kIHRoYXQgY2FuXG4gICAgICAgKiBiZSB1c2VkIHRvIHVuc3Vic2NyaWJlIHRoZSBvYnNlcnZhYmxlIGZyb20gdGhlIHN0b3JlLCBhbmQgcHJldmVudCBmdXJ0aGVyXG4gICAgICAgKiBlbWlzc2lvbiBvZiB2YWx1ZXMgZnJvbSB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgICAqL1xuICAgICAgc3Vic2NyaWJlOiBmdW5jdGlvbiBzdWJzY3JpYmUob2JzZXJ2ZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYnNlcnZlciAhPT0gJ29iamVjdCcgfHwgb2JzZXJ2ZXIgPT09IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMSkgOiBcIkV4cGVjdGVkIHRoZSBvYnNlcnZlciB0byBiZSBhbiBvYmplY3QuIEluc3RlYWQsIHJlY2VpdmVkOiAnXCIgKyBraW5kT2Yob2JzZXJ2ZXIpICsgXCInXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gb2JzZXJ2ZVN0YXRlKCkge1xuICAgICAgICAgIGlmIChvYnNlcnZlci5uZXh0KSB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KGdldFN0YXRlKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG9ic2VydmVTdGF0ZSgpO1xuICAgICAgICB2YXIgdW5zdWJzY3JpYmUgPSBvdXRlclN1YnNjcmliZShvYnNlcnZlU3RhdGUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHVuc3Vic2NyaWJlOiB1bnN1YnNjcmliZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sIF9yZWZbJCRvYnNlcnZhYmxlXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sIF9yZWY7XG4gIH0gLy8gV2hlbiBhIHN0b3JlIGlzIGNyZWF0ZWQsIGFuIFwiSU5JVFwiIGFjdGlvbiBpcyBkaXNwYXRjaGVkIHNvIHRoYXQgZXZlcnlcbiAgLy8gcmVkdWNlciByZXR1cm5zIHRoZWlyIGluaXRpYWwgc3RhdGUuIFRoaXMgZWZmZWN0aXZlbHkgcG9wdWxhdGVzXG4gIC8vIHRoZSBpbml0aWFsIHN0YXRlIHRyZWUuXG5cblxuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogQWN0aW9uVHlwZXMuSU5JVFxuICB9KTtcbiAgcmV0dXJuIF9yZWYyID0ge1xuICAgIGRpc3BhdGNoOiBkaXNwYXRjaCxcbiAgICBzdWJzY3JpYmU6IHN1YnNjcmliZSxcbiAgICBnZXRTdGF0ZTogZ2V0U3RhdGUsXG4gICAgcmVwbGFjZVJlZHVjZXI6IHJlcGxhY2VSZWR1Y2VyXG4gIH0sIF9yZWYyWyQkb2JzZXJ2YWJsZV0gPSBvYnNlcnZhYmxlLCBfcmVmMjtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIFJlZHV4IHN0b3JlIHRoYXQgaG9sZHMgdGhlIHN0YXRlIHRyZWUuXG4gKlxuICogKipXZSByZWNvbW1lbmQgdXNpbmcgYGNvbmZpZ3VyZVN0b3JlYCBmcm9tIHRoZVxuICogYEByZWR1eGpzL3Rvb2xraXRgIHBhY2thZ2UqKiwgd2hpY2ggcmVwbGFjZXMgYGNyZWF0ZVN0b3JlYDpcbiAqICoqaHR0cHM6Ly9yZWR1eC5qcy5vcmcvaW50cm9kdWN0aW9uL3doeS1ydGstaXMtcmVkdXgtdG9kYXkqKlxuICpcbiAqIFRoZSBvbmx5IHdheSB0byBjaGFuZ2UgdGhlIGRhdGEgaW4gdGhlIHN0b3JlIGlzIHRvIGNhbGwgYGRpc3BhdGNoKClgIG9uIGl0LlxuICpcbiAqIFRoZXJlIHNob3VsZCBvbmx5IGJlIGEgc2luZ2xlIHN0b3JlIGluIHlvdXIgYXBwLiBUbyBzcGVjaWZ5IGhvdyBkaWZmZXJlbnRcbiAqIHBhcnRzIG9mIHRoZSBzdGF0ZSB0cmVlIHJlc3BvbmQgdG8gYWN0aW9ucywgeW91IG1heSBjb21iaW5lIHNldmVyYWwgcmVkdWNlcnNcbiAqIGludG8gYSBzaW5nbGUgcmVkdWNlciBmdW5jdGlvbiBieSB1c2luZyBgY29tYmluZVJlZHVjZXJzYC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWR1Y2VyIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBuZXh0IHN0YXRlIHRyZWUsIGdpdmVuXG4gKiB0aGUgY3VycmVudCBzdGF0ZSB0cmVlIGFuZCB0aGUgYWN0aW9uIHRvIGhhbmRsZS5cbiAqXG4gKiBAcGFyYW0ge2FueX0gW3ByZWxvYWRlZFN0YXRlXSBUaGUgaW5pdGlhbCBzdGF0ZS4gWW91IG1heSBvcHRpb25hbGx5IHNwZWNpZnkgaXRcbiAqIHRvIGh5ZHJhdGUgdGhlIHN0YXRlIGZyb20gdGhlIHNlcnZlciBpbiB1bml2ZXJzYWwgYXBwcywgb3IgdG8gcmVzdG9yZSBhXG4gKiBwcmV2aW91c2x5IHNlcmlhbGl6ZWQgdXNlciBzZXNzaW9uLlxuICogSWYgeW91IHVzZSBgY29tYmluZVJlZHVjZXJzYCB0byBwcm9kdWNlIHRoZSByb290IHJlZHVjZXIgZnVuY3Rpb24sIHRoaXMgbXVzdCBiZVxuICogYW4gb2JqZWN0IHdpdGggdGhlIHNhbWUgc2hhcGUgYXMgYGNvbWJpbmVSZWR1Y2Vyc2Aga2V5cy5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZW5oYW5jZXJdIFRoZSBzdG9yZSBlbmhhbmNlci4gWW91IG1heSBvcHRpb25hbGx5IHNwZWNpZnkgaXRcbiAqIHRvIGVuaGFuY2UgdGhlIHN0b3JlIHdpdGggdGhpcmQtcGFydHkgY2FwYWJpbGl0aWVzIHN1Y2ggYXMgbWlkZGxld2FyZSxcbiAqIHRpbWUgdHJhdmVsLCBwZXJzaXN0ZW5jZSwgZXRjLiBUaGUgb25seSBzdG9yZSBlbmhhbmNlciB0aGF0IHNoaXBzIHdpdGggUmVkdXhcbiAqIGlzIGBhcHBseU1pZGRsZXdhcmUoKWAuXG4gKlxuICogQHJldHVybnMge1N0b3JlfSBBIFJlZHV4IHN0b3JlIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgc3RhdGUsIGRpc3BhdGNoIGFjdGlvbnNcbiAqIGFuZCBzdWJzY3JpYmUgdG8gY2hhbmdlcy5cbiAqL1xuXG52YXIgbGVnYWN5X2NyZWF0ZVN0b3JlID0gY3JlYXRlU3RvcmU7XG5cbi8qKlxuICogUHJpbnRzIGEgd2FybmluZyBpbiB0aGUgY29uc29sZSBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgVGhlIHdhcm5pbmcgbWVzc2FnZS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cblxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCBpZiB5b3UgZW5hYmxlXG4gICAgLy8gXCJicmVhayBvbiBhbGwgZXhjZXB0aW9uc1wiIGluIHlvdXIgY29uc29sZSxcbiAgICAvLyBpdCB3b3VsZCBwYXVzZSB0aGUgZXhlY3V0aW9uIGF0IHRoaXMgbGluZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH0gY2F0Y2ggKGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHlcblxufVxuXG5mdW5jdGlvbiBnZXRVbmV4cGVjdGVkU3RhdGVTaGFwZVdhcm5pbmdNZXNzYWdlKGlucHV0U3RhdGUsIHJlZHVjZXJzLCBhY3Rpb24sIHVuZXhwZWN0ZWRLZXlDYWNoZSkge1xuICB2YXIgcmVkdWNlcktleXMgPSBPYmplY3Qua2V5cyhyZWR1Y2Vycyk7XG4gIHZhciBhcmd1bWVudE5hbWUgPSBhY3Rpb24gJiYgYWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGVzLklOSVQgPyAncHJlbG9hZGVkU3RhdGUgYXJndW1lbnQgcGFzc2VkIHRvIGNyZWF0ZVN0b3JlJyA6ICdwcmV2aW91cyBzdGF0ZSByZWNlaXZlZCBieSB0aGUgcmVkdWNlcic7XG5cbiAgaWYgKHJlZHVjZXJLZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnU3RvcmUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIHJlZHVjZXIuIE1ha2Ugc3VyZSB0aGUgYXJndW1lbnQgcGFzc2VkICcgKyAndG8gY29tYmluZVJlZHVjZXJzIGlzIGFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIHJlZHVjZXJzLic7XG4gIH1cblxuICBpZiAoIWlzUGxhaW5PYmplY3QoaW5wdXRTdGF0ZSkpIHtcbiAgICByZXR1cm4gXCJUaGUgXCIgKyBhcmd1bWVudE5hbWUgKyBcIiBoYXMgdW5leHBlY3RlZCB0eXBlIG9mIFxcXCJcIiArIGtpbmRPZihpbnB1dFN0YXRlKSArIFwiXFxcIi4gRXhwZWN0ZWQgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBcIiArIChcImtleXM6IFxcXCJcIiArIHJlZHVjZXJLZXlzLmpvaW4oJ1wiLCBcIicpICsgXCJcXFwiXCIpO1xuICB9XG5cbiAgdmFyIHVuZXhwZWN0ZWRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRTdGF0ZSkuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gIXJlZHVjZXJzLmhhc093blByb3BlcnR5KGtleSkgJiYgIXVuZXhwZWN0ZWRLZXlDYWNoZVtrZXldO1xuICB9KTtcbiAgdW5leHBlY3RlZEtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgdW5leHBlY3RlZEtleUNhY2hlW2tleV0gPSB0cnVlO1xuICB9KTtcbiAgaWYgKGFjdGlvbiAmJiBhY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZXMuUkVQTEFDRSkgcmV0dXJuO1xuXG4gIGlmICh1bmV4cGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIFwiVW5leHBlY3RlZCBcIiArICh1bmV4cGVjdGVkS2V5cy5sZW5ndGggPiAxID8gJ2tleXMnIDogJ2tleScpICsgXCIgXCIgKyAoXCJcXFwiXCIgKyB1bmV4cGVjdGVkS2V5cy5qb2luKCdcIiwgXCInKSArIFwiXFxcIiBmb3VuZCBpbiBcIiArIGFyZ3VtZW50TmFtZSArIFwiLiBcIikgKyBcIkV4cGVjdGVkIHRvIGZpbmQgb25lIG9mIHRoZSBrbm93biByZWR1Y2VyIGtleXMgaW5zdGVhZDogXCIgKyAoXCJcXFwiXCIgKyByZWR1Y2VyS2V5cy5qb2luKCdcIiwgXCInKSArIFwiXFxcIi4gVW5leHBlY3RlZCBrZXlzIHdpbGwgYmUgaWdub3JlZC5cIik7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVkdWNlclNoYXBlKHJlZHVjZXJzKSB7XG4gIE9iamVjdC5rZXlzKHJlZHVjZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgcmVkdWNlciA9IHJlZHVjZXJzW2tleV07XG4gICAgdmFyIGluaXRpYWxTdGF0ZSA9IHJlZHVjZXIodW5kZWZpbmVkLCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5JTklUXG4gICAgfSk7XG5cbiAgICBpZiAodHlwZW9mIGluaXRpYWxTdGF0ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEyKSA6IFwiVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgcmV0dXJuZWQgdW5kZWZpbmVkIGR1cmluZyBpbml0aWFsaXphdGlvbi4gXCIgKyBcIklmIHRoZSBzdGF0ZSBwYXNzZWQgdG8gdGhlIHJlZHVjZXIgaXMgdW5kZWZpbmVkLCB5b3UgbXVzdCBcIiArIFwiZXhwbGljaXRseSByZXR1cm4gdGhlIGluaXRpYWwgc3RhdGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBcIiArIFwibm90IGJlIHVuZGVmaW5lZC4gSWYgeW91IGRvbid0IHdhbnQgdG8gc2V0IGEgdmFsdWUgZm9yIHRoaXMgcmVkdWNlciwgXCIgKyBcInlvdSBjYW4gdXNlIG51bGwgaW5zdGVhZCBvZiB1bmRlZmluZWQuXCIpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcmVkdWNlcih1bmRlZmluZWQsIHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlBST0JFX1VOS05PV05fQUNUSU9OKClcbiAgICB9KSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDEzKSA6IFwiVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgcmV0dXJuZWQgdW5kZWZpbmVkIHdoZW4gcHJvYmVkIHdpdGggYSByYW5kb20gdHlwZS4gXCIgKyAoXCJEb24ndCB0cnkgdG8gaGFuZGxlICdcIiArIEFjdGlvblR5cGVzLklOSVQgKyBcIicgb3Igb3RoZXIgYWN0aW9ucyBpbiBcXFwicmVkdXgvKlxcXCIgXCIpICsgXCJuYW1lc3BhY2UuIFRoZXkgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZS4gSW5zdGVhZCwgeW91IG11c3QgcmV0dXJuIHRoZSBcIiArIFwiY3VycmVudCBzdGF0ZSBmb3IgYW55IHVua25vd24gYWN0aW9ucywgdW5sZXNzIGl0IGlzIHVuZGVmaW5lZCwgXCIgKyBcImluIHdoaWNoIGNhc2UgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLCByZWdhcmRsZXNzIG9mIHRoZSBcIiArIFwiYWN0aW9uIHR5cGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBub3QgYmUgdW5kZWZpbmVkLCBidXQgY2FuIGJlIG51bGwuXCIpO1xuICAgIH1cbiAgfSk7XG59XG4vKipcbiAqIFR1cm5zIGFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIGRpZmZlcmVudCByZWR1Y2VyIGZ1bmN0aW9ucywgaW50byBhIHNpbmdsZVxuICogcmVkdWNlciBmdW5jdGlvbi4gSXQgd2lsbCBjYWxsIGV2ZXJ5IGNoaWxkIHJlZHVjZXIsIGFuZCBnYXRoZXIgdGhlaXIgcmVzdWx0c1xuICogaW50byBhIHNpbmdsZSBzdGF0ZSBvYmplY3QsIHdob3NlIGtleXMgY29ycmVzcG9uZCB0byB0aGUga2V5cyBvZiB0aGUgcGFzc2VkXG4gKiByZWR1Y2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcmVkdWNlcnMgQW4gb2JqZWN0IHdob3NlIHZhbHVlcyBjb3JyZXNwb25kIHRvIGRpZmZlcmVudFxuICogcmVkdWNlciBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGNvbWJpbmVkIGludG8gb25lLiBPbmUgaGFuZHkgd2F5IHRvIG9idGFpblxuICogaXQgaXMgdG8gdXNlIEVTNiBgaW1wb3J0ICogYXMgcmVkdWNlcnNgIHN5bnRheC4gVGhlIHJlZHVjZXJzIG1heSBuZXZlciByZXR1cm5cbiAqIHVuZGVmaW5lZCBmb3IgYW55IGFjdGlvbi4gSW5zdGVhZCwgdGhleSBzaG91bGQgcmV0dXJuIHRoZWlyIGluaXRpYWwgc3RhdGVcbiAqIGlmIHRoZSBzdGF0ZSBwYXNzZWQgdG8gdGhlbSB3YXMgdW5kZWZpbmVkLCBhbmQgdGhlIGN1cnJlbnQgc3RhdGUgZm9yIGFueVxuICogdW5yZWNvZ25pemVkIGFjdGlvbi5cbiAqXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgcmVkdWNlciBmdW5jdGlvbiB0aGF0IGludm9rZXMgZXZlcnkgcmVkdWNlciBpbnNpZGUgdGhlXG4gKiBwYXNzZWQgb2JqZWN0LCBhbmQgYnVpbGRzIGEgc3RhdGUgb2JqZWN0IHdpdGggdGhlIHNhbWUgc2hhcGUuXG4gKi9cblxuXG5mdW5jdGlvbiBjb21iaW5lUmVkdWNlcnMocmVkdWNlcnMpIHtcbiAgdmFyIHJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMocmVkdWNlcnMpO1xuICB2YXIgZmluYWxSZWR1Y2VycyA9IHt9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmVkdWNlcktleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0gcmVkdWNlcktleXNbaV07XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHR5cGVvZiByZWR1Y2Vyc1trZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB3YXJuaW5nKFwiTm8gcmVkdWNlciBwcm92aWRlZCBmb3Iga2V5IFxcXCJcIiArIGtleSArIFwiXFxcIlwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHJlZHVjZXJzW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGZpbmFsUmVkdWNlcnNba2V5XSA9IHJlZHVjZXJzW2tleV07XG4gICAgfVxuICB9XG5cbiAgdmFyIGZpbmFsUmVkdWNlcktleXMgPSBPYmplY3Qua2V5cyhmaW5hbFJlZHVjZXJzKTsgLy8gVGhpcyBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCB3YXJuIGFib3V0IHRoZSBzYW1lXG4gIC8vIGtleXMgbXVsdGlwbGUgdGltZXMuXG5cbiAgdmFyIHVuZXhwZWN0ZWRLZXlDYWNoZTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHVuZXhwZWN0ZWRLZXlDYWNoZSA9IHt9O1xuICB9XG5cbiAgdmFyIHNoYXBlQXNzZXJ0aW9uRXJyb3I7XG5cbiAgdHJ5IHtcbiAgICBhc3NlcnRSZWR1Y2VyU2hhcGUoZmluYWxSZWR1Y2Vycyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBzaGFwZUFzc2VydGlvbkVycm9yID0gZTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiBjb21iaW5hdGlvbihzdGF0ZSwgYWN0aW9uKSB7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIHN0YXRlID0ge307XG4gICAgfVxuXG4gICAgaWYgKHNoYXBlQXNzZXJ0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IHNoYXBlQXNzZXJ0aW9uRXJyb3I7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciB3YXJuaW5nTWVzc2FnZSA9IGdldFVuZXhwZWN0ZWRTdGF0ZVNoYXBlV2FybmluZ01lc3NhZ2Uoc3RhdGUsIGZpbmFsUmVkdWNlcnMsIGFjdGlvbiwgdW5leHBlY3RlZEtleUNhY2hlKTtcblxuICAgICAgaWYgKHdhcm5pbmdNZXNzYWdlKSB7XG4gICAgICAgIHdhcm5pbmcod2FybmluZ01lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBoYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgdmFyIG5leHRTdGF0ZSA9IHt9O1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGZpbmFsUmVkdWNlcktleXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2tleSA9IGZpbmFsUmVkdWNlcktleXNbX2ldO1xuICAgICAgdmFyIHJlZHVjZXIgPSBmaW5hbFJlZHVjZXJzW19rZXldO1xuICAgICAgdmFyIHByZXZpb3VzU3RhdGVGb3JLZXkgPSBzdGF0ZVtfa2V5XTtcbiAgICAgIHZhciBuZXh0U3RhdGVGb3JLZXkgPSByZWR1Y2VyKHByZXZpb3VzU3RhdGVGb3JLZXksIGFjdGlvbik7XG5cbiAgICAgIGlmICh0eXBlb2YgbmV4dFN0YXRlRm9yS2V5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB2YXIgYWN0aW9uVHlwZSA9IGFjdGlvbiAmJiBhY3Rpb24udHlwZTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTQpIDogXCJXaGVuIGNhbGxlZCB3aXRoIGFuIGFjdGlvbiBvZiB0eXBlIFwiICsgKGFjdGlvblR5cGUgPyBcIlxcXCJcIiArIFN0cmluZyhhY3Rpb25UeXBlKSArIFwiXFxcIlwiIDogJyh1bmtub3duIHR5cGUpJykgKyBcIiwgdGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcXFwiXCIgKyBfa2V5ICsgXCJcXFwiIHJldHVybmVkIHVuZGVmaW5lZC4gXCIgKyBcIlRvIGlnbm9yZSBhbiBhY3Rpb24sIHlvdSBtdXN0IGV4cGxpY2l0bHkgcmV0dXJuIHRoZSBwcmV2aW91cyBzdGF0ZS4gXCIgKyBcIklmIHlvdSB3YW50IHRoaXMgcmVkdWNlciB0byBob2xkIG5vIHZhbHVlLCB5b3UgY2FuIHJldHVybiBudWxsIGluc3RlYWQgb2YgdW5kZWZpbmVkLlwiKTtcbiAgICAgIH1cblxuICAgICAgbmV4dFN0YXRlW19rZXldID0gbmV4dFN0YXRlRm9yS2V5O1xuICAgICAgaGFzQ2hhbmdlZCA9IGhhc0NoYW5nZWQgfHwgbmV4dFN0YXRlRm9yS2V5ICE9PSBwcmV2aW91c1N0YXRlRm9yS2V5O1xuICAgIH1cblxuICAgIGhhc0NoYW5nZWQgPSBoYXNDaGFuZ2VkIHx8IGZpbmFsUmVkdWNlcktleXMubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhzdGF0ZSkubGVuZ3RoO1xuICAgIHJldHVybiBoYXNDaGFuZ2VkID8gbmV4dFN0YXRlIDogc3RhdGU7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9yKGFjdGlvbkNyZWF0b3IsIGRpc3BhdGNoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoKGFjdGlvbkNyZWF0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH07XG59XG4vKipcbiAqIFR1cm5zIGFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIGFjdGlvbiBjcmVhdG9ycywgaW50byBhbiBvYmplY3Qgd2l0aCB0aGVcbiAqIHNhbWUga2V5cywgYnV0IHdpdGggZXZlcnkgZnVuY3Rpb24gd3JhcHBlZCBpbnRvIGEgYGRpc3BhdGNoYCBjYWxsIHNvIHRoZXlcbiAqIG1heSBiZSBpbnZva2VkIGRpcmVjdGx5LiBUaGlzIGlzIGp1c3QgYSBjb252ZW5pZW5jZSBtZXRob2QsIGFzIHlvdSBjYW4gY2FsbFxuICogYHN0b3JlLmRpc3BhdGNoKE15QWN0aW9uQ3JlYXRvcnMuZG9Tb21ldGhpbmcoKSlgIHlvdXJzZWxmIGp1c3QgZmluZS5cbiAqXG4gKiBGb3IgY29udmVuaWVuY2UsIHlvdSBjYW4gYWxzbyBwYXNzIGFuIGFjdGlvbiBjcmVhdG9yIGFzIHRoZSBmaXJzdCBhcmd1bWVudCxcbiAqIGFuZCBnZXQgYSBkaXNwYXRjaCB3cmFwcGVkIGZ1bmN0aW9uIGluIHJldHVybi5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdH0gYWN0aW9uQ3JlYXRvcnMgQW4gb2JqZWN0IHdob3NlIHZhbHVlcyBhcmUgYWN0aW9uXG4gKiBjcmVhdG9yIGZ1bmN0aW9ucy4gT25lIGhhbmR5IHdheSB0byBvYnRhaW4gaXQgaXMgdG8gdXNlIEVTNiBgaW1wb3J0ICogYXNgXG4gKiBzeW50YXguIFlvdSBtYXkgYWxzbyBwYXNzIGEgc2luZ2xlIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGRpc3BhdGNoIFRoZSBgZGlzcGF0Y2hgIGZ1bmN0aW9uIGF2YWlsYWJsZSBvbiB5b3VyIFJlZHV4XG4gKiBzdG9yZS5cbiAqXG4gKiBAcmV0dXJucyB7RnVuY3Rpb258T2JqZWN0fSBUaGUgb2JqZWN0IG1pbWlja2luZyB0aGUgb3JpZ2luYWwgb2JqZWN0LCBidXQgd2l0aFxuICogZXZlcnkgYWN0aW9uIGNyZWF0b3Igd3JhcHBlZCBpbnRvIHRoZSBgZGlzcGF0Y2hgIGNhbGwuIElmIHlvdSBwYXNzZWQgYVxuICogZnVuY3Rpb24gYXMgYGFjdGlvbkNyZWF0b3JzYCwgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGFsc28gYmUgYSBzaW5nbGVcbiAqIGZ1bmN0aW9uLlxuICovXG5cblxuZnVuY3Rpb24gYmluZEFjdGlvbkNyZWF0b3JzKGFjdGlvbkNyZWF0b3JzLCBkaXNwYXRjaCkge1xuICBpZiAodHlwZW9mIGFjdGlvbkNyZWF0b3JzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGJpbmRBY3Rpb25DcmVhdG9yKGFjdGlvbkNyZWF0b3JzLCBkaXNwYXRjaCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGFjdGlvbkNyZWF0b3JzICE9PSAnb2JqZWN0JyB8fCBhY3Rpb25DcmVhdG9ycyA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE2KSA6IFwiYmluZEFjdGlvbkNyZWF0b3JzIGV4cGVjdGVkIGFuIG9iamVjdCBvciBhIGZ1bmN0aW9uLCBidXQgaW5zdGVhZCByZWNlaXZlZDogJ1wiICsga2luZE9mKGFjdGlvbkNyZWF0b3JzKSArIFwiJy4gXCIgKyBcIkRpZCB5b3Ugd3JpdGUgXFxcImltcG9ydCBBY3Rpb25DcmVhdG9ycyBmcm9tXFxcIiBpbnN0ZWFkIG9mIFxcXCJpbXBvcnQgKiBhcyBBY3Rpb25DcmVhdG9ycyBmcm9tXFxcIj9cIik7XG4gIH1cblxuICB2YXIgYm91bmRBY3Rpb25DcmVhdG9ycyA9IHt9O1xuXG4gIGZvciAodmFyIGtleSBpbiBhY3Rpb25DcmVhdG9ycykge1xuICAgIHZhciBhY3Rpb25DcmVhdG9yID0gYWN0aW9uQ3JlYXRvcnNba2V5XTtcblxuICAgIGlmICh0eXBlb2YgYWN0aW9uQ3JlYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYm91bmRBY3Rpb25DcmVhdG9yc1trZXldID0gYmluZEFjdGlvbkNyZWF0b3IoYWN0aW9uQ3JlYXRvciwgZGlzcGF0Y2gpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBib3VuZEFjdGlvbkNyZWF0b3JzO1xufVxuXG4vKipcbiAqIENvbXBvc2VzIHNpbmdsZS1hcmd1bWVudCBmdW5jdGlvbnMgZnJvbSByaWdodCB0byBsZWZ0LiBUaGUgcmlnaHRtb3N0XG4gKiBmdW5jdGlvbiBjYW4gdGFrZSBtdWx0aXBsZSBhcmd1bWVudHMgYXMgaXQgcHJvdmlkZXMgdGhlIHNpZ25hdHVyZSBmb3JcbiAqIHRoZSByZXN1bHRpbmcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IGZ1bmNzIFRoZSBmdW5jdGlvbnMgdG8gY29tcG9zZS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSBmdW5jdGlvbiBvYnRhaW5lZCBieSBjb21wb3NpbmcgdGhlIGFyZ3VtZW50IGZ1bmN0aW9uc1xuICogZnJvbSByaWdodCB0byBsZWZ0LiBGb3IgZXhhbXBsZSwgY29tcG9zZShmLCBnLCBoKSBpcyBpZGVudGljYWwgdG8gZG9pbmdcbiAqICguLi5hcmdzKSA9PiBmKGcoaCguLi5hcmdzKSkpLlxuICovXG5mdW5jdGlvbiBjb21wb3NlKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgZnVuY3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgZnVuY3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICBpZiAoZnVuY3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgIHJldHVybiBhcmc7XG4gICAgfTtcbiAgfVxuXG4gIGlmIChmdW5jcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZnVuY3NbMF07XG4gIH1cblxuICByZXR1cm4gZnVuY3MucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBhKGIuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RvcmUgZW5oYW5jZXIgdGhhdCBhcHBsaWVzIG1pZGRsZXdhcmUgdG8gdGhlIGRpc3BhdGNoIG1ldGhvZFxuICogb2YgdGhlIFJlZHV4IHN0b3JlLiBUaGlzIGlzIGhhbmR5IGZvciBhIHZhcmlldHkgb2YgdGFza3MsIHN1Y2ggYXMgZXhwcmVzc2luZ1xuICogYXN5bmNocm9ub3VzIGFjdGlvbnMgaW4gYSBjb25jaXNlIG1hbm5lciwgb3IgbG9nZ2luZyBldmVyeSBhY3Rpb24gcGF5bG9hZC5cbiAqXG4gKiBTZWUgYHJlZHV4LXRodW5rYCBwYWNrYWdlIGFzIGFuIGV4YW1wbGUgb2YgdGhlIFJlZHV4IG1pZGRsZXdhcmUuXG4gKlxuICogQmVjYXVzZSBtaWRkbGV3YXJlIGlzIHBvdGVudGlhbGx5IGFzeW5jaHJvbm91cywgdGhpcyBzaG91bGQgYmUgdGhlIGZpcnN0XG4gKiBzdG9yZSBlbmhhbmNlciBpbiB0aGUgY29tcG9zaXRpb24gY2hhaW4uXG4gKlxuICogTm90ZSB0aGF0IGVhY2ggbWlkZGxld2FyZSB3aWxsIGJlIGdpdmVuIHRoZSBgZGlzcGF0Y2hgIGFuZCBgZ2V0U3RhdGVgIGZ1bmN0aW9uc1xuICogYXMgbmFtZWQgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IG1pZGRsZXdhcmVzIFRoZSBtaWRkbGV3YXJlIGNoYWluIHRvIGJlIGFwcGxpZWQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgc3RvcmUgZW5oYW5jZXIgYXBwbHlpbmcgdGhlIG1pZGRsZXdhcmUuXG4gKi9cblxuZnVuY3Rpb24gYXBwbHlNaWRkbGV3YXJlKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgbWlkZGxld2FyZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgbWlkZGxld2FyZXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKGNyZWF0ZVN0b3JlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzdG9yZSA9IGNyZWF0ZVN0b3JlLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTtcblxuICAgICAgdmFyIF9kaXNwYXRjaCA9IGZ1bmN0aW9uIGRpc3BhdGNoKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNSkgOiAnRGlzcGF0Y2hpbmcgd2hpbGUgY29uc3RydWN0aW5nIHlvdXIgbWlkZGxld2FyZSBpcyBub3QgYWxsb3dlZC4gJyArICdPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guJyk7XG4gICAgICB9O1xuXG4gICAgICB2YXIgbWlkZGxld2FyZUFQSSA9IHtcbiAgICAgICAgZ2V0U3RhdGU6IHN0b3JlLmdldFN0YXRlLFxuICAgICAgICBkaXNwYXRjaDogZnVuY3Rpb24gZGlzcGF0Y2goKSB7XG4gICAgICAgICAgcmV0dXJuIF9kaXNwYXRjaC5hcHBseSh2b2lkIDAsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB2YXIgY2hhaW4gPSBtaWRkbGV3YXJlcy5tYXAoZnVuY3Rpb24gKG1pZGRsZXdhcmUpIHtcbiAgICAgICAgcmV0dXJuIG1pZGRsZXdhcmUobWlkZGxld2FyZUFQSSk7XG4gICAgICB9KTtcbiAgICAgIF9kaXNwYXRjaCA9IGNvbXBvc2UuYXBwbHkodm9pZCAwLCBjaGFpbikoc3RvcmUuZGlzcGF0Y2gpO1xuICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3RvcmUpLCB7fSwge1xuICAgICAgICBkaXNwYXRjaDogX2Rpc3BhdGNoXG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xufVxuXG4vKlxuICogVGhpcyBpcyBhIGR1bW15IGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBuYW1lIGhhcyBiZWVuIGFsdGVyZWQgYnkgbWluaWZpY2F0aW9uLlxuICogSWYgdGhlIGZ1bmN0aW9uIGhhcyBiZWVuIG1pbmlmaWVkIGFuZCBOT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLCB3YXJuIHRoZSB1c2VyLlxuICovXG5cbmZ1bmN0aW9uIGlzQ3J1c2hlZCgpIHt9XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGVvZiBpc0NydXNoZWQubmFtZSA9PT0gJ3N0cmluZycgJiYgaXNDcnVzaGVkLm5hbWUgIT09ICdpc0NydXNoZWQnKSB7XG4gIHdhcm5pbmcoJ1lvdSBhcmUgY3VycmVudGx5IHVzaW5nIG1pbmlmaWVkIGNvZGUgb3V0c2lkZSBvZiBOT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIuICcgKyAnVGhpcyBtZWFucyB0aGF0IHlvdSBhcmUgcnVubmluZyBhIHNsb3dlciBkZXZlbG9wbWVudCBidWlsZCBvZiBSZWR1eC4gJyArICdZb3UgY2FuIHVzZSBsb29zZS1lbnZpZnkgKGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2xvb3NlLWVudmlmeSkgZm9yIGJyb3dzZXJpZnkgJyArICdvciBzZXR0aW5nIG1vZGUgdG8gcHJvZHVjdGlvbiBpbiB3ZWJwYWNrIChodHRwczovL3dlYnBhY2suanMub3JnL2NvbmNlcHRzL21vZGUvKSAnICsgJ3RvIGVuc3VyZSB5b3UgaGF2ZSB0aGUgY29ycmVjdCBjb2RlIGZvciB5b3VyIHByb2R1Y3Rpb24gYnVpbGQuJyk7XG59XG5cbmV4cG9ydCB7IEFjdGlvblR5cGVzIGFzIF9fRE9fTk9UX1VTRV9fQWN0aW9uVHlwZXMsIGFwcGx5TWlkZGxld2FyZSwgYmluZEFjdGlvbkNyZWF0b3JzLCBjb21iaW5lUmVkdWNlcnMsIGNvbXBvc2UsIGNyZWF0ZVN0b3JlLCBsZWdhY3lfY3JlYXRlU3RvcmUgfTtcbiIsImZ1bmN0aW9uIG4obil7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShyPjE/ci0xOjApLGU9MTtlPHI7ZSsrKXRbZS0xXT1hcmd1bWVudHNbZV07aWYoXCJwcm9kdWN0aW9uXCIhPT1wcm9jZXNzLmVudi5OT0RFX0VOVil7dmFyIGk9WVtuXSxvPWk/XCJmdW5jdGlvblwiPT10eXBlb2YgaT9pLmFwcGx5KG51bGwsdCk6aTpcInVua25vd24gZXJyb3IgbnI6IFwiK247dGhyb3cgRXJyb3IoXCJbSW1tZXJdIFwiK28pfXRocm93IEVycm9yKFwiW0ltbWVyXSBtaW5pZmllZCBlcnJvciBucjogXCIrbisodC5sZW5ndGg/XCIgXCIrdC5tYXAoKGZ1bmN0aW9uKG4pe3JldHVyblwiJ1wiK24rXCInXCJ9KSkuam9pbihcIixcIik6XCJcIikrXCIuIEZpbmQgdGhlIGZ1bGwgZXJyb3IgYXQ6IGh0dHBzOi8vYml0Lmx5LzNjWEVLV2ZcIil9ZnVuY3Rpb24gcihuKXtyZXR1cm4hIW4mJiEhbltRXX1mdW5jdGlvbiB0KG4pe3JldHVybiEhbiYmKGZ1bmN0aW9uKG4pe2lmKCFufHxcIm9iamVjdFwiIT10eXBlb2YgbilyZXR1cm4hMTt2YXIgcj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik7aWYobnVsbD09PXIpcmV0dXJuITA7dmFyIHQ9T2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwocixcImNvbnN0cnVjdG9yXCIpJiZyLmNvbnN0cnVjdG9yO3JldHVybiB0PT09T2JqZWN0fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZGdW5jdGlvbi50b1N0cmluZy5jYWxsKHQpPT09Wn0obil8fEFycmF5LmlzQXJyYXkobil8fCEhbltMXXx8ISFuLmNvbnN0cnVjdG9yW0xdfHxzKG4pfHx2KG4pKX1mdW5jdGlvbiBlKHQpe3JldHVybiByKHQpfHxuKDIzLHQpLHRbUV0udH1mdW5jdGlvbiBpKG4scix0KXt2b2lkIDA9PT10JiYodD0hMSksMD09PW8obik/KHQ/T2JqZWN0LmtleXM6bm4pKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QmJlwic3ltYm9sXCI9PXR5cGVvZiBlfHxyKGUsbltlXSxuKX0pKTpuLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoZSx0LG4pfSkpfWZ1bmN0aW9uIG8obil7dmFyIHI9bltRXTtyZXR1cm4gcj9yLmk+Mz9yLmktNDpyLmk6QXJyYXkuaXNBcnJheShuKT8xOnMobik/Mjp2KG4pPzM6MH1mdW5jdGlvbiB1KG4scil7cmV0dXJuIDI9PT1vKG4pP24uaGFzKHIpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpfWZ1bmN0aW9uIGEobixyKXtyZXR1cm4gMj09PW8obik/bi5nZXQocik6bltyXX1mdW5jdGlvbiBmKG4scix0KXt2YXIgZT1vKG4pOzI9PT1lP24uc2V0KHIsdCk6Mz09PWU/KG4uZGVsZXRlKHIpLG4uYWRkKHQpKTpuW3JdPXR9ZnVuY3Rpb24gYyhuLHIpe3JldHVybiBuPT09cj8wIT09bnx8MS9uPT0xL3I6biE9biYmciE9cn1mdW5jdGlvbiBzKG4pe3JldHVybiBYJiZuIGluc3RhbmNlb2YgTWFwfWZ1bmN0aW9uIHYobil7cmV0dXJuIHEmJm4gaW5zdGFuY2VvZiBTZXR9ZnVuY3Rpb24gcChuKXtyZXR1cm4gbi5vfHxuLnR9ZnVuY3Rpb24gbChuKXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKTt2YXIgcj1ybihuKTtkZWxldGUgcltRXTtmb3IodmFyIHQ9bm4ociksZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgaT10W2VdLG89cltpXTshMT09PW8ud3JpdGFibGUmJihvLndyaXRhYmxlPSEwLG8uY29uZmlndXJhYmxlPSEwKSwoby5nZXR8fG8uc2V0KSYmKHJbaV09e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxlbnVtZXJhYmxlOm8uZW51bWVyYWJsZSx2YWx1ZTpuW2ldfSl9cmV0dXJuIE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKG4pLHIpfWZ1bmN0aW9uIGQobixlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLHkobil8fHIobil8fCF0KG4pP246KG8obik+MSYmKG4uc2V0PW4uYWRkPW4uY2xlYXI9bi5kZWxldGU9aCksT2JqZWN0LmZyZWV6ZShuKSxlJiZpKG4sKGZ1bmN0aW9uKG4scil7cmV0dXJuIGQociwhMCl9KSwhMCksbil9ZnVuY3Rpb24gaCgpe24oMil9ZnVuY3Rpb24geShuKXtyZXR1cm4gbnVsbD09bnx8XCJvYmplY3RcIiE9dHlwZW9mIG58fE9iamVjdC5pc0Zyb3plbihuKX1mdW5jdGlvbiBiKHIpe3ZhciB0PXRuW3JdO3JldHVybiB0fHxuKDE4LHIpLHR9ZnVuY3Rpb24gbShuLHIpe3RuW25dfHwodG5bbl09cil9ZnVuY3Rpb24gXygpe3JldHVyblwicHJvZHVjdGlvblwiPT09cHJvY2Vzcy5lbnYuTk9ERV9FTlZ8fFV8fG4oMCksVX1mdW5jdGlvbiBqKG4scil7ciYmKGIoXCJQYXRjaGVzXCIpLG4udT1bXSxuLnM9W10sbi52PXIpfWZ1bmN0aW9uIE8obil7ZyhuKSxuLnAuZm9yRWFjaChTKSxuLnA9bnVsbH1mdW5jdGlvbiBnKG4pe249PT1VJiYoVT1uLmwpfWZ1bmN0aW9uIHcobil7cmV0dXJuIFU9e3A6W10sbDpVLGg6bixtOiEwLF86MH19ZnVuY3Rpb24gUyhuKXt2YXIgcj1uW1FdOzA9PT1yLml8fDE9PT1yLmk/ci5qKCk6ci5PPSEwfWZ1bmN0aW9uIFAocixlKXtlLl89ZS5wLmxlbmd0aDt2YXIgaT1lLnBbMF0sbz12b2lkIDAhPT1yJiZyIT09aTtyZXR1cm4gZS5oLmd8fGIoXCJFUzVcIikuUyhlLHIsbyksbz8oaVtRXS5QJiYoTyhlKSxuKDQpKSx0KHIpJiYocj1NKGUsciksZS5sfHx4KGUscikpLGUudSYmYihcIlBhdGNoZXNcIikuTShpW1FdLnQscixlLnUsZS5zKSk6cj1NKGUsaSxbXSksTyhlKSxlLnUmJmUudihlLnUsZS5zKSxyIT09SD9yOnZvaWQgMH1mdW5jdGlvbiBNKG4scix0KXtpZih5KHIpKXJldHVybiByO3ZhciBlPXJbUV07aWYoIWUpcmV0dXJuIGkociwoZnVuY3Rpb24oaSxvKXtyZXR1cm4gQShuLGUscixpLG8sdCl9KSwhMCkscjtpZihlLkEhPT1uKXJldHVybiByO2lmKCFlLlApcmV0dXJuIHgobixlLnQsITApLGUudDtpZighZS5JKXtlLkk9ITAsZS5BLl8tLTt2YXIgbz00PT09ZS5pfHw1PT09ZS5pP2Uubz1sKGUuayk6ZS5vO2koMz09PWUuaT9uZXcgU2V0KG8pOm8sKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIEEobixlLG8scixpLHQpfSkpLHgobixvLCExKSx0JiZuLnUmJmIoXCJQYXRjaGVzXCIpLlIoZSx0LG4udSxuLnMpfXJldHVybiBlLm99ZnVuY3Rpb24gQShlLGksbyxhLGMscyl7aWYoXCJwcm9kdWN0aW9uXCIhPT1wcm9jZXNzLmVudi5OT0RFX0VOViYmYz09PW8mJm4oNSkscihjKSl7dmFyIHY9TShlLGMscyYmaSYmMyE9PWkuaSYmIXUoaS5ELGEpP3MuY29uY2F0KGEpOnZvaWQgMCk7aWYoZihvLGEsdiksIXIodikpcmV0dXJuO2UubT0hMX1pZih0KGMpJiYheShjKSl7aWYoIWUuaC5GJiZlLl88MSlyZXR1cm47TShlLGMpLGkmJmkuQS5sfHx4KGUsYyl9fWZ1bmN0aW9uIHgobixyLHQpe3ZvaWQgMD09PXQmJih0PSExKSxuLmguRiYmbi5tJiZkKHIsdCl9ZnVuY3Rpb24geihuLHIpe3ZhciB0PW5bUV07cmV0dXJuKHQ/cCh0KTpuKVtyXX1mdW5jdGlvbiBJKG4scil7aWYociBpbiBuKWZvcih2YXIgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik7dDspe3ZhciBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTtpZihlKXJldHVybiBlO3Q9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfX1mdW5jdGlvbiBrKG4pe24uUHx8KG4uUD0hMCxuLmwmJmsobi5sKSl9ZnVuY3Rpb24gRShuKXtuLm98fChuLm89bChuLnQpKX1mdW5jdGlvbiBSKG4scix0KXt2YXIgZT1zKHIpP2IoXCJNYXBTZXRcIikuTihyLHQpOnYocik/YihcIk1hcFNldFwiKS5UKHIsdCk6bi5nP2Z1bmN0aW9uKG4scil7dmFyIHQ9QXJyYXkuaXNBcnJheShuKSxlPXtpOnQ/MTowLEE6cj9yLkE6XygpLFA6ITEsSTohMSxEOnt9LGw6cix0Om4sazpudWxsLG86bnVsbCxqOm51bGwsQzohMX0saT1lLG89ZW47dCYmKGk9W2VdLG89b24pO3ZhciB1PVByb3h5LnJldm9jYWJsZShpLG8pLGE9dS5yZXZva2UsZj11LnByb3h5O3JldHVybiBlLms9ZixlLmo9YSxmfShyLHQpOmIoXCJFUzVcIikuSihyLHQpO3JldHVybih0P3QuQTpfKCkpLnAucHVzaChlKSxlfWZ1bmN0aW9uIEQoZSl7cmV0dXJuIHIoZSl8fG4oMjIsZSksZnVuY3Rpb24gbihyKXtpZighdChyKSlyZXR1cm4gcjt2YXIgZSx1PXJbUV0sYz1vKHIpO2lmKHUpe2lmKCF1LlAmJih1Lmk8NHx8IWIoXCJFUzVcIikuSyh1KSkpcmV0dXJuIHUudDt1Lkk9ITAsZT1GKHIsYyksdS5JPSExfWVsc2UgZT1GKHIsYyk7cmV0dXJuIGkoZSwoZnVuY3Rpb24ocix0KXt1JiZhKHUudCxyKT09PXR8fGYoZSxyLG4odCkpfSkpLDM9PT1jP25ldyBTZXQoZSk6ZX0oZSl9ZnVuY3Rpb24gRihuLHIpe3N3aXRjaChyKXtjYXNlIDI6cmV0dXJuIG5ldyBNYXAobik7Y2FzZSAzOnJldHVybiBBcnJheS5mcm9tKG4pfXJldHVybiBsKG4pfWZ1bmN0aW9uIE4oKXtmdW5jdGlvbiB0KG4scil7dmFyIHQ9c1tuXTtyZXR1cm4gdD90LmVudW1lcmFibGU9cjpzW25dPXQ9e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOnIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHI9dGhpc1tRXTtyZXR1cm5cInByb2R1Y3Rpb25cIiE9PXByb2Nlc3MuZW52Lk5PREVfRU5WJiZmKHIpLGVuLmdldChyLG4pfSxzZXQ6ZnVuY3Rpb24ocil7dmFyIHQ9dGhpc1tRXTtcInByb2R1Y3Rpb25cIiE9PXByb2Nlc3MuZW52Lk5PREVfRU5WJiZmKHQpLGVuLnNldCh0LG4scil9fSx0fWZ1bmN0aW9uIGUobil7Zm9yKHZhciByPW4ubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciB0PW5bcl1bUV07aWYoIXQuUClzd2l0Y2godC5pKXtjYXNlIDU6YSh0KSYmayh0KTticmVhaztjYXNlIDQ6byh0KSYmayh0KX19fWZ1bmN0aW9uIG8obil7Zm9yKHZhciByPW4udCx0PW4uayxlPW5uKHQpLGk9ZS5sZW5ndGgtMTtpPj0wO2ktLSl7dmFyIG89ZVtpXTtpZihvIT09USl7dmFyIGE9cltvXTtpZih2b2lkIDA9PT1hJiYhdShyLG8pKXJldHVybiEwO3ZhciBmPXRbb10scz1mJiZmW1FdO2lmKHM/cy50IT09YTohYyhmLGEpKXJldHVybiEwfX12YXIgdj0hIXJbUV07cmV0dXJuIGUubGVuZ3RoIT09bm4ocikubGVuZ3RoKyh2PzA6MSl9ZnVuY3Rpb24gYShuKXt2YXIgcj1uLms7aWYoci5sZW5ndGghPT1uLnQubGVuZ3RoKXJldHVybiEwO3ZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixyLmxlbmd0aC0xKTtpZih0JiYhdC5nZXQpcmV0dXJuITA7Zm9yKHZhciBlPTA7ZTxyLmxlbmd0aDtlKyspaWYoIXIuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gZihyKXtyLk8mJm4oMyxKU09OLnN0cmluZ2lmeShwKHIpKSl9dmFyIHM9e307bShcIkVTNVwiLHtKOmZ1bmN0aW9uKG4scil7dmFyIGU9QXJyYXkuaXNBcnJheShuKSxpPWZ1bmN0aW9uKG4scil7aWYobil7Zm9yKHZhciBlPUFycmF5KHIubGVuZ3RoKSxpPTA7aTxyLmxlbmd0aDtpKyspT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJcIitpLHQoaSwhMCkpO3JldHVybiBlfXZhciBvPXJuKHIpO2RlbGV0ZSBvW1FdO2Zvcih2YXIgdT1ubihvKSxhPTA7YTx1Lmxlbmd0aDthKyspe3ZhciBmPXVbYV07b1tmXT10KGYsbnx8ISFvW2ZdLmVudW1lcmFibGUpfXJldHVybiBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihyKSxvKX0oZSxuKSxvPXtpOmU/NTo0LEE6cj9yLkE6XygpLFA6ITEsSTohMSxEOnt9LGw6cix0Om4sazppLG86bnVsbCxPOiExLEM6ITF9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxRLHt2YWx1ZTpvLHdyaXRhYmxlOiEwfSksaX0sUzpmdW5jdGlvbihuLHQsbyl7bz9yKHQpJiZ0W1FdLkE9PT1uJiZlKG4ucCk6KG4udSYmZnVuY3Rpb24gbihyKXtpZihyJiZcIm9iamVjdFwiPT10eXBlb2Ygcil7dmFyIHQ9cltRXTtpZih0KXt2YXIgZT10LnQsbz10LmssZj10LkQsYz10Lmk7aWYoND09PWMpaShvLChmdW5jdGlvbihyKXtyIT09USYmKHZvaWQgMCE9PWVbcl18fHUoZSxyKT9mW3JdfHxuKG9bcl0pOihmW3JdPSEwLGsodCkpKX0pKSxpKGUsKGZ1bmN0aW9uKG4pe3ZvaWQgMCE9PW9bbl18fHUobyxuKXx8KGZbbl09ITEsayh0KSl9KSk7ZWxzZSBpZig1PT09Yyl7aWYoYSh0KSYmKGsodCksZi5sZW5ndGg9ITApLG8ubGVuZ3RoPGUubGVuZ3RoKWZvcih2YXIgcz1vLmxlbmd0aDtzPGUubGVuZ3RoO3MrKylmW3NdPSExO2Vsc2UgZm9yKHZhciB2PWUubGVuZ3RoO3Y8by5sZW5ndGg7disrKWZbdl09ITA7Zm9yKHZhciBwPU1hdGgubWluKG8ubGVuZ3RoLGUubGVuZ3RoKSxsPTA7bDxwO2wrKylvLmhhc093blByb3BlcnR5KGwpfHwoZltsXT0hMCksdm9pZCAwPT09ZltsXSYmbihvW2xdKX19fX0obi5wWzBdKSxlKG4ucCkpfSxLOmZ1bmN0aW9uKG4pe3JldHVybiA0PT09bi5pP28obik6YShuKX19KX1mdW5jdGlvbiBUKCl7ZnVuY3Rpb24gZShuKXtpZighdChuKSlyZXR1cm4gbjtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBuLm1hcChlKTtpZihzKG4pKXJldHVybiBuZXcgTWFwKEFycmF5LmZyb20obi5lbnRyaWVzKCkpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuW25bMF0sZShuWzFdKV19KSkpO2lmKHYobikpcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbShuKS5tYXAoZSkpO3ZhciByPU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKTtmb3IodmFyIGkgaW4gbilyW2ldPWUobltpXSk7cmV0dXJuIHUobixMKSYmKHJbTF09bltMXSkscn1mdW5jdGlvbiBmKG4pe3JldHVybiByKG4pP2Uobik6bn12YXIgYz1cImFkZFwiO20oXCJQYXRjaGVzXCIseyQ6ZnVuY3Rpb24ocix0KXtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtmb3IodmFyIGk9dC5wYXRoLHU9dC5vcCxmPXIscz0wO3M8aS5sZW5ndGgtMTtzKyspe3ZhciB2PW8oZikscD1cIlwiK2lbc107MCE9PXYmJjEhPT12fHxcIl9fcHJvdG9fX1wiIT09cCYmXCJjb25zdHJ1Y3RvclwiIT09cHx8bigyNCksXCJmdW5jdGlvblwiPT10eXBlb2YgZiYmXCJwcm90b3R5cGVcIj09PXAmJm4oMjQpLFwib2JqZWN0XCIhPXR5cGVvZihmPWEoZixwKSkmJm4oMTUsaS5qb2luKFwiL1wiKSl9dmFyIGw9byhmKSxkPWUodC52YWx1ZSksaD1pW2kubGVuZ3RoLTFdO3N3aXRjaCh1KXtjYXNlXCJyZXBsYWNlXCI6c3dpdGNoKGwpe2Nhc2UgMjpyZXR1cm4gZi5zZXQoaCxkKTtjYXNlIDM6bigxNik7ZGVmYXVsdDpyZXR1cm4gZltoXT1kfWNhc2UgYzpzd2l0Y2gobCl7Y2FzZSAxOnJldHVyblwiLVwiPT09aD9mLnB1c2goZCk6Zi5zcGxpY2UoaCwwLGQpO2Nhc2UgMjpyZXR1cm4gZi5zZXQoaCxkKTtjYXNlIDM6cmV0dXJuIGYuYWRkKGQpO2RlZmF1bHQ6cmV0dXJuIGZbaF09ZH1jYXNlXCJyZW1vdmVcIjpzd2l0Y2gobCl7Y2FzZSAxOnJldHVybiBmLnNwbGljZShoLDEpO2Nhc2UgMjpyZXR1cm4gZi5kZWxldGUoaCk7Y2FzZSAzOnJldHVybiBmLmRlbGV0ZSh0LnZhbHVlKTtkZWZhdWx0OnJldHVybiBkZWxldGUgZltoXX1kZWZhdWx0Om4oMTcsdSl9fSkpLHJ9LFI6ZnVuY3Rpb24obixyLHQsZSl7c3dpdGNoKG4uaSl7Y2FzZSAwOmNhc2UgNDpjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKG4scix0LGUpe3ZhciBvPW4udCxzPW4ubztpKG4uRCwoZnVuY3Rpb24obixpKXt2YXIgdj1hKG8sbikscD1hKHMsbiksbD1pP3UobyxuKT9cInJlcGxhY2VcIjpjOlwicmVtb3ZlXCI7aWYodiE9PXB8fFwicmVwbGFjZVwiIT09bCl7dmFyIGQ9ci5jb25jYXQobik7dC5wdXNoKFwicmVtb3ZlXCI9PT1sP3tvcDpsLHBhdGg6ZH06e29wOmwscGF0aDpkLHZhbHVlOnB9KSxlLnB1c2gobD09PWM/e29wOlwicmVtb3ZlXCIscGF0aDpkfTpcInJlbW92ZVwiPT09bD97b3A6YyxwYXRoOmQsdmFsdWU6Zih2KX06e29wOlwicmVwbGFjZVwiLHBhdGg6ZCx2YWx1ZTpmKHYpfSl9fSkpfShuLHIsdCxlKTtjYXNlIDU6Y2FzZSAxOnJldHVybiBmdW5jdGlvbihuLHIsdCxlKXt2YXIgaT1uLnQsbz1uLkQsdT1uLm87aWYodS5sZW5ndGg8aS5sZW5ndGgpe3ZhciBhPVt1LGldO2k9YVswXSx1PWFbMV07dmFyIHM9W2UsdF07dD1zWzBdLGU9c1sxXX1mb3IodmFyIHY9MDt2PGkubGVuZ3RoO3YrKylpZihvW3ZdJiZ1W3ZdIT09aVt2XSl7dmFyIHA9ci5jb25jYXQoW3ZdKTt0LnB1c2goe29wOlwicmVwbGFjZVwiLHBhdGg6cCx2YWx1ZTpmKHVbdl0pfSksZS5wdXNoKHtvcDpcInJlcGxhY2VcIixwYXRoOnAsdmFsdWU6ZihpW3ZdKX0pfWZvcih2YXIgbD1pLmxlbmd0aDtsPHUubGVuZ3RoO2wrKyl7dmFyIGQ9ci5jb25jYXQoW2xdKTt0LnB1c2goe29wOmMscGF0aDpkLHZhbHVlOmYodVtsXSl9KX1pLmxlbmd0aDx1Lmxlbmd0aCYmZS5wdXNoKHtvcDpcInJlcGxhY2VcIixwYXRoOnIuY29uY2F0KFtcImxlbmd0aFwiXSksdmFsdWU6aS5sZW5ndGh9KX0obixyLHQsZSk7Y2FzZSAzOnJldHVybiBmdW5jdGlvbihuLHIsdCxlKXt2YXIgaT1uLnQsbz1uLm8sdT0wO2kuZm9yRWFjaCgoZnVuY3Rpb24obil7aWYoIW8uaGFzKG4pKXt2YXIgaT1yLmNvbmNhdChbdV0pO3QucHVzaCh7b3A6XCJyZW1vdmVcIixwYXRoOmksdmFsdWU6bn0pLGUudW5zaGlmdCh7b3A6YyxwYXRoOmksdmFsdWU6bn0pfXUrK30pKSx1PTAsby5mb3JFYWNoKChmdW5jdGlvbihuKXtpZighaS5oYXMobikpe3ZhciBvPXIuY29uY2F0KFt1XSk7dC5wdXNoKHtvcDpjLHBhdGg6byx2YWx1ZTpufSksZS51bnNoaWZ0KHtvcDpcInJlbW92ZVwiLHBhdGg6byx2YWx1ZTpufSl9dSsrfSkpfShuLHIsdCxlKX19LE06ZnVuY3Rpb24obixyLHQsZSl7dC5wdXNoKHtvcDpcInJlcGxhY2VcIixwYXRoOltdLHZhbHVlOnI9PT1IP3ZvaWQgMDpyfSksZS5wdXNoKHtvcDpcInJlcGxhY2VcIixwYXRoOltdLHZhbHVlOm59KX19KX1mdW5jdGlvbiBDKCl7ZnVuY3Rpb24gcihuLHIpe2Z1bmN0aW9uIHQoKXt0aGlzLmNvbnN0cnVjdG9yPW59YShuLHIpLG4ucHJvdG90eXBlPSh0LnByb3RvdHlwZT1yLnByb3RvdHlwZSxuZXcgdCl9ZnVuY3Rpb24gZShuKXtuLm98fChuLkQ9bmV3IE1hcCxuLm89bmV3IE1hcChuLnQpKX1mdW5jdGlvbiBvKG4pe24ub3x8KG4ubz1uZXcgU2V0LG4udC5mb3JFYWNoKChmdW5jdGlvbihyKXtpZih0KHIpKXt2YXIgZT1SKG4uQS5oLHIsbik7bi5wLnNldChyLGUpLG4uby5hZGQoZSl9ZWxzZSBuLm8uYWRkKHIpfSkpKX1mdW5jdGlvbiB1KHIpe3IuTyYmbigzLEpTT04uc3RyaW5naWZ5KHAocikpKX12YXIgYT1mdW5jdGlvbihuLHIpe3JldHVybihhPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihuLHIpe24uX19wcm90b19fPXJ9fHxmdW5jdGlvbihuLHIpe2Zvcih2YXIgdCBpbiByKXIuaGFzT3duUHJvcGVydHkodCkmJihuW3RdPXJbdF0pfSkobixyKX0sZj1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obixyKXtyZXR1cm4gdGhpc1tRXT17aToyLGw6cixBOnI/ci5BOl8oKSxQOiExLEk6ITEsbzp2b2lkIDAsRDp2b2lkIDAsdDpuLGs6dGhpcyxDOiExLE86ITF9LHRoaXN9cihuLE1hcCk7dmFyIG89bi5wcm90b3R5cGU7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLFwic2l6ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzW1FdKS5zaXplfX0pLG8uaGFzPWZ1bmN0aW9uKG4pe3JldHVybiBwKHRoaXNbUV0pLmhhcyhuKX0sby5zZXQ9ZnVuY3Rpb24obixyKXt2YXIgdD10aGlzW1FdO3JldHVybiB1KHQpLHAodCkuaGFzKG4pJiZwKHQpLmdldChuKT09PXJ8fChlKHQpLGsodCksdC5ELnNldChuLCEwKSx0Lm8uc2V0KG4sciksdC5ELnNldChuLCEwKSksdGhpc30sby5kZWxldGU9ZnVuY3Rpb24obil7aWYoIXRoaXMuaGFzKG4pKXJldHVybiExO3ZhciByPXRoaXNbUV07cmV0dXJuIHUociksZShyKSxrKHIpLHIudC5oYXMobik/ci5ELnNldChuLCExKTpyLkQuZGVsZXRlKG4pLHIuby5kZWxldGUobiksITB9LG8uY2xlYXI9ZnVuY3Rpb24oKXt2YXIgbj10aGlzW1FdO3UobikscChuKS5zaXplJiYoZShuKSxrKG4pLG4uRD1uZXcgTWFwLGkobi50LChmdW5jdGlvbihyKXtuLkQuc2V0KHIsITEpfSkpLG4uby5jbGVhcigpKX0sby5mb3JFYWNoPWZ1bmN0aW9uKG4scil7dmFyIHQ9dGhpcztwKHRoaXNbUV0pLmZvckVhY2goKGZ1bmN0aW9uKGUsaSl7bi5jYWxsKHIsdC5nZXQoaSksaSx0KX0pKX0sby5nZXQ9ZnVuY3Rpb24obil7dmFyIHI9dGhpc1tRXTt1KHIpO3ZhciBpPXAocikuZ2V0KG4pO2lmKHIuSXx8IXQoaSkpcmV0dXJuIGk7aWYoaSE9PXIudC5nZXQobikpcmV0dXJuIGk7dmFyIG89UihyLkEuaCxpLHIpO3JldHVybiBlKHIpLHIuby5zZXQobixvKSxvfSxvLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzW1FdKS5rZXlzKCl9LG8udmFsdWVzPWZ1bmN0aW9uKCl7dmFyIG4scj10aGlzLHQ9dGhpcy5rZXlzKCk7cmV0dXJuKG49e30pW1ZdPWZ1bmN0aW9uKCl7cmV0dXJuIHIudmFsdWVzKCl9LG4ubmV4dD1mdW5jdGlvbigpe3ZhciBuPXQubmV4dCgpO3JldHVybiBuLmRvbmU/bjp7ZG9uZTohMSx2YWx1ZTpyLmdldChuLnZhbHVlKX19LG59LG8uZW50cmllcz1mdW5jdGlvbigpe3ZhciBuLHI9dGhpcyx0PXRoaXMua2V5cygpO3JldHVybihuPXt9KVtWXT1mdW5jdGlvbigpe3JldHVybiByLmVudHJpZXMoKX0sbi5uZXh0PWZ1bmN0aW9uKCl7dmFyIG49dC5uZXh0KCk7aWYobi5kb25lKXJldHVybiBuO3ZhciBlPXIuZ2V0KG4udmFsdWUpO3JldHVybntkb25lOiExLHZhbHVlOltuLnZhbHVlLGVdfX0sbn0sb1tWXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVudHJpZXMoKX0sbn0oKSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuLHIpe3JldHVybiB0aGlzW1FdPXtpOjMsbDpyLEE6cj9yLkE6XygpLFA6ITEsSTohMSxvOnZvaWQgMCx0Om4sazp0aGlzLHA6bmV3IE1hcCxPOiExLEM6ITF9LHRoaXN9cihuLFNldCk7dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwic2l6ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzW1FdKS5zaXplfX0pLHQuaGFzPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXNbUV07cmV0dXJuIHUociksci5vPyEhci5vLmhhcyhuKXx8ISghci5wLmhhcyhuKXx8IXIuby5oYXMoci5wLmdldChuKSkpOnIudC5oYXMobil9LHQuYWRkPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXNbUV07cmV0dXJuIHUociksdGhpcy5oYXMobil8fChvKHIpLGsociksci5vLmFkZChuKSksdGhpc30sdC5kZWxldGU9ZnVuY3Rpb24obil7aWYoIXRoaXMuaGFzKG4pKXJldHVybiExO3ZhciByPXRoaXNbUV07cmV0dXJuIHUociksbyhyKSxrKHIpLHIuby5kZWxldGUobil8fCEhci5wLmhhcyhuKSYmci5vLmRlbGV0ZShyLnAuZ2V0KG4pKX0sdC5jbGVhcj1mdW5jdGlvbigpe3ZhciBuPXRoaXNbUV07dShuKSxwKG4pLnNpemUmJihvKG4pLGsobiksbi5vLmNsZWFyKCkpfSx0LnZhbHVlcz1mdW5jdGlvbigpe3ZhciBuPXRoaXNbUV07cmV0dXJuIHUobiksbyhuKSxuLm8udmFsdWVzKCl9LHQuZW50cmllcz1mdW5jdGlvbigpe3ZhciBuPXRoaXNbUV07cmV0dXJuIHUobiksbyhuKSxuLm8uZW50cmllcygpfSx0LmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMoKX0sdFtWXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcygpfSx0LmZvckVhY2g9ZnVuY3Rpb24obixyKXtmb3IodmFyIHQ9dGhpcy52YWx1ZXMoKSxlPXQubmV4dCgpOyFlLmRvbmU7KW4uY2FsbChyLGUudmFsdWUsZS52YWx1ZSx0aGlzKSxlPXQubmV4dCgpfSxufSgpO20oXCJNYXBTZXRcIix7TjpmdW5jdGlvbihuLHIpe3JldHVybiBuZXcgZihuLHIpfSxUOmZ1bmN0aW9uKG4scil7cmV0dXJuIG5ldyBjKG4scil9fSl9ZnVuY3Rpb24gSigpe04oKSxDKCksVCgpfWZ1bmN0aW9uIEsobil7cmV0dXJuIG59ZnVuY3Rpb24gJChuKXtyZXR1cm4gbn12YXIgRyxVLFc9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbChcInhcIiksWD1cInVuZGVmaW5lZFwiIT10eXBlb2YgTWFwLHE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldCxCPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm94eSYmdm9pZCAwIT09UHJveHkucmV2b2NhYmxlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgUmVmbGVjdCxIPVc/U3ltYm9sLmZvcihcImltbWVyLW5vdGhpbmdcIik6KChHPXt9KVtcImltbWVyLW5vdGhpbmdcIl09ITAsRyksTD1XP1N5bWJvbC5mb3IoXCJpbW1lci1kcmFmdGFibGVcIik6XCJfXyRpbW1lcl9kcmFmdGFibGVcIixRPVc/U3ltYm9sLmZvcihcImltbWVyLXN0YXRlXCIpOlwiX18kaW1tZXJfc3RhdGVcIixWPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcnx8XCJAQGl0ZXJhdG9yXCIsWT17MDpcIklsbGVnYWwgc3RhdGVcIiwxOlwiSW1tZXIgZHJhZnRzIGNhbm5vdCBoYXZlIGNvbXB1dGVkIHByb3BlcnRpZXNcIiwyOlwiVGhpcyBvYmplY3QgaGFzIGJlZW4gZnJvemVuIGFuZCBzaG91bGQgbm90IGJlIG11dGF0ZWRcIiwzOmZ1bmN0aW9uKG4pe3JldHVyblwiQ2Fubm90IHVzZSBhIHByb3h5IHRoYXQgaGFzIGJlZW4gcmV2b2tlZC4gRGlkIHlvdSBwYXNzIGFuIG9iamVjdCBmcm9tIGluc2lkZSBhbiBpbW1lciBmdW5jdGlvbiB0byBhbiBhc3luYyBwcm9jZXNzPyBcIitufSw0OlwiQW4gaW1tZXIgcHJvZHVjZXIgcmV0dXJuZWQgYSBuZXcgdmFsdWUgKmFuZCogbW9kaWZpZWQgaXRzIGRyYWZ0LiBFaXRoZXIgcmV0dXJuIGEgbmV3IHZhbHVlICpvciogbW9kaWZ5IHRoZSBkcmFmdC5cIiw1OlwiSW1tZXIgZm9yYmlkcyBjaXJjdWxhciByZWZlcmVuY2VzXCIsNjpcIlRoZSBmaXJzdCBvciBzZWNvbmQgYXJndW1lbnQgdG8gYHByb2R1Y2VgIG11c3QgYmUgYSBmdW5jdGlvblwiLDc6XCJUaGUgdGhpcmQgYXJndW1lbnQgdG8gYHByb2R1Y2VgIG11c3QgYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWRcIiw4OlwiRmlyc3QgYXJndW1lbnQgdG8gYGNyZWF0ZURyYWZ0YCBtdXN0IGJlIGEgcGxhaW4gb2JqZWN0LCBhbiBhcnJheSwgb3IgYW4gaW1tZXJhYmxlIG9iamVjdFwiLDk6XCJGaXJzdCBhcmd1bWVudCB0byBgZmluaXNoRHJhZnRgIG11c3QgYmUgYSBkcmFmdCByZXR1cm5lZCBieSBgY3JlYXRlRHJhZnRgXCIsMTA6XCJUaGUgZ2l2ZW4gZHJhZnQgaXMgYWxyZWFkeSBmaW5hbGl6ZWRcIiwxMTpcIk9iamVjdC5kZWZpbmVQcm9wZXJ0eSgpIGNhbm5vdCBiZSB1c2VkIG9uIGFuIEltbWVyIGRyYWZ0XCIsMTI6XCJPYmplY3Quc2V0UHJvdG90eXBlT2YoKSBjYW5ub3QgYmUgdXNlZCBvbiBhbiBJbW1lciBkcmFmdFwiLDEzOlwiSW1tZXIgb25seSBzdXBwb3J0cyBkZWxldGluZyBhcnJheSBpbmRpY2VzXCIsMTQ6XCJJbW1lciBvbmx5IHN1cHBvcnRzIHNldHRpbmcgYXJyYXkgaW5kaWNlcyBhbmQgdGhlICdsZW5ndGgnIHByb3BlcnR5XCIsMTU6ZnVuY3Rpb24obil7cmV0dXJuXCJDYW5ub3QgYXBwbHkgcGF0Y2gsIHBhdGggZG9lc24ndCByZXNvbHZlOiBcIitufSwxNjonU2V0cyBjYW5ub3QgaGF2ZSBcInJlcGxhY2VcIiBwYXRjaGVzLicsMTc6ZnVuY3Rpb24obil7cmV0dXJuXCJVbnN1cHBvcnRlZCBwYXRjaCBvcGVyYXRpb246IFwiK259LDE4OmZ1bmN0aW9uKG4pe3JldHVyblwiVGhlIHBsdWdpbiBmb3IgJ1wiK24rXCInIGhhcyBub3QgYmVlbiBsb2FkZWQgaW50byBJbW1lci4gVG8gZW5hYmxlIHRoZSBwbHVnaW4sIGltcG9ydCBhbmQgY2FsbCBgZW5hYmxlXCIrbitcIigpYCB3aGVuIGluaXRpYWxpemluZyB5b3VyIGFwcGxpY2F0aW9uLlwifSwyMDpcIkNhbm5vdCB1c2UgcHJveGllcyBpZiBQcm94eSwgUHJveHkucmV2b2NhYmxlIG9yIFJlZmxlY3QgYXJlIG5vdCBhdmFpbGFibGVcIiwyMTpmdW5jdGlvbihuKXtyZXR1cm5cInByb2R1Y2UgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIHRoaW5ncyB0aGF0IGFyZSBkcmFmdGFibGU6IHBsYWluIG9iamVjdHMsIGFycmF5cywgTWFwLCBTZXQgb3IgY2xhc3NlcyB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnW2ltbWVyYWJsZV06IHRydWUnLiBHb3QgJ1wiK24rXCInXCJ9LDIyOmZ1bmN0aW9uKG4pe3JldHVyblwiJ2N1cnJlbnQnIGV4cGVjdHMgYSBkcmFmdCwgZ290OiBcIitufSwyMzpmdW5jdGlvbihuKXtyZXR1cm5cIidvcmlnaW5hbCcgZXhwZWN0cyBhIGRyYWZ0LCBnb3Q6IFwiK259LDI0OlwiUGF0Y2hpbmcgcmVzZXJ2ZWQgYXR0cmlidXRlcyBsaWtlIF9fcHJvdG9fXywgcHJvdG90eXBlIGFuZCBjb25zdHJ1Y3RvciBpcyBub3QgYWxsb3dlZFwifSxaPVwiXCIrT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcixubj1cInVuZGVmaW5lZFwiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5vd25LZXlzP1JlZmxlY3Qub3duS2V5czp2b2lkIDAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKG4pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhuKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKSl9Ok9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLHJuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzfHxmdW5jdGlvbihuKXt2YXIgcj17fTtyZXR1cm4gbm4obikuZm9yRWFjaCgoZnVuY3Rpb24odCl7clt0XT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCl9KSkscn0sdG49e30sZW49e2dldDpmdW5jdGlvbihuLHIpe2lmKHI9PT1RKXJldHVybiBuO3ZhciBlPXAobik7aWYoIXUoZSxyKSlyZXR1cm4gZnVuY3Rpb24obixyLHQpe3ZhciBlLGk9SShyLHQpO3JldHVybiBpP1widmFsdWVcImluIGk/aS52YWx1ZTpudWxsPT09KGU9aS5nZXQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwobi5rKTp2b2lkIDB9KG4sZSxyKTt2YXIgaT1lW3JdO3JldHVybiBuLkl8fCF0KGkpP2k6aT09PXoobi50LHIpPyhFKG4pLG4ub1tyXT1SKG4uQS5oLGksbikpOml9LGhhczpmdW5jdGlvbihuLHIpe3JldHVybiByIGluIHAobil9LG93bktleXM6ZnVuY3Rpb24obil7cmV0dXJuIFJlZmxlY3Qub3duS2V5cyhwKG4pKX0sc2V0OmZ1bmN0aW9uKG4scix0KXt2YXIgZT1JKHAobikscik7aWYobnVsbD09ZT92b2lkIDA6ZS5zZXQpcmV0dXJuIGUuc2V0LmNhbGwobi5rLHQpLCEwO2lmKCFuLlApe3ZhciBpPXoocChuKSxyKSxvPW51bGw9PWk/dm9pZCAwOmlbUV07aWYobyYmby50PT09dClyZXR1cm4gbi5vW3JdPXQsbi5EW3JdPSExLCEwO2lmKGModCxpKSYmKHZvaWQgMCE9PXR8fHUobi50LHIpKSlyZXR1cm4hMDtFKG4pLGsobil9cmV0dXJuIG4ub1tyXT09PXQmJlwibnVtYmVyXCIhPXR5cGVvZiB0JiYodm9pZCAwIT09dHx8ciBpbiBuLm8pfHwobi5vW3JdPXQsbi5EW3JdPSEwLCEwKX0sZGVsZXRlUHJvcGVydHk6ZnVuY3Rpb24obixyKXtyZXR1cm4gdm9pZCAwIT09eihuLnQscil8fHIgaW4gbi50PyhuLkRbcl09ITEsRShuKSxrKG4pKTpkZWxldGUgbi5EW3JdLG4ubyYmZGVsZXRlIG4ub1tyXSwhMH0sZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKG4scil7dmFyIHQ9cChuKSxlPVJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscik7cmV0dXJuIGU/e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZToxIT09bi5pfHxcImxlbmd0aFwiIT09cixlbnVtZXJhYmxlOmUuZW51bWVyYWJsZSx2YWx1ZTp0W3JdfTplfSxkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe24oMTEpfSxnZXRQcm90b3R5cGVPZjpmdW5jdGlvbihuKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG4udCl9LHNldFByb3RvdHlwZU9mOmZ1bmN0aW9uKCl7bigxMil9fSxvbj17fTtpKGVuLChmdW5jdGlvbihuLHIpe29uW25dPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c1swXT1hcmd1bWVudHNbMF1bMF0sci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSkpLG9uLmRlbGV0ZVByb3BlcnR5PWZ1bmN0aW9uKHIsdCl7cmV0dXJuXCJwcm9kdWN0aW9uXCIhPT1wcm9jZXNzLmVudi5OT0RFX0VOViYmaXNOYU4ocGFyc2VJbnQodCkpJiZuKDEzKSxvbi5zZXQuY2FsbCh0aGlzLHIsdCx2b2lkIDApfSxvbi5zZXQ9ZnVuY3Rpb24ocix0LGUpe3JldHVyblwicHJvZHVjdGlvblwiIT09cHJvY2Vzcy5lbnYuTk9ERV9FTlYmJlwibGVuZ3RoXCIhPT10JiZpc05hTihwYXJzZUludCh0KSkmJm4oMTQpLGVuLnNldC5jYWxsKHRoaXMsclswXSx0LGUsclswXSl9O3ZhciB1bj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocil7dmFyIGU9dGhpczt0aGlzLmc9Qix0aGlzLkY9ITAsdGhpcy5wcm9kdWNlPWZ1bmN0aW9uKHIsaSxvKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBpKXt2YXIgdT1pO2k9cjt2YXIgYT1lO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj10aGlzO3ZvaWQgMD09PW4mJihuPXUpO2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9QXJyYXkodD4xP3QtMTowKSxvPTE7bzx0O28rKyllW28tMV09YXJndW1lbnRzW29dO3JldHVybiBhLnByb2R1Y2UobiwoZnVuY3Rpb24obil7dmFyIHQ7cmV0dXJuKHQ9aSkuY2FsbC5hcHBseSh0LFtyLG5dLmNvbmNhdChlKSl9KSl9fXZhciBmO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGkmJm4oNiksdm9pZCAwIT09byYmXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmbig3KSx0KHIpKXt2YXIgYz13KGUpLHM9UihlLHIsdm9pZCAwKSx2PSEwO3RyeXtmPWkocyksdj0hMX1maW5hbGx5e3Y/TyhjKTpnKGMpfXJldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlJiZmIGluc3RhbmNlb2YgUHJvbWlzZT9mLnRoZW4oKGZ1bmN0aW9uKG4pe3JldHVybiBqKGMsbyksUChuLGMpfSksKGZ1bmN0aW9uKG4pe3Rocm93IE8oYyksbn0pKTooaihjLG8pLFAoZixjKSl9aWYoIXJ8fFwib2JqZWN0XCIhPXR5cGVvZiByKXtpZih2b2lkIDA9PT0oZj1pKHIpKSYmKGY9ciksZj09PUgmJihmPXZvaWQgMCksZS5GJiZkKGYsITApLG8pe3ZhciBwPVtdLGw9W107YihcIlBhdGNoZXNcIikuTShyLGYscCxsKSxvKHAsbCl9cmV0dXJuIGZ9bigyMSxyKX0sdGhpcy5wcm9kdWNlV2l0aFBhdGNoZXM9ZnVuY3Rpb24obixyKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuKXJldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxpPUFycmF5KHQ+MT90LTE6MCksbz0xO288dDtvKyspaVtvLTFdPWFyZ3VtZW50c1tvXTtyZXR1cm4gZS5wcm9kdWNlV2l0aFBhdGNoZXMociwoZnVuY3Rpb24ocil7cmV0dXJuIG4uYXBwbHkodm9pZCAwLFtyXS5jb25jYXQoaSkpfSkpfTt2YXIgdCxpLG89ZS5wcm9kdWNlKG4sciwoZnVuY3Rpb24obixyKXt0PW4saT1yfSkpO3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlJiZvIGluc3RhbmNlb2YgUHJvbWlzZT9vLnRoZW4oKGZ1bmN0aW9uKG4pe3JldHVybltuLHQsaV19KSk6W28sdCxpXX0sXCJib29sZWFuXCI9PXR5cGVvZihudWxsPT1yP3ZvaWQgMDpyLnVzZVByb3hpZXMpJiZ0aGlzLnNldFVzZVByb3hpZXMoci51c2VQcm94aWVzKSxcImJvb2xlYW5cIj09dHlwZW9mKG51bGw9PXI/dm9pZCAwOnIuYXV0b0ZyZWV6ZSkmJnRoaXMuc2V0QXV0b0ZyZWV6ZShyLmF1dG9GcmVlemUpfXZhciBpPWUucHJvdG90eXBlO3JldHVybiBpLmNyZWF0ZURyYWZ0PWZ1bmN0aW9uKGUpe3QoZSl8fG4oOCkscihlKSYmKGU9RChlKSk7dmFyIGk9dyh0aGlzKSxvPVIodGhpcyxlLHZvaWQgMCk7cmV0dXJuIG9bUV0uQz0hMCxnKGkpLG99LGkuZmluaXNoRHJhZnQ9ZnVuY3Rpb24ocix0KXt2YXIgZT1yJiZyW1FdO1wicHJvZHVjdGlvblwiIT09cHJvY2Vzcy5lbnYuTk9ERV9FTlYmJihlJiZlLkN8fG4oOSksZS5JJiZuKDEwKSk7dmFyIGk9ZS5BO3JldHVybiBqKGksdCksUCh2b2lkIDAsaSl9LGkuc2V0QXV0b0ZyZWV6ZT1mdW5jdGlvbihuKXt0aGlzLkY9bn0saS5zZXRVc2VQcm94aWVzPWZ1bmN0aW9uKHIpe3ImJiFCJiZuKDIwKSx0aGlzLmc9cn0saS5hcHBseVBhdGNoZXM9ZnVuY3Rpb24obix0KXt2YXIgZTtmb3IoZT10Lmxlbmd0aC0xO2U+PTA7ZS0tKXt2YXIgaT10W2VdO2lmKDA9PT1pLnBhdGgubGVuZ3RoJiZcInJlcGxhY2VcIj09PWkub3Ape249aS52YWx1ZTticmVha319ZT4tMSYmKHQ9dC5zbGljZShlKzEpKTt2YXIgbz1iKFwiUGF0Y2hlc1wiKS4kO3JldHVybiByKG4pP28obix0KTp0aGlzLnByb2R1Y2UobiwoZnVuY3Rpb24obil7cmV0dXJuIG8obix0KX0pKX0sZX0oKSxhbj1uZXcgdW4sZm49YW4ucHJvZHVjZSxjbj1hbi5wcm9kdWNlV2l0aFBhdGNoZXMuYmluZChhbiksc249YW4uc2V0QXV0b0ZyZWV6ZS5iaW5kKGFuKSx2bj1hbi5zZXRVc2VQcm94aWVzLmJpbmQoYW4pLHBuPWFuLmFwcGx5UGF0Y2hlcy5iaW5kKGFuKSxsbj1hbi5jcmVhdGVEcmFmdC5iaW5kKGFuKSxkbj1hbi5maW5pc2hEcmFmdC5iaW5kKGFuKTtleHBvcnQgZGVmYXVsdCBmbjtleHBvcnR7dW4gYXMgSW1tZXIscG4gYXMgYXBwbHlQYXRjaGVzLEsgYXMgY2FzdERyYWZ0LCQgYXMgY2FzdEltbXV0YWJsZSxsbiBhcyBjcmVhdGVEcmFmdCxEIGFzIGN1cnJlbnQsSiBhcyBlbmFibGVBbGxQbHVnaW5zLE4gYXMgZW5hYmxlRVM1LEMgYXMgZW5hYmxlTWFwU2V0LFQgYXMgZW5hYmxlUGF0Y2hlcyxkbiBhcyBmaW5pc2hEcmFmdCxkIGFzIGZyZWV6ZSxMIGFzIGltbWVyYWJsZSxyIGFzIGlzRHJhZnQsdCBhcyBpc0RyYWZ0YWJsZSxIIGFzIG5vdGhpbmcsZSBhcyBvcmlnaW5hbCxmbiBhcyBwcm9kdWNlLGNuIGFzIHByb2R1Y2VXaXRoUGF0Y2hlcyxzbiBhcyBzZXRBdXRvRnJlZXplLHZuIGFzIHNldFVzZVByb3hpZXN9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1tZXIuZXNtLmpzLm1hcFxuIiwiLyohXG4gKiBNaWNyb3NvZnQgRHluYW1pYyBQcm90byBVdGlsaXR5LCAxLjEuN1xuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xudmFyIF9hO1xyXG52YXIgVU5ERUZJTkVEID0gXCJ1bmRlZmluZWRcIjtcclxuLyoqXHJcbiAqIENvbnN0YW50IHN0cmluZyBkZWZpbmVkIHRvIHN1cHBvcnQgbWluaW1pemF0aW9uXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBDb25zdHJ1Y3RvciA9ICdjb25zdHJ1Y3Rvcic7XHJcbi8qKlxyXG4gKiBDb25zdGFudCBzdHJpbmcgZGVmaW5lZCB0byBzdXBwb3J0IG1pbmltaXphdGlvblxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG52YXIgUHJvdG90eXBlID0gJ3Byb3RvdHlwZSc7XHJcbi8qKlxyXG4gKiBDb25zdGFudCBzdHJpbmcgZGVmaW5lZCB0byBzdXBwb3J0IG1pbmltaXphdGlvblxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG52YXIgc3RyRnVuY3Rpb24gPSAnZnVuY3Rpb24nO1xyXG4vKipcclxuICogVXNlZCB0byBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlIGZ1bmN0aW9uIGxvb2t1cCB0YWJsZVxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG52YXIgRHluSW5zdEZ1bmNUYWJsZSA9ICdfZHluSW5zdEZ1bmNzJztcclxuLyoqXHJcbiAqIE5hbWUgdXNlZCB0byB0YWcgdGhlIGR5bmFtaWMgcHJvdG90eXBlIGZ1bmN0aW9uXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBEeW5Qcm94eVRhZyA9ICdfaXNEeW5Qcm94eSc7XHJcbi8qKlxyXG4gKiBOYW1lIGFkZGVkIHRvIGEgcHJvdG90eXBlIHRvIGRlZmluZSB0aGUgZHluYW1pYyBwcm90b3R5cGUgXCJjbGFzc1wiIG5hbWUgdXNlZCB0byBsb29rdXAgdGhlIGZ1bmN0aW9uIHRhYmxlXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBEeW5DbGFzc05hbWUgPSAnX2R5bkNsYXNzJztcclxuLyoqXHJcbiAqIFByZWZpeCBhZGRlZCB0byB0aGUgY2xhc3NuYW1lIHRvIGF2b2lkIGFueSBuYW1lIGNsYXNoZXMgd2l0aCBvdGhlciBpbnN0YW5jZSBsZXZlbCBwcm9wZXJ0aWVzXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBEeW5DbGFzc05hbWVQcmVmaXggPSAnX2R5bkNscyQnO1xyXG4vKipcclxuICogQSB0YWcgd2hpY2ggaXMgdXNlZCB0byBjaGVjayBpZiB3ZSBoYXZlIGFscmVhZHkgdG8gYXR0ZW1wdGVkIHRvIHNldCB0aGUgaW5zdGFuY2UgZnVuY3Rpb24gaWYgb25lIGlzIG5vdCBwcmVzZW50XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBEeW5JbnN0Q2hrVGFnID0gJ19keW5JbnN0Q2hrJztcclxuLyoqXHJcbiAqIEEgdGFnIHdoaWNoIGlzIHVzZWQgdG8gY2hlY2sgaWYgd2UgYXJlIGFsbG93cyB0byB0cnkgYW5kIHNldCBhbiBpbnN0YW5jZSBmdW5jdGlvbiBpcyBvbmUgaXMgbm90IHByZXNlbnQuIFVzaW5nIHRoZSBzYW1lXHJcbiAqIHRhZyBuYW1lIGFzIHRoZSBmdW5jdGlvbiBsZXZlbCBidXQgYSBkaWZmZXJlbnQgY29uc3QgbmFtZSBmb3IgcmVhZGFiaWxpdHkgb25seS5cclxuICovXHJcbnZhciBEeW5BbGxvd0luc3RDaGtUYWcgPSBEeW5JbnN0Q2hrVGFnO1xyXG4vKipcclxuICogVGhlIGdsb2JhbCAoaW1wb3J0ZWQpIGluc3RhbmNlcyB3aGVyZSB0aGUgZ2xvYmFsIHBlcmZvcm1hbmNlIG9wdGlvbnMgYXJlIHN0b3JlZFxyXG4gKi9cclxudmFyIER5blByb3RvRGVmYXVsdE9wdGlvbnMgPSAnX2RmT3B0cyc7XHJcbi8qKlxyXG4gKiBWYWx1ZSB1c2VkIGFzIHRoZSBuYW1lIG9mIGEgY2xhc3Mgd2hlbiBpdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZFxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG52YXIgVW5rbm93blZhbHVlID0gJ191bmtub3duXyc7XHJcbi8qKlxyXG4gKiBDb25zdGFudCBzdHJpbmcgZGVmaW5lZCB0byBzdXBwb3J0IG1pbmltaXphdGlvblxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG52YXIgc3RyX19Qcm90byA9IFwiX19wcm90b19fXCI7XHJcbi8qKlxyXG4gKiBUaGUgcG9seWZpbGwgdmVyc2lvbiBvZiBfX3Byb3RvX18gc28gdGhhdCBpdCBkb2Vzbid0IGNhdXNlIGlzc3VlcyBmb3IgYW55b25lIG5vdCBleHBlY3RpbmcgaXQgdG8gZXhpc3RcclxuICovXHJcbnZhciBEeW5Qcm90b0Jhc2VQcm90byA9IFwiX2R5blwiICsgc3RyX19Qcm90bztcclxuLyoqXHJcbiAqIFJ1bnRpbWUgR2xvYmFsIGhvbGRlciBmb3IgZHluYW1pY1Byb3RvIHNldHRpbmdzXHJcbiAqL1xyXG52YXIgRHluUHJvdG9HbG9iYWxTZXR0aW5ncyA9IFwiX19keW5Qcm90byRHYmxcIjtcclxuLyoqXHJcbiAqIFRyYWNrIHRoZSBjdXJyZW50IHByb3RvdHlwZSBmb3IgSUU4IGFzIHlvdSBjYW4ndCBsb29rIGJhY2sgdG8gZ2V0IHRoZSBwcm90b3R5cGVcclxuICovXHJcbnZhciBEeW5Qcm90b0N1cnJlbnQgPSBcIl9keW5JbnN0UHJvdG9cIjtcclxuLyoqXHJcbiAqIENvbnN0YW50IHN0cmluZyBkZWZpbmVkIHRvIHN1cHBvcnQgbWluaW1pemF0aW9uXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBzdHJVc2VCYXNlSW5zdCA9ICd1c2VCYXNlSW5zdCc7XHJcbi8qKlxyXG4gKiBDb25zdGFudCBzdHJpbmcgZGVmaW5lZCB0byBzdXBwb3J0IG1pbmltaXphdGlvblxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG52YXIgc3RyU2V0SW5zdEZ1bmNzID0gJ3NldEluc3RGdW5jcyc7XHJcbnZhciBPYmogPSBPYmplY3Q7XHJcbi8qKlxyXG4gKiBQcmUtbG9va3VwIHRvIGNoZWNrIGlmIHdlIGFyZSBydW5uaW5nIG9uIGEgbW9kZXJuIGJyb3dzZXIgKGkuZS4gbm90IElFOClcclxuICogQGlnbm9yZVxyXG4gKi9cclxudmFyIF9vYmpHZXRQcm90b3R5cGVPZiA9IE9ialtcImdldFByb3RvdHlwZU9mXCJdO1xyXG4vKipcclxuICogUHJlLWxvb2t1cCB0byBjaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGlzIGZ1bmN0aW9uXHJcbiAqL1xyXG52YXIgX29iakdldE93blByb3BzID0gT2JqW1wiZ2V0T3duUHJvcGVydHlOYW1lc1wiXTtcclxuLyoqXHJcbiAqIEdldHMgdGhlIHJ1bnRpbWUgZ2xvYmFsIHJlZmVyZW5jZVxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZnVuY3Rpb24gX2dldEdsb2JhbCgpIHtcclxuICAgIHZhciByZXN1bHQ7XHJcbiAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09IFVOREVGSU5FRCkge1xyXG4gICAgICAgIHJlc3VsdCA9IGdsb2JhbFRoaXM7XHJcbiAgICB9XHJcbiAgICBpZiAoIXJlc3VsdCAmJiB0eXBlb2Ygc2VsZiAhPT0gVU5ERUZJTkVEKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gc2VsZjtcclxuICAgIH1cclxuICAgIGlmICghcmVzdWx0ICYmIHR5cGVvZiB3aW5kb3cgIT09IFVOREVGSU5FRCkge1xyXG4gICAgICAgIHJlc3VsdCA9IHdpbmRvdztcclxuICAgIH1cclxuICAgIGlmICghcmVzdWx0ICYmIHR5cGVvZiBnbG9iYWwgIT09IFVOREVGSU5FRCkge1xyXG4gICAgICAgIHJlc3VsdCA9IGdsb2JhbDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQgfHwge307XHJcbn1cclxuLy8gU2luY2UgMS4xLjcgbW92aW5nIHRoZXNlIHRvIHRoZSBydW50aW1lIGdsb2JhbCB0byB3b3JrIGFyb3VuZCBtaXhlZCB2ZXJzaW9uIGFuZCBtb2R1bGUgaXNzdWVzXHJcbi8vIFNlZSBJc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L0R5bmFtaWNQcm90by1KUy9pc3N1ZXMvNTcgZm9yIGRldGFpbHNcclxudmFyIF9nYmwgPSBfZ2V0R2xvYmFsKCk7XHJcbnZhciBfZ2JsSW5zdCA9IF9nYmxbRHluUHJvdG9HbG9iYWxTZXR0aW5nc10gfHwgKF9nYmxbRHluUHJvdG9HbG9iYWxTZXR0aW5nc10gPSB7XHJcbiAgICBvOiAoX2EgPSB7fSxcclxuICAgICAgICBfYVtzdHJTZXRJbnN0RnVuY3NdID0gdHJ1ZSxcclxuICAgICAgICBfYVtzdHJVc2VCYXNlSW5zdF0gPSB0cnVlLFxyXG4gICAgICAgIF9hKSxcclxuICAgIG46IDEwMDAgLy8gU3RhcnQgbmV3IGdsb2JhbCBpbmRleCBAIDEwMDAgc28gd2UgXCJmaXhcIiBzb21lIGNhc2VzIHdoZW4gbWl4ZWQgd2l0aCAxLjEuNiBvciBlYXJsaWVyXHJcbn0pO1xyXG4vKipcclxuICogSGVscGVyIHRvIGNoZWNrIGlmIHRoZSBvYmplY3QgY29udGFpbnMgYSBwcm9wZXJ0eSBvZiB0aGUgbmFtZVxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5mdW5jdGlvbiBfaGFzT3duUHJvcGVydHkob2JqLCBwcm9wKSB7XHJcbiAgICByZXR1cm4gb2JqICYmIE9ialtQcm90b3R5cGVdLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcclxufVxyXG4vKipcclxuICogSGVscGVyIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgdGFyZ2V0IGlzIGFuIE9iamVjdCBwcm90b3R5cGUgb3IgQXJyYXkgcHJvdG90eXBlXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIF9pc09iamVjdE9yQXJyYXlQcm90b3R5cGUodGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gdGFyZ2V0ICYmICh0YXJnZXQgPT09IE9ialtQcm90b3R5cGVdIHx8IHRhcmdldCA9PT0gQXJyYXlbUHJvdG90eXBlXSk7XHJcbn1cclxuLyoqXHJcbiAqIEhlbHBlciB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHRhcmdldCBpcyBhbiBPYmplY3QgcHJvdG90eXBlLCBBcnJheSBwcm90b3R5cGUgb3IgRnVuY3Rpb24gcHJvdG90eXBlXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIF9pc09iamVjdEFycmF5T3JGdW5jdGlvblByb3RvdHlwZSh0YXJnZXQpIHtcclxuICAgIHJldHVybiBfaXNPYmplY3RPckFycmF5UHJvdG90eXBlKHRhcmdldCkgfHwgdGFyZ2V0ID09PSBGdW5jdGlvbltQcm90b3R5cGVdO1xyXG59XHJcbi8qKlxyXG4gKiBIZWxwZXIgdXNlZCB0byBnZXQgdGhlIHByb3RvdHlwZSBvZiB0aGUgdGFyZ2V0IG9iamVjdCBhcyBnZXRQcm90b3R5cGVPZiBpcyBub3QgYXZhaWxhYmxlIGluIGFuIEVTMyBlbnZpcm9ubWVudC5cclxuICogQGlnbm9yZVxyXG4gKi9cclxuZnVuY3Rpb24gX2dldE9ialByb3RvKHRhcmdldCkge1xyXG4gICAgdmFyIG5ld1Byb3RvO1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZXhpc3QgaW4gb2xkZXIgYnJvd3NlcnMgKGUuZy4gSUU4KVxyXG4gICAgICAgIGlmIChfb2JqR2V0UHJvdG90eXBlT2YpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF9vYmpHZXRQcm90b3R5cGVPZih0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY3VyUHJvdG8gPSB0YXJnZXRbc3RyX19Qcm90b10gfHwgdGFyZ2V0W1Byb3RvdHlwZV0gfHwgKHRhcmdldFtDb25zdHJ1Y3Rvcl0gPyB0YXJnZXRbQ29uc3RydWN0b3JdW1Byb3RvdHlwZV0gOiBudWxsKTtcclxuICAgICAgICAvLyBVc2luZyB0aGUgcHJlLWNhbGN1bGF0ZWQgdmFsdWUgYXMgSUU4IGRvZXNuJ3Qgc3VwcG9ydCBsb29raW5nIHVwIHRoZSBwcm90b3R5cGUgb2YgYSBwcm90b3R5cGUgYW5kIHRodXMgZmFpbHMgZm9yIG1vcmUgdGhhbiAxIGJhc2UgY2xhc3NcclxuICAgICAgICBuZXdQcm90byA9IHRhcmdldFtEeW5Qcm90b0Jhc2VQcm90b10gfHwgY3VyUHJvdG87XHJcbiAgICAgICAgaWYgKCFfaGFzT3duUHJvcGVydHkodGFyZ2V0LCBEeW5Qcm90b0Jhc2VQcm90bykpIHtcclxuICAgICAgICAgICAgLy8gQXMgdGhpcyBwcm90b3R5cGUgZG9lc24ndCBoYXZlIHRoaXMgcHJvcGVydHkgdGhlbiB0aGlzIGlzIGZyb20gYW4gaW5oZXJpdGVkIGNsYXNzIHNvIG5ld1Byb3RvIGlzIHRoZSBiYXNlIHRvIHJldHVybiBzbyBzYXZlIGl0XHJcbiAgICAgICAgICAgIC8vIHNvIHdlIGNhbiBsb29rIGl0IHVwIHZhbHVlICh3aGljaCBmb3IgYSBtdWx0aXBsZSBoaWVyYXJjaHkgZHluYW1pY1Byb3RvIHdpbGwgYmUgdGhlIGJhc2UgY2xhc3MpXHJcbiAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXRbRHluUHJvdG9DdXJyZW50XTsgLy8gRGVsZXRlIGFueSBjdXJyZW50IHZhbHVlIGFsbG9jYXRlZCB0byB0aGlzIGluc3RhbmNlIHNvIHdlIHBpY2sgdXAgdGhlIHZhbHVlIGZyb20gcHJvdG90eXBlIGhpZXJhcmNoeVxyXG4gICAgICAgICAgICBuZXdQcm90byA9IHRhcmdldFtEeW5Qcm90b0Jhc2VQcm90b10gPSB0YXJnZXRbRHluUHJvdG9DdXJyZW50XSB8fCB0YXJnZXRbRHluUHJvdG9CYXNlUHJvdG9dO1xyXG4gICAgICAgICAgICB0YXJnZXRbRHluUHJvdG9DdXJyZW50XSA9IGN1clByb3RvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdQcm90bztcclxufVxyXG4vKipcclxuICogSGVscGVyIHRvIGdldCB0aGUgcHJvcGVydGllcyBvZiBhbiBvYmplY3QsIGluY2x1ZGluZyBub25lIGVudW1lcmFibGUgb25lcyBhcyBmdW5jdGlvbnMgb24gYSBwcm90b3R5cGUgaW4gRVM2XHJcbiAqIGFyZSBub3QgZW51bWVyYWJsZS5cclxuICogQHBhcmFtIHRhcmdldFxyXG4gKi9cclxuZnVuY3Rpb24gX2ZvckVhY2hQcm9wKHRhcmdldCwgZnVuYykge1xyXG4gICAgdmFyIHByb3BzID0gW107XHJcbiAgICBpZiAoX29iakdldE93blByb3BzKSB7XHJcbiAgICAgICAgcHJvcHMgPSBfb2JqR2V0T3duUHJvcHModGFyZ2V0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGZvciAodmFyIG5hbWVfMSBpbiB0YXJnZXQpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lXzEgPT09IFwic3RyaW5nXCIgJiYgX2hhc093blByb3BlcnR5KHRhcmdldCwgbmFtZV8xKSkge1xyXG4gICAgICAgICAgICAgICAgcHJvcHMucHVzaChuYW1lXzEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzICYmIHByb3BzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKHZhciBscCA9IDA7IGxwIDwgcHJvcHMubGVuZ3RoOyBscCsrKSB7XHJcbiAgICAgICAgICAgIGZ1bmMocHJvcHNbbHBdKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBuYW1lIGlzIGEgcG90ZW50aWFsIGNhbmRpZGF0ZSBmb3IgZHluYW1pY1xyXG4gKiBjYWxsYmFjayBhbmQgcHJvdG90eXBlIGdlbmVyYXRpb24uXHJcbiAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3QsIG1heSBiZSBhIHByb3RvdHlwZSBvciBjbGFzcyBvYmplY3RcclxuICogQHBhcmFtIGZ1bmNOYW1lIFRoZSBmdW5jdGlvbiBuYW1lXHJcbiAqIEBwYXJhbSBza2lwT3duIFNraXBzIHRoZSBjaGVjayBmb3Igb3duIHByb3BlcnR5XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIF9pc0R5bmFtaWNDYW5kaWRhdGUodGFyZ2V0LCBmdW5jTmFtZSwgc2tpcE93bikge1xyXG4gICAgcmV0dXJuIChmdW5jTmFtZSAhPT0gQ29uc3RydWN0b3IgJiYgdHlwZW9mIHRhcmdldFtmdW5jTmFtZV0gPT09IHN0ckZ1bmN0aW9uICYmIChza2lwT3duIHx8IF9oYXNPd25Qcm9wZXJ0eSh0YXJnZXQsIGZ1bmNOYW1lKSkpO1xyXG59XHJcbi8qKlxyXG4gKiBIZWxwZXIgdG8gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uXHJcbiAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIF90aHJvd1R5cGVFcnJvcihtZXNzYWdlKSB7XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRHluYW1pY1Byb3RvOiBcIiArIG1lc3NhZ2UpO1xyXG59XHJcbi8qKlxyXG4gKiBSZXR1cm5zIGEgY29sbGVjdGlvbiBvZiB0aGUgaW5zdGFuY2UgZnVuY3Rpb25zIHRoYXQgYXJlIGRlZmluZWQgZGlyZWN0bHkgb24gdGhlIHRoaXNUYXJnZXQgb2JqZWN0LCBpdCBkb2VzXHJcbiAqIG5vdCByZXR1cm4gYW55IGluaGVyaXRlZCBmdW5jdGlvbnNcclxuICogQHBhcmFtIHRoaXNUYXJnZXQgVGhlIG9iamVjdCB0byBnZXQgdGhlIGluc3RhbmNlIGZ1bmN0aW9ucyBmcm9tXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIF9nZXRJbnN0YW5jZUZ1bmNzKHRoaXNUYXJnZXQpIHtcclxuICAgIC8vIEdldCB0aGUgYmFzZSBwcm90b1xyXG4gICAgdmFyIGluc3RGdW5jcyA9IHt9O1xyXG4gICAgLy8gU2F2ZSBhbnkgZXhpc3RpbmcgaW5zdGFuY2UgZnVuY3Rpb25zXHJcbiAgICBfZm9yRWFjaFByb3AodGhpc1RhcmdldCwgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAvLyBEb24ndCBpbmNsdWRlIGFueSBkeW5hbWljIHByb3RvdHlwZSBpbnN0YW5jZXMgLSBhcyB3ZSBvbmx5IHdhbnQgdGhlIHJlYWwgZnVuY3Rpb25zXHJcbiAgICAgICAgaWYgKCFpbnN0RnVuY3NbbmFtZV0gJiYgX2lzRHluYW1pY0NhbmRpZGF0ZSh0aGlzVGFyZ2V0LCBuYW1lLCBmYWxzZSkpIHtcclxuICAgICAgICAgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIGNhbGxiYWNrIGZvciBwYXNzaW5nIHRoZSBiYXNlIGZ1bmN0aW9uIHRvIHRoZSBjYWxsZXJcclxuICAgICAgICAgICAgaW5zdEZ1bmNzW25hbWVdID0gdGhpc1RhcmdldFtuYW1lXTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpbnN0RnVuY3M7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUgaXMgaW5jbHVkZWQgaW4gdGhlIGFycmF5XHJcbiAqIEBwYXJhbSB2YWx1ZXMgVGhlIGFycmF5IG9mIHZhbHVlc1xyXG4gKiBAcGFyYW0gdmFsdWUgIFRoZSB2YWx1ZVxyXG4gKi9cclxuZnVuY3Rpb24gX2hhc1Zpc2l0ZWQodmFsdWVzLCB2YWx1ZSkge1xyXG4gICAgZm9yICh2YXIgbHAgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgbHAgPj0gMDsgbHAtLSkge1xyXG4gICAgICAgIGlmICh2YWx1ZXNbbHBdID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgY2FsbGJhY2sgZnVuY3Rpb25zIGZvciBhbGwgXCJiYXNlL3N1cGVyXCIgZnVuY3Rpb25zLCB0aGlzIGlzIHVzZWQgdG8gXCJzYXZlXCJcclxuICogZW5hYmxpbmcgY2FsbGluZyBzdXBlci54eHgoKSBmdW5jdGlvbnMgd2l0aG91dCByZXF1aXJpbmcgdGhhdCB0aGUgYmFzZSBcImNsYXNzXCIgaGFzIGRlZmluZWQgYSBwcm90b3R5cGUgcmVmZXJlbmNlc1xyXG4gKiBAcGFyYW0gdGFyZ2V0IFRoZSBjdXJyZW50IGluc3RhbmNlXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIF9nZXRCYXNlRnVuY3MoY2xhc3NQcm90bywgdGhpc1RhcmdldCwgaW5zdEZ1bmNzLCB1c2VCYXNlSW5zdCkge1xyXG4gICAgZnVuY3Rpb24gX2luc3RGdW5jUHJveHkodGFyZ2V0LCBmdW5jSG9zdCwgZnVuY05hbWUpIHtcclxuICAgICAgICB2YXIgdGhlRnVuYyA9IGZ1bmNIb3N0W2Z1bmNOYW1lXTtcclxuICAgICAgICBpZiAodGhlRnVuY1tEeW5Qcm94eVRhZ10gJiYgdXNlQmFzZUluc3QpIHtcclxuICAgICAgICAgICAgLy8gZ3JhYiBhbmQgcmV1c2UgdGhlIGhvc3RlZCBsb29raW5nIGZ1bmN0aW9uIChpZiBhdmFpbGFibGUpIG90aGVyd2lzZSB0aGUgb3JpZ2luYWwgcGFzc2VkIGZ1bmN0aW9uXHJcbiAgICAgICAgICAgIHZhciBpbnN0RnVuY1RhYmxlID0gdGFyZ2V0W0R5bkluc3RGdW5jVGFibGVdIHx8IHt9O1xyXG4gICAgICAgICAgICBpZiAoaW5zdEZ1bmNUYWJsZVtEeW5BbGxvd0luc3RDaGtUYWddICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgdGhlRnVuYyA9IChpbnN0RnVuY1RhYmxlW2Z1bmNIb3N0W0R5bkNsYXNzTmFtZV1dIHx8IHt9KVtmdW5jTmFtZV0gfHwgdGhlRnVuYztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXHJcbiAgICAgICAgICAgIHJldHVybiB0aGVGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy8gU3RhcnQgY3JlYXRpbmcgYSBuZXcgYmFzZUZ1bmNzIGJ5IGNyZWF0aW5nIHByb3hpZXMgZm9yIHRoZSBpbnN0YW5jZSBmdW5jdGlvbnMgKGFzIHRoZXkgbWF5IGdldCByZXBsYWNlZClcclxuICAgIHZhciBiYXNlRnVuY3MgPSB7fTtcclxuICAgIF9mb3JFYWNoUHJvcChpbnN0RnVuY3MsIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIGNhbGxiYWNrIGZvciBwYXNzaW5nIHRoZSBiYXNlIGZ1bmN0aW9uIHRvIHRoZSBjYWxsZXJcclxuICAgICAgICBiYXNlRnVuY3NbbmFtZV0gPSBfaW5zdEZ1bmNQcm94eSh0aGlzVGFyZ2V0LCBpbnN0RnVuY3MsIG5hbWUpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBHZXQgdGhlIGJhc2UgcHJvdG90eXBlIGZ1bmN0aW9uc1xyXG4gICAgdmFyIGJhc2VQcm90byA9IF9nZXRPYmpQcm90byhjbGFzc1Byb3RvKTtcclxuICAgIHZhciB2aXNpdGVkID0gW107XHJcbiAgICAvLyBEb24ndCBpbmNsdWRlIGJhc2Ugb2JqZWN0IGZ1bmN0aW9ucyBmb3IgT2JqZWN0LCBBcnJheSBvciBGdW5jdGlvblxyXG4gICAgd2hpbGUgKGJhc2VQcm90byAmJiAhX2lzT2JqZWN0QXJyYXlPckZ1bmN0aW9uUHJvdG90eXBlKGJhc2VQcm90bykgJiYgIV9oYXNWaXNpdGVkKHZpc2l0ZWQsIGJhc2VQcm90bykpIHtcclxuICAgICAgICAvLyBsb29rIGZvciBwcm90b3R5cGUgZnVuY3Rpb25zXHJcbiAgICAgICAgX2ZvckVhY2hQcm9wKGJhc2VQcm90bywgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgLy8gRG9uJ3QgaW5jbHVkZSBhbnkgZHluYW1pYyBwcm90b3R5cGUgaW5zdGFuY2VzIC0gYXMgd2Ugb25seSB3YW50IHRoZSByZWFsIGZ1bmN0aW9uc1xyXG4gICAgICAgICAgICAvLyBGb3IgSUUgNy84IHRoZSBwcm90b3R5cGUgbG9va3VwIGRvZXNuJ3QgcHJvdmlkZSB0aGUgZnVsbCBjaGFpbiBzbyB3ZSBuZWVkIHRvIGJ5cGFzcyB0aGUgXHJcbiAgICAgICAgICAgIC8vIGhhc093blByb3BlcnR5IGNoZWNrIHdlIGdldCBhbGwgb2YgdGhlIG1ldGhvZHMsIG1haW4gZGlmZmVyZW5jZSBpcyB0aGF0IElFNy84IGRvZXNuJ3QgcmV0dXJuXHJcbiAgICAgICAgICAgIC8vIHRoZSBPYmplY3QgcHJvdG90eXBlIG1ldGhvZHMgd2hpbGUgYnlwYXNzaW5nIHRoZSBjaGVja1xyXG4gICAgICAgICAgICBpZiAoIWJhc2VGdW5jc1tuYW1lXSAmJiBfaXNEeW5hbWljQ2FuZGlkYXRlKGJhc2VQcm90bywgbmFtZSwgIV9vYmpHZXRQcm90b3R5cGVPZikpIHtcclxuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBpbnN0YW5jZSBjYWxsYmFjayBmb3IgcGFzc2luZyB0aGUgYmFzZSBmdW5jdGlvbiB0byB0aGUgY2FsbGVyXHJcbiAgICAgICAgICAgICAgICBiYXNlRnVuY3NbbmFtZV0gPSBfaW5zdEZ1bmNQcm94eSh0aGlzVGFyZ2V0LCBiYXNlUHJvdG8sIG5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gV2UgbmVlZCB0byBmaW5kIGFsbCBwb3NzaWJsZSBmdW5jdGlvbnMgdGhhdCBtaWdodCBiZSBvdmVybG9hZGVkIGJ5IHdhbGtpbmcgdGhlIGVudGlyZSBwcm90b3R5cGUgY2hhaW5cclxuICAgICAgICAvLyBUaGlzIGF2b2lkcyB0aGUgY2FsbGVyIGZyb20gbmVlZGluZyB0byBjaGVjayB3aGV0aGVyIGl0J3MgZGlyZWN0IGJhc2UgY2xhc3MgaW1wbGVtZW50cyB0aGUgZnVuY3Rpb24gb3Igbm90XHJcbiAgICAgICAgLy8gYnkgd2Fsa2luZyB0aGUgZW50aXJlIGNoYWluIGl0IHNpbXBsaWZpZXMgdGhlIHVzYWdlIGFuZCBpc3N1ZXMgZnJvbSB1cGdyYWRpbmcgYW55IG9mIHRoZSBiYXNlIGNsYXNzZXMuXHJcbiAgICAgICAgdmlzaXRlZC5wdXNoKGJhc2VQcm90byk7XHJcbiAgICAgICAgYmFzZVByb3RvID0gX2dldE9ialByb3RvKGJhc2VQcm90byk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYmFzZUZ1bmNzO1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRJbnN0RnVuYyh0YXJnZXQsIGZ1bmNOYW1lLCBwcm90bywgY3VycmVudER5blByb3RvUHJveHkpIHtcclxuICAgIHZhciBpbnN0RnVuYyA9IG51bGw7XHJcbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGNsYXNzIG5hbWUgaXMgZGVmaW5lZCBkaXJlY3RseSBvbiB0aGlzIHByb3RvdHlwZSBvdGhlcndpc2VcclxuICAgIC8vIGl0IHdpbGwgd2FsayB0aGUgcHJvdG8gY2hhaW4gYW5kIHJldHVybiBhbnkgcGFyZW50IHByb3RvIGNsYXNzbmFtZS5cclxuICAgIGlmICh0YXJnZXQgJiYgX2hhc093blByb3BlcnR5KHByb3RvLCBEeW5DbGFzc05hbWUpKSB7XHJcbiAgICAgICAgdmFyIGluc3RGdW5jVGFibGUgPSB0YXJnZXRbRHluSW5zdEZ1bmNUYWJsZV0gfHwge307XHJcbiAgICAgICAgaW5zdEZ1bmMgPSAoaW5zdEZ1bmNUYWJsZVtwcm90b1tEeW5DbGFzc05hbWVdXSB8fCB7fSlbZnVuY05hbWVdO1xyXG4gICAgICAgIGlmICghaW5zdEZ1bmMpIHtcclxuICAgICAgICAgICAgLy8gQXZvaWQgc3RhY2sgb3ZlcmZsb3cgZnJvbSByZWN1cnNpdmUgY2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvblxyXG4gICAgICAgICAgICBfdGhyb3dUeXBlRXJyb3IoXCJNaXNzaW5nIFtcIiArIGZ1bmNOYW1lICsgXCJdIFwiICsgc3RyRnVuY3Rpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBXZSBoYXZlIHRoZSBpbnN0YW5jZSBmdW5jdGlvbiwgbGV0cyBjaGVjayBpdCB3ZSBjYW4gc3BlZWQgdXAgZnVydGhlciBjYWxsc1xyXG4gICAgICAgIC8vIGJ5IGFkZGluZyB0aGUgaW5zdGFuY2UgZnVuY3Rpb24gYmFjayBkaXJlY3RseSBvbiB0aGUgaW5zdGFuY2UgKGF2b2lkaW5nIHRoZSBkeW5hbWljIGZ1bmMgbG9va3VwKVxyXG4gICAgICAgIGlmICghaW5zdEZ1bmNbRHluSW5zdENoa1RhZ10gJiYgaW5zdEZ1bmNUYWJsZVtEeW5BbGxvd0luc3RDaGtUYWddICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgaW5zdGFuY2UgYWxyZWFkeSBoYXMgYW4gaW5zdGFuY2UgZnVuY3Rpb24gd2UgY2FuJ3QgcmVwbGFjZSBpdFxyXG4gICAgICAgICAgICB2YXIgY2FuQWRkSW5zdCA9ICFfaGFzT3duUHJvcGVydHkodGFyZ2V0LCBmdW5jTmFtZSk7XHJcbiAgICAgICAgICAgIC8vIEdldCBjdXJyZW50IHByb3RvdHlwZVxyXG4gICAgICAgICAgICB2YXIgb2JqUHJvdG8gPSBfZ2V0T2JqUHJvdG8odGFyZ2V0KTtcclxuICAgICAgICAgICAgdmFyIHZpc2l0ZWQgPSBbXTtcclxuICAgICAgICAgICAgLy8gTG9va3VwIHRoZSBmdW5jdGlvbiBzdGFydGluZyBhdCB0aGUgdG9wIChpbnN0YW5jZSBsZXZlbCBwcm90b3R5cGUpIGFuZCB0cmF2ZXJzZSBkb3duLCBpZiB0aGUgZmlyc3QgbWF0Y2hpbmcgZnVuY3Rpb25cclxuICAgICAgICAgICAgLy8gaWYgbm90aGluZyBpcyBmb3VuZCBvciBpZiB0aGUgZmlyc3QgaGl0IGlzIGEgZHluYW1pYyBwcm90byBpbnN0YW5jZSB0aGVuIHdlIGNhbiBzYWZlbHkgYWRkIGFuIGluc3RhbmNlIHNob3J0Y3V0XHJcbiAgICAgICAgICAgIHdoaWxlIChjYW5BZGRJbnN0ICYmIG9ialByb3RvICYmICFfaXNPYmplY3RBcnJheU9yRnVuY3Rpb25Qcm90b3R5cGUob2JqUHJvdG8pICYmICFfaGFzVmlzaXRlZCh2aXNpdGVkLCBvYmpQcm90bykpIHtcclxuICAgICAgICAgICAgICAgIHZhciBwcm90b0Z1bmMgPSBvYmpQcm90b1tmdW5jTmFtZV07XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvdG9GdW5jKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FuQWRkSW5zdCA9IChwcm90b0Z1bmMgPT09IGN1cnJlbnREeW5Qcm90b1Byb3h5KTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZmluZCBhbGwgcG9zc2libGUgaW5pdGlhbCBmdW5jdGlvbnMgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgYnlwYXNzIGEgdmFsaWQgb3ZlcnJpZGUgZnVuY3Rpb25cclxuICAgICAgICAgICAgICAgIHZpc2l0ZWQucHVzaChvYmpQcm90byk7XHJcbiAgICAgICAgICAgICAgICBvYmpQcm90byA9IF9nZXRPYmpQcm90byhvYmpQcm90byk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGlmIChjYW5BZGRJbnN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpbnN0YW5jZSBkb2Vzbid0IGhhdmUgYW4gaW5zdGFuY2UgZnVuYyBhbmQgdGhlIGNsYXNzIGhpZXJhcmNoeSBkb2VzIGhhdmUgYSBoaWdoZXIgbGV2ZWwgcHJvdG90eXBlIHZlcnNpb25cclxuICAgICAgICAgICAgICAgICAgICAvLyBzbyBpdCdzIHNhZmUgdG8gZGlyZWN0bHkgYXNzaWduIGZvciBhbnkgc3Vic2VxdWVudCBjYWxscyAoZm9yIGJldHRlciBwZXJmb3JtYW5jZSlcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRbZnVuY05hbWVdID0gaW5zdEZ1bmM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBCbG9jayBmdXJ0aGVyIGF0dGVtcHRzIHRvIHNldCB0aGUgaW5zdGFuY2UgZnVuY3Rpb24gZm9yIGFueVxyXG4gICAgICAgICAgICAgICAgaW5zdEZ1bmNbRHluSW5zdENoa1RhZ10gPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBjcmFzaCBpZiB0aGUgb2JqZWN0IGlzIHJlYWRvbmx5IG9yIHRoZSBydW50aW1lIGRvZXNuJ3QgYWxsb3cgY2hhbmdpbmcgdGhpc1xyXG4gICAgICAgICAgICAgICAgLy8gQW5kIHNldCBhIGZsYWcgc28gd2UgZG9uJ3QgdHJ5IGFnYWluIGZvciBhbnkgZnVuY3Rpb25cclxuICAgICAgICAgICAgICAgIGluc3RGdW5jVGFibGVbRHluQWxsb3dJbnN0Q2hrVGFnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluc3RGdW5jO1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRQcm90b0Z1bmMoZnVuY05hbWUsIHByb3RvLCBjdXJyZW50RHluUHJvdG9Qcm94eSkge1xyXG4gICAgdmFyIHByb3RvRnVuYyA9IHByb3RvW2Z1bmNOYW1lXTtcclxuICAgIC8vIENoZWNrIHRoYXQgdGhlIHByb3RvdHlwZSBmdW5jdGlvbiBpcyBub3QgYSBzZWxmIHJlZmVyZW5jZSAtLSB0cnkgdG8gYXZvaWQgc3RhY2sgb3ZlcmZsb3chXHJcbiAgICBpZiAocHJvdG9GdW5jID09PSBjdXJyZW50RHluUHJvdG9Qcm94eSkge1xyXG4gICAgICAgIC8vIEl0IGlzIHNvIGxvb2t1cCB0aGUgYmFzZSBwcm90b3R5cGVcclxuICAgICAgICBwcm90b0Z1bmMgPSBfZ2V0T2JqUHJvdG8ocHJvdG8pW2Z1bmNOYW1lXTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgcHJvdG9GdW5jICE9PSBzdHJGdW5jdGlvbikge1xyXG4gICAgICAgIF90aHJvd1R5cGVFcnJvcihcIltcIiArIGZ1bmNOYW1lICsgXCJdIGlzIG5vdCBhIFwiICsgc3RyRnVuY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByb3RvRnVuYztcclxufVxyXG4vKipcclxuICogQWRkIHRoZSByZXF1aXJlZCBkeW5hbWljIHByb3RvdHlwZSBtZXRob2RzIHRvIHRoZSB0aGUgY2xhc3MgcHJvdG90eXBlXHJcbiAqIEBwYXJhbSBwcm90byAtIFRoZSBjbGFzcyBwcm90b3R5cGVcclxuICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBpbnN0YW5jZSBjbGFzc25hbWVcclxuICogQHBhcmFtIHRhcmdldCAtIFRoZSB0YXJnZXQgaW5zdGFuY2VcclxuICogQHBhcmFtIGJhc2VJbnN0RnVuY3MgLSBUaGUgYmFzZSBpbnN0YW5jZSBmdW5jdGlvbnNcclxuICogQHBhcmFtIHNldEluc3RhbmNlRnVuYyAtIEZsYWcgdG8gYWxsb3cgcHJvdG90eXBlIGZ1bmN0aW9uIHRvIHJlc2V0IHRoZSBpbnN0YW5jZSBmdW5jdGlvbiBpZiBvbmUgZG9lcyBub3QgZXhpc3RcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZnVuY3Rpb24gX3BvcHVsYXRlUHJvdG90eXBlKHByb3RvLCBjbGFzc05hbWUsIHRhcmdldCwgYmFzZUluc3RGdW5jcywgc2V0SW5zdGFuY2VGdW5jKSB7XHJcbiAgICBmdW5jdGlvbiBfY3JlYXRlRHluYW1pY1Byb3RvdHlwZShwcm90bywgZnVuY05hbWUpIHtcclxuICAgICAgICB2YXIgZHluUHJvdG9Qcm94eSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgLy8gVXNlIHRoZSBpbnN0YW5jZSBvciBwcm90b3R5cGUgZnVuY3Rpb25cclxuICAgICAgICAgICAgdmFyIGluc3RGdW5jID0gX2dldEluc3RGdW5jKHRoaXMsIGZ1bmNOYW1lLCBwcm90bywgZHluUHJvdG9Qcm94eSkgfHwgX2dldFByb3RvRnVuYyhmdW5jTmFtZSwgcHJvdG8sIGR5blByb3RvUHJveHkpO1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXHJcbiAgICAgICAgICAgIHJldHVybiBpbnN0RnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gVGFnIHRoaXMgZnVuY3Rpb24gYXMgYSBwcm94eSB0byBzdXBwb3J0IHJlcGxhY2luZyBkeW5hbWljIHByb3h5IGVsZW1lbnRzIChwcmltYXJ5IHVzZSBjYXNlIGlzIGZvciB1bml0IHRlc3RpbmdcclxuICAgICAgICAvLyB2aWEgd2hpY2ggY2FuIGR5bmFtaWNhbGx5IHJlcGxhY2UgdGhlIHByb3RvdHlwZSBmdW5jdGlvbiByZWZlcmVuY2UpXHJcbiAgICAgICAgZHluUHJvdG9Qcm94eVtEeW5Qcm94eVRhZ10gPSAxO1xyXG4gICAgICAgIHJldHVybiBkeW5Qcm90b1Byb3h5O1xyXG4gICAgfVxyXG4gICAgaWYgKCFfaXNPYmplY3RPckFycmF5UHJvdG90eXBlKHByb3RvKSkge1xyXG4gICAgICAgIHZhciBpbnN0RnVuY1RhYmxlID0gdGFyZ2V0W0R5bkluc3RGdW5jVGFibGVdID0gdGFyZ2V0W0R5bkluc3RGdW5jVGFibGVdIHx8IHt9O1xyXG4gICAgICAgIHZhciBpbnN0RnVuY3NfMSA9IGluc3RGdW5jVGFibGVbY2xhc3NOYW1lXSA9IChpbnN0RnVuY1RhYmxlW2NsYXNzTmFtZV0gfHwge30pOyAvLyBmZXRjaCBhbmQgYXNzaWduIGlmIGFzIGl0IG1heSBub3QgZXhpc3QgeWV0XHJcbiAgICAgICAgLy8gU2V0IHdoZXRoZXIgd2UgYXJlIGFsbG93IHRvIGxvb2t1cCBpbnN0YW5jZXMsIGlmIHNvbWVvbmUgaGFzIHNldCB0byBmYWxzZSB0aGVuIGRvIG5vdCByZS1lbmFibGVcclxuICAgICAgICBpZiAoaW5zdEZ1bmNUYWJsZVtEeW5BbGxvd0luc3RDaGtUYWddICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBpbnN0RnVuY1RhYmxlW0R5bkFsbG93SW5zdENoa1RhZ10gPSAhIXNldEluc3RhbmNlRnVuYztcclxuICAgICAgICB9XHJcbiAgICAgICAgX2ZvckVhY2hQcm9wKHRhcmdldCwgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgLy8gT25seSBhZGQgb3ZlcnJpZGRlbiBmdW5jdGlvbnNcclxuICAgICAgICAgICAgaWYgKF9pc0R5bmFtaWNDYW5kaWRhdGUodGFyZ2V0LCBuYW1lLCBmYWxzZSkgJiYgdGFyZ2V0W25hbWVdICE9PSBiYXNlSW5zdEZ1bmNzW25hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTYXZlIHRoZSBpbnN0YW5jZSBGdW5jdGlvbiB0byB0aGUgbG9va3VwIHRhYmxlIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgaW5zdGFuY2UgYXMgaXQncyBub3QgYSBkeW5hbWljIHByb3RvIGZ1bmN0aW9uXHJcbiAgICAgICAgICAgICAgICBpbnN0RnVuY3NfMVtuYW1lXSA9IHRhcmdldFtuYW1lXTtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXRbbmFtZV07XHJcbiAgICAgICAgICAgICAgICAvLyBBZGQgYSBkeW5hbWljIHByb3RvIGlmIG9uZSBkb2Vzbid0IGV4aXN0IG9yIGlmIGEgcHJvdG90eXBlIGZ1bmN0aW9uIGV4aXN0cyBhbmQgaXQncyBub3QgYSBkeW5hbWljIG9uZVxyXG4gICAgICAgICAgICAgICAgaWYgKCFfaGFzT3duUHJvcGVydHkocHJvdG8sIG5hbWUpIHx8IChwcm90b1tuYW1lXSAmJiAhcHJvdG9bbmFtZV1bRHluUHJveHlUYWddKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3RvW25hbWVdID0gX2NyZWF0ZUR5bmFtaWNQcm90b3R5cGUocHJvdG8sIG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwYXNzZWQgcHJvdG90eXBlIG9iamVjdCBhcHBlYXJzIHRvIGJlIGNvcnJlY3QgYnkgd2Fsa2luZyB0aGUgcHJvdG90eXBlIGhpZXJhcmNoeSBvZiB0aGUgaW5zdGFuY2VcclxuICogQHBhcmFtIGNsYXNzUHJvdG8gVGhlIGNsYXNzIHByb3RvdHlwZSBpbnN0YW5jZVxyXG4gKiBAcGFyYW0gdGhpc1RhcmdldCBUaGUgY3VycmVudCBpbnN0YW5jZSB0aGF0IHdpbGwgYmUgY2hlY2tlZCB3aGV0aGVyIHRoZSBwYXNzZWQgcHJvdG90eXBlIGluc3RhbmNlIGlzIGluIHRoZSBoaWVyYXJjaHlcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZnVuY3Rpb24gX2NoZWNrUHJvdG90eXBlKGNsYXNzUHJvdG8sIHRoaXNUYXJnZXQpIHtcclxuICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZXhpc3RpbmcgaW4gb2xkZXIgYnJvd3NlcnMgKGUuZy4gSUU4KVxyXG4gICAgaWYgKF9vYmpHZXRQcm90b3R5cGVPZikge1xyXG4gICAgICAgIC8vIEFzIHRoaXMgaXMgcHJpbWFyaWx5IGEgY29kaW5nIHRpbWUgY2hlY2ssIGRvbid0IGJvdGhlciBjaGVja2luZyBpZiBydW5uaW5nIGluIElFOCBvciBsb3dlclxyXG4gICAgICAgIHZhciB2aXNpdGVkID0gW107XHJcbiAgICAgICAgdmFyIHRoaXNQcm90byA9IF9nZXRPYmpQcm90byh0aGlzVGFyZ2V0KTtcclxuICAgICAgICB3aGlsZSAodGhpc1Byb3RvICYmICFfaXNPYmplY3RBcnJheU9yRnVuY3Rpb25Qcm90b3R5cGUodGhpc1Byb3RvKSAmJiAhX2hhc1Zpc2l0ZWQodmlzaXRlZCwgdGhpc1Byb3RvKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpc1Byb3RvID09PSBjbGFzc1Byb3RvKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBUaGlzIGF2b2lkcyB0aGUgY2FsbGVyIGZyb20gbmVlZGluZyB0byBjaGVjayB3aGV0aGVyIGl0J3MgZGlyZWN0IGJhc2UgY2xhc3MgaW1wbGVtZW50cyB0aGUgZnVuY3Rpb24gb3Igbm90XHJcbiAgICAgICAgICAgIC8vIGJ5IHdhbGtpbmcgdGhlIGVudGlyZSBjaGFpbiBpdCBzaW1wbGlmaWVzIHRoZSB1c2FnZSBhbmQgaXNzdWVzIGZyb20gdXBncmFkaW5nIGFueSBvZiB0aGUgYmFzZSBjbGFzc2VzLlxyXG4gICAgICAgICAgICB2aXNpdGVkLnB1c2godGhpc1Byb3RvKTtcclxuICAgICAgICAgICAgdGhpc1Byb3RvID0gX2dldE9ialByb3RvKHRoaXNQcm90byk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIElmIG9iakdldFByb3RvdHlwZU9mIGRvZXNuJ3QgZXhpc3QgdGhlbiBqdXN0IGFzc3VtZSBldmVyeXRoaW5nIGlzIG9rLlxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuLyoqXHJcbiAqIEdldHMgdGhlIGN1cnJlbnQgcHJvdG90eXBlIG5hbWUgdXNpbmcgdGhlIEVTNiBuYW1lIGlmIGF2YWlsYWJsZSBvdGhlcndpc2UgZmFsbGluZyBiYWNrIHRvIGEgdXNlIHVua25vd24gYXMgdGhlIG5hbWUuXHJcbiAqIEl0J3Mgbm90IGNyaXRpY2FsIGZvciB0aGlzIHRvIHJldHVybiBhIG5hbWUsIGl0J3MgdXNlZCB0byBkZWNvcmF0ZSB0aGUgZ2VuZXJhdGVkIHVuaXF1ZSBuYW1lIGZvciBlYXNpZXIgZGVidWdnaW5nIG9ubHkuXHJcbiAqIEBwYXJhbSB0YXJnZXRcclxuICogQHBhcmFtIHVua25vd25WYWx1ZVxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5mdW5jdGlvbiBfZ2V0T2JqTmFtZSh0YXJnZXQsIHVua25vd25WYWx1ZSkge1xyXG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSh0YXJnZXQsIFByb3RvdHlwZSkpIHtcclxuICAgICAgICAvLyBMb29rIGxpa2UgYSBwcm90b3R5cGVcclxuICAgICAgICByZXR1cm4gdGFyZ2V0Lm5hbWUgfHwgdW5rbm93blZhbHVlIHx8IFVua25vd25WYWx1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiAoKCh0YXJnZXQgfHwge30pW0NvbnN0cnVjdG9yXSkgfHwge30pLm5hbWUgfHwgdW5rbm93blZhbHVlIHx8IFVua25vd25WYWx1ZTtcclxufVxyXG4vKipcclxuICogSGVscGVyIGZ1bmN0aW9uIHdoZW4gY3JlYXRpbmcgZHluYW1pYyAoaW5saW5lKSBmdW5jdGlvbnMgZm9yIGNsYXNzZXMsIHRoaXMgaGVscGVyIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgdGFza3MgOi1cclxuICogLSBTYXZlcyByZWZlcmVuY2VzIHRvIGFsbCBkZWZpbmVkIGJhc2UgY2xhc3MgZnVuY3Rpb25zXHJcbiAqIC0gQ2FsbHMgdGhlIGRlbGVnYXRlRnVuYyB3aXRoIHRoZSBjdXJyZW50IHRhcmdldCAodGhpcykgYW5kIGEgYmFzZSBvYmplY3QgcmVmZXJlbmNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2FsbCBhbGwgXCJzdXBlclwiIGZ1bmN0aW9ucy5cclxuICogLSBXaWxsIHBvcHVsYXRlIHRoZSBjbGFzcyBwcm90b3R5cGUgZm9yIGFsbCBvdmVycmlkZGVuIGZ1bmN0aW9ucyB0byBzdXBwb3J0IGNsYXNzIGV4dGVuc2lvbiB0aGF0IGNhbGwgdGhlIHByb3RvdHlwZSBpbnN0YW5jZS5cclxuICogQ2FsbGVycyBzaG91bGQgdXNlIHRoaXMgaGVscGVyIHdoZW4gZGVjbGFyaW5nIGFsbCBmdW5jdGlvbiB3aXRoaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGEgY2xhc3MsIGFzIG1lbnRpb25lZCBhYm92ZSB0aGUgZGVsZWdhdGVGdW5jIGlzXHJcbiAqIHBhc3NlZCBib3RoIHRoZSB0YXJnZXQgXCJ0aGlzXCIgYW5kIGFuIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgYW55IGJhc2UgKHN1cGVyKSBmdW5jdGlvbnMsIHVzaW5nIHRoaXMgYmFzZWQgb2JqZWN0IGluIHBsYWNlIG9mXHJcbiAqIHN1cGVyLlhYWCgpICh3aGljaCBnZXRzIGV4cGFuZGVkIHRvIF9zdXBlci5wcm90b3R5cGUuWFhYKCkpIHByb3ZpZGVzIGEgYmV0dGVyIG1pbmlmaWNhdGlvbiBvdXRjb21lIGFuZCBhbHNvIGVuc3VyZXMgdGhlIGNvcnJlY3QgXCJ0aGlzXCJcclxuICogY29udGV4dCBpcyBtYWludGFpbmVkIGFzIFR5cGVTY3JpcHQgY3JlYXRlcyBpbmNvcnJlY3QgcmVmZXJlbmNlcyB1c2luZyBzdXBlci5YWFhYKCkgZm9yIGR5bmFtaWNhbGx5IGRlZmluZWQgZnVuY3Rpb25zIGkuZS4gRnVuY3Rpb25zXHJcbiAqIGRlZmluZWQgaW4gdGhlIGNvbnN0cnVjdG9yIG9yIHNvbWUgb3RoZXIgZnVuY3Rpb24gKHJhdGhlciB0aGFuIGRlY2xhcmVkIGFzIGNvbXBsZXRlIHR5cGVzY3JpcHQgZnVuY3Rpb25zKS5cclxuICogIyMjIFVzYWdlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuICogY2xhc3MgRXhhbXBsZUNsYXNzIGV4dGVuZHMgQmFzZUNsYXNzIHtcclxuICogICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gKiAgICAgICAgIGR5bmFtaWNQcm90byhFeGFtcGxlQ2xhc3MsIHRoaXMsIChfc2VsZiwgYmFzZSkgPT4ge1xyXG4gKiAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgZGVmaW5lIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIHByb3RvdHlwZSBmdW5jdGlvblxyXG4gKiAgICAgICAgICAgICBfc2VsZi5uZXdGdW5jID0gKCkgPT4ge1xyXG4gKiAgICAgICAgICAgICAgICAgLy8gQWNjZXNzIGFueSBcInRoaXNcIiBpbnN0YW5jZSBwcm9wZXJ0eVxyXG4gKiAgICAgICAgICAgICAgICAgaWYgKF9zZWxmLnNvbWVQcm9wZXJ0eSkge1xyXG4gKiAgICAgICAgICAgICAgICAgICAgIC4uLlxyXG4gKiAgICAgICAgICAgICAgICAgfVxyXG4gKiAgICAgICAgICAgICB9XHJcbiAqICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBkZWZpbmUgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcHJvdG90eXBlIGZ1bmN0aW9uXHJcbiAqICAgICAgICAgICAgIF9zZWxmLm15RnVuY3Rpb24gPSAoKSA9PiB7XHJcbiAqICAgICAgICAgICAgICAgICAvLyBBY2Nlc3MgYW55IFwidGhpc1wiIGluc3RhbmNlIHByb3BlcnR5XHJcbiAqICAgICAgICAgICAgICAgICBpZiAoX3NlbGYuc29tZVByb3BlcnR5KSB7XHJcbiAqICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgYmFzZSB2ZXJzaW9uIG9mIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGFyZSBvdmVycmlkaW5nXHJcbiAqICAgICAgICAgICAgICAgICAgICAgYmFzZS5teUZ1bmN0aW9uKCk7XHJcbiAqICAgICAgICAgICAgICAgICB9XHJcbiAqICAgICAgICAgICAgICAgICAuLi5cclxuICogICAgICAgICAgICAgfVxyXG4gKiAgICAgICAgICAgICBfc2VsZi5pbml0aWFsaXplID0gKCkgPT4ge1xyXG4gKiAgICAgICAgICAgICAgICAgLi4uXHJcbiAqICAgICAgICAgICAgIH1cclxuICogICAgICAgICAgICAgLy8gV2FybmluZ3M6IFdoaWxlIHRoZSBmb2xsb3dpbmcgd2lsbCB3b3JrIGFzIF9zZWxmIGlzIHNpbXBseSBhIHJlZmVyZW5jZSB0b1xyXG4gKiAgICAgICAgICAgICAvLyB0aGlzLCBpZiBhbnlvbmUgb3ZlcnJpZGVzIG15RnVuY3Rpb24oKSB0aGUgb3ZlcnJpZGRlbiB3aWxsIGJlIGNhbGxlZCBmaXJzdFxyXG4gKiAgICAgICAgICAgICAvLyBhcyB0aGUgbm9ybWFsIEphdmFTY3JpcHQgbWV0aG9kIHJlc29sdXRpb24gd2lsbCBvY2N1ciBhbmQgdGhlIGRlZmluZWRcclxuICogICAgICAgICAgICAgLy8gX3NlbGYuaW5pdGlhbGl6ZSgpIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGdldHMgcmVtb3ZlZCBmcm9tIHRoZSBpbnN0YW5jZSBhbmRcclxuICogICAgICAgICAgICAgLy8gYSBwcm94eSBwcm90b3R5cGUgdmVyc2lvbiBpcyBjcmVhdGVkIHRvIHJlZmVyZW5jZSB0aGUgY3JlYXRlZCBtZXRob2QuXHJcbiAqICAgICAgICAgICAgIF9zZWxmLmluaXRpYWxpemUoKTtcclxuICogICAgICAgICB9KTtcclxuICogICAgIH1cclxuICogfVxyXG4gKiBgYGBcclxuICogQHR5cGVwYXJhbSBEUFR5cGUgVGhpcyBpcyB0aGUgZ2VuZXJpYyB0eXBlIG9mIHRoZSBjbGFzcywgdXNlZCB0byBrZWVwIGludGVsbGlzZW5zZSB2YWxpZFxyXG4gKiBAdHlwZXBhcmFtIERQQ2xzIFRoZSB0eXBlIHRoYXQgY29udGFpbnMgdGhlIHByb3RvdHlwZSBvZiB0aGUgY3VycmVudCBjbGFzc1xyXG4gKiBAcGFyYW0gdGhlQ2xhc3MgLSBUaGlzIGlzIHRoZSBjdXJyZW50IGNsYXNzIGluc3RhbmNlIHdoaWNoIGNvbnRhaW5zIHRoZSBwcm90b3R5cGUgZm9yIHRoZSBjdXJyZW50IGNsYXNzXHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgY3VycmVudCBcInRoaXNcIiAodGFyZ2V0KSByZWZlcmVuY2UsIHdoZW4gdGhlIGNsYXNzIGhhcyBiZWVuIGV4dGVuZGVkIHRoaXMucHJvdG90eXBlIHdpbGwgbm90IGJlIHRoZSAndGhlQ2xhc3MnIHZhbHVlLlxyXG4gKiBAcGFyYW0gZGVsZWdhdGVGdW5jIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIChjbG9zdXJlKSB0aGF0IHdpbGwgY3JlYXRlIHRoZSBkeW5hbWljIGZ1bmN0aW9uXHJcbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGR5bmFtaWMgcHJvdG90eXBlIG9wZXJhdGVzXHJcbiAqL1xyXG5mdW5jdGlvbiBkeW5hbWljUHJvdG8odGhlQ2xhc3MsIHRhcmdldCwgZGVsZWdhdGVGdW5jLCBvcHRpb25zKSB7XHJcbiAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcGFzc2VkIHRoZUNsYXNzIGFyZ3VtZW50IGxvb2tzIGNvcnJlY3RcclxuICAgIGlmICghX2hhc093blByb3BlcnR5KHRoZUNsYXNzLCBQcm90b3R5cGUpKSB7XHJcbiAgICAgICAgX3Rocm93VHlwZUVycm9yKFwidGhlQ2xhc3MgaXMgYW4gaW52YWxpZCBjbGFzcyBkZWZpbml0aW9uLlwiKTtcclxuICAgIH1cclxuICAgIC8vIFF1aWNrIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYXNzZWQgdGhlQ2xhc3MgYXJndW1lbnQgbG9va3MgY29ycmVjdCAodGhpcyBpcyBhIGNvbW1vbiBjb3B5L3Bhc3RlIGVycm9yKVxyXG4gICAgdmFyIGNsYXNzUHJvdG8gPSB0aGVDbGFzc1tQcm90b3R5cGVdO1xyXG4gICAgaWYgKCFfY2hlY2tQcm90b3R5cGUoY2xhc3NQcm90bywgdGFyZ2V0KSkge1xyXG4gICAgICAgIF90aHJvd1R5cGVFcnJvcihcIltcIiArIF9nZXRPYmpOYW1lKHRoZUNsYXNzKSArIFwiXSBub3QgaW4gaGllcmFyY2h5IG9mIFtcIiArIF9nZXRPYmpOYW1lKHRhcmdldCkgKyBcIl1cIik7XHJcbiAgICB9XHJcbiAgICB2YXIgY2xhc3NOYW1lID0gbnVsbDtcclxuICAgIGlmIChfaGFzT3duUHJvcGVydHkoY2xhc3NQcm90bywgRHluQ2xhc3NOYW1lKSkge1xyXG4gICAgICAgIC8vIE9ubHkgZ3JhYiB0aGUgY2xhc3MgbmFtZSBpZiBpdCdzIGRlZmluZWQgb24gdGhpcyBwcm90b3R5cGUgKGkuZS4gZG9uJ3Qgd2FsayB0aGUgcHJvdG90eXBlIGNoYWluKVxyXG4gICAgICAgIGNsYXNzTmFtZSA9IGNsYXNzUHJvdG9bRHluQ2xhc3NOYW1lXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIEFzIG5vdCBhbGwgYnJvd3NlciBzdXBwb3J0IG5hbWUgb24gdGhlIHByb3RvdHlwZSBjcmVhdGluZyBhIHVuaXF1ZSBkeW5hbWljIG9uZSBpZiB3ZSBoYXZlIG5vdCBhbHJlYWR5XHJcbiAgICAgICAgLy8gYXNzaWduZWQgb25lLCBzbyB3ZSBjYW4gdXNlIGEgc2ltcGxlIHN0cmluZyBhcyB0aGUgbG9va3VwIHJhdGhlciB0aGFuIGFuIG9iamVjdCBmb3IgdGhlIGR5bmFtaWMgaW5zdGFuY2VcclxuICAgICAgICAvLyBmdW5jdGlvbiB0YWJsZSBsb29rdXAuXHJcbiAgICAgICAgY2xhc3NOYW1lID0gRHluQ2xhc3NOYW1lUHJlZml4ICsgX2dldE9iak5hbWUodGhlQ2xhc3MsIFwiX1wiKSArIFwiJFwiICsgX2dibEluc3QubjtcclxuICAgICAgICBfZ2JsSW5zdC5uKys7XHJcbiAgICAgICAgY2xhc3NQcm90b1tEeW5DbGFzc05hbWVdID0gY2xhc3NOYW1lO1xyXG4gICAgfVxyXG4gICAgdmFyIHBlcmZPcHRpb25zID0gZHluYW1pY1Byb3RvW0R5blByb3RvRGVmYXVsdE9wdGlvbnNdO1xyXG4gICAgdmFyIHVzZUJhc2VJbnN0ID0gISFwZXJmT3B0aW9uc1tzdHJVc2VCYXNlSW5zdF07XHJcbiAgICBpZiAodXNlQmFzZUluc3QgJiYgb3B0aW9ucyAmJiBvcHRpb25zW3N0clVzZUJhc2VJbnN0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdXNlQmFzZUluc3QgPSAhIW9wdGlvbnNbc3RyVXNlQmFzZUluc3RdO1xyXG4gICAgfVxyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGluc3RhbmNlIGZ1bmN0aW9uc1xyXG4gICAgdmFyIGluc3RGdW5jcyA9IF9nZXRJbnN0YW5jZUZ1bmNzKHRhcmdldCk7XHJcbiAgICAvLyBHZXQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgZm9yIGFueSBiYXNlIGluc3RhbmNlIChiZWZvcmUgdGhleSBhcmUgcG90ZW50aWFsbHkgb3ZlcnJpZGRlbilcclxuICAgIHZhciBiYXNlRnVuY3MgPSBfZ2V0QmFzZUZ1bmNzKGNsYXNzUHJvdG8sIHRhcmdldCwgaW5zdEZ1bmNzLCB1c2VCYXNlSW5zdCk7XHJcbiAgICAvLyBFeGVjdXRlIHRoZSBkZWxlZ2F0ZSBwYXNzaW5nIGluIGJvdGggdGhlIGN1cnJlbnQgdGFyZ2V0IFwidGhpc1wiIGFuZCBcImJhc2VcIiBmdW5jdGlvbiByZWZlcmVuY2VzXHJcbiAgICAvLyBOb3RlIGNhc3RpbmcgdGhlIHNhbWUgdHlwZSBhcyB3ZSBkb24ndCBhY3R1YWxseSBoYXZlIHRoZSBiYXNlIGNsYXNzIGhlcmUgYW5kIHRoaXMgd2lsbCBwcm92aWRlIHNvbWUgaW50ZWxsaXNlbnNlIHN1cHBvcnRcclxuICAgIGRlbGVnYXRlRnVuYyh0YXJnZXQsIGJhc2VGdW5jcyk7XHJcbiAgICAvLyBEb24ndCBhbGxvdyBzZXR0aW5nIGluc3RhbmNlIGZ1bmN0aW9ucyBmb3Igb2xkZXIgSUUgaW5zdGFuY2VzXHJcbiAgICB2YXIgc2V0SW5zdGFuY2VGdW5jID0gISFfb2JqR2V0UHJvdG90eXBlT2YgJiYgISFwZXJmT3B0aW9uc1tzdHJTZXRJbnN0RnVuY3NdO1xyXG4gICAgaWYgKHNldEluc3RhbmNlRnVuYyAmJiBvcHRpb25zKSB7XHJcbiAgICAgICAgc2V0SW5zdGFuY2VGdW5jID0gISFvcHRpb25zW3N0clNldEluc3RGdW5jc107XHJcbiAgICB9XHJcbiAgICAvLyBQb3B1bGF0ZSB0aGUgUHJvdG90eXBlIGZvciBhbnkgb3ZlcnJpZGRlbiBpbnN0YW5jZSBmdW5jdGlvbnNcclxuICAgIF9wb3B1bGF0ZVByb3RvdHlwZShjbGFzc1Byb3RvLCBjbGFzc05hbWUsIHRhcmdldCwgaW5zdEZ1bmNzLCBzZXRJbnN0YW5jZUZ1bmMgIT09IGZhbHNlKTtcclxufVxyXG4vKipcclxuICogRXhwb3NlcyB0aGUgZGVmYXVsdCBnbG9iYWwgb3B0aW9ucyB0byBhbGxvdyBnbG9iYWwgY29uZmlndXJhdGlvbiwgaWYgdGhlIGdsb2JhbCB2YWx1ZXMgYXJlIGRpc2FibGVkIHRoZXNlIHdpbGwgb3ZlcnJpZGVcclxuICogYW55IHBhc3NlZCB2YWx1ZXMuIFRoaXMgaXMgcHJpbWFyaWx5IGV4cG9zZWQgdG8gc3VwcG9ydCB1bml0LXRlc3Rpbmcgd2l0aG91dCB0aGUgbmVlZCBmb3IgaW5kaXZpZHVhbCBjbGFzc2VzIHRvIGV4cG9zZVxyXG4gKiB0aGVpciBpbnRlcm5hbCB1c2FnZSBvZiBkeW5hbWljIHByb3RvLlxyXG4gKi9cclxuZHluYW1pY1Byb3RvW0R5blByb3RvRGVmYXVsdE9wdGlvbnNdID0gX2dibEluc3QubztcblxuZXhwb3J0IHsgZHluYW1pY1Byb3RvIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWR5bmFtaWNwcm90by1qcy5qcy5tYXBcbiIsIi8vIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4vLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbmV4cG9ydCB2YXIgc3RyU2hpbUZ1bmN0aW9uID0gXCJmdW5jdGlvblwiO1xyXG5leHBvcnQgdmFyIHN0clNoaW1PYmplY3QgPSBcIm9iamVjdFwiO1xyXG5leHBvcnQgdmFyIHN0clNoaW1VbmRlZmluZWQgPSBcInVuZGVmaW5lZFwiO1xyXG5leHBvcnQgdmFyIHN0clNoaW1Qcm90b3R5cGUgPSBcInByb3RvdHlwZVwiO1xyXG5leHBvcnQgdmFyIHN0clNoaW1IYXNPd25Qcm9wZXJ0eSA9IFwiaGFzT3duUHJvcGVydHlcIjtcclxuZXhwb3J0IHZhciBzdHJEZWZhdWx0ID0gXCJkZWZhdWx0XCI7XHJcbmV4cG9ydCB2YXIgT2JqQ2xhc3MgPSBPYmplY3Q7XHJcbmV4cG9ydCB2YXIgT2JqUHJvdG8gPSBPYmpDbGFzc1tzdHJTaGltUHJvdG90eXBlXTtcclxuZXhwb3J0IHZhciBPYmpBc3NpZ24gPSBPYmpDbGFzc1tcImFzc2lnblwiXTtcclxuZXhwb3J0IHZhciBPYmpDcmVhdGUgPSBPYmpDbGFzc1tcImNyZWF0ZVwiXTtcclxuZXhwb3J0IHZhciBPYmpEZWZpbmVQcm9wZXJ0eSA9IE9iakNsYXNzW1wiZGVmaW5lUHJvcGVydHlcIl07XHJcbmV4cG9ydCB2YXIgT2JqSGFzT3duUHJvcGVydHkgPSBPYmpQcm90b1tzdHJTaGltSGFzT3duUHJvcGVydHldO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db25zdGFudHMuanMubWFwIiwiLy8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cclxuaW1wb3J0IHsgT2JqQ3JlYXRlLCBzdHJTaGltRnVuY3Rpb24sIHN0clNoaW1PYmplY3QsIHN0clNoaW1Qcm90b3R5cGUsIHN0clNoaW1VbmRlZmluZWQgfSBmcm9tIFwiLi9Db25zdGFudHNcIjtcclxudmFyIF9jYWNoZWRHbG9iYWwgPSBudWxsO1xyXG4vKipcclxuICogUmV0dXJucyB0aGUgY3VycmVudCBnbG9iYWwgc2NvcGUgb2JqZWN0LCBmb3IgYSBub3JtYWwgd2ViIHBhZ2UgdGhpcyB3aWxsIGJlIHRoZSBjdXJyZW50XHJcbiAqIHdpbmRvdywgZm9yIGEgV2ViIFdvcmtlciB0aGlzIHdpbGwgYmUgY3VycmVudCB3b3JrZXIgZ2xvYmFsIHNjb3BlIHZpYSBcInNlbGZcIi4gVGhlIGludGVybmFsXHJcbiAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGZpcnN0IGF2YWlsYWJsZSBpbnN0YW5jZSBvYmplY3QgaW4gdGhlIGZvbGxvd2luZyBvcmRlclxyXG4gKiAtIGdsb2JhbFRoaXMgKE5ldyBzdGFuZGFyZClcclxuICogLSBzZWxmIChXaWxsIHJldHVybiB0aGUgY3VycmVudCB3aW5kb3cgaW5zdGFuY2UgZm9yIHN1cHBvcnRlZCBicm93c2VycylcclxuICogLSB3aW5kb3cgKGZhbGxiYWNrIGZvciBvbGRlciBicm93c2VyIGltcGxlbWVudGF0aW9ucylcclxuICogLSBnbG9iYWwgKE5vZGVKUyBzdGFuZGFyZClcclxuICogLSA8bnVsbD4gKFdoZW4gYWxsIGVsc2UgZmFpbHMpXHJcbiAqIFdoaWxlIHRoZSByZXR1cm4gdHlwZSBpcyBhIFdpbmRvdyBmb3IgdGhlIG5vcm1hbCBjYXNlLCBub3QgYWxsIGVudmlyb25tZW50cyB3aWxsIHN1cHBvcnQgYWxsXHJcbiAqIG9mIHRoZSBwcm9wZXJ0aWVzIG9yIGZ1bmN0aW9ucy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWwodXNlQ2FjaGVkKSB7XHJcbiAgICBpZiAodXNlQ2FjaGVkID09PSB2b2lkIDApIHsgdXNlQ2FjaGVkID0gdHJ1ZTsgfVxyXG4gICAgdmFyIHJlc3VsdCA9IHVzZUNhY2hlZCA9PT0gZmFsc2UgPyBudWxsIDogX2NhY2hlZEdsb2JhbDtcclxuICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBzdHJTaGltVW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGdsb2JhbFRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghcmVzdWx0ICYmIHR5cGVvZiBzZWxmICE9PSBzdHJTaGltVW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHNlbGY7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghcmVzdWx0ICYmIHR5cGVvZiB3aW5kb3cgIT09IHN0clNoaW1VbmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gd2luZG93O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXJlc3VsdCAmJiB0eXBlb2YgZ2xvYmFsICE9PSBzdHJTaGltVW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGdsb2JhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgX2NhY2hlZEdsb2JhbCA9IHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93VHlwZUVycm9yKG1lc3NhZ2UpIHtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IobWVzc2FnZSk7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHRoYXQgaGFzIHRoZSBzcGVjaWZpZWQgcHJvdG90eXBlLCBhbmQgdGhhdCBvcHRpb25hbGx5IGNvbnRhaW5zIHNwZWNpZmllZCBwcm9wZXJ0aWVzLiBUaGlzIGhlbHBlciBleGlzdHMgdG8gYXZvaWQgYWRkaW5nIGEgcG9seWZpbFxyXG4gKiBmb3Igb2xkZXIgYnJvd3NlcnMgdGhhdCBkbyBub3QgZGVmaW5lIE9iamVjdC5jcmVhdGUgZWcuIEVTMyBvbmx5LCBJRTgganVzdCBpbiBjYXNlIGFueSBwYWdlIGNoZWNrcyBmb3IgcHJlc2VuY2UvYWJzZW5jZSBvZiB0aGUgcHJvdG90eXBlIGltcGxlbWVudGF0aW9uLlxyXG4gKiBOb3RlOiBGb3IgY29uc2lzdGVuY3kgdGhpcyB3aWxsIG5vdCB1c2UgdGhlIE9iamVjdC5jcmVhdGUgaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzIGFzIHRoaXMgd291bGQgY2F1c2UgYSB0ZXN0aW5nIHJlcXVpcmVtZW50IHRvIHRlc3Qgd2l0aCBhbmQgd2l0aG91dCB0aGUgaW1wbGVtZW50YXRpb25zXHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIHVzZSBhcyBhIHByb3RvdHlwZS4gTWF5IGJlIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvYmpDcmVhdGVGbihvYmopIHtcclxuICAgIHZhciBmdW5jID0gT2JqQ3JlYXRlO1xyXG4gICAgLy8gVXNlIGJ1aWxkIGluIE9iamVjdC5jcmVhdGVcclxuICAgIGlmIChmdW5jKSB7XHJcbiAgICAgICAgLy8gVXNlIE9iamVjdCBjcmVhdGUgbWV0aG9kIGlmIGl0IGV4aXN0c1xyXG4gICAgICAgIHJldHVybiBmdW5jKG9iaik7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqID09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvYmo7XHJcbiAgICBpZiAodHlwZSAhPT0gc3RyU2hpbU9iamVjdCAmJiB0eXBlICE9PSBzdHJTaGltRnVuY3Rpb24pIHtcclxuICAgICAgICB0aHJvd1R5cGVFcnJvcihcIk9iamVjdCBwcm90b3R5cGUgbWF5IG9ubHkgYmUgYW4gT2JqZWN0OlwiICsgb2JqKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHRtcEZ1bmMoKSB7IH1cclxuICAgIHRtcEZ1bmNbc3RyU2hpbVByb3RvdHlwZV0gPSBvYmo7XHJcbiAgICByZXR1cm4gbmV3IHRtcEZ1bmMoKTtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1IZWxwZXJzLmpzLm1hcCIsIi8vIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4vLyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXHJcbmltcG9ydCB7IE9iakFzc2lnbiwgT2JqQ2xhc3MsIE9iakNyZWF0ZSwgT2JqRGVmaW5lUHJvcGVydHksIE9iakhhc093blByb3BlcnR5LCBPYmpQcm90bywgc3RyRGVmYXVsdCwgc3RyU2hpbUZ1bmN0aW9uLCBzdHJTaGltSGFzT3duUHJvcGVydHksIHN0clNoaW1Qcm90b3R5cGUgfSBmcm9tIFwiLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2V0R2xvYmFsLCBvYmpDcmVhdGVGbiwgdGhyb3dUeXBlRXJyb3IgfSBmcm9tIFwiLi9IZWxwZXJzXCI7XHJcbi8vIE1vc3Qgb2YgdGhlc2UgZnVuY3Rpb25zIGhhdmUgYmVlbiBkaXJlY3RseSBzaGFtZWxlc3NseSBcImxpZnRlZFwiIGZyb20gdGhlIGh0dHBzOi8vZ2l0aHViLmNvbS9AbWljcm9zb2Z0L3RzbGliIGFuZFxyXG4vLyBtb2RpZmllZCB0byBiZSBFUzMgY29tcGF0aWJsZSBhbmQgYXBwbHlpbmcgc2V2ZXJhbCBtaW5pZmljYXRpb24gYW5kIHRyZWUtc2hha2luZyB0ZWNobmlxdWVzIHNvIHRoYXQgQXBwbGljYXRpb24gSW5zaWdodHNcclxuLy8gY2FuIHN1Y2Nlc3NmdWxseSB1c2UgVHlwZVNjcmlwdCBcImltcG9ydEhlbHBlcnNcIiB3aGljaCBpbXBvcnRzIHRzbGliIGR1cmluZyBjb21waWxhdGlvbiBidXQgaXQgd2lsbCB1c2UgdGhlc2UgYXQgcnVudGltZVxyXG4vLyBXaGljaCBpcyBhbHNvIHdoeSBhbGwgb2YgdGhlIGZ1bmN0aW9ucyBoYXZlIG5vdCBiZWVuIGluY2x1ZGVkIGFzIEFwcGxpY2F0aW9uIEluc2lnaHRzIGN1cnJlbnRseSBkb2Vzbid0IHVzZSBvciByZXF1aXJlXHJcbi8vIHRoZW0uXHJcbmV4cG9ydCB2YXIgU3ltYm9sT2JqID0gKGdldEdsb2JhbCgpIHx8IHt9KVtcIlN5bWJvbFwiXTtcclxuZXhwb3J0IHZhciBSZWZsZWN0T2JqID0gKGdldEdsb2JhbCgpIHx8IHt9KVtcIlJlZmxlY3RcIl07XHJcbmV4cG9ydCB2YXIgX19oYXNTeW1ib2wgPSAhIVN5bWJvbE9iajtcclxuZXhwb3J0IHZhciBfX2hhc1JlZmxlY3QgPSAhIVJlZmxlY3RPYmo7XHJcbnZhciBzdHJEZWNvcmF0ZSA9IFwiZGVjb3JhdGVcIjtcclxudmFyIHN0ck1ldGFkYXRhID0gXCJtZXRhZGF0YVwiO1xyXG52YXIgc3RyR2V0T3duUHJvcGVydHlTeW1ib2xzID0gXCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHNcIjtcclxudmFyIHN0ckl0ZXJhdG9yID0gXCJpdGVyYXRvclwiO1xyXG5leHBvcnQgdmFyIF9fb2JqQXNzaWduRm5JbXBsID0gZnVuY3Rpb24gKHQpIHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogYmFuLWNvbW1hLW9wZXJhdG9yXHJcbiAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgIGZvciAodmFyIHAgaW4gcykge1xyXG4gICAgICAgICAgICBpZiAoT2JqUHJvdG9bc3RyU2hpbUhhc093blByb3BlcnR5XS5jYWxsKHMsIHApKSB7XHJcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0O1xyXG59O1xyXG5leHBvcnQgdmFyIF9fYXNzaWduRm4gPSBPYmpBc3NpZ24gfHwgX19vYmpBc3NpZ25GbkltcGw7XHJcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25seS1hcnJvdy1mdW5jdGlvbnNcclxudmFyIGV4dGVuZFN0YXRpY3NGbiA9IGZ1bmN0aW9uIChkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzRm4gPSBPYmpDbGFzc1tcInNldFByb3RvdHlwZU9mXCJdIHx8XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvbmx5LWFycm93LWZ1bmN0aW9uc1xyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7XHJcbiAgICAgICAgICAgIGQuX19wcm90b19fID0gYjtcclxuICAgICAgICB9KSB8fFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25seS1hcnJvdy1mdW5jdGlvbnNcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIGIpIHtcclxuICAgICAgICAgICAgICAgIGlmIChiW3N0clNoaW1IYXNPd25Qcm9wZXJ0eV0ocCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBkW3BdID0gYltwXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljc0ZuKGQsIGIpO1xyXG59O1xyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzRm4oZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBzdHJTaGltRnVuY3Rpb24gJiYgYiAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRocm93VHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICB9XHJcbiAgICBleHRlbmRTdGF0aWNzRm4oZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHtcclxuICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDtcclxuICAgIH1cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogYmFuLWNvbW1hLW9wZXJhdG9yXHJcbiAgICBkW3N0clNoaW1Qcm90b3R5cGVdID0gYiA9PT0gbnVsbCA/IG9iakNyZWF0ZUZuKGIpIDogKF9fW3N0clNoaW1Qcm90b3R5cGVdID0gYltzdHJTaGltUHJvdG90eXBlXSwgbmV3IF9fKCkpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3RGbihzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgayBpbiBzKSB7XHJcbiAgICAgICAgaWYgKE9iakhhc093blByb3BlcnR5LmNhbGwocywgaykgJiYgZS5pbmRleE9mKGspIDwgMCkge1xyXG4gICAgICAgICAgICB0W2tdID0gc1trXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmpDbGFzc1tzdHJHZXRPd25Qcm9wZXJ0eVN5bWJvbHNdID09PSBzdHJTaGltRnVuY3Rpb24pIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iakNsYXNzW3N0ckdldE93blByb3BlcnR5U3ltYm9sc10ocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9ialByb3RvW1wicHJvcGVydHlJc0VudW1lcmFibGVcIl0uY2FsbChzLCBwW2ldKSkge1xyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZUZuKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqQ2xhc3NbXCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JcIl0odGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmIChfX2hhc1JlZmxlY3QgJiYgdHlwZW9mIFJlZmxlY3RPYmpbc3RyRGVjb3JhdGVdID09PSBzdHJTaGltRnVuY3Rpb24pIHtcclxuICAgICAgICByID0gUmVmbGVjdE9ialtzdHJEZWNvcmF0ZV0oZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXHJcbiAgICAgICAgICAgIGlmIChkID0gZGVjb3JhdG9yc1tpXSkge1xyXG4gICAgICAgICAgICAgICAgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLWNvbW1hLW9wZXJhdG9yXHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmpEZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW1GbihwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcclxuICAgICAgICBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpO1xyXG4gICAgfTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YUZuKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAoX19oYXNSZWZsZWN0ICYmIFJlZmxlY3RPYmpbc3RyTWV0YWRhdGFdID09PSBzdHJTaGltRnVuY3Rpb24pIHtcclxuICAgICAgICByZXR1cm4gUmVmbGVjdE9ialtzdHJNZXRhZGF0YV0obWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXJGbihtLCBvKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIHtcclxuICAgICAgICBpZiAocCAhPT0gc3RyRGVmYXVsdCAmJiAhT2JqSGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkge1xyXG4gICAgICAgICAgICBfX2NyZWF0ZUJpbmRpbmdGbihvLCBtLCBwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY3JlYXRlQmluZGluZ0ZuKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGsyID0gaztcclxuICAgIH1cclxuICAgIGlmICghIU9iakNyZWF0ZSkge1xyXG4gICAgICAgIE9iakRlZmluZVByb3BlcnR5KG8sIGsyLCB7XHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ba107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIG9bazJdID0gbVtrXTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXNGbihvKSB7XHJcbiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2xPYmogPT09IHN0clNoaW1GdW5jdGlvbiAmJiBTeW1ib2xPYmpbc3RySXRlcmF0b3JdLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSB7XHJcbiAgICAgICAgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIH1cclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHRocm93VHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZEZuKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbE9iaiA9PT0gc3RyU2hpbUZ1bmN0aW9uICYmIG9bU3ltYm9sT2JqW3N0ckl0ZXJhdG9yXV07XHJcbiAgICBpZiAoIW0pIHtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgIH1cclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkge1xyXG4gICAgICAgICAgICBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGUgPSB7XHJcbiAgICAgICAgICAgIGVycm9yOiBlcnJvclxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uZGl0aW9uYWwtYXNzaWdubWVudFxyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIHtcclxuICAgICAgICAgICAgICAgIG0uY2FsbChpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHtcclxuICAgICAgICAgICAgaWYgKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtZmluYWxseVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZS5lcnJvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzRm4oKSB7XHJcbiAgICB2YXIgdGhlQXJncyA9IGFyZ3VtZW50cztcclxuICAgIC8vIENhbGN1bGF0ZSBuZXcgdG90YWwgc2l6ZVxyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IHRoZUFyZ3MubGVuZ3RoOyBpIDwgaWw7IGkrKykge1xyXG4gICAgICAgIHMgKz0gdGhlQXJnc1tpXS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICAvLyBDcmVhdGUgbmV3IGZ1bGwgYXJyYXlcclxuICAgIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKykge1xyXG4gICAgICAgIGZvciAodmFyIGEgPSB0aGVBcmdzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKykge1xyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheUZuKHRvLCBmcm9tKSB7XHJcbiAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykge1xyXG4gICAgICAgIHRvW2pdID0gZnJvbVtpXTtcclxuICAgIH1cclxuICAgIHJldHVybiB0bztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3RGbihjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iakRlZmluZVByb3BlcnR5KSB7XHJcbiAgICAgICAgT2JqRGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb29rZWQucmF3ID0gcmF3O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnRTdGFyRm4obW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZDtcclxuICAgIH1cclxuICAgIHZhciByZXN1bHQgPSB7fTtcclxuICAgIGlmIChtb2QgIT0gbnVsbCkge1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gbW9kKSB7XHJcbiAgICAgICAgICAgIGlmIChrICE9PSBzdHJEZWZhdWx0ICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSB7XHJcbiAgICAgICAgICAgICAgICBfX2NyZWF0ZUJpbmRpbmdGbihyZXN1bHQsIG1vZCwgayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBTZXQgZGVmYXVsdCBtb2R1bGVcclxuICAgIGlmICghIU9iakNyZWF0ZSkge1xyXG4gICAgICAgIE9iakRlZmluZVByb3BlcnR5KHJlc3VsdCwgc3RyRGVmYXVsdCwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogbW9kIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0W3N0ckRlZmF1bHRdID0gbW9kO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0Rm4obW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IHN0ckRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRzTGliU2hpbXMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29yZSwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuLy8gQHNraXAtZmlsZS1taW5pZnlcclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gQVVUTyBHRU5FUkFURUQgRklMRTogVGhpcyBmaWxlIGlzIEF1dG8gR2VuZXJhdGVkIGR1cmluZyBidWlsZC5cclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gTm90ZTogRE9OJ1QgRXhwb3J0IHRoZXNlIGNvbnN0IGZyb20gdGhlIHBhY2thZ2UgYXMgd2UgYXJlIHN0aWxsIHRhcmdldGluZyBFUzMgdGhpcyB3aWxsIGV4cG9ydCBhIG11dGFibGUgdmFyaWFibGVzIHRoYXQgc29tZW9uZSBjb3VsZCBjaGFuZ2UhISFcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuZXhwb3J0IHZhciBfRFlOX0lOSVRJQUxJWkUgPSBcImluaXRpYWxpemVcIjsgLy8gQ291bnQ6IDhcclxuZXhwb3J0IHZhciBfRFlOX05BTUUgPSBcIm5hbWVcIjsgLy8gQ291bnQ6IDExXHJcbmV4cG9ydCB2YXIgX0RZTl9HRVRfTk9USUZZX01HUiA9IFwiZ2V0Tm90aWZ5TWdyXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9JREVOVElGSUVSID0gXCJpZGVudGlmaWVyXCI7IC8vIENvdW50OiA4XHJcbmV4cG9ydCB2YXIgX0RZTl9QVVNIID0gXCJwdXNoXCI7IC8vIENvdW50OiAzMFxyXG5leHBvcnQgdmFyIF9EWU5fSVNfSU5JVElBTElaRUQgPSBcImlzSW5pdGlhbGl6ZWRcIjsgLy8gQ291bnQ6IDEwXHJcbmV4cG9ydCB2YXIgX0RZTl9DT05GSUcgPSBcImNvbmZpZ1wiOyAvLyBDb3VudDogN1xyXG5leHBvcnQgdmFyIF9EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSA9IFwiaW5zdHJ1bWVudGF0aW9uS2V5XCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9MT0dHRVIgPSBcImxvZ2dlclwiOyAvLyBDb3VudDogOVxyXG5leHBvcnQgdmFyIF9EWU5fTEVOR1RIID0gXCJsZW5ndGhcIjsgLy8gQ291bnQ6IDQzXHJcbmV4cG9ydCB2YXIgX0RZTl9USU1FID0gXCJ0aW1lXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9QUk9DRVNTX05FWFQgPSBcInByb2Nlc3NOZXh0XCI7IC8vIENvdW50OiAyMVxyXG5leHBvcnQgdmFyIF9EWU5fR0VUX1BST0NFU1NfVEVMX0NPTlQwID0gXCJnZXRQcm9jZXNzVGVsQ29udGV4dFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fQUREX05PVElGSUNBVElPTl9MSVMxID0gXCJhZGROb3RpZmljYXRpb25MaXN0ZW5lclwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fUkVNT1ZFX05PVElGSUNBVElPTl8yID0gXCJyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lclwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fU1RPUF9QT0xMSU5HX0lOVEVSTkEzID0gXCJzdG9wUG9sbGluZ0ludGVybmFsTG9nc1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fT05fQ09NUExFVEUgPSBcIm9uQ29tcGxldGVcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9QTFVHSU4gPSBcImdldFBsdWdpblwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fRkxVU0ggPSBcImZsdXNoXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9fRVhURU5TSU9OUyA9IFwiX2V4dGVuc2lvbnNcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1NQTElDRSA9IFwic3BsaWNlXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9URUFSRE9XTiA9IFwidGVhcmRvd25cIjsgLy8gQ291bnQ6IDEwXHJcbmV4cG9ydCB2YXIgX0RZTl9NRVNTQUdFX0lEID0gXCJtZXNzYWdlSWRcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX01FU1NBR0UgPSBcIm1lc3NhZ2VcIjsgLy8gQ291bnQ6IDdcclxuZXhwb3J0IHZhciBfRFlOX0lTX0FTWU5DID0gXCJpc0FzeW5jXCI7IC8vIENvdW50OiA3XHJcbmV4cG9ydCB2YXIgX0RZTl9fRE9fVEVBUkRPV04gPSBcIl9kb1RlYXJkb3duXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9VUERBVEUgPSBcInVwZGF0ZVwiOyAvLyBDb3VudDogN1xyXG5leHBvcnQgdmFyIF9EWU5fR0VUX05FWFQgPSBcImdldE5leHRcIjsgLy8gQ291bnQ6IDEyXHJcbmV4cG9ydCB2YXIgX0RZTl9ESUFHX0xPRyA9IFwiZGlhZ0xvZ1wiOyAvLyBDb3VudDogOFxyXG5leHBvcnQgdmFyIF9EWU5fU0VUX05FWFRfUExVR0lOID0gXCJzZXROZXh0UGx1Z2luXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9DUkVBVEVfTkVXID0gXCJjcmVhdGVOZXdcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX0NPT0tJRV9DRkcgPSBcImNvb2tpZUNmZ1wiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fSU5ERVhfT0YgPSBcImluZGV4T2ZcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX1NVQlNUUklORyA9IFwic3Vic3RyaW5nXCI7IC8vIENvdW50OiAxMFxyXG5leHBvcnQgdmFyIF9EWU5fVVNFUl9BR0VOVCA9IFwidXNlckFnZW50XCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9TUExJVCA9IFwic3BsaXRcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX1NFVF9FTkFCTEVEID0gXCJzZXRFbmFibGVkXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9TVUJTVFIgPSBcInN1YnN0clwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fTk9ERV9UWVBFID0gXCJub2RlVHlwZVwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fQVBQTFkgPSBcImFwcGx5XCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9SRVBMQUNFID0gXCJyZXBsYWNlXCI7IC8vIENvdW50OiAxMFxyXG5leHBvcnQgdmFyIF9EWU5fRU5BQkxFX0RFQlVHX0VYQ0VQVEk0ID0gXCJlbmFibGVEZWJ1Z0V4Y2VwdGlvbnNcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0xPR19JTlRFUk5BTF9NRVNTQUdFID0gXCJsb2dJbnRlcm5hbE1lc3NhZ2VcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX1RPX0xPV0VSX0NBU0UgPSBcInRvTG93ZXJDYXNlXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9DQUxMID0gXCJjYWxsXCI7IC8vIENvdW50OiAxOFxyXG5leHBvcnQgdmFyIF9EWU5fVFlQRSA9IFwidHlwZVwiOyAvLyBDb3VudDogMTRcclxuZXhwb3J0IHZhciBfRFlOX0hBTkRMRVIgPSBcImhhbmRsZXJcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0xJU1RFTkVSUyA9IFwibGlzdGVuZXJzXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9JU19DSElMRF9FVlQgPSBcImlzQ2hpbGRFdnRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9DVFggPSBcImdldEN0eFwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fU0VUX0NUWCA9IFwic2V0Q3R4XCI7IC8vIENvdW50OiAxMFxyXG5leHBvcnQgdmFyIF9EWU5fQ09NUExFVEUgPSBcImNvbXBsZXRlXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9UUkFDRV9JRCA9IFwidHJhY2VJZFwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fU1BBTl9JRCA9IFwic3BhbklkXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9UUkFDRV9GTEFHUyA9IFwidHJhY2VGbGFnc1wiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fVkVSU0lPTiA9IFwidmVyc2lvblwiOyAvLyBDb3VudDogNFxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX0R5bmFtaWNDb25zdGFudHMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29yZSwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gTm90ZTogRE9OJ1QgRXhwb3J0IHRoZXNlIGNvbnN0IGZyb20gdGhlIHBhY2thZ2UgYXMgd2UgYXJlIHN0aWxsIHRhcmdldGluZyBFUzMgdGhpcyB3aWxsIGV4cG9ydCBhIG11dGFibGUgdmFyaWFibGVzIHRoYXQgc29tZW9uZSBjb3VsZCBjaGFuZ2UhISFcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuZXhwb3J0IHZhciBTVFJfRU1QVFkgPSBcIlwiO1xyXG5leHBvcnQgdmFyIFNUUl9DSEFOTkVMUyA9IFwiY2hhbm5lbHNcIjtcclxuZXhwb3J0IHZhciBTVFJfQ09SRSA9IFwiY29yZVwiO1xyXG5leHBvcnQgdmFyIFNUUl9DUkVBVEVfUEVSRl9NR1IgPSBcImNyZWF0ZVBlcmZNZ3JcIjtcclxuZXhwb3J0IHZhciBTVFJfRElTQUJMRUQgPSBcImRpc2FibGVkXCI7XHJcbmV4cG9ydCB2YXIgU1RSX0VYVEVOU0lPTl9DT05GSUcgPSBcImV4dGVuc2lvbkNvbmZpZ1wiO1xyXG5leHBvcnQgdmFyIFNUUl9FWFRFTlNJT05TID0gXCJleHRlbnNpb25zXCI7XHJcbmV4cG9ydCB2YXIgU1RSX1BST0NFU1NfVEVMRU1FVFJZID0gXCJwcm9jZXNzVGVsZW1ldHJ5XCI7XHJcbmV4cG9ydCB2YXIgU1RSX1BSSU9SSVRZID0gXCJwcmlvcml0eVwiO1xyXG5leHBvcnQgdmFyIFNUUl9FVkVOVFNfU0VOVCA9IFwiZXZlbnRzU2VudFwiO1xyXG5leHBvcnQgdmFyIFNUUl9FVkVOVFNfRElTQ0FSREVEID0gXCJldmVudHNEaXNjYXJkZWRcIjtcclxuZXhwb3J0IHZhciBTVFJfRVZFTlRTX1NFTkRfUkVRVUVTVCA9IFwiZXZlbnRzU2VuZFJlcXVlc3RcIjtcclxuZXhwb3J0IHZhciBTVFJfUEVSRl9FVkVOVCA9IFwicGVyZkV2ZW50XCI7XHJcbmV4cG9ydCB2YXIgU1RSX0VSUk9SX1RPX0NPTlNPTEUgPSBcImVycm9yVG9Db25zb2xlXCI7XHJcbmV4cG9ydCB2YXIgU1RSX1dBUk5fVE9fQ09OU09MRSA9IFwid2FyblRvQ29uc29sZVwiO1xyXG5leHBvcnQgdmFyIFNUUl9HRVRfUEVSRl9NR1IgPSBcImdldFBlcmZNZ3JcIjtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW50ZXJuYWxDb25zdGFudHMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29yZSwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgT2JqQXNzaWduLCBPYmpDbGFzcywgT2JqRGVmaW5lUHJvcGVydHksIE9iakhhc093blByb3BlcnR5LCBPYmpQcm90bywgc3RyU2hpbUZ1bmN0aW9uLCBzdHJTaGltT2JqZWN0LCBzdHJTaGltUHJvdG90eXBlLCBzdHJTaGltVW5kZWZpbmVkLCB0aHJvd1R5cGVFcnJvciB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtc2hpbXNcIjtcclxuaW1wb3J0IHsgX0RZTl9BUFBMWSwgX0RZTl9DQUxMLCBfRFlOX0lOREVYX09GLCBfRFlOX0xFTkdUSCwgX0RZTl9OQU1FLCBfRFlOX1BVU0gsIF9EWU5fUkVQTEFDRSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgU1RSX0VNUFRZIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuLy8gUkVTVFJJQ1QgYW5kIEFWT0lEIGNpcmN1bGFyIGRlcGVuZGVuY2llcyB5b3Ugc2hvdWxkIG5vdCBpbXBvcnQgb3RoZXIgY29udGFpbmVkIG1vZHVsZXMgb3IgZXhwb3J0IHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgZGlyZWN0bHlcclxuLy8gQWRkZWQgdG8gaGVscCB3aXRoIG1pbmZpY2F0aW9uXHJcbnZhciBzdHJUb0lTT1N0cmluZyA9IFwidG9JU09TdHJpbmdcIjtcclxudmFyIGNTdHJFbmRzV2l0aCA9IFwiZW5kc1dpdGhcIjtcclxudmFyIGNTdHJTdGFydHNXaXRoID0gXCJzdGFydHNXaXRoXCI7XHJcbnZhciBzdHJJbmRleE9mID0gXCJpbmRleE9mXCI7XHJcbnZhciBzdHJNYXAgPSBcIm1hcFwiO1xyXG52YXIgc3RyUmVkdWNlID0gXCJyZWR1Y2VcIjtcclxudmFyIGNTdHJUcmltID0gXCJ0cmltXCI7XHJcbnZhciBzdHJUb1N0cmluZyA9IFwidG9TdHJpbmdcIjtcclxuLyoqXHJcbiAqIENvbnN0YW50IHN0cmluZyBkZWZpbmVkIHRvIHN1cHBvcnQgbWluaW1pemF0aW9uXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbnZhciBzdHJfX1Byb3RvID0gXCJfX3Byb3RvX19cIjtcclxuLyoqXHJcbiAgKiBDb25zdGFudCBzdHJpbmcgZGVmaW5lZCB0byBzdXBwb3J0IG1pbmltaXphdGlvblxyXG4gICogQGlnbm9yZVxyXG4gICovXHJcbnZhciBzdHJDb25zdHJ1Y3RvciA9IFwiY29uc3RydWN0b3JcIjtcclxudmFyIF9vYmpEZWZpbmVQcm9wZXJ0eSA9IE9iakRlZmluZVByb3BlcnR5O1xyXG52YXIgX29iakZyZWV6ZSA9IE9iakNsYXNzLmZyZWV6ZTtcclxudmFyIF9vYmpTZWFsID0gT2JqQ2xhc3Muc2VhbDtcclxudmFyIF9vYmpLZXlzID0gT2JqQ2xhc3Mua2V5cztcclxudmFyIFN0cmluZ1Byb3RvID0gU3RyaW5nW3N0clNoaW1Qcm90b3R5cGVdO1xyXG52YXIgX3N0clRyaW0gPSBTdHJpbmdQcm90b1tjU3RyVHJpbV07XHJcbnZhciBfc3RyRW5kc1dpdGggPSBTdHJpbmdQcm90b1tjU3RyRW5kc1dpdGhdO1xyXG52YXIgX3N0clN0YXJ0c1dpdGggPSBTdHJpbmdQcm90b1tjU3RyU3RhcnRzV2l0aF07XHJcbnZhciBEYXRlUHJvdG8gPSBEYXRlW3N0clNoaW1Qcm90b3R5cGVdO1xyXG52YXIgX2RhdGFUb0lTT1N0cmluZyA9IERhdGVQcm90b1tzdHJUb0lTT1N0cmluZ107XHJcbnZhciBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XHJcbnZhciBfb2JqVG9TdHJpbmcgPSBPYmpQcm90b1tzdHJUb1N0cmluZ107XHJcbnZhciBfZm5Ub1N0cmluZyA9IE9iakhhc093blByb3BlcnR5W3N0clRvU3RyaW5nXTtcclxuLy8gQ2FjaGUgd2hhdCB0aGlzIGJyb3dzZXIgcmVwb3J0cyBhcyB0aGUgb2JqZWN0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yIChhcyBhIHN0cmluZylcclxudmFyIF9vYmpGdW5jdGlvblN0cmluZyA9IF9mblRvU3RyaW5nW19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKE9iakNsYXNzKTtcclxudmFyIHJDYW1lbENhc2UgPSAvLShbYS16XSkvZztcclxudmFyIHJOb3JtYWxpemVJbnZhbGlkID0gLyhbXlxcd1xcZF8kXSkvZztcclxudmFyIHJMZWFkaW5nTnVtZXJpYyA9IC9eKFxcZCtbXFx3XFxkXyRdKS87XHJcbi8qKlxyXG4gKiBQcmUtbG9va3VwIHRvIGNoZWNrIGlmIHdlIGFyZSBydW5uaW5nIG9uIGEgbW9kZXJuIGJyb3dzZXIgKGkuZS4gbm90IElFOClcclxuICogQGlnbm9yZVxyXG4gKi9cclxudmFyIF9vYmpHZXRQcm90b3R5cGVPZiA9IE9iamVjdFtcImdldFByb3RvdHlwZU9mXCJdO1xyXG4vKipcclxuICAqIEhlbHBlciB1c2VkIHRvIGdldCB0aGUgcHJvdG90eXBlIG9mIHRoZSB0YXJnZXQgb2JqZWN0IGFzIGdldFByb3RvdHlwZU9mIGlzIG5vdCBhdmFpbGFibGUgaW4gYW4gRVMzIGVudmlyb25tZW50LlxyXG4gICogQGlnbm9yZVxyXG4gICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfZ2V0T2JqUHJvdG8odGFyZ2V0KSB7XHJcbiAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgICAgLy8gVGhpcyBtZXRob2QgZG9lc24ndCBleGlzdGluZyBpbiBvbGRlciBicm93c2VycyAoZS5nLiBJRTgpXHJcbiAgICAgICAgaWYgKF9vYmpHZXRQcm90b3R5cGVPZikge1xyXG4gICAgICAgICAgICByZXR1cm4gX29iakdldFByb3RvdHlwZU9mKHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRhcmdldFtDb25zdHJ1Y3Rvcl0gTWF5IGJyZWFrIGlmIHRoZSBjb25zdHJ1Y3RvciBoYXMgYmVlbiBjaGFuZ2VkIG9yIHJlbW92ZWRcclxuICAgICAgICB2YXIgbmV3UHJvdG8gPSB0YXJnZXRbc3RyX19Qcm90b10gfHwgdGFyZ2V0W3N0clNoaW1Qcm90b3R5cGVdIHx8IHRhcmdldFtzdHJDb25zdHJ1Y3Rvcl07XHJcbiAgICAgICAgaWYgKG5ld1Byb3RvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdQcm90bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gb2JqVG9TdHJpbmcob2JqKSB7XHJcbiAgICByZXR1cm4gX29ialRvU3RyaW5nW19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKG9iaik7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVHlwZW9mKHZhbHVlLCB0aGVUeXBlKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSB0aGVUeXBlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHZhbHVlID09PSBzdHJTaGltVW5kZWZpbmVkO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc05vdFVuZGVmaW5lZCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuICFpc1VuZGVmaW5lZCh2YWx1ZSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gKHZhbHVlID09PSBudWxsIHx8IGlzVW5kZWZpbmVkKHZhbHVlKSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTm90TnVsbE9yVW5kZWZpbmVkKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gIWlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaGFzT3duUHJvcGVydHkob2JqLCBwcm9wKSB7XHJcbiAgICByZXR1cm4gISEob2JqICYmIE9iakhhc093blByb3BlcnR5W19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKG9iaiwgcHJvcCkpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xyXG4gICAgLy8gQ2hhbmdpbmcgdG8gaW5saW5lIGZvciBwZXJmb3JtYW5jZVxyXG4gICAgcmV0dXJuICEhKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gc3RyU2hpbU9iamVjdCk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcclxuICAgIC8vIENoYW5naW5nIHRvIGlubGluZSBmb3IgcGVyZm9ybWFuY2VcclxuICAgIHJldHVybiAhISh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IHN0clNoaW1GdW5jdGlvbik7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UodmFsdWUpIHtcclxuICAgIHJldHVybiB2YWx1ZSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnRoZW4pO1xyXG59XHJcbi8qKlxyXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG5hbWUgY29uZm9ybXMgdG8gdGhlIEpTIElkZW50aWZpZXJOYW1lIHNwZWNpZmljYXRpb24gYW5kIGlmIG5vdFxyXG4gKiBub3JtYWxpemVzIHRoZSBuYW1lIHNvIHRoYXQgaXQgd291bGQuIFRoaXMgbWV0aG9kIGRvZXMgbm90IGlkZW50aWZ5IG9yIGNoYW5nZSBhbnkga2V5d29yZHNcclxuICogbWVhbmluZyB0aGF0IGlmIHlvdSBwYXNzIGluIGEga25vd24ga2V5d29yZCB0aGUgc2FtZSB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLlxyXG4gKiBUaGlzIGlzIGEgc2ltcGxpZmllZCB2ZXJzaW9uXHJcbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIHZhbGlkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSnNOYW1lKG5hbWUpIHtcclxuICAgIHZhciB2YWx1ZSA9IG5hbWU7XHJcbiAgICBpZiAodmFsdWUgJiYgaXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgICAgLy8gQ2FtZWxDYXNlIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIFwiLVwiIGFuZCByZW1vdmUgdGhlIGRhc2hcclxuICAgICAgICB2YWx1ZSA9IHZhbHVlW19EWU5fUkVQTEFDRSAvKiBAbWluOiUyZXJlcGxhY2UgKi9dKHJDYW1lbENhc2UsIGZ1bmN0aW9uIChfYWxsLCBsZXR0ZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxldHRlci50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWVbX0RZTl9SRVBMQUNFIC8qIEBtaW46JTJlcmVwbGFjZSAqL10ock5vcm1hbGl6ZUludmFsaWQsIFwiX1wiKTtcclxuICAgICAgICB2YWx1ZSA9IHZhbHVlW19EWU5fUkVQTEFDRSAvKiBAbWluOiUyZXJlcGxhY2UgKi9dKHJMZWFkaW5nTnVtZXJpYywgZnVuY3Rpb24gKF9hbGwsIG1hdGNoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIl9cIiArIG1hdGNoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgZXF1aXZhbGVudCBvZiBhckZvckVhY2gob2JqS2V5cyh0YXJnZXQpLCBjYWxsYmFja0ZuKSwgdGhpcyBpcyBhXHJcbiAqIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBhdm9pZCB0aGUgY3JlYXRpb24gb2YgYSBuZXcgYXJyYXkgZm9yIGxhcmdlIG9iamVjdHNcclxuICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCB0byBmaW5kIGFuZCBwcm9jZXNzIHRoZSBrZXlzXHJcbiAqIEBwYXJhbSBjYWxsYmFja2ZuIFRoZSBmdW5jdGlvbiB0byBjYWxsIHdpdGggdGhlIGRldGFpbHNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvYmpGb3JFYWNoS2V5KHRhcmdldCwgY2FsbGJhY2tmbikge1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIGZvciAodmFyIHByb3AgaW4gdGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGlmIChPYmpIYXNPd25Qcm9wZXJ0eVtfRFlOX0NBTEwgLyogQG1pbjolMmVjYWxsICovXSh0YXJnZXQsIHByb3ApKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFja2ZuW19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKHRhcmdldCwgcHJvcCwgdGFyZ2V0W3Byb3BdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vKipcclxuICogVGhlIHN0ckVuZHNXaXRoKCkgbWV0aG9kIGRldGVybWluZXMgd2hldGhlciBhIHN0cmluZyBlbmRzIHdpdGggdGhlIGNoYXJhY3RlcnMgb2YgYSBzcGVjaWZpZWQgc3RyaW5nLCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS5cclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrIHdoZXRoZXIgaXQgZW5kcyB3aXRoIHRoZSBzZWFyY2ggdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWFyY2ggLSBUaGUgY2hhcmFjdGVycyB0byBiZSBzZWFyY2hlZCBmb3IgYXQgdGhlIGVuZCBvZiB0aGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHNlYXJjaCB2YWx1ZSBpcyBmb3VuZCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIG90aGVyd2lzZSBmYWxzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJFbmRzV2l0aCh2YWx1ZSwgc2VhcmNoKSB7XHJcbiAgICB2YXIgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICBpZiAodmFsdWUgJiYgc2VhcmNoICYmICEocmVzdWx0ID0gdmFsdWUgPT09IHNlYXJjaCkpIHtcclxuICAgICAgICAvLyBGb3IgUGVyZm9ybWFuY2UgdHJ5IGFuZCB1c2UgdGhlIG5hdGl2ZSBpbnN0YW5jZSwgdXNpbmcgc3RyaW5nIGxvb2t1cCBvZiB0aGUgZnVuY3Rpb24gdG8gZWFzaWx5IHBhc3MgdGhlIEVTMyBidWlsZCBjaGVja3MgYW5kIG1pbmlmaWNhdGlvblxyXG4gICAgICAgIHJlc3VsdCA9IF9zdHJFbmRzV2l0aCA/IHZhbHVlW2NTdHJFbmRzV2l0aF0oc2VhcmNoKSA6IF9zdHJFbmRzV2l0aFBvbHkodmFsdWUsIHNlYXJjaCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKlxyXG4gKiBUaGUgX3N0ckVuZHNXaXRoKCkgbWV0aG9kIGRldGVybWluZXMgd2hldGhlciBhIHN0cmluZyBlbmRzIHdpdGggdGhlIGNoYXJhY3RlcnMgb2YgYSBzcGVjaWZpZWQgc3RyaW5nLCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS5cclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrIHdoZXRoZXIgaXQgZW5kcyB3aXRoIHRoZSBzZWFyY2ggdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWFyY2ggLSBUaGUgY2hhcmFjdGVycyB0byBiZSBzZWFyY2hlZCBmb3IgYXQgdGhlIGVuZCBvZiB0aGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHNlYXJjaCB2YWx1ZSBpcyBmb3VuZCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIG90aGVyd2lzZSBmYWxzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfc3RyRW5kc1dpdGhQb2x5KHZhbHVlLCBzZWFyY2gpIHtcclxuICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgIHZhciBzZWFyY2hMZW4gPSBzZWFyY2ggPyBzZWFyY2hbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dIDogMDtcclxuICAgIHZhciB2YWxMZW4gPSB2YWx1ZSA/IHZhbHVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA6IDA7XHJcbiAgICBpZiAoc2VhcmNoTGVuICYmIHZhbExlbiAmJiB2YWxMZW4gPj0gc2VhcmNoTGVuICYmICEocmVzdWx0ID0gdmFsdWUgPT09IHNlYXJjaCkpIHtcclxuICAgICAgICB2YXIgcG9zID0gdmFsTGVuIC0gMTtcclxuICAgICAgICBmb3IgKHZhciBscCA9IHNlYXJjaExlbiAtIDE7IGxwID49IDA7IGxwLS0pIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlW3Bvc10gIT0gc2VhcmNoW2xwXSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBvcy0tO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKipcclxuICogVGhlIHN0clN0YXJ0c1dpdGgoKSBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgc3RyaW5nIHN0YXJ0cyB3aXRoIHRoZSBjaGFyYWN0ZXJzIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nLCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZSBhcyBhcHByb3ByaWF0ZS5cclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrIHdoZXRoZXIgaXQgZW5kcyB3aXRoIHRoZSBzZWFyY2ggdmFsdWUuXHJcbiAqIEBwYXJhbSBjaGVja1ZhbHVlIC0gVGhlIGNoYXJhY3RlcnMgdG8gYmUgc2VhcmNoZWQgZm9yIGF0IHRoZSBzdGFydCBvZiB0aGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHNlYXJjaCB2YWx1ZSBpcyBmb3VuZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZywgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0clN0YXJ0c1dpdGgodmFsdWUsIGNoZWNrVmFsdWUpIHtcclxuICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgIGlmICh2YWx1ZSAmJiBjaGVja1ZhbHVlICYmICEocmVzdWx0ID0gdmFsdWUgPT09IGNoZWNrVmFsdWUpKSB7XHJcbiAgICAgICAgLy8gRm9yIFBlcmZvcm1hbmNlIHRyeSBhbmQgdXNlIHRoZSBuYXRpdmUgaW5zdGFuY2UsIHVzaW5nIHN0cmluZyBsb29rdXAgb2YgdGhlIGZ1bmN0aW9uIHRvIGVhc2lseSBwYXNzIHRoZSBFUzMgYnVpbGQgY2hlY2tzIGFuZCBtaW5pZmljYXRpb25cclxuICAgICAgICByZXN1bHQgPSBfc3RyU3RhcnRzV2l0aCA/IHZhbHVlW2NTdHJTdGFydHNXaXRoXShjaGVja1ZhbHVlKSA6IF9zdHJTdGFydHNXaXRoUG9seSh2YWx1ZSwgY2hlY2tWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKlxyXG4gKiBUaGUgc3RyU3RhcnRzV2l0aCgpIG1ldGhvZCBkZXRlcm1pbmVzIHdoZXRoZXIgYSBzdHJpbmcgc3RhcnRzIHdpdGggdGhlIGNoYXJhY3RlcnMgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmcsIHJldHVybmluZyB0cnVlIG9yIGZhbHNlIGFzIGFwcHJvcHJpYXRlLlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2sgd2hldGhlciBpdCBlbmRzIHdpdGggdGhlIHNlYXJjaCB2YWx1ZS5cclxuICogQHBhcmFtIGNoZWNrVmFsdWUgLSBUaGUgY2hhcmFjdGVycyB0byBiZSBzZWFyY2hlZCBmb3IgYXQgdGhlIHN0YXJ0IG9mIHRoZSB2YWx1ZS5cclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gc2VhcmNoIHZhbHVlIGlzIGZvdW5kIGF0IHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX3N0clN0YXJ0c1dpdGhQb2x5KHZhbHVlLCBjaGVja1ZhbHVlKSB7XHJcbiAgICAvLyBVc2luZyBoZWxwZXIgZm9yIHBlcmZvcm1hbmNlIGFuZCBiZWNhdXNlIHN0cmluZyBzdGFydHNXaXRoKCkgaXMgbm90IGF2YWlsYWJsZSBvbiBJRVxyXG4gICAgdmFyIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgdmFyIGNoa0xlbiA9IGNoZWNrVmFsdWUgPyBjaGVja1ZhbHVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA6IDA7XHJcbiAgICBpZiAodmFsdWUgJiYgY2hrTGVuICYmIHZhbHVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+PSBjaGtMZW4gJiYgIShyZXN1bHQgPSB2YWx1ZSA9PT0gY2hlY2tWYWx1ZSkpIHtcclxuICAgICAgICBmb3IgKHZhciBscCA9IDA7IGxwIDwgY2hrTGVuOyBscCsrKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZVtscF0gIT09IGNoZWNrVmFsdWVbbHBdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLyoqXHJcbiAqIEEgc2ltcGxlIHdyYXBwZXIgKGZvciBtaW5pZmljYXRpb24gc3VwcG9ydCkgdG8gY2hlY2sgaWYgdGhlIHZhbHVlIGNvbnRhaW5zIHRoZSBzZWFyY2ggc3RyaW5nLlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHRoZSBzZWFyY2ggdmFsdWVcclxuICogQHBhcmFtIHNlYXJjaCAtIFRoZSB2YWx1ZSBzZWFyY2ggd2l0aGluIHRoZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0ckNvbnRhaW5zKHZhbHVlLCBzZWFyY2gpIHtcclxuICAgIGlmICh2YWx1ZSAmJiBzZWFyY2gpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWVbX0RZTl9JTkRFWF9PRiAvKiBAbWluOiUyZWluZGV4T2YgKi9dKHNlYXJjaCkgIT09IC0xO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgb2YgdHlwZSBEYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKG9iaikge1xyXG4gICAgcmV0dXJuICEhKG9iaiAmJiBfb2JqVG9TdHJpbmdbX0RZTl9DQUxMIC8qIEBtaW46JTJlY2FsbCAqL10ob2JqKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgb2YgdHlwZSBBcnJheSB3aXRoIG9wdGlvbmFsIGdlbmVyaWMgVCwgdGhlIGdlbmVyaWMgdHlwZSBpcyBub3QgdmFsaWRhdGVkXHJcbiAqIGFuZCBleGlzdHMgdG8gaGVscCB3aXRoIFR5cGVTY3JpcHQgdmFsaWRhdGlvbiBvbmx5LlxyXG4gKi9cclxuZXhwb3J0IHZhciBpc0FycmF5ID0gX2lzQXJyYXkgfHwgX2lzQXJyYXlQb2x5O1xyXG5mdW5jdGlvbiBfaXNBcnJheVBvbHkob2JqKSB7XHJcbiAgICByZXR1cm4gISEob2JqICYmIF9vYmpUb1N0cmluZ1tfRFlOX0NBTEwgLyogQG1pbjolMmVjYWxsICovXShvYmopID09PSBcIltvYmplY3QgQXJyYXldXCIpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgb2YgdHlwZSBFcnJvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXJyb3Iob2JqKSB7XHJcbiAgICByZXR1cm4gISEob2JqICYmIF9vYmpUb1N0cmluZ1tfRFlOX0NBTEwgLyogQG1pbjolMmVjYWxsICovXShvYmopID09PSBcIltvYmplY3QgRXJyb3JdXCIpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgdGhlIHR5cGUgb2YgdmFsdWUgaXMgYSBzdHJpbmcuXHJcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFZhbHVlIHRvIGJlIGNoZWNrZWQuXHJcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIHZhbHVlIGlzIGEgc3RyaW5nLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcclxuICAgIC8vIENoYW5naW5nIHRvIGlubGluZSBmb3IgcGVyZm9ybWFuY2VcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrcyBpZiB0aGUgdHlwZSBvZiB2YWx1ZSBpcyBhIG51bWJlci5cclxuICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVmFsdWUgdG8gYmUgY2hlY2tlZC5cclxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIGZhbHNlIG90aGVyd2lzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xyXG4gICAgLy8gQ2hhbmdpbmcgdG8gaW5saW5lIGZvciBwZXJmb3JtYW5jZVxyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIjtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIHRoZSB0eXBlIG9mIHZhbHVlIGlzIGEgYm9vbGVhbi5cclxuICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVmFsdWUgdG8gYmUgY2hlY2tlZC5cclxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdmFsdWUgaXMgYSBib29sZWFuLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlKSB7XHJcbiAgICAvLyBDaGFuZ2luZyB0byBpbmxpbmUgZm9yIHBlcmZvcm1hbmNlXHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIjtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIHRoZSB0eXBlIG9mIHZhbHVlIGlzIGEgU3ltYm9sLlxyXG4gKiBUaGlzIG9ubHkgcmV0dXJucyBhIGJvb2xlYW4gYXMgcmV0dXJuaW5nIHZhbHVlIGlzIFN5bWJvbCB3aWxsIGNhdXNlIGlzc3VlcyBmb3Igb2xkZXIgVHlwZVNjcmlwdCBjb25zdW1lcnNcclxuICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVmFsdWUgdG8gYmUgY2hlY2tlZC5cclxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdmFsdWUgaXMgYSBTeW1ib2wsIGZhbHNlIG90aGVyd2lzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzeW1ib2xcIjtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIHRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBpcyBhIG5vcm1hbCBwbGFpbiBvYmplY3QgKG5vdCBhIG51bGwgb3IgZGF0YSlcclxuICogQHBhcmFtIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xyXG4gICAgdmFyIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgIC8vIElubGluaW5nIF9vYmpHZXRQcm90b3R5cGVPZiBmb3IgcGVyZm9ybWFuY2UgdG8gYXZvaWQgYW4gYWRkaXRpb25hbCBmdW5jdGlvbiBjYWxsXHJcbiAgICAgICAgdmFyIHByb3RvID0gX29iakdldFByb3RvdHlwZU9mID8gX29iakdldFByb3RvdHlwZU9mKHZhbHVlKSA6IF9nZXRPYmpQcm90byh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKCFwcm90bykge1xyXG4gICAgICAgICAgICAvLyBObyBwcm90b3R5cGUgZm91bmQgc28gdGhpcyBpcyBhIHBsYWluIE9iamVjdCBlZy4gJ09iamVjdC5jcmVhdGUobnVsbCknXHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBPYmplY3RzIHRoYXQgaGF2ZSBhIHByb3RvdHlwZSBhcmUgcGxhaW4gb25seSBpZiB0aGV5IHdlcmUgY3JlYXRlZCB1c2luZyB0aGUgT2JqZWN0IGdsb2JhbCAobmF0aXZlKSBmdW5jdGlvblxyXG4gICAgICAgICAgICBpZiAocHJvdG9bc3RyQ29uc3RydWN0b3JdICYmIE9iakhhc093blByb3BlcnR5W19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKHByb3RvLCBzdHJDb25zdHJ1Y3RvcikpIHtcclxuICAgICAgICAgICAgICAgIHByb3RvID0gcHJvdG9bc3RyQ29uc3RydWN0b3JdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHR5cGVvZiBwcm90byA9PT0gc3RyU2hpbUZ1bmN0aW9uICYmIF9mblRvU3RyaW5nW19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKHByb3RvKSA9PT0gX29iakZ1bmN0aW9uU3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLyoqXHJcbiAqIENvbnZlcnQgYSBkYXRlIHRvIEkuUy5PLiBmb3JtYXQgaW4gSUU4XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9JU09TdHJpbmcoZGF0ZSkge1xyXG4gICAgaWYgKGRhdGUpIHtcclxuICAgICAgICAvLyBGb3IgUGVyZm9ybWFuY2UgdHJ5IGFuZCB1c2UgdGhlIG5hdGl2ZSBpbnN0YW5jZSwgdXNpbmcgc3RyaW5nIGxvb2t1cCBvZiB0aGUgZnVuY3Rpb24gdG8gZWFzaWx5IHBhc3MgdGhlIEVTMyBidWlsZCBjaGVja3MgYW5kIG1pbmlmaWNhdGlvblxyXG4gICAgICAgIHJldHVybiBfZGF0YVRvSVNPU3RyaW5nID8gZGF0ZVtzdHJUb0lTT1N0cmluZ10oKSA6IF90b0lTT1N0cmluZ1BvbHkoZGF0ZSk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIENvbnZlcnQgYSBkYXRlIHRvIEkuUy5PLiBmb3JtYXQgaW4gSUU4XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX3RvSVNPU3RyaW5nUG9seShkYXRlKSB7XHJcbiAgICBpZiAoZGF0ZSAmJiBkYXRlLmdldFVUQ0Z1bGxZZWFyKSB7XHJcbiAgICAgICAgdmFyIHBhZCA9IGZ1bmN0aW9uIChudW0pIHtcclxuICAgICAgICAgICAgdmFyIHIgPSBTdHJpbmcobnVtKTtcclxuICAgICAgICAgICAgaWYgKHJbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICByID0gXCIwXCIgKyByO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0VVRDRnVsbFllYXIoKVxyXG4gICAgICAgICAgICArIFwiLVwiICsgcGFkKGRhdGUuZ2V0VVRDTW9udGgoKSArIDEpXHJcbiAgICAgICAgICAgICsgXCItXCIgKyBwYWQoZGF0ZS5nZXRVVENEYXRlKCkpXHJcbiAgICAgICAgICAgICsgXCJUXCIgKyBwYWQoZGF0ZS5nZXRVVENIb3VycygpKVxyXG4gICAgICAgICAgICArIFwiOlwiICsgcGFkKGRhdGUuZ2V0VVRDTWludXRlcygpKVxyXG4gICAgICAgICAgICArIFwiOlwiICsgcGFkKGRhdGUuZ2V0VVRDU2Vjb25kcygpKVxyXG4gICAgICAgICAgICArIFwiLlwiICsgU3RyaW5nKChkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpIC8gMTAwMCkudG9GaXhlZCgzKSkuc2xpY2UoMiwgNSlcclxuICAgICAgICAgICAgKyBcIlpcIjtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogUGVyZm9ybXMgdGhlIHNwZWNpZmllZCBhY3Rpb24gZm9yIGVhY2ggZWxlbWVudCBpbiBhbiBhcnJheS4gVGhpcyBoZWxwZXIgZXhpc3RzIHRvIGF2b2lkIGFkZGluZyBhIHBvbHlmaWwgZm9yIG9sZGVyIGJyb3dzZXJzXHJcbiAqIHRoYXQgZG8gbm90IGRlZmluZSBBcnJheS5wcm90b3R5cGUueHh4eCAoZWcuIEVTMyBvbmx5LCBJRTgpIGp1c3QgaW4gY2FzZSBhbnkgcGFnZSBjaGVja3MgZm9yIHByZXNlbmNlL2Fic2VuY2Ugb2YgdGhlIHByb3RvdHlwZVxyXG4gKiBpbXBsZW1lbnRhdGlvbi4gTm90ZTogRm9yIGNvbnNpc3RlbmN5IHRoaXMgd2lsbCBub3QgdXNlIHRoZSBBcnJheS5wcm90b3R5cGUueHh4eCBpbXBsZW1lbnRhdGlvbiBpZiBpdCBleGlzdHMgYXMgdGhpcyB3b3VsZFxyXG4gKiBjYXVzZSBhIHRlc3RpbmcgcmVxdWlyZW1lbnQgdG8gdGVzdCB3aXRoIGFuZCB3aXRob3V0IHRoZSBpbXBsZW1lbnRhdGlvbnNcclxuICogQHBhcmFtIGNhbGxiYWNrZm4gIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gZm9yRWFjaCBjYWxscyB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbiBvbmUgdGltZSBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheS4gSXQgY2FuIHJldHVybiAtMSB0byBicmVhayBvdXQgb2YgdGhlIGxvb3BcclxuICogQHBhcmFtIHRoaXNBcmcgIFtPcHRpb25hbF0gQW4gb2JqZWN0IHRvIHdoaWNoIHRoZSB0aGlzIGtleXdvcmQgY2FuIHJlZmVyIGluIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uLiBJZiB0aGlzQXJnIGlzIG9taXR0ZWQsIHVuZGVmaW5lZCBpcyB1c2VkIGFzIHRoZSB0aGlzIHZhbHVlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFyckZvckVhY2goYXJyLCBjYWxsYmFja2ZuLCB0aGlzQXJnKSB7XHJcbiAgICB2YXIgbGVuID0gYXJyW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgbGVuOyBpZHgrKykge1xyXG4gICAgICAgICAgICBpZiAoaWR4IGluIGFycikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrZm5bX0RZTl9DQUxMIC8qIEBtaW46JTJlY2FsbCAqL10odGhpc0FyZyB8fCBhcnIsIGFycltpZHhdLCBpZHgsIGFycikgPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aXRoIHNvbWUgbmF0aXZlIGJyb3dzZXIgb2JqZWN0cywgYnV0IHNob3VsZCBub3QgaGFwcGVuIGZvciB0aGUgdHlwZSB3ZSBhcmUgY2hlY2tpbmcgZm9yXHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgdmFsdWUgaW4gYW4gYXJyYXkuIFRoaXMgaGVscGVyIGV4aXN0cyB0byBhdm9pZCBhZGRpbmcgYSBwb2x5ZmlsIGZvciBvbGRlciBicm93c2Vyc1xyXG4gKiB0aGF0IGRvIG5vdCBkZWZpbmUgQXJyYXkucHJvdG90eXBlLnh4eHggKGVnLiBFUzMgb25seSwgSUU4KSBqdXN0IGluIGNhc2UgYW55IHBhZ2UgY2hlY2tzIGZvciBwcmVzZW5jZS9hYnNlbmNlIG9mIHRoZSBwcm90b3R5cGVcclxuICogaW1wbGVtZW50YXRpb24uIE5vdGU6IEZvciBjb25zaXN0ZW5jeSB0aGlzIHdpbGwgbm90IHVzZSB0aGUgQXJyYXkucHJvdG90eXBlLnh4eHggaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzIGFzIHRoaXMgd291bGRcclxuICogY2F1c2UgYSB0ZXN0aW5nIHJlcXVpcmVtZW50IHRvIHRlc3Qgd2l0aCBhbmQgd2l0aG91dCB0aGUgaW1wbGVtZW50YXRpb25zXHJcbiAqIEBwYXJhbSBzZWFyY2hFbGVtZW50IFRoZSB2YWx1ZSB0byBsb2NhdGUgaW4gdGhlIGFycmF5LlxyXG4gKiBAcGFyYW0gZnJvbUluZGV4IFRoZSBhcnJheSBpbmRleCBhdCB3aGljaCB0byBiZWdpbiB0aGUgc2VhcmNoLiBJZiBmcm9tSW5kZXggaXMgb21pdHRlZCwgdGhlIHNlYXJjaCBzdGFydHMgYXQgaW5kZXggMC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhcnJJbmRleE9mKGFyciwgc2VhcmNoRWxlbWVudCwgZnJvbUluZGV4KSB7XHJcbiAgICBpZiAoYXJyKSB7XHJcbiAgICAgICAgLy8gRm9yIFBlcmZvcm1hbmNlIHRyeSBhbmQgdXNlIHRoZSBuYXRpdmUgaW5zdGFuY2UsIHVzaW5nIHN0cmluZyBsb29rdXAgb2YgdGhlIGZ1bmN0aW9uIHRvIGVhc2lseSBwYXNzIHRoZSBFUzMgYnVpbGQgY2hlY2tzIGFuZCBtaW5pZmljYXRpb25cclxuICAgICAgICBpZiAoYXJyW3N0ckluZGV4T2ZdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnJbc3RySW5kZXhPZl0oc2VhcmNoRWxlbWVudCwgZnJvbUluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGxlbiA9IGFycltfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICAgICAgdmFyIGZyb20gPSBmcm9tSW5kZXggfHwgMDtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBscCA9IE1hdGgubWF4KGZyb20gPj0gMCA/IGZyb20gOiBsZW4gLSBNYXRoLmFicyhmcm9tKSwgMCk7IGxwIDwgbGVuOyBscCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobHAgaW4gYXJyICYmIGFycltscF0gPT09IHNlYXJjaEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbHA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdpdGggc29tZSBuYXRpdmUgYnJvd3NlciBvYmplY3RzLCBidXQgc2hvdWxkIG5vdCBoYXBwZW4gZm9yIHRoZSB0eXBlIHdlIGFyZSBjaGVja2luZyBmb3JcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gLTE7XHJcbn1cclxuLyoqXHJcbiAqIENhbGxzIGEgZGVmaW5lZCBjYWxsYmFjayBmdW5jdGlvbiBvbiBlYWNoIGVsZW1lbnQgb2YgYW4gYXJyYXksIGFuZCByZXR1cm5zIGFuIGFycmF5IHRoYXQgY29udGFpbnMgdGhlIHJlc3VsdHMuIFRoaXMgaGVscGVyIGV4aXN0c1xyXG4gKiB0byBhdm9pZCBhZGRpbmcgYSBwb2x5ZmlsIGZvciBvbGRlciBicm93c2VycyB0aGF0IGRvIG5vdCBkZWZpbmUgQXJyYXkucHJvdG90eXBlLnh4eHggKGVnLiBFUzMgb25seSwgSUU4KSBqdXN0IGluIGNhc2UgYW55IHBhZ2VcclxuICogY2hlY2tzIGZvciBwcmVzZW5jZS9hYnNlbmNlIG9mIHRoZSBwcm90b3R5cGUgaW1wbGVtZW50YXRpb24uIE5vdGU6IEZvciBjb25zaXN0ZW5jeSB0aGlzIHdpbGwgbm90IHVzZSB0aGUgQXJyYXkucHJvdG90eXBlLnh4eHhcclxuICogaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzIGFzIHRoaXMgd291bGQgY2F1c2UgYSB0ZXN0aW5nIHJlcXVpcmVtZW50IHRvIHRlc3Qgd2l0aCBhbmQgd2l0aG91dCB0aGUgaW1wbGVtZW50YXRpb25zXHJcbiAqIEBwYXJhbSBjYWxsYmFja2ZuIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIHRocmVlIGFyZ3VtZW50cy4gVGhlIG1hcCBtZXRob2QgY2FsbHMgdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkuXHJcbiAqIEBwYXJhbSB0aGlzQXJnIEFuIG9iamVjdCB0byB3aGljaCB0aGUgdGhpcyBrZXl3b3JkIGNhbiByZWZlciBpbiB0aGUgY2FsbGJhY2tmbiBmdW5jdGlvbi4gSWYgdGhpc0FyZyBpcyBvbWl0dGVkLCB1bmRlZmluZWQgaXMgdXNlZCBhcyB0aGUgdGhpcyB2YWx1ZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhcnJNYXAoYXJyLCBjYWxsYmFja2ZuLCB0aGlzQXJnKSB7XHJcbiAgICB2YXIgcmVzdWx0cztcclxuICAgIGlmIChhcnIpIHtcclxuICAgICAgICAvLyBGb3IgUGVyZm9ybWFuY2UgdHJ5IGFuZCB1c2UgdGhlIG5hdGl2ZSBpbnN0YW5jZSwgdXNpbmcgc3RyaW5nIGxvb2t1cCBvZiB0aGUgZnVuY3Rpb24gdG8gZWFzaWx5IHBhc3MgdGhlIEVTMyBidWlsZCBjaGVja3MgYW5kIG1pbmlmaWNhdGlvblxyXG4gICAgICAgIGlmIChhcnJbc3RyTWFwXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyW3N0ck1hcF0oY2FsbGJhY2tmbiwgdGhpc0FyZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBsZW4gPSBhcnJbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXNBcmcgfHwgYXJyO1xyXG4gICAgICAgIHJlc3VsdHMgPSBuZXcgQXJyYXkobGVuKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBscCA9IDA7IGxwIDwgbGVuOyBscCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobHAgaW4gYXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1tscF0gPSBjYWxsYmFja2ZuW19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKF90aGlzLCBhcnJbbHBdLCBhcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aXRoIHNvbWUgbmF0aXZlIGJyb3dzZXIgb2JqZWN0cywgYnV0IHNob3VsZCBub3QgaGFwcGVuIGZvciB0aGUgdHlwZSB3ZSBhcmUgY2hlY2tpbmcgZm9yXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbn1cclxuLyoqXHJcbiAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGFsbCB0aGUgZWxlbWVudHMgaW4gYW4gYXJyYXkuIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIHRoZSBhY2N1bXVsYXRlZCByZXN1bHQsIGFuZCBpc1xyXG4gKiBwcm92aWRlZCBhcyBhbiBhcmd1bWVudCBpbiB0aGUgbmV4dCBjYWxsIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4gVGhpcyBoZWxwZXIgZXhpc3RzIHRvIGF2b2lkIGFkZGluZyBhIHBvbHlmaWwgZm9yIG9sZGVyIGJyb3dzZXJzIHRoYXQgZG8gbm90IGRlZmluZVxyXG4gKiBBcnJheS5wcm90b3R5cGUueHh4eCAoZWcuIEVTMyBvbmx5LCBJRTgpIGp1c3QgaW4gY2FzZSBhbnkgcGFnZSBjaGVja3MgZm9yIHByZXNlbmNlL2Fic2VuY2Ugb2YgdGhlIHByb3RvdHlwZSBpbXBsZW1lbnRhdGlvbi4gTm90ZTogRm9yIGNvbnNpc3RlbmN5XHJcbiAqIHRoaXMgd2lsbCBub3QgdXNlIHRoZSBBcnJheS5wcm90b3R5cGUueHh4eCBpbXBsZW1lbnRhdGlvbiBpZiBpdCBleGlzdHMgYXMgdGhpcyB3b3VsZCBjYXVzZSBhIHRlc3RpbmcgcmVxdWlyZW1lbnQgdG8gdGVzdCB3aXRoIGFuZCB3aXRob3V0IHRoZSBpbXBsZW1lbnRhdGlvbnNcclxuICogQHBhcmFtIGNhbGxiYWNrZm4gQSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdXAgdG8gZm91ciBhcmd1bWVudHMuIFRoZSByZWR1Y2UgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5LlxyXG4gKiBAcGFyYW0gaW5pdGlhbFZhbHVlIElmIGluaXRpYWxWYWx1ZSBpcyBzcGVjaWZpZWQsIGl0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgdG8gc3RhcnQgdGhlIGFjY3VtdWxhdGlvbi4gVGhlIGZpcnN0IGNhbGwgdG8gdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gcHJvdmlkZXMgdGhpcyB2YWx1ZSBhcyBhbiBhcmd1bWVudCBpbnN0ZWFkIG9mIGFuIGFycmF5IHZhbHVlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFyclJlZHVjZShhcnIsIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSkge1xyXG4gICAgdmFyIHZhbHVlO1xyXG4gICAgaWYgKGFycikge1xyXG4gICAgICAgIC8vIEZvciBQZXJmb3JtYW5jZSB0cnkgYW5kIHVzZSB0aGUgbmF0aXZlIGluc3RhbmNlLCB1c2luZyBzdHJpbmcgbG9va3VwIG9mIHRoZSBmdW5jdGlvbiB0byBlYXNpbHkgcGFzcyB0aGUgRVMzIGJ1aWxkIGNoZWNrcyBhbmQgbWluaWZpY2F0aW9uXHJcbiAgICAgICAgaWYgKGFycltzdHJSZWR1Y2VdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnJbc3RyUmVkdWNlXShjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgbGVuID0gYXJyW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgICAgICB2YXIgbHAgPSAwO1xyXG4gICAgICAgIC8vIFNwZWNpZmljYWxseSBjaGVja2luZyB0aGUgbnVtYmVyIG9mIHBhc3NlZCBhcmd1bWVudHMgYXMgdGhlIHZhbHVlIGNvdWxkIGJlIGFueXRoaW5nXHJcbiAgICAgICAgaWYgKGFyZ3VtZW50c1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPj0gMykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGFyZ3VtZW50c1syXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHdoaWxlIChscCA8IGxlbiAmJiAhKGxwIGluIGFycikpIHtcclxuICAgICAgICAgICAgICAgIGxwKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFsdWUgPSBhcnJbbHArK107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHdoaWxlIChscCA8IGxlbikge1xyXG4gICAgICAgICAgICBpZiAobHAgaW4gYXJyKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGNhbGxiYWNrZm4odmFsdWUsIGFycltscF0sIGxwLCBhcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxwKys7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbi8qKlxyXG4gKiBoZWxwZXIgbWV0aG9kIHRvIHRyaW0gc3RyaW5ncyAoSUU4IGRvZXMgbm90IGltcGxlbWVudCBTdHJpbmcucHJvdG90eXBlLnRyaW0pXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3RyVHJpbShzdHIpIHtcclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgICAvLyBGb3IgUGVyZm9ybWFuY2UgdHJ5IGFuZCB1c2UgdGhlIG5hdGl2ZSBpbnN0YW5jZSwgdXNpbmcgc3RyaW5nIGxvb2t1cCBvZiB0aGUgZnVuY3Rpb24gdG8gZWFzaWx5IHBhc3MgdGhlIEVTMyBidWlsZCBjaGVja3MgYW5kIG1pbmlmaWNhdGlvblxyXG4gICAgICAgIHN0ciA9IChfc3RyVHJpbSAmJiBzdHJbY1N0clRyaW1dKSA/IHN0cltjU3RyVHJpbV0oKSA6IChzdHJbX0RZTl9SRVBMQUNFIC8qIEBtaW46JTJlcmVwbGFjZSAqL10gPyBzdHJbX0RZTl9SRVBMQUNFIC8qIEBtaW46JTJlcmVwbGFjZSAqL10oL15cXHMrfCg/PVxccylcXHMrJC9nLCBTVFJfRU1QVFkpIDogc3RyKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHI7XHJcbn1cclxudmFyIF9vYmpLZXlzSGFzRG9udEVudW1CdWcgPSAhKHsgdG9TdHJpbmc6IG51bGwgfSkucHJvcGVydHlJc0VudW1lcmFibGUoXCJ0b1N0cmluZ1wiKTtcclxudmFyIF9vYmpLZXlzRG9udEVudW1zID0gW1xyXG4gICAgXCJ0b1N0cmluZ1wiLFxyXG4gICAgXCJ0b0xvY2FsZVN0cmluZ1wiLFxyXG4gICAgXCJ2YWx1ZU9mXCIsXHJcbiAgICBcImhhc093blByb3BlcnR5XCIsXHJcbiAgICBcImlzUHJvdG90eXBlT2ZcIixcclxuICAgIFwicHJvcGVydHlJc0VudW1lcmFibGVcIixcclxuICAgIFwiY29uc3RydWN0b3JcIlxyXG5dO1xyXG4vKipcclxuICogUmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIGVudW1lcmFibGUgc3RyaW5nIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgYW4gb2JqZWN0LiBUaGlzIGhlbHBlciBleGlzdHMgdG8gYXZvaWQgYWRkaW5nIGEgcG9seWZpbCBmb3Igb2xkZXIgYnJvd3NlcnNcclxuICogdGhhdCBkbyBub3QgZGVmaW5lIE9iamVjdC5rZXlzIGVnLiBFUzMgb25seSwgSUU4IGp1c3QgaW4gY2FzZSBhbnkgcGFnZSBjaGVja3MgZm9yIHByZXNlbmNlL2Fic2VuY2Ugb2YgdGhlIHByb3RvdHlwZSBpbXBsZW1lbnRhdGlvbi5cclxuICogTm90ZTogRm9yIGNvbnNpc3RlbmN5IHRoaXMgd2lsbCBub3QgdXNlIHRoZSBPYmplY3Qua2V5cyBpbXBsZW1lbnRhdGlvbiBpZiBpdCBleGlzdHMgYXMgdGhpcyB3b3VsZCBjYXVzZSBhIHRlc3RpbmcgcmVxdWlyZW1lbnQgdG8gdGVzdCB3aXRoIGFuZCB3aXRob3V0IHRoZSBpbXBsZW1lbnRhdGlvbnNcclxuICogQHBhcmFtIG9iaiBPYmplY3QgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydGllcyBhbmQgbWV0aG9kcy4gVGhpcyBjYW4gYmUgYW4gb2JqZWN0IHRoYXQgeW91IGNyZWF0ZWQgb3IgYW4gZXhpc3RpbmcgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIChET00pIG9iamVjdC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvYmpLZXlzKG9iaikge1xyXG4gICAgdmFyIG9ialR5cGUgPSB0eXBlb2Ygb2JqO1xyXG4gICAgaWYgKG9ialR5cGUgIT09IHN0clNoaW1GdW5jdGlvbiAmJiAob2JqVHlwZSAhPT0gc3RyU2hpbU9iamVjdCB8fCBvYmogPT09IG51bGwpKSB7XHJcbiAgICAgICAgdGhyb3dUeXBlRXJyb3IoXCJvYmpLZXlzIGNhbGxlZCBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgfVxyXG4gICAgLy8gRm9yIFBlcmZvcm1hbmNlIHRyeSBhbmQgdXNlIHRoZSBuYXRpdmUgaW5zdGFuY2UsIHVzaW5nIHN0cmluZyBsb29rdXAgb2YgdGhlIGZ1bmN0aW9uIHRvIGVhc2lseSBwYXNzIHRoZSBFUzMgYnVpbGQgY2hlY2tzIGFuZCBtaW5pZmljYXRpb25cclxuICAgIGlmICghX29iaktleXNIYXNEb250RW51bUJ1ZyAmJiBfb2JqS2V5cykge1xyXG4gICAgICAgIHJldHVybiBfb2JqS2V5cyhvYmopO1xyXG4gICAgfVxyXG4gICAgdmFyIHJlc3VsdCA9IFtdO1xyXG4gICAgZm9yICh2YXIgcHJvcCBpbiBvYmopIHtcclxuICAgICAgICBpZiAob2JqICYmIE9iakhhc093blByb3BlcnR5W19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKG9iaiwgcHJvcCkpIHtcclxuICAgICAgICAgICAgcmVzdWx0W19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKHByb3ApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChfb2JqS2V5c0hhc0RvbnRFbnVtQnVnKSB7XHJcbiAgICAgICAgdmFyIGRvbnRFbnVtc0xlbmd0aCA9IF9vYmpLZXlzRG9udEVudW1zW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgICAgICBmb3IgKHZhciBscCA9IDA7IGxwIDwgZG9udEVudW1zTGVuZ3RoOyBscCsrKSB7XHJcbiAgICAgICAgICAgIGlmIChvYmogJiYgT2JqSGFzT3duUHJvcGVydHlbX0RZTl9DQUxMIC8qIEBtaW46JTJlY2FsbCAqL10ob2JqLCBfb2JqS2V5c0RvbnRFbnVtc1tscF0pKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10oX29iaktleXNEb250RW51bXNbbHBdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLyoqXHJcbiAqIFRyeSB0byBkZWZpbmUgZ2V0L3NldCBvYmplY3QgcHJvcGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdGFyZ2V0IG9iamVjdC9wcm90b3R5cGUsIHRoaXMgd2lsbCBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aFxyXG4gKiBleGlzdGluZyBBUEkgZGVmaW5pdGlvbiB3aGVuIHJ1biB3aXRoaW4gYW4gRVM1KyBjb250YWluZXIgdGhhdCBzdXBwb3J0cyBhY2Nlc3NvcnMgYnV0IHN0aWxsIGVuYWJsZSB0aGUgY29kZSB0byBiZSBsb2FkZWRcclxuICogYW5kIGV4ZWN1dGVkIGluIGFuIEVTMyBjb250YWluZXIsIHByb3ZpZGluZyBiYXNpYyBJRTggY29tcGF0aWJpbGl0eS5cclxuICogQHBhcmFtIHRhcmdldCBUaGUgb2JqZWN0IG9uIHdoaWNoIHRvIGRlZmluZSB0aGUgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSBwcm9wIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBkZWZpbmVkIG9yIG1vZGlmaWVkLlxyXG4gKiBAcGFyYW0gZ2V0UHJvcCBUaGUgZ2V0dGVyIGZ1bmN0aW9uIHRvIHdpcmUgYWdhaW5zdCB0aGUgZ2V0dGVyLlxyXG4gKiBAcGFyYW0gc2V0UHJvcCBUaGUgc2V0dGVyIGZ1bmN0aW9uIHRvIHdpcmUgYWdhaW5zdCB0aGUgc2V0dGVyLlxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGl0IHdhcyBhYmxlIHRvIGNyZWF0ZSB0aGUgYWNjZXNzb3JzIG90aGVyd2lzZSBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9iakRlZmluZUFjY2Vzc29ycyh0YXJnZXQsIHByb3AsIGdldFByb3AsIHNldFByb3ApIHtcclxuICAgIGlmIChfb2JqRGVmaW5lUHJvcGVydHkpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHtcclxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgaWYgKGdldFByb3ApIHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuZ2V0ID0gZ2V0UHJvcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2V0UHJvcCkge1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXQgPSBzZXRQcm9wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF9vYmpEZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3AsIGRlc2NyaXB0b3IpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gSUU4IERlZmluZXMgYSBkZWZpbmVQcm9wZXJ0eSBvbiBPYmplY3QgYnV0IGl0J3Mgb25seSBzdXBwb3J0ZWQgZm9yIERPTSBlbGVtZW50cyBzbyBpdCB3aWxsIHRocm93XHJcbiAgICAgICAgICAgIC8vIFdlIHdpbGwganVzdCBpZ25vcmUgdGhpcyBoZXJlLlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBfZG9Ob3RoaW5nKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBGcmVlemUob2JqKSB7XHJcbiAgICBpZiAoX29iakZyZWV6ZSkge1xyXG4gICAgICAgIG9iakZvckVhY2hLZXkob2JqLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpIHx8IGlzT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgX29iakZyZWV6ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmpGcmVlemUob2JqKTtcclxufVxyXG5leHBvcnQgdmFyIG9iakZyZWV6ZSA9IF9vYmpGcmVlemUgfHwgX2RvTm90aGluZztcclxuZXhwb3J0IHZhciBvYmpTZWFsID0gX29ialNlYWwgfHwgX2RvTm90aGluZztcclxuLyoqXHJcbiAqIFJldHVybiB0aGUgY3VycmVudCB0aW1lIHZpYSB0aGUgRGF0ZSBub3coKSBmdW5jdGlvbiAoaWYgYXZhaWxhYmxlKSBhbmQgZmFsbHMgYmFjayB0byAobmV3IERhdGUoKSkuZ2V0VGltZSgpIGlmIG5vdygpIGlzIHVuYXZhaWxhYmxlIChJRTggb3IgbGVzcylcclxuICogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jc2VhcmNoPURhdGUubm93XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGF0ZU5vdygpIHtcclxuICAgIHZhciBkdCA9IERhdGU7XHJcbiAgICByZXR1cm4gZHQubm93ID8gZHQubm93KCkgOiBuZXcgZHQoKS5nZXRUaW1lKCk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIG5hbWUgb2Ygb2JqZWN0IGlmIGl0J3MgYW4gRXJyb3IuIE90aGVyd2lzZSwgcmV0dXJucyBlbXB0eSBzdHJpbmcuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhjZXB0aW9uTmFtZShvYmplY3QpIHtcclxuICAgIGlmIChpc0Vycm9yKG9iamVjdCkpIHtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFNUUl9FTVBUWTtcclxufVxyXG4vKipcclxuICogU2V0cyB0aGUgcHJvdmlkZWQgdmFsdWUgb24gdGhlIHRhcmdldCBpbnN0YW5jZSB1c2luZyB0aGUgZmllbGQgbmFtZSB3aGVuIHRoZSBwcm92aWRlZCBjaGsgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCB0aGUgY2hrXHJcbiAqIGZ1bmN0aW9uIHdpbGwgb25seSBiZSBjYWxsZWQgaWYgdGhlIG5ldyB2YWx1ZSBpcyBubyBlcXVhbCB0byB0aGUgb3JpZ2luYWwgdmFsdWUuXHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdFxyXG4gKiBAcGFyYW0gZmllbGQgLSBUaGUga2V5IG9mIHRoZSB0YXJnZXRcclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldFxyXG4gKiBAcGFyYW0gdmFsQ2hrIC0gW09wdGlvbmFsXSBDYWxsYmFjayB0byBjaGVjayB0aGUgdmFsdWUgdGhhdCBpZiBzdXBwbGllZCB3aWxsIGJlIGNhbGxlZCBjaGVjayBpZiB0aGUgbmV3IHZhbHVlIGNhbiBiZSBzZXRcclxuICogQHBhcmFtIHNyY0NoayAtIFtPcHRpb25hbF0gQ2FsbGJhY2sgdG8gY2hlY2sgdG8gb3JpZ2luYWwgdmFsdWUgdGhhdCBpZiBzdXBwbGllZCB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgbmV3IHZhbHVlIHNob3VsZCBiZSBzZXQgKGlmIGFsbG93ZWQpXHJcbiAqIEByZXR1cm5zIFRoZSBleGlzdGluZyBvciBuZXcgdmFsdWUsIGRlcGVuZGluZyB3aGF0IHdhcyBzZXRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWx1ZSh0YXJnZXQsIGZpZWxkLCB2YWx1ZSwgdmFsQ2hrLCBzcmNDaGspIHtcclxuICAgIHZhciB0aGVWYWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIHRoZVZhbHVlID0gdGFyZ2V0W2ZpZWxkXTtcclxuICAgICAgICBpZiAodGhlVmFsdWUgIT09IHZhbHVlICYmICghc3JjQ2hrIHx8IHNyY0Noayh0aGVWYWx1ZSkpICYmICghdmFsQ2hrIHx8IHZhbENoayh2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgIHRoZVZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRhcmdldFtmaWVsZF0gPSB0aGVWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlVmFsdWU7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmFsdWUgZnJvbSB0aGUgdGFyZ2V0IG9iamVjdCBpZiBub3QgbnVsbCBvciB1bmRlZmluZWQgb3RoZXJ3aXNlIHNldHMgdGhlIG5ldyB2YWx1ZSBhbmQgcmV0dXJucyBpdFxyXG4gKiBAcGFyYW0gdGFyZ2V0IC0gVGhlIHRhcmdldCBvYmplY3QgdG8gcmV0dXJuIG9yIHNldCB0aGUgZGVmYXVsdCB2YWx1ZVxyXG4gKiBAcGFyYW0gZmllbGQgLSBUaGUga2V5IGZvciB0aGUgZmllbGQgdG8gc2V0IG9uIHRoZSB0YXJnZXRcclxuICogQHBhcmFtIGRlZlZhbHVlIC0gW09wdGlvbmFsXSBUaGUgdmFsdWUgdG8gc2V0IGlmIG5vdCBhbHJlYWR5IHByZXNlbnQsIHdoZW4gbm90IHByb3ZpZGVkIGEgZW1wdHkgb2JqZWN0IHdpbGwgYmUgYWRkZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXRWYWx1ZSh0YXJnZXQsIGZpZWxkLCBkZWZWYWx1ZSkge1xyXG4gICAgdmFyIHRoZVZhbHVlO1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIHRoZVZhbHVlID0gdGFyZ2V0W2ZpZWxkXTtcclxuICAgICAgICBpZiAoIXRoZVZhbHVlICYmIGlzTnVsbE9yVW5kZWZpbmVkKHRoZVZhbHVlKSkge1xyXG4gICAgICAgICAgICAvLyBTdXBwb3J0cyBoYXZpbmcgdGhlIGRlZmF1bHQgYXMgbnVsbFxyXG4gICAgICAgICAgICB0aGVWYWx1ZSA9ICFpc1VuZGVmaW5lZChkZWZWYWx1ZSkgPyBkZWZWYWx1ZSA6IHt9O1xyXG4gICAgICAgICAgICB0YXJnZXRbZmllbGRdID0gdGhlVmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gRXhwYW5kZWQgZm9yIHBlcmZvcm1hbmNlIHNvIHdlIG9ubHkgY2hlY2sgZGVmVmFsdWUgaWYgcmVxdWlyZWRcclxuICAgICAgICB0aGVWYWx1ZSA9ICFpc1VuZGVmaW5lZChkZWZWYWx1ZSkgPyBkZWZWYWx1ZSA6IHt9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoZVZhbHVlO1xyXG59XHJcbi8qKlxyXG4gKiBHZXQgdGhlIG1hcHBlZCBjb25maWcgdmFsdWUsIGlmIG51bGwgb3IgdW5kZWZpbmVkIGFueSBzdXBwbGllZCBkZWZhdWx0VmFsdWUgd2lsbCBiZSByZXR1cm5lZC5cclxuICogQHBhcmFtIGZpZWxkIC0gVGhlIG5hbWUgb2YgdGhlIGZpZWxkIGFzIHRoZSBuYW1lZCBlbnVtIHZhbHVlIChudW1iZXIpIG9yIHRoZSBzdHJpbmcgbmFtZS5cclxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiB0aGUgY29uZmlnIGZpZWxkIGlzIG5vdCBwcmVzZW50LCBudWxsIG9yIHVuZGVmaW5lZC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDZmdWYWx1ZSh0aGVWYWx1ZSwgZGVmYXVsdFZhbHVlKSB7XHJcbiAgICByZXR1cm4gIWlzTnVsbE9yVW5kZWZpbmVkKHRoZVZhbHVlKSA/IHRoZVZhbHVlIDogZGVmYXVsdFZhbHVlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc05vdFRydXRoeSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuICF2YWx1ZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNUcnV0aHkodmFsdWUpIHtcclxuICAgIHJldHVybiAhIXZhbHVlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKG1lc3NhZ2UpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxufVxyXG5mdW5jdGlvbiBfY3JlYXRlUHJveHlGdW5jdGlvbihzb3VyY2UsIGZ1bmNOYW1lKSB7XHJcbiAgICB2YXIgc3JjRnVuYyA9IG51bGw7XHJcbiAgICB2YXIgc3JjID0gbnVsbDtcclxuICAgIGlmIChpc0Z1bmN0aW9uKHNvdXJjZSkpIHtcclxuICAgICAgICBzcmNGdW5jID0gc291cmNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgc3JjID0gc291cmNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBDYXB0dXJlIHRoZSBvcmlnaW5hbCBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBtZXRob2RcclxuICAgICAgICB2YXIgb3JpZ2luYWxBcmd1bWVudHMgPSBhcmd1bWVudHM7XHJcbiAgICAgICAgaWYgKHNyY0Z1bmMpIHtcclxuICAgICAgICAgICAgc3JjID0gc3JjRnVuYygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc3JjKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzcmNbZnVuY05hbWVdW19EWU5fQVBQTFkgLyogQG1pbjolMmVhcHBseSAqL10oc3JjLCBvcmlnaW5hbEFyZ3VtZW50cyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG4vKipcclxuICogRWZmZWN0aXZlbHkgYXNzaWducyBhbGwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIChub3QganVzdCBvd24gcHJvcGVydGllcykgYW5kIGZ1bmN0aW9ucyAoaW5jbHVkaW5nIGluaGVyaXRlZCBwcm90b3R5cGUpIGZyb21cclxuICogdGhlIHNvdXJjZSBvYmplY3QgdG8gdGhlIHRhcmdldCwgaXQgYXR0ZW1wdHMgdG8gdXNlIHByb3h5IGdldHRlcnMgLyBzZXR0ZXJzIChpZiBwb3NzaWJsZSkgYW5kIHByb3h5IGZ1bmN0aW9ucyB0byBhdm9pZCBwb3RlbnRpYWxcclxuICogaW1wbGVtZW50YXRpb24gaXNzdWVzIGJ5IGFzc2lnbmluZyBwcm90b3R5cGUgZnVuY3Rpb25zIGFzIGluc3RhbmNlIG9uZXNcclxuICpcclxuICogVGhpcyBtZXRob2QgaXMgdGhlIHByaW1hcnkgbWV0aG9kIHVzZWQgdG8gXCJ1cGRhdGVcIiB0aGUgc25pcHBldCBwcm94eSB3aXRoIHRoZSB1bHRpbWF0ZSBpbXBsZW1lbnRhdGlvbnMuXHJcbiAqXHJcbiAqIFNwZWNpYWwgRVMzIE5vdGVzOlxyXG4gKiBVcGRhdGVzIChzZXR0aW5nKSBvZiBkaXJlY3QgcHJvcGVydHkgdmFsdWVzIG9uIHRoZSB0YXJnZXQgb3IgaW5kaXJlY3RseSBvbiB0aGUgc291cmNlIG9iamVjdCBXSUxMIE5PVCBXT1JLIFBST1BFUkxZLCB1cGRhdGVzIHRvIHRoZVxyXG4gKiBwcm9wZXJ0aWVzIG9mIFwicmVmZXJlbmNlZFwiIG9iamVjdCB3aWxsIHdvcmsgKHRhcmdldC5jb250ZXh0Lm5ld1ZhbHVlID0gMTAgPT4gd2lsbCBiZSByZWZsZWN0ZWQgaW4gdGhlIHNvdXJjZS5jb250ZXh0IGFzIGl0J3MgdGhlXHJcbiAqIHNhbWUgb2JqZWN0KS4gRVMzIEZhaWx1cmVzOiBhc3NpZ25pbmcgdGFyZ2V0Lm15UHJvcCA9IDMgLT4gV29uJ3QgY2hhbmdlIHNvdXJjZS5teVByb3AgPSAzLCBsaWtld2lzZSB0aGUgcmV2ZXJzZSB3b3VsZCBhbHNvIGZhaWwuXHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdCB0byBiZSBhc3NpZ25lZCB3aXRoIHRoZSBzb3VyY2UgcHJvcGVydGllcyBhbmQgZnVuY3Rpb25zXHJcbiAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9iamVjdCB3aGljaCB3aWxsIGJlIGFzc2lnbmVkIC8gY2FsbGVkIGJ5IHNldHRpbmcgLyBjYWxsaW5nIHRoZSB0YXJnZXRzIHByb3hpZXNcclxuICogQHBhcmFtIGNoa1NldCAtIEFuIG9wdGlvbmFsIGNhbGxiYWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGEgc3BlY2lmaWMgcHJvcGVydHkvZnVuY3Rpb24gc2hvdWxkIGJlIHByb3hpZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm94eUFzc2lnbih0YXJnZXQsIHNvdXJjZSwgY2hrU2V0KSB7XHJcbiAgICBpZiAodGFyZ2V0ICYmIHNvdXJjZSAmJiBpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcclxuICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChmaWVsZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNTdHJpbmcoZmllbGQpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBzb3VyY2VbZmllbGRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGtTZXQgfHwgY2hrU2V0KGZpZWxkLCB0cnVlLCBzb3VyY2UsIHRhcmdldCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgcHJveHkgZnVuY3Rpb24gcmF0aGVyIHRoYW4ganVzdCBjb3B5aW5nIHRoZSAocG9zc2libGUpIHByb3RvdHlwZSB0byB0aGUgbmV3IG9iamVjdCBhcyBhbiBpbnN0YW5jZSBmdW5jdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRbZmllbGRdID0gX2NyZWF0ZVByb3h5RnVuY3Rpb24oc291cmNlLCBmaWVsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIWNoa1NldCB8fCBjaGtTZXQoZmllbGQsIGZhbHNlLCBzb3VyY2UsIHRhcmdldCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkodGFyZ2V0LCBmaWVsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91cyBpbnN0YW5jZSBwcm9wZXJ0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGFyZ2V0W2ZpZWxkXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmpEZWZpbmVBY2Nlc3NvcnModGFyZ2V0LCBmaWVsZCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlW2ZpZWxkXTtcclxuICAgICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAodGhlVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlW2ZpZWxkXSA9IHRoZVZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuYWJsZSB0byBjcmVhdGUgYW4gYWNjZXNzb3IsIHNvIGp1c3QgYXNzaWduIHRoZSB2YWx1ZXMgYXMgYSBmYWxsYmFja1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAtLSB0aGlzIHdpbGwgKG1vc3RseSkgd29yayBmb3Igb2JqZWN0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAtLSBidXQgd2lsbCBmYWlsIGZvciBhY2Nlc3NpbmcgcHJpbWl0aXZlcyAoaWYgdGhlIHNvdXJjZSBjaGFuZ2VzIGl0KSBhbmQgYWxsIHR5cGVzIG9mIFwic2V0dGVyc1wiIGFzIHRoZSBzb3VyY2Ugd29uJ3QgYmUgbW9kaWZpZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2ZpZWxkXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gZWZmZWN0aXZlbHkgYXBwbHkvcHJveHkgZnVsbCBzb3VyY2UgdG8gdGhlIHRhcmdldCBpbnN0YW5jZVxyXG4gICAgICAgIGZvciAodmFyIGZpZWxkIGluIHNvdXJjZSkge1xyXG4gICAgICAgICAgICBfbG9vcF8xKGZpZWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgcHJveHkgZnVuY3Rpb24gb24gdGhlIHRhcmdldCB3aGljaCBpbnRlcm5hbGx5IHdpbGwgY2FsbCB0aGUgc291cmNlIHZlcnNpb24gd2l0aCBhbGwgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgdGFyZ2V0IG1ldGhvZC5cclxuICpcclxuICogQHBhcmFtIHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0IHRvIGJlIGFzc2lnbmVkIHdpdGggdGhlIHNvdXJjZSBwcm9wZXJ0aWVzIGFuZCBmdW5jdGlvbnNcclxuICogQHBhcmFtIG5hbWUgLSBUaGUgZnVuY3Rpb24gbmFtZSB0aGF0IHdpbGwgYmUgYWRkZWQgb24gdGhlIHRhcmdldFxyXG4gKiBAcGFyYW0gc291cmNlIC0gVGhlIHNvdXJjZSBvYmplY3Qgd2hpY2ggd2lsbCBiZSBhc3NpZ25lZCAvIGNhbGxlZCBieSBzZXR0aW5nIC8gY2FsbGluZyB0aGUgdGFyZ2V0cyBwcm94aWVzXHJcbiAqIEBwYXJhbSB0aGVGdW5jIC0gVGhlIGZ1bmN0aW9uIG5hbWUgb24gdGhlIHNvdXJjZSB0aGF0IHdpbGwgYmUgcHJveGllZCBvbiB0aGUgdGFyZ2V0XHJcbiAqIEBwYXJhbSBvdmVyd3JpdGVUYXJnZXQgLSBJZiBgZmFsc2VgIHRoaXMgd2lsbCBub3QgcmVwbGFjZSBhbnkgcHJlLWV4aXN0aW5nIG5hbWUgb3RoZXJ3aXNlICh0aGUgZGVmYXVsdCkgaXQgd2lsbCBvdmVyd3JpdGUgYW55IGV4aXN0aW5nIG5hbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm94eUZ1bmN0aW9uQXModGFyZ2V0LCBuYW1lLCBzb3VyY2UsIHRoZUZ1bmMsIG92ZXJ3cml0ZVRhcmdldCkge1xyXG4gICAgaWYgKHRhcmdldCAmJiBuYW1lICYmIHNvdXJjZSkge1xyXG4gICAgICAgIGlmIChvdmVyd3JpdGVUYXJnZXQgIT09IGZhbHNlIHx8IGlzVW5kZWZpbmVkKHRhcmdldFtuYW1lXSkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0W25hbWVdID0gX2NyZWF0ZVByb3h5RnVuY3Rpb24oc291cmNlLCB0aGVGdW5jKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgcHJveHkgZnVuY3Rpb25zIG9uIHRoZSB0YXJnZXQgd2hpY2ggaW50ZXJuYWxseSB3aWxsIGNhbGwgdGhlIHNvdXJjZSB2ZXJzaW9uIHdpdGggYWxsIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHRhcmdldCBtZXRob2QuXHJcbiAqXHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdCB0byBiZSBhc3NpZ25lZCB3aXRoIHRoZSBzb3VyY2UgcHJvcGVydGllcyBhbmQgZnVuY3Rpb25zXHJcbiAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9iamVjdCB3aGljaCB3aWxsIGJlIGFzc2lnbmVkIC8gY2FsbGVkIGJ5IHNldHRpbmcgLyBjYWxsaW5nIHRoZSB0YXJnZXRzIHByb3hpZXNcclxuICogQHBhcmFtIGZ1bmN0aW9uc1RvUHJveHkgLSBBbiBhcnJheSBvZiBmdW5jdGlvbiBuYW1lcyB0aGF0IHdpbGwgYmUgcHJveGllZCBvbiB0aGUgdGFyZ2V0XHJcbiAqIEBwYXJhbSBvdmVyd3JpdGVUYXJnZXQgLSBJZiBmYWxzZSB0aGlzIHdpbGwgbm90IHJlcGxhY2UgYW55IHByZS1leGlzdGluZyBuYW1lIG90aGVyd2lzZSAodGhlIGRlZmF1bHQpIGl0IHdpbGwgb3ZlcndyaXRlIGFueSBleGlzdGluZyBuYW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcHJveHlGdW5jdGlvbnModGFyZ2V0LCBzb3VyY2UsIGZ1bmN0aW9uc1RvUHJveHksIG92ZXJ3cml0ZVRhcmdldCkge1xyXG4gICAgaWYgKHRhcmdldCAmJiBzb3VyY2UgJiYgaXNPYmplY3QodGFyZ2V0KSAmJiBpc0FycmF5KGZ1bmN0aW9uc1RvUHJveHkpKSB7XHJcbiAgICAgICAgYXJyRm9yRWFjaChmdW5jdGlvbnNUb1Byb3h5LCBmdW5jdGlvbiAodGhlRnVuY05hbWUpIHtcclxuICAgICAgICAgICAgaWYgKGlzU3RyaW5nKHRoZUZ1bmNOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgcHJveHlGdW5jdGlvbkFzKHRhcmdldCwgdGhlRnVuY05hbWUsIHNvdXJjZSwgdGhlRnVuY05hbWUsIG92ZXJ3cml0ZVRhcmdldCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbn1cclxuLyoqXHJcbiAqIFNpbXBsZXIgaGVscGVyIHRvIGNyZWF0ZSBhIGR5bmFtaWMgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UgYW5kIHBvcHVsYXRlcyB0aGUgdmFsdWVzIHdpdGggdGhlIGRlZmF1bHRzLlxyXG4gKiBPbmx5IGluc3RhbmNlIHByb3BlcnRpZXMgKGhhc093blByb3BlcnR5KSB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tIHRoZSBkZWZhdWx0cyB0byB0aGUgbmV3IGluc3RhbmNlXHJcbiAqIEBwYXJhbSBkZWZhdWx0cyBTaW1wbGUgaGVscGVyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xhc3NGcm9tSW50ZXJmYWNlKGRlZmF1bHRzKSB7XHJcbiAgICByZXR1cm4gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGNsYXNzXzEoKSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpc18xID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKGRlZmF1bHRzKSB7XHJcbiAgICAgICAgICAgICAgICBvYmpGb3JFYWNoS2V5KGRlZmF1bHRzLCBmdW5jdGlvbiAoZmllbGQsIHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RoaXNfMVtmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufVxyXG4vKipcclxuICogQSBoZWxwZXIgZnVuY3Rpb24gdG8gYXNzaXN0IHdpdGggSklUIHBlcmZvcm1hbmNlIGZvciBvYmplY3RzIHRoYXQgaGF2ZSBwcm9wZXJ0aWVzIGFkZGVkIC8gcmVtb3ZlZCBkeW5hbWljYWxseVxyXG4gKiB0aGlzIGlzIHByaW1hcmlseSBmb3IgY2hyb21pdW0gYmFzZWQgYnJvd3NlcnMgYW5kIGhhcyBsaW1pdGVkIGVmZmVjdHMgb24gRmlyZWZveCBhbmQgbm9uZSBvZiBJRS4gT25seSBjYWxsIHRoaXNcclxuICogZnVuY3Rpb24gYWZ0ZXIgeW91IGhhdmUgZmluaXNoZWQgXCJ1cGRhdGluZ1wiIHRoZSBvYmplY3QsIGNhbGxpbmcgdGhpcyB3aXRoaW4gbG9vcHMgcmVkdWNlcyBvciBkZWZlYXRzIHRoZSBiZW5lZml0cy5cclxuICogVGhpcyBoZWxwcyB3aGVuIGl0ZXJhdGluZyB1c2luZyBmb3IuLmluLCBvYmpLZXlzKCkgYW5kIG9iakZvckVhY2goKVxyXG4gKiBAcGFyYW0gdGhlT2JqZWN0IC0gVGhlIG9iamVjdCB0byBiZSBvcHRpbWl6ZWQgaWYgcG9zc2libGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvcHRpbWl6ZU9iamVjdCh0aGVPYmplY3QpIHtcclxuICAgIC8vIFY4IE9wdGltaXphdGlvbiB0byBjYXVzZSB0aGUgSklUIGNvbXBpbGVyIHRvIGNyZWF0ZSBhIG5ldyBvcHRpbWl6ZWQgb2JqZWN0IGZvciBsb29raW5nIHVwIHRoZSBvd24gcHJvcGVydGllc1xyXG4gICAgLy8gcHJpbWFyaWx5IGZvciBvYmplY3Qgd2l0aCA8PSAxOSBwcm9wZXJ0aWVzIGZvciA+PSAyMCB0aGUgZWZmZWN0IGlzIHJlZHVjZWQgb3Igbm9uLWV4aXN0ZW50XHJcbiAgICBpZiAodGhlT2JqZWN0ICYmIE9iakFzc2lnbikge1xyXG4gICAgICAgIHRoZU9iamVjdCA9IE9iakNsYXNzKE9iakFzc2lnbih7fSwgdGhlT2JqZWN0KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhlT2JqZWN0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBvYmpFeHRlbmQob2JqMSwgb2JqMiwgb2JqMywgb2JqNCwgb2JqNSwgb2JqNikge1xyXG4gICAgLy8gVmFyaWFibGVzXHJcbiAgICB2YXIgdGhlQXJncyA9IGFyZ3VtZW50cztcclxuICAgIHZhciBleHRlbmRlZCA9IHRoZUFyZ3NbMF0gfHwge307XHJcbiAgICB2YXIgYXJnTGVuID0gdGhlQXJnc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICB2YXIgZGVlcCA9IGZhbHNlO1xyXG4gICAgdmFyIGlkeCA9IDE7XHJcbiAgICAvLyBDaGVjayBmb3IgXCJEZWVwXCIgZmxhZ1xyXG4gICAgaWYgKGFyZ0xlbiA+IDAgJiYgaXNCb29sZWFuKGV4dGVuZGVkKSkge1xyXG4gICAgICAgIGRlZXAgPSBleHRlbmRlZDtcclxuICAgICAgICBleHRlbmRlZCA9IHRoZUFyZ3NbaWR4XSB8fCB7fTtcclxuICAgICAgICBpZHgrKztcclxuICAgIH1cclxuICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KVxyXG4gICAgaWYgKCFpc09iamVjdChleHRlbmRlZCkpIHtcclxuICAgICAgICBleHRlbmRlZCA9IHt9O1xyXG4gICAgfVxyXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggcmVtYWluaW5nIG9iamVjdCBhbmQgY29uZHVjdCBhIG1lcmdlXHJcbiAgICBmb3IgKDsgaWR4IDwgYXJnTGVuOyBpZHgrKykge1xyXG4gICAgICAgIHZhciBhcmcgPSB0aGVBcmdzW2lkeF07XHJcbiAgICAgICAgdmFyIGlzQXJnQXJyYXkgPSBpc0FycmF5KGFyZyk7XHJcbiAgICAgICAgdmFyIGlzQXJnT2JqID0gaXNPYmplY3QoYXJnKTtcclxuICAgICAgICBmb3IgKHZhciBwcm9wIGluIGFyZykge1xyXG4gICAgICAgICAgICB2YXIgcHJvcE9rID0gKGlzQXJnQXJyYXkgJiYgKHByb3AgaW4gYXJnKSkgfHwgKGlzQXJnT2JqICYmIChPYmpIYXNPd25Qcm9wZXJ0eVtfRFlOX0NBTEwgLyogQG1pbjolMmVjYWxsICovXShhcmcsIHByb3ApKSk7XHJcbiAgICAgICAgICAgIGlmICghcHJvcE9rKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBhcmdbcHJvcF07XHJcbiAgICAgICAgICAgIHZhciBpc05ld0FycmF5ID0gdm9pZCAwO1xyXG4gICAgICAgICAgICAvLyBJZiBkZWVwIG1lcmdlIGFuZCBwcm9wZXJ0eSBpcyBhbiBvYmplY3QsIG1lcmdlIHByb3BlcnRpZXNcclxuICAgICAgICAgICAgaWYgKGRlZXAgJiYgbmV3VmFsdWUgJiYgKChpc05ld0FycmF5ID0gaXNBcnJheShuZXdWYWx1ZSkpIHx8IGlzUGxhaW5PYmplY3QobmV3VmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gR3JhYiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZXh0ZW5kZWQgb2JqZWN0XHJcbiAgICAgICAgICAgICAgICB2YXIgY2xvbmUgPSBleHRlbmRlZFtwcm9wXTtcclxuICAgICAgICAgICAgICAgIGlmIChpc05ld0FycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0FycmF5KGNsb25lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBcIm1lcmdlXCIgYW4gYXJyYXkgd2l0aCBhIG5vbi1hcnJheSBzbyBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzUGxhaW5PYmplY3QoY2xvbmUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgXCJtZXJnZVwiIGFuIG9iamVjdCB3aXRoIGEgbm9uLW9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgIGNsb25lID0ge307XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBOZXZlciBtb3ZlIHRoZSBvcmlnaW5hbCBvYmplY3RzIGFsd2F5cyBjbG9uZSB0aGVtXHJcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG9iakV4dGVuZChkZWVwLCBjbG9uZSwgbmV3VmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEFzc2lnbiB0aGUgbmV3IChvciBwcmV2aW91cykgdmFsdWUgKHVubGVzcyB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBleHRlbmRlZFtwcm9wXSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGV4dGVuZGVkO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhlbHBlckZ1bmNzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IG9iakZvckVhY2hLZXksIGRlZXBGcmVlemUgfSBmcm9tIFwiLi4vSmF2YVNjcmlwdFNESy9IZWxwZXJGdW5jc1wiO1xyXG4vKipcclxuICogQ3JlYXRlIGFuIGVudW0gc3R5bGUgb2JqZWN0IHdoaWNoIGhhcyBib3RoIHRoZSBrZXkgPT4gdmFsdWUgYW5kIHZhbHVlID0+IGtleSBtYXBwaW5nc1xyXG4gKiBAcGFyYW0gdmFsdWVzIC0gVGhlIHZhbHVlcyB0byBwb3B1bGF0ZSBvbiB0aGUgbmV3IG9iamVjdFxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudW1TdHlsZSh2YWx1ZXMpIHtcclxuICAgIHZhciBlbnVtQ2xhc3MgPSB7fTtcclxuICAgIG9iakZvckVhY2hLZXkodmFsdWVzLCBmdW5jdGlvbiAoZmllbGQsIHZhbHVlKSB7XHJcbiAgICAgICAgZW51bUNsYXNzW2ZpZWxkXSA9IHZhbHVlO1xyXG4gICAgICAgIGVudW1DbGFzc1t2YWx1ZV0gPSBmaWVsZDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRlZXBGcmVlemUoZW51bUNsYXNzKTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlIGEgMiBpbmRleCBtYXAgdGhhdCBtYXBzIGFuIGVudW0ncyBrZXkgYXMgYm90aCB0aGUga2V5IGFuZCB2YWx1ZSwgWFtcImtleVwiXSA9PiBcImtleVwiIGFuZCBYWzBdID0+IFwia2V5b2YgMFwiLlxyXG4gKiBAcGFyYW0gdmFsdWVzIC0gVGhlIHZhbHVlcyB0byBwb3B1bGF0ZSBvbiB0aGUgbmV3IG9iamVjdFxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudW1NYXAodmFsdWVzKSB7XHJcbiAgICB2YXIgbWFwQ2xhc3MgPSB7fTtcclxuICAgIG9iakZvckVhY2hLZXkodmFsdWVzLCBmdW5jdGlvbiAoZmllbGQsIHZhbHVlKSB7XHJcbiAgICAgICAgbWFwQ2xhc3NbZmllbGRdID0gZmllbGQ7XHJcbiAgICAgICAgbWFwQ2xhc3NbdmFsdWVdID0gZmllbGQ7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkZWVwRnJlZXplKG1hcENsYXNzKTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlIGEgMiBpbmRleCBtYXAgdGhhdCBtYXBzIGFuIGVudW0ncyBrZXkgYW5kIHZhbHVlIHRvIHRoZSBkZWZpbmVkIG1hcCB2YWx1ZSwgWFtcImtleVwiXSA9PiBtYXBWYWx1ZSBhbmQgWFswXSA9PiBtYXBWYWx1ZS5cclxuICogR2VuZXJpYyB2YWx1ZXNcclxuICogLSBFID0gdGhlIGNvbnN0IGVudW0gdHlwZSAodHlwZW9mIGVSZXF1ZXN0SGVhZGVycyk7XHJcbiAqIC0gViA9IElkZW50aWZpZXMgdGhlIHZhbGlkIHZhbHVlcyBmb3IgdGhlIGtleXMsIHRoaXMgc2hvdWxkIGluY2x1ZGUgYm90aCB0aGUgZW51bSBudW1lcmljIGFuZCBzdHJpbmcga2V5IG9mIHRoZSB0eXBlLiBUaGVcclxuICogcmVzdWx0aW5nIFwiVmFsdWVcIiBvZiBlYWNoIGVudHJ5IGlkZW50aWZpZXMgdGhlIHZhbGlkIHZhbHVlcyB3aXRoaW5nIHRoZSBhc3NpZ25tZW50cy5cclxuICogQHBhcmFtIHZhbHVlcyAtIFRoZSB2YWx1ZXMgdG8gcG9wdWxhdGUgb24gdGhlIG5ldyBvYmplY3RcclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWYWx1ZU1hcCh2YWx1ZXMpIHtcclxuICAgIHZhciBtYXBDbGFzcyA9IHt9O1xyXG4gICAgb2JqRm9yRWFjaEtleSh2YWx1ZXMsIGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcclxuICAgICAgICBtYXBDbGFzc1tmaWVsZF0gPSB2YWx1ZVsxXTtcclxuICAgICAgICBtYXBDbGFzc1t2YWx1ZVswXV0gPSB2YWx1ZVsxXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRlZXBGcmVlemUobWFwQ2xhc3MpO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudW1IZWxwZXJGdW5jcy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5cInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHsgZ2V0R2xvYmFsLCBzdHJTaGltT2JqZWN0LCBzdHJTaGltUHJvdG90eXBlLCBzdHJTaGltVW5kZWZpbmVkIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgeyBfRFlOX0NBTEwsIF9EWU5fSU5ERVhfT0YsIF9EWU5fTEVOR1RILCBfRFlOX05BTUUsIF9EWU5fU1BMSVQsIF9EWU5fVE9fTE9XRVJfQ0FTRSwgX0RZTl9VU0VSX0FHRU5UIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc1N0cmluZywgaXNVbmRlZmluZWQsIHN0ckNvbnRhaW5zIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0VNUFRZIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuLyoqXHJcbiAqIFRoaXMgZmlsZSBleGlzdHMgdG8gaG9sZCBlbnZpcm9ubWVudCB1dGlsaXRpZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gY2hlY2sgYW5kXHJcbiAqIHZhbGlkYXRlIHRoZSBjdXJyZW50IG9wZXJhdGluZyBlbnZpcm9ubWVudC4gVW5sZXNzIG90aGVyd2lzZSByZXF1aXJlZCwgcGxlYXNlXHJcbiAqIG9ubHkgdXNlIGRlZmluZWQgbWV0aG9kcyAoZnVuY3Rpb25zKSBpbiB0aGlzIGNsYXNzIHNvIHRoYXQgdXNlcnMgb2YgdGhlc2VcclxuICogZnVuY3Rpb25zL3Byb3BlcnRpZXMgb25seSBuZWVkIHRvIGluY2x1ZGUgdGhvc2UgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhlaXIgb3duIG1vZHVsZXMuXHJcbiAqL1xyXG52YXIgc3RyV2luZG93ID0gXCJ3aW5kb3dcIjtcclxudmFyIHN0ckRvY3VtZW50ID0gXCJkb2N1bWVudFwiO1xyXG52YXIgc3RyRG9jdW1lbnRNb2RlID0gXCJkb2N1bWVudE1vZGVcIjtcclxudmFyIHN0ck5hdmlnYXRvciA9IFwibmF2aWdhdG9yXCI7XHJcbnZhciBzdHJIaXN0b3J5ID0gXCJoaXN0b3J5XCI7XHJcbnZhciBzdHJMb2NhdGlvbiA9IFwibG9jYXRpb25cIjtcclxudmFyIHN0ckNvbnNvbGUgPSBcImNvbnNvbGVcIjtcclxudmFyIHN0clBlcmZvcm1hbmNlID0gXCJwZXJmb3JtYW5jZVwiO1xyXG52YXIgc3RySlNPTiA9IFwiSlNPTlwiO1xyXG52YXIgc3RyQ3J5cHRvID0gXCJjcnlwdG9cIjtcclxudmFyIHN0ck1zQ3J5cHRvID0gXCJtc0NyeXB0b1wiO1xyXG52YXIgc3RyUmVhY3ROYXRpdmUgPSBcIlJlYWN0TmF0aXZlXCI7XHJcbnZhciBzdHJNc2llID0gXCJtc2llXCI7XHJcbnZhciBzdHJUcmlkZW50ID0gXCJ0cmlkZW50L1wiO1xyXG52YXIgc3RyWE1MSHR0cFJlcXVlc3QgPSBcIlhNTEh0dHBSZXF1ZXN0XCI7XHJcbnZhciBfaXNUcmlkZW50ID0gbnVsbDtcclxudmFyIF9uYXZVc2VyQWdlbnRDaGVjayA9IG51bGw7XHJcbnZhciBfZW5hYmxlTW9ja3MgPSBmYWxzZTtcclxudmFyIF91c2VYRG9tYWluUmVxdWVzdCA9IG51bGw7XHJcbnZhciBfYmVhY29uc1N1cHBvcnRlZCA9IG51bGw7XHJcbmZ1bmN0aW9uIF9oYXNQcm9wZXJ0eSh0aGVDbGFzcywgcHJvcGVydHkpIHtcclxuICAgIHZhciBzdXBwb3J0ZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGVDbGFzcykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHN1cHBvcnRlZCA9IHByb3BlcnR5IGluIHRoZUNsYXNzO1xyXG4gICAgICAgICAgICBpZiAoIXN1cHBvcnRlZCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHByb3RvID0gdGhlQ2xhc3Nbc3RyU2hpbVByb3RvdHlwZV07XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvdG8pIHtcclxuICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgPSBwcm9wZXJ0eSBpbiBwcm90bztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAvLyBEbyBOb3RoaW5nXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghc3VwcG9ydGVkKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdG1wID0gbmV3IHRoZUNsYXNzKCk7XHJcbiAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgPSAhaXNVbmRlZmluZWQodG1wW3Byb3BlcnR5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIERvIE5vdGhpbmdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdXBwb3J0ZWQ7XHJcbn1cclxuLyoqXHJcbiAqIEVuYWJsZSB0aGUgbG9va3VwIG9mIHRlc3QgbW9jayBvYmplY3RzIGlmIHJlcXVlc3RlZFxyXG4gKiBAcGFyYW0gZW5hYmxlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEVuYWJsZUVudk1vY2tzKGVuYWJsZWQpIHtcclxuICAgIF9lbmFibGVNb2NrcyA9IGVuYWJsZWQ7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybiB0aGUgbmFtZWQgZ2xvYmFsIG9iamVjdCBpZiBhdmFpbGFibGUsIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIG9iamVjdCBpcyBub3QgYXZhaWxhYmxlLlxyXG4gKiBAcGFyYW0gbmFtZSBUaGUgZ2xvYmFsbHkgbmFtZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2xvYmFsSW5zdChuYW1lKSB7XHJcbiAgICB2YXIgZ2JsID0gZ2V0R2xvYmFsKCk7XHJcbiAgICBpZiAoZ2JsICYmIGdibFtuYW1lXSkge1xyXG4gICAgICAgIHJldHVybiBnYmxbbmFtZV07XHJcbiAgICB9XHJcbiAgICAvLyBUZXN0IHdvcmthcm91bmQsIGZvciBlbnZpcm9ubWVudHMgd2hlcmUgPGdsb2JhbD4ud2luZG93ICh3aGVuIGdsb2JhbCA9PSB3aW5kb3cpIGRvZXNuJ3QgcmV0dXJuIHRoZSBiYXNlIHdpbmRvd1xyXG4gICAgaWYgKG5hbWUgPT09IHN0cldpbmRvdyAmJiBoYXNXaW5kb3coKSkge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW5nbGUtYnJhY2tldC10eXBlLWFzc2VydGlvblxyXG4gICAgICAgIHJldHVybiB3aW5kb3c7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIHdpbmRvdyBvYmplY3QgaXMgYXZhaWxhYmxlLCB0aGlzIGlzIHJlcXVpcmVkIGFzIHdlIHN1cHBvcnQgdGhlIEFQSSBydW5uaW5nIHdpdGhvdXQgYVxyXG4gKiB3aW5kb3cgL2RvY3VtZW50IChlZy4gTm9kZSBzZXJ2ZXIsIGVsZWN0cm9uIHdlYndvcmtlcnMpIGFuZCBpZiB3ZSBhdHRlbXB0IHRvIGFzc2lnbiBhIHdpbmRvd1xyXG4gKiBvYmplY3QgdG8gYSBsb2NhbCB2YXJpYWJsZSBvciBwYXNzIGFzIGFuIGFyZ3VtZW50IGFuIFwiVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IHdpbmRvdyBpcyBub3QgZGVmaW5lZFwiXHJcbiAqIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cclxuICogRGVmaW5lZCBhcyBhIGZ1bmN0aW9uIHRvIHN1cHBvcnQgbGF6eSAvIGxhdGUgYmluZGluZyBlbnZpcm9ubWVudHMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzV2luZG93KCkge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odHlwZW9mIHdpbmRvdyA9PT0gc3RyU2hpbU9iamVjdCAmJiB3aW5kb3cpO1xyXG59XHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgd2luZG93IG9iamVjdCBpZiBpdCBpcyBwcmVzZW50IG90aGVyd2lzZSBudWxsLlxyXG4gKiBUaGlzIGhlbHBlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgd2luZG93IG9iamVjdCB3aXRob3V0IGNhdXNpbmcgYW4gZXhjZXB0aW9uXHJcbiAqIFwiVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IHdpbmRvdyBpcyBub3QgZGVmaW5lZFwiXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2luZG93KCkge1xyXG4gICAgaWYgKGhhc1dpbmRvdygpKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIFJldHVybiB0aGUgZ2xvYmFsIGluc3RhbmNlIG9yIG51bGxcclxuICAgIHJldHVybiBnZXRHbG9iYWxJbnN0KHN0cldpbmRvdyk7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrcyBpZiBkb2N1bWVudCBvYmplY3QgaXMgYXZhaWxhYmxlLCB0aGlzIGlzIHJlcXVpcmVkIGFzIHdlIHN1cHBvcnQgdGhlIEFQSSBydW5uaW5nIHdpdGhvdXQgYVxyXG4gKiB3aW5kb3cgL2RvY3VtZW50IChlZy4gTm9kZSBzZXJ2ZXIsIGVsZWN0cm9uIHdlYndvcmtlcnMpIGFuZCBpZiB3ZSBhdHRlbXB0IHRvIGFzc2lnbiBhIGRvY3VtZW50XHJcbiAqIG9iamVjdCB0byBhIGxvY2FsIHZhcmlhYmxlIG9yIHBhc3MgYXMgYW4gYXJndW1lbnQgYW4gXCJVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZG9jdW1lbnQgaXMgbm90IGRlZmluZWRcIlxyXG4gKiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uXHJcbiAqIERlZmluZWQgYXMgYSBmdW5jdGlvbiB0byBzdXBwb3J0IGxhenkgLyBsYXRlIGJpbmRpbmcgZW52aXJvbm1lbnRzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0RvY3VtZW50KCkge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odHlwZW9mIGRvY3VtZW50ID09PSBzdHJTaGltT2JqZWN0ICYmIGRvY3VtZW50KTtcclxufVxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2xvYmFsIGRvY3VtZW50IG9iamVjdCBpZiBpdCBpcyBwcmVzZW50IG90aGVyd2lzZSBudWxsLlxyXG4gKiBUaGlzIGhlbHBlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgZG9jdW1lbnQgb2JqZWN0IHdpdGhvdXQgY2F1c2luZyBhbiBleGNlcHRpb25cclxuICogXCJVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogZG9jdW1lbnQgaXMgbm90IGRlZmluZWRcIlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERvY3VtZW50KCkge1xyXG4gICAgaWYgKGhhc0RvY3VtZW50KCkpIHtcclxuICAgICAgICByZXR1cm4gZG9jdW1lbnQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0R2xvYmFsSW5zdChzdHJEb2N1bWVudCk7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrcyBpZiBuYXZpZ2F0b3Igb2JqZWN0IGlzIGF2YWlsYWJsZSwgdGhpcyBpcyByZXF1aXJlZCBhcyB3ZSBzdXBwb3J0IHRoZSBBUEkgcnVubmluZyB3aXRob3V0IGFcclxuICogd2luZG93IC9kb2N1bWVudCAoZWcuIE5vZGUgc2VydmVyLCBlbGVjdHJvbiB3ZWJ3b3JrZXJzKSBhbmQgaWYgd2UgYXR0ZW1wdCB0byBhc3NpZ24gYSBuYXZpZ2F0b3JcclxuICogb2JqZWN0IHRvIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFzcyBhcyBhbiBhcmd1bWVudCBhbiBcIlVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBuYXZpZ2F0b3IgaXMgbm90IGRlZmluZWRcIlxyXG4gKiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uXHJcbiAqIERlZmluZWQgYXMgYSBmdW5jdGlvbiB0byBzdXBwb3J0IGxhenkgLyBsYXRlIGJpbmRpbmcgZW52aXJvbm1lbnRzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc05hdmlnYXRvcigpIHtcclxuICAgIHJldHVybiBCb29sZWFuKHR5cGVvZiBuYXZpZ2F0b3IgPT09IHN0clNoaW1PYmplY3QgJiYgbmF2aWdhdG9yKTtcclxufVxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2xvYmFsIG5hdmlnYXRvciBvYmplY3QgaWYgaXQgaXMgcHJlc2VudCBvdGhlcndpc2UgbnVsbC5cclxuICogVGhpcyBoZWxwZXIgaXMgdXNlZCB0byBhY2Nlc3MgdGhlIG5hdmlnYXRvciBvYmplY3Qgd2l0aG91dCBjYXVzaW5nIGFuIGV4Y2VwdGlvblxyXG4gKiBcIlVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBuYXZpZ2F0b3IgaXMgbm90IGRlZmluZWRcIlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5hdmlnYXRvcigpIHtcclxuICAgIGlmIChoYXNOYXZpZ2F0b3IoKSkge1xyXG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0R2xvYmFsSW5zdChzdHJOYXZpZ2F0b3IpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgaGlzdG9yeSBvYmplY3QgaXMgYXZhaWxhYmxlLCB0aGlzIGlzIHJlcXVpcmVkIGFzIHdlIHN1cHBvcnQgdGhlIEFQSSBydW5uaW5nIHdpdGhvdXQgYVxyXG4gKiB3aW5kb3cgL2RvY3VtZW50IChlZy4gTm9kZSBzZXJ2ZXIsIGVsZWN0cm9uIHdlYndvcmtlcnMpIGFuZCBpZiB3ZSBhdHRlbXB0IHRvIGFzc2lnbiBhIGhpc3RvcnlcclxuICogb2JqZWN0IHRvIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFzcyBhcyBhbiBhcmd1bWVudCBhbiBcIlVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoaXN0b3J5IGlzIG5vdCBkZWZpbmVkXCJcclxuICogZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLlxyXG4gKiBEZWZpbmVkIGFzIGEgZnVuY3Rpb24gdG8gc3VwcG9ydCBsYXp5IC8gbGF0ZSBiaW5kaW5nIGVudmlyb25tZW50cy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNIaXN0b3J5KCkge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odHlwZW9mIGhpc3RvcnkgPT09IHN0clNoaW1PYmplY3QgJiYgaGlzdG9yeSk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGdsb2JhbCBoaXN0b3J5IG9iamVjdCBpZiBpdCBpcyBwcmVzZW50IG90aGVyd2lzZSBudWxsLlxyXG4gKiBUaGlzIGhlbHBlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvYmplY3Qgd2l0aG91dCBjYXVzaW5nIGFuIGV4Y2VwdGlvblxyXG4gKiBcIlVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBoaXN0b3J5IGlzIG5vdCBkZWZpbmVkXCJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIaXN0b3J5KCkge1xyXG4gICAgaWYgKGhhc0hpc3RvcnkoKSkge1xyXG4gICAgICAgIHJldHVybiBoaXN0b3J5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldEdsb2JhbEluc3Qoc3RySGlzdG9yeSk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGdsb2JhbCBsb2NhdGlvbiBvYmplY3QgaWYgaXQgaXMgcHJlc2VudCBvdGhlcndpc2UgbnVsbC5cclxuICogVGhpcyBoZWxwZXIgaXMgdXNlZCB0byBhY2Nlc3MgdGhlIGxvY2F0aW9uIG9iamVjdCB3aXRob3V0IGNhdXNpbmcgYW4gZXhjZXB0aW9uXHJcbiAqIFwiVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGxvY2F0aW9uIGlzIG5vdCBkZWZpbmVkXCJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbihjaGVja0Zvck1vY2spIHtcclxuICAgIGlmIChjaGVja0Zvck1vY2sgJiYgX2VuYWJsZU1vY2tzKSB7XHJcbiAgICAgICAgdmFyIG1vY2tMb2NhdGlvbiA9IGdldEdsb2JhbEluc3QoXCJfX21vY2tMb2NhdGlvblwiKTtcclxuICAgICAgICBpZiAobW9ja0xvY2F0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2NrTG9jYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBsb2NhdGlvbiA9PT0gc3RyU2hpbU9iamVjdCAmJiBsb2NhdGlvbikge1xyXG4gICAgICAgIHJldHVybiBsb2NhdGlvbjtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXRHbG9iYWxJbnN0KHN0ckxvY2F0aW9uKTtcclxufVxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2xvYmFsIGNvbnNvbGUgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc29sZSgpIHtcclxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gc3RyU2hpbVVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiBjb25zb2xlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldEdsb2JhbEluc3Qoc3RyQ29uc29sZSk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIHBlcmZvcm1hbmNlIG9iamVjdCBpZiBpdCBpcyBwcmVzZW50IG90aGVyd2lzZSBudWxsLlxyXG4gKiBUaGlzIGhlbHBlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgcGVyZm9ybWFuY2Ugb2JqZWN0IGZyb20gdGhlIGN1cnJlbnRcclxuICogZ2xvYmFsIGluc3RhbmNlIHdoaWNoIGNvdWxkIGJlIHdpbmRvdyBvciBnbG9iYWxUaGlzIGZvciBhIHdlYiB3b3JrZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJmb3JtYW5jZSgpIHtcclxuICAgIHJldHVybiBnZXRHbG9iYWxJbnN0KHN0clBlcmZvcm1hbmNlKTtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIEpTT04gb2JqZWN0IGlzIGF2YWlsYWJsZSwgdGhpcyBpcyByZXF1aXJlZCBhcyB3ZSBzdXBwb3J0IHRoZSBBUEkgcnVubmluZyB3aXRob3V0IGFcclxuICogd2luZG93IC9kb2N1bWVudCAoZWcuIE5vZGUgc2VydmVyLCBlbGVjdHJvbiB3ZWJ3b3JrZXJzKSBhbmQgaWYgd2UgYXR0ZW1wdCB0byBhc3NpZ24gYSBoaXN0b3J5XHJcbiAqIG9iamVjdCB0byBhIGxvY2FsIHZhcmlhYmxlIG9yIHBhc3MgYXMgYW4gYXJndW1lbnQgYW4gXCJVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogSlNPTiBpcyBub3QgZGVmaW5lZFwiXHJcbiAqIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cclxuICogRGVmaW5lZCBhcyBhIGZ1bmN0aW9uIHRvIHN1cHBvcnQgbGF6eSAvIGxhdGUgYmluZGluZyBlbnZpcm9ubWVudHMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzSlNPTigpIHtcclxuICAgIHJldHVybiBCb29sZWFuKCh0eXBlb2YgSlNPTiA9PT0gc3RyU2hpbU9iamVjdCAmJiBKU09OKSB8fCBnZXRHbG9iYWxJbnN0KHN0ckpTT04pICE9PSBudWxsKTtcclxufVxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2xvYmFsIEpTT04gb2JqZWN0IGlmIGl0IGlzIHByZXNlbnQgb3RoZXJ3aXNlIG51bGwuXHJcbiAqIFRoaXMgaGVscGVyIGlzIHVzZWQgdG8gYWNjZXNzIHRoZSBKU09OIG9iamVjdCB3aXRob3V0IGNhdXNpbmcgYW4gZXhjZXB0aW9uXHJcbiAqIFwiVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IEpTT04gaXMgbm90IGRlZmluZWRcIlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEpTT04oKSB7XHJcbiAgICBpZiAoaGFzSlNPTigpKSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04gfHwgZ2V0R2xvYmFsSW5zdChzdHJKU09OKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBjcnlwdG8gb2JqZWN0IGlmIGl0IGlzIHByZXNlbnQgb3RoZXJ3aXNlIG51bGwuXHJcbiAqIFRoaXMgaGVscGVyIGlzIHVzZWQgdG8gYWNjZXNzIHRoZSBjcnlwdG8gb2JqZWN0IGZyb20gdGhlIGN1cnJlbnRcclxuICogZ2xvYmFsIGluc3RhbmNlIHdoaWNoIGNvdWxkIGJlIHdpbmRvdyBvciBnbG9iYWxUaGlzIGZvciBhIHdlYiB3b3JrZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDcnlwdG8oKSB7XHJcbiAgICByZXR1cm4gZ2V0R2xvYmFsSW5zdChzdHJDcnlwdG8pO1xyXG59XHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBjcnlwdG8gb2JqZWN0IGlmIGl0IGlzIHByZXNlbnQgb3RoZXJ3aXNlIG51bGwuXHJcbiAqIFRoaXMgaGVscGVyIGlzIHVzZWQgdG8gYWNjZXNzIHRoZSBjcnlwdG8gb2JqZWN0IGZyb20gdGhlIGN1cnJlbnRcclxuICogZ2xvYmFsIGluc3RhbmNlIHdoaWNoIGNvdWxkIGJlIHdpbmRvdyBvciBnbG9iYWxUaGlzIGZvciBhIHdlYiB3b3JrZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRNc0NyeXB0bygpIHtcclxuICAgIHJldHVybiBnZXRHbG9iYWxJbnN0KHN0ck1zQ3J5cHRvKTtcclxufVxyXG4vKipcclxuICogUmV0dXJucyB3aGV0aGVyIHRoZSBlbnZpcm9ubWVudCBpcyByZXBvcnRpbmcgdGhhdCB3ZSBhcmUgcnVubmluZyBpbiBhIFJlYWN0IE5hdGl2ZSBFbnZpcm9ubWVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVhY3ROYXRpdmUoKSB7XHJcbiAgICAvLyBJZiBydW5uaW5nIGluIFJlYWN0IE5hdGl2ZSwgbmF2aWdhdG9yLnByb2R1Y3Qgd2lsbCBiZSBwb3B1bGF0ZWRcclxuICAgIHZhciBuYXYgPSBnZXROYXZpZ2F0b3IoKTtcclxuICAgIGlmIChuYXYgJiYgbmF2LnByb2R1Y3QpIHtcclxuICAgICAgICByZXR1cm4gbmF2LnByb2R1Y3QgPT09IHN0clJlYWN0TmF0aXZlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbi8qKlxyXG4gKiBJZGVudGlmaWVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgYXBwZWFycyB0byBiZSBJRVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSUUoKSB7XHJcbiAgICB2YXIgbmF2ID0gZ2V0TmF2aWdhdG9yKCk7XHJcbiAgICBpZiAobmF2ICYmIChuYXZbX0RZTl9VU0VSX0FHRU5UIC8qIEBtaW46JTJldXNlckFnZW50ICovXSAhPT0gX25hdlVzZXJBZ2VudENoZWNrIHx8IF9pc1RyaWRlbnQgPT09IG51bGwpKSB7XHJcbiAgICAgICAgLy8gQWRkZWQgdG8gc3VwcG9ydCB0ZXN0IG1vY2tpbmcgb2YgdGhlIHVzZXIgYWdlbnRcclxuICAgICAgICBfbmF2VXNlckFnZW50Q2hlY2sgPSBuYXZbX0RZTl9VU0VSX0FHRU5UIC8qIEBtaW46JTJldXNlckFnZW50ICovXTtcclxuICAgICAgICB2YXIgdXNlckFnZW50ID0gKF9uYXZVc2VyQWdlbnRDaGVjayB8fCBTVFJfRU1QVFkpW19EWU5fVE9fTE9XRVJfQ0FTRSAvKiBAbWluOiUyZXRvTG93ZXJDYXNlICovXSgpO1xyXG4gICAgICAgIF9pc1RyaWRlbnQgPSAoc3RyQ29udGFpbnModXNlckFnZW50LCBzdHJNc2llKSB8fCBzdHJDb250YWlucyh1c2VyQWdlbnQsIHN0clRyaWRlbnQpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBfaXNUcmlkZW50O1xyXG59XHJcbi8qKlxyXG4gKiBHZXRzIElFIHZlcnNpb24gcmV0dXJuaW5nIHRoZSBkb2N1bWVudCBlbXVsYXRpb24gbW9kZSBpZiB3ZSBhcmUgcnVubmluZyBvbiBJRSwgb3IgbnVsbCBvdGhlcndpc2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJRVZlcnNpb24odXNlckFnZW50U3RyKSB7XHJcbiAgICBpZiAodXNlckFnZW50U3RyID09PSB2b2lkIDApIHsgdXNlckFnZW50U3RyID0gbnVsbDsgfVxyXG4gICAgaWYgKCF1c2VyQWdlbnRTdHIpIHtcclxuICAgICAgICB2YXIgbmF2aWdhdG9yXzEgPSBnZXROYXZpZ2F0b3IoKSB8fCB7fTtcclxuICAgICAgICB1c2VyQWdlbnRTdHIgPSBuYXZpZ2F0b3JfMSA/IChuYXZpZ2F0b3JfMVtfRFlOX1VTRVJfQUdFTlQgLyogQG1pbjolMmV1c2VyQWdlbnQgKi9dIHx8IFNUUl9FTVBUWSlbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCkgOiBTVFJfRU1QVFk7XHJcbiAgICB9XHJcbiAgICB2YXIgdWEgPSAodXNlckFnZW50U3RyIHx8IFNUUl9FTVBUWSlbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCk7XHJcbiAgICAvLyBBbHNvIGNoZWNrIGZvciBkb2N1bWVudE1vZGUgaW4gY2FzZSBYLVVBLUNvbXBhdGlibGUgbWV0YSB0YWcgd2FzIGluY2x1ZGVkIGluIEhUTUwuXHJcbiAgICBpZiAoc3RyQ29udGFpbnModWEsIHN0ck1zaWUpKSB7XHJcbiAgICAgICAgdmFyIGRvYyA9IGdldERvY3VtZW50KCkgfHwge307XHJcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KHBhcnNlSW50KHVhW19EWU5fU1BMSVQgLyogQG1pbjolMmVzcGxpdCAqL10oc3RyTXNpZSlbMV0pLCAoZG9jW3N0ckRvY3VtZW50TW9kZV0gfHwgMCkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc3RyQ29udGFpbnModWEsIHN0clRyaWRlbnQpKSB7XHJcbiAgICAgICAgdmFyIHRyaWRlbnRWZXIgPSBwYXJzZUludCh1YVtfRFlOX1NQTElUIC8qIEBtaW46JTJlc3BsaXQgKi9dKHN0clRyaWRlbnQpWzFdKTtcclxuICAgICAgICBpZiAodHJpZGVudFZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJpZGVudFZlciArIDQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybnMgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdCBzdWl0YWJsZSBmb3IgZGlhZ25vc3RpY3MgbG9nZ2luZy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkdW1wT2JqKG9iamVjdCkge1xyXG4gICAgdmFyIG9iamVjdFR5cGVEdW1wID0gT2JqZWN0W3N0clNoaW1Qcm90b3R5cGVdLnRvU3RyaW5nW19EWU5fQ0FMTCAvKiBAbWluOiUyZWNhbGwgKi9dKG9iamVjdCk7XHJcbiAgICB2YXIgcHJvcGVydHlWYWx1ZUR1bXAgPSBTVFJfRU1QVFk7XHJcbiAgICBpZiAob2JqZWN0VHlwZUR1bXAgPT09IFwiW29iamVjdCBFcnJvcl1cIikge1xyXG4gICAgICAgIHByb3BlcnR5VmFsdWVEdW1wID0gXCJ7IHN0YWNrOiAnXCIgKyBvYmplY3Quc3RhY2sgKyBcIicsIG1lc3NhZ2U6ICdcIiArIG9iamVjdC5tZXNzYWdlICsgXCInLCBuYW1lOiAnXCIgKyBvYmplY3RbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gKyBcIidcIjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGhhc0pTT04oKSkge1xyXG4gICAgICAgIHByb3BlcnR5VmFsdWVEdW1wID0gZ2V0SlNPTigpLnN0cmluZ2lmeShvYmplY3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iamVjdFR5cGVEdW1wICsgcHJvcGVydHlWYWx1ZUR1bXA7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU2FmYXJpKHVzZXJBZ2VudFN0cikge1xyXG4gICAgaWYgKCF1c2VyQWdlbnRTdHIgfHwgIWlzU3RyaW5nKHVzZXJBZ2VudFN0cikpIHtcclxuICAgICAgICB2YXIgbmF2aWdhdG9yXzIgPSBnZXROYXZpZ2F0b3IoKSB8fCB7fTtcclxuICAgICAgICB1c2VyQWdlbnRTdHIgPSBuYXZpZ2F0b3JfMiA/IChuYXZpZ2F0b3JfMltfRFlOX1VTRVJfQUdFTlQgLyogQG1pbjolMmV1c2VyQWdlbnQgKi9dIHx8IFNUUl9FTVBUWSlbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCkgOiBTVFJfRU1QVFk7XHJcbiAgICB9XHJcbiAgICB2YXIgdWEgPSAodXNlckFnZW50U3RyIHx8IFNUUl9FTVBUWSlbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCk7XHJcbiAgICByZXR1cm4gKHVhW19EWU5fSU5ERVhfT0YgLyogQG1pbjolMmVpbmRleE9mICovXShcInNhZmFyaVwiKSA+PSAwKTtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIEhUTUw1IEJlYWNvbnMgYXJlIHN1cHBvcnRlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdXBwb3J0ZWQsIGZhbHNlIG90aGVyd2lzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0JlYWNvbnNTdXBwb3J0ZWQoKSB7XHJcbiAgICBpZiAoX2JlYWNvbnNTdXBwb3J0ZWQgPT09IG51bGwpIHtcclxuICAgICAgICBfYmVhY29uc1N1cHBvcnRlZCA9IGhhc05hdmlnYXRvcigpICYmIEJvb2xlYW4oZ2V0TmF2aWdhdG9yKCkuc2VuZEJlYWNvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX2JlYWNvbnNTdXBwb3J0ZWQ7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrcyBpZiB0aGUgRmV0Y2ggQVBJIGlzIHN1cHBvcnRlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cclxuICogQHBhcmFtIHdpdGhLZWVwQWxpdmUgLSBbT3B0aW9uYWxdIElmIFRydWUsIGNoZWNrIGlmIGZldGNoIGlzIGF2YWlsYWJsZSBhbmQgaXQgc3VwcG9ydHMgdGhlIGtlZXBhbGl2ZSBmZWF0dXJlLCBvdGhlcndpc2Ugb25seSBjaGVjayBpZiBmZXRjaCBpcyBzdXBwb3J0ZWRcclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdXBwb3J0ZWQsIG90aGVyd2lzZSBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRmV0Y2hTdXBwb3J0ZWQod2l0aEtlZXBBbGl2ZSkge1xyXG4gICAgdmFyIGlzU3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlzU3VwcG9ydGVkID0gISFnZXRHbG9iYWxJbnN0KFwiZmV0Y2hcIik7XHJcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBnZXRHbG9iYWxJbnN0KFwiUmVxdWVzdFwiKTtcclxuICAgICAgICBpZiAoaXNTdXBwb3J0ZWQgJiYgd2l0aEtlZXBBbGl2ZSAmJiByZXF1ZXN0KSB7XHJcbiAgICAgICAgICAgIGlzU3VwcG9ydGVkID0gX2hhc1Byb3BlcnR5KHJlcXVlc3QsIFwia2VlcGFsaXZlXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gSnVzdCBTd2FsbG93IGFueSBmYWlsdXJlIGR1cmluZyBhdmFpbGFiaWxpdHkgY2hlY2tzXHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNTdXBwb3J0ZWQ7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVhEb21haW5SZXF1ZXN0KCkge1xyXG4gICAgaWYgKF91c2VYRG9tYWluUmVxdWVzdCA9PT0gbnVsbCkge1xyXG4gICAgICAgIF91c2VYRG9tYWluUmVxdWVzdCA9ICh0eXBlb2YgWERvbWFpblJlcXVlc3QgIT09IHN0clNoaW1VbmRlZmluZWQpO1xyXG4gICAgICAgIGlmIChfdXNlWERvbWFpblJlcXVlc3QgJiYgaXNYaHJTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgICAgICBfdXNlWERvbWFpblJlcXVlc3QgPSBfdXNlWERvbWFpblJlcXVlc3QgJiYgIV9oYXNQcm9wZXJ0eShnZXRHbG9iYWxJbnN0KHN0clhNTEh0dHBSZXF1ZXN0KSwgXCJ3aXRoQ3JlZGVudGlhbHNcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIF91c2VYRG9tYWluUmVxdWVzdDtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIGlmIFhNTEh0dHBSZXF1ZXN0IGlzIHN1cHBvcnRlZFxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHN1cHBvcnRlZCwgb3RoZXJ3aXNlIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNYaHJTdXBwb3J0ZWQoKSB7XHJcbiAgICB2YXIgaXNTdXBwb3J0ZWQgPSBmYWxzZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgdmFyIHhtbEh0dHBSZXF1ZXN0ID0gZ2V0R2xvYmFsSW5zdChzdHJYTUxIdHRwUmVxdWVzdCk7XHJcbiAgICAgICAgaXNTdXBwb3J0ZWQgPSAhIXhtbEh0dHBSZXF1ZXN0O1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBKdXN0IFN3YWxsb3cgYW55IGZhaWx1cmUgZHVyaW5nIGF2YWlsYWJpbGl0eSBjaGVja3NcclxuICAgIH1cclxuICAgIHJldHVybiBpc1N1cHBvcnRlZDtcclxufVxyXG5mdW5jdGlvbiBfZ2V0TmFtZWRWYWx1ZSh2YWx1ZXMsIG5hbWUpIHtcclxuICAgIGlmICh2YWx1ZXMpIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB2YWx1ZXNbaV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZVtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dID09PSBuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt9O1xyXG59XHJcbi8qKlxyXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZmV0Y2ggdGhlIG5hbWVkIG1ldGEtdGFnIGZyb20gdGhlIHBhZ2UuXHJcbiAqIEBwYXJhbSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmluZE1ldGFUYWcobmFtZSkge1xyXG4gICAgdmFyIGRvYyA9IGdldERvY3VtZW50KCk7XHJcbiAgICBpZiAoZG9jICYmIG5hbWUpIHtcclxuICAgICAgICAvLyBMb29rIGZvciBhIG1ldGEtdGFnXHJcbiAgICAgICAgcmV0dXJuIF9nZXROYW1lZFZhbHVlKGRvYy5xdWVyeVNlbGVjdG9yQWxsKFwibWV0YVwiKSwgbmFtZSkuY29udGVudDtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8qKlxyXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZmV0Y2ggdGhlIG5hbWVkIHNlcnZlciB0aW1pbmcgdmFsdWUgZnJvbSB0aGUgcGFnZSByZXNwb25zZSAoZmlyc3QgbmF2aWdhdGlvbiBldmVudCkuXHJcbiAqIEBwYXJhbSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmluZE5hbWVkU2VydmVyVGltaW5nKG5hbWUpIHtcclxuICAgIHZhciB2YWx1ZTtcclxuICAgIHZhciBwZXJmID0gZ2V0UGVyZm9ybWFuY2UoKTtcclxuICAgIGlmIChwZXJmKSB7XHJcbiAgICAgICAgLy8gVHJ5IGxvb2tpbmcgZm9yIGEgc2VydmVyLXRpbWluZyBoZWFkZXJcclxuICAgICAgICB2YXIgbmF2UGVyZiA9IHBlcmYuZ2V0RW50cmllc0J5VHlwZShcIm5hdmlnYXRpb25cIikgfHwgW107XHJcbiAgICAgICAgdmFsdWUgPSBfZ2V0TmFtZWRWYWx1ZSgobmF2UGVyZltfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwID8gbmF2UGVyZlswXSA6IHt9KS5zZXJ2ZXJUaW1pbmcsIG5hbWUpLmRlc2NyaXB0aW9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudlV0aWxzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IF9EWU5fQVBQTFksIF9EWU5fTEVOR1RIIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBnZXRHbG9iYWxJbnN0IH0gZnJvbSBcIi4vRW52VXRpbHNcIjtcclxudmFyIGxpc3RlbmVyRnVuY3MgPSBbXCJldmVudHNTZW50XCIsIFwiZXZlbnRzRGlzY2FyZGVkXCIsIFwiZXZlbnRzU2VuZFJlcXVlc3RcIiwgXCJwZXJmRXZlbnRcIl07XHJcbnZhciBfYWlOYW1lc3BhY2UgPSBudWxsO1xyXG52YXIgX2RlYnVnTGlzdGVuZXI7XHJcbmZ1bmN0aW9uIF9saXN0ZW5lclByb3h5RnVuYyhuYW1lLCBjb25maWcpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XHJcbiAgICAgICAgdmFyIGRiZ0V4dCA9IGdldERlYnVnRXh0KGNvbmZpZyk7XHJcbiAgICAgICAgaWYgKGRiZ0V4dCkge1xyXG4gICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBkYmdFeHQubGlzdGVuZXI7XHJcbiAgICAgICAgICAgIGlmIChsaXN0ZW5lciAmJiBsaXN0ZW5lcltuYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgbGlzdGVuZXJbbmFtZV1bX0RZTl9BUFBMWSAvKiBAbWluOiUyZWFwcGx5ICovXShsaXN0ZW5lciwgYXJncyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRFeHRlbnNpb25OYW1lc3BhY2UoKSB7XHJcbiAgICAvLyBDYWNoZSB0aGUgbG9va3VwIG9mIHRoZSBnbG9iYWwgbmFtZXNwYWNlIG9iamVjdFxyXG4gICAgdmFyIHRhcmdldCA9IGdldEdsb2JhbEluc3QoXCJNaWNyb3NvZnRcIik7XHJcbiAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgICAgX2FpTmFtZXNwYWNlID0gdGFyZ2V0W1wiQXBwbGljYXRpb25JbnNpZ2h0c1wiXTtcclxuICAgIH1cclxuICAgIHJldHVybiBfYWlOYW1lc3BhY2U7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERlYnVnRXh0KGNvbmZpZykge1xyXG4gICAgdmFyIG5zID0gX2FpTmFtZXNwYWNlO1xyXG4gICAgaWYgKCFucyAmJiBjb25maWcuZGlzYWJsZURiZ0V4dCAhPT0gdHJ1ZSkge1xyXG4gICAgICAgIG5zID0gX2FpTmFtZXNwYWNlIHx8IF9nZXRFeHRlbnNpb25OYW1lc3BhY2UoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBucyA/IG5zW1wiQ2hyb21lRGJnRXh0XCJdIDogbnVsbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVidWdMaXN0ZW5lcihjb25maWcpIHtcclxuICAgIGlmICghX2RlYnVnTGlzdGVuZXIpIHtcclxuICAgICAgICBfZGVidWdMaXN0ZW5lciA9IHt9O1xyXG4gICAgICAgIGZvciAodmFyIGxwID0gMDsgbHAgPCBsaXN0ZW5lckZ1bmNzW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTsgbHArKykge1xyXG4gICAgICAgICAgICBfZGVidWdMaXN0ZW5lcltsaXN0ZW5lckZ1bmNzW2xwXV0gPSBfbGlzdGVuZXJQcm94eUZ1bmMobGlzdGVuZXJGdW5jc1tscF0sIGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9kZWJ1Z0xpc3RlbmVyO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURiZ0V4dGVuc2lvblV0aWxzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcblwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBfRFlOX0RJQUdfTE9HLCBfRFlOX0VOQUJMRV9ERUJVR19FWENFUFRJNCwgX0RZTl9MT0dHRVIsIF9EWU5fTE9HX0lOVEVSTkFMX01FU1NBR0UsIF9EWU5fTUVTU0FHRSwgX0RZTl9NRVNTQUdFX0lELCBfRFlOX1BVU0gsIF9EWU5fUkVQTEFDRSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2V0RGVidWdFeHQgfSBmcm9tIFwiLi9EYmdFeHRlbnNpb25VdGlsc1wiO1xyXG5pbXBvcnQgeyBkdW1wT2JqLCBnZXRDb25zb2xlLCBnZXRKU09OLCBoYXNKU09OIH0gZnJvbSBcIi4vRW52VXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0Q2ZnVmFsdWUsIGlzRnVuY3Rpb24sIGlzVW5kZWZpbmVkIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0VNUFRZLCBTVFJfRVJST1JfVE9fQ09OU09MRSwgU1RSX1dBUk5fVE9fQ09OU09MRSB9IGZyb20gXCIuL0ludGVybmFsQ29uc3RhbnRzXCI7XHJcbi8qKlxyXG4gKiBGb3IgdXNlciBub24gYWN0aW9uYWJsZSB0cmFjZXMgdXNlIEFJIEludGVybmFsIHByZWZpeC5cclxuICovXHJcbnZhciBBaU5vblVzZXJBY3Rpb25hYmxlUHJlZml4ID0gXCJBSSAoSW50ZXJuYWwpOiBcIjtcclxuLyoqXHJcbiAqIFByZWZpeCBvZiB0aGUgdHJhY2VzIGluIHBvcnRhbC5cclxuICovXHJcbnZhciBBaVVzZXJBY3Rpb25hYmxlUHJlZml4ID0gXCJBSTogXCI7XHJcbi8qKlxyXG4gKiAgU2Vzc2lvbiBzdG9yYWdlIGtleSBmb3IgdGhlIHByZWZpeCBmb3IgdGhlIGtleSBpbmRpY2F0aW5nIG1lc3NhZ2UgdHlwZSBhbHJlYWR5IGxvZ2dlZFxyXG4gKi9cclxudmFyIEFJSW50ZXJuYWxNZXNzYWdlUHJlZml4ID0gXCJBSVRSX1wiO1xyXG5mdW5jdGlvbiBfc2FuaXRpemVEaWFnbm9zdGljVGV4dCh0ZXh0KSB7XHJcbiAgICBpZiAodGV4dCkge1xyXG4gICAgICAgIHJldHVybiBcIlxcXCJcIiArIHRleHRbX0RZTl9SRVBMQUNFIC8qIEBtaW46JTJlcmVwbGFjZSAqL10oL1xcXCIvZywgU1RSX0VNUFRZKSArIFwiXFxcIlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFNUUl9FTVBUWTtcclxufVxyXG5mdW5jdGlvbiBfbG9nVG9Db25zb2xlKGZ1bmMsIG1lc3NhZ2UpIHtcclxuICAgIHZhciB0aGVDb25zb2xlID0gZ2V0Q29uc29sZSgpO1xyXG4gICAgaWYgKCEhdGhlQ29uc29sZSkge1xyXG4gICAgICAgIHZhciBsb2dGdW5jID0gXCJsb2dcIjtcclxuICAgICAgICBpZiAodGhlQ29uc29sZVtmdW5jXSkge1xyXG4gICAgICAgICAgICBsb2dGdW5jID0gZnVuYztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhlQ29uc29sZVtsb2dGdW5jXSkpIHtcclxuICAgICAgICAgICAgdGhlQ29uc29sZVtsb2dGdW5jXShtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxudmFyIF9JbnRlcm5hbExvZ01lc3NhZ2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBfSW50ZXJuYWxMb2dNZXNzYWdlKG1zZ0lkLCBtc2csIGlzVXNlckFjdCwgcHJvcGVydGllcykge1xyXG4gICAgICAgIGlmIChpc1VzZXJBY3QgPT09IHZvaWQgMCkgeyBpc1VzZXJBY3QgPSBmYWxzZTsgfVxyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9NRVNTQUdFX0lEIC8qIEBtaW46JTJlbWVzc2FnZUlkICovXSA9IG1zZ0lkO1xyXG4gICAgICAgIF9zZWxmW19EWU5fTUVTU0FHRSAvKiBAbWluOiUyZW1lc3NhZ2UgKi9dID1cclxuICAgICAgICAgICAgKGlzVXNlckFjdCA/IEFpVXNlckFjdGlvbmFibGVQcmVmaXggOiBBaU5vblVzZXJBY3Rpb25hYmxlUHJlZml4KSArXHJcbiAgICAgICAgICAgICAgICBtc2dJZDtcclxuICAgICAgICB2YXIgc3RyUHJvcHMgPSBTVFJfRU1QVFk7XHJcbiAgICAgICAgaWYgKGhhc0pTT04oKSkge1xyXG4gICAgICAgICAgICBzdHJQcm9wcyA9IGdldEpTT04oKS5zdHJpbmdpZnkocHJvcGVydGllcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBkaWFnbm9zdGljVGV4dCA9IChtc2cgPyBcIiBtZXNzYWdlOlwiICsgX3Nhbml0aXplRGlhZ25vc3RpY1RleHQobXNnKSA6IFNUUl9FTVBUWSkgK1xyXG4gICAgICAgICAgICAocHJvcGVydGllcyA/IFwiIHByb3BzOlwiICsgX3Nhbml0aXplRGlhZ25vc3RpY1RleHQoc3RyUHJvcHMpIDogU1RSX0VNUFRZKTtcclxuICAgICAgICBfc2VsZltfRFlOX01FU1NBR0UgLyogQG1pbjolMmVtZXNzYWdlICovXSArPSBkaWFnbm9zdGljVGV4dDtcclxuICAgIH1cclxuICAgIF9JbnRlcm5hbExvZ01lc3NhZ2UuZGF0YVR5cGUgPSBcIk1lc3NhZ2VEYXRhXCI7XHJcbiAgICByZXR1cm4gX0ludGVybmFsTG9nTWVzc2FnZTtcclxufSgpKTtcclxuZXhwb3J0IHsgX0ludGVybmFsTG9nTWVzc2FnZSB9O1xyXG5leHBvcnQgZnVuY3Rpb24gc2FmZUdldExvZ2dlcihjb3JlLCBjb25maWcpIHtcclxuICAgIHJldHVybiAoY29yZSB8fCB7fSlbX0RZTl9MT0dHRVIgLyogQG1pbjolMmVsb2dnZXIgKi9dIHx8IG5ldyBEaWFnbm9zdGljTG9nZ2VyKGNvbmZpZyk7XHJcbn1cclxudmFyIERpYWdub3N0aWNMb2dnZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBEaWFnbm9zdGljTG9nZ2VyKGNvbmZpZykge1xyXG4gICAgICAgIHRoaXMuaWRlbnRpZmllciA9IFwiRGlhZ25vc3RpY0xvZ2dlclwiO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBpbnRlcm5hbCBsb2dnaW5nIHF1ZXVlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5xdWV1ZSA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvdW50IG9mIGludGVybmFsIG1lc3NhZ2VzIHNlbnRcclxuICAgICAgICAgKi9cclxuICAgICAgICB2YXIgX21lc3NhZ2VDb3VudCA9IDA7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBtZXNzYWdlIHR5cGVzIHdlcmUgYWxyZWFkeSBsb2dnZWQgdG8gY29uc29sZSBvciBzZW50IHRvIHNlcnZlci5cclxuICAgICAgICAgKi9cclxuICAgICAgICB2YXIgX21lc3NhZ2VMb2dnZWQgPSB7fTtcclxuICAgICAgICB2YXIgX2xvZ2dpbmdMZXZlbENvbnNvbGU7XHJcbiAgICAgICAgdmFyIF9sb2dnaW5nTGV2ZWxUZWxlbWV0cnk7XHJcbiAgICAgICAgdmFyIF9tYXhJbnRlcm5hbE1lc3NhZ2VMaW1pdDtcclxuICAgICAgICB2YXIgX2VuYWJsZURlYnVnRXhjZXB0aW9ucztcclxuICAgICAgICBkeW5hbWljUHJvdG8oRGlhZ25vc3RpY0xvZ2dlciwgdGhpcywgZnVuY3Rpb24gKF9zZWxmKSB7XHJcbiAgICAgICAgICAgIF9zZXREZWZhdWx0c0Zyb21Db25maWcoY29uZmlnIHx8IHt9KTtcclxuICAgICAgICAgICAgX3NlbGYuY29uc29sZUxvZ2dpbmdMZXZlbCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9sb2dnaW5nTGV2ZWxDb25zb2xlOyB9O1xyXG4gICAgICAgICAgICBfc2VsZi50ZWxlbWV0cnlMb2dnaW5nTGV2ZWwgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBfbG9nZ2luZ0xldmVsVGVsZW1ldHJ5OyB9O1xyXG4gICAgICAgICAgICBfc2VsZi5tYXhJbnRlcm5hbE1lc3NhZ2VMaW1pdCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9tYXhJbnRlcm5hbE1lc3NhZ2VMaW1pdDsgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9FTkFCTEVfREVCVUdfRVhDRVBUSTQgLyogQG1pbjolMmVlbmFibGVEZWJ1Z0V4Y2VwdGlvbnMgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gX2VuYWJsZURlYnVnRXhjZXB0aW9uczsgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgZXhjZXB0aW9ucyBpbiBkZWJ1ZyBtb2RlIG9yIGF0dGVtcHQgdG8gbG9nIHRoZSBlcnJvciBhcyBhIGNvbnNvbGUgd2FybmluZy5cclxuICAgICAgICAgICAgICogQHBhcmFtIHNldmVyaXR5IHtMb2dnaW5nU2V2ZXJpdHl9IC0gVGhlIHNldmVyaXR5IG9mIHRoZSBsb2cgbWVzc2FnZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gbWVzc2FnZSB7X0ludGVybmFsTG9nTWVzc2FnZX0gLSBUaGUgbG9nIG1lc3NhZ2UuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi50aHJvd0ludGVybmFsID0gZnVuY3Rpb24gKHNldmVyaXR5LCBtc2dJZCwgbXNnLCBwcm9wZXJ0aWVzLCBpc1VzZXJBY3QpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1VzZXJBY3QgPT09IHZvaWQgMCkgeyBpc1VzZXJBY3QgPSBmYWxzZTsgfVxyXG4gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBuZXcgX0ludGVybmFsTG9nTWVzc2FnZShtc2dJZCwgbXNnLCBpc1VzZXJBY3QsIHByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9lbmFibGVEZWJ1Z0V4Y2VwdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBkdW1wT2JqKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBsb2dnaW5nIGZ1bmN0aW9uIGFuZCBmYWxsYmFjayB0byB3YXJuVG9Db25zb2xlIG9mIGZvciBzb21lIHJlYXNvbiBlcnJvclRvQ29uc29sZSBkb2Vzbid0IGV4aXN0XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxvZ0Z1bmMgPSBzZXZlcml0eSA9PT0gMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovID8gU1RSX0VSUk9SX1RPX0NPTlNPTEUgOiBTVFJfV0FSTl9UT19DT05TT0xFO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQobWVzc2FnZVtfRFlOX01FU1NBR0UgLyogQG1pbjolMmVtZXNzYWdlICovXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzVXNlckFjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBtZXNzYWdlIHR5cGUgd2FzIGFscmVhZHkgbG9nZ2VkIHRvIGNvbnNvbGUgZm9yIHRoaXMgcGFnZSB2aWV3IGFuZCBpZiBzbywgZG9uJ3QgbG9nIGl0IGFnYWluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUtleSA9ICttZXNzYWdlW19EWU5fTUVTU0FHRV9JRCAvKiBAbWluOiUyZW1lc3NhZ2VJZCAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9tZXNzYWdlTG9nZ2VkW21lc3NhZ2VLZXldICYmIF9sb2dnaW5nTGV2ZWxDb25zb2xlID49IHNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGZbbG9nRnVuY10obWVzc2FnZVtfRFlOX01FU1NBR0UgLyogQG1pbjolMmVtZXNzYWdlICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21lc3NhZ2VMb2dnZWRbbWVzc2FnZUtleV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBsb2cgdHJhY2VzIGlmIHRoZSBjb25zb2xlIExvZ2dpbmcgTGV2ZWwgaXMgPj0gdGhlIHRocm93SW50ZXJuYWwgc2V2ZXJpdHkgbGV2ZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfbG9nZ2luZ0xldmVsQ29uc29sZSA+PSBzZXZlcml0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW2xvZ0Z1bmNdKG1lc3NhZ2VbX0RZTl9NRVNTQUdFIC8qIEBtaW46JTJlbWVzc2FnZSAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9sb2dJbnRlcm5hbE1lc3NhZ2Uoc2V2ZXJpdHksIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2RlYnVnRXh0TXNnKFwidGhyb3dcIiArIChzZXZlcml0eSA9PT0gMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovID8gXCJDcml0aWNhbFwiIDogXCJXYXJuaW5nXCIpLCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBUaGlzIHdpbGwgd3JpdGUgYSB3YXJuaW5nIHRvIHRoZSBjb25zb2xlIGlmIHBvc3NpYmxlXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBtZXNzYWdlIHtzdHJpbmd9IC0gVGhlIHdhcm5pbmcgbWVzc2FnZVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbU1RSX1dBUk5fVE9fQ09OU09MRSAvKiBAbWluOiUyZXdhcm5Ub0NvbnNvbGUgKi9dID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIF9sb2dUb0NvbnNvbGUoXCJ3YXJuXCIsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgX2RlYnVnRXh0TXNnKFwid2FybmluZ1wiLCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFRoaXMgd2lsbCB3cml0ZSBhbiBlcnJvciB0byB0aGUgY29uc29sZSBpZiBwb3NzaWJsZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gbWVzc2FnZSB7c3RyaW5nfSAtIFRoZSBlcnJvciBtZXNzYWdlXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltTVFJfRVJST1JfVE9fQ09OU09MRSAvKiBAbWluOiUyZWVycm9yVG9Db25zb2xlICovXSA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICBfbG9nVG9Db25zb2xlKFwiZXJyb3JcIiwgbWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICBfZGVidWdFeHRNc2coXCJlcnJvclwiLCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgbWVzc2FnZSBjb3VudFxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGYucmVzZXRJbnRlcm5hbE1lc3NhZ2VDb3VudCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIF9tZXNzYWdlQ291bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgX21lc3NhZ2VMb2dnZWQgPSB7fTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIExvZ3MgYSBtZXNzYWdlIHRvIHRoZSBpbnRlcm5hbCBxdWV1ZS5cclxuICAgICAgICAgICAgICogQHBhcmFtIHNldmVyaXR5IHtMb2dnaW5nU2V2ZXJpdHl9IC0gVGhlIHNldmVyaXR5IG9mIHRoZSBsb2cgbWVzc2FnZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gbWVzc2FnZSB7X0ludGVybmFsTG9nTWVzc2FnZX0gLSBUaGUgbWVzc2FnZSB0byBsb2cuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0xPR19JTlRFUk5BTF9NRVNTQUdFIC8qIEBtaW46JTJlbG9nSW50ZXJuYWxNZXNzYWdlICovXSA9IF9sb2dJbnRlcm5hbE1lc3NhZ2U7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9sb2dJbnRlcm5hbE1lc3NhZ2Uoc2V2ZXJpdHksIG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfYXJlSW50ZXJuYWxNZXNzYWdlc1Rocm90dGxlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBtZXNzYWdlIHR5cGUgd2FzIGFscmVhZHkgbG9nZ2VkIGZvciB0aGlzIHNlc3Npb24gYW5kIGlmIHNvLCBkb24ndCBsb2cgaXQgYWdhaW5cclxuICAgICAgICAgICAgICAgIHZhciBsb2dNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlS2V5ID0gQUlJbnRlcm5hbE1lc3NhZ2VQcmVmaXggKyBtZXNzYWdlW19EWU5fTUVTU0FHRV9JRCAvKiBAbWluOiUyZW1lc3NhZ2VJZCAqL107XHJcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBzdG9yYWdlIGlzIG5vdCBhdmFpbGFibGUsIGxpbWl0IHRvIG9ubHkgb25lIG1lc3NhZ2UgdHlwZSBwZXIgcGFnZSB2aWV3XHJcbiAgICAgICAgICAgICAgICBpZiAoX21lc3NhZ2VMb2dnZWRbbWVzc2FnZUtleV0pIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2dNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBfbWVzc2FnZUxvZ2dlZFttZXNzYWdlS2V5XSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAobG9nTWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFB1c2ggdGhlIGV2ZW50IGluIHRoZSBpbnRlcm5hbCBxdWV1ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXZlcml0eSA8PSBfbG9nZ2luZ0xldmVsVGVsZW1ldHJ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLnF1ZXVlW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfbWVzc2FnZUNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9kZWJ1Z0V4dE1zZygoc2V2ZXJpdHkgPT09IDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLyA/IFwiZXJyb3JcIiA6IFwid2FyblwiKSwgbWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhyb3R0bGUgbGltaXQgcmVhY2hlZCwgc2VuZCBhIHNwZWNpYWwgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX21lc3NhZ2VDb3VudCA9PT0gX21heEludGVybmFsTWVzc2FnZUxpbWl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aHJvdHRsZUxpbWl0TWVzc2FnZSA9IFwiSW50ZXJuYWwgZXZlbnRzIHRocm90dGxlIGxpbWl0IHBlciBQYWdlVmlldyByZWFjaGVkIGZvciB0aGlzIGFwcC5cIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRocm90dGxlTWVzc2FnZSA9IG5ldyBfSW50ZXJuYWxMb2dNZXNzYWdlKDIzIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuTWVzc2FnZUxpbWl0UGVyUFZFeGNlZWRlZCAqLywgdGhyb3R0bGVMaW1pdE1lc3NhZ2UsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGYucXVldWVbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10odGhyb3R0bGVNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldmVyaXR5ID09PSAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW1NUUl9FUlJPUl9UT19DT05TT0xFIC8qIEBtaW46JTJlZXJyb3JUb0NvbnNvbGUgKi9dKHRocm90dGxlTGltaXRNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW1NUUl9XQVJOX1RPX0NPTlNPTEUgLyogQG1pbjolMmV3YXJuVG9Db25zb2xlICovXSh0aHJvdHRsZUxpbWl0TWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3NldERlZmF1bHRzRnJvbUNvbmZpZyhjb25maWcpIHtcclxuICAgICAgICAgICAgICAgIF9sb2dnaW5nTGV2ZWxDb25zb2xlID0gZ2V0Q2ZnVmFsdWUoY29uZmlnLmxvZ2dpbmdMZXZlbENvbnNvbGUsIDApO1xyXG4gICAgICAgICAgICAgICAgX2xvZ2dpbmdMZXZlbFRlbGVtZXRyeSA9IGdldENmZ1ZhbHVlKGNvbmZpZy5sb2dnaW5nTGV2ZWxUZWxlbWV0cnksIDEpO1xyXG4gICAgICAgICAgICAgICAgX21heEludGVybmFsTWVzc2FnZUxpbWl0ID0gZ2V0Q2ZnVmFsdWUoY29uZmlnLm1heE1lc3NhZ2VMaW1pdCwgMjUpO1xyXG4gICAgICAgICAgICAgICAgX2VuYWJsZURlYnVnRXhjZXB0aW9ucyA9IGdldENmZ1ZhbHVlKGNvbmZpZ1tfRFlOX0VOQUJMRV9ERUJVR19FWENFUFRJNCAvKiBAbWluOiUyZWVuYWJsZURlYnVnRXhjZXB0aW9ucyAqL10sIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfYXJlSW50ZXJuYWxNZXNzYWdlc1Rocm90dGxlZCgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBfbWVzc2FnZUNvdW50ID49IF9tYXhJbnRlcm5hbE1lc3NhZ2VMaW1pdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZGVidWdFeHRNc2cobmFtZSwgZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGRiZ0V4dCA9IGdldERlYnVnRXh0KGNvbmZpZyB8fCB7fSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGJnRXh0ICYmIGRiZ0V4dFtfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICBkYmdFeHRbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKG5hbWUsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgRGlhZ25vc3RpY0xvZ2dlci5wcm90b3R5cGUuZW5hYmxlRGVidWdFeGNlcHRpb25zLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIERpYWdub3N0aWNMb2dnZXIucHJvdG90eXBlLmNvbnNvbGVMb2dnaW5nTGV2ZWwuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgRGlhZ25vc3RpY0xvZ2dlci5wcm90b3R5cGUudGVsZW1ldHJ5TG9nZ2luZ0xldmVsLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIERpYWdub3N0aWNMb2dnZXIucHJvdG90eXBlLm1heEludGVybmFsTWVzc2FnZUxpbWl0LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIERpYWdub3N0aWNMb2dnZXIucHJvdG90eXBlLnRocm93SW50ZXJuYWwuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgRGlhZ25vc3RpY0xvZ2dlci5wcm90b3R5cGUud2FyblRvQ29uc29sZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBEaWFnbm9zdGljTG9nZ2VyLnByb3RvdHlwZS5lcnJvclRvQ29uc29sZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBEaWFnbm9zdGljTG9nZ2VyLnByb3RvdHlwZS5yZXNldEludGVybmFsTWVzc2FnZUNvdW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIERpYWdub3N0aWNMb2dnZXIucHJvdG90eXBlLmxvZ0ludGVybmFsTWVzc2FnZS5cclxuICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhbiBJRTggYnVnIHdoZW4gdXNpbmcgZHluYW1pY1Byb3RvKCkgd2l0aCBjbGFzc2VzIHRoYXQgZG9uJ3QgaGF2ZSBhbnlcbiAgICAvLyBub24tZHluYW1pYyBmdW5jdGlvbnMgb3Igc3RhdGljIHByb3BlcnRpZXMvZnVuY3Rpb25zIHdoZW4gdXNpbmcgdWdsaWZ5LWpzIHRvIG1pbmlmeSB0aGUgcmVzdWx0aW5nIGNvZGUuXG4gICAgLy8gdGhpcyB3aWxsIGJlIHJlbW92ZWQgd2hlbiBFUzMgc3VwcG9ydCBpcyBkcm9wcGVkLlxuICAgIERpYWdub3N0aWNMb2dnZXIuX19pZUR5bj0xO1xuXG4gICAgcmV0dXJuIERpYWdub3N0aWNMb2dnZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IERpYWdub3N0aWNMb2dnZXIgfTtcclxuZnVuY3Rpb24gX2dldExvZ2dlcihsb2dnZXIpIHtcclxuICAgIHJldHVybiAobG9nZ2VyIHx8IG5ldyBEaWFnbm9zdGljTG9nZ2VyKCkpO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIGlzIGEgaGVscGVyIG1ldGhvZCB3aGljaCB3aWxsIGNhbGwgdGhyb3dJbnRlcm5hbCBvbiB0aGUgcGFzc2VkIGxvZ2dlciwgd2lsbCB0aHJvdyBleGNlcHRpb25zIGluXHJcbiAqIGRlYnVnIG1vZGUgb3IgYXR0ZW1wdCB0byBsb2cgdGhlIGVycm9yIGFzIGEgY29uc29sZSB3YXJuaW5nLiBUaGlzIGhlbHBlciBpcyBwcm92aWRlZCBtb3N0bHkgdG8gYmV0dGVyXHJcbiAqIHN1cHBvcnQgbWluaWZpY2F0aW9uIGFzIGxvZ2dlci50aHJvd0ludGVybmFsKCkgd2lsbCBub3QgY29tcHJlc3MgdGhlIHB1Ymxpc2ggXCJ0aHJvd0ludGVybmFsXCIgdXNlZCB0aHJvdWdob3V0XHJcbiAqIHRoZSBjb2RlLlxyXG4gKiBAcGFyYW0gbG9nZ2VyIC0gVGhlIERpYWdub3N0aWMgTG9nZ2VyIGluc3RhbmNlIHRvIHVzZS5cclxuICogQHBhcmFtIHNldmVyaXR5IHtMb2dnaW5nU2V2ZXJpdHl9IC0gVGhlIHNldmVyaXR5IG9mIHRoZSBsb2cgbWVzc2FnZVxyXG4gKiBAcGFyYW0gbWVzc2FnZSB7X0ludGVybmFsTG9nTWVzc2FnZX0gLSBUaGUgbG9nIG1lc3NhZ2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX3Rocm93SW50ZXJuYWwobG9nZ2VyLCBzZXZlcml0eSwgbXNnSWQsIG1zZywgcHJvcGVydGllcywgaXNVc2VyQWN0KSB7XHJcbiAgICBpZiAoaXNVc2VyQWN0ID09PSB2b2lkIDApIHsgaXNVc2VyQWN0ID0gZmFsc2U7IH1cclxuICAgIF9nZXRMb2dnZXIobG9nZ2VyKS50aHJvd0ludGVybmFsKHNldmVyaXR5LCBtc2dJZCwgbXNnLCBwcm9wZXJ0aWVzLCBpc1VzZXJBY3QpO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIGlzIGEgaGVscGVyIG1ldGhvZCB3aGljaCB3aWxsIGNhbGwgd2FyblRvQ29uc29sZSBvbiB0aGUgcGFzc2VkIGxvZ2dlciB3aXRoIHRoZSBwcm92aWRlZCBtZXNzYWdlLlxyXG4gKiBAcGFyYW0gbG9nZ2VyIC0gVGhlIERpYWdub3N0aWMgTG9nZ2VyIGluc3RhbmNlIHRvIHVzZS5cclxuICogQHBhcmFtIG1lc3NhZ2Uge19JbnRlcm5hbExvZ01lc3NhZ2V9IC0gVGhlIGxvZyBtZXNzYWdlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF93YXJuVG9Db25zb2xlKGxvZ2dlciwgbWVzc2FnZSkge1xyXG4gICAgX2dldExvZ2dlcihsb2dnZXIpW1NUUl9XQVJOX1RPX0NPTlNPTEUgLyogQG1pbjolMmV3YXJuVG9Db25zb2xlICovXShtZXNzYWdlKTtcclxufVxyXG4vKipcclxuICogTG9ncyBhIG1lc3NhZ2UgdG8gdGhlIGludGVybmFsIHF1ZXVlLlxyXG4gKiBAcGFyYW0gbG9nZ2VyIC0gVGhlIERpYWdub3N0aWMgTG9nZ2VyIGluc3RhbmNlIHRvIHVzZS5cclxuICogQHBhcmFtIHNldmVyaXR5IHtMb2dnaW5nU2V2ZXJpdHl9IC0gVGhlIHNldmVyaXR5IG9mIHRoZSBsb2cgbWVzc2FnZVxyXG4gKiBAcGFyYW0gbWVzc2FnZSB7X0ludGVybmFsTG9nTWVzc2FnZX0gLSBUaGUgbWVzc2FnZSB0byBsb2cuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX2xvZ0ludGVybmFsTWVzc2FnZShsb2dnZXIsIHNldmVyaXR5LCBtZXNzYWdlKSB7XHJcbiAgICBfZ2V0TG9nZ2VyKGxvZ2dlcilbX0RZTl9MT0dfSU5URVJOQUxfTUVTU0FHRSAvKiBAbWluOiUyZWxvZ0ludGVybmFsTWVzc2FnZSAqL10oc2V2ZXJpdHksIG1lc3NhZ2UpO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURpYWdub3N0aWNMb2dnZXIuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29yZSwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgX0RZTl9DT01QTEVURSwgX0RZTl9HRVRfQ1RYLCBfRFlOX0lTX0FTWU5DLCBfRFlOX0lTX0NISUxEX0VWVCwgX0RZTl9MRU5HVEgsIF9EWU5fTkFNRSwgX0RZTl9QVVNILCBfRFlOX1NFVF9DVFgsIF9EWU5fVElNRSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZGF0ZU5vdywgaXNBcnJheSwgaXNGdW5jdGlvbiwgb2JqRGVmaW5lQWNjZXNzb3JzIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0dFVF9QRVJGX01HUiwgU1RSX1BFUkZfRVZFTlQgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG52YXIgc3RyRXhlY3V0aW9uQ29udGV4dEtleSA9IFwiY3R4XCI7XHJcbnZhciBzdHJQYXJlbnRDb250ZXh0S2V5ID0gXCJQYXJlbnRDb250ZXh0S2V5XCI7XHJcbnZhciBzdHJDaGlsZHJlbkNvbnRleHRLZXkgPSBcIkNoaWxkcmVuQ29udGV4dEtleVwiO1xyXG52YXIgX2RlZmF1bHRQZXJmTWFuYWdlciA9IG51bGw7XHJcbnZhciBQZXJmRXZlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBQZXJmRXZlbnQobmFtZSwgcGF5bG9hZERldGFpbHMsIGlzQXN5bmMpIHtcclxuICAgICAgICB2YXIgX3NlbGYgPSB0aGlzO1xyXG4gICAgICAgIHZhciBhY2Nlc3NvckRlZmluZWQgPSBmYWxzZTtcclxuICAgICAgICBfc2VsZi5zdGFydCA9IGRhdGVOb3coKTtcclxuICAgICAgICBfc2VsZltfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSA9IG5hbWU7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9JU19BU1lOQyAvKiBAbWluOiUyZWlzQXN5bmMgKi9dID0gaXNBc3luYztcclxuICAgICAgICBfc2VsZltfRFlOX0lTX0NISUxEX0VWVCAvKiBAbWluOiUyZWlzQ2hpbGRFdnQgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH07XHJcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24ocGF5bG9hZERldGFpbHMpKSB7XHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBhY2Nlc3NvciB0byBtaW5pbWl6ZSB0aGUgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcGFjdCBvZiBleGVjdXRpbmcgdGhlIHBheWxvYWREZXRhaWxzIGNhbGxiYWNrXHJcbiAgICAgICAgICAgIHZhciB0aGVEZXRhaWxzXzE7XHJcbiAgICAgICAgICAgIGFjY2Vzc29yRGVmaW5lZCA9IG9iakRlZmluZUFjY2Vzc29ycyhfc2VsZiwgXCJwYXlsb2FkXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIC8vIERlbGF5IHRoZSBleGVjdXRpb24gb2YgdGhlIHBheWxvYWREZXRhaWxzIHVudGlsIG5lZWRlZFxyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGVEZXRhaWxzXzEgJiYgaXNGdW5jdGlvbihwYXlsb2FkRGV0YWlscykpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGVEZXRhaWxzXzEgPSBwYXlsb2FkRGV0YWlscygpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGl0IG91dCBub3cgc28gdGhlIHJlZmVyZW5jZWQgb2JqZWN0cyBjYW4gYmUgZ2FyYmFnZSBjb2xsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkRGV0YWlscyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhlRGV0YWlsc18xO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3NlbGZbX0RZTl9HRVRfQ1RYIC8qIEBtaW46JTJlZ2V0Q3R4ICovXSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgaWYgKGtleSkge1xyXG4gICAgICAgICAgICAgICAgLy8gVGhlIHBhcmVudCBhbmQgY2hpbGQgbGlua3MgYXJlIGxvY2F0ZWQgZGlyZWN0bHkgb24gdGhlIG9iamVjdCAoZm9yIGJldHRlciB2aWV3aW5nIGluIHRoZSBEZWJ1Z1BsdWdpbilcclxuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IFBlcmZFdmVudFtzdHJQYXJlbnRDb250ZXh0S2V5XSB8fCBrZXkgPT09IFBlcmZFdmVudFtzdHJDaGlsZHJlbkNvbnRleHRLZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9zZWxmW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9zZWxmW3N0ckV4ZWN1dGlvbkNvbnRleHRLZXldIHx8IHt9KVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3NlbGZbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXSA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFB1dCB0aGUgcGFyZW50IGFuZCBjaGlsZCBsaW5rcyBkaXJlY3RseSBvbiB0aGUgb2JqZWN0IChmb3IgYmV0dGVyIHZpZXdpbmcgaW4gdGhlIERlYnVnUGx1Z2luKVxyXG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gUGVyZkV2ZW50W3N0clBhcmVudENvbnRleHRLZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2ltcGxlIGFzc3VtcHRpb24sIGlmIHdlIGFyZSBzZXR0aW5nIGEgcGFyZW50IHRoZW4gd2UgbXVzdCBiZSBhIGNoaWxkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfc2VsZltrZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fSVNfQ0hJTERfRVZUIC8qIEBtaW46JTJlaXNDaGlsZEV2dCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0cnVlOyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltrZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXkgPT09IFBlcmZFdmVudFtzdHJDaGlsZHJlbkNvbnRleHRLZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGZba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IF9zZWxmW3N0ckV4ZWN1dGlvbkNvbnRleHRLZXldID0gX3NlbGZbc3RyRXhlY3V0aW9uQ29udGV4dEtleV0gfHwge307XHJcbiAgICAgICAgICAgICAgICAgICAgY3R4W2tleV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3NlbGZbX0RZTl9DT01QTEVURSAvKiBAbWluOiUyZWNvbXBsZXRlICovXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGNoaWxkVGltZSA9IDA7XHJcbiAgICAgICAgICAgIHZhciBjaGlsZEV2dHMgPSBfc2VsZltfRFlOX0dFVF9DVFggLyogQG1pbjolMmVnZXRDdHggKi9dKFBlcmZFdmVudFtzdHJDaGlsZHJlbkNvbnRleHRLZXldKTtcclxuICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2hpbGRFdnRzKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgbHAgPSAwOyBscCA8IGNoaWxkRXZ0c1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107IGxwKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRFdnQgPSBjaGlsZEV2dHNbbHBdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZEV2dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFRpbWUgKz0gY2hpbGRFdnRbX0RZTl9USU1FIC8qIEBtaW46JTJldGltZSAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fVElNRSAvKiBAbWluOiUyZXRpbWUgKi9dID0gZGF0ZU5vdygpIC0gX3NlbGYuc3RhcnQ7XHJcbiAgICAgICAgICAgIF9zZWxmLmV4VGltZSA9IF9zZWxmW19EWU5fVElNRSAvKiBAbWluOiUyZXRpbWUgKi9dIC0gY2hpbGRUaW1lO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0NPTVBMRVRFIC8qIEBtaW46JTJlY29tcGxldGUgKi9dID0gZnVuY3Rpb24gKCkgeyB9O1xyXG4gICAgICAgICAgICBpZiAoIWFjY2Vzc29yRGVmaW5lZCAmJiBpc0Z1bmN0aW9uKHBheWxvYWREZXRhaWxzKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgY291bGRuJ3QgZGVmaW5lIHRoZSBwcm9wZXJ0eSBzZXQgZHVyaW5nIGNvbXBsZXRlIC0tIHRvIG1pbmltaXplIHRoZSBwZXJmIGltcGFjdCB1bnRpbCBhZnRlciB0aGUgdGltZVxyXG4gICAgICAgICAgICAgICAgX3NlbGYucGF5bG9hZCA9IHBheWxvYWREZXRhaWxzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgUGVyZkV2ZW50LlBhcmVudENvbnRleHRLZXkgPSBcInBhcmVudFwiO1xyXG4gICAgUGVyZkV2ZW50LkNoaWxkcmVuQ29udGV4dEtleSA9IFwiY2hpbGRFdnRzXCI7XHJcbiAgICByZXR1cm4gUGVyZkV2ZW50O1xyXG59KCkpO1xyXG5leHBvcnQgeyBQZXJmRXZlbnQgfTtcclxudmFyIFBlcmZNYW5hZ2VyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gUGVyZk1hbmFnZXIobWFuYWdlcikge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEdlbmVyYWwgYnVja2V0IHVzZWQgZm9yIGV4ZWN1dGlvbiBjb250ZXh0IHNldCBhbmQgcmV0cmlldmVkIHZpYSBzZXRDdHgoKSBhbmQgZ2V0Q3R4LlxyXG4gICAgICAgICAqIERlZmluZWQgYXMgcHJpdmF0ZSBzbyBpdCBjYW4gYmUgdmlzdWFsaXplZCB2aWEgdGhlIERlYnVnUGx1Z2luXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jdHggPSB7fTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oUGVyZk1hbmFnZXIsIHRoaXMsIGZ1bmN0aW9uIChfc2VsZikge1xyXG4gICAgICAgICAgICBfc2VsZi5jcmVhdGUgPSBmdW5jdGlvbiAoc3JjLCBwYXlsb2FkRGV0YWlscywgaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgLy8gVE9ETyAoQE1TTmV2KTogYXQgc29tZSBwb2ludCB3ZSB3aWxsIHdhbnQgdG8gYWRkIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiB0byBcInNlbGVjdFwiIHdoaWNoIGV2ZW50cyB0byBpbnN0cnVtZW50XHJcbiAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHRoaXMgaXMganVzdCBhIHNpbXBsZSBkbyBldmVyeXRoaW5nLlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQZXJmRXZlbnQoc3JjLCBwYXlsb2FkRGV0YWlscywgaXNBc3luYyk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmZpcmUgPSBmdW5jdGlvbiAocGVyZkV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGVyZkV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGVyZkV2ZW50W19EWU5fQ09NUExFVEUgLyogQG1pbjolMmVjb21wbGV0ZSAqL10oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWFuYWdlciAmJiBpc0Z1bmN0aW9uKG1hbmFnZXJbU1RSX1BFUkZfRVZFTlQgLyogQG1pbjolMmVwZXJmRXZlbnQgKi9dKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyW1NUUl9QRVJGX0VWRU5UIC8qIEBtaW46JTJlcGVyZkV2ZW50ICovXShwZXJmRXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXSA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IF9zZWxmW3N0ckV4ZWN1dGlvbkNvbnRleHRLZXldID0gX3NlbGZbc3RyRXhlY3V0aW9uQ29udGV4dEtleV0gfHwge307XHJcbiAgICAgICAgICAgICAgICAgICAgY3R4W2tleV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9HRVRfQ1RYIC8qIEBtaW46JTJlZ2V0Q3R4ICovXSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoX3NlbGZbc3RyRXhlY3V0aW9uQ29udGV4dEtleV0gfHwge30pW2tleV07XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgUGVyZk1hbmFnZXIucHJvdG90eXBlLmNyZWF0ZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBQZXJmTWFuYWdlci5wcm90b3R5cGUuZmlyZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBQZXJmTWFuYWdlci5wcm90b3R5cGUuc2V0Q3R4LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFBlcmZNYW5hZ2VyLnByb3RvdHlwZS5nZXRDdHguXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBQZXJmTWFuYWdlci5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gUGVyZk1hbmFnZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFBlcmZNYW5hZ2VyIH07XHJcbnZhciBkb1BlcmZBY3RpdmVLZXkgPSBcIkNvcmVVdGlscy5kb1BlcmZcIjtcclxuLyoqXHJcbiAqIEhlbHBlciBmdW5jdGlvbiB0byB3cmFwIGEgZnVuY3Rpb24gd2l0aCBhIHBlcmYgZXZlbnRcclxuICogQHBhcmFtIG1nclNvdXJjZSAtIFRoZSBQZXJmb3JtYW5jZSBNYW5hZ2VyIG9yIGEgUGVyZm9ybWFuY2UgcHJvdmlkZXIgc291cmNlIChtYXkgYmUgbnVsbClcclxuICogQHBhcmFtIGdldFNvdXJjZSAtIFRoZSBjYWxsYmFjayB0byBjcmVhdGUgdGhlIHNvdXJjZSBuYW1lIGZvciB0aGUgZXZlbnQgKGlmIHBlcmYgbW9uaXRvcmluZyBpcyBlbmFibGVkKVxyXG4gKiBAcGFyYW0gZnVuYyAtIFRoZSBmdW5jdGlvbiB0byBjYWxsIGFuZCBtZWFzdXJlXHJcbiAqIEBwYXJhbSBkZXRhaWxzIC0gQSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHBheWxvYWQgZGV0YWlsc1xyXG4gKiBAcGFyYW0gaXNBc3luYyAtIElzIHRoZSBldmVudCAvIGZ1bmN0aW9uIGJlaW5nIGNhbGwgYXN5bmNocm9ub3VzbHkgb3Igc3luY2hyb25vdXNseVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvUGVyZihtZ3JTb3VyY2UsIGdldFNvdXJjZSwgZnVuYywgZGV0YWlscywgaXNBc3luYykge1xyXG4gICAgaWYgKG1nclNvdXJjZSkge1xyXG4gICAgICAgIHZhciBwZXJmTWdyID0gbWdyU291cmNlO1xyXG4gICAgICAgIGlmIChwZXJmTWdyW1NUUl9HRVRfUEVSRl9NR1JdKSB7XHJcbiAgICAgICAgICAgIC8vIExvb2tzIGxpa2UgYSBwZXJmIG1hbmFnZXIgcHJvdmlkZXIgb2JqZWN0XHJcbiAgICAgICAgICAgIHBlcmZNZ3IgPSBwZXJmTWdyW1NUUl9HRVRfUEVSRl9NR1JdKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwZXJmTWdyKSB7XHJcbiAgICAgICAgICAgIHZhciBwZXJmRXZ0ID0gdm9pZCAwO1xyXG4gICAgICAgICAgICB2YXIgY3VycmVudEFjdGl2ZSA9IHBlcmZNZ3JbX0RZTl9HRVRfQ1RYIC8qIEBtaW46JTJlZ2V0Q3R4ICovXShkb1BlcmZBY3RpdmVLZXkpO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcGVyZkV2dCA9IHBlcmZNZ3IuY3JlYXRlKGdldFNvdXJjZSgpLCBkZXRhaWxzLCBpc0FzeW5jKTtcclxuICAgICAgICAgICAgICAgIGlmIChwZXJmRXZ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRBY3RpdmUgJiYgcGVyZkV2dFtfRFlOX1NFVF9DVFggLyogQG1pbjolMmVzZXRDdHggKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZFdnRbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXShQZXJmRXZlbnRbc3RyUGFyZW50Q29udGV4dEtleV0sIGN1cnJlbnRBY3RpdmUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEFjdGl2ZVtfRFlOX0dFVF9DVFggLyogQG1pbjolMmVnZXRDdHggKi9dICYmIGN1cnJlbnRBY3RpdmVbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gY3VycmVudEFjdGl2ZVtfRFlOX0dFVF9DVFggLyogQG1pbjolMmVnZXRDdHggKi9dKFBlcmZFdmVudFtzdHJDaGlsZHJlbkNvbnRleHRLZXldKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRBY3RpdmVbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXShQZXJmRXZlbnRbc3RyQ2hpbGRyZW5Db250ZXh0S2V5XSwgY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5bX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10ocGVyZkV2dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZXZlbnQgYXMgdGhlIGFjdGl2ZSBldmVudCBub3dcclxuICAgICAgICAgICAgICAgICAgICBwZXJmTWdyW19EWU5fU0VUX0NUWCAvKiBAbWluOiUyZXNldEN0eCAqL10oZG9QZXJmQWN0aXZlS2V5LCBwZXJmRXZ0KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhwZXJmRXZ0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChwZXJmRXZ0ICYmIHBlcmZFdnRbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBlcmZFdnRbX0RZTl9TRVRfQ1RYIC8qIEBtaW46JTJlc2V0Q3R4ICovXShcImV4Y2VwdGlvblwiLCBleCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAvLyBmaXJlIHRoZSBwZXJmIGV2ZW50XHJcbiAgICAgICAgICAgICAgICBpZiAocGVyZkV2dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBlcmZNZ3IuZmlyZShwZXJmRXZ0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBhY3RpdmUgZXZlbnQgdG8gdGhlIHByZXZpb3VzIHZhbHVlXHJcbiAgICAgICAgICAgICAgICBwZXJmTWdyW19EWU5fU0VUX0NUWCAvKiBAbWluOiUyZXNldEN0eCAqL10oZG9QZXJmQWN0aXZlS2V5LCBjdXJyZW50QWN0aXZlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmdW5jKCk7XHJcbn1cclxuLyoqXHJcbiAqIFNldCB0aGUgZ2xvYmFsIHBlcmZvcm1hbmNlIG1hbmFnZXIgdG8gdXNlIHdoZW4gdGhlcmUgaXMgbm8gY29yZSBpbnN0YW5jZSBvciBpdCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0LlxyXG4gKiBAcGFyYW0gcGVyZk1hbmFnZXIgLSBUaGUgSVBlcmZNYW5hZ2VyIGluc3RhbmNlIHRvIHVzZSB3aGVuIG5vIHBlcmZvcm1hbmNlIG1hbmFnZXIgaXMgc3VwcGxpZWQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0R2JsUGVyZk1ncihwZXJmTWFuYWdlcikge1xyXG4gICAgX2RlZmF1bHRQZXJmTWFuYWdlciA9IHBlcmZNYW5hZ2VyO1xyXG59XHJcbi8qKlxyXG4gKiBHZXQgdGhlIGN1cnJlbnQgZ2xvYmFsIHBlcmZvcm1hbmNlIG1hbmFnZXIgdGhhdCB3aWxsIGJlIHVzZWQgd2l0aCBubyBwZXJmb3JtYW5jZSBtYW5hZ2VyIGlzIHN1cHBsaWVkLlxyXG4gKiBAcmV0dXJucyAtIFRoZSBjdXJyZW50IGRlZmF1bHQgbWFuYWdlclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEdibFBlcmZNZ3IoKSB7XHJcbiAgICByZXR1cm4gX2RlZmF1bHRQZXJmTWFuYWdlcjtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1QZXJmTWFuYWdlci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBfRFlOX0xFTkdUSCB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2V0Q3J5cHRvLCBnZXRNc0NyeXB0bywgaXNJRSB9IGZyb20gXCIuL0VudlV0aWxzXCI7XHJcbmltcG9ydCB7IGRhdGVOb3cgfSBmcm9tIFwiLi9IZWxwZXJGdW5jc1wiO1xyXG5pbXBvcnQgeyBTVFJfRU1QVFkgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG52YXIgVUludDMyTWFzayA9IDB4MTAwMDAwMDAwO1xyXG52YXIgTWF4VUludDMyID0gMHhmZmZmZmZmZjtcclxuLy8gTVdDIGJhc2VkIFJhbmRvbSBnZW5lcmF0b3IgKGZvciBJRSlcclxudmFyIF9td2NTZWVkZWQgPSBmYWxzZTtcclxudmFyIF9td2NXID0gMTIzNDU2Nzg5O1xyXG52YXIgX213Y1ogPSA5ODc2NTQzMjE7XHJcbi8vIFRha2VzIGFueSBpbnRlZ2VyXHJcbmZ1bmN0aW9uIF9td2NTZWVkKHNlZWRWYWx1ZSkge1xyXG4gICAgaWYgKHNlZWRWYWx1ZSA8IDApIHtcclxuICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZW5kIHVwIHdpdGggYSBwb3NpdGl2ZSBudW1iZXIgYW5kIG5vdCAtdmUgb25lLlxyXG4gICAgICAgIHNlZWRWYWx1ZSA+Pj49IDA7XHJcbiAgICB9XHJcbiAgICBfbXdjVyA9ICgxMjM0NTY3ODkgKyBzZWVkVmFsdWUpICYgTWF4VUludDMyO1xyXG4gICAgX213Y1ogPSAoOTg3NjU0MzIxIC0gc2VlZFZhbHVlKSAmIE1heFVJbnQzMjtcclxuICAgIF9td2NTZWVkZWQgPSB0cnVlO1xyXG59XHJcbmZ1bmN0aW9uIF9hdXRvU2VlZE13YygpIHtcclxuICAgIC8vIFNpbXBsZSBpbml0aWFsaXphdGlvbiB1c2luZyBkZWZhdWx0IE1hdGgucmFuZG9tKCkgLSBTbyB3ZSBpbmhlcml0IGFueSBlbnRyb3B5IGZyb20gdGhlIGJyb3dzZXJcclxuICAgIC8vIGFuZCBiaXR3aXNlIFhPUiB3aXRoIHRoZSBjdXJyZW50IG1pbGxpc2Vjb25kc1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB2YXIgbm93ID0gZGF0ZU5vdygpICYgMHg3ZmZmZmZmZjtcclxuICAgICAgICBfbXdjU2VlZCgoKE1hdGgucmFuZG9tKCkgKiBVSW50MzJNYXNrKSBeIG5vdykgKyBub3cpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBEb24ndCBjcmFzaCBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZ1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSBhIHJhbmRvbSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIG1heFZhbHVlLCBtYXggdmFsdWUgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gYSAzMi1iaXQgbWF4aW11bS5cclxuICogU28gbWF4VmFsdWUoMTYpIHdpbGwgcHJvZHVjZSBhIG51bWJlciBmcm9tIDAuLjE2IChyYW5nZSBvZiAxNylcclxuICogQHBhcmFtIG1heFZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tVmFsdWUobWF4VmFsdWUpIHtcclxuICAgIGlmIChtYXhWYWx1ZSA+IDApIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigocmFuZG9tMzIoKSAvIE1heFVJbnQzMikgKiAobWF4VmFsdWUgKyAxKSkgPj4+IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxufVxyXG4vKipcclxuICogZ2VuZXJhdGUgYSByYW5kb20gMzItYml0IG51bWJlciAoMHgwMDAwMDAuLjB4RkZGRkZGRkYpIG9yICgtMHg4MDAwMDAwMC4uMHg3RkZGRkZGRiksIGRlZmF1bHRzIHVuLXVuc2lnbmVkLlxyXG4gKiBAcGFyYW0gc2lnbmVkIC0gVHJ1ZSB0byByZXR1cm4gYSBzaWduZWQgMzItYml0IG51bWJlciAoLTB4ODAwMDAwMDAuLjB4N0ZGRkZGRkYpIG90aGVyd2lzZSBhbiB1bnNpZ25lZCBvbmUgKDB4MDAwMDAwLi4weEZGRkZGRkZGKVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbTMyKHNpZ25lZCkge1xyXG4gICAgdmFyIHZhbHVlID0gMDtcclxuICAgIHZhciBjID0gZ2V0Q3J5cHRvKCkgfHwgZ2V0TXNDcnlwdG8oKTtcclxuICAgIGlmIChjICYmIGMuZ2V0UmFuZG9tVmFsdWVzKSB7XHJcbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBudW1iZXIgaXMgY29udmVydGVkIGludG8gdGhlIHNwZWNpZmllZCByYW5nZSAoLTB4ODAwMDAwMDAuLjB4N0ZGRkZGRkYpXHJcbiAgICAgICAgdmFsdWUgPSBjLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMSkpWzBdICYgTWF4VUludDMyO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlID09PSAwICYmIGlzSUUoKSkge1xyXG4gICAgICAgIC8vIEZvciBJRSA2LCA3LCA4IChlc3BlY2lhbGx5IG9uIFhQKSBNYXRoLnJhbmRvbSBpcyBub3QgdmVyeSByYW5kb21cclxuICAgICAgICBpZiAoIV9td2NTZWVkZWQpIHtcclxuICAgICAgICAgICAgLy8gU2V0IHRoZSBzZWVkIGZvciB0aGUgTXdjIGFsZ29yaXRobVxyXG4gICAgICAgICAgICBfYXV0b1NlZWRNd2MoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG9uJ3QgdXNlIE1hdGgucmFuZG9tIGZvciBJRVxyXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgbnVtYmVyIGlzIGNvbnZlcnRlZCBpbnRvIHRoZSBzcGVjaWZpZWQgcmFuZ2UgKC0weDgwMDAwMDAwLi4weDdGRkZGRkZGKVxyXG4gICAgICAgIHZhbHVlID0gbXdjUmFuZG9tMzIoKSAmIE1heFVJbnQzMjtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZSA9PT0gMCkge1xyXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgbnVtYmVyIGlzIGNvbnZlcnRlZCBpbnRvIHRoZSBzcGVjaWZpZWQgcmFuZ2UgKC0weDgwMDAwMDAwLi4weDdGRkZGRkZGKVxyXG4gICAgICAgIHZhbHVlID0gTWF0aC5mbG9vcigoVUludDMyTWFzayAqIE1hdGgucmFuZG9tKCkpIHwgMCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXNpZ25lZCkge1xyXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBlbmQgdXAgd2l0aCBhIHBvc2l0aXZlIG51bWJlciBhbmQgbm90IC12ZSBvbmUuXHJcbiAgICAgICAgdmFsdWUgPj4+PSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbi8qKlxyXG4gKiBTZWVkIHRoZSBNV0MgcmFuZG9tIG51bWJlciBnZW5lcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIHNlZWQgb3IgYSByYW5kb20gdmFsdWVcclxuICogQHBhcmFtIHZhbHVlIC0gb3B0aW9uYWwgdGhlIG51bWJlciB0byB1c2VkIGFzIHRoZSBzZWVkLCBpZiB1bmRlZmluZWQsIG51bGwgb3IgemVybyBhIHJhbmRvbSB2YWx1ZSB3aWxsIGJlIGNob3NlblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG13Y1JhbmRvbVNlZWQodmFsdWUpIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICBfYXV0b1NlZWRNd2MoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIF9td2NTZWVkKHZhbHVlKTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogR2VuZXJhdGUgYSByYW5kb20gMzItYml0IG51bWJlciBiZXR3ZWVuICgweDAwMDAwMC4uMHhGRkZGRkZGRikgb3IgKC0weDgwMDAwMDAwLi4weDdGRkZGRkZGKSwgdXNpbmcgTVdDIChNdWx0aXBseSB3aXRoIGNhcnJ5KVxyXG4gKiBpbnN0ZWFkIG9mIE1hdGgucmFuZG9tKCkgZGVmYXVsdHMgdG8gdW4tc2lnbmVkLlxyXG4gKiBVc2VkIGFzIGEgcmVwbGFjZW1lbnQgcmFuZG9tIGdlbmVyYXRvciBmb3IgSUUgdG8gYXZvaWQgaXNzdWVzIHdpdGggb2xkZXIgSUUgaW5zdGFuY2VzLlxyXG4gKiBAcGFyYW0gc2lnbmVkIC0gVHJ1ZSB0byByZXR1cm4gYSBzaWduZWQgMzItYml0IG51bWJlciAoLTB4ODAwMDAwMDAuLjB4N0ZGRkZGRkYpIG90aGVyd2lzZSBhbiB1bnNpZ25lZCBvbmUgKDB4MDAwMDAwLi4weEZGRkZGRkZGKVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG13Y1JhbmRvbTMyKHNpZ25lZCkge1xyXG4gICAgX213Y1ogPSAoMzY5NjkgKiAoX213Y1ogJiAweEZGRkYpICsgKF9td2NaID4+IDE2KSkgJiBNYXhVSW50MzI7XHJcbiAgICBfbXdjVyA9ICgxODAwMCAqIChfbXdjVyAmIDB4RkZGRikgKyAoX213Y1cgPj4gMTYpKSAmIE1heFVJbnQzMjtcclxuICAgIHZhciB2YWx1ZSA9ICgoKF9td2NaIDw8IDE2KSArIChfbXdjVyAmIDB4RkZGRikpID4+PiAwKSAmIE1heFVJbnQzMiB8IDA7XHJcbiAgICBpZiAoIXNpZ25lZCkge1xyXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBlbmQgdXAgd2l0aCBhIHBvc2l0aXZlIG51bWJlciBhbmQgbm90IC12ZSBvbmUuXHJcbiAgICAgICAgdmFsdWUgPj4+PSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSByYW5kb20gYmFzZTY0IGlkIHN0cmluZy5cclxuICogVGhlIGRlZmF1bHQgbGVuZ3RoIGlzIDIyIHdoaWNoIGlzIDEzMi1iaXRzIHNvIGFsbW9zdCB0aGUgc2FtZSBhcyBhIEdVSUQgYnV0IGFzIGJhc2U2NCAodGhlIHByZXZpb3VzIGRlZmF1bHQgd2FzIDUpXHJcbiAqIEBwYXJhbSBtYXhMZW5ndGggLSBPcHRpb25hbCB2YWx1ZSB0byBzcGVjaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGlkIHRvIGJlIGdlbmVyYXRlZCwgZGVmYXVsdHMgdG8gMjJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBuZXdJZChtYXhMZW5ndGgpIHtcclxuICAgIGlmIChtYXhMZW5ndGggPT09IHZvaWQgMCkgeyBtYXhMZW5ndGggPSAyMjsgfVxyXG4gICAgdmFyIGJhc2U2NGNoYXJzID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXCI7XHJcbiAgICAvLyBTdGFydCB3aXRoIGFuIGluaXRpYWwgcmFuZG9tIG51bWJlciwgY29uc3VtaW5nIHRoZSB2YWx1ZSBpbiByZXZlcnNlIGJ5dGUgb3JkZXJcclxuICAgIHZhciBudW1iZXIgPSByYW5kb20zMigpID4+PiAwOyAvLyBNYWtlIHN1cmUgaXQncyBhICt2ZSBudW1iZXJcclxuICAgIHZhciBjaGFycyA9IDA7XHJcbiAgICB2YXIgcmVzdWx0ID0gU1RSX0VNUFRZO1xyXG4gICAgd2hpbGUgKHJlc3VsdFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPCBtYXhMZW5ndGgpIHtcclxuICAgICAgICBjaGFycysrO1xyXG4gICAgICAgIHJlc3VsdCArPSBiYXNlNjRjaGFycy5jaGFyQXQobnVtYmVyICYgMHgzRik7XHJcbiAgICAgICAgbnVtYmVyID4+Pj0gNjsgLy8gWmVybyBmaWxsIHdpdGggcmlnaHQgc2hpZnRcclxuICAgICAgICBpZiAoY2hhcnMgPT09IDUpIHtcclxuICAgICAgICAgICAgLy8gNSBiYXNlNjQgY2hhcmFjdGVycyA9PT0gMzAgYml0cyBzbyB3ZSBkb24ndCBoYXZlIGVub3VnaCBiaXRzIGZvciBhbm90aGVyIGJhc2U2NCBjaGFyXHJcbiAgICAgICAgICAgIC8vIFNvIGFkZCBvbiBhbm90aGVyIDMwIGJpdHMgYW5kIG1ha2Ugc3VyZSBpdCdzICt2ZVxyXG4gICAgICAgICAgICBudW1iZXIgPSAoKChyYW5kb20zMigpIDw8IDIpICYgMHhGRkZGRkZGRikgfCAobnVtYmVyICYgMHgwMykpID4+PiAwO1xyXG4gICAgICAgICAgICBjaGFycyA9IDA7IC8vIFdlIG5lZWQgdG8gcmVzZXQgdGhlIG51bWJlciBldmVyeSA1IGNoYXJzICgzMCBiaXRzKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmFuZG9tSGVscGVyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IE9iakRlZmluZVByb3BlcnR5IH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgeyBfRFlOX05PREVfVFlQRSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgbm9ybWFsaXplSnNOYW1lIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0VNUFRZIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgbmV3SWQgfSBmcm9tIFwiLi9SYW5kb21IZWxwZXJcIjtcclxudmFyIF9vYmpEZWZpbmVQcm9wZXJ0eSA9IE9iakRlZmluZVByb3BlcnR5O1xyXG52YXIgdmVyc2lvbiA9ICcyLjguOSc7XHJcbnZhciBpbnN0YW5jZU5hbWUgPSBcIi5cIiArIG5ld0lkKDYpO1xyXG52YXIgX2RhdGFVaWQgPSAwO1xyXG5mdW5jdGlvbiBfY3JlYXRlQWNjZXNzb3IodGFyZ2V0LCBwcm9wLCB2YWx1ZSkge1xyXG4gICAgaWYgKF9vYmpEZWZpbmVQcm9wZXJ0eSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIF9vYmpEZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3AsIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gSUU4IERlZmluZXMgYSBkZWZpbmVQcm9wZXJ0eSBvbiBPYmplY3QgYnV0IGl0J3Mgb25seSBzdXBwb3J0ZWQgZm9yIERPTSBlbGVtZW50cyBzbyBpdCB3aWxsIHRocm93XHJcbiAgICAgICAgICAgIC8vIFdlIHdpbGwganVzdCBpZ25vcmUgdGhpcyBoZXJlLlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG4vLyBBY2NlcHRzIG9ubHk6XHJcbi8vICAtIE5vZGVcclxuLy8gICAgLSBOb2RlLkVMRU1FTlRfTk9ERVxyXG4vLyAgICAtIE5vZGUuRE9DVU1FTlRfTk9ERVxyXG4vLyAgLSBPYmplY3RcclxuLy8gICAgLSBBbnlcclxuZnVuY3Rpb24gX2NhbkFjY2VwdERhdGEodGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gdGFyZ2V0W19EWU5fTk9ERV9UWVBFIC8qIEBtaW46JTJlbm9kZVR5cGUgKi9dID09PSAxIHx8IHRhcmdldFtfRFlOX05PREVfVFlQRSAvKiBAbWluOiUyZW5vZGVUeXBlICovXSA9PT0gOSB8fCAhKCt0YXJnZXRbX0RZTl9OT0RFX1RZUEUgLyogQG1pbjolMmVub2RlVHlwZSAqL10pO1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRDYWNoZShkYXRhLCB0YXJnZXQpIHtcclxuICAgIHZhciB0aGVDYWNoZSA9IHRhcmdldFtkYXRhLmlkXTtcclxuICAgIGlmICghdGhlQ2FjaGUpIHtcclxuICAgICAgICB0aGVDYWNoZSA9IHt9O1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChfY2FuQWNjZXB0RGF0YSh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIV9jcmVhdGVBY2Nlc3Nvcih0YXJnZXQsIGRhdGEuaWQsIHRoZUNhY2hlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEVudmlyb25tZW50IGRvZXNuJ3Qgc3VwcG9ydCBhY2Nlc3Nvciwgc28ganVzdCB1c2UgZGlyZWN0IGFzc2lnbm1lbnRcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRbZGF0YS5pZF0gPSB0aGVDYWNoZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAvLyBOb3QgYWxsIGVudmlyb25tZW50cyBhbGxvdyBleHRlbmRpbmcgYWxsIG9iamVjdHMsIHNvIGp1c3QgaWdub3JlIHRoZSBjYWNoZSBpbiB0aG9zZSBjYXNlc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGVDYWNoZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVW5pcXVlTmFtZXNwYWNlKG5hbWUsIGluY2x1ZGVWZXJzaW9uKSB7XHJcbiAgICBpZiAoaW5jbHVkZVZlcnNpb24gPT09IHZvaWQgMCkgeyBpbmNsdWRlVmVyc2lvbiA9IGZhbHNlOyB9XHJcbiAgICByZXR1cm4gbm9ybWFsaXplSnNOYW1lKG5hbWUgKyAoX2RhdGFVaWQrKykgKyAoaW5jbHVkZVZlcnNpb24gPyBcIi5cIiArIHZlcnNpb24gOiBTVFJfRU1QVFkpICsgaW5zdGFuY2VOYW1lKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxtTm9kZURhdGEobmFtZSkge1xyXG4gICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgaWQ6IGNyZWF0ZVVuaXF1ZU5hbWVzcGFjZShcIl9haURhdGEtXCIgKyAobmFtZSB8fCBTVFJfRU1QVFkpICsgXCIuXCIgKyB2ZXJzaW9uKSxcclxuICAgICAgICBhY2NlcHQ6IGZ1bmN0aW9uICh0YXJnZXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF9jYW5BY2NlcHREYXRhKHRhcmdldCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUsIGRlZlZhbHVlLCBhZGREZWZhdWx0KSB7XHJcbiAgICAgICAgICAgIHZhciB0aGVDYWNoZSA9IHRhcmdldFtkYXRhLmlkXTtcclxuICAgICAgICAgICAgaWYgKCF0aGVDYWNoZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFkZERlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTaWRlIGVmZmVjdCBpcyBhZGRzIHRoZSBjYWNoZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoZUNhY2hlID0gX2dldENhY2hlKGRhdGEsIHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhlQ2FjaGVbbm9ybWFsaXplSnNOYW1lKG5hbWUpXSA9IGRlZlZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVDYWNoZVtub3JtYWxpemVKc05hbWUobmFtZSldO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAga2lsbDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkge1xyXG4gICAgICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldFtuYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGFyZ2V0W25hbWVdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBKdXN0IGNsZWFuaW5nIHVwLCBzbyBpZiB0aGlzIGZhaWxzIC0tIGlnbm9yZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiBkYXRhO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGFDYWNoZUhlbHBlci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHsgX0RZTl9DT09LSUVfQ0ZHLCBfRFlOX0lOREVYX09GLCBfRFlOX0xFTkdUSCwgX0RZTl9MT0dHRVIsIF9EWU5fU0VUX0VOQUJMRUQsIF9EWU5fU1BMSVQsIF9EWU5fU1VCU1RSSU5HLCBfRFlOX1VTRVJfQUdFTlQgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IF90aHJvd0ludGVybmFsIH0gZnJvbSBcIi4vRGlhZ25vc3RpY0xvZ2dlclwiO1xyXG5pbXBvcnQgeyBkdW1wT2JqLCBnZXREb2N1bWVudCwgZ2V0TG9jYXRpb24sIGdldE5hdmlnYXRvciwgaXNJRSB9IGZyb20gXCIuL0VudlV0aWxzXCI7XHJcbmltcG9ydCB7IGFyckZvckVhY2gsIGRhdGVOb3csIGdldEV4Y2VwdGlvbk5hbWUsIGlzQXJyYXksIGlzRnVuY3Rpb24sIGlzTm90TnVsbE9yVW5kZWZpbmVkLCBpc051bGxPclVuZGVmaW5lZCwgaXNTdHJpbmcsIGlzVHJ1dGh5LCBpc1VuZGVmaW5lZCwgb2JqRm9yRWFjaEtleSwgc2V0VmFsdWUsIHN0ckNvbnRhaW5zLCBzdHJFbmRzV2l0aCwgc3RyVHJpbSB9IGZyb20gXCIuL0hlbHBlckZ1bmNzXCI7XHJcbmltcG9ydCB7IFNUUl9FTVBUWSB9IGZyb20gXCIuL0ludGVybmFsQ29uc3RhbnRzXCI7XHJcbnZhciBzdHJUb0dNVFN0cmluZyA9IFwidG9HTVRTdHJpbmdcIjtcclxudmFyIHN0clRvVVRDU3RyaW5nID0gXCJ0b1VUQ1N0cmluZ1wiO1xyXG52YXIgc3RyQ29va2llID0gXCJjb29raWVcIjtcclxudmFyIHN0ckV4cGlyZXMgPSBcImV4cGlyZXNcIjtcclxudmFyIHN0ckVuYWJsZWQgPSBcImVuYWJsZWRcIjtcclxudmFyIHN0cklzQ29va2llVXNlRGlzYWJsZWQgPSBcImlzQ29va2llVXNlRGlzYWJsZWRcIjtcclxudmFyIHN0ckRpc2FibGVDb29raWVzVXNhZ2UgPSBcImRpc2FibGVDb29raWVzVXNhZ2VcIjtcclxudmFyIHN0ckNvbmZpZ0Nvb2tpZU1nciA9IFwiX2NrTWdyXCI7XHJcbnZhciBfc3VwcG9ydHNDb29raWVzID0gbnVsbDtcclxudmFyIF9hbGxvd1VhU2FtZVNpdGUgPSBudWxsO1xyXG52YXIgX3BhcnNlZENvb2tpZVZhbHVlID0gbnVsbDtcclxudmFyIF9kb2MgPSBnZXREb2N1bWVudCgpO1xyXG52YXIgX2Nvb2tpZUNhY2hlID0ge307XHJcbnZhciBfZ2xvYmFsQ29va2llQ29uZmlnID0ge307XHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqIERPIE5PVCBVU0Ugb3IgZXhwb3J0IGZyb20gdGhlIG1vZHVsZSwgdGhpcyBpcyBleHBvc2VkIGFzIHB1YmxpYyB0byBzdXBwb3J0IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb2YgcHJldmlvdXMgc3RhdGljIHV0aWxpdHkgbWV0aG9kcyBvbmx5LlxyXG4gKiBJZiB5b3Ugd2FudCB0byBtYW5hZ2VyIGNvb2tpZXMgZWl0aGVyIHVzZSB0aGUgSUNvb2tpZU1nciBhdmFpbGFibGUgZnJvbSB0aGUgY29yZSBpbnN0YW5jZSB2aWEgZ2V0Q29va2llTWdyKCkgb3IgY3JlYXRlXHJcbiAqIHlvdXIgb3duIGluc3RhbmNlIG9mIHRoZSBDb29raWVNZ3IgYW5kIHVzZSB0aGF0LlxyXG4gKiBVc2luZyB0aGlzIGRpcmVjdGx5IGZvciBlbmFibGluZyAvIGRpc2FibGluZyBjb29raWUgaGFuZGxpbmcgd2lsbCBub3Qgb25seSBhZmZlY3QgeW91ciB1c2FnZSBidXQgRVZFUlkgdXNlciBvZiBjb29raWVzLlxyXG4gKiBFeGFtcGxlLCBpZiB5b3UgYXJlIHVzaW5nIGEgc2hhcmVkIGNvbXBvbmVudCB0aGF0IGlzIGFsc28gdXNpbmcgQXBwbGljYXRpb24gSW5zaWdodHMgeW91IHdpbGwgYWZmZWN0IHRoZWlyIGNvb2tpZSBoYW5kbGluZy5cclxuICogQHBhcmFtIGxvZ2dlciAtIFRoZSBEaWFnbm9zdGljTG9nZ2VyIHRvIHVzZSBmb3IgcmVwb3J0aW5nIGVycm9ycy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfZ2JsQ29va2llTWdyKGNvbmZpZywgbG9nZ2VyKSB7XHJcbiAgICAvLyBTdGFzaCB0aGUgZ2xvYmFsIGluc3RhbmNlIGFnYWluc3QgdGhlIEJhc2VDb29raWVNZ3IgY2xhc3NcclxuICAgIHZhciBpbnN0ID0gY3JlYXRlQ29va2llTWdyW3N0ckNvbmZpZ0Nvb2tpZU1ncl0gfHwgX2dsb2JhbENvb2tpZUNvbmZpZ1tzdHJDb25maWdDb29raWVNZ3JdO1xyXG4gICAgaWYgKCFpbnN0KSB7XHJcbiAgICAgICAgLy8gTm90ZTogbm90IHVzaW5nIHRoZSBnZXRTZXRWYWx1ZSgpIGhlbHBlciBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgYWx3YXlzIGNyZWF0aW5nIGEgdGVtcG9yYXJ5IGNvb2tpZU1nclxyXG4gICAgICAgIC8vIHRoYXQgdWx0aW1hdGVseSBpcyBuZXZlciB1c2VkXHJcbiAgICAgICAgaW5zdCA9IGNyZWF0ZUNvb2tpZU1ncltzdHJDb25maWdDb29raWVNZ3JdID0gY3JlYXRlQ29va2llTWdyKGNvbmZpZywgbG9nZ2VyKTtcclxuICAgICAgICBfZ2xvYmFsQ29va2llQ29uZmlnW3N0ckNvbmZpZ0Nvb2tpZU1ncl0gPSBpbnN0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluc3Q7XHJcbn1cclxuZnVuY3Rpb24gX2lzTWdyRW5hYmxlZChjb29raWVNZ3IpIHtcclxuICAgIGlmIChjb29raWVNZ3IpIHtcclxuICAgICAgICByZXR1cm4gY29va2llTWdyLmlzRW5hYmxlZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuZnVuY3Rpb24gX2NyZWF0ZUNvb2tpZU1nckNvbmZpZyhyb290Q29uZmlnKSB7XHJcbiAgICB2YXIgY29va2llTWdyQ2ZnID0gcm9vdENvbmZpZ1tfRFlOX0NPT0tJRV9DRkcgLyogQG1pbjolMmVjb29raWVDZmcgKi9dID0gcm9vdENvbmZpZ1tfRFlOX0NPT0tJRV9DRkcgLyogQG1pbjolMmVjb29raWVDZmcgKi9dIHx8IHt9O1xyXG4gICAgLy8gU2V0cyB0aGUgdmFsdWVzIGZyb20gdGhlIHJvb3QgY29uZmlnIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQgb24gdGhlIGNvb2tpZU1nckNmZ1xyXG4gICAgc2V0VmFsdWUoY29va2llTWdyQ2ZnLCBcImRvbWFpblwiLCByb290Q29uZmlnLmNvb2tpZURvbWFpbiwgaXNOb3ROdWxsT3JVbmRlZmluZWQsIGlzTnVsbE9yVW5kZWZpbmVkKTtcclxuICAgIHNldFZhbHVlKGNvb2tpZU1nckNmZywgXCJwYXRoXCIsIHJvb3RDb25maWcuY29va2llUGF0aCB8fCBcIi9cIiwgbnVsbCwgaXNOdWxsT3JVbmRlZmluZWQpO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGNvb2tpZU1nckNmZ1tzdHJFbmFibGVkXSkpIHtcclxuICAgICAgICAvLyBTZXQgdGhlIGVuYWJsZWQgZnJvbSB0aGUgcHJvdmlkZWQgc2V0dGluZyBvciB0aGUgbGVnYWN5IHJvb3QgdmFsdWVzXHJcbiAgICAgICAgdmFyIGNvb2tpZUVuYWJsZWQgPSB2b2lkIDA7XHJcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChyb290Q29uZmlnW3N0cklzQ29va2llVXNlRGlzYWJsZWRdKSkge1xyXG4gICAgICAgICAgICBjb29raWVFbmFibGVkID0gIXJvb3RDb25maWdbc3RySXNDb29raWVVc2VEaXNhYmxlZF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQocm9vdENvbmZpZ1tzdHJEaXNhYmxlQ29va2llc1VzYWdlXSkpIHtcclxuICAgICAgICAgICAgY29va2llRW5hYmxlZCA9ICFyb290Q29uZmlnW3N0ckRpc2FibGVDb29raWVzVXNhZ2VdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb29raWVNZ3JDZmdbc3RyRW5hYmxlZF0gPSBjb29raWVFbmFibGVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvb2tpZU1nckNmZztcclxufVxyXG5mdW5jdGlvbiBfaXNJZ25vcmVkQ29va2llKGNvb2tpZU1nckNmZywgbmFtZSkge1xyXG4gICAgaWYgKG5hbWUgJiYgY29va2llTWdyQ2ZnICYmIGlzQXJyYXkoY29va2llTWdyQ2ZnLmlnbm9yZUNvb2tpZXMpKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvb2tpZU1nckNmZy5pZ25vcmVDb29raWVzW19EWU5fSU5ERVhfT0YgLyogQG1pbjolMmVpbmRleE9mICovXShuYW1lKSAhPT0gLTE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gX2lzQmxvY2tlZENvb2tpZShjb29raWVNZ3JDZmcsIG5hbWUpIHtcclxuICAgIGlmIChuYW1lICYmIGNvb2tpZU1nckNmZyAmJiBpc0FycmF5KGNvb2tpZU1nckNmZy5ibG9ja2VkQ29va2llcykpIHtcclxuICAgICAgICBpZiAoY29va2llTWdyQ2ZnLmJsb2NrZWRDb29raWVzW19EWU5fSU5ERVhfT0YgLyogQG1pbjolMmVpbmRleE9mICovXShuYW1lKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9pc0lnbm9yZWRDb29raWUoY29va2llTWdyQ2ZnLCBuYW1lKTtcclxufVxyXG4vKipcclxuICogSGVscGVyIHRvIHJldHVybiB0aGUgSUNvb2tpZU1nciBmcm9tIHRoZSBjb3JlIChpZiBub3QgbnVsbC91bmRlZmluZWQpIG9yIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvblxyXG4gKiBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gb3IgYSBsZWdhY3kgZGVmYXVsdC5cclxuICogQHBhcmFtIGNvcmVcclxuICogQHBhcmFtIGNvbmZpZ1xyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVHZXRDb29raWVNZ3IoY29yZSwgY29uZmlnKSB7XHJcbiAgICB2YXIgY29va2llTWdyO1xyXG4gICAgaWYgKGNvcmUpIHtcclxuICAgICAgICAvLyBBbHdheXMgcmV0dXJucyBhbiBpbnN0YW5jZVxyXG4gICAgICAgIGNvb2tpZU1nciA9IGNvcmUuZ2V0Q29va2llTWdyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb25maWcpIHtcclxuICAgICAgICB2YXIgY29va2llQ2ZnID0gY29uZmlnW19EWU5fQ09PS0lFX0NGRyAvKiBAbWluOiUyZWNvb2tpZUNmZyAqL107XHJcbiAgICAgICAgaWYgKGNvb2tpZUNmZ1tzdHJDb25maWdDb29raWVNZ3JdKSB7XHJcbiAgICAgICAgICAgIGNvb2tpZU1nciA9IGNvb2tpZUNmZ1tzdHJDb25maWdDb29raWVNZ3JdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29va2llTWdyID0gY3JlYXRlQ29va2llTWdyKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFjb29raWVNZ3IpIHtcclxuICAgICAgICAvLyBHZXQgb3IgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBnbG9iYWwgKGxlZ2FjeSkgY29va2llIG1hbmFnZXIgaWYgd2UgY291bGRuJ3QgZmluZCBvbmVcclxuICAgICAgICBjb29raWVNZ3IgPSBfZ2JsQ29va2llTWdyKGNvbmZpZywgKGNvcmUgfHwge30pW19EWU5fTE9HR0VSIC8qIEBtaW46JTJlbG9nZ2VyICovXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29va2llTWdyO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb29raWVNZ3Iocm9vdENvbmZpZywgbG9nZ2VyKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICB2YXIgY29va2llTWdyQ29uZmlnID0gX2NyZWF0ZUNvb2tpZU1nckNvbmZpZyhyb290Q29uZmlnIHx8IF9nbG9iYWxDb29raWVDb25maWcpO1xyXG4gICAgdmFyIF9wYXRoID0gY29va2llTWdyQ29uZmlnLnBhdGggfHwgXCIvXCI7XHJcbiAgICB2YXIgX2RvbWFpbiA9IGNvb2tpZU1nckNvbmZpZy5kb21haW47XHJcbiAgICAvLyBFeHBsaWNpdGx5IGNoZWNraW5nIGFnYWluc3QgZmFsc2UsIHNvIHRoYXQgc2V0dGluZyB0byB1bmRlZmluZWQgd2lsbCA9PT0gdHJ1ZVxyXG4gICAgdmFyIF9lbmFibGVkID0gY29va2llTWdyQ29uZmlnW3N0ckVuYWJsZWRdICE9PSBmYWxzZTtcclxuICAgIHZhciBjb29raWVNZ3IgPSAoX2EgPSB7XHJcbiAgICAgICAgICAgIGlzRW5hYmxlZDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVuYWJsZWQgPSBfZW5hYmxlZCAmJiBhcmVDb29raWVzU3VwcG9ydGVkKGxvZ2dlcik7XHJcbiAgICAgICAgICAgICAgICAvLyBVc2luZyBhbiBpbmRpcmVjdCBsb29rdXAgZm9yIGFueSBnbG9iYWwgY29va2llIG1hbmFnZXIgdG8gc3VwcG9ydCB0cmVlIHNoYWtpbmcgZm9yIFNESydzXHJcbiAgICAgICAgICAgICAgICAvLyB0aGF0IGRvbid0IHVzZSB0aGUgXCJhcHBsaWNhdGlvbmluc2lnaHRzLWNvcmVcIiB2ZXJzaW9uIG9mIHRoZSBkZWZhdWx0IGNvb2tpZSBmdW5jdGlvblxyXG4gICAgICAgICAgICAgICAgdmFyIGdibE1hbmFnZXIgPSBfZ2xvYmFsQ29va2llQ29uZmlnW3N0ckNvbmZpZ0Nvb2tpZU1ncl07XHJcbiAgICAgICAgICAgICAgICBpZiAoZW5hYmxlZCAmJiBnYmxNYW5hZ2VyICYmIGNvb2tpZU1nciAhPT0gZ2JsTWFuYWdlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgR2xvYmFsQ29va2llIE1hbmFnZXIgaW5zdGFuY2UgKGlmIG5vdCB0aGlzIGluc3RhbmNlKSBpcyBhbHNvIGVuYWJsZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQXMgdGhlIGdsb2JhbCAoZGVwcmVjYXRlZCkgZnVuY3Rpb25zIG1heSBoYXZlIGJlZW4gY2FsbGVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVkID0gX2lzTWdyRW5hYmxlZChnYmxNYW5hZ2VyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBlbmFibGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBfYVtfRFlOX1NFVF9FTkFCTEVEIC8qIEBtaW46c2V0RW5hYmxlZCAqL10gPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgLy8gRXhwbGljaXRseSBjaGVja2luZyBhZ2FpbnN0IGZhbHNlLCBzbyB0aGF0IHNldHRpbmcgdG8gdW5kZWZpbmVkIHdpbGwgPT09IHRydWVcclxuICAgICAgICAgICAgX2VuYWJsZWQgPSB2YWx1ZSAhPT0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBfYS5zZXQgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUsIG1heEFnZVNlYywgZG9tYWluLCBwYXRoKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKF9pc01nckVuYWJsZWQoY29va2llTWdyKSAmJiAhX2lzQmxvY2tlZENvb2tpZShjb29raWVNZ3JDb25maWcsIG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0ge307XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlVmFsdWUgPSBzdHJUcmltKHZhbHVlIHx8IFNUUl9FTVBUWSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gdGhlVmFsdWVbX0RZTl9JTkRFWF9PRiAvKiBAbWluOiUyZWluZGV4T2YgKi9dKFwiO1wiKTtcclxuICAgICAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhlVmFsdWUgPSBzdHJUcmltKHZhbHVlW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgwLCBpZHgpKTtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBfZXh0cmFjdFBhcnRzKHZhbHVlW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXShpZHggKyAxKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBkb21haW4gaWYgbm90IGFscmVhZHkgcHJlc2VudCAoaXNVbmRlZmluZWQpIGFuZCB0aGUgdmFsdWUgaXMgdHJ1dGh5IChub3QgbnVsbCwgdW5kZWZpbmVkIG9yIGVtcHR5IHN0cmluZylcclxuICAgICAgICAgICAgICAgIHNldFZhbHVlKHZhbHVlcywgXCJkb21haW5cIiwgZG9tYWluIHx8IF9kb21haW4sIGlzVHJ1dGh5LCBpc1VuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1heEFnZVNlYykpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgX2lzSUUgPSBpc0lFKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlc1tzdHJFeHBpcmVzXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5vd01zID0gZGF0ZU5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGFkZCBleHBpcmVzIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGlyZU1zID0gbm93TXMgKyAobWF4QWdlU2VjICogMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhbml0eSBjaGVjaywgaWYgemVybyBvciAtdmUgdGhlbiBpZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGlyZU1zID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGlyeSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcnkuc2V0VGltZShleHBpcmVNcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh2YWx1ZXMsIHN0ckV4cGlyZXMsIF9mb3JtYXREYXRlKGV4cGlyeSwgIV9pc0lFID8gc3RyVG9VVENTdHJpbmcgOiBzdHJUb0dNVFN0cmluZykgfHwgX2Zvcm1hdERhdGUoZXhwaXJ5LCBfaXNJRSA/IHN0clRvR01UU3RyaW5nIDogc3RyVG9VVENTdHJpbmcpIHx8IFNUUl9FTVBUWSwgaXNUcnV0aHkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX2lzSUUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSByZXBsYWNlIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodmFsdWVzLCBcIm1heC1hZ2VcIiwgU1RSX0VNUFRZICsgbWF4QWdlU2VjLCBudWxsLCBpc1VuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uXzEgPSBnZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uXzEgJiYgbG9jYXRpb25fMS5wcm90b2NvbCA9PT0gXCJodHRwczpcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKHZhbHVlcywgXCJzZWN1cmVcIiwgbnVsbCwgbnVsbCwgaXNVbmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2V0IHNhbWUgc2l0ZSBpZiBub3QgYWxzbyBzZWN1cmVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2FsbG93VWFTYW1lU2l0ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYWxsb3dVYVNhbWVTaXRlID0gIXVhRGlzYWxsb3dzU2FtZVNpdGVOb25lKChnZXROYXZpZ2F0b3IoKSB8fCB7fSlbX0RZTl9VU0VSX0FHRU5UIC8qIEBtaW46JTJldXNlckFnZW50ICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfYWxsb3dVYVNhbWVTaXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKHZhbHVlcywgXCJTYW1lU2l0ZVwiLCBcIk5vbmVcIiwgbnVsbCwgaXNVbmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNldFZhbHVlKHZhbHVlcywgXCJwYXRoXCIsIHBhdGggfHwgX3BhdGgsIG51bGwsIGlzVW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgIHZhciBzZXRDb29raWVGbiA9IGNvb2tpZU1nckNvbmZpZy5zZXRDb29raWUgfHwgX3NldENvb2tpZVZhbHVlO1xyXG4gICAgICAgICAgICAgICAgc2V0Q29va2llRm4obmFtZSwgX2Zvcm1hdENvb2tpZVZhbHVlKHRoZVZhbHVlLCB2YWx1ZXMpKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIF9hLmdldCA9IGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IFNUUl9FTVBUWTtcclxuICAgICAgICAgICAgaWYgKF9pc01nckVuYWJsZWQoY29va2llTWdyKSAmJiAhX2lzSWdub3JlZENvb2tpZShjb29raWVNZ3JDb25maWcsIG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IChjb29raWVNZ3JDb25maWcuZ2V0Q29va2llIHx8IF9nZXRDb29raWVWYWx1ZSkobmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgX2EuZGVsID0gZnVuY3Rpb24gKG5hbWUsIHBhdGgpIHtcclxuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoX2lzTWdyRW5hYmxlZChjb29raWVNZ3IpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBPbmx5IHJlbW92ZSB0aGUgY29va2llIGlmIHRoZSBtYW5hZ2VyIGFuZCBjb29raWUgc3VwcG9ydCBoYXMgbm90IGJlZW4gZGlzYWJsZWRcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvb2tpZU1nci5wdXJnZShuYW1lLCBwYXRoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgX2EucHVyZ2UgPSBmdW5jdGlvbiAobmFtZSwgcGF0aCkge1xyXG4gICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKGFyZUNvb2tpZXNTdXBwb3J0ZWQobG9nZ2VyKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgZXhwaXJhdGlvbiBkYXRlIGluIHRoZSBwYXN0IGltbWVkaWF0ZWx5IHJlbW92ZXMgdGhlIGNvb2tpZVxyXG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgIF9hW1wicGF0aFwiXSA9IHBhdGggPyBwYXRoIDogXCIvXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgX2Fbc3RyRXhwaXJlc10gPSBcIlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgX2EpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0lFKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgbWF4IGFnZSB0byBleHBpcmUgbm93XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzW1wibWF4LWFnZVwiXSA9IFwiMFwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGRlbENvb2tpZSA9IGNvb2tpZU1nckNvbmZpZy5kZWxDb29raWUgfHwgX3NldENvb2tpZVZhbHVlO1xyXG4gICAgICAgICAgICAgICAgZGVsQ29va2llKG5hbWUsIF9mb3JtYXRDb29raWVWYWx1ZShTVFJfRU1QVFksIHZhbHVlcykpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgX2EpO1xyXG4gICAgLy8gQXNzb2NpYXRlZCB0aGlzIGNvb2tpZSBtYW5hZ2VyIHdpdGggdGhlIGNvbmZpZ1xyXG4gICAgY29va2llTWdyW3N0ckNvbmZpZ0Nvb2tpZU1ncl0gPSBjb29raWVNZ3I7XHJcbiAgICByZXR1cm4gY29va2llTWdyO1xyXG59XHJcbi8qXHJcbiogSGVscGVyIG1ldGhvZCB0byB0ZWxsIGlmIGRvY3VtZW50LmNvb2tpZSBvYmplY3QgaXMgc3VwcG9ydGVkIGJ5IHRoZSBydW50aW1lXHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBhcmVDb29raWVzU3VwcG9ydGVkKGxvZ2dlcikge1xyXG4gICAgaWYgKF9zdXBwb3J0c0Nvb2tpZXMgPT09IG51bGwpIHtcclxuICAgICAgICBfc3VwcG9ydHNDb29raWVzID0gZmFsc2U7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdmFyIGRvYyA9IF9kb2MgfHwge307XHJcbiAgICAgICAgICAgIF9zdXBwb3J0c0Nvb2tpZXMgPSBkb2Nbc3RyQ29va2llXSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA2OCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkNhbm5vdEFjY2Vzc0Nvb2tpZSAqLywgXCJDYW5ub3QgYWNjZXNzIGRvY3VtZW50LmNvb2tpZSAtIFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9zdXBwb3J0c0Nvb2tpZXM7XHJcbn1cclxuZnVuY3Rpb24gX2V4dHJhY3RQYXJ0cyh0aGVWYWx1ZSkge1xyXG4gICAgdmFyIHZhbHVlcyA9IHt9O1xyXG4gICAgaWYgKHRoZVZhbHVlICYmIHRoZVZhbHVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSkge1xyXG4gICAgICAgIHZhciBwYXJ0cyA9IHN0clRyaW0odGhlVmFsdWUpW19EWU5fU1BMSVQgLyogQG1pbjolMmVzcGxpdCAqL10oXCI7XCIpO1xyXG4gICAgICAgIGFyckZvckVhY2gocGFydHMsIGZ1bmN0aW9uICh0aGVQYXJ0KSB7XHJcbiAgICAgICAgICAgIHRoZVBhcnQgPSBzdHJUcmltKHRoZVBhcnQgfHwgU1RSX0VNUFRZKTtcclxuICAgICAgICAgICAgaWYgKHRoZVBhcnQpIHtcclxuICAgICAgICAgICAgICAgIHZhciBpZHggPSB0aGVQYXJ0W19EWU5fSU5ERVhfT0YgLyogQG1pbjolMmVpbmRleE9mICovXShcIj1cIik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaWR4ID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlc1t0aGVQYXJ0XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbc3RyVHJpbSh0aGVQYXJ0W19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgwLCBpZHgpKV0gPSBzdHJUcmltKHRoZVBhcnRbX0RZTl9TVUJTVFJJTkcgLyogQG1pbjolMmVzdWJzdHJpbmcgKi9dKGlkeCArIDEpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxufVxyXG5mdW5jdGlvbiBfZm9ybWF0RGF0ZSh0aGVEYXRlLCBmdW5jKSB7XHJcbiAgICBpZiAoaXNGdW5jdGlvbih0aGVEYXRlW2Z1bmNdKSkge1xyXG4gICAgICAgIHJldHVybiB0aGVEYXRlW2Z1bmNdKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG5mdW5jdGlvbiBfZm9ybWF0Q29va2llVmFsdWUodmFsdWUsIHZhbHVlcykge1xyXG4gICAgdmFyIGNvb2tpZVZhbHVlID0gdmFsdWUgfHwgU1RSX0VNUFRZO1xyXG4gICAgb2JqRm9yRWFjaEtleSh2YWx1ZXMsIGZ1bmN0aW9uIChuYW1lLCB0aGVWYWx1ZSkge1xyXG4gICAgICAgIGNvb2tpZVZhbHVlICs9IFwiOyBcIiArIG5hbWUgKyAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoZVZhbHVlKSA/IFwiPVwiICsgdGhlVmFsdWUgOiBTVFJfRU1QVFkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29va2llVmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gX2dldENvb2tpZVZhbHVlKG5hbWUpIHtcclxuICAgIHZhciBjb29raWVWYWx1ZSA9IFNUUl9FTVBUWTtcclxuICAgIGlmIChfZG9jKSB7XHJcbiAgICAgICAgdmFyIHRoZUNvb2tpZSA9IF9kb2Nbc3RyQ29va2llXSB8fCBTVFJfRU1QVFk7XHJcbiAgICAgICAgaWYgKF9wYXJzZWRDb29raWVWYWx1ZSAhPT0gdGhlQ29va2llKSB7XHJcbiAgICAgICAgICAgIF9jb29raWVDYWNoZSA9IF9leHRyYWN0UGFydHModGhlQ29va2llKTtcclxuICAgICAgICAgICAgX3BhcnNlZENvb2tpZVZhbHVlID0gdGhlQ29va2llO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb29raWVWYWx1ZSA9IHN0clRyaW0oX2Nvb2tpZUNhY2hlW25hbWVdIHx8IFNUUl9FTVBUWSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29va2llVmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gX3NldENvb2tpZVZhbHVlKG5hbWUsIGNvb2tpZVZhbHVlKSB7XHJcbiAgICBpZiAoX2RvYykge1xyXG4gICAgICAgIF9kb2Nbc3RyQ29va2llXSA9IG5hbWUgKyBcIj1cIiArIGNvb2tpZVZhbHVlO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1YURpc2FsbG93c1NhbWVTaXRlTm9uZSh1c2VyQWdlbnQpIHtcclxuICAgIGlmICghaXNTdHJpbmcodXNlckFnZW50KSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENvdmVyIGFsbCBpT1MgYmFzZWQgYnJvd3NlcnMgaGVyZS4gVGhpcyBpbmNsdWRlczpcclxuICAgIC8vIC0gU2FmYXJpIG9uIGlPUyAxMiBmb3IgaVBob25lLCBpUG9kIFRvdWNoLCBpUGFkXHJcbiAgICAvLyAtIFdrV2VidmlldyBvbiBpT1MgMTIgZm9yIGlQaG9uZSwgaVBvZCBUb3VjaCwgaVBhZFxyXG4gICAgLy8gLSBDaHJvbWUgb24gaU9TIDEyIGZvciBpUGhvbmUsIGlQb2QgVG91Y2gsIGlQYWRcclxuICAgIC8vIEFsbCBvZiB3aGljaCBhcmUgYnJva2VuIGJ5IFNhbWVTaXRlPU5vbmUsIGJlY2F1c2UgdGhleSB1c2UgdGhlIGlPUyBuZXR3b3JraW5nIHN0YWNrXHJcbiAgICBpZiAoc3RyQ29udGFpbnModXNlckFnZW50LCBcIkNQVSBpUGhvbmUgT1MgMTJcIikgfHwgc3RyQ29udGFpbnModXNlckFnZW50LCBcImlQYWQ7IENQVSBPUyAxMlwiKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gQ292ZXIgTWFjIE9TIFggYmFzZWQgYnJvd3NlcnMgdGhhdCB1c2UgdGhlIE1hYyBPUyBuZXR3b3JraW5nIHN0YWNrLiBUaGlzIGluY2x1ZGVzOlxyXG4gICAgLy8gLSBTYWZhcmkgb24gTWFjIE9TIFhcclxuICAgIC8vIFRoaXMgZG9lcyBub3QgaW5jbHVkZTpcclxuICAgIC8vIC0gSW50ZXJuYWwgYnJvd3NlciBvbiBNYWMgT1MgWFxyXG4gICAgLy8gLSBDaHJvbWUgb24gTWFjIE9TIFhcclxuICAgIC8vIC0gQ2hyb21pdW0gb24gTWFjIE9TIFhcclxuICAgIC8vIEJlY2F1c2UgdGhleSBkbyBub3QgdXNlIHRoZSBNYWMgT1MgbmV0d29ya2luZyBzdGFjay5cclxuICAgIGlmIChzdHJDb250YWlucyh1c2VyQWdlbnQsIFwiTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNFwiKSAmJiBzdHJDb250YWlucyh1c2VyQWdlbnQsIFwiVmVyc2lvbi9cIikgJiYgc3RyQ29udGFpbnModXNlckFnZW50LCBcIlNhZmFyaVwiKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gQ292ZXIgTWFjIE9TIFggaW50ZXJuYWwgYnJvd3NlcnMgdGhhdCB1c2UgdGhlIE1hYyBPUyBuZXR3b3JraW5nIHN0YWNrLiBUaGlzIGluY2x1ZGVzOlxyXG4gICAgLy8gLSBJbnRlcm5hbCBicm93c2VyIG9uIE1hYyBPUyBYXHJcbiAgICAvLyBUaGlzIGRvZXMgbm90IGluY2x1ZGU6XHJcbiAgICAvLyAtIFNhZmFyaSBvbiBNYWMgT1MgWFxyXG4gICAgLy8gLSBDaHJvbWUgb24gTWFjIE9TIFhcclxuICAgIC8vIC0gQ2hyb21pdW0gb24gTWFjIE9TIFhcclxuICAgIC8vIEJlY2F1c2UgdGhleSBkbyBub3QgdXNlIHRoZSBNYWMgT1MgbmV0d29ya2luZyBzdGFjay5cclxuICAgIGlmIChzdHJDb250YWlucyh1c2VyQWdlbnQsIFwiTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNFwiKSAmJiBzdHJFbmRzV2l0aCh1c2VyQWdlbnQsIFwiQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKVwiKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gQ292ZXIgQ2hyb21lIDUwLTY5LCBiZWNhdXNlIHNvbWUgdmVyc2lvbnMgYXJlIGJyb2tlbiBieSBTYW1lU2l0ZT1Ob25lLCBhbmQgbm9uZSBpbiB0aGlzIHJhbmdlIHJlcXVpcmUgaXQuXHJcbiAgICAvLyBOb3RlOiB0aGlzIGNvdmVycyBzb21lIHByZS1DaHJvbWl1bSBFZGdlIHZlcnNpb25zLCBidXQgcHJlLUNocm9taW0gRWRnZSBkb2VzIG5vdCByZXF1aXJlIFNhbWVTaXRlPU5vbmUsIHNvIHRoaXMgaXMgZmluZS5cclxuICAgIC8vIE5vdGU6IHRoaXMgcmVnZXggYXBwbGllcyB0byBXaW5kb3dzLCBNYWMgT1MgWCwgYW5kIExpbnV4LCBkZWxpYmVyYXRlbHkuXHJcbiAgICBpZiAoc3RyQ29udGFpbnModXNlckFnZW50LCBcIkNocm9tZS81XCIpIHx8IHN0ckNvbnRhaW5zKHVzZXJBZ2VudCwgXCJDaHJvbWUvNlwiKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gVW5yZWFsIEVuZ2luZSBydW5zIENocm9taXVtIDU5LCBidXQgZG9lcyBub3QgYWR2ZXJ0aXNlIGFzIENocm9tZSB1bnRpbCA0LjIzLiBUcmVhdCB2ZXJzaW9ucyBvZiBVbnJlYWxcclxuICAgIC8vIHRoYXQgZG9uJ3Qgc3BlY2lmeSB0aGVpciBDaHJvbWUgdmVyc2lvbiBhcyBsYWNraW5nIHN1cHBvcnQgZm9yIFNhbWVTaXRlPU5vbmUuXHJcbiAgICBpZiAoc3RyQ29udGFpbnModXNlckFnZW50LCBcIlVucmVhbEVuZ2luZVwiKSAmJiAhc3RyQ29udGFpbnModXNlckFnZW50LCBcIkNocm9tZVwiKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gVUNCcm93c2VyIDwgMTIuMTMuMiBpZ25vcmVzIFNldC1Db29raWUgaGVhZGVycyB3aXRoIFNhbWVTaXRlPU5vbmVcclxuICAgIC8vIE5COiB0aGlzIHJ1bGUgaXNuJ3QgY29tcGxldGUgLSB5b3UgbmVlZCByZWdleCB0byBtYWtlIGEgY29tcGxldGUgcnVsZS5cclxuICAgIC8vIFNlZTogaHR0cHM6Ly93d3cuY2hyb21pdW0ub3JnL3VwZGF0ZXMvc2FtZS1zaXRlL2luY29tcGF0aWJsZS1jbGllbnRzXHJcbiAgICBpZiAoc3RyQ29udGFpbnModXNlckFnZW50LCBcIlVDQnJvd3Nlci8xMlwiKSB8fCBzdHJDb250YWlucyh1c2VyQWdlbnQsIFwiVUNCcm93c2VyLzExXCIpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q29va2llTWdyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IF9EWU5fSEFORExFUiwgX0RZTl9MRU5HVEgsIF9EWU5fTkFNRSwgX0RZTl9QVVNILCBfRFlOX1JFUExBQ0UsIF9EWU5fU1BMSUNFLCBfRFlOX1NQTElULCBfRFlOX1RZUEUgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUVsbU5vZGVEYXRhLCBjcmVhdGVVbmlxdWVOYW1lc3BhY2UgfSBmcm9tIFwiLi9EYXRhQ2FjaGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgZ2V0RG9jdW1lbnQsIGdldFdpbmRvdyB9IGZyb20gXCIuL0VudlV0aWxzXCI7XHJcbmltcG9ydCB7IGFyckZvckVhY2gsIGFyckluZGV4T2YsIGlzQXJyYXksIG9iakZvckVhY2hLZXksIG9iaktleXMgfSBmcm9tIFwiLi9IZWxwZXJGdW5jc1wiO1xyXG5pbXBvcnQgeyBTVFJfRU1QVFkgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG4vLyBBZGRlZCB0byBoZWxwIHdpdGggbWluZmljYXRpb25cclxudmFyIHN0ck9uUHJlZml4ID0gXCJvblwiO1xyXG52YXIgc3RyQXR0YWNoRXZlbnQgPSBcImF0dGFjaEV2ZW50XCI7XHJcbnZhciBzdHJBZGRFdmVudEhlbHBlciA9IFwiYWRkRXZlbnRMaXN0ZW5lclwiO1xyXG52YXIgc3RyRGV0YWNoRXZlbnQgPSBcImRldGFjaEV2ZW50XCI7XHJcbnZhciBzdHJSZW1vdmVFdmVudExpc3RlbmVyID0gXCJyZW1vdmVFdmVudExpc3RlbmVyXCI7XHJcbnZhciBzdHJFdmVudHMgPSBcImV2ZW50c1wiO1xyXG52YXIgc3RyVmlzaWJpbGl0eUNoYW5nZUV2dCA9IFwidmlzaWJpbGl0eWNoYW5nZVwiO1xyXG52YXIgc3RyUGFnZUhpZGUgPSBcInBhZ2VoaWRlXCI7XHJcbnZhciBzdHJQYWdlU2hvdyA9IFwicGFnZXNob3dcIjtcclxudmFyIHN0clVubG9hZCA9IFwidW5sb2FkXCI7XHJcbnZhciBzdHJCZWZvcmVVbmxvYWQgPSBcImJlZm9yZXVubG9hZFwiO1xyXG52YXIgc3RyUGFnZUhpZGVOYW1lc3BhY2UgPSBjcmVhdGVVbmlxdWVOYW1lc3BhY2UoXCJhaUV2dFBhZ2VIaWRlXCIpO1xyXG52YXIgc3RyUGFnZVNob3dOYW1lc3BhY2UgPSBjcmVhdGVVbmlxdWVOYW1lc3BhY2UoXCJhaUV2dFBhZ2VTaG93XCIpO1xyXG52YXIgclJlbW92ZUVtcHR5TnMgPSAvXFwuW1xcLl0rL2c7XHJcbnZhciByUmVtb3ZlVHJhaWxpbmdFbXB0eU5zID0gL1tcXC5dKyQvO1xyXG52YXIgX2d1aWQgPSAxO1xyXG52YXIgZWxtTm9kZURhdGEgPSBjcmVhdGVFbG1Ob2RlRGF0YShcImV2ZW50c1wiKTtcclxudmFyIGV2ZW50TmFtZXNwYWNlID0gL14oW14uXSopKD86XFwuKC4rKXwpLztcclxuZnVuY3Rpb24gX25vcm1hbGl6ZU5hbWVzcGFjZShuYW1lKSB7XHJcbiAgICBpZiAobmFtZSAmJiBuYW1lW19EWU5fUkVQTEFDRSAvKiBAbWluOiUyZXJlcGxhY2UgKi9dKSB7XHJcbiAgICAgICAgcmV0dXJuIG5hbWVbX0RZTl9SRVBMQUNFIC8qIEBtaW46JTJlcmVwbGFjZSAqL10oL15bXFxzXFwuXSt8KD89W1xcc1xcLl0pW1xcLlxcc10rJC9nLCBTVFJfRU1QVFkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5hbWU7XHJcbn1cclxuZnVuY3Rpb24gX2dldEV2dE5hbWVzcGFjZShldmVudE5hbWUsIGV2dE5hbWVzcGFjZSkge1xyXG4gICAgdmFyIF9hO1xyXG4gICAgaWYgKGV2dE5hbWVzcGFjZSkge1xyXG4gICAgICAgIHZhciB0aGVOYW1lc3BhY2VfMSA9IFNUUl9FTVBUWTtcclxuICAgICAgICBpZiAoaXNBcnJheShldnROYW1lc3BhY2UpKSB7XHJcbiAgICAgICAgICAgIHRoZU5hbWVzcGFjZV8xID0gU1RSX0VNUFRZO1xyXG4gICAgICAgICAgICBhcnJGb3JFYWNoKGV2dE5hbWVzcGFjZSwgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBfbm9ybWFsaXplTmFtZXNwYWNlKG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZVswXSAhPT0gXCIuXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFwiLlwiICsgbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhlTmFtZXNwYWNlXzEgKz0gbmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVOYW1lc3BhY2VfMSA9IF9ub3JtYWxpemVOYW1lc3BhY2UoZXZ0TmFtZXNwYWNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoZU5hbWVzcGFjZV8xKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGVOYW1lc3BhY2VfMVswXSAhPT0gXCIuXCIpIHtcclxuICAgICAgICAgICAgICAgIHRoZU5hbWVzcGFjZV8xID0gXCIuXCIgKyB0aGVOYW1lc3BhY2VfMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBXZSBtYXkgb25seSBoYXZlIHRoZSBuYW1lc3BhY2UgYW5kIG5vdCBhbiBldmVudE5hbWVcclxuICAgICAgICAgICAgZXZlbnROYW1lID0gKGV2ZW50TmFtZSB8fCBTVFJfRU1QVFkpICsgdGhlTmFtZXNwYWNlXzE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHBhcnNlZEV2ZW50ID0gKGV2ZW50TmFtZXNwYWNlLmV4ZWMoZXZlbnROYW1lIHx8IFNUUl9FTVBUWSkgfHwgW10pO1xyXG4gICAgcmV0dXJuIF9hID0ge30sXHJcbiAgICAgICAgX2FbX0RZTl9UWVBFIC8qIEBtaW46dHlwZSAqL10gPSBwYXJzZWRFdmVudFsxXSxcclxuICAgICAgICBfYS5ucyA9ICgocGFyc2VkRXZlbnRbMl0gfHwgU1RSX0VNUFRZKS5yZXBsYWNlKHJSZW1vdmVFbXB0eU5zLCBcIi5cIikucmVwbGFjZShyUmVtb3ZlVHJhaWxpbmdFbXB0eU5zLCBTVFJfRU1QVFkpW19EWU5fU1BMSVQgLyogQG1pbjolMmVzcGxpdCAqL10oXCIuXCIpLnNvcnQoKSkuam9pbihcIi5cIiksXHJcbiAgICAgICAgX2E7XHJcbn1cclxuLyoqXHJcbiAqIEdldCBhbGwgb2YgdGhlIHJlZ2lzdGVyZWQgZXZlbnRzIG9uIHRoZSB0YXJnZXQgb2JqZWN0LCB0aGlzIGlzIHByaW1hcmlseSB1c2VkIGZvciB0ZXN0aW5nIGNsZWFudXAgYnV0IG1heSBhbHNvIGJlIHVzZWQgYnlcclxuICogYXBwbGljYXRpb25zIHRvIHJlbW92ZSB0aGVpciBvd24gZXZlbnRzXHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgRXZlbnRUYXJnZXQgdGhhdCBoYXMgcmVnaXN0ZXJlZCBldmVudHNcclxuICogQHBhcmFtIGV2ZW50TmFtZSAtIFtPcHRpb25hbF0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50IHRvIHJldHVybiB0aGUgcmVnaXN0ZXJlZCBoYW5kbGVycyBhbmQgZnVsbCBuYW1lICh3aXRoIG5hbWVzcGFjZXMpXHJcbiAqIEBwYXJhbSBldnROYW1lc3BhY2UgLSBbT3B0aW9uYWxdIEFkZGl0aW9uYWwgbmFtZXNwYWNlKHMpIHRvIGFwcGVuZCB0byB0aGUgZXZlbnQgbGlzdGVuZXJzIHNvIHRoZXkgY2FuIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQgYW5kIHJlbW92ZWQgYmFzZWQgb24gdGhpcyBuYW1lc3BhY2UsXHJcbiAqIGlmIHRoZSBldmVudE5hbWUgYWxzbyBpbmNsdWRlcyBhIG5hbWVzcGFjZSB0aGUgbmFtZXNwYWNlKHMpIGFyZSBtZXJnZWQgaW50byBhIHNpbmdsZSBuYW1lc3BhY2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dldFJlZ2lzdGVyZWRFdmVudHModGFyZ2V0LCBldmVudE5hbWUsIGV2dE5hbWVzcGFjZSkge1xyXG4gICAgdmFyIHRoZUV2ZW50cyA9IFtdO1xyXG4gICAgdmFyIGV2ZW50Q2FjaGUgPSBlbG1Ob2RlRGF0YS5nZXQodGFyZ2V0LCBzdHJFdmVudHMsIHt9LCBmYWxzZSk7XHJcbiAgICB2YXIgZXZ0TmFtZSA9IF9nZXRFdnROYW1lc3BhY2UoZXZlbnROYW1lLCBldnROYW1lc3BhY2UpO1xyXG4gICAgb2JqRm9yRWFjaEtleShldmVudENhY2hlLCBmdW5jdGlvbiAoZXZ0VHlwZSwgcmVnaXN0ZXJlZEV2ZW50cykge1xyXG4gICAgICAgIGFyckZvckVhY2gocmVnaXN0ZXJlZEV2ZW50cywgZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgaWYgKCFldnROYW1lW19EWU5fVFlQRSAvKiBAbWluOiUyZXR5cGUgKi9dIHx8IGV2dE5hbWVbX0RZTl9UWVBFIC8qIEBtaW46JTJldHlwZSAqL10gPT09IHZhbHVlLmV2dE5hbWVbX0RZTl9UWVBFIC8qIEBtaW46JTJldHlwZSAqL10pIHtcclxuICAgICAgICAgICAgICAgIGlmICghZXZ0TmFtZS5ucyB8fCBldnROYW1lLm5zID09PSBldnROYW1lLm5zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhlRXZlbnRzW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX05BTUUgLyogQG1pbjpuYW1lICovXSA9IHZhbHVlLmV2dE5hbWVbX0RZTl9UWVBFIC8qIEBtaW46JTJldHlwZSAqL10gKyAodmFsdWUuZXZ0TmFtZS5ucyA/IFwiLlwiICsgdmFsdWUuZXZ0TmFtZS5ucyA6IFNUUl9FTVBUWSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLmhhbmRsZXIgPSB2YWx1ZVtfRFlOX0hBTkRMRVIgLyogQG1pbjolMmVoYW5kbGVyICovXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2EpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhlRXZlbnRzO1xyXG59XHJcbi8vIEV4cG9ydGVkIGZvciBpbnRlcm5hbCB1bml0IHRlc3Rpbmcgb25seVxyXG5mdW5jdGlvbiBfZ2V0UmVnaXN0ZXJlZEV2ZW50cyh0YXJnZXQsIGV2dE5hbWUsIGFkZERlZmF1bHQpIHtcclxuICAgIGlmIChhZGREZWZhdWx0ID09PSB2b2lkIDApIHsgYWRkRGVmYXVsdCA9IHRydWU7IH1cclxuICAgIHZhciBhaUV2dHMgPSBlbG1Ob2RlRGF0YS5nZXQodGFyZ2V0LCBzdHJFdmVudHMsIHt9LCBhZGREZWZhdWx0KTtcclxuICAgIHZhciByZWdpc3RlcmVkRXZlbnRzID0gYWlFdnRzW2V2dE5hbWVdO1xyXG4gICAgaWYgKCFyZWdpc3RlcmVkRXZlbnRzKSB7XHJcbiAgICAgICAgcmVnaXN0ZXJlZEV2ZW50cyA9IGFpRXZ0c1tldnROYW1lXSA9IFtdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZ2lzdGVyZWRFdmVudHM7XHJcbn1cclxuZnVuY3Rpb24gX2RvRGV0YWNoKG9iaiwgZXZ0TmFtZSwgaGFuZGxlclJlZiwgdXNlQ2FwdHVyZSkge1xyXG4gICAgaWYgKG9iaiAmJiBldnROYW1lICYmIGV2dE5hbWVbX0RZTl9UWVBFIC8qIEBtaW46JTJldHlwZSAqL10pIHtcclxuICAgICAgICBpZiAob2JqW3N0clJlbW92ZUV2ZW50TGlzdGVuZXJdKSB7XHJcbiAgICAgICAgICAgIG9ialtzdHJSZW1vdmVFdmVudExpc3RlbmVyXShldnROYW1lW19EWU5fVFlQRSAvKiBAbWluOiUyZXR5cGUgKi9dLCBoYW5kbGVyUmVmLCB1c2VDYXB0dXJlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAob2JqW3N0ckRldGFjaEV2ZW50XSkge1xyXG4gICAgICAgICAgICBvYmpbc3RyRGV0YWNoRXZlbnRdKHN0ck9uUHJlZml4ICsgZXZ0TmFtZVtfRFlOX1RZUEUgLyogQG1pbjolMmV0eXBlICovXSwgaGFuZGxlclJlZik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIF9kb0F0dGFjaChvYmosIGV2dE5hbWUsIGhhbmRsZXJSZWYsIHVzZUNhcHR1cmUpIHtcclxuICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgIGlmIChvYmogJiYgZXZ0TmFtZSAmJiBldnROYW1lW19EWU5fVFlQRSAvKiBAbWluOiUyZXR5cGUgKi9dICYmIGhhbmRsZXJSZWYpIHtcclxuICAgICAgICBpZiAob2JqW3N0ckFkZEV2ZW50SGVscGVyXSkge1xyXG4gICAgICAgICAgICAvLyBhbGwgYnJvd3NlcnMgZXhjZXB0IElFIGJlZm9yZSB2ZXJzaW9uIDlcclxuICAgICAgICAgICAgb2JqW3N0ckFkZEV2ZW50SGVscGVyXShldnROYW1lW19EWU5fVFlQRSAvKiBAbWluOiUyZXR5cGUgKi9dLCBoYW5kbGVyUmVmLCB1c2VDYXB0dXJlKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAob2JqW3N0ckF0dGFjaEV2ZW50XSkge1xyXG4gICAgICAgICAgICAvLyBJRSBiZWZvcmUgdmVyc2lvbiA5XHJcbiAgICAgICAgICAgIG9ialtzdHJBdHRhY2hFdmVudF0oc3RyT25QcmVmaXggKyBldnROYW1lW19EWU5fVFlQRSAvKiBAbWluOiUyZXR5cGUgKi9dLCBoYW5kbGVyUmVmKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbmZ1bmN0aW9uIF9kb1VucmVnaXN0ZXIodGFyZ2V0LCBldmVudHMsIGV2dE5hbWUsIHVuUmVnRm4pIHtcclxuICAgIHZhciBpZHggPSBldmVudHNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgd2hpbGUgKGlkeC0tKSB7XHJcbiAgICAgICAgdmFyIHRoZUV2ZW50ID0gZXZlbnRzW2lkeF07XHJcbiAgICAgICAgaWYgKHRoZUV2ZW50KSB7XHJcbiAgICAgICAgICAgIGlmICghZXZ0TmFtZS5ucyB8fCBldnROYW1lLm5zID09PSB0aGVFdmVudC5ldnROYW1lLm5zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXVuUmVnRm4gfHwgdW5SZWdGbih0aGVFdmVudCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBfZG9EZXRhY2godGFyZ2V0LCB0aGVFdmVudC5ldnROYW1lLCB0aGVFdmVudFtfRFlOX0hBTkRMRVIgLyogQG1pbjolMmVoYW5kbGVyICovXSwgdGhlRXZlbnQuY2FwdHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSByZWdpc3RlcmVkIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzW19EWU5fU1BMSUNFIC8qIEBtaW46JTJlc3BsaWNlICovXShpZHgsIDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIF91bnJlZ2lzdGVyRXZlbnRzKHRhcmdldCwgZXZ0TmFtZSwgdW5SZWdGbikge1xyXG4gICAgaWYgKGV2dE5hbWVbX0RZTl9UWVBFIC8qIEBtaW46JTJldHlwZSAqL10pIHtcclxuICAgICAgICBfZG9VbnJlZ2lzdGVyKHRhcmdldCwgX2dldFJlZ2lzdGVyZWRFdmVudHModGFyZ2V0LCBldnROYW1lW19EWU5fVFlQRSAvKiBAbWluOiUyZXR5cGUgKi9dKSwgZXZ0TmFtZSwgdW5SZWdGbik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICB2YXIgZXZlbnRDYWNoZSA9IGVsbU5vZGVEYXRhLmdldCh0YXJnZXQsIHN0ckV2ZW50cywge30pO1xyXG4gICAgICAgIG9iakZvckVhY2hLZXkoZXZlbnRDYWNoZSwgZnVuY3Rpb24gKGV2dFR5cGUsIGV2ZW50cykge1xyXG4gICAgICAgICAgICBfZG9VbnJlZ2lzdGVyKHRhcmdldCwgZXZlbnRzLCBldnROYW1lLCB1blJlZ0ZuKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBDbGVhbnVwXHJcbiAgICAgICAgaWYgKG9iaktleXMoZXZlbnRDYWNoZSlbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID09PSAwKSB7XHJcbiAgICAgICAgICAgIGVsbU5vZGVEYXRhLmtpbGwodGFyZ2V0LCBzdHJFdmVudHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VFdnROYW1lc3BhY2UodGhlTmFtZXNwYWNlLCBuYW1lc3BhY2VzKSB7XHJcbiAgICB2YXIgbmV3TmFtZXNwYWNlcztcclxuICAgIGlmIChuYW1lc3BhY2VzKSB7XHJcbiAgICAgICAgaWYgKGlzQXJyYXkobmFtZXNwYWNlcykpIHtcclxuICAgICAgICAgICAgbmV3TmFtZXNwYWNlcyA9IFt0aGVOYW1lc3BhY2VdLmNvbmNhdChuYW1lc3BhY2VzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG5ld05hbWVzcGFjZXMgPSBbdGhlTmFtZXNwYWNlLCBuYW1lc3BhY2VzXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gcmVzb3J0IHRoZSBuYW1lc3BhY2VzIHNvIHRoZXkgYXJlIGFsd2F5cyBpbiBvcmRlclxyXG4gICAgICAgIG5ld05hbWVzcGFjZXMgPSAoX2dldEV2dE5hbWVzcGFjZShcInh4XCIsIG5ld05hbWVzcGFjZXMpLm5zKVtfRFlOX1NQTElUIC8qIEBtaW46JTJlc3BsaXQgKi9dKFwiLlwiKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIG5ld05hbWVzcGFjZXMgPSB0aGVOYW1lc3BhY2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3TmFtZXNwYWNlcztcclxufVxyXG4vKipcclxuICogQmluZHMgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiB0byBhbiBldmVudCwgc28gdGhhdCB0aGUgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGV2ZW50IGZpcmVzIG9uIHRoZSBvYmplY3RcclxuICogQHBhcmFtIG9iaiBPYmplY3QgdG8gYWRkIHRoZSBldmVudCB0b28uXHJcbiAqIEBwYXJhbSBldmVudE5hbWUgU3RyaW5nIHRoYXQgc3BlY2lmaWVzIGFueSBvZiB0aGUgc3RhbmRhcmQgREhUTUwgRXZlbnRzIHdpdGhvdXQgXCJvblwiIHByZWZpeCwgaWYgbWF5IGFsc28gaW5jbHVkZSBhbiBvcHRpb25hbCAoZG90IFwiLlwiIHByZWZpeGVkKVxyXG4gKiBuYW1lc3BhY2VzIFwiY2xpY2tcIiBcImNsaWNrLm15bmFtZXNwYWNlXCIgaW4gYWRkaXRpb24gdG8gc3BlY2lmaWMgbmFtZXNwYWNlcy5cclxuICogQHBhcmFtIGhhbmRsZXJSZWYgUG9pbnRlciB0aGF0IHNwZWNpZmllcyB0aGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIGV2ZW50IGZpcmVzXHJcbiAqIEBwYXJhbSBldnROYW1lc3BhY2UgLSBbT3B0aW9uYWxdIEFkZGl0aW9uYWwgbmFtZXNwYWNlKHMpIHRvIGFwcGVuZCB0byB0aGUgZXZlbnQgbGlzdGVuZXJzIHNvIHRoZXkgY2FuIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQgYW5kIHJlbW92ZWQgYmFzZWQgb24gdGhpcyBuYW1lc3BhY2UsXHJcbiAqIGlmIHRoZSBldmVudE5hbWUgYWxzbyBpbmNsdWRlcyBhIG5hbWVzcGFjZSB0aGUgbmFtZXNwYWNlKHMpIGFyZSBtZXJnZWQgaW50byBhIHNpbmdsZSBuYW1lc3BhY2VcclxuICogQHBhcmFtIHVzZUNhcHR1cmUgW09wdGlvbmFsXSBEZWZhdWx0cyB0byBmYWxzZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBmdW5jdGlvbiB3YXMgYm91bmQgc3VjY2Vzc2Z1bGx5IHRvIHRoZSBldmVudCwgb3RoZXJ3aXNlIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRPbih0YXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxlclJlZiwgZXZ0TmFtZXNwYWNlLCB1c2VDYXB0dXJlKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICBpZiAodXNlQ2FwdHVyZSA9PT0gdm9pZCAwKSB7IHVzZUNhcHR1cmUgPSBmYWxzZTsgfVxyXG4gICAgdmFyIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciBldnROYW1lID0gX2dldEV2dE5hbWVzcGFjZShldmVudE5hbWUsIGV2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IF9kb0F0dGFjaCh0YXJnZXQsIGV2dE5hbWUsIGhhbmRsZXJSZWYsIHVzZUNhcHR1cmUpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ICYmIGVsbU5vZGVEYXRhLmFjY2VwdCh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVnaXN0ZXJlZEV2ZW50ID0gKF9hID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBndWlkOiBfZ3VpZCsrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBldnROYW1lOiBldnROYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX0hBTkRMRVIgLyogQG1pbjpoYW5kbGVyICovXSA9IGhhbmRsZXJSZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgX2EuY2FwdHVyZSA9IHVzZUNhcHR1cmUsXHJcbiAgICAgICAgICAgICAgICAgICAgX2EpO1xyXG4gICAgICAgICAgICAgICAgX2dldFJlZ2lzdGVyZWRFdmVudHModGFyZ2V0LCBldnROYW1lLnR5cGUpW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKHJlZ2lzdGVyZWRFdmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gSnVzdCBJZ25vcmUgYW55IGVycm9yIHNvIHRoYXQgd2UgZG9uJ3QgYnJlYWsgYW55IGV4ZWN1dGlvbiBwYXRoXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKipcclxuICogUmVtb3ZlcyBhbiBldmVudCBoYW5kbGVyIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50XHJcbiAqIEBwYXJhbSBPYmplY3QgdG8gcmVtb3ZlIHRoZSBldmVudCBmcm9tXHJcbiAqIEBwYXJhbSBldmVudE5hbWUge3N0cmluZ30gLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQsIHdpdGggb3B0aW9uYWwgbmFtZXNwYWNlcyBvciBqdXN0IHRoZSBuYW1lc3BhY2VzLFxyXG4gKiBzdWNoIGFzIFwiY2xpY2tcIiwgXCJjbGljay5teW5hbWVzcGFjZVwiIG9yIFwiLm15bmFtZXNwYWNlXCJcclxuICogQHBhcmFtIGhhbmRsZXJSZWYge2FueX0gLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIGdpdmVuIGV2ZW50LCB3aGVuIHVzaW5nIGFcclxuICogbmFtZXNwYWNlICh3aXRoIG9yIHdpdGhvdXQgYSBxdWFsaWZ5aW5nIGV2ZW50KSB0aGlzIG1heSBiZSBudWxsIHRvIHJlbW92ZSBhbGwgcHJldmlvdXNseSBhdHRhY2hlZCBldmVudCBoYW5kbGVyc1xyXG4gKiBvdGhlcndpc2UgdGhpcyB3aWxsIG9ubHkgcmVtb3ZlIGV2ZW50cyB3aXRoIHRoaXMgc3BlY2lmaWMgaGFuZGxlci5cclxuICogQHBhcmFtIGV2dE5hbWVzcGFjZSAtIFtPcHRpb25hbF0gQWRkaXRpb25hbCBuYW1lc3BhY2UocykgdG8gYXBwZW5kIHRvIHRoZSBldmVudCBsaXN0ZW5lcnMgc28gdGhleSBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBhbmQgcmVtb3ZlZCBiYXNlZCBvbiB0aGlzIG5hbWVzcGFjZSxcclxuICogaWYgdGhlIGV2ZW50TmFtZSBhbHNvIGluY2x1ZGVzIGEgbmFtZXNwYWNlIHRoZSBuYW1lc3BhY2UocykgYXJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG5hbWVzcGFjZVxyXG4gKiBAcGFyYW0gdXNlQ2FwdHVyZSBbT3B0aW9uYWxdIERlZmF1bHRzIHRvIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRPZmYodGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXJSZWYsIGV2dE5hbWVzcGFjZSwgdXNlQ2FwdHVyZSkge1xyXG4gICAgaWYgKHVzZUNhcHR1cmUgPT09IHZvaWQgMCkgeyB1c2VDYXB0dXJlID0gZmFsc2U7IH1cclxuICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgZXZ0TmFtZV8xID0gX2dldEV2dE5hbWVzcGFjZShldmVudE5hbWUsIGV2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgIHZhciBmb3VuZF8xID0gZmFsc2U7XHJcbiAgICAgICAgICAgIF91bnJlZ2lzdGVyRXZlbnRzKHRhcmdldCwgZXZ0TmFtZV8xLCBmdW5jdGlvbiAocmVnRXZlbnQpIHtcclxuICAgICAgICAgICAgICAgIGlmICgoZXZ0TmFtZV8xLm5zICYmICFoYW5kbGVyUmVmKSB8fCByZWdFdmVudFtfRFlOX0hBTkRMRVIgLyogQG1pbjolMmVoYW5kbGVyICovXSA9PT0gaGFuZGxlclJlZikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kXzEgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKCFmb3VuZF8xKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayB0byB0cnkgYW5kIHJlbW92ZSBhcyByZXF1ZXN0ZWRcclxuICAgICAgICAgICAgICAgIF9kb0RldGFjaCh0YXJnZXQsIGV2dE5hbWVfMSwgaGFuZGxlclJlZiwgdXNlQ2FwdHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gSnVzdCBJZ25vcmUgYW55IGVycm9yIHNvIHRoYXQgd2UgZG9uJ3QgYnJlYWsgYW55IGV4ZWN1dGlvbiBwYXRoXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBCaW5kcyB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHRvIGFuIGV2ZW50LCBzbyB0aGF0IHRoZSBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuZXZlciB0aGUgZXZlbnQgZmlyZXMgb24gdGhlIG9iamVjdFxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCB0byBhZGQgdGhlIGV2ZW50IHRvby5cclxuICogQHBhcmFtIGV2ZW50TmFtZVdpdGhvdXRPbiBTdHJpbmcgdGhhdCBzcGVjaWZpZXMgYW55IG9mIHRoZSBzdGFuZGFyZCBESFRNTCBFdmVudHMgd2l0aG91dCBcIm9uXCIgcHJlZml4IGFuZCBvcHRpb25hbCAoZG90IFwiLlwiIHByZWZpeGVkKSBuYW1lc3BhY2VzIFwiY2xpY2tcIiBcImNsaWNrLm15bmFtZXNwYWNlXCIuXHJcbiAqIEBwYXJhbSBoYW5kbGVyUmVmIFBvaW50ZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBldmVudCBmaXJlc1xyXG4gKiBAcGFyYW0gdXNlQ2FwdHVyZSBbT3B0aW9uYWxdIERlZmF1bHRzIHRvIGZhbHNlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGZ1bmN0aW9uIHdhcyBib3VuZCBzdWNjZXNzZnVsbHkgdG8gdGhlIGV2ZW50LCBvdGhlcndpc2UgZmFsc2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2hFdmVudChvYmosIGV2ZW50TmFtZVdpdGhvdXRPbiwgaGFuZGxlclJlZiwgdXNlQ2FwdHVyZSkge1xyXG4gICAgaWYgKHVzZUNhcHR1cmUgPT09IHZvaWQgMCkgeyB1c2VDYXB0dXJlID0gZmFsc2U7IH1cclxuICAgIHJldHVybiBldmVudE9uKG9iaiwgZXZlbnROYW1lV2l0aG91dE9uLCBoYW5kbGVyUmVmLCBudWxsLCB1c2VDYXB0dXJlKTtcclxufVxyXG4vKipcclxuICogUmVtb3ZlcyBhbiBldmVudCBoYW5kbGVyIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50XHJcbiAqIEBwYXJhbSBPYmplY3QgdG8gcmVtb3ZlIHRoZSBldmVudCBmcm9tXHJcbiAqIEBwYXJhbSBldmVudE5hbWVXaXRob3V0T24ge3N0cmluZ30gLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQsIHdpdGggb3B0aW9uYWwgbmFtZXNwYWNlcyBvciBqdXN0IHRoZSBuYW1lc3BhY2VzLFxyXG4gKiBzdWNoIGFzIFwiY2xpY2tcIiwgXCJjbGljay5teW5hbWVzcGFjZVwiIG9yIFwiLm15bmFtZXNwYWNlXCJcclxuICogQHBhcmFtIGhhbmRsZXJSZWYge2FueX0gLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIGdpdmVuIGV2ZW50LCB3aGVuIHVzaW5nIGFcclxuICogbmFtZXNwYWNlICh3aXRoIG9yIHdpdGhvdXQgYSBxdWFsaWZ5aW5nIGV2ZW50KSB0aGlzIG1heSBiZSBudWxsIHRvIHJlbW92ZSBhbGwgcHJldmlvdXNseSBhdHRhY2hlZCBldmVudCBoYW5kbGVyc1xyXG4gKiBvdGhlcndpc2UgdGhpcyB3aWxsIG9ubHkgcmVtb3ZlIGV2ZW50cyB3aXRoIHRoaXMgc3BlY2lmaWMgaGFuZGxlci5cclxuICogQHBhcmFtIHVzZUNhcHR1cmUgW09wdGlvbmFsXSBEZWZhdWx0cyB0byBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaEV2ZW50KG9iaiwgZXZlbnROYW1lV2l0aG91dE9uLCBoYW5kbGVyUmVmLCB1c2VDYXB0dXJlKSB7XHJcbiAgICBpZiAodXNlQ2FwdHVyZSA9PT0gdm9pZCAwKSB7IHVzZUNhcHR1cmUgPSBmYWxzZTsgfVxyXG4gICAgZXZlbnRPZmYob2JqLCBldmVudE5hbWVXaXRob3V0T24sIGhhbmRsZXJSZWYsIG51bGwsIHVzZUNhcHR1cmUpO1xyXG59XHJcbi8qKlxyXG4gKiBUcnlzIHRvIGFkZCBhbiBldmVudCBoYW5kbGVyIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50IHRvIHRoZSB3aW5kb3csIGJvZHkgYW5kIGRvY3VtZW50XHJcbiAqIEBwYXJhbSBldmVudE5hbWUge3N0cmluZ30gLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnRcclxuICogQHBhcmFtIGNhbGxiYWNrIHthbnl9IC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgZm9yIHRoZSBnaXZlbiBldmVudFxyXG4gKiBAcGFyYW0gZXZ0TmFtZXNwYWNlIC0gW09wdGlvbmFsXSBOYW1lc3BhY2UocykgdG8gYXBwZW5kIHRvIHRoZSBldmVudCBsaXN0ZW5lcnMgc28gdGhleSBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBhbmQgcmVtb3ZlZCBiYXNlZCBvbiB0aGlzIG5hbWVzcGFjZS5cclxuICogQHJldHVybiB7Ym9vbGVhbn0gLSB0cnVlIGlmIHRoZSBoYW5kbGVyIHdhcyBzdWNjZXNzZnVsbHkgYWRkZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRFdmVudEhhbmRsZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgZXZ0TmFtZXNwYWNlKSB7XHJcbiAgICB2YXIgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICB2YXIgdyA9IGdldFdpbmRvdygpO1xyXG4gICAgaWYgKHcpIHtcclxuICAgICAgICByZXN1bHQgPSBldmVudE9uKHcsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGV2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgcmVzdWx0ID0gZXZlbnRPbih3W1wiYm9keVwiXSwgZXZlbnROYW1lLCBjYWxsYmFjaywgZXZ0TmFtZXNwYWNlKSB8fCByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICB2YXIgZG9jID0gZ2V0RG9jdW1lbnQoKTtcclxuICAgIGlmIChkb2MpIHtcclxuICAgICAgICByZXN1bHQgPSBldmVudE9uKGRvYywgZXZlbnROYW1lLCBjYWxsYmFjaywgZXZ0TmFtZXNwYWNlKSB8fCByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKlxyXG4gKiBUcnlzIHRvIHJlbW92ZSBldmVudCBoYW5kbGVyKHMpIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50L25hbWVzcGFjZSB0byB0aGUgd2luZG93LCBib2R5IGFuZCBkb2N1bWVudFxyXG4gKiBAcGFyYW0gZXZlbnROYW1lIHtzdHJpbmd9IC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LCB3aXRoIG9wdGlvbmFsIG5hbWVzcGFjZXMgb3IganVzdCB0aGUgbmFtZXNwYWNlcyxcclxuICogc3VjaCBhcyBcImNsaWNrXCIsIFwiY2xpY2subXluYW1lc3BhY2VcIiBvciBcIi5teW5hbWVzcGFjZVwiXHJcbiAqIEBwYXJhbSBjYWxsYmFjayB7YW55fSAtIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnaXZlbiBldmVudCwgd2hlbiB1c2luZyBhXHJcbiAqIG5hbWVzcGFjZSAod2l0aCBvciB3aXRob3V0IGEgcXVhbGlmeWluZyBldmVudCkgdGhpcyBtYXkgYmUgbnVsbCB0byByZW1vdmUgYWxsIHByZXZpb3VzbHkgYXR0YWNoZWQgZXZlbnQgaGFuZGxlcnNcclxuICogb3RoZXJ3aXNlIHRoaXMgd2lsbCBvbmx5IHJlbW92ZSBldmVudHMgd2l0aCB0aGlzIHNwZWNpZmljIGhhbmRsZXIuXHJcbiAqIEBwYXJhbSBldnROYW1lc3BhY2UgLSBbT3B0aW9uYWxdIE5hbWVzcGFjZShzKSB0byBhcHBlbmQgdG8gdGhlIGV2ZW50IGxpc3RlbmVycyBzbyB0aGV5IGNhbiBiZSB1bmlxdWVseSBpZGVudGlmaWVkIGFuZCByZW1vdmVkIGJhc2VkIG9uIHRoaXMgbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUV2ZW50SGFuZGxlcihldmVudE5hbWUsIGNhbGxiYWNrLCBldnROYW1lc3BhY2UpIHtcclxuICAgIHZhciB3ID0gZ2V0V2luZG93KCk7XHJcbiAgICBpZiAodykge1xyXG4gICAgICAgIGV2ZW50T2ZmKHcsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGV2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgZXZlbnRPZmYod1tcImJvZHlcIl0sIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGV2dE5hbWVzcGFjZSk7XHJcbiAgICB9XHJcbiAgICB2YXIgZG9jID0gZ2V0RG9jdW1lbnQoKTtcclxuICAgIGlmIChkb2MpIHtcclxuICAgICAgICBldmVudE9mZihkb2MsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGV2dE5hbWVzcGFjZSk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEJpbmQgdGhlIGxpc3RlbmVyIHRvIHRoZSBhcnJheSBvZiBldmVudHNcclxuICogQHBhcmFtIGV2ZW50cyBBbiBzdHJpbmcgYXJyYXkgb2YgZXZlbnQgbmFtZXMgdG8gYmluZCB0aGUgbGlzdGVuZXIgdG9cclxuICogQHBhcmFtIGxpc3RlbmVyIFRoZSBldmVudCBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZFxyXG4gKiBAcGFyYW0gZXhjbHVkZUV2ZW50cyAtIFtPcHRpb25hbF0gQW4gYXJyYXkgb2YgZXZlbnRzIHRoYXQgc2hvdWxkIG5vdCBiZSBob29rZWQgKGlmIHBvc3NpYmxlKSwgdW5sZXNzIG5vIG90aGVyIGV2ZW50cyBjYW4gYmUuXHJcbiAqIEBwYXJhbSBldnROYW1lc3BhY2UgLSBbT3B0aW9uYWxdIE5hbWVzcGFjZShzKSB0byBhcHBlbmQgdG8gdGhlIGV2ZW50IGxpc3RlbmVycyBzbyB0aGV5IGNhbiBiZSB1bmlxdWVseSBpZGVudGlmaWVkIGFuZCByZW1vdmVkIGJhc2VkIG9uIHRoaXMgbmFtZXNwYWNlLlxyXG4gKiBAcmV0dXJucyB0cnVlIC0gd2hlbiBhdCBsZWFzdCBvbmUgb2YgdGhlIGV2ZW50cyB3YXMgcmVnaXN0ZXJlZCBvdGhlcndpc2UgZmFsc2VcclxuICovXHJcbmZ1bmN0aW9uIF9hZGRFdmVudExpc3RlbmVycyhldmVudHMsIGxpc3RlbmVyLCBleGNsdWRlRXZlbnRzLCBldnROYW1lc3BhY2UpIHtcclxuICAgIHZhciBhZGRlZCA9IGZhbHNlO1xyXG4gICAgaWYgKGxpc3RlbmVyICYmIGV2ZW50cyAmJiBldmVudHNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgIGFyckZvckVhY2goZXZlbnRzLCBmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgICAgICAgICBpZiAobmFtZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFleGNsdWRlRXZlbnRzIHx8IGFyckluZGV4T2YoZXhjbHVkZUV2ZW50cywgbmFtZSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkZWQgPSBhZGRFdmVudEhhbmRsZXIobmFtZSwgbGlzdGVuZXIsIGV2dE5hbWVzcGFjZSkgfHwgYWRkZWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBhZGRlZDtcclxufVxyXG4vKipcclxuICogQmluZCB0aGUgbGlzdGVuZXIgdG8gdGhlIGFycmF5IG9mIGV2ZW50c1xyXG4gKiBAcGFyYW0gZXZlbnRzIEFuIHN0cmluZyBhcnJheSBvZiBldmVudCBuYW1lcyB0byBiaW5kIHRoZSBsaXN0ZW5lciB0b1xyXG4gKiBAcGFyYW0gbGlzdGVuZXIgVGhlIGV2ZW50IGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkXHJcbiAqIEBwYXJhbSBleGNsdWRlRXZlbnRzIC0gW09wdGlvbmFsXSBBbiBhcnJheSBvZiBldmVudHMgdGhhdCBzaG91bGQgbm90IGJlIGhvb2tlZCAoaWYgcG9zc2libGUpLCB1bmxlc3Mgbm8gb3RoZXIgZXZlbnRzIGNhbiBiZS5cclxuICogQHBhcmFtIGV2dE5hbWVzcGFjZSAtIFtPcHRpb25hbF0gTmFtZXNwYWNlKHMpIHRvIGFwcGVuZCB0byB0aGUgZXZlbnQgbGlzdGVuZXJzIHNvIHRoZXkgY2FuIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQgYW5kIHJlbW92ZWQgYmFzZWQgb24gdGhpcyBuYW1lc3BhY2UuXHJcbiAqIEByZXR1cm5zIHRydWUgLSB3aGVuIGF0IGxlYXN0IG9uZSBvZiB0aGUgZXZlbnRzIHdhcyByZWdpc3RlcmVkIG90aGVyd2lzZSBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJzKGV2ZW50cywgbGlzdGVuZXIsIGV4Y2x1ZGVFdmVudHMsIGV2dE5hbWVzcGFjZSkge1xyXG4gICAgdmFyIGFkZGVkID0gZmFsc2U7XHJcbiAgICBpZiAobGlzdGVuZXIgJiYgZXZlbnRzICYmIGlzQXJyYXkoZXZlbnRzKSkge1xyXG4gICAgICAgIGFkZGVkID0gX2FkZEV2ZW50TGlzdGVuZXJzKGV2ZW50cywgbGlzdGVuZXIsIGV4Y2x1ZGVFdmVudHMsIGV2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgaWYgKCFhZGRlZCAmJiBleGNsdWRlRXZlbnRzICYmIGV4Y2x1ZGVFdmVudHNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICAvLyBGYWlsZWQgdG8gYWRkIGFueSBsaXN0ZW5lcnMgYW5kIHdlIGV4Y2x1ZGVkIHNvbWUsIHNvIGp1c3QgYXR0ZW1wdCB0byBhZGQgdGhlIGV4Y2x1ZGVkIGV2ZW50c1xyXG4gICAgICAgICAgICBhZGRlZCA9IF9hZGRFdmVudExpc3RlbmVycyhldmVudHMsIGxpc3RlbmVyLCBudWxsLCBldnROYW1lc3BhY2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhZGRlZDtcclxufVxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBsaXN0ZW5lciBmcm9tIHRoZSBhcnJheSBvZiBldmVudHNcclxuICogQHBhcmFtIGV2ZW50cyBBbiBzdHJpbmcgYXJyYXkgb2YgZXZlbnQgbmFtZXMgdG8gYmluZCB0aGUgbGlzdGVuZXIgdG9cclxuICogQHBhcmFtIGxpc3RlbmVyIFRoZSBldmVudCBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZFxyXG4gKiBAcGFyYW0gZXZ0TmFtZXNwYWNlIC0gW09wdGlvbmFsXSBOYW1lc3BhY2UocykgdG8gYXBwZW5kIHRvIHRoZSBldmVudCBsaXN0ZW5lcnMgc28gdGhleSBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBhbmQgcmVtb3ZlZCBiYXNlZCBvbiB0aGlzIG5hbWVzcGFjZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVycyhldmVudHMsIGxpc3RlbmVyLCBldnROYW1lc3BhY2UpIHtcclxuICAgIGlmIChldmVudHMgJiYgaXNBcnJheShldmVudHMpKSB7XHJcbiAgICAgICAgYXJyRm9yRWFjaChldmVudHMsIGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICAgICAgICAgIGlmIChuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICByZW1vdmVFdmVudEhhbmRsZXIobmFtZSwgbGlzdGVuZXIsIGV2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogTGlzdGVuIHRvIHRoZSAnYmVmb3JldW5sb2FkJywgJ3VubG9hZCcgYW5kICdwYWdlaGlkZScgZXZlbnRzIHdoaWNoIGluZGljYXRlcyBhIHBhZ2UgdW5sb2FkIGlzIG9jY3VycmluZyxcclxuICogdGhpcyBkb2VzIE5PVCBsaXN0ZW4gdG8gdGhlICd2aXNpYmlsaXR5Y2hhbmdlJyBldmVudCBhcyB3aGlsZSBpdCBkb2VzIGluZGljYXRlIHRoYXQgdGhlIHBhZ2UgaXMgYmVpbmcgaGlkZGVuXHJcbiAqIGl0IGRvZXMgbm90ICpuZWNlc3NhcmlseSogbWVhbiB0aGF0IHRoZSBwYWdlIGlzIGJlaW5nIGNvbXBsZXRlbHkgdW5sb2FkZWQsIGl0IGNhbiBtZWFuIHRoYXQgdGhlIHVzZXIgaXNcclxuICoganVzdCBuYXZpZ2F0aW5nIHRvIGEgZGlmZmVyZW50IFRhYiBhbmQgbWF5IGNvbWUgYmFjayAod2l0aG91dCB1bmxvYWRpbmcgdGhlIHBhZ2UpLiBBcyBzdWNoIHlvdSBtYXkgYWxzb1xyXG4gKiBuZWVkIHRvIGxpc3RlbiB0byB0aGUgJ2FkZFBhZ2VIaWRlRXZlbnRMaXN0ZW5lcicgYW5kICdhZGRQYWdlU2hvd0V2ZW50TGlzdGVuZXInIGV2ZW50cy5cclxuICogQHBhcmFtIGxpc3RlbmVyIC0gVGhlIGV2ZW50IGNhbGxiYWNrIHRvIGNhbGwgd2hlbiBhIHBhZ2UgdW5sb2FkIGV2ZW50IGlzIHRyaWdnZXJlZFxyXG4gKiBAcGFyYW0gZXhjbHVkZUV2ZW50cyAtIFtPcHRpb25hbF0gQW4gYXJyYXkgb2YgZXZlbnRzIHRoYXQgc2hvdWxkIG5vdCBiZSBob29rZWQsIHVubGVzcyBubyBvdGhlciBldmVudHMgY2FuIGJlLlxyXG4gKiBAcGFyYW0gZXZ0TmFtZXNwYWNlIC0gW09wdGlvbmFsXSBOYW1lc3BhY2UocykgdG8gYXBwZW5kIHRvIHRoZSBldmVudCBsaXN0ZW5lcnMgc28gdGhleSBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBhbmQgcmVtb3ZlZCBiYXNlZCBvbiB0aGlzIG5hbWVzcGFjZS5cclxuICogQHJldHVybnMgdHJ1ZSAtIHdoZW4gYXQgbGVhc3Qgb25lIG9mIHRoZSBldmVudHMgd2FzIHJlZ2lzdGVyZWQgb3RoZXJ3aXNlIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkUGFnZVVubG9hZEV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGV4Y2x1ZGVFdmVudHMsIGV2dE5hbWVzcGFjZSkge1xyXG4gICAgLy8gSG9vayB0aGUgdW5sb2FkIGV2ZW50IGZvciB0aGUgZG9jdW1lbnQsIHdpbmRvdyBhbmQgYm9keSB0byBlbnN1cmUgdGhhdCB0aGUgY2xpZW50IGV2ZW50cyBhcmUgZmx1c2hlZCB0byB0aGUgc2VydmVyXHJcbiAgICAvLyBBcyBqdXN0IGhvb2tpbmcgdGhlIHdpbmRvdyBkb2VzIG5vdCBhbHdheXMgZmlyZSAob24gY2hyb21lKSBmb3IgcGFnZSBuYXZpZ2F0aW9uJ3MuXHJcbiAgICByZXR1cm4gYWRkRXZlbnRMaXN0ZW5lcnMoW3N0ckJlZm9yZVVubG9hZCwgc3RyVW5sb2FkLCBzdHJQYWdlSGlkZV0sIGxpc3RlbmVyLCBleGNsdWRlRXZlbnRzLCBldnROYW1lc3BhY2UpO1xyXG59XHJcbi8qKlxyXG4gKiBSZW1vdmUgYW55IG1hdGNoaW5nICdiZWZvcmV1bmxvYWQnLCAndW5sb2FkJyBhbmQgJ3BhZ2VoaWRlJyBldmVudHMgdGhhdCBtYXkgaGF2ZSBiZWVuIGFkZGVkIHZpYSBhZGRFdmVudExpc3RlbmVyLFxyXG4gKiBhZGRFdmVudExpc3RlbmVycywgYWRkUGFnZVVubG9hZEV2ZW50TGlzdGVuZXIgb3IgYWRkUGFnZUhpZGVFdmVudExpc3RlbmVyLlxyXG4gKiBAcGFyYW0gbGlzdGVuZXIgLSBUaGUgc3BlY2lmaWMgZXZlbnQgY2FsbGJhY2sgdG8gdG8gYmUgcmVtb3ZlZFxyXG4gKiBAcGFyYW0gZXZ0TmFtZXNwYWNlIC0gW09wdGlvbmFsXSBOYW1lc3BhY2UocykgdW5pcXVlbHkgaWRlbnRpZmllZCBhbmQgcmVtb3ZlZCBiYXNlZCBvbiB0aGlzIG5hbWVzcGFjZS5cclxuICogQHJldHVybnMgdHJ1ZSAtIHdoZW4gYXQgbGVhc3Qgb25lIG9mIHRoZSBldmVudHMgd2FzIHJlZ2lzdGVyZWQgb3RoZXJ3aXNlIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGFnZVVubG9hZEV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGV2dE5hbWVzcGFjZSkge1xyXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoW3N0ckJlZm9yZVVubG9hZCwgc3RyVW5sb2FkLCBzdHJQYWdlSGlkZV0sIGxpc3RlbmVyLCBldnROYW1lc3BhY2UpO1xyXG59XHJcbi8qKlxyXG4gKiBMaXN0ZW4gdG8gdGhlIHBhZ2VoaWRlIGFuZCB2aXNpYmlsaXR5IGNoYW5naW5nIHRvICdoaWRkZW4nIGV2ZW50cywgYmVjYXVzZSB0aGUgJ3Zpc2liaWxpdHljaGFuZ2UnIHVzZXNcclxuICogYW4gaW50ZXJuYWwgcHJveHkgdG8gZGV0ZWN0IHRoZSB2aXNpYmlsaXR5IHN0YXRlIHlvdSBTSE9VTEQgdXNlIGEgdW5pcXVlIG5hbWVzcGFjZSB3aGVuIGlmIHlvdSBwbGFuIHRvIGNhbGxcclxuICogcmVtb3ZlUGFnZVNob3dFdmVudExpc3RlbmVyIGFzIHRoZSByZW1vdmUgaWdub3JlcyB0aGUgbGlzdGVuZXIgYXJndW1lbnQgZm9yIHRoZSAndmlzaWJpbGl0eWNoYW5nZScgZXZlbnQuXHJcbiAqIEBwYXJhbSBsaXN0ZW5lciAtIFRoZSBldmVudCBjYWxsYmFjayB0byBjYWxsIHdoZW4gYSBwYWdlIGhpZGUgZXZlbnQgaXMgdHJpZ2dlcmVkXHJcbiAqIEBwYXJhbSBleGNsdWRlRXZlbnRzIC0gW09wdGlvbmFsXSBBbiBhcnJheSBvZiBldmVudHMgdGhhdCBzaG91bGQgbm90IGJlIGhvb2tlZCAoaWYgcG9zc2libGUpLCB1bmxlc3Mgbm8gb3RoZXIgZXZlbnRzIGNhbiBiZS5cclxuICogQHBhcmFtIGV2dE5hbWVzcGFjZSAtIFtPcHRpb25hbF0gQSBOYW1lc3BhY2UgdG8gYXBwZW5kIHRvIHRoZSBldmVudCBsaXN0ZW5lcnMgc28gdGhleSBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZCBhbmQgcmVtb3ZlZFxyXG4gKiBiYXNlZCBvbiB0aGlzIG5hbWVzcGFjZS4gVGhpcyBjYWxsIGFsc28gYWRkcyBhbiBhZGRpdGlvbmFsIHVuaXF1ZSBcInBhZ2VzaG93XCIgbmFtZXNwYWNlIHRvIHRoZSBldmVudHNcclxuICogc28gdGhhdCBvbmx5IHRoZSBtYXRjaGluZyBcInJlbW92ZVBhZ2VIaWRlRXZlbnRMaXN0ZW5lclwiIGNhbiByZW1vdmUgdGhlc2UgZXZlbnRzLlxyXG4gKiBTdWdnZXN0aW9uOiBwYXNzIGFzIHRydWUgaWYgeW91IGFyZSBhbHNvIGNhbGxpbmcgYWRkUGFnZVVubG9hZEV2ZW50TGlzdGVuZXIgYXMgdGhhdCBhbHNvIGhvb2tzIHBhZ2VoaWRlXHJcbiAqIEByZXR1cm5zIHRydWUgLSB3aGVuIGF0IGxlYXN0IG9uZSBvZiB0aGUgZXZlbnRzIHdhcyByZWdpc3RlcmVkIG90aGVyd2lzZSBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhZ2VIaWRlRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgZXhjbHVkZUV2ZW50cywgZXZ0TmFtZXNwYWNlKSB7XHJcbiAgICBmdW5jdGlvbiBfaGFuZGxlUGFnZVZpc2liaWxpdHkoZXZ0KSB7XHJcbiAgICAgICAgdmFyIGRvYyA9IGdldERvY3VtZW50KCk7XHJcbiAgICAgICAgaWYgKGxpc3RlbmVyICYmIGRvYyAmJiBkb2MudmlzaWJpbGl0eVN0YXRlID09PSBcImhpZGRlblwiKSB7XHJcbiAgICAgICAgICAgIGxpc3RlbmVyKGV2dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gYWRkIHRoZSB1bmlxdWUgcGFnZSBzaG93IG5hbWVzcGFjZSB0byBhbnkgcHJvdmlkZWQgbmFtZXNwYWNlIHNvIHdlIGNhbiBvbmx5IHJlbW92ZSB0aGUgb25lcyBhZGRlZCBieSBcInBhZ2VoaWRlXCJcclxuICAgIHZhciBuZXdOYW1lc3BhY2VzID0gbWVyZ2VFdnROYW1lc3BhY2Uoc3RyUGFnZUhpZGVOYW1lc3BhY2UsIGV2dE5hbWVzcGFjZSk7XHJcbiAgICB2YXIgcGFnZVVubG9hZEFkZGVkID0gX2FkZEV2ZW50TGlzdGVuZXJzKFtzdHJQYWdlSGlkZV0sIGxpc3RlbmVyLCBleGNsdWRlRXZlbnRzLCBuZXdOYW1lc3BhY2VzKTtcclxuICAgIGlmICghZXhjbHVkZUV2ZW50cyB8fCBhcnJJbmRleE9mKGV4Y2x1ZGVFdmVudHMsIHN0clZpc2liaWxpdHlDaGFuZ2VFdnQpID09PSAtMSkge1xyXG4gICAgICAgIHBhZ2VVbmxvYWRBZGRlZCA9IF9hZGRFdmVudExpc3RlbmVycyhbc3RyVmlzaWJpbGl0eUNoYW5nZUV2dF0sIF9oYW5kbGVQYWdlVmlzaWJpbGl0eSwgZXhjbHVkZUV2ZW50cywgbmV3TmFtZXNwYWNlcykgfHwgcGFnZVVubG9hZEFkZGVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFwYWdlVW5sb2FkQWRkZWQgJiYgZXhjbHVkZUV2ZW50cykge1xyXG4gICAgICAgIC8vIEZhaWxlZCB0byBhZGQgYW55IGxpc3RlbmVycyBhbmQgd2Ugd2hlcmUgcmVxdWVzdGVkIHRvIGV4Y2x1ZGUgc29tZSwgc28ganVzdCBjYWxsIGFnYWluIHdpdGhvdXQgZXhjbHVkaW5nIGFueXRoaW5nXHJcbiAgICAgICAgcGFnZVVubG9hZEFkZGVkID0gYWRkUGFnZUhpZGVFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBudWxsLCBldnROYW1lc3BhY2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhZ2VVbmxvYWRBZGRlZDtcclxufVxyXG4vKipcclxuICogUmVtb3ZlcyB0aGUgcGFnZUhpZGUgZXZlbnQgbGlzdGVuZXJzIGFkZGVkIGJ5IGFkZFBhZ2VIaWRlRXZlbnRMaXN0ZW5lciwgYmVjYXVzZSB0aGUgJ3Zpc2liaWxpdHljaGFuZ2UnIHVzZXNcclxuICogYW4gaW50ZXJuYWwgcHJveHkgdG8gZGV0ZWN0IHRoZSB2aXNpYmlsaXR5IHN0YXRlIHlvdSBTSE9VTEQgdXNlIGEgdW5pcXVlIG5hbWVzcGFjZSB3aGVuIGNhbGxpbmcgYWRkUGFnZUhpZGVFdmVudExpc3RlbmVyXHJcbiAqIGFzIHRoZSByZW1vdmUgaWdub3JlcyB0aGUgbGlzdGVuZXIgYXJndW1lbnQgZm9yIHRoZSAndmlzaWJpbGl0eWNoYW5nZScgZXZlbnQuXHJcbiAqIEBwYXJhbSBsaXN0ZW5lciAtIFRoZSBzcGVjaWZpYyBsaXN0ZW5lciB0byByZW1vdmUgZm9yIHRoZSAncGFnZXNob3cnIGV2ZW50IG9ubHkgKGlnbm9yZWQgZm9yICd2aXNpYmlsaXR5Y2hhbmdlJylcclxuICogQHBhcmFtIGV2dE5hbWVzcGFjZSAtIFRoZSB1bmlxdWUgbmFtZXNwYWNlIHVzZWQgd2hlbiBjYWxsaW5nIGFkZFBhZ2VTaG93RXZlbnRMaXN0ZW5lclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVBhZ2VIaWRlRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgZXZ0TmFtZXNwYWNlKSB7XHJcbiAgICAvLyBhZGQgdGhlIHVuaXF1ZSBwYWdlIHNob3cgbmFtZXNwYWNlIHRvIGFueSBwcm92aWRlZCBuYW1lc3BhY2Ugc28gd2Ugb25seSByZW1vdmUgdGhlIG9uZXMgYWRkZWQgYnkgXCJwYWdlaGlkZVwiXHJcbiAgICB2YXIgbmV3TmFtZXNwYWNlcyA9IG1lcmdlRXZ0TmFtZXNwYWNlKHN0clBhZ2VIaWRlTmFtZXNwYWNlLCBldnROYW1lc3BhY2UpO1xyXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoW3N0clBhZ2VIaWRlXSwgbGlzdGVuZXIsIG5ld05hbWVzcGFjZXMpO1xyXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoW3N0clZpc2liaWxpdHlDaGFuZ2VFdnRdLCBudWxsLCBuZXdOYW1lc3BhY2VzKTtcclxufVxyXG4vKipcclxuICogTGlzdGVuIHRvIHRoZSBwYWdlc2hvdyBhbmQgdmlzaWJpbGl0eSBjaGFuZ2luZyB0byAndmlzaWJsZScgZXZlbnRzLCBiZWNhdXNlIHRoZSAndmlzaWJpbGl0eWNoYW5nZScgdXNlc1xyXG4gKiBhbiBpbnRlcm5hbCBwcm94eSB0byBkZXRlY3QgdGhlIHZpc2liaWxpdHkgc3RhdGUgeW91IFNIT1VMRCB1c2UgYSB1bmlxdWUgbmFtZXNwYWNlIHdoZW4gaWYgeW91IHBsYW4gdG8gY2FsbFxyXG4gKiByZW1vdmVQYWdlU2hvd0V2ZW50TGlzdGVuZXIgYXMgdGhlIHJlbW92ZSBpZ25vcmVzIHRoZSBsaXN0ZW5lciBhcmd1bWVudCBmb3IgdGhlICd2aXNpYmlsaXR5Y2hhbmdlJyBldmVudC5cclxuICogQHBhcmFtIGxpc3RlbmVyIC0gVGhlIGV2ZW50IGNhbGxiYWNrIHRvIGNhbGwgd2hlbiBhIHBhZ2UgaXMgc2hvdyBldmVudCBpcyB0cmlnZ2VyZWRcclxuICogQHBhcmFtIGV4Y2x1ZGVFdmVudHMgLSBbT3B0aW9uYWxdIEFuIGFycmF5IG9mIGV2ZW50cyB0aGF0IHNob3VsZCBub3QgYmUgaG9va2VkIChpZiBwb3NzaWJsZSksIHVubGVzcyBubyBvdGhlciBldmVudHMgY2FuIGJlLlxyXG4gKiBAcGFyYW0gZXZ0TmFtZXNwYWNlIC0gW09wdGlvbmFsL1JlY29tbWVuZGVkXSBBIE5hbWVzcGFjZSB0byBhcHBlbmQgdG8gdGhlIGV2ZW50IGxpc3RlbmVycyBzbyB0aGV5IGNhbiBiZSB1bmlxdWVseVxyXG4gKiBpZGVudGlmaWVkIGFuZCByZW1vdmVkIGJhc2VkIG9uIHRoaXMgbmFtZXNwYWNlLiBUaGlzIGNhbGwgYWxzbyBhZGRzIGFuIGFkZGl0aW9uYWwgdW5pcXVlIFwicGFnZXNob3dcIiBuYW1lc3BhY2UgdG8gdGhlIGV2ZW50c1xyXG4gKiBzbyB0aGF0IG9ubHkgdGhlIG1hdGNoaW5nIFwicmVtb3ZlUGFnZVNob3dFdmVudExpc3RlbmVyXCIgY2FuIHJlbW92ZSB0aGVzZSBldmVudHMuXHJcbiAqIEByZXR1cm5zIHRydWUgLSB3aGVuIGF0IGxlYXN0IG9uZSBvZiB0aGUgZXZlbnRzIHdhcyByZWdpc3RlcmVkIG90aGVyd2lzZSBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhZ2VTaG93RXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgZXhjbHVkZUV2ZW50cywgZXZ0TmFtZXNwYWNlKSB7XHJcbiAgICBmdW5jdGlvbiBfaGFuZGxlUGFnZVZpc2liaWxpdHkoZXZ0KSB7XHJcbiAgICAgICAgdmFyIGRvYyA9IGdldERvY3VtZW50KCk7XHJcbiAgICAgICAgaWYgKGxpc3RlbmVyICYmIGRvYyAmJiBkb2MudmlzaWJpbGl0eVN0YXRlID09PSBcInZpc2libGVcIikge1xyXG4gICAgICAgICAgICBsaXN0ZW5lcihldnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGFkZCB0aGUgdW5pcXVlIHBhZ2Ugc2hvdyBuYW1lc3BhY2UgdG8gYW55IHByb3ZpZGVkIG5hbWVzcGFjZSBzbyB3ZSBjYW4gb25seSByZW1vdmUgdGhlIG9uZXMgYWRkZWQgYnkgXCJwYWdlc2hvd1wiXHJcbiAgICB2YXIgbmV3TmFtZXNwYWNlcyA9IG1lcmdlRXZ0TmFtZXNwYWNlKHN0clBhZ2VTaG93TmFtZXNwYWNlLCBldnROYW1lc3BhY2UpO1xyXG4gICAgdmFyIHBhZ2VTaG93QWRkZWQgPSBfYWRkRXZlbnRMaXN0ZW5lcnMoW3N0clBhZ2VTaG93XSwgbGlzdGVuZXIsIGV4Y2x1ZGVFdmVudHMsIG5ld05hbWVzcGFjZXMpO1xyXG4gICAgcGFnZVNob3dBZGRlZCA9IF9hZGRFdmVudExpc3RlbmVycyhbc3RyVmlzaWJpbGl0eUNoYW5nZUV2dF0sIF9oYW5kbGVQYWdlVmlzaWJpbGl0eSwgZXhjbHVkZUV2ZW50cywgbmV3TmFtZXNwYWNlcykgfHwgcGFnZVNob3dBZGRlZDtcclxuICAgIGlmICghcGFnZVNob3dBZGRlZCAmJiBleGNsdWRlRXZlbnRzKSB7XHJcbiAgICAgICAgLy8gRmFpbGVkIHRvIGFkZCBhbnkgbGlzdGVuZXJzIGFuZCB3ZSB3aGVyZSByZXF1ZXN0ZWQgdG8gZXhjbHVkZSBzb21lLCBzbyBqdXN0IGNhbGwgYWdhaW4gd2l0aG91dCBleGNsdWRpbmcgYW55dGhpbmdcclxuICAgICAgICBwYWdlU2hvd0FkZGVkID0gYWRkUGFnZVNob3dFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBudWxsLCBldnROYW1lc3BhY2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhZ2VTaG93QWRkZWQ7XHJcbn1cclxuLyoqXHJcbiAqIFJlbW92ZXMgdGhlIHBhZ2VTaG93IGV2ZW50IGxpc3RlbmVycyBhZGRlZCBieSBhZGRQYWdlU2hvd0V2ZW50TGlzdGVuZXIsIGJlY2F1c2UgdGhlICd2aXNpYmlsaXR5Y2hhbmdlJyB1c2VzXHJcbiAqIGFuIGludGVybmFsIHByb3h5IHRvIGRldGVjdCB0aGUgdmlzaWJpbGl0eSBzdGF0ZSB5b3UgU0hPVUxEIHVzZSBhIHVuaXF1ZSBuYW1lc3BhY2Ugd2hlbiBjYWxsaW5nIGFkZFBhZ2VTaG93RXZlbnRMaXN0ZW5lclxyXG4gKiBhcyB0aGUgcmVtb3ZlIGlnbm9yZXMgdGhlIGxpc3RlbmVyIGFyZ3VtZW50IGZvciB0aGUgJ3Zpc2liaWxpdHljaGFuZ2UnIGV2ZW50LlxyXG4gKiBAcGFyYW0gbGlzdGVuZXIgLSBUaGUgc3BlY2lmaWMgbGlzdGVuZXIgdG8gcmVtb3ZlIGZvciB0aGUgJ3BhZ2VzaG93JyBldmVudCBvbmx5IChpZ25vcmVkIGZvciAndmlzaWJpbGl0eWNoYW5nZScpXHJcbiAqIEBwYXJhbSBldnROYW1lc3BhY2UgLSBUaGUgdW5pcXVlIG5hbWVzcGFjZSB1c2VkIHdoZW4gY2FsbGluZyBhZGRQYWdlU2hvd0V2ZW50TGlzdGVuZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQYWdlU2hvd0V2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGV2dE5hbWVzcGFjZSkge1xyXG4gICAgLy8gYWRkIHRoZSB1bmlxdWUgcGFnZSBzaG93IG5hbWVzcGFjZSB0byBhbnkgcHJvdmlkZWQgbmFtZXNwYWNlIHNvIHdlIG9ubHkgcmVtb3ZlIHRoZSBvbmVzIGFkZGVkIGJ5IFwicGFnZXNob3dcIlxyXG4gICAgdmFyIG5ld05hbWVzcGFjZXMgPSBtZXJnZUV2dE5hbWVzcGFjZShzdHJQYWdlU2hvd05hbWVzcGFjZSwgZXZ0TmFtZXNwYWNlKTtcclxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJzKFtzdHJQYWdlU2hvd10sIGxpc3RlbmVyLCBuZXdOYW1lc3BhY2VzKTtcclxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJzKFtzdHJWaXNpYmlsaXR5Q2hhbmdlRXZ0XSwgbnVsbCwgbmV3TmFtZXNwYWNlcyk7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXZlbnRIZWxwZXJzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcblwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQgeyBvYmpDcmVhdGVGbiwgc3RyU2hpbVVuZGVmaW5lZCB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtc2hpbXNcIjtcclxuaW1wb3J0IHsgX0RZTl9MRU5HVEgsIF9EWU5fUFVTSCwgX0RZTl9TRVRfRU5BQkxFRCwgX0RZTl9TVUJTVFIsIF9EWU5fU1VCU1RSSU5HIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBfZ2JsQ29va2llTWdyIH0gZnJvbSBcIi4vQ29va2llTWdyXCI7XHJcbmltcG9ydCB7IGdldFBlcmZvcm1hbmNlLCBpc0lFIH0gZnJvbSBcIi4vRW52VXRpbHNcIjtcclxuaW1wb3J0IHsgYWRkRXZlbnRIYW5kbGVyLCBhdHRhY2hFdmVudCwgZGV0YWNoRXZlbnQgfSBmcm9tIFwiLi9FdmVudEhlbHBlcnNcIjtcclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgYXJySW5kZXhPZiwgYXJyTWFwLCBhcnJSZWR1Y2UsIGRhdGVOb3csIGhhc093blByb3BlcnR5LCBpc0FycmF5LCBpc0Jvb2xlYW4sIGlzRGF0ZSwgaXNFcnJvciwgaXNGdW5jdGlvbiwgaXNOdWxsT3JVbmRlZmluZWQsIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIGlzVHlwZW9mLCBpc1VuZGVmaW5lZCwgb2JqRGVmaW5lQWNjZXNzb3JzLCBvYmpLZXlzLCBzdHJUcmltLCB0b0lTT1N0cmluZyB9IGZyb20gXCIuL0hlbHBlckZ1bmNzXCI7XHJcbmltcG9ydCB7IFNUUl9FTVBUWSB9IGZyb20gXCIuL0ludGVybmFsQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IG13Y1JhbmRvbTMyLCBtd2NSYW5kb21TZWVkLCBuZXdJZCwgcmFuZG9tMzIsIHJhbmRvbVZhbHVlIH0gZnJvbSBcIi4vUmFuZG9tSGVscGVyXCI7XHJcbnZhciBfY29va2llTWdycyA9IG51bGw7XHJcbnZhciBfY2FuVXNlQ29va2llczsgLy8gbGVnYWN5IHN1cHBvcnRlZCBjb25maWdcclxuLy8gQWRkZWQgdG8gaGVscCB3aXRoIG1pbmZpY2F0aW9uXHJcbmV4cG9ydCB2YXIgVW5kZWZpbmVkID0gc3RyU2hpbVVuZGVmaW5lZDtcclxuZXhwb3J0IGZ1bmN0aW9uIG5ld0d1aWQoKSB7XHJcbiAgICB2YXIgdXVpZCA9IGdlbmVyYXRlVzNDSWQoKTtcclxuICAgIHJldHVybiB1dWlkW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgwLCA4KSArIFwiLVwiICsgdXVpZFtfRFlOX1NVQlNUUklORyAvKiBAbWluOiUyZXN1YnN0cmluZyAqL10oOCwgMTIpICsgXCItXCIgKyB1dWlkW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgxMiwgMTYpICsgXCItXCIgKyB1dWlkW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgxNiwgMjApICsgXCItXCIgKyB1dWlkW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgyMCk7XHJcbn1cclxuLyoqXHJcbiAqIFJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgUGVyZm9ybWFuY2UgQXBpIG5vdygpIGZ1bmN0aW9uIChpZiBhdmFpbGFibGUpIGFuZCBmYWxsYmFjayB0byBkYXRlTm93KCkgaWYgaXQgaXMgdW5hdmFpbGFibGUgKElFOSBvciBsZXNzKVxyXG4gKiBodHRwczovL2Nhbml1c2UuY29tLyNzZWFyY2g9cGVyZm9ybWFuY2Uubm93XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcGVyZk5vdygpIHtcclxuICAgIHZhciBwZXJmID0gZ2V0UGVyZm9ybWFuY2UoKTtcclxuICAgIGlmIChwZXJmICYmIHBlcmYubm93KSB7XHJcbiAgICAgICAgcmV0dXJuIHBlcmYubm93KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZU5vdygpO1xyXG59XHJcbi8qKlxyXG4gKiBUaGUgc3RyRW5kc1dpdGgoKSBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgY2hhcmFjdGVycyBvZiBhIHNwZWNpZmllZCBzdHJpbmcsIHJldHVybmluZyB0cnVlIG9yIGZhbHNlIGFzIGFwcHJvcHJpYXRlLlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2sgd2hldGhlciBpdCBlbmRzIHdpdGggdGhlIHNlYXJjaCB2YWx1ZS5cclxuICogQHBhcmFtIHNlYXJjaCAtIFRoZSBjaGFyYWN0ZXJzIHRvIGJlIHNlYXJjaGVkIGZvciBhdCB0aGUgZW5kIG9mIHRoZSB2YWx1ZS5cclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gc2VhcmNoIHZhbHVlIGlzIGZvdW5kIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0ckVuZHNXaXRoKHZhbHVlLCBzZWFyY2gpIHtcclxuICAgIGlmICh2YWx1ZSAmJiBzZWFyY2gpIHtcclxuICAgICAgICB2YXIgbGVuID0gdmFsdWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgIHZhciBzdGFydCA9IGxlbiAtIHNlYXJjaFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlW19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXShzdGFydCA+PSAwID8gc3RhcnQgOiAwLCBsZW4pID09PSBzZWFyY2g7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuLyoqXHJcbiAqIGdlbmVyYXRlIFczQyB0cmFjZSBpZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVzNDSWQoKSB7XHJcbiAgICB2YXIgaGV4VmFsdWVzID0gW1wiMFwiLCBcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCIsIFwiNlwiLCBcIjdcIiwgXCI4XCIsIFwiOVwiLCBcImFcIiwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIFwiZlwiXTtcclxuICAgIC8vIHJmYzQxMjIgdmVyc2lvbiA0IFVVSUQgd2l0aG91dCBkYXNoZXMgYW5kIHdpdGggbG93ZXJjYXNlIGxldHRlcnNcclxuICAgIHZhciBvY3QgPSBTVFJfRU1QVFksIHRtcDtcclxuICAgIGZvciAodmFyIGEgPSAwOyBhIDwgNDsgYSsrKSB7XHJcbiAgICAgICAgdG1wID0gcmFuZG9tMzIoKTtcclxuICAgICAgICBvY3QgKz1cclxuICAgICAgICAgICAgaGV4VmFsdWVzW3RtcCAmIDB4Rl0gK1xyXG4gICAgICAgICAgICAgICAgaGV4VmFsdWVzW3RtcCA+PiA0ICYgMHhGXSArXHJcbiAgICAgICAgICAgICAgICBoZXhWYWx1ZXNbdG1wID4+IDggJiAweEZdICtcclxuICAgICAgICAgICAgICAgIGhleFZhbHVlc1t0bXAgPj4gMTIgJiAweEZdICtcclxuICAgICAgICAgICAgICAgIGhleFZhbHVlc1t0bXAgPj4gMTYgJiAweEZdICtcclxuICAgICAgICAgICAgICAgIGhleFZhbHVlc1t0bXAgPj4gMjAgJiAweEZdICtcclxuICAgICAgICAgICAgICAgIGhleFZhbHVlc1t0bXAgPj4gMjQgJiAweEZdICtcclxuICAgICAgICAgICAgICAgIGhleFZhbHVlc1t0bXAgPj4gMjggJiAweEZdO1xyXG4gICAgfVxyXG4gICAgLy8gXCJTZXQgdGhlIHR3byBtb3N0IHNpZ25pZmljYW50IGJpdHMgKGJpdHMgNiBhbmQgNykgb2YgdGhlIGNsb2NrX3NlcV9oaV9hbmRfcmVzZXJ2ZWQgdG8gemVybyBhbmQgb25lLCByZXNwZWN0aXZlbHlcIlxyXG4gICAgdmFyIGNsb2NrU2VxdWVuY2VIaSA9IGhleFZhbHVlc1s4ICsgKHJhbmRvbTMyKCkgJiAweDAzKSB8IDBdO1xyXG4gICAgcmV0dXJuIG9jdFtfRFlOX1NVQlNUUiAvKiBAbWluOiUyZXN1YnN0ciAqL10oMCwgOCkgKyBvY3RbX0RZTl9TVUJTVFIgLyogQG1pbjolMmVzdWJzdHIgKi9dKDksIDQpICsgXCI0XCIgKyBvY3RbX0RZTl9TVUJTVFIgLyogQG1pbjolMmVzdWJzdHIgKi9dKDEzLCAzKSArIGNsb2NrU2VxdWVuY2VIaSArIG9jdFtfRFlOX1NVQlNUUiAvKiBAbWluOiUyZXN1YnN0ciAqL10oMTYsIDMpICsgb2N0W19EWU5fU1VCU1RSIC8qIEBtaW46JTJlc3Vic3RyICovXSgxOSwgMTIpO1xyXG59XHJcbi8qKlxyXG4gKiBQcm92aWRlcyBhIGNvbGxlY3Rpb24gb2YgdXRpbGl0eSBmdW5jdGlvbnMsIGluY2x1ZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgcmVsZWFzZXMuXHJcbiAqIEBkZXByZWNhdGVkIE1hcmtpbmcgdGhpcyBpbnN0YW5jZSBhcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGRpcmVjdCB1c2FnZSBvZiB0aGUgaGVscGVyIGZ1bmN0aW9uc1xyXG4gKiBhcyBkaXJlY3QgdXNhZ2UgcHJvdmlkZXMgYmV0dGVyIHRyZWUtc2hha2luZyBhbmQgbWluaWZpY2F0aW9uIGJ5IGF2b2lkaW5nIHRoZSBpbmNsdXNpb24gb2YgdGhlIHVudXNlZCBpdGVtc1xyXG4gKiBpbiB5b3VyIHJlc3VsdGluZyBjb2RlLlxyXG4gKi9cclxuZXhwb3J0IHZhciBDb3JlVXRpbHMgPSB7XHJcbiAgICBfY2FuVXNlQ29va2llczogdW5kZWZpbmVkLFxyXG4gICAgaXNUeXBlb2Y6IGlzVHlwZW9mLFxyXG4gICAgaXNVbmRlZmluZWQ6IGlzVW5kZWZpbmVkLFxyXG4gICAgaXNOdWxsT3JVbmRlZmluZWQ6IGlzTnVsbE9yVW5kZWZpbmVkLFxyXG4gICAgaGFzT3duUHJvcGVydHk6IGhhc093blByb3BlcnR5LFxyXG4gICAgaXNGdW5jdGlvbjogaXNGdW5jdGlvbixcclxuICAgIGlzT2JqZWN0OiBpc09iamVjdCxcclxuICAgIGlzRGF0ZTogaXNEYXRlLFxyXG4gICAgaXNBcnJheTogaXNBcnJheSxcclxuICAgIGlzRXJyb3I6IGlzRXJyb3IsXHJcbiAgICBpc1N0cmluZzogaXNTdHJpbmcsXHJcbiAgICBpc051bWJlcjogaXNOdW1iZXIsXHJcbiAgICBpc0Jvb2xlYW46IGlzQm9vbGVhbixcclxuICAgIHRvSVNPU3RyaW5nOiB0b0lTT1N0cmluZyxcclxuICAgIGFyckZvckVhY2g6IGFyckZvckVhY2gsXHJcbiAgICBhcnJJbmRleE9mOiBhcnJJbmRleE9mLFxyXG4gICAgYXJyTWFwOiBhcnJNYXAsXHJcbiAgICBhcnJSZWR1Y2U6IGFyclJlZHVjZSxcclxuICAgIHN0clRyaW06IHN0clRyaW0sXHJcbiAgICBvYmpDcmVhdGU6IG9iakNyZWF0ZUZuLFxyXG4gICAgb2JqS2V5czogb2JqS2V5cyxcclxuICAgIG9iakRlZmluZUFjY2Vzc29yczogb2JqRGVmaW5lQWNjZXNzb3JzLFxyXG4gICAgYWRkRXZlbnRIYW5kbGVyOiBhZGRFdmVudEhhbmRsZXIsXHJcbiAgICBkYXRlTm93OiBkYXRlTm93LFxyXG4gICAgaXNJRTogaXNJRSxcclxuICAgIGRpc2FibGVDb29raWVzOiBkaXNhYmxlQ29va2llcyxcclxuICAgIG5ld0d1aWQ6IG5ld0d1aWQsXHJcbiAgICBwZXJmTm93OiBwZXJmTm93LFxyXG4gICAgbmV3SWQ6IG5ld0lkLFxyXG4gICAgcmFuZG9tVmFsdWU6IHJhbmRvbVZhbHVlLFxyXG4gICAgcmFuZG9tMzI6IHJhbmRvbTMyLFxyXG4gICAgbXdjUmFuZG9tU2VlZDogbXdjUmFuZG9tU2VlZCxcclxuICAgIG13Y1JhbmRvbTMyOiBtd2NSYW5kb20zMixcclxuICAgIGdlbmVyYXRlVzNDSWQ6IGdlbmVyYXRlVzNDSWRcclxufTtcclxudmFyIEd1aWRSZWdleCA9IC9beHldL2c7XHJcbmV4cG9ydCB2YXIgRXZlbnRIZWxwZXIgPSB7XHJcbiAgICBBdHRhY2g6IGF0dGFjaEV2ZW50LFxyXG4gICAgQXR0YWNoRXZlbnQ6IGF0dGFjaEV2ZW50LFxyXG4gICAgRGV0YWNoOiBkZXRhY2hFdmVudCxcclxuICAgIERldGFjaEV2ZW50OiBkZXRhY2hFdmVudFxyXG59O1xyXG4vKipcclxuICogSGVscGVyIHRvIHN1cHBvcnQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNlcnMgdGhhdCB1c2UgdGhlIGxlZ2FjeSBjb29raWUgaGFuZGxpbmcgZnVuY3Rpb25zIGFuZCB0aGUgdXNlIHRoZSBpbnRlcm5hbFxyXG4gKiBDb3JlVXRpbHMuX2NhblVzZUNvb2tpZXMgZ2xvYmFsIGZsYWcgdG8gZW5hYmxlL2Rpc2FibGUgY29va2llcyB1c2FnZS5cclxuICogTm90ZTogVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkZWxpYmVyYXRlIHNpZGUtZWZmZWN0c1xyXG4gKiAtIENyZWF0ZXMgdGhlIGdsb2JhbCAobGVnYWN5KSBjb29raWUgbWFuYWdlciBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0XHJcbiAqIC0gQXR0ZW1wdHMgdG8gYWRkIFwibGlzdGVuZXJzXCIgdG8gdGhlIENvcmVVdGlscy5fY2FuVXNlQ29va2llcyBwcm9wZXJ0eSB0byBzdXBwb3J0IHRoZSBsZWdhY3kgdXNhZ2VcclxuICogQHBhcmFtIGNvbmZpZ1xyXG4gKiBAcGFyYW0gbG9nZ2VyXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX2xlZ2FjeUNvb2tpZU1ncihjb25maWcsIGxvZ2dlcikge1xyXG4gICAgdmFyIGNvb2tpZU1nciA9IF9nYmxDb29raWVNZ3IoY29uZmlnLCBsb2dnZXIpO1xyXG4gICAgdmFyIGxlZ2FjeUNhblVzZUNvb2tpZXMgPSBDb3JlVXRpbHMuX2NhblVzZUNvb2tpZXM7XHJcbiAgICBpZiAoX2Nvb2tpZU1ncnMgPT09IG51bGwpIHtcclxuICAgICAgICBfY29va2llTWdycyA9IFtdO1xyXG4gICAgICAgIF9jYW5Vc2VDb29raWVzID0gbGVnYWN5Q2FuVXNlQ29va2llcztcclxuICAgICAgICAvLyBEeW5hbWljYWxseSBjcmVhdGUgZ2V0L3NldCBwcm9wZXJ0eSBhY2Nlc3NvcnMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGVuYWJsaW5nIC8gZGlzYWJsaW5nIGNvb2tpZXNcclxuICAgICAgICAvLyB0aGlzIFdJTEwgTk9UIHdvcmsgZm9yIEVTMyBicm93c2VycyAoPCBJRTgpXHJcbiAgICAgICAgb2JqRGVmaW5lQWNjZXNzb3JzKENvcmVVdGlscywgXCJfY2FuVXNlQ29va2llc1wiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBfY2FuVXNlQ29va2llcztcclxuICAgICAgICB9LCBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgX2NhblVzZUNvb2tpZXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgYXJyRm9yRWFjaChfY29va2llTWdycywgZnVuY3Rpb24gKG1ncikge1xyXG4gICAgICAgICAgICAgICAgbWdyW19EWU5fU0VUX0VOQUJMRUQgLyogQG1pbjolMmVzZXRFbmFibGVkICovXSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyckluZGV4T2YoX2Nvb2tpZU1ncnMsIGNvb2tpZU1ncikgPT09IC0xKSB7XHJcbiAgICAgICAgX2Nvb2tpZU1ncnNbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10oY29va2llTWdyKTtcclxuICAgIH1cclxuICAgIGlmIChpc0Jvb2xlYW4obGVnYWN5Q2FuVXNlQ29va2llcykpIHtcclxuICAgICAgICBjb29raWVNZ3JbX0RZTl9TRVRfRU5BQkxFRCAvKiBAbWluOiUyZXNldEVuYWJsZWQgKi9dKGxlZ2FjeUNhblVzZUNvb2tpZXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzQm9vbGVhbihfY2FuVXNlQ29va2llcykpIHtcclxuICAgICAgICBjb29raWVNZ3JbX0RZTl9TRVRfRU5BQkxFRCAvKiBAbWluOiUyZXNldEVuYWJsZWQgKi9dKF9jYW5Vc2VDb29raWVzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb29raWVNZ3I7XHJcbn1cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIC0gVXNlIHRoZSBjb3JlLmdldENvb2tpZU1ncigpLmRpc2FibGUoKVxyXG4gKiBGb3JjZSB0aGUgU0RLIG5vdCB0byBzdG9yZSBhbmQgcmVhZCBhbnkgZGF0YSBmcm9tIGNvb2tpZXMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZUNvb2tpZXMoKSB7XHJcbiAgICBfbGVnYWN5Q29va2llTWdyKClbX0RZTl9TRVRfRU5BQkxFRCAvKiBAbWluOiUyZXNldEVuYWJsZWQgKi9dKGZhbHNlKTtcclxufVxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIGNvcmUuZ2V0Q29va2llTWdyKCkuaXNFbmFibGVkKClcclxuICogSGVscGVyIG1ldGhvZCB0byB0ZWxsIGlmIGRvY3VtZW50LmNvb2tpZSBvYmplY3QgaXMgYXZhaWxhYmxlIGFuZCB3aGV0aGVyIGl0IGNhbiBiZSB1c2VkLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNhblVzZUNvb2tpZXMobG9nZ2VyKSB7XHJcbiAgICByZXR1cm4gX2xlZ2FjeUNvb2tpZU1ncihudWxsLCBsb2dnZXIpLmlzRW5hYmxlZCgpO1xyXG59XHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgY29yZS5nZXRDb29raWVNZ3IoKS5nZXQoKVxyXG4gKiBoZWxwZXIgbWV0aG9kIHRvIGFjY2VzcyB1c2VySWQgYW5kIHNlc3Npb25JZCBjb29raWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDb29raWUobG9nZ2VyLCBuYW1lKSB7XHJcbiAgICByZXR1cm4gX2xlZ2FjeUNvb2tpZU1ncihudWxsLCBsb2dnZXIpLmdldChuYW1lKTtcclxufVxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIGNvcmUuZ2V0Q29va2llTWdyKCkuc2V0KClcclxuICogaGVscGVyIG1ldGhvZCB0byBzZXQgdXNlcklkIGFuZCBzZXNzaW9uSWQgY29va2llXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29va2llKGxvZ2dlciwgbmFtZSwgdmFsdWUsIGRvbWFpbikge1xyXG4gICAgX2xlZ2FjeUNvb2tpZU1ncihudWxsLCBsb2dnZXIpLnNldChuYW1lLCB2YWx1ZSwgbnVsbCwgZG9tYWluKTtcclxufVxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIGNvcmUuZ2V0Q29va2llTWdyKCkuZGVsKClcclxuICogRGVsZXRlcyBhIGNvb2tpZSBieSBzZXR0aW5nIGl0J3MgZXhwaXJhdGlvbiB0aW1lIGluIHRoZSBwYXN0LlxyXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gZGVsZXRlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUNvb2tpZShsb2dnZXIsIG5hbWUpIHtcclxuICAgIHJldHVybiBfbGVnYWN5Q29va2llTWdyKG51bGwsIGxvZ2dlcikuZGVsKG5hbWUpO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvcmVVdGlscy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHsgX0RZTl9MRU5HVEgsIF9EWU5fU1BBTl9JRCwgX0RZTl9TVUJTVFIsIF9EWU5fVFJBQ0VfRkxBR1MsIF9EWU5fVFJBQ0VfSUQsIF9EWU5fVkVSU0lPTiB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2VuZXJhdGVXM0NJZCB9IGZyb20gXCIuL0NvcmVVdGlsc1wiO1xyXG5pbXBvcnQgeyBmaW5kTWV0YVRhZywgZmluZE5hbWVkU2VydmVyVGltaW5nIH0gZnJvbSBcIi4vRW52VXRpbHNcIjtcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNTdHJpbmcsIHN0clRyaW0gfSBmcm9tIFwiLi9IZWxwZXJGdW5jc1wiO1xyXG4vLyB1c2luZyB7MCwxNn0gZm9yIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UganVzdCB0byBjb25zdHJhaW4gdGhlIHBvc3NpYmxlIHJ1bnRpbWUgb2YgYSByYW5kb20gc3RyaW5nXHJcbnZhciBUUkFDRV9QQVJFTlRfUkVHRVggPSAvXihbXFxkYS1mXXsyfSktKFtcXGRhLWZdezMyfSktKFtcXGRhLWZdezE2fSktKFtcXGRhLWZdezJ9KSgtW15cXHNdKik/JC87XHJcbnZhciBERUZBVUxUX1ZFUlNJT04gPSBcIjAwXCI7XHJcbnZhciBJTlZBTElEX1ZFUlNJT04gPSBcImZmXCI7XHJcbnZhciBJTlZBTElEX1RSQUNFX0lEID0gXCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO1xyXG52YXIgSU5WQUxJRF9TUEFOX0lEID0gXCIwMDAwMDAwMDAwMDAwMDAwXCI7XHJcbnZhciBTQU1QTEVEX0ZMQUcgPSAweDAxO1xyXG5mdW5jdGlvbiBfaXNWYWxpZCh2YWx1ZSwgbGVuLCBpbnZhbGlkVmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPT09IGxlbiAmJiB2YWx1ZSAhPT0gaW52YWxpZFZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuICEhdmFsdWUubWF0Y2goL15bXFxkYS1mXSokLyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gX2Zvcm1hdFZhbHVlKHZhbHVlLCBsZW4sIGRlZlZhbHVlKSB7XHJcbiAgICBpZiAoX2lzVmFsaWQodmFsdWUsIGxlbikpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVmVmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gX2Zvcm1hdEZsYWdzKHZhbHVlKSB7XHJcbiAgICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDI1NSkge1xyXG4gICAgICAgIHZhbHVlID0gMHgwMTtcclxuICAgIH1cclxuICAgIHZhciByZXN1bHQgPSB2YWx1ZS50b1N0cmluZygxNik7XHJcbiAgICB3aGlsZSAocmVzdWx0W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA8IDIpIHtcclxuICAgICAgICByZXN1bHQgPSBcIjBcIiArIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZSBhIG5ldyBJVHJhY2VQYXJlbnQgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIHZhbHVlcy5cclxuICogQHBhcmFtIHRyYWNlSWQgLSBUaGUgdHJhY2VJZCB0byB1c2UsIHdoZW4gaW52YWxpZCBhIG5ldyByYW5kb20gVzNDIGlkIHdpbGwgYmUgZ2VuZXJhdGVkLlxyXG4gKiBAcGFyYW0gc3BhbklkIC0gVGhlIHBhcmVudC9zcGFuIGlkIHRvIHVzZSwgYSBuZXcgcmFuZG9tIHZhbHVlIHdpbGwgYmUgZ2VuZXJhdGVkIGlmIGl0IGlzIGludmFsaWQuXHJcbiAqIEBwYXJhbSBmbGFncyAtIFRoZSB0cmFjZUZsYWdzIHRvIHVzZSwgZGVmYXVsdHMgdG8gemVybyAoMCkgaWYgbm90IHN1cHBsaWVkIG9yIGludmFsaWRcclxuICogQHBhcmFtIHZlcnNpb24gLSBUaGUgdmVyc2lvbiB0byB1c2VkLCBkZWZhdWx0cyB0byB2ZXJzaW9uIFwiMDFcIiBpZiBub3Qgc3VwcGxpZWQgb3IgaW52YWxpZC5cclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFjZVBhcmVudCh0cmFjZUlkLCBzcGFuSWQsIGZsYWdzLCB2ZXJzaW9uKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICByZXR1cm4gX2EgPSB7fSxcclxuICAgICAgICBfYVtfRFlOX1ZFUlNJT04gLyogQG1pbjp2ZXJzaW9uICovXSA9IF9pc1ZhbGlkKHZlcnNpb24sIDIsIElOVkFMSURfVkVSU0lPTikgPyB2ZXJzaW9uIDogREVGQVVMVF9WRVJTSU9OLFxyXG4gICAgICAgIF9hW19EWU5fVFJBQ0VfSUQgLyogQG1pbjp0cmFjZUlkICovXSA9IGlzVmFsaWRUcmFjZUlkKHRyYWNlSWQpID8gdHJhY2VJZCA6IGdlbmVyYXRlVzNDSWQoKSxcclxuICAgICAgICBfYS5zcGFuSWQgPSBpc1ZhbGlkU3BhbklkKHNwYW5JZCkgPyBzcGFuSWQgOiBnZW5lcmF0ZVczQ0lkKClbX0RZTl9TVUJTVFIgLyogQG1pbjolMmVzdWJzdHIgKi9dKDAsIDE2KSxcclxuICAgICAgICBfYS50cmFjZUZsYWdzID0gZmxhZ3MgPj0gMCAmJiBmbGFncyA8PSAweEZGID8gZmxhZ3MgOiAxLFxyXG4gICAgICAgIF9hO1xyXG59XHJcbi8qKlxyXG4gKiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBwcm92aWRlZCBzdHJpbmcgYXMgYSBXM0MgVHJhY2VQYXJlbnQgaGVhZGVyIHZhbHVlIChodHRwczovL3d3dy53My5vcmcvVFIvdHJhY2UtY29udGV4dC8jdHJhY2VwYXJlbnQtaGVhZGVyKVxyXG4gKlxyXG4gKiBAcGFyYW0gdmFsdWVcclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRyYWNlUGFyZW50KHZhbHVlKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgLy8gRG9uJ3QgcGFzcyBhIG51bGwvdW5kZWZpbmVkIG9yIGVtcHR5IHN0cmluZ1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgLy8gVGhlIHZhbHVlIG1heSBoYXZlIGJlZW4gZW5jb2RlZCBvbiB0aGUgcGFnZSBpbnRvIGFuIGFycmF5IHNvIGhhbmRsZSB0aGlzIGF1dG9tYXRpY2FsbHlcclxuICAgICAgICB2YWx1ZSA9IHZhbHVlWzBdIHx8IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoIXZhbHVlIHx8ICFpc1N0cmluZyh2YWx1ZSkgfHwgdmFsdWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gODE5Mikge1xyXG4gICAgICAgIC8vIGxpbWl0IHBvdGVudGlhbCBwcm9jZXNzaW5nIGJhc2VkIG9uIHRvdGFsIGxlbmd0aFxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi90cmFjZS1jb250ZXh0LyN2ZXJzaW9uaW5nLW9mLXRyYWNlcGFyZW50XHJcbiAgICB2YXIgbWF0Y2ggPSBUUkFDRV9QQVJFTlRfUkVHRVguZXhlYyhzdHJUcmltKHZhbHVlKSk7XHJcbiAgICBpZiAoIW1hdGNoIHx8IC8vIE5vIG1hdGNoXHJcbiAgICAgICAgbWF0Y2hbMV0gPT09IElOVkFMSURfVkVSU0lPTiB8fCAvLyB2ZXJzaW9uIGZmIGlzIGZvcmJpZGRlblxyXG4gICAgICAgIG1hdGNoWzJdID09PSBJTlZBTElEX1RSQUNFX0lEIHx8IC8vIEFsbCB6ZXJvcyBpcyBjb25zaWRlcmVkIHRvIGJlIGludmFsaWRcclxuICAgICAgICBtYXRjaFszXSA9PT0gSU5WQUxJRF9TUEFOX0lEKSB7IC8vIEFsbCB6ZXJvcyBpcyBjb25zaWRlcmVkIHRvIGJlIGludmFsaWRcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBfYSA9IHt9LFxyXG4gICAgICAgIF9hW19EWU5fVkVSU0lPTiAvKiBAbWluOnZlcnNpb24gKi9dID0gbWF0Y2hbMV0sXHJcbiAgICAgICAgX2FbX0RZTl9UUkFDRV9JRCAvKiBAbWluOnRyYWNlSWQgKi9dID0gbWF0Y2hbMl0sXHJcbiAgICAgICAgX2FbX0RZTl9TUEFOX0lEIC8qIEBtaW46c3BhbklkICovXSA9IG1hdGNoWzNdLFxyXG4gICAgICAgIF9hW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjp0cmFjZUZsYWdzICovXSA9IHBhcnNlSW50KG1hdGNoWzRdLCAxNiksXHJcbiAgICAgICAgX2E7XHJcbn1cclxuLyoqXHJcbiAqIElzIHRoZSBwcm92aWRlZCBXM2MgVHJhY2UgSWQgYSB2YWxpZCBzdHJpbmcgcmVwcmVzZW50YXRpb24sIGl0IG11c3QgYmUgYSAzMi1jaGFyYWN0ZXIgc3RyaW5nXHJcbiAqIG9mIGxvd2VyY2FzZSBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzIGZvciBleGFtcGxlLCA0YmY5MmYzNTc3YjM0ZGE2YTNjZTkyOWQwZTBlNDczNi5cclxuICogSWYgYWxsIGNoYXJhY3RlcnMgYXMgemVybyAoMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDApIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhbiBpbnZhbGlkIHZhbHVlLlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgVzNjIHRyYWNlIElkIHRvIGJlIHZhbGlkYXRlZFxyXG4gKiBAcmV0dXJucyB0cnVlIGlmIHZhbGlkIG90aGVyd2lzZSBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRUcmFjZUlkKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gX2lzVmFsaWQodmFsdWUsIDMyLCBJTlZBTElEX1RSQUNFX0lEKTtcclxufVxyXG4vKipcclxuICogSXMgdGhlIHByb3ZpZGVkIFczYyBzcGFuIGlkIChha2EuIHBhcmVudCBpZCkgYSB2YWxpZCBzdHJpbmcgcmVwcmVzZW50YXRpb24sIGl0IG11c3QgYmUgYSAxNi1jaGFyYWN0ZXJcclxuICogc3RyaW5nIG9mIGxvd2VyY2FzZSBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJzLCBmb3IgZXhhbXBsZSwgMDBmMDY3YWEwYmE5MDJiNy5cclxuICogSWYgYWxsIGNoYXJhY3RlcnMgYXJlIHplcm8gKDAwMDAwMDAwMDAwMDAwMDApIHRoaXMgaXMgY29uc2lkZXJlZCBhbiBpbnZhbGlkIHZhbHVlLlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgVzNjIHNwYW4gaWQgdG8gYmUgdmFsaWRhdGVkXHJcbiAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQgb3RoZXJ3aXNlIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFNwYW5JZCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIF9pc1ZhbGlkKHZhbHVlLCAxNiwgSU5WQUxJRF9TUEFOX0lEKTtcclxufVxyXG4vKipcclxuICogVmFsaWRhdGVzIHRoYXQgdGhlIHByb3ZpZGVkIElUcmFjZVBhcmVudCBpbnN0YW5jZSBjb25mb3JtcyB0byB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBzcGVjaWZpY2F0aW9uc1xyXG4gKiBAcGFyYW0gdmFsdWVcclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhY2VQYXJlbnQodmFsdWUpIHtcclxuICAgIGlmICghdmFsdWUgfHxcclxuICAgICAgICAhX2lzVmFsaWQodmFsdWVbX0RZTl9WRVJTSU9OIC8qIEBtaW46JTJldmVyc2lvbiAqL10sIDIsIElOVkFMSURfVkVSU0lPTikgfHxcclxuICAgICAgICAhX2lzVmFsaWQodmFsdWVbX0RZTl9UUkFDRV9JRCAvKiBAbWluOiUyZXRyYWNlSWQgKi9dLCAzMiwgSU5WQUxJRF9UUkFDRV9JRCkgfHxcclxuICAgICAgICAhX2lzVmFsaWQodmFsdWVbX0RZTl9TUEFOX0lEIC8qIEBtaW46JTJlc3BhbklkICovXSwgMTYsIElOVkFMSURfU1BBTl9JRCkgfHxcclxuICAgICAgICAhX2lzVmFsaWQoX2Zvcm1hdEZsYWdzKHZhbHVlW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXSksIDIpKSB7XHJcbiAgICAgICAgLy8gRWFjaCBrbm93biBmaWVsZCBtdXN0IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcbi8qKlxyXG4gKiBJcyB0aGUgcGFyc2VkIHRyYWNlUGFyZW50IGluZGljYXRpbmcgdGhhdCB0aGUgdHJhY2UgaXMgY3VycmVudGx5IHNhbXBsZWQuXHJcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBwYXJzZWQgdHJhY2VQYXJlbnQgdmFsdWVcclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1NhbXBsZWRGbGFnKHZhbHVlKSB7XHJcbiAgICBpZiAoaXNWYWxpZFRyYWNlUGFyZW50KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiAodmFsdWVbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dICYgU0FNUExFRF9GTEFHKSA9PT0gU0FNUExFRF9GTEFHO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbi8qKlxyXG4gKiBGb3JtYXQgdGhlIElUcmFjZVBhcmVudCB2YWx1ZSBhcyBhIHN0cmluZyB1c2luZyB0aGUgc3VwcG9ydGVkIGFuZCBrbm93IHZlcnNpb24gZm9ybWF0cy5cclxuICogU28gZXZlbiBpZiB0aGUgcGFzc2VkIHRyYWNlUGFyZW50IGlzIGEgbGF0ZXIgdmVyc2lvbiB0aGUgc3RyaW5nIHZhbHVlIHJldHVybmVkIGZyb20gdGhpc1xyXG4gKiBmdW5jdGlvbiB3aWxsIGNvbnZlcnQgaXQgdG8gb25seSB0aGUga25vd24gdmVyc2lvbiBmb3JtYXRzLlxyXG4gKiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHZlcnNpb24gXCIwMFwiIGFuZCBpbnZhbGlkIFwiZmZcIlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgcGFyc2VkIHRyYWNlUGFyZW50IHZhbHVlXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VHJhY2VQYXJlbnQodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIC8vIFNwZWNpYWwgTm90ZTogVGhpcyBvbmx5IHN1cHBvcnRzIGZvcm1hdHRpbmcgYXMgdmVyc2lvbiAwMCwgZnV0dXJlIHZlcnNpb25zIHNob3VsZCBlbmNvZGUgYW55IGtub3duIHN1cHBvcnRlZCB2ZXJzaW9uXHJcbiAgICAgICAgLy8gU28gcGFyc2luZyBhIGZ1dHVyZSB2ZXJzaW9uIHdpbGwgcG9wdWxhdGUgdGhlIGNvcnJlY3QgdmVyc2lvbiB2YWx1ZSBidXQgcmVmb3JtYXR0aW5nIHdpbGwgcmVkdWNlIGl0IHRvIHZlcnNpb24gMDAuXHJcbiAgICAgICAgdmFyIGZsYWdzID0gX2Zvcm1hdEZsYWdzKHZhbHVlW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXSk7XHJcbiAgICAgICAgaWYgKCFfaXNWYWxpZChmbGFncywgMikpIHtcclxuICAgICAgICAgICAgZmxhZ3MgPSBcIjAxXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB2ZXJzaW9uID0gdmFsdWVbX0RZTl9WRVJTSU9OIC8qIEBtaW46JTJldmVyc2lvbiAqL10gfHwgREVGQVVMVF9WRVJTSU9OO1xyXG4gICAgICAgIGlmICh2ZXJzaW9uICE9PSBcIjAwXCIgJiYgdmVyc2lvbiAhPT0gXCJmZlwiKSB7XHJcbiAgICAgICAgICAgIC8vIFJlZHVjZSB2ZXJzaW9uIHRvIFwiMDBcIlxyXG4gICAgICAgICAgICB2ZXJzaW9uID0gREVGQVVMVF9WRVJTSU9OO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBGb3JtYXQgYXMgdmVyc2lvbiAwMFxyXG4gICAgICAgIHJldHVybiBcIlwiLmNvbmNhdCh2ZXJzaW9uLCBcIi1cIikuY29uY2F0KF9mb3JtYXRWYWx1ZSh2YWx1ZS50cmFjZUlkLCAzMiwgSU5WQUxJRF9UUkFDRV9JRCksIFwiLVwiKS5jb25jYXQoX2Zvcm1hdFZhbHVlKHZhbHVlLnNwYW5JZCwgMTYsIElOVkFMSURfU1BBTl9JRCksIFwiLVwiKS5jb25jYXQoZmxhZ3MpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbn1cclxuLyoqXHJcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBmZXRjaCB0aGUgcGFzc2VkIHRyYWNlcGFyZW50IGZyb20gdGhlIHBhZ2UsIGxvb2tpbmcgZm9yIGl0IGFzIGEgbWV0YS10YWcgb3IgYSBTZXJ2ZXItVGltaW5nIGhlYWRlci5cclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBmaW5kVzNjVHJhY2VQYXJlbnQoKSB7XHJcbiAgICB2YXIgbmFtZSA9IFwidHJhY2VwYXJlbnRcIjtcclxuICAgIHZhciB0cmFjZVBhcmVudCA9IHBhcnNlVHJhY2VQYXJlbnQoZmluZE1ldGFUYWcobmFtZSkpO1xyXG4gICAgaWYgKCF0cmFjZVBhcmVudCkge1xyXG4gICAgICAgIHRyYWNlUGFyZW50ID0gcGFyc2VUcmFjZVBhcmVudChmaW5kTmFtZWRTZXJ2ZXJUaW1pbmcobmFtZSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyYWNlUGFyZW50O1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVczY1RyYWNlUGFyZW50LmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcblwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQgeyBfRFlOX0NBTEwsIF9EWU5fR0VUX05FWFQsIF9EWU5fR0VUX1BMVUdJTiwgX0RZTl9JTklUSUFMSVpFLCBfRFlOX0lTX0lOSVRJQUxJWkVELCBfRFlOX0xFTkdUSCwgX0RZTl9OQU1FLCBfRFlOX1BVU0gsIF9EWU5fU0VUX05FWFRfUExVR0lOLCBfRFlOX1NQQU5fSUQsIF9EWU5fVEVBUkRPV04sIF9EWU5fVFJBQ0VfRkxBR1MsIF9EWU5fVFJBQ0VfSUQsIF9EWU5fX0RPX1RFQVJET1dOIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVFbG1Ob2RlRGF0YSB9IGZyb20gXCIuL0RhdGFDYWNoZUhlbHBlclwiO1xyXG5pbXBvcnQgeyBhcnJGb3JFYWNoLCBpc0Z1bmN0aW9uIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0NPUkUsIFNUUl9QUklPUklUWSwgU1RSX1BST0NFU1NfVEVMRU1FVFJZIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNWYWxpZFNwYW5JZCwgaXNWYWxpZFRyYWNlSWQgfSBmcm9tIFwiLi9XM2NUcmFjZVBhcmVudFwiO1xyXG52YXIgcGx1Z2luU3RhdGVEYXRhID0gY3JlYXRlRWxtTm9kZURhdGEoXCJwbHVnaW5cIik7XHJcbmV4cG9ydCBmdW5jdGlvbiBfZ2V0UGx1Z2luU3RhdGUocGx1Z2luKSB7XHJcbiAgICByZXR1cm4gcGx1Z2luU3RhdGVEYXRhLmdldChwbHVnaW4sIFwic3RhdGVcIiwge30sIHRydWUpO1xyXG59XHJcbi8qKlxyXG4gKiBJbml0aWFsaXplIHRoZSBxdWV1ZSBvZiBwbHVnaW5zXHJcbiAqIEBwYXJhbSBwbHVnaW5zIC0gVGhlIGFycmF5IG9mIHBsdWdpbnMgdG8gaW5pdGlhbGl6ZSBhbmQgc2V0dGluZyBvZiB0aGUgbmV4dCBwbHVnaW5cclxuICogQHBhcmFtIGNvbmZpZyBUaGUgY3VycmVudCBjb25maWcgZm9yIHRoZSBpbnN0YW5jZVxyXG4gKiBAcGFyYW0gY29yZSBUSGUgY3VycmVudCBjb3JlIGluc3RhbmNlXHJcbiAqIEBwYXJhbSBleHRlbnNpb25zIFRoZSBleHRlbnNpb25zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZVBsdWdpbnMocHJvY2Vzc0NvbnRleHQsIGV4dGVuc2lvbnMpIHtcclxuICAgIC8vIFNldCB0aGUgbmV4dCBwbHVnaW4gYW5kIGlkZW50aWZpZWQgdGhlIHVuaW5pdGlhbGl6ZWQgcGx1Z2luc1xyXG4gICAgdmFyIGluaXRQbHVnaW5zID0gW107XHJcbiAgICB2YXIgbGFzdFBsdWdpbiA9IG51bGw7XHJcbiAgICB2YXIgcHJveHkgPSBwcm9jZXNzQ29udGV4dFtfRFlOX0dFVF9ORVhUIC8qIEBtaW46JTJlZ2V0TmV4dCAqL10oKTtcclxuICAgIHZhciBwbHVnaW5TdGF0ZTtcclxuICAgIHdoaWxlIChwcm94eSkge1xyXG4gICAgICAgIHZhciB0aGVQbHVnaW4gPSBwcm94eVtfRFlOX0dFVF9QTFVHSU4gLyogQG1pbjolMmVnZXRQbHVnaW4gKi9dKCk7XHJcbiAgICAgICAgaWYgKHRoZVBsdWdpbikge1xyXG4gICAgICAgICAgICBpZiAobGFzdFBsdWdpbiAmJlxyXG4gICAgICAgICAgICAgICAgaXNGdW5jdGlvbihsYXN0UGx1Z2luW19EWU5fU0VUX05FWFRfUExVR0lOIC8qIEBtaW46JTJlc2V0TmV4dFBsdWdpbiAqL10pICYmXHJcbiAgICAgICAgICAgICAgICBpc0Z1bmN0aW9uKHRoZVBsdWdpbltTVFJfUFJPQ0VTU19URUxFTUVUUlkgLyogQG1pbjolMmVwcm9jZXNzVGVsZW1ldHJ5ICovXSkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFNldCB0aGlzIHBsdWdpbiBhcyB0aGUgbmV4dCBmb3IgdGhlIHByZXZpb3VzIG9uZVxyXG4gICAgICAgICAgICAgICAgbGFzdFBsdWdpbltfRFlOX1NFVF9ORVhUX1BMVUdJTiAvKiBAbWluOiUyZXNldE5leHRQbHVnaW4gKi9dKHRoZVBsdWdpbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhlUGx1Z2luW19EWU5fSVNfSU5JVElBTElaRUQgLyogQG1pbjolMmVpc0luaXRpYWxpemVkICovXSkpIHtcclxuICAgICAgICAgICAgICAgIGlzSW5pdGlhbGl6ZWQgPSB0aGVQbHVnaW5bX0RZTl9JU19JTklUSUFMSVpFRCAvKiBAbWluOiUyZWlzSW5pdGlhbGl6ZWQgKi9dKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwbHVnaW5TdGF0ZSA9IF9nZXRQbHVnaW5TdGF0ZSh0aGVQbHVnaW4pO1xyXG4gICAgICAgICAgICAgICAgaXNJbml0aWFsaXplZCA9IHBsdWdpblN0YXRlW19EWU5fSVNfSU5JVElBTElaRUQgLyogQG1pbjolMmVpc0luaXRpYWxpemVkICovXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgICAgIGluaXRQbHVnaW5zW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKHRoZVBsdWdpbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFBsdWdpbiA9IHRoZVBsdWdpbjtcclxuICAgICAgICAgICAgcHJveHkgPSBwcm94eVtfRFlOX0dFVF9ORVhUIC8qIEBtaW46JTJlZ2V0TmV4dCAqL10oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBOb3cgaW5pdGlhbGl6ZSB0aGUgcGx1Z2luc1xyXG4gICAgYXJyRm9yRWFjaChpbml0UGx1Z2lucywgZnVuY3Rpb24gKHRoZVBsdWdpbikge1xyXG4gICAgICAgIHZhciBjb3JlID0gcHJvY2Vzc0NvbnRleHRbU1RSX0NPUkVdKCk7XHJcbiAgICAgICAgdGhlUGx1Z2luW19EWU5fSU5JVElBTElaRSAvKiBAbWluOiUyZWluaXRpYWxpemUgKi9dKHByb2Nlc3NDb250ZXh0LmdldENmZygpLCBjb3JlLCBleHRlbnNpb25zLCBwcm9jZXNzQ29udGV4dFtfRFlOX0dFVF9ORVhUIC8qIEBtaW46JTJlZ2V0TmV4dCAqL10oKSk7XHJcbiAgICAgICAgcGx1Z2luU3RhdGUgPSBfZ2V0UGx1Z2luU3RhdGUodGhlUGx1Z2luKTtcclxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgY29yZSB0byB0aGUgc3RhdGUgaWYgdGhlIHBsdWdpbiBkaWRuJ3Qgc2V0IGl0IChkb2Vzbid0IGV4dGVudCBmcm9tIEJhc2VUZWxlbWV0cnlQbHVnaW4pXHJcbiAgICAgICAgaWYgKCF0aGVQbHVnaW5bU1RSX0NPUkVdICYmICFwbHVnaW5TdGF0ZVtTVFJfQ09SRV0pIHtcclxuICAgICAgICAgICAgcGx1Z2luU3RhdGVbU1RSX0NPUkVdID0gY29yZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGx1Z2luU3RhdGVbX0RZTl9JU19JTklUSUFMSVpFRCAvKiBAbWluOiUyZWlzSW5pdGlhbGl6ZWQgKi9dID0gdHJ1ZTtcclxuICAgICAgICBkZWxldGUgcGx1Z2luU3RhdGVbX0RZTl9URUFSRE9XTiAvKiBAbWluOiUyZXRlYXJkb3duICovXTtcclxuICAgIH0pO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0UGx1Z2lucyhwbHVnaW5zKSB7XHJcbiAgICAvLyBTb3J0IGJ5IHByaW9yaXR5XHJcbiAgICByZXR1cm4gcGx1Z2lucy5zb3J0KGZ1bmN0aW9uIChleHRBLCBleHRCKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IDA7XHJcbiAgICAgICAgaWYgKGV4dEIpIHtcclxuICAgICAgICAgICAgdmFyIGJIYXNQcm9jZXNzID0gaXNGdW5jdGlvbihleHRCW1NUUl9QUk9DRVNTX1RFTEVNRVRSWV0pO1xyXG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihleHRBW1NUUl9QUk9DRVNTX1RFTEVNRVRSWV0pKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBiSGFzUHJvY2VzcyA/IGV4dEFbU1RSX1BSSU9SSVRZXSAtIGV4dEJbU1RSX1BSSU9SSVRZXSA6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYkhhc1Byb2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBleHRBID8gMSA6IC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgICAvLyBzb3J0IGNvbXBsZXRlXHJcbn1cclxuLyoqXHJcbiAqIFRlYXJkb3duIC8gVW5sb2FkIGhlbHBlciB0byBwZXJmb3JtIHRlYXJkb3duL3VubG9hZGluZyBvcGVyYXRpb25zIGZvciB0aGUgcHJvdmlkZWQgY29tcG9uZW50cyBzeW5jaHJvbm91c2x5IG9yIGFzeW5jaHJvbm91c2x5LCB0aGlzIHdpbGwgY2FsbCBhbnlcclxuICogX2RvVGVhcmRvd24oKSBvciBfZG9VbmxvYWQoKSBmdW5jdGlvbnMgb24gdGhlIHByb3ZpZGVkIGNvbXBvbmVudHMgdG8gYWxsb3cgdGhlbSB0byBmaW5pc2ggcmVtb3ZhbC5cclxuICogQHBhcmFtIGNvbXBvbmVudHMgLSBUaGUgY29tcG9uZW50cyB5b3Ugd2FudCB0byB1bmxvYWRcclxuICogQHBhcmFtIHVubG9hZEN0eCAtIFRoaXMgaXMgdGhlIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgdXNlZCBkdXJpbmcgdW5sb2FkaW5nLlxyXG4gKiBAcGFyYW0gdW5sb2FkU3RhdGUgLSBUaGUgZGV0YWlscyAvIHN0YXRlIG9mIHRoZSB1bmxvYWQgcHJvY2VzcywgaXQgaG9sZHMgZGV0YWlscyBsaWtlIHdoZXRoZXIgaXQgc2hvdWxkIGJlIHVubG9hZGVkIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHkgYW5kIHRoZSByZWFzb24gZm9yIHRoZSB1bmxvYWQuXHJcbiAqIEBwYXJhbSBhc3luY0NhbGxiYWNrIC0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgdGhhdCB0aGUgcGx1Z2luIG11c3QgY2FsbCBpZiBpdCByZXR1cm5zIHRydWUgdG8gaW5mb3JtIHRoZSBjYWxsZXIgdGhhdCBpdCBoYXMgY29tcGxldGVkIGFueSBhc3luYyB1bmxvYWQvdGVhcmRvd24gb3BlcmF0aW9ucy5cclxuICogQHJldHVybnMgYm9vbGVhbiAtIHRydWUgaWYgdGhlIHBsdWdpbiBoYXMgb3Igd2lsbCBjYWxsIGFzeW5jQ2FsbGJhY2ssIHRoaXMgYWxsb3dzIHRoZSBwbHVnaW4gdG8gcGVyZm9ybSBhbnkgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdW5sb2FkQ29tcG9uZW50cyhjb21wb25lbnRzLCB1bmxvYWRDdHgsIHVubG9hZFN0YXRlLCBhc3luY0NhbGxiYWNrKSB7XHJcbiAgICB2YXIgaWR4ID0gMDtcclxuICAgIGZ1bmN0aW9uIF9kb1VubG9hZCgpIHtcclxuICAgICAgICB3aGlsZSAoaWR4IDwgY29tcG9uZW50c1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10pIHtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudCA9IGNvbXBvbmVudHNbaWR4KytdO1xyXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZnVuYyA9IGNvbXBvbmVudC5fZG9VbmxvYWQgfHwgY29tcG9uZW50W19EWU5fX0RPX1RFQVJET1dOIC8qIEBtaW46JTJlX2RvVGVhcmRvd24gKi9dO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oZnVuYykpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZnVuY1tfRFlOX0NBTEwgLyogQG1pbjolMmVjYWxsICovXShjb21wb25lbnQsIHVubG9hZEN0eCwgdW5sb2FkU3RhdGUsIF9kb1VubG9hZCkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9kb1VubG9hZCgpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgSURpc3RyaWJ1dGVkVHJhY2VDb250ZXh0IHdoaWNoIG9wdGlvbmFsbHkgYWxzbyBcInNldHNcIiB0aGUgdmFsdWUgb24gYSBwYXJlbnRcclxuICogQHBhcmFtIHBhcmVudEN0eCAtIEFuIG9wdGlvbmFsIHBhcmVudCBkaXN0cmlidXRlZCB0cmFjZSBpbnN0YW5jZVxyXG4gKiBAcmV0dXJucyBBIG5ldyBJRGlzdHJpYnV0ZWRUcmFjZUNvbnRleHQgaW5zdGFuY2UgdGhhdCB1c2VzIGFuIGludGVybmFsIHRlbXBvcmFyeSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dChwYXJlbnRDdHgpIHtcclxuICAgIHZhciB0cmFjZSA9IHt9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBnZXROYW1lOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFjZVtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNldE5hbWU6IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICBwYXJlbnRDdHggJiYgcGFyZW50Q3R4LnNldE5hbWUobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICB0cmFjZVtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0VHJhY2VJZDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJhY2VbX0RZTl9UUkFDRV9JRCAvKiBAbWluOiUyZXRyYWNlSWQgKi9dO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2V0VHJhY2VJZDogZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHBhcmVudEN0eCAmJiBwYXJlbnRDdHguc2V0VHJhY2VJZChuZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkVHJhY2VJZChuZXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRyYWNlW19EWU5fVFJBQ0VfSUQgLyogQG1pbjolMmV0cmFjZUlkICovXSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXRTcGFuSWQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYWNlW19EWU5fU1BBTl9JRCAvKiBAbWluOiUyZXNwYW5JZCAqL107XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzZXRTcGFuSWQ6IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICBwYXJlbnRDdHggJiYgcGFyZW50Q3R4LnNldFNwYW5JZChuZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkU3BhbklkKG5ld1ZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgdHJhY2VbX0RZTl9TUEFOX0lEIC8qIEBtaW46JTJlc3BhbklkICovXSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXRUcmFjZUZsYWdzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFjZVtfRFlOX1RSQUNFX0ZMQUdTIC8qIEBtaW46JTJldHJhY2VGbGFncyAqL107XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzZXRUcmFjZUZsYWdzOiBmdW5jdGlvbiAobmV3VHJhY2VGbGFncykge1xyXG4gICAgICAgICAgICBwYXJlbnRDdHggJiYgcGFyZW50Q3R4LnNldFRyYWNlRmxhZ3MobmV3VHJhY2VGbGFncyk7XHJcbiAgICAgICAgICAgIHRyYWNlW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXSA9IG5ld1RyYWNlRmxhZ3M7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZWxlbWV0cnlIZWxwZXJzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcblwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQgeyBfRFlOX0NBTEwsIF9EWU5fQ09ORklHLCBfRFlOX0NSRUFURV9ORVcsIF9EWU5fRElBR19MT0csIF9EWU5fR0VUX05FWFQsIF9EWU5fR0VUX1BMVUdJTiwgX0RZTl9JREVOVElGSUVSLCBfRFlOX0lTX0FTWU5DLCBfRFlOX0lTX0lOSVRJQUxJWkVELCBfRFlOX0xFTkdUSCwgX0RZTl9MT0dHRVIsIF9EWU5fUFJPQ0VTU19ORVhULCBfRFlOX1BVU0gsIF9EWU5fU0VUX05FWFRfUExVR0lOLCBfRFlOX1RFQVJET1dOLCBfRFlOX1VQREFURSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgX3Rocm93SW50ZXJuYWwsIHNhZmVHZXRMb2dnZXIgfSBmcm9tIFwiLi9EaWFnbm9zdGljTG9nZ2VyXCI7XHJcbmltcG9ydCB7IGR1bXBPYmogfSBmcm9tIFwiLi9FbnZVdGlsc1wiO1xyXG5pbXBvcnQgeyBhcnJGb3JFYWNoLCBpc0FycmF5LCBpc0Z1bmN0aW9uLCBpc051bGxPclVuZGVmaW5lZCwgaXNPYmplY3QsIGlzVW5kZWZpbmVkLCBvYmpFeHRlbmQsIG9iakZvckVhY2hLZXksIG9iakZyZWV6ZSwgb2JqS2V5cywgcHJveHlGdW5jdGlvbnMgfSBmcm9tIFwiLi9IZWxwZXJGdW5jc1wiO1xyXG5pbXBvcnQgeyBTVFJfQ09SRSwgU1RSX0RJU0FCTEVELCBTVFJfRU1QVFksIFNUUl9FWFRFTlNJT05fQ09ORklHLCBTVFJfUFJJT1JJVFksIFNUUl9QUk9DRVNTX1RFTEVNRVRSWSB9IGZyb20gXCIuL0ludGVybmFsQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGRvUGVyZiB9IGZyb20gXCIuL1BlcmZNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IF9nZXRQbHVnaW5TdGF0ZSB9IGZyb20gXCIuL1RlbGVtZXRyeUhlbHBlcnNcIjtcclxudmFyIHN0clRlbGVtZXRyeVBsdWdpbkNoYWluID0gXCJUZWxlbWV0cnlQbHVnaW5DaGFpblwiO1xyXG52YXIgc3RySGFzUnVuRmxhZ3MgPSBcIl9oYXNSdW5cIjtcclxudmFyIHN0ckdldFRlbEN0eCA9IFwiX2dldFRlbEN0eFwiO1xyXG52YXIgX2NoYWluSWQgPSAwO1xyXG5mdW5jdGlvbiBfZ2V0TmV4dFByb3h5U3RhcnQocHJveHksIGNvcmUsIHN0YXJ0QXQpIHtcclxuICAgIHdoaWxlIChwcm94eSkge1xyXG4gICAgICAgIGlmIChwcm94eVtfRFlOX0dFVF9QTFVHSU4gLyogQG1pbjolMmVnZXRQbHVnaW4gKi9dKCkgPT09IHN0YXJ0QXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHByb3h5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBwcm94eSA9IHByb3h5W19EWU5fR0VUX05FWFQgLyogQG1pbjolMmVnZXROZXh0ICovXSgpO1xyXG4gICAgfVxyXG4gICAgLy8gVGhpcyB3YXNuJ3QgZm91bmQgaW4gdGhlIGV4aXN0aW5nIGNoYWluIHNvIGNyZWF0ZSBhbiBpc29sYXRlZCBvbmUgd2l0aCBqdXN0IHRoaXMgcGx1Z2luXHJcbiAgICByZXR1cm4gY3JlYXRlVGVsZW1ldHJ5UHJveHlDaGFpbihbc3RhcnRBdF0sIGNvcmVbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dIHx8IHt9LCBjb3JlKTtcclxufVxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKiBAcGFyYW0gdGVsZW1ldHJ5Q2hhaW5cclxuICogQHBhcmFtIGNvbmZpZ1xyXG4gKiBAcGFyYW0gY29yZVxyXG4gKiBAcGFyYW0gc3RhcnRBdCAtIElkZW50aWZpZXMgdGhlIG5leHQgcGx1Z2luIHRvIGV4ZWN1dGUsIGlmIG51bGwgdGhlcmUgaXMgbm8gXCJuZXh0XCIgcGx1Z2luIGFuZCBpZiB1bmRlZmluZWQgaXQgc2hvdWxkIGFzc3VtZSB0aGUgc3RhcnQgb2YgdGhlIGNoYWluXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5mdW5jdGlvbiBfY3JlYXRlSW50ZXJuYWxDb250ZXh0KHRlbGVtZXRyeUNoYWluLCBjb25maWcsIGNvcmUsIHN0YXJ0QXQpIHtcclxuICAgIC8vIFdlIGhhdmUgYSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2Ugd2FudCB0byBzdGFydCBleGVjdXRpb24gZnJvbSB0aGlzIHNwZWNpZmljIHBsdWdpblxyXG4gICAgLy8gb3Igd2Ugc2ltcGx5IHJldXNlIHRoZSBleGlzdGluZyB0ZWxlbWV0cnkgcGx1Z2luIGNoYWluIChub3JtYWwgZXhlY3V0aW9uIGNhc2UpXHJcbiAgICB2YXIgX25leHRQcm94eSA9IG51bGw7IC8vIEJ5IERlZmF1bHQgc2V0IGFzIG5vIG5leHQgcGx1Z2luXHJcbiAgICB2YXIgX29uQ29tcGxldGUgPSBbXTtcclxuICAgIGlmIChzdGFydEF0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgLy8gVGhlcmUgaXMgbm8gbmV4dCBlbGVtZW50IChudWxsKSB2cyBub3QgZGVmaW5lZCAodW5kZWZpbmVkKSBzbyB1c2UgdGhlIGZ1bGwgY2hhaW5cclxuICAgICAgICBfbmV4dFByb3h5ID0gc3RhcnRBdCA/IF9nZXROZXh0UHJveHlTdGFydCh0ZWxlbWV0cnlDaGFpbiwgY29yZSwgc3RhcnRBdCkgOiB0ZWxlbWV0cnlDaGFpbjtcclxuICAgIH1cclxuICAgIHZhciBjb250ZXh0ID0ge1xyXG4gICAgICAgIF9uZXh0OiBfbW92ZU5leHQsXHJcbiAgICAgICAgY3R4OiB7XHJcbiAgICAgICAgICAgIGNvcmU6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb3JlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkaWFnTG9nOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2FmZUdldExvZ2dlcihjb3JlLCBjb25maWcpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXRDZmc6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWc7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdldEV4dENmZzogX2dldEV4dENmZyxcclxuICAgICAgICAgICAgZ2V0Q29uZmlnOiBfZ2V0Q29uZmlnLFxyXG4gICAgICAgICAgICBoYXNOZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gISFfbmV4dFByb3h5O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXROZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX25leHRQcm94eTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2V0TmV4dDogZnVuY3Rpb24gKG5leHRQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgIF9uZXh0UHJveHkgPSBuZXh0UGx1Z2luO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpdGVyYXRlOiBfaXRlcmF0ZUNoYWluLFxyXG4gICAgICAgICAgICBvbkNvbXBsZXRlOiBfYWRkT25Db21wbGV0ZVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBmdW5jdGlvbiBfYWRkT25Db21wbGV0ZShvbkNvbXBsZXRlLCB0aGF0KSB7XHJcbiAgICAgICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDI7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob25Db21wbGV0ZSkge1xyXG4gICAgICAgICAgICBfb25Db21wbGV0ZVtfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXSh7XHJcbiAgICAgICAgICAgICAgICBmdW5jOiBvbkNvbXBsZXRlLFxyXG4gICAgICAgICAgICAgICAgc2VsZjogIWlzVW5kZWZpbmVkKHRoYXQpID8gdGhhdCA6IGNvbnRleHQuY3R4LFxyXG4gICAgICAgICAgICAgICAgYXJnczogYXJnc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfbW92ZU5leHQoKSB7XHJcbiAgICAgICAgdmFyIG5leHRQcm94eSA9IF9uZXh0UHJveHk7XHJcbiAgICAgICAgLy8gQXV0b21hdGljYWxseSBtb3ZlIHRvIHRoZSBuZXh0IHBsdWdpblxyXG4gICAgICAgIF9uZXh0UHJveHkgPSBuZXh0UHJveHkgPyBuZXh0UHJveHlbX0RZTl9HRVRfTkVYVCAvKiBAbWluOiUyZWdldE5leHQgKi9dKCkgOiBudWxsO1xyXG4gICAgICAgIGlmICghbmV4dFByb3h5KSB7XHJcbiAgICAgICAgICAgIHZhciBvbkNvbXBsZXRlID0gX29uQ29tcGxldGU7XHJcbiAgICAgICAgICAgIGlmIChvbkNvbXBsZXRlICYmIG9uQ29tcGxldGVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICAgICAgYXJyRm9yRWFjaChvbkNvbXBsZXRlLCBmdW5jdGlvbiAoY29tcGxldGVEZXRhaWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVEZXRhaWxzLmZ1bmNbX0RZTl9DQUxMIC8qIEBtaW46JTJlY2FsbCAqL10oY29tcGxldGVEZXRhaWxzLnNlbGYsIGNvbXBsZXRlRGV0YWlscy5hcmdzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoY29yZVtfRFlOX0xPR0dFUiAvKiBAbWluOiUyZWxvZ2dlciAqL10sIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA3MyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlBsdWdpbkV4Y2VwdGlvbiAqLywgXCJVbmV4cGVjdGVkIEV4Y2VwdGlvbiBkdXJpbmcgb25Db21wbGV0ZSAtIFwiICsgZHVtcE9iaihlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBfb25Db21wbGV0ZSA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXh0UHJveHk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfZ2V0RXh0Q2ZnKGlkZW50aWZpZXIsIGRlZmF1bHRWYWx1ZSwgbWVyZ2VEZWZhdWx0KSB7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwKSB7IGRlZmF1bHRWYWx1ZSA9IHt9OyB9XHJcbiAgICAgICAgaWYgKG1lcmdlRGVmYXVsdCA9PT0gdm9pZCAwKSB7IG1lcmdlRGVmYXVsdCA9IDAgLyogR2V0RXh0Q2ZnTWVyZ2VUeXBlLk5vbmUgKi87IH1cclxuICAgICAgICB2YXIgdGhlQ29uZmlnO1xyXG4gICAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICAgICAgdmFyIGV4dENvbmZpZyA9IGNvbmZpZ1tTVFJfRVhURU5TSU9OX0NPTkZJRyAvKiBAbWluOiUyZWV4dGVuc2lvbkNvbmZpZyAqL107XHJcbiAgICAgICAgICAgIGlmIChleHRDb25maWcgJiYgaWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICAgICAgdGhlQ29uZmlnID0gZXh0Q29uZmlnW2lkZW50aWZpZXJdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhlQ29uZmlnKSB7XHJcbiAgICAgICAgICAgIC8vIEp1c3QgdXNlIHRoZSBkZWZhdWx0c1xyXG4gICAgICAgICAgICB0aGVDb25maWcgPSBkZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KGRlZmF1bHRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgaWYgKG1lcmdlRGVmYXVsdCAhPT0gMCAvKiBHZXRFeHRDZmdNZXJnZVR5cGUuTm9uZSAqLykge1xyXG4gICAgICAgICAgICAgICAgLy8gTWVyZ2UgdGhlIGRlZmF1bHRzIGFuZCBjb25maWd1cmVkIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgdmFyIG5ld0NvbmZpZ18xID0gb2JqRXh0ZW5kKHRydWUsIGRlZmF1bHRWYWx1ZSwgdGhlQ29uZmlnKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb25maWcgJiYgbWVyZ2VEZWZhdWx0ID09PSAyIC8qIEdldEV4dENmZ01lcmdlVHlwZS5NZXJnZURlZmF1bHRGcm9tUm9vdE9yRGVmYXVsdCAqLykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEVudW1lcmF0ZSBvdmVyIHRoZSBkZWZhdWx0VmFsdWVzIGFuZCBpZiBub3QgYWxyZWFkeSBwb3B1bGF0ZWQgYXR0ZW1wdCB0b1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgYSB2YWx1ZSBmcm9tIHRoZSByb290IGNvbmZpZ1xyXG4gICAgICAgICAgICAgICAgICAgIG9iakZvckVhY2hLZXkoZGVmYXVsdFZhbHVlLCBmdW5jdGlvbiAoZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggdW5zcGVjaWZpZWQgZmllbGQsIHNldCB0aGUgZGVmYXVsdCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQobmV3Q29uZmlnXzFbZmllbGRdKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNmZ1ZhbHVlID0gY29uZmlnW2ZpZWxkXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoY2ZnVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q29uZmlnXzFbZmllbGRdID0gY2ZnVmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoZUNvbmZpZyA9IG5ld0NvbmZpZ18xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGVDb25maWc7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfZ2V0Q29uZmlnKGlkZW50aWZpZXIsIGZpZWxkLCBkZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlID09PSB2b2lkIDApIHsgZGVmYXVsdFZhbHVlID0gZmFsc2U7IH1cclxuICAgICAgICB2YXIgdGhlVmFsdWU7XHJcbiAgICAgICAgdmFyIGV4dENvbmZpZyA9IF9nZXRFeHRDZmcoaWRlbnRpZmllciwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGV4dENvbmZpZyAmJiAhaXNOdWxsT3JVbmRlZmluZWQoZXh0Q29uZmlnW2ZpZWxkXSkpIHtcclxuICAgICAgICAgICAgdGhlVmFsdWUgPSBleHRDb25maWdbZmllbGRdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjb25maWcgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKGNvbmZpZ1tmaWVsZF0pKSB7XHJcbiAgICAgICAgICAgIHRoZVZhbHVlID0gY29uZmlnW2ZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICFpc051bGxPclVuZGVmaW5lZCh0aGVWYWx1ZSkgPyB0aGVWYWx1ZSA6IGRlZmF1bHRWYWx1ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF9pdGVyYXRlQ2hhaW4oY2IpIHtcclxuICAgICAgICAvLyBLZWVwIHByb2Nlc3NpbmcgdW50aWwgd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgY2hhaW5cclxuICAgICAgICB2YXIgbmV4dFBsdWdpbjtcclxuICAgICAgICB3aGlsZSAoISEobmV4dFBsdWdpbiA9IGNvbnRleHQuX25leHQoKSkpIHtcclxuICAgICAgICAgICAgdmFyIHBsdWdpbiA9IG5leHRQbHVnaW5bX0RZTl9HRVRfUExVR0lOIC8qIEBtaW46JTJlZ2V0UGx1Z2luICovXSgpO1xyXG4gICAgICAgICAgICBpZiAocGx1Z2luKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjYWxsYmFjayB3aXRoIHRoZSBjdXJyZW50IG9uXHJcbiAgICAgICAgICAgICAgICBjYihwbHVnaW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnRleHQ7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgVGVsZW1ldHJ5IEl0ZW0gY29udGV4dCB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZywgY29yZSBhbmQgcGx1Z2luIGV4ZWN1dGlvbiBjaGFpblxyXG4gKiBAcGFyYW0gcGx1Z2lucyAtIFRoZSBwbHVnaW4gaW5zdGFuY2VzIHRoYXQgd2lsbCBiZSBleGVjdXRlZFxyXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGN1cnJlbnQgY29uZmlnXHJcbiAqIEBwYXJhbSBjb3JlIC0gVGhlIGN1cnJlbnQgY29yZSBpbnN0YW5jZVxyXG4gKiBAcGFyYW0gc3RhcnRBdCAtIElkZW50aWZpZXMgdGhlIG5leHQgcGx1Z2luIHRvIGV4ZWN1dGUsIGlmIG51bGwgdGhlcmUgaXMgbm8gXCJuZXh0XCIgcGx1Z2luIGFuZCBpZiB1bmRlZmluZWQgaXQgc2hvdWxkIGFzc3VtZSB0aGUgc3RhcnQgb2YgdGhlIGNoYWluXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQodGVsZW1ldHJ5Q2hhaW4sIGNvbmZpZywgY29yZSwgc3RhcnRBdCkge1xyXG4gICAgdmFyIGludGVybmFsQ29udGV4dCA9IF9jcmVhdGVJbnRlcm5hbENvbnRleHQodGVsZW1ldHJ5Q2hhaW4sIGNvbmZpZywgY29yZSwgc3RhcnRBdCk7XHJcbiAgICB2YXIgY29udGV4dCA9IGludGVybmFsQ29udGV4dC5jdHg7XHJcbiAgICBmdW5jdGlvbiBfcHJvY2Vzc05leHQoZW52KSB7XHJcbiAgICAgICAgdmFyIG5leHRQbHVnaW4gPSBpbnRlcm5hbENvbnRleHQuX25leHQoKTtcclxuICAgICAgICAvLyBSdW4gdGhlIG5leHQgcGx1Z2luIHdoaWNoIHdpbGwgY2FsbCBcInByb2Nlc3NOZXh0KClcIlxyXG4gICAgICAgIG5leHRQbHVnaW4gJiYgbmV4dFBsdWdpbltTVFJfUFJPQ0VTU19URUxFTUVUUlkgLyogQG1pbjolMmVwcm9jZXNzVGVsZW1ldHJ5ICovXShlbnYsIGNvbnRleHQpO1xyXG4gICAgICAgIHJldHVybiAhbmV4dFBsdWdpbjtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF9jcmVhdGVOZXcocGx1Z2lucywgc3RhcnRBdCkge1xyXG4gICAgICAgIGlmIChwbHVnaW5zID09PSB2b2lkIDApIHsgcGx1Z2lucyA9IG51bGw7IH1cclxuICAgICAgICBpZiAoaXNBcnJheShwbHVnaW5zKSkge1xyXG4gICAgICAgICAgICBwbHVnaW5zID0gY3JlYXRlVGVsZW1ldHJ5UHJveHlDaGFpbihwbHVnaW5zLCBjb25maWcsIGNvcmUsIHN0YXJ0QXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQocGx1Z2lucyB8fCBjb250ZXh0W19EWU5fR0VUX05FWFQgLyogQG1pbjolMmVnZXROZXh0ICovXSgpLCBjb25maWcsIGNvcmUsIHN0YXJ0QXQpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dFtfRFlOX1BST0NFU1NfTkVYVCAvKiBAbWluOiUyZXByb2Nlc3NOZXh0ICovXSA9IF9wcm9jZXNzTmV4dDtcclxuICAgIGNvbnRleHRbX0RZTl9DUkVBVEVfTkVXIC8qIEBtaW46JTJlY3JlYXRlTmV3ICovXSA9IF9jcmVhdGVOZXc7XHJcbiAgICByZXR1cm4gY29udGV4dDtcclxufVxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBUZWxlbWV0cnkgSXRlbSBjb250ZXh0IHdpdGggdGhlIGN1cnJlbnQgY29uZmlnLCBjb3JlIGFuZCBwbHVnaW4gZXhlY3V0aW9uIGNoYWluIGZvciBoYW5kbGluZyB0aGUgdW5sb2FkaW5nIG9mIHRoZSBjaGFpblxyXG4gKiBAcGFyYW0gcGx1Z2lucyAtIFRoZSBwbHVnaW4gaW5zdGFuY2VzIHRoYXQgd2lsbCBiZSBleGVjdXRlZFxyXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGN1cnJlbnQgY29uZmlnXHJcbiAqIEBwYXJhbSBjb3JlIC0gVGhlIGN1cnJlbnQgY29yZSBpbnN0YW5jZVxyXG4gKiBAcGFyYW0gc3RhcnRBdCAtIElkZW50aWZpZXMgdGhlIG5leHQgcGx1Z2luIHRvIGV4ZWN1dGUsIGlmIG51bGwgdGhlcmUgaXMgbm8gXCJuZXh0XCIgcGx1Z2luIGFuZCBpZiB1bmRlZmluZWQgaXQgc2hvdWxkIGFzc3VtZSB0aGUgc3RhcnQgb2YgdGhlIGNoYWluXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeVVubG9hZENvbnRleHQodGVsZW1ldHJ5Q2hhaW4sIGNvcmUsIHN0YXJ0QXQpIHtcclxuICAgIHZhciBjb25maWcgPSBjb3JlW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXSB8fCB7fTtcclxuICAgIHZhciBpbnRlcm5hbENvbnRleHQgPSBfY3JlYXRlSW50ZXJuYWxDb250ZXh0KHRlbGVtZXRyeUNoYWluLCBjb25maWcsIGNvcmUsIHN0YXJ0QXQpO1xyXG4gICAgdmFyIGNvbnRleHQgPSBpbnRlcm5hbENvbnRleHQuY3R4O1xyXG4gICAgZnVuY3Rpb24gX3Byb2Nlc3NOZXh0KHVubG9hZFN0YXRlKSB7XHJcbiAgICAgICAgdmFyIG5leHRQbHVnaW4gPSBpbnRlcm5hbENvbnRleHQuX25leHQoKTtcclxuICAgICAgICBuZXh0UGx1Z2luICYmIG5leHRQbHVnaW4udW5sb2FkKGNvbnRleHQsIHVubG9hZFN0YXRlKTtcclxuICAgICAgICByZXR1cm4gIW5leHRQbHVnaW47XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfY3JlYXRlTmV3KHBsdWdpbnMsIHN0YXJ0QXQpIHtcclxuICAgICAgICBpZiAocGx1Z2lucyA9PT0gdm9pZCAwKSB7IHBsdWdpbnMgPSBudWxsOyB9XHJcbiAgICAgICAgaWYgKGlzQXJyYXkocGx1Z2lucykpIHtcclxuICAgICAgICAgICAgcGx1Z2lucyA9IGNyZWF0ZVRlbGVtZXRyeVByb3h5Q2hhaW4ocGx1Z2lucywgY29uZmlnLCBjb3JlLCBzdGFydEF0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlVbmxvYWRDb250ZXh0KHBsdWdpbnMgfHwgY29udGV4dFtfRFlOX0dFVF9ORVhUIC8qIEBtaW46JTJlZ2V0TmV4dCAqL10oKSwgY29yZSwgc3RhcnRBdCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dID0gX3Byb2Nlc3NOZXh0O1xyXG4gICAgY29udGV4dFtfRFlOX0NSRUFURV9ORVcgLyogQG1pbjolMmVjcmVhdGVOZXcgKi9dID0gX2NyZWF0ZU5ldztcclxuICAgIHJldHVybiBjb250ZXh0O1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFRlbGVtZXRyeSBJdGVtIGNvbnRleHQgd2l0aCB0aGUgY3VycmVudCBjb25maWcsIGNvcmUgYW5kIHBsdWdpbiBleGVjdXRpb24gY2hhaW4gZm9yIHVwZGF0aW5nIHRoZSBjb25maWd1cmF0aW9uXHJcbiAqIEBwYXJhbSBwbHVnaW5zIC0gVGhlIHBsdWdpbiBpbnN0YW5jZXMgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkXHJcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgY3VycmVudCBjb25maWdcclxuICogQHBhcmFtIGNvcmUgLSBUaGUgY3VycmVudCBjb3JlIGluc3RhbmNlXHJcbiAqIEBwYXJhbSBzdGFydEF0IC0gSWRlbnRpZmllcyB0aGUgbmV4dCBwbHVnaW4gdG8gZXhlY3V0ZSwgaWYgbnVsbCB0aGVyZSBpcyBubyBcIm5leHRcIiBwbHVnaW4gYW5kIGlmIHVuZGVmaW5lZCBpdCBzaG91bGQgYXNzdW1lIHRoZSBzdGFydCBvZiB0aGUgY2hhaW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5VXBkYXRlQ29udGV4dCh0ZWxlbWV0cnlDaGFpbiwgY29yZSwgc3RhcnRBdCkge1xyXG4gICAgdmFyIGNvbmZpZyA9IGNvcmVbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dIHx8IHt9O1xyXG4gICAgdmFyIGludGVybmFsQ29udGV4dCA9IF9jcmVhdGVJbnRlcm5hbENvbnRleHQodGVsZW1ldHJ5Q2hhaW4sIGNvbmZpZywgY29yZSwgc3RhcnRBdCk7XHJcbiAgICB2YXIgY29udGV4dCA9IGludGVybmFsQ29udGV4dC5jdHg7XHJcbiAgICBmdW5jdGlvbiBfcHJvY2Vzc05leHQodXBkYXRlU3RhdGUpIHtcclxuICAgICAgICByZXR1cm4gY29udGV4dC5pdGVyYXRlKGZ1bmN0aW9uIChwbHVnaW4pIHtcclxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ocGx1Z2luW19EWU5fVVBEQVRFIC8qIEBtaW46JTJldXBkYXRlICovXSkpIHtcclxuICAgICAgICAgICAgICAgIHBsdWdpbltfRFlOX1VQREFURSAvKiBAbWluOiUyZXVwZGF0ZSAqL10oY29udGV4dCwgdXBkYXRlU3RhdGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfY3JlYXRlTmV3KHBsdWdpbnMsIHN0YXJ0QXQpIHtcclxuICAgICAgICBpZiAocGx1Z2lucyA9PT0gdm9pZCAwKSB7IHBsdWdpbnMgPSBudWxsOyB9XHJcbiAgICAgICAgaWYgKGlzQXJyYXkocGx1Z2lucykpIHtcclxuICAgICAgICAgICAgcGx1Z2lucyA9IGNyZWF0ZVRlbGVtZXRyeVByb3h5Q2hhaW4ocGx1Z2lucywgY29uZmlnLCBjb3JlLCBzdGFydEF0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlVcGRhdGVDb250ZXh0KHBsdWdpbnMgfHwgY29udGV4dFtfRFlOX0dFVF9ORVhUIC8qIEBtaW46JTJlZ2V0TmV4dCAqL10oKSwgY29yZSwgc3RhcnRBdCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dID0gX3Byb2Nlc3NOZXh0O1xyXG4gICAgY29udGV4dFtfRFlOX0NSRUFURV9ORVcgLyogQG1pbjolMmVjcmVhdGVOZXcgKi9dID0gX2NyZWF0ZU5ldztcclxuICAgIHJldHVybiBjb250ZXh0O1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGV4ZWN1dGlvbiBjaGFpbiBmcm9tIHRoZSBhcnJheSBvZiBwbHVnaW5zXHJcbiAqIEBwYXJhbSBwbHVnaW5zIC0gVGhlIGFycmF5IG9mIHBsdWdpbnMgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoaXMgb3JkZXJcclxuICogQHBhcmFtIGRlZkl0ZW1DdHggLSBUaGUgZGVmYXVsdCBleGVjdXRpb24gY29udGV4dCB0byB1c2Ugd2hlbiBubyB0ZWxlbWV0cnkgY29udGV4dCBpcyBwYXNzZWQgdG8gcHJvY2Vzc1RlbGVtZXRyeSgpLCB0aGlzXHJcbiAqIHNob3VsZCBiZSBmb3IgbGVnYWN5IHBsdWdpbnMgb25seS4gQ3VycmVudGx5LCBvbmx5IHVzZWQgZm9yIHBhc3NpbmcgdGhlIGN1cnJlbnQgY29yZSBpbnN0YW5jZSBhbmQgdG8gcHJvdmlkZSBiZXR0ZXIgZXJyb3JcclxuICogcmVwb3J0aW5nIChoYXNSdW4pIHdoZW4gZXJyb3JzIG9jY3VyLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRlbGVtZXRyeVByb3h5Q2hhaW4ocGx1Z2lucywgY29uZmlnLCBjb3JlLCBzdGFydEF0KSB7XHJcbiAgICB2YXIgZmlyc3RQcm94eSA9IG51bGw7XHJcbiAgICB2YXIgYWRkID0gc3RhcnRBdCA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIGlmIChpc0FycmF5KHBsdWdpbnMpICYmIHBsdWdpbnNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgcHJveGllcyBhbmQgd2lyZSB1cCB0aGUgbmV4dCBwbHVnaW4gY2hhaW5cclxuICAgICAgICB2YXIgbGFzdFByb3h5XzEgPSBudWxsO1xyXG4gICAgICAgIGFyckZvckVhY2gocGx1Z2lucywgZnVuY3Rpb24gKHRoZVBsdWdpbikge1xyXG4gICAgICAgICAgICBpZiAoIWFkZCAmJiBzdGFydEF0ID09PSB0aGVQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgIGFkZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGFkZCAmJiB0aGVQbHVnaW4gJiYgaXNGdW5jdGlvbih0aGVQbHVnaW5bU1RSX1BST0NFU1NfVEVMRU1FVFJZIC8qIEBtaW46JTJlcHJvY2Vzc1RlbGVtZXRyeSAqL10pKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBPbmx5IGFkZCBwbHVnaW5zIHRoYXQgYXJlIHByb2Nlc3NvcnNcclxuICAgICAgICAgICAgICAgIHZhciBuZXdQcm94eSA9IGNyZWF0ZVRlbGVtZXRyeVBsdWdpblByb3h5KHRoZVBsdWdpbiwgY29uZmlnLCBjb3JlKTtcclxuICAgICAgICAgICAgICAgIGlmICghZmlyc3RQcm94eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UHJveHkgPSBuZXdQcm94eTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChsYXN0UHJveHlfMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGlzIG5ldyBwcm94eSBhcyB0aGUgbmV4dCBmb3IgdGhlIHByZXZpb3VzIG9uZVxyXG4gICAgICAgICAgICAgICAgICAgIGxhc3RQcm94eV8xLl9zZXROZXh0KG5ld1Byb3h5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxhc3RQcm94eV8xID0gbmV3UHJveHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzdGFydEF0ICYmICFmaXJzdFByb3h5KSB7XHJcbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBcInN0YXJ0QXRcIiB3YXMgbm90IGluIHRoZSBvcmlnaW5hbCBsaXN0IG9mIHBsdWdpbnNcclxuICAgICAgICByZXR1cm4gY3JlYXRlVGVsZW1ldHJ5UHJveHlDaGFpbihbc3RhcnRBdF0sIGNvbmZpZywgY29yZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlyc3RQcm94eTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlIHRoZSBwcm9jZXNzaW5nIHRlbGVtZXRyeSBwcm94eSBpbnN0YW5jZSwgdGhlIHByb3h5IGlzIHVzZWQgdG8gYWJzdHJhY3QgdGhlIGN1cnJlbnQgcGx1Z2luIHRvIGFsbG93IG1vbml0b3JpbmcgYW5kXHJcbiAqIGV4ZWN1dGlvbiBwbHVnaW5zIHdoaWxlIHBhc3NpbmcgYXJvdW5kIHRoZSBkeW5hbWljIGV4ZWN1dGlvbiBzdGF0ZSAoSVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0KSwgdGhlIHByb3h5IGluc3RhbmNlIG5vIGxvbmdlclxyXG4gKiBjb250YWlucyBhbnkgZXhlY3V0aW9uIHN0YXRlIGFuZCBjYW4gYmUgcmV1c2VkIGJldHdlZW4gcmVxdWVzdHMgKHRoaXMgd2FzIG5vdCB0aGUgY2FzZSBmb3IgMi43LjIgYW5kIGVhcmxpZXIgd2l0aCB0aGVcclxuICogVGVsZW1ldHJ5UGx1Z2luQ2hhaW4gY2xhc3MpLlxyXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiBpbnN0YW5jZSB0byBwcm94eVxyXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGRlZmF1bHQgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlIHdoZW4gbm8gdGVsZW1ldHJ5IGNvbnRleHQgaXMgcGFzc2VkIHRvIHByb2Nlc3NUZWxlbWV0cnkoKSwgdGhpc1xyXG4gKiBzaG91bGQgYmUgZm9yIGxlZ2FjeSBwbHVnaW5zIG9ubHkuIEN1cnJlbnRseSwgb25seSB1c2VkIGZvciBwYXNzaW5nIHRoZSBjdXJyZW50IGNvcmUgaW5zdGFuY2UgYW5kIHRvIHByb3ZpZGUgYmV0dGVyIGVycm9yXHJcbiAqIHJlcG9ydGluZyAoaGFzUnVuKSB3aGVuIGVycm9ycyBvY2N1ci5cclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZWxlbWV0cnlQbHVnaW5Qcm94eShwbHVnaW4sIGNvbmZpZywgY29yZSkge1xyXG4gICAgdmFyIG5leHRQcm94eSA9IG51bGw7XHJcbiAgICB2YXIgaGFzUHJvY2Vzc1RlbGVtZXRyeSA9IGlzRnVuY3Rpb24ocGx1Z2luW1NUUl9QUk9DRVNTX1RFTEVNRVRSWSAvKiBAbWluOiUyZXByb2Nlc3NUZWxlbWV0cnkgKi9dKTtcclxuICAgIHZhciBoYXNTZXROZXh0ID0gaXNGdW5jdGlvbihwbHVnaW5bX0RZTl9TRVRfTkVYVF9QTFVHSU4gLyogQG1pbjolMmVzZXROZXh0UGx1Z2luICovXSk7XHJcbiAgICB2YXIgY2hhaW5JZDtcclxuICAgIGlmIChwbHVnaW4pIHtcclxuICAgICAgICBjaGFpbklkID0gcGx1Z2luW19EWU5fSURFTlRJRklFUiAvKiBAbWluOiUyZWlkZW50aWZpZXIgKi9dICsgXCItXCIgKyBwbHVnaW5bU1RSX1BSSU9SSVRZIC8qIEBtaW46JTJlcHJpb3JpdHkgKi9dICsgXCItXCIgKyBfY2hhaW5JZCsrO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY2hhaW5JZCA9IFwiVW5rbm93bi0wLVwiICsgX2NoYWluSWQrKztcclxuICAgIH1cclxuICAgIHZhciBwcm94eUNoYWluID0ge1xyXG4gICAgICAgIGdldFBsdWdpbjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcGx1Z2luO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0TmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dFByb3h5O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvY2Vzc1RlbGVtZXRyeTogX3Byb2Nlc3NUZWxlbWV0cnksXHJcbiAgICAgICAgdW5sb2FkOiBfdW5sb2FkUGx1Z2luLFxyXG4gICAgICAgIHVwZGF0ZTogX3VwZGF0ZVBsdWdpbixcclxuICAgICAgICBfaWQ6IGNoYWluSWQsXHJcbiAgICAgICAgX3NldE5leHQ6IGZ1bmN0aW9uIChuZXh0UGx1Z2luKSB7XHJcbiAgICAgICAgICAgIG5leHRQcm94eSA9IG5leHRQbHVnaW47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIF9nZXRUZWxDdHgoKSB7XHJcbiAgICAgICAgdmFyIGl0ZW1DdHg7XHJcbiAgICAgICAgLy8gTG9va3MgbGlrZSBhIHBsdWdpbiBkaWRuJ3QgcGFzcyB0aGUgKG9wdGlvbmFsKSBjb250ZXh0LCBzbyBjcmVhdGUgYSBuZXcgb25lXHJcbiAgICAgICAgaWYgKHBsdWdpbiAmJiBpc0Z1bmN0aW9uKHBsdWdpbltzdHJHZXRUZWxDdHhdKSkge1xyXG4gICAgICAgICAgICAvLyBUaGlzIHBsdWdpbiBleHRlbmRzIGZyb20gdGhlIEJhc2VUZWxlbWV0cnlQbHVnaW4gc28gbGV0cyB1c2UgaXRcclxuICAgICAgICAgICAgaXRlbUN0eCA9IHBsdWdpbltzdHJHZXRUZWxDdHhdKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaXRlbUN0eCkge1xyXG4gICAgICAgICAgICAvLyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb25lXHJcbiAgICAgICAgICAgIGl0ZW1DdHggPSBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dChwcm94eUNoYWluLCBjb25maWcsIGNvcmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbUN0eDtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF9wcm9jZXNzQ2hhaW4oaXRlbUN0eCwgcHJvY2Vzc1BsdWdpbkZuLCBuYW1lLCBkZXRhaWxzLCBpc0FzeW5jKSB7XHJcbiAgICAgICAgdmFyIGhhc1J1biA9IGZhbHNlO1xyXG4gICAgICAgIHZhciBpZGVudGlmaWVyID0gcGx1Z2luID8gcGx1Z2luW19EWU5fSURFTlRJRklFUiAvKiBAbWluOiUyZWlkZW50aWZpZXIgKi9dIDogc3RyVGVsZW1ldHJ5UGx1Z2luQ2hhaW47XHJcbiAgICAgICAgdmFyIGhhc1J1bkNvbnRleHQgPSBpdGVtQ3R4W3N0ckhhc1J1bkZsYWdzXTtcclxuICAgICAgICBpZiAoIWhhc1J1bkNvbnRleHQpIHtcclxuICAgICAgICAgICAgLy8gQXNzaWduIGFuZCBwb3B1bGF0ZVxyXG4gICAgICAgICAgICBoYXNSdW5Db250ZXh0ID0gaXRlbUN0eFtzdHJIYXNSdW5GbGFnc10gPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgd2Uga2VlcCB0aGUgY29udGV4dCBpbiBzeW5jXHJcbiAgICAgICAgaXRlbUN0eC5zZXROZXh0KG5leHRQcm94eSk7XHJcbiAgICAgICAgaWYgKHBsdWdpbikge1xyXG4gICAgICAgICAgICBkb1BlcmYoaXRlbUN0eFtTVFJfQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dKCksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIGlkZW50aWZpZXIgKyBcIjpcIiArIG5hbWU7IH0sIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhpcyBjb21wb25lbnQgYXMgaGF2aW5nIHJ1blxyXG4gICAgICAgICAgICAgICAgaGFzUnVuQ29udGV4dFtjaGFpbklkXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBhIGZsYWcgb24gdGhlIG5leHQgcGx1Z2luIHNvIHdlIGtub3cgaWYgaXQgd2FzIGF0dGVtcHRlZCB0byBiZSBleGVjdXRlZFxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXh0SWQgPSBuZXh0UHJveHkgPyBuZXh0UHJveHkuX2lkIDogU1RSX0VNUFRZO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUnVuQ29udGV4dFtuZXh0SWRdID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGhhc1J1biA9IHByb2Nlc3NQbHVnaW5GbihpdGVtQ3R4KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBoYXNOZXh0UnVuID0gbmV4dFByb3h5ID8gaGFzUnVuQ29udGV4dFtuZXh0UHJveHkuX2lkXSA6IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc05leHRSdW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG5leHQgcGx1Z2luIGFmdGVyIHVzIGhhcyBhbHJlYWR5IHJ1biBzbyBzZXQgdGhpcyBvbmUgYXMgY29tcGxldGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUnVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0UHJveHkgfHwgIWhhc05leHRSdW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRWl0aGVyIHdlIGhhdmUgbm8gbmV4dCBwbHVnaW4gb3IgdGhlIGN1cnJlbnQgb25lIGRpZCBub3QgYXR0ZW1wdCB0byBjYWxsIHRoZSBuZXh0IHBsdWdpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXaGljaCBtZWFucyB0aGUgY3VycmVudCBvbmUgaXMgdGhlIHJvb3Qgb2YgdGhlIGZhaWx1cmUgc28gbG9nL3JlcG9ydCB0aGlzIGZhaWx1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoaXRlbUN0eFtfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCA3MyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlBsdWdpbkV4Y2VwdGlvbiAqLywgXCJQbHVnaW4gW1wiICsgaWRlbnRpZmllciArIFwiXSBmYWlsZWQgZHVyaW5nIFwiICsgbmFtZSArIFwiIC0gXCIgKyBkdW1wT2JqKGVycm9yKSArIFwiLCBydW4gZmxhZ3M6IFwiICsgZHVtcE9iaihoYXNSdW5Db250ZXh0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCBkZXRhaWxzLCBpc0FzeW5jKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc1J1bjtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF9wcm9jZXNzVGVsZW1ldHJ5KGVudiwgaXRlbUN0eCkge1xyXG4gICAgICAgIGl0ZW1DdHggPSBpdGVtQ3R4IHx8IF9nZXRUZWxDdHgoKTtcclxuICAgICAgICBmdW5jdGlvbiBfY2FsbFByb2Nlc3NUZWxlbWV0cnkoaXRlbUN0eCkge1xyXG4gICAgICAgICAgICBpZiAoIXBsdWdpbiB8fCAhaGFzUHJvY2Vzc1RlbGVtZXRyeSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBwbHVnaW5TdGF0ZSA9IF9nZXRQbHVnaW5TdGF0ZShwbHVnaW4pO1xyXG4gICAgICAgICAgICBpZiAocGx1Z2luU3RhdGVbX0RZTl9URUFSRE9XTiAvKiBAbWluOiUyZXRlYXJkb3duICovXSB8fCBwbHVnaW5TdGF0ZVtTVFJfRElTQUJMRURdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgd2Uga2VlcCB0aGUgY29udGV4dCBpbiBzeW5jIChmb3IgcHJvY2Vzc05leHQoKSksIGp1c3QgaW4gY2FzZSBhIHBsdWdpblxyXG4gICAgICAgICAgICAvLyBkb2Vzbid0IGNhbGxzIHByb2Nlc3NUZWxlbWV0cnkoKSBpbnN0ZWFkIG9mIGl0ZW1Db250ZXh0LnByb2Nlc3NOZXh0KCkgb3Igc29tZVxyXG4gICAgICAgICAgICAvLyBvdGhlciBmb3JtIG9mIGVycm9yIG9jY3VycmVkXHJcbiAgICAgICAgICAgIGlmIChoYXNTZXROZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNldHRpbmcgdGhlIG5leHQgcGx1Z2luIG9uIHRoZSBpbnN0YW5jZVxyXG4gICAgICAgICAgICAgICAgcGx1Z2luW19EWU5fU0VUX05FWFRfUExVR0lOIC8qIEBtaW46JTJlc2V0TmV4dFBsdWdpbiAqL10obmV4dFByb3h5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwbHVnaW5bU1RSX1BST0NFU1NfVEVMRU1FVFJZIC8qIEBtaW46JTJlcHJvY2Vzc1RlbGVtZXRyeSAqL10oZW52LCBpdGVtQ3R4KTtcclxuICAgICAgICAgICAgLy8gUHJvY2VzcyBUZWxlbWV0cnkgaXMgZXhwZWN0ZWQgdG8gY2FsbCBpdGVtQ3R4LnByb2Nlc3NOZXh0KCkgb3IgbmV4dFBsdWdpbi5wcm9jZXNzVGVsZW1ldHJ5KClcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghX3Byb2Nlc3NDaGFpbihpdGVtQ3R4LCBfY2FsbFByb2Nlc3NUZWxlbWV0cnksIFwicHJvY2Vzc1RlbGVtZXRyeVwiLCBmdW5jdGlvbiAoKSB7IHJldHVybiAoeyBpdGVtOiBlbnYgfSk7IH0sICEoZW52LnN5bmMpKSkge1xyXG4gICAgICAgICAgICAvLyBUaGUgdW5kZXJseWluZyBwbHVnaW4gaXMgZWl0aGVyIG5vdCBkZWZpbmVkLCBub3QgZW5hYmxlZCBvciBkb2VzIG5vdCBoYXZlIGEgcHJvY2Vzc1RlbGVtZXRyeSBpbXBsZW1lbnRhdGlvblxyXG4gICAgICAgICAgICAvLyBzbyB3ZSBzdGlsbCB3YW50IHRoZSBuZXh0IHBsdWdpbiB0byBiZSBleGVjdXRlZC5cclxuICAgICAgICAgICAgaXRlbUN0eFtfRFlOX1BST0NFU1NfTkVYVCAvKiBAbWluOiUyZXByb2Nlc3NOZXh0ICovXShlbnYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF91bmxvYWRQbHVnaW4odW5sb2FkQ3R4LCB1bmxvYWRTdGF0ZSkge1xyXG4gICAgICAgIGZ1bmN0aW9uIF9jYWxsVGVhcmRvd24oKSB7XHJcbiAgICAgICAgICAgIC8vIFNldHRpbmcgZGVmYXVsdCBvZiBoYXNSdW4gYXMgZmFsc2Ugc28gdGhlIHByb3h5UHJvY2Vzc0ZuKCkgaXMgY2FsbGVkIGFzIHRlYXJkb3duKCkgZG9lc24ndCBoYXZlIHRvIGV4aXN0IG9yIGNhbGwgdW5sb2FkTmV4dCgpLlxyXG4gICAgICAgICAgICB2YXIgaGFzUnVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChwbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgIHZhciBwbHVnaW5TdGF0ZSA9IF9nZXRQbHVnaW5TdGF0ZShwbHVnaW4pO1xyXG4gICAgICAgICAgICAgICAgdmFyIHBsdWdpbkNvcmUgPSBwbHVnaW5bU1RSX0NPUkVdIHx8IHBsdWdpblN0YXRlW1NUUl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL107XHJcbiAgICAgICAgICAgICAgICAvLyBPbmx5IHRlYXJkb3duIHRoZSBwbHVnaW4gaWYgaXQgd2FzIGluaXRpYWxpemVkIGJ5IHRoZSBjdXJyZW50IGNvcmUgKGkuZS4gSXQncyBub3QgYSBzaGFyZWQgcGx1Z2luKVxyXG4gICAgICAgICAgICAgICAgaWYgKHBsdWdpbiAmJiAoIXBsdWdpbkNvcmUgfHwgcGx1Z2luQ29yZSA9PT0gdW5sb2FkQ3R4LmNvcmUoKSkgJiYgIXBsdWdpblN0YXRlW19EWU5fVEVBUkRPV04gLyogQG1pbjolMmV0ZWFyZG93biAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcGx1Z2lucyB0aGF0IGRvbid0IGV4dGVuZCBmcm9tIHRoZSBCYXNlVGVsZW1ldHJ5UGx1Z2luXHJcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luU3RhdGVbU1RSX0NPUkUgLyogQG1pbjolMmVjb3JlICovXSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luU3RhdGVbX0RZTl9URUFSRE9XTiAvKiBAbWluOiUyZXRlYXJkb3duICovXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luU3RhdGVbX0RZTl9JU19JTklUSUFMSVpFRCAvKiBAbWluOiUyZWlzSW5pdGlhbGl6ZWQgKi9dID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBsdWdpbltfRFlOX1RFQVJET1dOIC8qIEBtaW46JTJldGVhcmRvd24gKi9dICYmIHBsdWdpbltfRFlOX1RFQVJET1dOIC8qIEBtaW46JTJldGVhcmRvd24gKi9dKHVubG9hZEN0eCwgdW5sb2FkU3RhdGUpID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsdWdpbiB0b2xkIHVzIHRoYXQgaXQgd2FzIGdvaW5nIHRvIChvciBoYXMpIGNhbGwgdW5sb2FkQ3R4LnByb2Nlc3NOZXh0KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUnVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGhhc1J1bjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFfcHJvY2Vzc0NoYWluKHVubG9hZEN0eCwgX2NhbGxUZWFyZG93biwgXCJ1bmxvYWRcIiwgZnVuY3Rpb24gKCkgeyB9LCB1bmxvYWRTdGF0ZVtfRFlOX0lTX0FTWU5DIC8qIEBtaW46JTJlaXNBc3luYyAqL10pKSB7XHJcbiAgICAgICAgICAgIC8vIE9ubHkgY2FsbGVkIGlmIHdlIGhhc1J1biB3YXMgbm90IHRydWVcclxuICAgICAgICAgICAgdW5sb2FkQ3R4W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKHVubG9hZFN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfdXBkYXRlUGx1Z2luKHVwZGF0ZUN0eCwgdXBkYXRlU3RhdGUpIHtcclxuICAgICAgICBmdW5jdGlvbiBfY2FsbFVwZGF0ZSgpIHtcclxuICAgICAgICAgICAgLy8gU2V0dGluZyBkZWZhdWx0IG9mIGhhc1J1biBhcyBmYWxzZSBzbyB0aGUgcHJveHlQcm9jZXNzRm4oKSBpcyBjYWxsZWQgYXMgdGVhcmRvd24oKSBkb2Vzbid0IGhhdmUgdG8gZXhpc3Qgb3IgY2FsbCB1bmxvYWROZXh0KCkuXHJcbiAgICAgICAgICAgIHZhciBoYXNSdW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHBsdWdpbikge1xyXG4gICAgICAgICAgICAgICAgdmFyIHBsdWdpblN0YXRlID0gX2dldFBsdWdpblN0YXRlKHBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICB2YXIgcGx1Z2luQ29yZSA9IHBsdWdpbltTVFJfQ09SRV0gfHwgcGx1Z2luU3RhdGVbU1RSX0NPUkUgLyogQG1pbjolMmVjb3JlICovXTtcclxuICAgICAgICAgICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBwbHVnaW4gaWYgaXQgd2FzIGluaXRpYWxpemVkIGJ5IHRoZSBjdXJyZW50IGNvcmUgKGkuZS4gSXQncyBub3QgYSBzaGFyZWQgcGx1Z2luKVxyXG4gICAgICAgICAgICAgICAgaWYgKHBsdWdpbiAmJiAoIXBsdWdpbkNvcmUgfHwgcGx1Z2luQ29yZSA9PT0gdXBkYXRlQ3R4LmNvcmUoKSkgJiYgIXBsdWdpblN0YXRlW19EWU5fVEVBUkRPV04gLyogQG1pbjolMmV0ZWFyZG93biAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luW19EWU5fVVBEQVRFIC8qIEBtaW46JTJldXBkYXRlICovXSAmJiBwbHVnaW5bX0RZTl9VUERBVEUgLyogQG1pbjolMmV1cGRhdGUgKi9dKHVwZGF0ZUN0eCwgdXBkYXRlU3RhdGUpID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsdWdpbiB0b2xkIHVzIHRoYXQgaXQgd2FzIGdvaW5nIHRvIChvciBoYXMpIGNhbGwgdW5sb2FkQ3R4LnByb2Nlc3NOZXh0KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUnVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGhhc1J1bjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFfcHJvY2Vzc0NoYWluKHVwZGF0ZUN0eCwgX2NhbGxVcGRhdGUsIFwidXBkYXRlXCIsIGZ1bmN0aW9uICgpIHsgfSwgZmFsc2UpKSB7XHJcbiAgICAgICAgICAgIC8vIE9ubHkgY2FsbGVkIGlmIHdlIGhhc1J1biB3YXMgbm90IHRydWVcclxuICAgICAgICAgICAgdXBkYXRlQ3R4W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKHVwZGF0ZVN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqRnJlZXplKHByb3h5Q2hhaW4pO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIGNsYXNzIHdpbGwgYmUgcmVtb3ZlZCFcclxuICogQGRlcHJlY2F0ZWQgdXNlIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0KCkgaW5zdGVhZFxyXG4gKi9cclxudmFyIFByb2Nlc3NUZWxlbWV0cnlDb250ZXh0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFRlbGVtZXRyeSBJdGVtIGNvbnRleHQgd2l0aCB0aGUgY3VycmVudCBjb25maWcsIGNvcmUgYW5kIHBsdWdpbiBleGVjdXRpb24gY2hhaW5cclxuICAgICAqIEBwYXJhbSBwbHVnaW5zIC0gVGhlIHBsdWdpbiBpbnN0YW5jZXMgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkXHJcbiAgICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGN1cnJlbnQgY29uZmlnXHJcbiAgICAgKiBAcGFyYW0gY29yZSAtIFRoZSBjdXJyZW50IGNvcmUgaW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQocGx1Z2luQ2hhaW4sIGNvbmZpZywgY29yZSwgc3RhcnRBdCkge1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dChwbHVnaW5DaGFpbiwgY29uZmlnLCBjb3JlLCBzdGFydEF0KTtcclxuICAgICAgICAvLyBQcm94eSBhbGwgZnVuY3Rpb25zIG9mIHRoZSBjb250ZXh0IHRvIHRoaXMgb2JqZWN0XHJcbiAgICAgICAgcHJveHlGdW5jdGlvbnMoX3NlbGYsIGNvbnRleHQsIG9iaktleXMoY29udGV4dCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb2Nlc3NUZWxlbWV0cnlDb250ZXh0O1xyXG59KCkpO1xyXG5leHBvcnQgeyBQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qcm9jZXNzVGVsZW1ldHJ5Q29udGV4dC5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcbi8vIFxyXG5pbXBvcnQgeyBfRFlOX0NPTkZJRywgX0RZTl9DUkVBVEVfTkVXLCBfRFlOX0ZMVVNILCBfRFlOX0lERU5USUZJRVIsIF9EWU5fTEVOR1RILCBfRFlOX09OX0NPTVBMRVRFLCBfRFlOX1BST0NFU1NfTkVYVCwgX0RZTl9QVVNIIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBhcnJGb3JFYWNoLCBpc0FycmF5LCBvYmpGcmVlemUsIHRocm93RXJyb3IgfSBmcm9tIFwiLi9IZWxwZXJGdW5jc1wiO1xyXG5pbXBvcnQgeyBTVFJfUFJJT1JJVFkgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCwgY3JlYXRlVGVsZW1ldHJ5UHJveHlDaGFpbiB9IGZyb20gXCIuL1Byb2Nlc3NUZWxlbWV0cnlDb250ZXh0XCI7XHJcbmltcG9ydCB7IGluaXRpYWxpemVQbHVnaW5zIH0gZnJvbSBcIi4vVGVsZW1ldHJ5SGVscGVyc1wiO1xyXG5leHBvcnQgdmFyIENoYW5uZWxDb250cm9sbGVyUHJpb3JpdHkgPSA1MDA7XHJcbnZhciBDaGFubmVsVmFsaWRhdGlvbk1lc3NhZ2UgPSBcIkNoYW5uZWwgaGFzIGludmFsaWQgcHJpb3JpdHkgLSBcIjtcclxuZnVuY3Rpb24gX2FkZENoYW5uZWxRdWV1ZShjaGFubmVsUXVldWUsIHF1ZXVlLCBjb3JlKSB7XHJcbiAgICBpZiAocXVldWUgJiYgaXNBcnJheShxdWV1ZSkgJiYgcXVldWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgIHF1ZXVlID0gcXVldWUuc29ydChmdW5jdGlvbiAoYSwgYikge1xyXG4gICAgICAgICAgICByZXR1cm4gYVtTVFJfUFJJT1JJVFkgLyogQG1pbjolMmVwcmlvcml0eSAqL10gLSBiW1NUUl9QUklPUklUWSAvKiBAbWluOiUyZXByaW9yaXR5ICovXTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBhcnJGb3JFYWNoKHF1ZXVlLCBmdW5jdGlvbiAocXVldWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGlmIChxdWV1ZUl0ZW1bU1RSX1BSSU9SSVRZIC8qIEBtaW46JTJlcHJpb3JpdHkgKi9dIDwgQ2hhbm5lbENvbnRyb2xsZXJQcmlvcml0eSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihDaGFubmVsVmFsaWRhdGlvbk1lc3NhZ2UgKyBxdWV1ZUl0ZW1bX0RZTl9JREVOVElGSUVSIC8qIEBtaW46JTJlaWRlbnRpZmllciAqL10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY2hhbm5lbFF1ZXVlW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKHtcclxuICAgICAgICAgICAgcXVldWU6IG9iakZyZWV6ZShxdWV1ZSksXHJcbiAgICAgICAgICAgIGNoYWluOiBjcmVhdGVUZWxlbWV0cnlQcm94eUNoYWluKHF1ZXVlLCBjb3JlW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXSwgY29yZSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2hhbm5lbENvbnRyb2xsZXJQbHVnaW4oY2hhbm5lbFF1ZXVlLCBjb3JlKSB7XHJcbiAgICBmdW5jdGlvbiBfZ2V0VGVsQ3R4KCkge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dChudWxsLCBjb3JlW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXSwgY29yZSwgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfcHJvY2Vzc0NoYW5uZWxRdWV1ZSh0aGVDaGFubmVscywgaXRlbUN0eCwgcHJvY2Vzc0ZuLCBvbkNvbXBsZXRlKSB7XHJcbiAgICAgICAgdmFyIHdhaXRpbmcgPSB0aGVDaGFubmVscyA/ICh0aGVDaGFubmVsc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gKyAxKSA6IDE7XHJcbiAgICAgICAgZnVuY3Rpb24gX3J1bkNoYWluT25Db21wbGV0ZSgpIHtcclxuICAgICAgICAgICAgd2FpdGluZy0tO1xyXG4gICAgICAgICAgICBpZiAod2FpdGluZyA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgb25Db21wbGV0ZSAmJiBvbkNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAod2FpdGluZyA+IDApIHtcclxuICAgICAgICAgICAgYXJyRm9yRWFjaCh0aGVDaGFubmVscywgZnVuY3Rpb24gKGNoYW5uZWxzKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBwYXNzIG9uIHRvIGZpcnN0IGl0ZW0gaW4gcXVldWVcclxuICAgICAgICAgICAgICAgIGlmIChjaGFubmVscyAmJiBjaGFubmVscy5xdWV1ZVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNoYW5uZWxDaGFpbiA9IGNoYW5uZWxzLmNoYWluO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjaGFpbkN0eCA9IGl0ZW1DdHhbX0RZTl9DUkVBVEVfTkVXIC8qIEBtaW46JTJlY3JlYXRlTmV3ICovXShjaGFubmVsQ2hhaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYWluQ3R4W19EWU5fT05fQ09NUExFVEUgLyogQG1pbjolMmVvbkNvbXBsZXRlICovXShfcnVuQ2hhaW5PbkNvbXBsZXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDYXVzZSB0aGlzIGNoYWluIHRvIHN0YXJ0IHByb2Nlc3NpbmdcclxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRm4oY2hhaW5DdHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2FpdGluZy0tO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3J1bkNoYWluT25Db21wbGV0ZSgpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gX2RvVXBkYXRlKHVwZGF0ZUN0eCwgdXBkYXRlU3RhdGUpIHtcclxuICAgICAgICB2YXIgdGhlVXBkYXRlU3RhdGUgPSB1cGRhdGVTdGF0ZSB8fCB7XHJcbiAgICAgICAgICAgIHJlYXNvbjogMCAvKiBUZWxlbWV0cnlVcGRhdGVSZWFzb24uVW5rbm93biAqL1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3Byb2Nlc3NDaGFubmVsUXVldWUoY2hhbm5lbFF1ZXVlLCB1cGRhdGVDdHgsIGZ1bmN0aW9uIChjaGFpbkN0eCkge1xyXG4gICAgICAgICAgICBjaGFpbkN0eFtfRFlOX1BST0NFU1NfTkVYVCAvKiBAbWluOiUyZXByb2Nlc3NOZXh0ICovXSh0aGVVcGRhdGVTdGF0ZSk7XHJcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB1cGRhdGVDdHhbX0RZTl9QUk9DRVNTX05FWFQgLyogQG1pbjolMmVwcm9jZXNzTmV4dCAqL10odGhlVXBkYXRlU3RhdGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gX2RvVGVhcmRvd24odW5sb2FkQ3R4LCB1bmxvYWRTdGF0ZSkge1xyXG4gICAgICAgIHZhciB0aGVVbmxvYWRTdGF0ZSA9IHVubG9hZFN0YXRlIHx8IHtcclxuICAgICAgICAgICAgcmVhc29uOiAwIC8qIFRlbGVtZXRyeVVubG9hZFJlYXNvbi5NYW51YWxUZWFyZG93biAqLyxcclxuICAgICAgICAgICAgaXNBc3luYzogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIF9wcm9jZXNzQ2hhbm5lbFF1ZXVlKGNoYW5uZWxRdWV1ZSwgdW5sb2FkQ3R4LCBmdW5jdGlvbiAoY2hhaW5DdHgpIHtcclxuICAgICAgICAgICAgY2hhaW5DdHhbX0RZTl9QUk9DRVNTX05FWFQgLyogQG1pbjolMmVwcm9jZXNzTmV4dCAqL10odGhlVW5sb2FkU3RhdGUpO1xyXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdW5sb2FkQ3R4W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKHRoZVVubG9hZFN0YXRlKTtcclxuICAgICAgICAgICAgaXNJbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gX2dldENoYW5uZWwocGx1Z2luSWRlbnRpZmllcikge1xyXG4gICAgICAgIHZhciB0aGVQbHVnaW4gPSBudWxsO1xyXG4gICAgICAgIGlmIChjaGFubmVsUXVldWUgJiYgY2hhbm5lbFF1ZXVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICAgICAgYXJyRm9yRWFjaChjaGFubmVsUXVldWUsIGZ1bmN0aW9uIChjaGFubmVscykge1xyXG4gICAgICAgICAgICAgICAgLy8gcGFzcyBvbiB0byBmaXJzdCBpdGVtIGluIHF1ZXVlXHJcbiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbHMgJiYgY2hhbm5lbHMucXVldWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFyckZvckVhY2goY2hhbm5lbHMucXVldWUsIGZ1bmN0aW9uIChleHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4dFtfRFlOX0lERU5USUZJRVIgLyogQG1pbjolMmVpZGVudGlmaWVyICovXSA9PT0gcGx1Z2luSWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlUGx1Z2luID0gZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2F1c2UgYXJyRm9yRWFjaCB0byBzdG9wIGl0ZXJhdGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoZVBsdWdpbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYXVzZSBhcnJGb3JFYWNoIHRvIHN0b3AgaXRlcmF0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhlUGx1Z2luO1xyXG4gICAgfVxyXG4gICAgdmFyIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICAgIHZhciBjaGFubmVsQ29udHJvbGxlciA9IHtcclxuICAgICAgICBpZGVudGlmaWVyOiBcIkNoYW5uZWxDb250cm9sbGVyUGx1Z2luXCIsXHJcbiAgICAgICAgcHJpb3JpdHk6IENoYW5uZWxDb250cm9sbGVyUHJpb3JpdHksXHJcbiAgICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pIHtcclxuICAgICAgICAgICAgaXNJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGFyckZvckVhY2goY2hhbm5lbFF1ZXVlLCBmdW5jdGlvbiAoY2hhbm5lbHMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGFubmVscyAmJiBjaGFubmVscy5xdWV1ZVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZVBsdWdpbnMoY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQoY2hhbm5lbHMuY2hhaW4sIGNvbmZpZywgY29yZSksIGV4dGVuc2lvbnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzSW5pdGlhbGl6ZWQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzSW5pdGlhbGl6ZWQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBwcm9jZXNzVGVsZW1ldHJ5OiBmdW5jdGlvbiAoaXRlbSwgaXRlbUN0eCkge1xyXG4gICAgICAgICAgICBfcHJvY2Vzc0NoYW5uZWxRdWV1ZShjaGFubmVsUXVldWUsIGl0ZW1DdHggfHwgX2dldFRlbEN0eCgpLCBmdW5jdGlvbiAoY2hhaW5DdHgpIHtcclxuICAgICAgICAgICAgICAgIGNoYWluQ3R4W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKGl0ZW0pO1xyXG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtQ3R4W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKGl0ZW0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHVwZGF0ZTogX2RvVXBkYXRlLFxyXG4gICAgICAgIHBhdXNlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF9wcm9jZXNzQ2hhbm5lbFF1ZXVlKGNoYW5uZWxRdWV1ZSwgX2dldFRlbEN0eCgpLCBmdW5jdGlvbiAoY2hhaW5DdHgpIHtcclxuICAgICAgICAgICAgICAgIGNoYWluQ3R4Lml0ZXJhdGUoZnVuY3Rpb24gKHBsdWdpbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHBsdWdpbi5wYXVzZSAmJiBwbHVnaW4ucGF1c2UoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCBudWxsKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlc3VtZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfcHJvY2Vzc0NoYW5uZWxRdWV1ZShjaGFubmVsUXVldWUsIF9nZXRUZWxDdHgoKSwgZnVuY3Rpb24gKGNoYWluQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICBjaGFpbkN0eC5pdGVyYXRlKGZ1bmN0aW9uIChwbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICBwbHVnaW4ucmVzdW1lICYmIHBsdWdpbi5yZXN1bWUoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCBudWxsKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRlYXJkb3duOiBfZG9UZWFyZG93bixcclxuICAgICAgICBnZXRDaGFubmVsOiBfZ2V0Q2hhbm5lbCxcclxuICAgICAgICBmbHVzaDogZnVuY3Rpb24gKGlzQXN5bmMsIGNhbGxCYWNrLCBzZW5kUmVhc29uLCBjYlRpbWVvdXQpIHtcclxuICAgICAgICAgICAgLy8gU2V0dGluZyB3YWl0aW5nIHRvIG9uZSBzbyB0aGF0IHdlIGRvbid0IGNhbGwgdGhlIGNhbGxCYWNrIHVudGlsIHdlIGZpbmlzaCBpdGVyYXRpbmdcclxuICAgICAgICAgICAgdmFyIHdhaXRpbmcgPSAxO1xyXG4gICAgICAgICAgICB2YXIgZG9uZUl0ZXJhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB2YXIgY2JUaW1lciA9IG51bGw7XHJcbiAgICAgICAgICAgIGNiVGltZW91dCA9IGNiVGltZW91dCB8fCA1MDAwO1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBkb0NhbGxiYWNrKCkge1xyXG4gICAgICAgICAgICAgICAgd2FpdGluZy0tO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvbmVJdGVyYXRpbmcgJiYgd2FpdGluZyA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYlRpbWVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChjYlRpbWVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2JUaW1lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKGRvbmVJdGVyYXRpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxCYWNrID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBfcHJvY2Vzc0NoYW5uZWxRdWV1ZShjaGFubmVsUXVldWUsIF9nZXRUZWxDdHgoKSwgZnVuY3Rpb24gKGNoYWluQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICBjaGFpbkN0eC5pdGVyYXRlKGZ1bmN0aW9uIChwbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luW19EWU5fRkxVU0ggLyogQG1pbjolMmVmbHVzaCAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2FpdGluZysrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGFuZGxlZF8xID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdCBhbGwgY2hhbm5lbHMgd2lsbCBjYWxsIHRoaXMgY2FsbGJhY2sgZm9yIGV2ZXJ5IHNjZW5hcmlvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGx1Z2luW19EWU5fRkxVU0ggLyogQG1pbjolMmVmbHVzaCAqL10oaXNBc3luYywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZF8xID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgc2VuZFJlYXNvbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZF8xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW55IGNoYW5uZWwgZG9lc24ndCByZXR1cm4gdHJ1ZSBhbmQgaXQgZGlkbid0IGNhbGwgdGhlIGNhbGxiYWNrLCB0aGVuIHdlIHNob3VsZCBhc3N1bWUgdGhhdCB0aGUgY2FsbGJhY2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIG5ldmVyIGJlIGNhbGxlZCwgc28gdXNlIGEgdGltZW91dCB0byBhbGxvdyB0aGUgY2hhbm5lbChzKSBzb21lIHRpbWUgdG8gXCJmaW5pc2hcIiBiZWZvcmUgdHJpZ2dlcmluZyBhbnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb2xsb3d1cCBmdW5jdGlvbiAoc3VjaCBhcyB1bmxvYWRpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXN5bmMgJiYgY2JUaW1lciA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiVGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiVGltZXIgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9DYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBjYlRpbWVvdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9DYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBkb25lSXRlcmF0aW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGRvQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgX3NldFF1ZXVlOiBmdW5jdGlvbiAocXVldWUpIHtcclxuICAgICAgICAgICAgY2hhbm5lbFF1ZXVlID0gcXVldWU7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiBjaGFubmVsQ29udHJvbGxlcjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2hhbm5lbFF1ZXVlcyhjaGFubmVscywgZXh0ZW5zaW9ucywgY29yZSkge1xyXG4gICAgdmFyIGNoYW5uZWxRdWV1ZSA9IFtdO1xyXG4gICAgaWYgKGNoYW5uZWxzKSB7XHJcbiAgICAgICAgLy8gQWRkIGFuZCBzb3J0IHRoZSBjb25maWd1cmF0aW9uIGNoYW5uZWwgcXVldWVzXHJcbiAgICAgICAgYXJyRm9yRWFjaChjaGFubmVscywgZnVuY3Rpb24gKHF1ZXVlKSB7IHJldHVybiBfYWRkQ2hhbm5lbFF1ZXVlKGNoYW5uZWxRdWV1ZSwgcXVldWUsIGNvcmUpOyB9KTtcclxuICAgIH1cclxuICAgIGlmIChleHRlbnNpb25zKSB7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGNoYW5uZWwgcXVldWUgZm9yIGFueSBleHRlbnNpb25zIHdpdGggYSBwcmlvcml0eSA+IHRoZSBDaGFubmVsQ29udHJvbGxlclByaW9yaXR5XHJcbiAgICAgICAgdmFyIGV4dGVuc2lvblF1ZXVlXzEgPSBbXTtcclxuICAgICAgICBhcnJGb3JFYWNoKGV4dGVuc2lvbnMsIGZ1bmN0aW9uIChwbHVnaW4pIHtcclxuICAgICAgICAgICAgaWYgKHBsdWdpbltTVFJfUFJJT1JJVFkgLyogQG1pbjolMmVwcmlvcml0eSAqL10gPiBDaGFubmVsQ29udHJvbGxlclByaW9yaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBleHRlbnNpb25RdWV1ZV8xW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKHBsdWdpbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBfYWRkQ2hhbm5lbFF1ZXVlKGNoYW5uZWxRdWV1ZSwgZXh0ZW5zaW9uUXVldWVfMSwgY29yZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2hhbm5lbFF1ZXVlO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNoYW5uZWxDb250cm9sbGVyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IF9EWU5fRElBR19MT0csIF9EWU5fUFVTSCB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgX3Rocm93SW50ZXJuYWwgfSBmcm9tIFwiLi9EaWFnbm9zdGljTG9nZ2VyXCI7XHJcbmltcG9ydCB7IGR1bXBPYmogfSBmcm9tIFwiLi9FbnZVdGlsc1wiO1xyXG5pbXBvcnQgeyBhcnJGb3JFYWNoIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVubG9hZEhhbmRsZXJDb250YWluZXIoKSB7XHJcbiAgICB2YXIgaGFuZGxlcnMgPSBbXTtcclxuICAgIGZ1bmN0aW9uIF9hZGRIYW5kbGVyKGhhbmRsZXIpIHtcclxuICAgICAgICBpZiAoaGFuZGxlcikge1xyXG4gICAgICAgICAgICBoYW5kbGVyc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShoYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBfcnVuSGFuZGxlcnModW5sb2FkQ3R4LCB1bmxvYWRTdGF0ZSkge1xyXG4gICAgICAgIGFyckZvckVhY2goaGFuZGxlcnMsIGZ1bmN0aW9uIChoYW5kbGVyKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyKHVubG9hZEN0eCwgdW5sb2FkU3RhdGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbCh1bmxvYWRDdHhbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA3MyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlBsdWdpbkV4Y2VwdGlvbiAqLywgXCJVbmV4cGVjdGVkIGVycm9yIGNhbGxpbmcgdW5sb2FkIGhhbmRsZXIgLSBcIiArIGR1bXBPYmooZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaGFuZGxlcnMgPSBbXTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgYWRkOiBfYWRkSGFuZGxlcixcclxuICAgICAgICBydW46IF9ydW5IYW5kbGVyc1xyXG4gICAgfTtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1VbmxvYWRIYW5kbGVyQ29udGFpbmVyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcblwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBfRFlOX0NSRUFURV9ORVcsIF9EWU5fRElBR19MT0csIF9EWU5fR0VUX05FWFQsIF9EWU5fR0VUX1BST0NFU1NfVEVMX0NPTlQwLCBfRFlOX0lOSVRJQUxJWkUsIF9EWU5fSVNfQVNZTkMsIF9EWU5fSVNfSU5JVElBTElaRUQsIF9EWU5fUFJPQ0VTU19ORVhULCBfRFlOX1BVU0gsIF9EWU5fU0VUX05FWFRfUExVR0lOLCBfRFlOX1RFQVJET1dOLCBfRFlOX1VQREFURSwgX0RZTl9fRE9fVEVBUkRPV04gfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGFyckZvckVhY2gsIGlzQXJyYXksIGlzRnVuY3Rpb24sIGlzTnVsbE9yVW5kZWZpbmVkLCBwcm94eUZ1bmN0aW9uQXMsIHNldFZhbHVlIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0NPUkUsIFNUUl9FWFRFTlNJT05fQ09ORklHLCBTVFJfUFJPQ0VTU19URUxFTUVUUlkgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCwgY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeVVubG9hZENvbnRleHQsIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlVcGRhdGVDb250ZXh0IH0gZnJvbSBcIi4vUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHRcIjtcclxuaW1wb3J0IHsgY3JlYXRlVW5sb2FkSGFuZGxlckNvbnRhaW5lciB9IGZyb20gXCIuL1VubG9hZEhhbmRsZXJDb250YWluZXJcIjtcclxudmFyIHN0ckdldFBsdWdpbiA9IFwiZ2V0UGx1Z2luXCI7XHJcbi8qKlxyXG4gKiBCYXNlVGVsZW1ldHJ5UGx1Z2luIHByb3ZpZGVzIGEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgdGhlIElUZWxlbWV0cnlQbHVnaW4gaW50ZXJmYWNlIHNvIHRoYXQgcGx1Z2luc1xyXG4gKiBjYW4gYXZvaWQgaW1wbGVtZW50YXRpb24gdGhlIHNhbWUgc2V0IG9mIGJvaWxlciBwbGF0ZSBjb2RlIGFzIHdlbGwgYXMgcHJvdmlkZSBhIGJhc2VcclxuICogaW1wbGVtZW50YXRpb24gc28gdGhhdCBuZXcgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgY2FuIGJlIGFkZGVkIHdpdGhvdXQgYnJlYWtpbmcgYWxsIHBsdWdpbnMuXHJcbiAqL1xyXG52YXIgQmFzZVRlbGVtZXRyeVBsdWdpbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEJhc2VUZWxlbWV0cnlQbHVnaW4oKSB7XHJcbiAgICAgICAgdmFyIF9zZWxmID0gdGhpczsgLy8gU2V0dGluZyBfc2VsZiBoZXJlIGFzIGl0J3MgdXNlZCBvdXRzaWRlIG9mIHRoZSBkeW5hbWljUHJvdG8gYXMgd2VsbFxyXG4gICAgICAgIC8vIE5PVEUhOiBET04nVCBzZXQgZGVmYXVsdCB2YWx1ZXMgaGVyZSwgaW5zdGVhZCBzZXQgdGhlbSBpbiB0aGUgX2luaXREZWZhdWx0cygpIGZ1bmN0aW9uIGFzIGl0IGlzIGFsc28gY2FsbGVkIGR1cmluZyB0ZWFyZG93bigpXHJcbiAgICAgICAgdmFyIF9pc2luaXRpYWxpemVkO1xyXG4gICAgICAgIHZhciBfcm9vdEN0eDsgLy8gVXNlZCBhcyB0aGUgcm9vdCBjb250ZXh0LCBob2xkaW5nIHRoZSBjdXJyZW50IGNvbmZpZyBhbmQgaW5pdGlhbGl6ZWQgY29yZVxyXG4gICAgICAgIHZhciBfbmV4dFBsdWdpbjsgLy8gVXNlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aGVyZSBwbHVnaW5zIGRvbid0IGNhbGwgdGhlIG1haW4gcGlwZWxpbmVcclxuICAgICAgICB2YXIgX3VubG9hZEhhbmRsZXJDb250YWluZXI7XHJcbiAgICAgICAgdmFyIF9ob29rcztcclxuICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKEJhc2VUZWxlbWV0cnlQbHVnaW4sIF9zZWxmLCBmdW5jdGlvbiAoX3NlbGYpIHtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9JTklUSUFMSVpFIC8qIEBtaW46JTJlaW5pdGlhbGl6ZSAqL10gPSBmdW5jdGlvbiAoY29uZmlnLCBjb3JlLCBleHRlbnNpb25zLCBwbHVnaW5DaGFpbikge1xyXG4gICAgICAgICAgICAgICAgX3NldERlZmF1bHRzKGNvbmZpZywgY29yZSwgcGx1Z2luQ2hhaW4pO1xyXG4gICAgICAgICAgICAgICAgX2lzaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1RFQVJET1dOIC8qIEBtaW46JTJldGVhcmRvd24gKi9dID0gZnVuY3Rpb24gKHVubG9hZEN0eCwgdW5sb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgcGx1Z2luIGhhcyBhbHJlYWR5IGJlZW4gdG9ybiBkb3duIChub3Qgb3BlcmF0aW9uYWwpIG9yIGlzIG5vdCBpbml0aWFsaXplZCAoY29yZSBpcyBub3Qgc2V0KVxyXG4gICAgICAgICAgICAgICAgLy8gb3IgdGhlIGNvcmUgYmVpbmcgdXNlZCBmb3IgdW5sb2FkIHdhcyBub3QgdGhlIHNhbWUgY29yZSB1c2VkIGZvciBpbml0aWFsaXphdGlvbi5cclxuICAgICAgICAgICAgICAgIHZhciBjb3JlID0gX3NlbGZbU1RSX0NPUkUgLyogQG1pbjolMmVjb3JlICovXTtcclxuICAgICAgICAgICAgICAgIGlmICghY29yZSB8fCAodW5sb2FkQ3R4ICYmIGNvcmUgIT09IHVubG9hZEN0eFtTVFJfQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dKCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRG8gTm90aGluZyBhcyBlaXRoZXIgdGhlIHBsdWdpbiBpcyBub3QgaW5pdGlhbGl6ZWQgb3Igd2FzIG5vdCBpbml0aWFsaXplZCBieSB0aGUgY3VycmVudCBjb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIHZhciB1bmxvYWREb25lID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlVW5sb2FkQ3R4ID0gdW5sb2FkQ3R4IHx8IGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlVbmxvYWRDb250ZXh0KG51bGwsIGNvcmUsIF9uZXh0UGx1Z2luICYmIF9uZXh0UGx1Z2luW3N0ckdldFBsdWdpbl0gPyBfbmV4dFBsdWdpbltzdHJHZXRQbHVnaW5dKCkgOiBfbmV4dFBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlVW5sb2FkU3RhdGUgPSB1bmxvYWRTdGF0ZSB8fCAoX2EgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogMCAvKiBUZWxlbWV0cnlVbmxvYWRSZWFzb24uTWFudWFsVGVhcmRvd24gKi9cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF9hW19EWU5fSVNfQVNZTkMgLyogQG1pbjppc0FzeW5jICovXSA9IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hKTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF91bmxvYWRDYWxsYmFjaygpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXVubG9hZERvbmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5sb2FkRG9uZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF91bmxvYWRIYW5kbGVyQ29udGFpbmVyLnJ1bih0aGVVbmxvYWRDdHgsIHVubG9hZFN0YXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9sZEhvb2tzID0gX2hvb2tzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaG9va3MgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbCBpbnN0cnVtZW50YXRpb24gaG9va3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChvbGRIb29rcywgZnVuY3Rpb24gKGZuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbi5ybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlVW5sb2FkQ3R4W19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKHRoZVVubG9hZFN0YXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFfc2VsZltfRFlOX19ET19URUFSRE9XTiAvKiBAbWluOiUyZV9kb1RlYXJkb3duICovXSB8fCBfc2VsZltfRFlOX19ET19URUFSRE9XTiAvKiBAbWluOiUyZV9kb1RlYXJkb3duICovXSh0aGVVbmxvYWRDdHgsIHRoZVVubG9hZFN0YXRlLCBfdW5sb2FkQ2FsbGJhY2spICE9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3VubG9hZENhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBUZWxsIHRoZSBjYWxsZXIgdGhhdCB3ZSB3aWxsIGJlIGNhbGxpbmcgcHJvY2Vzc05leHQoKVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1VQREFURSAvKiBAbWluOiUyZXVwZGF0ZSAqL10gPSBmdW5jdGlvbiAodXBkYXRlQ3R4LCB1cGRhdGVTdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBwbHVnaW4gaGFzIGFscmVhZHkgYmVlbiB0b3JuIGRvd24gKG5vdCBvcGVyYXRpb25hbCkgb3IgaXMgbm90IGluaXRpYWxpemVkIChjb3JlIGlzIG5vdCBzZXQpXHJcbiAgICAgICAgICAgICAgICAvLyBvciB0aGUgY29yZSBiZWluZyB1c2VkIGZvciB1bmxvYWQgd2FzIG5vdCB0aGUgc2FtZSBjb3JlIHVzZWQgZm9yIGluaXRpYWxpemF0aW9uLlxyXG4gICAgICAgICAgICAgICAgdmFyIGNvcmUgPSBfc2VsZltTVFJfQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjb3JlIHx8ICh1cGRhdGVDdHggJiYgY29yZSAhPT0gdXBkYXRlQ3R4W1NUUl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10oKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBEbyBOb3RoaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIHZhciB1cGRhdGVEb25lID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlVXBkYXRlQ3R4ID0gdXBkYXRlQ3R4IHx8IGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlVcGRhdGVDb250ZXh0KG51bGwsIGNvcmUsIF9uZXh0UGx1Z2luICYmIF9uZXh0UGx1Z2luW3N0ckdldFBsdWdpbl0gPyBfbmV4dFBsdWdpbltzdHJHZXRQbHVnaW5dKCkgOiBfbmV4dFBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlVXBkYXRlU3RhdGUgPSB1cGRhdGVTdGF0ZSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVhc29uOiAwIC8qIFRlbGVtZXRyeVVwZGF0ZVJlYXNvbi5Vbmtub3duICovXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX3VwZGF0ZUNhbGxiYWNrKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdXBkYXRlRG9uZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVEb25lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3NldERlZmF1bHRzKHRoZVVwZGF0ZUN0eC5nZXRDZmcoKSwgdGhlVXBkYXRlQ3R4LmNvcmUoKSwgdGhlVXBkYXRlQ3R4W19EWU5fR0VUX05FWFQgLyogQG1pbjolMmVnZXROZXh0ICovXSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIV9zZWxmLl9kb1VwZGF0ZSB8fCBfc2VsZi5fZG9VcGRhdGUodGhlVXBkYXRlQ3R4LCB0aGVVcGRhdGVTdGF0ZSwgX3VwZGF0ZUNhbGxiYWNrKSAhPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF91cGRhdGVDYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLl9hZGRIb29rID0gZnVuY3Rpb24gKGhvb2tzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaG9va3MpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShob29rcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2hvb2tzID0gX2hvb2tzLmNvbmNhdChob29rcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaG9va3NbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10oaG9va3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcHJveHlGdW5jdGlvbkFzKF9zZWxmLCBcIl9hZGRVbmxvYWRDYlwiLCBmdW5jdGlvbiAoKSB7IHJldHVybiBfdW5sb2FkSGFuZGxlckNvbnRhaW5lcjsgfSwgXCJhZGRcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gVGhlc2UgYXJlIGFkZGVkIGFmdGVyIHRoZSBkeW5hbWljUHJvdG8gc28gdGhhdCBhcmUgbm90IG1vdmVkIHRvIHRoZSBwcm90b3R5cGVcclxuICAgICAgICBfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10gPSBmdW5jdGlvbiAoaXRlbUN0eCkge1xyXG4gICAgICAgICAgICByZXR1cm4gX2dldFRlbEN0eChpdGVtQ3R4KVtfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIF9zZWxmW19EWU5fSVNfSU5JVElBTElaRUQgLyogQG1pbjolMmVpc0luaXRpYWxpemVkICovXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF9pc2luaXRpYWxpemVkO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3NlbGYuc2V0SW5pdGlhbGl6ZWQgPSBmdW5jdGlvbiAoaXNJbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICBfaXNpbml0aWFsaXplZCA9IGlzSW5pdGlhbGl6ZWQ7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyBfc2VsZi5nZXROZXh0UGx1Z2luID0gKCkgPT4gRE8gTk9UIElNUExFTUVOVFxyXG4gICAgICAgIC8vIFN1Yi1jbGFzc2VzIG9mIHRoaXMgYmFzZSBjbGFzcyAqc2hvdWxkKiBub3QgYmUgcmVseWluZyBvbiB0aGlzIHZhbHVlIGFuZCBpbnN0ZWFkXHJcbiAgICAgICAgLy8gc2hvdWxkIHVzZSBwcm9jZXNzTmV4dCgpIGZ1bmN0aW9uLiBJZiB5b3UgcmVxdWlyZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiB1c2UgdGhlXHJcbiAgICAgICAgLy8gSVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0LmdldE5leHQoKS5nZXRQbHVnaW4oKSB3aGlsZSBpbiB0aGUgcGlwZWxpbmUsIE5vdGUgZ2V0TmV4dCgpIG1heSByZXR1cm4gbnVsbC5cclxuICAgICAgICBfc2VsZltfRFlOX1NFVF9ORVhUX1BMVUdJTiAvKiBAbWluOiUyZXNldE5leHRQbHVnaW4gKi9dID0gZnVuY3Rpb24gKG5leHQpIHtcclxuICAgICAgICAgICAgX25leHRQbHVnaW4gPSBuZXh0O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3NlbGZbX0RZTl9QUk9DRVNTX05FWFQgLyogQG1pbjolMmVwcm9jZXNzTmV4dCAqL10gPSBmdW5jdGlvbiAoZW52LCBpdGVtQ3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBOb3JtYWwgY29yZSBleGVjdXRpb24gc2VxdWVuY2VcclxuICAgICAgICAgICAgICAgIGl0ZW1DdHhbX0RZTl9QUk9DRVNTX05FWFQgLyogQG1pbjolMmVwcm9jZXNzTmV4dCAqL10oZW52KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChfbmV4dFBsdWdpbiAmJiBpc0Z1bmN0aW9uKF9uZXh0UGx1Z2luW1NUUl9QUk9DRVNTX1RFTEVNRVRSWSAvKiBAbWluOiUyZXByb2Nlc3NUZWxlbWV0cnkgKi9dKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gTG9va3MgbGlrZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9yIG91dCBvZiBiYW5kIHByb2Nlc3NpbmcuIEFuZCBhcyBpdCBsb29rc1xyXG4gICAgICAgICAgICAgICAgLy8gbGlrZSBhIElUZWxlbWV0cnlQbHVnaW4gb3IgSVRlbGVtZXRyeVBsdWdpbkNoYWluLCBqdXN0IGNhbGwgcHJvY2Vzc1RlbGVtZXRyeVxyXG4gICAgICAgICAgICAgICAgX25leHRQbHVnaW5bU1RSX1BST0NFU1NfVEVMRU1FVFJZIC8qIEBtaW46JTJlcHJvY2Vzc1RlbGVtZXRyeSAqL10oZW52LCBudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3NlbGYuX2dldFRlbEN0eCA9IF9nZXRUZWxDdHg7XHJcbiAgICAgICAgZnVuY3Rpb24gX2dldFRlbEN0eChjdXJyZW50Q3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50Q3R4ID09PSB2b2lkIDApIHsgY3VycmVudEN0eCA9IG51bGw7IH1cclxuICAgICAgICAgICAgdmFyIGl0ZW1DdHggPSBjdXJyZW50Q3R4O1xyXG4gICAgICAgICAgICBpZiAoIWl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciByb290Q3R4ID0gX3Jvb3RDdHggfHwgY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQobnVsbCwge30sIF9zZWxmW1NUUl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10pO1xyXG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBwcmVmZXItY29uZGl0aW9uYWwtZXhwcmVzc2lvblxyXG4gICAgICAgICAgICAgICAgaWYgKF9uZXh0UGx1Z2luICYmIF9uZXh0UGx1Z2luW3N0ckdldFBsdWdpbl0pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBMb29rcyBsaWtlIGEgY2hhaW4gb2JqZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbUN0eCA9IHJvb3RDdHhbX0RZTl9DUkVBVEVfTkVXIC8qIEBtaW46JTJlY3JlYXRlTmV3ICovXShudWxsLCBfbmV4dFBsdWdpbltzdHJHZXRQbHVnaW5dKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1DdHggPSByb290Q3R4W19EWU5fQ1JFQVRFX05FVyAvKiBAbWluOiUyZWNyZWF0ZU5ldyAqL10obnVsbCwgX25leHRQbHVnaW4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtQ3R4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmdW5jdGlvbiBfc2V0RGVmYXVsdHMoY29uZmlnLCBjb3JlLCBwbHVnaW5DaGFpbikge1xyXG4gICAgICAgICAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGV4dGVuc2lvbkNvbmZpZyBleGlzdHNcclxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGNvbmZpZywgU1RSX0VYVEVOU0lPTl9DT05GSUcsIFtdLCBudWxsLCBpc051bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFwbHVnaW5DaGFpbiAmJiBjb3JlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IHBsdWdpbiBmcm9tIHRoZSBjb3JlXHJcbiAgICAgICAgICAgICAgICBwbHVnaW5DaGFpbiA9IGNvcmVbX0RZTl9HRVRfUFJPQ0VTU19URUxfQ09OVDAgLyogQG1pbjolMmVnZXRQcm9jZXNzVGVsQ29udGV4dCAqL10oKVtfRFlOX0dFVF9ORVhUIC8qIEBtaW46JTJlZ2V0TmV4dCAqL10oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgbmV4dFBsdWdpbiA9IF9uZXh0UGx1Z2luO1xyXG4gICAgICAgICAgICBpZiAoX25leHRQbHVnaW4gJiYgX25leHRQbHVnaW5bc3RyR2V0UGx1Z2luXSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgaXQgbG9va3MgbGlrZSBhIHByb3h5L2NoYWluIHRoZW4gZ2V0IHRoZSBwbHVnaW5cclxuICAgICAgICAgICAgICAgIG5leHRQbHVnaW4gPSBfbmV4dFBsdWdpbltzdHJHZXRQbHVnaW5dKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gU3VwcG9ydCBsZWdhY3kgcGx1Z2lucyB3aGVyZSBjb3JlIHdhcyBkZWZpbmVkIGFzIGEgcHJvcGVydHlcclxuICAgICAgICAgICAgX3NlbGZbU1RSX0NPUkUgLyogQG1pbjolMmVjb3JlICovXSA9IGNvcmU7XHJcbiAgICAgICAgICAgIF9yb290Q3R4ID0gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQocGx1Z2luQ2hhaW4sIGNvbmZpZywgY29yZSwgbmV4dFBsdWdpbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZ1bmN0aW9uIF9pbml0RGVmYXVsdHMoKSB7XHJcbiAgICAgICAgICAgIF9pc2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIF9zZWxmW1NUUl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10gPSBudWxsO1xyXG4gICAgICAgICAgICBfcm9vdEN0eCA9IG51bGw7XHJcbiAgICAgICAgICAgIF9uZXh0UGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgX2hvb2tzID0gW107XHJcbiAgICAgICAgICAgIF91bmxvYWRIYW5kbGVyQ29udGFpbmVyID0gY3JlYXRlVW5sb2FkSGFuZGxlckNvbnRhaW5lcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlVGVsZW1ldHJ5UGx1Z2luLnByb3RvdHlwZS5pbml0aWFsaXplLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VUZWxlbWV0cnlQbHVnaW4ucHJvdG90eXBlLnRlYXJkb3duLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VUZWxlbWV0cnlQbHVnaW4ucHJvdG90eXBlLnVwZGF0ZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlVGVsZW1ldHJ5UGx1Z2luLnByb3RvdHlwZS5fYWRkVW5sb2FkQ2IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZVRlbGVtZXRyeVBsdWdpbi5wcm90b3R5cGUuX2FkZEhvb2suXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBCYXNlVGVsZW1ldHJ5UGx1Z2luLl9faWVEeW49MTtcblxuICAgIHJldHVybiBCYXNlVGVsZW1ldHJ5UGx1Z2luO1xyXG59KCkpO1xyXG5leHBvcnQgeyBCYXNlVGVsZW1ldHJ5UGx1Z2luIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJhc2VUZWxlbWV0cnlQbHVnaW4uanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29yZSwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cbi8vIFxyXG4vLyBcclxuaW1wb3J0IHsgX19leHRlbmRzRm4gYXMgX19leHRlbmRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBfRFlOX0FQUExZLCBfRFlOX0RJQUdfTE9HLCBfRFlOX0xFTkdUSCwgX0RZTl9QUk9DRVNTX05FWFQsIF9EWU5fUFVTSCwgX0RZTl9TUExJQ0UsIF9EWU5fX0RPX1RFQVJET1dOIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBCYXNlVGVsZW1ldHJ5UGx1Z2luIH0gZnJvbSBcIi4vQmFzZVRlbGVtZXRyeVBsdWdpblwiO1xyXG5pbXBvcnQgeyBfdGhyb3dJbnRlcm5hbCB9IGZyb20gXCIuL0RpYWdub3N0aWNMb2dnZXJcIjtcclxuaW1wb3J0IHsgZHVtcE9iaiB9IGZyb20gXCIuL0VudlV0aWxzXCI7XHJcbmltcG9ydCB7IGFyckZvckVhY2gsIGdldEV4Y2VwdGlvbk5hbWUgfSBmcm9tIFwiLi9IZWxwZXJGdW5jc1wiO1xyXG5pbXBvcnQgeyBTVFJfUFJPQ0VTU19URUxFTUVUUlkgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG52YXIgVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4sIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBUZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbigpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmlkZW50aWZpZXIgPSBcIlRlbGVtZXRyeUluaXRpYWxpemVyUGx1Z2luXCI7XHJcbiAgICAgICAgX3RoaXMucHJpb3JpdHkgPSAxOTk7XHJcbiAgICAgICAgLy8gTk9URSE6IERPTidUIHNldCBkZWZhdWx0IHZhbHVlcyBoZXJlLCBpbnN0ZWFkIHNldCB0aGVtIGluIHRoZSBfaW5pdERlZmF1bHRzKCkgZnVuY3Rpb24gYXMgaXQgaXMgYWxzbyBjYWxsZWQgZHVyaW5nIHRlYXJkb3duKClcclxuICAgICAgICB2YXIgX2lkO1xyXG4gICAgICAgIHZhciBfaW5pdGlhbGl6ZXJzO1xyXG4gICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4sIF90aGlzLCBmdW5jdGlvbiAoX3NlbGYsIF9iYXNlKSB7XHJcbiAgICAgICAgICAgIF9zZWxmLmFkZFRlbGVtZXRyeUluaXRpYWxpemVyID0gZnVuY3Rpb24gKHRlbGVtZXRyeUluaXRpYWxpemVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlSW5pdGlhbGl6ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IF9pZCsrLFxyXG4gICAgICAgICAgICAgICAgICAgIGZuOiB0ZWxlbWV0cnlJbml0aWFsaXplclxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIF9pbml0aWFsaXplcnNbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10odGhlSW5pdGlhbGl6ZXIpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyckZvckVhY2goX2luaXRpYWxpemVycywgZnVuY3Rpb24gKGluaXRpYWxpemVyLCBpZHgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbml0aWFsaXplci5pZCA9PT0gdGhlSW5pdGlhbGl6ZXIuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5pdGlhbGl6ZXJzW19EWU5fU1BMSUNFIC8qIEBtaW46JTJlc3BsaWNlICovXShpZHgsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltTVFJfUFJPQ0VTU19URUxFTUVUUlkgLyogQG1pbjolMmVwcm9jZXNzVGVsZW1ldHJ5ICovXSA9IGZ1bmN0aW9uIChpdGVtLCBpdGVtQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZG9Ob3RTZW5kSXRlbSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRlbGVtZXRyeUluaXRpYWxpemVyc0NvdW50ID0gX2luaXRpYWxpemVyc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlbGVtZXRyeUluaXRpYWxpemVyc0NvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdGVsZW1ldHJ5SW5pdGlhbGl6ZXIgPSBfaW5pdGlhbGl6ZXJzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZWxlbWV0cnlJbml0aWFsaXplcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbGVtZXRyeUluaXRpYWxpemVyLmZuW19EWU5fQVBQTFkgLyogQG1pbjolMmVhcHBseSAqL10obnVsbCwgW2l0ZW1dKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb05vdFNlbmRJdGVtID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nIGVycm9yIGJ1dCBkb250IHN0b3AgZXhlY3V0aW5nIHJlc3Qgb2YgdGhlIHRlbGVtZXRyeSBpbml0aWFsaXplcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvTm90U2VuZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoaXRlbUN0eFtfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCA2NCAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRlbGVtZXRyeUluaXRpYWxpemVyRmFpbGVkICovLCBcIk9uZSBvZiB0ZWxlbWV0cnkgaW5pdGlhbGl6ZXJzIGZhaWxlZCwgdGVsZW1ldHJ5IGl0ZW0gd2lsbCBub3QgYmUgc2VudDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghZG9Ob3RTZW5kSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKGl0ZW0sIGl0ZW1DdHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX19ET19URUFSRE9XTiAvKiBAbWluOiUyZV9kb1RlYXJkb3duICovXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmdW5jdGlvbiBfaW5pdERlZmF1bHRzKCkge1xyXG4gICAgICAgICAgICBfaWQgPSAwO1xyXG4gICAgICAgICAgICBfaW5pdGlhbGl6ZXJzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBfdGhpcztcclxuICAgIH1cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBUZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbi5wcm90b3R5cGUuYWRkVGVsZW1ldHJ5SW5pdGlhbGl6ZXIuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4ucHJvdG90eXBlLnByb2Nlc3NUZWxlbWV0cnkuXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBUZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbi5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW47XHJcbn0oQmFzZVRlbGVtZXRyeVBsdWdpbikpO1xyXG5leHBvcnQgeyBUZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbiB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbi5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5cInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHsgX19zcHJlYWRBcnJheUZuIGFzIF9fc3ByZWFkQXJyYXkgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXNoaW1zXCI7XHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IG9iakNyZWF0ZUZuIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgeyBfRFlOX0FERF9OT1RJRklDQVRJT05fTElTMSwgX0RZTl9DT05GSUcsIF9EWU5fRkxVU0gsIF9EWU5fR0VUX05PVElGWV9NR1IsIF9EWU5fR0VUX1BMVUdJTiwgX0RZTl9HRVRfUFJPQ0VTU19URUxfQ09OVDAsIF9EWU5fSURFTlRJRklFUiwgX0RZTl9JTklUSUFMSVpFLCBfRFlOX0lOU1RSVU1FTlRBVElPTl9LRVksIF9EWU5fSVNfQVNZTkMsIF9EWU5fSVNfSU5JVElBTElaRUQsIF9EWU5fTEVOR1RILCBfRFlOX0xPR0dFUiwgX0RZTl9NRVNTQUdFLCBfRFlOX01FU1NBR0VfSUQsIF9EWU5fTkFNRSwgX0RZTl9PTl9DT01QTEVURSwgX0RZTl9QUk9DRVNTX05FWFQsIF9EWU5fUFVTSCwgX0RZTl9SRU1PVkVfTk9USUZJQ0FUSU9OXzIsIF9EWU5fU0VUX0VOQUJMRUQsIF9EWU5fU1BMSUNFLCBfRFlOX1NUT1BfUE9MTElOR19JTlRFUk5BMywgX0RZTl9URUFSRE9XTiwgX0RZTl9USU1FLCBfRFlOX19FWFRFTlNJT05TIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBDaGFubmVsQ29udHJvbGxlclByaW9yaXR5LCBjcmVhdGVDaGFubmVsQ29udHJvbGxlclBsdWdpbiwgY3JlYXRlQ2hhbm5lbFF1ZXVlcyB9IGZyb20gXCIuL0NoYW5uZWxDb250cm9sbGVyXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUNvb2tpZU1nciB9IGZyb20gXCIuL0Nvb2tpZU1nclwiO1xyXG5pbXBvcnQgeyBjcmVhdGVVbmlxdWVOYW1lc3BhY2UgfSBmcm9tIFwiLi9EYXRhQ2FjaGVIZWxwZXJcIjtcclxuaW1wb3J0IHsgZ2V0RGVidWdMaXN0ZW5lciB9IGZyb20gXCIuL0RiZ0V4dGVuc2lvblV0aWxzXCI7XHJcbmltcG9ydCB7IERpYWdub3N0aWNMb2dnZXIsIF9JbnRlcm5hbExvZ01lc3NhZ2UsIF90aHJvd0ludGVybmFsLCBfd2FyblRvQ29uc29sZSB9IGZyb20gXCIuL0RpYWdub3N0aWNMb2dnZXJcIjtcclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgYXJySW5kZXhPZiwgZ2V0Q2ZnVmFsdWUsIGdldFNldFZhbHVlLCBpc0Z1bmN0aW9uLCBpc051bGxPclVuZGVmaW5lZCwgb2JqRXh0ZW5kLCBvYmpGcmVlemUsIHByb3h5RnVuY3Rpb25BcywgcHJveHlGdW5jdGlvbnMsIHRocm93RXJyb3IsIHRvSVNPU3RyaW5nIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0NIQU5ORUxTLCBTVFJfQ09SRSwgU1RSX0NSRUFURV9QRVJGX01HUiwgU1RSX0RJU0FCTEVELCBTVFJfRVZFTlRTX0RJU0NBUkRFRCwgU1RSX0VWRU5UU19TRU5EX1JFUVVFU1QsIFNUUl9FVkVOVFNfU0VOVCwgU1RSX0VYVEVOU0lPTlMsIFNUUl9FWFRFTlNJT05fQ09ORklHLCBTVFJfR0VUX1BFUkZfTUdSLCBTVFJfUFJJT1JJVFkgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBQZXJmTWFuYWdlciwgZ2V0R2JsUGVyZk1nciB9IGZyb20gXCIuL1BlcmZNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0LCBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5VW5sb2FkQ29udGV4dCwgY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeVVwZGF0ZUNvbnRleHQsIGNyZWF0ZVRlbGVtZXRyeVByb3h5Q2hhaW4gfSBmcm9tIFwiLi9Qcm9jZXNzVGVsZW1ldHJ5Q29udGV4dFwiO1xyXG5pbXBvcnQgeyBfZ2V0UGx1Z2luU3RhdGUsIGNyZWF0ZURpc3RyaWJ1dGVkVHJhY2VDb250ZXh0LCBpbml0aWFsaXplUGx1Z2lucywgc29ydFBsdWdpbnMgfSBmcm9tIFwiLi9UZWxlbWV0cnlIZWxwZXJzXCI7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUluaXRpYWxpemVyUGx1Z2luIH0gZnJvbSBcIi4vVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW5cIjtcclxuaW1wb3J0IHsgY3JlYXRlVW5sb2FkSGFuZGxlckNvbnRhaW5lciB9IGZyb20gXCIuL1VubG9hZEhhbmRsZXJDb250YWluZXJcIjtcclxudmFyIHN0clZhbGlkYXRpb25FcnJvciA9IFwiUGx1Z2lucyBtdXN0IHByb3ZpZGUgaW5pdGlhbGl6ZSBtZXRob2RcIjtcclxudmFyIHN0ck5vdGlmaWNhdGlvbk1hbmFnZXIgPSBcIl9ub3RpZmljYXRpb25NYW5hZ2VyXCI7XHJcbnZhciBzdHJTZGtVbmxvYWRpbmdFcnJvciA9IFwiU0RLIGlzIHN0aWxsIHVubG9hZGluZy4uLlwiO1xyXG52YXIgc3RyU2RrTm90SW5pdGlhbGl6ZWQgPSBcIlNESyBpcyBub3QgaW5pdGlhbGl6ZWRcIjtcclxuLy8gY29uc3Qgc3RyUGx1Z2luVW5sb2FkRmFpbGVkID0gXCJGYWlsZWQgdG8gdW5sb2FkIHBsdWdpblwiO1xyXG52YXIgZGVmYXVsdEluaXRDb25maWcgPSB7XHJcbiAgICAvLyBIYXZlIHRoZSBEaWFnbm9zdGljIExvZ2dlciBkZWZhdWx0IHRvIGxvZyBjcml0aWNhbCBlcnJvcnMgdG8gdGhlIGNvbnNvbGVcclxuICAgIGxvZ2dpbmdMZXZlbENvbnNvbGU6IDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqL1xyXG59O1xyXG4vKipcclxuICogSGVscGVyIHRvIGNyZWF0ZSB0aGUgZGVmYXVsdCBwZXJmb3JtYW5jZSBtYW5hZ2VyXHJcbiAqIEBwYXJhbSBjb3JlXHJcbiAqIEBwYXJhbSBub3RpZmljYXRpb25NZ3JcclxuICovXHJcbmZ1bmN0aW9uIF9jcmVhdGVQZXJmTWFuYWdlcihjb3JlLCBub3RpZmljYXRpb25NZ3IpIHtcclxuICAgIHJldHVybiBuZXcgUGVyZk1hbmFnZXIobm90aWZpY2F0aW9uTWdyKTtcclxufVxyXG5mdW5jdGlvbiBfdmFsaWRhdGVFeHRlbnNpb25zKGxvZ2dlciwgY2hhbm5lbFByaW9yaXR5LCBhbGxFeHRlbnNpb25zKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICAvLyBDb25jYXQgYWxsIGF2YWlsYWJsZSBleHRlbnNpb25zXHJcbiAgICB2YXIgY29yZUV4dGVuc2lvbnMgPSBbXTtcclxuICAgIC8vIENoZWNrIGlmIGFueSB0d28gZXh0ZW5zaW9ucyBoYXZlIHRoZSBzYW1lIHByaW9yaXR5LCB0aGVuIHdhcm4gdG8gY29uc29sZVxyXG4gICAgLy8gQW5kIGV4dHJhY3QgdGhlIGxvY2FsIGV4dGVuc2lvbnMgZnJvbSB0aGVcclxuICAgIHZhciBleHRQcmlvcml0aWVzID0ge307XHJcbiAgICAvLyBFeHRlbnNpb24gdmFsaWRhdGlvblxyXG4gICAgYXJyRm9yRWFjaChhbGxFeHRlbnNpb25zLCBmdW5jdGlvbiAoZXh0KSB7XHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGV4dC5pbml0aWFsaXplXHJcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGV4dCkgfHwgaXNOdWxsT3JVbmRlZmluZWQoZXh0W19EWU5fSU5JVElBTElaRSAvKiBAbWluOiUyZWluaXRpYWxpemUgKi9dKSkge1xyXG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0clZhbGlkYXRpb25FcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBleHRQcmlvcml0eSA9IGV4dFtTVFJfUFJJT1JJVFkgLyogQG1pbjolMmVwcmlvcml0eSAqL107XHJcbiAgICAgICAgdmFyIGlkZW50aWZpZXIgPSBleHRbX0RZTl9JREVOVElGSUVSIC8qIEBtaW46JTJlaWRlbnRpZmllciAqL107XHJcbiAgICAgICAgaWYgKGV4dCAmJiBleHRQcmlvcml0eSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGV4dFByaW9yaXRpZXNbZXh0UHJpb3JpdHldKSkge1xyXG4gICAgICAgICAgICAgICAgX3dhcm5Ub0NvbnNvbGUobG9nZ2VyLCBcIlR3byBleHRlbnNpb25zIGhhdmUgc2FtZSBwcmlvcml0eSAjXCIgKyBleHRQcmlvcml0eSArIFwiIC0gXCIgKyBleHRQcmlvcml0aWVzW2V4dFByaW9yaXR5XSArIFwiLCBcIiArIGlkZW50aWZpZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gc2V0IGEgdmFsdWVcclxuICAgICAgICAgICAgICAgIGV4dFByaW9yaXRpZXNbZXh0UHJpb3JpdHldID0gaWRlbnRpZmllcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBTcGxpdCBleHRlbnNpb25zIHRvIGNvcmUgYW5kIGNoYW5uZWxDb250cm9sbGVyXHJcbiAgICAgICAgaWYgKCFleHRQcmlvcml0eSB8fCBleHRQcmlvcml0eSA8IGNoYW5uZWxQcmlvcml0eSkge1xyXG4gICAgICAgICAgICAvLyBBZGQgdG8gY29yZSBleHRlbnNpb24gdGhhdCB3aWxsIGJlIG1hbmFnZWQgYnkgQmFzZUNvcmVcclxuICAgICAgICAgICAgY29yZUV4dGVuc2lvbnNbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10oZXh0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBfYSA9IHtcclxuICAgICAgICAgICAgYWxsOiBhbGxFeHRlbnNpb25zXHJcbiAgICAgICAgfSxcclxuICAgICAgICBfYVtTVFJfQ09SRSAvKiBAbWluOmNvcmUgKi9dID0gY29yZUV4dGVuc2lvbnMsXHJcbiAgICAgICAgX2E7XHJcbn1cclxuZnVuY3Rpb24gX2lzUGx1Z2luUHJlc2VudCh0aGVQbHVnaW4sIHBsdWdpbnMpIHtcclxuICAgIHZhciBleGlzdHMgPSBmYWxzZTtcclxuICAgIGFyckZvckVhY2gocGx1Z2lucywgZnVuY3Rpb24gKHBsdWdpbikge1xyXG4gICAgICAgIGlmIChwbHVnaW4gPT09IHRoZVBsdWdpbikge1xyXG4gICAgICAgICAgICBleGlzdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZXhpc3RzO1xyXG59XHJcbmZ1bmN0aW9uIF9jcmVhdGVEdW1teU5vdGlmaWNhdGlvbk1hbmFnZXIoKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICByZXR1cm4gb2JqQ3JlYXRlRm4oKF9hID0ge30sXHJcbiAgICAgICAgX2FbX0RZTl9BRERfTk9USUZJQ0FUSU9OX0xJUzEgLyogQG1pbjphZGROb3RpZmljYXRpb25MaXN0ZW5lciAqL10gPSBmdW5jdGlvbiAobGlzdGVuZXIpIHsgfSxcclxuICAgICAgICBfYVtfRFlOX1JFTU9WRV9OT1RJRklDQVRJT05fMiAvKiBAbWluOnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyICovXSA9IGZ1bmN0aW9uIChsaXN0ZW5lcikgeyB9LFxyXG4gICAgICAgIF9hW1NUUl9FVkVOVFNfU0VOVCAvKiBAbWluOmV2ZW50c1NlbnQgKi9dID0gZnVuY3Rpb24gKGV2ZW50cykgeyB9LFxyXG4gICAgICAgIF9hW1NUUl9FVkVOVFNfRElTQ0FSREVEIC8qIEBtaW46ZXZlbnRzRGlzY2FyZGVkICovXSA9IGZ1bmN0aW9uIChldmVudHMsIHJlYXNvbikgeyB9LFxyXG4gICAgICAgIF9hW1NUUl9FVkVOVFNfU0VORF9SRVFVRVNUIC8qIEBtaW46ZXZlbnRzU2VuZFJlcXVlc3QgKi9dID0gZnVuY3Rpb24gKHNlbmRSZWFzb24sIGlzQXN5bmMpIHsgfSxcclxuICAgICAgICBfYSkpO1xyXG59XHJcbnZhciBCYXNlQ29yZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEJhc2VDb3JlKCkge1xyXG4gICAgICAgIC8vIE5PVEUhOiBET04nVCBzZXQgZGVmYXVsdCB2YWx1ZXMgaGVyZSwgaW5zdGVhZCBzZXQgdGhlbSBpbiB0aGUgX2luaXREZWZhdWx0cygpIGZ1bmN0aW9uIGFzIGl0IGlzIGFsc28gY2FsbGVkIGR1cmluZyB0ZWFyZG93bigpXHJcbiAgICAgICAgdmFyIF9jb25maWc7XHJcbiAgICAgICAgdmFyIF9pc0luaXRpYWxpemVkO1xyXG4gICAgICAgIHZhciBfZXZlbnRRdWV1ZTtcclxuICAgICAgICB2YXIgX25vdGlmaWNhdGlvbk1hbmFnZXI7XHJcbiAgICAgICAgdmFyIF9wZXJmTWFuYWdlcjtcclxuICAgICAgICB2YXIgX2NmZ1BlcmZNYW5hZ2VyO1xyXG4gICAgICAgIHZhciBfY29va2llTWFuYWdlcjtcclxuICAgICAgICB2YXIgX3BsdWdpbkNoYWluO1xyXG4gICAgICAgIHZhciBfY29uZmlnRXh0ZW5zaW9ucztcclxuICAgICAgICB2YXIgX2NvcmVFeHRlbnNpb25zO1xyXG4gICAgICAgIHZhciBfY2hhbm5lbENvbnRyb2w7XHJcbiAgICAgICAgdmFyIF9jaGFubmVsQ29uZmlnO1xyXG4gICAgICAgIHZhciBfY2hhbm5lbFF1ZXVlO1xyXG4gICAgICAgIHZhciBfaXNVbmxvYWRpbmc7XHJcbiAgICAgICAgdmFyIF90ZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbjtcclxuICAgICAgICB2YXIgX2ludGVybmFsTG9nc0V2ZW50TmFtZTtcclxuICAgICAgICB2YXIgX2V2dE5hbWVzcGFjZTtcclxuICAgICAgICB2YXIgX3VubG9hZEhhbmRsZXJzO1xyXG4gICAgICAgIHZhciBfZGVidWdMaXN0ZW5lcjtcclxuICAgICAgICB2YXIgX3RyYWNlQ3R4O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIGxvZyBwb2xsZXJcclxuICAgICAgICAgKi9cclxuICAgICAgICB2YXIgX2ludGVybmFsTG9nUG9sbGVyID0gMDtcclxuICAgICAgICBkeW5hbWljUHJvdG8oQmFzZUNvcmUsIHRoaXMsIGZ1bmN0aW9uIChfc2VsZikge1xyXG4gICAgICAgICAgICAvLyBTZXQgdGhlIGRlZmF1bHQgdmFsdWVzIChhbHNvIGNhbGxlZCBkdXJpbmcgdGVhcmRvd24pXHJcbiAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9JU19JTklUSUFMSVpFRCAvKiBAbWluOiUyZWlzSW5pdGlhbGl6ZWQgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gX2lzSW5pdGlhbGl6ZWQ7IH07XHJcbiAgICAgICAgICAgIC8vIENyZWF0aW5nIHRoZSBzZWxmLmluaXRpYWxpemUgPSAoKVxyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0lOSVRJQUxJWkUgLyogQG1pbjolMmVpbml0aWFsaXplICovXSA9IGZ1bmN0aW9uIChjb25maWcsIGV4dGVuc2lvbnMsIGxvZ2dlciwgbm90aWZpY2F0aW9uTWFuYWdlcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9pc1VubG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3Ioc3RyU2RrVW5sb2FkaW5nRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGNvcmUgaXMgb25seSBpbml0aWFsaXplZCBvbmNlXHJcbiAgICAgICAgICAgICAgICBpZiAoX3NlbGZbX0RZTl9JU19JTklUSUFMSVpFRCAvKiBAbWluOiUyZWlzSW5pdGlhbGl6ZWQgKi9dKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKFwiQ29yZSBzaG91bGQgbm90IGJlIGluaXRpYWxpemVkIG1vcmUgdGhhbiBvbmNlXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgX2NvbmZpZyA9IGNvbmZpZyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXSA9IF9jb25maWc7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoY29uZmlnW19EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSAvKiBAbWluOiUyZWluc3RydW1lbnRhdGlvbktleSAqL10pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihcIlBsZWFzZSBwcm92aWRlIGluc3RydW1lbnRhdGlvbiBrZXlcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfbm90aWZpY2F0aW9uTWFuYWdlciA9IG5vdGlmaWNhdGlvbk1hbmFnZXI7XHJcbiAgICAgICAgICAgICAgICAvLyBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5XHJcbiAgICAgICAgICAgICAgICBfc2VsZltzdHJOb3RpZmljYXRpb25NYW5hZ2VyXSA9IG5vdGlmaWNhdGlvbk1hbmFnZXI7XHJcbiAgICAgICAgICAgICAgICBfaW5pdERlYnVnTGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgICAgIF9pbml0UGVyZk1hbmFnZXIoKTtcclxuICAgICAgICAgICAgICAgIC8vIGFkZCBub3RpZmljYXRpb24gdG8gdGhlIGV4dGVuc2lvbnMgaW4gdGhlIGNvbmZpZyBzbyBvdGhlciBwbHVnaW5zIGNhbiBhY2Nlc3MgaXRcclxuICAgICAgICAgICAgICAgIF9pbml0RXh0Q29uZmlnKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobG9nZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9MT0dHRVIgLyogQG1pbjolMmVsb2dnZXIgKi9dID0gbG9nZ2VyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGNmZ0V4dGVuc2lvbnMgPSBnZXRTZXRWYWx1ZShfY29uZmlnLCBTVFJfRVhURU5TSU9OUywgW10pO1xyXG4gICAgICAgICAgICAgICAgLy8gRXh0ZW5zaW9uIHZhbGlkYXRpb25cclxuICAgICAgICAgICAgICAgIF9jb25maWdFeHRlbnNpb25zID0gW107XHJcbiAgICAgICAgICAgICAgICBfY29uZmlnRXh0ZW5zaW9uc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXS5hcHBseShfY29uZmlnRXh0ZW5zaW9ucywgX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBleHRlbnNpb25zLCBmYWxzZSksIGNmZ0V4dGVuc2lvbnMsIGZhbHNlKSk7XHJcbiAgICAgICAgICAgICAgICBfY2hhbm5lbENvbmZpZyA9IGdldFNldFZhbHVlKF9jb25maWcsIFNUUl9DSEFOTkVMUywgW10pO1xyXG4gICAgICAgICAgICAgICAgX2luaXRQbHVnaW5DaGFpbihudWxsKTtcclxuICAgICAgICAgICAgICAgIGlmICghX2NoYW5uZWxRdWV1ZSB8fCBfY2hhbm5lbFF1ZXVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoXCJObyBcIiArIFNUUl9DSEFOTkVMUyArIFwiIGF2YWlsYWJsZVwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF9pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLnJlbGVhc2VRdWV1ZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5nZXRUcmFuc21pc3Npb25Db250cm9scyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb250cm9scyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9jaGFubmVsUXVldWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKF9jaGFubmVsUXVldWUsIGZ1bmN0aW9uIChjaGFubmVscykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShjaGFubmVscy5xdWV1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqRnJlZXplKGNvbnRyb2xzKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYudHJhY2sgPSBmdW5jdGlvbiAodGVsZW1ldHJ5SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgLy8gc2V0dXAgZGVmYXVsdCBpS2V5IGlmIG5vdCBwYXNzZWQgaW5cclxuICAgICAgICAgICAgICAgIHRlbGVtZXRyeUl0ZW0uaUtleSA9IHRlbGVtZXRyeUl0ZW0uaUtleSB8fCBfY29uZmlnW19EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSAvKiBAbWluOiUyZWluc3RydW1lbnRhdGlvbktleSAqL107XHJcbiAgICAgICAgICAgICAgICAvLyBhZGQgZGVmYXVsdCB0aW1lc3RhbXAgaWYgbm90IHBhc3NlZCBpblxyXG4gICAgICAgICAgICAgICAgdGVsZW1ldHJ5SXRlbVtfRFlOX1RJTUUgLyogQG1pbjolMmV0aW1lICovXSA9IHRlbGVtZXRyeUl0ZW1bX0RZTl9USU1FIC8qIEBtaW46JTJldGltZSAqL10gfHwgdG9JU09TdHJpbmcobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICAvLyBDb21tb24gU2NoZW1hIDQuMFxyXG4gICAgICAgICAgICAgICAgdGVsZW1ldHJ5SXRlbS52ZXIgPSB0ZWxlbWV0cnlJdGVtLnZlciB8fCBcIjQuMFwiO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfaXNVbmxvYWRpbmcgJiYgX3NlbGZbX0RZTl9JU19JTklUSUFMSVpFRCAvKiBAbWluOiUyZWlzSW5pdGlhbGl6ZWQgKi9dKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSB0ZWxlbWV0cnkgcGx1Z2luIGNoYWluXHJcbiAgICAgICAgICAgICAgICAgICAgX2NyZWF0ZVRlbEN0eCgpW19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKHRlbGVtZXRyeUl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUXVldWUgZXZlbnRzIHVudGlsIGFsbCBleHRlbnNpb25zIGFyZSBpbml0aWFsaXplZFxyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFF1ZXVlW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKHRlbGVtZXRyeUl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0dFVF9QUk9DRVNTX1RFTF9DT05UMCAvKiBAbWluOiUyZWdldFByb2Nlc3NUZWxDb250ZXh0ICovXSA9IF9jcmVhdGVUZWxDdHg7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fR0VUX05PVElGWV9NR1IgLyogQG1pbjolMmVnZXROb3RpZnlNZ3IgKi9dID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfbm90aWZpY2F0aW9uTWFuYWdlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBEdW1teSBub3RpZmljYXRpb24gbWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgIF9ub3RpZmljYXRpb25NYW5hZ2VyID0gX2NyZWF0ZUR1bW15Tm90aWZpY2F0aW9uTWFuYWdlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHlcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltzdHJOb3RpZmljYXRpb25NYW5hZ2VyXSA9IF9ub3RpZmljYXRpb25NYW5hZ2VyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9ub3RpZmljYXRpb25NYW5hZ2VyO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQWRkcyBhIG5vdGlmaWNhdGlvbiBsaXN0ZW5lci4gVGhlIFNESyBjYWxscyBtZXRob2RzIG9uIHRoZSBsaXN0ZW5lciB3aGVuIGFuIGFwcHJvcHJpYXRlIG5vdGlmaWNhdGlvbiBpcyByYWlzZWQuXHJcbiAgICAgICAgICAgICAqIFRoZSBhZGRlZCBwbHVnaW5zIG11c3QgcmFpc2Ugbm90aWZpY2F0aW9ucy4gSWYgdGhlIHBsdWdpbnMgZG8gbm90IGltcGxlbWVudCB0aGUgbm90aWZpY2F0aW9ucywgdGhlbiBubyBtZXRob2RzIHdpbGwgYmVcclxuICAgICAgICAgICAgICogY2FsbGVkLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0ge0lOb3RpZmljYXRpb25MaXN0ZW5lcn0gbGlzdGVuZXIgLSBBbiBJTm90aWZpY2F0aW9uTGlzdGVuZXIgb2JqZWN0LlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BRERfTk9USUZJQ0FUSU9OX0xJUzEgLyogQG1pbjolMmVhZGROb3RpZmljYXRpb25MaXN0ZW5lciAqL10gPSBmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfbm90aWZpY2F0aW9uTWFuYWdlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIF9ub3RpZmljYXRpb25NYW5hZ2VyW19EWU5fQUREX05PVElGSUNBVElPTl9MSVMxIC8qIEBtaW46JTJlYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIgKi9dKGxpc3RlbmVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFJlbW92ZXMgYWxsIGluc3RhbmNlcyBvZiB0aGUgbGlzdGVuZXIuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7SU5vdGlmaWNhdGlvbkxpc3RlbmVyfSBsaXN0ZW5lciAtIElOb3RpZmljYXRpb25MaXN0ZW5lciB0byByZW1vdmUuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1JFTU9WRV9OT1RJRklDQVRJT05fMiAvKiBAbWluOiUyZXJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyICovXSA9IGZ1bmN0aW9uIChsaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9ub3RpZmljYXRpb25NYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX25vdGlmaWNhdGlvbk1hbmFnZXJbX0RZTl9SRU1PVkVfTk9USUZJQ0FUSU9OXzIgLyogQG1pbjolMmVyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lciAqL10obGlzdGVuZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5nZXRDb29raWVNZ3IgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIV9jb29raWVNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2Nvb2tpZU1hbmFnZXIgPSBjcmVhdGVDb29raWVNZ3IoX2NvbmZpZywgX3NlbGZbX0RZTl9MT0dHRVIgLyogQG1pbjolMmVsb2dnZXIgKi9dKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBfY29va2llTWFuYWdlcjtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuc2V0Q29va2llTWdyID0gZnVuY3Rpb24gKGNvb2tpZU1ncikge1xyXG4gICAgICAgICAgICAgICAgX2Nvb2tpZU1hbmFnZXIgPSBjb29raWVNZ3I7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW1NUUl9HRVRfUEVSRl9NR1IgLyogQG1pbjolMmVnZXRQZXJmTWdyICovXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghX3BlcmZNYW5hZ2VyICYmICFfY2ZnUGVyZk1hbmFnZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0Q2ZnVmFsdWUoX2NvbmZpZy5lbmFibGVQZXJmTWdyKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3JlYXRlUGVyZk1nciA9IGdldENmZ1ZhbHVlKF9jb25maWdbU1RSX0NSRUFURV9QRVJGX01HUiAvKiBAbWluOiUyZWNyZWF0ZVBlcmZNZ3IgKi9dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY3JlYXRlUGVyZk1ncikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jZmdQZXJmTWFuYWdlciA9IGNyZWF0ZVBlcmZNZ3IoX3NlbGYsIF9zZWxmW19EWU5fR0VUX05PVElGWV9NR1IgLyogQG1pbjolMmVnZXROb3RpZnlNZ3IgKi9dKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9wZXJmTWFuYWdlciB8fCBfY2ZnUGVyZk1hbmFnZXIgfHwgZ2V0R2JsUGVyZk1ncigpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5zZXRQZXJmTWdyID0gZnVuY3Rpb24gKHBlcmZNZ3IpIHtcclxuICAgICAgICAgICAgICAgIF9wZXJmTWFuYWdlciA9IHBlcmZNZ3I7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmV2ZW50Q250ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9ldmVudFF1ZXVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYucmVsZWFzZVF1ZXVlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9pc0luaXRpYWxpemVkICYmIF9ldmVudFF1ZXVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXZlbnRRdWV1ZSA9IF9ldmVudFF1ZXVlO1xyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFF1ZXVlID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChldmVudFF1ZXVlLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2NyZWF0ZVRlbEN0eCgpW19EWU5fUFJPQ0VTU19ORVhUIC8qIEBtaW46JTJlcHJvY2Vzc05leHQgKi9dKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFBlcmlvZGljYWxseSBjaGVjayBsb2dnZXIucXVldWUgZm9yIGxvZyBtZXNzYWdlcyB0byBiZSBmbHVzaGVkXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi5wb2xsSW50ZXJuYWxMb2dzID0gZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xyXG4gICAgICAgICAgICAgICAgX2ludGVybmFsTG9nc0V2ZW50TmFtZSA9IGV2ZW50TmFtZSB8fCBudWxsO1xyXG4gICAgICAgICAgICAgICAgdmFyIGludGVydmFsID0gZ2V0Q2ZnVmFsdWUoX2NvbmZpZy5kaWFnbm9zdGljTG9nSW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpbnRlcnZhbCB8fCAhKGludGVydmFsID4gMCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbCA9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKF9pbnRlcm5hbExvZ1BvbGxlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoX2ludGVybmFsTG9nUG9sbGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF9pbnRlcm5hbExvZ1BvbGxlciA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICBfZmx1c2hJbnRlcm5hbExvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH0sIGludGVydmFsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBfaW50ZXJuYWxMb2dQb2xsZXI7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTdG9wIHBvbGxpbmcgbG9nIG1lc3NhZ2VzIGZyb20gbG9nZ2VyLnF1ZXVlXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1NUT1BfUE9MTElOR19JTlRFUk5BMyAvKiBAbWluOiUyZXN0b3BQb2xsaW5nSW50ZXJuYWxMb2dzICovXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfaW50ZXJuYWxMb2dQb2xsZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKF9pbnRlcm5hbExvZ1BvbGxlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgX2ludGVybmFsTG9nUG9sbGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBfZmx1c2hJbnRlcm5hbExvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy8gQWRkIGFkZFRlbGVtZXRyeUluaXRpYWxpemVyXHJcbiAgICAgICAgICAgIHByb3h5RnVuY3Rpb25zKF9zZWxmLCBmdW5jdGlvbiAoKSB7IHJldHVybiBfdGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW47IH0sIFtcImFkZFRlbGVtZXRyeUluaXRpYWxpemVyXCJdKTtcclxuICAgICAgICAgICAgX3NlbGYudW5sb2FkID0gZnVuY3Rpb24gKGlzQXN5bmMsIHVubG9hZENvbXBsZXRlLCBjYlRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIGlmIChpc0FzeW5jID09PSB2b2lkIDApIHsgaXNBc3luYyA9IHRydWU7IH1cclxuICAgICAgICAgICAgICAgIGlmICghX2lzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgU0RLIGlzIG5vdCBpbml0aWFsaXplZFxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3Ioc3RyU2RrTm90SW5pdGlhbGl6ZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIFNESyBzdGlsbCB1bmxvYWRpbmcgc28gdGhyb3dcclxuICAgICAgICAgICAgICAgIGlmIChfaXNVbmxvYWRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgU0RLIGlzIGFscmVhZHkgdW5sb2FkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihzdHJTZGtVbmxvYWRpbmdFcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgdW5sb2FkU3RhdGUgPSAoX2EgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogNTAgLyogVGVsZW1ldHJ5VW5sb2FkUmVhc29uLlNka1VubG9hZCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgX2FbX0RZTl9JU19BU1lOQyAvKiBAbWluOmlzQXN5bmMgKi9dID0gaXNBc3luYyxcclxuICAgICAgICAgICAgICAgICAgICBfYS5mbHVzaENvbXBsZXRlID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgX2EpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHByb2Nlc3NVbmxvYWRDdHggPSBjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5VW5sb2FkQ29udGV4dChfZ2V0UGx1Z2luQ2hhaW4oKSwgX3NlbGYpO1xyXG4gICAgICAgICAgICAgICAgcHJvY2Vzc1VubG9hZEN0eFtfRFlOX09OX0NPTVBMRVRFIC8qIEBtaW46JTJlb25Db21wbGV0ZSAqL10oZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgICAgICAgICB1bmxvYWRDb21wbGV0ZSAmJiB1bmxvYWRDb21wbGV0ZSh1bmxvYWRTdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCBfc2VsZik7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZG9VbmxvYWQoZmx1c2hDb21wbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVubG9hZFN0YXRlLmZsdXNoQ29tcGxldGUgPSBmbHVzaENvbXBsZXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIF9pc1VubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUnVuIGFsbCBvZiB0aGUgdW5sb2FkIGhhbmRsZXJzIGZpcnN0IChiZWZvcmUgdW5sb2FkaW5nIHRoZSBwbHVnaW5zKVxyXG4gICAgICAgICAgICAgICAgICAgIF91bmxvYWRIYW5kbGVycy5ydW4ocHJvY2Vzc1VubG9hZEN0eCwgdW5sb2FkU3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFN0b3AgcG9sbGluZyB0aGUgaW50ZXJuYWwgbG9nc1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fU1RPUF9QT0xMSU5HX0lOVEVSTkEzIC8qIEBtaW46JTJlc3RvcFBvbGxpbmdJbnRlcm5hbExvZ3MgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgdW5sb2FkaW5nIHRoZSBjb21wb25lbnRzLCBmcm9tIHRoaXMgcG9pbnQgb253YXJkcyB0aGUgU0RLIHNob3VsZCBiZSBjb25zaWRlcmVkIHRvIGJlIGluIGFuIHVuc3RhYmxlIHN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc1VubG9hZEN0eFtfRFlOX1BST0NFU1NfTkVYVCAvKiBAbWluOiUyZXByb2Nlc3NOZXh0ICovXSh1bmxvYWRTdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIV9mbHVzaENoYW5uZWxzKGlzQXN5bmMsIF9kb1VubG9hZCwgNiAvKiBTZW5kUmVxdWVzdFJlYXNvbi5TZGtVbmxvYWQgKi8sIGNiVGltZW91dCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBfZG9VbmxvYWQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0dFVF9QTFVHSU4gLyogQG1pbjolMmVnZXRQbHVnaW4gKi9dID0gX2dldFBsdWdpbjtcclxuICAgICAgICAgICAgX3NlbGYuYWRkUGx1Z2luID0gZnVuY3Rpb24gKHBsdWdpbiwgcmVwbGFjZUV4aXN0aW5nLCBpc0FzeW5jLCBhZGRDYikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICBhZGRDYiAmJiBhZGRDYihmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2xvZ09yVGhyb3dFcnJvcihzdHJWYWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ1BsdWdpbiA9IF9nZXRQbHVnaW4ocGx1Z2luW19EWU5fSURFTlRJRklFUiAvKiBAbWluOiUyZWlkZW50aWZpZXIgKi9dKTtcclxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1BsdWdpbiAmJiAhcmVwbGFjZUV4aXN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2IgJiYgYWRkQ2IoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9sb2dPclRocm93RXJyb3IoXCJQbHVnaW4gW1wiICsgcGx1Z2luW19EWU5fSURFTlRJRklFUiAvKiBAbWluOiUyZWlkZW50aWZpZXIgKi9dICsgXCJdIGlzIGFscmVhZHkgbG9hZGVkIVwiKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlU3RhdGUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVhc29uOiAxNiAvKiBUZWxlbWV0cnlVcGRhdGVSZWFzb24uUGx1Z2luQWRkZWQgKi9cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfYWRkUGx1Z2luKHJlbW92ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBfY29uZmlnRXh0ZW5zaW9uc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShwbHVnaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlLmFkZGVkID0gW3BsdWdpbl07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUmUtSW5pdGlhbGl6ZSB0aGUgcGx1Z2luIGNoYWluXHJcbiAgICAgICAgICAgICAgICAgICAgX2luaXRQbHVnaW5DaGFpbih1cGRhdGVTdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2IgJiYgYWRkQ2IodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtb3ZlZFBsdWdpbnNfMSA9IFtleGlzdGluZ1BsdWdpbi5wbHVnaW5dO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB1bmxvYWRTdGF0ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiAyIC8qIFRlbGVtZXRyeVVubG9hZFJlYXNvbi5QbHVnaW5SZXBsYWNlICovLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0FzeW5jOiAhIWlzQXN5bmNcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIF9yZW1vdmVQbHVnaW5zKHJlbW92ZWRQbHVnaW5zXzEsIHVubG9hZFN0YXRlLCBmdW5jdGlvbiAocmVtb3ZlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlbW92ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXZpb3VzIHBsdWdpbiB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQgb3Igd2FzIG5vdCBpbnN0YWxsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZENiICYmIGFkZENiKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlLnJlbW92ZWQgPSByZW1vdmVkUGx1Z2luc18xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUucmVhc29uIHw9IDMyIC8qIFRlbGVtZXRyeVVwZGF0ZVJlYXNvbi5QbHVnaW5SZW1vdmVkICovO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FkZFBsdWdpbih0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2FkZFBsdWdpbihmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmV2dE5hbWVzcGFjZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBfZXZ0TmFtZXNwYWNlO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0ZMVVNIIC8qIEBtaW46JTJlZmx1c2ggKi9dID0gX2ZsdXNoQ2hhbm5lbHM7XHJcbiAgICAgICAgICAgIF9zZWxmLmdldFRyYWNlQ3R4ID0gZnVuY3Rpb24gKGNyZWF0ZU5ldykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfdHJhY2VDdHgpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdHJhY2VDdHggPSBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF90cmFjZUN0eDtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuc2V0VHJhY2VDdHggPSBmdW5jdGlvbiAodHJhY2VDdHgpIHtcclxuICAgICAgICAgICAgICAgIF90cmFjZUN0eCA9IHRyYWNlQ3R4IHx8IG51bGw7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgYWRkVW5sb2FkQ2JcclxuICAgICAgICAgICAgcHJveHlGdW5jdGlvbkFzKF9zZWxmLCBcImFkZFVubG9hZENiXCIsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIF91bmxvYWRIYW5kbGVyczsgfSwgXCJhZGRcIik7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pbml0RGVmYXVsdHMoKSB7XHJcbiAgICAgICAgICAgICAgICBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGEgZGVmYXVsdCBsb2dnZXIgc28gaW5pdGlhbGl6YXRpb24gZXJyb3JzIGFyZSBub3QgZHJvcHBlZCBvbiB0aGUgZmxvb3Igd2l0aCBmdWxsIGxvZ2dpbmdcclxuICAgICAgICAgICAgICAgIF9jb25maWcgPSBvYmpFeHRlbmQodHJ1ZSwge30sIGRlZmF1bHRJbml0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXSA9IF9jb25maWc7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX0xPR0dFUiAvKiBAbWluOiUyZWxvZ2dlciAqL10gPSBuZXcgRGlhZ25vc3RpY0xvZ2dlcihfY29uZmlnKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX0VYVEVOU0lPTlMgLyogQG1pbjolMmVfZXh0ZW5zaW9ucyAqL10gPSBbXTtcclxuICAgICAgICAgICAgICAgIF90ZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbiA9IG5ldyBUZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbigpO1xyXG4gICAgICAgICAgICAgICAgX2V2ZW50UXVldWUgPSBbXTtcclxuICAgICAgICAgICAgICAgIF9ub3RpZmljYXRpb25NYW5hZ2VyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9wZXJmTWFuYWdlciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfY2ZnUGVyZk1hbmFnZXIgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2Nvb2tpZU1hbmFnZXIgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX3BsdWdpbkNoYWluID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9jb3JlRXh0ZW5zaW9ucyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfY29uZmlnRXh0ZW5zaW9ucyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgX2NoYW5uZWxDb250cm9sID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9jaGFubmVsQ29uZmlnID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9jaGFubmVsUXVldWUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2lzVW5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBfaW50ZXJuYWxMb2dzRXZlbnROYW1lID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9ldnROYW1lc3BhY2UgPSBjcmVhdGVVbmlxdWVOYW1lc3BhY2UoXCJBSUJhc2VDb3JlXCIsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgX3VubG9hZEhhbmRsZXJzID0gY3JlYXRlVW5sb2FkSGFuZGxlckNvbnRhaW5lcigpO1xyXG4gICAgICAgICAgICAgICAgX3RyYWNlQ3R4ID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfY3JlYXRlVGVsQ3R4KCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0KF9nZXRQbHVnaW5DaGFpbigpLCBfY29uZmlnLCBfc2VsZik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBvciBSZS1pbml0aWFsaXplIHRoZSBwbHVnaW5zXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pbml0UGx1Z2luQ2hhaW4odXBkYXRlU3RhdGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIEV4dGVuc2lvbiB2YWxpZGF0aW9uXHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlRXh0ZW5zaW9ucyA9IF92YWxpZGF0ZUV4dGVuc2lvbnMoX3NlbGZbX0RZTl9MT0dHRVIgLyogQG1pbjolMmVsb2dnZXIgKi9dLCBDaGFubmVsQ29udHJvbGxlclByaW9yaXR5LCBfY29uZmlnRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgICAgICAgICBfY29yZUV4dGVuc2lvbnMgPSB0aGVFeHRlbnNpb25zW1NUUl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL107XHJcbiAgICAgICAgICAgICAgICBfcGx1Z2luQ2hhaW4gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgLy8gU29ydCB0aGUgY29tcGxldGUgc2V0IG9mIGV4dGVuc2lvbnMgYnkgcHJpb3JpdHlcclxuICAgICAgICAgICAgICAgIHZhciBhbGxFeHRlbnNpb25zID0gdGhlRXh0ZW5zaW9ucy5hbGw7XHJcbiAgICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBDaGFubmVsIFF1ZXVlcyBhbmQgdGhlIGNoYW5uZWwgcGx1Z2lucyBmaXJzdFxyXG4gICAgICAgICAgICAgICAgX2NoYW5uZWxRdWV1ZSA9IG9iakZyZWV6ZShjcmVhdGVDaGFubmVsUXVldWVzKF9jaGFubmVsQ29uZmlnLCBhbGxFeHRlbnNpb25zLCBfc2VsZikpO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9jaGFubmVsQ29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIER1cmluZyBhZGQgLyByZW1vdmUgb2YgYSBwbHVnaW4gdGhpcyBtYXkgZ2V0IGNhbGxlZCBhZ2Fpbiwgc28gZG9uJ3QgcmUtYWRkIGlmIGFscmVhZHkgcHJlc2VudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBhbHNvIHdhbnQgdGhlIGNvbnRyb2xsZXIgYXMgdGhlIGxhc3QsIHNvIHJlbW92ZSBpZiBhbHJlYWR5IHByZXNlbnRcclxuICAgICAgICAgICAgICAgICAgICAvLyBBbmQgcmV1c2luZyB0aGUgZXhpc3RpbmcgaW5zdGFuY2UsIGp1c3QgaW4gY2FzZSBhbiBpbnN0YWxsZWQgcGx1Z2luIGhhcyBhIHJlZmVyZW5jZSBhbmRcclxuICAgICAgICAgICAgICAgICAgICAvLyBpcyB1c2luZyBpdC5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgaWR4ID0gYXJySW5kZXhPZihhbGxFeHRlbnNpb25zLCBfY2hhbm5lbENvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbEV4dGVuc2lvbnNbX0RZTl9TUExJQ0UgLyogQG1pbjolMmVzcGxpY2UgKi9dKGlkeCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlkeCA9IGFyckluZGV4T2YoX2NvcmVFeHRlbnNpb25zLCBfY2hhbm5lbENvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jb3JlRXh0ZW5zaW9uc1tfRFlOX1NQTElDRSAvKiBAbWluOiUyZXNwbGljZSAqL10oaWR4LCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX2NoYW5uZWxDb250cm9sLl9zZXRRdWV1ZShfY2hhbm5lbFF1ZXVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIF9jaGFubmVsQ29udHJvbCA9IGNyZWF0ZUNoYW5uZWxDb250cm9sbGVyUGx1Z2luKF9jaGFubmVsUXVldWUsIF9zZWxmKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEFkZCBvbiBcImNoYW5uZWxDb250cm9sbGVyXCIgYXMgdGhlIGxhc3QgXCJwbHVnaW5cIlxyXG4gICAgICAgICAgICAgICAgYWxsRXh0ZW5zaW9uc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShfY2hhbm5lbENvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgX2NvcmVFeHRlbnNpb25zW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKF9jaGFubmVsQ29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAvLyBSZXF1aXJlZCB0byBhbGxvdyBwbHVnaW5zIHRvIGNhbGwgY29yZS5nZXRQbHVnaW4oKSBkdXJpbmcgdGhlaXIgb3duIGluaXRpYWxpemF0aW9uXHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19FWFRFTlNJT05TIC8qIEBtaW46JTJlX2V4dGVuc2lvbnMgKi9dID0gc29ydFBsdWdpbnMoYWxsRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBjb250cm9sc1xyXG4gICAgICAgICAgICAgICAgX2NoYW5uZWxDb250cm9sW19EWU5fSU5JVElBTElaRSAvKiBAbWluOiUyZWluaXRpYWxpemUgKi9dKF9jb25maWcsIF9zZWxmLCBhbGxFeHRlbnNpb25zKTtcclxuICAgICAgICAgICAgICAgIGluaXRpYWxpemVQbHVnaW5zKF9jcmVhdGVUZWxDdHgoKSwgYWxsRXh0ZW5zaW9ucyk7XHJcbiAgICAgICAgICAgICAgICAvLyBOb3cgcmVzZXQgdGhlIGV4dGVuc2lvbnMgdG8ganVzdCB0aG9zZSBiZWluZyBtYW5hZ2VkIGJ5IEJhc2Vjb3JlXHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19FWFRFTlNJT05TIC8qIEBtaW46JTJlX2V4dGVuc2lvbnMgKi9dID0gb2JqRnJlZXplKHNvcnRQbHVnaW5zKF9jb3JlRXh0ZW5zaW9ucyB8fCBbXSkpLnNsaWNlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlU3RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfZG9VcGRhdGUodXBkYXRlU3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9nZXRQbHVnaW4ocGx1Z2luSWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRoZUV4dCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlUGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGFyckZvckVhY2goX3NlbGZbX0RZTl9fRVhURU5TSU9OUyAvKiBAbWluOiUyZV9leHRlbnNpb25zICovXSwgZnVuY3Rpb24gKGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChleHRbX0RZTl9JREVOVElGSUVSIC8qIEBtaW46JTJlaWRlbnRpZmllciAqL10gPT09IHBsdWdpbklkZW50aWZpZXIgJiYgZXh0ICE9PSBfY2hhbm5lbENvbnRyb2wgJiYgZXh0ICE9PSBfdGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlUGx1Z2luID0gZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoZVBsdWdpbiAmJiBfY2hhbm5lbENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgY2hhbm5lbCBDb250cm9sbGVyXHJcbiAgICAgICAgICAgICAgICAgICAgdGhlUGx1Z2luID0gX2NoYW5uZWxDb250cm9sLmdldENoYW5uZWwocGx1Z2luSWRlbnRpZmllcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhlUGx1Z2luKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhlRXh0ID0gKF9hID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luOiB0aGVQbHVnaW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2FbX0RZTl9TRVRfRU5BQkxFRCAvKiBAbWluOnNldEVuYWJsZWQgKi9dID0gZnVuY3Rpb24gKGVuYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9nZXRQbHVnaW5TdGF0ZSh0aGVQbHVnaW4pW1NUUl9ESVNBQkxFRF0gPSAhZW5hYmxlZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2EuaXNFbmFibGVkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsdWdpblN0YXRlID0gX2dldFBsdWdpblN0YXRlKHRoZVBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXBsdWdpblN0YXRlW19EWU5fVEVBUkRPV04gLyogQG1pbjolMmV0ZWFyZG93biAqL10gJiYgIXBsdWdpblN0YXRlW1NUUl9ESVNBQkxFRF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLnJlbW92ZSA9IGZ1bmN0aW9uIChpc0FzeW5jLCByZW1vdmVDYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXN5bmMgPT09IHZvaWQgMCkgeyBpc0FzeW5jID0gdHJ1ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsdWdpbnNUb1JlbW92ZSA9IFt0aGVQbHVnaW5dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVubG9hZFN0YXRlID0gKF9hID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb246IDEgLyogVGVsZW1ldHJ5VW5sb2FkUmVhc29uLlBsdWdpblVubG9hZCAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FbX0RZTl9JU19BU1lOQyAvKiBAbWluOmlzQXN5bmMgKi9dID0gaXNBc3luYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlUGx1Z2lucyhwbHVnaW5zVG9SZW1vdmUsIHVubG9hZFN0YXRlLCBmdW5jdGlvbiAocmVtb3ZlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZW1vdmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlLUluaXRpYWxpemUgdGhlIHBsdWdpbiBjaGFpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5pdFBsdWdpbkNoYWluKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogMzIgLyogVGVsZW1ldHJ5VXBkYXRlUmVhc29uLlBsdWdpblJlbW92ZWQgKi8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVkOiBwbHVnaW5zVG9SZW1vdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUNiICYmIHJlbW92ZUNiKHJlbW92ZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVFeHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2dldFBsdWdpbkNoYWluKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfcGx1Z2luQ2hhaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBjb2xsZWN0aW9uIG9mIGV4dGVuc2lvbnNcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXh0ZW5zaW9ucyA9IChfY29yZUV4dGVuc2lvbnMgfHwgW10pLnNsaWNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRHVyaW5nIGFkZCAvIHJlbW92ZSB0aGlzIG1heSBnZXQgY2FsbGVkIGFnYWluLCBzbyBkb24ndCByZWFkZCBpZiBhbHJlYWR5IHByZXNlbnRcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXJySW5kZXhPZihleHRlbnNpb25zLCBfdGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4pID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKF90ZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIF9wbHVnaW5DaGFpbiA9IGNyZWF0ZVRlbGVtZXRyeVByb3h5Q2hhaW4oc29ydFBsdWdpbnMoZXh0ZW5zaW9ucyksIF9jb25maWcsIF9zZWxmKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBfcGx1Z2luQ2hhaW47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3JlbW92ZVBsdWdpbnModGhlUGx1Z2lucywgdW5sb2FkU3RhdGUsIHJlbW92ZUNvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhlUGx1Z2lucyAmJiB0aGVQbHVnaW5zW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdW5sb2FkQ2hhaW4gPSBjcmVhdGVUZWxlbWV0cnlQcm94eUNoYWluKHRoZVBsdWdpbnMsIF9jb25maWcsIF9zZWxmKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdW5sb2FkQ3R4ID0gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeVVubG9hZENvbnRleHQodW5sb2FkQ2hhaW4sIF9zZWxmKTtcclxuICAgICAgICAgICAgICAgICAgICB1bmxvYWRDdHhbX0RZTl9PTl9DT01QTEVURSAvKiBAbWluOiUyZW9uQ29tcGxldGUgKi9dKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbW92ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBsaXN0ZWQgY29uZmlnIGV4dGVuc2lvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0NvbmZpZ0V4dGVuc2lvbnMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfY29uZmlnRXh0ZW5zaW9ucywgZnVuY3Rpb24gKHBsdWdpbiwgaWR4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9pc1BsdWdpblByZXNlbnQocGx1Z2luLCB0aGVQbHVnaW5zKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NvbmZpZ0V4dGVuc2lvbnNbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10ocGx1Z2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2NvbmZpZ0V4dGVuc2lvbnMgPSBuZXdDb25maWdFeHRlbnNpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZS1DcmVhdGUgdGhlIGNoYW5uZWwgY29uZmlnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdDaGFubmVsQ29uZmlnID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfY2hhbm5lbENvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfY2hhbm5lbENvbmZpZywgZnVuY3Rpb24gKHF1ZXVlLCBpZHgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3UXVldWUgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKHF1ZXVlLCBmdW5jdGlvbiAoY2hhbm5lbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9pc1BsdWdpblByZXNlbnQoY2hhbm5lbCwgdGhlUGx1Z2lucykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1F1ZXVlW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKGNoYW5uZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDaGFubmVsQ29uZmlnW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKG5ld1F1ZXVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoYW5uZWxDb25maWcgPSBuZXdDaGFubmVsQ29uZmlnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUNvbXBsZXRlICYmIHJlbW92ZUNvbXBsZXRlKHJlbW92ZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHVubG9hZEN0eFtfRFlOX1BST0NFU1NfTkVYVCAvKiBAbWluOiUyZXByb2Nlc3NOZXh0ICovXSh1bmxvYWRTdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZW1vdmVDb21wbGV0ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2ZsdXNoSW50ZXJuYWxMb2dzKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHF1ZXVlID0gX3NlbGZbX0RZTl9MT0dHRVIgLyogQG1pbjolMmVsb2dnZXIgKi9dID8gX3NlbGZbX0RZTl9MT0dHRVIgLyogQG1pbjolMmVsb2dnZXIgKi9dLnF1ZXVlIDogW107XHJcbiAgICAgICAgICAgICAgICBpZiAocXVldWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKHF1ZXVlLCBmdW5jdGlvbiAobG9nTWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX05BTUUgLyogQG1pbjpuYW1lICovXSA9IF9pbnRlcm5hbExvZ3NFdmVudE5hbWUgPyBfaW50ZXJuYWxMb2dzRXZlbnROYW1lIDogXCJJbnRlcm5hbE1lc3NhZ2VJZDogXCIgKyBsb2dNZXNzYWdlW19EWU5fTUVTU0FHRV9JRCAvKiBAbWluOiUyZW1lc3NhZ2VJZCAqL10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYS5pS2V5ID0gZ2V0Q2ZnVmFsdWUoX2NvbmZpZ1tfRFlOX0lOU1RSVU1FTlRBVElPTl9LRVkgLyogQG1pbjolMmVpbnN0cnVtZW50YXRpb25LZXkgKi9dKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLnRpbWUgPSB0b0lTT1N0cmluZyhuZXcgRGF0ZSgpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLmJhc2VUeXBlID0gX0ludGVybmFsTG9nTWVzc2FnZS5kYXRhVHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLmJhc2VEYXRhID0geyBtZXNzYWdlOiBsb2dNZXNzYWdlW19EWU5fTUVTU0FHRSAvKiBAbWluOiUyZW1lc3NhZ2UgKi9dIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLnRyYWNrKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2ZsdXNoQ2hhbm5lbHMoaXNBc3luYywgY2FsbEJhY2ssIHNlbmRSZWFzb24sIGNiVGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9jaGFubmVsQ29udHJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfY2hhbm5lbENvbnRyb2xbX0RZTl9GTFVTSCAvKiBAbWluOiUyZWZsdXNoICovXShpc0FzeW5jLCBjYWxsQmFjaywgc2VuZFJlYXNvbiB8fCA2IC8qIFNlbmRSZXF1ZXN0UmVhc29uLlNka1VubG9hZCAqLywgY2JUaW1lb3V0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pbml0RGVidWdMaXN0ZW5lcigpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkaXNhYmxlRGJnRXh0ID0gZ2V0Q2ZnVmFsdWUoX2NvbmZpZy5kaXNhYmxlRGJnRXh0KTtcclxuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlRGJnRXh0ID09PSB0cnVlICYmIF9kZWJ1Z0xpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91c2x5IGxvYWRlZCBkZWJ1ZyBsaXN0ZW5lclxyXG4gICAgICAgICAgICAgICAgICAgIF9ub3RpZmljYXRpb25NYW5hZ2VyW19EWU5fUkVNT1ZFX05PVElGSUNBVElPTl8yIC8qIEBtaW46JTJlcmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIgKi9dKF9kZWJ1Z0xpc3RlbmVyKTtcclxuICAgICAgICAgICAgICAgICAgICBfZGVidWdMaXN0ZW5lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoX25vdGlmaWNhdGlvbk1hbmFnZXIgJiYgIV9kZWJ1Z0xpc3RlbmVyICYmIGRpc2FibGVEYmdFeHQgIT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfZGVidWdMaXN0ZW5lciA9IGdldERlYnVnTGlzdGVuZXIoX2NvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgX25vdGlmaWNhdGlvbk1hbmFnZXJbX0RZTl9BRERfTk9USUZJQ0FUSU9OX0xJUzEgLyogQG1pbjolMmVhZGROb3RpZmljYXRpb25MaXN0ZW5lciAqL10oX2RlYnVnTGlzdGVuZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pbml0UGVyZk1hbmFnZXIoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW5hYmxlUGVyZk1nciA9IGdldENmZ1ZhbHVlKF9jb25maWcuZW5hYmxlUGVyZk1ncik7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWVuYWJsZVBlcmZNZ3IgJiYgX2NmZ1BlcmZNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFueSBleGlzdGluZyBjb25maWcgYmFzZWQgcGVyZm9ybWFuY2UgbWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgIF9jZmdQZXJmTWFuYWdlciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZW5hYmxlUGVyZk1ncikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgcGVyZm9ybWFuY2UgbWFuYWdlciBjcmVhdGlvbiBmdW5jdGlvbiBpZiBub3QgZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgIGdldFNldFZhbHVlKF9jb25maWcsIFNUUl9DUkVBVEVfUEVSRl9NR1IsIF9jcmVhdGVQZXJmTWFuYWdlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2luaXRFeHRDb25maWcoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZXh0Q29uZmlnID0gZ2V0U2V0VmFsdWUoX2NvbmZpZywgU1RSX0VYVEVOU0lPTl9DT05GSUcsIHt9KTtcclxuICAgICAgICAgICAgICAgIGV4dENvbmZpZy5Ob3RpZmljYXRpb25NYW5hZ2VyID0gX25vdGlmaWNhdGlvbk1hbmFnZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2RvVXBkYXRlKHVwZGF0ZVN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlQ3R4ID0gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeVVwZGF0ZUNvbnRleHQoX2dldFBsdWdpbkNoYWluKCksIF9zZWxmKTtcclxuICAgICAgICAgICAgICAgIGlmICghX3NlbGYuX3VwZGF0ZUhvb2sgfHwgX3NlbGYuX3VwZGF0ZUhvb2sodXBkYXRlQ3R4LCB1cGRhdGVTdGF0ZSkgIT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDdHhbX0RZTl9QUk9DRVNTX05FWFQgLyogQG1pbjolMmVwcm9jZXNzTmV4dCAqL10odXBkYXRlU3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9sb2dPclRocm93RXJyb3IobWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGxvZ2dlciA9IF9zZWxmW19EWU5fTE9HR0VSIC8qIEBtaW46JTJlbG9nZ2VyICovXTtcclxuICAgICAgICAgICAgICAgIGlmIChsb2dnZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSBzaG91bGQgYWx3YXlzIGJlIGEgbG9nZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNzMgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5QbHVnaW5FeGNlcHRpb24gKi8sIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5pbml0aWFsaXplLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5nZXRUcmFuc21pc3Npb25Db250cm9scy5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUudHJhY2suXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLmdldFByb2Nlc3NUZWxDb250ZXh0LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5nZXROb3RpZnlNZ3IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUuZ2V0Q29va2llTWdyLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5zZXRDb29raWVNZ3IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLmdldFBlcmZNZ3IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLnNldFBlcmZNZ3IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLmV2ZW50Q250LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5wb2xsSW50ZXJuYWxMb2dzLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5zdG9wUG9sbGluZ0ludGVybmFsTG9ncy5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUuYWRkVGVsZW1ldHJ5SW5pdGlhbGl6ZXIuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLnVubG9hZC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUuZ2V0UGx1Z2luLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5hZGRQbHVnaW4uXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLmV2dE5hbWVzcGFjZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUuYWRkVW5sb2FkQ2IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLmZsdXNoLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VDb3JlLnByb3RvdHlwZS5nZXRUcmFjZUN0eC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUuc2V0VHJhY2VDdHguXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZUNvcmUucHJvdG90eXBlLnJlbGVhc2VRdWV1ZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlQ29yZS5wcm90b3R5cGUuX3VwZGF0ZUhvb2suXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBCYXNlQ29yZS5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gQmFzZUNvcmU7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEJhc2VDb3JlIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJhc2VDb3JlLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvcmUsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IF9EWU5fQUREX05PVElGSUNBVElPTl9MSVMxLCBfRFlOX0lTX0FTWU5DLCBfRFlOX0lTX0NISUxEX0VWVCwgX0RZTl9MSVNURU5FUlMsIF9EWU5fUFVTSCwgX0RZTl9SRU1PVkVfTk9USUZJQ0FUSU9OXzIsIF9EWU5fU1BMSUNFIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBhcnJGb3JFYWNoLCBhcnJJbmRleE9mIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0VWRU5UU19ESVNDQVJERUQsIFNUUl9FVkVOVFNfU0VORF9SRVFVRVNULCBTVFJfRVZFTlRTX1NFTlQsIFNUUl9QRVJGX0VWRU5UIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuZnVuY3Rpb24gX3J1bkxpc3RlbmVycyhsaXN0ZW5lcnMsIG5hbWUsIGlzQXN5bmMsIGNhbGxiYWNrKSB7XHJcbiAgICBhcnJGb3JFYWNoKGxpc3RlbmVycywgZnVuY3Rpb24gKGxpc3RlbmVyKSB7XHJcbiAgICAgICAgaWYgKGxpc3RlbmVyICYmIGxpc3RlbmVyW25hbWVdKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0FzeW5jKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNhbGxiYWNrKGxpc3RlbmVyKTsgfSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGxpc3RlbmVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2F0Y2ggZXJyb3JzIHRvIGVuc3VyZSB3ZSBkb24ndCBibG9jayBzZW5kaW5nIHRoZSByZXF1ZXN0c1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuLyoqXHJcbiAqIENsYXNzIHRvIG1hbmFnZSBzZW5kaW5nIG5vdGlmaWNhdGlvbnMgdG8gYWxsIHRoZSBsaXN0ZW5lcnMuXHJcbiAqL1xyXG52YXIgTm90aWZpY2F0aW9uTWFuYWdlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIE5vdGlmaWNhdGlvbk1hbmFnZXIoY29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMgPSBbXTtcclxuICAgICAgICB2YXIgcGVyZkV2dHNTZW5kQWxsID0gISEoY29uZmlnIHx8IHt9KS5wZXJmRXZ0c1NlbmRBbGw7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKE5vdGlmaWNhdGlvbk1hbmFnZXIsIHRoaXMsIGZ1bmN0aW9uIChfc2VsZikge1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0FERF9OT1RJRklDQVRJT05fTElTMSAvKiBAbWluOiUyZWFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyICovXSA9IGZ1bmN0aW9uIChsaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgX3NlbGYubGlzdGVuZXJzW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKGxpc3RlbmVyKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFJlbW92ZXMgYWxsIGluc3RhbmNlcyBvZiB0aGUgbGlzdGVuZXIuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7SU5vdGlmaWNhdGlvbkxpc3RlbmVyfSBsaXN0ZW5lciAtIEFXVE5vdGlmaWNhdGlvbkxpc3RlbmVyIHRvIHJlbW92ZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fUkVNT1ZFX05PVElGSUNBVElPTl8yIC8qIEBtaW46JTJlcmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIgKi9dID0gZnVuY3Rpb24gKGxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBhcnJJbmRleE9mKF9zZWxmW19EWU5fTElTVEVORVJTIC8qIEBtaW46JTJlbGlzdGVuZXJzICovXSwgbGlzdGVuZXIpO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZi5saXN0ZW5lcnNbX0RZTl9TUExJQ0UgLyogQG1pbjolMmVzcGxpY2UgKi9dKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGFyckluZGV4T2YoX3NlbGZbX0RZTl9MSVNURU5FUlMgLyogQG1pbjolMmVsaXN0ZW5lcnMgKi9dLCBsaXN0ZW5lcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBOb3RpZmljYXRpb24gZm9yIGV2ZW50cyBzZW50LlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0ge0lUZWxlbWV0cnlJdGVtW119IGV2ZW50cyAtIFRoZSBhcnJheSBvZiBldmVudHMgdGhhdCBoYXZlIGJlZW4gc2VudC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmW1NUUl9FVkVOVFNfU0VOVCAvKiBAbWluOiUyZWV2ZW50c1NlbnQgKi9dID0gZnVuY3Rpb24gKGV2ZW50cykge1xyXG4gICAgICAgICAgICAgICAgX3J1bkxpc3RlbmVycyhfc2VsZltfRFlOX0xJU1RFTkVSUyAvKiBAbWluOiUyZWxpc3RlbmVycyAqL10sIFNUUl9FVkVOVFNfU0VOVCwgdHJ1ZSwgZnVuY3Rpb24gKGxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJbU1RSX0VWRU5UU19TRU5UIC8qIEBtaW46JTJlZXZlbnRzU2VudCAqL10oZXZlbnRzKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTm90aWZpY2F0aW9uIGZvciBldmVudHMgYmVpbmcgZGlzY2FyZGVkLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0ge0lUZWxlbWV0cnlJdGVtW119IGV2ZW50cyAtIFRoZSBhcnJheSBvZiBldmVudHMgdGhhdCBoYXZlIGJlZW4gZGlzY2FyZGVkIGJ5IHRoZSBTREsuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZWFzb24gICAgICAgICAgIC0gVGhlIHJlYXNvbiBmb3Igd2hpY2ggdGhlIFNESyBkaXNjYXJkZWQgdGhlIGV2ZW50cy4gVGhlIEV2ZW50c0Rpc2NhcmRlZFJlYXNvblxyXG4gICAgICAgICAgICAgKiBjb25zdGFudCBzaG91bGQgYmUgdXNlZCB0byBjaGVjayB0aGUgZGlmZmVyZW50IHZhbHVlcy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmW1NUUl9FVkVOVFNfRElTQ0FSREVEIC8qIEBtaW46JTJlZXZlbnRzRGlzY2FyZGVkICovXSA9IGZ1bmN0aW9uIChldmVudHMsIHJlYXNvbikge1xyXG4gICAgICAgICAgICAgICAgX3J1bkxpc3RlbmVycyhfc2VsZltfRFlOX0xJU1RFTkVSUyAvKiBAbWluOiUyZWxpc3RlbmVycyAqL10sIFNUUl9FVkVOVFNfRElTQ0FSREVELCB0cnVlLCBmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcltTVFJfRVZFTlRTX0RJU0NBUkRFRCAvKiBAbWluOiUyZWV2ZW50c0Rpc2NhcmRlZCAqL10oZXZlbnRzLCByZWFzb24pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBbT3B0aW9uYWxdIEEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGV2ZW50cyBoYXZlIGJlZW4gcmVxdWVzdGVkIHRvIGJlIHNlbnQgdG8gdGhlIHNldmVyLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gc2VuZFJlYXNvbiAtIFRoZSByZWFzb24gd2h5IHRoZSBldmVudCBiYXRjaCBpcyBiZWluZyBzZW50LlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzQXN5bmMgICAtIEEgZmxhZyB3aGljaCBpZGVudGlmaWVzIHdoZXRoZXIgdGhlIHJlcXVlc3RzIGFyZSBiZWluZyBzZW50IGluIGFuIGFzeW5jIG9yIHN5bmMgbWFubmVyLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbU1RSX0VWRU5UU19TRU5EX1JFUVVFU1QgLyogQG1pbjolMmVldmVudHNTZW5kUmVxdWVzdCAqL10gPSBmdW5jdGlvbiAoc2VuZFJlYXNvbiwgaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgX3J1bkxpc3RlbmVycyhfc2VsZltfRFlOX0xJU1RFTkVSUyAvKiBAbWluOiUyZWxpc3RlbmVycyAqL10sIFNUUl9FVkVOVFNfU0VORF9SRVFVRVNULCBpc0FzeW5jLCBmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcltTVFJfRVZFTlRTX1NFTkRfUkVRVUVTVCAvKiBAbWluOiUyZWV2ZW50c1NlbmRSZXF1ZXN0ICovXShzZW5kUmVhc29uLCBpc0FzeW5jKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltTVFJfUEVSRl9FVkVOVCAvKiBAbWluOiUyZXBlcmZFdmVudCAqL10gPSBmdW5jdGlvbiAocGVyZkV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGVyZkV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VuZCBhbGwgZXZlbnRzIG9yIG9ubHkgcGFyZW50IGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwZXJmRXZ0c1NlbmRBbGwgfHwgIXBlcmZFdmVudFtfRFlOX0lTX0NISUxEX0VWVCAvKiBAbWluOiUyZWlzQ2hpbGRFdnQgKi9dKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3J1bkxpc3RlbmVycyhfc2VsZltfRFlOX0xJU1RFTkVSUyAvKiBAbWluOiUyZWxpc3RlbmVycyAqL10sIFNUUl9QRVJGX0VWRU5ULCBmYWxzZSwgZnVuY3Rpb24gKGxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVyZkV2ZW50W19EWU5fSVNfQVNZTkMgLyogQG1pbjolMmVpc0FzeW5jICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gbGlzdGVuZXJbU1RSX1BFUkZfRVZFTlQgLyogQG1pbjolMmVwZXJmRXZlbnQgKi9dKHBlcmZFdmVudCk7IH0sIDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJbU1RSX1BFUkZfRVZFTlQgLyogQG1pbjolMmVwZXJmRXZlbnQgKi9dKHBlcmZFdmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBOb3RpZmljYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5hZGROb3RpZmljYXRpb25MaXN0ZW5lci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBOb3RpZmljYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBOb3RpZmljYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5ldmVudHNTZW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIE5vdGlmaWNhdGlvbk1hbmFnZXIucHJvdG90eXBlLmV2ZW50c0Rpc2NhcmRlZC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBOb3RpZmljYXRpb25NYW5hZ2VyLnByb3RvdHlwZS5ldmVudHNTZW5kUmVxdWVzdC5cclxuICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhbiBJRTggYnVnIHdoZW4gdXNpbmcgZHluYW1pY1Byb3RvKCkgd2l0aCBjbGFzc2VzIHRoYXQgZG9uJ3QgaGF2ZSBhbnlcbiAgICAvLyBub24tZHluYW1pYyBmdW5jdGlvbnMgb3Igc3RhdGljIHByb3BlcnRpZXMvZnVuY3Rpb25zIHdoZW4gdXNpbmcgdWdsaWZ5LWpzIHRvIG1pbmlmeSB0aGUgcmVzdWx0aW5nIGNvZGUuXG4gICAgLy8gdGhpcyB3aWxsIGJlIHJlbW92ZWQgd2hlbiBFUzMgc3VwcG9ydCBpcyBkcm9wcGVkLlxuICAgIE5vdGlmaWNhdGlvbk1hbmFnZXIuX19pZUR5bj0xO1xuXG4gICAgcmV0dXJuIE5vdGlmaWNhdGlvbk1hbmFnZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbk1hbmFnZXIgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Tm90aWZpY2F0aW9uTWFuYWdlci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHsgX19leHRlbmRzRm4gYXMgX19leHRlbmRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5cclxuXHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IF9EWU5fR0VUX05PVElGWV9NR1IsIF9EWU5fSU5JVElBTElaRSwgX0RZTl9OQU1FIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBCYXNlQ29yZSB9IGZyb20gXCIuL0Jhc2VDb3JlXCI7XHJcbmltcG9ydCB7IERpYWdub3N0aWNMb2dnZXIgfSBmcm9tIFwiLi9EaWFnbm9zdGljTG9nZ2VyXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkLCB0aHJvd0Vycm9yIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgU1RSX0VWRU5UU19ESVNDQVJERUQsIFNUUl9HRVRfUEVSRl9NR1IgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NYW5hZ2VyIH0gZnJvbSBcIi4vTm90aWZpY2F0aW9uTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBkb1BlcmYgfSBmcm9tIFwiLi9QZXJmTWFuYWdlclwiO1xyXG52YXIgQXBwSW5zaWdodHNDb3JlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgX19leHRlbmRzKEFwcEluc2lnaHRzQ29yZSwgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIEFwcEluc2lnaHRzQ29yZSgpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xyXG4gICAgICAgIGR5bmFtaWNQcm90byhBcHBJbnNpZ2h0c0NvcmUsIF90aGlzLCBmdW5jdGlvbiAoX3NlbGYsIF9iYXNlKSB7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fSU5JVElBTElaRSAvKiBAbWluOiUyZWluaXRpYWxpemUgKi9dID0gZnVuY3Rpb24gKGNvbmZpZywgZXh0ZW5zaW9ucywgbG9nZ2VyLCBub3RpZmljYXRpb25NYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICBfYmFzZVtfRFlOX0lOSVRJQUxJWkUgLyogQG1pbjolMmVpbml0aWFsaXplICovXShjb25maWcsIGV4dGVuc2lvbnMsIGxvZ2dlciB8fCBuZXcgRGlhZ25vc3RpY0xvZ2dlcihjb25maWcpLCBub3RpZmljYXRpb25NYW5hZ2VyIHx8IG5ldyBOb3RpZmljYXRpb25NYW5hZ2VyKGNvbmZpZykpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi50cmFjayA9IGZ1bmN0aW9uICh0ZWxlbWV0cnlJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICBkb1BlcmYoX3NlbGZbU1RSX0dFVF9QRVJGX01HUiAvKiBAbWluOiUyZWdldFBlcmZNZ3IgKi9dKCksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIFwiQXBwSW5zaWdodHNDb3JlOnRyYWNrXCI7IH0sIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGVsZW1ldHJ5SXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfbm90aWZ5SW52YWxpZEV2ZW50KHRlbGVtZXRyeUl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBlcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKFwiSW52YWxpZCB0ZWxlbWV0cnkgaXRlbVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZG8gYmFzaWMgdmFsaWRhdGlvbiBiZWZvcmUgc2VuZGluZyBpdCB0aHJvdWdoIHRoZSBwaXBlbGluZVxyXG4gICAgICAgICAgICAgICAgICAgIF92YWxpZGF0ZVRlbGVtZXRyeUl0ZW0odGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2Jhc2UudHJhY2sodGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoKSB7IHJldHVybiAoeyBpdGVtOiB0ZWxlbWV0cnlJdGVtIH0pOyB9LCAhKHRlbGVtZXRyeUl0ZW0uc3luYykpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfdmFsaWRhdGVUZWxlbWV0cnlJdGVtKHRlbGVtZXRyeUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0ZWxlbWV0cnlJdGVtW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9ub3RpZnlJbnZhbGlkRXZlbnQodGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihcInRlbGVtZXRyeSBuYW1lIHJlcXVpcmVkXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9ub3RpZnlJbnZhbGlkRXZlbnQodGVsZW1ldHJ5SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG1hbmFnZXIgPSBfc2VsZltfRFlOX0dFVF9OT1RJRllfTUdSIC8qIEBtaW46JTJlZ2V0Tm90aWZ5TWdyICovXSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1hbmFnZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyW1NUUl9FVkVOVFNfRElTQ0FSREVEIC8qIEBtaW46JTJlZXZlbnRzRGlzY2FyZGVkICovXShbdGVsZW1ldHJ5SXRlbV0sIDIgLyogZUV2ZW50c0Rpc2NhcmRlZFJlYXNvbi5JbnZhbGlkRXZlbnQgKi8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFwcEluc2lnaHRzQ29yZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBBcHBJbnNpZ2h0c0NvcmUucHJvdG90eXBlLnRyYWNrLlxyXG4gICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGFuIElFOCBidWcgd2hlbiB1c2luZyBkeW5hbWljUHJvdG8oKSB3aXRoIGNsYXNzZXMgdGhhdCBkb24ndCBoYXZlIGFueVxuICAgIC8vIG5vbi1keW5hbWljIGZ1bmN0aW9ucyBvciBzdGF0aWMgcHJvcGVydGllcy9mdW5jdGlvbnMgd2hlbiB1c2luZyB1Z2xpZnktanMgdG8gbWluaWZ5IHRoZSByZXN1bHRpbmcgY29kZS5cbiAgICAvLyB0aGlzIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIEVTMyBzdXBwb3J0IGlzIGRyb3BwZWQuXG4gICAgQXBwSW5zaWdodHNDb3JlLl9faWVEeW49MTtcblxuICAgIHJldHVybiBBcHBJbnNpZ2h0c0NvcmU7XHJcbn0oQmFzZUNvcmUpKTtcclxuZXhwb3J0IHsgQXBwSW5zaWdodHNDb3JlIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwcEluc2lnaHRzQ29yZS5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb3JlLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBzdHJTaGltRnVuY3Rpb24sIHN0clNoaW1Qcm90b3R5cGUgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXNoaW1zXCI7XHJcbmltcG9ydCB7IF9EWU5fQVBQTFksIF9EWU5fTEVOR1RILCBfRFlOX05BTUUsIF9EWU5fUFVTSCwgX0RZTl9TUExJQ0UgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGdldEdsb2JhbEluc3QgfSBmcm9tIFwiLi9FbnZVdGlsc1wiO1xyXG5pbXBvcnQgeyBfZ2V0T2JqUHJvdG8sIGhhc093blByb3BlcnR5IH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxudmFyIGFpSW5zdHJ1bWVudEhvb2tzID0gXCJfYWlIb29rc1wiO1xyXG52YXIgY2JOYW1lcyA9IFtcclxuICAgIFwicmVxXCIsIFwicnNwXCIsIFwiaGtFcnJcIiwgXCJmbkVyclwiXHJcbl07XHJcbi8qKiBAaWdub3JlICovXHJcbmZ1bmN0aW9uIF9hcnJMb29wKGFyciwgZm4pIHtcclxuICAgIGlmIChhcnIpIHtcclxuICAgICAgICBmb3IgKHZhciBscCA9IDA7IGxwIDwgYXJyW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTsgbHArKykge1xyXG4gICAgICAgICAgICBpZiAoZm4oYXJyW2xwXSwgbHApKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vKiogQGlnbm9yZSAqL1xyXG5mdW5jdGlvbiBfZG9DYWxsYmFja3MoaG9va3MsIGNhbGxEZXRhaWxzLCBjYkFyZ3MsIGhvb2tDdHgsIHR5cGUpIHtcclxuICAgIGlmICh0eXBlID49IDAgLyogQ2FsbGJhY2tUeXBlLlJlcXVlc3QgKi8gJiYgdHlwZSA8PSAyIC8qIENhbGxiYWNrVHlwZS5Ib29rRXJyb3IgKi8pIHtcclxuICAgICAgICBfYXJyTG9vcChob29rcywgZnVuY3Rpb24gKGhvb2ssIGlkeCkge1xyXG4gICAgICAgICAgICB2YXIgY2JrcyA9IGhvb2suY2JrcztcclxuICAgICAgICAgICAgdmFyIGNiID0gY2Jrc1tjYk5hbWVzW3R5cGVdXTtcclxuICAgICAgICAgICAgaWYgKGNiKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHNwZWNpZmljIGhvb2sgY29udGV4dCBpbXBsZW1lbnRhdGlvbiB1c2luZyBhIGxhenkgY3JlYXRpb24gcGF0dGVyblxyXG4gICAgICAgICAgICAgICAgY2FsbERldGFpbHMuY3R4ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjdHggPSBob29rQ3R4W2lkeF0gPSAoaG9va0N0eFtpZHhdIHx8IHt9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3R4O1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2JbX0RZTl9BUFBMWSAvKiBAbWluOiUyZWFwcGx5ICovXShjYWxsRGV0YWlscy5pbnN0LCBjYkFyZ3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBvcmdFeCA9IGNhbGxEZXRhaWxzLmVycjtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXBvcnQgSG9vayBlcnJvciB2aWEgdGhlIGNhbGxiYWNrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBob29rRXJyb3JDYiA9IGNia3NbY2JOYW1lc1syIC8qIENhbGxiYWNrVHlwZS5Ib29rRXJyb3IgKi9dXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhvb2tFcnJvckNiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsRGV0YWlscy5lcnIgPSBlcnI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob29rRXJyb3JDYltfRFlOX0FQUExZIC8qIEBtaW46JTJlYXBwbHkgKi9dKGNhbGxEZXRhaWxzLmluc3QsIGNiQXJncyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90IG11Y2ggd2UgY2FuIGRvIGhlcmUgLS0gc3dhbGxvd2luZyB0aGUgZXhjZXB0aW9uIHRvIGF2b2lkIGNyYXNoaW5nIHRoZSBob3N0aW5nIGFwcFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgZXhjZXB0aW9uIChpZiBhbnkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxEZXRhaWxzLmVyciA9IG9yZ0V4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbi8qKiBAaWdub3JlICovXHJcbmZ1bmN0aW9uIF9jcmVhdGVGdW5jdGlvbkhvb2soYWlIb29rKSB7XHJcbiAgICAvLyBEZWZpbmUgYSB0ZW1wb3JhcnkgbWV0aG9kIHRoYXQgcXVldWVzLXVwIGEgdGhlIHJlYWwgbWV0aG9kIGNhbGxcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIHZhciBmdW5jVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgLy8gQ2FwdHVyZSB0aGUgb3JpZ2luYWwgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgbWV0aG9kXHJcbiAgICAgICAgdmFyIG9yZ0FyZ3MgPSBhcmd1bWVudHM7XHJcbiAgICAgICAgdmFyIGhvb2tzID0gYWlIb29rLmg7XHJcbiAgICAgICAgdmFyIGZ1bmNBcmdzID0gKF9hID0ge30sXHJcbiAgICAgICAgICAgIF9hW19EWU5fTkFNRSAvKiBAbWluOm5hbWUgKi9dID0gYWlIb29rLm4sXHJcbiAgICAgICAgICAgIF9hLmluc3QgPSBmdW5jVGhpcyxcclxuICAgICAgICAgICAgX2EuY3R4ID0gbnVsbCxcclxuICAgICAgICAgICAgX2Euc2V0ID0gX3JlcGxhY2VBcmcsXHJcbiAgICAgICAgICAgIF9hKTtcclxuICAgICAgICB2YXIgaG9va0N0eCA9IFtdO1xyXG4gICAgICAgIHZhciBjYkFyZ3MgPSBfY3JlYXRlQXJncyhbZnVuY0FyZ3NdLCBvcmdBcmdzKTtcclxuICAgICAgICBmdW5jQXJncy5ldnQgPSBnZXRHbG9iYWxJbnN0KFwiZXZlbnRcIik7XHJcbiAgICAgICAgZnVuY3Rpb24gX2NyZWF0ZUFyZ3ModGFyZ2V0LCB0aGVBcmdzKSB7XHJcbiAgICAgICAgICAgIF9hcnJMb29wKHRoZUFyZ3MsIGZ1bmN0aW9uIChhcmcpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldFtfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShhcmcpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZnVuY3Rpb24gX3JlcGxhY2VBcmcoaWR4LCB2YWx1ZSkge1xyXG4gICAgICAgICAgICBvcmdBcmdzID0gX2NyZWF0ZUFyZ3MoW10sIG9yZ0FyZ3MpO1xyXG4gICAgICAgICAgICBvcmdBcmdzW2lkeF0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgY2JBcmdzID0gX2NyZWF0ZUFyZ3MoW2Z1bmNBcmdzXSwgb3JnQXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIENhbGwgdGhlIHByZS1yZXF1ZXN0IGhvb2tzXHJcbiAgICAgICAgX2RvQ2FsbGJhY2tzKGhvb2tzLCBmdW5jQXJncywgY2JBcmdzLCBob29rQ3R4LCAwIC8qIENhbGxiYWNrVHlwZS5SZXF1ZXN0ICovKTtcclxuICAgICAgICAvLyBDYWxsIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiB3YXMgY2FsbGVkXHJcbiAgICAgICAgdmFyIHRoZUZ1bmMgPSBhaUhvb2suZjtcclxuICAgICAgICBpZiAodGhlRnVuYykge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgZnVuY0FyZ3MucnNsdCA9IHRoZUZ1bmNbX0RZTl9BUFBMWSAvKiBAbWluOiUyZWFwcGx5ICovXShmdW5jVGhpcywgb3JnQXJncyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVwb3J0IHRoZSByZXF1ZXN0IGNhbGxiYWNrXHJcbiAgICAgICAgICAgICAgICBmdW5jQXJncy5lcnIgPSBlcnI7XHJcbiAgICAgICAgICAgICAgICBfZG9DYWxsYmFja3MoaG9va3MsIGZ1bmNBcmdzLCBjYkFyZ3MsIGhvb2tDdHgsIDMgLyogQ2FsbGJhY2tUeXBlLkZ1bmN0aW9uRXJyb3IgKi8pO1xyXG4gICAgICAgICAgICAgICAgLy8gcmV0aHJvdyB0aGUgb3JpZ2luYWwgZXhjZXB0aW9uIHNvIGFueW9uZSBsaXN0ZW5pbmcgZm9yIGl0IGNhbiBjYXRjaCB0aGUgZXhjZXB0aW9uXHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ2FsbCB0aGUgcG9zdC1yZXF1ZXN0IGhvb2tzXHJcbiAgICAgICAgX2RvQ2FsbGJhY2tzKGhvb2tzLCBmdW5jQXJncywgY2JBcmdzLCBob29rQ3R4LCAxIC8qIENhbGxiYWNrVHlwZS5SZXNwb25zZSAqLyk7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmNBcmdzLnJzbHQ7XHJcbiAgICB9O1xyXG59XHJcbi8qKiBAaWdub3JlICovXHJcbmZ1bmN0aW9uIF9nZXRPd25lcih0YXJnZXQsIG5hbWUsIGNoZWNrUHJvdG90eXBlKSB7XHJcbiAgICB2YXIgb3duZXIgPSBudWxsO1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eSh0YXJnZXQsIG5hbWUpKSB7XHJcbiAgICAgICAgICAgIG93bmVyID0gdGFyZ2V0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjaGVja1Byb3RvdHlwZSkge1xyXG4gICAgICAgICAgICBvd25lciA9IF9nZXRPd25lcihfZ2V0T2JqUHJvdG8odGFyZ2V0KSwgbmFtZSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvd25lcjtcclxufVxyXG4vKipcclxuICogSW50ZXJjZXB0IHRoZSBuYW1lZCBwcm90b3R5cGUgZnVuY3Rpb25zIGZvciB0aGUgdGFyZ2V0IGNsYXNzIC8gb2JqZWN0XHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdFxyXG4gKiBAcGFyYW0gZnVuY05hbWUgLSBUaGUgZnVuY3Rpb24gbmFtZVxyXG4gKiBAcGFyYW0gY2FsbGJhY2tzIC0gVGhlIGNhbGxiYWNrcyB0byBjb25maWd1cmUgYW5kIGNhbGwgd2hlbmV2ZXIgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEluc3RydW1lbnRQcm90byh0YXJnZXQsIGZ1bmNOYW1lLCBjYWxsYmFja3MpIHtcclxuICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICByZXR1cm4gSW5zdHJ1bWVudEZ1bmModGFyZ2V0W3N0clNoaW1Qcm90b3R5cGVdLCBmdW5jTmFtZSwgY2FsbGJhY2tzLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4vKipcclxuICogSW50ZXJjZXB0IHRoZSBuYW1lZCBwcm90b3R5cGUgZnVuY3Rpb25zIGZvciB0aGUgdGFyZ2V0IGNsYXNzIC8gb2JqZWN0XHJcbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdFxyXG4gKiBAcGFyYW0gZnVuY05hbWVzIC0gVGhlIGZ1bmN0aW9uIG5hbWVzIHRvIGludGVyY2VwdCBhbmQgY2FsbFxyXG4gKiBAcGFyYW0gY2FsbGJhY2tzIC0gVGhlIGNhbGxiYWNrcyB0byBjb25maWd1cmUgYW5kIGNhbGwgd2hlbmV2ZXIgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEluc3RydW1lbnRQcm90b3ModGFyZ2V0LCBmdW5jTmFtZXMsIGNhbGxiYWNrcykge1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgIHJldHVybiBJbnN0cnVtZW50RnVuY3ModGFyZ2V0W3N0clNoaW1Qcm90b3R5cGVdLCBmdW5jTmFtZXMsIGNhbGxiYWNrcywgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuZnVuY3Rpb24gX2NyZWF0ZUluc3RydW1lbnRIb29rKG93bmVyLCBmdW5jTmFtZSwgZm4sIGNhbGxiYWNrcykge1xyXG4gICAgdmFyIGFpSG9vayA9IGZuICYmIGZuW2FpSW5zdHJ1bWVudEhvb2tzXTtcclxuICAgIGlmICghYWlIb29rKSB7XHJcbiAgICAgICAgLy8gT25seSBob29rIHRoZSBmdW5jdGlvbiBvbmNlXHJcbiAgICAgICAgYWlIb29rID0ge1xyXG4gICAgICAgICAgICBpOiAwLFxyXG4gICAgICAgICAgICBuOiBmdW5jTmFtZSxcclxuICAgICAgICAgICAgZjogZm4sXHJcbiAgICAgICAgICAgIGg6IFtdXHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyBPdmVycmlkZSAoaG9vaykgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uXHJcbiAgICAgICAgdmFyIG5ld0Z1bmMgPSBfY3JlYXRlRnVuY3Rpb25Ib29rKGFpSG9vayk7XHJcbiAgICAgICAgbmV3RnVuY1thaUluc3RydW1lbnRIb29rc10gPSBhaUhvb2s7IC8vIFRhZyBhbmQgc3RvcmUgdGhlIGZ1bmN0aW9uIGhvb2tzXHJcbiAgICAgICAgb3duZXJbZnVuY05hbWVdID0gbmV3RnVuYztcclxuICAgIH1cclxuICAgIHZhciB0aGVIb29rID0ge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlOm9iamVjdC1saXRlcmFsLXNob3J0aGFuZFxyXG4gICAgICAgIGlkOiBhaUhvb2suaSxcclxuICAgICAgICBjYmtzOiBjYWxsYmFja3MsXHJcbiAgICAgICAgcm06IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgLy8gRE8gTk9UIFVzZSAoKSA9PiB7IHNob3J0aGFuZCBmb3IgdGhlIGZ1bmN0aW9uIGFzIHRoZSB0aGlzIGdldHMgcmVwbGFjZWRcclxuICAgICAgICAgICAgLy8gd2l0aCB0aGUgb3V0ZXIgdGhpcyBhbmQgbm90IHRoZSB0aGlzIGZvciB0aGVIb29rIGluc3RhbmNlLlxyXG4gICAgICAgICAgICB2YXIgaWQgPSB0aGlzLmlkO1xyXG4gICAgICAgICAgICBfYXJyTG9vcChhaUhvb2suaCwgZnVuY3Rpb24gKGhvb2ssIGlkeCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhvb2suaWQgPT09IGlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWlIb29rLmhbX0RZTl9TUExJQ0UgLyogQG1pbjolMmVzcGxpY2UgKi9dKGlkeCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0c2xpbnQ6ZW5hYmxlOm9iamVjdC1saXRlcmFsLXNob3J0aGFuZFxyXG4gICAgfTtcclxuICAgIGFpSG9vay5pKys7XHJcbiAgICBhaUhvb2suaFtfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXSh0aGVIb29rKTtcclxuICAgIHJldHVybiB0aGVIb29rO1xyXG59XHJcbi8qKlxyXG4gKiBJbnRlcmNlcHQgdGhlIG5hbWVkIHByb3RvdHlwZSBmdW5jdGlvbnMgZm9yIHRoZSB0YXJnZXQgY2xhc3MgLyBvYmplY3RcclxuICogQHBhcmFtIHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBmdW5jTmFtZSAtIFRoZSBmdW5jdGlvbiBuYW1lXHJcbiAqIEBwYXJhbSBjYWxsYmFja3MgLSBUaGUgY2FsbGJhY2tzIHRvIGNvbmZpZ3VyZSBhbmQgY2FsbCB3aGVuZXZlciB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkXHJcbiAqIEBwYXJhbSBjaGVja1Byb3RvdHlwZSAtIElmIHRoZSBmdW5jdGlvbiBkb2Vzbid0IGV4aXN0IG9uIHRoZSB0YXJnZXQgc2hvdWxkIGl0IGF0dGVtcHQgdG8gaG9vayB0aGUgcHJvdG90eXBlIGZ1bmN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gSW5zdHJ1bWVudEZ1bmModGFyZ2V0LCBmdW5jTmFtZSwgY2FsbGJhY2tzLCBjaGVja1Byb3RvdHlwZSkge1xyXG4gICAgaWYgKGNoZWNrUHJvdG90eXBlID09PSB2b2lkIDApIHsgY2hlY2tQcm90b3R5cGUgPSB0cnVlOyB9XHJcbiAgICBpZiAodGFyZ2V0ICYmIGZ1bmNOYW1lICYmIGNhbGxiYWNrcykge1xyXG4gICAgICAgIHZhciBvd25lciA9IF9nZXRPd25lcih0YXJnZXQsIGZ1bmNOYW1lLCBjaGVja1Byb3RvdHlwZSk7XHJcbiAgICAgICAgaWYgKG93bmVyKSB7XHJcbiAgICAgICAgICAgIHZhciBmbiA9IG93bmVyW2Z1bmNOYW1lXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gc3RyU2hpbUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NyZWF0ZUluc3RydW1lbnRIb29rKG93bmVyLCBmdW5jTmFtZSwgZm4sIGNhbGxiYWNrcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4vKipcclxuICogSW50ZXJjZXB0IHRoZSBuYW1lZCBmdW5jdGlvbnMgZm9yIHRoZSB0YXJnZXQgY2xhc3MgLyBvYmplY3RcclxuICogQHBhcmFtIHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBmdW5jTmFtZXMgLSBUaGUgZnVuY3Rpb24gbmFtZXMgdG8gaW50ZXJjZXB0IGFuZCBjYWxsXHJcbiAqIEBwYXJhbSBjYWxsYmFja3MgLSBUaGUgY2FsbGJhY2tzIHRvIGNvbmZpZ3VyZSBhbmQgY2FsbCB3aGVuZXZlciB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkXHJcbiAqIEBwYXJhbSBjaGVja1Byb3RvdHlwZSAtIElmIHRoZSBmdW5jdGlvbiBkb2Vzbid0IGV4aXN0IG9uIHRoZSB0YXJnZXQgc2hvdWxkIGl0IGF0dGVtcHQgdG8gaG9vayB0aGUgcHJvdG90eXBlIGZ1bmN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gSW5zdHJ1bWVudEZ1bmNzKHRhcmdldCwgZnVuY05hbWVzLCBjYWxsYmFja3MsIGNoZWNrUHJvdG90eXBlKSB7XHJcbiAgICBpZiAoY2hlY2tQcm90b3R5cGUgPT09IHZvaWQgMCkgeyBjaGVja1Byb3RvdHlwZSA9IHRydWU7IH1cclxuICAgIHZhciBob29rcyA9IG51bGw7XHJcbiAgICBfYXJyTG9vcChmdW5jTmFtZXMsIGZ1bmN0aW9uIChmdW5jTmFtZSkge1xyXG4gICAgICAgIHZhciBob29rID0gSW5zdHJ1bWVudEZ1bmModGFyZ2V0LCBmdW5jTmFtZSwgY2FsbGJhY2tzLCBjaGVja1Byb3RvdHlwZSk7XHJcbiAgICAgICAgaWYgKGhvb2spIHtcclxuICAgICAgICAgICAgaWYgKCFob29rcykge1xyXG4gICAgICAgICAgICAgICAgaG9va3MgPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBob29rc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShob29rKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBob29rcztcclxufVxyXG4vKipcclxuICogQWRkIGFuIGluc3RydW1lbnRhdGlvbiBob29rIHRvIHRoZSBwcm92aWRlZCBuYW1lZCBcImV2ZW50XCIgZm9yIHRoZSB0YXJnZXQgY2xhc3MgLyBvYmplY3QsIHRoaXMgZG9lc24ndCBjaGVjayB3aGV0aGVyIHRoZVxyXG4gKiBuYW1lZCBcImV2ZW50XCIgaXMgaW4gZmFjdCBhIGZ1bmN0aW9uIGFuZCBqdXN0IGFzc2lnbnMgdGhlIGluc3RydW1lbnRhdGlvbiBob29rIHRvIHRoZSB0YXJnZXRbZXZ0TmFtZV1cclxuICogQHBhcmFtIHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBldnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50XHJcbiAqIEBwYXJhbSBjYWxsYmFja3MgLSBUaGUgY2FsbGJhY2tzIHRvIGNvbmZpZ3VyZSBhbmQgY2FsbCB3aGVuZXZlciB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkXHJcbiAqIEBwYXJhbSBjaGVja1Byb3RvdHlwZSAtIElmIHRoZSBmdW5jdGlvbiBkb2Vzbid0IGV4aXN0IG9uIHRoZSB0YXJnZXQgc2hvdWxkIGl0IGF0dGVtcHQgdG8gaG9vayB0aGUgcHJvdG90eXBlIGZ1bmN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gSW5zdHJ1bWVudEV2ZW50KHRhcmdldCwgZXZ0TmFtZSwgY2FsbGJhY2tzLCBjaGVja1Byb3RvdHlwZSkge1xyXG4gICAgaWYgKHRhcmdldCAmJiBldnROYW1lICYmIGNhbGxiYWNrcykge1xyXG4gICAgICAgIHZhciBvd25lciA9IF9nZXRPd25lcih0YXJnZXQsIGV2dE5hbWUsIGNoZWNrUHJvdG90eXBlKSB8fCB0YXJnZXQ7XHJcbiAgICAgICAgaWYgKG93bmVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBfY3JlYXRlSW5zdHJ1bWVudEhvb2sob3duZXIsIGV2dE5hbWUsIG93bmVyW2V2dE5hbWVdLCBjYWxsYmFja3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUluc3RydW1lbnRIb29rcy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGlzIGFuIGludGVybmFsIHByb3BlcnR5IHVzZWQgdG8gY2F1c2UgaW50ZXJuYWwgKHJlcG9ydGluZykgcmVxdWVzdHMgdG8gYmUgaWdub3JlZCBmcm9tIHJlcG9ydGluZ1xyXG4gKiBhZGRpdGlvbmFsIHRlbGVtZXRyeSwgdG8gaGFuZGxlIHBvbHlmaWwgaW1wbGVtZW50YXRpb25zIEFMTCB1cmxzIHVzZWQgd2l0aCBhIGRpc2FibGVkIHJlcXVlc3Qgd2lsbFxyXG4gKiBhbHNvIGJlIGlnbm9yZWQgZm9yIGZ1dHVyZSByZXF1ZXN0cyBldmVuIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBub3QgcHJvdmlkZWQuXHJcbiAqIFRhZ2dpbmcgYXMgSWdub3JlIGFzIHRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUgYW5kIGlzIG5vdCBleHBlY3RlZCB0byBiZSB1c2VkIG91dHNpZGUgb2YgdGhlIFNES1xyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgdmFyIERpc2FibGVkUHJvcGVydHlOYW1lID0gXCJNaWNyb3NvZnRfQXBwbGljYXRpb25JbnNpZ2h0c19CeXBhc3NBamF4SW5zdHJ1bWVudGF0aW9uXCI7XHJcbmV4cG9ydCB2YXIgU2FtcGxlUmF0ZSA9IFwic2FtcGxlUmF0ZVwiO1xyXG5leHBvcnQgdmFyIFByb2Nlc3NMZWdhY3kgPSBcIlByb2Nlc3NMZWdhY3lcIjtcclxuZXhwb3J0IHZhciBIdHRwTWV0aG9kID0gXCJodHRwLm1ldGhvZFwiO1xyXG5leHBvcnQgdmFyIERFRkFVTFRfQlJFRVpFX0VORFBPSU5UID0gXCJodHRwczovL2RjLnNlcnZpY2VzLnZpc3VhbHN0dWRpby5jb21cIjtcclxuZXhwb3J0IHZhciBERUZBVUxUX0JSRUVaRV9QQVRIID0gXCIvdjIvdHJhY2tcIjtcclxuZXhwb3J0IHZhciBzdHJOb3RTcGVjaWZpZWQgPSBcIm5vdF9zcGVjaWZpZWRcIjtcclxuZXhwb3J0IHZhciBzdHJJa2V5ID0gXCJpS2V5XCI7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbnN0YW50cy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGdldERvY3VtZW50IH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb21FdmVudChldmVudE5hbWUpIHtcclxuICAgIHZhciBldmVudCA9IG51bGw7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihFdmVudCkpIHsgLy8gVXNlIEV2ZW50IGNvbnN0cnVjdG9yIHdoZW4gYXZhaWxhYmxlXHJcbiAgICAgICAgZXZlbnQgPSBuZXcgRXZlbnQoZXZlbnROYW1lKTtcclxuICAgIH1cclxuICAgIGVsc2UgeyAvLyBFdmVudCBoYXMgbm8gY29uc3RydWN0b3IgaW4gSUVcclxuICAgICAgICB2YXIgZG9jID0gZ2V0RG9jdW1lbnQoKTtcclxuICAgICAgICBpZiAoZG9jICYmIGRvYy5jcmVhdGVFdmVudCkge1xyXG4gICAgICAgICAgICBldmVudCA9IGRvYy5jcmVhdGVFdmVudChcIkV2ZW50XCIpO1xyXG4gICAgICAgICAgICBldmVudC5pbml0RXZlbnQoZXZlbnROYW1lLCB0cnVlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXZlbnQ7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RG9tSGVscGVyRnVuY3MuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG4vLyBAc2tpcC1maWxlLW1pbmlmeVxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyBBVVRPIEdFTkVSQVRFRCBGSUxFOiBUaGlzIGZpbGUgaXMgQXV0byBHZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkLlxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG4vLyBOb3RlOiBET04nVCBFeHBvcnQgdGhlc2UgY29uc3QgZnJvbSB0aGUgcGFja2FnZSBhcyB3ZSBhcmUgc3RpbGwgdGFyZ2V0aW5nIEVTMyB0aGlzIHdpbGwgZXhwb3J0IGEgbXV0YWJsZSB2YXJpYWJsZXMgdGhhdCBzb21lb25lIGNvdWxkIGNoYW5nZSEhIVxyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG5leHBvcnQgdmFyIF9EWU5fU1BMSVQgPSBcInNwbGl0XCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9MRU5HVEggPSBcImxlbmd0aFwiOyAvLyBDb3VudDogNDFcclxuZXhwb3J0IHZhciBfRFlOX1RPX0xPV0VSX0NBU0UgPSBcInRvTG93ZXJDYXNlXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9JTkdFU1RJT05FTkRQT0lOVCA9IFwiaW5nZXN0aW9uZW5kcG9pbnRcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1RPX1NUUklORyA9IFwidG9TdHJpbmdcIjsgLy8gQ291bnQ6IDEyXHJcbmV4cG9ydCB2YXIgX0RZTl9SRU1PVkVfSVRFTSA9IFwicmVtb3ZlSXRlbVwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fTkFNRSA9IFwibmFtZVwiOyAvLyBDb3VudDogMTFcclxuZXhwb3J0IHZhciBfRFlOX01FU1NBR0UgPSBcIm1lc3NhZ2VcIjsgLy8gQ291bnQ6IDEwXHJcbmV4cG9ydCB2YXIgX0RZTl9DT1VOVCA9IFwiY291bnRcIjsgLy8gQ291bnQ6IDhcclxuZXhwb3J0IHZhciBfRFlOX1BSRV9UUklHR0VSX0RBVEUgPSBcInByZVRyaWdnZXJEYXRlXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFRCA9IFwiZGlzYWJsZWRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0RBVEUgPSBcImRhdGVcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9VVENEQVRFID0gXCJnZXRVVENEYXRlXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9NQVhfVElNRVNfUEVSX01PTlRIID0gXCJtYXhUaW1lc1Blck1vbnRoXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9TVFJJTkdJRlkgPSBcInN0cmluZ2lmeVwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fUEFUSE5BTUUgPSBcInBhdGhuYW1lXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9DT1JSRUxBVElPTl9IRUFERVJfRTAgPSBcImNvcnJlbGF0aW9uSGVhZGVyRXhjbHVkZVBhdHRlcm5zXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9JTkRFWF9PRiA9IFwiaW5kZXhPZlwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fRVhURU5TSU9OX0NPTkZJRyA9IFwiZXh0ZW5zaW9uQ29uZmlnXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9FWENFUFRJT05TID0gXCJleGNlcHRpb25zXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9QQVJTRURfU1RBQ0sgPSBcInBhcnNlZFN0YWNrXCI7IC8vIENvdW50OiAxMVxyXG5leHBvcnQgdmFyIF9EWU5fUFJPUEVSVElFUyA9IFwicHJvcGVydGllc1wiOyAvLyBDb3VudDogOVxyXG5leHBvcnQgdmFyIF9EWU5fTUVBU1VSRU1FTlRTID0gXCJtZWFzdXJlbWVudHNcIjsgLy8gQ291bnQ6IDlcclxuZXhwb3J0IHZhciBfRFlOX1NJWkVfSU5fQllURVMgPSBcInNpemVJbkJ5dGVzXCI7IC8vIENvdW50OiAxMVxyXG5leHBvcnQgdmFyIF9EWU5fVFlQRV9OQU1FID0gXCJ0eXBlTmFtZVwiOyAvLyBDb3VudDogMTFcclxuZXhwb3J0IHZhciBfRFlOX1NFVkVSSVRZX0xFVkVMID0gXCJzZXZlcml0eUxldmVsXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9QUk9CTEVNX0dST1VQID0gXCJwcm9ibGVtR3JvdXBcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0lTX01BTlVBTCA9IFwiaXNNYW51YWxcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX19DUkVBVEVfRlJPTV9JTlRFUkZBMSA9IFwiQ3JlYXRlRnJvbUludGVyZmFjZVwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fSEFTX0ZVTExfU1RBQ0sgPSBcImhhc0Z1bGxTdGFja1wiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fTEVWRUwgPSBcImxldmVsXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9NRVRIT0QgPSBcIm1ldGhvZFwiOyAvLyBDb3VudDogN1xyXG5leHBvcnQgdmFyIF9EWU5fQVNTRU1CTFkgPSBcImFzc2VtYmx5XCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9GSUxFX05BTUUgPSBcImZpbGVOYW1lXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9MSU5FID0gXCJsaW5lXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9EVVJBVElPTiA9IFwiZHVyYXRpb25cIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1JFQ0VJVkVEX1JFU1BPTlNFID0gXCJyZWNlaXZlZFJlc3BvbnNlXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9TVUJTVFJJTkcgPSBcInN1YnN0cmluZ1wiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fU0FOSVRJWkVfS0VZX0FORF9BREQyID0gXCJzYW5pdGl6ZUtleUFuZEFkZFVuaXF1ZW5lc3NcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX1NBTklUSVpFX0VYQ0VQVElPTiA9IFwic2FuaXRpemVFeGNlcHRpb25cIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX1NBTklUSVpFX1BST1BFUlRJRVMgPSBcInNhbml0aXplUHJvcGVydGllc1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fU0FOSVRJWkVfTUVBU1VSRU1FTlQzID0gXCJzYW5pdGl6ZU1lYXN1cmVtZW50c1wiOyAvLyBDb3VudDogMlxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX0R5bmFtaWNDb25zdGFudHMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBhcnJGb3JFYWNoLCBpc1N0cmluZyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBfRFlOX0xFTkdUSCwgX0RZTl9UT19MT1dFUl9DQVNFIH0gZnJvbSBcIi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBzdHJFbXB0eSA9IFwiXCI7XHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb0Jvb2xPckRlZmF1bHQoc3RyLCBkZWZhdWx0VmFsdWUpIHtcclxuICAgIGlmIChkZWZhdWx0VmFsdWUgPT09IHZvaWQgMCkgeyBkZWZhdWx0VmFsdWUgPSBmYWxzZTsgfVxyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkIHx8IHN0ciA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyLnRvU3RyaW5nKClbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCkgPT09IFwidHJ1ZVwiO1xyXG59XHJcbi8qKlxyXG4gKiBDb252ZXJ0IG1zIHRvIGMjIHRpbWUgc3BhbiBmb3JtYXRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtc1RvVGltZVNwYW4odG90YWxtcykge1xyXG4gICAgaWYgKGlzTmFOKHRvdGFsbXMpIHx8IHRvdGFsbXMgPCAwKSB7XHJcbiAgICAgICAgdG90YWxtcyA9IDA7XHJcbiAgICB9XHJcbiAgICB0b3RhbG1zID0gTWF0aC5yb3VuZCh0b3RhbG1zKTtcclxuICAgIHZhciBtcyA9IHN0ckVtcHR5ICsgdG90YWxtcyAlIDEwMDA7XHJcbiAgICB2YXIgc2VjID0gc3RyRW1wdHkgKyBNYXRoLmZsb29yKHRvdGFsbXMgLyAxMDAwKSAlIDYwO1xyXG4gICAgdmFyIG1pbiA9IHN0ckVtcHR5ICsgTWF0aC5mbG9vcih0b3RhbG1zIC8gKDEwMDAgKiA2MCkpICUgNjA7XHJcbiAgICB2YXIgaG91ciA9IHN0ckVtcHR5ICsgTWF0aC5mbG9vcih0b3RhbG1zIC8gKDEwMDAgKiA2MCAqIDYwKSkgJSAyNDtcclxuICAgIHZhciBkYXlzID0gTWF0aC5mbG9vcih0b3RhbG1zIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcclxuICAgIG1zID0gbXNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID09PSAxID8gXCIwMFwiICsgbXMgOiBtc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPT09IDIgPyBcIjBcIiArIG1zIDogbXM7XHJcbiAgICBzZWMgPSBzZWNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dIDwgMiA/IFwiMFwiICsgc2VjIDogc2VjO1xyXG4gICAgbWluID0gbWluW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA8IDIgPyBcIjBcIiArIG1pbiA6IG1pbjtcclxuICAgIGhvdXIgPSBob3VyW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA8IDIgPyBcIjBcIiArIGhvdXIgOiBob3VyO1xyXG4gICAgcmV0dXJuIChkYXlzID4gMCA/IGRheXMgKyBcIi5cIiA6IHN0ckVtcHR5KSArIGhvdXIgKyBcIjpcIiArIG1pbiArIFwiOlwiICsgc2VjICsgXCIuXCIgKyBtcztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uQnlOYW1lKGV4dGVuc2lvbnMsIGlkZW50aWZpZXIpIHtcclxuICAgIHZhciBleHRlbnNpb24gPSBudWxsO1xyXG4gICAgYXJyRm9yRWFjaChleHRlbnNpb25zLCBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUuaWRlbnRpZmllciA9PT0gaWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICBleHRlbnNpb24gPSB2YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGV4dGVuc2lvbjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNDcm9zc09yaWdpbkVycm9yKG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikge1xyXG4gICAgcmV0dXJuICFlcnJvciAmJiBpc1N0cmluZyhtZXNzYWdlKSAmJiAobWVzc2FnZSA9PT0gXCJTY3JpcHQgZXJyb3IuXCIgfHwgbWVzc2FnZSA9PT0gXCJTY3JpcHQgZXJyb3JcIik7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVscGVyRnVuY3MuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVWYWx1ZU1hcCB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5leHBvcnQgdmFyIFJlcXVlc3RIZWFkZXJzID0gY3JlYXRlVmFsdWVNYXAoe1xyXG4gICAgcmVxdWVzdENvbnRleHRIZWFkZXI6IFswIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEhlYWRlciAqLywgXCJSZXF1ZXN0LUNvbnRleHRcIl0sXHJcbiAgICByZXF1ZXN0Q29udGV4dFRhcmdldEtleTogWzEgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RDb250ZXh0VGFyZ2V0S2V5ICovLCBcImFwcElkXCJdLFxyXG4gICAgcmVxdWVzdENvbnRleHRBcHBJZEZvcm1hdDogWzIgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RDb250ZXh0QXBwSWRGb3JtYXQgKi8sIFwiYXBwSWQ9Y2lkLXYxOlwiXSxcclxuICAgIHJlcXVlc3RJZEhlYWRlcjogWzMgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RJZEhlYWRlciAqLywgXCJSZXF1ZXN0LUlkXCJdLFxyXG4gICAgdHJhY2VQYXJlbnRIZWFkZXI6IFs0IC8qIGVSZXF1ZXN0SGVhZGVycy50cmFjZVBhcmVudEhlYWRlciAqLywgXCJ0cmFjZXBhcmVudFwiXSxcclxuICAgIHRyYWNlU3RhdGVIZWFkZXI6IFs1IC8qIGVSZXF1ZXN0SGVhZGVycy50cmFjZVN0YXRlSGVhZGVyICovLCBcInRyYWNlc3RhdGVcIl0sXHJcbiAgICBzZGtDb250ZXh0SGVhZGVyOiBbNiAvKiBlUmVxdWVzdEhlYWRlcnMuc2RrQ29udGV4dEhlYWRlciAqLywgXCJTZGstQ29udGV4dFwiXSxcclxuICAgIHNka0NvbnRleHRIZWFkZXJBcHBJZFJlcXVlc3Q6IFs3IC8qIGVSZXF1ZXN0SGVhZGVycy5zZGtDb250ZXh0SGVhZGVyQXBwSWRSZXF1ZXN0ICovLCBcImFwcElkXCJdLFxyXG4gICAgcmVxdWVzdENvbnRleHRIZWFkZXJMb3dlckNhc2U6IFs4IC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEhlYWRlckxvd2VyQ2FzZSAqLywgXCJyZXF1ZXN0LWNvbnRleHRcIl1cclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlcXVlc3RSZXNwb25zZUhlYWRlcnMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVFbnVtU3R5bGUgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuZXhwb3J0IHZhciBTdG9yYWdlVHlwZSA9IGNyZWF0ZUVudW1TdHlsZSh7XHJcbiAgICBMb2NhbFN0b3JhZ2U6IDAgLyogZVN0b3JhZ2VUeXBlLkxvY2FsU3RvcmFnZSAqLyxcclxuICAgIFNlc3Npb25TdG9yYWdlOiAxIC8qIGVTdG9yYWdlVHlwZS5TZXNzaW9uU3RvcmFnZSAqL1xyXG59KTtcclxuZXhwb3J0IHZhciBEaXN0cmlidXRlZFRyYWNpbmdNb2RlcyA9IGNyZWF0ZUVudW1TdHlsZSh7XHJcbiAgICBBSTogMCAvKiBlRGlzdHJpYnV0ZWRUcmFjaW5nTW9kZXMuQUkgKi8sXHJcbiAgICBBSV9BTkRfVzNDOiAxIC8qIGVEaXN0cmlidXRlZFRyYWNpbmdNb2Rlcy5BSV9BTkRfVzNDICovLFxyXG4gICAgVzNDOiAyIC8qIGVEaXN0cmlidXRlZFRyYWNpbmdNb2Rlcy5XM0MgKi9cclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudW1zLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgX3Rocm93SW50ZXJuYWwsIGR1bXBPYmosIGdldEV4Y2VwdGlvbk5hbWUsIGdldEdsb2JhbCwgZ2V0R2xvYmFsSW5zdCwgaXNOdWxsT3JVbmRlZmluZWQsIG9iakZvckVhY2hLZXkgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgU3RvcmFnZVR5cGUgfSBmcm9tIFwiLi9FbnVtc1wiO1xyXG5pbXBvcnQgeyBfRFlOX1JFTU9WRV9JVEVNLCBfRFlOX1RPX1NUUklORyB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG52YXIgX2NhblVzZUxvY2FsU3RvcmFnZSA9IHVuZGVmaW5lZDtcclxudmFyIF9jYW5Vc2VTZXNzaW9uU3RvcmFnZSA9IHVuZGVmaW5lZDtcclxuLyoqXHJcbiAqIEdldHMgdGhlIGxvY2FsU3RvcmFnZSBvYmplY3QgaWYgYXZhaWxhYmxlXHJcbiAqIEByZXR1cm4ge1N0b3JhZ2V9IC0gUmV0dXJucyB0aGUgc3RvcmFnZSBvYmplY3QgaWYgYXZhaWxhYmxlIGVsc2UgcmV0dXJucyBudWxsXHJcbiAqL1xyXG5mdW5jdGlvbiBfZ2V0TG9jYWxTdG9yYWdlT2JqZWN0KCkge1xyXG4gICAgaWYgKHV0bENhblVzZUxvY2FsU3RvcmFnZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuIF9nZXRWZXJpZmllZFN0b3JhZ2VPYmplY3QoU3RvcmFnZVR5cGUuTG9jYWxTdG9yYWdlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8qKlxyXG4gKiBUZXN0cyBzdG9yYWdlIG9iamVjdCAobG9jYWxTdG9yYWdlIG9yIHNlc3Npb25TdG9yYWdlKSB0byB2ZXJpZnkgdGhhdCBpdCBpcyB1c2FibGVcclxuICogTW9yZSBkZXRhaWxzIGhlcmU6IGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9sb2NhbHN0b3JhZ2UtcGF0dGVyblxyXG4gKiBAcGFyYW0gc3RvcmFnZVR5cGUgVHlwZSBvZiBzdG9yYWdlXHJcbiAqIEByZXR1cm4ge1N0b3JhZ2V9IFJldHVybnMgc3RvcmFnZSBvYmplY3QgdmVyaWZpZWQgdGhhdCBpdCBpcyB1c2FibGVcclxuICovXHJcbmZ1bmN0aW9uIF9nZXRWZXJpZmllZFN0b3JhZ2VPYmplY3Qoc3RvcmFnZVR5cGUpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGdldEdsb2JhbCgpKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHVpZCA9IChuZXcgRGF0ZSlbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKTtcclxuICAgICAgICB2YXIgc3RvcmFnZSA9IGdldEdsb2JhbEluc3Qoc3RvcmFnZVR5cGUgPT09IFN0b3JhZ2VUeXBlLkxvY2FsU3RvcmFnZSA/IFwibG9jYWxTdG9yYWdlXCIgOiBcInNlc3Npb25TdG9yYWdlXCIpO1xyXG4gICAgICAgIHN0b3JhZ2Uuc2V0SXRlbSh1aWQsIHVpZCk7XHJcbiAgICAgICAgdmFyIGZhaWwgPSBzdG9yYWdlLmdldEl0ZW0odWlkKSAhPT0gdWlkO1xyXG4gICAgICAgIHN0b3JhZ2VbX0RZTl9SRU1PVkVfSVRFTSAvKiBAbWluOiUyZXJlbW92ZUl0ZW0gKi9dKHVpZCk7XHJcbiAgICAgICAgaWYgKCFmYWlsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdG9yYWdlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChleGNlcHRpb24pIHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBzZXNzaW9uU3RvcmFnZSBvYmplY3QgaWYgYXZhaWxhYmxlXHJcbiAqIEByZXR1cm4ge1N0b3JhZ2V9IC0gUmV0dXJucyB0aGUgc3RvcmFnZSBvYmplY3QgaWYgYXZhaWxhYmxlIGVsc2UgcmV0dXJucyBudWxsXHJcbiAqL1xyXG5mdW5jdGlvbiBfZ2V0U2Vzc2lvblN0b3JhZ2VPYmplY3QoKSB7XHJcbiAgICBpZiAodXRsQ2FuVXNlU2Vzc2lvblN0b3JhZ2UoKSkge1xyXG4gICAgICAgIHJldHVybiBfZ2V0VmVyaWZpZWRTdG9yYWdlT2JqZWN0KFN0b3JhZ2VUeXBlLlNlc3Npb25TdG9yYWdlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbi8qKlxyXG4gKiBEaXNhYmxlcyB0aGUgZ2xvYmFsIFNESyB1c2FnZSBvZiBsb2NhbCBvciBzZXNzaW9uIHN0b3JhZ2UgaWYgYXZhaWxhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdXRsRGlzYWJsZVN0b3JhZ2UoKSB7XHJcbiAgICBfY2FuVXNlTG9jYWxTdG9yYWdlID0gZmFsc2U7XHJcbiAgICBfY2FuVXNlU2Vzc2lvblN0b3JhZ2UgPSBmYWxzZTtcclxufVxyXG4vKipcclxuICogUmUtZW5hYmxlcyB0aGUgZ2xvYmFsIFNESyB1c2FnZSBvZiBsb2NhbCBvciBzZXNzaW9uIHN0b3JhZ2UgaWYgYXZhaWxhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdXRsRW5hYmxlU3RvcmFnZSgpIHtcclxuICAgIF9jYW5Vc2VMb2NhbFN0b3JhZ2UgPSB1dGxDYW5Vc2VMb2NhbFN0b3JhZ2UodHJ1ZSk7XHJcbiAgICBfY2FuVXNlU2Vzc2lvblN0b3JhZ2UgPSB1dGxDYW5Vc2VTZXNzaW9uU3RvcmFnZSh0cnVlKTtcclxufVxyXG4vKipcclxuICogUmV0dXJucyB3aGV0aGVyIExvY2FsU3RvcmFnZSBjYW4gYmUgdXNlZCwgaWYgdGhlIHJlc2V0IHBhcmFtZXRlciBpcyBwYXNzZWQgYSB0cnVlIHRoaXMgd2lsbCBvdmVycmlkZVxyXG4gKiBhbnkgcHJldmlvdXMgZGlzYWJsZSBjYWxscy5cclxuICogQHBhcmFtIHJlc2V0IC0gU2hvdWxkIHRoZSB1c2FnZSBiZSByZXNldCBhbmQgZGV0ZXJtaW5lZCBvbmx5IGJhc2VkIG9uIHdoZXRoZXIgTG9jYWxTdG9yYWdlIGlzIGF2YWlsYWJsZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHV0bENhblVzZUxvY2FsU3RvcmFnZShyZXNldCkge1xyXG4gICAgaWYgKHJlc2V0IHx8IF9jYW5Vc2VMb2NhbFN0b3JhZ2UgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIF9jYW5Vc2VMb2NhbFN0b3JhZ2UgPSAhIV9nZXRWZXJpZmllZFN0b3JhZ2VPYmplY3QoU3RvcmFnZVR5cGUuTG9jYWxTdG9yYWdlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBfY2FuVXNlTG9jYWxTdG9yYWdlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1dGxHZXRMb2NhbFN0b3JhZ2UobG9nZ2VyLCBuYW1lKSB7XHJcbiAgICB2YXIgc3RvcmFnZSA9IF9nZXRMb2NhbFN0b3JhZ2VPYmplY3QoKTtcclxuICAgIGlmIChzdG9yYWdlICE9PSBudWxsKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgX2NhblVzZUxvY2FsU3RvcmFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCAxIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQnJvd3NlckNhbm5vdFJlYWRMb2NhbFN0b3JhZ2UgKi8sIFwiQnJvd3NlciBmYWlsZWQgcmVhZCBvZiBsb2NhbCBzdG9yYWdlLiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1dGxTZXRMb2NhbFN0b3JhZ2UobG9nZ2VyLCBuYW1lLCBkYXRhKSB7XHJcbiAgICB2YXIgc3RvcmFnZSA9IF9nZXRMb2NhbFN0b3JhZ2VPYmplY3QoKTtcclxuICAgIGlmIChzdG9yYWdlICE9PSBudWxsKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKG5hbWUsIGRhdGEpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgX2NhblVzZUxvY2FsU3RvcmFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCAzIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQnJvd3NlckNhbm5vdFdyaXRlTG9jYWxTdG9yYWdlICovLCBcIkJyb3dzZXIgZmFpbGVkIHdyaXRlIHRvIGxvY2FsIHN0b3JhZ2UuIFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1dGxSZW1vdmVTdG9yYWdlKGxvZ2dlciwgbmFtZSkge1xyXG4gICAgdmFyIHN0b3JhZ2UgPSBfZ2V0TG9jYWxTdG9yYWdlT2JqZWN0KCk7XHJcbiAgICBpZiAoc3RvcmFnZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHN0b3JhZ2VbX0RZTl9SRU1PVkVfSVRFTSAvKiBAbWluOiUyZXJlbW92ZUl0ZW0gKi9dKG5hbWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgX2NhblVzZUxvY2FsU3RvcmFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA1IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQnJvd3NlckZhaWxlZFJlbW92YWxGcm9tTG9jYWxTdG9yYWdlICovLCBcIkJyb3dzZXIgZmFpbGVkIHJlbW92YWwgb2YgbG9jYWwgc3RvcmFnZSBpdGVtLiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gdXRsQ2FuVXNlU2Vzc2lvblN0b3JhZ2UocmVzZXQpIHtcclxuICAgIGlmIChyZXNldCB8fCBfY2FuVXNlU2Vzc2lvblN0b3JhZ2UgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIF9jYW5Vc2VTZXNzaW9uU3RvcmFnZSA9ICEhX2dldFZlcmlmaWVkU3RvcmFnZU9iamVjdChTdG9yYWdlVHlwZS5TZXNzaW9uU3RvcmFnZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX2NhblVzZVNlc3Npb25TdG9yYWdlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1dGxHZXRTZXNzaW9uU3RvcmFnZUtleXMoKSB7XHJcbiAgICB2YXIga2V5cyA9IFtdO1xyXG4gICAgaWYgKHV0bENhblVzZVNlc3Npb25TdG9yYWdlKCkpIHtcclxuICAgICAgICBvYmpGb3JFYWNoS2V5KGdldEdsb2JhbEluc3QoXCJzZXNzaW9uU3RvcmFnZVwiKSwgZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBrZXlzO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1dGxHZXRTZXNzaW9uU3RvcmFnZShsb2dnZXIsIG5hbWUpIHtcclxuICAgIHZhciBzdG9yYWdlID0gX2dldFNlc3Npb25TdG9yYWdlT2JqZWN0KCk7XHJcbiAgICBpZiAoc3RvcmFnZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdG9yYWdlLmdldEl0ZW0obmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIF9jYW5Vc2VTZXNzaW9uU3RvcmFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCAyIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQnJvd3NlckNhbm5vdFJlYWRTZXNzaW9uU3RvcmFnZSAqLywgXCJCcm93c2VyIGZhaWxlZCByZWFkIG9mIHNlc3Npb24gc3RvcmFnZS4gXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gdXRsU2V0U2Vzc2lvblN0b3JhZ2UobG9nZ2VyLCBuYW1lLCBkYXRhKSB7XHJcbiAgICB2YXIgc3RvcmFnZSA9IF9nZXRTZXNzaW9uU3RvcmFnZU9iamVjdCgpO1xyXG4gICAgaWYgKHN0b3JhZ2UgIT09IG51bGwpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0obmFtZSwgZGF0YSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBfY2FuVXNlU2Vzc2lvblN0b3JhZ2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkJyb3dzZXJDYW5ub3RXcml0ZVNlc3Npb25TdG9yYWdlICovLCBcIkJyb3dzZXIgZmFpbGVkIHdyaXRlIHRvIHNlc3Npb24gc3RvcmFnZS4gXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHV0bFJlbW92ZVNlc3Npb25TdG9yYWdlKGxvZ2dlciwgbmFtZSkge1xyXG4gICAgdmFyIHN0b3JhZ2UgPSBfZ2V0U2Vzc2lvblN0b3JhZ2VPYmplY3QoKTtcclxuICAgIGlmIChzdG9yYWdlICE9PSBudWxsKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgc3RvcmFnZVtfRFlOX1JFTU9WRV9JVEVNIC8qIEBtaW46JTJlcmVtb3ZlSXRlbSAqL10obmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBfY2FuVXNlU2Vzc2lvblN0b3JhZ2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNiAvKiBfZUludGVybmFsTWVzc2FnZUlkLkJyb3dzZXJGYWlsZWRSZW1vdmFsRnJvbVNlc3Npb25TdG9yYWdlICovLCBcIkJyb3dzZXIgZmFpbGVkIHJlbW92YWwgb2Ygc2Vzc2lvbiBzdG9yYWdlIGl0ZW0uIFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN0b3JhZ2VIZWxwZXJGdW5jcy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbnZhciBfYTtcclxuaW1wb3J0IHsgX3Rocm93SW50ZXJuYWwsIGdldEpTT04sIGhhc0pTT04sIGlzT2JqZWN0LCBvYmpGb3JFYWNoS2V5LCBzdHJUcmltIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmltcG9ydCB7IF9EWU5fTEVOR1RILCBfRFlOX1NBTklUSVpFX0VYQ0VQVElPTiwgX0RZTl9TQU5JVElaRV9LRVlfQU5EX0FERDIsIF9EWU5fU0FOSVRJWkVfTUVBU1VSRU1FTlQzLCBfRFlOX1NBTklUSVpFX1BST1BFUlRJRVMsIF9EWU5fU1RSSU5HSUZZLCBfRFlOX1NVQlNUUklORywgX0RZTl9UT19TVFJJTkcgfSBmcm9tIFwiLi4vLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmV4cG9ydCBmdW5jdGlvbiBkYXRhU2FuaXRpemVLZXlBbmRBZGRVbmlxdWVuZXNzKGxvZ2dlciwga2V5LCBtYXApIHtcclxuICAgIHZhciBvcmlnTGVuZ3RoID0ga2V5W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgIHZhciBmaWVsZCA9IGRhdGFTYW5pdGl6ZUtleShsb2dnZXIsIGtleSk7XHJcbiAgICAvLyB2YWxpZGF0aW9uIHRydW5jYXRlZCB0aGUgbGVuZ3RoLiAgV2UgbmVlZCB0byBhZGQgdW5pcXVlbmVzc1xyXG4gICAgaWYgKGZpZWxkW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSAhPT0gb3JpZ0xlbmd0aCkge1xyXG4gICAgICAgIHZhciBpID0gMDtcclxuICAgICAgICB2YXIgdW5pcXVlRmllbGQgPSBmaWVsZDtcclxuICAgICAgICB3aGlsZSAobWFwW3VuaXF1ZUZpZWxkXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgICAgdW5pcXVlRmllbGQgPSBmaWVsZFtfRFlOX1NVQlNUUklORyAvKiBAbWluOiUyZXN1YnN0cmluZyAqL10oMCwgMTUwIC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX05BTUVfTEVOR1RIICovIC0gMykgKyBkc1BhZE51bWJlcihpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmllbGQgPSB1bmlxdWVGaWVsZDtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNhbml0aXplS2V5KGxvZ2dlciwgbmFtZSkge1xyXG4gICAgdmFyIG5hbWVUcnVuYztcclxuICAgIGlmIChuYW1lKSB7XHJcbiAgICAgICAgLy8gUmVtb3ZlIGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2VcclxuICAgICAgICBuYW1lID0gc3RyVHJpbShuYW1lW19EWU5fVE9fU1RSSU5HIC8qIEBtaW46JTJldG9TdHJpbmcgKi9dKCkpO1xyXG4gICAgICAgIC8vIHRydW5jYXRlIHRoZSBzdHJpbmcgdG8gMTUwIGNoYXJzXHJcbiAgICAgICAgaWYgKG5hbWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMTUwIC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX05BTUVfTEVOR1RIICovKSB7XHJcbiAgICAgICAgICAgIG5hbWVUcnVuYyA9IG5hbWVbX0RZTl9TVUJTVFJJTkcgLyogQG1pbjolMmVzdWJzdHJpbmcgKi9dKDAsIDE1MCAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9OQU1FX0xFTkdUSCAqLyk7XHJcbiAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDU3IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuTmFtZVRvb0xvbmcgKi8sIFwibmFtZSBpcyB0b28gbG9uZy4gIEl0IGhhcyBiZWVuIHRydW5jYXRlZCB0byBcIiArIDE1MCAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9OQU1FX0xFTkdUSCAqLyArIFwiIGNoYXJhY3RlcnMuXCIsIHsgbmFtZTogbmFtZSB9LCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmFtZVRydW5jIHx8IG5hbWU7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTYW5pdGl6ZVN0cmluZyhsb2dnZXIsIHZhbHVlLCBtYXhMZW5ndGgpIHtcclxuICAgIGlmIChtYXhMZW5ndGggPT09IHZvaWQgMCkgeyBtYXhMZW5ndGggPSAxMDI0IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX1NUUklOR19MRU5HVEggKi87IH1cclxuICAgIHZhciB2YWx1ZVRydW5jO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgbWF4TGVuZ3RoID0gbWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogMTAyNCAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9TVFJJTkdfTEVOR1RIICovOyAvLyBpbiBjYXNlIGRlZmF1bHQgcGFyYW1ldGVycyBkb250IHdvcmtcclxuICAgICAgICB2YWx1ZSA9IHN0clRyaW0odmFsdWUpO1xyXG4gICAgICAgIGlmICh2YWx1ZS50b1N0cmluZygpW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IG1heExlbmd0aCkge1xyXG4gICAgICAgICAgICB2YWx1ZVRydW5jID0gdmFsdWVbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKVtfRFlOX1NVQlNUUklORyAvKiBAbWluOiUyZXN1YnN0cmluZyAqL10oMCwgbWF4TGVuZ3RoKTtcclxuICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNjEgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5TdHJpbmdWYWx1ZVRvb0xvbmcgKi8sIFwic3RyaW5nIHZhbHVlIGlzIHRvbyBsb25nLiBJdCBoYXMgYmVlbiB0cnVuY2F0ZWQgdG8gXCIgKyBtYXhMZW5ndGggKyBcIiBjaGFyYWN0ZXJzLlwiLCB7IHZhbHVlOiB2YWx1ZSB9LCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVUcnVuYyB8fCB2YWx1ZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNhbml0aXplVXJsKGxvZ2dlciwgdXJsKSB7XHJcbiAgICByZXR1cm4gZGF0YVNhbml0aXplSW5wdXQobG9nZ2VyLCB1cmwsIDIwNDggLyogRGF0YVNhbml0aXplclZhbHVlcy5NQVhfVVJMX0xFTkdUSCAqLywgNjYgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5VcmxUb29Mb25nICovKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNhbml0aXplTWVzc2FnZShsb2dnZXIsIG1lc3NhZ2UpIHtcclxuICAgIHZhciBtZXNzYWdlVHJ1bmM7XHJcbiAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgIGlmIChtZXNzYWdlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDMyNzY4IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX01FU1NBR0VfTEVOR1RIICovKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2VUcnVuYyA9IG1lc3NhZ2VbX0RZTl9TVUJTVFJJTkcgLyogQG1pbjolMmVzdWJzdHJpbmcgKi9dKDAsIDMyNzY4IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX01FU1NBR0VfTEVOR1RIICovKTtcclxuICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNTYgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5NZXNzYWdlVHJ1bmNhdGVkICovLCBcIm1lc3NhZ2UgaXMgdG9vIGxvbmcsIGl0IGhhcyBiZWVuIHRydW5jYXRlZCB0byBcIiArIDMyNzY4IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX01FU1NBR0VfTEVOR1RIICovICsgXCIgY2hhcmFjdGVycy5cIiwgeyBtZXNzYWdlOiBtZXNzYWdlIH0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtZXNzYWdlVHJ1bmMgfHwgbWVzc2FnZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNhbml0aXplRXhjZXB0aW9uKGxvZ2dlciwgZXhjZXB0aW9uKSB7XHJcbiAgICB2YXIgZXhjZXB0aW9uVHJ1bmM7XHJcbiAgICBpZiAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgLy8gTWFrZSBzdXJ0ZSBpdHMgYSBzdHJpbmdcclxuICAgICAgICB2YXIgdmFsdWUgPSBcIlwiICsgZXhjZXB0aW9uO1xyXG4gICAgICAgIGlmICh2YWx1ZVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAzMjc2OCAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9FWENFUFRJT05fTEVOR1RIICovKSB7XHJcbiAgICAgICAgICAgIGV4Y2VwdGlvblRydW5jID0gdmFsdWVbX0RZTl9TVUJTVFJJTkcgLyogQG1pbjolMmVzdWJzdHJpbmcgKi9dKDAsIDMyNzY4IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX0VYQ0VQVElPTl9MRU5HVEggKi8pO1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA1MiAvKiBfZUludGVybmFsTWVzc2FnZUlkLkV4Y2VwdGlvblRydW5jYXRlZCAqLywgXCJleGNlcHRpb24gaXMgdG9vIGxvbmcsIGl0IGhhcyBiZWVuIHRydW5jYXRlZCB0byBcIiArIDMyNzY4IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX0VYQ0VQVElPTl9MRU5HVEggKi8gKyBcIiBjaGFyYWN0ZXJzLlwiLCB7IGV4Y2VwdGlvbjogZXhjZXB0aW9uIH0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBleGNlcHRpb25UcnVuYyB8fCBleGNlcHRpb247XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTYW5pdGl6ZVByb3BlcnRpZXMobG9nZ2VyLCBwcm9wZXJ0aWVzKSB7XHJcbiAgICBpZiAocHJvcGVydGllcykge1xyXG4gICAgICAgIHZhciB0ZW1wUHJvcHNfMSA9IHt9O1xyXG4gICAgICAgIG9iakZvckVhY2hLZXkocHJvcGVydGllcywgZnVuY3Rpb24gKHByb3AsIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkgJiYgaGFzSlNPTigpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTdHJpbmdpZnkgYW55IHBhcnQgQyBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0SlNPTigpW19EWU5fU1RSSU5HSUZZIC8qIEBtaW46JTJlc3RyaW5naWZ5ICovXSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDQ5IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQ2Fubm90U2VyaWFsaXplT2JqZWN0Tm9uU2VyaWFsaXphYmxlICovLCBcImN1c3RvbSBwcm9wZXJ0eSBpcyBub3QgdmFsaWRcIiwgeyBleGNlcHRpb246IGUgfSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFsdWUgPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCB2YWx1ZSwgODE5MiAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9QUk9QRVJUWV9MRU5HVEggKi8pO1xyXG4gICAgICAgICAgICBwcm9wID0gZGF0YVNhbml0aXplS2V5QW5kQWRkVW5pcXVlbmVzcyhsb2dnZXIsIHByb3AsIHRlbXBQcm9wc18xKTtcclxuICAgICAgICAgICAgdGVtcFByb3BzXzFbcHJvcF0gPSB2YWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBwcm9wZXJ0aWVzID0gdGVtcFByb3BzXzE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJvcGVydGllcztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzKGxvZ2dlciwgbWVhc3VyZW1lbnRzKSB7XHJcbiAgICBpZiAobWVhc3VyZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIHRlbXBNZWFzdXJlbWVudHNfMSA9IHt9O1xyXG4gICAgICAgIG9iakZvckVhY2hLZXkobWVhc3VyZW1lbnRzLCBmdW5jdGlvbiAobWVhc3VyZSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgbWVhc3VyZSA9IGRhdGFTYW5pdGl6ZUtleUFuZEFkZFVuaXF1ZW5lc3MobG9nZ2VyLCBtZWFzdXJlLCB0ZW1wTWVhc3VyZW1lbnRzXzEpO1xyXG4gICAgICAgICAgICB0ZW1wTWVhc3VyZW1lbnRzXzFbbWVhc3VyZV0gPSB2YWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtZWFzdXJlbWVudHMgPSB0ZW1wTWVhc3VyZW1lbnRzXzE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWVhc3VyZW1lbnRzO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBkYXRhU2FuaXRpemVJZChsb2dnZXIsIGlkKSB7XHJcbiAgICByZXR1cm4gaWQgPyBkYXRhU2FuaXRpemVJbnB1dChsb2dnZXIsIGlkLCAxMjggLyogRGF0YVNhbml0aXplclZhbHVlcy5NQVhfSURfTEVOR1RIICovLCA2OSAvKiBfZUludGVybmFsTWVzc2FnZUlkLklkVG9vTG9uZyAqLylbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKSA6IGlkO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBkYXRhU2FuaXRpemVJbnB1dChsb2dnZXIsIGlucHV0LCBtYXhMZW5ndGgsIF9tc2dJZCkge1xyXG4gICAgdmFyIGlucHV0VHJ1bmM7XHJcbiAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgICBpbnB1dCA9IHN0clRyaW0oaW5wdXQpO1xyXG4gICAgICAgIGlmIChpbnB1dFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiBtYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgaW5wdXRUcnVuYyA9IGlucHV0W19EWU5fU1VCU1RSSU5HIC8qIEBtaW46JTJlc3Vic3RyaW5nICovXSgwLCBtYXhMZW5ndGgpO1xyXG4gICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCBfbXNnSWQsIFwiaW5wdXQgaXMgdG9vIGxvbmcsIGl0IGhhcyBiZWVuIHRydW5jYXRlZCB0byBcIiArIG1heExlbmd0aCArIFwiIGNoYXJhY3RlcnMuXCIsIHsgZGF0YTogaW5wdXQgfSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlucHV0VHJ1bmMgfHwgaW5wdXQ7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGRzUGFkTnVtYmVyKG51bSkge1xyXG4gICAgdmFyIHMgPSBcIjAwXCIgKyBudW07XHJcbiAgICByZXR1cm4gcy5zdWJzdHIoc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gLSAzKTtcclxufVxyXG4vKipcclxuICogUHJvdmlkZXMgdGhlIERhdGFTYW5pdGl6ZXIgZnVuY3Rpb25zIHdpdGhpbiB0aGUgcHJldmlvdXMgbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IHZhciBEYXRhU2FuaXRpemVyID0gKF9hID0ge1xyXG4gICAgICAgIE1BWF9OQU1FX0xFTkdUSDogMTUwIC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX05BTUVfTEVOR1RIICovLFxyXG4gICAgICAgIE1BWF9JRF9MRU5HVEg6IDEyOCAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9JRF9MRU5HVEggKi8sXHJcbiAgICAgICAgTUFYX1BST1BFUlRZX0xFTkdUSDogODE5MiAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9QUk9QRVJUWV9MRU5HVEggKi8sXHJcbiAgICAgICAgTUFYX1NUUklOR19MRU5HVEg6IDEwMjQgLyogRGF0YVNhbml0aXplclZhbHVlcy5NQVhfU1RSSU5HX0xFTkdUSCAqLyxcclxuICAgICAgICBNQVhfVVJMX0xFTkdUSDogMjA0OCAvKiBEYXRhU2FuaXRpemVyVmFsdWVzLk1BWF9VUkxfTEVOR1RIICovLFxyXG4gICAgICAgIE1BWF9NRVNTQUdFX0xFTkdUSDogMzI3NjggLyogRGF0YVNhbml0aXplclZhbHVlcy5NQVhfTUVTU0FHRV9MRU5HVEggKi8sXHJcbiAgICAgICAgTUFYX0VYQ0VQVElPTl9MRU5HVEg6IDMyNzY4IC8qIERhdGFTYW5pdGl6ZXJWYWx1ZXMuTUFYX0VYQ0VQVElPTl9MRU5HVEggKi9cclxuICAgIH0sXHJcbiAgICBfYVtfRFlOX1NBTklUSVpFX0tFWV9BTkRfQUREMiAvKiBAbWluOnNhbml0aXplS2V5QW5kQWRkVW5pcXVlbmVzcyAqL10gPSBkYXRhU2FuaXRpemVLZXlBbmRBZGRVbmlxdWVuZXNzLFxyXG4gICAgX2Euc2FuaXRpemVLZXkgPSBkYXRhU2FuaXRpemVLZXksXHJcbiAgICBfYS5zYW5pdGl6ZVN0cmluZyA9IGRhdGFTYW5pdGl6ZVN0cmluZyxcclxuICAgIF9hLnNhbml0aXplVXJsID0gZGF0YVNhbml0aXplVXJsLFxyXG4gICAgX2Euc2FuaXRpemVNZXNzYWdlID0gZGF0YVNhbml0aXplTWVzc2FnZSxcclxuICAgIF9hW19EWU5fU0FOSVRJWkVfRVhDRVBUSU9OIC8qIEBtaW46c2FuaXRpemVFeGNlcHRpb24gKi9dID0gZGF0YVNhbml0aXplRXhjZXB0aW9uLFxyXG4gICAgX2FbX0RZTl9TQU5JVElaRV9QUk9QRVJUSUVTIC8qIEBtaW46c2FuaXRpemVQcm9wZXJ0aWVzICovXSA9IGRhdGFTYW5pdGl6ZVByb3BlcnRpZXMsXHJcbiAgICBfYVtfRFlOX1NBTklUSVpFX01FQVNVUkVNRU5UMyAvKiBAbWluOnNhbml0aXplTWVhc3VyZW1lbnRzICovXSA9IGRhdGFTYW5pdGl6ZU1lYXN1cmVtZW50cyxcclxuICAgIF9hLnNhbml0aXplSWQgPSBkYXRhU2FuaXRpemVJZCxcclxuICAgIF9hLnNhbml0aXplSW5wdXQgPSBkYXRhU2FuaXRpemVJbnB1dCxcclxuICAgIF9hLnBhZE51bWJlciA9IGRzUGFkTnVtYmVyLFxyXG4gICAgX2EudHJpbSA9IHN0clRyaW0sXHJcbiAgICBfYSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGFTYW5pdGl6ZXIuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBnZXREb2N1bWVudCwgaXNTdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9MRU5HVEgsIF9EWU5fUEFUSE5BTUUsIF9EWU5fVE9fTE9XRVJfQ0FTRSB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG52YXIgX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKSB8fCB7fTtcclxudmFyIF9odG1sQW5jaG9ySWR4ID0gMDtcclxuLy8gVXNlIGFuIGFycmF5IG9mIHRlbXBvcmFyeSB2YWx1ZXMgYXMgaXQncyBwb3NzaWJsZSBmb3IgbXVsdGlwbGUgY2FsbHMgdG8gcGFyc2VVcmwoKSB3aWxsIGJlIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBVUkxzXHJcbi8vIFVzaW5nIGEgY2FjaGUgc2l6ZSBvZiA1IGZvciBub3cgYXMgaXQgY3VycmVudCBkZXB0aCB1c2FnZSBpcyBhdCBsZWFzdCAyLCBzbyBhZGRpbmcgYSBtaW5vciBidWZmZXIgdG8gaGFuZGxlIGZ1dHVyZSB1cGRhdGVzXHJcbnZhciBfaHRtbEFuY2hvckVsZW1lbnQgPSBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07XHJcbmV4cG9ydCBmdW5jdGlvbiB1cmxQYXJzZVVybCh1cmwpIHtcclxuICAgIHZhciBhbmNob3JJZHggPSBfaHRtbEFuY2hvcklkeDtcclxuICAgIHZhciBhbmNob3JDYWNoZSA9IF9odG1sQW5jaG9yRWxlbWVudDtcclxuICAgIHZhciB0ZW1wQW5jaG9yID0gYW5jaG9yQ2FjaGVbYW5jaG9ySWR4XTtcclxuICAgIGlmICghX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQpIHtcclxuICAgICAgICAvLyBBbHdheXMgY3JlYXRlIHRoZSB0ZW1wIGluc3RhbmNlIGlmIGNyZWF0ZUVsZW1lbnQgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgIHRlbXBBbmNob3IgPSB7IGhvc3Q6IHVybFBhcnNlSG9zdCh1cmwsIHRydWUpIH07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghYW5jaG9yQ2FjaGVbYW5jaG9ySWR4XSkge1xyXG4gICAgICAgIC8vIENyZWF0ZSBhbmQgY2FjaGUgdGhlIHVuYXR0YWNoZWQgYW5jaG9yIGluc3RhbmNlXHJcbiAgICAgICAgdGVtcEFuY2hvciA9IGFuY2hvckNhY2hlW2FuY2hvcklkeF0gPSBfZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICB9XHJcbiAgICB0ZW1wQW5jaG9yLmhyZWYgPSB1cmw7XHJcbiAgICAvLyBNb3ZlIHRoZSBjYWNoZSBpbmRleCBmb3J3YXJkXHJcbiAgICBhbmNob3JJZHgrKztcclxuICAgIGlmIChhbmNob3JJZHggPj0gYW5jaG9yQ2FjaGVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dKSB7XHJcbiAgICAgICAgYW5jaG9ySWR4ID0gMDtcclxuICAgIH1cclxuICAgIF9odG1sQW5jaG9ySWR4ID0gYW5jaG9ySWR4O1xyXG4gICAgcmV0dXJuIHRlbXBBbmNob3I7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHVybEdldEFic29sdXRlVXJsKHVybCkge1xyXG4gICAgdmFyIHJlc3VsdDtcclxuICAgIHZhciBhID0gdXJsUGFyc2VVcmwodXJsKTtcclxuICAgIGlmIChhKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gYS5ocmVmO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gdXJsR2V0UGF0aE5hbWUodXJsKSB7XHJcbiAgICB2YXIgcmVzdWx0O1xyXG4gICAgdmFyIGEgPSB1cmxQYXJzZVVybCh1cmwpO1xyXG4gICAgaWYgKGEpIHtcclxuICAgICAgICByZXN1bHQgPSBhW19EWU5fUEFUSE5BTUUgLyogQG1pbjolMmVwYXRobmFtZSAqL107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1cmxHZXRDb21wbGV0ZVVybChtZXRob2QsIGFic29sdXRlVXJsKSB7XHJcbiAgICBpZiAobWV0aG9kKSB7XHJcbiAgICAgICAgcmV0dXJuIG1ldGhvZC50b1VwcGVyQ2FzZSgpICsgXCIgXCIgKyBhYnNvbHV0ZVVybDtcclxuICAgIH1cclxuICAgIHJldHVybiBhYnNvbHV0ZVVybDtcclxufVxyXG4vLyBGYWxsYmFjayBtZXRob2QgdG8gZ3JhYiBob3N0IGZyb20gdXJsIGlmIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgbWV0aG9kIGlzIG5vdCBhdmFpbGFibGVcclxuZXhwb3J0IGZ1bmN0aW9uIHVybFBhcnNlSG9zdCh1cmwsIGluY2xQb3J0KSB7XHJcbiAgICB2YXIgZnVsbEhvc3QgPSB1cmxQYXJzZUZ1bGxIb3N0KHVybCwgaW5jbFBvcnQpIHx8IFwiXCI7XHJcbiAgICBpZiAoZnVsbEhvc3QpIHtcclxuICAgICAgICB2YXIgbWF0Y2ggPSBmdWxsSG9zdC5tYXRjaCgvKHd3d1xcZHswLDV9XFwuKT8oW15cXC86XXsxLDI1Nn0pKDpcXGR7MSwyMH0pPy9pKTtcclxuICAgICAgICBpZiAobWF0Y2ggIT0gbnVsbCAmJiBtYXRjaFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAzICYmIGlzU3RyaW5nKG1hdGNoWzJdKSAmJiBtYXRjaFsyXVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtYXRjaFsyXSArIChtYXRjaFszXSB8fCBcIlwiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnVsbEhvc3Q7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHVybFBhcnNlRnVsbEhvc3QodXJsLCBpbmNsUG9ydCkge1xyXG4gICAgdmFyIHJlc3VsdCA9IG51bGw7XHJcbiAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgdmFyIG1hdGNoID0gdXJsLm1hdGNoKC8oXFx3ezEsMTUwfSk6XFwvXFwvKFteXFwvOl17MSwyNTZ9KSg6XFxkezEsMjB9KT8vaSk7XHJcbiAgICAgICAgaWYgKG1hdGNoICE9IG51bGwgJiYgbWF0Y2hbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMiAmJiBpc1N0cmluZyhtYXRjaFsyXSkgJiYgbWF0Y2hbMl1bX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBtYXRjaFsyXSB8fCBcIlwiO1xyXG4gICAgICAgICAgICBpZiAoaW5jbFBvcnQgJiYgbWF0Y2hbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMikge1xyXG4gICAgICAgICAgICAgICAgdmFyIHByb3RvY29sID0gKG1hdGNoWzFdIHx8IFwiXCIpW19EWU5fVE9fTE9XRVJfQ0FTRSAvKiBAbWluOiUyZXRvTG93ZXJDYXNlICovXSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHBvcnQgPSBtYXRjaFszXSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgLy8gSUUgaW5jbHVkZXMgdGhlIHN0YW5kYXJkIHBvcnQgc28gcGFzcyBpdCBvZmYgaWYgaXQncyB0aGUgc2FtZSBhcyB0aGUgcHJvdG9jb2xcclxuICAgICAgICAgICAgICAgIGlmIChwcm90b2NvbCA9PT0gXCJodHRwXCIgJiYgcG9ydCA9PT0gXCI6ODBcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcnQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocHJvdG9jb2wgPT09IFwiaHR0cHNcIiAmJiBwb3J0ID09PSBcIjo0NDNcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcnQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHBvcnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVVybEhlbHBlckZ1bmNzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgYXJySW5kZXhPZiwgYXR0YWNoRXZlbnQsIGNhblVzZUNvb2tpZXMgYXMgY29yZUNhblVzZUNvb2tpZXMsIGRhdGVOb3csIGRlbGV0ZUNvb2tpZSBhcyBjb3JlRGVsZXRlQ29va2llLCBkaXNhYmxlQ29va2llcyBhcyBjb3JlRGlzYWJsZUNvb2tpZXMsIGR1bXBPYmosIGdlbmVyYXRlVzNDSWQsIGdldENvb2tpZSBhcyBjb3JlR2V0Q29va2llLCBnZXRFeGNlcHRpb25OYW1lIGFzIGNvcmVHZXRFeGNlcHRpb25OYW1lLCBnZXRJRVZlcnNpb24sIGdldFBlcmZvcm1hbmNlLCBpc0FycmF5LCBpc0JlYWNvbnNTdXBwb3J0ZWQsIGlzRGF0ZSwgaXNFcnJvciwgaXNOdWxsT3JVbmRlZmluZWQsIGlzVmFsaWRTcGFuSWQsIGlzVmFsaWRUcmFjZUlkLCBuZXdJZCwgcmFuZG9tMzIsIHNldENvb2tpZSBhcyBjb3JlU2V0Q29va2llLCBzdHJUcmltLCB0b0lTT1N0cmluZywgdWFEaXNhbGxvd3NTYW1lU2l0ZU5vbmUgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgREVGQVVMVF9CUkVFWkVfRU5EUE9JTlQsIERFRkFVTFRfQlJFRVpFX1BBVEgsIHN0ck5vdFNwZWNpZmllZCB9IGZyb20gXCIuL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVEb21FdmVudCB9IGZyb20gXCIuL0RvbUhlbHBlckZ1bmNzXCI7XHJcbmltcG9ydCB7IGdldEV4dGVuc2lvbkJ5TmFtZSwgaXNDcm9zc09yaWdpbkVycm9yLCBtc1RvVGltZVNwYW4sIHN0cmluZ1RvQm9vbE9yRGVmYXVsdCB9IGZyb20gXCIuL0hlbHBlckZ1bmNzXCI7XHJcbmltcG9ydCB7IFJlcXVlc3RIZWFkZXJzIH0gZnJvbSBcIi4vUmVxdWVzdFJlc3BvbnNlSGVhZGVyc1wiO1xyXG5pbXBvcnQgeyB1dGxDYW5Vc2VMb2NhbFN0b3JhZ2UsIHV0bENhblVzZVNlc3Npb25TdG9yYWdlLCB1dGxEaXNhYmxlU3RvcmFnZSwgdXRsR2V0TG9jYWxTdG9yYWdlLCB1dGxHZXRTZXNzaW9uU3RvcmFnZSwgdXRsR2V0U2Vzc2lvblN0b3JhZ2VLZXlzLCB1dGxSZW1vdmVTZXNzaW9uU3RvcmFnZSwgdXRsUmVtb3ZlU3RvcmFnZSwgdXRsU2V0TG9jYWxTdG9yYWdlLCB1dGxTZXRTZXNzaW9uU3RvcmFnZSB9IGZyb20gXCIuL1N0b3JhZ2VIZWxwZXJGdW5jc1wiO1xyXG5pbXBvcnQgeyBkYXRhU2FuaXRpemVTdHJpbmcgfSBmcm9tIFwiLi9UZWxlbWV0cnkvQ29tbW9uL0RhdGFTYW5pdGl6ZXJcIjtcclxuaW1wb3J0IHsgdXJsR2V0QWJzb2x1dGVVcmwsIHVybEdldENvbXBsZXRlVXJsLCB1cmxHZXRQYXRoTmFtZSwgdXJsUGFyc2VGdWxsSG9zdCwgdXJsUGFyc2VIb3N0LCB1cmxQYXJzZVVybCB9IGZyb20gXCIuL1VybEhlbHBlckZ1bmNzXCI7XHJcbmltcG9ydCB7IF9EWU5fQ09SUkVMQVRJT05fSEVBREVSX0UwLCBfRFlOX0lOREVYX09GLCBfRFlOX0xFTkdUSCwgX0RZTl9OQU1FLCBfRFlOX1BBVEhOQU1FLCBfRFlOX1NQTElULCBfRFlOX1RPX0xPV0VSX0NBU0UgfSBmcm9tIFwiLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuLy8gbGlzdGluZyBvbmx5IG5vbi1nZW8gc3BlY2lmaWMgbG9jYXRpb25zXHJcbnZhciBfaW50ZXJuYWxFbmRwb2ludHMgPSBbXHJcbiAgICBERUZBVUxUX0JSRUVaRV9FTkRQT0lOVCArIERFRkFVTFRfQlJFRVpFX1BBVEgsXHJcbiAgICBcImh0dHBzOi8vYnJlZXplLmFpbW9uLmFwcGxpY2F0aW9uaW5zaWdodHMuaW9cIiArIERFRkFVTFRfQlJFRVpFX1BBVEgsXHJcbiAgICBcImh0dHBzOi8vZGMtaW50LnNlcnZpY2VzLnZpc3VhbHN0dWRpby5jb21cIiArIERFRkFVTFRfQlJFRVpFX1BBVEhcclxuXTtcclxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJuYWxBcHBsaWNhdGlvbkluc2lnaHRzRW5kcG9pbnQoZW5kcG9pbnRVcmwpIHtcclxuICAgIHJldHVybiBhcnJJbmRleE9mKF9pbnRlcm5hbEVuZHBvaW50cywgZW5kcG9pbnRVcmxbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCkpICE9PSAtMTtcclxufVxyXG5leHBvcnQgdmFyIFV0aWwgPSB7XHJcbiAgICBOb3RTcGVjaWZpZWQ6IHN0ck5vdFNwZWNpZmllZCxcclxuICAgIGNyZWF0ZURvbUV2ZW50OiBjcmVhdGVEb21FdmVudCxcclxuICAgIGRpc2FibGVTdG9yYWdlOiB1dGxEaXNhYmxlU3RvcmFnZSxcclxuICAgIGlzSW50ZXJuYWxBcHBsaWNhdGlvbkluc2lnaHRzRW5kcG9pbnQ6IGlzSW50ZXJuYWxBcHBsaWNhdGlvbkluc2lnaHRzRW5kcG9pbnQsXHJcbiAgICBjYW5Vc2VMb2NhbFN0b3JhZ2U6IHV0bENhblVzZUxvY2FsU3RvcmFnZSxcclxuICAgIGdldFN0b3JhZ2U6IHV0bEdldExvY2FsU3RvcmFnZSxcclxuICAgIHNldFN0b3JhZ2U6IHV0bFNldExvY2FsU3RvcmFnZSxcclxuICAgIHJlbW92ZVN0b3JhZ2U6IHV0bFJlbW92ZVN0b3JhZ2UsXHJcbiAgICBjYW5Vc2VTZXNzaW9uU3RvcmFnZTogdXRsQ2FuVXNlU2Vzc2lvblN0b3JhZ2UsXHJcbiAgICBnZXRTZXNzaW9uU3RvcmFnZUtleXM6IHV0bEdldFNlc3Npb25TdG9yYWdlS2V5cyxcclxuICAgIGdldFNlc3Npb25TdG9yYWdlOiB1dGxHZXRTZXNzaW9uU3RvcmFnZSxcclxuICAgIHNldFNlc3Npb25TdG9yYWdlOiB1dGxTZXRTZXNzaW9uU3RvcmFnZSxcclxuICAgIHJlbW92ZVNlc3Npb25TdG9yYWdlOiB1dGxSZW1vdmVTZXNzaW9uU3RvcmFnZSxcclxuICAgIGRpc2FibGVDb29raWVzOiBjb3JlRGlzYWJsZUNvb2tpZXMsXHJcbiAgICBjYW5Vc2VDb29raWVzOiBjb3JlQ2FuVXNlQ29va2llcyxcclxuICAgIGRpc2FsbG93c1NhbWVTaXRlTm9uZTogdWFEaXNhbGxvd3NTYW1lU2l0ZU5vbmUsXHJcbiAgICBzZXRDb29raWU6IGNvcmVTZXRDb29raWUsXHJcbiAgICBzdHJpbmdUb0Jvb2xPckRlZmF1bHQ6IHN0cmluZ1RvQm9vbE9yRGVmYXVsdCxcclxuICAgIGdldENvb2tpZTogY29yZUdldENvb2tpZSxcclxuICAgIGRlbGV0ZUNvb2tpZTogY29yZURlbGV0ZUNvb2tpZSxcclxuICAgIHRyaW06IHN0clRyaW0sXHJcbiAgICBuZXdJZDogbmV3SWQsXHJcbiAgICByYW5kb20zMjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiByYW5kb20zMih0cnVlKTtcclxuICAgIH0sXHJcbiAgICBnZW5lcmF0ZVczQ0lkOiBnZW5lcmF0ZVczQ0lkLFxyXG4gICAgaXNBcnJheTogaXNBcnJheSxcclxuICAgIGlzRXJyb3I6IGlzRXJyb3IsXHJcbiAgICBpc0RhdGU6IGlzRGF0ZSxcclxuICAgIHRvSVNPU3RyaW5nRm9ySUU4OiB0b0lTT1N0cmluZyxcclxuICAgIGdldElFVmVyc2lvbjogZ2V0SUVWZXJzaW9uLFxyXG4gICAgbXNUb1RpbWVTcGFuOiBtc1RvVGltZVNwYW4sXHJcbiAgICBpc0Nyb3NzT3JpZ2luRXJyb3I6IGlzQ3Jvc3NPcmlnaW5FcnJvcixcclxuICAgIGR1bXA6IGR1bXBPYmosXHJcbiAgICBnZXRFeGNlcHRpb25OYW1lOiBjb3JlR2V0RXhjZXB0aW9uTmFtZSxcclxuICAgIGFkZEV2ZW50SGFuZGxlcjogYXR0YWNoRXZlbnQsXHJcbiAgICBJc0JlYWNvbkFwaVN1cHBvcnRlZDogaXNCZWFjb25zU3VwcG9ydGVkLFxyXG4gICAgZ2V0RXh0ZW5zaW9uOiBnZXRFeHRlbnNpb25CeU5hbWVcclxufTtcclxuZXhwb3J0IHZhciBVcmxIZWxwZXIgPSB7XHJcbiAgICBwYXJzZVVybDogdXJsUGFyc2VVcmwsXHJcbiAgICBnZXRBYnNvbHV0ZVVybDogdXJsR2V0QWJzb2x1dGVVcmwsXHJcbiAgICBnZXRQYXRoTmFtZTogdXJsR2V0UGF0aE5hbWUsXHJcbiAgICBnZXRDb21wbGV0ZVVybDogdXJsR2V0Q29tcGxldGVVcmwsXHJcbiAgICBwYXJzZUhvc3Q6IHVybFBhcnNlSG9zdCxcclxuICAgIHBhcnNlRnVsbEhvc3Q6IHVybFBhcnNlRnVsbEhvc3RcclxufTtcclxuZXhwb3J0IHZhciBDb3JyZWxhdGlvbklkSGVscGVyID0ge1xyXG4gICAgY29ycmVsYXRpb25JZFByZWZpeDogXCJjaWQtdjE6XCIsXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiBhIHJlcXVlc3QgdXJsIGlzIG5vdCBvbiBhIGV4Y2x1ZGVkIGRvbWFpbiBsaXN0IGFuZCBpZiBpdCBpcyBzYWZlIHRvIGFkZCBjb3JyZWxhdGlvbiBoZWFkZXJzLlxyXG4gICAgICogSGVhZGVycyBhcmUgYWx3YXlzIGluY2x1ZGVkIGlmIHRoZSBjdXJyZW50IGRvbWFpbiBtYXRjaGVzIHRoZSByZXF1ZXN0IGRvbWFpbi4gSWYgdGhleSBkbyBub3QgbWF0Y2ggKENPUlMpLFxyXG4gICAgICogdGhleSBhcmUgcmVnZXgtZWQgYWNyb3NzIGNvcnJlbGF0aW9uSGVhZGVyRG9tYWlucyBhbmQgY29ycmVsYXRpb25IZWFkZXJFeGNsdWRlZERvbWFpbnMgdG8gZGV0ZXJtaW5lIGlmIGhlYWRlcnMgYXJlIGluY2x1ZGVkLlxyXG4gICAgICogU29tZSBlbnZpcm9ubWVudHMgZG9uJ3QgZ2l2ZSBpbmZvcm1hdGlvbiBvbiBjdXJyZW50SG9zdCB2aWEgd2luZG93LmxvY2F0aW9uLmhvc3QgKGUuZy4gQ29yZG92YSkuIEluIHRoZXNlIGNhc2VzLCB0aGUgdXNlciBtdXN0XHJcbiAgICAgKiBtYW51YWxseSBzdXBwbHkgZG9tYWlucyB0byBpbmNsdWRlIGNvcnJlbGF0aW9uIGhlYWRlcnMgb24uIEVsc2UsIG5vIGhlYWRlcnMgd2lsbCBiZSBpbmNsdWRlZCBhdCBhbGwuXHJcbiAgICAgKi9cclxuICAgIGNhbkluY2x1ZGVDb3JyZWxhdGlvbkhlYWRlcjogZnVuY3Rpb24gKGNvbmZpZywgcmVxdWVzdFVybCwgY3VycmVudEhvc3QpIHtcclxuICAgICAgICBpZiAoIXJlcXVlc3RVcmwgfHwgKGNvbmZpZyAmJiBjb25maWcuZGlzYWJsZUNvcnJlbGF0aW9uSGVhZGVycykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZ1tfRFlOX0NPUlJFTEFUSU9OX0hFQURFUl9FMCAvKiBAbWluOiUyZWNvcnJlbGF0aW9uSGVhZGVyRXhjbHVkZVBhdHRlcm5zICovXSkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5jb3JyZWxhdGlvbkhlYWRlckV4Y2x1ZGVQYXR0ZXJuc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZ1tfRFlOX0NPUlJFTEFUSU9OX0hFQURFUl9FMCAvKiBAbWluOiUyZWNvcnJlbGF0aW9uSGVhZGVyRXhjbHVkZVBhdHRlcm5zICovXVtpXS50ZXN0KHJlcXVlc3RVcmwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByZXF1ZXN0SG9zdCA9IHVybFBhcnNlVXJsKHJlcXVlc3RVcmwpLmhvc3RbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCk7XHJcbiAgICAgICAgaWYgKHJlcXVlc3RIb3N0ICYmIChyZXF1ZXN0SG9zdFtfRFlOX0lOREVYX09GIC8qIEBtaW46JTJlaW5kZXhPZiAqL10oXCI6NDQzXCIpICE9PSAtMSB8fCByZXF1ZXN0SG9zdFtfRFlOX0lOREVYX09GIC8qIEBtaW46JTJlaW5kZXhPZiAqL10oXCI6ODBcIikgIT09IC0xKSkge1xyXG4gICAgICAgICAgICAvLyBbQnVnICMxMjYwXSBJRSBjYW4gaW5jbHVkZSB0aGUgcG9ydCBldmVuIGZvciBodHRwIGFuZCBodHRwcyBVUkxzIHNvIGlmIHByZXNlbnRcclxuICAgICAgICAgICAgLy8gdHJ5IGFuZCBwYXJzZSBpdCB0byByZW1vdmUgaWYgaXQgbWF0Y2hlcyB0aGUgZGVmYXVsdCBwcm90b2NvbCBwb3J0XHJcbiAgICAgICAgICAgIHJlcXVlc3RIb3N0ID0gKHVybFBhcnNlRnVsbEhvc3QocmVxdWVzdFVybCwgdHJ1ZSkgfHwgXCJcIilbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoIWNvbmZpZyB8fCAhY29uZmlnLmVuYWJsZUNvcnNDb3JyZWxhdGlvbikgJiYgKHJlcXVlc3RIb3N0ICYmIHJlcXVlc3RIb3N0ICE9PSBjdXJyZW50SG9zdCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgaW5jbHVkZWREb21haW5zID0gY29uZmlnICYmIGNvbmZpZy5jb3JyZWxhdGlvbkhlYWRlckRvbWFpbnM7XHJcbiAgICAgICAgaWYgKGluY2x1ZGVkRG9tYWlucykge1xyXG4gICAgICAgICAgICB2YXIgbWF0Y2hFeGlzdHNfMTtcclxuICAgICAgICAgICAgYXJyRm9yRWFjaChpbmNsdWRlZERvbWFpbnMsIGZ1bmN0aW9uIChkb21haW4pIHtcclxuICAgICAgICAgICAgICAgIHZhciByZWdleCA9IG5ldyBSZWdFeHAoZG9tYWluLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuXCIpLnJlcGxhY2UoL1xcKi9nLCBcIi4qXCIpKTtcclxuICAgICAgICAgICAgICAgIG1hdGNoRXhpc3RzXzEgPSBtYXRjaEV4aXN0c18xIHx8IHJlZ2V4LnRlc3QocmVxdWVzdEhvc3QpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKCFtYXRjaEV4aXN0c18xKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGV4Y2x1ZGVkRG9tYWlucyA9IGNvbmZpZyAmJiBjb25maWcuY29ycmVsYXRpb25IZWFkZXJFeGNsdWRlZERvbWFpbnM7XHJcbiAgICAgICAgaWYgKCFleGNsdWRlZERvbWFpbnMgfHwgZXhjbHVkZWREb21haW5zW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleGNsdWRlZERvbWFpbnNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dOyBpKyspIHtcclxuICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChleGNsdWRlZERvbWFpbnNbaV0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcL2csIFwiXFxcXFxcXFxcIikucmVwbGFjZSgvXFwuL2csIFwiXFxcXC5cIikucmVwbGFjZSgvXFwqL2csIFwiLipcIikpO1xyXG4gICAgICAgICAgICBpZiAocmVnZXgudGVzdChyZXF1ZXN0SG9zdCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiB3ZSBkb24ndCBrbm93IGFueXRoaW5nIGFib3V0IHRoZSByZXF1ZXN0SG9zdCwgcmVxdWlyZSB0aGUgdXNlciB0byB1c2UgaW5jbHVkZWQvZXhjbHVkZWREb21haW5zLlxyXG4gICAgICAgIC8vIFByZXZpb3VzbHkgd2UgYWx3YXlzIHJldHVybmVkIGZhbHNlIGZvciBhIGZhbHN5IHJlcXVlc3RIb3N0XHJcbiAgICAgICAgcmV0dXJuIHJlcXVlc3RIb3N0ICYmIHJlcXVlc3RIb3N0W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDA7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21iaW5lcyB0YXJnZXQgYXBwSWQgYW5kIHRhcmdldCByb2xlIG5hbWUgZnJvbSByZXNwb25zZSBoZWFkZXIuXHJcbiAgICAgKi9cclxuICAgIGdldENvcnJlbGF0aW9uQ29udGV4dDogZnVuY3Rpb24gKHJlc3BvbnNlSGVhZGVyKSB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlSGVhZGVyKSB7XHJcbiAgICAgICAgICAgIHZhciBjb3JyZWxhdGlvbklkID0gQ29ycmVsYXRpb25JZEhlbHBlci5nZXRDb3JyZWxhdGlvbkNvbnRleHRWYWx1ZShyZXNwb25zZUhlYWRlciwgUmVxdWVzdEhlYWRlcnNbMSAvKiBlUmVxdWVzdEhlYWRlcnMucmVxdWVzdENvbnRleHRUYXJnZXRLZXkgKi9dKTtcclxuICAgICAgICAgICAgaWYgKGNvcnJlbGF0aW9uSWQgJiYgY29ycmVsYXRpb25JZCAhPT0gQ29ycmVsYXRpb25JZEhlbHBlci5jb3JyZWxhdGlvbklkUHJlZml4KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29ycmVsYXRpb25JZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIEdldHMga2V5IGZyb20gY29ycmVsYXRpb24gcmVzcG9uc2UgaGVhZGVyXHJcbiAgICAgKi9cclxuICAgIGdldENvcnJlbGF0aW9uQ29udGV4dFZhbHVlOiBmdW5jdGlvbiAocmVzcG9uc2VIZWFkZXIsIGtleSkge1xyXG4gICAgICAgIGlmIChyZXNwb25zZUhlYWRlcikge1xyXG4gICAgICAgICAgICB2YXIga2V5VmFsdWVzID0gcmVzcG9uc2VIZWFkZXJbX0RZTl9TUExJVCAvKiBAbWluOiUyZXNwbGl0ICovXShcIixcIik7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5VmFsdWVzW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTsgKytpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIga2V5VmFsdWUgPSBrZXlWYWx1ZXNbaV1bX0RZTl9TUExJVCAvKiBAbWluOiUyZXNwbGl0ICovXShcIj1cIik7XHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5VmFsdWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID09PSAyICYmIGtleVZhbHVlWzBdID09PSBrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5VmFsdWVbMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbmV4cG9ydCBmdW5jdGlvbiBBamF4SGVscGVyUGFyc2VEZXBlbmRlbmN5UGF0aChsb2dnZXIsIGFic29sdXRlVXJsLCBtZXRob2QsIGNvbW1hbmROYW1lKSB7XHJcbiAgICB2YXIgdGFyZ2V0LCBuYW1lID0gY29tbWFuZE5hbWUsIGRhdGEgPSBjb21tYW5kTmFtZTtcclxuICAgIGlmIChhYnNvbHV0ZVVybCAmJiBhYnNvbHV0ZVVybFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgdmFyIHBhcnNlZFVybCA9IHVybFBhcnNlVXJsKGFic29sdXRlVXJsKTtcclxuICAgICAgICB0YXJnZXQgPSBwYXJzZWRVcmwuaG9zdDtcclxuICAgICAgICBpZiAoIW5hbWUpIHtcclxuICAgICAgICAgICAgaWYgKHBhcnNlZFVybFtfRFlOX1BBVEhOQU1FIC8qIEBtaW46JTJlcGF0aG5hbWUgKi9dICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoTmFtZSA9IChwYXJzZWRVcmwucGF0aG5hbWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID09PSAwKSA/IFwiL1wiIDogcGFyc2VkVXJsW19EWU5fUEFUSE5BTUUgLyogQG1pbjolMmVwYXRobmFtZSAqL107XHJcbiAgICAgICAgICAgICAgICBpZiAocGF0aE5hbWUuY2hhckF0KDApICE9PSBcIi9cIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGhOYW1lID0gXCIvXCIgKyBwYXRoTmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGRhdGEgPSBwYXJzZWRVcmxbX0RZTl9QQVRITkFNRSAvKiBAbWluOiUyZXBhdGhuYW1lICovXTtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCBtZXRob2QgPyBtZXRob2QgKyBcIiBcIiArIHBhdGhOYW1lIDogcGF0aE5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IGRhdGFTYW5pdGl6ZVN0cmluZyhsb2dnZXIsIGFic29sdXRlVXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHRhcmdldCA9IGNvbW1hbmROYW1lO1xyXG4gICAgICAgIG5hbWUgPSBjb21tYW5kTmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXHJcbiAgICAgICAgbmFtZTogbmFtZSxcclxuICAgICAgICBkYXRhOiBkYXRhXHJcbiAgICB9O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBkYXRlVGltZVV0aWxzTm93KCkge1xyXG4gICAgLy8gcmV0dXJucyB0aGUgd2luZG93IG9yIHdlYndvcmtlciBwZXJmb3JtYW5jZSBvYmplY3RcclxuICAgIHZhciBwZXJmID0gZ2V0UGVyZm9ybWFuY2UoKTtcclxuICAgIGlmIChwZXJmICYmIHBlcmYubm93ICYmIHBlcmYudGltaW5nKSB7XHJcbiAgICAgICAgdmFyIG5vdyA9IHBlcmYubm93KCkgKyBwZXJmLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ7XHJcbiAgICAgICAgLy8gS25vd24gaXNzdWUgd2l0aCBJRSB3aGVyZSB0aGlzIGNhbGN1bGF0aW9uIGNhbiBiZSBuZWdhdGl2ZSwgc28gaWYgaXQgaXMgdGhlbiBpZ25vcmUgYW5kIGZhbGxiYWNrXHJcbiAgICAgICAgaWYgKG5vdyA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5vdztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZU5vdygpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBkYXRlVGltZVV0aWxzRHVyYXRpb24oc3RhcnQsIGVuZCkge1xyXG4gICAgdmFyIHJlc3VsdCA9IG51bGw7XHJcbiAgICBpZiAoc3RhcnQgIT09IDAgJiYgZW5kICE9PSAwICYmICFpc051bGxPclVuZGVmaW5lZChzdGFydCkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKGVuZCkpIHtcclxuICAgICAgICByZXN1bHQgPSBlbmQgLSBzdGFydDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLyoqXHJcbiAqIEEgdXRpbGl0eSBjbGFzcyB0aGF0IGhlbHBzIGdldHRpbmcgdGltZSByZWxhdGVkIHBhcmFtZXRlcnNcclxuICovXHJcbmV4cG9ydCB2YXIgRGF0ZVRpbWVVdGlscyA9IHtcclxuICAgIE5vdzogZGF0ZVRpbWVVdGlsc05vdyxcclxuICAgIEdldER1cmF0aW9uOiBkYXRlVGltZVV0aWxzRHVyYXRpb25cclxufTtcclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBJRGlzdHJpYnV0ZWRUcmFjZUNvbnRleHQgZnJvbSBhbiBvcHRpb25hbCB0ZWxlbWV0cnlUcmFjZVxyXG4gKiBAcGFyYW0gdGVsZW1ldHJ5VHJhY2UgLSBUaGUgdGVsZW1ldHJ5VHJhY2UgaW5zdGFuY2UgdGhhdCBpcyBiZWluZyB3cmFwcGVkXHJcbiAqIEBwYXJhbSBwYXJlbnRDdHggLSBBbiBvcHRpb25hbCBwYXJlbnQgZGlzdHJpYnV0ZWQgdHJhY2UgaW5zdGFuY2UsIGFsbW9zdCBhbHdheXMgdW5kZWZpbmVkIGFzIHRoaXMgc2NlbmFyaW8gaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlIHByb3BlcnR5IGhhbmRsZXJzLlxyXG4gKiBAcmV0dXJucyBBIG5ldyBJRGlzdHJpYnV0ZWRUcmFjZUNvbnRleHQgaW5zdGFuY2UgdGhhdCBpcyBiYWNrZWQgYnkgdGhlIHRlbGVtZXRyeVRyYWNlIG9yIHRlbXBvcmFyeSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dEZyb21UcmFjZSh0ZWxlbWV0cnlUcmFjZSwgcGFyZW50Q3R4KSB7XHJcbiAgICB2YXIgdHJhY2UgPSB0ZWxlbWV0cnlUcmFjZSB8fCB7fTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgZ2V0TmFtZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJhY2VbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL107XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzZXROYW1lOiBmdW5jdGlvbiAobmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgcGFyZW50Q3R4ICYmIHBhcmVudEN0eC5zZXROYW1lKG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgdHJhY2VbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gPSBuZXdWYWx1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGdldFRyYWNlSWQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYWNlLnRyYWNlSUQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzZXRUcmFjZUlkOiBmdW5jdGlvbiAobmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgcGFyZW50Q3R4ICYmIHBhcmVudEN0eC5zZXRUcmFjZUlkKG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGlzVmFsaWRUcmFjZUlkKG5ld1ZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgdHJhY2UudHJhY2VJRCA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXRTcGFuSWQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYWNlLnBhcmVudElEO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2V0U3BhbklkOiBmdW5jdGlvbiAobmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgcGFyZW50Q3R4ICYmIHBhcmVudEN0eC5zZXRTcGFuSWQobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZFNwYW5JZChuZXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRyYWNlLnBhcmVudElEID0gbmV3VmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGdldFRyYWNlRmxhZ3M6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYWNlLnRyYWNlRmxhZ3M7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzZXRUcmFjZUZsYWdzOiBmdW5jdGlvbiAobmV3VHJhY2VGbGFncykge1xyXG4gICAgICAgICAgICBwYXJlbnRDdHggJiYgcGFyZW50Q3R4LnNldFRyYWNlRmxhZ3MobmV3VHJhY2VGbGFncyk7XHJcbiAgICAgICAgICAgIHRyYWNlLnRyYWNlRmxhZ3MgPSBuZXdUcmFjZUZsYWdzO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VXRpbC5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IGFyclJlZHVjZSwgb2JqS2V5cyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBERUZBVUxUX0JSRUVaRV9FTkRQT0lOVCB9IGZyb20gXCIuL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBfRFlOX0lOR0VTVElPTkVORFBPSU5ULCBfRFlOX0xFTkdUSCwgX0RZTl9TUExJVCwgX0RZTl9UT19MT1dFUl9DQVNFIH0gZnJvbSBcIi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBfRklFTERTX1NFUEFSQVRPUiA9IFwiO1wiO1xyXG52YXIgX0ZJRUxEX0tFWV9WQUxVRV9TRVBBUkFUT1IgPSBcIj1cIjtcclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29ubmVjdGlvblN0cmluZyhjb25uZWN0aW9uU3RyaW5nKSB7XHJcbiAgICBpZiAoIWNvbm5lY3Rpb25TdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgICB2YXIga3ZQYWlycyA9IGNvbm5lY3Rpb25TdHJpbmdbX0RZTl9TUExJVCAvKiBAbWluOiUyZXNwbGl0ICovXShfRklFTERTX1NFUEFSQVRPUik7XHJcbiAgICB2YXIgcmVzdWx0ID0gYXJyUmVkdWNlKGt2UGFpcnMsIGZ1bmN0aW9uIChmaWVsZHMsIGt2KSB7XHJcbiAgICAgICAgdmFyIGt2UGFydHMgPSBrdltfRFlOX1NQTElUIC8qIEBtaW46JTJlc3BsaXQgKi9dKF9GSUVMRF9LRVlfVkFMVUVfU0VQQVJBVE9SKTtcclxuICAgICAgICBpZiAoa3ZQYXJ0c1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPT09IDIpIHsgLy8gb25seSBzYXZlIGZpZWxkcyB3aXRoIHZhbGlkIGZvcm1hdHNcclxuICAgICAgICAgICAgdmFyIGtleSA9IGt2UGFydHNbMF1bX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCk7XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGt2UGFydHNbMV07XHJcbiAgICAgICAgICAgIGZpZWxkc1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWVsZHM7XHJcbiAgICB9LCB7fSk7XHJcbiAgICBpZiAob2JqS2V5cyhyZXN1bHQpW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICAvLyB0aGlzIGlzIGEgdmFsaWQgY29ubmVjdGlvbiBzdHJpbmcsIHNvIHBhcnNlIHRoZSByZXN1bHRzXHJcbiAgICAgICAgaWYgKHJlc3VsdC5lbmRwb2ludHN1ZmZpeCkge1xyXG4gICAgICAgICAgICAvLyB1c2UgZW5kcG9pbnQgc3VmZml4IHdoZXJlIG92ZXJyaWRlcyBhcmUgbm90IHByb3ZpZGVkXHJcbiAgICAgICAgICAgIHZhciBsb2NhdGlvblByZWZpeCA9IHJlc3VsdC5sb2NhdGlvbiA/IHJlc3VsdC5sb2NhdGlvbiArIFwiLlwiIDogXCJcIjtcclxuICAgICAgICAgICAgcmVzdWx0W19EWU5fSU5HRVNUSU9ORU5EUE9JTlQgLyogQG1pbjolMmVpbmdlc3Rpb25lbmRwb2ludCAqL10gPSByZXN1bHRbX0RZTl9JTkdFU1RJT05FTkRQT0lOVCAvKiBAbWluOiUyZWluZ2VzdGlvbmVuZHBvaW50ICovXSB8fCAoXCJodHRwczovL1wiICsgbG9jYXRpb25QcmVmaXggKyBcImRjLlwiICsgcmVzdWx0LmVuZHBvaW50c3VmZml4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gYXBwbHkgdGhlIGRlZmF1bHQgZW5kcG9pbnRzXHJcbiAgICAgICAgcmVzdWx0W19EWU5fSU5HRVNUSU9ORU5EUE9JTlQgLyogQG1pbjolMmVpbmdlc3Rpb25lbmRwb2ludCAqL10gPSByZXN1bHRbX0RZTl9JTkdFU1RJT05FTkRQT0lOVCAvKiBAbWluOiUyZWluZ2VzdGlvbmVuZHBvaW50ICovXSB8fCBERUZBVUxUX0JSRUVaRV9FTkRQT0lOVDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuZXhwb3J0IHZhciBDb25uZWN0aW9uU3RyaW5nUGFyc2VyID0ge1xyXG4gICAgcGFyc2U6IHBhcnNlQ29ubmVjdGlvblN0cmluZ1xyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db25uZWN0aW9uU3RyaW5nUGFyc2VyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgdG9JU09TdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgc3RyTm90U3BlY2lmaWVkIH0gZnJvbSBcIi4uLy4uL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBfRFlOX05BTUUgfSBmcm9tIFwiLi4vLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGRhdGFTYW5pdGl6ZVN0cmluZyB9IGZyb20gXCIuL0RhdGFTYW5pdGl6ZXJcIjtcclxudmFyIEVudmVsb3BlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRlbGVtZXRyeSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBFbnZlbG9wZShsb2dnZXIsIGRhdGEsIG5hbWUpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGYudmVyID0gMTtcclxuICAgICAgICBfc2VsZi5zYW1wbGVSYXRlID0gMTAwLjA7XHJcbiAgICAgICAgX3NlbGYudGFncyA9IHt9O1xyXG4gICAgICAgIF9zZWxmW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dID0gZGF0YVNhbml0aXplU3RyaW5nKGxvZ2dlciwgbmFtZSkgfHwgc3RyTm90U3BlY2lmaWVkO1xyXG4gICAgICAgIF9zZWxmLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgIF9zZWxmLnRpbWUgPSB0b0lTT1N0cmluZyhuZXcgRGF0ZSgpKTtcclxuICAgICAgICBfc2VsZi5haURhdGFDb250cmFjdCA9IHtcclxuICAgICAgICAgICAgdGltZTogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIGlLZXk6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBuYW1lOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAgc2FtcGxlUmF0ZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChfdGhpcy5zYW1wbGVSYXRlID09PSAxMDApID8gNCAvKiBGaWVsZFR5cGUuSGlkZGVuICovIDogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi87XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRhZ3M6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBkYXRhOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqL1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gRW52ZWxvcGU7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEVudmVsb3BlIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudmVsb3BlLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgc3RyTm90U3BlY2lmaWVkIH0gZnJvbSBcIi4uL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBfRFlOX01FQVNVUkVNRU5UUywgX0RZTl9OQU1FLCBfRFlOX1BST1BFUlRJRVMgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGRhdGFTYW5pdGl6ZU1lYXN1cmVtZW50cywgZGF0YVNhbml0aXplUHJvcGVydGllcywgZGF0YVNhbml0aXplU3RyaW5nIH0gZnJvbSBcIi4vQ29tbW9uL0RhdGFTYW5pdGl6ZXJcIjtcclxudmFyIEV2ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBFdmVudFRlbGVtZXRyeSBvYmplY3RcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gRXZlbnQobG9nZ2VyLCBuYW1lLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMpIHtcclxuICAgICAgICB0aGlzLmFpRGF0YUNvbnRyYWN0ID0ge1xyXG4gICAgICAgICAgICB2ZXI6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBuYW1lOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAgcHJvcGVydGllczogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgbWVhc3VyZW1lbnRzOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovXHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIgX3NlbGYgPSB0aGlzO1xyXG4gICAgICAgIF9zZWxmLnZlciA9IDI7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCBuYW1lKSB8fCBzdHJOb3RTcGVjaWZpZWQ7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9QUk9QRVJUSUVTIC8qIEBtaW46JTJlcHJvcGVydGllcyAqL10gPSBkYXRhU2FuaXRpemVQcm9wZXJ0aWVzKGxvZ2dlciwgcHJvcGVydGllcyk7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9NRUFTVVJFTUVOVFMgLyogQG1pbjolMmVtZWFzdXJlbWVudHMgKi9dID0gZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzKGxvZ2dlciwgbWVhc3VyZW1lbnRzKTtcclxuICAgIH1cclxuICAgIEV2ZW50LmVudmVsb3BlVHlwZSA9IFwiTWljcm9zb2Z0LkFwcGxpY2F0aW9uSW5zaWdodHMuezB9LkV2ZW50XCI7XHJcbiAgICBFdmVudC5kYXRhVHlwZSA9IFwiRXZlbnREYXRhXCI7XHJcbiAgICByZXR1cm4gRXZlbnQ7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEV2ZW50IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUV2ZW50LmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgX19hc3NpZ25GbiBhcyBfX2Fzc2lnbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtc2hpbXNcIjtcclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgYXJyTWFwLCBpc0FycmF5LCBpc0Vycm9yLCBpc0Z1bmN0aW9uLCBpc051bGxPclVuZGVmaW5lZCwgaXNPYmplY3QsIGlzU3RyaW5nLCBzdHJUcmltIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmltcG9ydCB7IHN0ck5vdFNwZWNpZmllZCB9IGZyb20gXCIuLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgX0RZTl9BU1NFTUJMWSwgX0RZTl9FWENFUFRJT05TLCBfRFlOX0ZJTEVfTkFNRSwgX0RZTl9IQVNfRlVMTF9TVEFDSywgX0RZTl9JTkRFWF9PRiwgX0RZTl9JU19NQU5VQUwsIF9EWU5fTEVOR1RILCBfRFlOX0xFVkVMLCBfRFlOX0xJTkUsIF9EWU5fTUVBU1VSRU1FTlRTLCBfRFlOX01FU1NBR0UsIF9EWU5fTUVUSE9ELCBfRFlOX05BTUUsIF9EWU5fUEFSU0VEX1NUQUNLLCBfRFlOX1BST0JMRU1fR1JPVVAsIF9EWU5fUFJPUEVSVElFUywgX0RZTl9TRVZFUklUWV9MRVZFTCwgX0RZTl9TSVpFX0lOX0JZVEVTLCBfRFlOX1NQTElULCBfRFlOX1NUUklOR0lGWSwgX0RZTl9UT19TVFJJTkcsIF9EWU5fVFlQRV9OQU1FLCBfRFlOX19DUkVBVEVfRlJPTV9JTlRFUkZBMSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZGF0YVNhbml0aXplRXhjZXB0aW9uLCBkYXRhU2FuaXRpemVNZWFzdXJlbWVudHMsIGRhdGFTYW5pdGl6ZU1lc3NhZ2UsIGRhdGFTYW5pdGl6ZVByb3BlcnRpZXMsIGRhdGFTYW5pdGl6ZVN0cmluZyB9IGZyb20gXCIuL0NvbW1vbi9EYXRhU2FuaXRpemVyXCI7XHJcbnZhciBOb01ldGhvZCA9IFwiPG5vX21ldGhvZD5cIjtcclxudmFyIHN0ckVycm9yID0gXCJlcnJvclwiO1xyXG52YXIgc3RyU3RhY2sgPSBcInN0YWNrXCI7XHJcbnZhciBzdHJTdGFja0RldGFpbHMgPSBcInN0YWNrRGV0YWlsc1wiO1xyXG52YXIgc3RyRXJyb3JTcmMgPSBcImVycm9yU3JjXCI7XHJcbnZhciBzdHJNZXNzYWdlID0gXCJtZXNzYWdlXCI7XHJcbnZhciBzdHJEZXNjcmlwdGlvbiA9IFwiZGVzY3JpcHRpb25cIjtcclxuZnVuY3Rpb24gX3N0cmluZ2lmeSh2YWx1ZSwgY29udmVydFRvU3RyaW5nKSB7XHJcbiAgICB2YXIgcmVzdWx0ID0gdmFsdWU7XHJcbiAgICBpZiAocmVzdWx0ICYmICFpc1N0cmluZyhyZXN1bHQpKSB7XHJcbiAgICAgICAgaWYgKEpTT04gJiYgSlNPTltfRFlOX1NUUklOR0lGWSAvKiBAbWluOiUyZXN0cmluZ2lmeSAqL10pIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gSlNPTltfRFlOX1NUUklOR0lGWSAvKiBAbWluOiUyZXN0cmluZ2lmeSAqL10odmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoY29udmVydFRvU3RyaW5nICYmICghcmVzdWx0IHx8IHJlc3VsdCA9PT0gXCJ7fVwiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odmFsdWVbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWVbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFwiXCIgKyB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gXCJcIiArIHZhbHVlICsgXCIgLSAoTWlzc2luZyBKU09OLnN0cmluZ2lmeSlcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0IHx8IFwiXCI7XHJcbn1cclxuZnVuY3Rpb24gX2Zvcm1hdE1lc3NhZ2UodGhlRXZlbnQsIGVycm9yVHlwZSkge1xyXG4gICAgdmFyIGV2dE1lc3NhZ2UgPSB0aGVFdmVudDtcclxuICAgIGlmICh0aGVFdmVudCkge1xyXG4gICAgICAgIGlmIChldnRNZXNzYWdlICYmICFpc1N0cmluZyhldnRNZXNzYWdlKSkge1xyXG4gICAgICAgICAgICBldnRNZXNzYWdlID0gdGhlRXZlbnRbc3RyTWVzc2FnZV0gfHwgdGhlRXZlbnRbc3RyRGVzY3JpcHRpb25dIHx8IGV2dE1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgbWVzc2FnZSBpcyBhIHN0cmluZ1xyXG4gICAgICAgIGlmIChldnRNZXNzYWdlICYmICFpc1N0cmluZyhldnRNZXNzYWdlKSkge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHByZWZlci1jb25kaXRpb25hbC1leHByZXNzaW9uXHJcbiAgICAgICAgICAgIGV2dE1lc3NhZ2UgPSBfc3RyaW5naWZ5KGV2dE1lc3NhZ2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhlRXZlbnRbXCJmaWxlbmFtZVwiXSkge1xyXG4gICAgICAgICAgICAvLyBMb29rcyBsaWtlIGFuIGV2ZW50IG9iamVjdCB3aXRoIGZpbGVuYW1lXHJcbiAgICAgICAgICAgIGV2dE1lc3NhZ2UgPSBldnRNZXNzYWdlICsgXCIgQFwiICsgKHRoZUV2ZW50W1wiZmlsZW5hbWVcIl0gfHwgXCJcIikgKyBcIjpcIiArICh0aGVFdmVudFtcImxpbmVub1wiXSB8fCBcIj9cIikgKyBcIjpcIiArICh0aGVFdmVudFtcImNvbG5vXCJdIHx8IFwiP1wiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFkZCB0aGUgZXJyb3IgdHlwZSB0byB0aGUgbWVzc2FnZSBpZiBpdCBkb2VzIGFscmVhZHkgYXBwZWFyIHRvIGJlIHByZXNlbnRcclxuICAgIGlmIChlcnJvclR5cGUgJiYgZXJyb3JUeXBlICE9PSBcIlN0cmluZ1wiICYmIGVycm9yVHlwZSAhPT0gXCJPYmplY3RcIiAmJiBlcnJvclR5cGUgIT09IFwiRXJyb3JcIiAmJiAoZXZ0TWVzc2FnZSB8fCBcIlwiKVtfRFlOX0lOREVYX09GIC8qIEBtaW46JTJlaW5kZXhPZiAqL10oZXJyb3JUeXBlKSA9PT0gLTEpIHtcclxuICAgICAgICBldnRNZXNzYWdlID0gZXJyb3JUeXBlICsgXCI6IFwiICsgZXZ0TWVzc2FnZTtcclxuICAgIH1cclxuICAgIHJldHVybiBldnRNZXNzYWdlIHx8IFwiXCI7XHJcbn1cclxuZnVuY3Rpb24gX2lzRXhjZXB0aW9uRGV0YWlsc0ludGVybmFsKHZhbHVlKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiaGFzRnVsbFN0YWNrXCIgaW4gdmFsdWUgJiYgXCJ0eXBlTmFtZVwiIGluIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdpdGggc29tZSBuYXRpdmUgYnJvd3NlciBvYmplY3RzLCBidXQgc2hvdWxkIG5vdCBoYXBwZW4gZm9yIHRoZSB0eXBlIHdlIGFyZSBjaGVja2luZyBmb3JcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBfaXNFeGNlcHRpb25JbnRlcm5hbCh2YWx1ZSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXCJ2ZXJcIiBpbiB2YWx1ZSAmJiBcImV4Y2VwdGlvbnNcIiBpbiB2YWx1ZSAmJiBcInByb3BlcnRpZXNcIiBpbiB2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gd2l0aCBzb21lIG5hdGl2ZSBicm93c2VyIG9iamVjdHMsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgdGhlIHR5cGUgd2UgYXJlIGNoZWNraW5nIGZvclxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbmZ1bmN0aW9uIF9pc1N0YWNrRGV0YWlscyhkZXRhaWxzKSB7XHJcbiAgICByZXR1cm4gZGV0YWlscyAmJiBkZXRhaWxzLnNyYyAmJiBpc1N0cmluZyhkZXRhaWxzLnNyYykgJiYgZGV0YWlscy5vYmogJiYgaXNBcnJheShkZXRhaWxzLm9iaik7XHJcbn1cclxuZnVuY3Rpb24gX2NvbnZlcnRTdGFja09iaihlcnJvclN0YWNrKSB7XHJcbiAgICB2YXIgc3JjID0gZXJyb3JTdGFjayB8fCBcIlwiO1xyXG4gICAgaWYgKCFpc1N0cmluZyhzcmMpKSB7XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKHNyY1tzdHJTdGFja10pKSB7XHJcbiAgICAgICAgICAgIHNyYyA9IHNyY1tzdHJTdGFja107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzcmMgPSBcIlwiICsgc3JjO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciBpdGVtcyA9IHNyY1tfRFlOX1NQTElUIC8qIEBtaW46JTJlc3BsaXQgKi9dKFwiXFxuXCIpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBzcmM6IHNyYyxcclxuICAgICAgICBvYmo6IGl0ZW1zXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRPcGVyYVN0YWNrKGVycm9yTWVzc2FnZSkge1xyXG4gICAgdmFyIHN0YWNrID0gW107XHJcbiAgICB2YXIgbGluZXMgPSBlcnJvck1lc3NhZ2VbX0RZTl9TUExJVCAvKiBAbWluOiUyZXNwbGl0ICovXShcIlxcblwiKTtcclxuICAgIGZvciAodmFyIGxwID0gMDsgbHAgPCBsaW5lc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107IGxwKyspIHtcclxuICAgICAgICB2YXIgZW50cnkgPSBsaW5lc1tscF07XHJcbiAgICAgICAgaWYgKGxpbmVzW2xwICsgMV0pIHtcclxuICAgICAgICAgICAgZW50cnkgKz0gXCJAXCIgKyBsaW5lc1tscCArIDFdO1xyXG4gICAgICAgICAgICBscCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdGFjay5wdXNoKGVudHJ5KTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgc3JjOiBlcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgb2JqOiBzdGFja1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBfZ2V0U3RhY2tGcm9tRXJyb3JPYmooZXJyb3JPYmopIHtcclxuICAgIHZhciBkZXRhaWxzID0gbnVsbDtcclxuICAgIGlmIChlcnJvck9iaikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8qIFVzaW5nIGJyYWNrZXQgbm90YXRpb24gaXMgc3VwcG9ydCBvbGRlciBicm93c2VycyAoSUUgNy84IC0tIGRvbnQgcmVtZW1iZXIgdGhlIHZlcnNpb24pIHRoYXQgdGhyb3cgd2hlbiB1c2luZyBkb3RcclxuICAgICAgICAgICAgbm90YXRpb24gZm9yIHVuZGVmaW5lZCBvYmplY3RzIGFuZCB3ZSBkb24ndCB3YW50IHRvIGxvb3NlIHRoZSBlcnJvciBmcm9tIGJlaW5nIHJlcG9ydGVkICovXHJcbiAgICAgICAgICAgIGlmIChlcnJvck9ialtzdHJTdGFja10pIHtcclxuICAgICAgICAgICAgICAgIC8vIENocm9tZS9GaXJlZm94XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzID0gX2NvbnZlcnRTdGFja09iaihlcnJvck9ialtzdHJTdGFja10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGVycm9yT2JqW3N0ckVycm9yXSAmJiBlcnJvck9ialtzdHJFcnJvcl1bc3RyU3RhY2tdKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBFZGdlIGVycm9yIGV2ZW50IHByb3ZpZGVzIHRoZSBzdGFjayBhbmQgZXJyb3Igb2JqZWN0XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzID0gX2NvbnZlcnRTdGFja09iaihlcnJvck9ialtzdHJFcnJvcl1bc3RyU3RhY2tdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChlcnJvck9ialtcImV4Y2VwdGlvblwiXSAmJiBlcnJvck9iai5leGNlcHRpb25bc3RyU3RhY2tdKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzID0gX2NvbnZlcnRTdGFja09iaihlcnJvck9iai5leGNlcHRpb25bc3RyU3RhY2tdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChfaXNTdGFja0RldGFpbHMoZXJyb3JPYmopKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzID0gZXJyb3JPYmo7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoX2lzU3RhY2tEZXRhaWxzKGVycm9yT2JqW3N0clN0YWNrRGV0YWlsc10pKSB7XHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzID0gZXJyb3JPYmpbc3RyU3RhY2tEZXRhaWxzXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cgJiYgd2luZG93W1wib3BlcmFcIl0gJiYgZXJyb3JPYmpbc3RyTWVzc2FnZV0pIHtcclxuICAgICAgICAgICAgICAgIC8vIE9wZXJhXHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzID0gX2dldE9wZXJhU3RhY2soZXJyb3JPYmpbX0RZTl9NRVNTQUdFIC8qIEBtaW46JTJlbWVzc2FnZSAqL10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGVycm9yT2JqW1wicmVhc29uXCJdICYmIGVycm9yT2JqLnJlYXNvbltzdHJTdGFja10pIHtcclxuICAgICAgICAgICAgICAgIC8vIFVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25cclxuICAgICAgICAgICAgICAgIGRldGFpbHMgPSBfY29udmVydFN0YWNrT2JqKGVycm9yT2JqLnJlYXNvbltzdHJTdGFja10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGVycm9yT2JqKSkge1xyXG4gICAgICAgICAgICAgICAgZGV0YWlscyA9IF9jb252ZXJ0U3RhY2tPYmooZXJyb3JPYmopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGV2dE1lc3NhZ2UgPSBlcnJvck9ialtzdHJNZXNzYWdlXSB8fCBlcnJvck9ialtzdHJEZXNjcmlwdGlvbl0gfHwgXCJcIjtcclxuICAgICAgICAgICAgICAgIGlmIChpc1N0cmluZyhlcnJvck9ialtzdHJFcnJvclNyY10pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dE1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0TWVzc2FnZSArPSBcIlxcblwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBldnRNZXNzYWdlICs9IFwiIGZyb20gXCIgKyBlcnJvck9ialtzdHJFcnJvclNyY107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZ0TWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBfY29udmVydFN0YWNrT2JqKGV2dE1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkIHNvIHRvIGF2b2lkIGZhaWxpbmcgdG8gcmVwb3J0IGFueSBlcnJvciBsZXRzIHN3YWxsb3cgdGhlIGV4Y2VwdGlvblxyXG4gICAgICAgICAgICAvLyBhbmQgZmFsbGJhY2sgdG8gdGhlIGNhbGxlZS9jYWxsZXIgbWV0aG9kXHJcbiAgICAgICAgICAgIGRldGFpbHMgPSBfY29udmVydFN0YWNrT2JqKGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkZXRhaWxzIHx8IHtcclxuICAgICAgICBzcmM6IFwiXCIsXHJcbiAgICAgICAgb2JqOiBudWxsXHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIF9mb3JtYXRTdGFja1RyYWNlKHN0YWNrRGV0YWlscykge1xyXG4gICAgdmFyIHN0YWNrID0gXCJcIjtcclxuICAgIGlmIChzdGFja0RldGFpbHMpIHtcclxuICAgICAgICBpZiAoc3RhY2tEZXRhaWxzLm9iaikge1xyXG4gICAgICAgICAgICBhcnJGb3JFYWNoKHN0YWNrRGV0YWlscy5vYmosIGZ1bmN0aW9uIChlbnRyeSkge1xyXG4gICAgICAgICAgICAgICAgc3RhY2sgKz0gZW50cnkgKyBcIlxcblwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHN0YWNrID0gc3RhY2tEZXRhaWxzLnNyYyB8fCBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdGFjaztcclxufVxyXG5mdW5jdGlvbiBfcGFyc2VTdGFjayhzdGFjaykge1xyXG4gICAgdmFyIHBhcnNlZFN0YWNrO1xyXG4gICAgdmFyIGZyYW1lcyA9IHN0YWNrLm9iajtcclxuICAgIGlmIChmcmFtZXMgJiYgZnJhbWVzW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICBwYXJzZWRTdGFjayA9IFtdO1xyXG4gICAgICAgIHZhciBsZXZlbF8xID0gMDtcclxuICAgICAgICB2YXIgdG90YWxTaXplSW5CeXRlc18xID0gMDtcclxuICAgICAgICBhcnJGb3JFYWNoKGZyYW1lcywgZnVuY3Rpb24gKGZyYW1lKSB7XHJcbiAgICAgICAgICAgIHZhciB0aGVGcmFtZSA9IGZyYW1lW19EWU5fVE9fU1RSSU5HIC8qIEBtaW46JTJldG9TdHJpbmcgKi9dKCk7XHJcbiAgICAgICAgICAgIGlmIChfU3RhY2tGcmFtZS5yZWdleC50ZXN0KHRoZUZyYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHBhcnNlZEZyYW1lID0gbmV3IF9TdGFja0ZyYW1lKHRoZUZyYW1lLCBsZXZlbF8xKyspO1xyXG4gICAgICAgICAgICAgICAgdG90YWxTaXplSW5CeXRlc18xICs9IHBhcnNlZEZyYW1lW19EWU5fU0laRV9JTl9CWVRFUyAvKiBAbWluOiUyZXNpemVJbkJ5dGVzICovXTtcclxuICAgICAgICAgICAgICAgIHBhcnNlZFN0YWNrLnB1c2gocGFyc2VkRnJhbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gRFAgQ29uc3RyYWludCAtIGV4Y2VwdGlvbiBwYXJzZWQgc3RhY2sgbXVzdCBiZSA8IDMyS0JcclxuICAgICAgICAvLyByZW1vdmUgZnJhbWVzIGZyb20gdGhlIG1pZGRsZSB0byBtZWV0IHRoZSB0aHJlc2hvbGRcclxuICAgICAgICB2YXIgZXhjZXB0aW9uUGFyc2VkU3RhY2tUaHJlc2hvbGQgPSAzMiAqIDEwMjQ7XHJcbiAgICAgICAgaWYgKHRvdGFsU2l6ZUluQnl0ZXNfMSA+IGV4Y2VwdGlvblBhcnNlZFN0YWNrVGhyZXNob2xkKSB7XHJcbiAgICAgICAgICAgIHZhciBsZWZ0ID0gMDtcclxuICAgICAgICAgICAgdmFyIHJpZ2h0ID0gcGFyc2VkU3RhY2tbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dIC0gMTtcclxuICAgICAgICAgICAgdmFyIHNpemUgPSAwO1xyXG4gICAgICAgICAgICB2YXIgYWNjZXB0ZWRMZWZ0ID0gbGVmdDtcclxuICAgICAgICAgICAgdmFyIGFjY2VwdGVkUmlnaHQgPSByaWdodDtcclxuICAgICAgICAgICAgd2hpbGUgKGxlZnQgPCByaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgc2l6ZVxyXG4gICAgICAgICAgICAgICAgdmFyIGxTaXplID0gcGFyc2VkU3RhY2tbbGVmdF1bX0RZTl9TSVpFX0lOX0JZVEVTIC8qIEBtaW46JTJlc2l6ZUluQnl0ZXMgKi9dO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJTaXplID0gcGFyc2VkU3RhY2tbcmlnaHRdW19EWU5fU0laRV9JTl9CWVRFUyAvKiBAbWluOiUyZXNpemVJbkJ5dGVzICovXTtcclxuICAgICAgICAgICAgICAgIHNpemUgKz0gbFNpemUgKyByU2l6ZTtcclxuICAgICAgICAgICAgICAgIGlmIChzaXplID4gZXhjZXB0aW9uUGFyc2VkU3RhY2tUaHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZXh0cmEgZnJhbWVzIGZyb20gdGhlIG1pZGRsZVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBob3dNYW55ID0gYWNjZXB0ZWRSaWdodCAtIGFjY2VwdGVkTGVmdCArIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkU3RhY2suc3BsaWNlKGFjY2VwdGVkTGVmdCwgaG93TWFueSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgcG9pbnRlcnNcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkTGVmdCA9IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFJpZ2h0ID0gcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0Kys7XHJcbiAgICAgICAgICAgICAgICByaWdodC0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhcnNlZFN0YWNrO1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRFcnJvclR5cGUoZXJyb3JUeXBlKSB7XHJcbiAgICAvLyBHZXRzIHRoZSBFcnJvciBUeXBlIGJ5IHBhc3NpbmcgdGhlIGNvbnN0cnVjdG9yICh1c2VkIHRvIGdldCB0aGUgdHJ1ZSB0eXBlIG9mIG5hdGl2ZSBlcnJvciBvYmplY3QpLlxyXG4gICAgdmFyIHR5cGVOYW1lID0gXCJcIjtcclxuICAgIGlmIChlcnJvclR5cGUpIHtcclxuICAgICAgICB0eXBlTmFtZSA9IGVycm9yVHlwZS50eXBlTmFtZSB8fCBlcnJvclR5cGVbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gfHwgXCJcIjtcclxuICAgICAgICBpZiAoIXR5cGVOYW1lKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWVSZWdleCA9IC9mdW5jdGlvbiAoLnsxLDIwMH0pXFwoLztcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gKGZ1bmNOYW1lUmVnZXgpLmV4ZWMoKGVycm9yVHlwZSkuY29uc3RydWN0b3JbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKSk7XHJcbiAgICAgICAgICAgICAgICB0eXBlTmFtZSA9IChyZXN1bHRzICYmIHJlc3VsdHNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMSkgPyByZXN1bHRzWzFdIDogXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5IC0tIElnbm9yaW5nIGFueSBmYWlsdXJlcyBhcyBub3RoaW5nIHdlIGNhbiBkb1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHR5cGVOYW1lO1xyXG59XHJcbi8qKlxyXG4gKiBGb3JtYXRzIHRoZSBwcm92aWRlZCBlcnJvck9iaiBmb3IgZGlzcGxheSBhbmQgcmVwb3J0aW5nLCBpdCBtYXkgYmUgYSBTdHJpbmcsIE9iamVjdCwgaW50ZWdlciBvciB1bmRlZmluZWQgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyLlxyXG4gKiBAcGFyYW0gZXJyb3JPYmogVGhlIHN1cHBsaWVkIGVycm9yT2JqXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX2Zvcm1hdEVycm9yQ29kZShlcnJvck9iaikge1xyXG4gICAgaWYgKGVycm9yT2JqKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKCFpc1N0cmluZyhlcnJvck9iaikpIHtcclxuICAgICAgICAgICAgICAgIHZhciBlcnJvclR5cGUgPSBfZ2V0RXJyb3JUeXBlKGVycm9yT2JqKTtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBfc3RyaW5naWZ5KGVycm9yT2JqLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQgPT09IFwie31cIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvck9ialtzdHJFcnJvcl0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTG9va3MgbGlrZSBhbiBNUyBFcnJvciBFdmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvck9iaiA9IGVycm9yT2JqW3N0ckVycm9yXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUeXBlID0gX2dldEVycm9yVHlwZShlcnJvck9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9zdHJpbmdpZnkoZXJyb3JPYmosIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdFtfRFlOX0lOREVYX09GIC8qIEBtaW46JTJlaW5kZXhPZiAqL10oZXJyb3JUeXBlKSAhPT0gMCAmJiBlcnJvclR5cGUgIT09IFwiU3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JUeXBlICsgXCI6XCIgKyByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eSAtLSBJZ25vcmluZyBhbnkgZmFpbHVyZXMgYXMgbm90aGluZyB3ZSBjYW4gZG9cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBGYWxsYmFjayB0byBqdXN0IGxldHRpbmcgdGhlIG9iamVjdCBmb3JtYXQgaXRzZWxmIGludG8gYSBzdHJpbmdcclxuICAgIHJldHVybiBcIlwiICsgKGVycm9yT2JqIHx8IFwiXCIpO1xyXG59XHJcbnZhciBFeGNlcHRpb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEV4Y2VwdGlvblRlbGVtZXRyeSBvYmplY3RcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gRXhjZXB0aW9uKGxvZ2dlciwgZXhjZXB0aW9uLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMsIHNldmVyaXR5TGV2ZWwsIGlkKSB7XHJcbiAgICAgICAgdGhpcy5haURhdGFDb250cmFjdCA9IHtcclxuICAgICAgICAgICAgdmVyOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAgZXhjZXB0aW9uczogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIHNldmVyaXR5TGV2ZWw6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIG1lYXN1cmVtZW50czogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqL1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdmFyIF9zZWxmID0gdGhpcztcclxuICAgICAgICBfc2VsZi52ZXIgPSAyOyAvLyBUT0RPOiBoYW5kbGUgdGhlIENTXCI0LjBcIiA9PT4gYnJlZXplIDIgY29udmVyc2lvbiBpbiBhIGJldHRlciB3YXlcclxuICAgICAgICBpZiAoIV9pc0V4Y2VwdGlvbkludGVybmFsKGV4Y2VwdGlvbikpIHtcclxuICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0ge307XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9FWENFUFRJT05TIC8qIEBtaW46JTJlZXhjZXB0aW9ucyAqL10gPSBbbmV3IF9FeGNlcHRpb25EZXRhaWxzKGxvZ2dlciwgZXhjZXB0aW9uLCBwcm9wZXJ0aWVzKV07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fUFJPUEVSVElFUyAvKiBAbWluOiUyZXByb3BlcnRpZXMgKi9dID0gZGF0YVNhbml0aXplUHJvcGVydGllcyhsb2dnZXIsIHByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX01FQVNVUkVNRU5UUyAvKiBAbWluOiUyZW1lYXN1cmVtZW50cyAqL10gPSBkYXRhU2FuaXRpemVNZWFzdXJlbWVudHMobG9nZ2VyLCBtZWFzdXJlbWVudHMpO1xyXG4gICAgICAgICAgICBpZiAoc2V2ZXJpdHlMZXZlbCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9TRVZFUklUWV9MRVZFTCAvKiBAbWluOiUyZXNldmVyaXR5TGV2ZWwgKi9dID0gc2V2ZXJpdHlMZXZlbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaWQpIHtcclxuICAgICAgICAgICAgICAgIF9zZWxmLmlkID0gaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fRVhDRVBUSU9OUyAvKiBAbWluOiUyZWV4Y2VwdGlvbnMgKi9dID0gZXhjZXB0aW9uW19EWU5fRVhDRVBUSU9OUyAvKiBAbWluOiUyZWV4Y2VwdGlvbnMgKi9dIHx8IFtdO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXSA9IGV4Y2VwdGlvbltfRFlOX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9NRUFTVVJFTUVOVFMgLyogQG1pbjolMmVtZWFzdXJlbWVudHMgKi9dID0gZXhjZXB0aW9uW19EWU5fTUVBU1VSRU1FTlRTIC8qIEBtaW46JTJlbWVhc3VyZW1lbnRzICovXTtcclxuICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbltfRFlOX1NFVkVSSVRZX0xFVkVMIC8qIEBtaW46JTJlc2V2ZXJpdHlMZXZlbCAqL10pIHtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fU0VWRVJJVFlfTEVWRUwgLyogQG1pbjolMmVzZXZlcml0eUxldmVsICovXSA9IGV4Y2VwdGlvbltfRFlOX1NFVkVSSVRZX0xFVkVMIC8qIEBtaW46JTJlc2V2ZXJpdHlMZXZlbCAqL107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbi5pZCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuaWQgPSBleGNlcHRpb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbltfRFlOX1BST0JMRU1fR1JPVVAgLyogQG1pbjolMmVwcm9ibGVtR3JvdXAgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX1BST0JMRU1fR1JPVVAgLyogQG1pbjolMmVwcm9ibGVtR3JvdXAgKi9dID0gZXhjZXB0aW9uW19EWU5fUFJPQkxFTV9HUk9VUCAvKiBAbWluOiUyZXByb2JsZW1Hcm91cCAqL107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gYm9vbC9pbnQgdHlwZXMsIHVzZSBpc051bGxPclVuZGVmaW5lZFxyXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGV4Y2VwdGlvbltfRFlOX0lTX01BTlVBTCAvKiBAbWluOiUyZWlzTWFudWFsICovXSkpIHtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fSVNfTUFOVUFMIC8qIEBtaW46JTJlaXNNYW51YWwgKi9dID0gZXhjZXB0aW9uW19EWU5fSVNfTUFOVUFMIC8qIEBtaW46JTJlaXNNYW51YWwgKi9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgRXhjZXB0aW9uLkNyZWF0ZUF1dG9FeGNlcHRpb24gPSBmdW5jdGlvbiAobWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yLCBldnQsIHN0YWNrLCBlcnJvclNyYykge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICB2YXIgZXJyb3JUeXBlID0gX2dldEVycm9yVHlwZShlcnJvciB8fCBldnQgfHwgbWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIF9hID0ge30sXHJcbiAgICAgICAgICAgIF9hW19EWU5fTUVTU0FHRSAvKiBAbWluOm1lc3NhZ2UgKi9dID0gX2Zvcm1hdE1lc3NhZ2UobWVzc2FnZSwgZXJyb3JUeXBlKSxcclxuICAgICAgICAgICAgX2EudXJsID0gdXJsLFxyXG4gICAgICAgICAgICBfYS5saW5lTnVtYmVyID0gbGluZU51bWJlcixcclxuICAgICAgICAgICAgX2EuY29sdW1uTnVtYmVyID0gY29sdW1uTnVtYmVyLFxyXG4gICAgICAgICAgICBfYS5lcnJvciA9IF9mb3JtYXRFcnJvckNvZGUoZXJyb3IgfHwgZXZ0IHx8IG1lc3NhZ2UpLFxyXG4gICAgICAgICAgICBfYS5ldnQgPSBfZm9ybWF0RXJyb3JDb2RlKGV2dCB8fCBtZXNzYWdlKSxcclxuICAgICAgICAgICAgX2FbX0RZTl9UWVBFX05BTUUgLyogQG1pbjp0eXBlTmFtZSAqL10gPSBlcnJvclR5cGUsXHJcbiAgICAgICAgICAgIF9hLnN0YWNrRGV0YWlscyA9IF9nZXRTdGFja0Zyb21FcnJvck9iaihzdGFjayB8fCBlcnJvciB8fCBldnQpLFxyXG4gICAgICAgICAgICBfYS5lcnJvclNyYyA9IGVycm9yU3JjLFxyXG4gICAgICAgICAgICBfYTtcclxuICAgIH07XHJcbiAgICBFeGNlcHRpb24uQ3JlYXRlRnJvbUludGVyZmFjZSA9IGZ1bmN0aW9uIChsb2dnZXIsIGV4Y2VwdGlvbiwgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIGV4Y2VwdGlvbnMgPSBleGNlcHRpb25bX0RZTl9FWENFUFRJT05TIC8qIEBtaW46JTJlZXhjZXB0aW9ucyAqL11cclxuICAgICAgICAgICAgJiYgYXJyTWFwKGV4Y2VwdGlvbltfRFlOX0VYQ0VQVElPTlMgLyogQG1pbjolMmVleGNlcHRpb25zICovXSwgZnVuY3Rpb24gKGV4KSB7IHJldHVybiBfRXhjZXB0aW9uRGV0YWlsc1tfRFlOX19DUkVBVEVfRlJPTV9JTlRFUkZBMSAvKiBAbWluOiUyZUNyZWF0ZUZyb21JbnRlcmZhY2UgKi9dKGxvZ2dlciwgZXgpOyB9KTtcclxuICAgICAgICB2YXIgZXhjZXB0aW9uRGF0YSA9IG5ldyBFeGNlcHRpb24obG9nZ2VyLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZXhjZXB0aW9uKSwgeyBleGNlcHRpb25zOiBleGNlcHRpb25zIH0pLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMpO1xyXG4gICAgICAgIHJldHVybiBleGNlcHRpb25EYXRhO1xyXG4gICAgfTtcclxuICAgIEV4Y2VwdGlvbi5wcm90b3R5cGUudG9JbnRlcmZhY2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIHZhciBfYiA9IHRoaXMsIGV4Y2VwdGlvbnMgPSBfYi5leGNlcHRpb25zLCBwcm9wZXJ0aWVzID0gX2IucHJvcGVydGllcywgbWVhc3VyZW1lbnRzID0gX2IubWVhc3VyZW1lbnRzLCBzZXZlcml0eUxldmVsID0gX2Iuc2V2ZXJpdHlMZXZlbCwgcHJvYmxlbUdyb3VwID0gX2IucHJvYmxlbUdyb3VwLCBpZCA9IF9iLmlkLCBpc01hbnVhbCA9IF9iLmlzTWFudWFsO1xyXG4gICAgICAgIHZhciBleGNlcHRpb25EZXRhaWxzSW50ZXJmYWNlID0gZXhjZXB0aW9ucyBpbnN0YW5jZW9mIEFycmF5XHJcbiAgICAgICAgICAgICYmIGFyck1hcChleGNlcHRpb25zLCBmdW5jdGlvbiAoZXhjZXB0aW9uKSB7IHJldHVybiBleGNlcHRpb24udG9JbnRlcmZhY2UoKTsgfSlcclxuICAgICAgICAgICAgfHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIHJldHVybiBfYSA9IHtcclxuICAgICAgICAgICAgICAgIHZlcjogXCI0LjBcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBfYVtfRFlOX0VYQ0VQVElPTlMgLyogQG1pbjpleGNlcHRpb25zICovXSA9IGV4Y2VwdGlvbkRldGFpbHNJbnRlcmZhY2UsXHJcbiAgICAgICAgICAgIF9hLnNldmVyaXR5TGV2ZWwgPSBzZXZlcml0eUxldmVsLFxyXG4gICAgICAgICAgICBfYS5wcm9wZXJ0aWVzID0gcHJvcGVydGllcyxcclxuICAgICAgICAgICAgX2EubWVhc3VyZW1lbnRzID0gbWVhc3VyZW1lbnRzLFxyXG4gICAgICAgICAgICBfYS5wcm9ibGVtR3JvdXAgPSBwcm9ibGVtR3JvdXAsXHJcbiAgICAgICAgICAgIF9hLmlkID0gaWQsXHJcbiAgICAgICAgICAgIF9hLmlzTWFudWFsID0gaXNNYW51YWwsXHJcbiAgICAgICAgICAgIF9hO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIHNpbXBsZSBleGNlcHRpb24gd2l0aCAxIHN0YWNrIGZyYW1lLiBVc2VmdWwgZm9yIG1hbnVhbCBjb25zdHJhY3Rpbmcgb2YgZXhjZXB0aW9uLlxyXG4gICAgICovXHJcbiAgICBFeGNlcHRpb24uQ3JlYXRlU2ltcGxlRXhjZXB0aW9uID0gZnVuY3Rpb24gKG1lc3NhZ2UsIHR5cGVOYW1lLCBhc3NlbWJseSwgZmlsZU5hbWUsIGRldGFpbHMsIGxpbmUpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZXhjZXB0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgX2FbX0RZTl9IQVNfRlVMTF9TVEFDSyAvKiBAbWluOmhhc0Z1bGxTdGFjayAqL10gPSB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hLm1lc3NhZ2UgPSBtZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hLnN0YWNrID0gZGV0YWlscyxcclxuICAgICAgICAgICAgICAgICAgICBfYS50eXBlTmFtZSA9IHR5cGVOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hKVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICBFeGNlcHRpb24uZW52ZWxvcGVUeXBlID0gXCJNaWNyb3NvZnQuQXBwbGljYXRpb25JbnNpZ2h0cy57MH0uRXhjZXB0aW9uXCI7XHJcbiAgICBFeGNlcHRpb24uZGF0YVR5cGUgPSBcIkV4Y2VwdGlvbkRhdGFcIjtcclxuICAgIEV4Y2VwdGlvbi5mb3JtYXRFcnJvciA9IF9mb3JtYXRFcnJvckNvZGU7XHJcbiAgICByZXR1cm4gRXhjZXB0aW9uO1xyXG59KCkpO1xyXG5leHBvcnQgeyBFeGNlcHRpb24gfTtcclxudmFyIF9FeGNlcHRpb25EZXRhaWxzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gX0V4Y2VwdGlvbkRldGFpbHMobG9nZ2VyLCBleGNlcHRpb24sIHByb3BlcnRpZXMpIHtcclxuICAgICAgICB0aGlzLmFpRGF0YUNvbnRyYWN0ID0ge1xyXG4gICAgICAgICAgICBpZDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgb3V0ZXJJZDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgdHlwZU5hbWU6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAgaGFzRnVsbFN0YWNrOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBzdGFjazogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgcGFyc2VkU3RhY2s6IDIgLyogRmllbGRUeXBlLkFycmF5ICovXHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIgX3NlbGYgPSB0aGlzO1xyXG4gICAgICAgIGlmICghX2lzRXhjZXB0aW9uRGV0YWlsc0ludGVybmFsKGV4Y2VwdGlvbikpIHtcclxuICAgICAgICAgICAgdmFyIGVycm9yID0gZXhjZXB0aW9uO1xyXG4gICAgICAgICAgICB2YXIgZXZ0ID0gZXJyb3IgJiYgZXJyb3IuZXZ0O1xyXG4gICAgICAgICAgICBpZiAoIWlzRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IGVycm9yW3N0ckVycm9yXSB8fCBldnQgfHwgZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9UWVBFX05BTUUgLyogQG1pbjolMmV0eXBlTmFtZSAqL10gPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCBfZ2V0RXJyb3JUeXBlKGVycm9yKSkgfHwgc3RyTm90U3BlY2lmaWVkO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX01FU1NBR0UgLyogQG1pbjolMmVtZXNzYWdlICovXSA9IGRhdGFTYW5pdGl6ZU1lc3NhZ2UobG9nZ2VyLCBfZm9ybWF0TWVzc2FnZShleGNlcHRpb24gfHwgZXJyb3IsIF9zZWxmW19EWU5fVFlQRV9OQU1FIC8qIEBtaW46JTJldHlwZU5hbWUgKi9dKSkgfHwgc3RyTm90U3BlY2lmaWVkO1xyXG4gICAgICAgICAgICB2YXIgc3RhY2sgPSBleGNlcHRpb25bc3RyU3RhY2tEZXRhaWxzXSB8fCBfZ2V0U3RhY2tGcm9tRXJyb3JPYmooZXhjZXB0aW9uKTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9QQVJTRURfU1RBQ0sgLyogQG1pbjolMmVwYXJzZWRTdGFjayAqL10gPSBfcGFyc2VTdGFjayhzdGFjayk7XHJcbiAgICAgICAgICAgIF9zZWxmW3N0clN0YWNrXSA9IGRhdGFTYW5pdGl6ZUV4Y2VwdGlvbihsb2dnZXIsIF9mb3JtYXRTdGFja1RyYWNlKHN0YWNrKSk7XHJcbiAgICAgICAgICAgIF9zZWxmLmhhc0Z1bGxTdGFjayA9IGlzQXJyYXkoX3NlbGYucGFyc2VkU3RhY2spICYmIF9zZWxmLnBhcnNlZFN0YWNrW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDA7XHJcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW19EWU5fVFlQRV9OQU1FIC8qIEBtaW46JTJldHlwZU5hbWUgKi9dID0gcHJvcGVydGllc1tfRFlOX1RZUEVfTkFNRSAvKiBAbWluOiUyZXR5cGVOYW1lICovXSB8fCBfc2VsZltfRFlOX1RZUEVfTkFNRSAvKiBAbWluOiUyZXR5cGVOYW1lICovXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9UWVBFX05BTUUgLyogQG1pbjolMmV0eXBlTmFtZSAqL10gPSBleGNlcHRpb25bX0RZTl9UWVBFX05BTUUgLyogQG1pbjolMmV0eXBlTmFtZSAqL107XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fTUVTU0FHRSAvKiBAbWluOiUyZW1lc3NhZ2UgKi9dID0gZXhjZXB0aW9uW19EWU5fTUVTU0FHRSAvKiBAbWluOiUyZW1lc3NhZ2UgKi9dO1xyXG4gICAgICAgICAgICBfc2VsZltzdHJTdGFja10gPSBleGNlcHRpb25bc3RyU3RhY2tdO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1BBUlNFRF9TVEFDSyAvKiBAbWluOiUyZXBhcnNlZFN0YWNrICovXSA9IGV4Y2VwdGlvbltfRFlOX1BBUlNFRF9TVEFDSyAvKiBAbWluOiUyZXBhcnNlZFN0YWNrICovXSB8fCBbXTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9IQVNfRlVMTF9TVEFDSyAvKiBAbWluOiUyZWhhc0Z1bGxTdGFjayAqL10gPSBleGNlcHRpb25bX0RZTl9IQVNfRlVMTF9TVEFDSyAvKiBAbWluOiUyZWhhc0Z1bGxTdGFjayAqL107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX0V4Y2VwdGlvbkRldGFpbHMucHJvdG90eXBlLnRvSW50ZXJmYWNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICB2YXIgX3NlbGYgPSB0aGlzO1xyXG4gICAgICAgIHZhciBwYXJzZWRTdGFjayA9IF9zZWxmW19EWU5fUEFSU0VEX1NUQUNLIC8qIEBtaW46JTJlcGFyc2VkU3RhY2sgKi9dIGluc3RhbmNlb2YgQXJyYXlcclxuICAgICAgICAgICAgJiYgYXJyTWFwKF9zZWxmW19EWU5fUEFSU0VEX1NUQUNLIC8qIEBtaW46JTJlcGFyc2VkU3RhY2sgKi9dLCBmdW5jdGlvbiAoZnJhbWUpIHsgcmV0dXJuIGZyYW1lLnRvSW50ZXJmYWNlKCk7IH0pO1xyXG4gICAgICAgIHZhciBleGNlcHRpb25EZXRhaWxzSW50ZXJmYWNlID0gKF9hID0ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IF9zZWxmLmlkLFxyXG4gICAgICAgICAgICAgICAgb3V0ZXJJZDogX3NlbGYub3V0ZXJJZCxcclxuICAgICAgICAgICAgICAgIHR5cGVOYW1lOiBfc2VsZltfRFlOX1RZUEVfTkFNRSAvKiBAbWluOiUyZXR5cGVOYW1lICovXSxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IF9zZWxmW19EWU5fTUVTU0FHRSAvKiBAbWluOiUyZW1lc3NhZ2UgKi9dLFxyXG4gICAgICAgICAgICAgICAgaGFzRnVsbFN0YWNrOiBfc2VsZltfRFlOX0hBU19GVUxMX1NUQUNLIC8qIEBtaW46JTJlaGFzRnVsbFN0YWNrICovXSxcclxuICAgICAgICAgICAgICAgIHN0YWNrOiBfc2VsZltzdHJTdGFja11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9QQVJTRURfU1RBQ0sgLyogQG1pbjpwYXJzZWRTdGFjayAqL10gPSBwYXJzZWRTdGFjayB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIF9hKTtcclxuICAgICAgICByZXR1cm4gZXhjZXB0aW9uRGV0YWlsc0ludGVyZmFjZTtcclxuICAgIH07XHJcbiAgICBfRXhjZXB0aW9uRGV0YWlscy5DcmVhdGVGcm9tSW50ZXJmYWNlID0gZnVuY3Rpb24gKGxvZ2dlciwgZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgdmFyIHBhcnNlZFN0YWNrID0gKGV4Y2VwdGlvbltfRFlOX1BBUlNFRF9TVEFDSyAvKiBAbWluOiUyZXBhcnNlZFN0YWNrICovXSBpbnN0YW5jZW9mIEFycmF5XHJcbiAgICAgICAgICAgICYmIGFyck1hcChleGNlcHRpb25bX0RZTl9QQVJTRURfU1RBQ0sgLyogQG1pbjolMmVwYXJzZWRTdGFjayAqL10sIGZ1bmN0aW9uIChmcmFtZSkgeyByZXR1cm4gX1N0YWNrRnJhbWVbX0RZTl9fQ1JFQVRFX0ZST01fSU5URVJGQTEgLyogQG1pbjolMmVDcmVhdGVGcm9tSW50ZXJmYWNlICovXShmcmFtZSk7IH0pKVxyXG4gICAgICAgICAgICB8fCBleGNlcHRpb25bX0RZTl9QQVJTRURfU1RBQ0sgLyogQG1pbjolMmVwYXJzZWRTdGFjayAqL107XHJcbiAgICAgICAgdmFyIGV4Y2VwdGlvbkRldGFpbHMgPSBuZXcgX0V4Y2VwdGlvbkRldGFpbHMobG9nZ2VyLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZXhjZXB0aW9uKSwgeyBwYXJzZWRTdGFjazogcGFyc2VkU3RhY2sgfSkpO1xyXG4gICAgICAgIHJldHVybiBleGNlcHRpb25EZXRhaWxzO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBfRXhjZXB0aW9uRGV0YWlscztcclxufSgpKTtcclxuZXhwb3J0IHsgX0V4Y2VwdGlvbkRldGFpbHMgfTtcclxudmFyIF9TdGFja0ZyYW1lID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gX1N0YWNrRnJhbWUoc291cmNlRnJhbWUsIGxldmVsKSB7XHJcbiAgICAgICAgdGhpcy5haURhdGFDb250cmFjdCA9IHtcclxuICAgICAgICAgICAgbGV2ZWw6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBtZXRob2Q6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBhc3NlbWJseTogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgZmlsZU5hbWU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIGxpbmU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi9cclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9TSVpFX0lOX0JZVEVTIC8qIEBtaW46JTJlc2l6ZUluQnl0ZXMgKi9dID0gMDtcclxuICAgICAgICAvLyBOb3QgY29udmVydGluZyB0aGlzIHRvIGlzU3RyaW5nKCkgYXMgdHlwZXNjcmlwdCB1c2VzIHRoaXMgbG9naWMgdG8gXCJ1bmRlcnN0YW5kXCIgdGhlIGRpZmZlcmVudFxyXG4gICAgICAgIC8vIHR5cGVzIGZvciB0aGUgMiBkaWZmZXJlbnQgY29kZSBwYXRoc1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlRnJhbWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgdmFyIGZyYW1lID0gc291cmNlRnJhbWU7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fTEVWRUwgLyogQG1pbjolMmVsZXZlbCAqL10gPSBsZXZlbDtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9NRVRIT0QgLyogQG1pbjolMmVtZXRob2QgKi9dID0gTm9NZXRob2Q7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQVNTRU1CTFkgLyogQG1pbjolMmVhc3NlbWJseSAqL10gPSBzdHJUcmltKGZyYW1lKTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9GSUxFX05BTUUgLyogQG1pbjolMmVmaWxlTmFtZSAqL10gPSBcIlwiO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0xJTkUgLyogQG1pbjolMmVsaW5lICovXSA9IDA7XHJcbiAgICAgICAgICAgIHZhciBtYXRjaGVzID0gZnJhbWUubWF0Y2goX1N0YWNrRnJhbWUucmVnZXgpO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+PSA1KSB7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX01FVEhPRCAvKiBAbWluOiUyZW1ldGhvZCAqL10gPSBzdHJUcmltKG1hdGNoZXNbMl0pIHx8IF9zZWxmW19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fRklMRV9OQU1FIC8qIEBtaW46JTJlZmlsZU5hbWUgKi9dID0gc3RyVHJpbShtYXRjaGVzWzRdKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fTElORSAvKiBAbWluOiUyZWxpbmUgKi9dID0gcGFyc2VJbnQobWF0Y2hlc1s1XSkgfHwgMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9MRVZFTCAvKiBAbWluOiUyZWxldmVsICovXSA9IHNvdXJjZUZyYW1lW19EWU5fTEVWRUwgLyogQG1pbjolMmVsZXZlbCAqL107XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXSA9IHNvdXJjZUZyYW1lW19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BU1NFTUJMWSAvKiBAbWluOiUyZWFzc2VtYmx5ICovXSA9IHNvdXJjZUZyYW1lW19EWU5fQVNTRU1CTFkgLyogQG1pbjolMmVhc3NlbWJseSAqL107XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fRklMRV9OQU1FIC8qIEBtaW46JTJlZmlsZU5hbWUgKi9dID0gc291cmNlRnJhbWVbX0RZTl9GSUxFX05BTUUgLyogQG1pbjolMmVmaWxlTmFtZSAqL107XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fTElORSAvKiBAbWluOiUyZWxpbmUgKi9dID0gc291cmNlRnJhbWVbX0RZTl9MSU5FIC8qIEBtaW46JTJlbGluZSAqL107XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fU0laRV9JTl9CWVRFUyAvKiBAbWluOiUyZXNpemVJbkJ5dGVzICovXSA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIF9zZWxmLnNpemVJbkJ5dGVzICs9IF9zZWxmLm1ldGhvZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICAgICAgX3NlbGYuc2l6ZUluQnl0ZXMgKz0gX3NlbGYuZmlsZU5hbWVbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgIF9zZWxmLnNpemVJbkJ5dGVzICs9IF9zZWxmLmFzc2VtYmx5W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgICAgICAvLyB0b2RvOiB0aGVzZSBtaWdodCBuZWVkIHRvIGJlIHJlbW92ZWQgZGVwZW5kaW5nIG9uIGhvdyB0aGUgYmFjay1lbmQgc2V0dGxlcyBvbiB0aGVpciBzaXplIGNhbGN1bGF0aW9uXHJcbiAgICAgICAgX3NlbGZbX0RZTl9TSVpFX0lOX0JZVEVTIC8qIEBtaW46JTJlc2l6ZUluQnl0ZXMgKi9dICs9IF9TdGFja0ZyYW1lLmJhc2VTaXplO1xyXG4gICAgICAgIF9zZWxmLnNpemVJbkJ5dGVzICs9IF9zZWxmLmxldmVsLnRvU3RyaW5nKClbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgIF9zZWxmLnNpemVJbkJ5dGVzICs9IF9zZWxmLmxpbmUudG9TdHJpbmcoKVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICB9XHJcbiAgICBfU3RhY2tGcmFtZS5DcmVhdGVGcm9tSW50ZXJmYWNlID0gZnVuY3Rpb24gKGZyYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBfU3RhY2tGcmFtZShmcmFtZSwgbnVsbCAvKiBsZXZlbCBpcyBhdmFpbGFibGUgaW4gZnJhbWUgaW50ZXJmYWNlICovKTtcclxuICAgIH07XHJcbiAgICBfU3RhY2tGcmFtZS5wcm90b3R5cGUudG9JbnRlcmZhY2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9zZWxmID0gdGhpcztcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBsZXZlbDogX3NlbGZbX0RZTl9MRVZFTCAvKiBAbWluOiUyZWxldmVsICovXSxcclxuICAgICAgICAgICAgbWV0aG9kOiBfc2VsZltfRFlOX01FVEhPRCAvKiBAbWluOiUyZW1ldGhvZCAqL10sXHJcbiAgICAgICAgICAgIGFzc2VtYmx5OiBfc2VsZltfRFlOX0FTU0VNQkxZIC8qIEBtaW46JTJlYXNzZW1ibHkgKi9dLFxyXG4gICAgICAgICAgICBmaWxlTmFtZTogX3NlbGZbX0RZTl9GSUxFX05BTUUgLyogQG1pbjolMmVmaWxlTmFtZSAqL10sXHJcbiAgICAgICAgICAgIGxpbmU6IF9zZWxmW19EWU5fTElORSAvKiBAbWluOiUyZWxpbmUgKi9dXHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICAvLyByZWdleCB0byBtYXRjaCBzdGFjayBmcmFtZXMgZnJvbSBpZS9jaHJvbWUvZmZcclxuICAgIC8vIG1ldGhvZE5hbWU9JDIsIGZpbGVOYW1lPSQ0LCBsaW5lTm89JDUsIGNvbHVtbj0kNlxyXG4gICAgX1N0YWNrRnJhbWUucmVnZXggPSAvXihbXFxzXSthdCk/W1xcc117MCw1MH0oW15cXEBcXCgpXSs/KVtcXHNdezAsNTB9KFxcQHxcXCgpKFteXFwoXFxuXSspOihbMC05XSspOihbMC05XSspKFxcKT8pJC87XHJcbiAgICBfU3RhY2tGcmFtZS5iYXNlU2l6ZSA9IDU4OyAvLyAne1wibWV0aG9kXCI6XCJcIixcImxldmVsXCI6LFwiYXNzZW1ibHlcIjpcIlwiLFwiZmlsZU5hbWVcIjpcIlwiLFwibGluZVwiOn0nLmxlbmd0aFxyXG4gICAgcmV0dXJuIF9TdGFja0ZyYW1lO1xyXG59KCkpO1xyXG5leHBvcnQgeyBfU3RhY2tGcmFtZSB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1FeGNlcHRpb24uanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG52YXIgRGF0YVBvaW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gRGF0YVBvaW50KCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkYXRhIGNvbnRyYWN0IGZvciBzZXJpYWxpemluZyB0aGlzIG9iamVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFpRGF0YUNvbnRyYWN0ID0ge1xyXG4gICAgICAgICAgICBuYW1lOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAga2luZDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgdmFsdWU6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBjb3VudDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgbWluOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBtYXg6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHN0ZERldjogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqL1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTWV0cmljIHR5cGUuIFNpbmdsZSBtZWFzdXJlbWVudCBvciB0aGUgYWdncmVnYXRlZCB2YWx1ZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmtpbmQgPSAwIC8qIERhdGFQb2ludFR5cGUuTWVhc3VyZW1lbnQgKi87XHJcbiAgICB9XHJcbiAgICByZXR1cm4gRGF0YVBvaW50O1xyXG59KCkpO1xyXG5leHBvcnQgeyBEYXRhUG9pbnQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0YVBvaW50LmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgc3RyTm90U3BlY2lmaWVkIH0gZnJvbSBcIi4uL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBfRFlOX0NPVU5ULCBfRFlOX01FQVNVUkVNRU5UUywgX0RZTl9OQU1FLCBfRFlOX1BST1BFUlRJRVMgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IERhdGFQb2ludCB9IGZyb20gXCIuL0NvbW1vbi9EYXRhUG9pbnRcIjtcclxuaW1wb3J0IHsgZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzLCBkYXRhU2FuaXRpemVQcm9wZXJ0aWVzLCBkYXRhU2FuaXRpemVTdHJpbmcgfSBmcm9tIFwiLi9Db21tb24vRGF0YVNhbml0aXplclwiO1xyXG52YXIgTWV0cmljID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBNZXRyaWNUZWxlbWV0cnkgb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIE1ldHJpYyhsb2dnZXIsIG5hbWUsIHZhbHVlLCBjb3VudCwgbWluLCBtYXgsIHN0ZERldiwgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzKSB7XHJcbiAgICAgICAgdGhpcy5haURhdGFDb250cmFjdCA9IHtcclxuICAgICAgICAgICAgdmVyOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAgbWV0cmljczogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi9cclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGYudmVyID0gMjtcclxuICAgICAgICB2YXIgZGF0YVBvaW50ID0gbmV3IERhdGFQb2ludCgpO1xyXG4gICAgICAgIGRhdGFQb2ludFtfRFlOX0NPVU5UIC8qIEBtaW46JTJlY291bnQgKi9dID0gY291bnQgPiAwID8gY291bnQgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgZGF0YVBvaW50Lm1heCA9IGlzTmFOKG1heCkgfHwgbWF4ID09PSBudWxsID8gdW5kZWZpbmVkIDogbWF4O1xyXG4gICAgICAgIGRhdGFQb2ludC5taW4gPSBpc05hTihtaW4pIHx8IG1pbiA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IG1pbjtcclxuICAgICAgICBkYXRhUG9pbnRbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCBuYW1lKSB8fCBzdHJOb3RTcGVjaWZpZWQ7XHJcbiAgICAgICAgZGF0YVBvaW50LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgZGF0YVBvaW50LnN0ZERldiA9IGlzTmFOKHN0ZERldikgfHwgc3RkRGV2ID09PSBudWxsID8gdW5kZWZpbmVkIDogc3RkRGV2O1xyXG4gICAgICAgIF9zZWxmLm1ldHJpY3MgPSBbZGF0YVBvaW50XTtcclxuICAgICAgICBfc2VsZltfRFlOX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXSA9IGRhdGFTYW5pdGl6ZVByb3BlcnRpZXMobG9nZ2VyLCBwcm9wZXJ0aWVzKTtcclxuICAgICAgICBfc2VsZltfRFlOX01FQVNVUkVNRU5UUyAvKiBAbWluOiUyZW1lYXN1cmVtZW50cyAqL10gPSBkYXRhU2FuaXRpemVNZWFzdXJlbWVudHMobG9nZ2VyLCBtZWFzdXJlbWVudHMpO1xyXG4gICAgfVxyXG4gICAgTWV0cmljLmVudmVsb3BlVHlwZSA9IFwiTWljcm9zb2Z0LkFwcGxpY2F0aW9uSW5zaWdodHMuezB9Lk1ldHJpY1wiO1xyXG4gICAgTWV0cmljLmRhdGFUeXBlID0gXCJNZXRyaWNEYXRhXCI7XHJcbiAgICByZXR1cm4gTWV0cmljO1xyXG59KCkpO1xyXG5leHBvcnQgeyBNZXRyaWMgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TWV0cmljLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgc3RyTm90U3BlY2lmaWVkIH0gZnJvbSBcIi4uL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBtc1RvVGltZVNwYW4gfSBmcm9tIFwiLi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgX0RZTl9EVVJBVElPTiwgX0RZTl9NRUFTVVJFTUVOVFMsIF9EWU5fTkFNRSwgX0RZTl9QUk9QRVJUSUVTIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBkYXRhU2FuaXRpemVJZCwgZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzLCBkYXRhU2FuaXRpemVQcm9wZXJ0aWVzLCBkYXRhU2FuaXRpemVTdHJpbmcsIGRhdGFTYW5pdGl6ZVVybCB9IGZyb20gXCIuL0NvbW1vbi9EYXRhU2FuaXRpemVyXCI7XHJcbnZhciBQYWdlVmlldyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgUGFnZUV2ZW50VGVsZW1ldHJ5IG9iamVjdFxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBQYWdlVmlldyhsb2dnZXIsIG5hbWUsIHVybCwgZHVyYXRpb25NcywgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzLCBpZCkge1xyXG4gICAgICAgIHRoaXMuYWlEYXRhQ29udHJhY3QgPSB7XHJcbiAgICAgICAgICAgIHZlcjogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIG5hbWU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHVybDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgZHVyYXRpb246IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIG1lYXN1cmVtZW50czogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgaWQ6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi9cclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGYudmVyID0gMjtcclxuICAgICAgICBfc2VsZi5pZCA9IGRhdGFTYW5pdGl6ZUlkKGxvZ2dlciwgaWQpO1xyXG4gICAgICAgIF9zZWxmLnVybCA9IGRhdGFTYW5pdGl6ZVVybChsb2dnZXIsIHVybCk7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCBuYW1lKSB8fCBzdHJOb3RTcGVjaWZpZWQ7XHJcbiAgICAgICAgaWYgKCFpc05hTihkdXJhdGlvbk1zKSkge1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0RVUkFUSU9OIC8qIEBtaW46JTJlZHVyYXRpb24gKi9dID0gbXNUb1RpbWVTcGFuKGR1cmF0aW9uTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBfc2VsZltfRFlOX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXSA9IGRhdGFTYW5pdGl6ZVByb3BlcnRpZXMobG9nZ2VyLCBwcm9wZXJ0aWVzKTtcclxuICAgICAgICBfc2VsZltfRFlOX01FQVNVUkVNRU5UUyAvKiBAbWluOiUyZW1lYXN1cmVtZW50cyAqL10gPSBkYXRhU2FuaXRpemVNZWFzdXJlbWVudHMobG9nZ2VyLCBtZWFzdXJlbWVudHMpO1xyXG4gICAgfVxyXG4gICAgUGFnZVZpZXcuZW52ZWxvcGVUeXBlID0gXCJNaWNyb3NvZnQuQXBwbGljYXRpb25JbnNpZ2h0cy57MH0uUGFnZXZpZXdcIjtcclxuICAgIFBhZ2VWaWV3LmRhdGFUeXBlID0gXCJQYWdldmlld0RhdGFcIjtcclxuICAgIHJldHVybiBQYWdlVmlldztcclxufSgpKTtcclxuZXhwb3J0IHsgUGFnZVZpZXcgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFnZVZpZXcuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBtc1RvVGltZVNwYW4gfSBmcm9tIFwiLi4vSGVscGVyRnVuY3NcIjtcclxuaW1wb3J0IHsgQWpheEhlbHBlclBhcnNlRGVwZW5kZW5jeVBhdGggfSBmcm9tIFwiLi4vVXRpbFwiO1xyXG5pbXBvcnQgeyBfRFlOX0RVUkFUSU9OLCBfRFlOX01FQVNVUkVNRU5UUywgX0RZTl9OQU1FLCBfRFlOX1BST1BFUlRJRVMgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGRhdGFTYW5pdGl6ZU1lYXN1cmVtZW50cywgZGF0YVNhbml0aXplUHJvcGVydGllcywgZGF0YVNhbml0aXplU3RyaW5nLCBkYXRhU2FuaXRpemVVcmwgfSBmcm9tIFwiLi9Db21tb24vRGF0YVNhbml0aXplclwiO1xyXG52YXIgUmVtb3RlRGVwZW5kZW5jeURhdGEgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFJlbW90ZURlcGVuZGVuY3lEYXRhIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZW1vdGVEZXBlbmRlbmN5RGF0YShsb2dnZXIsIGlkLCBhYnNvbHV0ZVVybCwgY29tbWFuZE5hbWUsIHZhbHVlLCBzdWNjZXNzLCByZXN1bHRDb2RlLCBtZXRob2QsIHJlcXVlc3RBUEksIGNvcnJlbGF0aW9uQ29udGV4dCwgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzKSB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3RBUEkgPT09IHZvaWQgMCkgeyByZXF1ZXN0QVBJID0gXCJBamF4XCI7IH1cclxuICAgICAgICB0aGlzLmFpRGF0YUNvbnRyYWN0ID0ge1xyXG4gICAgICAgICAgICBpZDogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIHZlcjogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIG5hbWU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHJlc3VsdENvZGU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBkYXRhOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICB0YXJnZXQ6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHR5cGU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIG1lYXN1cmVtZW50czogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAga2luZDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgdmFsdWU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIGNvdW50OiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBtaW46IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIG1heDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgc3RkRGV2OiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBkZXBlbmRlbmN5S2luZDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgZGVwZW5kZW5jeVNvdXJjZTogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgY29tbWFuZE5hbWU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIGRlcGVuZGVuY3lUeXBlTmFtZTogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqL1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdmFyIF9zZWxmID0gdGhpcztcclxuICAgICAgICBfc2VsZi52ZXIgPSAyO1xyXG4gICAgICAgIF9zZWxmLmlkID0gaWQ7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9EVVJBVElPTiAvKiBAbWluOiUyZWR1cmF0aW9uICovXSA9IG1zVG9UaW1lU3Bhbih2YWx1ZSk7XHJcbiAgICAgICAgX3NlbGYuc3VjY2VzcyA9IHN1Y2Nlc3M7XHJcbiAgICAgICAgX3NlbGYucmVzdWx0Q29kZSA9IHJlc3VsdENvZGUgKyBcIlwiO1xyXG4gICAgICAgIF9zZWxmLnR5cGUgPSBkYXRhU2FuaXRpemVTdHJpbmcobG9nZ2VyLCByZXF1ZXN0QVBJKTtcclxuICAgICAgICB2YXIgZGVwZW5kZW5jeUZpZWxkcyA9IEFqYXhIZWxwZXJQYXJzZURlcGVuZGVuY3lQYXRoKGxvZ2dlciwgYWJzb2x1dGVVcmwsIG1ldGhvZCwgY29tbWFuZE5hbWUpO1xyXG4gICAgICAgIF9zZWxmLmRhdGEgPSBkYXRhU2FuaXRpemVVcmwobG9nZ2VyLCBjb21tYW5kTmFtZSkgfHwgZGVwZW5kZW5jeUZpZWxkcy5kYXRhOyAvLyBnZXQgYSB2YWx1ZSBmcm9tIGhvc3R1cmwgaWYgY29tbWFuZE5hbWUgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgIF9zZWxmLnRhcmdldCA9IGRhdGFTYW5pdGl6ZVN0cmluZyhsb2dnZXIsIGRlcGVuZGVuY3lGaWVsZHMudGFyZ2V0KTtcclxuICAgICAgICBpZiAoY29ycmVsYXRpb25Db250ZXh0KSB7XHJcbiAgICAgICAgICAgIF9zZWxmLnRhcmdldCA9IFwiXCIuY29uY2F0KF9zZWxmLnRhcmdldCwgXCIgfCBcIikuY29uY2F0KGNvcnJlbGF0aW9uQ29udGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIF9zZWxmW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dID0gZGF0YVNhbml0aXplU3RyaW5nKGxvZ2dlciwgZGVwZW5kZW5jeUZpZWxkc1tfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSk7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9QUk9QRVJUSUVTIC8qIEBtaW46JTJlcHJvcGVydGllcyAqL10gPSBkYXRhU2FuaXRpemVQcm9wZXJ0aWVzKGxvZ2dlciwgcHJvcGVydGllcyk7XHJcbiAgICAgICAgX3NlbGZbX0RZTl9NRUFTVVJFTUVOVFMgLyogQG1pbjolMmVtZWFzdXJlbWVudHMgKi9dID0gZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzKGxvZ2dlciwgbWVhc3VyZW1lbnRzKTtcclxuICAgIH1cclxuICAgIFJlbW90ZURlcGVuZGVuY3lEYXRhLmVudmVsb3BlVHlwZSA9IFwiTWljcm9zb2Z0LkFwcGxpY2F0aW9uSW5zaWdodHMuezB9LlJlbW90ZURlcGVuZGVuY3lcIjtcclxuICAgIFJlbW90ZURlcGVuZGVuY3lEYXRhLmRhdGFUeXBlID0gXCJSZW1vdGVEZXBlbmRlbmN5RGF0YVwiO1xyXG4gICAgcmV0dXJuIFJlbW90ZURlcGVuZGVuY3lEYXRhO1xyXG59KCkpO1xyXG5leHBvcnQgeyBSZW1vdGVEZXBlbmRlbmN5RGF0YSB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1SZW1vdGVEZXBlbmRlbmN5RGF0YS5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IHN0ck5vdFNwZWNpZmllZCB9IGZyb20gXCIuLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgX0RZTl9NRUFTVVJFTUVOVFMsIF9EWU5fTUVTU0FHRSwgX0RZTl9QUk9QRVJUSUVTLCBfRFlOX1NFVkVSSVRZX0xFVkVMIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBkYXRhU2FuaXRpemVNZWFzdXJlbWVudHMsIGRhdGFTYW5pdGl6ZU1lc3NhZ2UsIGRhdGFTYW5pdGl6ZVByb3BlcnRpZXMgfSBmcm9tIFwiLi9Db21tb24vRGF0YVNhbml0aXplclwiO1xyXG52YXIgVHJhY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRyYWNlVGVsZW1ldHJ5IG9iamVjdFxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBUcmFjZShsb2dnZXIsIG1lc3NhZ2UsIHNldmVyaXR5TGV2ZWwsIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cykge1xyXG4gICAgICAgIHRoaXMuYWlEYXRhQ29udHJhY3QgPSB7XHJcbiAgICAgICAgICAgIHZlcjogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovLFxyXG4gICAgICAgICAgICBzZXZlcml0eUxldmVsOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovXHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIgX3NlbGYgPSB0aGlzO1xyXG4gICAgICAgIF9zZWxmLnZlciA9IDI7XHJcbiAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgc3RyTm90U3BlY2lmaWVkO1xyXG4gICAgICAgIF9zZWxmW19EWU5fTUVTU0FHRSAvKiBAbWluOiUyZW1lc3NhZ2UgKi9dID0gZGF0YVNhbml0aXplTWVzc2FnZShsb2dnZXIsIG1lc3NhZ2UpO1xyXG4gICAgICAgIF9zZWxmW19EWU5fUFJPUEVSVElFUyAvKiBAbWluOiUyZXByb3BlcnRpZXMgKi9dID0gZGF0YVNhbml0aXplUHJvcGVydGllcyhsb2dnZXIsIHByb3BlcnRpZXMpO1xyXG4gICAgICAgIF9zZWxmW19EWU5fTUVBU1VSRU1FTlRTIC8qIEBtaW46JTJlbWVhc3VyZW1lbnRzICovXSA9IGRhdGFTYW5pdGl6ZU1lYXN1cmVtZW50cyhsb2dnZXIsIG1lYXN1cmVtZW50cyk7XHJcbiAgICAgICAgaWYgKHNldmVyaXR5TGV2ZWwpIHtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9TRVZFUklUWV9MRVZFTCAvKiBAbWluOiUyZXNldmVyaXR5TGV2ZWwgKi9dID0gc2V2ZXJpdHlMZXZlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBUcmFjZS5lbnZlbG9wZVR5cGUgPSBcIk1pY3Jvc29mdC5BcHBsaWNhdGlvbkluc2lnaHRzLnswfS5NZXNzYWdlXCI7XHJcbiAgICBUcmFjZS5kYXRhVHlwZSA9IFwiTWVzc2FnZURhdGFcIjtcclxuICAgIHJldHVybiBUcmFjZTtcclxufSgpKTtcclxuZXhwb3J0IHsgVHJhY2UgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHJhY2UuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBzdHJOb3RTcGVjaWZpZWQgfSBmcm9tIFwiLi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IF9EWU5fRFVSQVRJT04sIF9EWU5fTUVBU1VSRU1FTlRTLCBfRFlOX05BTUUsIF9EWU5fUFJPUEVSVElFUywgX0RZTl9SRUNFSVZFRF9SRVNQT05TRSB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzLCBkYXRhU2FuaXRpemVQcm9wZXJ0aWVzLCBkYXRhU2FuaXRpemVTdHJpbmcsIGRhdGFTYW5pdGl6ZVVybCB9IGZyb20gXCIuL0NvbW1vbi9EYXRhU2FuaXRpemVyXCI7XHJcbnZhciBQYWdlVmlld1BlcmZvcm1hbmNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBQYWdlRXZlbnRUZWxlbWV0cnkgb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFBhZ2VWaWV3UGVyZm9ybWFuY2UobG9nZ2VyLCBuYW1lLCB1cmwsIHVudXNlZCwgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzLCBjczRCYXNlRGF0YSkge1xyXG4gICAgICAgIHRoaXMuYWlEYXRhQ29udHJhY3QgPSB7XHJcbiAgICAgICAgICAgIHZlcjogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICAgICAgICAgIG5hbWU6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHVybDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgZHVyYXRpb246IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHBlcmZUb3RhbDogMCAvKiBGaWVsZFR5cGUuRGVmYXVsdCAqLyxcclxuICAgICAgICAgICAgbmV0d29ya0Nvbm5lY3Q6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICAgICAgICAgIHNlbnRSZXF1ZXN0OiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICByZWNlaXZlZFJlc3BvbnNlOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBkb21Qcm9jZXNzaW5nOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiAwIC8qIEZpZWxkVHlwZS5EZWZhdWx0ICovLFxyXG4gICAgICAgICAgICBtZWFzdXJlbWVudHM6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi9cclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGYudmVyID0gMjtcclxuICAgICAgICBfc2VsZi51cmwgPSBkYXRhU2FuaXRpemVVcmwobG9nZ2VyLCB1cmwpO1xyXG4gICAgICAgIF9zZWxmW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dID0gZGF0YVNhbml0aXplU3RyaW5nKGxvZ2dlciwgbmFtZSkgfHwgc3RyTm90U3BlY2lmaWVkO1xyXG4gICAgICAgIF9zZWxmW19EWU5fUFJPUEVSVElFUyAvKiBAbWluOiUyZXByb3BlcnRpZXMgKi9dID0gZGF0YVNhbml0aXplUHJvcGVydGllcyhsb2dnZXIsIHByb3BlcnRpZXMpO1xyXG4gICAgICAgIF9zZWxmW19EWU5fTUVBU1VSRU1FTlRTIC8qIEBtaW46JTJlbWVhc3VyZW1lbnRzICovXSA9IGRhdGFTYW5pdGl6ZU1lYXN1cmVtZW50cyhsb2dnZXIsIG1lYXN1cmVtZW50cyk7XHJcbiAgICAgICAgaWYgKGNzNEJhc2VEYXRhKSB7XHJcbiAgICAgICAgICAgIF9zZWxmLmRvbVByb2Nlc3NpbmcgPSBjczRCYXNlRGF0YS5kb21Qcm9jZXNzaW5nO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0RVUkFUSU9OIC8qIEBtaW46JTJlZHVyYXRpb24gKi9dID0gY3M0QmFzZURhdGFbX0RZTl9EVVJBVElPTiAvKiBAbWluOiUyZWR1cmF0aW9uICovXTtcclxuICAgICAgICAgICAgX3NlbGYubmV0d29ya0Nvbm5lY3QgPSBjczRCYXNlRGF0YS5uZXR3b3JrQ29ubmVjdDtcclxuICAgICAgICAgICAgX3NlbGYucGVyZlRvdGFsID0gY3M0QmFzZURhdGEucGVyZlRvdGFsO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1JFQ0VJVkVEX1JFU1BPTlNFIC8qIEBtaW46JTJlcmVjZWl2ZWRSZXNwb25zZSAqL10gPSBjczRCYXNlRGF0YVtfRFlOX1JFQ0VJVkVEX1JFU1BPTlNFIC8qIEBtaW46JTJlcmVjZWl2ZWRSZXNwb25zZSAqL107XHJcbiAgICAgICAgICAgIF9zZWxmLnNlbnRSZXF1ZXN0ID0gY3M0QmFzZURhdGEuc2VudFJlcXVlc3Q7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgUGFnZVZpZXdQZXJmb3JtYW5jZS5lbnZlbG9wZVR5cGUgPSBcIk1pY3Jvc29mdC5BcHBsaWNhdGlvbkluc2lnaHRzLnswfS5QYWdldmlld1BlcmZvcm1hbmNlXCI7XHJcbiAgICBQYWdlVmlld1BlcmZvcm1hbmNlLmRhdGFUeXBlID0gXCJQYWdldmlld1BlcmZvcm1hbmNlRGF0YVwiO1xyXG4gICAgcmV0dXJuIFBhZ2VWaWV3UGVyZm9ybWFuY2U7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFBhZ2VWaWV3UGVyZm9ybWFuY2UgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFnZVZpZXdQZXJmb3JtYW5jZS5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbnZhciBEYXRhID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRlbGVtZXRyeSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBEYXRhKGJhc2VUeXBlLCBkYXRhKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRhdGEgY29udHJhY3QgZm9yIHNlcmlhbGl6aW5nIHRoaXMgb2JqZWN0LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWlEYXRhQ29udHJhY3QgPSB7XHJcbiAgICAgICAgICAgIGJhc2VUeXBlOiAxIC8qIEZpZWxkVHlwZS5SZXF1aXJlZCAqLyxcclxuICAgICAgICAgICAgYmFzZURhdGE6IDEgLyogRmllbGRUeXBlLlJlcXVpcmVkICovXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmJhc2VUeXBlID0gYmFzZVR5cGU7XHJcbiAgICAgICAgdGhpcy5iYXNlRGF0YSA9IGRhdGE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gRGF0YTtcclxufSgpKTtcclxuZXhwb3J0IHsgRGF0YSB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXRhLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IHsgX19leHRlbmRzRm4gYXMgX19leHRlbmRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVDbGFzc0Zyb21JbnRlcmZhY2UgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuZnVuY3Rpb24gX2FpTmFtZUZ1bmMoYmFzZU5hbWUpIHtcclxuICAgIHZhciBhaU5hbWUgPSBcImFpLlwiICsgYmFzZU5hbWUgKyBcIi5cIjtcclxuICAgIHJldHVybiBmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgICAgIHJldHVybiBhaU5hbWUgKyBuYW1lO1xyXG4gICAgfTtcclxufVxyXG52YXIgX2FpQXBwbGljYXRpb24gPSBfYWlOYW1lRnVuYyhcImFwcGxpY2F0aW9uXCIpO1xyXG52YXIgX2FpRGV2aWNlID0gX2FpTmFtZUZ1bmMoXCJkZXZpY2VcIik7XHJcbnZhciBfYWlMb2NhdGlvbiA9IF9haU5hbWVGdW5jKFwibG9jYXRpb25cIik7XHJcbnZhciBfYWlPcGVyYXRpb24gPSBfYWlOYW1lRnVuYyhcIm9wZXJhdGlvblwiKTtcclxudmFyIF9haVNlc3Npb24gPSBfYWlOYW1lRnVuYyhcInNlc3Npb25cIik7XHJcbnZhciBfYWlVc2VyID0gX2FpTmFtZUZ1bmMoXCJ1c2VyXCIpO1xyXG52YXIgX2FpQ2xvdWQgPSBfYWlOYW1lRnVuYyhcImNsb3VkXCIpO1xyXG52YXIgX2FpSW50ZXJuYWwgPSBfYWlOYW1lRnVuYyhcImludGVybmFsXCIpO1xyXG52YXIgQ29udGV4dFRhZ0tleXMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoQ29udGV4dFRhZ0tleXMsIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBDb250ZXh0VGFnS2V5cygpIHtcclxuICAgICAgICByZXR1cm4gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcclxuICAgIH1cclxuICAgIHJldHVybiBDb250ZXh0VGFnS2V5cztcclxufShjcmVhdGVDbGFzc0Zyb21JbnRlcmZhY2Uoe1xyXG4gICAgYXBwbGljYXRpb25WZXJzaW9uOiBfYWlBcHBsaWNhdGlvbihcInZlclwiKSxcclxuICAgIGFwcGxpY2F0aW9uQnVpbGQ6IF9haUFwcGxpY2F0aW9uKFwiYnVpbGRcIiksXHJcbiAgICBhcHBsaWNhdGlvblR5cGVJZDogX2FpQXBwbGljYXRpb24oXCJ0eXBlSWRcIiksXHJcbiAgICBhcHBsaWNhdGlvbklkOiBfYWlBcHBsaWNhdGlvbihcImFwcGxpY2F0aW9uSWRcIiksXHJcbiAgICBhcHBsaWNhdGlvbkxheWVyOiBfYWlBcHBsaWNhdGlvbihcImxheWVyXCIpLFxyXG4gICAgZGV2aWNlSWQ6IF9haURldmljZShcImlkXCIpLFxyXG4gICAgZGV2aWNlSXA6IF9haURldmljZShcImlwXCIpLFxyXG4gICAgZGV2aWNlTGFuZ3VhZ2U6IF9haURldmljZShcImxhbmd1YWdlXCIpLFxyXG4gICAgZGV2aWNlTG9jYWxlOiBfYWlEZXZpY2UoXCJsb2NhbGVcIiksXHJcbiAgICBkZXZpY2VNb2RlbDogX2FpRGV2aWNlKFwibW9kZWxcIiksXHJcbiAgICBkZXZpY2VGcmllbmRseU5hbWU6IF9haURldmljZShcImZyaWVuZGx5TmFtZVwiKSxcclxuICAgIGRldmljZU5ldHdvcms6IF9haURldmljZShcIm5ldHdvcmtcIiksXHJcbiAgICBkZXZpY2VOZXR3b3JrTmFtZTogX2FpRGV2aWNlKFwibmV0d29ya05hbWVcIiksXHJcbiAgICBkZXZpY2VPRU1OYW1lOiBfYWlEZXZpY2UoXCJvZW1OYW1lXCIpLFxyXG4gICAgZGV2aWNlT1M6IF9haURldmljZShcIm9zXCIpLFxyXG4gICAgZGV2aWNlT1NWZXJzaW9uOiBfYWlEZXZpY2UoXCJvc1ZlcnNpb25cIiksXHJcbiAgICBkZXZpY2VSb2xlSW5zdGFuY2U6IF9haURldmljZShcInJvbGVJbnN0YW5jZVwiKSxcclxuICAgIGRldmljZVJvbGVOYW1lOiBfYWlEZXZpY2UoXCJyb2xlTmFtZVwiKSxcclxuICAgIGRldmljZVNjcmVlblJlc29sdXRpb246IF9haURldmljZShcInNjcmVlblJlc29sdXRpb25cIiksXHJcbiAgICBkZXZpY2VUeXBlOiBfYWlEZXZpY2UoXCJ0eXBlXCIpLFxyXG4gICAgZGV2aWNlTWFjaGluZU5hbWU6IF9haURldmljZShcIm1hY2hpbmVOYW1lXCIpLFxyXG4gICAgZGV2aWNlVk1OYW1lOiBfYWlEZXZpY2UoXCJ2bU5hbWVcIiksXHJcbiAgICBkZXZpY2VCcm93c2VyOiBfYWlEZXZpY2UoXCJicm93c2VyXCIpLFxyXG4gICAgZGV2aWNlQnJvd3NlclZlcnNpb246IF9haURldmljZShcImJyb3dzZXJWZXJzaW9uXCIpLFxyXG4gICAgbG9jYXRpb25JcDogX2FpTG9jYXRpb24oXCJpcFwiKSxcclxuICAgIGxvY2F0aW9uQ291bnRyeTogX2FpTG9jYXRpb24oXCJjb3VudHJ5XCIpLFxyXG4gICAgbG9jYXRpb25Qcm92aW5jZTogX2FpTG9jYXRpb24oXCJwcm92aW5jZVwiKSxcclxuICAgIGxvY2F0aW9uQ2l0eTogX2FpTG9jYXRpb24oXCJjaXR5XCIpLFxyXG4gICAgb3BlcmF0aW9uSWQ6IF9haU9wZXJhdGlvbihcImlkXCIpLFxyXG4gICAgb3BlcmF0aW9uTmFtZTogX2FpT3BlcmF0aW9uKFwibmFtZVwiKSxcclxuICAgIG9wZXJhdGlvblBhcmVudElkOiBfYWlPcGVyYXRpb24oXCJwYXJlbnRJZFwiKSxcclxuICAgIG9wZXJhdGlvblJvb3RJZDogX2FpT3BlcmF0aW9uKFwicm9vdElkXCIpLFxyXG4gICAgb3BlcmF0aW9uU3ludGhldGljU291cmNlOiBfYWlPcGVyYXRpb24oXCJzeW50aGV0aWNTb3VyY2VcIiksXHJcbiAgICBvcGVyYXRpb25Db3JyZWxhdGlvblZlY3RvcjogX2FpT3BlcmF0aW9uKFwiY29ycmVsYXRpb25WZWN0b3JcIiksXHJcbiAgICBzZXNzaW9uSWQ6IF9haVNlc3Npb24oXCJpZFwiKSxcclxuICAgIHNlc3Npb25Jc0ZpcnN0OiBfYWlTZXNzaW9uKFwiaXNGaXJzdFwiKSxcclxuICAgIHNlc3Npb25Jc05ldzogX2FpU2Vzc2lvbihcImlzTmV3XCIpLFxyXG4gICAgdXNlckFjY291bnRBY3F1aXNpdGlvbkRhdGU6IF9haVVzZXIoXCJhY2NvdW50QWNxdWlzaXRpb25EYXRlXCIpLFxyXG4gICAgdXNlckFjY291bnRJZDogX2FpVXNlcihcImFjY291bnRJZFwiKSxcclxuICAgIHVzZXJBZ2VudDogX2FpVXNlcihcInVzZXJBZ2VudFwiKSxcclxuICAgIHVzZXJJZDogX2FpVXNlcihcImlkXCIpLFxyXG4gICAgdXNlclN0b3JlUmVnaW9uOiBfYWlVc2VyKFwic3RvcmVSZWdpb25cIiksXHJcbiAgICB1c2VyQXV0aFVzZXJJZDogX2FpVXNlcihcImF1dGhVc2VySWRcIiksXHJcbiAgICB1c2VyQW5vbnltb3VzVXNlckFjcXVpc2l0aW9uRGF0ZTogX2FpVXNlcihcImFub25Vc2VyQWNxdWlzaXRpb25EYXRlXCIpLFxyXG4gICAgdXNlckF1dGhlbnRpY2F0ZWRVc2VyQWNxdWlzaXRpb25EYXRlOiBfYWlVc2VyKFwiYXV0aFVzZXJBY3F1aXNpdGlvbkRhdGVcIiksXHJcbiAgICBjbG91ZE5hbWU6IF9haUNsb3VkKFwibmFtZVwiKSxcclxuICAgIGNsb3VkUm9sZTogX2FpQ2xvdWQoXCJyb2xlXCIpLFxyXG4gICAgY2xvdWRSb2xlVmVyOiBfYWlDbG91ZChcInJvbGVWZXJcIiksXHJcbiAgICBjbG91ZFJvbGVJbnN0YW5jZTogX2FpQ2xvdWQoXCJyb2xlSW5zdGFuY2VcIiksXHJcbiAgICBjbG91ZEVudmlyb25tZW50OiBfYWlDbG91ZChcImVudmlyb25tZW50XCIpLFxyXG4gICAgY2xvdWRMb2NhdGlvbjogX2FpQ2xvdWQoXCJsb2NhdGlvblwiKSxcclxuICAgIGNsb3VkRGVwbG95bWVudFVuaXQ6IF9haUNsb3VkKFwiZGVwbG95bWVudFVuaXRcIiksXHJcbiAgICBpbnRlcm5hbE5vZGVOYW1lOiBfYWlJbnRlcm5hbChcIm5vZGVOYW1lXCIpLFxyXG4gICAgaW50ZXJuYWxTZGtWZXJzaW9uOiBfYWlJbnRlcm5hbChcInNka1ZlcnNpb25cIiksXHJcbiAgICBpbnRlcm5hbEFnZW50VmVyc2lvbjogX2FpSW50ZXJuYWwoXCJhZ2VudFZlcnNpb25cIiksXHJcbiAgICBpbnRlcm5hbFNuaXBwZXQ6IF9haUludGVybmFsKFwic25pcHBldFwiKSxcclxuICAgIGludGVybmFsU2RrU3JjOiBfYWlJbnRlcm5hbChcInNka1NyY1wiKVxyXG59KSkpO1xyXG5leHBvcnQgeyBDb250ZXh0VGFnS2V5cyB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db250ZXh0VGFnS2V5cy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDb21tb24sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkLCBvYmpGb3JFYWNoS2V5LCB0aHJvd0Vycm9yLCB0b0lTT1N0cmluZyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBzdHJJa2V5LCBzdHJOb3RTcGVjaWZpZWQgfSBmcm9tIFwiLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgZGF0YVNhbml0aXplU3RyaW5nIH0gZnJvbSBcIi4vVGVsZW1ldHJ5L0NvbW1vbi9EYXRhU2FuaXRpemVyXCI7XHJcbmltcG9ydCB7IF9EWU5fTkFNRSB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG4vKipcclxuICogQ3JlYXRlIGEgdGVsZW1ldHJ5IGl0ZW0gdGhhdCB0aGUgMURTIGNoYW5uZWwgdW5kZXJzdGFuZHNcclxuICogQHBhcmFtIGl0ZW0gZG9tYWluIHNwZWNpZmljIHByb3BlcnRpZXM7IHBhcnQgQlxyXG4gKiBAcGFyYW0gYmFzZVR5cGUgdGVsZW1ldHJ5IGl0ZW0gdHlwZS4gaWUgUGFnZVZpZXdEYXRhXHJcbiAqIEBwYXJhbSBlbnZlbG9wZU5hbWUgbmFtZSBvZiB0aGUgZW52ZWxvcGUuIGllIE1pY3Jvc29mdC5BcHBsaWNhdGlvbkluc2lnaHRzLjxpbnN0cnVtZW50YXRpb24ga2V5Pi5QYWdlVmlld1xyXG4gKiBAcGFyYW0gY3VzdG9tUHJvcGVydGllcyB1c2VyIGRlZmluZWQgY3VzdG9tIHByb3BlcnRpZXM7IHBhcnQgQ1xyXG4gKiBAcGFyYW0gc3lzdGVtUHJvcGVydGllcyBzeXN0ZW0gcHJvcGVydGllcyB0aGF0IGFyZSBhZGRlZCB0byB0aGUgY29udGV4dDsgcGFydCBBXHJcbiAqIEByZXR1cm5zIElUZWxlbWV0cnlJdGVtIHRoYXQgaXMgc2VudCB0byBjaGFubmVsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGVsZW1ldHJ5SXRlbShpdGVtLCBiYXNlVHlwZSwgZW52ZWxvcGVOYW1lLCBsb2dnZXIsIGN1c3RvbVByb3BlcnRpZXMsIHN5c3RlbVByb3BlcnRpZXMpIHtcclxuICAgIHZhciBfYTtcclxuICAgIGVudmVsb3BlTmFtZSA9IGRhdGFTYW5pdGl6ZVN0cmluZyhsb2dnZXIsIGVudmVsb3BlTmFtZSkgfHwgc3RyTm90U3BlY2lmaWVkO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGl0ZW0pIHx8XHJcbiAgICAgICAgaXNOdWxsT3JVbmRlZmluZWQoYmFzZVR5cGUpIHx8XHJcbiAgICAgICAgaXNOdWxsT3JVbmRlZmluZWQoZW52ZWxvcGVOYW1lKSkge1xyXG4gICAgICAgIHRocm93RXJyb3IoXCJJbnB1dCBkb2Vzbid0IGNvbnRhaW4gYWxsIHJlcXVpcmVkIGZpZWxkc1wiKTtcclxuICAgIH1cclxuICAgIHZhciBpS2V5ID0gXCJcIjtcclxuICAgIGlmIChpdGVtW3N0cklrZXldKSB7XHJcbiAgICAgICAgaUtleSA9IGl0ZW1bc3RySWtleV07XHJcbiAgICAgICAgZGVsZXRlIGl0ZW1bc3RySWtleV07XHJcbiAgICB9XHJcbiAgICB2YXIgdGVsZW1ldHJ5SXRlbSA9IChfYSA9IHt9LFxyXG4gICAgICAgIF9hW19EWU5fTkFNRSAvKiBAbWluOm5hbWUgKi9dID0gZW52ZWxvcGVOYW1lLFxyXG4gICAgICAgIF9hLnRpbWUgPSB0b0lTT1N0cmluZyhuZXcgRGF0ZSgpKSxcclxuICAgICAgICBfYS5pS2V5ID0gaUtleSxcclxuICAgICAgICBfYS5leHQgPSBzeXN0ZW1Qcm9wZXJ0aWVzID8gc3lzdGVtUHJvcGVydGllcyA6IHt9LFxyXG4gICAgICAgIF9hLnRhZ3MgPSBbXSxcclxuICAgICAgICBfYS5kYXRhID0ge30sXHJcbiAgICAgICAgX2EuYmFzZVR5cGUgPSBiYXNlVHlwZSxcclxuICAgICAgICBfYS5iYXNlRGF0YSA9IGl0ZW0gLy8gUGFydCBCXHJcbiAgICAsXHJcbiAgICAgICAgX2EpO1xyXG4gICAgLy8gUGFydCBDXHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVByb3BlcnRpZXMpKSB7XHJcbiAgICAgICAgb2JqRm9yRWFjaEtleShjdXN0b21Qcm9wZXJ0aWVzLCBmdW5jdGlvbiAocHJvcCwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdGVsZW1ldHJ5SXRlbS5kYXRhW3Byb3BdID0gdmFsdWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVsZW1ldHJ5SXRlbTtcclxufVxyXG52YXIgVGVsZW1ldHJ5SXRlbUNyZWF0b3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBUZWxlbWV0cnlJdGVtQ3JlYXRvcigpIHtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgdGVsZW1ldHJ5IGl0ZW0gdGhhdCB0aGUgMURTIGNoYW5uZWwgdW5kZXJzdGFuZHNcclxuICAgICAqIEBwYXJhbSBpdGVtIGRvbWFpbiBzcGVjaWZpYyBwcm9wZXJ0aWVzOyBwYXJ0IEJcclxuICAgICAqIEBwYXJhbSBiYXNlVHlwZSB0ZWxlbWV0cnkgaXRlbSB0eXBlLiBpZSBQYWdlVmlld0RhdGFcclxuICAgICAqIEBwYXJhbSBlbnZlbG9wZU5hbWUgbmFtZSBvZiB0aGUgZW52ZWxvcGUuIGllIE1pY3Jvc29mdC5BcHBsaWNhdGlvbkluc2lnaHRzLjxpbnN0cnVtZW50YXRpb24ga2V5Pi5QYWdlVmlld1xyXG4gICAgICogQHBhcmFtIGN1c3RvbVByb3BlcnRpZXMgdXNlciBkZWZpbmVkIGN1c3RvbSBwcm9wZXJ0aWVzOyBwYXJ0IENcclxuICAgICAqIEBwYXJhbSBzeXN0ZW1Qcm9wZXJ0aWVzIHN5c3RlbSBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFkZGVkIHRvIHRoZSBjb250ZXh0OyBwYXJ0IEFcclxuICAgICAqIEByZXR1cm5zIElUZWxlbWV0cnlJdGVtIHRoYXQgaXMgc2VudCB0byBjaGFubmVsXHJcbiAgICAgKi9cclxuICAgIFRlbGVtZXRyeUl0ZW1DcmVhdG9yLmNyZWF0ZSA9IGNyZWF0ZVRlbGVtZXRyeUl0ZW07XHJcbiAgICByZXR1cm4gVGVsZW1ldHJ5SXRlbUNyZWF0b3I7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFRlbGVtZXRyeUl0ZW1DcmVhdG9yIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRlbGVtZXRyeUl0ZW1DcmVhdG9yLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENvbW1vbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbnRleHRUYWdLZXlzIH0gZnJvbSBcIi4vQ29udHJhY3RzL0NvbnRleHRUYWdLZXlzXCI7XHJcbmV4cG9ydCB2YXIgRXh0ZW5zaW9ucyA9IHtcclxuICAgIFVzZXJFeHQ6IFwidXNlclwiLFxyXG4gICAgRGV2aWNlRXh0OiBcImRldmljZVwiLFxyXG4gICAgVHJhY2VFeHQ6IFwidHJhY2VcIixcclxuICAgIFdlYkV4dDogXCJ3ZWJcIixcclxuICAgIEFwcEV4dDogXCJhcHBcIixcclxuICAgIE9TRXh0OiBcIm9zXCIsXHJcbiAgICBTZXNzaW9uRXh0OiBcInNlc1wiLFxyXG4gICAgU0RLRXh0OiBcInNka1wiXHJcbn07XHJcbmV4cG9ydCB2YXIgQ3R4VGFnS2V5cyA9IG5ldyBDb250ZXh0VGFnS2V5cygpO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJ0QUV4dGVuc2lvbnMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ29tbW9uLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcbi8vIExpY2Vuc2VkIHVuZGVyIHRoZVxyXG5leHBvcnQgeyBVdGlsLCBDb3JyZWxhdGlvbklkSGVscGVyLCBEYXRlVGltZVV0aWxzLCBkYXRlVGltZVV0aWxzTm93LCBkYXRlVGltZVV0aWxzRHVyYXRpb24sIFVybEhlbHBlciwgaXNJbnRlcm5hbEFwcGxpY2F0aW9uSW5zaWdodHNFbmRwb2ludCwgY3JlYXRlRGlzdHJpYnV0ZWRUcmFjZUNvbnRleHRGcm9tVHJhY2UgfSBmcm9tIFwiLi9VdGlsXCI7XHJcbmV4cG9ydCB7IFRocm90dGxlTWdyIH0gZnJvbSBcIi4vVGhyb3R0bGVNZ3JcIjtcclxuZXhwb3J0IHsgcGFyc2VDb25uZWN0aW9uU3RyaW5nLCBDb25uZWN0aW9uU3RyaW5nUGFyc2VyIH0gZnJvbSBcIi4vQ29ubmVjdGlvblN0cmluZ1BhcnNlclwiO1xyXG5leHBvcnQgeyBSZXF1ZXN0SGVhZGVycyB9IGZyb20gXCIuL1JlcXVlc3RSZXNwb25zZUhlYWRlcnNcIjtcclxuZXhwb3J0IHsgRGlzYWJsZWRQcm9wZXJ0eU5hbWUsIFByb2Nlc3NMZWdhY3ksIFNhbXBsZVJhdGUsIEh0dHBNZXRob2QsIERFRkFVTFRfQlJFRVpFX0VORFBPSU5ULCBERUZBVUxUX0JSRUVaRV9QQVRILCBzdHJOb3RTcGVjaWZpZWQgfSBmcm9tIFwiLi9Db25zdGFudHNcIjtcclxuZXhwb3J0IHsgRW52ZWxvcGUgfSBmcm9tIFwiLi9UZWxlbWV0cnkvQ29tbW9uL0VudmVsb3BlXCI7XHJcbmV4cG9ydCB7IEV2ZW50IH0gZnJvbSBcIi4vVGVsZW1ldHJ5L0V2ZW50XCI7XHJcbmV4cG9ydCB7IEV4Y2VwdGlvbiB9IGZyb20gXCIuL1RlbGVtZXRyeS9FeGNlcHRpb25cIjtcclxuZXhwb3J0IHsgTWV0cmljIH0gZnJvbSBcIi4vVGVsZW1ldHJ5L01ldHJpY1wiO1xyXG5leHBvcnQgeyBQYWdlVmlldyB9IGZyb20gXCIuL1RlbGVtZXRyeS9QYWdlVmlld1wiO1xyXG5leHBvcnQgeyBSZW1vdGVEZXBlbmRlbmN5RGF0YSB9IGZyb20gXCIuL1RlbGVtZXRyeS9SZW1vdGVEZXBlbmRlbmN5RGF0YVwiO1xyXG5leHBvcnQgeyBUcmFjZSB9IGZyb20gXCIuL1RlbGVtZXRyeS9UcmFjZVwiO1xyXG5leHBvcnQgeyBQYWdlVmlld1BlcmZvcm1hbmNlIH0gZnJvbSBcIi4vVGVsZW1ldHJ5L1BhZ2VWaWV3UGVyZm9ybWFuY2VcIjtcclxuZXhwb3J0IHsgRGF0YSB9IGZyb20gXCIuL1RlbGVtZXRyeS9Db21tb24vRGF0YVwiO1xyXG5leHBvcnQgeyBTZXZlcml0eUxldmVsIH0gZnJvbSBcIi4vSW50ZXJmYWNlcy9Db250cmFjdHMvU2V2ZXJpdHlMZXZlbFwiO1xyXG5leHBvcnQgeyBDb25maWd1cmF0aW9uTWFuYWdlciB9IGZyb20gXCIuL0ludGVyZmFjZXMvSUNvbmZpZ1wiO1xyXG5leHBvcnQgeyBDb250ZXh0VGFnS2V5cyB9IGZyb20gXCIuL0ludGVyZmFjZXMvQ29udHJhY3RzL0NvbnRleHRUYWdLZXlzXCI7XHJcbmV4cG9ydCB7IERhdGFTYW5pdGl6ZXIsIGRhdGFTYW5pdGl6ZUtleUFuZEFkZFVuaXF1ZW5lc3MsIGRhdGFTYW5pdGl6ZUtleSwgZGF0YVNhbml0aXplU3RyaW5nLCBkYXRhU2FuaXRpemVVcmwsIGRhdGFTYW5pdGl6ZU1lc3NhZ2UsIGRhdGFTYW5pdGl6ZUV4Y2VwdGlvbiwgZGF0YVNhbml0aXplUHJvcGVydGllcywgZGF0YVNhbml0aXplTWVhc3VyZW1lbnRzLCBkYXRhU2FuaXRpemVJZCwgZGF0YVNhbml0aXplSW5wdXQsIGRzUGFkTnVtYmVyIH0gZnJvbSBcIi4vVGVsZW1ldHJ5L0NvbW1vbi9EYXRhU2FuaXRpemVyXCI7XHJcbmV4cG9ydCB7IFRlbGVtZXRyeUl0ZW1DcmVhdG9yLCBjcmVhdGVUZWxlbWV0cnlJdGVtIH0gZnJvbSBcIi4vVGVsZW1ldHJ5SXRlbUNyZWF0b3JcIjtcclxuZXhwb3J0IHsgQ3R4VGFnS2V5cywgRXh0ZW5zaW9ucyB9IGZyb20gXCIuL0ludGVyZmFjZXMvUGFydEFFeHRlbnNpb25zXCI7XHJcbmV4cG9ydCB7IERpc3RyaWJ1dGVkVHJhY2luZ01vZGVzIH0gZnJvbSBcIi4vRW51bXNcIjtcclxuZXhwb3J0IHsgc3RyaW5nVG9Cb29sT3JEZWZhdWx0LCBtc1RvVGltZVNwYW4sIGdldEV4dGVuc2lvbkJ5TmFtZSwgaXNDcm9zc09yaWdpbkVycm9yIH0gZnJvbSBcIi4vSGVscGVyRnVuY3NcIjtcclxuZXhwb3J0IHsgaXNCZWFjb25zU3VwcG9ydGVkIGFzIGlzQmVhY29uQXBpU3VwcG9ydGVkLCBjcmVhdGVUcmFjZVBhcmVudCwgcGFyc2VUcmFjZVBhcmVudCwgaXNWYWxpZFRyYWNlSWQsIGlzVmFsaWRTcGFuSWQsIGlzVmFsaWRUcmFjZVBhcmVudCwgaXNTYW1wbGVkRmxhZywgZm9ybWF0VHJhY2VQYXJlbnQsIGZpbmRXM2NUcmFjZVBhcmVudCB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5leHBvcnQgeyBjcmVhdGVEb21FdmVudCB9IGZyb20gXCIuL0RvbUhlbHBlckZ1bmNzXCI7XHJcbmV4cG9ydCB7IHV0bERpc2FibGVTdG9yYWdlLCB1dGxFbmFibGVTdG9yYWdlLCB1dGxDYW5Vc2VMb2NhbFN0b3JhZ2UsIHV0bEdldExvY2FsU3RvcmFnZSwgdXRsU2V0TG9jYWxTdG9yYWdlLCB1dGxSZW1vdmVTdG9yYWdlLCB1dGxDYW5Vc2VTZXNzaW9uU3RvcmFnZSwgdXRsR2V0U2Vzc2lvblN0b3JhZ2VLZXlzLCB1dGxHZXRTZXNzaW9uU3RvcmFnZSwgdXRsU2V0U2Vzc2lvblN0b3JhZ2UsIHV0bFJlbW92ZVNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZUhlbHBlckZ1bmNzXCI7XHJcbmV4cG9ydCB7IHVybFBhcnNlVXJsLCB1cmxHZXRBYnNvbHV0ZVVybCwgdXJsR2V0UGF0aE5hbWUsIHVybEdldENvbXBsZXRlVXJsLCB1cmxQYXJzZUhvc3QsIHVybFBhcnNlRnVsbEhvc3QgfSBmcm9tIFwiLi9VcmxIZWxwZXJGdW5jc1wiO1xyXG5leHBvcnQgdmFyIFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyID0gXCJBcHBJbnNpZ2h0c1Byb3BlcnRpZXNQbHVnaW5cIjtcclxuZXhwb3J0IHZhciBCcmVlemVDaGFubmVsSWRlbnRpZmllciA9IFwiQXBwSW5zaWdodHNDaGFubmVsUGx1Z2luXCI7XHJcbmV4cG9ydCB2YXIgQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllciA9IFwiQXBwbGljYXRpb25JbnNpZ2h0c0FuYWx5dGljc1wiO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbi5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBXZWIgQW5hbHl0aWNzLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG4vLyBAc2tpcC1maWxlLW1pbmlmeVxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyBBVVRPIEdFTkVSQVRFRCBGSUxFOiBUaGlzIGZpbGUgaXMgQXV0byBHZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkLlxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG4vLyBOb3RlOiBET04nVCBFeHBvcnQgdGhlc2UgY29uc3QgZnJvbSB0aGUgcGFja2FnZSBhcyB3ZSBhcmUgc3RpbGwgdGFyZ2V0aW5nIEVTMyB0aGlzIHdpbGwgZXhwb3J0IGEgbXV0YWJsZSB2YXJpYWJsZXMgdGhhdCBzb21lb25lIGNvdWxkIGNoYW5nZSEhIVxyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG5leHBvcnQgdmFyIF9EWU5fVE9fU1RSSU5HID0gXCJ0b1N0cmluZ1wiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fRElTQUJMRV9FWENFUFRJT05fVFIwID0gXCJkaXNhYmxlRXhjZXB0aW9uVHJhY2tpbmdcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0FVVE9fVFJBQ0tfUEFHRV9WSVNJMSA9IFwiYXV0b1RyYWNrUGFnZVZpc2l0VGltZVwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fT1ZFUlJJREVfUEFHRV9WSUVXX0QyID0gXCJvdmVycmlkZVBhZ2VWaWV3RHVyYXRpb25cIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0VOQUJMRV9VTkhBTkRMRURfUFJPMyA9IFwiZW5hYmxlVW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvblRyYWNraW5nXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9TQU1QTElOR19QRVJDRU5UQUdFID0gXCJzYW1wbGluZ1BlcmNlbnRhZ2VcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0lTX1NUT1JBR0VfVVNFX0RJU0FCNCA9IFwiaXNTdG9yYWdlVXNlRGlzYWJsZWRcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0lTX0JST1dTRVJfTElOS19UUkFDNSA9IFwiaXNCcm93c2VyTGlua1RyYWNraW5nRW5hYmxlZFwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fRU5BQkxFX0FVVE9fUk9VVEVfVFI2ID0gXCJlbmFibGVBdXRvUm91dGVUcmFja2luZ1wiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fTkFNRV9QUkVGSVggPSBcIm5hbWVQcmVmaXhcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0RJU0FCTEVfRkxVU0hfT05fQkVGNyA9IFwiZGlzYWJsZUZsdXNoT25CZWZvcmVVbmxvYWRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0RJU0FCTEVfRkxVU0hfT05fVU5MOCA9IFwiZGlzYWJsZUZsdXNoT25VbmxvYWRcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0NPUkUgPSBcImNvcmVcIjsgLy8gQ291bnQ6IDdcclxuZXhwb3J0IHZhciBfRFlOX0RBVEFfVFlQRSA9IFwiZGF0YVR5cGVcIjsgLy8gQ291bnQ6IDhcclxuZXhwb3J0IHZhciBfRFlOX0VOVkVMT1BFX1RZUEUgPSBcImVudmVsb3BlVHlwZVwiOyAvLyBDb3VudDogN1xyXG5leHBvcnQgdmFyIF9EWU5fRElBR19MT0cgPSBcImRpYWdMb2dcIjsgLy8gQ291bnQ6IDEzXHJcbmV4cG9ydCB2YXIgX0RZTl9UUkFDSyA9IFwidHJhY2tcIjsgLy8gQ291bnQ6IDdcclxuZXhwb3J0IHZhciBfRFlOX1RSQUNLX1BBR0VfVklFVyA9IFwidHJhY2tQYWdlVmlld1wiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fVFJBQ0tfUFJFVklPVVNfUEFHRV85ID0gXCJ0cmFja1ByZXZpb3VzUGFnZVZpc2l0XCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9TRU5EX1BBR0VfVklFV19JTlRFUjEwID0gXCJzZW5kUGFnZVZpZXdJbnRlcm5hbFwiOyAvLyBDb3VudDogN1xyXG5leHBvcnQgdmFyIF9EWU5fU0VORF9QQUdFX1ZJRVdfUEVSRk8xMSA9IFwic2VuZFBhZ2VWaWV3UGVyZm9ybWFuY2VJbnRlcm5hbFwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fUE9QVUxBVEVfUEFHRV9WSUVXX1AxMiA9IFwicG9wdWxhdGVQYWdlVmlld1BlcmZvcm1hbmNlRXZlbnRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0hSRUYgPSBcImhyZWZcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX1NFTkRfRVhDRVBUSU9OX0lOVEVSMTMgPSBcInNlbmRFeGNlcHRpb25JbnRlcm5hbFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRVhDRVBUSU9OID0gXCJleGNlcHRpb25cIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0VSUk9SID0gXCJlcnJvclwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fX09ORVJST1IgPSBcIl9vbmVycm9yXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9FUlJPUl9TUkMgPSBcImVycm9yU3JjXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9MSU5FX05VTUJFUiA9IFwibGluZU51bWJlclwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fQ09MVU1OX05VTUJFUiA9IFwiY29sdW1uTnVtYmVyXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9NRVNTQUdFID0gXCJtZXNzYWdlXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9fQ1JFQVRFX0FVVE9fRVhDRVBUSTE0ID0gXCJDcmVhdGVBdXRvRXhjZXB0aW9uXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9BRERfVEVMRU1FVFJZX0lOSVRJQTE1ID0gXCJhZGRUZWxlbWV0cnlJbml0aWFsaXplclwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fRFVSQVRJT04gPSBcImR1cmF0aW9uXCI7IC8vIENvdW50OiAxMFxyXG5leHBvcnQgdmFyIF9EWU5fTEVOR1RIID0gXCJsZW5ndGhcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0lTX1BFUkZPUk1BTkNFX1RJTUlOMTYgPSBcImlzUGVyZm9ybWFuY2VUaW1pbmdTdXBwb3J0ZWRcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9QRVJGT1JNQU5DRV9USU1JMTcgPSBcImdldFBlcmZvcm1hbmNlVGltaW5nXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9OQVZJR0FUSU9OX1NUQVJUID0gXCJuYXZpZ2F0aW9uU3RhcnRcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1NIT1VMRF9DT0xMRUNUX0RVUkFUMTggPSBcInNob3VsZENvbGxlY3REdXJhdGlvblwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fSVNfUEVSRk9STUFOQ0VfVElNSU4xOSA9IFwiaXNQZXJmb3JtYW5jZVRpbWluZ0RhdGFSZWFkeVwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fR0VUX0VOVFJJRVNfQllfVFlQRSA9IFwiZ2V0RW50cmllc0J5VHlwZVwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fUkVTUE9OU0VfU1RBUlQgPSBcInJlc3BvbnNlU3RhcnRcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX1JFUVVFU1RfU1RBUlQgPSBcInJlcXVlc3RTdGFydFwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fTE9BRF9FVkVOVF9FTkQgPSBcImxvYWRFdmVudEVuZFwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fUkVTUE9OU0VfRU5EID0gXCJyZXNwb25zZUVuZFwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fQ09OTkVDVF9FTkQgPSBcImNvbm5lY3RFbmRcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1BBR0VfVklTSVRfU1RBUlRfVElNMjAgPSBcInBhZ2VWaXNpdFN0YXJ0VGltZVwiOyAvLyBDb3VudDogMlxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX0R5bmFtaWNDb25zdGFudHMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gV2ViIEFuYWx5dGljcywgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgZGF0ZVRpbWVVdGlsc0R1cmF0aW9uIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb25cIjtcclxuaW1wb3J0IHsgX3Rocm93SW50ZXJuYWwsIGFyckZvckVhY2gsIGR1bXBPYmosIGdldERvY3VtZW50LCBnZXRFeGNlcHRpb25OYW1lLCBnZXRMb2NhdGlvbiwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9EVVJBVElPTiwgX0RZTl9HRVRfUEVSRk9STUFOQ0VfVElNSTE3LCBfRFlOX0hSRUYsIF9EWU5fSVNfUEVSRk9STUFOQ0VfVElNSU4xNiwgX0RZTl9JU19QRVJGT1JNQU5DRV9USU1JTjE5LCBfRFlOX0xFTkdUSCwgX0RZTl9OQVZJR0FUSU9OX1NUQVJULCBfRFlOX1BPUFVMQVRFX1BBR0VfVklFV19QMTIsIF9EWU5fU0VORF9QQUdFX1ZJRVdfSU5URVIxMCwgX0RZTl9TRU5EX1BBR0VfVklFV19QRVJGTzExLCBfRFlOX1NIT1VMRF9DT0xMRUNUX0RVUkFUMTgsIF9EWU5fVFJBQ0tfUEFHRV9WSUVXIH0gZnJvbSBcIi4uLy4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG4vKipcclxuICogQ2xhc3MgZW5jYXBzdWxhdGVzIHNlbmRpbmcgcGFnZSB2aWV3cyBhbmQgcGFnZSB2aWV3IHBlcmZvcm1hbmNlIHRlbGVtZXRyeS5cclxuICovXHJcbnZhciBQYWdlVmlld01hbmFnZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBQYWdlVmlld01hbmFnZXIoYXBwSW5zaWdodHMsIG92ZXJyaWRlUGFnZVZpZXdEdXJhdGlvbiwgY29yZSwgcGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIpIHtcclxuICAgICAgICBkeW5hbWljUHJvdG8oUGFnZVZpZXdNYW5hZ2VyLCB0aGlzLCBmdW5jdGlvbiAoX3NlbGYpIHtcclxuICAgICAgICAgICAgdmFyIGludGVydmFsSGFuZGxlID0gbnVsbDtcclxuICAgICAgICAgICAgdmFyIGl0ZW1RdWV1ZSA9IFtdO1xyXG4gICAgICAgICAgICB2YXIgcGFnZVZpZXdQZXJmb3JtYW5jZVNlbnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdmFyIF9sb2dnZXI7XHJcbiAgICAgICAgICAgIGlmIChjb3JlKSB7XHJcbiAgICAgICAgICAgICAgICBfbG9nZ2VyID0gY29yZS5sb2dnZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2ZsdXNoQ2hhbm5lbHMoaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvcmUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb3JlLmZsdXNoKGlzQXN5bmMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9hZGRRdWV1ZShjYikge1xyXG4gICAgICAgICAgICAgICAgaXRlbVF1ZXVlLnB1c2goY2IpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpbnRlcnZhbEhhbmRsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGludGVydmFsSGFuZGxlID0gc2V0SW50ZXJ2YWwoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFsbEl0ZW1zID0gaXRlbVF1ZXVlLnNsaWNlKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZG9GbHVzaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUXVldWUgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChhbGxJdGVtcywgZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXRlbSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90IHByb2Nlc3NlZCBzbyByZXNjaGVkdWxlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1RdWV1ZS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9GbHVzaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVF1ZXVlW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbEhhbmRsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbEhhbmRsZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvRmx1c2gpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHByb2Nlc3MgYXQgbGVhc3Qgb25lIGl0ZW0gc28gZmx1c2ggdGhlIHF1ZXVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmx1c2hDaGFubmVscyh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fVFJBQ0tfUEFHRV9WSUVXIC8qIEBtaW46JTJldHJhY2tQYWdlVmlldyAqL10gPSBmdW5jdGlvbiAocGFnZVZpZXcsIGN1c3RvbVByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBuYW1lID0gcGFnZVZpZXcubmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChuYW1lKSB8fCB0eXBlb2YgbmFtZSAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBnZXREb2N1bWVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwYWdlVmlldy5uYW1lID0gZG9jICYmIGRvYy50aXRsZSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIHVyaSA9IHBhZ2VWaWV3LnVyaTtcclxuICAgICAgICAgICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh1cmkpIHx8IHR5cGVvZiB1cmkgIT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb25fMSA9IGdldExvY2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJpID0gcGFnZVZpZXcudXJpID0gbG9jYXRpb25fMSAmJiBsb2NhdGlvbl8xW19EWU5fSFJFRiAvKiBAbWluOiUyZWhyZWYgKi9dIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjYXNlIDFhLiBpZiBwZXJmb3JtYW5jZSB0aW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYnJvd3Nlciwgc2VuZCB0aGUgcGFnZSB2aWV3IHRlbGVtZXRyeSB3aXRoIHRoZSBkdXJhdGlvbiBwcm92aWRlZCBieSB0aGUgdXNlci4gSWYgdGhlIHVzZXJcclxuICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBwcm92aWRlIHRoZSBkdXJhdGlvbiwgc2V0IGR1cmF0aW9uIHRvIHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgLy8gQWxzbyB0aGlzIGlzIGNhc2UgNFxyXG4gICAgICAgICAgICAgICAgaWYgKCFwYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlcltfRFlOX0lTX1BFUkZPUk1BTkNFX1RJTUlOMTYgLyogQG1pbjolMmVpc1BlcmZvcm1hbmNlVGltaW5nU3VwcG9ydGVkICovXSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXBwSW5zaWdodHNbX0RZTl9TRU5EX1BBR0VfVklFV19JTlRFUjEwIC8qIEBtaW46JTJlc2VuZFBhZ2VWaWV3SW50ZXJuYWwgKi9dKHBhZ2VWaWV3LCBjdXN0b21Qcm9wZXJ0aWVzKTtcclxuICAgICAgICAgICAgICAgICAgICBfZmx1c2hDaGFubmVscyh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBubyBuYXZpZ2F0aW9uIHRpbWluZyAoSUUgOCwgaU9TIFNhZmFyaSA4LjQsIE9wZXJhIE1pbmkgOCAtIHNlZSBodHRwOi8vY2FuaXVzZS5jb20vI2ZlYXQ9bmF2LXRpbWluZylcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfbG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgMjUgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5OYXZpZ2F0aW9uVGltaW5nTm90U3VwcG9ydGVkICovLCBcInRyYWNrUGFnZVZpZXc6IG5hdmlnYXRpb24gdGltaW5nIEFQSSB1c2VkIGZvciBjYWxjdWxhdGlvbiBvZiBwYWdlIGR1cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyLiBUaGlzIHBhZ2UgdmlldyB3aWxsIGJlIGNvbGxlY3RlZCB3aXRob3V0IGR1cmF0aW9uIGFuZCB0aW1pbmcgaW5mby5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIHBhZ2VWaWV3U2VudCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIGN1c3RvbUR1cmF0aW9uO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHBlcmZvcm1hbmNlIHRpbWluZyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXIsIGNhbGN1bGF0ZSB0aGUgY3VzdG9tIGR1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBwYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlcltfRFlOX0dFVF9QRVJGT1JNQU5DRV9USU1JMTcgLyogQG1pbjolMmVnZXRQZXJmb3JtYW5jZVRpbWluZyAqL10oKVtfRFlOX05BVklHQVRJT05fU1RBUlQgLyogQG1pbjolMmVuYXZpZ2F0aW9uU3RhcnQgKi9dO1xyXG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUR1cmF0aW9uID0gZGF0ZVRpbWVVdGlsc0R1cmF0aW9uKHN0YXJ0LCArbmV3IERhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXJbX0RZTl9TSE9VTERfQ09MTEVDVF9EVVJBVDE4IC8qIEBtaW46JTJlc2hvdWxkQ29sbGVjdER1cmF0aW9uICovXShjdXN0b21EdXJhdGlvbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRHVyYXRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHVzZXIgaGFzIHByb3ZpZGVkIGR1cmF0aW9uLCBzZW5kIGEgcGFnZSB2aWV3IHRlbGVtZXRyeSB3aXRoIHRoZSBwcm92aWRlZCBkdXJhdGlvbi4gT3RoZXJ3aXNlLCBpZlxyXG4gICAgICAgICAgICAgICAgLy8gb3ZlcnJpZGVQYWdlVmlld0R1cmF0aW9uIGlzIHNldCB0byB0cnVlLCBzZW5kIGEgcGFnZSB2aWV3IHRlbGVtZXRyeSB3aXRoIHRoZSBjdXN0b20gZHVyYXRpb24gY2FsY3VsYXRlZCBlYXJsaWVyXHJcbiAgICAgICAgICAgICAgICB2YXIgZHVyYXRpb247XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVByb3BlcnRpZXMpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVByb3BlcnRpZXNbX0RZTl9EVVJBVElPTiAvKiBAbWluOiUyZWR1cmF0aW9uICovXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IGN1c3RvbVByb3BlcnRpZXNbX0RZTl9EVVJBVElPTiAvKiBAbWluOiUyZWR1cmF0aW9uICovXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChvdmVycmlkZVBhZ2VWaWV3RHVyYXRpb24gfHwgIWlzTmFOKGR1cmF0aW9uKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihkdXJhdGlvbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY3VzdG9tUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tUHJvcGVydGllcyA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVByb3BlcnRpZXNbX0RZTl9EVVJBVElPTiAvKiBAbWluOiUyZWR1cmF0aW9uICovXSA9IGN1c3RvbUR1cmF0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBjYXNlIDJcclxuICAgICAgICAgICAgICAgICAgICBhcHBJbnNpZ2h0c1tfRFlOX1NFTkRfUEFHRV9WSUVXX0lOVEVSMTAgLyogQG1pbjolMmVzZW5kUGFnZVZpZXdJbnRlcm5hbCAqL10ocGFnZVZpZXcsIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9mbHVzaENoYW5uZWxzKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3U2VudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBub3cgdHJ5IHRvIHNlbmQgdGhlIHBhZ2UgdmlldyBwZXJmb3JtYW5jZSB0ZWxlbWV0cnlcclxuICAgICAgICAgICAgICAgIHZhciBtYXhEdXJhdGlvbkxpbWl0ID0gNjAwMDA7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbVByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzID0ge307XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBRdWV1ZSB0aGUgZXZlbnQgZm9yIHByb2Nlc3NpbmdcclxuICAgICAgICAgICAgICAgIF9hZGRRdWV1ZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByb2Nlc3NlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlcltfRFlOX0lTX1BFUkZPUk1BTkNFX1RJTUlOMTkgLyogQG1pbjolMmVpc1BlcmZvcm1hbmNlVGltaW5nRGF0YVJlYWR5ICovXSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhZ2VWaWV3UGVyZm9ybWFuY2UgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmk6IHVyaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyW19EWU5fUE9QVUxBVEVfUEFHRV9WSUVXX1AxMiAvKiBAbWluOiUyZXBvcHVsYXRlUGFnZVZpZXdQZXJmb3JtYW5jZUV2ZW50ICovXShwYWdlVmlld1BlcmZvcm1hbmNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFnZVZpZXdQZXJmb3JtYW5jZS5pc1ZhbGlkICYmICFwYWdlVmlld1NlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBuYXZpZ2F0aW9uIHRpbWluZyBnaXZlcyBpbnZhbGlkIG51bWJlcnMsIHRoZW4gZ28gYmFjayB0byBcIm92ZXJyaWRlIHBhZ2UgdmlldyBkdXJhdGlvblwiIG1vZGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhhdCdzIHRoZSBiZXN0IHZhbHVlIHdlIGNhbiBnZXQgdGhhdCBtYWtlcyBzZW5zZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzW19EWU5fRFVSQVRJT04gLyogQG1pbjolMmVkdXJhdGlvbiAqL10gPSBjdXN0b21EdXJhdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBJbnNpZ2h0c1tfRFlOX1NFTkRfUEFHRV9WSUVXX0lOVEVSMTAgLyogQG1pbjolMmVzZW5kUGFnZVZpZXdJbnRlcm5hbCAqL10ocGFnZVZpZXcsIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlVmlld1NlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tUHJvcGVydGllc1tfRFlOX0RVUkFUSU9OIC8qIEBtaW46JTJlZHVyYXRpb24gKi9dID0gcGFnZVZpZXdQZXJmb3JtYW5jZS5kdXJhdGlvbk1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBJbnNpZ2h0c1tfRFlOX1NFTkRfUEFHRV9WSUVXX0lOVEVSMTAgLyogQG1pbjolMmVzZW5kUGFnZVZpZXdJbnRlcm5hbCAqL10ocGFnZVZpZXcsIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBhZ2VWaWV3UGVyZm9ybWFuY2VTZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcEluc2lnaHRzW19EWU5fU0VORF9QQUdFX1ZJRVdfUEVSRk8xMSAvKiBAbWluOiUyZXNlbmRQYWdlVmlld1BlcmZvcm1hbmNlSW50ZXJuYWwgKi9dKHBhZ2VWaWV3UGVyZm9ybWFuY2UsIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlVmlld1BlcmZvcm1hbmNlU2VudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID4gMCAmJiBkYXRlVGltZVV0aWxzRHVyYXRpb24oc3RhcnQsICtuZXcgRGF0ZSkgPiBtYXhEdXJhdGlvbkxpbWl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBwZXJmb3JtYW5jZSB0aW1pbmdzIGFyZSBub3QgcmVhZHkgYnV0IHdlIGV4Y2VlZGVkIHRoZSBtYXhpbXVtIGR1cmF0aW9uIGxpbWl0LCBqdXN0IGxvZyBhIHBhZ2UgdmlldyB0ZWxlbWV0cnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpdGggdGhlIG1heGltdW0gZHVyYXRpb24gbGltaXQuIE90aGVyd2lzZSwga2VlcCB3YWl0aW5nIHVudGlsIHBlcmZvcm1hbmNlIHRpbWluZ3MgYXJlIHJlYWR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlVmlld1NlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzW19EWU5fRFVSQVRJT04gLyogQG1pbjolMmVkdXJhdGlvbiAqL10gPSBtYXhEdXJhdGlvbkxpbWl0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcEluc2lnaHRzW19EWU5fU0VORF9QQUdFX1ZJRVdfSU5URVIxMCAvKiBAbWluOiUyZXNlbmRQYWdlVmlld0ludGVybmFsICovXShwYWdlVmlldywgY3VzdG9tUHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX2xvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCAzOCAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRyYWNrUFZGYWlsZWRDYWxjICovLCBcInRyYWNrUGFnZVZpZXcgZmFpbGVkIG9uIHBhZ2UgbG9hZCBjYWxjdWxhdGlvbjogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NlZDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi50ZWFyZG93biA9IGZ1bmN0aW9uICh1bmxvYWRDdHgsIHVubG9hZFN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW50ZXJ2YWxIYW5kbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSGFuZGxlKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbEhhbmRsZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFsbEl0ZW1zID0gaXRlbVF1ZXVlLnNsaWNlKDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkb0ZsdXNoXzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUXVldWUgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKGFsbEl0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb0ZsdXNoXzEgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgUGFnZVZpZXdNYW5hZ2VyLnByb3RvdHlwZS50cmFja1BhZ2VWaWV3LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFBhZ2VWaWV3TWFuYWdlci5wcm90b3R5cGUudGVhcmRvd24uXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBQYWdlVmlld01hbmFnZXIuX19pZUR5bj0xO1xuXG4gICAgcmV0dXJuIFBhZ2VWaWV3TWFuYWdlcjtcclxufSgpKTtcclxuZXhwb3J0IHsgUGFnZVZpZXdNYW5hZ2VyIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhZ2VWaWV3TWFuYWdlci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBXZWIgQW5hbHl0aWNzLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBkYXRlVGltZVV0aWxzRHVyYXRpb24sIG1zVG9UaW1lU3BhbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IF90aHJvd0ludGVybmFsLCBnZXROYXZpZ2F0b3IsIGdldFBlcmZvcm1hbmNlLCBzYWZlR2V0TG9nZ2VyIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmltcG9ydCB7IF9EWU5fQ09OTkVDVF9FTkQsIF9EWU5fRFVSQVRJT04sIF9EWU5fR0VUX0VOVFJJRVNfQllfVFlQRSwgX0RZTl9HRVRfUEVSRk9STUFOQ0VfVElNSTE3LCBfRFlOX0lTX1BFUkZPUk1BTkNFX1RJTUlOMTYsIF9EWU5fSVNfUEVSRk9STUFOQ0VfVElNSU4xOSwgX0RZTl9MRU5HVEgsIF9EWU5fTE9BRF9FVkVOVF9FTkQsIF9EWU5fTkFWSUdBVElPTl9TVEFSVCwgX0RZTl9QT1BVTEFURV9QQUdFX1ZJRVdfUDEyLCBfRFlOX1JFUVVFU1RfU1RBUlQsIF9EWU5fUkVTUE9OU0VfRU5ELCBfRFlOX1JFU1BPTlNFX1NUQVJULCBfRFlOX1NIT1VMRF9DT0xMRUNUX0RVUkFUMTggfSBmcm9tIFwiLi4vLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBNQVhfRFVSQVRJT05fQUxMT1dFRCA9IDM2MDAwMDA7IC8vIDFoXHJcbnZhciBib3RBZ2VudE5hbWVzID0gW1wiZ29vZ2xlYm90XCIsIFwiYWRzYm90LWdvb2dsZVwiLCBcImFwaXMtZ29vZ2xlXCIsIFwibWVkaWFwYXJ0bmVycy1nb29nbGVcIl07XHJcbmZ1bmN0aW9uIF9pc1BlcmZvcm1hbmNlVGltaW5nU3VwcG9ydGVkKCkge1xyXG4gICAgdmFyIHBlcmYgPSBnZXRQZXJmb3JtYW5jZSgpO1xyXG4gICAgcmV0dXJuIHBlcmYgJiYgISFwZXJmLnRpbWluZztcclxufVxyXG5mdW5jdGlvbiBfaXNQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmdTdXBwb3J0ZWQoKSB7XHJcbiAgICB2YXIgcGVyZiA9IGdldFBlcmZvcm1hbmNlKCk7XHJcbiAgICByZXR1cm4gcGVyZiAmJiBwZXJmLmdldEVudHJpZXNCeVR5cGUgJiYgcGVyZi5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwO1xyXG59XHJcbmZ1bmN0aW9uIF9pc1BlcmZvcm1hbmNlVGltaW5nRGF0YVJlYWR5KCkge1xyXG4gICAgdmFyIHBlcmYgPSBnZXRQZXJmb3JtYW5jZSgpO1xyXG4gICAgdmFyIHRpbWluZyA9IHBlcmYgPyBwZXJmLnRpbWluZyA6IDA7XHJcbiAgICByZXR1cm4gdGltaW5nXHJcbiAgICAgICAgJiYgdGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0ID4gMFxyXG4gICAgICAgICYmIHRpbWluZ1tfRFlOX05BVklHQVRJT05fU1RBUlQgLyogQG1pbjolMmVuYXZpZ2F0aW9uU3RhcnQgKi9dID4gMFxyXG4gICAgICAgICYmIHRpbWluZ1tfRFlOX1JFU1BPTlNFX1NUQVJUIC8qIEBtaW46JTJlcmVzcG9uc2VTdGFydCAqL10gPiAwXHJcbiAgICAgICAgJiYgdGltaW5nW19EWU5fUkVRVUVTVF9TVEFSVCAvKiBAbWluOiUyZXJlcXVlc3RTdGFydCAqL10gPiAwXHJcbiAgICAgICAgJiYgdGltaW5nW19EWU5fTE9BRF9FVkVOVF9FTkQgLyogQG1pbjolMmVsb2FkRXZlbnRFbmQgKi9dID4gMFxyXG4gICAgICAgICYmIHRpbWluZ1tfRFlOX1JFU1BPTlNFX0VORCAvKiBAbWluOiUyZXJlc3BvbnNlRW5kICovXSA+IDBcclxuICAgICAgICAmJiB0aW1pbmdbX0RZTl9DT05ORUNUX0VORCAvKiBAbWluOiUyZWNvbm5lY3RFbmQgKi9dID4gMFxyXG4gICAgICAgICYmIHRpbWluZy5kb21Mb2FkaW5nID4gMDtcclxufVxyXG5mdW5jdGlvbiBfZ2V0UGVyZm9ybWFuY2VUaW1pbmcoKSB7XHJcbiAgICBpZiAoX2lzUGVyZm9ybWFuY2VUaW1pbmdTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgIHJldHVybiBnZXRQZXJmb3JtYW5jZSgpLnRpbWluZztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcbmZ1bmN0aW9uIF9nZXRQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcoKSB7XHJcbiAgICBpZiAoX2lzUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nU3VwcG9ydGVkKCkpIHtcclxuICAgICAgICByZXR1cm4gZ2V0UGVyZm9ybWFuY2UoKVtfRFlOX0dFVF9FTlRSSUVTX0JZX1RZUEUgLyogQG1pbjolMmVnZXRFbnRyaWVzQnlUeXBlICovXShcIm5hdmlnYXRpb25cIilbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4vKipcclxuKiBUaGlzIG1ldGhvZCB0ZWxscyBpZiBnaXZlbiBkdXJhdGlvbnMgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gY29sbGVjdGlvbi5cclxuKi9cclxuZnVuY3Rpb24gX3Nob3VsZENvbGxlY3REdXJhdGlvbigpIHtcclxuICAgIHZhciBkdXJhdGlvbnMgPSBbXTtcclxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgZHVyYXRpb25zW19pXSA9IGFyZ3VtZW50c1tfaV07XHJcbiAgICB9XHJcbiAgICB2YXIgX25hdmlnYXRvciA9IGdldE5hdmlnYXRvcigpIHx8IHt9O1xyXG4gICAgLy8gYSBmdWxsIGxpc3Qgb2YgR29vZ2xlIGNyYXdsZXJzIHVzZXIgYWdlbnQgc3RyaW5ncyAtIGh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3dlYm1hc3RlcnMvYW5zd2VyLzEwNjE5NDM/aGw9ZW5cclxuICAgIHZhciB1c2VyQWdlbnQgPSBfbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgIHZhciBpc0dvb2dsZUJvdCA9IGZhbHNlO1xyXG4gICAgaWYgKHVzZXJBZ2VudCkge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm90QWdlbnROYW1lc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107IGkrKykge1xyXG4gICAgICAgICAgICBpc0dvb2dsZUJvdCA9IGlzR29vZ2xlQm90IHx8IHVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYm90QWdlbnROYW1lc1tpXSkgIT09IC0xO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChpc0dvb2dsZUJvdCkge1xyXG4gICAgICAgIC8vIERvbid0IHJlcG9ydCBkdXJhdGlvbnMgZm9yIEdvb2dsZUJvdCwgaXQgaXMgcmV0dXJuaW5nIGludmFsaWQgdmFsdWVzIGluIHBlcmZvcm1hbmNlLnRpbWluZyBBUEkuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgLy8gZm9yIG90aGVyIHBhZ2Ugdmlld3MsIGRvbid0IHJlcG9ydCBpZiBpdCdzIG91dHNpZGUgb2YgYSByZWFzb25hYmxlIHJhbmdlXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkdXJhdGlvbnNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGR1cmF0aW9uc1tpXSA8IDAgfHwgZHVyYXRpb25zW2ldID49IE1BWF9EVVJBVElPTl9BTExPV0VEKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogQ2xhc3MgZW5jYXBzdWxhdGVzIHNlbmRpbmcgcGFnZSB2aWV3IHBlcmZvcm1hbmNlIHRlbGVtZXRyeS5cclxuICovXHJcbnZhciBQYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyKGNvcmUpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHZhciBfbG9nZ2VyID0gc2FmZUdldExvZ2dlcihjb3JlKTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oUGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIsIHRoaXMsIGZ1bmN0aW9uIChfc2VsZikge1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1BPUFVMQVRFX1BBR0VfVklFV19QMTIgLyogQG1pbjolMmVwb3B1bGF0ZVBhZ2VWaWV3UGVyZm9ybWFuY2VFdmVudCAqL10gPSBmdW5jdGlvbiAocGFnZVZpZXdQZXJmb3JtYW5jZSkge1xyXG4gICAgICAgICAgICAgICAgcGFnZVZpZXdQZXJmb3JtYW5jZS5pc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICogaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvI3Byb2Nlc3NpbmctbW9kZWxcclxuICAgICAgICAgICAgICAgICAqICB8LW5hdmlnYXRpb25TdGFydFxyXG4gICAgICAgICAgICAgICAgICogIHwgICAgICAgICAgICAgfC1jb25uZWN0RW5kXHJcbiAgICAgICAgICAgICAgICAgKiAgfCAgICAgICAgICAgICB8fC1yZXF1ZXN0U3RhcnRcclxuICAgICAgICAgICAgICAgICAqICB8ICAgICAgICAgICAgIHx8ICAgICAgICAgICAgIHwtcmVzcG9uc2VTdGFydFxyXG4gICAgICAgICAgICAgICAgICogIHwgICAgICAgICAgICAgfHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfC1yZXNwb25zZUVuZFxyXG4gICAgICAgICAgICAgICAgICogIHwgICAgICAgICAgICAgfHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfFxyXG4gICAgICAgICAgICAgICAgICogIHwgICAgICAgICAgICAgfHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgIHwtbG9hZEV2ZW50RW5kXHJcbiAgICAgICAgICAgICAgICAgKiAgfC0tLW5ldHdvcmstLS18fC0tLXJlcXVlc3QtLS18LS0tcmVzcG9uc2UtLS18LS0tZG9tLS0tfFxyXG4gICAgICAgICAgICAgICAgICogIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXRvdGFsLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcclxuICAgICAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAgICAgKiAgdG90YWwgPSBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsb2FkIGV2ZW50IG9mIHRoZSBjdXJyZW50IGRvY3VtZW50IGlzIGNvbXBsZXRlZCBhbmQgdGhlIGZpcnN0IHJlY29yZGVkIHRpbWVzdGFtcCBvZiB0aGUgcGVyZm9ybWFuY2UgZW50cnkgOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9QZXJmb3JtYW5jZS9OYXZpZ2F0aW9uX2FuZF9yZXNvdXJjZV90aW1pbmdzI2R1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgKiAgbmV0d29yayA9IFJlZGlyZWN0IHRpbWUgKyBBcHAgQ2FjaGUgKyBETlMgbG9va3VwIHRpbWUgKyBUQ1AgY29ubmVjdGlvbiB0aW1lXHJcbiAgICAgICAgICAgICAgICAgKiAgcmVxdWVzdCA9IFJlcXVlc3QgdGltZSA6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1BlcmZvcm1hbmNlL05hdmlnYXRpb25fYW5kX3Jlc291cmNlX3RpbWluZ3MjcmVxdWVzdF90aW1lXHJcbiAgICAgICAgICAgICAgICAgKiAgcmVzcG9uc2UgPSBSZXNwb25zZSB0aW1lXHJcbiAgICAgICAgICAgICAgICAgKiAgZG9tID0gRG9jdW1lbnQgbG9hZCB0aW1lIDogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9jdW1lbnQtbG9hZC10aW1pbmctaW5mb1xyXG4gICAgICAgICAgICAgICAgICogICAgICA9IERvY3VtZW50IHByb2Nlc3NpbmcgdGltZSA6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3dlYi9mdW5kYW1lbnRhbHMvcGVyZm9ybWFuY2UvbmF2aWdhdGlvbi1hbmQtcmVzb3VyY2UtdGltaW5nLyNkb2N1bWVudF9wcm9jZXNzaW5nXHJcbiAgICAgICAgICAgICAgICAgKiAgICAgICsgTG9hZGluZyB0aW1lIDogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vd2ViL2Z1bmRhbWVudGFscy9wZXJmb3JtYW5jZS9uYXZpZ2F0aW9uLWFuZC1yZXNvdXJjZS10aW1pbmcvI2xvYWRpbmdcclxuICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgdmFyIG5hdmlnYXRpb25UaW1pbmcgPSBfZ2V0UGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltaW5nID0gX2dldFBlcmZvcm1hbmNlVGltaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdG90YWwgPSAwO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5ldHdvcmsgPSAwO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSAwO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gMDtcclxuICAgICAgICAgICAgICAgIHZhciBkb20gPSAwO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25UaW1pbmcgfHwgdGltaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRpb25UaW1pbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSBuYXZpZ2F0aW9uVGltaW5nW19EWU5fRFVSQVRJT04gLyogQG1pbjolMmVkdXJhdGlvbiAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBzdXBwb3J0IGJvdGggY2FzZXM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIC0gc3RhcnRUaW1lIGlzIGFsd2F5cyB6ZXJvOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIC0gZm9yIG9sZGVyIGJyb3dzZXJzIHdoZXJlIHRoZSBzdGFydFRpbWUgaXMgbm90IHplcm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmsgPSBuYXZpZ2F0aW9uVGltaW5nLnN0YXJ0VGltZSA9PT0gMCA/IG5hdmlnYXRpb25UaW1pbmdbX0RZTl9DT05ORUNUX0VORCAvKiBAbWluOiUyZWNvbm5lY3RFbmQgKi9dIDogZGF0ZVRpbWVVdGlsc0R1cmF0aW9uKG5hdmlnYXRpb25UaW1pbmcuc3RhcnRUaW1lLCBuYXZpZ2F0aW9uVGltaW5nW19EWU5fQ09OTkVDVF9FTkQgLyogQG1pbjolMmVjb25uZWN0RW5kICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBkYXRlVGltZVV0aWxzRHVyYXRpb24obmF2aWdhdGlvblRpbWluZy5yZXF1ZXN0U3RhcnQsIG5hdmlnYXRpb25UaW1pbmdbX0RZTl9SRVNQT05TRV9TVEFSVCAvKiBAbWluOiUyZXJlc3BvbnNlU3RhcnQgKi9dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBkYXRlVGltZVV0aWxzRHVyYXRpb24obmF2aWdhdGlvblRpbWluZ1tfRFlOX1JFU1BPTlNFX1NUQVJUIC8qIEBtaW46JTJlcmVzcG9uc2VTdGFydCAqL10sIG5hdmlnYXRpb25UaW1pbmdbX0RZTl9SRVNQT05TRV9FTkQgLyogQG1pbjolMmVyZXNwb25zZUVuZCAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb20gPSBkYXRlVGltZVV0aWxzRHVyYXRpb24obmF2aWdhdGlvblRpbWluZy5yZXNwb25zZUVuZCwgbmF2aWdhdGlvblRpbWluZ1tfRFlOX0xPQURfRVZFTlRfRU5EIC8qIEBtaW46JTJlbG9hZEV2ZW50RW5kICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCA9IGRhdGVUaW1lVXRpbHNEdXJhdGlvbih0aW1pbmdbX0RZTl9OQVZJR0FUSU9OX1NUQVJUIC8qIEBtaW46JTJlbmF2aWdhdGlvblN0YXJ0ICovXSwgdGltaW5nW19EWU5fTE9BRF9FVkVOVF9FTkQgLyogQG1pbjolMmVsb2FkRXZlbnRFbmQgKi9dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29yayA9IGRhdGVUaW1lVXRpbHNEdXJhdGlvbih0aW1pbmdbX0RZTl9OQVZJR0FUSU9OX1NUQVJUIC8qIEBtaW46JTJlbmF2aWdhdGlvblN0YXJ0ICovXSwgdGltaW5nW19EWU5fQ09OTkVDVF9FTkQgLyogQG1pbjolMmVjb25uZWN0RW5kICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBkYXRlVGltZVV0aWxzRHVyYXRpb24odGltaW5nLnJlcXVlc3RTdGFydCwgdGltaW5nW19EWU5fUkVTUE9OU0VfU1RBUlQgLyogQG1pbjolMmVyZXNwb25zZVN0YXJ0ICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gZGF0ZVRpbWVVdGlsc0R1cmF0aW9uKHRpbWluZ1tfRFlOX1JFU1BPTlNFX1NUQVJUIC8qIEBtaW46JTJlcmVzcG9uc2VTdGFydCAqL10sIHRpbWluZ1tfRFlOX1JFU1BPTlNFX0VORCAvKiBAbWluOiUyZXJlc3BvbnNlRW5kICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbSA9IGRhdGVUaW1lVXRpbHNEdXJhdGlvbih0aW1pbmcucmVzcG9uc2VFbmQsIHRpbWluZ1tfRFlOX0xPQURfRVZFTlRfRU5EIC8qIEBtaW46JTJlbG9hZEV2ZW50RW5kICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3RhbCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfbG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgMTAgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5FcnJvclBWQ2FsYyAqLywgXCJlcnJvciBjYWxjdWxhdGluZyBwYWdlIHZpZXcgcGVyZm9ybWFuY2UuXCIsIHsgdG90YWw6IHRvdGFsLCBuZXR3b3JrOiBuZXR3b3JrLCByZXF1ZXN0OiByZXF1ZXN0LCByZXNwb25zZTogcmVzcG9uc2UsIGRvbTogZG9tIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghX3RoaXNbX0RZTl9TSE9VTERfQ09MTEVDVF9EVVJBVDE4IC8qIEBtaW46JTJlc2hvdWxkQ29sbGVjdER1cmF0aW9uICovXSh0b3RhbCwgbmV0d29yaywgcmVxdWVzdCwgcmVzcG9uc2UsIGRvbSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX2xvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDQ1IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuSW52YWxpZER1cmF0aW9uVmFsdWUgKi8sIFwiSW52YWxpZCBwYWdlIGxvYWQgZHVyYXRpb24gdmFsdWUuIEJyb3dzZXIgcGVyZiBkYXRhIHdvbid0IGJlIHNlbnQuXCIsIHsgdG90YWw6IHRvdGFsLCBuZXR3b3JrOiBuZXR3b3JrLCByZXF1ZXN0OiByZXF1ZXN0LCByZXNwb25zZTogcmVzcG9uc2UsIGRvbTogZG9tIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b3RhbCA8IE1hdGguZmxvb3IobmV0d29yaykgKyBNYXRoLmZsb29yKHJlcXVlc3QpICsgTWF0aC5mbG9vcihyZXNwb25zZSkgKyBNYXRoLmZsb29yKGRvbSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc29tZSBicm93c2VycyBtYXkgcmVwb3J0IGluZGl2aWR1YWwgY29tcG9uZW50cyBpbmNvcnJlY3RseSBzbyB0aGF0IHRoZSBzdW0gb2YgdGhlIHBhcnRzIHdpbGwgYmUgYmlnZ2VyIHRoYW4gdG90YWwgUExUXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSwgZG9uJ3QgcmVwb3J0IGNsaWVudCBwZXJmb3JtYW5jZSBmcm9tIHRoaXMgcGFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfbG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgOCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkNsaWVudFBlcmZvcm1hbmNlTWF0aEVycm9yICovLCBcImNsaWVudCBwZXJmb3JtYW5jZSBtYXRoIGVycm9yLlwiLCB7IHRvdGFsOiB0b3RhbCwgbmV0d29yazogbmV0d29yaywgcmVxdWVzdDogcmVxdWVzdCwgcmVzcG9uc2U6IHJlc3BvbnNlLCBkb206IGRvbSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3UGVyZm9ybWFuY2UuZHVyYXRpb25NcyA9IHRvdGFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAvLyBjb252ZXJ0IHRvIHRpbWVzcGFuc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlVmlld1BlcmZvcm1hbmNlLnBlcmZUb3RhbCA9IHBhZ2VWaWV3UGVyZm9ybWFuY2VbX0RZTl9EVVJBVElPTiAvKiBAbWluOiUyZWR1cmF0aW9uICovXSA9IG1zVG9UaW1lU3Bhbih0b3RhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3UGVyZm9ybWFuY2UubmV0d29ya0Nvbm5lY3QgPSBtc1RvVGltZVNwYW4obmV0d29yayk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3UGVyZm9ybWFuY2Uuc2VudFJlcXVlc3QgPSBtc1RvVGltZVNwYW4ocmVxdWVzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3UGVyZm9ybWFuY2UucmVjZWl2ZWRSZXNwb25zZSA9IG1zVG9UaW1lU3BhbihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VWaWV3UGVyZm9ybWFuY2UuZG9tUHJvY2Vzc2luZyA9IG1zVG9UaW1lU3Bhbihkb20pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlVmlld1BlcmZvcm1hbmNlLmlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9HRVRfUEVSRk9STUFOQ0VfVElNSTE3IC8qIEBtaW46JTJlZ2V0UGVyZm9ybWFuY2VUaW1pbmcgKi9dID0gX2dldFBlcmZvcm1hbmNlVGltaW5nO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0lTX1BFUkZPUk1BTkNFX1RJTUlOMTYgLyogQG1pbjolMmVpc1BlcmZvcm1hbmNlVGltaW5nU3VwcG9ydGVkICovXSA9IF9pc1BlcmZvcm1hbmNlVGltaW5nU3VwcG9ydGVkO1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0lTX1BFUkZPUk1BTkNFX1RJTUlOMTkgLyogQG1pbjolMmVpc1BlcmZvcm1hbmNlVGltaW5nRGF0YVJlYWR5ICovXSA9IF9pc1BlcmZvcm1hbmNlVGltaW5nRGF0YVJlYWR5O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1NIT1VMRF9DT0xMRUNUX0RVUkFUMTggLyogQG1pbjolMmVzaG91bGRDb2xsZWN0RHVyYXRpb24gKi9dID0gX3Nob3VsZENvbGxlY3REdXJhdGlvbjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBQYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlci5wcm90b3R5cGUucG9wdWxhdGVQYWdlVmlld1BlcmZvcm1hbmNlRXZlbnQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgUGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIucHJvdG90eXBlLmdldFBlcmZvcm1hbmNlVGltaW5nLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyLnByb3RvdHlwZS5pc1BlcmZvcm1hbmNlVGltaW5nU3VwcG9ydGVkLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyLnByb3RvdHlwZS5pc1BlcmZvcm1hbmNlVGltaW5nRGF0YVJlYWR5LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyLnByb3RvdHlwZS5zaG91bGRDb2xsZWN0RHVyYXRpb24uXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBQYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlci5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gUGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFdlYiBBbmFseXRpY3MsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IHV0bENhblVzZVNlc3Npb25TdG9yYWdlLCB1dGxHZXRTZXNzaW9uU3RvcmFnZSwgdXRsUmVtb3ZlU2Vzc2lvblN0b3JhZ2UsIHV0bFNldFNlc3Npb25TdG9yYWdlIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb25cIjtcclxuaW1wb3J0IHsgX3dhcm5Ub0NvbnNvbGUsIGRhdGVOb3csIGR1bXBPYmosIGdldEpTT04sIGhhc0pTT04sIG9iakRlZmluZUFjY2Vzc29ycywgdGhyb3dFcnJvciB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBfRFlOX1BBR0VfVklTSVRfU1RBUlRfVElNMjAsIF9EWU5fVFJBQ0tfUFJFVklPVVNfUEFHRV85IH0gZnJvbSBcIi4uLy4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG4vKipcclxuICogVXNlZCB0byB0cmFjayBwYWdlIHZpc2l0IGR1cmF0aW9uc1xyXG4gKi9cclxudmFyIFBhZ2VWaXNpdFRpbWVNYW5hZ2VyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIFBhZ2VWaXNpdFRpbWVNYW5hZ2VyXHJcbiAgICAgKiBAcGFyYW0gcGFnZVZpc2l0VGltZVRyYWNraW5nSGFuZGxlciBEZWxlZ2F0ZSB0aGF0IHdpbGwgYmUgY2FsbGVkIHRvIHNlbmQgdGVsZW1ldHJ5IGRhdGEgdG8gQUkgKHdoZW4gdHJhY2tQcmV2aW91c1BhZ2VWaXNpdCBpcyBjYWxsZWQpXHJcbiAgICAgKiBAcmV0dXJucyB7fVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBQYWdlVmlzaXRUaW1lTWFuYWdlcihsb2dnZXIsIHBhZ2VWaXNpdFRpbWVUcmFja2luZ0hhbmRsZXIpIHtcclxuICAgICAgICB2YXIgcHJldlBhZ2VWaXNpdERhdGFLZXlOYW1lID0gXCJwcmV2UGFnZVZpc2l0RGF0YVwiO1xyXG4gICAgICAgIGR5bmFtaWNQcm90byhQYWdlVmlzaXRUaW1lTWFuYWdlciwgdGhpcywgZnVuY3Rpb24gKF9zZWxmKSB7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fVFJBQ0tfUFJFVklPVVNfUEFHRV85IC8qIEBtaW46JTJldHJhY2tQcmV2aW91c1BhZ2VWaXNpdCAqL10gPSBmdW5jdGlvbiAoY3VycmVudFBhZ2VOYW1lLCBjdXJyZW50UGFnZVVybCkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBSZXN0YXJ0IHRpbWVyIGZvciBuZXcgcGFnZSB2aWV3XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXZQYWdlVmlzaXRUaW1lRGF0YSA9IHJlc3RhcnRQYWdlVmlzaXRUaW1lcihjdXJyZW50UGFnZU5hbWUsIGN1cnJlbnRQYWdlVXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYSBwYWdlIGFscmVhZHkgYmVpbmcgdGltZWQsIHRyYWNrIHRoZSB2aXNpdCB0aW1lIGZvciBpdCBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZQYWdlVmlzaXRUaW1lRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlVmlzaXRUaW1lVHJhY2tpbmdIYW5kbGVyKHByZXZQYWdlVmlzaXRUaW1lRGF0YS5wYWdlTmFtZSwgcHJldlBhZ2VWaXNpdFRpbWVEYXRhLnBhZ2VVcmwsIHByZXZQYWdlVmlzaXRUaW1lRGF0YS5wYWdlVmlzaXRUaW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF93YXJuVG9Db25zb2xlKGxvZ2dlciwgXCJBdXRvIHRyYWNrIHBhZ2UgdmlzaXQgdGltZSBmYWlsZWQsIG1ldHJpYyB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQ6IFwiICsgZHVtcE9iaihlKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTdG9wcyB0aW1pbmcgb2YgY3VycmVudCBwYWdlIChpZiBleGlzdHMpIGFuZCBzdGFydHMgdGltaW5nIGZvciBkdXJhdGlvbiBvZiB2aXNpdCB0byBwYWdlTmFtZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGFnZU5hbWUgTmFtZSBvZiBwYWdlIHRvIGJlZ2luIHRpbWluZyB2aXNpdCBkdXJhdGlvblxyXG4gICAgICAgICAgICAgKiBAcmV0dXJucyB7UGFnZVZpc2l0RGF0YX0gUGFnZSB2aXNpdCBkYXRhIChpbmNsdWRpbmcgZHVyYXRpb24pIG9mIHBhZ2VOYW1lIGZyb20gbGFzdCBjYWxsIHRvIHN0YXJ0IG9yIHJlc3RhcnQsIGlmIGV4aXN0cy4gTnVsbCBpZiBub3QuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmdW5jdGlvbiByZXN0YXJ0UGFnZVZpc2l0VGltZXIocGFnZU5hbWUsIHBhZ2VVcmwpIHtcclxuICAgICAgICAgICAgICAgIHZhciBwcmV2UGFnZVZpc2l0RGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZQYWdlVmlzaXREYXRhID0gc3RvcFBhZ2VWaXNpdFRpbWVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRQYWdlVmlzaXRUaW1lcihwYWdlTmFtZSwgcGFnZVVybCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF93YXJuVG9Db25zb2xlKGxvZ2dlciwgXCJDYWxsIHRvIHJlc3RhcnQgZmFpbGVkOiBcIiArIGR1bXBPYmooZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZQYWdlVmlzaXREYXRhID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2UGFnZVZpc2l0RGF0YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU3RhcnRzIHRpbWluZyB2aXNpdCBkdXJhdGlvbiBvZiBwYWdlTmFtZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGFnZU5hbWVcclxuICAgICAgICAgICAgICogQHJldHVybnMge31cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0UGFnZVZpc2l0VGltZXIocGFnZU5hbWUsIHBhZ2VVcmwpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHV0bENhblVzZVNlc3Npb25TdG9yYWdlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHV0bEdldFNlc3Npb25TdG9yYWdlKGxvZ2dlciwgcHJldlBhZ2VWaXNpdERhdGFLZXlOYW1lKSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKFwiQ2Fubm90IGNhbGwgc3RhcnRQYWdlVmlzaXQgY29uc2VjdXRpdmVseSB3aXRob3V0IGZpcnN0IGNhbGxpbmcgc3RvcFBhZ2VWaXNpdFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VyclBhZ2VWaXNpdERhdGEgPSBuZXcgUGFnZVZpc2l0RGF0YShwYWdlTmFtZSwgcGFnZVVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyUGFnZVZpc2l0RGF0YVN0ciA9IGdldEpTT04oKS5zdHJpbmdpZnkoY3VyclBhZ2VWaXNpdERhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1dGxTZXRTZXNzaW9uU3RvcmFnZShsb2dnZXIsIHByZXZQYWdlVmlzaXREYXRhS2V5TmFtZSwgY3VyclBhZ2VWaXNpdERhdGFTdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgY2F0Y2ggaW4gbmV4dCBwaGFzZSwgc2luY2UgaWYgc3RhcnQgaXMgY2FsbGVkIHR3aWNlIGluIGEgcm93IHRoZSBleGNlcHRpb24gbmVlZHMgdG8gYmUgcHJvcGFnYXRlZCBvdXRcclxuICAgICAgICAgICAgICAgICAgICBfd2FyblRvQ29uc29sZShsb2dnZXIsIFwiQ2FsbCB0byBzdGFydCBmYWlsZWQ6IFwiICsgZHVtcE9iaihlKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFN0b3BzIHRpbWluZyBvZiBjdXJyZW50IHBhZ2UsIGlmIGV4aXN0cy5cclxuICAgICAgICAgICAgICogQHJldHVybnMge1BhZ2VWaXNpdERhdGF9IFBhZ2UgdmlzaXQgZGF0YSAoaW5jbHVkaW5nIGR1cmF0aW9uKSBvZiBwYWdlTmFtZSBmcm9tIGNhbGwgdG8gc3RhcnQsIGlmIGV4aXN0cy4gTnVsbCBpZiBub3QuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdG9wUGFnZVZpc2l0VGltZXIoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcHJldlBhZ2VWaXNpdERhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXRsQ2FuVXNlU2Vzc2lvblN0b3JhZ2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBEZWZpbmUgZW5kIHRpbWUgb2YgcGFnZSdzIHZpc2l0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYWdlVmlzaXRFbmRUaW1lID0gZGF0ZU5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gcmV0cmlldmUgIHBhZ2UgbmFtZSBhbmQgc3RhcnQgdGltZSBmcm9tIHNlc3Npb24gc3RvcmFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFnZVZpc2l0RGF0YUpzb25TdHIgPSB1dGxHZXRTZXNzaW9uU3RvcmFnZShsb2dnZXIsIHByZXZQYWdlVmlzaXREYXRhS2V5TmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlVmlzaXREYXRhSnNvblN0ciAmJiBoYXNKU09OKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHByZXZpb3VzIHBhZ2UgZGF0YSBleGlzdHMsIHNldCBlbmQgdGltZSBvZiB2aXNpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBhZ2VWaXNpdERhdGEgPSBnZXRKU09OKCkucGFyc2UocGFnZVZpc2l0RGF0YUpzb25TdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBhZ2VWaXNpdERhdGEucGFnZVZpc2l0VGltZSA9IHBhZ2VWaXNpdEVuZFRpbWUgLSBwcmV2UGFnZVZpc2l0RGF0YVtfRFlOX1BBR0VfVklTSVRfU1RBUlRfVElNMjAgLyogQG1pbjolMmVwYWdlVmlzaXRTdGFydFRpbWUgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGRhdGEgZnJvbSBzdG9yYWdlIHNpbmNlIHdlIGFscmVhZHkgdXNlZCBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRsUmVtb3ZlU2Vzc2lvblN0b3JhZ2UobG9nZ2VyLCBwcmV2UGFnZVZpc2l0RGF0YUtleU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfd2FyblRvQ29uc29sZShsb2dnZXIsIFwiU3RvcCBwYWdlIHZpc2l0IHRpbWVyIGZhaWxlZDogXCIgKyBkdW1wT2JqKGUpKTtcclxuICAgICAgICAgICAgICAgICAgICBwcmV2UGFnZVZpc2l0RGF0YSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldlBhZ2VWaXNpdERhdGE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcclxuICAgICAgICAgICAgb2JqRGVmaW5lQWNjZXNzb3JzKF9zZWxmLCBcIl9sb2dnZXJcIiwgZnVuY3Rpb24gKCkgeyByZXR1cm4gbG9nZ2VyOyB9KTtcclxuICAgICAgICAgICAgb2JqRGVmaW5lQWNjZXNzb3JzKF9zZWxmLCBcInBhZ2VWaXNpdFRpbWVUcmFja2luZ0hhbmRsZXJcIiwgZnVuY3Rpb24gKCkgeyByZXR1cm4gcGFnZVZpc2l0VGltZVRyYWNraW5nSGFuZGxlcjsgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgUGFnZVZpc2l0VGltZU1hbmFnZXIucHJvdG90eXBlLnRyYWNrUHJldmlvdXNQYWdlVmlzaXQuXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBQYWdlVmlzaXRUaW1lTWFuYWdlci5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gUGFnZVZpc2l0VGltZU1hbmFnZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFBhZ2VWaXNpdFRpbWVNYW5hZ2VyIH07XHJcbnZhciBQYWdlVmlzaXREYXRhID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gUGFnZVZpc2l0RGF0YShwYWdlTmFtZSwgcGFnZVVybCkge1xyXG4gICAgICAgIHRoaXNbX0RZTl9QQUdFX1ZJU0lUX1NUQVJUX1RJTTIwIC8qIEBtaW46JTJlcGFnZVZpc2l0U3RhcnRUaW1lICovXSA9IGRhdGVOb3coKTtcclxuICAgICAgICB0aGlzLnBhZ2VOYW1lID0gcGFnZU5hbWU7XHJcbiAgICAgICAgdGhpcy5wYWdlVXJsID0gcGFnZVVybDtcclxuICAgIH1cclxuICAgIHJldHVybiBQYWdlVmlzaXREYXRhO1xyXG59KCkpO1xyXG5leHBvcnQgeyBQYWdlVmlzaXREYXRhIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhZ2VWaXNpdFRpbWVNYW5hZ2VyLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFdlYiBBbmFseXRpY3MsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IGRhdGVUaW1lVXRpbHNEdXJhdGlvbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IF90aHJvd0ludGVybmFsIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbi8qKlxyXG4gKiBVc2VkIHRvIHJlY29yZCB0aW1lZCBldmVudHMgYW5kIHBhZ2Ugdmlld3MuXHJcbiAqL1xyXG52YXIgVGltaW5nID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gVGltaW5nKGxvZ2dlciwgbmFtZSkge1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgdmFyIF9ldmVudHMgPSB7fTtcclxuICAgICAgICBfc2VsZi5zdGFydCA9IGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgX2V2ZW50c1tuYW1lXSAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNjIgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5TdGFydENhbGxlZE1vcmVUaGFuT25jZSAqLywgXCJzdGFydCB3YXMgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIGZvciB0aGlzIGV2ZW50IHdpdGhvdXQgY2FsbGluZyBzdG9wLlwiLCB7IG5hbWU6IG5hbWUsIGtleTogbmFtZSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBfZXZlbnRzW25hbWVdID0gK25ldyBEYXRlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgX3NlbGYuc3RvcCA9IGZ1bmN0aW9uIChuYW1lLCB1cmwsIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cykge1xyXG4gICAgICAgICAgICB2YXIgc3RhcnQgPSBfZXZlbnRzW25hbWVdO1xyXG4gICAgICAgICAgICBpZiAoaXNOYU4oc3RhcnQpKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA2MyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlN0b3BDYWxsZWRXaXRob3V0U3RhcnQgKi8sIFwic3RvcCB3YXMgY2FsbGVkIHdpdGhvdXQgYSBjb3JyZXNwb25kaW5nIHN0YXJ0LlwiLCB7IG5hbWU6IG5hbWUsIGtleTogbmFtZSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbmQgPSArbmV3IERhdGU7XHJcbiAgICAgICAgICAgICAgICB2YXIgZHVyYXRpb24gPSBkYXRlVGltZVV0aWxzRHVyYXRpb24oc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgICAgICAgICBfc2VsZi5hY3Rpb24obmFtZSwgdXJsLCBkdXJhdGlvbiwgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBkZWxldGUgX2V2ZW50c1tuYW1lXTtcclxuICAgICAgICAgICAgX2V2ZW50c1tuYW1lXSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFRpbWluZztcclxufSgpKTtcclxuZXhwb3J0IHsgVGltaW5nIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWluZy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBXZWIgQW5hbHl0aWNzLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuLyoqXHJcbiogQXBwbGljYXRpb25JbnNpZ2h0cy50c1xyXG4qIEBjb3B5cmlnaHQgTWljcm9zb2Z0IDIwMThcclxuKi9cclxuaW1wb3J0IHsgX19hc3NpZ25GbiBhcyBfX2Fzc2lnbiwgX19leHRlbmRzRm4gYXMgX19leHRlbmRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NQbHVnaW5JZGVudGlmaWVyLCBFdmVudCBhcyBFdmVudFRlbGVtZXRyeSwgRXhjZXB0aW9uLCBNZXRyaWMsIFBhZ2VWaWV3LCBQYWdlVmlld1BlcmZvcm1hbmNlLCBQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllciwgUmVtb3RlRGVwZW5kZW5jeURhdGEsIFRyYWNlLCBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dEZyb21UcmFjZSwgY3JlYXRlRG9tRXZlbnQsIGNyZWF0ZVRlbGVtZXRyeUl0ZW0sIGRhdGFTYW5pdGl6ZVN0cmluZywgaXNDcm9zc09yaWdpbkVycm9yLCBzdHJOb3RTcGVjaWZpZWQsIHN0cmluZ1RvQm9vbE9yRGVmYXVsdCwgdXRsRGlzYWJsZVN0b3JhZ2UsIHV0bEVuYWJsZVN0b3JhZ2UgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vblwiO1xyXG5pbXBvcnQgeyBCYXNlVGVsZW1ldHJ5UGx1Z2luLCBJbnN0cnVtZW50RXZlbnQsIGFyckZvckVhY2gsIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0LCBjcmVhdGVVbmlxdWVOYW1lc3BhY2UsIGR1bXBPYmosIGV2ZW50T2ZmLCBldmVudE9uLCBnZW5lcmF0ZVczQ0lkLCBnZXREb2N1bWVudCwgZ2V0RXhjZXB0aW9uTmFtZSwgZ2V0SGlzdG9yeSwgZ2V0TG9jYXRpb24sIGdldFdpbmRvdywgaGFzSGlzdG9yeSwgaGFzV2luZG93LCBpc0Z1bmN0aW9uLCBpc051bGxPclVuZGVmaW5lZCwgaXNTdHJpbmcsIGlzVW5kZWZpbmVkLCBtZXJnZUV2dE5hbWVzcGFjZSwgb2JqRGVmaW5lQWNjZXNzb3JzLCBvYmpGb3JFYWNoS2V5LCBzYWZlR2V0Q29va2llTWdyLCBzdHJVbmRlZmluZWQsIHRocm93RXJyb3IgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9BRERfVEVMRU1FVFJZX0lOSVRJQTE1LCBfRFlOX0FVVE9fVFJBQ0tfUEFHRV9WSVNJMSwgX0RZTl9DT0xVTU5fTlVNQkVSLCBfRFlOX0NPUkUsIF9EWU5fREFUQV9UWVBFLCBfRFlOX0RJQUdfTE9HLCBfRFlOX0RJU0FCTEVfRVhDRVBUSU9OX1RSMCwgX0RZTl9ESVNBQkxFX0ZMVVNIX09OX0JFRjcsIF9EWU5fRU5BQkxFX0FVVE9fUk9VVEVfVFI2LCBfRFlOX0VOQUJMRV9VTkhBTkRMRURfUFJPMywgX0RZTl9FTlZFTE9QRV9UWVBFLCBfRFlOX0VSUk9SLCBfRFlOX0VSUk9SX1NSQywgX0RZTl9FWENFUFRJT04sIF9EWU5fSFJFRiwgX0RZTl9JU19CUk9XU0VSX0xJTktfVFJBQzUsIF9EWU5fSVNfU1RPUkFHRV9VU0VfRElTQUI0LCBfRFlOX0xFTkdUSCwgX0RZTl9MSU5FX05VTUJFUiwgX0RZTl9NRVNTQUdFLCBfRFlOX05BTUVfUFJFRklYLCBfRFlOX09WRVJSSURFX1BBR0VfVklFV19EMiwgX0RZTl9QT1BVTEFURV9QQUdFX1ZJRVdfUDEyLCBfRFlOX1NBTVBMSU5HX1BFUkNFTlRBR0UsIF9EWU5fU0VORF9FWENFUFRJT05fSU5URVIxMywgX0RZTl9TRU5EX1BBR0VfVklFV19JTlRFUjEwLCBfRFlOX1NFTkRfUEFHRV9WSUVXX1BFUkZPMTEsIF9EWU5fVE9fU1RSSU5HLCBfRFlOX1RSQUNLLCBfRFlOX1RSQUNLX1BBR0VfVklFVywgX0RZTl9UUkFDS19QUkVWSU9VU19QQUdFXzksIF9EWU5fX0NSRUFURV9BVVRPX0VYQ0VQVEkxNCwgX0RZTl9fT05FUlJPUiB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgUGFnZVZpZXdNYW5hZ2VyIH0gZnJvbSBcIi4vVGVsZW1ldHJ5L1BhZ2VWaWV3TWFuYWdlclwiO1xyXG5pbXBvcnQgeyBQYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlciB9IGZyb20gXCIuL1RlbGVtZXRyeS9QYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBQYWdlVmlzaXRUaW1lTWFuYWdlciB9IGZyb20gXCIuL1RlbGVtZXRyeS9QYWdlVmlzaXRUaW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBUaW1pbmcgfSBmcm9tIFwiLi9UaW1pbmdcIjtcclxudmFyIHN0ckV2ZW50ID0gXCJldmVudFwiO1xyXG5mdW5jdGlvbiBfZGlzcGF0Y2hFdmVudCh0YXJnZXQsIGV2bnQpIHtcclxuICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmRpc3BhdGNoRXZlbnQgJiYgZXZudCkge1xyXG4gICAgICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2bnQpO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIF9nZXRSZWFzb24oZXJyb3IpIHtcclxuICAgIGlmIChlcnJvciAmJiBlcnJvci5yZWFzb24pIHtcclxuICAgICAgICB2YXIgcmVhc29uID0gZXJyb3IucmVhc29uO1xyXG4gICAgICAgIGlmICghaXNTdHJpbmcocmVhc29uKSAmJiBpc0Z1bmN0aW9uKHJlYXNvbltfRFlOX1RPX1NUUklORyAvKiBAbWluOiUyZXRvU3RyaW5nICovXSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlYXNvbltfRFlOX1RPX1NUUklORyAvKiBAbWluOiUyZXRvU3RyaW5nICovXSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZHVtcE9iaihyZWFzb24pO1xyXG4gICAgfVxyXG4gICAgLy8gUGFzcyB0aGUgb3JpZ2luYWwgb2JqZWN0IGRvd24gd2hpY2ggd2lsbCBldmVudHVhbGx5IGdldCBldmFsdWF0ZWQgZm9yIGFueSBtZXNzYWdlIG9yIGRlc2NyaXB0aW9uXHJcbiAgICByZXR1cm4gZXJyb3IgfHwgXCJcIjtcclxufVxyXG52YXIgTWluTWlsbGlTZWNvbmRzID0gNjAwMDA7XHJcbmZ1bmN0aW9uIF9jb25maWdNaWxsaXNlY29uZHModmFsdWUsIGRlZlZhbHVlKSB7XHJcbiAgICB2YWx1ZSA9IHZhbHVlIHx8IGRlZlZhbHVlO1xyXG4gICAgaWYgKHZhbHVlIDwgTWluTWlsbGlTZWNvbmRzKSB7XHJcbiAgICAgICAgdmFsdWUgPSBNaW5NaWxsaVNlY29uZHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gX2dldERlZmF1bHRDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoIWNvbmZpZykge1xyXG4gICAgICAgIGNvbmZpZyA9IHt9O1xyXG4gICAgfVxyXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWVzXHJcbiAgICBjb25maWcuc2Vzc2lvblJlbmV3YWxNcyA9IF9jb25maWdNaWxsaXNlY29uZHMoY29uZmlnLnNlc3Npb25SZW5ld2FsTXMsIDMwICogNjAgKiAxMDAwKTtcclxuICAgIGNvbmZpZy5zZXNzaW9uRXhwaXJhdGlvbk1zID0gX2NvbmZpZ01pbGxpc2Vjb25kcyhjb25maWcuc2Vzc2lvbkV4cGlyYXRpb25NcywgMjQgKiA2MCAqIDYwICogMTAwMCk7XHJcbiAgICBjb25maWdbX0RZTl9ESVNBQkxFX0VYQ0VQVElPTl9UUjAgLyogQG1pbjolMmVkaXNhYmxlRXhjZXB0aW9uVHJhY2tpbmcgKi9dID0gc3RyaW5nVG9Cb29sT3JEZWZhdWx0KGNvbmZpZ1tfRFlOX0RJU0FCTEVfRVhDRVBUSU9OX1RSMCAvKiBAbWluOiUyZWRpc2FibGVFeGNlcHRpb25UcmFja2luZyAqL10pO1xyXG4gICAgY29uZmlnW19EWU5fQVVUT19UUkFDS19QQUdFX1ZJU0kxIC8qIEBtaW46JTJlYXV0b1RyYWNrUGFnZVZpc2l0VGltZSAqL10gPSBzdHJpbmdUb0Jvb2xPckRlZmF1bHQoY29uZmlnW19EWU5fQVVUT19UUkFDS19QQUdFX1ZJU0kxIC8qIEBtaW46JTJlYXV0b1RyYWNrUGFnZVZpc2l0VGltZSAqL10pO1xyXG4gICAgY29uZmlnW19EWU5fT1ZFUlJJREVfUEFHRV9WSUVXX0QyIC8qIEBtaW46JTJlb3ZlcnJpZGVQYWdlVmlld0R1cmF0aW9uICovXSA9IHN0cmluZ1RvQm9vbE9yRGVmYXVsdChjb25maWdbX0RZTl9PVkVSUklERV9QQUdFX1ZJRVdfRDIgLyogQG1pbjolMmVvdmVycmlkZVBhZ2VWaWV3RHVyYXRpb24gKi9dKTtcclxuICAgIGNvbmZpZ1tfRFlOX0VOQUJMRV9VTkhBTkRMRURfUFJPMyAvKiBAbWluOiUyZWVuYWJsZVVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25UcmFja2luZyAqL10gPSBzdHJpbmdUb0Jvb2xPckRlZmF1bHQoY29uZmlnW19EWU5fRU5BQkxFX1VOSEFORExFRF9QUk8zIC8qIEBtaW46JTJlZW5hYmxlVW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvblRyYWNraW5nICovXSk7XHJcbiAgICBpZiAoaXNOYU4oY29uZmlnW19EWU5fU0FNUExJTkdfUEVSQ0VOVEFHRSAvKiBAbWluOiUyZXNhbXBsaW5nUGVyY2VudGFnZSAqL10pIHx8IGNvbmZpZ1tfRFlOX1NBTVBMSU5HX1BFUkNFTlRBR0UgLyogQG1pbjolMmVzYW1wbGluZ1BlcmNlbnRhZ2UgKi9dIDw9IDAgfHwgY29uZmlnW19EWU5fU0FNUExJTkdfUEVSQ0VOVEFHRSAvKiBAbWluOiUyZXNhbXBsaW5nUGVyY2VudGFnZSAqL10gPj0gMTAwKSB7XHJcbiAgICAgICAgY29uZmlnW19EWU5fU0FNUExJTkdfUEVSQ0VOVEFHRSAvKiBAbWluOiUyZXNhbXBsaW5nUGVyY2VudGFnZSAqL10gPSAxMDA7XHJcbiAgICB9XHJcbiAgICBjb25maWdbX0RZTl9JU19TVE9SQUdFX1VTRV9ESVNBQjQgLyogQG1pbjolMmVpc1N0b3JhZ2VVc2VEaXNhYmxlZCAqL10gPSBzdHJpbmdUb0Jvb2xPckRlZmF1bHQoY29uZmlnW19EWU5fSVNfU1RPUkFHRV9VU0VfRElTQUI0IC8qIEBtaW46JTJlaXNTdG9yYWdlVXNlRGlzYWJsZWQgKi9dKTtcclxuICAgIGNvbmZpZ1tfRFlOX0lTX0JST1dTRVJfTElOS19UUkFDNSAvKiBAbWluOiUyZWlzQnJvd3NlckxpbmtUcmFja2luZ0VuYWJsZWQgKi9dID0gc3RyaW5nVG9Cb29sT3JEZWZhdWx0KGNvbmZpZ1tfRFlOX0lTX0JST1dTRVJfTElOS19UUkFDNSAvKiBAbWluOiUyZWlzQnJvd3NlckxpbmtUcmFja2luZ0VuYWJsZWQgKi9dKTtcclxuICAgIGNvbmZpZ1tfRFlOX0VOQUJMRV9BVVRPX1JPVVRFX1RSNiAvKiBAbWluOiUyZWVuYWJsZUF1dG9Sb3V0ZVRyYWNraW5nICovXSA9IHN0cmluZ1RvQm9vbE9yRGVmYXVsdChjb25maWdbX0RZTl9FTkFCTEVfQVVUT19ST1VURV9UUjYgLyogQG1pbjolMmVlbmFibGVBdXRvUm91dGVUcmFja2luZyAqL10pO1xyXG4gICAgY29uZmlnW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjolMmVuYW1lUHJlZml4ICovXSA9IGNvbmZpZ1tfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46JTJlbmFtZVByZWZpeCAqL10gfHwgXCJcIjtcclxuICAgIGNvbmZpZy5lbmFibGVEZWJ1ZyA9IHN0cmluZ1RvQm9vbE9yRGVmYXVsdChjb25maWcuZW5hYmxlRGVidWcpO1xyXG4gICAgY29uZmlnW19EWU5fRElTQUJMRV9GTFVTSF9PTl9CRUY3IC8qIEBtaW46JTJlZGlzYWJsZUZsdXNoT25CZWZvcmVVbmxvYWQgKi9dID0gc3RyaW5nVG9Cb29sT3JEZWZhdWx0KGNvbmZpZ1tfRFlOX0RJU0FCTEVfRkxVU0hfT05fQkVGNyAvKiBAbWluOiUyZWRpc2FibGVGbHVzaE9uQmVmb3JlVW5sb2FkICovXSk7XHJcbiAgICBjb25maWcuZGlzYWJsZUZsdXNoT25VbmxvYWQgPSBzdHJpbmdUb0Jvb2xPckRlZmF1bHQoY29uZmlnLmRpc2FibGVGbHVzaE9uVW5sb2FkLCBjb25maWdbX0RZTl9ESVNBQkxFX0ZMVVNIX09OX0JFRjcgLyogQG1pbjolMmVkaXNhYmxlRmx1c2hPbkJlZm9yZVVubG9hZCAqL10pO1xyXG4gICAgcmV0dXJuIGNvbmZpZztcclxufVxyXG5mdW5jdGlvbiBfdXBkYXRlU3RvcmFnZVVzYWdlKGV4dENvbmZpZykge1xyXG4gICAgLy8gTm90IHJlc2V0dGluZyB0aGUgc3RvcmFnZSB1c2FnZSBhcyBzb21lb25lIG1heSBoYXZlIG1hbnVhbGx5IGNhbGxlZCB1dGxEaXNhYmxlU3RvcmFnZSwgc28gdGhpcyB3aWxsIG9ubHlcclxuICAgIC8vIHJlc2V0IGJhc2VkIGlmIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBwcm92aWRlZFxyXG4gICAgaWYgKCFpc1VuZGVmaW5lZChleHRDb25maWdbX0RZTl9JU19TVE9SQUdFX1VTRV9ESVNBQjQgLyogQG1pbjolMmVpc1N0b3JhZ2VVc2VEaXNhYmxlZCAqL10pKSB7XHJcbiAgICAgICAgaWYgKGV4dENvbmZpZ1tfRFlOX0lTX1NUT1JBR0VfVVNFX0RJU0FCNCAvKiBAbWluOiUyZWlzU3RvcmFnZVVzZURpc2FibGVkICovXSkge1xyXG4gICAgICAgICAgICB1dGxEaXNhYmxlU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdXRsRW5hYmxlU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG52YXIgQW5hbHl0aWNzUGx1Z2luID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgX19leHRlbmRzKEFuYWx5dGljc1BsdWdpbiwgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIEFuYWx5dGljc1BsdWdpbigpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xyXG4gICAgICAgIF90aGlzLmlkZW50aWZpZXIgPSBBbmFseXRpY3NQbHVnaW5JZGVudGlmaWVyOyAvLyBkbyBub3QgY2hhbmdlIG5hbWUgb3IgcHJpb3JpdHlcclxuICAgICAgICBfdGhpcy5wcmlvcml0eSA9IDE4MDsgLy8gdGFrZSBmcm9tIHJlc2VydmVkIHByaW9yaXR5IHJhbmdlIDEwMC0gMjAwXHJcbiAgICAgICAgX3RoaXMuYXV0b1JvdXRlUFZEZWxheSA9IDUwMDsgLy8gbXM7IFRpbWUgdG8gd2FpdCBhZnRlciBhIHJvdXRlIGNoYW5nZSBiZWZvcmUgdHJpZ2dlcmluZyBhIHBhZ2V2aWV3IHRvIGFsbG93IERPTSBjaGFuZ2VzIHRvIHRha2UgcGxhY2VcclxuICAgICAgICB2YXIgX2V2ZW50VHJhY2tpbmc7XHJcbiAgICAgICAgdmFyIF9wYWdlVHJhY2tpbmc7XHJcbiAgICAgICAgdmFyIF9wYWdlVmlld01hbmFnZXI7XHJcbiAgICAgICAgdmFyIF9wYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlcjtcclxuICAgICAgICB2YXIgX3BhZ2VWaXNpdFRpbWVNYW5hZ2VyO1xyXG4gICAgICAgIHZhciBfcHJlSW5pdFRlbGVtZXRyeUluaXRpYWxpemVycztcclxuICAgICAgICB2YXIgX2lzQnJvd3NlckxpbmtUcmFja2luZ0VuYWJsZWQ7XHJcbiAgICAgICAgdmFyIF9icm93c2VyTGlua0luaXRpYWxpemVyQWRkZWQ7XHJcbiAgICAgICAgdmFyIF9lbmFibGVBdXRvUm91dGVUcmFja2luZztcclxuICAgICAgICB2YXIgX2hpc3RvcnlMaXN0ZW5lckFkZGVkO1xyXG4gICAgICAgIHZhciBfZGlzYWJsZUV4Y2VwdGlvblRyYWNraW5nO1xyXG4gICAgICAgIHZhciBfYXV0b0V4Y2VwdGlvbkluc3RydW1lbnRlZDtcclxuICAgICAgICB2YXIgX2VuYWJsZVVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25UcmFja2luZztcclxuICAgICAgICB2YXIgX2F1dG9VbmhhbmRsZWRQcm9taXNlSW5zdHJ1bWVudGVkO1xyXG4gICAgICAgIC8vIENvdW50cyBudW1iZXIgb2YgdHJhY2tBamF4IGludm9jYXRpb25zLlxyXG4gICAgICAgIC8vIEJ5IGRlZmF1bHQgd2Ugb25seSBtb25pdG9yIFggYWpheCBjYWxsIHBlciB2aWV3IHRvIGF2b2lkIHRvbyBtdWNoIGxvYWQuXHJcbiAgICAgICAgLy8gRGVmYXVsdCB2YWx1ZSBpcyBzZXQgaW4gY29uZmlnLlxyXG4gICAgICAgIC8vIFRoaXMgY291bnRlciBrZWVwcyBpbmNyZWFzaW5nIGV2ZW4gYWZ0ZXIgdGhlIGxpbWl0IGlzIHJlYWNoZWQuXHJcbiAgICAgICAgdmFyIF90cmFja0FqYXhBdHRlbXB0cyA9IDA7XHJcbiAgICAgICAgLy8gYXJyYXkgd2l0aCBtYXggbGVuZ3RoIG9mIDIgdGhhdCBzdG9yZSBjdXJyZW50IHVybCBhbmQgcHJldmlvdXMgdXJsIGZvciBTUEEgcGFnZSByb3V0ZSBjaGFuZ2UgdHJhY2tQYWdldmlldyB1c2UuXHJcbiAgICAgICAgdmFyIF9wcmV2VXJpOyAvLyBBc3NpZ25lZCBpbiB0aGUgY29uc3RydWN0b3JcclxuICAgICAgICB2YXIgX2N1cnJVcmk7XHJcbiAgICAgICAgdmFyIF9ldnROYW1lc3BhY2U7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKEFuYWx5dGljc1BsdWdpbiwgX3RoaXMsIGZ1bmN0aW9uIChfc2VsZiwgX2Jhc2UpIHtcclxuICAgICAgICAgICAgdmFyIF9hZGRIb29rID0gX2Jhc2UuX2FkZEhvb2s7XHJcbiAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgX3NlbGYuZ2V0Q29va2llTWdyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNhZmVHZXRDb29raWVNZ3IoX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5wcm9jZXNzVGVsZW1ldHJ5ID0gZnVuY3Rpb24gKGVudiwgaXRlbUN0eCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGYucHJvY2Vzc05leHQoZW52LCBpdGVtQ3R4KTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYudHJhY2tFdmVudCA9IGZ1bmN0aW9uIChldmVudCwgY3VzdG9tUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdGVsZW1ldHJ5SXRlbSA9IGNyZWF0ZVRlbGVtZXRyeUl0ZW0oZXZlbnQsIEV2ZW50VGVsZW1ldHJ5W19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dLCBFdmVudFRlbGVtZXRyeVtfRFlOX0VOVkVMT1BFX1RZUEUgLyogQG1pbjolMmVlbnZlbG9wZVR5cGUgKi9dLCBfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgY3VzdG9tUHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL11bX0RZTl9UUkFDSyAvKiBAbWluOiUyZXRyYWNrICovXSh0ZWxlbWV0cnlJdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDM5IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuVHJhY2tUcmFjZUZhaWxlZCAqLywgXCJ0cmFja1RyYWNlIGZhaWxlZCwgdHJhY2Ugd2lsbCBub3QgYmUgY29sbGVjdGVkOiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU3RhcnQgdGltaW5nIGFuIGV4dGVuZGVkIGV2ZW50LiBDYWxsIGBzdG9wVHJhY2tFdmVudGAgdG8gbG9nIHRoZSBldmVudCB3aGVuIGl0IGVuZHMuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSAgIG5hbWUgICAgQSBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoaXMgZXZlbnQgdW5pcXVlbHkgd2l0aGluIHRoZSBkb2N1bWVudC5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLnN0YXJ0VHJhY2tFdmVudCA9IGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFRyYWNraW5nLnN0YXJ0KG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbCgxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDI5IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU3RhcnRUcmFja0V2ZW50RmFpbGVkICovLCBcInN0YXJ0VHJhY2tFdmVudCBmYWlsZWQsIGV2ZW50IHdpbGwgbm90IGJlIGNvbGxlY3RlZDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIExvZyBhbiBleHRlbmRlZCBldmVudCB0aGF0IHlvdSBzdGFydGVkIHRpbWluZyB3aXRoIGBzdGFydFRyYWNrRXZlbnRgLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gICBuYW1lICAgIFRoZSBzdHJpbmcgeW91IHVzZWQgdG8gaWRlbnRpZnkgdGhpcyBldmVudCBpbiBgc3RhcnRUcmFja0V2ZW50YC5cclxuICAgICAgICAgICAgICogQHBhcmFtICAgcHJvcGVydGllcyAgbWFwW3N0cmluZywgc3RyaW5nXSAtIGFkZGl0aW9uYWwgZGF0YSB1c2VkIHRvIGZpbHRlciBldmVudHMgYW5kIG1ldHJpY3MgaW4gdGhlIHBvcnRhbC4gRGVmYXVsdHMgdG8gZW1wdHkuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSAgIG1lYXN1cmVtZW50cyAgICBtYXBbc3RyaW5nLCBudW1iZXJdIC0gbWV0cmljcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBldmVudCwgZGlzcGxheWVkIGluIE1ldHJpY3MgRXhwbG9yZXIgb24gdGhlIHBvcnRhbC4gRGVmYXVsdHMgdG8gZW1wdHkuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi5zdG9wVHJhY2tFdmVudCA9IGZ1bmN0aW9uIChuYW1lLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2V2ZW50VHJhY2tpbmcuc3RvcChuYW1lLCB1bmRlZmluZWQsIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgMzAgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5TdG9wVHJhY2tFdmVudEZhaWxlZCAqLywgXCJzdG9wVHJhY2tFdmVudCBmYWlsZWQsIGV2ZW50IHdpbGwgbm90IGJlIGNvbGxlY3RlZDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBMb2cgYSBkaWFnbm9zdGljIG1lc3NhZ2VcclxuICAgICAgICAgICAgICogQHBhcmFtIHtJVHJhY2VUZWxlbWV0cnl9IHRyYWNlXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBJQ3VzdG9tUHJvcGVydGllcy5cclxuICAgICAgICAgICAgICogQG1lbWJlcm9mIEFwcGxpY2F0aW9uSW5zaWdodHNcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLnRyYWNrVHJhY2UgPSBmdW5jdGlvbiAodHJhY2UsIGN1c3RvbVByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRlbGVtZXRyeUl0ZW0gPSBjcmVhdGVUZWxlbWV0cnlJdGVtKHRyYWNlLCBUcmFjZVtfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSwgVHJhY2VbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dW19EWU5fVFJBQ0sgLyogQG1pbjolMmV0cmFjayAqL10odGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCAzOSAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRyYWNrVHJhY2VGYWlsZWQgKi8sIFwidHJhY2tUcmFjZSBmYWlsZWQsIHRyYWNlIHdpbGwgbm90IGJlIGNvbGxlY3RlZDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBMb2cgYSBudW1lcmljIHZhbHVlIHRoYXQgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGV2ZW50LiBUeXBpY2FsbHlcclxuICAgICAgICAgICAgICogdXNlZCB0byBzZW5kIHJlZ3VsYXIgcmVwb3J0cyBvZiBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzLiBUbyBzZW5kIHNpbmdsZSBtZWFzdXJlbWVudCwganVzdFxyXG4gICAgICAgICAgICAgKiB1c2UgdGhlIG5hbWUgYW5kIGF2ZXJhZ2UgZmllbGRzIG9mIHtAbGluayBJTWV0cmljVGVsZW1ldHJ5fS4gSWYgeW91IHRha2UgbWVhc3VyZW1lbnRzXHJcbiAgICAgICAgICAgICAqIGZyZXF1ZW50bHksIHlvdSBjYW4gcmVkdWNlIHRoZSB0ZWxlbWV0cnkgYmFuZHdpZHRoIGJ5IGFnZ3JlZ2F0aW5nIG11bHRpcGxlIG1lYXN1cmVtZW50c1xyXG4gICAgICAgICAgICAgKiBhbmQgc2VuZGluZyB0aGUgcmVzdWx0aW5nIGF2ZXJhZ2UgYXQgaW50ZXJ2YWxzXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7SU1ldHJpY1RlbGVtZXRyeX0gbWV0cmljIGlucHV0IG9iamVjdCBhcmd1bWVudC4gT25seSBuYW1lIGFuZCBhdmVyYWdlIGFyZSBtYW5kYXRvcnkuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7e1trZXk6IHN0cmluZ106IGFueX19IGN1c3RvbVByb3BlcnRpZXMgYWRkaXRpb25hbCBkYXRhIHVzZWQgdG8gZmlsdGVyIG1ldHJpY3MgaW4gdGhlXHJcbiAgICAgICAgICAgICAqIHBvcnRhbC4gRGVmYXVsdHMgdG8gZW1wdHkuXHJcbiAgICAgICAgICAgICAqIEBtZW1iZXJvZiBBcHBsaWNhdGlvbkluc2lnaHRzXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi50cmFja01ldHJpYyA9IGZ1bmN0aW9uIChtZXRyaWMsIGN1c3RvbVByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRlbGVtZXRyeUl0ZW0gPSBjcmVhdGVUZWxlbWV0cnlJdGVtKG1ldHJpYywgTWV0cmljW19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dLCBNZXRyaWNbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dW19EWU5fVFJBQ0sgLyogQG1pbjolMmV0cmFjayAqL10odGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgMzYgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5UcmFja01ldHJpY0ZhaWxlZCAqLywgXCJ0cmFja01ldHJpYyBmYWlsZWQsIG1ldHJpYyB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQ6IFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBMb2dzIHRoYXQgYSBwYWdlIG9yIG90aGVyIGl0ZW0gd2FzIHZpZXdlZC5cclxuICAgICAgICAgICAgICogQHBhcmFtIElQYWdlVmlld1RlbGVtZXRyeSBUaGUgc3RyaW5nIHlvdSB1c2VkIGFzIHRoZSBuYW1lIGluIHN0YXJ0VHJhY2tQYWdlLiBEZWZhdWx0cyB0byB0aGUgZG9jdW1lbnQgdGl0bGUuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBjdXN0b21Qcm9wZXJ0aWVzIEFkZGl0aW9uYWwgZGF0YSB1c2VkIHRvIGZpbHRlciBldmVudHMgYW5kIG1ldHJpY3MuIERlZmF1bHRzIHRvIGVtcHR5LlxyXG4gICAgICAgICAgICAgKiBJZiBhIHVzZXIgd2FudHMgdG8gcHJvdmlkZSBkdXJhdGlvbiBmb3IgcGFnZUxvYWQsIGl0J2xsIGhhdmUgdG8gYmUgaW4gcGFnZVZpZXcucHJvcGVydGllcy5kdXJhdGlvblxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9UUkFDS19QQUdFX1ZJRVcgLyogQG1pbjolMmV0cmFja1BhZ2VWaWV3ICovXSA9IGZ1bmN0aW9uIChwYWdlVmlldywgY3VzdG9tUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5QdiA9IHBhZ2VWaWV3IHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIF9wYWdlVmlld01hbmFnZXJbX0RZTl9UUkFDS19QQUdFX1ZJRVcgLyogQG1pbjolMmV0cmFja1BhZ2VWaWV3ICovXShpblB2LCBfX2Fzc2lnbihfX2Fzc2lnbihfX2Fzc2lnbih7fSwgaW5Qdi5wcm9wZXJ0aWVzKSwgaW5Qdi5tZWFzdXJlbWVudHMpLCBjdXN0b21Qcm9wZXJ0aWVzKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9zZWxmLmNvbmZpZ1tfRFlOX0FVVE9fVFJBQ0tfUEFHRV9WSVNJMSAvKiBAbWluOiUyZWF1dG9UcmFja1BhZ2VWaXNpdFRpbWUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wYWdlVmlzaXRUaW1lTWFuYWdlcltfRFlOX1RSQUNLX1BSRVZJT1VTX1BBR0VfOSAvKiBAbWluOiUyZXRyYWNrUHJldmlvdXNQYWdlVmlzaXQgKi9dKGluUHYubmFtZSwgaW5Qdi51cmkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCAzNyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRyYWNrUFZGYWlsZWQgKi8sIFwidHJhY2tQYWdlVmlldyBmYWlsZWQsIHBhZ2UgdmlldyB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQ6IFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBDcmVhdGUgYSBwYWdlIHZpZXcgdGVsZW1ldHJ5IGl0ZW0gYW5kIHNlbmQgaXQgdG8gdGhlIFNESyBwaXBlbGluZSB0aHJvdWdoIHRoZSBjb3JlLnRyYWNrIEFQSVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGFnZVZpZXcgUGFnZSB2aWV3IGl0ZW0gdG8gYmUgc2VudFxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBDdXN0b20gcHJvcGVydGllcyAoUGFydCBDKSB0aGF0IGEgdXNlciBjYW4gYWRkIHRvIHRoZSB0ZWxlbWV0cnkgaXRlbVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gc3lzdGVtUHJvcGVydGllcyBTeXN0ZW0gbGV2ZWwgcHJvcGVydGllcyAoUGFydCBBKSB0aGF0IGEgdXNlciBjYW4gYWRkIHRvIHRoZSB0ZWxlbWV0cnkgaXRlbVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9TRU5EX1BBR0VfVklFV19JTlRFUjEwIC8qIEBtaW46JTJlc2VuZFBhZ2VWaWV3SW50ZXJuYWwgKi9dID0gZnVuY3Rpb24gKHBhZ2VWaWV3LCBwcm9wZXJ0aWVzLCBzeXN0ZW1Qcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZG9jID0gZ2V0RG9jdW1lbnQoKTtcclxuICAgICAgICAgICAgICAgIGlmIChkb2MpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWdlVmlldy5yZWZVcmkgPSBwYWdlVmlldy5yZWZVcmkgPT09IHVuZGVmaW5lZCA/IGRvYy5yZWZlcnJlciA6IHBhZ2VWaWV3LnJlZlVyaTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciB0ZWxlbWV0cnlJdGVtID0gY3JlYXRlVGVsZW1ldHJ5SXRlbShwYWdlVmlldywgUGFnZVZpZXdbX0RZTl9EQVRBX1RZUEUgLyogQG1pbjolMmVkYXRhVHlwZSAqL10sIFBhZ2VWaWV3W19EWU5fRU5WRUxPUEVfVFlQRSAvKiBAbWluOiUyZWVudmVsb3BlVHlwZSAqL10sIF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCBwcm9wZXJ0aWVzLCBzeXN0ZW1Qcm9wZXJ0aWVzKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dW19EWU5fVFJBQ0sgLyogQG1pbjolMmV0cmFjayAqL10odGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgICAgICAvLyByZXNldCBhamF4ZXMgY291bnRlclxyXG4gICAgICAgICAgICAgICAgX3RyYWNrQWpheEF0dGVtcHRzID0gMDtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEBpZ25vcmUgSU5URVJOQUwgT05MWVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGFnZVZpZXdQZXJmb3JtYW5jZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllc1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9TRU5EX1BBR0VfVklFV19QRVJGTzExIC8qIEBtaW46JTJlc2VuZFBhZ2VWaWV3UGVyZm9ybWFuY2VJbnRlcm5hbCAqL10gPSBmdW5jdGlvbiAocGFnZVZpZXdQZXJmb3JtYW5jZSwgcHJvcGVydGllcywgc3lzdGVtUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRlbGVtZXRyeUl0ZW0gPSBjcmVhdGVUZWxlbWV0cnlJdGVtKHBhZ2VWaWV3UGVyZm9ybWFuY2UsIFBhZ2VWaWV3UGVyZm9ybWFuY2VbX0RZTl9EQVRBX1RZUEUgLyogQG1pbjolMmVkYXRhVHlwZSAqL10sIFBhZ2VWaWV3UGVyZm9ybWFuY2VbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIHByb3BlcnRpZXMsIHN5c3RlbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL11bX0RZTl9UUkFDSyAvKiBAbWluOiUyZXRyYWNrICovXSh0ZWxlbWV0cnlJdGVtKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFNlbmQgYnJvd3NlciBwZXJmb3JtYW5jZSBtZXRyaWNzLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGFnZVZpZXdQZXJmb3JtYW5jZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gY3VzdG9tUHJvcGVydGllc1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGYudHJhY2tQYWdlVmlld1BlcmZvcm1hbmNlID0gZnVuY3Rpb24gKHBhZ2VWaWV3UGVyZm9ybWFuY2UsIGN1c3RvbVByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBpblB2cCA9IHBhZ2VWaWV3UGVyZm9ybWFuY2UgfHwge307XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9wYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlcltfRFlOX1BPUFVMQVRFX1BBR0VfVklFV19QMTIgLyogQG1pbjolMmVwb3B1bGF0ZVBhZ2VWaWV3UGVyZm9ybWFuY2VFdmVudCAqL10oaW5QdnApO1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fU0VORF9QQUdFX1ZJRVdfUEVSRk8xMSAvKiBAbWluOiUyZXNlbmRQYWdlVmlld1BlcmZvcm1hbmNlSW50ZXJuYWwgKi9dKGluUHZwLCBjdXN0b21Qcm9wZXJ0aWVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCAzNyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRyYWNrUFZGYWlsZWQgKi8sIFwidHJhY2tQYWdlVmlld1BlcmZvcm1hbmNlIGZhaWxlZCwgcGFnZSB2aWV3IHdpbGwgbm90IGJlIGNvbGxlY3RlZDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFN0YXJ0cyB0aGUgdGltZXIgZm9yIHRyYWNraW5nIGEgcGFnZSBsb2FkIHRpbWUuIFVzZSB0aGlzIGluc3RlYWQgb2YgYHRyYWNrUGFnZVZpZXdgIGlmIHlvdSB3YW50IHRvIGNvbnRyb2wgd2hlbiB0aGUgcGFnZSB2aWV3IHRpbWVyIHN0YXJ0cyBhbmQgc3RvcHMsXHJcbiAgICAgICAgICAgICAqIGJ1dCBkb24ndCB3YW50IHRvIGNhbGN1bGF0ZSB0aGUgZHVyYXRpb24geW91cnNlbGYuIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2VuZCBhbnkgdGVsZW1ldHJ5LiBDYWxsIGBzdG9wVHJhY2tQYWdlYCB0byBsb2cgdGhlIGVuZCBvZiB0aGUgcGFnZSB2aWV3XHJcbiAgICAgICAgICAgICAqIGFuZCBzZW5kIHRoZSBldmVudC5cclxuICAgICAgICAgICAgICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBpZGVuZml0aWVzIHRoaXMgaXRlbSwgdW5pcXVlIHdpdGhpbiB0aGlzIEhUTUwgZG9jdW1lbnQuIERlZmF1bHRzIHRvIHRoZSBkb2N1bWVudCB0aXRsZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLnN0YXJ0VHJhY2tQYWdlID0gZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBnZXREb2N1bWVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gZG9jICYmIGRvYy50aXRsZSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBfcGFnZVRyYWNraW5nLnN0YXJ0KG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbCgxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDMxIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU3RhcnRUcmFja0ZhaWxlZCAqLywgXCJzdGFydFRyYWNrUGFnZSBmYWlsZWQsIHBhZ2UgdmlldyBtYXkgbm90IGJlIGNvbGxlY3RlZDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFN0b3BzIHRoZSB0aW1lciB0aGF0IHdhcyBzdGFydGVkIGJ5IGNhbGxpbmcgYHN0YXJ0VHJhY2tQYWdlYCBhbmQgc2VuZHMgdGhlIHBhZ2V2aWV3IGxvYWQgdGltZSB0ZWxlbWV0cnkgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMgYW5kIG1lYXN1cmVtZW50cy5cclxuICAgICAgICAgICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBwYWdlIHZpZXcgd2lsbCBiZSB0aGUgdGltZSBiZXR3ZWVuIGNhbGxpbmcgYHN0YXJ0VHJhY2tQYWdlYCBhbmQgYHN0b3BUcmFja1BhZ2VgLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gICBuYW1lICBUaGUgc3RyaW5nIHlvdSB1c2VkIGFzIHRoZSBuYW1lIGluIHN0YXJ0VHJhY2tQYWdlLiBEZWZhdWx0cyB0byB0aGUgZG9jdW1lbnQgdGl0bGUuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSAgIHVybCAgIFN0cmluZyAtIGEgcmVsYXRpdmUgb3IgYWJzb2x1dGUgVVJMIHRoYXQgaWRlbnRpZmllcyB0aGUgcGFnZSBvciBvdGhlciBpdGVtLiBEZWZhdWx0cyB0byB0aGUgd2luZG93IGxvY2F0aW9uLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gICBwcm9wZXJ0aWVzICBtYXBbc3RyaW5nLCBzdHJpbmddIC0gYWRkaXRpb25hbCBkYXRhIHVzZWQgdG8gZmlsdGVyIHBhZ2VzIGFuZCBtZXRyaWNzIGluIHRoZSBwb3J0YWwuIERlZmF1bHRzIHRvIGVtcHR5LlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gICBtZWFzdXJlbWVudHMgICAgbWFwW3N0cmluZywgbnVtYmVyXSAtIG1ldHJpY3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZSwgZGlzcGxheWVkIGluIE1ldHJpY3MgRXhwbG9yZXIgb24gdGhlIHBvcnRhbC4gRGVmYXVsdHMgdG8gZW1wdHkuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi5zdG9wVHJhY2tQYWdlID0gZnVuY3Rpb24gKG5hbWUsIHVybCwgcHJvcGVydGllcywgbWVhc3VyZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBnZXREb2N1bWVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gZG9jICYmIGRvYy50aXRsZSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHVybCAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbG9jID0gZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gbG9jICYmIGxvY1tfRFlOX0hSRUYgLyogQG1pbjolMmVocmVmICovXSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBfcGFnZVRyYWNraW5nLnN0b3AobmFtZSwgdXJsLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9zZWxmLmNvbmZpZ1tfRFlOX0FVVE9fVFJBQ0tfUEFHRV9WSVNJMSAvKiBAbWluOiUyZWF1dG9UcmFja1BhZ2VWaXNpdFRpbWUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wYWdlVmlzaXRUaW1lTWFuYWdlcltfRFlOX1RSQUNLX1BSRVZJT1VTX1BBR0VfOSAvKiBAbWluOiUyZXRyYWNrUHJldmlvdXNQYWdlVmlzaXQgKi9dKG5hbWUsIHVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbCgxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDMyIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU3RvcFRyYWNrRmFpbGVkICovLCBcInN0b3BUcmFja1BhZ2UgZmFpbGVkLCBwYWdlIHZpZXcgd2lsbCBub3QgYmUgY29sbGVjdGVkOiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgKiBAaWdub3JlIElOVEVSTkFMIE9OTFlcclxuICAgICAgICAgICAgKiBAcGFyYW0gZXhjZXB0aW9uXHJcbiAgICAgICAgICAgICogQHBhcmFtIHByb3BlcnRpZXNcclxuICAgICAgICAgICAgKiBAcGFyYW0gc3lzdGVtUHJvcGVydGllc1xyXG4gICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1NFTkRfRVhDRVBUSU9OX0lOVEVSMTMgLyogQG1pbjolMmVzZW5kRXhjZXB0aW9uSW50ZXJuYWwgKi9dID0gZnVuY3Rpb24gKGV4Y2VwdGlvbiwgY3VzdG9tUHJvcGVydGllcywgc3lzdGVtUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRoZUVycm9yID0gZXhjZXB0aW9uW19EWU5fRVhDRVBUSU9OIC8qIEBtaW46JTJlZXhjZXB0aW9uICovXSB8fCBleGNlcHRpb25bX0RZTl9FUlJPUiAvKiBAbWluOiUyZWVycm9yICovXSB8fCBuZXcgRXJyb3Ioc3RyTm90U3BlY2lmaWVkKTtcclxuICAgICAgICAgICAgICAgIHZhciBleGNlcHRpb25QYXJ0QiA9IG5ldyBFeGNlcHRpb24oX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIHRoZUVycm9yLCBleGNlcHRpb24ucHJvcGVydGllcyB8fCBjdXN0b21Qcm9wZXJ0aWVzLCBleGNlcHRpb24ubWVhc3VyZW1lbnRzLCBleGNlcHRpb24uc2V2ZXJpdHlMZXZlbCwgZXhjZXB0aW9uLmlkKS50b0ludGVyZmFjZSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRlbGVtZXRyeUl0ZW0gPSBjcmVhdGVUZWxlbWV0cnlJdGVtKGV4Y2VwdGlvblBhcnRCLCBFeGNlcHRpb25bX0RZTl9EQVRBX1RZUEUgLyogQG1pbjolMmVkYXRhVHlwZSAqL10sIEV4Y2VwdGlvbltfRFlOX0VOVkVMT1BFX1RZUEUgLyogQG1pbjolMmVlbnZlbG9wZVR5cGUgKi9dLCBfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgY3VzdG9tUHJvcGVydGllcywgc3lzdGVtUHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXVtfRFlOX1RSQUNLIC8qIEBtaW46JTJldHJhY2sgKi9dKHRlbGVtZXRyeUl0ZW0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTG9nIGFuIGV4Y2VwdGlvbiB5b3UgaGF2ZSBjYXVnaHQuXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7SUV4Y2VwdGlvblRlbGVtZXRyeX0gZXhjZXB0aW9uICAgT2JqZWN0IHdoaWNoIGNvbnRhaW5zIGV4Y2VwdGlvbiB0byBiZSBzZW50XHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7e1trZXk6IHN0cmluZ106IGFueX19IGN1c3RvbVByb3BlcnRpZXMgICBBZGRpdGlvbmFsIGRhdGEgdXNlZCB0byBmaWx0ZXIgcGFnZXMgYW5kIG1ldHJpY3MgaW4gdGhlIHBvcnRhbC4gRGVmYXVsdHMgdG8gZW1wdHkuXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIEFueSBwcm9wZXJ0eSBvZiB0eXBlIGRvdWJsZSB3aWxsIGJlIGNvbnNpZGVyZWQgYSBtZWFzdXJlbWVudCwgYW5kIHdpbGwgYmUgdHJlYXRlZCBieSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBhcyBhIG1ldHJpYy5cclxuICAgICAgICAgICAgICogQG1lbWJlcm9mIEFwcGxpY2F0aW9uSW5zaWdodHNcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLnRyYWNrRXhjZXB0aW9uID0gZnVuY3Rpb24gKGV4Y2VwdGlvbiwgY3VzdG9tUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiAmJiAhZXhjZXB0aW9uW19EWU5fRVhDRVBUSU9OIC8qIEBtaW46JTJlZXhjZXB0aW9uICovXSAmJiBleGNlcHRpb25bX0RZTl9FUlJPUiAvKiBAbWluOiUyZWVycm9yICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbltfRFlOX0VYQ0VQVElPTiAvKiBAbWluOiUyZWV4Y2VwdGlvbiAqL10gPSBleGNlcHRpb25bX0RZTl9FUlJPUiAvKiBAbWluOiUyZWVycm9yICovXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9TRU5EX0VYQ0VQVElPTl9JTlRFUjEzIC8qIEBtaW46JTJlc2VuZEV4Y2VwdGlvbkludGVybmFsICovXShleGNlcHRpb24sIGN1c3RvbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbCgxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDM1IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuVHJhY2tFeGNlcHRpb25GYWlsZWQgKi8sIFwidHJhY2tFeGNlcHRpb24gZmFpbGVkLCBleGNlcHRpb24gd2lsbCBub3QgYmUgY29sbGVjdGVkOiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIEN1c3RvbSBlcnJvciBoYW5kbGVyIGZvciBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBBbmFseXRpY3NcclxuICAgICAgICAgICAgICogQHBhcmFtIHtJQXV0b0V4Y2VwdGlvblRlbGVtZXRyeX0gZXhjZXB0aW9uXHJcbiAgICAgICAgICAgICAqIEBtZW1iZXJvZiBBcHBsaWNhdGlvbkluc2lnaHRzXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX19PTkVSUk9SIC8qIEBtaW46JTJlX29uZXJyb3IgKi9dID0gZnVuY3Rpb24gKGV4Y2VwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVycm9yID0gZXhjZXB0aW9uICYmIGV4Y2VwdGlvbltfRFlOX0VSUk9SIC8qIEBtaW46JTJlZXJyb3IgKi9dO1xyXG4gICAgICAgICAgICAgICAgdmFyIGV2dCA9IGV4Y2VwdGlvbiAmJiBleGNlcHRpb24uZXZ0O1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWV2dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX3dpbmRvdyA9IGdldFdpbmRvdygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3dpbmRvdykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0ID0gX3dpbmRvd1tzdHJFdmVudF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVybCA9IChleGNlcHRpb24gJiYgZXhjZXB0aW9uLnVybCkgfHwgKGdldERvY3VtZW50KCkgfHwge30pLlVSTDtcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBubyBlcnJvciBzb3VyY2UgaXMgcHJvdmlkZWQgYXNzdW1lIHRoZSBkZWZhdWx0IHdpbmRvdy5vbmVycm9yIGhhbmRsZXJcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3JTcmMgPSBleGNlcHRpb25bX0RZTl9FUlJPUl9TUkMgLyogQG1pbjolMmVlcnJvclNyYyAqL10gfHwgXCJ3aW5kb3cub25lcnJvckBcIiArIHVybCArIFwiOlwiICsgKGV4Y2VwdGlvbltfRFlOX0xJTkVfTlVNQkVSIC8qIEBtaW46JTJlbGluZU51bWJlciAqL10gfHwgMCkgKyBcIjpcIiArIChleGNlcHRpb25bX0RZTl9DT0xVTU5fTlVNQkVSIC8qIEBtaW46JTJlY29sdW1uTnVtYmVyICovXSB8fCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JTcmM6IGVycm9yU3JjLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogZXhjZXB0aW9uW19EWU5fTElORV9OVU1CRVIgLyogQG1pbjolMmVsaW5lTnVtYmVyICovXSB8fCAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IGV4Y2VwdGlvbltfRFlOX0NPTFVNTl9OVU1CRVIgLyogQG1pbjolMmVjb2x1bW5OdW1iZXIgKi9dIHx8IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGV4Y2VwdGlvbltfRFlOX01FU1NBR0UgLyogQG1pbjolMmVtZXNzYWdlICovXVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3Jvc3NPcmlnaW5FcnJvcihleGNlcHRpb24ubWVzc2FnZSwgZXhjZXB0aW9uLnVybCwgZXhjZXB0aW9uLmxpbmVOdW1iZXIsIGV4Y2VwdGlvbi5jb2x1bW5OdW1iZXIsIGV4Y2VwdGlvbltfRFlOX0VSUk9SIC8qIEBtaW46JTJlZXJyb3IgKi9dKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VuZENPUlNFeGNlcHRpb24oRXhjZXB0aW9uW19EWU5fX0NSRUFURV9BVVRPX0VYQ0VQVEkxNCAvKiBAbWluOiUyZUNyZWF0ZUF1dG9FeGNlcHRpb24gKi9dKFwiU2NyaXB0IGVycm9yOiBUaGUgYnJvd3NlcidzIHNhbWUtb3JpZ2luIHBvbGljeSBwcmV2ZW50cyB1cyBmcm9tIGdldHRpbmcgdGhlIGRldGFpbHMgb2YgdGhpcyBleGNlcHRpb24uIENvbnNpZGVyIHVzaW5nIHRoZSAnY3Jvc3NvcmlnaW4nIGF0dHJpYnV0ZS5cIiwgdXJsLCBleGNlcHRpb25bX0RZTl9MSU5FX05VTUJFUiAvKiBAbWluOiUyZWxpbmVOdW1iZXIgKi9dIHx8IDAsIGV4Y2VwdGlvbltfRFlOX0NPTFVNTl9OVU1CRVIgLyogQG1pbjolMmVjb2x1bW5OdW1iZXIgKi9dIHx8IDAsIGVycm9yLCBldnQsIG51bGwsIGVycm9yU3JjKSwgcHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbltfRFlOX0VSUk9SX1NSQyAvKiBAbWluOiUyZWVycm9yU3JjICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uW19EWU5fRVJST1JfU1JDIC8qIEBtaW46JTJlZXJyb3JTcmMgKi9dID0gZXJyb3JTcmM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGYudHJhY2tFeGNlcHRpb24oeyBleGNlcHRpb246IGV4Y2VwdGlvbiwgc2V2ZXJpdHlMZXZlbDogMyAvKiBlU2V2ZXJpdHlMZXZlbC5FcnJvciAqLyB9LCBwcm9wZXJ0aWVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvclN0cmluZyA9IGVycm9yID8gKGVycm9yLm5hbWUgKyBcIiwgXCIgKyBlcnJvcltfRFlOX01FU1NBR0UgLyogQG1pbjolMmVtZXNzYWdlICovXSkgOiBcIm51bGxcIjtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbCgxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDExIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRXhjZXB0aW9uV2hpbGVMb2dnaW5nRXJyb3IgKi8sIFwiX29uRXJyb3IgdGhyZXcgZXhjZXB0aW9uIHdoaWxlIGxvZ2dpbmcgZXJyb3IsIGVycm9yIHdpbGwgbm90IGJlIGNvbGxlY3RlZDogXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSwgZXJyb3JTdHJpbmc6IGVycm9yU3RyaW5nIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0FERF9URUxFTUVUUllfSU5JVElBMTUgLyogQG1pbjolMmVhZGRUZWxlbWV0cnlJbml0aWFsaXplciAqL10gPSBmdW5jdGlvbiAodGVsZW1ldHJ5SW5pdGlhbGl6ZXIpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEp1c3QgYWRkIHRvIHRoZSBjb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dW19EWU5fQUREX1RFTEVNRVRSWV9JTklUSUExNSAvKiBAbWluOiUyZWFkZFRlbGVtZXRyeUluaXRpYWxpemVyICovXSh0ZWxlbWV0cnlJbml0aWFsaXplcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgXCJwcmUtaW5pdGlhbGl6YXRpb25cIiB0ZWxlbWV0cnkgaW5pdGlhbGl6ZXJzIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcclxuICAgICAgICAgICAgICAgIGlmICghX3ByZUluaXRUZWxlbWV0cnlJbml0aWFsaXplcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBfcHJlSW5pdFRlbGVtZXRyeUluaXRpYWxpemVycyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgX3ByZUluaXRUZWxlbWV0cnlJbml0aWFsaXplcnMucHVzaCh0ZWxlbWV0cnlJbml0aWFsaXplcik7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmluaXRpYWxpemUgPSBmdW5jdGlvbiAoY29uZmlnLCBjb3JlLCBleHRlbnNpb25zLCBwbHVnaW5DaGFpbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9zZWxmLmlzSW5pdGlhbGl6ZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb3JlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoXCJFcnJvciBpbml0aWFsaXppbmdcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfYmFzZS5pbml0aWFsaXplKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBfZXZ0TmFtZXNwYWNlID0gbWVyZ2VFdnROYW1lc3BhY2UoY3JlYXRlVW5pcXVlTmFtZXNwYWNlKF9zZWxmLmlkZW50aWZpZXIpLCBjb3JlLmV2dE5hbWVzcGFjZSAmJiBjb3JlLmV2dE5hbWVzcGFjZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX3ByZUluaXRUZWxlbWV0cnlJbml0aWFsaXplcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfcHJlSW5pdFRlbGVtZXRyeUluaXRpYWxpemVycywgZnVuY3Rpb24gKGluaXRpYWxpemVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlW19EWU5fQUREX1RFTEVNRVRSWV9JTklUSUExNSAvKiBAbWluOiUyZWFkZFRlbGVtZXRyeUluaXRpYWxpemVyICovXShpbml0aWFsaXplcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfcHJlSW5pdFRlbGVtZXRyeUluaXRpYWxpemVycyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBleHRDb25maWcgPSBfcG9wdWxhdGVEZWZhdWx0cyhjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIF91cGRhdGVTdG9yYWdlVXNhZ2UoZXh0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICBfcGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIgPSBuZXcgUGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIoX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgIF9wYWdlVmlld01hbmFnZXIgPSBuZXcgUGFnZVZpZXdNYW5hZ2VyKF90aGlzLCBleHRDb25maWdbX0RZTl9PVkVSUklERV9QQUdFX1ZJRVdfRDIgLyogQG1pbjolMmVvdmVycmlkZVBhZ2VWaWV3RHVyYXRpb24gKi9dLCBfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXSwgX3BhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyKTtcclxuICAgICAgICAgICAgICAgICAgICBfcGFnZVZpc2l0VGltZU1hbmFnZXIgPSBuZXcgUGFnZVZpc2l0VGltZU1hbmFnZXIoX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIGZ1bmN0aW9uIChwYWdlTmFtZSwgcGFnZVVybCwgcGFnZVZpc2l0VGltZSkgeyByZXR1cm4gdHJhY2tQYWdlVmlzaXRUaW1lKHBhZ2VOYW1lLCBwYWdlVXJsLCBwYWdlVmlzaXRUaW1lKTsgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3VwZGF0ZUJyb3dzZXJMaW5rVHJhY2tpbmcoZXh0Q29uZmlnLCBjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFRyYWNraW5nID0gbmV3IFRpbWluZyhfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgXCJ0cmFja0V2ZW50XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFRyYWNraW5nLmFjdGlvbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChuYW1lLCB1cmwsIGR1cmF0aW9uLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWVhc3VyZW1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRzID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLmR1cmF0aW9uID0gZHVyYXRpb25bX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLnRyYWNrRXZlbnQoeyBuYW1lOiBuYW1lLCBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHM6IG1lYXN1cmVtZW50cyB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHBhZ2UgdmlldyB0aW1pbmdcclxuICAgICAgICAgICAgICAgICAgICBfcGFnZVRyYWNraW5nID0gbmV3IFRpbWluZyhfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgXCJ0cmFja1BhZ2VWaWV3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9wYWdlVHJhY2tpbmcuYWN0aW9uID0gZnVuY3Rpb24gKG5hbWUsIHVybCwgZHVyYXRpb24sIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkdXJhdGlvbiBtdXN0IGJlIGEgY3VzdG9tIHByb3BlcnR5IGluIG9yZGVyIGZvciB0aGUgY29sbGVjdG9yIHRvIGV4dHJhY3QgaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHByb3BlcnRpZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5kdXJhdGlvbiA9IGR1cmF0aW9uW19EWU5fVE9fU1RSSU5HIC8qIEBtaW46JTJldG9TdHJpbmcgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYWdlVmlld0l0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpOiB1cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRzOiBtZWFzdXJlbWVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9TRU5EX1BBR0VfVklFV19JTlRFUjEwIC8qIEBtaW46JTJlc2VuZFBhZ2VWaWV3SW50ZXJuYWwgKi9dKHBhZ2VWaWV3SXRlbSwgcHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzV2luZG93KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3VwZGF0ZUV4Y2VwdGlvblRyYWNraW5nKGV4dENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF91cGRhdGVMb2NhdGlvbkNoYW5nZShleHRDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXR0aW5nIHRoZSBpbml0aWFsaXplZCBzdGF0ZSBiZWNhdXNlIG9mIGZhaWx1cmVcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZi5zZXRJbml0aWFsaXplZChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuX2RvVGVhcmRvd24gPSBmdW5jdGlvbiAodW5sb2FkQ3R4LCB1bmxvYWRTdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgX3BhZ2VWaWV3TWFuYWdlciAmJiBfcGFnZVZpZXdNYW5hZ2VyLnRlYXJkb3duKHVubG9hZEN0eCwgdW5sb2FkU3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gSnVzdCByZWdpc3RlciB0byByZW1vdmUgYWxsIGV2ZW50cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBuYW1lc3BhY2VcclxuICAgICAgICAgICAgICAgIGV2ZW50T2ZmKHdpbmRvdywgbnVsbCwgbnVsbCwgX2V2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9wb3B1bGF0ZURlZmF1bHRzKGNvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0eCA9IGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0KG51bGwsIGNvbmZpZywgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10pO1xyXG4gICAgICAgICAgICAgICAgdmFyIGlkZW50aWZpZXIgPSBfc2VsZi5pZGVudGlmaWVyO1xyXG4gICAgICAgICAgICAgICAgLy8gbG9hZCBkZWZhdWx0IHZhbHVlcyBpZiBzcGVjaWZpZWRcclxuICAgICAgICAgICAgICAgIHZhciBkZWZhdWx0cyA9IF9nZXREZWZhdWx0Q29uZmlnKGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZXh0Q29uZmlnID0gX3NlbGYuY29uZmlnID0gY3R4LmdldEV4dENmZyhpZGVudGlmaWVyKTtcclxuICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0cyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb2JqRm9yRWFjaEtleShkZWZhdWx0cywgZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgZWFjaCB1bnNwZWNpZmllZCBmaWVsZCwgc2V0IHRoZSBkZWZhdWx0IHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dENvbmZpZ1tmaWVsZF0gPSBjdHguZ2V0Q29uZmlnKGlkZW50aWZpZXIsIGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHRDb25maWdbZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dENvbmZpZyA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZXh0Q29uZmlnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF91cGRhdGVCcm93c2VyTGlua1RyYWNraW5nKGV4dENvbmZpZywgY29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICBfaXNCcm93c2VyTGlua1RyYWNraW5nRW5hYmxlZCA9IGV4dENvbmZpZ1tfRFlOX0lTX0JST1dTRVJfTElOS19UUkFDNSAvKiBAbWluOiUyZWlzQnJvd3NlckxpbmtUcmFja2luZ0VuYWJsZWQgKi9dIHx8IGNvbmZpZ1tfRFlOX0lTX0JST1dTRVJfTElOS19UUkFDNSAvKiBAbWluOiUyZWlzQnJvd3NlckxpbmtUcmFja2luZ0VuYWJsZWQgKi9dO1xyXG4gICAgICAgICAgICAgICAgX2FkZERlZmF1bHRUZWxlbWV0cnlJbml0aWFsaXplcnMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTG9nIGEgcGFnZSB2aXNpdCB0aW1lXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSAgICBwYWdlTmFtZSAgICBOYW1lIG9mIHBhZ2VcclxuICAgICAgICAgICAgICogQHBhcmFtICAgIHBhZ2VWaXNpdER1cmF0aW9uIER1cmF0aW9uIG9mIHZpc2l0IHRvIHRoZSBwYWdlIGluIG1pbGxlc2Vjb25kc1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZnVuY3Rpb24gdHJhY2tQYWdlVmlzaXRUaW1lKHBhZ2VOYW1lLCBwYWdlVXJsLCBwYWdlVmlzaXRUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsgUGFnZU5hbWU6IHBhZ2VOYW1lLCBQYWdlVXJsOiBwYWdlVXJsIH07XHJcbiAgICAgICAgICAgICAgICBfc2VsZi50cmFja01ldHJpYyh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQYWdlVmlzaXRUaW1lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgYXZlcmFnZTogcGFnZVZpc2l0VGltZSxcclxuICAgICAgICAgICAgICAgICAgICBtYXg6IHBhZ2VWaXNpdFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWluOiBwYWdlVmlzaXRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHNhbXBsZUNvdW50OiAxXHJcbiAgICAgICAgICAgICAgICB9LCBwcm9wZXJ0aWVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfYWRkRGVmYXVsdFRlbGVtZXRyeUluaXRpYWxpemVycygpIHtcclxuICAgICAgICAgICAgICAgIGlmICghX2Jyb3dzZXJMaW5rSW5pdGlhbGl6ZXJBZGRlZCAmJiBfaXNCcm93c2VyTGlua1RyYWNraW5nRW5hYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBicm93c2VyTGlua1BhdGhzXzEgPSBbXCIvYnJvd3NlckxpbmtTaWduYWxSL1wiLCBcIi9fX2Jyb3dzZXJMaW5rL1wiXTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZHJvcEJyb3dzZXJMaW5rUmVxdWVzdHMgPSBmdW5jdGlvbiAoZW52ZWxvcGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9pc0Jyb3dzZXJMaW5rVHJhY2tpbmdFbmFibGVkICYmIGVudmVsb3BlLmJhc2VUeXBlID09PSBSZW1vdGVEZXBlbmRlbmN5RGF0YVtfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbW90ZURhdGEgPSBlbnZlbG9wZS5iYXNlRGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZW1vdGVEYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicm93c2VyTGlua1BhdGhzXzFbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW90ZURhdGEudGFyZ2V0ICYmIHJlbW90ZURhdGEudGFyZ2V0LmluZGV4T2YoYnJvd3NlckxpbmtQYXRoc18xW2ldKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX0FERF9URUxFTUVUUllfSU5JVElBMTUgLyogQG1pbjolMmVhZGRUZWxlbWV0cnlJbml0aWFsaXplciAqL10oZHJvcEJyb3dzZXJMaW5rUmVxdWVzdHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9icm93c2VyTGlua0luaXRpYWxpemVyQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9zZW5kQ09SU0V4Y2VwdGlvbihleGNlcHRpb24sIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIHZhciB0ZWxlbWV0cnlJdGVtID0gY3JlYXRlVGVsZW1ldHJ5SXRlbShleGNlcHRpb24sIEV4Y2VwdGlvbltfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSwgRXhjZXB0aW9uW19EWU5fRU5WRUxPUEVfVFlQRSAvKiBAbWluOiUyZWVudmVsb3BlVHlwZSAqL10sIF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCBwcm9wZXJ0aWVzKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dW19EWU5fVFJBQ0sgLyogQG1pbjolMmV0cmFjayAqL10odGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3VwZGF0ZUV4Y2VwdGlvblRyYWNraW5nKGV4dENvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgdmFyIF93aW5kb3cgPSBnZXRXaW5kb3coKTtcclxuICAgICAgICAgICAgICAgIHZhciBsb2NuID0gZ2V0TG9jYXRpb24odHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBfZGlzYWJsZUV4Y2VwdGlvblRyYWNraW5nID0gZXh0Q29uZmlnW19EWU5fRElTQUJMRV9FWENFUFRJT05fVFIwIC8qIEBtaW46JTJlZGlzYWJsZUV4Y2VwdGlvblRyYWNraW5nICovXTtcclxuICAgICAgICAgICAgICAgIGlmICghX2Rpc2FibGVFeGNlcHRpb25UcmFja2luZyAmJiAhX2F1dG9FeGNlcHRpb25JbnN0cnVtZW50ZWQgJiYgIWV4dENvbmZpZy5hdXRvRXhjZXB0aW9uSW5zdHJ1bWVudGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBlbmFibGUgZXhjZXB0aW9uIGF1dG8gY29sbGVjdGlvbiBhbmQgaXQgaGFzIG5vdCBiZWVuIGRvbmUgc28geWV0XHJcbiAgICAgICAgICAgICAgICAgICAgX2FkZEhvb2soSW5zdHJ1bWVudEV2ZW50KF93aW5kb3csIFwib25lcnJvclwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5zOiBfZXZ0TmFtZXNwYWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByc3A6IGZ1bmN0aW9uIChjYWxsRGV0YWlscywgbWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9kaXNhYmxlRXhjZXB0aW9uVHJhY2tpbmcgJiYgY2FsbERldGFpbHMucnNsdCAhPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX09ORVJST1IgLyogQG1pbjolMmVfb25lcnJvciAqL10oRXhjZXB0aW9uW19EWU5fX0NSRUFURV9BVVRPX0VYQ0VQVEkxNCAvKiBAbWluOiUyZUNyZWF0ZUF1dG9FeGNlcHRpb24gKi9dKG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvciwgY2FsbERldGFpbHMuZXZ0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hdXRvRXhjZXB0aW9uSW5zdHJ1bWVudGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF9hZGRVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcoZXh0Q29uZmlnLCBfd2luZG93LCBsb2NuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfdXBkYXRlTG9jYXRpb25DaGFuZ2UoZXh0Q29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgd2luID0gZ2V0V2luZG93KCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgbG9jbiA9IGdldExvY2F0aW9uKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgX2VuYWJsZUF1dG9Sb3V0ZVRyYWNraW5nID0gZXh0Q29uZmlnW19EWU5fRU5BQkxFX0FVVE9fUk9VVEVfVFI2IC8qIEBtaW46JTJlZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmcgKi9dID09PSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgKiBDcmVhdGUgYSBjdXN0b20gXCJsb2NhdGlvbmNoYW5nZVwiIGV2ZW50IHdoaWNoIGlzIHRyaWdnZXJlZCBlYWNoIHRpbWUgdGhlIGhpc3Rvcnkgb2JqZWN0IGlzIGNoYW5nZWRcclxuICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgaWYgKHdpbiAmJiBfZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmcgJiYgaGFzSGlzdG9yeSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9oaXN0b3J5ID0gZ2V0SGlzdG9yeSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKF9oaXN0b3J5LnB1c2hTdGF0ZSkgJiYgaXNGdW5jdGlvbihfaGlzdG9yeS5yZXBsYWNlU3RhdGUpICYmIHR5cGVvZiBFdmVudCAhPT0gc3RyVW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hZGRIaXN0b3J5TGlzdGVuZXIoZXh0Q29uZmlnLCB3aW4sIF9oaXN0b3J5LCBsb2NuKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2dldERpc3RyaWJ1dGVkVHJhY2VDdHgoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGlzdHJpYnV0ZWRUcmFjZUN0eCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAoX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10gJiYgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10uZ2V0VHJhY2VDdHgpIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRlZFRyYWNlQ3R4ID0gX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10uZ2V0VHJhY2VDdHgoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFkaXN0cmlidXRlZFRyYWNlQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgd2hlbiB1c2luZyBhbiBvbGRlciBDb3JlIGFuZCBQcm9wZXJ0aWVzUGx1Z2luXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXS5nZXRQbHVnaW4oUHJvcGVydGllc1BsdWdpbklkZW50aWZpZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gcHJvcGVydGllcy5wbHVnaW4uY29udGV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGVkVHJhY2VDdHggPSBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dEZyb21UcmFjZShjb250ZXh0LnRlbGVtZXRyeVRyYWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXN0cmlidXRlZFRyYWNlQ3R4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBDcmVhdGUgYSBjdXN0b20gXCJsb2NhdGlvbmNoYW5nZVwiIGV2ZW50IHdoaWNoIGlzIHRyaWdnZXJlZCBlYWNoIHRpbWUgdGhlIGhpc3Rvcnkgb2JqZWN0IGlzIGNoYW5nZWRcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9hZGRIaXN0b3J5TGlzdGVuZXIoZXh0Q29uZmlnLCB3aW4sIGhpc3RvcnksIGxvY24pIHtcclxuICAgICAgICAgICAgICAgIHZhciBuYW1lUHJlZml4ID0gZXh0Q29uZmlnW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjolMmVuYW1lUHJlZml4ICovXSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX3BvcHN0YXRlSGFuZGxlcigpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2VuYWJsZUF1dG9Sb3V0ZVRyYWNraW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9kaXNwYXRjaEV2ZW50KHdpbiwgY3JlYXRlRG9tRXZlbnQobmFtZVByZWZpeCArIFwibG9jYXRpb25jaGFuZ2VcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9sb2NhdGlvbkNoYW5nZUhhbmRsZXIoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgYWx3YXlzIHRyYWNrIHRoZSBjaGFuZ2VzIChpZiB0aGUgaGFuZGxlciBpcyBpbnN0YWxsZWQpIHRvIGhhbmRsZSB0aGUgZmVhdHVyZSBiZWluZyBkaXNhYmxlZCBiZXR3ZWVuIGxvY2F0aW9uIGNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2N1cnJVcmkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZVcmkgPSBfY3VyclVyaTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2N1cnJVcmkgPSBsb2NuICYmIGxvY25bX0RZTl9IUkVGIC8qIEBtaW46JTJlaHJlZiAqL10gfHwgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jdXJyVXJpID0gbG9jbiAmJiBsb2NuW19EWU5fSFJFRiAvKiBAbWluOiUyZWhyZWYgKi9dIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpc3RyaWJ1dGVkVHJhY2VDdHggPSBfZ2V0RGlzdHJpYnV0ZWRUcmFjZUN0eCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlzdHJpYnV0ZWRUcmFjZUN0eCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpYnV0ZWRUcmFjZUN0eC5zZXRUcmFjZUlkKGdlbmVyYXRlVzNDSWQoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHJhY2VMb2NhdGlvbk5hbWUgPSBcIl91bmtub3duX1wiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvY24gJiYgbG9jbi5wYXRobmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlTG9jYXRpb25OYW1lID0gbG9jbi5wYXRobmFtZSArIChsb2NuLmhhc2ggfHwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBvcHVsYXRlcyB0aGUgYWkub3BlcmF0aW9uLm5hbWUgd2hpY2ggaGFzIGEgbWF4aW11bSBzaXplIG9mIDEwMjQgc28gd2UgbmVlZCB0byBzYW5pdGl6ZSBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpYnV0ZWRUcmFjZUN0eC5zZXROYW1lKGRhdGFTYW5pdGl6ZVN0cmluZyhfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgdHJhY2VMb2NhdGlvbk5hbWUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KChmdW5jdGlvbiAodXJpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0b2RvOiBvdmVycmlkZSBzdGFydCB0aW1lIHNvIHRoYXQgaXQgaXMgbm90IGFmZmVjdGVkIGJ5IGF1dG9Sb3V0ZVBWRGVsYXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fVFJBQ0tfUEFHRV9WSUVXIC8qIEBtaW46JTJldHJhY2tQYWdlVmlldyAqL10oeyByZWZVcmk6IHVyaSwgcHJvcGVydGllczogeyBkdXJhdGlvbjogMCB9IH0pOyAvLyBTUEEgcm91dGUgY2hhbmdlIGxvYWRpbmcgZHVyYXRpb25zIGFyZSB1bmRlZmluZWQsIHNvIHNlbmQgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMsIF9wcmV2VXJpKSwgX3NlbGYuYXV0b1JvdXRlUFZEZWxheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFfaGlzdG9yeUxpc3RlbmVyQWRkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBfYWRkSG9vayhJbnN0cnVtZW50RXZlbnQoaGlzdG9yeSwgXCJwdXNoU3RhdGVcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuczogX2V2dE5hbWVzcGFjZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcnNwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2VuYWJsZUF1dG9Sb3V0ZVRyYWNraW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Rpc3BhdGNoRXZlbnQod2luLCBjcmVhdGVEb21FdmVudChuYW1lUHJlZml4ICsgXCJwdXNoU3RhdGVcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kaXNwYXRjaEV2ZW50KHdpbiwgY3JlYXRlRG9tRXZlbnQobmFtZVByZWZpeCArIFwibG9jYXRpb25jaGFuZ2VcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hZGRIb29rKEluc3RydW1lbnRFdmVudChoaXN0b3J5LCBcInJlcGxhY2VTdGF0ZVwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5zOiBfZXZ0TmFtZXNwYWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByc3A6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZGlzcGF0Y2hFdmVudCh3aW4sIGNyZWF0ZURvbUV2ZW50KG5hbWVQcmVmaXggKyBcInJlcGxhY2VTdGF0ZVwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Rpc3BhdGNoRXZlbnQod2luLCBjcmVhdGVEb21FdmVudChuYW1lUHJlZml4ICsgXCJsb2NhdGlvbmNoYW5nZVwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCB0cnVlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRPbih3aW4sIG5hbWVQcmVmaXggKyBcInBvcHN0YXRlXCIsIF9wb3BzdGF0ZUhhbmRsZXIsIF9ldnROYW1lc3BhY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50T24od2luLCBuYW1lUHJlZml4ICsgXCJsb2NhdGlvbmNoYW5nZVwiLCBfbG9jYXRpb25DaGFuZ2VIYW5kbGVyLCBfZXZ0TmFtZXNwYWNlKTtcclxuICAgICAgICAgICAgICAgICAgICBfaGlzdG9yeUxpc3RlbmVyQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9hZGRVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcoZXh0Q29uZmlnLCBfd2luZG93LCBfbG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIF9lbmFibGVVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcgPSBleHRDb25maWdbX0RZTl9FTkFCTEVfVU5IQU5ETEVEX1BSTzMgLyogQG1pbjolMmVlbmFibGVVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcgKi9dID09PSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9lbmFibGVVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcgJiYgIV9hdXRvVW5oYW5kbGVkUHJvbWlzZUluc3RydW1lbnRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZW5hYmxlIGV4Y2VwdGlvbiBhdXRvIGNvbGxlY3Rpb24gYW5kIGl0IGhhcyBub3QgYmVlbiBkb25lIHNvIHlldFxyXG4gICAgICAgICAgICAgICAgICAgIF9hZGRIb29rKEluc3RydW1lbnRFdmVudChfd2luZG93LCBcIm9udW5oYW5kbGVkcmVqZWN0aW9uXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnM6IF9ldnROYW1lc3BhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJzcDogZnVuY3Rpb24gKGNhbGxEZXRhaWxzLCBlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9lbmFibGVVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcgJiYgY2FsbERldGFpbHMucnNsdCAhPT0gdHJ1ZSkgeyAvLyBoYW5kbGVkIGNvdWxkIGJlIHR5cGVvZiBmdW5jdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX09ORVJST1IgLyogQG1pbjolMmVfb25lcnJvciAqL10oRXhjZXB0aW9uW19EWU5fX0NSRUFURV9BVVRPX0VYQ0VQVEkxNCAvKiBAbWluOiUyZUNyZWF0ZUF1dG9FeGNlcHRpb24gKi9dKF9nZXRSZWFzb24oZXJyb3IpLCBfbG9jYXRpb24gPyBfbG9jYXRpb25bX0RZTl9IUkVGIC8qIEBtaW46JTJlaHJlZiAqL10gOiBcIlwiLCAwLCAwLCBlcnJvciwgY2FsbERldGFpbHMuZXZ0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hdXRvVW5oYW5kbGVkUHJvbWlzZUluc3RydW1lbnRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0Q29uZmlnLmF1dG9VbmhhbmRsZWRQcm9taXNlSW5zdHJ1bWVudGVkID0gX2F1dG9VbmhhbmRsZWRQcm9taXNlSW5zdHJ1bWVudGVkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIHRocm93IGV4Y2VwdGlvbnMgaW4gZGVidWcgbW9kZSBvciBhdHRlbXB0IHRvIGxvZyB0aGUgZXJyb3IgYXMgYSBjb25zb2xlIHdhcm5pbmcuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBzZXZlcml0eSB7ZUxvZ2dpbmdTZXZlcml0eX0gLSBUaGUgc2V2ZXJpdHkgb2YgdGhlIGxvZyBtZXNzYWdlXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBtZXNzYWdlIHtfSW50ZXJuYWxMb2dNZXNzYWdlfSAtIFRoZSBsb2cgbWVzc2FnZS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF90aHJvd0ludGVybmFsKHNldmVyaXR5LCBtc2dJZCwgbXNnLCBwcm9wZXJ0aWVzLCBpc1VzZXJBY3QpIHtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLnRocm93SW50ZXJuYWwoc2V2ZXJpdHksIG1zZ0lkLCBtc2csIHByb3BlcnRpZXMsIGlzVXNlckFjdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2luaXREZWZhdWx0cygpIHtcclxuICAgICAgICAgICAgICAgIF9ldmVudFRyYWNraW5nID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9wYWdlVHJhY2tpbmcgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX3BhZ2VWaWV3TWFuYWdlciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfcGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX3BhZ2VWaXNpdFRpbWVNYW5hZ2VyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9wcmVJbml0VGVsZW1ldHJ5SW5pdGlhbGl6ZXJzID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9pc0Jyb3dzZXJMaW5rVHJhY2tpbmdFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBfYnJvd3NlckxpbmtJbml0aWFsaXplckFkZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBfZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIF9oaXN0b3J5TGlzdGVuZXJBZGRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgX2Rpc2FibGVFeGNlcHRpb25UcmFja2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgX2F1dG9FeGNlcHRpb25JbnN0cnVtZW50ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIF9lbmFibGVVbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uVHJhY2tpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIF9hdXRvVW5oYW5kbGVkUHJvbWlzZUluc3RydW1lbnRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gQ291bnRzIG51bWJlciBvZiB0cmFja0FqYXggaW52b2NhdGlvbnMuXHJcbiAgICAgICAgICAgICAgICAvLyBCeSBkZWZhdWx0IHdlIG9ubHkgbW9uaXRvciBYIGFqYXggY2FsbCBwZXIgdmlldyB0byBhdm9pZCB0b28gbXVjaCBsb2FkLlxyXG4gICAgICAgICAgICAgICAgLy8gRGVmYXVsdCB2YWx1ZSBpcyBzZXQgaW4gY29uZmlnLlxyXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBjb3VudGVyIGtlZXBzIGluY3JlYXNpbmcgZXZlbiBhZnRlciB0aGUgbGltaXQgaXMgcmVhY2hlZC5cclxuICAgICAgICAgICAgICAgIF90cmFja0FqYXhBdHRlbXB0cyA9IDA7XHJcbiAgICAgICAgICAgICAgICAvLyBhcnJheSB3aXRoIG1heCBsZW5ndGggb2YgMiB0aGF0IHN0b3JlIGN1cnJlbnQgdXJsIGFuZCBwcmV2aW91cyB1cmwgZm9yIFNQQSBwYWdlIHJvdXRlIGNoYW5nZSB0cmFja1BhZ2V2aWV3IHVzZS5cclxuICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGdldExvY2F0aW9uKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgX3ByZXZVcmkgPSBsb2NhdGlvbiAmJiBsb2NhdGlvbltfRFlOX0hSRUYgLyogQG1pbjolMmVocmVmICovXSB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgX2N1cnJVcmkgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2V2dE5hbWVzcGFjZSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcclxuICAgICAgICAgICAgb2JqRGVmaW5lQWNjZXNzb3JzKF9zZWxmLCBcIl9wYWdlVmlld01hbmFnZXJcIiwgZnVuY3Rpb24gKCkgeyByZXR1cm4gX3BhZ2VWaWV3TWFuYWdlcjsgfSk7XHJcbiAgICAgICAgICAgIG9iakRlZmluZUFjY2Vzc29ycyhfc2VsZiwgXCJfcGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXJcIiwgZnVuY3Rpb24gKCkgeyByZXR1cm4gX3BhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyOyB9KTtcclxuICAgICAgICAgICAgb2JqRGVmaW5lQWNjZXNzb3JzKF9zZWxmLCBcIl9wYWdlVmlzaXRUaW1lTWFuYWdlclwiLCBmdW5jdGlvbiAoKSB7IHJldHVybiBfcGFnZVZpc2l0VGltZU1hbmFnZXI7IH0pO1xyXG4gICAgICAgICAgICBvYmpEZWZpbmVBY2Nlc3NvcnMoX3NlbGYsIFwiX2V2dE5hbWVzcGFjZVwiLCBmdW5jdGlvbiAoKSB7IHJldHVybiBcIi5cIiArIF9ldnROYW1lc3BhY2U7IH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBfdGhpcztcclxuICAgIH1cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBBbmFseXRpY3NQbHVnaW4ucHJvdG90eXBlLmdldENvb2tpZU1nci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBBbmFseXRpY3NQbHVnaW4ucHJvdG90eXBlLnByb2Nlc3NUZWxlbWV0cnkuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQW5hbHl0aWNzUGx1Z2luLnByb3RvdHlwZS50cmFja0V2ZW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUuc3RhcnRUcmFja0V2ZW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUuc3RvcFRyYWNrRXZlbnQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQW5hbHl0aWNzUGx1Z2luLnByb3RvdHlwZS50cmFja1RyYWNlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUudHJhY2tNZXRyaWMuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQW5hbHl0aWNzUGx1Z2luLnByb3RvdHlwZS50cmFja1BhZ2VWaWV3LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUuc2VuZFBhZ2VWaWV3SW50ZXJuYWwuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQW5hbHl0aWNzUGx1Z2luLnByb3RvdHlwZS5zZW5kUGFnZVZpZXdQZXJmb3JtYW5jZUludGVybmFsLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUudHJhY2tQYWdlVmlld1BlcmZvcm1hbmNlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUuc3RhcnRUcmFja1BhZ2UuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQW5hbHl0aWNzUGx1Z2luLnByb3RvdHlwZS5zdG9wVHJhY2tQYWdlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUuc2VuZEV4Y2VwdGlvbkludGVybmFsLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUudHJhY2tFeGNlcHRpb24uXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQW5hbHl0aWNzUGx1Z2luLnByb3RvdHlwZS5fb25lcnJvci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBBbmFseXRpY3NQbHVnaW4ucHJvdG90eXBlLmFkZFRlbGVtZXRyeUluaXRpYWxpemVyLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFuYWx5dGljc1BsdWdpbi5wcm90b3R5cGUuaW5pdGlhbGl6ZS5cclxuICAgIEFuYWx5dGljc1BsdWdpbi5WZXJzaW9uID0gJzIuOC45JzsgLy8gTm90IGN1cnJlbnRseSB1c2VkIGFueXdoZXJlXHJcbiAgICBBbmFseXRpY3NQbHVnaW4uZ2V0RGVmYXVsdENvbmZpZyA9IF9nZXREZWZhdWx0Q29uZmlnO1xyXG4gICAgcmV0dXJuIEFuYWx5dGljc1BsdWdpbjtcclxufShCYXNlVGVsZW1ldHJ5UGx1Z2luKSk7XHJcbmV4cG9ydCB7IEFuYWx5dGljc1BsdWdpbiB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1BbmFseXRpY3NQbHVnaW4uanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ2hhbm5lbCwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gTm90ZTogRE9OJ1QgRXhwb3J0IHRoZXNlIGNvbnN0IGZyb20gdGhlIHBhY2thZ2UgYXMgd2UgYXJlIHN0aWxsIHRhcmdldGluZyBFUzMgdGhpcyB3aWxsIGV4cG9ydCBhIG11dGFibGUgdmFyaWFibGVzIHRoYXQgc29tZW9uZSBjb3VsZCBjaGFuZ2UhISFcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gR2VuZXJhbGx5IHlvdSBzaG91bGQgb25seSBwdXQgdmFsdWVzIHRoYXQgYXJlIHVzZWQgbW9yZSB0aGFuIDIgdGltZXMgYW5kIHRoZW4gb25seSBpZiBub3QgYWxyZWFkeSBleHBvc2VkIGFzIGEgY29uc3RhbnQgKHN1Y2ggYXMgU2RrQ29yZU5hbWVzKVxyXG4vLyBhcyB3aGVuIHVzaW5nIFwic2hvcnRcIiBuYW1lZCB2YWx1ZXMgZnJvbSBoZXJlIHRoZXkgd2lsbCBiZSB3aWxsIGJlIG1pbmlmaWVkIHNtYWxsZXIgdGhhbiB0aGUgU2RrQ29yZU5hbWVzW2VTZGtDb3JlTmFtZXMueHh4eF0gdmFsdWUuXHJcbmV4cG9ydCB2YXIgU1RSX0RVUkFUSU9OID0gXCJkdXJhdGlvblwiO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1JbnRlcm5hbENvbnN0YW50cy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDaGFubmVsLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG4vLyBAc2tpcC1maWxlLW1pbmlmeVxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyBBVVRPIEdFTkVSQVRFRCBGSUxFOiBUaGlzIGZpbGUgaXMgQXV0byBHZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkLlxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG4vLyBOb3RlOiBET04nVCBFeHBvcnQgdGhlc2UgY29uc3QgZnJvbSB0aGUgcGFja2FnZSBhcyB3ZSBhcmUgc3RpbGwgdGFyZ2V0aW5nIEVTMyB0aGlzIHdpbGwgZXhwb3J0IGEgbXV0YWJsZSB2YXJpYWJsZXMgdGhhdCBzb21lb25lIGNvdWxkIGNoYW5nZSEhIVxyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG5leHBvcnQgdmFyIF9EWU5fVEFHUyA9IFwidGFnc1wiOyAvLyBDb3VudDogMTdcclxuZXhwb3J0IHZhciBfRFlOX0RFVklDRV9UWVBFID0gXCJkZXZpY2VUeXBlXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9EQVRBID0gXCJkYXRhXCI7IC8vIENvdW50OiAxM1xyXG5leHBvcnQgdmFyIF9EWU5fTkFNRSA9IFwibmFtZVwiOyAvLyBDb3VudDogOFxyXG5leHBvcnQgdmFyIF9EWU5fVFJBQ0VfSUQgPSBcInRyYWNlSURcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0xFTkdUSCA9IFwibGVuZ3RoXCI7IC8vIENvdW50OiAzNlxyXG5leHBvcnQgdmFyIF9EWU5fU1RSSU5HSUZZID0gXCJzdHJpbmdpZnlcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX01FQVNVUkVNRU5UUyA9IFwibWVhc3VyZW1lbnRzXCI7IC8vIENvdW50OiA3XHJcbmV4cG9ydCB2YXIgX0RZTl9EQVRBX1RZUEUgPSBcImRhdGFUeXBlXCI7IC8vIENvdW50OiAxMFxyXG5leHBvcnQgdmFyIF9EWU5fRU5WRUxPUEVfVFlQRSA9IFwiZW52ZWxvcGVUeXBlXCI7IC8vIENvdW50OiA3XHJcbmV4cG9ydCB2YXIgX0RZTl9UT19TVFJJTkcgPSBcInRvU3RyaW5nXCI7IC8vIENvdW50OiA3XHJcbmV4cG9ydCB2YXIgX0RZTl9PTl9MSU5FID0gXCJvbkxpbmVcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0VOUVVFVUUgPSBcImVucXVldWVcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0NPVU5UID0gXCJjb3VudFwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fUFVTSCA9IFwicHVzaFwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fRU1JVF9MSU5FX0RFTElNSVRFRF8wID0gXCJlbWl0TGluZURlbGltaXRlZEpzb25cIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0NMRUFSID0gXCJjbGVhclwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fQkFUQ0hfUEFZTE9BRFMgPSBcImJhdGNoUGF5bG9hZHNcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX01BUktfQVNfU0VOVCA9IFwibWFya0FzU2VudFwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fQ0xFQVJfU0VOVCA9IFwiY2xlYXJTZW50XCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9fQlVGRkVSX19LRVkgPSBcIkJVRkZFUl9LRVlcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX19TRU5UX19CVUZGRVJfX0tFWSA9IFwiU0VOVF9CVUZGRVJfS0VZXCI7IC8vIENvdW50OiA3XHJcbmV4cG9ydCB2YXIgX0RZTl9fTUFYX19CVUZGRVJfX1NJWkUgPSBcIk1BWF9CVUZGRVJfU0laRVwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fTkFNRV9QUkVGSVggPSBcIm5hbWVQcmVmaXhcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX01BWF9CQVRDSF9TSVpFX0lOX0JZMSA9IFwibWF4QmF0Y2hTaXplSW5CeXRlc1wiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fVFJJR0dFUl9TRU5EID0gXCJ0cmlnZ2VyU2VuZFwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fRElBR19MT0cgPSBcImRpYWdMb2dcIjsgLy8gQ291bnQ6IDE1XHJcbmV4cG9ydCB2YXIgX0RZTl9PTlVOTE9BRF9ESVNBQkxFX0JFQTIgPSBcIm9udW5sb2FkRGlzYWJsZUJlYWNvblwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fSVNfQkVBQ09OX0FQSV9ESVNBQkwzID0gXCJpc0JlYWNvbkFwaURpc2FibGVkXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9fU0VOREVSID0gXCJfc2VuZGVyXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9fU0VOREVSX0NPTkZJRyA9IFwiX3NlbmRlckNvbmZpZ1wiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fX0JVRkZFUiA9IFwiX2J1ZmZlclwiOyAvLyBDb3VudDogN1xyXG5leHBvcnQgdmFyIF9EWU5fRU5BQkxFX1NFU1NJT05fU1RPUkE0ID0gXCJlbmFibGVTZXNzaW9uU3RvcmFnZUJ1ZmZlclwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fU0FNUExJTkdfUEVSQ0VOVEFHRSA9IFwic2FtcGxpbmdQZXJjZW50YWdlXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9JTlNUUlVNRU5UQVRJT05fS0VZID0gXCJpbnN0cnVtZW50YXRpb25LZXlcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0VORFBPSU5UX1VSTCA9IFwiZW5kcG9pbnRVcmxcIjsgLy8gQ291bnQ6IDhcclxuZXhwb3J0IHZhciBfRFlOX0NVU1RPTV9IRUFERVJTID0gXCJjdXN0b21IZWFkZXJzXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX1hIUiA9IFwiZGlzYWJsZVhoclwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fT05VTkxPQURfRElTQUJMRV9GRVQ1ID0gXCJvbnVubG9hZERpc2FibGVGZXRjaFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRElTQUJMRV9URUxFTUVUUlkgPSBcImRpc2FibGVUZWxlbWV0cnlcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0JBU0VfVFlQRSA9IFwiYmFzZVR5cGVcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1NBTVBMRV9SQVRFID0gXCJzYW1wbGVSYXRlXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9DT05WRVJUX1VOREVGSU5FRCA9IFwiY29udmVydFVuZGVmaW5lZFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fX1hIUl9SRUFEWV9TVEFURV9DSEE2ID0gXCJfeGhyUmVhZHlTdGF0ZUNoYW5nZVwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fX09OX0VSUk9SID0gXCJfb25FcnJvclwiOyAvLyBDb3VudDogMTFcclxuZXhwb3J0IHZhciBfRFlOX19PTl9QQVJUSUFMX1NVQ0NFU1MgPSBcIl9vblBhcnRpYWxTdWNjZXNzXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9fT05fU1VDQ0VTUyA9IFwiX29uU3VjY2Vzc1wiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fSVRFTVNfQUNDRVBURUQgPSBcIml0ZW1zQWNjZXB0ZWRcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0lURU1TX1JFQ0VJVkVEID0gXCJpdGVtc1JlY2VpdmVkXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9JU19SRVRSWV9ESVNBQkxFRCA9IFwiaXNSZXRyeURpc2FibGVkXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9TRVRfUkVRVUVTVF9IRUFERVIgPSBcInNldFJlcXVlc3RIZWFkZXJcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX01BWF9CQVRDSF9JTlRFUlZBTCA9IFwibWF4QmF0Y2hJbnRlcnZhbFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRVZFTlRTX1NFTkRfUkVRVUVTVCA9IFwiZXZlbnRzU2VuZFJlcXVlc3RcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0RJU0FCTEVfSU5TVFJVTUVOVEFUNyA9IFwiZGlzYWJsZUluc3RydW1lbnRhdGlvbktleVZhbGlkYXRpb25cIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9TQU1QTElOR19TQ09SRSA9IFwiZ2V0U2FtcGxpbmdTY29yZVwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fR0VUX0hBU0hfQ09ERV9TQ09SRSA9IFwiZ2V0SGFzaENvZGVTY29yZVwiOyAvLyBDb3VudDogNFxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fX0R5bmFtaWNDb25zdGFudHMuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gQ2hhbm5lbCwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IF9fYXNzaWduRm4gYXMgX19hc3NpZ24gfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXNoaW1zXCI7XHJcbmltcG9ydCB7IEN0eFRhZ0tleXMsIERhdGEsIEVudmVsb3BlLCBFdmVudCwgRXhjZXB0aW9uLCBIdHRwTWV0aG9kLCBNZXRyaWMsIFBhZ2VWaWV3LCBQYWdlVmlld1BlcmZvcm1hbmNlLCBSZW1vdGVEZXBlbmRlbmN5RGF0YSwgU2FtcGxlUmF0ZSwgVHJhY2UsIGRhdGFTYW5pdGl6ZVN0cmluZyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IF90aHJvd0ludGVybmFsLCBfd2FyblRvQ29uc29sZSwgZ2V0SlNPTiwgaGFzSlNPTiwgaXNOdWxsT3JVbmRlZmluZWQsIGlzTnVtYmVyLCBpc1N0cmluZywgaXNUcnV0aHksIG9iakZvckVhY2hLZXksIG9wdGltaXplT2JqZWN0LCBzZXRWYWx1ZSwgdG9JU09TdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgU1RSX0RVUkFUSU9OIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgX0RZTl9EQVRBLCBfRFlOX0RBVEFfVFlQRSwgX0RZTl9ERVZJQ0VfVFlQRSwgX0RZTl9FTlZFTE9QRV9UWVBFLCBfRFlOX0xFTkdUSCwgX0RZTl9NRUFTVVJFTUVOVFMsIF9EWU5fTkFNRSwgX0RZTl9TVFJJTkdJRlksIF9EWU5fVEFHUywgX0RZTl9UT19TVFJJTkcsIF9EWU5fVFJBQ0VfSUQgfSBmcm9tIFwiLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuLy8gdGhlc2UgdHdvIGNvbnN0YW50cyBhcmUgdXNlZCB0byBmaWx0ZXIgb3V0IHByb3BlcnRpZXMgbm90IG5lZWRlZCB3aGVuIHRyeWluZyB0byBleHRyYWN0IGN1c3RvbSBwcm9wZXJ0aWVzIGFuZCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgaW5jb21pbmcgcGF5bG9hZFxyXG52YXIgc3RyQmFzZVR5cGUgPSBcImJhc2VUeXBlXCI7XHJcbnZhciBzdHJCYXNlRGF0YSA9IFwiYmFzZURhdGFcIjtcclxudmFyIHN0clByb3BlcnRpZXMgPSBcInByb3BlcnRpZXNcIjtcclxudmFyIHN0clRydWUgPSBcInRydWVcIjtcclxuZnVuY3Rpb24gX3NldFZhbHVlSWYodGFyZ2V0LCBmaWVsZCwgdmFsdWUpIHtcclxuICAgIHJldHVybiBzZXRWYWx1ZSh0YXJnZXQsIGZpZWxkLCB2YWx1ZSwgaXNUcnV0aHkpO1xyXG59XHJcbi8qXHJcbiAqIE1hcHMgUGFydCBBIGRhdGEgZnJvbSBDUyA0LjBcclxuICovXHJcbmZ1bmN0aW9uIF9leHRyYWN0UGFydEFFeHRlbnNpb25zKGxvZ2dlciwgaXRlbSwgZW52KSB7XHJcbiAgICAvLyB0b2RvOiBzd2l0Y2ggdG8ga2V5cyBmcm9tIGNvbW1vbiBpbiB0aGlzIG1ldGhvZFxyXG4gICAgdmFyIGVudlRhZ3MgPSBlbnZbX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL10gPSBlbnZbX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL10gfHwge307XHJcbiAgICB2YXIgaXRtRXh0ID0gaXRlbS5leHQgPSBpdGVtLmV4dCB8fCB7fTtcclxuICAgIHZhciBpdG1UYWdzID0gaXRlbVtfRFlOX1RBR1MgLyogQG1pbjolMmV0YWdzICovXSA9IGl0ZW1bX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL10gfHwgW107XHJcbiAgICB2YXIgZXh0VXNlciA9IGl0bUV4dC51c2VyO1xyXG4gICAgaWYgKGV4dFVzZXIpIHtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZUYWdzLCBDdHhUYWdLZXlzLnVzZXJBdXRoVXNlcklkLCBleHRVc2VyLmF1dGhJZCk7XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52VGFncywgQ3R4VGFnS2V5cy51c2VySWQsIGV4dFVzZXIuaWQgfHwgZXh0VXNlci5sb2NhbElkKTtcclxuICAgIH1cclxuICAgIHZhciBleHRBcHAgPSBpdG1FeHQuYXBwO1xyXG4gICAgaWYgKGV4dEFwcCkge1xyXG4gICAgICAgIF9zZXRWYWx1ZUlmKGVudlRhZ3MsIEN0eFRhZ0tleXMuc2Vzc2lvbklkLCBleHRBcHAuc2VzSWQpO1xyXG4gICAgfVxyXG4gICAgdmFyIGV4dERldmljZSA9IGl0bUV4dC5kZXZpY2U7XHJcbiAgICBpZiAoZXh0RGV2aWNlKSB7XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52VGFncywgQ3R4VGFnS2V5cy5kZXZpY2VJZCwgZXh0RGV2aWNlLmlkIHx8IGV4dERldmljZS5sb2NhbElkKTtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZUYWdzLCBDdHhUYWdLZXlzW19EWU5fREVWSUNFX1RZUEUgLyogQG1pbjolMmVkZXZpY2VUeXBlICovXSwgZXh0RGV2aWNlLmRldmljZUNsYXNzKTtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZUYWdzLCBDdHhUYWdLZXlzLmRldmljZUlwLCBleHREZXZpY2UuaXApO1xyXG4gICAgICAgIF9zZXRWYWx1ZUlmKGVudlRhZ3MsIEN0eFRhZ0tleXMuZGV2aWNlTW9kZWwsIGV4dERldmljZS5tb2RlbCk7XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52VGFncywgQ3R4VGFnS2V5c1tfRFlOX0RFVklDRV9UWVBFIC8qIEBtaW46JTJlZGV2aWNlVHlwZSAqL10sIGV4dERldmljZVtfRFlOX0RFVklDRV9UWVBFIC8qIEBtaW46JTJlZGV2aWNlVHlwZSAqL10pO1xyXG4gICAgfVxyXG4gICAgdmFyIHdlYiA9IGl0ZW0uZXh0LndlYjtcclxuICAgIGlmICh3ZWIpIHtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZUYWdzLCBDdHhUYWdLZXlzLmRldmljZUxhbmd1YWdlLCB3ZWIuYnJvd3NlckxhbmcpO1xyXG4gICAgICAgIF9zZXRWYWx1ZUlmKGVudlRhZ3MsIEN0eFRhZ0tleXMuZGV2aWNlQnJvd3NlclZlcnNpb24sIHdlYi5icm93c2VyVmVyKTtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZUYWdzLCBDdHhUYWdLZXlzLmRldmljZUJyb3dzZXIsIHdlYi5icm93c2VyKTtcclxuICAgICAgICB2YXIgZW52RGF0YSA9IGVudltfRFlOX0RBVEEgLyogQG1pbjolMmVkYXRhICovXSA9IGVudltfRFlOX0RBVEEgLyogQG1pbjolMmVkYXRhICovXSB8fCB7fTtcclxuICAgICAgICB2YXIgZW52QmFzZURhdGEgPSBlbnZEYXRhW3N0ckJhc2VEYXRhXSA9IGVudkRhdGFbc3RyQmFzZURhdGFdIHx8IHt9O1xyXG4gICAgICAgIHZhciBlbnZQcm9wcyA9IGVudkJhc2VEYXRhW3N0clByb3BlcnRpZXNdID0gZW52QmFzZURhdGFbc3RyUHJvcGVydGllc10gfHwge307XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52UHJvcHMsIFwiZG9tYWluXCIsIHdlYi5kb21haW4pO1xyXG4gICAgICAgIF9zZXRWYWx1ZUlmKGVudlByb3BzLCBcImlzTWFudWFsXCIsIHdlYi5pc01hbnVhbCA/IHN0clRydWUgOiBudWxsKTtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZQcm9wcywgXCJzY3JlZW5SZXNcIiwgd2ViLnNjcmVlblJlcyk7XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52UHJvcHMsIFwidXNlckNvbnNlbnRcIiwgd2ViLnVzZXJDb25zZW50ID8gc3RyVHJ1ZSA6IG51bGwpO1xyXG4gICAgfVxyXG4gICAgdmFyIGV4dE9zID0gaXRtRXh0Lm9zO1xyXG4gICAgaWYgKGV4dE9zKSB7XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52VGFncywgQ3R4VGFnS2V5cy5kZXZpY2VPUywgZXh0T3NbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10pO1xyXG4gICAgfVxyXG4gICAgLy8gTm8gc3VwcG9ydCBmb3IgbWFwcGluZyBUcmFjZS50cmFjZVN0YXRlIHRvIDIuMCBhcyBpdCBpcyBjdXJyZW50bHkgZW1wdHlcclxuICAgIHZhciBleHRUcmFjZSA9IGl0bUV4dC50cmFjZTtcclxuICAgIGlmIChleHRUcmFjZSkge1xyXG4gICAgICAgIF9zZXRWYWx1ZUlmKGVudlRhZ3MsIEN0eFRhZ0tleXMub3BlcmF0aW9uUGFyZW50SWQsIGV4dFRyYWNlLnBhcmVudElEKTtcclxuICAgICAgICBfc2V0VmFsdWVJZihlbnZUYWdzLCBDdHhUYWdLZXlzLm9wZXJhdGlvbk5hbWUsIGRhdGFTYW5pdGl6ZVN0cmluZyhsb2dnZXIsIGV4dFRyYWNlW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dKSk7XHJcbiAgICAgICAgX3NldFZhbHVlSWYoZW52VGFncywgQ3R4VGFnS2V5cy5vcGVyYXRpb25JZCwgZXh0VHJhY2VbX0RZTl9UUkFDRV9JRCAvKiBAbWluOiUyZXRyYWNlSUQgKi9dKTtcclxuICAgIH1cclxuICAgIC8vIFNhbXBsZSA0LjAgc2NoZW1hXHJcbiAgICAvLyAge1xyXG4gICAgLy8gICAgIFwidGltZVwiIDogXCIyMDE4LTA5LTA1VDIyOjUxOjIyLjQ5MzZaXCIsXHJcbiAgICAvLyAgICAgXCJuYW1lXCIgOiBcIk1ldHJpY1dpdGhOYW1lc3BhY2VcIixcclxuICAgIC8vICAgICBcImlLZXlcIiA6IFwiQUJDLTVhNGNiZDIwLWU2MDEtNGVmNS1hM2M2LTVkNjU3N2U0Mzk4ZVwiLFxyXG4gICAgLy8gICAgIFwiZXh0XCI6IHsgIFwiY2xvdWRcIjoge1xyXG4gICAgLy8gICAgICAgICAgXCJyb2xlXCI6IFwiV0FUU09OM1wiLFxyXG4gICAgLy8gICAgICAgICAgXCJyb2xlSW5zdGFuY2VcIjogXCJDTzRBRUFQMDAwMDAyNjBcIlxyXG4gICAgLy8gICAgICB9LFxyXG4gICAgLy8gICAgICBcImRldmljZVwiOiB7fSwgXCJjb3JyZWxhdGlvblwiOiB7fSB9LFxyXG4gICAgLy8gICAgICBcInRhZ3NcIjogW1xyXG4gICAgLy8gICAgICAgIHsgXCJhbWF6b24ucmVnaW9uXCIgOiBcImVhc3QyXCIgfSxcclxuICAgIC8vICAgICAgICB7IFwib3MuZXhwaWRcIiA6IFwid3A6MDJkZjIzOVwiIH1cclxuICAgIC8vICAgICBdXHJcbiAgICAvLyAgIH1cclxuICAgIHZhciB0Z3MgPSB7fTtcclxuICAgIC8vIGRlYWxzIHdpdGggdGFncy5wdXNoKHtvYmplY3R9KVxyXG4gICAgZm9yICh2YXIgaSA9IGl0bVRhZ3NbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICB2YXIgdGcgPSBpdG1UYWdzW2ldO1xyXG4gICAgICAgIG9iakZvckVhY2hLZXkodGcsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRnc1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXRtVGFncy5zcGxpY2UoaSwgMSk7XHJcbiAgICB9XHJcbiAgICAvLyBkZWFscyB3aXRoIHRhZ3Nba2V5XT12YWx1ZSAoYW5kIGhhbmRsZXMgaGFzT3duUHJvcGVydHkpXHJcbiAgICBvYmpGb3JFYWNoS2V5KGl0bVRhZ3MsIGZ1bmN0aW9uICh0ZywgdmFsdWUpIHtcclxuICAgICAgICB0Z3NbdGddID0gdmFsdWU7XHJcbiAgICB9KTtcclxuICAgIHZhciB0aGVUYWdzID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGVudlRhZ3MpLCB0Z3MpO1xyXG4gICAgaWYgKCF0aGVUYWdzW0N0eFRhZ0tleXMuaW50ZXJuYWxTZGtWZXJzaW9uXSkge1xyXG4gICAgICAgIC8vIEFwcGVuZCBhIHZlcnNpb24gaW4gY2FzZSBpdCBpcyBub3QgYWxyZWFkeSBzZXRcclxuICAgICAgICB0aGVUYWdzW0N0eFRhZ0tleXMuaW50ZXJuYWxTZGtWZXJzaW9uXSA9IFwiamF2YXNjcmlwdDpcIi5jb25jYXQoRW52ZWxvcGVDcmVhdG9yLlZlcnNpb24pO1xyXG4gICAgfVxyXG4gICAgZW52W19EWU5fVEFHUyAvKiBAbWluOiUyZXRhZ3MgKi9dID0gb3B0aW1pemVPYmplY3QodGhlVGFncyk7XHJcbn1cclxuZnVuY3Rpb24gX2V4dHJhY3RQcm9wc0FuZE1lYXN1cmVtZW50cyhkYXRhLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMpIHtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoZGF0YSkpIHtcclxuICAgICAgICBvYmpGb3JFYWNoS2V5KGRhdGEsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmIChpc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIG1lYXN1cmVtZW50c1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChoYXNKU09OKCkpIHtcclxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXNba2V5XSA9IGdldEpTT04oKVtfRFlOX1NUUklOR0lGWSAvKiBAbWluOiUyZXN0cmluZ2lmeSAqL10odmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gX2NvbnZlcnRQcm9wc1VuZGVmaW5lZFRvQ3VzdG9tRGVmaW5lZFZhbHVlKHByb3BlcnRpZXMsIGN1c3RvbVVuZGVmaW5lZFZhbHVlKSB7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHByb3BlcnRpZXMpKSB7XHJcbiAgICAgICAgb2JqRm9yRWFjaEtleShwcm9wZXJ0aWVzLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzW2tleV0gPSB2YWx1ZSB8fCBjdXN0b21VbmRlZmluZWRWYWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4vLyBUT0RPOiBEbyB3ZSB3YW50IHRoaXMgdG8gdGFrZSBsb2dnZXIgYXMgYXJnIG9yIHVzZSB0aGlzLl9sb2dnZXIgYXMgbm9uc3RhdGljP1xyXG5mdW5jdGlvbiBfY3JlYXRlRW52ZWxvcGUobG9nZ2VyLCBlbnZlbG9wZVR5cGUsIHRlbGVtZXRyeUl0ZW0sIGRhdGEpIHtcclxuICAgIHZhciBlbnZlbG9wZSA9IG5ldyBFbnZlbG9wZShsb2dnZXIsIGRhdGEsIGVudmVsb3BlVHlwZSk7XHJcbiAgICBfc2V0VmFsdWVJZihlbnZlbG9wZSwgXCJzYW1wbGVSYXRlXCIsIHRlbGVtZXRyeUl0ZW1bU2FtcGxlUmF0ZV0pO1xyXG4gICAgaWYgKCh0ZWxlbWV0cnlJdGVtW3N0ckJhc2VEYXRhXSB8fCB7fSkuc3RhcnRUaW1lKSB7XHJcbiAgICAgICAgZW52ZWxvcGUudGltZSA9IHRvSVNPU3RyaW5nKHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdLnN0YXJ0VGltZSk7XHJcbiAgICB9XHJcbiAgICBlbnZlbG9wZS5pS2V5ID0gdGVsZW1ldHJ5SXRlbS5pS2V5O1xyXG4gICAgdmFyIGlLZXlOb0Rhc2hlcyA9IHRlbGVtZXRyeUl0ZW0uaUtleS5yZXBsYWNlKC8tL2csIFwiXCIpO1xyXG4gICAgZW52ZWxvcGVbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10gPSBlbnZlbG9wZVtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXS5yZXBsYWNlKFwiezB9XCIsIGlLZXlOb0Rhc2hlcyk7XHJcbiAgICAvLyBleHRyYWN0IGFsbCBleHRlbnNpb25zIGZyb20gY3R4XHJcbiAgICBfZXh0cmFjdFBhcnRBRXh0ZW5zaW9ucyhsb2dnZXIsIHRlbGVtZXRyeUl0ZW0sIGVudmVsb3BlKTtcclxuICAgIC8vIGxvb3AgdGhyb3VnaCB0aGUgZW52ZWxvcGUgdGFncyAoZXh0ZW5zaW9uIG9mIFBhcnQgQSkgYW5kIHBpY2sgb3V0IHRoZSBvbmVzIHRoYXQgc2hvdWxkIGdvIGluIG91dGdvaW5nIGVudmVsb3BlIHRhZ3NcclxuICAgIHRlbGVtZXRyeUl0ZW1bX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL10gPSB0ZWxlbWV0cnlJdGVtW19EWU5fVEFHUyAvKiBAbWluOiUyZXRhZ3MgKi9dIHx8IFtdO1xyXG4gICAgcmV0dXJuIG9wdGltaXplT2JqZWN0KGVudmVsb3BlKTtcclxufVxyXG5mdW5jdGlvbiBFbnZlbG9wZUNyZWF0b3JJbml0KGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSkge1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdKSkge1xyXG4gICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCA0NiAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRlbGVtZXRyeUVudmVsb3BlSW52YWxpZCAqLywgXCJ0ZWxlbWV0cnlJdGVtLmJhc2VEYXRhIGNhbm5vdCBiZSBudWxsLlwiKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgdmFyIEVudmVsb3BlQ3JlYXRvciA9IHtcclxuICAgIFZlcnNpb246ICcyLjguOSdcclxufTtcclxuZXhwb3J0IGZ1bmN0aW9uIERlcGVuZGVuY3lFbnZlbG9wZUNyZWF0b3IobG9nZ2VyLCB0ZWxlbWV0cnlJdGVtLCBjdXN0b21VbmRlZmluZWRWYWx1ZSkge1xyXG4gICAgRW52ZWxvcGVDcmVhdG9ySW5pdChsb2dnZXIsIHRlbGVtZXRyeUl0ZW0pO1xyXG4gICAgdmFyIGN1c3RvbU1lYXN1cmVtZW50cyA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdW19EWU5fTUVBU1VSRU1FTlRTIC8qIEBtaW46JTJlbWVhc3VyZW1lbnRzICovXSB8fCB7fTtcclxuICAgIHZhciBjdXN0b21Qcm9wZXJ0aWVzID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV1bc3RyUHJvcGVydGllc10gfHwge307XHJcbiAgICBfZXh0cmFjdFByb3BzQW5kTWVhc3VyZW1lbnRzKHRlbGVtZXRyeUl0ZW1bX0RZTl9EQVRBIC8qIEBtaW46JTJlZGF0YSAqL10sIGN1c3RvbVByb3BlcnRpZXMsIGN1c3RvbU1lYXN1cmVtZW50cyk7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVVuZGVmaW5lZFZhbHVlKSkge1xyXG4gICAgICAgIF9jb252ZXJ0UHJvcHNVbmRlZmluZWRUb0N1c3RvbURlZmluZWRWYWx1ZShjdXN0b21Qcm9wZXJ0aWVzLCBjdXN0b21VbmRlZmluZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB2YXIgYmQgPSB0ZWxlbWV0cnlJdGVtW3N0ckJhc2VEYXRhXTtcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChiZCkpIHtcclxuICAgICAgICBfd2FyblRvQ29uc29sZShsb2dnZXIsIFwiSW52YWxpZCBpbnB1dCBmb3IgZGVwZW5kZW5jeSBkYXRhXCIpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgdmFyIG1ldGhvZCA9IGJkW3N0clByb3BlcnRpZXNdICYmIGJkW3N0clByb3BlcnRpZXNdW0h0dHBNZXRob2RdID8gYmRbc3RyUHJvcGVydGllc11bSHR0cE1ldGhvZF0gOiBcIkdFVFwiO1xyXG4gICAgdmFyIHJlbW90ZURlcERhdGEgPSBuZXcgUmVtb3RlRGVwZW5kZW5jeURhdGEobG9nZ2VyLCBiZC5pZCwgYmQudGFyZ2V0LCBiZFtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSwgYmRbU1RSX0RVUkFUSU9OIC8qIEBtaW46JTJlZHVyYXRpb24gKi9dLCBiZC5zdWNjZXNzLCBiZC5yZXNwb25zZUNvZGUsIG1ldGhvZCwgYmQudHlwZSwgYmQuY29ycmVsYXRpb25Db250ZXh0LCBjdXN0b21Qcm9wZXJ0aWVzLCBjdXN0b21NZWFzdXJlbWVudHMpO1xyXG4gICAgdmFyIGRhdGEgPSBuZXcgRGF0YShSZW1vdGVEZXBlbmRlbmN5RGF0YVtfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSwgcmVtb3RlRGVwRGF0YSk7XHJcbiAgICByZXR1cm4gX2NyZWF0ZUVudmVsb3BlKGxvZ2dlciwgUmVtb3RlRGVwZW5kZW5jeURhdGFbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgdGVsZW1ldHJ5SXRlbSwgZGF0YSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIEV2ZW50RW52ZWxvcGVDcmVhdG9yKGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSwgY3VzdG9tVW5kZWZpbmVkVmFsdWUpIHtcclxuICAgIEVudmVsb3BlQ3JlYXRvckluaXQobG9nZ2VyLCB0ZWxlbWV0cnlJdGVtKTtcclxuICAgIHZhciBjdXN0b21Qcm9wZXJ0aWVzID0ge307XHJcbiAgICB2YXIgY3VzdG9tTWVhc3VyZW1lbnRzID0ge307XHJcbiAgICBpZiAodGVsZW1ldHJ5SXRlbVtzdHJCYXNlVHlwZV0gIT09IEV2ZW50W19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dKSB7XHJcbiAgICAgICAgY3VzdG9tUHJvcGVydGllc1tcImJhc2VUeXBlU291cmNlXCJdID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlVHlwZV07IC8vIHNhdmUgdGhlIHBhc3NlZCBpbiBiYXNlIHR5cGUgYXMgYSBwcm9wZXJ0eVxyXG4gICAgfVxyXG4gICAgaWYgKHRlbGVtZXRyeUl0ZW1bc3RyQmFzZVR5cGVdID09PSBFdmVudFtfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSkgeyAvLyB0YWtlIGNvbGxlY3Rpb25cclxuICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV1bc3RyUHJvcGVydGllc10gfHwge307XHJcbiAgICAgICAgY3VzdG9tTWVhc3VyZW1lbnRzID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV1bX0RZTl9NRUFTVVJFTUVOVFMgLyogQG1pbjolMmVtZWFzdXJlbWVudHMgKi9dIHx8IHt9O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7IC8vIGlmIGl0cyBub3QgYSBrbm93biB0eXBlLCBjb252ZXJ0IHRvIGN1c3RvbSBldmVudFxyXG4gICAgICAgIGlmICh0ZWxlbWV0cnlJdGVtW3N0ckJhc2VEYXRhXSkge1xyXG4gICAgICAgICAgICBfZXh0cmFjdFByb3BzQW5kTWVhc3VyZW1lbnRzKHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdLCBjdXN0b21Qcm9wZXJ0aWVzLCBjdXN0b21NZWFzdXJlbWVudHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEV4dHJhY3Qgcm9vdCBsZXZlbCBwcm9wZXJ0aWVzIGZyb20gcGFydCBDIHRlbGVtZXRyeUl0ZW0uZGF0YVxyXG4gICAgX2V4dHJhY3RQcm9wc0FuZE1lYXN1cmVtZW50cyh0ZWxlbWV0cnlJdGVtW19EWU5fREFUQSAvKiBAbWluOiUyZWRhdGEgKi9dLCBjdXN0b21Qcm9wZXJ0aWVzLCBjdXN0b21NZWFzdXJlbWVudHMpO1xyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChjdXN0b21VbmRlZmluZWRWYWx1ZSkpIHtcclxuICAgICAgICBfY29udmVydFByb3BzVW5kZWZpbmVkVG9DdXN0b21EZWZpbmVkVmFsdWUoY3VzdG9tUHJvcGVydGllcywgY3VzdG9tVW5kZWZpbmVkVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdmFyIGV2ZW50TmFtZSA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdW19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dO1xyXG4gICAgdmFyIGV2ZW50RGF0YSA9IG5ldyBFdmVudChsb2dnZXIsIGV2ZW50TmFtZSwgY3VzdG9tUHJvcGVydGllcywgY3VzdG9tTWVhc3VyZW1lbnRzKTtcclxuICAgIHZhciBkYXRhID0gbmV3IERhdGEoRXZlbnRbX0RZTl9EQVRBX1RZUEUgLyogQG1pbjolMmVkYXRhVHlwZSAqL10sIGV2ZW50RGF0YSk7XHJcbiAgICByZXR1cm4gX2NyZWF0ZUVudmVsb3BlKGxvZ2dlciwgRXZlbnRbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgdGVsZW1ldHJ5SXRlbSwgZGF0YSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIEV4Y2VwdGlvbkVudmVsb3BlQ3JlYXRvcihsb2dnZXIsIHRlbGVtZXRyeUl0ZW0sIGN1c3RvbVVuZGVmaW5lZFZhbHVlKSB7XHJcbiAgICBFbnZlbG9wZUNyZWF0b3JJbml0KGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAvLyBFeHRyYWN0IHJvb3QgbGV2ZWwgcHJvcGVydGllcyBmcm9tIHBhcnQgQyB0ZWxlbWV0cnlJdGVtLmRhdGFcclxuICAgIHZhciBjdXN0b21NZWFzdXJlbWVudHMgPSB0ZWxlbWV0cnlJdGVtW3N0ckJhc2VEYXRhXVtfRFlOX01FQVNVUkVNRU5UUyAvKiBAbWluOiUyZW1lYXN1cmVtZW50cyAqL10gfHwge307XHJcbiAgICB2YXIgY3VzdG9tUHJvcGVydGllcyA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdW3N0clByb3BlcnRpZXNdIHx8IHt9O1xyXG4gICAgX2V4dHJhY3RQcm9wc0FuZE1lYXN1cmVtZW50cyh0ZWxlbWV0cnlJdGVtW19EWU5fREFUQSAvKiBAbWluOiUyZWRhdGEgKi9dLCBjdXN0b21Qcm9wZXJ0aWVzLCBjdXN0b21NZWFzdXJlbWVudHMpO1xyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChjdXN0b21VbmRlZmluZWRWYWx1ZSkpIHtcclxuICAgICAgICBfY29udmVydFByb3BzVW5kZWZpbmVkVG9DdXN0b21EZWZpbmVkVmFsdWUoY3VzdG9tUHJvcGVydGllcywgY3VzdG9tVW5kZWZpbmVkVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdmFyIGJkID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV07XHJcbiAgICB2YXIgZXhEYXRhID0gRXhjZXB0aW9uLkNyZWF0ZUZyb21JbnRlcmZhY2UobG9nZ2VyLCBiZCwgY3VzdG9tUHJvcGVydGllcywgY3VzdG9tTWVhc3VyZW1lbnRzKTtcclxuICAgIHZhciBkYXRhID0gbmV3IERhdGEoRXhjZXB0aW9uW19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dLCBleERhdGEpO1xyXG4gICAgcmV0dXJuIF9jcmVhdGVFbnZlbG9wZShsb2dnZXIsIEV4Y2VwdGlvbltfRFlOX0VOVkVMT1BFX1RZUEUgLyogQG1pbjolMmVlbnZlbG9wZVR5cGUgKi9dLCB0ZWxlbWV0cnlJdGVtLCBkYXRhKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gTWV0cmljRW52ZWxvcGVDcmVhdG9yKGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSwgY3VzdG9tVW5kZWZpbmVkVmFsdWUpIHtcclxuICAgIEVudmVsb3BlQ3JlYXRvckluaXQobG9nZ2VyLCB0ZWxlbWV0cnlJdGVtKTtcclxuICAgIHZhciBiYXNlRGF0YSA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdO1xyXG4gICAgdmFyIHByb3BzID0gYmFzZURhdGFbc3RyUHJvcGVydGllc10gfHwge307XHJcbiAgICB2YXIgbWVhc3VyZW1lbnRzID0gYmFzZURhdGFbX0RZTl9NRUFTVVJFTUVOVFMgLyogQG1pbjolMmVtZWFzdXJlbWVudHMgKi9dIHx8IHt9O1xyXG4gICAgX2V4dHJhY3RQcm9wc0FuZE1lYXN1cmVtZW50cyh0ZWxlbWV0cnlJdGVtW19EWU5fREFUQSAvKiBAbWluOiUyZWRhdGEgKi9dLCBwcm9wcywgbWVhc3VyZW1lbnRzKTtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoY3VzdG9tVW5kZWZpbmVkVmFsdWUpKSB7XHJcbiAgICAgICAgX2NvbnZlcnRQcm9wc1VuZGVmaW5lZFRvQ3VzdG9tRGVmaW5lZFZhbHVlKHByb3BzLCBjdXN0b21VbmRlZmluZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB2YXIgYmFzZU1ldHJpY0RhdGEgPSBuZXcgTWV0cmljKGxvZ2dlciwgYmFzZURhdGFbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10sIGJhc2VEYXRhLmF2ZXJhZ2UsIGJhc2VEYXRhLnNhbXBsZUNvdW50LCBiYXNlRGF0YS5taW4sIGJhc2VEYXRhLm1heCwgYmFzZURhdGEuc3RkRGV2LCBwcm9wcywgbWVhc3VyZW1lbnRzKTtcclxuICAgIHZhciBkYXRhID0gbmV3IERhdGEoTWV0cmljW19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dLCBiYXNlTWV0cmljRGF0YSk7XHJcbiAgICByZXR1cm4gX2NyZWF0ZUVudmVsb3BlKGxvZ2dlciwgTWV0cmljW19EWU5fRU5WRUxPUEVfVFlQRSAvKiBAbWluOiUyZWVudmVsb3BlVHlwZSAqL10sIHRlbGVtZXRyeUl0ZW0sIGRhdGEpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBQYWdlVmlld0VudmVsb3BlQ3JlYXRvcihsb2dnZXIsIHRlbGVtZXRyeUl0ZW0sIGN1c3RvbVVuZGVmaW5lZFZhbHVlKSB7XHJcbiAgICBFbnZlbG9wZUNyZWF0b3JJbml0KGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSk7XHJcbiAgICAvLyBTaW5jZSBkdXJhdGlvbiBpcyBub3QgcGFydCBvZiB0aGUgZG9tYWluIHByb3BlcnRpZXMgaW4gQ29tbW9uIFNjaGVtYSwgZXh0cmFjdCBpdCBmcm9tIHBhcnQgQ1xyXG4gICAgdmFyIGR1cmF0aW9uO1xyXG4gICAgdmFyIGJhc2VEYXRhID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV07XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGJhc2VEYXRhKSAmJlxyXG4gICAgICAgICFpc051bGxPclVuZGVmaW5lZChiYXNlRGF0YVtzdHJQcm9wZXJ0aWVzXSkgJiZcclxuICAgICAgICAhaXNOdWxsT3JVbmRlZmluZWQoYmFzZURhdGFbc3RyUHJvcGVydGllc11bU1RSX0RVUkFUSU9OXSkpIHsgLy8gZnJvbSBwYXJ0IEIgcHJvcGVydGllc1xyXG4gICAgICAgIGR1cmF0aW9uID0gYmFzZURhdGFbc3RyUHJvcGVydGllc11bU1RSX0RVUkFUSU9OXTtcclxuICAgICAgICBkZWxldGUgYmFzZURhdGFbc3RyUHJvcGVydGllc11bU1RSX0RVUkFUSU9OXTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0ZWxlbWV0cnlJdGVtW19EWU5fREFUQSAvKiBAbWluOiUyZWRhdGEgKi9dKSAmJlxyXG4gICAgICAgICFpc051bGxPclVuZGVmaW5lZCh0ZWxlbWV0cnlJdGVtW19EWU5fREFUQSAvKiBAbWluOiUyZWRhdGEgKi9dW1NUUl9EVVJBVElPTl0pKSB7IC8vIGZyb20gY3VzdG9tIHByb3BlcnRpZXNcclxuICAgICAgICBkdXJhdGlvbiA9IHRlbGVtZXRyeUl0ZW1bX0RZTl9EQVRBIC8qIEBtaW46JTJlZGF0YSAqL11bU1RSX0RVUkFUSU9OXTtcclxuICAgICAgICBkZWxldGUgdGVsZW1ldHJ5SXRlbVtfRFlOX0RBVEEgLyogQG1pbjolMmVkYXRhICovXVtTVFJfRFVSQVRJT05dO1xyXG4gICAgfVxyXG4gICAgdmFyIGJkID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV07XHJcbiAgICAvLyBzcGVjaWFsIGNhc2U6IHBhZ2V2aWV3LmlkIGlzIGdyYWJiZWQgZnJvbSBjdXJyZW50IG9wZXJhdGlvbiBpZC4gQW5hbHl0aWNzIHBsdWdpbiBpcyBkZWNvdXBsZWQgZnJvbSBwcm9wZXJ0aWVzIHBsdWdpbiwgc28gdGhpcyBpcyBkb25lIGhlcmUgaW5zdGVhZC4gVGhpcyBjYW4gYmUgbWFkZSBhIGRlZmF1bHQgdGVsZW1ldHJ5IGludGlhbGl6ZXIgaW5zdGVhZCBpZiBuZWVkZWQgdG8gYmUgZGVjb3VwbGVkIGZyb20gY2hhbm5lbFxyXG4gICAgdmFyIGN1cnJlbnRDb250ZXh0SWQ7XHJcbiAgICBpZiAoKCh0ZWxlbWV0cnlJdGVtLmV4dCB8fCB7fSkudHJhY2UgfHwge30pW19EWU5fVFJBQ0VfSUQgLyogQG1pbjolMmV0cmFjZUlEICovXSkge1xyXG4gICAgICAgIGN1cnJlbnRDb250ZXh0SWQgPSB0ZWxlbWV0cnlJdGVtLmV4dC50cmFjZVtfRFlOX1RSQUNFX0lEIC8qIEBtaW46JTJldHJhY2VJRCAqL107XHJcbiAgICB9XHJcbiAgICB2YXIgaWQgPSBiZC5pZCB8fCBjdXJyZW50Q29udGV4dElkO1xyXG4gICAgdmFyIG5hbWUgPSBiZFtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXTtcclxuICAgIHZhciB1cmwgPSBiZC51cmk7XHJcbiAgICB2YXIgcHJvcGVydGllcyA9IGJkW3N0clByb3BlcnRpZXNdIHx8IHt9O1xyXG4gICAgdmFyIG1lYXN1cmVtZW50cyA9IGJkW19EWU5fTUVBU1VSRU1FTlRTIC8qIEBtaW46JTJlbWVhc3VyZW1lbnRzICovXSB8fCB7fTtcclxuICAgIC8vIHJlZlVyaSBpcyBhIGZpZWxkIHRoYXQgQnJlZXplIHN0aWxsIGRvZXMgbm90IHJlY29nbml6ZSBhcyBwYXJ0IG9mIFBhcnQgQi4gRm9yIG5vdywgcHV0IGl0IGluIFBhcnQgQyB1bnRpbCBpdCBzdXBwb3J0cyBpdCBhcyBhIGRvbWFpbiBwcm9wZXJ0eVxyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChiZC5yZWZVcmkpKSB7XHJcbiAgICAgICAgcHJvcGVydGllc1tcInJlZlVyaVwiXSA9IGJkLnJlZlVyaTtcclxuICAgIH1cclxuICAgIC8vIHBhZ2VUeXBlIGlzIGEgZmllbGQgdGhhdCBCcmVlemUgc3RpbGwgZG9lcyBub3QgcmVjb2duaXplIGFzIHBhcnQgb2YgUGFydCBCLiBGb3Igbm93LCBwdXQgaXQgaW4gUGFydCBDIHVudGlsIGl0IHN1cHBvcnRzIGl0IGFzIGEgZG9tYWluIHByb3BlcnR5XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGJkLnBhZ2VUeXBlKSkge1xyXG4gICAgICAgIHByb3BlcnRpZXNbXCJwYWdlVHlwZVwiXSA9IGJkLnBhZ2VUeXBlO1xyXG4gICAgfVxyXG4gICAgLy8gaXNMb2dnZWRJbiBpcyBhIGZpZWxkIHRoYXQgQnJlZXplIHN0aWxsIGRvZXMgbm90IHJlY29nbml6ZSBhcyBwYXJ0IG9mIFBhcnQgQi4gRm9yIG5vdywgcHV0IGl0IGluIFBhcnQgQyB1bnRpbCBpdCBzdXBwb3J0cyBpdCBhcyBhIGRvbWFpbiBwcm9wZXJ0eVxyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChiZC5pc0xvZ2dlZEluKSkge1xyXG4gICAgICAgIHByb3BlcnRpZXNbXCJpc0xvZ2dlZEluXCJdID0gYmQuaXNMb2dnZWRJbltfRFlOX1RPX1NUUklORyAvKiBAbWluOiUyZXRvU3RyaW5nICovXSgpO1xyXG4gICAgfVxyXG4gICAgLy8gcGFnZVRhZ3MgaXMgYSBmaWVsZCB0aGF0IEJyZWV6ZSBzdGlsbCBkb2VzIG5vdCByZWNvZ25pemUgYXMgcGFydCBvZiBQYXJ0IEIuIEZvciBub3csIHB1dCBpdCBpbiBQYXJ0IEMgdW50aWwgaXQgc3VwcG9ydHMgaXQgYXMgYSBkb21haW4gcHJvcGVydHlcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoYmRbc3RyUHJvcGVydGllc10pKSB7XHJcbiAgICAgICAgdmFyIHBhZ2VUYWdzID0gYmRbc3RyUHJvcGVydGllc107XHJcbiAgICAgICAgb2JqRm9yRWFjaEtleShwYWdlVGFncywgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgcHJvcGVydGllc1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBfZXh0cmFjdFByb3BzQW5kTWVhc3VyZW1lbnRzKHRlbGVtZXRyeUl0ZW1bX0RZTl9EQVRBIC8qIEBtaW46JTJlZGF0YSAqL10sIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cyk7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVVuZGVmaW5lZFZhbHVlKSkge1xyXG4gICAgICAgIF9jb252ZXJ0UHJvcHNVbmRlZmluZWRUb0N1c3RvbURlZmluZWRWYWx1ZShwcm9wZXJ0aWVzLCBjdXN0b21VbmRlZmluZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB2YXIgcGFnZVZpZXdEYXRhID0gbmV3IFBhZ2VWaWV3KGxvZ2dlciwgbmFtZSwgdXJsLCBkdXJhdGlvbiwgcHJvcGVydGllcywgbWVhc3VyZW1lbnRzLCBpZCk7XHJcbiAgICB2YXIgZGF0YSA9IG5ldyBEYXRhKFBhZ2VWaWV3W19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dLCBwYWdlVmlld0RhdGEpO1xyXG4gICAgcmV0dXJuIF9jcmVhdGVFbnZlbG9wZShsb2dnZXIsIFBhZ2VWaWV3W19EWU5fRU5WRUxPUEVfVFlQRSAvKiBAbWluOiUyZWVudmVsb3BlVHlwZSAqL10sIHRlbGVtZXRyeUl0ZW0sIGRhdGEpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBQYWdlVmlld1BlcmZvcm1hbmNlRW52ZWxvcGVDcmVhdG9yKGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSwgY3VzdG9tVW5kZWZpbmVkVmFsdWUpIHtcclxuICAgIEVudmVsb3BlQ3JlYXRvckluaXQobG9nZ2VyLCB0ZWxlbWV0cnlJdGVtKTtcclxuICAgIHZhciBiZCA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdO1xyXG4gICAgdmFyIG5hbWUgPSBiZFtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXTtcclxuICAgIHZhciB1cmwgPSBiZC51cmkgfHwgYmQudXJsO1xyXG4gICAgdmFyIHByb3BlcnRpZXMgPSBiZFtzdHJQcm9wZXJ0aWVzXSB8fCB7fTtcclxuICAgIHZhciBtZWFzdXJlbWVudHMgPSBiZFtfRFlOX01FQVNVUkVNRU5UUyAvKiBAbWluOiUyZW1lYXN1cmVtZW50cyAqL10gfHwge307XHJcbiAgICBfZXh0cmFjdFByb3BzQW5kTWVhc3VyZW1lbnRzKHRlbGVtZXRyeUl0ZW1bX0RZTl9EQVRBIC8qIEBtaW46JTJlZGF0YSAqL10sIHByb3BlcnRpZXMsIG1lYXN1cmVtZW50cyk7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVVuZGVmaW5lZFZhbHVlKSkge1xyXG4gICAgICAgIF9jb252ZXJ0UHJvcHNVbmRlZmluZWRUb0N1c3RvbURlZmluZWRWYWx1ZShwcm9wZXJ0aWVzLCBjdXN0b21VbmRlZmluZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB2YXIgYmFzZURhdGEgPSBuZXcgUGFnZVZpZXdQZXJmb3JtYW5jZShsb2dnZXIsIG5hbWUsIHVybCwgdW5kZWZpbmVkLCBwcm9wZXJ0aWVzLCBtZWFzdXJlbWVudHMsIGJkKTtcclxuICAgIHZhciBkYXRhID0gbmV3IERhdGEoUGFnZVZpZXdQZXJmb3JtYW5jZVtfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSwgYmFzZURhdGEpO1xyXG4gICAgcmV0dXJuIF9jcmVhdGVFbnZlbG9wZShsb2dnZXIsIFBhZ2VWaWV3UGVyZm9ybWFuY2VbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgdGVsZW1ldHJ5SXRlbSwgZGF0YSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIFRyYWNlRW52ZWxvcGVDcmVhdG9yKGxvZ2dlciwgdGVsZW1ldHJ5SXRlbSwgY3VzdG9tVW5kZWZpbmVkVmFsdWUpIHtcclxuICAgIEVudmVsb3BlQ3JlYXRvckluaXQobG9nZ2VyLCB0ZWxlbWV0cnlJdGVtKTtcclxuICAgIHZhciBtZXNzYWdlID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV0ubWVzc2FnZTtcclxuICAgIHZhciBzZXZlcml0eUxldmVsID0gdGVsZW1ldHJ5SXRlbVtzdHJCYXNlRGF0YV0uc2V2ZXJpdHlMZXZlbDtcclxuICAgIHZhciBwcm9wcyA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdW3N0clByb3BlcnRpZXNdIHx8IHt9O1xyXG4gICAgdmFyIG1lYXN1cmVtZW50cyA9IHRlbGVtZXRyeUl0ZW1bc3RyQmFzZURhdGFdW19EWU5fTUVBU1VSRU1FTlRTIC8qIEBtaW46JTJlbWVhc3VyZW1lbnRzICovXSB8fCB7fTtcclxuICAgIF9leHRyYWN0UHJvcHNBbmRNZWFzdXJlbWVudHModGVsZW1ldHJ5SXRlbVtfRFlOX0RBVEEgLyogQG1pbjolMmVkYXRhICovXSwgcHJvcHMsIG1lYXN1cmVtZW50cyk7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGN1c3RvbVVuZGVmaW5lZFZhbHVlKSkge1xyXG4gICAgICAgIF9jb252ZXJ0UHJvcHNVbmRlZmluZWRUb0N1c3RvbURlZmluZWRWYWx1ZShwcm9wcywgY3VzdG9tVW5kZWZpbmVkVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdmFyIGJhc2VEYXRhID0gbmV3IFRyYWNlKGxvZ2dlciwgbWVzc2FnZSwgc2V2ZXJpdHlMZXZlbCwgcHJvcHMsIG1lYXN1cmVtZW50cyk7XHJcbiAgICB2YXIgZGF0YSA9IG5ldyBEYXRhKFRyYWNlW19EWU5fREFUQV9UWVBFIC8qIEBtaW46JTJlZGF0YVR5cGUgKi9dLCBiYXNlRGF0YSk7XHJcbiAgICByZXR1cm4gX2NyZWF0ZUVudmVsb3BlKGxvZ2dlciwgVHJhY2VbX0RZTl9FTlZFTE9QRV9UWVBFIC8qIEBtaW46JTJlZW52ZWxvcGVUeXBlICovXSwgdGVsZW1ldHJ5SXRlbSwgZGF0YSk7XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW52ZWxvcGVDcmVhdG9yLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENoYW5uZWwsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5pbXBvcnQgeyBjcmVhdGVVbmlxdWVOYW1lc3BhY2UsIGV2ZW50T2ZmLCBldmVudE9uLCBnZXREb2N1bWVudCwgZ2V0TmF2aWdhdG9yLCBnZXRXaW5kb3csIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1VuZGVmaW5lZCwgbWVyZ2VFdnROYW1lc3BhY2UgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9PTl9MSU5FIH0gZnJvbSBcIi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbmZ1bmN0aW9uIF9kaXNhYmxlRXZlbnRzKHRhcmdldCwgZXZ0TmFtZXNwYWNlKSB7XHJcbiAgICBldmVudE9mZih0YXJnZXQsIG51bGwsIG51bGwsIGV2dE5hbWVzcGFjZSk7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZSBhIG5ldyBPZmZsaW5lTGlzdGVuZXIgaW5zdGFuY2UgdG8gbW9uaXRvciBicm93c2VyIG9ubGluZSAvIG9mZmxpbmUgZXZlbnRzXHJcbiAqIEBwYXJhbSBwYXJlbnRFdnROYW1lc3BhY2UgLSBUaGUgcGFyZW50IGV2ZW50IG5hbWVzcGFjZSB0byBhcHBlbmQgdG8gYW55IHNwZWNpZmljIGV2ZW50cyBmb3IgdGhpcyBpbnN0YW5jZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9mZmxpbmVMaXN0ZW5lcihwYXJlbnRFdnROYW1lc3BhY2UpIHtcclxuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xyXG4gICAgdmFyIF9uYXZpZ2F0b3IgPSBnZXROYXZpZ2F0b3IoKTsgLy8gR2V0cyB0aGUgd2luZG93Lm5hdmlnYXRvciBvciB3b3JrZXJOYXZpZ2F0b3IgZGVwZW5kaW5nIG9uIHRoZSBnbG9iYWxcclxuICAgIHZhciBfaXNMaXN0ZW5pbmcgPSBmYWxzZTtcclxuICAgIHZhciBfb25saW5lU3RhdHVzID0gdHJ1ZTtcclxuICAgIHZhciBfZXZ0TmFtZXNwYWNlID0gbWVyZ2VFdnROYW1lc3BhY2UoY3JlYXRlVW5pcXVlTmFtZXNwYWNlKFwiT2ZmbGluZUxpc3RlbmVyXCIpLCBwYXJlbnRFdnROYW1lc3BhY2UpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBpZiAoX2VuYWJsZUV2ZW50cyhnZXRXaW5kb3coKSkpIHtcclxuICAgICAgICAgICAgX2lzTGlzdGVuaW5nID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKF9kb2N1bWVudCkge1xyXG4gICAgICAgICAgICAvLyBBbHNvIGF0dGFjaCB0byB0aGUgZG9jdW1lbnQuYm9keSBvciBkb2N1bWVudFxyXG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gX2RvY3VtZW50LmJvZHkgfHwgX2RvY3VtZW50O1xyXG4gICAgICAgICAgICBpZiAodGFyZ2V0Lm9ub25saW5lKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX2VuYWJsZUV2ZW50cyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2lzTGlzdGVuaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX2lzTGlzdGVuaW5nKSB7XHJcbiAgICAgICAgICAgIC8vIFdlIGFyZSBsaXN0ZW5pbmcgdG8gZXZlbnRzIHNvIGxldHMgc2V0IHRoZSBjdXJyZW50IHN0YXR1cyByYXRoZXIgdGhhbiBhc3N1bWluZyB3ZSBhcmUgb25saW5lICMxNTM4XHJcbiAgICAgICAgICAgIGlmIChfbmF2aWdhdG9yICYmICFpc051bGxPclVuZGVmaW5lZChfbmF2aWdhdG9yW19EWU5fT05fTElORSAvKiBAbWluOiUyZW9uTGluZSAqL10pKSB7IC8vIG5hdmlnYXRvci5vbkxpbmUgaXMgdW5kZWZpbmVkIGluIHJlYWN0LW5hdGl2ZVxyXG4gICAgICAgICAgICAgICAgX29ubGluZVN0YXR1cyA9IF9uYXZpZ2F0b3JbX0RZTl9PTl9MSU5FIC8qIEBtaW46JTJlb25MaW5lICovXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gdGhpcyBtYWtlcyByZWFjdC1uYXRpdmUgbGVzcyBhbmdyeVxyXG4gICAgICAgIF9pc0xpc3RlbmluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gX2VuYWJsZUV2ZW50cyh0YXJnZXQpIHtcclxuICAgICAgICB2YXIgZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICAgICAgZW5hYmxlZCA9IGV2ZW50T24odGFyZ2V0LCBcIm9ubGluZVwiLCBfc2V0T25saW5lLCBfZXZ0TmFtZXNwYWNlKTtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIGV2ZW50T24odGFyZ2V0LCBcIm9mZmxpbmVcIiwgX3NldE9mZmxpbmUsIF9ldnROYW1lc3BhY2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlbmFibGVkO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gX3NldE9ubGluZSgpIHtcclxuICAgICAgICBfb25saW5lU3RhdHVzID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF9zZXRPZmZsaW5lKCkge1xyXG4gICAgICAgIF9vbmxpbmVTdGF0dXMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF9pc09ubGluZSgpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICBpZiAoX2lzTGlzdGVuaW5nKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IF9vbmxpbmVTdGF0dXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKF9uYXZpZ2F0b3IgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKF9uYXZpZ2F0b3JbX0RZTl9PTl9MSU5FIC8qIEBtaW46JTJlb25MaW5lICovXSkpIHsgLy8gbmF2aWdhdG9yLm9uTGluZSBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlXHJcbiAgICAgICAgICAgIHJlc3VsdCA9IF9uYXZpZ2F0b3JbX0RZTl9PTl9MSU5FIC8qIEBtaW46JTJlb25MaW5lICovXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIF91bmxvYWQoKSB7XHJcbiAgICAgICAgdmFyIHdpbiA9IGdldFdpbmRvdygpO1xyXG4gICAgICAgIGlmICh3aW4gJiYgX2lzTGlzdGVuaW5nKSB7XHJcbiAgICAgICAgICAgIF9kaXNhYmxlRXZlbnRzKHdpbiwgX2V2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgIGlmIChfZG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIC8vIEFsc28gYXR0YWNoIHRvIHRoZSBkb2N1bWVudC5ib2R5IG9yIGRvY3VtZW50XHJcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gX2RvY3VtZW50LmJvZHkgfHwgX2RvY3VtZW50O1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh0YXJnZXQub25vbmxpbmUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2Rpc2FibGVFdmVudHModGFyZ2V0LCBfZXZ0TmFtZXNwYWNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBfaXNMaXN0ZW5pbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzT25saW5lOiBfaXNPbmxpbmUsXHJcbiAgICAgICAgaXNMaXN0ZW5pbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9pc0xpc3RlbmluZzsgfSxcclxuICAgICAgICB1bmxvYWQ6IF91bmxvYWRcclxuICAgIH07XHJcbn1cclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9T2ZmbGluZS5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDaGFubmVsLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHsgX19leHRlbmRzRm4gYXMgX19leHRlbmRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1zaGltc1wiO1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyB1dGxHZXRTZXNzaW9uU3RvcmFnZSwgdXRsU2V0U2Vzc2lvblN0b3JhZ2UgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vblwiO1xyXG5pbXBvcnQgeyBfdGhyb3dJbnRlcm5hbCwgYXJyRm9yRWFjaCwgYXJySW5kZXhPZiwgZHVtcE9iaiwgZ2V0RXhjZXB0aW9uTmFtZSwgZ2V0SlNPTiwgaXNBcnJheSwgaXNGdW5jdGlvbiwgaXNTdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9CQVRDSF9QQVlMT0FEUywgX0RZTl9DTEVBUiwgX0RZTl9DTEVBUl9TRU5ULCBfRFlOX0NPVU5ULCBfRFlOX0VNSVRfTElORV9ERUxJTUlURURfMCwgX0RZTl9FTlFVRVVFLCBfRFlOX0xFTkdUSCwgX0RZTl9NQVJLX0FTX1NFTlQsIF9EWU5fTkFNRV9QUkVGSVgsIF9EWU5fUFVTSCwgX0RZTl9TVFJJTkdJRlksIF9EWU5fX0JVRkZFUl9fS0VZLCBfRFlOX19NQVhfX0JVRkZFUl9fU0laRSwgX0RZTl9fU0VOVF9fQlVGRkVSX19LRVkgfSBmcm9tIFwiLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxudmFyIEJhc2VTZW5kQnVmZmVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gQmFzZVNlbmRCdWZmZXIobG9nZ2VyLCBjb25maWcpIHtcclxuICAgICAgICB2YXIgX2J1ZmZlciA9IFtdO1xyXG4gICAgICAgIHZhciBfYnVmZmVyRnVsbE1lc3NhZ2VTZW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZ2V0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gX2J1ZmZlcjtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX3NldCA9IGZ1bmN0aW9uIChidWZmZXIpIHtcclxuICAgICAgICAgICAgX2J1ZmZlciA9IGJ1ZmZlcjtcclxuICAgICAgICAgICAgcmV0dXJuIF9idWZmZXI7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oQmFzZVNlbmRCdWZmZXIsIHRoaXMsIGZ1bmN0aW9uIChfc2VsZikge1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0VOUVVFVUUgLyogQG1pbjolMmVlbnF1ZXVlICovXSA9IGZ1bmN0aW9uIChwYXlsb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX3NlbGZbX0RZTl9DT1VOVCAvKiBAbWluOiUyZWNvdW50ICovXSgpID49IGNvbmZpZy5ldmVudHNMaW1pdEluTWVtKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBzZW50IGludGVybmFsIGxvZyBvbmx5IG9uY2UgcGVyIHBhZ2Ugdmlld1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX2J1ZmZlckZ1bGxNZXNzYWdlU2VudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCAxMDUgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5Jbk1lbW9yeVN0b3JhZ2VCdWZmZXJGdWxsICovLCBcIk1heGltdW0gaW4tbWVtb3J5IGJ1ZmZlciBzaXplIHJlYWNoZWQ6IFwiICsgX3NlbGZbX0RZTl9DT1VOVCAvKiBAbWluOiUyZWNvdW50ICovXSgpLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2J1ZmZlckZ1bGxNZXNzYWdlU2VudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF9idWZmZXJbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10ocGF5bG9hZCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQ09VTlQgLyogQG1pbjolMmVjb3VudCAqL10gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX2J1ZmZlcltfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLnNpemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2l6ZSA9IF9idWZmZXJbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgbHAgPSAwOyBscCA8IF9idWZmZXJbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dOyBscCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSArPSBfYnVmZmVyW2xwXVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZ1tfRFlOX0VNSVRfTElORV9ERUxJTUlURURfMCAvKiBAbWluOiUyZWVtaXRMaW5lRGVsaW1pdGVkSnNvbiAqL10oKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNpemUgKz0gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0NMRUFSIC8qIEBtaW46JTJlY2xlYXIgKi9dID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX2J1ZmZlciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgX2J1ZmZlckZ1bGxNZXNzYWdlU2VudCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5nZXRJdGVtcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBfYnVmZmVyLnNsaWNlKDApO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0JBVENIX1BBWUxPQURTIC8qIEBtaW46JTJlYmF0Y2hQYXlsb2FkcyAqL10gPSBmdW5jdGlvbiAocGF5bG9hZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWQgJiYgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJhdGNoID0gY29uZmlnW19EWU5fRU1JVF9MSU5FX0RFTElNSVRFRF8wIC8qIEBtaW46JTJlZW1pdExpbmVEZWxpbWl0ZWRKc29uICovXSgpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZC5qb2luKFwiXFxuXCIpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJbXCIgKyBwYXlsb2FkLmpvaW4oXCIsXCIpICsgXCJdXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZVNlbmRCdWZmZXIucHJvdG90eXBlLmVucXVldWUuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZVNlbmRCdWZmZXIucHJvdG90eXBlLmNvdW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VTZW5kQnVmZmVyLnByb3RvdHlwZS5zaXplLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEJhc2VTZW5kQnVmZmVyLnByb3RvdHlwZS5jbGVhci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBCYXNlU2VuZEJ1ZmZlci5wcm90b3R5cGUuZ2V0SXRlbXMuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgQmFzZVNlbmRCdWZmZXIucHJvdG90eXBlLmJhdGNoUGF5bG9hZHMuXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBCYXNlU2VuZEJ1ZmZlci5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gQmFzZVNlbmRCdWZmZXI7XHJcbn0oKSk7XHJcbi8qXHJcbiAqIEFuIGFycmF5IGJhc2VkIHNlbmQgYnVmZmVyLlxyXG4gKi9cclxudmFyIEFycmF5U2VuZEJ1ZmZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgIF9fZXh0ZW5kcyhBcnJheVNlbmRCdWZmZXIsIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBBcnJheVNlbmRCdWZmZXIobG9nZ2VyLCBjb25maWcpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBsb2dnZXIsIGNvbmZpZykgfHwgdGhpcztcclxuICAgICAgICBkeW5hbWljUHJvdG8oQXJyYXlTZW5kQnVmZmVyLCBfdGhpcywgZnVuY3Rpb24gKF9zZWxmLCBfYmFzZSkge1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX01BUktfQVNfU0VOVCAvKiBAbWluOiUyZW1hcmtBc1NlbnQgKi9dID0gZnVuY3Rpb24gKHBheWxvYWQpIHtcclxuICAgICAgICAgICAgICAgIF9iYXNlW19EWU5fQ0xFQVIgLyogQG1pbjolMmVjbGVhciAqL10oKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9DTEVBUl9TRU5UIC8qIEBtaW46JTJlY2xlYXJTZW50ICovXSA9IGZ1bmN0aW9uIChwYXlsb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBub3Qgc3VwcG9ydGVkXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFycmF5U2VuZEJ1ZmZlci5wcm90b3R5cGUubWFya0FzU2VudC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBBcnJheVNlbmRCdWZmZXIucHJvdG90eXBlLmNsZWFyU2VudC5cclxuICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhbiBJRTggYnVnIHdoZW4gdXNpbmcgZHluYW1pY1Byb3RvKCkgd2l0aCBjbGFzc2VzIHRoYXQgZG9uJ3QgaGF2ZSBhbnlcbiAgICAvLyBub24tZHluYW1pYyBmdW5jdGlvbnMgb3Igc3RhdGljIHByb3BlcnRpZXMvZnVuY3Rpb25zIHdoZW4gdXNpbmcgdWdsaWZ5LWpzIHRvIG1pbmlmeSB0aGUgcmVzdWx0aW5nIGNvZGUuXG4gICAgLy8gdGhpcyB3aWxsIGJlIHJlbW92ZWQgd2hlbiBFUzMgc3VwcG9ydCBpcyBkcm9wcGVkLlxuICAgIEFycmF5U2VuZEJ1ZmZlci5fX2llRHluPTE7XG5cbiAgICByZXR1cm4gQXJyYXlTZW5kQnVmZmVyO1xyXG59KEJhc2VTZW5kQnVmZmVyKSk7XHJcbmV4cG9ydCB7IEFycmF5U2VuZEJ1ZmZlciB9O1xyXG4vKlxyXG4gKiBTZXNzaW9uIHN0b3JhZ2UgYnVmZmVyIGhvbGRzIGEgY29weSBvZiBhbGwgdW5zZW50IGl0ZW1zIGluIHRoZSBicm93c2VyIHNlc3Npb24gc3RvcmFnZS5cclxuICovXHJcbnZhciBTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyLCBfc3VwZXIpO1xyXG4gICAgZnVuY3Rpb24gU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyKGxvZ2dlciwgY29uZmlnKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgbG9nZ2VyLCBjb25maWcpIHx8IHRoaXM7XHJcbiAgICAgICAgdmFyIF9idWZmZXJGdWxsTWVzc2FnZVNlbnQgPSBmYWxzZTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyLCBfdGhpcywgZnVuY3Rpb24gKF9zZWxmLCBfYmFzZSkge1xyXG4gICAgICAgICAgICB2YXIgYnVmZmVySXRlbXMgPSBfZ2V0QnVmZmVyKFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlcltfRFlOX19CVUZGRVJfX0tFWSAvKiBAbWluOiUyZUJVRkZFUl9LRVkgKi9dKTtcclxuICAgICAgICAgICAgdmFyIG5vdERlbGl2ZXJlZEl0ZW1zID0gX2dldEJ1ZmZlcihTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fU0VOVF9fQlVGRkVSX19LRVkgLyogQG1pbjolMmVTRU5UX0JVRkZFUl9LRVkgKi9dKTtcclxuICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IF9zZWxmLl9zZXQoYnVmZmVySXRlbXMuY29uY2F0KG5vdERlbGl2ZXJlZEl0ZW1zKSk7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaGFzIHRvbyBtYW55IGl0ZW1zLCBkcm9wIGl0ZW1zIGZyb20gdGhlIGVuZC5cclxuICAgICAgICAgICAgaWYgKGJ1ZmZlcltfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiBTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fTUFYX19CVUZGRVJfX1NJWkUgLyogQG1pbjolMmVNQVhfQlVGRkVSX1NJWkUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICBidWZmZXJbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID0gU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyW19EWU5fX01BWF9fQlVGRkVSX19TSVpFIC8qIEBtaW46JTJlTUFYX0JVRkZFUl9TSVpFICovXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBfc2V0QnVmZmVyKFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlcltfRFlOX19TRU5UX19CVUZGRVJfX0tFWSAvKiBAbWluOiUyZVNFTlRfQlVGRkVSX0tFWSAqL10sIFtdKTtcclxuICAgICAgICAgICAgX3NldEJ1ZmZlcihTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fQlVGRkVSX19LRVkgLyogQG1pbjolMmVCVUZGRVJfS0VZICovXSwgYnVmZmVyKTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9FTlFVRVVFIC8qIEBtaW46JTJlZW5xdWV1ZSAqL10gPSBmdW5jdGlvbiAocGF5bG9hZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9zZWxmW19EWU5fQ09VTlQgLyogQG1pbjolMmVjb3VudCAqL10oKSA+PSBTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fTUFYX19CVUZGRVJfX1NJWkUgLyogQG1pbjolMmVNQVhfQlVGRkVSX1NJWkUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VudCBpbnRlcm5hbCBsb2cgb25seSBvbmNlIHBlciBwYWdlIHZpZXdcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIV9idWZmZXJGdWxsTWVzc2FnZVNlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNjcgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5TZXNzaW9uU3RvcmFnZUJ1ZmZlckZ1bGwgKi8sIFwiTWF4aW11bSBidWZmZXIgc2l6ZSByZWFjaGVkOiBcIiArIF9zZWxmW19EWU5fQ09VTlQgLyogQG1pbjolMmVjb3VudCAqL10oKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9idWZmZXJGdWxsTWVzc2FnZVNlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfYmFzZVtfRFlOX0VOUVVFVUUgLyogQG1pbjolMmVlbnF1ZXVlICovXShwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIF9zZXRCdWZmZXIoU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyW19EWU5fX0JVRkZFUl9fS0VZIC8qIEBtaW46JTJlQlVGRkVSX0tFWSAqL10sIF9zZWxmLl9nZXQoKSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQ0xFQVIgLyogQG1pbjolMmVjbGVhciAqL10gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBfYmFzZVtfRFlOX0NMRUFSIC8qIEBtaW46JTJlY2xlYXIgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICBfc2V0QnVmZmVyKFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlcltfRFlOX19CVUZGRVJfX0tFWSAvKiBAbWluOiUyZUJVRkZFUl9LRVkgKi9dLCBfc2VsZi5fZ2V0KCkpO1xyXG4gICAgICAgICAgICAgICAgX3NldEJ1ZmZlcihTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fU0VOVF9fQlVGRkVSX19LRVkgLyogQG1pbjolMmVTRU5UX0JVRkZFUl9LRVkgKi9dLCBbXSk7XHJcbiAgICAgICAgICAgICAgICBfYnVmZmVyRnVsbE1lc3NhZ2VTZW50ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fTUFSS19BU19TRU5UIC8qIEBtaW46JTJlbWFya0FzU2VudCAqL10gPSBmdW5jdGlvbiAocGF5bG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3NldEJ1ZmZlcihTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fQlVGRkVSX19LRVkgLyogQG1pbjolMmVCVUZGRVJfS0VZICovXSwgX3NlbGYuX3NldChfcmVtb3ZlUGF5bG9hZHNGcm9tQnVmZmVyKHBheWxvYWQsIF9zZWxmLl9nZXQoKSkpKTtcclxuICAgICAgICAgICAgICAgIHZhciBzZW50RWxlbWVudHMgPSBfZ2V0QnVmZmVyKFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlcltfRFlOX19TRU5UX19CVUZGRVJfX0tFWSAvKiBAbWluOiUyZVNFTlRfQlVGRkVSX0tFWSAqL10pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlbnRFbGVtZW50cyBpbnN0YW5jZW9mIEFycmF5ICYmIHBheWxvYWQgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbnRFbGVtZW50cyA9IHNlbnRFbGVtZW50cy5jb25jYXQocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbnRFbGVtZW50c1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiBTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fTUFYX19CVUZGRVJfX1NJWkUgLyogQG1pbjolMmVNQVhfQlVGRkVSX1NJWkUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHNlbmQgdGVsZW1ldHJ5IG5vcm1hbGx5LiBJZiB0aGUgU0VOVF9CVUZGRVIgaXMgdG9vIGJpZyB3ZSBkb24ndCBhZGQgbmV3IGVsZW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsIHdlIHJlY2VpdmUgYSByZXNwb25zZSBmcm9tIHRoZSBiYWNrZW5kIGFuZCB0aGUgYnVmZmVyIGhhcyBmcmVlIHNwYWNlIGFnYWluIChzZWUgY2xlYXJTZW50IG1ldGhvZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDY3IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU2Vzc2lvblN0b3JhZ2VCdWZmZXJGdWxsICovLCBcIlNlbnQgYnVmZmVyIHJlYWNoZWQgaXRzIG1heGltdW0gc2l6ZTogXCIgKyBzZW50RWxlbWVudHNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudEVsZW1lbnRzW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA9IFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlcltfRFlOX19NQVhfX0JVRkZFUl9fU0laRSAvKiBAbWluOiUyZU1BWF9CVUZGRVJfU0laRSAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIF9zZXRCdWZmZXIoU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyW19EWU5fX1NFTlRfX0JVRkZFUl9fS0VZIC8qIEBtaW46JTJlU0VOVF9CVUZGRVJfS0VZICovXSwgc2VudEVsZW1lbnRzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9DTEVBUl9TRU5UIC8qIEBtaW46JTJlY2xlYXJTZW50ICovXSA9IGZ1bmN0aW9uIChwYXlsb2FkKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2VudEVsZW1lbnRzID0gX2dldEJ1ZmZlcihTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXJbX0RZTl9fU0VOVF9fQlVGRkVSX19LRVkgLyogQG1pbjolMmVTRU5UX0JVRkZFUl9LRVkgKi9dKTtcclxuICAgICAgICAgICAgICAgIHNlbnRFbGVtZW50cyA9IF9yZW1vdmVQYXlsb2Fkc0Zyb21CdWZmZXIocGF5bG9hZCwgc2VudEVsZW1lbnRzKTtcclxuICAgICAgICAgICAgICAgIF9zZXRCdWZmZXIoU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyW19EWU5fX1NFTlRfX0JVRkZFUl9fS0VZIC8qIEBtaW46JTJlU0VOVF9CVUZGRVJfS0VZICovXSwgc2VudEVsZW1lbnRzKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZnVuY3Rpb24gX3JlbW92ZVBheWxvYWRzRnJvbUJ1ZmZlcihwYXlsb2FkcywgYnVmZmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gW107XHJcbiAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKGJ1ZmZlciwgZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0Z1bmN0aW9uKHZhbHVlKSAmJiBhcnJJbmRleE9mKHBheWxvYWRzLCB2YWx1ZSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZ1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVtYWluaW5nO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9nZXRCdWZmZXIoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcHJlZml4ZWRLZXkgPSBrZXk7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZWZpeGVkS2V5ID0gY29uZmlnW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjolMmVuYW1lUHJlZml4ICovXSAmJiBjb25maWdbX0RZTl9OQU1FX1BSRUZJWCAvKiBAbWluOiUyZW5hbWVQcmVmaXggKi9dKCkgPyBjb25maWdbX0RZTl9OQU1FX1BSRUZJWCAvKiBAbWluOiUyZW5hbWVQcmVmaXggKi9dKCkgKyBcIl9cIiArIHByZWZpeGVkS2V5IDogcHJlZml4ZWRLZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJ1ZmZlckpzb24gPSB1dGxHZXRTZXNzaW9uU3RvcmFnZShsb2dnZXIsIHByZWZpeGVkS2V5KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVySnNvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVmZmVyXzEgPSBnZXRKU09OKCkucGFyc2UoYnVmZmVySnNvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1N0cmluZyhidWZmZXJfMSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdXNpbmcgc29tZSB2ZXJzaW9uIHByb3RvdHlwZS5qcyB0aGUgc3RyaW5naWZ5IC8gcGFyc2UgY3ljbGUgZG9lcyBub3QgZGVjb2RlIGFycmF5J3MgY29ycmVjdGx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfMSA9IGdldEpTT04oKS5wYXJzZShidWZmZXJfMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlcl8xICYmIGlzQXJyYXkoYnVmZmVyXzEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyXzE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCA0MiAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZFRvUmVzdG9yZVN0b3JhZ2VCdWZmZXIgKi8sIFwiIHN0b3JhZ2Uga2V5OiBcIiArIHByZWZpeGVkS2V5ICsgXCIsIFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3NldEJ1ZmZlcihrZXksIGJ1ZmZlcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIHByZWZpeGVkS2V5ID0ga2V5O1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBwcmVmaXhlZEtleSA9IGNvbmZpZ1tfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46JTJlbmFtZVByZWZpeCAqL10gJiYgY29uZmlnW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjolMmVuYW1lUHJlZml4ICovXSgpID8gY29uZmlnW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjolMmVuYW1lUHJlZml4ICovXSgpICsgXCJfXCIgKyBwcmVmaXhlZEtleSA6IHByZWZpeGVkS2V5O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBidWZmZXJKc29uID0gSlNPTltfRFlOX1NUUklOR0lGWSAvKiBAbWluOiUyZXN0cmluZ2lmeSAqL10oYnVmZmVyKTtcclxuICAgICAgICAgICAgICAgICAgICB1dGxTZXRTZXNzaW9uU3RvcmFnZShsb2dnZXIsIHByZWZpeGVkS2V5LCBidWZmZXJKc29uKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgd2FzIGFuIGVycm9yLCBjbGVhciB0aGUgYnVmZmVyXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGVsZW1ldHJ5IGlzIHN0b3JlZCBpbiB0aGUgX2J1ZmZlciBhcnJheSBzbyB3ZSB3b24ndCBsb29zZSBhbnkgaXRlbXNcclxuICAgICAgICAgICAgICAgICAgICB1dGxTZXRTZXNzaW9uU3RvcmFnZShsb2dnZXIsIHByZWZpeGVkS2V5LCBKU09OW19EWU5fU1RSSU5HSUZZIC8qIEBtaW46JTJlc3RyaW5naWZ5ICovXShbXSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDQxIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkVG9TZXRTdG9yYWdlQnVmZmVyICovLCBcIiBzdG9yYWdlIGtleTogXCIgKyBwcmVmaXhlZEtleSArIFwiLCBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSkgKyBcIi4gQnVmZmVyIGNsZWFyZWRcIiwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyLnByb3RvdHlwZS5lbnF1ZXVlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlci5wcm90b3R5cGUuY2xlYXIuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyLnByb3RvdHlwZS5tYXJrQXNTZW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlci5wcm90b3R5cGUuY2xlYXJTZW50LlxyXG4gICAgU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyLkJVRkZFUl9LRVkgPSBcIkFJX2J1ZmZlclwiO1xyXG4gICAgU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyLlNFTlRfQlVGRkVSX0tFWSA9IFwiQUlfc2VudEJ1ZmZlclwiO1xyXG4gICAgLy8gTWF4aW11bSBudW1iZXIgb2YgcGF5bG9hZHMgc3RvcmVkIGluIHRoZSBidWZmZXIuIElmIHRoZSBidWZmZXIgaXMgZnVsbCwgbmV3IGVsZW1lbnRzIHdpbGwgYmUgZHJvcHBlZC5cclxuICAgIFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlci5NQVhfQlVGRkVSX1NJWkUgPSAyMDAwO1xyXG4gICAgcmV0dXJuIFNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlcjtcclxufShCYXNlU2VuZEJ1ZmZlcikpO1xyXG5leHBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXIgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VuZEJ1ZmZlci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDaGFubmVsLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgX3Rocm93SW50ZXJuYWwsIGdldEpTT04sIGlzQXJyYXksIGlzRnVuY3Rpb24sIGlzT2JqZWN0LCBvYmpGb3JFYWNoS2V5IH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmltcG9ydCB7IF9EWU5fTEVOR1RILCBfRFlOX1BVU0gsIF9EWU5fU1RSSU5HSUZZLCBfRFlOX1RPX1NUUklORyB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG52YXIgU2VyaWFsaXplciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFNlcmlhbGl6ZXIobG9nZ2VyKSB7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKFNlcmlhbGl6ZXIsIHRoaXMsIGZ1bmN0aW9uIChfc2VsZikge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU2VyaWFsaXplcyB0aGUgY3VycmVudCBvYmplY3QgdG8gYSBKU09OIHN0cmluZy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLnNlcmlhbGl6ZSA9IGZ1bmN0aW9uIChpbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG91dHB1dCA9IF9zZXJpYWxpemVPYmplY3QoaW5wdXQsIFwicm9vdFwiKTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldEpTT04oKVtfRFlOX1NUUklOR0lGWSAvKiBAbWluOiUyZXN0cmluZ2lmeSAqL10ob3V0cHV0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgc2VyaWFsaXphdGlvbiBmYWlscyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwobG9nZ2VyLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDQ4IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQ2Fubm90U2VyaWFsaXplT2JqZWN0ICovLCAoZSAmJiBpc0Z1bmN0aW9uKGVbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10pKSA/IGVbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10oKSA6IFwiRXJyb3Igc2VyaWFsaXppbmcgb2JqZWN0XCIsIG51bGwsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfc2VyaWFsaXplT2JqZWN0KHNvdXJjZSwgbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNpcmN1bGFyUmVmZXJlbmNlQ2hlY2sgPSBcIl9fYWlDaXJjdWxhclJlZkNoZWNrXCI7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3V0cHV0ID0ge307XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCA0OCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkNhbm5vdFNlcmlhbGl6ZU9iamVjdCAqLywgXCJjYW5ub3Qgc2VyaWFsaXplIG9iamVjdCBiZWNhdXNlIGl0IGlzIG51bGwgb3IgdW5kZWZpbmVkXCIsIHsgbmFtZTogbmFtZSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtjaXJjdWxhclJlZmVyZW5jZUNoZWNrXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDUwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuQ2lyY3VsYXJSZWZlcmVuY2VEZXRlY3RlZCAqLywgXCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgd2hpbGUgc2VyaWFsaXppbmcgb2JqZWN0XCIsIHsgbmFtZTogbmFtZSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFzb3VyY2UuYWlEYXRhQ29udHJhY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yIG1lYXN1cmVtZW50cy9wcm9wZXJ0aWVzL3RhZ3NcclxuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gXCJtZWFzdXJlbWVudHNcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBfc2VyaWFsaXplU3RyaW5nTWFwKHNvdXJjZSwgXCJudW1iZXJcIiwgbmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT09IFwicHJvcGVydGllc1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IF9zZXJpYWxpemVTdHJpbmdNYXAoc291cmNlLCBcInN0cmluZ1wiLCBuYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gXCJ0YWdzXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gX3NlcmlhbGl6ZVN0cmluZ01hcChzb3VyY2UsIFwic3RyaW5nXCIsIG5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0FycmF5KHNvdXJjZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gX3NlcmlhbGl6ZUFycmF5KHNvdXJjZSwgbmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA0OSAvKiBfZUludGVybmFsTWVzc2FnZUlkLkNhbm5vdFNlcmlhbGl6ZU9iamVjdE5vblNlcmlhbGl6YWJsZSAqLywgXCJBdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSBhbiBvYmplY3Qgd2hpY2ggZG9lcyBub3QgaW1wbGVtZW50IElTZXJpYWxpemFibGVcIiwgeyBuYW1lOiBuYW1lIH0sIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlIG9iamVjdCBjYW4gYmUgc3RyaW5naWZpZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEpTT04oKVtfRFlOX1NUUklOR0lGWSAvKiBAbWluOiUyZXN0cmluZ2lmeSAqL10oc291cmNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IHNvdXJjZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgc2VyaWFsaXphdGlvbiBmYWlscyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgNDggLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5DYW5ub3RTZXJpYWxpemVPYmplY3QgKi8sIChlICYmIGlzRnVuY3Rpb24oZVtfRFlOX1RPX1NUUklORyAvKiBAbWluOiUyZXRvU3RyaW5nICovXSkpID8gZVtfRFlOX1RPX1NUUklORyAvKiBAbWluOiUyZXRvU3RyaW5nICovXSgpIDogXCJFcnJvciBzZXJpYWxpemluZyBvYmplY3RcIiwgbnVsbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNvdXJjZVtjaXJjdWxhclJlZmVyZW5jZUNoZWNrXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBvYmpGb3JFYWNoS2V5KHNvdXJjZS5haURhdGFDb250cmFjdCwgZnVuY3Rpb24gKGZpZWxkLCBjb250cmFjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc1JlcXVpcmVkID0gKGlzRnVuY3Rpb24oY29udHJhY3QpKSA/IChjb250cmFjdCgpICYgMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8pIDogKGNvbnRyYWN0ICYgMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc0hpZGRlbiA9IChpc0Z1bmN0aW9uKGNvbnRyYWN0KSkgPyAoY29udHJhY3QoKSAmIDQgLyogRmllbGRUeXBlLkhpZGRlbiAqLykgOiAoY29udHJhY3QgJiA0IC8qIEZpZWxkVHlwZS5IaWRkZW4gKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc0FycmF5ID0gY29udHJhY3QgJiAyIC8qIEZpZWxkVHlwZS5BcnJheSAqLztcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNQcmVzZW50ID0gc291cmNlW2ZpZWxkXSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc09iaiA9IGlzT2JqZWN0KHNvdXJjZVtmaWVsZF0pICYmIHNvdXJjZVtmaWVsZF0gIT09IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUmVxdWlyZWQgJiYgIWlzUHJlc2VudCAmJiAhaXNBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgMjQgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5NaXNzaW5nUmVxdWlyZWRGaWVsZFNwZWNpZmljYXRpb24gKi8sIFwiTWlzc2luZyByZXF1aXJlZCBmaWVsZCBzcGVjaWZpY2F0aW9uLiBUaGUgZmllbGQgaXMgcmVxdWlyZWQgYnV0IG5vdCBwcmVzZW50IG9uIHNvdXJjZVwiLCB7IGZpZWxkOiBmaWVsZCwgbmFtZTogbmFtZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGluIGRlYnVnIG1vZGUsIGNvbnRpbnVlIGFuZCBob3BlIHRoZSBlcnJvciBpcyBwZXJtaXNzaWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghaXNIaWRkZW4pIHsgLy8gRG9uJ3Qgc2VyaWFsaXplIGhpZGRlbiBmaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gdm9pZCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmopIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOyByZWN1cnNlIG9uIGVhY2ggb2JqZWN0IGluIHRoZSBzb3VyY2UgYXJyYXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IF9zZXJpYWxpemVBcnJheShzb3VyY2VbZmllbGRdLCBmaWVsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWN1cnNlIG9uIHRoZSBzb3VyY2Ugb2JqZWN0IGluIHRoaXMgZmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IF9zZXJpYWxpemVPYmplY3Qoc291cmNlW2ZpZWxkXSwgZmllbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXNzaWduIHRoZSBzb3VyY2UgZmllbGQgdG8gdGhlIG91dHB1dCBldmVuIGlmIHVuZGVmaW5lZCBvciByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzb3VyY2VbZmllbGRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgZW1pdCB0aGlzIGZpZWxkIGlmIHRoZSB2YWx1ZSBpcyBkZWZpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSBzb3VyY2VbY2lyY3VsYXJSZWZlcmVuY2VDaGVja107XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9zZXJpYWxpemVBcnJheShzb3VyY2VzLCBuYW1lKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3V0cHV0O1xyXG4gICAgICAgICAgICAgICAgaWYgKCEhc291cmNlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBcnJheShzb3VyY2VzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChsb2dnZXIsIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgNTQgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5JdGVtTm90SW5BcnJheSAqLywgXCJUaGlzIGZpZWxkIHdhcyBzcGVjaWZpZWQgYXMgYW4gYXJyYXkgaW4gdGhlIGNvbnRyYWN0IGJ1dCB0aGUgaXRlbSBpcyBub3QgYW4gYXJyYXkuXFxyXFxuXCIsIHsgbmFtZTogbmFtZSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJjZXNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBfc2VyaWFsaXplT2JqZWN0KHNvdXJjZSwgbmFtZSArIFwiW1wiICsgaSArIFwiXVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFtfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3NlcmlhbGl6ZVN0cmluZ01hcChtYXAsIGV4cGVjdGVkVHlwZSwgbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG91dHB1dDtcclxuICAgICAgICAgICAgICAgIGlmIChtYXApIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICBvYmpGb3JFYWNoS2V5KG1hcCwgZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRUeXBlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFtmaWVsZF0gPSBcInVuZGVmaW5lZFwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbZmllbGRdID0gXCJudWxsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghdmFsdWVbX0RZTl9UT19TVFJJTkcgLyogQG1pbjolMmV0b1N0cmluZyAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbZmllbGRdID0gXCJpbnZhbGlkIGZpZWxkOiB0b1N0cmluZygpIGlzIG5vdCBkZWZpbmVkLlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W2ZpZWxkXSA9IHZhbHVlW19EWU5fVE9fU1RSSU5HIC8qIEBtaW46JTJldG9TdHJpbmcgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXhwZWN0ZWRUeXBlID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFtmaWVsZF0gPSBcInVuZGVmaW5lZFwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbZmllbGRdID0gXCJudWxsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbnVtID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKG51bSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W2ZpZWxkXSA9IFwiTmFOXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbZmllbGRdID0gbnVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFtmaWVsZF0gPSBcImludmFsaWQgZmllbGQ6IFwiICsgbmFtZSArIFwiIGlzIG9mIHVua25vd24gdHlwZS5cIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGxvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCBvdXRwdXRbZmllbGRdLCBudWxsLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlcmlhbGl6ZXIucHJvdG90eXBlLnNlcmlhbGl6ZS5cclxuICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhbiBJRTggYnVnIHdoZW4gdXNpbmcgZHluYW1pY1Byb3RvKCkgd2l0aCBjbGFzc2VzIHRoYXQgZG9uJ3QgaGF2ZSBhbnlcbiAgICAvLyBub24tZHluYW1pYyBmdW5jdGlvbnMgb3Igc3RhdGljIHByb3BlcnRpZXMvZnVuY3Rpb25zIHdoZW4gdXNpbmcgdWdsaWZ5LWpzIHRvIG1pbmlmeSB0aGUgcmVzdWx0aW5nIGNvZGUuXG4gICAgLy8gdGhpcyB3aWxsIGJlIHJlbW92ZWQgd2hlbiBFUzMgc3VwcG9ydCBpcyBkcm9wcGVkLlxuICAgIFNlcmlhbGl6ZXIuX19pZUR5bj0xO1xuXG4gICAgcmV0dXJuIFNlcmlhbGl6ZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFNlcmlhbGl6ZXIgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VyaWFsaXplci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDaGFubmVsLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBfRFlOX0xFTkdUSCB9IGZyb20gXCIuLi8uLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuLy8gKE1hZ2ljIG51bWJlcikgREpCIGFsZ29yaXRobSBjYW4ndCB3b3JrIG9uIHNob3J0ZXIgc3RyaW5ncyAocmVzdWx0cyBpbiBwb29yIGRpc3RyaWJ1dGlvblxyXG52YXIgTUlOX0lOUFVUX0xFTkdUSCA9IDg7XHJcbnZhciBIYXNoQ29kZVNjb3JlR2VuZXJhdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gSGFzaENvZGVTY29yZUdlbmVyYXRvcigpIHtcclxuICAgIH1cclxuICAgIEhhc2hDb2RlU2NvcmVHZW5lcmF0b3IucHJvdG90eXBlLmdldEhhc2hDb2RlU2NvcmUgPSBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgdmFyIHNjb3JlID0gdGhpcy5nZXRIYXNoQ29kZShrZXkpIC8gSGFzaENvZGVTY29yZUdlbmVyYXRvci5JTlRfTUFYX1ZBTFVFO1xyXG4gICAgICAgIHJldHVybiBzY29yZSAqIDEwMDtcclxuICAgIH07XHJcbiAgICBIYXNoQ29kZVNjb3JlR2VuZXJhdG9yLnByb3RvdHlwZS5nZXRIYXNoQ29kZSA9IGZ1bmN0aW9uIChpbnB1dCkge1xyXG4gICAgICAgIGlmIChpbnB1dCA9PT0gXCJcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2hpbGUgKGlucHV0W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA8IE1JTl9JTlBVVF9MRU5HVEgpIHtcclxuICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5jb25jYXQoaW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyA1MzgxIGlzIGEgbWFnaWMgbnVtYmVyOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwNjk2MjIzL3JlYXNvbi1mb3ItNTM4MS1udW1iZXItaW4tZGpiLWhhc2gtZnVuY3Rpb25cclxuICAgICAgICB2YXIgaGFzaCA9IDUzODE7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107ICsraSkge1xyXG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpICsgaGFzaCkgKyBpbnB1dC5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICAvLyAnaGFzaCcgaXMgb2YgbnVtYmVyIHR5cGUgd2hpY2ggbWVhbnMgNTMgYml0IGludGVnZXIgKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzLW51bWJlci10eXBlKVxyXG4gICAgICAgICAgICAvLyAnaGFzaCAmIGhhc2gnIHdpbGwga2VlcCBpdCAzMiBiaXQgaW50ZWdlciAtIGp1c3QgdG8gbWFrZSBpdCBjbGVhcmVyIHdoYXQgdGhlIHJlc3VsdCBpcy5cclxuICAgICAgICAgICAgaGFzaCA9IGhhc2ggJiBoYXNoO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWF0aC5hYnMoaGFzaCk7XHJcbiAgICB9O1xyXG4gICAgLy8gV2UncmUgdXNpbmcgMzIgYml0IG1hdGgsIGhlbmNlIG1heCB2YWx1ZSBpcyAoMl4zMSAtIDEpXHJcbiAgICBIYXNoQ29kZVNjb3JlR2VuZXJhdG9yLklOVF9NQVhfVkFMVUUgPSAyMTQ3NDgzNjQ3O1xyXG4gICAgcmV0dXJuIEhhc2hDb2RlU2NvcmVHZW5lcmF0b3I7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEhhc2hDb2RlU2NvcmVHZW5lcmF0b3IgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGFzaENvZGVTY29yZUdlbmVyYXRvci5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBDaGFubmVsLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBDb250ZXh0VGFnS2V5cyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IF9EWU5fR0VUX0hBU0hfQ09ERV9TQ09SRSwgX0RZTl9HRVRfU0FNUExJTkdfU0NPUkUsIF9EWU5fVEFHUywgX0RZTl9UUkFDRV9JRCB9IGZyb20gXCIuLi8uLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSGFzaENvZGVTY29yZUdlbmVyYXRvciB9IGZyb20gXCIuL0hhc2hDb2RlU2NvcmVHZW5lcmF0b3JcIjtcclxudmFyIFNhbXBsaW5nU2NvcmVHZW5lcmF0b3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBTYW1wbGluZ1Njb3JlR2VuZXJhdG9yKCkge1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgdmFyIGhhc2hDb2RlR2VuZXJhdG9yID0gbmV3IEhhc2hDb2RlU2NvcmVHZW5lcmF0b3IoKTtcclxuICAgICAgICB2YXIga2V5cyA9IG5ldyBDb250ZXh0VGFnS2V5cygpO1xyXG4gICAgICAgIF9zZWxmW19EWU5fR0VUX1NBTVBMSU5HX1NDT1JFIC8qIEBtaW46JTJlZ2V0U2FtcGxpbmdTY29yZSAqL10gPSBmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgICAgICB2YXIgc2NvcmUgPSAwO1xyXG4gICAgICAgICAgICBpZiAoaXRlbVtfRFlOX1RBR1MgLyogQG1pbjolMmV0YWdzICovXSAmJiBpdGVtW19EWU5fVEFHUyAvKiBAbWluOiUyZXRhZ3MgKi9dW2tleXMudXNlcklkXSkgeyAvLyBzZWFyY2ggaW4gdGFncyBmaXJzdCwgdGhlbiBleHRcclxuICAgICAgICAgICAgICAgIHNjb3JlID0gaGFzaENvZGVHZW5lcmF0b3IuZ2V0SGFzaENvZGVTY29yZShpdGVtW19EWU5fVEFHUyAvKiBAbWluOiUyZXRhZ3MgKi9dW2tleXMudXNlcklkXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS5leHQgJiYgaXRlbS5leHQudXNlciAmJiBpdGVtLmV4dC51c2VyLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBzY29yZSA9IGhhc2hDb2RlR2VuZXJhdG9yW19EWU5fR0VUX0hBU0hfQ09ERV9TQ09SRSAvKiBAbWluOiUyZWdldEhhc2hDb2RlU2NvcmUgKi9dKGl0ZW0uZXh0LnVzZXIuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW1bX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL10gJiYgaXRlbVtfRFlOX1RBR1MgLyogQG1pbjolMmV0YWdzICovXVtrZXlzLm9wZXJhdGlvbklkXSkgeyAvLyBzZWFyY2ggaW4gdGFncyBmaXJzdCwgdGhlbiBleHRcclxuICAgICAgICAgICAgICAgIHNjb3JlID0gaGFzaENvZGVHZW5lcmF0b3IuZ2V0SGFzaENvZGVTY29yZShpdGVtW19EWU5fVEFHUyAvKiBAbWluOiUyZXRhZ3MgKi9dW2tleXMub3BlcmF0aW9uSWRdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChpdGVtLmV4dCAmJiBpdGVtLmV4dC50ZWxlbWV0cnlUcmFjZSAmJiBpdGVtLmV4dC50ZWxlbWV0cnlUcmFjZVtfRFlOX1RSQUNFX0lEIC8qIEBtaW46JTJldHJhY2VJRCAqL10pIHtcclxuICAgICAgICAgICAgICAgIHNjb3JlID0gaGFzaENvZGVHZW5lcmF0b3IuZ2V0SGFzaENvZGVTY29yZShpdGVtLmV4dC50ZWxlbWV0cnlUcmFjZVtfRFlOX1RSQUNFX0lEIC8qIEBtaW46JTJldHJhY2VJRCAqL10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmluc2VjdXJlLXJhbmRvbVxyXG4gICAgICAgICAgICAgICAgc2NvcmUgPSAoTWF0aC5yYW5kb20oKSAqIDEwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHNjb3JlO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU2FtcGxpbmdTY29yZUdlbmVyYXRvcjtcclxufSgpKTtcclxuZXhwb3J0IHsgU2FtcGxpbmdTY29yZUdlbmVyYXRvciB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TYW1wbGluZ1Njb3JlR2VuZXJhdG9yLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENoYW5uZWwsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCB7IE1ldHJpYyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IHNhZmVHZXRMb2dnZXIgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9EQVRBX1RZUEUsIF9EWU5fR0VUX1NBTVBMSU5HX1NDT1JFLCBfRFlOX1NBTVBMRV9SQVRFIH0gZnJvbSBcIi4uL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBTYW1wbGluZ1Njb3JlR2VuZXJhdG9yIH0gZnJvbSBcIi4vU2FtcGxpbmdTY29yZUdlbmVyYXRvcnMvU2FtcGxpbmdTY29yZUdlbmVyYXRvclwiO1xyXG52YXIgU2FtcGxlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gU2FtcGxlKHNhbXBsZVJhdGUsIGxvZ2dlcikge1xyXG4gICAgICAgIC8vIFdlJ3JlIHVzaW5nIDMyIGJpdCBtYXRoLCBoZW5jZSBtYXggdmFsdWUgaXMgKDJeMzEgLSAxKVxyXG4gICAgICAgIHRoaXMuSU5UX01BWF9WQUxVRSA9IDIxNDc0ODM2NDc7XHJcbiAgICAgICAgdmFyIF9sb2dnZXIgPSBsb2dnZXIgfHwgc2FmZUdldExvZ2dlcihudWxsKTtcclxuICAgICAgICBpZiAoc2FtcGxlUmF0ZSA+IDEwMCB8fCBzYW1wbGVSYXRlIDwgMCkge1xyXG4gICAgICAgICAgICBfbG9nZ2VyLnRocm93SW50ZXJuYWwoMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDU4IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU2FtcGxlUmF0ZU91dE9mUmFuZ2UgKi8sIFwiU2FtcGxpbmcgcmF0ZSBpcyBvdXQgb2YgcmFuZ2UgKDAuLjEwMCkuIFNhbXBsaW5nIHdpbGwgYmUgZGlzYWJsZWQsIHlvdSBtYXkgYmUgc2VuZGluZyB0b28gbXVjaCBkYXRhIHdoaWNoIG1heSBhZmZlY3QgeW91ciBBSSBzZXJ2aWNlIGxldmVsLlwiLCB7IHNhbXBsaW5nUmF0ZTogc2FtcGxlUmF0ZSB9LCB0cnVlKTtcclxuICAgICAgICAgICAgc2FtcGxlUmF0ZSA9IDEwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpc1tfRFlOX1NBTVBMRV9SQVRFIC8qIEBtaW46JTJlc2FtcGxlUmF0ZSAqL10gPSBzYW1wbGVSYXRlO1xyXG4gICAgICAgIHRoaXMuc2FtcGxpbmdTY29yZUdlbmVyYXRvciA9IG5ldyBTYW1wbGluZ1Njb3JlR2VuZXJhdG9yKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICogRGV0ZXJtaW5lcyBpZiBhbiBlbnZlbG9wZSBpcyBzYW1wbGVkIGluIChpLmUuIHdpbGwgYmUgc2VudCkgb3Igbm90IChpLmUuIHdpbGwgYmUgZHJvcHBlZCkuXHJcbiAgICAqL1xyXG4gICAgU2FtcGxlLnByb3RvdHlwZS5pc1NhbXBsZWRJbiA9IGZ1bmN0aW9uIChlbnZlbG9wZSkge1xyXG4gICAgICAgIHZhciBzYW1wbGluZ1BlcmNlbnRhZ2UgPSB0aGlzW19EWU5fU0FNUExFX1JBVEUgLyogQG1pbjolMmVzYW1wbGVSYXRlICovXTsgLy8gMCAtIDEwMFxyXG4gICAgICAgIHZhciBpc1NhbXBsZWRJbiA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChzYW1wbGluZ1BlcmNlbnRhZ2UgPT09IG51bGwgfHwgc2FtcGxpbmdQZXJjZW50YWdlID09PSB1bmRlZmluZWQgfHwgc2FtcGxpbmdQZXJjZW50YWdlID49IDEwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZW52ZWxvcGUuYmFzZVR5cGUgPT09IE1ldHJpY1tfRFlOX0RBVEFfVFlQRSAvKiBAbWluOiUyZWRhdGFUeXBlICovXSkge1xyXG4gICAgICAgICAgICAvLyBleGNsdWRlIE1ldHJpY0RhdGEgdGVsZW1ldHJ5IGZyb20gc2FtcGxpbmdcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzU2FtcGxlZEluID0gdGhpcy5zYW1wbGluZ1Njb3JlR2VuZXJhdG9yW19EWU5fR0VUX1NBTVBMSU5HX1NDT1JFIC8qIEBtaW46JTJlZ2V0U2FtcGxpbmdTY29yZSAqL10oZW52ZWxvcGUpIDwgc2FtcGxpbmdQZXJjZW50YWdlO1xyXG4gICAgICAgIHJldHVybiBpc1NhbXBsZWRJbjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gU2FtcGxlO1xyXG59KCkpO1xyXG5leHBvcnQgeyBTYW1wbGUgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2FtcGxlLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIENoYW5uZWwsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG52YXIgX2E7XHJcbmltcG9ydCB7IF9fYXNzaWduRm4gYXMgX19hc3NpZ24sIF9fZXh0ZW5kc0ZuIGFzIF9fZXh0ZW5kcyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtc2hpbXNcIjtcclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgQnJlZXplQ2hhbm5lbElkZW50aWZpZXIsIERFRkFVTFRfQlJFRVpFX0VORFBPSU5ULCBERUZBVUxUX0JSRUVaRV9QQVRILCBEaXNhYmxlZFByb3BlcnR5TmFtZSwgRXZlbnQsIEV4Y2VwdGlvbiwgTWV0cmljLCBQYWdlVmlldywgUGFnZVZpZXdQZXJmb3JtYW5jZSwgUHJvY2Vzc0xlZ2FjeSwgUmVtb3RlRGVwZW5kZW5jeURhdGEsIFJlcXVlc3RIZWFkZXJzLCBTYW1wbGVSYXRlLCBUcmFjZSwgaXNJbnRlcm5hbEFwcGxpY2F0aW9uSW5zaWdodHNFbmRwb2ludCwgdXRsQ2FuVXNlU2Vzc2lvblN0b3JhZ2UgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vblwiO1xyXG5pbXBvcnQgeyBCYXNlVGVsZW1ldHJ5UGx1Z2luLCBfdGhyb3dJbnRlcm5hbCwgX3dhcm5Ub0NvbnNvbGUsIGFyckZvckVhY2gsIGNyZWF0ZVVuaXF1ZU5hbWVzcGFjZSwgZGF0ZU5vdywgZHVtcE9iaiwgZ2V0RXhjZXB0aW9uTmFtZSwgZ2V0SUVWZXJzaW9uLCBnZXRKU09OLCBnZXROYXZpZ2F0b3IsIGdldFdpbmRvdywgaXNBcnJheSwgaXNCZWFjb25zU3VwcG9ydGVkLCBpc0ZldGNoU3VwcG9ydGVkLCBpc051bGxPclVuZGVmaW5lZCwgaXNYaHJTdXBwb3J0ZWQsIG1lcmdlRXZ0TmFtZXNwYWNlLCBvYmpGb3JFYWNoS2V5LCBvYmpLZXlzLCB1c2VYRG9tYWluUmVxdWVzdCB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBEZXBlbmRlbmN5RW52ZWxvcGVDcmVhdG9yLCBFdmVudEVudmVsb3BlQ3JlYXRvciwgRXhjZXB0aW9uRW52ZWxvcGVDcmVhdG9yLCBNZXRyaWNFbnZlbG9wZUNyZWF0b3IsIFBhZ2VWaWV3RW52ZWxvcGVDcmVhdG9yLCBQYWdlVmlld1BlcmZvcm1hbmNlRW52ZWxvcGVDcmVhdG9yLCBUcmFjZUVudmVsb3BlQ3JlYXRvciB9IGZyb20gXCIuL0VudmVsb3BlQ3JlYXRvclwiO1xyXG5pbXBvcnQgeyBjcmVhdGVPZmZsaW5lTGlzdGVuZXIgfSBmcm9tIFwiLi9PZmZsaW5lXCI7XHJcbmltcG9ydCB7IEFycmF5U2VuZEJ1ZmZlciwgU2Vzc2lvblN0b3JhZ2VTZW5kQnVmZmVyIH0gZnJvbSBcIi4vU2VuZEJ1ZmZlclwiO1xyXG5pbXBvcnQgeyBTZXJpYWxpemVyIH0gZnJvbSBcIi4vU2VyaWFsaXplclwiO1xyXG5pbXBvcnQgeyBTYW1wbGUgfSBmcm9tIFwiLi9UZWxlbWV0cnlQcm9jZXNzb3JzL1NhbXBsZVwiO1xyXG5pbXBvcnQgeyBfRFlOX0JBU0VfVFlQRSwgX0RZTl9CQVRDSF9QQVlMT0FEUywgX0RZTl9DTEVBUiwgX0RZTl9DTEVBUl9TRU5ULCBfRFlOX0NPTlZFUlRfVU5ERUZJTkVELCBfRFlOX0NPVU5ULCBfRFlOX0NVU1RPTV9IRUFERVJTLCBfRFlOX0RJQUdfTE9HLCBfRFlOX0RJU0FCTEVfSU5TVFJVTUVOVEFUNywgX0RZTl9ESVNBQkxFX1RFTEVNRVRSWSwgX0RZTl9ESVNBQkxFX1hIUiwgX0RZTl9FTUlUX0xJTkVfREVMSU1JVEVEXzAsIF9EWU5fRU5BQkxFX1NFU1NJT05fU1RPUkE0LCBfRFlOX0VORFBPSU5UX1VSTCwgX0RZTl9FTlFVRVVFLCBfRFlOX0VWRU5UU19TRU5EX1JFUVVFU1QsIF9EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSwgX0RZTl9JU19CRUFDT05fQVBJX0RJU0FCTDMsIF9EWU5fSVNfUkVUUllfRElTQUJMRUQsIF9EWU5fSVRFTVNfQUNDRVBURUQsIF9EWU5fSVRFTVNfUkVDRUlWRUQsIF9EWU5fTEVOR1RILCBfRFlOX01BUktfQVNfU0VOVCwgX0RZTl9NQVhfQkFUQ0hfSU5URVJWQUwsIF9EWU5fTUFYX0JBVENIX1NJWkVfSU5fQlkxLCBfRFlOX05BTUVfUFJFRklYLCBfRFlOX09OVU5MT0FEX0RJU0FCTEVfQkVBMiwgX0RZTl9PTlVOTE9BRF9ESVNBQkxFX0ZFVDUsIF9EWU5fUFVTSCwgX0RZTl9TQU1QTEVfUkFURSwgX0RZTl9TQU1QTElOR19QRVJDRU5UQUdFLCBfRFlOX1NFVF9SRVFVRVNUX0hFQURFUiwgX0RZTl9UQUdTLCBfRFlOX1RSSUdHRVJfU0VORCwgX0RZTl9fQlVGRkVSLCBfRFlOX19PTl9FUlJPUiwgX0RZTl9fT05fUEFSVElBTF9TVUNDRVNTLCBfRFlOX19PTl9TVUNDRVNTLCBfRFlOX19TRU5ERVIsIF9EWU5fX1NFTkRFUl9DT05GSUcsIF9EWU5fX1hIUl9SRUFEWV9TVEFURV9DSEE2IH0gZnJvbSBcIi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBGZXRjaFN5bmNSZXF1ZXN0U2l6ZUxpbWl0Qnl0ZXMgPSA2NTAwMDsgLy8gYXBwcm94IDY0a2IgKHRoZSBjdXJyZW50IEVkZ2UsIEZpcmVmb3ggYW5kIENocm9tZSBtYXggbGltaXQpXHJcbmZ1bmN0aW9uIF9nZXRSZXNwb25zZVRleHQoeGhyKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0O1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBCZXN0IGVmZm9ydCwgYXMgWEhSIG1heSB0aHJvdyB3aGlsZSBYRFIgd29udCBzbyBqdXN0IGlnbm9yZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuZnVuY3Rpb24gX2dldERlZmF1bHRBcHBJbnNpZ2h0c0NoYW5uZWxDb25maWcoKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICB2YXIgZGVmYXVsdFZhbHVlO1xyXG4gICAgdmFyIGRlZmF1bHRDdXN0b21IZWFkZXJzO1xyXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWVzXHJcbiAgICByZXR1cm4gX2EgPSB7XHJcbiAgICAgICAgICAgIGVuZHBvaW50VXJsOiBmdW5jdGlvbiAoKSB7IHJldHVybiBERUZBVUxUX0JSRUVaRV9FTkRQT0lOVCArIERFRkFVTFRfQlJFRVpFX1BBVEg7IH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIF9hW19EWU5fRU1JVF9MSU5FX0RFTElNSVRFRF8wIC8qIEBtaW46ZW1pdExpbmVEZWxpbWl0ZWRKc29uICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZhbHNlOyB9LFxyXG4gICAgICAgIF9hW19EWU5fTUFYX0JBVENIX0lOVEVSVkFMIC8qIEBtaW46bWF4QmF0Y2hJbnRlcnZhbCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiAxNTAwMDsgfSxcclxuICAgICAgICBfYVtfRFlOX01BWF9CQVRDSF9TSVpFX0lOX0JZMSAvKiBAbWluOm1heEJhdGNoU2l6ZUluQnl0ZXMgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gMTAyNDAwOyB9LFxyXG4gICAgICAgIF9hW19EWU5fRElTQUJMRV9URUxFTUVUUlkgLyogQG1pbjpkaXNhYmxlVGVsZW1ldHJ5ICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZhbHNlOyB9LFxyXG4gICAgICAgIF9hW19EWU5fRU5BQkxFX1NFU1NJT05fU1RPUkE0IC8qIEBtaW46ZW5hYmxlU2Vzc2lvblN0b3JhZ2VCdWZmZXIgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdHJ1ZTsgfSxcclxuICAgICAgICBfYVtfRFlOX0lTX1JFVFJZX0RJU0FCTEVEIC8qIEBtaW46aXNSZXRyeURpc2FibGVkICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZhbHNlOyB9LFxyXG4gICAgICAgIF9hW19EWU5fSVNfQkVBQ09OX0FQSV9ESVNBQkwzIC8qIEBtaW46aXNCZWFjb25BcGlEaXNhYmxlZCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0cnVlOyB9LFxyXG4gICAgICAgIF9hW19EWU5fRElTQUJMRV9YSFIgLyogQG1pbjpkaXNhYmxlWGhyICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZhbHNlOyB9LFxyXG4gICAgICAgIF9hW19EWU5fT05VTkxPQURfRElTQUJMRV9GRVQ1IC8qIEBtaW46b251bmxvYWREaXNhYmxlRmV0Y2ggKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0sXHJcbiAgICAgICAgX2FbX0RZTl9PTlVOTE9BRF9ESVNBQkxFX0JFQTIgLyogQG1pbjpvbnVubG9hZERpc2FibGVCZWFjb24gKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0sXHJcbiAgICAgICAgX2FbX0RZTl9JTlNUUlVNRU5UQVRJT05fS0VZIC8qIEBtaW46aW5zdHJ1bWVudGF0aW9uS2V5ICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfSxcclxuICAgICAgICBfYVtfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46bmFtZVByZWZpeCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0sXHJcbiAgICAgICAgX2FbX0RZTl9TQU1QTElOR19QRVJDRU5UQUdFIC8qIEBtaW46c2FtcGxpbmdQZXJjZW50YWdlICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDEwMDsgfSxcclxuICAgICAgICBfYVtfRFlOX0NVU1RPTV9IRUFERVJTIC8qIEBtaW46Y3VzdG9tSGVhZGVycyAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBkZWZhdWx0Q3VzdG9tSGVhZGVyczsgfSxcclxuICAgICAgICBfYVtfRFlOX0NPTlZFUlRfVU5ERUZJTkVEIC8qIEBtaW46Y29udmVydFVuZGVmaW5lZCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0sXHJcbiAgICAgICAgX2EuZXZlbnRzTGltaXRJbk1lbSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDEwMDAwOyB9LFxyXG4gICAgICAgIF9hO1xyXG59XHJcbnZhciBFbnZlbG9wZVR5cGVDcmVhdG9yID0gKF9hID0ge30sXHJcbiAgICBfYVtFdmVudC5kYXRhVHlwZV0gPSBFdmVudEVudmVsb3BlQ3JlYXRvcixcclxuICAgIF9hW1RyYWNlLmRhdGFUeXBlXSA9IFRyYWNlRW52ZWxvcGVDcmVhdG9yLFxyXG4gICAgX2FbUGFnZVZpZXcuZGF0YVR5cGVdID0gUGFnZVZpZXdFbnZlbG9wZUNyZWF0b3IsXHJcbiAgICBfYVtQYWdlVmlld1BlcmZvcm1hbmNlLmRhdGFUeXBlXSA9IFBhZ2VWaWV3UGVyZm9ybWFuY2VFbnZlbG9wZUNyZWF0b3IsXHJcbiAgICBfYVtFeGNlcHRpb24uZGF0YVR5cGVdID0gRXhjZXB0aW9uRW52ZWxvcGVDcmVhdG9yLFxyXG4gICAgX2FbTWV0cmljLmRhdGFUeXBlXSA9IE1ldHJpY0VudmVsb3BlQ3JlYXRvcixcclxuICAgIF9hW1JlbW90ZURlcGVuZGVuY3lEYXRhLmRhdGFUeXBlXSA9IERlcGVuZGVuY3lFbnZlbG9wZUNyZWF0b3IsXHJcbiAgICBfYSk7XHJcbnZhciBTZW5kZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoU2VuZGVyLCBfc3VwZXIpO1xyXG4gICAgZnVuY3Rpb24gU2VuZGVyKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XHJcbiAgICAgICAgX3RoaXMucHJpb3JpdHkgPSAxMDAxO1xyXG4gICAgICAgIF90aGlzLmlkZW50aWZpZXIgPSBCcmVlemVDaGFubmVsSWRlbnRpZmllcjtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBzZW5kZXIgaW5zdGFuY2VcclxuICAgICAgICAgKi9cclxuICAgICAgICBfdGhpcy5fc2VuZGVyQ29uZmlnID0gX2dldERlZmF1bHRBcHBJbnNpZ2h0c0NoYW5uZWxDb25maWcoKTtcclxuICAgICAgICAvLyBEb24ndCBzZXQgdGhlIGRlZmF1bHRzIGhlcmUsIHNldCB0aGVtIGluIHRoZSBfaW5pdERlZmF1bHRzKCkgYXMgdGhpcyBpcyBhbHNvIGNhbGxlZCBkdXJpbmcgdW5sb2FkXHJcbiAgICAgICAgdmFyIF9jb25zZWN1dGl2ZUVycm9yczsgLy8gSG93IG1hbnkgdGltZXMgaW4gYSByb3cgYSByZXRyeWFibGUgZXJyb3IgY29uZGl0aW9uIGhhcyBvY2N1cnJlZC5cclxuICAgICAgICB2YXIgX3JldHJ5QXQ7IC8vIFRoZSB0aW1lIHRvIHJldHJ5IGF0IGluIG1pbGxpc2Vjb25kcyBmcm9tIDE5NzAvMDEvMDEgKHRoaXMgbWFrZXMgdGhlIHRpbWVyIGNhbGN1bGF0aW9uIGVhc3kpLlxyXG4gICAgICAgIHZhciBfbGFzdFNlbmQ7IC8vIFRoZSB0aW1lIG9mIHRoZSBsYXN0IHNlbmQgb3BlcmF0aW9uLlxyXG4gICAgICAgIHZhciBfcGF1c2VkOyAvLyBGbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgc2VuZGluZyBzaG91bGQgYmUgcGF1c2VkXHJcbiAgICAgICAgdmFyIF90aW1lb3V0SGFuZGxlOyAvLyBIYW5kbGUgdG8gdGhlIHRpbWVyIGZvciBkZWxheWVkIHNlbmRpbmcgb2YgYmF0Y2hlcyBvZiBkYXRhLlxyXG4gICAgICAgIHZhciBfc2VyaWFsaXplcjtcclxuICAgICAgICB2YXIgX3N0YW1wX3NwZWNpZmljX3JlZGlyZWN0cztcclxuICAgICAgICB2YXIgX2hlYWRlcnM7XHJcbiAgICAgICAgdmFyIF9zeW5jRmV0Y2hQYXlsb2FkID0gMDsgLy8gS2VlcCB0cmFjayBvZiB0aGUgb3V0c3RhbmRpbmcgc3luYyBmZXRjaCBwYXlsb2FkIHRvdGFsIChhcyBzeW5jIGZldGNoIGhhcyBsaW1pdHMpXHJcbiAgICAgICAgdmFyIF9mYWxsYmFja1NlbmRlcjsgLy8gVGhlIHNlbmRlciB0byB1c2UgaWYgdGhlIHBheWxvYWQgc2l6ZSBpcyB0b28gbGFyZ2VcclxuICAgICAgICB2YXIgX3N5bmNVbmxvYWRTZW5kZXI7IC8vIFRoZSBpZGVudGlmaWVkIHNlbmRlciB0byB1c2UgZm9yIHRoZSBzeW5jaHJvbm91cyB1bmxvYWQgc3RhZ2VcclxuICAgICAgICB2YXIgX29mZmxpbmVMaXN0ZW5lcjtcclxuICAgICAgICB2YXIgX2V2dE5hbWVzcGFjZTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oU2VuZGVyLCBfdGhpcywgZnVuY3Rpb24gKF9zZWxmLCBfYmFzZSkge1xyXG4gICAgICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcbiAgICAgICAgICAgIF9zZWxmLnBhdXNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX2NsZWFyU2NoZWR1bGVkVGltZXIoKTtcclxuICAgICAgICAgICAgICAgIF9wYXVzZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5yZXN1bWUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX3BhdXNlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9wYXVzZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBfcmV0cnlBdCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZmx1c2ggaWYgd2UgaGF2ZSBleGNlZWRlZCB0aGUgbWF4LXNpemUgYWxyZWFkeVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfc2VsZi5fYnVmZmVyLnNpemUoKSA+IF9zZWxmLl9zZW5kZXJDb25maWdbX0RZTl9NQVhfQkFUQ0hfU0laRV9JTl9CWTEgLyogQG1pbjolMmVtYXhCYXRjaFNpemVJbkJ5dGVzICovXSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fVFJJR0dFUl9TRU5EIC8qIEBtaW46JTJldHJpZ2dlclNlbmQgKi9dKHRydWUsIG51bGwsIDEwIC8qIFNlbmRSZXF1ZXN0UmVhc29uLk1heEJhdGNoU2l6ZSAqLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIF9zZXR1cFRpbWVyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmZsdXNoID0gZnVuY3Rpb24gKGlzQXN5bmMsIGNhbGxCYWNrLCBzZW5kUmVhc29uKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNBc3luYyA9PT0gdm9pZCAwKSB7IGlzQXN5bmMgPSB0cnVlOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIV9wYXVzZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciB0aGUgbm9ybWFsIHNjaGVkdWxlIHRpbWVyIGFzIHdlIGFyZSBnb2luZyB0byB0cnkgYW5kIGZsdXNoIEFTQVBcclxuICAgICAgICAgICAgICAgICAgICBfY2xlYXJTY2hlZHVsZWRUaW1lcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fVFJJR0dFUl9TRU5EIC8qIEBtaW46JTJldHJpZ2dlclNlbmQgKi9dKGlzQXN5bmMsIG51bGwsIHNlbmRSZWFzb24gfHwgMSAvKiBTZW5kUmVxdWVzdFJlYXNvbi5NYW51YWxGbHVzaCAqLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDIyIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmx1c2hGYWlsZWQgKi8sIFwiZmx1c2ggZmFpbGVkLCB0ZWxlbWV0cnkgd2lsbCBub3QgYmUgY29sbGVjdGVkOiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYub251bmxvYWRGbHVzaCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghX3BhdXNlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoX3NlbGYuX3NlbmRlckNvbmZpZ1tfRFlOX09OVU5MT0FEX0RJU0FCTEVfQkVBMiAvKiBAbWluOiUyZW9udW5sb2FkRGlzYWJsZUJlYWNvbiAqL10oKSA9PT0gZmFsc2UgfHwgX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fSVNfQkVBQ09OX0FQSV9ESVNBQkwzIC8qIEBtaW46JTJlaXNCZWFjb25BcGlEaXNhYmxlZCAqL10oKSA9PT0gZmFsc2UpICYmIGlzQmVhY29uc1N1cHBvcnRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX1RSSUdHRVJfU0VORCAvKiBAbWluOiUyZXRyaWdnZXJTZW5kICovXSh0cnVlLCBfZG9VbmxvYWRTZW5kLCAyIC8qIFNlbmRSZXF1ZXN0UmVhc29uLlVubG9hZCAqLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDIwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkVG9TZW5kUXVldWVkVGVsZW1ldHJ5ICovLCBcImZhaWxlZCB0byBmbHVzaCB3aXRoIGJlYWNvbiBzZW5kZXIgb24gcGFnZSB1bmxvYWQsIHRlbGVtZXRyeSB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQ6IFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLmZsdXNoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5hZGRIZWFkZXIgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIF9oZWFkZXJzW25hbWVdID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmluaXRpYWxpemUgPSBmdW5jdGlvbiAoY29uZmlnLCBjb3JlLCBleHRlbnNpb25zLCBwbHVnaW5DaGFpbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9zZWxmLmlzSW5pdGlhbGl6ZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDI4IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU2VuZGVyTm90SW5pdGlhbGl6ZWQgKi8sIFwiU2VuZGVyIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWRcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfYmFzZS5pbml0aWFsaXplKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pO1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0eCA9IF9zZWxmLl9nZXRUZWxDdHgoKTtcclxuICAgICAgICAgICAgICAgIHZhciBpZGVudGlmaWVyID0gX3NlbGYuaWRlbnRpZmllcjtcclxuICAgICAgICAgICAgICAgIF9zZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIoY29yZS5sb2dnZXIpO1xyXG4gICAgICAgICAgICAgICAgX2NvbnNlY3V0aXZlRXJyb3JzID0gMDtcclxuICAgICAgICAgICAgICAgIF9yZXRyeUF0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9sYXN0U2VuZCA9IDA7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19TRU5ERVIgLyogQG1pbjolMmVfc2VuZGVyICovXSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfc3RhbXBfc3BlY2lmaWNfcmVkaXJlY3RzID0gMDtcclxuICAgICAgICAgICAgICAgIHZhciBkaWFnTG9nID0gX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICBfZXZ0TmFtZXNwYWNlID0gbWVyZ2VFdnROYW1lc3BhY2UoY3JlYXRlVW5pcXVlTmFtZXNwYWNlKFwiU2VuZGVyXCIpLCBjb3JlLmV2dE5hbWVzcGFjZSAmJiBjb3JlLmV2dE5hbWVzcGFjZSgpKTtcclxuICAgICAgICAgICAgICAgIF9vZmZsaW5lTGlzdGVuZXIgPSBjcmVhdGVPZmZsaW5lTGlzdGVuZXIoX2V2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBUT0RPIHYzLng6IENoYW5nZSB0aGUgSVNlbmRlckNvbmZpZyB0byBub3QgYmUgZnVuY3Rpb24gY2FsbHNcclxuICAgICAgICAgICAgICAgIHZhciBkZWZhdWx0Q29uZmlnID0gX2dldERlZmF1bHRBcHBJbnNpZ2h0c0NoYW5uZWxDb25maWcoKTtcclxuICAgICAgICAgICAgICAgIG9iakZvckVhY2hLZXkoZGVmYXVsdENvbmZpZywgZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtmaWVsZF0gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aGVWYWx1ZSA9IGN0eC5nZXRDb25maWcoaWRlbnRpZmllciwgZmllbGQsIHZhbHVlKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoZVZhbHVlICYmIGZpZWxkID09PSBcImVuZHBvaW50VXJsXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgZGVmYXVsdCB2YWx1ZSAoaGFuZGxlcyBlbXB0eSBzdHJpbmcgaW4gdGhlIGNvbmZpZ3VyYXRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVWYWx1ZSA9IHZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoZVZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLl9idWZmZXIgPSAoX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fRU5BQkxFX1NFU1NJT05fU1RPUkE0IC8qIEBtaW46JTJlZW5hYmxlU2Vzc2lvblN0b3JhZ2VCdWZmZXIgKi9dKCkgJiYgdXRsQ2FuVXNlU2Vzc2lvblN0b3JhZ2UoKSlcclxuICAgICAgICAgICAgICAgICAgICA/IG5ldyBTZXNzaW9uU3RvcmFnZVNlbmRCdWZmZXIoZGlhZ0xvZywgX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dKSA6IG5ldyBBcnJheVNlbmRCdWZmZXIoZGlhZ0xvZywgX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLl9zYW1wbGUgPSBuZXcgU2FtcGxlKF9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtfRFlOX1NBTVBMSU5HX1BFUkNFTlRBR0UgLyogQG1pbjolMmVzYW1wbGluZ1BlcmNlbnRhZ2UgKi9dKCksIGRpYWdMb2cpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfdmFsaWRhdGVJbnN0cnVtZW50YXRpb25LZXkoY29uZmlnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGRpYWdMb2csIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgMTAwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuSW52YWxpZEluc3RydW1lbnRhdGlvbktleSAqLywgXCJJbnZhbGlkIEluc3RydW1lbnRhdGlvbiBrZXkgXCIgKyBjb25maWdbX0RZTl9JTlNUUlVNRU5UQVRJT05fS0VZIC8qIEBtaW46JTJlaW5zdHJ1bWVudGF0aW9uS2V5ICovXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzSW50ZXJuYWxBcHBsaWNhdGlvbkluc2lnaHRzRW5kcG9pbnQoX3NlbGYuX3NlbmRlckNvbmZpZy5lbmRwb2ludFVybCgpKSAmJiBfc2VsZi5fc2VuZGVyQ29uZmlnLmN1c3RvbUhlYWRlcnMoKSAmJiBfc2VsZi5fc2VuZGVyQ29uZmlnLmN1c3RvbUhlYWRlcnMoKVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9DVVNUT01fSEVBREVSUyAvKiBAbWluOiUyZWN1c3RvbUhlYWRlcnMgKi9dKCksIGZ1bmN0aW9uIChjdXN0b21IZWFkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuYWRkSGVhZGVyKGN1c3RvbUhlYWRlci5oZWFkZXIsIGN1c3RvbUhlYWRlci52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgc2VuZGVyQ29uZmlnID0gX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dO1xyXG4gICAgICAgICAgICAgICAgdmFyIHNlbmRQb3N0RnVuYyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNlbmRlckNvbmZpZ1tfRFlOX0RJU0FCTEVfWEhSIC8qIEBtaW46JTJlZGlzYWJsZVhociAqL10oKSAmJiB1c2VYRG9tYWluUmVxdWVzdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VuZFBvc3RGdW5jID0gX3hkclNlbmRlcjsgLy8gSUUgOCBhbmQgOVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIXNlbmRlckNvbmZpZ1tfRFlOX0RJU0FCTEVfWEhSIC8qIEBtaW46JTJlZGlzYWJsZVhociAqL10oKSAmJiBpc1hoclN1cHBvcnRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VuZFBvc3RGdW5jID0gX3hoclNlbmRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghc2VuZFBvc3RGdW5jICYmIGlzRmV0Y2hTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRQb3N0RnVuYyA9IF9mZXRjaFNlbmRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBmYWxsYmFjayB0byBYSFJcclxuICAgICAgICAgICAgICAgIF9mYWxsYmFja1NlbmRlciA9IHNlbmRQb3N0RnVuYyB8fCBfeGhyU2VuZGVyO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFzZW5kZXJDb25maWdbX0RZTl9JU19CRUFDT05fQVBJX0RJU0FCTDMgLyogQG1pbjolMmVpc0JlYWNvbkFwaURpc2FibGVkICovXSgpICYmIGlzQmVhY29uc1N1cHBvcnRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29uZmlnIGlzIHNldCB0byBhbHdheXMgdXNlZCBiZWFjb24gc2VuZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRQb3N0RnVuYyA9IF9iZWFjb25TZW5kZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19TRU5ERVIgLyogQG1pbjolMmVfc2VuZGVyICovXSA9IHNlbmRQb3N0RnVuYyB8fCBfeGhyU2VuZGVyO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFzZW5kZXJDb25maWdbX0RZTl9PTlVOTE9BRF9ESVNBQkxFX0ZFVDUgLyogQG1pbjolMmVvbnVubG9hZERpc2FibGVGZXRjaCAqL10oKSAmJiBpc0ZldGNoU3VwcG9ydGVkKHRydWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IGFuZCB1c2UgdGhlIGZldGNoIHdpdGgga2VlcGFsaXZlXHJcbiAgICAgICAgICAgICAgICAgICAgX3N5bmNVbmxvYWRTZW5kZXIgPSBfZmV0Y2hLZWVwQWxpdmVTZW5kZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0JlYWNvbnNTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRyeSBhbmQgdXNlIHNlbmRCZWFjb25cclxuICAgICAgICAgICAgICAgICAgICBfc3luY1VubG9hZFNlbmRlciA9IF9iZWFjb25TZW5kZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICghc2VuZGVyQ29uZmlnW19EWU5fRElTQUJMRV9YSFIgLyogQG1pbjolMmVkaXNhYmxlWGhyICovXSgpICYmIHVzZVhEb21haW5SZXF1ZXN0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBfc3luY1VubG9hZFNlbmRlciA9IF94ZHJTZW5kZXI7IC8vIElFIDggYW5kIDlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzZW5kZXJDb25maWdbX0RZTl9ESVNBQkxFX1hIUiAvKiBAbWluOiUyZWRpc2FibGVYaHIgKi9dKCkgJiYgaXNYaHJTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zeW5jVW5sb2FkU2VuZGVyID0gX3hoclNlbmRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zeW5jVW5sb2FkU2VuZGVyID0gX2ZhbGxiYWNrU2VuZGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5wcm9jZXNzVGVsZW1ldHJ5ID0gZnVuY3Rpb24gKHRlbGVtZXRyeUl0ZW0sIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1DdHggPSBfc2VsZi5fZ2V0VGVsQ3R4KGl0ZW1DdHgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGRpYWdMb2dnZXIgPSBpdGVtQ3R4W19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBtYXN0ZXIgb2ZmIHN3aXRjaCBpcyBzZXQsIGRvbid0IHNlbmQgYW55IGRhdGFcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fRElTQUJMRV9URUxFTUVUUlkgLyogQG1pbjolMmVkaXNhYmxlVGVsZW1ldHJ5ICovXSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBzZW5kL3NhdmUgZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlIGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZWxlbWV0cnlJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGRpYWdMb2dnZXIsIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgNyAvKiBfZUludGVybmFsTWVzc2FnZUlkLkNhbm5vdFNlbmRFbXB0eVRlbGVtZXRyeSAqLywgXCJDYW5ub3Qgc2VuZCBlbXB0eSB0ZWxlbWV0cnlcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWRhdGUgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGVsZW1ldHJ5SXRlbS5iYXNlRGF0YSAmJiAhdGVsZW1ldHJ5SXRlbVtfRFlOX0JBU0VfVFlQRSAvKiBAbWluOiUyZWJhc2VUeXBlICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChkaWFnTG9nZ2VyLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDcwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuSW52YWxpZEV2ZW50ICovLCBcIkNhbm5vdCBzZW5kIHRlbGVtZXRyeSB3aXRob3V0IGJhc2VEYXRhIGFuZCBiYXNlVHlwZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRlbGVtZXRyeUl0ZW1bX0RZTl9CQVNFX1RZUEUgLyogQG1pbjolMmViYXNlVHlwZSAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZWxlbWV0cnlJdGVtW19EWU5fQkFTRV9UWVBFIC8qIEBtaW46JTJlYmFzZVR5cGUgKi9dID0gXCJFdmVudERhdGFcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5zdXJlIGEgc2VuZGVyIHdhcyBjb25zdHJ1Y3RlZFxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX3NlbGZbX0RZTl9fU0VOREVSIC8qIEBtaW46JTJlX3NlbmRlciAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoZGlhZ0xvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCAyOCAvKiBfZUludGVybmFsTWVzc2FnZUlkLlNlbmRlck5vdEluaXRpYWxpemVkICovLCBcIlNlbmRlciB3YXMgbm90IGluaXRpYWxpemVkXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoaXMgaXRlbSBzaG91bGQgYmUgc2FtcGxlZCBpbiwgZWxzZSBhZGQgc2FtcGxlUmF0ZSB0YWdcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIV9pc1NhbXBsZWRJbih0ZWxlbWV0cnlJdGVtKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJdGVtIGlzIHNhbXBsZWQgb3V0LCBkbyBub3Qgc2VuZCBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChkaWFnTG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgMzMgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5UZWxlbWV0cnlTYW1wbGVkQW5kTm90U2VudCAqLywgXCJUZWxlbWV0cnkgaXRlbSB3YXMgc2FtcGxlZCBvdXQgYW5kIG5vdCBzZW50XCIsIHsgU2FtcGxlUmF0ZTogX3NlbGYuX3NhbXBsZVtfRFlOX1NBTVBMRV9SQVRFIC8qIEBtaW46JTJlc2FtcGxlUmF0ZSAqL10gfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbGVtZXRyeUl0ZW1bU2FtcGxlUmF0ZV0gPSBfc2VsZi5fc2FtcGxlW19EWU5fU0FNUExFX1JBVEUgLyogQG1pbjolMmVzYW1wbGVSYXRlICovXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnZlcnRVbmRlZmluZWQgPSBfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9DT05WRVJUX1VOREVGSU5FRCAvKiBAbWluOiUyZWNvbnZlcnRVbmRlZmluZWQgKi9dKCkgfHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBhbiBlbnZlbG9wZSB0aGF0IEFwcGxpY2F0aW9uIEluc2lnaHRzIGVuZHBvaW50IGNhbiB1bmRlcnN0YW5kXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgaWtleSBvZiB0ZWxlbWV0cnkgaXMgcHJvdmlkZWQgYW5kIG5vdCBlbXB0eSwgZW52ZWxvcGUgd2lsbCB1c2UgdGhpcyBpS2V5IGluc3RlYWQgb2Ygc2VuZGVyQ29uZmlnIGlLZXlcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZGVmYXVsdEVudmVsb3BlSWtleSA9IHRlbGVtZXRyeUl0ZW0uaUtleSB8fCBfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9JTlNUUlVNRU5UQVRJT05fS0VZIC8qIEBtaW46JTJlaW5zdHJ1bWVudGF0aW9uS2V5ICovXSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBhaUVudmVsb3BlXzEgPSBTZW5kZXIuY29uc3RydWN0RW52ZWxvcGUodGVsZW1ldHJ5SXRlbSwgZGVmYXVsdEVudmVsb3BlSWtleSwgZGlhZ0xvZ2dlciwgY29udmVydFVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhaUVudmVsb3BlXzEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoZGlhZ0xvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCA0NyAvKiBfZUludGVybmFsTWVzc2FnZUlkLkNyZWF0ZUVudmVsb3BlRXJyb3IgKi8sIFwiVW5hYmxlIHRvIGNyZWF0ZSBhbiBBcHBJbnNpZ2h0cyBlbnZlbG9wZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZG9Ob3RTZW5kSXRlbV8xID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBmb3IgcnVubmluZyBpbiBsZWdhY3kgbW9kZSwgd2hlcmUgY3VzdG9tZXIgbWF5IGFscmVhZHkgaGF2ZSBhIGN1c3RvbSBpbml0aWFsaXplciBwcmVzZW50XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRlbGVtZXRyeUl0ZW1bX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL10gJiYgdGVsZW1ldHJ5SXRlbVtfRFlOX1RBR1MgLyogQG1pbjolMmV0YWdzICovXVtQcm9jZXNzTGVnYWN5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKHRlbGVtZXRyeUl0ZW1bX0RZTl9UQUdTIC8qIEBtaW46JTJldGFncyAqL11bUHJvY2Vzc0xlZ2FjeV0sIGZ1bmN0aW9uIChjYWxsQmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbEJhY2sgJiYgY2FsbEJhY2soYWlFbnZlbG9wZV8xKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9Ob3RTZW5kSXRlbV8xID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3dhcm5Ub0NvbnNvbGUoZGlhZ0xvZ2dlciwgXCJUZWxlbWV0cnkgcHJvY2Vzc29yIGNoZWNrIHJldHVybnMgZmFsc2VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2cgZXJyb3IgYnV0IGRvbnQgc3RvcCBleGVjdXRpbmcgcmVzdCBvZiB0aGUgdGVsZW1ldHJ5IGluaXRpYWxpemVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvTm90U2VuZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGRpYWdMb2dnZXIsIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgNjQgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5UZWxlbWV0cnlJbml0aWFsaXplckZhaWxlZCAqLywgXCJPbmUgb2YgdGVsZW1ldHJ5IGluaXRpYWxpemVycyBmYWlsZWQsIHRlbGVtZXRyeSBpdGVtIHdpbGwgbm90IGJlIHNlbnQ6IFwiICsgZ2V0RXhjZXB0aW9uTmFtZShlKSwgeyBleGNlcHRpb246IGR1bXBPYmooZSkgfSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGVsZW1ldHJ5SXRlbVtfRFlOX1RBR1MgLyogQG1pbjolMmV0YWdzICovXVtQcm9jZXNzTGVnYWN5XTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvTm90U2VuZEl0ZW1fMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGRvIG5vdCBzZW5kLCBubyBuZWVkIHRvIGV4ZWN1dGUgbmV4dCBwbHVnaW5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGluY29taW5nIHBheWxvYWQgaXMgdG9vIGxhcmdlLCB0cnVuY2F0ZSBpZiBuZWNlc3NhcnlcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcGF5bG9hZCA9IF9zZXJpYWxpemVyLnNlcmlhbGl6ZShhaUVudmVsb3BlXzEpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGZsdXNoIGlmIHdlIHdvdWxkIGV4Y2VlZCB0aGUgbWF4LXNpemUgbGltaXQgYnkgYWRkaW5nIHRoaXMgaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBidWZmZXIgPSBfc2VsZltfRFlOX19CVUZGRVIgLyogQG1pbjolMmVfYnVmZmVyICovXTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgYnVmZmVyU2l6ZSA9IGJ1ZmZlci5zaXplKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChidWZmZXJTaXplICsgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10pID4gX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fTUFYX0JBVENIX1NJWkVfSU5fQlkxIC8qIEBtaW46JTJlbWF4QmF0Y2hTaXplSW5CeXRlcyAqL10oKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX1RSSUdHRVJfU0VORCAvKiBAbWluOiUyZXRyaWdnZXJTZW5kICovXSh0cnVlLCBudWxsLCAxMCAvKiBTZW5kUmVxdWVzdFJlYXNvbi5NYXhCYXRjaFNpemUgKi8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBlbnF1ZXVlIHRoZSBwYXlsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyW19EWU5fRU5RVUVVRSAvKiBAbWluOiUyZWVucXVldWUgKi9dKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGVuc3VyZSBhbiBpbnZvY2F0aW9uIHRpbWVvdXQgaXMgc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgX3NldHVwVGltZXIoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoZGlhZ0xvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDEyIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkQWRkaW5nVGVsZW1ldHJ5VG9CdWZmZXIgKi8sIFwiRmFpbGVkIGFkZGluZyB0ZWxlbWV0cnkgdG8gdGhlIHNlbmRlcidzIGJ1ZmZlciwgc29tZSB0ZWxlbWV0cnkgd2lsbCBiZSBsb3N0OiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gaGFuZCBvZmYgdGhlIHRlbGVtZXRyeSBpdGVtIHRvIHRoZSBuZXh0IHBsdWdpblxyXG4gICAgICAgICAgICAgICAgX3NlbGYucHJvY2Vzc05leHQodGVsZW1ldHJ5SXRlbSwgaXRlbUN0eCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiB4aHIgc3RhdGUgY2hhbmdlc1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9fWEhSX1JFQURZX1NUQVRFX0NIQTYgLyogQG1pbjolMmVfeGhyUmVhZHlTdGF0ZUNoYW5nZSAqL10gPSBmdW5jdGlvbiAoeGhyLCBwYXlsb2FkLCBjb3VudE9mSXRlbXNJblBheWxvYWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9jaGVja1Jlc3BvbnNTdGF0dXMoeGhyLnN0YXR1cywgcGF5bG9hZCwgeGhyLnJlc3BvbnNlVVJMLCBjb3VudE9mSXRlbXNJblBheWxvYWQsIF9mb3JtYXRFcnJvck1lc3NhZ2VYaHIoeGhyKSwgX2dldFJlc3BvbnNlVGV4dCh4aHIpIHx8IHhoci5yZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBJbW1lZGlhdGVseSBzZW5kIGJ1ZmZlcmVkIGRhdGFcclxuICAgICAgICAgICAgICogQHBhcmFtIGFzeW5jIHtib29sZWFufSAtIEluZGljYXRlcyBpZiB0aGUgZXZlbnRzIHNob3VsZCBiZSBzZW50IGFzeW5jaHJvbm91c2x5XHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBmb3JjZWRTZW5kZXIge1NlbmRlckZ1bmN0aW9ufSAtIEluZGljYXRlcyB0aGUgZm9yY2VkU2VuZGVyLCB1bmRlZmluZWQgaWYgbm90IHBhc3NlZFxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9UUklHR0VSX1NFTkQgLyogQG1pbjolMmV0cmlnZ2VyU2VuZCAqL10gPSBmdW5jdGlvbiAoYXN5bmMsIGZvcmNlZFNlbmRlciwgc2VuZFJlYXNvbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFzeW5jID09PSB2b2lkIDApIHsgYXN5bmMgPSB0cnVlOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIV9wYXVzZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gX3NlbGZbX0RZTl9fQlVGRkVSIC8qIEBtaW46JTJlX2J1ZmZlciAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbmQgZGF0YSBvbmx5IGlmIGRpc2FibGVUZWxlbWV0cnkgaXMgZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9ESVNBQkxFX1RFTEVNRVRSWSAvKiBAbWluOiUyZWRpc2FibGVUZWxlbWV0cnkgKi9dKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWZmZXJbX0RZTl9DT1VOVCAvKiBAbWluOiUyZWNvdW50ICovXSgpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXlsb2FkID0gYnVmZmVyLmdldEl0ZW1zKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX25vdGlmeVNlbmRSZXF1ZXN0KHNlbmRSZWFzb24gfHwgMCAvKiBTZW5kUmVxdWVzdFJlYXNvbi5VbmRlZmluZWQgKi8sIGFzeW5jKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnZva2Ugc2VuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JjZWRTZW5kZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2VuZGVyLmNhbGwoX3RoaXMsIHBheWxvYWQsIGFzeW5jKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX1NFTkRFUiAvKiBAbWluOiUyZV9zZW5kZXIgKi9dKHBheWxvYWQsIGFzeW5jKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgbGFzdFNlbmQgdGltZSB0byBlbmFibGUgdGhyb3R0bGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2xhc3RTZW5kID0gK25ldyBEYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW19EWU5fQ0xFQVIgLyogQG1pbjolMmVjbGVhciAqL10oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfY2xlYXJTY2hlZHVsZWRUaW1lcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZ25vcmUgdGhpcyBlcnJvciBmb3IgSUUgdW5kZXIgdjEwICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpZVZlciA9IGdldElFVmVyc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWllVmVyIHx8IGllVmVyID4gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgNDAgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5UcmFuc21pc3Npb25GYWlsZWQgKi8sIFwiVGVsZW1ldHJ5IHRyYW5zbWlzc2lvbiBmYWlsZWQsIHNvbWUgdGVsZW1ldHJ5IHdpbGwgYmUgbG9zdDogXCIgKyBnZXRFeGNlcHRpb25OYW1lKGUpLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuX2RvVGVhcmRvd24gPSBmdW5jdGlvbiAodW5sb2FkQ3R4LCB1bmxvYWRTdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGYub251bmxvYWRGbHVzaCgpO1xyXG4gICAgICAgICAgICAgICAgX29mZmxpbmVMaXN0ZW5lci51bmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIGVycm9yIGhhbmRsZXJcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fX09OX0VSUk9SIC8qIEBtaW46JTJlX29uRXJyb3IgKi9dID0gZnVuY3Rpb24gKHBheWxvYWQsIG1lc3NhZ2UsIGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDI2IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuT25FcnJvciAqLywgXCJGYWlsZWQgdG8gc2VuZCB0ZWxlbWV0cnkuXCIsIHsgbWVzc2FnZTogbWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLl9idWZmZXJbX0RZTl9DTEVBUl9TRU5UIC8qIEBtaW46JTJlY2xlYXJTZW50ICovXShwYXlsb2FkKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIHBhcnRpYWwgc3VjY2VzcyBoYW5kbGVyXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX19PTl9QQVJUSUFMX1NVQ0NFU1MgLyogQG1pbjolMmVfb25QYXJ0aWFsU3VjY2VzcyAqL10gPSBmdW5jdGlvbiAocGF5bG9hZCwgcmVzdWx0cykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGZhaWxlZCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJldHJ5ID0gW107XHJcbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHJldmVyc2VkIGFycmF5IG9mIGVycm9ycyBzbyB0aGF0IHNwbGljaW5nIGRvZXNuJ3QgaGF2ZSBpbnZhbGlkIGluZGV4ZXMgYWZ0ZXIgdGhlIGZpcnN0IGl0ZW0uXHJcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3JzID0gcmVzdWx0cy5lcnJvcnMucmV2ZXJzZSgpO1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBlcnJvcnNfMSA9IGVycm9yczsgX2kgPCBlcnJvcnNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBlcnJvcnNfMVtfaV07XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV4dHJhY3RlZCA9IHBheWxvYWQuc3BsaWNlKGVycm9yLmluZGV4LCAxKVswXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2lzUmV0cmlhYmxlKGVycm9yLnN0YXR1c0NvZGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5W19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKGV4dHJhY3RlZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGwgb3RoZXIgZXJyb3JzLCBpbmNsdWRpbmc6IDQwMiAoTW9udGhseSBxdW90YSBleGNlZWRlZCkgYW5kIDQzOSAoVG9vIG1hbnkgcmVxdWVzdHMgYW5kIHJlZnJlc2ggY2FjaGUpLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10oZXh0cmFjdGVkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9fT05fU1VDQ0VTUyAvKiBAbWluOiUyZV9vblN1Y2Nlc3MgKi9dKHBheWxvYWQsIHJlc3VsdHNbX0RZTl9JVEVNU19BQ0NFUFRFRCAvKiBAbWluOiUyZWl0ZW1zQWNjZXB0ZWQgKi9dKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmYWlsZWRbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX09OX0VSUk9SIC8qIEBtaW46JTJlX29uRXJyb3IgKi9dKGZhaWxlZCwgX2Zvcm1hdEVycm9yTWVzc2FnZVhocihudWxsLCBbXCJwYXJ0aWFsIHN1Y2Nlc3NcIiwgcmVzdWx0c1tfRFlOX0lURU1TX0FDQ0VQVEVEIC8qIEBtaW46JTJlaXRlbXNBY2NlcHRlZCAqL10sIFwib2ZcIiwgcmVzdWx0cy5pdGVtc1JlY2VpdmVkXS5qb2luKFwiIFwiKSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHJldHJ5W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBfcmVzZW5kUGF5bG9hZChyZXRyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA0MCAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRyYW5zbWlzc2lvbkZhaWxlZCAqLywgXCJQYXJ0aWFsIHN1Y2Nlc3MuIFwiICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJEZWxpdmVyZWQ6IFwiICsgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gKyBcIiwgRmFpbGVkOiBcIiArIGZhaWxlZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4gV2lsbCByZXRyeSB0byBzZW5kIFwiICsgcmV0cnlbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dICsgXCIgb3VyIG9mIFwiICsgcmVzdWx0c1tfRFlOX0lURU1TX1JFQ0VJVkVEIC8qIEBtaW46JTJlaXRlbXNSZWNlaXZlZCAqL10gKyBcIiBpdGVtc1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIHN1Y2Nlc3MgaGFuZGxlclxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9fT05fU1VDQ0VTUyAvKiBAbWluOiUyZV9vblN1Y2Nlc3MgKi9dID0gZnVuY3Rpb24gKHBheWxvYWQsIGNvdW50T2ZJdGVtc0luUGF5bG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuX2J1ZmZlcltfRFlOX0NMRUFSX1NFTlQgLyogQG1pbjolMmVjbGVhclNlbnQgKi9dKHBheWxvYWQpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogeGRyIHN0YXRlIGNoYW5nZXNcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLl94ZHJPbkxvYWQgPSBmdW5jdGlvbiAoeGRyLCBwYXlsb2FkKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2VUZXh0ID0gX2dldFJlc3BvbnNlVGV4dCh4ZHIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHhkciAmJiAocmVzcG9uc2VUZXh0ICsgXCJcIiA9PT0gXCIyMDBcIiB8fCByZXNwb25zZVRleHQgPT09IFwiXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2NvbnNlY3V0aXZlRXJyb3JzID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19PTl9TVUNDRVNTIC8qIEBtaW46JTJlX29uU3VjY2VzcyAqL10ocGF5bG9hZCwgMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IF9wYXJzZVJlc3BvbnNlKHJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5pdGVtc1JlY2VpdmVkICYmIHJlc3VsdHMuaXRlbXNSZWNlaXZlZCA+IHJlc3VsdHNbX0RZTl9JVEVNU19BQ0NFUFRFRCAvKiBAbWluOiUyZWl0ZW1zQWNjZXB0ZWQgKi9dXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmICFfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9JU19SRVRSWV9ESVNBQkxFRCAvKiBAbWluOiUyZWlzUmV0cnlEaXNhYmxlZCAqL10oKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19PTl9QQVJUSUFMX1NVQ0NFU1MgLyogQG1pbjolMmVfb25QYXJ0aWFsU3VjY2VzcyAqL10ocGF5bG9hZCwgcmVzdWx0cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19PTl9FUlJPUiAvKiBAbWluOiUyZV9vbkVycm9yICovXShwYXlsb2FkLCBfZm9ybWF0RXJyb3JNZXNzYWdlWGRyKHhkcikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZnVuY3Rpb24gX2lzU2FtcGxlZEluKGVudmVsb3BlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX3NlbGYuX3NhbXBsZS5pc1NhbXBsZWRJbihlbnZlbG9wZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2NoZWNrUmVzcG9uc1N0YXR1cyhzdGF0dXMsIHBheWxvYWQsIHJlc3BvbnNlVXJsLCBjb3VudE9mSXRlbXNJblBheWxvYWQsIGVycm9yTWVzc2FnZSwgcmVzKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfc2VsZi5fYXBwSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IF9wYXJzZVJlc3BvbnNlKHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmFwcElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLl9hcHBJZCA9IHJlc3BvbnNlLmFwcElkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICgoc3RhdHVzIDwgMjAwIHx8IHN0YXR1cyA+PSAzMDApICYmIHN0YXR1cyAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBFbmQgUG9pbnQgdXJsIGlmIHBlcm1hbmVudCByZWRpcmVjdCBvciBtb3ZlZCBwZXJtYW5lbnRseVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZXMgdGhlIGVuZCBwb2ludCB1cmwgYmVmb3JlIHJldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gMzAxIHx8IHN0YXR1cyA9PT0gMzA3IHx8IHN0YXR1cyA9PT0gMzA4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghX2NoZWNrQW5kVXBkYXRlRW5kUG9pbnRVcmwocmVzcG9uc2VVcmwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19PTl9FUlJPUiAvKiBAbWluOiUyZV9vbkVycm9yICovXShwYXlsb2FkLCBlcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fSVNfUkVUUllfRElTQUJMRUQgLyogQG1pbjolMmVpc1JldHJ5RGlzYWJsZWQgKi9dKCkgJiYgX2lzUmV0cmlhYmxlKHN0YXR1cykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Jlc2VuZFBheWxvYWQocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgNDAgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5UcmFuc21pc3Npb25GYWlsZWQgKi8sIFwiLiBcIiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlJlc3BvbnNlIGNvZGUgXCIgKyBzdGF0dXMgKyBcIi4gV2lsbCByZXRyeSB0byBzZW5kIFwiICsgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gKyBcIiBpdGVtcy5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19PTl9FUlJPUiAvKiBAbWluOiUyZV9vbkVycm9yICovXShwYXlsb2FkLCBlcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9vZmZsaW5lTGlzdGVuZXIgJiYgIV9vZmZsaW5lTGlzdGVuZXIuaXNPbmxpbmUoKSkgeyAvLyBvZmZsaW5lXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogRG9uJ3QgY2hlY2sgZm9yIHN0YXR1cyA9PSAwLCBzaW5jZSBhZGJsb2NrIGdpdmVzIHRoaXMgY29kZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fSVNfUkVUUllfRElTQUJMRUQgLyogQG1pbjolMmVpc1JldHJ5RGlzYWJsZWQgKi9dKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9mZmxpbmVCYWNrT2ZmTXVsdGlwbGllciA9IDEwOyAvLyBhcmJyaXRyYXJ5IG51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfcmVzZW5kUGF5bG9hZChwYXlsb2FkLCBvZmZsaW5lQmFja09mZk11bHRpcGxpZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDQwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuVHJhbnNtaXNzaW9uRmFpbGVkICovLCBcIi4gT2ZmbGluZSAtIFJlc3BvbnNlIENvZGU6IFwiLmNvbmNhdChzdGF0dXMsIFwiLiBPZmZsaW5lIHN0YXR1czogXCIpLmNvbmNhdCghX29mZmxpbmVMaXN0ZW5lci5pc09ubGluZSgpLCBcIi4gV2lsbCByZXRyeSB0byBzZW5kIFwiKS5jb25jYXQocGF5bG9hZC5sZW5ndGgsIFwiIGl0ZW1zLlwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHhocidzIHJlc3BvbnNlVVJMIG9yIGZldGNoJ3MgcmVzcG9uc2UudXJsIGlzIHNhbWUgYXMgZW5kcG9pbnQgdXJsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyBhZnRlciAxMCByZWRpcmVjdHMgZm9yY2Ugc2VuZCB0ZWxlbWV0cnkgd2l0aCAncmVkaXJlY3Q9ZmFsc2UnIGFzIHF1ZXJ5IHBhcmFtZXRlci5cclxuICAgICAgICAgICAgICAgICAgICBfY2hlY2tBbmRVcGRhdGVFbmRQb2ludFVybChyZXNwb25zZVVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gMjA2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gX3BhcnNlUmVzcG9uc2UocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgIV9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtfRFlOX0lTX1JFVFJZX0RJU0FCTEVEIC8qIEBtaW46JTJlaXNSZXRyeURpc2FibGVkICovXSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19PTl9QQVJUSUFMX1NVQ0NFU1MgLyogQG1pbjolMmVfb25QYXJ0aWFsU3VjY2VzcyAqL10ocGF5bG9hZCwgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9fT05fRVJST1IgLyogQG1pbjolMmVfb25FcnJvciAqL10ocGF5bG9hZCwgZXJyb3JNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2NvbnNlY3V0aXZlRXJyb3JzID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9fT05fU1VDQ0VTUyAvKiBAbWluOiUyZV9vblN1Y2Nlc3MgKi9dKHBheWxvYWQsIGNvdW50T2ZJdGVtc0luUGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9jaGVja0FuZFVwZGF0ZUVuZFBvaW50VXJsKHJlc3BvbnNlVXJsKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBNYXhpbXVtIHN0YW1wIHNwZWNpZmljIHJlZGlyZWN0cyBhbGxvd2VkKHVuY29tbWVudCB0aGlzIHdoZW4gYnJlZXplIGlzIHJlYWR5IHdpdGggbm90IGFsbG93aW5nIHJlZGlyZWN0cyBmZWF0dXJlKVxyXG4gICAgICAgICAgICAgICAgaWYgKF9zdGFtcF9zcGVjaWZpY19yZWRpcmVjdHMgPj0gMTApIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgX3NlbGYuX3NlbmRlckNvbmZpZy5lbmRwb2ludFVybCA9ICgpID0+IFNlbmRlci5fZ2V0RGVmYXVsdEFwcEluc2lnaHRzQ2hhbm5lbENvbmZpZygpLmVuZHBvaW50VXJsKCkrXCIvP3JlZGlyZWN0PWZhbHNlXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gIF9zdGFtcF9zcGVjaWZpY19yZWRpcmVjdHMgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQocmVzcG9uc2VVcmwpICYmIHJlc3BvbnNlVXJsICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlVXJsICE9PSBfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9FTkRQT0lOVF9VUkwgLyogQG1pbjolMmVlbmRwb2ludFVybCAqL10oKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19TRU5ERVJfQ09ORklHIC8qIEBtaW46JTJlX3NlbmRlckNvbmZpZyAqL11bX0RZTl9FTkRQT0lOVF9VUkwgLyogQG1pbjolMmVlbmRwb2ludFVybCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZXNwb25zZVVybDsgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKytfc3RhbXBfc3BlY2lmaWNfcmVkaXJlY3RzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2RvVW5sb2FkU2VuZChwYXlsb2FkLCBpc0FzeW5jKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX3N5bmNVbmxvYWRTZW5kZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgdW5sb2FkaW5nIHNvIGFsd2F5cyBjYWxsIHRoZSBzZW5kZXIgd2l0aCBzeW5jIHNldCB0byBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIF9zeW5jVW5sb2FkU2VuZGVyKHBheWxvYWQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBwcmV2aW91cyBiZWFjb24gU2VuZGVyICh3aGljaCBjYXVzZXMgYSBDT1JCIHdhcm5pbmcgb24gY2hyb21lIG5vdylcclxuICAgICAgICAgICAgICAgICAgICBfYmVhY29uU2VuZGVyKHBheWxvYWQsIGlzQXN5bmMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9kb0JlYWNvblNlbmQocGF5bG9hZCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG5hdiA9IGdldE5hdmlnYXRvcigpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IF9zZWxmW19EWU5fX0JVRkZFUiAvKiBAbWluOiUyZV9idWZmZXIgKi9dO1xyXG4gICAgICAgICAgICAgICAgdmFyIHVybCA9IF9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtfRFlOX0VORFBPSU5UX1VSTCAvKiBAbWluOiUyZWVuZHBvaW50VXJsICovXSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJhdGNoID0gX3NlbGYuX2J1ZmZlcltfRFlOX0JBVENIX1BBWUxPQURTIC8qIEBtaW46JTJlYmF0Y2hQYXlsb2FkcyAqL10ocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAvLyBDaHJvbWUgb25seSBhbGxvd3MgQ09SUy1zYWZlbGlzdGVkIHZhbHVlcyBmb3IgdGhlIHNlbmRCZWFjb24gZGF0YSBhcmd1bWVudFxyXG4gICAgICAgICAgICAgICAgLy8gc2VlOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD03MjAyODNcclxuICAgICAgICAgICAgICAgIHZhciBwbGFpblRleHRCYXRjaCA9IG5ldyBCbG9iKFtiYXRjaF0sIHsgdHlwZTogXCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThcIiB9KTtcclxuICAgICAgICAgICAgICAgIC8vIFRoZSBzZW5kQmVhY29uIG1ldGhvZCByZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgYWdlbnQgaXMgYWJsZSB0byBzdWNjZXNzZnVsbHkgcXVldWUgdGhlIGRhdGEgZm9yIHRyYW5zZmVyLiBPdGhlcndpc2UgaXQgcmV0dXJucyBmYWxzZS5cclxuICAgICAgICAgICAgICAgIHZhciBxdWV1ZWQgPSBuYXYuc2VuZEJlYWNvbih1cmwsIHBsYWluVGV4dEJhdGNoKTtcclxuICAgICAgICAgICAgICAgIGlmIChxdWV1ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBidWZmZXJbX0RZTl9NQVJLX0FTX1NFTlQgLyogQG1pbjolMmVtYXJrQXNTZW50ICovXShwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBubyByZXNwb25zZSBmcm9tIGJlYWNvblNlbmRlciwgY2xlYXIgYnVmZmVyXHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYuX29uU3VjY2VzcyhwYXlsb2FkLCBwYXlsb2FkW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcXVldWVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTZW5kIEJlYWNvbiBBUEkgcmVxdWVzdFxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZCB7c3RyaW5nfSAtIFRoZSBkYXRhIHBheWxvYWQgdG8gYmUgc2VudC5cclxuICAgICAgICAgICAgICogQHBhcmFtIGlzQXN5bmMge2Jvb2xlYW59IC0gbm90IHVzZWRcclxuICAgICAgICAgICAgICogTm90ZTogQmVhY29uIEFQSSBkb2VzIG5vdCBzdXBwb3J0IGN1c3RvbSBoZWFkZXJzIGFuZCB3ZSBhcmUgbm90IGFibGUgdG8gZ2V0XHJcbiAgICAgICAgICAgICAqIGFwcElkIGZyb20gdGhlIGJhY2tlbmQgZm9yIHRoZSBjb3JyZWN0IGNvcnJlbGF0aW9uLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2JlYWNvblNlbmRlcihwYXlsb2FkLCBpc0FzeW5jKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShwYXlsb2FkKSAmJiBwYXlsb2FkW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc2VuZEJlYWNvbiBtZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIGFnZW50IGlzIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IHF1ZXVlIHRoZSBkYXRhIGZvciB0cmFuc2Zlci4gT3RoZXJ3aXNlIGl0IHJldHVybnMgZmFsc2UuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfZG9CZWFjb25TZW5kKHBheWxvYWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhaWxlZCB0byBzZW5kIGVudGlyZSBwYXlsb2FkIHNvIHRyeSBhbmQgc3BsaXQgZGF0YSBhbmQgdHJ5IHRvIHNlbmQgYXMgbXVjaCBldmVudHMgYXMgcG9zc2libGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRyb3BwZWRQYXlsb2FkID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGxwID0gMDsgbHAgPCBwYXlsb2FkW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTsgbHArKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRoZVBheWxvYWQgPSBwYXlsb2FkW2xwXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghX2RvQmVhY29uU2VuZChbdGhlUGF5bG9hZF0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuJ3Qgc2VuZCBhbnltb3JlLCBzbyBzcGxpdCB0aGUgYmF0Y2ggYW5kIGRyb3AgdGhlIHJlc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wcGVkUGF5bG9hZFtfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXSh0aGVQYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZHJvcHBlZFBheWxvYWRbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZhbGxiYWNrU2VuZGVyICYmIF9mYWxsYmFja1NlbmRlcihkcm9wcGVkUGF5bG9hZCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDQwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuVHJhbnNtaXNzaW9uRmFpbGVkICovLCBcIi4gXCIgKyBcIkZhaWxlZCB0byBzZW5kIHRlbGVtZXRyeSB3aXRoIEJlYWNvbiBBUEksIHJldHJpZWQgd2l0aCBub3JtYWwgc2VuZGVyLlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU2VuZCBYTUxIdHRwUmVxdWVzdFxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZCB7c3RyaW5nfSAtIFRoZSBkYXRhIHBheWxvYWQgdG8gYmUgc2VudC5cclxuICAgICAgICAgICAgICogQHBhcmFtIGlzQXN5bmMge2Jvb2xlYW59IC0gSW5kaWNhdGVzIGlmIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzZW50IGFzeW5jaHJvbm91c2x5XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfeGhyU2VuZGVyKHBheWxvYWQsIGlzQXN5bmMpIHtcclxuICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgICAgICAgICAgIHZhciBlbmRQb2ludFVybCA9IF9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtfRFlOX0VORFBPSU5UX1VSTCAvKiBAbWluOiUyZWVuZHBvaW50VXJsICovXSgpO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICB4aHJbRGlzYWJsZWRQcm9wZXJ0eU5hbWVdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IGhhcyBsb2NrZWQgZG93biB0aGUgWE1MSHR0cFJlcXVlc3QgKHByZXZlbnRFeHRlbnNpb25zIGFuZC9vciBmcmVlemUpLCB0aGlzIHdvdWxkXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2F1c2UgdGhlIHJlcXVlc3QgdG8gZmFpbCBhbmQgd2Ugbm8gdGVsZW1ldHJ5IHdvdWxkIGJlIHNlbnRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHhoci5vcGVuKFwiUE9TVFwiLCBlbmRQb2ludFVybCwgaXNBc3luYyk7XHJcbiAgICAgICAgICAgICAgICB4aHJbX0RZTl9TRVRfUkVRVUVTVF9IRUFERVIgLyogQG1pbjolMmVzZXRSZXF1ZXN0SGVhZGVyICovXShcIkNvbnRlbnQtdHlwZVwiLCBcImFwcGxpY2F0aW9uL2pzb25cIik7XHJcbiAgICAgICAgICAgICAgICAvLyBhcHBlbmQgU2RrLUNvbnRleHQgcmVxdWVzdCBoZWFkZXIgb25seSBpbiBjYXNlIG9mIGJyZWV6ZSBlbmRwb2ludFxyXG4gICAgICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxBcHBsaWNhdGlvbkluc2lnaHRzRW5kcG9pbnQoZW5kUG9pbnRVcmwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeGhyW19EWU5fU0VUX1JFUVVFU1RfSEVBREVSIC8qIEBtaW46JTJlc2V0UmVxdWVzdEhlYWRlciAqL10oUmVxdWVzdEhlYWRlcnNbNiAvKiBlUmVxdWVzdEhlYWRlcnMuc2RrQ29udGV4dEhlYWRlciAqL10sIFJlcXVlc3RIZWFkZXJzWzcgLyogZVJlcXVlc3RIZWFkZXJzLnNka0NvbnRleHRIZWFkZXJBcHBJZFJlcXVlc3QgKi9dKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFyckZvckVhY2gob2JqS2V5cyhfaGVhZGVycyksIGZ1bmN0aW9uIChoZWFkZXJOYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeGhyW19EWU5fU0VUX1JFUVVFU1RfSEVBREVSIC8qIEBtaW46JTJlc2V0UmVxdWVzdEhlYWRlciAqL10oaGVhZGVyTmFtZSwgX2hlYWRlcnNbaGVhZGVyTmFtZV0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gX3NlbGYuX3hoclJlYWR5U3RhdGVDaGFuZ2UoeGhyLCBwYXlsb2FkLCBwYXlsb2FkW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSk7IH07XHJcbiAgICAgICAgICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uIChldmVudCkgeyByZXR1cm4gX3NlbGZbX0RZTl9fT05fRVJST1IgLyogQG1pbjolMmVfb25FcnJvciAqL10ocGF5bG9hZCwgX2Zvcm1hdEVycm9yTWVzc2FnZVhocih4aHIpLCBldmVudCk7IH07XHJcbiAgICAgICAgICAgICAgICAvLyBjb21wb3NlIGFuIGFycmF5IG9mIHBheWxvYWRzXHJcbiAgICAgICAgICAgICAgICB2YXIgYmF0Y2ggPSBfc2VsZi5fYnVmZmVyW19EWU5fQkFUQ0hfUEFZTE9BRFMgLyogQG1pbjolMmViYXRjaFBheWxvYWRzICovXShwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIHhoci5zZW5kKGJhdGNoKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLl9idWZmZXJbX0RZTl9NQVJLX0FTX1NFTlQgLyogQG1pbjolMmVtYXJrQXNTZW50ICovXShwYXlsb2FkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hLZWVwQWxpdmVTZW5kZXIocGF5bG9hZCwgaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkocGF5bG9hZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcGF5bG9hZFNpemUgPSBwYXlsb2FkW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBscCA9IDA7IGxwIDwgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL107IGxwKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZFNpemUgKz0gcGF5bG9hZFtscF1bX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoKF9zeW5jRmV0Y2hQYXlsb2FkICsgcGF5bG9hZFNpemUpIDw9IEZldGNoU3luY1JlcXVlc3RTaXplTGltaXRCeXRlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfZG9GZXRjaFNlbmRlcihwYXlsb2FkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzQmVhY29uc1N1cHBvcnRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIGJlYWNvbiBzZW5kZXIgYXMgd2UgYXQgbGVhc3QgZ2V0IHRvbGQgd2hpY2ggZXZlbnRzIGNhbid0IGJlIHNjaGVkdWxlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYmVhY29uU2VuZGVyKHBheWxvYWQsIGlzQXN5bmMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGF5bG9hZCBpcyBnb2luZyB0byBiZSB0b28gYmlnIHNvIGp1c3QgdHJ5IGFuZCBzZW5kIHZpYSBYSFJcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2ZhbGxiYWNrU2VuZGVyICYmIF9mYWxsYmFja1NlbmRlcihwYXlsb2FkLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX3NlbGZbX0RZTl9ESUFHX0xPRyAvKiBAbWluOiUyZWRpYWdMb2cgKi9dKCksIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA0MCAvKiBfZUludGVybmFsTWVzc2FnZUlkLlRyYW5zbWlzc2lvbkZhaWxlZCAqLywgXCIuIFwiICsgXCJGYWlsZWQgdG8gc2VuZCB0ZWxlbWV0cnkgd2l0aCBCZWFjb24gQVBJLCByZXRyaWVkIHdpdGggeGhyU2VuZGVyLlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFNlbmQgZmV0Y2ggQVBJIHJlcXVlc3RcclxuICAgICAgICAgICAgICogQHBhcmFtIHBheWxvYWQge3N0cmluZ30gLSBUaGUgZGF0YSBwYXlsb2FkIHRvIGJlIHNlbnQuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBpc0FzeW5jIHtib29sZWFufSAtIG5vdCB1c2VkXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hTZW5kZXIocGF5bG9hZCwgaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgX2RvRmV0Y2hTZW5kZXIocGF5bG9hZCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFNlbmQgZmV0Y2ggQVBJIHJlcXVlc3RcclxuICAgICAgICAgICAgICogQHBhcmFtIHBheWxvYWQge3N0cmluZ30gLSBUaGUgZGF0YSBwYXlsb2FkIHRvIGJlIHNlbnQuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBpc0FzeW5jIHtib29sZWFufSAtIEZvciBmZXRjaCB0aGlzIGlkZW50aWZpZXMgd2hldGhlciB3ZSBhcmUgXCJ1bmxvYWRpbmdcIiAoZmFsc2UpIG9yIGEgbm9ybWFsIHJlcXVlc3RcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9kb0ZldGNoU2VuZGVyKHBheWxvYWQsIGlzQXN5bmMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIHZhciBlbmRQb2ludFVybCA9IF9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtfRFlOX0VORFBPSU5UX1VSTCAvKiBAbWluOiUyZWVuZHBvaW50VXJsICovXSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJhdGNoID0gX3NlbGYuX2J1ZmZlcltfRFlOX0JBVENIX1BBWUxPQURTIC8qIEBtaW46JTJlYmF0Y2hQYXlsb2FkcyAqL10ocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgcGxhaW5UZXh0QmF0Y2ggPSBuZXcgQmxvYihbYmF0Y2hdLCB7IHR5cGU6IFwiYXBwbGljYXRpb24vanNvblwiIH0pO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlcXVlc3RIZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcclxuICAgICAgICAgICAgICAgIHZhciBiYXRjaExlbmd0aCA9IGJhdGNoW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgICAgICAgICAgICAgIHZhciBpZ25vcmVSZXNwb25zZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlSGFuZGxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy8gYXBwZW5kIFNkay1Db250ZXh0IHJlcXVlc3QgaGVhZGVyIG9ubHkgaW4gY2FzZSBvZiBicmVlemUgZW5kcG9pbnRcclxuICAgICAgICAgICAgICAgIGlmIChpc0ludGVybmFsQXBwbGljYXRpb25JbnNpZ2h0c0VuZHBvaW50KGVuZFBvaW50VXJsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzLmFwcGVuZChSZXF1ZXN0SGVhZGVyc1s2IC8qIGVSZXF1ZXN0SGVhZGVycy5zZGtDb250ZXh0SGVhZGVyICovXSwgUmVxdWVzdEhlYWRlcnNbNyAvKiBlUmVxdWVzdEhlYWRlcnMuc2RrQ29udGV4dEhlYWRlckFwcElkUmVxdWVzdCAqL10pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYXJyRm9yRWFjaChvYmpLZXlzKF9oZWFkZXJzKSwgZnVuY3Rpb24gKGhlYWRlck5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5hcHBlbmQoaGVhZGVyTmFtZSwgX2hlYWRlcnNbaGVhZGVyTmFtZV0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IChfYSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdEhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHBsYWluVGV4dEJhdGNoXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBfYVtEaXNhYmxlZFByb3BlcnR5TmFtZV0gPSB0cnVlIC8vIE1hcmsgc28gd2UgZG9uJ3QgYXR0ZW1wdCB0byB0cmFjayB0aGlzIHJlcXVlc3RcclxuICAgICAgICAgICAgICAgICxcclxuICAgICAgICAgICAgICAgICAgICBfYSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXN5bmMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbml0LmtlZXBhbGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQXMgYSBzeW5jIHJlcXVlc3QgKGR1cmluZyB1bmxvYWQpLCBpdCBpcyB1bmxpa2VseSB0aGF0IHdlIHdpbGwgZ2V0IGEgY2hhbmNlIHRvIHByb2Nlc3MgdGhlIHJlc3BvbnNlIHNvXHJcbiAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBsaWtlIGJlYWNvbiBzZW5kIGFzc3VtZSB0aGF0IHRoZSBldmVudHMgaGF2ZSBiZWVuIGFjY2VwdGVkIGFuZCBwcm9jZXNzZWRcclxuICAgICAgICAgICAgICAgICAgICBpZ25vcmVSZXNwb25zZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgX3N5bmNGZXRjaFBheWxvYWQgKz0gYmF0Y2hMZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGVuZFBvaW50VXJsLCBpbml0KTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQWxzbyB0cnkgYW5kIHRhZyB0aGUgcmVxdWVzdCAoanVzdCBpbiBjYXNlIHRoZSB2YWx1ZSBpbiBpbml0IGlzIG5vdCBjb3BpZWQgb3ZlcilcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0W0Rpc2FibGVkUHJvcGVydHlOYW1lXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbnZpcm9ubWVudCBoYXMgbG9ja2VkIGRvd24gdGhlIFhNTEh0dHBSZXF1ZXN0IChwcmV2ZW50RXh0ZW5zaW9ucyBhbmQvb3IgZnJlZXplKSwgdGhpcyB3b3VsZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNhdXNlIHRoZSByZXF1ZXN0IHRvIGZhaWwgYW5kIHdlIG5vIHRlbGVtZXRyeSB3b3VsZCBiZSBzZW50XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfc2VsZi5fYnVmZmVyW19EWU5fTUFSS19BU19TRU5UIC8qIEBtaW46JTJlbWFya0FzU2VudCAqL10ocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZldGNoKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3N5bmNGZXRjaFBheWxvYWQgLT0gYmF0Y2hMZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaExlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZUhhbmRsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSGFuZGxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBQcm9taXNlIHJldHVybmVkIGZyb20gZmV0Y2goKSB3b27igJl0IHJlamVjdCBvbiBIVFRQIGVycm9yIHN0YXR1cyBldmVuIGlmIHRoZSByZXNwb25zZSBpcyBhbiBIVFRQIDQwNCBvciA1MDAuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbnN0ZWFkLCBpdCB3aWxsIHJlc29sdmUgbm9ybWFsbHkgKHdpdGggb2sgc3RhdHVzIHNldCB0byBmYWxzZSksIGFuZCBpdCB3aWxsIG9ubHkgcmVqZWN0IG9uIG5ldHdvcmsgZmFpbHVyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogb3IgaWYgYW55dGhpbmcgcHJldmVudGVkIHRoZSByZXF1ZXN0IGZyb20gY29tcGxldGluZy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX09OX0VSUk9SIC8qIEBtaW46JTJlX29uRXJyb3IgKi9dKHBheWxvYWQsIHJlc3BvbnNlLnN0YXR1c1RleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24gKHRleHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NoZWNrUmVzcG9uc1N0YXR1cyhyZXNwb25zZS5zdGF0dXMsIHBheWxvYWQsIHJlc3BvbnNlLnVybCwgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10sIHJlc3BvbnNlLnN0YXR1c1RleHQsIHRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0FzeW5jKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3luY0ZldGNoUGF5bG9hZCAtPSBiYXRjaExlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoTGVuZ3RoID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlSGFuZGxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VIYW5kbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX09OX0VSUk9SIC8qIEBtaW46JTJlX29uRXJyb3IgKi9dKHBheWxvYWQsIGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2VIYW5kbGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fX09OX0VSUk9SIC8qIEBtaW46JTJlX29uRXJyb3IgKi9dKHBheWxvYWQsIGR1bXBPYmooZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpZ25vcmVSZXNwb25zZSAmJiAhcmVzcG9uc2VIYW5kbGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQXNzdW1lIHN1Y2Nlc3MgZHVyaW5nIHVubG9hZCBwcm9jZXNzaW5nIGFzIHdlIG1vc3QgbGlrZWx5IHdvbid0IGdldCB0aGUgcmVzcG9uc2VcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZUhhbmRsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLl9vblN1Y2Nlc3MocGF5bG9hZCwgcGF5bG9hZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBQYXJzZXMgdGhlIHJlc3BvbnNlIGZyb20gdGhlIGJhY2tlbmQuXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSByZXNwb25zZSAtIFhNTEh0dHBSZXF1ZXN0IG9yIFhEb21haW5SZXF1ZXN0IHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfcGFyc2VSZXNwb25zZShyZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGdldEpTT04oKS5wYXJzZShyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lml0ZW1zUmVjZWl2ZWQgJiYgcmVzdWx0Lml0ZW1zUmVjZWl2ZWQgPj0gcmVzdWx0W19EWU5fSVRFTVNfQUNDRVBURUQgLyogQG1pbjolMmVpdGVtc0FjY2VwdGVkICovXSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZW1zUmVjZWl2ZWQgLSByZXN1bHQuaXRlbXNBY2NlcHRlZCA9PT0gcmVzdWx0LmVycm9yc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDQzIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuSW52YWxpZEJhY2tlbmRSZXNwb25zZSAqLywgXCJDYW5ub3QgcGFyc2UgdGhlIHJlc3BvbnNlLiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogUmVzZW5kIHBheWxvYWQuIEFkZHMgcGF5bG9hZCBiYWNrIHRvIHRoZSBzZW5kIGJ1ZmZlciBhbmQgc2V0dXAgYSBzZW5kIHRpbWVyICh3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmYpLlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3Jlc2VuZFBheWxvYWQocGF5bG9hZCwgbGluZWFyRmFjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGluZWFyRmFjdG9yID09PSB2b2lkIDApIHsgbGluZWFyRmFjdG9yID0gMTsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCFwYXlsb2FkIHx8IHBheWxvYWRbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IF9zZWxmW19EWU5fX0JVRkZFUiAvKiBAbWluOiUyZV9idWZmZXIgKi9dO1xyXG4gICAgICAgICAgICAgICAgYnVmZmVyW19EWU5fQ0xFQVJfU0VOVCAvKiBAbWluOiUyZWNsZWFyU2VudCAqL10ocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICBfY29uc2VjdXRpdmVFcnJvcnMrKztcclxuICAgICAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgcGF5bG9hZF8xID0gcGF5bG9hZDsgX2kgPCBwYXlsb2FkXzEubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBwYXlsb2FkXzFbX2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltfRFlOX0VOUVVFVUUgLyogQG1pbjolMmVlbnF1ZXVlICovXShpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIHNldHVwIHRpbWVyXHJcbiAgICAgICAgICAgICAgICBfc2V0UmV0cnlUaW1lKGxpbmVhckZhY3Rvcik7XHJcbiAgICAgICAgICAgICAgICBfc2V0dXBUaW1lcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBDYWxjdWxhdGVzIHRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIGluIGNhc2Ugb2YgYW4gZXJyb3IgYmFzZWQgb25cclxuICAgICAgICAgICAgICogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9FeHBvbmVudGlhbF9iYWNrb2ZmXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfc2V0UmV0cnlUaW1lKGxpbmVhckZhY3Rvcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIFNsb3REZWxheUluU2Vjb25kcyA9IDEwO1xyXG4gICAgICAgICAgICAgICAgdmFyIGRlbGF5SW5TZWNvbmRzO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9jb25zZWN1dGl2ZUVycm9ycyA8PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXlJblNlY29uZHMgPSBTbG90RGVsYXlJblNlY29uZHM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgYmFja09mZlNsb3QgPSAoTWF0aC5wb3coMiwgX2NvbnNlY3V0aXZlRXJyb3JzKSAtIDEpIC8gMjtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6aW5zZWN1cmUtcmFuZG9tXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJhY2tPZmZEZWxheSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGJhY2tPZmZTbG90ICogU2xvdERlbGF5SW5TZWNvbmRzKSArIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja09mZkRlbGF5ID0gbGluZWFyRmFjdG9yICogYmFja09mZkRlbGF5O1xyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5SW5TZWNvbmRzID0gTWF0aC5tYXgoTWF0aC5taW4oYmFja09mZkRlbGF5LCAzNjAwKSwgU2xvdERlbGF5SW5TZWNvbmRzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IExvZyB0aGUgYmFja29mZiB0aW1lIGxpa2UgdGhlIEMjIHZlcnNpb24gZG9lcy5cclxuICAgICAgICAgICAgICAgIHZhciByZXRyeUFmdGVyVGltZVNwYW4gPSBkYXRlTm93KCkgKyAoZGVsYXlJblNlY29uZHMgKiAxMDAwKTtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IExvZyB0aGUgcmV0cnkgYXQgdGltZSBsaWtlIHRoZSBDIyB2ZXJzaW9uIGRvZXMuXHJcbiAgICAgICAgICAgICAgICBfcmV0cnlBdCA9IHJldHJ5QWZ0ZXJUaW1lU3BhbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU2V0cyB1cCB0aGUgdGltZXIgd2hpY2ggdHJpZ2dlcnMgYWN0dWFsbHkgc2VuZGluZyB0aGUgZGF0YS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9zZXR1cFRpbWVyKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFfdGltZW91dEhhbmRsZSAmJiAhX3BhdXNlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXRyeUludGVydmFsID0gX3JldHJ5QXQgPyBNYXRoLm1heCgwLCBfcmV0cnlBdCAtIGRhdGVOb3coKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lclZhbHVlID0gTWF0aC5tYXgoX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fTUFYX0JBVENIX0lOVEVSVkFMIC8qIEBtaW46JTJlbWF4QmF0Y2hJbnRlcnZhbCAqL10oKSwgcmV0cnlJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3RpbWVvdXRIYW5kbGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX1RSSUdHRVJfU0VORCAvKiBAbWluOiUyZXRyaWdnZXJTZW5kICovXSh0cnVlLCBudWxsLCAxIC8qIFNlbmRSZXF1ZXN0UmVhc29uLk5vcm1hbFNjaGVkdWxlICovKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aW1lclZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfY2xlYXJTY2hlZHVsZWRUaW1lcigpIHtcclxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChfdGltZW91dEhhbmRsZSk7XHJcbiAgICAgICAgICAgICAgICBfdGltZW91dEhhbmRsZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfcmV0cnlBdCA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIENoZWNrcyBpZiB0aGUgU0RLIHNob3VsZCByZXNlbmQgdGhlIHBheWxvYWQgYWZ0ZXIgcmVjZWl2aW5nIHRoaXMgc3RhdHVzIGNvZGUgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgICAgICAgICAgICogQHBhcmFtIHN0YXR1c0NvZGVcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pc1JldHJpYWJsZShzdGF0dXNDb2RlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzQ29kZSA9PT0gNDAxIC8vIFVuYXV0aG9yaXplZFxyXG4gICAgICAgICAgICAgICAgICAgIHx8IHN0YXR1c0NvZGUgPT09IDQwMyAvLyBGb3JiaWRkZW5cclxuICAgICAgICAgICAgICAgICAgICB8fCBzdGF0dXNDb2RlID09PSA0MDggLy8gVGltZW91dFxyXG4gICAgICAgICAgICAgICAgICAgIHx8IHN0YXR1c0NvZGUgPT09IDQyOSAvLyBUb28gbWFueSByZXF1ZXN0cy5cclxuICAgICAgICAgICAgICAgICAgICB8fCBzdGF0dXNDb2RlID09PSA1MDAgLy8gSW50ZXJuYWwgc2VydmVyIGVycm9yLlxyXG4gICAgICAgICAgICAgICAgICAgIHx8IHN0YXR1c0NvZGUgPT09IDUwMiAvLyBCYWQgR2F0ZXdheS5cclxuICAgICAgICAgICAgICAgICAgICB8fCBzdGF0dXNDb2RlID09PSA1MDMgLy8gU2VydmljZSB1bmF2YWlsYWJsZS5cclxuICAgICAgICAgICAgICAgICAgICB8fCBzdGF0dXNDb2RlID09PSA1MDQ7IC8vIEdhdGV3YXkgdGltZW91dC5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZm9ybWF0RXJyb3JNZXNzYWdlWGhyKHhociwgbWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHhocikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlhNTEh0dHBSZXF1ZXN0LFN0YXR1czpcIiArIHhoci5zdGF0dXMgKyBcIixSZXNwb25zZTpcIiArIF9nZXRSZXNwb25zZVRleHQoeGhyKSB8fCB4aHIucmVzcG9uc2UgfHwgXCJcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBTZW5kIFhEb21haW5SZXF1ZXN0XHJcbiAgICAgICAgICAgICAqIEBwYXJhbSBwYXlsb2FkIHtzdHJpbmd9IC0gVGhlIGRhdGEgcGF5bG9hZCB0byBiZSBzZW50LlxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gaXNBc3luYyB7Ym9vbGVhbn0gLSBJbmRpY2F0ZXMgaWYgdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIHNlbnQgYXN5bmNocm9ub3VzbHlcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogTm90ZTogWERvbWFpblJlcXVlc3QgZG9lcyBub3Qgc3VwcG9ydCBzeW5jIHJlcXVlc3RzLiBUaGlzICdpc0FzeW5jJyBwYXJhbWV0ZXIgaXMgYWRkZWRcclxuICAgICAgICAgICAgICogdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgd2l0aCB0aGUgeGhyU2VuZGVyJ3MgY29udHJhY3RcclxuICAgICAgICAgICAgICogTm90ZTogWERvbWFpblJlcXVlc3QgZG9lcyBub3Qgc3VwcG9ydCBjdXN0b20gaGVhZGVycyBhbmQgd2UgYXJlIG5vdCBhYmxlIHRvIGdldFxyXG4gICAgICAgICAgICAgKiBhcHBJZCBmcm9tIHRoZSBiYWNrZW5kIGZvciB0aGUgY29ycmVjdCBjb3JyZWxhdGlvbi5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF94ZHJTZW5kZXIocGF5bG9hZCwgaXNBc3luYykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IF9zZWxmW19EWU5fX0JVRkZFUiAvKiBAbWluOiUyZV9idWZmZXIgKi9dO1xyXG4gICAgICAgICAgICAgICAgdmFyIF93aW5kb3cgPSBnZXRXaW5kb3coKTtcclxuICAgICAgICAgICAgICAgIHZhciB4ZHIgPSBuZXcgWERvbWFpblJlcXVlc3QoKTtcclxuICAgICAgICAgICAgICAgIHhkci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBfc2VsZi5feGRyT25Mb2FkKHhkciwgcGF5bG9hZCk7IH07XHJcbiAgICAgICAgICAgICAgICB4ZHIub25lcnJvciA9IGZ1bmN0aW9uIChldmVudCkgeyByZXR1cm4gX3NlbGZbX0RZTl9fT05fRVJST1IgLyogQG1pbjolMmVfb25FcnJvciAqL10ocGF5bG9hZCwgX2Zvcm1hdEVycm9yTWVzc2FnZVhkcih4ZHIpLCBldmVudCk7IH07XHJcbiAgICAgICAgICAgICAgICAvLyBYRG9tYWluUmVxdWVzdCByZXF1aXJlcyB0aGUgc2FtZSBwcm90b2NvbCBhcyB0aGUgaG9zdGluZyBwYWdlLlxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHByb3RvY29sIGRvZXNuJ3QgbWF0Y2gsIHdlIGNhbid0IHNlbmQgdGhlIHRlbGVtZXRyeSA6KC5cclxuICAgICAgICAgICAgICAgIHZhciBob3N0aW5nUHJvdG9jb2wgPSBfd2luZG93ICYmIF93aW5kb3cubG9jYXRpb24gJiYgX3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9zZWxmW19EWU5fX1NFTkRFUl9DT05GSUcgLyogQG1pbjolMmVfc2VuZGVyQ29uZmlnICovXVtfRFlOX0VORFBPSU5UX1VSTCAvKiBAbWluOiUyZWVuZHBvaW50VXJsICovXSgpLmxhc3RJbmRleE9mKGhvc3RpbmdQcm90b2NvbCwgMCkgIT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfc2VsZltfRFlOX0RJQUdfTE9HIC8qIEBtaW46JTJlZGlhZ0xvZyAqL10oKSwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDQwIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuVHJhbnNtaXNzaW9uRmFpbGVkICovLCBcIi4gXCIgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5vdCBzZW5kIFhEb21haW4gcmVxdWVzdC4gVGhlIGVuZHBvaW50IFVSTCBwcm90b2NvbCBkb2Vzbid0IG1hdGNoIHRoZSBob3N0aW5nIHBhZ2UgcHJvdG9jb2wuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltfRFlOX0NMRUFSIC8qIEBtaW46JTJlY2xlYXIgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGVuZHBvaW50VXJsID0gX3NlbGZbX0RZTl9fU0VOREVSX0NPTkZJRyAvKiBAbWluOiUyZV9zZW5kZXJDb25maWcgKi9dW19EWU5fRU5EUE9JTlRfVVJMIC8qIEBtaW46JTJlZW5kcG9pbnRVcmwgKi9dKCkucmVwbGFjZSgvXihodHRwcz86KS8sIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgeGRyLm9wZW4oXCJQT1NUXCIsIGVuZHBvaW50VXJsKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbXBvc2UgYW4gYXJyYXkgb2YgcGF5bG9hZHNcclxuICAgICAgICAgICAgICAgIHZhciBiYXRjaCA9IGJ1ZmZlcltfRFlOX0JBVENIX1BBWUxPQURTIC8qIEBtaW46JTJlYmF0Y2hQYXlsb2FkcyAqL10ocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB4ZHIuc2VuZChiYXRjaCk7XHJcbiAgICAgICAgICAgICAgICBidWZmZXJbX0RZTl9NQVJLX0FTX1NFTlQgLyogQG1pbjolMmVtYXJrQXNTZW50ICovXShwYXlsb2FkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZm9ybWF0RXJyb3JNZXNzYWdlWGRyKHhkciwgbWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHhkcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlhEb21haW5SZXF1ZXN0LFJlc3BvbnNlOlwiICsgX2dldFJlc3BvbnNlVGV4dCh4ZHIpIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBVc2luZyBmdW5jdGlvbiBsb29rdXBzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFzIHRoZSBnZXROb3RpZnlNZ3IoKSBkaWQgbm90IGV4aXN0IHVudGlsIGFmdGVyIHYyLjUuNlxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZ2V0Tm90aWZ5TWdyKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGZ1bmMgPSBcImdldE5vdGlmeU1nclwiO1xyXG4gICAgICAgICAgICAgICAgaWYgKF9zZWxmLmNvcmVbZnVuY10pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3NlbGYuY29yZVtmdW5jXSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gdXNpbmcgX3NlbGYuY29yZVsnX25vdGlmaWNhdGlvbk1hbmFnZXInXSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9zZWxmLmNvcmVbXCJfbm90aWZpY2F0aW9uTWFuYWdlclwiXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfbm90aWZ5U2VuZFJlcXVlc3Qoc2VuZFJlcXVlc3QsIGlzQXN5bmMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBtYW5hZ2VyID0gX2dldE5vdGlmeU1ncigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1hbmFnZXIgJiYgbWFuYWdlcltfRFlOX0VWRU5UU19TRU5EX1JFUVVFU1QgLyogQG1pbjolMmVldmVudHNTZW5kUmVxdWVzdCAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyW19EWU5fRVZFTlRTX1NFTkRfUkVRVUVTVCAvKiBAbWluOiUyZWV2ZW50c1NlbmRSZXF1ZXN0ICovXShzZW5kUmVxdWVzdCwgaXNBc3luYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmW19EWU5fRElBR19MT0cgLyogQG1pbjolMmVkaWFnTG9nICovXSgpLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDc0IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuTm90aWZpY2F0aW9uRXhjZXB0aW9uICovLCBcInNlbmQgcmVxdWVzdCBub3RpZmljYXRpb24gZmFpbGVkOiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogVmFsaWRhdGUgVVVJRCBGb3JtYXRcclxuICAgICAgICAgICAgICogU3BlY3MgdGFrZW4gZnJvbSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDEyMiBhbmQgYnJlZXplIHJlcG9cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF92YWxpZGF0ZUluc3RydW1lbnRhdGlvbktleShjb25maWcpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkaXNhYmxlSUtleVZhbGlkYXRpb25GbGFnID0gaXNOdWxsT3JVbmRlZmluZWQoY29uZmlnW19EWU5fRElTQUJMRV9JTlNUUlVNRU5UQVQ3IC8qIEBtaW46JTJlZGlzYWJsZUluc3RydW1lbnRhdGlvbktleVZhbGlkYXRpb24gKi9dKSA/IGZhbHNlIDogY29uZmlnW19EWU5fRElTQUJMRV9JTlNUUlVNRU5UQVQ3IC8qIEBtaW46JTJlZGlzYWJsZUluc3RydW1lbnRhdGlvbktleVZhbGlkYXRpb24gKi9dO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpc2FibGVJS2V5VmFsaWRhdGlvbkZsYWcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBVVUlEX1JlZ2V4ID0gXCJeWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9JFwiO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlZ2V4cCA9IG5ldyBSZWdFeHAoVVVJRF9SZWdleCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVnZXhwLnRlc3QoY29uZmlnW19EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSAvKiBAbWluOiUyZWluc3RydW1lbnRhdGlvbktleSAqL10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pbml0RGVmYXVsdHMoKSB7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19TRU5ERVIgLyogQG1pbjolMmVfc2VuZGVyICovXSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX19CVUZGRVIgLyogQG1pbjolMmVfYnVmZmVyICovXSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfc2VsZi5fYXBwSWQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuX3NhbXBsZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfaGVhZGVycyA9IHt9O1xyXG4gICAgICAgICAgICAgICAgX29mZmxpbmVMaXN0ZW5lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfY29uc2VjdXRpdmVFcnJvcnMgPSAwO1xyXG4gICAgICAgICAgICAgICAgX3JldHJ5QXQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2xhc3RTZW5kID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9wYXVzZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIF90aW1lb3V0SGFuZGxlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9zZXJpYWxpemVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9zdGFtcF9zcGVjaWZpY19yZWRpcmVjdHMgPSAwO1xyXG4gICAgICAgICAgICAgICAgX3N5bmNGZXRjaFBheWxvYWQgPSAwO1xyXG4gICAgICAgICAgICAgICAgX2ZhbGxiYWNrU2VuZGVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9zeW5jVW5sb2FkU2VuZGVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9ldnROYW1lc3BhY2UgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgU2VuZGVyLmNvbnN0cnVjdEVudmVsb3BlID0gZnVuY3Rpb24gKG9yaWcsIGlLZXksIGxvZ2dlciwgY29udmVydFVuZGVmaW5lZCkge1xyXG4gICAgICAgIHZhciBlbnZlbG9wZTtcclxuICAgICAgICBpZiAoaUtleSAhPT0gb3JpZy5pS2V5ICYmICFpc051bGxPclVuZGVmaW5lZChpS2V5KSkge1xyXG4gICAgICAgICAgICBlbnZlbG9wZSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBvcmlnKSwgeyBpS2V5OiBpS2V5IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZW52ZWxvcGUgPSBvcmlnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY3JlYXRvciA9IEVudmVsb3BlVHlwZUNyZWF0b3JbZW52ZWxvcGUuYmFzZVR5cGVdIHx8IEV2ZW50RW52ZWxvcGVDcmVhdG9yO1xyXG4gICAgICAgIHJldHVybiBjcmVhdG9yKGxvZ2dlciwgZW52ZWxvcGUsIGNvbnZlcnRVbmRlZmluZWQpO1xyXG4gICAgfTtcclxuLy8gUmVtb3ZlZCBTdHViIGZvciBTZW5kZXIucHJvdG90eXBlLnBhdXNlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlbmRlci5wcm90b3R5cGUucmVzdW1lLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlbmRlci5wcm90b3R5cGUuZmx1c2guXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgU2VuZGVyLnByb3RvdHlwZS5vbnVubG9hZEZsdXNoLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlbmRlci5wcm90b3R5cGUuaW5pdGlhbGl6ZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBTZW5kZXIucHJvdG90eXBlLnByb2Nlc3NUZWxlbWV0cnkuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgU2VuZGVyLnByb3RvdHlwZS5feGhyUmVhZHlTdGF0ZUNoYW5nZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBTZW5kZXIucHJvdG90eXBlLnRyaWdnZXJTZW5kLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlbmRlci5wcm90b3R5cGUuX29uRXJyb3IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgU2VuZGVyLnByb3RvdHlwZS5fb25QYXJ0aWFsU3VjY2Vzcy5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBTZW5kZXIucHJvdG90eXBlLl9vblN1Y2Nlc3MuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgU2VuZGVyLnByb3RvdHlwZS5feGRyT25Mb2FkLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFNlbmRlci5wcm90b3R5cGUuYWRkSGVhZGVyLlxyXG4gICAgcmV0dXJuIFNlbmRlcjtcclxufShCYXNlVGVsZW1ldHJ5UGx1Z2luKSk7XHJcbmV4cG9ydCB7IFNlbmRlciB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZW5kZXIuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gRGVwZW5kZW5jaWVzIFBsdWdpbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gTm90ZTogRE9OJ1QgRXhwb3J0IHRoZXNlIGNvbnN0IGZyb20gdGhlIHBhY2thZ2UgYXMgd2UgYXJlIHN0aWxsIHRhcmdldGluZyBFUzMgdGhpcyB3aWxsIGV4cG9ydCBhIG11dGFibGUgdmFyaWFibGVzIHRoYXQgc29tZW9uZSBjb3VsZCBjaGFuZ2UhISFcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gR2VuZXJhbGx5IHlvdSBzaG91bGQgb25seSBwdXQgdmFsdWVzIHRoYXQgYXJlIHVzZWQgbW9yZSB0aGFuIDIgdGltZXMgYW5kIHRoZW4gb25seSBpZiBub3QgYWxyZWFkeSBleHBvc2VkIGFzIGEgY29uc3RhbnQgKHN1Y2ggYXMgU2RrQ29yZU5hbWVzKVxyXG4vLyBhcyB3aGVuIHVzaW5nIFwic2hvcnRcIiBuYW1lZCB2YWx1ZXMgZnJvbSBoZXJlIHRoZXkgd2lsbCBiZSB3aWxsIGJlIG1pbmlmaWVkIHNtYWxsZXIgdGhhbiB0aGUgU2RrQ29yZU5hbWVzW2VTZGtDb3JlTmFtZXMueHh4eF0gdmFsdWUuXHJcbmV4cG9ydCB2YXIgU1RSX0RVUkFUSU9OID0gXCJkdXJhdGlvblwiO1xyXG5leHBvcnQgdmFyIFNUUl9QUk9QRVJUSUVTID0gXCJwcm9wZXJ0aWVzXCI7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUludGVybmFsQ29uc3RhbnRzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIERlcGVuZGVuY2llcyBQbHVnaW4sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbi8vIEBza2lwLWZpbGUtbWluaWZ5XHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbi8vIEFVVE8gR0VORVJBVEVEIEZJTEU6IFRoaXMgZmlsZSBpcyBBdXRvIEdlbmVyYXRlZCBkdXJpbmcgYnVpbGQuXHJcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbi8vICEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhXHJcbi8vIE5vdGU6IERPTidUIEV4cG9ydCB0aGVzZSBjb25zdCBmcm9tIHRoZSBwYWNrYWdlIGFzIHdlIGFyZSBzdGlsbCB0YXJnZXRpbmcgRVMzIHRoaXMgd2lsbCBleHBvcnQgYSBtdXRhYmxlIHZhcmlhYmxlcyB0aGF0IHNvbWVvbmUgY291bGQgY2hhbmdlISEhXHJcbi8vICEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhXHJcbmV4cG9ydCB2YXIgX0RZTl9SRVFVRVNUX1VSTCA9IFwicmVxdWVzdFVybFwiOyAvLyBDb3VudDogMTJcclxuZXhwb3J0IHZhciBfRFlOX0lOU1QgPSBcImluc3RcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0xFTkdUSCA9IFwibGVuZ3RoXCI7IC8vIENvdW50OiAxMFxyXG5leHBvcnQgdmFyIF9EWU5fVFJBQ0VfSUQgPSBcInRyYWNlSURcIjsgLy8gQ291bnQ6IDlcclxuZXhwb3J0IHZhciBfRFlOX1NQQU5fSUQgPSBcInNwYW5JRFwiOyAvLyBDb3VudDogOFxyXG5leHBvcnQgdmFyIF9EWU5fVFJBQ0VfRkxBR1MgPSBcInRyYWNlRmxhZ3NcIjsgLy8gQ291bnQ6IDEzXHJcbmV4cG9ydCB2YXIgX0RZTl9DT05URVhUID0gXCJjb250ZXh0XCI7IC8vIENvdW50OiA3XHJcbmV4cG9ydCB2YXIgX0RZTl9UUkFDRV9JRDAgPSBcInRyYWNlSWRcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX1NQQU5fSUQxID0gXCJzcGFuSWRcIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0NPUkUgPSBcImNvcmVcIjsgLy8gQ291bnQ6IDhcclxuZXhwb3J0IHZhciBfRFlOX0lOQ0xVREVfQ09SUkVMQVRJT05fMiA9IFwiaW5jbHVkZUNvcnJlbGF0aW9uSGVhZGVyc1wiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fQ0FOX0lOQ0xVREVfQ09SUkVMQVQzID0gXCJjYW5JbmNsdWRlQ29ycmVsYXRpb25IZWFkZXJcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9BQlNPTFVURV9VUkwgPSBcImdldEFic29sdXRlVXJsXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9IRUFERVJTID0gXCJoZWFkZXJzXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9SRVFVRVNUX0hFQURFUlMgPSBcInJlcXVlc3RIZWFkZXJzXCI7IC8vIENvdW50OiAxM1xyXG5leHBvcnQgdmFyIF9EWU5fQVBQX0lEID0gXCJhcHBJZFwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fU0VUX1JFUVVFU1RfSEVBREVSID0gXCJzZXRSZXF1ZXN0SGVhZGVyXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9UUkFDS19ERVBFTkRFTkNZX0RBVDQgPSBcInRyYWNrRGVwZW5kZW5jeURhdGFJbnRlcm5hbFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRElTVFJJQlVURURfVFJBQ0lOR181ID0gXCJkaXN0cmlidXRlZFRyYWNpbmdNb2RlXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9TVEFSVF9USU1FID0gXCJzdGFydFRpbWVcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX1RPX0xPV0VSX0NBU0UgPSBcInRvTG93ZXJDYXNlXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9FTkFCTEVfUkVRVUVTVF9IRUFERTYgPSBcImVuYWJsZVJlcXVlc3RIZWFkZXJUcmFja2luZ1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRU5BQkxFX0FKQVhfRVJST1JfU1Q3ID0gXCJlbmFibGVBamF4RXJyb3JTdGF0dXNUZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9FTkFCTEVfQUpBWF9QRVJGX1RSQTggPSBcImVuYWJsZUFqYXhQZXJmVHJhY2tpbmdcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX01BWF9BSkFYX0NBTExTX1BFUl9WOSA9IFwibWF4QWpheENhbGxzUGVyVmlld1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRU5BQkxFX1JFU1BPTlNFX0hFQUQxMCA9IFwiZW5hYmxlUmVzcG9uc2VIZWFkZXJUcmFja2luZ1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRVhDTFVERV9SRVFVRVNUX0ZST00xMSA9IFwiZXhjbHVkZVJlcXVlc3RGcm9tQXV0b1RyYWNraW5nUGF0dGVybnNcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0FERF9SRVFVRVNUX0NPTlRFWFQgPSBcImFkZFJlcXVlc3RDb250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX0FKQVhfVFJBQ0tJTjEyID0gXCJkaXNhYmxlQWpheFRyYWNraW5nXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX0ZFVENIX1RSQUNLSTEzID0gXCJkaXNhYmxlRmV0Y2hUcmFja2luZ1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fU1RBVFVTID0gXCJzdGF0dXNcIjsgLy8gQ291bnQ6IDEwXHJcbmV4cG9ydCB2YXIgX0RZTl9TVEFUVVNfVEVYVCA9IFwic3RhdHVzVGV4dFwiOyAvLyBDb3VudDogOFxyXG5leHBvcnQgdmFyIF9EWU5fSEVBREVSX01BUCA9IFwiaGVhZGVyTWFwXCI7IC8vIENvdW50OiA4XHJcbmV4cG9ydCB2YXIgX0RZTl9PUEVOX0RPTkUgPSBcIm9wZW5Eb25lXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9TRU5EX0RPTkUgPSBcInNlbmREb25lXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9SRVFVRVNUX1NFTlRfVElNRSA9IFwicmVxdWVzdFNlbnRUaW1lXCI7IC8vIENvdW50OiA5XHJcbmV4cG9ydCB2YXIgX0RZTl9BQk9SVF9ET05FID0gXCJhYm9ydERvbmVcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9UUkFDRV9JRCA9IFwiZ2V0VHJhY2VJZFwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fR0VUX1RSQUNFX0ZMQUdTID0gXCJnZXRUcmFjZUZsYWdzXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9NRVRIT0QgPSBcIm1ldGhvZFwiOyAvLyBDb3VudDogMTBcclxuZXhwb3J0IHZhciBfRFlOX0VSUk9SX1NUQVRVU19URVhUID0gXCJlcnJvclN0YXR1c1RleHRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX1NUQVRFX0NIQU5HRV9BVFRBQ0hFMTQgPSBcInN0YXRlQ2hhbmdlQXR0YWNoZWRcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX1JFU1BPTlNFX1RFWFQgPSBcInJlc3BvbnNlVGV4dFwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fUkVTUE9OU0VfRklOSVNIRURfVEkxNSA9IFwicmVzcG9uc2VGaW5pc2hlZFRpbWVcIjsgLy8gQ291bnQ6IDdcclxuZXhwb3J0IHZhciBfRFlOX19DUkVBVEVfVFJBQ0tfSVRFTSA9IFwiQ3JlYXRlVHJhY2tJdGVtXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9SRVNQT05TRSA9IFwicmVzcG9uc2VcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0dFVF9BTExfUkVTUE9OU0VfSEVBMTYgPSBcImdldEFsbFJlc3BvbnNlSGVhZGVyc1wiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fR0VUX1BBUlRfQVBST1BTID0gXCJnZXRQYXJ0QVByb3BzXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9HRVRfQ09SUkVMQVRJT05fQ09OVDE3ID0gXCJnZXRDb3JyZWxhdGlvbkNvbnRleHRcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX1BFUkZfTUFSSyA9IFwicGVyZk1hcmtcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0FKQVhfUEVSRl9MT09LVVBfREVMMTggPSBcImFqYXhQZXJmTG9va3VwRGVsYXlcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX05BTUUgPSBcIm5hbWVcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX1BFUkZfVElNSU5HID0gXCJwZXJmVGltaW5nXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9BSkFYX0RJQUdOT1NUSUNTX01FUzE5ID0gXCJhamF4RGlhZ25vc3RpY3NNZXNzYWdlXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9DT1JSRUxBVElPTl9DT05URVhUID0gXCJjb3JyZWxhdGlvbkNvbnRleHRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0FKQVhfVE9UQUxfRFVSQVRJT04gPSBcImFqYXhUb3RhbER1cmF0aW9uXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9FVkVOVF9UUkFDRV9DVFggPSBcImV2ZW50VHJhY2VDdHhcIjsgLy8gQ291bnQ6IDNcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9X19EeW5hbWljQ29uc3RhbnRzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIERlcGVuZGVuY2llcyBQbHVnaW4sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnMsIGRhdGFTYW5pdGl6ZVVybCwgZGF0ZVRpbWVVdGlsc0R1cmF0aW9uLCBtc1RvVGltZVNwYW4sIHVybEdldEFic29sdXRlVXJsLCB1cmxHZXRDb21wbGV0ZVVybCB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IGFyckZvckVhY2gsIGlzTnVsbE9yVW5kZWZpbmVkLCBpc051bWJlciwgaXNTdHJpbmcsIG5vcm1hbGl6ZUpzTmFtZSwgb2JqRm9yRWFjaEtleSwgb2JqS2V5cyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBTVFJfRFVSQVRJT04sIFNUUl9QUk9QRVJUSUVTIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgX0RZTl9BQk9SVF9ET05FLCBfRFlOX0FKQVhfVE9UQUxfRFVSQVRJT04sIF9EWU5fQ09SUkVMQVRJT05fQ09OVEVYVCwgX0RZTl9FVkVOVF9UUkFDRV9DVFgsIF9EWU5fR0VUX0FCU09MVVRFX1VSTCwgX0RZTl9HRVRfUEFSVF9BUFJPUFMsIF9EWU5fR0VUX1RSQUNFX0ZMQUdTLCBfRFlOX0dFVF9UUkFDRV9JRCwgX0RZTl9IRUFERVJfTUFQLCBfRFlOX0xFTkdUSCwgX0RZTl9NRVRIT0QsIF9EWU5fTkFNRSwgX0RZTl9PUEVOX0RPTkUsIF9EWU5fUEVSRl9NQVJLLCBfRFlOX1BFUkZfVElNSU5HLCBfRFlOX1JFUVVFU1RfSEVBREVSUywgX0RZTl9SRVFVRVNUX1NFTlRfVElNRSwgX0RZTl9SRVFVRVNUX1VSTCwgX0RZTl9SRVNQT05TRSwgX0RZTl9SRVNQT05TRV9GSU5JU0hFRF9USTE1LCBfRFlOX1NFTkRfRE9ORSwgX0RZTl9TUEFOX0lELCBfRFlOX1NQQU5fSUQxLCBfRFlOX1NUQVJUX1RJTUUsIF9EWU5fU1RBVEVfQ0hBTkdFX0FUVEFDSEUxNCwgX0RZTl9TVEFUVVMsIF9EWU5fU1RBVFVTX1RFWFQsIF9EWU5fVFJBQ0VfRkxBR1MsIF9EWU5fVFJBQ0VfSUQsIF9EWU5fVFJBQ0VfSUQwLCBfRFlOX19DUkVBVEVfVFJBQ0tfSVRFTSB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG4vKiogQGlnbm9yZSAqL1xyXG5mdW5jdGlvbiBfY2FsY1BlcmZEdXJhdGlvbihyZXNvdXJjZUVudHJ5LCBzdGFydCwgZW5kKSB7XHJcbiAgICB2YXIgcmVzdWx0ID0gMDtcclxuICAgIHZhciBmcm9tID0gcmVzb3VyY2VFbnRyeVtzdGFydF07XHJcbiAgICB2YXIgdG8gPSByZXNvdXJjZUVudHJ5W2VuZF07XHJcbiAgICBpZiAoZnJvbSAmJiB0bykge1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGVUaW1lVXRpbHNEdXJhdGlvbihmcm9tLCB0byk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKiBAaWdub3JlICovXHJcbmZ1bmN0aW9uIF9zZXRQZXJmRHVyYXRpb24ocHJvcHMsIG5hbWUsIHJlc291cmNlRW50cnksIHN0YXJ0LCBlbmQpIHtcclxuICAgIHZhciByZXN1bHQgPSAwO1xyXG4gICAgdmFyIHZhbHVlID0gX2NhbGNQZXJmRHVyYXRpb24ocmVzb3VyY2VFbnRyeSwgc3RhcnQsIGVuZCk7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICByZXN1bHQgPSBfc2V0UGVyZlZhbHVlKHByb3BzLCBuYW1lLCBtc1RvVGltZVNwYW4odmFsdWUpKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuLyoqIEBpZ25vcmUgKi9cclxuZnVuY3Rpb24gX3NldFBlcmZWYWx1ZShwcm9wcywgbmFtZSwgdmFsdWUpIHtcclxuICAgIHZhciBzdHJQZXJmID0gXCJhamF4UGVyZlwiO1xyXG4gICAgdmFyIHJlc3VsdCA9IDA7XHJcbiAgICBpZiAocHJvcHMgJiYgbmFtZSAmJiB2YWx1ZSkge1xyXG4gICAgICAgIHZhciBwZXJmRGF0YSA9IHByb3BzW3N0clBlcmZdID0gKHByb3BzW3N0clBlcmZdIHx8IHt9KTtcclxuICAgICAgICBwZXJmRGF0YVtuYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgIHJlc3VsdCA9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKiBAaWdub3JlICovXHJcbmZ1bmN0aW9uIF9wb3B1bGF0ZVBlcmZEYXRhKGFqYXhEYXRhLCBkZXBlbmRlbmN5KSB7XHJcbiAgICAvKlxyXG4gICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVzb3VyY2VfVGltaW5nX0FQSS9Vc2luZ190aGVfUmVzb3VyY2VfVGltaW5nX0FQSVxyXG4gICAgKiAgfCAtc3RhcnRUaW1lXHJcbiAgICAqICB8IC1yZWRpcmVjdFN0YXJ0XHJcbiAgICAqICB8ICAgICAgICAgICAgfCAtcmVkaXJlY3RFbmRcclxuICAgICogIHwgICAgICAgICAgICB8IHwgLWZldGNoU3RhcnRcclxuICAgICogIHwgICAgICAgICAgICB8IHwgICB8IC1kb21haW5Mb29rdXBTdGFydFxyXG4gICAgKiAgfCAgICAgICAgICAgIHwgfCAgIHwgICAgICAgICAgICAgICAgfC0gZG9tYWluTG9va3VwRW5kXHJcbiAgICAqICB8ICAgICAgICAgICAgfCB8ICAgfCAgICAgICAgICAgICAgICB8IHwgLWNvbm5lY3RTdGFydFxyXG4gICAgKiAgfCAgICAgICAgICAgIHwgfCAgIHwgICAgICAgICAgICAgICAgfCB8ICB8IC1zZWN1cmVDb25uZWN0aW9uU3RhcnRcclxuICAgICogIHwgICAgICAgICAgICB8IHwgICB8ICAgICAgICAgICAgICAgIHwgfCAgfCAgICAgICAgfCAtY29ubmVjdEVuZFxyXG4gICAgKiAgfCAgICAgICAgICAgIHwgfCAgIHwgICAgICAgICAgICAgICAgfCB8ICB8ICAgICAgICB8IHwgLXJlcXVlc3RTdGFydFxyXG4gICAgKiAgfCAgICAgICAgICAgIHwgfCAgIHwgICAgICAgICAgICAgICAgfCB8ICB8ICAgICAgICB8IHwgICAgICAgICAgIHwgfCAtcmVzcG9uc2VTdGFydFxyXG4gICAgKiAgfCAgICAgICAgICAgIHwgfCAgIHwgICAgICAgICAgICAgICAgfCB8ICB8ICAgICAgICB8IHwgICAgICAgICAgIHwgfCAgICAgICAgICAgIHwgfCAtcmVzcG9uc2VFbmRcclxuICAgICogICstLS0tLS0tLS0tLS0rLSstLS0rLS0tLS0tLS0tLS0tLS0tLSstKy0tKy0tLS0tLS0tKy0rLS0tLS0tLS0tLS0rLSstLS0tLS0tLS0tLS0rLStcclxuICAgICogIHwtLXJlZGlyZWN0LS18IHwtLS18LS1kb21haW5Mb29rdXAtLXwgfC0tY29ubmVjdC0tfCB8LS1yZXF1ZXN0LS18IHwtLXJlc3BvbnNlLS18IHxcclxuICAgICogIHwtLS0tLS0tLS0tLS0tLS0tLS0tbmV0d29ya0Nvbm5lY3QtLS0tLS0tLS0tLS0tLS0tfFxyXG4gICAgKiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS1zZW50UmVxdWVzdC0tLS0tLS0tfFxyXG4gICAgKiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXBlcmZUb3RhbC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxyXG4gICAgKi9cclxuICAgIHZhciByZXNvdXJjZUVudHJ5ID0gYWpheERhdGFbX0RZTl9QRVJGX1RJTUlORyAvKiBAbWluOiUyZXBlcmZUaW1pbmcgKi9dO1xyXG4gICAgdmFyIHByb3BzID0gZGVwZW5kZW5jeVtTVFJfUFJPUEVSVElFUyAvKiBAbWluOiUyZXByb3BlcnRpZXMgKi9dIHx8IHt9O1xyXG4gICAgdmFyIHByb3BzU2V0ID0gMDtcclxuICAgIHZhciBzdHJOYW1lID0gXCJuYW1lXCI7XHJcbiAgICB2YXIgc3RyU3RhcnQgPSBcIlN0YXJ0XCI7XHJcbiAgICB2YXIgc3RyRW5kID0gXCJFbmRcIjtcclxuICAgIHZhciBzdHJEb21haW5Mb29rdXAgPSBcImRvbWFpbkxvb2t1cFwiO1xyXG4gICAgdmFyIHN0ckNvbm5lY3QgPSBcImNvbm5lY3RcIjtcclxuICAgIHZhciBzdHJSZWRpcmVjdCA9IFwicmVkaXJlY3RcIjtcclxuICAgIHZhciBzdHJSZXF1ZXN0ID0gXCJyZXF1ZXN0XCI7XHJcbiAgICB2YXIgc3RyUmVzcG9uc2UgPSBcInJlc3BvbnNlXCI7XHJcbiAgICB2YXIgc3RyU3RhcnRUaW1lID0gXCJzdGFydFRpbWVcIjtcclxuICAgIHZhciBzdHJEb21haW5Mb29rdXBTdGFydCA9IHN0ckRvbWFpbkxvb2t1cCArIHN0clN0YXJ0O1xyXG4gICAgdmFyIHN0ckRvbWFpbkxvb2t1cEVuZCA9IHN0ckRvbWFpbkxvb2t1cCArIHN0ckVuZDtcclxuICAgIHZhciBzdHJDb25uZWN0U3RhcnQgPSBzdHJDb25uZWN0ICsgc3RyU3RhcnQ7XHJcbiAgICB2YXIgc3RyQ29ubmVjdEVuZCA9IHN0ckNvbm5lY3QgKyBzdHJFbmQ7XHJcbiAgICB2YXIgc3RyUmVxdWVzdFN0YXJ0ID0gc3RyUmVxdWVzdCArIHN0clN0YXJ0O1xyXG4gICAgdmFyIHN0clJlcXVlc3RFbmQgPSBzdHJSZXF1ZXN0ICsgc3RyRW5kO1xyXG4gICAgdmFyIHN0clJlc3BvbnNlU3RhcnQgPSBzdHJSZXNwb25zZSArIHN0clN0YXJ0O1xyXG4gICAgdmFyIHN0clJlc3BvbnNlRW5kID0gc3RyUmVzcG9uc2UgKyBzdHJFbmQ7XHJcbiAgICB2YXIgc3RyUmVkaXJlY3RTdGFydCA9IHN0clJlZGlyZWN0ICsgc3RyU3RhcnQ7XHJcbiAgICB2YXIgc3RyUmVkaXJlY3RFbmQgPSBzdHJSZWRpcmVjdCA9IHN0ckVuZDtcclxuICAgIHZhciBzdHJUcmFuc2ZlclNpemUgPSBcInRyYW5zZmVyU2l6ZVwiO1xyXG4gICAgdmFyIHN0ckVuY29kZWRCb2R5U2l6ZSA9IFwiZW5jb2RlZEJvZHlTaXplXCI7XHJcbiAgICB2YXIgc3RyRGVjb2RlZEJvZHlTaXplID0gXCJkZWNvZGVkQm9keVNpemVcIjtcclxuICAgIHZhciBzdHJTZXJ2ZXJUaW1pbmcgPSBcInNlcnZlclRpbWluZ1wiO1xyXG4gICAgaWYgKHJlc291cmNlRW50cnkpIHtcclxuICAgICAgICAvLyByZWRpcmVjdFxyXG4gICAgICAgIHByb3BzU2V0IHw9IF9zZXRQZXJmRHVyYXRpb24ocHJvcHMsIHN0clJlZGlyZWN0LCByZXNvdXJjZUVudHJ5LCBzdHJSZWRpcmVjdFN0YXJ0LCBzdHJSZWRpcmVjdEVuZCk7XHJcbiAgICAgICAgLy8gZG9tYWluTG9va3VwXHJcbiAgICAgICAgcHJvcHNTZXQgfD0gX3NldFBlcmZEdXJhdGlvbihwcm9wcywgc3RyRG9tYWluTG9va3VwLCByZXNvdXJjZUVudHJ5LCBzdHJEb21haW5Mb29rdXBTdGFydCwgc3RyRG9tYWluTG9va3VwRW5kKTtcclxuICAgICAgICAvLyBjb25uZWN0XHJcbiAgICAgICAgcHJvcHNTZXQgfD0gX3NldFBlcmZEdXJhdGlvbihwcm9wcywgc3RyQ29ubmVjdCwgcmVzb3VyY2VFbnRyeSwgc3RyQ29ubmVjdFN0YXJ0LCBzdHJDb25uZWN0RW5kKTtcclxuICAgICAgICAvLyByZXF1ZXN0XHJcbiAgICAgICAgcHJvcHNTZXQgfD0gX3NldFBlcmZEdXJhdGlvbihwcm9wcywgc3RyUmVxdWVzdCwgcmVzb3VyY2VFbnRyeSwgc3RyUmVxdWVzdFN0YXJ0LCBzdHJSZXF1ZXN0RW5kKTtcclxuICAgICAgICAvLyByZXNwb25zZVxyXG4gICAgICAgIHByb3BzU2V0IHw9IF9zZXRQZXJmRHVyYXRpb24ocHJvcHMsIHN0clJlc3BvbnNlLCByZXNvdXJjZUVudHJ5LCBzdHJSZXNwb25zZVN0YXJ0LCBzdHJSZXNwb25zZUVuZCk7XHJcbiAgICAgICAgLy8gTmV0d29yayBjb25uZWN0aW9uIHRpbWVcclxuICAgICAgICBwcm9wc1NldCB8PSBfc2V0UGVyZkR1cmF0aW9uKHByb3BzLCBcIm5ldHdvcmtDb25uZWN0XCIsIHJlc291cmNlRW50cnksIHN0clN0YXJ0VGltZSwgc3RyQ29ubmVjdEVuZCk7XHJcbiAgICAgICAgLy8gU2VudCBSZXF1ZXN0XHJcbiAgICAgICAgcHJvcHNTZXQgfD0gX3NldFBlcmZEdXJhdGlvbihwcm9wcywgXCJzZW50UmVxdWVzdFwiLCByZXNvdXJjZUVudHJ5LCBzdHJSZXF1ZXN0U3RhcnQsIHN0clJlc3BvbnNlRW5kKTtcclxuICAgICAgICAvLyBQZXJmVG90YWwgLyBEdXJhdGlvblxyXG4gICAgICAgIHZhciBkdXJhdGlvbiA9IHJlc291cmNlRW50cnlbU1RSX0RVUkFUSU9OIC8qIEBtaW46JTJlZHVyYXRpb24gKi9dO1xyXG4gICAgICAgIGlmICghZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgZHVyYXRpb24gPSBfY2FsY1BlcmZEdXJhdGlvbihyZXNvdXJjZUVudHJ5LCBzdHJTdGFydFRpbWUsIHN0clJlc3BvbnNlRW5kKSB8fCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwcm9wc1NldCB8PSBfc2V0UGVyZlZhbHVlKHByb3BzLCBTVFJfRFVSQVRJT04sIGR1cmF0aW9uKTtcclxuICAgICAgICBwcm9wc1NldCB8PSBfc2V0UGVyZlZhbHVlKHByb3BzLCBcInBlcmZUb3RhbFwiLCBkdXJhdGlvbik7XHJcbiAgICAgICAgdmFyIHNlcnZlclRpbWluZyA9IHJlc291cmNlRW50cnlbc3RyU2VydmVyVGltaW5nXTtcclxuICAgICAgICBpZiAoc2VydmVyVGltaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciBzZXJ2ZXJfMSA9IHt9O1xyXG4gICAgICAgICAgICBhcnJGb3JFYWNoKHNlcnZlclRpbWluZywgZnVuY3Rpb24gKHZhbHVlLCBpZHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBuYW1lID0gbm9ybWFsaXplSnNOYW1lKHZhbHVlW3N0ck5hbWVdIHx8IFwiXCIgKyBpZHgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5ld1ZhbHVlID0gc2VydmVyXzFbbmFtZV0gfHwge307XHJcbiAgICAgICAgICAgICAgICBvYmpGb3JFYWNoS2V5KHZhbHVlLCBmdW5jdGlvbiAoa2V5LCB2YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBzdHJOYW1lICYmIGlzU3RyaW5nKHZhbCkgfHwgaXNOdW1iZXIodmFsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWVba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gbmV3VmFsdWVba2V5XSArIFwiO1wiICsgdmFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgfHwgIWlzU3RyaW5nKHZhbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2V0IHRoZSB2YWx1ZSBpZiBpdCBoYXMgYSB2YWx1ZSBhbmQgaXQncyBub3QgYW4gZW1wdHkgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZVtrZXldID0gdmFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBzZXJ2ZXJfMVtuYW1lXSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcHJvcHNTZXQgfD0gX3NldFBlcmZWYWx1ZShwcm9wcywgc3RyU2VydmVyVGltaW5nLCBzZXJ2ZXJfMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb3BzU2V0IHw9IF9zZXRQZXJmVmFsdWUocHJvcHMsIHN0clRyYW5zZmVyU2l6ZSwgcmVzb3VyY2VFbnRyeVtzdHJUcmFuc2ZlclNpemVdKTtcclxuICAgICAgICBwcm9wc1NldCB8PSBfc2V0UGVyZlZhbHVlKHByb3BzLCBzdHJFbmNvZGVkQm9keVNpemUsIHJlc291cmNlRW50cnlbc3RyRW5jb2RlZEJvZHlTaXplXSk7XHJcbiAgICAgICAgcHJvcHNTZXQgfD0gX3NldFBlcmZWYWx1ZShwcm9wcywgc3RyRGVjb2RlZEJvZHlTaXplLCByZXNvdXJjZUVudHJ5W3N0ckRlY29kZWRCb2R5U2l6ZV0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGFqYXhEYXRhW19EWU5fUEVSRl9NQVJLIC8qIEBtaW46JTJlcGVyZk1hcmsgKi9dKSB7XHJcbiAgICAgICAgICAgIHByb3BzU2V0IHw9IF9zZXRQZXJmVmFsdWUocHJvcHMsIFwibWlzc2luZ1wiLCBhamF4RGF0YS5wZXJmQXR0ZW1wdHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wc1NldCkge1xyXG4gICAgICAgIGRlcGVuZGVuY3lbU1RSX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXSA9IHByb3BzO1xyXG4gICAgfVxyXG59XHJcbnZhciBYSFJNb25pdG9yaW5nU3RhdGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBYSFJNb25pdG9yaW5nU3RhdGUoKSB7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHNlbGZbX0RZTl9PUEVOX0RPTkUgLyogQG1pbjolMmVvcGVuRG9uZSAqL10gPSBmYWxzZTtcclxuICAgICAgICBzZWxmLnNldFJlcXVlc3RIZWFkZXJEb25lID0gZmFsc2U7XHJcbiAgICAgICAgc2VsZltfRFlOX1NFTkRfRE9ORSAvKiBAbWluOiUyZXNlbmREb25lICovXSA9IGZhbHNlO1xyXG4gICAgICAgIHNlbGZbX0RZTl9BQk9SVF9ET05FIC8qIEBtaW46JTJlYWJvcnREb25lICovXSA9IGZhbHNlO1xyXG4gICAgICAgIC8vIDxzdW1tYXJ5PlRydWUsIGlmIG9ucmVhZHlTdGF0ZUNoYW5nZUNhbGxiYWNrIGZ1bmN0aW9uIGF0dGFjaGVkIHRvIHhociwgb3RoZXJ3aXNlIGZhbHNlPC9zdW1tYXJ5PlxyXG4gICAgICAgIHNlbGZbX0RZTl9TVEFURV9DSEFOR0VfQVRUQUNIRTE0IC8qIEBtaW46JTJlc3RhdGVDaGFuZ2VBdHRhY2hlZCAqL10gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBYSFJNb25pdG9yaW5nU3RhdGU7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFhIUk1vbml0b3JpbmdTdGF0ZSB9O1xyXG52YXIgYWpheFJlY29yZCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIGFqYXhSZWNvcmQodHJhY2VJZCwgc3BhbklkLCBsb2dnZXIsIHRyYWNlQ3R4KSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICB2YXIgX2xvZ2dlciA9IGxvZ2dlcjtcclxuICAgICAgICB2YXIgc3RyUmVzcG9uc2VUZXh0ID0gXCJyZXNwb25zZVRleHRcIjtcclxuICAgICAgICAvLyBBc3NpZ25pbmcgdGhlIGluaXRpYWwvZGVmYXVsdCB2YWx1ZXMgd2l0aGluIHRoZSBjb25zdHJ1Y3RvciB0byBhdm9pZCB0eXBlc2NyaXB0IGZyb20gY3JlYXRpbmcgYSBidW5jaCBvZlxyXG4gICAgICAgIC8vIHRoaXMuWFhYWCA9IG51bGxcclxuICAgICAgICBzZWxmW19EWU5fUEVSRl9NQVJLIC8qIEBtaW46JTJlcGVyZk1hcmsgKi9dID0gbnVsbDtcclxuICAgICAgICBzZWxmLmNvbXBsZXRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHNlbGYucmVxdWVzdEhlYWRlcnNTaXplID0gbnVsbDtcclxuICAgICAgICBzZWxmW19EWU5fUkVRVUVTVF9IRUFERVJTIC8qIEBtaW46JTJlcmVxdWVzdEhlYWRlcnMgKi9dID0gbnVsbDtcclxuICAgICAgICBzZWxmLnJlc3BvbnNlUmVjZWl2aW5nRHVyYXRpb24gPSBudWxsO1xyXG4gICAgICAgIHNlbGYuY2FsbGJhY2tEdXJhdGlvbiA9IG51bGw7XHJcbiAgICAgICAgc2VsZltfRFlOX0FKQVhfVE9UQUxfRFVSQVRJT04gLyogQG1pbjolMmVhamF4VG90YWxEdXJhdGlvbiAqL10gPSBudWxsO1xyXG4gICAgICAgIHNlbGYuYWJvcnRlZCA9IDA7XHJcbiAgICAgICAgc2VsZi5wYWdlVXJsID0gbnVsbDtcclxuICAgICAgICBzZWxmW19EWU5fUkVRVUVTVF9VUkwgLyogQG1pbjolMmVyZXF1ZXN0VXJsICovXSA9IG51bGw7XHJcbiAgICAgICAgc2VsZi5yZXF1ZXN0U2l6ZSA9IDA7XHJcbiAgICAgICAgc2VsZltfRFlOX01FVEhPRCAvKiBAbWluOiUyZW1ldGhvZCAqL10gPSBudWxsO1xyXG4gICAgICAgIHNlbGZbX0RZTl9TVEFUVVMgLyogQG1pbjolMmVzdGF0dXMgKi9dID0gbnVsbDtcclxuICAgICAgICBzZWxmW19EWU5fUkVRVUVTVF9TRU5UX1RJTUUgLyogQG1pbjolMmVyZXF1ZXN0U2VudFRpbWUgKi9dID0gbnVsbDtcclxuICAgICAgICBzZWxmLnJlc3BvbnNlU3RhcnRlZFRpbWUgPSBudWxsO1xyXG4gICAgICAgIHNlbGZbX0RZTl9SRVNQT05TRV9GSU5JU0hFRF9USTE1IC8qIEBtaW46JTJlcmVzcG9uc2VGaW5pc2hlZFRpbWUgKi9dID0gbnVsbDtcclxuICAgICAgICBzZWxmLmNhbGxiYWNrRmluaXNoZWRUaW1lID0gbnVsbDtcclxuICAgICAgICBzZWxmLmVuZFRpbWUgPSBudWxsO1xyXG4gICAgICAgIHNlbGYueGhyTW9uaXRvcmluZ1N0YXRlID0gbmV3IFhIUk1vbml0b3JpbmdTdGF0ZSgpO1xyXG4gICAgICAgIHNlbGYuY2xpZW50RmFpbHVyZSA9IDA7XHJcbiAgICAgICAgc2VsZltfRFlOX1RSQUNFX0lEIC8qIEBtaW46JTJldHJhY2VJRCAqL10gPSB0cmFjZUlkO1xyXG4gICAgICAgIHNlbGZbX0RZTl9TUEFOX0lEIC8qIEBtaW46JTJlc3BhbklEICovXSA9IHNwYW5JZDtcclxuICAgICAgICBzZWxmW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXSA9IHRyYWNlQ3R4ID09PSBudWxsIHx8IHRyYWNlQ3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0cmFjZUN0eC5nZXRUcmFjZUZsYWdzKCk7XHJcbiAgICAgICAgaWYgKHRyYWNlQ3R4KSB7XHJcbiAgICAgICAgICAgIHNlbGZbX0RZTl9FVkVOVF9UUkFDRV9DVFggLyogQG1pbjolMmVldmVudFRyYWNlQ3R4ICovXSA9IChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgX2FbX0RZTl9UUkFDRV9JRDAgLyogQG1pbjp0cmFjZUlkICovXSA9IHRyYWNlQ3R4W19EWU5fR0VUX1RSQUNFX0lEIC8qIEBtaW46JTJlZ2V0VHJhY2VJZCAqL10oKSxcclxuICAgICAgICAgICAgICAgIF9hW19EWU5fU1BBTl9JRDEgLyogQG1pbjpzcGFuSWQgKi9dID0gdHJhY2VDdHguZ2V0U3BhbklkKCksXHJcbiAgICAgICAgICAgICAgICBfYVtfRFlOX1RSQUNFX0ZMQUdTIC8qIEBtaW46dHJhY2VGbGFncyAqL10gPSB0cmFjZUN0eFtfRFlOX0dFVF9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZWdldFRyYWNlRmxhZ3MgKi9dKCksXHJcbiAgICAgICAgICAgICAgICBfYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzZWxmW19EWU5fRVZFTlRfVFJBQ0VfQ1RYIC8qIEBtaW46JTJlZXZlbnRUcmFjZUN0eCAqL10gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkeW5hbWljUHJvdG8oYWpheFJlY29yZCwgc2VsZiwgZnVuY3Rpb24gKHNlbGYpIHtcclxuICAgICAgICAgICAgc2VsZi5nZXRBYnNvbHV0ZVVybCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmW19EWU5fUkVRVUVTVF9VUkwgLyogQG1pbjolMmVyZXF1ZXN0VXJsICovXSA/IHVybEdldEFic29sdXRlVXJsKHNlbGZbX0RZTl9SRVFVRVNUX1VSTCAvKiBAbWluOiUyZXJlcXVlc3RVcmwgKi9dKSA6IG51bGw7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHNlbGYuZ2V0UGF0aE5hbWUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZltfRFlOX1JFUVVFU1RfVVJMIC8qIEBtaW46JTJlcmVxdWVzdFVybCAqL10gPyBkYXRhU2FuaXRpemVVcmwoX2xvZ2dlciwgdXJsR2V0Q29tcGxldGVVcmwoc2VsZltfRFlOX01FVEhPRCAvKiBAbWluOiUyZW1ldGhvZCAqL10sIHNlbGZbX0RZTl9SRVFVRVNUX1VSTCAvKiBAbWluOiUyZXJlcXVlc3RVcmwgKi9dKSkgOiBudWxsO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBzZWxmW19EWU5fX0NSRUFURV9UUkFDS19JVEVNIC8qIEBtaW46JTJlQ3JlYXRlVHJhY2tJdGVtICovXSA9IGZ1bmN0aW9uIChhamF4VHlwZSwgZW5hYmxlUmVxdWVzdEhlYWRlclRyYWNraW5nLCBnZXRSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgLy8gcm91bmQgdG8gMyBkZWNpbWFsIHBvaW50c1xyXG4gICAgICAgICAgICAgICAgc2VsZi5hamF4VG90YWxEdXJhdGlvbiA9IE1hdGgucm91bmQoZGF0ZVRpbWVVdGlsc0R1cmF0aW9uKHNlbGYucmVxdWVzdFNlbnRUaW1lLCBzZWxmLnJlc3BvbnNlRmluaXNoZWRUaW1lKSAqIDEwMDApIC8gMTAwMDtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxmW19EWU5fQUpBWF9UT1RBTF9EVVJBVElPTiAvKiBAbWluOiUyZWFqYXhUb3RhbER1cmF0aW9uICovXSA8IDApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBkZXBlbmRlbmN5ID0gKF9hID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ8XCIgKyBzZWxmW19EWU5fVFJBQ0VfSUQgLyogQG1pbjolMmV0cmFjZUlEICovXSArIFwiLlwiICsgc2VsZltfRFlOX1NQQU5fSUQgLyogQG1pbjolMmVzcGFuSUQgKi9dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHNlbGZbX0RZTl9HRVRfQUJTT0xVVEVfVVJMIC8qIEBtaW46JTJlZ2V0QWJzb2x1dGVVcmwgKi9dKClcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF9hW19EWU5fTkFNRSAvKiBAbWluOm5hbWUgKi9dID0gc2VsZi5nZXRQYXRoTmFtZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hLnR5cGUgPSBhamF4VHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX1NUQVJUX1RJTUUgLyogQG1pbjpzdGFydFRpbWUgKi9dID0gbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBfYS5kdXJhdGlvbiA9IHNlbGZbX0RZTl9BSkFYX1RPVEFMX0RVUkFUSU9OIC8qIEBtaW46JTJlYWpheFRvdGFsRHVyYXRpb24gKi9dLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hLnN1Y2Nlc3MgPSAoKyhzZWxmW19EWU5fU1RBVFVTIC8qIEBtaW46JTJlc3RhdHVzICovXSkpID49IDIwMCAmJiAoKyhzZWxmW19EWU5fU1RBVFVTIC8qIEBtaW46JTJlc3RhdHVzICovXSkpIDwgNDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIF9hLnJlc3BvbnNlQ29kZSA9ICgrKHNlbGZbX0RZTl9TVEFUVVMgLyogQG1pbjolMmVzdGF0dXMgKi9dKSksXHJcbiAgICAgICAgICAgICAgICAgICAgX2EubWV0aG9kID0gc2VsZltfRFlOX01FVEhPRCAvKiBAbWluOiUyZW1ldGhvZCAqL10sXHJcbiAgICAgICAgICAgICAgICAgICAgX2FbU1RSX1BST1BFUlRJRVNdID0geyBIdHRwTWV0aG9kOiBzZWxmW19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF9hKTtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxmW19EWU5fUkVRVUVTVF9TRU5UX1RJTUUgLyogQG1pbjolMmVyZXF1ZXN0U2VudFRpbWUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBjb3JyZWN0IGRlcGVuZGVuY3kgc3RhcnQgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY3lbX0RZTl9TVEFSVF9USU1FIC8qIEBtaW46JTJlc3RhcnRUaW1lICovXSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jeVtfRFlOX1NUQVJUX1RJTUUgLyogQG1pbjolMmVzdGFydFRpbWUgKi9dLnNldFRpbWUoc2VsZltfRFlOX1JFUVVFU1RfU0VOVF9USU1FIC8qIEBtaW46JTJlcmVxdWVzdFNlbnRUaW1lICovXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBBZGQgQWpheCBwZXJmIGRldGFpbHMgaWYgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICBfcG9wdWxhdGVQZXJmRGF0YShzZWxmLCBkZXBlbmRlbmN5KTtcclxuICAgICAgICAgICAgICAgIGlmIChlbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob2JqS2V5cyhzZWxmLnJlcXVlc3RIZWFkZXJzKVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9wcyA9IGRlcGVuZGVuY3lbU1RSX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXSA9IGRlcGVuZGVuY3lbU1RSX1BST1BFUlRJRVMgLyogQG1pbjolMmVwcm9wZXJ0aWVzICovXSB8fCB7fTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHNbX0RZTl9SRVFVRVNUX0hFQURFUlMgLyogQG1pbjolMmVyZXF1ZXN0SGVhZGVycyAqL10gPSBzZWxmW19EWU5fUkVRVUVTVF9IRUFERVJTIC8qIEBtaW46JTJlcmVxdWVzdEhlYWRlcnMgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChnZXRSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IGdldFJlc3BvbnNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVucmljaCBkZXBlbmRlbmN5IHRhcmdldCB3aXRoIGNvcnJlbGF0aW9uIGNvbnRleHQgZnJvbSB0aGUgc2VydmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3JyZWxhdGlvbkNvbnRleHQgPSByZXNwb25zZVtfRFlOX0NPUlJFTEFUSU9OX0NPTlRFWFQgLyogQG1pbjolMmVjb3JyZWxhdGlvbkNvbnRleHQgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29ycmVsYXRpb25Db250ZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmN5LmNvcnJlbGF0aW9uQ29udGV4dCA9IC8qIGRlcGVuZGVuY3kudGFyZ2V0ICsgXCIgfCBcIiArICovIGNvcnJlbGF0aW9uQ29udGV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VbX0RZTl9IRUFERVJfTUFQIC8qIEBtaW46JTJlaGVhZGVyTWFwICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9iaktleXMocmVzcG9uc2UuaGVhZGVyTWFwKVtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BzID0gZGVwZW5kZW5jeVtTVFJfUFJPUEVSVElFUyAvKiBAbWluOiUyZXByb3BlcnRpZXMgKi9dID0gZGVwZW5kZW5jeVtTVFJfUFJPUEVSVElFUyAvKiBAbWluOiUyZXByb3BlcnRpZXMgKi9dIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlc3BvbnNlSGVhZGVycyA9IHJlc3BvbnNlW19EWU5fSEVBREVSX01BUCAvKiBAbWluOiUyZWhlYWRlck1hcCAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuZXJyb3JTdGF0dXNUZXh0ICYmIHNlbGZbX0RZTl9TVEFUVVMgLyogQG1pbjolMmVzdGF0dXMgKi9dID49IDQwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcHMgPSBkZXBlbmRlbmN5W1NUUl9QUk9QRVJUSUVTIC8qIEBtaW46JTJlcHJvcGVydGllcyAqL10gPSBkZXBlbmRlbmN5W1NUUl9QUk9QRVJUSUVTIC8qIEBtaW46JTJlcHJvcGVydGllcyAqL10gfHwge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VUeXBlID09PSBcIlwiIHx8IHJlc3BvbnNlVHlwZSA9PT0gXCJ0ZXh0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZXNwb25zZVRleHQgPSByZXNwb25zZS5yZXNwb25zZVRleHQgPyByZXNwb25zZVtfRFlOX1NUQVRVU19URVhUIC8qIEBtaW46JTJlc3RhdHVzVGV4dCAqL10gKyBcIiAtIFwiICsgcmVzcG9uc2Vbc3RyUmVzcG9uc2VUZXh0XSA6IHJlc3BvbnNlW19EWU5fU1RBVFVTX1RFWFQgLyogQG1pbjolMmVzdGF0dXNUZXh0ICovXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVR5cGUgPT09IFwianNvblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVzcG9uc2VUZXh0ID0gcmVzcG9uc2UucmVzcG9uc2UgPyByZXNwb25zZVtfRFlOX1NUQVRVU19URVhUIC8qIEBtaW46JTJlc3RhdHVzVGV4dCAqL10gKyBcIiAtIFwiICsgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VbX0RZTl9SRVNQT05TRSAvKiBAbWluOiUyZXJlc3BvbnNlICovXSkgOiByZXNwb25zZVtfRFlOX1NUQVRVU19URVhUIC8qIEBtaW46JTJlc3RhdHVzVGV4dCAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVwZW5kZW5jeTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2VsZltfRFlOX0dFVF9QQVJUX0FQUk9QUyAvKiBAbWluOiUyZWdldFBhcnRBUHJvcHMgKi9dID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgdmFyIHBhcnRBID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHZhciB0cmFjZUN0eCA9IHNlbGZbX0RZTl9FVkVOVF9UUkFDRV9DVFggLyogQG1pbjolMmVldmVudFRyYWNlQ3R4ICovXTtcclxuICAgICAgICAgICAgICAgIGlmICh0cmFjZUN0eCAmJiAodHJhY2VDdHhbX0RZTl9UUkFDRV9JRDAgLyogQG1pbjolMmV0cmFjZUlkICovXSB8fCB0cmFjZUN0eFtfRFlOX1NQQU5fSUQxIC8qIEBtaW46JTJlc3BhbklkICovXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0QSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0cmFjZUV4dCA9IHBhcnRBW0V4dGVuc2lvbnMuVHJhY2VFeHRdID0gKF9hID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hW19EWU5fVFJBQ0VfSUQgLyogQG1pbjp0cmFjZUlEICovXSA9IHRyYWNlQ3R4W19EWU5fVFJBQ0VfSUQwIC8qIEBtaW46JTJldHJhY2VJZCAqL10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLnBhcmVudElEID0gdHJhY2VDdHhbX0RZTl9TUEFOX0lEMSAvKiBAbWluOiUyZXNwYW5JZCAqL10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRyYWNlQ3R4W19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2VFeHRbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dID0gdHJhY2VDdHhbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJ0QTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBhamF4UmVjb3JkLnByb3RvdHlwZS5nZXRBYnNvbHV0ZVVybC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBhamF4UmVjb3JkLnByb3RvdHlwZS5nZXRQYXRoTmFtZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBhamF4UmVjb3JkLnByb3RvdHlwZS5DcmVhdGVUcmFja0l0ZW0uXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgYWpheFJlY29yZC5wcm90b3R5cGUuZ2V0UGFydEFQcm9wcy5cclxuICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhbiBJRTggYnVnIHdoZW4gdXNpbmcgZHluYW1pY1Byb3RvKCkgd2l0aCBjbGFzc2VzIHRoYXQgZG9uJ3QgaGF2ZSBhbnlcbiAgICAvLyBub24tZHluYW1pYyBmdW5jdGlvbnMgb3Igc3RhdGljIHByb3BlcnRpZXMvZnVuY3Rpb25zIHdoZW4gdXNpbmcgdWdsaWZ5LWpzIHRvIG1pbmlmeSB0aGUgcmVzdWx0aW5nIGNvZGUuXG4gICAgLy8gdGhpcyB3aWxsIGJlIHJlbW92ZWQgd2hlbiBFUzMgc3VwcG9ydCBpcyBkcm9wcGVkLlxuICAgIGFqYXhSZWNvcmQuX19pZUR5bj0xO1xuXG4gICAgcmV0dXJuIGFqYXhSZWNvcmQ7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IGFqYXhSZWNvcmQgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWpheFJlY29yZC5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBEZXBlbmRlbmNpZXMgUGx1Z2luLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBfX2Fzc2lnbkZuIGFzIF9fYXNzaWduLCBfX2V4dGVuZHNGbiBhcyBfX2V4dGVuZHMgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXNoaW1zXCI7XHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IENvcnJlbGF0aW9uSWRIZWxwZXIsIERpc2FibGVkUHJvcGVydHlOYW1lLCBQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllciwgUmVtb3RlRGVwZW5kZW5jeURhdGEsIFJlcXVlc3RIZWFkZXJzLCBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dEZyb21UcmFjZSwgY3JlYXRlVGVsZW1ldHJ5SXRlbSwgY3JlYXRlVHJhY2VQYXJlbnQsIGRhdGVUaW1lVXRpbHNOb3csIGZvcm1hdFRyYWNlUGFyZW50LCBpc0ludGVybmFsQXBwbGljYXRpb25JbnNpZ2h0c0VuZHBvaW50IH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb25cIjtcclxuaW1wb3J0IHsgQmFzZVRlbGVtZXRyeVBsdWdpbiwgSW5zdHJ1bWVudEZ1bmMsIEluc3RydW1lbnRQcm90bywgX3Rocm93SW50ZXJuYWwsIGFyckZvckVhY2gsIGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0LCBjcmVhdGVVbmlxdWVOYW1lc3BhY2UsIGRlZXBGcmVlemUsIGR1bXBPYmosIGV2ZW50T24sIGdlbmVyYXRlVzNDSWQsIGdldEV4Y2VwdGlvbk5hbWUsIGdldEdsb2JhbCwgZ2V0SUVWZXJzaW9uLCBnZXRMb2NhdGlvbiwgZ2V0UGVyZm9ybWFuY2UsIGlzRnVuY3Rpb24sIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1N0cmluZywgaXNYaHJTdXBwb3J0ZWQsIG1lcmdlRXZ0TmFtZXNwYWNlLCBvYmpGb3JFYWNoS2V5LCBzdHJQcm90b3R5cGUsIHN0clRyaW0gfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgU1RSX1BST1BFUlRJRVMgfSBmcm9tIFwiLi9JbnRlcm5hbENvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBfRFlOX0FCT1JUX0RPTkUsIF9EWU5fQUREX1JFUVVFU1RfQ09OVEVYVCwgX0RZTl9BSkFYX0RJQUdOT1NUSUNTX01FUzE5LCBfRFlOX0FKQVhfUEVSRl9MT09LVVBfREVMMTgsIF9EWU5fQVBQX0lELCBfRFlOX0NBTl9JTkNMVURFX0NPUlJFTEFUMywgX0RZTl9DT05URVhULCBfRFlOX0NPUkUsIF9EWU5fQ09SUkVMQVRJT05fQ09OVEVYVCwgX0RZTl9ESVNBQkxFX0FKQVhfVFJBQ0tJTjEyLCBfRFlOX0RJU0FCTEVfRkVUQ0hfVFJBQ0tJMTMsIF9EWU5fRElTVFJJQlVURURfVFJBQ0lOR181LCBfRFlOX0VOQUJMRV9BSkFYX0VSUk9SX1NUNywgX0RZTl9FTkFCTEVfQUpBWF9QRVJGX1RSQTgsIF9EWU5fRU5BQkxFX1JFUVVFU1RfSEVBREU2LCBfRFlOX0VOQUJMRV9SRVNQT05TRV9IRUFEMTAsIF9EWU5fRVJST1JfU1RBVFVTX1RFWFQsIF9EWU5fRVhDTFVERV9SRVFVRVNUX0ZST00xMSwgX0RZTl9HRVRfQUJTT0xVVEVfVVJMLCBfRFlOX0dFVF9BTExfUkVTUE9OU0VfSEVBMTYsIF9EWU5fR0VUX0NPUlJFTEFUSU9OX0NPTlQxNywgX0RZTl9HRVRfUEFSVF9BUFJPUFMsIF9EWU5fR0VUX1RSQUNFX0ZMQUdTLCBfRFlOX0dFVF9UUkFDRV9JRCwgX0RZTl9IRUFERVJTLCBfRFlOX0hFQURFUl9NQVAsIF9EWU5fSU5DTFVERV9DT1JSRUxBVElPTl8yLCBfRFlOX0lOU1QsIF9EWU5fTEVOR1RILCBfRFlOX01BWF9BSkFYX0NBTExTX1BFUl9WOSwgX0RZTl9NRVRIT0QsIF9EWU5fTkFNRSwgX0RZTl9PUEVOX0RPTkUsIF9EWU5fUEVSRl9NQVJLLCBfRFlOX1BFUkZfVElNSU5HLCBfRFlOX1JFUVVFU1RfSEVBREVSUywgX0RZTl9SRVFVRVNUX1NFTlRfVElNRSwgX0RZTl9SRVFVRVNUX1VSTCwgX0RZTl9SRVNQT05TRSwgX0RZTl9SRVNQT05TRV9GSU5JU0hFRF9USTE1LCBfRFlOX1JFU1BPTlNFX1RFWFQsIF9EWU5fU0VORF9ET05FLCBfRFlOX1NFVF9SRVFVRVNUX0hFQURFUiwgX0RZTl9TUEFOX0lELCBfRFlOX1NQQU5fSUQxLCBfRFlOX1NUQVJUX1RJTUUsIF9EWU5fU1RBVEVfQ0hBTkdFX0FUVEFDSEUxNCwgX0RZTl9TVEFUVVMsIF9EWU5fU1RBVFVTX1RFWFQsIF9EWU5fVE9fTE9XRVJfQ0FTRSwgX0RZTl9UUkFDRV9GTEFHUywgX0RZTl9UUkFDRV9JRCwgX0RZTl9UUkFDRV9JRDAsIF9EWU5fVFJBQ0tfREVQRU5ERU5DWV9EQVQ0LCBfRFlOX19DUkVBVEVfVFJBQ0tfSVRFTSB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBhamF4UmVjb3JkIH0gZnJvbSBcIi4vYWpheFJlY29yZFwiO1xyXG52YXIgQUpBWF9NT05JVE9SX1BSRUZJWCA9IFwiYWkuYWp4bW4uXCI7XHJcbnZhciBzdHJEaWFnTG9nID0gXCJkaWFnTG9nXCI7XHJcbnZhciBzdHJBamF4RGF0YSA9IFwiYWpheERhdGFcIjtcclxudmFyIHN0ckZldGNoID0gXCJmZXRjaFwiO1xyXG52YXIgRVJST1JfSEVBREVSID0gXCJGYWlsZWQgdG8gbW9uaXRvciBYTUxIdHRwUmVxdWVzdFwiO1xyXG52YXIgRVJST1JfUFJFRklYID0gXCIsIG1vbml0b3JpbmcgZGF0YSBmb3IgdGhpcyBhamF4IGNhbGwgXCI7XHJcbnZhciBFUlJPUl9QT1NURklYID0gRVJST1JfUFJFRklYICsgXCJtYXkgYmUgaW5jb3JyZWN0LlwiO1xyXG52YXIgRVJST1JfTk9UX1NFTlQgPSBFUlJPUl9QUkVGSVggKyBcIndvbid0IGJlIHNlbnQuXCI7XHJcbnZhciBDT1JSRUxBVElPTl9IRUFERVJfRVJST1IgPSBcIkZhaWxlZCB0byBnZXQgUmVxdWVzdC1Db250ZXh0IGNvcnJlbGF0aW9uIGhlYWRlciBhcyBpdCBtYXkgYmUgbm90IGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSBvciBub3QgYWNjZXNzaWJsZS5cIjtcclxudmFyIENVU1RPTV9SRVFVRVNUX0NPTlRFWFRfRVJST1IgPSBcIkZhaWxlZCB0byBhZGQgY3VzdG9tIGRlZmluZWQgcmVxdWVzdCBjb250ZXh0IGFzIGNvbmZpZ3VyZWQgY2FsbCBiYWNrIG1heSBtaXNzaW5nIGEgbnVsbCBjaGVjay5cIjtcclxudmFyIEZBSUxFRF9UT19DQUxDVUxBVEVfRFVSQVRJT05fRVJST1IgPSBcIkZhaWxlZCB0byBjYWxjdWxhdGUgdGhlIGR1cmF0aW9uIG9mIHRoZSBcIjtcclxuLy8gVXNpbmcgYSBnbG9iYWwgdmFsdWUgc28gdGhhdCB0byBoYW5kbGUgc2FtZSBpS2V5IHdpdGggbXVsdGlwbGUgYXBwIGluc2lnaHRzIGluc3RhbmNlcyAobW9zdGx5IGZvciB0ZXN0aW5nKVxyXG52YXIgX21hcmtDb3VudCA9IDA7XHJcbi8qKiBASWdub3JlICovXHJcbmZ1bmN0aW9uIF9zdXBwb3J0c0ZldGNoKCkge1xyXG4gICAgdmFyIF9nbG9iYWwgPSBnZXRHbG9iYWwoKTtcclxuICAgIGlmICghX2dsb2JhbCB8fFxyXG4gICAgICAgIGlzTnVsbE9yVW5kZWZpbmVkKF9nbG9iYWwuUmVxdWVzdCkgfHxcclxuICAgICAgICBpc051bGxPclVuZGVmaW5lZChfZ2xvYmFsLlJlcXVlc3Rbc3RyUHJvdG90eXBlXSkgfHxcclxuICAgICAgICBpc051bGxPclVuZGVmaW5lZChfZ2xvYmFsW3N0ckZldGNoXSkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBfZ2xvYmFsW3N0ckZldGNoXTtcclxufVxyXG4vKipcclxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFqYXggbW9uaXRvcmluZyBjYW4gYmUgZW5hYmxlZCBvbiB0aGlzIGRvY3VtZW50XHJcbiAqIEByZXR1cm5zIFRydWUgaWYgQWpheCBtb25pdG9yaW5nIGlzIHN1cHBvcnRlZCBvbiB0aGlzIHBhZ2UsIG90aGVyd2lzZSBmYWxzZVxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5mdW5jdGlvbiBfc3VwcG9ydHNBamF4TW9uaXRvcmluZyhhamF4TW9uaXRvckluc3RhbmNlKSB7XHJcbiAgICB2YXIgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICBpZiAoaXNYaHJTdXBwb3J0ZWQoKSkge1xyXG4gICAgICAgIHZhciBwcm90byA9IFhNTEh0dHBSZXF1ZXN0W3N0clByb3RvdHlwZV07XHJcbiAgICAgICAgcmVzdWx0ID0gIWlzTnVsbE9yVW5kZWZpbmVkKHByb3RvKSAmJlxyXG4gICAgICAgICAgICAhaXNOdWxsT3JVbmRlZmluZWQocHJvdG8ub3BlbikgJiYgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzZWN1cml0eS9kZXRlY3Qtbm9uLWxpdGVyYWwtZnMtZmlsZW5hbWUgLS0gZmFsc2UgcG9zaXRpdmVcclxuICAgICAgICAgICAgIWlzTnVsbE9yVW5kZWZpbmVkKHByb3RvLnNlbmQpICYmXHJcbiAgICAgICAgICAgICFpc051bGxPclVuZGVmaW5lZChwcm90by5hYm9ydCk7XHJcbiAgICB9XHJcbiAgICB2YXIgaWVWZXIgPSBnZXRJRVZlcnNpb24oKTtcclxuICAgIGlmIChpZVZlciAmJiBpZVZlciA8IDkpIHtcclxuICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAvLyBEaXNhYmxlIGlmIHRoZSBYbWxIdHRwUmVxdWVzdCBjYW4ndCBiZSBleHRlbmRlZCBvciBob29rZWRcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgICAgIHhocltzdHJBamF4RGF0YV0gPSB7fTtcclxuICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBjYW4gdXBkYXRlIHRoZSBwcm90b3R5cGVcclxuICAgICAgICAgICAgdmFyIHRoZU9wZW4gPSBYTUxIdHRwUmVxdWVzdFtzdHJQcm90b3R5cGVdLm9wZW47XHJcbiAgICAgICAgICAgIFhNTEh0dHBSZXF1ZXN0W3N0clByb3RvdHlwZV0ub3BlbiA9IHRoZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIFdlIGNhbid0IGRlY29yYXRlIHRoZSB4aHIgb2JqZWN0IHNvIGRpc2FibGUgbW9uaXRvcmluZ1xyXG4gICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgX3Rocm93SW50ZXJuYWxDcml0aWNhbChhamF4TW9uaXRvckluc3RhbmNlLCAxNSAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZE1vbml0b3JBamF4T3BlbiAqLywgXCJGYWlsZWQgdG8gZW5hYmxlIFhNTEh0dHBSZXF1ZXN0IG1vbml0b3JpbmcsIGV4dGVuc2lvbiBpcyBub3Qgc3VwcG9ydGVkXCIsIHtcclxuICAgICAgICAgICAgICAgIGV4Y2VwdGlvbjogZHVtcE9iaihlKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbi8qKiBASWdub3JlICovXHJcbmZ1bmN0aW9uIF9nZXRGYWlsZWRBamF4RGlhZ25vc3RpY3NNZXNzYWdlKHhocikge1xyXG4gICAgdmFyIHJlc3VsdCA9IFwiXCI7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmICh4aHIgJiYgeGhyW3N0ckFqYXhEYXRhXSAmJiB4aHJbc3RyQWpheERhdGFdW19EWU5fUkVRVUVTVF9VUkwgLyogQG1pbjolMmVyZXF1ZXN0VXJsICovXSkge1xyXG4gICAgICAgICAgICByZXN1bHQgKz0gXCIodXJsOiAnXCIgKyB4aHJbc3RyQWpheERhdGFdW19EWU5fUkVRVUVTVF9VUkwgLyogQG1pbjolMmVyZXF1ZXN0VXJsICovXSArIFwiJylcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4vKiogQGlnbm9yZSAqL1xyXG5mdW5jdGlvbiBfdGhyb3dJbnRlcm5hbENyaXRpY2FsKGFqYXhNb25pdG9ySW5zdGFuY2UsIG1zZ0lkLCBtZXNzYWdlLCBwcm9wZXJ0aWVzLCBpc1VzZXJBY3QpIHtcclxuICAgIF90aHJvd0ludGVybmFsKGFqYXhNb25pdG9ySW5zdGFuY2Vbc3RyRGlhZ0xvZ10oKSwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCBtc2dJZCwgbWVzc2FnZSwgcHJvcGVydGllcywgaXNVc2VyQWN0KTtcclxufVxyXG4vKiogQGlnbm9yZSAqL1xyXG5mdW5jdGlvbiBfdGhyb3dJbnRlcm5hbFdhcm5pbmcoYWpheE1vbml0b3JJbnN0YW5jZSwgbXNnSWQsIG1lc3NhZ2UsIHByb3BlcnRpZXMsIGlzVXNlckFjdCkge1xyXG4gICAgX3Rocm93SW50ZXJuYWwoYWpheE1vbml0b3JJbnN0YW5jZVtzdHJEaWFnTG9nXSgpLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgbXNnSWQsIG1lc3NhZ2UsIHByb3BlcnRpZXMsIGlzVXNlckFjdCk7XHJcbn1cclxuLyoqIEBJZ25vcmUgKi9cclxuZnVuY3Rpb24gX2NyZWF0ZUVycm9yQ2FsbGJhY2tGdW5jKGFqYXhNb25pdG9ySW5zdGFuY2UsIGludGVybmFsTWVzc2FnZSwgbWVzc2FnZSkge1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICBfdGhyb3dJbnRlcm5hbENyaXRpY2FsKGFqYXhNb25pdG9ySW5zdGFuY2UsIGludGVybmFsTWVzc2FnZSwgbWVzc2FnZSwge1xyXG4gICAgICAgICAgICBhamF4RGlhZ25vc3RpY3NNZXNzYWdlOiBfZ2V0RmFpbGVkQWpheERpYWdub3N0aWNzTWVzc2FnZShhcmdzW19EWU5fSU5TVCAvKiBAbWluOiUyZWluc3QgKi9dKSxcclxuICAgICAgICAgICAgZXhjZXB0aW9uOiBkdW1wT2JqKGFyZ3MuZXJyKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBfaW5kZXhPZih2YWx1ZSwgbWF0Y2gpIHtcclxuICAgIGlmICh2YWx1ZSAmJiBtYXRjaCkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKG1hdGNoKTtcclxuICAgIH1cclxuICAgIHJldHVybiAtMTtcclxufVxyXG5mdW5jdGlvbiBfYWRkSGFuZGxlcihjb250YWluZXIsIGlkLCB0aGVGdW5jKSB7XHJcbiAgICB2YXIgdGhlSGFuZGxlciA9IHtcclxuICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgZm46IHRoZUZ1bmNcclxuICAgIH07XHJcbiAgICBjb250YWluZXIucHVzaCh0aGVIYW5kbGVyKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGFyckZvckVhY2goY29udGFpbmVyLCBmdW5jdGlvbiAoaW5pdGlhbGl6ZXIsIGlkeCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGluaXRpYWxpemVyLmlkID09PSB0aGVIYW5kbGVyLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiBfcHJvY2Vzc0RlcGVuZGVuY3lDb250YWluZXIoY29yZSwgY29udGFpbmVyLCBkZXRhaWxzLCBtZXNzYWdlKSB7XHJcbiAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcclxuICAgIGFyckZvckVhY2goY29udGFpbmVyLCBmdW5jdGlvbiAodGhlRnVuYywgaWR4KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHRoZUZ1bmMuZm4uY2FsbChudWxsLCBkZXRhaWxzKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIF90aHJvd0ludGVybmFsKGNvcmUgJiYgY29yZS5sb2dnZXIsIDEgLyogZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCAqLywgNjQgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5UZWxlbWV0cnlJbml0aWFsaXplckZhaWxlZCAqLywgXCJEZXBlbmRlbmN5IFwiICsgbWVzc2FnZSArIFwiIFsjXCIgKyBpZHggKyBcIl0gZmFpbGVkOiBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5mdW5jdGlvbiBfcHJvY2Vzc0RlcGVuZGVuY3lMaXN0ZW5lcnMobGlzdGVuZXJzLCBjb3JlLCBhamF4RGF0YSwgeGhyLCBpbnB1dCwgaW5pdCkge1xyXG4gICAgdmFyIF9hO1xyXG4gICAgdmFyIGluaXRpYWxpemVyc0NvdW50ID0gbGlzdGVuZXJzW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXTtcclxuICAgIGlmIChpbml0aWFsaXplcnNDb3VudCA+IDApIHtcclxuICAgICAgICB2YXIgZGV0YWlscyA9IChfYSA9IHt9LFxyXG4gICAgICAgICAgICBfYVtfRFlOX0NPUkUgLyogQG1pbjpjb3JlICovXSA9IGNvcmUsXHJcbiAgICAgICAgICAgIF9hLnhociA9IHhocixcclxuICAgICAgICAgICAgX2EuaW5wdXQgPSBpbnB1dCxcclxuICAgICAgICAgICAgX2EuaW5pdCA9IGluaXQsXHJcbiAgICAgICAgICAgIF9hLnRyYWNlSWQgPSBhamF4RGF0YVtfRFlOX1RSQUNFX0lEIC8qIEBtaW46JTJldHJhY2VJRCAqL10sXHJcbiAgICAgICAgICAgIF9hLnNwYW5JZCA9IGFqYXhEYXRhW19EWU5fU1BBTl9JRCAvKiBAbWluOiUyZXNwYW5JRCAqL10sXHJcbiAgICAgICAgICAgIF9hLnRyYWNlRmxhZ3MgPSBhamF4RGF0YVtfRFlOX1RSQUNFX0ZMQUdTIC8qIEBtaW46JTJldHJhY2VGbGFncyAqL10sXHJcbiAgICAgICAgICAgIF9hLmNvbnRleHQgPSBhamF4RGF0YVtfRFlOX0NPTlRFWFQgLyogQG1pbjolMmVjb250ZXh0ICovXSB8fCB7fSxcclxuICAgICAgICAgICAgX2EpO1xyXG4gICAgICAgIF9wcm9jZXNzRGVwZW5kZW5jeUNvbnRhaW5lcihjb3JlLCBsaXN0ZW5lcnMsIGRldGFpbHMsIFwibGlzdGVuZXJcIik7XHJcbiAgICAgICAgYWpheERhdGFbX0RZTl9UUkFDRV9JRCAvKiBAbWluOiUyZXRyYWNlSUQgKi9dID0gZGV0YWlsc1tfRFlOX1RSQUNFX0lEMCAvKiBAbWluOiUyZXRyYWNlSWQgKi9dO1xyXG4gICAgICAgIGFqYXhEYXRhW19EWU5fU1BBTl9JRCAvKiBAbWluOiUyZXNwYW5JRCAqL10gPSBkZXRhaWxzW19EWU5fU1BBTl9JRDEgLyogQG1pbjolMmVzcGFuSWQgKi9dO1xyXG4gICAgICAgIGFqYXhEYXRhW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXSA9IGRldGFpbHNbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dO1xyXG4gICAgICAgIGFqYXhEYXRhW19EWU5fQ09OVEVYVCAvKiBAbWluOiUyZWNvbnRleHQgKi9dID0gZGV0YWlsc1tfRFlOX0NPTlRFWFQgLyogQG1pbjolMmVjb250ZXh0ICovXTtcclxuICAgIH1cclxufVxyXG52YXIgQkxPQl9DT1JFID0gXCIqLmJsb2IuY29yZS5cIjtcclxuZXhwb3J0IHZhciBEZmx0QWpheENvcnJlbGF0aW9uSGVhZGVyRXhEb21haW5zID0gZGVlcEZyZWV6ZShbXHJcbiAgICBCTE9CX0NPUkUgKyBcIndpbmRvd3MubmV0XCIsXHJcbiAgICBCTE9CX0NPUkUgKyBcImNoaW5hY2xvdWRhcGkuY25cIixcclxuICAgIEJMT0JfQ09SRSArIFwiY2xvdWRhcGkuZGVcIixcclxuICAgIEJMT0JfQ09SRSArIFwidXNnb3ZjbG91ZGFwaS5uZXRcIlxyXG5dKTtcclxudmFyIF9pbnRlcm5hbEV4Y2x1ZGVFbmRwb2ludHMgPSBbXHJcbiAgICAvaHR0cHM6XFwvXFwvW15cXC9dKihcXC5waXBlXFwuYXJpYXxhcmlhXFwucGlwZXxldmVudHNcXC5kYXRhfGNvbGxlY3RvclxcLmF6dXJlKVxcLlteXFwvXStcXC8oT25lQ29sbGVjdG9yXFwvMXxDb2xsZWN0b3JcXC8zKVxcLjAvaVxyXG5dO1xyXG5mdW5jdGlvbiBfZ2V0RGVmYXVsdENvbmZpZygpIHtcclxuICAgIHZhciBfYTtcclxuICAgIHZhciBjb25maWcgPSAoX2EgPSB7fSxcclxuICAgICAgICBfYVtfRFlOX01BWF9BSkFYX0NBTExTX1BFUl9WOSAvKiBAbWluOm1heEFqYXhDYWxsc1BlclZpZXcgKi9dID0gNTAwLFxyXG4gICAgICAgIF9hW19EWU5fRElTQUJMRV9BSkFYX1RSQUNLSU4xMiAvKiBAbWluOmRpc2FibGVBamF4VHJhY2tpbmcgKi9dID0gZmFsc2UsXHJcbiAgICAgICAgX2FbX0RZTl9ESVNBQkxFX0ZFVENIX1RSQUNLSTEzIC8qIEBtaW46ZGlzYWJsZUZldGNoVHJhY2tpbmcgKi9dID0gZmFsc2UsXHJcbiAgICAgICAgX2FbX0RZTl9FWENMVURFX1JFUVVFU1RfRlJPTTExIC8qIEBtaW46ZXhjbHVkZVJlcXVlc3RGcm9tQXV0b1RyYWNraW5nUGF0dGVybnMgKi9dID0gdW5kZWZpbmVkLFxyXG4gICAgICAgIF9hLmRpc2FibGVDb3JyZWxhdGlvbkhlYWRlcnMgPSBmYWxzZSxcclxuICAgICAgICBfYS5kaXN0cmlidXRlZFRyYWNpbmdNb2RlID0gMSAvKiBlRGlzdHJpYnV0ZWRUcmFjaW5nTW9kZXMuQUlfQU5EX1czQyAqLyxcclxuICAgICAgICBfYS5jb3JyZWxhdGlvbkhlYWRlckV4Y2x1ZGVkRG9tYWlucyA9IERmbHRBamF4Q29ycmVsYXRpb25IZWFkZXJFeERvbWFpbnMsXHJcbiAgICAgICAgX2EuY29ycmVsYXRpb25IZWFkZXJEb21haW5zID0gdW5kZWZpbmVkLFxyXG4gICAgICAgIF9hLmNvcnJlbGF0aW9uSGVhZGVyRXhjbHVkZVBhdHRlcm5zID0gdW5kZWZpbmVkLFxyXG4gICAgICAgIF9hW19EWU5fQVBQX0lEIC8qIEBtaW46YXBwSWQgKi9dID0gdW5kZWZpbmVkLFxyXG4gICAgICAgIF9hLmVuYWJsZUNvcnNDb3JyZWxhdGlvbiA9IGZhbHNlLFxyXG4gICAgICAgIF9hW19EWU5fRU5BQkxFX1JFUVVFU1RfSEVBREU2IC8qIEBtaW46ZW5hYmxlUmVxdWVzdEhlYWRlclRyYWNraW5nICovXSA9IGZhbHNlLFxyXG4gICAgICAgIF9hW19EWU5fRU5BQkxFX1JFU1BPTlNFX0hFQUQxMCAvKiBAbWluOmVuYWJsZVJlc3BvbnNlSGVhZGVyVHJhY2tpbmcgKi9dID0gZmFsc2UsXHJcbiAgICAgICAgX2FbX0RZTl9FTkFCTEVfQUpBWF9FUlJPUl9TVDcgLyogQG1pbjplbmFibGVBamF4RXJyb3JTdGF0dXNUZXh0ICovXSA9IGZhbHNlLFxyXG4gICAgICAgIF9hW19EWU5fRU5BQkxFX0FKQVhfUEVSRl9UUkE4IC8qIEBtaW46ZW5hYmxlQWpheFBlcmZUcmFja2luZyAqL10gPSBmYWxzZSxcclxuICAgICAgICBfYS5tYXhBamF4UGVyZkxvb2t1cEF0dGVtcHRzID0gMyxcclxuICAgICAgICBfYVtfRFlOX0FKQVhfUEVSRl9MT09LVVBfREVMMTggLyogQG1pbjphamF4UGVyZkxvb2t1cERlbGF5ICovXSA9IDI1LFxyXG4gICAgICAgIF9hLmlnbm9yZUhlYWRlcnMgPSBbXHJcbiAgICAgICAgICAgIFwiQXV0aG9yaXphdGlvblwiLFxyXG4gICAgICAgICAgICBcIlgtQVBJLUtleVwiLFxyXG4gICAgICAgICAgICBcIldXVy1BdXRoZW50aWNhdGVcIlxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgX2FbX0RZTl9BRERfUkVRVUVTVF9DT05URVhUIC8qIEBtaW46YWRkUmVxdWVzdENvbnRleHQgKi9dID0gdW5kZWZpbmVkLFxyXG4gICAgICAgIF9hLmFkZEludEVuZHBvaW50cyA9IHRydWUsXHJcbiAgICAgICAgX2EpO1xyXG4gICAgcmV0dXJuIGNvbmZpZztcclxufVxyXG5mdW5jdGlvbiBfZ2V0RW1wdHlDb25maWcoKSB7XHJcbiAgICB2YXIgZW1wdHlDb25maWcgPSBfZ2V0RGVmYXVsdENvbmZpZygpO1xyXG4gICAgb2JqRm9yRWFjaEtleShlbXB0eUNvbmZpZywgZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgZW1wdHlDb25maWdbdmFsdWVdID0gdW5kZWZpbmVkO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZW1wdHlDb25maWc7XHJcbn1cclxudmFyIEFqYXhNb25pdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgX19leHRlbmRzKEFqYXhNb25pdG9yLCBfc3VwZXIpO1xyXG4gICAgZnVuY3Rpb24gQWpheE1vbml0b3IoKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcclxuICAgICAgICBfdGhpcy5pZGVudGlmaWVyID0gQWpheE1vbml0b3IuaWRlbnRpZmllcjtcclxuICAgICAgICBfdGhpcy5wcmlvcml0eSA9IDEyMDtcclxuICAgICAgICB2YXIgX2ZldGNoSW5pdGlhbGl6ZWQ7IC8vIGZldGNoIG1vbml0b3JpbmcgaW5pdGlhbGl6ZWRcclxuICAgICAgICB2YXIgX3hockluaXRpYWxpemVkOyAvLyBYSFIgbW9uaXRvcmluZyBpbml0aWFsaXplZFxyXG4gICAgICAgIHZhciBfY3VycmVudFdpbmRvd0hvc3Q7XHJcbiAgICAgICAgdmFyIF9jb25maWc7XHJcbiAgICAgICAgdmFyIF9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmc7XHJcbiAgICAgICAgdmFyIF9lbmFibGVBamF4RXJyb3JTdGF0dXNUZXh0O1xyXG4gICAgICAgIHZhciBfdHJhY2tBamF4QXR0ZW1wdHM7XHJcbiAgICAgICAgdmFyIF9jb250ZXh0O1xyXG4gICAgICAgIHZhciBfaXNVc2luZ1czQ0hlYWRlcnM7XHJcbiAgICAgICAgdmFyIF9pc1VzaW5nQUlIZWFkZXJzO1xyXG4gICAgICAgIHZhciBfbWFya1ByZWZpeDtcclxuICAgICAgICB2YXIgX2VuYWJsZUFqYXhQZXJmVHJhY2tpbmc7XHJcbiAgICAgICAgdmFyIF9tYXhBamF4Q2FsbHNQZXJWaWV3O1xyXG4gICAgICAgIHZhciBfZW5hYmxlUmVzcG9uc2VIZWFkZXJUcmFja2luZztcclxuICAgICAgICB2YXIgX2Rpc2FibGVkVXJscztcclxuICAgICAgICB2YXIgX2Rpc2FibGVBamF4VHJhY2tpbmc7XHJcbiAgICAgICAgdmFyIF9kaXNhYmxlRmV0Y2hUcmFja2luZztcclxuICAgICAgICB2YXIgX2V4Y2x1ZGVSZXF1ZXN0RnJvbUF1dG9UcmFja2luZ1BhdHRlcm5zO1xyXG4gICAgICAgIHZhciBfYWRkUmVxdWVzdENvbnRleHQ7XHJcbiAgICAgICAgdmFyIF9ldnROYW1lc3BhY2U7XHJcbiAgICAgICAgdmFyIF9kZXBlbmRlbmN5SGFuZGxlcklkO1xyXG4gICAgICAgIHZhciBfZGVwZW5kZW5jeUxpc3RlbmVycztcclxuICAgICAgICB2YXIgX2RlcGVuZGVuY3lJbml0aWFsaXplcnM7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKEFqYXhNb25pdG9yLCBfdGhpcywgZnVuY3Rpb24gKF9zZWxmLCBfYmFzZSkge1xyXG4gICAgICAgICAgICB2YXIgX2FkZEhvb2sgPSBfYmFzZS5fYWRkSG9vaztcclxuICAgICAgICAgICAgX2luaXREZWZhdWx0cygpO1xyXG4gICAgICAgICAgICBfc2VsZi5pbml0aWFsaXplID0gZnVuY3Rpb24gKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pIHtcclxuICAgICAgICAgICAgICAgIGlmICghX3NlbGYuaXNJbml0aWFsaXplZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2Jhc2UuaW5pdGlhbGl6ZShjb25maWcsIGNvcmUsIGV4dGVuc2lvbnMsIHBsdWdpbkNoYWluKTtcclxuICAgICAgICAgICAgICAgICAgICBfZXZ0TmFtZXNwYWNlID0gbWVyZ2VFdnROYW1lc3BhY2UoY3JlYXRlVW5pcXVlTmFtZXNwYWNlKFwiYWpheFwiKSwgY29yZSAmJiBjb3JlLmV2dE5hbWVzcGFjZSAmJiBjb3JlLmV2dE5hbWVzcGFjZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBfcG9wdWxhdGVEZWZhdWx0cyhjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9pbnN0cnVtZW50WGhyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2luc3RydW1lbnRGZXRjaCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9wb3B1bGF0ZUNvbnRleHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuX2RvVGVhcmRvd24gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLnRyYWNrRGVwZW5kZW5jeURhdGEgPSBmdW5jdGlvbiAoZGVwZW5kZW5jeSwgcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgX3JlcG9ydERlcGVuZGVuY3lJbnRlcm5hbChfZGVwZW5kZW5jeUluaXRpYWxpemVycywgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10sIG51bGwsIGRlcGVuZGVuY3ksIHByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0lOQ0xVREVfQ09SUkVMQVRJT05fMiAvKiBAbWluOiUyZWluY2x1ZGVDb3JyZWxhdGlvbkhlYWRlcnMgKi9dID0gZnVuY3Rpb24gKGFqYXhEYXRhLCBpbnB1dCwgaW5pdCwgeGhyKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUZXN0IEhvb2sgdG8gYWxsb3cgdGhlIG92ZXJyaWRpbmcgb2YgdGhlIGxvY2F0aW9uIGhvc3RcclxuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50V2luZG93SG9zdCA9IF9zZWxmW1wiX2N1cnJlbnRXaW5kb3dIb3N0XCJdIHx8IF9jdXJyZW50V2luZG93SG9zdDtcclxuICAgICAgICAgICAgICAgIF9wcm9jZXNzRGVwZW5kZW5jeUxpc3RlbmVycyhfZGVwZW5kZW5jeUxpc3RlbmVycywgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10sIGFqYXhEYXRhLCB4aHIsIGlucHV0LCBpbml0KTtcclxuICAgICAgICAgICAgICAgIGlmIChpbnB1dCkgeyAvLyBGZXRjaFxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChDb3JyZWxhdGlvbklkSGVscGVyW19EWU5fQ0FOX0lOQ0xVREVfQ09SUkVMQVQzIC8qIEBtaW46JTJlY2FuSW5jbHVkZUNvcnJlbGF0aW9uSGVhZGVyICovXShfY29uZmlnLCBhamF4RGF0YVtfRFlOX0dFVF9BQlNPTFVURV9VUkwgLyogQG1pbjolMmVnZXRBYnNvbHV0ZVVybCAqL10oKSwgY3VycmVudFdpbmRvd0hvc3QpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5pdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXQgaGVhZGVycyBvdmVycmlkZSBvcmlnaW5hbCByZXF1ZXN0IGhlYWRlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28sIGlmIHRoZXkgZXhpc3QgdXNlIG9ubHkgdGhlbSwgb3RoZXJ3aXNlIHVzZSByZXF1ZXN0J3MgYmVjYXVzZSB0aGV5IHNob3VsZCBoYXZlIGJlZW4gYXBwbGllZCBpbiB0aGUgZmlyc3QgcGxhY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IHVzaW5nIG9yaWdpbmFsIHJlcXVlc3QgaGVhZGVycyB3aWxsIHJlc3VsdCBpbiB0aGVtIGJlaW5nIGxvc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0W19EWU5fSEVBREVSUyAvKiBAbWluOiUyZWhlYWRlcnMgKi9dIHx8IChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyAoaW5wdXRbX0RZTl9IRUFERVJTIC8qIEBtaW46JTJlaGVhZGVycyAqL10gfHwge30pIDoge30pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9pc1VzaW5nQUlIZWFkZXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBcInxcIiArIGFqYXhEYXRhW19EWU5fVFJBQ0VfSUQgLyogQG1pbjolMmV0cmFjZUlEICovXSArIFwiLlwiICsgYWpheERhdGFbX0RZTl9TUEFOX0lEIC8qIEBtaW46JTJlc3BhbklEICovXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMuc2V0KFJlcXVlc3RIZWFkZXJzWzMgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RJZEhlYWRlciAqL10sIGlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZW5hYmxlUmVxdWVzdEhlYWRlclRyYWNraW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9SRVFVRVNUX0hFQURFUlMgLyogQG1pbjolMmVyZXF1ZXN0SGVhZGVycyAqL11bUmVxdWVzdEhlYWRlcnNbMyAvKiBlUmVxdWVzdEhlYWRlcnMucmVxdWVzdElkSGVhZGVyICovXV0gPSBpZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXBwSWQgPSBfY29uZmlnW19EWU5fQVBQX0lEIC8qIEBtaW46JTJlYXBwSWQgKi9dIHx8IChfY29udGV4dCAmJiBfY29udGV4dFtfRFlOX0FQUF9JRCAvKiBAbWluOiUyZWFwcElkICovXSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLnNldChSZXF1ZXN0SGVhZGVyc1swIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEhlYWRlciAqL10sIFJlcXVlc3RIZWFkZXJzWzIgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RDb250ZXh0QXBwSWRGb3JtYXQgKi9dICsgYXBwSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfSEVBREVSUyAvKiBAbWluOiUyZXJlcXVlc3RIZWFkZXJzICovXVtSZXF1ZXN0SGVhZGVyc1swIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEhlYWRlciAqL11dID0gUmVxdWVzdEhlYWRlcnNbMiAvKiBlUmVxdWVzdEhlYWRlcnMucmVxdWVzdENvbnRleHRBcHBJZEZvcm1hdCAqL10gKyBhcHBJZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzVXNpbmdXM0NIZWFkZXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHJhY2VGbGFncyA9IGFqYXhEYXRhW19EWU5fVFJBQ0VfRkxBR1MgLyogQG1pbjolMmV0cmFjZUZsYWdzICovXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0cmFjZUZsYWdzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlRmxhZ3MgPSAweDAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyYWNlUGFyZW50ID0gZm9ybWF0VHJhY2VQYXJlbnQoY3JlYXRlVHJhY2VQYXJlbnQoYWpheERhdGFbX0RZTl9UUkFDRV9JRCAvKiBAbWluOiUyZXRyYWNlSUQgKi9dLCBhamF4RGF0YVtfRFlOX1NQQU5fSUQgLyogQG1pbjolMmVzcGFuSUQgKi9dLCB0cmFjZUZsYWdzKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLnNldChSZXF1ZXN0SGVhZGVyc1s0IC8qIGVSZXF1ZXN0SGVhZGVycy50cmFjZVBhcmVudEhlYWRlciAqL10sIHRyYWNlUGFyZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZW5hYmxlUmVxdWVzdEhlYWRlclRyYWNraW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9SRVFVRVNUX0hFQURFUlMgLyogQG1pbjolMmVyZXF1ZXN0SGVhZGVycyAqL11bUmVxdWVzdEhlYWRlcnNbNCAvKiBlUmVxdWVzdEhlYWRlcnMudHJhY2VQYXJlbnRIZWFkZXIgKi9dXSA9IHRyYWNlUGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRbX0RZTl9IRUFERVJTIC8qIEBtaW46JTJlaGVhZGVycyAqL10gPSBoZWFkZXJzO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5pdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHhocikgeyAvLyBYSFJcclxuICAgICAgICAgICAgICAgICAgICBpZiAoQ29ycmVsYXRpb25JZEhlbHBlcltfRFlOX0NBTl9JTkNMVURFX0NPUlJFTEFUMyAvKiBAbWluOiUyZWNhbkluY2x1ZGVDb3JyZWxhdGlvbkhlYWRlciAqL10oX2NvbmZpZywgYWpheERhdGFbX0RZTl9HRVRfQUJTT0xVVEVfVVJMIC8qIEBtaW46JTJlZ2V0QWJzb2x1dGVVcmwgKi9dKCksIGN1cnJlbnRXaW5kb3dIb3N0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzVXNpbmdBSUhlYWRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpZCA9IFwifFwiICsgYWpheERhdGFbX0RZTl9UUkFDRV9JRCAvKiBAbWluOiUyZXRyYWNlSUQgKi9dICsgXCIuXCIgKyBhamF4RGF0YVtfRFlOX1NQQU5fSUQgLyogQG1pbjolMmVzcGFuSUQgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeGhyW19EWU5fU0VUX1JFUVVFU1RfSEVBREVSIC8qIEBtaW46JTJlc2V0UmVxdWVzdEhlYWRlciAqL10oUmVxdWVzdEhlYWRlcnNbMyAvKiBlUmVxdWVzdEhlYWRlcnMucmVxdWVzdElkSGVhZGVyICovXSwgaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfSEVBREVSUyAvKiBAbWluOiUyZXJlcXVlc3RIZWFkZXJzICovXVtSZXF1ZXN0SGVhZGVyc1szIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0SWRIZWFkZXIgKi9dXSA9IGlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcHBJZCA9IF9jb25maWdbX0RZTl9BUFBfSUQgLyogQG1pbjolMmVhcHBJZCAqL10gfHwgKF9jb250ZXh0ICYmIF9jb250ZXh0W19EWU5fQVBQX0lEIC8qIEBtaW46JTJlYXBwSWQgKi9dKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhocltfRFlOX1NFVF9SRVFVRVNUX0hFQURFUiAvKiBAbWluOiUyZXNldFJlcXVlc3RIZWFkZXIgKi9dKFJlcXVlc3RIZWFkZXJzWzAgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RDb250ZXh0SGVhZGVyICovXSwgUmVxdWVzdEhlYWRlcnNbMiAvKiBlUmVxdWVzdEhlYWRlcnMucmVxdWVzdENvbnRleHRBcHBJZEZvcm1hdCAqL10gKyBhcHBJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2VuYWJsZVJlcXVlc3RIZWFkZXJUcmFja2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fUkVRVUVTVF9IRUFERVJTIC8qIEBtaW46JTJlcmVxdWVzdEhlYWRlcnMgKi9dW1JlcXVlc3RIZWFkZXJzWzAgLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RDb250ZXh0SGVhZGVyICovXV0gPSBSZXF1ZXN0SGVhZGVyc1syIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEFwcElkRm9ybWF0ICovXSArIGFwcElkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaXNVc2luZ1czQ0hlYWRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0cmFjZUZsYWdzID0gYWpheERhdGFbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRyYWNlRmxhZ3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2VGbGFncyA9IDB4MDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHJhY2VQYXJlbnQgPSBmb3JtYXRUcmFjZVBhcmVudChjcmVhdGVUcmFjZVBhcmVudChhamF4RGF0YVtfRFlOX1RSQUNFX0lEIC8qIEBtaW46JTJldHJhY2VJRCAqL10sIGFqYXhEYXRhW19EWU5fU1BBTl9JRCAvKiBAbWluOiUyZXNwYW5JRCAqL10sIHRyYWNlRmxhZ3MpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhocltfRFlOX1NFVF9SRVFVRVNUX0hFQURFUiAvKiBAbWluOiUyZXNldFJlcXVlc3RIZWFkZXIgKi9dKFJlcXVlc3RIZWFkZXJzWzQgLyogZVJlcXVlc3RIZWFkZXJzLnRyYWNlUGFyZW50SGVhZGVyICovXSwgdHJhY2VQYXJlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfSEVBREVSUyAvKiBAbWluOiUyZXJlcXVlc3RIZWFkZXJzICovXVtSZXF1ZXN0SGVhZGVyc1s0IC8qIGVSZXF1ZXN0SGVhZGVycy50cmFjZVBhcmVudEhlYWRlciAqL11dID0gdHJhY2VQYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHhocjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fVFJBQ0tfREVQRU5ERU5DWV9EQVQ0IC8qIEBtaW46JTJldHJhY2tEZXBlbmRlbmN5RGF0YUludGVybmFsICovXSA9IGZ1bmN0aW9uIChkZXBlbmRlbmN5LCBwcm9wZXJ0aWVzLCBzeXN0ZW1Qcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX21heEFqYXhDYWxsc1BlclZpZXcgPT09IC0xIHx8IF90cmFja0FqYXhBdHRlbXB0cyA8IF9tYXhBamF4Q2FsbHNQZXJWaWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSGFjayBzaW5jZSBleHBlY3RlZCBmb3JtYXQgaW4gdzNjIG1vZGUgaXMgfGFiYy5kZWYuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTm9uLXczYyBmb3JtYXQgaXMgfGFiYy5kZWZcclxuICAgICAgICAgICAgICAgICAgICAvLyBAdG9kbyBSZW1vdmUgaWYgYmV0dGVyIHNvbHV0aW9uIGlzIGF2YWlsYWJsZSwgZS5nLiBoYW5kbGUgaW4gcG9ydGFsXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChfY29uZmlnW19EWU5fRElTVFJJQlVURURfVFJBQ0lOR181IC8qIEBtaW46JTJlZGlzdHJpYnV0ZWRUcmFjaW5nTW9kZSAqL10gPT09IDIgLyogZURpc3RyaWJ1dGVkVHJhY2luZ01vZGVzLlczQyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBfY29uZmlnW19EWU5fRElTVFJJQlVURURfVFJBQ0lOR181IC8qIEBtaW46JTJlZGlzdHJpYnV0ZWRUcmFjaW5nTW9kZSAqL10gPT09IDEgLyogZURpc3RyaWJ1dGVkVHJhY2luZ01vZGVzLkFJX0FORF9XM0MgKi8pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHR5cGVvZiBkZXBlbmRlbmN5LmlkID09PSBcInN0cmluZ1wiICYmIGRlcGVuZGVuY3kuaWRbZGVwZW5kZW5jeS5pZFtfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gLSAxXSAhPT0gXCIuXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jeS5pZCArPSBcIi5cIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGRlcGVuZGVuY3lbX0RZTl9TVEFSVF9USU1FIC8qIEBtaW46JTJlc3RhcnRUaW1lICovXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jeVtfRFlOX1NUQVJUX1RJTUUgLyogQG1pbjolMmVzdGFydFRpbWUgKi9dID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBjcmVhdGVUZWxlbWV0cnlJdGVtKGRlcGVuZGVuY3ksIFJlbW90ZURlcGVuZGVuY3lEYXRhLmRhdGFUeXBlLCBSZW1vdGVEZXBlbmRlbmN5RGF0YS5lbnZlbG9wZVR5cGUsIF9zZWxmW3N0ckRpYWdMb2ddKCksIHByb3BlcnRpZXMsIHN5c3RlbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dLnRyYWNrKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoX3RyYWNrQWpheEF0dGVtcHRzID09PSBfbWF4QWpheENhbGxzUGVyVmlldykge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsQ3JpdGljYWwoX3NlbGYsIDU1IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuTWF4QWpheFBlclBWRXhjZWVkZWQgKi8sIFwiTWF4aW11bSBhamF4IHBlciBwYWdlIHZpZXcgbGltaXQgcmVhY2hlZCwgYWpheCBtb25pdG9yaW5nIGlzIHBhdXNlZCB1bnRpbCB0aGUgbmV4dCB0cmFja1BhZ2VWaWV3KCkuIEluIG9yZGVyIHRvIGluY3JlYXNlIHRoZSBsaW1pdCBzZXQgdGhlIG1heEFqYXhDYWxsc1BlclZpZXcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuXCIsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKytfdHJhY2tBamF4QXR0ZW1wdHM7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmFkZERlcGVuZGVuY3lMaXN0ZW5lciA9IGZ1bmN0aW9uIChkZXBlbmRlbmN5TGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBfYWRkSGFuZGxlcihfZGVwZW5kZW5jeUxpc3RlbmVycywgX2RlcGVuZGVuY3lIYW5kbGVySWQrKywgZGVwZW5kZW5jeUxpc3RlbmVyKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuYWRkRGVwZW5kZW5jeUluaXRpYWxpemVyID0gZnVuY3Rpb24gKGRlcGVuZGVuY3lJbml0aWFsaXplcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9hZGRIYW5kbGVyKF9kZXBlbmRlbmN5SW5pdGlhbGl6ZXJzLCBfZGVwZW5kZW5jeUhhbmRsZXJJZCsrLCBkZXBlbmRlbmN5SW5pdGlhbGl6ZXIpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfaW5pdERlZmF1bHRzKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIF9mZXRjaEluaXRpYWxpemVkID0gZmFsc2U7IC8vIGZldGNoIG1vbml0b3JpbmcgaW5pdGlhbGl6ZWRcclxuICAgICAgICAgICAgICAgIF94aHJJbml0aWFsaXplZCA9IGZhbHNlOyAvLyBYSFIgbW9uaXRvcmluZyBpbml0aWFsaXplZFxyXG4gICAgICAgICAgICAgICAgX2N1cnJlbnRXaW5kb3dIb3N0ID0gbG9jYXRpb24gJiYgbG9jYXRpb24uaG9zdCAmJiBsb2NhdGlvbi5ob3N0W19EWU5fVE9fTE9XRVJfQ0FTRSAvKiBAbWluOiUyZXRvTG93ZXJDYXNlICovXSgpO1xyXG4gICAgICAgICAgICAgICAgX2NvbmZpZyA9IEFqYXhNb25pdG9yLmdldEVtcHR5Q29uZmlnKCk7XHJcbiAgICAgICAgICAgICAgICBfZW5hYmxlUmVxdWVzdEhlYWRlclRyYWNraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBfZW5hYmxlQWpheEVycm9yU3RhdHVzVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgX3RyYWNrQWpheEF0dGVtcHRzID0gMDtcclxuICAgICAgICAgICAgICAgIF9jb250ZXh0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9pc1VzaW5nVzNDSGVhZGVycyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgX2lzVXNpbmdBSUhlYWRlcnMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIF9tYXJrUHJlZml4ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9lbmFibGVBamF4UGVyZlRyYWNraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBfbWF4QWpheENhbGxzUGVyVmlldyA9IDA7XHJcbiAgICAgICAgICAgICAgICBfZW5hYmxlUmVzcG9uc2VIZWFkZXJUcmFja2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgX2Rpc2FibGVkVXJscyA9IHt9O1xyXG4gICAgICAgICAgICAgICAgX2Rpc2FibGVBamF4VHJhY2tpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIF9kaXNhYmxlRmV0Y2hUcmFja2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgX2V4Y2x1ZGVSZXF1ZXN0RnJvbUF1dG9UcmFja2luZ1BhdHRlcm5zID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9hZGRSZXF1ZXN0Q29udGV4dCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfZXZ0TmFtZXNwYWNlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9kZXBlbmRlbmN5SGFuZGxlcklkID0gMDtcclxuICAgICAgICAgICAgICAgIF9kZXBlbmRlbmN5TGlzdGVuZXJzID0gW107XHJcbiAgICAgICAgICAgICAgICBfZGVwZW5kZW5jeUluaXRpYWxpemVycyA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9wb3B1bGF0ZURlZmF1bHRzKGNvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0eCA9IGNyZWF0ZVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0KG51bGwsIGNvbmZpZywgX3NlbGZbX0RZTl9DT1JFIC8qIEBtaW46JTJlY29yZSAqL10pO1xyXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdG8gdGhlIGVtcHR5IGNvbmZpZ1xyXG4gICAgICAgICAgICAgICAgX2NvbmZpZyA9IF9nZXRFbXB0eUNvbmZpZygpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGRlZmF1bHRDb25maWcgPSBfZ2V0RGVmYXVsdENvbmZpZygpO1xyXG4gICAgICAgICAgICAgICAgb2JqRm9yRWFjaEtleShkZWZhdWx0Q29uZmlnLCBmdW5jdGlvbiAoZmllbGQsIHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2NvbmZpZ1tmaWVsZF0gPSBjdHguZ2V0Q29uZmlnKEFqYXhNb25pdG9yLmlkZW50aWZpZXIsIGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHZhciBkaXN0cmlidXRlZFRyYWNpbmdNb2RlID0gX2NvbmZpZ1tfRFlOX0RJU1RSSUJVVEVEX1RSQUNJTkdfNSAvKiBAbWluOiUyZWRpc3RyaWJ1dGVkVHJhY2luZ01vZGUgKi9dO1xyXG4gICAgICAgICAgICAgICAgX2VuYWJsZVJlcXVlc3RIZWFkZXJUcmFja2luZyA9IF9jb25maWdbX0RZTl9FTkFCTEVfUkVRVUVTVF9IRUFERTYgLyogQG1pbjolMmVlbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcgKi9dO1xyXG4gICAgICAgICAgICAgICAgX2VuYWJsZUFqYXhFcnJvclN0YXR1c1RleHQgPSBfY29uZmlnW19EWU5fRU5BQkxFX0FKQVhfRVJST1JfU1Q3IC8qIEBtaW46JTJlZW5hYmxlQWpheEVycm9yU3RhdHVzVGV4dCAqL107XHJcbiAgICAgICAgICAgICAgICBfZW5hYmxlQWpheFBlcmZUcmFja2luZyA9IF9jb25maWdbX0RZTl9FTkFCTEVfQUpBWF9QRVJGX1RSQTggLyogQG1pbjolMmVlbmFibGVBamF4UGVyZlRyYWNraW5nICovXTtcclxuICAgICAgICAgICAgICAgIF9tYXhBamF4Q2FsbHNQZXJWaWV3ID0gX2NvbmZpZ1tfRFlOX01BWF9BSkFYX0NBTExTX1BFUl9WOSAvKiBAbWluOiUyZW1heEFqYXhDYWxsc1BlclZpZXcgKi9dO1xyXG4gICAgICAgICAgICAgICAgX2VuYWJsZVJlc3BvbnNlSGVhZGVyVHJhY2tpbmcgPSBfY29uZmlnW19EWU5fRU5BQkxFX1JFU1BPTlNFX0hFQUQxMCAvKiBAbWluOiUyZWVuYWJsZVJlc3BvbnNlSGVhZGVyVHJhY2tpbmcgKi9dO1xyXG4gICAgICAgICAgICAgICAgX2V4Y2x1ZGVSZXF1ZXN0RnJvbUF1dG9UcmFja2luZ1BhdHRlcm5zID0gW10uY29uY2F0KF9jb25maWdbX0RZTl9FWENMVURFX1JFUVVFU1RfRlJPTTExIC8qIEBtaW46JTJlZXhjbHVkZVJlcXVlc3RGcm9tQXV0b1RyYWNraW5nUGF0dGVybnMgKi9dIHx8IFtdLCBfY29uZmlnLmFkZEludEVuZHBvaW50cyAhPT0gZmFsc2UgPyBfaW50ZXJuYWxFeGNsdWRlRW5kcG9pbnRzIDogW10pO1xyXG4gICAgICAgICAgICAgICAgX2FkZFJlcXVlc3RDb250ZXh0ID0gX2NvbmZpZ1tfRFlOX0FERF9SRVFVRVNUX0NPTlRFWFQgLyogQG1pbjolMmVhZGRSZXF1ZXN0Q29udGV4dCAqL107XHJcbiAgICAgICAgICAgICAgICBfaXNVc2luZ0FJSGVhZGVycyA9IGRpc3RyaWJ1dGVkVHJhY2luZ01vZGUgPT09IDAgLyogZURpc3RyaWJ1dGVkVHJhY2luZ01vZGVzLkFJICovIHx8IGRpc3RyaWJ1dGVkVHJhY2luZ01vZGUgPT09IDEgLyogZURpc3RyaWJ1dGVkVHJhY2luZ01vZGVzLkFJX0FORF9XM0MgKi87XHJcbiAgICAgICAgICAgICAgICBfaXNVc2luZ1czQ0hlYWRlcnMgPSBkaXN0cmlidXRlZFRyYWNpbmdNb2RlID09PSAxIC8qIGVEaXN0cmlidXRlZFRyYWNpbmdNb2Rlcy5BSV9BTkRfVzNDICovIHx8IGRpc3RyaWJ1dGVkVHJhY2luZ01vZGUgPT09IDIgLyogZURpc3RyaWJ1dGVkVHJhY2luZ01vZGVzLlczQyAqLztcclxuICAgICAgICAgICAgICAgIGlmIChfZW5hYmxlQWpheFBlcmZUcmFja2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpS2V5ID0gY29uZmlnLmluc3RydW1lbnRhdGlvbktleSB8fCBcInVua3duXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlLZXlbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gNSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfbWFya1ByZWZpeCA9IEFKQVhfTU9OSVRPUl9QUkVGSVggKyBpS2V5LnN1YnN0cmluZyhpS2V5W19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSAtIDUpICsgXCIuXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfbWFya1ByZWZpeCA9IEFKQVhfTU9OSVRPUl9QUkVGSVggKyBpS2V5ICsgXCIuXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgX2Rpc2FibGVBamF4VHJhY2tpbmcgPSAhIV9jb25maWdbX0RZTl9ESVNBQkxFX0FKQVhfVFJBQ0tJTjEyIC8qIEBtaW46JTJlZGlzYWJsZUFqYXhUcmFja2luZyAqL107XHJcbiAgICAgICAgICAgICAgICBfZGlzYWJsZUZldGNoVHJhY2tpbmcgPSAhIV9jb25maWdbX0RZTl9ESVNBQkxFX0ZFVENIX1RSQUNLSTEzIC8qIEBtaW46JTJlZGlzYWJsZUZldGNoVHJhY2tpbmcgKi9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9wb3B1bGF0ZUNvbnRleHQoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcHJvcEV4dCA9IF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dLmdldFBsdWdpbihQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllcik7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcEV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9jb250ZXh0ID0gcHJvcEV4dC5wbHVnaW5bX0RZTl9DT05URVhUIC8qIEBtaW46JTJlY29udGV4dCAqL107IC8vIHdlIGNvdWxkIG1vdmUgSVByb3BlcnRpZXNQbHVnaW4gdG8gY29tbW9uIGFzIHdlbGxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBkaXNjYXJkIHRoZSBoZWFkZXIgaWYgaXQncyBkZWZpbmVkIGFzIGlnbm9yZUhlYWRlcnMgaW4gSUNvcnJlbGF0aW9uQ29uZmlnXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9jYW5JbmNsdWRlSGVhZGVycyhoZWFkZXIpIHtcclxuICAgICAgICAgICAgICAgIHZhciBybHQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGhlYWRlciB8fCBfY29uZmlnLmlnbm9yZUhlYWRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKF9jb25maWcuaWdub3JlSGVhZGVycywgKGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleVtfRFlOX1RPX0xPV0VSX0NBU0UgLyogQG1pbjolMmV0b0xvd2VyQ2FzZSAqL10oKSA9PT0gaGVhZGVyW19EWU5fVE9fTE9XRVJfQ0FTRSAvKiBAbWluOiUyZXRvTG93ZXJDYXNlICovXSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBybHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBybHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gRmV0Y2ggU3R1ZmZcclxuICAgICAgICAgICAgZnVuY3Rpb24gX2luc3RydW1lbnRGZXRjaCgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBmZXRjaCA9IF9zdXBwb3J0c0ZldGNoKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZldGNoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGdsb2JhbCA9IGdldEdsb2JhbCgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGlzUG9seWZpbGwgPSBmZXRjaC5wb2x5ZmlsbDtcclxuICAgICAgICAgICAgICAgIGlmICghX2Rpc2FibGVGZXRjaFRyYWNraW5nICYmICFfZmV0Y2hJbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9hZGRIb29rKEluc3RydW1lbnRGdW5jKGdsb2JhbCwgc3RyRmV0Y2gsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnM6IF9ldnROYW1lc3BhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCByZXF1ZXN0IGhvb2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxOiBmdW5jdGlvbiAoY2FsbERldGFpbHMsIGlucHV0LCBpbml0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmV0Y2hEYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfZGlzYWJsZUZldGNoVHJhY2tpbmcgJiYgX2ZldGNoSW5pdGlhbGl6ZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhX2lzRGlzYWJsZWRSZXF1ZXN0KG51bGwsIGlucHV0LCBpbml0KSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBwb2x5ZmlsIGFuZCBYSFIgaW5zdHJ1bWVudGVkIHRoZW4gbGV0IFhIUiByZXBvcnQgb3RoZXJ3aXNlIHdlIGdldCBkdXBsaWNhdGVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIShpc1BvbHlmaWxsICYmIF94aHJJbml0aWFsaXplZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3R4ID0gY2FsbERldGFpbHMuY3R4KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hEYXRhID0gX2NyZWF0ZUZldGNoUmVjb3JkKGlucHV0LCBpbml0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3SW5pdCA9IF9zZWxmW19EWU5fSU5DTFVERV9DT1JSRUxBVElPTl8yIC8qIEBtaW46JTJlaW5jbHVkZUNvcnJlbGF0aW9uSGVhZGVycyAqL10oZmV0Y2hEYXRhLCBpbnB1dCwgaW5pdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0luaXQgIT09IGluaXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbERldGFpbHMuc2V0KDEsIG5ld0luaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguZGF0YSA9IGZldGNoRGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcnNwOiBmdW5jdGlvbiAoY2FsbERldGFpbHMsIGlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9kaXNhYmxlRmV0Y2hUcmFja2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmZXRjaERhdGFfMSA9IGNhbGxEZXRhaWxzLmN0eCgpLmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZldGNoRGF0YV8xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIHJlc3VsdCB3aXRoIHRoZSBuZXcgcHJvbWlzZSBmcm9tIHRoaXMgY29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsRGV0YWlscy5yc2x0ID0gY2FsbERldGFpbHMucnNsdC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3JlcG9ydEZldGNoTWV0cmljcyhjYWxsRGV0YWlscywgKHJlc3BvbnNlIHx8IHt9KVtfRFlOX1NUQVRVUyAvKiBAbWluOiUyZXN0YXR1cyAqL10sIGlucHV0LCByZXNwb25zZSwgZmV0Y2hEYXRhXzEsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFqYXhSZXNwb25zZSA9IChfYSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlW19EWU5fU1RBVFVTX1RFWFQgLyogQG1pbjolMmVzdGF0dXNUZXh0ICovXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX0hFQURFUl9NQVAgLyogQG1pbjpoZWFkZXJNYXAgKi9dID0gbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FbX0RZTl9DT1JSRUxBVElPTl9DT05URVhUIC8qIEBtaW46Y29ycmVsYXRpb25Db250ZXh0ICovXSA9IF9nZXRGZXRjaENvcnJlbGF0aW9uQ29udGV4dChyZXNwb25zZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2VuYWJsZVJlc3BvbnNlSGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlSGVhZGVyTWFwXzEgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwgbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9jYW5JbmNsdWRlSGVhZGVycyhuYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyTWFwXzFbbmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhSZXNwb25zZVtfRFlOX0hFQURFUl9NQVAgLyogQG1pbjolMmVoZWFkZXJNYXAgKi9dID0gcmVzcG9uc2VIZWFkZXJNYXBfMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFqYXhSZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVtcImNhdGNoXCJdKGZ1bmN0aW9uIChyZWFzb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9yZXBvcnRGZXRjaE1ldHJpY3MoY2FsbERldGFpbHMsIDAsIGlucHV0LCBudWxsLCBmZXRjaERhdGFfMSwgbnVsbCwgeyBlcnJvcjogcmVhc29uLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZWFzb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGFuIGVycm9yIGNhbGxiYWNrIHRvIHJlcG9ydCBhbnkgaG9vayBlcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGtFcnI6IF9jcmVhdGVFcnJvckNhbGxiYWNrRnVuYyhfc2VsZiwgMTUgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5GYWlsZWRNb25pdG9yQWpheE9wZW4gKi8sIFwiRmFpbGVkIHRvIG1vbml0b3IgV2luZG93LmZldGNoXCIgKyBFUlJPUl9QT1NURklYKVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICBfZmV0Y2hJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc1BvbHlmaWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZmV0Y2ggaXMgYSBwb2x5ZmlsbCB3ZSBuZWVkIHRvIGNhcHR1cmUgdGhlIHJlcXVlc3QgdG8gZW5zdXJlIHRoYXQgd2UgY29ycmVjdGx5IHRyYWNrXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZWQgcmVxdWVzdCBVUkxTIChpLmUuIGludGVybmFsIHVybHMpIHRvIGVuc3VyZSB3ZSBkb24ndCBlbmQgdXAgaW4gYSBjb25zdGFudCBsb29wXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gb2YgcmVwb3J0aW5nIG91cnNlbHZlcywgZm9yIGV4YW1wbGUgUmVhY3QgTmF0aXZlIHVzZXMgYSBwb2x5ZmlsbCBmb3IgZmV0Y2hcclxuICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBQb2x5ZmlsbCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBcInBveXlmaWxsXCIgdGFnIGFyZSBub3Qgc3VwcG9ydGVkXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHdvcmthcm91bmQgaXMgdG8gYWRkIGEgcG9seWZpbGwgcHJvcGVydHkgdG8geW91ciBmZXRjaCBpbXBsZW1lbnRhdGlvbiBiZWZvcmUgaW5pdGlhbGl6aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQXBwIEluc2lnaHRzXHJcbiAgICAgICAgICAgICAgICAgICAgX2FkZEhvb2soSW5zdHJ1bWVudEZ1bmMoZ2xvYmFsLCBzdHJGZXRjaCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuczogX2V2dE5hbWVzcGFjZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxOiBmdW5jdGlvbiAoY2FsbERldGFpbHMsIGlucHV0LCBpbml0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBKdXN0IGNhbGwgc28gdGhhdCB3ZSByZWNvcmQgYW55IGRpc2FibGVkIFVSTFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lzRGlzYWJsZWRSZXF1ZXN0KG51bGwsIGlucHV0LCBpbml0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpc1BvbHlmaWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0YWcgdGhlIGluc3RydW1lbnRlZCBmZXRjaCB3aXRoIHRoZSBzYW1lIHBvbHlmaWxsIHNldHRpbmdzIHRoaXMgaXMgbW9zdGx5IGZvciB0ZXN0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQnV0IGFsc28gc3VwcG9ydHMgbXVsdGlwbGUgQXBwIEluc2lnaHRzIHVzYWdlc1xyXG4gICAgICAgICAgICAgICAgICAgIGdsb2JhbFtzdHJGZXRjaF0ucG9seWZpbGwgPSBpc1BvbHlmaWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9ob29rUHJvdG8odGFyZ2V0LCBmdW5jTmFtZSwgY2FsbGJhY2tzKSB7XHJcbiAgICAgICAgICAgICAgICBfYWRkSG9vayhJbnN0cnVtZW50UHJvdG8odGFyZ2V0LCBmdW5jTmFtZSwgY2FsbGJhY2tzKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2luc3RydW1lbnRYaHIoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX3N1cHBvcnRzQWpheE1vbml0b3JpbmcoX3NlbGYpICYmICFfZGlzYWJsZUFqYXhUcmFja2luZyAmJiAhX3hockluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW5zdHJ1bWVudCBvcGVuXHJcbiAgICAgICAgICAgICAgICAgICAgX2hvb2tQcm90byhYTUxIdHRwUmVxdWVzdCwgXCJvcGVuXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnM6IF9ldnROYW1lc3BhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcTogZnVuY3Rpb24gKGFyZ3MsIG1ldGhvZCwgdXJsLCBhc3luYykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfZGlzYWJsZUFqYXhUcmFja2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB4aHIgPSBhcmdzW19EWU5fSU5TVCAvKiBAbWluOiUyZWluc3QgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhamF4RGF0YSA9IHhocltzdHJBamF4RGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfaXNEaXNhYmxlZFJlcXVlc3QoeGhyLCB1cmwpICYmIF9pc01vbml0b3JlZFhockluc3RhbmNlKHhociwgdHJ1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhamF4RGF0YSB8fCAhYWpheERhdGEueGhyTW9uaXRvcmluZ1N0YXRlW19EWU5fT1BFTl9ET05FIC8qIEBtaW46JTJlb3BlbkRvbmUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGNyZWF0ZSBhIHNpbmdsZSBhamF4RGF0YSAoZXZlbiB3aGVuIG11bHRpcGxlIEFJIGluc3RhbmNlcyBhcmUgcnVubmluZylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9vcGVuSGFuZGxlcih4aHIsIG1ldGhvZCwgdXJsLCBhc3luYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIGF0dGFjaCB0byB0aGUgb24gcmVhZHkgc3RhdGUgY2hhbmdlIChyZXF1aXJlZCBmb3IgaGFuZGxpbmcgbXVsdGlwbGUgaW5zdGFuY2VzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYXR0YWNoVG9PblJlYWR5U3RhdGVDaGFuZ2UoeGhyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhrRXJyOiBfY3JlYXRlRXJyb3JDYWxsYmFja0Z1bmMoX3NlbGYsIDE1IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkTW9uaXRvckFqYXhPcGVuICovLCBFUlJPUl9IRUFERVIgKyBcIi5vcGVuXCIgKyBFUlJPUl9QT1NURklYKVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEluc3RydW1lbnQgc2VuZFxyXG4gICAgICAgICAgICAgICAgICAgIF9ob29rUHJvdG8oWE1MSHR0cFJlcXVlc3QsIFwic2VuZFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5zOiBfZXZ0TmFtZXNwYWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXE6IGZ1bmN0aW9uIChhcmdzLCBjb250ZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9kaXNhYmxlQWpheFRyYWNraW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHhociA9IGFyZ3NbX0RZTl9JTlNUIC8qIEBtaW46JTJlaW5zdCAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFqYXhEYXRhID0geGhyW3N0ckFqYXhEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzTW9uaXRvcmVkWGhySW5zdGFuY2UoeGhyKSAmJiAhYWpheERhdGEueGhyTW9uaXRvcmluZ1N0YXRlW19EWU5fU0VORF9ET05FIC8qIEBtaW46JTJlc2VuZERvbmUgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jcmVhdGVNYXJrSWQoXCJ4aHJcIiwgYWpheERhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfU0VOVF9USU1FIC8qIEBtaW46JTJlcmVxdWVzdFNlbnRUaW1lICovXSA9IGRhdGVUaW1lVXRpbHNOb3coKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9JTkNMVURFX0NPUlJFTEFUSU9OXzIgLyogQG1pbjolMmVpbmNsdWRlQ29ycmVsYXRpb25IZWFkZXJzICovXShhamF4RGF0YSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHhocik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhEYXRhLnhock1vbml0b3JpbmdTdGF0ZVtfRFlOX1NFTkRfRE9ORSAvKiBAbWluOiUyZXNlbmREb25lICovXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoa0VycjogX2NyZWF0ZUVycm9yQ2FsbGJhY2tGdW5jKF9zZWxmLCAxNyAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZE1vbml0b3JBamF4U2VuZCAqLywgRVJST1JfSEVBREVSICsgRVJST1JfUE9TVEZJWClcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBJbnN0cnVtZW50IGFib3J0XHJcbiAgICAgICAgICAgICAgICAgICAgX2hvb2tQcm90byhYTUxIdHRwUmVxdWVzdCwgXCJhYm9ydFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5zOiBfZXZ0TmFtZXNwYWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXE6IGZ1bmN0aW9uIChhcmdzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9kaXNhYmxlQWpheFRyYWNraW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHhociA9IGFyZ3NbX0RZTl9JTlNUIC8qIEBtaW46JTJlaW5zdCAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFqYXhEYXRhID0geGhyW3N0ckFqYXhEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzTW9uaXRvcmVkWGhySW5zdGFuY2UoeGhyKSAmJiAhYWpheERhdGEueGhyTW9uaXRvcmluZ1N0YXRlW19EWU5fQUJPUlRfRE9ORSAvKiBAbWluOiUyZWFib3J0RG9uZSAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheERhdGEuYWJvcnRlZCA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhEYXRhLnhock1vbml0b3JpbmdTdGF0ZVtfRFlOX0FCT1JUX0RPTkUgLyogQG1pbjolMmVhYm9ydERvbmUgKi9dID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhrRXJyOiBfY3JlYXRlRXJyb3JDYWxsYmFja0Z1bmMoX3NlbGYsIDEzIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkTW9uaXRvckFqYXhBYm9ydCAqLywgRVJST1JfSEVBREVSICsgXCIuYWJvcnRcIiArIEVSUk9SX1BPU1RGSVgpXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW5zdHJ1bWVudCBzZXRSZXF1ZXN0SGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgX2hvb2tQcm90byhYTUxIdHRwUmVxdWVzdCwgXCJzZXRSZXF1ZXN0SGVhZGVyXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnM6IF9ldnROYW1lc3BhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcTogZnVuY3Rpb24gKGFyZ3MsIGhlYWRlciwgdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghX2Rpc2FibGVBamF4VHJhY2tpbmcgJiYgX2VuYWJsZVJlcXVlc3RIZWFkZXJUcmFja2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB4aHIgPSBhcmdzW19EWU5fSU5TVCAvKiBAbWluOiUyZWluc3QgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaXNNb25pdG9yZWRYaHJJbnN0YW5jZSh4aHIpICYmIF9jYW5JbmNsdWRlSGVhZGVycyhoZWFkZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhocltzdHJBamF4RGF0YV1bX0RZTl9SRVFVRVNUX0hFQURFUlMgLyogQG1pbjolMmVyZXF1ZXN0SGVhZGVycyAqL11baGVhZGVyXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGtFcnI6IF9jcmVhdGVFcnJvckNhbGxiYWNrRnVuYyhfc2VsZiwgNzEgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5GYWlsZWRNb25pdG9yQWpheFNldFJlcXVlc3RIZWFkZXIgKi8sIEVSUk9SX0hFQURFUiArIFwiLnNldFJlcXVlc3RIZWFkZXJcIiArIEVSUk9SX1BPU1RGSVgpXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3hockluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfaXNEaXNhYmxlZFJlcXVlc3QoeGhyLCByZXF1ZXN0LCBpbml0KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIHRoZVVybCA9ICgoIWlzU3RyaW5nKHJlcXVlc3QpID8gKHJlcXVlc3QgfHwge30pLnVybCB8fCBcIlwiIDogcmVxdWVzdCkgfHwgXCJcIilbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAvLyBjaGVjayBleGNsdWRlUmVxdWVzdEZyb21BdXRvVHJhY2tpbmdQYXR0ZXJucyBiZWZvcmUgc3RyaXBwaW5nIG9mZiBhbnkgcXVlcnkgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKF9leGNsdWRlUmVxdWVzdEZyb21BdXRvVHJhY2tpbmdQYXR0ZXJucywgZnVuY3Rpb24gKHJlZ2V4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRoZVJlZ2V4ID0gcmVnZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3RyaW5nKHJlZ2V4KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVSZWdleCA9IG5ldyBSZWdFeHAocmVnZXgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZCA9IHRoZVJlZ2V4LnRlc3QodGhlVXJsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIC8vIGlmIHJlcXVlc3QgdXJsIG1hdGNoZXMgd2l0aCBleGNsdWRlIHJlZ2V4IHBhdHRlcm4sIHJldHVybiB0cnVlIGFuZCBubyBuZWVkIHRvIGNoZWNrIGZvciBoZWFkZXJzXHJcbiAgICAgICAgICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0Rpc2FibGVkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGlkeCA9IF9pbmRleE9mKHRoZVVybCwgXCI/XCIpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGlkeDIgPSBfaW5kZXhPZih0aGVVcmwsIFwiI1wiKTtcclxuICAgICAgICAgICAgICAgIGlmIChpZHggPT09IC0xIHx8IChpZHgyICE9PSAtMSAmJiBpZHgyIDwgaWR4KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkeCA9IGlkeDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFN0cmlwIG9mZiBhbnkgUXVlcnkgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgdGhlVXJsID0gdGhlVXJsLnN1YnN0cmluZygwLCBpZHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGlzIGluc3RhbmNlIGlzIG5vdCBub3QgdXNlZCBieSBhamF4IGNhbGwgcGVyZm9ybWVkIGluc2lkZSBjbGllbnQgc2lkZSBtb25pdG9yaW5nIHRvIHNlbmQgZGF0YSB0byBjb2xsZWN0b3JcclxuICAgICAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoeGhyKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIExvb2sgb24gdGhlIFhNTEh0dHBSZXF1ZXN0IG9mIHRoZSBVUkwgc3RyaW5nIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZCA9IHhocltEaXNhYmxlZFByb3BlcnR5TmFtZV0gPT09IHRydWUgfHwgdGhlVXJsW0Rpc2FibGVkUHJvcGVydHlOYW1lXSA9PT0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc051bGxPclVuZGVmaW5lZChyZXF1ZXN0KSkgeyAvLyBmZXRjaFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIERpc2FibGVkUHJvcGVydHlOYW1lIGluIGVpdGhlciBSZXF1ZXN0IG9yIFJlcXVlc3RJbml0XHJcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZCA9ICh0eXBlb2YgcmVxdWVzdCA9PT0gXCJvYmplY3RcIiA/IHJlcXVlc3RbRGlzYWJsZWRQcm9wZXJ0eU5hbWVdID09PSB0cnVlIDogZmFsc2UpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbml0ID8gaW5pdFtEaXNhYmxlZFByb3BlcnR5TmFtZV0gPT09IHRydWUgOiBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBBbHNvIGFkZCBleHRyYSBjaGVjayBqdXN0IGluIGNhc2UgdGhlIFhIUiBvciBmZXRjaCBvYmplY3RzIHdoZXJlIG5vdCBkZWNvcmF0ZWQgd2l0aCB0aGUgRGlzYWJsZVByb3BlcnR5IGR1ZSB0byBzZWFsaW5nIG9yIGZyZWV6aW5nXHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzRGlzYWJsZWQgJiYgdGhlVXJsICYmIGlzSW50ZXJuYWxBcHBsaWNhdGlvbkluc2lnaHRzRW5kcG9pbnQodGhlVXJsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIGRpc2FibGVkIHVybCBpZiBub3QgcHJlc2VudFxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX2Rpc2FibGVkVXJsc1t0aGVVcmxdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9kaXNhYmxlZFVybHNbdGhlVXJsXSA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB1cmwgaXMgbGlzdGVkIGFzIGRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9kaXNhYmxlZFVybHNbdGhlVXJsXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEaXNhYmxlZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLy8gPHN1bW1hcnk+VmVyaWZpZXMgdGhhdCBwYXJ0aWNhbGFyIGluc3RhbmNlIG9mIFhNTEh0dHBSZXF1ZXN0IG5lZWRzIHRvIGJlIG1vbml0b3JlZDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgLy8vIDxwYXJhbSBuYW1lPVwiZXhjbHVkZUFqYXhEYXRhVmFsaWRhdGlvblwiPk9wdGlvbmFsIHBhcmFtZXRlci4gVHJ1ZSBpZiBhamF4RGF0YSBtdXN0IGJlIGV4Y2x1ZGVkIGZyb20gdmVyaWZpY2F0aW9uPC9wYXJhbT5cclxuICAgICAgICAgICAgLy8vIDxyZXR1cm5zIHR5cGU9XCJib29sXCI+VHJ1ZSBpZiBpbnN0YW5jZSBuZWVkcyB0byBiZSBtb25pdG9yZWQsIG90aGVyd2lzZSBmYWxzZTwvcmV0dXJucz5cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2lzTW9uaXRvcmVkWGhySW5zdGFuY2UoeGhyLCBleGNsdWRlQWpheERhdGFWYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYWpheFZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdmFyIGluaXRpYWxpemVkID0gX3hockluaXRpYWxpemVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh4aHIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWpheFZhbGlkYXRpb24gPSBleGNsdWRlQWpheERhdGFWYWxpZGF0aW9uID09PSB0cnVlIHx8ICFpc051bGxPclVuZGVmaW5lZCh4aHJbc3RyQWpheERhdGFdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNoZWNraW5nIHRvIHNlZSB0aGF0IGFsbCBpbnRlcmVzdGVkIGZ1bmN0aW9ucyBvbiB4aHIgd2VyZSBpbnN0cnVtZW50ZWRcclxuICAgICAgICAgICAgICAgIHJldHVybiBpbml0aWFsaXplZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNraW5nIG9uIGFqYXhEYXRhIHRvIHNlZSB0aGF0IGl0IHdhcyBub3QgcmVtb3ZlZCBpbiB1c2VyIGNvZGVcclxuICAgICAgICAgICAgICAgICAgICAmJiBhamF4VmFsaWRhdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZ2V0RGlzdHJpYnV0ZWRUcmFjZUN0eCgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkaXN0cmlidXRlZFRyYWNlQ3R4ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmIChfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXSAmJiBfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXS5nZXRUcmFjZUN0eCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGVkVHJhY2VDdHggPSBfc2VsZltfRFlOX0NPUkUgLyogQG1pbjolMmVjb3JlICovXS5nZXRUcmFjZUN0eChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBGYWxsIGJhY2tcclxuICAgICAgICAgICAgICAgIGlmICghZGlzdHJpYnV0ZWRUcmFjZUN0eCAmJiBfY29udGV4dCAmJiBfY29udGV4dC50ZWxlbWV0cnlUcmFjZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGVkVHJhY2VDdHggPSBjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dEZyb21UcmFjZShfY29udGV4dC50ZWxlbWV0cnlUcmFjZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzdHJpYnV0ZWRUcmFjZUN0eDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfb3BlbkhhbmRsZXIoeGhyLCBtZXRob2QsIHVybCwgYXN5bmMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIHZhciBkaXN0cmlidXRlZFRyYWNlQ3R4ID0gX2dldERpc3RyaWJ1dGVkVHJhY2VDdHgoKTtcclxuICAgICAgICAgICAgICAgIHZhciB0cmFjZUlEID0gKGRpc3RyaWJ1dGVkVHJhY2VDdHggJiYgZGlzdHJpYnV0ZWRUcmFjZUN0eFtfRFlOX0dFVF9UUkFDRV9JRCAvKiBAbWluOiUyZWdldFRyYWNlSWQgKi9dKCkpIHx8IGdlbmVyYXRlVzNDSWQoKTtcclxuICAgICAgICAgICAgICAgIHZhciBzcGFuSUQgPSBnZW5lcmF0ZVczQ0lkKCkuc3Vic3RyKDAsIDE2KTtcclxuICAgICAgICAgICAgICAgIHZhciBhamF4RGF0YSA9IG5ldyBhamF4UmVjb3JkKHRyYWNlSUQsIHNwYW5JRCwgX3NlbGZbc3RyRGlhZ0xvZ10oKSwgKF9hID0gX3NlbGYuY29yZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldFRyYWNlQ3R4KCkpO1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dID0gZGlzdHJpYnV0ZWRUcmFjZUN0eCAmJiBkaXN0cmlidXRlZFRyYWNlQ3R4W19EWU5fR0VUX1RSQUNFX0ZMQUdTIC8qIEBtaW46JTJlZ2V0VHJhY2VGbGFncyAqL10oKTtcclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXSA9IG1ldGhvZDtcclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fUkVRVUVTVF9VUkwgLyogQG1pbjolMmVyZXF1ZXN0VXJsICovXSA9IHVybDtcclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhLnhock1vbml0b3JpbmdTdGF0ZVtfRFlOX09QRU5fRE9ORSAvKiBAbWluOiUyZW9wZW5Eb25lICovXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfSEVBREVSUyAvKiBAbWluOiUyZXJlcXVlc3RIZWFkZXJzICovXSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGEuYXN5bmMgPSBhc3luYztcclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fRVJST1JfU1RBVFVTX1RFWFQgLyogQG1pbjolMmVlcnJvclN0YXR1c1RleHQgKi9dID0gX2VuYWJsZUFqYXhFcnJvclN0YXR1c1RleHQ7XHJcbiAgICAgICAgICAgICAgICB4aHJbc3RyQWpheERhdGFdID0gYWpheERhdGE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2F0dGFjaFRvT25SZWFkeVN0YXRlQ2hhbmdlKHhocikge1xyXG4gICAgICAgICAgICAgICAgeGhyW3N0ckFqYXhEYXRhXS54aHJNb25pdG9yaW5nU3RhdGVbX0RZTl9TVEFURV9DSEFOR0VfQVRUQUNIRTE0IC8qIEBtaW46JTJlc3RhdGVDaGFuZ2VBdHRhY2hlZCAqL10gPSBldmVudE9uKHhociwgXCJyZWFkeXN0YXRlY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhociAmJiB4aHIucmVhZHlTdGF0ZSA9PT0gNCAmJiBfaXNNb25pdG9yZWRYaHJJbnN0YW5jZSh4aHIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfb25BamF4Q29tcGxldGUoeGhyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXhjZXB0aW9uVGV4dCA9IGR1bXBPYmooZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBtZXNzYWdlcyB3aXRoIGMwMGMwMjNmLCBhcyB0aGlzIGEga25vd24gSUU5IFhIUiBhYm9ydCBpc3N1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvblRleHQgfHwgX2luZGV4T2YoZXhjZXB0aW9uVGV4dFtfRFlOX1RPX0xPV0VSX0NBU0UgLyogQG1pbjolMmV0b0xvd2VyQ2FzZSAqL10oKSwgXCJjMDBjMDIzZlwiKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsQ3JpdGljYWwoX3NlbGYsIDE2IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkTW9uaXRvckFqYXhSU0MgKi8sIEVSUk9SX0hFQURFUiArIFwiICdyZWFkeXN0YXRlY2hhbmdlJyBldmVudCBoYW5kbGVyXCIgKyBFUlJPUl9QT1NURklYLCAoX2EgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX0FKQVhfRElBR05PU1RJQ1NfTUVTMTkgLyogQG1pbjphamF4RGlhZ25vc3RpY3NNZXNzYWdlICovXSA9IF9nZXRGYWlsZWRBamF4RGlhZ25vc3RpY3NNZXNzYWdlKHhociksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2EuZXhjZXB0aW9uID0gZXhjZXB0aW9uVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSwgX2V2dE5hbWVzcGFjZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2dldFJlc3BvbnNlVGV4dCh4aHIpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlVHlwZSA9IHhoci5yZXNwb25zZVR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gXCJcIiB8fCByZXNwb25zZVR5cGUgPT09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbiByZXNwb25zZVRleHQgaXMgb25seSB2YWxpZCBpZiB0aGUgdHlwZSBpcyBhbiBlbXB0eSBzdHJpbmcgb3IgXCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHhocltfRFlOX1JFU1BPTlNFX1RFWFQgLyogQG1pbjolMmVyZXNwb25zZVRleHQgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2Ugb2YgdGhlIGFib3ZlIGNoZWNrIC0tIGJ1dCBqdXN0IGluIGNhc2UsIHNvIGp1c3QgaWdub3JlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfb25BamF4Q29tcGxldGUoeGhyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYWpheERhdGEgPSB4aHJbc3RyQWpheERhdGFdO1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9SRVNQT05TRV9GSU5JU0hFRF9USTE1IC8qIEBtaW46JTJlcmVzcG9uc2VGaW5pc2hlZFRpbWUgKi9dID0gZGF0ZVRpbWVVdGlsc05vdygpO1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9TVEFUVVMgLyogQG1pbjolMmVzdGF0dXMgKi9dID0geGhyW19EWU5fU1RBVFVTIC8qIEBtaW46JTJlc3RhdHVzICovXTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9yZXBvcnRYaHJFcnJvcihlLCBmYWlsZWRQcm9wcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvclByb3BzID0gZmFpbGVkUHJvcHMgfHwge307XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JQcm9wc1tcImFqYXhEaWFnbm9zdGljc01lc3NhZ2VcIl0gPSBfZ2V0RmFpbGVkQWpheERpYWdub3N0aWNzTWVzc2FnZSh4aHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUHJvcHNbXCJleGNlcHRpb25cIl0gPSBkdW1wT2JqKGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbFdhcm5pbmcoX3NlbGYsIDE0IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkTW9uaXRvckFqYXhEdXIgKi8sIEZBSUxFRF9UT19DQUxDVUxBVEVfRFVSQVRJT05fRVJST1IgKyBcImFqYXggY2FsbFwiICsgRVJST1JfTk9UX1NFTlQsIGVycm9yUHJvcHMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgX2ZpbmRQZXJmUmVzb3VyY2VFbnRyeShcInhtbGh0dHByZXF1ZXN0XCIsIGFqYXhEYXRhLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3kgPSBhamF4RGF0YVtfRFlOX19DUkVBVEVfVFJBQ0tfSVRFTSAvKiBAbWluOiUyZUNyZWF0ZVRyYWNrSXRlbSAqL10oXCJBamF4XCIsIF9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhamF4UmVzcG9uc2UgPSAoX2EgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6IHhocltfRFlOX1NUQVRVU19URVhUIC8qIEBtaW46JTJlc3RhdHVzVGV4dCAqL11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hW19EWU5fSEVBREVSX01BUCAvKiBAbWluOmhlYWRlck1hcCAqL10gPSBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hW19EWU5fQ09SUkVMQVRJT05fQ09OVEVYVCAvKiBAbWluOmNvcnJlbGF0aW9uQ29udGV4dCAqL10gPSBfZ2V0QWpheENvcnJlbGF0aW9uQ29udGV4dCh4aHIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLnR5cGUgPSB4aHIucmVzcG9uc2VUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hW19EWU5fUkVTUE9OU0VfVEVYVCAvKiBAbWluOnJlc3BvbnNlVGV4dCAqL10gPSBfZ2V0UmVzcG9uc2VUZXh0KHhociksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2EucmVzcG9uc2UgPSB4aHJbX0RZTl9SRVNQT05TRSAvKiBAbWluOiUyZXJlc3BvbnNlICovXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2VuYWJsZVJlc3BvbnNlSGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVhZGVycyA9IHhocltfRFlOX0dFVF9BTExfUkVTUE9OU0VfSEVBMTYgLyogQG1pbjolMmVnZXRBbGxSZXNwb25zZUhlYWRlcnMgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8geGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIG1ldGhvZCByZXR1cm5zIGFsbCB0aGUgcmVzcG9uc2UgaGVhZGVycywgc2VwYXJhdGVkIGJ5IENSTEYsIGFzIGEgc3RyaW5nIG9yIG51bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlZ2V4IGNvbnZlcnRzIHRoZSBoZWFkZXIgc3RyaW5nIGludG8gYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBoZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcnIgPSBzdHJUcmltKGhlYWRlcnMpLnNwbGl0KC9bXFxyXFxuXSsvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlSGVhZGVyTWFwXzIgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChhcnIsIGZ1bmN0aW9uIChsaW5lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFydHMgPSBsaW5lLnNwbGl0KFwiOiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVhZGVyID0gcGFydHMuc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHBhcnRzLmpvaW4oXCI6IFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfY2FuSW5jbHVkZUhlYWRlcnMoaGVhZGVyKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyTWFwXzJbaGVhZGVyXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheFJlc3BvbnNlW19EWU5fSEVBREVSX01BUCAvKiBAbWluOiUyZWhlYWRlck1hcCAqL10gPSByZXNwb25zZUhlYWRlck1hcF8yO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhamF4UmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIV9hZGRSZXF1ZXN0Q29udGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBfYWRkUmVxdWVzdENvbnRleHQoeyBzdGF0dXM6IHhocltfRFlOX1NUQVRVUyAvKiBAbWluOiUyZXN0YXR1cyAqL10sIHhocjogeGhyIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbFdhcm5pbmcoX3NlbGYsIDEwNCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZEFkZGluZ0N1c3RvbURlZmluZWRSZXF1ZXN0Q29udGV4dCAqLywgQ1VTVE9NX1JFUVVFU1RfQ09OVEVYVF9FUlJPUik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcGVuZGVuY3kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmN5W1NUUl9QUk9QRVJUSUVTIC8qIEBtaW46JTJlcHJvcGVydGllcyAqL10gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZGVwZW5kZW5jeS5wcm9wZXJ0aWVzKSwgcHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3lzUHJvcGVydGllcyA9IGFqYXhEYXRhW19EWU5fR0VUX1BBUlRfQVBST1BTIC8qIEBtaW46JTJlZ2V0UGFydEFQcm9wcyAqL10oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9yZXBvcnREZXBlbmRlbmN5SW50ZXJuYWwoX2RlcGVuZGVuY3lJbml0aWFsaXplcnMsIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dLCBhamF4RGF0YSwgZGVwZW5kZW5jeSwgbnVsbCwgc3lzUHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcmVwb3J0WGhyRXJyb3IobnVsbCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTZW50VGltZTogYWpheERhdGFbX0RZTl9SRVFVRVNUX1NFTlRfVElNRSAvKiBAbWluOiUyZXJlcXVlc3RTZW50VGltZSAqL10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VGaW5pc2hlZFRpbWU6IGFqYXhEYXRhW19EWU5fUkVTUE9OU0VfRklOSVNIRURfVEkxNSAvKiBAbWluOiUyZXJlc3BvbnNlRmluaXNoZWRUaW1lICovXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFudXAgdGVsZW1ldHJ5IGRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhocltzdHJBamF4RGF0YV0gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNYXkgdGhyb3cgaW4gZW52aXJvbm1lbnRzIHRoYXQgcHJldmVudCBleHRlbnNpb24gb3IgZnJlZXplIHhoclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfcmVwb3J0WGhyRXJyb3IoZSwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZ2V0QWpheENvcnJlbGF0aW9uQ29udGV4dCh4aHIpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IHhocltfRFlOX0dFVF9BTExfUkVTUE9OU0VfSEVBMTYgLyogQG1pbjolMmVnZXRBbGxSZXNwb25zZUhlYWRlcnMgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlSGVhZGVyc1N0cmluZyAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBfaW5kZXhPZihyZXNwb25zZUhlYWRlcnNTdHJpbmdbX0RZTl9UT19MT1dFUl9DQVNFIC8qIEBtaW46JTJldG9Mb3dlckNhc2UgKi9dKCksIFJlcXVlc3RIZWFkZXJzWzggLyogZVJlcXVlc3RIZWFkZXJzLnJlcXVlc3RDb250ZXh0SGVhZGVyTG93ZXJDYXNlICovXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZUhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcihSZXF1ZXN0SGVhZGVyc1swIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEhlYWRlciAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcnJlbGF0aW9uSWRIZWxwZXJbX0RZTl9HRVRfQ09SUkVMQVRJT05fQ09OVDE3IC8qIEBtaW46JTJlZ2V0Q29ycmVsYXRpb25Db250ZXh0ICovXShyZXNwb25zZUhlYWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsV2FybmluZyhfc2VsZiwgMTggLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5GYWlsZWRNb25pdG9yQWpheEdldENvcnJlbGF0aW9uSGVhZGVyICovLCBDT1JSRUxBVElPTl9IRUFERVJfRVJST1IsIChfYSA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYVtfRFlOX0FKQVhfRElBR05PU1RJQ1NfTUVTMTkgLyogQG1pbjphamF4RGlhZ25vc3RpY3NNZXNzYWdlICovXSA9IF9nZXRGYWlsZWRBamF4RGlhZ25vc3RpY3NNZXNzYWdlKHhociksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLmV4Y2VwdGlvbiA9IGR1bXBPYmooZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2NyZWF0ZU1hcmtJZCh0eXBlLCBhamF4RGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFqYXhEYXRhW19EWU5fUkVRVUVTVF9VUkwgLyogQG1pbjolMmVyZXF1ZXN0VXJsICovXSAmJiBfbWFya1ByZWZpeCAmJiBfZW5hYmxlQWpheFBlcmZUcmFja2luZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBwZXJmb3JtYW5jZV8xID0gZ2V0UGVyZm9ybWFuY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2VfMSAmJiBpc0Z1bmN0aW9uKHBlcmZvcm1hbmNlXzEubWFyaykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX21hcmtDb3VudCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFya0lkID0gX21hcmtQcmVmaXggKyB0eXBlICsgXCIjXCIgKyBfbWFya0NvdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZV8xLm1hcmsobWFya0lkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVudHJpZXMgPSBwZXJmb3JtYW5jZV8xLmdldEVudHJpZXNCeU5hbWUobWFya0lkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gPT09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fUEVSRl9NQVJLIC8qIEBtaW46JTJlcGVyZk1hcmsgKi9dID0gZW50cmllc1swXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZmluZFBlcmZSZXNvdXJjZUVudHJ5KGluaXRpYXRvclR5cGUsIGFqYXhEYXRhLCB0cmFja0NhbGxiYWNrLCByZXBvcnRFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIHBlcmZNYXJrID0gYWpheERhdGFbX0RZTl9QRVJGX01BUksgLyogQG1pbjolMmVwZXJmTWFyayAqL107XHJcbiAgICAgICAgICAgICAgICB2YXIgcGVyZm9ybWFuY2UgPSBnZXRQZXJmb3JtYW5jZSgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1heEF0dGVtcHRzID0gX2NvbmZpZy5tYXhBamF4UGVyZkxvb2t1cEF0dGVtcHRzO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJldHJ5RGVsYXkgPSBfY29uZmlnW19EWU5fQUpBWF9QRVJGX0xPT0tVUF9ERUwxOCAvKiBAbWluOiUyZWFqYXhQZXJmTG9va3VwRGVsYXkgKi9dO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlcXVlc3RVcmwgPSBhamF4RGF0YVtfRFlOX1JFUVVFU1RfVVJMIC8qIEBtaW46JTJlcmVxdWVzdFVybCAqL107XHJcbiAgICAgICAgICAgICAgICB2YXIgYXR0ZW1wdCA9IDA7XHJcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gbG9jYXRlUmVzb3VyY2VUaW1pbmcoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlcmZvcm1hbmNlICYmIHBlcmZNYXJrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0Kys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGVyZlRpbWluZyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGxwID0gZW50cmllc1tfRFlOX0xFTkdUSCAvKiBAbWluOiUyZWxlbmd0aCAqL10gLSAxOyBscCA+PSAwOyBscC0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tscF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5lbnRyeVR5cGUgPT09IFwicmVzb3VyY2VcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmluaXRpYXRvclR5cGUgPT09IGluaXRpYXRvclR5cGUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2luZGV4T2YoZW50cnlbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10sIHJlcXVlc3RVcmwpICE9PSAtMSB8fCBfaW5kZXhPZihyZXF1ZXN0VXJsLCBlbnRyeVtfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSkgIT09IC0xKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZUaW1pbmcgPSBlbnRyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChlbnRyeS5lbnRyeVR5cGUgPT09IFwibWFya1wiICYmIGVudHJ5W19EWU5fTkFNRSAvKiBAbWluOiUyZW5hbWUgKi9dID09PSBwZXJmTWFya1tfRFlOX05BTUUgLyogQG1pbjolMmVuYW1lICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGl0IHRoZSBzdGFydCBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9QRVJGX1RJTUlORyAvKiBAbWluOiUyZXBlcmZUaW1pbmcgKi9dID0gcGVyZlRpbWluZztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeVtfRFlOX1NUQVJUX1RJTUUgLyogQG1pbjolMmVzdGFydFRpbWUgKi9dIDwgcGVyZk1hcmtbX0RZTl9TVEFSVF9USU1FIC8qIEBtaW46JTJlc3RhcnRUaW1lICovXSAtIDEwMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRyeSBhbmQgcmVkdWNlIHRoZSB0aW1lIHNwZW50IGxvb2tpbmcgZm9yIHRoZSBwZXJmIGVudHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBlcmZNYXJrIHx8IC8vIC0gd2UgZG9uJ3QgaGF2ZSBhIHBlcmZNYXJrIG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1BFUkZfVElNSU5HIC8qIEBtaW46JTJlcGVyZlRpbWluZyAqL10gfHwgLy8gLSB3ZSBoYXZlIG5vdCBmb3VuZCB0aGUgcGVyZiBlbnRyeSBvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZW1wdCA+PSBtYXhBdHRlbXB0cyB8fCAvLyAtIHdlIGhhdmUgdHJpZWQgdG9vIG1hbnkgYXR0ZW1wdHMgb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhEYXRhLmFzeW5jID09PSBmYWxzZSkgeyAvLyAtIHRoaXMgaXMgYSBzeW5jIHJlcXVlc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJmTWFyayAmJiBpc0Z1bmN0aW9uKHBlcmZvcm1hbmNlLmNsZWFyTWFya3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBtYXJrIHNvIHdlIGRvbid0IGZpbGwgdXAgdGhlIHBlcmZvcm1hbmNlIHJlc291cmNlcyB0b28gbXVjaFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLmNsZWFyTWFya3MocGVyZk1hcmtbX0RZTl9OQU1FIC8qIEBtaW46JTJlbmFtZSAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheERhdGEucGVyZkF0dGVtcHRzID0gYXR0ZW1wdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgY29udGludWUgYW5kIHJlcG9ydCB0aGUgdHJhY2sgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGJyb3dzZXIgdG8gcG9wdWxhdGUgdGhlIHdpbmRvdy5wZXJmb3JtYW5jZSBlbnRyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBuZWVkcyB0byBiZSBhdCBsZWFzdCAxbXMgYXMgd2FpdGluZyA8PSAxIChvbiBmaXJlZm94KSBpcyBub3QgZW5vdWdoIHRpbWUgZm9yIGZldGNoIG9yIHhocixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBzY2hlZHVsaW5nIGlzc3VlIGZvciB0aGUgYnJvd3NlciBpbXBsZW1lbnRhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChsb2NhdGVSZXNvdXJjZVRpbWluZywgcmV0cnlEZWxheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfY3JlYXRlRmV0Y2hSZWNvcmQoaW5wdXQsIGluaXQpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYTtcclxuICAgICAgICAgICAgICAgIHZhciBkaXN0cmlidXRlZFRyYWNlQ3R4ID0gX2dldERpc3RyaWJ1dGVkVHJhY2VDdHgoKTtcclxuICAgICAgICAgICAgICAgIHZhciB0cmFjZUlEID0gKGRpc3RyaWJ1dGVkVHJhY2VDdHggJiYgZGlzdHJpYnV0ZWRUcmFjZUN0eFtfRFlOX0dFVF9UUkFDRV9JRCAvKiBAbWluOiUyZWdldFRyYWNlSWQgKi9dKCkpIHx8IGdlbmVyYXRlVzNDSWQoKTtcclxuICAgICAgICAgICAgICAgIHZhciBzcGFuSUQgPSBnZW5lcmF0ZVczQ0lkKCkuc3Vic3RyKDAsIDE2KTtcclxuICAgICAgICAgICAgICAgIHZhciBhamF4RGF0YSA9IG5ldyBhamF4UmVjb3JkKHRyYWNlSUQsIHNwYW5JRCwgX3NlbGZbc3RyRGlhZ0xvZ10oKSwgKF9hID0gX3NlbGYuY29yZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldFRyYWNlQ3R4KCkpO1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9UUkFDRV9GTEFHUyAvKiBAbWluOiUyZXRyYWNlRmxhZ3MgKi9dID0gZGlzdHJpYnV0ZWRUcmFjZUN0eCAmJiBkaXN0cmlidXRlZFRyYWNlQ3R4W19EWU5fR0VUX1RSQUNFX0ZMQUdTIC8qIEBtaW46JTJlZ2V0VHJhY2VGbGFncyAqL10oKTtcclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fUkVRVUVTVF9TRU5UX1RJTUUgLyogQG1pbjolMmVyZXF1ZXN0U2VudFRpbWUgKi9dID0gZGF0ZVRpbWVVdGlsc05vdygpO1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9FUlJPUl9TVEFUVVNfVEVYVCAvKiBAbWluOiUyZWVycm9yU3RhdHVzVGV4dCAqL10gPSBfZW5hYmxlQWpheEVycm9yU3RhdHVzVGV4dDtcclxuICAgICAgICAgICAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfVVJMIC8qIEBtaW46JTJlcmVxdWVzdFVybCAqL10gPSBpbnB1dCA/IGlucHV0LnVybCA6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBhamF4RGF0YVtfRFlOX1JFUVVFU1RfVVJMIC8qIEBtaW46JTJlcmVxdWVzdFVybCAqL10gPSBpbnB1dDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBtZXRob2QgPSBcIkdFVFwiO1xyXG4gICAgICAgICAgICAgICAgaWYgKGluaXQgJiYgaW5pdFtfRFlOX01FVEhPRCAvKiBAbWluOiUyZW1ldGhvZCAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBpbml0W19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlucHV0ICYmIGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9IGlucHV0W19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fTUVUSE9EIC8qIEBtaW46JTJlbWV0aG9kICovXSA9IG1ldGhvZDtcclxuICAgICAgICAgICAgICAgIHZhciByZXF1ZXN0SGVhZGVycyA9IHt9O1xyXG4gICAgICAgICAgICAgICAgaWYgKF9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKChpbml0ID8gaW5pdFtfRFlOX0hFQURFUlMgLyogQG1pbjolMmVoZWFkZXJzICovXSA6IDApIHx8IChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyAoaW5wdXRbX0RZTl9IRUFERVJTIC8qIEBtaW46JTJlaGVhZGVycyAqL10gfHwge30pIDoge30pKTtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9jYW5JbmNsdWRlSGVhZGVycyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVyc1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFqYXhEYXRhW19EWU5fUkVRVUVTVF9IRUFERVJTIC8qIEBtaW46JTJlcmVxdWVzdEhlYWRlcnMgKi9dID0gcmVxdWVzdEhlYWRlcnM7XHJcbiAgICAgICAgICAgICAgICBfY3JlYXRlTWFya0lkKFwiZmV0Y2hcIiwgYWpheERhdGEpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFqYXhEYXRhO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9nZXRGYWlsZWRGZXRjaERpYWdub3N0aWNzTWVzc2FnZShpbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoaW5wdXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGlucHV0KSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiKHVybDogJ1wiLmNvbmNhdChpbnB1dCwgXCInKVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBcIih1cmw6ICdcIi5jb25jYXQoaW5wdXQudXJsLCBcIicpXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbENyaXRpY2FsKF9zZWxmLCAxNSAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZE1vbml0b3JBamF4T3BlbiAqLywgXCJGYWlsZWQgdG8gZ3JhYiBmYWlsZWQgZmV0Y2ggZGlhZ25vc3RpY3MgbWVzc2FnZVwiLCB7IGV4Y2VwdGlvbjogZHVtcE9iaihlKSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3JlcG9ydEZldGNoTWV0cmljcyhjYWxsRGV0YWlscywgc3RhdHVzLCBpbnB1dCwgcmVzcG9uc2UsIGFqYXhEYXRhLCBnZXRSZXNwb25zZSwgcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFhamF4RGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9yZXBvcnRGZXRjaEVycm9yKG1zZ0lkLCBlLCBmYWlsZWRQcm9wcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvclByb3BzID0gZmFpbGVkUHJvcHMgfHwge307XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JQcm9wc1tcImZldGNoRGlhZ25vc3RpY3NNZXNzYWdlXCJdID0gX2dldEZhaWxlZEZldGNoRGlhZ25vc3RpY3NNZXNzYWdlKGlucHV0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclByb3BzW1wiZXhjZXB0aW9uXCJdID0gZHVtcE9iaihlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWxXYXJuaW5nKF9zZWxmLCBtc2dJZCwgRkFJTEVEX1RPX0NBTENVTEFURV9EVVJBVElPTl9FUlJPUiArIFwiZmV0Y2ggY2FsbFwiICsgRVJST1JfTk9UX1NFTlQsIGVycm9yUHJvcHMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9SRVNQT05TRV9GSU5JU0hFRF9USTE1IC8qIEBtaW46JTJlcmVzcG9uc2VGaW5pc2hlZFRpbWUgKi9dID0gZGF0ZVRpbWVVdGlsc05vdygpO1xyXG4gICAgICAgICAgICAgICAgYWpheERhdGFbX0RZTl9TVEFUVVMgLyogQG1pbjolMmVzdGF0dXMgKi9dID0gc3RhdHVzO1xyXG4gICAgICAgICAgICAgICAgX2ZpbmRQZXJmUmVzb3VyY2VFbnRyeShcImZldGNoXCIsIGFqYXhEYXRhLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3kgPSBhamF4RGF0YVtfRFlOX19DUkVBVEVfVFJBQ0tfSVRFTSAvKiBAbWluOiUyZUNyZWF0ZVRyYWNrSXRlbSAqL10oXCJGZXRjaFwiLCBfZW5hYmxlUmVxdWVzdEhlYWRlclRyYWNraW5nLCBnZXRSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhX2FkZFJlcXVlc3RDb250ZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gX2FkZFJlcXVlc3RDb250ZXh0KHsgc3RhdHVzOiBzdGF0dXMsIHJlcXVlc3Q6IGlucHV0LCByZXNwb25zZTogcmVzcG9uc2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWxXYXJuaW5nKF9zZWxmLCAxMDQgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5GYWlsZWRBZGRpbmdDdXN0b21EZWZpbmVkUmVxdWVzdENvbnRleHQgKi8sIENVU1RPTV9SRVFVRVNUX0NPTlRFWFRfRVJST1IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVwZW5kZW5jeSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydGllcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmN5W1NUUl9QUk9QRVJUSUVTIC8qIEBtaW46JTJlcHJvcGVydGllcyAqL10gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZGVwZW5kZW5jeS5wcm9wZXJ0aWVzKSwgcHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN5c1Byb3BlcnRpZXMgPSBhamF4RGF0YVtfRFlOX0dFVF9QQVJUX0FQUk9QUyAvKiBAbWluOiUyZWdldFBhcnRBUHJvcHMgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yZXBvcnREZXBlbmRlbmN5SW50ZXJuYWwoX2RlcGVuZGVuY3lJbml0aWFsaXplcnMsIF9zZWxmW19EWU5fQ09SRSAvKiBAbWluOiUyZWNvcmUgKi9dLCBhamF4RGF0YSwgZGVwZW5kZW5jeSwgbnVsbCwgc3lzUHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfcmVwb3J0RmV0Y2hFcnJvcigxNCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZE1vbml0b3JBamF4RHVyICovLCBudWxsLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U2VudFRpbWU6IGFqYXhEYXRhW19EWU5fUkVRVUVTVF9TRU5UX1RJTUUgLyogQG1pbjolMmVyZXF1ZXN0U2VudFRpbWUgKi9dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VGaW5pc2hlZFRpbWU6IGFqYXhEYXRhW19EWU5fUkVTUE9OU0VfRklOSVNIRURfVEkxNSAvKiBAbWluOiUyZXJlc3BvbnNlRmluaXNoZWRUaW1lICovXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9yZXBvcnRGZXRjaEVycm9yKDE4IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkTW9uaXRvckFqYXhHZXRDb3JyZWxhdGlvbkhlYWRlciAqLywgZSwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZ2V0RmV0Y2hDb3JyZWxhdGlvbkNvbnRleHQocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZVtfRFlOX0hFQURFUlMgLyogQG1pbjolMmVoZWFkZXJzICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZUhlYWRlciA9IHJlc3BvbnNlW19EWU5fSEVBREVSUyAvKiBAbWluOiUyZWhlYWRlcnMgKi9dLmdldChSZXF1ZXN0SGVhZGVyc1swIC8qIGVSZXF1ZXN0SGVhZGVycy5yZXF1ZXN0Q29udGV4dEhlYWRlciAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29ycmVsYXRpb25JZEhlbHBlcltfRFlOX0dFVF9DT1JSRUxBVElPTl9DT05UMTcgLyogQG1pbjolMmVnZXRDb3JyZWxhdGlvbkNvbnRleHQgKi9dKHJlc3BvbnNlSGVhZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWxXYXJuaW5nKF9zZWxmLCAxOCAvKiBfZUludGVybmFsTWVzc2FnZUlkLkZhaWxlZE1vbml0b3JBamF4R2V0Q29ycmVsYXRpb25IZWFkZXIgKi8sIENPUlJFTEFUSU9OX0hFQURFUl9FUlJPUiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hEaWFnbm9zdGljc01lc3NhZ2U6IF9nZXRGYWlsZWRGZXRjaERpYWdub3N0aWNzTWVzc2FnZShyZXNwb25zZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb246IGR1bXBPYmooZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9yZXBvcnREZXBlbmRlbmN5SW50ZXJuYWwoaW5pdGlhbGl6ZXJzLCBjb3JlLCBhamF4RGF0YSwgZGVwZW5kZW5jeSwgcHJvcGVydGllcywgc3lzdGVtUHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW5pdGlhbGl6ZXJzQ291bnQgPSBpbml0aWFsaXplcnNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dO1xyXG4gICAgICAgICAgICAgICAgaWYgKGluaXRpYWxpemVyc0NvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXRhaWxzID0gKF9hID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogZGVwZW5kZW5jeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYVtTVFJfUFJPUEVSVElFUyAvKiBAbWluOnByb3BlcnRpZXMgKi9dID0gcHJvcGVydGllcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2Euc3lzUHJvcGVydGllcyA9IHN5c3RlbVByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLmNvbnRleHQgPSBhamF4RGF0YSA/IGFqYXhEYXRhW19EWU5fQ09OVEVYVCAvKiBAbWluOiUyZWNvbnRleHQgKi9dIDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2EpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9wcm9jZXNzRGVwZW5kZW5jeUNvbnRhaW5lcihjb3JlLCBpbml0aWFsaXplcnMsIGRldGFpbHMsIFwiaW5pdGlhbGl6ZXJcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9UUkFDS19ERVBFTkRFTkNZX0RBVDQgLyogQG1pbjolMmV0cmFja0RlcGVuZGVuY3lEYXRhSW50ZXJuYWwgKi9dKGRlcGVuZGVuY3ksIHByb3BlcnRpZXMsIHN5c3RlbVByb3BlcnRpZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFqYXhNb25pdG9yLnByb3RvdHlwZS5pbml0aWFsaXplLlxyXG4gICAgQWpheE1vbml0b3IucHJvdG90eXBlLnByb2Nlc3NUZWxlbWV0cnkgPSBmdW5jdGlvbiAoaXRlbSwgaXRlbUN0eCkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc05leHQoaXRlbSwgaXRlbUN0eCk7XHJcbiAgICB9O1xyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFqYXhNb25pdG9yLnByb3RvdHlwZS50cmFja0RlcGVuZGVuY3lEYXRhLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFqYXhNb25pdG9yLnByb3RvdHlwZS5pbmNsdWRlQ29ycmVsYXRpb25IZWFkZXJzLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEFqYXhNb25pdG9yLnByb3RvdHlwZS5hZGREZXBlbmRlbmN5TGlzdGVuZXIuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhbiBkZXBlbmRlbmN5IHRlbGVtZXRyeSBpbml0aWFsaXplciBjYWxsYmFjayBmdW5jdGlvbiB0byBhbGxvdyBwb3B1bGF0aW5nIGFkZGl0aW9uYWwgcHJvcGVydGllcyBvciBkcm9wIHRoZSByZXF1ZXN0LlxyXG4gICAgICogSXQgaXMgY2FsbGVkIGFmdGVyIHRoZSBkZXBlbmRlbmN5IGNhbGwgaGFzIGNvbXBsZXRlZCBhbmQgYW55IGF2YWlsYWJsZSBwZXJmb3JtYW5jZSBkZXRhaWxzIGFyZSBhdmFpbGFibGUuIEEgZGVwZW5kZW5jeVxyXG4gICAgICogaW5pdGlhbGl6ZXIgaXMgc2ltaWxhciB0byB0aGUgVGVsZW1ldHJ5SW5pdGlhbGl6ZXIgZnVuY3Rpb24gYnV0IGl0IGFsbG93cyB5b3UgdG8gYmxvY2sgdGhlIHJlcG9ydGluZyBvZiB0aGUgZGVwZW5kZW5jeVxyXG4gICAgICogcmVxdWVzdCBzbyB0aGF0IGl0IGRvZXNuJ3QgY291bnQgYWdhaW5zdCB0aGUgYG1heEFqYXhDYWxsc1BlclZpZXdgLlxyXG4gICAgICogQHBhcmFtIGRlcGVuZGVuY3lJbml0aWFsaXplciAtIFRoZSBEZXBlbmRlbmN5IFRlbGVtZXRyeSBJbml0aWFsaXplciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMgLSBBIElEZXBlbmRlbmN5SW5pdGlhbGl6ZXJIYW5kbGVyIHRvIGVuYWJsZSB0aGUgaW5pdGlhbGl6ZXIgdG8gYmUgcmVtb3ZlZFxyXG4gICAgICovXHJcbiAgICBBamF4TW9uaXRvci5wcm90b3R5cGUuYWRkRGVwZW5kZW5jeUluaXRpYWxpemVyID0gZnVuY3Rpb24gKGRlcGVuZGVuY3lJbml0aWFsaXplcikge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuLy8gUmVtb3ZlZCBTdHViIGZvciBBamF4TW9uaXRvci5wcm90b3R5cGUudHJhY2tEZXBlbmRlbmN5RGF0YUludGVybmFsLlxyXG4gICAgQWpheE1vbml0b3IuaWRlbnRpZmllciA9IFwiQWpheERlcGVuZGVuY3lQbHVnaW5cIjtcclxuICAgIEFqYXhNb25pdG9yLmdldERlZmF1bHRDb25maWcgPSBfZ2V0RGVmYXVsdENvbmZpZztcclxuICAgIEFqYXhNb25pdG9yLmdldEVtcHR5Q29uZmlnID0gX2dldEVtcHR5Q29uZmlnO1xyXG4gICAgcmV0dXJuIEFqYXhNb25pdG9yO1xyXG59KEJhc2VUZWxlbWV0cnlQbHVnaW4pKTtcclxuZXhwb3J0IHsgQWpheE1vbml0b3IgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWpheC5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBQcm9wZXJ0aWVzIFBsdWdpbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxudmFyIEFwcGxpY2F0aW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gQXBwbGljYXRpb24oKSB7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gQXBwbGljYXRpb247XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEFwcGxpY2F0aW9uIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwcGxpY2F0aW9uLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFByb3BlcnRpZXMgUGx1Z2luLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG52YXIgRGV2aWNlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBEZXZpY2UgY2xhc3NcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gRGV2aWNlKCkge1xyXG4gICAgICAgIC8vIGRvbid0IGF0dGVtcHQgdG8gZmluZ2VycHJpbnQgYnJvd3NlcnNcclxuICAgICAgICB0aGlzLmlkID0gXCJicm93c2VyXCI7XHJcbiAgICAgICAgLy8gRGV2aWNlIHR5cGUgaXMgYSBkaW1lbnNpb24gaW4gb3VyIGRhdGEgcGxhdGZvcm1cclxuICAgICAgICAvLyBTZXR0aW5nIGl0IHRvICdCcm93c2VyJyBhbGxvd3MgdG8gc2VwYXJhdGUgY2xpZW50IGFuZCBzZXJ2ZXIgZGVwZW5kZW5jaWVzL2V4Y2VwdGlvbnNcclxuICAgICAgICB0aGlzLmRldmljZUNsYXNzID0gXCJCcm93c2VyXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gRGV2aWNlO1xyXG59KCkpO1xyXG5leHBvcnQgeyBEZXZpY2UgfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGV2aWNlLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFByb3BlcnRpZXMgUGx1Z2luLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG4vLyBAc2tpcC1maWxlLW1pbmlmeVxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyBBVVRPIEdFTkVSQVRFRCBGSUxFOiBUaGlzIGZpbGUgaXMgQXV0byBHZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkLlxyXG4vLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG4vLyBOb3RlOiBET04nVCBFeHBvcnQgdGhlc2UgY29uc3QgZnJvbSB0aGUgcGFja2FnZSBhcyB3ZSBhcmUgc3RpbGwgdGFyZ2V0aW5nIEVTMyB0aGlzIHdpbGwgZXhwb3J0IGEgbXV0YWJsZSB2YXJpYWJsZXMgdGhhdCBzb21lb25lIGNvdWxkIGNoYW5nZSEhIVxyXG4vLyAhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIVxyXG5leHBvcnQgdmFyIF9EWU5fU0VTU0lPTl9NQU5BR0VSID0gXCJzZXNzaW9uTWFuYWdlclwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fVVBEQVRFID0gXCJ1cGRhdGVcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0lTX1VTRVJfQ09PS0lFX1NFVCA9IFwiaXNVc2VyQ29va2llU2V0XCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9JU19ORVdfVVNFUiA9IFwiaXNOZXdVc2VyXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9HRVRfVFJBQ0VfQ1RYID0gXCJnZXRUcmFjZUN0eFwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fVEVMRU1FVFJZX1RSQUNFID0gXCJ0ZWxlbWV0cnlUcmFjZVwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fQVBQTFlfU0VTU0lPTl9DT05URVgwID0gXCJhcHBseVNlc3Npb25Db250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBMWV9BUFBMSUNBVElPTl9DTzEgPSBcImFwcGx5QXBwbGljYXRpb25Db250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBMWV9ERVZJQ0VfQ09OVEVYVCA9IFwiYXBwbHlEZXZpY2VDb250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBMWV9PUEVSQVRJT05fQ09OVDIgPSBcImFwcGx5T3BlcmF0aW9uQ29udGV4dFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fQVBQTFlfVVNFUl9DT05URVhUID0gXCJhcHBseVVzZXJDb250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBMWV9PUEVSQVRJTkdfU1lTVDMgPSBcImFwcGx5T3BlcmF0aW5nU3lzdGVtQ29udHh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBMWV9MT0NBVElPTl9DT05URTQgPSBcImFwcGx5TG9jYXRpb25Db250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBMWV9JTlRFUk5BTF9DT05URTUgPSBcImFwcGx5SW50ZXJuYWxDb250ZXh0XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BQ0NPVU5UX0lEID0gXCJhY2NvdW50SWRcIjsgLy8gQ291bnQ6IDhcclxuZXhwb3J0IHZhciBfRFlOX1NES19FWFRFTlNJT04gPSBcInNka0V4dGVuc2lvblwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fR0VUX1NFU1NJT05fSUQgPSBcImdldFNlc3Npb25JZFwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fTkFNRV9QUkVGSVggPSBcIm5hbWVQcmVmaXhcIjsgLy8gQ291bnQ6IDdcclxuZXhwb3J0IHZhciBfRFlOX1NFU1NJT05fQ09PS0lFX1BPU1RGNiA9IFwic2Vzc2lvbkNvb2tpZVBvc3RmaXhcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX1VTRVJfQ09PS0lFX1BPU1RGSVggPSBcInVzZXJDb29raWVQb3N0Zml4XCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9JRF9MRU5HVEggPSBcImlkTGVuZ3RoXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9HRVRfTkVXX0lEID0gXCJnZXROZXdJZFwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fTEVOR1RIID0gXCJsZW5ndGhcIjsgLy8gQ291bnQ6IDRcclxuZXhwb3J0IHZhciBfRFlOX0FVVE9NQVRJQ19TRVNTSU9OID0gXCJhdXRvbWF0aWNTZXNzaW9uXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9BVVRIRU5USUNBVEVEX0lEID0gXCJhdXRoZW50aWNhdGVkSWRcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX1NFU1NJT05fRVhQSVJBVElPTl9NNyA9IFwic2Vzc2lvbkV4cGlyYXRpb25Nc1wiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fU0VTU0lPTl9SRU5FV0FMX01TID0gXCJzZXNzaW9uUmVuZXdhbE1zXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9DT05GSUcgPSBcImNvbmZpZ1wiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fQUNRVUlTSVRJT05fREFURSA9IFwiYWNxdWlzaXRpb25EYXRlXCI7IC8vIENvdW50OiA1XHJcbmV4cG9ydCB2YXIgX0RZTl9SRU5FV0FMX0RBVEUgPSBcInJlbmV3YWxEYXRlXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9DT09LSUVfRE9NQUlOID0gXCJjb29raWVEb21haW5cIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0pPSU4gPSBcImpvaW5cIjsgLy8gQ291bnQ6IDVcclxuZXhwb3J0IHZhciBfRFlOX0NPT0tJRV9TRVBBUkFUT1IgPSBcImNvb2tpZVNlcGFyYXRvclwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fQVVUSF9VU0VSX0NPT0tJRV9OQU04ID0gXCJhdXRoVXNlckNvb2tpZU5hbWVcIjsgLy8gQ291bnQ6IDNcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9X19EeW5hbWljQ29uc3RhbnRzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFByb3BlcnRpZXMgUGx1Z2luLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBfRFlOX1NES19FWFRFTlNJT04gfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBWZXJzaW9uID0gJzIuOC45JztcclxudmFyIEludGVybmFsID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBpbnRlcm5hbCB0ZWxlbWV0cnkgZGF0YSBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gSW50ZXJuYWwoY29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5zZGtWZXJzaW9uID0gKGNvbmZpZ1tfRFlOX1NES19FWFRFTlNJT04gLyogQG1pbjolMmVzZGtFeHRlbnNpb24gKi9dICYmIGNvbmZpZ1tfRFlOX1NES19FWFRFTlNJT04gLyogQG1pbjolMmVzZGtFeHRlbnNpb24gKi9dKCkgPyBjb25maWdbX0RZTl9TREtfRVhURU5TSU9OIC8qIEBtaW46JTJlc2RrRXh0ZW5zaW9uICovXSgpICsgXCJfXCIgOiBcIlwiKSArIFwiamF2YXNjcmlwdDpcIiArIFZlcnNpb247XHJcbiAgICB9XHJcbiAgICByZXR1cm4gSW50ZXJuYWw7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEludGVybmFsIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUludGVybmFsLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFByb3BlcnRpZXMgUGx1Z2luLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG52YXIgTG9jYXRpb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBMb2NhdGlvbigpIHtcclxuICAgIH1cclxuICAgIHJldHVybiBMb2NhdGlvbjtcclxufSgpKTtcclxuZXhwb3J0IHsgTG9jYXRpb24gfTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TG9jYXRpb24uanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gUHJvcGVydGllcyBQbHVnaW4sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IHV0bENhblVzZUxvY2FsU3RvcmFnZSwgdXRsR2V0TG9jYWxTdG9yYWdlLCB1dGxTZXRMb2NhbFN0b3JhZ2UgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vblwiO1xyXG5pbXBvcnQgeyBfdGhyb3dJbnRlcm5hbCwgZGF0ZU5vdywgZHVtcE9iaiwgZ2V0RXhjZXB0aW9uTmFtZSwgaXNGdW5jdGlvbiwgbmV3SWQsIHNhZmVHZXRDb29raWVNZ3IsIHNhZmVHZXRMb2dnZXIgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9BQ1FVSVNJVElPTl9EQVRFLCBfRFlOX0FVVE9NQVRJQ19TRVNTSU9OLCBfRFlOX0NPTkZJRywgX0RZTl9DT09LSUVfRE9NQUlOLCBfRFlOX0dFVF9ORVdfSUQsIF9EWU5fSURfTEVOR1RILCBfRFlOX0pPSU4sIF9EWU5fTEVOR1RILCBfRFlOX05BTUVfUFJFRklYLCBfRFlOX1JFTkVXQUxfREFURSwgX0RZTl9TRVNTSU9OX0NPT0tJRV9QT1NURjYsIF9EWU5fU0VTU0lPTl9FWFBJUkFUSU9OX003LCBfRFlOX1NFU1NJT05fUkVORVdBTF9NUywgX0RZTl9VUERBVEUgfSBmcm9tIFwiLi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBjb29raWVOYW1lQ29uc3QgPSBcImFpX3Nlc3Npb25cIjtcclxudmFyIFNlc3Npb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBTZXNzaW9uKCkge1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFNlc3Npb247XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFNlc3Npb24gfTtcclxudmFyIF9TZXNzaW9uTWFuYWdlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIF9TZXNzaW9uTWFuYWdlcihjb25maWcsIGNvcmUpIHtcclxuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgdmFyIF9zdG9yYWdlTmFtZVByZWZpeDtcclxuICAgICAgICB2YXIgX2Nvb2tpZVVwZGF0ZWRUaW1lc3RhbXA7XHJcbiAgICAgICAgdmFyIF9sb2dnZXIgPSBzYWZlR2V0TG9nZ2VyKGNvcmUpO1xyXG4gICAgICAgIHZhciBfY29va2llTWFuYWdlciA9IHNhZmVHZXRDb29raWVNZ3IoY29yZSk7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKF9TZXNzaW9uTWFuYWdlciwgc2VsZiwgZnVuY3Rpb24gKF9zZWxmKSB7XHJcbiAgICAgICAgICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25maWcgPSB7fTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWlzRnVuY3Rpb24oY29uZmlnW19EWU5fU0VTU0lPTl9FWFBJUkFUSU9OX003IC8qIEBtaW46JTJlc2Vzc2lvbkV4cGlyYXRpb25NcyAqL10pKSB7XHJcbiAgICAgICAgICAgICAgICBjb25maWdbX0RZTl9TRVNTSU9OX0VYUElSQVRJT05fTTcgLyogQG1pbjolMmVzZXNzaW9uRXhwaXJhdGlvbk1zICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9TZXNzaW9uTWFuYWdlci5hY3F1aXNpdGlvblNwYW47IH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFpc0Z1bmN0aW9uKGNvbmZpZ1tfRFlOX1NFU1NJT05fUkVORVdBTF9NUyAvKiBAbWluOiUyZXNlc3Npb25SZW5ld2FsTXMgKi9dKSkge1xyXG4gICAgICAgICAgICAgICAgY29uZmlnW19EWU5fU0VTU0lPTl9SRU5FV0FMX01TIC8qIEBtaW46JTJlc2Vzc2lvblJlbmV3YWxNcyAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBfU2Vzc2lvbk1hbmFnZXIucmVuZXdhbFNwYW47IH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dID0gY29uZmlnO1xyXG4gICAgICAgICAgICAvLyBzZXNzaW9uQ29va2llUG9zdGZpeCB0YWtlcyB0aGUgcHJlZmVyZW5jZSBpZiBpdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgdGFrZXMgbmFtZVByZWZpeCBpZiBjb25maWd1cmVkLlxyXG4gICAgICAgICAgICB2YXIgc2Vzc2lvbkNvb2tpZVBvc3RmaXggPSAoX3NlbGYuY29uZmlnW19EWU5fU0VTU0lPTl9DT09LSUVfUE9TVEY2IC8qIEBtaW46JTJlc2Vzc2lvbkNvb2tpZVBvc3RmaXggKi9dICYmIF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXVtfRFlOX1NFU1NJT05fQ09PS0lFX1BPU1RGNiAvKiBAbWluOiUyZXNlc3Npb25Db29raWVQb3N0Zml4ICovXSgpKSA/XHJcbiAgICAgICAgICAgICAgICBfc2VsZi5jb25maWdbX0RZTl9TRVNTSU9OX0NPT0tJRV9QT1NURjYgLyogQG1pbjolMmVzZXNzaW9uQ29va2llUG9zdGZpeCAqL10oKSA6XHJcbiAgICAgICAgICAgICAgICAoKF9zZWxmLmNvbmZpZ1tfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46JTJlbmFtZVByZWZpeCAqL10gJiYgX3NlbGZbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjolMmVuYW1lUHJlZml4ICovXSgpKSA/IF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXVtfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46JTJlbmFtZVByZWZpeCAqL10oKSA6IFwiXCIpO1xyXG4gICAgICAgICAgICBfc3RvcmFnZU5hbWVQcmVmaXggPSBmdW5jdGlvbiAoKSB7IHJldHVybiBjb29raWVOYW1lQ29uc3QgKyBzZXNzaW9uQ29va2llUG9zdGZpeDsgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BVVRPTUFUSUNfU0VTU0lPTiAvKiBAbWluOiUyZWF1dG9tYXRpY1Nlc3Npb24gKi9dID0gbmV3IFNlc3Npb24oKTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9VUERBVEUgLyogQG1pbjolMmV1cGRhdGUgKi9dID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgLy8gQWx3YXlzIHVzaW5nIERhdGUgZ2V0VGltZSgpIGFzIHRoZXJlIGlzIGEgYnVnIGluIG9sZGVyIElFIGluc3RhbmNlcyB0aGF0IGNhdXNlcyB0aGUgcGVyZm9ybWFuY2UgdGltaW5ncyB0byBoYXZlIHRoZSBoaS1iaXQgc2V0IGVnIDB4ODAwMDAwMDAwIGNhdXNpbmdcclxuICAgICAgICAgICAgICAgIC8vIHRoZSBudW1iZXIgdG8gYmUgaW5jb3JyZWN0LlxyXG4gICAgICAgICAgICAgICAgdmFyIG5vd01zID0gZGF0ZU5vdygpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGlzRXhwaXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIHNlc3Npb24gPSBfc2VsZltfRFlOX0FVVE9NQVRJQ19TRVNTSU9OIC8qIEBtaW46JTJlYXV0b21hdGljU2Vzc2lvbiAqL107XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNlc3Npb24uaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpc0V4cGlyZWQgPSAhX2luaXRpYWxpemVBdXRvbWF0aWNTZXNzaW9uKHNlc3Npb24sIG5vd01zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBzZXNzaW9uRXhwaXJhdGlvbk1zID0gX3NlbGYuY29uZmlnW19EWU5fU0VTU0lPTl9FWFBJUkFUSU9OX003IC8qIEBtaW46JTJlc2Vzc2lvbkV4cGlyYXRpb25NcyAqL10oKTtcclxuICAgICAgICAgICAgICAgIGlmICghaXNFeHBpcmVkICYmIHNlc3Npb25FeHBpcmF0aW9uTXMgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlc3Npb25SZW5ld2FsTXMgPSBfc2VsZi5jb25maWdbX0RZTl9TRVNTSU9OX1JFTkVXQUxfTVMgLyogQG1pbjolMmVzZXNzaW9uUmVuZXdhbE1zICovXSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lU2luY2VBY3FNcyA9IG5vd01zIC0gc2Vzc2lvbltfRFlOX0FDUVVJU0lUSU9OX0RBVEUgLyogQG1pbjolMmVhY3F1aXNpdGlvbkRhdGUgKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lU2luY2VSZW5ld2FsTXMgPSBub3dNcyAtIHNlc3Npb25bX0RZTl9SRU5FV0FMX0RBVEUgLyogQG1pbjolMmVyZW5ld2FsRGF0ZSAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgaXNFeHBpcmVkID0gdGltZVNpbmNlQWNxTXMgPCAwIHx8IHRpbWVTaW5jZVJlbmV3YWxNcyA8IDA7IC8vIGV4cGlyZWQgaWYgdGhlIGFjcXVpc2l0aW9uIG9yIGxhc3QgcmVuZXdhbCBhcmUgaW4gdGhlIGZ1dHVyZVxyXG4gICAgICAgICAgICAgICAgICAgIGlzRXhwaXJlZCA9IGlzRXhwaXJlZCB8fCB0aW1lU2luY2VBY3FNcyA+IHNlc3Npb25FeHBpcmF0aW9uTXM7IC8vIGV4cGlyZWQgaWYgdGhlIHRpbWUgc2luY2UgYWNxdWlzaXRpb24gaXMgbW9yZSB0aGFuIHNlc3Npb24gRXhwaXJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIGlzRXhwaXJlZCA9IGlzRXhwaXJlZCB8fCB0aW1lU2luY2VSZW5ld2FsTXMgPiBzZXNzaW9uUmVuZXdhbE1zOyAvLyBleHBpcmVkIGlmIHRoZSB0aW1lIHNpbmNlIGxhc3QgcmVuZXdhbCBpcyBtb3JlIHRoYW4gcmVuZXdhbCBwZXJpb2RcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIHJlbmV3IGlmIGFjcXVpc2l0aW9uU3BhbiBvciByZW5ld2FsU3BhbiBoYXMgZWxhcHNlZFxyXG4gICAgICAgICAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBhdXRvbWF0aWNTZXNzaW9uIHNvIHNlc3Npb24gc3RhdGUgaGFzIGNvcnJlY3QgaWRcclxuICAgICAgICAgICAgICAgICAgICBfcmVuZXcobm93TXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90IHVwZGF0ZSB0aGUgY29va2llIG1vcmUgb2Z0ZW4gdGhhbiBjb29raWVVcGRhdGVJbnRlcnZhbFxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX2Nvb2tpZVVwZGF0ZWRUaW1lc3RhbXAgfHwgbm93TXMgLSBfY29va2llVXBkYXRlZFRpbWVzdGFtcCA+IF9TZXNzaW9uTWFuYWdlci5jb29raWVVcGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2V0Q29va2llKHNlc3Npb24sIG5vd01zKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiAgUmVjb3JkIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBhdXRvbWF0aWMgc2Vzc2lvbiBhbmQgc3RvcmUgaXQgaW4gb3VyIGNvb2tpZSBzdHJpbmcgZm9ybWF0XHJcbiAgICAgICAgICAgICAqICBpbnRvIHRoZSBicm93c2VyJ3MgbG9jYWwgc3RvcmFnZS4gVGhpcyBpcyB1c2VkIHRvIHJlc3RvcmUgdGhlIHNlc3Npb24gZGF0YSB3aGVuIHRoZSBjb29raWVcclxuICAgICAgICAgICAgICogIGV4cGlyZXMuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi5iYWNrdXAgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2Vzc2lvbiA9IF9zZWxmW19EWU5fQVVUT01BVElDX1NFU1NJT04gLyogQG1pbjolMmVhdXRvbWF0aWNTZXNzaW9uICovXTtcclxuICAgICAgICAgICAgICAgIF9zZXRTdG9yYWdlKHNlc3Npb24uaWQsIHNlc3Npb25bX0RZTl9BQ1FVSVNJVElPTl9EQVRFIC8qIEBtaW46JTJlYWNxdWlzaXRpb25EYXRlICovXSwgc2Vzc2lvbltfRFlOX1JFTkVXQUxfREFURSAvKiBAbWluOiUyZXJlbmV3YWxEYXRlICovXSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBVc2UgY29uZmlnLm5hbWVQcmVmaXggKyBhaV9zZXNzaW9uIGNvb2tpZSBkYXRhIG9yIGxvY2FsIHN0b3JhZ2UgZGF0YSAod2hlbiB0aGUgY29va2llIGlzIHVuYXZhaWxhYmxlKSB0b1xyXG4gICAgICAgICAgICAgKiBpbml0aWFsaXplIHRoZSBhdXRvbWF0aWMgc2Vzc2lvbi5cclxuICAgICAgICAgICAgICogQHJldHVybnMgdHJ1ZSBpZiB2YWx1ZXMgc2V0IG90aGVyd2lzZSBmYWxzZVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2luaXRpYWxpemVBdXRvbWF0aWNTZXNzaW9uKHNlc3Npb24sIG5vdykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGlzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHZhciBjb29raWVWYWx1ZSA9IF9jb29raWVNYW5hZ2VyLmdldChfc3RvcmFnZU5hbWVQcmVmaXgoKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29va2llVmFsdWUgJiYgaXNGdW5jdGlvbihjb29raWVWYWx1ZS5zcGxpdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gX2luaXRpYWxpemVBdXRvbWF0aWNTZXNzaW9uV2l0aERhdGEoc2Vzc2lvbiwgY29va2llVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUncyBubyBjb29raWUsIGJ1dCB3ZSBtaWdodCBoYXZlIHNlc3Npb24gZGF0YSBpbiBsb2NhbCBzdG9yYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBzZXNzaW9uIGV4cGlyZWQgb3IgdGhlIHVzZXIgYWN0aXZlbHkgZGVsZXRlZCB0aGUgY29va2llXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHJlY292ZXIgZGF0YSBpZiB0aGUgY29va2llIGlzIG1pc3NpbmcgZnJvbSBleHBpcnkuIFdlIHNob3VsZCByZXNwZWN0IHRoZSB1c2VyJ3Mgd2lzaGVzIGlmIHRoZSBjb29raWUgd2FzIGRlbGV0ZWQgYWN0aXZlbHkuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIFVzZXIgY2xhc3MgaGFuZGxlcyB0aGlzIGZvciB1cyBhbmQgZGVsZXRlcyBvdXIgbG9jYWwgc3RvcmFnZSBvYmplY3QgaWYgdGhlIHBlcnNpc3RlbnQgdXNlciBjb29raWUgd2FzIHJlbW92ZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JhZ2VWYWx1ZSA9IHV0bEdldExvY2FsU3RvcmFnZShfbG9nZ2VyLCBfc3RvcmFnZU5hbWVQcmVmaXgoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JhZ2VWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gX2luaXRpYWxpemVBdXRvbWF0aWNTZXNzaW9uV2l0aERhdGEoc2Vzc2lvbiwgc3RvcmFnZVZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZCB8fCAhIXNlc3Npb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEV4dHJhY3QgaWQsIGFjcXVpc2l0aW9uRGF0ZSwgYW5kIHJlbmV3YWxEYXRlIGZyb20gYW4gYWlfc2Vzc2lvbiBwYXlsb2FkIHN0cmluZyBhbmRcclxuICAgICAgICAgICAgICogdXNlIHRoaXMgZGF0YSB0byBpbml0aWFsaXplIGF1dG9tYXRpY1Nlc3Npb24uXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXNzaW9uRGF0YSAtIFRoZSBzdHJpbmcgc3RvcmVkIGluIGFuIGFpX3Nlc3Npb24gY29va2llIG9yIGxvY2FsIHN0b3JhZ2UgYmFja3VwXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHRydWUgaWYgdmFsdWVzIHNldCBvdGhlcndpc2UgZmFsc2VcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9pbml0aWFsaXplQXV0b21hdGljU2Vzc2lvbldpdGhEYXRhKHNlc3Npb24sIHNlc3Npb25EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIHNlc3Npb25SZXNldCA9IFwiLCBzZXNzaW9uIHdpbGwgYmUgcmVzZXRcIjtcclxuICAgICAgICAgICAgICAgIHZhciB0b2tlbnMgPSBzZXNzaW9uRGF0YS5zcGxpdChcInxcIik7XHJcbiAgICAgICAgICAgICAgICBpZiAodG9rZW5zW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFjcU1zID0gK3Rva2Vuc1sxXSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVuZXdhbE1zID0gK3Rva2Vuc1syXSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4oYWNxTXMpIHx8IGFjcU1zIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9sb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCAyNyAvKiBfZUludGVybmFsTWVzc2FnZUlkLlNlc3Npb25SZW5ld2FsRGF0ZUlzWmVybyAqLywgXCJBSSBzZXNzaW9uIGFjcXVpc2l0aW9uIGRhdGUgaXMgMFwiICsgc2Vzc2lvblJlc2V0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpc05hTihyZW5ld2FsTXMpIHx8IHJlbmV3YWxNcyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfbG9nZ2VyLCAyIC8qIGVMb2dnaW5nU2V2ZXJpdHkuV0FSTklORyAqLywgMjcgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5TZXNzaW9uUmVuZXdhbERhdGVJc1plcm8gKi8sIFwiQUkgc2Vzc2lvbiByZW5ld2FsIGRhdGUgaXMgMFwiICsgc2Vzc2lvblJlc2V0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbnNbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgbG9va3MgdmFsaWQgc28gc2V0IHRoZSB2YWx1ZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uaWQgPSB0b2tlbnNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uW19EWU5fQUNRVUlTSVRJT05fREFURSAvKiBAbWluOiUyZWFjcXVpc2l0aW9uRGF0ZSAqL10gPSBhY3FNcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25bX0RZTl9SRU5FV0FMX0RBVEUgLyogQG1pbjolMmVyZW5ld2FsRGF0ZSAqL10gPSByZW5ld2FsTXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfbG9nZ2VyLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDkgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5FcnJvclBhcnNpbmdBSVNlc3Npb25Db29raWUgKi8sIFwiRXJyb3IgcGFyc2luZyBhaV9zZXNzaW9uIHZhbHVlIFtcIiArIChzZXNzaW9uRGF0YSB8fCBcIlwiKSArIFwiXVwiICsgc2Vzc2lvblJlc2V0ICsgXCIgLSBcIiArIGdldEV4Y2VwdGlvbk5hbWUoZSksIHsgZXhjZXB0aW9uOiBkdW1wT2JqKGUpIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9yZW5ldyhub3dNcykge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRoZUNvbmZpZyA9IChfc2VsZltfRFlOX0NPTkZJRyAvKiBAbWluOiUyZWNvbmZpZyAqL10gfHwge30pO1xyXG4gICAgICAgICAgICAgICAgdmFyIGdldE5ld0lkID0gKHRoZUNvbmZpZ1tfRFlOX0dFVF9ORVdfSUQgLyogQG1pbjolMmVnZXROZXdJZCAqL10gPyB0aGVDb25maWdbX0RZTl9HRVRfTkVXX0lEIC8qIEBtaW46JTJlZ2V0TmV3SWQgKi9dKCkgOiBudWxsKSB8fCBuZXdJZDtcclxuICAgICAgICAgICAgICAgIF9zZWxmLmF1dG9tYXRpY1Nlc3Npb24uaWQgPSBnZXROZXdJZCh0aGVDb25maWdbX0RZTl9JRF9MRU5HVEggLyogQG1pbjolMmVpZExlbmd0aCAqL10gPyB0aGVDb25maWdbX0RZTl9JRF9MRU5HVEggLyogQG1pbjolMmVpZExlbmd0aCAqL10oKSA6IDIyKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQVVUT01BVElDX1NFU1NJT04gLyogQG1pbjolMmVhdXRvbWF0aWNTZXNzaW9uICovXVtfRFlOX0FDUVVJU0lUSU9OX0RBVEUgLyogQG1pbjolMmVhY3F1aXNpdGlvbkRhdGUgKi9dID0gbm93TXM7XHJcbiAgICAgICAgICAgICAgICBfc2V0Q29va2llKF9zZWxmW19EWU5fQVVUT01BVElDX1NFU1NJT04gLyogQG1pbjolMmVhdXRvbWF0aWNTZXNzaW9uICovXSwgbm93TXMpO1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgbG9jYWwgc3RvcmFnZSwgZmlyZSBhbiBpbnRlcm5hbCBsb2cgdG8ga2VlcCB0cmFjayBvZiBpdCBhdCB0aGlzIHBvaW50XHJcbiAgICAgICAgICAgICAgICBpZiAoIXV0bENhblVzZUxvY2FsU3RvcmFnZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX2xvZ2dlciwgMiAvKiBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcgKi8sIDAgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5Ccm93c2VyRG9lc05vdFN1cHBvcnRMb2NhbFN0b3JhZ2UgKi8sIFwiQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGxvY2FsIHN0b3JhZ2UuIFNlc3Npb24gZHVyYXRpb25zIHdpbGwgYmUgaW5hY2N1cmF0ZS5cIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3NldENvb2tpZShzZXNzaW9uLCBub3dNcykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFjcSA9IHNlc3Npb25bX0RZTl9BQ1FVSVNJVElPTl9EQVRFIC8qIEBtaW46JTJlYWNxdWlzaXRpb25EYXRlICovXTtcclxuICAgICAgICAgICAgICAgIHNlc3Npb25bX0RZTl9SRU5FV0FMX0RBVEUgLyogQG1pbjolMmVyZW5ld2FsRGF0ZSAqL10gPSBub3dNcztcclxuICAgICAgICAgICAgICAgIHZhciBjb25maWcgPSBfc2VsZltfRFlOX0NPTkZJRyAvKiBAbWluOiUyZWNvbmZpZyAqL107XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVuZXdhbFBlcmlvZE1zID0gY29uZmlnW19EWU5fU0VTU0lPTl9SRU5FV0FMX01TIC8qIEBtaW46JTJlc2Vzc2lvblJlbmV3YWxNcyAqL10oKTtcclxuICAgICAgICAgICAgICAgIC8vIFNldCBjb29raWUgdG8gZXhwaXJlIGFmdGVyIHRoZSBzZXNzaW9uIGV4cGlyeSB0aW1lIHBhc3NlcyBvciB0aGUgc2Vzc2lvbiByZW5ld2FsIGRlYWRsaW5lLCB3aGljaGV2ZXIgaXMgc29vbmVyXHJcbiAgICAgICAgICAgICAgICAvLyBFeHBpcmluZyB0aGUgY29va2llIHdpbGwgY2F1c2UgdGhlIHNlc3Npb24gdG8gZXhwaXJlIGV2ZW4gaWYgdGhlIHVzZXIgaXNuJ3Qgb24gdGhlIHBhZ2VcclxuICAgICAgICAgICAgICAgIHZhciBhY3FUaW1lTGVmdE1zID0gKGFjcSArIGNvbmZpZ1tfRFlOX1NFU1NJT05fRVhQSVJBVElPTl9NNyAvKiBAbWluOiUyZXNlc3Npb25FeHBpcmF0aW9uTXMgKi9dKCkpIC0gbm93TXM7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29va2llID0gW3Nlc3Npb24uaWQsIGFjcSwgbm93TXNdO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1heEFnZVNlYyA9IDA7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWNxVGltZUxlZnRNcyA8IHJlbmV3YWxQZXJpb2RNcykge1xyXG4gICAgICAgICAgICAgICAgICAgIG1heEFnZVNlYyA9IGFjcVRpbWVMZWZ0TXMgLyAxMDAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4QWdlU2VjID0gcmVuZXdhbFBlcmlvZE1zIC8gMTAwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBjb29raWVEb21haW4gPSBjb25maWdbX0RZTl9DT09LSUVfRE9NQUlOIC8qIEBtaW46JTJlY29va2llRG9tYWluICovXSA/IGNvbmZpZ1tfRFlOX0NPT0tJRV9ET01BSU4gLyogQG1pbjolMmVjb29raWVEb21haW4gKi9dKCkgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgc2Vzc2lvbkV4cGlyYXRpb25NcyBpcyBzZXQgdG8gMCwgaXQgbWVhbnMgdGhlIGV4cGlyeSBpcyBzZXQgdG8gMCBmb3IgdGhpcyBzZXNzaW9uIGNvb2tpZVxyXG4gICAgICAgICAgICAgICAgLy8gQSBjb29raWUgd2l0aCAwIGV4cGlyeSBpbiB0aGUgc2Vzc2lvbiBjb29raWUgd2lsbCBuZXZlciBleHBpcmUgZm9yIHRoYXQgYnJvd3NlciBzZXNzaW9uLiAgSWYgdGhlIGJyb3dzZXIgaXMgY2xvc2VkIHRoZSBjb29raWUgZXhwaXJlcy5cclxuICAgICAgICAgICAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUgYnJvd3NlciwgYW5vdGhlciBpbnN0YW5jZSBkb2VzIG5vdCBpbmhlcml0IHRoaXMgY29va2llLCBob3dldmVyLCBhbm90aGVyIHRhYiB3aWxsXHJcbiAgICAgICAgICAgICAgICBfY29va2llTWFuYWdlci5zZXQoX3N0b3JhZ2VOYW1lUHJlZml4KCksIGNvb2tpZS5qb2luKFwifFwiKSwgY29uZmlnW19EWU5fU0VTU0lPTl9FWFBJUkFUSU9OX003IC8qIEBtaW46JTJlc2Vzc2lvbkV4cGlyYXRpb25NcyAqL10oKSA+IDAgPyBtYXhBZ2VTZWMgOiBudWxsLCBjb29raWVEb21haW4pO1xyXG4gICAgICAgICAgICAgICAgX2Nvb2tpZVVwZGF0ZWRUaW1lc3RhbXAgPSBub3dNcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfc2V0U3RvcmFnZShndWlkLCBhY3EsIHJlbmV3YWwpIHtcclxuICAgICAgICAgICAgICAgIC8vIEtlZXAgZGF0YSBpbiBsb2NhbCBzdG9yYWdlIHRvIHJldGFpbiB0aGUgbGFzdCBzZXNzaW9uIGlkLCBhbGxvd2luZyB1cyB0byBjbGVhbmx5IGVuZCB0aGUgc2Vzc2lvbiB3aGVuIGl0IGV4cGlyZXNcclxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBsb2NhbCBzdG9yYWdlIHdvbid0IGJlIGFibGUgdG8gZW5kIHNlc3Npb25zIGNsZWFubHkgZnJvbSB0aGUgY2xpZW50XHJcbiAgICAgICAgICAgICAgICAvLyBUaGUgc2VydmVyIHdpbGwgbm90aWNlIHRoaXMgYW5kIGVuZCB0aGUgc2Vzc2lvbnMgaXRzZWxmLCB3aXRoIGxvc3Mgb2YgYWNjdXJhdGUgc2Vzc2lvbiBkdXJhdGlvblxyXG4gICAgICAgICAgICAgICAgdXRsU2V0TG9jYWxTdG9yYWdlKF9sb2dnZXIsIF9zdG9yYWdlTmFtZVByZWZpeCgpLCBbZ3VpZCwgYWNxLCByZW5ld2FsXVtfRFlOX0pPSU4gLyogQG1pbjolMmVqb2luICovXShcInxcIikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgX1Nlc3Npb25NYW5hZ2VyLnByb3RvdHlwZS51cGRhdGUuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgX1Nlc3Npb25NYW5hZ2VyLnByb3RvdHlwZS5iYWNrdXAuXHJcbiAgICBfU2Vzc2lvbk1hbmFnZXIuYWNxdWlzaXRpb25TcGFuID0gODY0MDAwMDA7IC8vIDI0IGhvdXJzIGluIG1zXHJcbiAgICBfU2Vzc2lvbk1hbmFnZXIucmVuZXdhbFNwYW4gPSAxODAwMDAwOyAvLyAzMCBtaW51dGVzIGluIG1zXHJcbiAgICBfU2Vzc2lvbk1hbmFnZXIuY29va2llVXBkYXRlSW50ZXJ2YWwgPSA2MDAwMDsgLy8gMSBtaW51dGUgaW4gbXNcclxuICAgIHJldHVybiBfU2Vzc2lvbk1hbmFnZXI7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IF9TZXNzaW9uTWFuYWdlciB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZXNzaW9uLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFByb3BlcnRpZXMgUGx1Z2luLCAyLjguOVxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgYW5kIGNvbnRyaWJ1dG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXHJcblxyXG5pbXBvcnQgeyBkYXRhU2FuaXRpemVTdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vblwiO1xyXG5pbXBvcnQgeyBnZW5lcmF0ZVczQ0lkLCBnZXRMb2NhdGlvbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG52YXIgVGVsZW1ldHJ5VHJhY2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBUZWxlbWV0cnlUcmFjZShpZCwgcGFyZW50SWQsIG5hbWUsIGxvZ2dlcikge1xyXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgX3NlbGYudHJhY2VJRCA9IGlkIHx8IGdlbmVyYXRlVzNDSWQoKTtcclxuICAgICAgICBfc2VsZi5wYXJlbnRJRCA9IHBhcmVudElkO1xyXG4gICAgICAgIHZhciBsb2NhdGlvbiA9IGdldExvY2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKCFuYW1lICYmIGxvY2F0aW9uICYmIGxvY2F0aW9uLnBhdGhuYW1lKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBsb2NhdGlvbi5wYXRobmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3NlbGYubmFtZSA9IGRhdGFTYW5pdGl6ZVN0cmluZyhsb2dnZXIsIG5hbWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFRlbGVtZXRyeVRyYWNlO1xyXG59KCkpO1xyXG5leHBvcnQgeyBUZWxlbWV0cnlUcmFjZSB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZWxlbWV0cnlUcmFjZS5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBQcm9wZXJ0aWVzIFBsdWdpbiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgdXRsUmVtb3ZlU3RvcmFnZSB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IF90aHJvd0ludGVybmFsLCBuZXdJZCwgc2FmZUdldENvb2tpZU1nciwgc2FmZUdldExvZ2dlciwgdG9JU09TdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgX0RZTl9BQ0NPVU5UX0lELCBfRFlOX0FVVEhFTlRJQ0FURURfSUQsIF9EWU5fQVVUSF9VU0VSX0NPT0tJRV9OQU04LCBfRFlOX0NPTkZJRywgX0RZTl9DT09LSUVfU0VQQVJBVE9SLCBfRFlOX0dFVF9ORVdfSUQsIF9EWU5fSURfTEVOR1RILCBfRFlOX0lTX05FV19VU0VSLCBfRFlOX0lTX1VTRVJfQ09PS0lFX1NFVCwgX0RZTl9KT0lOLCBfRFlOX0xFTkdUSCwgX0RZTl9OQU1FX1BSRUZJWCwgX0RZTl9VUERBVEUsIF9EWU5fVVNFUl9DT09LSUVfUE9TVEZJWCB9IGZyb20gXCIuLi9fX0R5bmFtaWNDb25zdGFudHNcIjtcclxuZnVuY3Rpb24gX3ZhbGlkYXRlVXNlcklucHV0KGlkKSB7XHJcbiAgICAvLyBWYWxpZGF0ZTpcclxuICAgIC8vIDEuIElkIGlzIGEgbm9uLWVtcHR5IHN0cmluZy5cclxuICAgIC8vIDIuIEl0IGRvZXMgbm90IGNvbnRhaW4gc3BlY2lhbCBjaGFyYWN0ZXJzIGZvciBjb29raWVzLlxyXG4gICAgaWYgKHR5cGVvZiBpZCAhPT0gXCJzdHJpbmdcIiB8fFxyXG4gICAgICAgICFpZCB8fFxyXG4gICAgICAgIGlkLm1hdGNoKC8sfDt8PXwgfFxcfC8pKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxudmFyIFVzZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBVc2VyKGNvbmZpZywgY29yZSkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyByZXByZXNlbnRzIGEgbmV3IHVzZXJcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzTmV3VXNlciA9IGZhbHNlO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHVzZXIgY29va2llIGhhcyBiZWVuIHNldFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaXNVc2VyQ29va2llU2V0ID0gZmFsc2U7XHJcbiAgICAgICAgdmFyIF9sb2dnZXIgPSBzYWZlR2V0TG9nZ2VyKGNvcmUpO1xyXG4gICAgICAgIHZhciBfY29va2llTWFuYWdlciA9IHNhZmVHZXRDb29raWVNZ3IoY29yZSk7XHJcbiAgICAgICAgdmFyIF9zdG9yYWdlTmFtZVByZWZpeDtcclxuICAgICAgICBkeW5hbWljUHJvdG8oVXNlciwgdGhpcywgZnVuY3Rpb24gKF9zZWxmKSB7XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXSA9IGNvbmZpZztcclxuICAgICAgICAgICAgdmFyIHVzZXJDb29raWVQb3N0Zml4ID0gKF9zZWxmLmNvbmZpZ1tfRFlOX1VTRVJfQ09PS0lFX1BPU1RGSVggLyogQG1pbjolMmV1c2VyQ29va2llUG9zdGZpeCAqL10gJiYgX3NlbGZbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dW19EWU5fVVNFUl9DT09LSUVfUE9TVEZJWCAvKiBAbWluOiUyZXVzZXJDb29raWVQb3N0Zml4ICovXSgpKSA/IF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXVtfRFlOX1VTRVJfQ09PS0lFX1BPU1RGSVggLyogQG1pbjolMmV1c2VyQ29va2llUG9zdGZpeCAqL10oKSA6IFwiXCI7XHJcbiAgICAgICAgICAgIF9zdG9yYWdlTmFtZVByZWZpeCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFVzZXIudXNlckNvb2tpZU5hbWUgKyB1c2VyQ29va2llUG9zdGZpeDsgfTtcclxuICAgICAgICAgICAgLy8gZ2V0IHVzZXJJZCBvciBjcmVhdGUgbmV3IG9uZSBpZiBub25lIGV4aXN0c1xyXG4gICAgICAgICAgICB2YXIgY29va2llID0gX2Nvb2tpZU1hbmFnZXIuZ2V0KF9zdG9yYWdlTmFtZVByZWZpeCgpKTtcclxuICAgICAgICAgICAgaWYgKGNvb2tpZSkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9JU19ORVdfVVNFUiAvKiBAbWluOiUyZWlzTmV3VXNlciAqL10gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHZhciBwYXJhbXMgPSBjb29raWUuc3BsaXQoVXNlcltfRFlOX0NPT0tJRV9TRVBBUkFUT1IgLyogQG1pbjolMmVjb29raWVTZXBhcmF0b3IgKi9dKTtcclxuICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbX0RZTl9MRU5HVEggLyogQG1pbjolMmVsZW5ndGggKi9dID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLmlkID0gcGFyYW1zWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGFscmVhZHkgaGF2ZSBhIGNvb2tpZVxyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fSVNfVVNFUl9DT09LSUVfU0VUIC8qIEBtaW46JTJlaXNVc2VyQ29va2llU2V0ICovXSA9ICEhX3NlbGYuaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2dlbmVyYXRlTmV3SWQoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGhlQ29uZmlnID0gKGNvbmZpZyB8fCB7fSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZ2V0TmV3SWQgPSAodGhlQ29uZmlnW19EWU5fR0VUX05FV19JRCAvKiBAbWluOiUyZWdldE5ld0lkICovXSA/IHRoZUNvbmZpZ1tfRFlOX0dFVF9ORVdfSUQgLyogQG1pbjolMmVnZXROZXdJZCAqL10oKSA6IG51bGwpIHx8IG5ld0lkO1xyXG4gICAgICAgICAgICAgICAgdmFyIGlkID0gZ2V0TmV3SWQodGhlQ29uZmlnW19EWU5fSURfTEVOR1RIIC8qIEBtaW46JTJlaWRMZW5ndGggKi9dID8gY29uZmlnW19EWU5fSURfTEVOR1RIIC8qIEBtaW46JTJlaWRMZW5ndGggKi9dKCkgOiAyMik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2dlbmVyYXRlTmV3Q29va2llKHVzZXJJZCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFjcVN0ciA9IHRvSVNPU3RyaW5nKG5ldyBEYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuYWNjb3VudEFjcXVpc2l0aW9uRGF0ZSA9IGFjcVN0cjtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fSVNfTkVXX1VTRVIgLyogQG1pbjolMmVpc05ld1VzZXIgKi9dID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHZhciBuZXdDb29raWUgPSBbdXNlcklkLCBhY3FTdHJdO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0Nvb2tpZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfc2V0VXNlckNvb2tpZShjb29raWUpIHtcclxuICAgICAgICAgICAgICAgIC8vIHdpdGhvdXQgZXhwaXJhdGlvbiwgY29va2llcyBleHBpcmUgYXQgdGhlIGVuZCBvZiB0aGUgc2Vzc2lvblxyXG4gICAgICAgICAgICAgICAgLy8gc2V0IGl0IHRvIDM2NSBkYXlzIGZyb20gbm93XHJcbiAgICAgICAgICAgICAgICAvLyAzNjUgKiAyNCAqIDYwICogNjAgPSAzMTUzNjAwMFxyXG4gICAgICAgICAgICAgICAgdmFyIG9uZVllYXIgPSAzMTUzNjAwMDtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fSVNfVVNFUl9DT09LSUVfU0VUIC8qIEBtaW46JTJlaXNVc2VyQ29va2llU2V0ICovXSA9IF9jb29raWVNYW5hZ2VyLnNldChfc3RvcmFnZU5hbWVQcmVmaXgoKSwgY29va2llLCBvbmVZZWFyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIV9zZWxmLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBfc2VsZi5pZCA9IF9nZW5lcmF0ZU5ld0lkKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV3Q29va2llID0gX2dlbmVyYXRlTmV3Q29va2llKF9zZWxmLmlkKTtcclxuICAgICAgICAgICAgICAgIF9zZXRVc2VyQ29va2llKG5ld0Nvb2tpZVtfRFlOX0pPSU4gLyogQG1pbjolMmVqb2luICovXShVc2VyW19EWU5fQ09PS0lFX1NFUEFSQVRPUiAvKiBAbWluOiUyZWNvb2tpZVNlcGFyYXRvciAqL10pKTtcclxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gY29uZmlnLm5hbWVQcmVmaXgoKSArIGFpX3Nlc3Npb24gaW4gbG9jYWwgc3RvcmFnZSB0aGlzIG1lYW5zIHRoZSB1c2VyIGFjdGl2ZWx5IHJlbW92ZWQgb3VyIGNvb2tpZXMuXHJcbiAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGQgcmVzcGVjdCB0aGVpciB3aXNoZXMgYW5kIGNsZWFyIG91cnNlbHZlcyBmcm9tIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICAgICAgICAgIHZhciBuYW1lXzEgPSBjb25maWdbX0RZTl9OQU1FX1BSRUZJWCAvKiBAbWluOiUyZW5hbWVQcmVmaXggKi9dICYmIGNvbmZpZ1tfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46JTJlbmFtZVByZWZpeCAqL10oKSA/IGNvbmZpZ1tfRFlOX05BTUVfUFJFRklYIC8qIEBtaW46JTJlbmFtZVByZWZpeCAqL10oKSArIFwiYWlfc2Vzc2lvblwiIDogXCJhaV9zZXNzaW9uXCI7XHJcbiAgICAgICAgICAgICAgICB1dGxSZW1vdmVTdG9yYWdlKF9sb2dnZXIsIG5hbWVfMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gV2Ugc3RpbGwgdGFrZSB0aGUgYWNjb3VudCBpZCBmcm9tIHRoZSBjdG9yIHBhcmFtIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxyXG4gICAgICAgICAgICAvLyBCdXQgaWYgdGhlIHRoZSBjdXN0b21lciBzZXQgdGhlIGFjY291bnRJZCB0aHJvdWdoIHRoZSBuZXdlciBzZXRBdXRoZW50aWNhdGVkVXNlckNvbnRleHQgQVBJLCB3ZSB3aWxsIG92ZXJyaWRlIGl0LlxyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0FDQ09VTlRfSUQgLyogQG1pbjolMmVhY2NvdW50SWQgKi9dID0gY29uZmlnW19EWU5fQUNDT1VOVF9JRCAvKiBAbWluOiUyZWFjY291bnRJZCAqL10gPyBjb25maWdbX0RZTl9BQ0NPVU5UX0lEIC8qIEBtaW46JTJlYWNjb3VudElkICovXSgpIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAvLyBHZXQgdGhlIGF1dGggdXNlciBpZCBhbmQgYWNjb3VudCBpZCBmcm9tIHRoZSBjb29raWUgaWYgZXhpc3RzXHJcbiAgICAgICAgICAgIC8vIENvb2tpZSBpcyBpbiB0aGUgcGF0dGVybjogPGF1dGhlbnRpY2F0ZWRJZD58PGFjY291bnRJZD5cclxuICAgICAgICAgICAgdmFyIGF1dGhDb29raWUgPSBfY29va2llTWFuYWdlci5nZXQoVXNlcltfRFlOX0FVVEhfVVNFUl9DT09LSUVfTkFNOCAvKiBAbWluOiUyZWF1dGhVc2VyQ29va2llTmFtZSAqL10pO1xyXG4gICAgICAgICAgICBpZiAoYXV0aENvb2tpZSkge1xyXG4gICAgICAgICAgICAgICAgYXV0aENvb2tpZSA9IGRlY29kZVVSSShhdXRoQ29va2llKTtcclxuICAgICAgICAgICAgICAgIHZhciBhdXRoQ29va2llU3RyaW5nID0gYXV0aENvb2tpZS5zcGxpdChVc2VyW19EWU5fQ09PS0lFX1NFUEFSQVRPUiAvKiBAbWluOiUyZWNvb2tpZVNlcGFyYXRvciAqL10pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGF1dGhDb29raWVTdHJpbmdbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX0FVVEhFTlRJQ0FURURfSUQgLyogQG1pbjolMmVhdXRoZW50aWNhdGVkSWQgKi9dID0gYXV0aENvb2tpZVN0cmluZ1swXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChhdXRoQ29va2llU3RyaW5nW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA+IDEgJiYgYXV0aENvb2tpZVN0cmluZ1sxXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQUNDT1VOVF9JRCAvKiBAbWluOiUyZWFjY291bnRJZCAqL10gPSBhdXRoQ29va2llU3RyaW5nWzFdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF9zZWxmLnNldEF1dGhlbnRpY2F0ZWRVc2VyQ29udGV4dCA9IGZ1bmN0aW9uIChhdXRoZW50aWNhdGVkVXNlcklkLCBhY2NvdW50SWQsIHN0b3JlSW5Db29raWUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChzdG9yZUluQ29va2llID09PSB2b2lkIDApIHsgc3RvcmVJbkNvb2tpZSA9IGZhbHNlOyB9XHJcbiAgICAgICAgICAgICAgICAvLyBWYWxpZGF0ZSBpbnB1dHMgdG8gZW5zdXJlIG5vIGNvb2tpZSBjb250cm9sIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgICAgICAgICB2YXIgaXNJbnZhbGlkSW5wdXQgPSAhX3ZhbGlkYXRlVXNlcklucHV0KGF1dGhlbnRpY2F0ZWRVc2VySWQpIHx8IChhY2NvdW50SWQgJiYgIV92YWxpZGF0ZVVzZXJJbnB1dChhY2NvdW50SWQpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc0ludmFsaWRJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9sb2dnZXIsIDIgLyogZUxvZ2dpbmdTZXZlcml0eS5XQVJOSU5HICovLCA2MCAvKiBfZUludGVybmFsTWVzc2FnZUlkLlNldEF1dGhDb250ZXh0RmFpbGVkQWNjb3VudE5hbWUgKi8sIFwiU2V0dGluZyBhdXRoIHVzZXIgY29udGV4dCBmYWlsZWQuIFwiICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJVc2VyIGF1dGgvYWNjb3VudCBpZCBzaG91bGQgYmUgb2YgdHlwZSBzdHJpbmcsIGFuZCBub3QgY29udGFpbiBjb21tYXMsIHNlbWktY29sb25zLCBlcXVhbCBzaWducywgc3BhY2VzLCBvciB2ZXJ0aWNhbC1iYXJzLlwiLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgY29va2llIHN0cmluZy5cclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQVVUSEVOVElDQVRFRF9JRCAvKiBAbWluOiUyZWF1dGhlbnRpY2F0ZWRJZCAqL10gPSBhdXRoZW50aWNhdGVkVXNlcklkO1xyXG4gICAgICAgICAgICAgICAgdmFyIGF1dGhDb29raWUgPSBfc2VsZltfRFlOX0FVVEhFTlRJQ0FURURfSUQgLyogQG1pbjolMmVhdXRoZW50aWNhdGVkSWQgKi9dO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFjY291bnRJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQUNDT1VOVF9JRCAvKiBAbWluOiUyZWFjY291bnRJZCAqL10gPSBhY2NvdW50SWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYXV0aENvb2tpZSA9IFtfc2VsZltfRFlOX0FVVEhFTlRJQ0FURURfSUQgLyogQG1pbjolMmVhdXRoZW50aWNhdGVkSWQgKi9dLCBfc2VsZi5hY2NvdW50SWRdW19EWU5fSk9JTiAvKiBAbWluOiUyZWpvaW4gKi9dKFVzZXJbX0RZTl9DT09LSUVfU0VQQVJBVE9SIC8qIEBtaW46JTJlY29va2llU2VwYXJhdG9yICovXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVJbkNvb2tpZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgY29va2llLiBObyBleHBpcmF0aW9uIGRhdGUgYmVjYXVzZSB0aGlzIGlzIGEgc2Vzc2lvbiBjb29raWUgKGV4cGlyZXMgd2hlbiBicm93c2VyIGNsb3NlZCkuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5jb2RpbmcgdGhlIGNvb2tpZSB0byBoYW5kbGUgdW5leHBlY3RlZCB1bmljb2RlIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgICAgICAgICAgICAgX2Nvb2tpZU1hbmFnZXIuc2V0KFVzZXJbX0RZTl9BVVRIX1VTRVJfQ09PS0lFX05BTTggLyogQG1pbjolMmVhdXRoVXNlckNvb2tpZU5hbWUgKi9dLCBlbmNvZGVVUkkoYXV0aENvb2tpZSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQ2xlYXJzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgaWQgYW5kIHRoZSBhY2NvdW50IGlkIGZyb20gdGhlIHVzZXIgY29udGV4dC5cclxuICAgICAgICAgICAgICogQHJldHVybnMge31cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIF9zZWxmLmNsZWFyQXV0aGVudGljYXRlZFVzZXJDb250ZXh0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9BVVRIRU5USUNBVEVEX0lEIC8qIEBtaW46JTJlYXV0aGVudGljYXRlZElkICovXSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX0FDQ09VTlRfSUQgLyogQG1pbjolMmVhY2NvdW50SWQgKi9dID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9jb29raWVNYW5hZ2VyLmRlbChVc2VyW19EWU5fQVVUSF9VU0VSX0NPT0tJRV9OQU04IC8qIEBtaW46JTJlYXV0aFVzZXJDb29raWVOYW1lICovXSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fVVBEQVRFIC8qIEBtaW46JTJldXBkYXRlICovXSA9IGZ1bmN0aW9uICh1c2VySWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIE9wdGltaXphdGlvbnMgdG8gYXZvaWQgc2V0dGluZyBhbmQgcHJvY2Vzc2luZyB0aGUgY29va2llIHdoZW4gbm90IG5lZWRlZFxyXG4gICAgICAgICAgICAgICAgaWYgKF9zZWxmLmlkICE9PSB1c2VySWQgfHwgIV9zZWxmW19EWU5fSVNfVVNFUl9DT09LSUVfU0VUIC8qIEBtaW46JTJlaXNVc2VyQ29va2llU2V0ICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB1c2VyX2lkID0gdXNlcklkID8gdXNlcklkIDogX2dlbmVyYXRlTmV3SWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdXNlcl9jb29raWUgPSBfZ2VuZXJhdGVOZXdDb29raWUodXNlcl9pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3NldFVzZXJDb29raWUodXNlcl9jb29raWVbX0RZTl9KT0lOIC8qIEBtaW46JTJlam9pbiAqL10oVXNlcltfRFlOX0NPT0tJRV9TRVBBUkFUT1IgLyogQG1pbjolMmVjb29raWVTZXBhcmF0b3IgKi9dKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgVXNlci5wcm90b3R5cGUuc2V0QXV0aGVudGljYXRlZFVzZXJDb250ZXh0LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFVzZXIucHJvdG90eXBlLmNsZWFyQXV0aGVudGljYXRlZFVzZXJDb250ZXh0LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFVzZXIucHJvdG90eXBlLnVwZGF0ZS5cclxuICAgIFVzZXIuY29va2llU2VwYXJhdG9yID0gXCJ8XCI7XHJcbiAgICBVc2VyLnVzZXJDb29raWVOYW1lID0gXCJhaV91c2VyXCI7XHJcbiAgICBVc2VyLmF1dGhVc2VyQ29va2llTmFtZSA9IFwiYWlfYXV0aFVzZXJcIjtcclxuICAgIHJldHVybiBVc2VyO1xyXG59KCkpO1xyXG5leHBvcnQgeyBVc2VyIH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVVzZXIuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gUHJvcGVydGllcyBQbHVnaW4sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG4vKipcclxuKiBUZWxlbWV0cnlDb250ZXh0LnRzXHJcbiogQGNvcHlyaWdodCBNaWNyb3NvZnQgMjAxOFxyXG4qL1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBDdHhUYWdLZXlzLCBFeHRlbnNpb25zLCBQYWdlVmlldyB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7IF9JbnRlcm5hbExvZ01lc3NhZ2UsIGdldFNldFZhbHVlLCBoYXNXaW5kb3csIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1N0cmluZywgb2JqS2V5cywgc2V0VmFsdWUgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IHsgQXBwbGljYXRpb24gfSBmcm9tIFwiLi9Db250ZXh0L0FwcGxpY2F0aW9uXCI7XHJcbmltcG9ydCB7IERldmljZSB9IGZyb20gXCIuL0NvbnRleHQvRGV2aWNlXCI7XHJcbmltcG9ydCB7IEludGVybmFsIH0gZnJvbSBcIi4vQ29udGV4dC9JbnRlcm5hbFwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCIuL0NvbnRleHQvTG9jYXRpb25cIjtcclxuaW1wb3J0IHsgU2Vzc2lvbiwgX1Nlc3Npb25NYW5hZ2VyIH0gZnJvbSBcIi4vQ29udGV4dC9TZXNzaW9uXCI7XHJcbmltcG9ydCB7IFRlbGVtZXRyeVRyYWNlIH0gZnJvbSBcIi4vQ29udGV4dC9UZWxlbWV0cnlUcmFjZVwiO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4vQ29udGV4dC9Vc2VyXCI7XHJcbmltcG9ydCB7IF9EWU5fQUNDT1VOVF9JRCwgX0RZTl9BUFBMWV9BUFBMSUNBVElPTl9DTzEsIF9EWU5fQVBQTFlfREVWSUNFX0NPTlRFWFQsIF9EWU5fQVBQTFlfSU5URVJOQUxfQ09OVEU1LCBfRFlOX0FQUExZX0xPQ0FUSU9OX0NPTlRFNCwgX0RZTl9BUFBMWV9PUEVSQVRJTkdfU1lTVDMsIF9EWU5fQVBQTFlfT1BFUkFUSU9OX0NPTlQyLCBfRFlOX0FQUExZX1NFU1NJT05fQ09OVEVYMCwgX0RZTl9BUFBMWV9VU0VSX0NPTlRFWFQsIF9EWU5fQVVUSEVOVElDQVRFRF9JRCwgX0RZTl9BVVRPTUFUSUNfU0VTU0lPTiwgX0RZTl9HRVRfU0VTU0lPTl9JRCwgX0RZTl9MRU5HVEgsIF9EWU5fU0VTU0lPTl9NQU5BR0VSLCBfRFlOX1RFTEVNRVRSWV9UUkFDRSB9IGZyb20gXCIuL19fRHluYW1pY0NvbnN0YW50c1wiO1xyXG52YXIgc3RyRXh0ID0gXCJleHRcIjtcclxudmFyIHN0clRhZ3MgPSBcInRhZ3NcIjtcclxuZnVuY3Rpb24gX3JlbW92ZUVtcHR5KHRhcmdldCwgbmFtZSkge1xyXG4gICAgaWYgKHRhcmdldCAmJiB0YXJnZXRbbmFtZV0gJiYgb2JqS2V5cyh0YXJnZXRbbmFtZV0pW19EWU5fTEVOR1RIIC8qIEBtaW46JTJlbGVuZ3RoICovXSA9PT0gMCkge1xyXG4gICAgICAgIGRlbGV0ZSB0YXJnZXRbbmFtZV07XHJcbiAgICB9XHJcbn1cclxudmFyIFRlbGVtZXRyeUNvbnRleHQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBUZWxlbWV0cnlDb250ZXh0KGNvcmUsIGRlZmF1bHRDb25maWcsIHByZXZpb3VzVHJhY2VDdHgpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHZhciBsb2dnZXIgPSBjb3JlLmxvZ2dlcjtcclxuICAgICAgICB0aGlzLmFwcElkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbnVsbDsgfTtcclxuICAgICAgICB0aGlzW19EWU5fR0VUX1NFU1NJT05fSUQgLyogQG1pbjolMmVnZXRTZXNzaW9uSWQgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbnVsbDsgfTtcclxuICAgICAgICBkeW5hbWljUHJvdG8oVGVsZW1ldHJ5Q29udGV4dCwgdGhpcywgZnVuY3Rpb24gKF9zZWxmKSB7XHJcbiAgICAgICAgICAgIF9zZWxmLmFwcGxpY2F0aW9uID0gbmV3IEFwcGxpY2F0aW9uKCk7XHJcbiAgICAgICAgICAgIF9zZWxmLmludGVybmFsID0gbmV3IEludGVybmFsKGRlZmF1bHRDb25maWcpO1xyXG4gICAgICAgICAgICBpZiAoaGFzV2luZG93KCkpIHtcclxuICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fU0VTU0lPTl9NQU5BR0VSIC8qIEBtaW46JTJlc2Vzc2lvbk1hbmFnZXIgKi9dID0gbmV3IF9TZXNzaW9uTWFuYWdlcihkZWZhdWx0Q29uZmlnLCBjb3JlKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLmRldmljZSA9IG5ldyBEZXZpY2UoKTtcclxuICAgICAgICAgICAgICAgIF9zZWxmLmxvY2F0aW9uID0gbmV3IExvY2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBfc2VsZi51c2VyID0gbmV3IFVzZXIoZGVmYXVsdENvbmZpZywgY29yZSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdHJhY2VJZCA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgIHZhciBwYXJlbnRJZCA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgIHZhciBuYW1lXzE7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNUcmFjZUN0eCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYWNlSWQgPSBwcmV2aW91c1RyYWNlQ3R4LmdldFRyYWNlSWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZCA9IHByZXZpb3VzVHJhY2VDdHguZ2V0U3BhbklkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZV8xID0gcHJldmlvdXNUcmFjZUN0eC5nZXROYW1lKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfc2VsZltfRFlOX1RFTEVNRVRSWV9UUkFDRSAvKiBAbWluOiUyZXRlbGVtZXRyeVRyYWNlICovXSA9IG5ldyBUZWxlbWV0cnlUcmFjZSh0cmFjZUlkLCBwYXJlbnRJZCwgbmFtZV8xLCBsb2dnZXIpO1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuc2Vzc2lvbiA9IG5ldyBTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9HRVRfU0VTU0lPTl9JRCAvKiBAbWluOiUyZWdldFNlc3Npb25JZCAqL10gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2Vzc2lvbiA9IF9zZWxmLnNlc3Npb247XHJcbiAgICAgICAgICAgICAgICB2YXIgc2VzSWQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgY3VzdG9tZXIgc2V0IHNlc3Npb24gaW5mbywgYXBwbHkgdGhlaXIgY29udGV4dDsgb3RoZXJ3aXNlIGFwcGx5IGNvbnRleHQgYXV0b21hdGljYWxseSBnZW5lcmF0ZWRcclxuICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uICYmIGlzU3RyaW5nKHNlc3Npb24uaWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VzSWQgPSBzZXNzaW9uLmlkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gR2V0cyB0aGUgYXV0b21hdGljIHNlc3Npb24gaWYgaXQgZXhpc3RzIG9yIGFuIGVtcHR5IG9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBhdXRvU2Vzc2lvbiA9IChfc2VsZltfRFlOX1NFU1NJT05fTUFOQUdFUiAvKiBAbWluOiUyZXNlc3Npb25NYW5hZ2VyICovXSB8fCB7fSlbX0RZTl9BVVRPTUFUSUNfU0VTU0lPTiAvKiBAbWluOiUyZWF1dG9tYXRpY1Nlc3Npb24gKi9dO1xyXG4gICAgICAgICAgICAgICAgICAgIHNlc0lkID0gYXV0b1Nlc3Npb24gJiYgaXNTdHJpbmcoYXV0b1Nlc3Npb24uaWQpID8gYXV0b1Nlc3Npb24uaWQgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlc0lkO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0FQUExZX1NFU1NJT05fQ09OVEVYMCAvKiBAbWluOiUyZWFwcGx5U2Vzc2lvbkNvbnRleHQgKi9dID0gZnVuY3Rpb24gKGV2dCwgaXRlbUN0eCkge1xyXG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZ2V0U2V0VmFsdWUoZXZ0LmV4dCwgRXh0ZW5zaW9ucy5BcHBFeHQpLCBcInNlc0lkXCIsIF9zZWxmW19EWU5fR0VUX1NFU1NJT05fSUQgLyogQG1pbjolMmVnZXRTZXNzaW9uSWQgKi9dKCksIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BUFBMWV9PUEVSQVRJTkdfU1lTVDMgLyogQG1pbjolMmVhcHBseU9wZXJhdGluZ1N5c3RlbUNvbnR4dCAqL10gPSBmdW5jdGlvbiAoZXZ0LCBpdGVtQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShldnQuZXh0LCBFeHRlbnNpb25zLk9TRXh0LCBfc2VsZi5vcyk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQVBQTFlfQVBQTElDQVRJT05fQ08xIC8qIEBtaW46JTJlYXBwbHlBcHBsaWNhdGlvbkNvbnRleHQgKi9dID0gZnVuY3Rpb24gKGV2dCwgaXRlbUN0eCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFwcGxpY2F0aW9uID0gX3NlbGYuYXBwbGljYXRpb247XHJcbiAgICAgICAgICAgICAgICBpZiAoYXBwbGljYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBldnQuZXh0LmFwcFxyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0YWdzID0gZ2V0U2V0VmFsdWUoZXZ0LCBzdHJUYWdzKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh0YWdzLCBDdHhUYWdLZXlzLmFwcGxpY2F0aW9uVmVyc2lvbiwgYXBwbGljYXRpb24udmVyLCBpc1N0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodGFncywgQ3R4VGFnS2V5cy5hcHBsaWNhdGlvbkJ1aWxkLCBhcHBsaWNhdGlvbi5idWlsZCwgaXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0FQUExZX0RFVklDRV9DT05URVhUIC8qIEBtaW46JTJlYXBwbHlEZXZpY2VDb250ZXh0ICovXSA9IGZ1bmN0aW9uIChldnQsIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBkZXZpY2UgPSBfc2VsZi5kZXZpY2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGV2aWNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXZ0LmV4dC5kZXZpY2VcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXh0RGV2aWNlID0gZ2V0U2V0VmFsdWUoZ2V0U2V0VmFsdWUoZXZ0LCBzdHJFeHQpLCBFeHRlbnNpb25zLkRldmljZUV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZXh0RGV2aWNlLCBcImxvY2FsSWRcIiwgZGV2aWNlLmlkLCBpc1N0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZXh0RGV2aWNlLCBcImlwXCIsIGRldmljZS5pcCwgaXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGV4dERldmljZSwgXCJtb2RlbFwiLCBkZXZpY2UubW9kZWwsIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShleHREZXZpY2UsIFwiZGV2aWNlQ2xhc3NcIiwgZGV2aWNlLmRldmljZUNsYXNzLCBpc1N0cmluZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQVBQTFlfSU5URVJOQUxfQ09OVEU1IC8qIEBtaW46JTJlYXBwbHlJbnRlcm5hbENvbnRleHQgKi9dID0gZnVuY3Rpb24gKGV2dCwgaXRlbUN0eCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGludGVybmFsID0gX3NlbGYuaW50ZXJuYWw7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdGFncyA9IGdldFNldFZhbHVlKGV2dCwgc3RyVGFncyk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodGFncywgQ3R4VGFnS2V5cy5pbnRlcm5hbEFnZW50VmVyc2lvbiwgaW50ZXJuYWwuYWdlbnRWZXJzaW9uLCBpc1N0cmluZyk7IC8vIG5vdCBtYXBwZWQgaW4gQ1MgNC4wXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodGFncywgQ3R4VGFnS2V5cy5pbnRlcm5hbFNka1ZlcnNpb24sIGludGVybmFsLnNka1ZlcnNpb24sIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmJhc2VUeXBlID09PSBfSW50ZXJuYWxMb2dNZXNzYWdlLmRhdGFUeXBlIHx8IGV2dC5iYXNlVHlwZSA9PT0gUGFnZVZpZXcuZGF0YVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodGFncywgQ3R4VGFnS2V5cy5pbnRlcm5hbFNuaXBwZXQsIGludGVybmFsLnNuaXBwZXRWZXIsIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodGFncywgQ3R4VGFnS2V5cy5pbnRlcm5hbFNka1NyYywgaW50ZXJuYWwuc2RrU3JjLCBpc1N0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX0FQUExZX0xPQ0FUSU9OX0NPTlRFNCAvKiBAbWluOiUyZWFwcGx5TG9jYXRpb25Db250ZXh0ICovXSA9IGZ1bmN0aW9uIChldnQsIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IF90aGlzLmxvY2F0aW9uO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZ2V0U2V0VmFsdWUoZXZ0LCBzdHJUYWdzLCBbXSksIEN0eFRhZ0tleXMubG9jYXRpb25JcCwgbG9jYXRpb24uaXAsIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BUFBMWV9PUEVSQVRJT05fQ09OVDIgLyogQG1pbjolMmVhcHBseU9wZXJhdGlvbkNvbnRleHQgKi9dID0gZnVuY3Rpb24gKGV2dCwgaXRlbUN0eCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRlbGVtZXRyeVRyYWNlID0gX3NlbGZbX0RZTl9URUxFTUVUUllfVFJBQ0UgLyogQG1pbjolMmV0ZWxlbWV0cnlUcmFjZSAqL107XHJcbiAgICAgICAgICAgICAgICBpZiAodGVsZW1ldHJ5VHJhY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXh0VHJhY2UgPSBnZXRTZXRWYWx1ZShnZXRTZXRWYWx1ZShldnQsIHN0ckV4dCksIEV4dGVuc2lvbnMuVHJhY2VFeHQsIHsgdHJhY2VJRDogdW5kZWZpbmVkLCBwYXJlbnRJRDogdW5kZWZpbmVkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGV4dFRyYWNlLCBcInRyYWNlSURcIiwgdGVsZW1ldHJ5VHJhY2UudHJhY2VJRCwgaXNTdHJpbmcsIGlzTnVsbE9yVW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShleHRUcmFjZSwgXCJuYW1lXCIsIHRlbGVtZXRyeVRyYWNlLm5hbWUsIGlzU3RyaW5nLCBpc051bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZXh0VHJhY2UsIFwicGFyZW50SURcIiwgdGVsZW1ldHJ5VHJhY2UucGFyZW50SUQsIGlzU3RyaW5nLCBpc051bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmFwcGx5V2ViQ29udGV4dCA9IGZ1bmN0aW9uIChldnQsIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciB3ZWIgPSBfdGhpcy53ZWI7XHJcbiAgICAgICAgICAgICAgICBpZiAod2ViKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZ2V0U2V0VmFsdWUoZXZ0LCBzdHJFeHQpLCBFeHRlbnNpb25zLldlYkV4dCwgd2ViKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BUFBMWV9VU0VSX0NPTlRFWFQgLyogQG1pbjolMmVhcHBseVVzZXJDb250ZXh0ICovXSA9IGZ1bmN0aW9uIChldnQsIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciB1c2VyID0gX3NlbGYudXNlcjtcclxuICAgICAgICAgICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZ3MgPSBnZXRTZXRWYWx1ZShldnQsIHN0clRhZ3MsIFtdKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBzdGF5cyBpbiB0YWdzXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUodGFncywgQ3R4VGFnS2V5cy51c2VyQWNjb3VudElkLCB1c2VyW19EWU5fQUNDT1VOVF9JRCAvKiBAbWluOiUyZWFjY291bnRJZCAqL10sIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDUyA0LjBcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXh0VXNlciA9IGdldFNldFZhbHVlKGdldFNldFZhbHVlKGV2dCwgc3RyRXh0KSwgRXh0ZW5zaW9ucy5Vc2VyRXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShleHRVc2VyLCBcImlkXCIsIHVzZXIuaWQsIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShleHRVc2VyLCBcImF1dGhJZFwiLCB1c2VyW19EWU5fQVVUSEVOVElDQVRFRF9JRCAvKiBAbWluOiUyZWF1dGhlbnRpY2F0ZWRJZCAqL10sIGlzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGYuY2xlYW5VcCA9IGZ1bmN0aW9uIChldnQsIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBleHQgPSBldnQuZXh0O1xyXG4gICAgICAgICAgICAgICAgaWYgKGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9yZW1vdmVFbXB0eShleHQsIEV4dGVuc2lvbnMuRGV2aWNlRXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlRW1wdHkoZXh0LCBFeHRlbnNpb25zLlVzZXJFeHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9yZW1vdmVFbXB0eShleHQsIEV4dGVuc2lvbnMuV2ViRXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlRW1wdHkoZXh0LCBFeHRlbnNpb25zLk9TRXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlRW1wdHkoZXh0LCBFeHRlbnNpb25zLkFwcEV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3JlbW92ZUVtcHR5KGV4dCwgRXh0ZW5zaW9ucy5UcmFjZUV4dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgVGVsZW1ldHJ5Q29udGV4dC5wcm90b3R5cGUuYXBwbHlTZXNzaW9uQ29udGV4dC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBUZWxlbWV0cnlDb250ZXh0LnByb3RvdHlwZS5hcHBseU9wZXJhdGluZ1N5c3RlbUNvbnR4dC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBUZWxlbWV0cnlDb250ZXh0LnByb3RvdHlwZS5hcHBseUFwcGxpY2F0aW9uQ29udGV4dC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBUZWxlbWV0cnlDb250ZXh0LnByb3RvdHlwZS5hcHBseURldmljZUNvbnRleHQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgVGVsZW1ldHJ5Q29udGV4dC5wcm90b3R5cGUuYXBwbHlJbnRlcm5hbENvbnRleHQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgVGVsZW1ldHJ5Q29udGV4dC5wcm90b3R5cGUuYXBwbHlMb2NhdGlvbkNvbnRleHQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgVGVsZW1ldHJ5Q29udGV4dC5wcm90b3R5cGUuYXBwbHlPcGVyYXRpb25Db250ZXh0LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFRlbGVtZXRyeUNvbnRleHQucHJvdG90eXBlLmFwcGx5V2ViQ29udGV4dC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBUZWxlbWV0cnlDb250ZXh0LnByb3RvdHlwZS5hcHBseVVzZXJDb250ZXh0LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFRlbGVtZXRyeUNvbnRleHQucHJvdG90eXBlLmNsZWFuVXAuXHJcbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYW4gSUU4IGJ1ZyB3aGVuIHVzaW5nIGR5bmFtaWNQcm90bygpIHdpdGggY2xhc3NlcyB0aGF0IGRvbid0IGhhdmUgYW55XG4gICAgLy8gbm9uLWR5bmFtaWMgZnVuY3Rpb25zIG9yIHN0YXRpYyBwcm9wZXJ0aWVzL2Z1bmN0aW9ucyB3aGVuIHVzaW5nIHVnbGlmeS1qcyB0byBtaW5pZnkgdGhlIHJlc3VsdGluZyBjb2RlLlxuICAgIC8vIHRoaXMgd2lsbCBiZSByZW1vdmVkIHdoZW4gRVMzIHN1cHBvcnQgaXMgZHJvcHBlZC5cbiAgICBUZWxlbWV0cnlDb250ZXh0Ll9faWVEeW49MTtcblxuICAgIHJldHVybiBUZWxlbWV0cnlDb250ZXh0O1xyXG59KCkpO1xyXG5leHBvcnQgeyBUZWxlbWV0cnlDb250ZXh0IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRlbGVtZXRyeUNvbnRleHQuanMubWFwIiwiLypcbiAqIEFwcGxpY2F0aW9uIEluc2lnaHRzIEphdmFTY3JpcHQgU0RLIC0gUHJvcGVydGllcyBQbHVnaW4sIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG4vKipcclxuKiBQcm9wZXJ0aWVzUGx1Z2luLnRzXHJcbiogQGNvcHlyaWdodCBNaWNyb3NvZnQgMjAxOFxyXG4qL1xyXG5pbXBvcnQgeyBfX2V4dGVuZHNGbiBhcyBfX2V4dGVuZHMgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXNoaW1zXCI7XHJcbmltcG9ydCBkeW5hbWljUHJvdG8gZnJvbSBcIkBtaWNyb3NvZnQvZHluYW1pY3Byb3RvLWpzXCI7XHJcbmltcG9ydCB7IEJyZWV6ZUNoYW5uZWxJZGVudGlmaWVyLCBQYWdlVmlldywgUHJvcGVydGllc1BsdWdpbklkZW50aWZpZXIsIGNyZWF0ZURpc3RyaWJ1dGVkVHJhY2VDb250ZXh0RnJvbVRyYWNlIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb25cIjtcclxuaW1wb3J0IHsgQmFzZVRlbGVtZXRyeVBsdWdpbiwgX0ludGVybmFsTG9nTWVzc2FnZSwgX2xvZ0ludGVybmFsTWVzc2FnZSwgY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQsIGdldE5hdmlnYXRvciwgZ2V0U2V0VmFsdWUsIGlzTnVsbE9yVW5kZWZpbmVkLCBvYmpGb3JFYWNoS2V5IH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUNvbnRleHQgfSBmcm9tIFwiLi9UZWxlbWV0cnlDb250ZXh0XCI7XHJcbmltcG9ydCB7IF9EWU5fQUNDT1VOVF9JRCwgX0RZTl9BUFBMWV9BUFBMSUNBVElPTl9DTzEsIF9EWU5fQVBQTFlfREVWSUNFX0NPTlRFWFQsIF9EWU5fQVBQTFlfSU5URVJOQUxfQ09OVEU1LCBfRFlOX0FQUExZX0xPQ0FUSU9OX0NPTlRFNCwgX0RZTl9BUFBMWV9PUEVSQVRJTkdfU1lTVDMsIF9EWU5fQVBQTFlfT1BFUkFUSU9OX0NPTlQyLCBfRFlOX0FQUExZX1NFU1NJT05fQ09OVEVYMCwgX0RZTl9BUFBMWV9VU0VSX0NPTlRFWFQsIF9EWU5fQ09PS0lFX0RPTUFJTiwgX0RZTl9HRVRfTkVXX0lELCBfRFlOX0dFVF9TRVNTSU9OX0lELCBfRFlOX0dFVF9UUkFDRV9DVFgsIF9EWU5fSURfTEVOR1RILCBfRFlOX0lTX05FV19VU0VSLCBfRFlOX0lTX1VTRVJfQ09PS0lFX1NFVCwgX0RZTl9OQU1FX1BSRUZJWCwgX0RZTl9TREtfRVhURU5TSU9OLCBfRFlOX1NFU1NJT05fQ09PS0lFX1BPU1RGNiwgX0RZTl9TRVNTSU9OX01BTkFHRVIsIF9EWU5fVEVMRU1FVFJZX1RSQUNFLCBfRFlOX1VQREFURSwgX0RZTl9VU0VSX0NPT0tJRV9QT1NURklYIH0gZnJvbSBcIi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBQcm9wZXJ0aWVzUGx1Z2luID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgX19leHRlbmRzKFByb3BlcnRpZXNQbHVnaW4sIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBQcm9wZXJ0aWVzUGx1Z2luKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XHJcbiAgICAgICAgX3RoaXMucHJpb3JpdHkgPSAxMTA7XHJcbiAgICAgICAgX3RoaXMuaWRlbnRpZmllciA9IFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyO1xyXG4gICAgICAgIHZhciBfZXh0ZW5zaW9uQ29uZmlnO1xyXG4gICAgICAgIHZhciBfZGlzdHJpYnV0ZWRUcmFjZUN0eDtcclxuICAgICAgICB2YXIgX3ByZXZpb3VzVHJhY2VDdHg7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKFByb3BlcnRpZXNQbHVnaW4sIF90aGlzLCBmdW5jdGlvbiAoX3NlbGYsIF9iYXNlKSB7XHJcbiAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgX3NlbGYuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uIChjb25maWcsIGNvcmUsIGV4dGVuc2lvbnMsIHBsdWdpbkNoYWluKSB7XHJcbiAgICAgICAgICAgICAgICBfYmFzZS5pbml0aWFsaXplKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pO1xyXG4gICAgICAgICAgICAgICAgX3BvcHVsYXRlRGVmYXVsdHMoY29uZmlnKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEFkZCBQYXJ0IEEgZmllbGRzIHRvIHRoZSBldmVudFxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IHRoYXQgbmVlZHMgdG8gYmUgcHJvY2Vzc2VkXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBfc2VsZi5wcm9jZXNzVGVsZW1ldHJ5ID0gZnVuY3Rpb24gKGV2ZW50LCBpdGVtQ3R4KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyhiYXJ1c3R1bSk6IHRocm93IGFuIGludGVybmFsIGV2ZW50IG9uY2Ugd2UgaGF2ZSBzdXBwb3J0IGZvciBpbnRlcm5hbCBsb2dnaW5nXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtQ3R4ID0gX3NlbGYuX2dldFRlbEN0eChpdGVtQ3R4KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZW52ZWxvcGUgaXMgUGFnZVZpZXcsIHJlc2V0IHRoZSBpbnRlcm5hbCBtZXNzYWdlIGNvdW50IHNvIHRoYXQgd2UgY2FuIHNlbmQgaW50ZXJuYWwgdGVsZW1ldHJ5IGZvciB0aGUgbmV3IHBhZ2UuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50Lm5hbWUgPT09IFBhZ2VWaWV3LmVudmVsb3BlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtQ3R4LmRpYWdMb2coKS5yZXNldEludGVybmFsTWVzc2FnZUNvdW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aGVDb250ZXh0ID0gKF9zZWxmLmNvbnRleHQgfHwge30pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGVDb250ZXh0LnNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgY3VzdG9tZXIgZGlkIG5vdCBwcm92aWRlIGN1c3RvbSBzZXNzaW9uIGlkIHVwZGF0ZSB0aGUgc2Vzc2lvbiBtYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgX3NlbGYuY29udGV4dC5zZXNzaW9uLmlkICE9PSBcInN0cmluZ1wiICYmIHRoZUNvbnRleHRbX0RZTl9TRVNTSU9OX01BTkFHRVIgLyogQG1pbjolMmVzZXNzaW9uTWFuYWdlciAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZUNvbnRleHRbX0RZTl9TRVNTSU9OX01BTkFHRVIgLyogQG1pbjolMmVzZXNzaW9uTWFuYWdlciAqL11bX0RZTl9VUERBVEUgLyogQG1pbjolMmV1cGRhdGUgKi9dKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVzZXJDdHggPSB0aGVDb250ZXh0LnVzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJDdHggJiYgIXVzZXJDdHhbX0RZTl9JU19VU0VSX0NPT0tJRV9TRVQgLyogQG1pbjolMmVpc1VzZXJDb29raWVTZXQgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJDdHhbX0RZTl9VUERBVEUgLyogQG1pbjolMmV1cGRhdGUgKi9dKHRoZUNvbnRleHQudXNlci5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIF9wcm9jZXNzVGVsZW1ldHJ5SW50ZXJuYWwoZXZlbnQsIGl0ZW1DdHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyQ3R4ICYmIHVzZXJDdHhbX0RZTl9JU19ORVdfVVNFUiAvKiBAbWluOiUyZWlzTmV3VXNlciAqL10pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckN0eFtfRFlOX0lTX05FV19VU0VSIC8qIEBtaW46JTJlaXNOZXdVc2VyICovXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IG5ldyBfSW50ZXJuYWxMb2dNZXNzYWdlKDcyIC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuU2VuZEJyb3dzZXJJbmZvT25Vc2VySW5pdCAqLywgKChnZXROYXZpZ2F0b3IoKSB8fCB7fSkudXNlckFnZW50IHx8IFwiXCIpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2xvZ0ludGVybmFsTWVzc2FnZShpdGVtQ3R4LmRpYWdMb2coKSwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCBtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYucHJvY2Vzc05leHQoZXZlbnQsIGl0ZW1DdHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5fZG9UZWFyZG93biA9IGZ1bmN0aW9uICh1bmxvYWRDdHgsIHVubG9hZFN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29yZSA9ICh1bmxvYWRDdHggfHwge30pLmNvcmUoKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb3JlICYmIGNvcmVbX0RZTl9HRVRfVFJBQ0VfQ1RYIC8qIEBtaW46JTJlZ2V0VHJhY2VDdHggKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRyYWNlQ3R4ID0gY29yZVtfRFlOX0dFVF9UUkFDRV9DVFggLyogQG1pbjolMmVnZXRUcmFjZUN0eCAqL10oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0cmFjZUN0eCA9PT0gX2Rpc3RyaWJ1dGVkVHJhY2VDdHgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29yZS5zZXRUcmFjZUN0eChfcHJldmlvdXNUcmFjZUN0eCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgX2luaXREZWZhdWx0cygpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBfaW5pdERlZmF1bHRzKCkge1xyXG4gICAgICAgICAgICAgICAgX2V4dGVuc2lvbkNvbmZpZyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfZGlzdHJpYnV0ZWRUcmFjZUN0eCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfcHJldmlvdXNUcmFjZUN0eCA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3BvcHVsYXRlRGVmYXVsdHMoY29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaWRlbnRpZmllciA9IF9zZWxmLmlkZW50aWZpZXI7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29yZSA9IF9zZWxmLmNvcmU7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3R4ID0gY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQobnVsbCwgY29uZmlnLCBjb3JlKTtcclxuICAgICAgICAgICAgICAgIHZhciBkZWZhdWx0Q29uZmlnID0gUHJvcGVydGllc1BsdWdpbi5nZXREZWZhdWx0Q29uZmlnKCk7XHJcbiAgICAgICAgICAgICAgICBfZXh0ZW5zaW9uQ29uZmlnID0gX2V4dGVuc2lvbkNvbmZpZyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIG9iakZvckVhY2hLZXkoZGVmYXVsdENvbmZpZywgZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9leHRlbnNpb25Db25maWdbZmllbGRdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gY3R4LmdldENvbmZpZyhpZGVudGlmaWVyLCBmaWVsZCwgdmFsdWUoKSk7IH07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIF9wcmV2aW91c1RyYWNlQ3R4ID0gY29yZVtfRFlOX0dFVF9UUkFDRV9DVFggLyogQG1pbjolMmVnZXRUcmFjZUN0eCAqL10oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuY29udGV4dCA9IG5ldyBUZWxlbWV0cnlDb250ZXh0KGNvcmUsIF9leHRlbnNpb25Db25maWcsIF9wcmV2aW91c1RyYWNlQ3R4KTtcclxuICAgICAgICAgICAgICAgIF9kaXN0cmlidXRlZFRyYWNlQ3R4ID0gY3JlYXRlRGlzdHJpYnV0ZWRUcmFjZUNvbnRleHRGcm9tVHJhY2UoX3NlbGYuY29udGV4dFtfRFlOX1RFTEVNRVRSWV9UUkFDRSAvKiBAbWluOiUyZXRlbGVtZXRyeVRyYWNlICovXSwgX3ByZXZpb3VzVHJhY2VDdHgpO1xyXG4gICAgICAgICAgICAgICAgY29yZS5zZXRUcmFjZUN0eChfZGlzdHJpYnV0ZWRUcmFjZUN0eCk7XHJcbiAgICAgICAgICAgICAgICBfc2VsZi5jb250ZXh0LmFwcElkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBicmVlemVDaGFubmVsID0gY29yZS5nZXRQbHVnaW4oQnJlZXplQ2hhbm5lbElkZW50aWZpZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBicmVlemVDaGFubmVsID8gYnJlZXplQ2hhbm5lbC5wbHVnaW5bXCJfYXBwSWRcIl0gOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vIFRlc3QgaG9vayB0byBhbGxvdyBhY2Nlc3NpbmcgdGhlIGludGVybmFsIHZhbHVlcyAtLSBleHBsaWNpdGx5IG5vdCBkZWZpbmVkIGFzIGFuIGF2YWlsYWJsZSBwcm9wZXJ0eSBvbiB0aGUgY2xhc3NcclxuICAgICAgICAgICAgICAgIF9zZWxmW1wiX2V4dENvbmZpZ1wiXSA9IF9leHRlbnNpb25Db25maWc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX3Byb2Nlc3NUZWxlbWV0cnlJbnRlcm5hbChldnQsIGl0ZW1DdHgpIHtcclxuICAgICAgICAgICAgICAgIC8vIFNldCBQYXJ0IEEgZmllbGRzXHJcbiAgICAgICAgICAgICAgICBnZXRTZXRWYWx1ZShldnQsIFwidGFnc1wiLCBbXSk7XHJcbiAgICAgICAgICAgICAgICBnZXRTZXRWYWx1ZShldnQsIFwiZXh0XCIsIHt9KTtcclxuICAgICAgICAgICAgICAgIHZhciBjdHggPSBfc2VsZi5jb250ZXh0O1xyXG4gICAgICAgICAgICAgICAgY3R4W19EWU5fQVBQTFlfU0VTU0lPTl9DT05URVgwIC8qIEBtaW46JTJlYXBwbHlTZXNzaW9uQ29udGV4dCAqL10oZXZ0LCBpdGVtQ3R4KTtcclxuICAgICAgICAgICAgICAgIGN0eFtfRFlOX0FQUExZX0FQUExJQ0FUSU9OX0NPMSAvKiBAbWluOiUyZWFwcGx5QXBwbGljYXRpb25Db250ZXh0ICovXShldnQsIGl0ZW1DdHgpO1xyXG4gICAgICAgICAgICAgICAgY3R4W19EWU5fQVBQTFlfREVWSUNFX0NPTlRFWFQgLyogQG1pbjolMmVhcHBseURldmljZUNvbnRleHQgKi9dKGV2dCwgaXRlbUN0eCk7XHJcbiAgICAgICAgICAgICAgICBjdHhbX0RZTl9BUFBMWV9PUEVSQVRJT05fQ09OVDIgLyogQG1pbjolMmVhcHBseU9wZXJhdGlvbkNvbnRleHQgKi9dKGV2dCwgaXRlbUN0eCk7XHJcbiAgICAgICAgICAgICAgICBjdHhbX0RZTl9BUFBMWV9VU0VSX0NPTlRFWFQgLyogQG1pbjolMmVhcHBseVVzZXJDb250ZXh0ICovXShldnQsIGl0ZW1DdHgpO1xyXG4gICAgICAgICAgICAgICAgY3R4W19EWU5fQVBQTFlfT1BFUkFUSU5HX1NZU1QzIC8qIEBtaW46JTJlYXBwbHlPcGVyYXRpbmdTeXN0ZW1Db250eHQgKi9dKGV2dCwgaXRlbUN0eCk7XHJcbiAgICAgICAgICAgICAgICBjdHguYXBwbHlXZWJDb250ZXh0KGV2dCwgaXRlbUN0eCk7XHJcbiAgICAgICAgICAgICAgICBjdHhbX0RZTl9BUFBMWV9MT0NBVElPTl9DT05URTQgLyogQG1pbjolMmVhcHBseUxvY2F0aW9uQ29udGV4dCAqL10oZXZ0LCBpdGVtQ3R4KTsgLy8gbGVnYWN5IHRhZ3NcclxuICAgICAgICAgICAgICAgIGN0eFtfRFlOX0FQUExZX0lOVEVSTkFMX0NPTlRFNSAvKiBAbWluOiUyZWFwcGx5SW50ZXJuYWxDb250ZXh0ICovXShldnQsIGl0ZW1DdHgpOyAvLyBsZWdhY3kgdGFnc1xyXG4gICAgICAgICAgICAgICAgY3R4LmNsZWFuVXAoZXZ0LCBpdGVtQ3R4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBfdGhpcztcclxuICAgIH1cclxuICAgIFByb3BlcnRpZXNQbHVnaW4uZ2V0RGVmYXVsdENvbmZpZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB2YXIgbnVsbFZhbHVlID0gbnVsbDtcclxuICAgICAgICB2YXIgZGVmYXVsdENvbmZpZyA9IChfYSA9IHtcclxuICAgICAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbktleTogZnVuY3Rpb24gKCkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF9hW19EWU5fQUNDT1VOVF9JRCAvKiBAbWluOmFjY291bnRJZCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsVmFsdWU7IH0sXHJcbiAgICAgICAgICAgIF9hLnNlc3Npb25SZW5ld2FsTXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAzMCAqIDYwICogMTAwMDsgfSxcclxuICAgICAgICAgICAgX2Euc2FtcGxpbmdQZXJjZW50YWdlID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gMTAwOyB9LFxyXG4gICAgICAgICAgICBfYS5zZXNzaW9uRXhwaXJhdGlvbk1zID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gMjQgKiA2MCAqIDYwICogMTAwMDsgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9DT09LSUVfRE9NQUlOIC8qIEBtaW46Y29va2llRG9tYWluICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG51bGxWYWx1ZTsgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9TREtfRVhURU5TSU9OIC8qIEBtaW46c2RrRXh0ZW5zaW9uICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG51bGxWYWx1ZTsgfSxcclxuICAgICAgICAgICAgX2EuaXNCcm93c2VyTGlua1RyYWNraW5nRW5hYmxlZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZhbHNlOyB9LFxyXG4gICAgICAgICAgICBfYS5hcHBJZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG51bGxWYWx1ZTsgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9HRVRfU0VTU0lPTl9JRCAvKiBAbWluOmdldFNlc3Npb25JZCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsVmFsdWU7IH0sXHJcbiAgICAgICAgICAgIF9hW19EWU5fTkFNRV9QUkVGSVggLyogQG1pbjpuYW1lUHJlZml4ICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9TRVNTSU9OX0NPT0tJRV9QT1NURjYgLyogQG1pbjpzZXNzaW9uQ29va2llUG9zdGZpeCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0sXHJcbiAgICAgICAgICAgIF9hW19EWU5fVVNFUl9DT09LSUVfUE9TVEZJWCAvKiBAbWluOnVzZXJDb29raWVQb3N0Zml4ICovXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9JRF9MRU5HVEggLyogQG1pbjppZExlbmd0aCAqL10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiAyMjsgfSxcclxuICAgICAgICAgICAgX2FbX0RZTl9HRVRfTkVXX0lEIC8qIEBtaW46Z2V0TmV3SWQgKi9dID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbnVsbFZhbHVlOyB9LFxyXG4gICAgICAgICAgICBfYSk7XHJcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRDb25maWc7XHJcbiAgICB9O1xyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIFByb3BlcnRpZXNQbHVnaW4ucHJvdG90eXBlLmluaXRpYWxpemUuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgUHJvcGVydGllc1BsdWdpbi5wcm90b3R5cGUucHJvY2Vzc1RlbGVtZXRyeS5cclxuICAgIHJldHVybiBQcm9wZXJ0aWVzUGx1Z2luO1xyXG59KEJhc2VUZWxlbWV0cnlQbHVnaW4pKTtcclxuZXhwb3J0IGRlZmF1bHQgUHJvcGVydGllc1BsdWdpbjtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UHJvcGVydGllc1BsdWdpbi5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBXZWIsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcbi8vICEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhXHJcbi8vIE5vdGU6IERPTidUIEV4cG9ydCB0aGVzZSBjb25zdCBmcm9tIHRoZSBwYWNrYWdlIGFzIHdlIGFyZSBzdGlsbCB0YXJnZXRpbmcgRVMzIHRoaXMgd2lsbCBleHBvcnQgYSBtdXRhYmxlIHZhcmlhYmxlcyB0aGF0IHNvbWVvbmUgY291bGQgY2hhbmdlISEhXHJcbi8vICEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhXHJcbi8vIEdlbmVyYWxseSB5b3Ugc2hvdWxkIG9ubHkgcHV0IHZhbHVlcyB0aGF0IGFyZSB1c2VkIG1vcmUgdGhhbiAyIHRpbWVzIGFuZCB0aGVuIG9ubHkgaWYgbm90IGFscmVhZHkgZXhwb3NlZCBhcyBhIGNvbnN0YW50IChzdWNoIGFzIFNka0NvcmVOYW1lcylcclxuLy8gYXMgd2hlbiB1c2luZyBcInNob3J0XCIgbmFtZWQgdmFsdWVzIGZyb20gaGVyZSB0aGV5IHdpbGwgYmUgd2lsbCBiZSBtaW5pZmllZCBzbWFsbGVyIHRoYW4gdGhlIFNka0NvcmVOYW1lc1tlU2RrQ29yZU5hbWVzLnh4eHhdIHZhbHVlLlxyXG52YXIgX0FVVEhFTlRJQ0FURURfVVNFUl9DT05URVhUID0gXCJBdXRoZW50aWNhdGVkVXNlckNvbnRleHRcIjtcclxudmFyIF9UUkFDSyA9IFwidHJhY2tcIjtcclxuZXhwb3J0IHZhciBTVFJfRU1QVFkgPSBcIlwiO1xyXG5leHBvcnQgdmFyIFNUUl9TTklQUEVUID0gXCJzbmlwcGV0XCI7XHJcbmV4cG9ydCB2YXIgU1RSX0dFVF9DT09LSUVfTUdSID0gXCJnZXRDb29raWVNZ3JcIjtcclxuZXhwb3J0IHZhciBTVFJfU1RBUlRfVFJBQ0tfUEFHRSA9IFwic3RhcnRUcmFja1BhZ2VcIjtcclxuZXhwb3J0IHZhciBTVFJfU1RPUF9UUkFDS19QQUdFID0gXCJzdG9wVHJhY2tQYWdlXCI7XHJcbmV4cG9ydCB2YXIgU1RSX0ZMVVNIID0gXCJmbHVzaFwiO1xyXG5leHBvcnQgdmFyIFNUUl9TVEFSVF9UUkFDS19FVkVOVCA9IFwic3RhcnRUcmFja0V2ZW50XCI7XHJcbmV4cG9ydCB2YXIgU1RSX1NUT1BfVFJBQ0tfRVZFTlQgPSBcInN0b3BUcmFja0V2ZW50XCI7XHJcbmV4cG9ydCB2YXIgU1RSX0FERF9URUxFTUVUUllfSU5JVElBTElaRVIgPSBcImFkZFRlbGVtZXRyeUluaXRpYWxpemVyXCI7XHJcbmV4cG9ydCB2YXIgU1RSX0FERF9URUxFTUVUUllfSU5JVElBTElaRVJTID0gU1RSX0FERF9URUxFTUVUUllfSU5JVElBTElaRVIgKyBcInNcIjtcclxuZXhwb3J0IHZhciBTVFJfUE9MTF9JTlRFUk5BTF9MT0dTID0gXCJwb2xsSW50ZXJuYWxMb2dzXCI7XHJcbmV4cG9ydCB2YXIgU1RSX0dFVF9QTFVHSU4gPSBcImdldFBsdWdpblwiO1xyXG5leHBvcnQgdmFyIFNUUl9FVlRfTkFNRVNQQUNFID0gXCJldnROYW1lc3BhY2VcIjtcclxuZXhwb3J0IHZhciBTVFJfVFJBQ0tfRVZFTlQgPSBfVFJBQ0sgKyBcIkV2ZW50XCI7XHJcbmV4cG9ydCB2YXIgU1RSX1RSQUNLX1RSQUNFID0gX1RSQUNLICsgXCJUcmFjZVwiO1xyXG5leHBvcnQgdmFyIFNUUl9UUkFDS19NRVRSSUMgPSBfVFJBQ0sgKyBcIk1ldHJpY1wiO1xyXG5leHBvcnQgdmFyIFNUUl9UUkFDS19QQUdFX1ZJRVcgPSBfVFJBQ0sgKyBcIlBhZ2VWaWV3XCI7XHJcbmV4cG9ydCB2YXIgU1RSX1RSQUNLX0VYQ0VQVElPTiA9IF9UUkFDSyArIFwiRXhjZXB0aW9uXCI7XHJcbmV4cG9ydCB2YXIgU1RSX1RSQUNLX0RFUEVOREVOQ1lfREFUQSA9IF9UUkFDSyArIFwiRGVwZW5kZW5jeURhdGFcIjtcclxuZXhwb3J0IHZhciBTVFJfU0VUX0FVVEhFTlRJQ0FURURfVVNFUl9DT05URVhUID0gXCJzZXRcIiArIF9BVVRIRU5USUNBVEVEX1VTRVJfQ09OVEVYVDtcclxuZXhwb3J0IHZhciBTVFJfQ0xFQVJfQVVUSEVOVElDQVRFRF9VU0VSX0NPTlRFWFQgPSBcImNsZWFyXCIgKyBfQVVUSEVOVElDQVRFRF9VU0VSX0NPTlRFWFQ7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUludGVybmFsQ29uc3RhbnRzLmpzLm1hcCIsIi8qXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBKYXZhU2NyaXB0IFNESyAtIFdlYiwgMi44LjlcbiAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxyXG5cclxuLy8gQHNraXAtZmlsZS1taW5pZnlcclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gQVVUTyBHRU5FUkFURUQgRklMRTogVGhpcyBmaWxlIGlzIEF1dG8gR2VuZXJhdGVkIGR1cmluZyBidWlsZC5cclxuLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuLy8gTm90ZTogRE9OJ1QgRXhwb3J0IHRoZXNlIGNvbnN0IGZyb20gdGhlIHBhY2thZ2UgYXMgd2UgYXJlIHN0aWxsIHRhcmdldGluZyBFUzMgdGhpcyB3aWxsIGV4cG9ydCBhIG11dGFibGUgdmFyaWFibGVzIHRoYXQgc29tZW9uZSBjb3VsZCBjaGFuZ2UhISFcclxuLy8gISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFcclxuZXhwb3J0IHZhciBfRFlOX1VQREFURV9TTklQUEVUX0RFRklOMCA9IFwidXBkYXRlU25pcHBldERlZmluaXRpb25zXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9MT0FEX0FQUF9JTlNJR0hUUyA9IFwibG9hZEFwcEluc2lnaHRzXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9FTkRQT0lOVF9VUkwgPSBcImVuZHBvaW50VXJsXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9NQVhfQkFUQ0hfU0laRV9JTl9CWTEgPSBcIm1heEJhdGNoU2l6ZUluQnl0ZXNcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX01BWF9CQVRDSF9JTlRFUlZBTCA9IFwibWF4QmF0Y2hJbnRlcnZhbFwiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fRElTQUJMRV9FWENFUFRJT05fVFIyID0gXCJkaXNhYmxlRXhjZXB0aW9uVHJhY2tpbmdcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0RJU0FCTEVfVEVMRU1FVFJZID0gXCJkaXNhYmxlVGVsZW1ldHJ5XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9FTUlUX0xJTkVfREVMSU1JVEVEXzMgPSBcImVtaXRMaW5lRGVsaW1pdGVkSnNvblwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRElBR05PU1RJQ19MT0dfSU5URVI0ID0gXCJkaWFnbm9zdGljTG9nSW50ZXJ2YWxcIjsgLy8gQ291bnQ6IDZcclxuZXhwb3J0IHZhciBfRFlOX0FVVE9fVFJBQ0tfUEFHRV9WSVNJNSA9IFwiYXV0b1RyYWNrUGFnZVZpc2l0VGltZVwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fU0FNUExJTkdfUEVSQ0VOVEFHRSA9IFwic2FtcGxpbmdQZXJjZW50YWdlXCI7IC8vIENvdW50OiA0XHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX0FKQVhfVFJBQ0tJTjYgPSBcImRpc2FibGVBamF4VHJhY2tpbmdcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX01BWF9BSkFYX0NBTExTX1BFUl9WNyA9IFwibWF4QWpheENhbGxzUGVyVmlld1wiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fSVNfQkVBQ09OX0FQSV9ESVNBQkw4ID0gXCJpc0JlYWNvbkFwaURpc2FibGVkXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX0NPUlJFTEFUSU9OXzkgPSBcImRpc2FibGVDb3JyZWxhdGlvbkhlYWRlcnNcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0NPUlJFTEFUSU9OX0hFQURFUl9FMTAgPSBcImNvcnJlbGF0aW9uSGVhZGVyRXhjbHVkZWREb21haW5zXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX0ZMVVNIX09OX0JFRjExID0gXCJkaXNhYmxlRmx1c2hPbkJlZm9yZVVubG9hZFwiOyAvLyBDb3VudDogNFxyXG5leHBvcnQgdmFyIF9EWU5fRElTQUJMRV9GTFVTSF9PTl9VTkwxMiA9IFwiZGlzYWJsZUZsdXNoT25VbmxvYWRcIjsgLy8gQ291bnQ6IDNcclxuZXhwb3J0IHZhciBfRFlOX0VOQUJMRV9TRVNTSU9OX1NUT1JBMTMgPSBcImVuYWJsZVNlc3Npb25TdG9yYWdlQnVmZmVyXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9JU19DT09LSUVfVVNFX0RJU0FCTDE0ID0gXCJpc0Nvb2tpZVVzZURpc2FibGVkXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9JU19TVE9SQUdFX1VTRV9ESVNBQjE1ID0gXCJpc1N0b3JhZ2VVc2VEaXNhYmxlZFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fSVNfQlJPV1NFUl9MSU5LX1RSQUMxNiA9IFwiaXNCcm93c2VyTGlua1RyYWNraW5nRW5hYmxlZFwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fRU5BQkxFX0NPUlNfQ09SUkVMQVQxNyA9IFwiZW5hYmxlQ29yc0NvcnJlbGF0aW9uXCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9DT05GSUcgPSBcImNvbmZpZ1wiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fQ09OVEVYVCA9IFwiY29udGV4dFwiOyAvLyBDb3VudDogOFxyXG5leHBvcnQgdmFyIF9EWU5fUFVTSCA9IFwicHVzaFwiOyAvLyBDb3VudDogNVxyXG5leHBvcnQgdmFyIF9EWU5fVkVSU0lPTiA9IFwidmVyc2lvblwiOyAvLyBDb3VudDogNlxyXG5leHBvcnQgdmFyIF9EWU5fUVVFVUUgPSBcInF1ZXVlXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9DT05ORUNUSU9OX1NUUklORyA9IFwiY29ubmVjdGlvblN0cmluZ1wiOyAvLyBDb3VudDogM1xyXG5leHBvcnQgdmFyIF9EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSA9IFwiaW5zdHJ1bWVudGF0aW9uS2V5XCI7IC8vIENvdW50OiAyXHJcbmV4cG9ydCB2YXIgX0RZTl9BUFBfSU5TSUdIVFMgPSBcImFwcEluc2lnaHRzXCI7IC8vIENvdW50OiAzXHJcbmV4cG9ydCB2YXIgX0RZTl9ESVNBQkxFX0lLRVlfREVQUkVDQTE4ID0gXCJkaXNhYmxlSWtleURlcHJlY2F0aW9uTWVzc2FnZVwiOyAvLyBDb3VudDogMlxyXG5leHBvcnQgdmFyIF9EWU5fR0VUX1RSQU5TTUlTU0lPTl9DT04xOSA9IFwiZ2V0VHJhbnNtaXNzaW9uQ29udHJvbHNcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX09OVU5MT0FEX0ZMVVNIID0gXCJvbnVubG9hZEZsdXNoXCI7IC8vIENvdW50OiA2XHJcbmV4cG9ydCB2YXIgX0RZTl9BRERfSE9VU0VLRUVQSU5HX0JFRjIwID0gXCJhZGRIb3VzZWtlZXBpbmdCZWZvcmVVbmxvYWRcIjsgLy8gQ291bnQ6IDJcclxuZXhwb3J0IHZhciBfRFlOX0lOREVYX09GID0gXCJpbmRleE9mXCI7IC8vIENvdW50OiA0XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPV9fRHluYW1pY0NvbnN0YW50cy5qcy5tYXAiLCIvKlxuICogQXBwbGljYXRpb24gSW5zaWdodHMgSmF2YVNjcmlwdCBTREsgLSBXZWIsIDIuOC45XG4gKiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cclxuXHJcblwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQgZHluYW1pY1Byb3RvIGZyb20gXCJAbWljcm9zb2Z0L2R5bmFtaWNwcm90by1qc1wiO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NQbHVnaW4gfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWFuYWx5dGljcy1qc1wiO1xyXG5pbXBvcnQgeyBTZW5kZXIgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNoYW5uZWwtanNcIjtcclxuaW1wb3J0IHsgQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllciwgQnJlZXplQ2hhbm5lbElkZW50aWZpZXIsIENvbmZpZ3VyYXRpb25NYW5hZ2VyLCBDb25uZWN0aW9uU3RyaW5nUGFyc2VyLCBDb250ZXh0VGFnS2V5cywgQ29ycmVsYXRpb25JZEhlbHBlciwgQ3R4VGFnS2V5cywgREVGQVVMVF9CUkVFWkVfRU5EUE9JTlQsIERFRkFVTFRfQlJFRVpFX1BBVEgsIERhdGEsIERhdGFTYW5pdGl6ZXIsIERhdGVUaW1lVXRpbHMsIERpc2FibGVkUHJvcGVydHlOYW1lLCBEaXN0cmlidXRlZFRyYWNpbmdNb2RlcywgRW52ZWxvcGUsIEV2ZW50LCBFeGNlcHRpb24sIEV4dGVuc2lvbnMsIEh0dHBNZXRob2QsIE1ldHJpYywgUGFnZVZpZXcsIFBhZ2VWaWV3UGVyZm9ybWFuY2UsIFByb2Nlc3NMZWdhY3ksIFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyLCBSZW1vdGVEZXBlbmRlbmN5RGF0YSwgUmVxdWVzdEhlYWRlcnMsIFNhbXBsZVJhdGUsIFNldmVyaXR5TGV2ZWwsIFRlbGVtZXRyeUl0ZW1DcmVhdG9yLCBUcmFjZSwgVXJsSGVscGVyLCBVdGlsLCBwYXJzZUNvbm5lY3Rpb25TdHJpbmcgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vblwiO1xyXG5pbXBvcnQgeyBBcHBJbnNpZ2h0c0NvcmUsIF90aHJvd0ludGVybmFsLCBhZGRQYWdlSGlkZUV2ZW50TGlzdGVuZXIsIGFkZFBhZ2VVbmxvYWRFdmVudExpc3RlbmVyLCBhcnJGb3JFYWNoLCBhcnJJbmRleE9mLCBjcmVhdGVVbmlxdWVOYW1lc3BhY2UsIGRvUGVyZiwgaGFzRG9jdW1lbnQsIGhhc1dpbmRvdywgaXNBcnJheSwgaXNGdW5jdGlvbiwgaXNOdWxsT3JVbmRlZmluZWQsIGlzUmVhY3ROYXRpdmUsIGlzU3RyaW5nLCBtZXJnZUV2dE5hbWVzcGFjZSwgb2JqRm9yRWFjaEtleSwgcHJveHlBc3NpZ24sIHByb3h5RnVuY3Rpb25zLCByZW1vdmVQYWdlSGlkZUV2ZW50TGlzdGVuZXIsIHJlbW92ZVBhZ2VVbmxvYWRFdmVudExpc3RlbmVyLCB0aHJvd0Vycm9yIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzXCI7XHJcbmltcG9ydCB7IEFqYXhQbHVnaW4gYXMgRGVwZW5kZW5jaWVzUGx1Z2luIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1kZXBlbmRlbmNpZXMtanNcIjtcclxuaW1wb3J0IHsgUHJvcGVydGllc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qc1wiO1xyXG5pbXBvcnQgeyBTVFJfQUREX1RFTEVNRVRSWV9JTklUSUFMSVpFUiwgU1RSX0NMRUFSX0FVVEhFTlRJQ0FURURfVVNFUl9DT05URVhULCBTVFJfRVZUX05BTUVTUEFDRSwgU1RSX0ZMVVNILCBTVFJfR0VUX0NPT0tJRV9NR1IsIFNUUl9HRVRfUExVR0lOLCBTVFJfUE9MTF9JTlRFUk5BTF9MT0dTLCBTVFJfU0VUX0FVVEhFTlRJQ0FURURfVVNFUl9DT05URVhULCBTVFJfU05JUFBFVCwgU1RSX1NUQVJUX1RSQUNLX0VWRU5ULCBTVFJfU1RBUlRfVFJBQ0tfUEFHRSwgU1RSX1NUT1BfVFJBQ0tfRVZFTlQsIFNUUl9TVE9QX1RSQUNLX1BBR0UsIFNUUl9UUkFDS19ERVBFTkRFTkNZX0RBVEEsIFNUUl9UUkFDS19FVkVOVCwgU1RSX1RSQUNLX0VYQ0VQVElPTiwgU1RSX1RSQUNLX01FVFJJQywgU1RSX1RSQUNLX1BBR0VfVklFVywgU1RSX1RSQUNLX1RSQUNFIH0gZnJvbSBcIi4vSW50ZXJuYWxDb25zdGFudHNcIjtcclxuaW1wb3J0IHsgX0RZTl9BRERfSE9VU0VLRUVQSU5HX0JFRjIwLCBfRFlOX0FQUF9JTlNJR0hUUywgX0RZTl9DT05GSUcsIF9EWU5fQ09OTkVDVElPTl9TVFJJTkcsIF9EWU5fQ09OVEVYVCwgX0RZTl9ESUFHTk9TVElDX0xPR19JTlRFUjQsIF9EWU5fRElTQUJMRV9GTFVTSF9PTl9CRUYxMSwgX0RZTl9ESVNBQkxFX0ZMVVNIX09OX1VOTDEyLCBfRFlOX0RJU0FCTEVfSUtFWV9ERVBSRUNBMTgsIF9EWU5fRU5EUE9JTlRfVVJMLCBfRFlOX0dFVF9UUkFOU01JU1NJT05fQ09OMTksIF9EWU5fSU5ERVhfT0YsIF9EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSwgX0RZTl9MT0FEX0FQUF9JTlNJR0hUUywgX0RZTl9PTlVOTE9BRF9GTFVTSCwgX0RZTl9QVVNILCBfRFlOX1FVRVVFLCBfRFlOX1VQREFURV9TTklQUEVUX0RFRklOMCwgX0RZTl9WRVJTSU9OIH0gZnJvbSBcIi4vX19EeW5hbWljQ29uc3RhbnRzXCI7XHJcbnZhciBfaW50ZXJuYWxTZGtTcmM7XHJcbi8vIFRoaXMgaXMgYW4gZXhjbHVkZSBsaXN0IG9mIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgbm90IGJlIHVwZGF0ZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXHJcbi8vIFRoZXkgaW5jbHVkZSBhIGNvbWJpbmF0aW9uIG9mIHByaXZhdGUgYW5kIGludGVybmFsIHByb3BlcnR5IG5hbWVzXHJcbnZhciBfaWdub3JlVXBkYXRlU25pcHBldFByb3BlcnRpZXMgPSBbXHJcbiAgICBTVFJfU05JUFBFVCwgXCJkZXBlbmRlbmNpZXNcIiwgXCJwcm9wZXJ0aWVzXCIsIFwiX3NuaXBwZXRWZXJzaW9uXCIsIFwiYXBwSW5zaWdodHNOZXdcIiwgXCJnZXRTS1VEZWZhdWx0c1wiXHJcbl07XHJcbi8vIFJlLWV4cG9zaW5nIHRoZSBDb21tb24gY2xhc3NlcyBhcyBUZWxlbWV0cnksIHRoZSBsaXN0IHdhcyB0YWtlbiBieSByZXZpZXdpbmcgdGhlIGdlbmVyYXRlZCBjb2RlIGZvciB0aGUgYnVpbGQgd2hpbGUgdXNpbmdcclxuLy8gdGhlIHByZXZpb3VzIGNvbmZpZ3VyYXRpb24gOi1cclxuLy8gaW1wb3J0ICogYXMgQ29tbW9uIGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCJcclxuLy8gZXhwb3J0IGNvbnN0IFRlbGVtZXRyeSA9IENvbW1vbjtcclxudmFyIGZpZWxkVHlwZSA9IHtcclxuICAgIERlZmF1bHQ6IDAgLyogRmllbGRUeXBlLkRlZmF1bHQgKi8sXHJcbiAgICBSZXF1aXJlZDogMSAvKiBGaWVsZFR5cGUuUmVxdWlyZWQgKi8sXHJcbiAgICBBcnJheTogMiAvKiBGaWVsZFR5cGUuQXJyYXkgKi8sXHJcbiAgICBIaWRkZW46IDQgLyogRmllbGRUeXBlLkhpZGRlbiAqL1xyXG59O1xyXG4vKipcclxuICogVGVsZW1ldHJ5IHR5cGUgY2xhc3NlcywgZS5nLiBQYWdlVmlldywgRXhjZXB0aW9uLCBldGNcclxuICovXHJcbmV4cG9ydCB2YXIgVGVsZW1ldHJ5ID0ge1xyXG4gICAgX19wcm90b19fOiBudWxsLFxyXG4gICAgUHJvcGVydGllc1BsdWdpbklkZW50aWZpZXI6IFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyLFxyXG4gICAgQnJlZXplQ2hhbm5lbElkZW50aWZpZXI6IEJyZWV6ZUNoYW5uZWxJZGVudGlmaWVyLFxyXG4gICAgQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllcjogQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllcixcclxuICAgIFV0aWw6IFV0aWwsXHJcbiAgICBDb3JyZWxhdGlvbklkSGVscGVyOiBDb3JyZWxhdGlvbklkSGVscGVyLFxyXG4gICAgVXJsSGVscGVyOiBVcmxIZWxwZXIsXHJcbiAgICBEYXRlVGltZVV0aWxzOiBEYXRlVGltZVV0aWxzLFxyXG4gICAgQ29ubmVjdGlvblN0cmluZ1BhcnNlcjogQ29ubmVjdGlvblN0cmluZ1BhcnNlcixcclxuICAgIEZpZWxkVHlwZTogZmllbGRUeXBlLFxyXG4gICAgUmVxdWVzdEhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzLFxyXG4gICAgRGlzYWJsZWRQcm9wZXJ0eU5hbWU6IERpc2FibGVkUHJvcGVydHlOYW1lLFxyXG4gICAgUHJvY2Vzc0xlZ2FjeTogUHJvY2Vzc0xlZ2FjeSxcclxuICAgIFNhbXBsZVJhdGU6IFNhbXBsZVJhdGUsXHJcbiAgICBIdHRwTWV0aG9kOiBIdHRwTWV0aG9kLFxyXG4gICAgREVGQVVMVF9CUkVFWkVfRU5EUE9JTlQ6IERFRkFVTFRfQlJFRVpFX0VORFBPSU5ULFxyXG4gICAgRW52ZWxvcGU6IEVudmVsb3BlLFxyXG4gICAgRXZlbnQ6IEV2ZW50LFxyXG4gICAgRXhjZXB0aW9uOiBFeGNlcHRpb24sXHJcbiAgICBNZXRyaWM6IE1ldHJpYyxcclxuICAgIFBhZ2VWaWV3OiBQYWdlVmlldyxcclxuICAgIFJlbW90ZURlcGVuZGVuY3lEYXRhOiBSZW1vdGVEZXBlbmRlbmN5RGF0YSxcclxuICAgIFRyYWNlOiBUcmFjZSxcclxuICAgIFBhZ2VWaWV3UGVyZm9ybWFuY2U6IFBhZ2VWaWV3UGVyZm9ybWFuY2UsXHJcbiAgICBEYXRhOiBEYXRhLFxyXG4gICAgU2V2ZXJpdHlMZXZlbDogU2V2ZXJpdHlMZXZlbCxcclxuICAgIENvbmZpZ3VyYXRpb25NYW5hZ2VyOiBDb25maWd1cmF0aW9uTWFuYWdlcixcclxuICAgIENvbnRleHRUYWdLZXlzOiBDb250ZXh0VGFnS2V5cyxcclxuICAgIERhdGFTYW5pdGl6ZXI6IERhdGFTYW5pdGl6ZXIsXHJcbiAgICBUZWxlbWV0cnlJdGVtQ3JlYXRvcjogVGVsZW1ldHJ5SXRlbUNyZWF0b3IsXHJcbiAgICBDdHhUYWdLZXlzOiBDdHhUYWdLZXlzLFxyXG4gICAgRXh0ZW5zaW9uczogRXh0ZW5zaW9ucyxcclxuICAgIERpc3RyaWJ1dGVkVHJhY2luZ01vZGVzOiBEaXN0cmlidXRlZFRyYWNpbmdNb2Rlc1xyXG59O1xyXG4vKipcclxuICogQXBwbGljYXRpb24gSW5zaWdodHMgQVBJXHJcbiAqIEBjbGFzcyBJbml0aWFsaXphdGlvblxyXG4gKiBAaW1wbGVtZW50cyB7SUFwcGxpY2F0aW9uSW5zaWdodHN9XHJcbiAqL1xyXG52YXIgSW5pdGlhbGl6YXRpb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBJbml0aWFsaXphdGlvbihzbmlwcGV0KSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAvLyBOT1RFITogRE9OJ1Qgc2V0IGRlZmF1bHQgdmFsdWVzIGhlcmUsIGluc3RlYWQgc2V0IHRoZW0gaW4gdGhlIF9pbml0RGVmYXVsdHMoKSBmdW5jdGlvbiBhcyBpdCBpcyBhbHNvIGNhbGxlZCBkdXJpbmcgdGVhcmRvd24oKVxyXG4gICAgICAgIHZhciBkZXBlbmRlbmNpZXM7XHJcbiAgICAgICAgdmFyIHByb3BlcnRpZXM7XHJcbiAgICAgICAgdmFyIF9zZW5kZXI7XHJcbiAgICAgICAgdmFyIF9zbmlwcGV0VmVyc2lvbjtcclxuICAgICAgICB2YXIgX2V2dE5hbWVzcGFjZTtcclxuICAgICAgICB2YXIgX2hvdXNlS2VlcGluZ05hbWVzcGFjZTtcclxuICAgICAgICB2YXIgX2NvcmU7XHJcbiAgICAgICAgZHluYW1pY1Byb3RvKEluaXRpYWxpemF0aW9uLCB0aGlzLCBmdW5jdGlvbiAoX3NlbGYpIHtcclxuICAgICAgICAgICAgX2luaXREZWZhdWx0cygpO1xyXG4gICAgICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBxdWV1ZSBhbmQgY29uZmlnIGluIGNhc2UgdGhleSBhcmUgdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIF9zbmlwcGV0VmVyc2lvbiA9IFwiXCIgKyAoc25pcHBldC5zdiB8fCBzbmlwcGV0W19EWU5fVkVSU0lPTiAvKiBAbWluOiUyZXZlcnNpb24gKi9dIHx8IFwiXCIpO1xyXG4gICAgICAgICAgICBzbmlwcGV0W19EWU5fUVVFVUUgLyogQG1pbjolMmVxdWV1ZSAqL10gPSBzbmlwcGV0W19EWU5fUVVFVUUgLyogQG1pbjolMmVxdWV1ZSAqL10gfHwgW107XHJcbiAgICAgICAgICAgIHNuaXBwZXRbX0RZTl9WRVJTSU9OIC8qIEBtaW46JTJldmVyc2lvbiAqL10gPSBzbmlwcGV0W19EWU5fVkVSU0lPTiAvKiBAbWluOiUyZXZlcnNpb24gKi9dIHx8IDIuMDsgLy8gRGVmYXVsdCB0byBuZXcgdmVyc2lvblxyXG4gICAgICAgICAgICB2YXIgY29uZmlnID0gc25pcHBldFtfRFlOX0NPTkZJRyAvKiBAbWluOiUyZWNvbmZpZyAqL10gfHwge307XHJcbiAgICAgICAgICAgIGlmIChjb25maWdbX0RZTl9DT05ORUNUSU9OX1NUUklORyAvKiBAbWluOiUyZWNvbm5lY3Rpb25TdHJpbmcgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3MgPSBwYXJzZUNvbm5lY3Rpb25TdHJpbmcoY29uZmlnW19EWU5fQ09OTkVDVElPTl9TVFJJTkcgLyogQG1pbjolMmVjb25uZWN0aW9uU3RyaW5nICovXSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW5nZXN0ID0gY3MuaW5nZXN0aW9uZW5kcG9pbnQ7XHJcbiAgICAgICAgICAgICAgICBjb25maWdbX0RZTl9FTkRQT0lOVF9VUkwgLyogQG1pbjolMmVlbmRwb2ludFVybCAqL10gPSBpbmdlc3QgPyAoaW5nZXN0ICsgREVGQVVMVF9CUkVFWkVfUEFUSCkgOiBjb25maWdbX0RZTl9FTkRQT0lOVF9VUkwgLyogQG1pbjolMmVlbmRwb2ludFVybCAqL107IC8vIG9ubHkgYWRkIC92Mi90cmFjayB3aGVuIGZyb20gY29ubmVjdGlvbnN0cmluZ1xyXG4gICAgICAgICAgICAgICAgY29uZmlnW19EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSAvKiBAbWluOiUyZWluc3RydW1lbnRhdGlvbktleSAqL10gPSBjcy5pbnN0cnVtZW50YXRpb25rZXkgfHwgY29uZmlnW19EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSAvKiBAbWluOiUyZWluc3RydW1lbnRhdGlvbktleSAqL107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9BUFBfSU5TSUdIVFMgLyogQG1pbjolMmVhcHBJbnNpZ2h0cyAqL10gPSBuZXcgQW5hbHl0aWNzUGx1Z2luKCk7XHJcbiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBuZXcgUHJvcGVydGllc1BsdWdpbigpO1xyXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBuZXcgRGVwZW5kZW5jaWVzUGx1Z2luKCk7XHJcbiAgICAgICAgICAgIF9zZW5kZXIgPSBuZXcgU2VuZGVyKCk7XHJcbiAgICAgICAgICAgIF9jb3JlID0gbmV3IEFwcEluc2lnaHRzQ29yZSgpO1xyXG4gICAgICAgICAgICBfc2VsZi5jb3JlID0gX2NvcmU7XHJcbiAgICAgICAgICAgIHZhciBpc0Vyck1lc3NhZ2VEaXNhYmxlZCA9IGlzTnVsbE9yVW5kZWZpbmVkKGNvbmZpZ1tfRFlOX0RJU0FCTEVfSUtFWV9ERVBSRUNBMTggLyogQG1pbjolMmVkaXNhYmxlSWtleURlcHJlY2F0aW9uTWVzc2FnZSAqL10pID8gdHJ1ZSA6IGNvbmZpZ1tfRFlOX0RJU0FCTEVfSUtFWV9ERVBSRUNBMTggLyogQG1pbjolMmVkaXNhYmxlSWtleURlcHJlY2F0aW9uTWVzc2FnZSAqL107XHJcbiAgICAgICAgICAgIGlmICghY29uZmlnW19EWU5fQ09OTkVDVElPTl9TVFJJTkcgLyogQG1pbjolMmVjb25uZWN0aW9uU3RyaW5nICovXSAmJiAhaXNFcnJNZXNzYWdlRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9jb3JlLmxvZ2dlciwgMSAvKiBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMICovLCAxMDYgLyogX2VJbnRlcm5hbE1lc3NhZ2VJZC5JbnN0cnVtZW50YXRpb25LZXlEZXByZWNhdGlvbiAqLywgXCJJbnN0cnVtZW50YXRpb24ga2V5IHN1cHBvcnQgd2lsbCBlbmQgc29vbiwgc2VlIGFrYS5tcy9Ja2V5TWlncmF0ZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBfc2VsZltTVFJfU05JUFBFVCAvKiBAbWluOiUyZXNuaXBwZXQgKi9dID0gc25pcHBldDtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dID0gY29uZmlnO1xyXG4gICAgICAgICAgICBfZ2V0U0tVRGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgX3NlbGZbU1RSX0ZMVVNIIC8qIEBtaW46JTJlZmx1c2ggKi9dID0gZnVuY3Rpb24gKGFzeW5jKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXN5bmMgPT09IHZvaWQgMCkgeyBhc3luYyA9IHRydWU7IH1cclxuICAgICAgICAgICAgICAgIGRvUGVyZihfY29yZSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gXCJBSVNLVS5mbHVzaFwiOyB9LCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfY29yZVtfRFlOX0dFVF9UUkFOU01JU1NJT05fQ09OMTkgLyogQG1pbjolMmVnZXRUcmFuc21pc3Npb25Db250cm9scyAqL10oKSwgZnVuY3Rpb24gKGNoYW5uZWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyckZvckVhY2goY2hhbm5lbHMsIGZ1bmN0aW9uIChjaGFubmVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsW1NUUl9GTFVTSCAvKiBAbWluOiUyZWZsdXNoICovXShhc3luYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSwgbnVsbCwgYXN5bmMpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX09OVU5MT0FEX0ZMVVNIIC8qIEBtaW46JTJlb251bmxvYWRGbHVzaCAqL10gPSBmdW5jdGlvbiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChhc3luYyA9PT0gdm9pZCAwKSB7IGFzeW5jID0gdHJ1ZTsgfVxyXG4gICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfY29yZVtfRFlOX0dFVF9UUkFOU01JU1NJT05fQ09OMTkgLyogQG1pbjolMmVnZXRUcmFuc21pc3Npb25Db250cm9scyAqL10oKSwgZnVuY3Rpb24gKGNoYW5uZWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChjaGFubmVscywgZnVuY3Rpb24gKGNoYW5uZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbX0RZTl9PTlVOTE9BRF9GTFVTSCAvKiBAbWluOiUyZW9udW5sb2FkRmx1c2ggKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsW19EWU5fT05VTkxPQURfRkxVU0ggLyogQG1pbjolMmVvbnVubG9hZEZsdXNoICovXSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFtTVFJfRkxVU0ggLyogQG1pbjolMmVmbHVzaCAqL10oYXN5bmMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgX3NlbGZbX0RZTl9MT0FEX0FQUF9JTlNJR0hUUyAvKiBAbWluOiUyZWxvYWRBcHBJbnNpZ2h0cyAqL10gPSBmdW5jdGlvbiAobGVnYWN5TW9kZSwgbG9nZ2VyLCBub3RpZmljYXRpb25NYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGVnYWN5TW9kZSA9PT0gdm9pZCAwKSB7IGxlZ2FjeU1vZGUgPSBmYWxzZTsgfVxyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX3VwZGF0ZVNuaXBwZXRQcm9wZXJ0aWVzKHNuaXBwZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc25pcHBldCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc25pcHBldFZlciA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQoX3NuaXBwZXRWZXJzaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc25pcHBldFZlciArPSBfc25pcHBldFZlcnNpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlZ2FjeU1vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNuaXBwZXRWZXIgKz0gXCIubGdcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3NlbGZbX0RZTl9DT05URVhUIC8qIEBtaW46JTJlY29udGV4dCAqL10gJiYgX3NlbGZbX0RZTl9DT05URVhUIC8qIEBtaW46JTJlY29udGV4dCAqL10uaW50ZXJuYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09OVEVYVCAvKiBAbWluOiUyZWNvbnRleHQgKi9dLmludGVybmFsLnNuaXBwZXRWZXIgPSBzbmlwcGV0VmVyIHx8IFwiLVwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFwcGx5IHVwZGF0ZWQgcHJvcGVydGllcyB0byB0aGUgZ2xvYmFsIGluc3RhbmNlIChzbmlwcGV0KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmpGb3JFYWNoS2V5KF9zZWxmLCBmdW5jdGlvbiAoZmllbGQsIHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdHJpbmcoZmllbGQpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzRnVuY3Rpb24odmFsdWUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQgJiYgZmllbGRbMF0gIT09IFwiX1wiICYmIC8vIERvbid0IGNvcHkgXCJpbnRlcm5hbFwiIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyckluZGV4T2YoX2lnbm9yZVVwZGF0ZVNuaXBwZXRQcm9wZXJ0aWVzLCBmaWVsZCkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25pcHBldFtmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gZG9udCBhbGxvdyBhZGRpdGlvbmFsIGNoYW5uZWxzL290aGVyIGV4dGVuc2lvbnMgZm9yIGxlZ2FjeSBtb2RlOyBsZWdhY3kgbW9kZSBpcyBvbmx5IHRvIGFsbG93IHVzZXJzIHRvIHN3aXRjaCB3aXRoIG5vIGNvZGUgY2hhbmdlcyFcclxuICAgICAgICAgICAgICAgIGlmIChsZWdhY3lNb2RlICYmIF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXS5leHRlbnNpb25zICYmIF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXS5leHRlbnNpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKFwiRXh0ZW5zaW9ucyBub3QgYWxsb3dlZCBpbiBsZWdhY3kgbW9kZVwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGRvUGVyZihfc2VsZi5jb3JlLCBmdW5jdGlvbiAoKSB7IHJldHVybiBcIkFJU0tVLmxvYWRBcHBJbnNpZ2h0c1wiOyB9LCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV4dGVuc2lvbnMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zW19EWU5fUFVTSCAvKiBAbWluOiUyZXB1c2ggKi9dKF9zZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnNbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10ocHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uc1tfRFlOX1BVU0ggLyogQG1pbjolMmVwdXNoICovXShkZXBlbmRlbmNpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnNbX0RZTl9QVVNIIC8qIEBtaW46JTJlcHVzaCAqL10oX3NlbGZbX0RZTl9BUFBfSU5TSUdIVFMgLyogQG1pbjolMmVhcHBJbnNpZ2h0cyAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgY29yZVxyXG4gICAgICAgICAgICAgICAgICAgIF9jb3JlLmluaXRpYWxpemUoX3NlbGZbX0RZTl9DT05GSUcgLyogQG1pbjolMmVjb25maWcgKi9dLCBleHRlbnNpb25zLCBsb2dnZXIsIG5vdGlmaWNhdGlvbk1hbmFnZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09OVEVYVCAvKiBAbWluOiUyZWNvbnRleHQgKi9dID0gcHJvcGVydGllc1tfRFlOX0NPTlRFWFQgLyogQG1pbjolMmVjb250ZXh0ICovXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2ludGVybmFsU2RrU3JjICYmIF9zZWxmW19EWU5fQ09OVEVYVCAvKiBAbWluOiUyZWNvbnRleHQgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmW19EWU5fQ09OVEVYVCAvKiBAbWluOiUyZWNvbnRleHQgKi9dLmludGVybmFsLnNka1NyYyA9IF9pbnRlcm5hbFNka1NyYztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX3VwZGF0ZVNuaXBwZXRQcm9wZXJ0aWVzKF9zZWxmW1NUUl9TTklQUEVUIC8qIEBtaW46JTJlc25pcHBldCAqL10pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIEVtcHR5IHF1ZXVlIG9mIGFsbCBhcGkgY2FsbHMgbG9nZ2VkIHByaW9yIHRvIHNkayBkb3dubG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIF9zZWxmLmVtcHR5UXVldWUoKTtcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltTVFJfUE9MTF9JTlRFUk5BTF9MT0dTIC8qIEBtaW46JTJlcG9sbEludGVybmFsTG9ncyAqL10oKTtcclxuICAgICAgICAgICAgICAgICAgICBfc2VsZltfRFlOX0FERF9IT1VTRUtFRVBJTkdfQkVGMjAgLyogQG1pbjolMmVhZGRIb3VzZWtlZXBpbmdCZWZvcmVVbmxvYWQgKi9dKF90aGlzKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9zZWxmO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZltfRFlOX1VQREFURV9TTklQUEVUX0RFRklOMCAvKiBAbWluOiUyZXVwZGF0ZVNuaXBwZXREZWZpbml0aW9ucyAqL10gPSBmdW5jdGlvbiAoc25pcHBldCkge1xyXG4gICAgICAgICAgICAgICAgLy8gYXBwbHkgZnVsbCBhcHBJbnNpZ2h0cyB0byB0aGUgZ2xvYmFsIGluc3RhbmNlXHJcbiAgICAgICAgICAgICAgICAvLyBOb3RlOiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBsb2FkQXBwSW5zaWdodHMgaXMgY2FsbGVkXHJcbiAgICAgICAgICAgICAgICBwcm94eUFzc2lnbihzbmlwcGV0LCBfc2VsZiwgZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBOb3QgZXhjbHVkaW5nIG5hbWVzIHByZWZpeGVkIHdpdGggXCJfXCIgYXMgd2UgbmVlZCB0byBwcm94eSBzb21lIGZ1bmN0aW9ucyBsaWtlIF9vbkVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgJiYgYXJySW5kZXhPZihfaWdub3JlVXBkYXRlU25pcHBldFByb3BlcnRpZXMsIG5hbWUpID09PSAtMTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi5lbXB0eVF1ZXVlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgLy8gY2FsbCBmdW5jdGlvbnMgdGhhdCB3ZXJlIHF1ZXVlZCBiZWZvcmUgdGhlIG1haW4gc2NyaXB0IHdhcyBsb2FkZWRcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoX3NlbGYuc25pcHBldFtfRFlOX1FVRVVFIC8qIEBtaW46JTJlcXVldWUgKi9dKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBkbyBub3QgY2hlY2sgbGVuZ3RoIGluIHRoZSBmb3ItbG9vcCBjb25kaXRpb25hbCBpbiBjYXNlIHNvbWV0aGluZyBnb2VzIHdyb25nIGFuZCB0aGUgc3R1YiBtZXRob2RzIGFyZSBub3Qgb3ZlcnJpZGRlbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxlbmd0aF8xID0gX3NlbGYuc25pcHBldFtfRFlOX1FVRVVFIC8qIEBtaW46JTJlcXVldWUgKi9dLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGhfMTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FsbCA9IF9zZWxmLnNuaXBwZXRbX0RZTl9RVUVVRSAvKiBAbWluOiUyZXF1ZXVlICovXVtpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfc2VsZi5zbmlwcGV0W19EWU5fUVVFVUUgLyogQG1pbjolMmVxdWV1ZSAqL10gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfc2VsZi5zbmlwcGV0W19EWU5fUVVFVUUgLyogQG1pbjolMmVxdWV1ZSAqL107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzXzEgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uICYmIGlzRnVuY3Rpb24oZXhjZXB0aW9uLnRvU3RyaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzXzEuZXhjZXB0aW9uID0gZXhjZXB0aW9uLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgZnJvbSBjb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gTWljcm9zb2Z0LkFwcGxpY2F0aW9uSW5zaWdodHMuX0ludGVybmFsTG9nZ2luZy50aHJvd0ludGVybmFsKFxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICBlTG9nZ2luZ1NldmVyaXR5LldBUk5JTkcsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkVG9TZW5kUXVldWVkVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICBcIkZhaWxlZCB0byBzZW5kIHF1ZXVlZCB0ZWxlbWV0cnlcIixcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgcHJvcGVydGllcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmW19EWU5fQUREX0hPVVNFS0VFUElOR19CRUYyMCAvKiBAbWluOiUyZWFkZEhvdXNla2VlcGluZ0JlZm9yZVVubG9hZCAqL10gPSBmdW5jdGlvbiAoYXBwSW5zaWdodHNJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQWRkIGNhbGxiYWNrIHRvIHB1c2ggZXZlbnRzIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIGF3YXlcclxuICAgICAgICAgICAgICAgIGlmIChoYXNXaW5kb3coKSB8fCBoYXNEb2N1bWVudCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBlcmZvcm1Ib3VzZWtlZXBpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gZmx1c2ggYWxsIGRhdGEgYmVmb3JlIHRoZSBwYWdlIHVubG9hZHMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IFRoaXMgYXBwcm9hY2ggdHJpZXMgdG8gcHVzaCBhIHN5bmMgcmVxdWVzdCB3aXRoIGFsbCB0aGUgcGVuZGluZyBldmVudHMgb25iZWZvcmV1bmxvYWQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpcmVmb3ggZG9lcyBub3QgcmVzcGVjdCB0aGlzLk90aGVyIGJyb3dzZXJzIERPIHB1c2ggb3V0IHRoZSBjYWxsIHdpdGggPCAxMDAlIGhpdCByYXRlLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUZWxlbWV0cnkgaGVyZSB3aWxsIGhlbHAgdXMgYW5hbHl6ZSBob3cgZWZmZWN0aXZlIHRoaXMgYXBwcm9hY2ggaXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gbWFrZSB0aGlzIGNhbGwgc3luYyB3aXRoIGEgYWNjZXB0YWJsZSB0aW1lb3V0IHRvIHJlZHVjZSB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1wYWN0IG9uIHVzZXIgZXhwZXJpZW5jZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXBwSW5zaWdodHNJbnN0YW5jZS5jb250ZXh0Ll9zZW5kZXIudHJpZ2dlclNlbmQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSW5zaWdodHNJbnN0YW5jZVtfRFlOX09OVU5MT0FEX0ZMVVNIIC8qIEBtaW46JTJlb251bmxvYWRGbHVzaCAqL10oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBCYWNrIHVwIHRoZSBjdXJyZW50IHNlc3Npb24gdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGxldHMgdXMgY2xvc2UgZXhwaXJlZCBzZXNzaW9ucyBhZnRlciB0aGUgY29va2llcyB0aGVtc2VsdmVzIGV4cGlyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihfdGhpcy5jb3JlW1NUUl9HRVRfUExVR0lOIC8qIEBtaW46JTJlZ2V0UGx1Z2luICovXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb2FkZWRQbHVnaW4gPSBfdGhpcy5jb3JlW1NUUl9HRVRfUExVR0lOIC8qIEBtaW46JTJlZ2V0UGx1Z2luICovXShQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGVkUGx1Z2luKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXNQbHVnaW4gPSBsb2FkZWRQbHVnaW4ucGx1Z2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzUGx1Z2luICYmIHByb3BlcnRpZXNQbHVnaW5bX0RZTl9DT05URVhUIC8qIEBtaW46JTJlY29udGV4dCAqL10gJiYgcHJvcGVydGllc1BsdWdpbltfRFlOX0NPTlRFWFQgLyogQG1pbjolMmVjb250ZXh0ICovXS5fc2Vzc2lvbk1hbmFnZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllc1BsdWdpbltfRFlOX0NPTlRFWFQgLyogQG1pbjolMmVjb250ZXh0ICovXS5fc2Vzc2lvbk1hbmFnZXIuYmFja3VwKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgYWRkZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXhjbHVkZVBhZ2VVbmxvYWRFdmVudHMgPSBhcHBJbnNpZ2h0c0luc3RhbmNlLmFwcEluc2lnaHRzW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXS5kaXNhYmxlUGFnZVVubG9hZEV2ZW50cztcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIV9ob3VzZUtlZXBpbmdOYW1lc3BhY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2hvdXNlS2VlcGluZ05hbWVzcGFjZSA9IG1lcmdlRXZ0TmFtZXNwYWNlKF9ldnROYW1lc3BhY2UsIF9jb3JlW1NUUl9FVlRfTkFNRVNQQUNFIC8qIEBtaW46JTJlZXZ0TmFtZXNwYWNlICovXSAmJiBfY29yZVtTVFJfRVZUX05BTUVTUEFDRSAvKiBAbWluOiUyZWV2dE5hbWVzcGFjZSAqL10oKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYXBwSW5zaWdodHNJbnN0YW5jZS5hcHBJbnNpZ2h0cy5jb25maWdbX0RZTl9ESVNBQkxFX0ZMVVNIX09OX0JFRjExIC8qIEBtaW46JTJlZGlzYWJsZUZsdXNoT25CZWZvcmVVbmxvYWQgKi9dKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhvb2sgdGhlIHVubG9hZCBldmVudCBmb3IgdGhlIGRvY3VtZW50LCB3aW5kb3cgYW5kIGJvZHkgdG8gZW5zdXJlIHRoYXQgdGhlIGNsaWVudCBldmVudHMgYXJlIGZsdXNoZWQgdG8gdGhlIHNlcnZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcyBqdXN0IGhvb2tpbmcgdGhlIHdpbmRvdyBkb2VzIG5vdCBhbHdheXMgZmlyZSAob24gY2hyb21lKSBmb3IgcGFnZSBuYXZpZ2F0aW9uJ3MuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRQYWdlVW5sb2FkRXZlbnRMaXN0ZW5lcihwZXJmb3JtSG91c2VrZWVwaW5nLCBleGNsdWRlUGFnZVVubG9hZEV2ZW50cywgX2hvdXNlS2VlcGluZ05hbWVzcGFjZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gaG9vayB0aGUgcGFnZWhpZGUgYW5kIHZpc2liaWxpdHljaGFuZ2UgZXZlbnRzIGFzIG5vdCBhbGwgdmVyc2lvbnMgb2YgU2FmYXJpIHN1cHBvcnQgbG9hZC91bmxvYWQgZXZlbnRzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkUGFnZUhpZGVFdmVudExpc3RlbmVyKHBlcmZvcm1Ib3VzZWtlZXBpbmcsIGV4Y2x1ZGVQYWdlVW5sb2FkRXZlbnRzLCBfaG91c2VLZWVwaW5nTmFtZXNwYWNlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgcmVhY3ROYXRpdmUgYXBwIG1heSBub3QgaGF2ZSBhIHdpbmRvdyBhbmQgdGhlcmVmb3JlIHRoZSBiZWZvcmV1bmxvYWQvcGFnZWhpZGUgZXZlbnRzIC0tIHNvIGRvbid0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvZyB0aGUgZmFpbHVyZSBpbiB0aGlzIGNhc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhZGRlZCAmJiAhaXNSZWFjdE5hdGl2ZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChhcHBJbnNpZ2h0c0luc3RhbmNlW19EWU5fQVBQX0lOU0lHSFRTIC8qIEBtaW46JTJlYXBwSW5zaWdodHMgKi9dLmNvcmUubG9nZ2VyLCAxIC8qIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwgKi8sIDE5IC8qIF9lSW50ZXJuYWxNZXNzYWdlSWQuRmFpbGVkVG9BZGRIYW5kbGVyRm9yT25CZWZvcmVVbmxvYWQgKi8sIFwiQ291bGQgbm90IGFkZCBoYW5kbGVyIGZvciBiZWZvcmV1bmxvYWQgYW5kIHBhZ2VoaWRlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYWRkZWQgJiYgIWFwcEluc2lnaHRzSW5zdGFuY2UuYXBwSW5zaWdodHMuY29uZmlnW19EWU5fRElTQUJMRV9GTFVTSF9PTl9VTkwxMiAvKiBAbWluOiUyZWRpc2FibGVGbHVzaE9uVW5sb2FkICovXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgYWRkIHRoZSBub3JtYWwgc2V0IHRoZW4gYXR0ZW1wdCB0byBhZGQgdGhlIHBhZ2VoaWRlIGFuZCB2aXNpYmlsaXR5Y2hhbmdlIG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkUGFnZUhpZGVFdmVudExpc3RlbmVyKHBlcmZvcm1Ib3VzZWtlZXBpbmcsIGV4Y2x1ZGVQYWdlVW5sb2FkRXZlbnRzLCBfaG91c2VLZWVwaW5nTmFtZXNwYWNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIF9zZWxmLmdldFNlbmRlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBfc2VuZGVyO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBfc2VsZi51bmxvYWQgPSBmdW5jdGlvbiAoaXNBc3luYywgdW5sb2FkQ29tcGxldGUsIGNiVGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGZbX0RZTl9PTlVOTE9BRF9GTFVTSCAvKiBAbWluOiUyZW9udW5sb2FkRmx1c2ggKi9dKGlzQXN5bmMpO1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFueSByZWdpc3RlcmVkIGV2ZW50IGhhbmRsZXJzXHJcbiAgICAgICAgICAgICAgICBpZiAoX2hvdXNlS2VlcGluZ05hbWVzcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZVBhZ2VVbmxvYWRFdmVudExpc3RlbmVyKG51bGwsIF9ob3VzZUtlZXBpbmdOYW1lc3BhY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZVBhZ2VIaWRlRXZlbnRMaXN0ZW5lcihudWxsLCBfaG91c2VLZWVwaW5nTmFtZXNwYWNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF9jb3JlLnVubG9hZCAmJiBfY29yZS51bmxvYWQoaXNBc3luYywgdW5sb2FkQ29tcGxldGUsIGNiVGltZW91dCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHByb3h5RnVuY3Rpb25zKF9zZWxmLCBfc2VsZltfRFlOX0FQUF9JTlNJR0hUUyAvKiBAbWluOiUyZWFwcEluc2lnaHRzICovXSwgW1xyXG4gICAgICAgICAgICAgICAgU1RSX0dFVF9DT09LSUVfTUdSLFxyXG4gICAgICAgICAgICAgICAgU1RSX1RSQUNLX0VWRU5ULFxyXG4gICAgICAgICAgICAgICAgU1RSX1RSQUNLX1BBR0VfVklFVyxcclxuICAgICAgICAgICAgICAgIFwidHJhY2tQYWdlVmlld1BlcmZvcm1hbmNlXCIsXHJcbiAgICAgICAgICAgICAgICBTVFJfVFJBQ0tfRVhDRVBUSU9OLFxyXG4gICAgICAgICAgICAgICAgXCJfb25lcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgU1RSX1RSQUNLX1RSQUNFLFxyXG4gICAgICAgICAgICAgICAgU1RSX1RSQUNLX01FVFJJQyxcclxuICAgICAgICAgICAgICAgIFNUUl9TVEFSVF9UUkFDS19QQUdFLFxyXG4gICAgICAgICAgICAgICAgU1RSX1NUT1BfVFJBQ0tfUEFHRSxcclxuICAgICAgICAgICAgICAgIFNUUl9TVEFSVF9UUkFDS19FVkVOVCxcclxuICAgICAgICAgICAgICAgIFNUUl9TVE9QX1RSQUNLX0VWRU5UXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICBwcm94eUZ1bmN0aW9ucyhfc2VsZiwgX2dldEN1cnJlbnREZXBlbmRlbmNpZXMsIFtcclxuICAgICAgICAgICAgICAgIFNUUl9UUkFDS19ERVBFTkRFTkNZX0RBVEEsXHJcbiAgICAgICAgICAgICAgICBcImFkZERlcGVuZGVuY3lMaXN0ZW5lclwiLFxyXG4gICAgICAgICAgICAgICAgXCJhZGREZXBlbmRlbmN5SW5pdGlhbGl6ZXJcIlxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgcHJveHlGdW5jdGlvbnMoX3NlbGYsIF9jb3JlLCBbXHJcbiAgICAgICAgICAgICAgICBTVFJfQUREX1RFTEVNRVRSWV9JTklUSUFMSVpFUixcclxuICAgICAgICAgICAgICAgIFNUUl9QT0xMX0lOVEVSTkFMX0xPR1MsXHJcbiAgICAgICAgICAgICAgICBcInN0b3BQb2xsaW5nSW50ZXJuYWxMb2dzXCIsXHJcbiAgICAgICAgICAgICAgICBTVFJfR0VUX1BMVUdJTixcclxuICAgICAgICAgICAgICAgIFwiYWRkUGx1Z2luXCIsXHJcbiAgICAgICAgICAgICAgICBTVFJfRVZUX05BTUVTUEFDRSxcclxuICAgICAgICAgICAgICAgIFwiYWRkVW5sb2FkQ2JcIixcclxuICAgICAgICAgICAgICAgIFwiZ2V0VHJhY2VDdHhcIlxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgcHJveHlGdW5jdGlvbnMoX3NlbGYsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gcHJvcGVydGllc1tfRFlOX0NPTlRFWFQgLyogQG1pbjolMmVjb250ZXh0ICovXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0ID8gY29udGV4dC51c2VyIDogbnVsbDtcclxuICAgICAgICAgICAgfSwgW1xyXG4gICAgICAgICAgICAgICAgU1RSX1NFVF9BVVRIRU5USUNBVEVEX1VTRVJfQ09OVEVYVCxcclxuICAgICAgICAgICAgICAgIFNUUl9DTEVBUl9BVVRIRU5USUNBVEVEX1VTRVJfQ09OVEVYVFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgZnVuY3Rpb24gX2dldFNLVURlZmF1bHRzKCkge1xyXG4gICAgICAgICAgICAgICAgX3NlbGYuY29uZmlnW19EWU5fRElBR05PU1RJQ19MT0dfSU5URVI0IC8qIEBtaW46JTJlZGlhZ25vc3RpY0xvZ0ludGVydmFsICovXSA9XHJcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYuY29uZmlnW19EWU5fRElBR05PU1RJQ19MT0dfSU5URVI0IC8qIEBtaW46JTJlZGlhZ25vc3RpY0xvZ0ludGVydmFsICovXSAmJiBfc2VsZltfRFlOX0NPTkZJRyAvKiBAbWluOiUyZWNvbmZpZyAqL11bX0RZTl9ESUFHTk9TVElDX0xPR19JTlRFUjQgLyogQG1pbjolMmVkaWFnbm9zdGljTG9nSW50ZXJ2YWwgKi9dID4gMCA/IF9zZWxmW19EWU5fQ09ORklHIC8qIEBtaW46JTJlY29uZmlnICovXVtfRFlOX0RJQUdOT1NUSUNfTE9HX0lOVEVSNCAvKiBAbWluOiUyZWRpYWdub3N0aWNMb2dJbnRlcnZhbCAqL10gOiAxMDAwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBVc2luZyBhIGZ1bmN0aW9uIHRvIHN1cHBvcnQgdGhlIGR5bmFtaWMgYWRkaW5nIC8gcmVtb3ZhbCBvZiBwbHVnaW5zLCBzbyB0aGlzIHdpbGwgYWx3YXlzIHJldHVybiB0aGUgY3VycmVudCB2YWx1ZVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBfZ2V0Q3VycmVudERlcGVuZGVuY2llcygpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZXBlbmRlbmNpZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gX2luaXREZWZhdWx0cygpIHtcclxuICAgICAgICAgICAgICAgIF9ldnROYW1lc3BhY2UgPSBjcmVhdGVVbmlxdWVOYW1lc3BhY2UoXCJBSVNLVVwiKTtcclxuICAgICAgICAgICAgICAgIF9ob3VzZUtlZXBpbmdOYW1lc3BhY2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX3NlbmRlciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfc25pcHBldFZlcnNpb24gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyBBbmFseXRpY3MgUGx1Z2luXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmdldENvb2tpZU1nci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUudHJhY2tFdmVudC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUudHJhY2tQYWdlVmlldy5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUudHJhY2tQYWdlVmlld1BlcmZvcm1hbmNlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS50cmFja0V4Y2VwdGlvbi5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUuX29uZXJyb3IuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLnRyYWNrVHJhY2UuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLnRyYWNrTWV0cmljLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5zdGFydFRyYWNrUGFnZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUuc3RvcFRyYWNrUGFnZS5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUuc3RhcnRUcmFja0V2ZW50LlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5zdG9wVHJhY2tFdmVudC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUuYWRkVGVsZW1ldHJ5SW5pdGlhbGl6ZXIuXHJcbiAgICAvLyBQcm9wZXJ0aWVzIFBsdWdpblxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5zZXRBdXRoZW50aWNhdGVkVXNlckNvbnRleHQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmNsZWFyQXV0aGVudGljYXRlZFVzZXJDb250ZXh0LlxyXG4gICAgLy8gRGVwZW5kZW5jaWVzIFBsdWdpblxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS50cmFja0RlcGVuZGVuY3lEYXRhLlxyXG4gICAgLy8gTWlzY1xyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5mbHVzaC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUub251bmxvYWRGbHVzaC5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUubG9hZEFwcEluc2lnaHRzLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS51cGRhdGVTbmlwcGV0RGVmaW5pdGlvbnMuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmVtcHR5UXVldWUuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLnBvbGxJbnRlcm5hbExvZ3MuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLnN0b3BQb2xsaW5nSW50ZXJuYWxMb2dzLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5hZGRIb3VzZWtlZXBpbmdCZWZvcmVVbmxvYWQuXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmdldFNlbmRlci5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUudW5sb2FkLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5nZXRQbHVnaW4uXHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmFkZFBsdWdpbi5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUuZXZ0TmFtZXNwYWNlLlxyXG4vLyBSZW1vdmVkIFN0dWIgZm9yIEluaXRpYWxpemF0aW9uLnByb3RvdHlwZS5hZGRVbmxvYWRDYi5cclxuLy8gUmVtb3ZlZCBTdHViIGZvciBJbml0aWFsaXphdGlvbi5wcm90b3R5cGUuYWRkRGVwZW5kZW5jeUxpc3RlbmVyLlxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgYW4gZGVwZW5kZW5jeSB0ZWxlbWV0cnkgaW5pdGlhbGl6ZXIgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYWxsb3cgcG9wdWxhdGluZyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgb3IgZHJvcCB0aGUgcmVxdWVzdC5cclxuICAgICAqIEl0IGlzIGNhbGxlZCBhZnRlciB0aGUgZGVwZW5kZW5jeSBjYWxsIGhhcyBjb21wbGV0ZWQgYW5kIGFueSBhdmFpbGFibGUgcGVyZm9ybWFuY2UgZGV0YWlscyBhcmUgYXZhaWxhYmxlLiBBIGRlcGVuZGVuY3lcclxuICAgICAqIGluaXRpYWxpemVyIGlzIHNpbWlsYXIgdG8gdGhlIFRlbGVtZXRyeUluaXRpYWxpemVyIGZ1bmN0aW9uIGJ1dCBpdCBhbGxvd3MgeW91IHRvIGJsb2NrIHRoZSByZXBvcnRpbmcgb2YgdGhlIGRlcGVuZGVuY3lcclxuICAgICAqIHJlcXVlc3Qgc28gdGhhdCBpdCBkb2Vzbid0IGNvdW50IGFnYWluc3QgdGhlIGBtYXhBamF4Q2FsbHNQZXJWaWV3YC5cclxuICAgICAqIEBwYXJhbSBkZXBlbmRlbmN5SW5pdGlhbGl6ZXIgLSBUaGUgRGVwZW5kZW5jeSBUZWxlbWV0cnkgSW5pdGlhbGl6ZXIgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zIC0gQSBJRGVwZW5kZW5jeUluaXRpYWxpemVySGFuZGxlciB0byBlbmFibGUgdGhlIGluaXRpYWxpemVyIHRvIGJlIHJlbW92ZWRcclxuICAgICAqL1xyXG4gICAgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmFkZERlcGVuZGVuY3lJbml0aWFsaXplciA9IGZ1bmN0aW9uIChkZXBlbmRlbmN5SW5pdGlhbGl6ZXIpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbi8vIFJlbW92ZWQgU3R1YiBmb3IgSW5pdGlhbGl6YXRpb24ucHJvdG90eXBlLmdldFRyYWNlQ3R4LlxyXG4gICAgcmV0dXJuIEluaXRpYWxpemF0aW9uO1xyXG59KCkpO1xyXG5leHBvcnQgeyBJbml0aWFsaXphdGlvbiB9O1xyXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBzZGtTcmMgPSBudWxsO1xyXG4gICAgdmFyIGlzTW9kdWxlID0gZmFsc2U7XHJcbiAgICB2YXIgY2RucyA9IFtcclxuICAgICAgICBcIjovL2pzLm1vbml0b3IuYXp1cmUuY29tL1wiLFxyXG4gICAgICAgIFwiOi8vYXo0MTY0MjYudm8ubXNlY25kLm5ldC9cIlxyXG4gICAgXTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgLy8gVHJ5IGFuZCBkZXRlcm1pbmUgd2hldGhlciB0aGUgc2RrIGlzIGJlaW5nIGxvYWRlZCBmcm9tIHRoZSBDRE5cclxuICAgICAgICAvLyBjdXJyZW50U2NyaXB0IGlzIG9ubHkgdmFsaWQgZHVyaW5nIGluaXRpYWwgcHJvY2Vzc2luZ1xyXG4gICAgICAgIHZhciBzY3JwdCA9IChkb2N1bWVudCB8fCB7fSkuY3VycmVudFNjcmlwdDtcclxuICAgICAgICBpZiAoc2NycHQpIHtcclxuICAgICAgICAgICAgc2RrU3JjID0gc2NycHQuc3JjO1xyXG4gICAgICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdG8gYXQgbGVhc3QgdHlwZXNjcmlwdCAyLjkgZm9yIHRoaXMgdG8gd29yayA6LShcclxuICAgICAgICAgICAgLy8gICAgIC8vIExlYXZpbmcgYXMgYSBzdHViIGZvciBub3cgc28gYWZ0ZXIgd2UgdXBncmFkZSB0aGlzIGJyZWFkY3J1bWIgaXMgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgIC8vICAgICBsZXQgbWV0YSA9IGltcG9ydC5tZXRhO1xyXG4gICAgICAgICAgICAvLyAgICAgc2RrU3JjID0gKG1ldGEgfHwge30pLnVybDtcclxuICAgICAgICAgICAgLy8gICAgIGlzTW9kdWxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxyXG4gICAgfVxyXG4gICAgaWYgKHNka1NyYykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciB1cmwgPSBzZGtTcmMudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHNyYyA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBjZG5zLmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXJsW19EWU5fSU5ERVhfT0YgLyogQG1pbjolMmVpbmRleE9mICovXShjZG5zW2lkeF0pICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBcImNkblwiICsgKGlkeCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsW19EWU5fSU5ERVhfT0YgLyogQG1pbjolMmVpbmRleE9mICovXShcIi9zY3JpcHRzL1wiKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxbX0RZTl9JTkRFWF9PRiAvKiBAbWluOiUyZWluZGV4T2YgKi9dKFwiL25leHQvXCIpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyArPSBcIi1uZXh0XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh1cmxbX0RZTl9JTkRFWF9PRiAvKiBAbWluOiUyZWluZGV4T2YgKi9dKFwiL2JldGEvXCIpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyArPSBcIi1iZXRhXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgX2ludGVybmFsU2RrU3JjID0gc3JjICsgKGlzTW9kdWxlID8gXCIubW9kXCIgOiBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSkoKTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW5pdGlhbGl6YXRpb24uanMubWFwIiwiaW1wb3J0IHsgUmVkdWNlciB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XHJcbmltcG9ydCBwcm9kdWNlLCB7IERyYWZ0IH0gZnJvbSBcImltbWVyXCI7XHJcbmltcG9ydCB7IE1vY2tBdXRoZW50aWNhdGVkVXNlciB9IGZyb20gXCIuL01vY2tEYXRhL01vY2tBdXRoZW50aWNhdGVkVXNlclwiO1xyXG5pbXBvcnQgeyBQQUdFUyB9IGZyb20gXCIuL0hvb2tzL3VzZVBhZ2VOYXZpZ2F0aW9uXCI7XHJcbmltcG9ydCB7IGdldFVzZXJNZXRhZGF0YSB9IGZyb20gXCIuL0hvb2tzL3VzZVVzZXJNZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBuZXdHdWlkIH0gZnJvbSBcIi4vSGVscGVycy9uZXdHdWlkXCI7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5zaWdodHMgfSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXdlYlwiO1xyXG5cclxuLy8gVGhpcyB2YWx1ZSBpcyBzZXQgdmlhIHRoZSAnU2luZ2xlIFBhZ2UgQXBwbGljYXRpb24nIFdlYiBUZW1wbGF0ZVxyXG5kZWNsYXJlIGNvbnN0IEFQUF9JTlNJR0hUU19JTlNUUlVNRU5UQVRJT05fS0VZOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4vKiogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIFNQQSBpcyBiZWluZyBydW4gb24gYSBsb2NhbGhvc3QgKi9cclxuY29uc3QgaXNMb2NhbE1vZGUgPSB3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKFwibG9jYWxob3N0XCIpIHx8IHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoXCIxMjcuXCIpO1xyXG5cclxuLyoqIERlc2NyaXB0aW9uIG9mIGFsbCB0aGUgQWN0aW9ucyB0YWtlbiB0aGF0IGNhbiBhZmZlY3QgdGhlIHN0YXRlICovXHJcbmV4cG9ydCB0eXBlIEFjdGlvbiA9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiU2V0QWN0aXZlSW5jaWRlbnRzXCI7XHJcbiAgICAgICAgICBhY3RpdmVJbmNpZGVudHM6IERlZmF1bHRSb290U3RhdGVbXCJpbmNpZGVudHNcIl1bXCJhY3RpdmVJbmNpZGVudHNcIl07XHJcbiAgICAgIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJTZXRDbG9zZWRJbmNpZGVudHNcIjtcclxuICAgICAgICAgIGNsb3NlZEluY2lkZW50czogRGVmYXVsdFJvb3RTdGF0ZVtcImluY2lkZW50c1wiXVtcImNsb3NlZEluY2lkZW50c1wiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIlNldE1ham9ySW5jaWRlbnRzXCI7XHJcbiAgICAgICAgICBhY3RpdmVNYWpvckluY2lkZW50czogRGVmYXVsdFJvb3RTdGF0ZVtcImluY2lkZW50c1wiXVtcImFjdGl2ZU1ham9ySW5jaWRlbnRzXCJdO1xyXG4gICAgICAgICAgcmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzOiBEZWZhdWx0Um9vdFN0YXRlW1wiaW5jaWRlbnRzXCJdW1wicmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzXCJdO1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiU2V0Q29udGFjdHNcIjtcclxuICAgICAgICAgIGNvbnRhY3RzOiBEZWZhdWx0Um9vdFN0YXRlW1wiY29udGFjdHNcIl07XHJcbiAgICAgIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJTZXRBY2NvdW50c1wiO1xyXG4gICAgICAgICAgYWNjb3VudHM6IERlZmF1bHRSb290U3RhdGVbXCJhY2NvdW50c1wiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIlNldFByb2R1Y3RzXCI7XHJcbiAgICAgICAgICBwcm9kdWN0czogRGVmYXVsdFJvb3RTdGF0ZVtcInByb2R1Y3RzXCJdO1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiU2V0T3JkZXJzXCI7XHJcbiAgICAgICAgICBvcmRlcnM6IERlZmF1bHRSb290U3RhdGVbXCJvcmRlcnNcIl07XHJcbiAgICAgIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJTZXRJbnZvaWNlc1wiO1xyXG4gICAgICAgICAgaW52b2ljZXM6IERlZmF1bHRSb290U3RhdGVbXCJpbnZvaWNlc1wiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIlNldE5ldHdvcmtPcmRlcnNcIjtcclxuICAgICAgICAgIG5ldHdvcmtPcmRlcnM6IERlZmF1bHRSb290U3RhdGVbXCJuZXR3b3JrT3JkZXJzXCJdO1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiU2V0UHJvamVjdHNcIjtcclxuICAgICAgICAgIHByb2plY3RzOiBEZWZhdWx0Um9vdFN0YXRlW1wicHJvamVjdHNcIl07XHJcbiAgICAgIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJTZXRDdXN0b21lckFzc2V0c1wiO1xyXG4gICAgICAgICAgY3VzdG9tZXJBc3NldHM6IERlZmF1bHRSb290U3RhdGVbXCJjdXN0b21lckFzc2V0c1wiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIlNldEJsb2dQb3N0c1wiO1xyXG4gICAgICAgICAgYmxvZ1Bvc3RzOiBEZWZhdWx0Um9vdFN0YXRlW1wiYmxvZ1Bvc3RzXCJdO1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiU2V0Q3VycmVudFBhZ2VcIjtcclxuICAgICAgICAgIGN1cnJlbnRQYWdlOiBEZWZhdWx0Um9vdFN0YXRlW1wiY3VycmVudFBhZ2VcIl07XHJcbiAgICAgIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJTZXREaXJ0eUJhbm5lclNldHRpbmdzXCI7XHJcbiAgICAgICAgICBkaXJ0eUJhbm5lclNldHRpbmdzOiBEZWZhdWx0Um9vdFN0YXRlW1wiZGlydHlCYW5uZXJTZXR0aW5nc1wiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIlNldFRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlXCI7XHJcbiAgICAgICAgICB0ZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZTogRGVmYXVsdFJvb3RTdGF0ZVtcInRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlXCJdO1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiU2V0RmVlZGJhY2tQYW5lSXNTaG93blwiO1xyXG4gICAgICAgICAgZmVlZGJhY2tQYW5lSXNTaG93bjogRGVmYXVsdFJvb3RTdGF0ZVtcImZlZWRiYWNrUGFuZUlzU2hvd25cIl07XHJcbiAgICAgIH1cclxuICAgIHwge1xyXG4gICAgICAgICAgdHlwZTogXCJTZXRQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlc1wiO1xyXG4gICAgICAgICAgcG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXM6IERlZmF1bHRSb290U3RhdGVbXCJwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlc1wiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIkFkZExhdGVzdEVycm9yXCI7XHJcbiAgICAgICAgICBlcnJvcjogRGVmYXVsdFJvb3RTdGF0ZVtcImxhdGVzdEVycm9yc1wiXVswXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIkFkZE5vdGlmaWNhdGlvblwiO1xyXG4gICAgICAgICAgbm90aWZpY2F0aW9uOiBPbWl0PERlZmF1bHRSb290U3RhdGVbXCJub3RpZmljYXRpb25zXCJdWzBdLCBcImlkXCI+O1xyXG4gICAgICB9XHJcbiAgICB8IHtcclxuICAgICAgICAgIHR5cGU6IFwiUmVtb3ZlTm90aWZpY2F0aW9uXCI7XHJcbiAgICAgICAgICBpZDogRGVmYXVsdFJvb3RTdGF0ZVtcIm5vdGlmaWNhdGlvbnNcIl1bMF1bXCJpZFwiXTtcclxuICAgICAgfVxyXG4gICAgfCB7XHJcbiAgICAgICAgICB0eXBlOiBcIkNsZWFyTGF0ZXN0RXJyb3JzXCI7XHJcbiAgICAgIH07XHJcblxyXG5jb25zdCB1c2VyTWV0YWRhdGEgPSBnZXRJbml0aWFsVXNlck1ldGFkYXRhKCk7XHJcblxyXG5jb25zdCB1c2VySWQgPSBpc0xvY2FsTW9kZSA/IE1vY2tBdXRoZW50aWNhdGVkVXNlci5jb250YWN0aWQgOiB1c2VyTWV0YWRhdGEuY29udGFjdElkO1xyXG5cclxuLyoqIEdldHMgdGhlIGluaXRpYWwgbWV0YWRhdGEgb2YgdGhlIGxvZ2dlZC1pbiB1c2VyLCBkeW5hbWljYWxseSBjaG9vc2luZyBiZXR3ZWVuIG1vY2sgYW5kIFwibGl2ZVwiIGRhdGEgKi9cclxuZnVuY3Rpb24gZ2V0SW5pdGlhbFVzZXJNZXRhZGF0YSgpIHtcclxuICAgIGlmIChpc0xvY2FsTW9kZSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLmdldFVzZXJNZXRhZGF0YSgpLFxyXG4gICAgICAgICAgICB0ZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZTogTW9ja0F1dGhlbnRpY2F0ZWRVc2VyLm1zZHluX3BvcnRhbHRlcm1zYWdyZWVtZW50ZGF0ZVxyXG4gICAgICAgICAgICAgICAgPyBuZXcgRGF0ZShNb2NrQXV0aGVudGljYXRlZFVzZXIubXNkeW5fcG9ydGFsdGVybXNhZ3JlZW1lbnRkYXRlKVxyXG4gICAgICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBnZXRVc2VyTWV0YWRhdGEoKTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gSWYgdGhlIHVzZXIgaXMgbm90IGxvZ2dlZCBpblxyXG5pZiAoIXVzZXJJZCkge1xyXG4gICAgY29uc3QgY3VycmVudFVybFBhdGggPSBlbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmxRdWVyeSA9IGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgIC8vIFJlZGlyZWN0IHVzZXIgdG8gU2lnbiBJbiBwYWdlXHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke1BBR0VTLlNpZ25Jbi5wYXRofT9SZXR1cm5Vcmw9JHtjdXJyZW50VXJsUGF0aH0ke2N1cnJlbnRVcmxRdWVyeX1gO1xyXG59XHJcblxyXG4vKiogSW5pdGlhbCBhcHBsaWNhdGlvbiBzdGF0ZS4gKi9cclxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogRGVmYXVsdFJvb3RTdGF0ZSA9IHtcclxuICAgIC8qKiBJbmRpY2F0aW9uIG9mIHRoZSBjdXJyZW50IHJ1biBtb2RlICovXHJcbiAgICBpc0xvY2FsTW9kZTogaXNMb2NhbE1vZGUsXHJcblxyXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBhZ2UgaGFzIHVuc2F2ZWQgY2hhbmdlcyAqL1xyXG4gICAgZGlydHlCYW5uZXJTZXR0aW5nczogdW5kZWZpbmVkLFxyXG5cclxuICAgIC8qKiBUaGUgSWQgb2YgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXIgKi9cclxuICAgIHVzZXJJZCxcclxuXHJcbiAgICAvKiogQ2FzZXMgKi9cclxuICAgIGluY2lkZW50czoge1xyXG4gICAgICAgIGFjdGl2ZUluY2lkZW50czogeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSxcclxuICAgICAgICBjbG9zZWRJbmNpZGVudHM6IHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0sXHJcbiAgICAgICAgYWN0aXZlTWFqb3JJbmNpZGVudHM6IHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0sXHJcbiAgICAgICAgcmVjZW50bHlSZXNvbHZlZE1ham9ySW5jaWRlbnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIiB9LFxyXG4gICAgfSxcclxuXHJcbiAgICAvKiogQWNjb3VudHMgKi9cclxuICAgIGFjY291bnRzOiB7IGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIiB9LFxyXG5cclxuICAgIC8qKiBDb250YWN0cyAqL1xyXG4gICAgY29udGFjdHM6IHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0sXHJcblxyXG4gICAgLyoqIFByb2R1Y3RzICovXHJcbiAgICBwcm9kdWN0czogeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSxcclxuXHJcbiAgICAvKiogT3JkZXJzICovXHJcbiAgICBvcmRlcnM6IHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0sXHJcblxyXG4gICAgLyoqIEludm9pY2VzICovXHJcbiAgICBpbnZvaWNlczogeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSxcclxuXHJcbiAgICAvKiogTmV0d29yayBPcmRlcnMgKi9cclxuICAgIG5ldHdvcmtPcmRlcnM6IHsgbG9hZGluZ1N0YXR1czogXCJub3Qtc3RhcnRlZFwiIH0sXHJcblxyXG4gICAgLyoqIFByb2plY3RzICovXHJcbiAgICBwcm9qZWN0czogeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSxcclxuXHJcbiAgICAvKiogQ3VzdG9tZXIgQXNzZXRzICovXHJcbiAgICBjdXN0b21lckFzc2V0czogeyBsb2FkaW5nU3RhdHVzOiBcIm5vdC1zdGFydGVkXCIgfSxcclxuXHJcbiAgICAvKiogQmxvZyBQb3N0cyAqL1xyXG4gICAgYmxvZ1Bvc3RzOiB7IGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIiB9LFxyXG5cclxuICAgIC8qKiBQb3J0YWwgbWFqb3IgSW5jaWRlbnQgVXBkYXRlIGRhdGEgKi9cclxuICAgIHBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVzOiB7IGxvYWRpbmdTdGF0dXM6IFwibm90LXN0YXJ0ZWRcIiB9LFxyXG5cclxuICAgIC8qKiBJbmRpY2F0aW9uIG9mIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBGZWVkYmFjayBQYW5lICovXHJcbiAgICBmZWVkYmFja1BhbmVJc1Nob3duOiBmYWxzZSxcclxuXHJcbiAgICAvKiogTGF0ZXN0IGVycm9ycyB0aGF0IGhhdmUgb2NjdXJyZWQgKi9cclxuICAgIGxhdGVzdEVycm9yczogW10sXHJcblxyXG4gICAgLyoqIE5vdGlmaWNhdGlvbnMgdG8gZGlzcGxheSAqL1xyXG4gICAgbm90aWZpY2F0aW9uczogW10sXHJcblxyXG4gICAgLyoqIFRlcm1zIGFuZCBDb25kaXRpb25zIGFjY2VwdGFuY2Ugc3RhdHVzICovXHJcbiAgICB0ZXJtc0FuZENvbmRpdGlvbnNBY2NlcHRhbmNlRGF0ZTogdXNlck1ldGFkYXRhLnRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlLFxyXG5cclxuICAgIC8qKiBDdXJyZW50IHBhZ2UgKi9cclxuICAgIGN1cnJlbnRQYWdlOiBPYmplY3QudmFsdWVzKFBBR0VTKS5maW5kKChwYWdlKSA9PiBwYWdlLnBhdGggPT09IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkgfHwgUEFHRVMuSG9tZSxcclxuXHJcbiAgICAvKiogQXBwbGljYXRpb24gSW5zaWdodHMgKi9cclxuICAgIGFwcEluc2lnaHRzOiAoKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0xvY2FsTW9kZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghQVBQX0lOU0lHSFRTX0lOU1RSVU1FTlRBVElPTl9LRVkpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiQXBwIEluc2lnaHRzIEluc3RydW1lbnRhdGlvbiBLZXkgd2FzIG5vdCBmb3VuZFwiKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYXBwSW5zaWdodHMgPSBuZXcgQXBwbGljYXRpb25JbnNpZ2h0cyh7XHJcbiAgICAgICAgICAgIGNvbmZpZzogeyBpbnN0cnVtZW50YXRpb25LZXk6IEFQUF9JTlNJR0hUU19JTlNUUlVNRU5UQVRJT05fS0VZIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGFwcEluc2lnaHRzLmxvYWRBcHBJbnNpZ2h0cygpO1xyXG5cclxuICAgICAgICByZXR1cm4gYXBwSW5zaWdodHM7XHJcbiAgICB9KSgpLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZXMgdGhlIEFwcCBzdGF0ZSBmcm9tIGFjdGlvbnMuXHJcbiAqIEBwYXJhbSBjdXJyZW50U3RhdGUgVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIEFwcFxyXG4gKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gdG8gdXBkYXRlIHRoZSBzdGF0ZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHJvb3RSZWR1Y2VyOiBSZWR1Y2VyPERlZmF1bHRSb290U3RhdGUsIEFjdGlvbj4gPSAoY3VycmVudFN0YXRlLCBhY3Rpb24pOiBEZWZhdWx0Um9vdFN0YXRlID0+XHJcbiAgICBwcm9kdWNlPERlZmF1bHRSb290U3RhdGUsIERyYWZ0PERlZmF1bHRSb290U3RhdGU+PihjdXJyZW50U3RhdGUsIChkcmFmdFN0YXRlKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xyXG4gICAgICAgICAgICAvKiBBY3Rpb24gZm9yIHNldHRpbmcgdGhlIGFjdGl2ZSBJbmNpZGVudCBkYXRhICovXHJcbiAgICAgICAgICAgIGNhc2UgXCJTZXRBY3RpdmVJbmNpZGVudHNcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5pbmNpZGVudHMgPSB7IC4uLmRyYWZ0U3RhdGUuaW5jaWRlbnRzLCBhY3RpdmVJbmNpZGVudHM6IGFjdGlvbi5hY3RpdmVJbmNpZGVudHMgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciBzZXR0aW5nIHRoZSBhY3RpdmUgSW5jaWRlbnQgZGF0YSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0Q2xvc2VkSW5jaWRlbnRzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUuaW5jaWRlbnRzID0geyAuLi5kcmFmdFN0YXRlLmluY2lkZW50cywgY2xvc2VkSW5jaWRlbnRzOiBhY3Rpb24uY2xvc2VkSW5jaWRlbnRzIH07XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3Igc2V0dGluZyB0aGUgTWFqb3IgSW5jaWRlbnQgZGF0YSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0TWFqb3JJbmNpZGVudHNcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5pbmNpZGVudHMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uZHJhZnRTdGF0ZS5pbmNpZGVudHMsXHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlTWFqb3JJbmNpZGVudHM6IGFjdGlvbi5hY3RpdmVNYWpvckluY2lkZW50cyxcclxuICAgICAgICAgICAgICAgICAgICByZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHM6IGFjdGlvbi5yZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBBY3Rpb24gZm9yIHNldHRpbmcgdGhlIEFjY291bnQgZGF0YSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0QWNjb3VudHNcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5hY2NvdW50cyA9IGFjdGlvbi5hY2NvdW50cztcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciBzZXR0aW5nIHRoZSBDb250YWN0IGRhdGEgKi9cclxuICAgICAgICAgICAgY2FzZSBcIlNldENvbnRhY3RzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUuY29udGFjdHMgPSBhY3Rpb24uY29udGFjdHM7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3Igc2V0dGluZyB0aGUgUHJvZHVjdHMgZGF0YSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0UHJvZHVjdHNcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5wcm9kdWN0cyA9IGFjdGlvbi5wcm9kdWN0cztcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciBzZXR0aW5nIHRoZSBPcmRlcnMgZGF0YSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0T3JkZXJzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUub3JkZXJzID0gYWN0aW9uLm9yZGVycztcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciBzZXR0aW5nIHRoZSBOZXR3b3JrIE9yZGVycyBkYXRhICovXHJcbiAgICAgICAgICAgIGNhc2UgXCJTZXROZXR3b3JrT3JkZXJzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUubmV0d29ya09yZGVycyA9IGFjdGlvbi5uZXR3b3JrT3JkZXJzO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBBY3Rpb24gZm9yIHNldHRpbmcgdGhlIFByb2plY3RzIGRhdGEgKi9cclxuICAgICAgICAgICAgY2FzZSBcIlNldFByb2plY3RzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUucHJvamVjdHMgPSBhY3Rpb24ucHJvamVjdHM7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3Igc2V0dGluZyB0aGUgQ3VzdG9tZXIgQXNzZXRzIGRhdGEgKi9cclxuICAgICAgICAgICAgY2FzZSBcIlNldEN1c3RvbWVyQXNzZXRzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUuY3VzdG9tZXJBc3NldHMgPSBhY3Rpb24uY3VzdG9tZXJBc3NldHM7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3Igc2V0dGluZyB0aGUgSW52b2ljZXMgZGF0YSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0SW52b2ljZXNcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5pbnZvaWNlcyA9IGFjdGlvbi5pbnZvaWNlcztcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyoqIEFjdGlvbiBmb3IgU2V0dGluZyBCbG9nIFBvc3RzLiAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0QmxvZ1Bvc3RzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUuYmxvZ1Bvc3RzID0gYWN0aW9uLmJsb2dQb3N0cztcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyoqIEFjdGlvbiBmb3Igc2V0dGluZyBQb3J0YWwgTWFqb3IgSW5jaWRlbnQgVXBkYXRlcy4gKi9cclxuICAgICAgICAgICAgY2FzZSBcIlNldFBvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVzXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUucG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXMgPSBhY3Rpb24ucG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3Igc2V0dGluZyB3aGV0aGVyIHRoZSBUZXJtcyBhbmQgQ29uZGl0aW9ucyBoYXZlIGJlZW4gYWNjZXB0ZWQgKi9cclxuICAgICAgICAgICAgY2FzZSBcIlNldFRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUudGVybXNBbmRDb25kaXRpb25zQWNjZXB0YW5jZURhdGUgPSBhY3Rpb24udGVybXNBbmRDb25kaXRpb25zQWNjZXB0YW5jZURhdGU7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3Igc2V0dGluZyB3aGV0aGVyIHRoZSBGZWVkYmFjayBQYW5lIGlzIHNob3duICovXHJcbiAgICAgICAgICAgIGNhc2UgXCJTZXRGZWVkYmFja1BhbmVJc1Nob3duXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUuZmVlZGJhY2tQYW5lSXNTaG93biA9IGFjdGlvbi5mZWVkYmFja1BhbmVJc1Nob3duO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBBY3Rpb24gZm9yIHNldHRpbmcgdGhlIGN1cnJlbnQgcGFnZSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0Q3VycmVudFBhZ2VcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5jdXJyZW50UGFnZSA9IGFjdGlvbi5jdXJyZW50UGFnZTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciBzZXR0aW5nIHRoZSBkaXJ0eSBzdGF0ZSBvZiB0aGUgcGFnZSAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiU2V0RGlydHlCYW5uZXJTZXR0aW5nc1wiOiB7XHJcbiAgICAgICAgICAgICAgICBkcmFmdFN0YXRlLmRpcnR5QmFubmVyU2V0dGluZ3MgPSBhY3Rpb24uZGlydHlCYW5uZXJTZXR0aW5ncztcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciBhZGRpbmcgYW4gZXJyb3IgKi9cclxuICAgICAgICAgICAgY2FzZSBcIkFkZExhdGVzdEVycm9yXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUubGF0ZXN0RXJyb3JzID0gWy4uLmRyYWZ0U3RhdGUubGF0ZXN0RXJyb3JzLCBhY3Rpb24uZXJyb3JdO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBBY3Rpb24gZm9yIGFkZGluZyBhIG5vdGlmaWNhdGlvbiAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiQWRkTm90aWZpY2F0aW9uXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUubm90aWZpY2F0aW9ucyA9IFsuLi5kcmFmdFN0YXRlLm5vdGlmaWNhdGlvbnMsIHsgLi4uYWN0aW9uLm5vdGlmaWNhdGlvbiwgaWQ6IG5ld0d1aWQoKSB9XTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQWN0aW9uIGZvciByZW1vdmluZyBhIG5vdGlmaWNhdGlvbiAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiUmVtb3ZlTm90aWZpY2F0aW9uXCI6IHtcclxuICAgICAgICAgICAgICAgIGRyYWZ0U3RhdGUubm90aWZpY2F0aW9ucyA9IGRyYWZ0U3RhdGUubm90aWZpY2F0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKG5vdGlmaWNhdGlvbikgPT4gbm90aWZpY2F0aW9uLmlkICE9PSBhY3Rpb24uaWRcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIEFjdGlvbiBmb3IgY2xlYXJpbmcgYWxsIGVycm9ycyAqL1xyXG4gICAgICAgICAgICBjYXNlIFwiQ2xlYXJMYXRlc3RFcnJvcnNcIjoge1xyXG4gICAgICAgICAgICAgICAgZHJhZnRTdGF0ZS5sYXRlc3RFcnJvcnMgPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBiZWhhdmlvdXIgZm9yIHRoZSBhY3Rpb24gdHlwZSAnJHthY3Rpb259JyBoYXMgYmVlbiBkZWZpbmVkIGluIHRoZSByZWR1Y2VyYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbS9jbGllbnRcIjtcclxuaW1wb3J0IHsgQnJvd3NlclJvdXRlciB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCBcIi4vaW5kZXguc2Nzc1wiO1xyXG5pbXBvcnQgXCIuLi8uLi8uLi9CaXN0ZWNoLlR5cGVTY3JpcHQuSGVscGVycy9Ycm1IZWxwZXIvSGVscGVycy9BcnJheUV4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcIi4vQXBwXCI7XHJcbmltcG9ydCB7IGxlZ2FjeV9jcmVhdGVTdG9yZSBhcyBjcmVhdGVTdG9yZSB9IGZyb20gXCJyZWR1eFwiO1xyXG5pbXBvcnQgeyBBY3Rpb24sIGluaXRpYWxTdGF0ZSwgcm9vdFJlZHVjZXIgfSBmcm9tIFwiLi9SZWR1Y2Vyc1wiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Um9vdFN0YXRlLCBQcm92aWRlciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgeyBCcmFuZFZhcmlhbnRzLCBjcmVhdGVMaWdodFRoZW1lLCBGbHVlbnRQcm92aWRlciwgVGhlbWUgfSBmcm9tIFwiQGZsdWVudHVpL3JlYWN0LWNvbXBvbmVudHNcIjtcclxuXHJcbmNvbnN0IHJvb3QgPSBSZWFjdERPTS5jcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicm9vdFwiKSBhcyBIVE1MRWxlbWVudCk7XHJcblxyXG5jb25zdCBzdG9yZSA9IGNyZWF0ZVN0b3JlKChwcmV2U3RhdGUsIGFjdGlvbjogQWN0aW9uKSA9PiB7XHJcbiAgICBpZiAocHJldlN0YXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHJvb3RSZWR1Y2VyKHByZXZTdGF0ZSBhcyBEZWZhdWx0Um9vdFN0YXRlLCBhY3Rpb24gYXMgQWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5pdGlhbFN0YXRlO1xyXG59LCAod2luZG93IGFzIGFueSkuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXz8uKCkpO1xyXG5cclxuLyoqIEJpc3RlY2ggQnJhbmQgQ29sb3Vycy4gKi9cclxuY29uc3QgYmlzdGVjaEJyYW5kVmFyaWFudHM6IEJyYW5kVmFyaWFudHMgPSB7XHJcbiAgICAxMDogXCIjMDIwMzA0XCIsXHJcbiAgICAyMDogXCIjMTAxOTFEXCIsXHJcbiAgICAzMDogXCIjMTcyQTMxXCIsXHJcbiAgICA0MDogXCIjMUIzNzQwXCIsXHJcbiAgICA1MDogXCIjMUY0NDUxXCIsXHJcbiAgICA2MDogXCIjMjI1MjYyXCIsXHJcbiAgICA3MDogXCIjMjQ2MDczXCIsXHJcbiAgICA4MDogXCIjMjY2Rjg1XCIsXHJcbiAgICA5MDogXCIjMjg3RTk3XCIsXHJcbiAgICAxMDA6IFwiIzI5OERBQVwiLFxyXG4gICAgMTEwOiBcIiMyOTlEQkRcIixcclxuICAgIDEyMDogXCIjMzNBQ0NFXCIsXHJcbiAgICAxMzA6IFwiIzYxQjlENlwiLFxyXG4gICAgMTQwOiBcIiM4M0M2REVcIixcclxuICAgIDE1MDogXCIjQTFEM0U1XCIsXHJcbiAgICAxNjA6IFwiI0JFRTBFRFwiLFxyXG59O1xyXG5cclxuY29uc3QgbGlnaHRUaGVtZTogVGhlbWUgPSB7XHJcbiAgICAuLi5jcmVhdGVMaWdodFRoZW1lKGJpc3RlY2hCcmFuZFZhcmlhbnRzKSxcclxuICAgIGNvbG9yQnJhbmRGb3JlZ3JvdW5kMTogXCIjMDAwXCIsXHJcblxyXG4gICAgLy8gUHJldmVudCBGbHVlbnQgVUkgbW9kaWZ5aW5nIG91ciBmb250IGZhbWlseSBkZWZpbmVkIGluIFNBU1NcclxuICAgIGZvbnRGYW1pbHlCYXNlOiBcImluaGVyaXRcIixcclxuXHJcbiAgICAvLyBQcmV2ZW50IEZsdWVudCBVSSBtb2RpZnlpbmcgb3VyIGZvbnQgc2l6ZXMgZGVmaW5lZCBpbiBTQVNTXHJcbiAgICBmb250U2l6ZUJhc2UxMDA6IFwiaW5oZXJpdFwiLFxyXG4gICAgZm9udFNpemVCYXNlMjAwOiBcImluaGVyaXRcIixcclxuICAgIGZvbnRTaXplQmFzZTMwMDogXCJpbmhlcml0XCIsXHJcbiAgICBmb250U2l6ZUJhc2U0MDA6IFwiaW5oZXJpdFwiLFxyXG4gICAgZm9udFNpemVCYXNlNTAwOiBcImluaGVyaXRcIixcclxuICAgIGZvbnRTaXplQmFzZTYwMDogXCJpbmhlcml0XCIsXHJcbiAgICBmb250U2l6ZUhlcm83MDA6IFwiaW5oZXJpdFwiLFxyXG4gICAgZm9udFNpemVIZXJvODAwOiBcImluaGVyaXRcIixcclxuICAgIGZvbnRTaXplSGVybzkwMDogXCJpbmhlcml0XCIsXHJcbiAgICBmb250U2l6ZUhlcm8xMDAwOiBcImluaGVyaXRcIixcclxuXHJcbiAgICAvLyBQcmV2ZW50IEZsdWVudCBVSSBtb2RpZnlpbmcgb3VyIGxpbmUgaGVpZ2h0cyBkZWZpbmVkIGluIFNBU1NcclxuICAgIGxpbmVIZWlnaHRCYXNlMTAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRCYXNlMjAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRCYXNlMzAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRCYXNlNDAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRCYXNlNTAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRCYXNlNjAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRIZXJvNzAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRIZXJvODAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRIZXJvOTAwOiBcImluaGVyaXRcIixcclxuICAgIGxpbmVIZWlnaHRIZXJvMTAwMDogXCJpbmhlcml0XCIsXHJcbn07XHJcblxyXG5yb290LnJlbmRlcihcclxuICAgIDxQcm92aWRlciBzdG9yZT17c3RvcmV9PlxyXG4gICAgICAgIDxSZWFjdC5TdHJpY3RNb2RlPlxyXG4gICAgICAgICAgICA8QnJvd3NlclJvdXRlciB3aW5kb3c9e3dpbmRvd30+XHJcbiAgICAgICAgICAgICAgICA8Rmx1ZW50UHJvdmlkZXIgdGhlbWU9e2xpZ2h0VGhlbWV9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxBcHAgLz5cclxuICAgICAgICAgICAgICAgIDwvRmx1ZW50UHJvdmlkZXI+XHJcbiAgICAgICAgICAgIDwvQnJvd3NlclJvdXRlcj5cclxuICAgICAgICA8L1JlYWN0LlN0cmljdE1vZGU+XHJcbiAgICA8L1Byb3ZpZGVyPlxyXG4pO1xyXG4iXSwibmFtZXMiOlsibCIsIm4iLCJwIiwicSIsInIiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiQSIsImEiLCJCIiwiQyIsIkQiLCJFIiwiYiIsImUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsImQiLCJjIiwiayIsImgiLCJnIiwiZiIsIm0iLCJOIiwiTyIsImVzY2FwZSIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsInJlYWN0X3Byb2R1Y3Rpb25fbWluIiwicmVhY3RNb2R1bGUiLCJyZXF1aXJlJCQwIiwicmVhY3RKc3hSdW50aW1lX3Byb2R1Y3Rpb25fbWluIiwianN4UnVudGltZU1vZHVsZSIsImV4cG9ydHMiLCJzY2hlZHVsZXJNb2R1bGUiLCJhYSIsImNhIiwicmVxdWlyZSQkMSIsImRhIiwiZWEiLCJmYSIsImhhIiwiaWEiLCJqYSIsImthIiwibGEiLCJtYSIsIm9hIiwicGEiLCJxYSIsInJhIiwic2EiLCJ0YSIsInVhIiwidmEiLCJ3YSIsInlhIiwiemEiLCJBYSIsIkJhIiwiQ2EiLCJEYSIsIkVhIiwiRmEiLCJHYSIsIkhhIiwiSWEiLCJKYSIsIkthIiwiTGEiLCJNYSIsIk5hIiwiT2EiLCJQYSIsIlFhIiwiUmEiLCJTYSIsIlRhIiwiVWEiLCJWYSIsIldhIiwiWGEiLCJZYSIsIlphIiwiYWIiLCJiYiIsImNiIiwiZGIiLCJlYiIsImZiIiwiZ2IiLCJoYiIsImliIiwiamIiLCJrYiIsImxiIiwibWIiLCJuYiIsIm9iIiwicGIiLCJxYiIsInJiIiwic2IiLCJ0YiIsInViIiwidmIiLCJ3YiIsInhiIiwieWIiLCJ6YiIsIkFiIiwiQmIiLCJDYiIsIkRiIiwiRWIiLCJGYiIsIkdiIiwiSGIiLCJJYiIsIkpiIiwiS2IiLCJMYiIsIk1iIiwiTmIiLCJPYiIsIlBiIiwiUWIiLCJSYiIsIlNiIiwiVGIiLCJVYiIsIlZiIiwiV2IiLCJYYiIsIlliIiwiWmIiLCIkYiIsImFjIiwiYmMiLCJjYyIsImRjIiwiZWMiLCJmYyIsImdjIiwiaGMiLCJpYyIsImpjIiwia2MiLCJsYyIsIm1jIiwib2MiLCJuYyIsInBjIiwicWMiLCJyYyIsInNjIiwidGMiLCJ1YyIsInZjIiwid2MiLCJ4YyIsInljIiwiemMiLCJBYyIsIkJjIiwiQ2MiLCJEYyIsIkVjIiwiRmMiLCJHYyIsIkhjIiwiSWMiLCJKYyIsIktjIiwiTGMiLCJNYyIsIk5jIiwiT2MiLCJQYyIsIlFjIiwiUmMiLCJTYyIsIlRjIiwiVWMiLCJWYyIsIldjIiwiWGMiLCJZYyIsIlpjIiwiJGMiLCJhZCIsImJkIiwiY2QiLCJkZCIsImVkIiwiZmQiLCJnZCIsImhkIiwiaWQiLCJqZCIsImtkIiwibGQiLCJtZCIsIm5kIiwib2QiLCJwZCIsInFkIiwicmQiLCJzZCIsInRkIiwidWQiLCJ2ZCIsIndkIiwieGQiLCJ5ZCIsIkFkIiwiemQiLCJCZCIsIkNkIiwiRGQiLCJFZCIsIkZkIiwiR2QiLCJIZCIsIklkIiwiSmQiLCJLZCIsIkxkIiwiTWQiLCJOZCIsIk9kIiwiUGQiLCJRZCIsIlJkIiwiU2QiLCJUZCIsIlVkIiwiVmQiLCJXZCIsIlhkIiwiWWQiLCJaZCIsIiRkIiwiYWUiLCJiZSIsImNlIiwiZGUiLCJlZSIsImZlIiwiZ2UiLCJoZSIsImllIiwiamUiLCJrZSIsImxlIiwibWUiLCJuZSIsIm9lIiwicGUiLCJxZSIsInJlIiwic2UiLCJ0ZSIsInVlIiwidmUiLCJ3ZSIsInhlIiwieWUiLCJ6ZSIsIkFlIiwiQmUiLCJDZSIsIkRlIiwiRWUiLCJGZSIsIkdlIiwiSGUiLCJJZSIsIkplIiwiS2UiLCJMZSIsIk1lIiwiTmUiLCJPZSIsIlBlIiwiUWUiLCJSZSIsIlNlIiwiVGUiLCJVZSIsIlZlIiwiV2UiLCJYZSIsIlllIiwiWmUiLCIkZSIsImFmIiwiYmYiLCJjZiIsImRmIiwiZWYiLCJmZiIsImdmIiwiaGYiLCJqZiIsImtmIiwibGYiLCJtZiIsIm5mIiwib2YiLCJwZiIsInFmIiwicmYiLCJzZiIsInRmIiwidWYiLCJ2ZiIsIndmIiwibmEiLCJ4YSIsIiRhIiwiYmEiLCJ4ZiIsInlmIiwiemYiLCJBZiIsIkJmIiwiQ2YiLCJEZiIsIkVmIiwiRmYiLCJHZiIsIkhmIiwiSmYiLCJJZiIsIktmIiwiTGYiLCJNZiIsIk5mIiwiT2YiLCJQZiIsIlFmIiwiUmYiLCJTZiIsIlRmIiwiVWYiLCJWZiIsIldmIiwiWGYiLCJZZiIsIlpmIiwiJGYiLCJhZyIsImJnIiwiY2ciLCJkZyIsImVnIiwiZmciLCJnZyIsImhnIiwiaWciLCJqZyIsImtnIiwibGciLCJtZyIsIm5nIiwib2ciLCJwZyIsInFnIiwicmciLCJzZyIsInRnIiwidWciLCJ2ZyIsIndnIiwieGciLCJ5ZyIsInpnIiwiQWciLCJCZyIsIkNnIiwiRGciLCJFZyIsIkZnIiwiR2ciLCJIZyIsIklnIiwiSmciLCJLZyIsIkxnIiwiTWciLCJOZyIsIk9nIiwiUGciLCJRZyIsIlJnIiwiU2ciLCJUZyIsIlVnIiwiVmciLCJXZyIsIlhnIiwiWWciLCJaZyIsIiRnIiwiYWgiLCJiaCIsImNoIiwiZGgiLCJlaCIsImZoIiwiZ2giLCJoaCIsImloIiwiamgiLCJraCIsImxoIiwibWgiLCJuaCIsIm9oIiwicGgiLCJxaCIsInJoIiwic2giLCJ0aCIsInVoIiwidmgiLCJ3aCIsInhoIiwieWgiLCJ6aCIsIkFoIiwiQmgiLCJDaCIsIkRoIiwiRWgiLCJGaCIsIkdoIiwiSGgiLCJJaCIsIkpoIiwiS2giLCJMaCIsIk1oIiwiTmgiLCJPaCIsIlBoIiwiUWgiLCJSaCIsIlNoIiwiVGgiLCJVaCIsIlZoIiwiV2giLCJYaCIsIlloIiwiWmgiLCIkaCIsImFpIiwiYmkiLCJjaSIsImRpIiwiZWkiLCJmaSIsImdpIiwiaGkiLCJpaSIsImppIiwia2kiLCJsaSIsIm1pIiwibmkiLCJvaSIsInBpIiwicWkiLCJyaSIsInNpIiwidGkiLCJ1aSIsInZpIiwid2kiLCJ4aSIsInlpIiwiemkiLCJBaSIsIkJpIiwiQ2kiLCJEaSIsIkVpIiwiRmkiLCJHaSIsIkhpIiwiSWkiLCJKaSIsIktpIiwiTGkiLCJNaSIsIk5pIiwiT2kiLCJQaSIsIlFpIiwiUmkiLCJTaSIsIlRpIiwiVWkiLCJWaSIsIldpIiwiWGkiLCJZaSIsIlppIiwiJGkiLCJhaiIsImJqIiwiY2oiLCJkaiIsImVqIiwiZmoiLCJnaiIsImhqIiwiaWoiLCJqaiIsImtqIiwibGoiLCJtaiIsIm5qIiwib2oiLCJwaiIsInFqIiwicmoiLCJzaiIsInRqIiwidWoiLCJ2aiIsIndqIiwieGoiLCJ5aiIsInpqIiwiQWoiLCJCaiIsIkNqIiwiRGoiLCJFaiIsIkZqIiwiR2oiLCJIaiIsIklqIiwiSmoiLCJLaiIsIkxqIiwiTWoiLCJOaiIsIk9qIiwiUGoiLCJRaiIsIlJqIiwiU2oiLCJUaiIsIlVqIiwiVmoiLCJXaiIsIlhqIiwiWWoiLCJaaiIsImFrIiwiYmsiLCJjayIsImRrIiwiZWsiLCJmayIsImdrIiwiaGsiLCJpayIsImprIiwia2siLCJsayIsIm1rIiwibmsiLCJvayIsIlkiLCJaIiwicGsiLCJxayIsInJrIiwic2siLCJ0ayIsInVrIiwidmsiLCJ3ayIsInhrIiwieWsiLCJ6ayIsIkFrIiwiQmsiLCJDayIsIkRrIiwiRWsiLCJGayIsIkdrIiwiSGsiLCJJayIsIkprIiwiS2siLCJMayIsIk1rIiwiTmsiLCJPayIsIlBrIiwiUWsiLCJSayIsIlNrIiwiVGsiLCJVayIsIlZrIiwiV2siLCJYayIsIllrIiwiWmsiLCIkayIsImFsIiwiYmwiLCJjbCIsImRsIiwiZWwiLCJmbCIsImdsIiwiaGwiLCJpbCIsImpsIiwia2wiLCJsbCIsIm1sIiwibmwiLCJvbCIsInBsIiwicWwiLCJybCIsInNsIiwidGwiLCJ1bCIsInZsIiwicmVhY3REb21fcHJvZHVjdGlvbl9taW4iLCJjaGVja0RDRSIsImVyciIsInJlYWN0RG9tTW9kdWxlIiwiX2V4dGVuZHMiLCJBY3Rpb24iLCJyZWFkT25seSIsIm9iaiIsIkJlZm9yZVVubG9hZEV2ZW50VHlwZSIsIkhhc2hDaGFuZ2VFdmVudFR5cGUiLCJQb3BTdGF0ZUV2ZW50VHlwZSIsImNyZWF0ZUJyb3dzZXJIaXN0b3J5Iiwib3B0aW9ucyIsIl9vcHRpb25zIiwiX29wdGlvbnMkd2luZG93Iiwid2luZG93IiwiZ2xvYmFsSGlzdG9yeSIsImdldEluZGV4QW5kTG9jYXRpb24iLCJfd2luZG93JGxvY2F0aW9uIiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIiwic3RhdGUiLCJibG9ja2VkUG9wVHgiLCJoYW5kbGVQb3AiLCJibG9ja2VycyIsIm5leHRBY3Rpb24iLCJfZ2V0SW5kZXhBbmRMb2NhdGlvbiIsIm5leHRJbmRleCIsIm5leHRMb2NhdGlvbiIsImRlbHRhIiwiaW5kZXgiLCJnbyIsImFwcGx5VHgiLCJhY3Rpb24iLCJfZ2V0SW5kZXhBbmRMb2NhdGlvbjIiLCJsb2NhdGlvbiIsImxpc3RlbmVycyIsImNyZWF0ZUV2ZW50cyIsImNyZWF0ZUhyZWYiLCJ0byIsImNyZWF0ZVBhdGgiLCJnZXROZXh0TG9jYXRpb24iLCJwYXJzZVBhdGgiLCJjcmVhdGVLZXkiLCJnZXRIaXN0b3J5U3RhdGVBbmRVcmwiLCJhbGxvd1R4IiwicmV0cnkiLCJfZ2V0SW5kZXhBbmRMb2NhdGlvbjMiLCJwdXNoIiwiX2dldEhpc3RvcnlTdGF0ZUFuZFVyIiwiaGlzdG9yeVN0YXRlIiwidXJsIiwicmVwbGFjZSIsIl9nZXRIaXN0b3J5U3RhdGVBbmRVcjIiLCJoaXN0b3J5IiwibGlzdGVuZXIiLCJibG9ja2VyIiwidW5ibG9jayIsInByb21wdEJlZm9yZVVubG9hZCIsImNyZWF0ZUhhc2hIaXN0b3J5IiwiX29wdGlvbnMyIiwiX29wdGlvbnMyJHdpbmRvdyIsIl9wYXJzZVBhdGgiLCJfcGFyc2VQYXRoJHBhdGhuYW1lIiwiX3BhcnNlUGF0aCRzZWFyY2giLCJfcGFyc2VQYXRoJGhhc2giLCJfZ2V0SW5kZXhBbmRMb2NhdGlvbjQiLCJfZ2V0SW5kZXhBbmRMb2NhdGlvbjUiLCJfZ2V0SW5kZXhBbmRMb2NhdGlvbjYiLCJnZXRCYXNlSHJlZiIsImJhc2UiLCJocmVmIiwiaGFzaEluZGV4IiwiX2dldEluZGV4QW5kTG9jYXRpb243IiwiX2dldEhpc3RvcnlTdGF0ZUFuZFVyMyIsIl9nZXRIaXN0b3J5U3RhdGVBbmRVcjQiLCJjcmVhdGVNZW1vcnlIaXN0b3J5IiwiX29wdGlvbnMzIiwiX29wdGlvbnMzJGluaXRpYWxFbnRyIiwiaW5pdGlhbEVudHJpZXMiLCJpbml0aWFsSW5kZXgiLCJlbnRyaWVzIiwiZW50cnkiLCJjbGFtcCIsImxvd2VyQm91bmQiLCJ1cHBlckJvdW5kIiwiZXZlbnQiLCJoYW5kbGVycyIsImZuIiwiaGFuZGxlciIsImFyZyIsIl9yZWYiLCJfcmVmJHBhdGhuYW1lIiwiX3JlZiRzZWFyY2giLCJfcmVmJGhhc2giLCJwYXRoIiwicGFyc2VkUGF0aCIsInNlYXJjaEluZGV4IiwiTmF2aWdhdGlvbkNvbnRleHQiLCJMb2NhdGlvbkNvbnRleHQiLCJSb3V0ZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiaW52YXJpYW50IiwiY29uZCIsIm1lc3NhZ2UiLCJnZW5lcmF0ZVBhdGgiLCJwYXJhbXMiLCJfIiwia2V5IiwibWF0Y2hSb3V0ZXMiLCJyb3V0ZXMiLCJsb2NhdGlvbkFyZyIsImJhc2VuYW1lIiwic3RyaXBCYXNlbmFtZSIsImJyYW5jaGVzIiwiZmxhdHRlblJvdXRlcyIsInJhbmtSb3V0ZUJyYW5jaGVzIiwibWF0Y2hlcyIsImkiLCJtYXRjaFJvdXRlQnJhbmNoIiwicGFyZW50c01ldGEiLCJwYXJlbnRQYXRoIiwicm91dGUiLCJtZXRhIiwiam9pblBhdGhzIiwicm91dGVzTWV0YSIsImNvbXB1dGVTY29yZSIsImNvbXBhcmVJbmRleGVzIiwicGFyYW1SZSIsImR5bmFtaWNTZWdtZW50VmFsdWUiLCJpbmRleFJvdXRlVmFsdWUiLCJlbXB0eVNlZ21lbnRWYWx1ZSIsInN0YXRpY1NlZ21lbnRWYWx1ZSIsInNwbGF0UGVuYWx0eSIsImlzU3BsYXQiLCJzIiwic2VnbWVudHMiLCJpbml0aWFsU2NvcmUiLCJzY29yZSIsInNlZ21lbnQiLCJicmFuY2giLCJtYXRjaGVkUGFyYW1zIiwibWF0Y2hlZFBhdGhuYW1lIiwiZW5kIiwicmVtYWluaW5nUGF0aG5hbWUiLCJtYXRjaCIsIm1hdGNoUGF0aCIsIm5vcm1hbGl6ZVBhdGhuYW1lIiwicGF0dGVybiIsIm1hdGNoZXIiLCJwYXJhbU5hbWVzIiwiY29tcGlsZVBhdGgiLCJwYXRobmFtZUJhc2UiLCJjYXB0dXJlR3JvdXBzIiwibWVtbyIsInBhcmFtTmFtZSIsInNwbGF0VmFsdWUiLCJzYWZlbHlEZWNvZGVVUklDb21wb25lbnQiLCJjYXNlU2Vuc2l0aXZlIiwicmVnZXhwU291cmNlIiwidmFsdWUiLCJyZXNvbHZlUGF0aCIsImZyb21QYXRobmFtZSIsInRvUGF0aG5hbWUiLCJyZXNvbHZlUGF0aG5hbWUiLCJub3JtYWxpemVTZWFyY2giLCJub3JtYWxpemVIYXNoIiwicmVsYXRpdmVQYXRoIiwicmVzb2x2ZVRvIiwidG9BcmciLCJyb3V0ZVBhdGhuYW1lcyIsImxvY2F0aW9uUGF0aG5hbWUiLCJmcm9tIiwicm91dGVQYXRobmFtZUluZGV4IiwidG9TZWdtZW50cyIsImdldFRvUGF0aG5hbWUiLCJuZXh0Q2hhciIsInBhdGhzIiwidXNlSHJlZiIsInVzZUluUm91dGVyQ29udGV4dCIsIm5hdmlnYXRvciIsInVzZUNvbnRleHQiLCJ1c2VSZXNvbHZlZFBhdGgiLCJqb2luZWRQYXRobmFtZSIsImVuZHNXaXRoU2xhc2giLCJ1c2VMb2NhdGlvbiIsInVzZU5hdmlnYXRpb25UeXBlIiwidXNlTWF0Y2giLCJ1c2VNZW1vIiwidXNlTmF2aWdhdGUiLCJyb3V0ZVBhdGhuYW1lc0pzb24iLCJhY3RpdmVSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsIk91dGxldENvbnRleHQiLCJ1c2VPdXRsZXRDb250ZXh0IiwidXNlT3V0bGV0IiwiY29udGV4dCIsIm91dGxldCIsImNyZWF0ZUVsZW1lbnQiLCJ1c2VQYXJhbXMiLCJyb3V0ZU1hdGNoIiwidXNlUm91dGVzIiwicGFyZW50TWF0Y2hlcyIsInBhcmVudFBhcmFtcyIsInBhcmVudFBhdGhuYW1lQmFzZSIsImxvY2F0aW9uRnJvbUNvbnRleHQiLCJfcGFyc2VkTG9jYXRpb25BcmckcGEiLCJwYXJzZWRMb2NhdGlvbkFyZyIsIl9yZW5kZXJNYXRjaGVzIiwiTWVtb3J5Um91dGVyIiwiY2hpbGRyZW4iLCJoaXN0b3J5UmVmIiwic2V0U3RhdGUiLCJ1c2VTdGF0ZSIsInVzZUxheW91dEVmZmVjdCIsIlJvdXRlciIsIk5hdmlnYXRlIiwiX3JlZjIiLCJuYXZpZ2F0ZSIsIk91dGxldCIsInByb3BzIiwiUm91dGUiLCJfcHJvcHMiLCJfcmVmMyIsImJhc2VuYW1lUHJvcCIsImxvY2F0aW9uUHJvcCIsIm5hdmlnYXRpb25UeXBlIiwic3RhdGljUHJvcCIsIm5hdmlnYXRpb25Db250ZXh0IiwidHJhaWxpbmdQYXRobmFtZSIsIlJvdXRlcyIsIl9yZWY0IiwiY3JlYXRlUm91dGVzRnJvbUNoaWxkcmVuIiwiQ2hpbGRyZW4iLCJlbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJGcmFnbWVudCIsInJlbmRlck1hdGNoZXMiLCJ0YXJnZXQiLCJzb3VyY2UiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImV4Y2x1ZGVkIiwic291cmNlS2V5cyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJCcm93c2VyUm91dGVyIiwiSGFzaFJvdXRlciIsIkhpc3RvcnlSb3V0ZXIiLCJpc01vZGlmaWVkRXZlbnQiLCJMaW5rIiwiZm9yd2FyZFJlZiIsInJlZiIsIm9uQ2xpY2siLCJyZWxvYWREb2N1bWVudCIsInJlc3QiLCJpbnRlcm5hbE9uQ2xpY2siLCJ1c2VMaW5rQ2xpY2tIYW5kbGVyIiwiaGFuZGxlQ2xpY2siLCJOYXZMaW5rIiwiX3JlZjUiLCJhcmlhQ3VycmVudFByb3AiLCJjbGFzc05hbWVQcm9wIiwic3R5bGVQcm9wIiwiaXNBY3RpdmUiLCJhcmlhQ3VycmVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwiX3RlbXAiLCJyZXBsYWNlUHJvcCIsInVzZVNlYXJjaFBhcmFtcyIsImRlZmF1bHRJbml0IiwiZGVmYXVsdFNlYXJjaFBhcmFtc1JlZiIsImNyZWF0ZVNlYXJjaFBhcmFtcyIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsIm5leHRJbml0IiwibmF2aWdhdGVPcHRpb25zIiwiaW5pdCIsIkFycmF5RXh0ZW5zaW9ucyIsInNlZW4iLCJpdGVtIiwia2V5U2VsZWN0b3IiLCJncm91cHMiLCJpbm5lciIsIm91dGVyS2V5U2VsZWN0b3IiLCJpbm5lcktleVNlbGVjdG9yIiwicmVzdWx0U2VsZWN0b3IiLCJpbm5lckdyb3VwcyIsInJlc3VsdCIsIm91dGVySXRlbSIsImlubmVyR3JvdXAiLCJpbm5lckl0ZW0iLCJmaWx0ZXJNYXAiLCJyZWFjdFJvdXRlclByb21wdF9janNfcHJvZHVjdGlvbl9taW4iLCJvIiwiaiIsImRpc3RNb2R1bGUiLCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVNoaW1fcHJvZHVjdGlvbl9taW4iLCJzaGltTW9kdWxlIiwid2l0aFNlbGVjdG9yX3Byb2R1Y3Rpb25fbWluIiwid2l0aFNlbGVjdG9yTW9kdWxlIiwiZGVmYXVsdE5vb3BCYXRjaCIsImNhbGxiYWNrIiwiYmF0Y2giLCJzZXRCYXRjaCIsIm5ld0JhdGNoIiwiZ2V0QmF0Y2giLCJSZWFjdFJlZHV4Q29udGV4dCIsIlJlYWN0IiwidXNlUmVkdXhDb250ZXh0Iiwibm90SW5pdGlhbGl6ZWQiLCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciIsImluaXRpYWxpemVVc2VTZWxlY3RvciIsInJlZkVxdWFsaXR5IiwiY3JlYXRlU2VsZWN0b3JIb29rIiwidXNlRGVmYXVsdFJlZHV4Q29udGV4dCIsInNlbGVjdG9yIiwiZXF1YWxpdHlGbiIsInN0b3JlIiwic3Vic2NyaXB0aW9uIiwiZ2V0U2VydmVyU3RhdGUiLCJzZWxlY3RlZFN0YXRlIiwidXNlRGVidWdWYWx1ZSIsInVzZVNlbGVjdG9yIiwicmVhY3RJc19wcm9kdWN0aW9uX21pbiIsInJlYWN0SXNNb2R1bGUiLCJyZWFjdElzIiwiRk9SV0FSRF9SRUZfU1RBVElDUyIsIk1FTU9fU1RBVElDUyIsIlRZUEVfU1RBVElDUyIsImNyZWF0ZUxpc3RlbmVyQ29sbGVjdGlvbiIsImZpcnN0IiwibGFzdCIsImlzU3Vic2NyaWJlZCIsIm51bGxMaXN0ZW5lcnMiLCJjcmVhdGVTdWJzY3JpcHRpb24iLCJwYXJlbnRTdWIiLCJ1bnN1YnNjcmliZSIsImFkZE5lc3RlZFN1YiIsInRyeVN1YnNjcmliZSIsIm5vdGlmeU5lc3RlZFN1YnMiLCJoYW5kbGVDaGFuZ2VXcmFwcGVyIiwidHJ5VW5zdWJzY3JpYmUiLCJjYW5Vc2VET00iLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IiwiUHJvdmlkZXIiLCJzZXJ2ZXJTdGF0ZSIsImNvbnRleHRWYWx1ZSIsInByZXZpb3VzU3RhdGUiLCJDb250ZXh0IiwiY3JlYXRlU3RvcmVIb29rIiwidXNlU3RvcmUiLCJjcmVhdGVEaXNwYXRjaEhvb2siLCJ1c2VEZWZhdWx0U3RvcmUiLCJ1c2VEaXNwYXRjaCIsIkJhc2VQZXJtaXNzaW9uTGV2ZWwiLCJDb250YWN0U3RhdGVDb2RlIiwiUG9ydGFsQ29udGFjdFR5cGUiLCJBY2NvdW50U2l0ZVR5cGUiLCJBY2NvdW50U3RhdGVDb2RlIiwiTW9ja0FjY291bnREYXRhIiwiQ2FzZVBlcm1pc3Npb25MZXZlbCIsIkNvbnRhY3RQZXJtaXNzaW9uTGV2ZWwiLCJPcmRlclBlcm1pc3Npb25MZXZlbCIsIkludm9pY2VQZXJtaXNzaW9uTGV2ZWwiLCJQcm9qZWN0UGVybWlzc2lvbkxldmVsIiwiTW9ja0NvbnRhY3REYXRhIiwiTW9ja0F1dGhlbnRpY2F0ZWRVc2VyIiwiZ2V0VXNlck1ldGFkYXRhIiwiY29udGFjdElkIiwiY29udGFjdE5hbWUiLCJhY2NvdW50SWQiLCJhY2NvdW50TmFtZSIsInBlcm1pc3Npb25MZXZlbCIsImNhc2VQZXJtaXNzaW9uTGV2ZWwiLCJjb250YWN0UGVybWlzc2lvbkxldmVsIiwib3JkZXJQZXJtaXNzaW9uTGV2ZWwiLCJwcm9qZWN0UGVybWlzc2lvbkxldmVsIiwiaW52b2ljZVBlcm1pc3Npb25MZXZlbCIsInRlcm1zQW5kQ29uZGl0aW9uc0FjY2VwdGFuY2VEYXRlIiwibWV0YWRhdGFLZXkiLCJ1c2VVc2VyTWV0YWRhdGEiLCJpc0xvY2FsTW9kZSIsIm1ldGFkYXRhIiwiSW1hZ2UiLCJzcmMiLCJoZWlnaHQiLCJ3aWR0aCIsImltYWdlVXJsIiwianN4IiwiSGVhZGVyIiwiaXNTaG93biIsImRpc3BhdGNoIiwib25DbGlja0ZlZWRiYWNrUGFuZUljb24iLCJqc3hzIiwiUHJvZHVjdFBvcnRhbFRpbGVNYXBwaW5nIiwiQ2FzZVR5cGUiLCJJbmNpZGVudFN0YXR1c0NvZGUiLCJDYXNlUHJpb3JpdHlDb2RlIiwiQnJlYWRjcnVtYiIsImN1cnJlbnRQYXRoTmFtZSIsInBhZ2VzIiwiUEFHRVMiLCJwYWdlIiwicGFyZW50UGFnZXMiLCJfYSIsImFsbFBhZ2VzIiwibGFzdFBhcmVudFBhZ2UiLCJpc05vdExhc3RQYWdlIiwibGluayIsIl9iIiwiRGVmYXVsdENvbnRleHQiLCJJY29uQ29udGV4dCIsIl9fYXNzaWduIiwiX19yZXN0IiwiVHJlZTJFbGVtZW50IiwidHJlZSIsIm5vZGUiLCJHZW5JY29uIiwiZGF0YSIsIkljb25CYXNlIiwiZWxlbSIsImNvbmYiLCJhdHRyIiwic2l6ZSIsInRpdGxlIiwic3ZnUHJvcHMiLCJjb21wdXRlZFNpemUiLCJCaUNoZXZyb25Eb3duIiwiQmlFbnZlbG9wZSIsIkJpRXJyb3IiLCJCaUxpbmtFeHRlcm5hbCIsIkJpUGVuY2lsIiwidXNlQXBwSW5zaWdodHNDdXN0b21Qcm9wZXJ0aWVzIiwidXNlck1ldGFkYXRhIiwidXNlQXBwSW5zaWdodHMiLCJhcHBJbnNpZ2h0c0N1c3RvbVByb3BlcnRpZXMiLCJhcHBJbnNpZ2h0cyIsInRyYWNrRXhjZXB0aW9uV2l0aEJpc3RlY2hNZXRhZGF0YSIsImVycm9yIiwidHJhY2tFdmVudFdpdGhCaXN0ZWNoTWV0YWRhdGEiLCJ0cmFja1JlbmRlckV4Y2VwdGlvbldpdGhCaXN0ZWNoTWV0YWRhdGEiLCJlcnJvckluZm8iLCJJbmZvQ2FyZCIsIkVycm9yQm91bmRhcnkiLCJFcnJvckJvdW5kYXJ5SW5uZXIiLCJEZWZhdWx0RXJyb3JGYWxsYmFjayIsImlzSG92ZXJlZCIsInNldElzSG92ZXJlZCIsIl9jIiwiX2QiLCJfZiIsIl9lIiwicG9zaXRpb25NYXAiLCJnZW5lcmF0ZVN0eWxlcyIsInByb3BlcnR5Iiwic3VmZml4IiwidmFsdWVzIiwiZmlyc3RWYWx1ZSIsInNlY29uZFZhbHVlIiwidGhpcmRWYWx1ZSIsImZvdXJ0aFZhbHVlIiwidmFsdWVzV2l0aERlZmF1bHRzIiwic3R5bGVzIiwibmV3S2V5IiwiYm9yZGVyV2lkdGgiLCJib3JkZXJTdHlsZSIsImJvcmRlckNvbG9yIiwiTElORV9TVFlMRVMiLCJpc0JvcmRlclN0eWxlIiwiYm9yZGVyIiwiYm9yZGVyTGVmdCIsImJvcmRlckJvdHRvbSIsImJvcmRlclJpZ2h0IiwiYm9yZGVyVG9wIiwiYm9yZGVyUmFkaXVzIiwidmFsdWUxIiwidmFsdWUyIiwidmFsdWUzIiwidmFsdWU0IiwiaXNVbml0IiwiaXNVbml0bGVzcyIsImlzSW5pdGlhbCIsImlzQXV0byIsImlzTm9uZSIsIndpZHRoUmVzZXJ2ZWRLZXlzIiwiaXNXaWR0aCIsImZsZXgiLCJpc09uZVZhbHVlU3ludGF4IiwiaXNUd29WYWx1ZVN5bnRheCIsImlzVGhyZWVWYWx1ZVN5bnRheCIsImdhcCIsImNvbHVtbkdhcCIsInJvd0dhcCIsImNzc1ZhclJlZ0V4IiwiaXNWYWxpZEdyaWRBcmVhSW5wdXQiLCJjdXN0b21JZGVudFJlZ0V4Iiwibm9uQ3VzdG9tSWRlbnRSZWdFeCIsImlzQ3VzdG9tSWRlbnQiLCJncmlkQXJlYSIsImdyaWRSb3dTdGFydCIsImdyaWRDb2x1bW5TdGFydCIsImdyaWRSb3dFbmQiLCJncmlkQ29sdW1uRW5kIiwibWFyZ2luIiwibWFyZ2luQmxvY2siLCJzdGFydCIsIm1hcmdpbklubGluZSIsInBhZGRpbmciLCJwYWRkaW5nQmxvY2siLCJwYWRkaW5nSW5saW5lIiwib3ZlcmZsb3ciLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJpbnNldCIsIm91dGxpbmUiLCJvdXRsaW5lV2lkdGgiLCJvdXRsaW5lU3R5bGUiLCJvdXRsaW5lQ29sb3IiLCJ0cmFuc2l0aW9uIiwiaXNUcmFuc2l0aW9uR2xvYmFsSW5wdXRzIiwibm9ybWFsaXplVHJhbnNpdGlvbklucHV0cyIsImFjYyIsImR1cmF0aW9uIiwiZGVsYXkiLCJ0aW1pbmdGdW5jdGlvbiIsInRyYW5zaXRpb25HbG9iYWxJbnB1dHMiLCJ0cmFuc2l0aW9uSW5wdXRzIiwidGV4dERlY29yYXRpb24iLCJpc1RleHREZWNvcmF0aW9uU3R5bGVJbnB1dCIsInRleHREZWNvcmF0aW9uU3R5bGUiLCJ0ZXh0RGVjb3JhdGlvbkNvbG9yIiwidGV4dERlY29yYXRpb25UaGlja25lc3MiLCJ0ZXh0RGVjb3JhdGlvblN0eWxlSW5wdXRzIiwiX19HTE9CQUxfXyIsIl9fTkFNRVNQQUNFX1BSRUZJWF9fIiwiZ2V0R2xvYmFsVmFyIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsIkRFRklOSVRJT05fTE9PS1VQX1RBQkxFIiwiREFUQV9CVUNLRVRfQVRUUiIsIkRBVEFfUFJJT1JJVFlfQVRUUiIsIkhBU0hfUFJFRklYIiwiU0VRVUVOQ0VfSEFTSF9MRU5HVEgiLCJTRVFVRU5DRV9QUkVGSVgiLCJTRVFVRU5DRV9TSVpFIiwiTE9PS1VQX0RFRklOSVRJT05TX0lOREVYIiwiTE9PS1VQX0RJUl9JTkRFWCIsIlVOU1VQUE9SVEVEX0NTU19QUk9QRVJUSUVTIiwiUkVTRVQiLCJtdXJtdXIyIiwic3RyIiwibGVuIiwicGFkRW5kSGFzaCIsImhhc2hMZW5ndGgiLCJoYXNoU2VxdWVuY2UiLCJjbGFzc2VzIiwiZGlyIiwic2VxdWVuY2VJZHMiLCJoYXNoU3RyaW5nIiwicmVkdWNlVG9DbGFzc05hbWUiLCJjbGFzc01hcCIsImNsYXNzU3RyaW5nIiwicHJvcGVydHlIYXNoIiwiY2xhc3NOYW1lTWFwcGluZyIsImhhc1JUTENsYXNzTmFtZSIsInJlZHVjZVRvQ2xhc3NOYW1lRm9yU2xvdHMiLCJjbGFzc2VzTWFwQnlTbG90IiwiY2xhc3NOYW1lc0ZvclNsb3RzIiwic2xvdE5hbWUiLCJzbG90Q2xhc3NlcyIsInNsb3RDbGFzc2VzSGFzaCIsInNlcXVlbmNlSGFzaCIsInJlc3VsdFNsb3RDbGFzc2VzIiwibWVyZ2VDbGFzc2VzQ2FjaGVkUmVzdWx0cyIsIm1lcmdlQ2xhc3NlcyIsInJlc3VsdENsYXNzTmFtZSIsInNlcXVlbmNlTWF0Y2giLCJzZXF1ZW5jZXNJZHMiLCJzZXF1ZW5jZUluZGV4Iiwic2VxdWVuY2VJZCIsIm1lcmdlQ2xhc3Nlc1Jlc3VsdCIsInNlcXVlbmNlTWFwcGluZ3MiLCJzZXF1ZW5jZU1hcHBpbmciLCJyZXN1bHRDbGFzc2VzTWFwIiwiYXRvbWljQ2xhc3NlcyIsImNsYXNzZXNNYXBIYXNoIiwibmV3U2VxdWVuY2VIYXNoIiwibmV3Q2xhc3NOYW1lIiwibm9ybWFsaXplQ1NTQnVja2V0RW50cnkiLCJjcmVhdGVJc29tb3JwaGljU3R5bGVTaGVldCIsInN0eWxlRWxlbWVudCIsImJ1Y2tldE5hbWUiLCJwcmlvcml0eSIsImVsZW1lbnRBdHRyaWJ1dGVzIiwiX19jc3NSdWxlc0ZvclNTUiIsImF0dHJOYW1lIiwiaW5zZXJ0UnVsZSIsInJ1bGUiLCJjc3NSdWxlIiwic3R5bGVCdWNrZXRPcmRlcmluZyIsInN0eWxlQnVja2V0T3JkZXJpbmdNYXAiLCJjdXIiLCJnZXRTdHlsZVNoZWV0S2V5IiwibWVkaWEiLCJnZXRTdHlsZVNoZWV0Rm9yQnVja2V0IiwidGFyZ2V0RG9jdW1lbnQiLCJpbnNlcnRpb25Qb2ludCIsInJlbmRlcmVyIiwiaXNNZWRpYUJ1Y2tldCIsInN0eWxlc2hlZXRLZXkiLCJ0YWciLCJzdHlsZXNoZWV0IiwiZmluZEluc2VydGlvblBvaW50IiwiaXNTYW1lSW5zZXJ0aW9uS2V5IiwidGFyZ2V0S2V5IiwiZWxlbWVudEtleSIsInRhcmdldEJ1Y2tldCIsInRhcmdldE9yZGVyIiwiY29tcGFyZXIiLCJzdHlsZUVsZW1lbnRzIiwibWVkaWFFbGVtZW50cyIsImNvbXBhcmVyV2l0aFByaW9yaXR5IiwibGVuZ3RoIiwic2FmZUluc2VydFJ1bGUiLCJzaGVldCIsInJ1bGVDU1MiLCJsYXN0SW5kZXgiLCJkZWZhdWx0Q29tcGFyZU1lZGlhUXVlcmllcyIsImNyZWF0ZURPTVJlbmRlcmVyIiwiY2xhc3NOYW1lSGFzaFNhbHQiLCJ1bnN0YWJsZV9maWx0ZXJDU1NSdWxlIiwic3R5bGVFbGVtZW50QXR0cmlidXRlcyIsImNvbXBhcmVNZWRpYVF1ZXJpZXMiLCJjc3NSdWxlcyIsInN0eWxlQnVja2V0TmFtZSIsImNzc1J1bGVzRm9yQnVja2V0IiwiaW5zZXJ0aW9uRmFjdG9yeSIsImluc2VydGlvbkNhY2hlIiwiYXJyYXlUb09iamVjdCIsImFycmF5IiwicHJvcDEiLCJwcm9wMiIsImlzQm9vbGVhbiIsInZhbCIsImlzRnVuY3Rpb24iLCJpc051bWJlciIsImlzTnVsbE9yVW5kZWZpbmVkIiwiaXNPYmplY3QiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwiaW5jbHVzaXZlIiwiaW5jbHVzZWUiLCJmbGlwU2lnbiIsImZsaXBUcmFuc2Zvcm1TaWduIiwicHJlZml4Iiwib2Zmc2V0IiwiY2FsY3VsYXRlTmV3QmFja2dyb3VuZFBvc2l0aW9uIiwiaWR4IiwiZ2V0VmFsdWVzQXNMaXN0IiwibGlzdCIsIm9wZW5QYXJhbnNDb3VudCIsImNsb3NlZFBhcmFuc0NvdW50IiwiaGFuZGxlUXVhcnRldFZhbHVlcyIsInNwbGl0VmFsdWVzIiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwiY2FuQ29udmVydFZhbHVlIiwic3BsaXRTaGFkb3ciLCJzaGFkb3dzIiwicmdiYSIsInByb3BlcnR5VmFsdWVDb252ZXJ0ZXJzIiwiZmxpcHBlZFNoYWRvd3MiLCJzaGFkb3ciLCJ3aGl0ZVNwYWNlIiwibmVnYXRpdmUiLCJudW1iZXIiLCJkb3VibGVOZWdhdGl2ZSIsIl92YWx1ZSRzcGxpdCIsInJhZGl1czEiLCJyYWRpdXMyIiwiY29udmVydGVkUmFkaXVzMSIsImNvbnZlcnRlZFJhZGl1czIiLCJ0b3BMZWZ0IiwidG9wUmlnaHQiLCJib3R0b21SaWdodCIsImJvdHRvbUxlZnQiLCJ2YWx1ZXNUb0NvbnZlcnQiLCJpc1J0bCIsImJnSW1nRGlyZWN0aW9uUmVnZXgiLCJiZ1Bvc0RpcmVjdGlvblJlZ2V4IiwiYmFja2dyb3VuZFBvc2l0aW9uVmFsdWUiLCJfcmVmNiIsImcxIiwiZ3JvdXAyIiwiX3JlZjciLCJncm91cCIsIl9yZWY4IiwiX3JlZjkiLCJwcm9wZXJ0aWVzVG9Db252ZXJ0IiwiX3JlZjEwIiwicHJvcCIsIl9yZWYxMSIsIm5vbkFzY2lpUGF0dGVybiIsImVzY2FwZVBhdHRlcm4iLCJzaWduZWRRdWFudFBhdHRlcm4iLCJ0cmFuc2xhdGVYUmVnRXhwIiwidHJhbnNsYXRlUmVnRXhwIiwidHJhbnNsYXRlM2RSZWdFeHAiLCJyb3RhdGVSZWdFeHAiLCJwcm9wc1RvSWdub3JlIiwiY29udmVydCIsIm9iamVjdCIsIm5ld09iaiIsIm9yaWdpbmFsS2V5Iiwib3JpZ2luYWxWYWx1ZSIsIl9jb252ZXJ0UHJvcGVydHkiLCJjb252ZXJ0UHJvcGVydHkiLCJpc05vRmxpcCIsImdldFByb3BlcnR5RG9wcGVsZ2FuZ2VyIiwiZ2V0VmFsdWVEb3BwZWxnYW5nZXIiLCJpc051bSIsImlzRnVuYyIsImltcG9ydGFudGxlc3NWYWx1ZSIsImlzSW1wb3J0YW50IiwidmFsdWVDb252ZXJ0ZXIiLCJuZXdWYWx1ZSIsInVwcGVyY2FzZVBhdHRlcm4iLCJtc1BhdHRlcm4iLCJjYWNoZSIsInRvSHlwaGVuTG93ZXIiLCJoeXBoZW5hdGVQcm9wZXJ0eSIsImhOYW1lIiwibm9ybWFsaXplTmVzdGVkUHJvcGVydHkiLCJuZXN0ZWRQcm9wZXJ0eSIsIk1PWiIsIldFQktJVCIsIkNPTU1FTlQiLCJSVUxFU0VUIiwiREVDTEFSQVRJT04iLCJNRURJQSIsIklNUE9SVCIsIlNVUFBPUlRTIiwiS0VZRlJBTUVTIiwiTEFZRVIiLCJhYnMiLCJhc3NpZ24iLCJjaGFyYXQiLCJ0cmltIiwicmVwbGFjZW1lbnQiLCJpbmRleG9mIiwicG9zaXRpb24iLCJzdWJzdHIiLCJiZWdpbiIsInN0cmxlbiIsInNpemVvZiIsImFwcGVuZCIsImNvbWJpbmUiLCJsaW5lIiwiY29sdW1uIiwiY2hhcmFjdGVyIiwiY2hhcmFjdGVycyIsInJvb3QiLCJwYXJlbnQiLCJ0eXBlIiwic2libGluZ3MiLCJjb3B5IiwiY2hhciIsInByZXYiLCJuZXh0IiwicGVlayIsImNhcmV0Iiwic2xpY2UiLCJ0b2tlbiIsImFsbG9jIiwiZGVhbGxvYyIsImRlbGltaXQiLCJkZWxpbWl0ZXIiLCJ0b2tlbml6ZSIsInRva2VuaXplciIsIndoaXRlc3BhY2UiLCJpZGVudGlmaWVyIiwiZXNjYXBpbmciLCJjb3VudCIsImNvbW1lbnRlciIsImNvbXBpbGUiLCJwYXJzZSIsInJ1bGVzIiwicnVsZXNldHMiLCJwc2V1ZG8iLCJwb2ludHMiLCJkZWNsYXJhdGlvbnMiLCJhdHJ1bGUiLCJwcmV2aW91cyIsInZhcmlhYmxlIiwic2Nhbm5pbmciLCJhbXBlcnNhbmQiLCJyZWZlcmVuY2UiLCJjb21tZW50IiwiZGVjbGFyYXRpb24iLCJydWxlc2V0IiwicG9zdCIsInNlcmlhbGl6ZSIsIm91dHB1dCIsInN0cmluZ2lmeSIsIm1pZGRsZXdhcmUiLCJjb2xsZWN0aW9uIiwicnVsZXNoZWV0IiwiZ2xvYmFsUGx1Z2luIiwicHJlZml4ZXJQbHVnaW4iLCJpc0F0UnVsZUVsZW1lbnQiLCJzb3J0Q2xhc3Nlc0luQXRSdWxlc1BsdWdpbiIsImNvbXBpbGVDU1NSdWxlcyIsInNvcnRDbGFzc2VzSW5BdFJ1bGVzIiwiUFNFVURPX1NFTEVDVE9SX1JFR0VYIiwibm9ybWFsaXplUHNldWRvU2VsZWN0b3IiLCJwc2V1ZG9TZWxlY3RvciIsImNyZWF0ZUNTU1J1bGUiLCJjbGFzc05hbWVTZWxlY3RvciIsImNzc0RlY2xhcmF0aW9uIiwicHNldWRvcyIsImNvbXBpbGVBdG9taWNDU1NSdWxlIiwiYXRSdWxlcyIsInNlbGVjdG9ycyIsInJ0bENsYXNzTmFtZSIsInJ0bFByb3BlcnR5IiwicnRsVmFsdWUiLCJjb250YWluZXIiLCJsYXllciIsInN1cHBvcnRzIiwicnRsQ2xhc3NOYW1lU2VsZWN0b3IiLCJydGxDU1NEZWNsYXJhdGlvbiIsImNzc2lmeU9iamVjdCIsImNzcyIsImFyclZhbHVlIiwiY29tcGlsZUtleWZyYW1lUnVsZSIsImtleWZyYW1lT2JqZWN0IiwicGVyY2VudGFnZSIsImNvbXBpbGVLZXlmcmFtZXNDU1MiLCJrZXlmcmFtZU5hbWUiLCJrZXlmcmFtZUNTUyIsInNob3J0aGFuZHMiLCJnZW5lcmF0ZUNvbWJpbmVkUXVlcnkiLCJjdXJyZW50TWVkaWFRdWVyeSIsIm5lc3RlZE1lZGlhUXVlcnkiLCJpc01lZGlhUXVlcnlTZWxlY3RvciIsImlzTGF5ZXJTZWxlY3RvciIsInJlZ2V4IiwiaXNOZXN0ZWRTZWxlY3RvciIsImlzU3VwcG9ydFF1ZXJ5U2VsZWN0b3IiLCJpc0NvbnRhaW5lclF1ZXJ5U2VsZWN0b3IiLCJwc2V1ZG9zTWFwIiwiZ2V0U3R5bGVCdWNrZXROYW1lIiwibm9ybWFsaXplZFBzZXVkbyIsImFkZEF0UnVsZVByZWZpeCIsImF0UnVsZSIsImF0UnVsZXNUb1N0cmluZyIsImhhc2hQcm9wZXJ0eUtleSIsImNvbXB1dGVkS2V5IiwiaGFzaGVkS2V5IiwiZmlyc3RDaGFyQ29kZSIsImhhc2hDbGFzc05hbWUiLCJzYWx0IiwiaXNSZXNldFZhbHVlIiwidHJpbVNlbGVjdG9yIiwiZ2V0U2hvcnRoYW5kRGVmaW5pdGlvbiIsImNvbXB1dGVQcm9wZXJ0eVByaW9yaXR5Iiwic2hvcnRoYW5kIiwicHVzaFRvQ2xhc3Nlc01hcCIsImNsYXNzZXNNYXAiLCJwcm9wZXJ0eUtleSIsImx0ckNsYXNzbmFtZSIsInJ0bENsYXNzbmFtZSIsImNyZWF0ZUJ1Y2tldEVudHJ5IiwicHVzaFRvQ1NTUnVsZXMiLCJjc3NSdWxlc0J5QnVja2V0IiwibHRyQ1NTIiwicnRsQ1NTIiwicmVzb2x2ZVN0eWxlUnVsZXMiLCJjc3NDbGFzc2VzTWFwIiwic2hvcnRoYW5kUHJvcGVydGllcyIsInNob3J0aGFuZFJlc2V0U3R5bGVzIiwicnRsRGVmaW5pdGlvbiIsImZsaXBwZWRJblJ0bCIsInJ0bENvbXBpbGVPcHRpb25zIiwiYW5pbWF0aW9uTmFtZVZhbHVlIiwiYW5pbWF0aW9uTmFtZXMiLCJydGxBbmltYXRpb25OYW1lcyIsInJ0bEtleWZyYW1lQ1NTIiwiYW5pbWF0aW9uTmFtZSIsInJ0bEFuaW1hdGlvbk5hbWUiLCJrZXlmcmFtZVJ1bGVzIiwicnRsS2V5ZnJhbWVSdWxlcyIsInJ0bERlZmluaXRpb25zIiwiY29tYmluZWRNZWRpYVF1ZXJ5IiwiY29tYmluZWRMYXllclF1ZXJ5IiwiY29tYmluZWRTdXBwb3J0UXVlcnkiLCJjb250YWluZXJRdWVyeSIsInJlc29sdmVTdHlsZVJ1bGVzRm9yU2xvdHMiLCJzdHlsZXNCeVNsb3RzIiwic2xvdFN0eWxlcyIsImNzc0NsYXNzTWFwIiwibWFrZVN0eWxlcyIsImZhY3RvcnkiLCJpbnNlcnRTdHlsZXMiLCJsdHJDbGFzc05hbWVzRm9yU2xvdHMiLCJydGxDbGFzc05hbWVzRm9yU2xvdHMiLCJjb21wdXRlQ2xhc3NlcyIsImlzTFRSIiwiX19zdHlsZXMiLCJfX3Jlc2V0U3R5bGVzIiwibHRyQ2xhc3NOYW1lIiwiY29tcHV0ZUNsYXNzTmFtZSIsInVzZUluc2VydGlvbkVmZmVjdCIsIlJlbmRlcmVyQ29udGV4dCIsIlJlYWN0LmNyZWF0ZUNvbnRleHQiLCJ1c2VSZW5kZXJlciIsIlJlYWN0LnVzZUNvbnRleHQiLCJUZXh0RGlyZWN0aW9uQ29udGV4dCIsIlRleHREaXJlY3Rpb25Qcm92aWRlciIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiLCJ1c2VUZXh0RGlyZWN0aW9uIiwiZ2V0U3R5bGVzIiwibWFrZVN0eWxlcyQxIiwiX19zdHlsZXMkMSIsIl9fcmVzZXRTdHlsZXMkMSIsImNyZWF0ZUNTU1J1bGVGcm9tVGhlbWUiLCJ0aGVtZSIsImNzc1ZhcnNBc1N0cmluZyIsImNzc1ZhclJ1bGUiLCJjc3NWYXIiLCJTTE9UX1JFTkRFUl9GVU5DVElPTl9TWU1CT0wiLCJTTE9UX0VMRU1FTlRfVFlQRV9TWU1CT0wiLCJhbHdheXMiLCJkZWZhdWx0UHJvcHMiLCJlbGVtZW50VHlwZSIsInJlc29sdmVTaG9ydGhhbmQiLCJwcm9wc1dpdGhNZXRhZGF0YSIsIm9wdGlvbmFsIiwiUmVhY3QuaXNWYWxpZEVsZW1lbnQiLCJpc1Jlc29sdmVkU2hvcnRoYW5kIiwiaXNTbG90IiwidG9PYmplY3RNYXAiLCJpdGVtcyIsImtleXMiLCJiYXNlRWxlbWVudEV2ZW50cyIsImJhc2VFbGVtZW50UHJvcGVydGllcyIsIm1pY3JvZGF0YVByb3BlcnRpZXMiLCJodG1sRWxlbWVudFByb3BlcnRpZXMiLCJsYWJlbFByb3BlcnRpZXMiLCJhdWRpb1Byb3BlcnRpZXMiLCJ2aWRlb1Byb3BlcnRpZXMiLCJvbFByb3BlcnRpZXMiLCJsaVByb3BlcnRpZXMiLCJhbmNob3JQcm9wZXJ0aWVzIiwidGltZVByb3BlcnRpZXMiLCJidXR0b25Qcm9wZXJ0aWVzIiwiaW5wdXRQcm9wZXJ0aWVzIiwidGV4dEFyZWFQcm9wZXJ0aWVzIiwic2VsZWN0UHJvcGVydGllcyIsIm9wdGlvblByb3BlcnRpZXMiLCJ0YWJsZVByb3BlcnRpZXMiLCJ0clByb3BlcnRpZXMiLCJ0aFByb3BlcnRpZXMiLCJ0ZFByb3BlcnRpZXMiLCJjb2xHcm91cFByb3BlcnRpZXMiLCJjb2xQcm9wZXJ0aWVzIiwiZmllbGRzZXRQcm9wZXJ0aWVzIiwiZm9ybVByb3BlcnRpZXMiLCJpZnJhbWVQcm9wZXJ0aWVzIiwiaW1nUHJvcGVydGllcyIsImRpYWxvZ1Byb3BlcnRpZXMiLCJnZXROYXRpdmVQcm9wcyIsImFsbG93ZWRQcm9wTmFtZXMiLCJleGNsdWRlZFByb3BOYW1lcyIsImlzQXJyYXkiLCJuYXRpdmVFbGVtZW50TWFwIiwiZ2V0TmF0aXZlRWxlbWVudFByb3BzIiwidGFnTmFtZSIsImdldFBhcnRpdGlvbmVkTmF0aXZlUHJvcHMiLCJwcmltYXJ5U2xvdFRhZ05hbWUiLCJnZXRJbnRyaW5zaWNFbGVtZW50UHJvcHMiLCJfcHJvcHNfYXMiLCJvbWl0IiwiZXhjbHVzaW9ucyIsInVzZUJyb3dzZXJUaW1lciIsInNldFRpbWVyIiwiY2FuY2VsVGltZXIiLCJSZWFjdC51c2VSZWYiLCJzZXQiLCJSZWFjdC51c2VDYWxsYmFjayIsImNhbmNlbCIsIlJlYWN0LnVzZUVmZmVjdCIsIlRoZW1lQ29udGV4dCIsIlRoZW1lUHJvdmlkZXIiLCJUaGVtZUNsYXNzTmFtZUNvbnRleHQiLCJ0aGVtZUNsYXNzTmFtZUNvbnRleHREZWZhdWx0VmF1ZSIsIlRoZW1lQ2xhc3NOYW1lUHJvdmlkZXIiLCJ1c2VUaGVtZUNsYXNzTmFtZSIsIl9SZWFjdF91c2VDb250ZXh0IiwiVG9vbHRpcFZpc2liaWxpdHlDb250ZXh0IiwiVG9vbHRpcFZpc2liaWxpdHlQcm92aWRlciIsIlByb3ZpZGVyQ29udGV4dCIsInByb3ZpZGVyQ29udGV4dERlZmF1bHRWYWx1ZSIsInVzZUZsdWVudCIsIk92ZXJyaWRlc0NvbnRleHQiLCJPdmVycmlkZXNQcm92aWRlciIsInVzZU92ZXJyaWRlcyIsIkN1c3RvbVN0eWxlSG9va3NDb250ZXh0Iiwibm9vcCIsIkN1c3RvbVN0eWxlSG9va3NQcm92aWRlciIsInVzZUN1c3RvbVN0eWxlSG9vayIsImhvb2siLCJfUmVhY3RfdXNlQ29udGV4dF9ob29rIiwiUG9ydGFsTW91bnROb2RlQ29udGV4dCIsInVzZVBvcnRhbE1vdW50Tm9kZSIsIkFubm91bmNlQ29udGV4dCIsInVzZUFubm91bmNlIiwic2V0QW5pbWF0aW9uRnJhbWVOb29wIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWVOb29wIiwiaGFuZGxlIiwidXNlQW5pbWF0aW9uRnJhbWUiLCJ3aW4iLCJzZXRBbmltYXRpb25GcmFtZSIsImNsZWFyQW5pbWF0aW9uRnJhbWUiLCJpc0ZhY3RvcnlEaXNwYXRjaCIsIm5ld1N0YXRlIiwidXNlQ29udHJvbGxhYmxlU3RhdGUiLCJpbnRlcm5hbFN0YXRlIiwic2V0SW50ZXJuYWxTdGF0ZSIsIlJlYWN0LnVzZVN0YXRlIiwiaXNJbml0aWFsaXplciIsInN0YXRlVmFsdWVSZWYiLCJzZXRDb250cm9sbGVkU3RhdGUiLCJ1c2VJc0NvbnRyb2xsZWQiLCJjb250cm9sbGVkVmFsdWUiLCJpc0NvbnRyb2xsZWQiLCJkZWZhdWx0U1NSQ29udGV4dFZhbHVlIiwiU1NSQ29udGV4dCIsInVzZVNTUkNvbnRleHQiLCJSZWFjdC51c2VMYXlvdXRFZmZlY3QiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2FsbGJhY2tSZWYiLCJhcmdzIiwidXNlRmlyc3RNb3VudCIsImlzRmlyc3QiLCJ1c2VGb3JjZVVwZGF0ZSIsInVzZVJlZHVjZXIiLCJJZFByZWZpeENvbnRleHQiLCJ1c2VJZFByZWZpeCIsInVzZUlkIiwicHJvdmlkZWRJZCIsImlkUHJlZml4IiwiX3VzZUlkIiwiZ2VuZXJhdGVkSWQiLCJlc2NhcGVkSWQiLCJSZWFjdC51c2VNZW1vIiwidXNlTWVyZ2VkUmVmcyIsInJlZnMiLCJtZXJnZWRDYWxsYmFjayIsIkRFRkFVTFRfQ09OVEFJTlMiLCJjaGlsZCIsInVzZU9uQ2xpY2tPdXRzaWRlIiwiZGlzYWJsZWQiLCJkaXNhYmxlZEZvY3VzT25JZnJhbWUiLCJjb250YWlucyIsInRpbWVvdXRJZCIsInVzZUlGcmFtZUZvY3VzIiwiaXNNb3VzZURvd25JbnNpZGVSZWYiLCJldiIsImhhbmRsZU1vdXNlRG93biIsImN1cnJlbnRFdmVudCIsImdldFdpbmRvd0V2ZW50IiwiY29uZGl0aW9uYWxIYW5kbGVyIiwiX3RhcmdldF9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3IiwiX3RhcmdldF9vd25lckRvY3VtZW50IiwiX3RhcmdldF9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3X2V2ZW50IiwiRlVJX0ZSQU1FX0VWRU5UIiwicG9sbER1cmF0aW9uIiwidGltZW91dFJlZiIsIl90YXJnZXREb2N1bWVudF9kZWZhdWx0VmlldyIsImFjdGl2ZUVsZW1lbnQiLCJ1c2VPblNjcm9sbE91dHNpZGUiLCJjb250YWluc1Byb3AiLCJzZXRUaW1lb3V0Tm9vcCIsIl9jYWxsYmFjayIsImNsZWFyVGltZW91dE5vb3AiLCJfaGFuZGxlIiwidXNlVGltZW91dCIsInNldFRpbWVyRm4iLCJjbGVhclRpbWVyRm4iLCJnZXRSVExTYWZlS2V5IiwibWVyZ2VDYWxsYmFja3MiLCJjYWxsYmFjazEiLCJjYWxsYmFjazIiLCJpc0hUTUxFbGVtZW50IiwiX3R5cGVkRWxlbWVudF9vd25lckRvY3VtZW50IiwidHlwZWRFbGVtZW50IiwiX29wdGlvbnNfY29uc3RydWN0b3JOYW1lIiwiaXNGbHVlbnRUcmlnZ2VyIiwiYXBwbHlUcmlnZ2VyUHJvcHNUb0NoaWxkcmVuIiwidHJpZ2dlckNoaWxkUHJvcHMiLCJjbG9uZVRyaWdnZXJUcmVlIiwidHJpZ2dlclByb3BzIiwiUmVhY3QuRnJhZ21lbnQiLCJncmFuZGNoaWxkIiwiUmVhY3QuY2xvbmVFbGVtZW50IiwiZ2V0VHJpZ2dlckNoaWxkIiwiaXNUb3VjaEV2ZW50IiwiaXNNb3VzZUV2ZW50IiwiZ2V0RXZlbnRDbGllbnRDb29yZHMiLCJjcmVhdGVTZXRGcm9tSXRlcmFibGUiLCJpdGVyYWJsZSIsInVzZVNlbGVjdGlvblN0YXRlIiwic2VsZWN0ZWQiLCJzZXRTZWxlY3RlZCIsIm5leHRTZWxlY3RlZEl0ZW1zIiwiX3BhcmFtc19vblNlbGVjdGlvbkNoYW5nZSIsInVzZVNpbmdsZVNlbGVjdGlvbiIsImNoYW5nZVNlbGVjdGlvbiIsIml0ZW1JZCIsIl9zZWxlY3RlZF9oYXMiLCJ1c2VNdWx0aXBsZVNlbGVjdGlvbiIsIml0ZW1JZHMiLCJhbGxJdGVtc1NlbGVjdGVkIiwidXNlU2VsZWN0aW9uIiwiaXNWaXJ0dWFsRWxlbWVudCIsImdldFZpcnR1YWxQYXJlbnQiLCJnZXRQYXJlbnQiLCJ2aXJ0dWFsUGFyZW50IiwiZWxlbWVudENvbnRhaW5zIiwibmV4dFBhcmVudCIsInNldFZpcnR1YWxQYXJlbnQiLCJ2aXJ0dWFsQ2hpbGQiLCJjcmVhdGVDb21wYXRTbG90Q29tcG9uZW50IiwiY3JlYXRlSlNYIiwicnVudGltZSIsInNsb3RSdW50aW1lIiwib3ZlcnJpZGVQcm9wcyIsInNlbGYiLCJnZXRNZXRhZGF0YUZyb21TbG90Q29tcG9uZW50IiwiYXMiLCJiYXNlRWxlbWVudFR5cGUiLCJyZW5kZXJGdW5jdGlvbiIsInByb3BzV2l0aG91dE1ldGFkYXRhIiwiUnVudGltZSIsIlJlYWN0UnVudGltZSIsImpzeFNsb3QiLCJzbG90UHJvcHMiLCJqc3hzU2xvdCIsIkljb25EaXJlY3Rpb25Db250ZXh0IiwiSWNvbkRpcmVjdGlvbkNvbnRleHREZWZhdWx0VmFsdWUiLCJJY29uRGlyZWN0aW9uQ29udGV4dFByb3ZpZGVyIiwidXNlSWNvbkNvbnRleHQiLCJyZW5kZXJGbHVlbnRQcm92aWRlcl91bnN0YWJsZSIsImNvbnRleHRWYWx1ZXMiLCJfanN4IiwiX2pzeHMiLCJfY2FuVXNlV2Vha1JlZiIsIldlYWtSZWZJbnN0YW5jZSIsImluc3RhbmNlIiwiS0VZQk9SR19GT0NVU0lOIiwiS0VZQk9SR19GT0NVU09VVCIsImNhbk92ZXJyaWRlTmF0aXZlRm9jdXMiLCJIVE1MRWxlbWVudCIsIm9yaWdGb2N1cyIsImlzQ3VzdG9tRm9jdXNDYWxsZWQiLCJfY2FuT3ZlcnJpZGVOYXRpdmVGb2N1cyIsIm5hdGl2ZUZvY3VzIiwiZm9jdXMiLCJzZXR1cEZvY3VzRXZlbnQiLCJrd2luIiwic2hhZG93VGFyZ2V0cyIsImZvY3VzT3V0SGFuZGxlciIsImZvY3VzSW5IYW5kbGVyIiwiY3VycmVudFNoYWRvd3MiLCJzaGFkb3dSb290V2Vha1JlZiIsInNoYWRvd1Jvb3QiLCJvbkZvY3VzSW4iLCJyZWxhdGVkVGFyZ2V0Iiwib3JpZ2luYWxFdmVudCIsImRldGFpbHMiLCJrZXlib3JnTmF0aXZlRm9jdXNFdmVudCIsImRpc3Bvc2VGb2N1c0V2ZW50IiwicHJvdG8iLCJfZGlzbWlzc1RpbWVvdXQiLCJfbGFzdElkIiwiS2V5Ym9yZ0NvcmUiLCJkb2MiLCJ0cmlnZ2VyS2V5cyIsImRpc21pc3NLZXlzIiwia2V5Ym9yZ3MiLCJLZXlib3JnIiwiaXNUcmlnZ2VyS2V5IiwiaXNFZGl0YWJsZSIsIndhcyIsIl9LZXlib3JnIiwiY3VycmVudCIsImlzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCIsImNyZWF0ZUtleWJvcmciLCJkaXNwb3NlS2V5Ym9yZyIsIlRBQlNURVJfQVRUUklCVVRFX05BTUUiLCJUQUJTVEVSX0RVTU1ZX0lOUFVUX0FUVFJJQlVURV9OQU1FIiwiRk9DVVNBQkxFX1NFTEVDVE9SIiwiQXN5bmNGb2N1c1NvdXJjZXMiLCJWaXNpYmlsaXRpZXMiLCJSZXN0b3JlclR5cGVzIiwiTW92ZXJEaXJlY3Rpb25zIiwiTW92ZXJLZXlzIiwiR3JvdXBwZXJUYWJiYWJpbGl0aWVzIiwiR3JvdXBwZXJNb3ZlRm9jdXNBY3Rpb25zIiwiU3lzRHVtbXlJbnB1dHNQb3NpdGlvbnMiLCJnZXRUYWJzdGVyT25FbGVtZW50IiwidGFic3RlciIsInVwZGF0ZVRhYnN0ZXJCeUF0dHJpYnV0ZSIsImRpc3Bvc2UiLCJuZXdBdHRyVmFsdWUiLCJuZXdBdHRyIiwidGFic3Rlck9uRWxlbWVudCIsIm9sZFRhYnN0ZXJQcm9wcyIsIm5ld1RhYnN0ZXJQcm9wcyIsInBhcnQiLCJzeXMiLCJUYWJzdGVyRm9jdXNJbkV2ZW50TmFtZSIsIlRhYnN0ZXJGb2N1c091dEV2ZW50TmFtZSIsIlRhYnN0ZXJNb3ZlRm9jdXNFdmVudE5hbWUiLCJNb2RhbGl6ZXJBY3RpdmVFdmVudE5hbWUiLCJNb2RhbGl6ZXJJbmFjdGl2ZUV2ZW50TmFtZSIsIk1vdmVyU3RhdGVFdmVudE5hbWUiLCJNb3Zlck1vdmVGb2N1c0V2ZW50TmFtZSIsIk1vdmVyTWVtb3JpemVkRWxlbWVudEV2ZW50TmFtZSIsIkdyb3VwcGVyTW92ZUZvY3VzRXZlbnROYW1lIiwiUmVzdG9yZXJSZXN0b3JlRm9jdXNFdmVudE5hbWUiLCJSb290Rm9jdXNFdmVudE5hbWUiLCJSb290Qmx1ckV2ZW50TmFtZSIsIkN1c3RvbUV2ZW50XyIsIlRhYnN0ZXJDdXN0b21FdmVudCIsImRldGFpbCIsIlRhYnN0ZXJGb2N1c0luRXZlbnQiLCJUYWJzdGVyRm9jdXNPdXRFdmVudCIsIlRhYnN0ZXJNb3ZlRm9jdXNFdmVudCIsIk1vdmVyU3RhdGVFdmVudCIsIk1vZGFsaXplckFjdGl2ZUV2ZW50IiwiTW9kYWxpemVySW5hY3RpdmVFdmVudCIsIlJlc3RvcmVyUmVzdG9yZUZvY3VzRXZlbnQiLCJSb290Rm9jdXNFdmVudCIsIlJvb3RCbHVyRXZlbnQiLCJfY3JlYXRlTXV0YXRpb25PYnNlcnZlciIsIl9jcmVhdGVUcmVlV2Fsa2VyIiwid2hhdFRvU2hvdyIsImZpbHRlciIsIl9nZXRQYXJlbnROb2RlIiwiX2dldFBhcmVudEVsZW1lbnQiLCJfbm9kZUNvbnRhaW5zIiwiX2dldEFjdGl2ZUVsZW1lbnQiLCJfcXVlcnlTZWxlY3RvciIsIl9xdWVyeVNlbGVjdG9yQWxsIiwiX2dldEVsZW1lbnRCeUlkIiwiX2dldEZpcnN0Q2hpbGQiLCJfZ2V0TGFzdENoaWxkIiwiX2dldE5leHRTaWJsaW5nIiwiX2dldFByZXZpb3VzU2libGluZyIsIl9nZXRGaXJzdEVsZW1lbnRDaGlsZCIsIl9nZXRMYXN0RWxlbWVudENoaWxkIiwiX2dldE5leHRFbGVtZW50U2libGluZyIsIl9nZXRQcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwiX2FwcGVuZENoaWxkIiwiX2luc2VydEJlZm9yZSIsInJlZmVyZW5jZUNoaWxkIiwiX2dldFNlbGVjdGlvbiIsIl9nZXRFbGVtZW50c0J5TmFtZSIsInJlZmVyZW5jZUVsZW1lbnQiLCJkb20iLCJzZXRET01BUEkiLCJkb21hcGkiLCJfaXNCcm9rZW5JRTExIiwiX0RPTVJlY3QiLCJfdWlkQ291bnRlciIsIl91cGRhdGVEdW1teUlucHV0c1RpbWVvdXQiLCJnZXRJbnN0YW5jZUNvbnRleHQiLCJnZXRXaW5kb3ciLCJjdHgiLCJkaXNwb3NlSW5zdGFuY2VDb250ZXh0IiwiY3JlYXRlV2Vha01hcCIsImhhc1N1YkZvY3VzYWJsZSIsIkZha2VXZWFrUmVmIiwiZndyIiwiZm9yY2VSZW1vdmUiLCJkb2N1bWVudENvbnRhaW5zIiwiV2Vha0hUTUxFbGVtZW50IiwiY2xlYW51cEZha2VXZWFrUmVmcyIsInN0YXJ0RmFrZVdlYWtSZWZzQ2xlYW51cCIsImdldFdlYWtSZWYiLCJzdG9wRmFrZVdlYWtSZWZzQ2xlYW51cEFuZENsZWFyU3RvcmFnZSIsImNyZWF0ZUVsZW1lbnRUcmVlV2Fsa2VyIiwiYWNjZXB0Tm9kZSIsImdldEJvdW5kaW5nUmVjdCIsImNhY2hlSWQiLCJjYWNoZWQiLCJzY3JvbGxpbmdFbGVtZW50IiwicmVjdCIsImNJZCIsImlzRWxlbWVudFZlcnRpY2FsbHlWaXNpYmxlSW5Db250YWluZXIiLCJ0b2xlcmFuY2UiLCJnZXRTY3JvbGxhYmxlQ29udGFpbmVyIiwiY29udGFpbmVyUmVjdCIsImVsZW1lbnRSZWN0IiwiaW50ZXJzZWN0aW9uVG9sZXJhbmNlIiwidG9wSW50ZXJzZWN0aW9uIiwiYm90dG9tSW50ZXJzZWN0aW9uIiwidG90YWxJbnRlcnNlY3Rpb24iLCJzY3JvbGxJbnRvVmlldyIsImFsaWduVG9Ub3AiLCJtYWtlRm9jdXNJZ25vcmVkIiwic2hvdWxkSWdub3JlRm9jdXMiLCJnZXRVSWQiLCJ3bmQiLCJybmQiLCJzcm5kIiwiZ2V0RWxlbWVudFVJZCIsInVpZCIsImNsZWFyRWxlbWVudENhY2hlIiwid2VsIiwibWF0Y2hlc1NlbGVjdG9yIiwiZ2V0UHJvbWlzZSIsIl9sYXN0VGFic3RlclBhcnRJZCIsIlRhYnN0ZXJQYXJ0IiwiRHVtbXlJbnB1dCIsImlzT3V0c2lkZSIsImZpeGVkVGFyZ2V0IiwiaW5wdXQiLCJpc0luIiwiRHVtbXlJbnB1dE1hbmFnZXJQcmlvcml0aWVzIiwiRHVtbXlJbnB1dE1hbmFnZXIiLCJvdXRzaWRlQnlEZWZhdWx0IiwiY2FsbEZvckRlZmF1bHRBY3Rpb24iLCJEdW1teUlucHV0TWFuYWdlckNvcmUiLCJvbkZvY3VzT3V0IiwiYmFja3dhcmRzIiwicmVsYXRlZEV2ZW50IiwidGFiYmFibGUiLCJtb3ZlT3V0T2ZFbGVtZW50IiwiaXNCYWNrd2FyZCIsImluc2VydEJlZm9yZSIsInBvdGVudGlhbER1bW15IiwiZHVtbXlGb3IiLCJnZXREdW1teUlucHV0Q29udGFpbmVyIiwic291cmNlRWxlbWVudCIsInRhcmdldEVsZW1lbnQiLCJkdW1teVBhcmVudCIsIkR1bW15SW5wdXRPYnNlcnZlciIsImR1bW15RWxlbWVudCIsImR1bW15IiwiY29tcHV0ZSIsInNjcm9sbFRvcExlZnRDYWNoZSIsInNldFRvcExlZnRDYWxsYmFja3MiLCJzZXRUb3BMZWZ0IiwibWFuYWdlciIsImR1bW15SW5wdXQiLCJmaXJzdElucHV0IiwibGFzdElucHV0IiwidG9Gb2N1cyIsIndyYXBwZXIiLCJ0YWJJbmRleCIsInRyYW5zZm9ybUVsZW1lbnRzIiwibmV3VHJhbnNmb3JtRWxlbWVudHMiLCJzY3JvbGxUb3AiLCJzY3JvbGxMZWZ0Iiwic2Nyb2xsVG9wTGVmdCIsInRyYW5zZm9ybSIsImZvcmNlZER1bW15UG9zaXRpb24iLCJmb3JjZSIsImZpcnN0RHVtbXlJbnB1dCIsImxhc3REdW1teUlucHV0IiwiZWxlbWVudFBhcmVudCIsIm5leHRTaWJsaW5nIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJnZXRMYXN0Q2hpbGQkMiIsImxhc3RDaGlsZCIsImdldEFkamFjZW50RWxlbWVudCIsImFkamFjZW50IiwiYXVnbWVudEF0dHJpYnV0ZSIsInJldCIsIm9yaWdWYWwiLCJvcmlnVmFsdWUiLCJpc0Rpc3BsYXlOb25lIiwiZWxlbWVudERvY3VtZW50IiwiY29tcHV0ZWRTdHlsZSIsImlzUmFkaW8iLCJnZXRSYWRpb0J1dHRvbkdyb3VwIiwicmFkaW9CdXR0b25zIiwiY2hlY2tlZCIsImdldFRhYnN0ZXJBdHRyaWJ1dGUiLCJwbGFpbiIsIm1lcmdlVGFic3RlclByb3BzIiwibmV3UHJvcHMiLCJzZXRUYWJzdGVyQXR0cmlidXRlIiwidXBkYXRlIiwiUm9vdER1bW15TWFuYWdlciIsInNldEZvY3VzZWQiLCJSb290Iiwib25EaXNwb3NlIiwiaGFzRm9jdXNlZCIsInJvb3RFbGVtZW50IiwiY3VyRWxlbWVudCIsImR1bW15TWFuYWdlciIsIlJvb3RBUEkiLCJhdXRvUm9vdCIsImJvZHkiLCJyb290SWQiLCJuZXdSb290Iiwicm9vdHMiLCJjaGVja1J0bCIsIm1vZGFsaXplciIsImdyb3VwcGVyIiwibW92ZXIiLCJleGNsdWRlZEZyb21Nb3ZlciIsImdyb3VwcGVyQmVmb3JlTW92ZXIiLCJtb2RhbGl6ZXJJbkdyb3VwcGVyIiwiZGlyUmlnaHRUb0xlZnQiLCJ1bmNvbnRyb2xsZWQiLCJpZ25vcmVLZXlkb3duIiwiY3VyTW9kYWxpemVyIiwiY3VyR3JvdXBwZXIiLCJjdXJNb3ZlciIsInJvb3RBUEkiLCJyZW1vdmVkIiwiU3Vic2NyaWJhYmxlIiwiY2FsbGJhY2tzIiwiRm9jdXNhYmxlQVBJIiwiaW5jbHVkZVByb2dyYW1tYXRpY2FsbHlGb2N1c2FibGUiLCJub1Zpc2libGVDaGVjayIsIm5vQWNjZXNzaWJsZUNoZWNrIiwiYXR0clZhbCIsIm91dCIsImZvdW5kIiwiaXNGaW5kQWxsIiwiY3VycmVudEVsZW1lbnQiLCJ1c2VBY3RpdmVNb2RhbGl6ZXIiLCJpZ25vcmVBY2Nlc3NpYmlsaXR5IiwibW9kYWxpemVySWQiLCJvbkVsZW1lbnQiLCJlbGVtZW50cyIsImFjY2VwdENvbmRpdGlvbiIsImhhc0N1c3RvbUNvbmRpdGlvbiIsImFjY2VwdEVsZW1lbnRTdGF0ZSIsIndhbGtlciIsInByZXBhcmVGb3JOZXh0RWxlbWVudCIsInNob3VsZENvbnRpbnVlSWZOb3RGb3VuZCIsImZvdW5kRWxlbWVudCIsImZvdW5kQmFja3dhcmQiLCJmcm9tQ3R4IiwiZnJvbU1vdmVyIiwiZ3JvdXBwZXJFbGVtZW50IiwiZnJvbU1vdmVyRWxlbWVudCIsIm1vdmVyRWxlbWVudCIsInJhZGlvR3JvdXBOYW1lIiwicmFkaW9Hcm91cCIsIktleXMiLCJnZXRVbmNvbnRyb2xsZWRDb21wbGV0ZWx5Q29udGFpbmVyIiwidW5jb250cm9sbGVkT25FbGVtZW50IiwiQXN5bmNGb2N1c0ludGVudFByaW9yaXR5QnlTb3VyY2UiLCJGb2N1c2VkRWxlbWVudFN0YXRlIiwiY29udHJvbFRhYiIsIm5leHRFbGVtZW50IiwidW5jb250cm9sbGVkQ29tcGxldGVseUNvbnRhaW5lciIsIm5leHRVbmNvbnRyb2xsZWQiLCJsYXN0Q3R4IiwiYXN5bmNGb2N1cyIsIm5vRm9jdXNlZFByb2dyYW1tYXRpY2FsbHlGbGFnIiwicHJldlRhYkluZGV4IiwicHJldkFyaWFIaWRkZW4iLCJjdXJyZW50QXN5bmNGb2N1cyIsImlzRm9jdXNlZFByb2dyYW1tYXRpY2FsbHkiLCJsYXN0UmVzZXRFbGVtZW50IiwibmV4dFZhbCIsImFjdHVhbENvbnRhaW5lciIsImlzVGFiYmluZ1RpbWVyIiwiY2FsbEZpbmROZXh0Iiwid2hhdCIsInBhcmVudEVsZW1lbnQiLCJwYXJlbnRDdHgiLCJjdXJyZW50U2NvcGVFbGVtZW50IiwibmV3Q3VycmVudCIsImZpbmRQcm9wcyIsImZpbmRQcm9wc091dCIsIkdyb3VwcGVyRHVtbXlNYW5hZ2VyIiwiR3JvdXBwZXIiLCJjdXJyZW50SXNEdW1teSIsImdyb3VwcGVyRmlyc3RGb2N1c2FibGUiLCJvdXRPZkRPTU9yZGVyIiwiaXNUYWJiYWJsZSIsIm5vSWZGaXJzdElzRm9jdXNlZCIsImlzUGFyZW50QWN0aXZlIiwiZm9jdXNlZCIsIm9yQ29udGFpbmVyIiwiY2FjaGVkR3JvdXBwZXJzIiwicGFyZW50Q3R4R3JvdXBwZXIiLCJwYXJlbnRHcm91cHBlciIsInBhcmVudEdyb3VwcGVyRWxlbWVudCIsImdldElzQWN0aXZlIiwiR3JvdXBwZXJBUEkiLCJncm91cHBlcklkIiwibmV3R3JvdXBwZXIiLCJmb2N1c2VkRWxlbWVudCIsImluY2x1ZGVUYXJnZXQiLCJjaGVja1RhcmdldCIsIm5ld0lkcyIsImlzVGFyZ2V0IiwiZnJvbU1vZGFsaXplciIsIktleWJvYXJkTmF2aWdhdGlvblN0YXRlIiwiX3dhc0ZvY3VzZWRDb3VudGVyIiwiX2FyaWFIaWRkZW4iLCJNb2RhbGl6ZXJEdW1teU1hbmFnZXIiLCJkdW1teUNvbnRhaW5lciIsIk1vZGFsaXplciIsImFjdGl2ZUVsZW1lbnRzIiwibm9JbmNyZW1lbnQiLCJhbGxFbGVtZW50cyIsImRlZmF1bHRQcmV2ZW50ZWQiLCJldmVudERldGFpbCIsIk1vZGFsaXplckFQSSIsImFsd2F5c0FjY2Vzc2libGVTZWxlY3RvciIsImFjY2Vzc2libGVDaGVjayIsInVzZXJJZCIsImFjdGl2ZUlkIiwiZm9jdXNlZFNpbmNlIiwiYXVnbWVudGVkTWFwIiwiZWxlbWVudEZyb21Nb2RhbGl6ZXIiLCJub0ZvY3VzRmlyc3QiLCJub0ZvY3VzRGVmYXVsdCIsIm1vZGFsaXplclJvb3QiLCJtb2RhbGl6ZXJVc2VySWQiLCJjdXJyZW50TW9kYWxpemVyIiwicGFydHMiLCJ2aXNpYmxlRWxlbWVudHMiLCJoaWRkZW5FbGVtZW50cyIsImFsd2F5c0FjY2Vzc2libGVFbGVtZW50cyIsImFjdGl2ZU1vZGFsaXplckVsZW1lbnRzIiwibW9kYWxpemVyUGFydHMiLCJpc0Fsd2F5c0FjY2Vzc2libGUiLCJhbGxWaXNpYmxlRWxlbWVudHMiLCJuZXdBdWdtZW50ZWQiLCJuZXdBdWdtZW50ZWRNYXAiLCJ0b2dnbGUiLCJoaWRlIiwiaXNBdWdtZW50ZWQiLCJ3YWxrIiwic2tpcCIsImNvbnRhaW5zTW9kYWxpemVyIiwiY29udGFpbmVkQnlNb2RhbGl6ZXIiLCJlbFBhcmVudCIsIm91dHNpZGVFbGVtZW50Iiwib3duZXJEb2N1bWVudCIsIl9pbnB1dFNlbGVjdG9yIiwiTW92ZXJEdW1teU1hbmFnZXIiLCJnZXRNZW1vcml6ZWQiLCJtZW1vcml6ZWQiLCJfbW92ZXJVcGRhdGVBZGQiLCJfbW92ZXJVcGRhdGVBdHRyIiwiX21vdmVyVXBkYXRlUmVtb3ZlIiwiTW92ZXIiLCJuZXdWaXNpYmlsaXR5IiwiZnVsbHlWaXNpYmxlIiwiY2hhbmdlZCIsIndlYWsiLCJtZW1vcml6ZUN1cnJlbnQiLCJ2aXNpYmlsaXR5QXdhcmUiLCJoYXNEZWZhdWx0IiwidmlzaWJpbGl0eSIsInRhYnN0ZXJGb2N1c2FibGUiLCJ1cGRhdGVRdWV1ZSIsIm9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJhZGRlZCIsInJlcXVlc3RVcGRhdGUiLCJzZXRFbGVtZW50IiwicmVtb3ZlIiwidXBkYXRlRWxlbWVudCIsImlzRm9jdXNhYmxlIiwiYWRkTmV3RWxlbWVudHMiLCJnZXRNb3Zlckdyb3VwcGVyIiwicmVtb3ZlV2FsayIsInRvZSIsImdldERpc3RhbmNlIiwiYXgxIiwiYXkxIiwiYXgyIiwiYXkyIiwiYngxIiwiYnkxIiwiYngyIiwiYnkyIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwiTW92ZXJBUEkiLCJjdXJyZW50Rm9jdXNhYmxlRWxlbWVudCIsImRlZXBlc3RGb2N1c2FibGVFbGVtZW50IiwibW92ZXJLZXkiLCJtZW1vcml6ZWRFbGVtZW50IiwibW92ZXJJZCIsIm5ld01vdmVyIiwiZnJvbUVsZW1lbnQiLCJmb2N1c2FibGUiLCJtb3ZlclByb3BzIiwiZGlyZWN0aW9uIiwiaXNCb3RoIiwiaXNWZXJ0aWNhbCIsImlzSG9yaXpvbnRhbCIsImlzR3JpZExpbmVhciIsImlzR3JpZCIsImlzQ3ljbGljIiwic2Nyb2xsSW50b1ZpZXdBcmciLCJmb2N1c2VkRWxlbWVudFJlY3QiLCJmb2N1c2VkRWxlbWVudFgxIiwiZm9jdXNlZEVsZW1lbnRYMiIsIm5leHRFbGVtZW50WDEiLCJuZXh0RWxlbWVudFgyIiwiZmlyc3RDb2x1bW5YMSIsImxhc3RDb2x1bW5YMSIsImxhc3REaXN0YW5jZSIsImxhc3RJbnRlcnNlY3Rpb24iLCJ4SW50ZXJzZWN0aW9uV2lkdGgiLCJtaW5XaWR0aCIsImludGVyc2VjdGlvbiIsImRpc3RhbmNlIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJ0ZXh0TGVuZ3RoIiwiYXN5bmNSZXQiLCJzZWxlY3Rpb24iLCJpbml0aWFsTGVuZ3RoIiwic2VsU3RhcnQiLCJyZXNvbHZlIiwicHJldkFuY2hvck5vZGUiLCJwcmV2Rm9jdXNOb2RlIiwicHJldkFuY2hvck9mZnNldCIsInByZXZGb2N1c09mZnNldCIsImFuY2hvck5vZGUiLCJmb2N1c05vZGUiLCJhbmNob3JPZmZzZXQiLCJmb2N1c09mZnNldCIsImFuY2hvckZvdW5kIiwiYWRkT2Zmc2V0cyIsIm5vZGVUZXh0Iiwic3RvcCIsIm9ic2VydmVNdXRhdGlvbnMiLCJzeW5jU3RhdGUiLCJlbGVtZW50QnlVSWQiLCJvbk11dGF0aW9uIiwicmVtb3ZlZE5vZGVzIiwicmVtb3ZlZE5vZGUiLCJ1cGRhdGVUYWJzdGVyRWxlbWVudHMiLCJwcm9jZXNzTm9kZSIsIlVuY29udHJvbGxlZEFQSSIsImlzVW5jb250cm9sbGVkQ29tcGxldGVseSIsImNvbXBsZXRlbHkiLCJISVNPVFJZX0RFUFRIIiwiUmVzdG9yZXIiLCJSZXN0b3JlckFQSSIsInRhYnN0ZXJBdHRyaWJ1dGUiLCJ3ZWFrRWxlbWVudCIsInJlc3RvcmVyIiwiVGFic3RlciIsIlRhYnN0ZXJDb3JlIiwibm9SZWZDb3VudCIsImFsbEluc3RhbmNlcyIsIl9nIiwiX2giLCJhZGRyZW1vdmUiLCJzdG9yYWdlIiwicXVldWUiLCJjcmVhdGVUYWJzdGVyIiwiZ2V0Q3VycmVudFRhYnN0ZXIiLCJnZXRHcm91cHBlciIsInRhYnN0ZXJDb3JlIiwiZ2V0TW92ZXIiLCJnZXRNb2RhbGl6ZXIiLCJnZXRSZXN0b3JlciIsImRpc3Bvc2VUYWJzdGVyIiwidXNlVGFic3RlciIsImRlZmF1bHRWaWV3Iiwic2hhZG93RE9NQVBJIiwiX2VsZW1lbnRfZmlyc3RFbGVtZW50Q2hpbGQiLCJ1c2VUYWJzdGVyQXR0cmlidXRlcyIsInN0ckF0dHIiLCJ1c2VBcnJvd05hdmlnYXRpb25Hcm91cCIsImNpcmN1bGFyIiwiYXhpcyIsImlnbm9yZURlZmF1bHRLZXlkb3duIiwidW5zdGFibGVfaGFzRGVmYXVsdCIsImF4aXNUb01vdmVyRGlyZWN0aW9uIiwidXNlRm9jdXNhYmxlR3JvdXAiLCJnZXRUYWJiYWJpbGl0eSIsInRhYkJlaGF2aW9yIiwidXNlRm9jdXNGaW5kZXJzIiwiZmluZEFsbEZvY3VzYWJsZSIsImZpbmRGaXJzdEZvY3VzYWJsZSIsImZpbmRMYXN0Rm9jdXNhYmxlIiwiZmluZE5leHRGb2N1c2FibGUiLCJmaW5kUHJldkZvY3VzYWJsZSIsIkZPQ1VTX1ZJU0lCTEVfQVRUUiIsIkZPQ1VTX1dJVEhJTl9BVFRSIiwiYXBwbHlGb2N1c1Zpc2libGVQb2x5ZmlsbCIsInNjb3BlIiwidGFyZ2V0V2luZG93IiwiYWxyZWFkeUluU2NvcGUiLCJrZXlib3JnIiwicmVnaXN0ZXJFbGVtZW50SWZOYXZpZ2F0aW5nIiwiZGlzcG9zZUN1cnJlbnRFbGVtZW50Iiwia2V5Ym9yZ0xpc3RlbmVyIiwiYmx1ckxpc3RlbmVyIiwidXNlRm9jdXNWaXNpYmxlIiwic2NvcGVSZWYiLCJfb3B0aW9uc190YXJnZXREb2N1bWVudCIsImFwcGx5Rm9jdXNXaXRoaW5Qb2x5ZmlsbCIsInJlbW92ZUZvY3VzV2l0aGluQ2xhc3MiLCJhcHBseUZvY3VzV2l0aGluQ2xhc3MiLCJ1c2VGb2N1c1dpdGhpbiIsImVsZW1lbnRSZWYiLCJ1c2VLZXlib3JnUmVmIiwia2V5Ym9yZ1JlZiIsInVzZU9uS2V5Ym9hcmROYXZpZ2F0aW9uQ2hhbmdlIiwiZXZlbnRDYWxsYmFjayIsInVzZU1vZGFsQXR0cmlidXRlcyIsInRyYXBGb2N1cyIsImFsd2F5c0ZvY3VzYWJsZSIsImxlZ2FjeVRyYXBGb2N1cyIsIm1vZGFsQXR0cmlidXRlcyIsInRyaWdnZXJBdHRyaWJ1dGVzIiwidXNlUmVzdG9yZUZvY3VzVGFyZ2V0IiwidXNlUmVzdG9yZUZvY3VzU291cmNlIiwidXNlU2V0S2V5Ym9hcmROYXZpZ2F0aW9uIiwiX2tleWJvcmdSZWZfY3VycmVudCIsInVzZUZvY3VzZWRFbGVtZW50Q2hhbmdlIiwiZ3JleSIsIndoaXRlQWxwaGEiLCJibGFja0FscGhhIiwid2hpdGUiLCJibGFjayIsImRhcmtSZWQiLCJjcmFuYmVycnkiLCJyZWQiLCJkYXJrT3JhbmdlIiwicHVtcGtpbiIsIm9yYW5nZSIsInBlYWNoIiwibWFyaWdvbGQiLCJ5ZWxsb3ciLCJnb2xkIiwiYnJhc3MiLCJicm93biIsImZvcmVzdCIsInNlYWZvYW0iLCJsaWdodEdyZWVuIiwiZ3JlZW4iLCJkYXJrR3JlZW4iLCJsaWdodFRlYWwiLCJ0ZWFsIiwic3RlZWwiLCJibHVlIiwicm95YWxCbHVlIiwiY29ybmZsb3dlciIsIm5hdnkiLCJsYXZlbmRlciIsInB1cnBsZSIsImdyYXBlIiwiYmVycnkiLCJsaWxhYyIsInBpbmsiLCJtYWdlbnRhIiwicGx1bSIsImJlaWdlIiwibWluayIsInBsYXRpbnVtIiwiYW5jaG9yIiwic3RhdHVzU2hhcmVkQ29sb3JzIiwicGVyc29uYVNoYXJlZENvbG9ycyIsIm1hcHBlZFN0YXR1c0NvbG9ycyIsInN0YXR1c1NoYXJlZENvbG9yTmFtZXMiLCJwZXJzb25hU2hhcmVkQ29sb3JOYW1lcyIsInN0YXR1c0NvbG9yTWFwcGluZyIsInN0YXR1c0NvbG9yUGFsZXR0ZVRva2VucyIsInNoYXJlZENvbG9yIiwiY29sb3IiLCJzaGFyZWRDb2xvclRva2VucyIsInBlcnNvbmFDb2xvclBhbGV0dGVUb2tlbnMiLCJjb2xvclBhbGV0dGVUb2tlbnMiLCJjb2xvclN0YXR1c1Rva2VucyIsInN0YXR1c0NvbG9yIiwic3RhdHVzQ29sb3JUb2tlbnMiLCJnZW5lcmF0ZUNvbG9yVG9rZW5zIiwiYnJhbmQiLCJjdXJ2ZXMiLCJkdXJhdGlvbnMiLCJmb250U2l6ZXMiLCJsaW5lSGVpZ2h0cyIsImZvbnRXZWlnaHRzIiwiZm9udEZhbWlsaWVzIiwic3BhY2luZ3MiLCJob3Jpem9udGFsU3BhY2luZ3MiLCJ2ZXJ0aWNhbFNwYWNpbmdzIiwic3Ryb2tlV2lkdGhzIiwidG9rZW5zIiwiY3JlYXRlU2hhZG93VG9rZW5zIiwiYW1iaWVudENvbG9yIiwia2V5Q29sb3IiLCJ0b2tlblN1ZmZpeCIsImNyZWF0ZUxpZ2h0VGhlbWUiLCJjb2xvclRva2VucyIsImZsdWVudFByb3ZpZGVyQ2xhc3NOYW1lcyIsInVzZVN0eWxlcyIsInVzZUZsdWVudFByb3ZpZGVyU3R5bGVzX3Vuc3RhYmxlIiwidXNlUmVuZGVyZXJfdW5zdGFibGUiLCJSZWFjdFtcInVzZUluc2VydGlvbkVmZmVjdFwiXSIsImNyZWF0ZVN0eWxlVGFnIiwiaW5zZXJ0U2hlZXQiLCJ1c2VGbHVlbnRQcm92aWRlclRoZW1lU3R5bGVUYWciLCJyZW5kZXJlckF0dHJpYnV0ZXMiLCJzdHlsZVRhZyIsInN0eWxlVGFnSWQiLCJ1c2VIYW5kbGVTU1JTdHlsZUVsZW1lbnRzIiwic3NyU3R5bGVFbGVtZW50IiwiX3N0eWxlVGFnX2N1cnJlbnQiLCJ0aGVtZVN0eWxlRWxlbWVudCIsIkRFRkFVTFRfU1RZTEVfSE9PS1MiLCJERUZBVUxUX1JFTkRFUkVSX0FUVFJJQlVURVMiLCJ1c2VGbHVlbnRQcm92aWRlcl91bnN0YWJsZSIsInBhcmVudENvbnRleHQiLCJwYXJlbnRUaGVtZSIsInVzZVRoZW1lIiwicGFyZW50T3ZlcnJpZGVzIiwicGFyZW50Q3VzdG9tU3R5bGVIb29rcyIsImFwcGx5U3R5bGVzVG9Qb3J0YWxzIiwiY3VzdG9tU3R5bGVIb29rc191bnN0YWJsZSIsIm92ZXJyaWRlcyIsIm1lcmdlZFRoZW1lIiwic2hhbGxvd01lcmdlIiwibWVyZ2VkT3ZlcnJpZGVzIiwibWVyZ2VkQ3VzdG9tU3R5bGVIb29rcyIsIl9yZW5kZXJlcl9zdHlsZUVsZW1lbnRBdHRyaWJ1dGVzIiwic2xvdC5hbHdheXMiLCJ1c2VGbHVlbnRQcm92aWRlckNvbnRleHRWYWx1ZXNfdW5zdGFibGUiLCJ0aGVtZUNsYXNzTmFtZSIsIm92ZXJyaWRlc191bnN0YWJsZSIsInByb3ZpZGVyIiwidG9vbHRpcCIsImljb25EaXJlY3Rpb24iLCJGbHVlbnRQcm92aWRlciIsIlJlYWN0LmZvcndhcmRSZWYiLCJjcmVhdGVQcm92aWRlciIsIk9yaWdpbmFsIiwidmFsdWVSZWYiLCJ2ZXJzaW9uUmVmIiwicnVuV2l0aFByaW9yaXR5IiwiTm9ybWFsUHJpb3JpdHkiLCJ1c2VDb250ZXh0U2VsZWN0b3IiLCJ2ZXJzaW9uIiwicGF5bG9hZCIsInByZXZTdGF0ZSIsIm5leHRTZWxlY3RlZCIsInN0YWJsZURpc3BhdGNoIiwidXNlSGFzUGFyZW50Q29udGV4dCIsIlNoaWZ0IiwiRW50ZXIiLCJTcGFjZSIsIlRhYiIsIkFycm93RG93biIsIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiRW5kIiwiSG9tZSIsIlBhZ2VEb3duIiwiUGFnZVVwIiwiQmFja3NwYWNlIiwiRXNjYXBlIiwidXNlQVJJQUJ1dHRvblByb3BzIiwiZGlzYWJsZWRGb2N1c2FibGUiLCJhcmlhRGlzYWJsZWQiLCJvbktleURvd24iLCJvbktleVVwIiwibm9ybWFsaXplZEFSSUFEaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJoYW5kbGVLZXlEb3duIiwiaGFuZGxlS2V5VXAiLCJyZXN1bHRQcm9wcyIsImFjdGl2ZURlc2NlbmRhbnRDb250ZXh0RGVmYXVsdFZhbHVlIiwiQWN0aXZlRGVzY2VuZGFudENvbnRleHQiLCJBY3RpdmVEZXNjZW5kYW50Q29udGV4dFByb3ZpZGVyIiwidXNlQWN0aXZlRGVzY2VuZGFudENvbnRleHQiLCJ1c2VIYXNQYXJlbnRBY3RpdmVEZXNjZW5kYW50Q29udGV4dCIsInVzZU9wdGlvbldhbGtlciIsIm1hdGNoT3B0aW9uIiwidHJlZVdhbGtlclJlZiIsImxpc3Rib3hSZWYiLCJvcHRpb25GaWx0ZXIiLCJzZXRMaXN0Ym94IiwicHJlZGljYXRlIiwic3RhcnRGcm9tIiwiQUNUSVZFREVTQ0VOREFOVF9BVFRSSUJVVEUiLCJBQ1RJVkVERVNDRU5EQU5UX0ZPQ1VTVklTSUJMRV9BVFRSSUJVVEUiLCJzY3JvbGxQYXJlbnQiLCJmaW5kU2Nyb2xsYWJsZVBhcmVudCIsIm9mZnNldEhlaWdodCIsIm9mZnNldFRvcCIsImdldFRvdGFsT2Zmc2V0VG9wIiwic2Nyb2xsTWFyZ2luVG9wIiwic2Nyb2xsTWFyZ2luQm90dG9tIiwiZ2V0U2Nyb2xsTWFyZ2lucyIsInBhcmVudE9mZnNldEhlaWdodCIsImlzQWJvdmUiLCJpc0JlbG93IiwiYnVmZmVyIiwiX2VsZW1lbnRfb3duZXJEb2N1bWVudCIsImNvbXB1dGVkU3R5bGVzIiwiX2dldEludFZhbHVlT2ZDb21wdXRlZFN0eWxlIiwiZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGUiLCJfZ2V0SW50VmFsdWVPZkNvbXB1dGVkU3R5bGUxIiwiY3JlYXRlQWN0aXZlRGVzY2VuZGFudENoYW5nZUV2ZW50IiwidXNlQWN0aXZlRGVzY2VuZGFudCIsImltcGVyYXRpdmVSZWYiLCJtYXRjaE9wdGlvblVuc3RhYmxlIiwiZm9jdXNWaXNpYmxlUmVmIiwic2hvdWxkU2hvd0ZvY3VzVmlzaWJsZUF0dHJSZWYiLCJhY3RpdmVJZFJlZiIsImxhc3RBY3RpdmVJZFJlZiIsImFjdGl2ZVBhcmVudFJlZiIsImF0dHJpYnV0ZVZpc2liaWxpdHlSZWYiLCJyZW1vdmVBdHRyaWJ1dGUiLCJfYWN0aXZlUGFyZW50UmVmX2N1cnJlbnQiLCJzZXRBdHRyaWJ1dGUiLCJhY3RpdmUiLCJnZXRBY3RpdmVEZXNjZW5kYW50Iiwib3B0aW9uV2Fsa2VyIiwibGlzdGJveENhbGxiYWNrUmVmIiwiX2xpc3Rib3hSZWZfY3VycmVudCIsInNldFNob3VsZFNob3dGb2N1c1Zpc2libGVBdHRyaWJ1dGUiLCJzaG91bGRTaG93IiwiYmx1ckFjdGl2ZURlc2NlbmRhbnQiLCJfYWN0aXZlX2lkIiwiZm9jdXNBY3RpdmVEZXNjZW5kYW50IiwibmV4dEFjdGl2ZSIsInByZXZpb3VzQWN0aXZlSWQiLCJjb250cm9sbGVyIiwicGFzc2l2ZSIsIl9nZXRBY3RpdmVEZXNjZW5kYW50IiwiUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZSIsInVzZVJvb3RTdHlsZXMiLCJ1c2VJY29uU3RhdGUiLCJwcmltYXJ5RmlsbCIsImljb25Db250ZXh0IiwiY3JlYXRlRmx1ZW50SWNvbiIsImRpc3BsYXlOYW1lIiwidmlld0JveFdpZHRoIiwiSWNvbiIsIkFycm93RG93blJlZ3VsYXIiLCJBcnJvd1VwUmVndWxhciIsIkNhbGVuZGFyTW9udGhSZWd1bGFyIiwiQ2hlY2ttYXJrRmlsbGVkIiwiQ2hlY2ttYXJrQ2lyY2xlRmlsbGVkIiwiQ2hldnJvbkRvd25SZWd1bGFyIiwiQ2lyY2xlRmlsbGVkIiwiRGlzbWlzc0ZpbGxlZCIsIkRpc21pc3NSZWd1bGFyIiwiRGlzbWlzc0NpcmNsZUZpbGxlZCIsIkluZm9GaWxsZWQiLCJQZXJzb25SZWd1bGFyIiwiV2FybmluZ0ZpbGxlZCIsIkFycm93Rm9yd2FyZERvd25QZXJzb24yNFJlZ3VsYXIiLCJDaGVja21hcmsxMkZpbGxlZCIsIkNoZWNrbWFyazE2RmlsbGVkIiwiQ2hlY2ttYXJrQ2lyY2xlMjRSZWd1bGFyIiwiQ2hldnJvbkRvd24yMFJlZ3VsYXIiLCJDaGV2cm9uUmlnaHQxMlJlZ3VsYXIiLCJDaGV2cm9uUmlnaHQyMFJlZ3VsYXIiLCJEaXNtaXNzMjBSZWd1bGFyIiwiRGlzbWlzczI0UmVndWxhciIsIkV4cGFuZFVwUmlnaHQyNFJlZ3VsYXIiLCJGaWx0ZXIyMFJlZ3VsYXIiLCJQcmVzZW5jZUF2YWlsYWJsZTEwRmlsbGVkIiwiUHJlc2VuY2VBdmFpbGFibGUxMFJlZ3VsYXIiLCJQcmVzZW5jZUF2YWlsYWJsZTEyRmlsbGVkIiwiUHJlc2VuY2VBdmFpbGFibGUxMlJlZ3VsYXIiLCJQcmVzZW5jZUF2YWlsYWJsZTE2RmlsbGVkIiwiUHJlc2VuY2VBdmFpbGFibGUxNlJlZ3VsYXIiLCJQcmVzZW5jZUF2YWlsYWJsZTIwRmlsbGVkIiwiUHJlc2VuY2VBdmFpbGFibGUyMFJlZ3VsYXIiLCJQcmVzZW5jZUF3YXkxMEZpbGxlZCIsIlByZXNlbmNlQXdheTEyRmlsbGVkIiwiUHJlc2VuY2VBd2F5MTZGaWxsZWQiLCJQcmVzZW5jZUF3YXkyMEZpbGxlZCIsIlByZXNlbmNlQmxvY2tlZDEwUmVndWxhciIsIlByZXNlbmNlQmxvY2tlZDEyUmVndWxhciIsIlByZXNlbmNlQmxvY2tlZDE2UmVndWxhciIsIlByZXNlbmNlQmxvY2tlZDIwUmVndWxhciIsIlByZXNlbmNlQnVzeTEwRmlsbGVkIiwiUHJlc2VuY2VCdXN5MTJGaWxsZWQiLCJQcmVzZW5jZUJ1c3kxNkZpbGxlZCIsIlByZXNlbmNlQnVzeTIwRmlsbGVkIiwiUHJlc2VuY2VEbmQxMEZpbGxlZCIsIlByZXNlbmNlRG5kMTBSZWd1bGFyIiwiUHJlc2VuY2VEbmQxMkZpbGxlZCIsIlByZXNlbmNlRG5kMTJSZWd1bGFyIiwiUHJlc2VuY2VEbmQxNkZpbGxlZCIsIlByZXNlbmNlRG5kMTZSZWd1bGFyIiwiUHJlc2VuY2VEbmQyMEZpbGxlZCIsIlByZXNlbmNlRG5kMjBSZWd1bGFyIiwiUHJlc2VuY2VPZmZsaW5lMTBSZWd1bGFyIiwiUHJlc2VuY2VPZmZsaW5lMTJSZWd1bGFyIiwiUHJlc2VuY2VPZmZsaW5lMTZSZWd1bGFyIiwiUHJlc2VuY2VPZmZsaW5lMjBSZWd1bGFyIiwiUHJlc2VuY2VPb2YxMFJlZ3VsYXIiLCJQcmVzZW5jZU9vZjEyUmVndWxhciIsIlByZXNlbmNlT29mMTZSZWd1bGFyIiwiUHJlc2VuY2VPb2YyMFJlZ3VsYXIiLCJQcmVzZW5jZVVua25vd24xMFJlZ3VsYXIiLCJQcmVzZW5jZVVua25vd24xMlJlZ3VsYXIiLCJQcmVzZW5jZVVua25vd24xNlJlZ3VsYXIiLCJQcmVzZW5jZVVua25vd24yMFJlZ3VsYXIiLCJTcXVhcmUxMkZpbGxlZCIsIlNxdWFyZTE2RmlsbGVkIiwiaWNvbkZpbGxlZENsYXNzTmFtZSIsImljb25SZWd1bGFyQ2xhc3NOYW1lIiwidXNlQnVuZGxlZEljb25TdHlsZXMiLCJidW5kbGVJY29uIiwiRmlsbGVkSWNvbiIsIlJlZ3VsYXJJY29uIiwiQ29tcG9uZW50IiwiZmlsbGVkIiwibW90aW9uVG9rZW5zIiwidXNlQW5pbWF0ZUF0b21zSW5TdXBwb3J0ZWRFbnZpcm9ubWVudCIsImF0b21zIiwiaXNSZWR1Y2VkTW90aW9uIiwiYW5pbWF0aW9ucyIsIm1vdGlvbiIsImtleWZyYW1lcyIsImFuaW1hdGlvbiIsInJhdGUiLCJvbmZpbmlzaCIsIm9uY2FuY2VsIiwiX2VsZW1lbnRfb3duZXJEb2N1bWVudF9kZWZhdWx0VmlldyIsIkRPTUV4Y2VwdGlvbiIsInVzZUFuaW1hdGVBdG9tcyIsInVzZU1vdGlvbkltcGVyYXRpdmVSZWYiLCJhbmltYXRpb25SZWYiLCJfYW5pbWF0aW9uUmVmX2N1cnJlbnQiLCJfYW5pbWF0aW9uUmVmX2N1cnJlbnQxIiwiUkVEVUNFRF9NRURJQV9RVUVSWSIsInVzZUlzUmVkdWNlZE1vdGlvbiIsInF1ZXJ5VmFsdWUiLCJpc0VuYWJsZWQiLCJxdWVyeU1hdGNoIiwibWF0Y2hMaXN0ZW5lciIsImdldENoaWxkRWxlbWVudCIsIlJlYWN0LkNoaWxkcmVuIiwiUmVhY3RJcy5pc0ZvcndhcmRSZWYiLCJQcmVzZW5jZUdyb3VwQ2hpbGRDb250ZXh0IiwidXNlTW91bnRlZFN0YXRlIiwidmlzaWJsZSIsInVubW91bnRPbkV4aXQiLCJtb3VudGVkUmVmIiwiZm9yY2VVcGRhdGUiLCJzZXRNb3VudGVkIiwiTU9USU9OX0RFRklOSVRJT04iLCJzaG91bGRTa2lwQW5pbWF0aW9uIiwiYXBwZWFyIiwiaXNGaXJzdE1vdW50IiwiY3JlYXRlUHJlc2VuY2VDb21wb25lbnQiLCJtZXJnZWQiLCJvbkV4aXQiLCJvbk1vdGlvbkZpbmlzaCIsIm9uTW90aW9uU3RhcnQiLCJvbk1vdGlvbkNhbmNlbCIsIl9yZXN0IiwibW91bnRlZCIsImhhbmRsZVJlZiIsIm9wdGlvbnNSZWYiLCJhbmltYXRlQXRvbXMiLCJoYW5kbGVNb3Rpb25TdGFydCIsImhhbmRsZU1vdGlvbkZpbmlzaCIsImhhbmRsZU1vdGlvbkNhbmNlbCIsInByZXNlbmNlTW90aW9uIiwiZm9yY2VGaW5pc2hNb3Rpb24iLCJvdmVycmlkZVByZXNlbmNlTW90aW9uIiwib3ZlcnJpZGUiLCJlbnRlciIsImV4aXQiLCJjcmVhdGVQcmVzZW5jZUNvbXBvbmVudFZhcmlhbnQiLCJjb21wb25lbnQiLCJfZGVmaW5lX3Byb3BlcnR5IiwicHJlc2VuY2VNb3Rpb25TbG90IiwiaXNVbm1vdW50ZWQiLCJyZW5kZXJGbiIsImNvbGxhcHNlTW90aW9uIiwiYW5pbWF0ZU9wYWNpdHkiLCJmcm9tT3BhY2l0eSIsInRvT3BhY2l0eSIsImZyb21IZWlnaHQiLCJ0b0hlaWdodCIsImVhc2luZyIsIkNvbGxhcHNlIiwicmVuZGVyQXZhdGFyX3Vuc3RhYmxlIiwiVU5XQU5URURfRU5DTE9TVVJFU19SRUdFWCIsIlVOV0FOVEVEX0NIQVJTX1JFR0VYIiwiUEhPTkVOVU1CRVJfUkVHRVgiLCJNVUxUSVBMRV9XSElURVNQQUNFU19SRUdFWCIsIlVOU1VQUE9SVEVEX1RFWFRfUkVHRVgiLCJnZXRJbml0aWFsc0xhdGluIiwiZmlyc3RJbml0aWFsT25seSIsImluaXRpYWxzIiwic3BsaXRzIiwiY2xlYW51cERpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbHMiLCJ1c2VCYWRnZV91bnN0YWJsZSIsInNoYXBlIiwiaWNvblBvc2l0aW9uIiwiYXBwZWFyYW5jZSIsInNsb3Qub3B0aW9uYWwiLCJyZW5kZXJCYWRnZV91bnN0YWJsZSIsInByZXNlbmNlQXdheUZpbGxlZCIsInByZXNlbmNlQXZhaWxhYmxlUmVndWxhciIsInByZXNlbmNlQXZhaWxhYmxlRmlsbGVkIiwicHJlc2VuY2VCbG9ja2VkUmVndWxhciIsInByZXNlbmNlQnVzeUZpbGxlZCIsInByZXNlbmNlRG5kRmlsbGVkIiwicHJlc2VuY2VEbmRSZWd1bGFyIiwicHJlc2VuY2VPb2ZSZWd1bGFyIiwicHJlc2VuY2VPZmZsaW5lUmVndWxhciIsInByZXNlbmNlVW5rbm93blJlZ3VsYXIiLCJpY29uTWFwIiwic3RhdHVzIiwib3V0T2ZPZmZpY2UiLCJERUZBVUxUX1NUUklOR1MiLCJ1c2VQcmVzZW5jZUJhZGdlX3Vuc3RhYmxlIiwic3RhdHVzVGV4dCIsIm9vZlRleHQiLCJJY29uRWxlbWVudCIsInByZXNlbmNlQmFkZ2VDbGFzc05hbWVzIiwiZ2V0SXNCdXN5IiwidXNlUm9vdENsYXNzTmFtZSIsInVzZUljb25DbGFzc05hbWUiLCJ1c2VQcmVzZW5jZUJhZGdlU3R5bGVzX3Vuc3RhYmxlIiwicm9vdENsYXNzTmFtZSIsImljb25DbGFzc05hbWUiLCJpc0J1c3kiLCJQcmVzZW5jZUJhZGdlIiwidXNlQ3VzdG9tU3R5bGVIb29rX3Vuc3RhYmxlIiwiYXZhdGFyQ29udGV4dCIsImF2YXRhckNvbnRleHREZWZhdWx0VmFsdWUiLCJBdmF0YXJDb250ZXh0UHJvdmlkZXIiLCJ1c2VBdmF0YXJDb250ZXh0IiwidXNlQXZhdGFyX3Vuc3RhYmxlIiwiY29udGV4dFNoYXBlIiwiY29udGV4dFNpemUiLCJhY3RpdmVBcHBlYXJhbmNlIiwiaWRGb3JDb2xvciIsImF2YXRhckNvbG9ycyIsImdldEhhc2hDb2RlIiwiYmFzZUlkIiwiaW1hZ2VIaWRkZW4iLCJzZXRJbWFnZUhpZGRlbiIsImltYWdlIiwiaWNvbiIsImJhZGdlIiwiZ2V0QmFkZ2VTaXplIiwiYWN0aXZlQXJpYUxhYmVsRWxlbWVudCIsImFjdGl2ZVRleHQiLCJoYXNoQ29kZSIsInNoaWZ0IiwiYXZhdGFyQ2xhc3NOYW1lcyIsInVzZUltYWdlQ2xhc3NOYW1lIiwidXNlSWNvbkluaXRpYWxzQ2xhc3NOYW1lIiwidXNlU2l6ZVN0eWxlcyIsInVzZUNvbG9yU3R5bGVzIiwidXNlUmluZ0NvbG9yU3R5bGVzIiwidXNlQXZhdGFyU3R5bGVzX3Vuc3RhYmxlIiwiaW1hZ2VDbGFzc05hbWUiLCJpY29uSW5pdGlhbHNDbGFzc05hbWUiLCJzaXplU3R5bGVzIiwiY29sb3JTdHlsZXMiLCJyaW5nQ29sb3JTdHlsZXMiLCJyb290Q2xhc3NlcyIsImljb25TaXplQ2xhc3MiLCJBdmF0YXIiLCJjcmVhdGVWaXJ0dWFsRWxlbWVudEZyb21DbGljayIsIm5hdGl2ZUV2ZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiREFUQV9QT1NJVElPTklOR19JTlRFUlNFQ1RJTkciLCJEQVRBX1BPU0lUSU9OSU5HX0VTQ0FQRUQiLCJEQVRBX1BPU0lUSU9OSU5HX0hJRERFTiIsIkRBVEFfUE9TSVRJT05JTkdfUExBQ0VNRU5UIiwiUE9TSVRJT05JTkdfRU5EX0VWRU5UIiwic2lkZXMiLCJtaW4iLCJtYXgiLCJyb3VuZCIsImNyZWF0ZUNvb3JkcyIsIm9wcG9zaXRlU2lkZU1hcCIsIm9wcG9zaXRlQWxpZ25tZW50TWFwIiwiZXZhbHVhdGUiLCJwYXJhbSIsImdldFNpZGUiLCJwbGFjZW1lbnQiLCJnZXRBbGlnbm1lbnQiLCJnZXRPcHBvc2l0ZUF4aXMiLCJnZXRBeGlzTGVuZ3RoIiwiZ2V0U2lkZUF4aXMiLCJnZXRBbGlnbm1lbnRBeGlzIiwiZ2V0QWxpZ25tZW50U2lkZXMiLCJyZWN0cyIsInJ0bCIsImFsaWdubWVudCIsImFsaWdubWVudEF4aXMiLCJtYWluQWxpZ25tZW50U2lkZSIsImdldE9wcG9zaXRlUGxhY2VtZW50IiwiZ2V0RXhwYW5kZWRQbGFjZW1lbnRzIiwib3Bwb3NpdGVQbGFjZW1lbnQiLCJnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudCIsImdldFNpZGVMaXN0Iiwic2lkZSIsImlzU3RhcnQiLCJsciIsImJ0IiwiZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyIsImZsaXBBbGlnbm1lbnQiLCJleHBhbmRQYWRkaW5nT2JqZWN0IiwiZ2V0UGFkZGluZ09iamVjdCIsInJlY3RUb0NsaWVudFJlY3QiLCJjb21wdXRlQ29vcmRzRnJvbVBsYWNlbWVudCIsImZsb2F0aW5nIiwic2lkZUF4aXMiLCJhbGlnbkxlbmd0aCIsImNvbW1vblgiLCJjb21tb25ZIiwiY29tbW9uQWxpZ24iLCJjb29yZHMiLCJjb21wdXRlUG9zaXRpb24iLCJjb25maWciLCJzdHJhdGVneSIsInBsYXRmb3JtIiwidmFsaWRNaWRkbGV3YXJlIiwic3RhdGVmdWxQbGFjZW1lbnQiLCJtaWRkbGV3YXJlRGF0YSIsInJlc2V0Q291bnQiLCJuZXh0WCIsIm5leHRZIiwicmVzZXQiLCJkZXRlY3RPdmVyZmxvdyIsIl9hd2FpdCRwbGF0Zm9ybSRpc0VsZSIsImJvdW5kYXJ5Iiwicm9vdEJvdW5kYXJ5IiwiZWxlbWVudENvbnRleHQiLCJhbHRCb3VuZGFyeSIsInBhZGRpbmdPYmplY3QiLCJjbGlwcGluZ0NsaWVudFJlY3QiLCJvZmZzZXRQYXJlbnQiLCJvZmZzZXRTY2FsZSIsImVsZW1lbnRDbGllbnRSZWN0IiwiYXJyb3ciLCJhcnJvd0RpbWVuc2lvbnMiLCJpc1lBeGlzIiwibWluUHJvcCIsIm1heFByb3AiLCJjbGllbnRQcm9wIiwiZW5kRGlmZiIsInN0YXJ0RGlmZiIsImFycm93T2Zmc2V0UGFyZW50IiwiY2xpZW50U2l6ZSIsImNlbnRlclRvUmVmZXJlbmNlIiwibGFyZ2VzdFBvc3NpYmxlUGFkZGluZyIsIm1pblBhZGRpbmciLCJtYXhQYWRkaW5nIiwibWluJDEiLCJjZW50ZXIiLCJzaG91bGRBZGRPZmZzZXQiLCJhbGlnbm1lbnRPZmZzZXQiLCJmbGlwIiwiX21pZGRsZXdhcmVEYXRhJGFycm93IiwiX21pZGRsZXdhcmVEYXRhJGZsaXAiLCJpbml0aWFsUGxhY2VtZW50IiwiY2hlY2tNYWluQXhpcyIsImNoZWNrQ3Jvc3NBeGlzIiwic3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIiwiZmFsbGJhY2tTdHJhdGVneSIsImZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24iLCJkZXRlY3RPdmVyZmxvd09wdGlvbnMiLCJpbml0aWFsU2lkZUF4aXMiLCJpc0Jhc2VQbGFjZW1lbnQiLCJmYWxsYmFja1BsYWNlbWVudHMiLCJoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uIiwicGxhY2VtZW50cyIsIm92ZXJmbG93cyIsIm92ZXJmbG93c0RhdGEiLCJfbWlkZGxld2FyZURhdGEkZmxpcDIiLCJfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIiLCJuZXh0UGxhY2VtZW50IiwicmVzZXRQbGFjZW1lbnQiLCJfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIyIiwiY3VycmVudFNpZGVBeGlzIiwiZ2V0U2lkZU9mZnNldHMiLCJpc0FueVNpZGVGdWxseUNsaXBwZWQiLCJvZmZzZXRzIiwiY29udmVydFZhbHVlVG9Db29yZHMiLCJtYWluQXhpc011bHRpIiwiY3Jvc3NBeGlzTXVsdGkiLCJyYXdWYWx1ZSIsIm1haW5BeGlzIiwiY3Jvc3NBeGlzIiwiX21pZGRsZXdhcmVEYXRhJG9mZnNlIiwiZGlmZkNvb3JkcyIsImxpbWl0ZXIiLCJtYWluQXhpc0Nvb3JkIiwiY3Jvc3NBeGlzQ29vcmQiLCJtaW5TaWRlIiwibWF4U2lkZSIsImxpbWl0ZWRDb29yZHMiLCJsaW1pdFNoaWZ0IiwicmF3T2Zmc2V0IiwiY29tcHV0ZWRPZmZzZXQiLCJsaW1pdE1pbiIsImxpbWl0TWF4IiwiX21pZGRsZXdhcmVEYXRhJG9mZnNlMiIsImlzT3JpZ2luU2lkZSIsImFwcGx5IiwiaGVpZ2h0U2lkZSIsIndpZHRoU2lkZSIsIm1heGltdW1DbGlwcGluZ0hlaWdodCIsIm1heGltdW1DbGlwcGluZ1dpZHRoIiwib3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQiLCJvdmVyZmxvd0F2YWlsYWJsZVdpZHRoIiwibm9TaGlmdCIsImF2YWlsYWJsZUhlaWdodCIsImF2YWlsYWJsZVdpZHRoIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsIm5leHREaW1lbnNpb25zIiwiZ2V0Tm9kZU5hbWUiLCJpc05vZGUiLCJfbm9kZSRvd25lckRvY3VtZW50IiwiZ2V0RG9jdW1lbnRFbGVtZW50IiwiaXNFbGVtZW50IiwiaXNTaGFkb3dSb290IiwiaXNPdmVyZmxvd0VsZW1lbnQiLCJkaXNwbGF5IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImlzVGFibGVFbGVtZW50IiwiaXNUb3BMYXllciIsImlzQ29udGFpbmluZ0Jsb2NrIiwiZWxlbWVudE9yQ3NzIiwid2Via2l0IiwiaXNXZWJLaXQiLCJnZXRDb250YWluaW5nQmxvY2siLCJjdXJyZW50Tm9kZSIsImdldFBhcmVudE5vZGUiLCJpc0xhc3RUcmF2ZXJzYWJsZU5vZGUiLCJnZXROb2RlU2Nyb2xsIiwiZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IiLCJwYXJlbnROb2RlIiwiZ2V0T3ZlcmZsb3dBbmNlc3RvcnMiLCJ0cmF2ZXJzZUlmcmFtZXMiLCJfbm9kZSRvd25lckRvY3VtZW50MiIsInNjcm9sbGFibGVBbmNlc3RvciIsImlzQm9keSIsImdldENzc0RpbWVuc2lvbnMiLCJoYXNPZmZzZXQiLCJvZmZzZXRXaWR0aCIsInNob3VsZEZhbGxiYWNrIiwidW53cmFwRWxlbWVudCIsImdldFNjYWxlIiwiZG9tRWxlbWVudCIsIiQiLCJub09mZnNldHMiLCJnZXRWaXN1YWxPZmZzZXRzIiwic2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyIsImlzRml4ZWQiLCJmbG9hdGluZ09mZnNldFBhcmVudCIsImluY2x1ZGVTY2FsZSIsImlzRml4ZWRTdHJhdGVneSIsImNsaWVudFJlY3QiLCJzY2FsZSIsInZpc3VhbE9mZnNldHMiLCJvZmZzZXRXaW4iLCJjdXJyZW50V2luIiwiY3VycmVudElGcmFtZSIsImlmcmFtZVNjYWxlIiwiaWZyYW1lUmVjdCIsImNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0IiwiZG9jdW1lbnRFbGVtZW50IiwidG9wTGF5ZXIiLCJzY3JvbGwiLCJpc09mZnNldFBhcmVudEFuRWxlbWVudCIsIm9mZnNldFJlY3QiLCJnZXRDbGllbnRSZWN0cyIsImdldFdpbmRvd1Njcm9sbEJhclgiLCJnZXREb2N1bWVudFJlY3QiLCJodG1sIiwiZ2V0Vmlld3BvcnRSZWN0IiwidmlzdWFsVmlld3BvcnQiLCJ2aXN1YWxWaWV3cG9ydEJhc2VkIiwiZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QiLCJnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IiLCJjbGlwcGluZ0FuY2VzdG9yIiwiaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yIiwic3RvcE5vZGUiLCJnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMiLCJjYWNoZWRSZXN1bHQiLCJjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSIsImVsZW1lbnRJc0ZpeGVkIiwiY3VycmVudE5vZGVJc0NvbnRhaW5pbmciLCJhbmNlc3RvciIsImdldENsaXBwaW5nUmVjdCIsImNsaXBwaW5nQW5jZXN0b3JzIiwiZmlyc3RDbGlwcGluZ0FuY2VzdG9yIiwiY2xpcHBpbmdSZWN0IiwiYWNjUmVjdCIsImdldERpbWVuc2lvbnMiLCJnZXRSZWN0UmVsYXRpdmVUb09mZnNldFBhcmVudCIsImlzU3RhdGljUG9zaXRpb25lZCIsImdldFRydWVPZmZzZXRQYXJlbnQiLCJwb2x5ZmlsbCIsImdldE9mZnNldFBhcmVudCIsInN2Z09mZnNldFBhcmVudCIsImdldEVsZW1lbnRSZWN0cyIsImdldE9mZnNldFBhcmVudEZuIiwiZ2V0RGltZW5zaW9uc0ZuIiwiZmxvYXRpbmdEaW1lbnNpb25zIiwiaXNSVEwiLCJkZXRlY3RPdmVyZmxvdyQxIiwib2Zmc2V0JDEiLCJzaGlmdCQxIiwiZmxpcCQxIiwic2l6ZSQxIiwiaGlkZSQxIiwiYXJyb3ckMSIsImxpbWl0U2hpZnQkMSIsIm1lcmdlZE9wdGlvbnMiLCJwbGF0Zm9ybVdpdGhDYWNoZSIsImNvbXB1dGVQb3NpdGlvbiQxIiwicGFyc2VGbG9hdGluZ1VJUGxhY2VtZW50IiwiZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5IiwiX25vZGVfb3duZXJEb2N1bWVudCIsImdldFNjcm9sbFBhcmVudCIsImhhc1Njcm9sbFBhcmVudCIsIl9zY3JvbGxQYXJlbnRFbGVtZW50X293bmVyRG9jdW1lbnQiLCJzY3JvbGxQYXJlbnRFbGVtZW50IiwiZ2V0Qm91bmRhcnkiLCJib3VuZGFyaWVzTm9kZSIsIm1lcmdlQXJyb3dPZmZzZXQiLCJ1c2VyT2Zmc2V0IiwiYXJyb3dIZWlnaHQiLCJhZGRBcnJvd09mZnNldCIsIm9mZnNldFBhcmFtcyIsIl9vZmZzZXRfbWFpbkF4aXMiLCJ0b0Zsb2F0aW5nVUlQYWRkaW5nIiwidmVydGljYWxQYWRkaW5nIiwiZ2V0UG9zaXRpb25NYXAiLCJnZXRBbGlnbm1lbnRNYXAiLCJzaG91bGRBbGlnblRvQ2VudGVyIiwicG9zaXRpb25lZFZlcnRpY2FsbHkiLCJhbGlnbmVkVmVydGljYWxseSIsInRvRmxvYXRpbmdVSVBsYWNlbWVudCIsImFsaWduIiwiY29tcHV0ZWRQb3NpdGlvbiIsImNvbXB1dGVkQWxpZ25tZW50IiwiZnJvbUZsb2F0aW5nVUlQbGFjZW1lbnQiLCJmbG9hdGluZ1VJQWxpZ25tZW50Iiwic2hvcnRoYW5kTG9va3VwIiwicmVzb2x2ZVBvc2l0aW9uaW5nU2hvcnRoYW5kIiwidXNlQ2FsbGJhY2tSZWYiLCJpbml0aWFsVmFsdWUiLCJza2lwSW5pdGlhbFJlc29sdmUiLCJkZWJvdW5jZSIsInBlbmRpbmciLCJ3cml0ZUFycm93VXBkYXRlcyIsImFycm93WCIsImFycm93WSIsIndyaXRlQ29udGFpbmVyVXBkYXRlcyIsIl9taWRkbGV3YXJlRGF0YV9oaWRlIiwiX21pZGRsZXdhcmVEYXRhX2hpZGUxIiwiX2NvbnRhaW5lcl9vd25lckRvY3VtZW50X2RlZmF1bHRWaWV3IiwibG93UFBJIiwiY29vcmRpbmF0ZXMiLCJ1c2VUcmFuc2Zvcm0iLCJkZXZpY2VQaXhlbFJhdGlvIiwibm9ybWFsaXplQXV0b1NpemUiLCJhdXRvU2l6ZSIsImNvdmVyVGFyZ2V0IiwibWlkZGxld2FyZUFyZ3VtZW50cyIsImJhc2VQbGFjZW1lbnQiLCJuZXdDb29yZHMiLCJoYXNTY3JvbGxhYmxlRWxlbWVudCIsImZsaXBCb3VuZGFyeSIsImZhbGxiYWNrUG9zaXRpb25zIiwiYmFzZUZsaXAiLCJpbnRlcnNlY3RpbmciLCJmbG9hdGluZ1JlY3QiLCJhbHRPdmVyZmxvdyIsImlzSW50ZXJzZWN0aW5nVG9wIiwiaXNJbnRlcnNlY3RpbmdCb3R0b20iLCJyZXNldE1heFNpemUiLCJfbWlkZGxld2FyZURhdGFfcmVzZXRNYXhTaXplIiwiYXBwbHlNYXhXaWR0aCIsImFwcGx5TWF4SGVpZ2h0IiwibWF4U2l6ZSIsIm92ZXJmbG93Qm91bmRhcnkiLCJvdmVyZmxvd0JvdW5kYXJ5UGFkZGluZyIsImFwcGx5TWF4U2l6ZVN0eWxlcyIsImRpbWVuc2lvbiIsImF2YWlsYWJsZVNpemUiLCJnZXRGbG9hdGluZ1VJT2Zmc2V0Iiwib2Zmc2V0VmFsdWUiLCJmbG9hdGluZ1VJT2Zmc2V0IiwiYmFzZU9mZnNldCIsImRpc2FibGVUZXRoZXIiLCJiYXNlU2hpZnQiLCJtYXRjaFRhcmdldFNpemVDc3NWYXIiLCJtYXRjaFRhcmdldFNpemUiLCJyZWZlcmVuY2VSZWN0IiwiZmxvYXRpbmdFbGVtZW50IiwibWF0Y2hUYXJnZXRTaXplQXR0ZW1wdCIsImxpc3RTY3JvbGxQYXJlbnRzIiwic2Nyb2xsUGFyZW50cyIsImNyZWF0ZVJlc2l6ZU9ic2VydmVyIiwiY3JlYXRlUG9zaXRpb25NYW5hZ2VyIiwiaXNEZXN0cm95ZWQiLCJkaXNhYmxlVXBkYXRlT25SZXNpemUiLCJyZXNpemVPYnNlcnZlciIsInVwZGF0ZVBvc2l0aW9uIiwiaXNGaXJzdFVwZGF0ZSIsImNvbXB1dGVkUGxhY2VtZW50IiwidXNlUG9zaXRpb25pbmciLCJtYW5hZ2VyUmVmIiwidGFyZ2V0UmVmIiwib3ZlcnJpZGVUYXJnZXRSZWYiLCJjb250YWluZXJSZWYiLCJhcnJvd1JlZiIsImVuYWJsZWQiLCJyZXNvbHZlUG9zaXRpb25pbmdPcHRpb25zIiwidXNlUG9zaXRpb25pbmdPcHRpb25zIiwidXBkYXRlUG9zaXRpb25NYW5hZ2VyIiwiX292ZXJyaWRlVGFyZ2V0UmVmX2N1cnJlbnQiLCJzZXRPdmVycmlkZVRhcmdldCIsIl9tYW5hZ2VyUmVmX2N1cnJlbnQiLCJfb3B0aW9uc190YXJnZXQiLCJzZXRUYXJnZXQiLCJvblBvc2l0aW9uaW5nRW5kIiwiX29wdGlvbnNfb25Qb3NpdGlvbmluZ0VuZCIsInNldENvbnRhaW5lciIsIl9jb250YWluZXJSZWZfY3VycmVudCIsInNldEFycm93IiwiYXJyb3dQYWRkaW5nIiwicmF3QXV0b1NpemUiLCJwaW5uZWQiLCJwb3NpdGlvbkZpeGVkIiwicG9zaXRpb25TdHJhdGVneSIsInJlc2V0TWF4U2l6ZU1pZGRsZXdhcmUiLCJtYXRjaFRhcmdldFNpemVNaWRkbGV3YXJlIiwib2Zmc2V0TWlkZGxld2FyZSIsImNvdmVyVGFyZ2V0TWlkZGxld2FyZSIsImZsaXBNaWRkbGV3YXJlIiwic2hpZnRNaWRkbGV3YXJlIiwibWF4U2l6ZU1pZGRsZXdhcmUiLCJpbnRlcnNlY3RpbmdNaWRkbGV3YXJlIiwiYXJyb3dNaWRkbGV3YXJlIiwiaGlkZU1pZGRsZXdhcmUiLCJ1c2VQb3NpdGlvbmluZ01vdXNlVGFyZ2V0IiwiaW5pdGlhbFN0YXRlIiwidmlydHVhbEVsZW1lbnQiLCJzZXRWaXJ0dWFsRWxlbWVudCIsIm1vdXNlZXZlbnQiLCJjb250ZXh0VGFyZ2V0IiwiUG9wb3ZlckNvbnRleHQiLCJwb3BvdmVyQ29udGV4dERlZmF1bHRWYWx1ZSIsInVzZVBvcG92ZXJDb250ZXh0X3Vuc3RhYmxlIiwidXNlUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUiLCJjb250ZW50UmVmIiwib3Blbk9uSG92ZXIiLCJzZXRPcGVuIiwibW91bnROb2RlIiwid2l0aEFycm93IiwiaW5lcnRUcmFwRm9jdXMiLCJpbmxpbmUiLCJvbk1vdXNlRW50ZXJPcmlnaW5hbCIsIm9uTW91c2VMZWF2ZU9yaWdpbmFsIiwib25LZXlEb3duT3JpZ2luYWwiLCJfY29udGVudFJlZl9jdXJyZW50IiwidG9Nb3VudE5vZGVQcm9wcyIsImdldEN1cnJlbnRPd25lciIsIlJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwidXNlSXNTdHJpY3RNb2RlIiwidXNlUG9ydGFsTW91bnROb2RlU3R5bGVzU3R5bGVzIiwidXNlUG9ydGFsTW91bnROb2RlQ29udGV4dCIsInRhcmdldE5vZGUiLCJ1c2VEaXNwb3NhYmxlIiwibmV3RWxlbWVudCIsImNsYXNzZXNUb0FwcGx5IiwidXNlUG9ydGFsX3Vuc3RhYmxlIiwidmlydHVhbFBhcmVudFJvb3RSZWYiLCJmYWxsYmFja0VsZW1lbnQiLCJpc1ZpcnR1YWxQYXJlbnRJbnNpZGVDaGlsZCIsInJlbmRlclBvcnRhbF91bnN0YWJsZSIsIlJlYWN0RE9NLmNyZWF0ZVBvcnRhbCIsIlBvcnRhbCIsInJlbmRlclBvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlIiwic3VyZmFjZSIsInBvcG92ZXJTdXJmYWNlQ2xhc3NOYW1lcyIsImFycm93SGVpZ2h0cyIsInVzZVBvcG92ZXJTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlIiwiUG9wb3ZlclN1cmZhY2UiLCJwb3BvdmVyU3VyZmFjZUJvcmRlclJhZGl1cyIsInVzZVBvcG92ZXJfdW5zdGFibGUiLCJzZXRDb250ZXh0VGFyZ2V0IiwicG9wb3ZlclRyaWdnZXIiLCJwb3BvdmVyU3VyZmFjZSIsIm9wZW4iLCJzZXRPcGVuU3RhdGUiLCJ1c2VPcGVuU3RhdGUiLCJzZXRPcGVuVGltZW91dCIsImNsZWFyT3BlblRpbWVvdXQiLCJzaG91bGRPcGVuIiwiX3Byb3BzX21vdXNlTGVhdmVEZWxheSIsInRvZ2dsZU9wZW4iLCJwb3NpdGlvbmluZ1JlZnMiLCJ1c2VQb3BvdmVyUmVmcyIsIl9wcm9wc19jbG9zZU9uSWZyYW1lRm9jdXMiLCJjbG9zZU9uU2Nyb2xsIiwiX3Bvc2l0aW9uaW5nUmVmc19jb250ZW50UmVmX2N1cnJlbnRfZ2V0QXR0cmlidXRlIiwiY29udGFpbmVyVGFiSW5kZXgiLCJmaXJzdEZvY3VzYWJsZSIsIl9wcm9wc19pbmVydFRyYXBGb2N1cyIsIl9wcm9wc19pbmxpbmUiLCJvbk9wZW5DaGFuZ2UiLCJfc3RhdGVfb25PcGVuQ2hhbmdlIiwicG9zaXRpb25pbmdPcHRpb25zIiwidHJpZ2dlclJlZiIsInJlbmRlclBvcG92ZXJfdW5zdGFibGUiLCJvcGVuT25Db250ZXh0IiwiUG9wb3ZlciIsInVzZVBvcG92ZXJUcmlnZ2VyX3Vuc3RhYmxlIiwiZGlzYWJsZUJ1dHRvbkVuaGFuY2VtZW50Iiwib25Db250ZXh0TWVudSIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImNvbnRleHRNZW51UHJvcHMiLCJhcmlhQnV0dG9uVHJpZ2dlckNoaWxkUHJvcHMiLCJyZW5kZXJQb3BvdmVyVHJpZ2dlcl91bnN0YWJsZSIsIlBvcG92ZXJUcmlnZ2VyIiwicmVuZGVyQnV0dG9uX3Vuc3RhYmxlIiwiaWNvbk9ubHkiLCJidXR0b25Db250ZXh0IiwiYnV0dG9uQ29udGV4dERlZmF1bHRWYWx1ZSIsIkJ1dHRvbkNvbnRleHRQcm92aWRlciIsInVzZUJ1dHRvbkNvbnRleHQiLCJ1c2VCdXR0b25fdW5zdGFibGUiLCJpY29uU2hvcnRoYW5kIiwiYnV0dG9uQ2xhc3NOYW1lcyIsInVzZVJvb3RCYXNlQ2xhc3NOYW1lIiwidXNlSWNvbkJhc2VDbGFzc05hbWUiLCJ1c2VSb290RGlzYWJsZWRTdHlsZXMiLCJ1c2VSb290Rm9jdXNTdHlsZXMiLCJ1c2VSb290SWNvbk9ubHlTdHlsZXMiLCJ1c2VJY29uU3R5bGVzIiwidXNlQnV0dG9uU3R5bGVzX3Vuc3RhYmxlIiwicm9vdEJhc2VDbGFzc05hbWUiLCJpY29uQmFzZUNsYXNzTmFtZSIsInJvb3RTdHlsZXMiLCJyb290RGlzYWJsZWRTdHlsZXMiLCJyb290Rm9jdXNTdHlsZXMiLCJyb290SWNvbk9ubHlTdHlsZXMiLCJpY29uU3R5bGVzIiwiQnV0dG9uIiwiRmllbGRDb250ZXh0IiwidXNlRmllbGRDb250ZXh0X3Vuc3RhYmxlIiwidXNlRmllbGRDb250cm9sUHJvcHNfdW5zdGFibGUiLCJnZXRGaWVsZENvbnRyb2xQcm9wcyIsImdlbmVyYXRlZENvbnRyb2xJZCIsImhpbnRJZCIsImxhYmVsRm9yIiwibGFiZWxJZCIsInJlcXVpcmVkIiwidmFsaWRhdGlvbk1lc3NhZ2VJZCIsInZhbGlkYXRpb25TdGF0ZSIsIl9pZCIsIl9wcm9wczEiLCJfYXJpYWxhYmVsbGVkYnkiLCJfcHJvcHMyIiwiX2FyaWFpbnZhbGlkIiwiXzEiLCJfcHJvcHMzIiwiX3JlcXVpcmVkIiwiX3Byb3BzNCIsIl9hcmlhcmVxdWlyZWQiLCJfMiIsIl9wcm9wczUiLCJfc2l6ZSIsInVzZUxhYmVsX3Vuc3RhYmxlIiwid2VpZ2h0IiwicmVuZGVyTGFiZWxfdW5zdGFibGUiLCJsYWJlbENsYXNzTmFtZXMiLCJ1c2VMYWJlbFN0eWxlc191bnN0YWJsZSIsIkxhYmVsIiwidXNlQ2hlY2tib3hfdW5zdGFibGUiLCJsYWJlbFBvc2l0aW9uIiwib25DaGFuZ2UiLCJzZXRDaGVja2VkIiwibmF0aXZlUHJvcHMiLCJtaXhlZCIsImNoZWNrbWFya0ljb24iLCJpbnB1dFJlZiIsInJlbmRlckNoZWNrYm94X3Vuc3RhYmxlIiwiY2hlY2tib3hDbGFzc05hbWVzIiwidXNlSW5wdXRCYXNlQ2xhc3NOYW1lIiwidXNlSW5wdXRTdHlsZXMiLCJ1c2VJbmRpY2F0b3JCYXNlQ2xhc3NOYW1lIiwidXNlSW5kaWNhdG9yU3R5bGVzIiwidXNlTGFiZWxTdHlsZXMiLCJ1c2VDaGVja2JveFN0eWxlc191bnN0YWJsZSIsImlucHV0QmFzZUNsYXNzTmFtZSIsImlucHV0U3R5bGVzIiwiaW5kaWNhdG9yQmFzZUNsYXNzTmFtZSIsImluZGljYXRvclN0eWxlcyIsImxhYmVsU3R5bGVzIiwiQ2hlY2tib3giLCJDb21ib2JveENvbnRleHQiLCJsaXN0Ym94Q29udGV4dERlZmF1bHRWYWx1ZSIsIkxpc3Rib3hDb250ZXh0IiwidXNlTGlzdGJveENvbnRleHRfdW5zdGFibGUiLCJMaXN0Ym94UHJvdmlkZXIiLCJ1c2VDb21ib2JveENvbnRleHRWYWx1ZXMiLCJnZXRPcHRpb25CeUlkIiwiZ2V0T3B0aW9uc01hdGNoaW5nVmFsdWUiLCJyZWdpc3Rlck9wdGlvbiIsInNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdE9wdGlvbiIsImFjdGl2ZURlc2NlbmRhbnRDb250cm9sbGVyIiwib25PcHRpb25DbGljayIsIm9uQWN0aXZlRGVzY2VuZGFudENoYW5nZSIsImNvbWJvYm94IiwibGlzdGJveCIsImFjdGl2ZURlc2NlbmRhbnQiLCJ1c2VMaXN0Ym94Q29udGV4dFZhbHVlcyIsImhhc0xpc3Rib3hDb250ZXh0IiwibXVsdGlzZWxlY3QiLCJwYXJlbnRSZWdpc3Rlck9wdGlvbiIsImdldERyb3Bkb3duQWN0aW9uRnJvbUtleSIsImNvZGUiLCJhbHRLZXkiLCJjdHJsS2V5IiwibWV0YUtleSIsImtleXMuU3BhY2UiLCJrZXlzLkFycm93VXAiLCJrZXlzLkVudGVyIiwia2V5cy5Fc2NhcGUiLCJrZXlzLkFycm93RG93biIsImtleXMuSG9tZSIsImtleXMuRW5kIiwia2V5cy5QYWdlVXAiLCJrZXlzLlBhZ2VEb3duIiwia2V5cy5UYWIiLCJ1c2VPcHRpb25Db2xsZWN0aW9uIiwib3B0aW9uc0J5SWQiLCJjb2xsZWN0aW9uQVBJIiwidGV4dCIsIm9wdGlvbiIsImRlZmF1bHRTZWxlY3RlZE9wdGlvbnMiLCJvbk9wdGlvblNlbGVjdCIsInNldFNlbGVjdGVkT3B0aW9ucyIsIm5ld1NlbGVjdGlvbiIsInNlbGVjdGVkSW5kZXgiLCJvcHRpb25DbGFzc05hbWVzIiwidXNlT3B0aW9uU3R5bGVzX3Vuc3RhYmxlIiwiVU5TQUZFX25vTG9uZ2VyVXNlZCIsInVzZUxpc3Rib3hfdW5zdGFibGUiLCJkaXNhYmxlQXV0b0ZvY3VzIiwib3B0aW9uQ29sbGVjdGlvbiIsImFjdGl2ZURlc2NlbmRhbnRMaXN0Ym94UmVmIiwiY29udGV4dEdldE9wdGlvbkJ5SWQiLCJjb250ZXh0R2V0T3B0aW9uc01hdGNoaW5nVmFsdWUiLCJsaXN0ZW5lclJlZiIsInVudHlwZWRFdmVudCIsInNldElzTmF2aWdhdGluZ1dpdGhLZXlib2FyZCIsImFjdGl2ZURlc2NlbmRhbnRDb250ZXh0IiwiaGFzUGFyZW50QWN0aXZlRGVzY2VuZGFudENvbnRleHQiLCJjbGVhclNlbGVjdGlvbiIsImFjdGl2ZU9wdGlvbklkIiwiYWN0aXZlT3B0aW9uIiwiY29udGV4dFNlbGVjdGVkT3B0aW9ucyIsImNvbnRleHRTZWxlY3RPcHRpb24iLCJvcHRpb25Db250ZXh0VmFsdWVzIiwic2VsZWN0ZWRPcHRpb24iLCJvbkZvY3VzIiwib25CbHVyIiwicmVuZGVyTGlzdGJveF91bnN0YWJsZSIsImxpc3Rib3hDbGFzc05hbWVzIiwidXNlTGlzdGJveFN0eWxlc191bnN0YWJsZSIsIkxpc3Rib3giLCJnZXRUZXh0U3RyaW5nIiwidGV4dFN0cmluZyIsImhhc05vblN0cmluZ0NoaWxkIiwidXNlT3B0aW9uX3Vuc3RhYmxlIiwib3B0aW9uUmVmIiwib3B0aW9uVGV4dCIsIm9wdGlvblZhbHVlIiwib3B0aW9uRGF0YSIsIkNoZWNrSWNvbiIsIl9wcm9wc19vbkNsaWNrIiwic2VtYW50aWNQcm9wcyIsInJlbmRlck9wdGlvbl91bnN0YWJsZSIsIk9wdGlvbiIsInVzZUNvbWJvYm94QmFzZVN0YXRlIiwiY2xlYXJhYmxlIiwiZWRpdGFibGUiLCJpbmxpbmVQb3B1cCIsImZyZWVmb3JtIiwib25BY3RpdmVPcHRpb25DaGFuZ2UiLCJnZXRBY3RpdmVPcHRpb24iLCJVTlNBRkVfYWN0aXZlT3B0aW9uIiwiVU5TQUZFX3NldEFjdGl2ZU9wdGlvbiIsIm5leHRPcHRpb24iLCJmb2N1c1Zpc2libGUiLCJzZXRGb2N1c1Zpc2libGUiLCJoYXNGb2N1cyIsInNldEhhc0ZvY3VzIiwiaWdub3JlTmV4dEJsdXIiLCJjb250cm9sbGFibGVWYWx1ZSIsInNldFZhbHVlIiwiYmFzZVNlbGVjdE9wdGlvbiIsIlJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwic2VsZWN0ZWRPcHRpb25zVGV4dCIsInByZXZpb3VzT3B0aW9uIiwidXNlQ29tYm9ib3hQb3NpdGlvbmluZyIsInBvc2l0aW9uaW5nIiwicG9wcGVyT3B0aW9ucyIsInVzZUxpc3Rib3hTbG90IiwibGlzdGJveFNsb3RGcm9tUHJvcCIsImxpc3Rib3hJZCIsImxpc3Rib3hTbG90Iiwib25Nb3VzZURvd24iLCJfdHJpZ2dlclJlZl9jdXJyZW50IiwidXNlVHJpZ2dlclNsb3QiLCJ0cmlnZ2VyU2xvdEZyb21Qcm9wIiwidHJpZ2dlciIsInVzZVRyaWdnZXJLZXlkb3duIiwicGFnZVVwIiwicGFnZURvd24iLCJzZXRLZXlib2FyZE5hdmlnYXRpb24iLCJ1c2VJbnB1dFRyaWdnZXJTbG90IiwidHJpZ2dlckZyb21Qcm9wcyIsImdldE9wdGlvbkZyb21JbnB1dCIsImlucHV0VmFsdWUiLCJzZWFyY2hTdHJpbmciLCJtYXRjaGluZ09wdGlvbiIsImhpZGVBY3RpdmVEZXNjZW5kYW50Iiwic2V0SGlkZUFjdGl2ZURlc2NlbmRhbnQiLCJpc1R5cGluZyIsImRlZmF1bHRPbktleURvd24iLCJfdHJpZ2dlckZyb21Qcm9wc19vbktleURvd24iLCJ1c2VDb21ib2JveF91bnN0YWJsZSIsIl9zdGF0ZV9jbGVhckljb24iLCJfc3RhdGVfY2xlYXJJY29uMSIsImJhc2VTdGF0ZSIsImNvbWJvYm94UG9wdXBSZWYiLCJjb21ib2JveFRhcmdldFJlZiIsImNvbWJvSWQiLCJ0cmlnZ2VyTmF0aXZlUHJvcHMiLCJyb290TmF0aXZlUHJvcHMiLCJfcHJvcHNfaW5wdXQiLCJ0cmlnZ2VyU2xvdCIsInJvb3RTbG90Iiwic2hvd0NsZWFySWNvbiIsIkRpc21pc3NJY29uIiwiQ2hldnJvbkRvd25JY29uIiwib25JY29uTW91c2VEb3duIiwib25FeHBhbmRJY29uTW91c2VEb3duIiwiaGFzRXhwYW5kTGFiZWwiLCJkZWZhdWx0T3BlblN0cmluZyIsIl9zdGF0ZV9leHBhbmRJY29uX2lkIiwiY2hldnJvbklkIiwiY2hldnJvbkxhYmVsbGVkQnkiLCJvbkNsZWFySWNvbk1vdXNlRG93biIsIm9uQ2xlYXJJY29uQ2xpY2siLCJyZW5kZXJDb21ib2JveF91bnN0YWJsZSIsImNvbWJvYm94Q2xhc3NOYW1lcyIsInVzZUNvbWJvYm94U3R5bGVzX3Vuc3RhYmxlIiwiaW52YWxpZCIsIkNvbWJvYm94IiwidXNlT3B0aW9uR3JvdXBfdW5zdGFibGUiLCJsYWJlbCIsInJlbmRlck9wdGlvbkdyb3VwX3Vuc3RhYmxlIiwib3B0aW9uR3JvdXBDbGFzc05hbWVzIiwidXNlT3B0aW9uR3JvdXBTdHlsZXNfdW5zdGFibGUiLCJPcHRpb25Hcm91cCIsInVzZUlucHV0X3Vuc3RhYmxlIiwiX292ZXJyaWRlc19pbnB1dERlZmF1bHRBcHBlYXJhbmNlIiwicmVuZGVySW5wdXRfdW5zdGFibGUiLCJpbnB1dENsYXNzTmFtZXMiLCJ1c2VJbnB1dENsYXNzTmFtZSIsInVzZUlucHV0RWxlbWVudFN0eWxlcyIsInVzZUNvbnRlbnRDbGFzc05hbWUiLCJ1c2VDb250ZW50U3R5bGVzIiwidXNlSW5wdXRTdHlsZXNfdW5zdGFibGUiLCJjb250ZW50U3R5bGVzIiwiY29udGVudENsYXNzZXMiLCJJbnB1dCIsIk1lbnVDb250ZXh0IiwibWVudUNvbnRleHREZWZhdWx0VmFsdWUiLCJNZW51UHJvdmlkZXIiLCJ1c2VNZW51Q29udGV4dF91bnN0YWJsZSIsIk1lbnVUcmlnZ2VyQ29udGV4dCIsIk1lbnVUcmlnZ2VyQ29udGV4dFByb3ZpZGVyIiwiTWVudUxpc3RDb250ZXh0IiwiTUVOVV9FTlRFUl9FVkVOVCIsInVzZU9uTWVudU1vdXNlRW50ZXIiLCJwb3BvdmVyUmVmIiwic29tZU1lbnVQb3BvdmVyIiwiX3BvcG92ZXJSZWZfY3VycmVudCIsImRpc3BhdGNoTWVudUVudGVyRXZlbnQiLCJ1c2VJc1N1Ym1lbnUiLCJtZW51Q29udGV4dFZhbHVlIiwiaGFzTWVudUxpc3RDb250ZXh0Iiwic3VibWVudUZhbGxiYWNrUG9zaXRpb25zIiwidXNlTWVudV91bnN0YWJsZSIsImlzU3VibWVudSIsImhvdmVyRGVsYXkiLCJoYXNDaGVja21hcmtzIiwiaGFzSWNvbnMiLCJwZXJzaXN0T25JdGVtQ2xpY2siLCJkZWZhdWx0Q2hlY2tlZFZhbHVlcyIsInRyaWdnZXJJZCIsInBvc2l0aW9uaW5nU3RhdGUiLCJtZW51VHJpZ2dlciIsIm1lbnVQb3BvdmVyIiwibWVudVBvcG92ZXJSZWYiLCJ1c2VNZW51T3BlblN0YXRlIiwiY2hlY2tlZFZhbHVlcyIsIm9uQ2hlY2tlZFZhbHVlQ2hhbmdlIiwidXNlTWVudVNlbGVjdGFibGVTdGF0ZSIsInNldENoZWNrZWRWYWx1ZXMiLCJjaGVja2VkSXRlbXMiLCJfcHJvcHNfb25DaGVja2VkVmFsdWVDaGFuZ2UiLCJjdXJyZW50VmFsdWUiLCJwYXJlbnRTZXRPcGVuIiwiZW50ZXJpbmdUcmlnZ2VyUmVmIiwidHJ5U2V0T3BlbiIsIl9zdGF0ZV90cmlnZ2VyUmVmX2N1cnJlbnQiLCJmb2N1c0ZpcnN0IiwidXNlTWVudUNvbnRleHRWYWx1ZXNfdW5zdGFibGUiLCJyZW5kZXJNZW51X3Vuc3RhYmxlIiwiTWVudSIsInVzZU1lbnVQb3BvdmVyX3Vuc3RhYmxlIiwiY2FuRGlzcGF0Y2hDdXN0b21FdmVudFJlZiIsInJlc3RvcmVGb2N1c1NvdXJjZUF0dHJpYnV0ZXMiLCJzZXRUaHJvdHRsZVRpbWVvdXQiLCJjbGVhclRocm90dGxlVGltZW91dCIsIkNsb3NlQXJyb3dLZXkiLCJtb3VzZU92ZXJMaXN0ZW5lckNhbGxiYWNrUmVmIiwiX3VzZU1lbnVDb250ZXh0X3Vuc3RhYmxlIiwicm9vdFByb3BzIiwibWVudVBvcG92ZXJDbGFzc05hbWVzIiwidXNlTWVudVBvcG92ZXJTdHlsZXNfdW5zdGFibGUiLCJyZW5kZXJNZW51UG9wb3Zlcl91bnN0YWJsZSIsIk1lbnVQb3BvdmVyIiwidXNlTWVudVRyaWdnZXJfdW5zdGFibGUiLCJyZXN0b3JlRm9jdXNUYXJnZXRBdHRyaWJ1dGUiLCJvcGVuZWRXaXRoS2V5Ym9hcmRSZWYiLCJoYXNNb3VzZU1vdmVkIiwiT3BlbkFycm93S2V5IiwiaXNUYXJnZXREaXNhYmxlZCIsIm9uTW91c2VNb3ZlIiwicmVuZGVyTWVudVRyaWdnZXJfdW5zdGFibGUiLCJNZW51VHJpZ2dlciIsInJlbmRlclBlcnNvbmFfdW5zdGFibGUiLCJwcmVzZW5jZU9ubHkiLCJ0ZXh0UG9zaXRpb24iLCJjb2luIiwidXNlUGVyc29uYV91bnN0YWJsZSIsInRleHRBbGlnbm1lbnQiLCJwcmltYXJ5VGV4dCIsInNlY29uZGFyeVRleHQiLCJ0ZXJ0aWFyeVRleHQiLCJxdWF0ZXJuYXJ5VGV4dCIsImF2YXRhclNpemVzIiwicHJlc2VuY2VTaXplcyIsInBlcnNvbmFDbGFzc05hbWVzIiwidXNlQXZhdGFyU3BhY2luZ1N0eWxlcyIsInVzZVByZXNlbmNlU3BhY2luZ1N0eWxlcyIsInVzZVBlcnNvbmFTdHlsZXNfdW5zdGFibGUiLCJhbGlnblRvUHJpbWFyeSIsImFsaWduQmVmb3JlQWZ0ZXJDZW50ZXIiLCJwcmltYXJ5VGV4dENsYXNzTmFtZSIsIm9wdGlvbmFsVGV4dENsYXNzTmFtZSIsInVzZVRleHRDbGFzc05hbWVzIiwiYXZhdGFyU3BhY2luZ1N0eWxlcyIsInByZXNlbmNlU3BhY2luZ1N0eWxlcyIsInVzZVByaW1hcnlUZXh0QmFzZUNsYXNzTmFtZSIsInVzZU9wdGlvbmFsVGV4dEJhc2VDbGFzc05hbWUiLCJ1c2VUZXh0U3R5bGVzIiwicHJpbWFyeVRleHRCYXNlQ2xhc3NOYW1lIiwib3B0aW9uYWxUZXh0QmFzZUNsYXNzTmFtZSIsInRleHRTdHlsZXMiLCJwcmltYXJ5VGV4dFNpemUiLCJhbGlnblRvUHJpbWFyeUNsYXNzTmFtZSIsIlBlcnNvbmEiLCJSYWRpb0dyb3VwQ29udGV4dCIsInJhZGlvR3JvdXBDb250ZXh0RGVmYXVsdFZhbHVlIiwidXNlUmFkaW9Hcm91cENvbnRleHRWYWx1ZV91bnN0YWJsZSIsInJlbmRlclJhZGlvX3Vuc3RhYmxlIiwidXNlUmFkaW9fdW5zdGFibGUiLCJkZWZhdWx0Q2hlY2tlZCIsImFyaWFEZXNjcmliZWRCeSIsImluZGljYXRvciIsInJhZGlvQ2xhc3NOYW1lcyIsInVzZVJhZGlvU3R5bGVzX3Vuc3RhYmxlIiwiUmFkaW8iLCJTa2VsZXRvbkNvbnRleHQiLCJza2VsZXRvbkNvbnRleHREZWZhdWx0VmFsdWUiLCJ1c2VTa2VsZXRvbkNvbnRleHQiLCJ1c2VTa2VsZXRvbkl0ZW1fdW5zdGFibGUiLCJjb250ZXh0QW5pbWF0aW9uIiwiY29udGV4dEFwcGVhcmFuY2UiLCJyZW5kZXJTa2VsZXRvbkl0ZW1fdW5zdGFibGUiLCJza2VsZXRvbkl0ZW1DbGFzc05hbWVzIiwidXNlUmVjdGFuZ2xlU3R5bGVzIiwidXNlQ2lyY2xlU2l6ZVN0eWxlcyIsInVzZVNrZWxldG9uSXRlbVN0eWxlc191bnN0YWJsZSIsInJlY3RTdHlsZXMiLCJjaXJjbGVTdHlsZXMiLCJTa2VsZXRvbkl0ZW0iLCJTcGlubmVyQ29udGV4dCIsIlNwaW5uZXJDb250ZXh0RGVmYXVsdFZhbHVlIiwidXNlU3Bpbm5lckNvbnRleHQiLCJ1c2VTcGlubmVyX3Vuc3RhYmxlIiwicm9sZSIsIm5hdGl2ZVJvb3QiLCJpc1Nob3duQWZ0ZXJEZWxheSIsInNldElzU2hvd25BZnRlckRlbGF5Iiwic2V0RGVsYXlUaW1lb3V0IiwiY2xlYXJEZWxheVRpbWVvdXQiLCJsYWJlbFNob3J0aGFuZCIsInNwaW5uZXJTaG9ydEhhbmQiLCJyZW5kZXJTcGlubmVyX3Vuc3RhYmxlIiwic2hvdWxkUmVuZGVyU3Bpbm5lciIsInNwaW5uZXJDbGFzc05hbWVzIiwidXNlU3Bpbm5lckJhc2VDbGFzc05hbWUiLCJ1c2VTcGlubmVyVGFpbEJhc2VDbGFzc05hbWUiLCJ1c2VTcGlubmVyU3R5bGVzIiwidXNlU3Bpbm5lclN0eWxlc191bnN0YWJsZSIsInNwaW5uZXJCYXNlQ2xhc3NOYW1lIiwic3Bpbm5lclN0eWxlcyIsInNwaW5uZXJUYWlsQmFzZUNsYXNzTmFtZSIsIlNwaW5uZXIiLCJ0YWJMaXN0Q29udGV4dERlZmF1bHRWYWx1ZSIsIlRhYkxpc3RDb250ZXh0IiwiVGFiTGlzdFByb3ZpZGVyIiwidXNlVGFiTGlzdENvbnRleHRfdW5zdGFibGUiLCJ1c2VUYWJfdW5zdGFibGUiLCJjb250ZW50IiwidGFiRGlzYWJsZWQiLCJyZXNlcnZlU2VsZWN0ZWRUYWJTcGFjZSIsInNlbGVjdFRhYk9uRm9jdXMiLCJsaXN0RGlzYWJsZWQiLCJvblJlZ2lzdGVyIiwib25VbnJlZ2lzdGVyIiwib25TZWxlY3QiLCJ2ZXJ0aWNhbCIsImlubmVyUmVmIiwib25TZWxlY3RDYWxsYmFjayIsIm9uVGFiQ2xpY2siLCJvblRhYkZvY3VzIiwiaWNvblNsb3QiLCJjb250ZW50U2xvdCIsImNvbnRlbnRSZXNlcnZlZFNwYWNlIiwicmVuZGVyVGFiX3Vuc3RhYmxlIiwidGFiSW5kaWNhdG9yQ3NzVmFyc191bnN0YWJsZSIsInVzZUFjdGl2ZUluZGljYXRvclN0eWxlcyIsImNhbGN1bGF0ZVRhYlJlY3QiLCJfZWxlbWVudF9wYXJlbnRFbGVtZW50IiwicGFyZW50UmVjdCIsInRhYlJlY3QiLCJnZXRSZWdpc3RlcmVkVGFiUmVjdCIsInJlZ2lzdGVyZWRUYWJzIiwiX3JlZ2lzdGVyZWRUYWJzX0pTT05fc3RyaW5naWZ5IiwidXNlVGFiQW5pbWF0ZWRJbmRpY2F0b3JTdHlsZXNfdW5zdGFibGUiLCJhY3RpdmVJbmRpY2F0b3JTdHlsZXMiLCJsYXN0QW5pbWF0ZWRGcm9tIiwic2V0TGFzdEFuaW1hdGVkRnJvbSIsImFuaW1hdGlvblZhbHVlcyIsInNldEFuaW1hdGlvblZhbHVlcyIsImdldFJlZ2lzdGVyZWRUYWJzIiwicHJldmlvdXNTZWxlY3RlZFZhbHVlIiwic2VsZWN0ZWRWYWx1ZSIsInByZXZpb3VzU2VsZWN0ZWRUYWJSZWN0Iiwic2VsZWN0ZWRUYWJSZWN0IiwiYW5pbWF0aW5nIiwicm9vdENzc1ZhcnMiLCJ0YWJDbGFzc05hbWVzIiwicmVzZXJ2ZWRTcGFjZUNsYXNzTmFtZXMiLCJ1c2VGb2N1c1N0eWxlcyIsInVzZVBlbmRpbmdJbmRpY2F0b3JTdHlsZXMiLCJ1c2VUYWJTdHlsZXNfdW5zdGFibGUiLCJmb2N1c1N0eWxlcyIsInBlbmRpbmdJbmRpY2F0b3JTdHlsZXMiLCJ1c2VUYWJMaXN0X3Vuc3RhYmxlIiwib25UYWJTZWxlY3QiLCJmb2N1c0F0dHJpYnV0ZXMiLCJzZXRTZWxlY3RlZFZhbHVlIiwiY3VycmVudFNlbGVjdGVkVmFsdWUiLCJyZW5kZXJUYWJMaXN0X3Vuc3RhYmxlIiwidGFiTGlzdENsYXNzTmFtZXMiLCJ1c2VUYWJMaXN0U3R5bGVzX3Vuc3RhYmxlIiwidXNlVGFiTGlzdENvbnRleHRWYWx1ZXNfdW5zdGFibGUiLCJzZWxlY3RlZEtleSIsIlRhYkxpc3QiLCJ1c2VUZXh0X3Vuc3RhYmxlIiwid3JhcCIsInRydW5jYXRlIiwiYmxvY2siLCJpdGFsaWMiLCJ1bmRlcmxpbmUiLCJzdHJpa2V0aHJvdWdoIiwiZm9udCIsInJlbmRlclRleHRfdW5zdGFibGUiLCJ0ZXh0Q2xhc3NOYW1lcyIsInVzZVRleHRTdHlsZXNfdW5zdGFibGUiLCJUZXh0IiwidXNlSFRNTE5vU2Nyb2xsU3R5bGVzIiwidXNlQm9keU5vU2Nyb2xsU3R5bGVzIiwidXNlRGlzYWJsZUJvZHlTY3JvbGwiLCJodG1sTm9TY3JvbGxTdHlsZXMiLCJib2R5Tm9TY3JvbGxTdHlsZXMiLCJ1c2VGbHVlbnRfdW5zdGFibGUiLCJkaXNhYmxlQm9keVNjcm9sbCIsIl90YXJnZXREb2N1bWVudF9kZWZhdWx0Vmlld19pbm5lckhlaWdodCIsImVuYWJsZUJvZHlTY3JvbGwiLCJ1c2VGb2N1c0ZpcnN0RWxlbWVudCIsIm1vZGFsVHlwZSIsImRpYWxvZ1JlZiIsIl9kaWFsb2dSZWZfY3VycmVudCIsImRlZmF1bHRDb250ZXh0VmFsdWUiLCJEaWFsb2dDb250ZXh0IiwiRGlhbG9nUHJvdmlkZXIiLCJ1c2VEaWFsb2dDb250ZXh0X3Vuc3RhYmxlIiwiRGlhbG9nU3VyZmFjZUNvbnRleHQiLCJEaWFsb2dTdXJmYWNlUHJvdmlkZXIiLCJ1c2VEaWFsb2dTdXJmYWNlQ29udGV4dF91bnN0YWJsZSIsIl91c2VDb250ZXh0IiwiRGlhbG9nU3VyZmFjZU1vdGlvbiIsInVzZURpYWxvZ191bnN0YWJsZSIsImNoaWxkcmVuVG9UcmlnZ2VyQW5kQ29udGVudCIsInJlcXVlc3RPcGVuQ2hhbmdlIiwiZm9jdXNSZWYiLCJpc05lc3RlZERpYWxvZyIsImNoaWxkcmVuQXJyYXkiLCJNb3Rpb25SZWZGb3J3YXJkZXJDb250ZXh0IiwidXNlTW90aW9uRm9yd2FyZGVkUmVmIiwiTW90aW9uUmVmRm9yd2FyZGVyIiwicmVuZGVyRGlhbG9nX3Vuc3RhYmxlIiwidXNlRGlhbG9nQ29udGV4dFZhbHVlc191bnN0YWJsZSIsImRpYWxvZ1RpdGxlSWQiLCJEaWFsb2ciLCJSZWFjdC5tZW1vIiwidXNlRGlhbG9nVHJpZ2dlcl91bnN0YWJsZSIsImlzSW5zaWRlU3VyZmFjZURpYWxvZyIsIl9jaGlsZF9wcm9wc19vbkNsaWNrIiwiX2NoaWxkX3Byb3BzIiwicmVuZGVyRGlhbG9nVHJpZ2dlcl91bnN0YWJsZSIsIkRpYWxvZ1RyaWdnZXIiLCJ1c2VEaWFsb2dCb2R5X3Vuc3RhYmxlIiwicmVuZGVyRGlhbG9nQm9keV91bnN0YWJsZSIsImRpYWxvZ0JvZHlDbGFzc05hbWVzIiwidXNlUmVzZXRTdHlsZXMiLCJ1c2VEaWFsb2dCb2R5U3R5bGVzX3Vuc3RhYmxlIiwicmVzZXRTdHlsZXMiLCJEaWFsb2dCb2R5IiwiZGlhbG9nVGl0bGVDbGFzc05hbWVzIiwidXNlUm9vdFJlc2V0U3R5bGVzIiwidXNlQWN0aW9uUmVzZXRTdHlsZXMiLCJ1c2VEaWFsb2dUaXRsZUludGVybmFsU3R5bGVzIiwidXNlRGlhbG9nVGl0bGVTdHlsZXNfdW5zdGFibGUiLCJyb290UmVzZXRTdHlsZXMiLCJhY3Rpb25SZXNldFN0eWxlcyIsInVzZURpYWxvZ1RpdGxlX3Vuc3RhYmxlIiwiaW50ZXJuYWxTdHlsZXMiLCJyZW5kZXJEaWFsb2dUaXRsZV91bnN0YWJsZSIsIl9GcmFnbWVudCIsIkRpYWxvZ1RpdGxlIiwiRGlhbG9nQmFja2Ryb3BNb3Rpb24iLCJ1c2VEaWFsb2dTdXJmYWNlX3Vuc3RhYmxlIiwiY29udGV4dFJlZiIsImRpYWxvZ1RpdGxlSUQiLCJoYW5kbGVkQmFja2Ryb3BDbGljayIsIl9wcm9wc19iYWNrZHJvcF9vbkNsaWNrIiwiX3Byb3BzX2JhY2tkcm9wIiwiX3Byb3BzX29uS2V5RG93biIsImJhY2tkcm9wIiwicmVuZGVyRGlhbG9nU3VyZmFjZV91bnN0YWJsZSIsImRpYWxvZ1N1cmZhY2VDbGFzc05hbWVzIiwidXNlUm9vdEJhc2VTdHlsZSIsInVzZUJhY2tkcm9wQmFzZVN0eWxlIiwidXNlQmFja2Ryb3BTdHlsZXMiLCJ1c2VEaWFsb2dTdXJmYWNlU3R5bGVzX3Vuc3RhYmxlIiwicm9vdEJhc2VTdHlsZSIsImJhY2tkcm9wQmFzZVN0eWxlIiwiYmFja2Ryb3BTdHlsZXMiLCJ1c2VEaWFsb2dTdXJmYWNlQ29udGV4dFZhbHVlc191bnN0YWJsZSIsIkRpYWxvZ1N1cmZhY2UiLCJ1c2VEaWFsb2dDb250ZW50X3Vuc3RhYmxlIiwicmVuZGVyRGlhbG9nQ29udGVudF91bnN0YWJsZSIsImRpYWxvZ0NvbnRlbnRDbGFzc05hbWVzIiwidXNlRGlhbG9nQ29udGVudFN0eWxlc191bnN0YWJsZSIsIkRpYWxvZ0NvbnRlbnQiLCJkZWZhdWx0VGFibGVTZWxlY3Rpb25TdGF0ZSIsInVzZVRhYmxlU2VsZWN0aW9uIiwidGFibGVTdGF0ZSIsInVzZVRhYmxlU2VsZWN0aW9uU3RhdGUiLCJnZXRSb3dJZCIsInNlbGVjdGlvbk1vZGUiLCJkZWZhdWx0U2VsZWN0ZWRJdGVtcyIsInNlbGVjdGVkSXRlbXMiLCJvblNlbGVjdGlvbkNoYW5nZSIsInNlbGVjdGlvbk1ldGhvZHMiLCJzZWxlY3RhYmxlUm93SWRzIiwicm93SWRzIiwiX2dldFJvd0lkIiwiYWxsUm93c1NlbGVjdGVkIiwic2VsZWN0ZWRSb3ciLCJyZXMiLCJzZWxlY3RhYmxlUm93SWQiLCJzb21lUm93c1NlbGVjdGVkIiwidG9nZ2xlQWxsUm93cyIsInRvZ2dsZVJvdyIsInJvd0lkIiwiZGVzZWxlY3RSb3ciLCJzZWxlY3RSb3ciLCJpc1Jvd1NlbGVjdGVkIiwiY2xlYXJSb3dzIiwiZGVmYXVsdFRhYmxlU29ydFN0YXRlIiwicm93cyIsInVzZVRhYmxlUmVzaXplSGFuZGxlX3Vuc3RhYmxlIiwicmVuZGVyVGFibGVSZXNpemVIYW5kbGVfdW5zdGFibGUiLCJ0YWJsZVJlc2l6ZUhhbmRsZUNsYXNzTmFtZXMiLCJ1c2VUYWJsZVJlc2l6ZUhhbmRsZVN0eWxlc191bnN0YWJsZSIsIlRhYmxlUmVzaXplSGFuZGxlIiwidXNlTWVhc3VyZUVsZW1lbnQiLCJzZXRXaWR0aCIsInJlc2l6ZU9ic2VydmVyUmVmIiwiaGFuZGxlUmVzaXplIiwiX2NvbnRhaW5lcl9jdXJyZW50IiwiY29udGFpbmVyV2lkdGgiLCJtZWFzdXJlRWxlbWVudFJlZiIsIl9yZXNpemVPYnNlcnZlclJlZl9jdXJyZW50IiwiY3JlYXRlUmVzaXplT2JzZXJ2ZXJGcm9tRG9jdW1lbnQiLCJ1c2VUYWJsZUNvbHVtblJlc2l6ZU1vdXNlSGFuZGxlciIsImNvbHVtblJlc2l6ZVN0YXRlIiwibW91c2VYIiwiY3VycmVudFdpZHRoIiwiY29sSWQiLCJkcmFnZ2luZyIsInNldERyYWdnaW5nIiwiZ2V0Q29sdW1uV2lkdGgiLCJzZXRDb2x1bW5XaWR0aCIsInJlY2FsY3VsYXRlUG9zaXRpb24iLCJjbGllbnRYIiwiZHgiLCJyZXF1ZXN0UmVjYWxjRnJhbWUiLCJvbkRyYWciLCJvbkRyYWdFbmQiLCJjb2x1bW5JZCIsIkRFRkFVTFRfV0lEVEgiLCJERUZBVUxUX01JTl9XSURUSCIsImNvbHVtbkRlZmluaXRpb25zVG9TdGF0ZSIsImNvbHVtbnMiLCJjb2x1bW5TaXppbmdPcHRpb25zIiwidXBkYXRlZCIsInN0YXRlTWFwIiwidXBkYXRlZFN0YXRlIiwiZXhpc3RpbmdDb2x1bW5TdGF0ZSIsIl9jb2x1bW5TaXppbmdPcHRpb25zX2NvbHVtbl9jb2x1bW5JZCIsImlkZWFsV2lkdGgiLCJfY29sdW1uU2l6aW5nT3B0aW9uc19jb2x1bW5fY29sdW1uSWQxIiwiZGVmYXVsdFdpZHRoIiwiY29sIiwiZ2V0Q29sdW1uQnlJZCIsImdldENvbHVtbkJ5SW5kZXgiLCJnZXRUb3RhbFdpZHRoIiwic3VtIiwiX2NvbHVtbl93aWR0aCIsInNldENvbHVtblByb3BlcnR5IiwibG9jYWxTdGF0ZSIsImN1cnJlbnRDb2x1bW4iLCJ1cGRhdGVkQ29sdW1uIiwiYWRqdXN0Q29sdW1uV2lkdGhzVG9GaXRDb250YWluZXIiLCJ0b3RhbFdpZHRoIiwiZGlmZmVyZW5jZSIsImN1cnJlbnRDb2wiLCJjb2xBZGp1c3RtZW50IiwibGFzdENvbCIsImNyZWF0ZVJlZHVjZXIiLCJhdXRvRml0Q29sdW1ucyIsIm5ld1MiLCJuZXdDb2x1bW5XaWR0aFN0YXRlIiwidXNlVGFibGVDb2x1bW5SZXNpemVTdGF0ZSIsIm9uQ29sdW1uUmVzaXplIiwicmVkdWNlciIsIlJlYWN0LnVzZVJlZHVjZXIiLCJTVEVQIiwiUFJFQ0lTSU9OX01PRElGSUVSIiwiUFJFQ0lTSU9OX0ZBQ1RPUiIsInVzZUtleWJvYXJkUmVzaXppbmciLCJzZXRDb2x1bW5JZCIsIm9uQ2hhbmdlUmVmIiwiY29sdW1uUmVzaXplU3RhdGVSZWYiLCJyZXNpemVIYW5kbGVSZWZzIiwia2V5Ym9hcmRIYW5kbGVyIiwicHJlY2lzaW9uTW9kaWZpZXIiLCJzdG9wRXZlbnQiLCJfcmVzaXplSGFuZGxlUmVmc19nZXRfY3VycmVudCIsIl9yZXNpemVIYW5kbGVSZWZzX2dldCIsImVuYWJsZUludGVyYWN0aXZlTW9kZSIsIl9vbkNoYW5nZVJlZl9jdXJyZW50IiwiZGlzYWJsZUludGVyYWN0aXZlTW9kZSIsIl9maW5kUHJldkZvY3VzYWJsZSIsInRvZ2dsZUludGVyYWN0aXZlTW9kZSIsImdldEtleWJvYXJkUmVzaXppbmdSZWYiLCJSZWFjdC5jcmVhdGVSZWYiLCJ0YWJzdGVyQXR0cnMiLCJkZWZhdWx0Q29sdW1uU2l6aW5nU3RhdGUiLCJ1c2VUYWJsZUNvbHVtblNpemluZ191bnN0YWJsZSIsInVzZVRhYmxlQ29sdW1uU2l6aW5nU3RhdGUiLCJnZXRDb2x1bW5TdHlsZXMiLCJtb3VzZUhhbmRsZXIiLCJnZXRLZXlib2FyZFJlc2l6aW5nUHJvcHMiLCJlbmFibGVLZXlib2FyZE1vZGUiLCJnZXRDb2x1bW5zIiwiZ2V0T25Nb3VzZURvd24iLCJfY29sdW1uc18iLCJhc2lkZSIsImRlZmF1bHRSb3dFbmhhbmNlciIsInJvdyIsInVzZVRhYmxlRmVhdHVyZXMiLCJwbHVnaW5zIiwiZ2V0Um93cyIsInJvd0VuaGFuY2VyIiwicGx1Z2luIiwiZGVmYXVsdENvbXBhcmUiLCJkZWZhdWx0UmVuZGVyQ2VsbCIsImRlZmF1bHRSZW5kZXJIZWFkZXJDZWxsIiwiY3JlYXRlVGFibGVDb2x1bW4iLCJyZW5kZXJDZWxsIiwicmVuZGVySGVhZGVyQ2VsbCIsImNvbXBhcmUiLCJ0YWJsZUNvbnRleHQiLCJ0YWJsZUNvbnRleHREZWZhdWx0VmFsdWUiLCJUYWJsZUNvbnRleHRQcm92aWRlciIsInVzZVRhYmxlQ29udGV4dCIsInVzZVRhYmxlQ2VsbF91bnN0YWJsZSIsIm5vTmF0aXZlRWxlbWVudHMiLCJyb290Q29tcG9uZW50IiwicmVuZGVyVGFibGVDZWxsX3Vuc3RhYmxlIiwidGFibGVDZWxsQ2xhc3NOYW1lIiwidGFibGVDZWxsQ2xhc3NOYW1lcyIsInVzZVRhYmxlTGF5b3V0U3R5bGVzIiwidXNlRmxleExheW91dFN0eWxlcyIsInVzZVRhYmxlQ2VsbFN0eWxlc191bnN0YWJsZSIsImxheW91dFN0eWxlcyIsIlRhYmxlQ2VsbCIsInRhYmxlSGVhZGVyQ29udGV4dCIsInRhYmxlSGVhZGVyQ29udGV4dERlZmF1bHRWYWx1ZSIsIlRhYmxlSGVhZGVyQ29udGV4dFByb3ZpZGVyIiwidXNlSXNJblRhYmxlSGVhZGVyIiwidXNlVGFibGVSb3dfdW5zdGFibGUiLCJmb2N1c1dpdGhpblJlZiIsImlzSGVhZGVyUm93IiwiX3Byb3BzX2FwcGVhcmFuY2UiLCJyZW5kZXJUYWJsZVJvd191bnN0YWJsZSIsInRhYmxlU2VsZWN0aW9uQ2VsbENsYXNzTmFtZXMiLCJ1c2VUYWJsZVNlbGVjdGlvbkNlbGxTdHlsZXNfdW5zdGFibGUiLCJ0YWJsZVJvd0NsYXNzTmFtZSIsInRhYmxlUm93Q2xhc3NOYW1lcyIsInVzZVRhYmxlUm93U3R5bGVzX3Vuc3RhYmxlIiwiVGFibGVSb3ciLCJ1c2VUYWJsZUJvZHlfdW5zdGFibGUiLCJyZW5kZXJUYWJsZUJvZHlfdW5zdGFibGUiLCJ0YWJsZUJvZHlDbGFzc05hbWUiLCJ1c2VUYWJsZUJvZHlTdHlsZXNfdW5zdGFibGUiLCJUYWJsZUJvZHkiLCJ1c2VUYWJsZV91bnN0YWJsZSIsIl9wcm9wc19zaXplIiwiX3Byb3BzX25vTmF0aXZlRWxlbWVudHMiLCJfcHJvcHNfc29ydGFibGUiLCJyZW5kZXJUYWJsZV91bnN0YWJsZSIsInRhYmxlQ2xhc3NOYW1lIiwidXNlVGFibGVTdHlsZXNfdW5zdGFibGUiLCJ1c2VUYWJsZUNvbnRleHRWYWx1ZXNfdW5zdGFibGUiLCJzb3J0YWJsZSIsIlRhYmxlIiwidXNlVGFibGVIZWFkZXJfdW5zdGFibGUiLCJyZW5kZXJUYWJsZUhlYWRlcl91bnN0YWJsZSIsInRhYmxlSGVhZGVyQ2xhc3NOYW1lIiwidXNlVGFibGVIZWFkZXJTdHlsZXNfdW5zdGFibGUiLCJUYWJsZUhlYWRlciIsInNvcnRJY29ucyIsInVzZVRhYmxlSGVhZGVyQ2VsbF91bnN0YWJsZSIsImNvbnRleHRTb3J0YWJsZSIsImJ1dHRvblNsb3QiLCJfcHJvcHNfc29ydERpcmVjdGlvbiIsInJlbmRlclRhYmxlSGVhZGVyQ2VsbF91bnN0YWJsZSIsInRhYmxlSGVhZGVyQ2VsbENsYXNzTmFtZXMiLCJ1c2VUYWJsZUhlYWRlckNlbGxTdHlsZXNfdW5zdGFibGUiLCJUYWJsZUhlYWRlckNlbGwiLCJ1c2VUYWJsZVNlbGVjdGlvbkNlbGxfdW5zdGFibGUiLCJ0YWJsZUNlbGxTdGF0ZSIsInN1YnRsZSIsImhpZGRlbiIsImludmlzaWJsZSIsInJlbmRlclRhYmxlU2VsZWN0aW9uQ2VsbF91bnN0YWJsZSIsIlRhYmxlU2VsZWN0aW9uQ2VsbCIsInRhYmxlQXZhdGFyU2l6ZU1hcCIsInVzZVRhYmxlQ2VsbExheW91dF91bnN0YWJsZSIsInJlbmRlclRhYmxlQ2VsbExheW91dF91bnN0YWJsZSIsInRhYmxlQ2VsbExheW91dENsYXNzTmFtZXMiLCJ1c2VUYWJsZUNlbGxMYXlvdXRTdHlsZXNfdW5zdGFibGUiLCJwcmltYXJ5IiwibWVkaWFTaXplZFN0eWxlcyIsInVzZVRhYmxlQ2VsbExheW91dENvbnRleHRWYWx1ZXNfdW5zdGFibGUiLCJhdmF0YXJTaXplIiwiVGFibGVDZWxsTGF5b3V0IiwidXNlQ2FyZFNlbGVjdGFibGUiLCJyZWZlcmVuY2VMYWJlbCIsInJlZmVyZW5jZUlkIiwiY2FyZFJlZiIsImNoZWNrYm94IiwiZmxvYXRpbmdBY3Rpb24iLCJjaGVja2JveFJlZiIsInNlbGVjdGFibGUiLCJzZWxlY3RGb2N1c2VkIiwic2V0U2VsZWN0Rm9jdXNlZCIsInNob3VsZFJlc3RyaWN0VHJpZ2dlckFjdGlvbiIsImZvY3VzYWJsZUVsZW1lbnRzIiwiaXNFbGVtZW50SW5Gb2N1c2FibGVHcm91cCIsImlzQ2hlY2tib3hTbG90Iiwib25DaGFuZ2VIYW5kbGVyIiwibmV3Q2hlY2tlZFZhbHVlIiwib25LZXlEb3duSGFuZGxlciIsImNoZWNrYm94U2xvdCIsInNlbGVjdGFibGVDaGVja2JveFByb3BzIiwiZmxvYXRpbmdBY3Rpb25TbG90Iiwic2VsZWN0YWJsZUNhcmRQcm9wcyIsImNhcmRDb250ZXh0IiwiY2FyZENvbnRleHREZWZhdWx0VmFsdWUiLCJDYXJkUHJvdmlkZXIiLCJmb2N1c01hcCIsInVzZUNhcmRJbnRlcmFjdGl2ZSIsImluaXRpYWxGb2N1c01vZGUiLCJpbnRlcmFjdGl2ZSIsImZvY3VzTW9kZSIsImludGVyYWN0aXZlRm9jdXNBdHRyaWJ1dGVzIiwidXNlQ2FyZF91bnN0YWJsZSIsIm9yaWVudGF0aW9uIiwic2V0UmVmZXJlbmNlSWQiLCJzZXRSZWZlcmVuY2VMYWJlbCIsImNhcmRCYXNlUmVmIiwicmVuZGVyQ2FyZF91bnN0YWJsZSIsImNhcmRDb250ZXh0VmFsdWUiLCJjYXJkQ2xhc3NOYW1lcyIsInVzZUNhcmRSZXNldFN0eWxlcyIsInVzZUNhcmRTdHlsZXMiLCJ1c2VDYXJkU3R5bGVzX3Vuc3RhYmxlIiwib3JpZW50YXRpb25NYXAiLCJzaXplTWFwIiwiYXBwZWFyYW5jZU1hcCIsInNlbGVjdGVkTWFwIiwiaW50ZXJhY3RpdmVNYXAiLCJpc1NlbGVjdGFibGVPckludGVyYWN0aXZlIiwiZm9jdXNlZENsYXNzTmFtZSIsInVzZUNhcmRDb250ZXh0VmFsdWUiLCJzZWxlY3RhYmxlQTExeVByb3BzIiwiQ2FyZCIsImludGVybmFsU2V0U3ltYm9sIiwiX2ludGVybmFsU2V0U3ltYm9sIiwiX1N5bWJvbF9oYXNJbnN0YW5jZSIsIl9TeW1ib2xfaXRlcmF0b3IiLCJJbW11dGFibGVTZXQiLCJpbW11dGFibGVTZXQiLCJpbnRlcm5hbFNldCIsInVzZUNvbnRyb2xsYWJsZU9wZW5JdGVtcyIsImNyZWF0ZU5leHRPcGVuSXRlbXMiLCJwcmV2aW91c09wZW5JdGVtcyIsImludGVybmFsTWFwU3ltYm9sIiwiX2ludGVybmFsTWFwU3ltYm9sIiwiSW1tdXRhYmxlTWFwIiwiaW1tdXRhYmxlTWFwIiwibWFwRm4iLCJpdGVyYWJsZUFzVHVwbGUiLCJtYXAiLCJpbnRlcm5hbE1hcCIsInR1cGxpZnlDaGVja2VkSXRlbSIsImNyZWF0ZUNoZWNrZWRJdGVtcyIsInVzZU5lc3RlZENoZWNrZWRJdGVtcyIsImNyZWF0ZU5leHROZXN0ZWRDaGVja2VkSXRlbXMiLCJwcmV2aW91c0NoZWNrZWRJdGVtcyIsImRlZmF1bHRTdWJUcmVlQ29udGV4dFZhbHVlIiwiU3VidHJlZUNvbnRleHQiLCJ1c2VTdWJ0cmVlQ29udGV4dF91bnN0YWJsZSIsInRyZWVEYXRhVHlwZXMiLCJ1c2VSb290VHJlZSIsIm9wZW5JdGVtcyIsInJlcXVlc3QiLCJfcHJvcHNfb25PcGVuQ2hhbmdlIiwicmVxdWVzdENoZWNrZWRDaGFuZ2UiLCJfcHJvcHNfb25DaGVja2VkQ2hhbmdlIiwicmVxdWVzdE5hdmlnYXRpb24iLCJfcHJvcHNfb25OYXZpZ2F0aW9uIiwiaXNTY3JvbGxQcmV2ZW50ZWQiLCJyZXF1ZXN0VHJlZVJlc3BvbnNlIiwiZGVmYXVsdFRyZWVDb250ZXh0VmFsdWUiLCJUcmVlQ29udGV4dCIsInVzZVRyZWVDb250ZXh0X3Vuc3RhYmxlIiwiaGVhZGxlc3NUcmVlUm9vdElkIiwiVHJlZUl0ZW1Db250ZXh0IiwiVHJlZUl0ZW1Qcm92aWRlciIsInVzZVRyZWVJdGVtQ29udGV4dF91bnN0YWJsZSIsInVzZVN1YnRyZWUiLCJzdWJ0cmVlUmVmIiwicGFyZW50TGV2ZWwiLCJuZXh0VHlwZUFoZWFkRWxlbWVudCIsInRyZWVXYWxrZXIiLCJrZXlUb0xvd2VyQ2FzZSIsInR5cGVBaGVhZEZpbHRlciIsIl9lbGVtZW50X3RleHRDb250ZW50IiwidXNlUm92aW5nVGFiSW5kZXgiLCJjdXJyZW50RWxlbWVudFJlZiIsIndhbGtlclJlZiIsImluaXRpYWxpemUiLCJyb3ZlIiwidGFiYmFibGVDaGlsZCIsImZvY3VzT3B0aW9ucyIsImNyZWF0ZUhUTUxFbGVtZW50V2Fsa2VyIiwidGVtcG9yYXJ5RmlsdGVyIiwiZmlsdGVyUmVzdWx0IiwiX3RlbXBvcmFyeUZpbHRlciIsImxvY2FsRmlsdGVyIiwidHJlZUl0ZW1GaWx0ZXIiLCJ1c2VIVE1MRWxlbWVudFdhbGtlclJlZiIsInJvb3RSZWYiLCJ1c2VUcmVlTmF2aWdhdGlvbiIsImluaXRpYWxpemVSb3ZpbmdUYWJJbmRleCIsIndhbGtlclJvb3RSZWYiLCJyb290UmVmQ2FsbGJhY2siLCJnZXROZXh0RWxlbWVudCIsImxhc3RDaGlsZFJlY3Vyc2l2ZSIsImxhc3RFbGVtZW50IiwidXNlVHJlZV91bnN0YWJsZSIsInVzZU5lc3RlZFJvb3RUcmVlIiwidXNlTmVzdGVkU3VidHJlZSIsInNldE9wZW5JdGVtcyIsIm5hdmlnYXRpb24iLCJuZXh0T3Blbkl0ZW1zIiwibmV4dENoZWNrZWRJdGVtcyIsInVzZVRyZWVDb250ZXh0VmFsdWVzX3Vuc3RhYmxlIiwibGV2ZWwiLCJjb250ZXh0VHlwZSIsInRyZWVUeXBlIiwidHJlZUNsYXNzTmFtZXMiLCJ1c2VCYXNlU3R5bGVzIiwidXNlVHJlZVN0eWxlc191bnN0YWJsZSIsImJhc2VTdHlsZXMiLCJpc1N1YlRyZWUiLCJyb290U3VidHJlZUNvbnRleHRWYWx1ZSIsIlRyZWVQcm92aWRlciIsInJlbmRlclRyZWVfdW5zdGFibGUiLCJUcmVlIiwiZGF0YVRyZWVJdGVtVmFsdWVBdHRyTmFtZSIsInVzZVRyZWVJdGVtX3Vuc3RhYmxlIiwiY29udGV4dExldmVsIiwicGFyZW50VmFsdWUiLCJfcHJvcHNfcGFyZW50VmFsdWUiLCJpbnRlcm5hbFZhbHVlIiwiX3Byb3BzX3ZhbHVlIiwiaXRlbVR5cGUiLCJhcmlhU2VsZWN0ZWQiLCJhcmlhRXhwYW5kZWQiLCJhY3Rpb25zUmVmIiwiZXhwYW5kSWNvblJlZiIsImxheW91dFJlZiIsInNlbGVjdGlvblJlZiIsInRyZWVJdGVtUmVmIiwiX3Byb3BzX29wZW4iLCJnZXROZXh0T3BlbiIsIl9jdHhfY2hlY2tlZEl0ZW1zX2dldCIsImlzRXZlbnRGcm9tRXhwYW5kSWNvbiIsIl9zZWxlY3Rpb25SZWZfY3VycmVudCIsIl9wcm9wc19vbk9wZW5DaGFuZ2UxIiwiaGFuZGxlQ2hhbmdlIiwicmVuZGVyVHJlZUl0ZW1fdW5zdGFibGUiLCJ0cmVlSXRlbUxheW91dENsYXNzTmFtZXMiLCJ1c2VSb290QmFzZVN0eWxlcyIsInVzZUFjdGlvbnNCYXNlU3R5bGVzIiwidXNlQXNpZGVCYXNlU3R5bGVzIiwidXNlRXhwYW5kSWNvbkJhc2VTdHlsZXMiLCJ1c2VNYWluQmFzZVN0eWxlcyIsInVzZUljb25CYXNlU3R5bGVzIiwidXNlSWNvbkJlZm9yZVN0eWxlcyIsInVzZUljb25BZnRlclN0eWxlcyIsInVzZVRyZWVJdGVtTGF5b3V0U3R5bGVzX3Vuc3RhYmxlIiwibWFpbiIsImljb25BZnRlciIsImljb25CZWZvcmUiLCJleHBhbmRJY29uIiwiYWN0aW9ucyIsInJvb3RCYXNlU3R5bGVzIiwiYWN0aW9uc0Jhc2VTdHlsZXMiLCJhc2lkZUJhc2VTdHlsZXMiLCJtYWluQmFzZVN0eWxlcyIsImV4cGFuZEljb25CYXNlU3R5bGVzIiwiaWNvbkJhc2VTdHlsZXMiLCJpY29uQmVmb3JlU3R5bGVzIiwiaWNvbkFmdGVyU3R5bGVzIiwidHJlZUl0ZW1DbGFzc05hbWVzIiwidXNlVHJlZUl0ZW1TdHlsZXNfdW5zdGFibGUiLCJpc1N0YXRpY2FsbHlEZWZpbmVkTGV2ZWwiLCJ1c2VUcmVlSXRlbUNvbnRleHRWYWx1ZXNfdW5zdGFibGUiLCJpc0FjdGlvbnNWaXNpYmxlIiwiaXNBc2lkZVZpc2libGUiLCJUcmVlSXRlbSIsIlRyZWVJdGVtQ2hldnJvbiIsImV4cGFuZEljb25Sb3RhdGlvbiIsImV4cGFuZEljb25JbmxpbmVTdHlsZXMiLCJ1c2VUcmVlSXRlbUxheW91dF91bnN0YWJsZSIsImlzQWN0aW9uc1Zpc2libGVGcm9tUHJvcHMiLCJvbkFjdGlvblZpc2liaWxpdHlDaGFuZ2UiLCJzZXRJc0FjdGlvbnNWaXNpYmxlIiwiYWN0aW9uc1JlZkludGVybmFsIiwiaXNCcmFuY2giLCJzZXRBY3Rpb25zVmlzaWJsZUlmTm90RnJvbVN1YnRyZWUiLCJzZXRBY3Rpb25zSW52aXNpYmxlSWZOb3RGcm9tU3VidHJlZSIsImV4cGFuZEljb25SZWZzIiwiYXJyb3dOYXZpZ2F0aW9uUHJvcHMiLCJhY3Rpb25zUmVmcyIsImhhbmRsZUFjdGlvbnNCbHVyIiwiX3Byb3BzX2FjdGlvbnNfb25CbHVyIiwiX3Byb3BzX2FjdGlvbnMiLCJpc1JlbGF0ZWRUYXJnZXRGcm9tQWN0aW9ucyIsImhhc0FjdGlvbnMiLCJ0cmVlSXRlbUVsZW1lbnQiLCJoYW5kbGVNb3VzZU92ZXIiLCJoYW5kbGVNb3VzZU91dCIsImhhbmRsZUZvY3VzIiwiaGFuZGxlQmx1ciIsInJlbmRlclRyZWVJdGVtTGF5b3V0X3Vuc3RhYmxlIiwiVHJlZUl0ZW1MYXlvdXQiLCJnZXRJbnRlbnRJY29uIiwiaW50ZW50IiwidXNlTWVzc2FnZUJhclJlZmxvdyIsInJlZmxvd2luZ1JlZiIsInByZXZJbmxpbmVTaXplUmVmIiwiX2VudHJ5X2JvcmRlckJveFNpemUiLCJfZW50cnlfYm9yZGVyQm94U2l6ZV9faW5saW5lU2l6ZSIsImlubGluZVNpemUiLCJuZXh0UmVmbG93aW5nIiwic2Nyb2xsV2lkdGgiLCJtZXNzYWdlQmFyVHJhbnNpdGlvbkNvbnRleHQiLCJtZXNzYWdlQmFyVHJhbnNpdGlvbkNvbnRleHREZWZhdWx0VmFsdWUiLCJNZXNzYWdlQmFyVHJhbnNpdGlvbkNvbnRleHRQcm92aWRlciIsInVzZU1lc3NhZ2VCYXJUcmFuc2l0aW9uQ29udGV4dCIsInVzZU1lc3NhZ2VCYXJfdW5zdGFibGUiLCJsYXlvdXQiLCJwb2xpdGVuZXNzIiwiY29tcHV0ZWRQb2xpdGVuZXNzIiwiYXV0b1JlZmxvdyIsInJlZmxvd1JlZiIsInJlZmxvd2luZyIsImNvbXB1dGVkTGF5b3V0IiwidHJhbnNpdGlvbkNsYXNzTmFtZSIsIm5vZGVSZWYiLCJib2R5UmVmIiwiYW5ub3VuY2UiLCJ1c2VBbm5vdW5jZV91bnN0YWJsZSIsInRpdGxlSWQiLCJfYm9keVJlZl9jdXJyZW50IiwiX2FjdGlvbnNSZWZfY3VycmVudCIsImJvZHlNZXNzYWdlIiwiYWN0aW9uc01lc3NhZ2UiLCJtZXNzYWdlQmFyQ29udGV4dCIsIm1lc3NhZ2VCYXJDb250ZXh0RGVmYXVsdFZhbHVlIiwiTWVzc2FnZUJhckNvbnRleHRQcm92aWRlciIsInVzZU1lc3NhZ2VCYXJDb250ZXh0IiwicmVuZGVyTWVzc2FnZUJhcl91bnN0YWJsZSIsImNvbnRleHRzIiwibWVzc2FnZUJhckNsYXNzTmFtZXMiLCJ1c2VSZWZsb3dTcGFjZXJCYXNlU3R5bGVzIiwidXNlSWNvbkludGVudFN0eWxlcyIsInVzZVJvb3RJbnRlbnRTdHlsZXMiLCJ1c2VNZXNzYWdlQmFyU3R5bGVzX3Vuc3RhYmxlIiwiaWNvbkludGVudFN0eWxlcyIsInJvb3RJbnRlbnRTdHlsZXMiLCJyZWZsb3dTcGFjZXJTdHlsZXMiLCJ1c2VNZXNzYWdlQmFyQ29udGV4dFZhbHVlX3Vuc3RhYmxlIiwiTWVzc2FnZUJhciIsInVzZU1lc3NhZ2VCYXJCb2R5X3Vuc3RhYmxlIiwicmVuZGVyTWVzc2FnZUJhckJvZHlfdW5zdGFibGUiLCJtZXNzYWdlQmFyQm9keUNsYXNzTmFtZXMiLCJ1c2VNZXNzYWdlQmFyQm9keVN0eWxlc191bnN0YWJsZSIsIk1lc3NhZ2VCYXJCb2R5IiwidXNlTWVzc2FnZUJhckdyb3VwX3Vuc3RhYmxlIiwiX3Byb3BzX2NoaWxkcmVuIiwiX3Byb3BzX2FuaW1hdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfaW5oZXJpdHNMb29zZSIsInNldFByb3RvdHlwZU9mIiwiUmVhY3RQcm9wVHlwZXNTZWNyZXQiLCJSZWFjdFByb3BUeXBlc1NlY3JldF8xIiwiZW1wdHlGdW5jdGlvbiIsImVtcHR5RnVuY3Rpb25XaXRoUmVzZXQiLCJmYWN0b3J5V2l0aFRocm93aW5nU2hpbXMiLCJzaGltIiwicHJvcE5hbWUiLCJjb21wb25lbnROYW1lIiwicHJvcEZ1bGxOYW1lIiwic2VjcmV0IiwiZ2V0U2hpbSIsIlJlYWN0UHJvcFR5cGVzIiwicHJvcFR5cGVzTW9kdWxlIiwiVHJhbnNpdGlvbkdyb3VwQ29udGV4dCIsImZvcmNlUmVmbG93IiwiVU5NT1VOVEVEIiwiRVhJVEVEIiwiRU5URVJJTkciLCJFTlRFUkVEIiwiRVhJVElORyIsIlRyYW5zaXRpb24iLCJfUmVhY3QkQ29tcG9uZW50IiwiX3RoaXMiLCJwYXJlbnRHcm91cCIsImluaXRpYWxTdGF0dXMiLCJuZXh0SW4iLCJfcHJvdG8iLCJwcmV2UHJvcHMiLCJuZXh0U3RhdHVzIiwidGltZW91dCIsIm1vdW50aW5nIiwiUmVhY3RET00iLCJfdGhpczIiLCJhcHBlYXJpbmciLCJtYXliZU5vZGUiLCJtYXliZUFwcGVhcmluZyIsInRpbWVvdXRzIiwiZW50ZXJUaW1lb3V0IiwiX3RoaXMzIiwibmV4dFN0YXRlIiwiX3RoaXM0IiwiZG9lc05vdEhhdmVUaW1lb3V0T3JMaXN0ZW5lciIsIm1heWJlTmV4dENhbGxiYWNrIiwiX3RoaXMkcHJvcHMiLCJjaGlsZFByb3BzIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImdldENoaWxkTWFwcGluZyIsIm1hcHBlciIsIm1lcmdlQ2hpbGRNYXBwaW5ncyIsImdldFZhbHVlRm9yS2V5IiwibmV4dEtleXNQZW5kaW5nIiwicGVuZGluZ0tleXMiLCJwcmV2S2V5IiwiY2hpbGRNYXBwaW5nIiwibmV4dEtleSIsInBlbmRpbmdOZXh0S2V5IiwiZ2V0UHJvcCIsImdldEluaXRpYWxDaGlsZE1hcHBpbmciLCJvbkV4aXRlZCIsImNsb25lRWxlbWVudCIsImdldE5leHRDaGlsZE1hcHBpbmciLCJuZXh0UHJvcHMiLCJwcmV2Q2hpbGRNYXBwaW5nIiwibmV4dENoaWxkTWFwcGluZyIsImhhc1ByZXYiLCJoYXNOZXh0IiwicHJldkNoaWxkIiwiaXNMZWF2aW5nIiwiVHJhbnNpdGlvbkdyb3VwIiwiaGFuZGxlRXhpdGVkIiwiZmlyc3RSZW5kZXIiLCJjdXJyZW50Q2hpbGRNYXBwaW5nIiwiY2hpbGRGYWN0b3J5IiwiZ2V0Q2xhc3NOYW1lIiwiZW50ZXJDbGFzc05hbWUiLCJleGl0Q2xhc3NOYW1lIiwiYW5pbWF0ZSIsIk1lc3NhZ2VCYXJUcmFuc2l0aW9uIiwiTWVzc2FnZUJhclRyYW5zaXRpb25Jbm5lciIsInJlbmRlck1lc3NhZ2VCYXJHcm91cF91bnN0YWJsZSIsIm1lc3NhZ2VCYXJHcm91cENsYXNzTmFtZXMiLCJ1c2VNZXNzYWdlQmFyR3JvdXBTdHlsZXNfdW5zdGFibGUiLCJNZXNzYWdlQmFyR3JvdXAiLCJ1c2VUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlIiwibWVkaWFMZW5ndGgiLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJCb2R5X3Vuc3RhYmxlIiwidGVhY2hpbmdQb3BvdmVyQm9keUNsYXNzTmFtZXMiLCJ1c2VNZWRpYVN0eWxlcyIsInVzZVRlYWNoaW5nUG9wb3ZlckJvZHlTdHlsZXNfdW5zdGFibGUiLCJtZWRpYVN0eWxlcyIsIlRlYWNoaW5nUG9wb3ZlckJvZHkiLCJjcmVhdGVDYXJvdXNlbFN0b3JlIiwiY2Fyb3VzZWxTdG9yZSIsImVtaXRDaGFuZ2UiLCJwb3MiLCJjYXJvdXNlbENvbnRleHREZWZhdWx0VmFsdWUiLCJDYXJvdXNlbENvbnRleHQiLCJDYXJvdXNlbFByb3ZpZGVyIiwidXNlQ2Fyb3VzZWxDb250ZXh0X3Vuc3RhYmxlIiwiQ0FST1VTRUxfSVRFTSIsIkNBUk9VU0VMX0FDVElWRV9JVEVNIiwidXNlQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlIiwicmVuZGVyQ2Fyb3VzZWxJdGVtX3Vuc3RhYmxlIiwiQ2Fyb3VzZWxJdGVtIiwidXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkX3Vuc3RhYmxlIiwicmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkX3Vuc3RhYmxlIiwidGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxDYXJkQ2xhc3NOYW1lcyIsInVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZFN0eWxlc191bnN0YWJsZSIsIlRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ2FyZCIsInVzZUNhcm91c2VsV2Fsa2VyX3Vuc3RhYmxlIiwiaHRtbFJlZiIsImFjdGl2ZUVsIiwiX3RyZWVXYWxrZXJSZWZfY3VycmVudCIsIm5leHROb2RlIiwidXNlQ2Fyb3VzZWxfdW5zdGFibGUiLCJvblZhbHVlQ2hhbmdlIiwib25GaW5pc2giLCJjYXJvdXNlbFJlZiIsImNhcm91c2VsV2Fsa2VyIiwiX3Jvb3RSZWZfY3VycmVudCIsImFsbEl0ZW1zIiwibXV0YXRpb25MaXN0IiwiYWRkZWROb2RlIiwibmV3Tm9kZSIsInByZXZpb3VzTm9kZSIsIl9wcmV2aW91c05vZGVfdmFsdWUiLCJyZW1vdmVkVmFsdWUiLCJzZWxlY3RQYWdlQnlEaXJlY3Rpb24iLCJuZXdQYWdlIiwic2VsZWN0UGFnZUJ5VmFsdWUiLCJfdmFsdWUiLCJ1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbF91bnN0YWJsZSIsImhhbmRsZUZpbmlzaCIsIl9wcm9wc19vbkZpbmlzaCIsImNhcm91c2VsIiwicmVuZGVyVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxfdW5zdGFibGUiLCJ0ZWFjaGluZ1BvcG92ZXJDYXJvdXNlbENsYXNzTmFtZXMiLCJ1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbFN0eWxlc191bnN0YWJsZSIsInVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsQ29udGV4dFZhbHVlc191bnN0YWJsZSIsIlRlYWNoaW5nUG9wb3ZlckNhcm91c2VsIiwidXNlQ2Fyb3VzZWxWYWx1ZXNfdW5zdGFibGUiLCJnZXRTbmFwc2hvdCIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwidXNlVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b25fdW5zdGFibGUiLCJuYXZUeXBlIiwiYWx0VGV4dCIsInBvcG92ZXJBcHBlYXJhbmNlIiwic25hcHNob3QiLCJhY3RpdmVWYWx1ZSIsImhhbmRsZUJ1dHRvbkNsaWNrIiwiaXNUcmFpbGluZyIsImJ1dHRvbkFwcGVhcmFuY2VUeXBlIiwiYnV0dG9uQ2hpbGQiLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3RlckJ1dHRvbl91bnN0YWJsZSIsInRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uQ2xhc3NOYW1lcyIsInVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQnV0dG9uU3R5bGVzX3Vuc3RhYmxlIiwiVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXJCdXR0b24iLCJ1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3Rlcl91bnN0YWJsZSIsImluaXRpYWxTdGVwVGV4dCIsImZpbmFsU3RlcFRleHQiLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbEZvb3Rlcl91bnN0YWJsZSIsInRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyQ2xhc3NOYW1lcyIsInVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsRm9vdGVyU3R5bGVzX3Vuc3RhYmxlIiwiVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxGb290ZXIiLCJ1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdl91bnN0YWJsZSIsImZvY3VzYWJsZUdyb3VwQXR0ciIsInZhbHVlSWRDb250ZXh0IiwidmFsdWVJZENvbnRleHREZWZhdWx0VmFsdWUiLCJ1c2VWYWx1ZUlkQ29udGV4dCIsIlZhbHVlSWRDb250ZXh0UHJvdmlkZXIiLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdl91bnN0YWJsZSIsInJlbmRlck5hdkJ1dHRvbiIsInRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2Q2xhc3NOYW1lcyIsInVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2U3R5bGVzX3Vuc3RhYmxlIiwiVGVhY2hpbmdQb3BvdmVyQ2Fyb3VzZWxOYXYiLCJ1c2VUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbl91bnN0YWJsZSIsImlzU2VsZWN0ZWQiLCJkZWZhdWx0VGFiUHJvcHMiLCJfY2Fyb3VzZWxCdXR0b24iLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbl91bnN0YWJsZSIsInRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uQ2xhc3NOYW1lcyIsInVzZVRlYWNoaW5nUG9wb3ZlckNhcm91c2VsTmF2QnV0dG9uU3R5bGVzX3Vuc3RhYmxlIiwiYnJhbmRTdHlsZXMiLCJUZWFjaGluZ1BvcG92ZXJDYXJvdXNlbE5hdkJ1dHRvbiIsInVzZVRlYWNoaW5nUG9wb3ZlclN1cmZhY2VfdW5zdGFibGUiLCJ0ZWFjaGluZ1BvcG92ZXJTdXJmYWNlQ2xhc3NOYW1lcyIsInVzZVRlYWNoaW5nUG9wb3ZlclN1cmZhY2VTdHlsZXNfdW5zdGFibGUiLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJTdXJmYWNlX3Vuc3RhYmxlIiwiVGVhY2hpbmdQb3BvdmVyU3VyZmFjZSIsInVzZVRlYWNoaW5nUG9wb3ZlclRpdGxlX3Vuc3RhYmxlIiwiZGlzbWlzc0J1dHRvbiIsIm9uRGlzbWlzc0J1dHRvbkNsaWNrIiwicmVuZGVyVGVhY2hpbmdQb3BvdmVyVGl0bGVfdW5zdGFibGUiLCJ0ZWFjaGluZ1BvcG92ZXJUaXRsZUNsYXNzTmFtZXMiLCJ1c2VUZWFjaGluZ1BvcG92ZXJUaXRsZVN0eWxlc191bnN0YWJsZSIsIlRlYWNoaW5nUG9wb3ZlclRpdGxlIiwidXNlVGVhY2hpbmdQb3BvdmVyX3Vuc3RhYmxlIiwicG9wb3ZlclN0YXRlIiwiX3Byb3BzX3dpdGhBcnJvdyIsIl9wcm9wc190cmFwRm9jdXMiLCJyZW5kZXJUZWFjaGluZ1BvcG92ZXJfdW5zdGFibGUiLCJUZWFjaGluZ1BvcG92ZXIiLCJJbVNwaW5uZXIyIiwiSW1DaGVja21hcmsiLCJlbnZpcm9ubWVudHMiLCJpc1Byb2R1Y3Rpb24iLCJFbnZpcm9ubWVudEJhbm5lciIsImVudmlyb25tZW50IiwiTm90aWZpY2F0aW9ucyIsImxhdGVzdEVycm9ycyIsIm5vdGlmaWNhdGlvbnMiLCJjdXJyZW50UGFnZSIsImRpcnR5QmFubmVyU2V0dGluZ3MiLCJzdWJtaXNzaW9uU3RhdGUiLCJzZXRTdWJtaXNzaW9uU3RhdGUiLCJhcHBsaWNhYmxlTm90aWZpY2F0aW9ucyIsIm5vdGlmaWNhdGlvbiIsIlNIT1dfTUFYX0VSUk9SUyIsIlNIT1dfTUFYX05PVElGSUNBVElPTlMiLCJpbnZhbGlkU3VibWlzc2lvblByZXJlcXVpc2l0ZXMiLCJwcmVyZXF1aXNpdGUiLCJtZXNzYWdlTGlzdCIsImVycm9yTWVzc2FnZXMiLCJhcHBsaWNhYmxlTm90aWZpY2F0aW9uTWVzc2FnZXMiLCJkaXJ0eUNoYW5nZXNNZXNzYWdlIiwibWVzc2FnZUJhciIsImdldFdpbmRvd1dpZHRoIiwidXNlV2luZG93V2lkdGgiLCJ3aW5kb3dXaWR0aCIsInNldHdpbmRvd1dpZHRoIiwiTG9hZGluZ1NwaW5uZXIiLCJCYXNlUGFnZSIsIkxvYWRpbmdCYXNlUGFnZSIsIkRhdGVIZWxwZXIiLCJkYXRlIiwiZGF0ZU9ubHkiLCJ0b2RheURhdGVDb21wb25lbnQiLCJzZWNvbmRzIiwiRmFBcnJvd1JpZ2h0IiwiRmFDaXJjbGUiLCJGYUV4Y2xhbWF0aW9uVHJpYW5nbGUiLCJGYUhvbWUiLCJGYUluZm9DaXJjbGUiLCJGYVNlYXJjaCIsIkZhVXNlciIsIkJzRmlsbFF1ZXN0aW9uQ2lyY2xlRmlsbCIsIkJzQXN0ZXJpc2siLCJCc0NoZWNrTGciLCJCc0NoZXZyb25Eb3duIiwiQnNDaGV2cm9uVXAiLCJCc1NvcnREb3duIiwiQnNTb3J0VXAiLCJUb29sdGlwIiwiaWRDb3VudGVyIiwiY2JUb0NiIiwibWVudU5vZGUiLCJjb21wdXRlU2Nyb2xsSW50b1ZpZXciLCJpc09yQ29udGFpbnNOb2RlIiwidGltZSIsIl9sZW4iLCJfa2V5IiwiY2FsbEFsbEV2ZW50SGFuZGxlcnMiLCJfbGVuMiIsImZucyIsIl9rZXkyIiwiX2xlbjMiLCJfa2V5MyIsImhhbmRsZVJlZnMiLCJfbGVuNCIsIl9rZXk0IiwiZ2VuZXJhdGVJZCIsImdldEExMXlTdGF0dXNNZXNzYWdlJDEiLCJpc09wZW4iLCJyZXN1bHRDb3VudCIsInByZXZpb3VzUmVzdWx0Q291bnQiLCJ1bndyYXBBcnJheSIsImlzRE9NRWxlbWVudCIsImdldEVsZW1lbnRQcm9wcyIsInN0YXRlS2V5cyIsInBpY2tTdGF0ZSIsImdldFN0YXRlIiwiaXNDb250cm9sbGVkUHJvcCIsIm5vcm1hbGl6ZUFycm93S2V5Iiwia2V5Q29kZSIsImdldE5leHRXcmFwcGluZ0luZGV4IiwibW92ZUFtb3VudCIsImJhc2VJbmRleCIsIml0ZW1Db3VudCIsImdldEl0ZW1Ob2RlRnJvbUluZGV4IiwiaXRlbXNMYXN0SW5kZXgiLCJuZXdJbmRleCIsIm5vbkRpc2FibGVkTmV3SW5kZXgiLCJnZXROZXh0Tm9uRGlzYWJsZWRJbmRleCIsImN1cnJlbnRFbGVtZW50Tm9kZSIsInRhcmdldFdpdGhpbkRvd25zaGlmdCIsImRvd25zaGlmdEVsZW1lbnRzIiwiY2hlY2tBY3RpdmVFbGVtZW50IiwiY29udGV4dE5vZGUiLCJjbGVhbnVwU3RhdHVzIiwiZG9jdW1lbnRQcm9wIiwiZ2V0U3RhdHVzRGl2Iiwic2V0U3RhdHVzIiwiZGl2Iiwic3RhdHVzRGl2IiwidW5rbm93biIsIm1vdXNlVXAiLCJpdGVtTW91c2VFbnRlciIsImtleURvd25BcnJvd1VwIiwia2V5RG93bkFycm93RG93biIsImtleURvd25Fc2NhcGUiLCJrZXlEb3duRW50ZXIiLCJrZXlEb3duSG9tZSIsImtleURvd25FbmQiLCJjbGlja0l0ZW0iLCJibHVySW5wdXQiLCJjaGFuZ2VJbnB1dCIsImtleURvd25TcGFjZUJ1dHRvbiIsImNsaWNrQnV0dG9uIiwiYmx1ckJ1dHRvbiIsImNvbnRyb2xsZWRQcm9wVXBkYXRlZFNlbGVjdGVkSXRlbSIsInRvdWNoRW5kIiwic3RhdGVDaGFuZ2VUeXBlcyQzIiwiRG93bnNoaWZ0IiwiaGlnaGxpZ2h0ZWRJbmRleCIsIm90aGVyU3RhdGVUb1NldCIsIml0ZW1JbmRleCIsInN0YXRlVG9TZXQiLCJpc0l0ZW1TZWxlY3RlZCIsIm9uQ2hhbmdlQXJnIiwib25TdGF0ZUNoYW5nZUFyZyIsImlzU3RhdGVUb1NldEZ1bmN0aW9uIiwibmV3U3RhdGVUb1NldCIsIl90ZW1wMiIsInJlZktleSIsInN1cHByZXNzUmVmRXJyb3IiLCJhbW91bnQiLCJuZXh0SGlnaGxpZ2h0ZWRJbmRleCIsIml0ZW1Ob2RlIiwibmV3SGlnaGxpZ2h0ZWRJbmRleCIsIl90ZW1wMyIsIm9uUHJlc3MiLCJlbmFibGVkRXZlbnRIYW5kbGVycyIsImV2ZW50SGFuZGxlcnMiLCJibHVyVGFyZ2V0IiwiX3RlbXA0Iiwib25JbnB1dCIsIm9uQ2hhbmdlVGV4dCIsIm9uQ2hhbmdlS2V5IiwiZG93bnNoaWZ0QnV0dG9uSXNBY3RpdmUiLCJfdGVtcDUiLCJfdGVtcDYiLCJfdGVtcDciLCJvblNlbGVjdEtleSIsImN1c3RvbUNsaWNrSGFuZGxlciIsInNlbGVjdGVkSXRlbSIsImRlZmF1bHRIaWdobGlnaHRlZEluZGV4IiwiX2hpZ2hsaWdodGVkSW5kZXgiLCJkZWZhdWx0SXNPcGVuIiwiX2lzT3BlbiIsIl9pbnB1dFZhbHVlIiwiX3NlbGVjdGVkSXRlbSIsIl9zdGF0ZSIsInN0YXRlVG9NZXJnZSIsIml0ZW1Ub1N0cmluZyIsImdldFJvb3RQcm9wcyIsImdldFRvZ2dsZUJ1dHRvblByb3BzIiwiZ2V0TGFiZWxQcm9wcyIsImdldE1lbnVQcm9wcyIsImdldElucHV0UHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJvcGVuTWVudSIsImNsb3NlTWVudSIsInRvZ2dsZU1lbnUiLCJzZWxlY3RJdGVtIiwic2VsZWN0SXRlbUF0SW5kZXgiLCJzZWxlY3RIaWdobGlnaHRlZEl0ZW0iLCJzZXRIaWdobGlnaHRlZEluZGV4IiwiY2xlYXJJdGVtcyIsInNldEl0ZW1Db3VudCIsInVuc2V0SXRlbUNvdW50Iiwib25Nb3VzZVVwIiwib25Ub3VjaFN0YXJ0Iiwib25Ub3VjaE1vdmUiLCJvblRvdWNoRW5kIiwiY29udGV4dFdpdGhpbkRvd25zaGlmdCIsImN1cnJlbnRIaWdobGlnaHRlZEluZGV4IiwicHJldkhpZ2hsaWdodGVkSW5kZXgiLCJwcmV2SXRlbSIsIkRvd25zaGlmdCQxIiwic3RhdGVSZWR1Y2VyIiwiZ2V0QTExeVNlbGVjdGlvbk1lc3NhZ2UiLCJzZWxlY3Rpb25QYXJhbWV0ZXJzIiwiaXRlbVRvU3RyaW5nTG9jYWwiLCJnZXRBMTF5TWVzc2FnZSIsImRvY3VtZW50IiwiZGVmYXVsdFByb3BzJDMiLCJQcm9wVHlwZXMiLCJnZXRBMTF5U3RhdHVzTWVzc2FnZSIsImdldEExMXlSZW1vdmFsTWVzc2FnZSIsInJlbW92ZWRTZWxlY3RlZEl0ZW0iLCJMb29rdXBGaWVsZCIsInNlYXJjaFRlcm1JbnB1dFJlZiIsImNsZWFyQnV0dG9uUmVmIiwiYWRkaXRpb25hbElucHV0UHJvcHMiLCJzZWFyY2hUZXJtIiwic2V0U2VhcmNoVGVybSIsImlzRm9jdXNlZCIsInNldElzRm9jdXNlZCIsImlzU2VsZWN0ZWRPcHRpb25Ib3ZlcmVkIiwic2V0SXNTZWxlY3RlZE9wdGlvbkhvdmVyZWQiLCJNQVhfUkVTVUxUU19TSE9XTiIsImZpbHRlcmVkT3B0aW9ucyIsInBpY2thYmxlT3B0aW9ucyIsIndvcmQiLCJtYXRjaENvdW50IiwiaGFuZGxlS2V5UHJlc3MiLCJvdmVybGF5Q2FyZCIsImluZm8iLCJnZXRDdXJyZW50VGlsZUxheW91dCIsInBhZ2VXaWR0aCIsIkFkdmFuY2VkRmlsdGVyUGFuZWwiLCJyZXNldEtleSIsInNldFJlc2V0S2V5IiwicmVzZXRDcmVhdGVkQnlGaWVsZCIsInRpbGVHcmlkTGF5b3V0Iiwic2V0VGlsZUdyaWRMYXlvdXQiLCJyZXNldEFkdmFuY2VkU2VhcmNoRmlsdGVycyIsImZpbHRlclRvRGlzcGxheSIsImRldGVybWluZUZpbHRlclR5cGUiLCJmaWx0ZXJPYmplY3QiLCJmaWx0ZXJUeXBlIiwiT3B0aW9uU2V0RmlsdGVyIiwiTG9va3VwRmlsdGVyIiwic2VsZWN0ZWRPcHRpb25JZCIsInNldFNlbGVjdGVkT3B0aW9uSWQiLCJGaWx0ZXJUaWxlIiwib25DbGlja1RpbGUiLCJhdHRyaWJ1dGVzIiwiTWFuYWdlbWVudFBhbmVsIiwic2VhcmNoSW5wdXQiLCJzZXRTZWFyY2hJbnB1dCIsInNob3dBZHZhbmNlZEZpbHRlcnMiLCJzZXRTaG93QWR2YW5jZWRGaWx0ZXJzIiwiaW5pdGlhbEZpbHRlckdyb3VwcyIsInJlbmRlclRpbGVDb250ZW50Iiwic3VtbWFyeVNlY3Rpb24iLCJmaWx0ZXJHcm91cCIsInRpbGUiLCJpZHMiLCJmaWx0ZXJHcm91cEluZGV4IiwidGlsZUluZGV4IiwidG9Mb2FkaW5nRGF0YSIsImxvYWRpbmdEYXRhIiwiaWZMb2FkZWQiLCJXSVRIX0JJU1RFQ0hfVE9PTFRJUCIsIldJVEhfWU9VX1RPT0xUSVAiLCJPTl9IT0xEX1RPT0xUSVAiLCJJTkNJREVOVF9UT09MVElQIiwiU1VQUE9SVF9SRVFVRVNUX1RPT0xUSVAiLCJDSEFOR0VfVE9PTFRJUCIsIlBST0JMRU1fVE9PTFRJUCIsImdldENhc2VzRmlsdGVyR3JvdXBzIiwiZmlsdGVyZWRJbmNpZGVudHMiLCJzZWxlY3RlZFN0YXR1c1RpbGVJZHMiLCJzZXRTZWxlY3RlZFN0YXR1c1RpbGVJZHMiLCJzZWxlY3RlZFR5cGVUaWxlSWRzIiwic2V0U2VsZWN0ZWRUeXBlVGlsZUlkcyIsImluY2lkZW50IiwiaW5jaWRlbnRzIiwic29ydGluZ1Byb3BzIiwiaXNTb3J0ZWQiLCJvbkNsaWNrQ29sdW1uIiwic29ydEljb24iLCJnZXRDYXNlVGFibGVIZWFkZXJDZWxscyIsImdldENhc2VzU3VtbWFyeVNlY3Rpb25zIiwibnVtYmVyT2ZBY3RpdmVDYXNlcyIsImlzQWR2YW5jZWRGaWx0ZXJzU2hvd24iLCJEYXRlU2luY2UiLCJNYWpvckluY2lkZW50QmFubmVyIiwiQ2FzZXMiLCJjb250YWN0cyIsInNvcnRlZENvbHVtbiIsInNldFNvcnRlZENvbHVtbiIsImlzU29ydGVkQXNjZW5kaW5nIiwic2V0SXNTb3J0ZWRBc2NlbmRpbmciLCJzZWFyY2hCYXJDb250ZW50Iiwic2V0U2VhcmNoQmFyQ29udGVudCIsImFkdmFuY2VkU2VhcmNoRmlsdGVycyIsInNldEFkdmFuY2VkU2VhcmNoRmlsdGVycyIsInVwZGF0ZUNyZWF0ZWRCeUNvbnRhY3QiLCJjcmVhdGVkQnlJZCIsInVwZGF0ZVNlbGVjdGVkSW5jaWRlbnRUeXBlcyIsImluY2lkZW50U3RhdHVzRW51bVZhbHVlIiwidXBkYXRlU2VsZWN0ZWRDYXNlVHlwZXMiLCJjYXNlRW51bVZhbHVlIiwidXBkYXRlQ3JlYXRlZE9uRGF0ZSIsImRhdGVTaW5jZSIsImZyb21EYXRlIiwidG9EYXRlIiwic29ydGVkSW5jaWRlbnRzIiwic29ydGVkRGF0YSIsImluY2lkZW50QSIsImluY2lkZW50QiIsImNhc2VzRmlsdGVyR3JvdXBzIiwiYXBwbGljYWJsZVN0YXR1c0ZpbHRlcnMiLCJhcHBsaWNhYmxlVHlwZUZpbHRlcnMiLCJnZXRTdW1tYXJ5U2VjdGlvbnMiLCJhY3RpdmVNYWpvckluY2lkZW50VGV4dCIsInJlc29sdmVkTWFqb3JJbmNpZGVudFRleHQiLCJoZWFkZXJDZWxscyIsImdldENvbHVtbkhlYWRlciIsImZpZWxkTmFtZSIsImhlYWRlckNlbGwiLCJtYXRjaGluZ0luY2lkZW50cyIsInRleHRWYWx1ZSIsImNvbnRhY3QiLCJjcmVhdGVkT25EYXRlIiwicmVsYXRlZE5vblJlc29sdmVkQWN0aXZlTWFqb3JJbmNpZGVudHMiLCJtYWpvckluY2lkZW50IiwiY2VsbCIsIkludGVybmFsTW9kZWwkdyIsIlJFVFJJRVZFX01VTFRJUExFX0lOQ0lERU5UX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCIsIm5ld0d1aWQiLCJsZXR0ZXIiLCJ1c2VMaXZlQ3J1ZFNlcnZpY2UiLCJjcmVhdGUiLCJwbHVyYWxMb2dpY2FsTmFtZSIsInJlc3BvbnNlIiwicmVjb3JkSWQiLCJidWlsZFVwc2VydEJvZHkiLCJ0aHJvd0Vycm9yRnJvbVJlc3BvbnNlIiwiZXh0cmFjdGVkUmVjb3JkSWQiLCJyZXRyaWV2ZU11bHRpcGxlIiwiZmlsdGVycyIsInNlbGVjdFF1ZXJ5IiwiZm9ybWF0U2VsZWN0UXVlcnkiLCJmaWx0ZXJRdWVyeSIsImZvcm1hdEZpbHRlclF1ZXJ5IiwiZXhwYW5kZWRQcm9wZXJ0aWVzUXVlcnkiLCJmb3JtYXRFeHBhbmRlZFByb3BlcnRpZXNRdWVyeSIsInJlcXVlc3RVcmwiLCJyZXRyaWV2ZSIsImRpc2Fzc29jaWF0ZSIsImV4ZWN1dGVGZWVkYmFja1BvcnRhbEFjdGlvbiIsImZlZWRiYWNrRGVzY3JpcHRpb24iLCJmZWVkYmFja0NhdGVnb3J5IiwiZXhlY3V0ZVBvcnRhbEFjdGlvbiIsImV4ZWN1dGVSZXF1ZXN0Q2xvc3VyZVBvcnRhbEFjdGlvbiIsImluY2lkZW50SWQiLCJleGVjdXRlUmVxdWVzdFJlb3BlblBvcnRhbEFjdGlvbiIsImV4ZWN1dGVTZW5kSW52aXRhdGlvblBvcnRhbEFjdGlvbiIsImV4ZWN1dGVDbG9zZVByb2plY3RUYXNrIiwicHJvamVjdFRhc2tJZCIsInN1Ym1pc3Npb25EYXRhIiwianNvblN0cmluZyIsInVybFN0cmluZyIsImV4cGVjdGVkU3RhdHVzIiwiZXJyb3JNZXNzYWdlIiwiZ2VuZXJpY0Vycm9yTWVzc2FnZSIsInBvc3NpYmxlRXJyb3JPYmplY3QiLCJpc09EYXRhRXJyb3IiLCJlcnJvclBhcnQiLCJvYmplY3RBc09EYXRhRXJyb3JSZXNwb25zZSIsImNvbHVtbk5hbWVzIiwicXVlcnlTdHJpbmciLCJjb2x1bW5OYW1lIiwibmVzdGVkUHJvcCIsIm1hcE5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibWFwcGluZyIsImV4cGFuZGVkUHJvcGVydGllcyIsInJlY29yZCIsIkFjdGl2aXR5U3RhdGVDb2RlIiwiRGlyZWN0aW9uQ29kZSIsIlBvcnRhbENvbW1lbnRTdGF0dXNDb2RlIiwiTW9ja1BvcnRhbENvbW1lbnREYXRhIiwiTW9ja01ham9ySW5jaWRlbnRVcGRhdGVEYXRhIiwiTW9ja1BvcnRhbEVtYWlsRGF0YSIsIkNhc2VVcmdlbmN5IiwiQ2FzZVNldmVyaXR5Q29kZSIsIkNhc2VPcmlnaW5Db2RlIiwiTW9ja0luY2lkZW50RGF0YSIsIk1vY2tQcm9kdWN0RGF0YSIsIk9yZGVyU3RhdGVDb2RlIiwiT3JkZXJTdGF0dXNDb2RlIiwiTW9ja0Jhc2U2NE9yZGVyRm9ybVBERiIsIk1vY2tPcmRlckZvcm1EYXRhIiwiUHJvZHVjdFR5cGVDb2RlIiwiUHJvamVjdFN0YXRlQ29kZSIsIlByb2plY3RTdGF0dXNDb2RlIiwiUHJvamVjdExvZ01pdGlnYXRpb25SZXNwb25zZSIsIlByb2plY3RMb2dTZXZlcml0eSIsIlByb2plY3RMb2dTdGF0dXNDb2RlIiwiUHJvamVjdExvZ1R5cGUiLCJNb2NrUHJvamVjdExvZ0RhdGEiLCJQcm9qZWN0VGFza0Fzc2lnbmVkVG8iLCJQcm9qZWN0VGFza1N0YXR1c0NvZGUiLCJNb2NrUHJvamVjdFRhc2tEYXRhIiwiTW9ja1Byb2plY3REYXRhIiwiTW9ja09yZGVyTGluZURhdGEiLCJNb2NrT3JkZXJEYXRhIiwiUG9ydGFsSW52aXRhdGlvbkF1dGhlbnRpY2F0aW9uVHlwZSIsIlBvcnRhbEludml0YXRpb25TdGF0dXNDb2RlIiwiTW9ja1BvcnRhbEludml0YXRpb25EYXRhIiwiTW9ja1BvcnRhbE1ham9ySW5jaWRlbnRVcGRhdGVEYXRhIiwiTW9ja0Jsb2dQb3N0RGF0YSIsIk5ldHdvcmtPcmRlclR5cGUiLCJOZXR3b3JrT3JkZXJTdGF0ZUNvZGUiLCJOZXR3b3JrT3JkZXJTdGF0dXNDb2RlIiwiQ3VzdG9tZXJBc3NldFN0YXRlQ29kZSIsIk1vY2tDdXN0b21lckFzc2V0RGF0YSIsIk5ldHdvcmtPcmRlclN0YWdlU3RhdGVDb2RlIiwiTmV0d29ya09yZGVyU3RhZ2VTdGF0dXNDb2RlIiwiTmV0d29ya09yZGVyU3RhZ2VUeXBlIiwiTW9ja05ldHdvcmtPcmRlclN0YWdlRGF0YSIsIk1vY2tOZXR3b3JrT3JkZXJEYXRhIiwiTW9ja0Jhc2U2NEludm9pY2VQREYiLCJNb2NrSW52b2ljZURhdGEiLCJ1c2VNb2NrQ3J1ZFNlcnZpY2UiLCJwcm9qZWN0VGFza0RhdGEiLCJzZXRQcm9qZWN0VGFza0RhdGEiLCJjdXN0b21lckFzc2V0RGF0YSIsInNldEN1c3RvbWVyQXNzZXREYXRhIiwiY29udGFjdERhdGEiLCJzZXRDb250YWN0RGF0YSIsImluY2lkZW50RGF0YSIsInNldEluY2lkZW50RGF0YSIsInByb2R1Y3REYXRhIiwic2V0UHJvZHVjdERhdGEiLCJpbnZvaWNlRGF0YSIsInNldEludm9pY2VEYXRhIiwib3JkZXJEYXRhIiwic2V0T3JkZXJEYXRhIiwibmV0d29ya09yZGVyRGF0YSIsInNldE5ldHdvcmtPcmRlckRhdGEiLCJwcm9qZWN0RGF0YSIsInNldFByb2plY3REYXRhIiwicHJvamVjdExvZ3NEYXRhIiwic2V0UHJvamVjdExvZ3NEYXRhIiwib3JkZXJGb3JtRGF0YSIsInNldE9yZGVyRm9ybURhdGEiLCJwb3J0YWxFbWFpbERhdGEiLCJzZXRQb3J0YWxFbWFpbERhdGEiLCJwb3J0YWxDb21tZW50RGF0YSIsInNldFBvcnRhbENvbW1lbnREYXRhIiwicG9ydGFsSW52aXRhdGlvbkRhdGEiLCJzZXRQb3J0YWxJbnZpdGF0aW9uRGF0YSIsImFjY291bnREYXRhIiwic2V0QWNjb3VudERhdGEiLCJibG9nUG9zdERhdGEiLCJzZXRCbG9nUG9zdERhdGEiLCJtYWpvckluY2lkZW50VXBkYXRlRGF0YSIsInNldE1ham9ySW5jaWRlbnRVcGRhdGVEYXRhIiwicG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZURhdGEiLCJzZXRQb3J0YWxNYWpvckluY2lkZW50VXBkYXRlRGF0YSIsImlkQ29sdW1uTmFtZSIsInNldHRlciIsIm1vY2tDcmVhdGlvbkJlaGF2aW91ciIsImdldERhdGFTZXRJbmZvIiwiY3JlYXRlZFJlY29yZCIsImRlbGF5VGltZSIsImV4aXN0aW5nUmVjb3JkIiwidXBkYXRlZFJlY29yZCIsImZpbGVkTmFtZSIsImZpbHRlckRhdGEiLCJmaWx0ZXJSZWNvcmQiLCJtcyIsIkludGVybmFsTW9kZWwkdiIsIlBST0RVQ1RfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJHUiLCJDVVNUT01FUl9BU1NFVF9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkdCIsIlJFVFJJRVZBTF9DT05UQUNUX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRzIiwiVVBEQVRFX1BPUlRBTF9DT01NRU5UX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRyIiwiQUNDT1VOVF9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkcSIsIlBPUlRBTF9NQUpPUl9JTkNJREVOVF9VUERBVEVfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJHAiLCJQT1JUQUxfSU5WSVRFX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRvIiwiQkxPR19QT1NUX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRuIiwiZ2V0T3JkZXJGb3JtTWV0YWRhdGEiLCJPUkRFUkZPUk1fTUVUQURBVEEiLCJPUkRFUkZPUk1CNjRfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJG0iLCJPUkRFUkxJTkVfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJGwiLCJPUkRFUl9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkayIsImdldFBvcnRhbENvbW1lbnRNZXRhZGF0YSIsIm5hdmlnYXRpb25Qcm9wZXJ0eU5hbWUiLCJwbHVyYWxFbnRpdHlTZXROYW1lIiwiUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX0lOQ0lERU5UX01FVEFEQVRBIiwiUkVUUklFVkFMX1BPUlRBTF9DT01NRU5UX05FVFdPUktfT1JERVJfTUVUQURBVEEiLCJSRVRSSUVWQUxfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9NRVRBREFUQSIsIlJFVFJJRVZBTF9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX0xPR19NRVRBREFUQSIsIkludGVybmFsTW9kZWwkaiIsImdldFBvcnRhbEVtYWlsTWV0YWRhdGEiLCJQUk9KRUNUU19QT1JUQUxfRU1BSUxfTUVUQURBVEEiLCJJTkNJREVOVFNfUE9SVEFMX0VNQUlMX01FVEFEQVRBIiwiTkVUV09SS19PUkRFUlNfUE9SVEFMX0VNQUlMX01FVEFEQVRBIiwiUFJPSkVDVF9MT0dfUE9SVEFMX0VNQUlMX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRpIiwiUFJPSkVDVF9MT0dfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJGgiLCJQUk9KRUNUX1RBU0tfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJGciLCJQUk9KRUNUX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRmIiwiQ1JFQVRFX0lOQ0lERU5UX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRlIiwiTUFKT1JfSU5DSURFTlRfVVBEQVRFX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRkIiwiUkVUUklFVkFMX0lOQ0lERU5UX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRjIiwiVVBEQVRFX0lOQ0lERU5UX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCRiIiwiQ1JFQVRFX0NPTlRBQ1RfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJGEiLCJVUERBVEVfQ09OVEFDVF9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkOSIsIlVQREFURV9ORVRXT1JLX09SREVSX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCQ4IiwiTkVUV09SS19PUkRFUl9TVEFHRV9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkNyIsIlJFVFJJRVZBTF9ORVRXT1JLX09SREVSX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCQ2IiwiUkVUUklFVkVfTVVMVElQTEVfTkVUV09SS19PUkRFUl9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkNSIsIlVQREFURV9URVJNU19BTkRfQ09ORElUSU9OU19DT05UQUNUX01FVEFEQVRBIiwiSW50ZXJuYWxNb2RlbCQ0IiwiUkVUUklFVkVfTVVMVElQTEVfSU5WT0lDRV9NRVRBREFUQSIsIkludGVybmFsTW9kZWwkMyIsIlVQREFURV9QUk9KRUNUX1RBU0tfTUVUQURBVEEiLCJJbnRlcm5hbE1vZGVsJDIiLCJJTlZPSUNFX01FVEFEQVRBIiwidXNlRGF0YVNlcnZpY2UiLCJsaXZlQ3J1ZFNlcnZpY2UiLCJtb2NrQ3J1ZFNlcnZpY2UiLCJjcnVkU2VydmljZSIsImNyZWF0ZUluY2lkZW50IiwiY3JlYXRlZEluY2lkZW50SWQiLCJjcmVhdGVDb250YWN0IiwiY3JlYXRlZENvbnRhY3RJZCIsInVwZGF0ZUluY2lkZW50IiwicGFydGlhbFVwZGF0ZSIsInVwZGF0ZUNvbnRhY3QiLCJ1cGRhdGVBY2NvdW50IiwiYWNjb3VudCIsInVwZGF0ZU9yZGVyIiwib3JkZXJpZCIsIm9yZGVyIiwidXBkYXRlTmV0d29ya09yZGVyIiwibmV0d29ya09yZGVySWQiLCJuZXR3b3JrT3JkZXIiLCJkaXNhc3NvY2lhdGVDb250YWN0RnJvbU5ldHdvcmtPcmRlciIsInNlbmRQb3J0YWxDb21tZW50IiwicG9ydGFsQ29tbWVudCIsImNyZWF0ZUVudGl0eU1ldGFkYXRhIiwicmV0cmlldmVFbnRpdHlNZXRhZGF0YSIsImNyZWF0ZWRQb3J0YWxDb21tZW50SWQiLCJzZXRQb3J0YWxUZXJtc09mQWdyZWVtZW50RGF0ZSIsIm5vdyIsInJldHJpZXZlT3JkZXJGb3JtSW5mbyIsIm9yZGVyZm9ybWlkIiwicmV0cmlldmVBY3RpdmVJbmNpZGVudHMiLCJyZXRyaWV2ZUluY2lkZW50IiwicmV0cmlldmVDb250YWN0IiwicmV0cmlldmVPcmRlciIsInNhbGVzT3JkZXJJZCIsInVwZGF0ZVByb2plY3RUYXNrIiwicHJvamVjdFRhc2siLCJyZXRyaWV2ZVByb2plY3QiLCJwcm9qZWN0SWQiLCJwcm9qZWN0IiwicmV0cmlldmVJbnZvaWNlIiwiaW52b2ljZUlkIiwicmV0cmlldmVOZXR3b3JrT3JkZXIiLCJyZXRyaWV2ZUN1c3RvbWVyQXNzZXQiLCJjdXN0b21lckFzc2V0SWQiLCJyZXRyaWV2ZVJlY2VudGx5UmVzb2x2ZWRNYWpvckluY2lkZW50cyIsInJldHJpZXZlQ2xvc2VkSW5jaWRlbnRzIiwicmV0cmlldmVBY2NvdW50cyIsInJldHJpZXZlQ29udGFjdHMiLCJyZXRyaWV2ZVByb2R1Y3RzIiwiY3VzdG9tZXJBc3NldCIsInByb2R1Y3QiLCJyZXRyaWV2ZU9yZGVycyIsInJldHJpZXZlSW52b2ljZXMiLCJyZXRyaWV2ZU5ldHdvcmtPcmRlcnMiLCJyZXRyaWV2ZVByb2plY3RzIiwicmV0cmlldmVDdXN0b21lckFzc2V0cyIsInJldHJpZXZlUG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZXNSZWdhcmRpbmdBY3RpdmVBbmRSZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMiLCJyZXRyaWV2ZVBvcnRhbEludml0YXRpb25zIiwicmV0cmlldmVCbG9nUG9zdFJlY29yZHMiLCJzdXBwbGVtZW50YWxEYXRhU2VydmljZSIsInJldHJpZXZlUHJvamVjdExvZyIsInByb2plY3RMb2dJZCIsInVzZUNsb3NlZENhc2VzIiwiZGF0YVNlcnZpY2UiLCJDYXNlc0Nsb3NlZCIsIkRyb3Bkb3duRmllbGQiLCJzZWxlY3RFbGVtZW50UmVmIiwiYWRkaXRpb25hbFNlbGVjdFByb3BzIiwiTXVsdGlMaW5lU3RyaW5nRmllbGQiLCJ0ZXh0QXJlYVJlZiIsImFkZGl0aW9uYWxUZXh0QXJlYVByb3BzIiwiU3RyaW5nRmllbGQiLCJpbnB1dEVsZW1lbnRSZWYiLCJDYXNlc0NyZWF0ZSIsInNldEluY2lkZW50IiwiY2FsY3VsYXRlUHJpb3JpdHkiLCJmb3JtU3VibWl0QXR0ZW1wdGVkIiwic2V0Rm9ybVN1Ym1pdEF0dGVtcHRlZCIsImlzTG9hZGVkIiwic2V0SXNMb2FkZWQiLCJvblN1Ym1pdCIsImNyZWF0ZWRJbmNpZGVudCIsImVkaXRDYXNlVXJsIiwic3VibWl0RGlzYWJsZWRSZWFzb25zIiwiYmlzdGVjaF9jdXN0b21lcnJlZmVyZW5jZSIsIl9wcmltYXJ5Y29udGFjdGlkX3ZhbHVlIiwiYmlzdGVjaF91cmdlbmN5Iiwic2V2ZXJpdHljb2RlIiwiUHJpb3JpdHlEZXNjcmlwdG9yIiwiZGVzY3JpcHRpb24iLCJQUklPUklUWV9ERVNDUklQVElPTlMiLCJwcmlvcml0eUNvZGUiLCJ1cmdlbmN5Iiwic2V2ZXJpdHkiLCJnZXRDb250YWN0c0ZpbHRlckdyb3VwcyIsImZpbHRlcmVkQ29udGFjdHMiLCJnZXRDb250YWN0c1N1bW1hcnlTZWN0aW9ucyIsInByaW1hcnlDb250YWN0IiwiZ2V0Q29udGFjdFRhYmxlSGVhZGVyQ2VsbHMiLCJDb250YWN0cyIsImFjY291bnRzIiwic29ydGVkQ29udGFjdHMiLCJjb250YWN0QSIsImNvbnRhY3RCIiwiY29udGFjdHNGaWx0ZXJHcm91cHMiLCJ1c2VyUGFyZW50QWNjb3VudElkIiwiY29ubmVjdGVkQWNjb3VudCIsImtleVNlcnZpY2VDb250YWN0Iiwic3VtbWFyeVNlY3Rpb25zIiwibWF0Y2hpbmdDb250YWN0cyIsIkNhc2VzTWFqb3JJbmNpZGVudHMiLCJwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlcyIsInJlbGV2YW50TWFqb3JJbmNpZGVudHMiLCJwb3J0YWxNYWpvckluY2lkZW50VXBkYXRlc0J5UGFyZW50Q2FzZSIsImNhc2VzIiwicG9ydGFsTWFqb3JJbmNpZGVudFVwZGF0ZSIsIm1hdGNoaW5nRW50cnkiLCJjaGlsZHJlblVwZGF0ZXMiLCJnZXRNYWpvckluY2lkZW50VXBkYXRlVHlwZSIsInN1YmplY3QiLCJSYWRpb0J1dHRvbkJvb2xlYW5GaWVsZCIsIlRlbGVwaG9uZUZpZWxkIiwidmFsaWRpdHkiLCJQb3B1cExpbmtGaWVsZCIsIkRpc21pc3NDaXJjbGVSZWd1bGFyIiwiUGVvcGxlQ29tbXVuaXR5UmVndWxhciIsIlBFUk1JU1NJT05TIiwiU3ViTGV2ZWxQZXJtaXNzaW9uQ2F0ZWdvcnkiLCJUb3BMZXZlbFBlcm1pc3Npb25DYXRlZ29yeSIsInN1YkNhdGVnb3J5IiwiTW9kYWwiLCJzaG91bGRTaG93U3Bpbm5lciIsInNldFNob3VsZFNob3dTcGlubmVyIiwibW9kYWxTdWJtaXNzaW9uU3RhdGUiLCJzZXRNb2RhbFN1Ym1pc3Npb25TdGF0ZSIsIm9uQ2xvc2VNb2RhbCIsIlBlcm1pc3Npb25zUGFuZWwiLCJzZXRDb250YWN0IiwicGVybWlzc2lvbiIsImNvbnRhY3RUb1VwZGF0ZSIsIlBlcm1pc3Npb25MZXZlbFN1bW1hcnkiLCJDb250YWN0c0NyZWF0ZSIsImlzUG9wdXBPcGVuIiwic2V0SXNQb3B1cE9wZW4iLCJjcmVhdGVkQ29udGFjdCIsImVkaXRDb250YWN0VXJsIiwicGVybWlzc2lvbkxldmVsRmllbGRSZWYiLCJiaXN0ZWNoX3BvcnRhbGNvbnRhY3R0eXBlIiwiZmlyc3RuYW1lIiwibGFzdG5hbWUiLCJqb2J0aXRsZSIsIl9iaXN0ZWNoX3ByaW1hcnlzaXRlX3ZhbHVlIiwiZW1haWxhZGRyZXNzMSIsInRlbGVwaG9uZTEiLCJtb2JpbGVwaG9uZSIsImJpc3RlY2hfcmVjZWl2ZWFsZXJ0bm90aWZpY2F0aW9ucyIsImJpc3RlY2hfcmVjZWl2ZXBld25vdGlmaWNhdGlvbnMiLCJiaXN0ZWNoX3JlY2VpdmVtYWpvcmluY2lkZW50dXBkYXRlcyIsImJpc3RlY2hfcmVjZWl2ZXNlY3VyaXR5dXBkYXRlcyIsImJpc3RlY2hfcmVjZWl2ZWN1c3RvbWVybmV3c2xldHRlciIsImJpc3RlY2hfcmVjZWl2ZXByb2R1Y3R1cGRhdGVzIiwiY29udGFjdFBlcm1pc3Npb25zIiwiTm90Rm91bmQiLCJpc01vZGFsU2hvd24iLCJzZXRJc01vZGFsU2hvd24iLCJyYXdFcnJvciIsIkNhbGxUb0FjdGlvbkJhc2VQYWdlIiwiY2FsbFRvQWN0aW9uSW5mb3JtYXRpb24iLCJ0YWdzIiwicGFyZW50UGFnZVJlZmVyZW5jZSIsImJ1dHRvbkluZm8iLCJ0b1BhcnRpYWxEaWZmIiwiaW5pdGlhbCIsInBhcnRpYWwiLCJ1cGRhdGVkVmFsdWUiLCJDb250YWN0c0VkaXRDb250ZW50IiwibWFwQ29udGFjdFRvVXBkYXRlVHlwZSIsIl9pIiwiX2oiLCJfayIsIl9sIiwiX20iLCJfbiIsIl9vIiwiX3AiLCJfcSIsIl9yIiwiX3MiLCJfdCIsIl91Iiwic2V0Q29udGFjdFRvVXBkYXRlIiwic2F2ZVByZXJlcXVpc2l0ZXMiLCJzZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiIsIm1vc3RSZWNlbnRQb3J0YWxJbnZpdGF0aW9uIiwic2V0TW9zdFJlY2VudFBvcnRhbEludml0YXRpb24iLCJjYWxsVG9BY3Rpb25UaXRsZSIsInNldENhbGxUb0FjdGlvblRpdGxlIiwiY2FsbFRvQWN0aW9uRGVzY3JpcHRpb24iLCJzZXRDYWxsVG9BY3Rpb25EZXNjcmlwdGlvbiIsImNhbGxUb0FjdGlvbkljb24iLCJzZXRDYWxsVG9BY3Rpb25JY29uIiwic2V0SXNEaXJ0eSIsImlzRGlmZkJldHdlZW5Jbml0aWFsQW5kVXBkYXRlZENvbnRhY3QiLCJ1cGRhdGVkQ29udGFjdCIsInN0YXRlY29kZSIsImNvbnRhY3RUb1ZhbGlkYXRlIiwic2FuaXRpemVDb250YWN0Iiwic2FuaXRpemVkQ29udGFjdCIsImluaXRpYWxDb250YWN0U2FuaXRpemVkIiwiY29udGFjdFRvVmFsaWRhdGVTYW5pdGl6ZWQiLCJzZXRDb250YWN0VG9VcGRhdGVXaXRoSXNEaXJ0eSIsImhhc0NoYW5nZWQiLCJoYXNVbnNhdmVkQ2hhbmdlcyIsInNldENhbGxUb0FjdGlvbkluZm8iLCJhY3RpdmF0ZUNvbnRhY3QiLCJkZWFjdGl2YXRlQ29udGFjdCIsImxlZ2FsRW50aXR5Iiwic2VuZEludml0ZSIsInNldEFzS2V5Q29udGFjdEJ1dHRvbiIsInVwZGF0ZWRBY2NvdW50Iiwibm9FbWFpbEFkZHJlc3NTZW5kSW52aXRlRXJyb3IiLCJub0FjY2Vzc1NlbmRJbnZpdGVFcnJvciIsImlzRGVhY3RpdmF0ZUJ1dHRvbkRpc3BsYXllZCIsImlzQ3VycmVudFVzZXIiLCJpc0FjdGl2YXRlQnV0dG9uRGlzcGxheWVkIiwiaXNJbmFjdGl2ZSIsImlzU2VuZEludml0ZUJ1dHRvbkRpc3BsYXllZCIsImhhc1BlbmRpbmdJbnZpdGUiLCJpc1NldEFzS2V5Q29udGFjdEJ1dHRvbkRpc3BsYXllZCIsImlzQWRtaW5pc3RyYXRvciIsImlzS2V5Q29udGFjdCIsImlzQ2hhbmdlUGFzc3dvcmRCdXR0b25EaXNwbGF5ZWQiLCJpc0xvY2FsQXV0aCIsInNlbmRJbnZpdGVCdXR0b24iLCJjaGFuZ2VQYXNzd29yZEJ1dHRvbiIsInBvcnRhbEludml0YXRpb24iLCJzb3J0ZWRQb3J0YWxJbnZpdGF0aW9ucyIsImludml0YXRpb25BIiwiaW52aXRhdGlvbkIiLCJDb250YWN0c0VkaXRGcm9tSWQiLCJzYXZlS2V5Iiwic2V0U2F2ZUtleSIsInJldHJpZXZlZENvbnRhY3QiLCJzZXRSZXRyaWV2ZWRDb250YWN0IiwiaW5pdGlhbENvbnRhY3QiLCJtYXRjaGluZ0NvbnRhY3QiLCJDb250YWN0c0VkaXQiLCJIb21lUGFnZVRpbGUiLCJpbWFnZVBhdGgiLCJtb2RhbE1lc3NhZ2UiLCJwcm9kdWN0cyIsInVzZXJMaW5rIiwic2V0VXNlckxpbmsiLCJtb2RhbElzT3BlbiIsInNldE1vZGFsSXNPcGVuIiwicGFnZUxpbmsiLCJ0aWxlTGluayIsIm9wZW5JbmZvcm1hdGlvbk1vZGFsIiwibW9kYWxJbmZvIiwibmV3V2luZG93IiwiaG9tZVBhZ2VXaWR0aCIsInNjcm9sbGJhclNpemUiLCJuYXZpZ2F0aW9uUGFuZVdpZHRoIiwiUHJvZmlsZSIsImJhY2tncm91bmRJbWFnZVVybCIsImRlZmluZV9wcm9jZXNzX2Vudl9kZWZhdWx0IiwiVGVybXNBbmRDb25kaXRpb25zIiwiYWNjZXB0VGVybXNBbmRDb25kaXRpb25zIiwiYWNjZXB0ZWREYXRlIiwiRGV2TW9kZUxpbWl0YXRpb24iLCJGb3JiaWRkZW4iLCJiYXNlUGVybWlzc2lvbkxldmVsIiwiVGltZWxpbmVDYXJkRGF0ZSIsIm1vbnRoQW5kWWVhciIsImhvdXJzQW5kTWludXRlcyIsIlRpbWVsaW5lQ2FyZCIsImJpc3RlY2hQYXJ0eSIsImN1c3RvbWVyUGFydHkiLCJDb21tZW50RmllbGQiLCJQYXJ0aWNpcGF0aW9uVHlwZU1hc2siLCJUaW1lbGluZUNvbW1lbnRDYXJkIiwiZW50aXR5SW5mb3JtYXRpb24iLCJzZXRQb3J0YWxDb21tZW50cyIsInBvcnRhbENvbW1lbnRzIiwiZW50aXR5SWQiLCJ0cmFja1BvcnRhbENvbW1lbnRTdWJtaXNzaW9uIiwidHJhY2tQb3J0YWxDb21tZW50Q3JlYXRlZFN1Y2Nlc3NmdWxseSIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwic2V0UG9ydGFsQ29tbWVudCIsImNyZWF0ZWRQb3J0YWxDb21tZW50IiwiVGltZWxpbmUiLCJlbWFpbFRpbWVsaW5lUmVjb3JkcyIsImVtYWlsIiwiY29tbWVudFRpbWVsaW5lUmVjb3JkcyIsIm1ham9ySW5jaWRlbnRUaW1lbGluZVJlY29yZHMiLCJtYWpvckluY2lkZW50VXBkYXRlIiwic29ydGVkVGltZWxpbmVSZWNvcmRzIiwicmVjb3JkQSIsInJlY29yZEIiLCJ0aW1lbGluZVJlY29yZCIsIkludGVybmFsTW9kZWwkMSIsIkFDVElWSVRZX1BBUlRZX01FVEFEQVRBIiwiQ1JFQVRFX1BPUlRBTF9DT01NRU5UX0lOQ0lERU5UX01FVEFEQVRBIiwiQ1JFQVRFX1BPUlRBTF9DT01NRU5UX05FVFdPUktfT1JERVJfTUVUQURBVEEiLCJDUkVBVEVfUE9SVEFMX0NPTU1FTlRfUFJPSkVDVF9NRVRBREFUQSIsIkNSRUFURV9QT1JUQUxfQ09NTUVOVF9QUk9KRUNUX0xPR19NRVRBREFUQSIsIkNhc2VzRWRpdENvbnRlbnQiLCJpbmNpZGVudFRvVXBkYXRlIiwic3VibWlzc2lvblJlYXNvbiIsInNldFN1Ym1pc3Npb25SZWFzb24iLCJ1cGRhdGVkSW5jaWRlbnQiLCJnZXRDYWxsVG9BY3Rpb25JbmZvcm1hdGlvbiIsImNvbW1lbnREZXNjcmlwdGlvbiIsImNyZWF0ZWRDb21tZW50IiwicmVxdWVzdENsb3N1cmVCdXR0b24iLCJ1cGRhdGVkQ2FzZSIsInJlcXVlc3RSZW9wZW5CdXR0b24iLCJjb25maXJtQ2xvc3VyZUJ1dHRvbiIsInNob3VsZFNob3dSZXF1ZXN0Q2xvc3VyZUJ1dHRvbiIsInNob3VsZFNob3dSZXF1ZXN0UmVvcGVuQnV0dG9uIiwic2hvdWxkU2hvd0NvbmZpcm1DbG9zdXJlQnV0dG9uIiwiZ2V0Q29ycmVjdENhc2VEZXNjcmlwdGlvbiIsImdldENvcnJlY3RDYXNlU3RhdHVzSWNvbiIsImNhc2VTdGF0dXMiLCJpc1JlYWRPbmx5IiwiQ2FzZXNFZGl0RnJvbUlkIiwiYWN0aXZlSW5jaWRlbnRzIiwiY2xvc2VkSW5jaWRlbnRzIiwicmV0cmlldmVkSW5jaWRlbnQiLCJzZXRSZXRyaWV2ZWRJbmNpZGVudCIsImluaXRpYWxJbmNpZGVudCIsIkNhc2VzRWRpdCIsImNhc2VJZCIsImdldE9yZGVyVGFibGVIZWFkZXJDZWxscyIsImluUHJvZ3Jlc3NTdGF0dXNDb2RlcyIsIlBFTkRJTkdfU0lHTkFUVVJFX1RPT0xUSVAiLCJJTl9QUk9HUkVTU19UT09MVElQIiwiQ09NUExFVEVEX1RPT0xUSVAiLCJnZXRPcmRlcnNGaWx0ZXJHcm91cCIsImZpbHRlcmVkT3JkZXJzIiwib3JkZXJzIiwiZnJvbUxvYWRpbmdEYXRhIiwiZGF0dW0iLCJtYW5pcHVsYXRlZERhdGEiLCJkZWZhdWx0UmV0dXJuIiwiT3JkZXJzIiwiYXNTb3J0ZWRMb2FkaW5nRGF0YSIsInNvcnRlZE9yZGVycyIsInNsaWNlZE9yZGVyRGF0YSIsIm9yZGVyQSIsIm9yZGVyQiIsIm9yZGVyc0ZpbHRlckdyb3VwcyIsIm9yZGVyc1RvRGlzcGxheSIsInN0YXR1c1RpbGVzIiwic3RhdHVzTGFiZWwiLCJzdGF0dXNWYWx1ZU1hcHBpbmciLCJGb3JtYXR0aW5nSGVscGVyIiwibW9uZXkiLCJwYXltZW50TWV0aG9kQ29kZSIsIkZpbHRlck1lbnUiLCJzZXRPcGVuRmlsdGVyTWVudUlkIiwic2V0Q29sdW1uRmlsdGVycyIsImNvbHVtbkZpbHRlcnMiLCJmbGF0dGVuZWRJdGVtcyIsInRhYmxlTmFtZSIsImFwcGxpZWRGaWx0ZXIiLCJvcGVyYXRvciIsInNldE9wZXJhdG9yIiwidmFsdWVEcm9wZG93bk9wZW4iLCJzZXRWYWx1ZURyb3Bkb3duT3BlbiIsImdldEFwcGxpY2FibGVPcGVyYXRvcnMiLCJnZXRGaWx0ZXJPcHRpb25zIiwiYVN0cmluZyIsImJTdHJpbmciLCJvbkFwcGx5RmlsdGVyIiwibmV3Q29sdW1uRmlsdGVycyIsInJlbmRlck9wZXJhdG9yQ29tYm9Cb3giLCJkZWZhdWx0T3B0aW9uIiwib3BlcmF0b3JPcHRpb25zIiwicmVuZGVyVmFsdWVDb21wb25lbnQiLCJzaG91bGRTaG93RHJvcGRvd25PcHRpb25zIiwib25Ecm9wZG93bkNsaWNrIiwiZmlsdGVyT3B0aW9ucyIsImhhc1VucG9wdWxhdGVkRmllbGRzIiwiY3VycmVudEZpbHRlciIsImhhc0FwcGxpZWRGaWx0ZXIiLCJ2aXJ0dWFsaXplckNsYXNzTmFtZSIsInZpcnR1YWxpemVyQ2xhc3NOYW1lcyIsInVzZVZpcnR1YWxpemVyU3R5bGVzX3Vuc3RhYmxlIiwicmV2ZXJzZWQiLCJiZWZvcmVCdWZmZXJIZWlnaHQiLCJhZnRlckJ1ZmZlckhlaWdodCIsImJ1ZmZlclNpemUiLCJob3Jpem9udGFsIiwiYmVmb3JlSGVpZ2h0UHgiLCJhZnRlckhlaWdodFB4IiwiYmVmb3JlQnVmZmVySGVpZ2h0UHgiLCJhZnRlckJ1ZmZlckhlaWdodFB4IiwiYnVmZmVyUHgiLCJiZWZvcmVCdWZmZXIiLCJhZnRlckJ1ZmZlciIsInVzZU11dGF0aW9uT2JzZXJ2ZXIiLCJfb2JzZXJ2ZXJfY3VycmVudCIsImdldFJUTFJvb3RNYXJnaW4iLCJsdHJSb290TWFyZ2luIiwibmV3TWFyZ2luIiwic3BsaXRNYXJnaW5zIiwidXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlckxpc3QiLCJzZXRPYnNlcnZlckxpc3QiLCJfb3B0aW9uc19yb290TWFyZ2luIiwib2JzZXJ2ZXJJbml0Iiwic2V0T2JzZXJ2ZXJJbml0IiwiX29wdGlvbnNfcm9vdE1hcmdpbjEiLCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2siLCJzZXRPYnNlcnZlckluaXRFeHRlcm5hbCIsIm5ld0luaXQiLCJfbmV3SW5pdF9yb290TWFyZ2luIiwiVmlydHVhbGl6ZXJDb250ZXh0IiwidXNlVmlydHVhbGl6ZXJDb250ZXh0X3Vuc3RhYmxlIiwidXNlVmlydHVhbGl6ZXJDb250ZXh0U3RhdGVfdW5zdGFibGUiLCJwYXNzZWRDb250ZXh0IiwidmlydHVhbGl6ZXJDb250ZXh0IiwiX2NvbnRleHRJbmRleCIsIl9zZXRDb250ZXh0SW5kZXgiLCJfY29udGV4dCIsInVzZVZpcnR1YWxpemVyX3Vuc3RhYmxlIiwiaXRlbVNpemUiLCJudW1JdGVtcyIsInZpcnR1YWxpemVyTGVuZ3RoIiwicmVuZGVyQ2hpbGQiLCJnZXRJdGVtU2l6ZSIsImJ1ZmZlckl0ZW1zIiwic2Nyb2xsVmlld1JlZiIsIm9uUmVuZGVyZWRGbGFnZ2VkSW5kZXgiLCJpbXBlcmF0aXZlVmlydHVhbGl6ZXJSZWYiLCJfdmlydHVhbGl6ZXJDb250ZXh0IiwiYWN0dWFsSW5kZXhSZWYiLCJmbGFnZ2VkSW5kZXgiLCJhY3R1YWxJbmRleCIsInNldEFjdHVhbEluZGV4IiwiYmVmb3JlRWxlbWVudFJlZiIsImFmdGVyRWxlbWVudFJlZiIsImNoaWxkU2l6ZXMiLCJjaGlsZFByb2dyZXNzaXZlU2l6ZXMiLCJjaGlsZEFycmF5IiwicG9wdWxhdGVTaXplQXJyYXlzIiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNldFNjcm9sbFRpbWVyIiwiY2xlYXJTY3JvbGxUaW1lciIsInNjcm9sbENvdW50ZXIiLCJpbml0aWFsaXplU2Nyb2xsaW5nVGltZXIiLCJiYXRjaFVwZGF0ZU5ld0luZGV4IiwidXBkYXRlQ2hpbGRSb3dzIiwidXBkYXRlQ3VycmVudEl0ZW1TaXplcyIsIm1lYXN1cmVtZW50UG9zIiwiYnVmZmVyQ291bnQiLCJsYXRlc3RFbnRyeSIsImVudHJ5MSIsImVudHJ5MiIsImNhbGN1bGF0ZUFmdGVyIiwiY2FsY3VsYXRlVG90YWxTaXplIiwiY2FsY3VsYXRlQmVmb3JlIiwic3RhcnRJbmRleCIsImdldEluZGV4RnJvbVNjcm9sbFBvc2l0aW9uIiwiYnVmZmVyZWRJbmRleCIsIm1heEluZGV4IiwibmV3U3RhcnRJbmRleCIsImZsdXNoU3luYyIsImZpbmRJbmRleFJlY3Vyc2l2ZSIsInNjcm9sbFBvcyIsImxvd0luZGV4IiwiaGlnaEluZGV4IiwibWlkcG9pbnQiLCJpQmVmb3JlIiwiaUFmdGVyIiwiaW5kZXhWYWx1ZSIsImFmdGVySW5kZXhWYWx1ZSIsImJlZm9yZUluZGV4VmFsdWUiLCJnZXRJbmRleEZyb21TaXplQXJyYXkiLCJjdXJyZW50SW5kZXgiLCJsYXN0SXRlbUluZGV4IiwiX2FjdHVhbEluZGV4Iiwic2V0QmVmb3JlUmVmIiwibmV3TGlzdCIsInNldEFmdGVyUmVmIiwiZW5kSW5kZXgiLCJkaWRVcGRhdGUiLCJuZXdTaXplIiwicHJldlNpemUiLCJoYXNJbml0aWFsaXplZCIsImluaXRpYWxpemVTaXplQXJyYXkiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwibWF4Q29tcGFyZSIsImlzRnVsbHlJbml0aWFsaXplZCIsInJlbmRlclZpcnR1YWxpemVyX3Vuc3RhYmxlIiwiVmlydHVhbGl6ZXIiLCJ1c2VSZXNpemVPYnNlcnZlclJlZl91bnN0YWJsZSIsInJlc2l6ZUNhbGxiYWNrIiwic2V0UmVzaXplT2JzZXJ2ZXIiLCJ1c2VTdGF0aWNWaXJ0dWFsaXplck1lYXN1cmUiLCJ2aXJ0dWFsaXplclByb3BzIiwiZGVmYXVsdEl0ZW1TaXplIiwiX2VudHJpZXMiLCJfb2JzZXJ2ZXIiLCJzY3JvbGxSZWYiLCJjb250YWluZXJTaXplIiwibmV3QnVmZmVySXRlbXMiLCJuZXdCdWZmZXJTaXplIiwidG90YWxMZW5ndGgiLCJJVEVNX0hFSUdIVF9QWCIsIkZpbHRlckNvbnRlbnRUYWJsZSIsIm9uU2VsZWN0aW9uQ2hhbmdlZCIsImluaXRpYWxSb3dTZWxlY3Rpb24iLCJzZWxlY3RlZFJvd3MiLCJzZXRTZWxlY3RlZFJvd3MiLCJvcGVuRmlsdGVyTWVudUlkIiwic2VsZWN0aW9uTW9kZUVuYWJsZWQiLCJpc01vYmlsZSIsIm5vdE5hdGl2ZVNjcmVlblNpemUiLCJnZXRBbGxJdGVtcyIsImNvbHVtblNpemluZ191bnN0YWJsZSIsInRhYmxlUmVmIiwidG9nZ2xlQWxsS2V5ZG93biIsImFwcGx5RmlsdGVyVG9Sb3ciLCJjb21wYXJlU3RyaW5ncyIsImZpbHRlclZhbHVlIiwiY29tcGFyZUZ1bmN0aW9uIiwicmVuZGVyRmlsdGVyTWVudSIsInJlbmRlckxlYWYiLCJHcmlkIiwiYWRkaXRpb25hbENhcmRQcm9wcyIsImdldENvbHVtblNpemluZ09wdGlvbnMiLCJzZXRDb2x1bW5TaXppbmdPcHRpb25zIiwiY2FyZFdpZHRoIiwiT3JkZXJzRWRpdENvbnRlbnQiLCJjdXJyZW50bHlTZWxlY3RlZE9yZGVyIiwibmV0d29ya09yZGVycyIsInByb2plY3RzIiwib3JkZXJDb250YWN0Iiwic2V0T3JkZXJDb250YWN0Iiwib3JkZXJGb3JtUGRmIiwic2V0T3JkZXJGb3JtUGRmIiwiY2FsbFRvQWN0aW9uRGV0YWlscyIsInNldENhbGxUb0FjdGlvbkRldGFpbHMiLCJvcmRlckZvcm1Jc1Nob3duIiwic2V0T3JkZXJGb3JtSXNTaG93biIsIml0ZW1CYXNlZE9yZGVyTGluZXMiLCJwcm9qZWN0QmFzZWRPcmRlckxpbmVzIiwib3JkZXJMaW5lc1RvU2hvdyIsInBkZkJhc2U2NCIsImdldE9yZGVyRm9ybUlGcmFtZSIsIm9yZGVyTGluZVRhYmxlQ29sdW1ucyIsImxpbmtEZXRhaWxzIiwicmVsYXRlZFByb2plY3QiLCJyZWxhdGVkTmV0d29ya09yZGVyIiwiZ2V0SW5saW5lQ29sdW1uU2l6aW5nT3B0aW9ucyIsIm11bHRpcGxpZXIiLCJPcmRlcnNFZGl0RnJvbUlkIiwicmV0cmlldmVkT3JkZXIiLCJzZXRSZXRyaWV2ZWRPcmRlciIsImluaXRpYWxPcmRlciIsIm1hdGNoaW5nT3JkZXIiLCJPcmRlcnNFZGl0Iiwib3JkZXJJZCIsInVzZXJIYXNQb3J0YWxBY2Nlc3MiLCJoYXNQb3J0YWxDYXNlQWNjZXNzIiwiaGFzUG9ydGFsQ29udGFjdEFjY2VzcyIsImhhc1BvcnRhbG9yZGVyQWNjZXNzIiwiaGFzUG9ydGFsUHJvamVjdEFjY2VzcyIsImhhc1BvcnRhbEludm9pY2VBY2Nlc3MiLCJQb3B1cCIsIk5ldHdvcmtPcmRlclN0YWdlQ29tcG9uZW50IiwibmV0d29ya09yZGVyU3RhZ2UiLCJzaG91bGRTaG93UG9wdXAiLCJzZXRTaG91bGRTaG93UG9wdXAiLCJpbnN0YWxsTWVzc2FnZSIsImluc3RhbGxUeXBlIiwic3RhZ2UiLCJzdGFnZVRpdGxlIiwic3RhZ2VEZXNjcmlwdGlvbiIsInN0YWdlU3RhdHVzIiwidXNlU3dpcGVMaXN0ZW5lciIsIm9uU3dpcGUiLCJzdGFydFRvdWNoIiwic2V0U3RhcnRUb3VjaCIsImVuZFRvdWNoIiwiZGV0ZWN0ZWRTd2lwZURpcmVjdGlvbiIsInJlZkN1cnJlbnQiLCJBbmltYXRlIiwib24iLCJzd2lwZURpcmVjdGlvbiIsIk1vYmlsZUNhcm91c2VsIiwidXBkYXRlSW5kZXgiLCJzZXRTd2lwZURpcmVjdGlvbiIsImhhbmRsZUNsaWNrVXBkYXRlIiwiSHlwZXJsaW5rRmllbGQiLCJhZGRpdGlvbmFsTGFiZWxQcm9wcyIsInJlcXVpcmVkR3JvdXAiLCJNdWx0aVN0ZXBUZWFjaGluZ0J1YmJsZSIsInBvc2l0aW9uaW5nUmVmIiwidGVhY2hpbmdCdWJibGVzIiwiY2xvc2VUZWFjaGluZ0J1YmJsZSIsIm5ld1N0YWdlIiwiYnViYmxlIiwiZmluaXNoVHlwZSIsIk5FVFdPUktfT1JERVJfVEVBQ0hJTkdfQlVCQkxFX1NIT1dOX0lEIiwiTmV0d29ya09yZGVyc0VkaXRDb250ZW50IiwiY3VzdG9tZXJBc3NldHMiLCJ0ZWFjaGluZ0J1YmJsZUlzRW5hYmxlZCIsInNldFRlYWNoaW5nQnViYmxlSXNFbmFibGVkIiwiY3VycmVudGx5U2VsZWN0ZWROZXR3b3JrT3JkZXIiLCJzZXRDdXJyZW50bHlTZWxlY3RlZE5ldHdvcmtPcmRlciIsIm5ldHdvcmtPcmRlclN0YWdlcyIsInJlbGF0ZWRTaXRlIiwic2V0UmVsYXRlZFNpdGUiLCJzZWxlY3RlZFN0YWdlIiwic2V0U2VsZWN0ZWRTdGFnZSIsInJlbGF0ZWRPcmRlciIsInJlbGF0ZWRDdXN0b21lckFzc2V0IiwibmV0d29ya09yZGVyU3RhZ2VzUmVmZXJlbmNlIiwic3BlY2lmaWNTdGFnZVJlZmVyZW5jZSIsInRpbWVsaW5lUmVmZXJlbmNlIiwidGVhY2hpbmdCdWJibGVSZWYiLCJuZXR3b3JrT3JkZXJUb1VwZGF0ZSIsInNldE5ldHdvcmtPcmRlciIsInNob3dSZXF1ZXN0T3JkZXJCdXR0b24iLCJyZXF1ZXN0T3JkZXJCdXR0b24iLCJuZXR3b3JrT3JkZXJUb1VwZGF0ZVBhcnRpYWwiLCJ1cGRhdGVkTmV0d29ya09yZGVyIiwiZ2V0Q2FsbFRvQWN0aW9uRGV0YWlscyIsIm5vcyIsIk5ldHdvcmtPcmRlcnNFZGl0RnJvbUlkIiwicmV0cmlldmVkTmV0d29ya09yZGVyIiwic2V0UmV0cmlldmVkTmV0d29ya09yZGVyIiwiaW5pdGlhbE5ldHdvcmtPcmRlciIsIk5ldHdvcmtPcmRlcnNFZGl0IiwiZ2V0SW52b2ljZVRhYmxlSGVhZGVyQ2VsbHMiLCJJbnZvaWNlcyIsImludm9pY2VzIiwic29ydGVkSW52b2ljZXMiLCJzbGljZWRJbnZvaWNlRGF0YSIsImludm9pY2VBIiwiaW52b2ljZUIiLCJpbnZvaWNlc1RvRGlzcGxheSIsImludm9pY2UiLCJJbnZvaWNlc1ZpZXdDb250ZW50IiwiaW5pdGlhbEludm9pY2UiLCJJbnZvaWNlc1ZpZXdGcm9tSWQiLCJyZXRyaWV2ZWRJbnZvaWNlIiwic2V0UmV0cmlldmVkSW52b2ljZSIsIm1hdGNoaW5nSW52b2ljZSIsIkludm9pY2VzVmlldyIsImludm9pY2VpZCIsImdldFByb2plY3RUYWJsZUhlYWRlckNlbGxzIiwiUFJPSkVDVF9PTkJPQVJESU5HX1RPT0xUSVAiLCJCTE9DS0VEX1RPT0xUSVAiLCJDTE9TRURfVE9PTFRJUCIsImdldFByb2plY3RzRmlsdGVyR3JvdXBzIiwiZmlsdGVyZWRQcm9qZWN0cyIsIlByb2plY3RzIiwic29ydGVkUHJvamVjdHMiLCJzbGljZWRQcm9qZWN0RGF0YSIsInByb2plY3RBIiwicHJvamVjdEIiLCJwcm9qZWN0c0ZpbHRlckdyb3VwcyIsInByb2plY3RzVG9EaXNwbGF5IiwiVEFCX0xJU1RfTkFNRVMiLCJQUk9KRUNUX1RBQlNfVEVBQ0hJTkdfQlVCQkxFX1NIT1dOX0FSUkFZIiwidmlzaWJsZVRhYnMiLCJ0YWIiLCJ0ZWFjaGluZ0J1YmJsZVNob3duQXJyYXkiLCJzdW1tYXJ5UmVmIiwicHJvamVjdFRhc2tzUmVmIiwiY29udGFjdHNSZWYiLCJuZXR3b3JrT3JkZXJzUmVmIiwicHJvamVjdExvZ3NSZWYiLCJidWJibGVzVG9TaG93IiwibmV3Q29tcGxldGVkVGVhY2hpbmdCdWJibGVBcnJheSIsIlRhYkxpc3RDb250YWluZXIiLCJDb21wbGV0ZVByb2plY3RUYXNrTW9kYWwiLCJjb21wbGV0ZVByb2plY3RUYXNrSXNTaG93biIsInNldENvbXBsZXRlUHJvamVjdFRhc2tJc1Nob3duIiwiaXNEaXJ0eSIsImlzU3VibWl0dGluZyIsInNldElzU3VibWl0dGluZyIsIm9uQ2hhbmdlQ29tbWVudEZpZWxkIiwiaGFuZGxlQ29tcGxldGUiLCJQcm9qZWN0VGFza0RldGFpbHNNb2RhbCIsInByb2plY3RUYXNrRGV0YWlsc0lzU2hvd24iLCJzZXRQcm9qZWN0VGFza0RldGFpbHNJc1Nob3duIiwic2V0Q29udGFjdElkIiwibW9kYWxSZWYiLCJjb21ib2JveFdpZHRoIiwic2V0Q29tYm9ib3hXaWR0aCIsImxvb2t1cE9wdGlvbnMiLCJoYW5kbGVTYXZlIiwidXBkYXRlZFByb2plY3RUYXNrIiwiRGF5T2ZXZWVrIiwiTW9udGhPZlllYXIiLCJGaXJzdFdlZWtPZlllYXIiLCJEYXRlUmFuZ2VUeXBlIiwiREFZU19JTl9XRUVLIiwiVGltZUNvbnN0YW50cyIsImZvcm1hdERheSIsImZvcm1hdE1vbnRoRGF5WWVhciIsInN0cmluZ3MiLCJmb3JtYXRNb250aFllYXIiLCJmb3JtYXRNb250aCIsImZvcm1hdFllYXIiLCJERUZBVUxUX0RBVEVfR1JJRF9TVFJJTkdTIiwiREVGQVVMVF9EQVRFX0ZPUk1BVFRJTkciLCJERUZBVUxUX0NBTEVOREFSX1NUUklOR1MiLCJhZGREYXlzIiwiZGF5cyIsImFkZFdlZWtzIiwid2Vla3MiLCJhZGRNb250aHMiLCJtb250aHMiLCJuZXdNb250aCIsImFkZFllYXJzIiwieWVhcnMiLCJnZXRNb250aFN0YXJ0IiwiZ2V0TW9udGhFbmQiLCJnZXRZZWFyU3RhcnQiLCJnZXRZZWFyRW5kIiwic2V0TW9udGgiLCJtb250aCIsImNvbXBhcmVEYXRlcyIsImRhdGUxIiwiZGF0ZTIiLCJjb21wYXJlRGF0ZVBhcnQiLCJnZXREYXRlUGFydEhhc2hWYWx1ZSIsImdldERhdGVSYW5nZUFycmF5IiwiZGF0ZVJhbmdlVHlwZSIsImZpcnN0RGF5T2ZXZWVrIiwid29ya1dlZWtEYXlzIiwiZGF5c1RvU2VsZWN0SW5EYXlWaWV3IiwiZGF0ZXNBcnJheSIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJnZXREYXRlUGFydCIsImdldFN0YXJ0RGF0ZU9mV2VlayIsIm5leHREYXRlIiwiaXNJbkRhdGVSYW5nZUFycmF5IiwiZGF0ZVJhbmdlIiwiZGF0ZUluUmFuZ2UiLCJnZXRXZWVrTnVtYmVyc0luTW9udGgiLCJ3ZWVrc0luTW9udGgiLCJmaXJzdFdlZWtPZlllYXIiLCJuYXZpZ2F0ZWREYXRlIiwic2VsZWN0ZWRZZWFyIiwic2VsZWN0ZWRNb250aCIsImRheU9mTW9udGgiLCJmaXN0RGF5T2ZNb250aCIsImVuZE9mRmlyc3RXZWVrIiwiYWRqdXN0V2Vla0RheSIsImVuZE9mV2Vla1JhbmdlIiwid2Vla3NBcnJheSIsImdldFdlZWtOdW1iZXIiLCJnZXRXZWVrT2ZZZWFyRnVsbERheXMiLCJnZXRGaXJzdERheVdlZWtPZlllYXIiLCJkYXlzT2Zmc2V0IiwibnVtYmVyT2ZGdWxsRGF5cyIsImRheU9mWWVhciIsImdldERheU9mWWVhciIsIm51bSIsImxhc3REYXlPZlByZXZZZWFyIiwiZGF5c0luWWVhciIsIm51bTIiLCJudW0zIiwiZGF0ZVdlZWtEYXkiLCJ5ZWFyIiwiZGF5c1VudGlsRGF0ZSIsImRheXNJbk1vbnRoIiwiaXNCZWZvcmVNaW5EYXRlIiwibWluRGF0ZSIsImlzQWZ0ZXJNYXhEYXRlIiwibWF4RGF0ZSIsImlzUmVzdHJpY3RlZERhdGUiLCJyZXN0cmljdGVkRGF0ZXMiLCJmaW5kQXZhaWxhYmxlRGF0ZSIsInRhcmdldERhdGUiLCJpbml0aWFsRGF0ZSIsInJlc3RyaWN0ZWREYXRlT3B0aW9ucyIsImF2YWlsYWJsZURhdGUiLCJnZXRCb3VuZGVkRGF0ZVJhbmdlIiwiYm91bmRlZERhdGVSYW5nZSIsImlzQ29udGlndW91cyIsImlzU2luZ2xlV2VlayIsImRheVNldCIsImFtb3VudE9mTm9OZWlnaGJvcnMiLCJkYXkiLCJuZXh0RGF5IiwiZ2V0RGF0ZVJhbmdlVHlwZVRvVXNlIiwiZ2V0RGF5R3JpZCIsInNlbGVjdGVkRGF0ZSIsInRvZGF5Iiwid2Vla3NUb1Nob3ciLCJtYXJrZWREYXlzIiwidG9kYXlzRGF0ZSIsImlzQWxsRGF5c09mV2Vla091dE9mTW9udGgiLCJzZWxlY3RlZERhdGVSYW5nZVR5cGUiLCJzZWxlY3RlZERhdGVzIiwic2hvdWxkR2V0V2Vla3MiLCJ3ZWVrSW5kZXgiLCJ3ZWVrIiwiZGF5SW5kZXgiLCJvcmlnaW5hbERhdGUiLCJkYXlJbmZvIiwibWFya2VkRGF5IiwidGFyZ2V0VG9Gb2N1c09uTmV4dFJlcGFpbnQiLCJmb2N1c0FzeW5jIiwiQW5pbWF0aW9uRGlyZWN0aW9uIiwid2Vla0Nvcm5lcnNDbGFzc05hbWVzIiwidXNlV2Vla0Nvcm5lclN0eWxlcyIsImdldFdlZWtDb3JuZXJTdHlsZXMiLCJpbml0aWFsV2Vla3MiLCJ3ZWVrQ29ybmVyc1N0eWxlZCIsImFib3ZlIiwiaXNJblNhbWVIb3ZlclJhbmdlIiwiYmVsb3ciLCJjYWxjdWxhdGVSb3VuZGVkU3R5bGVzIiwicm91bmRlZFRvcExlZnQiLCJyb3VuZGVkVG9wUmlnaHQiLCJyb3VuZGVkQm90dG9tTGVmdCIsInJvdW5kZWRCb3R0b21SaWdodCIsImRhdGUxU2VsZWN0ZWQiLCJkYXRlMlNlbGVjdGVkIiwiZGF0ZVJhbmdlSG92ZXJUeXBlIiwiY2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcyIsImV4dHJhQ2FsZW5kYXJEYXlHcmlkQ2xhc3NOYW1lcyIsInVzZVdyYXBwZXJTdHlsZXMiLCJ1c2VUYWJsZVN0eWxlcyIsInVzZURheUNlbGxTdHlsZXMiLCJ1c2VEYXlTZWxlY3RlZFN0eWxlcyIsInVzZURheVNpbmdsZVNlbGVjdGVkU3R5bGVzIiwidXNlV2Vla1Jvd1N0eWxlcyIsInVzZVdlZWtEYXlMYWJlbENlbGxTdHlsZXMiLCJ1c2VXZWVrTnVtYmVyQ2VsbFN0eWxlcyIsInVzZURheU91dHNpZGVCb3VuZHNTdHlsZXMiLCJ1c2VEYXlPdXRzaWRlTmF2aWdhdGVkTW9udGhTdHlsZXMiLCJ1c2VEYXlCdXR0b25TdHlsZXMiLCJ1c2VEYXlJc1RvZGF5U3R5bGVzIiwidXNlRGF5VG9kYXlNYXJrZXJTdHlsZXMiLCJ1c2VGaXJzdFRyYW5zaXRpb25XZWVrU3R5bGVzIiwidXNlTGFzdFRyYW5zaXRpb25XZWVrU3R5bGVzIiwidXNlRGF5TWFya2VyU3R5bGVzIiwidXNlQ29ybmVyQm9yZGVyQW5kUmFkaXVzU3R5bGVzIiwidXNlQ2FsZW5kYXJEYXlHcmlkU3R5bGVzX3Vuc3RhYmxlIiwid3JhcHBlclN0eWxlcyIsInRhYmxlU3R5bGVzIiwiZGF5Q2VsbFN0eWxlcyIsImRheVNlbGVjdGVkU3R5bGVzIiwiZGF5U2luZ2xlU2VsZWN0ZWRTdHlsZXMiLCJ3ZWVrUm93U3R5bGVzIiwid2Vla0RheUxhYmVsQ2VsbFN0eWxlcyIsIndlZWtOdW1iZXJDZWxsU3R5bGVzIiwiZGF5T3V0c2lkZUJvdW5kc1N0eWxlcyIsImRheU91dHNpZGVOYXZpZ2F0ZWRNb250aFN0eWxlcyIsImRheUJ1dHRvblN0eWxlcyIsImRheUlzVG9kYXlTdHlsZXMiLCJmaXJzdFRyYW5zaXRpb25XZWVrU3R5bGVzIiwibGFzdFRyYW5zaXRpb25XZWVrU3R5bGVzIiwiZGF5TWFya2VyU3R5bGVzIiwiY29ybmVyQm9yZGVyQW5kUmFkaXVzU3R5bGVzIiwiZGF5VG9kYXlNYXJrZXJTdHlsZXMiLCJhbmltYXRlQmFja3dhcmRzIiwiYW5pbWF0aW9uRGlyZWN0aW9uIiwibGlnaHRlbkRheXNPdXRzaWRlTmF2aWdhdGVkTW9udGgiLCJzaG93V2Vla051bWJlcnMiLCJDYWxlbmRhck1vbnRoSGVhZGVyUm93IiwiYWxsRm9jdXNhYmxlIiwiY2xhc3NOYW1lcyIsImRheUxhYmVscyIsImZpcnN0T2ZNb250aEluZGV4IiwiZmlyc3RXZWVrT2ZNb250aCIsImZpcnN0T2ZNb250aEluZGV4T2Zmc2V0IiwiQ2FsZW5kYXJHcmlkRGF5Q2VsbCIsImRhdGVUaW1lRm9ybWF0dGVyIiwiYWN0aXZlRGVzY2VuZGFudElkIiwibmF2aWdhdGVkRGF5UmVmIiwid2Vla0Nvcm5lcnMiLCJhcmlhSGlkZGVuIiwiY3VzdG9tRGF5Q2VsbFJlZiIsIm9uU2VsZWN0RGF0ZSIsIm9uTmF2aWdhdGVEYXRlIiwiZ2V0RGF5SW5mb3NJblJhbmdlT2ZEYXkiLCJnZXRSZWZzRnJvbURheUluZm9zIiwiX3dlZWtDb3JuZXJzXyIsImNvcm5lclN0eWxlIiwiaXNOYXZpZ2F0ZWREYXRlIiwibmF2aWdhdGVNb250aEVkZ2UiLCJmaW5kQXZhaWxhYmxlRGF0ZU9wdGlvbnMiLCJkYXlUb0NvbXBhcmUiLCJvbk1vdXNlT3ZlckRheSIsImRheUluZm9zIiwiZGF5UmVmcyIsImRheVJlZiIsImNsYXNzTmFtZXNUb0FkZCIsIm9uTW91c2VEb3duRGF5Iiwib25Nb3VzZVVwRGF5Iiwib25Nb3VzZU91dERheSIsIm9uRGF5S2V5RG93biIsImFyaWFMYWJlbCIsIkNhbGVuZGFyR3JpZFJvdyIsInJvd0NsYXNzTmFtZSIsImFyaWFSb2xlIiwid2Vla051bWJlcnMiLCJ0aXRsZVN0cmluZyIsInVzZVdlZWtzIiwiZ2V0U2V0UmVmQ2FsbGJhY2siLCJfcHJvcHNfZ2V0TWFya2VkRGF5cyIsIndlZWtzR3JpZCIsImZpcnN0VmlzaWJsZURheSIsImxhc3RWaXNpYmxlRGF5IiwicmV0dXJuVmFsdWUiLCJ1c2VEYXlSZWZzIiwiZGF5c1JlZiIsImRheUtleSIsInVzZUFuaW1hdGVCYWNrd2FyZHMiLCJwcmV2aW91c05hdmlnYXRlZERhdGVSZWYiLCJwcmV2aW91c05hdmlnYXRlZERhdGUiLCJDYWxlbmRhckRheUdyaWQiLCJfcHJvcHNfb25TZWxlY3REYXRlIiwiX3Byb3BzX29uTmF2aWdhdGVEYXRlIiwicmVzdHJpY3RlZERhdGVzT3B0aW9ucyIsIl9uYXZpZ2F0ZWREYXlSZWZfY3VycmVudF9mb2N1cyIsIl9uYXZpZ2F0ZWREYXlSZWZfY3VycmVudCIsImFjY3VtdWxhdGVkVmFsdWUiLCJjdXJyZW50V2VlayIsIndlZWtEYXkiLCJkYXlJbmZvc0luUmFuZ2UiLCJncmlkTGFiZWwiLCJsYWJlbGxlZEJ5IiwicGFydGlhbFdlZWtQcm9wcyIsImFycm93TmF2aWdhdGlvbkF0dHJpYnV0ZXMiLCJzb3J0ZWRXV0RheXMiLCJjYWxlbmRhckRheUNsYXNzTmFtZXMiLCJ1c2VIZWFkZXJTdHlsZXMiLCJ1c2VNb250aEFuZFllYXJTdHlsZXMiLCJ1c2VNb250aENvbXBvbmVudHNTdHlsZXMiLCJ1c2VIZWFkZXJJY29uQnV0dG9uU3R5bGVzIiwidXNlRGlzYWJsZWRTdHlsZVN0eWxlcyIsInVzZUNhbGVuZGFyRGF5U3R5bGVzX3Vuc3RhYmxlIiwiaGVhZGVyU3R5bGVzIiwibW9udGhBbmRZZWFyU3R5bGVzIiwibW9udGhDb21wb25lbnRzU3R5bGVzIiwiaGVhZGVySWNvbkJ1dHRvblN0eWxlcyIsImRpc2FibGVkU3R5bGVTdHlsZXMiLCJoZWFkZXJJc0NsaWNrYWJsZSIsIkNhbGVuZGFyRGF5IiwiZGF5R3JpZCIsIl9kYXlHcmlkX2N1cnJlbnRfZm9jdXMiLCJfZGF5R3JpZF9jdXJyZW50Iiwib25IZWFkZXJTZWxlY3QiLCJzaG93U2l4V2Vla3NCeURlZmF1bHQiLCJIZWFkZXJCdXR0b25Db21wb25lbnRUeXBlIiwiaGVhZGVyQXJpYUxhYmVsIiwicHJvcHNXaXRob3V0U3R5bGVzIiwib25CdXR0b25LZXlEb3duIiwiQ2FsZW5kYXJEYXlOYXZpZ2F0aW9uQnV0dG9ucyIsIm5hdmlnYXRpb25JY29ucyIsInNob3dDbG9zZUJ1dHRvbiIsIm9uRGlzbWlzcyIsIm9uU2VsZWN0TmV4dE1vbnRoIiwib25TZWxlY3RQcmV2TW9udGgiLCJwcmV2TW9udGhJbkJvdW5kcyIsIm5leHRNb250aEluQm91bmRzIiwiY2FsZW5kYXJQaWNrZXJDbGFzc05hbWVzIiwidXNlSGVhZGVyQ29udGFpbmVyU3R5bGVzIiwidXNlQ3VycmVudEl0ZW1CdXR0b25TdHlsZXMiLCJ1c2VOYXZpZ2F0aW9uQnV0dG9uc0NvbnRhaW5lclN0eWxlcyIsInVzZU5hdmlnYXRpb25CdXR0b25TdHlsZXMiLCJ1c2VHcmlkQ29udGFpbmVyU3R5bGVzIiwidXNlQnV0dG9uUm93U3R5bGVzIiwidXNlSXRlbUJ1dHRvblN0eWxlcyIsInVzZUN1cnJlbnRTdHlsZXMiLCJ1c2VTZWxlY3RlZFN0eWxlcyIsInVzZURpc2FibGVkU3R5bGVzIiwidXNlQ2FsZW5kYXJQaWNrZXJTdHlsZXNfdW5zdGFibGUiLCJoZWFkZXJDb250YWluZXJTdHlsZXMiLCJjdXJyZW50SXRlbUJ1dHRvblN0eWxlcyIsIm5hdmlnYXRpb25CdXR0b25zQ29udGFpbmVyU3R5bGVzIiwibmF2aWdhdGlvbkJ1dHRvblN0eWxlcyIsImdyaWRDb250YWluZXJTdHlsZXMiLCJidXR0b25Sb3dTdHlsZXMiLCJpdGVtQnV0dG9uU3R5bGVzIiwiY3VycmVudFN0eWxlcyIsInNlbGVjdGVkU3R5bGVzIiwiZGlzYWJsZWRTdHlsZXMiLCJoYXNIZWFkZXJDbGlja0NhbGxiYWNrIiwiaGlnaGxpZ2h0Q3VycmVudCIsImhpZ2hsaWdodFNlbGVjdGVkIiwidXNlQ2FsZW5kYXJZZWFyU3R5bGVzX3Vuc3RhYmxlIiwiQ0VMTF9DT1VOVCIsIkNFTExTX1BFUl9ST1ciLCJEZWZhdWx0Q2FsZW5kYXJZZWFyU3RyaW5ncyIsIkNhbGVuZGFyWWVhckdyaWRDZWxsIiwiaGlnaGxpZ2h0Q3VycmVudFllYXIiLCJoaWdobGlnaHRTZWxlY3RlZFllYXIiLCJjb21wb25lbnRSZWYiLCJvblNlbGVjdFllYXIiLCJvblJlbmRlclllYXIiLCJidXR0b25SZWYiLCJfYnV0dG9uUmVmX2N1cnJlbnRfZm9jdXMiLCJfYnV0dG9uUmVmX2N1cnJlbnQiLCJfb25SZW5kZXJZZWFyIiwiQ2FsZW5kYXJZZWFyR3JpZCIsImZyb21ZZWFyIiwidG9ZZWFyIiwibWluWWVhciIsIm1heFllYXIiLCJzZWxlY3RlZENlbGxSZWYiLCJjdXJyZW50Q2VsbFJlZiIsIl9mb2N1cyIsInllYXJUb1JlbmRlciIsIl9wcm9wc19vblJlbmRlclllYXIiLCJfcHJvcHNfb25SZW5kZXJZZWFyMSIsImdyaWRBcmlhTGFiZWwiLCJjZWxscyIsImNlbGxSb3ciLCJDYWxlbmRhclllYXJOYXZEaXJlY3Rpb24iLCJDYWxlbmRhclllYXJOYXZBcnJvdyIsIm9uU2VsZWN0UHJldiIsIm9uU2VsZWN0TmV4dCIsIm5ld1JhbmdlT2Zmc2V0IiwibmV3UmFuZ2UiLCJhcmlhTGFiZWxTdHJpbmciLCJvbk5hdmlnYXRlIiwiQ2FsZW5kYXJZZWFyTmF2IiwiQ2FsZW5kYXJZZWFyVGl0bGUiLCJfcHJvcHNfb25IZWFkZXJTZWxlY3QiLCJvbkhlYWRlcktleURvd24iLCJyYW5nZUFyaWFMYWJlbCIsImhlYWRlckFyaWFMYWJlbEZvcm1hdFN0cmluZyIsImN1cnJlbnREYXRlUmFuZ2UiLCJDYWxlbmRhclllYXJIZWFkZXIiLCJvblJlbmRlclRpdGxlIiwiX29uUmVuZGVyVGl0bGUiLCJuYXZpZ2F0ZWRZZWFyIiwicmFuZ2VZZWFyIiwicHJldmlvdXNGcm9tWWVhclJlZiIsInByZXZpb3VzRnJvbVllYXIiLCJ1c2VZZWFyUmFuZ2VTdGF0ZSIsInNldEZyb21ZZWFyIiwib25OYXZOZXh0Iiwib25OYXZQcmV2aW91cyIsIkNhbGVuZGFyWWVhciIsImdyaWRSZWYiLCJfZ3JpZFJlZl9jdXJyZW50X2ZvY3VzIiwiX2dyaWRSZWZfY3VycmVudCIsInVzZUNhbGVuZGFyTW9udGhTdHlsZXNfdW5zdGFibGUiLCJNT05USFNfUEVSX1JPVyIsImN1cnJlbnRZZWFyIiwicHJldmlvdXNZZWFyUmVmIiwicHJldmlvdXNZZWFyIiwidXNlRm9jdXNMb2dpYyIsIm5hdmlnYXRlZE1vbnRoUmVmIiwiY2FsZW5kYXJZZWFyUmVmIiwiZm9jdXNPblVwZGF0ZSIsIkNhbGVuZGFyTW9udGgiLCJoaWdobGlnaHRDdXJyZW50TW9udGgiLCJoaWdobGlnaHRTZWxlY3RlZE1vbnRoIiwib25Vc2VySGVhZGVyU2VsZWN0IiwieWVhclBpY2tlckhpZGRlbiIsImZvY3VzT25OZXh0VXBkYXRlIiwiaXNZZWFyUGlja2VyVmlzaWJsZSIsInNldElzWWVhclBpY2tlclZpc2libGUiLCJzZWxlY3RNb250aENhbGxiYWNrIiwib25TZWxlY3RNb250aCIsIm9uU2VsZWN0TmV4dFllYXIiLCJvblNlbGVjdFByZXZZZWFyIiwibmV3TmF2aWdhdGlvbkRhdGUiLCJvblllYXJQaWNrZXJIZWFkZXJTZWxlY3QiLCJkYXRlRm9ybWF0dGVyIiwiaXNQcmV2WWVhckluQm91bmRzIiwiaXNOZXh0WWVhckluQm91bmRzIiwieWVhclN0cmluZ3MiLCJnZXRZZWFyU3RyaW5ncyIsInJvd0luZGV4ZXMiLCJ5ZWFyU3RyaW5nIiwicm93TnVtIiwibW9udGhzRm9yUm93IiwibW9udGhJbmRleCIsImluZGV4ZWRNb250aCIsImlzTmF2aWdhdGVkTW9udGgiLCJpc1NlbGVjdGVkTW9udGgiLCJpc1NlbGVjdGVkWWVhciIsImlzSW5Cb3VuZHMiLCJpc0N1cnJlbnRNb250aCIsInllYXJUb1N0cmluZyIsInllYXJGb3JtYXR0aW5nRGF0ZSIsInllYXJSYW5nZVRvU3RyaW5nIiwieWVhclJhbmdlIiwiZGVmYXVsdE5hdmlnYXRpb25JY29ucyIsImNhbGVuZGFyQ2xhc3NOYW1lcyIsInVzZURpdmlkZXJTdHlsZXMiLCJ1c2VNb250aFBpY2tlcldyYXBwZXJTdHlsZXMiLCJ1c2VHb1RvZGF5QnV0dG9uU3R5bGVzIiwidXNlTGl2ZVJlZ2lvblN0eWxlcyIsInVzZUNhbGVuZGFyU3R5bGVzX3Vuc3RhYmxlIiwiZGl2aWRlclN0eWxlcyIsIm1vbnRoUGlja2VyV3JhcHBlclN0eWxlcyIsImdvVG9kYXlCdXR0b25TdHlsZXMiLCJsaXZlUmVnaW9uU3R5bGVzIiwiaXNEYXlQaWNrZXJWaXNpYmxlIiwiaXNNb250aFBpY2tlclZpc2libGUiLCJNSU5fU0laRV9GT1JDRV9PVkVSTEFZIiwiZGVmYXVsdFdvcmtXZWVrRGF5cyIsInVzZURhdGVTdGF0ZSIsInRvZGF5UHJvcCIsInNldFNlbGVjdGVkRGF0ZSIsIm5hdmlnYXRlZERheSIsInNldE5hdmlnYXRlZERheSIsIm5hdmlnYXRlZE1vbnRoIiwic2V0TmF2aWdhdGVkTW9udGgiLCJsYXN0U2VsZWN0ZWREYXRlIiwic2V0TGFzdFNlbGVjdGVkRGF0ZSIsInNlbGVjdGVkRGF0ZVJhbmdlQXJyYXkiLCJ1c2VWaXNpYmlsaXR5U3RhdGUiLCJpc0RheVBpY2tlclZpc2libGVQcm9wIiwiaXNNb250aFBpY2tlclZpc2libGVQcm9wIiwic2hvd01vbnRoUGlja2VyQXNPdmVybGF5Iiwic2hvd01vbnRoUGlja2VyQXNPdmVybGF5U3RhdGUiLCJ1c2VTaG93TW9udGhQaWNrZXJBc092ZXJsYXkiLCJzZXRJc01vbnRoUGlja2VyVmlzaWJsZSIsInNldElzRGF5UGlja2VyVmlzaWJsZSIsImRheVBpY2tlciIsIm1vbnRoUGlja2VyIiwiQ2FsZW5kYXIiLCJmb3J3YXJkZWRSZWYiLCJjYWxlbmRhckRheVByb3BzIiwiY2FsZW5kYXJNb250aFByb3BzIiwic2hvd0dvVG9Ub2RheSIsInNob3dNb250aFBpY2tlckFzT3ZlcmxheVByb3AiLCJvbkRhdGVTZWxlY3RlZCIsIm5hdmlnYXRlRGF5IiwibmF2aWdhdGVNb250aCIsInRvZ2dsZURheU1vbnRoUGlja2VyVmlzaWJpbGl0eSIsInJlbmRlckdvVG9Ub2RheUJ1dHRvbiIsImdvVG9kYXlFbmFibGVkIiwib25Hb3RvVG9kYXkiLCJvbk5hdmlnYXRlRGF5RGF0ZSIsImZvY3VzT25OYXZpZ2F0ZWREYXkiLCJvbk5hdmlnYXRlTW9udGhEYXRlIiwibW9udGhQaWNrZXJPbmx5Iiwib25EYXRlUGlja2VyUG9wdXBLZXlEb3duIiwidG9kYXlEYXRlU3RyaW5nIiwic2VsZWN0ZWREYXRlU3RyaW5nIiwiZGF0ZVN0cmluZ0Zvcm1hdHRlciIsInNlbGVjdGlvbkFuZFRvZGF5U3RyaW5nIiwiZGVmYXVsdENhbGVuZGFyU3RyaW5ncyIsImRlZmF1bHREYXRlUGlja2VyU3RyaW5ncyIsInJlbmRlckRhdGVQaWNrZXJfdW5zdGFibGUiLCJ1c2VQb3B1cFBvc2l0aW9uaW5nIiwicG9wdXBPcHRpb25zIiwiaXNEYXRlT3V0T2ZCb3VuZHMiLCJwcmV2ZW50Rm9jdXNPcGVuaW5nUGlja2VyIiwiX2lucHV0UmVmX2N1cnJlbnRfZm9jdXMiLCJfaW5wdXRSZWZfY3VycmVudCIsInByZXZlbnROZXh0Rm9jdXNPcGVuaW5nUGlja2VyIiwidXNlUG9wdXBWaXNpYmlsaXR5IiwiaXNNb3VudGVkIiwidXNlU2VsZWN0ZWREYXRlIiwiZm9ybWF0RGF0ZSIsInNldFNlbGVjdGVkRGF0ZVN0YXRlIiwiZm9ybWF0dGVkRGF0ZSIsInNldEZvcm1hdHRlZERhdGUiLCJuZXdEYXRlIiwiZGVmYXVsdEZvcm1hdERhdGUiLCJkZWZhdWx0UGFyc2VEYXRlRnJvbVN0cmluZyIsImRhdGVTdHIiLCJ1c2VEYXRlUGlja2VyX3Vuc3RhYmxlIiwiYWxsb3dUZXh0SW5wdXQiLCJib3JkZXJsZXNzIiwiZGVmYXVsdE9wZW4iLCJpbml0aWFsUGlja2VyRGF0ZVByb3AiLCJvblVzZXJTZWxlY3REYXRlIiwib3Blbk9uQ2xpY2siLCJvblZhbGlkYXRpb25SZXN1bHQiLCJwYXJzZURhdGVGcm9tU3RyaW5nIiwidW5kZXJsaW5lZCIsInJlc3RPZlByb3BzIiwiaW5pdGlhbFBpY2tlckRhdGUiLCJjYWxlbmRhciIsImZpZWxkQ29udGV4dCIsInVzZUZpZWxkQ29udGV4dCIsIl9maWVsZENvbnRleHRfcmVxdWlyZWQiLCJkZWZhdWx0SWQiLCJwb3B1cFN1cmZhY2VJZCIsInZhbGlkYXRlVGV4dElucHV0IiwiZGlzbWlzc0RhdGVQaWNrZXJQb3B1cCIsIm5ld2x5U2VsZWN0ZWREYXRlIiwic2hvd0RhdGVQaWNrZXJQb3B1cCIsImNhbGVuZGFyRGlzbWlzc2VkIiwib25JbnB1dENoYW5nZSIsIm9uSW5wdXRCbHVyIiwib25JbnB1dEtleURvd24iLCJvbklucHV0Rm9jdXMiLCJvbklucHV0Q2xpY2siLCJvbkljb25DbGljayIsImlucHV0QXBwZWFyYW5jZSIsInRyaWdnZXJXcmFwcGVyUmVmIiwicG9wdXBSZWYiLCJpbnB1dFJvb3QiLCJpbnB1dExhYmVsbGVkQnkiLCJfcHJvcHNfaWQiLCJpbnB1dElkIiwiaWNvbkExMXlQcm9wcyIsImNvbnRlbnRBZnRlciIsInBvcHVwU3VyZmFjZSIsImNhbGVuZGFyU2hvcnRoYW5kIiwiZGF0ZVBpY2tlckNsYXNzTmFtZXMiLCJ1c2VQb3B1cFN1cmZhY2VDbGFzc05hbWUiLCJ1c2VEYXRlUGlja2VyU3R5bGVzX3Vuc3RhYmxlIiwicG9wdXBTdXJmYWNlQ2xhc3NOYW1lIiwiRGF0ZVBpY2tlciIsImVudW1PcHRpb25zIiwiYXNzaWduZWRUbyIsImNvbnRhY3RPcHRpb25zIiwiZnVsbG5hbWUiLCJvblBhcnNlRGF0ZUZyb21TdHJpbmciLCJwcmV2aW91c1ZhbHVlIiwibmV3VmFsdWVQYXJ0cyIsIm9uRm9ybWF0RGF0ZSIsIklOREVOVEFUSU9OX1NJWkUiLCJnZXRJbmRlbnRhdGlvbkFtb3VudCIsIlByb2plY3RUYXNrVGFibGUiLCJzZXRJc1Byb2plY3RUYXNrR3JpZE1vZGFsT3BlbiIsImlzUHJvamVjdFRhc2tHcmlkTW9kYWxPcGVuIiwib3BlbkJyYW5jaGVzIiwic2V0T3BlbkJyYW5jaGVzIiwiYWxsQnJhbmNoZXNFeHBhbmRlZCIsImdldENvbXBhcmlzb25WYWx1ZUZvckNvbHVtbiIsImNvbHVtbkZpbHRlciIsImRhdGVWYWx1ZSIsImZpbHRlckRhdGUiLCJkZXRlcm1pbmVBbnlEZXNjZW5kZW50c01hdGNoRmlsdGVyIiwicmVuZGVyVGFibGUiLCJyb3dIYXNDaGlsZHJlbiIsImRlc2NlbmRlbnRzTWF0Y2hGaWx0ZXIiLCJyZW5kZXJCcmFuY2giLCJpc0JlaW5nU2VsZWN0ZWQiLCJUYWJsZUNvbHVtbk11bHRpcGxpZXJzIiwiUHJvamVjdFRhc2tHcmlkIiwic2V0SGFzQ29tcG9uZW50UmVuZGVyZWQiLCJzZXRLZXkiLCJkaWFsb2dXaWR0aCIsImRpYWxvZ0hlaWdodCIsIlBST0pFQ1RfVEFTS1NfVEVBQ0hJTkdfQlVCQkxFX1NUQUdFUyIsIlRFQUNISU5HX1NUQUdFX05BTUVTIiwiUHJvamVjdHNFZGl0VGFza3MiLCJwcm9qZWN0VGFza1RvU2hvdyIsInNldFByb2plY3RUYXNrVG9TaG93IiwiZ3JpZENvbXBvbmVudEhhc1JlbmRlcmVkIiwic2V0R3JpZENvbXBvbmVudEhhc1JlbmRlcmVkIiwibG9hZGVkQ29udGFjdHMiLCJjb21wbGV0ZWRUZWFjaGluZ0J1YmJsZVN0YWdlcyIsImNyZWF0ZVJlZnMiLCJ0YXNrcyIsInRhc2siLCJjcmVhdGVSZWYiLCJsaW5lUmVmcyIsImFzc2lnbmVkVG9SZWZzIiwiYXNzaWduZWRCdXR0b25SZWZzIiwiY29tcGxldGVUYXNrQnV0dG9uUmVmcyIsImlzQ3VzdG9tZXJBY3Rpb25zU2hvd24iLCJpc1Rhc2tJbmFjdGl2ZU9yQ29tcGxldGVkIiwiYXNzaWduZWRDdXN0b21lckNvbnRhY3QiLCJjb250YWN0RnVsbE5hbWUiLCJtYXBUYXNrVG9Sb3ciLCJjaGlsZHJlblRhc2tzIiwibmFtZVJlZiIsImFzc2lnbmVkVG9SZWYiLCJhc3NpZ25lZEJ1dHRvblJlZiIsImNvbXBsZXRlVGFza0J1dHRvblJlZiIsImNoaWxkVGFzayIsImZsYXR0ZW5JdGVtcyIsImZpcnN0Q2hpbGRUYXNrIiwiZGVmYXVsdFRlYWNoaW5nQnViYmxlcyIsImRlZmF1bHRCdWJibGVzSGF2ZUJlZW5TaG93biIsImZpcnN0Q3VzdG9tZXJUYXNrIiwiYXNzaWduQnV0dG9uUmVmIiwiY29tcGxldGVUYXNrUmVmIiwiZ2V0TW9kYWxDb2x1bW5TaXppbmdPcHRpb25zIiwiVGFiVGFibGUiLCJ0YWJUYWJsZVByb3BzIiwiaXNBbmltYXRlZCIsInNldElzQW5pbWF0ZWQiLCJ3aWRvd1dpZHRoIiwic2hvdWxkU2V0Q29sdW1uV2lkdGgiLCJwYXJlbnRDb2x1bW4iLCJyb3dJbmRleCIsImdldENvcnJlc3BvbmRpbmdDb2x1bW4iLCJjb2x1bW5JbmRleCIsImNvbHVtbkNvbnRlbnQiLCJQcm9qZWN0c0VkaXRDb250YWN0cyIsInRhYmxlQ29sdW1ucyIsIk5ldHdvcmtPcmRlclN0YWdlSWNvbiIsIlByb2plY3RzRWRpdE5ldHdvcmtPcmRlcnMiLCJuZXR3b3JrT3JkZXJzV2l0aFN0YWdlcyIsInNldE5ldHdvcmtPcmRlcnNXaXRoU3RhZ2VzIiwibmV0d29ya09yZGVyUHJvbWlzZXMiLCJubyIsImdldE51bWVyaWNEYXRlVmFsdWUiLCJvbGRlc3ROZXR3b3JrT3JkZXJTdGFnZSIsIlByb2plY3RzRWRpdFByb2plY3RMb2dzIiwicHJvamVjdExvZ3MiLCJnZXRMaW5rRWxlbWVudCIsImxpbmtMYWJlbCIsIlByb2plY3RzRWRpdFN1bW1hcnkiLCJwb3J0YWxFbWFpbHMiLCJzaG93T3JkZXJGaWVsZCIsIlByb2plY3RzRWRpdENvbnRlbnQiLCJ1c2VyIiwicHJvamVjdFRhc2tzIiwic2V0UHJvamVjdFRhc2tzIiwiZGVjb2RlZEhhc2giLCJpbnRpYWxUYWIiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJjYW5FZGl0UHJvamVjdHMiLCJyZWdhcmRpbmdOZXR3b3JrT3JkZXJzIiwibm9uU3VtbWFyeVByb2plY3RUYXNrc0NvdW50IiwicGFyZW50VGFza0lkcyIsInRhYnMiLCJvbkNvbXBsZXRlIiwicHJldlJvd3MiLCJjaGFuZ2VUYWIiLCJ0YWJOYW1lIiwiY3VycmVudFRhYiIsImF0dHJpYnV0ZU5hbWUiLCJfc3VibWlzc2lvblN0YXRlIiwiUHJvamVjdHNFZGl0RnJvbUlkIiwicmV0cmlldmVkUHJvamVjdCIsInNldFJldHJpZXZlZFByb2plY3QiLCJpbml0aWFsUHJvamVjdCIsIm1hdGNoaW5nUHJvamVjdCIsImhhc1ZhbGlkQ2hpbGRUYXNrcyIsInRhc2tJZCIsImluY2x1ZGVJblN0YXRlbWVudE9mV29ya3MiLCJoYXNWYWxpZENoaWxkcmVuIiwiUHJvamVjdHNFZGl0IiwiUHJvamVjdExvZ1ZpZXdDb250ZW50IiwicHJvamVjdExvZyIsIlByb2plY3RMb2dWaWV3RnJvbUlkIiwic2V0UHJvamVjdExvZyIsInJldHJpZXZlZExvZyIsIlByb2plY3RMb2dWaWV3IiwiZ2V0Rm9yYmlkZGVuRXJyb3JNZXNzYWdlIiwicG9ydGFsQ2FzZVBlcm1pc3Npb25MZXZlbCIsInBvcnRhbENvbnRhY3RQZXJtaXNzaW9uTGV2ZWwiLCJwb3J0YWxPcmRlclBlcm1pc3Npb25MZXZlbCIsInBvcnRhbFByb2plY3RQZXJtaXNzaW9uTGV2ZWwiLCJwb3J0YWxJbnZvaWNlUGVybWlzc2lvbkxldmVsIiwiX3VzZXJNZXRhZGF0YSIsInVzZVBhZ2VOYXZpZ2F0aW9uIiwicGFnZUluZm8iLCJyZW1vdmVUcmFpbGluZ1NsYXNoZXMiLCJOYXZpZ2F0aW9uTGluayIsImljb25QYXRoIiwiaXNTaW5nbGVQYWdlQXBwTGluayIsImlzQ3VycmVudFBhZ2UiLCJOYXZpZ2F0aW9uTWVudUdyb3VwIiwibmF2aWdhdGlvbk1lbnVHcm91cCIsInNldE1vZGFsSW5mbyIsInByb2R1Y3RMaW5rcyIsIm5hdmlnYXRpb25NZW51R3JvdXBJdGVtIiwiTmF2aWdhdGlvblBhbmVsIiwibmF2aWdhdGlvbk1lbnVHcm91cHMiLCJBRERfTkFWSUdBVElPTl9NRU5VX0dST1VQU19BRlRFUl9QQUdFX1RJVExFIiwiRmVlZGJhY2tQYW5lIiwiZmVlZGJhY2tQYW5lSXNTaG93biIsInNldEVycm9yTWVzc2FnZSIsInNldEZlZWRiYWNrQ2F0ZWdvcnkiLCJzZXRGZWVkYmFja01lc3NhZ2UiLCJzZXRTdWJtaXNzaW9uQXJlYVNob3duQW5kVHlwZSIsImhhbmRsZU1lc3NhZ2VDaGFuZ2UiLCJzZW5kUG9ydGFsRmVlZGJhY2siLCJ1c2VEYXRhUmV0cmlldmFscyIsImJsb2dQb3N0cyIsImFjdGl2ZU1ham9ySW5jaWRlbnRzIiwibm9uTWFqb3JJbmNpZGVudHMiLCJyZWNlbnRseVJlc29sdmVkTWFqb3JJbmNpZGVudHMiLCJBcHAiLCJpc05hdmlnYXRpb25QYW5lbEV4cGFuZGVkIiwic2V0TmF2aWdhdGlvblBhbmVsRXhwYW5kZWQiLCJwcm9tcHRLZXkiLCJzZXRQcm9tcHRLZXkiLCJSZWFjdFJvdXRlclByb21wdCIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIiwiZm9ybWF0UHJvZEVycm9yTWVzc2FnZSIsIiQkb2JzZXJ2YWJsZSIsInJhbmRvbVN0cmluZyIsIkFjdGlvblR5cGVzIiwiaXNQbGFpbk9iamVjdCIsImNyZWF0ZVN0b3JlIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlciIsImN1cnJlbnRSZWR1Y2VyIiwiY3VycmVudFN0YXRlIiwiY3VycmVudExpc3RlbmVycyIsIm5leHRMaXN0ZW5lcnMiLCJpc0Rpc3BhdGNoaW5nIiwiZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycyIsInN1YnNjcmliZSIsInJlcGxhY2VSZWR1Y2VyIiwibmV4dFJlZHVjZXIiLCJvYnNlcnZhYmxlIiwib3V0ZXJTdWJzY3JpYmUiLCJvYnNlcnZlU3RhdGUiLCJsZWdhY3lfY3JlYXRlU3RvcmUiLCJubiIsInJuIiwidG4iLCJlbiIsInVuIiwiYW4iLCJVTkRFRklORUQiLCJDb25zdHJ1Y3RvciIsIlByb3RvdHlwZSIsInN0ckZ1bmN0aW9uIiwiRHluSW5zdEZ1bmNUYWJsZSIsIkR5blByb3h5VGFnIiwiRHluQ2xhc3NOYW1lIiwiRHluQ2xhc3NOYW1lUHJlZml4IiwiRHluSW5zdENoa1RhZyIsIkR5bkFsbG93SW5zdENoa1RhZyIsIkR5blByb3RvRGVmYXVsdE9wdGlvbnMiLCJVbmtub3duVmFsdWUiLCJzdHJfX1Byb3RvIiwiRHluUHJvdG9CYXNlUHJvdG8iLCJEeW5Qcm90b0dsb2JhbFNldHRpbmdzIiwiRHluUHJvdG9DdXJyZW50Iiwic3RyVXNlQmFzZUluc3QiLCJzdHJTZXRJbnN0RnVuY3MiLCJPYmoiLCJfb2JqR2V0UHJvdG90eXBlT2YiLCJfb2JqR2V0T3duUHJvcHMiLCJfZ2V0R2xvYmFsIiwiX2dibCIsIl9nYmxJbnN0IiwiX2hhc093blByb3BlcnR5IiwiX2lzT2JqZWN0T3JBcnJheVByb3RvdHlwZSIsIl9pc09iamVjdEFycmF5T3JGdW5jdGlvblByb3RvdHlwZSIsIl9nZXRPYmpQcm90byIsIm5ld1Byb3RvIiwiY3VyUHJvdG8iLCJfZm9yRWFjaFByb3AiLCJmdW5jIiwibmFtZV8xIiwibHAiLCJfaXNEeW5hbWljQ2FuZGlkYXRlIiwiZnVuY05hbWUiLCJza2lwT3duIiwiX3Rocm93VHlwZUVycm9yIiwiX2dldEluc3RhbmNlRnVuY3MiLCJ0aGlzVGFyZ2V0IiwiaW5zdEZ1bmNzIiwiX2hhc1Zpc2l0ZWQiLCJfZ2V0QmFzZUZ1bmNzIiwiY2xhc3NQcm90byIsInVzZUJhc2VJbnN0IiwiX2luc3RGdW5jUHJveHkiLCJmdW5jSG9zdCIsInRoZUZ1bmMiLCJpbnN0RnVuY1RhYmxlIiwiYmFzZUZ1bmNzIiwiYmFzZVByb3RvIiwidmlzaXRlZCIsIl9nZXRJbnN0RnVuYyIsImN1cnJlbnREeW5Qcm90b1Byb3h5IiwiaW5zdEZ1bmMiLCJjYW5BZGRJbnN0Iiwib2JqUHJvdG8iLCJwcm90b0Z1bmMiLCJfZ2V0UHJvdG9GdW5jIiwiX3BvcHVsYXRlUHJvdG90eXBlIiwiYmFzZUluc3RGdW5jcyIsInNldEluc3RhbmNlRnVuYyIsIl9jcmVhdGVEeW5hbWljUHJvdG90eXBlIiwiZHluUHJvdG9Qcm94eSIsImluc3RGdW5jc18xIiwiX2NoZWNrUHJvdG90eXBlIiwidGhpc1Byb3RvIiwiX2dldE9iak5hbWUiLCJ1bmtub3duVmFsdWUiLCJkeW5hbWljUHJvdG8iLCJ0aGVDbGFzcyIsImRlbGVnYXRlRnVuYyIsInBlcmZPcHRpb25zIiwic3RyU2hpbUZ1bmN0aW9uIiwic3RyU2hpbU9iamVjdCIsInN0clNoaW1VbmRlZmluZWQiLCJzdHJTaGltUHJvdG90eXBlIiwic3RyU2hpbUhhc093blByb3BlcnR5IiwiT2JqQ2xhc3MiLCJPYmpQcm90byIsIk9iakFzc2lnbiIsIk9iakNyZWF0ZSIsIk9iakRlZmluZVByb3BlcnR5IiwiT2JqSGFzT3duUHJvcGVydHkiLCJfY2FjaGVkR2xvYmFsIiwiZ2V0R2xvYmFsIiwidXNlQ2FjaGVkIiwidGhyb3dUeXBlRXJyb3IiLCJvYmpDcmVhdGVGbiIsInRtcEZ1bmMiLCJfX29iakFzc2lnbkZuSW1wbCIsIl9fYXNzaWduRm4iLCJleHRlbmRTdGF0aWNzRm4iLCJfX2V4dGVuZHNGbiIsIl9fIiwiX19zcHJlYWRBcnJheUZuIiwiX0RZTl9JTklUSUFMSVpFIiwiX0RZTl9OQU1FIiwiX0RZTl9HRVRfTk9USUZZX01HUiIsIl9EWU5fSURFTlRJRklFUiIsIl9EWU5fUFVTSCIsIl9EWU5fSVNfSU5JVElBTElaRUQiLCJfRFlOX0NPTkZJRyIsIl9EWU5fSU5TVFJVTUVOVEFUSU9OX0tFWSIsIl9EWU5fTE9HR0VSIiwiX0RZTl9MRU5HVEgiLCJfRFlOX1RJTUUiLCJfRFlOX1BST0NFU1NfTkVYVCIsIl9EWU5fR0VUX1BST0NFU1NfVEVMX0NPTlQwIiwiX0RZTl9BRERfTk9USUZJQ0FUSU9OX0xJUzEiLCJfRFlOX1JFTU9WRV9OT1RJRklDQVRJT05fMiIsIl9EWU5fU1RPUF9QT0xMSU5HX0lOVEVSTkEzIiwiX0RZTl9PTl9DT01QTEVURSIsIl9EWU5fR0VUX1BMVUdJTiIsIl9EWU5fRkxVU0giLCJfRFlOX19FWFRFTlNJT05TIiwiX0RZTl9TUExJQ0UiLCJfRFlOX1RFQVJET1dOIiwiX0RZTl9NRVNTQUdFX0lEIiwiX0RZTl9NRVNTQUdFIiwiX0RZTl9JU19BU1lOQyIsIl9EWU5fX0RPX1RFQVJET1dOIiwiX0RZTl9VUERBVEUiLCJfRFlOX0dFVF9ORVhUIiwiX0RZTl9ESUFHX0xPRyIsIl9EWU5fU0VUX05FWFRfUExVR0lOIiwiX0RZTl9DUkVBVEVfTkVXIiwiX0RZTl9DT09LSUVfQ0ZHIiwiX0RZTl9JTkRFWF9PRiIsIl9EWU5fU1VCU1RSSU5HIiwiX0RZTl9VU0VSX0FHRU5UIiwiX0RZTl9TUExJVCIsIl9EWU5fU0VUX0VOQUJMRUQiLCJfRFlOX1NVQlNUUiIsIl9EWU5fTk9ERV9UWVBFIiwiX0RZTl9BUFBMWSIsIl9EWU5fUkVQTEFDRSIsIl9EWU5fRU5BQkxFX0RFQlVHX0VYQ0VQVEk0IiwiX0RZTl9MT0dfSU5URVJOQUxfTUVTU0FHRSIsIl9EWU5fVE9fTE9XRVJfQ0FTRSIsIl9EWU5fQ0FMTCIsIl9EWU5fVFlQRSIsIl9EWU5fSEFORExFUiIsIl9EWU5fTElTVEVORVJTIiwiX0RZTl9JU19DSElMRF9FVlQiLCJfRFlOX0dFVF9DVFgiLCJfRFlOX1NFVF9DVFgiLCJfRFlOX0NPTVBMRVRFIiwiX0RZTl9UUkFDRV9JRCIsIl9EWU5fU1BBTl9JRCIsIl9EWU5fVFJBQ0VfRkxBR1MiLCJfRFlOX1ZFUlNJT04iLCJTVFJfRU1QVFkiLCJTVFJfQ0hBTk5FTFMiLCJTVFJfQ09SRSIsIlNUUl9DUkVBVEVfUEVSRl9NR1IiLCJTVFJfRElTQUJMRUQiLCJTVFJfRVhURU5TSU9OX0NPTkZJRyIsIlNUUl9FWFRFTlNJT05TIiwiU1RSX1BST0NFU1NfVEVMRU1FVFJZIiwiU1RSX1BSSU9SSVRZIiwiU1RSX0VWRU5UU19TRU5UIiwiU1RSX0VWRU5UU19ESVNDQVJERUQiLCJTVFJfRVZFTlRTX1NFTkRfUkVRVUVTVCIsIlNUUl9QRVJGX0VWRU5UIiwiU1RSX0VSUk9SX1RPX0NPTlNPTEUiLCJTVFJfV0FSTl9UT19DT05TT0xFIiwiU1RSX0dFVF9QRVJGX01HUiIsInN0clRvSVNPU3RyaW5nIiwiY1N0ckVuZHNXaXRoIiwic3RySW5kZXhPZiIsInN0ck1hcCIsInN0clJlZHVjZSIsImNTdHJUcmltIiwic3RyVG9TdHJpbmciLCJzdHJDb25zdHJ1Y3RvciIsIl9vYmpEZWZpbmVQcm9wZXJ0eSIsIl9vYmpGcmVlemUiLCJfb2JqS2V5cyIsIlN0cmluZ1Byb3RvIiwiX3N0clRyaW0iLCJfc3RyRW5kc1dpdGgiLCJEYXRlUHJvdG8iLCJfZGF0YVRvSVNPU3RyaW5nIiwiX2lzQXJyYXkiLCJfb2JqVG9TdHJpbmciLCJfZm5Ub1N0cmluZyIsIl9vYmpGdW5jdGlvblN0cmluZyIsInJDYW1lbENhc2UiLCJyTm9ybWFsaXplSW52YWxpZCIsInJMZWFkaW5nTnVtZXJpYyIsImlzVW5kZWZpbmVkIiwiaXNOb3ROdWxsT3JVbmRlZmluZWQiLCJoYXNPd25Qcm9wZXJ0eSIsIm5vcm1hbGl6ZUpzTmFtZSIsIl9hbGwiLCJvYmpGb3JFYWNoS2V5IiwiY2FsbGJhY2tmbiIsInN0ckVuZHNXaXRoIiwiX3N0ckVuZHNXaXRoUG9seSIsInNlYXJjaExlbiIsInZhbExlbiIsInN0ckNvbnRhaW5zIiwiX2lzQXJyYXlQb2x5IiwiaXNFcnJvciIsInRvSVNPU3RyaW5nIiwiX3RvSVNPU3RyaW5nUG9seSIsInBhZCIsImFyckZvckVhY2giLCJhcnIiLCJ0aGlzQXJnIiwiYXJySW5kZXhPZiIsInNlYXJjaEVsZW1lbnQiLCJmcm9tSW5kZXgiLCJhcnJNYXAiLCJyZXN1bHRzIiwiYXJyUmVkdWNlIiwic3RyVHJpbSIsIl9vYmpLZXlzSGFzRG9udEVudW1CdWciLCJfb2JqS2V5c0RvbnRFbnVtcyIsIm9iaktleXMiLCJvYmpUeXBlIiwiZG9udEVudW1zTGVuZ3RoIiwib2JqRGVmaW5lQWNjZXNzb3JzIiwic2V0UHJvcCIsImRlc2NyaXB0b3IiLCJfZG9Ob3RoaW5nIiwiZGVlcEZyZWV6ZSIsIm9iakZyZWV6ZSIsImRhdGVOb3ciLCJkdCIsImdldEV4Y2VwdGlvbk5hbWUiLCJmaWVsZCIsInZhbENoayIsInNyY0NoayIsInRoZVZhbHVlIiwiZ2V0U2V0VmFsdWUiLCJkZWZWYWx1ZSIsImdldENmZ1ZhbHVlIiwiaXNUcnV0aHkiLCJ0aHJvd0Vycm9yIiwiX2NyZWF0ZVByb3h5RnVuY3Rpb24iLCJzcmNGdW5jIiwib3JpZ2luYWxBcmd1bWVudHMiLCJwcm94eUFzc2lnbiIsImNoa1NldCIsIl9sb29wXzEiLCJwcm94eUZ1bmN0aW9uQXMiLCJvdmVyd3JpdGVUYXJnZXQiLCJwcm94eUZ1bmN0aW9ucyIsImZ1bmN0aW9uc1RvUHJveHkiLCJ0aGVGdW5jTmFtZSIsImNyZWF0ZUNsYXNzRnJvbUludGVyZmFjZSIsImRlZmF1bHRzIiwiY2xhc3NfMSIsIl90aGlzXzEiLCJvcHRpbWl6ZU9iamVjdCIsInRoZU9iamVjdCIsIm9iakV4dGVuZCIsIm9iajEiLCJvYmoyIiwib2JqMyIsIm9iajQiLCJvYmo1Iiwib2JqNiIsInRoZUFyZ3MiLCJleHRlbmRlZCIsImFyZ0xlbiIsImRlZXAiLCJpc0FyZ0FycmF5IiwiaXNBcmdPYmoiLCJwcm9wT2siLCJpc05ld0FycmF5IiwiY2xvbmUiLCJjcmVhdGVFbnVtU3R5bGUiLCJlbnVtQ2xhc3MiLCJjcmVhdGVWYWx1ZU1hcCIsIm1hcENsYXNzIiwic3RyV2luZG93Iiwic3RyRG9jdW1lbnQiLCJzdHJEb2N1bWVudE1vZGUiLCJzdHJOYXZpZ2F0b3IiLCJzdHJIaXN0b3J5Iiwic3RyTG9jYXRpb24iLCJzdHJDb25zb2xlIiwic3RyUGVyZm9ybWFuY2UiLCJzdHJKU09OIiwic3RyQ3J5cHRvIiwic3RyTXNDcnlwdG8iLCJzdHJSZWFjdE5hdGl2ZSIsInN0ck1zaWUiLCJzdHJUcmlkZW50Iiwic3RyWE1MSHR0cFJlcXVlc3QiLCJfaXNUcmlkZW50IiwiX25hdlVzZXJBZ2VudENoZWNrIiwiX2VuYWJsZU1vY2tzIiwiX3VzZVhEb21haW5SZXF1ZXN0IiwiX2JlYWNvbnNTdXBwb3J0ZWQiLCJfaGFzUHJvcGVydHkiLCJzdXBwb3J0ZWQiLCJ0bXAiLCJnZXRHbG9iYWxJbnN0IiwiZ2JsIiwiaGFzV2luZG93IiwiaGFzRG9jdW1lbnQiLCJnZXREb2N1bWVudCIsImhhc05hdmlnYXRvciIsImdldE5hdmlnYXRvciIsImhhc0hpc3RvcnkiLCJnZXRIaXN0b3J5IiwiZ2V0TG9jYXRpb24iLCJjaGVja0Zvck1vY2siLCJtb2NrTG9jYXRpb24iLCJnZXRDb25zb2xlIiwiZ2V0UGVyZm9ybWFuY2UiLCJoYXNKU09OIiwiZ2V0SlNPTiIsImdldENyeXB0byIsImdldE1zQ3J5cHRvIiwiaXNSZWFjdE5hdGl2ZSIsIm5hdiIsImlzSUUiLCJ1c2VyQWdlbnQiLCJnZXRJRVZlcnNpb24iLCJ1c2VyQWdlbnRTdHIiLCJuYXZpZ2F0b3JfMSIsInRyaWRlbnRWZXIiLCJkdW1wT2JqIiwib2JqZWN0VHlwZUR1bXAiLCJwcm9wZXJ0eVZhbHVlRHVtcCIsImlzQmVhY29uc1N1cHBvcnRlZCIsImlzRmV0Y2hTdXBwb3J0ZWQiLCJ3aXRoS2VlcEFsaXZlIiwiaXNTdXBwb3J0ZWQiLCJ1c2VYRG9tYWluUmVxdWVzdCIsImlzWGhyU3VwcG9ydGVkIiwieG1sSHR0cFJlcXVlc3QiLCJsaXN0ZW5lckZ1bmNzIiwiX2FpTmFtZXNwYWNlIiwiX2RlYnVnTGlzdGVuZXIiLCJfbGlzdGVuZXJQcm94eUZ1bmMiLCJkYmdFeHQiLCJnZXREZWJ1Z0V4dCIsIl9nZXRFeHRlbnNpb25OYW1lc3BhY2UiLCJucyIsImdldERlYnVnTGlzdGVuZXIiLCJBaU5vblVzZXJBY3Rpb25hYmxlUHJlZml4IiwiQWlVc2VyQWN0aW9uYWJsZVByZWZpeCIsIkFJSW50ZXJuYWxNZXNzYWdlUHJlZml4IiwiX3Nhbml0aXplRGlhZ25vc3RpY1RleHQiLCJfbG9nVG9Db25zb2xlIiwidGhlQ29uc29sZSIsImxvZ0Z1bmMiLCJfSW50ZXJuYWxMb2dNZXNzYWdlIiwibXNnSWQiLCJtc2ciLCJpc1VzZXJBY3QiLCJwcm9wZXJ0aWVzIiwiX3NlbGYiLCJzdHJQcm9wcyIsImRpYWdub3N0aWNUZXh0Iiwic2FmZUdldExvZ2dlciIsImNvcmUiLCJEaWFnbm9zdGljTG9nZ2VyIiwiX21lc3NhZ2VDb3VudCIsIl9tZXNzYWdlTG9nZ2VkIiwiX2xvZ2dpbmdMZXZlbENvbnNvbGUiLCJfbG9nZ2luZ0xldmVsVGVsZW1ldHJ5IiwiX21heEludGVybmFsTWVzc2FnZUxpbWl0IiwiX2VuYWJsZURlYnVnRXhjZXB0aW9ucyIsIl9zZXREZWZhdWx0c0Zyb21Db25maWciLCJfZGVidWdFeHRNc2ciLCJtZXNzYWdlS2V5IiwiX2xvZ0ludGVybmFsTWVzc2FnZSIsIl9hcmVJbnRlcm5hbE1lc3NhZ2VzVGhyb3R0bGVkIiwibG9nTWVzc2FnZSIsInRocm90dGxlTGltaXRNZXNzYWdlIiwidGhyb3R0bGVNZXNzYWdlIiwiX2dldExvZ2dlciIsImxvZ2dlciIsIl90aHJvd0ludGVybmFsIiwiX3dhcm5Ub0NvbnNvbGUiLCJzdHJFeGVjdXRpb25Db250ZXh0S2V5Iiwic3RyUGFyZW50Q29udGV4dEtleSIsInN0ckNoaWxkcmVuQ29udGV4dEtleSIsIl9kZWZhdWx0UGVyZk1hbmFnZXIiLCJQZXJmRXZlbnQiLCJwYXlsb2FkRGV0YWlscyIsImlzQXN5bmMiLCJhY2Nlc3NvckRlZmluZWQiLCJ0aGVEZXRhaWxzXzEiLCJjaGlsZFRpbWUiLCJjaGlsZEV2dHMiLCJjaGlsZEV2dCIsIlBlcmZNYW5hZ2VyIiwicGVyZkV2ZW50IiwiZG9QZXJmQWN0aXZlS2V5IiwiZG9QZXJmIiwibWdyU291cmNlIiwiZ2V0U291cmNlIiwicGVyZk1nciIsInBlcmZFdnQiLCJjdXJyZW50QWN0aXZlIiwiZXgiLCJnZXRHYmxQZXJmTWdyIiwiVUludDMyTWFzayIsIk1heFVJbnQzMiIsIl9td2NTZWVkZWQiLCJfbXdjVyIsIl9td2NaIiwiX213Y1NlZWQiLCJzZWVkVmFsdWUiLCJfYXV0b1NlZWRNd2MiLCJyYW5kb20zMiIsInNpZ25lZCIsIm13Y1JhbmRvbTMyIiwibmV3SWQiLCJtYXhMZW5ndGgiLCJiYXNlNjRjaGFycyIsImNoYXJzIiwiaW5zdGFuY2VOYW1lIiwiX2RhdGFVaWQiLCJfY3JlYXRlQWNjZXNzb3IiLCJfY2FuQWNjZXB0RGF0YSIsIl9nZXRDYWNoZSIsInRoZUNhY2hlIiwiY3JlYXRlVW5pcXVlTmFtZXNwYWNlIiwiaW5jbHVkZVZlcnNpb24iLCJjcmVhdGVFbG1Ob2RlRGF0YSIsImFkZERlZmF1bHQiLCJzdHJUb0dNVFN0cmluZyIsInN0clRvVVRDU3RyaW5nIiwic3RyQ29va2llIiwic3RyRXhwaXJlcyIsInN0ckVuYWJsZWQiLCJzdHJJc0Nvb2tpZVVzZURpc2FibGVkIiwic3RyRGlzYWJsZUNvb2tpZXNVc2FnZSIsInN0ckNvbmZpZ0Nvb2tpZU1nciIsIl9zdXBwb3J0c0Nvb2tpZXMiLCJfYWxsb3dVYVNhbWVTaXRlIiwiX3BhcnNlZENvb2tpZVZhbHVlIiwiX2RvYyIsIl9jb29raWVDYWNoZSIsIl9nbG9iYWxDb29raWVDb25maWciLCJfZ2JsQ29va2llTWdyIiwiaW5zdCIsImNyZWF0ZUNvb2tpZU1nciIsIl9pc01nckVuYWJsZWQiLCJjb29raWVNZ3IiLCJfY3JlYXRlQ29va2llTWdyQ29uZmlnIiwicm9vdENvbmZpZyIsImNvb2tpZU1nckNmZyIsImNvb2tpZUVuYWJsZWQiLCJfaXNJZ25vcmVkQ29va2llIiwiX2lzQmxvY2tlZENvb2tpZSIsInNhZmVHZXRDb29raWVNZ3IiLCJjb29raWVNZ3JDb25maWciLCJfcGF0aCIsIl9kb21haW4iLCJfZW5hYmxlZCIsImFyZUNvb2tpZXNTdXBwb3J0ZWQiLCJnYmxNYW5hZ2VyIiwibWF4QWdlU2VjIiwiZG9tYWluIiwiX2V4dHJhY3RQYXJ0cyIsIl9pc0lFIiwibm93TXMiLCJleHBpcmVNcyIsImV4cGlyeSIsIl9mb3JtYXREYXRlIiwibG9jYXRpb25fMSIsInVhRGlzYWxsb3dzU2FtZVNpdGVOb25lIiwic2V0Q29va2llRm4iLCJfc2V0Q29va2llVmFsdWUiLCJfZm9ybWF0Q29va2llVmFsdWUiLCJfZ2V0Q29va2llVmFsdWUiLCJkZWxDb29raWUiLCJ0aGVQYXJ0IiwidGhlRGF0ZSIsImNvb2tpZVZhbHVlIiwidGhlQ29va2llIiwic3RyT25QcmVmaXgiLCJzdHJBdHRhY2hFdmVudCIsInN0ckFkZEV2ZW50SGVscGVyIiwic3RyRGV0YWNoRXZlbnQiLCJzdHJSZW1vdmVFdmVudExpc3RlbmVyIiwic3RyRXZlbnRzIiwic3RyVmlzaWJpbGl0eUNoYW5nZUV2dCIsInN0clBhZ2VIaWRlIiwic3RyVW5sb2FkIiwic3RyQmVmb3JlVW5sb2FkIiwic3RyUGFnZUhpZGVOYW1lc3BhY2UiLCJyUmVtb3ZlRW1wdHlOcyIsInJSZW1vdmVUcmFpbGluZ0VtcHR5TnMiLCJfZ3VpZCIsImVsbU5vZGVEYXRhIiwiZXZlbnROYW1lc3BhY2UiLCJfbm9ybWFsaXplTmFtZXNwYWNlIiwiX2dldEV2dE5hbWVzcGFjZSIsImV2ZW50TmFtZSIsImV2dE5hbWVzcGFjZSIsInRoZU5hbWVzcGFjZV8xIiwicGFyc2VkRXZlbnQiLCJfZ2V0UmVnaXN0ZXJlZEV2ZW50cyIsImV2dE5hbWUiLCJhaUV2dHMiLCJyZWdpc3RlcmVkRXZlbnRzIiwiX2RvRGV0YWNoIiwiaGFuZGxlclJlZiIsInVzZUNhcHR1cmUiLCJfZG9BdHRhY2giLCJfZG9VbnJlZ2lzdGVyIiwiZXZlbnRzIiwidW5SZWdGbiIsInRoZUV2ZW50IiwiX3VucmVnaXN0ZXJFdmVudHMiLCJldmVudENhY2hlIiwiZXZ0VHlwZSIsIm1lcmdlRXZ0TmFtZXNwYWNlIiwidGhlTmFtZXNwYWNlIiwibmFtZXNwYWNlcyIsIm5ld05hbWVzcGFjZXMiLCJldmVudE9uIiwicmVnaXN0ZXJlZEV2ZW50IiwiZXZlbnRPZmYiLCJldnROYW1lXzEiLCJmb3VuZF8xIiwicmVnRXZlbnQiLCJhZGRFdmVudEhhbmRsZXIiLCJyZW1vdmVFdmVudEhhbmRsZXIiLCJfYWRkRXZlbnRMaXN0ZW5lcnMiLCJleGNsdWRlRXZlbnRzIiwiYWRkRXZlbnRMaXN0ZW5lcnMiLCJyZW1vdmVFdmVudExpc3RlbmVycyIsImFkZFBhZ2VVbmxvYWRFdmVudExpc3RlbmVyIiwicmVtb3ZlUGFnZVVubG9hZEV2ZW50TGlzdGVuZXIiLCJhZGRQYWdlSGlkZUV2ZW50TGlzdGVuZXIiLCJfaGFuZGxlUGFnZVZpc2liaWxpdHkiLCJldnQiLCJwYWdlVW5sb2FkQWRkZWQiLCJyZW1vdmVQYWdlSGlkZUV2ZW50TGlzdGVuZXIiLCJnZW5lcmF0ZVczQ0lkIiwiaGV4VmFsdWVzIiwib2N0IiwiY2xvY2tTZXF1ZW5jZUhpIiwiREVGQVVMVF9WRVJTSU9OIiwiSU5WQUxJRF9WRVJTSU9OIiwiSU5WQUxJRF9UUkFDRV9JRCIsIklOVkFMSURfU1BBTl9JRCIsIl9pc1ZhbGlkIiwiaW52YWxpZFZhbHVlIiwiX2Zvcm1hdFZhbHVlIiwiX2Zvcm1hdEZsYWdzIiwiY3JlYXRlVHJhY2VQYXJlbnQiLCJ0cmFjZUlkIiwic3BhbklkIiwiZmxhZ3MiLCJpc1ZhbGlkVHJhY2VJZCIsImlzVmFsaWRTcGFuSWQiLCJmb3JtYXRUcmFjZVBhcmVudCIsInBsdWdpblN0YXRlRGF0YSIsIl9nZXRQbHVnaW5TdGF0ZSIsImluaXRpYWxpemVQbHVnaW5zIiwicHJvY2Vzc0NvbnRleHQiLCJleHRlbnNpb25zIiwiaW5pdFBsdWdpbnMiLCJsYXN0UGx1Z2luIiwicHJveHkiLCJwbHVnaW5TdGF0ZSIsInRoZVBsdWdpbiIsImlzSW5pdGlhbGl6ZWQiLCJzb3J0UGx1Z2lucyIsImV4dEEiLCJleHRCIiwiYkhhc1Byb2Nlc3MiLCJjcmVhdGVEaXN0cmlidXRlZFRyYWNlQ29udGV4dCIsInRyYWNlIiwibmV3VHJhY2VGbGFncyIsInN0clRlbGVtZXRyeVBsdWdpbkNoYWluIiwic3RySGFzUnVuRmxhZ3MiLCJzdHJHZXRUZWxDdHgiLCJfY2hhaW5JZCIsIl9nZXROZXh0UHJveHlTdGFydCIsInN0YXJ0QXQiLCJjcmVhdGVUZWxlbWV0cnlQcm94eUNoYWluIiwiX2NyZWF0ZUludGVybmFsQ29udGV4dCIsInRlbGVtZXRyeUNoYWluIiwiX25leHRQcm94eSIsIl9vbkNvbXBsZXRlIiwiX21vdmVOZXh0IiwiX2dldEV4dENmZyIsIl9nZXRDb25maWciLCJuZXh0UGx1Z2luIiwiX2l0ZXJhdGVDaGFpbiIsIl9hZGRPbkNvbXBsZXRlIiwidGhhdCIsIm5leHRQcm94eSIsImNvbXBsZXRlRGV0YWlscyIsIm1lcmdlRGVmYXVsdCIsInRoZUNvbmZpZyIsImV4dENvbmZpZyIsIm5ld0NvbmZpZ18xIiwiY2ZnVmFsdWUiLCJjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCIsImludGVybmFsQ29udGV4dCIsIl9wcm9jZXNzTmV4dCIsImVudiIsIl9jcmVhdGVOZXciLCJjcmVhdGVQcm9jZXNzVGVsZW1ldHJ5VW5sb2FkQ29udGV4dCIsInVubG9hZFN0YXRlIiwiY3JlYXRlUHJvY2Vzc1RlbGVtZXRyeVVwZGF0ZUNvbnRleHQiLCJ1cGRhdGVTdGF0ZSIsImZpcnN0UHJveHkiLCJhZGQiLCJsYXN0UHJveHlfMSIsIm5ld1Byb3h5IiwiY3JlYXRlVGVsZW1ldHJ5UGx1Z2luUHJveHkiLCJoYXNQcm9jZXNzVGVsZW1ldHJ5IiwiaGFzU2V0TmV4dCIsImNoYWluSWQiLCJwcm94eUNoYWluIiwiX3Byb2Nlc3NUZWxlbWV0cnkiLCJfdW5sb2FkUGx1Z2luIiwiX3VwZGF0ZVBsdWdpbiIsIl9nZXRUZWxDdHgiLCJpdGVtQ3R4IiwiX3Byb2Nlc3NDaGFpbiIsInByb2Nlc3NQbHVnaW5GbiIsImhhc1J1biIsImhhc1J1bkNvbnRleHQiLCJuZXh0SWQiLCJoYXNOZXh0UnVuIiwiX2NhbGxQcm9jZXNzVGVsZW1ldHJ5IiwidW5sb2FkQ3R4IiwiX2NhbGxUZWFyZG93biIsInBsdWdpbkNvcmUiLCJ1cGRhdGVDdHgiLCJfY2FsbFVwZGF0ZSIsIkNoYW5uZWxDb250cm9sbGVyUHJpb3JpdHkiLCJDaGFubmVsVmFsaWRhdGlvbk1lc3NhZ2UiLCJfYWRkQ2hhbm5lbFF1ZXVlIiwiY2hhbm5lbFF1ZXVlIiwicXVldWVJdGVtIiwiY3JlYXRlQ2hhbm5lbENvbnRyb2xsZXJQbHVnaW4iLCJfcHJvY2Vzc0NoYW5uZWxRdWV1ZSIsInRoZUNoYW5uZWxzIiwicHJvY2Vzc0ZuIiwid2FpdGluZyIsIl9ydW5DaGFpbk9uQ29tcGxldGUiLCJjaGFubmVscyIsImNoYW5uZWxDaGFpbiIsImNoYWluQ3R4IiwiX2RvVXBkYXRlIiwidGhlVXBkYXRlU3RhdGUiLCJfZG9UZWFyZG93biIsInRoZVVubG9hZFN0YXRlIiwiX2dldENoYW5uZWwiLCJwbHVnaW5JZGVudGlmaWVyIiwiZXh0IiwiY2hhbm5lbENvbnRyb2xsZXIiLCJwbHVnaW5DaGFpbiIsImNhbGxCYWNrIiwic2VuZFJlYXNvbiIsImNiVGltZW91dCIsImRvbmVJdGVyYXRpbmciLCJjYlRpbWVyIiwiZG9DYWxsYmFjayIsImhhbmRsZWRfMSIsImNyZWF0ZUNoYW5uZWxRdWV1ZXMiLCJleHRlbnNpb25RdWV1ZV8xIiwiY3JlYXRlVW5sb2FkSGFuZGxlckNvbnRhaW5lciIsIl9hZGRIYW5kbGVyIiwiX3J1bkhhbmRsZXJzIiwic3RyR2V0UGx1Z2luIiwiQmFzZVRlbGVtZXRyeVBsdWdpbiIsIl9pc2luaXRpYWxpemVkIiwiX3Jvb3RDdHgiLCJfbmV4dFBsdWdpbiIsIl91bmxvYWRIYW5kbGVyQ29udGFpbmVyIiwiX2hvb2tzIiwiX2luaXREZWZhdWx0cyIsIl9zZXREZWZhdWx0cyIsInVubG9hZERvbmUiLCJ0aGVVbmxvYWRDdHgiLCJfdW5sb2FkQ2FsbGJhY2siLCJvbGRIb29rcyIsInVwZGF0ZURvbmUiLCJ0aGVVcGRhdGVDdHgiLCJfdXBkYXRlQ2FsbGJhY2siLCJob29rcyIsImN1cnJlbnRDdHgiLCJyb290Q3R4IiwiVGVsZW1ldHJ5SW5pdGlhbGl6ZXJQbHVnaW4iLCJfc3VwZXIiLCJfX2V4dGVuZHMiLCJfaW5pdGlhbGl6ZXJzIiwiX2Jhc2UiLCJ0ZWxlbWV0cnlJbml0aWFsaXplciIsInRoZUluaXRpYWxpemVyIiwiaW5pdGlhbGl6ZXIiLCJkb05vdFNlbmRJdGVtIiwidGVsZW1ldHJ5SW5pdGlhbGl6ZXJzQ291bnQiLCJzdHJWYWxpZGF0aW9uRXJyb3IiLCJzdHJOb3RpZmljYXRpb25NYW5hZ2VyIiwic3RyU2RrVW5sb2FkaW5nRXJyb3IiLCJzdHJTZGtOb3RJbml0aWFsaXplZCIsImRlZmF1bHRJbml0Q29uZmlnIiwiX2NyZWF0ZVBlcmZNYW5hZ2VyIiwibm90aWZpY2F0aW9uTWdyIiwiX3ZhbGlkYXRlRXh0ZW5zaW9ucyIsImNoYW5uZWxQcmlvcml0eSIsImFsbEV4dGVuc2lvbnMiLCJjb3JlRXh0ZW5zaW9ucyIsImV4dFByaW9yaXRpZXMiLCJleHRQcmlvcml0eSIsIl9pc1BsdWdpblByZXNlbnQiLCJleGlzdHMiLCJfY3JlYXRlRHVtbXlOb3RpZmljYXRpb25NYW5hZ2VyIiwicmVhc29uIiwiQmFzZUNvcmUiLCJfY29uZmlnIiwiX2lzSW5pdGlhbGl6ZWQiLCJfZXZlbnRRdWV1ZSIsIl9ub3RpZmljYXRpb25NYW5hZ2VyIiwiX3BlcmZNYW5hZ2VyIiwiX2NmZ1BlcmZNYW5hZ2VyIiwiX2Nvb2tpZU1hbmFnZXIiLCJfcGx1Z2luQ2hhaW4iLCJfY29uZmlnRXh0ZW5zaW9ucyIsIl9jb3JlRXh0ZW5zaW9ucyIsIl9jaGFubmVsQ29udHJvbCIsIl9jaGFubmVsQ29uZmlnIiwiX2NoYW5uZWxRdWV1ZSIsIl9pc1VubG9hZGluZyIsIl90ZWxlbWV0cnlJbml0aWFsaXplclBsdWdpbiIsIl9pbnRlcm5hbExvZ3NFdmVudE5hbWUiLCJfZXZ0TmFtZXNwYWNlIiwiX3VubG9hZEhhbmRsZXJzIiwiX3RyYWNlQ3R4IiwiX2ludGVybmFsTG9nUG9sbGVyIiwibm90aWZpY2F0aW9uTWFuYWdlciIsIl9pbml0RGVidWdMaXN0ZW5lciIsIl9pbml0UGVyZk1hbmFnZXIiLCJfaW5pdEV4dENvbmZpZyIsImNmZ0V4dGVuc2lvbnMiLCJfX3NwcmVhZEFycmF5IiwiX2luaXRQbHVnaW5DaGFpbiIsImNvbnRyb2xzIiwidGVsZW1ldHJ5SXRlbSIsIl9jcmVhdGVUZWxDdHgiLCJjcmVhdGVQZXJmTWdyIiwiZXZlbnRRdWV1ZSIsImludGVydmFsIiwiX2ZsdXNoSW50ZXJuYWxMb2dzIiwidW5sb2FkQ29tcGxldGUiLCJwcm9jZXNzVW5sb2FkQ3R4IiwiX2dldFBsdWdpbkNoYWluIiwiX2RvVW5sb2FkIiwiZmx1c2hDb21wbGV0ZSIsIl9mbHVzaENoYW5uZWxzIiwiX2dldFBsdWdpbiIsInJlcGxhY2VFeGlzdGluZyIsImFkZENiIiwiX2xvZ09yVGhyb3dFcnJvciIsImV4aXN0aW5nUGx1Z2luIiwiX2FkZFBsdWdpbiIsInJlbW92ZWRQbHVnaW5zXzEiLCJfcmVtb3ZlUGx1Z2lucyIsImNyZWF0ZU5ldyIsInRyYWNlQ3R4IiwidGhlRXh0ZW5zaW9ucyIsInRoZUV4dCIsInJlbW92ZUNiIiwicGx1Z2luc1RvUmVtb3ZlIiwidGhlUGx1Z2lucyIsInJlbW92ZUNvbXBsZXRlIiwidW5sb2FkQ2hhaW4iLCJuZXdDb25maWdFeHRlbnNpb25zIiwibmV3Q2hhbm5lbENvbmZpZyIsIm5ld1F1ZXVlIiwiY2hhbm5lbCIsImRpc2FibGVEYmdFeHQiLCJlbmFibGVQZXJmTWdyIiwiX3J1bkxpc3RlbmVycyIsIk5vdGlmaWNhdGlvbk1hbmFnZXIiLCJwZXJmRXZ0c1NlbmRBbGwiLCJBcHBJbnNpZ2h0c0NvcmUiLCJfbm90aWZ5SW52YWxpZEV2ZW50IiwiX3ZhbGlkYXRlVGVsZW1ldHJ5SXRlbSIsImFpSW5zdHJ1bWVudEhvb2tzIiwiY2JOYW1lcyIsIl9hcnJMb29wIiwiX2RvQ2FsbGJhY2tzIiwiY2FsbERldGFpbHMiLCJjYkFyZ3MiLCJob29rQ3R4IiwiY2JrcyIsIm9yZ0V4IiwiaG9va0Vycm9yQ2IiLCJfY3JlYXRlRnVuY3Rpb25Ib29rIiwiYWlIb29rIiwiZnVuY1RoaXMiLCJvcmdBcmdzIiwiZnVuY0FyZ3MiLCJfcmVwbGFjZUFyZyIsIl9jcmVhdGVBcmdzIiwiX2dldE93bmVyIiwiY2hlY2tQcm90b3R5cGUiLCJvd25lciIsIkluc3RydW1lbnRQcm90byIsIkluc3RydW1lbnRGdW5jIiwiX2NyZWF0ZUluc3RydW1lbnRIb29rIiwibmV3RnVuYyIsInRoZUhvb2siLCJJbnN0cnVtZW50RXZlbnQiLCJEaXNhYmxlZFByb3BlcnR5TmFtZSIsIlNhbXBsZVJhdGUiLCJQcm9jZXNzTGVnYWN5IiwiSHR0cE1ldGhvZCIsIkRFRkFVTFRfQlJFRVpFX0VORFBPSU5UIiwiREVGQVVMVF9CUkVFWkVfUEFUSCIsInN0ck5vdFNwZWNpZmllZCIsInN0cklrZXkiLCJjcmVhdGVEb21FdmVudCIsIl9EWU5fSU5HRVNUSU9ORU5EUE9JTlQiLCJfRFlOX1RPX1NUUklORyIsIl9EWU5fUkVNT1ZFX0lURU0iLCJfRFlOX0NPVU5UIiwiX0RZTl9TVFJJTkdJRlkiLCJfRFlOX1BBVEhOQU1FIiwiX0RZTl9DT1JSRUxBVElPTl9IRUFERVJfRTAiLCJfRFlOX0VYQ0VQVElPTlMiLCJfRFlOX1BBUlNFRF9TVEFDSyIsIl9EWU5fUFJPUEVSVElFUyIsIl9EWU5fTUVBU1VSRU1FTlRTIiwiX0RZTl9TSVpFX0lOX0JZVEVTIiwiX0RZTl9UWVBFX05BTUUiLCJfRFlOX1NFVkVSSVRZX0xFVkVMIiwiX0RZTl9QUk9CTEVNX0dST1VQIiwiX0RZTl9JU19NQU5VQUwiLCJfRFlOX19DUkVBVEVfRlJPTV9JTlRFUkZBMSIsIl9EWU5fSEFTX0ZVTExfU1RBQ0siLCJfRFlOX0xFVkVMIiwiX0RZTl9NRVRIT0QiLCJfRFlOX0FTU0VNQkxZIiwiX0RZTl9GSUxFX05BTUUiLCJfRFlOX0xJTkUiLCJfRFlOX0RVUkFUSU9OIiwiX0RZTl9SRUNFSVZFRF9SRVNQT05TRSIsIl9EWU5fU0FOSVRJWkVfS0VZX0FORF9BREQyIiwiX0RZTl9TQU5JVElaRV9FWENFUFRJT04iLCJfRFlOX1NBTklUSVpFX1BST1BFUlRJRVMiLCJfRFlOX1NBTklUSVpFX01FQVNVUkVNRU5UMyIsInN0ckVtcHR5Iiwic3RyaW5nVG9Cb29sT3JEZWZhdWx0IiwibXNUb1RpbWVTcGFuIiwidG90YWxtcyIsInNlYyIsImhvdXIiLCJpc0Nyb3NzT3JpZ2luRXJyb3IiLCJsaW5lTnVtYmVyIiwiY29sdW1uTnVtYmVyIiwiUmVxdWVzdEhlYWRlcnMiLCJTdG9yYWdlVHlwZSIsIl9jYW5Vc2VMb2NhbFN0b3JhZ2UiLCJfY2FuVXNlU2Vzc2lvblN0b3JhZ2UiLCJfZ2V0TG9jYWxTdG9yYWdlT2JqZWN0IiwidXRsQ2FuVXNlTG9jYWxTdG9yYWdlIiwiX2dldFZlcmlmaWVkU3RvcmFnZU9iamVjdCIsInN0b3JhZ2VUeXBlIiwiZmFpbCIsIl9nZXRTZXNzaW9uU3RvcmFnZU9iamVjdCIsInV0bENhblVzZVNlc3Npb25TdG9yYWdlIiwidXRsRGlzYWJsZVN0b3JhZ2UiLCJ1dGxFbmFibGVTdG9yYWdlIiwidXRsR2V0TG9jYWxTdG9yYWdlIiwidXRsU2V0TG9jYWxTdG9yYWdlIiwidXRsUmVtb3ZlU3RvcmFnZSIsInV0bEdldFNlc3Npb25TdG9yYWdlIiwidXRsU2V0U2Vzc2lvblN0b3JhZ2UiLCJ1dGxSZW1vdmVTZXNzaW9uU3RvcmFnZSIsImRhdGFTYW5pdGl6ZUtleUFuZEFkZFVuaXF1ZW5lc3MiLCJvcmlnTGVuZ3RoIiwiZGF0YVNhbml0aXplS2V5IiwidW5pcXVlRmllbGQiLCJkc1BhZE51bWJlciIsIm5hbWVUcnVuYyIsImRhdGFTYW5pdGl6ZVN0cmluZyIsInZhbHVlVHJ1bmMiLCJkYXRhU2FuaXRpemVVcmwiLCJkYXRhU2FuaXRpemVJbnB1dCIsImRhdGFTYW5pdGl6ZU1lc3NhZ2UiLCJtZXNzYWdlVHJ1bmMiLCJkYXRhU2FuaXRpemVFeGNlcHRpb24iLCJleGNlcHRpb24iLCJleGNlcHRpb25UcnVuYyIsImRhdGFTYW5pdGl6ZVByb3BlcnRpZXMiLCJ0ZW1wUHJvcHNfMSIsImRhdGFTYW5pdGl6ZU1lYXN1cmVtZW50cyIsIm1lYXN1cmVtZW50cyIsInRlbXBNZWFzdXJlbWVudHNfMSIsIm1lYXN1cmUiLCJkYXRhU2FuaXRpemVJZCIsIl9tc2dJZCIsImlucHV0VHJ1bmMiLCJfZG9jdW1lbnQiLCJfaHRtbEFuY2hvcklkeCIsIl9odG1sQW5jaG9yRWxlbWVudCIsInVybFBhcnNlVXJsIiwiYW5jaG9ySWR4IiwiYW5jaG9yQ2FjaGUiLCJ0ZW1wQW5jaG9yIiwidXJsUGFyc2VIb3N0IiwidXJsR2V0QWJzb2x1dGVVcmwiLCJ1cmxHZXRDb21wbGV0ZVVybCIsIm1ldGhvZCIsImFic29sdXRlVXJsIiwiaW5jbFBvcnQiLCJmdWxsSG9zdCIsInVybFBhcnNlRnVsbEhvc3QiLCJwcm90b2NvbCIsInBvcnQiLCJfaW50ZXJuYWxFbmRwb2ludHMiLCJpc0ludGVybmFsQXBwbGljYXRpb25JbnNpZ2h0c0VuZHBvaW50IiwiZW5kcG9pbnRVcmwiLCJDb3JyZWxhdGlvbklkSGVscGVyIiwiY3VycmVudEhvc3QiLCJyZXF1ZXN0SG9zdCIsImluY2x1ZGVkRG9tYWlucyIsIm1hdGNoRXhpc3RzXzEiLCJleGNsdWRlZERvbWFpbnMiLCJyZXNwb25zZUhlYWRlciIsImNvcnJlbGF0aW9uSWQiLCJrZXlWYWx1ZXMiLCJrZXlWYWx1ZSIsIkFqYXhIZWxwZXJQYXJzZURlcGVuZGVuY3lQYXRoIiwiY29tbWFuZE5hbWUiLCJwYXJzZWRVcmwiLCJwYXRoTmFtZSIsImRhdGVUaW1lVXRpbHNOb3ciLCJwZXJmIiwiZGF0ZVRpbWVVdGlsc0R1cmF0aW9uIiwiY3JlYXRlRGlzdHJpYnV0ZWRUcmFjZUNvbnRleHRGcm9tVHJhY2UiLCJ0ZWxlbWV0cnlUcmFjZSIsIl9GSUVMRFNfU0VQQVJBVE9SIiwiX0ZJRUxEX0tFWV9WQUxVRV9TRVBBUkFUT1IiLCJwYXJzZUNvbm5lY3Rpb25TdHJpbmciLCJjb25uZWN0aW9uU3RyaW5nIiwia3ZQYWlycyIsImZpZWxkcyIsImt2Iiwia3ZQYXJ0cyIsImxvY2F0aW9uUHJlZml4IiwiRW52ZWxvcGUiLCJFdmVudCIsIk5vTWV0aG9kIiwic3RyRXJyb3IiLCJzdHJTdGFjayIsInN0clN0YWNrRGV0YWlscyIsInN0ckVycm9yU3JjIiwic3RyTWVzc2FnZSIsInN0ckRlc2NyaXB0aW9uIiwiX3N0cmluZ2lmeSIsImNvbnZlcnRUb1N0cmluZyIsIl9mb3JtYXRNZXNzYWdlIiwiZXJyb3JUeXBlIiwiZXZ0TWVzc2FnZSIsIl9pc0V4Y2VwdGlvbkRldGFpbHNJbnRlcm5hbCIsIl9pc0V4Y2VwdGlvbkludGVybmFsIiwiX2lzU3RhY2tEZXRhaWxzIiwiX2NvbnZlcnRTdGFja09iaiIsImVycm9yU3RhY2siLCJfZ2V0T3BlcmFTdGFjayIsInN0YWNrIiwibGluZXMiLCJfZ2V0U3RhY2tGcm9tRXJyb3JPYmoiLCJlcnJvck9iaiIsIl9mb3JtYXRTdGFja1RyYWNlIiwic3RhY2tEZXRhaWxzIiwiX3BhcnNlU3RhY2siLCJwYXJzZWRTdGFjayIsImZyYW1lcyIsImxldmVsXzEiLCJ0b3RhbFNpemVJbkJ5dGVzXzEiLCJmcmFtZSIsInRoZUZyYW1lIiwiX1N0YWNrRnJhbWUiLCJwYXJzZWRGcmFtZSIsImV4Y2VwdGlvblBhcnNlZFN0YWNrVGhyZXNob2xkIiwiYWNjZXB0ZWRMZWZ0IiwiYWNjZXB0ZWRSaWdodCIsImxTaXplIiwiclNpemUiLCJob3dNYW55IiwiX2dldEVycm9yVHlwZSIsInR5cGVOYW1lIiwiZnVuY05hbWVSZWdleCIsIl9mb3JtYXRFcnJvckNvZGUiLCJFeGNlcHRpb24iLCJzZXZlcml0eUxldmVsIiwiX0V4Y2VwdGlvbkRldGFpbHMiLCJlcnJvclNyYyIsImV4Y2VwdGlvbnMiLCJleGNlcHRpb25EYXRhIiwicHJvYmxlbUdyb3VwIiwiaXNNYW51YWwiLCJleGNlcHRpb25EZXRhaWxzSW50ZXJmYWNlIiwiYXNzZW1ibHkiLCJmaWxlTmFtZSIsImV4Y2VwdGlvbkRldGFpbHMiLCJzb3VyY2VGcmFtZSIsIkRhdGFQb2ludCIsIk1ldHJpYyIsInN0ZERldiIsImRhdGFQb2ludCIsIlBhZ2VWaWV3IiwiZHVyYXRpb25NcyIsIlJlbW90ZURlcGVuZGVuY3lEYXRhIiwic3VjY2VzcyIsInJlc3VsdENvZGUiLCJyZXF1ZXN0QVBJIiwiY29ycmVsYXRpb25Db250ZXh0IiwiZGVwZW5kZW5jeUZpZWxkcyIsIlRyYWNlIiwiUGFnZVZpZXdQZXJmb3JtYW5jZSIsInVudXNlZCIsImNzNEJhc2VEYXRhIiwiRGF0YSIsImJhc2VUeXBlIiwiX2FpTmFtZUZ1bmMiLCJiYXNlTmFtZSIsImFpTmFtZSIsIl9haUFwcGxpY2F0aW9uIiwiX2FpRGV2aWNlIiwiX2FpTG9jYXRpb24iLCJfYWlPcGVyYXRpb24iLCJfYWlTZXNzaW9uIiwiX2FpVXNlciIsIl9haUNsb3VkIiwiX2FpSW50ZXJuYWwiLCJDb250ZXh0VGFnS2V5cyIsImNyZWF0ZVRlbGVtZXRyeUl0ZW0iLCJlbnZlbG9wZU5hbWUiLCJjdXN0b21Qcm9wZXJ0aWVzIiwic3lzdGVtUHJvcGVydGllcyIsImlLZXkiLCJFeHRlbnNpb25zIiwiQ3R4VGFnS2V5cyIsIlByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyIiwiQnJlZXplQ2hhbm5lbElkZW50aWZpZXIiLCJBbmFseXRpY3NQbHVnaW5JZGVudGlmaWVyIiwiX0RZTl9ESVNBQkxFX0VYQ0VQVElPTl9UUjAiLCJfRFlOX0FVVE9fVFJBQ0tfUEFHRV9WSVNJMSIsIl9EWU5fT1ZFUlJJREVfUEFHRV9WSUVXX0QyIiwiX0RZTl9FTkFCTEVfVU5IQU5ETEVEX1BSTzMiLCJfRFlOX1NBTVBMSU5HX1BFUkNFTlRBR0UiLCJfRFlOX0lTX1NUT1JBR0VfVVNFX0RJU0FCNCIsIl9EWU5fSVNfQlJPV1NFUl9MSU5LX1RSQUM1IiwiX0RZTl9FTkFCTEVfQVVUT19ST1VURV9UUjYiLCJfRFlOX05BTUVfUFJFRklYIiwiX0RZTl9ESVNBQkxFX0ZMVVNIX09OX0JFRjciLCJfRFlOX0NPUkUiLCJfRFlOX0RBVEFfVFlQRSIsIl9EWU5fRU5WRUxPUEVfVFlQRSIsIl9EWU5fVFJBQ0siLCJfRFlOX1RSQUNLX1BBR0VfVklFVyIsIl9EWU5fVFJBQ0tfUFJFVklPVVNfUEFHRV85IiwiX0RZTl9TRU5EX1BBR0VfVklFV19JTlRFUjEwIiwiX0RZTl9TRU5EX1BBR0VfVklFV19QRVJGTzExIiwiX0RZTl9QT1BVTEFURV9QQUdFX1ZJRVdfUDEyIiwiX0RZTl9IUkVGIiwiX0RZTl9TRU5EX0VYQ0VQVElPTl9JTlRFUjEzIiwiX0RZTl9FWENFUFRJT04iLCJfRFlOX0VSUk9SIiwiX0RZTl9fT05FUlJPUiIsIl9EWU5fRVJST1JfU1JDIiwiX0RZTl9MSU5FX05VTUJFUiIsIl9EWU5fQ09MVU1OX05VTUJFUiIsIl9EWU5fX0NSRUFURV9BVVRPX0VYQ0VQVEkxNCIsIl9EWU5fQUREX1RFTEVNRVRSWV9JTklUSUExNSIsIl9EWU5fSVNfUEVSRk9STUFOQ0VfVElNSU4xNiIsIl9EWU5fR0VUX1BFUkZPUk1BTkNFX1RJTUkxNyIsIl9EWU5fTkFWSUdBVElPTl9TVEFSVCIsIl9EWU5fU0hPVUxEX0NPTExFQ1RfRFVSQVQxOCIsIl9EWU5fSVNfUEVSRk9STUFOQ0VfVElNSU4xOSIsIl9EWU5fR0VUX0VOVFJJRVNfQllfVFlQRSIsIl9EWU5fUkVTUE9OU0VfU1RBUlQiLCJfRFlOX1JFUVVFU1RfU1RBUlQiLCJfRFlOX0xPQURfRVZFTlRfRU5EIiwiX0RZTl9SRVNQT05TRV9FTkQiLCJfRFlOX0NPTk5FQ1RfRU5EIiwiX0RZTl9QQUdFX1ZJU0lUX1NUQVJUX1RJTTIwIiwiUGFnZVZpZXdNYW5hZ2VyIiwib3ZlcnJpZGVQYWdlVmlld0R1cmF0aW9uIiwicGFnZVZpZXdQZXJmb3JtYW5jZU1hbmFnZXIiLCJpbnRlcnZhbEhhbmRsZSIsIml0ZW1RdWV1ZSIsInBhZ2VWaWV3UGVyZm9ybWFuY2VTZW50IiwiX2xvZ2dlciIsIl9hZGRRdWV1ZSIsImRvRmx1c2giLCJwYWdlVmlldyIsInVyaSIsInBhZ2VWaWV3U2VudCIsImN1c3RvbUR1cmF0aW9uIiwibWF4RHVyYXRpb25MaW1pdCIsInByb2Nlc3NlZCIsInBhZ2VWaWV3UGVyZm9ybWFuY2UiLCJNQVhfRFVSQVRJT05fQUxMT1dFRCIsImJvdEFnZW50TmFtZXMiLCJfaXNQZXJmb3JtYW5jZVRpbWluZ1N1cHBvcnRlZCIsIl9pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZ1N1cHBvcnRlZCIsIl9pc1BlcmZvcm1hbmNlVGltaW5nRGF0YVJlYWR5IiwidGltaW5nIiwiX2dldFBlcmZvcm1hbmNlVGltaW5nIiwiX2dldFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyIsIl9zaG91bGRDb2xsZWN0RHVyYXRpb24iLCJfbmF2aWdhdG9yIiwiaXNHb29nbGVCb3QiLCJQYWdlVmlld1BlcmZvcm1hbmNlTWFuYWdlciIsIm5hdmlnYXRpb25UaW1pbmciLCJ0b3RhbCIsIm5ldHdvcmsiLCJQYWdlVmlzaXRUaW1lTWFuYWdlciIsInBhZ2VWaXNpdFRpbWVUcmFja2luZ0hhbmRsZXIiLCJwcmV2UGFnZVZpc2l0RGF0YUtleU5hbWUiLCJjdXJyZW50UGFnZU5hbWUiLCJjdXJyZW50UGFnZVVybCIsInByZXZQYWdlVmlzaXRUaW1lRGF0YSIsInJlc3RhcnRQYWdlVmlzaXRUaW1lciIsInBhZ2VOYW1lIiwicGFnZVVybCIsInByZXZQYWdlVmlzaXREYXRhIiwic3RvcFBhZ2VWaXNpdFRpbWVyIiwic3RhcnRQYWdlVmlzaXRUaW1lciIsImN1cnJQYWdlVmlzaXREYXRhIiwiUGFnZVZpc2l0RGF0YSIsImN1cnJQYWdlVmlzaXREYXRhU3RyIiwicGFnZVZpc2l0RW5kVGltZSIsInBhZ2VWaXNpdERhdGFKc29uU3RyIiwiVGltaW5nIiwiX2V2ZW50cyIsInN0ckV2ZW50IiwiX2Rpc3BhdGNoRXZlbnQiLCJldm50IiwiX2dldFJlYXNvbiIsIk1pbk1pbGxpU2Vjb25kcyIsIl9jb25maWdNaWxsaXNlY29uZHMiLCJfZ2V0RGVmYXVsdENvbmZpZyIsIl91cGRhdGVTdG9yYWdlVXNhZ2UiLCJBbmFseXRpY3NQbHVnaW4iLCJfZXZlbnRUcmFja2luZyIsIl9wYWdlVHJhY2tpbmciLCJfcGFnZVZpZXdNYW5hZ2VyIiwiX3BhZ2VWaWV3UGVyZm9ybWFuY2VNYW5hZ2VyIiwiX3BhZ2VWaXNpdFRpbWVNYW5hZ2VyIiwiX3ByZUluaXRUZWxlbWV0cnlJbml0aWFsaXplcnMiLCJfaXNCcm93c2VyTGlua1RyYWNraW5nRW5hYmxlZCIsIl9icm93c2VyTGlua0luaXRpYWxpemVyQWRkZWQiLCJfZW5hYmxlQXV0b1JvdXRlVHJhY2tpbmciLCJfaGlzdG9yeUxpc3RlbmVyQWRkZWQiLCJfZGlzYWJsZUV4Y2VwdGlvblRyYWNraW5nIiwiX2F1dG9FeGNlcHRpb25JbnN0cnVtZW50ZWQiLCJfZW5hYmxlVW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvblRyYWNraW5nIiwiX2F1dG9VbmhhbmRsZWRQcm9taXNlSW5zdHJ1bWVudGVkIiwiX3ByZXZVcmkiLCJfY3VyclVyaSIsIl9hZGRIb29rIiwiRXZlbnRUZWxlbWV0cnkiLCJtZXRyaWMiLCJpblB2IiwiaW5QdnAiLCJtZWFzdXJlbWVudCIsImxvYyIsInRoZUVycm9yIiwiZXhjZXB0aW9uUGFydEIiLCJfd2luZG93IiwiX3NlbmRDT1JTRXhjZXB0aW9uIiwiZXJyb3JTdHJpbmciLCJfcG9wdWxhdGVEZWZhdWx0cyIsInBhZ2VWaXNpdFRpbWUiLCJ0cmFja1BhZ2VWaXNpdFRpbWUiLCJfdXBkYXRlQnJvd3NlckxpbmtUcmFja2luZyIsInBhZ2VWaWV3SXRlbSIsIl91cGRhdGVFeGNlcHRpb25UcmFja2luZyIsIl91cGRhdGVMb2NhdGlvbkNoYW5nZSIsIl9hZGREZWZhdWx0VGVsZW1ldHJ5SW5pdGlhbGl6ZXJzIiwiYnJvd3NlckxpbmtQYXRoc18xIiwiZHJvcEJyb3dzZXJMaW5rUmVxdWVzdHMiLCJlbnZlbG9wZSIsInJlbW90ZURhdGEiLCJsb2NuIiwiX2FkZFVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25UcmFja2luZyIsIl9oaXN0b3J5Iiwic3RyVW5kZWZpbmVkIiwiX2FkZEhpc3RvcnlMaXN0ZW5lciIsIl9nZXREaXN0cmlidXRlZFRyYWNlQ3R4IiwiZGlzdHJpYnV0ZWRUcmFjZUN0eCIsIm5hbWVQcmVmaXgiLCJfcG9wc3RhdGVIYW5kbGVyIiwiX2xvY2F0aW9uQ2hhbmdlSGFuZGxlciIsInRyYWNlTG9jYXRpb25OYW1lIiwiX2xvY2F0aW9uIiwiU1RSX0RVUkFUSU9OIiwiX0RZTl9UQUdTIiwiX0RZTl9ERVZJQ0VfVFlQRSIsIl9EWU5fREFUQSIsIl9EWU5fT05fTElORSIsIl9EWU5fRU5RVUVVRSIsIl9EWU5fRU1JVF9MSU5FX0RFTElNSVRFRF8wIiwiX0RZTl9DTEVBUiIsIl9EWU5fQkFUQ0hfUEFZTE9BRFMiLCJfRFlOX01BUktfQVNfU0VOVCIsIl9EWU5fQ0xFQVJfU0VOVCIsIl9EWU5fX0JVRkZFUl9fS0VZIiwiX0RZTl9fU0VOVF9fQlVGRkVSX19LRVkiLCJfRFlOX19NQVhfX0JVRkZFUl9fU0laRSIsIl9EWU5fTUFYX0JBVENIX1NJWkVfSU5fQlkxIiwiX0RZTl9UUklHR0VSX1NFTkQiLCJfRFlOX09OVU5MT0FEX0RJU0FCTEVfQkVBMiIsIl9EWU5fSVNfQkVBQ09OX0FQSV9ESVNBQkwzIiwiX0RZTl9fU0VOREVSIiwiX0RZTl9fU0VOREVSX0NPTkZJRyIsIl9EWU5fX0JVRkZFUiIsIl9EWU5fRU5BQkxFX1NFU1NJT05fU1RPUkE0IiwiX0RZTl9FTkRQT0lOVF9VUkwiLCJfRFlOX0NVU1RPTV9IRUFERVJTIiwiX0RZTl9ESVNBQkxFX1hIUiIsIl9EWU5fT05VTkxPQURfRElTQUJMRV9GRVQ1IiwiX0RZTl9ESVNBQkxFX1RFTEVNRVRSWSIsIl9EWU5fQkFTRV9UWVBFIiwiX0RZTl9TQU1QTEVfUkFURSIsIl9EWU5fQ09OVkVSVF9VTkRFRklORUQiLCJfRFlOX19YSFJfUkVBRFlfU1RBVEVfQ0hBNiIsIl9EWU5fX09OX0VSUk9SIiwiX0RZTl9fT05fUEFSVElBTF9TVUNDRVNTIiwiX0RZTl9fT05fU1VDQ0VTUyIsIl9EWU5fSVRFTVNfQUNDRVBURUQiLCJfRFlOX0lURU1TX1JFQ0VJVkVEIiwiX0RZTl9JU19SRVRSWV9ESVNBQkxFRCIsIl9EWU5fU0VUX1JFUVVFU1RfSEVBREVSIiwiX0RZTl9NQVhfQkFUQ0hfSU5URVJWQUwiLCJfRFlOX0VWRU5UU19TRU5EX1JFUVVFU1QiLCJfRFlOX0RJU0FCTEVfSU5TVFJVTUVOVEFUNyIsIl9EWU5fR0VUX1NBTVBMSU5HX1NDT1JFIiwiX0RZTl9HRVRfSEFTSF9DT0RFX1NDT1JFIiwic3RyQmFzZVR5cGUiLCJzdHJCYXNlRGF0YSIsInN0clByb3BlcnRpZXMiLCJzdHJUcnVlIiwiX3NldFZhbHVlSWYiLCJfZXh0cmFjdFBhcnRBRXh0ZW5zaW9ucyIsImVudlRhZ3MiLCJpdG1FeHQiLCJpdG1UYWdzIiwiZXh0VXNlciIsImV4dEFwcCIsImV4dERldmljZSIsIndlYiIsImVudkRhdGEiLCJlbnZCYXNlRGF0YSIsImVudlByb3BzIiwiZXh0T3MiLCJleHRUcmFjZSIsInRncyIsInRoZVRhZ3MiLCJFbnZlbG9wZUNyZWF0b3IiLCJfZXh0cmFjdFByb3BzQW5kTWVhc3VyZW1lbnRzIiwiX2NvbnZlcnRQcm9wc1VuZGVmaW5lZFRvQ3VzdG9tRGVmaW5lZFZhbHVlIiwiY3VzdG9tVW5kZWZpbmVkVmFsdWUiLCJfY3JlYXRlRW52ZWxvcGUiLCJlbnZlbG9wZVR5cGUiLCJpS2V5Tm9EYXNoZXMiLCJFbnZlbG9wZUNyZWF0b3JJbml0IiwiRGVwZW5kZW5jeUVudmVsb3BlQ3JlYXRvciIsImN1c3RvbU1lYXN1cmVtZW50cyIsInJlbW90ZURlcERhdGEiLCJFdmVudEVudmVsb3BlQ3JlYXRvciIsImV2ZW50RGF0YSIsIkV4Y2VwdGlvbkVudmVsb3BlQ3JlYXRvciIsImV4RGF0YSIsIk1ldHJpY0VudmVsb3BlQ3JlYXRvciIsImJhc2VEYXRhIiwiYmFzZU1ldHJpY0RhdGEiLCJQYWdlVmlld0VudmVsb3BlQ3JlYXRvciIsImN1cnJlbnRDb250ZXh0SWQiLCJwYWdlVGFncyIsInBhZ2VWaWV3RGF0YSIsIlBhZ2VWaWV3UGVyZm9ybWFuY2VFbnZlbG9wZUNyZWF0b3IiLCJUcmFjZUVudmVsb3BlQ3JlYXRvciIsIl9kaXNhYmxlRXZlbnRzIiwiY3JlYXRlT2ZmbGluZUxpc3RlbmVyIiwicGFyZW50RXZ0TmFtZXNwYWNlIiwiX2lzTGlzdGVuaW5nIiwiX29ubGluZVN0YXR1cyIsIl9lbmFibGVFdmVudHMiLCJfc2V0T25saW5lIiwiX3NldE9mZmxpbmUiLCJfaXNPbmxpbmUiLCJfdW5sb2FkIiwiQmFzZVNlbmRCdWZmZXIiLCJfYnVmZmVyIiwiX2J1ZmZlckZ1bGxNZXNzYWdlU2VudCIsIkFycmF5U2VuZEJ1ZmZlciIsIlNlc3Npb25TdG9yYWdlU2VuZEJ1ZmZlciIsIl9nZXRCdWZmZXIiLCJub3REZWxpdmVyZWRJdGVtcyIsIl9zZXRCdWZmZXIiLCJfcmVtb3ZlUGF5bG9hZHNGcm9tQnVmZmVyIiwic2VudEVsZW1lbnRzIiwicGF5bG9hZHMiLCJyZW1haW5pbmciLCJwcmVmaXhlZEtleSIsImJ1ZmZlckpzb24iLCJidWZmZXJfMSIsIlNlcmlhbGl6ZXIiLCJfc2VyaWFsaXplT2JqZWN0IiwiY2lyY3VsYXJSZWZlcmVuY2VDaGVjayIsIl9zZXJpYWxpemVTdHJpbmdNYXAiLCJfc2VyaWFsaXplQXJyYXkiLCJjb250cmFjdCIsImlzUmVxdWlyZWQiLCJpc0hpZGRlbiIsImlzUHJlc2VudCIsImlzT2JqIiwic291cmNlcyIsImV4cGVjdGVkVHlwZSIsIk1JTl9JTlBVVF9MRU5HVEgiLCJIYXNoQ29kZVNjb3JlR2VuZXJhdG9yIiwiU2FtcGxpbmdTY29yZUdlbmVyYXRvciIsImhhc2hDb2RlR2VuZXJhdG9yIiwiU2FtcGxlIiwic2FtcGxlUmF0ZSIsInNhbXBsaW5nUGVyY2VudGFnZSIsImlzU2FtcGxlZEluIiwiRmV0Y2hTeW5jUmVxdWVzdFNpemVMaW1pdEJ5dGVzIiwiX2dldFJlc3BvbnNlVGV4dCIsInhociIsIl9nZXREZWZhdWx0QXBwSW5zaWdodHNDaGFubmVsQ29uZmlnIiwiZGVmYXVsdEN1c3RvbUhlYWRlcnMiLCJFbnZlbG9wZVR5cGVDcmVhdG9yIiwiU2VuZGVyIiwiX2NvbnNlY3V0aXZlRXJyb3JzIiwiX3JldHJ5QXQiLCJfbGFzdFNlbmQiLCJfcGF1c2VkIiwiX3RpbWVvdXRIYW5kbGUiLCJfc2VyaWFsaXplciIsIl9zdGFtcF9zcGVjaWZpY19yZWRpcmVjdHMiLCJfaGVhZGVycyIsIl9zeW5jRmV0Y2hQYXlsb2FkIiwiX2ZhbGxiYWNrU2VuZGVyIiwiX3N5bmNVbmxvYWRTZW5kZXIiLCJfb2ZmbGluZUxpc3RlbmVyIiwiX2NsZWFyU2NoZWR1bGVkVGltZXIiLCJfc2V0dXBUaW1lciIsIl9kb1VubG9hZFNlbmQiLCJkaWFnTG9nIiwiZGVmYXVsdENvbmZpZyIsIl92YWxpZGF0ZUluc3RydW1lbnRhdGlvbktleSIsImN1c3RvbUhlYWRlciIsInNlbmRlckNvbmZpZyIsInNlbmRQb3N0RnVuYyIsIl94ZHJTZW5kZXIiLCJfeGhyU2VuZGVyIiwiX2ZldGNoU2VuZGVyIiwiX2JlYWNvblNlbmRlciIsIl9mZXRjaEtlZXBBbGl2ZVNlbmRlciIsImRpYWdMb2dnZXIiLCJfaXNTYW1wbGVkSW4iLCJjb252ZXJ0VW5kZWZpbmVkIiwiZGVmYXVsdEVudmVsb3BlSWtleSIsImFpRW52ZWxvcGVfMSIsImRvTm90U2VuZEl0ZW1fMSIsImNvdW50T2ZJdGVtc0luUGF5bG9hZCIsIl9jaGVja1Jlc3BvbnNTdGF0dXMiLCJfZm9ybWF0RXJyb3JNZXNzYWdlWGhyIiwiYXN5bmMiLCJmb3JjZWRTZW5kZXIiLCJfbm90aWZ5U2VuZFJlcXVlc3QiLCJpZVZlciIsImZhaWxlZCIsImVycm9ycyIsImVycm9yc18xIiwiZXh0cmFjdGVkIiwiX2lzUmV0cmlhYmxlIiwiX3Jlc2VuZFBheWxvYWQiLCJ4ZHIiLCJyZXNwb25zZVRleHQiLCJfcGFyc2VSZXNwb25zZSIsIl9mb3JtYXRFcnJvck1lc3NhZ2VYZHIiLCJyZXNwb25zZVVybCIsIl9jaGVja0FuZFVwZGF0ZUVuZFBvaW50VXJsIiwib2ZmbGluZUJhY2tPZmZNdWx0aXBsaWVyIiwiX2RvQmVhY29uU2VuZCIsInBsYWluVGV4dEJhdGNoIiwicXVldWVkIiwiZHJvcHBlZFBheWxvYWQiLCJ0aGVQYXlsb2FkIiwiZW5kUG9pbnRVcmwiLCJoZWFkZXJOYW1lIiwicGF5bG9hZFNpemUiLCJfZG9GZXRjaFNlbmRlciIsInJlcXVlc3RIZWFkZXJzIiwiYmF0Y2hMZW5ndGgiLCJpZ25vcmVSZXNwb25zZSIsInJlc3BvbnNlSGFuZGxlZCIsImxpbmVhckZhY3RvciIsInBheWxvYWRfMSIsIl9zZXRSZXRyeVRpbWUiLCJTbG90RGVsYXlJblNlY29uZHMiLCJkZWxheUluU2Vjb25kcyIsImJhY2tPZmZTbG90IiwiYmFja09mZkRlbGF5IiwicmV0cnlBZnRlclRpbWVTcGFuIiwicmV0cnlJbnRlcnZhbCIsInRpbWVyVmFsdWUiLCJzdGF0dXNDb2RlIiwiaG9zdGluZ1Byb3RvY29sIiwiX2dldE5vdGlmeU1nciIsInNlbmRSZXF1ZXN0IiwiZGlzYWJsZUlLZXlWYWxpZGF0aW9uRmxhZyIsIlVVSURfUmVnZXgiLCJyZWdleHAiLCJvcmlnIiwiY3JlYXRvciIsIlNUUl9QUk9QRVJUSUVTIiwiX0RZTl9SRVFVRVNUX1VSTCIsIl9EWU5fSU5TVCIsIl9EWU5fQ09OVEVYVCIsIl9EWU5fVFJBQ0VfSUQwIiwiX0RZTl9TUEFOX0lEMSIsIl9EWU5fSU5DTFVERV9DT1JSRUxBVElPTl8yIiwiX0RZTl9DQU5fSU5DTFVERV9DT1JSRUxBVDMiLCJfRFlOX0dFVF9BQlNPTFVURV9VUkwiLCJfRFlOX0hFQURFUlMiLCJfRFlOX1JFUVVFU1RfSEVBREVSUyIsIl9EWU5fQVBQX0lEIiwiX0RZTl9UUkFDS19ERVBFTkRFTkNZX0RBVDQiLCJfRFlOX0RJU1RSSUJVVEVEX1RSQUNJTkdfNSIsIl9EWU5fU1RBUlRfVElNRSIsIl9EWU5fRU5BQkxFX1JFUVVFU1RfSEVBREU2IiwiX0RZTl9FTkFCTEVfQUpBWF9FUlJPUl9TVDciLCJfRFlOX0VOQUJMRV9BSkFYX1BFUkZfVFJBOCIsIl9EWU5fTUFYX0FKQVhfQ0FMTFNfUEVSX1Y5IiwiX0RZTl9FTkFCTEVfUkVTUE9OU0VfSEVBRDEwIiwiX0RZTl9FWENMVURFX1JFUVVFU1RfRlJPTTExIiwiX0RZTl9BRERfUkVRVUVTVF9DT05URVhUIiwiX0RZTl9ESVNBQkxFX0FKQVhfVFJBQ0tJTjEyIiwiX0RZTl9ESVNBQkxFX0ZFVENIX1RSQUNLSTEzIiwiX0RZTl9TVEFUVVMiLCJfRFlOX1NUQVRVU19URVhUIiwiX0RZTl9IRUFERVJfTUFQIiwiX0RZTl9PUEVOX0RPTkUiLCJfRFlOX1NFTkRfRE9ORSIsIl9EWU5fUkVRVUVTVF9TRU5UX1RJTUUiLCJfRFlOX0FCT1JUX0RPTkUiLCJfRFlOX0dFVF9UUkFDRV9JRCIsIl9EWU5fR0VUX1RSQUNFX0ZMQUdTIiwiX0RZTl9FUlJPUl9TVEFUVVNfVEVYVCIsIl9EWU5fU1RBVEVfQ0hBTkdFX0FUVEFDSEUxNCIsIl9EWU5fUkVTUE9OU0VfVEVYVCIsIl9EWU5fUkVTUE9OU0VfRklOSVNIRURfVEkxNSIsIl9EWU5fX0NSRUFURV9UUkFDS19JVEVNIiwiX0RZTl9SRVNQT05TRSIsIl9EWU5fR0VUX0FMTF9SRVNQT05TRV9IRUExNiIsIl9EWU5fR0VUX1BBUlRfQVBST1BTIiwiX0RZTl9HRVRfQ09SUkVMQVRJT05fQ09OVDE3IiwiX0RZTl9QRVJGX01BUksiLCJfRFlOX0FKQVhfUEVSRl9MT09LVVBfREVMMTgiLCJfRFlOX1BFUkZfVElNSU5HIiwiX0RZTl9BSkFYX0RJQUdOT1NUSUNTX01FUzE5IiwiX0RZTl9DT1JSRUxBVElPTl9DT05URVhUIiwiX0RZTl9BSkFYX1RPVEFMX0RVUkFUSU9OIiwiX0RZTl9FVkVOVF9UUkFDRV9DVFgiLCJfY2FsY1BlcmZEdXJhdGlvbiIsInJlc291cmNlRW50cnkiLCJfc2V0UGVyZkR1cmF0aW9uIiwiX3NldFBlcmZWYWx1ZSIsInN0clBlcmYiLCJwZXJmRGF0YSIsIl9wb3B1bGF0ZVBlcmZEYXRhIiwiYWpheERhdGEiLCJkZXBlbmRlbmN5IiwicHJvcHNTZXQiLCJzdHJOYW1lIiwic3RyU3RhcnQiLCJzdHJFbmQiLCJzdHJEb21haW5Mb29rdXAiLCJzdHJDb25uZWN0Iiwic3RyUmVkaXJlY3QiLCJzdHJSZXF1ZXN0Iiwic3RyUmVzcG9uc2UiLCJzdHJTdGFydFRpbWUiLCJzdHJEb21haW5Mb29rdXBTdGFydCIsInN0ckRvbWFpbkxvb2t1cEVuZCIsInN0ckNvbm5lY3RTdGFydCIsInN0ckNvbm5lY3RFbmQiLCJzdHJSZXF1ZXN0U3RhcnQiLCJzdHJSZXF1ZXN0RW5kIiwic3RyUmVzcG9uc2VTdGFydCIsInN0clJlc3BvbnNlRW5kIiwic3RyUmVkaXJlY3RTdGFydCIsInN0clJlZGlyZWN0RW5kIiwic3RyVHJhbnNmZXJTaXplIiwic3RyRW5jb2RlZEJvZHlTaXplIiwic3RyRGVjb2RlZEJvZHlTaXplIiwic3RyU2VydmVyVGltaW5nIiwic2VydmVyVGltaW5nIiwic2VydmVyXzEiLCJYSFJNb25pdG9yaW5nU3RhdGUiLCJhamF4UmVjb3JkIiwic3RyUmVzcG9uc2VUZXh0IiwiYWpheFR5cGUiLCJlbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmciLCJnZXRSZXNwb25zZSIsInJlc3BvbnNlVHlwZSIsInBhcnRBIiwidHJhY2VFeHQiLCJBSkFYX01PTklUT1JfUFJFRklYIiwic3RyRGlhZ0xvZyIsInN0ckFqYXhEYXRhIiwic3RyRmV0Y2giLCJFUlJPUl9IRUFERVIiLCJFUlJPUl9QUkVGSVgiLCJFUlJPUl9QT1NURklYIiwiRVJST1JfTk9UX1NFTlQiLCJDT1JSRUxBVElPTl9IRUFERVJfRVJST1IiLCJDVVNUT01fUkVRVUVTVF9DT05URVhUX0VSUk9SIiwiRkFJTEVEX1RPX0NBTENVTEFURV9EVVJBVElPTl9FUlJPUiIsIl9tYXJrQ291bnQiLCJfc3VwcG9ydHNGZXRjaCIsIl9nbG9iYWwiLCJzdHJQcm90b3R5cGUiLCJfc3VwcG9ydHNBamF4TW9uaXRvcmluZyIsImFqYXhNb25pdG9ySW5zdGFuY2UiLCJ0aGVPcGVuIiwiX3Rocm93SW50ZXJuYWxDcml0aWNhbCIsIl9nZXRGYWlsZWRBamF4RGlhZ25vc3RpY3NNZXNzYWdlIiwiX3Rocm93SW50ZXJuYWxXYXJuaW5nIiwiX2NyZWF0ZUVycm9yQ2FsbGJhY2tGdW5jIiwiaW50ZXJuYWxNZXNzYWdlIiwiX2luZGV4T2YiLCJ0aGVIYW5kbGVyIiwiX3Byb2Nlc3NEZXBlbmRlbmN5Q29udGFpbmVyIiwiX3Byb2Nlc3NEZXBlbmRlbmN5TGlzdGVuZXJzIiwiaW5pdGlhbGl6ZXJzQ291bnQiLCJCTE9CX0NPUkUiLCJEZmx0QWpheENvcnJlbGF0aW9uSGVhZGVyRXhEb21haW5zIiwiX2ludGVybmFsRXhjbHVkZUVuZHBvaW50cyIsIl9nZXRFbXB0eUNvbmZpZyIsImVtcHR5Q29uZmlnIiwiQWpheE1vbml0b3IiLCJfZmV0Y2hJbml0aWFsaXplZCIsIl94aHJJbml0aWFsaXplZCIsIl9jdXJyZW50V2luZG93SG9zdCIsIl9lbmFibGVSZXF1ZXN0SGVhZGVyVHJhY2tpbmciLCJfZW5hYmxlQWpheEVycm9yU3RhdHVzVGV4dCIsIl90cmFja0FqYXhBdHRlbXB0cyIsIl9pc1VzaW5nVzNDSGVhZGVycyIsIl9pc1VzaW5nQUlIZWFkZXJzIiwiX21hcmtQcmVmaXgiLCJfZW5hYmxlQWpheFBlcmZUcmFja2luZyIsIl9tYXhBamF4Q2FsbHNQZXJWaWV3IiwiX2VuYWJsZVJlc3BvbnNlSGVhZGVyVHJhY2tpbmciLCJfZGlzYWJsZWRVcmxzIiwiX2Rpc2FibGVBamF4VHJhY2tpbmciLCJfZGlzYWJsZUZldGNoVHJhY2tpbmciLCJfZXhjbHVkZVJlcXVlc3RGcm9tQXV0b1RyYWNraW5nUGF0dGVybnMiLCJfYWRkUmVxdWVzdENvbnRleHQiLCJfZGVwZW5kZW5jeUhhbmRsZXJJZCIsIl9kZXBlbmRlbmN5TGlzdGVuZXJzIiwiX2RlcGVuZGVuY3lJbml0aWFsaXplcnMiLCJfaW5zdHJ1bWVudFhociIsIl9pbnN0cnVtZW50RmV0Y2giLCJfcG9wdWxhdGVDb250ZXh0IiwiX3JlcG9ydERlcGVuZGVuY3lJbnRlcm5hbCIsImN1cnJlbnRXaW5kb3dIb3N0IiwiaGVhZGVycyIsImFwcElkIiwidHJhY2VGbGFncyIsInRyYWNlUGFyZW50IiwiZGVwZW5kZW5jeUxpc3RlbmVyIiwiZGVwZW5kZW5jeUluaXRpYWxpemVyIiwiZGlzdHJpYnV0ZWRUcmFjaW5nTW9kZSIsInByb3BFeHQiLCJfY2FuSW5jbHVkZUhlYWRlcnMiLCJoZWFkZXIiLCJybHQiLCJmZXRjaCIsImdsb2JhbCIsImlzUG9seWZpbGwiLCJmZXRjaERhdGEiLCJfaXNEaXNhYmxlZFJlcXVlc3QiLCJfY3JlYXRlRmV0Y2hSZWNvcmQiLCJmZXRjaERhdGFfMSIsIl9yZXBvcnRGZXRjaE1ldHJpY3MiLCJhamF4UmVzcG9uc2UiLCJfZ2V0RmV0Y2hDb3JyZWxhdGlvbkNvbnRleHQiLCJyZXNwb25zZUhlYWRlck1hcF8xIiwiX2hvb2tQcm90byIsIl9pc01vbml0b3JlZFhockluc3RhbmNlIiwiX29wZW5IYW5kbGVyIiwiX2F0dGFjaFRvT25SZWFkeVN0YXRlQ2hhbmdlIiwiX2NyZWF0ZU1hcmtJZCIsInRoZVVybCIsInRoZVJlZ2V4IiwiaWR4MiIsImV4Y2x1ZGVBamF4RGF0YVZhbGlkYXRpb24iLCJhamF4VmFsaWRhdGlvbiIsImluaXRpYWxpemVkIiwidHJhY2VJRCIsInNwYW5JRCIsIl9vbkFqYXhDb21wbGV0ZSIsImV4Y2VwdGlvblRleHQiLCJfcmVwb3J0WGhyRXJyb3IiLCJmYWlsZWRQcm9wcyIsImVycm9yUHJvcHMiLCJfZmluZFBlcmZSZXNvdXJjZUVudHJ5IiwiX2dldEFqYXhDb3JyZWxhdGlvbkNvbnRleHQiLCJyZXNwb25zZUhlYWRlck1hcF8yIiwic3lzUHJvcGVydGllcyIsInJlc3BvbnNlSGVhZGVyc1N0cmluZyIsInBlcmZvcm1hbmNlXzEiLCJtYXJrSWQiLCJpbml0aWF0b3JUeXBlIiwidHJhY2tDYWxsYmFjayIsInJlcG9ydEVycm9yIiwicGVyZk1hcmsiLCJwZXJmb3JtYW5jZSIsIm1heEF0dGVtcHRzIiwicmV0cnlEZWxheSIsImF0dGVtcHQiLCJsb2NhdGVSZXNvdXJjZVRpbWluZyIsInBlcmZUaW1pbmciLCJfZ2V0RmFpbGVkRmV0Y2hEaWFnbm9zdGljc01lc3NhZ2UiLCJfcmVwb3J0RmV0Y2hFcnJvciIsImluaXRpYWxpemVycyIsIkFwcGxpY2F0aW9uIiwiRGV2aWNlIiwiX0RZTl9TRVNTSU9OX01BTkFHRVIiLCJfRFlOX0lTX1VTRVJfQ09PS0lFX1NFVCIsIl9EWU5fSVNfTkVXX1VTRVIiLCJfRFlOX0dFVF9UUkFDRV9DVFgiLCJfRFlOX1RFTEVNRVRSWV9UUkFDRSIsIl9EWU5fQVBQTFlfU0VTU0lPTl9DT05URVgwIiwiX0RZTl9BUFBMWV9BUFBMSUNBVElPTl9DTzEiLCJfRFlOX0FQUExZX0RFVklDRV9DT05URVhUIiwiX0RZTl9BUFBMWV9PUEVSQVRJT05fQ09OVDIiLCJfRFlOX0FQUExZX1VTRVJfQ09OVEVYVCIsIl9EWU5fQVBQTFlfT1BFUkFUSU5HX1NZU1QzIiwiX0RZTl9BUFBMWV9MT0NBVElPTl9DT05URTQiLCJfRFlOX0FQUExZX0lOVEVSTkFMX0NPTlRFNSIsIl9EWU5fQUNDT1VOVF9JRCIsIl9EWU5fU0RLX0VYVEVOU0lPTiIsIl9EWU5fR0VUX1NFU1NJT05fSUQiLCJfRFlOX1NFU1NJT05fQ09PS0lFX1BPU1RGNiIsIl9EWU5fVVNFUl9DT09LSUVfUE9TVEZJWCIsIl9EWU5fSURfTEVOR1RIIiwiX0RZTl9HRVRfTkVXX0lEIiwiX0RZTl9BVVRPTUFUSUNfU0VTU0lPTiIsIl9EWU5fQVVUSEVOVElDQVRFRF9JRCIsIl9EWU5fU0VTU0lPTl9FWFBJUkFUSU9OX003IiwiX0RZTl9TRVNTSU9OX1JFTkVXQUxfTVMiLCJfRFlOX0FDUVVJU0lUSU9OX0RBVEUiLCJfRFlOX1JFTkVXQUxfREFURSIsIl9EWU5fQ09PS0lFX0RPTUFJTiIsIl9EWU5fSk9JTiIsIl9EWU5fQ09PS0lFX1NFUEFSQVRPUiIsIl9EWU5fQVVUSF9VU0VSX0NPT0tJRV9OQU04IiwiVmVyc2lvbiIsIkludGVybmFsIiwiTG9jYXRpb24iLCJjb29raWVOYW1lQ29uc3QiLCJTZXNzaW9uIiwiX1Nlc3Npb25NYW5hZ2VyIiwiX3N0b3JhZ2VOYW1lUHJlZml4IiwiX2Nvb2tpZVVwZGF0ZWRUaW1lc3RhbXAiLCJzZXNzaW9uQ29va2llUG9zdGZpeCIsImlzRXhwaXJlZCIsInNlc3Npb24iLCJfaW5pdGlhbGl6ZUF1dG9tYXRpY1Nlc3Npb24iLCJzZXNzaW9uRXhwaXJhdGlvbk1zIiwic2Vzc2lvblJlbmV3YWxNcyIsInRpbWVTaW5jZUFjcU1zIiwidGltZVNpbmNlUmVuZXdhbE1zIiwiX3JlbmV3IiwiX3NldENvb2tpZSIsIl9zZXRTdG9yYWdlIiwiaXNWYWxpZCIsIl9pbml0aWFsaXplQXV0b21hdGljU2Vzc2lvbldpdGhEYXRhIiwic3RvcmFnZVZhbHVlIiwic2Vzc2lvbkRhdGEiLCJzZXNzaW9uUmVzZXQiLCJhY3FNcyIsInJlbmV3YWxNcyIsImdldE5ld0lkIiwiYWNxIiwicmVuZXdhbFBlcmlvZE1zIiwiYWNxVGltZUxlZnRNcyIsImNvb2tpZSIsImNvb2tpZURvbWFpbiIsImd1aWQiLCJyZW5ld2FsIiwiVGVsZW1ldHJ5VHJhY2UiLCJwYXJlbnRJZCIsIl92YWxpZGF0ZVVzZXJJbnB1dCIsIlVzZXIiLCJ1c2VyQ29va2llUG9zdGZpeCIsIl9nZW5lcmF0ZU5ld0lkIiwiX2dlbmVyYXRlTmV3Q29va2llIiwiYWNxU3RyIiwibmV3Q29va2llIiwiX3NldFVzZXJDb29raWUiLCJvbmVZZWFyIiwiYXV0aENvb2tpZSIsImF1dGhDb29raWVTdHJpbmciLCJhdXRoZW50aWNhdGVkVXNlcklkIiwic3RvcmVJbkNvb2tpZSIsImlzSW52YWxpZElucHV0IiwidXNlcl9pZCIsInVzZXJfY29va2llIiwic3RyRXh0Iiwic3RyVGFncyIsIl9yZW1vdmVFbXB0eSIsIlRlbGVtZXRyeUNvbnRleHQiLCJwcmV2aW91c1RyYWNlQ3R4Iiwic2VzSWQiLCJhdXRvU2Vzc2lvbiIsImFwcGxpY2F0aW9uIiwiZGV2aWNlIiwiaW50ZXJuYWwiLCJQcm9wZXJ0aWVzUGx1Z2luIiwiX2V4dGVuc2lvbkNvbmZpZyIsIl9kaXN0cmlidXRlZFRyYWNlQ3R4IiwiX3ByZXZpb3VzVHJhY2VDdHgiLCJ0aGVDb250ZXh0IiwidXNlckN0eCIsIl9wcm9jZXNzVGVsZW1ldHJ5SW50ZXJuYWwiLCJicmVlemVDaGFubmVsIiwibnVsbFZhbHVlIiwiX0FVVEhFTlRJQ0FURURfVVNFUl9DT05URVhUIiwiX1RSQUNLIiwiU1RSX1NOSVBQRVQiLCJTVFJfR0VUX0NPT0tJRV9NR1IiLCJTVFJfU1RBUlRfVFJBQ0tfUEFHRSIsIlNUUl9TVE9QX1RSQUNLX1BBR0UiLCJTVFJfRkxVU0giLCJTVFJfU1RBUlRfVFJBQ0tfRVZFTlQiLCJTVFJfU1RPUF9UUkFDS19FVkVOVCIsIlNUUl9BRERfVEVMRU1FVFJZX0lOSVRJQUxJWkVSIiwiU1RSX1BPTExfSU5URVJOQUxfTE9HUyIsIlNUUl9HRVRfUExVR0lOIiwiU1RSX0VWVF9OQU1FU1BBQ0UiLCJTVFJfVFJBQ0tfRVZFTlQiLCJTVFJfVFJBQ0tfVFJBQ0UiLCJTVFJfVFJBQ0tfTUVUUklDIiwiU1RSX1RSQUNLX1BBR0VfVklFVyIsIlNUUl9UUkFDS19FWENFUFRJT04iLCJTVFJfVFJBQ0tfREVQRU5ERU5DWV9EQVRBIiwiU1RSX1NFVF9BVVRIRU5USUNBVEVEX1VTRVJfQ09OVEVYVCIsIlNUUl9DTEVBUl9BVVRIRU5USUNBVEVEX1VTRVJfQ09OVEVYVCIsIl9EWU5fVVBEQVRFX1NOSVBQRVRfREVGSU4wIiwiX0RZTl9MT0FEX0FQUF9JTlNJR0hUUyIsIl9EWU5fRElBR05PU1RJQ19MT0dfSU5URVI0IiwiX0RZTl9ESVNBQkxFX0ZMVVNIX09OX0JFRjExIiwiX0RZTl9ESVNBQkxFX0ZMVVNIX09OX1VOTDEyIiwiX0RZTl9RVUVVRSIsIl9EWU5fQ09OTkVDVElPTl9TVFJJTkciLCJfRFlOX0FQUF9JTlNJR0hUUyIsIl9EWU5fRElTQUJMRV9JS0VZX0RFUFJFQ0ExOCIsIl9EWU5fR0VUX1RSQU5TTUlTU0lPTl9DT04xOSIsIl9EWU5fT05VTkxPQURfRkxVU0giLCJfRFlOX0FERF9IT1VTRUtFRVBJTkdfQkVGMjAiLCJfaW50ZXJuYWxTZGtTcmMiLCJfaWdub3JlVXBkYXRlU25pcHBldFByb3BlcnRpZXMiLCJJbml0aWFsaXphdGlvbiIsInNuaXBwZXQiLCJkZXBlbmRlbmNpZXMiLCJfc2VuZGVyIiwiX3NuaXBwZXRWZXJzaW9uIiwiX2hvdXNlS2VlcGluZ05hbWVzcGFjZSIsIl9jb3JlIiwiY3MiLCJpbmdlc3QiLCJEZXBlbmRlbmNpZXNQbHVnaW4iLCJpc0Vyck1lc3NhZ2VEaXNhYmxlZCIsIl9nZXRTS1VEZWZhdWx0cyIsImxlZ2FjeU1vZGUiLCJfdXBkYXRlU25pcHBldFByb3BlcnRpZXMiLCJzbmlwcGV0VmVyIiwibGVuZ3RoXzEiLCJjYWxsIiwicHJvcGVydGllc18xIiwiYXBwSW5zaWdodHNJbnN0YW5jZSIsInBlcmZvcm1Ib3VzZWtlZXBpbmciLCJsb2FkZWRQbHVnaW4iLCJwcm9wZXJ0aWVzUGx1Z2luIiwiZXhjbHVkZVBhZ2VVbmxvYWRFdmVudHMiLCJfZ2V0Q3VycmVudERlcGVuZGVuY2llcyIsInNka1NyYyIsImlzTW9kdWxlIiwiY2RucyIsInNjcnB0IiwiZ2V0SW5pdGlhbFVzZXJNZXRhZGF0YSIsImN1cnJlbnRVcmxQYXRoIiwiY3VycmVudFVybFF1ZXJ5IiwiQXBwbGljYXRpb25JbnNpZ2h0cyIsInJvb3RSZWR1Y2VyIiwicHJvZHVjZSIsImRyYWZ0U3RhdGUiLCJiaXN0ZWNoQnJhbmRWYXJpYW50cyIsImxpZ2h0VGhl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LE9BQVEsVUFDUixPQUFRLFNBQ1osRUFlYUMsR0FBVSxDQUNuQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFTLENBQ2xCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBQ2FDLEdBQVEsQ0FDakIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBVyxDQUNwQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFTLENBQ2xCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBQ2FDLEdBQU8sQ0FDaEIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBUSxDQUNqQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFRLENBQ2pCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBNkJhQyxHQUFTLENBQ2xCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBQ2FDLEdBQVUsQ0FDbkIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBYSxDQUN0QixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFRLENBQ2pCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBQ2FDLEdBQVksQ0FDckIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBWSxDQUNyQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFPLENBQ2hCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBNkJhQyxHQUFRLENBQ2pCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBZWFDLEdBQU8sQ0FDaEIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBWSxDQUNyQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQWVhQyxHQUFhLENBQ3RCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBQ2FDLEdBQU8sQ0FDaEIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBVyxDQUNwQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFTLENBQ2xCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBNkJhQyxHQUFRLENBQ2pCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBQ2FDLEdBQVEsQ0FDakIsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1osRUFDYUMsR0FBUSxDQUNqQixRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDWixFQUNhQyxHQUFPLENBQ2hCLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsT0FBUSxTQUNaLEVBZWFDLEdBQVUsQ0FD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QVEsVUFDUixPQUFRLFdBQ1IsUUFBUyxVQUNULE9BQVEsVUFDUixRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsVUFDUixRQUFTLFdBQ1QsUUFBUyxVQUNULFFBQVMsU0FDVixFQUNELE9BQVEsQ0FDTixRQUFTLFNBQ1YsRUFDRCxTQUFVLENBQ1IsT0FBUSxVQUNSLE9BQVEsU0FDVCxFQUNELE1BQU8sQ0FDTCxPQUFRLFVBQ1IsT0FBUSxVQUNULEVBQ0QsYUFBYyxDQUNaLFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLFVBQ1YsRUFDRCxjQUFlLENBQ2IsUUFBUyxFQUNULE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLFFBQVMsU0FDVixFQUNELGFBQWMsQ0FDWixRQUFTLEVBQ1QsT0FBUSxFQUNSLE9BQVEsRUFDUixPQUFRLEVBQ1IsUUFBUyxTQUNWLEVBQ0QsV0FBWSxDQUNWLE9BQVEsV0FDUixRQUFTLFNBQ1YsRUFDRCxpQkFBa0IsQ0FDaEIsT0FBUSxXQUNSLFFBQVMsU0FDVixFQUNELE1BQU8sQ0FDTCxRQUFTLFdBQ1QsT0FBUSxXQUNSLFFBQVMsV0FDVCxPQUFRLFdBQ1IsUUFBUyxTQUNULFFBQVMsV0FDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULE9BQVEsV0FDUixPQUFRLFdBQ1IsUUFBUyxXQUNULE9BQVEsV0FDUixPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsUUFBUyxXQUNULE9BQVEsVUFDUixRQUFTLFVBQ1QsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxFQUNSLFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixNQUFPLEVBQ1AsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsV0FDUixPQUFRLFVBQ1IsUUFBUyxVQUNULE9BQVEsV0FDUixPQUFRLFdBQ1IsT0FBUSxVQUNSLFFBQVMsV0FDVCxPQUFR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LFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxXQUNSLFFBQVMsQ0FBQyxVQUFXLFNBQVMsRUFDOUIsUUFBUyxXQUNULFFBQVMsQ0FBQyxVQUFXLFNBQVMsRUFDOUIsUUFBUyxXQUNULE9BQVEsV0FDUixPQUFRLFdBQ1IsT0FBUSxVQUNSLE9BQVEsVUFDUixRQUFTLFdBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDVCxFQUNELFlBQWEsQ0FDWCxPQUFRLFdBQ1IsT0FBUSxXQUNSLE9BQVEsQ0FBQyxXQUFZLFVBQVUsRUFDL0IsUUFBUyxXQUNULE9BQVEsQ0FBQyxXQUFZLFVBQVUsRUFDL0IsT0FBUSxVQUNSLE9BQVEsVUFDUixRQUFTLFdBQ1QsUUFBUyxDQUFDLFVBQVcsU0FBUyxFQUM5QixPQUFRLFdBQ1IsT0FBUSxDQUFDLFVBQVcsU0FBUyxFQUM3QixRQUFTLFdBQ1QsUUFBUyxVQUNULFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxXQUNSLFFBQVMsQ0FBQyxVQUFXLFNBQVMsRUFDOUIsUUFBUyxXQUNULFFBQVMsQ0FBQyxVQUFXLFNBQVMsRUFDOUIsUUFBUyxXQUNULE9BQVEsV0FDUixPQUFRLFdBQ1IsUUFBUyxXQUNULE9BQVEsVUFDUixPQUFRLFdBQ1IsT0FBUSxTQUNULEVBQ0QsU0FBVSxDQUNSLFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLFNBQ1QsRUFDRCxRQUFTLENBQUUsRUFDWCxPQUFRLENBQ04sUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsVUFDVCxFQUNELE1BQU8sQ0FDTCxRQUFTLFVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLFFBQVMsVUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsT0FBUSxVQUNSLFFBQVMsVUFDVCxRQUFTLFVBQ1QsUUFBUyxTQUNWLEVBQ0QsY0FBZSxDQUNiLFFBQVMsV0FDVCxP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V0FBWSxVQUFVLEVBQ2hDLE9BQVEsV0FDUixPQUFRLENBQUMsV0FBWSxVQUFVLEVBQy9CLFFBQVMsVUFDVCxPQUFRLFVBQ1IsUUFBUyxXQUNULFFBQVMsVUFDVCxRQUFTLFdBQ1QsT0FBUSxXQUNSLE9BQVEsV0FDUixRQUFTLENBQUMsV0FBWSxVQUFVLEVBQ2hDLFFBQVMsV0FDVCxRQUFTLENBQUMsV0FBWSxVQUFVLEVBQ2hDLFFBQVMsVUFDVCxPQUFRLFVBQ1IsT0FBUSxXQUNSLE9BQVEsV0FDUixPQUFRLFVBQ1QsRUFDRCxhQUFjLENBQ1osUUFBUyxVQUNULFFBQVMsVUFDVCxRQUFTLENBQUMsV0FBWSxVQUFVLEVBQ2hDLFFBQVMsVUFDVCxPQUFRLENBQUMsV0FBWSxVQUFVLEVBQy9CLFFBQVMsV0FDVCxPQUFRLFVBQ1IsTUFBTyxDQUFDLFdBQVksVUFBVSxFQUM5QixPQUFRLFVBQ1IsT0FBUSxDQUFDLFdBQVksVUFBVSxFQUMvQixRQUFTLFdBQ1QsT0FBUSxVQUNSLFFBQVMsQ0FBQyxXQUFZLFNBQVMsRUFDL0IsT0FBUSxXQUNSLFFBQVMsQ0FBQyxVQUFXLFVBQVUsRUFDL0IsT0FBUSxXQUNSLE9BQVEsV0FDUixRQUFTLFVBQ1QsUUFBUyxDQUFDLFVBQVcsU0FBUyxFQUM5QixRQUFTLFVBQ1QsT0FBUSxDQUFDLFVBQVcsU0FBUyxFQUM3QixPQUFRLFNBQ1QsRUFDRCxRQUFTLENBQ1AsT0FBUSxXQUNSLE9BQVEsVUFDUixPQUFRLFNBQ1QsRUFDRCxRQUFTLENBQ1AsT0FBUSxXQUNSLE9BQVEsQ0FBQyxXQUFZLFVBQVUsRUFDL0IsUUFBUyxXQUNULE9BQVEsQ0FBQyxXQUFZLFVBQVUsRUFDL0IsUUFBUyxXQUNULFFBQVMsQ0FBQyxVQUFXLFNBQVMsRUFDOUIsT0FBUSxXQUNSLE9BQVEsQ0FBQyxVQUFXLFNBQVMsRUFDN0IsT0FBUSxXQUNSLFFBQVMsQ0FBQyxVQUFXLFNBQVMsRUFDOUIsUUFBUyxXQUNULFFBQVMsQ0FBQyxVQUFXLFNBQVMsQ0FDL0IsRUFDRCxVQUFXLENBQUUsRUFDYixPQUFRLENB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QUMvQixPQUFRLFVBQ1IsUUFBUyxDQUFDLFdBQVksVUFBVSxDQUNqQyxFQUNELE9BQVEsQ0FDTixRQUFTLFdBQ1QsT0FBUSxXQUNSLE9BQVEsV0FDUixPQUFRLFdBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsU0FDUixPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxXQUNULFFBQVMsVUFDVCxPQUFRLFdBQ1IsUUFBUyxDQUFDLFVBQVcsVUFBVSxFQUMvQixPQUFRLENBQUMsV0FBWSxTQUFTLENBQy9CLEVBQ0QsU0FBVSxDQUNSLE9BQVEsV0FDUixPQUFRLFVBQ1IsUUFBUyxVQUNULE9BQVEsV0FDUixPQUFRLENBQUMsV0FBWSxVQUFVLEVBQy9CLE9BQVEsVUFDUixPQUFRLENBQUMsV0FBWSxVQUFVLEVBQy9CLE9BQVEsVUFDUixPQUFRLFdBQ1IsUUFBUyxXQUNULE9BQVEsQ0FBQyxXQUFZLFNBQVMsRUFDOUIsT0FBUSxVQUNSLFFBQVMsQ0FBQyxVQUFXLFVBQVUsRUFDL0IsUUFBUyxVQUNWLEVBQ0QsU0FBVSxDQUFFLEVBQ1osVUFBVyxDQUNULFFBQVMsVUFDVCxPQUFRLENBQUMsV0FBWSxTQUFTLEVBQzlCLE9BQVEsQ0FBQyxXQUFZLFVBQVUsRUFDL0IsUUFBUyxVQUNULFFBQVMsU0FDVixFQUNELGNBQWUsQ0FDYixRQUFTLFVBQ1YsRUFDRCxpQkFBa0IsQ0FDaEIsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLE9BQVEsRUFD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QUNSLFFBQVMsVUFDVCxPQUFRLENBQUMsVUFBVyxVQUFVLENBQy9CLEVBQ0QsUUFBUyxDQUNQLE9BQVEsVUFDUixRQUFTLEVBQ1QsUUFBUyxXQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxTQUNULEVBQ0QsbUJBQW9CLENBQ2xCLFFBQVMsVUFDVCxRQUFTLENBQUMsV0FBWSxVQUFVLEVBQ2hDLE9BQVEsVUFDUixPQUFRLENBQUMsV0FBWSxVQUFVLEVBQy9CLFFBQVMsVUFDVCxPQUFRLENBQUMsV0FBWSxTQUFTLEVBQzlCLE9BQVEsVUFDUixRQUFTLENBQUMsVUFBVyxVQUFVLENBQ2hDLEVBQ0QsVUFBVyxDQUNULE9BQVEsV0FDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLFFBQVMsRUFDVCxRQUFTLFVBQ1QsUUFBUyxFQUNULFFBQVMsRUFDVCxRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsU0FDVCxFQUNELGlCQUFrQixDQUNoQixPQUFRLFVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLE9BQVEsRUFDUixPQUFRLEVBQ1IsUUFBUyxFQUNULE9BQVEsU0FDVCxFQUNELGdCQUFpQixDQUNmLE9BQVEsV0FDUixRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixPQUFRLEVBQ1IsT0FBUSxFQUNSLFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FB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USxXQUNSLFFBQVMsVUFDVCxRQUFTLFdBQ1QsT0FBUSxVQUNSLE9BQVEsVUFDUixPQUFRLFVBQ1IsUUFBUyxDQUFDLFVBQVcsVUFBVSxFQUMvQixPQUFRLFdBQ1IsUUFBUyxDQUFDLFdBQVksU0FBUyxDQUNoQyxFQUNELE9BQVEsQ0FDTixRQUFTLEVBQ1QsT0FBUSxFQUNSLFFBQVMsRUFDVCxRQUFTLFVBQ1YsRUFDRCxNQUFPLENBQ0wsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsUUFBUyxVQUNWLEVBQ0QsY0FBZSxDQUNiLFFBQVMsU0FDVixFQUNELE1BQU8sQ0FDTCxPQUFRLFdBQ1IsT0FBUSxXQUNSLE9BQVEsQ0FBQyxVQUFXLFVBQVUsRUFDOUIsUUFBUyxVQUNULE9BQVEsQ0FBQyxXQUFZLFNBQVMsRUFDOUIsT0FBUSxVQUNSLE9BQVEsV0FDUixPQUFRLEVBQ1IsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixPQUFRLEVBQ1IsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLE1BQU8sRUFDUCxPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxVQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLFFBQVMsRUFDVCxPQUFRLFVBQ1IsUUFBUyxVQUNULE9BQVEsVUFDVCxFQUNELFFBQVMsQ0FDUCxPQUFRLEVBQ1IsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsUUFBUyxFQUNULE9BQVEsRUFDUixPQUFRLEVBQ1IsUUFBUyxFQUNULE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLE1BQU8sRUFDUCxPQUFRLEVBQ1IsUUFBUyxFQUNULFFBQVMsRUFDVCxPQUFRLEVBQ1IsT0FBUSxVQUNSLE9BQVEsRUFDUixRQUFTLEVBQ1QsT0FBUSxFQUNSLFFBQVMsRUFDVCxPQUFRLFVBQ1IsUUFBUyxVQUNULE9BQVEsV0FDUixPQUFRLFVBQ1IsT0FBUSxXQUNSLE9BQVEsV0FDUixPQUFR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QUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSxzREFDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSwwQ0FDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSx3REFDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSwrREFDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSxtREFDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSxtRUFDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIsa0JBQW1CLEdBQ25CLFFBQVMsNEJBQ1QsWUFBYSx1Q0FDYixVQUFXLDJCQUNYLFdBQVksMkJBQ1osaUJBQWtCQSxHQUFnQixlQUFlLFNBQ3JELEVBQ0EsQ0FDSSxXQUFZLHdDQUNaLHlCQUEwQix1Q0FDMUIs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Z0IsRUFHL0Q2K0UsS0FDUHZuRSxHQUFBLE9BQWUsK0JBQWYsWUFBQUEsR0FBQSxZQUErQyxFQUc3Q21uTyxJQUFzQyxDQUN4QyxHQUFJLFVBQ0osR0FBSSxVQUNKLEdBQUksVUFDSixHQUFJLFVBQ0osR0FBSSxVQUNKLEdBQUksVUFDSixHQUFJLFVBQ0osR0FBSSxVQUNKLEdBQUksVUFDSixJQUFLLFVBQ0wsSUFBSyxVQUNMLElBQUssVUFDTCxJQUFLLFVBQ0wsSUFBSyxVQUNMLElBQUssVUFDTCxJQUFLLFNBQ1QsRUFFTUMsSUFBb0IsQ0FDdEIsR0FBR3R2TCxHQUFpQnF2TCxHQUFvQixFQUN4QyxzQkFBdUIsT0FHdkIsZUFBZ0IsVUFHaEIsZ0JBQWlCLFVBQ2pCLGdCQUFpQixVQUNqQixnQkFBaUIsVUFDakIsZ0JBQWlCLFVBQ2pCLGdCQUFpQixVQUNqQixnQkFBaUIsVUFDakIsZ0JBQWlCLFVBQ2pCLGdCQUFpQixVQUNqQixnQkFBaUIsVUFDakIsaUJBQWtCLFVBR2xCLGtCQUFtQixVQUNuQixrQkFBbUIsVUFDbkIsa0JBQW1CLFVBQ25CLGtCQUFtQixVQUNuQixrQkFBbUIsVUFDbkIsa0JBQW1CLFVBQ25CLGtCQUFtQixVQUNuQixrQkFBbUIsVUFDbkIsa0JBQW1CLFVBQ25CLG1CQUFvQixTQUN4QixFQUVBNXdOLElBQUssYUFDQW5hLEdBQVMsQ0FBQSxNQUFBM0IsSUFDTixlQUFDVixHQUFNLFdBQU4sQ0FDRyxTQUFDaUYsTUFBQWhKLEdBQUEsQ0FBYyxPQUNYLFNBQUNnSixFQUFBQSxJQUFBczdDLEdBQUEsQ0FBZSxNQUFPOHNMLElBQ25CLFNBQUFwb08sRUFBQUEsSUFBQzYwSyxLQUFJLENBQUEsQ0FDVCxDQUFBLEVBQ0osRUFDSixDQUNKLENBQUEsQ0FDSiIsInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDU3LDU4LDU5LDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDI1NiwyNTcsMjU4LDI1OSwyNjAsMjYxLDI2MiwyNjMsMjY0LDI2NSwyNjYsMjY3LDI2OCwyNjksMjcwLDI3MSwyNzIsMjczLDI3NCwyNzUsMjc2LDI3NywyNzgsMjc5LDI4MCwyODEsMjgyLDI4MywyODQsMjg1LDI4NiwyODcsMjg4LDI4OSwyOTAsMjkxLDI5MiwyOTMsMjk0LDI5NSwyOTYsMjk3LDI5OCwyOTksMzAwLDMwMSwzMDIsMzAzLDMwNCwzMDUsMzA2LDMwNywzMDgsMzA5LDMxMCwzMTEsMzEyLDMxMywzMTQsMzE1LDMxNiwzMTcsMzE4LDMxOSwzMjAsMzIxLDMyMiwzMjMsMzI0LDMyNSwzMjYsMzI3LDMyOCwzMjksMzMwLDMzMSwzMzIsMzMzLDMzNCwzMzUsMzM2LDMzNywzMzgsMzM5LDM0MCwzNDEsMzQyLDM0MywzNDQsMzQ1LDM0NiwzNDcsMzQ4LDM0OSwzNTAsMzUxLDM1MiwzNTMsMzU0LDM1NSwzNTYsMzU3LDM1OCwzNTksMzYwLDM2MSwzNjIsMzYzLDM2NCwzNjUsMzY2LDM2NywzNjgsMzY5LDM3MCwzNzEsMzcyLDM3MywzNzQsMzc1LDM3NiwzNzcsMzc4LDM3OSwzODAsMzgxLDM4MiwzODMsMzg0LDM4NSwzODYsMzg3LDM4OCwzODksMzkwLDM5MSwzOTIsMzkzLDM5NCwzOTUsMzk2LDM5NywzOTgsMzk5LDQwMCw0MDEsNDAyLDQwMyw0MDQsNDA1LDQwNiw0MDcsNDA4LDQwOSw0MTAsNDExLDQxMiw0MTMsNDE0LDQxNSw0MTYsNDE3LDQxOCw0MTksNDIwLDQyMSw0MjIsNDIzLDQyNCw0MjUsNDI2LDQyNyw0MjgsNDI5LDQzMCw0MzEsNDMyLDQzMyw0MzQsNDM1LDQzNiw0MzcsNDM4LDQzOSw0NDAsNDQxLDQ0Miw0NDMsNDQ0LDQ0NSw0NDYsNDQ3LDQ0OCw0NDksNDUwLDQ1MSw0NTIsNDUzLDQ1NCw0NTUsNDU2LDQ1Nyw0NTgsNDU5LDQ2MCw0NjEsNDYyLDQ2Myw0NjQsNDY1LDQ2Niw0NjcsNDY4LDQ2OSw0NzAsNDcxLDQ3Miw0NzMsNDc0LDQ3NSw0NzYsNDc3LDQ3OCw0NzksNDgwLDQ4MSw0ODIsNDgzLDQ4NCw0ODUsNDg2LDQ4Nyw0ODgsNDg5LDQ5MCw0OTEsNDkyLDQ5Myw0OTQsNDk1LDQ5Niw0OTcsNDk4LDQ5OSw1MDAsNTAxLDUwMiw1MDMsNTA0LDUwNSw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MTIsNTEzLDUxNCw1MTUsNTE2LDUxNyw1MTgsNTE5LDUyMCw1MjEsNTIyLDUyMyw1MjQsNTI1LDUyNiw1MjcsNTI4LDUyOSw1MzAsNTMxLDUzMiw1MzMsNTM0LDUzNSw1MzYsNTM3LDUzOCw1MzksNTQwLDU0MSw1NDIsNTQzLDU0NCw1NDUsNTQ2LDU0Nyw1NDgsNTQ5LDU1MCw1NTEsNTUyLDU1Myw1NTQsNTU1LDU1Niw1NTcsNTU4LDU1OSw1NjAsNTYxLDU2Miw1NjMsNTY0LDU2NSw1NjYsNTY3LDU2OCw1NjksNTcwLDU3MSw1NzIsNTczLDU3NCw1NzUsNTc2LDU3Nyw1NzgsNTc5LDU4MCw1ODEsNTgyLDU4Myw1ODQsNTg1LDU4Niw1ODcsNTg4LDU4OSw1OTAsNTkxLDU5Miw1OTMsNTk0LDU5NSw1OTYsNTk3LDU5OCw1OTksNjAwLDYwMSw2MDIsNjAzLDYwNCw2MDUsNjA2LDYwNyw2MDgsNjA5LDYxMCw2MTEsNjEyLDYxMyw2MTQsNjE1LDYxNiw2MTcsNjE4LDYxOSw2MjAsNjIxLDYyMiw2MjMsNjI0LDYyNSw2MjYsNjI3LDYyOCw2MjksNjMwLDYzMSw2MzIsNjMzLDYzNCw2MzUsNjM2LDYzNyw2MzgsNjM5LDY0MCw2NDcsNjQ4LDY1MCw2NTEsNjUyLDgwMSw4MDIsODAzLDgwNCw4MDUsODA2LDgwNyw4MDgsODA5LDgxMCw4MTEsODM5LDg0MCw4NDEsODQyLDg0Myw4NDQsODQ1LDg0Niw4NDcsODQ4LDg0OSw4NTAsODUxLDg1Miw4NTMsODU0LDg1NSw4NTYsODU3LDg1OCw4NTksODYwLDg2MSw4NjIsODYzLDg2NCw4NjUsODY2LDg2Nyw4NjgsODY5LDg3MCw4NzEsODcyLDg3Myw4NzQsODc1LDg5OCw4OTksOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwNyw5MDgsOTA5LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMwLDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsOTc1LDk3Niw5NzcsOTc4LDk3OSw5ODAsOTgxLDk4Miw5ODMsOTg0LDk4NV19